From f86662b5b6481f27e18313a36355871f3a947193 Mon Sep 17 00:00:00 2001 From: subhash kumar singh Date: Tue, 22 Mar 2022 00:39:54 +0530 Subject: [PATCH] Generated C files for E2AP v2.0 Generated C files for E2AP v2.0. Signed-off-by: subhash kumar singh Change-Id: Id0e930f681c84a397b91c4e16b7390993e804307 Signed-off-by: subhash kumar singh --- e2sim/CMakeLists.txt | 2 + .../kpm_e2sm/e2sim-dev_1.0.0_amd64.deb | Bin 338554 -> 401840 bytes e2sim/e2sm_examples/kpm_e2sm/e2sim_1.0.0_amd64.deb | Bin 200430 -> 228328 bytes e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/AMFName.c | 109 + e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/AMFName.h | 46 + .../kpm_e2sm/src/ASN1c/CMakeLists.txt | 13 +- e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/Cause.c | 41 +- e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/Cause.h | 13 +- .../e2sm_examples/kpm_e2sm/src/ASN1c/CauseE2node.c | 56 + .../e2sm_examples/kpm_e2sm/src/ASN1c/CauseE2node.h | 55 + e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CauseMisc.c | 9 +- e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CauseMisc.h | 6 +- .../kpm_e2sm/src/ASN1c/CauseProtocol.c | 9 +- .../kpm_e2sm/src/ASN1c/CauseProtocol.h | 6 +- e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CauseRIC.c | 73 - e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CauseRIC.h | 63 - .../kpm_e2sm/src/ASN1c/CauseRICrequest.c | 82 + .../kpm_e2sm/src/ASN1c/CauseRICrequest.h | 68 + .../kpm_e2sm/src/ASN1c/CauseRICservice.c | 13 +- .../kpm_e2sm/src/ASN1c/CauseRICservice.h | 8 +- .../kpm_e2sm/src/ASN1c/CauseTransport.c | 9 +- .../kpm_e2sm/src/ASN1c/CauseTransport.h | 6 +- .../e2sm_examples/kpm_e2sm/src/ASN1c/Criticality.c | 9 +- .../e2sm_examples/kpm_e2sm/src/ASN1c/Criticality.h | 6 +- .../src/ASN1c/CriticalityDiagnostics-IE-Item.c | 4 +- .../src/ASN1c/CriticalityDiagnostics-IE-Item.h | 4 +- .../src/ASN1c/CriticalityDiagnostics-IE-List.c | 9 +- .../src/ASN1c/CriticalityDiagnostics-IE-List.h | 4 +- .../kpm_e2sm/src/ASN1c/CriticalityDiagnostics.c | 8 +- .../kpm_e2sm/src/ASN1c/CriticalityDiagnostics.h | 6 +- e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2AP-PDU.c | 9 +- e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2AP-PDU.h | 4 +- .../src/ASN1c/E2connectionSetupFailed-Item.c | 8 +- .../src/ASN1c/E2connectionSetupFailed-Item.h | 6 +- .../src/ASN1c/E2connectionSetupFailed-List.c | 17 +- .../src/ASN1c/E2connectionSetupFailed-List.h | 7 +- .../kpm_e2sm/src/ASN1c/E2connectionUpdate-Item.c | 8 +- .../kpm_e2sm/src/ASN1c/E2connectionUpdate-Item.h | 6 +- .../kpm_e2sm/src/ASN1c/E2connectionUpdate-List.c | 17 +- .../kpm_e2sm/src/ASN1c/E2connectionUpdate-List.h | 7 +- .../kpm_e2sm/src/ASN1c/E2connectionUpdate.c | 6 +- .../kpm_e2sm/src/ASN1c/E2connectionUpdate.h | 6 +- .../src/ASN1c/E2connectionUpdateAcknowledge.c | 6 +- .../src/ASN1c/E2connectionUpdateAcknowledge.h | 6 +- .../kpm_e2sm/src/ASN1c/E2connectionUpdateFailure.c | 6 +- .../kpm_e2sm/src/ASN1c/E2connectionUpdateFailure.h | 6 +- .../src/ASN1c/E2connectionUpdateRemove-Item.c | 8 +- .../src/ASN1c/E2connectionUpdateRemove-Item.h | 6 +- .../src/ASN1c/E2connectionUpdateRemove-List.c | 17 +- .../src/ASN1c/E2connectionUpdateRemove-List.h | 7 +- .../src/ASN1c/E2nodeComponentConfigAddition-Item.c | 70 + .../src/ASN1c/E2nodeComponentConfigAddition-Item.h | 46 + .../src/ASN1c/E2nodeComponentConfigAddition-List.c | 53 + .../src/ASN1c/E2nodeComponentConfigAddition-List.h | 41 + .../ASN1c/E2nodeComponentConfigAdditionAck-Item.c | 70 + .../ASN1c/E2nodeComponentConfigAdditionAck-Item.h | 46 + .../ASN1c/E2nodeComponentConfigAdditionAck-List.c | 53 + .../ASN1c/E2nodeComponentConfigAdditionAck-List.h | 41 + .../src/ASN1c/E2nodeComponentConfigRemoval-Item.c | 60 + .../src/ASN1c/E2nodeComponentConfigRemoval-Item.h | 44 + .../src/ASN1c/E2nodeComponentConfigRemoval-List.c | 53 + .../src/ASN1c/E2nodeComponentConfigRemoval-List.h | 41 + .../ASN1c/E2nodeComponentConfigRemovalAck-Item.c | 70 + .../ASN1c/E2nodeComponentConfigRemovalAck-Item.h | 46 + .../ASN1c/E2nodeComponentConfigRemovalAck-List.c | 53 + .../ASN1c/E2nodeComponentConfigRemovalAck-List.h | 41 + .../src/ASN1c/E2nodeComponentConfigUpdate-Item.c | 33 +- .../src/ASN1c/E2nodeComponentConfigUpdate-Item.h | 20 +- .../src/ASN1c/E2nodeComponentConfigUpdate-List.c | 17 +- .../src/ASN1c/E2nodeComponentConfigUpdate-List.h | 7 +- .../src/ASN1c/E2nodeComponentConfigUpdate.c | 86 - .../src/ASN1c/E2nodeComponentConfigUpdate.h | 67 - .../ASN1c/E2nodeComponentConfigUpdateAck-Item.c | 31 +- .../ASN1c/E2nodeComponentConfigUpdateAck-Item.h | 20 +- .../ASN1c/E2nodeComponentConfigUpdateAck-List.c | 17 +- .../ASN1c/E2nodeComponentConfigUpdateAck-List.h | 7 +- .../src/ASN1c/E2nodeComponentConfigUpdateAck.c | 111 - .../src/ASN1c/E2nodeComponentConfigUpdateAck.h | 58 - .../src/ASN1c/E2nodeComponentConfigUpdateENB.c | 62 - .../src/ASN1c/E2nodeComponentConfigUpdateENB.h | 45 - .../src/ASN1c/E2nodeComponentConfigUpdateENgNB.c | 52 - .../src/ASN1c/E2nodeComponentConfigUpdateENgNB.h | 44 - .../src/ASN1c/E2nodeComponentConfigUpdateGNB.c | 82 - .../src/ASN1c/E2nodeComponentConfigUpdateGNB.h | 47 - .../src/ASN1c/E2nodeComponentConfigUpdateNGeNB.c | 62 - .../src/ASN1c/E2nodeComponentConfigUpdateNGeNB.h | 45 - .../src/ASN1c/E2nodeComponentConfiguration.c | 60 + .../src/ASN1c/E2nodeComponentConfiguration.h | 45 + .../src/ASN1c/E2nodeComponentConfigurationAck.c | 114 + .../src/ASN1c/E2nodeComponentConfigurationAck.h | 58 + .../src/ASN1c/E2nodeComponentGNB-CU-UP-ID.c | 50 - .../src/ASN1c/E2nodeComponentGNB-CU-UP-ID.h | 44 - .../kpm_e2sm/src/ASN1c/E2nodeComponentGNB-DU-ID.c | 50 - .../kpm_e2sm/src/ASN1c/E2nodeComponentGNB-DU-ID.h | 44 - .../kpm_e2sm/src/ASN1c/E2nodeComponentID.c | 92 +- .../kpm_e2sm/src/ASN1c/E2nodeComponentID.h | 33 +- .../src/ASN1c/E2nodeComponentInterfaceE1.c | 50 + .../src/ASN1c/E2nodeComponentInterfaceE1.h | 44 + .../src/ASN1c/E2nodeComponentInterfaceF1.c | 50 + .../src/ASN1c/E2nodeComponentInterfaceF1.h | 44 + .../src/ASN1c/E2nodeComponentInterfaceNG.c | 50 + .../src/ASN1c/E2nodeComponentInterfaceNG.h | 44 + .../src/ASN1c/E2nodeComponentInterfaceS1.c | 50 + .../src/ASN1c/E2nodeComponentInterfaceS1.h | 44 + .../src/ASN1c/E2nodeComponentInterfaceType.c | 68 + .../src/ASN1c/E2nodeComponentInterfaceType.h | 61 + .../src/ASN1c/E2nodeComponentInterfaceW1.c | 50 + .../src/ASN1c/E2nodeComponentInterfaceW1.h | 44 + .../src/ASN1c/E2nodeComponentInterfaceX2.c | 64 + .../src/ASN1c/E2nodeComponentInterfaceX2.h | 48 + .../src/ASN1c/E2nodeComponentInterfaceXn.c | 50 + .../src/ASN1c/E2nodeComponentInterfaceXn.h | 44 + .../kpm_e2sm/src/ASN1c/E2nodeComponentType.c | 63 - .../kpm_e2sm/src/ASN1c/E2nodeComponentType.h | 58 - .../kpm_e2sm/src/ASN1c/E2nodeConfigurationUpdate.c | 6 +- .../kpm_e2sm/src/ASN1c/E2nodeConfigurationUpdate.h | 6 +- .../ASN1c/E2nodeConfigurationUpdateAcknowledge.c | 6 +- .../ASN1c/E2nodeConfigurationUpdateAcknowledge.h | 6 +- .../src/ASN1c/E2nodeConfigurationUpdateFailure.c | 6 +- .../src/ASN1c/E2nodeConfigurationUpdateFailure.h | 6 +- .../src/ASN1c/E2nodeTNLassociationRemoval-Item.c | 60 + .../src/ASN1c/E2nodeTNLassociationRemoval-Item.h | 43 + .../src/ASN1c/E2nodeTNLassociationRemoval-List.c | 53 + .../src/ASN1c/E2nodeTNLassociationRemoval-List.h | 41 + .../kpm_e2sm/src/ASN1c/E2setupFailure.c | 6 +- .../kpm_e2sm/src/ASN1c/E2setupFailure.h | 6 +- .../kpm_e2sm/src/ASN1c/E2setupRequest.c | 6 +- .../kpm_e2sm/src/ASN1c/E2setupRequest.h | 6 +- .../kpm_e2sm/src/ASN1c/E2setupResponse.c | 6 +- .../kpm_e2sm/src/ASN1c/E2setupResponse.h | 6 +- .../kpm_e2sm/src/ASN1c/ENB-ID-Choice.c | 24 +- .../kpm_e2sm/src/ASN1c/ENB-ID-Choice.h | 4 +- e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ENB-ID.c | 29 +- e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ENB-ID.h | 4 +- e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ENGNB-ID.c | 14 +- e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ENGNB-ID.h | 4 +- .../kpm_e2sm/src/ASN1c/ErrorIndication.c | 6 +- .../kpm_e2sm/src/ASN1c/ErrorIndication.h | 6 +- .../kpm_e2sm/src/ASN1c/GNB-CU-UP-ID.c | 9 +- .../kpm_e2sm/src/ASN1c/GNB-CU-UP-ID.h | 6 +- e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GNB-DU-ID.c | 9 +- e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GNB-DU-ID.h | 6 +- .../kpm_e2sm/src/ASN1c/GNB-ID-Choice.c | 14 +- .../kpm_e2sm/src/ASN1c/GNB-ID-Choice.h | 4 +- .../kpm_e2sm/src/ASN1c/GlobalE2node-ID.c | 15 +- .../kpm_e2sm/src/ASN1c/GlobalE2node-ID.h | 7 +- .../kpm_e2sm/src/ASN1c/GlobalE2node-eNB-ID.c | 4 +- .../kpm_e2sm/src/ASN1c/GlobalE2node-eNB-ID.h | 4 +- .../kpm_e2sm/src/ASN1c/GlobalE2node-en-gNB-ID.c | 40 +- .../kpm_e2sm/src/ASN1c/GlobalE2node-en-gNB-ID.h | 12 +- .../kpm_e2sm/src/ASN1c/GlobalE2node-gNB-ID.c | 33 +- .../kpm_e2sm/src/ASN1c/GlobalE2node-gNB-ID.h | 10 +- .../kpm_e2sm/src/ASN1c/GlobalE2node-ng-eNB-ID.c | 37 +- .../kpm_e2sm/src/ASN1c/GlobalE2node-ng-eNB-ID.h | 12 +- .../kpm_e2sm/src/ASN1c/GlobalENB-ID.c | 4 +- .../kpm_e2sm/src/ASN1c/GlobalENB-ID.h | 4 +- .../kpm_e2sm/src/ASN1c/GlobalNG-RANNode-ID.c | 67 + .../kpm_e2sm/src/ASN1c/GlobalNG-RANNode-ID.h | 61 + .../kpm_e2sm/src/ASN1c/GlobalRIC-ID.c | 13 +- .../kpm_e2sm/src/ASN1c/GlobalRIC-ID.h | 6 +- .../kpm_e2sm/src/ASN1c/GlobalenGNB-ID.c | 4 +- .../kpm_e2sm/src/ASN1c/GlobalenGNB-ID.h | 4 +- .../kpm_e2sm/src/ASN1c/GlobalgNB-ID.c | 4 +- .../kpm_e2sm/src/ASN1c/GlobalgNB-ID.h | 4 +- .../kpm_e2sm/src/ASN1c/GlobalngeNB-ID.c | 4 +- .../kpm_e2sm/src/ASN1c/GlobalngeNB-ID.h | 4 +- .../kpm_e2sm/src/ASN1c/InitiatingMessage.c | 66 +- .../kpm_e2sm/src/ASN1c/InitiatingMessage.h | 9 +- e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/MMEname.c | 109 + e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/MMEname.h | 46 + .../kpm_e2sm/src/ASN1c/Makefile.am.libasncodec | 333 - .../e2sm_examples/kpm_e2sm/src/ASN1c/NGENB-DU-ID.c | 70 + .../e2sm_examples/kpm_e2sm/src/ASN1c/NGENB-DU-ID.h | 46 + .../kpm_e2sm/src/ASN1c/PLMN-Identity.c | 9 +- .../kpm_e2sm/src/ASN1c/PLMN-Identity.h | 6 +- e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/Presence.c | 9 +- e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/Presence.h | 6 +- .../kpm_e2sm/src/ASN1c/ProcedureCode.c | 9 +- .../kpm_e2sm/src/ASN1c/ProcedureCode.h | 7 +- .../kpm_e2sm/src/ASN1c/ProtocolIE-Container.c | 957 +- .../kpm_e2sm/src/ASN1c/ProtocolIE-Container.h | 327 +- .../kpm_e2sm/src/ASN1c/ProtocolIE-ContainerList.c | 4 +- .../kpm_e2sm/src/ASN1c/ProtocolIE-ContainerList.h | 4 +- .../kpm_e2sm/src/ASN1c/ProtocolIE-ContainerPair.c | 4 +- .../kpm_e2sm/src/ASN1c/ProtocolIE-ContainerPair.h | 4 +- .../src/ASN1c/ProtocolIE-ContainerPairList.c | 4 +- .../src/ASN1c/ProtocolIE-ContainerPairList.h | 4 +- .../kpm_e2sm/src/ASN1c/ProtocolIE-Field.c | 7595 +- .../kpm_e2sm/src/ASN1c/ProtocolIE-Field.h | 387 +- .../kpm_e2sm/src/ASN1c/ProtocolIE-FieldPair.c | 4 +- .../kpm_e2sm/src/ASN1c/ProtocolIE-FieldPair.h | 4 +- .../kpm_e2sm/src/ASN1c/ProtocolIE-ID.c | 9 +- .../kpm_e2sm/src/ASN1c/ProtocolIE-ID.h | 19 +- .../src/ASN1c/ProtocolIE-SingleContainer.c | 350 +- .../src/ASN1c/ProtocolIE-SingleContainer.h | 402 +- .../kpm_e2sm/src/ASN1c/RANfunction-Item.c | 16 +- .../kpm_e2sm/src/ASN1c/RANfunction-Item.h | 8 +- .../kpm_e2sm/src/ASN1c/RANfunctionDefinition.c | 4 +- .../kpm_e2sm/src/ASN1c/RANfunctionDefinition.h | 6 +- .../kpm_e2sm/src/ASN1c/RANfunctionID-Item.c | 8 +- .../kpm_e2sm/src/ASN1c/RANfunctionID-Item.h | 6 +- .../kpm_e2sm/src/ASN1c/RANfunctionID.c | 9 +- .../kpm_e2sm/src/ASN1c/RANfunctionID.h | 6 +- .../kpm_e2sm/src/ASN1c/RANfunctionIDcause-Item.c | 8 +- .../kpm_e2sm/src/ASN1c/RANfunctionIDcause-Item.h | 6 +- .../kpm_e2sm/src/ASN1c/RANfunctionOID.c | 9 +- .../kpm_e2sm/src/ASN1c/RANfunctionOID.h | 6 +- .../kpm_e2sm/src/ASN1c/RANfunctionRevision.c | 9 +- .../kpm_e2sm/src/ASN1c/RANfunctionRevision.h | 6 +- .../kpm_e2sm/src/ASN1c/RANfunctions-List.c | 19 +- .../kpm_e2sm/src/ASN1c/RANfunctions-List.h | 7 +- .../kpm_e2sm/src/ASN1c/RANfunctionsID-List.c | 19 +- .../kpm_e2sm/src/ASN1c/RANfunctionsID-List.h | 7 +- .../kpm_e2sm/src/ASN1c/RANfunctionsIDcause-List.c | 19 +- .../kpm_e2sm/src/ASN1c/RANfunctionsIDcause-List.h | 7 +- .../kpm_e2sm/src/ASN1c/RICaction-Admitted-Item.c | 8 +- .../kpm_e2sm/src/ASN1c/RICaction-Admitted-Item.h | 6 +- .../kpm_e2sm/src/ASN1c/RICaction-Admitted-List.c | 17 +- .../kpm_e2sm/src/ASN1c/RICaction-Admitted-List.h | 7 +- .../src/ASN1c/RICaction-NotAdmitted-Item.c | 8 +- .../src/ASN1c/RICaction-NotAdmitted-Item.h | 6 +- .../src/ASN1c/RICaction-NotAdmitted-List.c | 17 +- .../src/ASN1c/RICaction-NotAdmitted-List.h | 7 +- .../kpm_e2sm/src/ASN1c/RICaction-ToBeSetup-Item.c | 8 +- .../kpm_e2sm/src/ASN1c/RICaction-ToBeSetup-Item.h | 6 +- .../kpm_e2sm/src/ASN1c/RICactionDefinition.c | 4 +- .../kpm_e2sm/src/ASN1c/RICactionDefinition.h | 6 +- .../e2sm_examples/kpm_e2sm/src/ASN1c/RICactionID.c | 9 +- .../e2sm_examples/kpm_e2sm/src/ASN1c/RICactionID.h | 6 +- .../kpm_e2sm/src/ASN1c/RICactionType.c | 9 +- .../kpm_e2sm/src/ASN1c/RICactionType.h | 6 +- .../kpm_e2sm/src/ASN1c/RICactions-ToBeSetup-List.c | 11 +- .../kpm_e2sm/src/ASN1c/RICactions-ToBeSetup-List.h | 4 +- .../kpm_e2sm/src/ASN1c/RICcallProcessID.c | 4 +- .../kpm_e2sm/src/ASN1c/RICcallProcessID.h | 6 +- .../kpm_e2sm/src/ASN1c/RICcontrolAckRequest.c | 23 +- .../kpm_e2sm/src/ASN1c/RICcontrolAckRequest.h | 11 +- .../kpm_e2sm/src/ASN1c/RICcontrolAcknowledge.c | 6 +- .../kpm_e2sm/src/ASN1c/RICcontrolAcknowledge.h | 6 +- .../kpm_e2sm/src/ASN1c/RICcontrolFailure.c | 6 +- .../kpm_e2sm/src/ASN1c/RICcontrolFailure.h | 6 +- .../kpm_e2sm/src/ASN1c/RICcontrolHeader.c | 4 +- .../kpm_e2sm/src/ASN1c/RICcontrolHeader.h | 6 +- .../kpm_e2sm/src/ASN1c/RICcontrolMessage.c | 4 +- .../kpm_e2sm/src/ASN1c/RICcontrolMessage.h | 6 +- .../kpm_e2sm/src/ASN1c/RICcontrolOutcome.c | 4 +- .../kpm_e2sm/src/ASN1c/RICcontrolOutcome.h | 6 +- .../kpm_e2sm/src/ASN1c/RICcontrolRequest.c | 6 +- .../kpm_e2sm/src/ASN1c/RICcontrolRequest.h | 6 +- .../kpm_e2sm/src/ASN1c/RICcontrolStatus.c | 57 - .../kpm_e2sm/src/ASN1c/RICcontrolStatus.h | 55 - .../kpm_e2sm/src/ASN1c/RICeventTriggerDefinition.c | 4 +- .../kpm_e2sm/src/ASN1c/RICeventTriggerDefinition.h | 6 +- .../kpm_e2sm/src/ASN1c/RICindication.c | 6 +- .../kpm_e2sm/src/ASN1c/RICindication.h | 6 +- .../kpm_e2sm/src/ASN1c/RICindicationHeader.c | 4 +- .../kpm_e2sm/src/ASN1c/RICindicationHeader.h | 6 +- .../kpm_e2sm/src/ASN1c/RICindicationMessage.c | 4 +- .../kpm_e2sm/src/ASN1c/RICindicationMessage.h | 6 +- .../kpm_e2sm/src/ASN1c/RICindicationSN.c | 11 +- .../kpm_e2sm/src/ASN1c/RICindicationSN.h | 7 +- .../kpm_e2sm/src/ASN1c/RICindicationType.c | 13 +- .../kpm_e2sm/src/ASN1c/RICindicationType.h | 8 +- .../kpm_e2sm/src/ASN1c/RICrequestID.c | 14 +- .../kpm_e2sm/src/ASN1c/RICrequestID.h | 4 +- .../kpm_e2sm/src/ASN1c/RICserviceQuery.c | 6 +- .../kpm_e2sm/src/ASN1c/RICserviceQuery.h | 6 +- .../kpm_e2sm/src/ASN1c/RICserviceUpdate.c | 6 +- .../kpm_e2sm/src/ASN1c/RICserviceUpdate.h | 6 +- .../src/ASN1c/RICserviceUpdateAcknowledge.c | 6 +- .../src/ASN1c/RICserviceUpdateAcknowledge.h | 6 +- .../kpm_e2sm/src/ASN1c/RICserviceUpdateFailure.c | 6 +- .../kpm_e2sm/src/ASN1c/RICserviceUpdateFailure.h | 6 +- .../src/ASN1c/RICsubscription-List-withCause.c | 53 + .../src/ASN1c/RICsubscription-List-withCause.h | 41 + .../src/ASN1c/RICsubscription-withCause-Item.c | 70 + .../src/ASN1c/RICsubscription-withCause-Item.h | 46 + .../src/ASN1c/RICsubscriptionDeleteFailure.c | 6 +- .../src/ASN1c/RICsubscriptionDeleteFailure.h | 6 +- .../src/ASN1c/RICsubscriptionDeleteRequest.c | 6 +- .../src/ASN1c/RICsubscriptionDeleteRequest.h | 6 +- .../src/ASN1c/RICsubscriptionDeleteRequired.c | 50 + .../src/ASN1c/RICsubscriptionDeleteRequired.h | 44 + .../src/ASN1c/RICsubscriptionDeleteResponse.c | 6 +- .../src/ASN1c/RICsubscriptionDeleteResponse.h | 6 +- .../kpm_e2sm/src/ASN1c/RICsubscriptionDetails.c | 8 +- .../kpm_e2sm/src/ASN1c/RICsubscriptionDetails.h | 6 +- .../kpm_e2sm/src/ASN1c/RICsubscriptionFailure.c | 6 +- .../kpm_e2sm/src/ASN1c/RICsubscriptionFailure.h | 6 +- .../kpm_e2sm/src/ASN1c/RICsubscriptionRequest.c | 6 +- .../kpm_e2sm/src/ASN1c/RICsubscriptionRequest.h | 6 +- .../kpm_e2sm/src/ASN1c/RICsubscriptionResponse.c | 6 +- .../kpm_e2sm/src/ASN1c/RICsubscriptionResponse.h | 6 +- .../kpm_e2sm/src/ASN1c/RICsubsequentAction.c | 4 +- .../kpm_e2sm/src/ASN1c/RICsubsequentAction.h | 4 +- .../kpm_e2sm/src/ASN1c/RICsubsequentActionType.c | 9 +- .../kpm_e2sm/src/ASN1c/RICsubsequentActionType.h | 6 +- .../kpm_e2sm/src/ASN1c/RICtimeToWait.c | 85 +- .../kpm_e2sm/src/ASN1c/RICtimeToWait.h | 41 +- .../kpm_e2sm/src/ASN1c/ResetRequest.c | 6 +- .../kpm_e2sm/src/ASN1c/ResetRequest.h | 6 +- .../kpm_e2sm/src/ASN1c/ResetResponse.c | 6 +- .../kpm_e2sm/src/ASN1c/ResetResponse.h | 6 +- .../kpm_e2sm/src/ASN1c/SuccessfulOutcome.c | 30 +- .../kpm_e2sm/src/ASN1c/SuccessfulOutcome.h | 5 +- .../kpm_e2sm/src/ASN1c/TNLinformation.c | 14 +- .../kpm_e2sm/src/ASN1c/TNLinformation.h | 4 +- e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/TNLusage.c | 9 +- e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/TNLusage.h | 6 +- .../e2sm_examples/kpm_e2sm/src/ASN1c/TimeToWait.c | 13 +- .../e2sm_examples/kpm_e2sm/src/ASN1c/TimeToWait.h | 8 +- .../kpm_e2sm/src/ASN1c/TransactionID.c | 64 + .../kpm_e2sm/src/ASN1c/TransactionID.h | 45 + .../kpm_e2sm/src/ASN1c/TriggeringMessage.c | 9 +- .../kpm_e2sm/src/ASN1c/TriggeringMessage.h | 6 +- .../e2sm_examples/kpm_e2sm/src/ASN1c/TypeOfError.c | 9 +- .../e2sm_examples/kpm_e2sm/src/ASN1c/TypeOfError.h | 6 +- .../kpm_e2sm/src/ASN1c/UnsuccessfulOutcome.c | 30 +- .../kpm_e2sm/src/ASN1c/UnsuccessfulOutcome.h | 5 +- .../kpm_e2sm/src/ASN1c/asn_constant.h | 1 + .../e2sm_examples/kpm_e2sm/src/kpm/CMakeLists.txt | 1 + e2sim/files.txt | 258 + e2sim/previous/ASN1c/ABS-Status.c | 91 - e2sim/previous/ASN1c/ABS-Status.h | 68 - e2sim/previous/ASN1c/ABSInformation.c | 92 - e2sim/previous/ASN1c/ABSInformation.h | 82 - e2sim/previous/ASN1c/ABSInformationFDD.c | 223 - e2sim/previous/ASN1c/ABSInformationFDD.h | 80 - e2sim/previous/ASN1c/ABSInformationTDD.c | 223 - e2sim/previous/ASN1c/ABSInformationTDD.h | 80 - e2sim/previous/ASN1c/ANY.c | 468 - e2sim/previous/ASN1c/ANY.h | 83 - e2sim/previous/ASN1c/AS-SecurityInformation.c | 91 - e2sim/previous/ASN1c/AS-SecurityInformation.h | 68 - e2sim/previous/ASN1c/ActionParameter-ID.c | 79 - e2sim/previous/ASN1c/ActionParameter-ID.h | 62 - e2sim/previous/ASN1c/ActionParameter-Item.c | 78 - e2sim/previous/ASN1c/ActionParameter-Item.h | 64 - e2sim/previous/ASN1c/ActionParameter-Value.c | 120 - e2sim/previous/ASN1c/ActionParameter-Value.h | 88 - e2sim/previous/ASN1c/ActivatedCellList-Item.c | 81 - e2sim/previous/ASN1c/ActivatedCellList-Item.h | 66 - e2sim/previous/ASN1c/ActivatedCellList.c | 68 - e2sim/previous/ASN1c/ActivatedCellList.h | 59 - e2sim/previous/ASN1c/ActivatedNRCellList-Item.c | 81 - e2sim/previous/ASN1c/ActivatedNRCellList-Item.h | 66 - e2sim/previous/ASN1c/ActivatedNRCellList.c | 68 - e2sim/previous/ASN1c/ActivatedNRCellList.h | 59 - e2sim/previous/ASN1c/ActivationID.c | 79 - e2sim/previous/ASN1c/ActivationID.h | 62 - .../ASN1c/AdditionalSpecialSubframe-Info.c | 101 - .../ASN1c/AdditionalSpecialSubframe-Info.h | 70 - .../AdditionalSpecialSubframeExtension-Info.c | 101 - .../AdditionalSpecialSubframeExtension-Info.h | 70 - .../ASN1c/AdditionalSpecialSubframePatterns.c | 89 - .../ASN1c/AdditionalSpecialSubframePatterns.h | 80 - .../AdditionalSpecialSubframePatternsExtension.c | 71 - .../AdditionalSpecialSubframePatternsExtension.h | 71 - .../ASN1c/AerialUEsubscriptionInformation.c | 73 - .../ASN1c/AerialUEsubscriptionInformation.h | 72 - .../ASN1c/AllocationAndRetentionPriority.c | 101 - .../ASN1c/AllocationAndRetentionPriority.h | 70 - e2sim/previous/ASN1c/AreaScopeOfMDT.c | 103 - e2sim/previous/ASN1c/AreaScopeOfMDT.h | 84 - e2sim/previous/ASN1c/AreaScopeOfQMC.c | 104 - e2sim/previous/ASN1c/AreaScopeOfQMC.h | 85 - e2sim/previous/ASN1c/BIT_STRING.c | 674 - e2sim/previous/ASN1c/BIT_STRING.h | 66 - e2sim/previous/ASN1c/BOOLEAN.c | 510 - e2sim/previous/ASN1c/BOOLEAN.h | 63 - e2sim/previous/ASN1c/BandInfo.c | 81 - e2sim/previous/ASN1c/BandInfo.h | 66 - e2sim/previous/ASN1c/BandwidthReducedSI.c | 71 - e2sim/previous/ASN1c/BandwidthReducedSI.h | 71 - e2sim/previous/ASN1c/BearerType.c | 71 - e2sim/previous/ASN1c/BearerType.h | 71 - e2sim/previous/ASN1c/BenefitMetric.c | 79 - e2sim/previous/ASN1c/BenefitMetric.h | 62 - e2sim/previous/ASN1c/BitRate.c | 85 - e2sim/previous/ASN1c/BitRate.h | 62 - e2sim/previous/ASN1c/BluetoothMeasConfig.c | 71 - e2sim/previous/ASN1c/BluetoothMeasConfig.h | 71 - e2sim/previous/ASN1c/BluetoothMeasConfigNameList.c | 67 - e2sim/previous/ASN1c/BluetoothMeasConfigNameList.h | 60 - .../ASN1c/BluetoothMeasurementConfiguration.c | 148 - .../ASN1c/BluetoothMeasurementConfiguration.h | 79 - e2sim/previous/ASN1c/BluetoothName.c | 80 - e2sim/previous/ASN1c/BluetoothName.h | 62 - e2sim/previous/ASN1c/BroadcastPLMNs-Item.c | 67 - e2sim/previous/ASN1c/BroadcastPLMNs-Item.h | 60 - e2sim/previous/ASN1c/CNTypeRestrictions.c | 68 - e2sim/previous/ASN1c/CNTypeRestrictions.h | 62 - e2sim/previous/ASN1c/CNTypeRestrictionsItem.c | 137 - e2sim/previous/ASN1c/CNTypeRestrictionsItem.h | 77 - e2sim/previous/ASN1c/COUNTValueExtended.c | 91 - e2sim/previous/ASN1c/COUNTValueExtended.h | 68 - e2sim/previous/ASN1c/COUNTvalue.c | 91 - e2sim/previous/ASN1c/COUNTvalue.h | 68 - e2sim/previous/ASN1c/COUNTvaluePDCP-SNlength18.c | 91 - e2sim/previous/ASN1c/COUNTvaluePDCP-SNlength18.h | 68 - e2sim/previous/ASN1c/CRNTI.c | 85 - e2sim/previous/ASN1c/CRNTI.h | 62 - e2sim/previous/ASN1c/CSG-Id.c | 85 - e2sim/previous/ASN1c/CSG-Id.h | 62 - e2sim/previous/ASN1c/CSGMembershipStatus.c | 71 - e2sim/previous/ASN1c/CSGMembershipStatus.h | 69 - e2sim/previous/ASN1c/CSIReportList.c | 132 - e2sim/previous/ASN1c/CSIReportList.h | 79 - e2sim/previous/ASN1c/CSIReportPerCSIProcess.c | 162 - e2sim/previous/ASN1c/CSIReportPerCSIProcess.h | 79 - e2sim/previous/ASN1c/CSIReportPerCSIProcessItem.c | 183 - e2sim/previous/ASN1c/CSIReportPerCSIProcessItem.h | 83 - e2sim/previous/ASN1c/CallProcess-ID.c | 49 - e2sim/previous/ASN1c/CallProcess-ID.h | 61 - e2sim/previous/ASN1c/CapacityValue.c | 79 - e2sim/previous/ASN1c/CapacityValue.h | 62 - e2sim/previous/ASN1c/Cause.c | 100 - e2sim/previous/ASN1c/Cause.h | 83 - e2sim/previous/ASN1c/CauseMisc.c | 79 - e2sim/previous/ASN1c/CauseMisc.h | 75 - e2sim/previous/ASN1c/CauseProtocol.c | 83 - e2sim/previous/ASN1c/CauseProtocol.h | 77 - e2sim/previous/ASN1c/CauseRIC.c | 95 - e2sim/previous/ASN1c/CauseRIC.h | 83 - e2sim/previous/ASN1c/CauseRadioNetwork.c | 171 - e2sim/previous/ASN1c/CauseRadioNetwork.h | 121 - e2sim/previous/ASN1c/CauseTransport.c | 73 - e2sim/previous/ASN1c/CauseTransport.h | 72 - e2sim/previous/ASN1c/Cell-Size.c | 77 - e2sim/previous/ASN1c/Cell-Size.h | 74 - e2sim/previous/ASN1c/CellActivationFailure.c | 68 - e2sim/previous/ASN1c/CellActivationFailure.h | 60 - e2sim/previous/ASN1c/CellActivationRequest.c | 68 - e2sim/previous/ASN1c/CellActivationRequest.h | 60 - e2sim/previous/ASN1c/CellActivationResponse.c | 68 - e2sim/previous/ASN1c/CellActivationResponse.h | 60 - e2sim/previous/ASN1c/CellAssistanceInformation.c | 127 - e2sim/previous/ASN1c/CellAssistanceInformation.h | 83 - e2sim/previous/ASN1c/CellBasedMDT.c | 81 - e2sim/previous/ASN1c/CellBasedMDT.h | 66 - e2sim/previous/ASN1c/CellBasedQMC.c | 81 - e2sim/previous/ASN1c/CellBasedQMC.h | 66 - e2sim/previous/ASN1c/CellCapacityClassValue.c | 79 - e2sim/previous/ASN1c/CellCapacityClassValue.h | 62 - .../previous/ASN1c/CellDeploymentStatusIndicator.c | 71 - .../previous/ASN1c/CellDeploymentStatusIndicator.h | 71 - e2sim/previous/ASN1c/CellIdListforMDT.c | 68 - e2sim/previous/ASN1c/CellIdListforMDT.h | 62 - e2sim/previous/ASN1c/CellIdListforQMC.c | 68 - e2sim/previous/ASN1c/CellIdListforQMC.h | 62 - e2sim/previous/ASN1c/CellInformation-Item.c | 114 - e2sim/previous/ASN1c/CellInformation-Item.h | 70 - e2sim/previous/ASN1c/CellInformation-List.c | 68 - e2sim/previous/ASN1c/CellInformation-List.h | 59 - e2sim/previous/ASN1c/CellMeasurementResult-Item.c | 114 - e2sim/previous/ASN1c/CellMeasurementResult-Item.h | 70 - e2sim/previous/ASN1c/CellMeasurementResult-List.c | 68 - e2sim/previous/ASN1c/CellMeasurementResult-List.h | 59 - e2sim/previous/ASN1c/CellReplacingInfo.c | 81 - e2sim/previous/ASN1c/CellReplacingInfo.h | 66 - e2sim/previous/ASN1c/CellReportingIndicator.c | 71 - e2sim/previous/ASN1c/CellReportingIndicator.h | 71 - e2sim/previous/ASN1c/CellToReport-Item.c | 81 - e2sim/previous/ASN1c/CellToReport-Item.h | 64 - e2sim/previous/ASN1c/CellToReport-List.c | 68 - e2sim/previous/ASN1c/CellToReport-List.h | 59 - e2sim/previous/ASN1c/CellType.c | 81 - e2sim/previous/ASN1c/CellType.h | 66 - e2sim/previous/ASN1c/CoMPHypothesisSet.c | 68 - e2sim/previous/ASN1c/CoMPHypothesisSet.h | 62 - e2sim/previous/ASN1c/CoMPHypothesisSetItem.c | 127 - e2sim/previous/ASN1c/CoMPHypothesisSetItem.h | 68 - e2sim/previous/ASN1c/CoMPInformation.c | 91 - e2sim/previous/ASN1c/CoMPInformation.h | 68 - e2sim/previous/ASN1c/CoMPInformationItem.c | 132 - e2sim/previous/ASN1c/CoMPInformationItem.h | 79 - e2sim/previous/ASN1c/CoMPInformationStartTime.c | 192 - e2sim/previous/ASN1c/CoMPInformationStartTime.h | 78 - .../ASN1c/CompleteFailureCauseInformation-Item.c | 91 - .../ASN1c/CompleteFailureCauseInformation-Item.h | 66 - .../ASN1c/CompleteFailureCauseInformation-List.c | 68 - .../ASN1c/CompleteFailureCauseInformation-List.h | 59 - e2sim/previous/ASN1c/CompositeAvailableCapacity.c | 91 - e2sim/previous/ASN1c/CompositeAvailableCapacity.h | 68 - .../ASN1c/CompositeAvailableCapacityGroup.c | 91 - .../ASN1c/CompositeAvailableCapacityGroup.h | 67 - e2sim/previous/ASN1c/Correlation-ID.c | 80 - e2sim/previous/ASN1c/Correlation-ID.h | 62 - e2sim/previous/ASN1c/CoverageModification-Item.c | 131 - e2sim/previous/ASN1c/CoverageModification-Item.h | 70 - e2sim/previous/ASN1c/CoverageModificationList.c | 68 - e2sim/previous/ASN1c/CoverageModificationList.h | 62 - e2sim/previous/ASN1c/Criticality.c | 73 - e2sim/previous/ASN1c/Criticality.h | 70 - .../ASN1c/CriticalityDiagnostics-IE-List.c | 142 - .../ASN1c/CriticalityDiagnostics-IE-List.h | 81 - e2sim/previous/ASN1c/CriticalityDiagnostics.c | 112 - e2sim/previous/ASN1c/CriticalityDiagnostics.h | 72 - e2sim/previous/ASN1c/CyclicPrefixDL.c | 73 - e2sim/previous/ASN1c/CyclicPrefixDL.h | 72 - e2sim/previous/ASN1c/CyclicPrefixUL.c | 73 - e2sim/previous/ASN1c/CyclicPrefixUL.h | 72 - e2sim/previous/ASN1c/DL-ABS-status.c | 79 - e2sim/previous/ASN1c/DL-ABS-status.h | 62 - e2sim/previous/ASN1c/DL-Forwarding.c | 71 - e2sim/previous/ASN1c/DL-Forwarding.h | 71 - e2sim/previous/ASN1c/DL-GBR-PRB-usage.c | 79 - e2sim/previous/ASN1c/DL-GBR-PRB-usage.h | 62 - e2sim/previous/ASN1c/DL-Total-PRB-usage.c | 79 - e2sim/previous/ASN1c/DL-Total-PRB-usage.h | 62 - e2sim/previous/ASN1c/DL-non-GBR-PRB-usage.c | 79 - e2sim/previous/ASN1c/DL-non-GBR-PRB-usage.h | 62 - .../previous/ASN1c/DL-scheduling-PDCCH-CCE-usage.c | 79 - .../previous/ASN1c/DL-scheduling-PDCCH-CCE-usage.h | 62 - .../ASN1c/DLResourceBitmapULandDLSharing.c | 85 - .../ASN1c/DLResourceBitmapULandDLSharing.h | 62 - e2sim/previous/ASN1c/DLResourcesULandDLSharing.c | 80 - e2sim/previous/ASN1c/DLResourcesULandDLSharing.h | 77 - e2sim/previous/ASN1c/DRB-ID.c | 79 - e2sim/previous/ASN1c/DRB-ID.h | 62 - .../ASN1c/DataForwardingAddressIndication.c | 68 - .../ASN1c/DataForwardingAddressIndication.h | 60 - .../previous/ASN1c/DataTrafficResourceIndication.c | 132 - .../previous/ASN1c/DataTrafficResourceIndication.h | 70 - e2sim/previous/ASN1c/DataTrafficResources.c | 85 - e2sim/previous/ASN1c/DataTrafficResources.h | 62 - e2sim/previous/ASN1c/DeactivationIndication.c | 71 - e2sim/previous/ASN1c/DeactivationIndication.h | 71 - e2sim/previous/ASN1c/DeliveryStatus.c | 111 - e2sim/previous/ASN1c/DeliveryStatus.h | 66 - e2sim/previous/ASN1c/DuplicationActivation.c | 73 - e2sim/previous/ASN1c/DuplicationActivation.h | 72 - .../ASN1c/DynamicDLTransmissionInformation.c | 81 - .../ASN1c/DynamicDLTransmissionInformation.h | 79 - e2sim/previous/ASN1c/DynamicNAICSInformation.c | 240 - e2sim/previous/ASN1c/DynamicNAICSInformation.h | 77 - e2sim/previous/ASN1c/E-RAB-ID.c | 79 - e2sim/previous/ASN1c/E-RAB-ID.h | 62 - e2sim/previous/ASN1c/E-RAB-Item.c | 91 - e2sim/previous/ASN1c/E-RAB-Item.h | 68 - e2sim/previous/ASN1c/E-RAB-Level-QoS-Parameters.c | 102 - e2sim/previous/ASN1c/E-RAB-Level-QoS-Parameters.h | 70 - e2sim/previous/ASN1c/E-RAB-List.c | 68 - e2sim/previous/ASN1c/E-RAB-List.h | 62 - e2sim/previous/ASN1c/E-RABUsageReport-Item.c | 315 - e2sim/previous/ASN1c/E-RABUsageReport-Item.h | 72 - e2sim/previous/ASN1c/E-RABUsageReportList.c | 68 - e2sim/previous/ASN1c/E-RABUsageReportList.h | 62 - e2sim/previous/ASN1c/E-RABs-Admitted-Item.c | 102 - e2sim/previous/ASN1c/E-RABs-Admitted-Item.h | 67 - e2sim/previous/ASN1c/E-RABs-Admitted-List.c | 68 - e2sim/previous/ASN1c/E-RABs-Admitted-List.h | 59 - .../E-RABs-Admitted-ToBeAdded-Item-SCG-Bearer.c | 112 - .../E-RABs-Admitted-ToBeAdded-Item-SCG-Bearer.h | 71 - .../E-RABs-Admitted-ToBeAdded-Item-Split-Bearer.c | 91 - .../E-RABs-Admitted-ToBeAdded-Item-Split-Bearer.h | 68 - .../ASN1c/E-RABs-Admitted-ToBeAdded-Item.c | 82 - .../ASN1c/E-RABs-Admitted-ToBeAdded-Item.h | 76 - .../ASN1c/E-RABs-Admitted-ToBeAdded-List.c | 68 - .../ASN1c/E-RABs-Admitted-ToBeAdded-List.h | 59 - ...RABs-Admitted-ToBeAdded-ModAckItem-SCG-Bearer.c | 112 - ...RABs-Admitted-ToBeAdded-ModAckItem-SCG-Bearer.h | 71 - ...Bs-Admitted-ToBeAdded-ModAckItem-Split-Bearer.c | 91 - ...Bs-Admitted-ToBeAdded-ModAckItem-Split-Bearer.h | 68 - .../ASN1c/E-RABs-Admitted-ToBeAdded-ModAckItem.c | 82 - .../ASN1c/E-RABs-Admitted-ToBeAdded-ModAckItem.h | 76 - .../ASN1c/E-RABs-Admitted-ToBeAdded-ModAckList.c | 68 - .../ASN1c/E-RABs-Admitted-ToBeAdded-ModAckList.h | 59 - ...BeAdded-SgNBAddReqAck-Item-SgNBPDCPnotpresent.c | 92 - ...BeAdded-SgNBAddReqAck-Item-SgNBPDCPnotpresent.h | 68 - ...-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPpresent.c | 144 - ...-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPpresent.h | 76 - .../E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item.c | 157 - .../E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item.h | 92 - .../E-RABs-Admitted-ToBeAdded-SgNBAddReqAckList.c | 68 - .../E-RABs-Admitted-ToBeAdded-SgNBAddReqAckList.h | 59 - ...-ToBeAdded-SgNBModAck-Item-SgNBPDCPnotpresent.c | 92 - ...-ToBeAdded-SgNBModAck-Item-SgNBPDCPnotpresent.h | 68 - ...ted-ToBeAdded-SgNBModAck-Item-SgNBPDCPpresent.c | 144 - ...ted-ToBeAdded-SgNBModAck-Item-SgNBPDCPpresent.h | 76 - .../E-RABs-Admitted-ToBeAdded-SgNBModAck-Item.c | 157 - .../E-RABs-Admitted-ToBeAdded-SgNBModAck-Item.h | 92 - .../E-RABs-Admitted-ToBeAdded-SgNBModAckList.c | 68 - .../E-RABs-Admitted-ToBeAdded-SgNBModAckList.h | 59 - ...s-Admitted-ToBeModified-ModAckItem-SCG-Bearer.c | 92 - ...s-Admitted-ToBeModified-ModAckItem-SCG-Bearer.h | 68 - ...Admitted-ToBeModified-ModAckItem-Split-Bearer.c | 92 - ...Admitted-ToBeModified-ModAckItem-Split-Bearer.h | 68 - .../E-RABs-Admitted-ToBeModified-ModAckItem.c | 82 - .../E-RABs-Admitted-ToBeModified-ModAckItem.h | 76 - .../E-RABs-Admitted-ToBeModified-ModAckList.c | 68 - .../E-RABs-Admitted-ToBeModified-ModAckList.h | 59 - ...BeModified-SgNBModAck-Item-SgNBPDCPnotpresent.c | 82 - ...BeModified-SgNBModAck-Item-SgNBPDCPnotpresent.h | 66 - ...-ToBeModified-SgNBModAck-Item-SgNBPDCPpresent.c | 114 - ...-ToBeModified-SgNBModAck-Item-SgNBPDCPpresent.h | 71 - .../E-RABs-Admitted-ToBeModified-SgNBModAck-Item.c | 157 - .../E-RABs-Admitted-ToBeModified-SgNBModAck-Item.h | 92 - .../E-RABs-Admitted-ToBeModified-SgNBModAckList.c | 68 - .../E-RABs-Admitted-ToBeModified-SgNBModAckList.h | 59 - ...s-Admitted-ToBeReleased-ModAckItem-SCG-Bearer.c | 81 - ...s-Admitted-ToBeReleased-ModAckItem-SCG-Bearer.h | 66 - ...Admitted-ToBeReleased-ModAckItem-Split-Bearer.c | 81 - ...Admitted-ToBeReleased-ModAckItem-Split-Bearer.h | 66 - .../E-RABs-Admitted-ToBeReleased-ModAckList.c | 68 - .../E-RABs-Admitted-ToBeReleased-ModAckList.h | 59 - ...BeReleased-SgNBModAck-Item-SgNBPDCPnotpresent.c | 71 - ...BeReleased-SgNBModAck-Item-SgNBPDCPnotpresent.h | 64 - ...-ToBeReleased-SgNBModAck-Item-SgNBPDCPpresent.c | 71 - ...-ToBeReleased-SgNBModAck-Item-SgNBPDCPpresent.h | 64 - .../E-RABs-Admitted-ToBeReleased-SgNBModAckList.c | 68 - .../E-RABs-Admitted-ToBeReleased-SgNBModAckList.h | 59 - ...RABs-Admitted-ToBeReleased-SgNBRelReqAck-Item.c | 91 - ...RABs-Admitted-ToBeReleased-SgNBRelReqAck-Item.h | 66 - ...-RABs-Admitted-ToBeReleased-SgNBRelReqAckList.c | 68 - ...-RABs-Admitted-ToBeReleased-SgNBRelReqAckList.h | 59 - .../ASN1c/E-RABs-Admitted-ToReleased-ModAckItem.c | 82 - .../ASN1c/E-RABs-Admitted-ToReleased-ModAckItem.h | 76 - .../E-RABs-Admitted-ToReleased-SgNBModAck-Item.c | 157 - .../E-RABs-Admitted-ToReleased-SgNBModAck-Item.h | 92 - ...eModified-SgNBModConf-Item-SgNBPDCPnotpresent.c | 82 - ...eModified-SgNBModConf-Item-SgNBPDCPnotpresent.h | 66 - ...ToBeModified-SgNBModConf-Item-SgNBPDCPpresent.c | 71 - ...ToBeModified-SgNBModConf-Item-SgNBPDCPpresent.h | 64 - .../E-RABs-AdmittedToBeModified-SgNBModConf-Item.c | 157 - .../E-RABs-AdmittedToBeModified-SgNBModConf-Item.h | 92 - .../E-RABs-AdmittedToBeModified-SgNBModConfList.c | 68 - .../E-RABs-AdmittedToBeModified-SgNBModConfList.h | 59 - .../ASN1c/E-RABs-DataForwardingAddress-Item.c | 91 - .../ASN1c/E-RABs-DataForwardingAddress-Item.h | 66 - .../ASN1c/E-RABs-DataForwardingAddress-List.c | 68 - .../ASN1c/E-RABs-DataForwardingAddress-List.h | 59 - .../ASN1c/E-RABs-SubjectToCounterCheck-List.c | 68 - .../ASN1c/E-RABs-SubjectToCounterCheck-List.h | 59 - .../ASN1c/E-RABs-SubjectToCounterCheckItem.c | 243 - .../ASN1c/E-RABs-SubjectToCounterCheckItem.h | 69 - .../ASN1c/E-RABs-SubjectToSgNBCounterCheck-Item.c | 243 - .../ASN1c/E-RABs-SubjectToSgNBCounterCheck-Item.h | 69 - .../ASN1c/E-RABs-SubjectToSgNBCounterCheck-List.c | 68 - .../ASN1c/E-RABs-SubjectToSgNBCounterCheck-List.h | 59 - .../ASN1c/E-RABs-SubjectToStatusTransfer-Item.c | 111 - .../ASN1c/E-RABs-SubjectToStatusTransfer-Item.h | 69 - .../ASN1c/E-RABs-SubjectToStatusTransfer-List.c | 68 - .../ASN1c/E-RABs-SubjectToStatusTransfer-List.h | 59 - .../ASN1c/E-RABs-ToBeAdded-Item-SCG-Bearer.c | 111 - .../ASN1c/E-RABs-ToBeAdded-Item-SCG-Bearer.h | 72 - .../ASN1c/E-RABs-ToBeAdded-Item-Split-Bearer.c | 101 - .../ASN1c/E-RABs-ToBeAdded-Item-Split-Bearer.h | 70 - e2sim/previous/ASN1c/E-RABs-ToBeAdded-Item.c | 82 - e2sim/previous/ASN1c/E-RABs-ToBeAdded-Item.h | 76 - .../previous/ASN1c/E-RABs-ToBeAdded-List-ModReq.c | 68 - .../previous/ASN1c/E-RABs-ToBeAdded-List-ModReq.h | 62 - e2sim/previous/ASN1c/E-RABs-ToBeAdded-List.c | 68 - e2sim/previous/ASN1c/E-RABs-ToBeAdded-List.h | 59 - .../ASN1c/E-RABs-ToBeAdded-ModReqItem-SCG-Bearer.c | 111 - .../ASN1c/E-RABs-ToBeAdded-ModReqItem-SCG-Bearer.h | 72 - .../E-RABs-ToBeAdded-ModReqItem-Split-Bearer.c | 101 - .../E-RABs-ToBeAdded-ModReqItem-Split-Bearer.h | 70 - e2sim/previous/ASN1c/E-RABs-ToBeAdded-ModReqItem.c | 82 - e2sim/previous/ASN1c/E-RABs-ToBeAdded-ModReqItem.h | 76 - ...-ToBeAdded-SgNBAddReq-Item-SgNBPDCPnotpresent.c | 123 - ...-ToBeAdded-SgNBAddReq-Item-SgNBPDCPnotpresent.h | 74 - ...ABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPpresent.c | 123 - ...ABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPpresent.h | 74 - .../ASN1c/E-RABs-ToBeAdded-SgNBAddReq-Item.c | 167 - .../ASN1c/E-RABs-ToBeAdded-SgNBAddReq-Item.h | 94 - .../ASN1c/E-RABs-ToBeAdded-SgNBAddReqList.c | 68 - .../ASN1c/E-RABs-ToBeAdded-SgNBAddReqList.h | 59 - ...-ToBeAdded-SgNBModReq-Item-SgNBPDCPnotpresent.c | 123 - ...-ToBeAdded-SgNBModReq-Item-SgNBPDCPnotpresent.h | 74 - ...ABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPpresent.c | 123 - ...ABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPpresent.h | 74 - .../ASN1c/E-RABs-ToBeAdded-SgNBModReq-Item.c | 167 - .../ASN1c/E-RABs-ToBeAdded-SgNBModReq-Item.h | 94 - .../ASN1c/E-RABs-ToBeAdded-SgNBModReq-List.c | 68 - .../ASN1c/E-RABs-ToBeAdded-SgNBModReq-List.h | 62 - .../ASN1c/E-RABs-ToBeModified-List-ModReq.c | 68 - .../ASN1c/E-RABs-ToBeModified-List-ModReq.h | 62 - .../E-RABs-ToBeModified-ModReqItem-SCG-Bearer.c | 103 - .../E-RABs-ToBeModified-ModReqItem-SCG-Bearer.h | 70 - .../E-RABs-ToBeModified-ModReqItem-Split-Bearer.c | 103 - .../E-RABs-ToBeModified-ModReqItem-Split-Bearer.h | 70 - .../ASN1c/E-RABs-ToBeModified-ModReqItem.c | 82 - .../ASN1c/E-RABs-ToBeModified-ModReqItem.h | 76 - ...BeModified-SgNBModReq-Item-SgNBPDCPnotpresent.c | 104 - ...BeModified-SgNBModReq-Item-SgNBPDCPnotpresent.h | 70 - ...-ToBeModified-SgNBModReq-Item-SgNBPDCPpresent.c | 114 - ...-ToBeModified-SgNBModReq-Item-SgNBPDCPpresent.h | 71 - .../ASN1c/E-RABs-ToBeModified-SgNBModReq-Item.c | 157 - .../ASN1c/E-RABs-ToBeModified-SgNBModReq-Item.h | 92 - .../ASN1c/E-RABs-ToBeModified-SgNBModReq-List.c | 68 - .../ASN1c/E-RABs-ToBeModified-SgNBModReq-List.h | 62 - ...eModified-SgNBModReqd-Item-SgNBPDCPnotpresent.c | 92 - ...eModified-SgNBModReqd-Item-SgNBPDCPnotpresent.h | 67 - ...ToBeModified-SgNBModReqd-Item-SgNBPDCPpresent.c | 114 - ...ToBeModified-SgNBModReqd-Item-SgNBPDCPpresent.h | 71 - .../ASN1c/E-RABs-ToBeModified-SgNBModReqd-Item.c | 157 - .../ASN1c/E-RABs-ToBeModified-SgNBModReqd-Item.h | 92 - .../ASN1c/E-RABs-ToBeModified-SgNBModReqdList.c | 68 - .../ASN1c/E-RABs-ToBeModified-SgNBModReqdList.h | 59 - .../ASN1c/E-RABs-ToBeReleased-List-ModReq.c | 68 - .../ASN1c/E-RABs-ToBeReleased-List-ModReq.h | 62 - .../ASN1c/E-RABs-ToBeReleased-List-RelConf.c | 68 - .../ASN1c/E-RABs-ToBeReleased-List-RelConf.h | 59 - .../ASN1c/E-RABs-ToBeReleased-List-RelReq.c | 68 - .../ASN1c/E-RABs-ToBeReleased-List-RelReq.h | 59 - .../E-RABs-ToBeReleased-ModReqItem-SCG-Bearer.c | 102 - .../E-RABs-ToBeReleased-ModReqItem-SCG-Bearer.h | 69 - .../E-RABs-ToBeReleased-ModReqItem-Split-Bearer.c | 92 - .../E-RABs-ToBeReleased-ModReqItem-Split-Bearer.h | 68 - .../ASN1c/E-RABs-ToBeReleased-ModReqItem.c | 82 - .../ASN1c/E-RABs-ToBeReleased-ModReqItem.h | 76 - e2sim/previous/ASN1c/E-RABs-ToBeReleased-ModReqd.c | 68 - e2sim/previous/ASN1c/E-RABs-ToBeReleased-ModReqd.h | 59 - .../ASN1c/E-RABs-ToBeReleased-ModReqdItem.c | 91 - .../ASN1c/E-RABs-ToBeReleased-ModReqdItem.h | 66 - .../E-RABs-ToBeReleased-RelConfItem-SCG-Bearer.c | 102 - .../E-RABs-ToBeReleased-RelConfItem-SCG-Bearer.h | 69 - .../E-RABs-ToBeReleased-RelConfItem-Split-Bearer.c | 92 - .../E-RABs-ToBeReleased-RelConfItem-Split-Bearer.h | 68 - .../ASN1c/E-RABs-ToBeReleased-RelConfItem.c | 82 - .../ASN1c/E-RABs-ToBeReleased-RelConfItem.h | 76 - .../E-RABs-ToBeReleased-RelReqItem-SCG-Bearer.c | 102 - .../E-RABs-ToBeReleased-RelReqItem-SCG-Bearer.h | 69 - .../E-RABs-ToBeReleased-RelReqItem-Split-Bearer.c | 92 - .../E-RABs-ToBeReleased-RelReqItem-Split-Bearer.h | 68 - .../ASN1c/E-RABs-ToBeReleased-RelReqItem.c | 82 - .../ASN1c/E-RABs-ToBeReleased-RelReqItem.h | 76 - ...eReleased-SgNBChaConf-Item-SgNBPDCPnotpresent.c | 71 - ...eReleased-SgNBChaConf-Item-SgNBPDCPnotpresent.h | 64 - ...ToBeReleased-SgNBChaConf-Item-SgNBPDCPpresent.c | 92 - ...ToBeReleased-SgNBChaConf-Item-SgNBPDCPpresent.h | 67 - .../ASN1c/E-RABs-ToBeReleased-SgNBChaConf-Item.c | 157 - .../ASN1c/E-RABs-ToBeReleased-SgNBChaConf-Item.h | 92 - .../ASN1c/E-RABs-ToBeReleased-SgNBChaConfList.c | 68 - .../ASN1c/E-RABs-ToBeReleased-SgNBChaConfList.h | 59 - ...BeReleased-SgNBModReq-Item-SgNBPDCPnotpresent.c | 71 - ...BeReleased-SgNBModReq-Item-SgNBPDCPnotpresent.h | 64 - ...-ToBeReleased-SgNBModReq-Item-SgNBPDCPpresent.c | 92 - ...-ToBeReleased-SgNBModReq-Item-SgNBPDCPpresent.h | 67 - .../ASN1c/E-RABs-ToBeReleased-SgNBModReq-Item.c | 157 - .../ASN1c/E-RABs-ToBeReleased-SgNBModReq-Item.h | 92 - .../ASN1c/E-RABs-ToBeReleased-SgNBModReq-List.c | 68 - .../ASN1c/E-RABs-ToBeReleased-SgNBModReq-List.h | 62 - .../ASN1c/E-RABs-ToBeReleased-SgNBModReqd-Item.c | 91 - .../ASN1c/E-RABs-ToBeReleased-SgNBModReqd-Item.h | 66 - .../ASN1c/E-RABs-ToBeReleased-SgNBModReqdList.c | 68 - .../ASN1c/E-RABs-ToBeReleased-SgNBModReqdList.h | 59 - ...eReleased-SgNBRelConf-Item-SgNBPDCPnotpresent.c | 71 - ...eReleased-SgNBRelConf-Item-SgNBPDCPnotpresent.h | 64 - ...ToBeReleased-SgNBRelConf-Item-SgNBPDCPpresent.c | 92 - ...ToBeReleased-SgNBRelConf-Item-SgNBPDCPpresent.h | 67 - .../ASN1c/E-RABs-ToBeReleased-SgNBRelConf-Item.c | 157 - .../ASN1c/E-RABs-ToBeReleased-SgNBRelConf-Item.h | 92 - .../ASN1c/E-RABs-ToBeReleased-SgNBRelConfList.c | 68 - .../ASN1c/E-RABs-ToBeReleased-SgNBRelConfList.h | 59 - ...BeReleased-SgNBRelReq-Item-SgNBPDCPnotpresent.c | 71 - ...BeReleased-SgNBRelReq-Item-SgNBPDCPnotpresent.h | 64 - ...-ToBeReleased-SgNBRelReq-Item-SgNBPDCPpresent.c | 92 - ...-ToBeReleased-SgNBRelReq-Item-SgNBPDCPpresent.h | 67 - .../ASN1c/E-RABs-ToBeReleased-SgNBRelReq-Item.c | 157 - .../ASN1c/E-RABs-ToBeReleased-SgNBRelReq-Item.h | 92 - .../ASN1c/E-RABs-ToBeReleased-SgNBRelReqList.c | 68 - .../ASN1c/E-RABs-ToBeReleased-SgNBRelReqList.h | 59 - .../ASN1c/E-RABs-ToBeReleased-SgNBRelReqd-Item.c | 91 - .../ASN1c/E-RABs-ToBeReleased-SgNBRelReqd-Item.h | 66 - .../ASN1c/E-RABs-ToBeReleased-SgNBRelReqdList.c | 68 - .../ASN1c/E-RABs-ToBeReleased-SgNBRelReqdList.h | 59 - e2sim/previous/ASN1c/E-RABs-ToBeSetup-Item.c | 111 - e2sim/previous/ASN1c/E-RABs-ToBeSetup-Item.h | 70 - e2sim/previous/ASN1c/E-RABs-ToBeSetup-List.c | 68 - e2sim/previous/ASN1c/E-RABs-ToBeSetup-List.h | 62 - .../previous/ASN1c/E-RABs-ToBeSetup-ListRetrieve.c | 68 - .../previous/ASN1c/E-RABs-ToBeSetup-ListRetrieve.h | 62 - .../previous/ASN1c/E-RABs-ToBeSetupRetrieve-Item.c | 101 - .../previous/ASN1c/E-RABs-ToBeSetupRetrieve-Item.h | 68 - e2sim/previous/ASN1c/E2AP-PDU.c | 93 - e2sim/previous/ASN1c/E2AP-PDU.h | 79 - .../previous/ASN1c/E2SM-gNB-X2-actionDefinition.c | 154 - .../previous/ASN1c/E2SM-gNB-X2-actionDefinition.h | 71 - e2sim/previous/ASN1c/E2SM-gNB-X2-callProcessID.c | 68 - e2sim/previous/ASN1c/E2SM-gNB-X2-callProcessID.h | 60 - e2sim/previous/ASN1c/E2SM-gNB-X2-controlHeader.c | 78 - e2sim/previous/ASN1c/E2SM-gNB-X2-controlHeader.h | 62 - e2sim/previous/ASN1c/E2SM-gNB-X2-controlMessage.c | 68 - e2sim/previous/ASN1c/E2SM-gNB-X2-controlMessage.h | 60 - .../ASN1c/E2SM-gNB-X2-eventTriggerDefinition.c | 174 - .../ASN1c/E2SM-gNB-X2-eventTriggerDefinition.h | 75 - .../previous/ASN1c/E2SM-gNB-X2-indicationHeader.c | 90 - .../previous/ASN1c/E2SM-gNB-X2-indicationHeader.h | 64 - .../previous/ASN1c/E2SM-gNB-X2-indicationMessage.c | 68 - .../previous/ASN1c/E2SM-gNB-X2-indicationMessage.h | 60 - e2sim/previous/ASN1c/EARFCN.c | 79 - e2sim/previous/ASN1c/EARFCN.h | 62 - e2sim/previous/ASN1c/EARFCNExtension.c | 79 - e2sim/previous/ASN1c/EARFCNExtension.h | 62 - e2sim/previous/ASN1c/ECGI.c | 91 - e2sim/previous/ASN1c/ECGI.h | 68 - e2sim/previous/ASN1c/EN-DC-ResourceConfiguration.c | 245 - e2sim/previous/ASN1c/EN-DC-ResourceConfiguration.h | 94 - e2sim/previous/ASN1c/ENB-ID.c | 244 - e2sim/previous/ASN1c/ENB-ID.h | 79 - e2sim/previous/ASN1c/ENBConfigurationUpdate.c | 68 - e2sim/previous/ASN1c/ENBConfigurationUpdate.h | 62 - .../ASN1c/ENBConfigurationUpdateAcknowledge.c | 68 - .../ASN1c/ENBConfigurationUpdateAcknowledge.h | 62 - .../previous/ASN1c/ENBConfigurationUpdateFailure.c | 68 - .../previous/ASN1c/ENBConfigurationUpdateFailure.h | 62 - e2sim/previous/ASN1c/ENDCCellActivationFailure.c | 68 - e2sim/previous/ASN1c/ENDCCellActivationFailure.h | 60 - e2sim/previous/ASN1c/ENDCCellActivationRequest.c | 68 - e2sim/previous/ASN1c/ENDCCellActivationRequest.h | 60 - e2sim/previous/ASN1c/ENDCCellActivationResponse.c | 68 - e2sim/previous/ASN1c/ENDCCellActivationResponse.h | 60 - e2sim/previous/ASN1c/ENDCConfigurationUpdate.c | 68 - e2sim/previous/ASN1c/ENDCConfigurationUpdate.h | 62 - .../ASN1c/ENDCConfigurationUpdateAcknowledge.c | 68 - .../ASN1c/ENDCConfigurationUpdateAcknowledge.h | 62 - .../ASN1c/ENDCConfigurationUpdateFailure.c | 68 - .../ASN1c/ENDCConfigurationUpdateFailure.h | 62 - e2sim/previous/ASN1c/ENDCPartialResetConfirm.c | 68 - e2sim/previous/ASN1c/ENDCPartialResetConfirm.h | 60 - e2sim/previous/ASN1c/ENDCPartialResetRequired.c | 68 - e2sim/previous/ASN1c/ENDCPartialResetRequired.h | 60 - e2sim/previous/ASN1c/ENDCX2RemovalFailure.c | 68 - e2sim/previous/ASN1c/ENDCX2RemovalFailure.h | 60 - e2sim/previous/ASN1c/ENDCX2RemovalRequest.c | 68 - e2sim/previous/ASN1c/ENDCX2RemovalRequest.h | 60 - e2sim/previous/ASN1c/ENDCX2RemovalResponse.c | 68 - e2sim/previous/ASN1c/ENDCX2RemovalResponse.h | 60 - e2sim/previous/ASN1c/ENDCX2SetupFailure.c | 68 - e2sim/previous/ASN1c/ENDCX2SetupFailure.h | 62 - e2sim/previous/ASN1c/ENDCX2SetupRequest.c | 68 - e2sim/previous/ASN1c/ENDCX2SetupRequest.h | 62 - e2sim/previous/ASN1c/ENDCX2SetupResponse.c | 68 - e2sim/previous/ASN1c/ENDCX2SetupResponse.h | 62 - e2sim/previous/ASN1c/EPLMNs.c | 67 - e2sim/previous/ASN1c/EPLMNs.h | 60 - e2sim/previous/ASN1c/ERABActivityNotifyItem.c | 91 - e2sim/previous/ASN1c/ERABActivityNotifyItem.h | 68 - e2sim/previous/ASN1c/ERABActivityNotifyItemList.c | 68 - e2sim/previous/ASN1c/ERABActivityNotifyItemList.h | 62 - e2sim/previous/ASN1c/EUTRA-Mode-Info.c | 82 - e2sim/previous/ASN1c/EUTRA-Mode-Info.h | 79 - e2sim/previous/ASN1c/EUTRANCellIdentifier.c | 85 - e2sim/previous/ASN1c/EUTRANCellIdentifier.h | 62 - .../ASN1c/EUTRANRCellResourceCoordinationRequest.c | 68 - .../ASN1c/EUTRANRCellResourceCoordinationRequest.h | 60 - .../EUTRANRCellResourceCoordinationResponse.c | 68 - .../EUTRANRCellResourceCoordinationResponse.h | 60 - e2sim/previous/ASN1c/EUTRANTraceID.c | 80 - e2sim/previous/ASN1c/EUTRANTraceID.h | 62 - e2sim/previous/ASN1c/EncryptionAlgorithms.c | 85 - e2sim/previous/ASN1c/EncryptionAlgorithms.h | 62 - e2sim/previous/ASN1c/EnhancedRNTP.c | 138 - e2sim/previous/ASN1c/EnhancedRNTP.h | 70 - e2sim/previous/ASN1c/EnhancedRNTPStartTime.c | 151 - e2sim/previous/ASN1c/EnhancedRNTPStartTime.h | 67 - e2sim/previous/ASN1c/ErrorIndication.c | 68 - e2sim/previous/ASN1c/ErrorIndication.h | 62 - e2sim/previous/ASN1c/EventType.c | 71 - e2sim/previous/ASN1c/EventType.h | 71 - e2sim/previous/ASN1c/ExpectedActivityPeriod.c | 79 - e2sim/previous/ASN1c/ExpectedActivityPeriod.h | 62 - e2sim/previous/ASN1c/ExpectedHOInterval.c | 83 - e2sim/previous/ASN1c/ExpectedHOInterval.h | 77 - e2sim/previous/ASN1c/ExpectedIdlePeriod.c | 79 - e2sim/previous/ASN1c/ExpectedIdlePeriod.h | 62 - e2sim/previous/ASN1c/ExpectedUEActivityBehaviour.c | 101 - e2sim/previous/ASN1c/ExpectedUEActivityBehaviour.h | 70 - e2sim/previous/ASN1c/ExpectedUEBehaviour.c | 92 - e2sim/previous/ASN1c/ExpectedUEBehaviour.h | 68 - e2sim/previous/ASN1c/ExtendedBitRate.c | 85 - e2sim/previous/ASN1c/ExtendedBitRate.h | 62 - .../ASN1c/ExtendedULInterferenceOverloadInfo.c | 127 - .../ASN1c/ExtendedULInterferenceOverloadInfo.h | 68 - e2sim/previous/ASN1c/FDD-Info.c | 111 - e2sim/previous/ASN1c/FDD-Info.h | 70 - .../FDD-InfoNeighbourServedNRCell-Information.c | 91 - .../FDD-InfoNeighbourServedNRCell-Information.h | 67 - .../ASN1c/FDD-InfoServedNRCell-Information.c | 111 - .../ASN1c/FDD-InfoServedNRCell-Information.h | 70 - e2sim/previous/ASN1c/FiveGS-TAC.c | 80 - e2sim/previous/ASN1c/FiveGS-TAC.h | 62 - e2sim/previous/ASN1c/ForbiddenInterRATs.c | 81 - e2sim/previous/ASN1c/ForbiddenInterRATs.h | 76 - e2sim/previous/ASN1c/ForbiddenLACs.c | 67 - e2sim/previous/ASN1c/ForbiddenLACs.h | 60 - e2sim/previous/ASN1c/ForbiddenLAs-Item.c | 91 - e2sim/previous/ASN1c/ForbiddenLAs-Item.h | 68 - e2sim/previous/ASN1c/ForbiddenLAs.c | 68 - e2sim/previous/ASN1c/ForbiddenLAs.h | 62 - e2sim/previous/ASN1c/ForbiddenTACs.c | 67 - e2sim/previous/ASN1c/ForbiddenTACs.h | 60 - e2sim/previous/ASN1c/ForbiddenTAs-Item.c | 91 - e2sim/previous/ASN1c/ForbiddenTAs-Item.h | 68 - e2sim/previous/ASN1c/ForbiddenTAs.c | 68 - e2sim/previous/ASN1c/ForbiddenTAs.h | 62 - e2sim/previous/ASN1c/Fourframes.c | 85 - e2sim/previous/ASN1c/Fourframes.h | 62 - e2sim/previous/ASN1c/FreqBandIndicator.c | 79 - e2sim/previous/ASN1c/FreqBandIndicator.h | 62 - e2sim/previous/ASN1c/FreqBandIndicatorPriority.c | 73 - e2sim/previous/ASN1c/FreqBandIndicatorPriority.h | 72 - e2sim/previous/ASN1c/FreqBandNrItem.c | 195 - e2sim/previous/ASN1c/FreqBandNrItem.h | 75 - e2sim/previous/ASN1c/GBR-QosInformation.c | 111 - e2sim/previous/ASN1c/GBR-QosInformation.h | 69 - e2sim/previous/ASN1c/GNB-ID.c | 106 - e2sim/previous/ASN1c/GNB-ID.h | 74 - e2sim/previous/ASN1c/GNBOverloadInformation.c | 73 - e2sim/previous/ASN1c/GNBOverloadInformation.h | 72 - e2sim/previous/ASN1c/GNBStatusIndication.c | 68 - e2sim/previous/ASN1c/GNBStatusIndication.h | 62 - e2sim/previous/ASN1c/GTP-TEI.c | 80 - e2sim/previous/ASN1c/GTP-TEI.h | 62 - e2sim/previous/ASN1c/GTPtunnelEndpoint.c | 91 - e2sim/previous/ASN1c/GTPtunnelEndpoint.h | 68 - e2sim/previous/ASN1c/GU-Group-ID.c | 91 - e2sim/previous/ASN1c/GU-Group-ID.h | 68 - e2sim/previous/ASN1c/GUGroupIDList.c | 68 - e2sim/previous/ASN1c/GUGroupIDList.h | 62 - e2sim/previous/ASN1c/GUMMEI.c | 91 - e2sim/previous/ASN1c/GUMMEI.h | 68 - e2sim/previous/ASN1c/GlobalENB-ID.c | 91 - e2sim/previous/ASN1c/GlobalENB-ID.h | 68 - e2sim/previous/ASN1c/GlobalGNB-ID.c | 91 - e2sim/previous/ASN1c/GlobalGNB-ID.h | 68 - e2sim/previous/ASN1c/HFN.c | 79 - e2sim/previous/ASN1c/HFN.h | 62 - e2sim/previous/ASN1c/HFNModified.c | 79 - e2sim/previous/ASN1c/HFNModified.h | 62 - e2sim/previous/ASN1c/HFNforPDCP-SNlength18.c | 79 - e2sim/previous/ASN1c/HFNforPDCP-SNlength18.h | 62 - e2sim/previous/ASN1c/HWLoadIndicator.c | 91 - e2sim/previous/ASN1c/HWLoadIndicator.h | 67 - e2sim/previous/ASN1c/HandoverCancel.c | 68 - e2sim/previous/ASN1c/HandoverCancel.h | 60 - e2sim/previous/ASN1c/HandoverPreparationFailure.c | 68 - e2sim/previous/ASN1c/HandoverPreparationFailure.h | 60 - e2sim/previous/ASN1c/HandoverReport.c | 68 - e2sim/previous/ASN1c/HandoverReport.h | 60 - e2sim/previous/ASN1c/HandoverReportType.c | 75 - e2sim/previous/ASN1c/HandoverReportType.h | 73 - e2sim/previous/ASN1c/HandoverRequest.c | 68 - e2sim/previous/ASN1c/HandoverRequest.h | 60 - e2sim/previous/ASN1c/HandoverRequestAcknowledge.c | 68 - e2sim/previous/ASN1c/HandoverRequestAcknowledge.h | 60 - e2sim/previous/ASN1c/HandoverRestrictionList.c | 124 - e2sim/previous/ASN1c/HandoverRestrictionList.h | 74 - e2sim/previous/ASN1c/INTEGER.c | 1753 - e2sim/previous/ASN1c/INTEGER.h | 126 - e2sim/previous/ASN1c/InitiatingMessage.c | 526 - e2sim/previous/ASN1c/InitiatingMessage.h | 144 - .../ASN1c/InitiatingNodeType-EndcConfigUpdate.c | 81 - .../ASN1c/InitiatingNodeType-EndcConfigUpdate.h | 75 - .../ASN1c/InitiatingNodeType-EndcX2Removal.c | 81 - .../ASN1c/InitiatingNodeType-EndcX2Removal.h | 75 - .../ASN1c/InitiatingNodeType-EndcX2Setup.c | 81 - .../ASN1c/InitiatingNodeType-EndcX2Setup.h | 75 - ...atingNodeType-EutranrCellResourceCoordination.c | 81 - ...atingNodeType-EutranrCellResourceCoordination.h | 75 - .../previous/ASN1c/IntegrityProtectionAlgorithms.c | 85 - .../previous/ASN1c/IntegrityProtectionAlgorithms.h | 62 - e2sim/previous/ASN1c/Interface-ID.c | 82 - e2sim/previous/ASN1c/Interface-ID.h | 79 - e2sim/previous/ASN1c/InterfaceDirection.c | 73 - e2sim/previous/ASN1c/InterfaceDirection.h | 72 - e2sim/previous/ASN1c/InterfaceMessage.c | 49 - e2sim/previous/ASN1c/InterfaceMessage.h | 61 - e2sim/previous/ASN1c/InterfaceMessageType.c | 78 - e2sim/previous/ASN1c/InterfaceMessageType.h | 64 - e2sim/previous/ASN1c/InterfaceProtocolIE-ID.c | 79 - e2sim/previous/ASN1c/InterfaceProtocolIE-ID.h | 62 - e2sim/previous/ASN1c/InterfaceProtocolIE-Item.c | 88 - e2sim/previous/ASN1c/InterfaceProtocolIE-Item.h | 66 - e2sim/previous/ASN1c/InterfaceProtocolIE-Test.c | 79 - e2sim/previous/ASN1c/InterfaceProtocolIE-Test.h | 75 - e2sim/previous/ASN1c/InterfaceProtocolIE-Value.c | 110 - e2sim/previous/ASN1c/InterfaceProtocolIE-Value.h | 85 - e2sim/previous/ASN1c/InterfacesToTrace.c | 85 - e2sim/previous/ASN1c/InterfacesToTrace.h | 62 - e2sim/previous/ASN1c/InvokeIndication.c | 75 - e2sim/previous/ASN1c/InvokeIndication.h | 73 - e2sim/previous/ASN1c/Key-eNodeB-Star.c | 85 - e2sim/previous/ASN1c/Key-eNodeB-Star.h | 62 - e2sim/previous/ASN1c/LAC.c | 80 - e2sim/previous/ASN1c/LAC.h | 62 - e2sim/previous/ASN1c/LCID.c | 79 - e2sim/previous/ASN1c/LCID.h | 62 - e2sim/previous/ASN1c/LHN-ID.c | 80 - e2sim/previous/ASN1c/LHN-ID.h | 62 - e2sim/previous/ASN1c/LastVisitedCell-Item.c | 102 - e2sim/previous/ASN1c/LastVisitedCell-Item.h | 84 - .../ASN1c/LastVisitedEUTRANCellInformation.c | 101 - .../ASN1c/LastVisitedEUTRANCellInformation.h | 70 - .../ASN1c/LastVisitedGERANCellInformation.c | 70 - .../ASN1c/LastVisitedGERANCellInformation.h | 74 - .../ASN1c/LastVisitedNGRANCellInformation.c | 49 - .../ASN1c/LastVisitedNGRANCellInformation.h | 61 - .../ASN1c/LastVisitedUTRANCellInformation.c | 49 - .../ASN1c/LastVisitedUTRANCellInformation.h | 61 - e2sim/previous/ASN1c/Limited-list.c | 122 - e2sim/previous/ASN1c/Limited-list.h | 77 - e2sim/previous/ASN1c/Links-to-log.c | 75 - e2sim/previous/ASN1c/Links-to-log.h | 73 - .../ASN1c/ListofEUTRACellsinEUTRACoordinationReq.c | 68 - .../ASN1c/ListofEUTRACellsinEUTRACoordinationReq.h | 59 - .../ListofEUTRACellsinEUTRACoordinationResp.c | 68 - .../ListofEUTRACellsinEUTRACoordinationResp.h | 59 - .../ASN1c/ListofEUTRACellsinNRCoordinationReq.c | 68 - .../ASN1c/ListofEUTRACellsinNRCoordinationReq.h | 59 - .../ASN1c/ListofNRCellsinNRCoordinationReq.c | 68 - .../ASN1c/ListofNRCellsinNRCoordinationReq.h | 59 - .../ASN1c/ListofNRCellsinNRCoordinationResp.c | 68 - .../ASN1c/ListofNRCellsinNRCoordinationResp.h | 59 - e2sim/previous/ASN1c/LoadIndicator.c | 77 - e2sim/previous/ASN1c/LoadIndicator.h | 74 - e2sim/previous/ASN1c/LoadInformation.c | 68 - e2sim/previous/ASN1c/LoadInformation.h | 62 - .../previous/ASN1c/LocationReportingInformation.c | 91 - .../previous/ASN1c/LocationReportingInformation.h | 68 - e2sim/previous/ASN1c/M1PeriodicReporting.c | 91 - e2sim/previous/ASN1c/M1PeriodicReporting.h | 68 - e2sim/previous/ASN1c/M1ReportingTrigger.c | 75 - e2sim/previous/ASN1c/M1ReportingTrigger.h | 73 - e2sim/previous/ASN1c/M1ThresholdEventA2.c | 81 - e2sim/previous/ASN1c/M1ThresholdEventA2.h | 66 - e2sim/previous/ASN1c/M3Configuration.c | 81 - e2sim/previous/ASN1c/M3Configuration.h | 66 - e2sim/previous/ASN1c/M3period.c | 75 - e2sim/previous/ASN1c/M3period.h | 73 - e2sim/previous/ASN1c/M4Configuration.c | 91 - e2sim/previous/ASN1c/M4Configuration.h | 68 - e2sim/previous/ASN1c/M4period.c | 79 - e2sim/previous/ASN1c/M4period.h | 75 - e2sim/previous/ASN1c/M5Configuration.c | 91 - e2sim/previous/ASN1c/M5Configuration.h | 68 - e2sim/previous/ASN1c/M5period.c | 79 - e2sim/previous/ASN1c/M5period.h | 75 - e2sim/previous/ASN1c/M6Configuration.c | 101 - e2sim/previous/ASN1c/M6Configuration.h | 70 - e2sim/previous/ASN1c/M6delay-threshold.c | 93 - e2sim/previous/ASN1c/M6delay-threshold.h | 82 - e2sim/previous/ASN1c/M6report-interval.c | 77 - e2sim/previous/ASN1c/M6report-interval.h | 74 - e2sim/previous/ASN1c/M7Configuration.c | 91 - e2sim/previous/ASN1c/M7Configuration.h | 68 - e2sim/previous/ASN1c/M7period.c | 79 - e2sim/previous/ASN1c/M7period.h | 62 - .../ASN1c/MBMS-Service-Area-Identity-List.c | 67 - .../ASN1c/MBMS-Service-Area-Identity-List.h | 60 - e2sim/previous/ASN1c/MBMS-Service-Area-Identity.c | 80 - e2sim/previous/ASN1c/MBMS-Service-Area-Identity.h | 62 - e2sim/previous/ASN1c/MBSFN-Subframe-Info.c | 101 - e2sim/previous/ASN1c/MBSFN-Subframe-Info.h | 70 - e2sim/previous/ASN1c/MBSFN-Subframe-Infolist.c | 68 - e2sim/previous/ASN1c/MBSFN-Subframe-Infolist.h | 62 - e2sim/previous/ASN1c/MDT-Activation.c | 73 - e2sim/previous/ASN1c/MDT-Activation.h | 72 - e2sim/previous/ASN1c/MDT-Configuration.c | 133 - e2sim/previous/ASN1c/MDT-Configuration.h | 76 - e2sim/previous/ASN1c/MDT-Location-Info.c | 85 - e2sim/previous/ASN1c/MDT-Location-Info.h | 62 - e2sim/previous/ASN1c/MDTPLMNList.c | 67 - e2sim/previous/ASN1c/MDTPLMNList.h | 60 - e2sim/previous/ASN1c/MME-Code.c | 80 - e2sim/previous/ASN1c/MME-Code.h | 62 - e2sim/previous/ASN1c/MME-Group-ID.c | 80 - e2sim/previous/ASN1c/MME-Group-ID.h | 62 - e2sim/previous/ASN1c/MakeBeforeBreakIndicator.c | 71 - e2sim/previous/ASN1c/MakeBeforeBreakIndicator.h | 71 - e2sim/previous/ASN1c/Makefile.am.asn1convert | 31 - e2sim/previous/ASN1c/Makefile.am.libasncodec | 1592 - e2sim/previous/ASN1c/ManagementBasedMDTallowed.c | 71 - e2sim/previous/ASN1c/ManagementBasedMDTallowed.h | 71 - e2sim/previous/ASN1c/Masked-IMEISV.c | 85 - e2sim/previous/ASN1c/Masked-IMEISV.h | 62 - .../ASN1c/MeNBCoordinationAssistanceInformation.c | 71 - .../ASN1c/MeNBCoordinationAssistanceInformation.h | 71 - .../ASN1c/MeNBResourceCoordinationInformation.c | 173 - .../ASN1c/MeNBResourceCoordinationInformation.h | 69 - e2sim/previous/ASN1c/MeNBtoSeNBContainer.c | 49 - e2sim/previous/ASN1c/MeNBtoSeNBContainer.h | 61 - e2sim/previous/ASN1c/MeNBtoSgNBContainer.c | 49 - e2sim/previous/ASN1c/MeNBtoSgNBContainer.h | 61 - e2sim/previous/ASN1c/Measurement-ID.c | 79 - e2sim/previous/ASN1c/Measurement-ID.h | 62 - .../previous/ASN1c/MeasurementFailureCause-Item.c | 91 - .../previous/ASN1c/MeasurementFailureCause-Item.h | 66 - .../previous/ASN1c/MeasurementFailureCause-List.c | 68 - .../previous/ASN1c/MeasurementFailureCause-List.h | 62 - .../ASN1c/MeasurementInitiationResult-Item.c | 92 - .../ASN1c/MeasurementInitiationResult-Item.h | 66 - .../ASN1c/MeasurementInitiationResult-List.c | 68 - .../ASN1c/MeasurementInitiationResult-List.h | 59 - e2sim/previous/ASN1c/MeasurementThresholdA2.c | 80 - e2sim/previous/ASN1c/MeasurementThresholdA2.h | 77 - e2sim/previous/ASN1c/MeasurementsToActivate.c | 85 - e2sim/previous/ASN1c/MeasurementsToActivate.h | 62 - e2sim/previous/ASN1c/MobilityChangeAcknowledge.c | 68 - e2sim/previous/ASN1c/MobilityChangeAcknowledge.h | 60 - e2sim/previous/ASN1c/MobilityChangeFailure.c | 68 - e2sim/previous/ASN1c/MobilityChangeFailure.h | 60 - e2sim/previous/ASN1c/MobilityChangeRequest.c | 68 - e2sim/previous/ASN1c/MobilityChangeRequest.h | 60 - e2sim/previous/ASN1c/MobilityInformation.c | 85 - e2sim/previous/ASN1c/MobilityInformation.h | 61 - .../previous/ASN1c/MobilityParametersInformation.c | 98 - .../previous/ASN1c/MobilityParametersInformation.h | 62 - .../ASN1c/MobilityParametersModificationRange.c | 138 - .../ASN1c/MobilityParametersModificationRange.h | 63 - e2sim/previous/ASN1c/MultibandInfoList.c | 68 - e2sim/previous/ASN1c/MultibandInfoList.h | 62 - e2sim/previous/ASN1c/NR-TxBW.c | 91 - e2sim/previous/ASN1c/NR-TxBW.h | 68 - e2sim/previous/ASN1c/NRCGI.c | 91 - e2sim/previous/ASN1c/NRCGI.h | 68 - e2sim/previous/ASN1c/NRCellIdentifier.c | 85 - e2sim/previous/ASN1c/NRCellIdentifier.h | 62 - e2sim/previous/ASN1c/NRFreqInfo.c | 206 - e2sim/previous/ASN1c/NRFreqInfo.h | 77 - e2sim/previous/ASN1c/NRNRB.c | 127 - e2sim/previous/ASN1c/NRNRB.h | 99 - e2sim/previous/ASN1c/NRNeighbour-Information.c | 228 - e2sim/previous/ASN1c/NRNeighbour-Information.h | 111 - e2sim/previous/ASN1c/NRPCI.c | 79 - e2sim/previous/ASN1c/NRPCI.h | 62 - e2sim/previous/ASN1c/NRS-NSSS-PowerOffset.c | 75 - e2sim/previous/ASN1c/NRS-NSSS-PowerOffset.h | 73 - e2sim/previous/ASN1c/NRSCS.c | 77 - e2sim/previous/ASN1c/NRSCS.h | 74 - e2sim/previous/ASN1c/NRUESecurityCapabilities.c | 91 - e2sim/previous/ASN1c/NRUESecurityCapabilities.h | 68 - e2sim/previous/ASN1c/NRencryptionAlgorithms.c | 85 - e2sim/previous/ASN1c/NRencryptionAlgorithms.h | 62 - .../ASN1c/NRintegrityProtectionAlgorithms.c | 85 - .../ASN1c/NRintegrityProtectionAlgorithms.h | 62 - e2sim/previous/ASN1c/NRrestrictionin5GS.c | 71 - e2sim/previous/ASN1c/NRrestrictionin5GS.h | 71 - .../ASN1c/NRrestrictioninEPSasSecondaryRAT.c | 71 - .../ASN1c/NRrestrictioninEPSasSecondaryRAT.h | 71 - .../ASN1c/NSSS-NumOccasionDifferentPrecoder.c | 75 - .../ASN1c/NSSS-NumOccasionDifferentPrecoder.h | 73 - e2sim/previous/ASN1c/NULL.c | 317 - e2sim/previous/ASN1c/NULL.h | 63 - e2sim/previous/ASN1c/NativeEnumerated.c | 385 - e2sim/previous/ASN1c/NativeEnumerated.h | 63 - e2sim/previous/ASN1c/NativeInteger.c | 568 - e2sim/previous/ASN1c/NativeInteger.h | 64 - e2sim/previous/ASN1c/Neighbour-Information.c | 142 - e2sim/previous/ASN1c/Neighbour-Information.h | 81 - e2sim/previous/ASN1c/NewDRBIDrequest.c | 71 - e2sim/previous/ASN1c/NewDRBIDrequest.h | 71 - e2sim/previous/ASN1c/NextHopChainingCount.c | 79 - e2sim/previous/ASN1c/NextHopChainingCount.h | 62 - e2sim/previous/ASN1c/Number-of-Antennaports.c | 75 - e2sim/previous/ASN1c/Number-of-Antennaports.h | 73 - e2sim/previous/ASN1c/OBJECT_IDENTIFIER.c | 674 - e2sim/previous/ASN1c/OBJECT_IDENTIFIER.h | 174 - e2sim/previous/ASN1c/OCTET_STRING.c | 2427 - e2sim/previous/ASN1c/OCTET_STRING.h | 120 - e2sim/previous/ASN1c/OPEN_TYPE.c | 527 - e2sim/previous/ASN1c/OPEN_TYPE.h | 95 - .../ASN1c/OffsetOfNbiotChannelNumberToEARFCN.c | 111 - .../ASN1c/OffsetOfNbiotChannelNumberToEARFCN.h | 91 - e2sim/previous/ASN1c/Old-ECGIs.c | 68 - e2sim/previous/ASN1c/Old-ECGIs.h | 59 - e2sim/previous/ASN1c/Oneframe.c | 85 - e2sim/previous/ASN1c/Oneframe.h | 62 - e2sim/previous/ASN1c/PA-Values.c | 85 - e2sim/previous/ASN1c/PA-Values.h | 78 - e2sim/previous/ASN1c/PCI.c | 79 - e2sim/previous/ASN1c/PCI.h | 62 - e2sim/previous/ASN1c/PDCP-SN.c | 79 - e2sim/previous/ASN1c/PDCP-SN.h | 62 - e2sim/previous/ASN1c/PDCP-SNExtended.c | 79 - e2sim/previous/ASN1c/PDCP-SNExtended.h | 62 - e2sim/previous/ASN1c/PDCP-SNlength18.c | 79 - e2sim/previous/ASN1c/PDCP-SNlength18.h | 62 - e2sim/previous/ASN1c/PDCPChangeIndication.c | 73 - e2sim/previous/ASN1c/PDCPChangeIndication.h | 72 - e2sim/previous/ASN1c/PDCPSnLength.c | 73 - e2sim/previous/ASN1c/PDCPSnLength.h | 72 - e2sim/previous/ASN1c/PLMN-Identity.c | 80 - e2sim/previous/ASN1c/PLMN-Identity.h | 62 - e2sim/previous/ASN1c/PLMNAreaBasedQMC.c | 81 - e2sim/previous/ASN1c/PLMNAreaBasedQMC.h | 66 - e2sim/previous/ASN1c/PLMNListforQMC.c | 67 - e2sim/previous/ASN1c/PLMNListforQMC.h | 60 - e2sim/previous/ASN1c/PRACH-Configuration.c | 241 - e2sim/previous/ASN1c/PRACH-Configuration.h | 71 - e2sim/previous/ASN1c/Packet-LossRate.c | 79 - e2sim/previous/ASN1c/Packet-LossRate.h | 62 - e2sim/previous/ASN1c/PartialSuccessIndicator.c | 71 - e2sim/previous/ASN1c/PartialSuccessIndicator.h | 69 - e2sim/previous/ASN1c/PedestrianUE.c | 73 - e2sim/previous/ASN1c/PedestrianUE.h | 72 - e2sim/previous/ASN1c/Port-Number.c | 80 - e2sim/previous/ASN1c/Port-Number.h | 62 - e2sim/previous/ASN1c/Pre-emptionCapability.c | 71 - e2sim/previous/ASN1c/Pre-emptionCapability.h | 69 - e2sim/previous/ASN1c/Pre-emptionVulnerability.c | 71 - e2sim/previous/ASN1c/Pre-emptionVulnerability.h | 69 - e2sim/previous/ASN1c/Presence.c | 73 - e2sim/previous/ASN1c/Presence.h | 70 - e2sim/previous/ASN1c/PrintableString.c | 148 - e2sim/previous/ASN1c/PrintableString.h | 55 - e2sim/previous/ASN1c/PriorityLevel.c | 79 - e2sim/previous/ASN1c/PriorityLevel.h | 70 - e2sim/previous/ASN1c/PrivateIE-Container.c | 68 - e2sim/previous/ASN1c/PrivateIE-Container.h | 62 - e2sim/previous/ASN1c/PrivateIE-Field.c | 184 - e2sim/previous/ASN1c/PrivateIE-Field.h | 78 - e2sim/previous/ASN1c/PrivateIE-ID.c | 110 - e2sim/previous/ASN1c/PrivateIE-ID.h | 71 - e2sim/previous/ASN1c/PrivateMessage.c | 68 - e2sim/previous/ASN1c/PrivateMessage.h | 60 - e2sim/previous/ASN1c/ProSeAuthorized.c | 91 - e2sim/previous/ASN1c/ProSeAuthorized.h | 68 - e2sim/previous/ASN1c/ProSeDirectCommunication.c | 73 - e2sim/previous/ASN1c/ProSeDirectCommunication.h | 72 - e2sim/previous/ASN1c/ProSeDirectDiscovery.c | 73 - e2sim/previous/ASN1c/ProSeDirectDiscovery.h | 72 - e2sim/previous/ASN1c/ProSeUEtoNetworkRelaying.c | 73 - e2sim/previous/ASN1c/ProSeUEtoNetworkRelaying.h | 72 - e2sim/previous/ASN1c/ProcedureCode.c | 79 - e2sim/previous/ASN1c/ProcedureCode.h | 114 - .../ASN1c/ProtectedEUTRAResourceIndication.c | 201 - .../ASN1c/ProtectedEUTRAResourceIndication.h | 70 - .../previous/ASN1c/ProtectedFootprintTimePattern.c | 151 - .../previous/ASN1c/ProtectedFootprintTimePattern.h | 67 - e2sim/previous/ASN1c/ProtectedResourceList-Item.c | 183 - e2sim/previous/ASN1c/ProtectedResourceList-Item.h | 71 - e2sim/previous/ASN1c/ProtectedResourceList.c | 68 - e2sim/previous/ASN1c/ProtectedResourceList.h | 62 - e2sim/previous/ASN1c/ProtocolExtensionContainer.c | 8948 --- e2sim/previous/ASN1c/ProtocolExtensionContainer.h | 2504 - e2sim/previous/ASN1c/ProtocolExtensionField.c | 40927 ----------- e2sim/previous/ASN1c/ProtocolExtensionField.h | 5181 -- e2sim/previous/ASN1c/ProtocolIE-Container.c | 4828 -- e2sim/previous/ASN1c/ProtocolIE-Container.h | 1371 - e2sim/previous/ASN1c/ProtocolIE-ContainerList.c | 27 - e2sim/previous/ASN1c/ProtocolIE-ContainerList.h | 41 - e2sim/previous/ASN1c/ProtocolIE-ContainerPair.c | 27 - e2sim/previous/ASN1c/ProtocolIE-ContainerPair.h | 41 - .../previous/ASN1c/ProtocolIE-ContainerPairList.c | 27 - .../previous/ASN1c/ProtocolIE-ContainerPairList.h | 41 - e2sim/previous/ASN1c/ProtocolIE-Field.c | 48581 ------------- e2sim/previous/ASN1c/ProtocolIE-Field.h | 4903 -- e2sim/previous/ASN1c/ProtocolIE-FieldPair.c | 27 - e2sim/previous/ASN1c/ProtocolIE-FieldPair.h | 41 - e2sim/previous/ASN1c/ProtocolIE-ID.c | 79 - e2sim/previous/ASN1c/ProtocolIE-ID.h | 414 - e2sim/previous/ASN1c/ProtocolIE-Single-Container.c | 1154 - e2sim/previous/ASN1c/ProtocolIE-Single-Container.h | 685 - e2sim/previous/ASN1c/QCI.c | 79 - e2sim/previous/ASN1c/QCI.h | 62 - e2sim/previous/ASN1c/RANfunction-Item.c | 78 - e2sim/previous/ASN1c/RANfunction-Item.h | 62 - e2sim/previous/ASN1c/RANfunctionDefinition.c | 49 - e2sim/previous/ASN1c/RANfunctionDefinition.h | 61 - e2sim/previous/ASN1c/RANfunctionID-Item.c | 68 - e2sim/previous/ASN1c/RANfunctionID-Item.h | 60 - e2sim/previous/ASN1c/RANfunctionID.c | 79 - e2sim/previous/ASN1c/RANfunctionID.h | 62 - e2sim/previous/ASN1c/RANfunctionIDcause-Item.c | 78 - e2sim/previous/ASN1c/RANfunctionIDcause-Item.h | 62 - e2sim/previous/ASN1c/RANfunctions-List.c | 68 - e2sim/previous/ASN1c/RANfunctions-List.h | 59 - e2sim/previous/ASN1c/RANfunctionsID-List.c | 68 - e2sim/previous/ASN1c/RANfunctionsID-List.h | 59 - e2sim/previous/ASN1c/RANfunctionsIDcause-List.c | 68 - e2sim/previous/ASN1c/RANfunctionsIDcause-List.h | 59 - e2sim/previous/ASN1c/RICaction-Admitted-Item.c | 68 - e2sim/previous/ASN1c/RICaction-Admitted-Item.h | 60 - e2sim/previous/ASN1c/RICaction-Admitted-List.c | 68 - e2sim/previous/ASN1c/RICaction-Admitted-List.h | 59 - e2sim/previous/ASN1c/RICaction-NotAdmitted-Item.c | 78 - e2sim/previous/ASN1c/RICaction-NotAdmitted-Item.h | 62 - e2sim/previous/ASN1c/RICaction-NotAdmitted-List.c | 68 - e2sim/previous/ASN1c/RICaction-NotAdmitted-List.h | 59 - e2sim/previous/ASN1c/RICaction-ToBeSetup-Item.c | 101 - e2sim/previous/ASN1c/RICaction-ToBeSetup-Item.h | 68 - e2sim/previous/ASN1c/RICactionDefinition.c | 49 - e2sim/previous/ASN1c/RICactionDefinition.h | 61 - e2sim/previous/ASN1c/RICactionID.c | 79 - e2sim/previous/ASN1c/RICactionID.h | 62 - e2sim/previous/ASN1c/RICactionType.c | 75 - e2sim/previous/ASN1c/RICactionType.h | 73 - e2sim/previous/ASN1c/RICactions-ToBeSetup-List.c | 68 - e2sim/previous/ASN1c/RICactions-ToBeSetup-List.h | 62 - e2sim/previous/ASN1c/RICcallProcessID.c | 49 - e2sim/previous/ASN1c/RICcallProcessID.h | 61 - e2sim/previous/ASN1c/RICcause.c | 110 - e2sim/previous/ASN1c/RICcause.h | 86 - e2sim/previous/ASN1c/RICcontrolAckRequest.c | 75 - e2sim/previous/ASN1c/RICcontrolAckRequest.h | 71 - e2sim/previous/ASN1c/RICcontrolAcknowledge.c | 68 - e2sim/previous/ASN1c/RICcontrolAcknowledge.h | 62 - e2sim/previous/ASN1c/RICcontrolFailure.c | 68 - e2sim/previous/ASN1c/RICcontrolFailure.h | 62 - e2sim/previous/ASN1c/RICcontrolHeader.c | 49 - e2sim/previous/ASN1c/RICcontrolHeader.h | 61 - e2sim/previous/ASN1c/RICcontrolMessage.c | 49 - e2sim/previous/ASN1c/RICcontrolMessage.h | 61 - e2sim/previous/ASN1c/RICcontrolRequest.c | 68 - e2sim/previous/ASN1c/RICcontrolRequest.h | 62 - e2sim/previous/ASN1c/RICcontrolStatus.c | 75 - e2sim/previous/ASN1c/RICcontrolStatus.h | 71 - e2sim/previous/ASN1c/RICeventTriggerDefinition.c | 49 - e2sim/previous/ASN1c/RICeventTriggerDefinition.h | 61 - e2sim/previous/ASN1c/RICindication.c | 68 - e2sim/previous/ASN1c/RICindication.h | 62 - e2sim/previous/ASN1c/RICindicationHeader.c | 49 - e2sim/previous/ASN1c/RICindicationHeader.h | 61 - e2sim/previous/ASN1c/RICindicationMessage.c | 49 - e2sim/previous/ASN1c/RICindicationMessage.h | 61 - e2sim/previous/ASN1c/RICindicationSN.c | 79 - e2sim/previous/ASN1c/RICindicationSN.h | 61 - e2sim/previous/ASN1c/RICindicationType.c | 73 - e2sim/previous/ASN1c/RICindicationType.h | 70 - e2sim/previous/ASN1c/RICrequestID.c | 138 - e2sim/previous/ASN1c/RICrequestID.h | 61 - e2sim/previous/ASN1c/RICserviceQuery.c | 68 - e2sim/previous/ASN1c/RICserviceQuery.h | 62 - e2sim/previous/ASN1c/RICserviceUpdate.c | 68 - e2sim/previous/ASN1c/RICserviceUpdate.h | 62 - e2sim/previous/ASN1c/RICserviceUpdateAcknowledge.c | 68 - e2sim/previous/ASN1c/RICserviceUpdateAcknowledge.h | 62 - e2sim/previous/ASN1c/RICserviceUpdateFailure.c | 68 - e2sim/previous/ASN1c/RICserviceUpdateFailure.h | 62 - e2sim/previous/ASN1c/RICsubscription.c | 78 - e2sim/previous/ASN1c/RICsubscription.h | 62 - .../previous/ASN1c/RICsubscriptionDeleteFailure.c | 68 - .../previous/ASN1c/RICsubscriptionDeleteFailure.h | 62 - .../previous/ASN1c/RICsubscriptionDeleteRequest.c | 68 - .../previous/ASN1c/RICsubscriptionDeleteRequest.h | 62 - .../previous/ASN1c/RICsubscriptionDeleteResponse.c | 68 - .../previous/ASN1c/RICsubscriptionDeleteResponse.h | 62 - e2sim/previous/ASN1c/RICsubscriptionFailure.c | 68 - e2sim/previous/ASN1c/RICsubscriptionFailure.h | 62 - e2sim/previous/ASN1c/RICsubscriptionRequest.c | 68 - e2sim/previous/ASN1c/RICsubscriptionRequest.h | 62 - e2sim/previous/ASN1c/RICsubscriptionResponse.c | 68 - e2sim/previous/ASN1c/RICsubscriptionResponse.h | 62 - e2sim/previous/ASN1c/RICsubsequentAction.c | 78 - e2sim/previous/ASN1c/RICsubsequentAction.h | 64 - e2sim/previous/ASN1c/RICsubsequentActionType.c | 73 - e2sim/previous/ASN1c/RICsubsequentActionType.h | 72 - e2sim/previous/ASN1c/RICtimeToWait.c | 105 - e2sim/previous/ASN1c/RICtimeToWait.h | 88 - e2sim/previous/ASN1c/RLC-Status.c | 81 - e2sim/previous/ASN1c/RLC-Status.h | 66 - e2sim/previous/ASN1c/RLCMode.c | 77 - e2sim/previous/ASN1c/RLCMode.h | 74 - e2sim/previous/ASN1c/RLFIndication.c | 68 - e2sim/previous/ASN1c/RLFIndication.h | 60 - e2sim/previous/ASN1c/RNL-Header.c | 92 - e2sim/previous/ASN1c/RNL-Header.h | 66 - e2sim/previous/ASN1c/RNTP-Threshold.c | 101 - e2sim/previous/ASN1c/RNTP-Threshold.h | 86 - e2sim/previous/ASN1c/RRC-Config-Ind.c | 73 - e2sim/previous/ASN1c/RRC-Config-Ind.h | 72 - e2sim/previous/ASN1c/RRC-Context.c | 49 - e2sim/previous/ASN1c/RRC-Context.h | 61 - e2sim/previous/ASN1c/RRCConnReestabIndicator.c | 75 - e2sim/previous/ASN1c/RRCConnReestabIndicator.h | 73 - e2sim/previous/ASN1c/RRCConnSetupIndicator.c | 71 - e2sim/previous/ASN1c/RRCConnSetupIndicator.h | 71 - e2sim/previous/ASN1c/RRCContainer.c | 49 - e2sim/previous/ASN1c/RRCContainer.h | 61 - e2sim/previous/ASN1c/RRCTransfer.c | 68 - e2sim/previous/ASN1c/RRCTransfer.h | 60 - e2sim/previous/ASN1c/RSRPMRList.c | 122 - e2sim/previous/ASN1c/RSRPMRList.h | 77 - e2sim/previous/ASN1c/RSRPMeasurementResult.c | 162 - e2sim/previous/ASN1c/RSRPMeasurementResult.h | 79 - e2sim/previous/ASN1c/RadioResourceStatus.c | 131 - e2sim/previous/ASN1c/RadioResourceStatus.h | 76 - e2sim/previous/ASN1c/RadioframeAllocationOffset.c | 79 - e2sim/previous/ASN1c/RadioframeAllocationOffset.h | 62 - e2sim/previous/ASN1c/RadioframeAllocationPeriod.c | 81 - e2sim/previous/ASN1c/RadioframeAllocationPeriod.h | 76 - .../ASN1c/ReceiveStatusOfULPDCPSDUsExtended.c | 85 - .../ASN1c/ReceiveStatusOfULPDCPSDUsExtended.h | 62 - .../ReceiveStatusOfULPDCPSDUsPDCP-SNlength18.c | 85 - .../ReceiveStatusOfULPDCPSDUsPDCP-SNlength18.h | 62 - e2sim/previous/ASN1c/ReceiveStatusofULPDCPSDUs.c | 85 - e2sim/previous/ASN1c/ReceiveStatusofULPDCPSDUs.h | 62 - e2sim/previous/ASN1c/Reestablishment-Indication.c | 71 - e2sim/previous/ASN1c/Reestablishment-Indication.h | 71 - e2sim/previous/ASN1c/Registration-Request.c | 77 - e2sim/previous/ASN1c/Registration-Request.h | 74 - e2sim/previous/ASN1c/RelativeNarrowbandTxPower.c | 267 - e2sim/previous/ASN1c/RelativeNarrowbandTxPower.h | 84 - e2sim/previous/ASN1c/ReplacingCellsList-Item.c | 68 - e2sim/previous/ASN1c/ReplacingCellsList-Item.h | 62 - e2sim/previous/ASN1c/ReplacingCellsList.c | 68 - e2sim/previous/ASN1c/ReplacingCellsList.h | 62 - e2sim/previous/ASN1c/ReportAmountMDT.c | 83 - e2sim/previous/ASN1c/ReportAmountMDT.h | 75 - e2sim/previous/ASN1c/ReportArea.c | 71 - e2sim/previous/ASN1c/ReportArea.h | 71 - e2sim/previous/ASN1c/ReportCharacteristics.c | 85 - e2sim/previous/ASN1c/ReportCharacteristics.h | 62 - e2sim/previous/ASN1c/ReportIntervalMDT.c | 93 - e2sim/previous/ASN1c/ReportIntervalMDT.h | 80 - e2sim/previous/ASN1c/ReportingPeriodicity.c | 77 - e2sim/previous/ASN1c/ReportingPeriodicity.h | 72 - e2sim/previous/ASN1c/ReportingPeriodicityCSIR.c | 79 - e2sim/previous/ASN1c/ReportingPeriodicityCSIR.h | 75 - e2sim/previous/ASN1c/ReportingPeriodicityRSRPMR.c | 77 - e2sim/previous/ASN1c/ReportingPeriodicityRSRPMR.h | 74 - e2sim/previous/ASN1c/ReservedSubframePattern.c | 167 - e2sim/previous/ASN1c/ReservedSubframePattern.h | 70 - e2sim/previous/ASN1c/ResetRequest.c | 68 - e2sim/previous/ASN1c/ResetRequest.h | 62 - e2sim/previous/ASN1c/ResetResponse.c | 68 - e2sim/previous/ASN1c/ResetResponse.h | 62 - e2sim/previous/ASN1c/ResourceStatusFailure.c | 68 - e2sim/previous/ASN1c/ResourceStatusFailure.h | 62 - e2sim/previous/ASN1c/ResourceStatusRequest.c | 68 - e2sim/previous/ASN1c/ResourceStatusRequest.h | 62 - e2sim/previous/ASN1c/ResourceStatusResponse.c | 68 - e2sim/previous/ASN1c/ResourceStatusResponse.h | 62 - e2sim/previous/ASN1c/ResourceStatusUpdate.c | 68 - e2sim/previous/ASN1c/ResourceStatusUpdate.h | 62 - e2sim/previous/ASN1c/ResourceType.c | 75 - e2sim/previous/ASN1c/ResourceType.h | 73 - .../ASN1c/RespondingNodeType-EndcConfigUpdate.c | 81 - .../ASN1c/RespondingNodeType-EndcConfigUpdate.h | 75 - .../ASN1c/RespondingNodeType-EndcX2Removal.c | 81 - .../ASN1c/RespondingNodeType-EndcX2Removal.h | 75 - .../ASN1c/RespondingNodeType-EndcX2Setup.c | 81 - .../ASN1c/RespondingNodeType-EndcX2Setup.h | 75 - ...ndingNodeType-EutranrCellResourceCoordination.c | 81 - ...ndingNodeType-EutranrCellResourceCoordination.h | 75 - ...nseInformationSeNBReconfComp-RejectByMeNBItem.c | 91 - ...nseInformationSeNBReconfComp-RejectByMeNBItem.h | 68 - ...ResponseInformationSeNBReconfComp-SuccessItem.c | 81 - ...ResponseInformationSeNBReconfComp-SuccessItem.h | 66 - .../ASN1c/ResponseInformationSeNBReconfComp.c | 82 - .../ASN1c/ResponseInformationSeNBReconfComp.h | 76 - ...nseInformationSgNBReconfComp-RejectByMeNBItem.c | 81 - ...nseInformationSgNBReconfComp-RejectByMeNBItem.h | 66 - ...ResponseInformationSgNBReconfComp-SuccessItem.c | 81 - ...ResponseInformationSgNBReconfComp-SuccessItem.h | 66 - .../ASN1c/ResponseInformationSgNBReconfComp.c | 82 - .../ASN1c/ResponseInformationSgNBReconfComp.h | 76 - e2sim/previous/ASN1c/ResumeID.c | 152 - e2sim/previous/ASN1c/ResumeID.h | 76 - e2sim/previous/ASN1c/RetrieveUEContextFailure.c | 68 - e2sim/previous/ASN1c/RetrieveUEContextFailure.h | 60 - e2sim/previous/ASN1c/RetrieveUEContextRequest.c | 68 - e2sim/previous/ASN1c/RetrieveUEContextRequest.h | 60 - e2sim/previous/ASN1c/RetrieveUEContextResponse.c | 68 - e2sim/previous/ASN1c/RetrieveUEContextResponse.h | 60 - e2sim/previous/ASN1c/S1TNLLoadIndicator.c | 91 - e2sim/previous/ASN1c/S1TNLLoadIndicator.h | 67 - e2sim/previous/ASN1c/SCGChangeIndication.c | 75 - e2sim/previous/ASN1c/SCGChangeIndication.h | 73 - e2sim/previous/ASN1c/SCGConfigurationQuery.c | 71 - e2sim/previous/ASN1c/SCGConfigurationQuery.h | 71 - e2sim/previous/ASN1c/SGNB-Addition-Trigger-Ind.c | 75 - e2sim/previous/ASN1c/SGNB-Addition-Trigger-Ind.h | 73 - .../ASN1c/SIPTOBearerDeactivationIndication.c | 71 - .../ASN1c/SIPTOBearerDeactivationIndication.h | 71 - e2sim/previous/ASN1c/SNStatusTransfer.c | 68 - e2sim/previous/ASN1c/SNStatusTransfer.h | 60 - e2sim/previous/ASN1c/SRBType.c | 73 - e2sim/previous/ASN1c/SRBType.h | 72 - e2sim/previous/ASN1c/SRVCCOperationPossible.c | 71 - e2sim/previous/ASN1c/SRVCCOperationPossible.h | 71 - e2sim/previous/ASN1c/SULInformation.c | 121 - e2sim/previous/ASN1c/SULInformation.h | 68 - e2sim/previous/ASN1c/ScheduledCommunicationTime.c | 197 - e2sim/previous/ASN1c/ScheduledCommunicationTime.h | 69 - e2sim/previous/ASN1c/SeNBAdditionRequest.c | 68 - e2sim/previous/ASN1c/SeNBAdditionRequest.h | 60 - .../ASN1c/SeNBAdditionRequestAcknowledge.c | 68 - .../ASN1c/SeNBAdditionRequestAcknowledge.h | 60 - e2sim/previous/ASN1c/SeNBAdditionRequestReject.c | 68 - e2sim/previous/ASN1c/SeNBAdditionRequestReject.h | 60 - e2sim/previous/ASN1c/SeNBCounterCheckRequest.c | 68 - e2sim/previous/ASN1c/SeNBCounterCheckRequest.h | 60 - e2sim/previous/ASN1c/SeNBModificationConfirm.c | 68 - e2sim/previous/ASN1c/SeNBModificationConfirm.h | 60 - e2sim/previous/ASN1c/SeNBModificationRefuse.c | 68 - e2sim/previous/ASN1c/SeNBModificationRefuse.h | 60 - e2sim/previous/ASN1c/SeNBModificationRequest.c | 68 - e2sim/previous/ASN1c/SeNBModificationRequest.h | 60 - .../ASN1c/SeNBModificationRequestAcknowledge.c | 68 - .../ASN1c/SeNBModificationRequestAcknowledge.h | 60 - .../previous/ASN1c/SeNBModificationRequestReject.c | 68 - .../previous/ASN1c/SeNBModificationRequestReject.h | 60 - e2sim/previous/ASN1c/SeNBModificationRequired.c | 68 - e2sim/previous/ASN1c/SeNBModificationRequired.h | 60 - e2sim/previous/ASN1c/SeNBReconfigurationComplete.c | 68 - e2sim/previous/ASN1c/SeNBReconfigurationComplete.h | 60 - e2sim/previous/ASN1c/SeNBReleaseConfirm.c | 68 - e2sim/previous/ASN1c/SeNBReleaseConfirm.h | 60 - e2sim/previous/ASN1c/SeNBReleaseRequest.c | 68 - e2sim/previous/ASN1c/SeNBReleaseRequest.h | 60 - e2sim/previous/ASN1c/SeNBReleaseRequired.c | 68 - e2sim/previous/ASN1c/SeNBReleaseRequired.h | 60 - e2sim/previous/ASN1c/SeNBSecurityKey.c | 85 - e2sim/previous/ASN1c/SeNBSecurityKey.h | 62 - e2sim/previous/ASN1c/SeNBtoMeNBContainer.c | 49 - e2sim/previous/ASN1c/SeNBtoMeNBContainer.h | 61 - e2sim/previous/ASN1c/SecondaryRATDataUsageReport.c | 68 - e2sim/previous/ASN1c/SecondaryRATDataUsageReport.h | 60 - .../previous/ASN1c/SecondaryRATUsageReport-Item.c | 147 - .../previous/ASN1c/SecondaryRATUsageReport-Item.h | 79 - e2sim/previous/ASN1c/SecondaryRATUsageReportList.c | 68 - e2sim/previous/ASN1c/SecondaryRATUsageReportList.h | 62 - e2sim/previous/ASN1c/ServedCell-Information.c | 121 - e2sim/previous/ASN1c/ServedCell-Information.h | 74 - e2sim/previous/ASN1c/ServedCells.c | 133 - e2sim/previous/ASN1c/ServedCells.h | 79 - e2sim/previous/ASN1c/ServedCellsToActivate-Item.c | 81 - e2sim/previous/ASN1c/ServedCellsToActivate-Item.h | 66 - e2sim/previous/ASN1c/ServedCellsToActivate.c | 68 - e2sim/previous/ASN1c/ServedCellsToActivate.h | 59 - e2sim/previous/ASN1c/ServedCellsToModify-Item.c | 102 - e2sim/previous/ASN1c/ServedCellsToModify-Item.h | 70 - e2sim/previous/ASN1c/ServedCellsToModify.c | 68 - e2sim/previous/ASN1c/ServedCellsToModify.h | 59 - .../ASN1c/ServedEUTRAcellsENDCX2ManagementList.c | 133 - .../ASN1c/ServedEUTRAcellsENDCX2ManagementList.h | 76 - .../ServedEUTRAcellsToDeleteListENDCConfUpd.c | 68 - .../ServedEUTRAcellsToDeleteListENDCConfUpd.h | 59 - .../ServedEUTRAcellsToModifyListENDCConfUpd.c | 143 - .../ServedEUTRAcellsToModifyListENDCConfUpd.h | 78 - e2sim/previous/ASN1c/ServedNRCell-Information.c | 197 - e2sim/previous/ASN1c/ServedNRCell-Information.h | 102 - .../previous/ASN1c/ServedNRCellsToActivate-Item.c | 81 - .../previous/ASN1c/ServedNRCellsToActivate-Item.h | 66 - e2sim/previous/ASN1c/ServedNRCellsToActivate.c | 68 - e2sim/previous/ASN1c/ServedNRCellsToActivate.h | 59 - e2sim/previous/ASN1c/ServedNRCellsToModify-Item.c | 112 - e2sim/previous/ASN1c/ServedNRCellsToModify-Item.h | 72 - .../ASN1c/ServedNRcellsENDCX2ManagementList.c | 133 - .../ASN1c/ServedNRcellsENDCX2ManagementList.h | 76 - .../ASN1c/ServedNRcellsToDeleteENDCConfUpdList.c | 68 - .../ASN1c/ServedNRcellsToDeleteENDCConfUpdList.h | 59 - .../ASN1c/ServedNRcellsToModifyENDCConfUpdList.c | 68 - .../ASN1c/ServedNRcellsToModifyENDCConfUpdList.h | 59 - e2sim/previous/ASN1c/ServiceType.c | 73 - e2sim/previous/ASN1c/ServiceType.h | 72 - e2sim/previous/ASN1c/SgNB-UE-X2AP-ID.c | 75 - e2sim/previous/ASN1c/SgNB-UE-X2AP-ID.h | 63 - e2sim/previous/ASN1c/SgNBActivityNotification.c | 68 - e2sim/previous/ASN1c/SgNBActivityNotification.h | 60 - e2sim/previous/ASN1c/SgNBAdditionRequest.c | 68 - e2sim/previous/ASN1c/SgNBAdditionRequest.h | 60 - .../ASN1c/SgNBAdditionRequestAcknowledge.c | 68 - .../ASN1c/SgNBAdditionRequestAcknowledge.h | 60 - e2sim/previous/ASN1c/SgNBAdditionRequestReject.c | 68 - e2sim/previous/ASN1c/SgNBAdditionRequestReject.h | 60 - e2sim/previous/ASN1c/SgNBChangeConfirm.c | 68 - e2sim/previous/ASN1c/SgNBChangeConfirm.h | 60 - e2sim/previous/ASN1c/SgNBChangeRefuse.c | 68 - e2sim/previous/ASN1c/SgNBChangeRefuse.h | 60 - e2sim/previous/ASN1c/SgNBChangeRequired.c | 68 - e2sim/previous/ASN1c/SgNBChangeRequired.h | 60 - .../ASN1c/SgNBCoordinationAssistanceInformation.c | 71 - .../ASN1c/SgNBCoordinationAssistanceInformation.h | 71 - e2sim/previous/ASN1c/SgNBCounterCheckRequest.c | 68 - e2sim/previous/ASN1c/SgNBCounterCheckRequest.h | 60 - e2sim/previous/ASN1c/SgNBModificationConfirm.c | 68 - e2sim/previous/ASN1c/SgNBModificationConfirm.h | 60 - e2sim/previous/ASN1c/SgNBModificationRefuse.c | 68 - e2sim/previous/ASN1c/SgNBModificationRefuse.h | 60 - e2sim/previous/ASN1c/SgNBModificationRequest.c | 68 - e2sim/previous/ASN1c/SgNBModificationRequest.h | 60 - .../ASN1c/SgNBModificationRequestAcknowledge.c | 68 - .../ASN1c/SgNBModificationRequestAcknowledge.h | 60 - .../previous/ASN1c/SgNBModificationRequestReject.c | 68 - .../previous/ASN1c/SgNBModificationRequestReject.h | 60 - e2sim/previous/ASN1c/SgNBModificationRequired.c | 68 - e2sim/previous/ASN1c/SgNBModificationRequired.h | 60 - e2sim/previous/ASN1c/SgNBReconfigurationComplete.c | 68 - e2sim/previous/ASN1c/SgNBReconfigurationComplete.h | 60 - e2sim/previous/ASN1c/SgNBReleaseConfirm.c | 68 - e2sim/previous/ASN1c/SgNBReleaseConfirm.h | 60 - e2sim/previous/ASN1c/SgNBReleaseRequest.c | 68 - e2sim/previous/ASN1c/SgNBReleaseRequest.h | 60 - .../previous/ASN1c/SgNBReleaseRequestAcknowledge.c | 68 - .../previous/ASN1c/SgNBReleaseRequestAcknowledge.h | 60 - e2sim/previous/ASN1c/SgNBReleaseRequestReject.c | 68 - e2sim/previous/ASN1c/SgNBReleaseRequestReject.h | 60 - e2sim/previous/ASN1c/SgNBReleaseRequired.c | 68 - e2sim/previous/ASN1c/SgNBReleaseRequired.h | 60 - .../ASN1c/SgNBResourceCoordinationInformation.c | 173 - .../ASN1c/SgNBResourceCoordinationInformation.h | 69 - e2sim/previous/ASN1c/SgNBSecurityKey.c | 85 - e2sim/previous/ASN1c/SgNBSecurityKey.h | 62 - e2sim/previous/ASN1c/SgNBtoMeNBContainer.c | 49 - e2sim/previous/ASN1c/SgNBtoMeNBContainer.h | 61 - e2sim/previous/ASN1c/SharedResourceType.c | 82 - e2sim/previous/ASN1c/SharedResourceType.h | 79 - e2sim/previous/ASN1c/ShortMAC-I.c | 85 - e2sim/previous/ASN1c/ShortMAC-I.h | 62 - .../ASN1c/SourceOfUEActivityBehaviourInformation.c | 73 - .../ASN1c/SourceOfUEActivityBehaviourInformation.h | 72 - e2sim/previous/ASN1c/SpecialSubframe-Info.c | 101 - e2sim/previous/ASN1c/SpecialSubframe-Info.h | 70 - e2sim/previous/ASN1c/SpecialSubframePatterns.c | 87 - e2sim/previous/ASN1c/SpecialSubframePatterns.h | 79 - e2sim/previous/ASN1c/SpectrumSharingGroupID.c | 79 - e2sim/previous/ASN1c/SpectrumSharingGroupID.h | 62 - e2sim/previous/ASN1c/SplitSRB.c | 102 - e2sim/previous/ASN1c/SplitSRB.h | 70 - e2sim/previous/ASN1c/SplitSRBs.c | 75 - e2sim/previous/ASN1c/SplitSRBs.h | 73 - e2sim/previous/ASN1c/Style-ID.c | 49 - e2sim/previous/ASN1c/Style-ID.h | 61 - e2sim/previous/ASN1c/SubbandCQI.c | 92 - e2sim/previous/ASN1c/SubbandCQI.h | 68 - e2sim/previous/ASN1c/SubbandCQICodeword0.c | 180 - e2sim/previous/ASN1c/SubbandCQICodeword0.h | 78 - e2sim/previous/ASN1c/SubbandCQICodeword1.c | 220 - e2sim/previous/ASN1c/SubbandCQICodeword1.h | 80 - e2sim/previous/ASN1c/SubbandCQIItem.c | 121 - e2sim/previous/ASN1c/SubbandCQIItem.h | 68 - e2sim/previous/ASN1c/SubbandCQIList.c | 68 - e2sim/previous/ASN1c/SubbandCQIList.h | 62 - e2sim/previous/ASN1c/SubbandSize.c | 79 - e2sim/previous/ASN1c/SubbandSize.h | 75 - e2sim/previous/ASN1c/SubframeAllocation.c | 80 - e2sim/previous/ASN1c/SubframeAllocation.h | 77 - e2sim/previous/ASN1c/SubframeAssignment.c | 83 - e2sim/previous/ASN1c/SubframeAssignment.h | 77 - e2sim/previous/ASN1c/SubframeType.c | 73 - e2sim/previous/ASN1c/SubframeType.h | 72 - e2sim/previous/ASN1c/SubscriberProfileIDforRFP.c | 79 - e2sim/previous/ASN1c/SubscriberProfileIDforRFP.h | 62 - .../Subscription-Based-UE-DifferentiationInfo.c | 358 - .../Subscription-Based-UE-DifferentiationInfo.h | 109 - e2sim/previous/ASN1c/SuccessfulOutcome.c | 466 - e2sim/previous/ASN1c/SuccessfulOutcome.h | 132 - e2sim/previous/ASN1c/SupportedSULFreqBandItem.c | 111 - e2sim/previous/ASN1c/SupportedSULFreqBandItem.h | 66 - e2sim/previous/ASN1c/TABasedMDT.c | 81 - e2sim/previous/ASN1c/TABasedMDT.h | 66 - e2sim/previous/ASN1c/TABasedQMC.c | 81 - e2sim/previous/ASN1c/TABasedQMC.h | 66 - e2sim/previous/ASN1c/TAC.c | 80 - e2sim/previous/ASN1c/TAC.h | 62 - e2sim/previous/ASN1c/TAI-Item.c | 91 - e2sim/previous/ASN1c/TAI-Item.h | 68 - e2sim/previous/ASN1c/TAIBasedMDT.c | 81 - e2sim/previous/ASN1c/TAIBasedMDT.h | 66 - e2sim/previous/ASN1c/TAIBasedQMC.c | 81 - e2sim/previous/ASN1c/TAIBasedQMC.h | 66 - e2sim/previous/ASN1c/TAIListforMDT.c | 68 - e2sim/previous/ASN1c/TAIListforMDT.h | 62 - e2sim/previous/ASN1c/TAIListforQMC.c | 68 - e2sim/previous/ASN1c/TAIListforQMC.h | 62 - e2sim/previous/ASN1c/TAListforMDT.c | 67 - e2sim/previous/ASN1c/TAListforMDT.h | 60 - e2sim/previous/ASN1c/TAListforQMC.c | 67 - e2sim/previous/ASN1c/TAListforQMC.h | 60 - e2sim/previous/ASN1c/TDD-Info.c | 111 - e2sim/previous/ASN1c/TDD-Info.h | 72 - .../TDD-InfoNeighbourServedNRCell-Information.c | 81 - .../TDD-InfoNeighbourServedNRCell-Information.h | 66 - .../ASN1c/TDD-InfoServedNRCell-Information.c | 91 - .../ASN1c/TDD-InfoServedNRCell-Information.h | 68 - e2sim/previous/ASN1c/TargetCellInUTRAN.c | 49 - e2sim/previous/ASN1c/TargetCellInUTRAN.h | 61 - .../TargeteNBtoSource-eNBTransparentContainer.c | 49 - .../TargeteNBtoSource-eNBTransparentContainer.h | 61 - e2sim/previous/ASN1c/Threshold-RSRP.c | 79 - e2sim/previous/ASN1c/Threshold-RSRP.h | 62 - e2sim/previous/ASN1c/Threshold-RSRQ.c | 79 - e2sim/previous/ASN1c/Threshold-RSRQ.h | 62 - .../Time-UE-StayedInCell-EnhancedGranularity.c | 79 - .../Time-UE-StayedInCell-EnhancedGranularity.h | 62 - e2sim/previous/ASN1c/Time-UE-StayedInCell.c | 79 - e2sim/previous/ASN1c/Time-UE-StayedInCell.h | 62 - e2sim/previous/ASN1c/TimeStamp.c | 80 - e2sim/previous/ASN1c/TimeStamp.h | 62 - e2sim/previous/ASN1c/TimeToWait.c | 81 - e2sim/previous/ASN1c/TimeToWait.h | 76 - e2sim/previous/ASN1c/TraceActivation.c | 111 - e2sim/previous/ASN1c/TraceActivation.h | 72 - .../ASN1c/TraceCollectionEntityIPAddress.c | 85 - .../ASN1c/TraceCollectionEntityIPAddress.h | 62 - e2sim/previous/ASN1c/TraceDepth.c | 81 - e2sim/previous/ASN1c/TraceDepth.h | 76 - e2sim/previous/ASN1c/Transmission-Bandwidth.c | 83 - e2sim/previous/ASN1c/Transmission-Bandwidth.h | 77 - e2sim/previous/ASN1c/TransportLayerAddress.c | 85 - e2sim/previous/ASN1c/TransportLayerAddress.h | 62 - e2sim/previous/ASN1c/TriggeringMessage.c | 73 - e2sim/previous/ASN1c/TriggeringMessage.h | 70 - e2sim/previous/ASN1c/TunnelInformation.c | 91 - e2sim/previous/ASN1c/TunnelInformation.h | 68 - e2sim/previous/ASN1c/TypeOfError.c | 73 - e2sim/previous/ASN1c/TypeOfError.h | 72 - e2sim/previous/ASN1c/TypeOfMessage.c | 75 - e2sim/previous/ASN1c/TypeOfMessage.h | 71 - .../ASN1c/UE-ContextInformation-SgNBModReq.c | 136 - .../ASN1c/UE-ContextInformation-SgNBModReq.h | 74 - e2sim/previous/ASN1c/UE-ContextInformation.c | 163 - e2sim/previous/ASN1c/UE-ContextInformation.h | 80 - .../previous/ASN1c/UE-ContextInformationRetrieve.c | 184 - .../previous/ASN1c/UE-ContextInformationRetrieve.h | 84 - .../ASN1c/UE-ContextInformationSeNBModReq.c | 136 - .../ASN1c/UE-ContextInformationSeNBModReq.h | 74 - e2sim/previous/ASN1c/UE-ContextKeptIndicator.c | 71 - e2sim/previous/ASN1c/UE-ContextKeptIndicator.h | 71 - e2sim/previous/ASN1c/UE-ContextReferenceAtSeNB.c | 101 - e2sim/previous/ASN1c/UE-ContextReferenceAtSeNB.h | 68 - e2sim/previous/ASN1c/UE-ContextReferenceAtSgNB.c | 91 - e2sim/previous/ASN1c/UE-ContextReferenceAtSgNB.h | 66 - e2sim/previous/ASN1c/UE-ContextReferenceAtWT.c | 91 - e2sim/previous/ASN1c/UE-ContextReferenceAtWT.h | 66 - e2sim/previous/ASN1c/UE-HistoryInformation.c | 68 - e2sim/previous/ASN1c/UE-HistoryInformation.h | 62 - .../ASN1c/UE-HistoryInformationFromTheUE.c | 49 - .../ASN1c/UE-HistoryInformationFromTheUE.h | 61 - .../UE-RLF-Report-Container-for-extended-bands.c | 49 - .../UE-RLF-Report-Container-for-extended-bands.h | 61 - e2sim/previous/ASN1c/UE-RLF-Report-Container.c | 49 - e2sim/previous/ASN1c/UE-RLF-Report-Container.h | 61 - e2sim/previous/ASN1c/UE-S1AP-ID.c | 75 - e2sim/previous/ASN1c/UE-S1AP-ID.h | 63 - e2sim/previous/ASN1c/UE-X2AP-ID-Extension.c | 79 - e2sim/previous/ASN1c/UE-X2AP-ID-Extension.h | 62 - e2sim/previous/ASN1c/UE-X2AP-ID.c | 79 - e2sim/previous/ASN1c/UE-X2AP-ID.h | 62 - e2sim/previous/ASN1c/UEAggregateMaximumBitRate.c | 91 - e2sim/previous/ASN1c/UEAggregateMaximumBitRate.h | 67 - e2sim/previous/ASN1c/UEAppLayerMeasConfig.c | 122 - e2sim/previous/ASN1c/UEAppLayerMeasConfig.h | 68 - e2sim/previous/ASN1c/UEContextRelease.c | 68 - e2sim/previous/ASN1c/UEContextRelease.h | 60 - e2sim/previous/ASN1c/UEID.c | 85 - e2sim/previous/ASN1c/UEID.h | 62 - e2sim/previous/ASN1c/UENRMeasurement.c | 81 - e2sim/previous/ASN1c/UENRMeasurement.h | 66 - e2sim/previous/ASN1c/UESecurityCapabilities.c | 91 - e2sim/previous/ASN1c/UESecurityCapabilities.h | 68 - .../ASN1c/UESidelinkAggregateMaximumBitRate.c | 81 - .../ASN1c/UESidelinkAggregateMaximumBitRate.h | 66 - e2sim/previous/ASN1c/UEsToBeResetList-Item.c | 101 - e2sim/previous/ASN1c/UEsToBeResetList-Item.h | 70 - e2sim/previous/ASN1c/UEsToBeResetList.c | 68 - e2sim/previous/ASN1c/UEsToBeResetList.h | 62 - e2sim/previous/ASN1c/UL-GBR-PRB-usage.c | 79 - e2sim/previous/ASN1c/UL-GBR-PRB-usage.h | 62 - .../previous/ASN1c/UL-HighInterferenceIndication.c | 85 - .../previous/ASN1c/UL-HighInterferenceIndication.h | 62 - .../ASN1c/UL-HighInterferenceIndicationInfo-Item.c | 91 - .../ASN1c/UL-HighInterferenceIndicationInfo-Item.h | 68 - .../ASN1c/UL-HighInterferenceIndicationInfo.c | 68 - .../ASN1c/UL-HighInterferenceIndicationInfo.h | 62 - .../ASN1c/UL-InterferenceOverloadIndication-Item.c | 75 - .../ASN1c/UL-InterferenceOverloadIndication-Item.h | 73 - .../ASN1c/UL-InterferenceOverloadIndication.c | 67 - .../ASN1c/UL-InterferenceOverloadIndication.h | 60 - e2sim/previous/ASN1c/UL-Total-PRB-usage.c | 79 - e2sim/previous/ASN1c/UL-Total-PRB-usage.h | 62 - e2sim/previous/ASN1c/UL-UE-Configuration.c | 75 - e2sim/previous/ASN1c/UL-UE-Configuration.h | 73 - e2sim/previous/ASN1c/UL-non-GBR-PRB-usage.c | 79 - e2sim/previous/ASN1c/UL-non-GBR-PRB-usage.h | 62 - .../previous/ASN1c/UL-scheduling-PDCCH-CCE-usage.c | 79 - .../previous/ASN1c/UL-scheduling-PDCCH-CCE-usage.h | 62 - e2sim/previous/ASN1c/ULConfiguration.c | 81 - e2sim/previous/ASN1c/ULConfiguration.h | 66 - e2sim/previous/ASN1c/ULOnlySharing.c | 81 - e2sim/previous/ASN1c/ULOnlySharing.h | 66 - .../ASN1c/ULResourceBitmapULandDLSharing.c | 85 - .../ASN1c/ULResourceBitmapULandDLSharing.h | 62 - e2sim/previous/ASN1c/ULResourcesULandDLSharing.c | 80 - e2sim/previous/ASN1c/ULResourcesULandDLSharing.h | 77 - e2sim/previous/ASN1c/ULandDLSharing.c | 91 - e2sim/previous/ASN1c/ULandDLSharing.h | 68 - e2sim/previous/ASN1c/UnsuccessfulOutcome.c | 456 - e2sim/previous/ASN1c/UnsuccessfulOutcome.h | 130 - e2sim/previous/ASN1c/UsableABSInformation.c | 82 - e2sim/previous/ASN1c/UsableABSInformation.h | 79 - e2sim/previous/ASN1c/UsableABSInformationFDD.c | 117 - e2sim/previous/ASN1c/UsableABSInformationFDD.h | 66 - e2sim/previous/ASN1c/UsableABSInformationTDD.c | 117 - e2sim/previous/ASN1c/UsableABSInformationTDD.h | 66 - .../ASN1c/UserPlaneTrafficActivityReport.c | 73 - .../ASN1c/UserPlaneTrafficActivityReport.h | 72 - e2sim/previous/ASN1c/V2XServicesAuthorized.c | 91 - e2sim/previous/ASN1c/V2XServicesAuthorized.h | 68 - e2sim/previous/ASN1c/VehicleUE.c | 73 - e2sim/previous/ASN1c/VehicleUE.h | 72 - e2sim/previous/ASN1c/WLANMeasConfig.c | 71 - e2sim/previous/ASN1c/WLANMeasConfig.h | 71 - e2sim/previous/ASN1c/WLANMeasConfigNameList.c | 67 - e2sim/previous/ASN1c/WLANMeasConfigNameList.h | 60 - .../previous/ASN1c/WLANMeasurementConfiguration.c | 204 - .../previous/ASN1c/WLANMeasurementConfiguration.h | 87 - e2sim/previous/ASN1c/WLANName.c | 80 - e2sim/previous/ASN1c/WLANName.h | 62 - e2sim/previous/ASN1c/WT-UE-XwAP-ID.c | 80 - e2sim/previous/ASN1c/WT-UE-XwAP-ID.h | 62 - e2sim/previous/ASN1c/WTID-Long-Type2.c | 85 - e2sim/previous/ASN1c/WTID-Long-Type2.h | 62 - e2sim/previous/ASN1c/WTID-Type1.c | 114 - e2sim/previous/ASN1c/WTID-Type1.h | 64 - e2sim/previous/ASN1c/WTID.c | 81 - e2sim/previous/ASN1c/WTID.h | 79 - e2sim/previous/ASN1c/WidebandCQI.c | 122 - e2sim/previous/ASN1c/WidebandCQI.h | 68 - e2sim/previous/ASN1c/WidebandCQICodeword1.c | 140 - e2sim/previous/ASN1c/WidebandCQICodeword1.h | 76 - e2sim/previous/ASN1c/X2AP-Message.c | 49 - e2sim/previous/ASN1c/X2AP-Message.h | 61 - e2sim/previous/ASN1c/X2APMessageTransfer.c | 68 - e2sim/previous/ASN1c/X2APMessageTransfer.h | 60 - e2sim/previous/ASN1c/X2BenefitValue.c | 79 - e2sim/previous/ASN1c/X2BenefitValue.h | 62 - e2sim/previous/ASN1c/X2Release.c | 68 - e2sim/previous/ASN1c/X2Release.h | 60 - e2sim/previous/ASN1c/X2RemovalFailure.c | 68 - e2sim/previous/ASN1c/X2RemovalFailure.h | 60 - e2sim/previous/ASN1c/X2RemovalRequest.c | 68 - e2sim/previous/ASN1c/X2RemovalRequest.h | 60 - e2sim/previous/ASN1c/X2RemovalResponse.c | 68 - e2sim/previous/ASN1c/X2RemovalResponse.h | 60 - e2sim/previous/ASN1c/X2SetupFailure.c | 68 - e2sim/previous/ASN1c/X2SetupFailure.h | 62 - e2sim/previous/ASN1c/X2SetupRequest.c | 68 - e2sim/previous/ASN1c/X2SetupRequest.h | 62 - e2sim/previous/ASN1c/X2SetupResponse.c | 68 - e2sim/previous/ASN1c/X2SetupResponse.h | 62 - e2sim/previous/ASN1c/asn_SEQUENCE_OF.c | 59 - e2sim/previous/ASN1c/asn_SEQUENCE_OF.h | 70 - e2sim/previous/ASN1c/asn_SET_OF.c | 106 - e2sim/previous/ASN1c/asn_SET_OF.h | 90 - e2sim/previous/ASN1c/asn_application.c | 499 - e2sim/previous/ASN1c/asn_application.h | 189 - e2sim/previous/ASN1c/asn_bit_data.c | 351 - e2sim/previous/ASN1c/asn_bit_data.h | 101 - e2sim/previous/ASN1c/asn_codecs.h | 126 - e2sim/previous/ASN1c/asn_codecs_prim.c | 335 - e2sim/previous/ASN1c/asn_codecs_prim.h | 69 - e2sim/previous/ASN1c/asn_constant.h | 87 - e2sim/previous/ASN1c/asn_internal.c | 66 - e2sim/previous/ASN1c/asn_internal.h | 177 - e2sim/previous/ASN1c/asn_ioc.h | 69 - e2sim/previous/ASN1c/asn_random_fill.c | 74 - e2sim/previous/ASN1c/asn_random_fill.h | 69 - e2sim/previous/ASN1c/asn_system.h | 168 - e2sim/previous/ASN1c/ber_decoder.c | 301 - e2sim/previous/ASN1c/ber_decoder.h | 84 - e2sim/previous/ASN1c/ber_tlv_length.c | 186 - e2sim/previous/ASN1c/ber_tlv_length.h | 68 - e2sim/previous/ASN1c/ber_tlv_tag.c | 162 - e2sim/previous/ASN1c/ber_tlv_tag.h | 78 - e2sim/previous/ASN1c/constr_CHOICE.c | 1551 - e2sim/previous/ASN1c/constr_CHOICE.h | 98 - e2sim/previous/ASN1c/constr_SEQUENCE.c | 2077 - e2sim/previous/ASN1c/constr_SEQUENCE.h | 86 - e2sim/previous/ASN1c/constr_SEQUENCE_OF.c | 376 - e2sim/previous/ASN1c/constr_SEQUENCE_OF.h | 59 - e2sim/previous/ASN1c/constr_SET_OF.c | 1459 - e2sim/previous/ASN1c/constr_SET_OF.h | 67 - e2sim/previous/ASN1c/constr_TYPE.c | 98 - e2sim/previous/ASN1c/constr_TYPE.h | 280 - e2sim/previous/ASN1c/constraints.c | 111 - e2sim/previous/ASN1c/constraints.h | 80 - e2sim/previous/ASN1c/converter-example.mk | 50 - e2sim/previous/ASN1c/der_encoder.c | 212 - e2sim/previous/ASN1c/der_encoder.h | 86 - e2sim/previous/ASN1c/pdu_collection.c | 189 - e2sim/previous/ASN1c/per_decoder.c | 203 - e2sim/previous/ASN1c/per_decoder.h | 100 - e2sim/previous/ASN1c/per_encoder.c | 283 - e2sim/previous/ASN1c/per_encoder.h | 111 - e2sim/previous/ASN1c/per_opentype.c | 551 - e2sim/previous/ASN1c/per_opentype.h | 62 - e2sim/previous/ASN1c/per_support.c | 507 - e2sim/previous/ASN1c/per_support.h | 145 - e2sim/previous/ASN1c/xer_decoder.c | 387 - e2sim/previous/ASN1c/xer_decoder.h | 124 - e2sim/previous/ASN1c/xer_encoder.c | 255 - e2sim/previous/ASN1c/xer_encoder.h | 101 - e2sim/previous/ASN1c/xer_support.c | 245 - e2sim/previous/ASN1c/xer_support.h | 73 - e2sim/previous/CMakeLists.txt | 61 - e2sim/previous/README.md | 95 - e2sim/previous/build_e2sim | 86 - e2sim/previous/docker/Dockerfile | 54 - e2sim/previous/docker/container-tag.yaml | 2 - e2sim/previous/docker/old/DockerFile_old | 53 - e2sim/previous/docker/old/Dockerfile | 42 - e2sim/previous/docker/old/Dockerfile_base | 60 - e2sim/previous/docker/old/configure_rmr | 27 - e2sim/previous/docker/old/empty.rt | 5 - e2sim/previous/docker/old/install_asn1c | 29 - e2sim/previous/docker/old/install_rmr | 32 - e2sim/previous/docker/old/local.rt | 9 - e2sim/previous/e2apv1sim/ASN1c/ANY.c | 450 - e2sim/previous/e2apv1sim/ASN1c/ANY.h | 65 - e2sim/previous/e2apv1sim/ASN1c/BIT_STRING.c | 656 - e2sim/previous/e2apv1sim/ASN1c/BIT_STRING.h | 48 - e2sim/previous/e2apv1sim/ASN1c/BIT_STRING_oer.c | 174 - e2sim/previous/e2apv1sim/ASN1c/C-RNTI.c | 65 - e2sim/previous/e2apv1sim/ASN1c/C-RNTI.h | 46 - .../CU-CP-Usage-Report-CellResourceReportItem.c | 139 - .../CU-CP-Usage-Report-CellResourceReportItem.h | 58 - .../e2apv1sim/ASN1c/CU-CP-Usage-Report-Per-UE.c | 129 - .../e2apv1sim/ASN1c/CU-CP-Usage-Report-Per-UE.h | 56 - .../CU-CP-Usage-Report-UeResourceReportItem.c | 72 - .../CU-CP-Usage-Report-UeResourceReportItem.h | 47 - .../CU-UP-Usage-Report-CellResourceReportItem.c | 139 - .../CU-UP-Usage-Report-CellResourceReportItem.h | 58 - .../e2apv1sim/ASN1c/CU-UP-Usage-Report-Per-UE.c | 129 - .../e2apv1sim/ASN1c/CU-UP-Usage-Report-Per-UE.h | 56 - .../CU-UP-Usage-Report-UeResourceReportItem.c | 150 - .../CU-UP-Usage-Report-UeResourceReportItem.h | 47 - .../e2apv1sim/ASN1c/CUUPMeasurement-Container.c | 129 - .../e2apv1sim/ASN1c/CUUPMeasurement-Container.h | 56 - e2sim/previous/e2apv1sim/ASN1c/Cause.c | 92 - e2sim/previous/e2apv1sim/ASN1c/Cause.h | 68 - e2sim/previous/e2apv1sim/ASN1c/CauseMisc.c | 59 - e2sim/previous/e2apv1sim/ASN1c/CauseMisc.h | 56 - e2sim/previous/e2apv1sim/ASN1c/CauseProtocol.c | 65 - e2sim/previous/e2apv1sim/ASN1c/CauseProtocol.h | 59 - e2sim/previous/e2apv1sim/ASN1c/CauseRIC.c | 73 - e2sim/previous/e2apv1sim/ASN1c/CauseRIC.h | 63 - e2sim/previous/e2apv1sim/ASN1c/CauseRICservice.c | 57 - e2sim/previous/e2apv1sim/ASN1c/CauseRICservice.h | 55 - e2sim/previous/e2apv1sim/ASN1c/CauseTransport.c | 55 - e2sim/previous/e2apv1sim/ASN1c/CauseTransport.h | 54 - .../e2apv1sim/ASN1c/CellResourceReportListItem.c | 227 - .../e2apv1sim/ASN1c/CellResourceReportListItem.h | 61 - e2sim/previous/e2apv1sim/ASN1c/Criticality.c | 55 - e2sim/previous/e2apv1sim/ASN1c/Criticality.h | 52 - .../ASN1c/CriticalityDiagnostics-IE-Item.c | 70 - .../ASN1c/CriticalityDiagnostics-IE-Item.h | 48 - .../ASN1c/CriticalityDiagnostics-IE-List.c | 50 - .../ASN1c/CriticalityDiagnostics-IE-List.h | 44 - .../e2apv1sim/ASN1c/CriticalityDiagnostics.c | 94 - .../e2apv1sim/ASN1c/CriticalityDiagnostics.h | 52 - .../ASN1c/DU-Usage-Report-CellResourceReportItem.c | 139 - .../ASN1c/DU-Usage-Report-CellResourceReportItem.h | 58 - .../e2apv1sim/ASN1c/DU-Usage-Report-Per-UE.c | 129 - .../e2apv1sim/ASN1c/DU-Usage-Report-Per-UE.h | 56 - .../ASN1c/DU-Usage-Report-UeResourceReportItem.c | 138 - .../ASN1c/DU-Usage-Report-UeResourceReportItem.h | 47 - e2sim/previous/e2apv1sim/ASN1c/E2AP-PDU.c | 75 - e2sim/previous/e2apv1sim/ASN1c/E2AP-PDU.h | 61 - .../e2apv1sim/ASN1c/E2SM-KPM-ActionDefinition.c | 50 - .../e2apv1sim/ASN1c/E2SM-KPM-ActionDefinition.h | 42 - .../E2SM-KPM-EventTriggerDefinition-Format1.c | 131 - .../E2SM-KPM-EventTriggerDefinition-Format1.h | 56 - .../ASN1c/E2SM-KPM-EventTriggerDefinition.c | 55 - .../ASN1c/E2SM-KPM-EventTriggerDefinition.h | 53 - .../ASN1c/E2SM-KPM-IndicationHeader-Format1.c | 208 - .../ASN1c/E2SM-KPM-IndicationHeader-Format1.h | 70 - .../e2apv1sim/ASN1c/E2SM-KPM-IndicationHeader.c | 55 - .../e2apv1sim/ASN1c/E2SM-KPM-IndicationHeader.h | 53 - .../ASN1c/E2SM-KPM-IndicationMessage-Format1.c | 129 - .../ASN1c/E2SM-KPM-IndicationMessage-Format1.h | 56 - .../e2apv1sim/ASN1c/E2SM-KPM-IndicationMessage.c | 107 - .../e2apv1sim/ASN1c/E2SM-KPM-IndicationMessage.h | 65 - .../ASN1c/E2SM-KPM-RANfunction-Description.c | 273 - .../ASN1c/E2SM-KPM-RANfunction-Description.h | 73 - e2sim/previous/e2apv1sim/ASN1c/E2setupFailure.c | 50 - e2sim/previous/e2apv1sim/ASN1c/E2setupFailure.h | 44 - e2sim/previous/e2apv1sim/ASN1c/E2setupRequest.c | 50 - e2sim/previous/e2apv1sim/ASN1c/E2setupRequest.h | 44 - e2sim/previous/e2apv1sim/ASN1c/E2setupResponse.c | 50 - e2sim/previous/e2apv1sim/ASN1c/E2setupResponse.h | 44 - e2sim/previous/e2apv1sim/ASN1c/ENB-ID-Choice.c | 192 - e2sim/previous/e2apv1sim/ASN1c/ENB-ID-Choice.h | 60 - e2sim/previous/e2apv1sim/ASN1c/ENB-ID.c | 241 - e2sim/previous/e2apv1sim/ASN1c/ENB-ID.h | 61 - e2sim/previous/e2apv1sim/ASN1c/ENGNB-ID.c | 94 - e2sim/previous/e2apv1sim/ASN1c/ENGNB-ID.h | 56 - .../previous/e2apv1sim/ASN1c/EPC-CUUP-PM-Format.c | 129 - .../previous/e2apv1sim/ASN1c/EPC-CUUP-PM-Format.h | 56 - .../previous/e2apv1sim/ASN1c/EPC-DU-PM-Container.c | 129 - .../previous/e2apv1sim/ASN1c/EPC-DU-PM-Container.h | 56 - e2sim/previous/e2apv1sim/ASN1c/ErrorIndication.c | 50 - e2sim/previous/e2apv1sim/ASN1c/ErrorIndication.h | 44 - .../previous/e2apv1sim/ASN1c/FGC-CUUP-PM-Format.c | 129 - .../previous/e2apv1sim/ASN1c/FGC-CUUP-PM-Format.h | 56 - .../previous/e2apv1sim/ASN1c/FGC-DU-PM-Container.c | 129 - .../previous/e2apv1sim/ASN1c/FGC-DU-PM-Container.h | 56 - .../e2apv1sim/ASN1c/FQIPERSlicesPerPlmnListItem.c | 183 - .../e2apv1sim/ASN1c/FQIPERSlicesPerPlmnListItem.h | 47 - .../ASN1c/FQIPERSlicesPerPlmnPerCellListItem.c | 171 - .../ASN1c/FQIPERSlicesPerPlmnPerCellListItem.h | 46 - e2sim/previous/e2apv1sim/ASN1c/GNB-CU-CP-Name.c | 109 - e2sim/previous/e2apv1sim/ASN1c/GNB-CU-CP-Name.h | 46 - e2sim/previous/e2apv1sim/ASN1c/GNB-CU-UP-ID.c | 70 - e2sim/previous/e2apv1sim/ASN1c/GNB-CU-UP-ID.h | 46 - e2sim/previous/e2apv1sim/ASN1c/GNB-CU-UP-Name.c | 109 - e2sim/previous/e2apv1sim/ASN1c/GNB-CU-UP-Name.h | 46 - e2sim/previous/e2apv1sim/ASN1c/GNB-DU-ID.c | 70 - e2sim/previous/e2apv1sim/ASN1c/GNB-DU-ID.h | 46 - e2sim/previous/e2apv1sim/ASN1c/GNB-DU-Name.c | 109 - e2sim/previous/e2apv1sim/ASN1c/GNB-DU-Name.h | 46 - e2sim/previous/e2apv1sim/ASN1c/GNB-ID-Choice.c | 94 - e2sim/previous/e2apv1sim/ASN1c/GNB-ID-Choice.h | 56 - e2sim/previous/e2apv1sim/ASN1c/GNB-Name.c | 75 - e2sim/previous/e2apv1sim/ASN1c/GNB-Name.h | 62 - e2sim/previous/e2apv1sim/ASN1c/GlobalE2node-ID.c | 86 - e2sim/previous/e2apv1sim/ASN1c/GlobalE2node-ID.h | 64 - .../previous/e2apv1sim/ASN1c/GlobalE2node-eNB-ID.c | 50 - .../previous/e2apv1sim/ASN1c/GlobalE2node-eNB-ID.h | 44 - .../e2apv1sim/ASN1c/GlobalE2node-en-gNB-ID.c | 50 - .../e2apv1sim/ASN1c/GlobalE2node-en-gNB-ID.h | 44 - .../previous/e2apv1sim/ASN1c/GlobalE2node-gNB-ID.c | 72 - .../previous/e2apv1sim/ASN1c/GlobalE2node-gNB-ID.h | 48 - .../e2apv1sim/ASN1c/GlobalE2node-ng-eNB-ID.c | 50 - .../e2apv1sim/ASN1c/GlobalE2node-ng-eNB-ID.h | 44 - e2sim/previous/e2apv1sim/ASN1c/GlobalENB-ID.c | 60 - e2sim/previous/e2apv1sim/ASN1c/GlobalENB-ID.h | 46 - e2sim/previous/e2apv1sim/ASN1c/GlobalKPMnode-ID.c | 85 - e2sim/previous/e2apv1sim/ASN1c/GlobalKPMnode-ID.h | 65 - .../e2apv1sim/ASN1c/GlobalKPMnode-eNB-ID.c | 50 - .../e2apv1sim/ASN1c/GlobalKPMnode-eNB-ID.h | 44 - .../e2apv1sim/ASN1c/GlobalKPMnode-en-gNB-ID.c | 50 - .../e2apv1sim/ASN1c/GlobalKPMnode-en-gNB-ID.h | 44 - .../e2apv1sim/ASN1c/GlobalKPMnode-gNB-ID.c | 72 - .../e2apv1sim/ASN1c/GlobalKPMnode-gNB-ID.h | 48 - .../e2apv1sim/ASN1c/GlobalKPMnode-ng-eNB-ID.c | 50 - .../e2apv1sim/ASN1c/GlobalKPMnode-ng-eNB-ID.h | 44 - e2sim/previous/e2apv1sim/ASN1c/GlobalRIC-ID.c | 96 - e2sim/previous/e2apv1sim/ASN1c/GlobalRIC-ID.h | 44 - e2sim/previous/e2apv1sim/ASN1c/GlobalenGNB-ID.c | 60 - e2sim/previous/e2apv1sim/ASN1c/GlobalenGNB-ID.h | 46 - e2sim/previous/e2apv1sim/ASN1c/GlobalgNB-ID.c | 60 - e2sim/previous/e2apv1sim/ASN1c/GlobalgNB-ID.h | 46 - e2sim/previous/e2apv1sim/ASN1c/GlobalngeNB-ID.c | 60 - e2sim/previous/e2apv1sim/ASN1c/GlobalngeNB-ID.h | 46 - e2sim/previous/e2apv1sim/ASN1c/INTEGER.c | 1735 - e2sim/previous/e2apv1sim/ASN1c/INTEGER.h | 108 - e2sim/previous/e2apv1sim/ASN1c/INTEGER_oer.c | 179 - e2sim/previous/e2apv1sim/ASN1c/InitiatingMessage.c | 389 - e2sim/previous/e2apv1sim/ASN1c/InitiatingMessage.h | 97 - .../e2apv1sim/ASN1c/Makefile.am.asn1convert | 14 - .../e2apv1sim/ASN1c/Makefile.am.libasncodec | 240 - e2sim/previous/e2apv1sim/ASN1c/NI-Type.c | 60 - e2sim/previous/e2apv1sim/ASN1c/NI-Type.h | 57 - e2sim/previous/e2apv1sim/ASN1c/NRCGI.c | 60 - e2sim/previous/e2apv1sim/ASN1c/NRCGI.h | 42 - e2sim/previous/e2apv1sim/ASN1c/NRCellIdentity.c | 70 - e2sim/previous/e2apv1sim/ASN1c/NRCellIdentity.h | 46 - e2sim/previous/e2apv1sim/ASN1c/NativeEnumerated.c | 367 - e2sim/previous/e2apv1sim/ASN1c/NativeEnumerated.h | 45 - .../e2apv1sim/ASN1c/NativeEnumerated_oer.c | 149 - e2sim/previous/e2apv1sim/ASN1c/NativeInteger.c | 550 - e2sim/previous/e2apv1sim/ASN1c/NativeInteger.h | 46 - e2sim/previous/e2apv1sim/ASN1c/NativeInteger_oer.c | 99 - e2sim/previous/e2apv1sim/ASN1c/OCTET_STRING.c | 2411 - e2sim/previous/e2apv1sim/ASN1c/OCTET_STRING.h | 102 - e2sim/previous/e2apv1sim/ASN1c/OCTET_STRING_oer.c | 171 - .../previous/e2apv1sim/ASN1c/OCUCP-PF-Container.c | 140 - .../previous/e2apv1sim/ASN1c/OCUCP-PF-Container.h | 47 - .../previous/e2apv1sim/ASN1c/OCUUP-PF-Container.c | 141 - .../previous/e2apv1sim/ASN1c/OCUUP-PF-Container.h | 58 - e2sim/previous/e2apv1sim/ASN1c/ODU-PF-Container.c | 129 - e2sim/previous/e2apv1sim/ASN1c/ODU-PF-Container.h | 56 - e2sim/previous/e2apv1sim/ASN1c/OPEN_TYPE.c | 509 - e2sim/previous/e2apv1sim/ASN1c/OPEN_TYPE.h | 77 - e2sim/previous/e2apv1sim/ASN1c/OPEN_TYPE_oer.c | 92 - e2sim/previous/e2apv1sim/ASN1c/PF-Container.c | 75 - e2sim/previous/e2apv1sim/ASN1c/PF-Container.h | 62 - .../e2apv1sim/ASN1c/PF-ContainerListItem.c | 60 - .../e2apv1sim/ASN1c/PF-ContainerListItem.h | 46 - e2sim/previous/e2apv1sim/ASN1c/PLMN-Identity.c | 65 - e2sim/previous/e2apv1sim/ASN1c/PLMN-Identity.h | 46 - .../previous/e2apv1sim/ASN1c/PM-Containers-List.c | 62 - .../previous/e2apv1sim/ASN1c/PM-Containers-List.h | 52 - .../e2apv1sim/ASN1c/PerQCIReportListItem.c | 171 - .../e2apv1sim/ASN1c/PerQCIReportListItem.h | 46 - .../e2apv1sim/ASN1c/PerQCIReportListItemFormat.c | 183 - .../e2apv1sim/ASN1c/PerQCIReportListItemFormat.h | 47 - e2sim/previous/e2apv1sim/ASN1c/PlmnID-List.c | 72 - e2sim/previous/e2apv1sim/ASN1c/PlmnID-List.h | 54 - e2sim/previous/e2apv1sim/ASN1c/Presence.c | 55 - e2sim/previous/e2apv1sim/ASN1c/Presence.h | 52 - e2sim/previous/e2apv1sim/ASN1c/PrintableString.c | 130 - e2sim/previous/e2apv1sim/ASN1c/PrintableString.h | 37 - e2sim/previous/e2apv1sim/ASN1c/ProcedureCode.c | 61 - e2sim/previous/e2apv1sim/ASN1c/ProcedureCode.h | 53 - .../e2apv1sim/ASN1c/ProtocolIE-Container.c | 810 - .../e2apv1sim/ASN1c/ProtocolIE-Container.h | 253 - .../e2apv1sim/ASN1c/ProtocolIE-ContainerList.c | 9 - .../e2apv1sim/ASN1c/ProtocolIE-ContainerList.h | 23 - .../e2apv1sim/ASN1c/ProtocolIE-ContainerPair.c | 9 - .../e2apv1sim/ASN1c/ProtocolIE-ContainerPair.h | 23 - .../e2apv1sim/ASN1c/ProtocolIE-ContainerPairList.c | 9 - .../e2apv1sim/ASN1c/ProtocolIE-ContainerPairList.h | 23 - e2sim/previous/e2apv1sim/ASN1c/ProtocolIE-Field.c | 7190 -- e2sim/previous/e2apv1sim/ASN1c/ProtocolIE-Field.h | 757 - .../e2apv1sim/ASN1c/ProtocolIE-FieldPair.c | 9 - .../e2apv1sim/ASN1c/ProtocolIE-FieldPair.h | 23 - e2sim/previous/e2apv1sim/ASN1c/ProtocolIE-ID.c | 61 - e2sim/previous/e2apv1sim/ASN1c/ProtocolIE-ID.h | 76 - .../e2apv1sim/ASN1c/ProtocolIE-SingleContainer.c | 147 - .../e2apv1sim/ASN1c/ProtocolIE-SingleContainer.h | 108 - e2sim/previous/e2apv1sim/ASN1c/RAN-Container.c | 127 - e2sim/previous/e2apv1sim/ASN1c/RAN-Container.h | 73 - .../e2apv1sim/ASN1c/RANcallProcess-ID-string.c | 109 - .../e2apv1sim/ASN1c/RANcallProcess-ID-string.h | 45 - e2sim/previous/e2apv1sim/ASN1c/RANfunction-Item.c | 70 - e2sim/previous/e2apv1sim/ASN1c/RANfunction-Item.h | 46 - e2sim/previous/e2apv1sim/ASN1c/RANfunction-Name.c | 316 - e2sim/previous/e2apv1sim/ASN1c/RANfunction-Name.h | 48 - .../e2apv1sim/ASN1c/RANfunctionDefinition.c | 31 - .../e2apv1sim/ASN1c/RANfunctionDefinition.h | 43 - .../previous/e2apv1sim/ASN1c/RANfunctionID-Item.c | 60 - .../previous/e2apv1sim/ASN1c/RANfunctionID-Item.h | 44 - e2sim/previous/e2apv1sim/ASN1c/RANfunctionID.c | 61 - e2sim/previous/e2apv1sim/ASN1c/RANfunctionID.h | 44 - .../e2apv1sim/ASN1c/RANfunctionIDcause-Item.c | 60 - .../e2apv1sim/ASN1c/RANfunctionIDcause-Item.h | 44 - .../previous/e2apv1sim/ASN1c/RANfunctionRevision.c | 61 - .../previous/e2apv1sim/ASN1c/RANfunctionRevision.h | 44 - e2sim/previous/e2apv1sim/ASN1c/RANfunctions-List.c | 50 - e2sim/previous/e2apv1sim/ASN1c/RANfunctions-List.h | 41 - .../previous/e2apv1sim/ASN1c/RANfunctionsID-List.c | 50 - .../previous/e2apv1sim/ASN1c/RANfunctionsID-List.h | 41 - .../e2apv1sim/ASN1c/RANfunctionsIDcause-List.c | 50 - .../e2apv1sim/ASN1c/RANfunctionsIDcause-List.h | 41 - .../e2apv1sim/ASN1c/RIC-EventTriggerStyle-List.c | 70 - .../e2apv1sim/ASN1c/RIC-EventTriggerStyle-List.h | 48 - e2sim/previous/e2apv1sim/ASN1c/RIC-Format-Type.c | 31 - e2sim/previous/e2apv1sim/ASN1c/RIC-Format-Type.h | 45 - .../e2apv1sim/ASN1c/RIC-ReportStyle-List.c | 80 - .../e2apv1sim/ASN1c/RIC-ReportStyle-List.h | 49 - e2sim/previous/e2apv1sim/ASN1c/RIC-Style-Name.c | 109 - e2sim/previous/e2apv1sim/ASN1c/RIC-Style-Name.h | 46 - e2sim/previous/e2apv1sim/ASN1c/RIC-Style-Type.c | 31 - e2sim/previous/e2apv1sim/ASN1c/RIC-Style-Type.h | 45 - .../e2apv1sim/ASN1c/RICaction-Admitted-Item.c | 50 - .../e2apv1sim/ASN1c/RICaction-Admitted-Item.h | 42 - .../e2apv1sim/ASN1c/RICaction-Admitted-List.c | 50 - .../e2apv1sim/ASN1c/RICaction-Admitted-List.h | 41 - .../e2apv1sim/ASN1c/RICaction-NotAdmitted-Item.c | 60 - .../e2apv1sim/ASN1c/RICaction-NotAdmitted-Item.h | 44 - .../e2apv1sim/ASN1c/RICaction-NotAdmitted-List.c | 50 - .../e2apv1sim/ASN1c/RICaction-NotAdmitted-List.h | 41 - .../e2apv1sim/ASN1c/RICaction-ToBeSetup-Item.c | 83 - .../e2apv1sim/ASN1c/RICaction-ToBeSetup-Item.h | 50 - .../previous/e2apv1sim/ASN1c/RICactionDefinition.c | 31 - .../previous/e2apv1sim/ASN1c/RICactionDefinition.h | 43 - e2sim/previous/e2apv1sim/ASN1c/RICactionID.c | 61 - e2sim/previous/e2apv1sim/ASN1c/RICactionID.h | 44 - e2sim/previous/e2apv1sim/ASN1c/RICactionType.c | 57 - e2sim/previous/e2apv1sim/ASN1c/RICactionType.h | 55 - .../e2apv1sim/ASN1c/RICactions-ToBeSetup-List.c | 50 - .../e2apv1sim/ASN1c/RICactions-ToBeSetup-List.h | 44 - e2sim/previous/e2apv1sim/ASN1c/RICcallProcessID.c | 31 - e2sim/previous/e2apv1sim/ASN1c/RICcallProcessID.h | 43 - .../e2apv1sim/ASN1c/RICcontrolAckRequest.c | 57 - .../e2apv1sim/ASN1c/RICcontrolAckRequest.h | 53 - .../e2apv1sim/ASN1c/RICcontrolAcknowledge.c | 50 - .../e2apv1sim/ASN1c/RICcontrolAcknowledge.h | 44 - e2sim/previous/e2apv1sim/ASN1c/RICcontrolFailure.c | 50 - e2sim/previous/e2apv1sim/ASN1c/RICcontrolFailure.h | 44 - e2sim/previous/e2apv1sim/ASN1c/RICcontrolHeader.c | 31 - e2sim/previous/e2apv1sim/ASN1c/RICcontrolHeader.h | 43 - e2sim/previous/e2apv1sim/ASN1c/RICcontrolMessage.c | 31 - e2sim/previous/e2apv1sim/ASN1c/RICcontrolMessage.h | 43 - e2sim/previous/e2apv1sim/ASN1c/RICcontrolOutcome.c | 31 - e2sim/previous/e2apv1sim/ASN1c/RICcontrolOutcome.h | 43 - e2sim/previous/e2apv1sim/ASN1c/RICcontrolRequest.c | 50 - e2sim/previous/e2apv1sim/ASN1c/RICcontrolRequest.h | 44 - e2sim/previous/e2apv1sim/ASN1c/RICcontrolStatus.c | 57 - e2sim/previous/e2apv1sim/ASN1c/RICcontrolStatus.h | 53 - .../e2apv1sim/ASN1c/RICeventTriggerDefinition.c | 31 - .../e2apv1sim/ASN1c/RICeventTriggerDefinition.h | 43 - e2sim/previous/e2apv1sim/ASN1c/RICindication.c | 50 - e2sim/previous/e2apv1sim/ASN1c/RICindication.h | 44 - .../previous/e2apv1sim/ASN1c/RICindicationHeader.c | 31 - .../previous/e2apv1sim/ASN1c/RICindicationHeader.h | 43 - .../e2apv1sim/ASN1c/RICindicationMessage.c | 31 - .../e2apv1sim/ASN1c/RICindicationMessage.h | 43 - e2sim/previous/e2apv1sim/ASN1c/RICindicationSN.c | 61 - e2sim/previous/e2apv1sim/ASN1c/RICindicationSN.h | 43 - e2sim/previous/e2apv1sim/ASN1c/RICindicationType.c | 55 - e2sim/previous/e2apv1sim/ASN1c/RICindicationType.h | 52 - e2sim/previous/e2apv1sim/ASN1c/RICrequestID.c | 120 - e2sim/previous/e2apv1sim/ASN1c/RICrequestID.h | 45 - e2sim/previous/e2apv1sim/ASN1c/RICserviceQuery.c | 50 - e2sim/previous/e2apv1sim/ASN1c/RICserviceQuery.h | 44 - e2sim/previous/e2apv1sim/ASN1c/RICserviceUpdate.c | 50 - e2sim/previous/e2apv1sim/ASN1c/RICserviceUpdate.h | 44 - .../e2apv1sim/ASN1c/RICserviceUpdateAcknowledge.c | 50 - .../e2apv1sim/ASN1c/RICserviceUpdateAcknowledge.h | 44 - .../e2apv1sim/ASN1c/RICserviceUpdateFailure.c | 50 - .../e2apv1sim/ASN1c/RICserviceUpdateFailure.h | 44 - .../e2apv1sim/ASN1c/RICsubscriptionDeleteFailure.c | 50 - .../e2apv1sim/ASN1c/RICsubscriptionDeleteFailure.h | 44 - .../e2apv1sim/ASN1c/RICsubscriptionDeleteRequest.c | 50 - .../e2apv1sim/ASN1c/RICsubscriptionDeleteRequest.h | 44 - .../ASN1c/RICsubscriptionDeleteResponse.c | 50 - .../ASN1c/RICsubscriptionDeleteResponse.h | 44 - .../e2apv1sim/ASN1c/RICsubscriptionDetails.c | 60 - .../e2apv1sim/ASN1c/RICsubscriptionDetails.h | 44 - .../e2apv1sim/ASN1c/RICsubscriptionFailure.c | 50 - .../e2apv1sim/ASN1c/RICsubscriptionFailure.h | 44 - .../e2apv1sim/ASN1c/RICsubscriptionRequest.c | 50 - .../e2apv1sim/ASN1c/RICsubscriptionRequest.h | 44 - .../e2apv1sim/ASN1c/RICsubscriptionResponse.c | 50 - .../e2apv1sim/ASN1c/RICsubscriptionResponse.h | 44 - .../previous/e2apv1sim/ASN1c/RICsubsequentAction.c | 60 - .../previous/e2apv1sim/ASN1c/RICsubsequentAction.h | 46 - .../e2apv1sim/ASN1c/RICsubsequentActionType.c | 55 - .../e2apv1sim/ASN1c/RICsubsequentActionType.h | 54 - e2sim/previous/e2apv1sim/ASN1c/RICtimeToWait.c | 87 - e2sim/previous/e2apv1sim/ASN1c/RICtimeToWait.h | 70 - e2sim/previous/e2apv1sim/ASN1c/RT-Period-IE.c | 94 - e2sim/previous/e2apv1sim/ASN1c/RT-Period-IE.h | 74 - e2sim/previous/e2apv1sim/ASN1c/ResetRequest.c | 50 - e2sim/previous/e2apv1sim/ASN1c/ResetRequest.h | 44 - e2sim/previous/e2apv1sim/ASN1c/ResetResponse.c | 50 - e2sim/previous/e2apv1sim/ASN1c/ResetResponse.h | 44 - e2sim/previous/e2apv1sim/ASN1c/SNSSAI.c | 130 - e2sim/previous/e2apv1sim/ASN1c/SNSSAI.h | 41 - .../e2apv1sim/ASN1c/ServedPlmnPerCellListItem.c | 72 - .../e2apv1sim/ASN1c/ServedPlmnPerCellListItem.h | 54 - .../e2apv1sim/ASN1c/SlicePerPlmnPerCellListItem.c | 139 - .../e2apv1sim/ASN1c/SlicePerPlmnPerCellListItem.h | 58 - .../e2apv1sim/ASN1c/SliceToReportListItem.c | 139 - .../e2apv1sim/ASN1c/SliceToReportListItem.h | 58 - e2sim/previous/e2apv1sim/ASN1c/SuccessfulOutcome.c | 359 - e2sim/previous/e2apv1sim/ASN1c/SuccessfulOutcome.h | 91 - e2sim/previous/e2apv1sim/ASN1c/TimeToWait.c | 63 - e2sim/previous/e2apv1sim/ASN1c/TimeToWait.h | 56 - e2sim/previous/e2apv1sim/ASN1c/Timestamp.c | 31 - e2sim/previous/e2apv1sim/ASN1c/Timestamp.h | 45 - .../e2apv1sim/ASN1c/Trigger-ConditionIE-Item.c | 50 - .../e2apv1sim/ASN1c/Trigger-ConditionIE-Item.h | 44 - e2sim/previous/e2apv1sim/ASN1c/TriggeringMessage.c | 55 - e2sim/previous/e2apv1sim/ASN1c/TriggeringMessage.h | 52 - e2sim/previous/e2apv1sim/ASN1c/TypeOfError.c | 55 - e2sim/previous/e2apv1sim/ASN1c/TypeOfError.h | 54 - e2sim/previous/e2apv1sim/ASN1c/UE-Report-Type.c | 60 - e2sim/previous/e2apv1sim/ASN1c/UE-Report-Type.h | 57 - .../previous/e2apv1sim/ASN1c/UnsuccessfulOutcome.c | 349 - .../previous/e2apv1sim/ASN1c/UnsuccessfulOutcome.h | 89 - e2sim/previous/e2apv1sim/ASN1c/asn_SEQUENCE_OF.c | 41 - e2sim/previous/e2apv1sim/ASN1c/asn_SEQUENCE_OF.h | 52 - e2sim/previous/e2apv1sim/ASN1c/asn_SET_OF.c | 88 - e2sim/previous/e2apv1sim/ASN1c/asn_SET_OF.h | 72 - e2sim/previous/e2apv1sim/ASN1c/asn_application.c | 481 - e2sim/previous/e2apv1sim/ASN1c/asn_application.h | 171 - e2sim/previous/e2apv1sim/ASN1c/asn_bit_data.c | 333 - e2sim/previous/e2apv1sim/ASN1c/asn_bit_data.h | 83 - e2sim/previous/e2apv1sim/ASN1c/asn_codecs.h | 108 - e2sim/previous/e2apv1sim/ASN1c/asn_codecs_prim.c | 317 - e2sim/previous/e2apv1sim/ASN1c/asn_codecs_prim.h | 51 - e2sim/previous/e2apv1sim/ASN1c/asn_constant.h | 30 - e2sim/previous/e2apv1sim/ASN1c/asn_internal.c | 48 - e2sim/previous/e2apv1sim/ASN1c/asn_internal.h | 159 - e2sim/previous/e2apv1sim/ASN1c/asn_ioc.h | 51 - e2sim/previous/e2apv1sim/ASN1c/asn_random_fill.c | 56 - e2sim/previous/e2apv1sim/ASN1c/asn_random_fill.h | 51 - e2sim/previous/e2apv1sim/ASN1c/asn_system.h | 150 - e2sim/previous/e2apv1sim/ASN1c/ber_decoder.c | 283 - e2sim/previous/e2apv1sim/ASN1c/ber_decoder.h | 66 - e2sim/previous/e2apv1sim/ASN1c/ber_tlv_length.c | 168 - e2sim/previous/e2apv1sim/ASN1c/ber_tlv_length.h | 50 - e2sim/previous/e2apv1sim/ASN1c/ber_tlv_tag.c | 144 - e2sim/previous/e2apv1sim/ASN1c/ber_tlv_tag.h | 60 - e2sim/previous/e2apv1sim/ASN1c/constr_CHOICE.c | 1533 - e2sim/previous/e2apv1sim/ASN1c/constr_CHOICE.h | 80 - e2sim/previous/e2apv1sim/ASN1c/constr_CHOICE_oer.c | 380 - e2sim/previous/e2apv1sim/ASN1c/constr_SEQUENCE.c | 2059 - e2sim/previous/e2apv1sim/ASN1c/constr_SEQUENCE.h | 68 - .../previous/e2apv1sim/ASN1c/constr_SEQUENCE_OF.c | 358 - .../previous/e2apv1sim/ASN1c/constr_SEQUENCE_OF.h | 41 - .../previous/e2apv1sim/ASN1c/constr_SEQUENCE_oer.c | 561 - e2sim/previous/e2apv1sim/ASN1c/constr_SET_OF.c | 1441 - e2sim/previous/e2apv1sim/ASN1c/constr_SET_OF.h | 49 - e2sim/previous/e2apv1sim/ASN1c/constr_SET_OF_oer.c | 285 - e2sim/previous/e2apv1sim/ASN1c/constr_TYPE.c | 80 - e2sim/previous/e2apv1sim/ASN1c/constr_TYPE.h | 262 - e2sim/previous/e2apv1sim/ASN1c/constraints.c | 93 - e2sim/previous/e2apv1sim/ASN1c/constraints.h | 62 - .../previous/e2apv1sim/ASN1c/converter-example.mk | 33 - e2sim/previous/e2apv1sim/ASN1c/der_encoder.c | 194 - e2sim/previous/e2apv1sim/ASN1c/der_encoder.h | 68 - e2sim/previous/e2apv1sim/ASN1c/oer_decoder.c | 152 - e2sim/previous/e2apv1sim/ASN1c/oer_decoder.h | 72 - e2sim/previous/e2apv1sim/ASN1c/oer_encoder.c | 141 - e2sim/previous/e2apv1sim/ASN1c/oer_encoder.h | 70 - e2sim/previous/e2apv1sim/ASN1c/oer_support.c | 122 - e2sim/previous/e2apv1sim/ASN1c/oer_support.h | 47 - e2sim/previous/e2apv1sim/ASN1c/pdu_collection.c | 25 - e2sim/previous/e2apv1sim/ASN1c/per_decoder.c | 185 - e2sim/previous/e2apv1sim/ASN1c/per_decoder.h | 82 - e2sim/previous/e2apv1sim/ASN1c/per_encoder.c | 265 - e2sim/previous/e2apv1sim/ASN1c/per_encoder.h | 93 - e2sim/previous/e2apv1sim/ASN1c/per_opentype.c | 533 - e2sim/previous/e2apv1sim/ASN1c/per_opentype.h | 44 - e2sim/previous/e2apv1sim/ASN1c/per_support.c | 489 - e2sim/previous/e2apv1sim/ASN1c/per_support.h | 127 - e2sim/previous/e2apv1sim/ASN1c/xer_decoder.c | 369 - e2sim/previous/e2apv1sim/ASN1c/xer_decoder.h | 106 - e2sim/previous/e2apv1sim/ASN1c/xer_encoder.c | 237 - e2sim/previous/e2apv1sim/ASN1c/xer_encoder.h | 83 - e2sim/previous/e2apv1sim/ASN1c/xer_support.c | 227 - e2sim/previous/e2apv1sim/ASN1c/xer_support.h | 55 - e2sim/previous/e2apv1sim/CMakeLists.txt | 79 - e2sim/previous/e2apv1sim/Dockerfile | 55 - e2sim/previous/e2apv1sim/README.md | 62 - e2sim/previous/e2apv1sim/build_e2sim | 86 - e2sim/previous/e2apv1sim/cellMeasReport.txt | 40 - e2sim/previous/e2apv1sim/docker/Dockerfile | 54 - e2sim/previous/e2apv1sim/docker/container-tag.yaml | 2 - e2sim/previous/e2apv1sim/docker/old/DockerFile_old | 53 - e2sim/previous/e2apv1sim/docker/old/Dockerfile | 42 - .../previous/e2apv1sim/docker/old/Dockerfile_base | 60 - e2sim/previous/e2apv1sim/docker/old/configure_rmr | 27 - e2sim/previous/e2apv1sim/docker/old/empty.rt | 5 - e2sim/previous/e2apv1sim/docker/old/install_asn1c | 29 - e2sim/previous/e2apv1sim/docker/old/install_rmr | 32 - e2sim/previous/e2apv1sim/docker/old/local.rt | 9 - e2sim/previous/e2apv1sim/e2sim.cpp | 174 - e2sim/previous/e2apv1sim/e2sim.hpp | 5 - e2sim/previous/e2apv1sim/e2sim/ASN1c/ANY.c | 450 - e2sim/previous/e2apv1sim/e2sim/ASN1c/ANY.h | 65 - e2sim/previous/e2apv1sim/e2sim/ASN1c/BIT_STRING.c | 656 - e2sim/previous/e2apv1sim/e2sim/ASN1c/BIT_STRING.h | 48 - .../e2apv1sim/e2sim/ASN1c/BIT_STRING_oer.c | 174 - e2sim/previous/e2apv1sim/e2sim/ASN1c/C-RNTI.c | 65 - e2sim/previous/e2apv1sim/e2sim/ASN1c/C-RNTI.h | 46 - .../CU-CP-Usage-Report-CellResourceReportItem.c | 139 - .../CU-CP-Usage-Report-CellResourceReportItem.h | 58 - .../e2sim/ASN1c/CU-CP-Usage-Report-Per-UE.c | 129 - .../e2sim/ASN1c/CU-CP-Usage-Report-Per-UE.h | 56 - .../CU-CP-Usage-Report-UeResourceReportItem.c | 72 - .../CU-CP-Usage-Report-UeResourceReportItem.h | 47 - .../CU-UP-Usage-Report-CellResourceReportItem.c | 139 - .../CU-UP-Usage-Report-CellResourceReportItem.h | 58 - .../e2sim/ASN1c/CU-UP-Usage-Report-Per-UE.c | 129 - .../e2sim/ASN1c/CU-UP-Usage-Report-Per-UE.h | 56 - .../CU-UP-Usage-Report-UeResourceReportItem.c | 150 - .../CU-UP-Usage-Report-UeResourceReportItem.h | 47 - .../e2sim/ASN1c/CUUPMeasurement-Container.c | 129 - .../e2sim/ASN1c/CUUPMeasurement-Container.h | 56 - e2sim/previous/e2apv1sim/e2sim/ASN1c/Cause.c | 92 - e2sim/previous/e2apv1sim/e2sim/ASN1c/Cause.h | 68 - e2sim/previous/e2apv1sim/e2sim/ASN1c/CauseMisc.c | 59 - e2sim/previous/e2apv1sim/e2sim/ASN1c/CauseMisc.h | 56 - .../previous/e2apv1sim/e2sim/ASN1c/CauseProtocol.c | 65 - .../previous/e2apv1sim/e2sim/ASN1c/CauseProtocol.h | 59 - e2sim/previous/e2apv1sim/e2sim/ASN1c/CauseRIC.c | 73 - e2sim/previous/e2apv1sim/e2sim/ASN1c/CauseRIC.h | 63 - .../e2apv1sim/e2sim/ASN1c/CauseRICservice.c | 57 - .../e2apv1sim/e2sim/ASN1c/CauseRICservice.h | 55 - .../e2apv1sim/e2sim/ASN1c/CauseTransport.c | 55 - .../e2apv1sim/e2sim/ASN1c/CauseTransport.h | 54 - .../e2sim/ASN1c/CellResourceReportListItem.c | 227 - .../e2sim/ASN1c/CellResourceReportListItem.h | 61 - e2sim/previous/e2apv1sim/e2sim/ASN1c/Criticality.c | 55 - e2sim/previous/e2apv1sim/e2sim/ASN1c/Criticality.h | 52 - .../e2sim/ASN1c/CriticalityDiagnostics-IE-Item.c | 70 - .../e2sim/ASN1c/CriticalityDiagnostics-IE-Item.h | 48 - .../e2sim/ASN1c/CriticalityDiagnostics-IE-List.c | 50 - .../e2sim/ASN1c/CriticalityDiagnostics-IE-List.h | 44 - .../e2apv1sim/e2sim/ASN1c/CriticalityDiagnostics.c | 94 - .../e2apv1sim/e2sim/ASN1c/CriticalityDiagnostics.h | 52 - .../ASN1c/DU-Usage-Report-CellResourceReportItem.c | 139 - .../ASN1c/DU-Usage-Report-CellResourceReportItem.h | 58 - .../e2apv1sim/e2sim/ASN1c/DU-Usage-Report-Per-UE.c | 129 - .../e2apv1sim/e2sim/ASN1c/DU-Usage-Report-Per-UE.h | 56 - .../ASN1c/DU-Usage-Report-UeResourceReportItem.c | 138 - .../ASN1c/DU-Usage-Report-UeResourceReportItem.h | 47 - e2sim/previous/e2apv1sim/e2sim/ASN1c/E2AP-PDU.c | 75 - e2sim/previous/e2apv1sim/e2sim/ASN1c/E2AP-PDU.h | 61 - .../e2sim/ASN1c/E2SM-KPM-ActionDefinition.c | 50 - .../e2sim/ASN1c/E2SM-KPM-ActionDefinition.h | 42 - .../E2SM-KPM-EventTriggerDefinition-Format1.c | 131 - .../E2SM-KPM-EventTriggerDefinition-Format1.h | 56 - .../e2sim/ASN1c/E2SM-KPM-EventTriggerDefinition.c | 55 - .../e2sim/ASN1c/E2SM-KPM-EventTriggerDefinition.h | 53 - .../ASN1c/E2SM-KPM-IndicationHeader-Format1.c | 208 - .../ASN1c/E2SM-KPM-IndicationHeader-Format1.h | 70 - .../e2sim/ASN1c/E2SM-KPM-IndicationHeader.c | 55 - .../e2sim/ASN1c/E2SM-KPM-IndicationHeader.h | 53 - .../ASN1c/E2SM-KPM-IndicationMessage-Format1.c | 129 - .../ASN1c/E2SM-KPM-IndicationMessage-Format1.h | 56 - .../e2sim/ASN1c/E2SM-KPM-IndicationMessage.c | 107 - .../e2sim/ASN1c/E2SM-KPM-IndicationMessage.h | 65 - .../e2sim/ASN1c/E2SM-KPM-RANfunction-Description.c | 273 - .../e2sim/ASN1c/E2SM-KPM-RANfunction-Description.h | 73 - .../e2apv1sim/e2sim/ASN1c/E2setupFailure.c | 50 - .../e2apv1sim/e2sim/ASN1c/E2setupFailure.h | 44 - .../e2apv1sim/e2sim/ASN1c/E2setupRequest.c | 50 - .../e2apv1sim/e2sim/ASN1c/E2setupRequest.h | 44 - .../e2apv1sim/e2sim/ASN1c/E2setupResponse.c | 50 - .../e2apv1sim/e2sim/ASN1c/E2setupResponse.h | 44 - .../previous/e2apv1sim/e2sim/ASN1c/ENB-ID-Choice.c | 192 - .../previous/e2apv1sim/e2sim/ASN1c/ENB-ID-Choice.h | 60 - e2sim/previous/e2apv1sim/e2sim/ASN1c/ENB-ID.c | 241 - e2sim/previous/e2apv1sim/e2sim/ASN1c/ENB-ID.h | 61 - e2sim/previous/e2apv1sim/e2sim/ASN1c/ENGNB-ID.c | 94 - e2sim/previous/e2apv1sim/e2sim/ASN1c/ENGNB-ID.h | 56 - .../e2apv1sim/e2sim/ASN1c/EPC-CUUP-PM-Format.c | 129 - .../e2apv1sim/e2sim/ASN1c/EPC-CUUP-PM-Format.h | 56 - .../e2apv1sim/e2sim/ASN1c/EPC-DU-PM-Container.c | 129 - .../e2apv1sim/e2sim/ASN1c/EPC-DU-PM-Container.h | 56 - .../e2apv1sim/e2sim/ASN1c/ErrorIndication.c | 50 - .../e2apv1sim/e2sim/ASN1c/ErrorIndication.h | 44 - .../e2apv1sim/e2sim/ASN1c/FGC-CUUP-PM-Format.c | 129 - .../e2apv1sim/e2sim/ASN1c/FGC-CUUP-PM-Format.h | 56 - .../e2apv1sim/e2sim/ASN1c/FGC-DU-PM-Container.c | 129 - .../e2apv1sim/e2sim/ASN1c/FGC-DU-PM-Container.h | 56 - .../e2sim/ASN1c/FQIPERSlicesPerPlmnListItem.c | 183 - .../e2sim/ASN1c/FQIPERSlicesPerPlmnListItem.h | 47 - .../ASN1c/FQIPERSlicesPerPlmnPerCellListItem.c | 171 - .../ASN1c/FQIPERSlicesPerPlmnPerCellListItem.h | 46 - .../e2apv1sim/e2sim/ASN1c/GNB-CU-CP-Name.c | 109 - .../e2apv1sim/e2sim/ASN1c/GNB-CU-CP-Name.h | 46 - .../previous/e2apv1sim/e2sim/ASN1c/GNB-CU-UP-ID.c | 70 - .../previous/e2apv1sim/e2sim/ASN1c/GNB-CU-UP-ID.h | 46 - .../e2apv1sim/e2sim/ASN1c/GNB-CU-UP-Name.c | 109 - .../e2apv1sim/e2sim/ASN1c/GNB-CU-UP-Name.h | 46 - e2sim/previous/e2apv1sim/e2sim/ASN1c/GNB-DU-ID.c | 70 - e2sim/previous/e2apv1sim/e2sim/ASN1c/GNB-DU-ID.h | 46 - e2sim/previous/e2apv1sim/e2sim/ASN1c/GNB-DU-Name.c | 109 - e2sim/previous/e2apv1sim/e2sim/ASN1c/GNB-DU-Name.h | 46 - .../previous/e2apv1sim/e2sim/ASN1c/GNB-ID-Choice.c | 94 - .../previous/e2apv1sim/e2sim/ASN1c/GNB-ID-Choice.h | 56 - e2sim/previous/e2apv1sim/e2sim/ASN1c/GNB-Name.c | 75 - e2sim/previous/e2apv1sim/e2sim/ASN1c/GNB-Name.h | 62 - .../e2apv1sim/e2sim/ASN1c/GlobalE2node-ID.c | 86 - .../e2apv1sim/e2sim/ASN1c/GlobalE2node-ID.h | 64 - .../e2apv1sim/e2sim/ASN1c/GlobalE2node-eNB-ID.c | 50 - .../e2apv1sim/e2sim/ASN1c/GlobalE2node-eNB-ID.h | 44 - .../e2apv1sim/e2sim/ASN1c/GlobalE2node-en-gNB-ID.c | 50 - .../e2apv1sim/e2sim/ASN1c/GlobalE2node-en-gNB-ID.h | 44 - .../e2apv1sim/e2sim/ASN1c/GlobalE2node-gNB-ID.c | 72 - .../e2apv1sim/e2sim/ASN1c/GlobalE2node-gNB-ID.h | 48 - .../e2apv1sim/e2sim/ASN1c/GlobalE2node-ng-eNB-ID.c | 50 - .../e2apv1sim/e2sim/ASN1c/GlobalE2node-ng-eNB-ID.h | 44 - .../previous/e2apv1sim/e2sim/ASN1c/GlobalENB-ID.c | 60 - .../previous/e2apv1sim/e2sim/ASN1c/GlobalENB-ID.h | 46 - .../e2apv1sim/e2sim/ASN1c/GlobalKPMnode-ID.c | 85 - .../e2apv1sim/e2sim/ASN1c/GlobalKPMnode-ID.h | 65 - .../e2apv1sim/e2sim/ASN1c/GlobalKPMnode-eNB-ID.c | 50 - .../e2apv1sim/e2sim/ASN1c/GlobalKPMnode-eNB-ID.h | 44 - .../e2sim/ASN1c/GlobalKPMnode-en-gNB-ID.c | 50 - .../e2sim/ASN1c/GlobalKPMnode-en-gNB-ID.h | 44 - .../e2apv1sim/e2sim/ASN1c/GlobalKPMnode-gNB-ID.c | 72 - .../e2apv1sim/e2sim/ASN1c/GlobalKPMnode-gNB-ID.h | 48 - .../e2sim/ASN1c/GlobalKPMnode-ng-eNB-ID.c | 50 - .../e2sim/ASN1c/GlobalKPMnode-ng-eNB-ID.h | 44 - .../previous/e2apv1sim/e2sim/ASN1c/GlobalRIC-ID.c | 96 - .../previous/e2apv1sim/e2sim/ASN1c/GlobalRIC-ID.h | 44 - .../e2apv1sim/e2sim/ASN1c/GlobalenGNB-ID.c | 60 - .../e2apv1sim/e2sim/ASN1c/GlobalenGNB-ID.h | 46 - .../previous/e2apv1sim/e2sim/ASN1c/GlobalgNB-ID.c | 60 - .../previous/e2apv1sim/e2sim/ASN1c/GlobalgNB-ID.h | 46 - .../e2apv1sim/e2sim/ASN1c/GlobalngeNB-ID.c | 60 - .../e2apv1sim/e2sim/ASN1c/GlobalngeNB-ID.h | 46 - e2sim/previous/e2apv1sim/e2sim/ASN1c/INTEGER.c | 1735 - e2sim/previous/e2apv1sim/e2sim/ASN1c/INTEGER.h | 108 - e2sim/previous/e2apv1sim/e2sim/ASN1c/INTEGER_oer.c | 179 - .../e2apv1sim/e2sim/ASN1c/InitiatingMessage.c | 389 - .../e2apv1sim/e2sim/ASN1c/InitiatingMessage.h | 97 - .../e2apv1sim/e2sim/ASN1c/Makefile.am.asn1convert | 14 - .../e2apv1sim/e2sim/ASN1c/Makefile.am.libasncodec | 240 - e2sim/previous/e2apv1sim/e2sim/ASN1c/NI-Type.c | 60 - e2sim/previous/e2apv1sim/e2sim/ASN1c/NI-Type.h | 57 - e2sim/previous/e2apv1sim/e2sim/ASN1c/NRCGI.c | 60 - e2sim/previous/e2apv1sim/e2sim/ASN1c/NRCGI.h | 42 - .../e2apv1sim/e2sim/ASN1c/NRCellIdentity.c | 70 - .../e2apv1sim/e2sim/ASN1c/NRCellIdentity.h | 46 - .../e2apv1sim/e2sim/ASN1c/NativeEnumerated.c | 367 - .../e2apv1sim/e2sim/ASN1c/NativeEnumerated.h | 45 - .../e2apv1sim/e2sim/ASN1c/NativeEnumerated_oer.c | 149 - .../previous/e2apv1sim/e2sim/ASN1c/NativeInteger.c | 550 - .../previous/e2apv1sim/e2sim/ASN1c/NativeInteger.h | 46 - .../e2apv1sim/e2sim/ASN1c/NativeInteger_oer.c | 99 - .../previous/e2apv1sim/e2sim/ASN1c/OCTET_STRING.c | 2411 - .../previous/e2apv1sim/e2sim/ASN1c/OCTET_STRING.h | 102 - .../e2apv1sim/e2sim/ASN1c/OCTET_STRING_oer.c | 171 - .../e2apv1sim/e2sim/ASN1c/OCUCP-PF-Container.c | 140 - .../e2apv1sim/e2sim/ASN1c/OCUCP-PF-Container.h | 47 - .../e2apv1sim/e2sim/ASN1c/OCUUP-PF-Container.c | 141 - .../e2apv1sim/e2sim/ASN1c/OCUUP-PF-Container.h | 58 - .../e2apv1sim/e2sim/ASN1c/ODU-PF-Container.c | 129 - .../e2apv1sim/e2sim/ASN1c/ODU-PF-Container.h | 56 - e2sim/previous/e2apv1sim/e2sim/ASN1c/OPEN_TYPE.c | 509 - e2sim/previous/e2apv1sim/e2sim/ASN1c/OPEN_TYPE.h | 77 - .../previous/e2apv1sim/e2sim/ASN1c/OPEN_TYPE_oer.c | 92 - .../previous/e2apv1sim/e2sim/ASN1c/PF-Container.c | 75 - .../previous/e2apv1sim/e2sim/ASN1c/PF-Container.h | 62 - .../e2apv1sim/e2sim/ASN1c/PF-ContainerListItem.c | 60 - .../e2apv1sim/e2sim/ASN1c/PF-ContainerListItem.h | 46 - .../previous/e2apv1sim/e2sim/ASN1c/PLMN-Identity.c | 65 - .../previous/e2apv1sim/e2sim/ASN1c/PLMN-Identity.h | 46 - .../e2apv1sim/e2sim/ASN1c/PM-Containers-List.c | 62 - .../e2apv1sim/e2sim/ASN1c/PM-Containers-List.h | 52 - .../e2apv1sim/e2sim/ASN1c/PerQCIReportListItem.c | 171 - .../e2apv1sim/e2sim/ASN1c/PerQCIReportListItem.h | 46 - .../e2sim/ASN1c/PerQCIReportListItemFormat.c | 183 - .../e2sim/ASN1c/PerQCIReportListItemFormat.h | 47 - e2sim/previous/e2apv1sim/e2sim/ASN1c/PlmnID-List.c | 72 - e2sim/previous/e2apv1sim/e2sim/ASN1c/PlmnID-List.h | 54 - e2sim/previous/e2apv1sim/e2sim/ASN1c/Presence.c | 55 - e2sim/previous/e2apv1sim/e2sim/ASN1c/Presence.h | 52 - .../e2apv1sim/e2sim/ASN1c/PrintableString.c | 130 - .../e2apv1sim/e2sim/ASN1c/PrintableString.h | 37 - .../previous/e2apv1sim/e2sim/ASN1c/ProcedureCode.c | 61 - .../previous/e2apv1sim/e2sim/ASN1c/ProcedureCode.h | 53 - .../e2apv1sim/e2sim/ASN1c/ProtocolIE-Container.c | 810 - .../e2apv1sim/e2sim/ASN1c/ProtocolIE-Container.h | 253 - .../e2sim/ASN1c/ProtocolIE-ContainerList.c | 9 - .../e2sim/ASN1c/ProtocolIE-ContainerList.h | 23 - .../e2sim/ASN1c/ProtocolIE-ContainerPair.c | 9 - .../e2sim/ASN1c/ProtocolIE-ContainerPair.h | 23 - .../e2sim/ASN1c/ProtocolIE-ContainerPairList.c | 9 - .../e2sim/ASN1c/ProtocolIE-ContainerPairList.h | 23 - .../e2apv1sim/e2sim/ASN1c/ProtocolIE-Field.c | 7190 -- .../e2apv1sim/e2sim/ASN1c/ProtocolIE-Field.h | 757 - .../e2apv1sim/e2sim/ASN1c/ProtocolIE-FieldPair.c | 9 - .../e2apv1sim/e2sim/ASN1c/ProtocolIE-FieldPair.h | 23 - .../previous/e2apv1sim/e2sim/ASN1c/ProtocolIE-ID.c | 61 - .../previous/e2apv1sim/e2sim/ASN1c/ProtocolIE-ID.h | 76 - .../e2sim/ASN1c/ProtocolIE-SingleContainer.c | 147 - .../e2sim/ASN1c/ProtocolIE-SingleContainer.h | 108 - .../previous/e2apv1sim/e2sim/ASN1c/RAN-Container.c | 127 - .../previous/e2apv1sim/e2sim/ASN1c/RAN-Container.h | 73 - .../e2sim/ASN1c/RANcallProcess-ID-string.c | 109 - .../e2sim/ASN1c/RANcallProcess-ID-string.h | 45 - .../e2apv1sim/e2sim/ASN1c/RANfunction-Item.c | 70 - .../e2apv1sim/e2sim/ASN1c/RANfunction-Item.h | 46 - .../e2apv1sim/e2sim/ASN1c/RANfunction-Name.c | 316 - .../e2apv1sim/e2sim/ASN1c/RANfunction-Name.h | 48 - .../e2apv1sim/e2sim/ASN1c/RANfunctionDefinition.c | 31 - .../e2apv1sim/e2sim/ASN1c/RANfunctionDefinition.h | 43 - .../e2apv1sim/e2sim/ASN1c/RANfunctionID-Item.c | 60 - .../e2apv1sim/e2sim/ASN1c/RANfunctionID-Item.h | 44 - .../previous/e2apv1sim/e2sim/ASN1c/RANfunctionID.c | 61 - .../previous/e2apv1sim/e2sim/ASN1c/RANfunctionID.h | 44 - .../e2sim/ASN1c/RANfunctionIDcause-Item.c | 60 - .../e2sim/ASN1c/RANfunctionIDcause-Item.h | 44 - .../e2apv1sim/e2sim/ASN1c/RANfunctionRevision.c | 61 - .../e2apv1sim/e2sim/ASN1c/RANfunctionRevision.h | 44 - .../e2apv1sim/e2sim/ASN1c/RANfunctions-List.c | 50 - .../e2apv1sim/e2sim/ASN1c/RANfunctions-List.h | 41 - .../e2apv1sim/e2sim/ASN1c/RANfunctionsID-List.c | 50 - .../e2apv1sim/e2sim/ASN1c/RANfunctionsID-List.h | 41 - .../e2sim/ASN1c/RANfunctionsIDcause-List.c | 50 - .../e2sim/ASN1c/RANfunctionsIDcause-List.h | 41 - .../e2sim/ASN1c/RIC-EventTriggerStyle-List.c | 70 - .../e2sim/ASN1c/RIC-EventTriggerStyle-List.h | 48 - .../e2apv1sim/e2sim/ASN1c/RIC-Format-Type.c | 31 - .../e2apv1sim/e2sim/ASN1c/RIC-Format-Type.h | 45 - .../e2apv1sim/e2sim/ASN1c/RIC-ReportStyle-List.c | 80 - .../e2apv1sim/e2sim/ASN1c/RIC-ReportStyle-List.h | 49 - .../e2apv1sim/e2sim/ASN1c/RIC-Style-Name.c | 109 - .../e2apv1sim/e2sim/ASN1c/RIC-Style-Name.h | 46 - .../e2apv1sim/e2sim/ASN1c/RIC-Style-Type.c | 31 - .../e2apv1sim/e2sim/ASN1c/RIC-Style-Type.h | 45 - .../e2sim/ASN1c/RICaction-Admitted-Item.c | 50 - .../e2sim/ASN1c/RICaction-Admitted-Item.h | 42 - .../e2sim/ASN1c/RICaction-Admitted-List.c | 50 - .../e2sim/ASN1c/RICaction-Admitted-List.h | 41 - .../e2sim/ASN1c/RICaction-NotAdmitted-Item.c | 60 - .../e2sim/ASN1c/RICaction-NotAdmitted-Item.h | 44 - .../e2sim/ASN1c/RICaction-NotAdmitted-List.c | 50 - .../e2sim/ASN1c/RICaction-NotAdmitted-List.h | 41 - .../e2sim/ASN1c/RICaction-ToBeSetup-Item.c | 83 - .../e2sim/ASN1c/RICaction-ToBeSetup-Item.h | 50 - .../e2apv1sim/e2sim/ASN1c/RICactionDefinition.c | 31 - .../e2apv1sim/e2sim/ASN1c/RICactionDefinition.h | 43 - e2sim/previous/e2apv1sim/e2sim/ASN1c/RICactionID.c | 61 - e2sim/previous/e2apv1sim/e2sim/ASN1c/RICactionID.h | 44 - .../previous/e2apv1sim/e2sim/ASN1c/RICactionType.c | 57 - .../previous/e2apv1sim/e2sim/ASN1c/RICactionType.h | 55 - .../e2sim/ASN1c/RICactions-ToBeSetup-List.c | 50 - .../e2sim/ASN1c/RICactions-ToBeSetup-List.h | 44 - .../e2apv1sim/e2sim/ASN1c/RICcallProcessID.c | 31 - .../e2apv1sim/e2sim/ASN1c/RICcallProcessID.h | 43 - .../e2apv1sim/e2sim/ASN1c/RICcontrolAckRequest.c | 57 - .../e2apv1sim/e2sim/ASN1c/RICcontrolAckRequest.h | 53 - .../e2apv1sim/e2sim/ASN1c/RICcontrolAcknowledge.c | 50 - .../e2apv1sim/e2sim/ASN1c/RICcontrolAcknowledge.h | 44 - .../e2apv1sim/e2sim/ASN1c/RICcontrolFailure.c | 50 - .../e2apv1sim/e2sim/ASN1c/RICcontrolFailure.h | 44 - .../e2apv1sim/e2sim/ASN1c/RICcontrolHeader.c | 31 - .../e2apv1sim/e2sim/ASN1c/RICcontrolHeader.h | 43 - .../e2apv1sim/e2sim/ASN1c/RICcontrolMessage.c | 31 - .../e2apv1sim/e2sim/ASN1c/RICcontrolMessage.h | 43 - .../e2apv1sim/e2sim/ASN1c/RICcontrolOutcome.c | 31 - .../e2apv1sim/e2sim/ASN1c/RICcontrolOutcome.h | 43 - .../e2apv1sim/e2sim/ASN1c/RICcontrolRequest.c | 50 - .../e2apv1sim/e2sim/ASN1c/RICcontrolRequest.h | 44 - .../e2apv1sim/e2sim/ASN1c/RICcontrolStatus.c | 57 - .../e2apv1sim/e2sim/ASN1c/RICcontrolStatus.h | 53 - .../e2sim/ASN1c/RICeventTriggerDefinition.c | 31 - .../e2sim/ASN1c/RICeventTriggerDefinition.h | 43 - .../previous/e2apv1sim/e2sim/ASN1c/RICindication.c | 50 - .../previous/e2apv1sim/e2sim/ASN1c/RICindication.h | 44 - .../e2apv1sim/e2sim/ASN1c/RICindicationHeader.c | 31 - .../e2apv1sim/e2sim/ASN1c/RICindicationHeader.h | 43 - .../e2apv1sim/e2sim/ASN1c/RICindicationMessage.c | 31 - .../e2apv1sim/e2sim/ASN1c/RICindicationMessage.h | 43 - .../e2apv1sim/e2sim/ASN1c/RICindicationSN.c | 61 - .../e2apv1sim/e2sim/ASN1c/RICindicationSN.h | 43 - .../e2apv1sim/e2sim/ASN1c/RICindicationType.c | 55 - .../e2apv1sim/e2sim/ASN1c/RICindicationType.h | 52 - .../previous/e2apv1sim/e2sim/ASN1c/RICrequestID.c | 120 - .../previous/e2apv1sim/e2sim/ASN1c/RICrequestID.h | 45 - .../e2apv1sim/e2sim/ASN1c/RICserviceQuery.c | 50 - .../e2apv1sim/e2sim/ASN1c/RICserviceQuery.h | 44 - .../e2apv1sim/e2sim/ASN1c/RICserviceUpdate.c | 50 - .../e2apv1sim/e2sim/ASN1c/RICserviceUpdate.h | 44 - .../e2sim/ASN1c/RICserviceUpdateAcknowledge.c | 50 - .../e2sim/ASN1c/RICserviceUpdateAcknowledge.h | 44 - .../e2sim/ASN1c/RICserviceUpdateFailure.c | 50 - .../e2sim/ASN1c/RICserviceUpdateFailure.h | 44 - .../e2sim/ASN1c/RICsubscriptionDeleteFailure.c | 50 - .../e2sim/ASN1c/RICsubscriptionDeleteFailure.h | 44 - .../e2sim/ASN1c/RICsubscriptionDeleteRequest.c | 50 - .../e2sim/ASN1c/RICsubscriptionDeleteRequest.h | 44 - .../e2sim/ASN1c/RICsubscriptionDeleteResponse.c | 50 - .../e2sim/ASN1c/RICsubscriptionDeleteResponse.h | 44 - .../e2apv1sim/e2sim/ASN1c/RICsubscriptionDetails.c | 60 - .../e2apv1sim/e2sim/ASN1c/RICsubscriptionDetails.h | 44 - .../e2apv1sim/e2sim/ASN1c/RICsubscriptionFailure.c | 50 - .../e2apv1sim/e2sim/ASN1c/RICsubscriptionFailure.h | 44 - .../e2apv1sim/e2sim/ASN1c/RICsubscriptionRequest.c | 50 - .../e2apv1sim/e2sim/ASN1c/RICsubscriptionRequest.h | 44 - .../e2sim/ASN1c/RICsubscriptionResponse.c | 50 - .../e2sim/ASN1c/RICsubscriptionResponse.h | 44 - .../e2apv1sim/e2sim/ASN1c/RICsubsequentAction.c | 60 - .../e2apv1sim/e2sim/ASN1c/RICsubsequentAction.h | 46 - .../e2sim/ASN1c/RICsubsequentActionType.c | 55 - .../e2sim/ASN1c/RICsubsequentActionType.h | 54 - .../previous/e2apv1sim/e2sim/ASN1c/RICtimeToWait.c | 87 - .../previous/e2apv1sim/e2sim/ASN1c/RICtimeToWait.h | 70 - .../previous/e2apv1sim/e2sim/ASN1c/RT-Period-IE.c | 94 - .../previous/e2apv1sim/e2sim/ASN1c/RT-Period-IE.h | 74 - .../previous/e2apv1sim/e2sim/ASN1c/ResetRequest.c | 50 - .../previous/e2apv1sim/e2sim/ASN1c/ResetRequest.h | 44 - .../previous/e2apv1sim/e2sim/ASN1c/ResetResponse.c | 50 - .../previous/e2apv1sim/e2sim/ASN1c/ResetResponse.h | 44 - e2sim/previous/e2apv1sim/e2sim/ASN1c/SNSSAI.c | 130 - e2sim/previous/e2apv1sim/e2sim/ASN1c/SNSSAI.h | 41 - .../e2sim/ASN1c/ServedPlmnPerCellListItem.c | 72 - .../e2sim/ASN1c/ServedPlmnPerCellListItem.h | 54 - .../e2sim/ASN1c/SlicePerPlmnPerCellListItem.c | 139 - .../e2sim/ASN1c/SlicePerPlmnPerCellListItem.h | 58 - .../e2apv1sim/e2sim/ASN1c/SliceToReportListItem.c | 139 - .../e2apv1sim/e2sim/ASN1c/SliceToReportListItem.h | 58 - .../e2apv1sim/e2sim/ASN1c/SuccessfulOutcome.c | 359 - .../e2apv1sim/e2sim/ASN1c/SuccessfulOutcome.h | 91 - e2sim/previous/e2apv1sim/e2sim/ASN1c/TimeToWait.c | 63 - e2sim/previous/e2apv1sim/e2sim/ASN1c/TimeToWait.h | 56 - e2sim/previous/e2apv1sim/e2sim/ASN1c/Timestamp.c | 31 - e2sim/previous/e2apv1sim/e2sim/ASN1c/Timestamp.h | 45 - .../e2sim/ASN1c/Trigger-ConditionIE-Item.c | 50 - .../e2sim/ASN1c/Trigger-ConditionIE-Item.h | 44 - .../e2apv1sim/e2sim/ASN1c/TriggeringMessage.c | 55 - .../e2apv1sim/e2sim/ASN1c/TriggeringMessage.h | 52 - e2sim/previous/e2apv1sim/e2sim/ASN1c/TypeOfError.c | 55 - e2sim/previous/e2apv1sim/e2sim/ASN1c/TypeOfError.h | 54 - .../e2apv1sim/e2sim/ASN1c/UE-Report-Type.c | 60 - .../e2apv1sim/e2sim/ASN1c/UE-Report-Type.h | 57 - .../e2apv1sim/e2sim/ASN1c/UnsuccessfulOutcome.c | 349 - .../e2apv1sim/e2sim/ASN1c/UnsuccessfulOutcome.h | 89 - .../e2apv1sim/e2sim/ASN1c/asn_SEQUENCE_OF.c | 41 - .../e2apv1sim/e2sim/ASN1c/asn_SEQUENCE_OF.h | 52 - e2sim/previous/e2apv1sim/e2sim/ASN1c/asn_SET_OF.c | 88 - e2sim/previous/e2apv1sim/e2sim/ASN1c/asn_SET_OF.h | 72 - .../e2apv1sim/e2sim/ASN1c/asn_application.c | 481 - .../e2apv1sim/e2sim/ASN1c/asn_application.h | 171 - .../previous/e2apv1sim/e2sim/ASN1c/asn_bit_data.c | 333 - .../previous/e2apv1sim/e2sim/ASN1c/asn_bit_data.h | 83 - e2sim/previous/e2apv1sim/e2sim/ASN1c/asn_codecs.h | 108 - .../e2apv1sim/e2sim/ASN1c/asn_codecs_prim.c | 317 - .../e2apv1sim/e2sim/ASN1c/asn_codecs_prim.h | 51 - .../previous/e2apv1sim/e2sim/ASN1c/asn_constant.h | 30 - .../previous/e2apv1sim/e2sim/ASN1c/asn_internal.c | 48 - .../previous/e2apv1sim/e2sim/ASN1c/asn_internal.h | 159 - e2sim/previous/e2apv1sim/e2sim/ASN1c/asn_ioc.h | 51 - .../e2apv1sim/e2sim/ASN1c/asn_random_fill.c | 56 - .../e2apv1sim/e2sim/ASN1c/asn_random_fill.h | 51 - e2sim/previous/e2apv1sim/e2sim/ASN1c/asn_system.h | 150 - e2sim/previous/e2apv1sim/e2sim/ASN1c/ber_decoder.c | 283 - e2sim/previous/e2apv1sim/e2sim/ASN1c/ber_decoder.h | 66 - .../e2apv1sim/e2sim/ASN1c/ber_tlv_length.c | 168 - .../e2apv1sim/e2sim/ASN1c/ber_tlv_length.h | 50 - e2sim/previous/e2apv1sim/e2sim/ASN1c/ber_tlv_tag.c | 144 - e2sim/previous/e2apv1sim/e2sim/ASN1c/ber_tlv_tag.h | 60 - .../previous/e2apv1sim/e2sim/ASN1c/constr_CHOICE.c | 1533 - .../previous/e2apv1sim/e2sim/ASN1c/constr_CHOICE.h | 80 - .../e2apv1sim/e2sim/ASN1c/constr_CHOICE_oer.c | 380 - .../e2apv1sim/e2sim/ASN1c/constr_SEQUENCE.c | 2059 - .../e2apv1sim/e2sim/ASN1c/constr_SEQUENCE.h | 68 - .../e2apv1sim/e2sim/ASN1c/constr_SEQUENCE_OF.c | 358 - .../e2apv1sim/e2sim/ASN1c/constr_SEQUENCE_OF.h | 41 - .../e2apv1sim/e2sim/ASN1c/constr_SEQUENCE_oer.c | 561 - .../previous/e2apv1sim/e2sim/ASN1c/constr_SET_OF.c | 1441 - .../previous/e2apv1sim/e2sim/ASN1c/constr_SET_OF.h | 49 - .../e2apv1sim/e2sim/ASN1c/constr_SET_OF_oer.c | 285 - e2sim/previous/e2apv1sim/e2sim/ASN1c/constr_TYPE.c | 80 - e2sim/previous/e2apv1sim/e2sim/ASN1c/constr_TYPE.h | 262 - e2sim/previous/e2apv1sim/e2sim/ASN1c/constraints.c | 93 - e2sim/previous/e2apv1sim/e2sim/ASN1c/constraints.h | 62 - .../e2apv1sim/e2sim/ASN1c/converter-example.mk | 33 - e2sim/previous/e2apv1sim/e2sim/ASN1c/der_encoder.c | 194 - e2sim/previous/e2apv1sim/e2sim/ASN1c/der_encoder.h | 68 - e2sim/previous/e2apv1sim/e2sim/ASN1c/oer_decoder.c | 152 - e2sim/previous/e2apv1sim/e2sim/ASN1c/oer_decoder.h | 72 - e2sim/previous/e2apv1sim/e2sim/ASN1c/oer_encoder.c | 141 - e2sim/previous/e2apv1sim/e2sim/ASN1c/oer_encoder.h | 70 - e2sim/previous/e2apv1sim/e2sim/ASN1c/oer_support.c | 122 - e2sim/previous/e2apv1sim/e2sim/ASN1c/oer_support.h | 47 - .../e2apv1sim/e2sim/ASN1c/pdu_collection.c | 25 - e2sim/previous/e2apv1sim/e2sim/ASN1c/per_decoder.c | 185 - e2sim/previous/e2apv1sim/e2sim/ASN1c/per_decoder.h | 82 - e2sim/previous/e2apv1sim/e2sim/ASN1c/per_encoder.c | 265 - e2sim/previous/e2apv1sim/e2sim/ASN1c/per_encoder.h | 93 - .../previous/e2apv1sim/e2sim/ASN1c/per_opentype.c | 533 - .../previous/e2apv1sim/e2sim/ASN1c/per_opentype.h | 44 - e2sim/previous/e2apv1sim/e2sim/ASN1c/per_support.c | 489 - e2sim/previous/e2apv1sim/e2sim/ASN1c/per_support.h | 127 - e2sim/previous/e2apv1sim/e2sim/ASN1c/xer_decoder.c | 369 - e2sim/previous/e2apv1sim/e2sim/ASN1c/xer_decoder.h | 106 - e2sim/previous/e2apv1sim/e2sim/ASN1c/xer_encoder.c | 237 - e2sim/previous/e2apv1sim/e2sim/ASN1c/xer_encoder.h | 83 - e2sim/previous/e2apv1sim/e2sim/ASN1c/xer_support.c | 227 - e2sim/previous/e2apv1sim/e2sim/ASN1c/xer_support.h | 55 - e2sim/previous/e2apv1sim/e2sim/CMakeLists.txt | 80 - e2sim/previous/e2apv1sim/e2sim/Dockerfile | 55 - e2sim/previous/e2apv1sim/e2sim/README.md | 62 - e2sim/previous/e2apv1sim/e2sim/build_e2sim | 86 - e2sim/previous/e2apv1sim/e2sim/cellMeasReport.txt | 40 - e2sim/previous/e2apv1sim/e2sim/docker/Dockerfile | 54 - .../e2apv1sim/e2sim/docker/container-tag.yaml | 2 - .../e2apv1sim/e2sim/docker/old/DockerFile_old | 53 - .../previous/e2apv1sim/e2sim/docker/old/Dockerfile | 42 - .../e2apv1sim/e2sim/docker/old/Dockerfile_base | 60 - .../e2apv1sim/e2sim/docker/old/configure_rmr | 27 - e2sim/previous/e2apv1sim/e2sim/docker/old/empty.rt | 5 - .../e2apv1sim/e2sim/docker/old/install_asn1c | 29 - .../e2apv1sim/e2sim/docker/old/install_rmr | 32 - e2sim/previous/e2apv1sim/e2sim/docker/old/local.rt | 9 - e2sim/previous/e2apv1sim/e2sim/e2sim.cpp | 185 - e2sim/previous/e2apv1sim/e2sim/e2sim.hpp | 37 - e2sim/previous/e2apv1sim/e2sim/encode_e2apv1.cpp | 1150 - e2sim/previous/e2apv1sim/e2sim/encode_e2apv1.hpp | 75 - e2sim/previous/e2apv1sim/e2sim/encode_kpm.cpp | 1853 - e2sim/previous/e2apv1sim/e2sim/encode_kpm.hpp | 45 - e2sim/previous/e2apv1sim/e2sim/extras/ricsim.cpp | 216 - e2sim/previous/e2apv1sim/e2sim/helm/README.md | 22 - .../previous/e2apv1sim/e2sim/helm/e2sim/Chart.yaml | 22 - .../e2sim/helm/e2sim/templates/_helpers.tpl | 49 - .../helm/e2sim/templates/bin/_e2sim-run.sh.tpl | 54 - .../helm/e2sim/templates/configmap-e2sim-bin.yaml | 8 - .../e2sim/helm/e2sim/templates/deployment.yaml | 79 - .../e2apv1sim/e2sim/helm/e2sim/values.yaml | 48 - .../previous/e2apv1sim/e2sim/helm/e2sim_install.sh | 78 - e2sim/previous/e2apv1sim/e2sim/kpm_callbacks.cpp | 646 - e2sim/previous/e2apv1sim/e2sim/kpm_callbacks.hpp | 6 - e2sim/previous/e2apv1sim/e2sim/simulation.txt | 3 - .../previous/e2apv1sim/e2sim/src/ASN1/asn/asn.hpp | 27 - .../e2apv1sim/e2sim/src/ASN1/asn/ber/codec.hpp | 931 - .../e2apv1sim/e2sim/src/ASN1/asn/ber/common.hpp | 51 - .../e2apv1sim/e2sim/src/ASN1/asn/ber/context.hpp | 118 - .../e2apv1sim/e2sim/src/ASN1/asn/ber/length.hpp | 103 - .../e2apv1sim/e2sim/src/ASN1/asn/ber/opentype.hpp | 73 - .../e2apv1sim/e2sim/src/ASN1/asn/ber/tag.hpp | 163 - .../e2apv1sim/e2sim/src/ASN1/asn/ber/tools.hpp | 68 - .../e2apv1sim/e2sim/src/ASN1/asn/ber/visitor.hpp | 177 - .../e2apv1sim/e2sim/src/ASN1/asn/buffer.hpp | 689 - .../e2sim/src/ASN1/asn/chunked_allocator.hpp | 84 - .../e2apv1sim/e2sim/src/ASN1/asn/constraints.hpp | 140 - .../e2apv1sim/e2sim/src/ASN1/asn/elements.hpp | 565 - .../e2apv1sim/e2sim/src/ASN1/asn/error_context.hpp | 267 - .../e2apv1sim/e2sim/src/ASN1/asn/identifier.hpp | 97 - .../e2sim/src/ASN1/asn/per/binary_integer.hpp | 168 - .../e2apv1sim/e2sim/src/ASN1/asn/per/bstring.hpp | 279 - .../e2apv1sim/e2sim/src/ASN1/asn/per/choice.hpp | 136 - .../e2apv1sim/e2sim/src/ASN1/asn/per/codec.hpp | 325 - .../e2apv1sim/e2sim/src/ASN1/asn/per/common.hpp | 58 - .../e2apv1sim/e2sim/src/ASN1/asn/per/context.hpp | 154 - .../e2sim/src/ASN1/asn/per/enumerated.hpp | 79 - .../e2apv1sim/e2sim/src/ASN1/asn/per/integer.hpp | 154 - .../e2apv1sim/e2sim/src/ASN1/asn/per/length.hpp | 238 - .../e2apv1sim/e2sim/src/ASN1/asn/per/oid.hpp | 68 - .../e2apv1sim/e2sim/src/ASN1/asn/per/ostring.hpp | 209 - .../e2apv1sim/e2sim/src/ASN1/asn/per/sequence.hpp | 568 - .../e2sim/src/ASN1/asn/per/sequence_of.hpp | 156 - .../e2apv1sim/e2sim/src/ASN1/asn/per/visitor.hpp | 141 - .../e2sim/src/ASN1/asn/per/whole_number.hpp | 147 - .../e2apv1sim/e2sim/src/ASN1/asn/printer.hpp | 338 - .../e2apv1sim/e2sim/src/ASN1/asn/type_defs.h | 36 - .../e2apv1sim/e2sim/src/ASN1/asn/utility.hpp | 88 - .../e2apv1sim/e2sim/src/ASN1/asn/value_traits.hpp | 187 - .../e2apv1sim/e2sim/src/ASN1/asn/variant.hpp | 146 - .../e2apv1sim/e2sim/src/ASN1/asn/version.hpp | 27 - .../e2sim/src/ASN1/generated/E2AP-Constants.hpp | 244 - .../e2sim/src/ASN1/generated/E2AP-IEs.hpp | 568 - .../e2sim/src/ASN1/generated/E2AP-PDU-Contents.hpp | 5512 -- .../src/ASN1/generated/E2AP-PDU-Descriptions.hpp | 980 - .../src/ASN1/generated/X2AP-CommonDataTypes.hpp | 188 - .../e2sim/src/ASN1/generated/X2AP-Constants.hpp | 2054 - .../e2sim/src/ASN1/generated/X2AP-Containers.hpp | 700 - .../e2sim/src/ASN1/generated/X2AP-IEs.hpp | 35962 ---------- .../e2sim/src/ASN1/generated/X2AP-PDU-Contents.hpp | 68476 ------------------- .../src/ASN1/generated/X2AP-PDU-Descriptions.hpp | 1537 - .../e2apv1sim/e2sim/src/ASN1/lib/asn_e2ap.cpp | 982 - .../e2apv1sim/e2sim/src/ASN1/lib/asn_e2ap.hpp | 85 - .../e2sim/src/ASN1/lib/asn_e2ap_wrapper.hpp | 85 - .../e2apv1sim/e2sim/src/ASN1/lib/asn_x2ap.cpp | 428 - .../e2apv1sim/e2sim/src/ASN1/lib/asn_x2ap.hpp | 72 - .../e2sim/src/ASN1/lib/asn_x2ap_wrapper.hpp | 78 - .../e2apv1sim/e2sim/src/ASN1/lib/e2ap_config.hpp | 160 - .../e2apv1sim/e2sim/src/DEF/e2sim_defs.cpp | 125 - .../previous/e2apv1sim/e2sim/src/DEF/e2sim_defs.h | 65 - .../previous/e2apv1sim/e2sim/src/E2AP/E2SM/e2sm.c | 196 - .../previous/e2apv1sim/e2sim/src/E2AP/E2SM/e2sm.h | 30 - .../e2sim/src/E2AP/XML/E2AP_ENDCX2SetupFailure.xml | 21 - .../e2sim/src/E2AP/XML/E2AP_ENDCX2SetupRequest.xml | 67 - .../src/E2AP/XML/E2AP_ENDCX2SetupResponse.xml | 97 - .../e2sim/src/E2AP/XML/E2AP_ErrorIndication.xml | 21 - .../e2sim/src/E2AP/XML/E2AP_PartSetupRequest.xml | 1 - .../e2sim/src/E2AP/XML/E2AP_PartSetupRequest.xml~ | 1 - .../src/E2AP/XML/E2AP_RICindication_type1.xml | 74 - .../src/E2AP/XML/E2AP_RICindication_type2.xml | 74 - .../src/E2AP/XML/E2AP_RICsubscriptionRequest.xml | 50 - .../XML/E2AP_RICsubscriptionRequest_Ashwin.xml | 50 - .../src/E2AP/XML/E2AP_RICsubscriptionResponse.xml | 46 - .../src/E2AP/XML/E2AP_ResourceStatusFailure.xml | 35 - .../src/E2AP/XML/E2AP_ResourceStatusRequest.xml | 85 - .../E2AP/XML/E2AP_ResourceStatusRequest_bad.xml | 85 - .../src/E2AP/XML/E2AP_ResourceStatusResponse.xml | 134 - .../src/E2AP/XML/E2AP_ResourceStatusUpdate.xml | 66 - .../e2sim/src/E2AP/XML/E2AP_SetupRequest.xml | 1 - .../e2sim/src/E2AP/XML/E2AP_SetupRequest.xml~ | 1 - .../e2sim/src/E2AP/XML/E2AP_SetupRequest2.xml | 30 - .../e2sim/src/E2AP/XML/E2AP_X2SetupFailure.xml | 21 - .../e2sim/src/E2AP/XML/E2AP_X2SetupRequest.xml | 57 - .../e2sim/src/E2AP/XML/E2AP_X2SetupResponse.xml | 97 - .../e2sim/src/E2AP/XML/GlobalE2node-ID.xml | 12 - .../e2sim/src/E2AP/XML/reference_constants.txt | 16 - .../e2apv1sim/e2sim/src/E2AP/e2ap_asn1c_codec.c | 229 - .../e2apv1sim/e2sim/src/E2AP/e2ap_asn1c_codec.h | 48 - .../e2sim/src/E2AP/e2ap_message_handler.cpp | 295 - .../e2sim/src/E2AP/e2ap_message_handler.hpp | 47 - .../previous/e2apv1sim/e2sim/src/E2APr/E2SM/e2sm.c | 196 - .../previous/e2apv1sim/e2sim/src/E2APr/E2SM/e2sm.h | 30 - .../src/E2APr/XML/E2AP_ENDCX2SetupFailure.xml | 21 - .../src/E2APr/XML/E2AP_ENDCX2SetupRequest.xml | 67 - .../src/E2APr/XML/E2AP_ENDCX2SetupResponse.xml | 97 - .../e2sim/src/E2APr/XML/E2AP_ErrorIndication.xml | 21 - .../e2sim/src/E2APr/XML/E2AP_PartSetupRequest.xml | 1 - .../e2sim/src/E2APr/XML/E2AP_PartSetupRequest.xml~ | 1 - .../src/E2APr/XML/E2AP_RICindication_type1.xml | 74 - .../src/E2APr/XML/E2AP_RICindication_type2.xml | 74 - .../src/E2APr/XML/E2AP_RICsubscriptionRequest.xml | 50 - .../XML/E2AP_RICsubscriptionRequest_Ashwin.xml | 50 - .../src/E2APr/XML/E2AP_RICsubscriptionResponse.xml | 46 - .../src/E2APr/XML/E2AP_ResourceStatusFailure.xml | 35 - .../src/E2APr/XML/E2AP_ResourceStatusRequest.xml | 85 - .../E2APr/XML/E2AP_ResourceStatusRequest_bad.xml | 85 - .../src/E2APr/XML/E2AP_ResourceStatusResponse.xml | 134 - .../src/E2APr/XML/E2AP_ResourceStatusUpdate.xml | 66 - .../e2sim/src/E2APr/XML/E2AP_SetupRequest.xml | 1 - .../e2sim/src/E2APr/XML/E2AP_SetupRequest.xml~ | 1 - .../e2sim/src/E2APr/XML/E2AP_SetupRequest2.xml | 30 - .../e2sim/src/E2APr/XML/E2AP_X2SetupFailure.xml | 21 - .../e2sim/src/E2APr/XML/E2AP_X2SetupRequest.xml | 57 - .../e2sim/src/E2APr/XML/E2AP_X2SetupResponse.xml | 97 - .../e2sim/src/E2APr/XML/GlobalE2node-ID.xml | 12 - .../e2sim/src/E2APr/XML/reference_constants.txt | 16 - .../e2apv1sim/e2sim/src/E2APr/e2ap_asn1c_codec.c | 229 - .../e2apv1sim/e2sim/src/E2APr/e2ap_asn1c_codec.h | 48 - .../e2sim/src/E2APr/e2ap_message_handler.cpp | 332 - .../e2sim/src/E2APr/e2ap_message_handler.hpp | 50 - .../previous/e2apv1sim/e2sim/src/SCTP/e2sim_sctp.c | 173 - .../e2apv1sim/e2sim/src/SCTP/e2sim_sctp.cpp | 297 - .../previous/e2apv1sim/e2sim/src/SCTP/e2sim_sctp.h | 39 - .../e2apv1sim/e2sim/src/SCTP/e2sim_sctp.hpp | 39 - .../MESSAGES/XML/sample_endc_x2_setup_failure.xml | 21 - .../MESSAGES/XML/sample_endc_x2_setup_request.xml | 67 - .../MESSAGES/XML/sample_endc_x2_setup_response.xml | 36 - .../X2AP/MESSAGES/XML/sample_x2_setup_failure.xml | 21 - .../X2AP/MESSAGES/XML/sample_x2_setup_request.xml | 57 - .../X2AP/MESSAGES/XML/sample_x2_setup_response.xml | 69 - .../e2apv1sim/e2sim/src/X2AP/x2ap_asn_codec.c | 64 - .../e2apv1sim/e2sim/src/X2AP/x2ap_asn_codec.cpp | 59 - .../e2apv1sim/e2sim/src/X2AP/x2ap_asn_codec.h | 30 - .../e2apv1sim/e2sim/src/X2AP/x2ap_asn_codec.hpp | 34 - .../e2sim/src/X2AP/x2ap_generate_messages.c | 113 - .../e2sim/src/X2AP/x2ap_generate_messages.h | 31 - .../e2sim/src/X2AP/x2ap_message_handler.c | 139 - .../e2sim/src/X2AP/x2ap_message_handler.cpp | 128 - .../e2sim/src/X2AP/x2ap_message_handler.h | 30 - .../e2sim/src/X2AP/x2ap_message_handler.hpp | 35 - .../e2apv1sim/e2sim/test/Misc/CMakeLists.txt | 86 - .../e2apv1sim/e2sim/test/Misc/test_asn1c.cpp | 79 - .../e2sim/test/Pendulum/Pendulum_asn_codec.c | 180 - .../e2sim/test/Pendulum/Pendulum_asn_codec.h | 46 - .../e2sim/test/Pendulum/Serial/adruino_serial.c | 98 - .../e2sim/test/Pendulum/Serial/adruino_serial.h | 40 - .../test/Pendulum/Serial/arduino-serial-lib.c | 170 - .../test/Pendulum/Serial/arduino-serial-lib.h | 39 - .../e2apv1sim/e2sim/test/Pendulum/demo_setup.txt | 14 - .../e2sim/test/Pendulum/e2sim_closedloop.c | 263 - .../e2apv1sim/e2sim/test/Pendulum/e2sim_serial.c | 56 - .../e2sim/test/Pendulum/e2sim_test_client.c | 378 - .../e2sim/test/Pendulum/e2termination_test.cpp | 223 - .../e2apv1sim/e2sim/test/Pendulum/pendulum.asn1 | 12 - .../e2apv1sim/e2sim/test/WLG/CMakeLists.txt | 59 - .../previous/e2apv1sim/e2sim/test/WLG/build_wlg.sh | 27 - .../previous/e2apv1sim/e2sim/test/WLG/ric_perf.cpp | 287 - .../previous/e2apv1sim/e2sim/test/WLG/ric_wlg.cpp | 61 - .../e2apv1sim/e2sim/test/X2/CMakeLists.txt | 49 - e2sim/previous/e2apv1sim/e2sim/test/X2/x2agent.cpp | 41 - e2sim/previous/e2apv1sim/e2sim/test/X2/x2term.cpp | 73 - .../e2apv1sim/e2sim/test/X2/x2termination_test.cpp | 119 - .../e2apv1sim/e2sim/test/rmr_interface/README | 13 - .../e2sim/test/rmr_interface/rmr_install.sh | 28 - .../tests/receiver/build_and_run_recvr.sh | 30 - .../test/rmr_interface/tests/receiver/rmr_rcvr.c | 163 - .../tests/sender/build_and_run_sender.sh | 29 - .../test/rmr_interface/tests/sender/rmr_sender.c | 96 - .../test/rmr_interface/tests/sender/rmr_wrapper.h | 142 - .../e2sim/tools/asn_defs/generate_e2ap_e2sm_codes | 39 - .../e2apv1sim/e2sim/tools/build_helper.bash | 93 - e2sim/previous/e2apv1sim/e2sim/tools/install_asn1c | 31 - .../e2apv1sim/e2sim/tools/install_dependencies | 38 - e2sim/previous/e2apv1sim/e2sim/ueMeasReport.txt | 65 - e2sim/previous/e2apv1sim/encode_e2apv1.cpp | 950 - e2sim/previous/e2apv1sim/encode_e2apv1.hpp | 42 - e2sim/previous/e2apv1sim/encode_kpm.cpp | 1853 - e2sim/previous/e2apv1sim/encode_kpm.hpp | 45 - e2sim/previous/e2apv1sim/extras/ricsim.cpp | 216 - e2sim/previous/e2apv1sim/helm/README.md | 22 - e2sim/previous/e2apv1sim/helm/e2sim/Chart.yaml | 22 - .../e2apv1sim/helm/e2sim/templates/_helpers.tpl | 49 - .../helm/e2sim/templates/bin/_e2sim-run.sh.tpl | 54 - .../helm/e2sim/templates/configmap-e2sim-bin.yaml | 8 - .../e2apv1sim/helm/e2sim/templates/deployment.yaml | 79 - e2sim/previous/e2apv1sim/helm/e2sim/values.yaml | 48 - e2sim/previous/e2apv1sim/helm/e2sim_install.sh | 78 - e2sim/previous/e2apv1sim/kpm_callbacks.cpp | 602 - e2sim/previous/e2apv1sim/kpm_callbacks.hpp | 4 - e2sim/previous/e2apv1sim/ricsim.cpp | 132 - e2sim/previous/e2apv1sim/ricsim.hpp | 5 - e2sim/previous/e2apv1sim/ricsim/ASN1c/ANY.c | 450 - e2sim/previous/e2apv1sim/ricsim/ASN1c/ANY.h | 65 - e2sim/previous/e2apv1sim/ricsim/ASN1c/BIT_STRING.c | 656 - e2sim/previous/e2apv1sim/ricsim/ASN1c/BIT_STRING.h | 48 - .../e2apv1sim/ricsim/ASN1c/BIT_STRING_oer.c | 174 - e2sim/previous/e2apv1sim/ricsim/ASN1c/C-RNTI.c | 65 - e2sim/previous/e2apv1sim/ricsim/ASN1c/C-RNTI.h | 46 - .../CU-CP-Usage-Report-CellResourceReportItem.c | 139 - .../CU-CP-Usage-Report-CellResourceReportItem.h | 58 - .../ricsim/ASN1c/CU-CP-Usage-Report-Per-UE.c | 129 - .../ricsim/ASN1c/CU-CP-Usage-Report-Per-UE.h | 56 - .../CU-CP-Usage-Report-UeResourceReportItem.c | 72 - .../CU-CP-Usage-Report-UeResourceReportItem.h | 47 - .../CU-UP-Usage-Report-CellResourceReportItem.c | 139 - .../CU-UP-Usage-Report-CellResourceReportItem.h | 58 - .../ricsim/ASN1c/CU-UP-Usage-Report-Per-UE.c | 129 - .../ricsim/ASN1c/CU-UP-Usage-Report-Per-UE.h | 56 - .../CU-UP-Usage-Report-UeResourceReportItem.c | 150 - .../CU-UP-Usage-Report-UeResourceReportItem.h | 47 - .../ricsim/ASN1c/CUUPMeasurement-Container.c | 129 - .../ricsim/ASN1c/CUUPMeasurement-Container.h | 56 - e2sim/previous/e2apv1sim/ricsim/ASN1c/Cause.c | 92 - e2sim/previous/e2apv1sim/ricsim/ASN1c/Cause.h | 68 - e2sim/previous/e2apv1sim/ricsim/ASN1c/CauseMisc.c | 59 - e2sim/previous/e2apv1sim/ricsim/ASN1c/CauseMisc.h | 56 - .../e2apv1sim/ricsim/ASN1c/CauseProtocol.c | 65 - .../e2apv1sim/ricsim/ASN1c/CauseProtocol.h | 59 - e2sim/previous/e2apv1sim/ricsim/ASN1c/CauseRIC.c | 73 - e2sim/previous/e2apv1sim/ricsim/ASN1c/CauseRIC.h | 63 - .../e2apv1sim/ricsim/ASN1c/CauseRICservice.c | 57 - .../e2apv1sim/ricsim/ASN1c/CauseRICservice.h | 55 - .../e2apv1sim/ricsim/ASN1c/CauseTransport.c | 55 - .../e2apv1sim/ricsim/ASN1c/CauseTransport.h | 54 - .../ricsim/ASN1c/CellResourceReportListItem.c | 227 - .../ricsim/ASN1c/CellResourceReportListItem.h | 61 - .../previous/e2apv1sim/ricsim/ASN1c/Criticality.c | 55 - .../previous/e2apv1sim/ricsim/ASN1c/Criticality.h | 52 - .../ricsim/ASN1c/CriticalityDiagnostics-IE-Item.c | 70 - .../ricsim/ASN1c/CriticalityDiagnostics-IE-Item.h | 48 - .../ricsim/ASN1c/CriticalityDiagnostics-IE-List.c | 50 - .../ricsim/ASN1c/CriticalityDiagnostics-IE-List.h | 44 - .../ricsim/ASN1c/CriticalityDiagnostics.c | 94 - .../ricsim/ASN1c/CriticalityDiagnostics.h | 52 - .../ASN1c/DU-Usage-Report-CellResourceReportItem.c | 139 - .../ASN1c/DU-Usage-Report-CellResourceReportItem.h | 58 - .../ricsim/ASN1c/DU-Usage-Report-Per-UE.c | 129 - .../ricsim/ASN1c/DU-Usage-Report-Per-UE.h | 56 - .../ASN1c/DU-Usage-Report-UeResourceReportItem.c | 138 - .../ASN1c/DU-Usage-Report-UeResourceReportItem.h | 47 - e2sim/previous/e2apv1sim/ricsim/ASN1c/E2AP-PDU.c | 75 - e2sim/previous/e2apv1sim/ricsim/ASN1c/E2AP-PDU.h | 61 - .../ricsim/ASN1c/E2SM-KPM-ActionDefinition.c | 50 - .../ricsim/ASN1c/E2SM-KPM-ActionDefinition.h | 42 - .../E2SM-KPM-EventTriggerDefinition-Format1.c | 131 - .../E2SM-KPM-EventTriggerDefinition-Format1.h | 56 - .../ricsim/ASN1c/E2SM-KPM-EventTriggerDefinition.c | 55 - .../ricsim/ASN1c/E2SM-KPM-EventTriggerDefinition.h | 53 - .../ASN1c/E2SM-KPM-IndicationHeader-Format1.c | 208 - .../ASN1c/E2SM-KPM-IndicationHeader-Format1.h | 70 - .../ricsim/ASN1c/E2SM-KPM-IndicationHeader.c | 55 - .../ricsim/ASN1c/E2SM-KPM-IndicationHeader.h | 53 - .../ASN1c/E2SM-KPM-IndicationMessage-Format1.c | 129 - .../ASN1c/E2SM-KPM-IndicationMessage-Format1.h | 56 - .../ricsim/ASN1c/E2SM-KPM-IndicationMessage.c | 107 - .../ricsim/ASN1c/E2SM-KPM-IndicationMessage.h | 65 - .../ASN1c/E2SM-KPM-RANfunction-Description.c | 273 - .../ASN1c/E2SM-KPM-RANfunction-Description.h | 73 - .../e2apv1sim/ricsim/ASN1c/E2setupFailure.c | 50 - .../e2apv1sim/ricsim/ASN1c/E2setupFailure.h | 44 - .../e2apv1sim/ricsim/ASN1c/E2setupRequest.c | 50 - .../e2apv1sim/ricsim/ASN1c/E2setupRequest.h | 44 - .../e2apv1sim/ricsim/ASN1c/E2setupResponse.c | 50 - .../e2apv1sim/ricsim/ASN1c/E2setupResponse.h | 44 - .../e2apv1sim/ricsim/ASN1c/ENB-ID-Choice.c | 192 - .../e2apv1sim/ricsim/ASN1c/ENB-ID-Choice.h | 60 - e2sim/previous/e2apv1sim/ricsim/ASN1c/ENB-ID.c | 241 - e2sim/previous/e2apv1sim/ricsim/ASN1c/ENB-ID.h | 61 - e2sim/previous/e2apv1sim/ricsim/ASN1c/ENGNB-ID.c | 94 - e2sim/previous/e2apv1sim/ricsim/ASN1c/ENGNB-ID.h | 56 - .../e2apv1sim/ricsim/ASN1c/EPC-CUUP-PM-Format.c | 129 - .../e2apv1sim/ricsim/ASN1c/EPC-CUUP-PM-Format.h | 56 - .../e2apv1sim/ricsim/ASN1c/EPC-DU-PM-Container.c | 129 - .../e2apv1sim/ricsim/ASN1c/EPC-DU-PM-Container.h | 56 - .../e2apv1sim/ricsim/ASN1c/ErrorIndication.c | 50 - .../e2apv1sim/ricsim/ASN1c/ErrorIndication.h | 44 - .../e2apv1sim/ricsim/ASN1c/FGC-CUUP-PM-Format.c | 129 - .../e2apv1sim/ricsim/ASN1c/FGC-CUUP-PM-Format.h | 56 - .../e2apv1sim/ricsim/ASN1c/FGC-DU-PM-Container.c | 129 - .../e2apv1sim/ricsim/ASN1c/FGC-DU-PM-Container.h | 56 - .../ricsim/ASN1c/FQIPERSlicesPerPlmnListItem.c | 183 - .../ricsim/ASN1c/FQIPERSlicesPerPlmnListItem.h | 47 - .../ASN1c/FQIPERSlicesPerPlmnPerCellListItem.c | 171 - .../ASN1c/FQIPERSlicesPerPlmnPerCellListItem.h | 46 - .../e2apv1sim/ricsim/ASN1c/GNB-CU-CP-Name.c | 109 - .../e2apv1sim/ricsim/ASN1c/GNB-CU-CP-Name.h | 46 - .../previous/e2apv1sim/ricsim/ASN1c/GNB-CU-UP-ID.c | 70 - .../previous/e2apv1sim/ricsim/ASN1c/GNB-CU-UP-ID.h | 46 - .../e2apv1sim/ricsim/ASN1c/GNB-CU-UP-Name.c | 109 - .../e2apv1sim/ricsim/ASN1c/GNB-CU-UP-Name.h | 46 - e2sim/previous/e2apv1sim/ricsim/ASN1c/GNB-DU-ID.c | 70 - e2sim/previous/e2apv1sim/ricsim/ASN1c/GNB-DU-ID.h | 46 - .../previous/e2apv1sim/ricsim/ASN1c/GNB-DU-Name.c | 109 - .../previous/e2apv1sim/ricsim/ASN1c/GNB-DU-Name.h | 46 - .../e2apv1sim/ricsim/ASN1c/GNB-ID-Choice.c | 94 - .../e2apv1sim/ricsim/ASN1c/GNB-ID-Choice.h | 56 - e2sim/previous/e2apv1sim/ricsim/ASN1c/GNB-Name.c | 75 - e2sim/previous/e2apv1sim/ricsim/ASN1c/GNB-Name.h | 62 - .../e2apv1sim/ricsim/ASN1c/GlobalE2node-ID.c | 86 - .../e2apv1sim/ricsim/ASN1c/GlobalE2node-ID.h | 64 - .../e2apv1sim/ricsim/ASN1c/GlobalE2node-eNB-ID.c | 50 - .../e2apv1sim/ricsim/ASN1c/GlobalE2node-eNB-ID.h | 44 - .../ricsim/ASN1c/GlobalE2node-en-gNB-ID.c | 50 - .../ricsim/ASN1c/GlobalE2node-en-gNB-ID.h | 44 - .../e2apv1sim/ricsim/ASN1c/GlobalE2node-gNB-ID.c | 72 - .../e2apv1sim/ricsim/ASN1c/GlobalE2node-gNB-ID.h | 48 - .../ricsim/ASN1c/GlobalE2node-ng-eNB-ID.c | 50 - .../ricsim/ASN1c/GlobalE2node-ng-eNB-ID.h | 44 - .../previous/e2apv1sim/ricsim/ASN1c/GlobalENB-ID.c | 60 - .../previous/e2apv1sim/ricsim/ASN1c/GlobalENB-ID.h | 46 - .../e2apv1sim/ricsim/ASN1c/GlobalKPMnode-ID.c | 85 - .../e2apv1sim/ricsim/ASN1c/GlobalKPMnode-ID.h | 65 - .../e2apv1sim/ricsim/ASN1c/GlobalKPMnode-eNB-ID.c | 50 - .../e2apv1sim/ricsim/ASN1c/GlobalKPMnode-eNB-ID.h | 44 - .../ricsim/ASN1c/GlobalKPMnode-en-gNB-ID.c | 50 - .../ricsim/ASN1c/GlobalKPMnode-en-gNB-ID.h | 44 - .../e2apv1sim/ricsim/ASN1c/GlobalKPMnode-gNB-ID.c | 72 - .../e2apv1sim/ricsim/ASN1c/GlobalKPMnode-gNB-ID.h | 48 - .../ricsim/ASN1c/GlobalKPMnode-ng-eNB-ID.c | 50 - .../ricsim/ASN1c/GlobalKPMnode-ng-eNB-ID.h | 44 - .../previous/e2apv1sim/ricsim/ASN1c/GlobalRIC-ID.c | 96 - .../previous/e2apv1sim/ricsim/ASN1c/GlobalRIC-ID.h | 44 - .../e2apv1sim/ricsim/ASN1c/GlobalenGNB-ID.c | 60 - .../e2apv1sim/ricsim/ASN1c/GlobalenGNB-ID.h | 46 - .../previous/e2apv1sim/ricsim/ASN1c/GlobalgNB-ID.c | 60 - .../previous/e2apv1sim/ricsim/ASN1c/GlobalgNB-ID.h | 46 - .../e2apv1sim/ricsim/ASN1c/GlobalngeNB-ID.c | 60 - .../e2apv1sim/ricsim/ASN1c/GlobalngeNB-ID.h | 46 - e2sim/previous/e2apv1sim/ricsim/ASN1c/INTEGER.c | 1735 - e2sim/previous/e2apv1sim/ricsim/ASN1c/INTEGER.h | 108 - .../previous/e2apv1sim/ricsim/ASN1c/INTEGER_oer.c | 179 - .../e2apv1sim/ricsim/ASN1c/InitiatingMessage.c | 389 - .../e2apv1sim/ricsim/ASN1c/InitiatingMessage.h | 97 - .../e2apv1sim/ricsim/ASN1c/Makefile.am.asn1convert | 14 - .../e2apv1sim/ricsim/ASN1c/Makefile.am.libasncodec | 240 - e2sim/previous/e2apv1sim/ricsim/ASN1c/NI-Type.c | 60 - e2sim/previous/e2apv1sim/ricsim/ASN1c/NI-Type.h | 57 - e2sim/previous/e2apv1sim/ricsim/ASN1c/NRCGI.c | 60 - e2sim/previous/e2apv1sim/ricsim/ASN1c/NRCGI.h | 42 - .../e2apv1sim/ricsim/ASN1c/NRCellIdentity.c | 70 - .../e2apv1sim/ricsim/ASN1c/NRCellIdentity.h | 46 - .../e2apv1sim/ricsim/ASN1c/NativeEnumerated.c | 367 - .../e2apv1sim/ricsim/ASN1c/NativeEnumerated.h | 45 - .../e2apv1sim/ricsim/ASN1c/NativeEnumerated_oer.c | 149 - .../e2apv1sim/ricsim/ASN1c/NativeInteger.c | 550 - .../e2apv1sim/ricsim/ASN1c/NativeInteger.h | 46 - .../e2apv1sim/ricsim/ASN1c/NativeInteger_oer.c | 99 - .../previous/e2apv1sim/ricsim/ASN1c/OCTET_STRING.c | 2411 - .../previous/e2apv1sim/ricsim/ASN1c/OCTET_STRING.h | 102 - .../e2apv1sim/ricsim/ASN1c/OCTET_STRING_oer.c | 171 - .../e2apv1sim/ricsim/ASN1c/OCUCP-PF-Container.c | 140 - .../e2apv1sim/ricsim/ASN1c/OCUCP-PF-Container.h | 47 - .../e2apv1sim/ricsim/ASN1c/OCUUP-PF-Container.c | 141 - .../e2apv1sim/ricsim/ASN1c/OCUUP-PF-Container.h | 58 - .../e2apv1sim/ricsim/ASN1c/ODU-PF-Container.c | 129 - .../e2apv1sim/ricsim/ASN1c/ODU-PF-Container.h | 56 - e2sim/previous/e2apv1sim/ricsim/ASN1c/OPEN_TYPE.c | 509 - e2sim/previous/e2apv1sim/ricsim/ASN1c/OPEN_TYPE.h | 77 - .../e2apv1sim/ricsim/ASN1c/OPEN_TYPE_oer.c | 92 - .../previous/e2apv1sim/ricsim/ASN1c/PF-Container.c | 75 - .../previous/e2apv1sim/ricsim/ASN1c/PF-Container.h | 62 - .../e2apv1sim/ricsim/ASN1c/PF-ContainerListItem.c | 60 - .../e2apv1sim/ricsim/ASN1c/PF-ContainerListItem.h | 46 - .../e2apv1sim/ricsim/ASN1c/PLMN-Identity.c | 65 - .../e2apv1sim/ricsim/ASN1c/PLMN-Identity.h | 46 - .../e2apv1sim/ricsim/ASN1c/PM-Containers-List.c | 62 - .../e2apv1sim/ricsim/ASN1c/PM-Containers-List.h | 52 - .../e2apv1sim/ricsim/ASN1c/PerQCIReportListItem.c | 171 - .../e2apv1sim/ricsim/ASN1c/PerQCIReportListItem.h | 46 - .../ricsim/ASN1c/PerQCIReportListItemFormat.c | 183 - .../ricsim/ASN1c/PerQCIReportListItemFormat.h | 47 - .../previous/e2apv1sim/ricsim/ASN1c/PlmnID-List.c | 72 - .../previous/e2apv1sim/ricsim/ASN1c/PlmnID-List.h | 54 - e2sim/previous/e2apv1sim/ricsim/ASN1c/Presence.c | 55 - e2sim/previous/e2apv1sim/ricsim/ASN1c/Presence.h | 52 - .../e2apv1sim/ricsim/ASN1c/PrintableString.c | 130 - .../e2apv1sim/ricsim/ASN1c/PrintableString.h | 37 - .../e2apv1sim/ricsim/ASN1c/ProcedureCode.c | 61 - .../e2apv1sim/ricsim/ASN1c/ProcedureCode.h | 53 - .../e2apv1sim/ricsim/ASN1c/ProtocolIE-Container.c | 810 - .../e2apv1sim/ricsim/ASN1c/ProtocolIE-Container.h | 253 - .../ricsim/ASN1c/ProtocolIE-ContainerList.c | 9 - .../ricsim/ASN1c/ProtocolIE-ContainerList.h | 23 - .../ricsim/ASN1c/ProtocolIE-ContainerPair.c | 9 - .../ricsim/ASN1c/ProtocolIE-ContainerPair.h | 23 - .../ricsim/ASN1c/ProtocolIE-ContainerPairList.c | 9 - .../ricsim/ASN1c/ProtocolIE-ContainerPairList.h | 23 - .../e2apv1sim/ricsim/ASN1c/ProtocolIE-Field.c | 7190 -- .../e2apv1sim/ricsim/ASN1c/ProtocolIE-Field.h | 757 - .../e2apv1sim/ricsim/ASN1c/ProtocolIE-FieldPair.c | 9 - .../e2apv1sim/ricsim/ASN1c/ProtocolIE-FieldPair.h | 23 - .../e2apv1sim/ricsim/ASN1c/ProtocolIE-ID.c | 61 - .../e2apv1sim/ricsim/ASN1c/ProtocolIE-ID.h | 76 - .../ricsim/ASN1c/ProtocolIE-SingleContainer.c | 147 - .../ricsim/ASN1c/ProtocolIE-SingleContainer.h | 108 - .../e2apv1sim/ricsim/ASN1c/RAN-Container.c | 127 - .../e2apv1sim/ricsim/ASN1c/RAN-Container.h | 73 - .../ricsim/ASN1c/RANcallProcess-ID-string.c | 109 - .../ricsim/ASN1c/RANcallProcess-ID-string.h | 45 - .../e2apv1sim/ricsim/ASN1c/RANfunction-Item.c | 70 - .../e2apv1sim/ricsim/ASN1c/RANfunction-Item.h | 46 - .../e2apv1sim/ricsim/ASN1c/RANfunction-Name.c | 316 - .../e2apv1sim/ricsim/ASN1c/RANfunction-Name.h | 48 - .../e2apv1sim/ricsim/ASN1c/RANfunctionDefinition.c | 31 - .../e2apv1sim/ricsim/ASN1c/RANfunctionDefinition.h | 43 - .../e2apv1sim/ricsim/ASN1c/RANfunctionID-Item.c | 60 - .../e2apv1sim/ricsim/ASN1c/RANfunctionID-Item.h | 44 - .../e2apv1sim/ricsim/ASN1c/RANfunctionID.c | 61 - .../e2apv1sim/ricsim/ASN1c/RANfunctionID.h | 44 - .../ricsim/ASN1c/RANfunctionIDcause-Item.c | 60 - .../ricsim/ASN1c/RANfunctionIDcause-Item.h | 44 - .../e2apv1sim/ricsim/ASN1c/RANfunctionRevision.c | 61 - .../e2apv1sim/ricsim/ASN1c/RANfunctionRevision.h | 44 - .../e2apv1sim/ricsim/ASN1c/RANfunctions-List.c | 50 - .../e2apv1sim/ricsim/ASN1c/RANfunctions-List.h | 41 - .../e2apv1sim/ricsim/ASN1c/RANfunctionsID-List.c | 50 - .../e2apv1sim/ricsim/ASN1c/RANfunctionsID-List.h | 41 - .../ricsim/ASN1c/RANfunctionsIDcause-List.c | 50 - .../ricsim/ASN1c/RANfunctionsIDcause-List.h | 41 - .../ricsim/ASN1c/RIC-EventTriggerStyle-List.c | 70 - .../ricsim/ASN1c/RIC-EventTriggerStyle-List.h | 48 - .../e2apv1sim/ricsim/ASN1c/RIC-Format-Type.c | 31 - .../e2apv1sim/ricsim/ASN1c/RIC-Format-Type.h | 45 - .../e2apv1sim/ricsim/ASN1c/RIC-ReportStyle-List.c | 80 - .../e2apv1sim/ricsim/ASN1c/RIC-ReportStyle-List.h | 49 - .../e2apv1sim/ricsim/ASN1c/RIC-Style-Name.c | 109 - .../e2apv1sim/ricsim/ASN1c/RIC-Style-Name.h | 46 - .../e2apv1sim/ricsim/ASN1c/RIC-Style-Type.c | 31 - .../e2apv1sim/ricsim/ASN1c/RIC-Style-Type.h | 45 - .../ricsim/ASN1c/RICaction-Admitted-Item.c | 50 - .../ricsim/ASN1c/RICaction-Admitted-Item.h | 42 - .../ricsim/ASN1c/RICaction-Admitted-List.c | 50 - .../ricsim/ASN1c/RICaction-Admitted-List.h | 41 - .../ricsim/ASN1c/RICaction-NotAdmitted-Item.c | 60 - .../ricsim/ASN1c/RICaction-NotAdmitted-Item.h | 44 - .../ricsim/ASN1c/RICaction-NotAdmitted-List.c | 50 - .../ricsim/ASN1c/RICaction-NotAdmitted-List.h | 41 - .../ricsim/ASN1c/RICaction-ToBeSetup-Item.c | 83 - .../ricsim/ASN1c/RICaction-ToBeSetup-Item.h | 50 - .../e2apv1sim/ricsim/ASN1c/RICactionDefinition.c | 31 - .../e2apv1sim/ricsim/ASN1c/RICactionDefinition.h | 43 - .../previous/e2apv1sim/ricsim/ASN1c/RICactionID.c | 61 - .../previous/e2apv1sim/ricsim/ASN1c/RICactionID.h | 44 - .../e2apv1sim/ricsim/ASN1c/RICactionType.c | 57 - .../e2apv1sim/ricsim/ASN1c/RICactionType.h | 55 - .../ricsim/ASN1c/RICactions-ToBeSetup-List.c | 50 - .../ricsim/ASN1c/RICactions-ToBeSetup-List.h | 44 - .../e2apv1sim/ricsim/ASN1c/RICcallProcessID.c | 31 - .../e2apv1sim/ricsim/ASN1c/RICcallProcessID.h | 43 - .../e2apv1sim/ricsim/ASN1c/RICcontrolAckRequest.c | 57 - .../e2apv1sim/ricsim/ASN1c/RICcontrolAckRequest.h | 53 - .../e2apv1sim/ricsim/ASN1c/RICcontrolAcknowledge.c | 50 - .../e2apv1sim/ricsim/ASN1c/RICcontrolAcknowledge.h | 44 - .../e2apv1sim/ricsim/ASN1c/RICcontrolFailure.c | 50 - .../e2apv1sim/ricsim/ASN1c/RICcontrolFailure.h | 44 - .../e2apv1sim/ricsim/ASN1c/RICcontrolHeader.c | 31 - .../e2apv1sim/ricsim/ASN1c/RICcontrolHeader.h | 43 - .../e2apv1sim/ricsim/ASN1c/RICcontrolMessage.c | 31 - .../e2apv1sim/ricsim/ASN1c/RICcontrolMessage.h | 43 - .../e2apv1sim/ricsim/ASN1c/RICcontrolOutcome.c | 31 - .../e2apv1sim/ricsim/ASN1c/RICcontrolOutcome.h | 43 - .../e2apv1sim/ricsim/ASN1c/RICcontrolRequest.c | 50 - .../e2apv1sim/ricsim/ASN1c/RICcontrolRequest.h | 44 - .../e2apv1sim/ricsim/ASN1c/RICcontrolStatus.c | 57 - .../e2apv1sim/ricsim/ASN1c/RICcontrolStatus.h | 53 - .../ricsim/ASN1c/RICeventTriggerDefinition.c | 31 - .../ricsim/ASN1c/RICeventTriggerDefinition.h | 43 - .../e2apv1sim/ricsim/ASN1c/RICindication.c | 50 - .../e2apv1sim/ricsim/ASN1c/RICindication.h | 44 - .../e2apv1sim/ricsim/ASN1c/RICindicationHeader.c | 31 - .../e2apv1sim/ricsim/ASN1c/RICindicationHeader.h | 43 - .../e2apv1sim/ricsim/ASN1c/RICindicationMessage.c | 31 - .../e2apv1sim/ricsim/ASN1c/RICindicationMessage.h | 43 - .../e2apv1sim/ricsim/ASN1c/RICindicationSN.c | 61 - .../e2apv1sim/ricsim/ASN1c/RICindicationSN.h | 43 - .../e2apv1sim/ricsim/ASN1c/RICindicationType.c | 55 - .../e2apv1sim/ricsim/ASN1c/RICindicationType.h | 52 - .../previous/e2apv1sim/ricsim/ASN1c/RICrequestID.c | 120 - .../previous/e2apv1sim/ricsim/ASN1c/RICrequestID.h | 45 - .../e2apv1sim/ricsim/ASN1c/RICserviceQuery.c | 50 - .../e2apv1sim/ricsim/ASN1c/RICserviceQuery.h | 44 - .../e2apv1sim/ricsim/ASN1c/RICserviceUpdate.c | 50 - .../e2apv1sim/ricsim/ASN1c/RICserviceUpdate.h | 44 - .../ricsim/ASN1c/RICserviceUpdateAcknowledge.c | 50 - .../ricsim/ASN1c/RICserviceUpdateAcknowledge.h | 44 - .../ricsim/ASN1c/RICserviceUpdateFailure.c | 50 - .../ricsim/ASN1c/RICserviceUpdateFailure.h | 44 - .../ricsim/ASN1c/RICsubscriptionDeleteFailure.c | 50 - .../ricsim/ASN1c/RICsubscriptionDeleteFailure.h | 44 - .../ricsim/ASN1c/RICsubscriptionDeleteRequest.c | 50 - .../ricsim/ASN1c/RICsubscriptionDeleteRequest.h | 44 - .../ricsim/ASN1c/RICsubscriptionDeleteResponse.c | 50 - .../ricsim/ASN1c/RICsubscriptionDeleteResponse.h | 44 - .../ricsim/ASN1c/RICsubscriptionDetails.c | 60 - .../ricsim/ASN1c/RICsubscriptionDetails.h | 44 - .../ricsim/ASN1c/RICsubscriptionFailure.c | 50 - .../ricsim/ASN1c/RICsubscriptionFailure.h | 44 - .../ricsim/ASN1c/RICsubscriptionRequest.c | 50 - .../ricsim/ASN1c/RICsubscriptionRequest.h | 44 - .../ricsim/ASN1c/RICsubscriptionResponse.c | 50 - .../ricsim/ASN1c/RICsubscriptionResponse.h | 44 - .../e2apv1sim/ricsim/ASN1c/RICsubsequentAction.c | 60 - .../e2apv1sim/ricsim/ASN1c/RICsubsequentAction.h | 46 - .../ricsim/ASN1c/RICsubsequentActionType.c | 55 - .../ricsim/ASN1c/RICsubsequentActionType.h | 54 - .../e2apv1sim/ricsim/ASN1c/RICtimeToWait.c | 87 - .../e2apv1sim/ricsim/ASN1c/RICtimeToWait.h | 70 - .../previous/e2apv1sim/ricsim/ASN1c/RT-Period-IE.c | 94 - .../previous/e2apv1sim/ricsim/ASN1c/RT-Period-IE.h | 74 - .../previous/e2apv1sim/ricsim/ASN1c/ResetRequest.c | 50 - .../previous/e2apv1sim/ricsim/ASN1c/ResetRequest.h | 44 - .../e2apv1sim/ricsim/ASN1c/ResetResponse.c | 50 - .../e2apv1sim/ricsim/ASN1c/ResetResponse.h | 44 - e2sim/previous/e2apv1sim/ricsim/ASN1c/SNSSAI.c | 130 - e2sim/previous/e2apv1sim/ricsim/ASN1c/SNSSAI.h | 41 - .../ricsim/ASN1c/ServedPlmnPerCellListItem.c | 72 - .../ricsim/ASN1c/ServedPlmnPerCellListItem.h | 54 - .../ricsim/ASN1c/SlicePerPlmnPerCellListItem.c | 139 - .../ricsim/ASN1c/SlicePerPlmnPerCellListItem.h | 58 - .../e2apv1sim/ricsim/ASN1c/SliceToReportListItem.c | 139 - .../e2apv1sim/ricsim/ASN1c/SliceToReportListItem.h | 58 - .../e2apv1sim/ricsim/ASN1c/SuccessfulOutcome.c | 359 - .../e2apv1sim/ricsim/ASN1c/SuccessfulOutcome.h | 91 - e2sim/previous/e2apv1sim/ricsim/ASN1c/TimeToWait.c | 63 - e2sim/previous/e2apv1sim/ricsim/ASN1c/TimeToWait.h | 56 - e2sim/previous/e2apv1sim/ricsim/ASN1c/Timestamp.c | 31 - e2sim/previous/e2apv1sim/ricsim/ASN1c/Timestamp.h | 45 - .../ricsim/ASN1c/Trigger-ConditionIE-Item.c | 50 - .../ricsim/ASN1c/Trigger-ConditionIE-Item.h | 44 - .../e2apv1sim/ricsim/ASN1c/TriggeringMessage.c | 55 - .../e2apv1sim/ricsim/ASN1c/TriggeringMessage.h | 52 - .../previous/e2apv1sim/ricsim/ASN1c/TypeOfError.c | 55 - .../previous/e2apv1sim/ricsim/ASN1c/TypeOfError.h | 54 - .../e2apv1sim/ricsim/ASN1c/UE-Report-Type.c | 60 - .../e2apv1sim/ricsim/ASN1c/UE-Report-Type.h | 57 - .../e2apv1sim/ricsim/ASN1c/UnsuccessfulOutcome.c | 349 - .../e2apv1sim/ricsim/ASN1c/UnsuccessfulOutcome.h | 89 - .../e2apv1sim/ricsim/ASN1c/asn_SEQUENCE_OF.c | 41 - .../e2apv1sim/ricsim/ASN1c/asn_SEQUENCE_OF.h | 52 - e2sim/previous/e2apv1sim/ricsim/ASN1c/asn_SET_OF.c | 88 - e2sim/previous/e2apv1sim/ricsim/ASN1c/asn_SET_OF.h | 72 - .../e2apv1sim/ricsim/ASN1c/asn_application.c | 481 - .../e2apv1sim/ricsim/ASN1c/asn_application.h | 171 - .../previous/e2apv1sim/ricsim/ASN1c/asn_bit_data.c | 333 - .../previous/e2apv1sim/ricsim/ASN1c/asn_bit_data.h | 83 - e2sim/previous/e2apv1sim/ricsim/ASN1c/asn_codecs.h | 108 - .../e2apv1sim/ricsim/ASN1c/asn_codecs_prim.c | 317 - .../e2apv1sim/ricsim/ASN1c/asn_codecs_prim.h | 51 - .../previous/e2apv1sim/ricsim/ASN1c/asn_constant.h | 30 - .../previous/e2apv1sim/ricsim/ASN1c/asn_internal.c | 48 - .../previous/e2apv1sim/ricsim/ASN1c/asn_internal.h | 159 - e2sim/previous/e2apv1sim/ricsim/ASN1c/asn_ioc.h | 51 - .../e2apv1sim/ricsim/ASN1c/asn_random_fill.c | 56 - .../e2apv1sim/ricsim/ASN1c/asn_random_fill.h | 51 - e2sim/previous/e2apv1sim/ricsim/ASN1c/asn_system.h | 150 - .../previous/e2apv1sim/ricsim/ASN1c/ber_decoder.c | 283 - .../previous/e2apv1sim/ricsim/ASN1c/ber_decoder.h | 66 - .../e2apv1sim/ricsim/ASN1c/ber_tlv_length.c | 168 - .../e2apv1sim/ricsim/ASN1c/ber_tlv_length.h | 50 - .../previous/e2apv1sim/ricsim/ASN1c/ber_tlv_tag.c | 144 - .../previous/e2apv1sim/ricsim/ASN1c/ber_tlv_tag.h | 60 - .../e2apv1sim/ricsim/ASN1c/constr_CHOICE.c | 1533 - .../e2apv1sim/ricsim/ASN1c/constr_CHOICE.h | 80 - .../e2apv1sim/ricsim/ASN1c/constr_CHOICE_oer.c | 380 - .../e2apv1sim/ricsim/ASN1c/constr_SEQUENCE.c | 2059 - .../e2apv1sim/ricsim/ASN1c/constr_SEQUENCE.h | 68 - .../e2apv1sim/ricsim/ASN1c/constr_SEQUENCE_OF.c | 358 - .../e2apv1sim/ricsim/ASN1c/constr_SEQUENCE_OF.h | 41 - .../e2apv1sim/ricsim/ASN1c/constr_SEQUENCE_oer.c | 561 - .../e2apv1sim/ricsim/ASN1c/constr_SET_OF.c | 1441 - .../e2apv1sim/ricsim/ASN1c/constr_SET_OF.h | 49 - .../e2apv1sim/ricsim/ASN1c/constr_SET_OF_oer.c | 285 - .../previous/e2apv1sim/ricsim/ASN1c/constr_TYPE.c | 80 - .../previous/e2apv1sim/ricsim/ASN1c/constr_TYPE.h | 262 - .../previous/e2apv1sim/ricsim/ASN1c/constraints.c | 93 - .../previous/e2apv1sim/ricsim/ASN1c/constraints.h | 62 - .../e2apv1sim/ricsim/ASN1c/converter-example.mk | 33 - .../previous/e2apv1sim/ricsim/ASN1c/der_encoder.c | 194 - .../previous/e2apv1sim/ricsim/ASN1c/der_encoder.h | 68 - .../previous/e2apv1sim/ricsim/ASN1c/oer_decoder.c | 152 - .../previous/e2apv1sim/ricsim/ASN1c/oer_decoder.h | 72 - .../previous/e2apv1sim/ricsim/ASN1c/oer_encoder.c | 141 - .../previous/e2apv1sim/ricsim/ASN1c/oer_encoder.h | 70 - .../previous/e2apv1sim/ricsim/ASN1c/oer_support.c | 122 - .../previous/e2apv1sim/ricsim/ASN1c/oer_support.h | 47 - .../e2apv1sim/ricsim/ASN1c/pdu_collection.c | 25 - .../previous/e2apv1sim/ricsim/ASN1c/per_decoder.c | 185 - .../previous/e2apv1sim/ricsim/ASN1c/per_decoder.h | 82 - .../previous/e2apv1sim/ricsim/ASN1c/per_encoder.c | 265 - .../previous/e2apv1sim/ricsim/ASN1c/per_encoder.h | 93 - .../previous/e2apv1sim/ricsim/ASN1c/per_opentype.c | 533 - .../previous/e2apv1sim/ricsim/ASN1c/per_opentype.h | 44 - .../previous/e2apv1sim/ricsim/ASN1c/per_support.c | 489 - .../previous/e2apv1sim/ricsim/ASN1c/per_support.h | 127 - .../previous/e2apv1sim/ricsim/ASN1c/xer_decoder.c | 369 - .../previous/e2apv1sim/ricsim/ASN1c/xer_decoder.h | 106 - .../previous/e2apv1sim/ricsim/ASN1c/xer_encoder.c | 237 - .../previous/e2apv1sim/ricsim/ASN1c/xer_encoder.h | 83 - .../previous/e2apv1sim/ricsim/ASN1c/xer_support.c | 227 - .../previous/e2apv1sim/ricsim/ASN1c/xer_support.h | 55 - e2sim/previous/e2apv1sim/ricsim/CMakeLists.txt | 61 - e2sim/previous/e2apv1sim/ricsim/build_e2sim | 86 - e2sim/previous/e2apv1sim/ricsim/encode_e2apv1.cpp | 1112 - e2sim/previous/e2apv1sim/ricsim/encode_e2apv1.hpp | 46 - e2sim/previous/e2apv1sim/ricsim/encode_kpm.cpp | 1853 - e2sim/previous/e2apv1sim/ricsim/encode_kpm.hpp | 45 - e2sim/previous/e2apv1sim/ricsim/extras/ricsim.cpp | 216 - e2sim/previous/e2apv1sim/ricsim/ricsim.cpp | 132 - e2sim/previous/e2apv1sim/ricsim/ricsim.hpp | 5 - .../previous/e2apv1sim/ricsim/src/ASN1/asn/asn.hpp | 27 - .../e2apv1sim/ricsim/src/ASN1/asn/ber/codec.hpp | 931 - .../e2apv1sim/ricsim/src/ASN1/asn/ber/common.hpp | 51 - .../e2apv1sim/ricsim/src/ASN1/asn/ber/context.hpp | 118 - .../e2apv1sim/ricsim/src/ASN1/asn/ber/length.hpp | 103 - .../e2apv1sim/ricsim/src/ASN1/asn/ber/opentype.hpp | 73 - .../e2apv1sim/ricsim/src/ASN1/asn/ber/tag.hpp | 163 - .../e2apv1sim/ricsim/src/ASN1/asn/ber/tools.hpp | 68 - .../e2apv1sim/ricsim/src/ASN1/asn/ber/visitor.hpp | 177 - .../e2apv1sim/ricsim/src/ASN1/asn/buffer.hpp | 689 - .../ricsim/src/ASN1/asn/chunked_allocator.hpp | 84 - .../e2apv1sim/ricsim/src/ASN1/asn/constraints.hpp | 140 - .../e2apv1sim/ricsim/src/ASN1/asn/elements.hpp | 565 - .../ricsim/src/ASN1/asn/error_context.hpp | 267 - .../e2apv1sim/ricsim/src/ASN1/asn/identifier.hpp | 97 - .../ricsim/src/ASN1/asn/per/binary_integer.hpp | 168 - .../e2apv1sim/ricsim/src/ASN1/asn/per/bstring.hpp | 279 - .../e2apv1sim/ricsim/src/ASN1/asn/per/choice.hpp | 136 - .../e2apv1sim/ricsim/src/ASN1/asn/per/codec.hpp | 325 - .../e2apv1sim/ricsim/src/ASN1/asn/per/common.hpp | 58 - .../e2apv1sim/ricsim/src/ASN1/asn/per/context.hpp | 154 - .../ricsim/src/ASN1/asn/per/enumerated.hpp | 79 - .../e2apv1sim/ricsim/src/ASN1/asn/per/integer.hpp | 154 - .../e2apv1sim/ricsim/src/ASN1/asn/per/length.hpp | 238 - .../e2apv1sim/ricsim/src/ASN1/asn/per/oid.hpp | 68 - .../e2apv1sim/ricsim/src/ASN1/asn/per/ostring.hpp | 209 - .../e2apv1sim/ricsim/src/ASN1/asn/per/sequence.hpp | 568 - .../ricsim/src/ASN1/asn/per/sequence_of.hpp | 156 - .../e2apv1sim/ricsim/src/ASN1/asn/per/visitor.hpp | 141 - .../ricsim/src/ASN1/asn/per/whole_number.hpp | 147 - .../e2apv1sim/ricsim/src/ASN1/asn/printer.hpp | 338 - .../e2apv1sim/ricsim/src/ASN1/asn/type_defs.h | 36 - .../e2apv1sim/ricsim/src/ASN1/asn/utility.hpp | 88 - .../e2apv1sim/ricsim/src/ASN1/asn/value_traits.hpp | 187 - .../e2apv1sim/ricsim/src/ASN1/asn/variant.hpp | 146 - .../e2apv1sim/ricsim/src/ASN1/asn/version.hpp | 27 - .../ricsim/src/ASN1/generated/E2AP-Constants.hpp | 244 - .../ricsim/src/ASN1/generated/E2AP-IEs.hpp | 568 - .../src/ASN1/generated/E2AP-PDU-Contents.hpp | 5512 -- .../src/ASN1/generated/E2AP-PDU-Descriptions.hpp | 980 - .../src/ASN1/generated/X2AP-CommonDataTypes.hpp | 188 - .../ricsim/src/ASN1/generated/X2AP-Constants.hpp | 2054 - .../ricsim/src/ASN1/generated/X2AP-Containers.hpp | 700 - .../ricsim/src/ASN1/generated/X2AP-IEs.hpp | 35962 ---------- .../src/ASN1/generated/X2AP-PDU-Contents.hpp | 68476 ------------------- .../src/ASN1/generated/X2AP-PDU-Descriptions.hpp | 1537 - .../e2apv1sim/ricsim/src/ASN1/lib/asn_e2ap.cpp | 982 - .../e2apv1sim/ricsim/src/ASN1/lib/asn_e2ap.hpp | 85 - .../ricsim/src/ASN1/lib/asn_e2ap_wrapper.hpp | 85 - .../e2apv1sim/ricsim/src/ASN1/lib/asn_x2ap.cpp | 428 - .../e2apv1sim/ricsim/src/ASN1/lib/asn_x2ap.hpp | 72 - .../ricsim/src/ASN1/lib/asn_x2ap_wrapper.hpp | 78 - .../e2apv1sim/ricsim/src/ASN1/lib/e2ap_config.hpp | 160 - .../e2apv1sim/ricsim/src/DEF/e2sim_defs.cpp | 125 - .../previous/e2apv1sim/ricsim/src/DEF/e2sim_defs.h | 65 - .../previous/e2apv1sim/ricsim/src/E2AP/E2SM/e2sm.c | 196 - .../previous/e2apv1sim/ricsim/src/E2AP/E2SM/e2sm.h | 30 - .../src/E2AP/XML/E2AP_ENDCX2SetupFailure.xml | 21 - .../src/E2AP/XML/E2AP_ENDCX2SetupRequest.xml | 67 - .../src/E2AP/XML/E2AP_ENDCX2SetupResponse.xml | 97 - .../ricsim/src/E2AP/XML/E2AP_ErrorIndication.xml | 21 - .../ricsim/src/E2AP/XML/E2AP_PartSetupRequest.xml | 1 - .../ricsim/src/E2AP/XML/E2AP_PartSetupRequest.xml~ | 1 - .../src/E2AP/XML/E2AP_RICindication_type1.xml | 74 - .../src/E2AP/XML/E2AP_RICindication_type2.xml | 74 - .../src/E2AP/XML/E2AP_RICsubscriptionRequest.xml | 50 - .../XML/E2AP_RICsubscriptionRequest_Ashwin.xml | 50 - .../src/E2AP/XML/E2AP_RICsubscriptionResponse.xml | 46 - .../src/E2AP/XML/E2AP_ResourceStatusFailure.xml | 35 - .../src/E2AP/XML/E2AP_ResourceStatusRequest.xml | 85 - .../E2AP/XML/E2AP_ResourceStatusRequest_bad.xml | 85 - .../src/E2AP/XML/E2AP_ResourceStatusResponse.xml | 134 - .../src/E2AP/XML/E2AP_ResourceStatusUpdate.xml | 66 - .../ricsim/src/E2AP/XML/E2AP_SetupRequest.xml | 1 - .../ricsim/src/E2AP/XML/E2AP_SetupRequest.xml~ | 1 - .../ricsim/src/E2AP/XML/E2AP_SetupRequest2.xml | 30 - .../ricsim/src/E2AP/XML/E2AP_X2SetupFailure.xml | 21 - .../ricsim/src/E2AP/XML/E2AP_X2SetupRequest.xml | 57 - .../ricsim/src/E2AP/XML/E2AP_X2SetupResponse.xml | 97 - .../ricsim/src/E2AP/XML/GlobalE2node-ID.xml | 12 - .../ricsim/src/E2AP/XML/reference_constants.txt | 16 - .../e2apv1sim/ricsim/src/E2AP/e2ap_asn1c_codec.c | 229 - .../e2apv1sim/ricsim/src/E2AP/e2ap_asn1c_codec.h | 48 - .../ricsim/src/E2AP/e2ap_message_handler.cpp | 295 - .../ricsim/src/E2AP/e2ap_message_handler.hpp | 47 - .../e2apv1sim/ricsim/src/E2APr/E2SM/e2sm.c | 196 - .../e2apv1sim/ricsim/src/E2APr/E2SM/e2sm.h | 30 - .../src/E2APr/XML/E2AP_ENDCX2SetupFailure.xml | 21 - .../src/E2APr/XML/E2AP_ENDCX2SetupRequest.xml | 67 - .../src/E2APr/XML/E2AP_ENDCX2SetupResponse.xml | 97 - .../ricsim/src/E2APr/XML/E2AP_ErrorIndication.xml | 21 - .../ricsim/src/E2APr/XML/E2AP_PartSetupRequest.xml | 1 - .../src/E2APr/XML/E2AP_PartSetupRequest.xml~ | 1 - .../src/E2APr/XML/E2AP_RICindication_type1.xml | 74 - .../src/E2APr/XML/E2AP_RICindication_type2.xml | 74 - .../src/E2APr/XML/E2AP_RICsubscriptionRequest.xml | 50 - .../XML/E2AP_RICsubscriptionRequest_Ashwin.xml | 50 - .../src/E2APr/XML/E2AP_RICsubscriptionResponse.xml | 46 - .../src/E2APr/XML/E2AP_ResourceStatusFailure.xml | 35 - .../src/E2APr/XML/E2AP_ResourceStatusRequest.xml | 85 - .../E2APr/XML/E2AP_ResourceStatusRequest_bad.xml | 85 - .../src/E2APr/XML/E2AP_ResourceStatusResponse.xml | 134 - .../src/E2APr/XML/E2AP_ResourceStatusUpdate.xml | 66 - .../ricsim/src/E2APr/XML/E2AP_SetupRequest.xml | 1 - .../ricsim/src/E2APr/XML/E2AP_SetupRequest.xml~ | 1 - .../ricsim/src/E2APr/XML/E2AP_SetupRequest2.xml | 30 - .../ricsim/src/E2APr/XML/E2AP_X2SetupFailure.xml | 21 - .../ricsim/src/E2APr/XML/E2AP_X2SetupRequest.xml | 57 - .../ricsim/src/E2APr/XML/E2AP_X2SetupResponse.xml | 97 - .../ricsim/src/E2APr/XML/GlobalE2node-ID.xml | 12 - .../ricsim/src/E2APr/XML/reference_constants.txt | 16 - .../e2apv1sim/ricsim/src/E2APr/e2ap_asn1c_codec.c | 229 - .../e2apv1sim/ricsim/src/E2APr/e2ap_asn1c_codec.h | 48 - .../ricsim/src/E2APr/e2ap_message_handler.cpp | 267 - .../ricsim/src/E2APr/e2ap_message_handler.hpp | 47 - .../e2apv1sim/ricsim/src/SCTP/e2sim_sctp.c | 173 - .../e2apv1sim/ricsim/src/SCTP/e2sim_sctp.cpp | 297 - .../e2apv1sim/ricsim/src/SCTP/e2sim_sctp.h | 39 - .../e2apv1sim/ricsim/src/SCTP/e2sim_sctp.hpp | 39 - .../MESSAGES/XML/sample_endc_x2_setup_failure.xml | 21 - .../MESSAGES/XML/sample_endc_x2_setup_request.xml | 67 - .../MESSAGES/XML/sample_endc_x2_setup_response.xml | 36 - .../X2AP/MESSAGES/XML/sample_x2_setup_failure.xml | 21 - .../X2AP/MESSAGES/XML/sample_x2_setup_request.xml | 57 - .../X2AP/MESSAGES/XML/sample_x2_setup_response.xml | 69 - .../e2apv1sim/ricsim/src/X2AP/x2ap_asn_codec.c | 64 - .../e2apv1sim/ricsim/src/X2AP/x2ap_asn_codec.cpp | 59 - .../e2apv1sim/ricsim/src/X2AP/x2ap_asn_codec.h | 30 - .../e2apv1sim/ricsim/src/X2AP/x2ap_asn_codec.hpp | 34 - .../ricsim/src/X2AP/x2ap_generate_messages.c | 113 - .../ricsim/src/X2AP/x2ap_generate_messages.h | 31 - .../ricsim/src/X2AP/x2ap_message_handler.c | 139 - .../ricsim/src/X2AP/x2ap_message_handler.cpp | 128 - .../ricsim/src/X2AP/x2ap_message_handler.h | 30 - .../ricsim/src/X2AP/x2ap_message_handler.hpp | 35 - .../e2apv1sim/ricsim/test/Misc/CMakeLists.txt | 86 - .../e2apv1sim/ricsim/test/Misc/test_asn1c.cpp | 79 - .../ricsim/test/Pendulum/Pendulum_asn_codec.c | 180 - .../ricsim/test/Pendulum/Pendulum_asn_codec.h | 46 - .../ricsim/test/Pendulum/Serial/adruino_serial.c | 98 - .../ricsim/test/Pendulum/Serial/adruino_serial.h | 40 - .../test/Pendulum/Serial/arduino-serial-lib.c | 170 - .../test/Pendulum/Serial/arduino-serial-lib.h | 39 - .../e2apv1sim/ricsim/test/Pendulum/demo_setup.txt | 14 - .../ricsim/test/Pendulum/e2sim_closedloop.c | 263 - .../e2apv1sim/ricsim/test/Pendulum/e2sim_serial.c | 56 - .../ricsim/test/Pendulum/e2sim_test_client.c | 378 - .../ricsim/test/Pendulum/e2termination_test.cpp | 223 - .../e2apv1sim/ricsim/test/Pendulum/pendulum.asn1 | 12 - .../e2apv1sim/ricsim/test/WLG/CMakeLists.txt | 59 - .../e2apv1sim/ricsim/test/WLG/build_wlg.sh | 27 - .../e2apv1sim/ricsim/test/WLG/ric_perf.cpp | 287 - .../previous/e2apv1sim/ricsim/test/WLG/ric_wlg.cpp | 61 - .../e2apv1sim/ricsim/test/X2/CMakeLists.txt | 49 - .../previous/e2apv1sim/ricsim/test/X2/x2agent.cpp | 41 - e2sim/previous/e2apv1sim/ricsim/test/X2/x2term.cpp | 73 - .../ricsim/test/X2/x2termination_test.cpp | 119 - .../e2apv1sim/ricsim/test/rmr_interface/README | 13 - .../ricsim/test/rmr_interface/rmr_install.sh | 28 - .../tests/receiver/build_and_run_recvr.sh | 30 - .../test/rmr_interface/tests/receiver/rmr_rcvr.c | 163 - .../tests/sender/build_and_run_sender.sh | 29 - .../test/rmr_interface/tests/sender/rmr_sender.c | 96 - .../test/rmr_interface/tests/sender/rmr_wrapper.h | 142 - .../ricsim/tools/asn_defs/generate_e2ap_e2sm_codes | 39 - .../e2apv1sim/ricsim/tools/build_helper.bash | 93 - .../previous/e2apv1sim/ricsim/tools/install_asn1c | 31 - .../e2apv1sim/ricsim/tools/install_dependencies | 38 - e2sim/previous/e2apv1sim/simulation.txt | 3 - e2sim/previous/e2apv1sim/src/ASN1/asn/asn.hpp | 27 - .../previous/e2apv1sim/src/ASN1/asn/ber/codec.hpp | 931 - .../previous/e2apv1sim/src/ASN1/asn/ber/common.hpp | 51 - .../e2apv1sim/src/ASN1/asn/ber/context.hpp | 118 - .../previous/e2apv1sim/src/ASN1/asn/ber/length.hpp | 103 - .../e2apv1sim/src/ASN1/asn/ber/opentype.hpp | 73 - e2sim/previous/e2apv1sim/src/ASN1/asn/ber/tag.hpp | 163 - .../previous/e2apv1sim/src/ASN1/asn/ber/tools.hpp | 68 - .../e2apv1sim/src/ASN1/asn/ber/visitor.hpp | 177 - e2sim/previous/e2apv1sim/src/ASN1/asn/buffer.hpp | 689 - .../e2apv1sim/src/ASN1/asn/chunked_allocator.hpp | 84 - .../e2apv1sim/src/ASN1/asn/constraints.hpp | 140 - e2sim/previous/e2apv1sim/src/ASN1/asn/elements.hpp | 565 - .../e2apv1sim/src/ASN1/asn/error_context.hpp | 267 - .../previous/e2apv1sim/src/ASN1/asn/identifier.hpp | 97 - .../e2apv1sim/src/ASN1/asn/per/binary_integer.hpp | 168 - .../e2apv1sim/src/ASN1/asn/per/bstring.hpp | 279 - .../previous/e2apv1sim/src/ASN1/asn/per/choice.hpp | 136 - .../previous/e2apv1sim/src/ASN1/asn/per/codec.hpp | 325 - .../previous/e2apv1sim/src/ASN1/asn/per/common.hpp | 58 - .../e2apv1sim/src/ASN1/asn/per/context.hpp | 154 - .../e2apv1sim/src/ASN1/asn/per/enumerated.hpp | 79 - .../e2apv1sim/src/ASN1/asn/per/integer.hpp | 154 - .../previous/e2apv1sim/src/ASN1/asn/per/length.hpp | 238 - e2sim/previous/e2apv1sim/src/ASN1/asn/per/oid.hpp | 68 - .../e2apv1sim/src/ASN1/asn/per/ostring.hpp | 209 - .../e2apv1sim/src/ASN1/asn/per/sequence.hpp | 568 - .../e2apv1sim/src/ASN1/asn/per/sequence_of.hpp | 156 - .../e2apv1sim/src/ASN1/asn/per/visitor.hpp | 141 - .../e2apv1sim/src/ASN1/asn/per/whole_number.hpp | 147 - e2sim/previous/e2apv1sim/src/ASN1/asn/printer.hpp | 338 - e2sim/previous/e2apv1sim/src/ASN1/asn/type_defs.h | 36 - e2sim/previous/e2apv1sim/src/ASN1/asn/utility.hpp | 88 - .../e2apv1sim/src/ASN1/asn/value_traits.hpp | 187 - e2sim/previous/e2apv1sim/src/ASN1/asn/variant.hpp | 146 - e2sim/previous/e2apv1sim/src/ASN1/asn/version.hpp | 27 - .../src/ASN1/generated/E2AP-Constants.hpp | 244 - .../e2apv1sim/src/ASN1/generated/E2AP-IEs.hpp | 568 - .../src/ASN1/generated/E2AP-PDU-Contents.hpp | 5512 -- .../src/ASN1/generated/E2AP-PDU-Descriptions.hpp | 980 - .../src/ASN1/generated/X2AP-CommonDataTypes.hpp | 188 - .../src/ASN1/generated/X2AP-Constants.hpp | 2054 - .../src/ASN1/generated/X2AP-Containers.hpp | 700 - .../e2apv1sim/src/ASN1/generated/X2AP-IEs.hpp | 35962 ---------- .../src/ASN1/generated/X2AP-PDU-Contents.hpp | 68476 ------------------- .../src/ASN1/generated/X2AP-PDU-Descriptions.hpp | 1537 - e2sim/previous/e2apv1sim/src/ASN1/lib/asn_e2ap.cpp | 982 - e2sim/previous/e2apv1sim/src/ASN1/lib/asn_e2ap.hpp | 85 - .../e2apv1sim/src/ASN1/lib/asn_e2ap_wrapper.hpp | 85 - e2sim/previous/e2apv1sim/src/ASN1/lib/asn_x2ap.cpp | 428 - e2sim/previous/e2apv1sim/src/ASN1/lib/asn_x2ap.hpp | 72 - .../e2apv1sim/src/ASN1/lib/asn_x2ap_wrapper.hpp | 78 - .../e2apv1sim/src/ASN1/lib/e2ap_config.hpp | 160 - e2sim/previous/e2apv1sim/src/DEF/e2sim_defs.cpp | 125 - e2sim/previous/e2apv1sim/src/DEF/e2sim_defs.h | 65 - e2sim/previous/e2apv1sim/src/E2AP/E2SM/e2sm.c | 196 - e2sim/previous/e2apv1sim/src/E2AP/E2SM/e2sm.h | 30 - .../src/E2AP/XML/E2AP_ENDCX2SetupFailure.xml | 21 - .../src/E2AP/XML/E2AP_ENDCX2SetupRequest.xml | 67 - .../src/E2AP/XML/E2AP_ENDCX2SetupResponse.xml | 97 - .../src/E2AP/XML/E2AP_ErrorIndication.xml | 21 - .../src/E2AP/XML/E2AP_PartSetupRequest.xml | 1 - .../src/E2AP/XML/E2AP_PartSetupRequest.xml~ | 1 - .../src/E2AP/XML/E2AP_RICindication_type1.xml | 74 - .../src/E2AP/XML/E2AP_RICindication_type2.xml | 74 - .../src/E2AP/XML/E2AP_RICsubscriptionRequest.xml | 50 - .../XML/E2AP_RICsubscriptionRequest_Ashwin.xml | 50 - .../src/E2AP/XML/E2AP_RICsubscriptionResponse.xml | 46 - .../src/E2AP/XML/E2AP_ResourceStatusFailure.xml | 35 - .../src/E2AP/XML/E2AP_ResourceStatusRequest.xml | 85 - .../E2AP/XML/E2AP_ResourceStatusRequest_bad.xml | 85 - .../src/E2AP/XML/E2AP_ResourceStatusResponse.xml | 134 - .../src/E2AP/XML/E2AP_ResourceStatusUpdate.xml | 66 - .../e2apv1sim/src/E2AP/XML/E2AP_SetupRequest.xml | 1 - .../e2apv1sim/src/E2AP/XML/E2AP_SetupRequest.xml~ | 1 - .../e2apv1sim/src/E2AP/XML/E2AP_SetupRequest2.xml | 30 - .../e2apv1sim/src/E2AP/XML/E2AP_X2SetupFailure.xml | 21 - .../e2apv1sim/src/E2AP/XML/E2AP_X2SetupRequest.xml | 57 - .../src/E2AP/XML/E2AP_X2SetupResponse.xml | 97 - .../e2apv1sim/src/E2AP/XML/GlobalE2node-ID.xml | 12 - .../e2apv1sim/src/E2AP/XML/reference_constants.txt | 16 - .../previous/e2apv1sim/src/E2AP/e2ap_asn1c_codec.c | 229 - .../previous/e2apv1sim/src/E2AP/e2ap_asn1c_codec.h | 48 - .../e2apv1sim/src/E2AP/e2ap_message_handler.cpp | 290 - .../e2apv1sim/src/E2AP/e2ap_message_handler.hpp | 47 - e2sim/previous/e2apv1sim/src/SCTP/e2sim_sctp.c | 173 - e2sim/previous/e2apv1sim/src/SCTP/e2sim_sctp.cpp | 297 - e2sim/previous/e2apv1sim/src/SCTP/e2sim_sctp.h | 39 - e2sim/previous/e2apv1sim/src/SCTP/e2sim_sctp.hpp | 39 - .../MESSAGES/XML/sample_endc_x2_setup_failure.xml | 21 - .../MESSAGES/XML/sample_endc_x2_setup_request.xml | 67 - .../MESSAGES/XML/sample_endc_x2_setup_response.xml | 36 - .../X2AP/MESSAGES/XML/sample_x2_setup_failure.xml | 21 - .../X2AP/MESSAGES/XML/sample_x2_setup_request.xml | 57 - .../X2AP/MESSAGES/XML/sample_x2_setup_response.xml | 69 - e2sim/previous/e2apv1sim/src/X2AP/x2ap_asn_codec.c | 64 - .../previous/e2apv1sim/src/X2AP/x2ap_asn_codec.cpp | 59 - e2sim/previous/e2apv1sim/src/X2AP/x2ap_asn_codec.h | 30 - .../previous/e2apv1sim/src/X2AP/x2ap_asn_codec.hpp | 34 - .../e2apv1sim/src/X2AP/x2ap_generate_messages.c | 113 - .../e2apv1sim/src/X2AP/x2ap_generate_messages.h | 31 - .../e2apv1sim/src/X2AP/x2ap_message_handler.c | 139 - .../e2apv1sim/src/X2AP/x2ap_message_handler.cpp | 128 - .../e2apv1sim/src/X2AP/x2ap_message_handler.h | 30 - .../e2apv1sim/src/X2AP/x2ap_message_handler.hpp | 35 - e2sim/previous/e2apv1sim/test/Misc/CMakeLists.txt | 86 - e2sim/previous/e2apv1sim/test/Misc/test_asn1c.cpp | 79 - .../e2apv1sim/test/Pendulum/Pendulum_asn_codec.c | 180 - .../e2apv1sim/test/Pendulum/Pendulum_asn_codec.h | 46 - .../test/Pendulum/Serial/adruino_serial.c | 98 - .../test/Pendulum/Serial/adruino_serial.h | 40 - .../test/Pendulum/Serial/arduino-serial-lib.c | 170 - .../test/Pendulum/Serial/arduino-serial-lib.h | 39 - .../e2apv1sim/test/Pendulum/demo_setup.txt | 14 - .../e2apv1sim/test/Pendulum/e2sim_closedloop.c | 263 - .../e2apv1sim/test/Pendulum/e2sim_serial.c | 56 - .../e2apv1sim/test/Pendulum/e2sim_test_client.c | 378 - .../e2apv1sim/test/Pendulum/e2termination_test.cpp | 223 - .../previous/e2apv1sim/test/Pendulum/pendulum.asn1 | 12 - e2sim/previous/e2apv1sim/test/WLG/CMakeLists.txt | 59 - e2sim/previous/e2apv1sim/test/WLG/build_wlg.sh | 27 - e2sim/previous/e2apv1sim/test/WLG/ric_perf.cpp | 287 - e2sim/previous/e2apv1sim/test/WLG/ric_wlg.cpp | 61 - e2sim/previous/e2apv1sim/test/X2/CMakeLists.txt | 49 - e2sim/previous/e2apv1sim/test/X2/x2agent.cpp | 41 - e2sim/previous/e2apv1sim/test/X2/x2term.cpp | 73 - .../e2apv1sim/test/X2/x2termination_test.cpp | 119 - e2sim/previous/e2apv1sim/test/rmr_interface/README | 13 - .../e2apv1sim/test/rmr_interface/rmr_install.sh | 28 - .../tests/receiver/build_and_run_recvr.sh | 30 - .../test/rmr_interface/tests/receiver/rmr_rcvr.c | 163 - .../tests/sender/build_and_run_sender.sh | 29 - .../test/rmr_interface/tests/sender/rmr_sender.c | 96 - .../test/rmr_interface/tests/sender/rmr_wrapper.h | 142 - .../tools/asn_defs/generate_e2ap_e2sm_codes | 39 - e2sim/previous/e2apv1sim/tools/build_helper.bash | 93 - e2sim/previous/e2apv1sim/tools/install_asn1c | 31 - .../previous/e2apv1sim/tools/install_dependencies | 38 - e2sim/previous/e2apv1sim/ueMeasReport.txt | 65 - e2sim/previous/e2sim.cpp | 56 - e2sim/previous/helm/README.md | 22 - e2sim/previous/helm/e2sim/Chart.yaml | 22 - e2sim/previous/helm/e2sim/templates/_helpers.tpl | 49 - .../helm/e2sim/templates/bin/_e2sim-run.sh.tpl | 54 - .../helm/e2sim/templates/configmap-e2sim-bin.yaml | 8 - .../previous/helm/e2sim/templates/deployment.yaml | 79 - e2sim/previous/helm/e2sim/values.yaml | 48 - e2sim/previous/helm/e2sim_install.sh | 78 - e2sim/previous/ricsim.cpp | 89 - e2sim/previous/src/ASN1/asn/asn.hpp | 27 - e2sim/previous/src/ASN1/asn/ber/codec.hpp | 931 - e2sim/previous/src/ASN1/asn/ber/common.hpp | 51 - e2sim/previous/src/ASN1/asn/ber/context.hpp | 118 - e2sim/previous/src/ASN1/asn/ber/length.hpp | 103 - e2sim/previous/src/ASN1/asn/ber/opentype.hpp | 73 - e2sim/previous/src/ASN1/asn/ber/tag.hpp | 163 - e2sim/previous/src/ASN1/asn/ber/tools.hpp | 68 - e2sim/previous/src/ASN1/asn/ber/visitor.hpp | 177 - e2sim/previous/src/ASN1/asn/buffer.hpp | 689 - e2sim/previous/src/ASN1/asn/chunked_allocator.hpp | 84 - e2sim/previous/src/ASN1/asn/constraints.hpp | 140 - e2sim/previous/src/ASN1/asn/elements.hpp | 565 - e2sim/previous/src/ASN1/asn/error_context.hpp | 267 - e2sim/previous/src/ASN1/asn/identifier.hpp | 97 - e2sim/previous/src/ASN1/asn/per/binary_integer.hpp | 168 - e2sim/previous/src/ASN1/asn/per/bstring.hpp | 279 - e2sim/previous/src/ASN1/asn/per/choice.hpp | 136 - e2sim/previous/src/ASN1/asn/per/codec.hpp | 325 - e2sim/previous/src/ASN1/asn/per/common.hpp | 58 - e2sim/previous/src/ASN1/asn/per/context.hpp | 154 - e2sim/previous/src/ASN1/asn/per/enumerated.hpp | 79 - e2sim/previous/src/ASN1/asn/per/integer.hpp | 154 - e2sim/previous/src/ASN1/asn/per/length.hpp | 238 - e2sim/previous/src/ASN1/asn/per/oid.hpp | 68 - e2sim/previous/src/ASN1/asn/per/ostring.hpp | 209 - e2sim/previous/src/ASN1/asn/per/sequence.hpp | 568 - e2sim/previous/src/ASN1/asn/per/sequence_of.hpp | 156 - e2sim/previous/src/ASN1/asn/per/visitor.hpp | 141 - e2sim/previous/src/ASN1/asn/per/whole_number.hpp | 147 - e2sim/previous/src/ASN1/asn/printer.hpp | 338 - e2sim/previous/src/ASN1/asn/type_defs.h | 36 - e2sim/previous/src/ASN1/asn/utility.hpp | 88 - e2sim/previous/src/ASN1/asn/value_traits.hpp | 187 - e2sim/previous/src/ASN1/asn/variant.hpp | 146 - e2sim/previous/src/ASN1/asn/version.hpp | 27 - .../previous/src/ASN1/generated/E2AP-Constants.hpp | 244 - e2sim/previous/src/ASN1/generated/E2AP-IEs.hpp | 568 - .../src/ASN1/generated/E2AP-PDU-Contents.hpp | 5512 -- .../src/ASN1/generated/E2AP-PDU-Descriptions.hpp | 980 - .../src/ASN1/generated/X2AP-CommonDataTypes.hpp | 188 - .../previous/src/ASN1/generated/X2AP-Constants.hpp | 2054 - .../src/ASN1/generated/X2AP-Containers.hpp | 700 - e2sim/previous/src/ASN1/generated/X2AP-IEs.hpp | 35962 ---------- .../src/ASN1/generated/X2AP-PDU-Contents.hpp | 68476 ------------------- .../src/ASN1/generated/X2AP-PDU-Descriptions.hpp | 1537 - e2sim/previous/src/ASN1/lib/asn_e2ap.cpp | 982 - e2sim/previous/src/ASN1/lib/asn_e2ap.hpp | 85 - e2sim/previous/src/ASN1/lib/asn_e2ap_wrapper.hpp | 85 - e2sim/previous/src/ASN1/lib/asn_x2ap.cpp | 428 - e2sim/previous/src/ASN1/lib/asn_x2ap.hpp | 72 - e2sim/previous/src/ASN1/lib/asn_x2ap_wrapper.hpp | 78 - e2sim/previous/src/ASN1/lib/e2ap_config.hpp | 160 - e2sim/previous/src/DEF/e2sim_defs.cpp | 125 - e2sim/previous/src/DEF/e2sim_defs.h | 65 - e2sim/previous/src/E2AP/E2SM/e2sm.c | 196 - e2sim/previous/src/E2AP/E2SM/e2sm.h | 30 - .../src/E2AP/XML/E2AP_ENDCX2SetupFailure.xml | 21 - .../src/E2AP/XML/E2AP_ENDCX2SetupRequest.xml | 67 - .../src/E2AP/XML/E2AP_ENDCX2SetupResponse.xml | 97 - .../previous/src/E2AP/XML/E2AP_ErrorIndication.xml | 21 - .../src/E2AP/XML/E2AP_RICindication_type1.xml | 74 - .../src/E2AP/XML/E2AP_RICindication_type2.xml | 74 - .../src/E2AP/XML/E2AP_RICsubscriptionRequest.xml | 50 - .../XML/E2AP_RICsubscriptionRequest_Ashwin.xml | 50 - .../src/E2AP/XML/E2AP_RICsubscriptionResponse.xml | 46 - .../src/E2AP/XML/E2AP_ResourceStatusFailure.xml | 35 - .../src/E2AP/XML/E2AP_ResourceStatusRequest.xml | 85 - .../E2AP/XML/E2AP_ResourceStatusRequest_bad.xml | 85 - .../src/E2AP/XML/E2AP_ResourceStatusResponse.xml | 134 - .../src/E2AP/XML/E2AP_ResourceStatusUpdate.xml | 66 - .../previous/src/E2AP/XML/E2AP_X2SetupFailure.xml | 21 - .../previous/src/E2AP/XML/E2AP_X2SetupRequest.xml | 57 - .../previous/src/E2AP/XML/E2AP_X2SetupResponse.xml | 97 - .../previous/src/E2AP/XML/reference_constants.txt | 16 - e2sim/previous/src/E2AP/e2ap_asn1c_codec.c | 143 - e2sim/previous/src/E2AP/e2ap_asn1c_codec.h | 44 - e2sim/previous/src/E2AP/e2ap_message_handler.cpp | 388 - e2sim/previous/src/E2AP/e2ap_message_handler.hpp | 43 - e2sim/previous/src/SCTP/e2sim_sctp.c | 173 - e2sim/previous/src/SCTP/e2sim_sctp.cpp | 289 - e2sim/previous/src/SCTP/e2sim_sctp.h | 39 - e2sim/previous/src/SCTP/e2sim_sctp.hpp | 39 - .../MESSAGES/XML/sample_endc_x2_setup_failure.xml | 21 - .../MESSAGES/XML/sample_endc_x2_setup_request.xml | 67 - .../MESSAGES/XML/sample_endc_x2_setup_response.xml | 36 - .../X2AP/MESSAGES/XML/sample_x2_setup_failure.xml | 21 - .../X2AP/MESSAGES/XML/sample_x2_setup_request.xml | 57 - .../X2AP/MESSAGES/XML/sample_x2_setup_response.xml | 69 - e2sim/previous/src/X2AP/x2ap_asn_codec.c | 64 - e2sim/previous/src/X2AP/x2ap_asn_codec.cpp | 59 - e2sim/previous/src/X2AP/x2ap_asn_codec.h | 30 - e2sim/previous/src/X2AP/x2ap_asn_codec.hpp | 34 - e2sim/previous/src/X2AP/x2ap_generate_messages.c | 113 - e2sim/previous/src/X2AP/x2ap_generate_messages.h | 31 - e2sim/previous/src/X2AP/x2ap_message_handler.c | 139 - e2sim/previous/src/X2AP/x2ap_message_handler.cpp | 128 - e2sim/previous/src/X2AP/x2ap_message_handler.h | 30 - e2sim/previous/src/X2AP/x2ap_message_handler.hpp | 35 - e2sim/previous/test/Misc/CMakeLists.txt | 86 - e2sim/previous/test/Misc/test_asn1c.cpp | 79 - e2sim/previous/test/Pendulum/Pendulum_asn_codec.c | 180 - e2sim/previous/test/Pendulum/Pendulum_asn_codec.h | 46 - .../previous/test/Pendulum/Serial/adruino_serial.c | 98 - .../previous/test/Pendulum/Serial/adruino_serial.h | 40 - .../test/Pendulum/Serial/arduino-serial-lib.c | 170 - .../test/Pendulum/Serial/arduino-serial-lib.h | 39 - e2sim/previous/test/Pendulum/demo_setup.txt | 14 - e2sim/previous/test/Pendulum/e2sim_closedloop.c | 263 - e2sim/previous/test/Pendulum/e2sim_serial.c | 56 - e2sim/previous/test/Pendulum/e2sim_test_client.c | 378 - .../previous/test/Pendulum/e2termination_test.cpp | 223 - e2sim/previous/test/Pendulum/pendulum.asn1 | 12 - e2sim/previous/test/WLG/CMakeLists.txt | 59 - e2sim/previous/test/WLG/build_wlg.sh | 27 - e2sim/previous/test/WLG/ric_perf.cpp | 287 - e2sim/previous/test/WLG/ric_wlg.cpp | 61 - e2sim/previous/test/X2/CMakeLists.txt | 49 - e2sim/previous/test/X2/x2agent.cpp | 41 - e2sim/previous/test/X2/x2term.cpp | 73 - e2sim/previous/test/X2/x2termination_test.cpp | 119 - e2sim/previous/test/rmr_interface/README | 13 - e2sim/previous/test/rmr_interface/rmr_install.sh | 28 - .../tests/receiver/build_and_run_recvr.sh | 30 - .../test/rmr_interface/tests/receiver/rmr_rcvr.c | 163 - .../tests/sender/build_and_run_sender.sh | 29 - .../test/rmr_interface/tests/sender/rmr_sender.c | 96 - .../test/rmr_interface/tests/sender/rmr_wrapper.h | 142 - .../tools/asn_defs/generate_e2ap_e2sm_codes | 39 - e2sim/previous/tools/build_helper.bash | 93 - e2sim/previous/tools/install_asn1c | 31 - e2sim/previous/tools/install_dependencies | 38 - e2sim/src/ASN1c/AMFName.c | 106 + e2sim/src/ASN1c/AMFName.h | 44 + e2sim/src/ASN1c/BIT_STRING_oer.c | 174 - e2sim/src/ASN1c/Cause.c | 36 +- e2sim/src/ASN1c/Cause.h | 13 +- e2sim/src/ASN1c/CauseE2node.c | 53 + e2sim/src/ASN1c/CauseE2node.h | 53 + e2sim/src/ASN1c/CauseMisc.c | 4 +- e2sim/src/ASN1c/CauseMisc.h | 4 +- e2sim/src/ASN1c/CauseProtocol.c | 4 +- e2sim/src/ASN1c/CauseProtocol.h | 4 +- e2sim/src/ASN1c/CauseRIC.c | 73 - e2sim/src/ASN1c/CauseRIC.h | 63 - e2sim/src/ASN1c/CauseRICrequest.c | 79 + e2sim/src/ASN1c/CauseRICrequest.h | 66 + e2sim/src/ASN1c/CauseRICservice.c | 8 +- e2sim/src/ASN1c/CauseRICservice.h | 6 +- e2sim/src/ASN1c/CauseTransport.c | 4 +- e2sim/src/ASN1c/CauseTransport.h | 4 +- e2sim/src/ASN1c/Criticality.c | 4 +- e2sim/src/ASN1c/Criticality.h | 4 +- e2sim/src/ASN1c/CriticalityDiagnostics-IE-Item.c | 4 +- e2sim/src/ASN1c/CriticalityDiagnostics-IE-Item.h | 4 +- e2sim/src/ASN1c/CriticalityDiagnostics-IE-List.c | 4 +- e2sim/src/ASN1c/CriticalityDiagnostics-IE-List.h | 4 +- e2sim/src/ASN1c/CriticalityDiagnostics.c | 8 +- e2sim/src/ASN1c/CriticalityDiagnostics.h | 6 +- e2sim/src/ASN1c/E2AP-PDU.c | 4 +- e2sim/src/ASN1c/E2AP-PDU.h | 4 +- e2sim/src/ASN1c/E2connectionSetupFailed-Item.c | 8 +- e2sim/src/ASN1c/E2connectionSetupFailed-Item.h | 6 +- e2sim/src/ASN1c/E2connectionSetupFailed-List.c | 12 +- e2sim/src/ASN1c/E2connectionSetupFailed-List.h | 7 +- e2sim/src/ASN1c/E2connectionUpdate-Item.c | 8 +- e2sim/src/ASN1c/E2connectionUpdate-Item.h | 6 +- e2sim/src/ASN1c/E2connectionUpdate-List.c | 12 +- e2sim/src/ASN1c/E2connectionUpdate-List.h | 7 +- e2sim/src/ASN1c/E2connectionUpdate.c | 6 +- e2sim/src/ASN1c/E2connectionUpdate.h | 6 +- e2sim/src/ASN1c/E2connectionUpdateAcknowledge.c | 6 +- e2sim/src/ASN1c/E2connectionUpdateAcknowledge.h | 6 +- e2sim/src/ASN1c/E2connectionUpdateFailure.c | 6 +- e2sim/src/ASN1c/E2connectionUpdateFailure.h | 6 +- e2sim/src/ASN1c/E2connectionUpdateRemove-Item.c | 8 +- e2sim/src/ASN1c/E2connectionUpdateRemove-Item.h | 6 +- e2sim/src/ASN1c/E2connectionUpdateRemove-List.c | 12 +- e2sim/src/ASN1c/E2connectionUpdateRemove-List.h | 7 +- .../src/ASN1c/E2nodeComponentConfigAddition-Item.c | 70 + .../src/ASN1c/E2nodeComponentConfigAddition-Item.h | 46 + .../src/ASN1c/E2nodeComponentConfigAddition-List.c | 50 + .../src/ASN1c/E2nodeComponentConfigAddition-List.h | 41 + .../ASN1c/E2nodeComponentConfigAdditionAck-Item.c | 70 + .../ASN1c/E2nodeComponentConfigAdditionAck-Item.h | 46 + .../ASN1c/E2nodeComponentConfigAdditionAck-List.c | 50 + .../ASN1c/E2nodeComponentConfigAdditionAck-List.h | 41 + .../src/ASN1c/E2nodeComponentConfigRemoval-Item.c | 60 + .../src/ASN1c/E2nodeComponentConfigRemoval-Item.h | 44 + .../src/ASN1c/E2nodeComponentConfigRemoval-List.c | 50 + .../src/ASN1c/E2nodeComponentConfigRemoval-List.h | 41 + .../ASN1c/E2nodeComponentConfigRemovalAck-Item.c | 70 + .../ASN1c/E2nodeComponentConfigRemovalAck-Item.h | 46 + .../ASN1c/E2nodeComponentConfigRemovalAck-List.c | 50 + .../ASN1c/E2nodeComponentConfigRemovalAck-List.h | 41 + e2sim/src/ASN1c/E2nodeComponentConfigUpdate-Item.c | 33 +- e2sim/src/ASN1c/E2nodeComponentConfigUpdate-Item.h | 20 +- e2sim/src/ASN1c/E2nodeComponentConfigUpdate-List.c | 12 +- e2sim/src/ASN1c/E2nodeComponentConfigUpdate-List.h | 7 +- e2sim/src/ASN1c/E2nodeComponentConfigUpdate.c | 86 - e2sim/src/ASN1c/E2nodeComponentConfigUpdate.h | 67 - .../ASN1c/E2nodeComponentConfigUpdateAck-Item.c | 31 +- .../ASN1c/E2nodeComponentConfigUpdateAck-Item.h | 20 +- .../ASN1c/E2nodeComponentConfigUpdateAck-List.c | 12 +- .../ASN1c/E2nodeComponentConfigUpdateAck-List.h | 7 +- e2sim/src/ASN1c/E2nodeComponentConfigUpdateAck.c | 111 - e2sim/src/ASN1c/E2nodeComponentConfigUpdateAck.h | 58 - e2sim/src/ASN1c/E2nodeComponentConfigUpdateENB.c | 62 - e2sim/src/ASN1c/E2nodeComponentConfigUpdateENB.h | 45 - e2sim/src/ASN1c/E2nodeComponentConfigUpdateENgNB.c | 52 - e2sim/src/ASN1c/E2nodeComponentConfigUpdateENgNB.h | 44 - e2sim/src/ASN1c/E2nodeComponentConfigUpdateGNB.c | 82 - e2sim/src/ASN1c/E2nodeComponentConfigUpdateGNB.h | 47 - e2sim/src/ASN1c/E2nodeComponentConfigUpdateNGeNB.c | 62 - e2sim/src/ASN1c/E2nodeComponentConfigUpdateNGeNB.h | 45 - e2sim/src/ASN1c/E2nodeComponentConfiguration.c | 60 + e2sim/src/ASN1c/E2nodeComponentConfiguration.h | 45 + e2sim/src/ASN1c/E2nodeComponentConfigurationAck.c | 111 + e2sim/src/ASN1c/E2nodeComponentConfigurationAck.h | 58 + e2sim/src/ASN1c/E2nodeComponentGNB-CU-UP-ID.c | 50 - e2sim/src/ASN1c/E2nodeComponentGNB-CU-UP-ID.h | 44 - e2sim/src/ASN1c/E2nodeComponentGNB-DU-ID.c | 50 - e2sim/src/ASN1c/E2nodeComponentGNB-DU-ID.h | 44 - e2sim/src/ASN1c/E2nodeComponentID.c | 87 +- e2sim/src/ASN1c/E2nodeComponentID.h | 33 +- e2sim/src/ASN1c/E2nodeComponentInterfaceE1.c | 50 + e2sim/src/ASN1c/E2nodeComponentInterfaceE1.h | 44 + e2sim/src/ASN1c/E2nodeComponentInterfaceF1.c | 50 + e2sim/src/ASN1c/E2nodeComponentInterfaceF1.h | 44 + e2sim/src/ASN1c/E2nodeComponentInterfaceNG.c | 50 + e2sim/src/ASN1c/E2nodeComponentInterfaceNG.h | 44 + e2sim/src/ASN1c/E2nodeComponentInterfaceS1.c | 50 + e2sim/src/ASN1c/E2nodeComponentInterfaceS1.h | 44 + e2sim/src/ASN1c/E2nodeComponentInterfaceType.c | 65 + e2sim/src/ASN1c/E2nodeComponentInterfaceType.h | 59 + e2sim/src/ASN1c/E2nodeComponentInterfaceW1.c | 50 + e2sim/src/ASN1c/E2nodeComponentInterfaceW1.h | 44 + e2sim/src/ASN1c/E2nodeComponentInterfaceX2.c | 64 + e2sim/src/ASN1c/E2nodeComponentInterfaceX2.h | 48 + e2sim/src/ASN1c/E2nodeComponentInterfaceXn.c | 50 + e2sim/src/ASN1c/E2nodeComponentInterfaceXn.h | 44 + e2sim/src/ASN1c/E2nodeComponentType.c | 63 - e2sim/src/ASN1c/E2nodeComponentType.h | 58 - e2sim/src/ASN1c/E2nodeConfigurationUpdate.c | 6 +- e2sim/src/ASN1c/E2nodeConfigurationUpdate.h | 6 +- .../ASN1c/E2nodeConfigurationUpdateAcknowledge.c | 6 +- .../ASN1c/E2nodeConfigurationUpdateAcknowledge.h | 6 +- e2sim/src/ASN1c/E2nodeConfigurationUpdateFailure.c | 6 +- e2sim/src/ASN1c/E2nodeConfigurationUpdateFailure.h | 6 +- e2sim/src/ASN1c/E2nodeTNLassociationRemoval-Item.c | 60 + e2sim/src/ASN1c/E2nodeTNLassociationRemoval-Item.h | 43 + e2sim/src/ASN1c/E2nodeTNLassociationRemoval-List.c | 50 + e2sim/src/ASN1c/E2nodeTNLassociationRemoval-List.h | 41 + e2sim/src/ASN1c/E2setupFailure.c | 6 +- e2sim/src/ASN1c/E2setupFailure.h | 6 +- e2sim/src/ASN1c/E2setupRequest.c | 6 +- e2sim/src/ASN1c/E2setupRequest.h | 6 +- e2sim/src/ASN1c/E2setupResponse.c | 6 +- e2sim/src/ASN1c/E2setupResponse.h | 6 +- e2sim/src/ASN1c/ENB-ID-Choice.c | 4 +- e2sim/src/ASN1c/ENB-ID-Choice.h | 4 +- e2sim/src/ASN1c/ENB-ID.c | 4 +- e2sim/src/ASN1c/ENB-ID.h | 4 +- e2sim/src/ASN1c/ENGNB-ID.c | 4 +- e2sim/src/ASN1c/ENGNB-ID.h | 4 +- e2sim/src/ASN1c/ErrorIndication.c | 6 +- e2sim/src/ASN1c/ErrorIndication.h | 6 +- e2sim/src/ASN1c/GNB-CU-UP-ID.c | 4 +- e2sim/src/ASN1c/GNB-CU-UP-ID.h | 4 +- e2sim/src/ASN1c/GNB-DU-ID.c | 4 +- e2sim/src/ASN1c/GNB-DU-ID.h | 4 +- e2sim/src/ASN1c/GNB-ID-Choice.c | 4 +- e2sim/src/ASN1c/GNB-ID-Choice.h | 4 +- e2sim/src/ASN1c/GlobalE2node-ID.c | 10 +- e2sim/src/ASN1c/GlobalE2node-ID.h | 7 +- e2sim/src/ASN1c/GlobalE2node-eNB-ID.c | 4 +- e2sim/src/ASN1c/GlobalE2node-eNB-ID.h | 4 +- e2sim/src/ASN1c/GlobalE2node-en-gNB-ID.c | 40 +- e2sim/src/ASN1c/GlobalE2node-en-gNB-ID.h | 12 +- e2sim/src/ASN1c/GlobalE2node-gNB-ID.c | 33 +- e2sim/src/ASN1c/GlobalE2node-gNB-ID.h | 10 +- e2sim/src/ASN1c/GlobalE2node-ng-eNB-ID.c | 37 +- e2sim/src/ASN1c/GlobalE2node-ng-eNB-ID.h | 12 +- e2sim/src/ASN1c/GlobalENB-ID.c | 4 +- e2sim/src/ASN1c/GlobalENB-ID.h | 4 +- e2sim/src/ASN1c/GlobalNG-RANNode-ID.c | 64 + e2sim/src/ASN1c/GlobalNG-RANNode-ID.h | 61 + e2sim/src/ASN1c/GlobalRIC-ID.c | 8 +- e2sim/src/ASN1c/GlobalRIC-ID.h | 6 +- e2sim/src/ASN1c/GlobalenGNB-ID.c | 4 +- e2sim/src/ASN1c/GlobalenGNB-ID.h | 4 +- e2sim/src/ASN1c/GlobalgNB-ID.c | 4 +- e2sim/src/ASN1c/GlobalgNB-ID.h | 4 +- e2sim/src/ASN1c/GlobalngeNB-ID.c | 4 +- e2sim/src/ASN1c/GlobalngeNB-ID.h | 4 +- e2sim/src/ASN1c/INTEGER_oer.c | 179 - e2sim/src/ASN1c/InitiatingMessage.c | 51 +- e2sim/src/ASN1c/InitiatingMessage.h | 9 +- e2sim/src/ASN1c/MMEname.c | 106 + e2sim/src/ASN1c/MMEname.h | 44 + e2sim/src/ASN1c/Makefile.am.asn1convert | 14 - e2sim/src/ASN1c/Makefile.am.libasncodec | 338 +- e2sim/src/ASN1c/NGENB-DU-ID.c | 67 + e2sim/src/ASN1c/NGENB-DU-ID.h | 44 + e2sim/src/ASN1c/NativeEnumerated_oer.c | 149 - e2sim/src/ASN1c/NativeInteger_oer.c | 99 - e2sim/src/ASN1c/OCTET_STRING_oer.c | 171 - e2sim/src/ASN1c/OPEN_TYPE_oer.c | 92 - e2sim/src/ASN1c/PLMN-Identity.c | 4 +- e2sim/src/ASN1c/PLMN-Identity.h | 4 +- e2sim/src/ASN1c/Presence.c | 4 +- e2sim/src/ASN1c/Presence.h | 4 +- e2sim/src/ASN1c/ProcedureCode.c | 4 +- e2sim/src/ASN1c/ProcedureCode.h | 5 +- e2sim/src/ASN1c/ProtocolIE-Container.c | 876 +- e2sim/src/ASN1c/ProtocolIE-Container.h | 327 +- e2sim/src/ASN1c/ProtocolIE-ContainerList.c | 4 +- e2sim/src/ASN1c/ProtocolIE-ContainerList.h | 4 +- e2sim/src/ASN1c/ProtocolIE-ContainerPair.c | 4 +- e2sim/src/ASN1c/ProtocolIE-ContainerPair.h | 4 +- e2sim/src/ASN1c/ProtocolIE-ContainerPairList.c | 4 +- e2sim/src/ASN1c/ProtocolIE-ContainerPairList.h | 4 +- e2sim/src/ASN1c/ProtocolIE-Field.c | 7231 +- e2sim/src/ASN1c/ProtocolIE-Field.h | 387 +- e2sim/src/ASN1c/ProtocolIE-FieldPair.c | 4 +- e2sim/src/ASN1c/ProtocolIE-FieldPair.h | 4 +- e2sim/src/ASN1c/ProtocolIE-ID.c | 4 +- e2sim/src/ASN1c/ProtocolIE-ID.h | 17 +- e2sim/src/ASN1c/ProtocolIE-SingleContainer.c | 350 +- e2sim/src/ASN1c/ProtocolIE-SingleContainer.h | 368 +- e2sim/src/ASN1c/RANfunction-Item.c | 16 +- e2sim/src/ASN1c/RANfunction-Item.h | 8 +- e2sim/src/ASN1c/RANfunctionDefinition.c | 4 +- e2sim/src/ASN1c/RANfunctionDefinition.h | 4 +- e2sim/src/ASN1c/RANfunctionID-Item.c | 8 +- e2sim/src/ASN1c/RANfunctionID-Item.h | 6 +- e2sim/src/ASN1c/RANfunctionID.c | 4 +- e2sim/src/ASN1c/RANfunctionID.h | 4 +- e2sim/src/ASN1c/RANfunctionIDcause-Item.c | 8 +- e2sim/src/ASN1c/RANfunctionIDcause-Item.h | 6 +- e2sim/src/ASN1c/RANfunctionOID.c | 4 +- e2sim/src/ASN1c/RANfunctionOID.h | 4 +- e2sim/src/ASN1c/RANfunctionRevision.c | 4 +- e2sim/src/ASN1c/RANfunctionRevision.h | 4 +- e2sim/src/ASN1c/RANfunctions-List.c | 14 +- e2sim/src/ASN1c/RANfunctions-List.h | 7 +- e2sim/src/ASN1c/RANfunctionsID-List.c | 14 +- e2sim/src/ASN1c/RANfunctionsID-List.h | 7 +- e2sim/src/ASN1c/RANfunctionsIDcause-List.c | 14 +- e2sim/src/ASN1c/RANfunctionsIDcause-List.h | 7 +- e2sim/src/ASN1c/RICaction-Admitted-Item.c | 8 +- e2sim/src/ASN1c/RICaction-Admitted-Item.h | 6 +- e2sim/src/ASN1c/RICaction-Admitted-List.c | 12 +- e2sim/src/ASN1c/RICaction-Admitted-List.h | 7 +- e2sim/src/ASN1c/RICaction-NotAdmitted-Item.c | 8 +- e2sim/src/ASN1c/RICaction-NotAdmitted-Item.h | 6 +- e2sim/src/ASN1c/RICaction-NotAdmitted-List.c | 12 +- e2sim/src/ASN1c/RICaction-NotAdmitted-List.h | 7 +- e2sim/src/ASN1c/RICaction-ToBeSetup-Item.c | 8 +- e2sim/src/ASN1c/RICaction-ToBeSetup-Item.h | 6 +- e2sim/src/ASN1c/RICactionDefinition.c | 4 +- e2sim/src/ASN1c/RICactionDefinition.h | 4 +- e2sim/src/ASN1c/RICactionID.c | 4 +- e2sim/src/ASN1c/RICactionID.h | 4 +- e2sim/src/ASN1c/RICactionType.c | 4 +- e2sim/src/ASN1c/RICactionType.h | 4 +- e2sim/src/ASN1c/RICactions-ToBeSetup-List.c | 6 +- e2sim/src/ASN1c/RICactions-ToBeSetup-List.h | 4 +- e2sim/src/ASN1c/RICcallProcessID.c | 4 +- e2sim/src/ASN1c/RICcallProcessID.h | 4 +- e2sim/src/ASN1c/RICcontrolAckRequest.c | 18 +- e2sim/src/ASN1c/RICcontrolAckRequest.h | 9 +- e2sim/src/ASN1c/RICcontrolAcknowledge.c | 6 +- e2sim/src/ASN1c/RICcontrolAcknowledge.h | 6 +- e2sim/src/ASN1c/RICcontrolFailure.c | 6 +- e2sim/src/ASN1c/RICcontrolFailure.h | 6 +- e2sim/src/ASN1c/RICcontrolHeader.c | 4 +- e2sim/src/ASN1c/RICcontrolHeader.h | 4 +- e2sim/src/ASN1c/RICcontrolMessage.c | 4 +- e2sim/src/ASN1c/RICcontrolMessage.h | 4 +- e2sim/src/ASN1c/RICcontrolOutcome.c | 4 +- e2sim/src/ASN1c/RICcontrolOutcome.h | 4 +- e2sim/src/ASN1c/RICcontrolRequest.c | 6 +- e2sim/src/ASN1c/RICcontrolRequest.h | 6 +- e2sim/src/ASN1c/RICcontrolStatus.c | 57 - e2sim/src/ASN1c/RICcontrolStatus.h | 55 - e2sim/src/ASN1c/RICeventTriggerDefinition.c | 4 +- e2sim/src/ASN1c/RICeventTriggerDefinition.h | 4 +- e2sim/src/ASN1c/RICindication.c | 6 +- e2sim/src/ASN1c/RICindication.h | 6 +- e2sim/src/ASN1c/RICindicationHeader.c | 4 +- e2sim/src/ASN1c/RICindicationHeader.h | 4 +- e2sim/src/ASN1c/RICindicationMessage.c | 4 +- e2sim/src/ASN1c/RICindicationMessage.h | 4 +- e2sim/src/ASN1c/RICindicationSN.c | 6 +- e2sim/src/ASN1c/RICindicationSN.h | 5 +- e2sim/src/ASN1c/RICindicationType.c | 8 +- e2sim/src/ASN1c/RICindicationType.h | 6 +- e2sim/src/ASN1c/RICrequestID.c | 4 +- e2sim/src/ASN1c/RICrequestID.h | 4 +- e2sim/src/ASN1c/RICserviceQuery.c | 6 +- e2sim/src/ASN1c/RICserviceQuery.h | 6 +- e2sim/src/ASN1c/RICserviceUpdate.c | 6 +- e2sim/src/ASN1c/RICserviceUpdate.h | 6 +- e2sim/src/ASN1c/RICserviceUpdateAcknowledge.c | 6 +- e2sim/src/ASN1c/RICserviceUpdateAcknowledge.h | 6 +- e2sim/src/ASN1c/RICserviceUpdateFailure.c | 6 +- e2sim/src/ASN1c/RICserviceUpdateFailure.h | 6 +- e2sim/src/ASN1c/RICsubscription-List-withCause.c | 50 + e2sim/src/ASN1c/RICsubscription-List-withCause.h | 41 + e2sim/src/ASN1c/RICsubscription-withCause-Item.c | 70 + e2sim/src/ASN1c/RICsubscription-withCause-Item.h | 46 + e2sim/src/ASN1c/RICsubscriptionDeleteFailure.c | 6 +- e2sim/src/ASN1c/RICsubscriptionDeleteFailure.h | 6 +- e2sim/src/ASN1c/RICsubscriptionDeleteRequest.c | 6 +- e2sim/src/ASN1c/RICsubscriptionDeleteRequest.h | 6 +- e2sim/src/ASN1c/RICsubscriptionDeleteRequired.c | 50 + e2sim/src/ASN1c/RICsubscriptionDeleteRequired.h | 44 + e2sim/src/ASN1c/RICsubscriptionDeleteResponse.c | 6 +- e2sim/src/ASN1c/RICsubscriptionDeleteResponse.h | 6 +- e2sim/src/ASN1c/RICsubscriptionDetails.c | 8 +- e2sim/src/ASN1c/RICsubscriptionDetails.h | 6 +- e2sim/src/ASN1c/RICsubscriptionFailure.c | 6 +- e2sim/src/ASN1c/RICsubscriptionFailure.h | 6 +- e2sim/src/ASN1c/RICsubscriptionRequest.c | 6 +- e2sim/src/ASN1c/RICsubscriptionRequest.h | 6 +- e2sim/src/ASN1c/RICsubscriptionResponse.c | 6 +- e2sim/src/ASN1c/RICsubscriptionResponse.h | 6 +- e2sim/src/ASN1c/RICsubsequentAction.c | 4 +- e2sim/src/ASN1c/RICsubsequentAction.h | 4 +- e2sim/src/ASN1c/RICsubsequentActionType.c | 4 +- e2sim/src/ASN1c/RICsubsequentActionType.h | 4 +- e2sim/src/ASN1c/RICtimeToWait.c | 80 +- e2sim/src/ASN1c/RICtimeToWait.h | 39 +- e2sim/src/ASN1c/ResetRequest.c | 6 +- e2sim/src/ASN1c/ResetRequest.h | 6 +- e2sim/src/ASN1c/ResetResponse.c | 6 +- e2sim/src/ASN1c/ResetResponse.h | 6 +- e2sim/src/ASN1c/SuccessfulOutcome.c | 15 +- e2sim/src/ASN1c/SuccessfulOutcome.h | 5 +- e2sim/src/ASN1c/TNLinformation.c | 4 +- e2sim/src/ASN1c/TNLinformation.h | 4 +- e2sim/src/ASN1c/TNLusage.c | 4 +- e2sim/src/ASN1c/TNLusage.h | 4 +- e2sim/src/ASN1c/TimeToWait.c | 8 +- e2sim/src/ASN1c/TimeToWait.h | 6 +- e2sim/src/ASN1c/TransactionID.c | 61 + e2sim/src/ASN1c/TransactionID.h | 43 + e2sim/src/ASN1c/TriggeringMessage.c | 4 +- e2sim/src/ASN1c/TriggeringMessage.h | 4 +- e2sim/src/ASN1c/TypeOfError.c | 4 +- e2sim/src/ASN1c/TypeOfError.h | 4 +- e2sim/src/ASN1c/UnsuccessfulOutcome.c | 15 +- e2sim/src/ASN1c/UnsuccessfulOutcome.h | 5 +- e2sim/src/ASN1c/asn_constant.h | 1 + e2sim/src/ASN1c/constr_CHOICE_oer.c | 380 - e2sim/src/ASN1c/constr_SEQUENCE_oer.c | 561 - e2sim/src/ASN1c/constr_SET_OF_oer.c | 285 - e2sim/src/ASN1c/converter-example.mk | 33 - e2sim/src/ASN1c/oer_decoder.c | 152 - e2sim/src/ASN1c/oer_decoder.h | 72 - e2sim/src/ASN1c/oer_encoder.c | 141 - e2sim/src/ASN1c/oer_encoder.h | 70 - e2sim/src/ASN1c/oer_support.c | 122 - e2sim/src/ASN1c/oer_support.h | 47 - e2sim/src/ASN1c/pdu_collection.c | 15 - e2sim/src/base/e2sim.cpp | 4 +- e2sim/src/encoding/encode_e2apv1.cpp | 113 +- e2sim/src/encoding/encode_e2apv1.hpp | 2 + 4162 files changed, 22098 insertions(+), 982896 deletions(-) create mode 100644 e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/AMFName.c create mode 100644 e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/AMFName.h create mode 100644 e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CauseE2node.c create mode 100644 e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CauseE2node.h delete mode 100644 e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CauseRIC.c delete mode 100644 e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CauseRIC.h create mode 100644 e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CauseRICrequest.c create mode 100644 e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CauseRICrequest.h create mode 100644 e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigAddition-Item.c create mode 100644 e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigAddition-Item.h create mode 100644 e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigAddition-List.c create mode 100644 e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigAddition-List.h create mode 100644 e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigAdditionAck-Item.c create mode 100644 e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigAdditionAck-Item.h create mode 100644 e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigAdditionAck-List.c create mode 100644 e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigAdditionAck-List.h create mode 100644 e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigRemoval-Item.c create mode 100644 e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigRemoval-Item.h create mode 100644 e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigRemoval-List.c create mode 100644 e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigRemoval-List.h create mode 100644 e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigRemovalAck-Item.c create mode 100644 e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigRemovalAck-Item.h create mode 100644 e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigRemovalAck-List.c create mode 100644 e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigRemovalAck-List.h delete mode 100644 e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigUpdate.c delete mode 100644 e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigUpdate.h delete mode 100644 e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigUpdateAck.c delete mode 100644 e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigUpdateAck.h delete mode 100644 e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigUpdateENB.c delete mode 100644 e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigUpdateENB.h delete mode 100644 e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigUpdateENgNB.c delete mode 100644 e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigUpdateENgNB.h delete mode 100644 e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigUpdateGNB.c delete mode 100644 e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigUpdateGNB.h delete mode 100644 e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigUpdateNGeNB.c delete mode 100644 e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigUpdateNGeNB.h create mode 100644 e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfiguration.c create mode 100644 e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfiguration.h create mode 100644 e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigurationAck.c create mode 100644 e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigurationAck.h delete mode 100644 e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentGNB-CU-UP-ID.c delete mode 100644 e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentGNB-CU-UP-ID.h delete mode 100644 e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentGNB-DU-ID.c delete mode 100644 e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentGNB-DU-ID.h create mode 100644 e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentInterfaceE1.c create mode 100644 e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentInterfaceE1.h create mode 100644 e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentInterfaceF1.c create mode 100644 e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentInterfaceF1.h create mode 100644 e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentInterfaceNG.c create mode 100644 e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentInterfaceNG.h create mode 100644 e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentInterfaceS1.c create mode 100644 e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentInterfaceS1.h create mode 100644 e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentInterfaceType.c create mode 100644 e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentInterfaceType.h create mode 100644 e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentInterfaceW1.c create mode 100644 e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentInterfaceW1.h create mode 100644 e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentInterfaceX2.c create mode 100644 e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentInterfaceX2.h create mode 100644 e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentInterfaceXn.c create mode 100644 e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentInterfaceXn.h delete mode 100644 e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentType.c delete mode 100644 e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentType.h create mode 100644 e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeTNLassociationRemoval-Item.c create mode 100644 e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeTNLassociationRemoval-Item.h create mode 100644 e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeTNLassociationRemoval-List.c create mode 100644 e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeTNLassociationRemoval-List.h create mode 100644 e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalNG-RANNode-ID.c create mode 100644 e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalNG-RANNode-ID.h create mode 100644 e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/MMEname.c create mode 100644 e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/MMEname.h delete mode 100644 e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/Makefile.am.libasncodec create mode 100644 e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/NGENB-DU-ID.c create mode 100644 e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/NGENB-DU-ID.h delete mode 100644 e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICcontrolStatus.c delete mode 100644 e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICcontrolStatus.h create mode 100644 e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscription-List-withCause.c create mode 100644 e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscription-List-withCause.h create mode 100644 e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscription-withCause-Item.c create mode 100644 e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscription-withCause-Item.h create mode 100644 e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscriptionDeleteRequired.c create mode 100644 e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscriptionDeleteRequired.h create mode 100644 e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/TransactionID.c create mode 100644 e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/TransactionID.h create mode 100644 e2sim/files.txt delete mode 100644 e2sim/previous/ASN1c/ABS-Status.c delete mode 100644 e2sim/previous/ASN1c/ABS-Status.h delete mode 100644 e2sim/previous/ASN1c/ABSInformation.c delete mode 100644 e2sim/previous/ASN1c/ABSInformation.h delete mode 100644 e2sim/previous/ASN1c/ABSInformationFDD.c delete mode 100644 e2sim/previous/ASN1c/ABSInformationFDD.h delete mode 100644 e2sim/previous/ASN1c/ABSInformationTDD.c delete mode 100644 e2sim/previous/ASN1c/ABSInformationTDD.h delete mode 100644 e2sim/previous/ASN1c/ANY.c delete mode 100644 e2sim/previous/ASN1c/ANY.h delete mode 100644 e2sim/previous/ASN1c/AS-SecurityInformation.c delete mode 100644 e2sim/previous/ASN1c/AS-SecurityInformation.h delete mode 100644 e2sim/previous/ASN1c/ActionParameter-ID.c delete mode 100644 e2sim/previous/ASN1c/ActionParameter-ID.h delete mode 100644 e2sim/previous/ASN1c/ActionParameter-Item.c delete mode 100644 e2sim/previous/ASN1c/ActionParameter-Item.h delete mode 100644 e2sim/previous/ASN1c/ActionParameter-Value.c delete mode 100644 e2sim/previous/ASN1c/ActionParameter-Value.h delete mode 100644 e2sim/previous/ASN1c/ActivatedCellList-Item.c delete mode 100644 e2sim/previous/ASN1c/ActivatedCellList-Item.h delete mode 100644 e2sim/previous/ASN1c/ActivatedCellList.c delete mode 100644 e2sim/previous/ASN1c/ActivatedCellList.h delete mode 100644 e2sim/previous/ASN1c/ActivatedNRCellList-Item.c delete mode 100644 e2sim/previous/ASN1c/ActivatedNRCellList-Item.h delete mode 100644 e2sim/previous/ASN1c/ActivatedNRCellList.c delete mode 100644 e2sim/previous/ASN1c/ActivatedNRCellList.h delete mode 100644 e2sim/previous/ASN1c/ActivationID.c delete mode 100644 e2sim/previous/ASN1c/ActivationID.h delete mode 100644 e2sim/previous/ASN1c/AdditionalSpecialSubframe-Info.c delete mode 100644 e2sim/previous/ASN1c/AdditionalSpecialSubframe-Info.h delete mode 100644 e2sim/previous/ASN1c/AdditionalSpecialSubframeExtension-Info.c delete mode 100644 e2sim/previous/ASN1c/AdditionalSpecialSubframeExtension-Info.h delete mode 100644 e2sim/previous/ASN1c/AdditionalSpecialSubframePatterns.c delete mode 100644 e2sim/previous/ASN1c/AdditionalSpecialSubframePatterns.h delete mode 100644 e2sim/previous/ASN1c/AdditionalSpecialSubframePatternsExtension.c delete mode 100644 e2sim/previous/ASN1c/AdditionalSpecialSubframePatternsExtension.h delete mode 100644 e2sim/previous/ASN1c/AerialUEsubscriptionInformation.c delete mode 100644 e2sim/previous/ASN1c/AerialUEsubscriptionInformation.h delete mode 100644 e2sim/previous/ASN1c/AllocationAndRetentionPriority.c delete mode 100644 e2sim/previous/ASN1c/AllocationAndRetentionPriority.h delete mode 100644 e2sim/previous/ASN1c/AreaScopeOfMDT.c delete mode 100644 e2sim/previous/ASN1c/AreaScopeOfMDT.h delete mode 100644 e2sim/previous/ASN1c/AreaScopeOfQMC.c delete mode 100644 e2sim/previous/ASN1c/AreaScopeOfQMC.h delete mode 100644 e2sim/previous/ASN1c/BIT_STRING.c delete mode 100644 e2sim/previous/ASN1c/BIT_STRING.h delete mode 100644 e2sim/previous/ASN1c/BOOLEAN.c delete mode 100644 e2sim/previous/ASN1c/BOOLEAN.h delete mode 100644 e2sim/previous/ASN1c/BandInfo.c delete mode 100644 e2sim/previous/ASN1c/BandInfo.h delete mode 100644 e2sim/previous/ASN1c/BandwidthReducedSI.c delete mode 100644 e2sim/previous/ASN1c/BandwidthReducedSI.h delete mode 100644 e2sim/previous/ASN1c/BearerType.c delete mode 100644 e2sim/previous/ASN1c/BearerType.h delete mode 100644 e2sim/previous/ASN1c/BenefitMetric.c delete mode 100644 e2sim/previous/ASN1c/BenefitMetric.h delete mode 100644 e2sim/previous/ASN1c/BitRate.c delete mode 100644 e2sim/previous/ASN1c/BitRate.h delete mode 100644 e2sim/previous/ASN1c/BluetoothMeasConfig.c delete mode 100644 e2sim/previous/ASN1c/BluetoothMeasConfig.h delete mode 100644 e2sim/previous/ASN1c/BluetoothMeasConfigNameList.c delete mode 100644 e2sim/previous/ASN1c/BluetoothMeasConfigNameList.h delete mode 100644 e2sim/previous/ASN1c/BluetoothMeasurementConfiguration.c delete mode 100644 e2sim/previous/ASN1c/BluetoothMeasurementConfiguration.h delete mode 100644 e2sim/previous/ASN1c/BluetoothName.c delete mode 100644 e2sim/previous/ASN1c/BluetoothName.h delete mode 100644 e2sim/previous/ASN1c/BroadcastPLMNs-Item.c delete mode 100644 e2sim/previous/ASN1c/BroadcastPLMNs-Item.h delete mode 100644 e2sim/previous/ASN1c/CNTypeRestrictions.c delete mode 100644 e2sim/previous/ASN1c/CNTypeRestrictions.h delete mode 100644 e2sim/previous/ASN1c/CNTypeRestrictionsItem.c delete mode 100644 e2sim/previous/ASN1c/CNTypeRestrictionsItem.h delete mode 100644 e2sim/previous/ASN1c/COUNTValueExtended.c delete mode 100644 e2sim/previous/ASN1c/COUNTValueExtended.h delete mode 100644 e2sim/previous/ASN1c/COUNTvalue.c delete mode 100644 e2sim/previous/ASN1c/COUNTvalue.h delete mode 100644 e2sim/previous/ASN1c/COUNTvaluePDCP-SNlength18.c delete mode 100644 e2sim/previous/ASN1c/COUNTvaluePDCP-SNlength18.h delete mode 100644 e2sim/previous/ASN1c/CRNTI.c delete mode 100644 e2sim/previous/ASN1c/CRNTI.h delete mode 100644 e2sim/previous/ASN1c/CSG-Id.c delete mode 100644 e2sim/previous/ASN1c/CSG-Id.h delete mode 100644 e2sim/previous/ASN1c/CSGMembershipStatus.c delete mode 100644 e2sim/previous/ASN1c/CSGMembershipStatus.h delete mode 100644 e2sim/previous/ASN1c/CSIReportList.c delete mode 100644 e2sim/previous/ASN1c/CSIReportList.h delete mode 100644 e2sim/previous/ASN1c/CSIReportPerCSIProcess.c delete mode 100644 e2sim/previous/ASN1c/CSIReportPerCSIProcess.h delete mode 100644 e2sim/previous/ASN1c/CSIReportPerCSIProcessItem.c delete mode 100644 e2sim/previous/ASN1c/CSIReportPerCSIProcessItem.h delete mode 100644 e2sim/previous/ASN1c/CallProcess-ID.c delete mode 100644 e2sim/previous/ASN1c/CallProcess-ID.h delete mode 100644 e2sim/previous/ASN1c/CapacityValue.c delete mode 100644 e2sim/previous/ASN1c/CapacityValue.h delete mode 100644 e2sim/previous/ASN1c/Cause.c delete mode 100644 e2sim/previous/ASN1c/Cause.h delete mode 100644 e2sim/previous/ASN1c/CauseMisc.c delete mode 100644 e2sim/previous/ASN1c/CauseMisc.h delete mode 100644 e2sim/previous/ASN1c/CauseProtocol.c delete mode 100644 e2sim/previous/ASN1c/CauseProtocol.h delete mode 100644 e2sim/previous/ASN1c/CauseRIC.c delete mode 100644 e2sim/previous/ASN1c/CauseRIC.h delete mode 100644 e2sim/previous/ASN1c/CauseRadioNetwork.c delete mode 100644 e2sim/previous/ASN1c/CauseRadioNetwork.h delete mode 100644 e2sim/previous/ASN1c/CauseTransport.c delete mode 100644 e2sim/previous/ASN1c/CauseTransport.h delete mode 100644 e2sim/previous/ASN1c/Cell-Size.c delete mode 100644 e2sim/previous/ASN1c/Cell-Size.h delete mode 100644 e2sim/previous/ASN1c/CellActivationFailure.c delete mode 100644 e2sim/previous/ASN1c/CellActivationFailure.h delete mode 100644 e2sim/previous/ASN1c/CellActivationRequest.c delete mode 100644 e2sim/previous/ASN1c/CellActivationRequest.h delete mode 100644 e2sim/previous/ASN1c/CellActivationResponse.c delete mode 100644 e2sim/previous/ASN1c/CellActivationResponse.h delete mode 100644 e2sim/previous/ASN1c/CellAssistanceInformation.c delete mode 100644 e2sim/previous/ASN1c/CellAssistanceInformation.h delete mode 100644 e2sim/previous/ASN1c/CellBasedMDT.c delete mode 100644 e2sim/previous/ASN1c/CellBasedMDT.h delete mode 100644 e2sim/previous/ASN1c/CellBasedQMC.c delete mode 100644 e2sim/previous/ASN1c/CellBasedQMC.h delete mode 100644 e2sim/previous/ASN1c/CellCapacityClassValue.c delete mode 100644 e2sim/previous/ASN1c/CellCapacityClassValue.h delete mode 100644 e2sim/previous/ASN1c/CellDeploymentStatusIndicator.c delete mode 100644 e2sim/previous/ASN1c/CellDeploymentStatusIndicator.h delete mode 100644 e2sim/previous/ASN1c/CellIdListforMDT.c delete mode 100644 e2sim/previous/ASN1c/CellIdListforMDT.h delete mode 100644 e2sim/previous/ASN1c/CellIdListforQMC.c delete mode 100644 e2sim/previous/ASN1c/CellIdListforQMC.h delete mode 100644 e2sim/previous/ASN1c/CellInformation-Item.c delete mode 100644 e2sim/previous/ASN1c/CellInformation-Item.h delete mode 100644 e2sim/previous/ASN1c/CellInformation-List.c delete mode 100644 e2sim/previous/ASN1c/CellInformation-List.h delete mode 100644 e2sim/previous/ASN1c/CellMeasurementResult-Item.c delete mode 100644 e2sim/previous/ASN1c/CellMeasurementResult-Item.h delete mode 100644 e2sim/previous/ASN1c/CellMeasurementResult-List.c delete mode 100644 e2sim/previous/ASN1c/CellMeasurementResult-List.h delete mode 100644 e2sim/previous/ASN1c/CellReplacingInfo.c delete mode 100644 e2sim/previous/ASN1c/CellReplacingInfo.h delete mode 100644 e2sim/previous/ASN1c/CellReportingIndicator.c delete mode 100644 e2sim/previous/ASN1c/CellReportingIndicator.h delete mode 100644 e2sim/previous/ASN1c/CellToReport-Item.c delete mode 100644 e2sim/previous/ASN1c/CellToReport-Item.h delete mode 100644 e2sim/previous/ASN1c/CellToReport-List.c delete mode 100644 e2sim/previous/ASN1c/CellToReport-List.h delete mode 100644 e2sim/previous/ASN1c/CellType.c delete mode 100644 e2sim/previous/ASN1c/CellType.h delete mode 100644 e2sim/previous/ASN1c/CoMPHypothesisSet.c delete mode 100644 e2sim/previous/ASN1c/CoMPHypothesisSet.h delete mode 100644 e2sim/previous/ASN1c/CoMPHypothesisSetItem.c delete mode 100644 e2sim/previous/ASN1c/CoMPHypothesisSetItem.h delete mode 100644 e2sim/previous/ASN1c/CoMPInformation.c delete mode 100644 e2sim/previous/ASN1c/CoMPInformation.h delete mode 100644 e2sim/previous/ASN1c/CoMPInformationItem.c delete mode 100644 e2sim/previous/ASN1c/CoMPInformationItem.h delete mode 100644 e2sim/previous/ASN1c/CoMPInformationStartTime.c delete mode 100644 e2sim/previous/ASN1c/CoMPInformationStartTime.h delete mode 100644 e2sim/previous/ASN1c/CompleteFailureCauseInformation-Item.c delete mode 100644 e2sim/previous/ASN1c/CompleteFailureCauseInformation-Item.h delete mode 100644 e2sim/previous/ASN1c/CompleteFailureCauseInformation-List.c delete mode 100644 e2sim/previous/ASN1c/CompleteFailureCauseInformation-List.h delete mode 100644 e2sim/previous/ASN1c/CompositeAvailableCapacity.c delete mode 100644 e2sim/previous/ASN1c/CompositeAvailableCapacity.h delete mode 100644 e2sim/previous/ASN1c/CompositeAvailableCapacityGroup.c delete mode 100644 e2sim/previous/ASN1c/CompositeAvailableCapacityGroup.h delete mode 100644 e2sim/previous/ASN1c/Correlation-ID.c delete mode 100644 e2sim/previous/ASN1c/Correlation-ID.h delete mode 100644 e2sim/previous/ASN1c/CoverageModification-Item.c delete mode 100644 e2sim/previous/ASN1c/CoverageModification-Item.h delete mode 100644 e2sim/previous/ASN1c/CoverageModificationList.c delete mode 100644 e2sim/previous/ASN1c/CoverageModificationList.h delete mode 100644 e2sim/previous/ASN1c/Criticality.c delete mode 100644 e2sim/previous/ASN1c/Criticality.h delete mode 100644 e2sim/previous/ASN1c/CriticalityDiagnostics-IE-List.c delete mode 100644 e2sim/previous/ASN1c/CriticalityDiagnostics-IE-List.h delete mode 100644 e2sim/previous/ASN1c/CriticalityDiagnostics.c delete mode 100644 e2sim/previous/ASN1c/CriticalityDiagnostics.h delete mode 100644 e2sim/previous/ASN1c/CyclicPrefixDL.c delete mode 100644 e2sim/previous/ASN1c/CyclicPrefixDL.h delete mode 100644 e2sim/previous/ASN1c/CyclicPrefixUL.c delete mode 100644 e2sim/previous/ASN1c/CyclicPrefixUL.h delete mode 100644 e2sim/previous/ASN1c/DL-ABS-status.c delete mode 100644 e2sim/previous/ASN1c/DL-ABS-status.h delete mode 100644 e2sim/previous/ASN1c/DL-Forwarding.c delete mode 100644 e2sim/previous/ASN1c/DL-Forwarding.h delete mode 100644 e2sim/previous/ASN1c/DL-GBR-PRB-usage.c delete mode 100644 e2sim/previous/ASN1c/DL-GBR-PRB-usage.h delete mode 100644 e2sim/previous/ASN1c/DL-Total-PRB-usage.c delete mode 100644 e2sim/previous/ASN1c/DL-Total-PRB-usage.h delete mode 100644 e2sim/previous/ASN1c/DL-non-GBR-PRB-usage.c delete mode 100644 e2sim/previous/ASN1c/DL-non-GBR-PRB-usage.h delete mode 100644 e2sim/previous/ASN1c/DL-scheduling-PDCCH-CCE-usage.c delete mode 100644 e2sim/previous/ASN1c/DL-scheduling-PDCCH-CCE-usage.h delete mode 100644 e2sim/previous/ASN1c/DLResourceBitmapULandDLSharing.c delete mode 100644 e2sim/previous/ASN1c/DLResourceBitmapULandDLSharing.h delete mode 100644 e2sim/previous/ASN1c/DLResourcesULandDLSharing.c delete mode 100644 e2sim/previous/ASN1c/DLResourcesULandDLSharing.h delete mode 100644 e2sim/previous/ASN1c/DRB-ID.c delete mode 100644 e2sim/previous/ASN1c/DRB-ID.h delete mode 100644 e2sim/previous/ASN1c/DataForwardingAddressIndication.c delete mode 100644 e2sim/previous/ASN1c/DataForwardingAddressIndication.h delete mode 100644 e2sim/previous/ASN1c/DataTrafficResourceIndication.c delete mode 100644 e2sim/previous/ASN1c/DataTrafficResourceIndication.h delete mode 100644 e2sim/previous/ASN1c/DataTrafficResources.c delete mode 100644 e2sim/previous/ASN1c/DataTrafficResources.h delete mode 100644 e2sim/previous/ASN1c/DeactivationIndication.c delete mode 100644 e2sim/previous/ASN1c/DeactivationIndication.h delete mode 100644 e2sim/previous/ASN1c/DeliveryStatus.c delete mode 100644 e2sim/previous/ASN1c/DeliveryStatus.h delete mode 100644 e2sim/previous/ASN1c/DuplicationActivation.c delete mode 100644 e2sim/previous/ASN1c/DuplicationActivation.h delete mode 100644 e2sim/previous/ASN1c/DynamicDLTransmissionInformation.c delete mode 100644 e2sim/previous/ASN1c/DynamicDLTransmissionInformation.h delete mode 100644 e2sim/previous/ASN1c/DynamicNAICSInformation.c delete mode 100644 e2sim/previous/ASN1c/DynamicNAICSInformation.h delete mode 100644 e2sim/previous/ASN1c/E-RAB-ID.c delete mode 100644 e2sim/previous/ASN1c/E-RAB-ID.h delete mode 100644 e2sim/previous/ASN1c/E-RAB-Item.c delete mode 100644 e2sim/previous/ASN1c/E-RAB-Item.h delete mode 100644 e2sim/previous/ASN1c/E-RAB-Level-QoS-Parameters.c delete mode 100644 e2sim/previous/ASN1c/E-RAB-Level-QoS-Parameters.h delete mode 100644 e2sim/previous/ASN1c/E-RAB-List.c delete mode 100644 e2sim/previous/ASN1c/E-RAB-List.h delete mode 100644 e2sim/previous/ASN1c/E-RABUsageReport-Item.c delete mode 100644 e2sim/previous/ASN1c/E-RABUsageReport-Item.h delete mode 100644 e2sim/previous/ASN1c/E-RABUsageReportList.c delete mode 100644 e2sim/previous/ASN1c/E-RABUsageReportList.h delete mode 100644 e2sim/previous/ASN1c/E-RABs-Admitted-Item.c delete mode 100644 e2sim/previous/ASN1c/E-RABs-Admitted-Item.h delete mode 100644 e2sim/previous/ASN1c/E-RABs-Admitted-List.c delete mode 100644 e2sim/previous/ASN1c/E-RABs-Admitted-List.h delete mode 100644 e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-Item-SCG-Bearer.c delete mode 100644 e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-Item-SCG-Bearer.h delete mode 100644 e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-Item-Split-Bearer.c delete mode 100644 e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-Item-Split-Bearer.h delete mode 100644 e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-Item.c delete mode 100644 e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-Item.h delete mode 100644 e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-List.c delete mode 100644 e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-List.h delete mode 100644 e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-ModAckItem-SCG-Bearer.c delete mode 100644 e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-ModAckItem-SCG-Bearer.h delete mode 100644 e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-ModAckItem-Split-Bearer.c delete mode 100644 e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-ModAckItem-Split-Bearer.h delete mode 100644 e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-ModAckItem.c delete mode 100644 e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-ModAckItem.h delete mode 100644 e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-ModAckList.c delete mode 100644 e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-ModAckList.h delete mode 100644 e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPnotpresent.c delete mode 100644 e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPnotpresent.h delete mode 100644 e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPpresent.c delete mode 100644 e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPpresent.h delete mode 100644 e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item.c delete mode 100644 e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item.h delete mode 100644 e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-SgNBAddReqAckList.c delete mode 100644 e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-SgNBAddReqAckList.h delete mode 100644 e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPnotpresent.c delete mode 100644 e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPnotpresent.h delete mode 100644 e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPpresent.c delete mode 100644 e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPpresent.h delete mode 100644 e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-SgNBModAck-Item.c delete mode 100644 e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-SgNBModAck-Item.h delete mode 100644 e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-SgNBModAckList.c delete mode 100644 e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-SgNBModAckList.h delete mode 100644 e2sim/previous/ASN1c/E-RABs-Admitted-ToBeModified-ModAckItem-SCG-Bearer.c delete mode 100644 e2sim/previous/ASN1c/E-RABs-Admitted-ToBeModified-ModAckItem-SCG-Bearer.h delete mode 100644 e2sim/previous/ASN1c/E-RABs-Admitted-ToBeModified-ModAckItem-Split-Bearer.c delete mode 100644 e2sim/previous/ASN1c/E-RABs-Admitted-ToBeModified-ModAckItem-Split-Bearer.h delete mode 100644 e2sim/previous/ASN1c/E-RABs-Admitted-ToBeModified-ModAckItem.c delete mode 100644 e2sim/previous/ASN1c/E-RABs-Admitted-ToBeModified-ModAckItem.h delete mode 100644 e2sim/previous/ASN1c/E-RABs-Admitted-ToBeModified-ModAckList.c delete mode 100644 e2sim/previous/ASN1c/E-RABs-Admitted-ToBeModified-ModAckList.h delete mode 100644 e2sim/previous/ASN1c/E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPnotpresent.c delete mode 100644 e2sim/previous/ASN1c/E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPnotpresent.h delete mode 100644 e2sim/previous/ASN1c/E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPpresent.c delete mode 100644 e2sim/previous/ASN1c/E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPpresent.h delete mode 100644 e2sim/previous/ASN1c/E-RABs-Admitted-ToBeModified-SgNBModAck-Item.c delete mode 100644 e2sim/previous/ASN1c/E-RABs-Admitted-ToBeModified-SgNBModAck-Item.h delete mode 100644 e2sim/previous/ASN1c/E-RABs-Admitted-ToBeModified-SgNBModAckList.c delete mode 100644 e2sim/previous/ASN1c/E-RABs-Admitted-ToBeModified-SgNBModAckList.h delete mode 100644 e2sim/previous/ASN1c/E-RABs-Admitted-ToBeReleased-ModAckItem-SCG-Bearer.c delete mode 100644 e2sim/previous/ASN1c/E-RABs-Admitted-ToBeReleased-ModAckItem-SCG-Bearer.h delete mode 100644 e2sim/previous/ASN1c/E-RABs-Admitted-ToBeReleased-ModAckItem-Split-Bearer.c delete mode 100644 e2sim/previous/ASN1c/E-RABs-Admitted-ToBeReleased-ModAckItem-Split-Bearer.h delete mode 100644 e2sim/previous/ASN1c/E-RABs-Admitted-ToBeReleased-ModAckList.c delete mode 100644 e2sim/previous/ASN1c/E-RABs-Admitted-ToBeReleased-ModAckList.h delete mode 100644 e2sim/previous/ASN1c/E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPnotpresent.c delete mode 100644 e2sim/previous/ASN1c/E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPnotpresent.h delete mode 100644 e2sim/previous/ASN1c/E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPpresent.c delete mode 100644 e2sim/previous/ASN1c/E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPpresent.h delete mode 100644 e2sim/previous/ASN1c/E-RABs-Admitted-ToBeReleased-SgNBModAckList.c delete mode 100644 e2sim/previous/ASN1c/E-RABs-Admitted-ToBeReleased-SgNBModAckList.h delete mode 100644 e2sim/previous/ASN1c/E-RABs-Admitted-ToBeReleased-SgNBRelReqAck-Item.c delete mode 100644 e2sim/previous/ASN1c/E-RABs-Admitted-ToBeReleased-SgNBRelReqAck-Item.h delete mode 100644 e2sim/previous/ASN1c/E-RABs-Admitted-ToBeReleased-SgNBRelReqAckList.c delete mode 100644 e2sim/previous/ASN1c/E-RABs-Admitted-ToBeReleased-SgNBRelReqAckList.h delete mode 100644 e2sim/previous/ASN1c/E-RABs-Admitted-ToReleased-ModAckItem.c delete mode 100644 e2sim/previous/ASN1c/E-RABs-Admitted-ToReleased-ModAckItem.h delete mode 100644 e2sim/previous/ASN1c/E-RABs-Admitted-ToReleased-SgNBModAck-Item.c delete mode 100644 e2sim/previous/ASN1c/E-RABs-Admitted-ToReleased-SgNBModAck-Item.h delete mode 100644 e2sim/previous/ASN1c/E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPnotpresent.c delete mode 100644 e2sim/previous/ASN1c/E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPnotpresent.h delete mode 100644 e2sim/previous/ASN1c/E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPpresent.c delete mode 100644 e2sim/previous/ASN1c/E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPpresent.h delete mode 100644 e2sim/previous/ASN1c/E-RABs-AdmittedToBeModified-SgNBModConf-Item.c delete mode 100644 e2sim/previous/ASN1c/E-RABs-AdmittedToBeModified-SgNBModConf-Item.h delete mode 100644 e2sim/previous/ASN1c/E-RABs-AdmittedToBeModified-SgNBModConfList.c delete mode 100644 e2sim/previous/ASN1c/E-RABs-AdmittedToBeModified-SgNBModConfList.h delete mode 100644 e2sim/previous/ASN1c/E-RABs-DataForwardingAddress-Item.c delete mode 100644 e2sim/previous/ASN1c/E-RABs-DataForwardingAddress-Item.h delete mode 100644 e2sim/previous/ASN1c/E-RABs-DataForwardingAddress-List.c delete mode 100644 e2sim/previous/ASN1c/E-RABs-DataForwardingAddress-List.h delete mode 100644 e2sim/previous/ASN1c/E-RABs-SubjectToCounterCheck-List.c delete mode 100644 e2sim/previous/ASN1c/E-RABs-SubjectToCounterCheck-List.h delete mode 100644 e2sim/previous/ASN1c/E-RABs-SubjectToCounterCheckItem.c delete mode 100644 e2sim/previous/ASN1c/E-RABs-SubjectToCounterCheckItem.h delete mode 100644 e2sim/previous/ASN1c/E-RABs-SubjectToSgNBCounterCheck-Item.c delete mode 100644 e2sim/previous/ASN1c/E-RABs-SubjectToSgNBCounterCheck-Item.h delete mode 100644 e2sim/previous/ASN1c/E-RABs-SubjectToSgNBCounterCheck-List.c delete mode 100644 e2sim/previous/ASN1c/E-RABs-SubjectToSgNBCounterCheck-List.h delete mode 100644 e2sim/previous/ASN1c/E-RABs-SubjectToStatusTransfer-Item.c delete mode 100644 e2sim/previous/ASN1c/E-RABs-SubjectToStatusTransfer-Item.h delete mode 100644 e2sim/previous/ASN1c/E-RABs-SubjectToStatusTransfer-List.c delete mode 100644 e2sim/previous/ASN1c/E-RABs-SubjectToStatusTransfer-List.h delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeAdded-Item-SCG-Bearer.c delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeAdded-Item-SCG-Bearer.h delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeAdded-Item-Split-Bearer.c delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeAdded-Item-Split-Bearer.h delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeAdded-Item.c delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeAdded-Item.h delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeAdded-List-ModReq.c delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeAdded-List-ModReq.h delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeAdded-List.c delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeAdded-List.h delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeAdded-ModReqItem-SCG-Bearer.c delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeAdded-ModReqItem-SCG-Bearer.h delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeAdded-ModReqItem-Split-Bearer.c delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeAdded-ModReqItem-Split-Bearer.h delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeAdded-ModReqItem.c delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeAdded-ModReqItem.h delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPnotpresent.c delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPnotpresent.h delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPpresent.c delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPpresent.h delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeAdded-SgNBAddReq-Item.c delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeAdded-SgNBAddReq-Item.h delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeAdded-SgNBAddReqList.c delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeAdded-SgNBAddReqList.h delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPnotpresent.c delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPnotpresent.h delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPpresent.c delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPpresent.h delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeAdded-SgNBModReq-Item.c delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeAdded-SgNBModReq-Item.h delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeAdded-SgNBModReq-List.c delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeAdded-SgNBModReq-List.h delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeModified-List-ModReq.c delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeModified-List-ModReq.h delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeModified-ModReqItem-SCG-Bearer.c delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeModified-ModReqItem-SCG-Bearer.h delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeModified-ModReqItem-Split-Bearer.c delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeModified-ModReqItem-Split-Bearer.h delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeModified-ModReqItem.c delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeModified-ModReqItem.h delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPnotpresent.c delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPnotpresent.h delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPpresent.c delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPpresent.h delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeModified-SgNBModReq-Item.c delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeModified-SgNBModReq-Item.h delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeModified-SgNBModReq-List.c delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeModified-SgNBModReq-List.h delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPnotpresent.c delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPnotpresent.h delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPpresent.c delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPpresent.h delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeModified-SgNBModReqd-Item.c delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeModified-SgNBModReqd-Item.h delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeModified-SgNBModReqdList.c delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeModified-SgNBModReqdList.h delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeReleased-List-ModReq.c delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeReleased-List-ModReq.h delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeReleased-List-RelConf.c delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeReleased-List-RelConf.h delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeReleased-List-RelReq.c delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeReleased-List-RelReq.h delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeReleased-ModReqItem-SCG-Bearer.c delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeReleased-ModReqItem-SCG-Bearer.h delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeReleased-ModReqItem-Split-Bearer.c delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeReleased-ModReqItem-Split-Bearer.h delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeReleased-ModReqItem.c delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeReleased-ModReqItem.h delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeReleased-ModReqd.c delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeReleased-ModReqd.h delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeReleased-ModReqdItem.c delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeReleased-ModReqdItem.h delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeReleased-RelConfItem-SCG-Bearer.c delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeReleased-RelConfItem-SCG-Bearer.h delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeReleased-RelConfItem-Split-Bearer.c delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeReleased-RelConfItem-Split-Bearer.h delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeReleased-RelConfItem.c delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeReleased-RelConfItem.h delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeReleased-RelReqItem-SCG-Bearer.c delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeReleased-RelReqItem-SCG-Bearer.h delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeReleased-RelReqItem-Split-Bearer.c delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeReleased-RelReqItem-Split-Bearer.h delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeReleased-RelReqItem.c delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeReleased-RelReqItem.h delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPnotpresent.c delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPnotpresent.h delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPpresent.c delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPpresent.h delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBChaConf-Item.c delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBChaConf-Item.h delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBChaConfList.c delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBChaConfList.h delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPnotpresent.c delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPnotpresent.h delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPpresent.c delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPpresent.h delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBModReq-Item.c delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBModReq-Item.h delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBModReq-List.c delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBModReq-List.h delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBModReqd-Item.c delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBModReqd-Item.h delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBModReqdList.c delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBModReqdList.h delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPnotpresent.c delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPnotpresent.h delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPpresent.c delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPpresent.h delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBRelConf-Item.c delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBRelConf-Item.h delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBRelConfList.c delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBRelConfList.h delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPnotpresent.c delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPnotpresent.h delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPpresent.c delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPpresent.h delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBRelReq-Item.c delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBRelReq-Item.h delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBRelReqList.c delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBRelReqList.h delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBRelReqd-Item.c delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBRelReqd-Item.h delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBRelReqdList.c delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBRelReqdList.h delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeSetup-Item.c delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeSetup-Item.h delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeSetup-List.c delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeSetup-List.h delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeSetup-ListRetrieve.c delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeSetup-ListRetrieve.h delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeSetupRetrieve-Item.c delete mode 100644 e2sim/previous/ASN1c/E-RABs-ToBeSetupRetrieve-Item.h delete mode 100644 e2sim/previous/ASN1c/E2AP-PDU.c delete mode 100644 e2sim/previous/ASN1c/E2AP-PDU.h delete mode 100644 e2sim/previous/ASN1c/E2SM-gNB-X2-actionDefinition.c delete mode 100644 e2sim/previous/ASN1c/E2SM-gNB-X2-actionDefinition.h delete mode 100644 e2sim/previous/ASN1c/E2SM-gNB-X2-callProcessID.c delete mode 100644 e2sim/previous/ASN1c/E2SM-gNB-X2-callProcessID.h delete mode 100644 e2sim/previous/ASN1c/E2SM-gNB-X2-controlHeader.c delete mode 100644 e2sim/previous/ASN1c/E2SM-gNB-X2-controlHeader.h delete mode 100644 e2sim/previous/ASN1c/E2SM-gNB-X2-controlMessage.c delete mode 100644 e2sim/previous/ASN1c/E2SM-gNB-X2-controlMessage.h delete mode 100644 e2sim/previous/ASN1c/E2SM-gNB-X2-eventTriggerDefinition.c delete mode 100644 e2sim/previous/ASN1c/E2SM-gNB-X2-eventTriggerDefinition.h delete mode 100644 e2sim/previous/ASN1c/E2SM-gNB-X2-indicationHeader.c delete mode 100644 e2sim/previous/ASN1c/E2SM-gNB-X2-indicationHeader.h delete mode 100644 e2sim/previous/ASN1c/E2SM-gNB-X2-indicationMessage.c delete mode 100644 e2sim/previous/ASN1c/E2SM-gNB-X2-indicationMessage.h delete mode 100644 e2sim/previous/ASN1c/EARFCN.c delete mode 100644 e2sim/previous/ASN1c/EARFCN.h delete mode 100644 e2sim/previous/ASN1c/EARFCNExtension.c delete mode 100644 e2sim/previous/ASN1c/EARFCNExtension.h delete mode 100644 e2sim/previous/ASN1c/ECGI.c delete mode 100644 e2sim/previous/ASN1c/ECGI.h delete mode 100644 e2sim/previous/ASN1c/EN-DC-ResourceConfiguration.c delete mode 100644 e2sim/previous/ASN1c/EN-DC-ResourceConfiguration.h delete mode 100644 e2sim/previous/ASN1c/ENB-ID.c delete mode 100644 e2sim/previous/ASN1c/ENB-ID.h delete mode 100644 e2sim/previous/ASN1c/ENBConfigurationUpdate.c delete mode 100644 e2sim/previous/ASN1c/ENBConfigurationUpdate.h delete mode 100644 e2sim/previous/ASN1c/ENBConfigurationUpdateAcknowledge.c delete mode 100644 e2sim/previous/ASN1c/ENBConfigurationUpdateAcknowledge.h delete mode 100644 e2sim/previous/ASN1c/ENBConfigurationUpdateFailure.c delete mode 100644 e2sim/previous/ASN1c/ENBConfigurationUpdateFailure.h delete mode 100644 e2sim/previous/ASN1c/ENDCCellActivationFailure.c delete mode 100644 e2sim/previous/ASN1c/ENDCCellActivationFailure.h delete mode 100644 e2sim/previous/ASN1c/ENDCCellActivationRequest.c delete mode 100644 e2sim/previous/ASN1c/ENDCCellActivationRequest.h delete mode 100644 e2sim/previous/ASN1c/ENDCCellActivationResponse.c delete mode 100644 e2sim/previous/ASN1c/ENDCCellActivationResponse.h delete mode 100644 e2sim/previous/ASN1c/ENDCConfigurationUpdate.c delete mode 100644 e2sim/previous/ASN1c/ENDCConfigurationUpdate.h delete mode 100644 e2sim/previous/ASN1c/ENDCConfigurationUpdateAcknowledge.c delete mode 100644 e2sim/previous/ASN1c/ENDCConfigurationUpdateAcknowledge.h delete mode 100644 e2sim/previous/ASN1c/ENDCConfigurationUpdateFailure.c delete mode 100644 e2sim/previous/ASN1c/ENDCConfigurationUpdateFailure.h delete mode 100644 e2sim/previous/ASN1c/ENDCPartialResetConfirm.c delete mode 100644 e2sim/previous/ASN1c/ENDCPartialResetConfirm.h delete mode 100644 e2sim/previous/ASN1c/ENDCPartialResetRequired.c delete mode 100644 e2sim/previous/ASN1c/ENDCPartialResetRequired.h delete mode 100644 e2sim/previous/ASN1c/ENDCX2RemovalFailure.c delete mode 100644 e2sim/previous/ASN1c/ENDCX2RemovalFailure.h delete mode 100644 e2sim/previous/ASN1c/ENDCX2RemovalRequest.c delete mode 100644 e2sim/previous/ASN1c/ENDCX2RemovalRequest.h delete mode 100644 e2sim/previous/ASN1c/ENDCX2RemovalResponse.c delete mode 100644 e2sim/previous/ASN1c/ENDCX2RemovalResponse.h delete mode 100644 e2sim/previous/ASN1c/ENDCX2SetupFailure.c delete mode 100644 e2sim/previous/ASN1c/ENDCX2SetupFailure.h delete mode 100644 e2sim/previous/ASN1c/ENDCX2SetupRequest.c delete mode 100644 e2sim/previous/ASN1c/ENDCX2SetupRequest.h delete mode 100644 e2sim/previous/ASN1c/ENDCX2SetupResponse.c delete mode 100644 e2sim/previous/ASN1c/ENDCX2SetupResponse.h delete mode 100644 e2sim/previous/ASN1c/EPLMNs.c delete mode 100644 e2sim/previous/ASN1c/EPLMNs.h delete mode 100644 e2sim/previous/ASN1c/ERABActivityNotifyItem.c delete mode 100644 e2sim/previous/ASN1c/ERABActivityNotifyItem.h delete mode 100644 e2sim/previous/ASN1c/ERABActivityNotifyItemList.c delete mode 100644 e2sim/previous/ASN1c/ERABActivityNotifyItemList.h delete mode 100644 e2sim/previous/ASN1c/EUTRA-Mode-Info.c delete mode 100644 e2sim/previous/ASN1c/EUTRA-Mode-Info.h delete mode 100644 e2sim/previous/ASN1c/EUTRANCellIdentifier.c delete mode 100644 e2sim/previous/ASN1c/EUTRANCellIdentifier.h delete mode 100644 e2sim/previous/ASN1c/EUTRANRCellResourceCoordinationRequest.c delete mode 100644 e2sim/previous/ASN1c/EUTRANRCellResourceCoordinationRequest.h delete mode 100644 e2sim/previous/ASN1c/EUTRANRCellResourceCoordinationResponse.c delete mode 100644 e2sim/previous/ASN1c/EUTRANRCellResourceCoordinationResponse.h delete mode 100644 e2sim/previous/ASN1c/EUTRANTraceID.c delete mode 100644 e2sim/previous/ASN1c/EUTRANTraceID.h delete mode 100644 e2sim/previous/ASN1c/EncryptionAlgorithms.c delete mode 100644 e2sim/previous/ASN1c/EncryptionAlgorithms.h delete mode 100644 e2sim/previous/ASN1c/EnhancedRNTP.c delete mode 100644 e2sim/previous/ASN1c/EnhancedRNTP.h delete mode 100644 e2sim/previous/ASN1c/EnhancedRNTPStartTime.c delete mode 100644 e2sim/previous/ASN1c/EnhancedRNTPStartTime.h delete mode 100644 e2sim/previous/ASN1c/ErrorIndication.c delete mode 100644 e2sim/previous/ASN1c/ErrorIndication.h delete mode 100644 e2sim/previous/ASN1c/EventType.c delete mode 100644 e2sim/previous/ASN1c/EventType.h delete mode 100644 e2sim/previous/ASN1c/ExpectedActivityPeriod.c delete mode 100644 e2sim/previous/ASN1c/ExpectedActivityPeriod.h delete mode 100644 e2sim/previous/ASN1c/ExpectedHOInterval.c delete mode 100644 e2sim/previous/ASN1c/ExpectedHOInterval.h delete mode 100644 e2sim/previous/ASN1c/ExpectedIdlePeriod.c delete mode 100644 e2sim/previous/ASN1c/ExpectedIdlePeriod.h delete mode 100644 e2sim/previous/ASN1c/ExpectedUEActivityBehaviour.c delete mode 100644 e2sim/previous/ASN1c/ExpectedUEActivityBehaviour.h delete mode 100644 e2sim/previous/ASN1c/ExpectedUEBehaviour.c delete mode 100644 e2sim/previous/ASN1c/ExpectedUEBehaviour.h delete mode 100644 e2sim/previous/ASN1c/ExtendedBitRate.c delete mode 100644 e2sim/previous/ASN1c/ExtendedBitRate.h delete mode 100644 e2sim/previous/ASN1c/ExtendedULInterferenceOverloadInfo.c delete mode 100644 e2sim/previous/ASN1c/ExtendedULInterferenceOverloadInfo.h delete mode 100644 e2sim/previous/ASN1c/FDD-Info.c delete mode 100644 e2sim/previous/ASN1c/FDD-Info.h delete mode 100644 e2sim/previous/ASN1c/FDD-InfoNeighbourServedNRCell-Information.c delete mode 100644 e2sim/previous/ASN1c/FDD-InfoNeighbourServedNRCell-Information.h delete mode 100644 e2sim/previous/ASN1c/FDD-InfoServedNRCell-Information.c delete mode 100644 e2sim/previous/ASN1c/FDD-InfoServedNRCell-Information.h delete mode 100644 e2sim/previous/ASN1c/FiveGS-TAC.c delete mode 100644 e2sim/previous/ASN1c/FiveGS-TAC.h delete mode 100644 e2sim/previous/ASN1c/ForbiddenInterRATs.c delete mode 100644 e2sim/previous/ASN1c/ForbiddenInterRATs.h delete mode 100644 e2sim/previous/ASN1c/ForbiddenLACs.c delete mode 100644 e2sim/previous/ASN1c/ForbiddenLACs.h delete mode 100644 e2sim/previous/ASN1c/ForbiddenLAs-Item.c delete mode 100644 e2sim/previous/ASN1c/ForbiddenLAs-Item.h delete mode 100644 e2sim/previous/ASN1c/ForbiddenLAs.c delete mode 100644 e2sim/previous/ASN1c/ForbiddenLAs.h delete mode 100644 e2sim/previous/ASN1c/ForbiddenTACs.c delete mode 100644 e2sim/previous/ASN1c/ForbiddenTACs.h delete mode 100644 e2sim/previous/ASN1c/ForbiddenTAs-Item.c delete mode 100644 e2sim/previous/ASN1c/ForbiddenTAs-Item.h delete mode 100644 e2sim/previous/ASN1c/ForbiddenTAs.c delete mode 100644 e2sim/previous/ASN1c/ForbiddenTAs.h delete mode 100644 e2sim/previous/ASN1c/Fourframes.c delete mode 100644 e2sim/previous/ASN1c/Fourframes.h delete mode 100644 e2sim/previous/ASN1c/FreqBandIndicator.c delete mode 100644 e2sim/previous/ASN1c/FreqBandIndicator.h delete mode 100644 e2sim/previous/ASN1c/FreqBandIndicatorPriority.c delete mode 100644 e2sim/previous/ASN1c/FreqBandIndicatorPriority.h delete mode 100644 e2sim/previous/ASN1c/FreqBandNrItem.c delete mode 100644 e2sim/previous/ASN1c/FreqBandNrItem.h delete mode 100644 e2sim/previous/ASN1c/GBR-QosInformation.c delete mode 100644 e2sim/previous/ASN1c/GBR-QosInformation.h delete mode 100644 e2sim/previous/ASN1c/GNB-ID.c delete mode 100644 e2sim/previous/ASN1c/GNB-ID.h delete mode 100644 e2sim/previous/ASN1c/GNBOverloadInformation.c delete mode 100644 e2sim/previous/ASN1c/GNBOverloadInformation.h delete mode 100644 e2sim/previous/ASN1c/GNBStatusIndication.c delete mode 100644 e2sim/previous/ASN1c/GNBStatusIndication.h delete mode 100644 e2sim/previous/ASN1c/GTP-TEI.c delete mode 100644 e2sim/previous/ASN1c/GTP-TEI.h delete mode 100644 e2sim/previous/ASN1c/GTPtunnelEndpoint.c delete mode 100644 e2sim/previous/ASN1c/GTPtunnelEndpoint.h delete mode 100644 e2sim/previous/ASN1c/GU-Group-ID.c delete mode 100644 e2sim/previous/ASN1c/GU-Group-ID.h delete mode 100644 e2sim/previous/ASN1c/GUGroupIDList.c delete mode 100644 e2sim/previous/ASN1c/GUGroupIDList.h delete mode 100644 e2sim/previous/ASN1c/GUMMEI.c delete mode 100644 e2sim/previous/ASN1c/GUMMEI.h delete mode 100644 e2sim/previous/ASN1c/GlobalENB-ID.c delete mode 100644 e2sim/previous/ASN1c/GlobalENB-ID.h delete mode 100644 e2sim/previous/ASN1c/GlobalGNB-ID.c delete mode 100644 e2sim/previous/ASN1c/GlobalGNB-ID.h delete mode 100644 e2sim/previous/ASN1c/HFN.c delete mode 100644 e2sim/previous/ASN1c/HFN.h delete mode 100644 e2sim/previous/ASN1c/HFNModified.c delete mode 100644 e2sim/previous/ASN1c/HFNModified.h delete mode 100644 e2sim/previous/ASN1c/HFNforPDCP-SNlength18.c delete mode 100644 e2sim/previous/ASN1c/HFNforPDCP-SNlength18.h delete mode 100644 e2sim/previous/ASN1c/HWLoadIndicator.c delete mode 100644 e2sim/previous/ASN1c/HWLoadIndicator.h delete mode 100644 e2sim/previous/ASN1c/HandoverCancel.c delete mode 100644 e2sim/previous/ASN1c/HandoverCancel.h delete mode 100644 e2sim/previous/ASN1c/HandoverPreparationFailure.c delete mode 100644 e2sim/previous/ASN1c/HandoverPreparationFailure.h delete mode 100644 e2sim/previous/ASN1c/HandoverReport.c delete mode 100644 e2sim/previous/ASN1c/HandoverReport.h delete mode 100644 e2sim/previous/ASN1c/HandoverReportType.c delete mode 100644 e2sim/previous/ASN1c/HandoverReportType.h delete mode 100644 e2sim/previous/ASN1c/HandoverRequest.c delete mode 100644 e2sim/previous/ASN1c/HandoverRequest.h delete mode 100644 e2sim/previous/ASN1c/HandoverRequestAcknowledge.c delete mode 100644 e2sim/previous/ASN1c/HandoverRequestAcknowledge.h delete mode 100644 e2sim/previous/ASN1c/HandoverRestrictionList.c delete mode 100644 e2sim/previous/ASN1c/HandoverRestrictionList.h delete mode 100644 e2sim/previous/ASN1c/INTEGER.c delete mode 100644 e2sim/previous/ASN1c/INTEGER.h delete mode 100644 e2sim/previous/ASN1c/InitiatingMessage.c delete mode 100644 e2sim/previous/ASN1c/InitiatingMessage.h delete mode 100644 e2sim/previous/ASN1c/InitiatingNodeType-EndcConfigUpdate.c delete mode 100644 e2sim/previous/ASN1c/InitiatingNodeType-EndcConfigUpdate.h delete mode 100644 e2sim/previous/ASN1c/InitiatingNodeType-EndcX2Removal.c delete mode 100644 e2sim/previous/ASN1c/InitiatingNodeType-EndcX2Removal.h delete mode 100644 e2sim/previous/ASN1c/InitiatingNodeType-EndcX2Setup.c delete mode 100644 e2sim/previous/ASN1c/InitiatingNodeType-EndcX2Setup.h delete mode 100644 e2sim/previous/ASN1c/InitiatingNodeType-EutranrCellResourceCoordination.c delete mode 100644 e2sim/previous/ASN1c/InitiatingNodeType-EutranrCellResourceCoordination.h delete mode 100644 e2sim/previous/ASN1c/IntegrityProtectionAlgorithms.c delete mode 100644 e2sim/previous/ASN1c/IntegrityProtectionAlgorithms.h delete mode 100644 e2sim/previous/ASN1c/Interface-ID.c delete mode 100644 e2sim/previous/ASN1c/Interface-ID.h delete mode 100644 e2sim/previous/ASN1c/InterfaceDirection.c delete mode 100644 e2sim/previous/ASN1c/InterfaceDirection.h delete mode 100644 e2sim/previous/ASN1c/InterfaceMessage.c delete mode 100644 e2sim/previous/ASN1c/InterfaceMessage.h delete mode 100644 e2sim/previous/ASN1c/InterfaceMessageType.c delete mode 100644 e2sim/previous/ASN1c/InterfaceMessageType.h delete mode 100644 e2sim/previous/ASN1c/InterfaceProtocolIE-ID.c delete mode 100644 e2sim/previous/ASN1c/InterfaceProtocolIE-ID.h delete mode 100644 e2sim/previous/ASN1c/InterfaceProtocolIE-Item.c delete mode 100644 e2sim/previous/ASN1c/InterfaceProtocolIE-Item.h delete mode 100644 e2sim/previous/ASN1c/InterfaceProtocolIE-Test.c delete mode 100644 e2sim/previous/ASN1c/InterfaceProtocolIE-Test.h delete mode 100644 e2sim/previous/ASN1c/InterfaceProtocolIE-Value.c delete mode 100644 e2sim/previous/ASN1c/InterfaceProtocolIE-Value.h delete mode 100644 e2sim/previous/ASN1c/InterfacesToTrace.c delete mode 100644 e2sim/previous/ASN1c/InterfacesToTrace.h delete mode 100644 e2sim/previous/ASN1c/InvokeIndication.c delete mode 100644 e2sim/previous/ASN1c/InvokeIndication.h delete mode 100644 e2sim/previous/ASN1c/Key-eNodeB-Star.c delete mode 100644 e2sim/previous/ASN1c/Key-eNodeB-Star.h delete mode 100644 e2sim/previous/ASN1c/LAC.c delete mode 100644 e2sim/previous/ASN1c/LAC.h delete mode 100644 e2sim/previous/ASN1c/LCID.c delete mode 100644 e2sim/previous/ASN1c/LCID.h delete mode 100644 e2sim/previous/ASN1c/LHN-ID.c delete mode 100644 e2sim/previous/ASN1c/LHN-ID.h delete mode 100644 e2sim/previous/ASN1c/LastVisitedCell-Item.c delete mode 100644 e2sim/previous/ASN1c/LastVisitedCell-Item.h delete mode 100644 e2sim/previous/ASN1c/LastVisitedEUTRANCellInformation.c delete mode 100644 e2sim/previous/ASN1c/LastVisitedEUTRANCellInformation.h delete mode 100644 e2sim/previous/ASN1c/LastVisitedGERANCellInformation.c delete mode 100644 e2sim/previous/ASN1c/LastVisitedGERANCellInformation.h delete mode 100644 e2sim/previous/ASN1c/LastVisitedNGRANCellInformation.c delete mode 100644 e2sim/previous/ASN1c/LastVisitedNGRANCellInformation.h delete mode 100644 e2sim/previous/ASN1c/LastVisitedUTRANCellInformation.c delete mode 100644 e2sim/previous/ASN1c/LastVisitedUTRANCellInformation.h delete mode 100644 e2sim/previous/ASN1c/Limited-list.c delete mode 100644 e2sim/previous/ASN1c/Limited-list.h delete mode 100644 e2sim/previous/ASN1c/Links-to-log.c delete mode 100644 e2sim/previous/ASN1c/Links-to-log.h delete mode 100644 e2sim/previous/ASN1c/ListofEUTRACellsinEUTRACoordinationReq.c delete mode 100644 e2sim/previous/ASN1c/ListofEUTRACellsinEUTRACoordinationReq.h delete mode 100644 e2sim/previous/ASN1c/ListofEUTRACellsinEUTRACoordinationResp.c delete mode 100644 e2sim/previous/ASN1c/ListofEUTRACellsinEUTRACoordinationResp.h delete mode 100644 e2sim/previous/ASN1c/ListofEUTRACellsinNRCoordinationReq.c delete mode 100644 e2sim/previous/ASN1c/ListofEUTRACellsinNRCoordinationReq.h delete mode 100644 e2sim/previous/ASN1c/ListofNRCellsinNRCoordinationReq.c delete mode 100644 e2sim/previous/ASN1c/ListofNRCellsinNRCoordinationReq.h delete mode 100644 e2sim/previous/ASN1c/ListofNRCellsinNRCoordinationResp.c delete mode 100644 e2sim/previous/ASN1c/ListofNRCellsinNRCoordinationResp.h delete mode 100644 e2sim/previous/ASN1c/LoadIndicator.c delete mode 100644 e2sim/previous/ASN1c/LoadIndicator.h delete mode 100644 e2sim/previous/ASN1c/LoadInformation.c delete mode 100644 e2sim/previous/ASN1c/LoadInformation.h delete mode 100644 e2sim/previous/ASN1c/LocationReportingInformation.c delete mode 100644 e2sim/previous/ASN1c/LocationReportingInformation.h delete mode 100644 e2sim/previous/ASN1c/M1PeriodicReporting.c delete mode 100644 e2sim/previous/ASN1c/M1PeriodicReporting.h delete mode 100644 e2sim/previous/ASN1c/M1ReportingTrigger.c delete mode 100644 e2sim/previous/ASN1c/M1ReportingTrigger.h delete mode 100644 e2sim/previous/ASN1c/M1ThresholdEventA2.c delete mode 100644 e2sim/previous/ASN1c/M1ThresholdEventA2.h delete mode 100644 e2sim/previous/ASN1c/M3Configuration.c delete mode 100644 e2sim/previous/ASN1c/M3Configuration.h delete mode 100644 e2sim/previous/ASN1c/M3period.c delete mode 100644 e2sim/previous/ASN1c/M3period.h delete mode 100644 e2sim/previous/ASN1c/M4Configuration.c delete mode 100644 e2sim/previous/ASN1c/M4Configuration.h delete mode 100644 e2sim/previous/ASN1c/M4period.c delete mode 100644 e2sim/previous/ASN1c/M4period.h delete mode 100644 e2sim/previous/ASN1c/M5Configuration.c delete mode 100644 e2sim/previous/ASN1c/M5Configuration.h delete mode 100644 e2sim/previous/ASN1c/M5period.c delete mode 100644 e2sim/previous/ASN1c/M5period.h delete mode 100644 e2sim/previous/ASN1c/M6Configuration.c delete mode 100644 e2sim/previous/ASN1c/M6Configuration.h delete mode 100644 e2sim/previous/ASN1c/M6delay-threshold.c delete mode 100644 e2sim/previous/ASN1c/M6delay-threshold.h delete mode 100644 e2sim/previous/ASN1c/M6report-interval.c delete mode 100644 e2sim/previous/ASN1c/M6report-interval.h delete mode 100644 e2sim/previous/ASN1c/M7Configuration.c delete mode 100644 e2sim/previous/ASN1c/M7Configuration.h delete mode 100644 e2sim/previous/ASN1c/M7period.c delete mode 100644 e2sim/previous/ASN1c/M7period.h delete mode 100644 e2sim/previous/ASN1c/MBMS-Service-Area-Identity-List.c delete mode 100644 e2sim/previous/ASN1c/MBMS-Service-Area-Identity-List.h delete mode 100644 e2sim/previous/ASN1c/MBMS-Service-Area-Identity.c delete mode 100644 e2sim/previous/ASN1c/MBMS-Service-Area-Identity.h delete mode 100644 e2sim/previous/ASN1c/MBSFN-Subframe-Info.c delete mode 100644 e2sim/previous/ASN1c/MBSFN-Subframe-Info.h delete mode 100644 e2sim/previous/ASN1c/MBSFN-Subframe-Infolist.c delete mode 100644 e2sim/previous/ASN1c/MBSFN-Subframe-Infolist.h delete mode 100644 e2sim/previous/ASN1c/MDT-Activation.c delete mode 100644 e2sim/previous/ASN1c/MDT-Activation.h delete mode 100644 e2sim/previous/ASN1c/MDT-Configuration.c delete mode 100644 e2sim/previous/ASN1c/MDT-Configuration.h delete mode 100644 e2sim/previous/ASN1c/MDT-Location-Info.c delete mode 100644 e2sim/previous/ASN1c/MDT-Location-Info.h delete mode 100644 e2sim/previous/ASN1c/MDTPLMNList.c delete mode 100644 e2sim/previous/ASN1c/MDTPLMNList.h delete mode 100644 e2sim/previous/ASN1c/MME-Code.c delete mode 100644 e2sim/previous/ASN1c/MME-Code.h delete mode 100644 e2sim/previous/ASN1c/MME-Group-ID.c delete mode 100644 e2sim/previous/ASN1c/MME-Group-ID.h delete mode 100644 e2sim/previous/ASN1c/MakeBeforeBreakIndicator.c delete mode 100644 e2sim/previous/ASN1c/MakeBeforeBreakIndicator.h delete mode 100644 e2sim/previous/ASN1c/Makefile.am.asn1convert delete mode 100644 e2sim/previous/ASN1c/Makefile.am.libasncodec delete mode 100644 e2sim/previous/ASN1c/ManagementBasedMDTallowed.c delete mode 100644 e2sim/previous/ASN1c/ManagementBasedMDTallowed.h delete mode 100644 e2sim/previous/ASN1c/Masked-IMEISV.c delete mode 100644 e2sim/previous/ASN1c/Masked-IMEISV.h delete mode 100644 e2sim/previous/ASN1c/MeNBCoordinationAssistanceInformation.c delete mode 100644 e2sim/previous/ASN1c/MeNBCoordinationAssistanceInformation.h delete mode 100644 e2sim/previous/ASN1c/MeNBResourceCoordinationInformation.c delete mode 100644 e2sim/previous/ASN1c/MeNBResourceCoordinationInformation.h delete mode 100644 e2sim/previous/ASN1c/MeNBtoSeNBContainer.c delete mode 100644 e2sim/previous/ASN1c/MeNBtoSeNBContainer.h delete mode 100644 e2sim/previous/ASN1c/MeNBtoSgNBContainer.c delete mode 100644 e2sim/previous/ASN1c/MeNBtoSgNBContainer.h delete mode 100644 e2sim/previous/ASN1c/Measurement-ID.c delete mode 100644 e2sim/previous/ASN1c/Measurement-ID.h delete mode 100644 e2sim/previous/ASN1c/MeasurementFailureCause-Item.c delete mode 100644 e2sim/previous/ASN1c/MeasurementFailureCause-Item.h delete mode 100644 e2sim/previous/ASN1c/MeasurementFailureCause-List.c delete mode 100644 e2sim/previous/ASN1c/MeasurementFailureCause-List.h delete mode 100644 e2sim/previous/ASN1c/MeasurementInitiationResult-Item.c delete mode 100644 e2sim/previous/ASN1c/MeasurementInitiationResult-Item.h delete mode 100644 e2sim/previous/ASN1c/MeasurementInitiationResult-List.c delete mode 100644 e2sim/previous/ASN1c/MeasurementInitiationResult-List.h delete mode 100644 e2sim/previous/ASN1c/MeasurementThresholdA2.c delete mode 100644 e2sim/previous/ASN1c/MeasurementThresholdA2.h delete mode 100644 e2sim/previous/ASN1c/MeasurementsToActivate.c delete mode 100644 e2sim/previous/ASN1c/MeasurementsToActivate.h delete mode 100644 e2sim/previous/ASN1c/MobilityChangeAcknowledge.c delete mode 100644 e2sim/previous/ASN1c/MobilityChangeAcknowledge.h delete mode 100644 e2sim/previous/ASN1c/MobilityChangeFailure.c delete mode 100644 e2sim/previous/ASN1c/MobilityChangeFailure.h delete mode 100644 e2sim/previous/ASN1c/MobilityChangeRequest.c delete mode 100644 e2sim/previous/ASN1c/MobilityChangeRequest.h delete mode 100644 e2sim/previous/ASN1c/MobilityInformation.c delete mode 100644 e2sim/previous/ASN1c/MobilityInformation.h delete mode 100644 e2sim/previous/ASN1c/MobilityParametersInformation.c delete mode 100644 e2sim/previous/ASN1c/MobilityParametersInformation.h delete mode 100644 e2sim/previous/ASN1c/MobilityParametersModificationRange.c delete mode 100644 e2sim/previous/ASN1c/MobilityParametersModificationRange.h delete mode 100644 e2sim/previous/ASN1c/MultibandInfoList.c delete mode 100644 e2sim/previous/ASN1c/MultibandInfoList.h delete mode 100644 e2sim/previous/ASN1c/NR-TxBW.c delete mode 100644 e2sim/previous/ASN1c/NR-TxBW.h delete mode 100644 e2sim/previous/ASN1c/NRCGI.c delete mode 100644 e2sim/previous/ASN1c/NRCGI.h delete mode 100644 e2sim/previous/ASN1c/NRCellIdentifier.c delete mode 100644 e2sim/previous/ASN1c/NRCellIdentifier.h delete mode 100644 e2sim/previous/ASN1c/NRFreqInfo.c delete mode 100644 e2sim/previous/ASN1c/NRFreqInfo.h delete mode 100644 e2sim/previous/ASN1c/NRNRB.c delete mode 100644 e2sim/previous/ASN1c/NRNRB.h delete mode 100644 e2sim/previous/ASN1c/NRNeighbour-Information.c delete mode 100644 e2sim/previous/ASN1c/NRNeighbour-Information.h delete mode 100644 e2sim/previous/ASN1c/NRPCI.c delete mode 100644 e2sim/previous/ASN1c/NRPCI.h delete mode 100644 e2sim/previous/ASN1c/NRS-NSSS-PowerOffset.c delete mode 100644 e2sim/previous/ASN1c/NRS-NSSS-PowerOffset.h delete mode 100644 e2sim/previous/ASN1c/NRSCS.c delete mode 100644 e2sim/previous/ASN1c/NRSCS.h delete mode 100644 e2sim/previous/ASN1c/NRUESecurityCapabilities.c delete mode 100644 e2sim/previous/ASN1c/NRUESecurityCapabilities.h delete mode 100644 e2sim/previous/ASN1c/NRencryptionAlgorithms.c delete mode 100644 e2sim/previous/ASN1c/NRencryptionAlgorithms.h delete mode 100644 e2sim/previous/ASN1c/NRintegrityProtectionAlgorithms.c delete mode 100644 e2sim/previous/ASN1c/NRintegrityProtectionAlgorithms.h delete mode 100644 e2sim/previous/ASN1c/NRrestrictionin5GS.c delete mode 100644 e2sim/previous/ASN1c/NRrestrictionin5GS.h delete mode 100644 e2sim/previous/ASN1c/NRrestrictioninEPSasSecondaryRAT.c delete mode 100644 e2sim/previous/ASN1c/NRrestrictioninEPSasSecondaryRAT.h delete mode 100644 e2sim/previous/ASN1c/NSSS-NumOccasionDifferentPrecoder.c delete mode 100644 e2sim/previous/ASN1c/NSSS-NumOccasionDifferentPrecoder.h delete mode 100644 e2sim/previous/ASN1c/NULL.c delete mode 100644 e2sim/previous/ASN1c/NULL.h delete mode 100644 e2sim/previous/ASN1c/NativeEnumerated.c delete mode 100644 e2sim/previous/ASN1c/NativeEnumerated.h delete mode 100644 e2sim/previous/ASN1c/NativeInteger.c delete mode 100644 e2sim/previous/ASN1c/NativeInteger.h delete mode 100644 e2sim/previous/ASN1c/Neighbour-Information.c delete mode 100644 e2sim/previous/ASN1c/Neighbour-Information.h delete mode 100644 e2sim/previous/ASN1c/NewDRBIDrequest.c delete mode 100644 e2sim/previous/ASN1c/NewDRBIDrequest.h delete mode 100644 e2sim/previous/ASN1c/NextHopChainingCount.c delete mode 100644 e2sim/previous/ASN1c/NextHopChainingCount.h delete mode 100644 e2sim/previous/ASN1c/Number-of-Antennaports.c delete mode 100644 e2sim/previous/ASN1c/Number-of-Antennaports.h delete mode 100644 e2sim/previous/ASN1c/OBJECT_IDENTIFIER.c delete mode 100644 e2sim/previous/ASN1c/OBJECT_IDENTIFIER.h delete mode 100644 e2sim/previous/ASN1c/OCTET_STRING.c delete mode 100644 e2sim/previous/ASN1c/OCTET_STRING.h delete mode 100644 e2sim/previous/ASN1c/OPEN_TYPE.c delete mode 100644 e2sim/previous/ASN1c/OPEN_TYPE.h delete mode 100644 e2sim/previous/ASN1c/OffsetOfNbiotChannelNumberToEARFCN.c delete mode 100644 e2sim/previous/ASN1c/OffsetOfNbiotChannelNumberToEARFCN.h delete mode 100644 e2sim/previous/ASN1c/Old-ECGIs.c delete mode 100644 e2sim/previous/ASN1c/Old-ECGIs.h delete mode 100644 e2sim/previous/ASN1c/Oneframe.c delete mode 100644 e2sim/previous/ASN1c/Oneframe.h delete mode 100644 e2sim/previous/ASN1c/PA-Values.c delete mode 100644 e2sim/previous/ASN1c/PA-Values.h delete mode 100644 e2sim/previous/ASN1c/PCI.c delete mode 100644 e2sim/previous/ASN1c/PCI.h delete mode 100644 e2sim/previous/ASN1c/PDCP-SN.c delete mode 100644 e2sim/previous/ASN1c/PDCP-SN.h delete mode 100644 e2sim/previous/ASN1c/PDCP-SNExtended.c delete mode 100644 e2sim/previous/ASN1c/PDCP-SNExtended.h delete mode 100644 e2sim/previous/ASN1c/PDCP-SNlength18.c delete mode 100644 e2sim/previous/ASN1c/PDCP-SNlength18.h delete mode 100644 e2sim/previous/ASN1c/PDCPChangeIndication.c delete mode 100644 e2sim/previous/ASN1c/PDCPChangeIndication.h delete mode 100644 e2sim/previous/ASN1c/PDCPSnLength.c delete mode 100644 e2sim/previous/ASN1c/PDCPSnLength.h delete mode 100644 e2sim/previous/ASN1c/PLMN-Identity.c delete mode 100644 e2sim/previous/ASN1c/PLMN-Identity.h delete mode 100644 e2sim/previous/ASN1c/PLMNAreaBasedQMC.c delete mode 100644 e2sim/previous/ASN1c/PLMNAreaBasedQMC.h delete mode 100644 e2sim/previous/ASN1c/PLMNListforQMC.c delete mode 100644 e2sim/previous/ASN1c/PLMNListforQMC.h delete mode 100644 e2sim/previous/ASN1c/PRACH-Configuration.c delete mode 100644 e2sim/previous/ASN1c/PRACH-Configuration.h delete mode 100644 e2sim/previous/ASN1c/Packet-LossRate.c delete mode 100644 e2sim/previous/ASN1c/Packet-LossRate.h delete mode 100644 e2sim/previous/ASN1c/PartialSuccessIndicator.c delete mode 100644 e2sim/previous/ASN1c/PartialSuccessIndicator.h delete mode 100644 e2sim/previous/ASN1c/PedestrianUE.c delete mode 100644 e2sim/previous/ASN1c/PedestrianUE.h delete mode 100644 e2sim/previous/ASN1c/Port-Number.c delete mode 100644 e2sim/previous/ASN1c/Port-Number.h delete mode 100644 e2sim/previous/ASN1c/Pre-emptionCapability.c delete mode 100644 e2sim/previous/ASN1c/Pre-emptionCapability.h delete mode 100644 e2sim/previous/ASN1c/Pre-emptionVulnerability.c delete mode 100644 e2sim/previous/ASN1c/Pre-emptionVulnerability.h delete mode 100644 e2sim/previous/ASN1c/Presence.c delete mode 100644 e2sim/previous/ASN1c/Presence.h delete mode 100644 e2sim/previous/ASN1c/PrintableString.c delete mode 100644 e2sim/previous/ASN1c/PrintableString.h delete mode 100644 e2sim/previous/ASN1c/PriorityLevel.c delete mode 100644 e2sim/previous/ASN1c/PriorityLevel.h delete mode 100644 e2sim/previous/ASN1c/PrivateIE-Container.c delete mode 100644 e2sim/previous/ASN1c/PrivateIE-Container.h delete mode 100644 e2sim/previous/ASN1c/PrivateIE-Field.c delete mode 100644 e2sim/previous/ASN1c/PrivateIE-Field.h delete mode 100644 e2sim/previous/ASN1c/PrivateIE-ID.c delete mode 100644 e2sim/previous/ASN1c/PrivateIE-ID.h delete mode 100644 e2sim/previous/ASN1c/PrivateMessage.c delete mode 100644 e2sim/previous/ASN1c/PrivateMessage.h delete mode 100644 e2sim/previous/ASN1c/ProSeAuthorized.c delete mode 100644 e2sim/previous/ASN1c/ProSeAuthorized.h delete mode 100644 e2sim/previous/ASN1c/ProSeDirectCommunication.c delete mode 100644 e2sim/previous/ASN1c/ProSeDirectCommunication.h delete mode 100644 e2sim/previous/ASN1c/ProSeDirectDiscovery.c delete mode 100644 e2sim/previous/ASN1c/ProSeDirectDiscovery.h delete mode 100644 e2sim/previous/ASN1c/ProSeUEtoNetworkRelaying.c delete mode 100644 e2sim/previous/ASN1c/ProSeUEtoNetworkRelaying.h delete mode 100644 e2sim/previous/ASN1c/ProcedureCode.c delete mode 100644 e2sim/previous/ASN1c/ProcedureCode.h delete mode 100644 e2sim/previous/ASN1c/ProtectedEUTRAResourceIndication.c delete mode 100644 e2sim/previous/ASN1c/ProtectedEUTRAResourceIndication.h delete mode 100644 e2sim/previous/ASN1c/ProtectedFootprintTimePattern.c delete mode 100644 e2sim/previous/ASN1c/ProtectedFootprintTimePattern.h delete mode 100644 e2sim/previous/ASN1c/ProtectedResourceList-Item.c delete mode 100644 e2sim/previous/ASN1c/ProtectedResourceList-Item.h delete mode 100644 e2sim/previous/ASN1c/ProtectedResourceList.c delete mode 100644 e2sim/previous/ASN1c/ProtectedResourceList.h delete mode 100644 e2sim/previous/ASN1c/ProtocolExtensionContainer.c delete mode 100644 e2sim/previous/ASN1c/ProtocolExtensionContainer.h delete mode 100644 e2sim/previous/ASN1c/ProtocolExtensionField.c delete mode 100644 e2sim/previous/ASN1c/ProtocolExtensionField.h delete mode 100644 e2sim/previous/ASN1c/ProtocolIE-Container.c delete mode 100644 e2sim/previous/ASN1c/ProtocolIE-Container.h delete mode 100644 e2sim/previous/ASN1c/ProtocolIE-ContainerList.c delete mode 100644 e2sim/previous/ASN1c/ProtocolIE-ContainerList.h delete mode 100644 e2sim/previous/ASN1c/ProtocolIE-ContainerPair.c delete mode 100644 e2sim/previous/ASN1c/ProtocolIE-ContainerPair.h delete mode 100644 e2sim/previous/ASN1c/ProtocolIE-ContainerPairList.c delete mode 100644 e2sim/previous/ASN1c/ProtocolIE-ContainerPairList.h delete mode 100644 e2sim/previous/ASN1c/ProtocolIE-Field.c delete mode 100644 e2sim/previous/ASN1c/ProtocolIE-Field.h delete mode 100644 e2sim/previous/ASN1c/ProtocolIE-FieldPair.c delete mode 100644 e2sim/previous/ASN1c/ProtocolIE-FieldPair.h delete mode 100644 e2sim/previous/ASN1c/ProtocolIE-ID.c delete mode 100644 e2sim/previous/ASN1c/ProtocolIE-ID.h delete mode 100644 e2sim/previous/ASN1c/ProtocolIE-Single-Container.c delete mode 100644 e2sim/previous/ASN1c/ProtocolIE-Single-Container.h delete mode 100644 e2sim/previous/ASN1c/QCI.c delete mode 100644 e2sim/previous/ASN1c/QCI.h delete mode 100644 e2sim/previous/ASN1c/RANfunction-Item.c delete mode 100644 e2sim/previous/ASN1c/RANfunction-Item.h delete mode 100644 e2sim/previous/ASN1c/RANfunctionDefinition.c delete mode 100644 e2sim/previous/ASN1c/RANfunctionDefinition.h delete mode 100644 e2sim/previous/ASN1c/RANfunctionID-Item.c delete mode 100644 e2sim/previous/ASN1c/RANfunctionID-Item.h delete mode 100644 e2sim/previous/ASN1c/RANfunctionID.c delete mode 100644 e2sim/previous/ASN1c/RANfunctionID.h delete mode 100644 e2sim/previous/ASN1c/RANfunctionIDcause-Item.c delete mode 100644 e2sim/previous/ASN1c/RANfunctionIDcause-Item.h delete mode 100644 e2sim/previous/ASN1c/RANfunctions-List.c delete mode 100644 e2sim/previous/ASN1c/RANfunctions-List.h delete mode 100644 e2sim/previous/ASN1c/RANfunctionsID-List.c delete mode 100644 e2sim/previous/ASN1c/RANfunctionsID-List.h delete mode 100644 e2sim/previous/ASN1c/RANfunctionsIDcause-List.c delete mode 100644 e2sim/previous/ASN1c/RANfunctionsIDcause-List.h delete mode 100644 e2sim/previous/ASN1c/RICaction-Admitted-Item.c delete mode 100644 e2sim/previous/ASN1c/RICaction-Admitted-Item.h delete mode 100644 e2sim/previous/ASN1c/RICaction-Admitted-List.c delete mode 100644 e2sim/previous/ASN1c/RICaction-Admitted-List.h delete mode 100644 e2sim/previous/ASN1c/RICaction-NotAdmitted-Item.c delete mode 100644 e2sim/previous/ASN1c/RICaction-NotAdmitted-Item.h delete mode 100644 e2sim/previous/ASN1c/RICaction-NotAdmitted-List.c delete mode 100644 e2sim/previous/ASN1c/RICaction-NotAdmitted-List.h delete mode 100644 e2sim/previous/ASN1c/RICaction-ToBeSetup-Item.c delete mode 100644 e2sim/previous/ASN1c/RICaction-ToBeSetup-Item.h delete mode 100644 e2sim/previous/ASN1c/RICactionDefinition.c delete mode 100644 e2sim/previous/ASN1c/RICactionDefinition.h delete mode 100644 e2sim/previous/ASN1c/RICactionID.c delete mode 100644 e2sim/previous/ASN1c/RICactionID.h delete mode 100644 e2sim/previous/ASN1c/RICactionType.c delete mode 100644 e2sim/previous/ASN1c/RICactionType.h delete mode 100644 e2sim/previous/ASN1c/RICactions-ToBeSetup-List.c delete mode 100644 e2sim/previous/ASN1c/RICactions-ToBeSetup-List.h delete mode 100644 e2sim/previous/ASN1c/RICcallProcessID.c delete mode 100644 e2sim/previous/ASN1c/RICcallProcessID.h delete mode 100644 e2sim/previous/ASN1c/RICcause.c delete mode 100644 e2sim/previous/ASN1c/RICcause.h delete mode 100644 e2sim/previous/ASN1c/RICcontrolAckRequest.c delete mode 100644 e2sim/previous/ASN1c/RICcontrolAckRequest.h delete mode 100644 e2sim/previous/ASN1c/RICcontrolAcknowledge.c delete mode 100644 e2sim/previous/ASN1c/RICcontrolAcknowledge.h delete mode 100644 e2sim/previous/ASN1c/RICcontrolFailure.c delete mode 100644 e2sim/previous/ASN1c/RICcontrolFailure.h delete mode 100644 e2sim/previous/ASN1c/RICcontrolHeader.c delete mode 100644 e2sim/previous/ASN1c/RICcontrolHeader.h delete mode 100644 e2sim/previous/ASN1c/RICcontrolMessage.c delete mode 100644 e2sim/previous/ASN1c/RICcontrolMessage.h delete mode 100644 e2sim/previous/ASN1c/RICcontrolRequest.c delete mode 100644 e2sim/previous/ASN1c/RICcontrolRequest.h delete mode 100644 e2sim/previous/ASN1c/RICcontrolStatus.c delete mode 100644 e2sim/previous/ASN1c/RICcontrolStatus.h delete mode 100644 e2sim/previous/ASN1c/RICeventTriggerDefinition.c delete mode 100644 e2sim/previous/ASN1c/RICeventTriggerDefinition.h delete mode 100644 e2sim/previous/ASN1c/RICindication.c delete mode 100644 e2sim/previous/ASN1c/RICindication.h delete mode 100644 e2sim/previous/ASN1c/RICindicationHeader.c delete mode 100644 e2sim/previous/ASN1c/RICindicationHeader.h delete mode 100644 e2sim/previous/ASN1c/RICindicationMessage.c delete mode 100644 e2sim/previous/ASN1c/RICindicationMessage.h delete mode 100644 e2sim/previous/ASN1c/RICindicationSN.c delete mode 100644 e2sim/previous/ASN1c/RICindicationSN.h delete mode 100644 e2sim/previous/ASN1c/RICindicationType.c delete mode 100644 e2sim/previous/ASN1c/RICindicationType.h delete mode 100644 e2sim/previous/ASN1c/RICrequestID.c delete mode 100644 e2sim/previous/ASN1c/RICrequestID.h delete mode 100644 e2sim/previous/ASN1c/RICserviceQuery.c delete mode 100644 e2sim/previous/ASN1c/RICserviceQuery.h delete mode 100644 e2sim/previous/ASN1c/RICserviceUpdate.c delete mode 100644 e2sim/previous/ASN1c/RICserviceUpdate.h delete mode 100644 e2sim/previous/ASN1c/RICserviceUpdateAcknowledge.c delete mode 100644 e2sim/previous/ASN1c/RICserviceUpdateAcknowledge.h delete mode 100644 e2sim/previous/ASN1c/RICserviceUpdateFailure.c delete mode 100644 e2sim/previous/ASN1c/RICserviceUpdateFailure.h delete mode 100644 e2sim/previous/ASN1c/RICsubscription.c delete mode 100644 e2sim/previous/ASN1c/RICsubscription.h delete mode 100644 e2sim/previous/ASN1c/RICsubscriptionDeleteFailure.c delete mode 100644 e2sim/previous/ASN1c/RICsubscriptionDeleteFailure.h delete mode 100644 e2sim/previous/ASN1c/RICsubscriptionDeleteRequest.c delete mode 100644 e2sim/previous/ASN1c/RICsubscriptionDeleteRequest.h delete mode 100644 e2sim/previous/ASN1c/RICsubscriptionDeleteResponse.c delete mode 100644 e2sim/previous/ASN1c/RICsubscriptionDeleteResponse.h delete mode 100644 e2sim/previous/ASN1c/RICsubscriptionFailure.c delete mode 100644 e2sim/previous/ASN1c/RICsubscriptionFailure.h delete mode 100644 e2sim/previous/ASN1c/RICsubscriptionRequest.c delete mode 100644 e2sim/previous/ASN1c/RICsubscriptionRequest.h delete mode 100644 e2sim/previous/ASN1c/RICsubscriptionResponse.c delete mode 100644 e2sim/previous/ASN1c/RICsubscriptionResponse.h delete mode 100644 e2sim/previous/ASN1c/RICsubsequentAction.c delete mode 100644 e2sim/previous/ASN1c/RICsubsequentAction.h delete mode 100644 e2sim/previous/ASN1c/RICsubsequentActionType.c delete mode 100644 e2sim/previous/ASN1c/RICsubsequentActionType.h delete mode 100644 e2sim/previous/ASN1c/RICtimeToWait.c delete mode 100644 e2sim/previous/ASN1c/RICtimeToWait.h delete mode 100644 e2sim/previous/ASN1c/RLC-Status.c delete mode 100644 e2sim/previous/ASN1c/RLC-Status.h delete mode 100644 e2sim/previous/ASN1c/RLCMode.c delete mode 100644 e2sim/previous/ASN1c/RLCMode.h delete mode 100644 e2sim/previous/ASN1c/RLFIndication.c delete mode 100644 e2sim/previous/ASN1c/RLFIndication.h delete mode 100644 e2sim/previous/ASN1c/RNL-Header.c delete mode 100644 e2sim/previous/ASN1c/RNL-Header.h delete mode 100644 e2sim/previous/ASN1c/RNTP-Threshold.c delete mode 100644 e2sim/previous/ASN1c/RNTP-Threshold.h delete mode 100644 e2sim/previous/ASN1c/RRC-Config-Ind.c delete mode 100644 e2sim/previous/ASN1c/RRC-Config-Ind.h delete mode 100644 e2sim/previous/ASN1c/RRC-Context.c delete mode 100644 e2sim/previous/ASN1c/RRC-Context.h delete mode 100644 e2sim/previous/ASN1c/RRCConnReestabIndicator.c delete mode 100644 e2sim/previous/ASN1c/RRCConnReestabIndicator.h delete mode 100644 e2sim/previous/ASN1c/RRCConnSetupIndicator.c delete mode 100644 e2sim/previous/ASN1c/RRCConnSetupIndicator.h delete mode 100644 e2sim/previous/ASN1c/RRCContainer.c delete mode 100644 e2sim/previous/ASN1c/RRCContainer.h delete mode 100644 e2sim/previous/ASN1c/RRCTransfer.c delete mode 100644 e2sim/previous/ASN1c/RRCTransfer.h delete mode 100644 e2sim/previous/ASN1c/RSRPMRList.c delete mode 100644 e2sim/previous/ASN1c/RSRPMRList.h delete mode 100644 e2sim/previous/ASN1c/RSRPMeasurementResult.c delete mode 100644 e2sim/previous/ASN1c/RSRPMeasurementResult.h delete mode 100644 e2sim/previous/ASN1c/RadioResourceStatus.c delete mode 100644 e2sim/previous/ASN1c/RadioResourceStatus.h delete mode 100644 e2sim/previous/ASN1c/RadioframeAllocationOffset.c delete mode 100644 e2sim/previous/ASN1c/RadioframeAllocationOffset.h delete mode 100644 e2sim/previous/ASN1c/RadioframeAllocationPeriod.c delete mode 100644 e2sim/previous/ASN1c/RadioframeAllocationPeriod.h delete mode 100644 e2sim/previous/ASN1c/ReceiveStatusOfULPDCPSDUsExtended.c delete mode 100644 e2sim/previous/ASN1c/ReceiveStatusOfULPDCPSDUsExtended.h delete mode 100644 e2sim/previous/ASN1c/ReceiveStatusOfULPDCPSDUsPDCP-SNlength18.c delete mode 100644 e2sim/previous/ASN1c/ReceiveStatusOfULPDCPSDUsPDCP-SNlength18.h delete mode 100644 e2sim/previous/ASN1c/ReceiveStatusofULPDCPSDUs.c delete mode 100644 e2sim/previous/ASN1c/ReceiveStatusofULPDCPSDUs.h delete mode 100644 e2sim/previous/ASN1c/Reestablishment-Indication.c delete mode 100644 e2sim/previous/ASN1c/Reestablishment-Indication.h delete mode 100644 e2sim/previous/ASN1c/Registration-Request.c delete mode 100644 e2sim/previous/ASN1c/Registration-Request.h delete mode 100644 e2sim/previous/ASN1c/RelativeNarrowbandTxPower.c delete mode 100644 e2sim/previous/ASN1c/RelativeNarrowbandTxPower.h delete mode 100644 e2sim/previous/ASN1c/ReplacingCellsList-Item.c delete mode 100644 e2sim/previous/ASN1c/ReplacingCellsList-Item.h delete mode 100644 e2sim/previous/ASN1c/ReplacingCellsList.c delete mode 100644 e2sim/previous/ASN1c/ReplacingCellsList.h delete mode 100644 e2sim/previous/ASN1c/ReportAmountMDT.c delete mode 100644 e2sim/previous/ASN1c/ReportAmountMDT.h delete mode 100644 e2sim/previous/ASN1c/ReportArea.c delete mode 100644 e2sim/previous/ASN1c/ReportArea.h delete mode 100644 e2sim/previous/ASN1c/ReportCharacteristics.c delete mode 100644 e2sim/previous/ASN1c/ReportCharacteristics.h delete mode 100644 e2sim/previous/ASN1c/ReportIntervalMDT.c delete mode 100644 e2sim/previous/ASN1c/ReportIntervalMDT.h delete mode 100644 e2sim/previous/ASN1c/ReportingPeriodicity.c delete mode 100644 e2sim/previous/ASN1c/ReportingPeriodicity.h delete mode 100644 e2sim/previous/ASN1c/ReportingPeriodicityCSIR.c delete mode 100644 e2sim/previous/ASN1c/ReportingPeriodicityCSIR.h delete mode 100644 e2sim/previous/ASN1c/ReportingPeriodicityRSRPMR.c delete mode 100644 e2sim/previous/ASN1c/ReportingPeriodicityRSRPMR.h delete mode 100644 e2sim/previous/ASN1c/ReservedSubframePattern.c delete mode 100644 e2sim/previous/ASN1c/ReservedSubframePattern.h delete mode 100644 e2sim/previous/ASN1c/ResetRequest.c delete mode 100644 e2sim/previous/ASN1c/ResetRequest.h delete mode 100644 e2sim/previous/ASN1c/ResetResponse.c delete mode 100644 e2sim/previous/ASN1c/ResetResponse.h delete mode 100644 e2sim/previous/ASN1c/ResourceStatusFailure.c delete mode 100644 e2sim/previous/ASN1c/ResourceStatusFailure.h delete mode 100644 e2sim/previous/ASN1c/ResourceStatusRequest.c delete mode 100644 e2sim/previous/ASN1c/ResourceStatusRequest.h delete mode 100644 e2sim/previous/ASN1c/ResourceStatusResponse.c delete mode 100644 e2sim/previous/ASN1c/ResourceStatusResponse.h delete mode 100644 e2sim/previous/ASN1c/ResourceStatusUpdate.c delete mode 100644 e2sim/previous/ASN1c/ResourceStatusUpdate.h delete mode 100644 e2sim/previous/ASN1c/ResourceType.c delete mode 100644 e2sim/previous/ASN1c/ResourceType.h delete mode 100644 e2sim/previous/ASN1c/RespondingNodeType-EndcConfigUpdate.c delete mode 100644 e2sim/previous/ASN1c/RespondingNodeType-EndcConfigUpdate.h delete mode 100644 e2sim/previous/ASN1c/RespondingNodeType-EndcX2Removal.c delete mode 100644 e2sim/previous/ASN1c/RespondingNodeType-EndcX2Removal.h delete mode 100644 e2sim/previous/ASN1c/RespondingNodeType-EndcX2Setup.c delete mode 100644 e2sim/previous/ASN1c/RespondingNodeType-EndcX2Setup.h delete mode 100644 e2sim/previous/ASN1c/RespondingNodeType-EutranrCellResourceCoordination.c delete mode 100644 e2sim/previous/ASN1c/RespondingNodeType-EutranrCellResourceCoordination.h delete mode 100644 e2sim/previous/ASN1c/ResponseInformationSeNBReconfComp-RejectByMeNBItem.c delete mode 100644 e2sim/previous/ASN1c/ResponseInformationSeNBReconfComp-RejectByMeNBItem.h delete mode 100644 e2sim/previous/ASN1c/ResponseInformationSeNBReconfComp-SuccessItem.c delete mode 100644 e2sim/previous/ASN1c/ResponseInformationSeNBReconfComp-SuccessItem.h delete mode 100644 e2sim/previous/ASN1c/ResponseInformationSeNBReconfComp.c delete mode 100644 e2sim/previous/ASN1c/ResponseInformationSeNBReconfComp.h delete mode 100644 e2sim/previous/ASN1c/ResponseInformationSgNBReconfComp-RejectByMeNBItem.c delete mode 100644 e2sim/previous/ASN1c/ResponseInformationSgNBReconfComp-RejectByMeNBItem.h delete mode 100644 e2sim/previous/ASN1c/ResponseInformationSgNBReconfComp-SuccessItem.c delete mode 100644 e2sim/previous/ASN1c/ResponseInformationSgNBReconfComp-SuccessItem.h delete mode 100644 e2sim/previous/ASN1c/ResponseInformationSgNBReconfComp.c delete mode 100644 e2sim/previous/ASN1c/ResponseInformationSgNBReconfComp.h delete mode 100644 e2sim/previous/ASN1c/ResumeID.c delete mode 100644 e2sim/previous/ASN1c/ResumeID.h delete mode 100644 e2sim/previous/ASN1c/RetrieveUEContextFailure.c delete mode 100644 e2sim/previous/ASN1c/RetrieveUEContextFailure.h delete mode 100644 e2sim/previous/ASN1c/RetrieveUEContextRequest.c delete mode 100644 e2sim/previous/ASN1c/RetrieveUEContextRequest.h delete mode 100644 e2sim/previous/ASN1c/RetrieveUEContextResponse.c delete mode 100644 e2sim/previous/ASN1c/RetrieveUEContextResponse.h delete mode 100644 e2sim/previous/ASN1c/S1TNLLoadIndicator.c delete mode 100644 e2sim/previous/ASN1c/S1TNLLoadIndicator.h delete mode 100644 e2sim/previous/ASN1c/SCGChangeIndication.c delete mode 100644 e2sim/previous/ASN1c/SCGChangeIndication.h delete mode 100644 e2sim/previous/ASN1c/SCGConfigurationQuery.c delete mode 100644 e2sim/previous/ASN1c/SCGConfigurationQuery.h delete mode 100644 e2sim/previous/ASN1c/SGNB-Addition-Trigger-Ind.c delete mode 100644 e2sim/previous/ASN1c/SGNB-Addition-Trigger-Ind.h delete mode 100644 e2sim/previous/ASN1c/SIPTOBearerDeactivationIndication.c delete mode 100644 e2sim/previous/ASN1c/SIPTOBearerDeactivationIndication.h delete mode 100644 e2sim/previous/ASN1c/SNStatusTransfer.c delete mode 100644 e2sim/previous/ASN1c/SNStatusTransfer.h delete mode 100644 e2sim/previous/ASN1c/SRBType.c delete mode 100644 e2sim/previous/ASN1c/SRBType.h delete mode 100644 e2sim/previous/ASN1c/SRVCCOperationPossible.c delete mode 100644 e2sim/previous/ASN1c/SRVCCOperationPossible.h delete mode 100644 e2sim/previous/ASN1c/SULInformation.c delete mode 100644 e2sim/previous/ASN1c/SULInformation.h delete mode 100644 e2sim/previous/ASN1c/ScheduledCommunicationTime.c delete mode 100644 e2sim/previous/ASN1c/ScheduledCommunicationTime.h delete mode 100644 e2sim/previous/ASN1c/SeNBAdditionRequest.c delete mode 100644 e2sim/previous/ASN1c/SeNBAdditionRequest.h delete mode 100644 e2sim/previous/ASN1c/SeNBAdditionRequestAcknowledge.c delete mode 100644 e2sim/previous/ASN1c/SeNBAdditionRequestAcknowledge.h delete mode 100644 e2sim/previous/ASN1c/SeNBAdditionRequestReject.c delete mode 100644 e2sim/previous/ASN1c/SeNBAdditionRequestReject.h delete mode 100644 e2sim/previous/ASN1c/SeNBCounterCheckRequest.c delete mode 100644 e2sim/previous/ASN1c/SeNBCounterCheckRequest.h delete mode 100644 e2sim/previous/ASN1c/SeNBModificationConfirm.c delete mode 100644 e2sim/previous/ASN1c/SeNBModificationConfirm.h delete mode 100644 e2sim/previous/ASN1c/SeNBModificationRefuse.c delete mode 100644 e2sim/previous/ASN1c/SeNBModificationRefuse.h delete mode 100644 e2sim/previous/ASN1c/SeNBModificationRequest.c delete mode 100644 e2sim/previous/ASN1c/SeNBModificationRequest.h delete mode 100644 e2sim/previous/ASN1c/SeNBModificationRequestAcknowledge.c delete mode 100644 e2sim/previous/ASN1c/SeNBModificationRequestAcknowledge.h delete mode 100644 e2sim/previous/ASN1c/SeNBModificationRequestReject.c delete mode 100644 e2sim/previous/ASN1c/SeNBModificationRequestReject.h delete mode 100644 e2sim/previous/ASN1c/SeNBModificationRequired.c delete mode 100644 e2sim/previous/ASN1c/SeNBModificationRequired.h delete mode 100644 e2sim/previous/ASN1c/SeNBReconfigurationComplete.c delete mode 100644 e2sim/previous/ASN1c/SeNBReconfigurationComplete.h delete mode 100644 e2sim/previous/ASN1c/SeNBReleaseConfirm.c delete mode 100644 e2sim/previous/ASN1c/SeNBReleaseConfirm.h delete mode 100644 e2sim/previous/ASN1c/SeNBReleaseRequest.c delete mode 100644 e2sim/previous/ASN1c/SeNBReleaseRequest.h delete mode 100644 e2sim/previous/ASN1c/SeNBReleaseRequired.c delete mode 100644 e2sim/previous/ASN1c/SeNBReleaseRequired.h delete mode 100644 e2sim/previous/ASN1c/SeNBSecurityKey.c delete mode 100644 e2sim/previous/ASN1c/SeNBSecurityKey.h delete mode 100644 e2sim/previous/ASN1c/SeNBtoMeNBContainer.c delete mode 100644 e2sim/previous/ASN1c/SeNBtoMeNBContainer.h delete mode 100644 e2sim/previous/ASN1c/SecondaryRATDataUsageReport.c delete mode 100644 e2sim/previous/ASN1c/SecondaryRATDataUsageReport.h delete mode 100644 e2sim/previous/ASN1c/SecondaryRATUsageReport-Item.c delete mode 100644 e2sim/previous/ASN1c/SecondaryRATUsageReport-Item.h delete mode 100644 e2sim/previous/ASN1c/SecondaryRATUsageReportList.c delete mode 100644 e2sim/previous/ASN1c/SecondaryRATUsageReportList.h delete mode 100644 e2sim/previous/ASN1c/ServedCell-Information.c delete mode 100644 e2sim/previous/ASN1c/ServedCell-Information.h delete mode 100644 e2sim/previous/ASN1c/ServedCells.c delete mode 100644 e2sim/previous/ASN1c/ServedCells.h delete mode 100644 e2sim/previous/ASN1c/ServedCellsToActivate-Item.c delete mode 100644 e2sim/previous/ASN1c/ServedCellsToActivate-Item.h delete mode 100644 e2sim/previous/ASN1c/ServedCellsToActivate.c delete mode 100644 e2sim/previous/ASN1c/ServedCellsToActivate.h delete mode 100644 e2sim/previous/ASN1c/ServedCellsToModify-Item.c delete mode 100644 e2sim/previous/ASN1c/ServedCellsToModify-Item.h delete mode 100644 e2sim/previous/ASN1c/ServedCellsToModify.c delete mode 100644 e2sim/previous/ASN1c/ServedCellsToModify.h delete mode 100644 e2sim/previous/ASN1c/ServedEUTRAcellsENDCX2ManagementList.c delete mode 100644 e2sim/previous/ASN1c/ServedEUTRAcellsENDCX2ManagementList.h delete mode 100644 e2sim/previous/ASN1c/ServedEUTRAcellsToDeleteListENDCConfUpd.c delete mode 100644 e2sim/previous/ASN1c/ServedEUTRAcellsToDeleteListENDCConfUpd.h delete mode 100644 e2sim/previous/ASN1c/ServedEUTRAcellsToModifyListENDCConfUpd.c delete mode 100644 e2sim/previous/ASN1c/ServedEUTRAcellsToModifyListENDCConfUpd.h delete mode 100644 e2sim/previous/ASN1c/ServedNRCell-Information.c delete mode 100644 e2sim/previous/ASN1c/ServedNRCell-Information.h delete mode 100644 e2sim/previous/ASN1c/ServedNRCellsToActivate-Item.c delete mode 100644 e2sim/previous/ASN1c/ServedNRCellsToActivate-Item.h delete mode 100644 e2sim/previous/ASN1c/ServedNRCellsToActivate.c delete mode 100644 e2sim/previous/ASN1c/ServedNRCellsToActivate.h delete mode 100644 e2sim/previous/ASN1c/ServedNRCellsToModify-Item.c delete mode 100644 e2sim/previous/ASN1c/ServedNRCellsToModify-Item.h delete mode 100644 e2sim/previous/ASN1c/ServedNRcellsENDCX2ManagementList.c delete mode 100644 e2sim/previous/ASN1c/ServedNRcellsENDCX2ManagementList.h delete mode 100644 e2sim/previous/ASN1c/ServedNRcellsToDeleteENDCConfUpdList.c delete mode 100644 e2sim/previous/ASN1c/ServedNRcellsToDeleteENDCConfUpdList.h delete mode 100644 e2sim/previous/ASN1c/ServedNRcellsToModifyENDCConfUpdList.c delete mode 100644 e2sim/previous/ASN1c/ServedNRcellsToModifyENDCConfUpdList.h delete mode 100644 e2sim/previous/ASN1c/ServiceType.c delete mode 100644 e2sim/previous/ASN1c/ServiceType.h delete mode 100644 e2sim/previous/ASN1c/SgNB-UE-X2AP-ID.c delete mode 100644 e2sim/previous/ASN1c/SgNB-UE-X2AP-ID.h delete mode 100644 e2sim/previous/ASN1c/SgNBActivityNotification.c delete mode 100644 e2sim/previous/ASN1c/SgNBActivityNotification.h delete mode 100644 e2sim/previous/ASN1c/SgNBAdditionRequest.c delete mode 100644 e2sim/previous/ASN1c/SgNBAdditionRequest.h delete mode 100644 e2sim/previous/ASN1c/SgNBAdditionRequestAcknowledge.c delete mode 100644 e2sim/previous/ASN1c/SgNBAdditionRequestAcknowledge.h delete mode 100644 e2sim/previous/ASN1c/SgNBAdditionRequestReject.c delete mode 100644 e2sim/previous/ASN1c/SgNBAdditionRequestReject.h delete mode 100644 e2sim/previous/ASN1c/SgNBChangeConfirm.c delete mode 100644 e2sim/previous/ASN1c/SgNBChangeConfirm.h delete mode 100644 e2sim/previous/ASN1c/SgNBChangeRefuse.c delete mode 100644 e2sim/previous/ASN1c/SgNBChangeRefuse.h delete mode 100644 e2sim/previous/ASN1c/SgNBChangeRequired.c delete mode 100644 e2sim/previous/ASN1c/SgNBChangeRequired.h delete mode 100644 e2sim/previous/ASN1c/SgNBCoordinationAssistanceInformation.c delete mode 100644 e2sim/previous/ASN1c/SgNBCoordinationAssistanceInformation.h delete mode 100644 e2sim/previous/ASN1c/SgNBCounterCheckRequest.c delete mode 100644 e2sim/previous/ASN1c/SgNBCounterCheckRequest.h delete mode 100644 e2sim/previous/ASN1c/SgNBModificationConfirm.c delete mode 100644 e2sim/previous/ASN1c/SgNBModificationConfirm.h delete mode 100644 e2sim/previous/ASN1c/SgNBModificationRefuse.c delete mode 100644 e2sim/previous/ASN1c/SgNBModificationRefuse.h delete mode 100644 e2sim/previous/ASN1c/SgNBModificationRequest.c delete mode 100644 e2sim/previous/ASN1c/SgNBModificationRequest.h delete mode 100644 e2sim/previous/ASN1c/SgNBModificationRequestAcknowledge.c delete mode 100644 e2sim/previous/ASN1c/SgNBModificationRequestAcknowledge.h delete mode 100644 e2sim/previous/ASN1c/SgNBModificationRequestReject.c delete mode 100644 e2sim/previous/ASN1c/SgNBModificationRequestReject.h delete mode 100644 e2sim/previous/ASN1c/SgNBModificationRequired.c delete mode 100644 e2sim/previous/ASN1c/SgNBModificationRequired.h delete mode 100644 e2sim/previous/ASN1c/SgNBReconfigurationComplete.c delete mode 100644 e2sim/previous/ASN1c/SgNBReconfigurationComplete.h delete mode 100644 e2sim/previous/ASN1c/SgNBReleaseConfirm.c delete mode 100644 e2sim/previous/ASN1c/SgNBReleaseConfirm.h delete mode 100644 e2sim/previous/ASN1c/SgNBReleaseRequest.c delete mode 100644 e2sim/previous/ASN1c/SgNBReleaseRequest.h delete mode 100644 e2sim/previous/ASN1c/SgNBReleaseRequestAcknowledge.c delete mode 100644 e2sim/previous/ASN1c/SgNBReleaseRequestAcknowledge.h delete mode 100644 e2sim/previous/ASN1c/SgNBReleaseRequestReject.c delete mode 100644 e2sim/previous/ASN1c/SgNBReleaseRequestReject.h delete mode 100644 e2sim/previous/ASN1c/SgNBReleaseRequired.c delete mode 100644 e2sim/previous/ASN1c/SgNBReleaseRequired.h delete mode 100644 e2sim/previous/ASN1c/SgNBResourceCoordinationInformation.c delete mode 100644 e2sim/previous/ASN1c/SgNBResourceCoordinationInformation.h delete mode 100644 e2sim/previous/ASN1c/SgNBSecurityKey.c delete mode 100644 e2sim/previous/ASN1c/SgNBSecurityKey.h delete mode 100644 e2sim/previous/ASN1c/SgNBtoMeNBContainer.c delete mode 100644 e2sim/previous/ASN1c/SgNBtoMeNBContainer.h delete mode 100644 e2sim/previous/ASN1c/SharedResourceType.c delete mode 100644 e2sim/previous/ASN1c/SharedResourceType.h delete mode 100644 e2sim/previous/ASN1c/ShortMAC-I.c delete mode 100644 e2sim/previous/ASN1c/ShortMAC-I.h delete mode 100644 e2sim/previous/ASN1c/SourceOfUEActivityBehaviourInformation.c delete mode 100644 e2sim/previous/ASN1c/SourceOfUEActivityBehaviourInformation.h delete mode 100644 e2sim/previous/ASN1c/SpecialSubframe-Info.c delete mode 100644 e2sim/previous/ASN1c/SpecialSubframe-Info.h delete mode 100644 e2sim/previous/ASN1c/SpecialSubframePatterns.c delete mode 100644 e2sim/previous/ASN1c/SpecialSubframePatterns.h delete mode 100644 e2sim/previous/ASN1c/SpectrumSharingGroupID.c delete mode 100644 e2sim/previous/ASN1c/SpectrumSharingGroupID.h delete mode 100644 e2sim/previous/ASN1c/SplitSRB.c delete mode 100644 e2sim/previous/ASN1c/SplitSRB.h delete mode 100644 e2sim/previous/ASN1c/SplitSRBs.c delete mode 100644 e2sim/previous/ASN1c/SplitSRBs.h delete mode 100644 e2sim/previous/ASN1c/Style-ID.c delete mode 100644 e2sim/previous/ASN1c/Style-ID.h delete mode 100644 e2sim/previous/ASN1c/SubbandCQI.c delete mode 100644 e2sim/previous/ASN1c/SubbandCQI.h delete mode 100644 e2sim/previous/ASN1c/SubbandCQICodeword0.c delete mode 100644 e2sim/previous/ASN1c/SubbandCQICodeword0.h delete mode 100644 e2sim/previous/ASN1c/SubbandCQICodeword1.c delete mode 100644 e2sim/previous/ASN1c/SubbandCQICodeword1.h delete mode 100644 e2sim/previous/ASN1c/SubbandCQIItem.c delete mode 100644 e2sim/previous/ASN1c/SubbandCQIItem.h delete mode 100644 e2sim/previous/ASN1c/SubbandCQIList.c delete mode 100644 e2sim/previous/ASN1c/SubbandCQIList.h delete mode 100644 e2sim/previous/ASN1c/SubbandSize.c delete mode 100644 e2sim/previous/ASN1c/SubbandSize.h delete mode 100644 e2sim/previous/ASN1c/SubframeAllocation.c delete mode 100644 e2sim/previous/ASN1c/SubframeAllocation.h delete mode 100644 e2sim/previous/ASN1c/SubframeAssignment.c delete mode 100644 e2sim/previous/ASN1c/SubframeAssignment.h delete mode 100644 e2sim/previous/ASN1c/SubframeType.c delete mode 100644 e2sim/previous/ASN1c/SubframeType.h delete mode 100644 e2sim/previous/ASN1c/SubscriberProfileIDforRFP.c delete mode 100644 e2sim/previous/ASN1c/SubscriberProfileIDforRFP.h delete mode 100644 e2sim/previous/ASN1c/Subscription-Based-UE-DifferentiationInfo.c delete mode 100644 e2sim/previous/ASN1c/Subscription-Based-UE-DifferentiationInfo.h delete mode 100644 e2sim/previous/ASN1c/SuccessfulOutcome.c delete mode 100644 e2sim/previous/ASN1c/SuccessfulOutcome.h delete mode 100644 e2sim/previous/ASN1c/SupportedSULFreqBandItem.c delete mode 100644 e2sim/previous/ASN1c/SupportedSULFreqBandItem.h delete mode 100644 e2sim/previous/ASN1c/TABasedMDT.c delete mode 100644 e2sim/previous/ASN1c/TABasedMDT.h delete mode 100644 e2sim/previous/ASN1c/TABasedQMC.c delete mode 100644 e2sim/previous/ASN1c/TABasedQMC.h delete mode 100644 e2sim/previous/ASN1c/TAC.c delete mode 100644 e2sim/previous/ASN1c/TAC.h delete mode 100644 e2sim/previous/ASN1c/TAI-Item.c delete mode 100644 e2sim/previous/ASN1c/TAI-Item.h delete mode 100644 e2sim/previous/ASN1c/TAIBasedMDT.c delete mode 100644 e2sim/previous/ASN1c/TAIBasedMDT.h delete mode 100644 e2sim/previous/ASN1c/TAIBasedQMC.c delete mode 100644 e2sim/previous/ASN1c/TAIBasedQMC.h delete mode 100644 e2sim/previous/ASN1c/TAIListforMDT.c delete mode 100644 e2sim/previous/ASN1c/TAIListforMDT.h delete mode 100644 e2sim/previous/ASN1c/TAIListforQMC.c delete mode 100644 e2sim/previous/ASN1c/TAIListforQMC.h delete mode 100644 e2sim/previous/ASN1c/TAListforMDT.c delete mode 100644 e2sim/previous/ASN1c/TAListforMDT.h delete mode 100644 e2sim/previous/ASN1c/TAListforQMC.c delete mode 100644 e2sim/previous/ASN1c/TAListforQMC.h delete mode 100644 e2sim/previous/ASN1c/TDD-Info.c delete mode 100644 e2sim/previous/ASN1c/TDD-Info.h delete mode 100644 e2sim/previous/ASN1c/TDD-InfoNeighbourServedNRCell-Information.c delete mode 100644 e2sim/previous/ASN1c/TDD-InfoNeighbourServedNRCell-Information.h delete mode 100644 e2sim/previous/ASN1c/TDD-InfoServedNRCell-Information.c delete mode 100644 e2sim/previous/ASN1c/TDD-InfoServedNRCell-Information.h delete mode 100644 e2sim/previous/ASN1c/TargetCellInUTRAN.c delete mode 100644 e2sim/previous/ASN1c/TargetCellInUTRAN.h delete mode 100644 e2sim/previous/ASN1c/TargeteNBtoSource-eNBTransparentContainer.c delete mode 100644 e2sim/previous/ASN1c/TargeteNBtoSource-eNBTransparentContainer.h delete mode 100644 e2sim/previous/ASN1c/Threshold-RSRP.c delete mode 100644 e2sim/previous/ASN1c/Threshold-RSRP.h delete mode 100644 e2sim/previous/ASN1c/Threshold-RSRQ.c delete mode 100644 e2sim/previous/ASN1c/Threshold-RSRQ.h delete mode 100644 e2sim/previous/ASN1c/Time-UE-StayedInCell-EnhancedGranularity.c delete mode 100644 e2sim/previous/ASN1c/Time-UE-StayedInCell-EnhancedGranularity.h delete mode 100644 e2sim/previous/ASN1c/Time-UE-StayedInCell.c delete mode 100644 e2sim/previous/ASN1c/Time-UE-StayedInCell.h delete mode 100644 e2sim/previous/ASN1c/TimeStamp.c delete mode 100644 e2sim/previous/ASN1c/TimeStamp.h delete mode 100644 e2sim/previous/ASN1c/TimeToWait.c delete mode 100644 e2sim/previous/ASN1c/TimeToWait.h delete mode 100644 e2sim/previous/ASN1c/TraceActivation.c delete mode 100644 e2sim/previous/ASN1c/TraceActivation.h delete mode 100644 e2sim/previous/ASN1c/TraceCollectionEntityIPAddress.c delete mode 100644 e2sim/previous/ASN1c/TraceCollectionEntityIPAddress.h delete mode 100644 e2sim/previous/ASN1c/TraceDepth.c delete mode 100644 e2sim/previous/ASN1c/TraceDepth.h delete mode 100644 e2sim/previous/ASN1c/Transmission-Bandwidth.c delete mode 100644 e2sim/previous/ASN1c/Transmission-Bandwidth.h delete mode 100644 e2sim/previous/ASN1c/TransportLayerAddress.c delete mode 100644 e2sim/previous/ASN1c/TransportLayerAddress.h delete mode 100644 e2sim/previous/ASN1c/TriggeringMessage.c delete mode 100644 e2sim/previous/ASN1c/TriggeringMessage.h delete mode 100644 e2sim/previous/ASN1c/TunnelInformation.c delete mode 100644 e2sim/previous/ASN1c/TunnelInformation.h delete mode 100644 e2sim/previous/ASN1c/TypeOfError.c delete mode 100644 e2sim/previous/ASN1c/TypeOfError.h delete mode 100644 e2sim/previous/ASN1c/TypeOfMessage.c delete mode 100644 e2sim/previous/ASN1c/TypeOfMessage.h delete mode 100644 e2sim/previous/ASN1c/UE-ContextInformation-SgNBModReq.c delete mode 100644 e2sim/previous/ASN1c/UE-ContextInformation-SgNBModReq.h delete mode 100644 e2sim/previous/ASN1c/UE-ContextInformation.c delete mode 100644 e2sim/previous/ASN1c/UE-ContextInformation.h delete mode 100644 e2sim/previous/ASN1c/UE-ContextInformationRetrieve.c delete mode 100644 e2sim/previous/ASN1c/UE-ContextInformationRetrieve.h delete mode 100644 e2sim/previous/ASN1c/UE-ContextInformationSeNBModReq.c delete mode 100644 e2sim/previous/ASN1c/UE-ContextInformationSeNBModReq.h delete mode 100644 e2sim/previous/ASN1c/UE-ContextKeptIndicator.c delete mode 100644 e2sim/previous/ASN1c/UE-ContextKeptIndicator.h delete mode 100644 e2sim/previous/ASN1c/UE-ContextReferenceAtSeNB.c delete mode 100644 e2sim/previous/ASN1c/UE-ContextReferenceAtSeNB.h delete mode 100644 e2sim/previous/ASN1c/UE-ContextReferenceAtSgNB.c delete mode 100644 e2sim/previous/ASN1c/UE-ContextReferenceAtSgNB.h delete mode 100644 e2sim/previous/ASN1c/UE-ContextReferenceAtWT.c delete mode 100644 e2sim/previous/ASN1c/UE-ContextReferenceAtWT.h delete mode 100644 e2sim/previous/ASN1c/UE-HistoryInformation.c delete mode 100644 e2sim/previous/ASN1c/UE-HistoryInformation.h delete mode 100644 e2sim/previous/ASN1c/UE-HistoryInformationFromTheUE.c delete mode 100644 e2sim/previous/ASN1c/UE-HistoryInformationFromTheUE.h delete mode 100644 e2sim/previous/ASN1c/UE-RLF-Report-Container-for-extended-bands.c delete mode 100644 e2sim/previous/ASN1c/UE-RLF-Report-Container-for-extended-bands.h delete mode 100644 e2sim/previous/ASN1c/UE-RLF-Report-Container.c delete mode 100644 e2sim/previous/ASN1c/UE-RLF-Report-Container.h delete mode 100644 e2sim/previous/ASN1c/UE-S1AP-ID.c delete mode 100644 e2sim/previous/ASN1c/UE-S1AP-ID.h delete mode 100644 e2sim/previous/ASN1c/UE-X2AP-ID-Extension.c delete mode 100644 e2sim/previous/ASN1c/UE-X2AP-ID-Extension.h delete mode 100644 e2sim/previous/ASN1c/UE-X2AP-ID.c delete mode 100644 e2sim/previous/ASN1c/UE-X2AP-ID.h delete mode 100644 e2sim/previous/ASN1c/UEAggregateMaximumBitRate.c delete mode 100644 e2sim/previous/ASN1c/UEAggregateMaximumBitRate.h delete mode 100644 e2sim/previous/ASN1c/UEAppLayerMeasConfig.c delete mode 100644 e2sim/previous/ASN1c/UEAppLayerMeasConfig.h delete mode 100644 e2sim/previous/ASN1c/UEContextRelease.c delete mode 100644 e2sim/previous/ASN1c/UEContextRelease.h delete mode 100644 e2sim/previous/ASN1c/UEID.c delete mode 100644 e2sim/previous/ASN1c/UEID.h delete mode 100644 e2sim/previous/ASN1c/UENRMeasurement.c delete mode 100644 e2sim/previous/ASN1c/UENRMeasurement.h delete mode 100644 e2sim/previous/ASN1c/UESecurityCapabilities.c delete mode 100644 e2sim/previous/ASN1c/UESecurityCapabilities.h delete mode 100644 e2sim/previous/ASN1c/UESidelinkAggregateMaximumBitRate.c delete mode 100644 e2sim/previous/ASN1c/UESidelinkAggregateMaximumBitRate.h delete mode 100644 e2sim/previous/ASN1c/UEsToBeResetList-Item.c delete mode 100644 e2sim/previous/ASN1c/UEsToBeResetList-Item.h delete mode 100644 e2sim/previous/ASN1c/UEsToBeResetList.c delete mode 100644 e2sim/previous/ASN1c/UEsToBeResetList.h delete mode 100644 e2sim/previous/ASN1c/UL-GBR-PRB-usage.c delete mode 100644 e2sim/previous/ASN1c/UL-GBR-PRB-usage.h delete mode 100644 e2sim/previous/ASN1c/UL-HighInterferenceIndication.c delete mode 100644 e2sim/previous/ASN1c/UL-HighInterferenceIndication.h delete mode 100644 e2sim/previous/ASN1c/UL-HighInterferenceIndicationInfo-Item.c delete mode 100644 e2sim/previous/ASN1c/UL-HighInterferenceIndicationInfo-Item.h delete mode 100644 e2sim/previous/ASN1c/UL-HighInterferenceIndicationInfo.c delete mode 100644 e2sim/previous/ASN1c/UL-HighInterferenceIndicationInfo.h delete mode 100644 e2sim/previous/ASN1c/UL-InterferenceOverloadIndication-Item.c delete mode 100644 e2sim/previous/ASN1c/UL-InterferenceOverloadIndication-Item.h delete mode 100644 e2sim/previous/ASN1c/UL-InterferenceOverloadIndication.c delete mode 100644 e2sim/previous/ASN1c/UL-InterferenceOverloadIndication.h delete mode 100644 e2sim/previous/ASN1c/UL-Total-PRB-usage.c delete mode 100644 e2sim/previous/ASN1c/UL-Total-PRB-usage.h delete mode 100644 e2sim/previous/ASN1c/UL-UE-Configuration.c delete mode 100644 e2sim/previous/ASN1c/UL-UE-Configuration.h delete mode 100644 e2sim/previous/ASN1c/UL-non-GBR-PRB-usage.c delete mode 100644 e2sim/previous/ASN1c/UL-non-GBR-PRB-usage.h delete mode 100644 e2sim/previous/ASN1c/UL-scheduling-PDCCH-CCE-usage.c delete mode 100644 e2sim/previous/ASN1c/UL-scheduling-PDCCH-CCE-usage.h delete mode 100644 e2sim/previous/ASN1c/ULConfiguration.c delete mode 100644 e2sim/previous/ASN1c/ULConfiguration.h delete mode 100644 e2sim/previous/ASN1c/ULOnlySharing.c delete mode 100644 e2sim/previous/ASN1c/ULOnlySharing.h delete mode 100644 e2sim/previous/ASN1c/ULResourceBitmapULandDLSharing.c delete mode 100644 e2sim/previous/ASN1c/ULResourceBitmapULandDLSharing.h delete mode 100644 e2sim/previous/ASN1c/ULResourcesULandDLSharing.c delete mode 100644 e2sim/previous/ASN1c/ULResourcesULandDLSharing.h delete mode 100644 e2sim/previous/ASN1c/ULandDLSharing.c delete mode 100644 e2sim/previous/ASN1c/ULandDLSharing.h delete mode 100644 e2sim/previous/ASN1c/UnsuccessfulOutcome.c delete mode 100644 e2sim/previous/ASN1c/UnsuccessfulOutcome.h delete mode 100644 e2sim/previous/ASN1c/UsableABSInformation.c delete mode 100644 e2sim/previous/ASN1c/UsableABSInformation.h delete mode 100644 e2sim/previous/ASN1c/UsableABSInformationFDD.c delete mode 100644 e2sim/previous/ASN1c/UsableABSInformationFDD.h delete mode 100644 e2sim/previous/ASN1c/UsableABSInformationTDD.c delete mode 100644 e2sim/previous/ASN1c/UsableABSInformationTDD.h delete mode 100644 e2sim/previous/ASN1c/UserPlaneTrafficActivityReport.c delete mode 100644 e2sim/previous/ASN1c/UserPlaneTrafficActivityReport.h delete mode 100644 e2sim/previous/ASN1c/V2XServicesAuthorized.c delete mode 100644 e2sim/previous/ASN1c/V2XServicesAuthorized.h delete mode 100644 e2sim/previous/ASN1c/VehicleUE.c delete mode 100644 e2sim/previous/ASN1c/VehicleUE.h delete mode 100644 e2sim/previous/ASN1c/WLANMeasConfig.c delete mode 100644 e2sim/previous/ASN1c/WLANMeasConfig.h delete mode 100644 e2sim/previous/ASN1c/WLANMeasConfigNameList.c delete mode 100644 e2sim/previous/ASN1c/WLANMeasConfigNameList.h delete mode 100644 e2sim/previous/ASN1c/WLANMeasurementConfiguration.c delete mode 100644 e2sim/previous/ASN1c/WLANMeasurementConfiguration.h delete mode 100644 e2sim/previous/ASN1c/WLANName.c delete mode 100644 e2sim/previous/ASN1c/WLANName.h delete mode 100644 e2sim/previous/ASN1c/WT-UE-XwAP-ID.c delete mode 100644 e2sim/previous/ASN1c/WT-UE-XwAP-ID.h delete mode 100644 e2sim/previous/ASN1c/WTID-Long-Type2.c delete mode 100644 e2sim/previous/ASN1c/WTID-Long-Type2.h delete mode 100644 e2sim/previous/ASN1c/WTID-Type1.c delete mode 100644 e2sim/previous/ASN1c/WTID-Type1.h delete mode 100644 e2sim/previous/ASN1c/WTID.c delete mode 100644 e2sim/previous/ASN1c/WTID.h delete mode 100644 e2sim/previous/ASN1c/WidebandCQI.c delete mode 100644 e2sim/previous/ASN1c/WidebandCQI.h delete mode 100644 e2sim/previous/ASN1c/WidebandCQICodeword1.c delete mode 100644 e2sim/previous/ASN1c/WidebandCQICodeword1.h delete mode 100644 e2sim/previous/ASN1c/X2AP-Message.c delete mode 100644 e2sim/previous/ASN1c/X2AP-Message.h delete mode 100644 e2sim/previous/ASN1c/X2APMessageTransfer.c delete mode 100644 e2sim/previous/ASN1c/X2APMessageTransfer.h delete mode 100644 e2sim/previous/ASN1c/X2BenefitValue.c delete mode 100644 e2sim/previous/ASN1c/X2BenefitValue.h delete mode 100644 e2sim/previous/ASN1c/X2Release.c delete mode 100644 e2sim/previous/ASN1c/X2Release.h delete mode 100644 e2sim/previous/ASN1c/X2RemovalFailure.c delete mode 100644 e2sim/previous/ASN1c/X2RemovalFailure.h delete mode 100644 e2sim/previous/ASN1c/X2RemovalRequest.c delete mode 100644 e2sim/previous/ASN1c/X2RemovalRequest.h delete mode 100644 e2sim/previous/ASN1c/X2RemovalResponse.c delete mode 100644 e2sim/previous/ASN1c/X2RemovalResponse.h delete mode 100644 e2sim/previous/ASN1c/X2SetupFailure.c delete mode 100644 e2sim/previous/ASN1c/X2SetupFailure.h delete mode 100644 e2sim/previous/ASN1c/X2SetupRequest.c delete mode 100644 e2sim/previous/ASN1c/X2SetupRequest.h delete mode 100644 e2sim/previous/ASN1c/X2SetupResponse.c delete mode 100644 e2sim/previous/ASN1c/X2SetupResponse.h delete mode 100644 e2sim/previous/ASN1c/asn_SEQUENCE_OF.c delete mode 100644 e2sim/previous/ASN1c/asn_SEQUENCE_OF.h delete mode 100644 e2sim/previous/ASN1c/asn_SET_OF.c delete mode 100644 e2sim/previous/ASN1c/asn_SET_OF.h delete mode 100644 e2sim/previous/ASN1c/asn_application.c delete mode 100644 e2sim/previous/ASN1c/asn_application.h delete mode 100644 e2sim/previous/ASN1c/asn_bit_data.c delete mode 100644 e2sim/previous/ASN1c/asn_bit_data.h delete mode 100644 e2sim/previous/ASN1c/asn_codecs.h delete mode 100644 e2sim/previous/ASN1c/asn_codecs_prim.c delete mode 100644 e2sim/previous/ASN1c/asn_codecs_prim.h delete mode 100644 e2sim/previous/ASN1c/asn_constant.h delete mode 100644 e2sim/previous/ASN1c/asn_internal.c delete mode 100644 e2sim/previous/ASN1c/asn_internal.h delete mode 100644 e2sim/previous/ASN1c/asn_ioc.h delete mode 100644 e2sim/previous/ASN1c/asn_random_fill.c delete mode 100644 e2sim/previous/ASN1c/asn_random_fill.h delete mode 100644 e2sim/previous/ASN1c/asn_system.h delete mode 100644 e2sim/previous/ASN1c/ber_decoder.c delete mode 100644 e2sim/previous/ASN1c/ber_decoder.h delete mode 100644 e2sim/previous/ASN1c/ber_tlv_length.c delete mode 100644 e2sim/previous/ASN1c/ber_tlv_length.h delete mode 100644 e2sim/previous/ASN1c/ber_tlv_tag.c delete mode 100644 e2sim/previous/ASN1c/ber_tlv_tag.h delete mode 100644 e2sim/previous/ASN1c/constr_CHOICE.c delete mode 100644 e2sim/previous/ASN1c/constr_CHOICE.h delete mode 100644 e2sim/previous/ASN1c/constr_SEQUENCE.c delete mode 100644 e2sim/previous/ASN1c/constr_SEQUENCE.h delete mode 100644 e2sim/previous/ASN1c/constr_SEQUENCE_OF.c delete mode 100644 e2sim/previous/ASN1c/constr_SEQUENCE_OF.h delete mode 100644 e2sim/previous/ASN1c/constr_SET_OF.c delete mode 100644 e2sim/previous/ASN1c/constr_SET_OF.h delete mode 100644 e2sim/previous/ASN1c/constr_TYPE.c delete mode 100644 e2sim/previous/ASN1c/constr_TYPE.h delete mode 100644 e2sim/previous/ASN1c/constraints.c delete mode 100644 e2sim/previous/ASN1c/constraints.h delete mode 100644 e2sim/previous/ASN1c/converter-example.mk delete mode 100644 e2sim/previous/ASN1c/der_encoder.c delete mode 100644 e2sim/previous/ASN1c/der_encoder.h delete mode 100644 e2sim/previous/ASN1c/pdu_collection.c delete mode 100644 e2sim/previous/ASN1c/per_decoder.c delete mode 100644 e2sim/previous/ASN1c/per_decoder.h delete mode 100644 e2sim/previous/ASN1c/per_encoder.c delete mode 100644 e2sim/previous/ASN1c/per_encoder.h delete mode 100644 e2sim/previous/ASN1c/per_opentype.c delete mode 100644 e2sim/previous/ASN1c/per_opentype.h delete mode 100644 e2sim/previous/ASN1c/per_support.c delete mode 100644 e2sim/previous/ASN1c/per_support.h delete mode 100644 e2sim/previous/ASN1c/xer_decoder.c delete mode 100644 e2sim/previous/ASN1c/xer_decoder.h delete mode 100644 e2sim/previous/ASN1c/xer_encoder.c delete mode 100644 e2sim/previous/ASN1c/xer_encoder.h delete mode 100644 e2sim/previous/ASN1c/xer_support.c delete mode 100644 e2sim/previous/ASN1c/xer_support.h delete mode 100644 e2sim/previous/CMakeLists.txt delete mode 100644 e2sim/previous/README.md delete mode 100755 e2sim/previous/build_e2sim delete mode 100644 e2sim/previous/docker/Dockerfile delete mode 100644 e2sim/previous/docker/container-tag.yaml delete mode 100644 e2sim/previous/docker/old/DockerFile_old delete mode 100644 e2sim/previous/docker/old/Dockerfile delete mode 100644 e2sim/previous/docker/old/Dockerfile_base delete mode 100755 e2sim/previous/docker/old/configure_rmr delete mode 100644 e2sim/previous/docker/old/empty.rt delete mode 100755 e2sim/previous/docker/old/install_asn1c delete mode 100755 e2sim/previous/docker/old/install_rmr delete mode 100644 e2sim/previous/docker/old/local.rt delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/ANY.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/ANY.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/BIT_STRING.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/BIT_STRING.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/BIT_STRING_oer.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/C-RNTI.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/C-RNTI.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/CU-CP-Usage-Report-CellResourceReportItem.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/CU-CP-Usage-Report-CellResourceReportItem.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/CU-CP-Usage-Report-Per-UE.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/CU-CP-Usage-Report-Per-UE.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/CU-CP-Usage-Report-UeResourceReportItem.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/CU-CP-Usage-Report-UeResourceReportItem.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/CU-UP-Usage-Report-CellResourceReportItem.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/CU-UP-Usage-Report-CellResourceReportItem.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/CU-UP-Usage-Report-Per-UE.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/CU-UP-Usage-Report-Per-UE.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/CU-UP-Usage-Report-UeResourceReportItem.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/CU-UP-Usage-Report-UeResourceReportItem.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/CUUPMeasurement-Container.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/CUUPMeasurement-Container.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/Cause.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/Cause.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/CauseMisc.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/CauseMisc.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/CauseProtocol.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/CauseProtocol.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/CauseRIC.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/CauseRIC.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/CauseRICservice.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/CauseRICservice.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/CauseTransport.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/CauseTransport.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/CellResourceReportListItem.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/CellResourceReportListItem.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/Criticality.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/Criticality.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/CriticalityDiagnostics-IE-Item.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/CriticalityDiagnostics-IE-Item.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/CriticalityDiagnostics-IE-List.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/CriticalityDiagnostics-IE-List.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/CriticalityDiagnostics.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/CriticalityDiagnostics.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/DU-Usage-Report-CellResourceReportItem.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/DU-Usage-Report-CellResourceReportItem.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/DU-Usage-Report-Per-UE.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/DU-Usage-Report-Per-UE.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/DU-Usage-Report-UeResourceReportItem.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/DU-Usage-Report-UeResourceReportItem.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/E2AP-PDU.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/E2AP-PDU.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/E2SM-KPM-ActionDefinition.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/E2SM-KPM-ActionDefinition.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/E2SM-KPM-EventTriggerDefinition-Format1.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/E2SM-KPM-EventTriggerDefinition-Format1.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/E2SM-KPM-EventTriggerDefinition.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/E2SM-KPM-EventTriggerDefinition.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/E2SM-KPM-IndicationHeader-Format1.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/E2SM-KPM-IndicationHeader-Format1.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/E2SM-KPM-IndicationHeader.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/E2SM-KPM-IndicationHeader.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/E2SM-KPM-IndicationMessage-Format1.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/E2SM-KPM-IndicationMessage-Format1.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/E2SM-KPM-IndicationMessage.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/E2SM-KPM-IndicationMessage.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/E2SM-KPM-RANfunction-Description.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/E2SM-KPM-RANfunction-Description.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/E2setupFailure.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/E2setupFailure.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/E2setupRequest.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/E2setupRequest.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/E2setupResponse.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/E2setupResponse.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/ENB-ID-Choice.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/ENB-ID-Choice.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/ENB-ID.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/ENB-ID.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/ENGNB-ID.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/ENGNB-ID.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/EPC-CUUP-PM-Format.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/EPC-CUUP-PM-Format.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/EPC-DU-PM-Container.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/EPC-DU-PM-Container.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/ErrorIndication.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/ErrorIndication.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/FGC-CUUP-PM-Format.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/FGC-CUUP-PM-Format.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/FGC-DU-PM-Container.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/FGC-DU-PM-Container.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/FQIPERSlicesPerPlmnListItem.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/FQIPERSlicesPerPlmnListItem.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/FQIPERSlicesPerPlmnPerCellListItem.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/FQIPERSlicesPerPlmnPerCellListItem.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/GNB-CU-CP-Name.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/GNB-CU-CP-Name.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/GNB-CU-UP-ID.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/GNB-CU-UP-ID.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/GNB-CU-UP-Name.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/GNB-CU-UP-Name.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/GNB-DU-ID.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/GNB-DU-ID.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/GNB-DU-Name.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/GNB-DU-Name.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/GNB-ID-Choice.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/GNB-ID-Choice.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/GNB-Name.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/GNB-Name.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/GlobalE2node-ID.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/GlobalE2node-ID.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/GlobalE2node-eNB-ID.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/GlobalE2node-eNB-ID.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/GlobalE2node-en-gNB-ID.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/GlobalE2node-en-gNB-ID.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/GlobalE2node-gNB-ID.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/GlobalE2node-gNB-ID.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/GlobalE2node-ng-eNB-ID.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/GlobalE2node-ng-eNB-ID.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/GlobalENB-ID.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/GlobalENB-ID.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/GlobalKPMnode-ID.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/GlobalKPMnode-ID.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/GlobalKPMnode-eNB-ID.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/GlobalKPMnode-eNB-ID.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/GlobalKPMnode-en-gNB-ID.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/GlobalKPMnode-en-gNB-ID.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/GlobalKPMnode-gNB-ID.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/GlobalKPMnode-gNB-ID.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/GlobalKPMnode-ng-eNB-ID.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/GlobalKPMnode-ng-eNB-ID.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/GlobalRIC-ID.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/GlobalRIC-ID.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/GlobalenGNB-ID.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/GlobalenGNB-ID.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/GlobalgNB-ID.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/GlobalgNB-ID.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/GlobalngeNB-ID.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/GlobalngeNB-ID.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/INTEGER.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/INTEGER.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/INTEGER_oer.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/InitiatingMessage.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/InitiatingMessage.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/Makefile.am.asn1convert delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/Makefile.am.libasncodec delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/NI-Type.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/NI-Type.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/NRCGI.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/NRCGI.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/NRCellIdentity.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/NRCellIdentity.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/NativeEnumerated.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/NativeEnumerated.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/NativeEnumerated_oer.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/NativeInteger.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/NativeInteger.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/NativeInteger_oer.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/OCTET_STRING.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/OCTET_STRING.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/OCTET_STRING_oer.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/OCUCP-PF-Container.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/OCUCP-PF-Container.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/OCUUP-PF-Container.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/OCUUP-PF-Container.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/ODU-PF-Container.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/ODU-PF-Container.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/OPEN_TYPE.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/OPEN_TYPE.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/OPEN_TYPE_oer.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/PF-Container.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/PF-Container.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/PF-ContainerListItem.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/PF-ContainerListItem.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/PLMN-Identity.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/PLMN-Identity.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/PM-Containers-List.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/PM-Containers-List.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/PerQCIReportListItem.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/PerQCIReportListItem.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/PerQCIReportListItemFormat.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/PerQCIReportListItemFormat.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/PlmnID-List.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/PlmnID-List.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/Presence.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/Presence.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/PrintableString.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/PrintableString.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/ProcedureCode.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/ProcedureCode.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/ProtocolIE-Container.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/ProtocolIE-Container.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/ProtocolIE-ContainerList.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/ProtocolIE-ContainerList.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/ProtocolIE-ContainerPair.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/ProtocolIE-ContainerPair.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/ProtocolIE-ContainerPairList.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/ProtocolIE-ContainerPairList.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/ProtocolIE-Field.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/ProtocolIE-Field.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/ProtocolIE-FieldPair.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/ProtocolIE-FieldPair.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/ProtocolIE-ID.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/ProtocolIE-ID.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/ProtocolIE-SingleContainer.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/ProtocolIE-SingleContainer.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/RAN-Container.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/RAN-Container.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/RANcallProcess-ID-string.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/RANcallProcess-ID-string.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/RANfunction-Item.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/RANfunction-Item.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/RANfunction-Name.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/RANfunction-Name.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/RANfunctionDefinition.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/RANfunctionDefinition.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/RANfunctionID-Item.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/RANfunctionID-Item.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/RANfunctionID.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/RANfunctionID.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/RANfunctionIDcause-Item.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/RANfunctionIDcause-Item.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/RANfunctionRevision.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/RANfunctionRevision.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/RANfunctions-List.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/RANfunctions-List.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/RANfunctionsID-List.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/RANfunctionsID-List.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/RANfunctionsIDcause-List.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/RANfunctionsIDcause-List.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/RIC-EventTriggerStyle-List.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/RIC-EventTriggerStyle-List.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/RIC-Format-Type.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/RIC-Format-Type.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/RIC-ReportStyle-List.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/RIC-ReportStyle-List.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/RIC-Style-Name.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/RIC-Style-Name.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/RIC-Style-Type.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/RIC-Style-Type.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/RICaction-Admitted-Item.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/RICaction-Admitted-Item.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/RICaction-Admitted-List.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/RICaction-Admitted-List.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/RICaction-NotAdmitted-Item.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/RICaction-NotAdmitted-Item.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/RICaction-NotAdmitted-List.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/RICaction-NotAdmitted-List.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/RICaction-ToBeSetup-Item.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/RICaction-ToBeSetup-Item.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/RICactionDefinition.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/RICactionDefinition.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/RICactionID.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/RICactionID.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/RICactionType.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/RICactionType.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/RICactions-ToBeSetup-List.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/RICactions-ToBeSetup-List.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/RICcallProcessID.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/RICcallProcessID.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/RICcontrolAckRequest.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/RICcontrolAckRequest.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/RICcontrolAcknowledge.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/RICcontrolAcknowledge.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/RICcontrolFailure.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/RICcontrolFailure.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/RICcontrolHeader.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/RICcontrolHeader.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/RICcontrolMessage.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/RICcontrolMessage.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/RICcontrolOutcome.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/RICcontrolOutcome.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/RICcontrolRequest.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/RICcontrolRequest.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/RICcontrolStatus.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/RICcontrolStatus.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/RICeventTriggerDefinition.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/RICeventTriggerDefinition.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/RICindication.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/RICindication.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/RICindicationHeader.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/RICindicationHeader.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/RICindicationMessage.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/RICindicationMessage.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/RICindicationSN.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/RICindicationSN.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/RICindicationType.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/RICindicationType.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/RICrequestID.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/RICrequestID.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/RICserviceQuery.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/RICserviceQuery.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/RICserviceUpdate.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/RICserviceUpdate.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/RICserviceUpdateAcknowledge.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/RICserviceUpdateAcknowledge.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/RICserviceUpdateFailure.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/RICserviceUpdateFailure.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/RICsubscriptionDeleteFailure.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/RICsubscriptionDeleteFailure.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/RICsubscriptionDeleteRequest.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/RICsubscriptionDeleteRequest.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/RICsubscriptionDeleteResponse.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/RICsubscriptionDeleteResponse.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/RICsubscriptionDetails.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/RICsubscriptionDetails.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/RICsubscriptionFailure.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/RICsubscriptionFailure.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/RICsubscriptionRequest.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/RICsubscriptionRequest.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/RICsubscriptionResponse.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/RICsubscriptionResponse.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/RICsubsequentAction.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/RICsubsequentAction.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/RICsubsequentActionType.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/RICsubsequentActionType.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/RICtimeToWait.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/RICtimeToWait.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/RT-Period-IE.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/RT-Period-IE.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/ResetRequest.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/ResetRequest.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/ResetResponse.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/ResetResponse.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/SNSSAI.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/SNSSAI.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/ServedPlmnPerCellListItem.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/ServedPlmnPerCellListItem.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/SlicePerPlmnPerCellListItem.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/SlicePerPlmnPerCellListItem.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/SliceToReportListItem.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/SliceToReportListItem.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/SuccessfulOutcome.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/SuccessfulOutcome.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/TimeToWait.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/TimeToWait.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/Timestamp.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/Timestamp.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/Trigger-ConditionIE-Item.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/Trigger-ConditionIE-Item.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/TriggeringMessage.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/TriggeringMessage.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/TypeOfError.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/TypeOfError.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/UE-Report-Type.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/UE-Report-Type.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/UnsuccessfulOutcome.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/UnsuccessfulOutcome.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/asn_SEQUENCE_OF.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/asn_SEQUENCE_OF.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/asn_SET_OF.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/asn_SET_OF.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/asn_application.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/asn_application.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/asn_bit_data.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/asn_bit_data.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/asn_codecs.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/asn_codecs_prim.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/asn_codecs_prim.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/asn_constant.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/asn_internal.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/asn_internal.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/asn_ioc.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/asn_random_fill.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/asn_random_fill.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/asn_system.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/ber_decoder.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/ber_decoder.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/ber_tlv_length.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/ber_tlv_length.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/ber_tlv_tag.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/ber_tlv_tag.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/constr_CHOICE.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/constr_CHOICE.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/constr_CHOICE_oer.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/constr_SEQUENCE.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/constr_SEQUENCE.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/constr_SEQUENCE_OF.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/constr_SEQUENCE_OF.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/constr_SEQUENCE_oer.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/constr_SET_OF.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/constr_SET_OF.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/constr_SET_OF_oer.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/constr_TYPE.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/constr_TYPE.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/constraints.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/constraints.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/converter-example.mk delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/der_encoder.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/der_encoder.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/oer_decoder.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/oer_decoder.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/oer_encoder.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/oer_encoder.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/oer_support.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/oer_support.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/pdu_collection.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/per_decoder.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/per_decoder.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/per_encoder.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/per_encoder.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/per_opentype.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/per_opentype.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/per_support.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/per_support.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/xer_decoder.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/xer_decoder.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/xer_encoder.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/xer_encoder.h delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/xer_support.c delete mode 100644 e2sim/previous/e2apv1sim/ASN1c/xer_support.h delete mode 100644 e2sim/previous/e2apv1sim/CMakeLists.txt delete mode 100644 e2sim/previous/e2apv1sim/Dockerfile delete mode 100644 e2sim/previous/e2apv1sim/README.md delete mode 100755 e2sim/previous/e2apv1sim/build_e2sim delete mode 100644 e2sim/previous/e2apv1sim/cellMeasReport.txt delete mode 100644 e2sim/previous/e2apv1sim/docker/Dockerfile delete mode 100644 e2sim/previous/e2apv1sim/docker/container-tag.yaml delete mode 100644 e2sim/previous/e2apv1sim/docker/old/DockerFile_old delete mode 100644 e2sim/previous/e2apv1sim/docker/old/Dockerfile delete mode 100644 e2sim/previous/e2apv1sim/docker/old/Dockerfile_base delete mode 100755 e2sim/previous/e2apv1sim/docker/old/configure_rmr delete mode 100644 e2sim/previous/e2apv1sim/docker/old/empty.rt delete mode 100755 e2sim/previous/e2apv1sim/docker/old/install_asn1c delete mode 100755 e2sim/previous/e2apv1sim/docker/old/install_rmr delete mode 100644 e2sim/previous/e2apv1sim/docker/old/local.rt delete mode 100644 e2sim/previous/e2apv1sim/e2sim.cpp delete mode 100644 e2sim/previous/e2apv1sim/e2sim.hpp delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/ANY.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/ANY.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/BIT_STRING.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/BIT_STRING.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/BIT_STRING_oer.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/C-RNTI.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/C-RNTI.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/CU-CP-Usage-Report-CellResourceReportItem.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/CU-CP-Usage-Report-CellResourceReportItem.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/CU-CP-Usage-Report-Per-UE.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/CU-CP-Usage-Report-Per-UE.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/CU-CP-Usage-Report-UeResourceReportItem.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/CU-CP-Usage-Report-UeResourceReportItem.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/CU-UP-Usage-Report-CellResourceReportItem.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/CU-UP-Usage-Report-CellResourceReportItem.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/CU-UP-Usage-Report-Per-UE.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/CU-UP-Usage-Report-Per-UE.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/CU-UP-Usage-Report-UeResourceReportItem.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/CU-UP-Usage-Report-UeResourceReportItem.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/CUUPMeasurement-Container.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/CUUPMeasurement-Container.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/Cause.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/Cause.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/CauseMisc.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/CauseMisc.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/CauseProtocol.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/CauseProtocol.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/CauseRIC.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/CauseRIC.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/CauseRICservice.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/CauseRICservice.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/CauseTransport.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/CauseTransport.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/CellResourceReportListItem.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/CellResourceReportListItem.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/Criticality.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/Criticality.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/CriticalityDiagnostics-IE-Item.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/CriticalityDiagnostics-IE-Item.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/CriticalityDiagnostics-IE-List.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/CriticalityDiagnostics-IE-List.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/CriticalityDiagnostics.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/CriticalityDiagnostics.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/DU-Usage-Report-CellResourceReportItem.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/DU-Usage-Report-CellResourceReportItem.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/DU-Usage-Report-Per-UE.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/DU-Usage-Report-Per-UE.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/DU-Usage-Report-UeResourceReportItem.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/DU-Usage-Report-UeResourceReportItem.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/E2AP-PDU.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/E2AP-PDU.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/E2SM-KPM-ActionDefinition.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/E2SM-KPM-ActionDefinition.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/E2SM-KPM-EventTriggerDefinition-Format1.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/E2SM-KPM-EventTriggerDefinition-Format1.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/E2SM-KPM-EventTriggerDefinition.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/E2SM-KPM-EventTriggerDefinition.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/E2SM-KPM-IndicationHeader-Format1.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/E2SM-KPM-IndicationHeader-Format1.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/E2SM-KPM-IndicationHeader.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/E2SM-KPM-IndicationHeader.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/E2SM-KPM-IndicationMessage-Format1.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/E2SM-KPM-IndicationMessage-Format1.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/E2SM-KPM-IndicationMessage.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/E2SM-KPM-IndicationMessage.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/E2SM-KPM-RANfunction-Description.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/E2SM-KPM-RANfunction-Description.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/E2setupFailure.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/E2setupFailure.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/E2setupRequest.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/E2setupRequest.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/E2setupResponse.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/E2setupResponse.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/ENB-ID-Choice.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/ENB-ID-Choice.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/ENB-ID.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/ENB-ID.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/ENGNB-ID.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/ENGNB-ID.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/EPC-CUUP-PM-Format.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/EPC-CUUP-PM-Format.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/EPC-DU-PM-Container.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/EPC-DU-PM-Container.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/ErrorIndication.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/ErrorIndication.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/FGC-CUUP-PM-Format.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/FGC-CUUP-PM-Format.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/FGC-DU-PM-Container.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/FGC-DU-PM-Container.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/FQIPERSlicesPerPlmnListItem.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/FQIPERSlicesPerPlmnListItem.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/FQIPERSlicesPerPlmnPerCellListItem.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/FQIPERSlicesPerPlmnPerCellListItem.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/GNB-CU-CP-Name.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/GNB-CU-CP-Name.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/GNB-CU-UP-ID.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/GNB-CU-UP-ID.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/GNB-CU-UP-Name.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/GNB-CU-UP-Name.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/GNB-DU-ID.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/GNB-DU-ID.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/GNB-DU-Name.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/GNB-DU-Name.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/GNB-ID-Choice.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/GNB-ID-Choice.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/GNB-Name.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/GNB-Name.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/GlobalE2node-ID.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/GlobalE2node-ID.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/GlobalE2node-eNB-ID.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/GlobalE2node-eNB-ID.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/GlobalE2node-en-gNB-ID.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/GlobalE2node-en-gNB-ID.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/GlobalE2node-gNB-ID.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/GlobalE2node-gNB-ID.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/GlobalE2node-ng-eNB-ID.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/GlobalE2node-ng-eNB-ID.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/GlobalENB-ID.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/GlobalENB-ID.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/GlobalKPMnode-ID.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/GlobalKPMnode-ID.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/GlobalKPMnode-eNB-ID.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/GlobalKPMnode-eNB-ID.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/GlobalKPMnode-en-gNB-ID.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/GlobalKPMnode-en-gNB-ID.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/GlobalKPMnode-gNB-ID.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/GlobalKPMnode-gNB-ID.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/GlobalKPMnode-ng-eNB-ID.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/GlobalKPMnode-ng-eNB-ID.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/GlobalRIC-ID.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/GlobalRIC-ID.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/GlobalenGNB-ID.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/GlobalenGNB-ID.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/GlobalgNB-ID.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/GlobalgNB-ID.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/GlobalngeNB-ID.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/GlobalngeNB-ID.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/INTEGER.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/INTEGER.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/INTEGER_oer.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/InitiatingMessage.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/InitiatingMessage.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/Makefile.am.asn1convert delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/Makefile.am.libasncodec delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/NI-Type.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/NI-Type.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/NRCGI.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/NRCGI.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/NRCellIdentity.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/NRCellIdentity.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/NativeEnumerated.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/NativeEnumerated.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/NativeEnumerated_oer.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/NativeInteger.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/NativeInteger.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/NativeInteger_oer.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/OCTET_STRING.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/OCTET_STRING.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/OCTET_STRING_oer.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/OCUCP-PF-Container.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/OCUCP-PF-Container.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/OCUUP-PF-Container.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/OCUUP-PF-Container.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/ODU-PF-Container.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/ODU-PF-Container.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/OPEN_TYPE.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/OPEN_TYPE.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/OPEN_TYPE_oer.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/PF-Container.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/PF-Container.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/PF-ContainerListItem.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/PF-ContainerListItem.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/PLMN-Identity.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/PLMN-Identity.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/PM-Containers-List.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/PM-Containers-List.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/PerQCIReportListItem.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/PerQCIReportListItem.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/PerQCIReportListItemFormat.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/PerQCIReportListItemFormat.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/PlmnID-List.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/PlmnID-List.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/Presence.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/Presence.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/PrintableString.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/PrintableString.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/ProcedureCode.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/ProcedureCode.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/ProtocolIE-Container.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/ProtocolIE-Container.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/ProtocolIE-ContainerList.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/ProtocolIE-ContainerList.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/ProtocolIE-ContainerPair.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/ProtocolIE-ContainerPair.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/ProtocolIE-ContainerPairList.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/ProtocolIE-ContainerPairList.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/ProtocolIE-Field.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/ProtocolIE-Field.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/ProtocolIE-FieldPair.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/ProtocolIE-FieldPair.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/ProtocolIE-ID.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/ProtocolIE-ID.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/ProtocolIE-SingleContainer.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/ProtocolIE-SingleContainer.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/RAN-Container.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/RAN-Container.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/RANcallProcess-ID-string.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/RANcallProcess-ID-string.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/RANfunction-Item.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/RANfunction-Item.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/RANfunction-Name.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/RANfunction-Name.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/RANfunctionDefinition.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/RANfunctionDefinition.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/RANfunctionID-Item.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/RANfunctionID-Item.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/RANfunctionID.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/RANfunctionID.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/RANfunctionIDcause-Item.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/RANfunctionIDcause-Item.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/RANfunctionRevision.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/RANfunctionRevision.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/RANfunctions-List.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/RANfunctions-List.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/RANfunctionsID-List.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/RANfunctionsID-List.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/RANfunctionsIDcause-List.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/RANfunctionsIDcause-List.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/RIC-EventTriggerStyle-List.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/RIC-EventTriggerStyle-List.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/RIC-Format-Type.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/RIC-Format-Type.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/RIC-ReportStyle-List.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/RIC-ReportStyle-List.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/RIC-Style-Name.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/RIC-Style-Name.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/RIC-Style-Type.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/RIC-Style-Type.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/RICaction-Admitted-Item.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/RICaction-Admitted-Item.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/RICaction-Admitted-List.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/RICaction-Admitted-List.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/RICaction-NotAdmitted-Item.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/RICaction-NotAdmitted-Item.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/RICaction-NotAdmitted-List.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/RICaction-NotAdmitted-List.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/RICaction-ToBeSetup-Item.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/RICaction-ToBeSetup-Item.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/RICactionDefinition.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/RICactionDefinition.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/RICactionID.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/RICactionID.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/RICactionType.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/RICactionType.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/RICactions-ToBeSetup-List.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/RICactions-ToBeSetup-List.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/RICcallProcessID.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/RICcallProcessID.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/RICcontrolAckRequest.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/RICcontrolAckRequest.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/RICcontrolAcknowledge.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/RICcontrolAcknowledge.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/RICcontrolFailure.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/RICcontrolFailure.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/RICcontrolHeader.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/RICcontrolHeader.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/RICcontrolMessage.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/RICcontrolMessage.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/RICcontrolOutcome.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/RICcontrolOutcome.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/RICcontrolRequest.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/RICcontrolRequest.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/RICcontrolStatus.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/RICcontrolStatus.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/RICeventTriggerDefinition.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/RICeventTriggerDefinition.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/RICindication.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/RICindication.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/RICindicationHeader.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/RICindicationHeader.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/RICindicationMessage.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/RICindicationMessage.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/RICindicationSN.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/RICindicationSN.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/RICindicationType.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/RICindicationType.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/RICrequestID.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/RICrequestID.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/RICserviceQuery.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/RICserviceQuery.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/RICserviceUpdate.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/RICserviceUpdate.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/RICserviceUpdateAcknowledge.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/RICserviceUpdateAcknowledge.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/RICserviceUpdateFailure.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/RICserviceUpdateFailure.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/RICsubscriptionDeleteFailure.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/RICsubscriptionDeleteFailure.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/RICsubscriptionDeleteRequest.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/RICsubscriptionDeleteRequest.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/RICsubscriptionDeleteResponse.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/RICsubscriptionDeleteResponse.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/RICsubscriptionDetails.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/RICsubscriptionDetails.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/RICsubscriptionFailure.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/RICsubscriptionFailure.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/RICsubscriptionRequest.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/RICsubscriptionRequest.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/RICsubscriptionResponse.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/RICsubscriptionResponse.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/RICsubsequentAction.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/RICsubsequentAction.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/RICsubsequentActionType.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/RICsubsequentActionType.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/RICtimeToWait.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/RICtimeToWait.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/RT-Period-IE.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/RT-Period-IE.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/ResetRequest.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/ResetRequest.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/ResetResponse.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/ResetResponse.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/SNSSAI.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/SNSSAI.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/ServedPlmnPerCellListItem.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/ServedPlmnPerCellListItem.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/SlicePerPlmnPerCellListItem.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/SlicePerPlmnPerCellListItem.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/SliceToReportListItem.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/SliceToReportListItem.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/SuccessfulOutcome.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/SuccessfulOutcome.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/TimeToWait.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/TimeToWait.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/Timestamp.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/Timestamp.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/Trigger-ConditionIE-Item.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/Trigger-ConditionIE-Item.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/TriggeringMessage.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/TriggeringMessage.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/TypeOfError.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/TypeOfError.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/UE-Report-Type.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/UE-Report-Type.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/UnsuccessfulOutcome.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/UnsuccessfulOutcome.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/asn_SEQUENCE_OF.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/asn_SEQUENCE_OF.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/asn_SET_OF.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/asn_SET_OF.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/asn_application.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/asn_application.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/asn_bit_data.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/asn_bit_data.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/asn_codecs.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/asn_codecs_prim.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/asn_codecs_prim.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/asn_constant.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/asn_internal.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/asn_internal.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/asn_ioc.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/asn_random_fill.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/asn_random_fill.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/asn_system.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/ber_decoder.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/ber_decoder.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/ber_tlv_length.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/ber_tlv_length.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/ber_tlv_tag.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/ber_tlv_tag.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/constr_CHOICE.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/constr_CHOICE.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/constr_CHOICE_oer.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/constr_SEQUENCE.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/constr_SEQUENCE.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/constr_SEQUENCE_OF.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/constr_SEQUENCE_OF.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/constr_SEQUENCE_oer.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/constr_SET_OF.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/constr_SET_OF.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/constr_SET_OF_oer.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/constr_TYPE.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/constr_TYPE.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/constraints.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/constraints.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/converter-example.mk delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/der_encoder.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/der_encoder.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/oer_decoder.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/oer_decoder.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/oer_encoder.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/oer_encoder.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/oer_support.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/oer_support.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/pdu_collection.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/per_decoder.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/per_decoder.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/per_encoder.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/per_encoder.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/per_opentype.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/per_opentype.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/per_support.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/per_support.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/xer_decoder.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/xer_decoder.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/xer_encoder.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/xer_encoder.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/xer_support.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ASN1c/xer_support.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/CMakeLists.txt delete mode 100644 e2sim/previous/e2apv1sim/e2sim/Dockerfile delete mode 100644 e2sim/previous/e2apv1sim/e2sim/README.md delete mode 100755 e2sim/previous/e2apv1sim/e2sim/build_e2sim delete mode 100644 e2sim/previous/e2apv1sim/e2sim/cellMeasReport.txt delete mode 100644 e2sim/previous/e2apv1sim/e2sim/docker/Dockerfile delete mode 100644 e2sim/previous/e2apv1sim/e2sim/docker/container-tag.yaml delete mode 100644 e2sim/previous/e2apv1sim/e2sim/docker/old/DockerFile_old delete mode 100644 e2sim/previous/e2apv1sim/e2sim/docker/old/Dockerfile delete mode 100644 e2sim/previous/e2apv1sim/e2sim/docker/old/Dockerfile_base delete mode 100755 e2sim/previous/e2apv1sim/e2sim/docker/old/configure_rmr delete mode 100644 e2sim/previous/e2apv1sim/e2sim/docker/old/empty.rt delete mode 100755 e2sim/previous/e2apv1sim/e2sim/docker/old/install_asn1c delete mode 100755 e2sim/previous/e2apv1sim/e2sim/docker/old/install_rmr delete mode 100644 e2sim/previous/e2apv1sim/e2sim/docker/old/local.rt delete mode 100644 e2sim/previous/e2apv1sim/e2sim/e2sim.cpp delete mode 100644 e2sim/previous/e2apv1sim/e2sim/e2sim.hpp delete mode 100644 e2sim/previous/e2apv1sim/e2sim/encode_e2apv1.cpp delete mode 100644 e2sim/previous/e2apv1sim/e2sim/encode_e2apv1.hpp delete mode 100644 e2sim/previous/e2apv1sim/e2sim/encode_kpm.cpp delete mode 100644 e2sim/previous/e2apv1sim/e2sim/encode_kpm.hpp delete mode 100644 e2sim/previous/e2apv1sim/e2sim/extras/ricsim.cpp delete mode 100644 e2sim/previous/e2apv1sim/e2sim/helm/README.md delete mode 100644 e2sim/previous/e2apv1sim/e2sim/helm/e2sim/Chart.yaml delete mode 100644 e2sim/previous/e2apv1sim/e2sim/helm/e2sim/templates/_helpers.tpl delete mode 100755 e2sim/previous/e2apv1sim/e2sim/helm/e2sim/templates/bin/_e2sim-run.sh.tpl delete mode 100644 e2sim/previous/e2apv1sim/e2sim/helm/e2sim/templates/configmap-e2sim-bin.yaml delete mode 100644 e2sim/previous/e2apv1sim/e2sim/helm/e2sim/templates/deployment.yaml delete mode 100755 e2sim/previous/e2apv1sim/e2sim/helm/e2sim/values.yaml delete mode 100755 e2sim/previous/e2apv1sim/e2sim/helm/e2sim_install.sh delete mode 100644 e2sim/previous/e2apv1sim/e2sim/kpm_callbacks.cpp delete mode 100644 e2sim/previous/e2apv1sim/e2sim/kpm_callbacks.hpp delete mode 100644 e2sim/previous/e2apv1sim/e2sim/simulation.txt delete mode 100755 e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/asn.hpp delete mode 100755 e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/ber/codec.hpp delete mode 100755 e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/ber/common.hpp delete mode 100755 e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/ber/context.hpp delete mode 100755 e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/ber/length.hpp delete mode 100755 e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/ber/opentype.hpp delete mode 100755 e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/ber/tag.hpp delete mode 100755 e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/ber/tools.hpp delete mode 100755 e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/ber/visitor.hpp delete mode 100755 e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/buffer.hpp delete mode 100755 e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/chunked_allocator.hpp delete mode 100755 e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/constraints.hpp delete mode 100755 e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/elements.hpp delete mode 100755 e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/error_context.hpp delete mode 100755 e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/identifier.hpp delete mode 100755 e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/per/binary_integer.hpp delete mode 100755 e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/per/bstring.hpp delete mode 100755 e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/per/choice.hpp delete mode 100755 e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/per/codec.hpp delete mode 100755 e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/per/common.hpp delete mode 100755 e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/per/context.hpp delete mode 100755 e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/per/enumerated.hpp delete mode 100755 e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/per/integer.hpp delete mode 100755 e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/per/length.hpp delete mode 100755 e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/per/oid.hpp delete mode 100755 e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/per/ostring.hpp delete mode 100755 e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/per/sequence.hpp delete mode 100755 e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/per/sequence_of.hpp delete mode 100755 e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/per/visitor.hpp delete mode 100755 e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/per/whole_number.hpp delete mode 100755 e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/printer.hpp delete mode 100755 e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/type_defs.h delete mode 100755 e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/utility.hpp delete mode 100755 e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/value_traits.hpp delete mode 100755 e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/variant.hpp delete mode 100755 e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/version.hpp delete mode 100644 e2sim/previous/e2apv1sim/e2sim/src/ASN1/generated/E2AP-Constants.hpp delete mode 100644 e2sim/previous/e2apv1sim/e2sim/src/ASN1/generated/E2AP-IEs.hpp delete mode 100644 e2sim/previous/e2apv1sim/e2sim/src/ASN1/generated/E2AP-PDU-Contents.hpp delete mode 100644 e2sim/previous/e2apv1sim/e2sim/src/ASN1/generated/E2AP-PDU-Descriptions.hpp delete mode 100644 e2sim/previous/e2apv1sim/e2sim/src/ASN1/generated/X2AP-CommonDataTypes.hpp delete mode 100644 e2sim/previous/e2apv1sim/e2sim/src/ASN1/generated/X2AP-Constants.hpp delete mode 100644 e2sim/previous/e2apv1sim/e2sim/src/ASN1/generated/X2AP-Containers.hpp delete mode 100644 e2sim/previous/e2apv1sim/e2sim/src/ASN1/generated/X2AP-IEs.hpp delete mode 100644 e2sim/previous/e2apv1sim/e2sim/src/ASN1/generated/X2AP-PDU-Contents.hpp delete mode 100644 e2sim/previous/e2apv1sim/e2sim/src/ASN1/generated/X2AP-PDU-Descriptions.hpp delete mode 100644 e2sim/previous/e2apv1sim/e2sim/src/ASN1/lib/asn_e2ap.cpp delete mode 100644 e2sim/previous/e2apv1sim/e2sim/src/ASN1/lib/asn_e2ap.hpp delete mode 100644 e2sim/previous/e2apv1sim/e2sim/src/ASN1/lib/asn_e2ap_wrapper.hpp delete mode 100644 e2sim/previous/e2apv1sim/e2sim/src/ASN1/lib/asn_x2ap.cpp delete mode 100644 e2sim/previous/e2apv1sim/e2sim/src/ASN1/lib/asn_x2ap.hpp delete mode 100644 e2sim/previous/e2apv1sim/e2sim/src/ASN1/lib/asn_x2ap_wrapper.hpp delete mode 100644 e2sim/previous/e2apv1sim/e2sim/src/ASN1/lib/e2ap_config.hpp delete mode 100644 e2sim/previous/e2apv1sim/e2sim/src/DEF/e2sim_defs.cpp delete mode 100644 e2sim/previous/e2apv1sim/e2sim/src/DEF/e2sim_defs.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/src/E2AP/E2SM/e2sm.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/src/E2AP/E2SM/e2sm.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/src/E2AP/XML/E2AP_ENDCX2SetupFailure.xml delete mode 100644 e2sim/previous/e2apv1sim/e2sim/src/E2AP/XML/E2AP_ENDCX2SetupRequest.xml delete mode 100644 e2sim/previous/e2apv1sim/e2sim/src/E2AP/XML/E2AP_ENDCX2SetupResponse.xml delete mode 100644 e2sim/previous/e2apv1sim/e2sim/src/E2AP/XML/E2AP_ErrorIndication.xml delete mode 100644 e2sim/previous/e2apv1sim/e2sim/src/E2AP/XML/E2AP_PartSetupRequest.xml delete mode 100644 e2sim/previous/e2apv1sim/e2sim/src/E2AP/XML/E2AP_PartSetupRequest.xml~ delete mode 100644 e2sim/previous/e2apv1sim/e2sim/src/E2AP/XML/E2AP_RICindication_type1.xml delete mode 100644 e2sim/previous/e2apv1sim/e2sim/src/E2AP/XML/E2AP_RICindication_type2.xml delete mode 100644 e2sim/previous/e2apv1sim/e2sim/src/E2AP/XML/E2AP_RICsubscriptionRequest.xml delete mode 100644 e2sim/previous/e2apv1sim/e2sim/src/E2AP/XML/E2AP_RICsubscriptionRequest_Ashwin.xml delete mode 100644 e2sim/previous/e2apv1sim/e2sim/src/E2AP/XML/E2AP_RICsubscriptionResponse.xml delete mode 100644 e2sim/previous/e2apv1sim/e2sim/src/E2AP/XML/E2AP_ResourceStatusFailure.xml delete mode 100644 e2sim/previous/e2apv1sim/e2sim/src/E2AP/XML/E2AP_ResourceStatusRequest.xml delete mode 100644 e2sim/previous/e2apv1sim/e2sim/src/E2AP/XML/E2AP_ResourceStatusRequest_bad.xml delete mode 100644 e2sim/previous/e2apv1sim/e2sim/src/E2AP/XML/E2AP_ResourceStatusResponse.xml delete mode 100644 e2sim/previous/e2apv1sim/e2sim/src/E2AP/XML/E2AP_ResourceStatusUpdate.xml delete mode 100644 e2sim/previous/e2apv1sim/e2sim/src/E2AP/XML/E2AP_SetupRequest.xml delete mode 100644 e2sim/previous/e2apv1sim/e2sim/src/E2AP/XML/E2AP_SetupRequest.xml~ delete mode 100644 e2sim/previous/e2apv1sim/e2sim/src/E2AP/XML/E2AP_SetupRequest2.xml delete mode 100644 e2sim/previous/e2apv1sim/e2sim/src/E2AP/XML/E2AP_X2SetupFailure.xml delete mode 100644 e2sim/previous/e2apv1sim/e2sim/src/E2AP/XML/E2AP_X2SetupRequest.xml delete mode 100644 e2sim/previous/e2apv1sim/e2sim/src/E2AP/XML/E2AP_X2SetupResponse.xml delete mode 100644 e2sim/previous/e2apv1sim/e2sim/src/E2AP/XML/GlobalE2node-ID.xml delete mode 100644 e2sim/previous/e2apv1sim/e2sim/src/E2AP/XML/reference_constants.txt delete mode 100644 e2sim/previous/e2apv1sim/e2sim/src/E2AP/e2ap_asn1c_codec.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/src/E2AP/e2ap_asn1c_codec.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/src/E2AP/e2ap_message_handler.cpp delete mode 100644 e2sim/previous/e2apv1sim/e2sim/src/E2AP/e2ap_message_handler.hpp delete mode 100644 e2sim/previous/e2apv1sim/e2sim/src/E2APr/E2SM/e2sm.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/src/E2APr/E2SM/e2sm.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/src/E2APr/XML/E2AP_ENDCX2SetupFailure.xml delete mode 100644 e2sim/previous/e2apv1sim/e2sim/src/E2APr/XML/E2AP_ENDCX2SetupRequest.xml delete mode 100644 e2sim/previous/e2apv1sim/e2sim/src/E2APr/XML/E2AP_ENDCX2SetupResponse.xml delete mode 100644 e2sim/previous/e2apv1sim/e2sim/src/E2APr/XML/E2AP_ErrorIndication.xml delete mode 100644 e2sim/previous/e2apv1sim/e2sim/src/E2APr/XML/E2AP_PartSetupRequest.xml delete mode 100644 e2sim/previous/e2apv1sim/e2sim/src/E2APr/XML/E2AP_PartSetupRequest.xml~ delete mode 100644 e2sim/previous/e2apv1sim/e2sim/src/E2APr/XML/E2AP_RICindication_type1.xml delete mode 100644 e2sim/previous/e2apv1sim/e2sim/src/E2APr/XML/E2AP_RICindication_type2.xml delete mode 100644 e2sim/previous/e2apv1sim/e2sim/src/E2APr/XML/E2AP_RICsubscriptionRequest.xml delete mode 100644 e2sim/previous/e2apv1sim/e2sim/src/E2APr/XML/E2AP_RICsubscriptionRequest_Ashwin.xml delete mode 100644 e2sim/previous/e2apv1sim/e2sim/src/E2APr/XML/E2AP_RICsubscriptionResponse.xml delete mode 100644 e2sim/previous/e2apv1sim/e2sim/src/E2APr/XML/E2AP_ResourceStatusFailure.xml delete mode 100644 e2sim/previous/e2apv1sim/e2sim/src/E2APr/XML/E2AP_ResourceStatusRequest.xml delete mode 100644 e2sim/previous/e2apv1sim/e2sim/src/E2APr/XML/E2AP_ResourceStatusRequest_bad.xml delete mode 100644 e2sim/previous/e2apv1sim/e2sim/src/E2APr/XML/E2AP_ResourceStatusResponse.xml delete mode 100644 e2sim/previous/e2apv1sim/e2sim/src/E2APr/XML/E2AP_ResourceStatusUpdate.xml delete mode 100644 e2sim/previous/e2apv1sim/e2sim/src/E2APr/XML/E2AP_SetupRequest.xml delete mode 100644 e2sim/previous/e2apv1sim/e2sim/src/E2APr/XML/E2AP_SetupRequest.xml~ delete mode 100644 e2sim/previous/e2apv1sim/e2sim/src/E2APr/XML/E2AP_SetupRequest2.xml delete mode 100644 e2sim/previous/e2apv1sim/e2sim/src/E2APr/XML/E2AP_X2SetupFailure.xml delete mode 100644 e2sim/previous/e2apv1sim/e2sim/src/E2APr/XML/E2AP_X2SetupRequest.xml delete mode 100644 e2sim/previous/e2apv1sim/e2sim/src/E2APr/XML/E2AP_X2SetupResponse.xml delete mode 100644 e2sim/previous/e2apv1sim/e2sim/src/E2APr/XML/GlobalE2node-ID.xml delete mode 100644 e2sim/previous/e2apv1sim/e2sim/src/E2APr/XML/reference_constants.txt delete mode 100644 e2sim/previous/e2apv1sim/e2sim/src/E2APr/e2ap_asn1c_codec.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/src/E2APr/e2ap_asn1c_codec.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/src/E2APr/e2ap_message_handler.cpp delete mode 100644 e2sim/previous/e2apv1sim/e2sim/src/E2APr/e2ap_message_handler.hpp delete mode 100644 e2sim/previous/e2apv1sim/e2sim/src/SCTP/e2sim_sctp.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/src/SCTP/e2sim_sctp.cpp delete mode 100644 e2sim/previous/e2apv1sim/e2sim/src/SCTP/e2sim_sctp.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/src/SCTP/e2sim_sctp.hpp delete mode 100644 e2sim/previous/e2apv1sim/e2sim/src/X2AP/MESSAGES/XML/sample_endc_x2_setup_failure.xml delete mode 100644 e2sim/previous/e2apv1sim/e2sim/src/X2AP/MESSAGES/XML/sample_endc_x2_setup_request.xml delete mode 100644 e2sim/previous/e2apv1sim/e2sim/src/X2AP/MESSAGES/XML/sample_endc_x2_setup_response.xml delete mode 100644 e2sim/previous/e2apv1sim/e2sim/src/X2AP/MESSAGES/XML/sample_x2_setup_failure.xml delete mode 100644 e2sim/previous/e2apv1sim/e2sim/src/X2AP/MESSAGES/XML/sample_x2_setup_request.xml delete mode 100644 e2sim/previous/e2apv1sim/e2sim/src/X2AP/MESSAGES/XML/sample_x2_setup_response.xml delete mode 100644 e2sim/previous/e2apv1sim/e2sim/src/X2AP/x2ap_asn_codec.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/src/X2AP/x2ap_asn_codec.cpp delete mode 100644 e2sim/previous/e2apv1sim/e2sim/src/X2AP/x2ap_asn_codec.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/src/X2AP/x2ap_asn_codec.hpp delete mode 100644 e2sim/previous/e2apv1sim/e2sim/src/X2AP/x2ap_generate_messages.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/src/X2AP/x2ap_generate_messages.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/src/X2AP/x2ap_message_handler.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/src/X2AP/x2ap_message_handler.cpp delete mode 100644 e2sim/previous/e2apv1sim/e2sim/src/X2AP/x2ap_message_handler.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/src/X2AP/x2ap_message_handler.hpp delete mode 100644 e2sim/previous/e2apv1sim/e2sim/test/Misc/CMakeLists.txt delete mode 100644 e2sim/previous/e2apv1sim/e2sim/test/Misc/test_asn1c.cpp delete mode 100644 e2sim/previous/e2apv1sim/e2sim/test/Pendulum/Pendulum_asn_codec.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/test/Pendulum/Pendulum_asn_codec.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/test/Pendulum/Serial/adruino_serial.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/test/Pendulum/Serial/adruino_serial.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/test/Pendulum/Serial/arduino-serial-lib.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/test/Pendulum/Serial/arduino-serial-lib.h delete mode 100644 e2sim/previous/e2apv1sim/e2sim/test/Pendulum/demo_setup.txt delete mode 100644 e2sim/previous/e2apv1sim/e2sim/test/Pendulum/e2sim_closedloop.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/test/Pendulum/e2sim_serial.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/test/Pendulum/e2sim_test_client.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/test/Pendulum/e2termination_test.cpp delete mode 100644 e2sim/previous/e2apv1sim/e2sim/test/Pendulum/pendulum.asn1 delete mode 100644 e2sim/previous/e2apv1sim/e2sim/test/WLG/CMakeLists.txt delete mode 100755 e2sim/previous/e2apv1sim/e2sim/test/WLG/build_wlg.sh delete mode 100644 e2sim/previous/e2apv1sim/e2sim/test/WLG/ric_perf.cpp delete mode 100644 e2sim/previous/e2apv1sim/e2sim/test/WLG/ric_wlg.cpp delete mode 100644 e2sim/previous/e2apv1sim/e2sim/test/X2/CMakeLists.txt delete mode 100644 e2sim/previous/e2apv1sim/e2sim/test/X2/x2agent.cpp delete mode 100644 e2sim/previous/e2apv1sim/e2sim/test/X2/x2term.cpp delete mode 100644 e2sim/previous/e2apv1sim/e2sim/test/X2/x2termination_test.cpp delete mode 100644 e2sim/previous/e2apv1sim/e2sim/test/rmr_interface/README delete mode 100644 e2sim/previous/e2apv1sim/e2sim/test/rmr_interface/rmr_install.sh delete mode 100755 e2sim/previous/e2apv1sim/e2sim/test/rmr_interface/tests/receiver/build_and_run_recvr.sh delete mode 100644 e2sim/previous/e2apv1sim/e2sim/test/rmr_interface/tests/receiver/rmr_rcvr.c delete mode 100755 e2sim/previous/e2apv1sim/e2sim/test/rmr_interface/tests/sender/build_and_run_sender.sh delete mode 100644 e2sim/previous/e2apv1sim/e2sim/test/rmr_interface/tests/sender/rmr_sender.c delete mode 100644 e2sim/previous/e2apv1sim/e2sim/test/rmr_interface/tests/sender/rmr_wrapper.h delete mode 100755 e2sim/previous/e2apv1sim/e2sim/tools/asn_defs/generate_e2ap_e2sm_codes delete mode 100644 e2sim/previous/e2apv1sim/e2sim/tools/build_helper.bash delete mode 100755 e2sim/previous/e2apv1sim/e2sim/tools/install_asn1c delete mode 100755 e2sim/previous/e2apv1sim/e2sim/tools/install_dependencies delete mode 100644 e2sim/previous/e2apv1sim/e2sim/ueMeasReport.txt delete mode 100644 e2sim/previous/e2apv1sim/encode_e2apv1.cpp delete mode 100644 e2sim/previous/e2apv1sim/encode_e2apv1.hpp delete mode 100644 e2sim/previous/e2apv1sim/encode_kpm.cpp delete mode 100644 e2sim/previous/e2apv1sim/encode_kpm.hpp delete mode 100644 e2sim/previous/e2apv1sim/extras/ricsim.cpp delete mode 100644 e2sim/previous/e2apv1sim/helm/README.md delete mode 100644 e2sim/previous/e2apv1sim/helm/e2sim/Chart.yaml delete mode 100644 e2sim/previous/e2apv1sim/helm/e2sim/templates/_helpers.tpl delete mode 100755 e2sim/previous/e2apv1sim/helm/e2sim/templates/bin/_e2sim-run.sh.tpl delete mode 100644 e2sim/previous/e2apv1sim/helm/e2sim/templates/configmap-e2sim-bin.yaml delete mode 100644 e2sim/previous/e2apv1sim/helm/e2sim/templates/deployment.yaml delete mode 100755 e2sim/previous/e2apv1sim/helm/e2sim/values.yaml delete mode 100755 e2sim/previous/e2apv1sim/helm/e2sim_install.sh delete mode 100644 e2sim/previous/e2apv1sim/kpm_callbacks.cpp delete mode 100644 e2sim/previous/e2apv1sim/kpm_callbacks.hpp delete mode 100644 e2sim/previous/e2apv1sim/ricsim.cpp delete mode 100644 e2sim/previous/e2apv1sim/ricsim.hpp delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/ANY.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/ANY.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/BIT_STRING.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/BIT_STRING.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/BIT_STRING_oer.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/C-RNTI.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/C-RNTI.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/CU-CP-Usage-Report-CellResourceReportItem.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/CU-CP-Usage-Report-CellResourceReportItem.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/CU-CP-Usage-Report-Per-UE.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/CU-CP-Usage-Report-Per-UE.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/CU-CP-Usage-Report-UeResourceReportItem.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/CU-CP-Usage-Report-UeResourceReportItem.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/CU-UP-Usage-Report-CellResourceReportItem.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/CU-UP-Usage-Report-CellResourceReportItem.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/CU-UP-Usage-Report-Per-UE.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/CU-UP-Usage-Report-Per-UE.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/CU-UP-Usage-Report-UeResourceReportItem.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/CU-UP-Usage-Report-UeResourceReportItem.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/CUUPMeasurement-Container.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/CUUPMeasurement-Container.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/Cause.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/Cause.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/CauseMisc.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/CauseMisc.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/CauseProtocol.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/CauseProtocol.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/CauseRIC.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/CauseRIC.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/CauseRICservice.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/CauseRICservice.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/CauseTransport.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/CauseTransport.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/CellResourceReportListItem.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/CellResourceReportListItem.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/Criticality.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/Criticality.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/CriticalityDiagnostics-IE-Item.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/CriticalityDiagnostics-IE-Item.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/CriticalityDiagnostics-IE-List.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/CriticalityDiagnostics-IE-List.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/CriticalityDiagnostics.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/CriticalityDiagnostics.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/DU-Usage-Report-CellResourceReportItem.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/DU-Usage-Report-CellResourceReportItem.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/DU-Usage-Report-Per-UE.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/DU-Usage-Report-Per-UE.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/DU-Usage-Report-UeResourceReportItem.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/DU-Usage-Report-UeResourceReportItem.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/E2AP-PDU.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/E2AP-PDU.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/E2SM-KPM-ActionDefinition.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/E2SM-KPM-ActionDefinition.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/E2SM-KPM-EventTriggerDefinition-Format1.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/E2SM-KPM-EventTriggerDefinition-Format1.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/E2SM-KPM-EventTriggerDefinition.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/E2SM-KPM-EventTriggerDefinition.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/E2SM-KPM-IndicationHeader-Format1.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/E2SM-KPM-IndicationHeader-Format1.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/E2SM-KPM-IndicationHeader.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/E2SM-KPM-IndicationHeader.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/E2SM-KPM-IndicationMessage-Format1.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/E2SM-KPM-IndicationMessage-Format1.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/E2SM-KPM-IndicationMessage.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/E2SM-KPM-IndicationMessage.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/E2SM-KPM-RANfunction-Description.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/E2SM-KPM-RANfunction-Description.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/E2setupFailure.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/E2setupFailure.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/E2setupRequest.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/E2setupRequest.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/E2setupResponse.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/E2setupResponse.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/ENB-ID-Choice.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/ENB-ID-Choice.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/ENB-ID.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/ENB-ID.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/ENGNB-ID.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/ENGNB-ID.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/EPC-CUUP-PM-Format.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/EPC-CUUP-PM-Format.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/EPC-DU-PM-Container.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/EPC-DU-PM-Container.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/ErrorIndication.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/ErrorIndication.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/FGC-CUUP-PM-Format.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/FGC-CUUP-PM-Format.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/FGC-DU-PM-Container.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/FGC-DU-PM-Container.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/FQIPERSlicesPerPlmnListItem.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/FQIPERSlicesPerPlmnListItem.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/FQIPERSlicesPerPlmnPerCellListItem.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/FQIPERSlicesPerPlmnPerCellListItem.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/GNB-CU-CP-Name.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/GNB-CU-CP-Name.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/GNB-CU-UP-ID.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/GNB-CU-UP-ID.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/GNB-CU-UP-Name.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/GNB-CU-UP-Name.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/GNB-DU-ID.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/GNB-DU-ID.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/GNB-DU-Name.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/GNB-DU-Name.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/GNB-ID-Choice.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/GNB-ID-Choice.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/GNB-Name.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/GNB-Name.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/GlobalE2node-ID.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/GlobalE2node-ID.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/GlobalE2node-eNB-ID.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/GlobalE2node-eNB-ID.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/GlobalE2node-en-gNB-ID.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/GlobalE2node-en-gNB-ID.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/GlobalE2node-gNB-ID.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/GlobalE2node-gNB-ID.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/GlobalE2node-ng-eNB-ID.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/GlobalE2node-ng-eNB-ID.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/GlobalENB-ID.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/GlobalENB-ID.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/GlobalKPMnode-ID.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/GlobalKPMnode-ID.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/GlobalKPMnode-eNB-ID.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/GlobalKPMnode-eNB-ID.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/GlobalKPMnode-en-gNB-ID.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/GlobalKPMnode-en-gNB-ID.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/GlobalKPMnode-gNB-ID.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/GlobalKPMnode-gNB-ID.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/GlobalKPMnode-ng-eNB-ID.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/GlobalKPMnode-ng-eNB-ID.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/GlobalRIC-ID.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/GlobalRIC-ID.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/GlobalenGNB-ID.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/GlobalenGNB-ID.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/GlobalgNB-ID.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/GlobalgNB-ID.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/GlobalngeNB-ID.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/GlobalngeNB-ID.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/INTEGER.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/INTEGER.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/INTEGER_oer.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/InitiatingMessage.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/InitiatingMessage.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/Makefile.am.asn1convert delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/Makefile.am.libasncodec delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/NI-Type.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/NI-Type.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/NRCGI.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/NRCGI.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/NRCellIdentity.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/NRCellIdentity.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/NativeEnumerated.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/NativeEnumerated.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/NativeEnumerated_oer.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/NativeInteger.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/NativeInteger.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/NativeInteger_oer.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/OCTET_STRING.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/OCTET_STRING.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/OCTET_STRING_oer.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/OCUCP-PF-Container.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/OCUCP-PF-Container.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/OCUUP-PF-Container.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/OCUUP-PF-Container.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/ODU-PF-Container.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/ODU-PF-Container.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/OPEN_TYPE.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/OPEN_TYPE.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/OPEN_TYPE_oer.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/PF-Container.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/PF-Container.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/PF-ContainerListItem.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/PF-ContainerListItem.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/PLMN-Identity.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/PLMN-Identity.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/PM-Containers-List.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/PM-Containers-List.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/PerQCIReportListItem.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/PerQCIReportListItem.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/PerQCIReportListItemFormat.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/PerQCIReportListItemFormat.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/PlmnID-List.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/PlmnID-List.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/Presence.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/Presence.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/PrintableString.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/PrintableString.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/ProcedureCode.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/ProcedureCode.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/ProtocolIE-Container.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/ProtocolIE-Container.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/ProtocolIE-ContainerList.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/ProtocolIE-ContainerList.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/ProtocolIE-ContainerPair.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/ProtocolIE-ContainerPair.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/ProtocolIE-ContainerPairList.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/ProtocolIE-ContainerPairList.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/ProtocolIE-Field.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/ProtocolIE-Field.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/ProtocolIE-FieldPair.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/ProtocolIE-FieldPair.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/ProtocolIE-ID.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/ProtocolIE-ID.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/ProtocolIE-SingleContainer.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/ProtocolIE-SingleContainer.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/RAN-Container.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/RAN-Container.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/RANcallProcess-ID-string.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/RANcallProcess-ID-string.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/RANfunction-Item.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/RANfunction-Item.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/RANfunction-Name.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/RANfunction-Name.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/RANfunctionDefinition.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/RANfunctionDefinition.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/RANfunctionID-Item.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/RANfunctionID-Item.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/RANfunctionID.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/RANfunctionID.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/RANfunctionIDcause-Item.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/RANfunctionIDcause-Item.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/RANfunctionRevision.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/RANfunctionRevision.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/RANfunctions-List.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/RANfunctions-List.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/RANfunctionsID-List.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/RANfunctionsID-List.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/RANfunctionsIDcause-List.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/RANfunctionsIDcause-List.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/RIC-EventTriggerStyle-List.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/RIC-EventTriggerStyle-List.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/RIC-Format-Type.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/RIC-Format-Type.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/RIC-ReportStyle-List.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/RIC-ReportStyle-List.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/RIC-Style-Name.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/RIC-Style-Name.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/RIC-Style-Type.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/RIC-Style-Type.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/RICaction-Admitted-Item.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/RICaction-Admitted-Item.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/RICaction-Admitted-List.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/RICaction-Admitted-List.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/RICaction-NotAdmitted-Item.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/RICaction-NotAdmitted-Item.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/RICaction-NotAdmitted-List.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/RICaction-NotAdmitted-List.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/RICaction-ToBeSetup-Item.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/RICaction-ToBeSetup-Item.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/RICactionDefinition.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/RICactionDefinition.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/RICactionID.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/RICactionID.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/RICactionType.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/RICactionType.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/RICactions-ToBeSetup-List.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/RICactions-ToBeSetup-List.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/RICcallProcessID.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/RICcallProcessID.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/RICcontrolAckRequest.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/RICcontrolAckRequest.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/RICcontrolAcknowledge.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/RICcontrolAcknowledge.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/RICcontrolFailure.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/RICcontrolFailure.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/RICcontrolHeader.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/RICcontrolHeader.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/RICcontrolMessage.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/RICcontrolMessage.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/RICcontrolOutcome.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/RICcontrolOutcome.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/RICcontrolRequest.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/RICcontrolRequest.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/RICcontrolStatus.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/RICcontrolStatus.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/RICeventTriggerDefinition.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/RICeventTriggerDefinition.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/RICindication.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/RICindication.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/RICindicationHeader.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/RICindicationHeader.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/RICindicationMessage.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/RICindicationMessage.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/RICindicationSN.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/RICindicationSN.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/RICindicationType.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/RICindicationType.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/RICrequestID.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/RICrequestID.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/RICserviceQuery.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/RICserviceQuery.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/RICserviceUpdate.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/RICserviceUpdate.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/RICserviceUpdateAcknowledge.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/RICserviceUpdateAcknowledge.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/RICserviceUpdateFailure.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/RICserviceUpdateFailure.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/RICsubscriptionDeleteFailure.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/RICsubscriptionDeleteFailure.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/RICsubscriptionDeleteRequest.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/RICsubscriptionDeleteRequest.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/RICsubscriptionDeleteResponse.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/RICsubscriptionDeleteResponse.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/RICsubscriptionDetails.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/RICsubscriptionDetails.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/RICsubscriptionFailure.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/RICsubscriptionFailure.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/RICsubscriptionRequest.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/RICsubscriptionRequest.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/RICsubscriptionResponse.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/RICsubscriptionResponse.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/RICsubsequentAction.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/RICsubsequentAction.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/RICsubsequentActionType.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/RICsubsequentActionType.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/RICtimeToWait.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/RICtimeToWait.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/RT-Period-IE.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/RT-Period-IE.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/ResetRequest.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/ResetRequest.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/ResetResponse.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/ResetResponse.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/SNSSAI.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/SNSSAI.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/ServedPlmnPerCellListItem.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/ServedPlmnPerCellListItem.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/SlicePerPlmnPerCellListItem.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/SlicePerPlmnPerCellListItem.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/SliceToReportListItem.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/SliceToReportListItem.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/SuccessfulOutcome.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/SuccessfulOutcome.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/TimeToWait.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/TimeToWait.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/Timestamp.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/Timestamp.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/Trigger-ConditionIE-Item.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/Trigger-ConditionIE-Item.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/TriggeringMessage.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/TriggeringMessage.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/TypeOfError.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/TypeOfError.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/UE-Report-Type.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/UE-Report-Type.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/UnsuccessfulOutcome.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/UnsuccessfulOutcome.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/asn_SEQUENCE_OF.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/asn_SEQUENCE_OF.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/asn_SET_OF.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/asn_SET_OF.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/asn_application.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/asn_application.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/asn_bit_data.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/asn_bit_data.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/asn_codecs.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/asn_codecs_prim.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/asn_codecs_prim.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/asn_constant.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/asn_internal.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/asn_internal.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/asn_ioc.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/asn_random_fill.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/asn_random_fill.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/asn_system.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/ber_decoder.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/ber_decoder.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/ber_tlv_length.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/ber_tlv_length.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/ber_tlv_tag.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/ber_tlv_tag.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/constr_CHOICE.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/constr_CHOICE.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/constr_CHOICE_oer.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/constr_SEQUENCE.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/constr_SEQUENCE.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/constr_SEQUENCE_OF.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/constr_SEQUENCE_OF.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/constr_SEQUENCE_oer.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/constr_SET_OF.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/constr_SET_OF.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/constr_SET_OF_oer.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/constr_TYPE.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/constr_TYPE.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/constraints.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/constraints.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/converter-example.mk delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/der_encoder.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/der_encoder.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/oer_decoder.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/oer_decoder.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/oer_encoder.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/oer_encoder.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/oer_support.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/oer_support.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/pdu_collection.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/per_decoder.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/per_decoder.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/per_encoder.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/per_encoder.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/per_opentype.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/per_opentype.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/per_support.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/per_support.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/xer_decoder.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/xer_decoder.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/xer_encoder.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/xer_encoder.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/xer_support.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ASN1c/xer_support.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/CMakeLists.txt delete mode 100755 e2sim/previous/e2apv1sim/ricsim/build_e2sim delete mode 100644 e2sim/previous/e2apv1sim/ricsim/encode_e2apv1.cpp delete mode 100644 e2sim/previous/e2apv1sim/ricsim/encode_e2apv1.hpp delete mode 100644 e2sim/previous/e2apv1sim/ricsim/encode_kpm.cpp delete mode 100644 e2sim/previous/e2apv1sim/ricsim/encode_kpm.hpp delete mode 100644 e2sim/previous/e2apv1sim/ricsim/extras/ricsim.cpp delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ricsim.cpp delete mode 100644 e2sim/previous/e2apv1sim/ricsim/ricsim.hpp delete mode 100755 e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/asn.hpp delete mode 100755 e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/ber/codec.hpp delete mode 100755 e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/ber/common.hpp delete mode 100755 e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/ber/context.hpp delete mode 100755 e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/ber/length.hpp delete mode 100755 e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/ber/opentype.hpp delete mode 100755 e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/ber/tag.hpp delete mode 100755 e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/ber/tools.hpp delete mode 100755 e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/ber/visitor.hpp delete mode 100755 e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/buffer.hpp delete mode 100755 e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/chunked_allocator.hpp delete mode 100755 e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/constraints.hpp delete mode 100755 e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/elements.hpp delete mode 100755 e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/error_context.hpp delete mode 100755 e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/identifier.hpp delete mode 100755 e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/per/binary_integer.hpp delete mode 100755 e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/per/bstring.hpp delete mode 100755 e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/per/choice.hpp delete mode 100755 e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/per/codec.hpp delete mode 100755 e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/per/common.hpp delete mode 100755 e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/per/context.hpp delete mode 100755 e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/per/enumerated.hpp delete mode 100755 e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/per/integer.hpp delete mode 100755 e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/per/length.hpp delete mode 100755 e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/per/oid.hpp delete mode 100755 e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/per/ostring.hpp delete mode 100755 e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/per/sequence.hpp delete mode 100755 e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/per/sequence_of.hpp delete mode 100755 e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/per/visitor.hpp delete mode 100755 e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/per/whole_number.hpp delete mode 100755 e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/printer.hpp delete mode 100755 e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/type_defs.h delete mode 100755 e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/utility.hpp delete mode 100755 e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/value_traits.hpp delete mode 100755 e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/variant.hpp delete mode 100755 e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/version.hpp delete mode 100644 e2sim/previous/e2apv1sim/ricsim/src/ASN1/generated/E2AP-Constants.hpp delete mode 100644 e2sim/previous/e2apv1sim/ricsim/src/ASN1/generated/E2AP-IEs.hpp delete mode 100644 e2sim/previous/e2apv1sim/ricsim/src/ASN1/generated/E2AP-PDU-Contents.hpp delete mode 100644 e2sim/previous/e2apv1sim/ricsim/src/ASN1/generated/E2AP-PDU-Descriptions.hpp delete mode 100644 e2sim/previous/e2apv1sim/ricsim/src/ASN1/generated/X2AP-CommonDataTypes.hpp delete mode 100644 e2sim/previous/e2apv1sim/ricsim/src/ASN1/generated/X2AP-Constants.hpp delete mode 100644 e2sim/previous/e2apv1sim/ricsim/src/ASN1/generated/X2AP-Containers.hpp delete mode 100644 e2sim/previous/e2apv1sim/ricsim/src/ASN1/generated/X2AP-IEs.hpp delete mode 100644 e2sim/previous/e2apv1sim/ricsim/src/ASN1/generated/X2AP-PDU-Contents.hpp delete mode 100644 e2sim/previous/e2apv1sim/ricsim/src/ASN1/generated/X2AP-PDU-Descriptions.hpp delete mode 100644 e2sim/previous/e2apv1sim/ricsim/src/ASN1/lib/asn_e2ap.cpp delete mode 100644 e2sim/previous/e2apv1sim/ricsim/src/ASN1/lib/asn_e2ap.hpp delete mode 100644 e2sim/previous/e2apv1sim/ricsim/src/ASN1/lib/asn_e2ap_wrapper.hpp delete mode 100644 e2sim/previous/e2apv1sim/ricsim/src/ASN1/lib/asn_x2ap.cpp delete mode 100644 e2sim/previous/e2apv1sim/ricsim/src/ASN1/lib/asn_x2ap.hpp delete mode 100644 e2sim/previous/e2apv1sim/ricsim/src/ASN1/lib/asn_x2ap_wrapper.hpp delete mode 100644 e2sim/previous/e2apv1sim/ricsim/src/ASN1/lib/e2ap_config.hpp delete mode 100644 e2sim/previous/e2apv1sim/ricsim/src/DEF/e2sim_defs.cpp delete mode 100644 e2sim/previous/e2apv1sim/ricsim/src/DEF/e2sim_defs.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/src/E2AP/E2SM/e2sm.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/src/E2AP/E2SM/e2sm.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/src/E2AP/XML/E2AP_ENDCX2SetupFailure.xml delete mode 100644 e2sim/previous/e2apv1sim/ricsim/src/E2AP/XML/E2AP_ENDCX2SetupRequest.xml delete mode 100644 e2sim/previous/e2apv1sim/ricsim/src/E2AP/XML/E2AP_ENDCX2SetupResponse.xml delete mode 100644 e2sim/previous/e2apv1sim/ricsim/src/E2AP/XML/E2AP_ErrorIndication.xml delete mode 100644 e2sim/previous/e2apv1sim/ricsim/src/E2AP/XML/E2AP_PartSetupRequest.xml delete mode 100644 e2sim/previous/e2apv1sim/ricsim/src/E2AP/XML/E2AP_PartSetupRequest.xml~ delete mode 100644 e2sim/previous/e2apv1sim/ricsim/src/E2AP/XML/E2AP_RICindication_type1.xml delete mode 100644 e2sim/previous/e2apv1sim/ricsim/src/E2AP/XML/E2AP_RICindication_type2.xml delete mode 100644 e2sim/previous/e2apv1sim/ricsim/src/E2AP/XML/E2AP_RICsubscriptionRequest.xml delete mode 100644 e2sim/previous/e2apv1sim/ricsim/src/E2AP/XML/E2AP_RICsubscriptionRequest_Ashwin.xml delete mode 100644 e2sim/previous/e2apv1sim/ricsim/src/E2AP/XML/E2AP_RICsubscriptionResponse.xml delete mode 100644 e2sim/previous/e2apv1sim/ricsim/src/E2AP/XML/E2AP_ResourceStatusFailure.xml delete mode 100644 e2sim/previous/e2apv1sim/ricsim/src/E2AP/XML/E2AP_ResourceStatusRequest.xml delete mode 100644 e2sim/previous/e2apv1sim/ricsim/src/E2AP/XML/E2AP_ResourceStatusRequest_bad.xml delete mode 100644 e2sim/previous/e2apv1sim/ricsim/src/E2AP/XML/E2AP_ResourceStatusResponse.xml delete mode 100644 e2sim/previous/e2apv1sim/ricsim/src/E2AP/XML/E2AP_ResourceStatusUpdate.xml delete mode 100644 e2sim/previous/e2apv1sim/ricsim/src/E2AP/XML/E2AP_SetupRequest.xml delete mode 100644 e2sim/previous/e2apv1sim/ricsim/src/E2AP/XML/E2AP_SetupRequest.xml~ delete mode 100644 e2sim/previous/e2apv1sim/ricsim/src/E2AP/XML/E2AP_SetupRequest2.xml delete mode 100644 e2sim/previous/e2apv1sim/ricsim/src/E2AP/XML/E2AP_X2SetupFailure.xml delete mode 100644 e2sim/previous/e2apv1sim/ricsim/src/E2AP/XML/E2AP_X2SetupRequest.xml delete mode 100644 e2sim/previous/e2apv1sim/ricsim/src/E2AP/XML/E2AP_X2SetupResponse.xml delete mode 100644 e2sim/previous/e2apv1sim/ricsim/src/E2AP/XML/GlobalE2node-ID.xml delete mode 100644 e2sim/previous/e2apv1sim/ricsim/src/E2AP/XML/reference_constants.txt delete mode 100644 e2sim/previous/e2apv1sim/ricsim/src/E2AP/e2ap_asn1c_codec.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/src/E2AP/e2ap_asn1c_codec.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/src/E2AP/e2ap_message_handler.cpp delete mode 100644 e2sim/previous/e2apv1sim/ricsim/src/E2AP/e2ap_message_handler.hpp delete mode 100644 e2sim/previous/e2apv1sim/ricsim/src/E2APr/E2SM/e2sm.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/src/E2APr/E2SM/e2sm.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/src/E2APr/XML/E2AP_ENDCX2SetupFailure.xml delete mode 100644 e2sim/previous/e2apv1sim/ricsim/src/E2APr/XML/E2AP_ENDCX2SetupRequest.xml delete mode 100644 e2sim/previous/e2apv1sim/ricsim/src/E2APr/XML/E2AP_ENDCX2SetupResponse.xml delete mode 100644 e2sim/previous/e2apv1sim/ricsim/src/E2APr/XML/E2AP_ErrorIndication.xml delete mode 100644 e2sim/previous/e2apv1sim/ricsim/src/E2APr/XML/E2AP_PartSetupRequest.xml delete mode 100644 e2sim/previous/e2apv1sim/ricsim/src/E2APr/XML/E2AP_PartSetupRequest.xml~ delete mode 100644 e2sim/previous/e2apv1sim/ricsim/src/E2APr/XML/E2AP_RICindication_type1.xml delete mode 100644 e2sim/previous/e2apv1sim/ricsim/src/E2APr/XML/E2AP_RICindication_type2.xml delete mode 100644 e2sim/previous/e2apv1sim/ricsim/src/E2APr/XML/E2AP_RICsubscriptionRequest.xml delete mode 100644 e2sim/previous/e2apv1sim/ricsim/src/E2APr/XML/E2AP_RICsubscriptionRequest_Ashwin.xml delete mode 100644 e2sim/previous/e2apv1sim/ricsim/src/E2APr/XML/E2AP_RICsubscriptionResponse.xml delete mode 100644 e2sim/previous/e2apv1sim/ricsim/src/E2APr/XML/E2AP_ResourceStatusFailure.xml delete mode 100644 e2sim/previous/e2apv1sim/ricsim/src/E2APr/XML/E2AP_ResourceStatusRequest.xml delete mode 100644 e2sim/previous/e2apv1sim/ricsim/src/E2APr/XML/E2AP_ResourceStatusRequest_bad.xml delete mode 100644 e2sim/previous/e2apv1sim/ricsim/src/E2APr/XML/E2AP_ResourceStatusResponse.xml delete mode 100644 e2sim/previous/e2apv1sim/ricsim/src/E2APr/XML/E2AP_ResourceStatusUpdate.xml delete mode 100644 e2sim/previous/e2apv1sim/ricsim/src/E2APr/XML/E2AP_SetupRequest.xml delete mode 100644 e2sim/previous/e2apv1sim/ricsim/src/E2APr/XML/E2AP_SetupRequest.xml~ delete mode 100644 e2sim/previous/e2apv1sim/ricsim/src/E2APr/XML/E2AP_SetupRequest2.xml delete mode 100644 e2sim/previous/e2apv1sim/ricsim/src/E2APr/XML/E2AP_X2SetupFailure.xml delete mode 100644 e2sim/previous/e2apv1sim/ricsim/src/E2APr/XML/E2AP_X2SetupRequest.xml delete mode 100644 e2sim/previous/e2apv1sim/ricsim/src/E2APr/XML/E2AP_X2SetupResponse.xml delete mode 100644 e2sim/previous/e2apv1sim/ricsim/src/E2APr/XML/GlobalE2node-ID.xml delete mode 100644 e2sim/previous/e2apv1sim/ricsim/src/E2APr/XML/reference_constants.txt delete mode 100644 e2sim/previous/e2apv1sim/ricsim/src/E2APr/e2ap_asn1c_codec.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/src/E2APr/e2ap_asn1c_codec.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/src/E2APr/e2ap_message_handler.cpp delete mode 100644 e2sim/previous/e2apv1sim/ricsim/src/E2APr/e2ap_message_handler.hpp delete mode 100644 e2sim/previous/e2apv1sim/ricsim/src/SCTP/e2sim_sctp.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/src/SCTP/e2sim_sctp.cpp delete mode 100644 e2sim/previous/e2apv1sim/ricsim/src/SCTP/e2sim_sctp.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/src/SCTP/e2sim_sctp.hpp delete mode 100644 e2sim/previous/e2apv1sim/ricsim/src/X2AP/MESSAGES/XML/sample_endc_x2_setup_failure.xml delete mode 100644 e2sim/previous/e2apv1sim/ricsim/src/X2AP/MESSAGES/XML/sample_endc_x2_setup_request.xml delete mode 100644 e2sim/previous/e2apv1sim/ricsim/src/X2AP/MESSAGES/XML/sample_endc_x2_setup_response.xml delete mode 100644 e2sim/previous/e2apv1sim/ricsim/src/X2AP/MESSAGES/XML/sample_x2_setup_failure.xml delete mode 100644 e2sim/previous/e2apv1sim/ricsim/src/X2AP/MESSAGES/XML/sample_x2_setup_request.xml delete mode 100644 e2sim/previous/e2apv1sim/ricsim/src/X2AP/MESSAGES/XML/sample_x2_setup_response.xml delete mode 100644 e2sim/previous/e2apv1sim/ricsim/src/X2AP/x2ap_asn_codec.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/src/X2AP/x2ap_asn_codec.cpp delete mode 100644 e2sim/previous/e2apv1sim/ricsim/src/X2AP/x2ap_asn_codec.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/src/X2AP/x2ap_asn_codec.hpp delete mode 100644 e2sim/previous/e2apv1sim/ricsim/src/X2AP/x2ap_generate_messages.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/src/X2AP/x2ap_generate_messages.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/src/X2AP/x2ap_message_handler.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/src/X2AP/x2ap_message_handler.cpp delete mode 100644 e2sim/previous/e2apv1sim/ricsim/src/X2AP/x2ap_message_handler.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/src/X2AP/x2ap_message_handler.hpp delete mode 100644 e2sim/previous/e2apv1sim/ricsim/test/Misc/CMakeLists.txt delete mode 100644 e2sim/previous/e2apv1sim/ricsim/test/Misc/test_asn1c.cpp delete mode 100644 e2sim/previous/e2apv1sim/ricsim/test/Pendulum/Pendulum_asn_codec.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/test/Pendulum/Pendulum_asn_codec.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/test/Pendulum/Serial/adruino_serial.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/test/Pendulum/Serial/adruino_serial.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/test/Pendulum/Serial/arduino-serial-lib.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/test/Pendulum/Serial/arduino-serial-lib.h delete mode 100644 e2sim/previous/e2apv1sim/ricsim/test/Pendulum/demo_setup.txt delete mode 100644 e2sim/previous/e2apv1sim/ricsim/test/Pendulum/e2sim_closedloop.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/test/Pendulum/e2sim_serial.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/test/Pendulum/e2sim_test_client.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/test/Pendulum/e2termination_test.cpp delete mode 100644 e2sim/previous/e2apv1sim/ricsim/test/Pendulum/pendulum.asn1 delete mode 100644 e2sim/previous/e2apv1sim/ricsim/test/WLG/CMakeLists.txt delete mode 100755 e2sim/previous/e2apv1sim/ricsim/test/WLG/build_wlg.sh delete mode 100644 e2sim/previous/e2apv1sim/ricsim/test/WLG/ric_perf.cpp delete mode 100644 e2sim/previous/e2apv1sim/ricsim/test/WLG/ric_wlg.cpp delete mode 100644 e2sim/previous/e2apv1sim/ricsim/test/X2/CMakeLists.txt delete mode 100644 e2sim/previous/e2apv1sim/ricsim/test/X2/x2agent.cpp delete mode 100644 e2sim/previous/e2apv1sim/ricsim/test/X2/x2term.cpp delete mode 100644 e2sim/previous/e2apv1sim/ricsim/test/X2/x2termination_test.cpp delete mode 100644 e2sim/previous/e2apv1sim/ricsim/test/rmr_interface/README delete mode 100644 e2sim/previous/e2apv1sim/ricsim/test/rmr_interface/rmr_install.sh delete mode 100755 e2sim/previous/e2apv1sim/ricsim/test/rmr_interface/tests/receiver/build_and_run_recvr.sh delete mode 100644 e2sim/previous/e2apv1sim/ricsim/test/rmr_interface/tests/receiver/rmr_rcvr.c delete mode 100755 e2sim/previous/e2apv1sim/ricsim/test/rmr_interface/tests/sender/build_and_run_sender.sh delete mode 100644 e2sim/previous/e2apv1sim/ricsim/test/rmr_interface/tests/sender/rmr_sender.c delete mode 100644 e2sim/previous/e2apv1sim/ricsim/test/rmr_interface/tests/sender/rmr_wrapper.h delete mode 100755 e2sim/previous/e2apv1sim/ricsim/tools/asn_defs/generate_e2ap_e2sm_codes delete mode 100644 e2sim/previous/e2apv1sim/ricsim/tools/build_helper.bash delete mode 100755 e2sim/previous/e2apv1sim/ricsim/tools/install_asn1c delete mode 100755 e2sim/previous/e2apv1sim/ricsim/tools/install_dependencies delete mode 100644 e2sim/previous/e2apv1sim/simulation.txt delete mode 100755 e2sim/previous/e2apv1sim/src/ASN1/asn/asn.hpp delete mode 100755 e2sim/previous/e2apv1sim/src/ASN1/asn/ber/codec.hpp delete mode 100755 e2sim/previous/e2apv1sim/src/ASN1/asn/ber/common.hpp delete mode 100755 e2sim/previous/e2apv1sim/src/ASN1/asn/ber/context.hpp delete mode 100755 e2sim/previous/e2apv1sim/src/ASN1/asn/ber/length.hpp delete mode 100755 e2sim/previous/e2apv1sim/src/ASN1/asn/ber/opentype.hpp delete mode 100755 e2sim/previous/e2apv1sim/src/ASN1/asn/ber/tag.hpp delete mode 100755 e2sim/previous/e2apv1sim/src/ASN1/asn/ber/tools.hpp delete mode 100755 e2sim/previous/e2apv1sim/src/ASN1/asn/ber/visitor.hpp delete mode 100755 e2sim/previous/e2apv1sim/src/ASN1/asn/buffer.hpp delete mode 100755 e2sim/previous/e2apv1sim/src/ASN1/asn/chunked_allocator.hpp delete mode 100755 e2sim/previous/e2apv1sim/src/ASN1/asn/constraints.hpp delete mode 100755 e2sim/previous/e2apv1sim/src/ASN1/asn/elements.hpp delete mode 100755 e2sim/previous/e2apv1sim/src/ASN1/asn/error_context.hpp delete mode 100755 e2sim/previous/e2apv1sim/src/ASN1/asn/identifier.hpp delete mode 100755 e2sim/previous/e2apv1sim/src/ASN1/asn/per/binary_integer.hpp delete mode 100755 e2sim/previous/e2apv1sim/src/ASN1/asn/per/bstring.hpp delete mode 100755 e2sim/previous/e2apv1sim/src/ASN1/asn/per/choice.hpp delete mode 100755 e2sim/previous/e2apv1sim/src/ASN1/asn/per/codec.hpp delete mode 100755 e2sim/previous/e2apv1sim/src/ASN1/asn/per/common.hpp delete mode 100755 e2sim/previous/e2apv1sim/src/ASN1/asn/per/context.hpp delete mode 100755 e2sim/previous/e2apv1sim/src/ASN1/asn/per/enumerated.hpp delete mode 100755 e2sim/previous/e2apv1sim/src/ASN1/asn/per/integer.hpp delete mode 100755 e2sim/previous/e2apv1sim/src/ASN1/asn/per/length.hpp delete mode 100755 e2sim/previous/e2apv1sim/src/ASN1/asn/per/oid.hpp delete mode 100755 e2sim/previous/e2apv1sim/src/ASN1/asn/per/ostring.hpp delete mode 100755 e2sim/previous/e2apv1sim/src/ASN1/asn/per/sequence.hpp delete mode 100755 e2sim/previous/e2apv1sim/src/ASN1/asn/per/sequence_of.hpp delete mode 100755 e2sim/previous/e2apv1sim/src/ASN1/asn/per/visitor.hpp delete mode 100755 e2sim/previous/e2apv1sim/src/ASN1/asn/per/whole_number.hpp delete mode 100755 e2sim/previous/e2apv1sim/src/ASN1/asn/printer.hpp delete mode 100755 e2sim/previous/e2apv1sim/src/ASN1/asn/type_defs.h delete mode 100755 e2sim/previous/e2apv1sim/src/ASN1/asn/utility.hpp delete mode 100755 e2sim/previous/e2apv1sim/src/ASN1/asn/value_traits.hpp delete mode 100755 e2sim/previous/e2apv1sim/src/ASN1/asn/variant.hpp delete mode 100755 e2sim/previous/e2apv1sim/src/ASN1/asn/version.hpp delete mode 100644 e2sim/previous/e2apv1sim/src/ASN1/generated/E2AP-Constants.hpp delete mode 100644 e2sim/previous/e2apv1sim/src/ASN1/generated/E2AP-IEs.hpp delete mode 100644 e2sim/previous/e2apv1sim/src/ASN1/generated/E2AP-PDU-Contents.hpp delete mode 100644 e2sim/previous/e2apv1sim/src/ASN1/generated/E2AP-PDU-Descriptions.hpp delete mode 100644 e2sim/previous/e2apv1sim/src/ASN1/generated/X2AP-CommonDataTypes.hpp delete mode 100644 e2sim/previous/e2apv1sim/src/ASN1/generated/X2AP-Constants.hpp delete mode 100644 e2sim/previous/e2apv1sim/src/ASN1/generated/X2AP-Containers.hpp delete mode 100644 e2sim/previous/e2apv1sim/src/ASN1/generated/X2AP-IEs.hpp delete mode 100644 e2sim/previous/e2apv1sim/src/ASN1/generated/X2AP-PDU-Contents.hpp delete mode 100644 e2sim/previous/e2apv1sim/src/ASN1/generated/X2AP-PDU-Descriptions.hpp delete mode 100644 e2sim/previous/e2apv1sim/src/ASN1/lib/asn_e2ap.cpp delete mode 100644 e2sim/previous/e2apv1sim/src/ASN1/lib/asn_e2ap.hpp delete mode 100644 e2sim/previous/e2apv1sim/src/ASN1/lib/asn_e2ap_wrapper.hpp delete mode 100644 e2sim/previous/e2apv1sim/src/ASN1/lib/asn_x2ap.cpp delete mode 100644 e2sim/previous/e2apv1sim/src/ASN1/lib/asn_x2ap.hpp delete mode 100644 e2sim/previous/e2apv1sim/src/ASN1/lib/asn_x2ap_wrapper.hpp delete mode 100644 e2sim/previous/e2apv1sim/src/ASN1/lib/e2ap_config.hpp delete mode 100644 e2sim/previous/e2apv1sim/src/DEF/e2sim_defs.cpp delete mode 100644 e2sim/previous/e2apv1sim/src/DEF/e2sim_defs.h delete mode 100644 e2sim/previous/e2apv1sim/src/E2AP/E2SM/e2sm.c delete mode 100644 e2sim/previous/e2apv1sim/src/E2AP/E2SM/e2sm.h delete mode 100644 e2sim/previous/e2apv1sim/src/E2AP/XML/E2AP_ENDCX2SetupFailure.xml delete mode 100644 e2sim/previous/e2apv1sim/src/E2AP/XML/E2AP_ENDCX2SetupRequest.xml delete mode 100644 e2sim/previous/e2apv1sim/src/E2AP/XML/E2AP_ENDCX2SetupResponse.xml delete mode 100644 e2sim/previous/e2apv1sim/src/E2AP/XML/E2AP_ErrorIndication.xml delete mode 100644 e2sim/previous/e2apv1sim/src/E2AP/XML/E2AP_PartSetupRequest.xml delete mode 100644 e2sim/previous/e2apv1sim/src/E2AP/XML/E2AP_PartSetupRequest.xml~ delete mode 100644 e2sim/previous/e2apv1sim/src/E2AP/XML/E2AP_RICindication_type1.xml delete mode 100644 e2sim/previous/e2apv1sim/src/E2AP/XML/E2AP_RICindication_type2.xml delete mode 100644 e2sim/previous/e2apv1sim/src/E2AP/XML/E2AP_RICsubscriptionRequest.xml delete mode 100644 e2sim/previous/e2apv1sim/src/E2AP/XML/E2AP_RICsubscriptionRequest_Ashwin.xml delete mode 100644 e2sim/previous/e2apv1sim/src/E2AP/XML/E2AP_RICsubscriptionResponse.xml delete mode 100644 e2sim/previous/e2apv1sim/src/E2AP/XML/E2AP_ResourceStatusFailure.xml delete mode 100644 e2sim/previous/e2apv1sim/src/E2AP/XML/E2AP_ResourceStatusRequest.xml delete mode 100644 e2sim/previous/e2apv1sim/src/E2AP/XML/E2AP_ResourceStatusRequest_bad.xml delete mode 100644 e2sim/previous/e2apv1sim/src/E2AP/XML/E2AP_ResourceStatusResponse.xml delete mode 100644 e2sim/previous/e2apv1sim/src/E2AP/XML/E2AP_ResourceStatusUpdate.xml delete mode 100644 e2sim/previous/e2apv1sim/src/E2AP/XML/E2AP_SetupRequest.xml delete mode 100644 e2sim/previous/e2apv1sim/src/E2AP/XML/E2AP_SetupRequest.xml~ delete mode 100644 e2sim/previous/e2apv1sim/src/E2AP/XML/E2AP_SetupRequest2.xml delete mode 100644 e2sim/previous/e2apv1sim/src/E2AP/XML/E2AP_X2SetupFailure.xml delete mode 100644 e2sim/previous/e2apv1sim/src/E2AP/XML/E2AP_X2SetupRequest.xml delete mode 100644 e2sim/previous/e2apv1sim/src/E2AP/XML/E2AP_X2SetupResponse.xml delete mode 100644 e2sim/previous/e2apv1sim/src/E2AP/XML/GlobalE2node-ID.xml delete mode 100644 e2sim/previous/e2apv1sim/src/E2AP/XML/reference_constants.txt delete mode 100644 e2sim/previous/e2apv1sim/src/E2AP/e2ap_asn1c_codec.c delete mode 100644 e2sim/previous/e2apv1sim/src/E2AP/e2ap_asn1c_codec.h delete mode 100644 e2sim/previous/e2apv1sim/src/E2AP/e2ap_message_handler.cpp delete mode 100644 e2sim/previous/e2apv1sim/src/E2AP/e2ap_message_handler.hpp delete mode 100644 e2sim/previous/e2apv1sim/src/SCTP/e2sim_sctp.c delete mode 100644 e2sim/previous/e2apv1sim/src/SCTP/e2sim_sctp.cpp delete mode 100644 e2sim/previous/e2apv1sim/src/SCTP/e2sim_sctp.h delete mode 100644 e2sim/previous/e2apv1sim/src/SCTP/e2sim_sctp.hpp delete mode 100644 e2sim/previous/e2apv1sim/src/X2AP/MESSAGES/XML/sample_endc_x2_setup_failure.xml delete mode 100644 e2sim/previous/e2apv1sim/src/X2AP/MESSAGES/XML/sample_endc_x2_setup_request.xml delete mode 100644 e2sim/previous/e2apv1sim/src/X2AP/MESSAGES/XML/sample_endc_x2_setup_response.xml delete mode 100644 e2sim/previous/e2apv1sim/src/X2AP/MESSAGES/XML/sample_x2_setup_failure.xml delete mode 100644 e2sim/previous/e2apv1sim/src/X2AP/MESSAGES/XML/sample_x2_setup_request.xml delete mode 100644 e2sim/previous/e2apv1sim/src/X2AP/MESSAGES/XML/sample_x2_setup_response.xml delete mode 100644 e2sim/previous/e2apv1sim/src/X2AP/x2ap_asn_codec.c delete mode 100644 e2sim/previous/e2apv1sim/src/X2AP/x2ap_asn_codec.cpp delete mode 100644 e2sim/previous/e2apv1sim/src/X2AP/x2ap_asn_codec.h delete mode 100644 e2sim/previous/e2apv1sim/src/X2AP/x2ap_asn_codec.hpp delete mode 100644 e2sim/previous/e2apv1sim/src/X2AP/x2ap_generate_messages.c delete mode 100644 e2sim/previous/e2apv1sim/src/X2AP/x2ap_generate_messages.h delete mode 100644 e2sim/previous/e2apv1sim/src/X2AP/x2ap_message_handler.c delete mode 100644 e2sim/previous/e2apv1sim/src/X2AP/x2ap_message_handler.cpp delete mode 100644 e2sim/previous/e2apv1sim/src/X2AP/x2ap_message_handler.h delete mode 100644 e2sim/previous/e2apv1sim/src/X2AP/x2ap_message_handler.hpp delete mode 100644 e2sim/previous/e2apv1sim/test/Misc/CMakeLists.txt delete mode 100644 e2sim/previous/e2apv1sim/test/Misc/test_asn1c.cpp delete mode 100644 e2sim/previous/e2apv1sim/test/Pendulum/Pendulum_asn_codec.c delete mode 100644 e2sim/previous/e2apv1sim/test/Pendulum/Pendulum_asn_codec.h delete mode 100644 e2sim/previous/e2apv1sim/test/Pendulum/Serial/adruino_serial.c delete mode 100644 e2sim/previous/e2apv1sim/test/Pendulum/Serial/adruino_serial.h delete mode 100644 e2sim/previous/e2apv1sim/test/Pendulum/Serial/arduino-serial-lib.c delete mode 100644 e2sim/previous/e2apv1sim/test/Pendulum/Serial/arduino-serial-lib.h delete mode 100644 e2sim/previous/e2apv1sim/test/Pendulum/demo_setup.txt delete mode 100644 e2sim/previous/e2apv1sim/test/Pendulum/e2sim_closedloop.c delete mode 100644 e2sim/previous/e2apv1sim/test/Pendulum/e2sim_serial.c delete mode 100644 e2sim/previous/e2apv1sim/test/Pendulum/e2sim_test_client.c delete mode 100644 e2sim/previous/e2apv1sim/test/Pendulum/e2termination_test.cpp delete mode 100644 e2sim/previous/e2apv1sim/test/Pendulum/pendulum.asn1 delete mode 100644 e2sim/previous/e2apv1sim/test/WLG/CMakeLists.txt delete mode 100755 e2sim/previous/e2apv1sim/test/WLG/build_wlg.sh delete mode 100644 e2sim/previous/e2apv1sim/test/WLG/ric_perf.cpp delete mode 100644 e2sim/previous/e2apv1sim/test/WLG/ric_wlg.cpp delete mode 100644 e2sim/previous/e2apv1sim/test/X2/CMakeLists.txt delete mode 100644 e2sim/previous/e2apv1sim/test/X2/x2agent.cpp delete mode 100644 e2sim/previous/e2apv1sim/test/X2/x2term.cpp delete mode 100644 e2sim/previous/e2apv1sim/test/X2/x2termination_test.cpp delete mode 100644 e2sim/previous/e2apv1sim/test/rmr_interface/README delete mode 100644 e2sim/previous/e2apv1sim/test/rmr_interface/rmr_install.sh delete mode 100755 e2sim/previous/e2apv1sim/test/rmr_interface/tests/receiver/build_and_run_recvr.sh delete mode 100644 e2sim/previous/e2apv1sim/test/rmr_interface/tests/receiver/rmr_rcvr.c delete mode 100755 e2sim/previous/e2apv1sim/test/rmr_interface/tests/sender/build_and_run_sender.sh delete mode 100644 e2sim/previous/e2apv1sim/test/rmr_interface/tests/sender/rmr_sender.c delete mode 100644 e2sim/previous/e2apv1sim/test/rmr_interface/tests/sender/rmr_wrapper.h delete mode 100755 e2sim/previous/e2apv1sim/tools/asn_defs/generate_e2ap_e2sm_codes delete mode 100644 e2sim/previous/e2apv1sim/tools/build_helper.bash delete mode 100755 e2sim/previous/e2apv1sim/tools/install_asn1c delete mode 100755 e2sim/previous/e2apv1sim/tools/install_dependencies delete mode 100644 e2sim/previous/e2apv1sim/ueMeasReport.txt delete mode 100644 e2sim/previous/e2sim.cpp delete mode 100644 e2sim/previous/helm/README.md delete mode 100644 e2sim/previous/helm/e2sim/Chart.yaml delete mode 100644 e2sim/previous/helm/e2sim/templates/_helpers.tpl delete mode 100755 e2sim/previous/helm/e2sim/templates/bin/_e2sim-run.sh.tpl delete mode 100644 e2sim/previous/helm/e2sim/templates/configmap-e2sim-bin.yaml delete mode 100644 e2sim/previous/helm/e2sim/templates/deployment.yaml delete mode 100755 e2sim/previous/helm/e2sim/values.yaml delete mode 100755 e2sim/previous/helm/e2sim_install.sh delete mode 100644 e2sim/previous/ricsim.cpp delete mode 100755 e2sim/previous/src/ASN1/asn/asn.hpp delete mode 100755 e2sim/previous/src/ASN1/asn/ber/codec.hpp delete mode 100755 e2sim/previous/src/ASN1/asn/ber/common.hpp delete mode 100755 e2sim/previous/src/ASN1/asn/ber/context.hpp delete mode 100755 e2sim/previous/src/ASN1/asn/ber/length.hpp delete mode 100755 e2sim/previous/src/ASN1/asn/ber/opentype.hpp delete mode 100755 e2sim/previous/src/ASN1/asn/ber/tag.hpp delete mode 100755 e2sim/previous/src/ASN1/asn/ber/tools.hpp delete mode 100755 e2sim/previous/src/ASN1/asn/ber/visitor.hpp delete mode 100755 e2sim/previous/src/ASN1/asn/buffer.hpp delete mode 100755 e2sim/previous/src/ASN1/asn/chunked_allocator.hpp delete mode 100755 e2sim/previous/src/ASN1/asn/constraints.hpp delete mode 100755 e2sim/previous/src/ASN1/asn/elements.hpp delete mode 100755 e2sim/previous/src/ASN1/asn/error_context.hpp delete mode 100755 e2sim/previous/src/ASN1/asn/identifier.hpp delete mode 100755 e2sim/previous/src/ASN1/asn/per/binary_integer.hpp delete mode 100755 e2sim/previous/src/ASN1/asn/per/bstring.hpp delete mode 100755 e2sim/previous/src/ASN1/asn/per/choice.hpp delete mode 100755 e2sim/previous/src/ASN1/asn/per/codec.hpp delete mode 100755 e2sim/previous/src/ASN1/asn/per/common.hpp delete mode 100755 e2sim/previous/src/ASN1/asn/per/context.hpp delete mode 100755 e2sim/previous/src/ASN1/asn/per/enumerated.hpp delete mode 100755 e2sim/previous/src/ASN1/asn/per/integer.hpp delete mode 100755 e2sim/previous/src/ASN1/asn/per/length.hpp delete mode 100755 e2sim/previous/src/ASN1/asn/per/oid.hpp delete mode 100755 e2sim/previous/src/ASN1/asn/per/ostring.hpp delete mode 100755 e2sim/previous/src/ASN1/asn/per/sequence.hpp delete mode 100755 e2sim/previous/src/ASN1/asn/per/sequence_of.hpp delete mode 100755 e2sim/previous/src/ASN1/asn/per/visitor.hpp delete mode 100755 e2sim/previous/src/ASN1/asn/per/whole_number.hpp delete mode 100755 e2sim/previous/src/ASN1/asn/printer.hpp delete mode 100755 e2sim/previous/src/ASN1/asn/type_defs.h delete mode 100755 e2sim/previous/src/ASN1/asn/utility.hpp delete mode 100755 e2sim/previous/src/ASN1/asn/value_traits.hpp delete mode 100755 e2sim/previous/src/ASN1/asn/variant.hpp delete mode 100755 e2sim/previous/src/ASN1/asn/version.hpp delete mode 100644 e2sim/previous/src/ASN1/generated/E2AP-Constants.hpp delete mode 100644 e2sim/previous/src/ASN1/generated/E2AP-IEs.hpp delete mode 100644 e2sim/previous/src/ASN1/generated/E2AP-PDU-Contents.hpp delete mode 100644 e2sim/previous/src/ASN1/generated/E2AP-PDU-Descriptions.hpp delete mode 100644 e2sim/previous/src/ASN1/generated/X2AP-CommonDataTypes.hpp delete mode 100644 e2sim/previous/src/ASN1/generated/X2AP-Constants.hpp delete mode 100644 e2sim/previous/src/ASN1/generated/X2AP-Containers.hpp delete mode 100644 e2sim/previous/src/ASN1/generated/X2AP-IEs.hpp delete mode 100644 e2sim/previous/src/ASN1/generated/X2AP-PDU-Contents.hpp delete mode 100644 e2sim/previous/src/ASN1/generated/X2AP-PDU-Descriptions.hpp delete mode 100644 e2sim/previous/src/ASN1/lib/asn_e2ap.cpp delete mode 100644 e2sim/previous/src/ASN1/lib/asn_e2ap.hpp delete mode 100644 e2sim/previous/src/ASN1/lib/asn_e2ap_wrapper.hpp delete mode 100644 e2sim/previous/src/ASN1/lib/asn_x2ap.cpp delete mode 100644 e2sim/previous/src/ASN1/lib/asn_x2ap.hpp delete mode 100644 e2sim/previous/src/ASN1/lib/asn_x2ap_wrapper.hpp delete mode 100644 e2sim/previous/src/ASN1/lib/e2ap_config.hpp delete mode 100644 e2sim/previous/src/DEF/e2sim_defs.cpp delete mode 100644 e2sim/previous/src/DEF/e2sim_defs.h delete mode 100644 e2sim/previous/src/E2AP/E2SM/e2sm.c delete mode 100644 e2sim/previous/src/E2AP/E2SM/e2sm.h delete mode 100644 e2sim/previous/src/E2AP/XML/E2AP_ENDCX2SetupFailure.xml delete mode 100644 e2sim/previous/src/E2AP/XML/E2AP_ENDCX2SetupRequest.xml delete mode 100644 e2sim/previous/src/E2AP/XML/E2AP_ENDCX2SetupResponse.xml delete mode 100644 e2sim/previous/src/E2AP/XML/E2AP_ErrorIndication.xml delete mode 100644 e2sim/previous/src/E2AP/XML/E2AP_RICindication_type1.xml delete mode 100644 e2sim/previous/src/E2AP/XML/E2AP_RICindication_type2.xml delete mode 100644 e2sim/previous/src/E2AP/XML/E2AP_RICsubscriptionRequest.xml delete mode 100644 e2sim/previous/src/E2AP/XML/E2AP_RICsubscriptionRequest_Ashwin.xml delete mode 100644 e2sim/previous/src/E2AP/XML/E2AP_RICsubscriptionResponse.xml delete mode 100644 e2sim/previous/src/E2AP/XML/E2AP_ResourceStatusFailure.xml delete mode 100644 e2sim/previous/src/E2AP/XML/E2AP_ResourceStatusRequest.xml delete mode 100644 e2sim/previous/src/E2AP/XML/E2AP_ResourceStatusRequest_bad.xml delete mode 100644 e2sim/previous/src/E2AP/XML/E2AP_ResourceStatusResponse.xml delete mode 100644 e2sim/previous/src/E2AP/XML/E2AP_ResourceStatusUpdate.xml delete mode 100644 e2sim/previous/src/E2AP/XML/E2AP_X2SetupFailure.xml delete mode 100644 e2sim/previous/src/E2AP/XML/E2AP_X2SetupRequest.xml delete mode 100644 e2sim/previous/src/E2AP/XML/E2AP_X2SetupResponse.xml delete mode 100644 e2sim/previous/src/E2AP/XML/reference_constants.txt delete mode 100644 e2sim/previous/src/E2AP/e2ap_asn1c_codec.c delete mode 100644 e2sim/previous/src/E2AP/e2ap_asn1c_codec.h delete mode 100644 e2sim/previous/src/E2AP/e2ap_message_handler.cpp delete mode 100644 e2sim/previous/src/E2AP/e2ap_message_handler.hpp delete mode 100644 e2sim/previous/src/SCTP/e2sim_sctp.c delete mode 100644 e2sim/previous/src/SCTP/e2sim_sctp.cpp delete mode 100644 e2sim/previous/src/SCTP/e2sim_sctp.h delete mode 100644 e2sim/previous/src/SCTP/e2sim_sctp.hpp delete mode 100644 e2sim/previous/src/X2AP/MESSAGES/XML/sample_endc_x2_setup_failure.xml delete mode 100644 e2sim/previous/src/X2AP/MESSAGES/XML/sample_endc_x2_setup_request.xml delete mode 100644 e2sim/previous/src/X2AP/MESSAGES/XML/sample_endc_x2_setup_response.xml delete mode 100644 e2sim/previous/src/X2AP/MESSAGES/XML/sample_x2_setup_failure.xml delete mode 100644 e2sim/previous/src/X2AP/MESSAGES/XML/sample_x2_setup_request.xml delete mode 100644 e2sim/previous/src/X2AP/MESSAGES/XML/sample_x2_setup_response.xml delete mode 100644 e2sim/previous/src/X2AP/x2ap_asn_codec.c delete mode 100644 e2sim/previous/src/X2AP/x2ap_asn_codec.cpp delete mode 100644 e2sim/previous/src/X2AP/x2ap_asn_codec.h delete mode 100644 e2sim/previous/src/X2AP/x2ap_asn_codec.hpp delete mode 100644 e2sim/previous/src/X2AP/x2ap_generate_messages.c delete mode 100644 e2sim/previous/src/X2AP/x2ap_generate_messages.h delete mode 100644 e2sim/previous/src/X2AP/x2ap_message_handler.c delete mode 100644 e2sim/previous/src/X2AP/x2ap_message_handler.cpp delete mode 100644 e2sim/previous/src/X2AP/x2ap_message_handler.h delete mode 100644 e2sim/previous/src/X2AP/x2ap_message_handler.hpp delete mode 100644 e2sim/previous/test/Misc/CMakeLists.txt delete mode 100644 e2sim/previous/test/Misc/test_asn1c.cpp delete mode 100644 e2sim/previous/test/Pendulum/Pendulum_asn_codec.c delete mode 100644 e2sim/previous/test/Pendulum/Pendulum_asn_codec.h delete mode 100644 e2sim/previous/test/Pendulum/Serial/adruino_serial.c delete mode 100644 e2sim/previous/test/Pendulum/Serial/adruino_serial.h delete mode 100644 e2sim/previous/test/Pendulum/Serial/arduino-serial-lib.c delete mode 100644 e2sim/previous/test/Pendulum/Serial/arduino-serial-lib.h delete mode 100644 e2sim/previous/test/Pendulum/demo_setup.txt delete mode 100644 e2sim/previous/test/Pendulum/e2sim_closedloop.c delete mode 100644 e2sim/previous/test/Pendulum/e2sim_serial.c delete mode 100644 e2sim/previous/test/Pendulum/e2sim_test_client.c delete mode 100644 e2sim/previous/test/Pendulum/e2termination_test.cpp delete mode 100644 e2sim/previous/test/Pendulum/pendulum.asn1 delete mode 100644 e2sim/previous/test/WLG/CMakeLists.txt delete mode 100755 e2sim/previous/test/WLG/build_wlg.sh delete mode 100644 e2sim/previous/test/WLG/ric_perf.cpp delete mode 100644 e2sim/previous/test/WLG/ric_wlg.cpp delete mode 100644 e2sim/previous/test/X2/CMakeLists.txt delete mode 100644 e2sim/previous/test/X2/x2agent.cpp delete mode 100644 e2sim/previous/test/X2/x2term.cpp delete mode 100644 e2sim/previous/test/X2/x2termination_test.cpp delete mode 100644 e2sim/previous/test/rmr_interface/README delete mode 100644 e2sim/previous/test/rmr_interface/rmr_install.sh delete mode 100755 e2sim/previous/test/rmr_interface/tests/receiver/build_and_run_recvr.sh delete mode 100644 e2sim/previous/test/rmr_interface/tests/receiver/rmr_rcvr.c delete mode 100755 e2sim/previous/test/rmr_interface/tests/sender/build_and_run_sender.sh delete mode 100644 e2sim/previous/test/rmr_interface/tests/sender/rmr_sender.c delete mode 100644 e2sim/previous/test/rmr_interface/tests/sender/rmr_wrapper.h delete mode 100755 e2sim/previous/tools/asn_defs/generate_e2ap_e2sm_codes delete mode 100644 e2sim/previous/tools/build_helper.bash delete mode 100755 e2sim/previous/tools/install_asn1c delete mode 100755 e2sim/previous/tools/install_dependencies create mode 100644 e2sim/src/ASN1c/AMFName.c create mode 100644 e2sim/src/ASN1c/AMFName.h delete mode 100644 e2sim/src/ASN1c/BIT_STRING_oer.c create mode 100644 e2sim/src/ASN1c/CauseE2node.c create mode 100644 e2sim/src/ASN1c/CauseE2node.h delete mode 100644 e2sim/src/ASN1c/CauseRIC.c delete mode 100644 e2sim/src/ASN1c/CauseRIC.h create mode 100644 e2sim/src/ASN1c/CauseRICrequest.c create mode 100644 e2sim/src/ASN1c/CauseRICrequest.h create mode 100644 e2sim/src/ASN1c/E2nodeComponentConfigAddition-Item.c create mode 100644 e2sim/src/ASN1c/E2nodeComponentConfigAddition-Item.h create mode 100644 e2sim/src/ASN1c/E2nodeComponentConfigAddition-List.c create mode 100644 e2sim/src/ASN1c/E2nodeComponentConfigAddition-List.h create mode 100644 e2sim/src/ASN1c/E2nodeComponentConfigAdditionAck-Item.c create mode 100644 e2sim/src/ASN1c/E2nodeComponentConfigAdditionAck-Item.h create mode 100644 e2sim/src/ASN1c/E2nodeComponentConfigAdditionAck-List.c create mode 100644 e2sim/src/ASN1c/E2nodeComponentConfigAdditionAck-List.h create mode 100644 e2sim/src/ASN1c/E2nodeComponentConfigRemoval-Item.c create mode 100644 e2sim/src/ASN1c/E2nodeComponentConfigRemoval-Item.h create mode 100644 e2sim/src/ASN1c/E2nodeComponentConfigRemoval-List.c create mode 100644 e2sim/src/ASN1c/E2nodeComponentConfigRemoval-List.h create mode 100644 e2sim/src/ASN1c/E2nodeComponentConfigRemovalAck-Item.c create mode 100644 e2sim/src/ASN1c/E2nodeComponentConfigRemovalAck-Item.h create mode 100644 e2sim/src/ASN1c/E2nodeComponentConfigRemovalAck-List.c create mode 100644 e2sim/src/ASN1c/E2nodeComponentConfigRemovalAck-List.h delete mode 100644 e2sim/src/ASN1c/E2nodeComponentConfigUpdate.c delete mode 100644 e2sim/src/ASN1c/E2nodeComponentConfigUpdate.h delete mode 100644 e2sim/src/ASN1c/E2nodeComponentConfigUpdateAck.c delete mode 100644 e2sim/src/ASN1c/E2nodeComponentConfigUpdateAck.h delete mode 100644 e2sim/src/ASN1c/E2nodeComponentConfigUpdateENB.c delete mode 100644 e2sim/src/ASN1c/E2nodeComponentConfigUpdateENB.h delete mode 100644 e2sim/src/ASN1c/E2nodeComponentConfigUpdateENgNB.c delete mode 100644 e2sim/src/ASN1c/E2nodeComponentConfigUpdateENgNB.h delete mode 100644 e2sim/src/ASN1c/E2nodeComponentConfigUpdateGNB.c delete mode 100644 e2sim/src/ASN1c/E2nodeComponentConfigUpdateGNB.h delete mode 100644 e2sim/src/ASN1c/E2nodeComponentConfigUpdateNGeNB.c delete mode 100644 e2sim/src/ASN1c/E2nodeComponentConfigUpdateNGeNB.h create mode 100644 e2sim/src/ASN1c/E2nodeComponentConfiguration.c create mode 100644 e2sim/src/ASN1c/E2nodeComponentConfiguration.h create mode 100644 e2sim/src/ASN1c/E2nodeComponentConfigurationAck.c create mode 100644 e2sim/src/ASN1c/E2nodeComponentConfigurationAck.h delete mode 100644 e2sim/src/ASN1c/E2nodeComponentGNB-CU-UP-ID.c delete mode 100644 e2sim/src/ASN1c/E2nodeComponentGNB-CU-UP-ID.h delete mode 100644 e2sim/src/ASN1c/E2nodeComponentGNB-DU-ID.c delete mode 100644 e2sim/src/ASN1c/E2nodeComponentGNB-DU-ID.h create mode 100644 e2sim/src/ASN1c/E2nodeComponentInterfaceE1.c create mode 100644 e2sim/src/ASN1c/E2nodeComponentInterfaceE1.h create mode 100644 e2sim/src/ASN1c/E2nodeComponentInterfaceF1.c create mode 100644 e2sim/src/ASN1c/E2nodeComponentInterfaceF1.h create mode 100644 e2sim/src/ASN1c/E2nodeComponentInterfaceNG.c create mode 100644 e2sim/src/ASN1c/E2nodeComponentInterfaceNG.h create mode 100644 e2sim/src/ASN1c/E2nodeComponentInterfaceS1.c create mode 100644 e2sim/src/ASN1c/E2nodeComponentInterfaceS1.h create mode 100644 e2sim/src/ASN1c/E2nodeComponentInterfaceType.c create mode 100644 e2sim/src/ASN1c/E2nodeComponentInterfaceType.h create mode 100644 e2sim/src/ASN1c/E2nodeComponentInterfaceW1.c create mode 100644 e2sim/src/ASN1c/E2nodeComponentInterfaceW1.h create mode 100644 e2sim/src/ASN1c/E2nodeComponentInterfaceX2.c create mode 100644 e2sim/src/ASN1c/E2nodeComponentInterfaceX2.h create mode 100644 e2sim/src/ASN1c/E2nodeComponentInterfaceXn.c create mode 100644 e2sim/src/ASN1c/E2nodeComponentInterfaceXn.h delete mode 100644 e2sim/src/ASN1c/E2nodeComponentType.c delete mode 100644 e2sim/src/ASN1c/E2nodeComponentType.h create mode 100644 e2sim/src/ASN1c/E2nodeTNLassociationRemoval-Item.c create mode 100644 e2sim/src/ASN1c/E2nodeTNLassociationRemoval-Item.h create mode 100644 e2sim/src/ASN1c/E2nodeTNLassociationRemoval-List.c create mode 100644 e2sim/src/ASN1c/E2nodeTNLassociationRemoval-List.h create mode 100644 e2sim/src/ASN1c/GlobalNG-RANNode-ID.c create mode 100644 e2sim/src/ASN1c/GlobalNG-RANNode-ID.h delete mode 100644 e2sim/src/ASN1c/INTEGER_oer.c create mode 100644 e2sim/src/ASN1c/MMEname.c create mode 100644 e2sim/src/ASN1c/MMEname.h delete mode 100644 e2sim/src/ASN1c/Makefile.am.asn1convert create mode 100644 e2sim/src/ASN1c/NGENB-DU-ID.c create mode 100644 e2sim/src/ASN1c/NGENB-DU-ID.h delete mode 100644 e2sim/src/ASN1c/NativeEnumerated_oer.c delete mode 100644 e2sim/src/ASN1c/NativeInteger_oer.c delete mode 100644 e2sim/src/ASN1c/OCTET_STRING_oer.c delete mode 100644 e2sim/src/ASN1c/OPEN_TYPE_oer.c delete mode 100644 e2sim/src/ASN1c/RICcontrolStatus.c delete mode 100644 e2sim/src/ASN1c/RICcontrolStatus.h create mode 100644 e2sim/src/ASN1c/RICsubscription-List-withCause.c create mode 100644 e2sim/src/ASN1c/RICsubscription-List-withCause.h create mode 100644 e2sim/src/ASN1c/RICsubscription-withCause-Item.c create mode 100644 e2sim/src/ASN1c/RICsubscription-withCause-Item.h create mode 100644 e2sim/src/ASN1c/RICsubscriptionDeleteRequired.c create mode 100644 e2sim/src/ASN1c/RICsubscriptionDeleteRequired.h create mode 100644 e2sim/src/ASN1c/TransactionID.c create mode 100644 e2sim/src/ASN1c/TransactionID.h delete mode 100644 e2sim/src/ASN1c/constr_CHOICE_oer.c delete mode 100644 e2sim/src/ASN1c/constr_SEQUENCE_oer.c delete mode 100644 e2sim/src/ASN1c/constr_SET_OF_oer.c delete mode 100644 e2sim/src/ASN1c/converter-example.mk delete mode 100644 e2sim/src/ASN1c/oer_decoder.c delete mode 100644 e2sim/src/ASN1c/oer_decoder.h delete mode 100644 e2sim/src/ASN1c/oer_encoder.c delete mode 100644 e2sim/src/ASN1c/oer_encoder.h delete mode 100644 e2sim/src/ASN1c/oer_support.c delete mode 100644 e2sim/src/ASN1c/oer_support.h delete mode 100644 e2sim/src/ASN1c/pdu_collection.c diff --git a/e2sim/CMakeLists.txt b/e2sim/CMakeLists.txt index bf57fda..eb833dd 100644 --- a/e2sim/CMakeLists.txt +++ b/e2sim/CMakeLists.txt @@ -17,6 +17,8 @@ endif() include ( GNUInstallDirs ) +add_definitions("-D ASN_DISABLE_OER_SUPPORT") + if( NOT CMAKE_INSTALL_LIBDIR ) set( CMAKE_INSTALL_LIBDIR "lib" ) endif() diff --git a/e2sim/e2sm_examples/kpm_e2sm/e2sim-dev_1.0.0_amd64.deb b/e2sim/e2sm_examples/kpm_e2sm/e2sim-dev_1.0.0_amd64.deb index 2e62d12fd5a9b6842f95262b194126a29c12a1b6..a793bf33a98bcfc5b161bb5a6f9df5b4f0747d0a 100644 GIT binary patch literal 401840 zcmafZbx<79yXD~S?(XjHP6$pC+=IL8;1HaU;2MGimmq<_pus(OaJS$-OfUJpeOp`m z$G)zvJAHeqZ(Zwi&Ue11leF}-wwFe?v9)rrbmg*gaJBRdprxhd6BZN^6%rE?=A)(M zeX0L<$;ZnpEG$S%`*Qy8!vdY3n-|^M&DGn}&6(TV(v#aR@PB?@NQC#L<$s3-I!yv9 z$loR*B2F@G?9SI4oM0o8~2@PMbj@(8mbBJL% zkMjt=DqC+y1BI(0iTZnLkiqBAXd9AXk6Gx^-}g7;g?Bpli2G&h7Y_%1$4MCL_IBRd zYk_qT9V3c;h?p*TE9Gs_6bdzt4rpTmE0B` zpexhUtBwy_fjWne1I}i3XXFrzrkvHE{tu5&UhSLvGBN^O=^~Xx=J->=-pn?x?VsiY zlP$wMU_8NKPD7FHEaxUAhwTd&X8n94gq+ezFyLpG`PPkRJue>sktPp37R06N2r-_v zGrTrZIaB}TEREwO@5hlH=hNjlJA~hi|2-vfK=%Feo?b=C2MyHn_g(f8>7Mq#%KL>L z&Au&?cc`ns`PSil$sk&1SH)h^)8}+6tY5A>hUc^+aI9Y3vSW{%gSKn+;~me@7P)F? z*+9fwTI_GQ(!fU-MvsOOW}I zt0WrAC`c=%L!J(AVGl$(O-RDtq=UYI4NASfFm8`zAk>$ry!rQKn4c)U5 zYd*F^lV{Yg+GP`2FmC9ZiIXbFn_Ese`PVKO{;A!Sf z=EK(8>cb#8-?A`f*)O$zdivOJQ0AQlM}&N9x)2TJeOmLf+UIg4Z_kn zs%n17@HGfmxZS_M*ra`T;utTigIPh1RW|opOkPXi$}NY!Hso=-x{`Pm)M*i4Ne2Oq&DoNUBJP?8A!%4}KbNVsOAa z->)8c=}`Z$RM^5MrloSWM!2OH{CL@Xu9~rm=&0Pfpjom;tJFR*1vi~}M8sa!T4zcV z(Cdp$?v#e*q;5f9(#gKGRfoB6(-g0u`P5HPc0O|>4dOdWMG%ck;uro*8mRoeMupO` z+WbQoRZyQOUHs4Y$8u^FY}M(N+7d|S1NS}$D5F};c%l9&C`7S07Es=roE!uD5LLKs z6lc3IN{c;qeFx`}>JCkj?7r)qgNPjI(FvXa7U%w2Uerou!o8-8jKmqoLD=Dqm2 zX^=~U{1BT`a$|y$-+9dqmSyzsjc|O5Fd9xN7SmVF(mtrtLu{qr6m2ww#J#A|HdM}A zx8JV5Q7}bY5{#QMqD{kFMIP9x2tFKH=Tbv=Iy$Q?8t}8OsbMS%XCK5Cnby}fM@vk@ zz*8yb&wACWYUIICN);M$PIn?E6{0g?HjKZ&qoA`fxJb^rpb)cTBvB+DBk}bn*8WO} zN8)`zrP5(~&xwKBf%Le}c@AZ}T?1~KX?9)MvzY~*%``RTduJt9M5XZ?^s^$&!HmL! z@u060^Upk89^?BEtD|As)Ka@H76V1{2 zcTwJ6-mMJNAbQvkJ64wruwsZPmCCJ<{~gZ>Cj}_aWp2J+=yaRp?WHDIw!KDC+lq{o zoctw~e|TFDIM|RCeQ%zur>>~16_vnXPEz(kR_Z8k>X$kR=1)gfh8uhDNL!!0_m`Gt zY9>9BBN+aI=F_~{xg7Hy2;4no)pCSh8?LdSbB9m50}xf<_|QO$(cs`s6s&huSkAC<(z7BniO8nORa{;u3J*=UGiFh4yRd4sT^O=i~o zty=8S{!2W*lqffgF@K7D=TdGUB1Y7rcpRQC{q=9jxiSrhM43fPCFf#`{{2~I^b8#O zS9%I)tmyI6m=Q_U{5_37(lEt=zxO9|7sHbYr?;Tr4O;iS4)uB#2eP^wZw9*(7aZk3 zDq2>@o)RZk>!u7ZYC6*zGL*e}bmx^hkqsQ4^6vaz_WDyk5*EJvTDSt*k*mcYt<2GZ zOXszX`c^6e#JzaEgTCp{=xXJXyP$=&4RIqf{U*%)oz;tugz+Nz>iTk~VvDpAwxT*i z3<5;M&+UE)TpY4>YcAUQ5sXvyQ__8RvWj%MMMoWa=*m9d2e127dUWAJe=ymK#pR-@ z3q+hn4n*(;-hvJTbq)gcByx3%FHn9}M!l0C>3RFL3@Jyb0mTJHCn#*710>Gq6~)-P zB!~H?!Grflt@vDOu4Aey&c)u~nP2MEpK1$pq4-QSykBLgN{Bp~4OQjX9x3HqOxkh> zyo^Nhz5Gy5m6bk(2+a~%%B}JB^~s!wuY~wx%mlQrB)v70uyZ8newMs0=GwuI6B~R( z5jn=DbdAcoQEf3F$7*+!0+$cCL-%$c9;AQjC=d#w@bzkI@;%u%f5wuC-kg(GUqw56 zVKU($tS%D#vBAZu-^K6otX?H;w8@_%ApZef1ep$z zApIR;RkVJLj;wf%Pbu(NcuSgwg-G?}PrHA12N$Kik1G%7z&7%AnEXIve}k>zG7z`B z>1uSAMspoCwmnLF3Ad^5C%lcGLL)s9`%L_eg{Ym^qTSRy^x4U*#@_Krn_m0tIJ0(S z>?h>SwxR*e`$gI2LY1KBNAE5%F89|&Zasw?x>W74>JwCKNXp8($&1&}*ja=lbp7vF z!%kx*ZzJm5=$Kd0IZMw_%^~AGQd+H z5exdIwJY5%t+kUx`)xJY+r8aBU=6Gp1uxp8{ z)T>g=FmBDsI&Q$ngZ<}Bv%~U}y!)?wqi#}oZ^p#1p;S32PiSyRXz+ZIN~^?ny%{&- z02&5D9f3kk>Z97&2R{bgu6LL5`+AwI6?f#XRmd4oY~H4ly{1Mc@*WILogo=r3Vywt zvtD~qen)R9B#EMk^Qal4GR3ECFfG7KZZO75#*>jSg2jGh<7E~pS*dG}Th**ajaR{? z739EOvWk;drjXGzYmGWDG`^>Y?=DY|pP^PBKNFpJJrb_;$$6N8(HyyLrITHc?M{B8 zHOu+cIWbZM;jgvgju5f~r13KEX0-%mJv^i-c#}qVVnJOtZiX}nrMHC9HeI`kQ@o{( zXvRz`(DHGfj-#TG1r98;ef&+5YcDUJ$H16Hg}+^b?m?Nn_;y=c2DGBtK~AB^N4`4R z$4@)+DgFxGG~dZJlGq#6=I{rtYa00t9DLx`3HnaA_@jyOacTVvnTfYpB5f%ZY&Q#7&Q z@%u1L5R1oW+tfvj-Cn@JEB0$Nj?PXaWvvv}5f(VBM%Y8v^v95VB;3zh%U2dn)ksXY z=oB*At0?|e&#*R^8P3E8TCU&GN~+>wHdgG#=VAFc)420o1(X&me=+(S4zMuvP|?Kl zb%ad)X)CF>T)s3=*uY<)>GieZ<{389D*r~~j6@c~jzels6ZW}iTpgP~e%kK;Djz$+ zK8K5FtYW_PC+`q$bwrFhdN(C&#pC_;4~x9$UmikVlzJM8e;7_Nn@i%t-(~G5+zcxC zSU9ncpgK)W?T}_iA#bxwvMtG%kcQysALeCiSa3={+kvkq+1*fGgnYCH6w`$BceY-eq|^*UbUHJ zfYVq$O7fnpAyjL-Q6$71Cy(czk%x~fh z{Zy+WeO5{}aZke<^$x}dD84e+7qjA7UQb_0USuw$cN^9S3*%xht7k_28PPtOIusZ8 zZ5d#ecyG=7{p+s0rpI5Agot0&eAKGLs52~jxvdk6`Us$LSyX9|d!$rW3a%#8$XuDxVvvWi7ws_N=^5 z%6v?$B!mcGITB4R1xtXHd;zlofqXgGXwf;Mc|o(06d3{1=q zuS?$e#eGlV45a)N?QHAs>e>4??^2G!ThhNvR5Ly3XXHkiw$vwZcsyaTa$_g941BsYtP1!Zm{=h!_ zQw&}?__+Q&SBK@nPGkA3G!^vYhl5wDHMJW$=eLDOhR3HMbD(Xz^j+0f*M=Tg{x5e=N1(5zjqL4hgl5Nhq_kpq|P+#AFTqD^LR+AP)@eHyzR zx@(TEy}n(L@xYXEMnV`mLkhZ)+@_fDaYWv;{6?g-ZKTUoUXFeXt>CGkJ|U7k3=BQ>5oEe>Hpr>J6C}ssS6l5pZHj9& z8SK2FAbm!3-=>{cK!>NML~tu-*gMHX z^Vo%$a;Vc}vZ|g$IrL**{{lXplKQV2;<#bi#nO7_e*z(&%{J@eIdgxJ-*IvfLyT&O2I2xopsd{BFG`9*tpc)drEP0VKxpHk(Sg?TpZRWq-hxz zpO+rd9V5S*@Di~cjmf7H7f)luP3UPV#)b1~n_6I3Ik-t~ZC0Y6vPa-_G~X>vXW@{54T1=gDJ|xU?S(jTADkap?N-?9BF_Wx=1E+;(DP zj2mEk_4=ad8quEl&S{U)O_`QvNnF1!@>*+dxB>aAFr7p3jdH9i!Ib>k><}`c-LABZ zV=`}qq{%~yZUZO&1_!|zCO(V|X9rGC<#K>A6 zxu}HV$1-0LBi3S+OHJW~iiim6QRmGVjAdkD;qO@k_2z3!+J?{P{i6N23;^fpz*0 z=dcGAq$)x7ti!jT%nHrAE*cSB^irR@XjO!8bq|>0vgZT6eXJ3hDvwvjEmeonW?1QE zh^{GO4;17@VtL5dG^L_?zV{cX1WcAGxljmdqE{HsGi9vJu_g%Pb$nC;idZ<4ktb`3 zN4^O3x>d|?L`IfI_3y|j{0QlO%`N}Q_j8ESH~sYP<{rX(&xoFjk|4xZ9DcT9TJ^{Z zi)4L*A^wLyXi`*C@BM4JL=%izA8S7GkdxOMCp2R(HxZnn$-JZW`W5>Q{(F1JYS)M| zmNbPd@0t6ueUm*e8afiap3v0XzDH zxtFKYxlQRM>t<#ql=;w8HA_l#wJuc0211yndug~ zSm6Y>aOO7+>23hNK>9QZZ;e)cTQRy~Yg~Un(;c`98!pz&&bgBz%5bLJlzyCjaQhaN zbOg>xjG0X`3=esZ?W{jLhM=j;12)n*wSyj~z82=dX$8TpTn)U?SN8gfR7QoUhT&QJxgI=9L_$3C02uEHUMjvy;)kAZAVYlhJs{DW}ks1wrdwkpEq^#t#RFYXYv{n&)>II0}x1nKtAJ@|4kr26Z8dNI25{g<80xd1Yx+$vrN&-Qiie=d3HXCqWcT7R zBrV4R%x4A&n$&%?0E7j)y#e!MMCSK^@24?h?Ex5NmQ}psuXI~UqtleX>BFqZ=6l1T z#I9gUp0F`f$#sb656s(e9H<0LIFCzq=5l?XB@@8XJ%8_a$CJMDAlkJ`X44{lZ(ILF za&F0=^36>fUj+|}sw+jxO*}hn-v)1c`3M_aT@|T|(A$y8UProUHTao_Qx2#48uRz0 z3PGwTuIaaJE3xdl7?Ig~M{yQluaU+A8+4s}o)GGPZG8^z0K>I2x3bo9 z+G_6~J<-SXkS0aWX>tp_quN01<@o8*!&J*?eYb4PlI=Tml zfi)gJ0kao@|Kvu7TNAlxMtOAD>N96k{UFQPl?6)2IRa`Mbq#Xss3`Rx;t!EBYyi?2 zDqUEp^#{(|=@7}s$W+$Zkoq8m%Wz%EWR+o3DC@v^CS0oMBGtZCktZo16iF4K!Oh5J zot5vKFk{P3Y^gooad9hC+84}?$o##Ib)$}25pR?`(ia2?}fem zaJ>y+Nyf1|^g!?)C(Ar@03a?(pav-1-ONrE1f|u9*E7>Qo(#^duKD9+OHWj4>S=-# zA&3y{axe%HILLTcBoIB^?zWZhQus$Z(kr@52xn}_2$qOfx@UY zTm{B7A~*T5Wy=L}t7*r|k8=UIRB90R`PG~Us7R=w{NmX3PbY0$3?l*q7Vl^ekC=K> z;po~y-M-2K%R*$;@#t(5PTd*Mq99KjcQtB5N}C2sK&(#~Qwzt#-JePb=K!IB3M8DS z5W0{^?~mSx1c4ZyA9g%x?wYI_5jGr=K8BI@VB=!X3G9Ql(M)oVqGs4A5H+&<@p9ADWFUn5x7wm89+-P za!Y!>E{9!WZA1+A@61KuZT{jkQFMNnx9YmD0rsm0v-;5x0?8}Y^BXZZH| zv--o(4{{O+rpx?rrYn+~<|tF=Nt zY;D_Bv-5%FRk^vh_ z>EJkKk#qy`casYalF}eJ=@JP1P)%9tgMyprG&+$+>><0Vauun*-SN#aZ1gb(SMhz4 z3cf9A30$7ZAP`AFgP81n*Z267 z68DIY_#FGJNDA2UA1MPEp>g4$W_L0bkkq_9%@CQ3y&_>`eld7E`(!7GlP$mi3u%G7V?T0|(4gSuyC`K_L$lW*e8ACQtDo)l;EsQ-lxy*&wU4u_W zu$s_ZQ#rG3=k}oPZQIaLorgE_NIbN01mgp=ZAd*9DvU7Dh>`9M&o8buU1Tea=wjUv zC+Fuupp{<7Y8i&VAKpmDdY>>BD6HPS{vmJwK?1}OBSy(=nIiOQ$+8-;c0W^0h8B_k z)i7eCJS$>-v#gd0akPph*Hj(r=UxdB(t}(QtxdGo$bsGb5j1injZFwff;m6>37pv+ z(Te_na@YF0FnBA%WV{N4N#o)#g+9U!JlKV;2u&r#1E>?5A;w6p!~E|^F|`S;^S+d6 z2rCYu2&ke6@%C^ji8A)!eVLB4U+Cv7D7MAC-kqJy%nrT}Ix9pWUJ-Dw@brq|+Z>e; zgCqma`7yw*`!->$D`4JA(QpM`O*RMI`U7BZ&mowcV#M!4>vAy)!i&te2)dKp4;Lm| z+?O$y(`=c30fZ(_^#uT*R@a1ID7sMx>ZBaf?r_A0D%|5=>;m+};Vrr$En=3m0tbG` z3L2~ORu@~EzTFSLG<82>_;0fK<#r1!G_st!vXk^&7WwP_vhivn0;%$sF3G{drN&fh zI^)u)Bjmr0sgaCqSN;{otcXUXP08@hGh9UQoijBrMTRlmA;Y@$A*D=

4$-22;r&ts_)x^p5Qkq2;t9DSb>|Li)IMW<@ujm1UY7`?~q24 zvh+64KID)pnQ6}l!lZF@Z<>mW_x%eU3`+ zFPu?Xhbx9O2YG#3`y9x%Aa*a5CQQBW0B6*mN1U^HT}?Kj)X=C~pZBGP$hPwER#In)0VYTMT>kVe-w;1aK{33IWRT_8-i9fVfj)N`$Y^ zEhz{Yhdl3S)0kutP+E^4P*3{`66FRTZAJ67z2u{=aYyBRGipiP*HO1*ie&|1F?-ov z{f0%Kc7me*_$OiTW-+Nn%0{B{=JQZl zn3jl!%^_wHR>UCL3s!toB+9|)%a)c6c#DRLn=&6~7W>8VH6-%SWGYg()K%)hOSKfu z(_RMU-4VSgzvZY^hQ{CA$`35FrMBarhJzQqY#VokoU;YNOyG{!cZhOrf*#dQ@!}$THj<;h~Z?EjkAUSeZk5%sW=pB*?x5?gtF!K|oTFO{o0Q`IZ z9=vl07TS^oSRTM#xkmi}8l+|iFnm;l7218+0yyhf$gHW0c5VXdKas%^R>Jx0-uvlC zqn16a`F=#*%l?SpV+9TlQRIDVn1)LHP@#x;HG~ys!ClD|@uR2!b;fW3zsKZHDk|~3 ztui9nsW|U14bL?SF+vHqlA67Tvi3Kzhj`Pm>vp%tj3Y1o&M z0-Q$v12mT!lqvvg-KjNL=@R4e?fbZb5{@Bi583+rstu3hhx1W){%Aj2*=4)&z1mTP zSfp%@S=K#I#R$hQo~6IoHIj!SrP4S`<}ccGbzg6*i(w^Ld(|*|lzvBxJuNDE^T-@|X5xTFkuH3nvi_D5XS+C=cK)DO- zN={}~gp~m`o_Tw7BXT(l94hu^bzG8qRDBuaRivB1g$=5BBq3CzXUY}uCYp3+4aWvn zOy2`<37ZwbfE~j`3P3i-;vC{0$RF0iT>^(cz3i4q|3NfBPp?aiSa{fa8DpmQYK5S! z#?-%Kc5WCPDlOIoSyx+Si>sB=B_?^L{6?Z@CklQqpFcfv)|wLp15qmyPctd+PDWbE z%ZDXMUC7ux5LMyR++vK+kf z>?VIl5fx)MYWEL3NKsY26%s4R0x8xe!;G|a*OoWGXcUiPz*+w|xA!E4z-o}UCDKWo zIwLOW<2w{92Bpoj;?>hAM<0V)uHQm(TJVYaT(Gx>=u;Cw(;1*-N&5H%CikEQi0<9O zo+tvSM9BuWZ}_Fv7jp~hF2Y%g4hW=0`~Mtp=CZj{-Z-(!2Xuq5$C7Bx1}G9A;CImU zEwSE6)DiEXT(=EA4BQ+(EN!YpU7Dcv@^aiV&?Fa>(pu3mbF|4uTrLF|tZnCU$^{I= ze;ak%pW9(1N;oHPb?3Jsh#JYal$3id6lh2oy^f{563e+J3z>N_g!H# z*4!_(6u(Hk@LWFc)#C(*Ts(${T&S-Z+L1*^fjg`EOcLFWBc~|bG=d}@aZxXLif7!~ zyZxBmtcK)l`UWq4Ffl&E}R5F%x2AlE&&4=6c#*yZXAEuOww0eMIGctssIrPQBf zHpwGhrRvongc_`n^cMZ(rQMkRpi*^nb?ET0OA97KyHDJpNeM;d0qAXxNJy^^cMQfd#BC!&%piw=`}V{Oz6u6C*_3fi<*pyKN zP(D6w^T}=wSkVLTe18V#<^veUrV!Xd+|@Ir7I>=*R^EGP4E++zi;$o)aWfoW(;4e$ zasR#N$K>|XHDKTuVZQ)=q?-j=<-vf0z{DNU4l|#fD#F4DKKQJs3|hM#r}fwNSt%rI~S;BZa75bLL^eXp%QNNN4?n z?NpGw?`b@?Ar-5aPcr{@z0kcDX=e;N??;#i=QTeOg69BJE&YU18Z7%}B^WyAR#;4fe@XFq|TsReG^ zo(sDJpl-bZ(1i^d;lOlL*+iT4pm0Y!kfNT56`bN4mLJH41e)$+EP_PqEg{F_0**O1 zE(TiHkiNdGn#UdR2!qh=KY^QI>lP%q3=e;GM3{DbF0We`4iDrVRf_Qbg zXuJ&ty~$8t(fG}zdqFM>rj*ZXq7TQr%*a{oU5cuB-q8tlt7#<2l>Wca0R-v$2G%h? z9@WpEX)$+!gV+uu4qqm*cGT*uWVzfc@4+d90dTGw==2^k`WJAGH3b7;hL>H81jAs4 z)95c;(Fm(uumAO^BF0iw^YGfL?B*maJU?(OIHs2VWjSHIh43%aAKM9#bfF%s15W(` zP?15f#dU@r$R@5P4+%tO?@CX5rtkb9XEu^zD-J4C5nuo*wgl)F)gNPd=1C^E+hb1? zOU<(7A;2iK;Oqy15Z`CW>eW6Z=Ve=*p0B&2hhc8o!L_ZGpijB2n8;efQ^bsj+aaPh z-Dp32&u4;_yk_eAwo2_z1ykX2eO`Z2)u~tab%Vgz0oEX_`nrVb&drKd>lUZ%K$G}g zy25=8MTlNTGn}~GkzXmk2FJPJR$6=fy_*lRtOV?={!XUVSZ8t@Oz<)ZVzAt#XF~^> zzvY2g#&7DmwnHkHMNlVv60gVzZZ@F7rb5tGBiKS65PS0MwqgGA@#?>+u-`-FWg@ump!3+Pmo>bIf(0^15-{0Z9fXpbQibLJ}+Md<}U1a_fJk$+>9~4pp zH)|;G+(M`7f{b-d>r-s&0m8}Wg@^B@Mx7jX4d9a*i3x)~a0dsdc^eQ8g7F;rK%xIx z<(IA|Jr_PC6dg(T;UBl!{xsjWE_S>TvMi(74vIBpg0>p}8{X9uP~tlJUvt9tZ**6e z#$p&#Lq{^J#fujRklS_6o~4}`87c)S!9gDAv8gSzH4A>K?uFPO%_Rjgzzgi$yF~)R zdZ5r7^J%X|glFGzBxldV!sKGK36VHq8%9@(!L305r4L359$4Xh2tcBOi@-f?&vVpZH>TV zu*YJ^;#&)tQ8j(IFwQUb-%$`1U$+fy50i4*rT;6@$-)Zx8= zNG#xPZ=(*!ztnEnO@{i&B%NJn*OuXE3qPpwUF>p@R-CE3XAFDZ{@%aKEIcP3iQpm! zH_}^*e88doN^fep2|GA}h5{wLFM?&K6tN-03Ox%6O4h$j{?%HHHydA!yms~--;<7G zE8|;UMAo_ggr8a7r>SXYKS$INSdipT|C_}7ty?}T7b_8wrNh%C4H3Esjr)Th_LH38NqEyfZ!Z5YfZG>*X85&GjV|G*)z1=5F6zq*n{oG8iU|W zOw@tJq@LfilhyGJPg!CT>&fHd`v?zh_&d$DFOd-2*^^c$yA?YE!h zpNZ*?d~`jVmT3GDygLl1^zidY<_P!W_+#@B~WFq6=%j*?_F1jeUMo` zrxEH3DEGa+2f9L`ZcR@wX_4}?3kcfFhKvTz#?OK0U+2KR*NY>)h74UN*#JYcWkav6 zUs(drWfnjPRz1*#y$Cj^IDy>N1NwPVu)d@UUl03>!XQBEq(u@YvLy+tItNZ7@nF^s z?HB*@Ap)t#%2O|QkRA~%{c$l^aI64#Ux_fH@1;{Xe#LHxkDKC29M_TkKNMuNbqTH+ z^zNnro0pc&=VV~}7m(SjCkVw0QXAZZZG~Zw<)M3EwmdyR@1-j62$3%VI0JA2yNyDw zUqIDstmisM(ns?-zH3OO%K>;d7N#|_v@O$RJ;MAFSJ#v+zq8IX!!N?VB)!pm6C+Y1jDXCTG4rCHyy479Wh#W$|xy+La~g>c#qRb01Mv zZzz*9_!h>#k-ivwUt-Qb@Yr5zs3z=|iKv5r0OKE!Hhn3?@aq>1;1hn}CdBXUX}ly|9W0UY?it~iSyZCL3Z)!mz_t2@kuZQP zaxPu!K~4PKGQIvCW(CL+Vvul0K{U^8M(C@m&!0OQv6yxe$5F*-+e(x6WRM&G4nal?c zZl9lle=0>C`gRRA8aEdTLy-Hk6#G2d*Cc@JrgsH`kePrq(EHM94Ruirb*}{INWWg( z$?Y|i5+Fe4f{S^4JmLieB~12Sv43;0+7JP!owbNc!3f?yZ?@7`pM_V20r|CHpcQX_ z9l*nfn>dJ;lw~y#!D3x+S>iEkUP8s$@GL2U`^jkm*UurTq>i%LQ4hxJiuSg6QKZK5 z@b~Dou?X&gr);1?!64-B;|f)fB391}8MdL{gGC>$3xe~1ZA&Py7Zn0_li=?`FV@`B zKgx;$qNa0o;F!B-Es+#|IitdpX^a!CN#WJX8g<9mBj71vVMb`UW7$OLza^V$Y6HLZZXeM=d(S}oO;4pg(x~(A-@CZ{RH`(Q4qfy$pOdgO)rcTST_J@4+Fr9$96>_7Uud{}gJ>?DMRFWEBoz+!+T3 z>W=>l8NvYh5*pbOk`0Jan=2Hhp-24P1Uiur1LSAVt2A>nc-)6WLWOGc@$&NBOoYy% z7w7s-Dtt8CZ#ndxqnhHk4&SK*3sb6M02-FVN@eK&9#CSoG70>H3W{wR!9Z*1Wc2Yb zu;Xt(n3)=gA0WrU!Y#SyNZoKSN!-QxP6(e7#}q9qw_%X}5(wMRUh-!}gyjZvs_E?K zB0Q$B>NSHx-se*v6n5%ug30UVF^-o)*BmZnjvCJ(EykfR$P3#R_JC&&$iCZkwz#_% zjz!=mvccVmhuE#`oql`t8gS6f9?z5fjG9a4&t7yBEMeV2{m`kPnE+&7K;|39?F;=3 z&LRIa)Ju;O&SeAw@n8gIEAfCK@y>lAM#Y89vO09~xQ-Y)`N?n_T!88XokV!k2h8|N z!GdD*;9%t#Q;Md{pzAB(#g^?T9t8e*0emp)5)y*28Mh!Z&_rZBybZo1_SBj#cB+Bp zYetY$RX2R2jeZfF;ZUVy5wE2dVnOS_G~wh^`QVdEMUW2}%;^HMU^fr+nYC{30~8)G z7!Bgn0rn5L79a9!!@_ntV1M?wXYOW~E%=QA=voDmSGe5w^Kl7<{S`^(!8eq>m5meV zBS~tR6e@+C8t=%NzZ%@~;0y1DbCGZstasxGpiT#Q0@u=pwchgQNQjJ)aouXegzptB zz9uMPE_2aiW^qA>Z8=xcWpAzNdlh2vKPwejce~7c4dK{_3t=|ty@3?^1SHZHKwvH( z?AT@{ZjZWk-0k~HyH)w>{7#dIv@UslMX>5iFMuP&2cm+tmZS~qGWhi$ZqnR9xBM-Nm_3-*;wcioO=hV0$(5n)r-SUXHqO`3dc--L z+xka3l=&(AcQT@~$FZjf3taB#P;>6|UABs_pSe|(DxYs&;(RZGi8^3bF-$lx2j@I= zr4^>NFNfHj7!~*|^QZ9!T!v27kTL(h0XE6l2OpH3+Hwr!p#|}VtZ60#sb6S9)_~wm zNtB{KprY?Da28JU&z%T`;#krob0tgTNSoJtfvQzj!@z;QA(xvwGsM4!Thy%l%djK( zKYJ47&0?;xhU|hSUVQKuNrouD&b{sL{;HfPv?Pl7RVwux^pJilLo4OGivyfD)nijV zf3W~jNv2#WWH17c0O^%mk6z=_%9%Cm)40Z&i29qFyWAbVptQB-lZ(JKE9G}J0rn+i z7!(3{WtIWtm$I5kz|!`1vd0UUo!l-x0Mz$87ZAAp3z zAND^@pj#A(5T@)H@BY4DAAtR0#giUox1FWN@L zYH`SM83n@P1`5)Ej>}@X{0IC=7vdtMC<$ck_Ex7sP(DX%DW-bn;ToJc++G5yx9Ex~ zqW1y1G1?;Yb2V84JTSezdQYs@YWT8q?i75X>nSf`_V^2dp#o^e`|siWA?;$_$PEQ* z!7;ag-s=6_M_9{${>gG3x9GCJ0h6wD#M{7P;;;5ECAXecWJ1O|k zwFyFC|HKd5++96J`JK|*xIMjN1GKNVP(oo zP1#YZ%PqD;gb{27+L7rS>`r4o8gND~GM#_Exk+I`Ayp{n8|uao>}bI?kM0kyI5KS2 zm74Lo8Jx2M^fcjE)5hz=9!xnm;OuBLsj<(r zZ0yaivBkT2Mr!(lKWUNQeDJxUl7m-Y%(ReZ|B64j@5iDA8h({tg*W!$V{O#F?H6|W zz;E5Qo?*_()QdHF#DG&9f_4Xt#&aK#kOBj4FR{N&IH3D`opjzj80y^uM*sOHea?@3 zTBH?A7GVxawyz)SvcEVXbO;A!ptJqF>yc|2Q=1|FP2WU(T=uq&J{*gbcp!_nI8^4T z9vtBByXTE8+X1|&2>|2y;XkhfJ}@bb$!|q>BJYa~N@26w$m>|#1sx9Gt#t(Q<6F!=?iWq;aG<^*CGW_~(rKO~RJ4{@Z zv~>D@=L;=gOK>7~l0)_Yn{s$EyB%3HRXWn>>?ZJ{7Rm+z%aj#h{kR4C4EZPXm|zIT zBnaTc>5Y4HFTSu9N|5Wk?x#L7;T(jb$!Q*z5|?b0A@*i$%-+iCj?><1YIptGV_?*! zVs5*_9ac4WxeZayI|D{xkj0WQ2GHT$0cE{Cfj<{&s)#ci@{XZ!9vX9tpWCE~`wxyz zWJ1=~zNK*#k`MJ%;e>D;<7foTr*_eWHM5(L*81FZhbrfxyJx9|3R zgE{I8e}Ef&;ft2Ogp`ATLrmKK`>@Uct_~Hf2g%TrIu9rBW~pf+5ruUzi>`Ip3Dv3h zy}7GG4RvfNbaEA#KYF|}|F5x<7^ejw%LWQ{p*VX{(z>nc5~uDP_aSJ$qsDc^!C@6C zTIfa`iMEyC)@JO@zRBX-ex=B77QB(DR1&JeYKH2Kx{-cHNNC3ikm zx^AuXht&y9UYc5DRXlO7&m0Ihh?30aR?PfyjfXp6x}&qA&i9cHk}7m^!5fn#G7*Zf zd;DR#3H-#rv9J8?FmR)*v4`pDSg*=OL&$_P1>rLfu)-cTDV1`G$i5&Oy4(1(*cHm; zn^2n-QkH~$D^paDQ&x)5lC0EN-Cn2U!WsH@`Dl3#uU~xw+{W!efZ5*?c{31bP$KRoP@l?e#*x4 zo)2o(bbk37iXKo!Yfoq+*(SoeOcSin3exKsqX@lz~If#AqDHqzZN?zGh5F4RIcb}pRAt!MwE_XuRoJurx{@d80-==g6~&6Nz}s zZ_Ywm)DtVhQf>#9f!?2iGP;K_WdHbq&itGfxsaOF&#ioOCV98+!3q7P| zNS`pr;8{;QNPRYNKY;!hU+)-LNwhTV#J zfWmx?rF5r^JAEU|pf21a94LQJgl!w`__y_5?kt+4rjlL%6e(swZ8fpgt!?5Zj476h zrX*MMXG$|x2WP(v{J8MnqDqo>CQ%OZE7_YEz`!|z!0zJRpJRotyb0RHm32s9O>qrn zC4$!MzSFFsVA(MWXEN3dU4`pwkq zVDeBiy8*u8m+Sseaj*`ibMJ$IhLaFYSXf=nQZpSukY!+$V~nDL3Ga{axc);d&@u_9 z*11yq)I4T~(~t!xoq$vZMl&uGIYPb^jZ3MNbqpI~hz%bWP==yPU@%}RY{z>8O5FU> z7Y}TXU;R??w_1eKR(G(UJ8=_8OujvNKuTzH6ZjpRubJU;8T;`AK9+Nm z0#AP+N11Vqn!MgtRt!pq+D8yW2N}b^3d*IDCPtgbSp~qaA?fmfH5__wkX3xedEt3( zAhhTd)!mUux{IorLHf4Tkq=;DDuy0M=Tg|0P*(D4aV|**W(Mz0qd}~e@G6FTE^Y@d zR01FL?Jqx%wU&E;3lZxRuiJw+#~=H4Q;15>_KV+0t)B0*3PxHUsroD+XvclBeg#;UN1b3TGU14o?M^F@quh>OlM^DUY81FH7jiV}moQitU7o=onc=PG{j z#g*L9b4RkLaYo=p%N4|@83$VU8iB=?-v|+YfTE3lk{x7AtKi`F9xk$HjNPVrSLBaM zhM;Fj(%}`dgsdTosCrxEU=&?{Qi|F-(0JNTs7p#wVJBNke-TeYO1R^*9+`XA4Uqa% zS=!qEO@(&vcfT;kc(9PtYPA&iZSJ|(X!YKJ^KKb=VQp++j=e&3j&W92p0~oJd|i`0 zh6*v=v4Hr5MuY1ig5$uzAwBY*gWWVe+9DA?6xAD87w;y4^}*>-6?SSPlRame9SOkpeG=(Kg~q*yJI_9!f*Gh#){yNMAV?MT@Wz{R#LLkQZnt?M-^C&n&|O zP)PcWkUVXMJUn5^NGO~%@s6~@`DM?|i}Z$Fl4;FOJNoBJ(9A+&lwH%`1OdJYwLNBr zCX2b<6d*a9yWkF^A5uRD0MiiLK&%U{&Z^xGD_RSOzTfAXiM_blTMt_2W>Lz0QDPCM zJId^Ou1$Tihzeu!A5ZhVeaThMRodbGvH#Yir@CS}9pL$vmwhIq{F;Sx7E}~&u`A2HAa}xN`Y!DY#08|k^tYQx-v5FVBP?bcJC5s^YHQVpQwZg;6XGx zC9FyJ@+4#w1&+tFa-%{LB$hyi2gDgPlIJ_kqOJ=Vd1(Y}!tWx3K&+%YaN$HXCDAAw zFL1i@T^NWec7M_t`h7TvDzzL^6^26uh%U8m(iz)P{FAT)?|}kmg!iumQFpOGC#G^6 z!Y}WR;bfjb{hq^NU~H?e8G-A2#hpxC!0rM1us^jE3@`G`l1FC><|V(e+Oe;wjrP+3 z_QnW`a!25$4T5J_&0WIHK^GK|T4mgt7xgmv zlvn0x{>rPFA2~_C)D}TGvbQSv=H0;^_=S?oC|_dgj&h#go2X|Cab<}UED`B=JK8=( z1?TLIA3T&_3G~`SzJ2X;k%?yxF8S~voP)c2ePm3UN&|()s{)`!3p$xFM20Gxbz=GxL%2NRjv9Mp+Fw>8 z%^*3l<30hFd6fpU^?qjPT@i=lx|Y<{7k1YZ(Xnj)rYAqwGeUv~IFG8&2#gjF0DbqO z5dil1L9vS5e|W7LZygImoTbr(9{YvFpJpQraxPi6nxv8=lIw(^P4L1$M|#ag9#bT7 ztc$~t=XfRsc6%MkLfr1P(ZH8RTjfgrUZhN)t+ecovE=%&;IwUJDbSPf#ozq0G=7pw zjFL7d9Y>nRty(J$ZQpocY$4%JX6*7VBGN8QXAE%a!$bajdi8t!>@h0&3+kf&v7h`9 zDdbbD9rP(x9e=IQwXbR#6>KJ#jn#${IlcciZP z)yf9DdFmu;lnOB_+dPiWtU~w5-LHZRvrYjlR5S4xK*t}0^Em~BI4GJU8#I)Q3O8(9 zG3jdeV+gXA(+i#X1%Lt2=^_h9-;3A1Jri`l9j867qxt4egsJP;;?O%#-|gNC)Q4-q z0Wtf5EgC<^P|A5b`T2$X?p|I$KK127`PbQt$r2~a<$Ad#Pm>do6J79^(N0s;kQ2Yr z&7*x!#XwH9q?-nW3~~n7*zspei;K2+w@9j-zu53wvdHIz)unm+=7Kn^Z5<2|l7mgiX@NV~`_}){`<*L&_svYj zGd3*IYk*sn!s`zhv6v6I+y!zwGpy;_Dbrb1LkEirTK=>W7?RS?w*ZeOs4wH2y|!ao zXh%mkcxR$!Gw(*6*UDwyO-OqIRpIJhj>=AtFZ*8!rBoqgjQPQLwM>wr#vl=TcM2X{ zG7MoG#jQ%AEWWvoqSg+qoAV(?b!Ycn!fsOxxE+ilnQS9|vG}P?=LZSdo&;{l1|yH< zD7(X0gttI)c&M{cA$kad9*hKR`?Euoz#{ry8{!?1u5$r@_r%`PIxr!cFbX&|#be^c z9%}_$VPI3T7E1kGstRU|74>>0(lso$C8Ug4?UdF;2tT7b1&=|X+}(y=d>66x>XImi zD37*^Ui7RM-oB`pQu=_2q^sB8!t2}rs7RTd#QROZ=!RUfN-x5?>;7fCy5xBe+kW^u ztiUY7HDR^r>Tj@Y=pq8qi9*g1Or#y zE~%`%gX6rHd*D1;R)Mj%Ox*NtGI7L3AJ||h&9QcH#ls}7=zbU=1Xxo_=5;gqvUr>e z6y_Ct8#W58zK=Fd&bGo-+HrN3MWpztiRi$=~+ z5qwcE8tKmZu1&2;xV8(W1|T)NA`cwm2%_2D6;5tfDdlV93qM|0p9 z?RyQ`oPSqt%q4n>Jn2;qsa~=+Ix7VpiqSUWF237dB0m<+W^kw+3|5rqb^oT@_6rG>4yYT zVl~a_0)2m_>-@-=6o-$#%Ve42kLK|987!lfsm{7zQ$WPM_Pf^daT*Vj5vpl^mR%vqcQ!mwT@1Y^`eaPtoY@B~Fz1#(8aD9)FBxl&K{WSJo(J1A+e8W!vDV*bs`Bo? z!A{Yo#%R3f%es8WYJ7~iqIk9w+r>^YYIt`h*+KvNiT_6`(S%*~j|3%H7mfDwg1A7$ zFFm$6@~Vv1SL9INo0^E~)>7qOO&5GV#Zf9Oq|m9ftgHhUexs!EQ(E`}AWm|)-Q(>!L!!#{9`bmmCs=azzq2@`r*7mAnUj30QZkK)XCPWRp8{7)7Juy z?%6qC3NjPDZGLJy_Vs z%QxjJGh}O~9@K!e6RwL=<)*77vPte=yJ;3}@SS0rVI=WJ1umnxFCI zIh@pOnwHbQSQ4$X241NXg&giE{*SoGIK}3*k+@^onBc=F`76r zWn?FOJHeQ{aUY;_&74>3iLf2|5shQ;DMZ;3gS*!J$)2t>Q{YbEm7>eyrEQ&4 zQ(xhg9uumCAFaS4y)rv+z)(M?z0PS&h$X0Sxu(^2zH)S#7h7+Z(p7EvNW8(>0a~=0 zX*q>OO#MTs;^IMbwcvDez`VpUCA+2k;yUZXwEljHUj7QH{?ANw_~?>=K#W!rYR;!H znxH-gD&HMi?IY}1644>tVOB7KouEqCMXNL|4Z%C!X^@NgFpD@}-%gkZ>Mt?@Y4kC= zP%p_>(YAUsjJzy48Q3}0Uu*&>=wq@WF7H6mj0Q8Tyeu`^5+-6=SC0+yU&)B`tEsSK zB}A(c2j&CjNhd*JGaefhY7;&)uKK9Ih{nrM1`S|2sGdY$>I#Swed2<%WqkpHtLX7E zLJfK8V19s$)!78lJXuDIAE0v8IZ;Nas!xGOL?zWn`YrKSN2K}u=z@P?MY3%|z^E$8 zON^WIYq+9<^9#)T?dh?6QR?;6buO&OTSZ~}g(oONeX+~8ztVS2=@1iTttmx0JuRM8 zHuVs*Elv4Xit=)qZ@ySd^KInqEjs0Bz3`&2!ll*_VF;-u+<76jDglPsl?j!A7;-F1idwFZ=FnBvB_^ zRKjmi!^!qP3t>Enj_&zg&Rc_WO1pCe7-^enb(=wV{wRuTDp8yJmZ-9Z@f8t{g8nbY z^>5`tw&8rMaU1+j0Gjd|SX9J*Cb?95wnfplfh^Y+qK<3k85LtT?8^U9_6X;@auD#? z6$0dSf1^)t`LE>%6xYj5kBk1d|F}`>_+K|(iH_bo{;q`fKz})7DE=7~on)b}z@>7{ zdc0#l%=}LDAH$3WATMM`zvy`VYPgQm$3?k!J3H?$_!;_N?b>Tvt6icNX2O%xh2_w% z(1^HHHAZgpkNKy^F@uw`kqLgvf8IleuDvZwwU&wqk6 z*8`aE@zw%TQ)8O~exLxp15GOyE!P4T&Ys_ZU!1!?2pR(@P(%@gQ~i765WSw>vs8gV ze+=c}#hO6PN1$oR`qkZ2&sU;tAkVHZkmVAXI6D6N-rsQfqbGvf(??7HK1k4eG8{}D~+ zMlh!)Ziej70Gq$vu!d2hc@U@EgA+Y=kMJ9>!n`>r{@z>S!dy}zC<3=uzDp{QQFae4 zE!+x}bR?tZ8*+78Hx)oxhhw5UenELyN8UO|7;iR%tfXG`vCo#W_36!LemV1uK`D!F-rUIx6BxLGxdl;u{Yga}cN4md5v1(=8|BIin>1}6(aX{1 zHv$H%9!;mdWWLZ{O1aW4qIUgVBYWiC141um!Hy4KR>_{)8>^y2n7ZAq0gH0F7JaF` zyGZ}|eygZn3VIMXIjg7~7!SrcRA2EpY+KI6-uc1uZperKBYJ)GVP&AQ#Wa&#bm6g9 zbdpeuDGau(%Kaa9XJ=)*6f9@i^Y%qSN&EOoY@tB_DL&*%T~1D6FnEL;5h^qDuD1q7 zU*GD>151e&$>R>%6C=E|xAdGzkk=Rj5kJ>FRr1=$JmVs4eb$j*19O23-?=ZnhHOZw z!C0_7hpb5gbFQ4~d1ZOi=wT@mL&~)`b&#`)Nj~Rx@!pX)&r)gXpoK|!3?1z3gFrq6 zYa+))TOxfV+DL`0lRY)tw{%NQYD2yOwNN=#(<6&=EGbdayl$vp{n!YiRmxPO=Eh|a z<6S?yN5*>TBb;SdzAug!sMV?2sBxcF_mT(7x6$&$HZ@i%#B?C?<<`?;e1}V8Ph?n( z8kdtQSJPn>$El#l9stt{{Z_6{V~7=*C!Xm5ZTM`t*#IZ8INKJ1O#nUX&L+Ni)D>eW zM%Ul^#DxLRp&{>^b6T3w@v< zY{~GNV1(p_E7?N-+dLmSwA!IXA)XNah~{XDLW*R>WG-c^PoazfcNHNy!eMzV@?iOh z_qotKtNCLrB>Zvvi)smLV>Rn|<_%X79Y&>ImbhX2Ef(w?b}1vhM;y%5tR|eYlD8;! zz8-p+iZ-J2OLo0hh|40qRHd9DO%m%FJvyv-GSyIje<*JENod|8)wED}9%DeLTa%s& zoyKw~JEbm#FB{#@-`J_9B>5Pg4Alr9k^H5)L90A=mwhO~5EXTa6%n30xb0F|J2KB zfywqMPe2Mz&?l_?siJ9xSG<7~RH1^cpcgvVT!>#yIey3JbC%FQ^;F=nZ!?Xm0H9JfF4B$ce z_p~r$Yz~e?vnX{+-jIT-Kz+<)V}tI_0bM|z{((COHN|!Z!GKKu5}v@iXtYZA1u96+ zs0$@s5tSBeM6SszO-!v4B4FJGyDR~xQl@nUoM&cyPJgR4X%V&$Gn{(2@toSO3hq}# zMUgMKoDKuIV}~5NO~OK?O7jVr#%q+~PkxJjfANy+H5(nA2ALHTVn3V=<$6KQcnzMlZd9X@n#>AD$=!l4tlU!ND2kW*i8%Bn;`-HUOIEac zZN7tR_ZF2$HbXZvL=mQxYICN=qV;YJzT7cYNEE8$7JAv--Ru+nktb2QGD6tSnnT>; zu$nI(@pA2d1inUv*%yv2&CiEPgBslm;#p*) ztg4r`X;jH%`QjSg4iv}~IwhvY5Bq7B2N*aNYzR~asf&C0d{EJ(tJl2x%ZadaSSb$7 zD+;aOz<&??@|L;55?{PN^!*6{Fi{6uu;7)Cue%3n*T`#6y$)XqiRDfV8TA`m|9rO)dV=~@cs+VOguKHjn1 zXdCKPm7V9VzNFmixkU~-bHj!keAHBA2m%ZC3pNZX;^3kPm5jE?;X{Z`E(3w)AtH*! zk|yx>E++=QG`@+xQWQOb14=8k8G7jnJ|nm^Ap|E+IRDHJTbjnib(~fBouMA3p|>cM z_JD&yRYnk6eijSQk?B^V+rctlNHFGX;zWhh3hz}VLrMn9G@r^y-w`sZo~_LHHNkb0 znp9Ani4E$s&l%DcEj;B5G#N8DviJ`C7dUl28xC|rn3`$11DZ)b3RRLS?X?K<(q2iO z?@Qu3KpG3u{Cten@V+`PZ3Z?G@7&d>O(`gd=sFdZl~`t^X5#Dx%v!SKevZaMpYM^U z_Rua2^l!4|Dso-cn&w499BrJ+>HTyE!_$o+;}1s}~qHp2viD4tT$ zJ1DkpH`(&+*ZTxrsYnQ?mDCX33dJyzG5wes-|2=tQPN3VV)?dvxrt7YaIHt)1%1x{oX8b+$( z1D-vmM&FkwSlfb~Qnk{H<*B|2V>gIYud$5zTQ@4a29~WgiZs<2zLgBi%z;p2AbqD^ z%9YRzQoi|fE{!S*G{sP!*C~a-)I;>M05rJ6Ig(CPiTNBBmOc*lXX52z(}%_Ic*~ko zi~H{l?)**2B7Gl;-aCipGkwp%1wpS44jQh!!Oq&771CcHu_m(Wkn(inTWztj6*IL* z(_1t|E%$E09)7naYNGK0?2=!H;O4Ys1I#7Ie=vVPy?s+>RTPUYpGf9&G)Rk#if7}n zq!*#7X4RAhgmW!lz{svu*T*Z5l&;ik<7;J8AQ=^{049bpZoyDZWqu|OH8e0i0K}a{ zO81M=PD2a4AR}&VwEY{x4Fnr#&KiXkupf2-%*l6VS~rIE`Bh&hCQGX`WB%Y)S*}MO z@GK#4qsWF#GDWtHA|tTn>im!!KO}mjz*yYAE*8qi= ziqem^ck#SPDyHk~)UnLytZg$zn5pTcg@dN^*9;pXdi`x$nDTn7F%eM;*MRw!$y-$; zQsx*S*ArzS%M4{Xy^CR#Wb)@@Y_B(@7qgbq^fWVF-GjB#X? zL>oD#;~(>@YtQW;bl%v26^Ak}4zbn&HEPE?2b=B~ix$?pO&D@|{jS7?E|QTQXUM$M zmA}aB@OqN~?pEK2!ijNf+k}gZP@gIV=T}kSx3HylK_2_L%KNX#>BkIb>{O3JNJAl# zHU6{;;h5VRR`-(hJ&ZNj{-FnM&FMoND(xU5lxC3i{-I!CUk%XNnH_KVc}J`sN^f_0 zKlv$G{)GSswlJ(B8Tjt&;^D?FgL`A`61|4^*vhL$Cw6;ED!7xx5pBieobyXr#F)M* zq^AWqS}}7F(G}Vw7uK5j?(E;L^|JfRt-}24b+u>;VPpu^Dj&j+?Dn_}3rF2a7uzL7{1aRKhp%h;Cibos-D)^i&1Opsr;F~D{L~FUWNmFa z4xoSPR!_FmOJox*3rBZ|G^9#1j(8jzMK7;7|80I=Cp!N=>D%0q(!mlmRxO1~-TE-| z6A7VOVdB#QZkL7fE>Rd%Gd!Ie{~JOEXHqo=^e!F9Z2$ z2PmpGuBuzKU_pW379&pAl=E{H!fxb_JkBHN&Qb_dYCZic~Yr}11O>J?^D$z z_|CXEIz?HiInxA9NF7K)Flfzk#OYGC^e-mMv$vgik4P9yq`oQd8h>G-zP8`_;x+q& zbe6t3_2q&$#$QdXzG>UPUD{WibUbrVp-@3x#{xsG zMWiFlPA*}~21l)evyvUTYz@yqVhEbrjtjO-18+@1jQ!1mi5I0|mU}#GHjA8qyYaW6 zd9$A$O@@SagSP~?lQowu?Mjq2&(R(?yJaL#CMOmhTopC)V&-P~vD6%F`Xq^sTWE7b zM3SHOqAQK{$q;5FyHMU=4f2M(QaOjQO_`TCsQFzX0^td2WKSS_Tj<*gOz`ZtcBNgQ z2XNy<9%%@vrDL_nDPS>hW$f|aXNzEC7^k~=W9qwEH=(#-5>vZmK7}!-*MA&0l7t^0 zmf6hP3dyrhuhf`+m|suLAB#0wCBAl4a7%}>-DK^R{A_~6W|8ODKG z|MQ2A zzuR#;?O#;tL`bIgup(n<?fF$4y9{dwcdBC0e;^ zpZ)w@UbZ`GBYUa2VeRe0Z6#(7#01tp5U-)z5)m)h|Jt?cC^WDM+1cbvXFVW@5P#sk z8?WXta6d8*kz$wmM4s^!(X z1tF?K#zBAluZ3^$Nq-{qYIK<8r%!~5Kl(;f+W1$bG?0$02;(ulk~tY-dQcs9Lg)4k z@D_4Z@B&Bx>m@z-HlNb)wwx5Zp?OCSKa-Y9EepBY!?oJ$+?JB?5=XrPxpA&Kz54J@ z$FGaXW3CONMP&0aMEaYo?+(r`ct=O#GZm zMn|Vq*RMGxXl1krH(KNrZ(=blqwj?m1@Pq1Ul1p;48XhVa6A^j%$si$qnFL3(>@VK z%7hQ`j)rSW_Hl*DinNfc0qREg>K#>eVu=v8g0b^*#=eXfl;kH^a;F>0v#0^s#Ro6H zCDNzxouLp$+?P$Lcird~Dq57mtd~mBYle+yXQR`p=*Ayh$40!APJDF_`&uY(p;E{k z`=v=29yK&_p;R$SAA=Y%`m6odN(@Pc?&$kcCK+EGg~H(lyH*Yha*Oh<_--&=EWO1C zRjVASpv9#M-gvTaJ2nJM*^?OGHT3IWTO(w0-IYg)MbPP*E;$<1QOFIKKB&AIWeR87 z#~I^IA{NU28U^G_6slW%MkT9|YnC?y1T?7Tti+H>w+H_kECkW5hrJ%u78+_~yb23d zb07aTJdHU5)_^X#?*@!#E6gyZ$H4VXe^90cVn^2uDA#NE{WaI?ESJrDl|N9l@=^*s zpD4dcINTkay6J#C=xi<#yUC~5lFt{niCOO;TObNi1W6jpoEAG7LfoduV^Yu-d3S3mPk!F}wM3G7JW(-`0Wxo^cQPCd>SqkPJn}1`g z%i`MCN72LEG}hC@+jg(ftD1B}Fn}iX6-q&Ua#j4$FcmFlSm~7~<;f=XV--rlqhmGv z$T|{Cie!~@Sp8>;WNy|7dA90shMD3gYgppT#c1u^p)+lCAyc4L4hXw2zr{6*=p+|2 z#Sdn%$U&>yxI;&p=p?HZ$z1Fa5?$3JvOudgu=0^PLp?xGmg+66H5A3XziU`))&HxQ z0!bTKYoMYlsCcGq4vQaTb2yLA%>Yz1{jZ{p&JARA7*uf2V6|)h7H{!UKjG&Lt+rJ^ z0eScTDfoFpt6f3sctS5hj@HPjpJ+NF2!$8VxY{EKE&s3L7$i9$2!V=qQS}q;?+71f zig{NvSg#;Auh#xov4Qmpa`OsQ5LhEPR&a*4EN1rWhZkQjHPLmt+aov{g2d(j5gia5 zvq9o<@wEq};;vyz@pZM2y4Udx))weUc~&d#X4`_qwf~A!Akh^hZeVTM1L#6hQZpsO zAC6`$`uN<8oKdpVvLueVj%U1QL83d#W?Htyll$?E-!9+A$e3$WkyTogRmq^$)1uYW zq1Dra)f2S!6ZXlMRDi8caJ4DA4`#)TX_3Xrj42Vnn{EV3wsyY6anZ?)Hxs{`Q4B~d zka#*gneh|icQZ~v;i)4h($Y&pAzCVwNRv99@zw-srJ`gn7fBq4fjZQSA9S^R6S?zL*noeMI_vyGOKhRgY_g;9x8u@iSBbbX=V$Dab6J60{4-Vi%PYGQ`@*CD6~QB>oF#$Vz48KLFm&W^ZmyL z@5i*@fXE9lfv)b{LhuO{u+Pv?R%IHVc`sCN<|M3-F(FY^m;npIjX(1T=eD%BmY%TX z2r3QF%?J+37PWZH>ejdevlt<$4ofX9H|(uJ9>NBe#dQ+3sk3JUCi0MyQd-+69>4>+ zg_|9^iYW*HRP2E9_*`&80{Q~r z-a!c++kd@4pqQ7No)|duC)iOPu-y+&%u}0)`zr)Wv9=Njgp076C^D^i*dgV3mPn69^J|Q@BEDl8f<0e%2>FlA9<2A9}w%yX} z4L2Px2QFs8mM?fY`mspURbgSrT4n>T9eulPn zl@405O_Rsp{1&fES<9$rM=F6LLLOpZe_xF&2IGLe%KtMW`4^}hzX&J#EMkl_;sb+> zU@r9#;Y?aH@tQz7uY-;#x4*{tCH)cTCDi%_&iXCj^W&-Z>J5}Jb_K-#5HZqS4g_Pm z&q@SbP&7KJ;H(u4LFGG~Lxri?Tetx#9XOtPvWSsY?cT!oSIwb+?+!fzn_3@o{l{~G z4u4)gb1#9e1tbU3EGs~ov@$=SF|p>RXH&#_bLl#c6^{J_17-S}(BnFR%g$90a~%F@Fp2q5^>S?9>h9IRRoz zfF-WD5<%B~gs_CMB~P(Gw~$#7ri0*0L5-JSC8QDmcOr;$3a;eMI0u<^t8)O$dpJ9S>NK{WNV4;5 z*z8B3`U;j1YUv5m_4du9aqwFJg(dLo$~mZ28}fcHxz6o+kNo^>z5GEtPu+SPL`bph z)B~9}^=K5%UYdkLd*wkMg0!=}qeUaWfOUy{>AKfsv%9%NO=DC+Jf(Q)wD)kf+wuBW zQA7UL=|cyUX}=FI9saNV-ro*D{&=hTmvM{rS)gl1207x#JpitBbdFyQuK&ep!g|VE z6p0f?710#b-)Iy2y|C@z z;Ll#rs!@d~$k{88C6^C9g&5kId(OSl%XG(MWG3|-ByE-&DAbyAND|v0kRlfhQz$I_ z6fqe`L8?^hQUXj zCx7Qf{dolVinM%EZJK2O)Pmqod7VDGm5_-&{C=PRAaD_gcCU6tP|IiNl+65hkLT3XWmM>qrX?v|4aso*X=fGH4CAabpzkrpLq)YE4Q|qDc%YXHxz^V+v4%JRT|PaPLAbDz^Y+G#7sAGM?~R_FIO{#k^_k z5=FU&`R36rvrFoW`^d7@*A^zVn=Sl_C=BJUM^QK8&W`!9>Jx5WZk#|_@!em{OK{K_ zxeQMK3G$w1UjYQ$abh=Qskj1P*bS&y-rEW|d;3pTdH_5K<-yYD-|rdiEHWO7ap#Ip zwH01v5B=Ureh%@bV2llzPF90HxT{S8@8+~dy__D+*a5QKI3c|O%AGZIfLD*8c*B3b z&)3G=8~%JPIyTb>(#)6W150kza4${W&ob^9<$`tZ6z0r_1TndCn5GY6t;RUK_jO(L zdi=w(mTGc|N*)L%V&>8DCZguq@FpVW*)(#HS@hDZNGJI)-+@>qr?q<2+?O@C71-NnHY$Jwz6nQ^VbDR()fiy=!1M}PSP~4BXDmpGx7vj zR!ay4Bp>?TKY(M<42*eTWPczst25pVICb2ZFTl<&2hDB*RIwKy=+|AC8xfl(@t)8B zcQ@}ez9clCR`8qyKtUe&-GE}{SfF8w!khy)g~NgNz)$&qcbR-d;44-yOgtE8 z>nF>K^>h^w^BC&j9O&5M{?c_e-4pfT*E2}~xZDvD$#-Pb>E0wQhza3SE%YJ*R41X5^lG-0A zClJuxka#qE;~t@fd%REY1+1V-h*;g_b?UC%phP=9S-gNX`_unIm7jBi{cg~~ z5`h#1cMY-&F^_G8i*PYx`(Ort%Ikz^DhU@|=U#6FaV15Pj(?sEU)Sqk6?p10Mmcvd z;w(lO;>6liGDm;ql1m#j6A{Mcl$y4q=a+c*crL9e>bZ9ujtQ7fkR5Cww^m5ur z5$BNvbNmS?;R$Sd1GXD}eu@Nq{sX(^4g|~+^mbk~Z@w!ZlXg7jj^ex#v+f&q!`peE zic}p3mN3o124-L_$QU}waUMv$A+b={$e1AI?pr{tB;XBLc@MJTq2mu6gUa+o{CO*% zLFaVzFD=JDZ4RdAGO-xIv}cWo@%4b2@7E+?B0qq}H6;H-cI9|yvC9tiA2Zvh0P=gj zVbkF{J~DKHUn+Hmd@G+PC|fxzh}g$^+62y+?=X>sV?Gpw3|0*bH-?%8CcOV4hL8kJQeha7yW63MwWiLqD6ze zhE0RKrDIcz-xVAYW6FbaO}w`VK)VYw&!cDK4{RNx&v2s0cWpdr|M!1QOU<8vQHEOf zjH+S3!{}OZS*|V57J@6=A4FP(P5e{ZK6F~8edyaC6?N;E3(q~>eMd-@e!zW7!@mL9 zm6!2h=L=CV*2h2zkV~ci5R?B9HGJtN@xdTOgFmUlZlJF3bOb3P>L7A6do{s|GR-RI;fc-sXGU%uKdp~u|L(N zYs3SToEWqr%<<>U_?fB=FjxAiz`si^M=k!c=@KVBm%g&oubKw z5)X_Y*6aU%b_*b`boRugWtJV0~{1MVjWzj|6r!5(Yu)O$EEsZwquFZ->22B-1~OFS>SE^7Tl-V=G1d8)hs@cL+D{AU{+f2Q>3*4HGgl8RX5=%&rl#O zVvfirXbC?nIgPpLdA$h;{s0mY13x}Q{@r2p?>s9nPa%)*_*ah{0&hKwX78~V*RGrE z$DI{5IUm0MG~4seL(j(Fk4Zd0w5zNC(yl75w@r?>G1u;_I@hPIbB%2)Ku1L2-Qekw z@9M0=N+frC^vNv?`cqryWf;WEA_7t8SkFM6dl02nd%ws35J*?`l3DYZS#=k#KLyTR z*MHU7eAQiUJnz$OJi6^)G8i!OaKzBruXO`Y%Jlh^@f47+)dA`Nf?h?QjNw;k>G7MqZ{p6Y|tPhQ2E( z&7$~HObS5@){_{e2Ra;3^o<`3jX$OLGWrTUw4UPyD9(8~pSR=mKm?b=|JGFgnj|PK z4Dx_I(;NHKygO%CuMYawOxiVWhi!)TCsR5qb{M2l-S3Izn<-^6TV>`)Y!hxYc*K<{ zS1`5&2nVFG0GPT;4OH_GD5{hZ41a);oG{Xk7q}A|W(k>SF`;S@II;=hoXvD=Dww`v z9?>xeV(bFh>3qX^GAgNuM9kMnI;R{`#{c|(NG=-2NBuUMYNVSS>~@%}zBB%Ef0iT) z&7zF>g1i}AByL}o9Y*A!ulCOlj1i;IR4};N64U?&DJR_HB!9D`2J8NcN^PjS-8nS& z6fZw@mb33b)XlCFGZO1Lxe%gnq0%UD#JO04kpFY}H00uKx(d|I&-?eIfgxaoH(c1m ztnm8K!`OlqQvAr&vQuhmR@{9=!q<@>Zi!$2{0Lz>n8!Kk7be;&iS=vmREB-Khl1}F z_ESZuUDj8{s9hFF6u!VlkRy{M{;3v`5DvgtYV$E z%0ToThO1YmY#iVK==E52_}_cieh(Z_s>5G5*WLo`mZV(^apv^y8t4~KxPK`F;t!fG!bjgAEHJ3nSih$1&^cKE%k+|q! zi1k5m-hmRYz!^_S0~4(Hi_|#-<6`}0P?s?*HDDjamynf=mtTNod|r%!b*p_3M}N$duhV#ZrxBFJ z1$Rj;lc_9!nYSvMOhg#LNtD8?&4k(uKT&yQo)V>VU|@i2-A?Y-cwtFYR8lc%W~3n` z$pAT@$0K?CtiK{+R#aSF)a16nM`C%f$0^&j$VUEi9WR-dd9qw4%Tq;2#WNeE==sIT z8DfdTVZqTa=ch+vuc{*k<=Qge5e~i#r|WodaR~I|K3Ptxa24N-Lg+3(T_BCOc7Oj=mw@6 zBQH)sFdF4$@QAd;#cT*#et-`_m*|L|gD!spPnqT{c`yQ1K6B#)ns(N6IAoLxuaT}D ziIu{XNe_kc!Px7jxxnn5(U}T~wdM*W-g$7|WV3+02MWSiEEHxwWny|$#bNbwnL>r( zVoeGGoLhQ!U?*UP_&Ym)2AE;Ozrla2%ulE$D1d%sHwPP;{NSzBZ32YTXFdtSC&hds zgby43-nN+x5i$2?KOrI?|6iYdgrmLXZ0Kkg`#-{7=->Zn#(DhD@E_Sai~PmMtvdCQCmce0k%{GGG|0yM*^!UJD_t)Z0L=%t z>p2=FXD2@j|C?lW4-b9VoI}V1ALLvFr-(a!P()J0!Gl7V<(Y#rtyaek%JP$+G$>@G zhYSh{`S}7SU(%xmg`DP8K_RC(P{8Vwoh4xP$&L}Q`lKfaScTHV1FS~rxdB$A<&goR zD|lkWNrC_M9RB=4kN=%6yZ^t}>HGIT8gU-~5&nx0f6||~ivv){K8cKc3G*YL^=0`oL;H~_aCl$VxAMqr=;scCbE8f5yUc6SET)ehBwx}QgM5F=?H#jPIZE{ZV z+W3&*webnTYvbdAyiO^e8y^hhb;>c_{74|LRgUYfhXJpj`AI+p{x65~6hFIndc4v7 z|6z}t{|~!<{NIT4_>b_Pv~`*Sus)k%0jHp!xx@SYt>*a2)CmBRO1vXRlDdR2Nkt|{ zN=i%tmXw?hFDYRiWKzO9)D&r!0;fo`6gx$lB6yVdIY`@b7;o5BC1WHw9Y$HUbS-v733T!68Ah7SmQ zw`*pA%>kMq;If5Y-v;TJ-wkH?Q$B6LiKfNIszHKxR^^ikoalO93X{?i9{jWN*&G0u zVgb`(W2$34fm3R`u)ycXZiRs_YQ<6mC#>LLtf-2Ii3>r&#n=E^KE?*naxzH_a$Y8h zLC(!2F(~+%BnkyblfeVQ_jQ)Q5^>(M0M*yjCgW z;zl zWIpl>9^^qOf8q5GOjv;zbFBj%fc{8c=RnBOU(}a5P{GtPl1m&Y4HD0-znMW~UT(W| z1RBlHrizkden3?e+VX}5F|*!=Vf5BI`S_nQm-F`yYXG|W|9+dh|2b^=`yU!{Z(i-g z0r*j}_`aOn-LHZdqn81Ekz+ps)ewA)zXZPyr+qu=}m6dsPh_vQU5F%!|n$4X85@OB3{lWD>$+TSoc4mdk?^{|L3dY z0F0Vr$h&uO!^flY!>cpW8VA1=<8j`n>@EI^jrbbb@84{AFU&@+H8_6{XS`SUagYuH zR~e?j>l%LjI$7NZ!(cU;e-A)F(EkIX9RE8E45h~ixPxSo&zmo@V#3Ps7K>?+EXM#i z62Pf(m!HD$u+Ucb>ooXu_>W8j3=zze`97lbLqLz=J2qK4<)uNE#S2KhUZQW;#m`-F z$sHaazqpTw6t9iY>KiEEBLoqD4s1=-wQGHE3aY9tWexp*$209N()tWyn?e~6JXq6 zr~|MrcyTjK^-KRaP+g?>zA@5AxClol1f1^r!mZYoccaXCfPz1!nvct=u*SJ{@!Kize z9B|OB0jhq9aySI7==&^Lr)8!Na^ndGM5ySfj(2rWkv zH3865E-xvynNlaN6NIH;(*Nu5|Jn`uk<;LRr`6%kf3_pP|FaRdUHE@3g8u6Q^|_{! zH%1x(1K$1DF8u#&4&na<0<0)>=z^nHuZGLz@cV&Ubb`9R^?Y>@fY$mc9?n7647;!t z^y46(j41pHG{S~Gg>4g+QYJ}=qP{Zg)L)F_(G;fW1y0b*mj}5h>@cPPxsbvmf-O9Y za>1#2c~C}7bfAWOkTp0JSz6V>lT;k(T11a9;vS9xg3l8mw=5-K$t5hMStMu>jhpMq z_2#B_UlmF-Sg&6RN@Vd>nu-4XL|Z50^k!oD(ZP{O}f(8A0vGPz?y46Two$qoZ^y zj?Jx%iQEa~%sAHUQJ>rzftJ_7uP})ylSJB6pzM~+B+5N179%9KP>ud33$HJQ{$Ry*e$KLzweI9&?lB>$% zy;Vh?v-jHXwby%1MMmC#-qFu!`roi&n7NJ7^nYPJzm|{6|2FgY@n7!blScoqza{j) zpliZ?xa_$Xt|yF+VApylPV>_s&McIw)&0s&31gE+I0o}gM70oH2LrdWa=u8qBvSKu z&Hy84E=yCL0TH-CTrGhXgUvv%D|$)KEv0gi=0;P9B1>>ZdaMG&tC!)D&n@bl>eoOd zUZGUc#~X{U!ZWhzBBBBz2s1~f=7fD@fL}aVj26%jeWDs+p$B*cuAEz^ZBHx$>H2Ym z1JNQ(6SfH5w3w?X@r~WUQN2=+4TnMMlU1 zTGd0FR@Afk!$EHdn-XYRywPzThye0o7}pk(el4fp0wNn{yXBq?&(7ez(ZJ!+VZ8xF zSE;sZSNBV3&HK8cnyR@#BIAyqm zI9?qjbny_v!MbqzZAVaT&@)*l91=XtsUN%g4*-|Lc{=LC%+R*MreT8!atOLD;Fwdf zsixuxyMNRi0Ew42z!IzxoXCB&#$&oZq4(7JQoXW+r4ojKuk0hE?-FkK*z9CMb+U?` ztO6z(u?(u0)ropp4SR{iZW-YB{nijTDqt*#aT%f&qeEsd#0t5x;S6=o%H$ud0v6uL zT3;^|RtnkpppOsX>^wg#?~379_2Gvv!-+5ojHo-Jra6UcY6@TD6uv&#A3uMuCz`+4 z>8t!Yd6nVu!#CR@%A|t~Cs3e1!V!cv)Ygq6retmydCANQLjmIcwC#E=$pG~Uf3T4N z4ysn(E$>xe>JUeDT&GK=PJPewFJVpy-qVlrPY5Wk{7}g-1Vqt})p7>T3Z8q*y=o%w zM@%DI8Q55Xd12tppIGc+q4p24R3YxFOU{f+A#_CZ8RF-&)Fb+o2^BvSH z;B;VT_UUG!fe1D;hr)q#WHt|v_xFR95Xj+C`LOXM+ys#+#yLV{&i8T4%HX05WVrCG z2IyI7ckhWs^Aw6Q&K=~IVYcD6!OK7#rGeo1gf|2UCdjs(x+);F^;Lg-3CwbJ< z2#%cAiV#XB*~0*ZMXnvtJMO1mj|Bq8WvK= z33yZ@oP+Yg6YIc*+eA$d(#d?>tri?3JQqaRBfgN&)H6#r;@G3-CAml%W169oH`31)qtZ8IH;(}`$9bQ(I$fE48!IfD!ljmX9| zD%{9M7D)y29vo{tv=22m7a#~oC4dLFYiSaWWqBt_t`b*4VatBo9}>D`<_~J)1+85Y zN>D-))7RDVP6Mcb_~E7tdrvL1AOx+G>j4l;R_O#~j0lo^Fa@|n=v~)6BX>~~fm^~F z-3>7Y-fZo&uHWYyFx;iE@iRiIV~b{OYSuo@X7pK%U_ksQr<5xrKSD|y&W18Hv_EyP zwWXMuIuqz{Ajqe_dya0X7aH}9(QIg!F}e zL18P6@(O;X=&o|*=!v4g^$+*;uL99%MfOm+WE~NcOj?UmP-byPRm$j9VSVGtbx-%a|hv;{if1! z%GFK6aCGAz~e4LDV%u<+OxI_ySP{U@rH{fqy;CAy5$bAE>;YSAfym_$UUfD3PepJ2@Q7& zq!%_WmCA?p3tS)^Mf`=#{q@}`r+U=;0%zQMU?>@ zCamc?omAn0Ja0l$z!%35uC_;rwUxlYqod@A$Ack}K0IsNeU8XXi{Og%icVkQT@+ z^7Zn}YtCcl z!;h@BLRPb(6ZBk*HXn^cH~OQEtgObQlySL$LMXF(q@kui1YQ_<$rIvoUG7&XX)7P? zB74YIh%mwyor*wN3$7Ifp8@o`eTt$c0Go+U8{48`k#0B-)^WGRJGR~F0G5Fj^sdp5 z0wv^l&K7l;i<;++Zd8V4h5%@?HqE*Bkj;or$=g5YYTQ7HU#CsDLNu*lz*9lk-3G4V zteZnW-J~T!*%TaKpzfCg=hO|g@S4z~<#)e1AkzfKE=&uXM|gmIf2>#G8bmO!U~2U()ddZ$DwEmFpwkO_PSeejJFhsNj7{lknFN`J)ewhLwFnmU z+|vOG;?3q{7v+&ZE`K&E3B^|QXDyBrGz{5 z5!-=`!F}3ZhthG}!Vu+FCp?7jd9VB0o>t8z9`{Hy@go(s6S={Iev=!+dJ!D6hm#_7 zH#BipCT|IrK5I@Ds$kgvS}89)*Fk<34l2=ET^^a>)sfyp zSQ#;?1rG7migkpD=CU2Y#>tyV21iB+0~v7~QfyYTlY4~g6y7~odK;h7{GSw%-mHyr z@!vK!qyFFUD1XoY-Nh$`|9czVzjlsx%RBXmF{gSsF&{Td=0|tcp5MQ8`YmA_smRAP z1`xY~>>r{~xFK}i4GM=l&NU*~o)ZK@TkY*Q=w$NF#GDcCIf*w^K9LW+wj;rTgv$meuvT)EHI5aq@ z(*FL@P6^eVM~7D9McJx1N;@yV#&s&E)El^qzKNzVm(DeSfY}UAuNj`^m60Rb5aWpm z-GeX_u&%U6G(ZgW89tGtLLLsL4FKtT!R$aYfEGw8DtpLHmV_dY$^o;`Co_voZNG8= zH#zN)tUMJ&kiblb4p0Pwpp$_OT25Kda6k9S5eE=aXXp*u%y2+uw|mj<`(5F2mYO zemaW;#2&_=m4--H>ibAT6IR;k8~V`Ph|-vlR|e@hVJ#3y%bw8EBw{s4H7ddyyy+mN z$IJ~jfSz=);QSK(-^k)v@jYsO#RQ99!1Ty|9tbcRuY~F_Do9&_&--WXAyZM<3O8 zXwR%D3s6F$!V<`AKufrD&0ep(U8ubr;Cgh|fUD=CO#^d;$!Z(p>LFO1P&R8}<#O9O z>%xI-H%U32X|K2|Ig4ygSrUDEii8%~;dJ006E3u&U1>JrQ=*Iy$oh=J^ug$kUgk*X zuq%42kAlt|l==AJs8*)nkq6W>6i2vMJr@OIIU<4hDwXAN#t7(Mi2Hapl+5JKb`q*p zT_jYS+H?GeD99RHAQ5Eko{>u(lK|1mtBs&;me4FCf;E8T9f378YmO0EgF5$-C8j0m zz37g9h!U}Zn8I7Z24bW@HPl{dL!EJ?v|%P3>I6NVMv5W%l($WaF$w>V*$6tf7yoUo z7|s8O{-1?={{JpMZ@d3zf&ides~jXt0mPe#D%fyho+1cbXWBc7%9z%W>4{2wEDAQpNg5VrD4d)DqId{;^%4H!ad>hql zVr7N#;0sh%qj{c`AP|o!LbmitKGbZ(1Y8@Cp4E6!F>Wo(N zeAxXI-4t^Ax#6d#vrb(aeW+~{QY~=PVLFI#w#hJruvp0pdHYeQqyIR((yiM6G>-YJ8?&Nc${6AsV9Lwf&OQ9AT zA$1meK5fV~l+9NA{=jegUZosZnaz!jwT-O)y6gL#atq!TH#UuT@J7U+SE(g3g?w>6 zQm9rsly^gAHwj9uvg4@Nh3MPH;eN@=tQF&x`kY<_YpoX_uRq@0Dn5qZPlOHe8jeig z{Bhyv^B)FUzeyWo;{O!4Hly)Bw+d_b=l@PVZ@KqhyoUV+nR+lKcKHdr5a1p-V@`bG4N=3si!X0PH>wPL0m z14157dc9nOGj7`?9;^tks5kDz1#I~kf#p>9UxwkY7*U8ml!c!zgbpD1B!e2aX5XjM zM(oRlNpb*{LnWIfg6fH20-6rbA)2v2?2;e4^nLrA!&%+F4!^70PA;(xeozFi(py2O$g&W5$1fT1fejRJQHm#j#z91 z@t|;~a2mcA=?lFa63LfXTfK~KTV)`qKir;RD_ft%s#)Lq$ZBs}y3)YlAEW(kpIYM< zNW%~U3u1pg|Ez>~CZjXU7#EFsWhw$-W%N{|l;+yEZCS=`!zz^14jS$B&jKv6z^V;- z$#9@z5lvL}!nXG+`(@kC!6w?T9MU&}^7XGH98$4Z=Cn}U=Ls7}wFemuJFT|$QGBtu z00W02%gb5oR0Nv|2EgUR3@lng(X$YJWA-z#$fA|`Ab9dYEBk})VvdU}#D^?u#}=Q~ zQ?4!rgw}TP&f~|*1;F&PEaa?WR@;83=2~~;62|9nL93)~K+%+HJAz-n2B%$a%8{rb zdN4BNBx;~`Evz?UIni=}XTNEUA8YbR;k@y_gD2Z6RyM~DhXw!{pST0zR&5?TZIrQh z>an;Gs;n?Z&uu9JR<_JaCQNC@S)Z%L;xGdSkef5>@vwfL$W3;|3X34YIUt80^Z=2{ zu-?V;fzpP$e9#9wY_HYp<xTI3%^Is9lF)JP#~eTzF^%;pj&L;si^lC5Q}-}}AD zE7f*NZ`V?LOF!25$67Ypp|N9--`0%LBro&LMwS8yKe0+`JR$AQB{1HoplUK*I3*Oo zHYwS{$ia-+*wcc;4`JX=&*q4_u)n!yi76YV0M{j0Fw`twcKPYx#lf|w>rX1U(+qbm z8#$qiNNre!iMkmB$5V$W%9zRgWPJ|70gfklZLZ8;KMY}tN8kEZtoK-Z5ig7FI7$k0 zmbb$V$kg5hBb;LXjd`J!|Hd}}smi&HVDoq_{D|9qxiF@^v6I%0&RD!H=q2_JzvA4b z^e+jIOw!BvItVEn+71hIVrkH?^+IM1C8$|R z^5K#J8F6^jIIfp>A5tYQd;~P+-u}_Y_Rfnk?3xtyBm9#^3pbpe!4<9H;A;7)X&#Lw zIMXVYIXJFUz|1f#p)b9`rBmQSZ_vlQ3^qHU@e9NdI{lGFV9S>I>>Jo2%#ebz@~`C*Uk9H^%)e~5wvErc59)(+)XICYnOr?>3%(a@VaZZ!L$wVY8S z$)-#Ua4edQT%9WNs(#?LFa%EX+-)tAFYQ9c1L`Od5aq-TcN(U-eTe^yNBQlCZxZEq zY5LSqx*1a-jFJEQ&6_%ZJs6+=GrztO_5aG>`+wcdhcS~9luF?_%IPXy<~&d=a>OF~ z9S`Nn%s54L25*D9z>xGG?L>wA^yJn9g^YAC)8E4BvYW2w;bU<{yk6OS1lQ%)3u|d^ zA6N;59htH*8bBp%h3HiS_^Y{AyJNYE* z|KGN|oKvo#Dq!EZ(e>vKlU=t17Ku-IB}KE_zP}E;mxfF^(4({?fEh4$AxSI@Ut@>m`6FNn_d0fQ5A!9#v%rl_ZKX?&t-7-x_gzGE zD%Egfp(`4P0t&5avnmmyT*gdu*vB!ewPCkG_JI=-(%R_d-#%;OY9q()ruz13csCk5 zK0+LcJ_=VbbOFt2w(T5uT3EJ!TN$%!6^~vLJ;l#fwH?lMKWR!_Eh4T~wf?eFtx}@} zOB$ZH&>2|7q{{GAd^@YhbQNIUu(O;_s&Z+f7E82~+Z}Xf>_*+>SdFt1y2&L>)*v)Z zPb-m$zA(+w#}I<8R8#9%^<cUz@9*i_be@|9Q|3kb!l&E=K9(O&Lwc7$+Kq&sQW}ynHC-r!Pvc z%4lJ|S9y*_^?2H+?X#8hMcrVMP2H6o{^+>2Qw|MA&F5AjUK7R_s}(+zrll%{Q&z=( z2NXKI5+e^R(~MI}vw}gZ?V})z31K4>lwlM7I$rKN zSmia)8fRQ-loR=O!b1B;htE-u5$hfxey!LAMu&9zgIF<`LQ(9LBGqFQMoR0_vO=9h zD7ss)Kdv0E74h3_uHm+C7q9u28SfQ9;0*}q-}MSHEd0+Wq# z7APkH2a(Wi@VW#4939FuBMF#Ln;(1Gg$#VWto7lCR&gC@_HS7EtJ71)oLRP!`aMe( zd6d-(L|#9Aim%ms?X8FJ5IVopb44H2$v$a;q@xG*SM`-ccc7g#Ly#o<-|l*BLCs&} zUJVZ?dK%UnyLcVf5pZ23@)Xk6a|hiX@v4j&Zt6-gVL7v~P_I|MSGF5$Qzd$AeP|Un z^La@JE}&SFtlJ)G)Zqd-d(z{=rv4lr&{K>N89vp7aR6)>1*Tpz)L{&&DuCdJ3Ot)} zp|^+ZJKBLk=VKebjjmWvb^j1^v{Ab&eV+9VM(4oZFP9E&AQ|if_@Xs*3A~nn8Bj~= z;i>041MQ$#?Vt<9m`(qvhqSR_<@sOrxC!?Q4&AclH?@du&p$g^u<>urUQdl{*Rh}I;${A;XY%hFl8^7Y^?%H;Sp9@pO5j7PK2uov91#R1!$F&nRLPnq?#Fq#JRI5O@^BEoMj_F=Hl!ii~_|ywKOMRxTelfD343 z%{VH$F?qN(Oq+7uAw^!L!l+(1p+C9Su3mk&$~u`KXLaz}3YF#GfC~siwCA(SPdiyu z^M~)`8+}u&n_TbHLFJGxq57~raAa;iO1wo0qaq&M7BWsQu#Z7DY632gfacm!Im|e@ z6X^737VC}31>bhi3VJ(ybYj^j@aTjroHH5Q$$przPqN>}Z%^=BcH4TB)v=H~ZQ4AA zjb*StR>#^<8LJ$3$x&ZsmsI$iki8B~O%}jYXl{&e0quIaD}m@zTU|bYot?@2KAYRY z!oZRsSy0Hv$k>`z194uVkh4nNu6t#@)GrymSVny}K!y-akS`qX!nNdWisDuZeLag3yQ%F7(`Mnv5KfnPP)m3+!<!>y8}B9-jqJF6v4m;apT(JgM&#u)j}`dU6F|Jk~a|8zH>wD?bN zivUQu$UZCARQ#P6c4*lec|NDuPqPMzPL4Rt0sqFum3H+&yquo)n$!KobBBodx$KeB zQlXu~OeE2Sv>ZnvTRwe^yP4a9THvRtmicH1jyact8^xW}JXykE6ov99TG&uAQ~mIm>ebsfiY`#YKvE z%WV?{?NF{OWe+WihT1*WUSnEL>C=WFt;YVVoF$?ysLG*+Ryyk;ghiKwg9}CZq7@*o z+iglEps0n2j3OJHXb{_~A2_<@r!*W~B1%2n=0sh;>-POrv_N6Hu}U!g7Q`b(zl3c@ zV4l|*(1jLjPY?7Z+6o-ZfTkh~(}Z0Ol8{7lEG~WjhKl^pmJ7LjuJGoGRXM=io*1yM z>*p{tIsKCG$%k2=-<+!b1Z%@3lna?_;p41O7@c|V0{0pYOWSvRu4tfGfL0D!dui?h z&2c7afvG06ON`w2?=0Q@wtPm@|6*xjId8%OjI;mC7xGd2zxB2I{GWI7d8g=qxPI*Y z^5OHwix>-FzM4M9tH7!TJ~LC#g~22HZO#vJ>JFOcx;cutDv^wb{)kJIw2_{JAv(y| z1>=z;_yvJj7F&N43`U@+*txXelCy|7$(vakn5Jz?zy7fHJZcRb!D;_PCv zrvNq@a-2f<5X-=TO)`S1@TYn7ScUE~g&vyuIg|-(<)HLBXR&H-xj;edDanltbkB3p zCjOz_6-11ybu4s%$GN8|6(|QKxTs$eMp8o&*4?D%;#cBA^iIOgXH(Xar#Fxj%T%|t zu}5b%%+J1$YX%F-MuP*D2rX)w<~N(eUYlj)`?T(_03t8}=SbNHLT-&fNX!3eyVpbg zI*~(RejaJY1?%0y^dpJ0mJqgJK`BxB>VKL?BfBn;iINF4ryARrGo6qkV+4V;px@&f zxw0_Jf~Bntpc6J?3-l9~+2{QVt3e@Hk#A)Ukz5>+X((-tx-Le3z+hAqP@;!;OJpt( zbPJtP^1|fM6mI{Ugx-K6*V7_21?g_)i6C=O;o3=@lZ=+YY#BhpF^k3ENoX1OtgXhK zG50b2of|!i(@;(PduNP z@>5w{kne4xUn{zAld>Ej?d+H8b^G|Rg8H-4{=xzp$s_j6pRkopq-3dzTy+TrKv1+G zixv`!?i?LrL=Xg76y*v@Agi^?t5Tzk<<>;8LL}_EQh{n`Rb&7l8npCW+?LMS@;+TJ z%ddzY)5OlehV$s#DqEN$T0|5_C?Zn2p_Lt6{2l2Y&>QxFSW?E9VohjC?#tT`D0hpmDDs)3#7^a75pC~aI8l}iUhB({o=YdW!eit@7 zg(mH&G)dOt_r;=G`5!K3S3+BH8K){H`)gx9fs>|1uA*)q1#)QGK)Qi!oTig|K-eZ` zjD3NF%nA2g6>7*Pi7^ltKtUuyI=$=z<(UKs1@Z-zoVfYb4`@m)^u&6G`9juy~%5vx*_4aX9cQGmeunPqno~txQNRHpU^x1#dD z{JsAFZa#0h|A!*~`05wC(I5b0Z*C|36M_N&bF#(`phRq~ZASyIsqbGW5XFa}?@Gv&uAX1M2LYq(Yt3exPmAg?Q|5Oe{6vP>pnR@7 ziYoK_ExzWVd%UJHdttyCXRB;aE*cFj4JihvfMOGr?RX))bmPU;Xv?tKx)^IXSnj(X zh0F>DaOs6fi3tqsN%ndnkJ!C-KTwlTnpO#f^s&o@&>c3mNe5cGE!-XShW$e|dbZ^{ zo)NfROpG)@Sxv|oCYs_TVcKgVKEwC)(|wAsH>q)i_vJMyWJdRLUO*%Qs4;!J<;Vaj-BIx>hU=Sfp4QG-onsTntyq z9}YUc)EmoE+Cwg7cv#C)+QV&$eAUTD@i$>>;SYOM6`z-h`wbR1sLa~%(snJ4>PineoEoB**T=nT* z9RyPjRmL^IBy#RW8+|6}rHqD;mJ=M(Km;xDt^qN4%rB`9kz+O^9Aq@$jB^S&tnIdz z(WT)Ou~KAqWzc{ipwj4n-qq)sVicNF9L#l!6XrE%8Fv+ocp6S1N?^QKyueuczh3_C zary8@9KbmF@8((|O8*zv@BP2;8P#oN0>2Mylbsv+O>G{T!Hxpi-;kWO@SIs0AfbaSUVu)k)#g2uaqt=S$2xEw zOkE?BKLNRJ_LEJ|I)TBEsKza+n#64?s1|~leBqm2d$Wp@z^d=JF!2Vy6 z1|3W_h#DG8CWcQ`fUN*(Y$S6n>Wx~=kXcDMOoLEJJQcqpL5<{CRC}pBiz+dSYf*(p z@hw`Rk(`SvH->jn<;HL?QFv+mOB7xj2NQ*t#=}J6rExJ)c&U6$6ksYR6NQ+{%S0iD z+>FVmgaxN%Rb<8K=}YbQxA$=9ytDM*(cVZB zkYA6c0>hVTuQzC$b1dizW(G&0AarpU;9Udnt)soEf%s`xj^E#iW<*ly1eY zyoBotW<}jtqiz@|mw3sHEP6E#>4rteqx`Te(_by&w4f9cAjqs*cHNr=u+Q0>j^a>x1 zs^Y|}IB8Y1TUYi=do;t<+F*q6UWsnz@|ocNZ`|POr_Z?ie`7r+|H;EY_xJxDeBPD& zKXQ`8;6IV)w<-6bCQPXhGrBC39w+w- zyy8>&{Dwg@C35+Z%Rhz3kKFhv^p}1Gr}Os_VjzV;(_y9a_7O56g|m;41}R*4lpIJQ z@pND#c={-%Fafj?{Ct#%n2@Aw2x@XNf+K>B-T`uB?EQ~ZbF23M#r1q4mj7w9aIgQl zlh0dj|D~I{VjM+j!7HMUgn?ATJC{sRTh<~cmZ#7cyDE0VVlIq0a_)PrfZ{H+wMYqQ0D`6hF96Mi4xa za;|A7U|<7y>tPTIfYS1DHRQ6u4wvMOO*jAGipeS2x}bO1tCyy+#X(b=ZlA5dnRdg# znnULdL%^twf|)Ibu*wd{y`iLoS|IBL0#qa4Na09PX06`26Sy2;Xjg70dd4amDiaLc z9v3OI=m@trJ|umURvZaEF^gROh}=MuCKijUs1#cJZa+#yW;lPMw6G)Fzlf8r=bo|} zGiqy(FDQw@Ddpc*p0J9Z)M?u7=vG(Z%P2PMGbeyPmE{4f4bi(+hFdZMv>I`XsO~Nx zG^jLe2j{TH5g4MV3F9i({%#oA2}o@#1LSnh!gMFX_AM%L}cTCKv|!xo%m z*u7Z8$(0kwt0!0C%Jtz1r-%vPsQiLP)mWw}s$S#V3E_d!D@*Lex#cVM(zE@teN+b0 z>$qAysx{R4p)Hz;Q@&Zwalf5bP*Ir41<3#on3v5z~Z%FP|_Gf#wayeHk17VvZ|Fy$L-99?p z|KyF;ahiP}4a@+aIDG%_`lK)(2CfQB#z;;1-06%O=8N}Rf|oAU_YQ1q%r3tw*FI^y zs2o1eF?))IjTAh1gJJ~EzITm7k_vXgvxbn44|mJ8{ZC9tQ`V#~*))Ek**0HW-$Ee3 zzGm{-h>srcs~C5h%{*L)JKawbP-tO6w{T+7u>i2;OWs2UtUTvT?c~LA#JA z+Q~Hr)WR<-MFmYs9IL<-_cX-&=l4o#Q@azM)>_C@3)ele7i0 zu`!4~k}nqYZlEL)LCo-hga%};7>)=sWa((&=95%DDo_lUpZ%814h7; zEN@qi-gn(~I_>64Hf^P7C(m=Kl1_@bXg64}i5Bban|Z7B>Zr0Sbadz_*NsMIlu57{ z?K-rj`tfzj>ew~)g(u)Nw@XOYqH}6oBsWb4uB13?al`5`4j{!j z!^H48PIHDHDZB{uR3d*NG^UGv*l}$lL+w**3Ae)uEj+`Q8RHdt-C-f2HMsOe-vgEL ziTF9n!(~`Ye@LmkL{Ce&4;MwIt3~!(6|bJXwT9DdI<{tFE*Ep2ZK5O0P=ZPR+d}G(2+2XO1F2p(@h`L>MwEV- zalJMPQcQ1pj)d}8-FHM@9m*dZ2GB$pGpxFf?mb<(T_`20^ z3-L^#C4x-kwrSSbD*~o5l7w-FX=jBA_El&{;(8qE17VZ524_MH0>9ZNCo$9SL(6}d z*waV`#N;xW_^WAfFrIoq+hb9&D3{{uA}m`X3ZGMQ$d4#}2$_kT>~y3K_;y#}k7Yb$ zATYFZmA=RkxxZZAxGrf)yDYbrd25`Y)^3rAwrPpKgdhOGi($vXXlqW3P%|6=408~N z5h|pX#JH z!(Oy2tC$%CP6OeIYP>HAnlXlAbS4I6g1$IOeJM@X6DO%BrSyKp6?jX!<}TE6Yx$T7 zNvMpQ7c$I^1ZUnkOZr_Cg8NWf>*v(9^)$q@Q6-_KxYk8ngJI8;xt>Y9aN-N}btHnU zJWard&Z$aa6#&QG2wVT(K9g*h{LIp!{AsW8`fXev{sNJ*H+zi(VL(67qJ3 zM}u}((C7&g^wC(|xT^Fi<8U=V?CAyJhhcj zijA-Y^<%w0*e9Yiw6u`sBGcY{r{UGd04BfwsC;-DV*2hSzqc*BH=mE}V@1(_k}MW% z{|Y6H=7^h8Dxmi|lpR_U*jzrbWnf1riouThI~6#{r+}V)bM|=EZrcK%-f=W*tZK8!})ORZM^DNg{l%o z7_mOdx{-dx`=nVB9btlrD*lD2PT&UvL2COj8An)2kGG@CR_cm#$~h$z-=V}x8BM+< zjZ1TA36c|xU)EgOG=-$KBt<;i=Jd$N%FQj(LE-J>mcfd{3n7{%OU#VAZgzUvjCqEUHP*R0 zkyP6HkZL^D=Qs)t7L>J>m5zP zmgx?Hh?#K`p-t))UGu6E1CdRZ#K>60bvhJl@Z6Ma;O)1P9=DO00Ye`{ofTqN4Af{< z`#u2bSgm2FC$CO}6RXlQ2=*9h`)OEP&^fpAfl4f z?e|ZHr!?R2)dL0yCz?{lk&^S;3eM5q`9xgW8cc)nT#{J?gC6FsL3pUo7dbdi+*4oJ zS@TV-Q5m==NZx}qig%q8rW@B7_QY#Z!$4(m_L#%t{rztSE7);eJaECYK+KWT_SjBW z3?~+1*?}nnRwx>|c;I}B>7r%$Xr349i!Wr&#O_kq=MI{Cp8@x$GOy&92e>!84hO)2 zYRROFNniD20p@V3V{1iA(s2h;fxlcp1wNVFL0@QMwZfN}R|luT6~-TuaA66oR`hmE zCrD|TP8lj5g185s=A6luv5MYpsUX{-oL9nDhT5hmXkO?8oCz#5=WD=mr9Uwiti*TW`c$RABnW3z`N;gc4RK@>uY>@ z?hFDS*HBs-i~u(5e%kdfyE;S?Z2AK@(kQJK*2aRU<{efc0lSFtFD6JRo+x>(J8(^` zVpwcZf(Lu2u~(|>FSJiH%>k}u^CWA@Zxa*mqi(vXDEV~y&oF|&5sfi6{&y_@-{w}~ zp8mU&&%5IPZDYRA@?kvxcjWmmIsdn&+|(@~^km*rYo{sek`i`TIa79kaF%HbpTU^XH+g$ASXv8sdZ{|2RNW5ywa5T!0AKGEs z^U(4`F)H{j({Zla9T8nVp8XsrPi8>Z4yQ@pnX{OQTRz>Ajq(JOn2_gL&c>w4o)eO# zOnv~^lqn<&XWjXCnPB~6%w9w?Z_jmzhi>eD|Kf+CQa;99N0P1c?g+G8jg%0HQ;W|N zx5+d$yd_jF%H+?@QhuiZOvnPB&wVWq;LuApXQ+eIA;q^?TFINE-k2r+q@r(=X!unY zeW%m^Zqe!4f{n2`87+_oz25X~jHCZI^Bn)NxUp8qZx$Zpiv{@qp8mg!&%DgN`193= zUr#xzGkpkN$eI90^4KahzR@6~G7oj~DEzCE+-`6^8@xmR)3!68{xR!R%v*J*6Aa-> zDPtG=X!{#Lv6Y;)KWH)6RAa8GCb=dJ-W)#!Z=cyI;Va7mgDC-ibIpP;`h&11*aOU!u47{te2N@0`Izi$6XJT zZS;YnAqSbzj1o2Po^we)jAxX;10D0a7E&-k@#L()KOI~mFRsH=th=#gQ|M2X?lsThEkSA zA{LM?Sd2ZjgXW+oUg3Ybq~)tX(?yFzyTQu&V)PY|AwVh?nw-mw3cNvZME%igrcS6i z8=2({lC$3kd<$Dy z!(I(phhUJQ>8b7>+k+*m*BY|(T-fM1Ae1K4oe@g;aCc`e-6_ulNUgF{AD$?!%xwU( z1GhN@v~|7fcKlf(yMaIKH{Cj%_F-`IdAk46{Fdh*2R@Q0p{J6!JvzY z*%z#VEz)SJ=|<`iC{Q9Vv3VmfQ`;}Jsup$C~R9Yj((+0|xRoQl5(C~TbU5tftRal;5t^1khwO9LLG=w;sNtB!Z=q>1%Sy4gDl8vxX}oH2@JU+^ z_kf+a>oU|g+z>Ve6a*Mz{^Sma`3pKmvDhB7{D6aJM5~T(GWm#D%@d<9GLkmTLg3Rd#49PR||o?+Mae7{F*x6?lZb{Y)=m+qp2HZ$yIbC?haMf~!-uP@pQb;Us5KDg4T4Fmvu+Wv%6>mMWcT zxy`HznVQD{#|(LGbG=wlC2Ex&E>N%S$U<16s7f4^UUP|O$9sF_8o?-FqJYb{1$cLEfFF*S zh>;aXjC108yHnJQI%dm)b88x4QH->j%8L8pcVY4e3gV(uU$8t7w;mdba6z zyDrIuL_CziIU#Jki4Y+ps;0XG4?ilG@hZsZkx);D(S; z>@x6e)*jQff?rXKtQ(J$Y)V)S!*$5CmIBgun-?}Zz$Sr-1Ay-&{bMKt7ekPAy=$IT z9u)VhGxP@S9!xQou{*&T0Tv}riQ>DL^Snc!$?pG~83Bxy|A_pr;r+jrU%$`)ekY%I zN&kOS>)$yW|K98W@Adza_U>N)f3N=^|4E^EV@3e#am?aYn9x3a7?PRwa_v>QX75+( zjq;)W-Q)6c*{)ZNNjF+pll){`0tC)c!53_EpopvK+yg*#Q- zcSA;xp#NAA%qsmGk$~guKi9X`f&MGz*NPik#o`*$f9v=0AMWNe)){xY&%FWYjRt#9 z0M0&l^tmSh?+L(hOEJgKZ4!Xwo^GSj)vJO@1IFHH>h22)RQ>c}#1wRDThQjus3#L6}I zf?q_s7Xfg@jl2;SZUhAl^rTs)-EIjfsb(6dS-OP=iiVNg$*}FU(3-C1{>UgDEf}-( zL~pAxMv(|dm1EmTvOwjf{m_`&r<9`se+Cn^8}m8~n+oE?9Al>%b$tR@!xP!*X#gel ziXa8THgs-nyaPtH=_7jo&1y&P;66Is*~1=&NKHJV6Q7ghHj2n)p0>|Yn{a8zy?L)R z9O?X@kxKqXZH(jpHi`c;lNSGP<86!oS1s4<-EutsU*!4d_%5;t0o zxjVG{2V8gQTn8#5ab`tCRBBmIKe7thoP^78*1`~e&>7BkqC{DV@B*WiX$fz@nZB^k<3EHDaNcjX5OHPCY|EaVcrJ} zwa3xdxYbr97F`&G&f-K2_#4CbVZ|_dT^M~XeZ{-iMxwdN!a@Rvb_jH`NJC7kEteUK zhk>x4RT_1&QVYXiv%Tz!^~^#UX^7FezW>L`diBh5XGh4a^Dd z#9RW@WW3{~;+@eqNXwq36!u{DF>JnAbdc>Jl#LW(hhhaTNnfB-MtKBsa<@|V;4F(v$wmC499 ztZ!LcS!>mLluZg5uVt&BON8wSu=U7z+zFrYA-bmvrcGCV)A!8eqGm|#k)O%pZAT{B zdHW}NzB4_Ssh&8hKhfHHV1IpMkB;o`UbO?t$;A}i9Uky82Xf9C1a7)x-llv5+3~0B zEt|a?Oy8{YH^~H!J~`SP$}=Q85lE1*>s{|u5FknCgRdlUFhnIl2AF|OWNd>%n21TH zlubE(J(-%tLG8FoKCiN-M!t10bq^2-6La!OnlIe%j3Lil>9{b7WO4LoTyprSKumJEjQ&U&C0(^K$)xg_h)f7d zly5jA$!+lt6e@1iZ?EPbWpkvPF6y)#C(7mQnm``m6*lZrpv4u;xqC|Kc8^|$X>ub2 zfZHT9>q^{s`eWC9{Lb?w7ZFv2+;2+WD4hFv)?GPbr#tW9Mwx~v($Hg!DjI$ND+%e1 z?wHZ{e<5Goh~57{6x`qcckxNN|KCdUuljKnqngF8f9-ih{2yEg1Glqs{*;uMRnHlq z+&a`k;&~6a9laXx+k_^j(hTrSqId))0OWXq44QW6P2No7woF_B%+_ZQ7u@c!ll1b` zbIz#1LaDlAA0MhD(B<8QkF5MvJ|_}mW8)X?ppE_|dP;dR55T(h@<3DOF;V#l!E4xbKDHL0lSw+@)u9KN2_2`Dw9k>^!xkF+ciLU2J6J?e z&)oqX0P%XUyBJ#AmdlMH0V%NEPCQc`@t-f}i@CdMVNh)P00~3V@i=iy_-Ja_V zG#MO|UlVkI&Ubo?seO#L%kwWMtqT`|gP1G8f3!JFnWb)!+D!l+8`J3Gqx;hJyUSho z%prtzdG32sn4Q|SZuhb~amP{$Ym+VVRMS=kf&lhvp}?Hk#>%F_W+6lk_1n~2n|qts zhC)4rT9+=k)h-aWP_0$6*hqaIbqu5^C_pQBa6hKg{Xka2K{DE z3{XK!FA{?$jxpT-!{8i?hfw0L9?G3nb59(hyFY_nB=mh~jOn1l;uO=xEBzy1pn^D3 zMh6ti4Ue%!XUfWWCsNVS3m*s4w0xLhYo0ASpoAVF~<9G6kS0>E2C z676%Fy}l1*N{1*UILdjW!X@-pn4X>vy^z1hnZey-GmX%vp>o9g3*oWkoro{Plh~G1 z0%qK5WYCKZx)yqq6P@}5sajz9T-GD;%n3sbF?Bc%NJ!8m1S=^$8+JwC%pSD6y`*l2 zy&G}-jKha}Anowk!%UokjLt>$^v(T-st(N?ihIbv7G>t`w5!UhoLU)V<}oCz?fRW8 z%717(L%#>sB_e_o*tjn75F{poqXS*cFN+4-GM+2LLwXU&T2%Svgo#Z!lLBAkEal;U z*z2cgzo`aE<3KIl32@Dy62M86^TRG~6joh!*tmzzE34)O3EKr)SdifmCUmSIU;q$9>;F}gtZB$ z$QbN&RYwkK3=I+Ku|X0nl=H1dKUH*4$QGK#1DA+W z{GBr2yl&c@@`R0v{e`6UVWV6-EbZ@qVjb7Zd&m3M-tplM#}L8-W5eG_fe7&!7}O%9 ztC7{9sg+cCuaAL&kgy@%jJe0-fKO8g7&qo+BXEFW2X68ld0->*jPNAk` zdbInwreudQODBHoS_XBTTl=wQML-qj!nJWXXN6!4chjCbXr6~GBjTzI%y1U=)~9Ya z=4>hNq%k}y8_4?2=CBvaf4D=09LbPXnNkX#)oz~Ke5EzCU%1~ff;@5M89Yd^x!Wx? z-gUbOCTfF@6`p=%<@rchmPE3o2kYUP;E5sNpFLct;>G{*!BMT8liPGhb(9!>ALG)y z4s0pH1#|_-{X?P}hS4ZJ&n-v@(smao6nAS_s{Fd4id8*~e@AEM#2s9^Fyo>^5Z2f^ zIyfjFHjr2-p#&4%1agw~?>T)kai*cZiH^^9LxC;6!8NvNWhr@+xzJA8U`4;PXy zOT&Xb2Hskd>!jU;27+szyUkAn-BQ{)b1-NS-<0woqaltw;l#rOcb~X|+yj7#Cl}Z6 z^-jZnRy%rGK17uuJKhS&0Q96!`xqw^3!()B;AkjW5GA2Zo4fZRT5iCV@Kh}r*4WuU zs&kEEyvAzN^MhEGXGe_}P<}05o{3ktwQ5$dj}Kqk_Ccxs5~{7|Sg9F&O0F1y7p@2A zcvFQ)OI3t=hesbD!myy?230%`OC=9T*4f#II-9XN$wQKro*hA@t!SP2uy8LLD}_5T z^1v*RNyOpgf=mc}VL`teNVo*G5>y`%B!snuHw>JccHi|V(j*?U%k%a?#GXT_4h*Ir zqzIp%ew2T*5IQd>R+We>;P`edXA2KsSjUFHyP0Ivo^WZXG1fnA_qYYO-$n$B+`ypS zZ1?C^Rr>EBl*wSjB)y|Gm&#QneT?Z5Bj^G?ZslKj74Pvif67xEu#k1Vt#Pl$LwJW9exE3>48 z1)(cW&f+maHP`bm5u75OR4IgQ69J6W2F53mj-Pl{(!CE8v1gNbhz-J+WK!}XE7JqI zdvLu>NgttBR;#AuOkA}{#$ZktgJL@#vl+Os7~vJwe^m9&c2w*Y@oS$(;8m5rbt5ER zFi$;PC-i{htDCMznwxB*FRQiyGYhtoKeM~AC4W*^T#ay4ZzlJO9s$Jkik`;rxj|}j z<-bYmd*WYcd?)KaTfo!zS@|N>DRno827EnCn0!Ff3T zKVIQo{0VUYwGAD-l}FNC>qNne-0YuAr=cFJ`<6uaPoNp2$Dh~X=1 z$uA=E5`jh#(q5^ue=G$d5|Xsj5Dv|HdA=_TRIj`%Bz1f3K5kBVV)Tt8ZFXWHiYACU ztY%kR%yB?=E12FFrrZd!7u^ai-V1OqpSol@fKYWP#KCAiAx!}X?-E#uE)A6b#QRV? zIzHUB8?{PRKp-Dtr={%VA^ER@KNj^ib z=i@UprDsrs>PcNR;DK%c_gS9>=LxJ(h@Ay>Unn9{ln|_A3#4`fi=%dfR1l<- zqr_}@8B;itZ+`eqt*B5~aB&8v)D}ELSaI>guPrYx(gH0mFF##m08r)Of>bi8AYq~A zh}W<0A~wMb{WR1pQ9WTUIuN$Dp$#(j!UZZFda;5fwQ&Ig+~x3=4F{#f;?gh%gJsyE zi3SpuLY+&;i|Aa$N+~RF($gZ+X~?_woIdPe(rEGbmI&w+kn;EfXbntEA{1jnb1HNS zJ>4FH12dsI7M7IQS}r?8@Cb{*hLZy8&b=qSY$i+n;%1tL4ve*BxK^aK!M&ou$&R$$ zCJ_oUiVj|-%KjT=+i=BY$OOAbNq(Tq2!lFs>bfn_d^X%$&Oq8n+nSv;G{GT(Sip~8 zS1idja<`#Nher+Tn?J~Zb6M?(mU$RR8_c5@%Y@WPY%zK05#^XD!JaunU~lXCR#6Nt zbIq_4S5~v2m+G*9Y>$B=#Y9-tebi6Db|ue2wlgNnVsk^QtKW4{gWK+KfsX6I%AXEB zwK%6pe~vIOPSTiAoq=LU9e_ziiw_XQH29ar!U1 z{_uy${}pF`ZH%J-H?}sn@>`pc^(byI{oJP(}$}Ob~PXSo;RMuI^{R% z+wTCv{37g@|Lq?df4=aq|JTWX{`3DJ`OiQ7!}~w?f8NSJU-`kq)ISTI|MLFNoc{dA z-&nf;bN}c5&;6hKKhyuQzgNhkKmobwPVeG@{k>ulbMM%ctIGB%6>4DnUaMWLHXrPM zywZ11S8V(2>I(fg10S7T2iNvR9;y}|#j8>^c(oNYF`fd-dnhlb+poTCwxe&FUfb;s z#G7J~-iRcrz~FaXk{QT~>s%4|auUzf+O@(OJrc2S2UzH_S;&4}ELD?BazBKHej3D` z{R)Z*>*d2;d*|r*u<@W?uDvSP?EOl;Q9iW4dt5#)+x5!#$`4`#eh?ezgRpZ0-wyod zr|#eZzv8DI)RFf**B)Tz)=qE+9qnFrsASHMDq`FZq*4v#it5@9A z;Xw^d@+)%BRv*dCrZrlbt!Poqvzkyg+Vb}rmHMDi^l^Wja;O6UcL>kchF!nk!qAL% z$LUqPYN4pR+SCW@=T2~5@yhkVBa%G9jNvZ_0Iv6(cE9q{s~7BYxx8B}UkIRi`vp{@ zRL>PJEEj=IK-TRt)OcjutdNJQbr&Q57lJ{wN!69Z`lelYWFPn~5w!uIx4UQbqL{aL z-BSk^kYBdwt$bDO>kOVzQ`&TVvLn+4NnjwW4jCcYV4t7T&LPW00wTJ0@9szwh(Klu&K2} zOIDc$e9{o+2Dj3Lw93561Nrx3S)dekwj@UW%Vg-7PgRu>p1H59t zLo^vYzNi67Q*GG0y(54=EwQ1`@8q=#IGKGuZtwEbX^)B2kQ&rOtReew_+V-&9=Db}PLW8EuhR%-JHZMmsq&fq0j;-SM zDwnJH3%|P8gM{bt{k+McLE9i$=FX@PYS)NBtQNpF+p^zh z3Mq~BtyT%ZhDO}r;VO6LAjbhLP>rq6hRq8RlX6Y5ibz+WJ>WcuG~5kPvNwcS0s|jpx?&agA-kYMY;wF zxGq4O>e>dZd?2Djcy71cslIGZORecFN;s@ed-_q7ala)@2h-GrjnF2POmuO`CA+?B z&w5$msZv)Jotc+&UYB(`jzUJc9wmxs@3l{%8TX2mTh7Q97%ujliJc7_c5AI6rMA;^ z8(S@LuM$wnWXuX}ZA+()$snClK>*>WPDI=9mKE_j)9IQUrNu|4IP>N~G{#o+Hir6k z&J^06h2ZKW&C2W)att-B+q4G@kK$zcEfM89MLwSen}`zE1o>0%;6h#_UFkF!y1?5Q7R!_5Rw}i1OOro} z=({bNuQ-P0yQzR~Yy;W>*|b%93N~RFMF?)fTuCZ$?!;AbM&jyG$GNf%Vb9bk>5+kt zI!s6uZM)-q>c;5@HO5gxEUa-oT~gN6q&Eq5NAw+Ugrd9#HW35rf|;2v|Bzt8 zg}IQ#%IFKBpsBXUT^*|AOx@Er%522V+@wFnL^5kW1VvF16wpyXwF#Sr@5jQLd^b-* zV}rV~Aqb5PMGluGD=_QYO+sB1Vi;!fCJgeTDvmR*^}2BBlsKU}J26nmD_B0DjIEeO z$Gj*5;^GniM+EGK$xRGR?-WK5I%~Fs4*Lr*#b`Ckh*mT_vCfRm##qK?<{6JtjgM?3 zkUHb%LOblS4Pfqo*j*o8W~B@mSC8g@+O?i!HO4g@ouxH9JOJZsCy}@_kssq^TC9NEq!SBn%3&D6w=Du=ht zhDMd%2CE;TARY;ZK-*^HFez=OwTZ8b;tj8h^hp@sv|9ABx5L=QyL||em07c6;^Zk% zc#LhF27edJN~k#vZ9XMl56SLFHdC3zv)CQ1E_jx?BWT=fCDGQp&0Hz<*(s6?=eDkd z0_q>sodAs&YLj;U3%Z2`NHJ4BV6|;mz9(H}9zG($FAY zX|fGgPCrMN9F|GLer+esCKV4 ze89gkm>@mlLX;!Or}vbm65}*Ro@>B3gk$unNRbqIiUxzdzTb3P!@j!%1s;S>cHvOg z)+l+rh+Aa0TQ&wwvV-9Xhpj{nXXyH7R?Tx#rh!Xcz9^7GV7uws!(NN%231d!G6VgU zAo5$Yl@Z2_hKG|^D>?(#E~t|0Yw?i`hUhg(u74Px$?0GsUnDwa8J23P_}FZzh`Qv{ z_E~(&#!fYNFzET+AidsZte&>8a(rpE*Eh!0=EiN2l3D{(_22}y+nzVZIaBND)ZQzenl-RDewik->`g44 zYJ(d)v?WkbO_WPF zXG>^u28*>vsRl8!qtlzECG>21%QFv-GFN8ah}5^^%*#AY{N;uCV2X{dpQxR&au}~{ z9>Ky`tQAo_K=-@}O?tc(qw-0&V{z1WG=)5=9?Yr3dSr}gV#5G0fe-O!*8Y3wOzesM zvaVc;$Ex@}bJL8Kn0jS%n~W77ggawY8B=J-+am67H1^URxlFoRCx+N!J(@^+LleNj zCRftXQt2x-cE+W%!pQ!P6;;yG)${X_NO~l?iOFtKWk5-Tjx*HW{N)^oOC>{Hv_mA2 z(8E!zzE=)!;Ha$0c$dWOC-&jSOuZ+0_cdApG6RuZa?7h;)a6j64PVnMdlB7LOr94~ z!XwIr&NE@51lvGpuhWSZOg0Ea>qZJ69Ct-XEsvq+k*yKoc}`n$-_I>V3Evx~_u8R_ zNwpXD{3ovvP96sxDgvWCr~yqE45$Ig#8Fr(UU)9JmhX#FCMzw2MVGzm-bKiDmecxf z6q>B-q-+3AMCx5d&o}V8N$JZtLBTwGhKxLQZA|ai{CUZ4%2;nps=&=a(tlom>^kaf~0)-^4P1sq*}%ltxJ0*8wkw$VGK{) zG{VUIEp#_EF%nloU(`*T%o?_AEi%V@x}?RB#(a4j6P#uOJtoG;4J?h5Ly$baEhF!p zVx|7bCU@zZHxcMDTHyT|AM;0(4lrSxZ@ldzG*<9Fs^;B9)qFn@ z<$XlE`-pb$NkqH3yOK>2LgQ{6LXhBWl1GRnGjB1tmS$yevuPY*pYT|>Pq^*bi_*`x zK%p0m7H-IpMxrU*5Zxpwb!LH*ATOC>j*>J>(^M}+cV_M7h|Z4Kcv~qO@Ae&X=Z~gz z+XLx?bPGNax8O=V-_tR@W3ql5uG4L}E^fn($Za^O>+l_VGryko zBv7Lv9utc9rc}I-8g-m&ot;mm9mrOCOz^ba5#HL>mm=E3d%H%k5C>vAqKeSHDp%9x zNU>GCK|sd$b2{%s+J6ODCaFzk7*FmMOf;DW*FhFJ|PL1wX){Z76ti-u)P z7=<_tm~hO!MtB=RKtV|dk8h|j2_RKy@=L=M>E6zraW0!zg33`BLtMzbIn(xgl-A)# z>D%v7`u2M?+r3beVG7^dA>#_4!eBW9VMh)4COFNUkTGi0L9x(lyG{499k`(^#vW)# zlB7fR=XT{g1gKhnJduv|U0xT$ge*xz)7>8pMTp2wr%Divncqw!RYn-8#Mg*zRAveu zZ35H9p>G-eI~^{2r|;4kk=eUF=G(w#(^-K`jLym-I{Otc85xPsCT6{6F}fSfuDQHV zSMqMBE4gXR-Z3%l?sFp8_c;;nb0W+kC&EqS>bx1Z<^ZS|0=f-dEW^J=U2j~UcRRY* zh-P#yfyM7S{^D&cK!S_uuW*#dxdfS?ya)O{xIy>e#>ji{b|XjLnn*ZRoA$PF*>Tm% z%TyZb)@JHHxyHMdT;r_~c;oIpPjZL;rApxwBsoR9^M1>vA4^Hji3?1YJ3^o{y?k;u z`>809$<3z{verGuUlKAQ)uZrah?u6&Xn2#DxI$0)5m+ z*mypl`U^pdu^@7sKK5qn*hCTZRtoqzU75+u)8i?3wlf&V#Qai|G2c}2{x&7ceVg*!&YqLtK0oel2}{b#){az;@j4% z>8R0B{>>ASqcR-T9i%m$b7tT6`i9>QR$iT_==R&Tfd6C|QiyVU5iKJgXXJoEcV389cSp zY$9?cP3JsPH8qV5*7&+3$)QN~=`FCL%0NwGw>7cEu4roV=4h>zxHlrkTBWh^7vAZ! zzorCv$jp~JFwQN!RL}a*MOqN2JE)vc@hQ%J^m>RKY?0%fiJ4Bm9GgWFuCCD*umMQN zg-*PNqa~*u`8Hx;+3Y$Y3g--plq8NnO_4HAq>yaSF%JH0R9nh6HmIY=lM-!Fb!14h zZQ7w8eLB)%ERFrP(GDqco|~AOPK@cEC1bkxRZu%E1~RcmWa!hPjj@*e;{~{5#Jppr z7ZV6@XQ~{z#^SupY*NuN{!R%QoNf~Sb2h1@p7p6X`wCB#4r=t;%ZqN(JW*4n&7Mde zRlK1*>IP}XixW%D#?!R74k<6cfFWBuhkS};_(^pKD^gatDW{U^;E)O{p4)Q%6 z<(TMr&~qDyX-j$rE(H1>Kfg7+*Ttj&t_$O%-%L6)#*B7qvS^%}#w?gGB#O2)6N7hF z5HrJ_Kh+45F8xO~t~Z)jL$ASiZ33Uc6hYd zMBR@!%tt(mS>8}FDIVElr99(}I&RFKj-T+c{Ap~~W1EMQ3&Z|P-9s-Mc4%Ut?V^|F zxoLVBadOH8f(C?S6?j@C_sN}{j0^%(2Hc-80^JCUj9FZDo{ga;ks3XBotAFFkQV+k zTGp6PZwepE5kW}Dldr}3kgsE@W7^Z-p=N4Pa41@!?_|!8BF74HL$)aNI_Qa1;bHcAbvDu19aF&B?aZUSvx_!}F2n-VC2b zJZ(p6SErT?K8{Em8C|5STePXANs|hfO(7325}l*&55{rdK`JMYWR8iS5af3NEs3?6 z5Ifxx`nahLXfh7bMegq_pF1k}ND|h#9c(>I?2$=O*DawIJSiPSD17`!VHBiB%;HV2 zH2^wfU6?q=5ftw@v^%ibjGkUQMWVq+M}8~AV4&Cabs0%7oV4ZUijIIpO*jNj~>v^Kluy#_a_Jc@r(cVfBEP2|NTGv zPyT`R;`9IM#XtW)U;Od^^XvHSkAME{7umo6;`2ZKy!^MZqN?-x--n-n@5Sf;>x-ZM z4SeuNRSn{wl>bfx{`tu<*7z~lJ8e*5z`|LDc%!=J^5!&N^o|C2u{|3&%lV(Wj-FpvKn0RHSJ<$qLx z9{lvH{E&Jf`uVrZfA%-u{Mj#t){CE%|H+G=9RCGO1$N-C6a3%&TmKOL{>z`?*FP%% z*^htT9{kpif8HDX+duw! ze+d74^ow6Sc<}qb1K&RXA7k_I-#=8}zM$rY;r-;ngysL>FaO2A{KYT+;4l9f{4IN6 z&Sd`cH-8Q@`KM!N^2cxf{MUvKOwOOa_{nd71z*tjAOGyPl1BF%a&*7>cmEJOJn;yj znJ*51LvQA95KHRs;-JgCdj8X2MFVt@hx9PnJLEEPv3lK6vrugM%j@ z)E|5hJozBM)_TzHU996@n-6+^fAHYK?VtF8`=C(VTFJwIg$L~?l_$L?5BO8*0_EOr zSy%<*gx^CAhSb%b@&5ez zA}syFUw`o6OZ4I^1o2DJdTYNHe*Yr<^^XxV{@Pc59e@1V7rsLOe35^BNj&^({E)WR zm%jAnc6adL%O_Op%L>k~{hhA*`qS|1e;9uKL;U*JzVho|`7c7CU&im$=0E<@KihzE z3)IH{jnKvSfAODU5&r)F;`iU;@Bbfu|2O#izr^nrfByx3&phPOe*u5w`NtRN$0Ppn zMf&mE{NqdX;|2ftGX41f+4~acsEX|G*WC$el0d>9HfeSc2?W9}nh+W~lFf9&qGA)0 z4vB^&CLKUW6epmxAqpz4jDic|xZyeoE&&yA#s$X>XB@?Cgu!ue97j}?ukNi|uj}3P z3*gNEod5ToF9&M*Rn@Iqx7Jth^}Pi$(hehYWyI}REI3>sBk_)U5vh=oL|=C7}+W#V;m!ew@pUIB5y4+GR|?msOKdk0b{pgH>AXDTx@p3CJ0ja zZfGub!)73oY{a?G6j+@5DG^JAjs&(l$c;A64ZVrzT?*}DbcCcNq;a+ba2d|f!kHM3 zb8m&wvDXRpK&`~+rt{Fd zxfZ?Kn$Wv_GkSOINAEXB(c9QF4!nCtpm*N{^fqUscYh^%TUMj@!2Rew_#AoB4aUxnTesp$Qfi{7!Tp_98~bC0hPrFvk{;YbnxM{ChXGfCxhN#zSk`XCVNSys8kh>{2f7YWSPw(XRS#px9{L`x=`MnT!Q~ntr$^5wxOE>f9 zA#XB&K7`$tRjhqMQYU}=y}9aJ<3db9nxF6a*!#5k$YAtFniupZVj(ta0o2#oVy zP%}D|bc+j0Z&n4cE=s!F1(Ds5wA-2<=YF*vj2P^fSP07!wcWD!U$YV6H;*jOc;v` zZbCZr_@I)7^A3zTcyawrn2GCef)5wogmZA=O_+rXZ$b_(ya~Cu@FwKp!kbWl3va@? zu<-UyPMiQdUE7|Pgv5#WV2d$43HYT|C~-=#J#9K22I1KSgJaCCsKbOvaEdGl{n&BL z&x&@(^u6XL+!1rjO}OJk$dcSg9E^>QSZ9hDASMZSQu^?CDwZ@pa-2$;S>&gq?F(yL5R^oHXZb=|X9QWOZf z)@{8~QXD}PWh@PfwKosPXMiJ9rVv*nOAW`=2QWNK2yLe*eQ5#-%|&eW1oxf@SH@mL zv2`Rt5$ru97Wh~}eDsxE9=$?F`$0z6y0w%#pb}G$QR+Y=QD;*gumD3g@{Lr8W7scp zcXABw*d@W$v3JK#j?Qt(VzYO4H(VVjCrnAm7H1yUAR{5+ERik-1O>&|i5+4I2s>DWaio+(6? zlx`L}yC(q2=_XMLbm}i!(s`1@_aduBhvbtk-7pSOLEH=7#7l&+Obw?=PN3_ZvX=LB-Cck2r??&zF2V08=NmAmO zJpu0z7bgQExU33N2AW`kf(Dr^ndJvZib`Ne1h~f0Q({9?4ZU75qbFcPhDWM^dZGI> zQf{7xWloPZrR+=*gEHL`JtM(UEC$NRbhGJzra~{$yug)Bt}^DI{#dF19VLGRP0v~6 z{~Ya(PW;{K1p3LsbvSw z#NYXqmy`xa;Wg!``nu9l)4el{Q4RHVqpB(wj#^Y&I%?U(@qzK_BdaQ_8VmQw0)oq^TA(CCZZjk*Idfq{ zWmQP@>{)VXw0EjO;_B)6^=9PL8wHlpvI+iv4MGW1ZpyIl2my4sgRbjTl;it+kmsNM)&7AUI^0qaJfzM`fsw6LMvfa`oC zkewf>swurV5KO&wR2$D9?_I+Kl;ZBv0>!1cyK8ZGic_4FQi5Bt;_d~CJNZJ8qQPAn zywF0h5+Ecuzvn#X-22Czoy^Yc%bul24hK-9P1=u=*ktaF??c?IO2ncb(({H zs>pOL7`%gH`C_78gJOwRQLQ}b^3f81OqOGbQx z7FO$erZ2Q9%9)K8^o-fvu}LgV47J}IQ{S=Fc2qI2=`Fl`#f!Vd!#l#Un8TCK`%<`c z{<1Fb>&xX``LX#Qm6fG=BLp`B+?DSQLVXo^2M7h9i5wi<45kUFkMlczBdn|Y9Gm}Y zTqmS5%|2P4b@fxz1XI(ROW?^VtAky{kBY{&A+A~rqXa`$Tt;Dgs#13N8`Cz{PnOlm zxwx-t2~1-3-Y}Uln>MRZ?M!^$xRDg96}3bkH$b#*F{F>2}h82>U-S`BPXD{tV(BEgYH@gD_t+uQ$` z$<@i|sp0|(c@oZt=ab^5Tn@>@T2zwMG;g)k=yN32h5USLN+rYt_4NXjoND7fD^(|u zf7nL^Kz}M1r5|9enGKOkWm`+NbTo2&0T%8DRYB zZRqpQwQ?WS&GN2C)x5u7&sU12hzmc{+~*FU;dw@0NI>7G)L|iPz(#v$EBb(~@@B?6 zGvPIZ2=nm%v+nY)15d2yUf5b96#}f1W3)95?lof+@g~2RxbU#rbRbL5MkxTid1fl7 z-A@vuN5M7LD5}x#oD+grP5`rJb0t`whvvCyI67Tb6Ng-T8xjVYCiLnTt3jE5Pwud$Ntd5xV?U^Ubc0IKy9=u)T~S zyY3Mbc#+Rr*7g?coLp-t3}W;(d!NnJYo5qs+M=_`vLp0|z2keGrgR7P2RG9SZ7upj z8OyTFe(t-JNqoYw7Dv_dVewn@X7*cweINo7n>m#-ZYtR-(dIwE<)<`HmqWg9JKiP9 zv~H1g8~2lG;yKh>K!Px5<*5=A6n`Qb8s;3zsO5c1+%iUG!aQ(N_;U3l!3cWBT(%C!=_)env7v2nW$jnc>aW}NU&I@~prpkKvVl-Iq8-;W(gWd}je$b{d<}GaBe@=-s0@Q7ROe+XEi&EQJ(nJv%ZZX4!5N zer#j=x*_pAY+>|$N)ghC^jmI*EUyq}nydq8$AXM&qJZP0xj0;*D$lQ(kQ&}>VH`J8 ze;}x5Wx<&pyt(vipSdG0@%aIJmNBP9x^8iXIcHJx@I~-ii(G@a*osk(kum5kArEx} z!-r2+SB_76zm`NlP@i1}R1lMy@?j;zV+QZB$v*#;VcEUmGHE{?(!gnjulnAJnL-SO zE&F3ZULMsj%{HX8NI3oEPWmo*4o=03exxb1ra{GNqpZwP+cc4JOOjuA$5U__st?X# zKMsrK?sWZ?j*F`fY?Q<;vHmTxdUWO2MQqV zhUj&;QEV`J>VatZHo){@j2~32>PH2I2e_XbfhY~6@?j?(UEg5EY2g}FksR&*tdMF0 z)B_cYGC_6}&d7zLg9z1Fc?)eSU!+nMsUwleFqaIv0Vl*lrtF~8NE36PBt(`~;*mO1 zD0u@9pj(PaqvCFy0lEpyUGX^}Of%7;pdGb4Z|7iQ_akpAYmL7>IWS^UG_fF3NFh;^K&&DUW@3wN;P=a#w`gA=5BuJ@H>@XKWDXoiK05Ea? z&;>CvtosS3t_045Whqq`!A#Q%#02|f=YT0Ne_Y@=HZT=-npr>{NjyUT_d9}Os8&g zq-8)N2wK~3AP&~A?qvsB(MRzDisf%)pzs-`BOy=|Q)G$|5^E@|y8$uzCDlGy0u}<$ zWeyjB09jB?b_nWBa7#ZqFbysNl2!lP^BLwoAR@3?zAOeh=L{!>th_|Mgzzy%MvlRq z1l|AGBi@!>Nk9nHiGcP9k72Y8W;@Qyu~CZ))|2i}uv8M+2{Y6xn!4yGawOFNAWk=`4%Eu4|pL*a4BHbYu)7W|cut!Jiu4QPRlX zZ{R(4OIkygtlk`fn}j61T<>CCeTnaMvVqy4+a)*_515AY{;?D#>cBqPG}@hR4*b2V zH?9DSJ*luMRR|oc`?~nDPg0kc8!wBhmf-Xh%bb<<8@@blygJqcG+G-Z8l;)y$r&UHpn#{KD8+~(jhkb1v9jJ7K%3T5n|bH~8y zhf{$*NQ27m?|OTMk~RQ9jMQ=i+y=4$yc=t_7$mb&29WP#1sc?0j0+`*J&=1)S#fufsF8+u8Wl?4Pa9eqFM*krm6AdmfkDCj{q_ zgSBzO41sK0i!Cke!ad=sog;2>CmE3|3Y8O(ZL9Z!f3|wYda>~D{sni+7shgzvdGUj zsEw+!ck>O9kIUMts|yyXJ%hydT11L_b+nH6I!W??q0jA6*^i~82gLL_H>;VXNgoK# zFGUW#K3vM|6M%J;X;V9_v>YR4WDFMSvMX*r>{D1$5k9K94gPyWb|e1!LhWDGZoZnv zhX5Xa>YL6p@$klbKi-c={*x(;vJ8=L*fy6>SVUFmi7d*AVw3&Ezds9|Qyr!*dk{?^ zX~uukdi`t5pz=#l!*P#=udtDvw4d-dG7Dndk}eS$nvt<)DSb~5ekB!!FOjRgRlaw5 z9bti~LG90Jt^0b$dpZ0q02+JKf7Ly03rl(}vVw~2Lj+iV?&zYPju&OV(D_E`Y^l2D z+rcG5&SZIf`Z(Zo5p~3@OItp^QqZf*pI`;VcK}LXYgG_$)X4!{3#>epML2DukGVb! zv{C6FY38>&P6Nd?*I!cC$d7Mv#ky3e+tnD<;=8@EE~g?okJpR3SozgF6>?7Vrm0Dd zYxRhecHPKw>6Jw6;X*@~hVV*{-CP6*x&PmJ>MxaD4La}s2)Q_CAa*QipI@EiI+pD( za($4Vb6?CZpaoyYP5&w3+w_rJDQoeUq@ynif}eR_GPs)OOD&f9u_wF~*ukGN?SZbm zXzRzxPjdM|YGgwv8IMn!!zj6J+uO%juJR>^k(^Mxh4AZPafucE-}QF-RVVXMow{EP zo;68k<_Tnf^JudyEvCucRH8fohVZx_wuCx8JGKg;0G(G+6Gpc~tWEf~BGAX_nTR?p;`>b#BsDCo~=TcA?UCR)XC(C#_ zeTxtnF=TvGOAwWk?M_^i`I?kn;Xf_y54aXpWAcO9W|4We?Jc3{)opcx@98gpVh1aT zuq^7C(q!6`TpOXj=bfC`y5T0sahQdvt1X|XYio;WI1wot2!}WyV3iMsc2(AWZ^F%1 zUKhg13B~8EEQZuYYf4u-M^^B5lL>R5VwqlGAEWCC@y6>fL-bS*%gPkq90ZCaV#Su# zOEDP?b{xxgbzgo``4Rk_uenYM%3@qzVR@Z^BO6Cnu&BtbWZzf!Ozp)dr6=dRC!Z?^ zC)njHawxpxQ<_!A^4MO~4Me!{=FHdSg$`a1X-b!T6Jxt)qWW%l$4@e0tl-VeIeYVT zjTEAHL64&NbuIMk3V3s%cPeXQJ;9@KcXGz5_w{Pv-y(?Eg0q1Q$G;c5_`|n*KQ=+K z?bO#x?`>I3FAaVpbR`ByftE)B}maV``0# zS3TtbXR{wz;EY!E@{X zIt&UITt7mpRIWy)4!v9(FKx3Kg1`0Kfv9O}WJ*1(p>~k4}Kq@n{KcqL*aA-fUp`2E$fx0O_o@Qs?s? z`Z;X{G3qUyrGGjEPb*UO^?GYeWI5{&)zJ3>e-6`&N4~7 zt?^?W`CF~&!h|!k4F?bA?f7S^*Kq&gEf5J*~6T@?w-*QUO6ExNwgIjpm;1=()(ho^7yUdtw8{v;;rei zb;_AvK$G09Mu2Ha7$p+j);*v}K1ig;E}%)d6K_l8ShPHhzGtPpmtrgM zc>B{?^6~bUv(Nxq5!dy2ikyhrQ5dwVr9K}TfKArI9p+J{lr_- z$J?oA6akEKx1Gl_ac7FhGD&Bw$1(|LCIO6!x4r?za<}RM#R|7>0l?TZ(STxk48$Zk z8$q#kG#kONMLGLHK8UlYcQ%4#D`z%>dTZzu`bS*z52t z6r3BqJ?eD4<>yOp$k$a}m6Cg|s7EWdryC#vp-whg*wkRa`6%=j)V+7nG!ki(ur%e(=2)+cxZ&7bP2S^iL!2fxTImy&1}u1!d3T zWBVN~_no+|LqXX|@5j05K|y9&%fcoe0!!j2t=Q!kp^JhgVzPL4tr-5-Z#2a<3*wU( zzLM(cuel4MuTTFs0mDHqk0+$z6p3sJ$WHHb_wbsv3&UyxSL?JDwAmF?fFZ8>DO+-IaKgCI4^I<*UR`Y{hw7kI;fJC3__t>Mu_58|kYB zT`|SB7{ampAvmtq< zXN+j1r+T_0<}UC%&DSxuhtDqb=IJQ4 z_`W5tlVt#w6c9A63V3H&KK^8Hoi07Vl;eCG9Ox6_bfkVP*HHH^ApNpmgq_`&>uq{G zt53X^)`&5$FHd7x{BQnGpilprU+{H!YpEKWY3w3o=m+yZCA#k_SsIaY!pic*sVSF+ zg?s}wr3f${04B86M_;=jCDFZ%5)+WyRl{-bBcd&ZW4bVG)|JO`_{%--TVlPNJwszv zJQgOPh@k%U04#ItWajmSdbLkUiYmRqkFN#tGBa015zbT^M|NYXoSd(n98#b9;>!~K zFqFwG$WS6?r(e7n*gNwsyC5m=zNF$KKDxx^O)cSO<0kt3u98v_sm^B>%JADs%^RzI z#7>V%1uKb)99|;_@^tl^xWncx9+#%fAGGE+{;}ZpH$(lEK;gZ%R@HLQ$qsp^gZqbS zSTV!W%h?`;y0I3N;1JeWAX2BnHd4sI8PpD`BK4`zqnJoFU2h?=_zi?VZL8E zL|lGD)$1H2`?HqSrM%dJLWA@;@3V}nZ%6Y7ABCoVJ+#8;n>-Q4k!i$#f>9Bj8vXSL)l_fApSc>OmOCv@*rmtiDsIc7(%YJ)# z%9*Zi&{Xn`ZQwsS<6kL?1w)e@F??G1v2n5qBw<`^V>{$QU$+@_nua|2rRdb~!)#N1 z8YF|Ul;vj{1B!Em-w|d0tgp6)H{GQ|wLB{#pytRD&DfI0p z<`Yg!T87iA7kb|0a{b0n2h?9B(9~IOlItTkdrEqPAs{uYVMAfgwyPjTXwI3dD-DvZr%lf1;X@-Uv~0 zXO!>AZ~W05rex=k8aFhWiE%|eL!;ItG0FX`__PmgCabHaZ#<=@>wYvB8{3tu{&xLC zY-38~+EDJx6wV^Tm6tL)*bpd88)I9$TX8Wz)irW_&E*pBU!b*%i zDjRwxZX5Kkh>KnosQh=gqbG~U*NM74E&fgf`t{+QZ$7#*v+vt^06n_)ejMaZ!jlo- zkf~Di-D@I_K_mEvpb1oKA5NmxrsSp1M_zVxd0J4ZwIdyXf(rQc^wv|6~j z$@cKbGD`)gs1hyTR9LRhI*0V^wLe2huE`^B|%#3FAyW`q9sdN~qdo+VL@atJ3$;SJ!V@o~1nWE1!2m z{efqw@Ug8K5~~-3$s7W=Dit@~4>Gq_XWkTlyG|KyCsb~^XXLm3qo38Th}@%F9eMXX z(O-?y)@!V))~ylo_sa637X1qEEMzFe#*u!t-F|EoU%p~@trA>(5|B`9WMd{Rqi5aH z)pBBxSuc+Kd?o}mVH%U%$QKe#%gQ~t!bYwgg^*0oaO3Yg&lpco|2~k+%c|wm|H9

#7oI z7g^*uR4je9Y46=kS^HFPpZnTbhnVb8m-`7x7|m54=it%hk)}xe|VbI zNTzEtgX#^+%p`0w69CxcyL5cet48-Kl$hL z=OJVnQm*lRUU|MLq7lc^TcP5cmDnK4C_Ix z7BfqL!lCCJcx^%X96vrRG2sx)ne51k9FORk!Bk{x_sdD1g4Ym=!t~XlKbGE+zUjsF zKa4E3CbM~*67~x`!8L6Rw$f$GVG!RQk{A?^}aIqhNeoFX_`oG>x*}>0a|6uPVF|XZrTO;)pZl z^OEM9Q+G$wr?(W?hjAnveRKl&`vo_Y@tKxjy2^#t7JQa_k@O}1hMTFMMd_(g0#Q8v z!e2q}^WEw~)mM7n`00>l2uqs2lJTCRLVi+;j3$i>uQlYaZ!>Veu5`k!X8W!c`XN_Y z*}j4jk2&gqODk8JIjzu;|0AG=gH{r|)V}?P`agoIJ9$8^vUQnu#&lV!Aupkuf^e7U zzT;7dZ>5n{rnFEeQ`uui8$hv`e4m0`ms0yWpPoZCmx&YcvRhe}sUU~+=lE29{3J&N z(-+97#rrtT5>F^XPG=Ai;F=;%Y9NqKpi%4Pysqpfv;WXKQpa6oz5YH^z)g+tck<*i zrObyr%zjX$?cx=;$J$Hzla(86ThthA-iYhAr>xhqC*8@kU>QF4tyML- z;`1NNh#jQ2$5qTUF?c7VUfwp;_vuG0H+4~Pvqywr8f1tLj@3G*I>1uV5m(rYi=Av- zEcj6m<@sIZ1Ued-WBJM1eXZ$IPC=rGwN;|NgsOwETf@%gMU@MMlg{LISi?lk+7RP6 znO403$+p`TTPy7fMZ3AlnSAQGo`wztX4&4&mKK21o$;TyQlQXVmM)=qlU(!9>hj_< z1}6p*E^^SsxxIYnx6hY}QP2FxWBfmWxVxxc11h4qGwfw znxeM$C(emE+NabJyWLSZ*E-*PW;iY68HfrAF_ZCqJIVJC;yXcyZPuOsT-PLpigg{e zmJoRQ^75YGn)j`$r+R~GVfXyW9|%n=C4^DZ5?M!hn6tHW ziq;G{q=8G8kG6<%SUg9uRc(KEhS^>LGEgkt&=nWwK81yU^T=5*?&mYAY!*kp;?n(D zS6I^DOaCL;zp1;CwpPV3JH_a6hqG5LNMW?N$8GM!y+yKgrJ#i&l(Ct=q%hQxboxp( z{5DY)Ydq}fbVdkVN#$q~>2?(7pHoa#_}YYO5>WY0WKt5!_-;_QxbSam%UZ~8LA7kP z8tK#Y*ujg#no-4a<>(HL*VoXuwkoe|2Y*7x@un`Eq1WVhyr~>M2IC^cIbHb$?>nWY zIsa690{@fx_JjU8_Ls$$86ta%bh3wtn9HO%$&c2N+rs`x*Z|H`n}K5T{A^{DwQ}jo zxaYT0t7d%*iT*yf=^RYM62h-1y!76it)3KsMgdBw01p(GnL1T~o@RzwefYp234QRQq^b)A}xGM1u$dLFY*!l=t$=G9(u zN!r%28Xp_l{W+KQN%0QB)zM5Mz~utaRD_ypg!1rAQFv%N-X`&gxU(}rf`mV~*x`Jz ze_Et_$CFL$8r-JeA)r>+yi4pYqyMW+U@fLQJ;SMa`0CPW?1bJ`V|esF*0N%;HN6MT ze5PNu{!%aXzcv?V%ydkA2*3mzXWy?_%#a6mf0*%3^5iY-_JHM9Ip*q%ZI#8$bF90V z+=W&i3DS|KhyaGre0PP3T7xwPn1g% zwGA*=7uXfX&cDDF`)Z$8^R#6_FtH`Pfj9h{KbNVRGOohkhbSqSQuZXvm1Q!i{97S= zSM6BVyta&20{*t!q0Qy-!EZ%%9fb(mHa@9|9GNY@8_%VhFl)uX92tyFY0UM%yzYK| zsLmijM8HZ%yf0Mj{E0z z-a07-&yV-_!;V4^zUMJJFHUW;e6V#QpW)_8xTNx&F)Z+tNahJQAVwq-;QP4Etw+TY zcUOL!7s_FEo>GiAm^Vs&w;WwdR~^jH&dms(l^|@yZz=ztp-inJNLbG#_U=+&B=&8U zd9ibwzR>h3?;E(Xc(o1J+Fu>@wmNTmmR_dL&A%||J`pcf<3icC{e>k+ zYQgsQl9V-_eCX@OpJx|F@3|zPHWhCr4^q-Zi#Qs?RgAdPLcCsbDqi*RuK0-KDTxd7 zD!5HbTdCD4CW=EB_DVPNTCdvLaSyk7D$g0mC=1cXO~3kcI~0`#JQNR`&6}R5j}}`L zNJ}y?`lbIEF-VodM)d!wG6CNuek5w!uPRgpe=mN0xJ)-mIPmKJ{bM8Vn52-92ZL-t z9v`Vs+-!SBIEj&QD;arkuI38xD5!GQYPWA!WXg{FqXw9=IJbQTf8vtbN@cF@$-j?2yR)CS~vM_ zzzqlx3RvF%E|YuTVCN7vMndo1JPuyL22NuGH?YyO*qyEV{;SyNYC=>YA*z+o%cUMC zfFVjMi*5<$BdO=5ZtLKcCwxswR!z|~VsOrrsqMnV{ zS@Sr$hY&?E*BwO`Tj#9?WI@UdEmhY?7tZ~LLk*uD9VDrDf`3Rs&s3K4MPHwU9bNs= zndrdsYzi-5=WF=}FsHKwxF{QnMC+40(^PBUReNtpsjaEVq-VfahnuckzRZ#0nR-`c zjWwBwSNQ_=f=`{jj_BsV(M}yTYEuxS$$jETTc;?}&KZGh zUMf`?Er)OJ?m#_>TL)L3Hyb=_G~33IN1API2)9UIFUZC%dZ!N7(@ohcv98R$jW9M{bEOk`bwSBNK`4CMdkf*sa@Yn{gp>c_JKFm&&tt~6Qefts>FJQJ==Gj` z*#aY`{750ZSnuLEyybDCx(Rz9H=E6TJ+a|}N8+7W| zI|D*t)81onBk%T7uqxyxQg-%jC^&rVL|Wm7Vc|Gw_A)3gQKwq9AS)&RaHOOQm%bn9 z;*OxEiEJc%#K%+ullk|#xx2ok14iY$rp3$CJv}Py&XmM+7^)&KrRvsE03GO0`OH|X|O{c(i<<`L42&; z4ZFx$<8?v+qxQoEF94i9<+w8qKR;&K4FaGGBtCLN&P#mZZy=hr{SVZU(pG;XMtz(h z$G8w#cA?ENsz^So*L6oSF<|YBMgU(0>XIKx@^wQEgj37NDTFlc`B^j$ccw{F2H2=v z^4JAaCYTEKky@3a5?~X{o9-YqD6^=^rK?56UkpO)>L)b;7f?c*fyOeBHg*Vi_my6N zDb%W15UKCJLIOHxdWRl{TYVXmY(Q{-xwS>e4B-eMrH2-%wiWi^JfN|(a6hWXf6B5D z(*-0xKhonXbOaD&*su9NkOo~%jUt=wr3autE!Rr}cI0jbM&PMVi}oHQ@Q2!MZ|XCB zf`-Y2>e-&m|9oyN*Nb7^q>n;Ws82nzhXJmA+74aj3s+Q)Mb9bukq+iS%+}1^5}iH; z$4&NK2CX~8a7E$s<%@p?ND2^fdElNHpjZwe4KVGvWU%dOp}yyW#LgbT4FTY<_r5p~ zm-K=l!SEIuQvf<`bjbrioJO~8AN+a_gUpNwy032v9*JC_-$A0;iXi}S%C3!2xY*JI z{g|6HG9E^}@N}5mVWcyyU_(eM=aN%Es`&V$17d8k5wmzu=>i2nM;)%{f%wX9{MjHl zvpvGuFuwUOxx?_IT1KdIuodQVxUG&>+ z>$+PR5IS)b8V%58K?;DNl^-8dU_x%;GGp+l08~gi?5`^lJOt;%1xCZpU&@~IBj3@O z0-X`|L$c1nqRCf$RFTx5`(M{Nb_iLA?Qy+qF|Kin?x6=N+jC0%Lt!irWs%=8V7Vl zSeoAkSWG;*sk&es^9e+q{Ra{ehU|=@*|zrSLUe( za@IwnU;>M%S^zk2*9^d@aV4A&yAf`@q#lSmrW8W*4nbWI?@qeE!I;g(C}2yJIfSt+@HY(zoxZ%` z4D#j(+5QQ)UOev<2**AEC&K>Xfm2~iZD-Oy;f2F!2LQSVfux7{yGmnFIBD1Zh;&$e z9EuwN&iHqLA>C>u&_dx{4Guu(VEk!FD)n~i{RIJt+X4=B38tUU@uq5=>D>_ue=&X} z4gr=0iY$K^$(ifZv=!H;EGLDi8usBp#7K)Hs8QrM=W?L>uoD;nob!fZ1kQ7^;|l;5 z?u*92Y!(nxj)=Wss1~SKji?(?taut-3}ba=n05$O#XOH-+0X%8K_o{WC8oxo(Qsmj zJeiZ7O27_#`KTYL{vjp{fc|o9357Q=rgr+@8HSxZAd1zzB&lTbFVP+S{URRQF?GTA8DV@)A7pviPE3MRQ2k_w}B zrCVN~#S=nef4$=Evud01Y%6Vzh8^jJSy0JDAwrU2if%}BI_xCk%ohY!x$4yYOwOos zhqL}`kD8(CPB0NxtcSvopgEUf{K!PW_hD`Nh>^yLi7cl1NDb_h%NobqV$rm~1? z97xvmMJ>QaEqula)4cTNaZ|L45-OB zwBv+epfP3S567BAe}MtZBH#UltI&Ac2!!K~|Fr?2<7a4P`NIX+$L&7`XiLm<0q@y7r(RC^(#a1=1~v>@I-S z$D^94&)6jDsZks^4}pEw<}S-Z;R!8|GjK@T%q9fh6bIcAM82UGVQ@fX2%mQd^wEzW zVS#cMdYUnqX;_>XRpj#va50Rah7r?`@{Ys20cg%b7t{zmF&?_t*Z*aV)8c}=7ThDy zSG3Gd452qV$AFkh0nYqL>>+=uBGpIZpYSy{bT>d&;p$#thI5Y3A((OZiUow0+bhk6 z>82H6tcid8uOA2lqBc>>^4R(T4 za!TD8DbW)TyHG;gfq<%aKq&m>954rVa!v|rVwSKG=#w6Yse-&&BR2~h5ZZ01AQyz9 zk_#1t*ig0#qoy$at`J5!-<3B7KXpYq@>_1XOxp%aH)y^C5Pwa>r$#+%;Pj`qR>ugY zfp!#vsUflzH>FW9udf^A02?{K;7?cTe!*X1=V^52xUpXIKtd$*Bsk^%!W&Sm6^_b> z5zqHLl0r0HALIYNs-;Y+IN7e#rSw2a#?9b@R%XR>r{F=gHqJufgyTogKs#D{bx9ZH z+mq-CQ1K5!*-k;Ecsp7LRPPUQHfic%1kO}#%dRdy$Uqn?W~6??!Rd4Z_L$cX14?X9 zwO{w|>{1?D^M-B$&SK7}!jCjN$r%UiXy0Hik2{w;34eByqYOA#3+MaoegJ$j-Wq=Z zE%gn8=>s&P4r90Q>*VUXOL))<(3p_subpB3F3GcKfF z;Wf8W&D;0JUumB8zpt$+VGFd2=$G?wd|^2GnSho8OHT|xMw8<0cY?RgY&nZrMtu0o z7C-7HPDbQ`Hey zdUtk7KVlCgx$(6ThUa%D81}G;l806~!-n8dPB0|%T0U}C)iUyEbrBr#={iRM6|#LN zdN2k^N4bKo`u=kkM%`LD@Dd}V)!w0VFp<(uih<8i^`0kUCKjhr_oQWu-~!jnj{|bD zeRp-H*Y{cA^(rJ}p%N$o3AqbYx&8+hlg6iFKX+!mM{MaH+zJ(Vbgf~KSsVOuZ{894 z$Z-{qJLP&>RL4AVuj%YN{1o}ZvdmZk5^c%ZWB&@E1nbPk&Uh7)Vi(8_2??>9R&$@` zg1YMNd$%2?=<2Gzuo5n&qJeRbM>0@`YhoRyJ8t@c6 zCg+?`tk3AsBY_$K7PyJ&S6wit$pJfB&Y|iK_~!wL?5tz=AhhScU&80~B0D(;~ zR1{A9xs@=o>SIl-t?h#bNd$v<$Y8AjWSf{K2k6sR+S?TJhWnC4&;1|6D$(PE)ZEDR zrS$f5o$~PqgZXoFGO~Y>yB?Qk#%4p?(D3PQoV-3pTVESQpoXhdXkV#j{REMiXDn&- zPlm`G!A5sHZe_5b_B(ccXiLJ6eI=Ibm>{p9TG3N89k&1GUaSHvHffi?e8*lM1niSyV@tt2XY{s$uW)dd~D|dMg(paIjP%dDS4+ z6Hb=tIiJTFNio9Xz`}g;O>VU9>8iZ06*sn6QV!K=u)ueq9H~k4pA&X=<18lzy~Cqg zulIfY?~kZOyF7#ITts(S+L_;}uXK*eiF_`wT`~ za@q~6#8jh=psvpagV_${w=@R@b+y}Fd@vdkP8TW^ZiaQ%`*=$=p6txIfBwg1-tgyw z1liV*W*2!0Fg-%EHv&i&{6z|!(^E|fEa}f0+V8qBEG8QzbFCTP4bz=dMBw0hohE0Z z1eUC^$W2*Sjd)R}xEb2KKD|?$^PrsEtI|vzB_ooa#V-qvlHKese3&cy(H3~__v_!e z-^6=B)ZeMi#z7Z{P|p|C_}GmO_V)6V&VK|+8Hy4e+mk#R#iFNQdLE_t%Tkvz64-r@ z1Wt8Q>x8-|--)d=X2BQ-8G0;0sq*4xAmC@81OOUfcjxocpKj<9@|6nmG<{BR_rIS? z)V}s?iYoT}yBX>4lgNImNhVEYk#s)4{>PJ+9y~_QV!+HA@A{uuwXm=<8Hdr9r<94^C|S|BFG1dW5dht<;(Pe%6&^P26^<-N`=$TcV|>0#7KyZZ zyWkbBl~np?^foPg_ezm-OL$L^)|aR~(tWif*9TQ_ov0s7xgoF#Jlo z6C#p*t{lrKVR*JxUv%9c;4oImL|E;2}6JBp2$zCJ7m8>X2 zAqd0OL6W_4f(zjq2j?Rb zMzNI2y(?kwxeagmDxGj5>rb9Cj67|Y%?7J=x?8!{obZX&gVksxz_w48BS~C&{TsQd zp7fm1Qzj1!7duvJ(Y|fzY3rb& zZ|-WCQVlXaED!TJ-F)36{ksU`tV0WJMZ1HB2QFueC?uyNzH<~lm{0Q-JB#pb>6-cd z<9b+l3>=zzasBB%K|@r};E}xO0U(S3de3Zteojw?*)aA3m=ojTRJrE2bS>-YwYDAH zlH9$&%60ga7nFi?0!jgQZ}dBiZJmWAZd##E20X?LZokuO2Ih~xELuNn{irGXF!add zgv|H%q5MfZF81=Oko}U^Kh=D9pwxbBzP8b;_G|{Yg)nt7Hw`NHSHc`~=#P3$C2#`Q zm<1)FII1SU0<6M0=keS9E4!p^!CmN-r}i;E;+gSOTV8cbRZM0dM3QUYPbH*P1q)hz z-#A=q;8{Om>BwsnX>XDJzAmnaS8rL54!8nvKHQWCf+93O5ykOc8pg zr<$DyWoDa8AA(f0aDM;W|LOgq^qsAMs2$CLu(rIp=Qxt{pHV=o2}x^5m2?UhMP{b< zE2p^3HLqtGaXr5|7Mwdq7L|sneEVBi$pq3#rrToN?s2|(@9YuaOB~^=U$fbIpF2XA?RHq572&=hT;SGH zKs#Y)QpcmBY;L7wHZ_y0lEiwrIQ4Eq`%{N?$Z;cPY<+~#xOBpN(1`0jBR)@~jpO_E zM2hdv@@fSZFlub;6uB1(RAsR2mhYq54WjP?GcG6=lsP-}U7H1}HuPF)oD4-Jvh1qj z8t&uR9T!q+or!eBXy^p?Hr%faOlU+h9NXoc_DwqdD%Q;ORTgDjq^8QW> zbpoBRI@>HxRIELdz*^wtbn3-o^w!$o0{i)F@aAS;3(;?WB#=Soc9{8TZ}3cfoQ%!B zJV!UR_0P|xbr>y{Geih}xfg!A^V3KD2yIQvO^q!B&+}!kRTy%hifp!PA1~W~u|uI$ zf1^T+{7BnZ4Hp3!=e^gs2umR2?CTla?+ZKYA0RSrIs@D|+YfVgE^o z)u$PqP)mKvw+#8n=+{8XJere8u1OAH3gKDj;L-Xo%JpB%oDeRYKa1DRzcV~vjV7o1 zC3HrJyY(-qh}jHjeM+l*)#AX?kW<3`(lSza&`jh4(h5%Ai*RIC$5bAQp;{Se0 zlw6*QzKSe|^`xL0Xc|wMyykqi4hJ7F-c5ADg<|nOHLw*n_B-xZ4{tIN5jVY)VQDL? zL?JT|`hbiP;?u6GV~?=e{sph6>%+ z0d3mSA=NaEx94Dy%`%5|>cJb7_D2{`WW^OvrZ9VOcT)$G~H;seXGKmebR4QzF;#6R>Ul>ebj*9xFeuRkzr-$ z^Pb+ve&0?LW?aZyVRJdhmUVM;4+q$^7O#l~B}n5_ygZavmQZz|Q;F+93)avuu+z0r z9Ew==CsZ|~Z)_ppZRh9`Gr|X92@^6H{{-elE%L0*0#>eU%JX zIvT4Pu5`t%;yBfN1H<=Fy|*x2{oT#*5Yhh~!_SDKYaZ~W)Q_(*{4=WeeTJ*&*3TKP z_N}iOu5`Tp#PEIen+LVdDLh$?ABN8$J_j)TC89fu;fE=HCc_^h`q>P>kocL+@Y{(0 zQii*ze`^`upZHnM@S7-pEyLCNcniao4X%3`{vE|1WBAp?&+`l)M*RGN;h#{w`x&lu zy?@T|$4L(VWcV|LA7^+A;fYQwu5{q_WccfZ4`KKb;&Uv+f291G3|~Ow#K-W*DPF|z zYNE4%;X|q3Du&M?{6U6yrt!0t;fci0vkX@{P4_bVNf|XhV)%BY`+(u<9P%y0W7Kbo zTvq%viuY!?vVk##;p!Xui431ecoxHz4(vRJ&nG$0WB4KByPV-!)UL%0SM%yph9{Cd zuVuK4=&xn?aBA<(48ND~4Ge#d=-kclrzrmxhF?o^c!c5i5uZ;o{4S+Sn&B-Jf0^N* zDBUp(_YglHF#I9n=ODwcr~I8`toX;&-V}x_UB9O>d?e8w#PIvod79zx6P?ivFQayi zXLv2;Ka=6={6CH1>ZUK7;U7@`0){_Ka+t$#WjpOcPG9L(WB9AYXBET0qIT6YTt%jkQ~}ETs=P~GW-@b&KX`vcnZUn4&c)m-izXc7=DSm7ht&3 z?LC^|>Nm0DdAkTdli~lS@ivX&iR!tA;mRgk9>b5QeURZRNe<_6{)wLj48Mu`shr^l zD1Q~h=Mi4V@C%8bWegue@hcdvZ0@aO_&e0zYZD;%AY3dNcfD;&TYY&mg&_F+834pUQA$DH}5SN!c~xU&8EiN+5MS@oXH;kM>~jK;Il<;tJyPhiOp! zhQCDo&1Jaaf1$x|G0^tBvc&fSplrF|kSR&7Brwbs1HiciR3t-|TYxz^v1yD=%4`Us}^H$l^ zUopvA&#CGHP`ZvXc zehVmms=5H?(#JIF9;u5>c{^PIK9BUvPB4D$bO9V7{!gR}U=;nb-}?K1dtCtOW5$jd zlYVNt04DZ`tgad4E^{o!l4|_GefAm(Hy7>PFh4&fq zo&dss6#w6%@Y~}5I~0Cb{C|(a`^kTweE2rz&lLVZ{QnDuKNSBzqVNIoKNkN#q41}M zv^5Li&&mI*`2Pik;TPA3DEv1=erp5aFU9}AQ}`?L|6xe`v=D}O2mhq-H{$=lDEzG< z-`hg?JMxc;|KC&i2SeUBK=>H>@V?<^3gbs>4jG2Q?xe7b{1}J4N5%68`Ed^UJ7Wm9 zCm-}kCQuljyE{<0qi~WaoGhG96ozjUx=^?)`Q6CxE}R||P9Y!eWO`A!w{ZGU7~bKY zM&W+K@ld$GL%t7z@Ic`VqA+}8G=#!Kg)@x8!yWQD4ZF z3eO}TY}kSA%lcSX|h+_g!=i#H|>pT9L}c(5gD_~Ly@!y67H4PSm_t*INs z;|ni8=xg#G^sQlzMFqk<^68IZ<6=u z@&PIy-c6boq)LY=f+eXzBNhR(=2}tn7GJnwBT&v=yV|>f>C&)jd4MxQD=iPtL+*&e z2vIIlDkB+6Hs!W#cVg1(zNQW`(;LV4S!pLmqrJ!bWISdm-l*%Xh@z>Z$-A*>MeWoP30eguc_c@3?)-a%rB>BGILcwe+pvD^EE1JjzkYjxR%y?a+I zf5HfjvkseH_QM9W2EBKD-=P()#@dKzh5l!|sM%q5(NO53v!RRTv_*75TZvh1B@Pi4 zZHM-rfG0STAWx2l^b_@AQ}J4{qHNLTo~)+biL1H6Fq<9+P49Pj@_*K}xD(b1J@RbZ zS)we@7`HCZOh3=4!^3=yKR80}$gnhr=YBDANyU)=r{l*p%};*cRbS36fK1PAdla|M zt>~@a@~BmB(?QVN^r`@14R5ujtU3UtnpYWHHBCy*t1=+kgtRPckxU4$ItU3((lfbT zwJ$2VA8S}IJ((v$a%D@>%9WDzzDJodr&ULI_4;h2)Kwm2b=6TB8wRmGt40gYg+V(U>fbcVeQ5Nrg z<9pB-{vqu2HSUTLt%D}Xtj)4@Si+>UTMa{VLz6;^GIj-*STssf6Al{OvSdq|pW3${ zYH7w=8ozWG(iuP=0K`!MwaZx*X*IqiW&)NEuUd;tlDyj92ZQ}u4EJFJrdChNh-WX(D3^@U$#oqM=P6wD;u%|J9 z)SgbX>1ik*UbXRB>}e!+qMpV~vZo)zo?ctZdwQ*Gr>FG4+tX;RIQmI@l}}db(?zQt zGuF#=estWk>P%CnXPPptl`=gbXOGWTrgpQZ7G>IkT_TC0xDLpPvGrQ3xSH12o>=V7 z>#^8>U#2J2J?DpaC!VUx#g!q?;HolDU9hCIB3LHhM^#pPf@4Z*0~ICJWmQ4^O%DEg zaoF&9qbyijQ>GNEl{ZvXc@{R5mj~`K61_#x9|PhO3uFf-3%5?fj+`Yu!< zsANy~1eaCThw9@`mMaX#YW1o?hR|ACsp=4-?vZn~&Qo4fXPp^S zf%B951N{%ExUr(HreRTqr>>+L$Bs%bSyC0MU;4kSsv|7NBm4H}DP-mlPhNM=ehV=RH1O53Pf3P|fg&d_8SED3Q?PPV7 zY9R%Fs2!C*eTKKL&XU?zeR@W-KG`0vIcl7+YNAbbEnk%SqLeUeU4qIGCQlCJ!msbE zs%lCDmDTXGM0wvAUVhXUZa5+~iX-#I#&G|uwo%RvZO11^ib#$jv#gf9M)v3+6_G!Kw;!izLpBqu}bVRN3etG*qC563{l{1@Ax zVp{_o2au}IEq!*I)ryr_+$q(g$NBl{$_f9~IuQ4w{6t`XdKn`yb9e#gnC1X&enm1d^jjvK#y~BW)DEi<#VrBD4bj{^$(iB8^O9Yu>Ak#If0`zEe-4t4K z8&W^HezZ2RDc5ecwk4xxA>fl04$gd>_XUF7Ho?eN!N?YNr69bFljzd-*E=acC zA0@4XPf89o>OI!De6P_kkjqz5F#85~4r}9b_sY)V+=&s8tHY`v?3UL8vAoXLc1N|o zL|Gx{TVJh)8xBMp?l3R~5QR@LCG?Eslqte$Gt>UA++h1iX zb6b1!%9e(nHbOk?XtigWXTjnlQTF%9Zp6=!fHtO$a zr}>&(z9zq*=J18j6)RAdSdsiGzHp|f?A(;KG_>0|^D4>vIIFrv8CK?(B}VJj zvh~;r=kBx44Yu;_q1WL1Vbg<0fe)jsgD04}Cy~pC4`WegjV(QWB{(td6E9sSMaeuR z`pieoqqLnLm1m42zMY@M%FXyFZs%=2MXt4MC1$Ve_8xagn>@KRR$jNR0d3tIv|hZT zty1ikVQpl5OpNyQC}(wxbqUqyCLHEJvVD?_lB$*62_ta3JeBVDh2M}cmLO&=XQEJl zxkGCiqMT7CMp?^XH61M$f+I;cwIn^=;#<{X-VmI`ns!R9hohkAJcPAZQ~z0;d{Ntk z(_b4(r*MB_lLINsA!B}zz;pgrR>fa%Hi-;a9zTWAA9W4k&v8di;z9i6Z>>~so!kw? zDJ`t0GT%?44Zn!fljI@Fp46u7c%MW@F3jRv;QSC98E5!7)aqH?Zl0Xlk{j*VWxs9i zlw0O5eB6A)cFSzzav|z@H_E90Z;W2MTH2->;ba@BLW=u^lQ1$Et-{ZI1zmpF$qwFV|sY}EA{@axw4 zP?>SMvE_2Zz}KBUeyZ*96MS)j--bB4d*L@VvmxAl=8e~ZB^?O*)?6olF==#%-whh) z8B!_nuf>1ot?+XrnV7E<;TJ@AnTd&kqFMt;WCQ|BFd$A_@mX4}@GFNC)(StLfuEbe zPf472vRWY#e$xTJ*N}-(YIPX#@S7k>{yd$5$0H0p7-8UED+BO51o(aNrBKIK#sDOO zLg<^#L}cJz#Q+4{W=F)sZ!S=0S$9vo^sD2$OJ?E{vYqsU`|fVkt#(jk{tD=JfuD8B zl=hh76gfLMDaHBab!KurCWF?;GgPvpCzQSlUm12!!1SrsG$S6=mr0ql&$&b-mP5FG z4k8yp=6*6?o>Tq=(`cU$*&M3SGmnYbL{x(IYpkd}9^vkTqNi*1G&)s1j@j?4dK{>9 z!tqDQ?3ekT7U4!D>VS#Ql`KX8_V~06FA>(^y@`o{IGHR-G9Ck^aA~LxeN)N!~CE$ht>?q3g zjImT8vs`9oNsEyhc{D1rlB=*1P_lErN|vKZCa=Wgni#3~MwSMG#wsajwET=y>_(A( zTa1znT8T`7)xfw6$~j)%4}{;5GNW0le!*p?Cc(^wus%Z{4lv-S7;0H@=PDO-ImMpLip9 zHxEGXmQ?g^Ekf_MOVPW1J$iSvpts@A=-v4>dK)|61m31p^zP0^@7@~p?!O+r-#&@n zLvN$^$Uo5A8owUA$3~;~_&Ml3QHI`=SD^RQt>``dIC{UUzZtx3tI>Pre)P8QMsLUG z=slZ!3wY0+j@}FZhqvzli|Xk5-@B}^tQ`w$1ysO>C>Bsa1q;|wP{EFhz4zX0VvQP& z-DvE_8q_5A-V)PekH!`?8hh9OIcMr!*7tq?@AG}%KF`jbdw#z;bEe*zJNMqHM~4HQ z=x}f%9S(g#hr>tcaO652j=rM9vHT10aJ&i~PPCxI$zgOjHJc8n*V5t4Q968goetky zKf}XWe>lYCw;MI+=xwy2qr(_QN2h`I#N;nvVCKZ+FKq0fV}S91j)6Q}5Dynj;aCm0 zg@)4ay&Z9%raymqB zphL9;qExR!hu9Pn*62!yngi%iYcw6=vJoXdA06rxqeI#`&c6J74pdjr*c}W474Sys1GePy7>}3jG0V_Nss9;HRn=1Oe;l)>DB2l zqbVI`cB8}WxpbJjnGT;Gp~Gi?&|%?gIxH%%3=c~p>9D*N9ai?H!xzKpuzETj)@-7~ z+S7Dccb5(ujOBRP7(j=Ac9LaJ+mFP*?^S2OVC2Ooumz@ld$^+u3;N z@c9Znq-Fjb51oqAp>qTsx-_Ii*N$}PHk1zCXVRg^7CQ7iONYL9=+H0wN<0iGLx+J4 z=`g4_9fnM#!_Y-^7`28D<9E|x!gq9-c$*HBU(sPo&Q*B$xDp+v$IxMBvsI$F{leaP z^Y3k7Lm&^<9s$qC4P_&);EVB7sMP)F8>HA?iUDGsyb3$i8PtQKrl~~ocjQlW@S%u* zmi(Rlv*wS*2d_H&XU<>IA(RJ{8Rg&?=>Yn|t1%c=PN%x#XzAdCfq=3|Gc5gyQY69C zfjh*qPiPit;rSVXbourwJGQvR@-eHOUhN&bL{xUK8@V#`i@Db=s+@FD_QDsGEf0bA z9AhS68U^>dOKxT^HCTmaV=1qlMz_rT;~QSPjX%VWlU`qI{%^=Xohf7Ac*OqNHF>99|T zjjve-kIXD8o!77LvapX(^ErcCuOW&$$~FPQ`O%ib9`q2o7yG!S5e)JW_*;A9mjdVm z7hZ7$4Fo|PAjWWo)FWgp2vQN5j7asi4SQN}JVY4lKphs76%I63nvy*mnDWj$gDKlU zbwk!5C63}Fh!V=`rGR?U=!XbM(a7gM4^UIYHtFI-L8 z0D{(l7+YOU*$INdi0m<&Vil%fJSJ0eXOpH}uvN;5xk8^&^g|orfVjnjHG{i0Oi3~F zKeAyRv$B)NwnzwRb)3&8YTbP@=K${KnH?$({H=%3B$}ysJtx#^_=7wMu@i{V<}F?? z85RlRrUEjs9vD~x2BzKk9_jQ(g4cVZpTT_U1@xgJCZnk0ux|^Ky`KQS#>6o&ENd`~ z?WNfJfq7Q4fB8xfnWfo?XuSc1r;>C*sN^K}eMGARaxi}m6X_R~=Dds)3WO>-M4GRv z1h9`LVkTG<0Z$Q%I2@2kv z*}WPVS0D=`e#2c7X0c0V6XQCZ*?AeZFs}C#dEDA~*H2t?+Y-4T1TF%9>u>mZnAuDL z`zm@kh+_q0T)Ql*d}o5+K)PB0+zu(X722K9e*hf<$S4=IH=&O~@F^gRWy}m6L@3sq z9f0hUk<&c}cP+})xG)@U`k^_zg0Hap<2V34Grx6f7nQ7Ikk)S<$O4Mz&pz3i*_2wyTjj_j+W^c?JXdf2#9e&A?%`k3Lz;Oxz!yZjHk@<;nQ`P$`e%B&P*M_#$L1ToUYbgW8L} z;#~qRQ2Bx74}WW6{2&?w=_UM70K)-@Mz92etT;TVgRTf@Q$SkEpbYgQG!oGMfDDyk zW${=XICA27dB&?WR6sv8+v3rZ6#VFQs+64W{^W&8bgauSD#tmmKO%+yq8BEP`7e2e z?iBtjUXP-{K=QMX-5T#fK_u9b%s{~td_)UtCZd&ygmq8 z1KdGsXXrnKHUYtKK*l1Pj3{ewezd+b52VYb>NW~4Meq)Q_L*U(JDlK-Aova7Ym!1O zmT9O#lxF~W78Gzt$&uB}7r-KdU{#k`s@#q#`L!9@@xuS@jOxO&kNmeqct{ z1eon5yZ0`)GqS-zm@G*HcX5^G8QEeWY&4U4t2FZ&*#RJ&E+o=Ce3!+|jO+&BcZH&i zGcp^LgQKv>(F`-Pq5zdBY!0o>$YKGCcL}Y{$Wj67>=Ig=k&OXpk_>I`v`5AL7c;VQ z1@#$OZa?Vi_5@nYGqQIO*Gq`>Jw|NXZPDU0>B0&sr$J}^K^1EMSJNO=;cgm)g)62( zJqoI6&@cXK8g$-YO@prZt7*`6e>DwCspC2gIshp=27l{VRWp{+dPAsDD`cQUA}79P3aBI~xAh^C}P7s6P>;^Wp!wK#e~Xg^l_v1N1fg zPfAMdB7&!n`Y(g@FUfh<^nW!Q)u?|DWLremBL7E)rj7c?7Rxy5zXr_P@VDMnxx+^N zZ;E0^kJtBI?neCu01A?@n^FJ&Xy!RE)8wc>Bv6g|vEn)A6w5g3{}yD&(7;D%;EVsm zMlz|GHtOF6w)*`9F}RHSTY@|l{?-b3h0#a-Wk4`I5XX=TVWa-)Aee_pZA9FR>@gmb zDPe)y$i8)u%gFxd1ecM02;|Ze2=WRI>w}SKBm43I<^&bK@V5>^P#@V>1~e3qia{c% zKC-U{XahhJWms7RP_}{E$o|J*$S*WojqGp6Ya@G1qGNoJ`_cS}-7X{e13)~6agM_{ zO(Xb=AigCaV~WE02>wkFj${NrL#2p~;OBzC58yySF^%9Cf*=}@8i+1OR3E`N2Wfk$ zdbNVt2!0SiW6iKWg5L;&&j4N}DH%ray8t>a;f=dZEtD#wqkWLP5g2OJFAh^O3SZ8^ z8_jmMhFIP>dRc0&NCoKw%tG+Dp2oXt8qD@hE(cJ!fZg7AvpDdEBkh{$Rof79cT6L% z!5zL}m&5yP#}bh1U2$(vwhylNugGPqx!%9gBXCrR-fa6v;{e!l8tu7^D}X<)5{2wt zmf=?cyC?DAk`J-@t9nc46MwYfsg>_AZb(rb=`N4tq0C7J*?;ty6szf3+gtAkV zTwzF>--60o$XOC14D|N)An@l0&;K4ooyFxy(JbV>;t-*Diw|ZOc5K zfVv<~KuyW0gdy}fT%#jMdke(qpkUfb)))`a3<0z9Z9?!=g4c*URC%7(k%{W(I!3iYW6C zqX_`iA!Z&b@2%18oH>%h;d+rAW{+1m@LmF2rY|}OFURI|joU@H|@C^(!%JDawnp4|~eRfw9PX>=B~sG5Xo`faPbg?Rcw^GP2kXtN}*# zwr#tz2XMvra!4$@8?6?&G_NXb2#8_b2uDh2fSHmF(UBx3ClD4i68Ux z$2siPjX`)PheplzvPMl@cw$J5F*O8xaXLAERECH(R$?01Nev=7*-1?U$1eWtq`uJ? zkg{FqWFK|@Ow~a&gc4~#jTvM(UW!!P&tS?}RkDAF1#39+mJ#6hn30AfxQs}~d3^H1 z5h2h2!euj-lJW+w2N>+6f-yjyR5He>lL%uPo=~CM8_7al1}fLX-#P;CQ4Nx}y6lOP zauDF-g2K_}>=73b`~k>KM5imX1)-?yT^a0-I7%7FItP0vq7(usM8bnyIBdBp2JpC0 za|EAJpSJ)6Z2{>PD(t7gj55R!lyLx05frX^2o3lagLI>eeknS%2NvTjAkKck&zd>Z zy)sT`;#>#(jx>=W?D?*DAT3f>gm!atfZa7%h2iM7gPpAc8b$-9E#JP{ry8(5oq~i*d+c0FH{TyXwI!Zr> zFq_JmGK6tX83Em`cH39+F$$40{nwL)Bn_LR{d?1Y@sg)CQ=&3!GgkPXnmC z3!Ix^>_UwR0Da^F7f_*B0<_Kr_EYddfR4MsMHPG%pnC#lJrLsrD^8{ga2cr}INvHg zrHIoLjVu9pg$kywl9f=H;xqs}+00>jDiLQGa{2;3qJqgDrYBl)<^jIEf*YG-6=yf# zhuv}ND9$CoZ@c3(AP(N~FpP>g^D$>%GQkHikUu~{5@rpe6~RU%h-+6AsXeHIvkgh9 zO1A~Po8)LYyD*cind1SUQPEBAug@e)Xbs@o+;L8_g@%sIQAp$fHbg@UIZD~qe(5sW1Rua zl^yH?fba#IxN5u~4lQ zfK?~j|mu$S;>!mbN5qAUWge1})J{qyHmyG`! zke+8umL7k!WE(jmAQK`4yPYbfM^?$H0C+XYNmQI?s!K@*yhDVW%D6|xH3INyrnp#y ztPI&r7-Izx)(8@ZUNh)h5Fd-sQ^p53#pxEw1%U3FV14-1m^kkN&tBQY(S}bsiBlBt z@@CF=Xv_cRBM>G)NuO^geB5VL+&CX-j}>qBu_X zz*_5gAs(T~I>o^IAJaA)ab`&z*}4ukc0|E?MEdNM$O}Ty;KLGOI&TtkJ4$xFj%3`f?gLeSfRU9_XH z6!gL8A`M5V6!gW%=?zD9Dd3#)yMfMKWHUuOn4+xJEEZ=qL4T<5 zoeU2FEJEVXRc!SAPNP0R%_U6gsr}mM+f7DyfQFm2>zp5mGZXM-rWkb2RpM+1{71>5 ziKM%fu^{x$lW`O1&#Ia7LF4>Q97lENuBvCutGn{LYh&MvHYxzCPW6liXiQJWYy+$z zZkS4OTcT$p`dgG5p8$VJbyFcQl8;8(350{yO(j9Y3!A?pT>$*1DRRy!P8_U)#(Tgs z#Q?`cKAd0+mA96R!T=R>fh!P9$%qE1h6`L-!L0yl?*i8#xIe zg#ayg37w$e-2m;AFioLsDN6b809}^K8Qflleh$!E7v-H4oHrJRK(S_+&AsqWsZkN2 z>aikcy%i^3aZ&*9C^^{`r>j*OITG;cl0z|T%6co}Y9OVXiP`1DD7G1FK6VNSzs9;L zZ(k3o=mFrbOo}+CpyK4J0pp(;Jsou zsaWJ8t3m+arE78(I%l2Ajaq;wxZ|V~hi0c;0UzKluCIwhv(xE-FL0;lG;s=`bSvQB zy3=!3aee{(56KCj29i3!V!Na$F97zaWl}?wt3(M#N&$d_YPqrIFO~9YfY+*J&fxnB zZUaz97x=k?M*=iO#;{V=G`8SRoE3m?bZ3QwI3FYD2;gUBVl+K@h%+BKe*yl)U0nGT zCu?oE{?#^dSkF;R#Z?aQsM@Bu7$;QeX$p9|+HT@1uQ)>ipWu!YDW6<1mH@u8wmJJ^ z6#Okf2PMp#6}wCP8;Gw-E9ub|h9@!nIbw09R4}|P!+ilOV#XJUg&*ku0I4oe?djN; zGx!t)XGpbCf-^qy;2e-VH1>4di57#e3OLmhOQ@;wa1DNqk14rZLj7!)>k{f-FyaIn zf{%3=_y~r13H35ye@VQJe9nL`q2d!A21J=9UQkvyvzV7qkx~rcP)XU36nzP`20#rZ zi~(GhP|L7Ypp=^l}m8AmGL!gv_rX|KP z0L_x{HWval0q|XEzrMuy9;Dgpi|EgylVORm zDB$JIoD55haey}v9MckGDo7{F&>vg~{1wBQmlzkp=?baSw8WSW;w$y_O#L^SO-qbV zAmn=)`l7=55@T+d^!YW=6Kq~$tN>We26}is628Qk0)(z6C5&WRVjKm8sgk7Oe2H-> zV7nS*Oy@P1IQbIe8KB;ibbQ>^Z5Vxt@is~`HH0?a(3Bzi5+iX+0A8V?DO2<%M&dL8 zJh`DBzj=wVCtyPa?q-Q`I$#TA_}eNDw#1kYjo;V`_)ftwEioQK_$)xbHWXD|Ut*-t z4*+^9L+eY76gpcYizRm>5n5kjBsc`1@-Fau1=k0ti3`k@7^xJx1Ju_A)|MDQ0%(>C z%$69jS2WfEwAlsDu9P1K=sOpfEiqyjYTN?oZx^_L3hkKy7n=k#?5E&BfJ(W*MHO5V zphf~_J&?Y{NSrQ!_m`aeN)KCNJc~w71AKmhsjJkN7>Tn5@NdiCE+4c0+`kCmL0iZe)Y76QKBq{rA$R}$G0;}h&h4gu-+CVCNMV6!Dg zjK}&An4XCrV4Id03jnKBqN(#esY-}1F;)jc(~Km&CNx#1_5$W8Gy923JX>PKLbc8Z z(nd284b-#hd&NEi%=40ca<>~cTVkY)eGE*GB*CU7My-@4Dq=w(m6k+WV$_IiiIL*3 z1*8^98Iq;PA1&ENe_)Q1>_e)Q*b*ag<^%q@nZnwke1e2LKy#3h^RDKjlGRt2b`3C_60*dFkHW=@7B#z}yGYUaE`TmCoS zx4`L#X^C-eGxHK-0XPqUzqLM^qAxL41Zj1FWL#oQ0;sKkjV2gcTVhOx^Fe@)H8adh zjBLt?Ghw-qxV_njmKe`8b6H}{xY!ZhPA+!Dwv&q;f8tb@FLvO(#BjW7CKo$;k|1+) zx!8fPgBgy3QqULQR5ctSQqYeswT`M%(4Vf{jz&^2f+{6n>^P+Sqs}V-=u65!hN^;T zv12PJ+X;WG1wV_bFLs;)=?#Gxvzp^|9er8Q@jmNq+RE*#f}kxPcy}!bJ$|Xa=`aV4h?DDrA%M!_zCELCY$m> zXlRg|rkoTUK%66{j}fjU}g&;;_XIGO`=s!z71d)|B;D z#5q7(X(m=um5ncU>;l4}mTt9KSHQ2jiz}bvyaGH^TN6iL?4Y;`174!7DK34ngY?7#-k`0UxXLR|C&2r<<7kT= z9|1nAtvUO&#g26VZI-ZUvEwj^zn4~KT zde!i^W^y?Lhn4IRFGt^Dp!75LSjs?)(7NFgVA2uf9BuCdxeEGobP%*}+VL=R`s;!5 zj5(xXp5B#9t@w%N5Of(8#QV;)Zxb&Yr{NqfuSX#p0 zIDqk%1)u5RAB0DnV51mv^oM_zNgUa_4tAdl1-lVBcFAIX_y>*uNg~X|)s!y%(I}7h z{Lv^(AB%``g>lXkCsOA$L`f--G`fpC6~v%(%4Up2uDEQ16Tj<|@I+r_=>g(?@V92g zS4Z_#mPsI;EfC`zYSmX+RtQL}vS4gfZ=9ZWho?z@I|L z#DN0fX`<%i*(m=c;cajPypCxdg#D}cwwJU%R9Dw_;EzLk(&vOLg0k;H^b2Z^#Ml@( z7+tjd9srLJtgXP|=%OO;j?f8o6d+3lzT;>q0>a`Qg-QmDr8)w_+5#{dD|7<7DS&j8 zD7~A^&?)E+24u1c)fM2Dv6h7Ze<3Ma-qKD1y8t;P(dG)Bi|((0+%%!O`W5KD1lX3w zDXa`wj;uo$>qh}VgVNljU<ne`qRRf^j728)}A*V zr|0hvdP61k{2eWWLl8SG?m&lM*a3^s55rijG)wfnO%2(Rp2nw{o_~=!%zrm{}C0Eqd+GS$rCi*aFp)EuO^=CD*;9m5G2Fj+8T45 zmNPurl*i}^;voVux+uH=!>0qbMB*3~BQgEKjI<5J$IPT&m(5J}*12&Juv?NjK;g*@ ze*>6TXMqn>cq@h%1gvytJ-i+Xn?V>cKxk}IqLW55QYRn`lB9RN&7`f2^f3@V6(m+8 z@e?AJY}?TtgCV~Jc(=(SHc;?nR}SL*2>2y)su<^*;ymk&7U=eHQ=T$Y@&XprB|{!_ zQW5_C3lM6Xm9U7)6Mh$}qtO=dG{NC;6v59C9tF?@geM_PLo3f(D)bV7R?5%}Zm2?k z3(!FsnkjEiaCWr#0zg+?;%>(tP(%0?u2y$7hwiFE=j)2!AuxyTr$R>nRMjQ)2xVGx zfLgo26BRrNpb;+c45fS?K#N@9`3l|v(AO^TQi7?Zegf#63%pXnj{tfhVO|4SiDvBv zeNZ>O*g1ZL;UR!Ucl%JaxWPzGfRNnHoN@P6^nC#u+|6v=bF~UK3!qOWOr2@A7}C2Q zq+gkhW1$Ps_3vsaMw2=KQe20f9Lh-3BXZm|^VZo+Z00PExd{;H6s8Y*WH{`1C)wI0Ile5&Z*HV^w$9GcM1KG3VjZsD=wiI z5KJSt7XZC;3B8!Tbc(QV56FZb=1Q`G&D6s{9Nj}CUMv6I3~vHhYl+WR`1cI&2iOpS z^B#^i`JpC13y|e9G&Po9%0eHTB<=>%2{UoFA{JG|Ye0HrCTe|Elp<#C3B$dfCZek1 zjJ-&)D+9BpiOo6biqjhKo@R|iWchK1&A!F~VY(!ZQTcU+;hzJxR^S|pq^PWWKzyd> zhuUK;M!E)szfC0Gtmsat)#zoh2Yt(9!!)&YPI>t(8Y+1Q;#)NGvt(8^vPD%syNN#eIaI{iW7Wjde*)*C>2+DmVY zMz&96KHX#a5-kdy>~+nFegN2@)a?%l0JYe_Dh?2Hc}1!rOdeUJ4?cuI{&3>c_&BgCx+#Elg}?PB8dC*) z2GUvG3yh_zJrV@t1&3v2AU^G8L8h??oE3<^S14Ia%65aZPoj$r92^8TlJM`~T$XT_ zwzVh&EDmh?V!>--U-N=j7C85TzjZ!_(HFdeKw3^985g{20hAzMV+n@V7Q9x%d1pZT znHjX;#cr|4ck1r-(ViY$)mJ?|xDG>zr$l!_cj<>z`IIPq-h@9Tn(;$B*Fn((jQlH% zoK%^f619Q8?EM738FBq7(fuF@1~^Po=J&OjpAtn%U4WZP%E^8f^HZW-K`=nV7=Xh? z30?@$7yaD5X~+UZ$}jWqyHX;{FqdSO{nk%q8Kpz65kBmv)(GiEFo|UDuMqnF54#~1 zv@NzjpKb@G%iXntcH-5Od3W6q(>S_)!h`J@DuW$R!49U&V2AFCU?>xIwDX)J?MU@( ziAYyGvHLvr*gMc->4qmhFFYtJ_Gv|*cXY;{ZuBv1zWwEihfPE5wzC7V$D@!U1nL=Oay$EJ3YxNPuBsy!>mWu zJqJc5TfwD)suk3^V$p7Q?jNLXchU#6?+jG8IB}nn|Kt|uYY0;n6dB#ol3d_3-Qq;J zy$LqFkfYz?94B#P>pIviP82LgPG8se8`0o&iLi$tN?Ek#d|?p(&>b{q`qmL|n7N1N z8O)nt?opUjy4ReWZZ+M4Fqr{021}*Lu+a0&x#P|NY?l#44p#le68Zfz&_7V=$5%x) z{c(VFNB#4peq?ZVT$#bb{!FRH&cXcKd707-QNHp5Zlp^`zmW~W?*D%Uqa4jNSTaM0 zn7%5RrEQ%$TtlNeE;sC%22zk`fmG0Bi0j>b9>*$4ne$)8;d9X@6r`Ktz#5++9nVd1 zSSXHkQyeZi!4%|?3i1zipAMh%a&A<6sMdXx2gg#hy1>=#mFh+ewJ;;lT4jXG0tVHT zETN)WEFH>=j`pHkbj8fTin(7f=o@e25mth~UQ{~XoVV3{EIJPd-Uj+I|*!C~ig(#{VeljZG;qF4IMq&Du06JHl|*M#(EE50e;Q3S_>}3m}@^eVeu-J%@n^ zm{YxwN{p%##uOMr*lEF1XnQKP3D&O2PF`f?@AGe8iv8YFDhNSr`c&D&6VNyVTlia%EB{aQWo;QqmeiEZ9{s$id)L7LKtmwdpe-U@Q8O+@(x_O@9~&? zPT~cEBl^G~3fDV5c6ebWOv5E=NBN8S48!&FUmZo=Vcsy2vC5G6OyR^xjNM4gh3tyB zE~n07g4LXVfpJVV*+tj1G67d@nZ^V?jpQx7>4aq#E4x3}^FQiaEmV#7jHnTkXbRsZ z+l=HA=Rw(8bE4NOwwuvRzA}7VZxJtjQb}K!S$Bz;XsC7cS~qb)3xqbnC$^1v6Q-dR zXf7mTDmqU8)3_9JsBq~K4~b*a#<|Ze$Ck!YJY*7slmQkLW_Z>fJS+N0@d+7{8_iOdkTIYYPhH)VSa1oVELXV^@rI68_v%(6=~9V zGIft_!X&aK6r_!axi9Of3L}-{Vo!<_D;BG+JcEa2HgHIP3=1!0@r8r*n<6IEYE>>a zsq^#*yB%5=?$o52GVDw*dxqpherh_WK{aT0 z<5|ZElMebhD3TSkSx4YnRPz-l-q7%ZsftSqT@rM^lQnt{AqqIfJ8L=1em0bFqSdx5 zjmS}0YcfMHL&swSW8Na+}`ii78pV6Q~b z5~uw;+Rt(k9xal@d!88#Qb3pv3=VElN7@fNFD2M;o!blq2Ro6FCgaZDAwlMHiEBGF<{Mk&N zoC^u-wgBuxCMt%_6xe{|%QNH0pK*fTxI)Fy;nQaUs6-N56xz0`Ss>Xo_1D)#4}2D8}nJSoCygKb{B6+(ED zLRZZ~9lzLkI83toAY%&U<&dy+$u1JDdE#i7hnG6Xly2_jglv!Csyrr5No}Xy1*S zMTu;gZixDAf{)9&lG~6+xVPDE0$VZyVhB%!$o1^riSzR!VLM=*Zs?cdx1zr`e=Y?f z>Zfc$&G8We>)4%O({61*-o2tCWFCI7~jEi;Gv>pbTaQ`V*dUwd+3D zL{aN$~I8>kgZip5g|g_-!zcfp*b;s#_`?of~+2??s= zUIKPHFeeW^xdy%%RD8x@Ea!#)o~jmY)?h$$k{72UGS;F<_fX3$#-BSM*hhMIuM;{! zZz$mlMbrug?Qeq`-S+Tt*#z#`aOLRfVJUcaEXW@1a{Bm#4E|%}`|$>j1N$>mPHh88 z2>z$|F*;qGNYKZ)fw-%fW6a3TpLD6WkkVm|L}GHc2!D()&wb-xH)-RHS9Ocw`!UihR~g!i4_)o5y`o8{+Bu2nvTI{ngb z4sM;@UW^NoR=m5)fG;eU+yb4|=Jn~EA`?RNJK7RA09v-A`(ajwPsZF~Bza`5#(YaX zSHHfO6U!m%l~jXZwF$uy((FTW`>3O$aM^FTKeiR@y;sj3*L31V_lWHG#beQLSut z9qyz=tw=&Ld2kBlU60Sezc`DXy~lbNc?wT@K0)d-V2H`{|UWq&uh zez)St)UcBqx-5;&vWyP@a<5`;-wo&-*uM8-5#iUo%1; z>DAAa;8c3NyASH_bK3Rl0q!4RvDCejpJ!t$Wu}DD#b6u>Pi3^z_%3QUhjYk3*H1zJ zUNcK#m-HN23j5ccQ^@f}si)zAogymP=ZG*7jagliUJ`rq$BcXl@Q?ab#*&d7%--y- z>VQjfWjpJT0`>;QQ9(dU1DRRCq<%s6+(|2I##gh0sGLPMR8(~xIJUc^IC>ehZ6XW(7?>uR7C{&+E0eN0Z~P zE_@C*3>eSL6~)GU(~~vYt=Hr_IZwAg4VY{k^|NS_-0+z4Zp!#TRvBqr`6qm$bh{2p zbAESfYLPY$ADlIP3YKYR{a;Sbt}!3D6@8FNYBo=Gj;mocTL zqdjuRpiAxv|58uzEK9K>woZ2=z4T(LUQRXPd*ll4z*?Np6iqK4`qMtW_xp0?H|sJt zCUHW7VmwD2lvFj%dcqsbsU4$Hca~+o%kTIaTzSo5T0}oe;BW-=+oZN2obpad^r%>| zx>_R%l24tM>^Zmui&W*e!h351-#-p7sz5GzKSsBL)c11j&R>5*kdR@FV#G-~5yS6(vZ zl}Sv=6h)4P3s?z=Y#)qSSD)8_+xG2OH>cRQ%zWPo1*k9LmHRfY%B>#>4AqeR`)ta# z?L7ea@9h4Bv3{Atd9Yn$M&W~i_u}BeM(sIXOcZ z{!JmXi|RR>&7a|}zWKFpwNNC3DR~y#!j(3!sjz?&sWM$k|RFtTBUvwoM7syZ24?w#(Bu*VHq@O z{?w|YePRqs55gqcvIy^!4bHjm)W7Ue@%9Vm2X7qfupA9dFUqG=ul5-JYi)(Z8Cu;aa74Y3e{RA zie2UDYi{k;P|R@zaoXbb$QQQoMMezA0#y5uh(xu0ri|KIYJCD&^^L&P_iBQSVj70x zA#J;fb{1Nk&uP(hiKAv6H>wC&RE}J!rE6;$ncSu33*p;0qFjcPK>m6ecMR>ugnVj79`8)Le@Tx z-u7KF1koVS@B%_;4|PR=QDGH;w4dw_lZLKXeBAj}aj)#9AaVtPnTY;(>ykxzsS$jY zIWXs`!sZ?KCfQR3nGHT}QtQf&&f4kAac*IUS}_m5FqXF6zbFAxy>aiJqtEG7MYU&p zg>TBT_iQI+jZ=pSzDEK39u{GLc}{TuQc(UdBe~DvPYh$8NvAxgEtc=G!bEW`Ff_R} z!a0Uftu>U6y&uDs7o<=JqHLWV7V@j6F6^|$z6<0>w*l$B<|r8!PRg)0r^YK#!gCs7c zPgy992+ARji7pYB3gK;i$IABnL?`xz;=!{YyBO0^;Fru+E4T)QvOwR|-~QnIoB|Tg z`-5I!y3F+6nww`{ycgzsy{o6Jr#&@<{R0ejoqb@!X$dnZVxNDXrIl7Y7)s}O>lDIv zd;YWb3{OX>e9p&Zx;2zy(J_s`1~g_3p{b?NM-Hf%a$R1{t747 zC$Eey!|arFsbWiA9{q|5lsii|w&A67FTe@q?9w6m&Gg>icla5>W z*WO5u5DakQmW~sQ_@7Q{&_PNvRq9-3gzc;Qlh6lST_+3_JO^SJ#$q9k8(US(;6QWs z-~J^NEOA8b_EGNE57uX3Y05CKmyk8d8mdW@QHoQiXwSe@FF3ADTx?s&Rdf>k*O-_c zsjuV&`q!9zs!$!gHnwL@#={U@I~Y)D^JK|pS!Jai2BJJ zqdCq9HvnwFuA<`2s=+EI*0UVdRdEQl|0keQ=Xcc1-X)9-+G)%n%q=XddN@L+Cqq) zhao>sd|pMeG}I{}UP2N)88`KY)!C=QOG36|4PF!W#hLdvW!d@nHx(ZWVJkH=Q@@7v zIk)oX3DydEvSEz_7+EZy1i$y~{m3FyhvnxTY+|LC#1x6WW6E;(E!O06#HRUWec)oL zmjs%-e9EC{#{L+=2W&TZAzo>-`*gh(xx`EAkNQ)!E$MhYH&8(7$R^=#64tQsFMt!q zM8SgsMwj^rIr;^#cOYrcIsb!y|C~%3QzlMwB3`6(@ZYaK(%75(P>u)KBTJCBwk8+- zoaM(RDap{rxSB+x*x0oI$@kG|sJS-xqB6&6I(sc8o{@=t#Jl;ZXSa43A=fBHs zW;VnRct$wOd5Q-pqy zyYq;SX`0b%bP|=>Mpjo}?L((NCdmT!ciNT9tarZfqhslGCizd_=J|i<{LVL3L!U!$ z+cca_n2nR27oCUk!u5XUv3i}gf+z!Z5rY(*q8y`?bYKV3EekS~KhA*>HqyJ0vS=+5 z;DOR!v&dlGEyvp8y+-m2cP1w=nb%?sJeH6s+nHJywHD ziK>AN?cBO$8{2KMn4~PmugT33r58UdI|_v!t)u@1_?Ld>fQU135SMN6J+Lt;I0`C- z+4eXxF4yI+shNmnE5p9lLDYLUD2j^)4#!@hm$xTuGOHpSpRh)c_gebbBm*j6^-#Z7z~94o z&gS&FF1q4wdr7{c)_>RWAb?y&UvcxjR$NhEyefDkFF=?(6w-4rHq7TI5bbYuX0m-W zywrM`BQQD3{KcO1Ry(!D=Y6O$!%=3R`t z3e%j)$JjflJZH;qQrjxpmQyj-rO9fW08(rF%}tvlL#Rq3LXa`3_!-Jz7vR!rf3NWT z>P^}KN7E;(TNFrZtF9lD8_V1eMubq!U$UU5%>k1?PWE9YX8o4DH?vOK=}at>kv(cK zz|Bf2Ev7CjkyTJ-O3nKH8+%p4Iw>o9j&p4y+h+HMulYuEz9mV6JE3HmUj%=574__w zRh9uVBEJq~kdl62c~fL}I|QHRqOgU*JV&)fK*!HN!FX8&rWJBYLG@-J`?>Nqz6Yu#Ya zU#gk2B#F|SJISLc8oi}50op#$V-+V!80SgFu3l>-@`61HwSa)KS=uj;a`c}tAILpi{Uq7T;@a-i_p9)0QTF)P&+Hu9Q^o520J2*xO(g~ZGh zlh);T@)rB?hQxl5Nj6b4Ex2iS;do;$o`fH<817NblW&K6Po-rlyhir=g~XvTY>AMz zZuy#sCHqY&<_|0U;Nc$u)jh>eiz<#Z<;(`(QVXHbr7yI8h_;S*X1od~5xQ4BG_4jM zsg!IDfp!h;7e}xFsqWLM+mYWB*0lDu|#8pGeZ&Sid~^T(sH~Z$dNt*MRrS08i1> zr%!G_KBiZ3J?29SR~_dIP@GqIPtJ*JhR||!zDJ(eg(Zh+sx`w#eD1(*VzgfN3Wc0O5Kx3!ku)i?rck7VH#izStr02Z1+ za=1Ts44AlQCV?dK`!X0h<;?inSRrSe@HV|6hSC$XXo z$VyYq$0nkhJ3^kBre5->oDr`9;5m!b&Wwr9=U|BD$-3Y$Vu_MhGOWdDH%VH1HCb!h(-brH zCWFumZ>F@Q2{)|lv;CD7jkEei@;7U-!B?FY|7Sx+9={|dn22siV6sAH0nMshy_rKW zO|U8O3lSVf{L&~#nZbUgcd@9(25T@mBn4Ii|K<0)^f>TC{`J13h$fzk+;h>yoQ^HjTl(CmS-}(Mh9t-dlvlycp0pgDTCmG{eqHKxuA_~c(h_vQ0 zkjbdP#U~8NWCD;M856;IytaXVwsE}Ra{~|F+$|}x zYd116Ok5xeZh!w9Dnc;-5{hgvzmPd>ac(+nF-ZA&mNR(fLv9FFVT-GjKec5bc}cOE zV)iVP1q7l@v`O0vP$Hf1E8)!nddb*Jy}{yQ7T~h*-|rV$qU&72Z8Zx>C&VS6@7VD; zZ@;zSN?bW{TJn83c_F;_Mk2X=0Ur;7Tb(gnk2 zAl(SZe1tpd!Y`CtUHc`|NX6Yiq9jM-Llqv>gPDHXNW5pmZl7K>rYW@x5G6fbnUYHRXAI&cW318_w0hSrk zcXK9-62%urt3abd4~f8$Op`h`7xe;4qI!$~ND4;qE3T_y;e9qm+yWiskT(q-FjnQGl}Hk(2i2V!N3 zGCWwpR+awwT*;2tkY+MS8{}Rj+MX#Y|60s>6m30JELt&|LmIrW$4BN;P3JFmVpN3J zAjx5=&23c3#SJvkfd@ z5ou-P@;AHXi-4JO+b}SVW_o}&$UCPW4(H>i@;P3rxDB_7?3Rlf=2I8DGr)D8RMB>> zU^g4s^9SByq!mFmn8$@*Q-V==MPL1*VL@geaip-C%Dbj17WIC~B@ccm&Ozq~BMVX8 zU(O<}{K0FmuQs0&^2gc&4g(YaOnn%$2>9sYJ}!Gy>jjFpD#-++c;`?D$E_v864m9W zJ;z(Z5=|rVqkHJ$x%{eNKWZ5U+Wz^^$+vE{sZYTfykINisYsR-QJO>cU`1qMCYQWt zc{~?cj-wRwsWO*wpjsV$w>x!kn#$NmnqhNVB7USk8*>)3$))QPXbetd3OljW;#%odmD z6Wg4EX($Xs*3Py@)tMRMx_yUZfpK7%ngde9K!VF~O}noyu$J zQ7^KNMhq7O1HKh4mzZEdr(>BjH|#INWA?cJ%>60?T@Jvkn42ZnA3VQGv6scy=lGj? zy8@hk=CL2-!4~t6%bb30vH9Y=hjWiY_`>OflU3KZmaiT7n_9a9Tz*2a`9`}qQ;#rQ zeq^ym+Pg1SKK`*J!0Tws*FyZRj6u}7M^SuX?OmM3M=DM~nOGy)-SmY=GW@QXLDcz2 zGcG^ASdx&Dmao#WB*oW7Tz(p{Mhd%Hi;ryh!kW8_ zq(Y|=YW3$&iQs~=6@_8-^O9fXw-Ftt*;%Ojd^_IYGkcl)dVlhZnUd!UDR;FmQ${gQ z$4o;zm0b!PQh4eGgQo2>QGD7Sjxay3KIBH zDXuM2T~blYIPlh@m3Lm)V8JXoMwoq#M+mi&HO^AaD4{#si=Na^NK%~G{N1bA)~op5 zDSQjeP3cvXHKtK8w%9xtGq$k6@w_arudc24$0?|-S6$MfJFBES+ws<+J=@Wz4d*s+ z2{m|iM+`Mc>1CER#!)cVGV*B(NpW#aOQHy@ZtJank2CU^s+Kj@Dz2?4sm;E`EvU`D z)hnybuCC4Ym;0!wE-BEReK>RR60E$mt|PM1eq7CPcG0CmdsdCFc zcerzr`jWWTQXiyBc}bk^tN`<23iILaoCWj2MRL@eM$k1>@QvVoB=|uc!J9r*kSi4A zgNhgm$^q-h5xh?kyk8&`m=Br=-VC82 zu25ee0r*hg9MgSJxKLZK&^ue#HPAPuS4h^FM8Vi-Ggr*m=n#z$?Yx5F>=Y8Iyre~U zR)P62kNI#rU{NS7BW%IJXMg&K;p`CdM|nw!?(7fd!z|_lSOE>;MZjJr^vyN&?Tz7e zBKScI;e{dejVttv&mv;zmmHy+i+(7BZ74{j*fvzLLx3u;h#Kz{xKWvRs#TSqu#|!D z2vVWUt4v2&iit9ZiE=YwQ7t`8Y5}7|8|)Gq{2DxY4Gd1{6_wp4RoMQyNhP-Z^Y9y= zJ5ePA;hFFcTEa?96ioy;8-x#1TpWaOUXYnT?+-2Ben^Ni?+-e{LQIrtOqBb9AsCrq zgIPB!u^7Rv1??!!Dy6xUAYo?m(< zyh6B7o6Cc?(lNs>iBdUBx+@7wlI98~dg;8$y7HnXp{z|g_lVXXj z=LD3f64}OYH%r7L;lJ7+3W0vns5n$H$w9;5LmkLFB z^~oEL!{)mR4*PgBds|(-NR49lYgt^)3)f$ZU0pSdUhD0*l@Y!6E{_YR>}J_n`RBTo zZUE?a`$ffKCve^!TMjzE71;VB)I!zB6A2o&uirKAkCQgpwOfl@>EBSa?YDJ%?awdb zilpE#@Mc9eSUcxU5wUjyP&#gL`xZR7pl=CTe3&jD|5$T>saIYh8kelzWtbU-UOc8N z+w6Az7??UoLtkc-!SsR)9#lME?bH%3r33VOm(N=6bI0R0kzKbIWkBb8bjeo&^>H1P z+TxiZM$sAJ9#Vr8?Rb|C3*msHmx(MA`WGxx%6A2#r) zv>0H}5xz^p5ti@-E!TVz#*bcnE%5!vL(;g#xe_wOFR<*BMXJa%W#!|^e{Obm+dIpg z7Vx4Az5fdursh2x6q>QpqYwD|#M$FBLP2D_mEKTQ@2zLO^B}#Gt{|D^pz)GGRraqw zpyJ3Ra*%26*+^sCX~cn+=nLf4W90%tY00IT&;9-cqCO$98?FjiT%&?6=BsfGE=LH? zvW!$rTkBbTFUm1An>f}u$ie<|ofg2S%P8@Sk)XQOylPT{po!=&qXA;kNdP1tVtz@Z zGID&tpYWbPA9!eYDl(H_{Q;jqaVi3JK~3cs`YU7EzwHHuNp9a0^-P@B0l?(oi}$#Z zf8my5!gk4}jZKxUgwbF2?=FjibDo~bZ?W;RDXamoI+;Y}f>wjfmEMLt^8>m^s@e0~ z+K&+QS|h|l`l;$uh`A}fiiEZ#WwsKBIxwr!#)<1}!xi99G0knZplJQ4H{>5Hmwn4B zNfa^0_;jF_(5#Mt+d`t2s~o4F80Z$cSfF_>cIFe02S&Y-xf}FOv-_dVYhhCSObv`b z1_SiJO`)`$FIN~H-`wZNW_2nDj^%oX0)0NccalSSUIog_HP(1yE@ab}kFnFIn1^*? zXaIEvc9o5VzF~pN=o-{V$NCmsE8vPFOX0*-xp8KrsJr$Q+A<5W6tLzQzct(I{3+Ao z3!0hbX)SC$_KMqLX3n5El)825eseao)cq^RL_6*(w<;b!H{e@bmaQ2yv7!?-yCC+d zyV@c8@C$lljD*6YjpwLA7_fojHMcZ~-Hn?549N$n!DP?jGnuadJF#KbMoC zbgiBXImfO!F}%06_(4&5-h@Qh%+at~_IKTFI;b>`=DevrcIC&SiFKv-c&vu&_fK+M z^W}#^t}lJaHNuxO@)q!Cwor?5N+gH46m2Iv4RyzS%FkQelLsZrT_;U|RV*I9Vj_hK zJ8On2yIqV`Ewkc1$%_c>qJmg&)j^IxYsNeyU=3`Wd6T)7t_ zl)oL9I?(1QwDv{g+2qgJ+VPAjrz_t1PFRcy^YKTSOY1kJS&!MHCbbWp z;Hz+{x|NASmbSU?IWsu7m?92%6mVNKuq(P_{I8{)ykY4(U@Rst+77s_4_bZGY!KTH znVVJc{gfup_2faf`RyHobDs%xEdw>;iW+VOnIkdhZ>LG!*OtM*j*+m_Kd;sQ3NO(y zKu~^O1tBpZv%uJU$eA*sSUXxxnSeg+!GS$a*aC`I?Dd^Dx-^i=MQ*&-qeWR|b(f zs26rK4Qee%?RCdYe{;jVdEFfTWH^5H2Q};ut92_GyvJqV>9ZyRIOa(6MMS01lA9Cn zY6k6Bkx)&wZz-^XTX>ubF-s0Zjr{mV8pbKy-di7!fIkjWUK}a$LjcZYeEPBK+|Z83 zG;dV!itA%+Q|B>bPB1!9|xCgT6ZGEOHKL{~n=M=83x&;n=*37XYX z+doEBOPXdkMr{E@#P?*RxEbH-1@_a|GeAq@SPuC^C#S58^nlYny)`6DPm7~CSGB7A zCE34$UN?1ew0s0XNVkIL1yZTcS8d%=qRK^(q9~qP z3Jr+$A3NQ*t1?VWc+HLXyv(|XAtC;JFIz4!UqftT(1GifadM*|-V{WpTP&AE?g)3BHee6&7j)>!vV!_S(pZvSHVXR;|=r zkID(jvV3>cs#u8B-B;jo{IW8pylwOEicD$!T(Zw@knmb$oZMAN>d7jIs@4rBnrgdj z=1;XYE#NI>b#|Nml;pD#_%jF}lDAjnGO2dXP9Y#XIhu*!l4RiO|9uFD+)V5I$)aRS zaV&4AA$*xm+4-KXCOWebTOm7LW3_L$Sy;`j6gzgt=cBK|u8a{D-e?~s#DuBCKYSjAg9!6NpOCwm!3i`k9w*K&% zBTsOnfEBXX+ds@on|qhD$}ZK#=!TvyL2t>Mi{HyI;?%-l>0E(a%#)uTHamPqt`o(a zlu%LlYbkmWdqciMj1R??yNy8m^iAv-ocOGg1rB{8x1-yzMDmCVq zr+8O3_JdjI+haJmkwAt5TqP^FGGc<_t}f14?Omoot8V|QYYZxq;s-6}*Bv5(AR3kk z2GEWtdLOe*g0mXy;nKW^tmz0HQhe7!jXDzG7ZNQIv_H*BusZMCQN|YIQ`8VQf!xo} zIphAt20t3DE=j9BYOn+GMGNk5C0VzzF7f>WlRAqW=Tl*dCncOtZ$J5p>`@MA@U(w6 zob}ukP)veYg$sN+|RO+-XH{tq}*4$_QW1JIA7wKU>~0(NHaHF zg31iW3n|u8*B9+Q`b7CL$DriW_;ESRTsW6JW#l5V1PbmZ2+}L0eirPohImyx4t#|0 zY18RFzL4}KTy&`H+U6sjPCL2oucpGap#79$Yjg=^!_BtBMe;j->{hHI(i+$w1PjiR zGp2FicU9~a-E}Z@dBn|ZwIc5<+I!Bf{5QIx_AP~2rdlXQCY0T8s#Vb30 z_~(A%#kb&_&+dBgT1j*{m&7#P4xDFRG|{4ppHa9R%WW%uRQNzu`*iJo*`O#ZH$z>0 zR#w6(N-uFNAdg;78rp(W$2IER0^JGmKLa7=5NdhS=n7H{14h$GZdPG`5yZSEaIOmq zqUsTQbIvB|;*ZDtk?Q>$D6ZswFJI)>THae9Ddf~e}oBQhD5uRNGk}8Re1UTOci+}Rrie2 zY6XLT3PL`Eo?}XDyED>}0Ylpvq2sTlHK%-K6BVX~iaCv>21r;( zs~K-|MQ(Bd{F0D#w@=!=cU4`S`Y(vg8al9VyO^Mgpr(%GySo>*wQor)4E>bex>ve5 z8|du>=R~Hjp~5VnrObPgH`Ks+14R4J7tvexBglk>IqUhdjl4)q%0}PDA!*v97N6Sb z57sUnvP3}qgO?CzKS<~`Uz@<#M%SXB$jmoT=EgW@QFFU|){+bkVVo$Sa+13dG44uk zsp#dxdaCl$7HB2o&SLbh;<|V+il(S}bXftJ{vh z3}HF4M3D%kJX4UGH+Gw@hcqG{RpuL17TmUE)k~rs*NyY)TUbLaney4pd66pdTxFPr zCu6T}0|$rIDbtjz8j0M=7H~0t%_-04Q|J@_Abyfv*9$<^4Dlm{*L_ZD?UtbzBvPxv zd8y1{q54~?*35?;3YBfa+B>_F-vZ&q2#x)zuTN_Z%6$RPUZrq(KfDd(R#-1FIYa~S7sBdM_q@uemkJmqu(}|*$!|bp8(!FfBe8z zi`P=`upMD}9+1mUEGZ8Uo~~WBAP0)xFCX92iF!yNP5CzoUboidn}ui%s7iaBfj6=i zkpUh`NC6Ya$UBjkHMg@ttiz|TEu?D$r>`?Ltjn&Cq&2t0{?2I&nR8)(Jc=jZFZ3Fl zcbJS4g&(5(c1(qv1xwER;@>_NgVc-!1bT^o=0E@TMc$HXVCi(j#`@XkKY@QA)AEk^ zp4)Z9?e@l{xtads$*4eT1;d}F8bV`pvne=Q1A)&HYkx?7eS#n_N!&dz*Doosy-VbK zJ)G&#TJV4Z?5vf(zcki!wY(FHbO>IX`I#vi2kUEfK^p6u^cT0fbTl?aq&PhC2WO*R z(E#5HIo8o;i9vYZhVBZwem7j&9nOL$*P^j6hFaSxEQ!C|&)-383J@}eZ1oL`Wgt-k zXYDKzb$x!18muVY1vhfEcz!!?JLufQ+cX;t%xHvXkwY7rLu??JK`2G)he&VXJ4A;k zHor_LPM?vnzYP6^pA9n&6zfLgyA)2&7a(G}hrai{QQRG$XmuT4>;6hMk~J*Yg;BGhKlXSn-C$>s05%|T*4=eAi#RJ7fI);VG0WjmN3>Q_g`!ng1w zIk%xO_wzM)Gv!<6r_>2V7T1mB-%K4bMt0%&%p{F0+Ur_p#UTX8fcEndw~UneD{{0SiOG}R)gSu0ZJSL0R zfZa20!&_?l(tM9{$B88Jdw~6hbL8AS&v`u2vajb^6yinu0}ZNiBhTn2ef&HV#Zn;w zOQA{pEI@hJ2AD)%Q__;H6?1} zX}2mge(^vS&_RB=u5R)FOT^oMIP=e~9d0YI|6SX}9gu$cC8?$ataMIT5+rUt$HiOZ zB>v;x3hePJ9pk^XM3qM;AavsO22FrZ4`qZkx`W~F*@Y3|-o9z2<$OK=PA> z4aNq;(76W8@PrJG-TEA4oIB{+Oti3GkbPtdXIW(4G)!9m1%{`f6_+<60MDc`@ho%1~D$z71R2oNre zgR*r{cQn^)=mz-}BZz<__b#E>TKAUaP0I<;8Jogi@O4tJIOqRM&=je5kyt&IZNxK7 z6IUX*m6vX^l4Gvd*KYd2=|5E#rdp6s?6g2oY`Jm@dI>B6^$1vOVC=GZ6oK3Ox4uED zZQVDrs~xL4UQ2Bft9cpX{?-VXvf>@Jj(4SUE4!msuBRn=qvI?gaslp{y$`AknEVB? zJj3<%4zu@tk-76ZF6g)OMoQg6-pf}^n{)3~0O~7hr$yBUMULsd2j9;sCxaK)JHAe?GW7b7PuAa_X7KyxR=!$4T=^cr|k?V0QRR7dnU+h4kZ!V57{l>tnTBlJS8DM znAoJ>sUD`99eUkFJu21=7a#oGEY9}0zQv+@k5{j|*tZ)m4%;xt8%WB;4;)!XL^r)v zXm@|JUfE^4{CX4AJoKYR6s|7zf~YfF=hTn(;8IcLK~ZbD-DI)O&O>XAZ-eW6oed%b zv=S!V9mNxX2(npBV)s2#uz7b|GF`@cHajL1yur1Uyjh;1Y6GDGdftgsg4fsqIdP zJxU{CZj!_r6pNb3{pmZ~hImfb36QOCDd1BEFJn8C$SDmZ7_>ugSsY`7)|U(Y*{F#G zR>{;uYpA>~hXyuN`rbkwv+c~g2)%g(g_a0}>D~uLA5(mbRmgOS4Hm^-G;}E!nku#y z&pt2WJ)h>O)FK`aZAiZ)$Q(H8D9^mVP*uxio8mz1uJkvjOMIFXTEYDLt(~3Y_v3k| zT3*#g+pQait$uUPzOG}w>(!v>yi&AY4F?-C4}c0Pa0Gn;hnbr#%jRrIa~ov$9ZK1^&<0IEUv1{WX2nxMlK zfz8h2R-u#DylZ{$!>(q3(Az%X5&#$hy(Qo4=RfFscMS;$ZCr0$wsy`rzZrelfAH;f zUO#>YSM%8Wd#_#s^1&D`z|}#=y59I8`I%o^Jp zSZ?|y%SD{;P!?A2tLc?Ag6sy2<0wsjh}4ijLQ{<3v3D%Q8LJJYM; zTK#S`rFf1Xnp8W+&M)?JAf3GOnN$%a!|(Z0EW$&ETna z`C7I-wmm^IV{?Z>IIfsKHqOXmt*c-Z9+|~s18rZv&+xJ+vRXoOi`;90q%*o0g|)t9 zWXTByEYqnVkXWCJ{+(q%wc2czWu+nA`Byhw$(@!7^m88B4V1>SSota|K@;m$tiN=p zoEwh+^mkhy>x65TJqso}@g`Lkl+esjwV>CgF2YEmB$cc3I9eq}2J{iA0O>F+j%e~3 z(FqsgESok+MZ9ABS!BA!-5Nf3TgUoAWb4&uo(zyj9YFbR*nyrWI14whLgum2%I)jk)h*wN0&hR+wdmGdvO_i>VT~?}*>(>So-PWG3cc?+x z@uapMmrGY0pX~o+v(p_^eJ|oXVluCvE+t44chH!*((LV|Q)*vvvF18@SFcG@ZB=#j zeHxn%Jwt*#$UAvCZtk4PxTOy0ARcbPHx02lRqN1BovPOVooYb1r>DuU%X@hAR|oApLTtDjy7xIu!nU2$;|vr#-`J^ zS@lA_lFjU!sn;ypr|wR+pJ2qL?2Or5F$+c+x2Prk;ihg{iZZi7tIz`r59iAj`iX&M zvwB6h^suVM9U(7ZxAVs5lfRP_JrCFDT$#ZQq-o%?mOoKh>}#CzPS5M;7u58E|2&OYB=!cgU^Vb| zREAz?TeOCsip73oXa|)gwhhVTKh$DFr>+=2c<^a$Xj^Q@`*(aMejNX@cAWUG8J}7| zy={2-U2oeTfBgBOTds^B7`pY!pc$SZn@ zFEG*-JD&VT{P|xVdhKr7k|&3eieH>{!IMmJ`#WM1=@ul#e!R|gsN%5$8L{*Wat_g zv2F5*J*UxuycEdWW%8fJV!s(buzGxG2#R*dMUM}~KFgkPkv}yYd*>(i z@d_9D3zrIVTqgg)MX}F5{WL3Zwe+`!Vowk4@{zx6lU=p{&QR<#Ls$FA-x`WN^ECe| zSHTOknmAA|l&K$q%5U<0>n~mq`)+(L{$%{VeK2Q-eK*jz$B)5a5A7J5xdMOxCj9&> zoI_)m!>@M^KN3GSl(=^2GT-B0vIoUQ{y$pm=>YPRvDnjZkKY}CdqCN@wb^Ghtn()!Tjr2Qw zWAJIH=0+d+aeIU>mdU?wf7&H7`A>&q@q30|_ zkKGcm@c(Kk_ML!@;wgB~g+B5>(X}>og|D&igf1SM2l^E<{e3(5uHx#DKi>(v1MRG5 zh7Rt=%>ifFF#g>3$MnaJ9mjV(H*~S@$zR1m+2?!DZ(k6LUp18U-A|9{e_-b?ye1Cw zcl(ahtQTArd~t`EQLe%M6z#cp$NwOHnoS(nLVJE#bexO)Js@A_o15>5iMth}>}vN{ zG}9d|6@UF5+EJe$y5-W(#t+Be%m&Xj4ZjHc*!8}Le~UhR>>Kc~{!IL6e2qQn zy5-mH9dNfy{-!3#t}gn>c1rdS%&)@0T<`0&-@DMBQmS?C8nGXVi7s%Fzhw7}tCqjg z=+X;7*IitK4aT=>9u0+#iU#>GRSOTxwaeP$TO;252cH?dWJ zvF9U$hT-#Zv42Dv=KmHiNorv1iy~2>S@d z>EU|hxgqS>_~|A#+5f5!#Kj>Sr5oLCZuchg;QS;ZtFj+XN`g$KYP5g zm`KW6vP@>YNF{uuzM0LXNhZ@;TqYXHJlxDzP?eWkoFT!QCSo@9f=Ln@eerSio9A=Z z1R+J;%9ksN5ppzdt`U&mLz*3D8}Hi`=CjZFe329iHm%2!PN z&ON9Z+as(lcim;=Yp5D0?DZj=Mz9VOiF*8MWenLE&NVy)(|FOe9g+P;1^+k&Snl1zve|V^$NWvbx;^{)gSv@ z+ulO&4bpqERwq&}8&KBUrL?cX+K{be=xFFLxWuZ%RbCnf{HjboNAF3DdCdq}Is_Te z$XoRy`&DAEb_O>|vNcmTEVM9WE7JHLZY@rLzLzY{p3LA&$4O>BN9cUW;fE(o%iA)$ z#cFYn0)cP&INwJwOxc5t@iHM5E?1_P))A<4*1FxGC-_}@rn-2%W$((4xq#T_0+N_a zj4zIftvRI`^{PoHVY6lp@MM@7g(G5?&>tE2aTtCaf*+IcW1OfqN!Le5+apuNe&Gyz zjiw%mWReVWzblUl`UyBq7jh)mTxsQva-K~?!JT_r^>T5~-rH~6D?0i1+ot&ac9jP^dwh?mKnxN6 z%N`?2AQ`G(McOTb|IZweSz|4rTj7F-qoMfnbWieF7>=6VAxEhVt% z!;s?$pE$G>z|Kg!9_0_gzMRxbM!rCbtFWqSUx% zRU4&pg`R@MSfew5aH->(u-o~CV`S(vBC>U4HKGs}l4 zLD0jA?MD97m+oU}gbo1}eHz){n>-}BncXixiLN{@CmrN>lLdQ3f~$JA4LEII>$ z90MNevl8z>f24_ryXQP6t5RR7lQq54(2eX|IU#)uRz6O0q(BcaK8w^-6lN%4Tr2mD z+id7w!#TaDR5qyWoi|pSRUO=};4bhSqtc_!y;49_q;-I|kl1U}gt(m95-HcEV5dju zmpWetOJb{s?74hKMmhe(#Fxd~B{s)=VqL%*NT0)Uu2NS4g^6@EzdD@aR%D9n|NX9pjL zbAhS zME9&k`lc$lpcTu^an-GRQ|}7$Vz_)-!qLv}Jw~z_v)7WQ%}?f}7R=CZS;-g9 zcs_HC5Vs$+T3G=fI$P^h<01vhM3u1$<5bD{2 zP--2i1-mDeHN!+`EO^gALzz#j8WMrKevM$2ZoKP8b5v>H5bi|E6IVLv# zbjmid_?Nu+dbHR?IdC%#OQ_JJZ;>-eTkYOsZQ~)LL39J5Yss|6MqwVEAfOp*7<#K* zZ<;vWWiNkHs!#!d=-4UT)g8C5a;Z$WFjGOdG)d<_-kK#1#f!Y1<; ziB3>ot53Kf}g{K!# zEqk-8I-6Z@)@};dE=~;GBc}Wb<1G)W3^ z*KQz_UR@0gSN-13RZpy$DvdYVmDJjBVQmRvgwiCP7+}K#J3@~Ut*}-v7xY2aEXii1 z0slsy#L$zYy9iQ58=Zg?xfULZMl72F2sd>KMxgytg${xk?;_nbL63v1TLU|5y=<-V z!83a=vN;nAnH3>NV~eZ>NSkk=JB9JUhA|{#;OsnUlLY06fI=I zNQ!Eu_mn~F5Bj#g>|c~wu1F3R;i16ott{vD(2thrPMukz%RY?r_Ho*w9+;jE>A4Fg zPFKoK(!qfSWER;Q>;((FJ@Xi>M)0FZ3Xi^Ysv|$szJDd`Px=NOwgTwNgw2^ty~=5e z?z4tYg##|Q_r-l&)+h4i5wKxY=c@GXLJRb>^kbNX18`^_ZgP!-uru6l|8!VKf|=a|=uo<%os(%GiNd;%n;C7X#R`UC{9Y*o$B ztu>>*?zrbf@vBSm^B_6i1NV1`V`;JNZ{>_dD941{lMc%P+EQ;?)w*fH)=o;2D5Tik zZ87Mq+sX<@g^{;aV$oI9DSAqTHBWP)*PmClkzD!0RuE`!KUu*ox0iodV^ZIl#5A=dYlHg#Wz z&so2a0qTh=j|CMmp}wHdPI=70&7QeK+1_usJbZHPLGYjvdmug0kP$>*age6-!kl1GMnoEElrplMc>tks(aAlT`( z&K;CS+eRWJ!Cp$=vRTY;2CJK#@PLja`yN`ZqnQiCLV{q&M(zwSd`p(jR%?$P*huz>atXhq&jY@HXX4NZ&#*t*I-r~{RyhtQS6!GMFqC2+ZfOklTF z$i;+Nq|h|LtGl}550~%R&d5CF2;ok)^^%%@=;kxF;#oi8a;wLE0=Yhh{U8Fu26Ho( zbohM`@K`J&f)(ejyzOGERQINFon)Beh&v9o^FQ8_uYJo0T`PhGy7M9T=(e3Ys^!jO zNcev06XusumQSRMW%xi^C*vR(qnDfQ+I2nU(vVSk6*#AmP@-NlxIv*!pdJ|oub)16 zA}zvi+Ld%d%@Ej~7#D5mE!{93wtyj@bMHa4TM`ztNk7*(LvMv$4fzRJXJI>0$i&H{ z#v?(^xI~LK!GmZ8GIVfE#`#DZ`C@|oO0r)m_G^^=N=FBdInR9JB-x3mM5eS`WP;dI zSPrZ$jz_HU?p|&pPk3;LK*-Qm`ybw9~cf>a{aaxR#9Ki@+zM`adjuH{<8)@;< zIThgY&5u7&>je!-qUQ>cz_<@L7`m+vQ9EfADvn{chb*@rEu^bc3jKuF3uXZj>$VW7D6$?1*FYVd8;L9F-uT7MJXp_wF$X>+}tO&=i543NMm#%@u12R z1gC;#=&QucgKNE^=li1vfK}s-9HMOaWQh8O9$2WfZSrt>uK_(Wi$obCMMt8@S8G-( zn3)PYq}r&^83YcEfQzHAP-d>5Ok0RfhZ$3t268HjOIm^(IY(1Wjixal;$T-Gg~G6{ zf7*+yF`N{0)I?sbs&?A5*NmKzgk&RP3eEcU2^~NbB)I}Nw1T!_P#vl?0#zbby;LHV zJOl{l*5Tdjw!*tFzBLILAfIPVsP2HNS)9>O?(n@o+9ZCb!$a){z_Wcqcmt{9$VM_u zU#N&pb!C<6hf;CDIdOX#tIwiwv-pDHu3;!fqI`l2+_8=X@KW4`^KXj zDa;QGV|BU#IE$m*a0tFu3xI>^6%Xn)Z4x_fsOJ&#V#^EGYIf}j?!`2kAd6JIscMee z5<=}5`_q7X;w?FFw1X(*2Y{jFjU7IOS>iSJRi2J+KX?G4`T8q zj;4s>x$cCG4DKXir{pozj7xJ#WA4LVNJQZ9Z0B(9{~aEVJr!9AJu0-&$w|$vs`ZL# zA$|iT@b|n!~Gffpx}Ua_bE%Z>&b~bWTD1#Po8`@f{@#nI)~ojca}K ztCUoEwtu#azeFjC?Z3Z#pOs37+%JRorQ;BIxglmG(lj`Yn1hZzFszU$5W?oVT@@0Znzjd z;1!#Oq1&lsdM%}Q;F>hia}62>8CLsJE6JN4yu5@ zC{!}ls@ANbcPvA3tQ0lIs}we+fRhjpop$ze*%2q@%Q<+CY=DI4*Gi0ZDCh+)!fv!M zKaj#*_Z~TP#MTRIE8t~}K1jM@Xu=1BtJw}F#_rrRF{OpNrw#aCv|t-ot^8_IuXG&q zXuHfvIEyyK;t6-VlzPnobw=N`o58A+JyQW3jqF@z<4+H;hRdbwANa3?OhQT zkgg-TFNrKM$QGhDe7B6AGQbY+HogO5?~MC^o+5-+Wi&rJ&Y*S|S|cG$l!xgvM1@7j zISNnZEc(}KA7o<*LLMwH!00KFg9liDA)~h0(5K-(z-fVVqz*CK!Y*Vlp83x7rl1|~ zQC=m40m7-N@ zkWn5S?;qo30?tA8hF@9vlEO>2^O+cTd?pSPWZNT{qEkemI(efsm>dmuVG#++VO;v* zs@Za2BP{37W)wuiagpga4IB%Vt?5o)HrMQL56&zD!HFCyMGk%K6E?&G*uxrY0)w!x z@j7VZ55nS;E&oAje;07`!Y(weykW_1H>%Db)4+X0E79fxTs@y3@<#-MXtpuQj3a(d z!N7Q;9GRZW9+}U~l0(zE>zeKMJzhh>dI}l2`aGo8jAiOLNh-78!vV zydq3^G2b-^$i@^S4E1<$IfP^qSp?jrxtk&v#aO;m*FqVS{S*gQOv8v2^KDLd&5(lOpRE~n!8fA`jGA+0Hkn0C#TXUVvIP>M2EQd5GK+qv@T#c8`+O8%9D*m0o?oZGuRaHaiAnEv9}zFcdA9iv5krMcRv))hkm zIR2hNrRV5T+6xF1#i9{IgZnHFrBiX)9sQP9Rm!#VD>^?kAhek#} zNd~_gx>ZehbR59%>JU=_VZWg{vpkU(C>3PqPf@{O7JS9%ysXkUwdy=D!(6M=rC-Ze zb#>Ui6Tg|W#_0yTo;Qlwr4W@wW?`8up^(5iQA6k8WH^4Kh)|~a@lbt6vpe^U47A-$ zxRf6yU=lYQ-k|J`VT^2?y*610M^KRC%0$jaglUHCjLDIj)`jSgtsf^jQa}_Y<`v8E zT{JJhsEp(3cCCRBT`+Xai@+?pV*85lxd~|&Ib#qi-iF8Q(~ln$j^X5tz8NJ-VvM9x z82-VW?Rjz^P=PT6rb}z54BiXPZOIa&gW3YxLq#FTIRWm&CcU$$l?+{v2I(mv!Ao?c zK_k)+XrZ}G1#vqybCY(|M&wwsNgL5@vJd)TH;hhb%)BeBvtsEmwIg~r`vGq>vyMV# zsR&>$bk#u4@uXSR>K5Rb1NhAR!r{5;BRNe@ieLpm?yv*E-858T2{rVV9ODvEl_Thz_PQUSwXbY~Wgp%T9(2 zKO>aTbj)vNudaZYf{r|6`)sPP{lb*l-FYM#0O#VGD(cWsgOp$dfqy_eT|09R$y+RA zn;g|}@EpjC%n~@eJnI9=AkVrT3^hIhI)QhRp|zU|4|!Y*YyPJPv{s%+wL!Jm}vNgd@tk8KS}4Lo9Hdvb!#kjC&2Qq4v3fnOu=1>LazyAO1HjMx1tK~#P&?#Ro?P7!o#63T+a zxg=7IbGd+iGk5oG<0X+4iAvLmD6-NlG5)P>N^@ZSAWfC8$DD{{J0dS~uiBvU$rNAr zqCX0di?2VReCVCWPun)`zGDpZf3SCxunf6lfhlrbi0-^AJ5*n=?<=h7g){0X@2=0- z@5uFh2_c=isltTb?2 zuCCB>1X6dW0)Z`H4K0FeNzKsL>9WuQ^`_mW!jfEWlSJr?`mme}TwDN`UXaB5^@>)o ziVuQ&nHSDsZY3AqF1gIoDa!lIWpm4!c|v*flNplBKA6!Obr?K4vUR3#C~Dr5AP{T5 z1GqKt&w;ta^>-RM$?|NT(Kk(cYS*BJ^dpk_Mk_%i9hSlQ;YQxbSLsSI060gJla%(B z6Dx1nTv#7)YvjCs6D+SEIYLT}y2;Kz2NVR>Ht3(d02=);c(XhZlsnI5PGrfp&TlD*08D=vqVzu14ncT38>397IyaIu^+rk!2ron0z8q$|ok)=^IIjzS~yF z`1fErE;dktIzMs}ND|lKfmX*brKE(^ALR_wNV7)w$SD{|TM`uIr1C9kfZrIE=Fnw<2N^{;C~SpUBHN=NUrq68;9qH?EvJN?*6i7Of4?WQ9fw)UF>eQ7F+ zo7^P#>)KjWVelAxQ!v|Mu{JB zjwulMo=vN(Szd=;wePb(1$$pmV`oap!0J*wo>$PB5XOz0mHC8MJB z+yQCgd5}(#BSd3tY2Da+TNMAL5s`fnHW!Y-ZIOqY<-!@jdbcnOgeP}xr|@(RN?nhw z0^IYWRMsm+vR*D)YyEizh$|IaWz}?hEKW#(ovD;w!BK0 zx30Mb2dB&L>C|s?jE9ggm+(PG4iNVLgp%ppN`4EL)S~x3yea%r5k5qZg7tz~qlX5Z zq-$oF<8{K`r91HA&0Dq?L)Vx~c5g(oZuTgXwla61LQmYzFYhH%6N`nsZ=c6#k1T`) zoA9!Vqkk~c_>@0HgMmE@HHbY@_c(t}0r$D7=Y5D5J<=@O;4WQ-8_SUCRGJTi(h@ok zZ{BqGs$mPALDBczVUFPtB9ho)zWXg?iwu{bR!8JkvBBu*%DQfp!MCAS3<`5(2E-17 z9bJzFMm$bwD<&Oo;E8Ap%zTUOG%yX;i}}rN9sZmsNZ6EH=<>H5(JDj-WwG~p5Yz62 zjy*3q!PNQK#ILUJTx0U6KF2RwRsKi(75O z!dw7v=(x`CNwgXPh8OS|YlF=0a-EK;!!SbdW)s08EGOyh;C{Bx_sCZLhldl+FR!XY_?G`Ka%qv5-Ox8@^_X;tfV0s>eA<^}4{o2%ta#U}>-K%mVf(%{bN z4pX<*>P<6WE1Hn8pierFX~&IA89^ok1STSQZj8WPZCA@6TV+FmeO0Q#s;q52C`q)O zNdx4jdX?mHt9AAix+FV>kZ>Tvy4faM0q_TsYz-d$RZL;eJ4y4H7S2~d&nX-CWqST} zx1yo!+nyxt0EEx$RWKo7Zp5_r#pr}7${_+8drm7gn%24*0SzL_(IEUEYIn1(1Ymev zB#fPGqp4{NePBE2W6mM|-f*PNB-@@@2SWR@%LENK%!#w0GYf;}I5>E6&<^TcvQ<@x zG+oj2rj<%kX}~okxIXiZ25w7KTp}x*mTub44=;H}Cn~|Vbi?xOPb$JaqY>^&N4RG!!ad^=?wN>i&!qq8 zWP33a9E!T_VB%iEqeLXviNqEqK?Tt;>W%y=XdCDXkns^)TFVr%yX2I}8`k~N>IUT%gUin3#_(<*vx)mn?3^~a9aNhiDl7f57u?I6Px$p+=*$P!jW zyEn38L~~YhOwFNC=ASK zmS$1YS8H{3ex9)&@Et&g1Ab$ln+xc?{hVI5cB7QGT+=p$)rsZUAQ@7JovO>BgJ&Axstr zwPp({0yxcl;Y^c>+EMgEQ8uzHYa1M(07{3S-j74<>|c%QwsW~D+U=-UK{FGzu|#pd^sU1lMZbIHUVhqdMrXj+tL}OQ*tbXsops zWYy>n7tgk$)&s%uy2%AK$>3e>Ox}5>LB^JO?YdDTHzRz(oqNFC-Fw%_v|epkn~^f; zbnIG#vS!K9F|B}PgOoF(dt6X@{(V7CE}@Xkf>Y_8-bAp#=gKiA;^@&8N5t#T2)#r* zzc;aQLg3z!%#wE2Z4T`ptKWjT;#U_;g~Jqy40@@s-~}9Yu*0okZkaPWQ^J-@v~^5L z*%n!EN;@kV+`)5^_IRyG`Ke4Yr^Dvx%GlL`2{h%+brn(W9Tj5lBqjo4dFwP>?x=81 zCPfM$rd262ANbz0}R+A-X%EXDY}BPRoXN3Gn4QiH*ebMH$^A)>QwAKQilx4 z(dkMWm(q>o8x1K7ZGRE$Tsl{7&vP3Cq8eP1Voi^xm03w-KpT(kA))aE!>8{bzGYHp1HKCjf!vV556^}T=ePkOptPpNyp6k27wW5&6jmA075JnNLN zHCd)|bQCYq?FVyzG({2+uUk)hdx3|=nY5)?`buRs!lveW{Q$euBvP(yQjx4uqhzwp zp?N;{h!gjs4EduIm$@HFuw^ep55GtNxJ?&l5&;`hWaS;5)EY*e4ki_HYpps52SjhC zKB-zght32&bfiRywva79s;yIjqPo(z==5MwXe*0p2SJ!CP|A|hQef3v`PF1quR@}1GmvU^sR?l&C|4U5 zl#1+p?{uw?5-nK6%NA?IgfU%k7ahx)V^q#WOc54KM~~7nXmAj81DS&MI)t#s(BGu6 zW~>gf(By~Y4R^rket(c0iY5s6%9LUmof%GfXk2r3*SwdgR)A^Q3^X{K5psGn6ZHK} z-Pm+3eTnYCXpn}rWx%aqSt2YmW?*8>u(yg&6@$?AICgtBVY_1=(|WAQz-R)3-nQoJMj)aFdAn<%AX?z>ilcuT3u> zCW{N8k6l6lalr0l3tFVFBq9I`RzEk~F^gDfp!YuyPMkP(Jn2{L!#M0ED_TDT^yNXOQOavA*MO#SOdrVgCf}JYRAq7WGt-1nXEgdhi@q!^`(cKzbrUKB7 zaCZ$Rp2jF0_-lPLNr9@j1$pp5_0cb%JtZScPIWq0Y{K-8tcifQ}-7~&F zy?GvS0Sh+wi0ebVEjft^+W21Zat?t=ZTFlPSpY$sWXZBH9+rly32jWI; z)p1D?eiTuoPEvN7`f=PUKrRIa*s)PihSOr9pGnyi7^+K0X!Qc)r+4U@YO< zsd-(>>~6`EHZ%u{UwhY+YI%OE2BD`}!_W&l6>+6~LvetKbE>vdFO_^Ig5b#C0AJQE zAs|qmGDja+&u^LpryV$1(!pFc>dl4&VbnofShWh#WU>H^IwzKq0so9kz&|W}CJbVNCAQ|l;~^yVIC;+k07^&)c)i_Ow^+jMxl!sM!H0MVT)d z51zo5b<~XKPP%gRp(`TY0Sisg_*I(Kn(%e;`|$-L9MZ|VCVHx4#ynjx23`CeV^7hg z831R|R_&yMjT=?L#_{a5FfRvr@g_S}LGBCgbAQO~ ziikO0$BC2ArMG~WY-7a)jZDQ)C3U@2H<*9kxwP-m+D;J40UMNUhFDOSBpBdYsIBuL zT4iK2gXk_)g3=NQ=DoUtc`>=Nl*@fgSKS;VV5Lorg{)s#zLfbc!|8-VI`ID{b_!tO zfvZ3?zw>@0(GA;ppzn+8x@dm6?}mA(ImZmn*mN zeCgdjRH!i-!8fADd0Z%*8Dvb4B8yuWL7EjbcU7#lMiVk|RNR z%-WdkTp*i203F%V%(c2osIIM&hHq-lz2Plb{n{GFh^7 z-wozivGC8M1OV{OLcUh&w9|Q*plr646c`Q)7;PjNbqJWTise<>l*EX}Jdnb@q}pL# zVg?TNJn9(UO@da=hqxi(WSh<%K0yvIWisUC{A^}v?lk&ucbbL!<(R7%CnI-{jG7CA z|J`D!Ff-btpzp*wa+v8VNa}62&cslyYaS&+)@v@aJacuHkY~oWM+OQLlzFR z?whoOuxxu&dlYz?(eHp0U?zRq)@mbfkWvklsLphdGU<$jPIi`0M|8wZ_jKy|Glk(| zHr^r&Um92p3Q52V@my68nkS+VQqa-WZ38?$D+8+kCRkdBN^C}%hu-0EZmF3!m(qT zC8(m^0^5`c6HyP^H{&s&@t; zM^Dwj0Cd1Ws%fQ4(_DjC0Z8xZc2E@2oE=J)lZ_@ygoQIKStVsL>NO1D*Uq}l%Q8MP zk0X-%n!zbA@Z4EZA(p(b``n06`_pjpy)Ws??(JF+h}`73x2>Ieu8%m~h3LNA1*NUG zGMzEP+r9&Q0w)fFS3bZRWdy_Wg|AmNraD=o;^%RdYR3bukqA_Vkm>nZvXseXmNj>r zfokW#{hTuRRLX*{6+t&Wos=mF47S(R_5m=9H&;wCA5=g@xVyHZ#Y=&AH|7Nlg3k&O>3l%DK^B)i8ai)v$-=0fzk9*^qnEHbzrXs)LM`jyZAy75CgaG@Z-N;Jor? z++~172vQO%^>bI__G+P-WEbW*y1w$+WpHSFklqY!%66vIalq}z2uGcF;@{5e4Y}pv zH1RMVaT1BiaORqAV2co2LZ^SNb1b@-rL^ww=e7(%X=kh=JRN7$IQR)W`{FqGday*C z7KBfP=w$kkg+(BLj<@yeJD-_%+i4yI$`-qm$Hj)>Oob*E?YV$$2eP_^wZMqhX~_|G z0U?RIM3$41kI@MX{gOj0e+|5qFys*woC>+dhAc^FEjuUt2|lif=%N|T8mZLl4Jq(j z;dIgo@IbHvIX8OpyT#2gc_sd78pwwm&t5nVVNHoKEowq z{Bp!MMWNMB*JtN>L0$r_GKGqsH^6--0^nI%Bsxy0IUC`!04dT8x@g3?_41L`KgA+v zm^ple=0)=J#`%XPZgK5M?vyMGi)7~LLUty@>I3zpA2O4{ohMSFj1ha2Cn-(1lP@?I z;cv!BW=L*!kR2D(xJc1YwAN@^SplmB!|(VTD3wf(7ZL8qBA3nJ_E&PmarCUx>dVNy zWkS3>tGN?IKn$wEQ8O%T?YO?_b9Ow3Lh4)z<_0#FAONV2Oxs^h`v6DI)B^H~cJ9G~ z=o>s8W}9FRFDIknD;!U~t-DYq?RYO3so4lwC0Y^`)<7HDf=4{TN`sQ}qrv z=Goy!?H%qo(WaLUXXoZf?s#@_F*B>xo0P3BajVamGDG7dapvIG90H9TG)y%39qbAQ?n)Tp+2=0YT9w=|IZ(_XgoMzv2yV>IR}% zNP}&-Df$$Oj~vQa4PhwlO;eGz6eBiTUjpo(#d;MR2biiQt6c553~X~hi2q(`0UW%e z^ymN|E9>(n3tog1h-N@Hlfh0?kJE}J$6?6V3%R2tEG0&Vo!8PhY7sho3VhdIPYw|p z+?jqPcX+TvR_W$^Lc};xo>t#L4ymd!9;PS`g2U6X&!}` zmpSf%Ua5XNZqES;g1dd1aG;tnWv05DGnv%5tQr*)jH?#8niJA^+MqZ6(2Og;&4b_; zmVd=rm&vq}S<03&;3WnYVts?MvwDrrNZ*;LRIMeXkMsD+r$_|uG&u_SjofEi@0|*K zKyBU4j0ro0VF@$wLGm6K=IB65p%P4qiU)Cll>pnU*Xo^UXFE@_;+boQ&^L@UicR%7 zwKaQwTTl`iiq-)pftR`xHliXq3;{4n-CLdSPIQ$>RuXE`10B1L?n!j@t<%#Pv$%M?uX=>vfUlX1l29ut;%-OB zwe^C5X%gwg0@l)~SL9>E*6wzMZm=LYtq2klWw*G91Y8#=pfE2boo958ozXYhYO|M2 zzP8zOW=z7r8Bm6a?aRj)G-lT!v##*y-gdr|jLeIq(y?<*MAhwap}SRr{b7^pzC?hb z_?UDhvW#E@yq$%j`>3oUHsj_uMkM+^#MLF*E_K=ghzqgX=S>KeK)*mHr=bUNux~mW z?@@PRk?dkSLr!AEexmN^x?mmn`bi6jfPvUUi!YLM#!3zv(KP@&Ij}~XeW1BQd#-t) zZWazebM_VW+5tVe55KxZc?)`Bma7L$qi~?gOgToq33`A7nDUm>cL0I=s9)__Bur}b(B z!$iWo0=vdKaicf1#Zx-Z8G;3w9~f{0LVp-;*%<=GFm%P_R&hs+(+z`d>qWglz*CcL z%Whw?An-W49nEmw!rlfR6*EHL|mBEC7va7b9dOE=Lv6vep3#fq5N_xE{o%SjezJylyIui8K@t?;CPZJm8t7cCIc~_V8 zgHZwxZ68^$*L*nWQooQ)7}!9sSH~C=ef=rZL)E4}6^j!<-v=Y32#KBSxy=dnl{3uq zZqh+WY{yL_4q}Rgu!LirBc!v(mG#Ruqp8eSLPMq~zEwQ~y6#~`X1#&k2F93B!(B`V zHykQ42IK0n{}qM7f}7$Y`ItR-d%k$RKE1#MvY_UU!kI(RgkJKXW?4jR`UA(AA#BuT z2upTu3B#OAN&Z`_H!S*}Mp-O!n6X=(3FiGqRrC0-drp>K7u zR|9gWYYBrO3_~CcgO?0Lmka}!oYaD1DLUDtk6LR$CkH zf-WUwB$>-#9XQFbK&oJe04bm{QtMPFm@XN0 zlw6RngKR0T&>4;6Z}(m-7Pxn6jpUZAZk=OndkQC+m>5zNl!up=vX3cD)YZA_2v6Y{ zplu6u=o)BSw!9R*>A$PGwN@`~IZ&?^jfE8$MxI6Ag%uFr8M@`m@JOAg7uE2b=&jZ* zR)_4woFvu7X)7yY7k7JH%{V3xI|rji zWq+N@nDv^Uae$MaKvdx)^_uRDxUqd9+FR4d#V(ZAf_kp!?1Yp8b%HR@fQp_s=`^HY zbsP>R^nZK7&B(GWI-~@gi?{n~QmwNZ7+mMDUGLz0?dJ+jTi^>tB#jK6|vj#(tQn|7|{A^^J5= z`Wut<#>dSxLMvtb)cU*9z2yBrTGZ*^Y|Rc>zWw2`BhNnj*g=z5lhn_OV^5l3H{Tq# zo7i>h`8So8tKmCO3rP*>d}U|Zh@5{P_OEpEF*khlTkbV&`B+K!N;?OtNa2$$?Wa@+ zHOQp;!Cu3i^wF2DRVFDY})n=b)iomRkPrdBbKUJI$2okgTj9ukGcY zc@3g>GcoO-N0QY+#ecrdP5pM;)qMA5C;@umW95!Z*{WRIn1g(u+#C&$zVZ_t zpxGGsv2kvGG-MnaV*2(Ifm*cUscmr5={m5%T0BGgrLCcfV3ozrFLXH76J-fAC}@qF zoh+|Q70JJR)mkGotzkw|EiCHiHlp6KuIu#jZI_iXp|z@=?PFaLTS3p-CRgKp=r_J< z{Tex*YW+v?NaNY$j4y8n?wbUCu}E*Hu2MsXr7~dB?Z4UjJ1UD+0PvwxbmyLzP(P5b`1M0)Q$&~sL6Z4voQU~qgR*J?*H7KCVndG$j*!K-L3Kc-XdLfZ10i*8M%xD zL(u=e3E0~o+T^l+^hDM%%}s)&;=Z8}pRYSZhx`_JLFaB;9rr{JAIvf3>?1&e{lvlWC7Za&K-|OW)umXbb(_yt8rL zVmRY()uKl7dv%`go8aHqVv3X!UY{Ik8Vx)icvnW-f}Ve?^6uxWt8bbQ#nq~1Se?Fl zxf%XZ=JIj*cK$xvIEqe?sOw{>O}8w1%86P`yYo>jj7M&XzkTqO{o>0_fGK5 z0~BaCmZ$FFgA(WEePk|NhZ!_4zFS9F@42`VqHB(qycPWYUhc^5gpc@((e({?3K1v1 zUCThXJSJ_t7krp1FN{5JJrMS~dPhUs{tz!ik0py+$&%ughfDGf^jO>b@BUczr=dGf zZ+PsKokVEd_A`bRhe^#t6ePU zJeB};YX64IIeWs+A~!ld>t)6KnNFOm*jmW9n}<3F-<;iBQ(fx5@iNTthZg61u~uCk zr8dWX*fhLUj=G&RQqfpvWE@gBUX8Xd5pC=07BN$7HkuC0>e9HN^eW#i@S65j##Gh! z3v_?|G5vIrTRPQpqsh-Px&t@ ze|W6~kAI}Rd1+%=b;>2u4_9MzQSH@LKU+JsgTLNrJbZB9QCDXVouP`rm$+%EmbL&d zIOM>?HJfDc`&$o;?nPPka|2wOyzXknTf5$s(A|+~kZYi3|KZ_}*D2(1?X&Z7WH?u} zvU$%l_wPe{RARXY4`^WJc-b>L}ezU6Zf9WY+4`Lc0Fk^@F4fx zhn_3r*Zbwa#4Vq5snPjXZ}DLo-6OI~i9KucdIXHaeX7cGs_F4 zmy^e9qtGKmd!JqZdWLGC@zJlfC@@~scz(BZ;$ouHZaH5FT=(KF1F7|fvFBQ>t3Rc>=scE?&xkWNq@oK62K_t-J=D#@i3 zacAa&+@sC`W$=Ede8SX7T%6kRCqu-%e9hiU*$ahPS#5{*?2e@QtU&VfvE<1g*Ysa3 ztli_4TpZq|c#w0u;^C|3d6D~uIwwYow0TE*O)vdiQ3&{^+p3=xFs3^?)^=M1#C!7-?apkL{!+4l%LCZW*hR`(X5iI&vss8QfwCo=zo#cyr zOkE|D{uy)1)b?L?*?YIT?<&kMtHMLy$K#eulTY9C!{oiulPIOxD7S`<#Dx+e!rLg} z=fAWJh30BSO~YGL-_!N%{KzoS16g zxq9W}9p-C>MP?n``wZ!t_A{xIcA|P^s6c!kM(^$h-uTJ6B>OD%eUB>L{K0Cr2sWg` zZTzOeK1T6@NzaI@%bu8X($RgFp1)6jDIOMl=j8t3c75ySqsvVdK0Q*mF$IrqJi00$ z7k(S z9w)6^$)=pv{u}Ff=*nGu#;Dxo7E*4&{0B+7C_Cf%t|*W7iY~>_*Vv_y#IRGQrnxU4 zAHVp-=<2c>E2Z~1O=!uiCF)$lK8d`>3+}h_jEC{^4~(<#+ib{S=v2yn$nXzkcCBNpftbp_hL>{%$B zH0A9R7{6kXt*wNpD6=2@9@0wunW6$saeQ`?Q>S;wK*Qkg1JWwWJ)5$ZelG}Nd%!=c z(uVsglO|2~TA4aW(yL~BcJHezR<-pNJ;ZM|OF?s9g0Q4y0MWxp>QN;w^P{}@PiqMGF-S;MVtE?Fwf1?$pkO$XEt_N!b}VLlbyYNJ6ZU%qClNEs ze%*U#i9eS}W5qnWNC=F_P?U$=?(|z15Ov>mZ*;i!Sy1L!-=gSH2 zgYn4kTIfU!L>nXdZZ)wz=PGT+z1ut{BZjgX-O?Vj9b|s5|I1cTB$_UvmBi;CLJya= z5R=kI>2Fp|!|@~21Zq2h8;*xY^gt$FOY{;5Oa9hB0=g&?Nvs8*(d&r54K9Jl-D3b* z(#F2;l|`_<@Px^ql*yTDlMVi(sTih~7g!79;l##7vI}csY*$78IG>4R&t_Dnrx7By zmPZq7-VVGf_HSw04tPN)o6+aoB>4(0}AiK(q^iS z=0gbFr;FSBO(>Mt&^9GPOmrlB2F@;I@(AXB>7zoF{$BBk6FHlm5v$R$o0e~=-UM#J zgekwLippYJ*m_b-ywP*Uk?hpUG)FLn8houdtGA-*j)8&X%l?6{Wd!73SHZxE%Ct-7 z1RSNeH!!<5WspBS%Qjer|AKNf4EkF+e!o}BQVj0SXrpHP#D7tD&x8=5?{c*X(6Fxr z42F*B?Hy#TGwf#=-hIUl-+Bc#GH-pkPh9&W46d?Nf37Qg@smrUz}iIu*@o?_(d@<1 z9AW~dW-Cc@4gL$Uwa>u)I~(V97_3MkUL41g1WWr2Af#S5--Sg4{sFin0Yg#25M4O@ zqA4EBp@4y7Fx<&Al9zyvyREN%O}T-8(5?V*ip}AqjHU{{Of7E@0DsZ1zi$(J05q$t z(PsKr`|E6FJhyI;1v|v&E+P;E-2bu8(|mVrgY_VLcvb=1rpA@W&HxHPQoM?xPt8=H z4gvvfn=)P&3lw-inh@MAVD!I32$~4oOL(Luhi?y%mZ0OWjuQq!_K zkYDC;sRZbkl$ckJJj%oM=d!SR6!9PE>A+|+QGh9FyuG~k(Kqp3#PNAZc?ogIwoQ?; zJm6iwO<8V(e5a=)Rv=#&tQ9$n^8)KD+s^A0gp=%W`YI)z5f$&{TTo*GsokmvxeQP$ zO9XFX`6yvtw=@%bc>sOIQlKTwtCVI+YRyB+O3>FW1t!8gRWVNYVJ5n=1X58VD2?R@ z3-hGJIGWN-n9Bg#(Ne$?XI_l0>zVjN#-X1~@v5deN4%Qq9_(18nF3EIn2 z5F5+CAk4D|;9Uj;FkxQ0G}Az59$j4`$dBc_3G)mNGl83lR|kmoB@kQ*v7`iTZ7Gl! z<`sx>S`IS>&X$5`VIF`Ia(tfRIv}WwES&67(WsYKs@KBO8^N|>5zc6o? zFwaVury|U|BOHT?Mdin$5@Jymv8WfZsCTibx>!_EEGjORFDA@$6XQ6FarDGE{)d^v z+Vd@1^8jbJ4>N_tI8S4XuMXHsGn-?<^(D^Q^AS4pqSDOh!%TorUcxaqEwL^GK$BBr zQRgio)g>U;fpndD&BIKDaEzrT5oQT6qF0Oq0Phs$Sqk%%g?SQU9C_)`(vmr8W^8P| z&b+#CjH4yGDb~wnphhgp)6)2G=#Z^IiGPeS-s|-55t#G+dRI88==s)u5U=SX@uMwq zKWstvqCj>qf;}%fFcFcT-tmmt8^d%~=81uLfteknwnS;j#sd&<-ym$c4Dy6Iyfu%G zXO1G7iw(Ui%pV>XL2Ew*atmePs9kMaiXfhHxifnnlE93PVa{cOm&=@~m%ne#*Iex9 z%zyK0nlFPrwQi%8fowQhAfC`gbWuA0NI8U7Mu~6b4R6nX3(sWzpgdt_rSs9MF~4jD zzUA1pA9QQa=r6WO=&q5jXJN7zUxx}>y_vU#$BBwZ{{NrFb<6W?oBzZVQyGhDh(#sG zu24kfcvk>Oh+!)leJfPJ|2WU*J^6vVI)J+}z}wzi1}iIp)s(<0OJKMXN=XUjO$pJ; z5?v9?*A|XRk40t2qMBk+DFC7*fR>~Yrw)*;G_zf-6%Fxaj!HAl4g*O0|C2CJjI&dC z9GzwuWn~FSR|_~-JP~!%5|CrJG;^z(2{UjV*Q=kkpyCJ$u|3#4Qt&bmH#*vb<+}k*^;$xpSm)Kk^6r-!aSGmc?q2zyE4};7jwbV z;Q0InVNdq~9#^q!n{8nOa~%LQs{lYrAyhaE!Gj<>~-n@gTPWN@)qv%@R^mLIl*#!BXH39-+!Ukr-(R6mw!)$aYfF%ji;E z9k>j?DF-!_p-LBb;`Qr`Wj#B+Oh3#7Y*|oS5=c4XKm?i$SW`hPxVi)o2nAPyogi}_ znaNrdQ%irD9cBq$$MSdKd<#=9!f2&`!em7$MEC!=33**2NGlb9TIIgB|C48Jq}=A8 z4fpL_L+@Njpy^ zOJA&Zu@4U_L^n*P!akh(V1Z6ynT6kNV9-D8n@=mcdGVykpu%?JTVSo(r*i`qWHLto zGb1b-&YJ0D8E6BR$8!X+l)EUp&78dl`5(9 zParp_AlRv#kCq0YU_ph(9lPe!u#e?1)&QIMv8t5wtyE1V4jbsmme3x%tz!3G<7=7+ zH;C&mI_bO*(|q)~R;s&_+Se*~VI0P>+>9?`1?LyJ3-_ZhSB>eim7k*QmB!bs4;*b_ zE${V`6$me+p<^eFQB;i*GyYzylLYGQWQ;1pXiVTn;jt!mg?0y8Hm`SGME`y*?l`s% z@JZ$~zcA|bfC5D31WwVmmD;bQ7LQXIU-LaMN80j#ys~AqCq3R4XrIxZWY%!Tf5*K@ zO5M2#?vc;nTmJ)G=Bf-TphZqVSnV?NX^^;itSwA_tRIrfGDGdR657xM+P&`%AZ78; zZmi|SC3%4Ck$5%sXf&`#{rgdXhRIVtQfg2EBHEDF5#_PUMSoug2!KADo2P|#3oQLU zfS>;F7%5JyQY@P4R05n#?|wNUYaWQ+zmP_Z{}Y(BDa2C& z@ksnh#MVIo@NlevoxbIQ$lceuVpbi6EOOV5e+df8B;2;>Fv*f3A zi<%O^`PLvexU9@cM5Mn;q~gouNyG*gs1AF&UXuricv$(L0DpItz_9?jsAv_3ydXAj zy!EvvnduHV_vFxSinU*BcG)@N7h{~FHOC*h&PD_Bl03LPRwTmlkDZ0}4x- zt3k8m2I#B5Ag5)_10kuQ-IC{*-1}8yK1T?Os6cpo4j3tvaV(0qz z0qS+2Qxo|>C2~yAeI8Ii{Rzl|zw^CA^AXz}EQ+&8Iz6rJF=~J{k>3{E-H^(RMzREE zz`)YMqGzITfhcgO@jzwFvS6((ZmtWW67!WcksQ~#{^~LF289PnXQtvT1dl_zVHd6w zR$4Vb2tvd-3(>K2WGO&~UZ11V9e48b0twasUBxFd12a&cA_PC%JE>dqz~9FG^8W3A z?9KL0o_Q232>m{zW3r$hdm*aNT@V4N(&$rOkk8TiG}!a&w$94qYc&VwNcGmMETIlQ zS(#@^iG~0y#M!L6;0kvFcA&b|ESkZ$fmzV4P1oM7r{9a6>%va+5R_>5!<+-T?~3PY zrv5HI=Ox$(z0#jOl>NNXYhbwd^~&AYnG0I(PSG~Uba21_C8kZPH04`srcc7uTFfm% z3Uv#6bQOv{A{FvYUgn!Pf%5FrW>4DZT$*jf&wMin-k6)cn@DSvyce|}ak^k-R|z4- zw~)m&){OiZeaL$-Iw+`d{HlSQMc#*ZeXOd+_KLsFw^;@X{h3QAZzxXPC^joNr|Wws z;)7nF(9DA}6$$(99fsqO2gER)KKl8Rcw$Bx>HOX4&wfg(#Lqf9Od}zDURI=DG9zO^fA-@S@|qDfv}9*5mEL7ov_uPB!LIzP;3u zN5Ti;hJy-j?RT%7FEnq~LbU$6r=k`X>NUFmi8y6^;mG`byS9jnA@8%fEeomWsOsPY zyrPkSf@cFy{w0mF7O(kFK6+EhB!^#8;TjA(4j<&pF+ZT2<=(t#SXkAB{Bj>D7WsW6)Mm8j8hWzQXVO;gAB) zPP}&0cz(});fFOj2cJ)o@2eME1NW_S&_@Ao# zbW`!lHO+2X|0{{y#yXP^&+L8Xt)tV*uUuCDcJT9}o~#}DjeBzH?xJADMB5wgYD24q zNckt}9>89Oca@4_;A5k5AH5{}p3mQeH@^3(mnLTgoTpYI-3EEL5wy?rrUAX9~r(;4pm_D-m$(UiSE`p^Aj{qrjPeb_K+&EwgQ zn`iVMW<-k2V*e(|v>7>Wyq!K=)ZO9T`kP;J{f6m&U;9Z!hlApdeC2GiDxEZ^T)vakqJS z-I;kPbF5kOf}6>gFCc?TpS{gl$$o!OJnfG+ z>CZhw?+b@cUi)@N#&5akq&!?;gVsKgX6Lmk9ywiKJ5&-bW*;RFuOFBW$U9L`37&A3 zu>-zJy`69{DG_xq4c_=Reg_D|FmJv2*UsiQLzQ#wk0UwfK)~C{$|&2qkbCwmcDW(f zP97X&NJW8)*^vV~^Y4EXZFoh&-KlnAw-8eps1W(c198 zZ8b8a)U9u1tKS_W;4Ol$q*{#>tmt7*>R`@a+b_|iCo4bfuM=5npBo?0r}@F_ZRzky z;MIYIw2%XK;uLo61N=JfBcXWbc<1%S^R3tQ*MdLAQ&-7DYR04Q0)=a}w?9{Js;d7! zu5Wwh^mZPs)&5l%ISr$fR@*7zml#lYWMd;>(dl`wZqvoAr(-4U;E(s@XnTGRt^I~HxP&O|*|2;^`uE2d?)0lK zqq>dGo={n9`fvtnuIKA$*MZOc;vIFUuVHgZn^CjCU#sD{S_@IAKAm!+XGpbr3@=Al zfdJ7aKChcqEAdhJLt9(h?uZEAAjepiJOL|4J?xVp%1ws_seK^5kKMP#QY;ynxv z@0rw3kq?q#5J-BG$y{ZY?KoyVy;|hei-L@<-!=D&h$qzsttGU!nnZiiXY#IMZ3MOd z)?tf=Jv_*<=Px~;+wiEV5iZm%s?B1iEuSd3cUp}CD#()jm4T$x^v#t2U3E?$hgC&K zau;qr+6I|vgH8vVBpq8MfIY1`qWQey%j;NoX>)i?e@!pFC3TnJWY#RvEpV&s3y2X~ z0%k*wyj)ykCC&0#;DdbnN~a()J*23y#P{Mx)ex309@Ze}-Mi`=cVod2jYh9lcKKQG zho;E6JeDuyTeMcX@4WD;tc`iwn;n9(9x`?V%^T{mBmFwS$e%?|oZMSy$Mvn78xXUu zeCfs~8wN}6lWIAoE(ljR=e~o_9ye(=SYnl}3jVz2ReH!b&Uu8_-hYsgU`3qd_0x^e z$k8?>3Xr|8s~82jrW^=G6CK16{DkPJ6=ICDz}M&iT<}6Om8r;ULWl{-pd@f8qpD{? zPzrgheMtC+{&A)x_^@EO_$Xe`RrwWdNLOW+2o|iToh2s(U{TYP2y;P&C?{}?T=nP( z9AosTcXmS0Q6_JIA-Tf9_r}oWcxI=!hzOQsU7;-VRM-#5%`?SCR{Udn1p>|^bJ|ti z1WM21{gHa~!={K82&HgIrUnxM3++(j_(#FgNj=}hG z{sL!Xt^trIs%I7Z+w&WF)PzanMWFRn<@g)v{E@x0YrO9R^cy^~$@ccUjqWAM^$^4{ zO&(~DOWghr;h=*yP3=b(a4(u47Re|SP3f7wU-~i9ZDjC|FKDHF59yo{K6>SXAcEd| z*LA&TPbMUq$Z9b=YXw_%GoItI^lH^&NJPr%bwROPuYQqvyGQdD@8zCHNzBy%*ZLCf zcVZnwfXe(?duXu8#qe&oebP4Nto23#i5N`yna?(;?4gWq7u^gKW7`i$_fXOAEAJ+J z$(Y$^-I28>A?WyI{d-vK#tTh3eI02#0`i3NUUQoGF?BcOy_t%f-X3FRHs+ew`1JFf z#pQ)dqpCVIR^!9|)Mt=8fBRr=$Qv^_J>qr(%Kh4<^yw8&gw%(& zKFt?xMxYy2W^L+NLN4->3%GGGEX*DprpFE~M{+Zq-Cv}G^?7>i)XVj(CSp%zAp_sj zt3$B?2(9pIr*+Q_ch4G(dN3AllYRHhsOnfgZ=xA}&+5O|(=EzgdPfWSmesG`yE)cK zTmPKp{4A&s`C19Rw-w<>lq7rEk!JOhPT=JMF&Mo3p;1dv*leO{7oijAN0oXaj|WUi}K zs$;Ekkw-6ssc$X51D$WC4P`U_#v?^;0C{N1z9(na~fCtS*WI{F1xUq z7E-__F?w(anD~i}=YE?GR!N+7bwnJR`Srs0s+ToBiSe?P zUjiLA($v9KB402#J?YwkCEP?tVh>R}uzZo6Y1Q7q(CsOhhhKmzVj@3KX57~t-H-+| z-*Y70SE`V&8Ld4+^AYRQ5t!?!h;+CCuh4C!j=tVgu(%$NYT1iowLcr4yPZdRRo~xr zy~ksIb5~)1*Q|C&1!E<%Xw+!OsL{DEi_7`v)}#(Vx(=a#Hd+k3A$4XtwY?y|s^^3G zE62D2W5-{y=Q-z4Gj%V9FHhLuHD`!2>=xIxR_OSPMd~1yVe$lNbDfcYm+adCkKrG? zT;D%upSz_ggRX>9FkqcwR(`CDwI{{5S|_k()YheFTUlvZAsLgixX#r) zi*>iXN&w?lY9eF2gnxwhAT}<{l=atK{bA*abx#0bs;`{#<&)Q-xVq^LlwUQJp7cA% z*@Z^+CU*~K^&8GC=Lp_FK@{npQ5_iQ`v!ju2L)lIv_azm&ku};AqVH{)4e5Tq6Egz zSE8av&PS{mS4C`IX3ta2yzt<(5H0L&l5hUA;cavryj>7+8C;XuZ)p#%)Mbyk)Z>PX ztH)&-*swPkq*8>fX&&^SUBFaf$IX!>TJ%9sG6CEp{hTXoE`$GRK+V*&z1i{j=p9JO zbA~NpWX$vd#E*V=O}|yKbj%iUV#X6t!e2p8}b1Z0M@#nAy(EI#S6U0if$ z%XtPia96BnI0z2V9rRe&hqUxJgx51?)0(z+_ae;fAn7^j?#0*GckO|MD#&WazMe`g zTrILy9hK-49m;3t^k4OI#7_j~>#nKmt#MlOe6;8fXUIAIF2x>f=!{8DzpIxQenRnv zD6Cj^F#YoNFa0e`b30}xdSvH0FBl1}UJtZ}&&+W6L00&Vm3l2$Io7pDRtIBnH3(ew z=|i6;Om3K+(?lDB;ye2Luhio(l|5l*7RCQGVWsBJ+ZHK$^MLE}|Io%CH|@b_2bMxv zlFcslbWMd9i|d!LNxl3}h&TO$nVumn*ek+g#tXnb4YRN#JsX>gi!mFp4-@Mi(={H` zP1-PTExKth$^&O!!I0=N0-&;|dyH?cL>K6;73dM$+z=`=qdA)H^*Db|f!3X>q@~MV z=kX{n<7*wRSZwZ=mkbC;h+|yH-TL0M5w6&IMD%&obbAOR<;zc6fSQm*4b-<$-)vK}gaY{&BE3EchFP0IsKFd(aK$bf@FEN+<+3 zstvhc)%}m#tqrL_wlaot=gKyPdNz2=Z{RUr3yUkMa8JnaXcaxs_eIMUloP^zhNz8w zxP}KhYH&3m+6(&jLxAjj)XxjO>oZw1rtMtWde<0~S3_aauijAnf%&__mVVv2<&fUsy^ZFTUN;%TUYFQ9y_-aS zK{sn0_H=lAxoqYvs_`cXtYdI*O}i&fZ+kAqM}TZt!s2onsHS6>jIT*GTZSw3tn{{R z%BUn(cY7+^2NE9^u{<^A8HnB@9xxd9QXZ$gfS z7hh+8rU;rKJun*bR$IvSq87@VAPG$-24%U&e-rW&u=_e*= zMmb0W@Qm3@xE9oeNVG)fxUJiQP@GYc*=z2r4h zZwGt36-e`3i!(TjMwV_UAkKzPehG>wLL(VZogGX?*$0-eNSfyA0_7;J#WXL}J0&{X zcr5S?!I=GE-(`6l{;aGNWPCb=Y(zQT@xojd>=^ZNx|=jS#g$a+ZyDT*VYF`TSP^Fg z%K5RAktR;uJ-3UBzx76ry{)H8WeFx_e7KK+D_V!;I7etWQsjMEX5A?{xe0%0RMF>8jjcR$bfy+ ze3Km?qJVvd{AiVpKEc={_ZXT;*wZr_KL(PBou%zvJJHRjS?+a++QT*r-TJPQJ~~(~ zMCvUS;-6(-L*{MoW7qD~h{;B3nU*SMLyB(?29g4&FLc)Jae_S+<6<9Cy6xP zCP%bI-7dBxssR#6LMhXqCf;wn=tN0@SESHP!G?`PqOYjyTI_-w8oXR?PjEKhW@5KO zS8(aT<|ID%skvtT&@P&FFtRtJ-!>^&ieddH5csw+-+Z!_>??KPKq+ zwB@dMSGq-HM8N#Hd)WDVX8G$n?DcI8{%duj|1DEU>yyZ*^5YBLK>}y1;-jP3I4(aV+ZoK*m!ImchJM!-DZ#MuBWKN7Lv(3sh{t`3k-n$7?2R#vS{2*7~0s$j5YQUfh8mwvE+!!3q4wlFC@WHgm|+vHq-WV2wQ^f z-z;AGwVZN+XSkm�{{qNA72EKA?ZAqEnp5jn#>1`vYMNsW*Z9G|;U-w&3<$QwE_} zBPN%7P@~jS10(sJsA}+Y=Y|eLeL|z?RPIp!9V?HcaOdWxXBos#>ounkE)E3$yU8pK z^y6i^JvanNQk~htxy8u8os4z%T9h8Cqpcq#CK0@yvpf8fiG6GHd!p@8+6i`Ob!;O4 z$JbEY`xK!PDez{nHB^TEk_~yo3Je-vVf{Z5as-_CfB) zk5ObYeV5~@R{E?K3z~oZOXdwYp6ICoN|UWz2`&UmKhUBFItjmRFacy00ANQWlSwQRw&{X|~w zRvE3LAb+ccw%mVIQUm1DT|V?RtaS|2n4$SaeElSC=vqN2@EB**u@$f0p};=Z>@Skt z8)lKX-nqe0#Y2ZfNEINo4jxM1CUsFxu?scQQ}!>I(coU~YU$4xSH$sVoD`MrkSN|! z4TThf6encx#&lB_I?bD5U_G&eXYzt9u6yEsAj8(zu~iS@k8ZMvBSDTCFC3)#!U~vB zd+r@L=rdgvLq(;U8*|qBvO!{T;ra;dvIhSIJ0n1Y7i%uVQKn?rc0bNBTr1LNHJqjO z8vcOju@iTFSRvtFSZxm7neob;DvnMrJ^ZTm3mZ35L&`7Gq5eJWL4#-*}tj|F{CGsylP@me%kkd;FQ3 zJ?~PW9G$eRVN>rxSwQLw#`=K|vQdwc1?MLYYw?PV}f21C<8S-a?NjJa5{9wXpuB0xHafOiU1j}&FOB>z4Q@` zy<5Wi=JMA28qs$&!`snW02(`c{cTNo{1`SR(*XNqTN~f(e>5YaYxmPM+F<>H6L?Fe z-WGm;I8_stzB6hkP2B0_))!j0q`cq-bi^`(tTScN8_kHC8lb%Ryzp)nr7VUpOoKhJ zN7^tXBMsaNxw@R&J(&i)hl7r~YkDLK)#9ZAz7ShR9@haB0bb>fQ-eH4LbASO0#vXC(2&%L*n2b!#zTpJs=G)O#K_&;gQ;^3dFyqSD=TUTT z2J|dNMI(em1vagF!S&U3$j;@ejBMb^I^!o7OlgCl#S8j8$s*DWQt`Y#uR)d6YkPVv zgdOpN*qUc9DYNgt!Os?@o|=rl2vi%8d~J*r_3%R#=+pX$^UU?b?>}Qy=t(=5^hgzu z_ZEn)c@2RJfYmIM`|m)um$g1mv4DirHCo7~4HBb@kvobjo%Pmmfo28lK)?jr++mpvY`JovjJs=WJCWc7mzAC8VaBs zZ|6*duIOK*0IBV#1Z$`iJ$G;;+(rY#|D#5e9-tRupq!nTvh3R$wed{fGfJ3kJ9{`D zyOm+T-3-AuJKJX3qh}Ap7y9=pVK$c@z!$J%7rk)hcA$5ku^PDN;eLj|ZHbOE%s$Z{ zXe<5UccO^x^shSE_JX^5aO{xAc;6wqHF(-$(+FRP;}=TywcMb=J#|$u9JV4H@0FHe zZ^2bzFCEf|c}_jC<4gv30-D`#!3dDs&C4@a&=??SVir}dJgBr6T)zWfpkKPsAy5CC za&sEcclPiz!sSpYNY)su%FaLqL;dg)nnt|`zmHy4#!#c2xL`HA0 zz)F7^CwISaLgh)a^CkV|-wrf5NXJ2+g%zX01y$DiEU7^F0?6OqOH6!~ooO%lb&-)a zuL--G472mnXj_BnuFa9!ZbO&6;U>;r*}aHE4uCOlH9G-DE&>>NK6%ER>|fp9JNXufAoO|$>F5CWTn}TMmUnD5nTz8$gwxs#_t!!2%yfwviozYF1fChOtV~Hl82gedh>Ie4 zCTv`tk{m_%wMXXdb0R*DLaD$Ph?ng6GSqv(Tqq^e*zft=QG8*b9x0|_M|dE-s$WtS z!>_NR4dUKChH~Eh1}F|{Ftqae!+st@zeMV3^nsf{6O|y~Z{?~!p{-2YFKV!Kw*L{` zwZG)1h%*a~v_Z660#bZMQ}3+e^4cb?%DW7m3gzHzvROBtY|8;ns?(t7jBTBOFQm6R z6u*-HH${W<2`YgRy_8-W>lO{3!ve{0SD=FNe>~6W+gTmw)Ah#yFM1d!S(EK?k zpCx*W5D;R|SI}ikDifcq-E<|72cbRAb?jK~K238y(HSg77u7Wn8a#w9=Gqd{Q8xPP z0TUUp3+*b`?hUW)B^!BzofP5u5w3Yiz2dlKa`sQ-1uxq858NND`9Y4dW~Q&hBjizb zOsYK8my9+Fl&q(?=JJAyk)TaIh)(8S} zbvoZC04rHQV>lU@3+PEhM*bVkR86cT7U0tGE)vB1*tQKkAJZI1IP}#8qJd6N=$y#z z<*7l#D}eyd{3P4RVIUnl9tQqGirIV_Y7DP3-mgTF`u=cE4!(dZb^^=r9;T2hI$G1X z*M+kuE=(L|gH#P3BNk=JmDG;lB<4lALZ*Ot+lD zdHxQ%uTG{t1g!vHa9#%-U~?aB5KBpia@K7#ofQKHrN|L?imBT6TxZ(zAAD0AluzE8 z5$$`{QS`@csf~Ygw6- z;oXc+RlUDH)|U{2dV_BuaA>_P-8xfcZwRkc!J2vI*!zC2s{2r ze|YT%N$QqY_+EP?g5h~qUr2YYi)7So2p&E}%p*w8y3*f&2B~3(N#%ha)1XYzvY3NE zy26nA7!ucqRm#-CqIgO0DYyPZlpO9KRJNkE{)RD{A^pMu?60?0Kn6{=f_;;TRvp5N z(gam{+V-d{oL=))iWc7bQ!_hz?n|o}!7erU?^V4NM7=LPO14c{q5?`PEL zIGTdk)SVg~M-i(M=EJ1!Df5Mk6Fb%?TeBnhWSUVf*L>E^QG*^fvUQ2^;!VUOCFi(= z2Wi3JKYd2DZT&o^5kv8V0YMpLCf{F00KBZ;LG~|64bL3H%AM>0KQb_UBlnI$$g184 ztAuHAl)h&Av-R}@KrEq2k}LsD9z-CS_PaA7T~Xqh43n5+U$Nb425J2G)ZDFOG)KeY zs$Ga&Ar0(58U%AWSr$}f0seA1n;F@*S|3xm{Doj zMmNHz65;)HrZzDzw1-d)%ICmZY_`J8%J`>8c7d-X+El-je3xb zc2qo*V%M!rV{XY0K&(5!#5Dqq0d5AIDi))OVZAy{nu+lff+Ij9MbL?)%{lHGIP@%@ zAX#Kpe0Y7QZXd8nPpF8Dl?|G29_l3`4Qya>GprJ@G8k9y`@me z<{|M6<1X_qz@KAXQwXP4?7!;*ky^G$UT7fv1~zC9o*A90DOmmfS#VKNlAeAo3mDF# z82{v8oDA-s5m&nI%(H8s7s4)6>>W@?d5TBK1%W3QtZ3kq;B4;U_g&dgj=M+Zu$=E; zjNV!t$+zBU;mChsRyudbZ`NqfXfmHRPLnu+od*b&O{hTPHuhq(D!=gAK-6~2<(aAH ztfi(BB^CAQ6fjif#Su(?YksqxfE$h|I{bHbz9llXM6ci~Mbu9dIi-&<5rA`foo^Z_S!S|8i!|_pv%k3opw_K)w46Q-;Kb z4@cW`Wf_uN2g0he01L@7wu$-BsNNyN9`?}?bkMHg)>Zpu#rys3xrZ2zMGlin}N zuVp`2C}B|eIa)zOUwHf#Ck%=>PZQ!gm|EbOI`>pzhq@zy=`rq_GA?!-DGtON51dgu z7lkAnKBsG7lQ^rp7pzXutX*U=0x;;6H^Gr0n!i@aaC{m^iMMmt$-u7EiG zO;*Pz8F!I?3v1WX_&Gui5-Uk{c>CE|-8o^SMI=P`|`i(C6>c5lIMN9>V4Ko<>f*}@l$=bgOvuH$U8dZVB1rQQA^Nlb;#KB-qn zKi_8GhA(JB?7VjI%vpdW7+Q#&GhbCPVG5uW!q(C3J|OZdM35s6pGV8$nI319K(PoL z3%xZS*`8`zXs5sacozwMUa%fu&$VRK);Mr>A|z|wK^28VQr&E z#^Su@%y=C;DdX&Rh3etrVPnrq74>Lq{-_iyL{6TCQb z$`rq_nlNNE#fJjZov{MwO8+Br8I^Bd2%t$-4NR8w)78KrKs6+z$@c!8_S|5GdCPN( zG6qHJrg`_uOL}xJoW!Y#vAdpV6s3)UcpvjgNwHs2qQ8Ng8DChF_-!sjd0N4Xu;4F<@#mXOBc5y zY2&LCCbD>Qm{^9a?RJXh<+$-%NvU)C6F^?xSR?&6!a|F%l{! zC3p-Ssl@4xu4j%(fmTz!$YDq*W4Y47R32D`3SfwBbv!uDP(p&r4+4CDKSlY198IG+ zuPJ1JbCJ79Ao`gFaoWjxgAC}`4GUGwCPNc`WLUPLamWV>I|iI$vVaO7pbIfTP!5G5 zfFhOKOjB24FIGA_;)3(*Phn$Q2Z-65!wp)iJ1adDd?2c$L=XYU zJU?lG-gYu~UQ-JF44~nuM1QvZ#}$60lJycP{m;Fjx;4%DqL;=1H^2*Mo_jpumr`~; zpm6bFWY?)^HC0_;c$lj{y^xT*B~7!8>=3;<4a%_1kuaMgpyTYq*jreW&6_Qv(Z|?EtV!9Fm8e^E9}L6lm?h+E z3D(Rh!0*~?%CwS>00y4cz617lAu<{GB*Y#$^)v1J=35S9k_5< zdKC}3-AG`181VBd!c zRQ&7K|AL`z(NrE=Z>C2_`RzQ|HTerM+49!H=|Cv=*W8N}&?f&XJ@TwgN7}(5A4X@= zco2|7nGK1Ub*^rkgLq~kPd1ozdS#^h(T=Hhvnt{W0S3rHr#DuIQ)c>q5*T7U`u0x? zAVikjbKBe5e*)&$rnA>J2`*$4ItB);Y1uNX%N1fbtSz~E+8Wzng~cF#k28hW2{W&Y z8PV<28D53cE1_o@H>QCl>KfEoSUhc6IK3Y#li! bO-zpv*@!pC}lu!wennp~=$ z=Xbg^_CxrMw5M0BnoP+fW(->Ve4pc0h9d3jK<0o;VuOL8_7Y*{3w53}cOcoK9bgh_ z;2~iI(Y$~tO4-I=1uc-Kys>lFREdLl{5W0IGUvQ}zIoeA|ByY|eF(1F+B93@o0Nx7 zuG>s@dz(_cL#Qu4SO~NfUDhx!0bL`~p=Gc`Ehw6F_L`1sA=Xt_RfP>u_jrPrgV-0# zz&G!%nE_MFwfV_lttKnWX1x~xBW&iC(K>*-B*-lfq#%OP%McK4s{&hzEk%S5l%0j_ zYuo+WLtt)bkZtZGi*(cl>?OT=+3#P)QT~R19Za)LvBDZ51|H6xhlVQXHr`23Zvn*& zd2vaw*j|py=SM|!&)Uh;cnS|EMD(H!XN@yiFqV0xQY_9Rnw}ieJ~))gDECnxj0D=3 z^A=T^lLzt2f8mx$!xRy+nN{PA%Pa3ls&vUNaTxp32CaNg zl>-gU39lUHm01l|P4N!~|CPeF{@_qj9@vfv7LiT`_*n&9QnVIxJ3~wORbV%B^o|YG ztxDWsnp`4Zmwn4Y?06g)f6n3N_ci1rz*(A9Z$PReQ0@!{!>XbL>VO3%t|7SLJUad0fQ>r;J z`#*YTLjD&h?P*TiP9R8Myh>MyHTZep4P8b)^SJhRmyY@}a3El?G5|Y+f6Xj@UPXb ziG{-r&Asoxe=o^xZif%!w^?-R?728_TVTaZ9jyoBPVSTyF?)uMV`ZUkc$qE{JN6zK zs?8_1C*(N+el~6|t-T{RBN+z3rIb^)j2wyN{3+)D%+;z}ek4P5ei7m8lW=Z0Wmg>h zW7_{@7`%DfzuFmDl_faqr#hD6tFV+^ircp{U-UI&R)Z{90mxKtp0Qeeh#K!qo^`cO z{*R3w4lj8M(OUA=+Azw%=C3^tV~@WJ{fmAdJx;n|1HRZkoSs0(Cp|J?y`5c$FI_kh zSbT8k2tA@hVKv7MFXirnT@DI7|0Dchc5-b7=fo>OuIEhU;*K39Hlj?$ii^;-_q5sn zJnT9KE=P_}x<63+SfSqw6G)`oO0fSTR5rlS4#((vb5>S`d~Ne=_x*+=L$mp)kYn8p zUbu1BpYW}^@h$n%_W0Ak^JfK)VAm4)tx+AHE~?%v9O73l^fFHB)2~OUPk}+7ehSs8QZe@N!Vx z7=y|kSDeC-HM5HA!ICw*A2l{3fV#Wpb~XJm%H*6LnG`*3A})lzrz=mMz*GETY5Kdl z@=I1=N4g9Wz0na}R2r5F?%Bz8x%)#KFP9Zge}b0BV9_;gXdB{XBo@U*-&RWv5nton zUr$P?i$p#-yG_xfO()jk3f?7LfTJGh2U*K9*5y4A=9iwpHxnb|v3uag=6J019=KOxfGY8%;=iATod(~q4$ zz1NZLXhM(OZYoT`!AYM{6LxYux9|AejeCXDJS4}ZTz*feksJ}YRSN60`CQV@D8bi~YeN+_49c!SN z0IlV3Eb7-4q5HQv%$;fA6*sl0YTHB>xJ(tj3fd4J5}{d++urDCLf&4Y*5jrfr+VSx zUIS6@MGxGMG;e!(7*{sfprOrczTKR(7`gCv|L5p*-0l!fnL>k?JB0oHU#;$hPt&0x z%k$?GSFwHky@XogzHSDpC5bsyI8A~Y-dBCfV(azlo!Mc!bTr_%6jq z1iN3iN%%iyotbc!{j!Z_p(s7(5oc2_`n_pn57hq4^nQs|lPzNYQ`!aA_jhd&)InnW zLKa)|#%^kYF8HX$5xHmH6jb%gbZ`}Np+*x!m$h8L+Mv@C2aMoUgCc|S>K>*P|(>hV4q*XWLVP#ck)J?Rr4Tc33VzY}YuDBD&ztpi!^Rm;JqVD(vE^|$0NF?gj5 z9GGBNWu|CJ$e)4&tZ(2x1A9ia0&I_wLgm_VCX*|`cFX}4$JZzOlEHk{mI_^dO5Jvt zbV?yvi_V<;CzbHESdS|jY-s$%b;fRzkJ-zyU>z`UBNPfm8+kWP+n44-fjFYS=@Qws z9C|G$QJ>G%$W!}}41<4Xv+bMW(X|yl;r)k?!<%J$+?-huk*-|a`|!aIhp~qK4qyeWmyamU`A#(ZyFbr!ry3NzMQzNfdt#92&UF!j_>ik)1>V;;ZNcW?k;yiy^f zn7QF+ZTi;49P+s-uEh0ofztl#Ax~E{5`{q$O880K9b9)ivC znLCl5+dD9lTzGwYI~2KakDEPEpi98symA{<{Y-e$kVGa1y@ngI?V9`Ezzx_!(UcX= zT9ymc`+LkWS#g7_=}C8lFLNk%Ld~(~1*6x?2>SMtdhe$CMqivYKYiv`FrG4P>fa1S zbg$=Dyy{^nS``BsdCsqD2eJ`j;XaT(S= zZ_#{lPL!fF>cAijd_&R_B=N28mpu-G0WWyR14XH1j1w21;_+vbXfBm7Q<1`xxMh6o z9D!ACrmT;dfq9*?-?Jdu2i*Qv9b&16{qV{fvm%9HjE4%PeA-JIiC^QbvK+4M0xydo zljr`8`r;blN5w3!I`nAyeu%`TS}NKmshmxtU;=D>1j{ZGd1MR1?oqMMqZ50|S_&=bOU#0PXAbxEq3FSS}jp?zb*Zs)0 z5Pcb1!3ge%Z^+GWPC5Z>!QtwLS+}`U2N<+}Nr;fLkn|;bgs1rCe&-M`*|Dp9A>v%4 z{YWmmYx+6I!>Or4;vMp*?6Q>69PfV7~F=vP#-|FVi zt9mf1lzDzmRa!J@|HM0tdEwx^gT(VoSd`pjrYxnqU&u<10+`WoC~kADj4M$hI~}9} z2XN(`2!l@ON`s);*nUqt`C=~SuDaYBB%I;~%$;Ftvr15&yo$9>*e^P`6ys0(YTp4{ z*w3}-D{%{}7@f$uG!LU;-^+$S&%4qr@}pnJA2~;lr^~eH0`Fw-(O>doBVw9|^Dwja z1vnit0H`Ik;GcD5PX5eYFd`pITe&csH{2+ks3eRsQ*($n%K#Y@?-!35XP0v+-#GyvtR0g zhmS3*vgBhn^Jdmu+NKeGh?LxDg~^p`EKPGeT3H1_Ef1pgLpf7H8OjYm?9cM5hGxAy zfwk+GWzj^aF=(?B_;U~_HD4zJyYCUM>{$OmEM93y3V17`Z3nlt;THzAhNrIgNTxf? z_&JLBL-xR&u5tRt`8Zf6GO~#Gp`F2yT+uTOj2G^e9k^P^Wu9@QrYapeo*cC*njO<1 zv1nK@5>XmAzCOzFSxd`Cir4cbsvD*3MI8~VU$hljH#c>(Ij=36Ew>@>$a?)VJY5!m z)feAhozE9WcSrKdZoRlg_2kx%QWYv_OiV)`5Cn#YaL1i*;~X&dPj*O|F1dD1qjQGjaM z921w1X}{!ij++^Z{k@HZVwWG;AwMld#)ON6xd<92;QI-VE&7UjV|WG|i)9AEWYEdeu(TkfrX2xI* zsy-DEhO=Lq@zZ0kH9?!A&blK1ysZ`OaS$7?0Q5 zlQZ4Pyl`a-8aeb+&4M;Hg*ze=#G0zlVvAh2JILC*82YajlIXn7xXDX|%6rF1tQ?En zxEY0vl;0VbSJJOPicdH=q@9meWnHjf5qy?&Ya=$ELW5+942F?)jJ*7bk( zIrq?`L+1c4f?!^i6;~5-7}#5Fwl+AbT*^D+3bNRkAK90=5;t34QxqT%Wc`>=aUYIY zZe28bauwOggHr@>PBk|@+T$45onY5t2y?#cC+`AR0Lzin-{Ib9*b%VPvM6z%1ps7r z=iwXI>9YvL9lWxT19^lWuAg|#L$ky0?B!>9U_R(RMtZ29y%yE#R=fZT2BgOx0IRx?$pR0HCU5<)OFd;Ft8yt0KPFhb<|=I;)8R_rr2O&@r01qmh&xpaM>EdY5Ywd+EPU(wv6$5U&AuuixGDmx8|=>ikt&zl6Nyt+(Os@f>nQ z7&lWq`%{-U`i5-)6U&l)N=?L{1q}3d_w)MXKYACq?xt#p>$w;g6?*Ru7nNEImYr^9ih$r_PDggjXPsI@-Qu)*5U+#mhnsQl39nSNvufLxw)iUP#vYDRqPJ�H25u3+h zJvZ34y%&G_g#7Q4d>`~Fz=*j!WUYG+23bczoiRbSPdmV;euY8j2K9ORuVpdV1e)%4 z)#}m1G%IxGls{w7g_)D==yyA?PIp&6s{R^>fy zXiiQ@@KvpvaJZ-bJ~?#|y~!RiX_KzST#CiU@pQkr4&j9k8Ne=z%Rt&^dCAX0l+h4* z_l?O7Bn*U(&*-saZtP<)z~WF5Y>i7%Y{o*K8^Jv4_P{w zwy)f6&aKx*ZWf(O?X-pTp7|$ifR|qP*>aU)Gt+V+pVL9@+XalSp{5K@n?hfh7v18r zQ*p|lc2yDU$gRCQa5I&y-=tr1QTgr=qsvcasE`gppYS&UfRSy0IhyP77eJi*moAod zCelUAH;#OOrk-}aBEerz@=eXr|HVF0@G8jH&;K0p54be3egk`BsetV^qed~BISGO!X!9>)0m#j3TDrTu7!d^CsBcLX~7t5mU`yy9&+ zHK0^$45K*Y&rg|KeT(wPI6j>l8D@OyFkF8UHEfov_d(~LVQWT+BD0?qv&DQZu)q@Yv(O;#B zwk*+dM#xqbJ3XD~jYUleUV?s4{`nX3!{CIv#47r~#E)^X`S*x~?WU&UPa?n(vcZX* z9?Y22$aiRBAJK0QRcmg^2oH0d{alm0tRJ0`r`VbFLp{#o3x2x+Lc2!r@^F?=yz5!oDP2_37v&<1r}$~Y?BXFgMZHq?)mOBw@3AtXmid+ z!N^oBEyu4^LwqwokGV4$Yl-+zN+BCey7bgi_#w-$egP6TnO0-noQe1ywL`Kj6zz%C zJ=~<*%$O!C=2_@y(ap&Pu*pIFp;hFWH60>4=CupmWuj#K%9K#|h=&n!7}}pfv1FSf zTM{(kq?106ZBW~0B^!}t1*5CUTly83c-r@x^3F8%=-*D>SHQOD4LiHDR2P}1>$gpP zVk$kp>gjTi+>EJx0VTgjUC3vz>Rq3>J4E>U{s34jD=PkmjyRUG43L9w^`o|8wWXmp zaBTaYL}PONWZGj3*?+L91^Nmlicu~M?+)PF98>;Eg1=nH7)LEQYg5|%j7wV&Alms= zujZWWk@b(uix^6?CjI@XO6`scBtOC~3YhiW2eBT7Y`3o0BM|um|LIlbA3_EA@_1(4 zHw7KnmQWl9xqoPmEmbb;2=)NDd{s?6WciEoXZ8D$O=!C{WMqXk)`Wav(rA?h?sD9( z)AXXP?sxUbnjdYFdAftM)eP>vJ9F%dY?mQ^K1yrjhz;a<;rjWIWYP|4SutVxh-tV^_P+ zIexvfm@5@G=#}wMVT8zJI5mMU%=R!HPtxF)5feIf%8Obk#bW4P?5z+pOq$f+4B7Em zHdmm$N+~-1uqW+~$-b-X)zn%$#HhbE5{&AqGybOIb@C`E$+0xlj2!Y--@to3M_$mw z)f{qf&*Y+xh49_rzYoeHZHn~!$T`XdKW;d4n?oBp9LVwbjY)UdJV7mKdOI>FS2-*} zf*&*JsUDgg>%+}*ua4HZAnSihcSGT^xajQwmbM8456AAQ-%NJ==BJ#?|73Xq1 z3}^Hm82YcK5>k}wI>JO&va3^6G{d7{f9()I6YxEnw@auY zyIhecYM=hJ1j5LvckGeaj}eLVi0#Q8xd5Fe%d+IBkr!q1YHv4(YapAI;|>m(A95z| z$Z@5wP|sgMbMBpdG&mecnxa;<+3Kap$}dFZiTPG%RY5 z|6a<#wM}OPK+m4#kW;Vu^DkZS34y(Td$1~zzC#CI&Hpu51CLsA!(}5uP<3aUCI(tTgLEYM9$KN)#@T|KcKepYJ%xZt20y#6!Fl}G&MdL)&yrPNZ78{YW-D^&Ubmz3|bE$QDy zX=B_Ob(sY9k3Byz2Kw#AKp;1JfD_xF*=AXg?Zi; zamd;~u-#$w=a{7^HLlSg0FWh{$Qx%g$MYM+?$%yVw}W!Zn;C_Q_o~VMrT1>6)4WYJWMXU{YG=dSvnf4&cSJY~mNLp1K5S6Syu`L1-VtFg z`ftJd&$7L6FlvQQtPK5&!ZW7)hFLnJIjl+pJ)KV^1np+V{pL?^G=jF9jgWt)94_0sfe* z*{y%VmfwSYTXV$ME)sHrqe!kHR$SUEN~JA?6SMX+2|u3M+aU@Ib%yNZpXU4wscaEY zng?&pr0Gw+vVu^1QN#eSI}`NzVposqn+z-ELdXuWnAA}2bQm4Rnc>pppR4RSqs5Yh z9RuIbe_^I`B?)D~|KeIEsBRx#wVCTU@cxM-S?{AwA6?W&p^roBpGI|Tg;fb%+1C7Q z>d1QN16bm~j&;pX)`C@fY-})T zvovb}DJ`0y2fRWEmx0=M%D%ZT-(!VP~5x;DhS7jv*YcW~m z@lIanqU)1~;cX{5XD!rY8NM#S04<@7kqz&mG zSN+e1oNv(4$3UHl?r!8Jy-EWnRTpF_6ekz{y9GG_RcF*{F8;im8hP(amj>kgUVZK+ z#bUUcV2R6-??Z8MoWDl|kkNbeRJI4YG$r74D7>Pu=H)iBv{(XzJA16Z^$hG%>zBA5xq8>S z@gjTU*W?DS=pJrj9jjl;XLKfG=?baE#|d88?PSG857bQG>+#qb<9>A*z5KNzvYS2| zO5M8xZZRl7e4S7#lK>S>qxV@-z+`PwK0f)jCE~)?WNrgzC>l-h@OKGD_L8rW>jjuX z(ovx0t}G*X6_S$8aoKTiyJc}Rl*bzMO!m?@L4|}jK@7s1PpKe)>rdc%^K}p|_Mffx zjW(xcD5ht@;*Zd~7|)72^k(X9U}bJ0X~$=2Jt3A`Mp)0gH<(1#;|jt`KBFM*SoUEC zo>iZRXD!L6shf;g1(Ee-giPRn12jU`MZCWF&A_oK2^>yPNV+^At0y?}$_Tz7+yG^f z!EYH?`jLQBwt} zHL$X?kTme3U;{U>67YHl_Io{HDL47OgM+`&SR||5uF{g6-t8bc?c*T%;p-q-v&TVl zb1Mkp>jj(Ov=Hm$n{2CLeu!1>-acreKd>?Y6ygH?|G8U6I0Wim%qtF6UDXF8_C9xd z`3}|+z~GL2JnMgeC7|A^Lejh?!+^a1V^~Ojd<#4G7@WT@`0?w?&TCnOH`mfZC<6Tq zco~!p`uHl?n`jzsYg!_bn*<0~{hxEx8a(UekvDOmv~!?6PYXtuk|Wss?4-7lC#~0~ zS3yndz&N=+I2MF(5IjN920%t#-@0HE()uEORzZa&2q+*XF06u1QD7w*3a?y)+v6~Cx+|Z# zgEbB$uKWMT*x`A`mJv>Y;L0ny+el>g{hM^e-xC2tu7D1+2I0h^H!pycW&@^J zqW?oMDBcF~+|NkZa$RtnxUy3ZaN=4%2-g5N=pf9$0hu1I9j*#1W*YMKHCJ|*-~=QV zAoLUQtP6+U#DUVZ0aL7VKfO*UAeIQ7@A`6VQ2PaK5!OW{iDeP#nne*Q2>fmazc0YO zI2&f#)E^OyfbBGKAiQdwU%w6TmZ=A~lKhnW;3ew>(V&o;g3;_ULX^$Xq781W zf(?!!XplE#aVq>vtMB_duVv=SqwRUxgVQT40%CgZbLgG30}mlhIt|RCKbb+0>qhK3 zZRGhI>qe$>0gUs)E|^l{q4Zz3TKb^P8%=*2l0R~+=Pt6%gxaZ|lF35{aUM&^9>!H| zkZT^z4L-cU`WAzIjKT;Ah0h_IcNm~I-(=gAR_`afI}%9?kQk`>3VXw_SG0{< zPf_a)mdeyIJ9oI*ziFj-wP~Jn%iNef8J&eko$DPDJ#~mY4~xGuckdA{8yzXLVWyG` zOreoWe)R_AppQpv^VC<7kvJYMG+84W-py^+MHW%eEDZAL`Uy44hKByoHp__LsXE6K z+)+~&lOK&)H{PJ&%^5^#C<8Vg3SOflbKHZK6^2@iNsC=+{V zB>xQ@3~;i^qjdp0ZO~VxaTX*)95aXT(rMoM<_LEiD1!3XnjMJ18ubdCCB$tIC!XIB7@Y~H`FoMF>m@2kx-x{Z!o&U)+gHR?;3cj1_a57kugAr1iK z_!H*HzN`w$JC2E9AeeMRts}WRI<{x4L*I=;rS{iOS8m@OCi^dP*yGG2g&vy2v`=OL zcbskC_od_cEl;k`mMtS*kW}7u=1;Qp)=3QAd0X=4{|Li*PhOspZt1*WYEhMgs3N%M z#N_kY6xdd*;Dt$?Mv9-2g3y|=dbJclFa6Z6MIO)3JpPPi? zsRO{&cjn(OU0a}(M*zqJYq>OOaE+pzu^Gx$<3_mrPLCF(aEuWCrRyv-@*$e?A6t?H zP`B*m!}B-A^LWC|4K>k2lN34~vw6(dl){yum(D*Acb6V|c}@>`M|_X*%aH{3 z|7M`KHcA$ek3YtrOD7E52%nviYIj~(!YF^`mb9|UC3#&hD$85AXzm7&*RazO;7B%M zFc{F2zMv;hLp_eo_ZA@hlRhJf(ZcETj;i$AUNLYE~mO|gChH~5=- z7jQ$piw?se-&7sBj80`wCXmjvU%K=mKJd@A0XxMa7iCa+yf=nJ9+DY$53^7KzUaDlQJ80Ar z&?paRM=W!_zwk_bde!z2J*l?|9DY4*)K_RURrwoI{7Sw{g?eIc{b?=Az0k4?9{BJM z*-~1I=8Mt1X6ub3H=v5$H*W6DI1C-Y@Vu<}{uu2fM8)w$T$2G{_{0{pRtqk8wP)P^#e6NA4~ zP4kBz8U&Q)vXf6U9JV!~=Az5EMq>AH05<}jE^&A=z%I4Uq}hYB4%lPcLRJVKV#uF& zcX0A^TNATX(E4A=^bu&id@hp(jsfXEv>mG{<_6Pc+b*9nAx~gBoEcT^(>IP5l1v80 zmnVK0lQ;hEi@WexF-uqAnrJgOl|x$@s@+1ZsY0&c);LaMDh3`u>0GuJ)p5>s13B?y z(K32K%Y_1Sbg$Ofc^Lj)bOtY6#c9+ed-ZE7xt4e4TncM-WedvlI2^aT+FYkFPo9(W zE$lMIL_h9#F+zMGBiyvaljysoTP~4gXh1b{~t#|)pmEH`WKjE}?TDZFS&-q-l+t_7ennzLigUI!_6={2Vg zm9c@(Gg}h`DZokK{%LmKHWxMBS6S=SGWLFY&=%|7-YI_sj$i`bo^AQ+zppielXfueohn!0UMsB+SF;Zws6eE=!RUv^H9;_TD_Ppm zr37apSrv_y>~QE~T_U_ZS35JH`Vr6H&;BVLg`VSxk0>(_DHa3gI-1AN423appO1C> zg0YqjIahmcCqtQCwVL+f3Ud$Qe%zTE!2XD5 z^n=4qi4L%&X^~qjr7O#mX&Bk(6sD9LaLz;G}3t1t~62 z@@8t?M|ayQm>Z`WI6%?VYu-vuk~Dzx&ko4P4p1I(fY%VfDG>haUq05alj}VZT>;B> z%iSk#H=aTU0wn=D=q3~JsVXDFjiF{ma{QJ~N)w>|o`qKKY=KC3nf8^QgL#Va)G8BRG>VhO& z(HWk!sa-_Z-=1WDP$JqRVU8bq;2abJ-Ecy)q6+{JVCQDw+x53KxNrv-S>POpcWa4h zs*8(H&lW!zYrf5X2Im$kbv;qp(f5bWVdERo%knz`l1A023YZTLv!U0&mR>oXw0ggC zPs#b&Ac}^b+K-$p@eQdHqFjlo9fJMxYxeRdcG#<6o9(;vk#h8rGTyf8p7O4h+8r`{ zUx_k;CbxXA&GI%iet#~sc+Ng5+Qt_S?v|sY*A^Q=$q97N-wGTydorgSIPh6wvT~ll0v1qOY zF&KQ&6CGN5I7@H`3H}Eux}U&nHb=JC;2VRm*A8G+;0P_EKVtWKT7A^E=~9OJe{43q zD7pmUlEKEOt6~q(@iOPJ9UFWdq(_#MTtzqYI+O1Sirk z=&h%1A{)$A*>hZQ^O3;0sGIS3Lbj2S_%4da`|A~WRU<7>vY#N)J(ezdJe2ux+G+k& zIh0yBGWBcj;dhz$1m+QpDPv!StpN)}g@jU~ZV>iz5O#w-VthB@PsN3XUGl1@SfREa zahC)wNf}l49P!X(^`kQLjnM%W5~Q-R zlPsJ4@PcDa8;kBv$6Xm_21tmz$sv;EF6jQ?MqU|v00eI^*r@;{qyP3xn_MBP5Ecf? zSwWPiR@gxsK}agaNT_)YS#`5H?G3HYin$cPD&CnhuaHACgH)^os)z#V0aY8^&|-^C z%izPVAFDTD6kp=7*#{_F^hAsy3DxCoelCve`1iPTUgsQ`3jfaPbM>Jv!~{j<<#yn6 z15VFYKN`zL|4ejuT9noiu}>}m1Ejlud&EC-&4P$PDu6gv1yOeDp~ab_(>26xVy6ew z03rL;7TcI1JClxnG}QBOnp`-YZHs-9feTNk{VNX!=$E?WxS8FLn@vU{zsvr&uelgc zJ}uE(hh`Bs16WOv5s5|2-iwq6BAD9=>je&(Xp16PwYyX+J1g=>{QgIxY}LCsl`k)P z$<6a$qwgU1_aYx_Au$+pzucf~FohZqsCYrDPJ2YXN3{sEA*X_p&l;hHHmTzS%X|k* zXvvxJR#j<=J;^~T-vg?oYc~H-KLMb<9&=Z_&r;wt6LhG_5d)s}G3MQdh}t@^XAx+e6fROS_e()YRZ z^bXP%h$L*teMrGddW>#;!SiYd8xl4IVa+WswEDDDZ%?nd?n6#vn+*fk>F9K7`mezf z2T}O0t<+T$d$j2RpCh{Uc%%1p1a!)(QrQ?UVy7dvRH^lH)(7sG9vB%cnJxdLxAUuR z*A$q_LL5ui3$kM>75sCZDr8O96g6k1aD?|>mS@2pox733Ue|GJwN3OzWX-#Rfb-gC z!)k9&*SV-07|b@ejVZjOW7MJT@X%-6x!3NBbE_z_6ZY+>?YK{8Vc8h)bMeRJYlfAa zzOHqr+329+Sra7YaqZI}iS9m0O86?(RdhLF zd{Ei&uwaxzS}%}B_<}PAiTlBMeL(K`mT1Y0>vwRh9?b^)oBKmjZ~8ohRmuOkzj72G zQ81bqe4BKXrX5&0n)IM)4)5s%^i3GQGJ+uK+ak+k5HSU zEEv7;Wv!$>S^qYnR#&h=F!nC_OD`zFW8w7I~XA4HDTqp1_{5EMI zcg=l*LR5cwdE5Zb7|$9H@Gm1M!lZ$fv#;^Cg1NEH*NP5|m$3^-pqY&+Owyd`zxkv& ztkqT)6;mC;qKaw)SX5lxP8OA~_khr>uN@e2h;^iHuRt~nl$SEY{UEXeEtQ3W;$&wd zL3FvXKoAI;+T8qmf2AllAh1#-&|D{wDL`Ar%YLsHh;_Tx3B-mAuZ_m8^m;Qjy}b6< zol4Hdw!lhG_I(h&2I^7{zu-V6XY3;&t{=~;1>`06=P^m1!c+Mq&o0}oEYqSFAuLnQ zivX4>>cUQzY1--sgj~=M!VuPh|F#iw8#2oXxgva7zoQT&5giO zz8Wj3zXiUW{==cZ@m?RXh-anVDycvEn@$*to846_z|v_|;www%&;vP{+a1o@50rL~ zHEf4;n7dg~ig1gfm-Hyw$nRrbq*KM$fKaCE@yfEx`y%V-J_Co_wIM)6p99z8b8)l& zwa&8u#r8FT6_u7_Q6%ae^BTb3@>0zygDd-jUd-9;K zxPC6_23TTO5o$Bh`FN8ZwE=NShz6qAQhqvMQeD&vjzWY?l+6V zS8{9@&e*KZAle1>--M3lQitPCCFoa3hW8@pxE*r4uCV($1ZZIlc7fD+(^7|oK@W|t zBxogJ64QnIM%lHvW$^Qx!lGB?{KQL{jjN>_z_I^;uAD!ljxix++21aiN}Xex%8I_V zhLk8?k+1tL(r;SamG({fb_+6*}|$$Q`5%m|v2ua^8#8l*$8_M$M?TI7s83OT{W&Ypf8H`|W?~+?W#7 zW3#$nM`J=(NSBTRdUU$LL79UjPMNR(io5epZ|n5bl-kZqkC7xkn*&3%R4!sCjOme-BW!jE*AUp(tIcBx0AmD ze$B-;t&&C;=@Nd%yMS{}>OsxFhm^Kmir+efpK~sMz1uVu@x4c_d}NRk*B)Pib0F!>xOp^pu5o{FTGE1j04cVw);Hmyvj>7(u6sCo(0AoafN(terr#RNCEk#?pyKEsk{INXq`e8dHL!8Gt6LHnqlLm0_u3c6|3SZ4NSKoGSLX z;Mf}5G@}J>POeE6D<__4amd3yf8|W@G(prswCGR&wZPksV%KV8W-LuYfx<^kvtvq{ zJy(Jv8w>|s&`F*^_~M*fW2sYQP~wjyAe7x`ko&G>+F_S2T1a|KiIlB9=)y!+ft2uB zP!D7dQbOF&)j1Q{i$Rs`ERgB7cxBE+Drgk)N(3sKivpF&Jab}7I7u3VE=0xh*4U6J zC2^*grnM^nor+Xf*KCAgCZa70M(TL z18#P&2UqtqL0vnVy| z8Lfpg86<-0+)sU3og=>KtHqIb+JQ` z)7azi~?cQ>b<3rqh6avWmZa*Jsq&hXE^7DE*pm~2UA9RU247luU@9iSS z{J!sy>b?@V>WLFh1O9uw0E0kj;x(>b(x)OVPHgYhwc4E6f0lxtd9ezxX&I>JkUr>? zLkiFfhiG2lH1H^LN8 zf(ZX362wNJr;0v-q~Z3Ux-U28qYHq!KON^I6A;<0Z*PqyY%v{tSvQ|I5>(l_#hkrt z&>isMdBl8_J0H~?0F-|D8{{~%0A%RB3<^HG10=oxst=z9ym=n5GAapG#=I=9d#pA1 zQpWKHPwVINg10^Pi^F_YFo6($+qQn8d|5FK-pvI2>gLPhgtK<7hRoSNs(`?X{{h6t z8i8DOqw^8yq1gT-TD6U}n_jiX8cP8)#E<45T$_Ke1W3oYTWVF?3}8fTG@v9l=Wjq~ ziSD3FPR0Lsaqs`%i;Hpx_Z2{Xj1?-m{x8EjV^axcG$x__ujFf zjanz;|FirVb@4(C?Px^L;kp-JM?X;-Lx{n&A!9hYm?AE691t$xze z^XdHuh=h4`=y2_U$dLN`cVa`%J-Gi)_e|vX2azj+ru~1)&!4>W#|HA6$ssjRH*JzCp);I8X|{*jTh-ya{@M2wICgCyhV%U z$s?b5QmcB$qn8^58pzh9Oa)YiY^VsibIQJnUf%e6touitZuajFl!}Fii>vN+3I?9u zZoC?M@=Pyb$CAs#sG4c|m-`QYtbT0UUF@Y6XIOU!UD=-K=C)9Hg=yjIusFfst&!Wu zJqJe%PR4C%%&0j*OcOq?Ja+X$o$Fs~iaY-fzWj3I`@19W8o!o15~7pER~mLzOua}< zblavpkr^A@fBHw1Z1U6q_R6WF7jrJi61ysmU-&%e>oHxnWup;7b9nLa{~_uxz}onp zcyah!rFe^LDc<7lkmByHL0Y7^m10S0i@UqKyGvTEIK`b5r)ZG?36X#LyZ62C^USl^ zJ$v@d%x7lKZg$U^16e=hw%jw{IK!Ney}p5)|DyZBeICELQJps7z+9r|JdYE;`0~;> z@OrDh_VRHsp?d3{dUQs_{?T85dtdj+UN^GDu;seC29ZpRplRFPN$hvdZ!=3B{sR{e z8s34L%d$snkkp*A?~UVSE{*(qoT=oOrY(|vD2BGUEZk02zT%!|9p=>Fo#tB7UxvKo z)&3JjElRnTgih9|o~QUw9n9$JL>`x z`p{g?HQJQU`42{3-KnyD0Q;C0iZS(up@IwRSP206ZB;+Jhbi&U06R#4!+pMxu}jmK zrcPIgk}1O&jB)<#c8rY>#vBV%GC%%vc%f)#X3o$nZvJTFSZaft5Mf_$fqP8B zy^z*G#C3e*`*g7>?85?z6td*tW1#97oX#7R?vt9y+2APAW?NM{Zy4|h6l{8S5w`pR z^sUkE=)6?54 zQMk#wk&AdGES<`hs{z%xE(NyBdt2YKeI!)-a>@?xcX|6oU8wJ3XnD7*XwvLghMC#- zdjCh3$D!FF*Z1cq1F?y|_d|5aS{nro9(;91##~OG7YT%Y`w45cPSWU);J}KFxk5kJ z=$R*3n|!)Y^}qf3;8c3cOgjD4($bQY^G`a0Zr1o4O|3tXpNjcylH1Um{rk+g56cf=Ahz*$JpO@@+XifgW1t6|R+e=#f#7uR>=3%h4ecPkzLg&#{~ z?+1dz@Jp8QxVt6Sc0`-wV)<1AFObpIEv3EWbXt>tg<&FuJYl1aQwE7|1U2OTZwo5^!B#;SjhbiMt5RiA_dck#6Pqpd|2;9^2q|N9n#A5*b zV0dV6dGGpoZvFgtKQCT=oX{^|BfB;^aH_p+Ve@gIqxBh6+@EcOc?xhECelhZQ#D~1R z&8K$vb?*XAd=BRSYN<2t&4AyyS7DQIJ#;t%Z@LQ8Rpu4&Ry^@FrSDJHlhDJUHY0Xd zN2R-g9NlC?)%xNZ@3~rk^{v+Xja9vDV^qHUG3K-Lj>yEKPF=CQ+&I}@3N*%2*D(3J zL8Zxrct}#(IcQ6=p))|ytlMI!=cU#yRkqi18a3lldPAi33v;#&TURbS=Lqs&n3~h+ z)w`9a4Q)<;rZ==x!;KLoX)TX|GO#;_GgOkfdSzp4O8=tX2MI0T^+IH)J(}r3xNEl) z9z%`GUAoVcRaDoh?O##U^+ag(2sX#?K^RL1das>{`Pz=tc<|c#+mo_kdPZaY8eCaK z!(92dlM|kY?w$ASmL5zVvU3&R?x#yH?xq2ql9laxg^kiOX^ig}EF#;qJAc_6A=BH2dM*X?CvW)#<^N zr;8C{m8vYBDJ&w8a?t!$s?H^th0BS^u!#ru~x^7t0$AE)6i_tCAG z_iw&qrdIoQqhL$W?ElSC}v*mvWp2>CgLsP?Q3j3 z&^9pyO9;-I3}rFlQ~vxy&gc^Hb1TN1zA0!Fj}T`;$?NU$JB?QZSJAvmE{|u~FP5Ly zUwrT9>)#Qv-Nr1c9olx9HIkWebO@b78lUS;@oO`!?Ej5E6RoL783BJT=kW-}R%gE~ zjlOPtFBSAh2S2tzCg&STX|yZz5Y_8MA<-}9hhFbFeTK_)PW9ZwbJy2qNIsm-s(nAl zJI~`Y){$7W^i3o^=>JS|zv9s{0bYmeI~_q150j{oz#ouWUPp;weaSy?-b~!VaI=BE-m!FpYV+Uq0 zuAcsxr>;LEy8bPi23m!1wWE4{FY58oQBdVSsvctYEE&K#7qsC5<+)Z_AtGJEww`yB zaqx0!kP+BZ9li&o2oJj8p{;{($04>Yc`Y!PVn^-?^AINNVLPuUigTxecQbw%mi}`F zy&bG;0am1g4V^=NqX81w8h*A7LH{niXZJwaZCCJufKQLXsmwRnGmZ_&ot*^UKK4gT z5D6mq_N}uA%6Yp2lUssr^_-`K1b#gRQYr^u^fGjy9(lGv9V3x-Vn+w6M?i*fG;0!~ z*K?#kX&%U+jCzuUU?0*2cb1^*w=1Abm0&MAST_qyJF*x(nsni9NC%rv83AC$FlU8{ z4(eh!R8ey~6%ct_jOj%UlmzZDtP74;Ko5UfbdN+ru>e4TdYCY=BM4(9M4Sjktajuc zRg6wgLL3b0LKCU1z};8{oRSdcI|=!3D#5yRu%Gh5QXsb&c?`BReUK5NP=qPPHl2i6 z+ct%;!rZ+Et-zgwXwK~fh#nJWOzg-{6?fRPQ&QV-L&$|EHyxpP00HhK8M<>T|D zLrnQ6q+cXbaytQ&p@2@lsKF#5w1=9}*y{fpG6&N&E@AZaFjHbj_zx{GD`MB$$@5^I zml#VuF!+BBSz;TaR6T-XK^b6$0b?9cPajI5fl&^qv=Oj)9?V=1lPY%9u6hmm`63X- z6Nxn5`G+hp9$R4^EQqaOi-B%efKyA*z1XJQ)8`?)aR@Aw5Ylk;t;*{8hS<@0>O2@* zIIVJx>BU+QoH+lFohS4sPpRlielo^puMq=S{K9)W3gC7_Eh%O6bVn?VQ~6uz84 zhp7&fkVvGSC@)BL>z%UAz%U|~I0l5+Z%(^^a@@G7412&iABzu=vm;GxPy+~wa@a`q=6ZpzUF%9&xj2GOJ z#7Z+S-mUe!8`FA1tX z?GPL*2Lj*erqD^!v0=PIksBoNCAD2}NkTr(<<+T21`_$sAH`gVu74(7I}HL`m0>`m zcbHlQj8!O-QWmW;yJY~m7zBF_ZQl??nEp|7PMg|PxO@w^z7aQ^%=q6OuMLD>}aV>q6< zLw>R%4hWLQq1c(Yr@&(}80Imo_>^JeE7?`~t044A@*zZ?5rdu1^68&RpN0l0Gp0jG zM!{-K82nIV)dkYM1$Ga_GQ=OaKc|jFUjFccQ+`F3Vm+xZu)zXt6p1`wxm?0R`54Z_ z6dwmokV9|w|3yQ269JzhEI=Yi$1N^Nx-&3Q;yB<{BBn^8&zKP`KEm6Ibs_o1{XxjD{d1N1A`dvP`YyOE0gTOo_I6kIK0AEu_&gLL1Xek2hE}Ez19iYJ z3(H~E;iIR16ru5$CAzH}KvhD%G`|R(m}6H|br-^zh*|YeMC0r#uYs*->LMU4C`_3G zXyI8WQu9^D{!JwkpBz^I88LIoa1f_6=uU!yrX6Am<k=l_I*8je6&|3JVhy9|ju z=>Qs#g0LC-eR>hvrvjs!f`F(S54smXJ`sV80F|G3#Z%&Ikm5S9u&FQ+C{hK|&bU z-Xe6mPCkOz=H4&N0u$i(2?>u>z<^)xE)B##R9=H@8jL_WoFLOIm&DTsF$@WS6|Bec zPGctrU{wxPK)YfigzRPx-EGPUu2(=Clfd0y?*blU?GN2)CWE_IK;IrZq4-VlFzQ7Z z#z-_f=WhJx!4*77x|fjGyZ<_C2CPxZuz~|t5tdop^^hk=%2)Z(P2^~E&ki(H{Thnx zIIy@zLqYWk*yzFNGGXjOk;ZR9SdVSS6v%->6+m)w9mpeHFZig(UkR}&WHdQU`7H`S z8n6nYjM2LT|3fbGPd>{`e(s#g4sQa3D@u$@*$Vs|nSq#k4fFOQgDc+^-t`ixW5^=W zeppB!z-O>SuDteOz_>>Ah{X_G-RbV`5AO`NPePZ!!Zf_T#D-e5+5jqE2zwVMy9}4z zmRN=V&XJ& z4#YXaK&pri#e-`_BKb++`JB7?*ieNtFmUb~tL(<7jxdO7@n8ZH7`V|R^ySMC*2|yR zp1URi^LQkFA5)`0;+{N`j}5F+IkYi<97db$QdDJEJ87hzfj1pcl7NX7L4O$LyabTI zlUXmp^$9?%Bg8_m`1q;rYNuiowljidM&ge!9J}YqBh%?4`I53c7#1u$ut#PQnyrGt z6=@+Pn+Q%i1hULv9)%*IUy$Ou*I;EvjE?CibU$|@P(+spLm!H=fm14?7z#l1SILo4 z2gG9oYxM^ESdXIovO|7~ym%jq+}qnaHRef#N~!W-jIpraIpvgmLcg^ImnxuZ@!;v7 zk&XxFQ&Rq@QyoASX2)+iydzanNH1lX4-XmvRAi(Pk06o>39?M<+iIqlbDF8g*AL(1VFf zgxBN2m;M2HkQ}`WJJ(s(hPfNhgP$KM(?YlvqwdsgA#9D{b~!Y})&tlwwM1WuFdyZ4A|dx7(1md9uwV*64#cQ+K$ z0I&ZAL9?MBzGv(CJbLY(dU&os0=9mkEUJ(Q(PISfSz4gWvE%DSB9Yi${m@+cW04Cp18Ii;^&b)2$;3|?-W zJp$7#s83WC4oPPL{5{PE@!?K~Z(4es&2yS1T3K6m8 zbY3}G2AK05BHUFlLq&a!q>tLz83PQA(b$|^X1G=U3LB0OJ3Jv?$QMlx!HL~pPny6S zVt{2=d;#sCD{okK{_ootrvs>=g+=yL0@2%`4|XN#6ffm0`knL8GmBDehd(xrLCD5Z zkoxR5DS3|##-+{hW!8H)9v#msQ(B)Q1UGWpG%#>@KHuRG{@p-+K(DIeGT_QIn+iW0 zmF{s^V|g;YpUyoXemTfoLk|msPKx(j!cSq@w+om+Fv?%kzV#alMoj*+yEoML>?PH%e=Pfi+NbO|!~Hnf=7|MG+0h#HXPBJ% z{vACsxYF>hazu8V-rY?alI#kK#w`lZ5!Kt6{94 zJGOZ7mk!{_6Uv+*tzdFjFOdZv@3xOP61n4)JRWUres^V(?2qps`8Ucheag&7@stUY zc|7e30-@YOybB#-r>Rf=+=wsX1mw8pwFZn*dWEg}l%ZQsHy!})U0Dti^UgjN*Huml zE0PuFeaw^7m2Y>g58U#xZsT?#u$UsF@Gxin~?ojgL=F z{?mDhWl$2&x_BXL&!$EE=4b90$R@9bvZZhkWRY@s=?D02BCLi~q6@HHeLTBCf0$QS z-8al&a^Tl?Zywa!<$>xyc^iJ3&o6VmKP&ejc9i%d_RCGs2F;M`b&!-NsjHvsZKvTd z%5QwIo#4WOcaCls+67u{ebEII*ZCo%uOB1#NRT)#iH?Iiqv|W0zzW(9icA~3wR-Aq*zh; zaw$gA0_@x~KVA>9Tav$n-JVD!12Nz0a*+t-kGT#$@0yrH$fG_n{&;QhSFT96Vmp+j zSZ5l4RH-nM5hM?2zQ0wXJ+_BWVvDG^A(E1frGd9~c?_GF=!EuR+l5?+Zbuv?UTi;+ z)oTH~?oU5*ziV}Typn4yT(h!zt=S=(h)v-!BOa{3JRYsY!wbhNRu)LEzmHvEUTRkF zKyx?K1?;j7yGLwRR+E@63A}Ww(awDGXr;jJkU#RX49~AEsZ-}16x+0xwHTyMZfRlI zSM6xdr2xtKBFtc{r<*YGFF|fI+Mv;FZWNV zs4n=pn5Z4O6nm7(Yvijhe?Ju*%5*sl(XQvIc5*t77kLuq~{$!Do;iM z8+nL(oUHl~ylG1+b{bTULKD`?t8fGiq98t$_^}g&`uh5ItNFbO2H?OV3%&-sb|*5Z zB4n2rF$^bckf3l&8ect}cN3JpPh)m|=Bb{rK9oOwu(R@BFS%ff4m;~Jx$7@&^DRz_ zrUpeXpuj7Xakk=D+Q<9lcdyjCcYyYxEtV$|!qUI?RJzYmLj2&lmuNA~31~~N3+~pH z=;@2FgNtKjYOBF|2C)23&O4aC!;zLgDFl=?!*#I4%NJ}Uk(9Cjrc#66ZS6W$f^YWF z)~=AY;f@Mr6*hxSQz-ZJ+-$SsQQZ0~E@}@0|0XAd*P>(PckdzoFR1UoN)hkbXg~NJ zQkrT+aw%o`mWx|IwYvWd;=C_?_qLfWE2YL?$+Jq<2^wJ|^NC7d=uhpt83rfu)L_Nr z{W{N#Ny#uv_Dg5>ImS1=ob#tDw9Y};Z}r4>Uf6L8PCGK>QN+{`6^G2x7|U|tJ8Fh7 z+w$wy6&tRfZz`{1?R)i?g@n$7jBY~Nzir}eX@ssM)7OiMIp2+SoUneLvWNG-WXrVFj$m(IwK^#%YE>l| zjPh&+NF+%-Qk4#}sCwgT?^%_B!)(uAX^0FEDXw1{YJd%z7*G{9I>yZCiYVyPmSJC% zkJ*2|$Q)eoDI@OItjNqWb*jpAYjGffh!~mFc_AvIHB;x5n~ya%`TvM(P>D)Q->N4c zWUO)JX?>ie6%6Lu`8lZuh_PIfOakTOosNx};={k+v5_koAjCcboOA%Xc_Udlz^OH6 z9_7X9Gn^eaL%>>xVASw$=VJ$tsiU7V-cKMgrN{R_es$I4*Cz4z@$96s;a^Vl(4*dN z0AS6r3dPT^Lbxf4lL@ssIFE}#e_#J_>d?2A9UG%tWuW2UJjetU%`|zSvf*A`4qpyzEaT}u>#0G_FGN*O~Y z_LdY+Xb9_D25zs@c^Yzh5V$C}8`?6r;V8!rVPxMe3jHexh4W4Ooima5(OblS1w0M< z&BO)bl}R%VtbbnPDu>DIm*@Il{%36fFj__xxtd2C}$bF*Dy#Je|J zYOCiSN8=ltYX<6;FSI~#&APXTj%zJ1lICV7EH7r8Yb-CCxSjUvI!@)BjeC$yLj10? zbsc7qx`QR-%>?_iG-H0ckK@(UeMvx|cQj~YxW2wu9&$FT{OoujWnMH!d-27a%GThO z1En4B_zUrMlT|HI$0

^_a>XQ5j`gm5>#)rA8$I3rIj61MN=-XbkHsdmsdOq7X==Le=(aB zlSxe0h#5g0J}(1{NsL$Xhu`6`9Ghc(reTHxtHB1;v=qa88HI~`4S|aB4sogsqS#UX z)T3?29a9ZGVf>jGH6hlRQACcab!tbHof6PRV5D=o#Y@AjxpF&$e^H9st|OWG4rcOk z@?aukU>W8Jl8&>KTw!5&_|<3P&h{pi+nC@1X%4fda}M=wl&Roi!}qs8?Hhx$f%e%g z;icy3%#$B>ye2;EXX-?{jj2bK4KjT9?4rfJ6-{5(Q|IoAlQb+)q=&*f#t+hHR8#(a#cF-m*Cvt#W zoK%^HG;2IF^ljQf4PhnL#Ax{-KRJ^f7k-1Y=J+N#5#igQ_G124KgqKR3&$qqdz{?dygfh{4JH# zX+lG)aF;NL;3-4#ca;LY)*YjlAEQxRHDf2B0Yby7Zq3yr-vQ0l4<%~CdZpN;EMsp5 zR{k$1`?W0({nV;^?weGKd$Ss~jUkIve`t2g6^U|2%T)r$KWb8XWvHjzpgqi(y=7Wc z^XRKmM%6?uy-iclgx=n>nlU6lGl3z6n}8E#o& z@BNP}ihD(hd$yXfZSzi!$$_~c)c%A|avOE!Y>a^ukA`y9ZW%34Bs%l|AaL=gj6*%H zZ5d);>BVBSS261&pGv-z(ZcE0U|<^ZKf3tOXpcgk{C{$_dl;T!PoV3DHXRxP6xCkq zR&`M#{v{ptXj%is@{O?cJYxqw-nA-{Ol z<8G+lP`JSbqhZi}BL^{U6(7+G!E``I^<_t?+ITy~J<#-It%2i|*V}M$V(R(r(!6~} zi*o|UKZ+ZDTSb@nLx%dFMH-ukgx+UV<#@CW_00b6z9B0ad!v%7-#1W&oYM*Q z9I^kj2&gU*3y*iRH7c3hsw>3%=lM0>og9={$sp6V zK=($-v+B!i+76ENl30>kUTTT4lHSLaUbuRDNjxo^O21}kBP zojukmh1gs)nJvav?<>7n_4d?C#!~&TB0K+Il-n&*>C-rjdz=~po3>y=qrKJpPL3r8 z5wmp&Xx1_LCZJ>trjmN>5UW(R8*iWgKQA^h#fehRuCiEiYs7rldyn<+;nkTi4$*TV zC-=T_y*>MqF)Rex`GZv_A_g{eP1Jd<+0~Z`rDK{vtRX4x%^Nu&fqB(U%}mPcP;tSZ zB^!|jD_H6j!l~3t9{7L86xz+GTK||egjQBhwKPeUjGy8+=)8|-JKebFGCWhNT93sZ zx|^gP5d5F0m;Px8k1idvM0snb9hjV)W9^K#tQ$kcvYnzPJFy#;)cZt^+x&!R1JlIu z|I0=|^7**1;Yx7ikj#cH1gHA))xD9wWokH3*ogr&R}@TDdC8}@w^iT3aZdGry+6GA zvaobaeu|%M{Fv(|-qsL($8EfKL6LlOal_Acx}%c%Gm#_So$9NB4RA9lY3!dnN2mH0 zIK)(r*+H6@wOg05vPt>hP|2s31Nfct(X&OtG?kY^dV7B!XqAkC|F1r%@am$Un{uh; zV>xW&_gpvAHimf&M?wbvTP(>pp>sKGr}!$VlnETX7Ey-cc--X_LGv%uDP}qa(&{2IM>ga+m?R&!DYm&?Anqr1w(F51IFuaB*X@ zfb491UZ4&3A4S@7*P{`AyhYlw*Od`{3`OVhhd8egLJENAGsJS&Utge}D*(u5h~=*b zUZ9>SU5A^EIzNIT@#ut$$UFx)jM)oC4jQ2(|b6*yMR8 z&LaJb+DGH%+^RCmJ9f$119rA};n{4YL_GJFe^76(6uc3a?>+mpK=K$&UqIp;p1y!P zU$cY$a6@TVgmLb6j_8XjEouiI9R1;L4WEb2@q#&77X{X0!p+|`q%?;J$|c$(tMs|U z{?Us8C+e?k50afSZ?g%?ZNlbq7$U0XxWfL?^8qA*Cf~$#jd1c?c!o`1axkD#R~TxW z;m$vyOn@)&5jX5f=5#gzKHtE@1BxFF-)&8-`MKT_;0uymepa>FpRt!KdoIZ3)5l0f zVMc(@9Tpm4qdQFUqv7?O6XL02hE1X%fVhgnlpvZbOfjO6bLZ)gU#W1(h^mV$aVdPcSYhf*-b*>6b|` z&OhMg5N&PZ#?RGGmBt)KPF;^1MxH4+$=CBxu*PGPlgh}1fRihXJi_Mv@O5`pH8 zm<1000W}9`rB3Utt%(zVjRHZrLk<^})--bVofy4f&Y6@NUyd99KZ>K88u?_zmy_t9 zMcqI7oxnlN?^&22*Z=7Gz<{7v`Ge#E!P`vNPh$3;I<9Dc{Pl?5+M*a3crlPk{osd( zy?t}$lZ;5}DW8}8gjG{5RR2hUz~TJ~Id;?MB#;wIJ>_NfhH9$me3nbxv9?h9h&iS%MH{lU?<&OQ0{vQoCu-Ro=nqm2JRnZ*nYU$yd`#wP;4*%$^aVu<_bU zNwO=*-lj#+Y)5eAPDt-Mj%-J8;qJsC=tfiqhbsRsa^SEFLh*eE4^~XsRE{5mL#iYy z0E__g*vdSFxY!1=Lo6n4$UvRnYFm*_nYFS=uQ%D*NH1#IX5{5a_vCo7N&Dsa-uT2g zdCi+G@zt5DdrDdJIIHhw|JB9U@e1Wfh{d&flDfCg$TZt1w>O0e7abHaMdXogEq-uF zto8LC6Qw}SFYeW5=t~!?wAgAr3dD|QV>^hzQRLj8fU=tLJNzIlBKM}S;xOYc_iT0? z%28yGHkxq4i!hon?ZKv6$jtHIvHV3N4$}ziu<`;W!V7*1%nOMB%;Zk??h)Vh5}GCH z+&k&c*mlL;eA;Q~%QN$|6Ly08LjH6;Ot$~;Iy1?)tW%ILjI#H@@$?3c8*Psob#PJ}hQflhFz!;}bXN_fBoj+d;9K>CB7t1`h z$q*OyOEZ^(3i@4IB4Eo4vEFpv<;YD!#8fV#!e9Kr(8F+4%k7WVs6_Sh@m zceF1#98e|TH~ZVR!OQLC97)~A@kal4XX&9+R_A;7t{)SfsS|et1nPPGc@|;dwJrC4 zL#y0du^SG}ZNU?Pi~hYG!pno0b~B!nUxqf*dsL8L$#*!qm^aPnXnPdkEh;j{hc%G# zcYm2Dy$r-^d!52#lep=p7AdcV6Y^vfn(4XNPE#UHn89y1N3W{!U%Rzr+be!qN4|Ci z$A*ovA0I!;FTI-n^_#6hnN5&2_04!_ON=b!p>Rw5^M0MFwoqxK6rZh-HSKZ1Z*}%^ z$vje@?w!^|=C6>gB+Nxg!+<4dJo-^KbW-HT>AOssT7D+V7I3{`715 z<)oGC`!TrbxIg!k_l~*rEn2@ykPSY(nIjnJDIMf%6DTifdhkvPXRruNfzGKZxM8e^vdKu9}pQ6-1Q{)tB60bP@Z}VnYyU%YV@?@|rsS z4%k8RA&yL#GFzCJn{>dPrF-7_i2HuR`c5R}oA=)W>ERmTDcYk2_okn9um{d)k05cR zaE+=Mq?p*D0!XZx!RL7QS>~$}Ax#z^*L#()LXCXcIh+ZqUwjt8qG8FW1R15!rOEt5 zYZZZ42&P%T22f@Eqnq#zHTt|?4!=G>sBwE3_}9K*v_g*kn0V-&72T`BhVvF}N2;k0 z1a#HWuis7A6D_&FtW%c%sy?CC+)Tw+GWc#Rq|nY+Fs#vtJ}=Q4mx2GeX<{9v9=E0v z+n<0bn(rwTyVU*?aL1bt$AJD4t~yPlCL0eCc@uxKt3xGr)@A2?Dq&dPq^4iPXAh0A z+7~$kiF$V2($|f^1U|{=;}Mpo{ra&UpE$-37EP)d73%cv)RR%99-8L8k)tC0sx?*v zf0MY3MmQTUa$H(kW!{vLvFLE~WEay4_`ZF}`A4MLa(4OQh$!@T`l}0w+)i%DyPN7h zTqqGu1(*i-w+NH|*BeO8^ZIp-o12e6_$+WZu0PM(&qn#as(-=C-Ns!p)5s_ZI&*gZ zXA*dN{)UU!GA!I%>M(gv}HfyK6zpVco^_Tk+;-(7FM=^owq`)+~t#Gt!->vAo=cr z2zF&e-1gC8T85U6kAX<;5UtwQ-r@m!e@#?T7)?WNZ*~sUpgSg=W+FX@@=|tq%YH}N z@rLQTC@;a7p^naKpLon&NQkF4+qnH3C5c?pxCe_o0gr;^>e0T7&Jtq+;MQ_}ePo|c3nz@n3 zm+}wX3yKSQAZ)*h|4iDuD>pyINf(-b9BA~UcjMI3C5Y=HcXE=89gGrZK)n6%ozV;2k_ zFYHkGkF`;>Tw8Q%Gl`B-dgIK!u~x^3f&1*jci=I9Us!>x+#7o5(+%4)?hjSY3hLWE zao;(#aojVJVP-@}aXLlI)b}o0D$9o|8fu5#t><5{?~$u@prOE8^Td?pgK&L(bOSqV z17IO}A3YDSFi$-S;)OYW-45xi#CfU7y_(#`@45ANUhtMh%Q{~|bNk!1^wS|>iJ`o~ zHv@%#Q?xu$fq^8>$|miBdhze+;#DmZ1Fm_0oK)u)1Rrs3Z@=CC_M%$9zE=i@8jNJN z@6xkejP+*@SdKlm$Jn?Y^$&Uu06iNqe<*kC+1QSV9mTFGC8sa0t>&|2;yWcE>12m5lMgju$9A_)w=AoZ(H8UVY#PSnl;X9 zJ}B&3TVDLL9F~#f@`z;gXS2ZN>$wFYW6`9)Wvpf;3zIti7Rz5PW!wXuyG1LaFIw9K zsGWnew&p4({Zgr7W&8?7{8TM-+iDuy+(y5UBZjwswY(C7EHEsU>eIA=vZcptY|?@q2~IlQPeF|MDJW(s~6cwN-a zU7#*QlY9GyW#3&O=6vkpZE%x0)e^cG?zZKhtI@vKP< znGMn1jA>GZsqN~XP!xBR2oybxjZRyn<&4NkRnq2XH@5@+_t-A!zG6}2`Qhb7VvQm{ z@6oI6G!FX+HzyPG@aylD-5a#C>BMIN&D0@jjkfJSjN^qRAN@#ZtZvOZC3gyGn;eKB zrHohAebXPHNA|~lFzZZ3G@AL0EYU4Zsmqk&kG+3MHu(!t+VFkXxd-9P6(?5lP1;F*7DyODmGRcv&=^eIjSc@ zaBO^c3Gtth+7CrEzj?}J%%zZMpDsCD;;Y;QJ>55@?4BcaDva|HoHg)G7w-z@GPb1} z7vM6|dlK~VVOR|;=e{t}PkHNiw-y^NekV9^p zm-_RhCN*Qqth94$i<^J!dS9I^Z)0NpXqcRzQ-_1>weOqkMT+GQgsmE~m=Ce^fPja& zvVXO8;-*wusgoZ3m)<=$*Q*3M-ch%2Km0G4)Yn^f#vw*Bt@GgH&KZJ1(?> zg`#NIBx20=Y{=G|DpgYFp`e5zc0&0UYS&ADE$mq* z_S7@$DHQNhCO(oQ(ejStW8!94+Z&3?v|FotH;^0aD+PGJ39)VcaUb=J)pfIET({S! z&VE11fWJKB)INdjqsUxnYduJUQ9|nQ$Ud4^Qm4hVy~{Jst&n-SZ}r^S^Jr7IU0#gN zrN2r4@z2Xp{1zT!pGqEME?)Z_N7e%7E}^z%V~2ioXkC2#aq%Bli*}zsc&=wn!&#+- z(KN!b?=$5QX7n@T!cyKqV-0@|`P{hg61_JZ!5u9M*G9g>0qMm?O|#;7s%=}Z)J+eQ zwTLC;8>c*tOEW}=Qg1BE>&z{F+EfRuN}9b3w+;DgNP7;bdZU&*{@3-Jo`O}{V_47d z`zf0AaZ@WDGo9Uua{}01u%K}>@15)Ik)n2cyQ{ssqAAEUQV`rK2x+Y>RKgI1No@+l zEdwNJlEs1U{2RU=KAD8HF+Zre7soC@Wvw4S8Q}=$zu5V+<>xyY@;;*(;e z4>T5p=5U)CD{J$8`1n|~bYNm&s37Bv?=bHnl#7{II{4$ZH^WYMD1G5noprhl$u@3= zW;>Mb_CdBXrH~ifoyJ3V!WVRC6XcFb+bETz?MjE;O1nBe!r;$QB&*8n_>i*xf)HQ2 zJ-e@X>#MU&LO2uovs6m@on=3_f*gJqmKK*+k6RGWh%;$pbB+x2IlSSXT%CS*-;Dpz z*qC~HSb0i?wpk;e^PSEc_t3+TSo`DW<8wM^ouA-drZxe0reFQ1p2L^Fn=sgB_VLt~ zEISUm<(Dhk0hw26`wrER#4m`gwWBo!bLG_oojH%*UybBH z_3#M@5Vm`T%IIYa5$b#0Z%kqxSN?Aq(i4qQ)uBLkZ5Z@x~yo< z^H@+;5O#i1PYn2^=T=~Y3psO}4hV>ImK-CoN~wLY+SpB5%x?1(fA2a3hZDE1<3+#r zCl5^@XcD1~9eL#5JNd_>Lwk(`D|!^^m*>64ar~(}++E*aGN~LinV80sc`wV+Jq@R; zJ?)F5aJ3A??-&Z>RB0kk0KLeBWaQ{cQ`yUO%D0{UNi=jG@t9S}pznR4{;EMZ4Bt$0 z8IRu4l~4~uS`W9+7|wqpfVU}<-^XVHve_LVIk{ETXbP|YiCrPFvHrU9549c_xe2~^1mkYHO(fiX(*w`S%gucYAr<3Xd22%OC9NY@ibf(kx!yBo6Wqm zEgQ`5{|fv0&p(&E+_KrVldy|_%iezqielrfM-;Vo|xuaKvcZ5Q?3r!1HB(Ypl z8%J&7G%ZGvUd?k0l)GuzS#VPHl?)fX8gJcI4CXz*xP2VVeP%+=C-0e_D#D_bz0KeD zX=>7G`?W2oh^oHHW-U8<>fuUC`6dogDs%mnMq69Z))(eXR{RY7CD*-B({UQ~JFc)4 z=b_RzLo14i)#1ip0%<}{nVBbxxqmno&FM}!5ET*=shAaxdf+cSUIv^^3^)=Pw~Nq?<$_jwXZDm zC@3*I``{>eJ_)*fzVOLPv>E?y^EXKJONZ#gFCl&wE?{d-<1rO_+GHqRWlcz-7}J;k z_)Zd4na>M-1#USUZ|_oha)W)Ekv0Ci@&Z*)L#{7co_~tJBgch*DI7`*^-Z05EqC*p zWQXyJYJT#7Pe8otBz&|-J*zI-XYh=}@2`D)z(eK$zU`ifyWd|o*PEK(zAS3LhqF<0@`nB86r7=b=*}Evl0rz4T^ZzUA6MglLfym@nBnd< z->;~CRCF46n5a9T>WF(?a};qy&>SG5$GbLXv&$P=PknL6uOJ}HA5Ob3|L{z0rKuUV}tf%Ekn*+!)sH*NtLQ^0d_|H*UzKvR_Q~tOOzliLfX z(Gst3JGk13IeST_9n0;15MGFlrlI{%MJYC6M>JgP2A}O3-VYN;P|cWRt5ZJL*XjU| zW=>bSxm852FwMQ%i?`v}@A2wVNt(V<7AT5`6g3D!Rm>AS_M(^p8{~bX-_BK{!r9)% z(ZTA99Zlb~)DRrcpHup|C|z!T6-h>uRb$&e)(jd;##^+o2$ZVjXVQba8uvxbN479C`WX;=AG z+q*LD_6Y6|c5NICP7}9pA7swMmrTOi%r$<`Zkq&_ub*KqHV`Ux-)qEQND(%Sz!4~5H@7b4KTBa|(Gba~r@*VC&yfX9G&w%c<%ot25|&M0P?3Cf*u?QNenv9yS3?lS$#@tM^b zQkS{4RY%rh9)Eq7ZO4AzvT*v(Z4xRh?qR!Jq%4?Br$*2>X;#W(6+VZ^O_D8XZtxBc zgSVL__7;_lV%hy$KkK03qCFKk_av<{hIK`M@a58NpoHtst<$Y>)8%4aHu0&4W{t&h zh+dh=yA_Wes#>QPlHW}q^1KFrW|YEz#3%%oo{8vHtfw9SwEJ@+P{ry&yi+ISoy;`F zOSL+Ymz;*aHoF@Ota+htr)QffOPFfYnQ%*p8koAK7y}euHCo*01ng3CvGJ(~``t+d z5AT}M+CuE(ubhWpkdDcj??wC!-|7UsH2vP>(s#xtX(SSacpodI)Zid=SIHEBgD?Gu z&a2?}yx!y9Wr_g->%5OcUdyHDL!~dEV;q8cd)t#5WYKp;#smtDQnKaew=P9ZKf#mX zxi)Q=I5TE;HYDQ%zI9P15gf%sWxFPZN$>3E405OW)^R@d{*Z!`)zkk>`X&0PCuy4s z0X6(atZ0a1$n!$H`L!9t!u~zY;+hUFk*r+NWGm&ZwfYVH zSM~Xf#N+ovSNAW1pK)3dk1yfakhZGyugSNhcyc+pY;%Dk?mp0{x6wu+2o%?trOl@; zeELpT1*D`NM&0daJ~PxUWB&hm`tGnMf2eJcviIJU4T3D$%HGHx3doizAbYPu0RcgV zi0mOKsBDoTtCTIs64^-0MpJx~fb9oe$^FvL;gg8q{K1VwDIa;?Q1Qxe|Mvoz=_l5q zg*);xva>dSmm7&AUD6m<*1uJMu+BxN9z;N5tnP`+alJf{`LiKRE9=rFKGm(`{rsqv zNjLnI{i=3zI!+D!h&>^aaXsLNbp??$o2Yne2Sax}hXK}@ztb)ov66YlQF^YT6y=<< z^^Tu7KOH&Wl6DZmm{=jsE+4O$kP!*Dl)OvYR}DbM5!@ z)Y9(^cNG@?o#=8Ks(sT4}4B{cz2Am4~$Qm$`YH zpaRGK-i+=>Lwqfl%;x?;VSEgI=I^`c?*8LEgThPZ{L9Rwo0;QVu8r0JoNK#Zv}|=d z!b1(L13z>myi8s?tS-2`?2Xyzd~9@uC^|vJ-Iy$%MXhw9y5Zb zgA3IS+6lZ7Im?r`1Sez2Ic^k)gi-Ni(T#V&6}`ks&dh&tlrv)V2f{rh=kCdxqg(2P z*iUyL=JBwqUc_T0IH9yn-6nc=FO`%7LOr_f?E|wy=|9Ta=w}FjcPC5)rBBwS7M~}A zVkPT(8bA3MNzRB4BwVFBxRU)=i5}gYVLV%oQxQnY8@yCN)R!ZO&u*Q(Qv6C|E!1&5 zQ#jV$L3#UX{?Wh0cl{SHBXq()OJZafpypNqsp~{hU(8}F%>ycH4Y3)Ga(?g%#aZ%i z+Ce*C^T6+(Oxl=MD|SR`sITQG3rH^z+^xfi(Ucf>iF!so)IxASyyIZcXkv;miEv+O zdWsmi^|l$BSO(4~ZIB*^{d&5{_vGHq4BPI>mCf(9=K<)*<&fTGS|I#dZJgS!Pq3^ZVD$kUT*g*;d0lg~|K|Be^9{?y`O0vZeGZp-iK93U72Psar?f zj^GIKJRX`p=$pSY(L))@-#4ihPShu%7JZ*K_HMRlXs;*`R!S?JsSo^Q_wd-#*q*{6L;hT^^Tk8#VV%YqBRgiXGSSpZT)76J>56kp>g|{U~k5ay8o;J-yv4z&jKw8~s<0KM2oD?U)fix)H4@y+mkX5Lg<$aBhy;k{oG|CP$Sdj@lOkE80- ztu=Va7^$MQJ9v#|fDbA_;*rnnBUyp2VjBJ{2(jADS()!U?y&qdKLHeOrcw4Si%i_O zuz~t_iAT_6%zu>QwW>8JN#WXq&>}66s_~9#yT={hickQm1TyR-ZRE6L13;lTzYGF$ zqEb{38xk4F0U+NP9)g=DAJeRyRg%PVjMQmknpOnJu)v|)84_J1tC{IlQG=ZV@ z{Oz7QHlI&IeGPKQ4%E*GNpO^FI3g5`ZF(cLopr69^H58{cjr$cF02=4Mu_uZz(CYO z8F`et%Sv#T_7~s#58WJGp#sI<)CE(T-O$`Sp9AAOp zeu){8@kr)`ZioQd5=~i6O@fusV}NL*EBmZo9YC6oJkHe~(e^YFUF6y6%Ll3kyGbhha zFx+2B0-=ejj>qwVz+}l{leEzi3+E5uj!74)dMHyW382;6sfpCoPz+-)F+IkpSC<}R z-z!9q;p-hEagcnS=S>p34Q|ei$paE1ih!cUt4nMsZmW3({d+ zkd8(uEf(Bs5RRbMZ;YgraL-x@E~-A6LxS~Hktowa1vz(j#ElYSt!Oaai(Oqg$eo1J zPSRL{DO@%($~)pp7m6U*2vU2)iIC093nJ+uUJ}bhW~#xM=vPQjBjw4!chxlMsaP9j*cw(trUE)^WFGAPtbh*M?9S#m0d;6ij@2=?!(H z*w8AbF5DO&93vpbKHNpnf^bZj`iQsG=^O6QoxXlnHuz-XRr^cieD8zC45U?mWIG_Y z@)&V$^eM7UNe@Mb{yZzh7}@h->hwiYDVV;C60___5-Y0oDXZ9PnEgw5gfM(39-&Zz z9PYy^lp&X${#YBLTv>*7X`{u?jsids3KSC*N4xYr4H@OERBVWnMV9&SqW>aQ?F>=p zl8*I!Xm?azC>;iGx4GzF&hS_!Z5Pe8n=0Hf`Fw{GDzDiEP+9t^MN74paY9%(GkDOS zC0DCxFfQ^Ed34bP>8E(`%LGU`CA=a2d{Y)0Mo`v9;(&j9!v$B3JKuDHUiMvIQNjl! zOIHvXssw3!l2AvI=s=R#?37FrEO_^F3lyfNw4i}H=&epe_T24?CV~S_!oO%}8D&Jm z7^w=?J}ei>N;ALDi{_M^IO0P;Sb%`}+nF&3uwS8ZF_2!ohgcdkV-g5LJ9oPUQl*{S zVS>Uydk)NS1LqROB&25ftvoHp#Edl3>+JTOL0k8$0-tS04x-X1doP2FOt zp`E=DbRyDs3TF#dB{~%qc)d$-AX$vGa9(}QgN~VkS&*($ZyPAWO`uoiny7g|&{`-$ zH3$WuXvaZdc%J%=k_O7wSs5b=pK(^ky+KyLB0eQr3TVPs({`zTg9yTp;zPcstV^0u z3!#}7VE;&a@VUgFKJs6)YT!pdupWL$f(89d1NdXZoyp-=zmHEof>hb(CW}b1G2#+O z{NZBhHJzkbzJ(A~xa!Lgq&L(r>B5A?by(Xth#T%le z@Pj}OBa~Sd?u-@)xpeRpDwI$nL?6w1HpU84C0&Oafnc;tr+1Q8L`h<$)0c}#R`Cz~ zff?=u2CP!&`;tpqCD7igBMFwW*1(SzV~f&M;cZ8GP|;$77MO`BS~v3gI^L@L^MrB0 zlU6jK{WJ(B{yZ7)TZWde4Cnr%M{k zn4ZH-iWNt%K?K63_xFfN9q=MPNRS+cot$KXaFpl}f|m=&@r|nPG|>+i9+o0K@Nsld z2tmLjM)*-;L|YsZ(XV80jPkK=vn7eWzb|V4R`qQD2LmzAl^*UGAKLx~sp-sl!wK(n zis{Kj7V%_6B_d7KRaG=ms+y244U}Rd6|Mv+(T}~6Y9YVArGZNTs!P$bA=KX^mxAo% zf#qqV92Pu=0Rvht!H?zzSb0dXEc=e9q*&$!VrF_fCF)oP_;7!?LIx6%P`3Xu5SU|X zCviVouoEU$3ceBCg*Xz_HMGKl%Sj2oS78k>z|cP@r~ zZrsyMvImSct+n3`Me~Lg9!?!J86P^q8!o^RZp;_XI}pGKg0T$Qiovy`|7f9>-z#VG zg;Nf=0Sd-ALEcJ(0VtU5bo`rq{e;kAjmB69=Xo$=sB%N&UPzKXF)7x&DTBIg!z0d~ zk5qjBK{~RpUIPlbv$w_pCGTYWFRKv9dIBV%z!+V?4M<`s7ec!G>PyHvxynQ15ht~M z^;V3b-8GGS(n!c0;X<_W(ZvxVGZ02K>72`3Ye>=S1O9+U?9 z;>F$GxTgmdiUZFY_)9E=2m<-GjG^{MsO93WE(7Ozt|a>#hR|DWXJB`SAm6hryZ5jM zf1k||z%C4Q<%9%l5}xsl2zcxi!008|-e>?YFxMm?JrWSHD)0uP&U({@ket5yPSR3J zET)VhwEI)zo>7uLSY-cN9`2WPE+V>|k+zd61Ps^~Z+oLR6TD3W)1D8=YU95eg@D?U zfrK=$?i3UF3ZX@v=EaljqZmS!^-;}Ef5J7L=hXql71<9=f3qx`g*@dp1}00M(>w)$ zZyOL!%Uh&T*06&SAigZ1q8XsprHV#xb~uaxvVjjx3%XRjyB}%hJdYr8APiKsS~ySW ztH)Mug}&wo;BdgZvnD_Dh2t-@{4b^l@yMOtjsP;C(?$R3129zQWSzc3?IX3J$&da+_MiCi0hj=>`2Gnk=D7kfMiw43nCpJ(RNx%R;6oEgf8LN(Jb1ucIp&ABHJ6uSqFuF9+pTdpPky3HQ_jkkO;bqVr4tF|?0MgL}b>OeEY=~m8 z24@JNWfmlsNU{72VBT=N2}%<_bkmf|4ox)uTL~WYccg^935r;KvII1laGHJd+1@m^ zxK$Mecx5?Ns1rwEQQEHr(?sJV9ceLc$TG=^jLU=&2siu)?-tmViho-MLCeSj-lZXv z8dWCw(PrFj@kk;3+xx)ki%|yQnD;G8KnSbBu|3irrn!S=VPzC73uyum?<_qA7tOs%tip#@b?$+fpf1Z-{JJ=Cpi;1& zP&+$1Qvj`E?FR^4dDl@NrHE4U=Y(h8!KRVMKB%1>rp3qzx6xxBrffu#l#=aT`~{iB zM+9)eFV#vf0-@Bk>s#!krPLT;AMxN@e*y?czsXt#OwuVT30jPgXImR7mQqO-B?XsA zP`Z)__O_E{{3eYX9#E_%aBeYHj|%S1jV&}p8KN2+)ltk& zFcd9D5eeaiH#;enX`mXkRpNmS@zpB>5-cGKR*JNO$F}7lBN|IrOi+tc;7oeVBkLVU z?)Gr5jRp|&q)W6K3Zi)fxI0AQhaO0+huAx{1UA4A3C7&$$Hoq!z|QxCU78dtg`PbJ zL0E=%%%Kf;V7>zIB-kH)6rWQJ;Pz}d9qB;j`y+vEIdR|B%@zp8Fob(erhH_%dj%}* z#H#=Fq14c06f+b-fku$5f^JTdK{)CCOGnW&!(#sVAW3*;@~vmz1F7%0-Nk_59(=NWkl2sHOHMEhXHz3Vx-jatgQ&y{84s43WN8yAeY0 zdG)A6p76UU2oyQv+|{jzYAEi)SV3`&7!)-_WbDT&X{pJKGRk1UD^UK40GtMb$$-~< z!0--}k(A!qTL=c)+5t%77Y$L~YKO-lRm%1CP$(D=CaQIwe7+_Fg@A50n376?cML1W zD6kV}PXaPR(vgcBy@gVm+5ncu*uGdOjC#k;Pxwsf)6}Ub)EkL-B_T|UcI?e$QvL%7dm z%9Cch5r8k0aD}x6ysEM#eN?iu!@eN;sW9O1-IU*!S?ykRXiO%690$_2FCUO#$XLLt zG%JKR?y$R|cC`|GB;puVzz&xJb{J?eoCbq>3I&s&#?ZoX6ww)iXyJSb6)57)#->(M zX*Ga78HoeGaJ&QFXu;xor0H4r1`3-p7oKG*x9UA&;c=za$kw8xOXdGcV?aXt;W-H- z^hwD4!4qb&ZtY!-=eet^wtqsVfruiVt)n=lNgG6%d*mPNAwqZcw0I|CBB=CK`KGhD zsrkajWnD;G=`tU!c@-5P7|XissOq;qxpT=LgN|5AE(7PIF^VgBg4i9IFEJkLd5y=X z9jS2dU-uwyfNNMhR1TQHk^s)c;V*rwM-f6Fbi5^HUn=C++*2ZS$qak~`8$w1HgW3|z%)rsucFU zF5Fo1xUDfj0zR;FIrGLSIu<4{Hn4MZJSeDwXsDArzKX;eOPAGMwicnImHlCx~N8fz(ddzzoJ_!41b#5w7 zWY6)|2tzjq(--}{iGswa-Lna5N&^znS3sP67kT-b^SDSSLQh4;l9^8r2m9m>UduAhR+aV z9*T1u-XYcp)`q1OZY?G@C(J>1OS=vxHJ3Vbl?7neP`{20h>tDzFa{_(-h_76Z3>N<%E(34WpIz?!3;{~hBy1etP zTVX0Be%zwj5K~giwNr?`{2HLrKY$onGO4GAyemMPG@;$;Vff3AD=*ehcV0{uq8EL- z!xjdP;QzKl=wZbz%VCC?y`K|8?hk8w#EZ~ftB_-}qq%q;m4-_^deww+2%ylg=Gf`+ zfre+tG)yN!jaNtE0{LfG-#N$)qeZ=~A_N~|F8jR&3>NMfL*_Ju+z=n zd(HH%by%3f;s+dq>dxW-F1>E=D=;+TL%caL*v`z${IkoG8w$Y~>``Ls-%wzy`hVrKS=Ikt+rnGh4^Ua@0SfBy7(rQ%Az zK=CwCR;T)BNl{tP0=MxGlOF|T4o*lnkL?eq{QRnQeqM)tNvNBRn4m!NnVXEV;wfUt zNT$G}Nxi~6YE?xn)bo+D9qP8zuC;1q z;{>G(f|xk)?`&3>F!-ur9cJNlf~bACtb0wosKEGay(olU_6WNpJ4N{y4vG7{kK+Yj zodzWm6~x z2duHIL%u^Wc&@7r;q-3x`6DOn;Kq&25t`EpJ=>&!WG;_b-x2deGf%{-1%Yjco~g6p#41V+yfRgC-GWpTE;cxwB?g?uygn z%?|-g_EtX05p`oI0Xh99}oi6X7&L4>G^wrAgSc7&if}7on7_*RCKv)QvrHb96?su<-<~8gREiNo3ddxKV)Bg9KRjg_qMyt z3p#Ypo__=l?^>4)W9%6rKlEnS?WJ~sH|W`4XcCP@oHKr+H5c(;w6`%%@bB!rKlHag zn7)nf;=5=Cbym1!YI0UMXKESuu_+z3P{6wBnIc_SPB=ws8IVv9=M6aXa@&l5HS$oD z&+$u2tzapwZFbbkS^3j-SGT^BLy?uFcF_zA)z4ZYmQfZ8T%<2dYSLFEc~6XWXZhZS z&Ue&2?RsSK#_mj-M03-DZrPTV%arze%YEmXZ?`*&Fp`8?`P{E>>fTkvzAAWCDbY6) zV?7M2WU$Q&Y0qglwPpIQ4r6$|@G3Z$v}M&krS@Yky@^-#yE$W`7eP}CzgBWv>)|6A zT??>@EIz{TOLmw3ioeu6b8{`dliJ=_jDQ8ULbNGYK(?mcEB!SZ&eEoFkNe#onl^rT zNI@_`YaeOm>uE^JzQTyF6sojhOrAQuv4)R#8n7>KU8(ooLO)8RS~<;qpX=hQi@~3z z2g6GU#yV+@Jx7hE^-rDVVOB#+q%0pk3TC}yQxD8c^5PbgjkhLJX?;b{zoM(LYfelx zU+{?5=8@LN!wm&hi#HF!Hjk9%1(x;ydcLVhVX57zFV;E9AC&YW8 zgTL&eWk39W_rtUy;6N zm~d)Ng%<6qp+@HqyaJYu`gA@5O~du$6Al03IeD42Q8p(h?~(EsF4WV_nw8!8+gy6f zA@9NG;pd`LXumSCYmJJG80RC(eex*Z@Ux_Tp6!?6l-$h)?ZbK(^HX|w)g&Tv{{(eJ zTjsyr-d`85nQ@$Pke0mH@Z5lcV$XYtXb9=~3mh)s>-nKEIbnQaG2Z)p9iU(eqq@r? z`lWXu&9i0wo9Dh^d^q)+eyMGaJLQ?V;C3Dn9z0Qe7N;H&yz!&zBxKz?%pj5Qf1e$V zvrmlq9&@QXzLR$Qr5@W=@hB1t|`1*`TCgT2-$2jyY{G54x0MZ>ltrq zPT)@vE=OM}Vc=A+i)G9r+j_sg%Z1>{={xh_#zG=?xv6K0+D*k?O-hAsl5&N4u9c)i zI;V8rGAsgHgU@m%_7tzn;>ArJbnBVCkQAX(<6nl*l9ox+qqlIcPMQ}P@)S$kp8X_l zaw6W`X|M9}%v+tzTAfYD zcztG;57IL(r+*mz{v=-QcS-rN4ccbi8zRcv*qZ!<3=%XAo>-|o(^B-%*)!iupSo_? z`57o*;y&`thD%eQS1dWHac5JXnfKXA?GwRLFU1JDI<}6|ms{?%KZHA;w%+;m&xJns ziQ3Z`A0ltU4_g*O);uDk2(=G9w^$ZUmur(5Nd}BS*w4X*vPIL6Q%lYTBwLhYy_;9zLjnYn5MoTc5Em53?i%Q;>I{v}e zqVGR~@e+{QwL%+SlQA3~&z~kd<}ok8(_;SMgQ*&mYNep9RIr(tGAm}P6HL_Lh+aT= z+rlj-l#~F=V(?bP3uO7@z*u zCx%o!l959Kl7w>peO#Q`|6Kc-zn#nLyDRMq)WbYDM!BB*0d7X0oO!XTb(BBKIYo#L zOh590B~*E;OS=^&%8(Y54rCz;MUl~U?9T5;=3culS|<+Z>IZClG~`#ZOOrZye0M=ey8ja2M`sx*zt0}OeLZ(%yZV| z+x;PNJz>yx!)k}A{qgC)o8uEoep)4-hYnm5^B@OutC;@f+uWzfxy$v4I#k!Y2nWY= zjupZ*YvosyrHcGf%PRsmt1AM{`wO8NIl^&? zI<+L$+^|AiyU4oIsrOIJgnm^q4d2`w6$h1fz|G!hUNKGLOr4+nfwKt{uiYkCEo(d{ z7aYCXsn2&V@zNutCh7mODcO~{zJ4Y3`_F}!Vf{YEji_L7>wPVI$+{@<{Yz8gU4@M% zxO-^?Nk(3$P3MK(^QjhbO0-EJhr@puVUMl#J}&4%CS2O?tvr6L_LX6U;j_$K-sbJNlAt8Q zGr%hM=#=L~w!e6aQu?R1Vt>2nMY5AAJ%wA%KaF}9(NTMOlym7!5Y@?wLgTfOjEsbY zvYO4M#aXdD`VaMxK6hFXOP&W+aP6AQ%d!X16plB3DIOx`DG$j_qW_=g8!T3x4&g~ z#bKKmEMC~$H9L^1<-ehG4QG7Id51-Icu3@rZO%w#>WQa*(OqTJcQQvW zyHdBN`MoHODlTAtbirQlLu8q}!|CQwx>amkd(AJ03%wPr>zr9wm6M;kP!g|1QXU2+qRorQu8=BFgku2^%LhLm?AX^n#FY%#GTD~P21Mwu10o6|Dz13DKnUQM(yIq)hS+(bNd_svw z12vjJ$7bYH1qKsR-oSTD_~5ZI=iM;u`+Fh!)Sz)3>QHB#xhMF`=qc8eeX3xuYlcAf z&L4kEMjOT9srS?LtMBc1nTSxYbg#69)y4<+zBI2AlTF?2bPuTQRxk8jl&x_&u$>ZW z_?vN3!(^9hzU+$p!cSmDSn^QBzeT(KgU$$QF!UXxPvT4Ubd%qf-Acs|cB`b?@U`1> zuZAH|+R`kvWyQAWsO&rP*Ngh5F`tFrL3#L>7(;4az0>$6`jo7diuvG`FKEGEe2LNi z&Gf2`{!r4Ra5fvwoue<5Z;RC1BN7dUQ$-%oPwiyqt_?^`ESd!M#bRW}zLestYa)pXnWq?|QV)&As^(q^gr1L|0}ntkK31?%r+VpMLrlIHdl`Lnh8DWmI!qOz3x5 zCCNu)J570S&)&%5`&V(q*8=UIZDVX2#QQU<9G`maKX47AYN)*F(Z{d%Z2OgRpz<~& zuZ&(2pOE_g>kR@(mW@KTck%JP%+6o+Po@>Yk1by^osES>WF*Wo1W^pol@1Nakehuc zE5GY`{8uC{VE^rg8>6GH^ykU~na6Cee||X3RJ92iE{_-S@=$$!n`clR2KKZ^xOtK`Lf`Y89rwR7Lp$jmH#a&zXAkb&t>1pE!xdZlP4dwUCBDSS~1n_adJ_m7)pvEZ-SSPJ!<71 zEFDppUswnu_ncm_v88Wg2|pk)tY+XL*(sV4->NJ702Bj`i8I3njGbGi%nr{9`GjQM+V^vMn!% zB_+@adjGV&W!>A)KS#zNgQ_2%zxZS@0zz<9q)C0{{#@JFQ?WV)BQ7e~zAqE7Pj;DOF9iHqiN*1Oj5 z??3K75G}J7&Jz2bzot^I_L+{}g-`!tPA^gAOA}f3bMrw>@~2w=a^_>2b|?(|B7aXg z$Nw40H4z(IHVYUjOQlR{9KRC#{1Vae2uXi#>B9b<0q!2zl<|CUfXUbbKdqo{EmN*%&&N*eQQwnvt9IC zHYV@|y9yKdBgFaGd7-jA=JWvUNX_7s3U`zi>7+9?3+%4geQNU~q}#Li-y3galo_>4 zn4f+E+-pdQ{@Q)mSx=`1qyE*`ZBF!2{ddt<^?lx=&5m;@N2Tbi{m}`#e4E{Wg(cgg zCMNphdL}dGL1}?xomH|^WcTwvYUbxS*zJyvnMmkO-VGKr{vrM-48Q2MGJPfD)7mKT zmdomGPGQ0J=smT%Gi~j=iqCy{g||S?O98M+*Fq382l%84@t$k`C#6 z`$OO2*_*0~l+@qr=7FXX&64uNvMaMKYH2JFpRltl-VOBnAQwDkTF2cjDeciyBRu&y zKl@PRUZ`7DfWuQ?ZC}ivd}ZFI_8-r!G9G`$)$xyM)GZCGJB!o<6|GE zI_}$7TDxs+iu25>kx|7l(C_N!G79%};3cjU-@%?gd=~0WN|LVqmoVx375y*C=AXsT zzPH7{gPDxr_dB#Y3n>m#nO0<-?|oB7Wws{gV^)5jLGO&16aHe#WNg>8hWU*aMaH7Ib5dA3HmVMLWetZ18LfyheC-c+mJUwL{hSr>*nzqVCv=d;bWi*eG|i#khtlxsrKq@8~+ zBdLv+o&W4B%o^Tw6@c$=A?oWRi=16#4s>HyV0G6XO!q-Anzdt{X2cgUZzp30r_5O+ zD34V7$7t2O_BHz}=P{coLE`s`HJ_?{^OUU{*k|6GQUn)D6rg%v?38{Y7fGNsfpM!- z7_e|5xk76jVbg5Kzg(#v*$@88(*GNnHCs%sMg1!j!M8sr>&gml^Zt$2Q21X$laPx>PLVYh?%u7}&+nag@vc=c_xeh4 zMr+r^F&;EKEDpCfT}*?d-`t4n`*DZ?JoQ_U(RTbiH7vrR>#dqJyv5xHWK zqSQM_7#zhNJz(WPEqweS?D3te1gn)?6M1BbTC~JzdUi}{&xec#`@>w!JnBIGs$f4N z>@gqt_-<5-Lxygt6Wc3tiJ6s%ADW&MY%wiI$^xhKhhInNLuHQ>Us-($t@z^!GB3-w zJpSCd?vjA7IW+9~w5?>v(^H)o#kfAI@at^C{A)qyuua&Y{^c~HHjeCsE&q|;Ov#R4 z^SS{}fv#Apw{oWIhxt-FMR0AB$+AS<gC znm6v!h7B^o%J$ls3bk?A)FKA~?<_;HO$r@SIB zk07+1d>4_$X-WG0nRW<&CP8UsFKJ8B=V>m9PSMq2=8a^|%1m`O)~CQhf+To+2J4Pt z*yeeVPm02OnY7cZ@t?(mMwSz9>@oHV*A)@%e5UPw^66cr8$zF}aqjz|pT!jpzt=k7 zFrIad;^$AS*;!n?viSXK3Dh|L?X4*OBIi{qN#Tyt`r-o-op3IU>AQGOy=YDmf7$oHx5Xfrs_qGwo>HkwMV;V z5M@>fQ-$2fJg?usGfJ%IoRM+VDdi-V8}|TfHNG7JE4>-kz{d0f!(MmTCPiN50bVEy<-tE-IFT3!FX7{0i;$l!aib~1P3Hil3w z`2jZk41@SPYSBOf>pXUWzei1U1IbahX@%5Ixy9x`erQJW=AY`TR*i}IGmTCaZu*UDV z!!1W5N9-a?G}=DBw}8G@eQWr`>DY>U*ikSHO0^dTNw(l|yVBs62= z`?e})W21COA&#O{>iV)(YtZ=bo*J>~HFbH(+aCOHX}{#-sdV^@ydP+3cxnyn3BR_M z)L>Q_f58$klLFRx=J|n3hwk}6J-E&5>HXI-QwaWS3byAT68a-#=;E?9*q&GQ@1zXM z{CbqUB>XX3jq^(oK7Y*aVOiAVyOsQ! zr=ubHHB*PE_XX(z-fIdi#6M5h#@N)&Q?j~OOjuLK>5F&h{tsBKEO+lkhFB_Ac@425 zb@KPFL0P|+p8w5~o&7p!%k*h})wDZaO8~@{oLlI(c;d#JPUV@jlatZ*RikJ>vEFXCg0Lg6XFp33J8``#m2IGiM*a7~Dn1rVNHTm| zhnB|YZvx!jm!h@G+0^0{y!8c(4-A~JM9;F1W=kkJ_e*e^=cYI;g~AVmDK2XJkv%t3 z?Km1D>evi8-<%YU5>q;y-j@RV?iIWzmqn?YJ;8&@3AMk>q7+7$aC<(af$AbpU{)DK z_D-^J_^^_~(-I`nQA$J-bpuFKF(O^6XZ~lL6dAX1@Uih>b=0UDg~RK9WD5mFhF>po zz=6U+H6H#WjitCF70zBaq>0+*rZ66MMm^yo@{oJuq{rTgm3eu7E-&d*j*EM5K@55M z?RgD>g62~26#hG&7Z3h^W(jrs+tC#KM~X9)*uE^Zf=ijiWX1z|E}VLE9!PKyo-#!{ zlC*IyW119n{jD{j^xI4&P9|#kuH=c+@N;%@PO8k-nWYNe;*RA~%+We$h#=g~nmwDZgpn0JoZ>x(FfBaSmlY4Yf) zp@DYbt@V%dS=%47X~K`QVV%9GXp4I8=yc2hy@tg1e}yhyF}|^a3X+WaRs?L@GUZgV zHe1{qkx&?ARk>izEn7-X>a^#R_91(}uU`3I7AHRxRC!f>DU>!WZ2st;tiQ+BxVr32 z7x*N*9TE6+%;_V@%|gwnx<7gtKRmGQ(5qg;XJA4$q~*7>V35*uob=PR>)wDANfhw| z`vcUE0fEM5db}lq2txzM58qJ=Agys25545`(D&Q_ct6;`Hdh*6on;@)ng`LS?r$@r zUjL=g<#hTG$SKI0M(0%P_esz)C`GeGh-4#RDx%MpN;+x6RwZPctOT4$wM|$qRYGW) zEXkIz$@*8D>k;0>p&*WoP;Da|;9cWW4lCUjVIr-rye6Zqep;IuOGsJ#c>igP9lb;5 z-WmCa?+T;ZMh)}M=3%`7li!}zOd+L4Ztyl^tS$H5*A}mI40}JAHpyy4_6vU;T;dUt z`y`d!wZ6?v_^Z3(nJxe@f=QrP&$ku;sPOWE5UGpUZt>Z>e*O2&^VJi}8atHl6C!dA zN-oWaSsbAgtbYfGh2b;JMJ%^BhIqf5NDVaUf4#aj=l{TX;|IWddJ6=H4Ah*$Sx^w! z!JUv2EEM&{c<`(jEEL_;2~$FnEGje!w9YK)#c}XYpIOqej0vbosrGRwJl~xq{Y9p_ zt0d8eV{dN^MFOecGnx>p1buxLEs0*IKw2V;M^Y&*+Uhiylmk$r{uDb^Prct-BrmIs zHpMP@eTX?ZIis^ms5V~QPSmg&L(79fM02&AkR zSrfj(S!!SRl`ByuoTo`Gm?o)jNwZjT_BqWgH=XG{tMg8fQzdF#Z1k>_`(e-CcEwT3 zz#sNvVcTA#_EDjn+Mb-s=VkOB{@HI2vCMRXj|&~=htl^R)PL@%w#G_jmwu}aDf5nZ zfC5ChF>>|%=c)Wg_pVNx`_`svq(UwgE#Hk^1?OsE$TPfYiPfWHD5}_(I-n((LFPrteG!aD=Q=3Rz+r)m(}5m z_(q`~swL|;n#UZQ*7ID)1U`pBa(F-eR+dSZ-R}QKN58vhX69>)&S$&V|B_kgUZ#*& zRRz6+d|vG)EULhaWrb3BPq1!XPgxrKO%Zc!ow?s`q!zDcxX5L6VS_L7b$%UjLn2u= ziwML`kIi^gTxs@#)QLT`aq?z6d_2T2W{28@iH9V(S)(lV>feKk{g$8xpVFvZzSEF# z?_%{E%DPjv=p0{ypG*Y|I>IOjb4a5^u1-Y>=`GDO-ca<3A?ae+Qku=|QrGW`KfCS6 z|32LbZvB*^raqkE_xZW>6yv^i>*rpl;5$=iu_-UurtsTUo7d#_>GV&p)>$0{xwa-Qy;d4tQQuslv}Q62_Sx5JA=cG z{-~!UElNJpieiiAh?nvXVe}7W6I;mdsgme?rlEQ^-`nYtg2W>M=V+`b#J_JFL8vBW zy(1XzO-sCbEvZi!Oh5nX8}^A|`B9GfN`DCdn^KKeqBJ6Z@aE05=w4)fAwsr?iWQ_Z zCyp}R9aKg>;{8nXYv&^aWO2=xH=>XG@i>Bbo=+?KP0duRCapT%Qg5|ZYbohplbn;o7$n+v(JAKFf-zbdVK5-YG!T z>52C^znzgiQ0V7A@4^hHsGjlL0MbA2&)k+J)g1%$uJ_7mq1e{W4-NH){JTeU`qxpl z{Eu)Xv3nT}1dB@U&A&(+6#rh={U}2i;9YCMNM zDp~J3HnZF(P1<;7EFy139{yL`9qYPKjC4%L&&S@j!OQ1LLaha&wKNwg?PyDZi@J$dU`^f91)*PWxOzi&HQ^x z7yG>PdbY3%Xnk6Xfpndmn=7X@r)rVc?VqC7TS0S+W7mR?#FSAjFR$nauW+R6ovFLA z7OOvmV>t&PLKT%&zYFf4-)IG|zJ1_Wh0RUzEi`Y)s#je0dYas-6Y!mZTA;#A@L1=0 zG#l;s{nR#t09slx`P8sV7H=<6+5?$XaMrp<>TWqrGn1b8nT#`R{z+Y^AS8Db#`Bf^ zMT~43x#ed?8-{Pb9-u?^f?GUZvKJm_hs+Ec_MfbI3&jT%GM4zJe3{n7eLeg$s(jNf zufpPvjkJ1Zij2X(BS^+fHj^W$ym*q!Gq%857fog=f*(zrjovI`38gp0ezdWc z{0VI2Q3TEX1~oGDH8<%?TX%gTU!3tfY+nxvLhZs|VOodHAoh1;J%9DFt-_liG0vFr z6*yQyGSN<7`o!Xhg>W(SA|lR4_(3zVW8|V8_3~wHS^=SyTn<`VlRr}BPcX_a3uRB` zG@m}MU%6(^%B#H5 z;C)Oa4c}RkX!(UOKFpPjH%@FYh{+0D!*C8gtoju$DYbh@5thQ{=7VzESA2|#TiD$a z^@GM6VOK381?+Lp3I)e1oA_UubBfG=$%t7o8glqdDN?7QmeA%!5f_nq8hK?<^Ixj) z79mfQ;3{ZRE0jj`0YaNAgl4~cM0^2|>=^3Pev#WJDVR%PuU5$UB2};{H*o@E&XF-f z7KY4-`@$Wn;MaA_A2Pxg%R{w|PhamkFv+CP6NhMuLboS=#sWY{@{!9Ye02Rx+K2}q zGwQgyQ~3{~$=`|V0#Qr6puV zdtIV2MM+qOy|Bc2sFjE7gnqt_{%Lyh!I9wz>m0d>HgNLc_67U;oo;XFvG%-k^xfu= zvDhk~&h{_Dm!1IV%uB-{jmO&fuP-zs6lgaZ54FQ^@08d_;>0Pgczy+SL`M)G&=UFR zS`vpx+=aG&1#Lb+lD5+q=U=wBc1x2Yb>Py2z@T$v9`J@2rkou*xuG6wLAdY=GvBHZ zVPyXiD4f;6CKhi4S$)>>S|M*rPd3?OwPu>k%V}j1)Vp1$qp;xy7U|KYyL9G-9bvc_ zrC{)F$F3{aJj|nH-xCsoAIdlTWe`t?jZW5uT=8Y9a|`fX(zGayprKIaC(?ylVS<&~ z%Nk1&A=hlQE)zKUevy4(Z}hY#TNNO+C`i@f=v} z9MV3Qi(2$`4fH^QP@p$z5~2%BV-oT7U?dv3fW&x$@%6dFNVNQ4cH!$YBuqdI{yLsrPu~YLzvdHe*ysO@Z|)?12#fmYyoMYHb`p&WPI|;m^3Pt_=CjNWfLh}8=y}@{f{b7-#wEYwOymAQ zo)wrY@sA&=(PIDc<25^JrrFndB*sOx|CsWVAFIWhR3nh^*Gu7E2Xn2P@wwU@&{nAU z{WuU?fbWUaZ;SJA>s+j_2i+q_TjNJL4M0L6u>z4Qdq*m?i#r3D!v!RJG@NO&oBd7K zBNz{kw7ikaeeSX_Q~dSAh_eXg8e2z}ERV=1HWSV<7;Kkkq=9ZEjZd9q9t-X1d;iCV z5@@p-oBy%l=QOV7KQ?qG)v=S2=W1(nUXvE{kt;uj(S!|0`8u1pIV91?*>;KgK*d+0 z^Vc@yl`L@sIz5=V^2oud~>SKbx&L~!pr&N*b zS&wv~MH;>1ybHq>S?BWlauRPF(wRnW%Sw&Q*@l8T+b9x~+|>l+YNLwilN2eh$g;5a z4SD6CeJQH7KvCmrtA0telNA(QGr`xZv&EGYOMLhJL%#tk+#x7T*;P%ncLYL?dlxo! z=dI#)+dAfbLtuil`L)5`4};C-8y&HAS=yIx@2I@*L)sFGlOV$H7P1yK(g{zf$LeY8 z7>@3hq72K`hH=Jg*}R7umP%q90)y5eta>xlrsc8;aWmL|Kr}L&1s^lOSO?)* z(tPn{o_QOCRJT&0Q?q|kvUpR~rC z9%joakKfGT(i|DspP5k^%NtSlU@Ocl>@i-K7q|$Ghv24TGFht|O#I zw|5vnqmC?L^_w-j#s7gZP?7&k5lpJOr`uf#^GV?}rJi=|aWx5YC6je- z43iwAo9v#C`WqF-{--ZGU@-Wm!u_&fDJ*Q8jJzi4E{bkbX$PxMBnB6i%x)T|rcXp5DjwI=Tm7XVq+Pwp)rm z`{x3UBA(t4u#(y5p(6+r*8-Nz;i4+FFxYUX(kKui!!-tQccTiXe=XjKs~0aO$-##m zCsq-OhLDK%IHEnNhXK-ue@=_1n@roojUvFGTZxf2Qhb!Tk8qsAy8vT%iP@VJt;D(B zxv~u0zy1~+)SMl$6g0+Kch%2a5KMgG3r*V@`J`OntXffwKqndbRCTq>U<8~;Iglga zaS0j;_{x)U#$bi$fN9b<1l4{(rsa+>glwsLU}pI#|65=agJ*^ags0_a;AAc8NVc^K zAZsG?54E(q8VPM~Iv5s{weg#nnKOC=z}knoV}uCUSuw>J?XnVP{}pU%nj#aI4WZ&N zHn{SPnlpOZS2oaHotBa9Z$`GUs-rz*K%ydRE>Tag*=59bslRd;SV#ISRA|SiBl`+7?bL&W%IlZ|D2d~{lui~Hf5A8nNeYumU1%>N zjeUc!xY7K`2$Wh#-;3e@&YFUAty&sKu+PRuyu?2k8;8=1VkA<^9lAOoLw_q+_RV7$j5rFVsiz9NC6FkDJ!zB1` z$C-Y9`F>3n2Ao^9Ma3Qt!!)1}nN_?6k9OB2Fq9$>ufSOV+0>#KF8BH z96_GKF}1r+=p+wVG=q#BI?{7$HAk0UCwp2LCGcoCIOC>>${Hu??#LS}lnwnPf_o-= zDzQON;%_W7f%sxL^CU8Q$urPo#66n7g)-F2Rj}`tWgb|0^df?g`h@7MAG>4mg=8iX z=~ezP&GJ5dS%vJQqn0@&9mgfgrp zjKRH#P5?s779rIOJQ76aD>_NNJNo&m5`P^kV^?M5Q4kg6=ScbpVVplYD5H* zN|T6I)TxBOAMr{+Ti^4~ya11gqpZfLt|&;q!wE$#6r5QRK14uvkCZ>(gV?hPK;2J_ z3t?o?b%4)j-Ht!xWh}FQKeKF*r-4uU8mib1xq=<`Ceo%XfX2HmpDReLhmeR=ipR`Z zGa`BsLdOi_1W!0scBjr5i(iWsE=_zm$LC-*?RYHVU=^@GSBhlyCphKA5d{=`ooO*h zG>}E0`Gr)+=`4_-LZg(6YMkfkR;^#u*U=fdEJ&jP{Nbf|1Bi?G@lbn(Kt%%ua>HtUAA3*+wAVdR^N#dAb076y0_?FOKWC*(PfS zrQ#(#|HW;S!-NrN8T8DeOli_~kGVVcfoZ1`2nemSNwswYUy2hh`?AoWR zkNh-{GNkK(QONlUz4D;1fP9k5II?L2wQ{H|{D5wOh=li*ain0!wn(_Z7@pm-?R%2t zjFy#0b`!HflD+hhOy~7npPDqK6stI;Z1Vd0G}JFx#f=W#E9$`u&M%HO8GN4Kd{LwC zc|56mP(+WFyhdh0%>SbLn}i}@;=gG3DuGNUewZze`h18ij+!4_@q3{w29cxKain7> z&Cj{yz_^k-)BIg(LP%G>lHI^und5RHDy0|q{8D9ateLy&7@)Kel?o5^5pIeCv^QnR zd{9r$+=|dVYt_R!R zW?|&nQ5K1hV|DPJUn$gco!V2DnkNFrRc|hdf<8N-fbrY=xnTmi$I)>TO)bBf8n ziH4_zUU1Cp)_1tn^p%e2CH5_W(uZdfT zs0HMdjIqb#!6+u1ftJ-O*8u-zkoKrE{J}WaPMlVGdv|_Yb}3Yki@8gk+zIb#coF z8L{+Sx*+#)A`#!KhSpEgdFeyp2|SbzCc7Q#Sp-D|LxN3ID@lJK&BWs-RbKE5%QCF@ zBa`dK-tvtx!97EteBf+<%wx%Y?r?ZzS%t&Uv;CN2GQIV9(cS(AQR4T#QW(d~*dB-v zR{wKO6>?e^3-LAuy;#!;S!C4r_-DI-3952Rea^1!P8YTq`#6;_I5NLdY?TN>PaKCD zssc{`OCTP_E5xxw`1FyJE77JrJ(5JIYYgN{NS9^*CA6rc5coz=|1-22t1&gRIh-^i z4K5Trfl0m*yDv651Nwxrds!k_m&Wll`rp$ck1LeJ=0stvBl47sV0PM=6H*yg>%a_D zNu<<0xNoQ7Zo@^~ecs!%1V8+)*<?y@>jGZ@_g1mY~H z@ZtF(lJU)N_ss@qW(s715se_lh6Awa_j3?3!`c;lU*Hze{L!f9cD*$G z+a6uloTw;6)oNd9^*#lBo&c#Z20xmR31ZO|uJrnwT^KL=a@5fZRR0|0mPRShBN1g` z{^Qptqg7Q)2tJeY#S95B_9T;QX1QT(_$~p`)%eUIlJhzV^ecC$RS_#avDLmCgxlr_ zg`1`^xCyR6yttz`G7r86Sw5B(bcD`qR33ww`aknu_IoeH-G9Q-Ef4PP2Db{`peBI^ zt$vbjqr%jjQVZd{oo9LW?DFRBJb!@Q5XU_4NYS%W!6(NwAKK%6-%xX~T;yl8L;m^uBccxfg0K#M;5F!BL_MCa-%QnkF=_!CUYrdfuxt2NjMpB(gS^ zs_yp{K^qu$AC$+4yD!f;hq;JlsaWnj^EX_6y-~N&q|=d$NYW)`QFJfC4Aez2TL5J* z-9=`WDI^&TGJbwUzldbt#wdOgUBya|7-X*UB;wcZdl+{(=FE6!1yp;9=CntcqSX`1GRHS%=L!ap-aW|OuqLnX1moN#c&c1|HR2{<;M(6gMUqn0msX2Sja4p;4zjXOboy%wH zu!e9{>$81{tn)iBjC^stKLSyiGkYjbF*k|DG<;mq*CqvyPHC`><}RTK;%2VDpcFQt zEj?8(=oCoF+yCAE61TdCJQl&;zKfgt*HrWJm*Y3McCktJJBFAB`)2RoIJ!g-nQ@pX zdAWm=l6*H)^ejKm{D_C_C(+oF&A!f}aJr{_0avk7K_fdg_a-zd_a2}jMdD%7>qon` zcY38Fy}yxzF-%_L=WRIaSL1EHKbP|fRL1uxQL|W~o(Up3c4xv0nyw%`L&<3&ZQ4qoG_u(&HWj5SyH};9$|*Y$ zwMM&F)#f)(&qBAjIHK(|T%+B!CU(~4fCa!suRl%HHg4&{f3j`qf_=K~?d#3eOD*rQ-ue&NsGv zJw}h(9jA%&_3ixe`T+mh^2=}Dh&~4|F6o#joCCj;Jt|&vMCR$;9B!F_sCx{J3|7PF zr!Oa|0+kU@1hkn!Z-e8F&?DFec??1yH(gNAmGKsc%uFB5x`AHs=A}40i%gAetqw~# zhouoNMq7uTCk|WR@yFChbs6@=)?xtf)hjXZ+Q#W&St5;I8h?N4X^Xyd8Y9DkPOuva z{7VC`y9u(%{Ck1PE6=kMb3DCZc!)W3d*oc4(AY#V_KdOeK*`>P<&-obRnyX@pkj;_ z8oMCH#GJY934*w@l(>JzuHcd)QuUORL46dKRgS71LsLI07e9R~onT6t=rqgRz|-)4 z@cw?sG{^;I)Rc%3PZKu|y8`$l85&K3H7Q&gB#jZMeB86fWeMhySdCo)0@7UrERaU` zgJ~Uq>h0@9)4S`@si+#O*6U~a+uoN)FV&o!$F5_uW4xTusZ8>!4ouf`C$nP!Hi%TE zHJ#DP@UpGW&N^#&3JTL$raL6UQ}>EGPvM3Zv0>15D(@nz8aq0r+>5KGD)ZbRp? zd6PW{hkgqM8>{FC(m|8h(|?l^j=Fren#aaOkR3-NWuyq zai5j@h{z&(6P*O1ZOh5J?RicY!fVik9*V4w+>F9BT6)FwTI=7n>)NcclD&XC=2yX~ zw|LcY#E|DfSoHquiiJkk7i?Wd*XUTc!Gn@!H^GC7*@Lp^f>sDj^1gR=UF_G%u(xvq zittz^k;H$CspWkqb}%k1eY;dLpXwXfuMUQQ$))7K$Ex>y0 z-RKtjTZs*#FbjI=>_cZClwL-Jz<_1OkoXOfgHw@CJEZ))-hi8NDSJ`LVInU^8@AwA zJ?~zJCeRMPpN6k3Pad1w_q|~0tGmNL64F>QecMqr`6P3oe7v`FB-Q6T_U_S0_Ql@c zbV#<|fepqvn|DF%8u5|HN|LVVSyA3{wv?;sZ1rYKuIA+Rsa0JALMz7TIn3ORSXs+2 zlE$;(k(SAdwyp9wmH_#?60z*kjG#E@)P#sEs}~7TW2*e)t~8ubj~wa^TuW>kPbnTI zsdQkd>w3;q6mwB3^<+$Mi0>qGW2&bddn3o04)uz}(IzAB%6YY1@^+QR%&Q+mjYTu| zZ;STOW9^*KZf)Us$3ydRJ#!PrlrL|Q@d2?1>?<7c;2e_LI1|cPFfKa$w3V(3pkS|w ziEM*D<0RDu6RDeg&f9HJ#~$#-*POxYs{T1Me?K#9E*9r~)VE9*i-d`wH~+MAdj6rVgg|ImkW_`)pekw7 z4_q;oH7oLQkzws8?VS|U@j87GhQVMmwpdf$j*w~gq-d*$gcfIG0ar{Rk|TcS*=>;~ z>eoBpMX{vtZgxc@PG4sjV@_j77^Vj}+24Uip}{L~(2Zz>Y!v2XHL?l)7!y&dSlYc< z62>YB45e&1<|H)H3@8?kwrSKEm~F~8iM~nNF$Q_qmfa7OfcU#i>sOg8Dhvwt6JH$d#?}`%jm60!#?;>y%b)D(&&DvG{utpcFScWYDFsT+d=WWu zB+*IX_W~bgVkK7vab4U&3^=@fKobOCBQ`)0>|(wR(LKc)=22YZ14JN*Nss{15_QoWd@JoWn%`c@+iLPf?ZWb z%@@%s#Fu~Px2QKq%r-#%{>L2ho6=3bWaE#Vq}cDu4;Qv^s5IRSf8^g=)EjHia*4H_@`!y|FyT>Fap4_+X@6= zfSWsFD`tcM85rZ>3`M|(@n%l_G-;VZcbzpWMVVoifwEZ_$iPY5W#+{qIRR_IpzHjd z(?NHK2yLIw#7n{W7Dd)6j`|L;Q2!y1nKe(#d8yOj48?gFUH>sm00u6DzbEOt^q+~h z62wi~K5+*BV6)I>G)_)Q8jntAr&7e=kOoqI!pbXmfRg6BCV7U`oEKC-k#>j7B{}=M8l<5MJoUHG~bD_$ZHL(|95uy`ulllioOt zFY1BsEm<3WNDaQ4U|u@VpSnPAZbkNFr@{6@1PhCYF8upPKEg!9yv_PGy}ajJUJ)KI zD}2b>FSpT9zQ+ig|L|9f{92(l6*J{W?<*|gva#o1TkS?Ekl!S$3)=93CiLYNMpuC3 z1hwDB4U_QSAMK<^_*mlxL9TfQ%*XrqQu6MH#82%lpzH?G1qX${_b?LW8=|F8_v&hcU1P`4d*u2VMZIAlrnaQ6a z)lH_Sx3;TTiM>n?^58qI)Qy3nbw@2C;KQWQ0C5EW z=p+OR|7Z~ev0xEMf4gd<=ogk20;(gxN>t50$1tJCx9D9X@x zYF{#Dpfqv%N{Ic`Wx_&8kkC$T=M@`l07RK(+=qw+nT4iKZ|Ful z#!86^qoApTBhD6{<%koE?|X$ojAPnik)=_*7$ZxL9uGofeuW$Dl8&+FEe-F1+^#=9!w|`$WXF#(i!p*M()k>K)KZ zefF!0GAxcVtZIHW4%$+q%iG%0j`8{7jMO2-__@N1Wd;Cb?6$s?kOpmK{*pxnG(=Dk z1UGOFLd3B`13uAEF!&X~`ua7|C};Zv$WFIx{D@+%1<)hCAYQlU?+P_xlLb1oxIGkQ z=bG@-9g*AYnPe-p5c$f1Sm!$ojDHz3=#dJ^G}1m|{;t%btkC+cd&q>QWv=z?2d&8x z2y+B=PgRVJT`0b?5yhQ$TFZo`W$)RBQ(sj^d*G-xp-Y=zu2fg`32I&1`l<|CAV3w^ zz-borsR(eF0=Hh3pJsA0HO)YkIQiV*ebSP@2fABdpD>LKf4dgkTeO#s*5@W@VQHU6 zK}!wVc8StAs?j&9)2Hj?F<@!c^s<*g)tr@p;pL;NiAWJLibXfvraRMDt`9+Xi?U$H%SHq24`wDb%0o>OO@5PX_5Z==196j_1cw2 z+V+IE-%FRY4L$Wz0%Grf57>4$&$5CK5n3A>lo)GN7;9K{x2qYoDBtb#kAo3>cDq)e zFJF*@Lc;qMYut*yZaTt5i@R=I#vgWrsc3x{@Akla31HPH4sM(ywI_MM?&(09|Iw%$ zWbPdAaB1(Y8p;G@n>5M;Z99XttDBe53*U6BMRPF|2^X*SA!0h!CparJ?37tLhj|>^ zdu`(h{-&86>LKrLIph3IBQsBV|8S05i9;WUGUv6Z5t?upuL2Ej{wWp{s*?rUrU$Ro z7*Kp|)PKMv1={!P`2zk~;1kK|E8T$JTg3e@OoFU#1oL=WzXz6*X@Qz40E+Hs$E>J@ zs0nA3t8%yntM*2ucD-hi0}uf{R%Ha}rhqae#f0_$x0BEM8n@NGl#clJa7HiucA=}^ zN7Cl7DFZ(2hv5H6^R%JaqO#+Wrwj3sUod&z8qBbGfUE^ug<*FgZWEG9kOiQ7>MouD zggZ`^-2FK1R*dk$Ts%;W`i$=t5n_;a43pZ3ngujT!FUUp0;Dp3REz1+@CHx}-xnlOKrDp=3?thFZZ>6*C&^H1zcTX|f?gtmPsx~S zliCCtBsB(1VDuC}pMC$myv+w~(5dcXnL0rh8$ykR)0EjGZ506V?c>MfdsgpG)4gWo z7Vn}&2ko!; zgINuty^W7*D9b&`*Lrw$SX70 zjQ|Z`O7Zs-K3+1ccz;nnO*jYLh4$Zy@b@dhFeD&d z$`>3F|Br+&Wx4$o0gW=CN4XE{fy))#N^YoWPHi%frv~s+8yaBYQ=Rz4f2zaqmCs@M zQolKvp=Ik8`0`<0zx6u$GGQGzIgQ{C_~u_VA*gdGn_Z)QsmB2Jq`xulSGsf89X0QE zTJZ;>G|QN2$r#CfJ{BxL zQQk@sD=Rqp&u`Ge^1}#TkZNFTYiXj{_gpk(CH7BUqcV*3RLAVPTJGTm&2O8SMa(Bk zj(aM{(`(U1`H2CKBZB7>?`7qld9+8?;7EL7nmF_mc}}a9|~Zc`a>5_sgSmX$N%n9$6J^!j!29*n7u-*Mbv=p(fP&*iz*kDy+A7 zmZT>Xa+1I0ao!D+aMlgJ>@u&JoQeey{LpQTGhtH!+NQ|Iz5d|jzKGX&J$78fi8O4p zJL3VLz-i7yR=-A6zs9%0?@$178Qje?ErS0W<0WPd+S0sy<4r+Ms3Ljm&&7VxsUpZKb0FGy+crH zgSh14^OHi0@=xE@-IQ(tsT~06jjfUkxANEUg>DizhhRp3rSz)fd^sz9SUVYASEbS> z_4F4`@h!#K+R~#}x)*nGKu_V8(5yq*5tqsxKHZBvhF^FgasCmP`dt>y%OvJIR+PW2 zI3Trri{-p>)Sf`@$#=NG>EUKJw7G>!g0s$9%Vs^7jxI z)SA64IC@mO^Pzd^#(Wou@;4L*sG8mD5%Z40B0lk8T+kswFwAUize1AZEOYiF- zJ}bvu_V0=;-vv=Oi6zNyb6y9th;P+HZuJEnLvBle&vPK(K_dwxO0JCUH|Z{)qyoGN z$JmX5By*_{+&QD4#>{M2;`Yq*+7yd*zbb%onn+w3G)U$$A-|%4&_P$Ze0bU*K3XhK zM70n^JwxXZ#9|=y90+32NCQM~&pcipjj5Ps%{;)zRJphG&Kg}H?Q z?84k;7Y!7p@cl8$Jw>u-R>Ye~hPlNEiH6wrfn;wO(I&~IqE|s;bZ*}2OJYod!Iln* z#t3;1@^A`yo{{eVSTr!$us!2QjPCwaxsLQ2pBessB*rutY}t@#%n(_K?N>DRhJh8s^;m;KJiVRI zlLDmEr9xzjffP}|o!*jlqxwcbTeoTz9=*H#K1_58(AcU@i=~bIikz!$fm?JPR=WaE z@5DO-Uyl}vF%>4A7A76KuT;^}^p{Js=MT$Y){ehUE$khCvA4HWshBg&XWV)S@G z)g9We0PfdZbI>0wWd5Qrn(%XPvt?I<^=#ObRztXK`_E1C+A{a)zKTGm>-uK(^cfIWXiPL-` zV?(-HMXf!U_ff?VPmrN&7Rb{9e~+ zt}uKh7R(k|tK{iw%?a3SsCXUI`54`;AYy~-w*1&zYf|TrUusaC(zy55P3RVc2y<0B za;euaIk#4K^pi$${Bt9IT>%_higznH?%}GR&N?#3;tTm8hEdtLedugvqD4#lrKS8ZD<@T$MRv4_9N%MZ7{iP2y_qP?)Rk zbow+Nx3Sg~?krD~=L?Jioa@JO+Xol6e#dZJ9u`>@JoXn;3Qf_kYoZtCJ?bz49nsGk zG>J7y#Hs3|@naQNpI^oN+8^po_p-;&nR|}?ZdJeSS!DCLL4Q0n1@R%@4dtBm5@pMI zkG^7yfHtBon^H+J_UG%qb>z(fvWSNZRY51W)RFxKy=$v0Mu%>2=mi#cqx~_d>*dM6 z!0393fYsq~kJ_Qj3%^mVA9|s&QrqGVsb7-%r^yEJ3i#z_DZsHI&>g$GJHv-@NmvF;@=33t3opJ@p`$Psy&bHYjT$$-08(uf&1H+U5|~= zlZ#Gol3IBxlNqP9uCk{!%S~O767Ri33YBq);gPfS)F5rCWwAln&Zbdwud_P2fpit? zj)AMOy7KM7%Ln9ZZ{DfuFWk}1F|#n?p1$+(pdfl-X5KPx-rQZ8(cbET-mhOx@ZEa9 z_xkVh>l|2l1>N>zg_ex6o)EMS87W>mn7(>9o){i=J|w%HM-eE=!i`}A)21=aUJ0W} znmzK@i0Ld#blE_L7!nJkSOiN=S$>--d1o?|32PR5@~;Uw*5`}%({_hS&5UP%c`B^S zi`VwU+q1U1U zS_xcAGk~26p${wYZKrCMM;ePW`Yyy@kv8rPR%YDqpD~;BE;aa{t=0U7OiO$4(hv8D z)ccnf4wts*9Eu&vUZ3&V%+9(`nzkwxUb_+E+b%t4LQCr(%fCF*oVo74H^wbbS%5yU zDvF1D6uaISS@0k8?zTGzY}fzh@?L)Z>3<;@>jZ8k`?(KuPrvKsbvlLY>33!vVdp-Q^*H7~Man$m`Cd^|puK(Rs^#vlVus`>nS;iSVIUFLGYMF>}3P-(eao)^7Ep z)xv#Lz}IKdW^FL-{eebK=V#09Ik#$0U*&U42fhw*HnhwHn+4ypb9C8-Fgq+tA-5;$ zBrwDinaK7Tq-h%Tn7=d-LWL5+Nt|7@>T8KbEjyiktu&s}=~W-Dl!a2jNi1R~5W41D zwvV}TAlfz=uHY}x^gKh*4oRdj1Wu&kx!#Wu@1wQt6iv)+m438Db{VAj;dk?RiS_Pn z`q1csNPd^7`mn)}Fe72o{6$Dzw>5!A6gfy=Ag0T}aXK%ZPxVAtiHwLKqbY;GKUs-O?FusIwBVB1}&HQp1t zO#q6J{}v$#`>O44luRu$rh2qSZB!crD*u64wLZRl`SL#us}mDx`aSiGz51m-!gEAX z&6Ec?V@04(W?!3*4_|Jp-jHWbQ_cDcL>}Bq^W`bF+-;E|f}VYE_RJoyIP*R|d6a8^ z+vIT>Qe_ChvJ(hf^+jlY#<0GnSwB!^P#opV>$4MZyHS`uP_3A}nP(H?4>1qG-wKLEz<9e4fSLZ`)79;;VB z;9#%9@)nm}e|iccvg8+AuASG`l2^Tja@KSqXP&s7K=hh#%Rb@CL1Wvbh2lrE<*oL@ zL9X^zf!&4G3gzm0$p6RM`aJ86n>JW$`{7sO8+HbPVZb{kVc^dKyCe?ep#q z+^6_m4Ts8#xsv=|ME84M>&b_@AMy|XWfTRdy>IyN-Vqy#3ha7jZp>y65X&a9m9m)f zISqS1OOl>{(g&{jZto#&f$Vw$SJ!zF@4lE%Ew4GBb$2ZrEFAnV)(jW-S%UinT zt@y%0^kVI#E!F~tw@0QfAv0`oA$}h!e;%qIj`5TA%3@PSVjXyn4Zr%BZ-G~_C z)M38tkO_n_Hw$+)-%;>EJ@NH=T11{io z!0)M(*(U&gU}bt0F!OKGikMx?oF}k z96pawHrKF&UY$($?HG>EF|lvO^Z~%{JR?Oha0b}YEt)Xi)BKhnLbzQHzw4u$%(VGo zVAS0HK*9*;Z|7X?b=S{VC%|p=u}8v)xtU79O6)5o6PSz+t{XXmBKAt12x6)0P zs&CbB;szw&pX0fd9<324Z?OeXytD{DhqjB}*-75e+zv^KZRK(XMbX3v{kl}fTFqsN zjvtZ8D>^?j_46TkJb!I-n9drNG~IfbWp%jf>9$0Uyx_~#L+x-cC0RHzDfq+dwZ%!f zCgS2DgNRF#PlFJRU4U8PKv>Z4F(%O|DmR{^-PN0BTezGw$z32=*^`5B9OJXtDqhe^ zylntX+DFx5HQibY@1-Sv{m_T2f~&uD`%!n*+vD=1PN}yi4>9B?4Xhoy(0s($B_-3Z zZ)U#9=?Y+d46h#`DAZJ=EvzvY+_7Xaub;}f7-Pv2UaZuLSo^rbUJ}Z=1Y@@(DTmG} zRPi?$O1Y$Csv=%v)YF*MiqQL?r^R!ml*Zk}6!7g*PfMg&ppUswjJaTrHRA5KvQ#rS`knb^{&rsB>C+@}?w}dH&$|)AuV~zOx&x~WYIAgc`DThuehp*Jr=+x86 z)YGce)AQ8RY}C_@)YC*MhukTLUMYvrDHcp)jVSwGX!~C9`z!G`T`@OZ!8ct|H(ft( z-oW;seNqnHQVu^`6iqplq@Ipf&dtl`6BPII|E$hFC{T;k#MnJeb-!OJ5?CsmMmkX) zCGBwzd+E~g^Vjq9SMb{`5V%y$+fvR`tej5&bEx>|(7{$MMKd0@fZ(v`SzY`fKz+2Z ztKxGT>{K($oFOlfm^bpdx_p5C9{2HO;++TWJAc%NGfm{u!MH#VR;r&b1LfPk#vQit=icw;A8(K?D6HQ>h|N33kcg;A#OrfDoP?RFd~2t zn-ug|MxoeCwa06X^xhSN!Dr1sxyX-=mn(?f!&Gz+eB2vBHEoYN5IAcWX}y z1ibAt=~~vP@*wTrVfdDeXl6+Z0z?GT<%^C1lzGv|OY9ArEi*3yGtl??qK!3VTLC|2 zx!mf_kG9gPo2qp?EOoD1_Z_Tao_OQ_+W23y>G;;h2tLsCf6pb_AS-hyn_284BH%cv ziL6Y*)ozfH$u&YsEl>5=IT(qt5&$<_JO%org`Q)scHF?>(Pvr^4&viTB8iznIwZm{ z{#3jow9ll{>h6YFa13rv^Q*HS_G&)8Hv$mt#oBW+X~6@NoIVs5j?`9;A{CRx0~P=D zI(0=U@4gXtrX72v{PM1(ciC(<75h`F-fpt+C284aG@w-U>Wb>w^bN(@q`g2)Ou%9Ym zAKf>iwUDGDC&PQOlUQ9qgkfP?gyYlp@j5hYyD!G2{uIzjm2f5eo%%TdNI+Jjr?Zgb zw(et@xuTe%eB1b2buvr8LKg8(^vnd)oRB+QQ~cM!oIXQB;tf&FJdz%=9{uqO&7%RW zRaay7JKvw~gfxRM0){*rXnoV@`F6eP zm9{vk8qspWc|ZNEafcyYAHjW(5&WyS@U+s_s!He*iAWc4bt%W{!wy*US-d0oPfu&1745v2otP^9XvgS2e4^3dG*D zmyhLN1gyCGG{g8N${&~cA@+HZ|HBBFP54^j2(e=U!<&1`VpV>rEPvuY`{)2|WLMtP zVW?S*Zpt$}*l#R&>kPvEj->por?2ocBVaKU+X=%1wcCg(-j(Yr5c*VYC7&Bi&CsQ5u<$vT2Eq+NgsE#Pa_LBc% zPz62epN9%BdWb4V12*l+IVs}BLR`gc9S zb}T(Xkx!bRqC0xqmd}|aa0SUrcR_gTty>JbsUx2;*`{91f}i6-hPFpOZ|2yRXTe)& z5KfG-;Pf*M;}z6Dg_uI@&-dGo`oq%&$qvPWE5TnA8g`Q;7c0sEE3mpMTj6b71G-1?^Pu&}AG^ zAV}OrWTXG{%WfTk*#CN2KOIK*jpQ_i;7#B13g56F)=$8H@yeFGqAKl|l|t+)@?Q+9 zpcQ@#PTB?%O5qBP<*Ru4PoR3#NrKqVKs_6HJ-3*Lk%}gqAKFeL9(e^FCe*jj@Vb8H zS|`N*8tUB6>pXAlMDpf(Rpp&6^Fr+Duky)x;``dE`iB$vv3QIW??uJcse;&yDE^P% z*G`oz{yoz38&UBtSsY@wzv_0TSIa|r-X&y%Jd27e;0dv>y=p_E7JTo01pcG^SIPVk zJMA?`a~q8b-w5CT1Z%E)2D$b^r;uE2ukks*OP_qG0sbz2O|`L1wgIte@?Q+9pc~`o zFpvrfZN?QE%hSC4U8o+lh!A@()KlU0Ech8&g_lrXHH{GakFU8c;%d1H=UqkWp85l~ zX@pqtc8C`d$U+vmwKkB3d3Zk$=fj|D9NxNzhYMjwsfn;)ktaXSlS@2#28EsBN*H=dAn#@tuJZ6U z9#c$|kH=i!Y!yoZN3@$h~gzA6k-S>df8;o&EEcMtIJlVK`i zzV&S$ewKDWy!A#N{z3Q{THhO+HX#Tf&_c4KvpgK0a1tB;)hs+=!kKKfHiHJ$P9O$?QHaTr9i-a#onjis0+Rn$6J9!Jo5tMT zXg7=>CU(Q}ABo-YVuSx6>ku@dxjz({{*8M0 zQ5*etd}4O+j=sagJFhhU&Qx{(g*tRp#f&iM2&wrp!>?_}^A+a%^(TD1lfvJk>9<}f zJO6e5FN`h1vp=QAcAbI8c6j&^T7Dbv=9Dn#uafh7CCwxUJkI}phfmr`yy88ZB*D%2 z18TU7r|(q_e@7%Ib7>>|egUR%S#5M*PexDqFXrob zqZSTr<@0$dKYs##jqtF5UnL$E@TwkS`(MDTt9Ww)K5pjW-8}s15IY~&^8Nilh@B4s zKOYRS^KmOr-xXr#<0+p0ct}4V-w(0#@s>ItZ}5MQ{s~*kYk3!TY?e#8Q(MaG1x(;= zd^E(C@~zE^8f$!ta}ZdTTlh4*!Haw;1S>{n^=et*KhbWwgLmOU)dhi=vMy}rUAUPK z>+aAOej>U6TLl!^CPzTFYc9Ai7JtKX!~Eo@V#B;;iVef6`bU$Uelf%UYJwwFwZgwQ z*$pIah<`W1TeDixKU3i8KNpj-nNP}2 z-pq$ha9coj7!TiILSC}Nc=*#MXlj!!z{6WjhU2`!!?*FUn8Z71SPuF=bIWCP$6Ny} zQaA!@PzSpX7aiRD5By~qzJvAe)~k6Cc)kG0ib4c@w%1$VF|c$){m#a7^t zJoqqFOQ!G|7JLNE$B^~AdSIkDOxE`mntCHoec}KO-pqr~{EP-~<-upc_)mE2y}ahV zzoMy+^WeVabZK|+;OpR`iOeAn{+tE(^WdLY@BrWBAwJ`8@bDBqI+oE!m3%efiS58l9L^6hKr)V)Th2rO>S{V$_EMO$7X9>gTMJovblUQ&$ z3tqcrfa32f8Tu|pzlL1~AK}5Z99P*Qhx@3ZCgXfo)gRSld|8`}0e11-3I-5wqx}wj z;%jOs#+8N`%bCA2jP_J*Bgyd21(bXws~o^phW=*OO7<8wzQ8K%6ZtmC%GN_=*+PvZ zGRpPNYnB;bq}ff-tfhh!;_p~lY%wFnGBT}s4`hN@x?xT(`oOIKAJaw zjI47aBp<8F^-fzj6QZUqAoW7l>9|f+<8eo#fgV3m>(dFOYy{$G9FICTbDF6}F>3

$=QtBGovP|B zP8CC(JKtO}?HKde$%|)vehF>sG@MP%#px62T(!-Fe!q7vnd3!M!cz_7jES;oNI4Ui z#;bGIab_?5I9pUi9{DDZn>WRTK9EyBQJbFy(7QD6UwRtvVe2Vmp%;*WMW>P6Fdeap zAewsY3F_Bt#r_hIT1EyCteUX_g&g5(&_GoZq1&;Dmy2{JMn&dW01OV zzM)4N#<@%Q23>Td>;|mbdHP^)VS`-^=L>q-Beo9I!*;OxoQDDgR50mHVtdUxhT?X zeb5j~S*!0#i0W@Mic?oi16Xpt+Mawq2HLc>8|*e&VMrV5<{dVSbrVee`4I`_Ai#(}qq?Ljz=vlaotCNVPB_Lq`UJ50%Ro`YFzRse7{=J~a;nEc24f@HA`vlVo9t7@7V}Cc*b+%s zxj{6;*o>oZFlVx^U#;N#!kH%?4l{oZ-=TCqwsiBM8OF7ynktx?51Y3n`(h798t6MzNe5}^53lin00?eEMf=DHIAH=A#Y zsneSHf=tk$%@<95^<^TNjz1CPojqA22L9XBrUfP5CH_vgg}ZFw7F&3kEqs+N+^D|u zZQ$mskR9kqKEo>kE5?k1w z-`@UoTX>!=Y~Mfj@vpaqkFkaA{j-Pd{mB^r_xFE)|M&NQf6e{%oecQF!D*mH@ZVF9 zB)=w5W5|Ezf_k;GAXiM~>*>sb)Y)e*=rk6LmI|2#_2GK4R$ox6rWT}1>CC)zrnn#z zo0lurGL>vHl_7y@uCSn5NiE0}Nse4`WWoIT3wj3oqNzi#!f^Iy!Emltb&Jnztg+~P zZg{~+Dz#u^SBKTnHZPwm);G=@Db`6IUP3SK$meXqHOqq9rgBEl*r1gE0MeP^x^2Y8 zOf6Rgk21x~IIK^yTD0hV6_fe-qk!bmnaWt1Sh748ou4X~K`pIX%UffaRIOAYnI^Ds zs#L7jD)m&2MHNb88TOUT=SwN8R!Nd>u^3*omP*O=q^yhd#KKV%S@k*6sif9my_hTJ zYPn=ScV#B6qLcZN(r~iM8z&vMU>dddb0yN#OtJtYuGZ4&OqRqG44uw5`6LLsWi9Vr zogm)?!zJsTE3s%5X<3EgYAsnKHS>rSFa_D%2+O%}xSq?`$mXL+8)=1BaTxjBRJAgd zN$iT0DspM|D)JO$n2 z3EAErX*Q_s;ae;ET&5ZE1S#bwUIAfxwdyHAA2I!(?73&**X^L zrO<%DvynBKYBf2MVbO#2REmVN_59j;EmbP;=yk=ad&1hKLx~}4aA=^nZv~6#Cnuqn z9L{G3#hGxx#Zd+q)oNMgO0K~B)i;z_kr-fsKGMOlOfLbkBVzddl~O8`u2(WkNlBb5 zLC*x);%OGUv_b|*_GYfOiAD7EZP4askaT?Qa$D5->k@rS6EdE(Rx71S`QF65r6n>f zatbSsl;ychKJ8i$iyY`(TCERPQX~ZIBduB{Rb*TfmnU=idc{3$Stg&U zW&ElZIeZ#mSscw|Dr31+W?h+VTaVbD)aAv}cs`RJ@yKAWlgv}CQp(%=%cI?@<4IaY ziC8sLtCzJ}WE>tRkF*sok{z^^UKjNW1qXPDp2?2RdFHe=M@CR2SGl7dd%Q~n_AL5z zX2{_5nPf4xmChB@8rV~7bbdWk;fEvvw^px9PS?GbtBBLKwm;E_;OvS#!7B1>X6E%S zbBP@3TOt$sSFh=t*Gmx4nmnvadUdF>f@Yt$bhJeJi>t%+K&GYZ=B?}3VwSB_4XHyb zqR7~ibY>k9L+l>HQOn>S&S?|F66Ot+mShHDkIm~Pm%lb`urkG3Pf8W*uaE^QrtG!P z>q!@KH3Gm;9ZQq-YKG*f;Pn-eeECo$n_LtzL~e$vx?X6Um<1HICRa_NpuJ;#rJ76M zRJY{Z_4H-yMf-H(y)$n-R~w~mpo)h2R_BV@Ql)_Q9Eq!|Ysq;8P;qDCKn4(Mk1T@% z6ljAHr?@~44Oy;U@eESCz@B57e?hTxZRr}E@X67WPScI%-9?tqWj0)L(FsZB9ofh% zC#%&`Dwkxpk9#in&J#Elp#LOSuptD<$or?~M0?J0JXO*_W-M2AOIYi&cin3z;Kw6A zW!ukW&u7L+uZJqR5rVjQLX9c{8>@4k_clR0@>Ne*p%rvFuPU8)$ByzLL}^(rIZ`Cg zyw!t$T3ylcx>E`>It0RyamrtA)ops*sq4 z2hO2kwG?XFt_8K=RWzsmXIJH8mlbJlo?C@vYoTS-64>4f*dUw?wBF=7HdMNhyazpj zD6ZE7h`MLNK(s;UT$=KMQ1)!@5GqiU`fN0UC@Lqy5(dd($!Bb+zstR@?eLmy-h0+8 z?@NlUWf+Hr1m!P$k7+&{nq-*fgbAR6t^s6>$&F`y` zMdKSLgu`FmGCy+aH$p3q8yWpbthe!XKR7^Ve`kRsIB>S1u4!*AU^S=A; zr~N!g`WaaricNbnTqK=6{!uz4_&GrSxtMfp+kK&PrbkXCgQ$NbwBR`S_xe!Rap6S~ zk~eZa{oluKk6iRRnVEH>SHHdk`g9;N`!}e*1ERh*XMHmwyJ>$TyPk`j5*dxmf0HCE zh_upP-hUtY-5psFnm;YndED52yKWC%Ih~|lQis&r$+V8`dNcAvQi!Y=8Sbgm$cWYF zbn^Q;4U#zzz4tis`OR&+571!b_b@%v4;~=RN2a~`4q2X4BBwsK>-N`oAADywnb6&l z-QOksI!NZ34D^QEp_gQ!$I$^Eyg&5bX_4C_cSL>^YCrbZFbS_m=KPwDD4qI`iGfbX0}Ov`OXSPp|1o|QzHUq81LT8j;wirhtv;4* z1?_*AkR$RAS>8FMfAsUz*AL!Ke%Uwtl0wrXyJ>hDe17hBvTvpz{5=eaR0luwbNUZ= zM^@c_;Nb5g2P2Eff!ZCplx%jghqV7keq>*pUvGo$CD#U;`1`-7Y1s)!O$tA@@n!;+ zo|qgu(_Hw02mrMS7^r<|qIrGjJ&x!XCYis7!x9QPlCBGxkA;qMMDGZjyMGzk>XP#H z$)v8;k!_L1^T?uw!heN6JOoK2q4yr|Qrm5l%<6ovQ* zj{i8xpA8@Os|a1}kxv}_PUMywei^wS62J79ku+WN$ZYyg_~;M7zrTc^$lt;*y{fLK z;dAKkIQ-rRKlDB$+rAjN?jvL0iHws~ij0Ie5$Aw~!`~;);1H%NMnFy@S#7P_2JZTlY zI7w`jBecU6G9x!eo+F@bvSSk+44dzSj(5!Kb#h*{8Tx@?UdJX*t7I?TiL)GY{d+hw z&UL)&x%w7-dny0kG6C=os~ zvap|Q;*g`pYfaM75sosnAvSJpX1^PTk$iw`fm7HP&^qwr!_3_-%W)T3)X~sc(_arA z<|uMYgtSkir)tq*F@CM4&xTy1|DCK-j~t(t^s5k^`pAZQR4t3V73vwQf57TnJG8R5Z-v2{ zidh#>CN1UN_2yYSOWP6yt4Q@mB~$HBR%%ARR2-R2e}K0L+>gQjrIsJz$*PutI}+82 zl2#=H6g{I{s^)<6VO4V@MQ?4KC>C(iz9WB;@RFSb^y=lQmZBF1#@c%m~!Hc7IQN%XH8ABFPk{Lu9C#wBOXJ*j%BU7jxm-M$L`s z0EhLW!CL!xs#GVR7r;arIS@8TRw~I&?z^Ugv9)2-7}e2Au6VgsD_PlG%_tW0Ix?b7Tg=^LhB#aWRBbhfq>ZeRjJlys+0Iwzn^Fkz~ z?T8va=Q~PjER|VB7hg)jTHAPv^eF&rh+A!)Fj=b{OWU5Uki2AV$%$h7w<5rDI+Myl z@5?2)--2-WZFrMwgKfjf)a49}E2^(G9&2qaRGZ%e%cF8X`wYLG@9uWEfW|VFD#Ezr zg?!FAj`dnd&(3TQ{OYXt&8CPL8=n^z#xn)M)@D<8k+E zuZ>)qX}I(X0{{jss{k8bU#2*$5`e;Gi6!e+c*yC{Ue_cX^DV#6S-fFDA`xq~2CZ_XR8Ee-+>lAGjwj1xN5Zhy4z62rfz{Kufp!R_Gps_U0FrD~ zM@-FSySl~I{Rbyc5xXzMX%2MWq6Ub0>d457z9j@jx0u{VK=h+#)QjY@OlgQc%56yo zrfn}p<3=%A$aru>t(sSb0))zI2V{!LLHK z4JwwZ_{%&K70LZZk@mZ;e5o%9+e>OC$*7>Y}j5%L<3j6 zusxN}Bso^Cx)B4b#G16VmCcvvmg-FdQg6XY$!uiv5N%E1aoakC2?}^dFp_3}fuj3L zLcgBDlT-HyM95fWvsA=HI& z{0Llij*v&m`P4K)qH!(Q!CubfSSxWD3t(Q2lD>+`8b5fLG((>~@fgWh$z(GXkkvHU z?PcZZ%;u{U9vazdCUbdE@(EcUeuU%gFy&VgkkRa_cahn@gkuu~%f=u~Zm z2C~N(Oj^|~(t!$k;Ih4IsVb0F&eyAfum_+bcUZ}Ey3*AQp;b~A{4Q}@OU_x~NP*EL z0o(bivA+-8Z(E8I+uk72)~Yd{suoFQUIJEvVq(**ATi~9p=c1eIMTPoPbS|N+&Z4~ zHq?fqs<9{|5~oY`;e5smGTKn6W|24kmUcsx)cxoxFYmy395vA0nJJFtDy5>XLn6?6 zstrP~=v)@C{i=I35JC#c%QNg^&1K2KWAMhgYZf^OEDCr9Mc(wa@||~lk=Zs`J3MqX z4Zvo3Ha5KgJ8tFrU<&^FAM7(|-zcJ99SI6hyCq80-3Zfn0efz^sfLh7ja;JYF*H{i za2)8rW1L6Un{F^^SbQFV4|g%l=E<*h4|V{jtoDx=#*Hjx0X0F)_vMSeOG-wkosvQE zSKi$**4HY1!EyyT8%eG)gvo6rXck=U1eqi#WS1A8*Pk`uxzz%}Cj3elmk}0k_SrN9 z85t&L#`|?>(Rq&s0xpJ~J8tL0N+?FKx$#uKG-71gZA8^q=^GoR_9xAjE?`^C_>14K>H;QfvDy8&bjh&;Y3>5AJ0}fq*y5u<&PQxsHBJ0c<1! zfM9id98p>v=nKyj3wAOv@7$Hjt5G)sP(f7}+PV*Mdl1N#H-<~4yqjzR0U8x@C)J06 zR$~Bn%V2B|3tqeinQcDJ89$DURrANZIP`a=dpa&QJM)lE8QExAIPqL?gY%yK&Yl~WxjyHs8KF?Jh3VCDi6aYnCZ)=RO+xY+<>acitHbkkr)1Zq--+J800Jp=i5H587 z7RU5k_}0hbSk0(WNN!x{5cgOFdjy0Gs-yH2!k$~!hEJUzf*`0`QeOz+{v5BE+`BW z@R%LXr88iDBCF&+6b26oIrz!ju1$mw7-ji7L6qI? ztxH(_Wb>2b?Kt|)V_kz$BU{O2EM}a67v&u7lwj3QK%9VJ$vSkLE~s7AR|wt$#or@~SilIN^+ zx$t|n%eXpTO(lz2{=TJGdWs2>s5ccQn)*+z2L|R(Ezmg-HYCtZ{t}j}RIinhxS89_ zDjJPD_+O|O?wnWx3`R(pWE?B;jFfL|70A$R#wLu~Xs#+`-!MX;@$u@6W}|C!($CjKIee z{rQ4XDHQ}ROo~bv9q(wsm!&&1(cdK?1%KdKj2>+18tiNu@3}B4z$UUqrAxVT z#RY+B1UzhQ;;?l)A2xO=H(`%D5 z4)Dl}(q|L7WX4lu=!M~`0lF$Rs3JIfMBLk8P>%M4FuwWb4LQQ>P>&Hb#x?wATUX)`CpeEacvi>3JQK=68^Mx`#*zp^Ct|q1KEpI zjcj{n;t!BEw}apOVJI?T$7rl8kc5i5982Y@r@UhW9W%t36)?OZxfx_y;Rel;Cl-}I zbR`3)uuLoG7BSq@pB@J?7^LW>x*fD;9)b&`_GSDuOE zT4R(|LoU)R*?NZ6QyFO}T<3f#0q;egom|?=k{5{fxG*xYKES1QvNM+tcA-2A$>G_H zba3bk4UyK&vP?Avlxe^T$UHHwg{!&+SWZ=1a}5QB>IUESB~FJ5%H8T`w++8(DB!U` zU9RdL?fxzm2U0#^DyzNfus)9Ec#*QsCPEyL*MP_y90f9qVKN8;vqnH zX}1PR{CE=VeqT{1S13~EO7i*h2HBLE#V4F9#)3!3T5^O@<^l;OFcM;681Qs>xDc3B zVT;8LWpgcTgnS3rBC`>B^XVK`hj#Lp+%}S)OYT~1iJ5IugB7Nv1#+)%0tsI`+uBo- z$W?fM-0xV-nN$wbmZwp7j(o$9Bq zs5q4la!cssn#7R2#;Rn1&`mWyI@+2aMDv72frGE*vNgyMM7fmDr8dFal1y?w7pt7WFVPPbTX@|JYfuR#W# z4h0=ks;hwotEr9)aM$Z)*6XGf(ZnOqLkh}U)5U8^-PK|mSM4X;-W1AL5Vs1LT~Y6P zFnW}%SxC_68jTy;NUMNi;>dN7AD!Ko2p{uHjQb_F`6agdY6<%#c6wdU1$H(2k>q%BN7R}{rsCB1fOl^+isuf?Y9lQVPv+q=%ST*R3G5Bl;^fllEszsEM3qWoO5IG@ z@HccVezZ>;iwSzN@v>YRg~1jkla9FOtzN42?1I(!=3pzpPOxQk8o?N?8*cX{rEe_? z3OC7>B}m}$LwYqdh2d(i1`D~-@_UrE`kHL@QG4@T3&bCWLRaMyA-jL?xO!0HP4}zr}qjrIjBPfvf5p)uE@B zTMaV3b!I784fWJFJ+mRBNC33gb*s4hLbPE^DQ*m$0 zQ>}@FCZH$48RV%KfIvlX1hOyE!1gxE_39{-$8(`z+APeItsQIakG2LvW(+15%Mj*h zYw+r0!L!CGZdPY1cjxvEfTsjC017tudhKWlFN*oswbqdPZ ztjjQ|p`L-|y{lJSgR6S``xDDBfMMr{EL}B8ny1K}Cyy_X9UM&&pn(j!U_!^+gVZcF zt{Vu^W@5FCxwKKtY^)71#B3ll=K8L1qRLppq@lJirJ%zVlPPL+C^sxLs>F>rrwJjA z3`lF%vKbKC2PFBr>VCYS@tQ*vbvX}DZ(pUoaNUdaP@2qAP zyIbNvToS~qtwJG@^S}EvLmGa9#kEGvQuQM6x4#|r>un$#qU}~ZN*<~3^7T8M6iue2 zrFxbDN;MO9X(?THLRbej@*KetDtuf`$CVpnH8lGr)Os2a#$5P1!Y-;1Q;{Zfn3$22 zUkXBNlp5SF*quTrpqX;1>PsJDBoGf#BP7h|z;T5Rh=$`fFi{!<1q?sNuEVsRkFgtH zeH#4qpr8^7Wb2abr!NZ5{Y63=OlR4}8o4rf{GlMibDmhCy#%!cx4cvtPgc^>KsPxR z?acxnX$`j7+o==r7Lw&M+)o8Y>S}BJy6&Y`*4UwD43any#Ri55 z;&l3mxd3Myo|m#DmKdX!`mr)Jz-*G8vckn8IPZgKLy-}0A!(-2PX*N|PaLRhFt53^ zuvwvQrCk!ZbOMkf zI0TbAv8-GPcAFtI?*j1-)wsIa1DWk2BS8!v;AjjW9e ztvQFlP6e2md?}LHH2CTg>cW^WD$O1S;R{JEN{8WE(m|A^BpRM$6ar065fX&nUki^@4dFwG6t1h7%b3{?XOpLrTnc6-MKx5URDa)w$J%B=*^ zGE%z*BCU-nns}k$O7>R5bH4wj{Tdzcx{J$ej%_@wonKKcRccz`GFC$lo`c@pb|Y!o^OqmoTV$ zceqWk_EgIIzU8CHtV^Qc!0Z~DQIcxH4fSS$%^?lQfT&rL5lKnR{ZS!qld;pxlIIJ@`UYg?mH2ghjb;%6~ZnVfnK1Ob@af0sos>bL- zKxM2JZq%-1iu88;+t6)m+o-y2!0mP#NpR&xwK>%XS_+Ktf&jr^!$_|;2S#U{2&Q>21q`W7Z`z=QX+>Nu*D79{+r`>` zG%oGO6n^`UOsl8_i7-)UL8voM z%k`KU?Mq1A81oX=z^3#xePi+ZL$>1V5|Wy9rAvZS8iLsr4Q%*UeM*|W-BnxTbA~5r zSg3Gw8>ZyZ<1YAsr3C#5*-6ASwb4a^4nxN%Emtn|qzL*M1{4ybflYR0TupZQB8pz5 z4ZD#!Cxuq@TyqZNHDdwB+b!Bch7z2*#uld-xf|w)8q#eRS?4@-_6%;G>CAU$B{vFI za+wIRFpNfP#dRtmx1PeOK0L zb>};N4=_PoDc3>k!1elZqtP-dl8`uVN_*8;qr(1hz!xk){4%om?WLfj9Rg{??SliB_<^u!uo3%+oVGI7WbL6 zhT5XcWRWuzWmp3407}(q(he&y0i2|RAi_^}lZQTLL9j*^HH3qOL7l2yn4;cLh)DI*rSPEqI5huU{P=|Y=eCx^Ujg~V2Nk*sq~3Jxv>ymRt58(0mD3af$gh*0yE z9=A7sPf0{Ur!N5cbYr%HO@??Kl4v}xZCtN68Agn$)iCf^VvH1rEks%hs1X%hde@z* zp@^J8DrpOxvpsOmPANhIL_>f6P|aXce+?a<2V!YDB$8d zSuRssFVwDe8k4PThmKLHqN2IH9o{*7i{mZhw!K`0Kspr1iR)z=DP$d4n-%|;fI=yS zUsC9Tn;HZ{wwu#bPjP!;&H5ig#$^K9(-HQm^1_gV*E||J80fZESlMz3yA<`c6V916 zos|7jDC@AfkaGpaiM~P04QvmA_dkMc+vGc84|Q3CODt{?tD}LjU?)C{B+;OoLLZhM zTaC!?q59@w+ss9?B#=&`r^zyQHk%?%27C9}*ddKyq zU20b_eMW?>`a_so>TtZqq)*csI|(betFJ&*cuH*WWy0As+;#4dfay_Wnu;pA!+(Rd zSO=#YCMo=p=L8;s0op$f$7qj<&t$km{>bx4bUBJClvOQBa&#Na6t{lVJ@K- zAU2mG!DJ;hdhW)qj(Htzv*(S>o|o^$7iqS~1_l-e%01X*O4>2ARmXC7j-SNCY_e7rsD5nKB$tjRK85 zmdOh%)adE&$rs?Fno&dPz&DLH(Ua{Z;$iR?tbwft3p0g{Z_O^{SJ^3F(yU|wdM$fn z?uxzHDR-X>UelcYZESgafs_2z2!&Jc5b(;$1+cj-LGQcFmr94tmxCt{rs=|8k1q68 zw|f-xEw}_2CCB&^ww&e;8s~SpIDjp3g`(}GUGWhYebA`CK4<``@OG;`u)SvKE0&w+ zQz}(_BTLOHJHK6bPpk>(2Xa-_)=lxZGC|b5pM?%GYLHB>?>GnZ-k+umJD0xOz(tQ$ zrN4)u>T7eS0?#L3{$(agjaW;(q%;f;w)~!24&$!A=%1fbK2V;>*oNJYhprE5XYz1= zK*BbX-S7iHe2kZnHL|%(K5dByv72(bCWF$nKt2{9(0sMo{kbtYXdmS+-F;Oyo3B?# z-S7OtK6f=dK*z{oi-XE2>yjTz#{pA-bwTkOwL1&A zi`*B~yLV85p_r8EZ#Q}dm#?vw4DPvv+(|s0H<9T`syBs3+6z{~md$9@W8&e)s(j88t zC=1S$9pQAd0YqPotPw#ehOP|mvx zlndEXpMXx5)x8xAWy^3PqfY#Ru)@ztc zKx(TymoaQIJ<^1aGyxOPU?**!17Sv;@{pVq-eUYvwnnaw>+}}n=nYu;H^zkXLkr|Z zD8fmuJV90^6WS#VoU{SOfm62pB+=Z23SF3kO3vz#){TG+W?Ym}cnwbdbqa#|+Mz*x zRpex=;p3x|2If2r#xTh!Uz?Nq z$%hvT0PU#!ipj6I&8lI|7OuZLX}DOYT^A8kqsEMDV4HE_@f09z>C8q9f&Jt~1ZBd< zafBQGOA@U0YgS(Xb490etm>}Ws=dt|VmN-}a)-?+Zxf|*?qc2gE0aFvNR?Kd_8MDy z%=l62U8x5`NS4la&tRXmc5vO23#=u*L)1U5L4BtXz)&heFRfCAo3d-HYwB2ECYmnR zm);xxH?Zc9KA2{&ruS$wwyQt*{t7}6iq7LJB*&$I;)X-ASy*M18cb-F;z-Ti^w*ffRkx z*~$2ZazREA_mPXX0F3fgYEYahU4y{k+oei9dFKsoh{VW_Fe@+`Fw%S}Nmx`Xl-c`O z+UeJ2`n)`I=|o}f3>7R=QK`|YQO91Qk#A;iR6vpE_3J}4J=C|Fz=TpNmt;F$^9g1X z4-NV{&L@zN5TdrpQTu5(0x`N;1Su4|nZ7D>5Xgzg!}V-T$FZBmV3LDO&>#S4t83;s z>n?O_|7+jwwbKtdv|-;2zVT~VOkkGU6dq6IiuR|xtNIXUA)q56Dw6Cvs4i@9;&!n)QULKQsydNXpU0o!r;| zRFf@KzV7tXB=#4+6}L82B+i8>xv7S?Dx6$T*ZDahvEe)M%+2M|*O=UwKRF}bKNwm2 zl6qM(P(f~5-=OGhU}-F4+Us504Mh@aO7QDi>*{P2?(1e>$6c( zfo!;hYY!8*MtI6Ht+-$HtlC)_5o>cVr!;odYrWNFF+XvcH}al#49>6ilxjyQdz%Q$ z{ORlXr6)7GK2~2{J|x9zJj!gI3J?A;X>h&qeN3=NjQBe*5j*KSaxtanjafKfZ>YH4 z=ePECPrKu6a6L$Np~Kj^A^P4Y%*)6iEX3fC!KeAtA3heITMK3Nc=n_Bg}AhoQoo1# zL;jyXT8*;yPd|`howyy_m<7{oD_VAOdm9>M>Vg!IX$h(2C@VMeXu<={-S*SO&Nio& z%f>{F2D&u>ao5g6h4gRcS*CNy-*xgFTMxzA>f-!2*?Q0ZdDI;(we~>Inp*^g#5^enCXcJ{^n z>-K*}<`XYG6n|!Cex-r4b*+AVU0lBt6)qVm`hj=5_w=b!$Mh`c?&QN9CPkn$%9PHFC!$!t-nC%0LnetAzVD)(^eoceP*x}2?jyotA+FTpaH)kxDE~aozt0TMjNZ2U3 zWZ>_M6B$YpxX1f^)vp|@*vdu`S8QABoGN5~>BSA)3o#4}ip;j06%+EAE$maTHI5`X`Pos2!7+tMvN0F=jkm=wEvzOt2>nNc};~Z3=OZXF1ZV6Z-W93PdM_ zJpRZT;A`P~sY{vkLLszcAUb#7Fzw;`mFSjgCw1rD2FERg%JWMSY@Q>`xzBL9efg(S z7q0q$i~h%0-Vh1SQ!L|{O$&~$9DNX((faqRfi?ea#Ak`j3ch3((%zOZOJ}a;_uk)Z znLh)REg~yNt-yq&Ox7+vz)4rlY=KHC(c+Et_xvBjg*D-!lu}(%Dc*R)u|iE=K2G?P zX~Jo-JF?LsFMKj@<&bX&vq$URr35$`R8b~;Cf}repEr>FH=j8DO|?WyprKr;Z~1+7 z&U7&cr-QV&(Y42Nt0Jc!{Y>ERvGETL1lVt#j1`xfD@<>E;S!%5jqOif;2bU2y%D-l zbj`=rz%;TvDOhaec_zqWYVhx&(%W8~C}3|_`mWl{#?vU^n0xqx#M%Upmhk54J9VpR zKP4^;hkJTc@0JZ`iXD|SN`ih&O9XsyV7)dd=t@2!Mh7Dwg%%gtt0wjY`sxD~3<_1B zO}1&kc~8srisadg-K?DSsp~gX9Q~nrPdNS*>*lA^=afk+_MK>b<%_saQiMW)lylrq z>B*XhTB+A-L-=CePxcCAr_}RLo~y5EH_9;;W<9aod(z8GZfbBY2$Im4oPhgC(Ysl9 z%XCj?9eJd)9;?<)1KuyG8&M1x=P)X%$ynq3mnD9E`AO01nLihdI(N5=+)s0vVR$I+ z83&$j0#V?=&x*pW?M@P}yZ#!%j^!&>EpnDrvin5peO!towb_)~Dgql{E7`I_6@E#d z;)`r&n8=9$X6hcD_H5|8!>f7q`wHWN(PZgI#~)r#S^~D+s{W~VIQvUD5YrEVnoS>oOd9TtGUhk&w zUPZDAV{N6GngrWx>HzS=#k?h&pSQ+zu6%f8e27_4tj zGzjwu<~5Lb6=?LpzvMb4?N0*RrRQJUB_7tU?g?sioiZ`4J=Nc3%Ttu>5V0Y<2~~$& zWqtSRg=BAkq^`;*KT!7Ptm{ACUovO&GHE%vXyUiOU~yzE`d)#j(IX4txKA;3|NB|; zhJIw--p#3H5!8$cAhI0xvoGEA*kTz55f2_e* zGvw+4kuEHg0TQh`+~ms9CnmGNcukD(sqfbm)l z-*dHp4dtJPG*es5VVoE0?os~I*!`SVc!Gy@ogcgyi|udRa}~lU-(1M? z3Jc}CG_m6loZn|JIk6aEcS{f-KP{jDPv3I9|>6l|bx&Jv|Zlyi{YPiMSkW zed=!gyH^qicj}hIFaBVc(?3=EYVvzUs<=e4t<79va4}a$T-hy)58P$Tnov)}v^lSr zlhay5X`FHIecoH5ei=>}|Jb?(qI{OA=9Dlgk+-{gnnQPdeaPcEo1vzx=mQU#685km z8`o`Xt(S;o@gJ{;e)6CDFymGm>R0?;r{n`Wv5}D&XLzpj1oPNT9sDHs4{YM~D?#q( zTPiLoZkSla31Bi41#b{9J*aLm)<4NnJNxl5XRznp=CsaluhrAIEp|vjS6E|zM4uIi z$KMhD+cVDocK*$ispLB!ou;3heKDRHJ+8j{P*Y1h`_W^$+Tq)k#eqrz7CFS#NcC@~ z(xuXh*PK58LVx&or&q$&lYRc=4ewLA(d|mi{ z(9^Ph?_b&oLDQZh=bzVIQ2_=&IgK2J2NbTg-N5raaphvg^)7z7d7;bfR{hyu6C$-q zvDDvNzs}pR{-vC#<5myL_?kfoiYa<9bi4T6Rh1h#WcjqB#z|qz9mw2hv(7hVG1ezF ziFW3Msh+W@#o4>TM2Nsu*`&sB!JU`1P@Y4M9#>w06Qgf$xpd!Y6LyP1WeXKwdmXFn z2nD!$j7`dA7>;E$Wu6qjp4Qkie%2pSZ^HR6=xjpaEzxH&t!=+G3a>ppadL6x&!vr0 zT*qF~tl5`TyK~cb@^Edi(LHL@&BphAsA=tws+owVG%IY$ikikZgyOK~ujVH~xRb>; z?{2JYT5GXb%i(NA+VWQ7#}fi6XIpTe+^-G_h#l8RDB{cq_5#nNDX$M7N5@9-or|&> zdOm+83Z||xxYAm#x?r86W{}^|w1(%5RSO;v9B3=@d0R8yJL9UE*x|-=OO{hguc4Jva9mFniQB_s?_(p^?o@cphS}R&m*KfRhySA#0 zbVl;Q5d5CZ1>rYl0l&U{HeosGbwTrK?~lu6o0u+l?Po;I z;Uj#)wU^k_{7lTawG@$Kr|y3@*%0@1y?P>9=?w9vjqYCi{cXN|t_l%OzOY{!ZqZz< z+Q~6_;?%!_{9Iboj}1lKKnG!$qwcJ{+VjgWu=01h(yJtVQbC6fCE}MhbHqvnWfFx> z&0?9$rLab4?=`Q#ym4%7Y(JGiychKT%lfl_a`2dYamz-_@HYpc>oSQqn?%E8PrvoC z3}u<0FP$KGV1)|X@7^*jOng<=anY<=Q8a^%R37DT;`TT5lO`XUmCqz0pkvnWxR%qMXs4qL9wGGN#9INmt-R>VE z{W9|{v(&p`krxqQ8(@^bRlp7Dar&Odd+S2^lZXPuK$5tt&^s-p^C#bDxYv91muX+r zqULTrnLZ(kx96z@*`8=_>Pt_<-v5H&c|Wh^x8k8IP~)m*e5tS)Z{1XGR?-*#ueVxm z6Cw3iI(Fzhze|99WmC+eU^UNe9bspk`u2i{^@<5asmH~?qe=n_1@_$QvU*7@iSJ@0 z@(lZCz^%Q|LjQ=L=5OPN6sf8%u3?%D47!(tQTyw6MibxF$E?|0Ho z0KSRn8d@R{_vwD?F{ZnDD)5D?x#eeUhUGTnUV7=Zkd}kVk}{w8eK)lmY0+=4Mex7u zc<*~cr)FQ^7QZw{~UG!(UzGzWH2gg*fH*#7>m4^JJ^V_m*hx2e4^9-*aiw^{#!i1Vh`~YW257 z%I^1mtqR zHp=v;e6D&6%5(kJv%ej1)l^-d#Tr|P&R6s}J(d)?C!%tf^yre6KC!4Bmdbmh^b6VI z=AR~+n@JC;cW+PkxHP;u^pF!T6fryTP1EImiwYg<^CwgAaFRkWQVPT{7zk3CqCPpsaSh%Iw{B5fTlENlx#RKg&v4_KEf#&9FJ8dlOsy^y9 z{hu12aMDHs;(>Pw0A4*O(P1FvQ2S6dpIdX)jb=el^i#Rb};%Ip4Ye!}+P z-7AhClC%fL?@gXodWbh((Tpi+!3aD4TuN@24vazKPu;hgga(+GUJjRIWLGX*2rpj# z_3dLkHrQT`VwNm?Yb`9na#aZUor{sjgeAre4gw z=ZC*rPVTw>k@bz)8&gGJT~6-5y8^Cwlzg^LsY%nPgj@cKvrSpC-IX-Q0L*<;$;Y^d z8IlKG8=b1%xxX5hYLbYg8~gR`oy*RDa&Oj)GKEqhznuY?z^$XP>D&_XdDM zwzY$yIkC~~cPLhKRPD}Oi#zGR%O%ykG1e84tbbK7Z1q4|w+PI-QeP*H~7dZzgml@r&C z#wOCEVtbYCJ(H7GIE^fMKdG&EJlrNpxjacF_WYU_F<7_unRw+XV-pp7@y!J(&CH1& zhiE|u$%68WmrHt*snhT8Z`hZIaV+hCbzf}>ik7nGKAeBT%gV+nXrhy86sq_@s=8#t zuQ^tAN?p%bCxrW4i?-X@xDw}xj#EPKORFyWJt8@uIwW@g+oM8TbtTdi{Lj`d8= zY4y7sRpD^}Pv^f};kI4Nma#8m2mb}GO$BcOFJ7HA43E7NdDm2PzO+xcWcAj_jMv}u z5f&%63sF2IwmXdgwo@(@%0J^X;wR>xc~$@HoE3}o1h-iCp4IQwGXsom5FE2p1BFW6 zdUCOfXwdt$K+%(~YL*L@i_Q~I@1b{TFR!_HDwxMo2EyX9GMua7LHNY>xZ5XGQ2n=J zJ`}w1YBdu1aQzm&|Ke#uO&m|+Xqvi7<|; za%-|}w)T9cXsb!=sOt^Oh-odnf2eG9QS{u3vZUG4?yvhm=l(1eH(vd8Kf&m@2Ein< zkPAoHAoab$ISZZcyh~~)+IZ+P(bAUft1-zvn7D$D)+~rDoqN;WQSjrq+*5x0dmFh= z?NK8dh8J4lY;M7m;Gw(NYsb<_pKm5z6AKxSk+i#DoaQd*``yv7DeLOpwdkcQvRTQg zq0Ixy4Wn31k&L0$2Y(H71+ws8E-L9K<-fRo-`U1XT<5j*yL653cSyL(LC@?ZFgN!^ zx7IZyv5Mz~X-mcR6s#(8BaBV_$soJf)>zD7+|C)I{13gRsgEjl=YuSxb1)oY38cxS z)ces_BPL$H3ty@jU$2<^r6E^vLZwI|ksfBpKKWIIwOX}O+aTfmShw-$1$I7u)xr(c zVqJL{iR4NjMsr?G)oDa?g7TiVX6E7L zp6mEfp@2(f>-M1^6>#2x<4uyi?r79R2RDtN@pH75~_W1>fNL7 zJLp)iAWZp`b__{8|4Dzf&ucH#z+;A|PDTdyM7zi}bO7(3EG_x9&Ly$BFjcqRoB88< z1geYb0Wk3G+NjT5u~}!9f>3%ySPV&9dNSkwbB~u)8gb`}IZA_%+*%`6*Xs0Po0dR& z=!UO0u2t)sZZwrfoH zQa!A^!b%zH0;o`0;%+;H9RrZ zC7?$mPFORx3VlYk<5^_b)Fmo@cZikISh=-htQC=A##m!z)WXt=>lb&vn<0~n!`F)l zlpR(}D<|33#8lryqb!7=CA4ayDY=-DQ33xeTAIA8hd1+1$?DUd>KVWO6uWb~y7D0qP)9@g+M0ddG^n zDTn*U`9O|hXz54@WvALd%&v&>vN$}i7-X>xEf7+u-chu~7i?MWZ8GFDj!EunRv_VG z<$ZusWh9-9rKG22ac)ReU#fv+&9yGlO8B1B)@IW=I$$5db zVfoS&Z-Gty6G3`|qmzq)TvcK>Kkb9?0X&1%4z<^aR~ezX)8`_7yU;0_%PZo!GEH|j zs#D235S55`cL;-{sU0iF<%lXQHp*X|u_szz^VL89`Ma;fivrkAIYbGVb{(8+%5eM~ zOWZU%Z0Qu>ch`A&*cio_9$Yl0npMoc1S7M;JFCd?o4fJQB>`-g9HIgY$AW2*U|JfO zrjttL)?d(sbwbw!kO^QKhyH>}Dzy*{?~?;A3V;>_K>q|7=ToT|Fnn09bxi=e6<-zB zIjO(U&5RY=`5(pKa&(DQ>T~^tDoQ+dPL5t6vn9)fhUMssGF#}Kct$3eR;<6^yBAMj z(h^Ul;zK);Ogy_(DwYz@hz8R{^%t;f0@wjLx@9VLU1p2P1UoH9FJnRhohM(i!sbT0 zaHqC?h+EHOkhykvO}&3uyc|78W=mIZL6#hk9Fn8Eq*B4mm)&^6QvCF7q=ME0))1+n zvjF{wwaI-mnzYLa-tm$^7Rn*6C4=S!poLpZl&Vi#Duaj-s*Us(eu&zbLM4n)LsO_F zJKhojogL7(_&Bw>op}DxPL%#a9tHpZOChw=YA-&d`wy^X-q~EPn;cT9oAlp> z{wIKBCYQ0euG&_oxW`Ck8Oa-&o#h=dF-=swJTfbPL0<4wv|#jwbMncGCY)THg4U-l z6h&S*|3UHcDP+Doh(MZ)2*+>b2ILXYt2){45S{@1#?KAQbuVj_LICUqs@M-^hAMtR zC9GDEkX7~h#r`k{RB-_F9ZM3I${!}algj^1d?=MaPW&xJ-(MZ0V4=nNq(GP|iWCf! zL6L%BKoltib`r%n1}=u4M~Mc*1W=+u4XZ%A8KS%tWQ15G1(_l~m4ZwVm!u$bL}4k& zFwyFGfU7HBjD>SobDhun`t43e)!FrUTtHy|=JBtN**B07>P3`Q2sQk0b}lUQ;#k3A zz8w7t3as}67wUvk@TX>28Reqyf+j254%21+ksM4@g9|C2J4pIO=}o1uKW~QR6cInk zTN&CkQ)m>vMU4hW%I?Cc>ErdRQQ7=k{y$j{+cP}$qXldGWu6~cH+)Z18Vjf$L%nW znU3Y1&;LCag~z9#GnwpvrKDYfyky4s{udj&5DVD9oxWwbcq>>Y4jeX#Jum{(ESPBa z-*mT&U_^Yt3{~L2HwBv&DiQBk&16~spyi+N%Ev8vrEFs+ChA*yE9L)B5!);=CWp5EjMDgcy;e(tIWzrf3be|sF(jCev_Edb)jxc2#bSm03VZF z^5p1zC|OgnR?H`bM6$p=pQSfi%y@be0g73QaQ%|AOs=xe&+jJh3{g{e&nzo&K~+IU zVIEG3rSk8!X#P*lqy!XhK%S^z1epQ>zOU{SG36C~c%YiFGXzVo{fS8Z@3{nWe9hF9 z=j zo|$&YPR11y@eI;`+PgO)bo4_2FEa&f$g1rD|0i4j2D(fx0+Q)?e4xZk zj01iZ8~PdyV}1xLtd-NhQTddFH7o?sb5dXZ7b_1h%w#?JU6;AhcM4^m>?I)M_TbZ3 zIr=DHs?$$MmB;TnXPuhWt6$8=9D`Y=LZN?3>_1!NsJ2{~Xa~1~@3q_>|7-=OV>K-D zE37Mga@g_X9!}Me7&q_I@zQ%08;eNmPaZk(-T{YTOovAqsbwkBJG^c`_%AtF>A6jz zdA5gle&yr`&o^P-7wq2EmQ-W|YCX&DHqW(m_*&bJh_EaGO0xsugO_O`RQmbgS|s&| zu{Qb1I*F=#RLuDC>G<_W`|B4-TWUbZ$-fCy#UWvKaW)a+LSi-$uTo{9a z_ZFUd)62iF*shLy2n~cM={kT_j5fp$#77v@sXTgvL8yF|f?b&*&u0UhwQx&FV~rMR%QZ69efq`Ni8uu2t}0 zKRdrb1OfzF354H2sIPiuj#6VVbDCRxFwEXX_q zF64*N^U)g82h~*Hs$|_A$sra|%N3-ODE;53=6-@tv$1r&GhxzEZcq9&R?@FQ>CYzg zCXv?}bb$O?{e$tSI-9Yaan{AEd{yZs@+dq%A4x@R;OE&x>Y20Oa@g|wg%-)kgE6JO zRHd!{+v?{%L+Vri8Ev#OymI2Jmd~Dsw(Mx^GnOX9=mp840v1J+g~)G$-cztmOJg`k zwLSQFIz|6bvwV7EiSgm!-cQ0gYVm6x`sgRdz5Yd6SH>toRE17uJpdM-*%e>|vt5?> z9QS))=mI9N8xp}$yFT3-Y;+o^n$?vaR8qAs*tXd0jB1s>P-hhee>0&da8Nf2Qg_CU z*WYwL0=$1{9O2taZ|O5y>t36s$%1&~_B=d9>jpDc^ ztrwHBUcpvJb=CLy9%Nkiet+Ma0!XU#=p>nZ+Ivj}5Pt1J9_@0~!cHTa)_ooQ>yk|h zO(ZvE!wKF>bIbnEG!PmK@Y_CNf}xNpy}|pQQx z#|@pb-IcS8{$cprXI(wQ0i^H;QF0qw*x&WLNa}bSQgQKSECq3h4!M?GYGlkvHrw&- zJbhov_B{iJ?q*Pf8X1qk67Jw{Uvv^v8FfDi+^dA6noUri|0ZkQ=EklOV|_O7f|~7A z>7lvzbojO1gy;L`h06qXbzC~%2rhrQ03dXynjX($b;jZ=vqH*?E@1n1WD&bmWYg}= zC$92qh63qT4kAfG%)b+1>N1$8xA~ug|Kk@v5#|o9%L&RxAUW;8!5%8??PXLJUK?5iUchP|TgInk-@_{;7C+2Y+ya-Q7 z5eL%Ez%;znR(KcJ!4-5>f-sP-ipoxr*7FSyoXby;1|oD(R=Woh=&ImOytu+2*#nGG zE_n-}wEzl)eQF?%YKv&XX=tgffG+M$*&p2K!8lkur4dRBXa=-m>9WCvXbr^GyZ|$W za2k2#Y?3T6uWvj4sLcUg|AOiX)uA6U^6T4` z{8}_?-24HifO3$-Bsd4mR)p&~3$cxUldp~tinVf&k;|(}w{$8B7)!St?qs&jOP$0~ zy;W`g9;`WJr=ne9?X$a~ndJUDcl}FjN%VnL6%DXk zwCJ1aO%9!JTr*+tj4*pdc-;}~nmNe^-Ho`8QP^)}giwIuv{~HY>@BM}#%v;RU)J6k zdaAFB5I-ER@Der@W#ToJAJNF?6MTsszamuM1Dh zf*!vg+Va^6)kf8u3;iS+EmcFK8Rmg=)4dv?UW#LQOkW?JUS=io6vd*ILo9 zIv-CE+Y-HkPy^HI1(1yk*u{A4ASsH@Ir6Y9uugl#G)I+opq!%$KTMXM8%VblRZ&b* z+_wO3W&qD3tMT9>{$+;E67mx>tDW^ZwnCKXf=u&-Zy-|&2hIQ)hSIHg;%POV!5IAU zdS$G*A*maQq+WbXZt%i9&H+d>wAw7XH#G*%wqnBExnz-va&&8yZwPfiWk=1OZ?nps z4=LmJgn1L8j%=Y(zS1k%gMvUbuQc$SIW^GQofn!SR2{dySw$L!ZyoQ#?@i46Kh%e= zCv8^ML(jF2Q(97}C;>+40&+EJ6U(2wwM0PDt8`OV^8tAkz}{2E4Q?wn%xTW3@^P!3zNM5GjEWL!E)l!TVsHYXPxV3QsE^>1d?9Q@5uE zc4?2iiw$I-I=Yq;xOW6c;gJDM?>yw{al)R={f)ai^t}g(GsMx}sK7OvDAV-t?&4sb z+Vqq>21#m#XYU{zh+d@R0ig@jS*xvP4G67hF~o{lTJ-IDh33H8wAc9K17w;494NHJ zyF8lDy|NvLcQ-{J;SD3u99{Cv>``3{>clR@GmKiv`RAe3z>y_>=_&>yM+K?a%Fwpf zLz4A=1r#!~mC<-tc57XG8zYBMKyPjzNb;eH0gPjsGt)##{#-9pCZVnGxL7HTHoI5D zqnM(vetXL-Zq->Gj=C6Zhk_P7zhhFD_8gV1EJoKGQxenTKMItQ5avP3#GU0r4`$wK z59CwITZzRLSNAau&zYEZbQJT0n^|m~h~$Hnds=VNi+xs5X3ayxESk8hk2Es3@%AsQ z{+&LkX`&FdoSdRNaxk85xptvF@WqupR%0A<2|2SEKm2Y&-B~?}3=m*hq!2Rs-@1KaNN*2TOo2`X}fxk(cjM-Dh9mP;QDGKqWgJUs7 z_g@G~8xayGm&ayOTsCqrls>2d*5OFA1QZ2yrVrYJb@tONkwuiDbjyFP%sjiN{C4nB zQAYg(YGA3($g@?l0F%q(x`p%m`^9d32U59AOGNTjUY7ZZ)#uPWSU5sIKRQFmkLi}$ zvO3yc#L84@Z--81r(ltpUyOQ=@$K94w+<3kD1EKe-U1Zu8I*PwShZuEBYH>`5r|);;|RJ%4Y@n0 z)87dkk>ABs!UT@5N=hY=E;s4>SEqC_3Hj3>k)lg`xk$_14)sPONt87pXpzDLWX$=? zAeiez(CFPz3-r-yb<4g7$t8QxP#a1MXroK#_Y# zGf;5ddX)y<4jmLD zBJ1I=$k=JE+f;)0GNm8ryGT(2ZvG2EB0pv`vHOtvhervq(vXLAf>Wx!G(yFJy1HP` zG)pz?fnEUU8S4?GG?KwDU04j3J5;eD}emap>RO^j2C4NWCZ-7D521lMl76i zKr6?W=`0lQHZl(THpxyv>=LCMh+U^#;M*toZW?hzH$n-5k^RaMj! z!fv=QTES1s{#LiY{EM1w!6QsshmsDa5}%5Sz`eKf4+|Rh*43d9~V*L1F_q<=JiP1Cb&Wf{aVrIFqr;){P zMDux5%i?;&U@Wtd_3cOU`zfm@X!r;SRhQZh#gJ3UW)7P{()o6dX)`hPV|Jo@0|FES zGc9pU+I9vDP$iBdcD{GF`6`7xH>$naD@=c{1phVeD>@0J(KaV#SKu?+~)fIY&DUK%aJH*B>+m z{k*yyvBF42}y!E>~yMIjQBMEo4b@7c`70 zPJZI4TpmjpXQeIt(&7(Gb*<>oY*YAa5O#u|RY@oyUu?#Z#XlFQ;8oiR6T2^j=rd0M zUXF@t2rrn9dYW4M=s(0;78xu2{s?*5lWPAmd3Xx8aKj_Uc?l6E?O<1rwY1;RYW?Q>wz z*(sa~dX|`lHz5D4Zy{fWA!e;UYj0~yLTvWeBgp=qC?q$srkxwfPtd?|Gk6FEhcr%~ zbyVS23}pQ|AXgJXr7q3mpT`VbN};Y3Id)IKoa2+_Bz#cORls3~vZAZ!FIU5ep=7-& zSb#k3{nRr@qFT@#A5INOip4I4+F&;|VfSj21Qj?B&r18M!a%z@TsSp;3NC1#dn9y4 zGnzC$@n!wpAOtYOJ2!sx$gswr%;#XmxI`1LW!Sf28ME9-o~qA#UFRF}@QY*}%@(o+ z>@n|&8I)*h1ts_D-@Rz)6&Sh(LenF+f?NDtV0uMR**QxV^MQHnKg5W{-0k&*d_PH$ z_$hob;&|1stX_?1=L=%al0bN|gmLaoqW_9^kO0ttuEStQ21|Wd4nM+v z{YN4*!Z;CIDpM2d*s{*Ua9Gl1_t_1;0Iypo9H?&9$6iz_xFDn#*}l0rT*srICi zFICHXMfXgr-Fh{VyrzQ}n%7nhBVH!kG$9A0H;0csRWZdI{IWR7XRc3#;loJ~7|STK zmwPi(VH}1tfXOEVq+^(=jwBLsiDiD*=Wmr(m8Fo8atsCV&8ESsAo}j{s zEnt&an!h%_S;<|GFj9jBS+v!~Fg}>(L&!va4EZkX@ovcNcFiYb%T6ya?SQ;xhE#$l zEo{CdjRi2msiCtVKpSHyVqTS&pah``U}kRsa`m1LJ$^2uAcRS-?AG%O2ejzHle$(* z+crJRjz6bRRpw_i(RA|je^o6!R-ftgKx)XpNjxfhjI#9@me&WN2EeZAZ|=1hmr5gM z(&^%`r2`066HJ>XZ_8o)7VZ-li(fKIf`bg0`wu}HwBXofInVZW9nVvY+H6rDj;hj% zk?{8QLuo!j>DHfXWc%@rFuVYR1*VW3;{6i&fkM`%ecWcKV2UnXwCcb=%RR6M(;Ug+ zhxc7RDRgvOovf&+#t1*<6Ns216bdVTjf zFm8VwJ^+Nd&NBErKywSRRqble&QHsd6W_bvd9U-g%odMkR%bd-=Yt915)iv3eI6ft zL9btPid%;_A?k-;IDdc&=7Y#tuUNov!vF+ktrB=B0(7R(NyI%V3}5}~z5p%f5=1Nb z{fEiXP?PLSa9TO}&LOL@HkfvW9QTh<>)*M_Sygz@yp=+=nJ1JIzKsbWc`;wR%J#Ju zWL@d}VZ_xGYW=)v?a(=6W^Ze>J=J5@Se)AJkZpZB-+qyd@9@^cs>2&aQh0+pW!aEm z^upWKc&r$61B-05w4bExFYeUv4sPg+PKGe>E~Vdpl8a zP&*gvctm5N=8U(HFTq@sMZIJ8?;nF!;*oql$5CK%P1r{F;F+B~357cxfXZZvYMjCs z=tGhGy;q`@Jot~X&+r|OpXb)8(?V1*(yY)=+Y!RRz1O0MNv4rd<&$L*e1PJuG-tAs zLtD^E;7FItb@pSbJ48!?Rse(Ou+0-n7>=_7SXKCpBcwrEuXq{TgzNr?(CiaH>S0pz zp%fz94a@EGdMV54SiepN7yZpfJ*bT^7FLZWdf%u#>Jb11fBuj?c3An-@94t=RhWJS zL6HM_51@KKuFAd<`zM~jmVdYVC{B*)dx{<*Q#0dSCSxFa_|p*@*K|l<6JwokOm11YT{d9 zB(!di9Uj%Sf2l*M1garDXM>NmA_C}tV(W27o`?f2OyuE1_xaVZa3V;0Yu#pYS!v9- zj~!`o{1-!}JG42DGN%q&iZ5TpR0eHdf4l?@EEdon5sR~6iPMV z(Or)nao)6QX-tg9gcK+9>pgO!Cnyy)js8K-2@?pA$5c#dqdNf4<{04(%#N6WAKcUP|GUQl#&gq!IsvX_xeEj<&SvBmce{a?hTqB-f`Dx2XcRO5Nu+Kt96IYb20t7D|3P-ltB zJEw+VOirz*t4e5qsA;WrGpbJo%M44s|5OZl(18RO_F1gKb~IOP;p$RFHZy(`4^qO3 zqVsz*Yh3lK9_MDdo`KuFbAzul0rw6jaE%E};+TNaO#UPXG59#2DIL)mR*7#RM}TQ! zjWIyORkcwPpDaic{&7n3jr0~e4tf_g=7 ze{zFd^gbIoAi&_IUWu@dIQbuu_QmJE3;ubfVi<8Cg*r_% z6=o!6+I(z3Q=4^y7)+OVK5Dw*xg<>E2l9si z@&+w_*<$%W-Jiz1-7s&SZ(fEG`^imVRSLmTADD<2sP6$7Kc>%nii{3)8YgOOIEX@= z@yEd_RA-{aVmR?0)B2?Ok^UZssuuS~z{b1W6BbvCnor zTWs@vrVj~gNKSH#O|?f>yq7~r!;JL_&AJQwG59g9^*}Iff1a{~*x_r~wc5jpmbQcq z3ovvrty8_G+-yt=HXW(6`#9tOlp~REvC8;2qHZ}YM!&6$5C6|@&d@$g@LK+7fjm?< z{Y}t+kQ>!8yoJ2~pSn+gO7{*7nU>mhMQSI#$;#~|(*XEjE=7()OasNYSv{Aj5M`>2 z1IO(dF{{grlE;lM-j~o|mYg6ZO!^?@GME-XcCR_#DP$b&vsk%BOxnqJ@d49rk#RyT ze$KFW{20H-RE<28C{cs1!E77)-jU%=fEEsP0eunSS$!OmwM@FFL z%waKjp0q2|E)K&WAXF~Q`-zsBsC{dYlH2eHtD%T<+O%D*eD}C%f8oe!|2MJI{^Kt- z#}BFQ^TO)+zb6E+YI+Ax0eXUShLe+8Fr8%NU<_d*+}3=)I?x%(2Q7XyEw!7Wj zqotksV_w)Mj7_g~gdqko*k3m!KkZ}q!=m_^zIsEg{bq;FzmUPpiWe#ZUX(#v`Y%WUi&s8VN5DSFMs_??%GLjF%aFN;Tx{Gn~r&*nU_i+Z_n zfRUg>Ie65Z?7=|#pd2iuw%awE^H8qV(YkHD;Yx=J$f_e_H3S{&h?r_m@|=a(!`$`V z-P_S)VR?;Y?M)a_*e@LIDm^n-taZZb!`92kWOh;uITU<|)f%yaT>o29%craYpMf$P zFL?Z1QYcqGWDzq?bhahvw8`Gs!OapapgTCj`Cz94=H=VQzp;ZeC-$mWwn`w(k4Je^ zcCgD^rN~2Gy@3Y+xOD4IxoGQY>_>XPe)p!EqVSIWnCws9`eVa?9n)D`xb=C`l~5vt zd^QZZ`;@9127vLv<0oP*qZE*TV+pa0@)vq6Na$wCY;^Ikp4ZNZ0k)j}>{i2)f;v2_ za^H*W99C6*Zf5(T1pQq~*?T$AuJl1@dpdeAg|_qJk2@#4Xt}vtYnyqX7dk}x;Ne;i z9-Kn+irXC9-4&ksH?HYdX74U_fMKl<+eOKN_~&EC0P*&h;0SA+3g{g%3k~<{w=!*5 zDi+kM=+gYhoTkZ@19?jytZek)&w&xQaexwiP%o3V)WO5~9{d$BLPKY}ngwXTsQ`(Z zh7-_!t0A3NBm-ANF2+v7p<&eGe}t#8*sA1u^R~?upc5bP?&8QUabO9L<9HtNM2Y$w z8%hi&e+$Dm>C)s{urs2qW=mRU=k6UZq?1FZCjC#rKP^jtZbR{G){ za=H(=={NBOYfCY6luFS-7JT^*H?E+BK~mKU^HSqi=G(~ZGAA*64fQXWz4m%Lf&lh1{Nn~*pQw?da{{QGB%04!??3j895}@Y zWt-_T2E`#u5j#LI&3FE22RK>fCn?%8K&gu8613-%1qs73d)k-T>-~GallN=p7PT9a z3+keg75><4W}BrehzR{CijehL{E{>;zN>!MVJFXLl zYv;nXFzCbQ0YsG@DFP>`WOa*^rYVhAhY7ckgp0$5!2e_Gy~CPH!oFb@5vj4Gw5+0{ zqC`bRTC%RIs352aNJ~~-ML;@8fE1+2T7Xql6d|!AV92UqC?Nr&L_`Tvm69SQK!h9! zA%&E0eBSrDzU%s~?~mVUbI!~??Vg#t%n7%=;3r?5!$QHLzXyTM@5Eo{t`_(+r&nW7 zOj_?UK^_?rck=DK2@mzil*FsH{H>=Djt!!);%@~|P9QUODdYHLrUY^b!s@ zvA8~`Ir(UlOE~jRsDL`AvA5v*OOw~&p0%+y%ll`}L78UMYJKhR(>^^$$^^=}tqaK% zb=boO=2u2f2!Euz%>tJ9LWaE8lpg`_a)Ztnde<1iDTK3?B^jEWsdJ@*)=JWjr!0@A zbLE3UT){EED3MHT6yW*NDs;-fEFKud5_b&>A_PN+umUyYGJ_E~fB72Kv~t`z<&9r^ zs%kW=lNE_!4?x$#h+-&_;V=4NAPymf(YXt=7={z z$DBD40_(1d{zcwpn$ak%_ar8E6~Sk+-ZmzPt-Ms2Cge01)mqou9vjS+l6+Kp=)Dr$ z=CSWpOr9ZRFoBv&M^Jud*)#-|s^2b+;vE>&r@lzAYru4+8pKZMxfM*Mh6#j;#5R5S zi$sU#f&)^E=q1E0Ku-Bg%_(8chldQr$@fT0<{Cv~H41xrp7QQj^Tp~nJ@&5p+JO0U z1(}W~Q9lCYTP*#(<$llYO^_$lxyg`lmeJshz2pYIOASMcEL2x}LIy4%rF5@vJI9hP z4H~Lm{y>2>%)ed`89m#yQn0m)8)PCbn-d`A#*;+CYLcIH=b@*MO#PBeu7vt4o%k~1 zT+?&@R)^eErljA6OdZ_IDPacx+9{X~n7cU1chT?npe|+gs=pY*uk~*Ji#WPoBMhmB z46tSt|A7U-=6Ki=+E(c8x`0Q~%S^9qaLzy%0#UA3gkvN7 zfHYB(0dHt6CsEUxKul2#{SindtR+0kGezn!9|=d#%jf%Gf;Bin9Kxc0>&#Py=uc?n zw%$reRY=@w056dQFVq|t3f5tD>oJ{+(SGV;Q$DK;g

TS!gE&(>85#Nowr`{d=ysNTJD*Fm8+Q~M-&V)2)B%~j>s7Jf;hCxRg! zD?TlU$d#CeKe6^Xpjq%9iO#RbUF&m#H`;`e#_X{k-SdMn^W1?G)swK8HQa+k-Ts1W zBU{l+Q!whN%h)5pLVj`Hi#gu_`JS91X@-Bh@(GO3o~7?ILOm9CA)ui$8%MrSmLhP0 zJX50FGW*r81j(cRq!%YyM1R7YMpQR8)>`f!X!_NF*Hd_^ z9axKc3`&pT+uOQLezZ!6I-~5PURbGm#YOck!92m+w>8F>YVSTf*#7X;T+;^urZi-5 z1@cc}jXmy`60a8cS6X2=;tD$+EY;by}M&f8V-YI=D)PI|@_rVtCux1EJ)`FYeGyI5^bi^-gprIn<-8CRGL`V%9m+pa z50yX{`=TQZ>5RD~`AX7(krm~M?H(ev@^5IiR{M7*ryHAymS^{cQa7sZOqKfzvZ|~~ zchMhKboM}Zm828?SfrbyUQ_%<*E6eJ3+7-&MwsWKguV3pqn2w}5#c2K4hf0_W&^zL z`I~IP(*(LuaLzZkm!BbZ#V-{<(wz9bcfaY9#jjLW}BX5rf#Iasi->w?JcAg>vHP2hKTf} zUU`F={C791BP%=HHPjSWs@gd)XXpZc39cx(0okT7R3=(4p9YLsUYOeVzT`^Rc%3#qk|Yi zx@Pt1wes0-u!2M=y2@(Y5F1~WDr@W%sfdQrCBh~rc|k2KI7|D4Fl8xU93u9vG_Jkt zzoPoCe@b;R$2G>5x&q)6KuYdxe?vs+V85}ZaLPY}pPGPlXPHJ|s4dV~AN9-{`s3!} zHBF9TZo}d7@(FfidT)>GcQ34uTPVy0Y$W_N*v_S`KhnMCJ$CDupWQWqpWQhB9$`P$ zWKi4M@Ng_S#F*gEXrg-k)Nrqy3w|i(Iz=B51J4U0LlFHp=i_Dh`aSMf5>Ag z98Y6%h4O(h$-dmwZYlh!qHs5aEX(c|=s6HNmN5=X40i|=vmrnsU1%mFtV5sf9X~8z zkwd$523Mb?*rZxr70t}hzPLONgKQ_FH(!F!28Xjt(xSWO-M{l4s*pPns@y62^Zb=k z&B0CbWJ+fR4D&+M_7?ik7g}wvswI`U0X-4i*?<%I^6OWCWwC-Du^cm9P1=&@+#&XCz5oy!VI+5(Ahdivn=wqHH9yjOr?ulmT zkPb@T>hW0)cKGyh=2#XnUEC!R`ODYm)T#Bgha^Y!otLKv8B38luAo#{=blRlIi%HlmvNwMY-ic_1`7Wmh1$Os>%t@8cM<$5zeegxhSq z8kD-(4fnQ!=L%V8(_@avd-CWpzF@W;-36v-%ok3skLQkv7SrZJiPcpocjsJDNOhGx zDl^C>zSz2$EI@@b$IKyQA@OFn)0iKlh405$C-7q=13U-UzJe3#0PJOod!#;*m}xq- z2&hR-t(MYeEOlu!#YWz|c0OqLxz@!1b$Qf0D64k9wu%D$z9fe z1HAhXU@U|Mk4~w+n`#Ac#NF9aFkb2P0;Wp)gf|-agx>~W0 zOiAlV81uW9U-8wp15>OFzTXtJkup%?oSWnXa;F1OVqM%1g&rC)EN(6<4EvncdJa7F`;D$NYiWH8y}XVzhnp12kO&Os+LDd!)^YrWQgZ7qcwD8jwXwNs=>|s z6>>lMku;qg~1%^U?Fr=lqf5~G}NJeSyQXjsbH#Z~5 zEnwoXaHERR(}+%kopP(uqou4Uk8Y=sHiEF0rL>gWuqf%XRjy@&hScg_L&wZsKgGLr zVVCn{MNGMkj=<0R5Rj>OUPX0bJL^Def`O(gvS6ozA}5#ue81&YOV}S>mRwN;tusSy zH>AZ;7t-RQL6?XIT|;a@i-Rwvsq(Id_NG#O_&~7CwZP`vqOt4#Z>x0~_@rLoTBbDt zVx#3&-NaB0MaxC0k`Kf3CYY?JN^x$2bCctkdKL+-Oo3lE`t|Dn4S`;2T)^$rN9}%j zznKhW%zGmIcwWBi%h148?MvyBT}u`ZP8>N4q%#RI<**tcmfr$WIleARDp*%tob3f3 zss(=VL(UxmhRhPhmmN@l87y0HVn_nLoKD7e$z5H;afH9xpEe5xCwg`1EL7{4KNYr z=R(&kZnXE_En|LDfbUEJzB9E6z!yL&xTjqMRn%I!*yAa6<_p9?SOiLbz=qWu!Nu)W zMNkldKtnm#5-1m&B`GaH9wMr{vsdOyAiaT!1C@>YY07^u#>f*$>88hPs{{v6!2=s9 z$b>6F__YgY%AG5sq-S;yOt3DwYYG}{MfiK(eA_Al*4#C#C(I%(2)|FCHm~A9KWnur z6WYA?fc)4O>y2yEab?J7Ac~LrG|6#&kY6hhg(3J~PJ{VHF40-Ft~>iVC`A$95B?6M z_A~o`B2q$ct+m7kZC6U#MT8!{e6HJbF{dJ#`+sV|ql)l!EuGo?bXy|@Cj!6#dASrc z=iIa)g;(6Ox2w5<;scXcl6)1UD?tkM)gT2oJxFl~ZkAxndmm%VONePDMqwRuQVY_^ zUuAF08g7IQ9>!PSjgAL!$Ldp3$My137_6rxaqdvyqW`^2AY}V{PXLW3yHBFN`^epm zCpf`L!gfh4t)#f@|GiyZC3IoMkEa&v@b6aUMy+z4P=NAKT&f=An6f4b8o;B}hJgJO z*wg6Dpc)>4JA4hY_$*WtNIbb5?J@s!Z+cJ-4Il~BJuEG#CJ$VDUmn(m$WISuqcYt) zH7i7X{e+O{?4TNWT2QKH<3QgeiiPS*q3{HTQbx-G`R|jd|MI*4e`vHE_e?A4MP_#j z-g)<&{QnZ)B^kV>Me(T-^(QI?`}0a-Hpn+p#K-=pG$?~;BlI!#ixU1Zspdim$btlP zXOkEgt^k~`0f7G?%{5^ZeZamcw1aV?0JKUPV8UPB7Y}}NTR!l~%@V+LU449wx zyJ}iKltsQm{>aaI$f69mG)>mDn?`Z6`~`EtSe>X5&9AZP)({p2vPm?i#i0a;Z8RSr z5noB}8KBW4BvZh!!JvcI1+RkPtR67=dh1_&h*u_6S@VhG8k9c6dwy5j)u0*#0MY1w zYf^>D{6EztJ0a-Yx&&S#tFmn(`#bGT|KD2te=F5eK{O?~E40frq`6I}_25)#bN{b; ze?b*ZuL48d3V?go+9QYb20!frW6Un`7&N{oyZ5U?ya4_v&SDWQ&O(P4R|NQ25jY2f zu`^iwQEP%dmy=PcW$Gqq3&(Gc<^=vKq|m#D#(;0C|Ado12bee z^02IKH}rZN+YHJG6c2(yzTeEMieVBp`4UL4qw_!+dxIv+iM0@yfaZVz^`C7y{(i0b z?6fZ(G^O5cvRB}FI=~x%Uo)I$fF9^&Vu>e4EHt@Vpz1NqyF&BR%65SEHSY?mtteno zEF2ps7D>)CT2Q>xVA3*8vM$CArE59@5Wy?Br{_IRT_rx9317&eh+&sAO}kTZc)reE zjV&abMNgc@8dB=;hK%1O@8bDy?`pCkRUi@Cr7D}-I%vSD0uCZqqJ5R_g4R9MX`KOr z*Z^0?Mb+z~sIyOVV9K~0+2%BOmyATp#B`>H1_;=9y%u7P>k$EF=%24lD-2Li#0QZ& z-lej|-cjd?HQ|r4wNxXYG*2tReFsl$=}VQ&FVD+}Le$y*~F{w)AH+ zm}P_`;{{oHWN}tRLw^MN*>Y8NkDxN$ro%PSRPI?H>bOAjyJ&@b(@+>D>j-rAC~=MJ z>%Q_E{0~ynPj{#zFtkpWdz>fiW2r7$&8}6g9t6uH_Xur81hnv|*2?u^v+QjB^4W?M z#>NbI5AxJH!P~n)Tj^6?A9Dn2SC8=1)fD%LP&(vC673?@4vNS40;1RCBofH)$@sOn zstz~|Rf-=3I`Xk(CpdcMwkcX4RW|F`Rh=(NfnRL($+5$2-gCbVH2 zdu(NfmH&|B8o&PzAy6(0myKrTeRYjHfkk|=K9#9`H5) zkbalA9N^n_k>EO7uzK+kjGV;^Lrv)abYKja7kOLLgw7*bG$5hDq^qG9N41M_@i+u- zA@X;DIfN@@5*82x#@P>7C8TQYSK~;1VW4s=u!3~xy^;|bP#t39z@H=Ft*a-KdJUrH z2aW&2O*-ygK?;=BAAziV=+Gr>)Ch4oojjKstV6?hBQtotgjIEd9xieT`LT2)RB*7e zZP-+96Het`?d?_XRSrMuCt$Ae?{O-jm$E`ZKo{4}K>Ski!T>U@gtvA=V<~9ItNloS zilyS`#7E(8SeGiAd*ggrh?_pwd;TxF4!I&R%8>sqnj7wpbaa`iF(;taoz@V#4g~V|k)QjmS{`_~;@qO;d5@0h6XGn`o(F+kzra8dOXsfng0Dc** zj_Hq_4{}#d9U7pela8t%t%BC|F?X#Tn0xS9kA}OK?*8RKBiWBx ziUdlOenY6cR$G~!_Z2x@4=QK!xI2>VJmX}nxi{xQHq4{MQqDu%Y&zsD4*-jO-GMnD zb>A(H7^rO*P|NX=gbZ1iG!afZAUQMV_P0booU<{bANgb*C^tGNx2@QaZtXTmREy}& zDCx!hX)h0{ch{~MnA0#jBbYPc#F7nL|1 z4_Bpg9p~3DnAN68J@J!yl`r;~G-IkEk~wAb0=NsTs2;J`ajoHoa*VxSigBwmsGyb( z%0v5@v^4{BFd|6E6tw+?c_q>(83JBeG0F^mnkOqV%A?}bLK`Ddl7qQ8!th6-AC_Un z#r(X&?nuhdYnp$F*XZDiMhz<(B8k%eTwL@0mm+u!EuXWz zjBUfAvD@i485w)^8K>vpGmM$f=O?!VwG8XNVIFl(c$TeDEhQZvx=n5jx`-UHy;qkj za>eDfaUA4AGg<0V<}1Aa*)}6(d@bjFc0rUVE5GU7L~5jW6KrDMZyjGO!uMZ-?wQ%N z=uk`MJlD&2PWm5T5ycK#M+#I=*Fya=Ius8X1ajKfM9q&UWtVIbWo0*F`b1gotjSc` zkf5~-2@LT9heA39sIg?F9qzy8Xdw$RPN-YV^;Q6pP(==OVkI3a_{?lBHfc&KWfW)H zoN#6~_(xbsm*8$Tf0=3s9j}>Nfc{QmiWj@(j<)^)h8U&%IpkqK`Kv*6wUMfJE`+*- z^J?yLd^MOJFQp|S@L&R>75G#k1;%pY92-t1?<=lxk^J{=S~pZwD~`N8EL=dZ>+vW~ zgY_is1(Kki>UJvh+L=Ra$}1Z<_r*Y&FgbK*mFD+(R!MeVZ*4~~bOvx`gD4SoqQO19 zNb6KxOuh^`n8C;NQPGklNY?F5G-jMuzj6ff39%Cl=_`Bi0ZIt1hmN{CoAckH#0Aj) zKJwf$*Q;EZlW|^P60js7b^^y0j!BA*I_eL(?w6!zS7BYM3w!0;a{O0iM*A`uMnL*4 zdu5{am~6fZ-B0nV%IuF#yn^Xf*PvAFXgU;wHF8V3z{(zXd2xe}xmZLrR^94pjl7CU z{%R;rx9LnwS<4L(9r9wCjuR4>6OQ&O4#@u~=3vE3@bsSkXPJ3j*mGxo8Jc}+1ja@O zjj@4JiFp%zoYA)k9U|&TM8L5_JUV0x87M1yHdbGE>+6RkwU{sIYkiM@a5knL`+@8Vn@D045M$nD^~Dw> zG^frJ80lPZ%AZIE8)cl}RP{lhYvFqnpYhfad_@CF;2y!4-A1QY6ih?7nJ~!COz*xS zwJbJcB*uk91~aZrIMN)`c`4$hG}A^Pz8I`rM1Q5c%WO;v<2B7g(cO$3H=8k+S#-i~ ztj`zb-)S~IsXuCfln@oO3+rnceGqGeC(_rbZa0qh#qTev)*sVFU{AgIxq_dc0%2d1r4myBFGI7VXrAE3@E$VpeK( z(81DSD-{lj0R0a2wl7Dlr`E|4ZBD~w_saVZGdvQW}OPkbBpX0(e2m##T~|?m%C(xN(y3W)(VwJ+GhV zF|?D+@|bWf%JlA(CD}FT0qKmR{7lsiO?tn2=hVQXUcb66n+9@iZB-w(qpKIFQh|Fw zOh2Z=j9%Mw%^^+JEA4K&MQ(%WwM;1xSjOR2GY&}h4+&Zlxi1?1!v-$cxgLr_(2WSr z4^7c}%(BZrO=J4u;}O;MLdX(#Lm7Z_YU5a9&*YfDzi&Dl&cq7-ge(FJZZARpA>84j zDr*Z`-|WwPwH;T|bIms!Ha?MM-hg^1`z{c5bH^4SN@BaNK()0D^cBseb1|$E_}2Z{n3>9TY-)P(G9M7sx-C5T6N_rS8+omF8zW+zw7VdjH4noBU{+B zuiG0k3ZO%)8*N^ymz^WD^E#Y!sv%4l;qW5b&`~|2{}7>u zpV+0{u>?~-f8?NiUkvL{&OrRe$v;^*_1^{^@3*+@v_{>yu&3%M5>PMPw~w&}n& zxyp^)VE4f4nQ&VqsOmQ1nP5uAe2X-8Fa6sQY#*?C4rRxx7mA;lunx#ma#-(!md$Se zL_8`FRZjhW0ZYs|C(J+{N4?zW`k>jymX#WYE48E7&kd!Ta08|P?ZDBL0l;*&iveE@ ze+6xk=cf>krS~UUa<4@9V4D`neetl^)u5?I$64btM=^{{VK46cdU>GK-HXKmECp=L z#kutmI@4F;*w^$ZsQ&0;;+@a)H}*iiRov|^^y213!$zBN+`TMQ%@;%e>|P+y(~++q zWcM{r){moOQlnG03^Y%&o4{SzuRGEZos!9EckSJU#n+<}?~O;0ewbqS4057b_T_^s z@F&{yBQ$%~4=`Z&muQX;`8)B+5$co6t3hX$8&hn{b;YH;$VD{q_r&xdr@4$ECzI?T zCkBw%;q-v;w>>r(4ji#+OF4Y+@mh^R6mQ4{j6XMWhm@??;5-ZV-I!SU&`}-Q&?o)q zN6EAe(0GdYjjQVR+_5sSP7q?Pv6s4q_aKfGH?f$ewoo=s)(Kf)afVbaQEjdAzR*Nr z(ifnE)K9x}C6`xmPl^r@()@dHyw!3O%ibN;`0Op*+mC|Wj_3lxB#^H?`wf^^IROD) zA&^sShD3$%Fk@oiP+$n3I?m{Y6a2;gM%k!SsMtmHIufE&@KllvyrAxfJKANFzt)aO zp_9(2ek|RQ4)sD=eVEyOxN@afD2R{LuE7$eNmETe<#_4)?EQ$@bW<;*=xyGH#Fx|A z7SQ5CD#EDu+{QpBtZlv4S0`$Id;J1hO8>$r={wlK#NZv35R+S1IA2KeUfz}d|dbz|?0JFhEdIS2 zbZkP;A#S+DfnL^U9>Uk#L;ePjnyvMe=OF8S9YO1OUI zK-&QVkeGJFxWKvv`cmX!9qdZV+ej0dT9^tFLtnP&73B`4w8jR)f@EjoV_Yf< zfMKVb;Bqj+B{$;LP&F4s?g}go8MY(>2C@0{lAgcgNP4UvK?~ABXEL9dDV8b9A7;dQQs3A90bVj zjSc1jm61DO7Zdv`n82BXxIEOio!O4tA6GruT5K4__BD!POINvuhinn;F5p>{+9WFnb#Y}?(X<1SuA{>2zXBSpUhC$x**bgWR zMeKRVhl3KeUh$?9qJ1G!GUmB>Hx)8#|% zY*3SFnB`wE`I2rL0hl8eAQvO&|24HTiGHLg*aiJ*W?DSe>xeBxxQLUPEj(rN8- zp|iU)rU4F=183xV&SbV=mjgUu2{3?iCIH)#`JV-Xp;^r!6$%WLB^n~vUomCCFi)gQ zzM>42u^}a~g3I)+e8*YUmxaAhOeGGw705Zhm~mK)DFAA9dZcc1ud<^I7|Lm>x(Gs_ zp<~Q2(}^B!4xAm)CnrB6XLHclWvdX_cXn|sEX8~)90)Q4VcekYY>9F5y=8PSk@TApH9EN0o@Fw5pyb%i%|TbJ(w66 z>EzIS9^b=(XBH9J{%}lrbSVw@;%bTSKA1}X%R^J(Z7fIYV{N+2u~kW-aQRTV{T7>DdD_E?d1={dn2>O-L-Gra&cA}1t;ppHqhTp2p#0ODxo%w z){!H%QZX10*GvvU%!kV~^uGQF{0s;3Z5`yH5fY3LD6TQRlGllI4`Yk{GDHsFFCG&R z!|(({x#6~gcMvU+Ik`BRlG33=@KKLwa#c6el1{2|nl3kkmyC2A-

-6Y8#13nCJc7_df3TDZ9>z7(!rqk1`NdBLdz1867olt3AMdVd+> z%6^E`Ful%|Zcs@jVro5GOuDLl5-Sx!V}T_pD+wM$^~9#uZ?e!{UG)|2jcYnI-m!(z z&*zi9+&~9neDwJqFC3tK!Q*T`r5_iSYW20GXf-dh85y6NF8r z2o~nfy6;8>l6S5{9ufV;8%g$4!kZ@5?-OH!{OOiaqU*4xNSt{003#^YJc>ubp2f=( zZa1>ac!kRe2POY0_;YS|JD>+<>?wqW}J*SvOgAB^bScA&_cB}CZ*_6{6-vuAP>!dcm4jILGa zBN95I(L5X7(q$S41i8w zXD-z|Aw|F&#o?s0hQPWnYw8N7OYiM(YGO_C%3QNsT=$R&*HYi2*ME2Z|*J(i%gk+AMl}0sN)37S9JZzB}dSz-kDK z^{4_n342_0jYk5pnYFFphLj{dgbn&~V=`0xH5qBdqvB`V8i1)H`@GzMqF1d86b6^S zI_lOx9bLGx(J{=`eupZw-u>Q6&8v!nCy*iqRl5QAZ51NeTvOld|FFq>0-y5^I_pe! z#&Q(|Wr# z&vW>Ld*HnW=;M=GJ1EGEXt4l6P5cjRT;P!FrqB3OXXRTyCM-BnXo< z#pY|OI+g$QI#zHFdOML{6RZb{uXr*w80FP$JjI`sj_ohj(a=0 zs}qPhitnu?*aC|j1H|*#*6YxOk+t`=3EETgwV!XFNbKiGN;Q4@*bVjKJ7(;-auz+IbCV+6Y8+V(T{`&ZL#n{S#3jp zt6qam>EON<$eCBbwx07Mxgr2cDP#vM_I@(g><;xh5NW!|1Hwp{s%Vs**BD>Uj5pC7 zpUjVdbbvfLBdJSu@D(QmIKG9R~{MEHpQB9rC~HwL_jgvl&t! zEpbqpe-JOqE19m>KtE;#P(UAwxQOUK-|m&o^Hn87Kf|>Mp`uIPk|KXQ6A3*&DvXfF z2hw7e5Ds$Y;ew1x?aXR<+@#0l8zWot<_@;ogjwxasQS7Tq1vd@uh%O!C;5w(7&bAF z*FD*XtC;iMV#uTl|Jo$qK#8X;^e!hH4Us#!!Oa`bT_n}6!=;m`6h0oflwF2+qGW*` zG!#yoP47>A4F2J_hv&Eo={^Lr7R1g5uQeo>$$~et;Nxzk0T5@l_)Zq+l~lAbF-V<$ z47$9HT@1+_tWtp~vCLT)Lz$i=3tSw$2s)aK9=uvNx@83I<78^bCcf_;Ot3NI#C*@*Ohnhb&lkbnQw&S~mrAQr zN7akI9SD}Top6`hxDr^<>uL(PWV|VQ|ImeU!6a}@jfCnaP*Zo@iw6JM6g63;nOOV- z(VmRVkdLp{ZvK&Ud>*=n$Y2ByHIy=qodzz$Xd6Y2TaiC2Y3rt8bIA+iX zS>3M7St#yeuq^sq_s94tu&<8c^bYbDpq|K$X%)6IW^EN6Y9-Guwbyo$@>MeYP- z+^{g-oxqTe2)AMgQNJR~-QKH_4)4T;-S^=yO-T*75PM~7*7Qc-abdIV3rW^k%YeY26;nH{qwv*E71aM}g76ATYhS3fyQsf%U=ZpRL~d7{cZC z8eqe(_-e|mMiA!e*CR$HZAip~WQ5jw8LzEB0i&WbaXqoZ|-TouUt!NQVIfopW=y%2_zvIT? zal%)p65{w=_~m`SHX^@nNPly>eT$H^w;tH~x7p`2razmx)cLsCuY3?@6QeI%hIs%E{J(pejPN0oZiGL)a8l3a@J{&>AsR z@YrFA4MsJ~kne(Jqqxr52c|m}KVXvNK(hA%XFswji-IHq@^J492xb^%?{Z$QE!R=t z<}@%7zec{@Eola~QaRYg;6+XyX4>N(_Jqjho=ct~iVx-{_&Loe*3qAjUSrOJZJ-J? z(Ma!c$zt~=ZIrhm-o1!6q43TpMZoqt|=G#2YyLx7{->PYrP;JUI_L=0@W%nn zfu25T#BXXx_ZF@Jd^_r&1g|o#CQa_RO1qi!a0%)xX=&}C49E}|1+7Bm@PT2n>K~#% zXK)6p-^Q+m_ST|kX|(@DmV{&Kp2s%n?4V#_@?QEC9N2vCi4^uwaG8h9Oeiexyu6a( zFWvc}<&kzPB6jzEO@xy4alw0D`Ju5t-_t~DH>|xh)UUxsq{1!XJd+(_US%J5b28>U zQE#LIU*7soe04~kzLzfk?;u2xl~rPK)6)tc>}pDWsiF9pqIykCT}55vWUUqOMpqhF zhxCe@CTr1PCybQ01D}#^I{Wfi!dCct%W|6*FTEl7iBP-#@xN4Sr|V;O$ro1Tmv1Qc zn)vfwR^Gk5Kb+UyVSf0B7mzcx%>p5G(@M2d7;rmq}ra9 z*Hb+bWhK4=HnFN6)U#`vRI$5j7r2ngW7WI0X|st)L)OZRMQ>Nob9%1qN#k^>Ym8m9 znnfv%#IE@8eZj3ZPmf(CJ`uK^wCJ_%qmCM~V=Xh;z0S38zP`g0(b6h01eocpBpEBK z>%lsHU`lviaIA`Yc!xaStSDlMmiV(?59jOKgT%EN3!2*(J^6Fl(rq2)_1roo17OOC&{y4(1dajx!%blq!rqbXJW z&O%cDGG4N9o~VtM->Q=ZaNf@K)$`(g@%M*r^EQzUL*lx*{xRpi6a3rdnlhS4MPKXA zt^U&R9E*~ZAv47%Ng@NG>34GQ_-({(nLahXMfhpHHmP=a$KN%sKW~S&CVsNFQzXtL zITPYP*!wf`UVgCgVuYJo2FG>VrPK{~4!a2++bPfrx58LE#l`R9kRP`>`Ap`&Be&sq zW$!CuT7cuG@|t~!{jiK=mC(}q3|D7s;cJHgGzFIh$NAb}s=*cEa*J=xpW4=S@EY}b zsj?uSIz#-&qoRj-#I7b#=#|tWo!>hs;H=_ovQr$Jaf=fLPt(0dC4L1etF6SA)wzM} zdf{#IdM0hY)Yd`~7%O__T^#51g%(JhFbbu8u8y)xhDq^T{P#`p_Lyo{DAc(R>=dyz zc7^OF{ZPTj2@lm*Ppk9E{W)jith~18OVkaIJ=+u(=(ZQ!JDzMDRuMcl#?WIi=b1RmN9fJ7N*b@L_j{{l+Ik$xZ%_cBeX zMz!_(#|^5m0w-^mzZo7{4rlh%49{S{@A8_CjeP1+(b39A zAi0t8ExswX_lxo}QbXdBRby+#a{1|z+w70R@Xf-Z(e(wvBQ|ij0vkAVTeK@rD#R7# z#I*R<3x>ABiBCbVnZp&048?^O1m_szR3k%)bdQQA;m~e4dnM>;HZ#+Od19a7IEBM< z_P#c@I@wOK`pxT^>0*xFbw6cq3EvfoBZRKBDDg^b8JCyFOi&l>WPOP1|hhQm{xSJDhQTok&=pJ zyP7f-j_^Tv?x0-_j*@kb`#~619ul{D4LNUG(eDg$2~?ZS!bEeB^InB2ha-DeGrWze zpyzUQWPp8aSK#tEuyT+!p4|0cjyVj3M*iAjGT*_j#wy~wYc|K;8ib;8$QB{_E69c6 zS={LJVo+ASY~^SFp^&%`Eq?U%HM^QZm(BB^qf4rXw;}EEqxF*DxVzdKq(ra*5TS0x zkG251y5~OOM>(S4I0wRX^32X=-q>xCQf$xTj@~X;Y#{qflI7@v;4k%Z+(QoM7gY?L zRhw`!J2>tG>W4j<8rzbHX>a(ba78t3D(L^C2WDgLM2;qRb$nFN)lV;43ni0JJ==uc zCrZ{ikx@x!x~u#J!x0IL@{~HbLt!COdJw}2c42$3A(RJvNm6mJlaCZ zDdO1F?RFwN=KdXrMA7fJC|q}vTNF4dXuWj1vYcBIMNraap`>#0=DagAr@&Q37D&xM z;(ih5snrD#XUY}u=9n7@A>S(jqzMy3(1QtxU%kvFUow3j1+Iq8K|BXD=0Gx8 zdp+CcwHnVU8ri3jbne*=ypvc6Sc_N~T01vfU)a~-r?WXpM`0bh+J4P+F>VAv)E{(G(W>83HfAGiSvu;qQb`U=e<8YUj?TkYr zNq{2U&&J`4{!)i)ARAw%?HCg-yFoTei09&vB;@B|oGU)3MS)d10Aed+@81H)UvwuJ zfy17xmR%uboKNTDkZt$uo#3H>4Z}li!RK$?L3zAAVSE!DOLjRm`$+NAAb#G~Uxy99 zDk|~URphV3Hjw#fV-TIA^T0=i+?+FvQxyZ2qpD8_g_a7cU|JUNtDyD3+nB_i*W!?x zW>Cn)?Aqy`b1WH^*0hO)^+;0t{{Y7QcmR|?J*QS#I&zw#I6+KP+ z6?M=T@UpL-&X)i8MVB@oKsdAY0d7k^j}3zHpzX+0f7PCO>}`;F8WEWEQVdw7q7PjN+#i=i6*9CUQpy82Pgy3%pU z?%&V>J(y3;ii1`)-|D<44z60T(Ft|n!}r6&(2)x%7ar1{0D~}}gD(@C|NdssxV}GW@O!_jme(1L+Z|(ms{d?oa&)vvWCjt2FGd#`3=c z9;Yl86w9VOS?_kANw^s7`soR5vm(-jbp0?zt=uG^#1uD56L^XKHC`{2I*XA zJ$g4Ru+~4sN-!o2FAw8ZaXAF>X+Kd5;ljOg)ZK2R1LePqUH1d(ALk!ERvcNls4Ai8{BM6ObI+Zoe?hlSN1nLu;XCN5?YgG^V?{5`sx%zS+{!E00cx2i* zEn0E&65^`u)!5v%%0umgb}9A_Kn1&HNVBv1L2>@w!h0mrEi%<-p&_|OfBLB2L!CY2 z!(aCW&$4&lTJmzyvyqYKJMN`_U-#BP*zvRfwx%-R?ab~q&ip-v=n`|Owa8Gyd=;+9*(Ln7Gar#*CJaK||e7r0*t(ulXd!A=n zB`Tq|&DUrSNZb8oZ@a9vO`w8d>TxS&{={SIlun%bPRf`mc1&E6t%)0-QKde%Qcf_| z)3j&ZW}|1?c|kC>)M}bo1D+zSX~Yw5v*g)!GKj$drrs)TFQA&oKhsK6#>A5Uw1?bg z%iVqwPr>ksNYVXOo_dU; zSShEil;Yk4#An%>Y-zjqT)Vc~O4;c)qy3RG#+mz%_@9*$kU;J_patm?yAKenvNa{r zc4mvU7FnLHv9y{)QL{CNU}}&}V#fhuircKMYX|D7l`<7j*H;*E+Cy6gd5x zttL-ACcbBBzNU<6rygtL-DbP-=PQV>tdu*RBfW|L4*5Zdg%XI5B+mI;{QiI^hbKwKVA?0WDonP_0XTv^i>9sh@={@E_R+s++6`fp49co*NTe~XOMP#19IT_I3+Sg`ytt?u&wz{h^1 zyxh^oDGss!u8;i~S%H-uv_HzjJ{tG3f3~zgvJU&d`Ph$__SHTV+8^y<|12N-mrDDW zJH;XP+uPpumwVVx^01%eWB+q$zpnaI=%e3QUc#xX{^a_^e{WT2{YmzS|7||@M@swS zo#GJtYkln3Nc%IH{RtlS|K(%Wy!E$A{krOZ+kkicryK~a|0y2vzu3qA z+b3xMA|Ly?9`+}D*uTcd{J*3A|H?;y zjMVSy;=9L>&wS#)%_IM&d&Iwan793fKJjVZUnwZ~NEC zONMpzUmY9x)c+4c`>zZS`%`@ES4sOZb=becN54ku4{`C``ip$xf9QkI`ajPj{#$(P z_m`J3>*~KY``EWW47Go$hyB-m>`##P`#HrS_V@bOkM^*i>0v(@?rndSwC^6j-R(CJ z?o)p~>}Pw}@9Ja!QE5NHDGsf_KK2to3~j%;9`>_*?EfU~w{?m`>~HnaZy_)3e(mDB z_5a}${~{TG_5KKqf4)cjzw)vFr?j8w6o=UV%*Xz`k3#dW(8GR)dbht5BJ?CX*c{Ti$No?c z`^!D--{fO|mbBli2Z<-TAk}C;n4B;=jTp{=fU!zg^mI<`jq6?;qi< zze(z!;o`f~-#fx*{{C@j`@O~^{xf{+zb5T>bBaUazsyJfnAERp{=C>H{_8#Rzr-W{ zPx;vIAir$k?tk6(ANR4p%_ILxJ?sZh^0q%;+VAZYhmPMT`OKd@(qHCbe~OR&+oXMW z{d3o!>wNS#N&ULo-*Z0tTc!S)F1}lTn@{@Hi#~Yz*I1$Huko>eK-zEZ6o=&hk3ROJ zJ?!7;VZVE%&-_K&uWS5S;G-XqUkVythyI*MpZQ;P==gK9NBr;hu|HDUcjuqm{>wi4 zmq`7(>i-Kq@h|eo|64uc-=vYZ{c>r)rBfUd|B*iW_euR8E`G@VaU<{emwUwj4v+ZX z?_>WhY2UqmcH6(l$Nol-^1sW&ezlMNwo=hO{W+b!h*&-ot);V{iNCN&8cr z;t>0BjeYiy4~DLvH+a~;)W`lhY2SS||f_&|JNQu+ViB^ z?cd|0-&y^@g6qJ_&Ar1X{_92w#Y6IY*ckuK9`WDeXMeDe#?)bdvyc7dFdf4A5?Z-ORt=ldUmfmjfv}n8BPo;jCd;Y&n z2>j~5`uDL<`%6x1;D{&2|0$37M>X}1f04BBH~&}eX-&QJf5S3&PwUiE|9Up{K7ZXP z^($QU-<|$0O})!+o=pEb`8{?_|1(x-`n_zEzIn-v>V8q`xnG z^ppPnw)j07^v6qgAbbpxe(cK5k^Xa~I|M$?lm4ObF--c0+v2xI(2sX$6Quuq>0V%q zce$b;f1~3<=^qUrW27I?gvUz%IO*bj+VRpq0X`;5|0G-dMg;mVf{)44kMDn-D*e-J z@tz#?PnYft__##+Q*H5HSoEjC$1Lejx5YhL^k=}w9O=g)ZJzYcm+qzTu|WDW;Ui1> zv*9C0`thv!GU?BQk9_GbkS?BOFO>d8ws^-Z`thATOQipDTimTh|5Er^CjD1Rce!-0 zf{&}Ee+7K3l>TD)xJLR{+2Wop`b(sHEqs(p|KH%FO#1QnA+DExd}r+%>AwL!Zj^q! zbGughZ3;@3o|XRRq`Lz?o|pa#_}D4^yWnHD^uGWfFG~L&_;^YB@$T)*(*Fv4yej># z!N=>;|Autmw8cAk(f<~Fye<9j*y0W@`u_Eio&4@m!e@bSL%e<0lt;o~Fe z|5&=!@NrQ3KasAwe}M0O`b_#ihmS9$AMfFQDg9r;$6@LJ8a}>}{%_&qJLx|n-S6S! z2kHM2K7Nw^qww*w^dGaudw|jZ3w-=4{lD4b{w@0dknW%Gaa{Uwz_SCw9|(xK2m0|H zRpHW)>w%#3<6Yd7q(2heM$+FH+$PfBRJzRq;+?|iZw_t?=|4Fj?&PBX6mU-#Amcc<;8O^q&oGC+Y7j-7esEmHuwh z?Jiw>=T=YY?LEsLSe!Q1^uJjK9_dMwz zD&1k=4wwEB0dWr({R!ZnFZ~w;#CyQdKMLFnrGGTIW28R`+_BO>PP%v}cf9mZknTiq zCrN)wK-?!m|77Xn`T11opC(;(XJtCLGo=3#a8sp!Cb((RKMUM+>Bl>{8PY#Tx^n~K z-OK2oFWpPQT_F8<4>wEtv%$@getf^&WzwGqZoc#vfLkd23#Gd#AnxO$e=)dAr2lg1 z;vIvf(!Wf)SAx4-`md7i)zV!N5chM@Uo2g9k7iXsyz3eLCE#8w{iV{y_pX&m|8?MA zFa3C5ca8Ml0Pc;_e-pTCrT=E>-VzY+herRc(!EW(w+F=CUG(26-MgfFcR;*98vXZx zyFvQz4T$@?=>NNP?+5n*>E9^b2f^JW{SQeO@9#V!{f~nCnDpa&r~e`Sk4yIn>Ehko zEz-YLx=%@Wn{=O+?sjmWk^X1FeNOs!fcw1kSAe@y`gei5Tl!xB_eJU71MW-GkMFX6 zS^8fA_f_e~JG-w-{~O@GDgF44>$jx;ZRx%P?mp@NC%F5iAFo|jNk3k}c~AP^m+lAB z{ZP6eNf(a`s-^#+bUy+2U(%27!Tw(Qe*pJK_)AGF`7Ck8*NKTG&m|r|emt>c%M^0f z&LpR79ynu4igU>+D*|U_ML|rnE(yzH|vs7(X2~WWwS1Y)y=vr zJyQPiZW(Y)V#(4&iKPjL5{oMeE+J2;h5iZTFWHq?22Ph~O)d63giJ2j~fNN;$DCIUb^Z1fx^(t`I|FC`|#G z{9%(O%D}52@Ja}{vd)03WWbd?U`%yFHK5gp3lmrTY8OQ4bZ9r>(DP9`oRZx-_>W}} z;W~=aw?|>4N?uUjF(v;x90uAllqwzkiWg!o9yWc3Uyg}<;KgF{338L=yE~5(uljmu zCzL<8w~DG?1vs-4OB;0TERt2zyCSh{Z54v0#TCTSp_L>Y0n^)~Ab@l6quID!iRqBX zWkfG4t|s~$rqGKCfZEqg`4yzddvyK?pd1r1J26hgry%?guVYtz9V_Bqd}f;*uo%94t8lvGJl^~jQh4@Q*Al6;iAcd4Ui6oW?*I<=nh=@w@4_I8 z(x*F;#=AczK9pGUYe^t+#jXaB3QVC0psZSCB5LT!gfsz_C!V#8R6U?liV=3;Wg;)j zwp3ELUq)7-bDA)!$6=;1w3Ju*)h% zr#rL6Ss#_euRm{FOILolO>O;rZBX&@%|1r&0;7e~ON+}PJ8KX!;iWe0Wm>hfn~9F91uoL4uidn4%nXB>jT=yWj{jX9hE(+QeWxWZAgS^{Ge z5LrqyYV^1kRkHN=lERu5OMkZu`&_lO1}kV`7w7mOs);Ob*Ptl^+JS1K!@3We+6;WX z%0zruPE6+ftoa2o9W!Ug_oc`^Bgv+~pP=I0j7&&ei%cr)khn2xg}Nq%-oEEg8A8VV+!VFICUJM zp>m8=J|FzV7&S6xett}LPJxaB#?SJNUq+w&ED_S|jQn&87sG>p7f&29DS1ZBgpBlz z`3o~<$7E+LiosV6#pKM1!S`bU4>KgMASR(t%&@r`*#$A3!8dV!R$(T-Fv-dnK8RJ% zf}#S*qhWK6H$RaOsc~R{+To+OA_|rttl&VIIG|qun+Zn(GDOQ|(#dxS<~YkZs*>hd*OmFWd6A zwPhVYZlB)2rDf&Z9{8=1^=$aWPa0X98df*>qLH>^l3_F#DOX$QQ$` zcfxo)On3uF;AZRjhr;ZG0qBcvY>-gZ!1}y_CR2F8ivzne!|w{%2kr1{17VK@I=m5p zm3@fa+2MF-Fl@Ou@AfpFv_^Y?6m7Bv|Tm5i^I7Xo3_@Db9D1E!`CrQH+Xsw8W#u z`io?pp*6xPeHi?W?<|5G8moiH?F5QNQl)s-^PIzdXLtwE=ILB_ofLo zzLaX`P92DnaD$_Swu*%syY0q#kPfl6FyUx6=#sxcGL=l4G3bwacno!|v`PIC9DX8}x)nZ1q zkecqHGzGhbmZIP;IXqePEu36_a{|<6VLkQDUg5LApbVQ z#ARdRO9^|WjcsBBy6|k_r)s~=u|)~dASh+8Xh55(QNWUGCEg|=f#J$+-Gq(KAgYBp zsak~2+s-yo!;_ zTn^!iXx@sZUmw zJG2AcCJG>BvwMmmDkYBjn_XkRC~d44s6|`1ycanFrF6t9oJlYpO|W@O(wi`m5R(Yk zE-NaQCLLk>!Bvi$TgK|hii(KCQI5VBB#EU?o+j)RUWq*=!Wjr^ z?;TTeFtOyLkZFmd4s4TC^lc#vmTfe7D4hWH;w|BAk=W&}#FAGMcm5iVnL@HiR|@s) zB+5*IXwa+Vxnm2{FonUhN3-y2wi3Ud_~i;-VmQDTp6SkC6@o4sT0b}wm$cX2XR9K` z&e4eLniM9}$@K|e3OE6xcYgyP^{jo(91_8h zFs&KRK9shZRxGWy3VO)ysKzz@z_DLkfMG4h(mS3`-HC zQ=((_Sdz4!k5E-=YUjNQ$9{{gWZgp+&Lm!Pb~}}|uEN)w@!~~3Zi(T8Ek<`c*Ij$i zP*TYu8c5z_%k)YS1GY?0sxm{hUZ!)3W0}qpgUj^2^OWB(f0F zow5${zC3hxun}5xjB^%%n-y|gFDr^6SL}>##5Lg4GK!=Cu`a2^Y6wNyY->X0%8G)? z^6HA581OM?qcelcc?PR(VcPFn=hiKOq9buqc}TD+AWB;AWvz5*w749B5T*dAWzN+( z4TSuhbK9m~vM06V=W>#9&)3yZa(S z=CR9eY~HvlKX6yG8}QDNW8<_oRa_8@b+Tg<3JTw@3OOejm{6V9!Yx_YluPK`6*sRA zxtI9V@MqM%uL5OVpZ$W+^H~;u*TF=o$fhdVI}(Sro~s3`;1rK);+kzbCW@hTr$p^4 z@;qlF&`WYlvI>{rFdUS8q;kmnT(s78CcnAy*LQnrSdkuSb_>>_aMhn2!7Vqt0{8jx z_#t#P!*7n%9hVbrYwXrKwY8?sw&rYGo;S~(J;8~dop~LHQ44uDbSH^#l~z*=G)D^6 zuKhfZLonV-Ivj2tdI;w3s?|A`nx*J_29W5zq4}sE#Y}-czUZ1Mj4Aofv>bT)f)DUi zN8eyq9XiVq{6zA#!j(m?eE!(k+AC^BUB`gc?wN1wnpUR&=pIxuiX-vUeL@jQed(8Fx_=jwa_Hvep-UC-E}mkNUTbz;?X zudFC+Ep!rG3z3AH!z;_{+DrI9bx%$70wD!3#IFy&Q z3`^7p^dW|EB2IS<%1`{pmaFvtuNo8n+ke*8fBq-CBNI18LtshtTO69B(ddE zo%d)wZV`En?{tf(B=mNIS6^A{eBs};BKGcyJTt|0JJfOe-+2hKZIk#H>3K}@*XA~V zbvpGIZdul=-JPI*EjLC^bd0FGs)pvV@4DWcCHn0~9CG%w&fN&LRi03d-=g!{l&If1 zr+1nCzqsdcVzU;ts-EKB`-j16UFiP*M%E_RJLf3;cFCBsEG&R^`nfb?^O%y)o!`nY ze!rk^v#kklCd0=Y$zw{sWvlI|!>7T59aPM>@pbXxAXXJ}!M-fx5MQC6$nFSmhU%p( z?sw2w?Y{Tv+&IK%xyzgQQbM(e?$Ro&*~(wkC~D|OM5swZ&9O}`3e4=B95Po*=Zi6z zk4AghXcVfIve#UURbv&-T&kT+b}<#_G}VXC^@#%?G(GW@Ds`J4vgFI(|HLm;vV0Qp zt&q26_ENJq*RxKbnR|TOrLM86K0Vg|W`FU2aeMl2TltT-mD*cJ`HA&)C(_RT;yyXp zp^I#u^LVdz>sTZ0NjPqcMwKKNie57{pHZ*Au?+KwrQbD}|H1c}YVD%xQChL?Deah$ z-FI=F!1X?vq(eS)-oKhAoh$z*?Z4M!j$Zrx(PP%;I$@h}DA94QrK7LnR?fZ$nOMu$ zxyn+aRYe~*epoW^;^fNQ_9@VNLFtk=@~ zWseZr`(DT6y+ocC&@yZ)!E!4p{Lg@*3<7N)*5@qgnv<-hSp>R-=Qzs)n& zk-4V0J4Kf5qHFeV`mcjM&t&R<8?M}ImhXG&C}*FZTb?!Uub9(rZI!dieCMn(dnxBh z%nu#E<5Ob)*NBM(mHBOynOEI;9`}oJ(XSxJlzhU!=%C&;SHHUs{v(`chjHSQvbxpv zrhganttEB)upLE8ee)qne(%cpEhhcFh$@&szl^V-G5<;z+VbZYB5tQQD7b$-T>qnH z(54E%^))1d-dGjSsQn!KR0J@erVgq2i$dJtT^UaC%4<4-M&Iig<{y-v<*j z#Y3ch5FX}`y1P%a*N*irDXPCWFahxOv27d>ng53%&HSv>Ty@n;^kiHA6fTZMS&Xa50q zUJymmK8QszEh2_Wqcs3a8^koX!{o2@#k9aGBfKXgDoQ7&nJKB5miSK72G;pl(p^Dx zVLyT>_?T1hC92b+I?!(xP79Md9ZvsM>vw32N)dwJp)~ur?_E8P+(>7ybs) zAEj%F@JG=b*CCa+i9p(|e_sXC?wBg>jyZa^WA!{KLo}9)Z7E5bWPTHh?oPI9WA|Gsj}C1jjUxKZ|na zDvX)%t~TBh?LDhCM)&-4K;fna^kR7-ZnIhiaaKEI2yc6o(htscY-;0=BT%$Do)LJR zqSa1I&LRmZoqZOHg}09m>g)l=I~cv|?fin-knLw}v8;ql`~^8H6`ph8FEFCovTQ`{;Z>S)6MkL|!W*2FvEZXO z{)>O>6&j%0Y0=Mgbeg{QDWEQm>U7V$;j$`s+AyhFdGAH3q)vGVsX>(7L!oxc_!rs{ zk-oiWxK6+w$cflsZv!Wa%CS@OMcY(3lUw31m!5@LLHo)T}@E4e^@<*ch6G>JDAg^ka(%gs8$M6%` zp8$FY89CJ&d_sZ80SFIDbqV6nuULryoDRSlL8U2-(&glSARHQW7!~NN_&E`fOM)Iz zdK*8J-mt7fKratEqx7zd(hUG?(CURQ3-96Q7J#48u@=BV{Coq12fQM73_rgPir)}5 zsErNZqMse=6h$=y3q2+xltVu))9Ga5TnoDviwGZ8%0{ysgbJaS5<5HW`er{G&0grGjxgYz-|+H0nB-! zY>RfRJKaYddnpiBD3bX3!A_3|XdQ^})%w(D3e_zF-v-!jXJiGwOW;+2edEAIBv?pq z31*-X~+;2#D3VxZ<~y3Quf{6jE{fwk7jWF-7)3y^FA!t;$n zS|(?nESUR%^|5A_nY`&K@SpH^6dNo2^&ZYZ`Uui#KIXvBsmp^^JZi5GlhafEl_aYHk=;; z|I-m^$!Q*@Ijx#N*WZL^k>tb@huZI8z=tW0gyRXO<~t3bnN3t5I4~o7w$*8<(OwMD zm0DZCiAH-JKzC_v5%_q5ix7Sapyyn+rxBcq@P2?kaA~I-?V|ww=F-kI+AU#v)4His zyU;`}4xoW9c&ULW05rt~UtfbyC-&3`8} zSAqBjuaJ)l`~kooafSQ`K{&42djNW^nKRvu$vFoz^)rBuC|HCpIBm&^Mb1fJuVs`Y z1_RRypgSO7lo@LM<~M5WW&h^d~uXBEwhZ38vt4tnj=erl`l|#!AVn{}=Fe(=U zJ=Lk=&dr+*y9k)8L)nt}s3G11q^(Y(J6|gr>O6ZBm>+BQ%7#wj?Y-wmX+mX$Q7HoY4IV0H zu@%k`iR)}QG7MR zX)4GYO+7nAIN3N2@b;%UClWsyI3A!OE;vX(J&U_z_GEx&xZqYN>8LIQs8qphX~+`R z(Xj6W=98Mes@h3RFvQn^^kHbQl6a9J{tTpstrfA0?IflfVtXLUz3g zM6WQ!5kQ)9daV(?mZcwmFhS@k0Jsr-J z9y(?TVn$Lg-1$QETJw7R(JEXX$k<&HV%uBReA2&Q(i@W5B@x%iw9DS*Lj2qh=4;^Z zPmIP?z$7?Mfu}$yZQ3iaQR<{zT4oPROErlO1F_yc7UAgz9Z-Q zMsK21el9s{rjT>PVsdW0iJY4@le6|Ua&G>FoLjylXWc24=-fJpoZBuU=k}|}x#JFU z?s}Y@_3w~#&v)c(hpON!?!+q%N>_E=0q2%nINzMz) z$$9Z^a`tQ?=cRv=v-c=DFQ4*HbYAI4&Z}d{c`cos*RLYyjl0Qt^Eq-V-v?)Ow+Q=B za!;~P+mCLfJ&@dJ8{;#&TN@iQXLPrAb|JYP?9JqMlzL}Ny-uVjYIpaO?IUN&gXiw2 zP-h?Pd8QJaO4kvB=bb6fWxAhERb&A?+fyM7J9R%kW?W`zm zfD@(TobKKAan7pv@+rZ^HANeBu~I*TiE3ll`dLC^z{1zr}WY0h|G z&MeI-)Eu&fnI<`x5(fp>BXXIEMJ^$joe#R=SD-U!uhJ2U*V-95bFA(~S~G+ASLkO! z6Mb2aFR)t+VuWPzuC(7gTb1TDc5i5c!6qG*V3myxJlL+ID&8^*^+I^I7hw#R>f&9a z<2SFP1SE>ZyH=yuI8l+fTXpenLU_e~^}#ZBqb}YT6h|UY5Q2h39l0X6AP&h&K+qVH zYnOOgctvw!eK~Jy&LqttTbOB*^B!?fkd2({O)NeVH(CH$eYP`xpP2fubcCWT-p{qB zDBiF1v!Gd#J!9AIN2m9Ca{4?(PTW><`d#=gI{j0~88DNa_yyz)`hh5e{~+g_2oj!q zGCAixLe9`F4bU0BlPDwJB4^|WN~fKyn7PSYuvOh@}fqs@pN4OcS?7!iTL?SC(HUL`~^M%UAi$P z&i;F);O8MgzE!9ME}}Z$8LD(=1<;J3*A)E35ZVE77J`Qmr1xa^nn_ymARVIB1Tu?| z2_T)J5c^vLQ&HKM0d$3iS9Z}b&0p+tfNt0DPpI9M;Dz}4D+-_JEPgeV84#2unzA3@ zgU(Qdk*mnaQM};PMZ#j*A>fq+w*;uYf^7`Yx?f~;xvG{n-n$#pMdeJXfN#Z5s|w(W z8nS|SLAFQs8kLPnjqEiLA0H6>1pLG-uu&-cq{AP8S~6)~-$hMl?2Df5BBwLIqm2k8KXh=bla1eX$gfr8{Ur6A7OBV+p|R-x0s@Blgku0NpC6xE}BH|>wR zx2ud~RKMhDa`yS^RP?0eS`SUO4D)rv%n4!6KFFBI4D;i~k~wX$WDZ&cfapenDrtX) z&?rDFviFs}-a}`3Dmm9wkW=yzIe)7mr>x2Q=v;ROIoA&$XH6P8H!UUS<{Qbm^-*$e zdzqZuza;0*lRiLaeOGesJ(rxnUr5gV)5&>YAvqh@lJnq`PQfeW6n;g{!bTsXQ`CW+#RJG$Hj4a z0XfCRYZTAKsPdSdA+M+zu7+P7P0W!1kXY5;KLU*NL-O zSU=hTvys2r3@_0=HuHPXeEfbkRS=4W|+q1JVhK zBl_gH3-A+}_N9R2B6_z$N8=|2wi-UJ)9Bx9yblpKPQwqt$0HhUl$t;r1Xd7trA2EG z^m(tR%nh8>kq3J}1>e%R7p&}_!OM|i+7`G4KWQ=pNZ{|7E>f_97}A5{qGV+2*j{p} z+o^Hu<#wkgt=oaX0$-!n&B3?HPQ9p))%SvVeJ>aYkJFL489Wb(o~7T^fPEc#`=ter zL*FMKW(9B5`C-K46 zTWvoJ=3CfFSgrQr=TG0ml&-f_+^1|me-zsme7LEVA=KcHKyChmrtVPG-@K`fkSgMD zxE|KeN9(emZPmu^3(+pO&GSg{EK(KUb8a6wRf(so$o5Ql4h*GnG>BBO^AaD6JlonV z8cO^Ksh;pkAC*Dz7d!=iv6hObp5!46YRo~LztGfY@DiM{h6%#;G<&5fkll1iSo1j9 zz?zENN%q%(AHx79U;tAvLjRz!n=TgwJ2Fn9mUV-OR@3B$K@8||L7djGO&ms==H_9s z->0akhRr$>C#TP0G%5P>4BMImqRZmsi~>tA(5RCw%aT#Q?qyqRfOdzXVhIW=m8FaN zEYMz3)JB?0WhuHg6N66`?|f}tlx1*GoVvyy_Sx{hG7rPPpy>|v`(a<=XAD4R_r;?! z1VmAU9mdc8N@|NKlBf+~PuaKjl_ONx(`K_IY&-KmLw+%=hSA&3t+}AI8bi#%5Xbe! zrqY)pijk9r5w_P3-qlx{iVAzp{tdeNCq*zn+rL4W5!78;G`k03jeY(b`r#L{8X=-^ zh#u(1YFMQhd?Bn;;4iQQV?cUz6dAUUU=;M|heIZABOcV~0lg3(4ah|b6{}=H`A}1` z0bcAy`HU!7oz?(+zk^~vB>6Crzk-a|0mK({ghXn@R06-B^^r=AB`(c|iHoV<=|p}d za`=(Hx)$&6*&kMX=okCko?g}R!_H~&B+$EIRkFgUn+`jVHvH|$AfEw$feW!#(o7~y zToX$M!6HEHiwrWFkm(>;gUBpIhNX_pqCF78s1BnY9*ZDGR!8N$0T2}&xm{8D1W1Q4 zD)Zb?`SyEUumC079hCwQoQ}v6XH;wz6}01s%F{e5uV7TL-nyca1@e6O3oLg>-fY4EsDt?ebN>U3!8U%z3ouut1&8G@dDiAImsM5U0 zB(hz&Y7BuDfS0I%B-|lfwTQq5fHtZiBz#u5uD?40dda2TDO^?JKs7+0yR^H8t11^b z4p8_Yr*@BURqq1r06J@s($;fo^5B}BJcDSAN$gFH0z7@FN)mLJqi#Z1^Co1Y__jfG zMA+H(D-ibJZ*j6F>KIMxt(h=2SqI2nXn6rVShOL9{~iO;78E1L#KU0&E3R&eDTAT@ zKR(TJH^mwt{fPm+=5C5_gCH8T>?(It{0Ibn5c$-ngF-uwrue3b%7KQ>VVXM_Gr;PG za@7PsZirbb{M8LHHNyW%Lo;B0+YsxY@PF43+obUS*znYImH$}7?n9LS_lCW-KM?G% z{SAXBU94Jc6T0#gumdnJkAT0xSElwh6@vhfOPEXWNPsrL-$ta|XwU^>N(|Bp_}k+`a|pc)1RnwN zskSW8g@j_g`5pd(LzHn^SbDW6N8>_0+&yIv#dpuA855a%wHt}Sj z6X*qh8lp1jWtu}af%vtBz&pcV;AC7ZwZj+-$|ssK6yVXCau!lD(+aGx-!x+upjpm9 zh|!d0++E>$C7{*Fd2p$U3mGF1HLha#( zGL9%`1M~p=J*6peLlsXnv&qDJ6{Pz$r)uv1YBs8Ddm(HSWZU3h&-)J*nl{{`LH2N! zPi-i}afR|GMCPCH7f3X@a|WSbg7hau#{Q_5Hv;ZLa0CQ)@^A&yl<0pk^MaUZG9inC zxLYII;^jfCc){g5W!LCI976UohQfbD?K|ut%8``+^>G z64Z7ir#+}-p#WxJKmC0qRNkYwe#<8FHBELwU5F4n4!_~&uh3(61Xefr3!MIwrM4rE z<7YVZ>B9j?M6eTrqS(S{jKLj=nSjjEssarXid!4Y09mPZb;{O)=yt87OV%ni&hge~1tguTc+_!@tP1OthcY>Jm;Hx85-8vBLzd-pv2x6Lr|HELPpOpXO;A@$d zB?|Tvac#dt0^YHOxWr>z1oSTfodewF5NyL8ZV4BU<2{Qw$lFu6X zbHIOdaBS4|StGYhgf1gdvCEHou8{`v`sNt3Fg<&TdtrL} zg_d>Cg}4J^s*GHiZUyl_6;zLf>9-f+;0vCOx*hZek^O|RAQz_5z&dlZvhcJidA2Y; z2k_x4w9tj=#Q>$LAZn`^^<0?#IEpPyDg)dBNHkyTLiwB(x(?1|~ zVGuyz(zfn}X*7t>RFGZR*0nJG5UUKp!;o@$Ti3$$EkLINlIlXm!t@#tECOVyw#*l% zSZ~$>vR)fEeYdL`J8CrQ`7KNnlR_7!&60c;rl!@@QChVxOs^Yj7N(g?*uoSmoL-oo zdm&qxHi3uW6-j1cIui7PWl7G3>3*n9TS2xH{sJFh?fe4k7hjknJ z)P-zenqnRXge|_%wJ<%7Ct}AzHynZwg#Tum=1v%LN~m%=31B@1kx86y?l%rUzlcLd_l`zY!I<9y%Gd%5Gh8)V^N8A98uXe zo-HbWo#0wjzP`t`sO$%AZwauL!(ZTOG{P2@Ljk-6fIAU4*s~h{++=`QRDKPDeE`3wL+6Xi zA3*Q}AT@~An3gCOm5m|ottP3U|1_{zRCWWXzZ2$*$_B?QYb?N1H6>(GnFY{N4WmNn zq7uV>6gayl$>ktEge)p40N0|Dij-PF@c0BhMe1c=0P`VHmc4B}8;TIu0pje-a8q2w zPrP)j2{5DKFR%zV#2Gx0;O+qRQLxY96P^)h%R8B6oN;T*Q`@>MuL9-`7<4Kohrz<~ z{Qy0zVDBkC-L4KZ?>h5}p55S5`5_PdqarK!T?8e20I!0F(O?z1AGzW>NaVZpwJ)lF zk-fwnjNU*!2mS(2;thh02UY!yj1~BJz@}^bQGHP&atYzvK~Mnjm7210vZfSk$}IqI z(3HC-tBMpUF6?dvXs3oz0sE!iluYpSp=p^F#QPNDwsYi;JP3pCeMRmf$uFRO9D^uF zZGr42W5fkwvjqoRI5$r^4M0mf;#tU|IT}?!y>1?uc669RF zsnSS;smch2BtpP12-?`+*wo)p<=SV-%7s~L1+iSzRr)%M|86Zx_{i&Xq zPJWes5lF9Ah&|B2;wt^k0NtZtQ3dA^Tte`6wZlz!G$;t%WyUwLPBoD#hRH>@M=PjG zlX4-_9TEH!=na4txa&t(1fxNErb0yMJc0uN8m?dwLGh&~yK#}7F-?|F9V>IpoWpp0zwBwd~ymYO444@kxwt<7kY~XAX4jwL8_F&wP6nPf$@=qh>jkSoO_A=bMr6o*6to=7U zLl?*}`;LooPDKxU4{43z_EwNbiH8wHiWVeY1ymh9)5hJkxVsg%ySo&Z;um*! zEAGYJDehYI;!xZj{`-FaIXO9->~3ZI!Q&htF2l3SMFNE)tUL3M#RK_qDxJoK*bgwdIC8@9Qx#NGh9OI*U)3- zDjeUFmqYF=ORNxT_!VM8e{&DBaL=Gn9haO7keH;96Ar}U>Y5zJ>?Br)RLuOmZDjgdvm(KRU+_fxspbJ@+#tXBMhY`U*Zi;tCro{n4!Q1$s9ZlZ+zC2ogM1w>oQZA1EiU~!-6Ze6PndX2 zw2yf+A?70TrAQVfy^b{(L0i+-n!mN(UWn~j3;Lc^am36{nZ!lTH?ZLcyj*L@baX`= z3TDoV{nRtU6&uNk>dqG>V_F42s~@i%{<}-|4+MetDs9LAV1;x*gOKv`FW+KNT@>9R zxj1~$K$%fgCN9d&2s@^Ma#od<8 zz%@^ZrheE~_O%&^rUlqm-YZ{-@0}n{)Hh@iR7*Y|^8OQZfCJ=ZH6L4sa|dSG7b-rK zEA~cWgA)2ep|E5~ui9j)0nEC@Zb&|w!0r8*c!VSUL2sBV2SXQ9M}QOLM-aYM$`0|c zQ)Q{Ib5cZzugZf>V5_pHRk!XomV3@TwSH#I~CqK5RpKOQRIg`};nzKO(KBRy1 zVSP?Fi~h>wI%Kc#CeP={gVizo95`_yXKB1AQPJBm2nQjOOrI54)* zOfidk^^w)M<%~x-4d_!R*;(Z*voj5}bV^-~$APS{=V1%Rcu2)zUPIhKpR{^grMz8N zT@8{m{yyX3)^nHzitfefkr|jzc_@f>^EVaexm6O6wr(Rp0N-{4L!n@ z73)Q`CW{dEC{|E%RE8{zYcIgkNl3&qkYG4*}pDQOn1z+Tp^&&;3dn{^+3J>pW?Nt@@hUovqO?f)2 zDsaJAjPPDvy{>X#>9?ZVy#78r2L1~Gc&jQHZ9;}@C!WIznb#6!s3+Rl(~P~T3&wf_ z_}MRf^~crNKpn`8UONi{W|}n~xq<>>`RjJX(wrVZcFBZO=`zQb%D#aejH~`c&3`SG zaRtz!-C~kOvjtz7+y7E|AUo$v)pDjwFlW~-XQoU0h1N?gv+t`*4B58Hi!GMWU4@m6 z1YYC4bw^+G-TXT68pICX9@thUyz?4N-qJ)gRWNVzN89E9$uyN&MA@+jL)X8j?ja$O zz8$XI8aTkaJW!%ZFYw}hV`>!irLH4X}vEjk}oR}k;@*}W*RY1Ux zDvRrqhA%~ba6B!H#72nB|H&V(#)OzHH8++o@i?;Pj;2qki&{ay{qa+c zbm@D5+P`AU4ybi8zx_HinGKV<+WKM6*J~e#=~#n_S?aYno}lm`28RhKmH9E0ZCHCi zyk;^ng|gYtJAUEdN4i{_P)|Cekv^!6Fm*o_FzNiAG5%VuKQn<5m$@BOmRYLN5^{~r zkov0tJAR>L?+ZAzNv)cwR|j;x zO4YrjRwOyl2aXZ%{F@(abP*mw^G_^+;j>C8kV5`(&EG{Lz@Uf7I>_e# zw|`kTL0Ue=n3rX=3|IMzn58Wk&UME~*ZgfFD)w`nC?{vb5 zT6EqB`LD(VDUUz-Djh)yf}SQke45V*(@F>wO@apqZxKG{=p$PuUPHQ)%Ty_>J6gjP zshf1!hu-r82Y`V5q@m-g^IzmFbCy4odQcdaO0+=~(6FAHLvJI@ z))1CTIzMS(KkY#{ECeBYrOo*x7kC;3&9Gl#2KsySo8HF|ZFz9gCoFq2T4fU{73~Z` z3Q4%?5=_4Z#_gN;9oeGkSOy(@+5JJD`Yp2N&Z5it8kzlJJE)#-=2w><@FdU>&M%*e ze2j0?xd*aK$~6h4Oge*g?eICx-KS@_i91nfCUgP)D%4N9c&s4ej{f&1A1VST*y!vE zB^V&=9_R{hthOaNpP8TQLH2&z)=?P-148YbpsmA^dxnRu3<8C&<%Z8qIvC&Jyau5N zV2%W=fBX^z8FT~mBE?^ksUXPoKqhvbZ8X4~_P`@=;4Pucw1f>fgpDsy-3Aa3*<;|^ zp#m+-R6iihmC_3NF-w4=iWY@mMsYyjr&%a%-^0Zq3r8SUHV5*1PBUr z)&|tn7ed8zCLnwNFyVnA6XZvZeZ06gwR%64D2_Px&*0ur+4RZ?rtt$mLHiMTd(384 zb7IyYWRez`vUEgvqd^|)!tffvU?##7jbTpz3r|Kj!c_@!?qA-?K3-_I@Gy%;tk<_s zi0elFG&chUP%_L1o-r9fo#IL(C;)x+Qc1tA-$pd_lv^P77m&x>`9zU4%K*-3RBfTE zr)@xU?tcqR4~?jL~kBn}}>RD`!E zw_UiC@(DtQOe+E*SK1j}#ED_`C-LWk=}%%ONAlgNR{r?CYmQVQ;&?q%w2`?>0pgL< z#2e?FtuOno040y5ohLMF=FKafP7BXLkZ=WjOk;Tf;;1hNuYJ=p2372tuGdt7dh#SW;DfZl zR!!oOb}!`wrP;NfvK1=T8E;l0^ri;)3~&!{$^E?;W)}IyJaVEhVWw7^9)NJ^N4xNl zuWO0MN9}FhC>=c(`uRkON4r+gg`XVKwU}crtU`nc_%>LB2klQ#eNpMaQqI2?>Uq)I zaEoQ!Bu-Pl|E^rGqg7sbj{S~h687|S0K(9YMkk{<{;Wzl%YmLDZ--lue_-=%K!;lWFPDtc=tDEZkziX?n8mpnN;N%v zIV7V5>-X?It~Mz@8rzBiRFzBY&)S2?_XzP(&nX0E4!{Owc!GPh6Lw1j683hHB2Y@M zGLh(73mKdq_JtM#*;+mPcD*(aWSy_y)Axgnz&ET>Bl^Lr^!>%B&uM`;t#MaB$Mz6A z@Um@<>T$RokUHBL7_d8xd9-Wt)uk~2x@!jsU2j)k0E+J%^0H%qDo4P82nuY{s`#$M z8fTpkp?XF!;|$!|X`@`Pbynk3pieHDyf8!S!A-3pom99nc? z-7+t+$oJEcRf5sx7WFqQK`s%Mr3$WALf* zRU~6gTb|tLMm0vBA-15qXxjO909BN$OT%{2mw>;F)H)je`(&~xtcDWyQCpd-w{ICqX5x<1pOC_U(x9M5OQUTo01X1h}0 zfz2|ce-_Y)Uad?gBcOjoD|3NapFMxnX4!Gprj5`QdE(^f1|bF*BH#&z2xO1$l#}IKy)_LsVdXW zrOJ?|vA%I;)L00!@sOsfK=)4g1(-?nc}LNTZrCT>k~lFCyiM>ODTWY}dkT!O4Ap#o zVE!Gif$oH)Td=L9TG-`Hcy{)3b|d)XPyb0W){H)eG-`bR8V1mLw>GD z{-$=Qy0uFl3uWsA1BulJNC(~0$>87cltl| z1v7~p3J+G_gcj%_HoJE{@N_vLEVmlGl}~uBD_#mfW{`EIrEX-U5U``CfMN#m&!bzK z5!{-jH#KNa10(0QU@X=<@W|H%T*o5w0r$jW*z&(a9_Wu4Ex<0h1G3yBmj(Cv6G!COsG9h7w{vXCX{ z9zw8~<&2$M5isNpdBxjpN`W>{DmhKj7qA# zgnzSOy#5h}v-l@S?chN63`}U|>})_jK^qc#BxpiD<#A7+nZetTLEmMDk-*#Z1_R#U za3^L%nwA6IyZRH6Mnu=h`>=A_Zpl&0x`p6vxbBg77{FQ%2v})ce{|$()VqV9aQZ5| z*U;KrW7Y9whD67)@Dt`PzAryFl2_9RCf}?y+IfPA&t5o|SZLwA>VH!c1$ugKm2;P zh5cvtgl495`Hm*-rYCbMT2WM(5aONz4Sx;TJZ2b_>W5sEGYB_PVsBcR8}wh+agC4^ z!!!yl&o3ijE-pj;$!PBd-KCXH~h@$ccF1kpe5lg56C!WUma?7m_p zv6m*tLR`lfX9O@^>>Yo=26F6 z`!>vnuqMpE+IrOr%{@hffo!Fe&#Dp8cBqd!70$M<30Cg(d5f=|#<-fpfUsyhlMk{A z3ST{zqbk5Bu3GqWox!`rOWkMb8}AR{O~p`pDY4~X zgYq;Bv9RJ~8Es6=g(QkZ`|84v`pUunwwdk@KguF`exb}HZgXn5m#UDi&j|IsgJ&fXz|4&v0rNKWHM`^}+#X4jde}>sd_*l(-Zf{yA z0><>~+C~e?3~xbIx7z=fu2>BZa-YZZO;S7OuXkKqZN&Lzj;nFX$n+`;YY3~&ZGUzU zwF#x|;Ba;nsmRTZp*?7S<{l*ouZ>KTtw&xphac4CooaZV)0=<&2zfbF3798UMYCzVHOV=zoO@$Vf)f zV~#6)gZ{Kh49*(^B)N2>bn#aE=|?~5RhbJxKO8Na%TTMA{D58!&{l1WWXPyLGJbi; zX)gXlA3@j`<##{LAyIs5G7IZsHE|yC8o&_x0UgL_@n_u>&WIbhLDcegU5x*dcv#ZY7V!@Xxs+@ zO_pv^<9%I!Jt%1Vpwg1=nC`aGqa6E41=nfQiFX6!)EUyO>so$p_D z=mKAAK>OYK_e}L4c=nvAW_FK_Ya#&RB*yn5$>0mC-@tCaUoOMC=R18d_)CL9B;<8M$w(-z|a}-miDg2lE~pwhf(#{?`8~0isxn>CtiAQN@?{4)SC9bSYO> z;PycHZ`}#3%W~hg0C1QO&oAwr&^*B0Bs)Y!YP;@P^hQ;8#Q2q4rY$_D?)UNiJD~=^ zHUy-CcanWwRNm>}%xFv8>#fR$WfeFNhsO3Vum6|in8pRJLSO?Ho})^tiaPB9@=v!9 z`L2>s#{#+{n-Zd^$Me`+3@hF@gIYCHL=t|2%{`GfsjsU?wdK#@O278~A(sutST*F_ zNDG^Mjq$>8$b4k$2XT3}{&H7B(#ig~rdM{Qt(`fkpPS`AHVw`-8c;>p zohux$66AxuR97kFNy4ANYA923Jdraj7u%6Li&?#1fzYL!R7VkSDF{`+ChL*&R_acF zs;n|1+DB?8X-uhCG74qP)>>2_el2W4HDTAcPVsD!GvUHF)`NsZMElZ&5=nb2-?Pa%B?0> zC@o1MfO{LM1~7-e|K+-q1=Xayp+(K4MI7q&twVnjRErRfjyD_$Y$}k{2=VC8u)IZ-X}V znFvz+bc2JZVj5N6$OX=h*oRTPNU*lB;t^_cl;s<5q$gsFDbVH;3xP`O5=*8Dn=tDI zhOA)c_rxb8;joD!%^R=h)Kr-0YwJ!xTLqETHYR$nG{pmoe;a`Y$p|8zGrSG4k;;u_ z6B1HrJ|JvK_?~ zuMhxf`!fgwti+!LIYc}>oo4rVv;=R2)t^S#9qb<8J7x=)4uZam*Z+Nd%2aTGor8LE zaKO079TG8)^$51EG{=Joc(&7*ZR}tS!%3aw0rfJuaAmpyU6G!Sa-7!~a)bjfx6T3= zzNgyAg0wd5`&IWk@RQYUx2J45T8mPIGKm^81E9ZjV7<&z=F8yZx0!IZ_V21Yn@X5j zxU5-_q33+J7NNNL9>C8UZz#)jx}cJvh3=&@50qy(1ICqi%_I;8Kd*Nyo2hC75vP05g}`j_(<}@ z1J9$wPCoa;1E*yBghjHf9_9N|;@M)d_lUggqvizfxOjtZ69~aUZ*|($3IU}c1E#$G zdzF)7@emTj{4ONr*1ekf)~8(Tl~XWGpQSvZwfmd1CqIw~{kf;(J_x%~ec%^bq7~9b z8WLQK2|9ud1slb*aC;dIDkK6n=GZg-n^XZL&T z^?ru^oEg%@Q=n=}c6HkSja{m$SfM(ZokgjMzA4(stuPMdm z!W)#WkBO2&vaUx{|MdtF5hde8NfXge^PZa`D4FiIND-=RRyq`>n_RD>@jFz$-@ByD ztXaJQzg{$oV#l%GH0{(^=fTRjguXy;7InN)QMcFb1MS}}Sc~LyS4RjkC>fnEIy6^+ z)>ttp{7K7aNVVWRzD;Di)(|nu69JimLFz86*`JsSH>C+8dpwC^XpOf|_@9tGf*LBj z4(uA4Z{QVKUqUViyc2Ce;rlVRk5wYlLK$79d{Z!Vcp0u^P5(x4%3nshXHb8A|GvO{ z4Qps%DcFWb|AL@&kBn0j<_l+UtK0NJxBk4?WQ}!x%@IIF%+=n@eo^ZjfW0xe^HJLN zK9ILZFK6_~Aq-0sH?WNhfwr!|x)ul6hQ6okXRl)Purlowi4gErs7AN&2U#C5Jqd>aqDVCZR z_d>{KO{0k`nT=oe1xBpy4`9kdnt;^oy` z460(yO!8v*THJElu2{P~{4Lt+BX4Mg zLRq4V69Wl@EK@$!5Y&^{i+7T)_Ie)i?L*`-QT!tYWw704R3rm`72Kn6);?OEA))9uhPV91mhLKv;{(Q z-GI{NPpz1JwVNw>y%cgw&qw5U4CKJiCR9o#@KV(3b0v&OMs(?*&t{c*{U-HsF14`@ zs1L!&Ut`o&O_YUV<2`$U$(7DnLHRdv&`M0eWZ1WUCBPXBOErQk?bQ(yL9;CQ(>{+6 zrrg?i&|^x?>{eq_YQ%k3jfPI$U%AYC54~q-tgi6L+8HyZoy%aT%O7d&V~$MuV$7VR zPqOrlQ;tkVA@rK?4wc??@`ww(p1~Q;GrsNXuIpWX&ScR*gsfa4tM+-Ph{|Gu55!qAp*w7P-6rRn$IN@) zCa1PWxXzakeL*d@FS_AJGXwlhL`dwUf!dPVLl{4e5c%0Ga$JgW$Ut)VKEpq`=&oIY zp~MiX{>cfo$%NBb66;H1C4UDiBcxZPyma$dE#ii^1hG^|uLF7wy!Vz?v49V7CT-y1 zi`1B4j#=7wdmgkj2SvJ|3r6wpE5hIGhh9!pWZeeP`l$XO@(B(wuL_8$mQ7c=FS8{htZ{xX_52(qT3oJxm zyR<&Ob7bPZ`!l{xE%}^1FO}|i+$wS@ymM*G*6TWq+C3{BhIx;9l+lfoP4Gh17lnT& z5Y~em{fni(^OuZ~#M8d`py}~t(I~yKavCLFs*F)&1I{W@G3lw08^@hN->1g7N|QTM zG)gX|Aw=c`C7=8@K8%H~SMLKQdq`!~zP8a4v3Y|V-@mGatg_2wh=(5K&H9_7gGgJ! ztKVkLyR>QL%lzZucn3GU4j-L0y28-Fxc==WIe(HEty6T7cOB=+>8Pp7B~-ak|H;4J zmF_$eTucz1v{83p8~mtOb#H@X19=vwW}b|7!le2mNKlsATxs=Eqb54AR|?D;B2si^ zD&+-C<|ZXy^SYJSHL_j9r|zR{&wDx|rQuWOGDX62fFR7!P4LcY05^oAI>FL%fIGAl z9!D!Z?FsOZ9qmi9J$uFHfYckxSIzN^tOF2xWzpvVzIVaMKx-B#*omzl)<{h*C$f(A zIybZ#^ho+HaY1eGuX{ltz(}f%Xv1+}qJDYh4Ba#Y8Pa?6%iXIv5uki=_%6K4>9rHM z!TIGWre!<($i1}a9^UV8)y=vwkvI2aeA^r>k`fYy?h`K|U=!$4mt{L>SFsF5r3(B3 ztiiOgbOA$~1?HRb!ZXA~6>q((syQcRj*zi-*0c$um9a35BsY*i>*bL%)B#LjWNG!P4 z8{@+8&ox;O^7)F>Ze9!?j9Wd-HcuT(p@cjIQMA);$izDG2e#dXX4F2I6Y3Dsyr+6n zjDnrk+t7kJt~}pujmGOFJ-F%_*H-NrK6y=f;55fY6We-H%Cx*20=c#8Z&?ozO~Iyk zjeHkpD7tU$3?{Ms=8F9)9+_r}FP~t!M1aN>_o-KwSdmtz1Q!WcZ8rg0sdAtK_N`bP z4N!xlWCeQk7%-9d23vHft1?7_b-^!w7|U0bDGwO-b1$A~-&&qM>YaW>XX3Y%nl$jTKflcW{>ksiit+X!R+t> zjpL28%2_gMLo=^cR1Nh|r4}C>p0oBw3L;D8z;XCBP{gB*$rdt+nwZmJ0M@V})Q%C- zp8QINTN%oj9p_eQb@rU=mFv(!;2!r6&;o_0zuGMB=Kko5@SFH9W=r2G> z914hdHUew^?GK2TYwZV$HeRVO8WrK#~IT@0gk~H!?+QdGr{)JR~scMHLAOs1Y6a6(B-%Sstdr$J1 zpps`fVIB38z4Rr6xhaO*tBTxrN}qSLB5M00g>vGGoFFj*6i@_=we&nT z4aD5z|jJ)jviwNExuvEGM0hAt>SKC)=V+mTlc4-j`dMzy@i zuinHsa-YP_j_~in6}h6BI(3J9_~~b)@PilWxm)2Bb<ze&BZPO! z3}Kvi%t@m!@2ZnVFz;utw6O!TGcOrZm~D_ckasSYo(6qOL!oE-jxmi5inVd`cFMr za>mQc@4JN+7qABo(*f7GyiB$7njzYM$dcWN^LJkZ3;TV~nLGAlNg3Z2!5gv03s4<> z+&|EKTWENlsjMU7<+-BEV*IHe=3yOLRXjrf>=ynS8N0o9f2HYKPnF94y}ibjKzzR^ zN+dUSE)EL80q1FrH<< zV%5NntTPW-qIG77oga04*!TEaIZ~h}3>O>I9y1@cA$BmwqDp!)X_3Ns@EoxPK%#@3 z)D!b>sJRxOk-Hpx4Q-Xhsr}kb=0`C=lb2K-?jdtISO#phS^AiN9aT7~X_56YLzj2b z$3BTwPTqpyd$iUy5)xi&${bKsMW`6hF6}zUafAoXs(OE8aEiM@`xNz&ev3&36ajVx}AJf>_xwXeE#Y6Yjkgr zj;ZTOJ8V0ArpBu+n)jyrTH-Abofl@u4)i4gH>**-Q8Gx3w&(adtcP+4om3(e0yTfal?5_y_4^e)LD)Bv{qD zwad~4AXEMSaXEcGqmg-tu({d)UiLd?p}?zx-Z0!)-Y0I1J_2gWP#YQN&_LXb)O&?A zZ7V&c509oE7gjETcRZzKOCWITq9;WHW!Qhpj->>Wdtd3-3o5r-lJ$_q4Ff82pu!_1 z!`PScq?;);rsu=S$xJ`FpS1DYFJ&X<8Gb}QQek7QlD!EtU*5O_cmO3`uO)TA=?$S< z8UEGd3pA0MMi-alA);iQ=}fc4H`@s(OV z`m6rKKz1A9{qH=bg)k6|#I#g4U(n4?-Oy&m4zLhAw% zNz(f>;U(O~ocLYjK_bVFd$OcI#i%WBP~w)% zr7)-msR`Pc{5GW(w=$ENL>@J>ag>T&KdPozub@WCZ`Hs=#jaRViSe#VFRkb+i!XTP zYkvwY+HQ^5u;X$lzX)m(8)Za+dWwj{XCU34C}H19Cv}^E`K6bt zU%WyiD%?)Gy<>aqSQqEmuMM#(0&#BoT%W2bIvuII2$1MPEy`Fh>=Q5;nVdrkc=hhL z!Hf?DAqU?E?JkOb4&pQ4r?w#dT22`1KD^|&>6NBk?SPxvuf z5J0=YqPxMZf=oFbF4hB7vSW_K?H|TErguDlrryETE0(SyOp}u)k)FnKGG9q&pd0^7 z{za{$$vc{rAb+le&FJKN`um0PS)-8@i`Cf1YK5!75IL##nsxE=6pcT{{shF}|B! zn3T+bM56kEx!_8`EHi zN62atoqSo|OPb?))J4uoxV_YK49q8#Dl5bE~z55XWAi%kmF34|= zRT`e1S(7T;ePoSnnPb3WX9}tf?*Wxw!PADLVW^VCUyjq{*-Dj#`ln0E-OoFV#IN2dYg?(=4W0ABF!fLzhqemM#&1Q!bE)6a9}iVF=>Q}U5oVg4 zo+A*BvUg{V{@@z){p4WNLTTjd9a-6zc2vzZOSn8|9>lF5&E(}i=6Ljw&Az2-?Nk)j zJ&OxA_gnX;-ro`~S~mi@pFj1-Z!}H6TSrPfxW`EnG7NQoe>sq@bv(w6rcq014gXdo z7v&cJ5AqIOK^dbaPM!-mE0m?HxKsti{r;#H#8kA}k-p5|b74VQ>kQigFBRO%P$c9& zJl{q?y1q1`Wq#BE`Ci@V#qib^{q$Z)E3p2(|~ z|6xy|OBNIKC$*PR;}`4o0Iqo7eT_?Mx>0zQw_bzokb;j_X#%NJYN^Gyb0k+Ud>A{!Z)nR-Fkub)Drkt1!*s{}Da*`Sip(+hgSB&i%R1#5E zRAn&oF6LWpW58Y^6MVh>ti=7Jxb&@T+tk+;<;WwN2oT>LbR0c)ZhsYN6aS)prt9H@ z_j%L**M+k$uY_kC6!ra|PS2Qfm?%2>laD6zGj_i0WA);b)lQB6F8)r<+9maI1NJGfLcIz5f;3dg^y_{($PGgXYsrY9RK~>G>+V zU#i76sR(D))OM9V`lBvQ)w4v!@S!j5Q>56ay}K-qnC0n05eCNs`hVp{X>fU+SAxRa(jEhRsiS1^sDkAhN#^g#hfHDQ zT+VMc1QYhP9BG+F9BF^s-)AVzGB+jus7b`Kj?48hbEc&>yyGYSu5KD0FmKT1!fqe4 zC1CrJyi^%As;GIYM#-ylA}Qh6u+}CC&OQwF_sN->x5el4F+ZbKxT-?Zva2l_d3C0~ zJ2voZzDw@YRz;60W*T|9p6k4J5_NsQkNL)+>sWF&%ilWyo@K6nNO_oWzfZ6hl?MEk zEURMh^=Nz5LQ6J4G0A8Jw5W?QXKebs)}`@eZ<<`!J=b`9RT6MzntpgxUXETYziRP; zEIco%xsTi5weq^RN_yXLJL8=CV_z|iibdcNc>VhYp*Li%UsrRD{P?$C@n!dpM&2Z@ zlDGE;S6I59c*3?@UD&WPqNPoItFWKVk~$Yi5MmwYc~pp#0xDuJ^!DqN{fmA5IwR)k zNeu)D`jm0v>j+ex^@c8AW8M_U;@!Sf{eynHg$dvy&8I3ZHmV2-9ffg2rY1k2mnEx- z_tzM^JWYwXAljGi7+Dd-+^nY#dU@dx-?m0%EN*6+w$WHAKT*CTwg^ zT2zP$L$D|5H3?F?c=)A^SK{vV&IH-k*PD;f$W-dfFiTL4%obU;s#0QtGZFSP1ME&B z#J_}Bnn?1^^^n~&+5rdC76P$hAsB}E$Aa(25Eyn)_CFYWpLKTp4>9CGh>A#PcmDgw}ztZhK>jRITG)FjAOczpd!$r|4k92mG89 z`1L$)af44J_1GvnAFb@>>-Tg{D2(~G|M+wz8^G3s1$x|hB_h3;4{`{Jh=EV_^}E#t zeUJrh3?yYqZVhSJ%2%ZLA+hVJc(+0&YROPn(6C2#kd;58H zv^)~Y-9)-g4i>xF+7J0PpuVg$iGFhK2ZXFy!1Ppt_clkIK#=~-Clo6x3zpIv97wX*z%l?uW@rD+GMU?*OZGhiv5jl zIDHJF+>+jYjl~-!U!zeC?YPe6N?n-#xZY^*px&ih5y$Ce`^h?=jnNI+ejce7@|NlP zoZLX=BmMZ498cIi@k`b<02W5Rz?0Z#LEw{=9^(!kMUZ}ml<-_JKH8YNk=l7&j#bcO zEj!Gb6Rlh)SRBsk;Zq%O(^Kj(m?T-6>*mTO;kQKiTz?G#4{sbs^HX2Z$7UDf=OKK3 zoQwbqpHKGU8=5vRi#?~-0bQJVaFEKIa`Ys{Gm`lwOi~3@b%$CQ+`@Ac>MYTA_OJDE zOZhRY=Q3#x!5-xc)yZ2Z zF;*uh6$7|`A-2md%7w2Tee%6feloFRE#Bh&{P)}URYAywZj?*P2@EJOukP>`bq&w? z%I7=Az-Yy$$~T<#KD_fIs>7=C$NH|Z*;q;EuF>l5hv_U?-}Mfg(B>G!3TE=pN47km|FDJQ zi=?TeOl5$}v$@14RvX1|7rN|UNLwV{g0>i*`ji-+ujIc_W6~O+C;XYQNQ*JxFrjXx zc86l7;NinrJ13A$oK?AdiHK_tJwu}HaCrd@+XiTyZIu$lSTv{QQjWQ%0Yp;o!z&h|Wr>j>ZD}F7YZp?wwb0)Y{nstn?GXx)5W~=@XNi~r z-bON#d#+bL&cEfOp1w1l^PZv0QierE_40MsEU`_-Dg;3mq^X{GR$9zfVqD#69MgT+ zN1#}@+-5qG1s<1z2K{N820hc{*AgRjdU^a!N!(wS_UPodx})W#B5#V89_%TTgis=K_XVBcYCcO%)UGQAI*+q}P}k`tPA8B6<#*#(a0u%dxcpP(8Mr?3)U1Og3rSfO2$CZv zU`Hh2wJanq&asdbyDD(9+=3Xmo&zGNK?d@X-}NoKucSsDg7b_F3tkV$rgI9zp)Hv zST4$76^2G)zfovau~rJzW4sIf7J-xH`<;<%1)uu*2z<*DPL`gK3M8#q=L$I>Iw3NpLF?nR4P%-%`FX|69#ln&-F?n@Cxxx~F51dlP*zAzHs~PTYjIzYoW;8K* zbZ}ns)c#QKI{p%C%>+MYl8kr%LX9hC?LxYWXAe>8RIG2m)(ve}Gc@U_Ti^QCsad-g zN7YXi&3<7k1wS%VP~d?Et3IM(;p{1eVZ|&_06TE2iyYVIwr3zfUHw>5u@D@>Hbu;- zr-;(Nm45%)1wxyBI2@k*}-TmaJPA;H_4bu4N8$(UJ#l)g2}yowJ_M0Uz4l#R>)I{3Cm%)ve=8XY<1ROJ?(C zQp8@Fk-p#kPaaVJZwj<-k%2-RH8?NUoa)w}SQWD$yx^<2fe&^_=faf?O}*h!&V5C* zN^)TReZ|3jNdXUYXNg#T%e_2M$WA*DhhMuV@c#gxKw!U6=wNaIiGNU2=%A+1!R!J` zp@Y|zLPsnLwJ3loV-j)Q!7*^Gcy(N0~y$w@ZbNpHd1P*AzOgDRlf- zO`+qHRfJO(g}$bgF^RZqsL(a05F?+L3VlAZ0Dqw(_ba)2&pnOH^pu7-45Lzr$#%#E z>+7fx5#fy756JyS#r<}fShDAyRkG)l?0F@7LCJonWWQIkKPcIYO7@bHy{u$^RI*o; z>{TUuP03zYvNx3MPfGS@CHsq#{Z+}{RI;~}>}@6co09!q$=*@2e<;~MmF!TWbY~2`zTAVwd5Km3NycHqBQfnOcZB+x2fcVGxhSj4k*Gq;Gx>4a%j{txnn!D1k#Ii8a{NiF|^FdBVw0!Xh1!aJTw~p z<(R(`cHWg(e>=4DUxj&-9okUtVx|p?d{L+{EGkKEwGAtSU3v``by#3>5gv6|jO-4E zl^Y^}pYP#I}8l?k{ z3Va{{M=8Kj3UHJLI64v^;vkUGQAOoe(P$lTbf9Qa9(A+=9IXIHYk*@SpAdj!qMFH> z#26iLOrWm-9HRioD8Mlq;MmC10&r~9=Mr$N4mdXOmH-^90LLo8u^QmGNPJj@K*mM& zms5*zI^ei~C!9wervS$(z;PPj_{fO@aD3E$xtTOx2OJ;hEC9zV!0`%jyaxDaaEC;+D@z$prFiUv3}5+AZ6kf~9NCE!#YaBASJ0Gz4- zrz*gy8sN0ZjskF6)O)fFr|E#x0(y4fYUX=8IivWz!_0zCEyGla7N&`0Gy!!XDGlK8sN-GeBh8kW=55jOU0Qw;LJeT zNFH^j0-UJ;XKH|tN3IZnk4L>J0Uy@^9}kQcfR8J{#}(k?8sMzRD*|vRG+Am{jbk3-xLG}9YFRyHYFWLO2zBPwLjj65pPtJk z>ii-y+WauAsUGNEP&VXYZV-V5qO_WKSm$B13X zeS9s76eB;n9-?^h@b0?4Rz$#Kp8Y;NsoKx|c=~f)IvmRO*K=U!U~;N`zc0R6J$Yi$~k~eR%S2T_X6oi|3~LeRvwJhx}eVgtabt zJwE&du(tul#6wo=62VWd$JdQs)ol%~H>(sTycM6|8%*APt?1Fg)H(sS*i8xEmx-<)1dX1Zp(}pH_|;tfnT6g$(rcA5jSAGXzrd#L zTAXVM4K!j_Y*F$0%6QL|(GI{Wi8OCNI;POIxT`goA%Z<9m{y*G!^|_4Spo_8ZQ<=@ zlzyQy5u|vyiuK24#TQZ^xA{?7*xGBw6?HM&}Z8P*_Ia*~OsHMkZJH{$V_ z#k>mU2DD?<7(_7+G0=#w;2393o;W2|$T$gjKI(@7RTyD19#W45cwuZU#nYHj(c2u*G2k=Yj7&i<*%^Vx8(t1e7M{0v;d%?HR^3zqyz8L)<75sW@!LPR#ya=Wl zG4r%k%F0x}h_;tn_%}h=FHlapLGSvfmXrB19#WIb@|>KZoTO27cd{?&4h9<+&B_{P zxSRR#TdVHHJEv0JyHkDdP#I^lV4AN}2b9h-5_U{9jQ(X+Vija!NSz@PD@*7DDKTGL zvp5B_jld7kCAn6D)GK9qmhhS4;^?`JUpF0!pTmxw!4vpOOQ?)Y2&q@}=n)7AsYSd< z*KF*`H{qu+w8B)?n-pXIM+YG?gSjRRW?Fm0$c|A8m6nJ|9U8-P{+TeCt6J)r(VjE^iGg1aVA z85?17&~9p$S7?VM8d4{f*V+xX4AxTOc}v;GTS`6NG*VeGkvE*Qq^ztFhPwf8W*J7H zz@y;#06=e)=OwkWyuGB}D*qqUS>kX1S)EPdS!-3nsm_o(rUKU_rh;9Qh86OuGt3Fr z*=OZhoqbWB)!BFDS)E-j&+04&kDe7j)d=?hett*GLV=IL<7mt9?mniwBUDI5Cn(C- zU70V2Ro2siV|nP+B`?MeO95ZgicVb`QhQZ2)nT$^5MdPwqij~zqlUXb>mRa>uy>(< zm{!qgKtbxlinjhC{$72R8#Q?CtjK!d7rToF~4sHIg+%6=x& zvYZu5X+`wqE~K=|q8kl47&OyPGbE5$oWWsv%fNa1a33K5t* zHm}~5S@Y@-SNGzK;D}L`dEYp%0nCUiJDDF+3s&JJ@;lE}Oj<)#BJHJYZWUpEFM3Yg zRNW{9Gj0lV8e+KDdAK=6)3(Lp4AwiY^We*GI7TJlc`PfcD18dcG?4mc6;qwHLW*@| z<7`>%H;XQ)%Ue~(nqpEc}WP}w5`3;(UD=ClE4{Z2s$m-6AESNrxz(M4D zkSg#9H8b4w+MNA$|@p@HeioaInrua`)W{QDY zkeq8QM4JzP(x|2!r$(D`_;vc&0X*S1GzA(+1(1p-dq*G&CN_nx88EXu3v2KA9hz0B zD*pQsQ=JT67JK|cEk1mN_W(&RsVHh)QK6cNl6{QOH6=u!wO*4{Cf5!m*(j1_iV-OR z&yE>W&1v<9)aliDb#COQnSiI>tgq(OZ6Wn_A>W6~huwu4&M8e^P3?(Voy$)n^Gz#C za}KX((Qn$+-s=%ldnmjquzHL??O1sAs%zsMFFZ_u^mr1gzGro(&IPH1ta^Za4A}Jo zM|q^K6!KfRe9VQ`QdH}V{;d9g*cnx3OCBQ(k60)ftMrMHX&|*xEZ66&Ql{#I#^6Z{ zkVf>zLu}xTx$D>$jfyqZVGF!3`dAnUp2+untWz(D)LpTrIvtNRD0Nfs1^@b$_kws{ zecqI>iThHS%8qsgdxS82#gW#VIspIYVlwDNAP|Iy&A- zbeSf)fQyFV5gEH`s4{9Q#gY0=jXaez%qZG-Bd;9%Y6n(MfKKzc3c~-?;GGUeAP>F> zXC!~alPFhHB^4r*LTWYmM<4_Z`xh~VL?AV6p1PWaN(ECE$^`LEMoEL`|4vNOFiYK4p8ds?0 z)H0D85C4cOO!J7FHQ8!949_jwn)+-2)A<`=-VenGJSX0ZXuSDu* zfpUjW*<$dZtGrr%Rg1de-bRt1%~4!53{OqETg$0=BeitxJPKm-{(vjU6a@?V6+MrD za9nL(gc!j{#`yT_Rokh;k=h^r5g3ycf8DXoy;b|aX>%9E>@)0Kf5Z4vOL?p*5Rr;U z&{5u2-PTsAzAC=eJ=iKW`aJD48nit1J>r{kn{rFbQ(raT8Va%%@yMj4aLjpwTcVbL|1f=XJSB_G7IY#`(HtH|mdG=Q;hmu2ZW@pKfqeud`pr)nxsg*|TEv{L7 zg45mtQq$lcfzi=)3MB9W0na=flHg=+NPRTHHth}2d84y|yizEE+0n-4M>*Ku1g9<* zsh^@EvlDo`IQJm{ehHxqI-rsKDUa`~=Y)gQF!)D&$#KH)Fv~ictXhsCwM)G`m5d|X zg#Ff$E#7P|0W{m6QBT?aEHR<4G85K+T7qhQiPR73S=Woq^hde4ks4v2w=|3&>N)jn zNG)C8GOvD6&sMXgrDuDStrm=g^{_%~Qs3$B3sTz%@cJSz1wejeeJ3kG>XiDnMM3|wIZL16nAlvESO`xnY-DZ2cstRl(INF%BA?ge z#M@!ZkS$24$~M`{hbe0a`IUSjmw=~df8~ge)QdtsQsCpUpJ5H1mYhg^ zq@k&f^vpXeUciQ+@zQMbDJX-l`tN)DDv zbX;y1h&Q;gwp7vvbi~Bp;>Jz`F;bs}e*{8MQQZK|T(3ar4FR|t*Iu#D^7yA4JGFVF zeup@(aGbDra}2}NM9E&4vPiAbL|ZM1`>eh|FfNwFeO3taMUjzUK!4dmLkpK^NFC9{ z+FwTRW&LvWKkSsaQhB%?&d>8H$NBD__~RceIWI+P-Cm;<|__> z^-ohJzg)^AHLj_p5ZFAx7w%()(3llMxbF+Tpfq9{Y9nK=gxc2BzK$E+H1FJ%+11y4 z$n47O>T5n^W{d+bO}5p##fW>VYf8`?$+R`0VpZWcsm>+7o2^~v9xNyMDRDXnUiHBbqf3=5Cyxe zdd>K%;Uvs`*EVx%n@By>Ok4M9ZIj*mkZqGM?~H_UFi`y5%&Bc6wP17W>@#{9TYN`H zr}DP>3AD|G=1w_4YKP{$ZKgQi^-U3XeK&&|{ znp+A%woO(DvTY8$BiiQfjS@-g(H~AxJ^BLcM7hgGOOHN$BcCY0sBLSgM!qz~zCi7o z^590!_B&)FXZs!bHuAo(dfJ)d^jr;6_owg@*&`N{VUL05B#`)d^<#9yI7eX-;N|)Q8e6&xCX{anu}(f%$F_5!!q)-Ly%tX60#fU@v}r5Gh5om#;{v;V zFUN&%nlbIdzD&T+V>{i5MC#m@mSIZXhHz~~E}M>UiV5(TL*w6af! zkXj0t>iV6%uG(HU=!V;OY&8$Y8TJCK^!BxKvQVTRZDm_Y21@P$&$mGSr4{c9F%fMR zew2enwsx9@BQ*g32!tTO?{@=Wbs#0Q)&Py<0FR&Lh=bIDh=Vby=`4W)pRdWPZ8fBB zX`QFQaa--3y|!(&fyoj;>o8BZR@-VH^EGnVdr)$Jw{|Kyr25lsYve!?P|y_#Dq!@>>yc|S(i+?Ks%?6 z5gjE&L>p~YXZ7HVA#7P))AERML@moB#u2r}!=o%%$7E~o#zsPKXnXN(oVFK`+N_PZ zEhiSiE0-C@08PHOlt=0eA%9)F8R*~0I$?Y;7hlMT`TMZSX0nWbDo-}?9TfJs^L{rX zi`<2O%!AOl&#VOHG=0?m0aAn7a(zNevh9Mf-fIk_Vq2$KC{lCUYKwT;_4v99mf=EL+vyQq5VsHPf|l_Ii;ckGB%J>P zP)deq7$w#Ge_=_Q|7Y;|e}?1yAE;9@aQ>gc=l>bpxMSWl9OU<8n6~@hg{Sh33rh%} zumsclPD`||1VL&@yF8{h!tie^zLZRl8R9l(h+U09g(cuA0Z|@lr)@ZBvq*%)Ux#*1 zvq+@&gntA=P?s_n0S7~9i~#(Ub})MK_^ULWh7t#<>k(%##|e7{YT%Q0PIiIRQzDZq zMSHB>5A0u)pDgdDA+=+B%l+XMY?|WR6wK}qFOp$g7UL}=7Jil1z3#=+n0@=U1dHte z7Ty|+=MiH6;rHQ3jp9?Zx>Y^M!uHw@2Y;prH6q0;!Tjpe_Db>LQgNi#=)i3l1CDpZ z*yP}qspH)Re1CxuzYn%X+y`4B?t?9w%I@~L3)1ukbCE<7ib6E~fn4B;;|81a6rnkf zd+`ojnk>wL`tRU0jv;k*2kZU=E4ryJ%Wl$C*GF=jrLWgSMXJA(Mc_PR?tz_?gT2fsRJow3D{<=SGVfk>ZnKRG!jFDLzsvj?{~txY1(3(P-Je z3^UrTo&GbUt^B*yXz%@=*JyDAhZ(Kk*9-GD&oOVMJM+AuMm%p9dEWfKWQ_QlW5g~Z zBIbujL@*YyGDbY&7;%w^h#BP(yYPsQ?SnP1yMpOj3xroY^KLVimfIK)e|X;u=Q^+W<@9v@TAK9;u7FSeL@0 zm0Px{rn-9Gu{3(iQh0`|k9Zuo4W#u}7pF##)N|IfWTWqS$I|E-I5hf=xbp4l)aa2~ zx~p}Co2Su7_cDwoT6Fbx4N`NvY9onDy2YcQY;aQLjPK(o70_lq$YOD)4$T4 zcmBYWkx;%K9+%{_-H6nQ-K-s|ycNJ!z+H`m8Bn;-Yw^{C;z)hfmb?*m4|?(=-JGlt zsaLyMD?>ae&PpHVS|6>KF|~cc+TGQ@;Hi?9eZgMqE&GCF*YkbBdD`ZGJqh%5cl&C$ ze|NFkwQl(jv~Kxl({5lGFBKy!6b9S3yE|?EA$4DO(E!B4ZALfn90T(A-FYLgV_EXX z?&DwudN{Rqq=v&k0wD-+Edo{nQoSDbo5YCBZxV-dv_TrG+WbT61U-5L0^;1ab`QS! z_lslaxVcB32Y6$}1H3WQwJKDbf0uix%|BIzwE4&C3>xwPXnF;DI*r~)jqGV@dSGi+ zp%Uu%bgBfTrV9CLT)r+HLll?+D>qjTFeminSw}LJ+}pSK`v&f&K^WbLP3Q2Nv}Dv> zWu(5VqeLJs7U0mHtN;VCxMKelLf`b%R_xkd$GaTa-OFi@0;vVzAMt5V{ysn($K8ea zUg~L-cX&+%g1UpJIdHo763^BGYa-S{!CA~e;(4mmwba!b2dPhE>Ij0_YSW9aiSB8Y zTv^J$FSID~hxv6$zWPa83mu*Y|CmdNBeiEHpL$?GTl0m|I`$PdMGBj5PFv0%92*b* z(h!H%emL)7U2NDhCR@p}u_|mS53=X!!j_pm**cd6ms5~!>6LiaFs5cI_0%h`NL`R= zTZhN2&~{5y$8s&xzJ}eCDe@ya7R%kecPxc#zsL%hn@>MZuhMye3~s$|Lo0AwOBH*XCy%#><*~ij+s{TUnNl z9mdggkpEJXSKE$A{lP9DQ%B3P>NeuCO^3%d*aG{YWx35m+5G7Y7`oD71>G&%X@>}@ z{j;shZX+-emg%lBK%SG$o6B|U(z-tf+oFMHNKmBifPVx+5a4=T!taOBQ612T-NEDk zp6%4vBlSMw?B_TW{>E>lv~v~i4Yl4|Tcm5M-RDp(dOJZPwLSbJ5Q1vc)5tK!YO*f5 z9zg2R-n?u|++x#yHs?C%Dt(K!LYTe}G~7pAM+uKLGWSu}rwzp}JWPs?x%j39+t)ts z`n)&m5j?*4=mfhjzzzE$-7xNHil_~Gq;~GZ75PrSDFk}_BtF=aKeU3S+uhSTS)Mbc`D2UyzFUMYqkLYfK&|dh@pt$luU6w+&i>0uP zBj0dL0jc*SM8qbZ&YL`)u;wrYjm~kJ0VB0~j&(|Dgstyy80|FqK~f&6nRa=PuTL(1 zb>@9?O**9y{b8*J7{-el&UtAQNUhV4_e>aD+p6M2maksW8@HKpi13IUHe#{WRASH+ zzBNS)Vn$2}ViR}1;!5Q~X4$^Mfqrk zYS9Y&`TA^y?d}hS+n<|mf10w~IuZY7+b-Fede$k2j+gb~=Q+2qYW@jo2iP zFvSrGsdEr1og;<*BfKxdk_1pknPQ7_K#T5Qf>8z$-{(&^f>1~8$ZoI{B zQvCEb-v0tdm4RH<3Sa4}cEL#aON46^__sx2Bk(rHYYX0PdOV{`6D~d&t|L&qEr}2J zfcO;fz97U~oQGm3*@{bE^YBS@#U*XdBgzPlvJI|#5e1{RorBIZ$g1nRyUs8UnH!;Q zE)L{1k#wF=peFjD*9d##IcUOzRH;prC4tm(gDewK_OS&2tL_qfnjHv060T+-)qN06 zMQhS~FW{*~uV=9aB<_h6h%u?nCzs<1J~POve?{tgN4N+~3C%Bk5bveu;r_pdqV4|! z^^{Ow?*D%b@^>_OwRl5n&|q<|wWQdrON9w*{0E(61nn`_u7i2Yz-7JqtdT*5@$q2ZR8Qb4CK5=|Lo`4m*3aXo4RLCrNNtBW7?W@Y766v&k$?AX>#N_R-V@Qs zXuE};Z{1tP%OmeT1>=9NQ*@*zR_Eute`8y_>X!E>Bk@e}(! z#$yLyJaQlQy1GKlAwx|y5@{Bh%F}y#sFNijbrq(I5HwJ4N(RgZL9W+;ut#9NZ5=;W zajZ*@m`ME@F<;}D@dvdrtg4i&F^u<|c>9zF2Je{{FNh~G`p6Jec|0s2T@69L-7v0E zl69CsEd2F>>p=LoMPVaw58u!m2i|FVJfq7%F1{G9%TatBiMJ^T;v2xbbC}kOv}Bg^ zc%Q=cD8@r!W5UxgfK;6CItPK9!?XcLi+PmCbPtCv0RC-J*l34myao@cK3tV!tzc0; zNPTC77+XOwXz?ElrmznK()n>gi*L&?p8guN_{RlP8dG@q&9^YT_emZe@mgsNuMy!X z*q;V1p1*KP&hQbVjo@kD68_$Woc{zKIScY4ybzy&2wHqzgr7vkf)>95@$vBb;HU7! z+@QtV1phUr-vSZdyo%w!K9z;HZl>_Dr#b)iy@a=DE9bvah2kFr{C=a1;GIps$KW)f z{>Lo(FXyMonez>PWdh6atDh8~TB7GS4DIBh^kEoUWC^WUsGz1;pjO}p1*MHZzA#v) zr{L#pPJqVjkld_l0NUb8p9!GHhW2{T%A$%G|ylyW-8J19* zCDhmw;$M*Lk5%DX?BgN!1<4{7UX+CwFxuh4%fWr#9;vi%E44>zxlvBq_pxZ-r~jXt z_B_P3@554RZ3*$b^s#8qLq4P3HR$hyJGU66bb3+hgw%nfEKTEpFs-iKv|gWTw8LYT zgIg@rFy56INIhi5*!lX@vLkZFLKJ5H+g_i_%)1pcZ<$7GEe$*kIymW9Ee$p0Me0MN zoysnW<&&3PQZ6eyqaB`A9bBW)XoaTU)J5tnD;h7u8r&Xo`t~t`YaRO4dhcogzvlEa zg5wZ??@X44Npw3rtva~MHZ8&KGC`z%<*0rYu6|ieu*xC+MXz>vymxSge>5<)myFZ` zV=Q3Mv!8(0=ZXSy#WB3T$wC#~mD9Di-bIBhc^H4FX`7#*js(PP*&@B~Q*&D&(C z-vpH@kSg1E%%dO>e~I*#1tngerAiKZ^7xnh9^Xj@DCN3IuyY93f9M!svInttPU&bQ zoP}P&HP&ftL~7}=;{N9abpz9V%e-2L-{N}-qBqf^t6OwPZ6l)3XVHy>(GYQ@Ca>nv zNL?-D$Lh)LHruk~Sa6ToqYkUXKq2&Of=F+T6@wr|G?G{I6wYWV6_+U?^#}MzU`*2L zdUeC_j&sTdQp=9xTD^K+nU!lfH!I^5#WS_<6X=gVc7n*!_=RA+!^y7M#^)@`E9e$c z$!h6F^Ox%Bfh_YC5z#O`MvHLpSm)7MDPp?Z4q88 zq(O=RuB3!C~&p=ufctaq94`~JKNXbSe8bI2G zJOovzgewZx0^z1RG$aK1m|kHH>%o{sbgh(5Vb#sl@SN~4v#7UmR8IJ^rX`SC6i|IE zCgO%G{c45atE5Ivq8F2xAv$Jpp_5@mTFasVp+`wIJs2!eN2OC(fA2NEy=%yA%u1){MI5u_~7aR>{>pb#q*UL@seP^L=4!l`^6 zOZpW&vUD(5QI$FtR;6$VVy-F|l616^Dtg)JR#LU3ff5+^5vvT#RJA!XOejC}RxhO4 zO>A|uX85qsJat(^fe472I<82!mOU{>uI;keRGmUL1FYMWn`>M#69wW`$t`CJBv?(1 zQ|nQ3zPzoZez>WUOJs#%7!9mdiM*sb79(v~4isq^;tn;8MpohZCa>+rbu2a2qz1Jr ztkR~%%oZe)Y%fKwZZp2>#>dOi!4AlEsW)u(N9ztp0kl@g?T;%urvIRhC>%9ZR$C zXYY9oqkrB$4rWMJ6F{Va^<{58$l6A70cCJKsofB(;j`Geb|TYvDC;R9>!PTJDQuu( zg$%d1+j%CBJ)*cS3uC@LE5fu!L5dz7vF%3c^Iy2^+?wI@-uKIa2EsrdXS|%!7AwG%7=zS*Zy#5r^qm~2pH39lXv$%!+6fbiIrhIFVq763lQ5d)|k-E_=Mf8 zHT8yxK(C2Uo-7pH!8N-6rGyt=3)@w{2yNa@);FyM65dM-mKUr-o!0yR;B>Ywy?^2rJWfu}poc(|FHJ zqyhMS6PFIVO*~{{kEV{SjJ?$UvD5j$3^J_)?mm;|pwRw51o#k-8qYp5wPBJ@-qC03 zi1x9`IQI$@B6^Tu!#E)PFqVG`t-}pHiJW~J#%G|Xg@h>{G}XKlZ!TeHiuA)~ z2sG>?%A`EFS1o!d>`*O}0>d~4g^06<<8);ciW8I~1Gl7lQZg)ayi*o?vamk4wFk+B z3Md!`%P3lHsn503dMv~elxs5k((Xb0;+2w(>o13lFje z^W@K7-}bOwKbH-Eem?yC@{?f;+w)h&7VcmRr`W=kY+<|pcKmv_u)Ti8Bb(w^*~Yh* zmmS~Mob%Mb-5%}w+VgM6FJlYa%h!%?&u?{GxRotz?=Qk_VY@wr*}|#$glpTvwQOO# zKL2g|$S*w7{Ga)gZG3xwVXv?MHb2Av57TdG3){=1t}UEjd+%!t+ta&l3#Zw_$+ob) zJnZ@FXbao*v5$B8wP$!#^y5~ zyux3ua|s`}oq;7S7K;^Rut~*0*-PeSZ1x@893Qzkh%K{{H>_`}_Cz z@9*E=zrTNf|Nj2{{rmg(_wVojAHQgP@6hN`&@fE%ZfGHJP25R_zZpAr^r+ZD!}{iq z&FL50w`$eccq1<TG-*9S>zYKFY4`ReZE3jwL6%iH=3eUfX9^ zCTUwqcAeb+zxP(%dfa-Uo8q*jBVvHM)zx)h|NS4||NW=T(ur2bG5gKBVbVYBmUYVR z8>e>awt4F0$y2MfjiQn7<54eT9ysiByR~y_*Dy{UEH9G9g%j;oXK-+0w=w(FUDv zzhU;x2C?crb`yTpNu$@(j%k|hv`M|a+l5sScryDFZWx+|)9rhI_v$VFSH0ct8pP?> z=}^-vH}ETU_jap0 z_hy4mtJ88?^>*uNvmu_{+U?N(?+ltvlYhA9^nKqpa9Zt_b12?Uj5uqgBSm0o`aaR> z()Ty(7W+t}VK(XY_AW3S$ai}0^+0O%HT-}No@Pk6nK1Gkz7hS`JR zBXpSg%`kOr_Tff48sgVh7k=|5txup=II4%XV_MM9F1`UBapJ8~`eyLjyn%KFejC`P zO#%y0UMKi@BBqEo_UOhin=M!#-5$Tz8CYh&yWo3BFZdAFr#c;D+k0xi z-f46#(rmTczMik0->j_hzU!sc>WS+574}yJmnS_sb}yT@UEej?<=Vh7=-ZLq6recBQ0zUbz; zz@?8|(Kps~_d5MHr)zZE75&6ox8u-J_7A)J33hR-vStro;jm>sH85>Q(PsDP zBh1LgbM;nx(2s6gH`}IT#ywix5%UG?meALj{b9>6uk`4GR9sy(u6DZnZL_hfxFPsV zI!;c%+YY`jzZ~^A-sF3bUb0PkxcZ*rUX%ODF9tr`p=)IgCHbI_8(r?AvN`l}$~yyJ zM|;pQjqvvbuSa}A@D~4YnzVENkz`i_Gu`Smd;-mzqmK;CKHm;H96FVVJ0sUxt1tG| zW>w#iBy!@?~Uintx z#ljrkK7I1`;}@qNe0%9nhtofJ=WoK-ee_!4^RE=1{Mz)1JEl+FQTPpZ-y^rfR~KHz z7nr{PjxT-fYoGf%{bOckzwqqLErrw9{^X_U_uu)_FBe|<{PcfvN8uL=FHTqP{5|?m zdX+vFpHjH}_)FrKUlzao()4|IvEQFP{v!P-8y5UI^R#p7!I>}q#1k{d%io;&miF?g zng8)8=+_yA)8Cx=6Rq&Vulyn2*F5&F<1?>6^8y{YPfbmKVCwXR0*w0&^0@yGQ&X=_ zzXLAcC|~~Hr>1_haBBDB^mJ$fuNCOxxHWY7E4PZv1^M#-b<QEj?-_w>D?xBr(nPQ5mLSLpJ;j=t>OeUp6o z+3Bg@U~lfb{DqmRm%dr}G;8ra=eMWn5`J6g^4HzVzJd9lr>DNeM%Z`x-%U@wbS-Lp zzeOK|^K`R(^_Sq`?+d-;KfZD5^};2(Za;j2t|qpX-y+}eZ?vgbUzt7;`j&rxt9aR4 zb1h}vTyY@d@_0{UYm+sI{)o-mM{I!Z=);cTZL7d?xaaxl_uugoe=~hcXvzIrVXCn4+_mWk-ch*wwZd*; z_uBNscRh#Cc=h<_3%j3#YlTna^23!kbMWlUTM8GRzc#q`@tM}EGw+?9zA^OFKfiVA zH|QALf5)|JY#<7OS?1IBHs7u|MpxoHLYMz!I`Z;=&>~0kcW#(^_1`{6U-=gbpC3+_ z?wUS%*J}|A?fTmd6gKMuvEI9RZd`s=CnwTZu<^QM&dG5RX;?&f&=L#PxJQvaS zsynf_%9np{YO3&es7w!!B0Wle{gvtE(DhgG`UgWj`XY?_yF-_sbyuZgo!us1{-c>G zdeHn}=U>&QL@pcI?Lqu zZ5QC*Z^Dnle+fVFsKcdLcm#j$!_Uvb4?GVGpPuOyo_&7!PYU~R7VW~yy!}Z?+k70=clHkmc~CXh@RgrU;f`Tdd`P8_5V~*?DoH{ZB(u?>3s2>jU_KL9?F_cf65 zr?`5d*oeLl{8JF+gTgNRgip%hcszj*v*)_310{}~GQ6QS?<@{Lo4yQWK_ z`>93sSIk5~l>ub>4afQ9`X2E6$HgSw=~FQ2j{eEQ?-rh9T7^$Ey)qLy6nF;Xz}+QZ z{&uv2@O#nX{f{+}B)c;=JwZ?B=}`0UyV75ADEPkmFWj$=n6opX>#xz-zlmB!5wrhm zOt1UB!tQH@Yx-|KI`cH$`t67{`pKK83ZI_vR>PtNbNq?pm*`3USEctyiG(-R@%gps%c+mg7hov=j85~f%p4YG zKUw(n$N%r?w}igz#puy|MVop(LR0za==1gG=@@Smex~rXnOo_%9h`jS+Lxvm?kK!8 z9TwuAa7njl-r%WMjrf~$WPPjYS$8!l1cqwW_|ApbUD4)yyy z+g{Bi27H6~-$$>ApHEsS?~pHlYARA5c_&qxyQSGzSR!d&T%kYzS8tmtJWqG>wFom^ zp^3k-N2JfH|F3Tlp107+`RXf7Wvks@_?_v+ghSM?_}w=3*Yp6r_T1-R17G7S*9yOT zt?=nzD!fv7X{Ph+%w11hyY{(=UFHqL-M*zd6{%NvdotSsiJPnxW013>iXNqzQ2#*t zdiC#SBIVLwYYFS=wFv$2zbJ@j`NYtx^xNNBI9;V`bdDt$|NUt;-#?FD6n{1q=|%a; z=#lkgW}3TW)Wct-dj03wLhxUITY_v$V}MF3WkwP1+tUB%wD?lr2<76PzRNS>Zr}I*%yi`Czoz59>Pl{vy6F4J%hM?P3QrDj(BTI1(Tx>C zb~^)N92^wqeaN;-%~=3!UFBlCS}e(M5nW$un6}gJ9#(2)qU*!zHqnUw)S%wh+O3X> zz?NEdjYOj?h}|;{n-n$r?KP)3N6wq|2BM)Vm#jH`>tg%T&K&&?a+&PW7JaK$B5?0T z^{dk7EECc&oqDSc53JjJ1mfH=eZcRa-%@Wh`lfBuudOYUFsdO8w_&fn$S{GGjb#Cm zEYA1q9YpJqR;St3YxPR4NJpo*Ksy4+LsGZx)^11Ntj!bJ?yFlZqP9>gCw z?*nUAg5yUA7OwoZrMgsCS^7yhbCV~+jT>opy^6NJ@O=y>Y@Q**iv_D_?2wKtO` zQt8-c-(icREluXRVRac`QKY(lMaM5)BKk&+(8;fvZQ8}6?F8SmcxikyX7obOpbM z#v?8oj}%vmOVvdo{pYoQ*Rt8mPw=v$158hrbwYpW@Z%i(I14{k;Ku-MK$5=_(fTGH z4t=vp7e&V~Puou8kw>8Kr`z4m?kqhfX7Pl0cy`!rHD(`t=mQUm(Rk6@g^}# z?gPbVV37?#;`wot>*6h~}(rE2Ma>V3r$MTN3+v@1nnq&2vtu{T>Nq>*70K(0%(?aw-@`z9LJai_c%S664?LNUg68b_hFS0~e=_-BK zwapE>I*)6iPVTe4-vj2)Z1-|oe5xc@Qg%AF$*LE z(0iJ#zD?DN{_X${9CjD1D8r$~B+Im+H^M|iPLwz|%7pk*NIrl30YxR%NE-xA=g60MlQdJeJx7Q8Z;KmR{emqyVMkJ)Jw9{Ltmi zEj`MSwyzh9=2N7__Z8i<9|I{a`!^LiSAHjF)`?oI_j)Fssz|HE(5cqQ&ac@9=KTnZ zWD+$cDq1fS%%!Eu`Ys3|^m^#kDn6hr`DS40>e}k|IkLL(BxXJZj>sjDr+rIO04mj( zL*G>l=$yl#mB8)NyQH^enOGM`vC3szjq>7o?@JfuT*H)ny7Qz;zsUkA(`d0&dm)Ep zA(AX~9`Jnty52GEfdOAmcBmm?+If8kVtKmWW!m1cQ7b#7XV?K=tLj@UQ$1Fr)7}JOhJrTCk?Y6^F7Q#KP)h!arP4y34X+dQ<(>I`M zjzz!D&pe^6);7py?aJB5K~SioRbqumf;=t)rCy+Nh>0E^;O*n1n%RToexPOb+Nj2p zHM&2yY5#0oIv@@5?P)64=yujpt8*g{6P1m&S?{wLLoQ!5-4w&9fRok1iAy>1k~rh%tTtJ$I_j;*-vXz(>1LVu-?Hq3^ZC;>HjP{~4`KIsa)s?3zZk)B)B2`+Tt%*Cqg|m7RZpM3zHPKwP^U$O zi_vx`eVgdb9=!1;ypyCPhJ);$j!0mZmf7Z)PdijO>6fmqT_l^2>s#k8ZT=8hJFl-@ zWZonKDi&Sf$d^Vt^)dSP+{NvarBnf__pWz14E}5#=$q|P@8Tt@XPf<@$zw;!#y9HF zzN0RuA3U!bV;N!QCdu{*Q0IhJ`uD2aZiwO#u7Z)A=iPR|QOGxoYI zW1{_$a&UUW`#4N;%Xsuv@qARoanH|qjD*n!9EP z`7${pACUzueFLT%67Ki((+YCQ3-(<|%{-bnQD76$3L~(B5_YxE(3D6HH34GEu6TnR zi21$ajskTUMPG3xIvmdzz)~y~BjfWmr;O3}%7rZy8MSp%xq#=zaElsS)orrg+uWWb zl9m`xLCGQtNud}c#|-JZRngl?`pI>@_ZW}?W+Kjd3Rz3BDHMSL8F>x`$_r{r^i6z$ z2nT1GJ23 zFjniioU@82In`^4V1@{PH5a+ zg-$1N_0frzBEHBB_Fj>U5pWI#5MwyF8K7VchCb`TxZWH&Ud6KKv!v41JkYBbl`$Ag z>!MNQGMXPfwu<3f#8z$5%;z=GfP$P;u+OTplb zoc-&D9|`d)M9h^*t<||&uj%em@g{yTh&E&X4U+97V?a77q{6nkjX=5xLl3O_tL7n< zh|XTWyYHce^8nML6!?d-0*JW@k&rDh&-J3x(g^Z6A$5Dm&eNT%4xy%-NbF(m;O@Y& zy0!x<4rxk0E`^rk#fhkn)JMaKs)VM)(fxF+cc|pe6@e)0rCQ4>l{t5Nz0;r%h98F0 z!?G2+CpqQ);(^u2f7E50i!kJED0dWG7CuAR;IKMs`aq<#NBiF+JBM`4>xMZR1#BF_ zP#*Ji^)O{F58o~AooSS-~A17%H6kWY<>G=q_U1)Z#C`IpRf0tM_6S zS)f5}Jw0M+ULckhmU4p-jY-y&T#RE1F^d9`o_SBufj>vqRyQ^`Dr>8kM!rS>1+oPq zD0bTkSXp{>N!he|&LQn9yolM)pZX?)&0|HB5s)>8QefvDD;GlTPpOO$41m{k;cPrs z#N*0lr$7B~- zJFX{Ga8p&-!ju`KYxU}VQ=*ni{-D<23z+RV!|G{b764Ds3K4CoLdeu|?(j;9(K(!X z%@i~oj6omrn5>;J1=Gl66vGP>!ZSm<&5>GLN6JQ%O`dt-x?(B*?%U=!2CCa+i^C>j z{Pl*MGh?ulpbV5DQuZfP7E58RF<6?6Yy#_4)}6YWxuOgulyRTx%v->HdP)A8TuT844wD6L6On%Z*l(cSmG2 z)9qMW7Yi;sr;*R8NbP%2^zO1H;U|^ z68mSK{je3=WaTwFGbq(+eTC4$X%gwUS`Y|j3mLxoYdmmIE&6C!kNMtsmdMXm&X3v*u0cvZbMKuIeTV|6XhIT?*ZB+47nLb1$oP-D$1HdS>rHR=Yw))*p)JNp7D_|pvX6w5kS%$^*{j1QV5S;eidc(V7q^L*FHY??@S3=O zGf5pHBA+VgO!b%&v*E5sc;=-z*;d3>v(X^2)L``SWhpQL1lG{{z_Jcq8S_}XyHjto zT}Ub^DQ4H1$g@q5@bONj#GG(^RE>|%QPeV&!%nx^B<;E#Qj;Qajq!4831f8z%F5b4 zbZOrWo+T@K`KAdGAo)zBMRqb$!zj)r$XvDF>?#l9(Q7fDW)7@@8=L1Ytv*)EtjkDA z2$LF_SQdyyb)x>9&LS5IJ`t7?Ea?lQ4sUFF+R-S<9t|Q!CYC~D#my!LNU)V}>#4{C z4ajG4Q}jp9oQ0NKyJfW;%?lFYI%)6M0ga4CoqI5>ZooQ(Lt&GtcOyR3IYTfaTHI8W zQsM!9J+GdKB6AniMdpf_-xQ=yJQDCc#GI%GsAtW48+*!Xn#4CRH#cXrpo9cOUhKuVrg4!6kAK z?)KqLKC-+FTUJbn4RsZcITiA6&o;w1Y{Pmj97 z1(i59y6Uy3>~7z|*jb4b=}agZ3HML{ua;+YEGA)vU=FoY4y4#WQ*?t~LSs9sNHH7C^#+BbZ zLR67W5fMtmk;)9;gFZ;AS+*c$LXhQtzryAl zQ(;pgS{SK=L0J*OLZ6tZ%XXHGUNdx^2`fbF)Oqp>XeWJhNIK$|o~9%W4+!@dzVKy_ zFI-}Nhazs!i2xzId)d)^*}P+7k3h;wpTbv33&KYHhAu$ZRXSAw!X8VC1H-+DH9==A z8J!xg_(JEDnl;Q-CZsrfSt_6)N6uY{4YaM$RjnhT2ez?`+0v{5@T^09SVC8U=eJ4< zRj!q?10U$X)PdYwi=4PIEgysx_Ize#P$yCmH-iN`=+iCY#A#FcDZa9RJ(ok7x!HH9 zo``9pMc-jJm_^hR0Au{ z>7f%cVn~fPK)wbY%w)sva`jRmSDLJS zE*86W;a_YM!v+XN&;a0i0?0>!{vh65xOr3XIOtlK8Ff;J3*j#q>SUB=jEIgtu!Enf;SPZkDabIWLF^P1 zNR0|otS)O#uvX{7D;z)YoeO4m9CmF6ukA{ZnPUtvqu&<16+8yL$rvHZcml-_+2Vk zkpymB^1zMf2wF}l@JaJz$@Mb(6Q-HtWiBcN_@IrnY?LC z?2wxPWa#bH?NDC*=s5)tq;{E=qOj>gX^X-TGRQ1+%3x%!bj18H%cXw7iLjk|-;p86 zs)e$s0W?%=(oREZQNGWzWY$Inf~C~j{Vwf-S!cVTyl->|4gwZeFI67f(AUY?)mmi@ zA{@L1o>v^)M@JH{MKTIy&1Ni63RnJQ$R8a67=D8`{=~2Ze z_;&kZAUS0+mBr$Uu;w^%qHNRwMH_JD1@p``SfLnUcEy3Mx%LKrgmqzuexv43P2-Dq zEFOBRrH_TuIaKdqLidLf6u3w{$nRN>@dfuOX;KXb1=2tif1ljZaUF2WN`}fs+3|KM zHQ-FjzL~^y}-#PW+coQt>Z!&HP(C0lI8T<5HHaqueH=^sah7FqddRArSQda0_e zG_tx%MabrX@1@!;sg*81UXAl`5nw167n(3D&oeVz+^$X0$dd z8;?_ia~)9AbSqo*n}%JU^K9>Rsm$!uEmKWa=P~Wbc?lO|9D^~L2@7s!LS82mC%Ts5 zui?Tx5y5~&Bk#IiZ6bB=JOMzI-RtBW-z5&L(k<7ilI-cEuf9+mRW;8CvZ_B1oXNYE z!c50JlErn{IN!I+0+NczJBR-cCl(688c6oda*`N1FXspd(`Ty)2J%WFaAg^N6AO+q z^iU{`K;7%2v?;JN5p_M(RU0B0@aPyUii|w0C>xyso+fp8k<8Cy-Zx8rB02W|X(-~HxNO)N@89{I|+Iw^uuF@B$rl*s)3=S|&1PdgN zB;r)!Xj(X-faVy(ZDMwmriL-xfu4B#Ar;N7qQEg8t->=0$q0au1SN^N;*mcfhwm}0VBG8t6JE4Wnpne|s&NSCcSDz<<4y4F zk-7uCB_fwGV(93ZiM38yp4~RtJm<@@i@Xe;8$VEAR zr!Nwpa;wC-DvFZNMT2WcO1baLThCPZ(L$6x5B+!B4Z(-B6R}F-E7!94nm?c?c&VgR zS6(+_f(`IcVF54gyg`h5uWrzTdu)jly`J7Wstv}8nvN72w~TRi5o+6cH1MgZL-N>a zARJA{t&o$>=wCjgt=2ZkX6?$^$I02sc8b9B0uMZ|Pzg*m%M=0hBGCfH@HFpks_e8n z8nSE!YhJ0G-=yOLs???jC{dtA#OVIZA~KcZFcwR%=FAJu`_S2mKAw3Wi%jK-ZK4YS z0xSd|-k8G&(Q7Gq_yrcTT+~F_iE^VgqR-f_c#GCVOnp3X}>&nk0Fv25( z%^MVcXv=3LRYcLC9hE~Nnx6pWqHtV{I9yx`l*R%*#zV72t3WQUCF604g{H$L@Ip3A zMqo;SAQ<0*Dp{Qdl{@gmaJXg`mx%13yjj=JUU@7&$HpaG4wSSUErD%@D)Y! zVls6DFGk@5p@x$1W49EJRl}TYzJ4CYfUUe)b=f-doh#@7Y`2*-e}?h>k-b)fIdVGY zf#ViPL0{QK=W_?K-9@5;j{0dzQo{hLh!eiQ;+x4rUgBmh?eltG?N%=Nmj+B&;%7~% zjO?E~gC^ z2M~Ti#kkMMEiPnNiW${;k&ork$c^c(haojjk~v1Z;#FyjAkc*zCuRY+u;Q)@fS@nj z?7_Eeaz6>60ENJR;fVRIiNf6WBy{SjyU_$jsSGO_g< zmY|Fb$i!tE#l)Jtd?N6K%XOiHuTW|OEW(g*WFwTd1~(8P3kG~IBed}?mH(sjLw)G7{ZLljksZ~Czd;Y2}b1XI3Kg~o^%xv`Ys|bySMakn38oAPG z(E|tERyI|9Iv@&Y4@&jkun5IZL{$xbERkNlU$^Lf?*rSZ#{3{&#?|PAK2>p;B1;-J z9nE^D;U?dYn(lL1(rT6ot19&vY4*A{aU}K_D3?ly7lLX*U1c1QAr!T%)Euhmmn&p# zbA!J1YGp%T_vq4^?fR}wOf4nKMI)D7KX?)WeNYGRS9{=;WhqRcInQXKUtHEpwU$*} z-lyM4=n3pOz$O^ zbj14eG=*Hj9fqmrbBdhQ5Z-VsVzoMxY-VDjNXW>v^6s}4muVOVAuY2uoJdrU<;>c{ zExJ>y+sLjxM>Kg7)1X1;$-ryNhz2l_YGy5D) z9(9qvt^_+BLD{!3jTNfIX8*KDT{n8#`sga})EJj<#}i(H$p=hfZJ<%{br_9m` zG?AP1+&hI)n^QZ3R=aV^?i;5B2yQG<_e}_*OPs|FqTbYeAZ=~mGA*Nb813U&kmU** zK}kVE4y`Dv4@q}swR+dGdFsOiA2iAY{{<3e)MlOxe*VzMbsRf&%1Xd@%=A9G1c36s zz>>!#Nrqqpc`NnZypEtYB+{0g7LLPu-tM4&m zvE;f*9$0GU_&-Ry{21{waz!U_QE|?!hi?DD4?vbkyKBQLOaUI8<8gi$o>JE8o z&@!%4tE=T`EaN0?hInKIK(6qT%hyrkTywP5rm~%i9gsY%^xuA~0W7rRNLU(OzG4i# zklM#keN6Ytas_tM0`y(4?pH7FgQnbeJ&PkJ4aP_*_>a0BR){N``_=a?*tbPGbC`<> zIZVlmaYf)8SHMNt3KW{onTz8&*+%Zp4#eq~30Su$r_Pwm;QUc2tP{j0~K!0LsI3cHQB~DJ0m~;K`BLhyx;o32WEeGzvb-B z!n0=|b*LDQPuOhw5R8Fn_8U*oREl_d z=rH~e8@-5IBaY_}`NufoLlFn}hr~=o+@8kB`q4)oIo+;XJB>PDGmNqjJ%%i|GTP<) z-7HwYC%&JBlbIa`!J!_ep9ac1L^W6MSp* z6zx)L!7qrtA%8TtE&@&%NgGKIpcHUri74$!I3aiWY08z6Gin6AI z2aS*+J4-Y;OZC||Fc>T($cYmHI33z^66N3b9sT30kcOWMr~a}!W+E8i&eWscuV*v> z(t*yx3jH`1IW+6zDst|!o95y=l8XaM2%EpAhd^=?1XY>T?hjR;2k{$c|}Jd z57HDG$VpRdK|XwClkE3f02E{n@o|0CaD;4RvV|PQuyRJ*vFS5lO5cYWap}**(OXckj)H` zPfsAbCwdG*&|^3H?xYjbZXKXVdJuZB#4W{*&F%A4qPT&GFx!BSULmt%%cXwQw=7Fy zQMm$TQ*v6+Zk-l61g1R`)VbU~Ma8Loy;7N2UKyn~38TWMOQ?`H`Xp0x_ZMtfkj!>)BZfj(lz7HQOWqwf^m!6&)4iVI9IkJ_XD2&B2!3vGT zfQ~E_&oFzrV!0)m!ytkZHdpV1G4oj^pBel{2#LdQp=mUC_lP;#}Q$GOsNzXZn>AVO!Vr;#(HSrG+Wwt}tDh#Hqvq&1Au!5q?B;ObPU_UccL`?}DlY zbyGoug&wl@0-Xk3OwLR56uB=Cioeyj&!E{x&2@CNaUA+RI z76${d6itU zt#TKnx$94C(>br4y`&?hc52}M5ea_?*`pSu#=6wdfX|wKZO7JDx6hHys=k3~ke->o z+#htPhTiSzt!mX!a8wr+fjNm)I_55@K=VC1(;zlMhHCqNGK6iYd_*{CdM;Q6$yLt@bB$3olUl&nx$g;o0`3R_ zOJo!HG*x@3RK3H%KEUTHvJRke9UO<6V-6a#0IF zxWT1E>GwdkNrer>nUsO>m9sDf#9DCt@!2WJmlyetfs%VM z3|9WVs9iM=nZUDl>^_)RwhQJ{p#USRem?SuL^emS@v0a(JQsL)F=k$1J#?PtbyMZD zD}r?_2dO+3j|mqzS~adl(VFG^f+1pQ7O*@?6Jv0ZUnteShPyoLYVvj#2ezao>0Wf{ z)#oRDP=;LV=w{J6xPQ+_G8mT`*H>WY2 zi)k$9Vj9!An8tQ4mJ<-oNvE~M?K+=oq|#W~#WZF%II~Ejen>6Ey@}>J2>@^>xsSs% zWM4&5K_QQsA;a*g;de9uYkn%|Olh@mM0Lxeib^6_o;A(~1CIY8JP68h)QzhH<|Rqv zFH9pqOQ}4MX#{8~jQ}mB5ul|s-pA6SCQ4hef#l`L2;b5U-TBSPmE4Y!N{SN|DlNu_Z>XUb@Un)qO6&~Epf{s%-I zBLqc5#I^(IE3$J)O`y7As{No)rVe#`Q2@z{W0A;<&KNVIt(M;Q6ZNEUo;<(;h*rIS z)$D6QpuAT{#{-PXIdr6`8XMv6jR@rClc`7J?-6(iumDGkL6r_|RjJ9L){U$SkORYo zJ}BU+-0pdYVQz{m&gui5!08AcgJ}tuQcT;!vj8#64FF!m!Ee_?R9wxz>DBvWQf9}} zU5I`FV5xbbb7uI!m$6=W$@n8nO^L#Hj?wWQ!A2chW{hs?{%+pwuq+(8pwabrRbHp> zin=2x{1ECYr~=m@_`qWQp%8W?=3N}Lz+~~5zNI}A0`I&b)DxgySE~Havq2EbC{5uZ z?3S=M?u@**!k-s8?DKIMuVpv4X5{2(0L0kC>gQKY79VXjX`dOcA+b!t8SNP_hRf=P z*laxKWUr^@E0^mQB~KZg$hX0QzV;08oOvHtDPPMeoMQ{ZH@1RB?diAGcY`6@5yRBV zq(*o)Gh<^OYNpkL3g1#49I+LHsRoMmHA2!!>Qw?`n&q z0jv%_BZi%#k&=B7_mi;z-S&Th^gUrAUSYBARnO zZ&C+a@N~;Ifp8W13tD!=_J(DH%1SC%kye_D(?)y>CKHgQVAf+)6tM~lHa%)Ng=z=b{_E-UzkD=?^uWSu%vb(Vv^f=poBMTW0E zy2mOSs-{9}uDIZ+qj@qSv8b%{=sqh^D)D!gj!xh?!UCh*<`)1%4OI75vt`($wv`0y zqni_!2X?r`Lnri&sdcwc^vyWXJUQ3Idu;ng0=68r4+yL3{i$=n%sd7TG@hr;Ppcj~?NU~Kt_0Rw6o=v^6d zrP~}wZE`mEI6JOyKz=U>k94h_k?S_`Eab~X*M$GqaeY^-8&5Kqm5k?)3Be2Z7B}%E zk5EhU7KDoj>LB@wo5BU~&mXJOV)s`%$SD?q1kG;iN9JviUgY?A0vP&9*My{8HuXO)KZ&S z`uvj29wOeH@jr^#7&ulL%65_sqfkk_VIa0rVI?}XzPUs9l6nd~Hr$ClxunFkBnAp& zxRafEF+vc;C*d*=CU+_sE=!gAEH$_ja2&NTO5DqbCdM-|z66Cxr)BRY?WF5^bwq8Y zyvG)VPUw`i3D0`mH*BYSmHpGso;zvC>_#ej+LFHMvC~eZtSd@ZB6Dr*)B7;v8RNV# z*!dJ10X6p!m`FAq)Mx-iM$ME#-(15oWk}3Z-Gm^_7M6tsZhj_cIqNVO4m`D;G`hUs zD4{uofd%fH6MaTSF}~;FR^v*H2gCp!CQu(;=5kKZPGdHnyEy@IREM8B&k78J(CN&^ zDWpmYQ&=ufcRMIteZEZ<%sm+xD#)-QV;xQ>mdj7fr@|kNEGxZ8G&++vnhMP}4?SmgIF3c{SET5d4Jz+V6 zj`=9kj<*c@Clo(<^k8}M#Nxv2iQU-~&1z+h{-i@>Ts_gF!;TB$1bB2hyB-G91rACq zkEye-=Y>!%Eky*KT=8nOD_b$P$@;d@o=1kT7F{q#dx>Yg0HIj32ZCf1)GRn7c=;gQ za+QvvlyHXd6K*@#@k|X_2k~*m5+N4IJ@)yy;4D^A%zy?A#>7Lk@;sa=r`TvqZGm=y z)3I1up5)U{f72I}l|o6VrqRZty8XD;QZvWo&9T2vR=?RN(~K`)(&K!Q~!ll^}f zT!B>B4k5XoH+pj0pgpzZLpS?$P(R_mi!Jsq5OrkDWn6=WeQw%;X*?Uy+j;V|iqkCuH*%O(K>GpL| z%5=_aC+0|E!{{~^X!^BkCG$Em^W@f`9FpEjsb#d^M zdj8ASLUO!f&b9mF2o+!-UM4LrrNWeVM+>RDvjVTn=_oN3gq~~00KyaPfz=Vn-EihZ zWPuLQJj6&bxL3b!kVb2_8`gj7SwjH2tP{W5Sgt5U3k^Ao)=Q-Yd@lV$CALh zZ;nI0i z@39%h)wna-QT0}Z#b)ia8FkB87%fVo;0^cea(@L2I}R2JK;KwZ)Wp2Wq%u-*B{>}6 zn`*)7i!L!ORF`KI7>KCilS>kVRx%s|okjo#Y=%!{wc8;=CX}xSzXRLxz5$qI=~u5Q z;MWUKH03h!@r7iCz){f}{czeSm-C%OCETrEMehy~Ixougs!~SCmPCLIcw6a?1h1C2 zI7i8ovB}QCvv@Y`dES}Q(k}2uFb9o^qv@tm+l)`Ir!hJRNX7DGDU_Q<=Msh!7O*zW zGqSlKjqLV}>3xl{NJy#1d65h?A)Bj)Wk^7Vcz=ALO7#e9)H9BxwM2K)buDH5G`5QU zO-0dW%_&KxbLcN*hbkUatBA*W1gniq`aljv8WI~&f2|#kMYH$1eaFYwrPTx8)8s7u z>+BTApREIlhTw>9#q|_c|Mh%I38O!t*3J8>pT@0-_@!Xs5eGsSFWPPn{UX7_yD{Xh zM!RK#$F)I^4!b^tR4xZYd6PaFaW(@K+;FV1RR6ZH6subZbV7$1OL0fUAh0;{a$qek zinZ7sn*C9-08bSr44ay3*t-c?k&{Lv6Ko?lL*IMSFc^V_o06^dz8@T1~#8@hH~F z790NWbHBV%+%FHSDhaZ@4#5vIBES*4SwvY4{3<@TEz>Zma5tsWxXuH4>Ash^tH)iL zMzD37^H<2YsdWYPA_8-v&bulpR|ihwBH*u0P83Um z@v2Bd!nJ&IL;&wnBSjKjwUdtw(3~8XjEZkIi zp!9n~g}XFa#nT2o2$=132c1T2@x8dlSWtZ2VlKrk=2F~ZF2yb8QV`cPI;N|%+1X2E zzO1nbQ_DI0zGd{rSVl}=L}nC|4hyKDHmq`FL9hlQxTaL0(BLWOt(*esMQ&j*E92}3 z#Z>Bf52o^dFV47>W22In%t@z$Uc{=D32u^{96lwls9(3K8*a>NRInQ_nASs*O5j%S zXwCM(-h&MBLx-p8x~W2f$SWGBBoIaW)_zu}(@JlE9wOr^-Ce*eRRi!Rpn|k#f*?eH zCU#&Bx3XnogBL(9f5_Evd7ZFoiJMT%<%paFxD+H#?JaZk3AJcEE#(wX`4Sh8nD{*B z%{5lZbA@X{swN#xk*uA8qSedj=MSIYD8DMtow<)APKpN}o}D|RZLN{bi>gRNfLFK} z=>aCI8|!3Cuj$*GKYv{%dGS!C25O%Q-L~WMN{n=8%u5iTQ9stRTSxu6V(o<(I8&An z$%IonqUR@d{gB0Ajpa~lqrMkW?>?J*>7n#Gn#*PBOY4hT{u~E>SxQ0Z z?tIM5QHxD3JPQt=D;ukqDvxdG>ttJPF-Mwo*R zdP|M34517)5ttIR9jJSs$H^@dSNj*!+0|NQ4Hr^O=8uxhLkd{uvZLla|C(;amT@lS zu4q-Rl9|#DaFs(m z3uvd8dHIYqWPZycS809;+__I9t+4}ncOISU7(x)Sjb93D%d1ZN(e zjS2O}J#fW^*T7U=Kx%e+c?hA`>NZ*LZEo{JD+EcwvU$ALh@#O+@`k(I0NJOFAxAEY zq6rOCGukFq>H7UNGkItH46ftmw8laKC@nj?dN35jC9JQucLL8d|Ubih^r4 zy5hS}uzKFqoFcI(6+34nRg$9&1I&34CnKsZlaqCBx!3J64?3eOT>ulHvc(!Vqe0}` z0z2MxF;cCI;K17X&B~gfQJ75C0_0M-%v7{*JXh4%t-n<1^af5v z@D#(w@_>CxhwKsUX%$0(;X9coab`<%UM8GHAK$|5ug9dpS+&bVRI*VQYZJvckXKu0 zyfGKe!_1x}pL_XDNrmH84VdJN^N7M9jNcu5PR9V}&dzxZEP4e4!qhg|5v@oMiYtpA z!ts;=K_ywkuW)lkU~<+|6x1F{r0o+aCs0-84j*R2fJ(_oJ|;H@MlBsx=`U98BGFd2 z&Q&g5BDIT^YE@s?x&zQ{cx6>6qPlam#2B~8h{C$0XXqv-%M&z7NvjJ7TY?iHjSrnA zvQ&8q3IKis{R^w70~*m)6Y+CkHKqZ8k@?KW!2(zCgn1O++#=U@N8-2;$r&g}c>cm{ z=ENYcl3&Wwi}X|I_23o%)P+bSnR6z!b8XJ8lu-mjqtUhS2-Vi|c8sVodrX2iPqlN6Kh zmWO{bg?BbSfH}c~mwN7p8c*uN#22^5*oZfb;1A2@FRh)+>5>vmR11^ML`C=MWx@PG z4H@$QRa#49N@GKu;OAB=m*@cwfe&FBl3oIDLyUa&YAItRLX`s_gt5mY!7sT<@Xz=l z>j8Udf@qz9EP6{YyrVxrib8_@f0?gwk=>K>Jar3CErlH98o^?L&cQecccPgQmx;&3 zQ})sEC_txM`%v<{E*m}*y?;Y6ni0!g<;<)S&J!FLu87M?$xt_0#1%##e^d5t2YS6){ck)KLfVX1bZkXrd5@Ot?F1xC-&J&~?4Kp0&E zMhy1b=li>!=X(Bm{{VKtI3PsPt0Y))g-iy#t)?K-CA7FAfkFhxyX>U?D(i9bVeR>N4(ii6JA}X z)K0{xklgQ|IXSJV%QNX$qp0Ri%by*#uhvi=3L}|jb_;G(tV+lWVk1JhGFBU^HE1!8 z^RpWEt`FN}ra){ephMIpV|UxnkYb~ij)~-Vv9beXJCL<)b3m5$ z$iqZ~jKWa!@KjLH>HTqk#+sQ{nqJnG{L^pLFLsJxs0^Zx*()05|WiofVvx<{$#C{J$zx$W@HHj#ULzgIM+WP719YIC) z#H0hahA6;E-RXzu6dB>~QcU;L7)5f$)q-9V4W`p7ztd>l0>S$bNWaxRLNGCM}EF=)!RQPF>L!{nI=D(qmI7qHXd& zpCY9_+quB7zlg0D_c+FPV6ulMk1FN_oDQEd2`i*I=*@}w^7O{S8Umnueb-wJCwgji z(oBUDJ|d!szbNlv5I1+0=OG#RN2M<1IhmPKJ4RfP^7TBZ>bd%*H(zU2e|}GE&(pAz z7l9V{!W6fHPcN&z*??YOmr8!vR18JXG`m&ZZ(NMgj2(3* zb(%7~D!tMRr`Byfc&8j}mxu}5ljPLC7})SO^er*tjmclZx-M}e&)2j$c@Eot(x2v< z8E5Y@#`2{GIRrSFLQ2kV?>Yo9H_x>a6&lr9KdIo7K<-Bf*Qp|i`<^$8(LYhi@3XPR z&|{02r+;D}jF9)8q@<#zAx1g>CR8QT-e_(uaNZjvyHtMBRG)Q+O}t$&pL6k=J^g+7 zqf+&@mSLff{;%L7h6+Cqo-*~(nLhFjsQU0>*V43Hkb1S~zVO)94NXr+<&>14lLKLM zn^xY`P)ujRZ{R?1?l6Ny%N0LIZHsprkFagnlfG3$a|?iGb__Lvfi z$#`$Y;fDQ)08jBoIAz%=;u*%;lv(^2;0rFG@s!4L_?hs~kCwT8E0}?QNCkw-l!T+^ z;VUcMwB}T9Us_!gzwKM(!r|l?s3&KftgE+1(Af68h;Kq-TNLNtU%&K($p(A=UGL2M z`PUzv>>E7seyP?Qe$Ml9mw}YZmg-;8Te}w-yvatcto3P7^0U`ZFv^lRgI_@g1BoB* ziW*l;y`on{$K66STYnB9fyy3TOkm2h<4$c5G*&G+ckc^N307Pg%ptSfYL9+K6a}x4 zC`AO$t_~!PY1l{vExcpRO3e2DqRsx+zD1KmswK4pLC*Sx8{+yWqy5v{#b(U6IT>C1 zoG}}yucLdCo!pd7^3lD?@h80GxG^(xAq>v>sJZfj>rpyuoZ@Hpi1c5JTJ3Z{+TIo- zD(wfisDi%C@Q+j$4FsK^4(?j@MUaq$sH>kn_tc9ec0`5u;5;rfy*`*@?tYtTzg78L zo?Z&`TTEU$GOF(EcI>U&9I2&kEE3trd#hKeViwxUc^QpmDcU6MR~7bms7fnpRMYY8 zsCQcTvTs9~+;RhRJ87AT3}WJ5QfXE@?AtqWjO_ji>1^$o*^?ic>XLAiLa>*;ZE#qtllXd0KS;Z=gI2u>T7FJUo_`(scXK6Yl%4ve zX@Ozu4`1DlBI@0Q!J|2k9k0>+++JciZ*}3aqZeUU=8q;FeG9%v(ErO$WBGQhJWTkt z+fGfH%wRM2E!uj8)%}-59n!JlEfFc1qJFhmi6|G^OuA?xQ1er#fTSAZhU*v8qD(S_ zd*;D$-~}g4;ipP#Go+M!U53sb()4bQ`1^{b26Nk(qR;bfffZ{xkppwnilZeD2+3ex zp02f9sLn~zx^Ft9J0wwiru@AoD#5l|lDcUQy73s+*^3kTcON)L=UC!vHqy1CqcJC% zis2u5-6X}i)X@tyCig-fuEVdve|*Sh%`dR1Hs8`anl=j#4r zuWmv@HY&Qk-$rD((k-n``Z3R*>UDEB%?)2Xrb!K72_9L>KY14%0iSyDzueV;6 z=xO5bAGReO8#Rv`#(NK)ZsD?2pTD1E`4%@>>HQ-<=<^$`mBDoW_3^)p7ACi$U^Dg_ zOLp*gP64gagE0iAGa&f(>2uJF0C7fIV<&~1r;7JT9b=2vi$VtlImcEFEdRXJcKl*g zu2C<^mNh$`d?n`SARs(vhMd%F>V7Qo-dT6(-z@EniIwK_yA%-7ep{A`Q}I}(hhKA0 zcWE!&KQLAjf{6(6|7EbP?%ixx*)NfNR?TI|Upm%qKXPuAHojTF#(|YFTy}j4mGA!3 zjJx+MfUbCm3y$(v*m<0aD4V`g_=3tEEGis)OljH_S`whqUhGKA&zBKgJ`nY6`d#IO zCfuA(zkb8@V4mKUtvs`yHa`F5#WJ}O@k;qi*)E6eMXOE4DX4@8ev9Le_r~Vy_C(g< zvCl6VA5Z4lVRtH${M_w{Dfd(3&21$cksNF)Z)ic9~ z%>VZHxqpa#+tFbQXpo&q0OYz+G>d3IdL!(6lJ$&=Yr*_;cc&XgJslDCWA{hFx4dgO zE^`yQmD7iw{dz?usnPz>YY0=b?#$Hh{wfd2huUemK}lGRo9y1_3(Ansmt=B44|7{T z(9@?Fc2F5T&d&Eoiim>)fB!As6fV^sS7g%}SNuA|Y2hh~R<2BY^fUf7+DW*Q%FjFl zY-LjTP^V~rQoTUy*|wZvsBre$g7bZ8kQ4RaS!T0awr2nSsTjPG#=`|^@I~l!a!^7}h;Hb-HM$uTu zisXK}rsE{j{pqZhjIsgIT;1$#_9f@ft%lDZ>U}Erm(owVXMZ2>i+%6$KDhV}+ma~t zxkO5s?nXdX)d(=x`;Vx^F?%u3?5IPZDg}uzv`B13@CoyP@6+3+k*|A}lbl~l*nA_3 zO)TS>iMQbt0(g$Ef67nVOpE_lbX^GE@G2PL<#Vt*9N1>oZDRXTJ&L9e*xUB4J=txv2^Dh9-qk#V$a zI2{9PXzj^zygWXf=UpC z+2ezPT>!;WeJ9IO?-t^OKgH3N(cxK7KP+x~j9!~`PZk_C6w;_J#(s-am&=U$nBaio zdsP2jMvEka!s;PMWfaiJ{Cv3kpWeo$8CH2m;R?3#B2Z&6{pE`_h3${gXIFuOrA7SY4{f1p(#*O^aO;Ri@Xzh})b}ILHnC-%^VI)XpW~#n~Y=m zaa8|Cl^QhfbKD7}*b&zxAB1tqtVd4DZarb*_~cjwmGGWOBuxh>{P8hADt&)Q_?|5T z>Aux2_tH&x2;QGgZ#(vcww@4xL!0#uHX}Rj4_1r!3!9(y=VoQL&{sC!>nUp4u|nub zRi39M36GOnzyfCG-)=R4j7_#&dbUevt#dzTG~Nyp@|_AXySD`{x~M9e=&g$Q9iYK< z+8yK(EFy7YL6c|Vk`vFt=Ku1a12^|lm|GctolmEnrGQ_)kbyX>gDiUKshpQ%Uh4Sw zG*$3;GS}*~8!RasdrF)u+JEx7y{^Q@8`ki9lC5`i&zZ-7QP{605fuvl^_Dl3)&aNXB+jPemiuj0 zdGULA4pI7dR1>ZyHLz~tUCL9%M-`>s!mqq1iJ#nLeHoWwUu1~kEi-=UeB0NVU9mu^F-eeLgSF!oK9D>mmw|f|SdMje=(pldf z>*%Ffs|o+PPMVLN!zY~^M##Qu{7#FO{^MfByqbH z)ib;k{gc7PH(PY1H<^{oIFV~80p4X#wlbHJMZfk&nN6_jyICKPdbg+LOkDaaN5qF3aSP_N2F7)j`R&cEUr?xY~XnyxCC+)83sHo%| zZM^Tp^W;apYgyZWro5CJU1gsndv)GrZ1_Ql2Z1HuPcK8dpiQ?_!Kn9_sNqu~&d6!xDX~VJ z?tC1XLAZi1S&u^}rw+f3a8ms3oNr$B`l|zs4xyVv{H(1qOLJTg1y0zyVyb={{RT;u zHVnL`3{Vk)X1+N@W$Z$sQrwt7J z7$Z?7q_RUrIt%qjF(32$#G_pX64%0(WeX#P7^pcb28Uf(jo#O6Gyj*jAsMSxZT9GA zVbFKbzu3?4gUBnVy9>E@ILk0e9=X@PW0h(VI0NCYl|TIacocLo0P(SResJ?OEqH? zPTF~)olfd1dIL}zm5XIi@%(pL?;vnRdeku-;2Xj#Dzm*0N*Bwo&;_Ix^t z$sUrWecvfloE(Uka#-H|o0JnM!0iz(*{INULdO|#?&+>EUTEoOucXT_+M|o}dxoAx zEQFsVRt7kvI1j^_=oD>P%0_lH^?b~JpTrP9+v+V|cNUTi)^%C_Gb`%Pp+FaGrm>;+ zrT0dn2aqJ~sdCMEdB<`=^(H^4(DngB_E3JELL~Ew)n#v*Nfv6+5*_eZu_{MH-XmBP z5LKt(`-n?NtKMEHZCC5oYaSyx6Zr#OT7xtzPZx|KNq2sNj($G6Kj)Pw1*S%=tJqiwy3UFw(CtPVtvePp)El#YDQte?p_$67P!mCvpJ@!z z`yvz0{hThX3R&LF(`Qt|^|qyk>YG&qSXn-1Kp1Bh(V!j)>M6aoCryt9CqDc3fDRoA zS}h+>DoYX9QpRbAG0#2P{0{95HK&eG-)0oQ^HHGeVxv1DKJSyL#Tm1551W~n+>evK z!9cP4=CRPrPSg3RxO4X9X|qR%54-FlrCfT~KPrIV*DBxJ5_gciYiRo?$Kk8k*(CZ;73dFW?6n(ctnYsR!w*B*$Q{Dxxs6+ScQFDV22KDzu ztMRqTFwVBqD2ls(JRUD1;4ivR%oTXWrlzxj-6+$b&2g!0YdLcz*1=ST5y}eF@j-c&hF(?s zT@lw_t5YfA*V?aH{I1m7&me1i*ug!(b|WnP5C=FI{cfe zYd71g-(G;x1-9gc9YcKR)%|~GF_R$V&Ff`MZ8L)4rybD}{%fEp>&F;>Sl>+)J~H7Z zSO?hW0QnlaKYId;z7O}e*;w`;#40AWEc<(YZM4NS;=e8c0X}#x+bcxd-cEbu#0(Jb z<#Tu@(0Rt+1ke$=CO%N#3i-x{hUDg4$oK0Zr4`CYBkYDEk+sL@NP|x3R>BUOPCw#m zhjcG^tnN&;#Tw*YqU-ZP3@@uxK&elR%tA`|L$C#aE(j*-SP{TI3R1p8^fn;0Fn&Jo zZrHHU`0_<1#Q^k*6SBq%FZ1jKf6phcXnI)A2b8;LlX8hzi1Q1#+y-@FLDDN% zu)IGvej``#FmKG!#kztBi*wFumVb!SN0~}9A90lW3TsHQX28;2iJhDCXrf6pT>=1n^=Nl*YUl=<(4>1Rk3n@A4~ zk2pG`ZCOeg10h)(YwbE}FgGlE>iJ0$(~=$3SiJ78(v)l@z{j+@@ice!Y88*a(ugW<218OKMaqN=|^B(La#Ji zI=D_DP}`I0DE|T+dXHc6XqJ#Ck6?-anNv-w@lN~op5GN0Vd}Nm@>PD|^1(&)8RGaX zw55ZSFfr?2koH$Rv?mEsZ@G#-xQRXs{7?R*dx-vqD9@IUF#H?1f9dgr1Vrv^@qt84 zseh!@hWS(K0uk z+<~&?QHSm z!69w>*bic<$fG467i_z2C;A}lYU5V~1+4HRcJ#z2{CGzI*9jp*_G7nC`a4`=LoaNL z3NG3V@yj&@fRM3Ip?D?w(>&X=g6@Z^rwU`oXA^!`oijIf$eY>-%sFi^D@btV0)pD( zU;3wttg%ps^)48<4$2VN-KbLmSjgmj#D|1idb`}vHuN0f*08U(c%I`UYJk%A!g4%5 zSLd2u{VcWg`=8lrMHaso1S=3mrwiY`zL54wO0x|{mft))0Ue6zS`-2NTq10NdCow=t$n%=>dRTxdZWel=#d<}5u2^w;NldVnaNG4g ze(Q^cc5AK~pKx^?!^lxkMs4Y3;;$72Jb8_-~}XcUx}b zG9T1O>l!A1gE1zoqu$ZBhQ@wuTkA)YlP=?@2(^O+(mm)BH2~y~?E!UuJ-o2#LffMD zDo(FHhErWa4skx1GhRzCx=Xy?^i8*){O)T$;ribPujir`4&p)TpP-ci5Xj12h2l*m z=^p5C>|8A5I)7XC4hWZo5hLrRjqW@iOoJW?4UWNr>#vGVo;Bb@u3nsFjGmPATwLJV zR{M8;9mF0WvZ&{6^;`i#wP6Zxbr(TCxUcWUuDaxZCCtG)jvS72!q=8B;;?M z|Ez(HU|h1NInfBvk>U~NDiGPp1=Y6=avBMyDgYtE*A}vtD_Pl2ejNru@Ct7azTF@W z-sD3?`XVT|@uUYA50Ev-qxDf1*En1AoJv2Jb4;)! zIS-(~$~Elh?$KH|_`!DI^Wg>Koz3oFM+kiV-1*T(k0!6XnSfl@CbS z+vRMN%eMxLWLy43AJXQo7)h|9e{-hPO8C9#vxVnnuL6Y;OKkWHejn_GSt-6oK1LB~ zbJSSdCVfrbel6UR|0Qk~f8BX+2P=Yyl{GQ$?Y$YFIWVw-z45)S`E$yLL$oQax8Yf0 z(Tmm1K>f|jwxgV2Jr;5Wd=xIc^v(=mq*h5*L(Uac4sGc2Te1B2OaOQSGF@H&T_U^ZGDIXsE{rWj>Q3e-BB07GbT9&iNdO*Lwn{3Z$oAOpTW)CS`@&Yj@3 zWH-5}8DjjKLl`lPy;)z+1;H2M4ablb*dBtx^i=JiQL4l+^}|(g)+3w}T$>ySLpc$P z@PrV<1xRho5Bb3W!E;WqDRp}*N{XnKuela=1HMmUqki}T9z{e+hx3K+klNTD#(-t0 z+P|RK!7}s;Mu#R~=;QW$lpXjJIV*dJI$WL{sd`ug4yJBzLn#s;aE185i--?6Lu}y= zL?Eq0Gx!>@K8=FrAr1UKnUcmKJD8F>q8Y_W%*J)@3hyUTGC4c~>pzMpM5PfyIL?jW zrKCzKhvs0!J$xiXxdwDZ*=ni%x*&f7^exKy_LR`F zbuXpy6Ef*#uQ20WkjG`Ww1{gb=IZmP$5)%~jVN8v$Of}cts5q;WTr9n+XZr)S{mXN z7MY8dTpstd$B<0q&PROST9F1JPDpYqgRP1@S?!(6U30NA9krvB*{lv2{*AVbyPit$ z6QkS%$;fY`#wM&jYoZf8vkFruThai}OXXa=-6cov{jbm=j5KKM#8?_Xd}8WpGZpb^ z*DF^&=O%H~R`l9B*GDX}bW}SRx)00^7Qc4L)t9(V9tDV9zsaSS;E{}Qz`U4%HC`x8 zfSN9(Ch!fRU|INf%qSwa;LRpm8%H`MafLOQ0vjR>-&?OfRsf@E6(FdwU($XTG>;Z- z3Iw28=pk}aZxM6`{p0pBR4}DB2h9rv;$MpM@0W$PnrNH(M81n2Uq{C zQ?ZDAXsq=5(1i%{?A#GvN}^W6Af!Mu0z86*&tJn~k8s(jeqsRo zc@`MNb*>55Ck0v@O8h@i>3wkDCI%^@2Rft4gM{@J-If&AGa5z?DD6pRdL zekcI8rNwe^C zjHXtAp@@k@c+ai>1KB#1Dv=03ArYBRB=qQ}_SA+4dmb#h6jqz2P7{`GGeie*Z9P@u z#_kdj?bp_H_}9gW$i9;+uPyqv{&zcyy8CdSh$OLjua4y*&KK3AAv+z~`&%|!zNN2| zgGUH84dB|*NBglYoXyBAG~DlyIw}0O0FCKb@ICB{K!JT+TL&?yqWP$8`YL-d3a?a* z@R>YHI}T4W9dH}9M5RI)-*=!pK7Yt}v!sbrZs19GHS3)VOw(s+L@M zOR75v>{^y?nff65ypv$Coq2x&dRzWU7%ukCl}P@Z*R3yG)I-i9yN(QT6Ep|gkrQw=KQy(ZjC(18471Hu zH>+Iq31P`i5>*^98Do=L3KJo;4J*EFKDCif!UanH*AOm>{_5R<9p(IKtAuLD_YTX2 zJHb83SUEywe)ip%9kgIRPfD@_Yf-SAEwi0lho9Y6?mwt?ZL=vak!ieGP>$&Ji!p7w zAc4a~mn`((s|&+~d_v0hS_#S37sG1vmh)^a;TN*EWn7Gf}i0*cH+ zKVIa_$U~^)48>R;{KDi0!YLWOJ50x<#{L=;`UTLe3jm#@hF(b7b_5%3sHM_w zp1vA^VAC-P1tkIlwR!5(7=V5ADNruyP)ckmY&lPTw?fIi`Lt6u={;SU^ZzbRf~6G) zgRC=6{5$mlGXEP?;$bWkk-R6@m+jr*Gv*_hC-GnNj_I{KgVInCFfsRk_wd|Sa1N2M z#A%l#HLXLar1CLSPbaFee_Hb9yut()PKEyM?5>nR>o0WR0I`mIFZ}QYqY^U6x+Gg^ zJX0Si7MUuP{|MAwja?4i7*d!holC^#ZAo~}Kwk@Wm(HKTYPY7Z4ip^L-U*@o4yqV^ zI_MFc>*{w1+{dAV;BAc${=3N0RM}>@$rA!4K9F1t6De>}+LKtam;tLx+CC6(PZP?g zk0OjKLNng&WeZlS5l>=1()K(u-eK~tPJ-{nZIlEzhJx6Ev0F=C7b}76`Q6I6Kmrrj zp(VrMFoNi>FeBOJ`V5_mK^XY8C1nDZy+>goagf~Ij zn8+^r<3Ynscn4<2&cP;p6ccl2Zxdcjmq2uz{x`gFRr$)n+!@U9^U8wP)$($HN5|t% z5u{{f)@Ty>QN~w-ic1j^KK8k?09zaBr7(Sn%TsIb4P1LjRm)1a*F}%hB{0{Az@Sg` za2kgYVbvXU4%xL1ejo@KM9};ULh=2DGJ#=2v&;jX|D9i0>HzH9_VL-k$tH-kCDVVS zButyKfr~-y7Z!|4T^n{_5rTc*e}AQ41N8&y1$yq`6y}{;8@+F#@nA0sfRlX9_Yz3c zI(ot@Z#Wdz6a#78(~q!3A4eo^*)FV7<^acBU==bG@^I?!oG6r*2)Ji~wM zaPlSvOGXs$wI@(TWNnEoD7f&r__$sQH0>yjo=i#OdrqXJMds%Ycbe8%+*=!2@6532 z<=jApSn$Fz%XRCOVkMS4tnaQ@90*iUhV%eE%WS=*MA7aF~TjLG`7hZx}P z7MM-kY1qo}M7z9fSjq50yEHCbv;@ta@HgQMT9a0$!^o{}0=Cz13M}52oK3i21RG(w zCk%-@4Fn>&a%`4@Se15ma8}_}kd^7y2a5+s>044>=)GRx*hNqqqfa&ZH`bw(fk4TV z^NZP;01w6cz{Dq#9f^A(+KTJAJSNZ9#<9ETG%o@R3WxD{t?PU&tN@j8B@YNzI}HYQ zdP*tIHUVTE@+U+ddGuKBXuoTraS4lDxLC9gQ?b0v(yetF{zTcwh#bgdLrQjh8SP$u zKv{2%eNZ9;?ak5=RhT4%)d&-?#8nbpf8F0<$U)UBl2oaNuH@6)--{svH>3r8ZT{~G z)Kf2d4?!H88#{@hN&A}8?Z5VdA<|10w%{F}u&wg(D@mFx!QL8rFX}D_+srLk7!; z_$~c8-21KirU0!6VhYG07QC3^cu+fa3{!!le9cz(NLc4yFd|#&Pf!8dlYJ|185Y7J zNjfrlPXY9Nv8BCQtn1LO38S!h!rpYAPmr9&Au})ZzBQo)THn5F!H&H8Wu3gSSetPe zPjE&Cs~R<3@rVpBylufhEAM}~o=x?}K7J{r?beG+=VOtd4^mD7!1V{8)K_7EWK%m$A-xi#$3lOLy5r8`kyY7i+_5aW3jNJEizX-bBKa7z-x$m&uM~h_Jqa2^wyD^mztQL@1{&l)iptX*!YI z$C8_iAEq7u{yNR1CMaLIE4R^mW^U?-sz#bg0l;;S?a^bZ{nw^De?C8C_p;uTj|rgg zRgDgMaD?-C4;jwLqspP8UKa;Saf?ekm$?YABWW4g_F{u7BPE(59qc2lMlGQpi)D>y zeZ%lJWovKzzwGAzLMm!S(#8ahquuZZc`kA8>Ds1BRYyO7X@qja!j!!D+|rMrffuxE zrUFyH4#xMN1vdx?i;GE0k04;yX%E?16x!HW=bJ)bX}tg-ATfP0A%FcTH4@?ji=Q!A zrhG2|X~oBDl6lcGub|0DNspc}A^8ha$bpN?2;5Qn0J7dYt1TE@36Yl`&!?G}>zmOi z_KF@x%*-na8PBFAPj^Hr!d5RpKz4TBiHE=C2IS@svQ7CU+M|ZEmdFMqn zpf*4C>*ipoP`738*S6;d`EL+|#f!V>?YFO*?N_NBR4n^1V&0X}tz9?;J2uR_arRKd z0S?3$ZE`t`FFrcukyimkffjABpI;5qcJXfWwMd-;L#W=jP*$*YP3KX0O&L7u+P$~! ze#_qia;P){nfaGm;+^9qqhvm3#rkS)m%lxSBGy}@k90^q2N^lx`PR(fGpI<^)NCS= z-MrPS9Z$9YHFso0x51O^rrg1t2IcPY#8W3$esDx;%T^Y-Bf3Cbt804e*zwyi=0MZ8 z;FI3GNOZCPJ2$7WXxQ*`L(t9#o1G@7;0)lqds{AryCc(V9$d;{bAtJ6mHA&rD7T!% zcxHdq*2IG=U_qWqq&jUP$9TDBTi4bMxCr!lH1^nSYlD1zwk3@%iT%xMA)bZqA% z*Xk4j_BfsA-1Ph9fNcCi$g{8d#12s)xG^=hdWkQ$_sdIO=@mV{L`&qej zzzb(`noqd{Z3gAsrWQ81m@+Az_{_Pk z^cl%C<&P%xiyzh)xA}|uXTgwug`^mGly$+`8$aa;M^BxhM>8*$EjwIpQurD?Sk~_M z_NcdYEe)3Ydb4GrQ)srf_hi5H6%@ZZ<@}CLD-D!+KIFCk9I8WQ_{NGf(g=BM)lz5j zS`YtsQjl`whv6j`7eyg{iDz&xQZIBm|81N!yC^PWv3$n#(;qt!=j zYdRr@C*-2|Nu8eatHbPfFbnQey}gNk|Id6%&NCiHAX6jQO^s3khq65N%P0kzipr!? zcc;DgzQO0jUl%kB)ZfLIHgP`7%ifknr)U<0fB^osSD}gh{#T{NPWW7;-F8-WB+22w z!;m8J^_H3f$$OWf=pg+Md7CXRieF09R9n*08Zp##JLL^MJw0FVr<;(sscwyr5!=}p zRIyRhYHB{v2;?bkrs7QFSX(UErIDCqsV=7X!0}Ys#-~(Zg^@!>Q;GMuiu>B^si~+` z?7O-O;|0=m=AQq?1W2_mU4?8L><={m;VoiywUQPtE*iO$&YJQ;_*d)}8eMxcf>AGE z3A*IeSHfNn>s%YWP%e~5Hm@gK4by&2-gQTRc&{4TqJ$0%v%a91~;HG-Q7kx=G6HJVjG{(~6 z%L<=cs-acI*}sb%1_&?aW%9aBD5quU8Q(MuXjpq~euI!5Jf3FiI33)4vQ+c&&Em?T81hQ1x_JQp-M8S)zHH=;a5!XWj}dwTy^Q+>(0S{_ zg)GQF{RLI?nR;5OqJlNysy@4X=*@DkY}!s^!Gy)3+ad?F9vFM4*>)ZiLi)wkL*U^r zF)c=v+Yx2ESJp_H9&;s&rg>d`4^+9}3%;w!GuyuC z*73b*?C-6tOLb&#E`MRXZTw+FWBkOP_}5j^FDg~=f(0?|gCrF~4$V#r{d9S8C^2)e zrJtY9^0@)xWz)N2T3$w49(MM-oE9zdJls~Q`mqIS)#jf!T?X5_C!cG6=+pFbI$qQ$ zRa25U{xaATDu%C}yK7fTz9`#Y8dfSE{{G=y`x)$-q@(679h0G(RBDyJw&vA@;AHSG zyg#t-+9Mz+NF#c6vH6>B0w0)En=ZLu^-yaM( z1bD`|c)VIJbLi<&=W=oh(r-Q0Ex)}F@xHrQnJK~IZLL)8%-c=6Pf_6y zuU?m2cB8?vV3xq;#VF1;hgMpjdAcgOw}+=K%}}|TWyrNKiD%?V+@GD%F&EA&+IEW% zVSB>JH05^r!78+Q_a8CRqrO1WOItS!X4)}c{rc=2Syh>(vqTNj-Lzy$UU9xlZv7(k zosYR$JcC|(SsH#=U!G9EPiUVgYxdiGDpX7Cc!4)}u8U=>p;a;a=u>i;xu;SE9|{I~ z(k%@apU1bk@X&s`Nv+aZ58R|49D-cgjZyeyjE$9~9o_jDAG}~$1pS^(w(3pnKctlx z3dZ3SbeA?ap9TB*DMNBK7BM;`=q{maz6PKx`frO z(XVz){3{=AuSD@*dG~N;>8olJ2|yT=zE|@l^`4%Kw})Bf=aL%vOQulaSIk3+eIXs; zb-vO+Y`7MTN0b@gDyc6V5Svf379);2aq3T7C>f@xc+XBwh!XZ0k&=MLvZ4)!hcc zo+-#(9wACkZA!2aby$U&L6bA`)S%}YW5AbwXXHc3HTFe+Rq?7OTq)&Tb5~^i;I}?& zTB@v|-!g9+WcAhQ`wS(3`cD^k#baIf$-LaSY3Ls3m4BGQ9|wwQD^GQ7XeA^uCU2LJ z6CTthsKAXK4XMm3*zb(&)cl)!Au0pgoTpaSwpm}VcmBE@|2=60nRCf{a4mr@HFHM` z_hFGE&?3V7Lr;nheGt2e9TxvKQ?s?$x@5s+E+;WN^%|~s(0I3D%YUoAFpS!v5(z*D z$5FYbUPpVc>R-EuPGMBKs^rCXR62m>jCLg}>z1NvQy~Xj9W&7#t!)!?-ve6P?w;)L zdv=^u1ZQ04S{H9?Xuyn-k>*l{G0f|-;_GU4$ z(wR;IZv@WjePS9otz==D_*9cN-2Q4~!DAAXnJ?d^A8uoyza`WueA_uKr-b2tb38b6 z##fwsEVuR*_6QdrCN)f(voBH>kf4aoOMKYZMp3ZHgoKM+zg!B4X}(*uwIM~lp0bx) zAXX~wfD+Oez@OFB75;@Kba$Vz|6Y)=B9AJcub&j#@a;QE!2Xk#q6Kt}GZx*Xk1=dl zFKx-ykYvfe05OZamqMcXW}i%B>ymKJp{~N=+8Jh2Sts{~aX!v3sjt{v03wbalqcx7 zUKm+3`6V<;sBPPZ^Mjq_pYVmtgkE+iNLye*>E^FimC90+1g+zNohi$1u;1E@r+qPZ zTblJ?!E)@nAV*O3a!DG*h7vXj$JcH>l=1Tcl&T8f=wEHJg!$pDeS?E)14Xg_PJ+Uj z%=ZK20)E!Nw`?l0vg62s_^vnHG2Gy>lD%$RixBvZ=Ic0f5vsl}M+ls-3J!acPm6s# z!7t)XMzK_C&%FBsM9`4GF5yx`XPzSc4WolL2~W5c<_OuFOyk>fET1yJ>3B+9>u$+n z>MU^{PKR!C)GMxJ8Kr#5CO~TWBke7-p-s1_ALUaUi{ohpkX;SR#(I) zT5|6Zt>y3pSSlCJ{<_|camb$&t10Gz6okh2~^r)Frq7(*` zI)0h)eClJ)`16C&2N<~^oBL#g%Y~n+{eKBOk83#&l6n2hv>(6h^W3E-6%X1;I& zqxJ8Xur6|~n&NHe`ASZCDA+!0(BD=V?qY+;4SlqH#w^&TZ*Tcr<6yj zj8e0DI(~^)-yLPYnuj_LAOS@g9X>%@hw(s^31#Dzi+`CSudv_$;pocalFHt`ii&I4 zVwR<3n`tF2mbk&BnQcmL`O6fiY053rG7}WRH7hHp#VkW9%}hL@xV#d;j5c@8#Ze&pG!w&+>h~=bV>Y-OoPvtbfs|<{LlNl%d)X19p73DoSVB zy?cNCxjnFC+-t?p;_OgS%Y8Ux#2fmfDEG$%ch>>G z^;?hRXEfwq2^5|k7On!$xb7_pyfg5)*hSu}Fp z@Qc-&mxFdEJ72}@uH5)_$=8U6qxNyVq^Pm4=XNP|+(qYvJwprFf7qeL_Xj!i<_C{n zz2>&^>@%+w_cf13IBwhP^WKb?yzZTT{iR#4q@Q^AGO}{5N!vJO_WT)~?zj4y`_%(K z5jX#E|C&D6d+~Z=){q#fSQLc!Ce-aMIChhhzm!nYjf=`R#+fiW;uSqRmmHEBSZMy%^D6)M2=x}-2 zuQX7Jw#d%r*|@c zblFi&Gu+(OW5b!F-sc|H({H`FF>8{N`}+IMAKqSPPc|J^WhHr-A3w40Ro#JLwnJCY%Be8L<0xQ&yW5T;@cBvlY!Q}{&&kF>`(^E_VxX>Lm$shNPg-oo6qgJ zpHN+Yb?MJ9FH0Q94%xYlcy$4JG5?|(%TiBH?0lB-K!N${Tkp~G!pS(oC4M}UzyG6c z-Kn#4g#}nABrN;L5e~=>towb=y6(~c>=3=Xcl|AWiy5<+zH=b)4aIX;1ckM3d%*Qq zSmExy=1IxVUjG*VsXttIG9<>hk|Q}-u0d8aQP7|c;Hy21@^xO5z=-1D>IvCHRc z3-yC5T^i4@dp`)jZcnc~(D1hwUDugka}Cm?WR8xxX1IS@M0Noe%82)C@3wC1xA;3W zZ|>&w$!P~D~kTvT5PCkRLKPvN| zJE5(Nz=q37($PPn>)zgfvvuOuDxJ(rD#9%~csQ`FS6hz<1~#Ri4_>djVmQZt>iOTA z0haaI7mjD&0Miem<8}~p&2B%)`%`+uC@-B|9?xm5xa)1XibMV6VO+EMk)moHX6H`i z=8qj}&Ssg8a4}u`s6)ypO`=Oar(|e7howcN+a>HL>L3ouKMw0ukmdpV##c?e?7>GA zCN(HxyYA*K6!x6iZT zP-%2G;qM7u?9|b2+V6p#)$v5i1ScLFl%m0LCl+|R`Zv0$H^9RP0;ww|j_xOQFC|eG zkzFa{e-p|li2e?DwxDXhi#o1o}Z~ zz&r8z-cg$b;{X2DK~qj@X%kMRh<^3WVV;WQHvT9eLR}c4KHpW6K-@32R;K1HBpg$g zya9^S>HX?W8jp!r>N6UTc=}=KS^NvB;(B>fBhX)(_I0eCB8x?5#Lguws2?jLx~k)~ zwG*A|G|GG0BjCHs`Tc}4qPB6YNBTKvyLL|(Bbz^Sn4!v*v@uMkbVgGfgFW!lh^a{h zEpLLFfIX3tiPlKdtI@Z6lAe5|4vtb*^c=Dt6~;G|IBv}YiuRCv(Uj7pZ(bNwC%;cx zKan)0I4-?e3LTfCV7-%GUQa%X1{1DNJaUbGt~lEjowG0)tW3yT;13WAC&a!U@DPu- z{7XyjjHM`^P9!A|u}6eut_$cb&o=nl;2jM+&0aH)Srfw|jd8jvKQF-aC$<($LJtsDh3oIjO+F`UFqm!fA z@J?L5j3~b%X~UaG%qdeCS0==9Sd28Ww7G}Sh7B~EI=ZX}A9ygPbs}ApTnzsF?9Ca# zSNgXrD3uZFq}Dg{`wDeY(xkjg#BH%<98rYYdb}VU(SM=YHO0CmY8c>wUGnr=M$J%ZT?^EoginB=p$9R>Vg^6 zJ?I)drVA5SUZIHVg7>O#U@-$~_fu$&nYMAF$`xI$s4OLIcq%Oud;addcrRMk}{rnNXja8j7MRm=B1oIwSQMhytZ&6DNb8A0gok~Xu+g1YFl}T+rDk$ zg|Y2b3hS=Ucw!heJhnl;1~8LnB>o@{N)>y$RB_rzSok+Wk(My1PU~t;AcB3hN9QY5 zyOVoK+X_;YH!mWq(R;vyBYE12a93T3w7yhVHTXVX^f#u(r66Ba!H-tr8!8n1(&j$( z6)RoQF_h4%oYCq^t;A!yxC!MLDY8qNfbx@)OVJp%tohC2?Um8L74o0p_jRHB)h=C} zIP5_w!*x(f3j2XuW8P6$qEpUoes{sULl(cC{&FQc;$MtLZL^e33i_euXBM(`-tQEM z&1Bu^JH;TSx<>&%c`cF+DvR{Y$8RQ{l$P|-?o7zd8~ABTsYri2mMWf7>0Vm#k6j%U zts$8R_mS+qALCDK&m?uh`y#1H_j)61lls;P)ski7C);@^u}Az7B6AQJZ%%-AmqaH zh28D$+o_}4|YUfrB<~PDbuo}8kFU?QJF9>(K|X0>wgutA`*d_PO#s2FN4)e z9)sK5YHpa=CT>{CkkX2 z*aRLu_UT7NH?3wOVNX&8sGZ#g2n?|QDE+jm2}V5cuymO_xxM0;c2bt8QBRIz6Ev;s z`U>9XE0bYQP{Su`Gu>O)=?&B_4_9Ywo_y3j{ zYT(6?bQDJC>e-Mf`%=R6sKM9r{zpsC{>v?H1o&u zMdj;$*6I6rdmX~v+GsADS>d4B=R@ojDT0Z;@|c(RZ}pKHn%fFYG%(*i;wOq7UHItfanFH2z*yDpL3}W;f)C8U~@Zv8Z5aQ>kbyO$iKb`9bUxS-;KWYbfN2pA14h;u=Z{(shd1?V1%1neB`~QaKy^HrS+MYF*p48*5cRZWrk zq^c&`#+x+F;lC<{eT(FTzcw5c9Z_l-TmEAZDYtrioT$~6tvp7p5ZZ2!+*b&%18ul4 zUVCGLn}^FpJDO^i-OX1@LmkTEeAJhokRI10+b<}qvG&t4Oglg0%3s=}KTxHhG&3e; z5BGOL;~L}?k?bKT8nTBm3!;Wrt-5%gbM6PBY3Y1FIg+giVaz6hV`;gjbuR|z^3{f2 z&9fiutXlaFKfpbc-nu|O<}x)U8o$Hi4R&s7N1u8vII+ECS4wn|)%@#A(Fm*Agm(T> z230oqA<;)Y)52J3HkjE>QlqAwBRf96%X~_S(V*VCsArcwiHvZ*M?sj$K8^b*Xg(?J z*!Eq^W%2D=^_^tmaZ^=m#J`k1KI#Zov^6oD+A%$NrtB|vf{#16(m4a$;*#{|A3B-x zr|}b%;@QNhQpP6r?13L|livEx9UJpdi(UYSto6wK^%Yo$)kiq{H zwB-|8gwdBr;^ng<*1J^nx)1Pw_JhJ- zv~ck^gb-#nMY_0rN~8i=xRiY9?rqD3{v^;J3SPMI*FY)B`9Ds~L!AATd=U3T+tUG; zfopWOK5oVo{W2Q_;&P3#QcHSLRVg>O>sLE;6`6Ky>S8E^rI$-Z@-nTL@^ImxYCO

7l- z+yl2~D>R41H@_v2P@gsz1=;GHUf|CZkyck}U#$X)^7{>|?g%iH5bhaQw+Wwf)iche z;h$L_hsPc{^E>DX*KE73A|n=XMILefsA<-AvDWL39&BIHnQ(h{Zru6CAjt9({zTUZ0xGeN06Q;rmgZEsJiO02jKbUv5%d^C)3*1KzG+zaxzzr-#Zo@dY5UA;E$I_!wAxo zUwm1eM}v5#gwu&eK>~AS9k5^0;rV=Kso>^6j=9b2C@|hFf)UPfUM2{i`glvu6xxMw z;W@fMM1>ucqIft&*TWWVp2k8*XWtI7A9ixxx(lEAF=I53o9eO=>5(&-9XL@)eA`ao zD7Y2ZcAzThUK)hskC4dpiz=2=46ziCA^)7g#K%1p3+#iHhaW<z>q2RE)q|r5~!WP#+2_>ACWW_e3 z6PZQd_7~d=qGDOaM8W&m^_O?yHob*|?}@J@xM^W}WQWuQC_FzU_aSAXqcCuWUn6b6Z^73S4UXlH&%^K1L@4B{B7{CyKm>fTH4U%#u)?t z|FDT|tjf4`=aIm}Tk*P%ECjo9F~%ME{P|0?KB?Fvt2xJ}O8CzbN#y&!#S0SZbM0kY zwN3hk#Ux2)S-)1u7SB{W>B9AN_cvFdEO-w#?{c#meUz^&T#C+0 zdM5lQR6^@xwJ!0xXPc9hO;tu#>D&RMh;>t2B~_vJSZI=MT~nqR^FmjMu+(9$NzUn5=E5AiBpK ze@##lJ35VYAesSQZyCo;<`S4m-weM-`Ka|JgEjn#3M-PedVO(H)$GMv2q^t8kMobr z=Mq_i*bpux4`2yOYJMOwSECKE+KM5b%LlPOW-erkvT~FGA&q&b66aTdj~Qa6IoC;{ zSLG0x!tY}<1m3$pG0lMVXW?~>9>UKq6~YRM&G~xHf#?9J`pQQ(eqcan<>VpCav${x z$yEO&edVZh<>I1WALY0yL3h!EBdCtedi%->ZZ;cE9tsh3Girfrf@s~-rf5A~KK5Lu zDPfnTRlDN{QkLpo<~5V}ky@ zPDzHu^C)iy6H)(EXw!mjJPFNByBQ*kSpgJ}IulVqNgtMIuQqHfamztG(Q?yR(H^yG z6X5oQa~Xm)!gAJ{0nO*Fb&j}YWz9W)Wn-PWqyU-jcgb|$sbMRcOJjmZmSYep&P_7h z*Zs(XUOs)qmnHvtoco#uEf1bEXT=2jPk2aL`$)2tExP|T>Yx|U&^q9~0K#_C`CZl7 z5ynECH7fDqVyTle9R&~~{%To++hE%=X{p`S*j8XRSIJ5X(ZuNEAhmE8qiD>S$)kKA zQIPE(rVf&vS%^fLYKK+vDvSe4=*`o*-yFNw*5OV!!@1ca ziPxv&qF8A?=J!4eSk_zk720B88Z_@|45yytQ7<0!84WX?GILQAcLs+d-W2Pv}HC2GHE zq0_NLH$zo^XT4hbO7Q7?bH8f`YaoVuvEwa1!<$SXC8pX(T`p?l#9vYqM9z}@AObUjYWu|zirTybS+)|5EmP<(3* z!Ms=%k`H_rs0M1rGLKy4n-MFVi`V$5-30ikFVf<<#o>@x+8SCcv=L4BA*=&uB=bd1 zAKF;eH$zcDS1HCsMQX8DB(RBH|8uh>#;q1O?W2y9_}8d8X^a%YQVFa^E7bG}}A*{4xbc%U-ol)a!=A&=4tKqDUAR>2( z)^hv3c?aNj*q5Tw3z-c~oE#F*Cy@lBOI{ong42=F&u6^GY3-1kqJDkd&GNCEEIgW< zB_&?ghkF#2n+sCohzFgKV&M+S0pBo>1QrOLTz|y$|Aw0kJf%Y~Thy&;Y5V&++DLog z@eqCUf4XP^{2Sh6i+F|`OK7qOPT5l8&B}e2XK>AVMzl?tdbMbr%QPaufOLDJC}3p| z#nhg_I2^MFS+wB=6jljaYNw~mcr%1@2Eqkt;m12tjc6uau&+TZ?qDyjw>_sszvwCK zRKGFIv!ZG1@%hEiuCS+@alR3gbq*~gr($A8@+^PSfH-dgnxMSn&O~Dz=Y4#J^)t-) zj|4&M#kxx9@E$1p;Sk}XU!o-HdgeQp zf`BqbWvyIqXTr<9m1YPS+cF;LYv=j#87KhL=W^20-cS1XK(4TQuEbaH=s9HuiEF>+ ztO55zPOqDZW-7dM*23@^w~sq()(gl1snF{3buu5M(0TsZT1`{bqm^al1rhf)?SFN432Kcf3U8E z?FMvt))3KTEKXOK4Z_X$!C6mMl7#5mnQ|Y3D`4&lBjs74S9&#O4N*P{BH_5D>hq=Y zzXPu7^awxr&f0Cj|K1|#P^!9kh&^Ybc9D6GLl{0|2dtR|L8N_QlE63X{_vGRT=|u& zfm72lM+~X^5y&Nmd>`{qH=tenf*$0QkHqxNZxcsys7AW%={irQ<3!kC8UiqO z#w^KB(*#$g7!zE(go>qQ9RU*cH|WlJuj!fF9rsFzeeU$NxR_Z-sP5s=QW?wUTZ*&2 z+9;hAvjqn)g(CH7=&oL@KJi+^n8-)%F9?6myBK+uu>@PZQt&mX%UwG%%|j7x4Dn!W zX*(t>rESVHxtvd2O%`V8AgEjAm1+Hw%isk#aQRCTEGMK%RkxhcB$E|TvHybhFPbzg(Rgk~gb zUJDiC0e((Fuj&rNY*1v3lWl*adC)8+XzvJa){wONl2dQ8E`R`>o)_WvVYC5R=;Uom zFI#B~*JDcujI)JPRZYTdVd-JbqTuzEcEp_ifX#96a8114WhmjRvd_m7G9cNObx8I0N}5j%MSZ^^ygoi&O-aibjCg& z+w(5HW4XH3`8bMer>I$MIX?H0HqIGFsHDajl?v8KUgIm@Q z^E6{T($gCEHy31=MAbL>=lWl&x^O^}``KBe5K!(g46#MLHBsio8_H8nCR1Xo9<(7Z z2PL_@ojs7Z(E&Fh6IoP zI#4~Xrdf|S<0Of$)Knzyp|LY@EiPyp1_l!#XtON&JjDfysWJ-WK}f`Vhjn_m3$-ta z`fPBm8o{+beySZ!d#?BvW_wamb*j(xT!yc?bGRYJM`ji+8AH@9h;pbE#O?_JK9)we z1eQhowZW7C7+9lM5n!^@F8b(i$3G&VaQ`ueis|2-F$&Kux_X>wNwaMXxoC`2MZOhZ zH$--TQ%Unyrs4m0m1LnN)~4;zNBE6xJ|$>-&ZzJN(5;~aw8T(pb;cPvxTYW%dNhoC zgoUoW{LMr1>P;Z~xTLwpF5N_Jkh$f*jX1yfk|;gQQ~7@4a-!TASofuQQ$mJnwJjfE zPINzj*TWIfUvvWKWQ#{G`lz^3_Tf_O+CR4dnzrI1_`^yrT! z5Sb>#3k>B*ua7!Sz?co2bDzek?5D$>EKv7(aD6>(pF|!# znPc-rk>|}Sl2<4W3Vf$BB`m?s=TTl}wDg!pjTsPRo0hR=xJ0Qzfo9I+R~RIvz0{TL zuycl9H1ZIGbMYzYD#8-B3T}WR547W#k>v~`cc?M!bM>ewhqP~|@zaAPn)5LZ zbVtC_8SR+GsapK_TF^Sxp4%@-k{_D_O=X+E!p2AKBw@V~MBe&62{Y*{-OIuR;iHVa zuJfob^zHYJ-Kl5h-mURA*NV23>h$PE1MnjTq@QnLx6Q8vlae4lG>w;%3&-Xi26-Q?k&9MG7)RI4?24 zVWwd^D7o`JE%gU&JY=ql)#|kkrrmXOL$jf9{^c6L-nJmX2u3|Bvr3*7l2(#c88%rd ziq>W1PL514%u%}_>BSE#RTX&ix*J6~;-;G>_)p6@$~GdAC!8AhfMr8|I=`Z3288Z-kial2nu<&AhOL+^MJ&$h(yl z_%%3BMn}{t^|tyL*;OmCIri#w-46k^JKfGn@CfEi(Ps}P=p&=4HY_~(k|i>_!;Piz zAX>1;`)vgIH5#HZ*n@CpYnjRs*X%Y)Pnet`j2y|5rnEXE(HIC*fgds^M#Fw0)lFmJ#j`7c1#EnVK9EUw)->lyrRB-QMH8WL`49El zUOc|8wKL&;c@MrR^DS0@R%yv4>JQv!X@t-^=>B(Z}dmlo8 zq${m%;iSpj3^N)yJQIVKU?5>0rh<>Upt|!ALXGa-=wxy+q?m6}KcuM(2WO z){-x8h{tc=2g}@XhS?ewZA4aaHLO;34U9dGIg&gJpEP7^AnmMHhPOTVS3yn+>78Nn zESj{EHj0w9AdRKpvBd9@TqHf8+3Z6& zB1wDud?5oAmOeOHdeRKZ_us&5&0JWEV5F8|HLW^p_(Kgf1bnKCb*yg5?GPVG>prOikW~+{d0RHsg-S$!AB+phb zEXY(^5tu|D0uIFd*!lj7r& zQM~H{GN&#(1qIU+Y8M?r4F}?{*HQm`HzlilE10dc07Ieb4?|>$w3i9i(dbuym=bn& z6>=Ruh#}E|;;<+^>R{+coAaU>qscboqAaOw9x4=t*^ouT08q6x=?g{w!pNO<`hsD~ z?iHYRd-dx8O7mM&%-)qupA|6`tu#9_r5ego;M3QF%8j25*3(adt|8uOE^AI9;Z8{= z-mqsj_<(KRrF8jUh6CLkxjkv@t_fT5rwLMccPFUHo@J$=9zs9`w+B>kk3ellgMlY{ zz!oK&b?8S6efcfXo#e>D{IM^qCkT;eSc;a~Ea`=QL*ba20od|qf`B+44vcQmVguB* zft^RJMxi;Fn@{kWf?+<&Mx9iPp_{RVqz$+snq4wVm%&n~;mg>%qIU|0Gg-F=%;yjD zxErQ&3qaW-*BFDJO)IdO%oH{W2tw$mh{rQw;2}CUx(d&Bf8SmP&i=|G1@Q4NjMy4p0Bb`HrFu6~p5dRH zf?f;}Sg)zktls_sV~DA^JS!Cp7qu@V>}(%=8FrO#N>6}z4>DW%s*O0^m3Wm+GMj>0 z%G16ZbDcG2%j(R)U}6S*7f;4&<+p7D%S;2ulb9zMM%Y16WaXIyCUaxV&JfMHYgP;c zn$|pC6_q^O!80QMMW?3uTt%B>Z=kF)?Z~S3Ob?vuNPFL9r{r0=3l#fsKw)YK7Nrzm zdNWo>fyH|+^Llo7{xtY-(h>sq6+QpD@>YTa z&a2Ta+WJ;PWpbn^GrT)vlZrVOTRvLtqjbz$AQ_QzCw2>`e$K?iX}R8l#Jl%OjC8k^ zueRpGDlW`A<^j(Hx^J`rdx08t+7%$y4toFUSzXz{j}uGS;@u6#{QaUXdno0osDx;a zz0d1aFQuVx<^q=%7k`Z06B@yu$i9EcPEo?LNk>F42B1Rew-sts1V|PK!qQV<*gs)U`AGgcV+)=NtSZ;li5lBEO#B*P?t4LVVKUjF;DiWuEzrBsf5kIIpvc1U`fwHSw|YvCRlx0(!SvR z__bhn4f=-{urs1SSo#u;F9&%XzeyNz^t2<%ST`pNnr*+dG9RdB79QwP7z$JGZ_bXc zyztqEh3L(Qsbh8oYt)v>M6|}&p)3R(xGDRP4be>DvGz@va3Rpf6!xS=ZOxV9aVyjt zGn*@%fYb;|t2dw*L1B0zDFt*vA|9y9#aTH(>P=gW6u<> z7PzD%;!Kf6@_J+OVa?k|pgw;MA*|{jLw_1e4@o4MYFF1EA=nR7cq%$5=1js!yLVQD z|IXxD7}bz1KOK;aCB1L}43)eS8IoaFj^i@2YUVVnRd?A0Ddz|33Fp3j7kJsfUEw7T zZq)3;!6O)dR9i9NMRg5Bl--kWW+y?QHO`wu0zI|j=7Q$7$+jMAR%@Be1Q5Sz2;J=f zMuEf#`3oDIMY|2(hJd^|c*97SKM+uAp+(hGURu!HG96>BfhUKYwGaobuVlAtV5U8p zU&1itQFvQB`+K=I!S2ykYEvceWRwGaC-9py$J2byn^o9@?2dFG?!?KgtabOT7}f+x zy&Sjys&1K@84|C8IiLzUx#%a0q3$Iq1Z&ByP)6dq4{i_&@CMz9&+q3LkU<9YRM9$N%mX+%vv zgbz#BvL{XpPEUE$&kEFb6?=d6U!oh5ie7Dwy*>XKDKTHbs#i!bQ>xfb7PR~A);d<^ z^f87Rj#QgA13|2=QCr{~hB#uDP7>7dsJgk?<|#fmpQ&l+Niic!A0dDt|Kc<~v^smp ze%;gEtGwdg%zqT@i4NnQWV(~iL(wQuER5I+=~~?9&~f()nr5x+{ZA-3m}85fpc~{9 zYD5XpID&xNSwY6u=ZQ8*DwPLS2iOYjw|>AF>+TH1rLQK)3ga{EfK9c{a6R3tGLHrf z%d?lpqT~Y!f<4bi!o7yLczVKWNw=%c@z_-=Oly+~t+xR}T#McyfG6Ye8Mc7i8|;_J zqYQiR4wmQUTA)n8ol@>f4y2yYt%JXTR7*+`P&T$ zR`SkU;KrlkNoTWQ&*Wz&a>L7NN1ILNxGe5s82A74F*b4D@7q*Ne5F#DDM;%E;MhmKzGwe|N=wFTDghnVM4;xbvkQbPF%|498wlTO6j2 z0oq)N7cA5+Z>c2E;k?}`*jlp|v0{u&+$r&oBl>|`^;QGfZqKyK-GD!A#etwQBoX7y7UNhcgNMrjN zvg$M1kg-qnj0n*ljTyILrVtv`9!PnT&8&FF3wvxW0WvapM&(((+(f&j9nD)s*jy&O z42Iy}&B?<4jvQ&)a^u_-h5HgRBX@@pVMj5gGau*|SU-+{ z!B|u#W9ir%dP2gUB?ODc+=<*2db&N0*aFfg2vIzJ%6Ci^!;Z72{;p0R z@OOnzS>Yl`PB?67k=z?uR2>Nw3d32rB%yrCEL12zSqF+t=W?(fLpdp#)UC+DUS*aP zcX%0i>kSZrN3K?TWmd--13sk%?ZH>0A*j)~M$JPjk_BNZDzs?XC^Z-MM0tG9Pzdx0 zJ`%&ZS|5THkjALhOl|y-28})-HN0Xrhsm|6BK{Me4_FH5H~SVH9JE^i>GCio$z;xb zS$q4k#z)SM9v$Hj_+fq<*fM2&xMZDj$-Cbjh%0a>OA*ccuSV+!Qv4-&I9Zh~&w)L` zn^v=0DGEVYkOYArmdHo|_C!5?*+v7Kkp_&dh^vKW+w+7xz>P_&5VvQ7IEhp!=&d1WL2F;k zfh}2B^pDLPc?-JGZpQFK6txP-D3`32aKW=SUu4E$E%{91-WFFytNpy#1%>0i(+sn<`IpiSruNBqZG`y(waSNK#B z*uiY2NLB!p*Y~1Vf->Fw6#vi1D>zU2*82uU_BF#WvdS95GVe~;-ek6-Uq1RP&F{5b zumX3Xv>zA~cttla1-|UJm9H2b5uo=z5gPp})rh_c`w?LPRsfMBe74xVGP#`EW~Yv+ zl@m98pg@w=9G0n<^1%8^bHg7{o5WC|mU~^m`5DGt>O%;ZkR~(mrXVj?Lc2s^IDcS( zAU6L5ddmm6F$S0S>2^M_RS-U@-M+WSo$iV&gipF}{V)inx<}#vA45jQQv<9 z7@jSJke>WCWRLiOF{1kOpF~5n7;9?=T+JK)0>WoxZY(ZRCfgRzfR`(G0heqs=M343dLv+X({b3!fg^HCQH`bi;NE?B3FZh*tA5DXSS!kMClW93ON ze(?rqZui0=Ld9FHV5BWb6>(K;h{_xIY-a&}ME~r;C-^;xY_K!KSt*2=JCQE0aA@K||D9^fZ% z!v=H3IntKTE)rX@v(A95a>r!Ds%2CnI27LMvM|qPpqr5$;Rf)5lXgkIU=_G)3Eo{r z*Nlb4K4fxviKi7=bp+ITwBZ;g9y@yxRLxQ5Z0SY5fe_!?#>}kAY=;d8h}OXMh4^wu zrrS5wS#++{tEWy-73cNppZ&rGu@U^RG$%eQC9`EEu&*{vW< zYF69*<2*C62*j_$<7ge0;I%(kj3?TjAi-D-{G0)9qs-9-N;-4nFli4!JRGwX$>~t7 z_DYQMPiDhf9q}31X-9+}{ne`>7X$5bS!c1naB<4_0jdis1tb6FPav+iQlBklRj}}= z|2ZS&odKX9fdZ{6|2_z&aTCD*7ndOAj2V5QYIL{cjUoc9NBOXy1IVr_H;dQ7AN;pA zda1hXdVE{C6@L{?um0}$sHnHWv;|gqWB!W3 zi&E>3JD(otXFjK4slEYyyFo&_WOwL!s?DfduJGUI>J}>!n1mmvpg}P4_Gxgo!c#fc zo;(Cy)#c4RKNYj4W8x6kUpL7wW3b4rI3(4Zmm zG{lziD!o7q2v@>P=~na9yQcc1RvG ziqVcA7<%Ptw}*IUY-!u&9CV1GPoLNe`!~Wj~>X-!Wk_G4j!T)ngJ`c6j7b<=qV~Rj#&qKj5 z7PpklbrS8ci$^dl*)!uKf?*e61)0m}0EuUs|EJ*5V)ixaHl5AzY%YQ8q5WmeLxRYn zS}1+`)HKFexOmY~a>f<5(U`FO=If_9gH_t;9|C!=nqwrm8_OFDmb7$%%q8LF1&3rd z+L6iaNnZ+Pgs{EVl6}RK?nsb~X97q)`!0timqWuKG{^P_-3GL6nZj2PK+LJ*&p?P9 z0;}#CqOK{sK(0U)o_sfdAto#BV@!D!NDw)pTn$uh@OVzM4Yt&R&`C_>(5F0^lg#a%joXfO6YCTCrA1c$B z%uVQ(v`l(#*vjfC2~)KitIw3WsmiSw=IR}p{OKdV%yyF8N#}c2{!lm*vgY~Nc2ABw zeHo4v5%a9Uif=;b^=Z^RwGtb^s>L=I(4wc>S33neLn)Ca*usGhtQq#ffShMW*Em@- zAZnL%I>i9tFMZ3kT{Jo@^ZmD$pi*H92n-ziW>HHAtJ-=q8jL3yu1 z8EV#}d3qNe&tdqAq4i*7AzPA6C!ryvlKK7%lH&`SfkGd3m}IrXmqIV$+GvB}BDU{# z2avkH{>|)h5I3=<8Csg$v>NTm=KIOGn|#z}l4d8}e^#UN>=N7OYEK94dfXw~l5KC8 z+`8_!mLFMnYqTLC@Y$heb%c;kcskIR11DXvv`i#O!9e5rX}{yK!+maDyQ`u7t^iWXw7U3&ZIlwGHgr!GthRnhw^erKPm}-S)rE^ zd{f7z%(P<}f0_ag5&q-b9f(_jh;%lXw_BVrl~lRH7Iz_=;W|C^KotI!ACGu#sHlo1 zT{u1qNp1~cSlp}T6y0LGpdW7sNj{HI<+@dhBb!0kydqgb zol^Dvzvr}OLHqHXWXqQ%b5>ypk!PU2u&GhA2^bsfUrd!8cr*K&1MW%@TRx-N(>TkNr%PWvSOGJOdFTGWl<{RTAnfK z<|hPd`DjrtG{il5HG!}DD-9v>zOU0Ug#>3|%AdEo9Gct%mUNx^PPW~!K65Yk!MWE> z-S;kTsXBPD>iK~`ruI8K7u-G^eCYbqqoIf64{!3*WnOOQQ#c}GE5f}`uG1_^0i9AS zuI^0b4{BPA2346+&0nk2a|kcKww=`OtWF?hgw4x(bOY>Q`fkO^`ti4kPUt(d7hgrl zkzg%qegpId<7k6sM)XhaQ#7flN==-{?t))>)lmjsJo7o`2^X1-D@ zEm1NnQ}a>Qnu$`Gxn+q`YA8Zw<(8&A6e|^K%dBmK%G5|6xs`&LY)`gSu(;?dtK>Dr zt2}=5{rxd8_ujc@=AJn-bLPzF%uM5VjoHSeJbRX?n*|rah4eVRG zZe=>hRe=#!Lg)@-ye_dr=SO_lKx zT4K|2@(r3b?Ah>gFx(|%?-g9LKMmL1u#umc9z^Wz%7T}|g3ndBDH6B&Ps2>&m8nuU z1?BcVXk|OU+V~5JjX&(p2{T{)-XIL+W^+zJ?%|zq6*MUtUxnDfy^pZc^&|0cL_HS! z!BgR=(2~R8myUPXzkrhBL%CDfb2zHuSE8x6n32FZ{e3ktIK*GtjZYoo9CF8&B(n?9 z4yw~V$1S_zIkvB1e`wKLix{wHJ{!p5Is;kb9={io3yDH> zo&$cb+|yuRb?VHSRu=q1s@;L}yJEbH5l6dl+;q_=CAJ-TcAO`F8dkvBZ_Aqj&1kri zQEr}%6!@XA<;IiO!VOpJj5-J_q1=7kDI}kOPhHEq-&ki{3Rz99L~rIAR2fn#>uG0T z6mkjT$n@zUBr9a(tr}ViJriC8pOq&mPd-NWK?1K;*>eOXz(Y3y&V|i5_jVyU8g}$k z9be5KDP90QaFIhRqmVC9bRAlEgjm>hZA-{L_yyX5=V`S4xmH!+#2*=0 z1wDFPJ0;OiBCAN<-bavtD1;HaQFyhqga=m?Ae-S}VhujiojL>AC9NKg7^(I-httK+ zh9+xh+qv@DOQd=cH3*r0t^L5+I^!YOYjMKo&EP(Pp%W!he29fH6PGbtCqGe~6a(ka zXkt`<|K*wB0OHReeBL_!IwytdelV%me1u;SK%j1WWnzw1yX%h zS)I`X3Xo1sRI^|-BcRgox{w9ev2!P*{9+!gK^BuJ8JpP-q@V{9{l*7N_$bRRP`upv zNVOk@5{Q^!(aBqNKd|a|y5vT|%`0gPQSB-|>msWS=JyW@HEX9fDt41dh zYJx2QMHxtkR}aQMomgRj_kykiSqM*a>m)8mP|_v8HC3Q@Qpzjj&RFlMfn_jRYN?48 z?fA+lXZp}E=NqAIjp#E1MrrD6Cvn2KMFBNOicXED*K$YcL@1y`5FCn2Q96BQ+EkjQ zC`hE8holyE!g>}gg^KF%jwLubuUp!1IKvteHo z)fQQMt(e@LHf6o9$zlt?u!=^op51tOqhXl0m2%_4Xp}T(Dv3t;beQ!*k~7u9)Q*SK z+bIMV&q*RwBuZ54~zzc|`Pmyfm&f-*{Fzi6g#VS})ZLT1v^6O8t*Tpd7~bpL+8CU5POODa)n8L4>t31v8`N z$iAj@Z^U*nmeTV$SWZ_kO=FIvqZ`XNFwhZe%?|vo_~t5d@x(!849R+uZX8^ChiqCJ zBmPyKxWJL)fvgFZ>V-kq$%XFmmbI|AOKG`1{zLTSL5W_d4uz)<+qG|j_b(nu3Jcl% zHBc)}buN2Y+#EjQLxPIZrTWW)PjlN!xThw!ki<_b1aypHgCoIbY~Mv@d8PW>8kps0 z**TAo!d`;%jkg)v(UTse8Kf?8E%|x)9piEMyPlZrNN^6Yp-6@q)vyKyJ+E;wZ-9bJXFy9jz_X{Tw; zoG5csX)O7wF-H1=#5Q`7sEM)4U%1n%NkZ848Uu$NWaz>vks|!b&bM49E4LD-`M#;T zG{BMi$NkYGQ2lMPcJGMZ;H+A7NZ>;{!B<^z^>G`0{Rk3j3e#sI)o{()V$8mN5``rg zY(7F-N=ighzD(iFKgL_ap^UccljRJRtLimUDfpdCc-B!8!2+0mBFKHn8j+A$E;13zmrf!Lc1ZgZ1 zT!pZft;$~}ZDZ*Hm88p&Lg;&R)m6=9Xj5#|3HY~wou(_&Y4uk%2jFEes`rY3|B@On zHFV@zWx6UT4}+w7Qh_%~gtJ09DJT~;(DhieA8G$mb%wNh!#e%(<_gPIW7SO}`itqE zazYL*apvwZr`6Z*z&%|<`mM_I=*wWCcJ$(O&YGVN7UPwm`T zaDl{4hM9|{XHW-c!*J2-++QfK20!EXmtcPB51Z?tFw57%7i>F;PwI>Z;DnFWnw`X9 zi{OIbN~bDETxWEG2(p}<_5ASwuA6ENvW>$4glu}e2jvJ8H#QVt%p}WLa_|WM{r-9_X%AcQ-@JJ0NkCMT<=z5*raTRL7JL(gT4_#!qgS{88G$^hjn{l! z{;O>K@cyQBMq0thqvLW6?BT-mtj2MeKp7l>s=T`Sba2s}*ffv|=V_*9;rBHS{FYWw zmef@LPrhN;J(k-Y&m`aZesY7OV)*DbZuiL<{LI+%X$8N7Oe)CS(jeQTpV+qG;?3jW zyu_w-Zd$=IhRRL-nfSjha2ru*-OtcY$ucz$o&~=O2o&D? zUi98YVHmjx6}yc5eF>+!)k1gEtsi+*5$nubBR?Atdf0+Zq!kFNok%RyrG!#;-AJUA z<5VqqjDRZ4d7VVx0$~|i&L8|3g^r|ypj1(BX)hrtKIT3Xd_Sx zuk;v#os^V~Y^<|FO+xcg@?y|x%$2xuITMT^fqy=EBP7pu946b}&22`aBkZC3Q)0A4lqnCr@pamG$Bi+NDL?k*!74r6d zJV($}DnAin9xG_;rUftzcXmV}6lid<4JsmJ_hc(ms;eCM(Cwwsxyo6j@yAj;Q}6Af za#LMONq4twBJKGz(R`6Sw4ebunp2-)*_{J-L#Hz%xu&QGl7gNzifRP3zMr>+JotU| zM-W?gp8N+?+eXi@yj`8C7`S6zM;yklj8#VU@4dPey!1|DE6WZn!A+I)Gphuho<0r= zZTB3aQ1rkBM3#Zbu(Lv&gyN_0M203q&UZ8VSsJ~G_1np+fr!%zKPp{+3@8>{YVDkjf z*}UOd*DM=3xbhcxiS_pYjfY_HR514sx({Qt^Ck;E2o-8tW)?~Gfp*)K;r+f(L7l$n zmdc_m&m95HD!QCuJZq5Tb&wZLN%bL9!F**vIo(i&prXW@6cGkF;b+;rgeW95+2dVw zx?V5MEs2K=bNLaJud<6!W>t+Qd1(l49Pcq}%(j$BQIV(?r;a2+`IJ?zptag4V>Xsw zKA!zd*&ants3QHG!PFLFXo5$bsqZf0bm|0}TNLg_5MSATOQL>4{ok!H$=Gf2x-t;E zB}v-BKDiP+Y-hH2JT*r^>(k7?uYgv%b+{^~%tW{)?`nREtKoIjc5eHN0w`bD8^&#y zCP4W$#vNRRTn)AQvA_S`+$&3P!k1a$JVD@Pj zzS0mcp`tTbgnoTwP1+`YTO!I{p+4cuM>Wft89h)Myl(}y`NMAWG&ta}$Uu;;?;=)o zyQmM!1nN^)8umEroW|Bnr)TusUP`Lk7f+4-Ut93?8zIi)w?)5|Qbno?ar#E(b~0cfqp}^Ux8*hIpl+#u@K3s`}hr!_8(*LftO0x8{PRjuP2-CV2;V zUg}C!2fS0dLo3ty#W=O6HB{P5FlkeJYQpLAO5KT`P_6Y4Awb`dPl5C`wqhTR9 zB`=6!S&eXeB`W$v!q22z`!1E!>LV;C*C17X>SpUu8EtK69Lx$8Nf~t58sU(;$ z)-)>i`9vh#ewgwwPdYX3r$;+eH+Kv$(<4Qh`r(*Z+Qg1nL%QgdaT%CX8+f`2Uf!2g}OJD#rcRxgYiJ~bKqbw1!X zDXoQ}TUhSog%IJ{IY^xO4SSD!()>XXaYrmL=ow#8M|z>W!>*P@MTRK%z`QhzD#~2?UG~}y?K)+d4PWxZ4xNOa zq45sX=(76(eDkX#NHYA4h*pJ$>|rN`xLLOKFS`7B_;uZpK*3U4atlrIuz$^6dMwf=hNHHj)D2ujEz8??>92X(|f+6Wdx!WoX9-fGD*5 zp!zm0F*ugf!EpL$?mz19@-*WC68wdc9#=%(?ABnnld=>3_>4w%%l^P->3r^AgzwTPW%MA4fGKw(o#NZ#EA+eH5e;jQJrEL`5n}u?>~=Tga*GJgxu0_ zFHS%j%|;RmnG3HvHz0MBl7y9*Ep0M#6lG0Ug-?rOFiH~??_o6IxW+Y`tWKZg@$qN@)U0k31`1hIS`x`_g_FZve92)|9UwS**C;2XQ&^nA|1J% zh}z0_(oJ21{0bAEd%}nBxfNrEmp0V$p>D|ZuM^B*i1V%rE@0A^Aw7dWva#(su>MLk zvJ4u9gT`I3t2ObGy#DK&7D=&eJUC1g(O+FyOum7!wsS3~53owcHx}Nj@tH62VNRr4 z!4Le(k4-1tflLcrvF>BT&P=hl37f|duhE?yllnt~0=6J*RlGbL^6=guBSH8G!Bjf8 z{?F0Nq!=GZQehR%hd$bSUs@1hM_z(NUeis6!Qs&9pe?Al7pL!;Vl1NC(M`}jhV??% z5wE>CvwUiR>rQ&iL|4-9rE{xyQkb1BAxz`Z zPhD=3REYmC2@bGcNxfpsa%nIwBh^4vlpQHylPAXMJ~Z7*v}-KmshkHz-6mfsim_&y zaMgm#-_`5gu&h+fdBN%R4LxjfOHV)x&6;NJOo2AScEtIlZ6th|o6cb@;r8RG9_nI* z%wMq6N$0M9aD?U-A%1NKuP4@0ePrt?d2!4m11e?F)x^m^r~E_;r%Z@N!!Dc8^|@}JDt|#!KxT)Li7`Spx&U>Ea* z>5Hq#HAXMQJjH|z5!AomK{vtlwh~fng8VWhv8Dc^Yl8Eo)yf!@r+R9ffp;F8Y4uY!$gq9ZGcI8tH4;CRy;GU&B*+E^N)~@1wnmhKgvH1RL;wI8< z0bUh}TBEM~g_%Gb4ad`U^ryQU2{n|+k-4ovnJd;te|^s8$;&#~BN` z!I+IGij#E(Qet){*qeTL5$8;Lz_tInLXFTfEDf`3GO7XejCmEy=*5vZOClU~IOThS zBz}!8l_}u8AN!FM518g=iC`z0`^G!+?nI(M3v}HzXGm$RUW|rFb6)F-{q4 zarSwjLsT103y=lLOW-D=GRL)C-0m4p*XpSYN%4H^HadZ(vx&7YufSY83T@J9?Z6~d z_wE)nX@-9${m~g^TueeE=E3d6LZ9vkN{OI-*a`1wct?gG!@-~M5)Mr}js`|UZ3!xS zGDhkzV1UZ@7D~!@h!6>lk_EO@OP3rr_9a8F4zt_bB-#i5W;;>_ z$^2<^NE+YWG7~wBtWtd$Psu3bSW7&BStnDLZ%yO;`|HQ4X^5*-W~#+(FDquKf=stD zZV8UmU%p<=ktRrT9=nq)M~?8lND=&yQ%+TK!p!fW5t8b|r1&b`!%}CA< zZ?{`V`3EjA9YchdO?{_K!ZnQgNH%E|jD}k7hC-8e-EF(6vG5`oXA_3 z0OqS0E6_clj*;ge2Ubu6n8sv8^fnA4NKQ^10_`tYlP(R@m>*v>p6^6AUc*s&!_Z{G zaN~b+f~Qy^XQ}S*5WUkIo?XRht(~jn7iK)M=QygW=Q^nz#&&$S7k|l*fAayl;%qs* z8sRYvl{-=*xNb+Ga+!X3865pqmE(ro3ni|ySEw|;L{l;=X}tRw_)l>IHwtAs_+Fh^ zCryy)Edg-<>^tPqTQSzZ`3^q_dz9aL-7z1wL4 zYf@SM66%8!EH@gKk->7KQ(bh~?<8Y~*<&jpG|M-n%D7uvonMMcDPwA&!Mtml4-h`8 zAb{S?GSuct!(~rpUgAx`p-OQs1G~C?FN#lTHwD2LVS&L3Su36Ep4~Ip5_Q#-SSF}> z8NZU@Gv8Mh4HP}nfkV<*X~Ew+fGS8Cori>8;t4m49D6*)u_zy1Hkw{9nR*io`7Ulp zt{7twW#$!CjVP?m=e-LxN=fZz>KLcf(&6i{pmv)wT7>q!0L*e6CxyV$2)SsU<`-!6T(%YtTU>R?o|-bWVk;%Ru)!`IwM+V*xdr8}mblVlD@W(PlPqz;|GEIlyi^q& zsfJH~R7*hmDLH_*M{*YH~S6C4u6Fzy=kiFQ*= zNlrldXnt{bK}QAkH{-T@R9{lgpq$Dw&ftsxbl^E#=XOi56{Geo(yA!-K&W|@265nk z#gT{@2G+-fq?xmxg%I|*shqOMy&NTZE{qD<3QupN#R_B-&Vax? z5W-lw!3U2j=0vr8-2WN0#J546@Gdy_R;LcO0&9Q;doda%cN6rPYY(W{f{*|L9=sR_ zFIrr6Et1kKkSn9iPo8AZ>yqVw#O1nV0x+4sc*~W04R6|+vJHNeLuTY-k&zd55Fw&v zi?lI0S<;v+1VKT|X!#1RQ$biF^UJ_O>9bx`m&^e)8|#wWJ%{Je z$aa~ES5Q?X_DB+Z4>m4|G1ouIu;({7eSzZJBs{5hMD-~r$AOChc$-7b|a4^^h#Ohn;d z3X|hYo;GLvvdEAdeCVjcFRJC2#LtycY#&o+vBZa^%QS99xec$``(Bv5_wuvm`zgB& zx$Av~l;Gfvk>R0T;I>JcAT``{r47iYhF3w&5iR{mpBrDk){!1xp!Xmbbn~NTF~-r*-1iz>d?sW%Ke?fWTz5-vqw=fY-2+k zcv-D|u^V3hmYd);od51EcNHtQF!QM5U{njG@yY$u+4WQ(U9p#BKzURUjD)}CDqr<> zuYdZqpyg{xOLNBYY(s9e=ZKO!2yW|tKrW5;=Ou=-6(2nb4whY?8x?Q4KqOW*Jn^`3 zzM#e1`-_sh-vyNEJZ3v=nW8Ib14=Oe#T;YBM*;?InGL9UfHWI{7#%sPAOc1)RZi+8 z13iJBFLEI`3~x$1n(&D+GW51Q(5&?hzDT?2Gf1A4@_d+F+ zkWjuGFdg3^Onw1wYiGh~ehYr}MlhEwA(6`6pBq7q=df~xCypw@0jq$p8^97yjJY@O z2>;;Gdh|qxXS1`;Yk26F&!E~O0grw?YRJ9fIjrQCz8x99z6ad)m&ynmWIm6pHt3Jr z$G+7CCw^{}zvaFFgpM6e81)06x35i@oFi@S5ZqVm#}ijz=4={gP8mEdOToRWeK$9Z+h+d7^#Yrj4QwDx`!CP#xSk0*Z? zv~ZoNUR@RFZK4}z`Q~~iftK5w2%et=wGUQ`G(eu3o@jHTTACW7M5=69^j4MhXU#k8 z-87brSyicOb|?M4?FfH9DSoh7z%ZuY6WfqHK4FW%e90)^2ha8+D3`Zp4P=@z z&Z@yU4Ow^3G9B4+4g2urwis)+i-`+u>Kb1R*WWg~LT}(g+CumrjJj5mw{x9#IKs?* zk3B=a_wvC-rkm{aHD}nD*-4yU15#jdTD%8m$nk~ zrb@!8oXGL!hqqxxVJZ9jm-cK++4J>{l_WjKUu!yx34_6`Q;Zw($$9jyc)^Uhr(VXUYKymBxP#XM2u~pB8tNKPE zgH(UQlazCb*SjTT*O0hGa1rwAiKQg46Lo6nD3MCNj`^c5F(sP)?Ex@dBlUjN&r{H) zl2U3UdySqNZGMVrHg2VCX&baeglvH?%l2kXns!s?!+$tMBf$2bMydP-3J9Z!Yo@r^2%#E`_WY1y zY-q^t{@BxHg40g%77vKgwd~?iHct{=oRyb)*WT=!GOof)zx3w+w5N|IFC`}xS_8e9s=vQa<8|%n2<0Lwt6#HjeG0a zz46WC+B_!K9vL5#5PAqKw3~Qq)5(pc0r&XwyPTd-&6<&J($S@c;o~tWyUNCLq3G1tkRA4(}}k5%A70s2w>Z&8rjBG zzvn(WJ}^s`TjnB8>R?iNFC8U;zsSik!S{BrTMFxkEf3w8|hBGWE^m~!`=i*{ZxuHXjMj}Xa&iipLxnv zk^S4Q4?WE%X=y>>w1g6W{cW1OrS*91G7@%$I4cNoU4i#6!L_#sANtf)#~Q|MOWDT0 zuVCg?2KIGBv4w|Oc?^rI>EhJssWjX_2W7eDW1qUdei$UHjt$-09I~(f=)GujV`{A+%MJUR#sD?2 zu;hu%^pFm8`RjQu;?PNd)z`^1a>oMVDuaQa79<9O%Y(2|qrFMm zQ&7`6@HY+DzNq<+FQVF28BYo6&ZH+V;}1#hOAUYX+*IzS<+r3ZJ1kUJei@d>E#Z4zF4 zsqUa#vvh%b+!UjI^N&3vq|2_4bbq1?%E`_Du7Q6>*hi`Gh~lb7E5TQe=G~Iykn=C5 z1-T_QopeR!GE`Fw5kG{hIRqCft`3t}*iYAtnJWn0 zwdCYB^a-^;$IMO^;)OJ#GUvg3gFeu@#;e2=yR({`rh_5vDqNEw9UBL5K_8ocMW)7Sz0G2G@et zO=z&2=djnO=Yyo+PSTsJm=t!)XByr~wNd--xmbDmp>o&!9!2%RM4cVL7@{A&AM-?< z;!DNTyW@XsN^hw%r^bme6+Vi;6U{r$C33s}7P4KTd~%bcCFW~U!usz#!=ZfyT$o|} zP8d>h!}!x0Ui%j!SjWOUDAZXth>55&UKX&(#mzgM0IXN!j4a!Tm4Sou66OP0F)L~0 zy6=`#4%7op?$o_b7PEWtR0AF8nJf9t85ir48-QYH`!Q+R$AZ7#D#^rPbH=)HMf}X6 z*(d%>k$-^lLsDY71G>_-k*P2A|NYec@8<*fImk>4QaJ$j*Z{6z89prJEI5hBeg0Ja z{v}{~bL^{<>rwr*`F=RKivIO0p5VSucW4bZRx~iN4#`Ktt8cOyaq>lLs5{yBhm!k! z@IQ6ri8~9i<>%p7H;q3>A^bSe@(SwZ4gzD;YKo?sm8ya;(~of$iM?T%KfA*+=!05Y(orA9ejWzUsQt8PuA+NDqR($(frVA{U*k3B zh7sjs6Lky1j1%R@8%&AiI79kE{)l`Qz=OUGW`F$ki^|M7Fcp>rx_`y8k?xJ63sboYw*9r`K$if$yNOL+M+ibGVa!AdKmQM zXJC9NlJs0Wo!YZop1+#9u){Kk@`Hf0l{OmSxKD5U)+8C5}D|4*UCu4%#-UIEvB`rRQ$yt`lLW&0Jc3)x4gUuc*tpraEH zlYe+Ww(tnWXbLP7>Q*q5Tp`EX@1_u%li&hP=er{Gd+wDy%jn0(SJC zqi@dedE#MbjQ@7<=7?T3TLZp(8w>W?jKtnBQoi-}QTGk;1&u9v&O8To)3fGrg?R1| zdYajHV$UDp@^*kG2nmS<$i3afV6>t&AA3$e0%lIm$nAq|K1bEx(VDd16K&H?i(TjZ zyF+u!g;Q@sS|lx6IamMR`C$P^O9xxYe||~;XB&+6KeG`uqZP1=Xg* zhcF;QE8P_8fmr~HNR2b)8*x2K)5JXhL5S@hH|ICC=5BA!Q*|ZXFb2h$vr~9o350v~ zzg}%gZ~`6vtM~KAczGUwHe)Bc`=qQ%-Q$VlL?JJDyE0}nnDtkF^Yi??q#?^?BRt+F zF3wk;%RiR)ZK}HOM9@uDL5p3Gx9o)0!)+-;>Iqw1f#6;T!-G zW%*#2cM#6QgDki?48g6oNS2Na7cS@^oPovXcvd{s8=dy~lIMzZ@)^|mMormBw`Fz( zb!i8>p~B~#6mJHbRNrM5AWd)2Hiz2J1M@tx}(@J$x5JzT^Zp5hCm zwpWo2-137g#$uO8{;hTtjPo>b+u`O?G1KXoc!Rox;~edXA1l^9LHmbS?uGd2|A@$ zSe)Nu|K4qxzFIuJ1AEM!Ggreo19SFw41^)C;zYOr0~{?GtHU;>22g`bZmL>+n3q1G zodi84W$M4z~$QNKkCJ1ejN2&o%voI zWkChl=4!)4Y#(s`DLHSq*6pCs@I3#dm$vsvqAv9AK<3?n*r?!~ zd_E!FkYdii6Bev65P9j|72>%a*bH}ZW7QO8;^pJuAB85+iRkffyM^ZaH;n66Q>Rrb zv~AO)f;Yy=SH;P-ESQsI%mBqQ?qq-NFqVOgnqTB6>9cuae`FPmTl%IQFW+-_VEZ@s zK7TJgkWS`J<1cG?Ix&7T5)o&t*el!!U~cWVa`04BbEs*wulbzM49+Z3*^t6; zJpjO8rwZXseyGC%e36bE&D8~oY1*lnOO%m;ZM_upuy{rj_D{|fMLSnRxClqEV8a$< zb{u7Pr2-t`Ak~_WvGA^zedh)UG#(wf5mKZ-(wbkM)HL?>zDWbxZ)ieG6?&^O=3LDR z@G3(`iz%@>AXFa|5{k;FVYlf2&FQz6<%j*=D-1xqR;3wJpHPL@9xA(A{hy<6=99Bm z6Y+MJapm1!anw!ksm~vq8mC$c!iYlDMKFri+O3+LQWQA-nO9n8o((nL9y>7SJ#(fW zGdE-zxuni4zd>G8fz5QsA3F0+zfruBA7Zl}AR{eJkpE$F_;jQIPWG4oV9CAnJU3(( zd!C3f^hTYl{lV}*$Dp-sLi0b%4W$C7##j`5ij~c5m5^#lD6=z<#+VZpx z9Bo5cSV2|oHe0R6F6=0tuP>N4LAwdgKL2So_JA$nmgC|1@K4ck&M<2@aUTzOH(c>&(eZj4qTlwEj|3xAz`hP%5uC6E>1DyH&4_ngi2cXJ6qR}n zQ(J(u=Zo5tS7<>4--BKEv9O>m(YOI<3+W79Wi^D^M{wJxt7c8+F?g(2Qo&7jSzPR^ zKtukqSA4=i8nomv`|U5;=1Ja}$>OtlKcESTx-b2siyw?@*~QRCUFrG{2fk2Q#OsS9iA>Oefud&zg6{sip+W@r(MVbNXfI z!4zs5e2MWsvEa6t&5Db~Mg=SAD$jwapWdI`_}<@EFk|8!Yf|N`^R9iYOX{G8iK1s3 z&=>R@iuEb$I)vuFU1s?84RXh7gT4&FE0I+YPfB6W)(2deRGhIoOZ^q}?5n9ODtOnR z6cL3nl?&!l|0OoqowzrU5BoBl1Essoned&rmm1F-Z3cN0AyO6B^>41U!>7eY zTfVYv%`~7QuwX(WISA-zoUvTs+m`T9ng39EJ+((m*dmJ9(4<*T4X)Y}{D_sm zTUz9dIu-Cf-exHA(7p7z6})L0>wO(nk>g+!vW|cqxjw4)ub^8nU)`)s9tm=XUQpM` z0+?7A>|ZA!uOrvhLk{qL@p_F7!1qA4X@4vC|E*NqGsfK;I8!HVmj3WU`3kz6)m4v)3RdkKLMkx{t~qx%eH2p#;r~Hj zfoEN6uU5CyTwi*BFp5%H>bBy47~_H4v<&>02hbG_Ccna%bglVIA}n)G5tkV&pjz^F z^Y3JxZWc1;M`(+H&%(V>$-A16EnmxXq}Au8#-kA3551qWZoo`U6ut1P=`b)uy?@{TeeSH(2TyNA+Kc!Ml%M=z!wusOxFQ zZL?8L&I%H;i5|;BRQX`-yLEn;1Y2cb(ViHyBux#=6f`t%*o^@V0h%4l`FD znMY78Kf?d8=wp+fR7_7_P72LX8Ue3yo0bW0bk0pLJA(36T+E#Q;y7Vkr z$o`T-<;*iohVKftz0J0g=6EwIS(A#yA?#-Tj+MKfyGI2#`t=HDAa#q2e`OBx#K+E9 zV(lu$p=I}duXPQ-x%%li@%7&QTlJk4RiAAnvW~un^?Sgo%68sZr82`myVT5FD zi1ywO`cn<>{g-!C75~4=PH*oyx7u5AL;tXy`qG|9mFEHT z2;%Y<`TQIC3c3Ey3gjdM_mL=|3hNFEi|z@+`@h)5u-6pnmfU3Tjw|nRohy^QFTX(j zzPwNEywFZNduIFaJgauoviW6G8<*LY7q830a9xYk*+I5;@|NRSHjWCmKU1mC-pH;AG%CzQOD)yj#;CR@~ zqEu{pVBmPm_M%j3j%VO_LH*fO3vxK?zhch(vh1_Rvr5DN{Gokfhj(BbzNsjc>}GAJ z4n_Kw7tdMUpI3Tv@AUSkN%nzlQ|DTJGnX$wEkMmzF2yXfQ{Oz=w;WqLuPpnYPkqbf zuV=Og>gQyY<_(-nC6j{!+kiWH!P$YL)RfT8+2T}l*tV?BTeGIO3rY@Tb-tTr)lM$| zHLKJA(u{UN)w--s&b4`E$cBbiUxJ&h-5B+kGpVRu-hus2C#>25kTa{Zz5~4R;LKu5 zyMTAO?<#iLtTN)Z8+Ja;wD#tw1qP1qSx-3NK1!=XwVAUjaN4 zO&-qbBmf>EPH`wa<(M519ej)c#}LS#{toXKL-`}NzlzDJ-iA@l9pb+I$sNk1GZQj>oIq{>_8WYrk#ZR`g2{$0(L(<{b;y1L^R*$segTiZ!z&$VWwZf1SMfs$SM zU&*k$R|a-9tXp9>kZ~Q*2}vtb8+QSQiSFUDYQTPgfnB^xE74L6+HSyV?o){_P`+FBAjW55rpV<$ipB(uNtk^0{BO|_;1s_)ii)lhT%0=pEO zZ0!aLfyk2%C7e-{8~A;JoZ;N88k+!XW70P=$U7lug|KXF@|WrD$k}PF+3YU|vTCXV z?d%48%fMUZfEpVD)Z`?;3Eyvk`KlbixN6}~b_3e38SRL$8L;;Y32>Yg@-#JMY!0Oz zdFydbEf_u97ib}`4eVl~7i5}K&09e_%cH&t;hA+=#*ycTzkTg%XdMlj^{HTJF)-owf!l7=^FM-Z`TQ?pHt_hpKBeRTK}bQqPF%|kTBLW zkdm-^zMc3as0DG=I$JyOyNdZ`s)GGLmZ_K>Gum}~L9^5y)0|Zs_;BlJ!NJM)D5d$} zaE3=T*U*0%B0a`2aXk0sRioqn87kaz! z&@CQ&s?xHK2-s2D#~^RxO@yHx+|(rA3C6JXBRLiHcZ@!SZm@6yudLp>XR z!x>h!9rQ)50`5KDZRx%-t0G2P%tfij{8_*xyIlV2Y3^cvh&HvxM%|kTeJ(B=#g`Vv zg39srE*%|3fP3%(!E$x~Mrc1uEmbnu4E%& z(8_nO0&@Z@urVVgwPCnMj|v}PtM)6+NF|G1f%3Rq*Y=bO?9%8`&@FEUo}C`c(e0SC zJBY%N)E>JrtBW+Selw%(oiEQG2u$zt^mcNQCzycvn#)MD-br&T2XLsdCH+j9y2&Y} zoHTbMa2yxAa1H{KInP&APFj!z=9|x-V*9cGxf)hkSc2ce{yzo&Yam~jIOprA=cUN&-VntVFN8gv`ELzbJw$4(|6lU~XGTEJU}GXLf3L zIPx6JNDHp&=-ar4pib&@3~dmqeCg}+(^yzPQ_H`MEWR4R2m=CB{?k~*N19e>H|Ftw zb-j69Oy3_r-Xf{AOQmHjDMTYl(>e$tj4fHJc@rg}#hWSB+>|I~2BD#4yoD?&d!^-0 zT1MIsCdJIuw1_e@O*MC#JNJH1pWpYt-|zSEC}+++o%1@c*You}=k=O<&t2YrSg*pz z@gKg{0DIV;C(x5QFDLdJ0mXqa^!mXwm;AK3rE?9YKrPdgc`S$T+XFZy8nz_p%$En_ zwax_lte^{Kq*34H6#HvIf4Eh~Eo{rR^e11K3OiO{_PP@B0#40u{HuFh+A%ium=r@E`wie;?9muWxbXlN7ueQSx5AUn96 z_zM^XYRRrm{0{&-ocR6^$LsEApgJ;X!2GKnFFdBDthTCfZfue*$IH6KPj`Xb8wZQ$ zPP>YN1Xfw9!r%A(Y3PuT;ehMHtC7Rnvc%mdCLkcqmS zIz#pV$b{5;&2K5%?^_}dYazb#dIG#Z;UM35fI4E&t6AIP_pYkgx9_ZXt=Ijg?HH+| zRBSSO?7?cq=f1N^oGSYk@#9S;?QE9#d^~jxfTrxua>CNApzch?4wl1ga4Cf4mZk{x zegC>tSN3RmDIg$`9xFUe5e76Rr$)E<=58x-PH1UW)%q%@W~1~OK!2QWTe4s zb<4$>Q`SokEjVlk9<64%r7N<1r`#rSZOfA_^W_aN$62rNK}e2Qq^?QSq>SB zyWFOvB-It(#rS*on*c&W77pZmvy)fjDWUubql(6p&W5J49d++t(_7l>y}kk>AROe| z50n~!uL3P)?#`vI89@-SMOL2(Zu$I4Z^7%mI)RoF4}~lm-~ug;vWS=BU%F4#*e)LE zD47Rlws-V+*%iRW{@4iM$#KE8oP_i#pD()oKaVTG=at4T0L1h+6G%ai+8R4jT9+8u zqST+yt8s5hZAcU@j~yY`qkCIS8FunhB z{QHikBrb3hhjxem`2;`KpkiS7kS%e*rF0%ozMw_i;5E3cZv`s2D$i83S2m5y-zEOj zlIgP!7`?2|A3TrRPhK73IItsUin4?(YH)UtoIGF^%0F#XAx6MPczAiNs(LxuQub;A zpsY~-ih(G@dGZFR*16O(;|C2*4XvTg2JFhhv*LySSDcGLoPKh0C_m1iqH%>YbB?Tu zcSTu(-}I6JN2@v)&tpL~xnS`b2n`LHoEN){8Q&E@h zu<#RrFbaaTtf%gMl8P*3IS_!8MX}r%3YqWw|7qZ>!~b}6fEC4FU-I0yh0OIrhk&zy zKave*D+?fwa}@a^07yjBAXr6`Hn9YZcnmPMVz!L$j6-ffp;4CR(dj>Es1YGt*iZqE)9aGeFVTpRG9=kRQqB*ts4MTHOhAG!}?SGpZ9&S_vogrorn zOH5Osq>_0VL2|59!F{{YXUAK)gYamfANPLi?pOX2ZzfL zt*ObPrEjh%d#N|2=D<{mwbB_R@PuCl7DC!K?@l_5#>7%fmiK)Xkr;p;!PL04FaJ}J zsGK=BmWrBNb5qY>1$q{ew%J|#k%LcXi2N>0DPBk_vC9Z*7LoL%kY`-ti|fKeQRp_pN^u@Yh+H z?%;`QE7G=U+-7TFW^B)>C!=sN*o{?!U3<*~`wAj%Y0do!v{bSM1Snjc1yjf(ZF9H= z=BmdK(Joy1qjCn(%DCPCBP-t_6WB$QAxfV5)<||d+M2ME4Oq>PA-WLz-qnX89w+(q z?}@g)xB^5%xnBAV(dJd>M95VNCnj%3O?z+Lm7NkVrs$-7?I{C>cKlQfQap_-wL#De zBGSY;QQT!}ZA{RH@N%&b$po9)wnH;Xj3SmULu79YVjJTp9L?IY6rQ#Kj5tS9lOZx+ zQae74yEq8w&-iV!s9Y16k65l_%{6Y(;7Tkm^7e(v>6JtL6}%urRoB) z8$p8+kGLg=)+B+L@+)KjAW8;{6}tY0ilLC`*E)+;x**nLYI40M9tl~c*eue(eGtfE z3MUYw;yTu{rsh3T&w*uh;NXB z$Tm@rG@t`!t>Cn$hVsR^LY6>jNg9yaYH|~Q#(q^X;w#n&S&)@FBmNEVT&T|pd(uE_ zn>rWmw3h6Z=nG?n1Q5;sF^+DbE(@s>vx>SvK)gd6(Cbh&;F8H{q=Bn7x(vl#LUL%x zFE^mEeJ>seoZDZ5aZed&aI0FuOxP9EtYyo2fJgfMgsi|@K%DIUV+tFYomFzEPoJ3( zEFK^*zAOiEy68}JOJJgzwamm25Mz%H&{%Oux0pqVb0-bxPpENG&Ou>zZAWcUay!si zjdgU3pj(X*e-_B;!xqIFuf|h&1qNT!Wif0rCNvm3r1Pa6D&dLHCB}mT)By z=i9Nbzyw8FsiC&}DL`XZAfi8V3utVWrnRhoHt4ML36SeG_*BUNjRMo&(m~F^UdYP% z3RF;fjpN*Y%!D+s%Ug#LzbmrVnS9J4ZdKe@e^m{5HzR4lRUe3Y|C5ka1i~KKRa>Bn z!mU7KV>+Y(<9?uu?L%il`r*!5pt24FYgytXNFPu%NCP83G#CnZIT*67L&%DH3E*;U z0;r;8M|4Z}V$)x=mWv?Lt;(4Iru=MZE!%6tai;dqj&AY41(FsHlyjj4n*c7ehrx(f z#Xzomhm+vJ6rPq~27kJ>%;RioDAu?LWKGKTt!2)(Y9NPVUh53^+JKA-qG2stNY~_6 zrC-tqcrttnF!mn-U<_mms?yScC7X+9Gd7p!&>ydM`%H`1-YS~-O*Y2Hcc)G9Mx>mo@8t- zdehBu_DN8)7Cm#|IP>>E$`Cl0bj`9B75%Jr-u7Fa8}};?#7ulWhO~8|(1M$&Z!Nmv z$#Hg4EF(1%GJ`-$$|XdDA+6sYon^HFNWR?Q2g*g8G`MksBp}rRU52#sG?1zrh*w?* zfT4)PdyC9}e2qB2O!hGehP~YK&y0ga$p>;sSRMoTw~%SlO;& zcpV=%X*}|-*4b$)#Jtr60>q~2-103TwRU6_%%N~_|0lJ{zlIeP`DsAc_BTKL@ush+ z2+=E;4%_U>^Y1@hP+C^|r1q@gj`)1$roq&mJn;jqtAD&)ul7yaytRu}(FOm;=9`Ba zl+!$2XTO+kE!tOE>s)Z!8WcRDm^|kKv*`?Jafy&W@~LKMZ*=jLms7Tdn&X-bbcrkBG^&ONsY}OV1&>) z8jP4%B=8MzpJ}ag%^M?YQ6zA@nm6X4040YeKHat$Am*tlsgYNr$wj)>MQ4>Rn+6Km zLcZ!wk~WCBY0aA4@?8G$Dn?A%YDqNsR|3*R7PMS|t}>9ktOOa*AIm__@}wX+L7qAh z^Q%0tG}OxpNELHcXuEd#0Bkx|KDx0xc$kYUMKZPjUt0{ zp-Jpksd9(8XNd?O1o9)!f}9|ZROJfQSwBB@ay zzIQfkvv-4|(ngeVnd4m0sc9|B&;g`THC6BjHRYC|pbb#Ex9XArG??+j8Jcs9~8ELvOd^F zX9aH4=EfZ{AT>IcC5Kjx8kL78jxD5vD!^EdN>CMRR9;qn@qRUMDn>{jB%?GW` zQ$PWr!C4LpG60#-Zxvs}7TjS#11*05?Zs<@i#cG3Q-Bej4MD4yao$s78H0}rpx#9t z^hcX&03hh>mI}H7Y~!4%J!vCi0eCRJ15~g8Jh)TvU;%hADu7K{03M8eRW$<80QfD- z8`R%Y1A_wMXMnAUh?NT(fK8-`)nEmX&N5F;D81;=C*BV@**zXjCW3Lq><1j|saC#Z=B_{t5iQrL)cf$!9~g8_1H z3Depcp9OAAlqOBSX=%E1g=oVpG%D<^LSU!D?>pFYU$<;&`7rb7Eu$Pu^N+FXHf%V@ zaMk0(M~5tLpWU^2EKaa!RbviWpO4ZE}{(% z7hjF9n>|ZzHNyPmc<9e{bCsL$sYU zoUx6Nf9=;M%Gm6QdzZJ`+K~UdV?fyu78EwWq`w#oID2Trp|Ewj!V&z zRsl=6DZ@W=Gs8fq`mK_aey)IZPV?^M_?Y;7%2zu+$;s(^w)?lrS>^$fz=)W_j>5AJ z-1Bks=g-&e^0`CX638qL-JMwF;Oyw*ysTrFB-_qmauvz`<>}2qdv0jZhf*ITkS_y|tvQ0%UzAIKJ z1|_O3szY7zKNzpy!HY;fXYCkSRylbQ*oyxoQRAgS1~$8b6FTSJ8j2}&ak*P{c_nV% zdm>W4iZAea@lQg6;bz9)V5HPK;mKvcGnqxgJIo>4BoQP2B>oo$=QYIBz9PS#rGG5> zRPf6-b$;95SCJ#$BOAik&rBbZP)g>lbdntpjNzLz-|cxtPBI&5G)GH9I|?V$7CvZX zZe4`buHA2rt}D1I+9~ob+~vnuR@`!6J*_Nzau~1p)jKU2?*vmgh^I5n5 zsc^Z6jhjW*C-eE4LE03u_~-F|!w#Jdsx5J>db(bJY^J5faBvzv`S(o!aS>VuJ^%3T z>x29GZzyM}|J=~|H(@0%d^P&hx0T^ibgVYw_u``u%5IoP&pN%)Dlq!8g|Rug@xZ|u z;wJ{S?GL}i6d=XLDQ9jaWQLG*qnsI$T@^nfb)D8b7i7K5yc2%>u><{h*EI3;yfbYR znD*aOT7UjV79{IBO0msFgaPxuy`N2;qH}`1Ke})dCSUtgwpe=d z6Ost~q75DZm2?{vq_4VV`q_j+Ho+$H1EY-^&&TVQ4a_9p@Y1?f?d9VXpBLZd<*PD2 zp-aCm4L{rB&h!W-J|BFIS012$R4Q{S;Ninrwm0Ske0;x=DR!2W+G;GA-^d-Ch@+}u%;86Gq)izyPP_&v z;*_3~QMC{shyUg5DjtCnLQlYv8y^ndepj@+qXnk#9>+Ds zLw(rfsgl!gedgw!TE-ZxmL0n-uUWaoxx;07E4Jmgx7S&_u)`0S`9@|*7d-TqSW~0Z zUro$h^pHP3E)>M;l)=w1$J{64wr^ZNp1c>13mU7jyu9r)tx}9HYo9o2_;JElvBmJ? ziDJW#^F|VjjB1{A@k~C=qaQz38}I7m(~;mYu_V#hNhsz2*)zs@r`;#i8yb3!?hdD} z>9LA@8}G3g$<3-CYgvSc^&U8zK&cg9E7%!*Wzu8rUA;?Y6Pf#L$9~dy3b^RaNv3%G zk(TQ{`v>MVJqd}*__5C2;#68^MDD41k*kt&M!f%Cy#U>%^1CyPsnI{bmFVT1%>MQ$ z!%a~N&RKjUA?SOeq2ft?ckr5~S1m3fN3lYcH-yI%(Y~o(0d*F|s5I zz7p0t&U0?A3_bqy{7v?_b%{Y5?Qx0+wxF!Rpv{RWCO0n{Hpa-Yi(iZ@*5|TWyN+!0 z-{7u1#ry6z-k$e%)7!IUe{Z_vvx{hVUVE0Zm$$qbIXD6S!%Q#a3x?e92v2bPFHX|l z@RgO!rAKK!Yvx?-{WftbLG9Gv%d#xCyQ896vhV1|u3z;?eeQ;EyGg2%_pR`=il`At zLCbjIQTeO=g=x>0@w|#_AECL|2VdxoT=nX}LP$pRhLB*p;swpMWMUNFpsB zwsxXyV5lM_hPa$DG?9L~@o0m<6qy+@5+~0{_fcK792qx9`;>&INt- zU(&Dt;!Dkqf?rJArW)C1ne?~y`pk136FE(L^&@hZpS>52-mx=Cz7aM{T<*YR(GWgQ8h5)MR(@eGyunX|mIu|)h2 z^?@$o9`}e{SlkNTZ#RlBGGFtQY}~c&iy;nw(HDEa&tB_vN4uYGU|K#l|NPmVSo_#b z+Q*Rd#u-{fK?c4(Jmo$(d!=nn4At?$oqwx2vu5#JXNBF#^Lgj=H_JKArMP6IV&R?b zU(NHNwd28iCv^e_;`T-ix_1}Yi9^rUMqVAWyDVq8s~mO)EcJWpvg`g6t`&)Namx+7 zzj^(|ch{TWeb_mD%%{Vw7yskxUH*@Y-kZhVPS{x6BmPZq8+PJ@xs-LxbJC`#di*oG z)LZj=vy*~vXcdXxuM}%ed`%lfA%T9$>7IX0`H__i!A^PHQbvuRdGW%e=hptlsL8W! z^ERJ8xMm5DQ8fWoKY)iy{$P2~z>Y?oD!A^1SdNnMCA2oft9VB#WpHekf_Cp=!MN{Q zx44a@P@g~WC{2-jl7}NhGPfV46wjk=0~c)0gt!eui8Qp|rkn3LCiY^q$2I#jlLl{v zs)ctG65E{LpEB6+@z45)es`}hgv|4Ey<e_2AtePw(A`UvIP}`#Q=MP*w>$Ny0)P!Ofp(xO4pS4~u z;sj=6u+=ducD-yyVM=$%qKlt&vpcHG+B+V*`(_^6pD-Aiy>Y*%*mwtN>8g6um~(^4 z`&Trq`x_(P~TX71ilTgdL;!v?}_@^w`BP$~G=YvENEX%Sr-EZz? zf8K*&+BP2{Xk7dr5lSNp`;?UW>%*sB6(mKapFVume^={YPjKYu<(G`Sem!cBu1ibd zhkY~`Rix;^N#C!-`H4{E@2p6<)seP;l?gAMg978%WVn>1Ql0Ky(A${%-|gf3T#B~( z1w>OkM&2d(I+!xtU)}1uW9GtUmf?WMthSb## zCi&yd4lA8-cHUe|2_5(C-le0K?}LyE%}jkG$Q%uOUju<3!~2ej__9f zQoz|9R($c+m%mTc<^L>L427@l56uuX7c~czN|p*fk9<=2^nEVypRDidh9+Cdcs{&( ze^vs#}&UiVtV0<>2GQR3a%~vbF}}|^&g7gC$0K!28uZ^26kMXj__yi z#x}+LUXK~Z1{Ol`)5i#j7dktSX^F#a+B@tyc)c z6Na1Uah$K#ueA|o*E!cPms6!*ZY%vG4Gw=OJ+y3u{K(2|`<|!5^V9U5>c*Pt9I& zf8ou?q(|HH<&i8y0lMdVNKL(5fO=3AQM;dXp38hrJASuW+5G+NxCv(+H7aBDbk2v0 z+u|aJn?IktV0UZxQ`)vXt8Jq6SwW#Y}w{NDP!KaT#x+!s6yhlOW zR(&;$TuCyEO@6xGH8EBsWF&AZ5#0pl|Sc>#)Ums2lv zo5P;aV}CXO{pVXeMewp~rFeI=f)=(e$6;Ln^s4RGi#@^L-V}{#684)(o(I!Cd~Xc1 z9PfRoXjAj#eadnVC+9!(DD(6A{KVw#-n2PxkE8Be-G?cI37L=i{T}8A;t$u5kGRve z?AyLCz9Pc%)~zF%pHKN2=(^0#Vm$rlabi~Bo9Hd0N%ohCuYGczZiN4~)Y7ta>`yC> zKb7OO$S)!$L};CT3g; z$_peBV~6iOs=hfZ>~P2uazx0PE;J?U#|uK$ow-pF^p7;j>9Et=w}(p3<^_QpDVC5H zErN$B%M`SR8&aKQcuTE=dd=$EA`R^BoO80FWa?u{xF-EpN@;lohQ?~aYfJP|F^%?Txf0WMP0D~D_er>;oz@Q47Jg0T_4?g!u^N%UZLQDgsVv}3q!S0e_i@) zp>oj&w*GJNvoLfzb~Ft#6Z)HB^EvVW#7(V+odR2Z5jd|$bI;*gTCka`f7Yc9z@5y!55*SFHUmEpOqu)spYa?rP zeYVBnO8EnONE<7gm8dHe?2!y5Lw>b`Y8c@*YAF#fL0;d%x_P_%+Bq;4%pO(h(iaE~ zkB)|O2)iZS>g2tjF#k0w!cIi4Mo)hS8`hI|PYuPsgfKO+P%UVVguMv4ayxchgx|M> zBfGGJmnI{%ksctMguSE}NYOqk(OO7Zgyi7p(s?UIAZQ4fU)8Z}o_m|BSsQ<&O`p;~M^fe^yO zmms@^QFnze)dah12Q}&U!tiO5!dZ#N!UMqUYRH=@;iZ?rTAirfis*N>A5DX&A$7B` zpUL8Tmaw{DUoByJqB$_a7ixJ5Sqlv|OMKe3O0c!|;M=(IESBl&u ze#aW4goG#GA@#(R6pETu9#GHLK^ik0)m3*4e)GTqkjWDoYpeD)CtuYfi z9Bqu^Q1(c6BvW=ueAS@mDHJ02K!rK8j@cFHnj%4uYXcTAg82Cl}HVmGI99#?#0B^~LG;3D7V4C!b zFkI`4;P857vv%S&P?qF4_7XMv;kDVYCVoQ~GvJhh=u;iKks{DVTy<-vNdhA$sA|yV zskXdh6I70h`b5Z7$J@ghcP9P@}q+{hE79&Ln#_B~c&ya1Q&fJ3Ip|J2oLurxwT4 zb&>9sN^vrtpCZsfx?L4yp%}ChVq3rFLF!ngE4T(zvhh?z{Iw4sKaOu`#S*-`$y;CI z259a|r5lGF+#}XOcDEviy*Ob#8pFY_Oz}b8Z56=?UvL{GNSI5I<3{-GR#~7B+EQDp zfr_STDaQ(64f>O*wx+kGgfDo=R?HBkM2td!R=$%pP?y^Z&3gQ17^a3L-5%Ez3ceK+ zR--N}2LZPfyf z_;VhtjxM}3k*)OsPXUdQoR#f{t5JwoOh|^9U5TxEt2VYihs(A}3} zvKqAaC1`*j8!+Uw?|g;R)bWA=1yLw>L`;*}Pr)rPf&s&06HGN|Bd|TD2^4|21ESIq z3n0d^DLZYKffwcxz{EI&4qzdCFHq;Ca$PpAiIs=pGbC)#3cTvw5?`ZADw&dBr&XpY z#Me&!nVXj5H^XFjw&dUuC^715aj0bByNlmS(X-E_NhkWl8!Su3?!7k2izA}j1m%qt zlgAhGPWF~Yj4m5qq17axgvMu%((Of&R;9cZ*iS$DgMB5s^dc!?UZY%pRt-a%WVJtm zXWuB#l`>?gpT}dn{bpn*_Z3SX)_^PUiPS z?a@|d)>EbKhkT%wk|GmaM_Lwx6dB>R+c7!^&PS}y%xr-#BTNlw=41SACt)7_6z0km ze?3o`Rg<~^yKy=OUE?rG? zsxMq@dVbZDKiKIflu>gb!4Q3tPM*ISkL_h@VHq6UTFNwmpQv7)NLC!~5m_s!nbS#_ zT?YJxi2G|u1^%d8bNwk!51fr0NE%Y`5JmPmNS@Y7HToNDKF6m6M?o3A;f*~|!`X8V z;g!9#RszMf9@C_L9|@l`>h=!Pvy=Y&l*&GKUR9J#Hba<3(C%a`wVp8fdW5Zm{`X%e zc`I5Xb!12s@3cL;#KP?_=vNV@vVm-M8M?eldE=7u#sci*t2!ZVC;#O`xzEA~%JuBCQJUnBmb4qr{#{D?wBn^;7G6MDur)aXREG%}IwY0Tb5~ z&NkZOr;^EK?h|g6?<*NG$jjX9aokdgEt`(rTJ{WjfGn`a9xZ!6smuz-6&!q;l)8Y< zLzFY50)14AL-=8$6dS>g(Czhzb{gTAu&AtFO4k1?*l7e#Ss^c_pHhW=6HwFfMG~Sm z*7fu~y3B@lU;1`Pu9^!TDfpw$?%5!&9-b@R~XeX zM@cmW{YUU`j}e5h31V)7FP2tziPya2U9InkOAK#df4tyDHs*s{_`hBlqb`OaW#ydf zkhYYYDR_;Kh4%_Hf8+awQM}p8!Ak;H`s?HVlLQHFjYQ3x!elGk%>>&1Yy`GN;Dy*$ z08-d}%iEGeyBRoV}Ia=nBLDofh>bPG$@2Ve@`c3v4GL zC8HDeMN0;G<8>RAW;Kseq017#G};Im_0AfGQbx^FM+v{rtCpQj2$UVaG$ii6H4N*J zzt#Gku~)M1sQ3oG&~-$nIR<)dUd4|9hTKa3l1R)ux3kBOyp4KnH z2J}EOt}Zm3w44wC>!a+oh@WPkcrMD;>|+|y%OpAO6Qu@N)-ZdcDgd=j9hEcBO?Dfd zQ~4HZX5tn-4l|(p3ovNI6=~%ga~Q`Ig>$jDKcD04E#rdPsi~FOGSkx|6LJel`&_KB zm)0*>T+h};!EqvKNUAbE5Wr1MI>>v?6*!zDzt*1MrVCuLZ9{9mQSYGLAF*)CC>jhr z&8@=WJFbS2HK5JJ7jz@2pio8myZ#$=dIVECyuz(BRKb11o2T$}$)|Uflj5MXoyk>sKge%>EB^azf>(j^(7|N2G?Q5SlUMArY%#j2(T7m}1)LR`!Xz z?-klYfeyNs@ETE+o{TX2;5X(0lFGlVm7CtDe0H zeL6j!cm4zM0Ono~Jw6uZN%@2~3IKd5Uw5pcqcF!xA$DxPs?ngm=+C-v^zZ%pQj&CFsiy&^0I-5ok&sOmSj^_yZZ+h8*e%RvcKIfiEh@wO6B> zq3>mm(#isI@qAROrpP}}wh^k7{xiShCyol>x;tp=^ed{;dHk>AXvHVBYmn`nG7dLi0KR4!I3F}JjJbw=ZEpfR|f^d zgXHPxRm~>E5#!llnbWVywErs*;3{*r8or?y+F%kDh`mlS8ZexJKT8#?O80^zh8w6R z|2kom9oQNNZGUTr&CN~4(RfcH=cF} zoFt;M+5l9ANQY;vfL6Y2hSVkD%zDfZ2!pTiyM~tD@}|3~VS(vTDd;XL%69z(oJMDA%@fFz@HemrSp3pH}6t>55`Y&ge zOjI(EvXy1c0&Ap@dqqj42V$QhXIjF!-Ew%L1X_*u6jncR#5*Zy(d}+gc%%>?+&he~ z1-`2MxOWBp%`?@Bb5MZBEpnf*BoYlOSUo}9-zf@D5E3o?x?r%WA=0de@MR+tJY(d* z!fUeTSV`?yJlFo(c&LA+>a+&tS`TQiMCwBK8gS4N&mmuAI*7E>$=3C3pL6v@D~A&F z&o!OHDviHXHzCyz?Wh-bk-z&RGXZ#;9qlmDTr6`nYHa!(x0hD>;D;@H#3p=jr>-#; z(c|ff$nCGGN~_ncotTR;vYRH&uEPXLsRMSo7w|g44&Boeti-Qw>O=pNv|1-R z_XuWw#OL)G>WTN`w%g|ap>4-gSF4IbvQ)24z>ZeRVAWvTqdwFkovc$&{&&tka)#hErkwuH zTo=knCEnifjrw$CFlX0l^hr^+DqLFG)?S*ojSqD+mcWlVknfTS$W*8*^-O(5jThbd zqll8se1U%h7k3*$>e8Z1g4bB*W~5k6QL4ixRy|R%?fNO&@~GL1px!N`Xb4)O2p!w< zf<7H{=dk_I10dY0gVPaS*>g7hKoc%aoezClC;ojFLtUleWv`pb=7?SfK2J(?^~f4( zuRPy}_fmTX+cmJru!B%h(-c1l>=UDUf@K2!K091}yiBd0;A*8b%>WGAt;06^2Zi&u zjuxFcg8~4}JM|2DjRY(FTit;MB!g;@hcpU!IrjEEBI^1s5+4#$wk`MrDTFfuaW-qi zXwI24IM}S$)x#9D1e5zni^|HBRCNh^GZ)L48XfbYI4Gk=MwHYU=qAffu&VITfGx<{ zo?y}7GRwobem!hm54OyLIsd4Vz`}2H9N#P?c;ysB0O1g#-{XItFeK!)FC296=u}0S zrQ=3Y?dDn{5BctDDjPXZ8=S8vP75GgsIV#xpI=;DAK)3^GNeOBgpw5t9 z@SZu(=U*)UO*_AR$xG!Upznq-9h*7fWZH z!S@-WxAdODtS|6B%w6w2roRYp4lvbJ)h{+-ny6JWe!5q%j2?)KE3SCq#{ARt z@o>E+Y^$GAA$vL(V`f0uZeVBn@)O1bM036?1cJP)k`gSTeSR$6qooEaOC5#Rqw-6F zAMgs*xKjgadJnZ{Z$xa~RklG{HP`#v51zqQ-iz@5dT0Z>%Lcn&54*SU@fz)?gmm(e z+qBao)M^T<1XDLe1g*7LWrKJUW#pV{LKaj-;*zwWYj7&!b`J4355<*JyUCmJEPQWV zARc+mZxr8l28F<0#sqr*ulV&CEt}Y$-&Hg{34Q?)%!Xy?${waJXnR+8IkZ3SC4LLD)#_6aAL38% zptM z-@ljOHXQgC5*ij4$WyleU4WtBo}R&NLc;?aCZI5|C=L3(4&E@zb2_5{iHGF=!#Hr- zNoL5l01m2HEb%1UwV1OegQQ^(t?pdi$XVIk0v=!SOkHGguO6E&VLEeO08&vo|)DzN1%; zqcYwnWD~00AowoXCvuSHTI*658p_DF(UM07_(R9{SU`CardlQ>+GG1bY#=Bz zf{q1Ns;cx+kOW!*mO&;fzz#R#pT@vq0h!*xo!<$}=i-Zd2&O>0&~dX{@M?gJ-;m@+ zCzM_v^-bXMj$qD5Q8O3pPpO?UYA)tG7xQ>hZP6;gZ+UcAUa%;=Xu+HFq#-I%@RI{s z^s}FgtN^dfXn;Cie83~0vNP}q=|%c}Q87rc(B@%K_225-aR>W(PcdKQoOX4f?`4C- z^eBP}6ro4_>^hpTI!Ox6=%v_UG3@x#nk|0I1XUVPK1UAU`8w}L z?^pu_m}jokLF*UHMh>Xs;T+ul5xiUaQpPjm$(vO0hB#R>$~S$N`!&!Gy(#%nn%j?? zN04_+y)!StE2$rxXT} z_-U2W-u4s)kwuElmXulO5NEY~)KRs@YGkC-)7@nR{+r-OUmW5V`AJg4x)ax;Pi9B- z9e$X|94&3Q<9(sv4eHq)+-~S(6aJ?vePZf#N9g(4nDnaW(9-RxFdK1cQNK0yxHHwJ zkh5IfCNi?+d}-n}*%sv5y!-k+EyHZN;XFfRDkJwnW?)-5RrchQofjdbdMPW z&0;$7lb+7)3+6^FJe5ZuGFekjI`dwOu9d?$%xk}^zS(NgWoD(Zvz&@m*>trsHB4C+ zqnJ{BI3iGBn`aj)W>v}23#=%TQ|9(`&Hh~*8dIUYu9dz|H}h7*DIJ9dcrI-%Qy~NO7xL({Yg2T1>{#iCvk? zQXG5f(^j55zc0GyC99QvMFkDnK@KHCwK4>++!mdoi9*X)c%{ znJPHAz*-n;rQ}c|@M%(UPrm7E=UFk4IVLjtO!cs&1M?KRvhJL^CdSTFvmaovxSz_U zXBZM$U22ScX!ES>JD(r@A7F_V%V|=fqh+>L^~!wISjO^^aT}&$c^Zb6X6lU=8auG% zqsujm8Z5De>Z;eBzw8%QDjaC+q;uC;@otb*JEh0aH}LS(l&2@hmY8$RnhgusT8LSt8;4hCp^ z$*lT9;GVpXEe+%Kv_NtfKCDci>+4)^|D|ABUJa#EAF=Rx{FunL;a3cO9;xiX_q(9o zRdw<|dN|gpf0THG_BeCh>k45gd(OUmlemlj<3iV@Xc5HsMG9bsjo=xEUcYOZroirg zFQ-CoLw^gcSICt$Uc5>f%`j%QnEkY4R5^N9FK_I$v>_<@Aqr4;nJhPjF-e0`z@Ale zhth>huI8~=i?U;Zu5UP7csL-b1P7X)UKvuCvQ+^4+?L53O({f0Rtu})SQ)K znx%^O6%Mp@3zXGr*t4yJ+VT=sbfxX?4JT6Z-Cgyp^C~6m@!|?AJQjCKN3z$NzA=F_ ztb_u#2lrw2NAcneHL&mK~Y937Mx-F$OS~gxcHc(h=-XRpAuUi4@QGJj{ zxsAGrgtK8exm##H%U)ccD{IgxKalxr;V@S9Roe(UmK}c3>jEXMM;KEDyM;FV138N- zhg{z7SU6rjV+&6A6qg6p|S#!Q-&^^ssNoH6)k7*S_z@Yy~rVM zeam+5*6~F{iKtoe{_f42oz*K1DB7JOp5jJW+U(oG`QlPY_&XI}iV)a3b(pSy$4eHa znQkOQ(w3P-@xSc0{)OfuqpQoN?MhRl%?ggEsL1c)tCY)tCjBFfiQ?N>)6m_uwilsJ z>Kk35ltbtvBTgwkMF8Hft#>CS$a83Fil_ zym?{%Ld4pC2uRwFtW86X_s`gz<9i_Whr#{LA_}pA#skm)a$6gPN*PA1>;FQ1PND1G zKuK(Vh)nX+qH&@chv!};gQ)%N3L5FJz7`}ZLb3R$7>l-8fi`@0(jV-^cPfO6`~)a( zgd>VBCRf-hF$QljJ@H|Gzv7ss3q&Q5B=va?ys&}5=O zH3<_}j!SB5GTr)5tV5n^mYz%&%K$y0IG3T`t(6t!@V}{Z45Y`Oi^JYcVdpWFJoWY# z)5w47+TLi<6Z_Jl1&A5%pS~PmeqSbmm8i8(Wv$i7R-H48o9zt>wg`zW-bKCdh8C3d zF5|@^ZnU6Sb#GRz5FKzyN{7qpE+sh5XQ^S`a1hReXDg3NrIuApHD*>#H@P4*M_NA( zzS0$*L+Zv+{raG(EXp#1?e+z3n<5q6VfiNK4uQDtyq;Ei)J7>85!&7XRTt8VTN;PB ziJ)LnYR*Z2xCXP87A}m`R;?Ex6cYy7$YnkQ}dJeCebQ!EjCkB`6u#7gO8mcA^>2x z!2u{VtbG2)!c+4)2U68EBY|$b=OYu4!Dzcl)psvz4UWy0&Q`cW9MjcIi?|A6mW{QV zcNT-4o(#44u(^95WZ!9%E`w@b@?yl{f`g-gGK9>Em>Q9TQ@sT-25vKckQ1B(R_3Hq zrOShM#(Bc31@it*P2MpXq~e)UdeGA;BqaPdTRdstk}*FHLb^9ZbK_)- zFpqil%fUYFq^A-SM$(%CHDE;Q0e8Xv3%3N0#B#81Aier*zoBFB?^)sz7J70m{8J*I{GO3KQeavF8-*AhpA=vO=Eq-4w^Qox~yvunEUyd=P5;E2obPDM+Etk zs(iiJ8oP7_>7xlz;A7h;$;fY*lcMmV+`1w8Vz~VLn7^G9|HO>&LX=45Qu#7GjFCcz z)o-8B!F-C7kZXolafCe4smZsXcL zt%*jRToj}rTBtLcT+Q}4hDHd0&u6S~t^Q8Vnug`s#_JK3-;2MR`tcYsnAt>l~4*c#e z)b7tw9;pG{+jLRFAKv>zy{wN{15m80>^IGXtAl2al$n{V$$)&mikQFf$cj)=D7DWM zzbU~(=Km)&nlty3qXGj6ApAW$&%_?mBXUD(bI(_r<0{xup)5Z~e`BCQFEUUi9!UPSm zNK1zfbCqV52dn$>$k#_u`Gw!{7YB zrjU*)`&OKj1hKx{e4ZGdA#c{BTXnD_$G9ojC_x9vuBi(AZEAF4*@0S; z%;ccJLsBv~8xf*%#4Q!0RnNZFj`7pMu4-}oDgGX-6k01laVemUSSaQ!f#XFuBg9cU z<%ssqQkd}*Y}KcS=OSB&n~Uk7wY%hw=ww zDyVXxJR!cq|LY5x-eak}G07R;S@>6PR*iw4uivI#cKx{x#I^kcJz8_T(~jY4bUs{~ z`$R$j-X5|m+^wMtfeC_eVB)U4PpF+G=O;Lk=kwp?3&teBnDJb1q_19Imnib@Z(3GP zP9jHupnFq;xu%bRwzo%glJ3H#lhEtW&wq^MKj(G8CzihP#|eN30I)E1H~oKz<{y6f zf0XC{hthCza`LnN2lf1y(j@pM&!WB2#eW z#cn~@?(30SU?Q2){0&^YB>rh^EO*7f z7yS&LzkeNK1;vg=Bm0RM?7I)_H&U8g_~;D5Nyt%j z*Dz$b&^?FFs6B8VjB&Dw@Z+yM;b+k8g-Rc`*3lZLEFi3`5J}Tp6M)^;0AD&*DYoC$ zs<%lhQR39D^WNuMiwB(?AR2$^NC?^U_PT4jNb0~a<+Xy&ZI-^3f@@EB~(CCSiY8;L@+sj;P4p~ zvhzV)h&LaawH%j>|K7RYGjrouh zT&w=pbf}4Q%mh4;^xma`-;SOz8Y~>>iIv}9$RZjZIh?zoduJbHmXH^Rk6;Uw77wJ5 zm%JO2zk`vrT8_o#43?gdE}Xl&C3!*5Qhc&i@L_^yMq`JhcjRTJkH@fyoU?#6*DNk( z$9%+oOi@{tsM&&9Fd;>STZoFmO19XdwoV*^N2pg$!Lnd)C+@~~3##rx>lXBTx(nwH z5`Tv&uZ6>J&x7QePL$7ebw(*}4b0Oi1niu<#)9AR!|oJFvnldeDLG?TQtZm_`3_wFQV^*lHk%Ouh99h%S3|y z=QSy#f2{+%mCJsAJX@jMZl3K8Kci0FK7MPWdK+%Ila zChplR?^`Yb@S_758Xyz{{EqREm#{IOHf zV(|f7jCkxp1lNdU-T=>C_Q1JfH1VOvu;sWZ!W*|>4=#kxcN4*T(Sqok9_YK1AL!?$ zfG)1=Z1_ERQBXc3-1IJ4)tFM|VCaxL23(PO>Mj*%0?L6K_7H7uwB8ifTtvCkCKI|$ z;2aK4rlT@j+&RtTmz;%d4h=T!-KG!B4%*p6h!O=K14l|wJGegcW#Q9jH{m0j{VY<7 z!+=`Vw0jKx4o7b`!J=Ng_R7SY3>lm_hL5zbc#GcpHn{fSy+B zqF%)D<+tiPKjHD5g)>q7NK`WIky-0sBpLEaGuILhJKHg8aix-*D2mv_vZM3(_0)`I`%#D_i`nXdx ztriaE!7$o?jPt5BIe^0L@B#R(<6o_y8If@r`!&5&|NOkU`vUi2WENs5`;6<1tv4;-8Bw1dl+`V-J`%o3!^UN)z1lkCcGUe3Z-E7u<==R(h1}p3prn zKh*tIy4@Zvn)s!4frwbdn00_GlI4GS-^c`m_vFxQU@3HCHNDvSGkV_g*Ep*!w7RM{ zTWWZKq$p9Z3|Fg{=j=_t{SS-3jKi)m>o9wpLYM*)&SZi0_&j0*N*+PBs%`;~qr2k% zF89Cs&(<>rJK~PFCr!^xeg^y&N=l5EeYU+B4INZoK%SJyx@czYSQ?`&S z$JR%L{4x>AtCQM&+cFJA8VpL}be`c5t%xMIPW}_%D}yAHaX|X%C?NhK*!#FO?}@XuC!p zC<=Q&L7q8N#Ge4IE)RxPgyrBDJTf8eB_&BfcEt?yT7VZr1b!t{ETZlV*j1Cr!u4>y z*ntrh=h46nf(xB7bxo)zhArz-O-c%fQ=L~&9_bsDNwmn+F1^%kHvkgD9l+UmeSE)G78O)`8rD3&|0=4?~jce6F*vXrG@&diwnHTjk%&H zYMKfl%10X}s>)x4L|9B~OH#Wv7gGLgz#$mR`Ex3J>>wk{VJ{$`?6Z-SJn2W!IQaLW ziM7l@Z?q5SecSFp>hn^wR55Wb^2hfG-0*KS+>$ZPGR`IhZVE3(BL0FDE`tv74c!=W zkNULhpUda{JWP-<-GUqS7YEET8cmvHLxg6-s$lu|Rm$W+%9GsFp~6ce&3}yzinKNJ z2UN-kN`{^`X5N#>pNl$SfjOO!j)n-F@%cek6;U_ zuY7dn_kY2a|5HZ)N2#U0YU5Kd%R_3R2DOzb?DtT=j5nHx_caS0?utxfdAthV-57T* zsoxqG{pU5Y!InnNh#y#m&1j#+Ln?j7+7vE^3{w6%6E1H$h{w1Z;1sg>y>G-OJ^hK* zd2MW^Q7nu_q_ZwC`WU|^_*kG$TEAk;xalqXn6MNznzzNWz>SYJHB+_4uEUI4F0$|` z?|lzjEJOh2j<5LKi3@w&?OCwlh%T`X+#lc;PQXX9;$VRkyM6a8=&icIhji7F z3wU9BIG~KGAvM@IpyZel3OTK(Lp*7n)MOfA*M~_wSjCZY@o$R}<73ev3OpE{+>N8E zC+98BvRWNZIyU8r=R&J3{}yMXbYvH1$Dl){tkFg&mNmW zmK|5fLHiEGeUlX%JhhH3d3x`n&cqIe_Ic`AvXlQOY+L?KmeDuRE5Jrqp;Hey@)a6< z6LQ1XI0(VhW0gBjJZ=0yYcp)os+bLy)+T!uu(22T-u$`qW-2F5>1J`-(xWJI$zBEwah64D8qjHd27EYPN5luMXu@GuTy@k znQrJryl>#aW7ptPQ!`=JGlGNZ;7QgbBNh`E(~1}qN5BnQrt{p1%iZF@+dD+*LxfI6 zl)40S7(o1sQvh`hnAac;JYpqo2`-m*seQMvea>)Bw`t6TE1i>VN2nD+yS@tHH+u*s zmQQy4;QWJ~n)7%f8dkYYFBAiVbiXqSA{#sDIsaq#38XR=dLoOS0uhk>$u}Zp#t)iDRkek=p8NDPn>$EK&EAHG>8S(RZ#ooiFm(rYAl)s9;y)}cE33bFfh>;3;8M}=s7vJ-xXB|0S zg-LoiEG(%#)MpVVyjNo;9gC5xfz7COm5ZzV2AeaS^d6*CEU9hC>@8o79dHs}GDzQ6 zA}qkl6;NxK0a?ndhf2Z51H%SU3eoL`ZPEaCNo2Be8cWN!7X;5$t>A!rlq(fYyzXKfqMcMt1rOP|AxZPpmPXO+?Fo*pv68|2)b|*D6ST4s9Bb881Uqq z>7o#g_zJy%ELT0^#2?Nu&=urxF`pv9h8=+ok)bU2+-oow+D1KC_jan1QwxQ zac++tZL)bd%GApKxCnk!5?Wx?j`oF>-TAf!b!gG|04uE6D|!9%;Nacn*C9q_F7VwYu#~w6?CPz%2A&F|wFh%Yfc@%U zLdsd~4lsn8B|`z=?E|W-BDur>FScbpbq8oTGR2%e0Ak%w4~)x>xmqMGo}aF{C@1!n zgf`XVmCaM?%63TQ#cEl9y(MS@ahkjG)mR;-h=BI2=EE5+I~&~ zXD|*%b*wGUp-D3su%RMy1?*(%f=#pr8{|d^f}M0uz&u#Lwm-;@aZAbI$XJiK0sLl5 zuz5zD#*4A{2Z=3v7t6jDso}{ryCng^#(kAfuZ`{5cQD(-m3J@<_lB=oA%v_Gcs6d1 z|0Aj=R&KesGHMR&+u4jqR@}|I<7@to`;!!LodIDb*O}~^HlO-LEP|cb>$^F!^xJPLCf-J0T zQ~wlJxwMFd*^zsKWX*jSHrv;aB@TDb;@r6A8C*0~i$wfg+i=&0^Dm@Kr4XL3eq3Ac zg54O*FNI7Oo(Be^?md$haP}?Oi5L4l;onE`FQ6r#EAL=N_Kj-tb0LWAe zuT`h5C3aEez#MVn?1An?c^&T|JyGgeU*ug^r;L#x-AY#j0!UV!9f&%>RW`m^d!Z4u z*}okj2!|Agdr0)U7ht~j+mWqfY_WFNN`TK3_@?a3HMphn`F}#5|9Nt#uLtw54^JRX z+HMxt8I27uyRvSsKBj*0P-bQwlz8oyI?8&1h6zOI%5xpzaFf}M#SDqdL)fzx`*X5} zO%yeM0MVeMop+Yz%>admxRl25*64UZ&1Ku{eAcBrIb-Q*r$QULkv!|i(H3um%+Jj z38eCTogM*bd+Kqc+W;$f-GO&xz0aQVltP)%gJ|{85aCO%m*b#TU#7w#tC|T2dyBDd zd$*qUf*bL45D@CQLyuI&^vf)R#m4iod3LEgL*P^x`PRWlabOYt7ce)@`%W3}e^vp5 zm%v}Q#w|xZ3#$RQyK%%4hOR3x*qf>$$QW0#05QR=pp4%Q2N2`uO*t}D6kp=Q4Ian; zC=3)x@MhD=at8BNC0D zQ&AGacI-urWPRHcAufGB>koJ|uz1z6xz1>~Q&{)3n#)$ueGvB){I{-oR9>kDqgjGk ze}gyDK>s3K@kTb*WCXUxAX)_T!wrnD0XV|qc!D%n$6%vQ%8vJ(4K4tei(0D?{S~#^ z%0p*KQ`L75z~ii1f6}&d;194<*P5;78xU)+{0zKUF4Y9^Uz9!p*t86ob zL*|IgK25@K@Rs1{LJU`(`jazD&Jl=ZIhXT8(9S1Jf;9IwA_U)!$8RGezP%gktbo5R zfp(<(HJZTEBYBTLAG!`b?km&d5TfxqGr2=A3ACf)vGGUQyr)8he8;yNAe{C+rW0Vp z?}I5rglyxsbxjJ9!!__Ex9O{(>m^X54P2yEGYxj67Swvr``T0nAC$2ELc06L1|S-f z#_m1K4TWmwK!tCHgR`hsWE6#r)l*|i#4V&Fl*M8RhvTcOMi;}eVcP&d%Hq6ieTEd~eN_TMZk9@n$z!Wv9e1-Zv(2AJ8Zbyqj&LX-Sw<^{ z;GE17%*rl$0f>e^!<9^#FC~weJAj2ogvcs>V6(yS-(SDaJRWFrCZ%Q_@P2*=wRSEr&eK}jwNCKFkDo=<-(FOY|U`vZW%_?{Rq(rU9UA;v3D zp)8lUh1~;H76XF5L>C{!dAsOVN9Mmaxx)SrP@Xe%pP6@C+2m~fK_evl#g*$J=IQKB z5%Uk;ioz17p#iH4r=kA;2)+Liy8ncc4r?8!kv8isr;!%xEtUH$hTCt3!m(W*;sgvm z`H_HOL^_e6*N%9aV6TK^VQ*PVVHh|3;B7(iWoN=cI8yYZ$c#jaS^*iTQ@7pVWGO6T zo)$&#?Qu2rw~RC(*=Q1Niux!u`lrqHO`c|n==eBjNX49U^ml2 zivAKX_nW)s@(Pm4F%KtsXML z?E@0$r?{->5Y)qkuts#J>L#2y^-f*)-E9B5{%*;N&SoYJx4oU&i&+^84X&Ld1#ScS zx>pu)^Aw8zYWl`Xx=CLtV9;gX#T>c(oSLv_5Nz_-_7anvM=H_d3g%{?CW^U!OZE)y z#usvPQeGSEFdp7^m?;3wdrV`Y{Qu4F$#5lN2j1x(G3uz%w!Xeic6muGVbL1IP~%8KjOk#_hu)ibl_PJ zJ=+p3QkMD0SbY#e6sQ9F-gIa~8&W_BR%e}u#8p>?;e&sFuaWe4bEdPGqmK;hgSn;-m%izWhVmU48#kMZ^^ zDk)QtslF&fi7r$4ST{vBQAtUiLfEobflgr%XdYJRpe}z)MT0Yhc{<1%Mn)T-iSwLo znTbF##q>^&Lpt$G*YhJfRR;U(H}YGoM32Mi1>=8p3vjybLR|{Fa@0gzJ7ubJ$`ugo+DdmO8~sp6_&Lo z#JD_`E2|(@!6D6K;s8Qy5x2)M6X9Q;%3lt3PyUqmQNiXZF+=hPdYXrrSIn)n`((v- zF0UOHo!3pfxI1Q)vS_rq5vv!?RNBr50_= zbI&dK62lqY59UgnH^#vK+!c%5v)ZQ{Qj3(I4$Kb4wem5jVfx<7EYOFgFOuqQ}TumEEcos22-PGrg=Wh zI`Mne0g}aYAD-*eNyctWLU$w<5V=b`Xh@0g@dQnm^bF;t2lm5BjHdN6XlU%ww&wZH z9DE643=Z#Fr}=G~Uu;+`M$~@yvo|8X4Z;5Og|HwZz7E6ol#eJlBEA8`8h+3>lVYq1 zX?&LEC_U1lFv|}bHWkeJ1-1LPwb9MPi6=XW859RGoG`Ji*tiQ1nsE3WWl3O*rsY0| zpXS(dzd@$4DI7PO5Q1XXsTc+y>#0)c%yw7~S>G9<3f0&!MZI(_5V@L&d(n*b)`h@f z!M8=%Kx4-%Cv0I2gCmsU#Yb($RWPF?*!%}VW}7V=B&j#*__S0ZkYjpm6A5I!m$0`P z?*+R3^h=gnhs-o4E_6r83f+GKK*|b#n>=~oQw<4F;rhPsJ_>`LUylt4?o(^bZ z%1w%>Kv@vjp}4PH7G#ptH!+aN9QA|z8@j*E?1fD6I=NNl2RY!6fRY8 z)09YXbfdyB8tl6?Q$#g7WQfQ>Bp%2Nt*Q2Q#QTA`g$O~91q{Ta=K5 z8K3r>mVz#%_XYVL6J38;P8p7zxxFhc^e{8EucNm|R~}{tBLNEeiCoNgcW>Xc{&p3R6TxQmd8;Fze{xsn64l0q`s^f5$pJ!#RX|~Yz|L&oPhD7vRqQ8fxV$nyEA_@cQ$F>J-Ru!}rEHD08BoCK_b3)8; z89*z(VeLg1j^H&r zE`Tqa4du_;35u4phm662A9B`3H8z(p9gML_w;&@1A#mhvbwa(0pZbrVwPZg^c{WvCZ0fjy zJpHLRGLRyOLLLuX*lT-=hWZK6=(Y9zRPxOS8b=DFwUU z^M)$pUUMzJSS`tPNoD*nv(^pY8_nax)(Q3!{Cj2)Opkdgo;_)R5y3XxfCzSbmG=6UQ4*hZhYt1h+Vzqv&tOg5O%3DrIjOaX!P}z^z z8;N~uX;MrH&eKG`tlNmeI=aPC?BV4C9hY$ zV*=}B-2lb9VQ$Hp$H3^H^7>ENFhQ}7p;)eM)-^|QijiBsp;>guFs4S3xp=C})mI_} zbi^4dFx(!0Q93L6!rlEvKBdG`A;n0&SZ=kM7Wq5O7mmykkU>HFP|29Tkc|7mgvE5jHyCVb$fb2wD%hA#<-lSL7Mnw@aAwwBOkUv#fGrTDOuy5Ny_o zl!7wK0E=7ZTpboP8rekOLbtNloFOj;aq)p;eP zbAKJj6GC+9$4OnsSGQEco>HKL_cAO#?iiPEvsu8kE$_bSwtzxu!^Rq!(~C7Trln>lvIO8nP+74dbITIhUQ7Fsz?x8)?kOvACW&T|nwvBv|%^U?LKd=Z9 zClnurb6C~ok+(vP-Fc3!2+8v6O&o(JvI-Ydka*6Jf6*EC02&HXP$G@-PMPo!y2Jn? zK`Q?NZ-oZ?>TK;k?1ttukyZ_Un2j!bm~8|ou0k7GnyZRW+(`FDTFck)&I4(pKlou< zifn0Tx5vWB&lz~#KU{pfN>`jyc>kH(%%DG9MzrPBYs(dL~v%`R_w*XEzO+5ehnIOXwt&s!;8 zFBS6cs(-R=c$&j5H+gp-Z&8W-d*X`N9*SR875=q6f~BSqZGv}>!oJY;>l-?|t{xUi ziIS#~0$G|%hY{rO5%-+0!k$GYUvl7~5rcY7beqamkX+CQsuVKok0^ZbWa<4LolznS}>ojmVVg2rXW=grs@b%wb zQcVyz#|rXxS_rB)>TVi>&zSq0c-nk@s%q)bFu0hE#Rb+T`gTXSYWQD?j2qOp2fd#w z03w((#|Jku5s`q0*hQ~iu1B9mn)Rp7KqGNsb{`4@V+c?;VF^-bOp!1-!{7}z{Dkx# z$YEhn!kLWB-RsVq+P|^_R>kcOiODTb+$)#s(n(<3?UDeN%IB}?0q8o?gP4rhsFeGi zAvAA)8Hw8it?R{+>*&kpBHli3@2KnNWD`nt%V&W*<2D^2*Gb}7CGj%Vcu8SS?5I6! zR{Aw^1#RD~4UbH}hjRLcBAUk*uUX?jYLR&#Y+vf7O&5ShCPqjh;^Tp~WaeHAm)epX=OPiXvaZ|25t zi{5oK?UK#yCYHyl6i{0nO&oO`=wpwZ)H;zr_rwt`V~^(B&}#j)1$Wonlm>Km_>*v{ zlPGeszt*rfAi=rnYsj=ZxY_v}HI)jh8HHxmC#MMo1$~*nZ^zO-^_3dw-)7#Fs@%U#EVwEDHWFv=H~($cN2tCW$!N}B3{1rTx!%XhSj4gluU8xrff--T`G92 z4*EON`z$cpEEUwNV_LSO=B!-F=9qzM<*Jwk=fn#Z6Dq%vzK_Lj(HSb4oXJz^?Ok!X zad?)0iLNvFvzFPh{43UYkufK>`UxSxQqlT?HJiIJ3Hypxr^A|-_bDN%tIf$Z&Wy$0 zO{P^>cq%~A3{MwB5uHG@H$kwY_X!R!-AxqvgRg{|PAnKRkV9R9wH;HSSJv*W&K(Zbgf`yHlWe zp}4!XxO;)(PH}g4XmN*ux$pe`&sy)7tjy$0GMSsXIp<{WeT#$)++jneI8bS+Vs$-8 z?B~x&7(3mRHsm@^EmTX6l9al?(Qn-Uq2j^B@TAtCi_O$gWZM34R<#*_=FS}=#q;Sj z)*j2z)2T7+FJab4o)MlL#j?P?G@(Wwtq)l$23ZU-*7X`VLQ-ck(|HW#mtRh2;{C?( z-NU@|*bMl(e`MulAGYLq>riL9jp0wg>q|NFs+QSOG6=NME_;95JRE6NWrr-M%E%vX zhJXDI<5^XSj|SY&my3Tpy^VLNs}$&{kcDeZk0lT!Botn_p`-0YuBm^>p2@<;eeQJj zYHpR<^u^bbIdAIj?t6%b5@2HsuLyT8MugAUK&uTW zS%zl~LEI$_NvS% zn$cO$P z_27P|XQeCs=ol!*m3a5pFL<-ptd)I>nZVxB+(aRyT^tQ`9T@dhtvhE_^JGq!NL4OS z!*FJc{W5Q-(kYbvRzNG`%w{X7pW4XNLA_3E%{XYUW;7O~svASdGi>XQ-n4JC>6B3A zlG0=%9o6RBXdfodbXV%^Q`;5ol3WU}^3QsVcKlSg8kb7+MyT)8_&{dS7x~Xh1HqbO zeXzPz5s6HU?mxA^kJ+Z@b*MAl-wP{KK4*Ng*xPubJW8>$8#eI9V`W{JyV9cH*6lUV z|DKCmqdS>j5>_2bnLEHAt&yg5Q!JD7avQU__H-r5!z=25t3JkWsY6}m`;s)Ycur)A zts`CJ%3L>Otp9=eR+YLWsF9lP{h3U$a8r>F*@&*4$Ddd^X~K))?s51jEu5qCHqb32-hN(Ng0ohO}jPl*B!SBCpo!KRRHi zAuRT3-nhvrN>quSN&cv~L5o3=dMFt&+4(D$!t8kd6OYk-FdDxnG4DfrbjHKH7Kx)$ zz^O0sp)~K2F9F)9*E|{gL?!J7TUfNo!}WN-9z5&4&r?s`-YuQklH(_gsH7H;Pfo_; zbd_=jOi9P|!fMKjWd|D7cvKT|*5JlpMstlUoUDw9c;IFw-5%d~FE(eLd0Gmu)Di_> zi5Y59lo!qMW8t&48crM!p9cQy_;6$gp)M4-n!N3pPOd_c)PfkA6HIaTWMSY+He6}fz z;_Y2^Q@gmVz*|(2Q0KjQ7QRc>%QZTOq2EJzeo<>9W%^c=B;7%obvTL6C|&SQd-F_1 zNFI6GnROX|FAa9>*NseSsdK1j+M2w`@UoqRi@uTCTpTS$?a%5prBtQ0W@^we)%$RM zqxSd2t4cjYl4IVh5GfhDuwat*zGu|-h%dw%c1wtn8vLQ9B7d4Mn^F0#OF_bMzXA_U zMQC_2^lw3fis~Yj`>DV=FB%3an)g)D?|>KY+>4fbHduqqw}w7K-PT~#G@~`avLhd& zL5KZ87|YLF2}VV$Ybe5uPstOfOC@4V9A4@1Edxi#kGpn_#*tMy&lP{L@Y*s^(A4bJ zW73|}7aG!1dYCK%N?Fqe;4@?o(o>z&7kZeGrjNV<3oOYs-XF5Q-wu>s_2Avxti&6&(t32yK*#pZ zg&E!?k9tP|>m3Yu{%-4~I_v>9(slr6FO0;hCvkpkNO5M@*!|9m6*%}5^x~1`cbAK) zc0fVSz(QpycmOnfT}^?Q^HtyUCO6dGh-b?zaEssU4ejbOgl=cs-=}8jhywu$DM2Xy zc9Yx5{Hn1cvy5@7VEhGlp6-pCl5XoL^hu&HnnNnnl2%*t8}ak&*<9wja=F1n?Pf zQ?J5F1jqy|hAN&~h7Lhc6m)O_l(5;JmD1~>OkRi<)sMCYj~=^H$0A4L{3^GV480~j+td(EHM1`r zu^3o!VxB5hFsgIyYX$ot;?!h!T{+v>IBx9&9m-az!xE2yC8VbNVwJbw!X<>SyEpmS zt#r=4alE4cMs9SJsbXGHEkC1ayz;oDBOyvhqg3m@<6f64eP;O|;h{o>8=FCQvG3OY%O1tF%rp1C&0ty7)F>DB{CqTSUxhKOEVEABDobz88@-KKR zly)rmBP$4&alHUsa`X|kQ)4U{RE~fJEh{BQDYvu`4glabl=R4|;2?^Wl zum3AvSCw}gaIDxv2mdB@!(lMXJ>m$|P_HTPHZ@tXhfO%7cB8Q|YdmscVK5WL#akm- zTE6tJGH?=-SR+~%pPMQ_EltLQs&75k?IruV(;--!e zEt`kToHEGbrXaTZ5Zeii5gUjti!fm>q@!ktZ3cPV)O>j3@5ugD0~?Ok42rl~obW~+ zAC6W?zq$}xCSgKDh;21w&~&o6T8OQVKS!$)=EyQJf@MH<|Eft4N2@a0h!4b;O_*>4 zV%rI^%_NJvfDCF3=|~xK#ODmsC`!2DNEnw7nT+jA|0*LVp)ka@{M_suGMRjct(Fgm z4`fg^NJosKguMmy3PB5PZ?*gDRf-Y%5m_NR+SIm%iF-;Fw!#VtuTSRZ zlJ=ta?2B&1QTzvHnDWy_gn$KhMZQQdxgUSOz-u5BEj$0MjQ3h~Y1+rGeAO(uj-69SMe6ihqG)61Z>rEfb!lsSA&u*mY{a`TXrrm>p*(l zcfNF!p1KO#a(9!ZAmT5bolLkxxlZ1qQiZ?W(WTT~Onhe-PHK2hagS=)|0@_jdvev% z{8y0uR}lPHU_**J)X&Xab?~3>xTb;HFL-%(x!MEE#q=LRJHpJrV3I5W68VeBKya`A z|6n`Xcfr%03lT8wr>@Ni4VTDbWV?@yV$R=+Qs1s@rl(8HtdpX-jHc17x%9^o1pflw z+rX?7+1QErZ0~~-hcZV)}G zoix&Ue!4cBvQh5`l=1+g6>HWU%CPDNXSG*x!=TSfqlcFO+4x=Whhar}iv{NV6@xOGxE|2()0 zvtF338zGM$5O!jG>~&wPgs^L*c!5C}H4|Rmz7Q6lCCa`N3jB6I$Nc@dXKD_}F%ob- zBVPeE*eE_aJOuwkOZZMQ(vrv;3*D@cJjEs~dJoz3)WF51b303fymMQhEI{w8&Yj>R zEr=_F8n4pT`Qzq&@KsG5{GTNtzqJO~i2wUGDkoJ6REBJ@LJ3k&~eHAJ3p% zK>U47>DVIgjN9I0Tx$MjmCcz9uF|kEy5Tg~hwPtNXRNm|2#AXEK6=wDU;htvIR0uH z?A=%ap5kHN0cN%*KVRtf29f?-Z0%|Cs}^S_-9E*P`nbji6mKu_dzmTX)t?y143fY* zHhYFhy#|l*{s?@l{|gNMeY^T^9xqfC1Hs%=xYB^X^RA67In5)#*ZKH`)Tcw&5A6@D z@C5HOqN5FqA1L(z-^07YsX^Ue;NE17v*4)!8U)-QG#jfdX6RylBhW5Oe?6EF)i7Hp zP**oMs=3g)4oYjn0uE}*d zEu`^_AoG2D_+>1>iE|Qf2(9kOfElgTGJ{6(q3S&Uj}N0`d0d<81rx{^0TE<+`?wMa z+7U~8?C17|h-2=2~ z=6%^i*?S>S?)MS%sE!aK&z%|mRBC=<*J}YOp4tJFJa1ZsegxB7NKwvN7$3736soym zE{k69156`T={uB>5O*Y%@(Z&JXVzYmKxA5BS-%R0>Q&dy*C>w|+kTEN^eC36e-m1a zmOs8znW7R8M7;QYzn2%I-e<~7jDB5v3e;Yl={Y%|F7RaI+7~>rpn+6`AeDVcMNDd6 z|HP8Ez*kIZ{|kF;Y6X5X4ILtg!qd=CIUi~)7vLAZeOI4){PYWeEZ+-Y&{|~8qBkzm(o-;mjPxIbUl1TT zG-!QPI;7cnAsEkWzF=Q2ZIQ)YB|2`g$Y`~%Rj|)riz#_YHB1%@4q~1^QFs6K#@cMe z8ayGRH?hODvUJ;~;`{5(ncKt}p;fV-4{@VQFIW1evR=fWS;QRE2bB2ZQG~b<4QPik zU9o0|nlc7l8J~j5d8_`zftK3?*1vT*LK4h2d|=a*W>ukoc`P8k|7k_ghM|z>SDDjF z={hA39bhoF(TJ_v;M73XB;Tu$oi8S(b7Y?XRB>S^Pvt8iqC||iSX|;RAyyXXbUK=r zhz^~7+xU}GON@`!YJ4;%QiVt#JDKq#GZWWQ3mn({X$uOO=)>-Jplt5Mouk8W8k5%b zy*#L76EK9_2v$}6)WvNzSr=c=%R9-dd;ZDRMh9)kNk_TSv^Wk_RBl!xrSaq)JJzdzA*T?te2Mg;Yx@wQi(8Y4WW<$F`zp{D zBw#X``2;=n3#iTL0xvk}fGPgRV1nB;1N~lQZ3VU9>*mhb)jWb9TGs=X6RVpZ(ssCf z3h=CnNM`2QoOigt)H#7tG1(r0%sz@x69c})eK1A5f2Z+(2bJYrfb`+I*+cW6(PN-L zlYIt|u9&DoqcFGKA^NE=bRMIjlu3rI^tX#d>MY+^ilO_C?fW0`U__b2!d?*7?aa;# z*2~G2|MxdCACVz6QXkS+Z+y+Q3;D;R>H;+GADEZmC;9p)BrcF zATdrwfubOIXbH_2705w(l$3~2LQ1+DlJ*UjJn7aA3Qm(;nI_ChKrbl-6*60kWXfM% z`k)=bn*WHaTCIR~9r|No?AN@FtQIacAN_uNDizeGpK?FmVnv zw z!EQI*6Y|riG`_l^zJHt;#hkk>l2*6VQ6bee1ReQ~wUNraN3r$9u5s#-lvQrMpm^9| z!?PvJIUs=#%zoKcg>KK7L);QL+{D_UR)$;<;x3hR0iRvTbin@& z8}KfU>$dhB%em2hS-2$8dpt92xB|j#bLlSp*E#P-f1qQRU&t)=lQ)RX_~zlOqzzeZ zbTOFS8;)fKP`(4ZLKqN`O(Nw^T)%E=9GEMBNsZ0o-q3Prks7uW#VE6K%H4pRx#{Oi z<%<_;r5w&2rqRB53TUxqtmQHiOmt19#afTpj1P0^aUWUamS#6KPR*#itlHR=1;)&b z@xX$k&*O#H0ZsY7{{n!yvp`*Q`$_9BBQob;Bp@yL?ED$;&a;^Mk1n+5^*1EBVY&aAdZq= zh-=GZ0&>EG4sui(C!%)3)M1%CLwtglqjhobuS z@TJaMo~VP!N9NRS0oxkeGvQC{XAc>Zq3^bv`RBePTVr03N{tVsVrIL!<>WoGJ*8s% zw#DK#(i`VKVtF6XGLegt@JO+ZW3us5KS(q6UJs!O{Wox7PqMQF6pPP>NZ&BA27z0p z!TO|S$;VR%vmnkl5$Vcg!~>{*N0eP-*_SY?I7 zzeBTv@J|pdpGosV&YaSJ_SPcI=O;BI_MZmN4 z>A?JB=!xzh8KhwbE4qlZVX`nf?7C&eYDz=`5a7-y)oT9rDR?m#0w(D;-U1qvHP!&_ zK6EI`*i8#K2`2MzP-#O6(5+V-NvpBdFwhZOTnr)jRz!pnsciAEnu>KH5_ooQZNNk? zOo1&x5_S8^{#tGTY$;Tn_p0^PYU~R8p>AqZAcpL|vH4ko*id+V?i|bqn-U{PV%tQr z7@o}9tv_pHSqg`BzMF#au8lxDX)8c(t=fO<3DO74uI@(fk!$F`zx!r)`P=ZWUF$9Z zy-g?m-bR^icgmu8bw?WWJ$f^d!HNAY00FWHg>PUYICFKg3`6{?=z1IJKH~;o` ze&lu-7^eusXgC!-u0Cj*-*~uQt(Z83!W|-P9F1%U7;*3{kyvp~86n6S{h!Rgjgq0P z1EmEph9h9Tr(P#|?MGAQ-IvGU2~&7(-9JlU;cmR;SB!IDya1iMiOn9!^jDdjw84Aq z^|x>`lrjfV%*@)cv_e4`cDdd!;FV?bYJb3!=4TV&5A6#LMRfEO2Bi?cNd;BfW)bq} z8wzb_S`QD0wO#rN3Zn2$DDhH*fLLN#0t1uC^`QZ<(@4zphv%6AuVALX1IM2pz$^dp zIO(9VDKD=G_R#NhzZ0;=V6 z+?SPWl~py}K}mx_=*1*@k^W@O%~o?1YB^>E+$?*d*r|w4t|j%40vo{57I3=)ka#bF z|3_;~f6s*5v;lgHMT1Yag37;wk9B8mR+%b0=ch&iCSHh4FmimAdKM#Q0 zAWqa2gt)2<{X4dvA4b(fgajM*xKO`;p>$ zhli@u#nB(=p8IqO2-o~aXT&Kue7|Zk`lr%E+8c=;EJ$+uC#7YpFe3E_#rqQGO4IO+ ztt$cy4Bp!2N_zg~tf^zspOGM40;P3zaVJCrtOyG_h0v4Fgmg&5jB!{Ii^HxzSI|;W zh@6ZWtboiwc(ze+n*l3?RlDY*_XIf8YCjed)svz%)VlVc{WWjiL(-$&^TM`bAG9A6 zqsi?a`sXHOGDDk+j3QlfF-ruzSq|L(r734P5acNUe9vX3}8KJF1CzRpglF8zN^M6XMIy2EN4Z+pt** z8yq7!6K2yiQ(Kk}@QF-fpA?%V2vC5k@>sv?9Xa*?X0k=?&=EA`s2yL6w9;ATd#k!_ z{i&Po>t4f@l`J2x!TQYpJ-j4h#TDP<+Vr4;rXE-_%pV7AY4#XFfEx_kz67HMNaSlf z%Bj!8vt6h9OsnyB|C70cc_K2!j{B6)vVC1)LNtEi7eV}Drorc#xgkO! zs1e8+WJlTSj4VecT#Im_{9OUn(XjOssi6exq2T*bk#AL^0Y19^lj@?R*z;i`LI3V8 zN=P!Dzgy58Q0fbI!92hEa%k?&3qKjVi{r4sSP*C^NEo?e@>6>s$wR@B5aoqY=l8TC zjiRFoMi(VDgY8ec1~sZ#3FGw0zAcqA&A{BR5=fa^-B_ZNK}8C9#mHdx5{hjd+6BMN%6vbOqN0TUaB6^ zjCAKKf?R!d9{7L+6Vf{uJfXtl#Em{g@icd1V8dA@la@OMAwbx2JAB%-<#AYtNIA&b z@CqS4R`6@LvSghEudT&-bc(;6^a|a+)Q`-4>J<8KU%!6~etp|^;# zHIfxGU%_+p-4o}_?!*Kd2aUc)9C{z0(3I43Q&51J-L=j>+-RODvoU>*4OZ&S@{C!- zy3MWUfu%oSF=Xo(8H!=SBw(sc&FC+y=_UriTPhIB-OSeH{gE`*z;un zI4dc9-Yo^bH-@krP}9y1yAW_CIfg)oX|e`_gqTL}F{XB}KO&HPm>0-TM5pGWvNV&T zGFIWXDCkg(>s3+b4AHc}LtzlC?K9S~Hkh^6(JGX3sm>|m>#VC9vS}$wGLVSP^qJ1%vsm?SHx+T)*+>3ZB1qx|!(u#9g;nsT9Le zahBX3(8kE2t+>Obazu8=6h*xV;(z$A;iR0PYj8fb<&*1??ss)9eWL^9xjvxL8Ps zIh!A}0W#@3)P>0Xfn&WHm${b!-LgW5vd||lPp$7#(ezll9$b>MNp_ncFYRiNYip)^S)yrC+I9g1jI#5hBrlYP$)AZ#DQtJ?B^ z>mDvB#0i(=0Ui78pz||Lg8TJ_!7>M(=NtIDH}#~Z*fzT5kh|sJL<5LlSFQB|*`B%r z8!Ahz51@C|6d%@ZvOG0{N_-+-F|llaeK_~d{4U(al{48 zNJs|NR&Dly+L&mYrD6JRt_D*TQ&QQSPGLH9I_!m3#SA}ca$#pKVoI6%YU&|7%0?49 zWY$*3G%1@n$Le-o;F&JJxRNtFpS1*3%m zCS)bCTU-r}U8TX6T$jyxQAnFp^eeU7Mz-QQqW7>mgrxi2v<1E1W%nGZO;0;Kg^K6U z-HBqp&s_6+tw#XPr7ZDKHH62QiaMmjuhG?>2ck3{4KBFTiyA?CSa3z~uj3mO=_rzM0 z7JiijsLm5 z=87Ktl`1g71<~|TLl9@3U%?DvV=55BkT}Dg5^XzX%S61rE~Gm zqe!{a5`j?z-fVyV`uHg?jzVJ!CW3{-FP5NLpGQ4uxjh?Xhw>U%Nb|iI`t#L3@vGej zQI#UuJe|K;$cg;Bn%&(U&m7MWMZS^WzLx89mpq!B&+qlQ3-UJHU==z|^p8*BxiczZ z8T88nkSH-oa3N6|0{ULrhyj968rC5Z!YUhRXC)gPUROkYT zij<)L7UJ6DcQa5p^B!d>Z2w(n$0CO`z^)|->5Wly>c@aZ$>=9hI?d-8fq_2q!PTK! z8Ad_P8sYX)N5;<^F`J)5!48F#I^8CYqn57I~r{{Ivo2d0)Q!--0clh{IQecx(MI z5=XCs4y-u})oDoGl~*#{muK0@O})uEX+N+exz1vZG7p*9Y+6GZ^FuR8elETxgq_^6Iikj$Rva@tT2PV~gF@Xm5^ z7AYA!i2hK?7)g1T;%GuKBtCyOU0pE|!W0I(QZBOZ04o)GSK`j}5P3&X@@{a9BbVSN z1!7?sr?-%#rf|L@co~f{fN)!Yb;PuJZL|X#P);!v5!=Af0k5ig55<%R)1Xy-xeIm@8-r7 zF4J_$w7m9=xcF_CJc+NsfL#V3i}4-;tr1amvkQGs@^Xg_vo^b4yldm`8@2xpZJK?$ z9)#qTZjNYQ(X-uX_cganeP5UHEF6>IsYeD(iC@>)Fhi22Zq)B%>d|P z_uBg%@$sMP(_h4^c#0_LdQ^1GZ#@Qauvpqs?g$@j?XrGU$P(@ppQELfOMF4mCF84L zeM3qL4W7Hsftvj$`5j^TV=(#ahhINa8hP~7XGgp5M~MK~#*J{Fj;x}LehXNA8t9*H zNO-xo*tz>0&M~MA;9(9)tQqZo+(mginVuc_7Pu8hr9{+Vk1b(%CRIF22REv;{F^DU z*l$iH-?}2COsG{Y&LUgVGSy1ECY6xQ+G3w)isxXaDrSdZ)Q#|W7mqD{u|@DuK9BGk z3DoNbKj7H!P1ik@%N_h^tk!)!5F{49n(nl1dCd%j#Q8UZsji(i~Dr73M#r8a~arbiC9cJ~Ypc;=|f)bAF^><($J_-ruy|5hp+R2PM~;Yb5Yc zxE_84L&pWMKXXO=rYPXSIf;O#rSvrC;RgC?Or9#=b{TcbI_uUZ(X^m_HSTyt3U`L- z27bos++gnhCY>+w?CP;#uwe#l2Tv zTsc})L;-zDYW_Z2C`axy+3@2B@*kG*Xr=6k+5Z^-4X){YnK(8uw5(B zaBtO?FM5jUCxNE3AZ9VVZl=|3lxBG7ahyztMwp&TaOZi!BQ}Z#B0t}%>w-&}#BApm z1+34vYA$B+*q`@3zocymGHvm+56UCS!e4$`Ij3A8G+P_!WE{|?`J|M*yK-7J9bzNg zw}#>3>lnzaM2rPqQ|8yJ39XyAsZD=!B(O`L@a`!_OLVhGqcXw{W-_JP}JU zFAEPaM!ElfN|G>8$V!GPj|<=nP*7IH<26ay_4=seuYc^tB^fDn=XF>Wg2{f>_*LQg zDTq@t1AmH34y=lx^3$*I(;YM_tqc-1yBW%$I}C5KecEI~^2OJnp(Hq1p?>M*NtdX{ zf(rpunkQtvJe!oJq)}e=2)cA^jH^!cQ}?l3Sge7YAF`j2$3x`4;8 zSL|B`0W<&1+?%e}$3}}!lbKqfYQ?QWRtmqpi!RI`} zQ4rUrS?dDA9W254u>WX!lI#TB2>ZMGzxS^x0y3+U%Hm3DfD^@)Z5M&>*yD8;-k;WM z6qh0M-0VGzB3;*pxjb2S1s4@bTpVo-3a}J6Y)Es1bqE4(3EEq<`%OqZe}|?7+9*tR ztKN@a3-GYmATvF>u3o8j?(2Pbq>19D+j^|#YueT z@9Owr2-nHyLE)^Lr^l*|_t|%i zjVUPa3<`IBrQpGFrHr2(XOVv9y(RKS$uCDifg>!{?w58r>qyc))7bIhEE1xFak`?|=L5ATUr& zt=0{1s46rg;rG=IRay1Bv#JZb zlg%-b?MgH|{O`$z1r{5L<~daSV+XExE!#-Z;#tHZIy}V!RH~uBKu}Y}mt_HNNqQ@E z4Se4s*`=O9jlm>Vo!6U1!wflK!!Tpq?>Rd1-jB*; zG6667>$_p~%T7t&9h7c;IheGIvPf{UT;uU+F3X8@e^JIYg>UWGKjPL7tf|wE0SqAb z!wY*qY=PDygFHn3BKYv{m)N*d(H!uuESk|a|8?d`qNED>=fJ85t%PS6&Y$I{jDJ!0 z5mSmm0{ZfcRW4Md*%g+ea5pl`G-_oF=PiTA<8ox0`eG^Yi6_!2L?x+SlZJL5I()-P zrmL4kg-Unua#32%{xn`d9`!}~%uy%{i+51NSV@#$4Z96<6pFBm1pIkRJL^Ei+v#W+ zQTm{@-k;qgbj>C)7l>g=E8zWUOk%2GAS7BqThTt<_$mBQWT4un^dHjW3xy#iYo`44 z+f_sHCSX#}PqOspirdct1jLQ@sjaaiWHBdze*n0~G`!-zQsf&U=AH*KNDy`PGfU-iR=6r4~wC)PNH38!_; ztI^c+>7!lwW;YXW6CkJ)73SIX2MUBpw7QGSaArg<&Mn(UKkZR2*d-QRVOr*axksL^ zNBGd-fN9LJzdYNb5(6H>31Xv88A;ZWUoaalq7p@q z>UnPSsndT46v85ykz~xr#6c;^nokxoz{25sZU$M4+ayURf@0spKg?Nis!4I}NkoUA zmAjFvo<-A8xT0B-m)vOD5>U*u<@ zzCkc?%(U1qadWc&_3fDv2PVKRoWWD(H3jVK%|n&z(jBs?so$Km>K>kz7g)&K21`IDI^9ka3WG-{RPnMqL zcB1%uM2zx#hb>1IeM6L>WYK9N#Xd)w{%&X9>ssB1c|NO*ypB&&f<}A+0w)rhYG0yR zwSt{?67yKT+OH$$(0NXaN4YeRqb@tniXy`D`31}eB(|I~+=3fnL&@onTD#`Z+(Mob z66^zC_b8pY7A;1Fm3Z_xWm4j_5u}o_Rnh3mwKc|@FLM*G9AJ-l!r-GvkY4!-e z0104Qz_z`50n{G=4tydc)VLv-NTlwON{kOT_^P);Z5tljyZGa8r+qOL`@JNivuG`M z0)F*`Y>EdI`U`zVzx!?(`SoVs)Z{X`ZT?Y9}*M)WAH2z_>S?Jr$B8R zcsP7=bg?rtB95z)8Nms$LWshTnJi}pJxX?IUHgD`J*5m^ITgSR7(TJG~61e ze+1th^H%zFTFErxDhO?-Cd$G0CR4QQ)J;x#Vg)8qQ08t0lR(cn@N6H^i0g9#QqLsJ zXTps^tnXQxa+s`<**#NU6!!66Q-}W=)t1U+hpLu8dpsl3{9)b?jS%$oiS+)}1QQV; zh8MBeWaUDXvMiCbQp79ZiV?fq_YE{wJXI81KD>vRtV=RWZxqY-gIBg<@2_56mGbfj z)Hq8WG9?2myznV4@(rfQi8l(Dio%*JFh9>#=2I}qgHQ8+ux*jYyTTm!5QqjF;yV*m zd~$2pH|a@uw$M~G=wG~beFJ($v&(q^JoK<>eca*_M+z%=oMrQ2tgv#dB0yQ}A z^&NR+%+of|CytLghDC5BKbpVSK6w<_I;jCOgaXx=dZ(+&h%7u;s#ZU2la>`g>oR<` zd&oK;1zWk*^LMB{rbY-<`8K->Rip(ZpzoV=v0G7ET!T6TJ^9+f?;ShuA*x&Q5kv~j zDY(#1)Y`d8xNtY3Irh)KNR#kmZkgVw$5J(OOHk_8m3O=B4f^PpU!35fXE@K&Sv|YN zc+ftBh>uRB4t!ufHUIBeH&*OiuqEa6 zXZy$3ahxY1ANn8voo{Vx80}djtzVPf{7`1gz*7e ztJP#aLbcOu6r%Cew`Mpo&OR95+D{+<9_CfPZ)a!x@cmmphyLMTNmZYmlJ|y^tThF& z_I_@C`{y@M{>5um^DP*{7b)b!A%6k0cQSEoMaM53bnag`tr6k*sFR3^R!>sxy=GS5 zr9REWX}-tF1wXX~J-u~AAv~K==7B@e>It-}pr$Y-%|!;uINm>`XbpeN6ulv0f;&v+ z`h96a#mhywd(=;EjS3p^v;2F7;O#MtkiJaf^LF$T>@xhz zo=x{J!sWTnO<(RcMg6m(+M-S@Ck0GZAOasg81t}+JpR@NZt5=&Uk*M@1qWRi8|MX| zQop}AKB27ppLjRRlAmTx4!BFO`B-IZiqp7B4$0Z|IRoen*uTRPYX;fMlwMol%Ke@? z_`Z>`hPnCrMm|5cU$d415~s*}(-9gmw0g!;;eYc6j<@o^NZ5U=wGS^vz>YbGYlUJU&rO{f@sS8T z`o3f*VY0F!i>4E)VMuC^e(ep+4S7?JH_zZR2XHem?WfzpD?HUE5%e6 zIpev9ERQoR)h-3G)w>6H+Y7J4zqq+c$YbpFEgh5>b|H|rxy1Co(0335}j+)Uw-Yrf#{%Zyx@w zJd6bJ(f?F{JSKxDAH7a}+vnzAmER!A%zi53u@E!{p50$x)R|2xJXQ7yYKt)5Y0SlZ zOg_nL-kcITsY`NB*${=&AEiHt!1_$62}Wjr%2o5_#w~J%kZvgw$z;|*Q7Mz4J9QJk z^P60Rfwxa=u73ZHys^ruD)1w26N)==XSsQUn$Vt#l7Dm2OFFGxRKno-wp^{=!8uB| zYPfvdZQ<^X4Yi7La^|3sW@9RAi!LiAMB9Gc_C*XArIon~IC*BDJW>ya5%Y^3#?6J_ z0i93Xuvky0Q`w3O#=~Qkefs`ggOZj%Q`d#^L zus6;JaC{9+OggX7DXUDM9(^D4Con~tQoK3)w{nIJb(3dpIpcWgvG2?L_z>a!b3Ibn zh*}NGUe|s*CFsSLXFXfPKqpj$!{Irp;>Y@L$8O1qxjaikkTiR5-D^(Kjocx|S3$L_ zaeCjVVzeZ#9%LN<8Us=vBi8ixdv0E&OshdcHJ4_(-Nj5nW84vS_0)HxOE!#~0m$Pf zvd<4BUxgxb4;ggjU_!Y25rcN&kTz8Kj9{pYXC)E1ehVCH-6O7<5R9L{8v&A^OFr_4 z_n81>d}5Z`X@Yz7ALX`W308*c94@|G7F!Uw5^dLB_S29m$g`oaat&Bkr-_Ql@)5GLG4 z+hgKJiJYxDC`0JoYxR1w#=ISp$L^x&cGAkCLp*;xhIppDO=(|9WIMI3EdtCjHob4# zc=OO6G!D^SPopm^lNtVWIVO!!$qF9}R)UsGzS~3pR{A?p=Zpp0MxVrkqzaqy;F^0V zpQ>Xz4Qo5U`T$lz+1cD$;6tDof@$3J=>|aJj7(D-8tWO2Ezk0?Z*~{s@Z+_xplZ5B zxt*ya2OBduNyW6~kAs&HFqb5y6=i&~#c-x()d5cZ2HB+jY~vU(%YCV9A)6Jkhq-Ag zAS-ETAFWAL9dCj-<8DInbmPx8B62=$yqfLC_7P%;EqlCqF_jH8s)$TVc4Hle+1x$~ zqn1HbiYnkY&I3j9_m>%^GpYwq4*bz7rSa`X3~p#zyP2Pn@av{_1e9;=CQn=+XaDv>R&4mDb#{CDu0N{;`+^D4jLphE&o(O`; z^1$=5nwG0UGQfFQ6bX;|E&P-DtuqzCKr! zFA>5a6mc{ZdjCP9v03X?^bQyg1rBqd2*z45IFfB&@S=Ct&`v48&4HbD;R2vlC?*;~`#?pg7h)_>xeB*IbOx`nZkm~v% zN<_sc&ny>e&T+HJ8Q4KQ{HZ*CWKTqI^5RR0gOp4J^B+9#EJ8e?LO#d*9Wv(#6Tr^uH?@%;+w85CN=H4`K zJofE*Vx1kOk(}eea_*EEE&PU1ObhpBqkoUtiVaw_%TD+zLG8El?RUZ48qH}J^cO{C zx2Wim*fH(zpD?7YhObSaNPO%A-<0Nl0ra0OJr0iY zj2eZgCt5V5R2Yp0pAr}EUz6sb*qQfbH}6YBSa8(ujuJJjUJQ9q%Z!HfF!i7?xaMq_ zJ*WtG3alJdO*}_WKKl9S8{4&+{oEIpRYo)CjK9%$coljLG3H9811XK;Q7jOb>KuZw z^|;4+)l_&$I80hS^g2=MAYikxTte7(Y}j5a%;gD=-SJ4S5Qa zJ?Rx+px8FPWT&{N|HUJhd&aLa$HYZiNN&$HlbR^cp*6u~2^q_HtK^J_P z?flx`{SsNf%trh6!z$)uQ9r?A>>6*6!)db+`k3`+M%eb0@7?`~ZA;CO4cAhtUWyd; zp--j}x>Cc@G*_OxTLb!*g*7LJesc%jhu;GpO>kcE5tSAm%bv}cgI5#N^0!aDJmACN z<>&tBNM!3>xV&Of|33gzK&-#(#@cW(hdQTyLyirSGjQ~Vv=C1Dhj$_LHq6)qksbwuBcOYnZ#%hnntHbXd+N;2CA|0x##7|mOHRTG?#DYN0e2%Vm-PBC zy~|6SX~ScV=OZ`_Oz)(sk*4_fUH(p2%H}IMEXPAtLXFYl36|t=0*4u=@-aEGjdPG4 zlhZU-lDVdvC~9(q=$4)X1V=_!YbCi}rFbvo@hEs|bE7;}KI~eadU{=0rht5SO&)GL zLt{>OO?1COE(L?TdeRLxqpIL80ZyMjq5VKsG00c~KBOH%#qkf#BD{+4D;q~K+{^~H zVRAE054n(cS$#x}h5+FJyi#AH7;eUZSwaX;BjL-J@XZ+b)+hdn5>jeXDDnOwu1jkr zyHXCcZ%mD+bQF72jLGm#kbDjTaGj!-k=?^yi5}hMJI)-Qt_- z;TA^xtjoyD_8hXMyPd&bd*`ht-)6*(6OM&4AxWEUXTbi-;yz`O>7RJw(P#SzsH6T! z{a-)F%|WYqfEpX_S-@`+kV_x1(k z;YOOUki^O#PRGQ9n*70JH5;68((t-}2Ilx07+=$eJn3rdy${D8!Bi@aoBXC2^_OC2`fAJfuX`H0w2Orte^QKC}M48zpMYBy>|hR>#7b$ zM}EYXlsJZvkQZAQ{Y4@Sr4g7WP`jvo@t9fh)OU zs-g@OBWo9c7&GZd0;yv|%d=kzPQ&_wMK?_GBpWfCE3PiLns`_A^<=q1YoJxF0p`>| zBA_CQ!7tT6O>=$YY_WXC?o`lHr|VnaSmbkc>?Pt)_WmW@((M8V;Zmi-RBy3+$?C zI@&zr(qbZ-s^GR4F4M$ET-+_wj50V^MGT24=Kv>!qU}c7XX`1JfIBvm zK}FeI%hgCRq@zLaNW8ryy9-sdfYRJfId$=mc=%#rY$mw~lZajd^;;CZm2~Pz3q{jT z;cWi6#RABp5<@DxN*1F~EgQE^suDLhfk!snJc{I+8Z#+WM8!wf2el376N#Bc*aa+h zy6vc_%H&ShaO;$-2U5gR%9ZL>75e3K%F?U$RuLy^cN=+Jwj5#kov;9*iT3`^o@4n= z6!SaZ#22+w%avTs)2ZYPEkX;`Y$YXp^O55%au}tZ;5KmMWWn~)?$lMl#Sl=Ab|hz_ zsqSUS^ji%kH=-l>W(u{Sk2;`b!(0Z?GHEzRqh_k}o~XIpc^^ILQ~Ci^^vgN(ZAGV{odA1Ll1oo2b)zDru9Y zYDl*nW?>WY7#)vSJG@``r;O)Q71QOv`nL@KmZ5L1mBF24E;z{?CJE)3mYalQa=+l4 zmyVndwhaG*$o%rbV+KadbU0nbPedxVlUJ;iG?@RhtXj9&QW`b*KZ67PUjEOH{ip4@ zg6uzCE({=fMD}=MUfSQ8G9ArU4c;W%Pn$Io?Qe0I8T_kdSK3ky@iOqjwce`AuY3`Xk!xH#sn9)jSD9wQ5BLRE00`;hm8ZY7@3QPxFk$Od_Zw0 zju=Z^dgd5;QjIeyCT(E~>BROem5Z5b+Od6wsF>weI#ij5Oe5Jt+!NItbg!Rz9VLLj z=tVX99Bf;sA)Ox|mz2yzPLmu`_BHB`vM85b zcR?Id^u~2FZ1;HG#B`z9+EWdE@wDs|dO(wwg{i_eDt?oMzb!7c|2l&FxAw%k`@3W3 zj~K~Q=-U$w))k7~=$V|}1b#Zhtk!S0jC}-S!y?q}Y_9nkXE}w@n9r?aU&CT4{f><* zDkuh^mcy;RPHqb|`gQt$cx1=_ z=eAr|6#Wm&k2#%~Ik7n9*#fvfHE!dT&#JEZ%i4IbBL3`wgzU+Veyw&JG((1Km&Ujuxz@X84zL=BDyR|2Fq;(R4=D4;O zEF{?ytns*(@Ue@*jsaTT?R`^6@IKAPpm?A8HMhs`K8DcSnsK^)7=IW z&Gp2{XgxW(5r*zr9b{?$kS%Z`#!@oo9Dv8Vrz+)B4svi&zQmQJs@$x*o1XJ7iLLsY zgqiOQXiHYTwy0P}bqgJPJj{mv*{8A1ph20^U`0AY(^b=o>2$S}Wjyj}YWD{LBWwcJ zkg~Tq-x`sSl>bb&R6_YWkwcDu9-+ns?VUmQBfhofW454G3Q^h8f2<#s>^XTLI|W*bsbm8mDbHPSWwHrbi$O_Y;}Z1r&)i6)*utCxNl_=BGEY9(@;Xk)UqJHIr(n3%v|WHK=t zjdn#fH@ltu&7z1dE&87v;i0;h&0`>z!lRS zw@>7l43$!ZAw#TfcFqG2#S{zB*~v6%Ub;y#Iv(MTYV<$a(b?qdZ#8Kx#F4N;*I8$ndp&Z>PU ze!|#=2Pbt65$b&6xf;}AmcARsXmNRUbhwQO772XSN=5cn8>67zB9Zf^B z!O5|hgypC=5H7mjV6wCc=xhbFHEj2ktsI%mvMaFYIZlZQ4fIKN>V;0kPG-xttbCHR z3M3?t?TIgD=i@PqC&iqEDW8e>biUK8 zD*#j5RZwsM3&d9*Cc{;Nh@-N;4#{{Z?rv!rtK7#M84txBl2OBK)WWsl3KfKlLKSP_ zD!M`i;i6EbTDZ^^x)Ll1nHDSvTdF>6EEu*@v0BL&h1^(#Qh+R!>x8ukr2vnL$ybhS zWPj6a&CkQm&haj-ov)=%8e?wCxpf?=HqB-$vWlLuHk6GPou1~${&5%yyTN^Ja{Tf< za#SYz8W8BB+9c$0Sr%w5)O7{Ai&k8gk;+w>*42vLU{Qr#19T#1t!MGfBz+Xt@KJMu znKa-=3v%aRV#u-mlFSet%w`h~ZZu$wGZ%0e+sgFdk%kqVm9*LwMgwe{LgV@Kf?CgH zqtIQ&c2ld^r(U}a*IET7Ze%B*6Bt+3UZ5uZzmRz2QetLHJAhjJ-{FCnPX7szgk)pD^~VuhysAfXIH z5Oyjwh@gwx74j{>^(~gI)hzSCRMd>bbQ2QN)JWNC625q#|Mv=o4n{Tb7|NE67oVsA zQzBHhk!;r@zsSaPHY+}Zsp2q+8``f3RG~W-nO@+YMTQ95wa7qW`xYfo=*~rktFd>H z;cDz&bbLYk7ad>F4o1fpw1?601?^&Ve1ZEI9bw>3M#mVqm(ejgyBYUB#R=HxRz*Z? zoW4|6uWh6->!$zA*~!h4fHmm9_`q=7WB+kvaEJcej_Zo0|7IscNkH~FoC8GpK`ad-2;r|T8hIiKg?YOR#^!#28%CtZv8!ve8$b6XVzyKvMi3l8E4@d&3A^N!mK5=p9O1XH$o`qVV34^Bhl zl2j58E^s__Ml}zE2@g;RJ;Gd;90+D@b;GaK;wGh&oD>V+>&t~cV5jda@qzpNMHkKF zyUW)W|A0Ndw&DlSU+NMZyua6ofdB$c#TC4_*T{r`oxMgH1nk0fav*@jQ;~)2>2*q> z4s0R&d7X%;lcZea)MR}Ghc+8s0pv!_^&hL|lIs7%svjHD*Z=|Flg~n0)15q5Ma&bK?Y?p|mh-!1Lkp18?DM7G`6m?BK0Sz0# z*Blz504$jzwuWdH=;4CAF=^$mY%p?4q|WIbcB+@EF~f|eq^&a30%x=v8rH0)R?!5E z>?r8jq6)2?Vs>xH>7ZiB+J^vD$Tt!=l9gGbw3f0hW?*PSbSHu_5eEv{!o--mu04Jr zCk89ze_Nh}mGq=a(;n5kx-?%#wpov-Y{*kW48Zv+o~{+$TGx)17*PCqR8GG;Yb0>KxQPbisOxUGgOC zAKACOs&f?SXLx1tb4BtzSEli#=F)=goU}FB^ z#i``XiEg$%#lS8XJh+0Q1dm}DlK%FiX+?$5^E zhy=E;(f&^Dj2`P(p519@w5`>9=)N9>lIxvNM{gzZs$Af^GSD>`LlHY(IWf>LwJXuK&gKif0Aw5Wv?M$ynt zZ#rkC3XU@;BRX&4!Y^u4Am!%zAh)Qpl2!apDQ#gpPLvUq!JImi%m)==$}mN)YW|hG zjdL&~;7As$E3@8ru8_)S)4iQREk!-KnN8(4QrwNUg$Apuu`a)wH^v^EO-^tb9Uhb` z=$09U6D&6Erl?Dmz3tSg&aQzY&vZ@9m!@%Llg^d1{3Ku_tBXU{;^9;;ORfLGSpl#y0AMeQ^Pa-!ehLgUdI`e z(5Rd(^1R#9;}h-Y$PbrGTlyYy<;8P4hW)UEd%Egi=T`Zrvpj7E95fpQalN zfFIXAZBakuClBc4tKggq;d#<|$4ah3%df6VRez=m&quByxquiFo^i*+`5MgTsr%fm z+~9NEWXn*_Hn?5JX+$TB*lcjFSS{;@TAgZkA8d_!j$Aakwuz2#n-cUpzs7Q5eSd(@&%Z$GvzF2&)AA1NZ;Ky)fzh$0oABEVcbNuGl2=_l}kswavX66!lct0 z%oCz*7t>ifB<4Q%q4+=a&8g-A(LYSo`>ByR7)L!!+cl?R9xmXh3)gJX1U@TtAYT*u z&}7DaveS?{#a4G|{#e*U1_DDFSHX>}@%=^fdSyvn%3^s`s<(OxYGoDCq)lDy!9f8C zrmFcAT3btHXljN5fMyQ7I2?ggmv|I-`ur9i+AXUVI^Cj`E`>L8RLToaaO1$L5o(UZ zM^x3N@JJjS&JjyA%%yBi@w<;Gt7{`HC#StR@ey=&ZTRKn5t)@o36GW+A5mCWF)S~$ z-n{q-%DRf-wKD6?iI3>3t6I{t(ubZwU^LJ?G3U*Tk7SHtab?DXrH;I${PHr^SWZ%Y zIT;JihgX2trAqD`8Moq(nI;M8adTamxe@5xYfhKC);Q?y5!(9Qa@jiO%(J?XP!U|K zEUrqmloP(5iM_B~Kg z9Z0GXL5*8STQ1uwwvBvFb|vIuBQ8$;7^hE76H)4DS_pNKMpwQSXX#@I>R8QwFb1sp`q@@1@SOS=UR>SfJ zHE;6#Vcym)H0Q%?Z{t$m$3>OM!tmrt#MScU&6A=Z-<=J1A79iJau6Qt4){pSe7 z4}4T_wy^>qr_85>+;>Q}QdHqD3FXpm)CB3~8^2C>(*_A7jV{6BIqI$+0hY(yv<&jo zPARv5nN3W~f>DK8?p6mtxd@aZQ2YXoGc(X8%db1~jhxV_I;t*M>H+GbUI8l4jb+oh zGgcrm4Ju|_SvE<~iH6L4tFzmH%^I7O4TmF5nOMnTFR}!ae{s^BnVp;-JF(C$0duqD zQvtovZ}i7Fr+!`-opP9lnhy<(Iy;w`p>$Z}csD!kC-#O)$g!D+m4JhM?w@&>)kQRe z$q^gyj!qU$VdMvP4^}Au0@E*1>0I)PUO-rpxO_Ut$B(OL2|C1?R3?kLT=6WO>(fpY zb}L+bexBchk9^HLDuN#EK+*8(o z$kGpz1Ue@4n4xrJz%-qz7twj&8VfR8Py7d)T#-s;nL@?Z)QtTIZ4$4jl2_>%h;*{V zjEq67RGw@NuDLlIxcc=5+ij%HfJ+`jndNL(G}LI!m5YEVZ)B?Zl2|%jI{_oQU_le+ z>>@DJ^5D{$vz@N) zwxCKQ(PTZVub`u8VTWV5n%EVftGaVF|Ei_`%N2UIltwN4FC%fU{m0=Q|1aBe1)cvH zyi62;g|aJ5o-saSjU`dY4NFLJVr+4CUO5aD8c0((v(MQTD=*Ia&cUjRi&PJ60W6XY zb2rkBob?UYgsrXC`d})T%>elkCRcaZQyK>mg`8Hoyj)$O`i93GY=E$$$yFQ)InNpP z8tOYQ^F>?1>DqX92`_?n3H{a}K9uKk9~{fpN|EbXvz1t(GO$k&zXxfQ+_`S9x^WK8 zp5!u=Fi=^{d(6zz^z>bJFJ@e253I9Vpv_S#n`3&qyf_{c%PFWL*b3>Eiz}%!=q_5A zk7o5kc`0&UGi`Ut>~kK~y;ouPCq1w9_f)WN7E;Ur4n*@OUEK6l*<)Z1tJ>36)FgSU zA_Vw7F%;mF${pl|Dpm=67X9jAHCSBvLl7>E1FHnRG^!IMv<#*Un0I(lJLG66(XRj^Lkf@+LOBfijLE*I)d#>ZZ5=Fmj) z+)8DuN2)6;?!E(?z^oKa7VOf|h&Afo?c>}<;>`sVN1+TE&~)6MJDMMIqk`X}`P4=> z&#lXQy`N*{2@mMX;B=FB?plm`HJ>h#j&dE9=;P;E)JDC|o_(C9)IR{2Dw9JNZno!d zr-Su}(0dW_ymMBH_Rx#dkE}oH2<1JSYt7j@>m9b@tC1WcG1ubFoZEz(8rCJGFG~Mw zYc9V75c+rl@9(~&AJE|`*>0COI2e<+iv@+;`qb;u#IKk2?Is$&pIP6*^uHBPl}x^k zF_|-3APq{T#?z=p{|^idYxIA7pnqV8{@;$PS?XTwx~}c@0Yi0D7vXcZCa@zpY>X}5 zxkyT7Ih4sG^KXv$c9nCR!#7hrlTB?Ue@(my-!$9)@UyLq;af_j;fH_eHXgLfWKTKX z+iyfMKnMTS(RtK^?_9A;r{KidlZrH^VQr+X5}ia5+lsX1s2p;Xy*j>!IlkgDabc13 zQ938+D;^2eIlfo*N7q`VQaaMtclPYr-V{|{Z?U}E$9I-?A1sH7nT13TR^WE$Z>f+& z=NM(6Kbp)bK#W9uY|cEDSXdZ4kuaymW+tYQcA1;IPM!x1 z4so5s73rYG9oO*=57e~Nl@kAi|5VP%bwGpZ!699{cdbMJ1Y`q{cCj?`Jw^e}BRZni z=rf}xC^-{1w^1ZN@3f0(Y{Fd0Ku5Wlt#e8H+zOY=zT+m$F)&)me4S?MxLnJPQ%<|JAR3AwejHi;!MGcn$j>?E3jWIj2* zP+gW%luLokw5@a%rmb@mR=&7d%$8lOmebY(jP|PCP%as%f8F;jRbT%VM*s7PV#{gN zqW?YmA2ERJ*ni!YtGV=llb2JCT95Z{jrwnX?wU!fHJxs=%eZjPp*hPT+IjIJcg%kO?ghqEL*Et=1uBo7#6?09wQm1fJ(&{ zcKVCTcs7--ActDnJ#=C+ZKdim49_DnAUk?iu}q{X*JGv&F?UlBdl2TUQdSXeDS!ke z$`Z4QGr$;?E19v!(l`rSnMWS=`8aR=Af3j;kEEqVfk|q`0A&im0U|mlYm4P%#sMa| zb&Vuh?+PeS7D!wsFE-1Z=q{zosk{X>k4H*Fi=?HQl?jRd}Fi(dziZ-)Qp+~Kqq<^E2qkbsmax_E#N8RIZjmE5{|2^!b|3?OP^nbSHA~C63 z1E>a@-6t^d&^ewhlEjE&t7I_ZsFU{PnWn3LT9n6X0*#1hwoDt6pu0&FVH-K0-ZD9e zXu`=rR)-z}Y9cYY;Ar%_fo*+#4x{m&Y>^$zQf*iRt&uId%~}H}mtAJcUmWR!iTMSn z6BlLJ5$lD9?O-o`eW;^_U0cTChbPU2@x?haImhF~M|%6=U#vrhJ5BTVTyjFe9UUBs zA08bX9f)@VYMAWqHDb%%28F^$Hf2QDtc^~i=a?ZwM>AHs(~X&uM+3JE^T6<6JSIcT zC&yWUh52z22t&kWh*M*yS%~9Hlaq;g!V$y7Wr&An=TA-~Q9AyhQ#ZU7lJgyqf2**b zEf<-=0McKA&JHvstwnfb)`ST)UlLYxsm(a<>Dd!zGTPhQ+iAR&4y>(2J03Y?Kibi) zM(l)zpMN#Y2gl5@`4bDK=>R+4T!4AvypA|=sSr;z4RKpYMTABSDQDgBCK`yRAIzmL zGcmR}Mu%}7zcZxuk7UbHPNX;&&~RvmKoT}|ELB76MaEeEk7(WW(Qx!aPT-#a>zJgR zS~jyK2NegQjyD4P`k;Q8uUa~tQh-_8%0L=SX`Y#`kwPJFhMwl604q+zR zA)hToQIOGTM5C!r;~pcr+}UZ|XW+{bd}*A1+v-(|{$nDct))?e{sWRP?xFvNcJx2C z<=UbDcIdzFE&bQmb%*h0*1F1!<3}6PlAzOu9LU6nU0igSE*1(Fu`9SejLI5K*tinm zgp5-)tsOY{QCNvfK~%MbAr}m^v?$JKQ8Z`S@WGUZN-R{ihzU6Ym7>XHnzXFoBg(~9 z;GaED@R2;C0FwnMSiYKkUamy%+m^TZ}9@H`lE z6K$R^ihO#VEDIlN(^LT))&)dmKs4XWOtwik({E*pd?XGNT6!j$Z{c=zz1m*PTCrOr ziu`YgAQP6IKI$8J-daD(jAoOn6MaTaEuk7{W;2{8spv>4Do>84noC=1xth&oP_1g- zddwAC59m?(!?Q9qwBrzu49Aq@NMn(;%RR0-J4P1q@zt&?UC)^zCn?)o%o+-d`tcXQ zRb3XDZUm8Et_YLOl?0oX#ucDl8C;^PU%wIye}0Ew|9yQ0@BduBtGAR!t@B^;*r3P$ z+i?HR{%G5 z7BE_n^Y!;0B?mjFdxsAX8~vkwXezN&`d~x49SzNq$zR7!qT5hy-fe$QdXEY+M3*YV zPRtk|o0*+Sj*m_E2sdW9FB!)-#{?V}k=q}0rVp=~B&9CMD5(SJZrh|wQ{nc)v8Y96 zorQN+G-=8`97yA}=!(U0Cey0P*3nWKqL@JAYs?-OD-IbyY8B?1;D=gs0S%DR&N@|5 zteCZW&5#KbWU@V&u{Va?W;XiHRV?9lK-zr^@O$R2_NdpfVUWSHutxBW(3piYKbLeB zX4{Fsb}JUdJce(z)^I*374OvT!dWyScUE%>8)c&;Duzk7@%n*&?!BTfW3BfUs<~W% zTMD|+@dRFz&WJ^)4+Q_n;Z;j0Z;aFF7h1Jid%iCzhHlu!E z>_?rh>Gb}JZ}0cN>KYT7+8F8`9R8Pg$mqi*xZRmW?VeH@meCEz;3CZySo64opt(2Z zm62@Vvr6^xnCeXNri_C2{pz&B=32tPpKY*xFRyU=e|zjd4-Dz{-*5-8L;r8bb!E{1 z(pIC3{&%34kJab;X?9^7TF~rGqSl4kXg9siU5k_V@JbdX7$iG#1ri=9Bwa7I6}GR9 zXJ>xcvGH7|jc29GnquSG!PjIP&-KzLSCK{N**Yykd%eCl$0GDrtK8?R-3rY#{v3MM zJ6_y2o42w*!7YZmy^sQXzZTXP3Edj`Zbp4pU-A9 zm9?XMt$guUM!N^QF$h6MVn2C7$rvYs{F>1={EWa%z@Hpuz#K^zRu3| zbxGtr1dl-;rkRe2t+1g)@p@uLw4l1~>O`HSWA`#o%YIp8$FF%aOj?yR(|h9{2{RUV z*oRKBy;Qa26^^-}ai|~j%yDOZObDU-RCK5! zj1Q$_o(of4*d&R%vT*oEJIsQ$%KTNsG*Qh}yrq$7MTwjvjik~LOsXt*`;Z_FPzG}P z_3hX~yegvECTf^lZW4I(FSmSsbTfBb7Uw zI%i9dw9#HZd1i2pjdgYlybRBPul&C1jDJ()Y#SxXT;Cd}wTbCOLEB2;&k{YnOc&?c>SC z1+r4(xItzb1--^`3$@d0wfatDa|+7a*jSll`$uhd)Uk9E>U8|;Otxe$XDhbjrpuxD zss*Cbu=>wCsla(> zGre(>9kMmBL;Ci~233t*8LLy_h{p+1JJP0~R&mwt0+-_~l+tIRO|^Wp8@@^HzKLd6 zr=zfDXQAEG4ux-E%JED({s{bM9EQMO(1KO%uwc|~C}f?XifyHE#kP8MdYT}iDTOoX zgS6R1RAvd!=n~J3_$+i2y3N|NhVTEjMgL=XU|?uR|Kodf1?~TaFUS3#pa1W zV!;HsZk4I|i2NmHYAd6J?=_-Pk%n=%G16)D8Ka$k>LgWXzG<2~y~b?)y_ToblAkWp zN%msdz2#}5R9&m+)a75%&8_LCRCPld3@)V~wPS~C{a70?YZ6gK6x}us@EQa15@;7~ zrN>-O+C`nUN7-dodt0c!&DLK%6&OBplsXh+NMynmD52L|xfM=;1k17bz~GU%91G=F zHf>c_U}M7%*#wQglF+eC868aDlE8dmc{wU%pp~RyTwaOmJ$a-jGn+XZpoV#s9>GFoVsYeJ(PD*v#fT| z6|L`2HWY9ce$ZB?dq({jZVX0e$~J7~iq~wJn#w{#XCV z<+%NyolDHn#H8>4)em*=oJ*#d;tYaie^@uYVM^wqmi~xJt`0bt9%&1>_MfVbub88SFLsNfQaWZnmYhjUwBBpHBdk2E2gCvACyBGU zY~`GhOP#aIy~aaXXdG04C|mg=&ISSfU5qa%xO-JTDs5&Wj7&!&M+Vv|iUGQ***XnI zN(O!Q;D81z2E^AtdE(|%g>z~O8M^{YGRp7-vNuZ>MqS}Gg4dVcPcg6w&E0xX9uv1qBf<zEXHLPp zJlLG6fWq44bT==c#19FN0g(jO}{amrF ziX(qy3n(X!q|yPoa>HS4(3mo!xn&_}C^^9Da_C9yancc>MIHq#Xvm^UtbLYdsaymy zB`=Os^}8aRh1_!0)0Jw@+23Q$VDB**jZmhdGH2}T+=gmynLkvQJzY*RnEROJjw~f; z8E8$O=+q-f)xwsK8)aiP#}zSn)nPRtAwiX3_XgywTHtwe=O9}s`DN3|UC8ir4LCi#4gwbT#)p|7u0EX{sE z4yAO`)-kngh4)6EIbX@GUmNqF zYF&q~o?Wg=)>r5nsW~gO;X1)5?4V%NGWlq=Tt`(&&u!9Hcl0}3foxJ&?42K zA+#L3NCLfe3qJV_jljDD#icYGWn4KM`yFZCCAxz7e;eC%{&NI5O`h|gLp%Jx?YM&U ze+Mr&2H@#{^Pi_1Isdtxmf%h|oer9ZX z`e9>fAu+i$ZA>oBj5C)+7@(#%9l;QxJq8+^aOmolqGG3(S;-Sdq-bx(c8^Oo8%=pM z;6aV4;eic1>?YT65A1Ss!_ORID^@Ejqrw_u5nU(2*3M1i+iS&YE<=90pf6T!mxCyt z3M7Dp{McNQD12L;=b%}DHnMAsU6c7F$u-)INc6$F0}n(JP;s_R^lCI>f*TH(P92YT z#yaPmSX~6Nmo({Y*d3=HgKekW_p1%{x^8(0HcG{; z7KAYtOhJsZ&Zsx%D(3WBwQz>KpwuCUR^}2Gk9vQ%%al#DYq^*?C!9JqEqzb2+{H_3 z-7>K^cPcj491}RSWyHBE3N_pbed~->@Eo=jYf_CpDpQaxrqk7u!~bC!qREjIS*0o^ z-?N(OHIprAi^?1Jcl01nyYeUwBC)Ayy5;u{d_3yH#Kiy1Q7R*jt@Y ziPMWR*jx_X>CxC(wkl^WsBs>_c4Caro;sD7Swv!C3^|y1OrTqA{Y$AbsW?+n&+Fwg zEr(%?U$Bi$YFTm~3Ox;m<2W0=-M*d++$Y#Q=#4JXPRdH?n&8rFR{D&sYD%Y8(clr= zWXgezia63fQjxk&*|!B*4ge>PTx`G7pz0;TiF2W%}F^ z%%z!=rg>^?;Uq*G>}Enu`wSh$fO+9uWeryPdFLo-k;h&V(Mmz+@k1rl+_ zry{_5NTT5cWLa=6H6tPH-(;3qDXwC+PiOq#?VVhUl5WRmufenk!WKsM_QO_UM*!uE*IA=kFT?8zQjmtrB^Ebwv#N3 zGM5!nJ0ZPRv~g>T-q1PwA%N&>MFoOI)nyt|^3>h=1l5W<33E*8z!2lW>t)S306J3y z;;q1xDXnt3P;@q}Vn6IA-c|@}bTT=eppF5%@b3E9dtT*o|30Q3H(#@IC527N#M@PL z+b4%36tK_XoRR-`BvfJ=C%6bvXM?t&LLrHbUfZFC0GB1V=t>$moumv0 z6GJqAVhMNbTy2F^4l>qqb=72r=`qF=BWWcAnk*5m+65A(B2GZW_Gd~%Lspfkj&jM6*!A{Wr0E=Xnb z=V^V0c`WFdbiCVOGmEE>h8`GJ*5=T2!al@FQ_cx*W|_nZ720gw%DGL2^r52(fMOZ5 zKq3|@k_c;L9c|2F%O&@K(#X!eDQBI-_kY{s|6yP-?m7Q6uw(ygd#-@sgsG&V9B* z&g@Kc8HqejO>;p+fDnSo*lZ!)z~Cs|AQ1$~*ye3 zE-awZAs4+EQYjZqfD_ET%hg3vVeo%e(1mZt2w7 zyOz*1c9|qv>^Z{?I@u&VUI$tu1set~7~_&tE>kF}`Vh=8Q=0jdplvM+TSfGUi_kii z0`1OnPjcC4C*_MJlXl6#n6wPriljE!S0p--k*t*_LP1#3!KGB{eEs~OGbYVqcZZfszm-A>ZZ^*X}9}E=6Ya>-(Jk)7u~Zi2UzOH7|`Y`hRc)sQ$sY z*8W3710y^1|8`t=+>mS?B9I< zTCAV(|NHRcuD`vVuMPaW=G71E{B7~C?UfJi{O$bh{O$bh{Q3WxZ;JKf1`T&7`O1&j7zBH|#62>Tq`?#^fD zV*>=@wnZx#=&(DGc{)Be=O2>ggKInoVH}@MBFkkVF*9L~&o0d@MivtD55oRxI=Qfz zm@(hDlvqlb3&}SnBAxRU+&YgXU4@Sjxe^(6TFL-d@FOiCOVf z$%I{P20jo5|I9AW4JG0W*?f&wiw~>#AO>u{OY^W>h9u`k6Hs5~+{Ds+R-$>+VsfDp zix;txSJ?UQ2%$*Xg;?4ofuUK-R3q#ind}5(fk=10NZ;xBCdw}~xPnYL#&$#b(E$yL z=VAb}Kuo_&gbp?HfDhqe}sXQJF$HN#3l7-6fIvHh8&McU*0jM!b-$Z_K zVj-1W7%&qFOzET&Ql{z`AqEi!kx`JK!Zi{to~k7B?i%S2DwbV>5o`rj$H1^Bo>GaT zRst(?s77p-xXH~TC}`$#3vn}>&E;xzY$c~7b)}^?S-3Tb%{*Fa!!!Grh3^!Ay2O-eh(a00Rsd ztb0t?^zWIq8kPrhS}&lkB{Z8a4~vHKhp$&_=uLSCFJ%XL5C< zn(eQ*B-Y9NNj}T@^oKaq2-C&SS%pL%NG{(FF|=&0W(%x#ojl~TzDXu<_4CQzqKV@z zHso;9Nw9(W8#Nb>o1sk?gN(|Cqh>qVcx4PCO5UgggQi(6WSJ`moIFixw(JUEvNnhm zO(BwglSPKSL(31C(3$K;&(pn;CAjwtaG)^XfJFjjNciuEhQfU>6y z1>V`sRCOacy&Qu%&NMU50H6^tu-Wby59^Mj`P7Cf7f)y-cu(db#v)cb{I5~0QCFGr z3`g8F^QkkIw|QkoA)m1U_SwlhwK!|Fg-SfGcb0Uq1T~cOjS1z;@%}Q1RYglp%&a;5 zU7dz^n6U8fZW61bo754;)irpxINA838`?~=nV~OuCN@uwoK}VTN#OR@I#d8d246?L zjTP8bYD?9uabAHZL-XtE#Q~X(^UT8Mc)wrgVnYv>EdDL55V)^kr5H9BhFBd8Hd1J6 zUo($^So=b#iN$oz4Nd1Vm6ejoX3<2#i+hp!IKW|Ur2#^pQ*kN_&7}z#2aq(5W;qG? zU01Up_VjYA2Cgc1Ew z4K!+=DrPv9hv@;C4(a9ddO+xRb7kZSl`RZrmWsJ-`W(b&B5Y6U!QoN;3AZ(zrLmI1 zn2aeg&|e19!LE=7p0XDc67NKAZgSn(wg_^3pbD!=1});lcgKI(~tRp7v>0r&Y(CcK(uIOD#b~Oy= zvj8C+){hBmB~{H;*tZOQoIw6*D z=yETis|6bvBSGw@Mxr(_v^Jkyo&3oVM1X~Dy+c`-4Hcr_X`5O-Xb^jlG6~k#m4<`* z(r|ER8V>GF!*z5geU-c_%jmmc`>(?_)^KDuXA9}Fm)wsjn+-arR|{VPxy$RdR_S=? zD(%lS2=3G_4m_ZJfL3hAg^veu;cJf(KL&jrW89y2&ofkuT?WBuXCV3a4NioTSn#rI zwlY1b*@k^RD_ng|1I1i`tpW}q6ZcuLTXyAglS0tVO!aw4moG1&d7f}~)SKxo4MkHX zst^`qt!{HNBq5m@*J?l|{Kw8LCuEFk3Pa1Ps`9Hds}5$s&dz zW_5Bp-=7dcoiJ`3F)t37mr;v^nh;SyK$?(LB!LOV>Omv}o%G?Mqy-Npgf{e&Oq(Z? zC`%-7Srf@iisxj=GUcUKhc~rKjRs|SG2>sh6su1}fERaAGu{kVlRUd+s2 z)kVe@UV*~Wx(U;cD6pFSVFeA%r!o zDc44`q6|rz2Nq74$p;c_J~(VDi_TTqF7X)AIk+U_H2YZ9;tiCaBMh#ZA2wMXH^R2? zwh`O-S2jafxsj=KRsB<$Mt5BfbJ-P5a&K}nyRyrCDP}WYPU6<5vxGC9jnp-rUC}KQ zI-d<|bw9X?`7Dr=S=l@bBuH&2j2_o6lgdPy6%!Q5*ud#`6xDp zG=ZbnF|yC zI%##3y>WHCMoZMVu3ktA3~x-T$qb>AMlChIFwT}#)gq*V*SJ}110yPvj7(>c)7sKG zhvLEW3X+GlsnON6rIZbs_@+A#PGij8hlx%JQ>#{hx^Z1AYTmC_HqR*YObvq}I%SuJ zH>Wb@E-UsG?ts?(RF1xZ30QmOG?$x z-SX3YYan*aOVR}HBf}_~0fnMbuxZTgdTAnG4B^pTCkHM82ayO$(&?&Cd3Tcyl5neL zk8#y()VfS%GG)uQiz}PQ4GZr)*D-RbHhH^bNE(7XCy``|YqD-_2xt^`V5J6Qa1q4A zX1(kXTo{42748qFdSD(NFUAmDHDEA z%RWH*(zpf_8{E6`AK^1g{wnUA@wmf{8Ob^#1PU{&sqp=I$S4hdPUE1TOm#_`J%H~>eSQe>mg4^FEc`*Hhnr&Cw+QFchFD* zHB4N7Db^%^5^`kI{PZB(0U@%0@fwy*LbZC`lV#j=%c4Wg2ZZ5WU*w0Ew=92+*O0$% zRcF3t0*Y8*7*(dTs|D!G%wSj85{D`r-I$}FC^NCS=H z8taz_tBiOO@j#vgD_z5xYT_ZrItg7$&}K7PIQyv{Js%%7lUvQ_s+D1Sm_haP3WEnk ze_|6{J<1Wx?IsNzE_Dx?`Zg;9@v&qRDzJ(-EU*gBbRF{EP_a-=D^v}|4W){-=s`qL z-RY~$ijlgR6>+x|El3BgS$)H8cZthLuU2^h?Mit}*e4|NP|gwbBD7kDEK-A{3YFwC z1#e*N>&t^Su;Yv}WPA90f5KCX#Kak(E?{z3P073YunGzjm`)^T*;kTIx z5@OWat@!Iw)WRPdSPf4QX_RThBi-)_;ZM~S?h2UmK^_tYSANJVN=7xg}T=3K%rK+JfIPhq^Xfrf?}vK zg5vn4ASnD>SEDFKYf=q;Qh~TG1P&10?TuQwwQO^SM^ik$P8BkJ!RlN(W6x z>b4d3P(2Lhnx;lWB5OT2?mct3DXwj;V>z4U+Twm4g}htfkE#|?x1i!*m#Nh7Rue>W zy*5?%)^k2UtSEk8j{f~h%GlnM66ef1e%nx z!5eF{1;|r%9fp<^lrkQlBD>{{ase-|lM-_$!_^f->>O{N3Fa0jZHi-6b8)Gy-@Hj? zls?yMrg9Rq&bg>yBRNhW%}S2)B_IRiF(f7X%>+`Bb&#DCr9~t=51aJZZzis09cfav zlX7*|)9u7neGgh$42reAsDQAxADVrrIXxk%mg(N05vnK{6afkOZ0^xXcv7 zeJGNlCQ>8;e6UTBBta_Fo8v}FjftQjn_Txt>R$J+Z01k!!hf|Ec?(OT-uql@;*eMq z8(y<&YOZf;XgI6ZkXesgoH}??VRJ|bZ>6SNmvE+;r0loo?8a+56Nd;D)Pr`Y>;t_y=J8{ib42Tkd0S8>?WP^g<6`ey(f=1XHQ;p z%TM$81C-3Xjt(bTdZt4*IO>x~P?0CzwA zxczYx0EqGdSoiq^Q0MZ0iPqpIvo;Ctq|77E%Q4w!Wo zRB_L6_0kbl+p=M&Sy;`9c`uNTxHR-z*yI~9_imN?2%SoF?VN_^l99S;j!Q%nY;_0+ z5C-ZPzG_u7!^VUkDR7C1uuTjKuk+flQ*+Jsw;O5?RZs%b?Qt#ptqmWra}2o7cpdDr z#;x1IZkX;A^SnDmEU#ftQ8st#(#WkOL#C(vv$f- zp|9rhTT^TH(qr(|ar5Y1*21D`SBATmuSo`JN8$%eskB&kUkp78URP)Iu=U-&aj1E{ zvCh?~flXML!|(bwUw+=cH$MYzUL|M?=<#5S>8ldDipT4I0JFvx3 z+HoZRtE_~@i z;wg+M<6L+VUZ0z~@JCb6+=zhB&M6o_pLlu^el9Lyoae?ad}->!Z;5dDVd|NC@%fW@ zW9XjQ%W_hEDKj-NNV%=-rBDCYZ?kfI>;4Ppzc_WF`hur8Eb4{CS3jTldg4bg^}k{` zm;MS6zHl+|#U$k5nd=yka>4WYRN^a7od3$pRb%R6;;T~^m%a{Fff=}#@L&Iq{|fhS zynv6NO?>6am$H?EPrg*Dy!OeLlGnfE#{vA!^wdS3amv6q-bK$2h$V9&@%4*|ufOw! zx3$5~y)VBUiM;JC@O0sGo_hGrHu=;d>xSXG7^yS-v)}ml@4o!jLd2u}M-DAS4%tTz^$%ns z+0yzT-i9NkV!0Aox5~>!+ls{EBfb6bFBZujNggR3iLfhKfUS2nV_;aLP|Yt}Wg~hh z)7fi0NO0Q1+eWHv8Ov7XtYsC9m;qCcF+4OhFx1<|(L@sEaC%C*jaUw*lz{qI`t`}JLs&+dYzZ@o4W*+U=p6UIGy zyn)@$^Der58E3}b`}g6??w0-Zvx~j$;lOJckh<2MJ$r#@jqF{fSbHU&-A@}7!R_5ynuYWYz} z=XWCQ^!9#ghMV_1mzT}(JU;U04`Ok7GkgS*9E|MSe-FU+?f(S4U5gEg*}je~wEOmB zYZCMW0(wK_0DiijaNO5|aQ1w^@;pY*`}Thvd&d`cVLJHqE?Yi6Qe?D|K{d{6ZQY^RGGj`L|yB`S(-w^PL~YM!t!P`|{He>(%tw(sDEW^%IsaFq~gz$o`fg z`x?XY-x-#_XQ;o9$ZpAG*CYG>6wzSBTL;ArhPXj<&F+IV3GLp)e)jKCfVb^$J&M0r z-_*5Q@1c=@d)dlITJOc@J#6-9J@(5G=C*^a<7|+M@Dl|md;*{M^YD{@&BC9;w?P?x zhVsV3&*Jlb*DTgLcl};IAsuYne?~-WYr7Z`BcZMRy%83TX2;jiheNyHwikQtJK#=urzjIh)>|hPq2@_4nKEv(8ndp2L|{v8Q}Hw#d;n}gx&5|92Ok7 zM)h@#8+ZmQ;zkK%sm6BWq<}rt$=9toHLzP56M6%-X6qYwV|!pHra?tFj^ykvoDWMH z>V@6dAlT1u#gysBKmEjRjQtT2fzsliKDZlSK8K$^=l;HL{}->p9z*T27oS;-_Y<<0 zd}17;??-pzc)IoZh__^SQh?kp9BHgTcM;@wX+mVtKi`5Q?^fzDtRkye<>`GQDSU#= zeMo-)IF|G&*LQ}Teg0LP^?uIhGb_$@RGiQ3b64hvsapOULNTFR>4{g%AIqxv8H)Q| z844?je|l&)jzk=|%4lR6D&aGZWwp0_0fDFX2NmM?aTMeNKfm?;P(?rN`pmz)?W6GJ zIro;wEb?HP1}2E0&E|k3AcR^Tl@{FWgEsamG3Y1i^OhhAO3Beb=pU0{%s$n z`M3Qr&A;tOX#Q=#hbF@IV>JJ^-%s;z`#8V4nW>Rz4+MJNh9iF+Cr~{PJ1o+M`x0 zUv#c}1JN$@7?(@YbtBH>Q5F%~@j(2$0{4NzFUUps0EK3Y@PSbba`1K_j3Wmq&6}Zv zNEG|8AM9-7(XJnM$f@f`*rd8|{~q`p#W2@m#wObMBHhArbMOO$Z9HQKpObk!_EqMQsldH%VA|hM=)GiR-Hn|t`@dVGuYgjH{ zdK-Iv9R}R}?q~Vejx2rs4*&Z4$hB%V8G(f`%EoM@7vJf50Ybl`<?Z-}(FAA|4EA^0QooxOKP@Z&Yt0|e$A{K5DAH?-_N z(B6)5TW-L~OClPDU~T+$FMDkl$w1y(T9P+ljO*?IynO&Ua07h22de7&K^f`3TM%$? zP$Ff3SKI+5dFA1j-TOtlHyoCjUv(sc4>tq!#{Kf~CJ22%gnl&-4HbSfh2D!nZs~2g z?-qu#a3FaDCUomwD)enPw6G!;4q)`#p;Y^wLcZoEnO|7tZ{+2A9WE^fq2wR$xdq{O zAmgONfwQFW%j+euU4Y&ovn1mma-uT8oetn#Ew?b(UA+-CT^P|LRFF<52}~E8|Nfib zdz|8Q?Ul8>>t^VbgRa-^_Le2+C_RI+=m_n_R^;P?W;Qm<$V=T;s@F^W_ijEsPx9aI z`tj)CdU_Y)-vjrSmVZBR9o&hx2Y)Sn?F!-! zpT7I_=e2zrF| z5pbARxtz<|74|I+A0cQ21_|UiT`a6*SK-Sw6bnA^Xk6E1c}_UT+QYx(6Yx^cWB)uI>zo>TK?1D?Z07H^u}FX zuUdz{>i$Q*_V>TI`?|{dt~+0~`_`2wcdzZQ?0@H(C9)KM7N1OABP$ zDy&D!sQFF2B$Kg>>`3KtGhk-plE0!zE)s+Zx@FQk&*31>tXUqy#5L7i*c?C8c z_yIzh76y7#JnqG67IT^G+*~>W@9;muqzjS!a?UDH^t0t`#UcdNf=v<#1GzC$G=bU5 zLwBiI_F2oWV5MhJQvh>euH;gycI0e&EmelRnfX-tj8(QF`_Ll_6hal748UF>0T^?| z!m2EFx>{buB13Pe6sx%$q>NSYc(K4?xeWh>Po<)bHBhWppahlT*)$cwPOY;N08UJF zC09&UC>4Wlu7aISSBm*%wa>CzOr_6MOC+y}n8lS9+p0tki#n`CWPx%y+|Z<0c2=@b zi^T}a=bfEIl8fv7nj#?m44wG^ni;qTXPD|LO zGjei*3M^ZN3RNOD1T;et=9VGIC$@>1NuA4OSJxn^#|tU!TaYox3R`;rPr|9g4ehiGpSUjQti}@oR83Grqf(3D#^ZL z5vQI{%q$t>ci$ZwG)8)ddi#x@e5G2j?p?K@^0R4p#ag@8@D zm_E}}Di+V7!Yt*gHkAlUK`oi8m`bD341xU#yAvNx5pVy;2|>v}B+m}1%5;3DCX5qd2}@k8 ztC^xx**IC%yP)=I3y#yHup?65`Ji8cBy1cY#X<)A2lPK2zBZo{_+$YehIz#}y3yiB#Zxz!VZNgZF&YG*{3+l*$v`m)e;XxeI)dJKA_EbLm(^z`U#^R~h ziSh9xMs#VpTBuanaOxST(p&6pvC-cC!A=I{!Cxgd7LU(IS~d>0+;;80{m;U(dwYca z;YFK|u>%Kxc-Q!K*X;Uj2;qEdd3;sE zUGE5hzdHc_QvvXw4S@e*0Q|E&pCW&PfAHVn?~Ywgy@}rZuK{@Ww)n%Z4S;_n0M9D| z!ru}Ae{BH#PyqaE0qG95uzGkUZ!*D`nGL|B?>@{oxe1R%ET)n;@HvdmO~m3Z@=~W_ z%oEeI$H%74*~!U;#G<)4b{tk#Bx*5GaRru-2jgZoSsr`(( zlFH_4QQZ>{^_F2D1tjpshFJpIxL8Q#vXyh@dcWAdV0I-XfvXANp>>E>bxyXMONF!O zZExPPt5gYrYY4pCRIOsp#hDIA;dfqU*J%ZQvjP|LWo))<6!^Ll{uTxPZY}%){{GVn ze2)_T=M+4*D)3(l2>+rI{x${v4K3Xs{(i8 z>lFCo0q}P!cnk&pVJ+PWp6)Lz;qOqwe@cOODDdA_;ICKU|5eG)8x;7TYUw`B)BWp! zbiWah?*9x(ci%1ten^2|tH9Ov8rbE|k7%#75?-yhcWL28y}errujc=!6u6rI4=Zpr z|DOxU&mU{>U*zyFD|n&`p1%o5_kU`5euv}vkAVE|+wG6%6$)IzOA*D=4OW zD}OgM`0M!l{Tf`%7jMzvo%~%;I!KYUN1W?g1&&n4YkB@&p~3%(lUz4y@D5%tw2PgPhcx)8Oyt?+J{j>)E3de70@PFX>FKh7Mxbk2dky}64*&l&`12gzvdazsD2E@=;J?h_w`uTY z{vOrf$9X*rYw$r{-g`Cp5ApY;1{WORB@O;(yna#|{2pG;=QMbXhySn!|0DkXD;oSC z`TJ)yc$AmxPc-;${{Gh*e2nMkA2j%VydJ)-!GDd1Z{O{Pzl+0f(%@g?c<#{PFYT?gj=!M6vmB4D!OOg!pVQzsa{Qms;3ql!cLLyluE9n8 zZ)xy9_V;j^u7_%CpH zS%ZI-<9V9~7vtfg27i^9-!%9aIsADI{sf1AOoP9f=jXp@@D27Fc~OJ^8prbo8hnzs z<6mm1seQUcz#}^!NvY1p}~Kj~{pe?2}q}q1f;_4gSYGKYyaZ zuM_Kz2LB+3e?x;m%=7urT7Co{bAP*keqOD?MSkwo;37YR8hkg$bAP*&uF5q}D&bYG z_Kb$-X^#JK4ZgiK`gE`NAL34f>ZZt&k-TKJO+{51;vEn0ZdPgMS)D$RI@ z7GCu8NUwb^Ur8;)Z>7wB*ThrV%B6ZMC?D_5q$;UM@3L(Jw8&oQD?Z{=FR^PQy{qZ8 z$z3gzj8+7*maD6DnlZwkQ_IU`Yu)uZMYbJm5kkBvA#&M*B|bwYee=*8#_a7)7xQS+ zBhp(aR;=C=GfO?hN#>ZWHFKqmg4EvCa3qA(dWdk z5pj4x>NU-ObpHq%{`L1sK6u~4-?9GoMZEPl6A73D z_`G$!2G;A(@_|u29{)N`1gVF`{Q2eo=DXPM2G0QIALlha|BnTve>?Bg3tGYSu|IZG)<757DebV#)V*%-Zpw9F^5)l6ndHiQhmNfBs(>cIOlG zk86pZ|NqQ!>iIOesP_l7iJ?XNeUU%!*7ErRR~XR8i~jx@k$)}zmwobogHQhdF(Ch6 z;OTd1a6SM3E8<`O|KoNapifwo*ZPgWmw5c=G`L>=eJ%d&_fNe1f{w@XzdGVAf6)5> zKE9X>J_pj-H~PfKHQaBiE#1L>7qtTG<$py${539sdrgh_eX&tPy=tA|9~d4S8gB3m zfAoU$d_TY67juJEc z&6`{Y!eu!xCO-OUoPIxx5P3%ZV^5y{*vl-PfOwFxPhNO&>f))7Urc;#>cSuJs87BW z9t{G2w#`ZDoiAMf;~}9T7m@1gxG{oH=cuZOSdBZuFD|`@*HTEsVkUjhuv7Q>p>I7) z&H0&)mtTJQ!Y3+l_nLut&bK>!+_yVC$GXEi5ubmL=!WKd4tm5pF)>#Qevp}pNIVNo z_deFc$QRin8*@pm;CA4UZK{WAakD$5?L2^uiJIr$?zIE@xzegZ2O+xp8> z7nZ*ISqu}>o2H&Q^(DwCHGKnp|HrXqoHh(g06H{{u4f^c`cr_0QpU>*5#R9=I!d12 z;wTBJGBj^;>N(auog!VpB!vl(i%U<73}5)Xg9ZCv)o_jZ#M3;!IwMiVe)dR28H(?G zq4EG9Pw%5y;+fKZoOD0cOQBv=Gl)}hSfhM%N{-Bn@b^q<500x(9pspHDVRQ9Yc>k2 z=O@2qz+(3GsSDMws@73{>(fX&e6~ez&Wnk!UVQf8T`p59K9xw}o}h5)FHK!U+=;JW zjC_h3LA1qp>PYa(^WS;78aTawhZo|)`In#o|MW@x^k|K89SADdr!l*l^_{vRex3@- z-drUmj6ucqMHg0F_!g-q!pAYBtdHJnRcxO`g^+I^q~=-r&IM{osz#Q7$w%6be&3Kh6P}3s*48~!hcvPsBm2xo;IfSM$usR{z&|b)?GSIMB zTZEWaIcQ138cD4{ix{K;2|2N`6!5W4B!MVQL}3!|t!$;O?7BtxVr{P1xchZLq5!DS zb@A3qI#;wI)63@!bOca=Hn6O+2uB|yK35i7k8*}x!DKBHCBuQF!{617YWtmjQT^hx zI`oNOxT%Kmo4-(YZM4~{+xQKI-hJr4h_r*lAa|jBOqj&kkl@Z!5#2h@kIKhq@Dc6c z{HlY0@2|?wzl(7xCtu$4?UTEtNgUcia+5fyg(*zp;IlA^gU`Yw4n7N$IQT40;^2!k ziGwfFBo4mZ&tCS>i!_OYFVZ9qzDScePwrAo;-CQ-X%YuBEKTCzi!_OY1~lq0iG$W@ zq)8mK3L{P8Ah$%C#6i_5X%Yuto?|b4^de2-;ETUW9L(Db>}9A06+%2Fah{aT@cfgK zW4`BuSX^Ne2a%vjocUd7sNwhE?OJS8Y5WGE*qQ|W#4dl6I0$FY_bbn1^t^BXuVY8~ ze|AZeI2YvOQ_kZB`FPE(n5S#M2JePy66eO<(j*ScG(Nr#p>&L3-;FIVh%D{v*!A#k zO!}83?m4>W>0Y3Fk?tkBKSuX5-EF#8=w7A! zI^F+&_TB@`iehO4K65r5_AF`1l9rq#X9Q)#VRvN{8%T;vT9PDTNh-k$DC+`(iV+nP zqM{K@s_@s;hf?YR>`nyZ3v(|9}2{o}He4tGc?nx~HdS zdQR0GI?kozJUU)Z$1CV~B^~F}aRD6{(s2VwbX-fvJLq^P z9q*#!Iy&A>$9w2_FCFirsDH{jFPK=r=+ZY5R>KIDOqtLB`b?5 zxvrFw)pt^I<1>`p^bRGreoe`3F$tL5-jk9$hETF@E+zL~OUeB=QL=smB@etr$%fA< zc@Vcv>Q;KVHYFSTQu5skq}fkDRl?-wAq1Y7LCG(#Q1a_Fl$=~o$#0+HiwXL8JpOdG zc>ZoA-f`-~{}z(6Tglw3gngleeW|1zP*VP_L?1+94aj8`IUvJ=4Y%sUA96s}C=jGC z(9zy>BMwqknhhL`fij?lh!4^>;$KyR1KM_enjgDgz%>gK<;6Ee92AA7#_`z@rPG0h%<0sarUR31j>6J7tf>Ii z#U$lhtOb%A1@-+AbOSw zzCtTYReYC&7ga+V49bwR(Bv;yzpwYE-|IhbUeStRH(q+2(AyKr6RxeI*?z9 zNWP*GkUy;)#yAVk11I=m)U1=6g=!OHRC3+PLhNyjAs_4q< zCiG}f1(TjMsV4NINj0H2O{xifXi`n+OS4N|liFM1^oX{OY8kH< z=V}S9mY|E2DvnD0Dv4(OR8mbPNh;~Dl11DW$Hynp`otHlPm=UWf7Q@xbuaSq^jWRm z6mxpc5`9{|QKf2ZiRkK$dsXAsS8r02ZpYl(>TSNL7V%*w+OoH5vwBcb4bNb<6+~ZXZ|L9lsuy_=b1ngsEqrR`|OF-d+bw19QfVLY~-FP~qlGVS! zYSrnNc*@#*^GtPJ$G7eiqaKR5StKtGwn`Nx~Xb|E*S{7Vx_z z>@*3ZJA8GYgW5%_jN@Q?0xIJtN?rBgwCdm*&Ha-S&vISaso9Ozd#zOKHUQp*4BSd}V$JT;0qRPlryhR2;(B$XNA|sm zY>xiEnB9r|^j)iwv)7zArt@ypn#%OTOMhg5fBFMzXDvGJ>dstv?q5ArXLBi=N8czo zwdr={Up?8^Gk|A31E@6JY@8EPy#9r}v-aj1>gy+9Qqm`IP6;3BBNyM!At~V%BjMjh z!Xeg=bF3a2$@xZWr{wLD@+O!D|1kv%JZJeeuz@hdmv}ur0lwd`Ui}@3{LSeOY!X6M?A|G`ua*H#qjz5n#vO( zzZOE7)aUJ0eqT*3V5ZjqGrb0wrJLAq)Hu#5 z!W_I#P%)LA+uo-dqOzBx60Y6mzgAtDLS^q$LbVwmL#lsufAZ+{VlA)t!flLEBU|}m zP;vStl+#wW?gIUx>{`{7wyI^z7IId#YzZsTSt+r0VSj8H=WbzQ7u7nga97p34V>++ zTBkd@*BSKx|BQ!4+p%GdXy^POYNQpZ*&3(~Kx{4B5o2xF5n~1U98V{E}cO0+t+d2KJHN28Y~?>#bc1(3Cs}VnxV60 z1`ySS`WsHVdR;hn^ETY${IPqC>1t%{(an?XS&heHuW4xIqVE@2bcVO1GySYSQufIjjeo&_L zFcoYG{QVZM;3$GxMXHdoZ6#!+^8uNC(k3h!Xg*_n-!!MXN3lbvbq+hCZ}eE ziVHG_hX~EgDJ;%T9;zKJ@}@h5g_$`@3qr>1G%M>!abA9AE-0E2%FisU=)?`!(?WwYQ$s+3W=u7$hf}K1Ef=H>WT^H;bKAX6EJP=N9G`XTwaRY>=E!N@Jt)LZN{^5H_$l zKY568v`Mb*VAv|RnAo=bWYm?Lqy2DFzbSQrXJ~F-D5rRED8C>xH%EGh)JlYMQj?V$ z>7l~({NjA-Rb#`v%*&kaL?k*th}yW&;?o7E(8_niA|}W zmr{UcNG=SqY`)k$o;UT>&>2iab3;~UPKaho-9?${*?F#4Pxcs$eU_J9Sd<1$EHE9W zMj40$J%Ahff#961;;iJHbecB#!ypmj!w6J}kw^g4GX8?)!rQoC`P_QYpRp9OiL)XV{yFnU}ko>cenP=2m8Ee*{}@8ZpN z^=6gIMOnEy>3na2xozf{Y12!JCyupPLpd46nVoy(2!E`_#nysA87DX2y;;E&W}4ik zxF|2AMzb2)$~`TX$<0j(?<$#0m7E?jw?L}7U|2z6DBJ2wzV^%wv4?y2LVKj<<_)u* zNUIs4a}PLG>VyX6C7a2&i@AFANXpC1w(pz&X)nEa^P}(f)ND|kR+L9w!7hx=w{;a) z25MNC0iQRxhx_Fqw*~Ipg*a%u&W@>ratBj2$`|&Z@VZQEck)H8dS5MD*sHU9?Wg7y z;mt+OWz=KEX~~7jDai#Puls3ndnisz&xgT*R=K=n#x%Fvaca!WNq7Bh>xICmsq^f6 z9t=9R0*wOKaWhRdbpL|38y~^!5}dAO?s#5};P`+smXTs63-9NE#Y4OBO}!v5Ge=L| z>|D6w3}pr}EIIgYUtk%mz!!d|wQX9EJRoH5^s4ZX-260im(CBRhlb`EC(n38EEtxP zngOe~+@bJSXv#Zf;R2 znd$CI63XiV5z0=^Ni%Mjz245{Z4PD7D1kzG8M*neC|BVRX+;GJs|B^OmS@eYQ0?>B zIDn=lKv7mMc&s&n?O;;Q0Y>v{@m1cBPu3)6@{K z++>rfGKLkXnb@*37%a=Z#52=#lCu;!8-`n9ZcZjXRlqn`L$eS#tknu!(6~CtOerd4 zp_X#R`Sx8Zwa8sw)6@-SrCD6f^Sw-G4lT?Kqn^3Ggl~3iFW&a>;xYFURX(MlySMv{ zd;SVzPdmQ09P+y{1+2A^YNA<{<5$77pisK!@pUo`pWAp9nwxSVtj-Ep(R7$$JXa`R zQv*Z83fy&m+ThFrESs4Ft3mr|Mg;|M9~pa?QB6xrk1uUa$uAh3=M9TMs{?bdO3ls6 zDjpKbOwTAR@I1=k$|l<^M(OTzb|3S6Wl@i178IL>jJS8;&>(N?a^dDNPEkQdzFJfM z5o>PnkpydzLt>no3(W$aE(A5rz|cy=Rh|m2;>Jucuh+!t1|Go8qAoqpdhOs= zGu$)JDa~Lgrw+`^g|!o}ev^mf*w-dpCpoM*PK>z1P!E?@BntN;FR*T41;ao z-hwDmg6J+0y+nv|>XGO~ixR!}7SW^JA$qy!ozuHJ{c!Hy`@R1>&wloKp4okNW@mT5 zGrL1sUg?Bqp}#jDHUrfh@d*pOBOo4Lo9t0k-sP_v#0rjh#)F3^{(_~Mr_xF^Ux3K2u^Mc zvNV+(Ygvh18V;1$GsQgmn}mjFjRZ=whP^}oyr z;-1{AOLl8}UFX;B>!2jt-cyU!py06l zO|T&YLNrQj^kygw#XP-Ew8n(G`E1U~cafmL0^zzTWXv~auNw}l6hiz4m>#Fb(Xp@6 zgn)er(bXiVRW5k$D=1fQmefOh>|;QXECAzADEs!1?fgUN<&^gn$H+x2G?x}178Oiw zcg-#9dBGG_&xr)G-~%7xi^K=l#s#m^;zJ@X0%Alc@3^;XNYHNTP=)tWv-MnhcW-w2 z`w;dP;OK>J4y!mcMKK8UF6~nyP>L%4Tt{N6)o1Q*Yb}wnf`iV!mN;-QjL5A=>W5J4LYW$tY)WP6qKX2A3LWm+R&FRu1;&0Ek~|v z-hx%QLgHa5G{^|SCH9C~^A}Hd0O{)fAsA4ZfW0>i7XFI1q}k+%eS{57sQoyV75zv-Sh^j}&iH9jA>AFF z+8N~vb8zcWZ&`6qedzyCr}?x0Lo3&{%Zs4;gxcDxMn=eT%>~WEMOMOOaBZa}&3S;x z*BoM@_VO?+=VpWn20?R9@i%m~{#~qbT&GS3i3NPP0UaJTGEIYIxhd=3yInQV4B9&Oxt) zA$$z%m(H>tth;EpKuX$S!WbcPK|{Ef=QZcrJ&Q|N&ECSweU%5Aw*&$)@?X)4(5DLD zw~VPm(^h-BWz0ZWMbNcMXuwhZ?K;URFIf=Vt#d`M+v1m+u*FLYfz9OKSqFka{#mOy z_PzwV;aV5dkN`>Da*NNiFJh+hK718$P}r~J6_SRm%ryf5$1d&?=c1b0yk)#OhxU4} z&j_vJf%?TH==-p5=>SAe^d>1fD2PGg6`aj=96+&=8sbp`-9aF_Drdj8W9k=5AUoH~5j_k9U@01ms?-Y#(=7q8br+Hgw~jCVP8gar5veDzD)C5eTCPvB!D z_;Xt)9qL2V8Gi^C3Tj`C!FGe#LJo}kMv2(_LG~fdYiW)<yjt*^PLoGS+kij@ z@_?5>^)#|}rUP+xxSxEWCS3Q_tN9H)=y=r<5WnW9a38fJa1fOpi88l9=mKCfbgs!v z)FY}QV$FD@+ItPrjJwH6T$ zmP#XUf3axa2*tHSCQ)a`?G{x??MJj#$ibWsHJL>}UZ6I7_5>947S3u4a|PrMdk5*m zxvon(wBUPHJLWhZp23I#z}`~@dQjrfjXVR0$%^FRebk}_;zLO7Ci)7X(09Skgre!R z(isfeynS!jz_beWu6cqiHGx$CV79G|gh7wbW|=^4W0EwWr!$Zgs4)^fZv}tjYqc+c zR0-%hPd%N_VIm2@n`NbKi8GbdgXbaxKPNzO`vE9uP?T95kC8Bw+-HE*-m}eDA#OX@ z;0&n9mb<(b+`u&VDPd>Q(U%lx>I zyk3MW(I?@6Sww#(DO#Kz=34Y{rnC^6yY20jcIumz#fy{|vHyREbG^8f?@}~ z1@EK0*|9x@n8(1`UVyF*hBoBjYA+4Pq!$ovI5`LxKoUd+WI7|l;BCYZS%u9u+X56u z4ss6&JAWQQ)ZilS*cD-9c);?q(8cBnIvBch8gLs4MXX({(E;2>ZWOqXHmPS{p=Yfe zKpNDnAeJ(O`XgE{ME5;97m(Y7>IXn96+}n^XcvzXpw7>*%>ZMa&i8Cj`&noG-^S53 zLD*Q+4|_Hgbl`q>mZtF5tlG!OtLvL;USz&tX&tm4)ampX$qJHfrbAH&01pI_g-bO# zfcWjpD>~G4mM#P8ey5H&QD^+DRx1EFd>TWD!QWsaMU&oH2qI&A*_lOzEE>_)`#Cmam^0 zCLT{3KnI-FB?}N;w9kA<9Sh;RjX~765n?)qG7whJkL~?~9wBwIuzK(xrZ8QioWU~~ zen|hXWh!#?%SEhzNb}~wZVOcARQf0xitX|!SZ@ab`<{}bpENgDKy$7AXJ}h;7ma}M z+TS^E2y=SQbf1PmdNztWpu}}@Z8)#24h$1Y2X_J4&nP@Wt^{OL(W8uIb?%Y2^TSwG z2s_}Y*n4zP$m+n^N)G^>c!3jTA>S2{8C=%`BFl?>p0jGjh|bqb=aWb2(T>RDVE602k66*#;r9+7x_b(RRwRT*Q%cdOFzk!R0VpUSwQE%_qYu|z} ztAsUI@y>t!Px?*9qyQW}8`V)z-ZR-HGkEQ3z@k2`A!N_#K_5TagF_IL8%pr2{fiu& zfVjVu`*YHSD8>0ovYc5sM>(L7bJcs zGb5{lfE5+EZ9oSFJt}CMgCBYO6PyZ#eZ0$MKxxd}T87+$+SwRU(@TgtQmcT6@v~Hb z+}^ttEx23VT?CnI;;l~(ly~o<6$+fX%>jUOXJOQ2Xc8E&2(Fp0W`jaR;NDUx9VnYl z#1sw4Sa?+zUT6x-2XG9XVYNeY;TTIEjzQqaE7J>=%5VlB6)cLc2Q9q>FrtOXo*(A#z#DMBpS}CirLhFp-9)?}i z3L(8^k2A>v@`i4tNdlh0#8rscdyf9Rf`6Hl|44-4UbIhwF4m)QN-25=I}ZT%&yJ@6 zz)3hSE_mASEL#9L{x+}}x^pI5uLi%W%W)>M%0BX~g+~0kSpyVeC)=69v^sES zqy=w2ZBKrJ)M$^BHimyQ8N&;KKtZWct?SMN5oDJOHXqBGrQF?Jyb2%#oTnKM*?6};N_;W0fb%w=bmsME5Rm@w!&hUyiZ`b4%~7tV_E z!@h-|%~P$C1w7v=tnfcMyY4hng~xy_rs+_+?Ky6bk;E4_2JpLU>5Rw79G9JI!0Ldv zFkK4MiL2lfN5E7J%jfArPmaipmPu@b%v|tuRkfXAn;>p^H7uSlQ&A;VCUWo*8 z!LW_oV;*MY?FqMa-=K&sZ!bEOFuQReVP{ysE*Li~m=X}m|JW%O3`wg`JSD<8u=1)9 z1<}RlY7ut+IH|*_m@|}M2=Uw}a>5{q#Wkf6$f)-mC-R32@g4g6vJLhDimnTiaeLw% z62EzZtcPBmN?#{KjZe{Z20hhGX+<|3M&BM-VU`6;v!M~lmwQ~u)fV7A@&NJ09qW*T z+bxs)_?0vW=T~`Kn)6mwINeKdDNbvGtVH&w5&gL_dI(mU{X0E4^%r|~dXPj;L_8VJ zvzi(!cs_nxp5p9xeNZP)NoX~2_7)f8U?&Ji-nex|8z;C@DnvQ`cVbrXFD8h2iH;jd zTmMvY42$e1HzxFtbZ{Yj7UCxR1bO=(6WSldpKU02V(z}Am{|q6!omSqtJ*fgnj<<| z)MxgcFx-%L{R{x?Il?i681<(^6E}pkYT~9HSxfw%@3PV1W;JY)DLaFfU%}+@Kbi?w zzVB3mO*{?}&D3hYc1}nxW2=vPFIrrAKD)w%0kfCdj4e&}InYKq5t^1JSm=V)t%Cyj z0kdaN&X9v^r)=m2x>W`4mviOyQ_4+quWURa zbxd!MFz`j8&1o4`@os7bffV1KsNc4>Vre;ret&9gjzs6rr3~bC*?6IS^2lX^`Y5x6 zSHPe)^$XwiDOyWHxqDvB;;uvVp3{>b_8TUWsP?2(kM`8z7G*ZdCoL?6CCMmEDOf{( znse5H*C$k7cOZo&1*X8l!|2K_ znOlK44Ybz!X>}OnKNmF-FTO){uTIs1ik-G%a00e-sh;#57G&iv8oz;xeWPMO4)zGWS?%aEr=H=U zFu(?+@-JTFVUcz)skMXIz278TJEi3f)ll2(=}zPk_>m9=bGT232pY8v-MS*P@M~#Z zWLgO#o)4;g8Gl*1UFiV%?6tAViTQBFX{Ej|ukcW@Z=LH-d}tdXoZ0xrMa|cf9R1x<&2;zG4qMC);#{cAa~hppx@PLH)E4XU zXVNzLb|}W%uIdq(iN&_9$=dHewfTv?Qv|J2h<%#krSH@x5u_wF>{2KPf;g{QV0n5I z#hF`B#E=im>BadsZP5lU)%>#$0{S}GPnY^QlnFK{6v{T3*C&T{j+i9gnff|#Fu?fy zGf87~vvQ0Im2D&JQbq**WGU$cgkt+BR`piGU@%I~Y8AQHEs;#K@> z)2ut$<=&*zhueJqA|Hu_DsmOr7_7pD)AcXk_C@p3@B^d&EDFJ(Iu)NJZ~v``JL>D- zKY5kvUEM5VT=jUg`#G9OJy)nCRl1^UC(*W27`*Pox6MM=_3PtT`ucnCZ8QIn-II(< zb3lMje6e~wWB1Yx?Bg?J-Cby<&$Ke6oriXlSTw55V_hd7JBqF;W*do#J5I$W6^(Nj zf6>$|;qlUWAmQcmHvV|I%^Pu_W9%C(=1u}K{|Oyc#B-M_Z_NAtxT)Ml zE#DfC>+XgIUltVw#b-Ry{0VbK#ve~%I_POkdMn~RcD*^aj9VS%m_o9+yMG5=)7+9D`h$}*(1E~Ev@XdFb5V{qYL2;N8RluqsD@&}bkD@2`) z5bUERWot{ubk}?>y)ZI4l@TGklb{;;CsCJDKlh5nsBHbpV{^ssjCeA{SOn-)(q&Vk zibwQPNMG)j+7}J|l_7s5u4GHghgW-J_Tb^)uziEwe5Y zT#V9diWaF-_KuhCT^t%>XbPt#RlN#lM z(v`GkJj$3OGLD%*&ib!UacCheL=#1K6s(B~vq{ptskBM-&FteH?{imfkk^>teRv|b zs}?~0hi3KLr@vRBYACK}zm+_dH@L=^jzf9c9BDVac^X=!wy{oseVTYA?Z@o?wS8&~ z1-G;GV7O>8dpXC;_Bskrc%?|^z$E)Wk4?~#WBu2(|D+*%vbW0BsYs=26W6l%_;%;k^TIe|pSN6bi%GJ0fj2)*47=Z6vio2q zeJaO+MKfhkx~MfN>ywtw3rZQ6C#4(OjE#N=%3~EjXU!P}9Md(;QimwJfg*|>qoO`y zHP%b6e+OX$A88uM7@4GH2i43>-v`d+`G{DOKr!MYqR?&vK zWF1k={joP6Wq)VP<7Z~7^XQTk+ndsqm^(g+6?I z?ymjwUw=+s@91G(Z~rl=%c8gL`#F^2_ga9DYbG6Yi)$QPE;H=5H;6@MXBbS}B)&0= zVU$Ri-Evk7*dbV5QtY1(IpB54oD`{e7ooUre9(F7Q^R6%=w>{*+S=C?1JFW`I=c|q zVO2qT45&ikjvqEDeQMK`Pd*5)^DJg`SHWLOlf|$ROtW(6slLC9fdzm1Nv8{?_U43* z#~dNsz4Lk_KSg((RA}oNKULIkDeWSA9C@T@%-LQiX;RA@SH?<{ut5Q`wlRu)k(7}V z^+AzLS<11Oo+RoXtfh{VFr8Pxff+LB-7rtmRnh2~$C9-;Ku z_qaE<>ZWyHj~CWtmhTb+23kU%We%e?m#c z(?p-<5vdB(!bzewp^L5{iDUy(o2{z<`v)4~%h0IWZ~D(Vo_&=4kYbde?Pl|g&TQs^ zkic<$l+o)oi0lXXH@}E!l*Z%AE!V>S=6*jZ?|JQ~yfEK&zxroIj!BmEZVl`19Hq5j z!PrlD=_kT3WVH*eXJDR|3R1@X?}pC(y{Ck*)A0SqjUZo6t#k(&25ZesK4+ehmRMsh zfV{7@zaeOFGYW18pl(YX98u*a@OYOcfVyLOlVD)?MmYN=Te5&qx~ZA0?KUX4w1b|a zVlH~YR$1szNaah;R90%Wd)cSq4=&UO8hYCOIZ3kRbnnHr!DO?8n+wDK2!*s{Pj2e+@7_ z*dKL<6(~cOwj2$7mkmO~bsA8L=|K2P^DJQc3)h~iR zCnYJ7)555r{3QAi2+`RrTuTLl)%Xt0WxyAS45t1b45Y=sk|zo`W$@XZX*5TWgdWRv z3wChH>l?N&hEuC^D*Jujq>0liC`i<^q0ab0&N$sBd1nV=qJ8=cl<+ zDH354_k{%=OP#kjlalsk;!<<2PFPtNcia^E+);3&+FEB!QPJ1hHB!b;w-z~1H<7$T z`PWVXB5a5+n>Hfv3~Yq(^;DC%FgE5{9Ss609<8*xB#gJNT9{`k?*yWPVxHuM#5 zdsgaKu-Hx;iNz|HKRNnd9}H(*=sawU51fzx7WVLtwdq;v!!{0)=Ff|z*M*Fqt`KL+ zoyV(bTytyW<1mKPuy@eAaJ}HNSqvtv-spX zshZY3cafp^PFA~PL-V7MaX8(6uiW(kNX-*;9X7spWXic&^ec-c_2FWUu^Gsj9LTDK zp;PX>wCtEp`WRnnjI&ZTB6AYNleP|{{;l-5t`4neGSlGGh1%RW@=!j|prF9ru zE`^#6;nH@{3jj9zpu-e?gJ8$u-fTFi%Z_>VB$DZiLMJ!!rV17Tn1xjn6V`mx4HWr& zM0cDF^*RjEjAPQBk`EwS3Au0)K>iSHE`&BxpLYTv$y@eh0eA=ECUE0A%tykS+T1;W zTldWf6N)tp@(xbz0G!6*-gk%}-tW=wA-Y>9m+jCP(_BfyAj#P_V>nYCng9U#euVs% z+=FrqaeFV@h3IXBwfh0U(I=@%xfh25NRgikrf|O?*nJe^7!wZ79A@E1zOX>p{0G>6 z2*D0{ydXtW9!&z_3&i`MaKGf2OJ=bOfiSkPuPTtDBXb4{+d;HD2jmvFdJglP+(#69FXZ5&s}KO}y6aShr#Ypuok zE`ErFUi?ARhV(lF9RaiQdN@##y4kq|3bd9=)4FT5j3EkQA2t<6R+_>j032mt16*|E zREQGXa*j$DXFV7OTfrB2Pn_RU4P)D&s~@j(Nzu&B2gV`bGVlTOMz5FPZ@wC_P#MCAC1|afY&YUcOVi+Na zyjKNQ2mu$(b^t`|uT=rCj~IObB;>&I(PuXEJ+r=N&JedwC1kBFS~v!Gb^$~Qi5>Cw zpITQpI`=;}CImY-^)LZuuWmU)AKuB%362e8b!XIX(bMRgKyU_pwl1ucEP!Y@SL8FB z^VWmMK!ny3KMLD*AgHo6eOOF1}>k1@){@#%_|oZ>M9|U7r#`VsMJ+ zk z24jI?*H=8=QoV7-27S8PtVgLu;<9JZ$_ViqBn;D}5Yhbiio9U+J1$ozzyMVVIifzl zOvU2JaSUEa-e=?T>us&Mdm^PR5?Br)qhLT;lRlL7rqcHc?1a4$eUC298O*rL^NU-8UfU2yfD zYgA9V^J!YW^x0b|*J`!`A2;6-*M62bg!QX+hX0N6E+6z;Yx7_7-^|svw@H>ubAJGq zMsMnA&cqhk^b)@QJ(Q|bYSU}+I`t5@yjb9AD09j@G%{MGudZCM`&&}ss_AX$D!#Q` z;c6H7u5lENc$dCv&1;)Hs_;{vUHWI8r}`eZ=iB3+vjFLSAfL*_c5&=)pA)8OmYAJf zq)_D8OZoNCZMja#LZ98g=n`q*r2zJ~@m(lNR!`&3S|%LN;LNkkS4C~U%8O6RfBN@7 zvy(+vL~XP?g)z$L^>^h6-uWcEylNu2OuKD(ftwXGUE7{iJiavoxQzIdJjF_3Y!9 ze{)`{zm}ipwLAFxI#e>_fk2N}T)QrNc?&9p=Z|`FL)3+0fdSq8uAg^V73@A%2=nLt zP@Lu-&zs7Z3lgmJIw1u+a=?X0iH}Wxl--mT)vcGLNs z#y#3oNad+tYw4j)QknmH+$*WpQYR}^m=7&TYyWI=+5W1~ikpZs@Zt}ualiM>o3~4} zJ|e((ylqXbuQH$aVL?j7yZI&|@*}I~SW=*)58|H`@994!T?VY|-EqDuL!Wuu=P*p0 zWy8GvpE3sTaiTd@m9ZzDo9U6|_MAmJVw_ zdlAov{$70OyK~3I`933cdGi=qSR=cNWPH&x1`8X*pDJmW>MI^8S$8+IS#7D8UmuQz zZ+WIZyVticAuDTsve_12xXJJrf_nWZxAe7yLbrCgowe>6BO=r{YbZ^~(np99sM0+q zMq2UU9HrAKi4`v)u-FMp>NJ(ncVNh@ADT~pcW@5D2!~w zUCj>uSQPGhbS^hG)YdryKThrqmE<0AXWG4La10>K)ZxuM&J)(}90&0PV0x6HhbptLYt|dq}(5;Z^NPterW!Q&9IXF zFf~>8Lu;2+>xQ$#D-*Ojm-KA1 kj!|qK^)^op^7I$v(^>O~b&7|@TE#5p1N*i6} zRW@-P(vo4JSxQ$LCzPJ~+?~hPPUq(f;$^oHq4fOgjX<=IewmiXN@P(%`J~cdQk}+6 z*W9#sQ@k2cyTr6(Z!+XRF8oZYtG7!o(qT1MHfa}52a1*0th?};-WL!Ya?a&=U`Q{( z7yDXhV0e_Dq)~)V^9>~fJ!-5^@{yEyC7*%~s==AzNFy})a25c5^TDw85nWLj*>}4f z?>5==@;pOLC8r=e_MkSWIpUEF=@QR%9G;ZE+3?q}N;^~9>D1==5%cSl2x5(mpO&mI zLpe$=HHOktlXJ6v*o2OzlLQ(|;}_YKaHou9zpVGPLvu`PrEkYK^_Yl?f$en6?3{j= zPUC_k35|7M8Q)MZcR2+8S}dC{`wo#jCaTIUo`puDwY!G1({{8mB*ii@9 z5b>5)Nw-%R1gakhqQML~yn3rNI5i=PHmk7~$k5D4FwZLg@Ry4S?AbkS(g@o6In+(r zDn83p5?VgJBNON^S9*gNdwTWRVq^wn@Afe0O-EL>N32_?arOp5c;?CDhzp$j{&i#U{;ueOyY(>fw4F5Mwr6f{C86*F<;pg zY)=s^8$=Z+GFpt3JwB&^sVTVt?ocqBd4}om4r4 zSS)78|B5zBcf!4M85Ne^!8MFSRB8aX9b|AOzxp+-X4OWS9$u6r6k8qsn(T0v?2zLl z+$80*OZODXp%ae)ay<1_9sB3mwM(C9%r8W_2pDayYMSfObi1@P@5K)G>;Dt@tzWOJtRu%l$Znh)ydB~_H{4I0tPgJ*S%i; zkIe!@_sRcm6-3!6Wzp!Ar0y4M150w>?dcY(!cbf!MN66*d)=BGJn$V1V$p^6tL zM!3KE^3*e$_Mh<{;K@qJs~Z8~PfyC@fKw~h(fnlTi}NJAlWOt)mSTJR@KR-eiuA8u zPsNVDzXTHO@u~#f*ZQ$K-ZBpgpy(PJ-~UEg3F!4`{m_LF8jHDnt)F6{nz9LSY~iU) zEE;H_KGY_fkTrNfbkj$Z-sH2lZ$`P9S=jhtpxeE9{X|3X^jALWD@0Mfug^B=>U6GU zWg zHHIh&OIEZr77CL?bMl|aeKQdw;~Q)bO(N%gn{>g3vxXEs;Z21u?I%;1sc2xj_x`*g z_K%&uN`DM8h^F)g)B1juy99=7z*a>yOj?}o@x*xRd0e!LKjR-Rvbko~d^b{Tvqh#^ z(-x65?S|WM4B>Cxqvvj(5$fG+s!3k5QXFIx=Qs7?;=ZaW-NcM0SFLIc5&+-+e(c1^ zL;a$7bImH*<)P-F&uZdVh0#AGKXUD9LDt;dkN};*+N-x7r`(!BGEo{^;~mJ1Dp@;( zi?-$stjlIePqR-q-=^DIlV?S9ut=T1)svU|2eqCUQ6RGSU1!xZZt)2|em0fCs@~+0 z&iJHO*jq7#r6%KHq0NcDX6mca9vep$&6>T}gTL{UlYyFp(eud`#`3zWT@{|K#k642 z_`+nJU(OQO+p~C1GSnxek%sw*R(C-K;-6p{5)Z#JM;fB>SfB(Zt0x5%s3)C7 zx)6C=%SxpPzM;v?AE<^i|Mmq>B)9xV9^2G){mk_X>0ITV{dzkJG>VdJDF%@Hsu)-_ z?Q`GA;EmSO5nwvWVT!6<;Hv~&pl{++!h@->m*bu(Mzvi*I_Q=T(+T9%sqUVD-2t?VZ##0XaE3Pob zsRkx~&pzWyc*;E|cpQ>WP50%6=nMS5cNyvCXF~cgg6C2p<{O!6$sb>_6zTJ3zKc|f zywnpgtg_?G za!q2q&R()M4Wk=8J(M($f`l+9fgdWk+W=utdwDRv9S}%r&aeb-( zgq_x@$6x+M3w#m05#rmUww^MR*o{k)CQ5*iVrIJ`V7!V~A_uhbbkm6U=atp3hm{`$ zzDq#G6m$?FArgaK?(p~2FXy~@Ip!UiWD~OlZle?Fz#j4LT;)9Wla1lL(N>H}oueTu zi#;3fO}#q!j$fw9aJ*D!J7yEbJcYuUNm2VustQP)AGe04cTZC$v+ZP#uDwRWq{8W4?cYrm_O6#KUJDuIt#J zFWsA~EIU?nIob9QAGl&o)eR09_~oLS+Mr+D`S(XS0SD}xgq(6@A(_xrPDFq~UXyxU zb~x8pNA^#5#x91-FH-GC(q=?oII&#l2n8}ZGD);lx5jwJbvs03;M*A)OWgaj`{7Fx z0x!mG{L~tIWA}Y7x{eQ?V?!Lyxevj!jUS{F74Xa7giKf&WXlO_3D+G~l>>qqSW>T? zoa7tL9w-OUg;+U(*!NC=5``}o$I2*PI{RylVvBXe8F17l6!|Eb6#QI%@*cc{_3+Wj-0fy}qKd+}Ng`I#Bt}?5|EqR1og%locf!CX(rGHh% zj`!qovB=x*rNaFo|EVutbG3v^eqdP=)kUk=r&IV(&R=C)gT%=GIsbcgGks(rnkhn9 zQ|#qF)T>FK81TxKc-`#L(zm}UuMK(P-|A{A1~T%=XzQzf=i2|2cT69Y>z1?pW%wevIKR<=YoQKfDv_TNd%KL%v*9jG?r!ozChxgV#PybUpY zKOmFlU!(URw##kbjG6-S994WSOF z?@?^W(r80crV19wu^RDOo zkc@FJ@I8o}S^iSY)qQb~0Mnd&S ziq;AmE})`xug_jN9)zsRK@SDue5E>x&yIpU!Qjc&pyVZSvI*_$;J{eUmO zj6V9LU})x~<|^xO2|9wypN_OSXJMB@&2DM1?IJ}GeoA}x~*BbLQrf;m#dU%Ucy2=ED~@1OEUO$9<+ zw5SmO@fD*R4`?k;yk)0GtcqcT@457{!h}_;C(-~&fwx16w00?R7a&8H$q}>SS{Gql z9n@lsZYX}bo8cMDpsp06QcNn(TNSnOmG99uw=!j$6^r2Qzs`#lS3NSiq0JM<8=^Is z@x(uO6?aZypQgoiySB>n5ku#cxHlA^9NB|XFzcFinpk{h-S^pTzjR;%9UkPrG|73S z+*&=YikpeeL{zX)*F>{oFo`020Rz&Y+pqZU}t zC#>*x?l~LnJdc{Mj)z!CBW`{XGW_^zQP#DMdFvXtP;Ypvas{k0zh5ZZXo&w_D#7iA zptCtkYH|41vquWfCOJ;UtSp6S-ge3&YDyMzxaz<3KKU%q{81y|eaWufHV)qHYiFf< zy=-y5Q3?AAwFFp9Z5?T}^6I|y5#CWg|NbJQ>WaoDd5B@r;Fym|hWuW%FHyXLN|2b| z4oFIXiOKOOy20DQ6BFtD4z6^^DCy)K9P7jX%>5s!8+COv-Rh z3;-j5MD!DT5Od^o$jwqXuu%jS`6_Sb^w^)^E3(^|sGZZxMF`S`SU8z%{LDhy!xE1i#Cm|a+WAC!2nRwGHlR#E=TNP>}WEimCX6L(;^GJRNkv6MQVTn+!2 z@oODk52?hB1yPNQYLUoVCr{hqy5H63PYrHV?Z2D0NWsfNkA6`ovwTmDiPpl)uHmQZ z^f)nWfBnO=7xk~INy~Yx?>6p=$5vC13gAOOWRTuzosERcL7bqh@xgoBC^KESjHsAWwa^@|&h7eo)PCEmyG*4dEjRNr z?b?NSm*8;|YT&oqEI-scCfa~pa?(zxZ-lGX*I7-d9L2z~x3`Vn7a-#fZ}5)Sa~2_L zXCIGC_`TqQCo)$}y|)au-jXl4-)8OL)s~2r|1~tWop{);Q3-Nttk3eu^DNN4=L`vE z8!E6;RxQIRj8_CwT@Q|)BN>~tDZehbZQOVNnoV)S_PmHr`%`J=3C(dZ@!1>9{ZGKM zR8KFYYGa|;^1}fA(RB7-&&AWNbht+JN@vC-vTrCNmvF9!oH@UX*r6+tw7C&H%32N4pDlCWf~86@e1d9DfO5A@59s;u?xd0I$`uM z(E9bA1qE@rkspz!H66Vs^dQN4D8oH3iS%dm)e!SJG zl^6S_Pbw!6m0N2)dZ+vbH|l9YdgH5j3ptnG-_mOegry@wyeAA+YKro$yWN75q(N0` z+AM#Iww+34M9(F)8SiLRMF0y8R1AyPm1So{y`6+62#LcM3EC!#>H;TlS)s#wAVk<@FOEQahv#Rt3t zMwV;jAq|EJ&a^D0dOJFgmU#y*mM38Nd$vlS4wJ6%9U+e-zYOw*&@ax56Y%G}6V}}r zYniO^wO+1qRhOO3ODb1{?H#5I7*Tt<`}Pq8hNr0y?kUMia_UO`b35HH+&ur{%T91p zzvijq?kkUX!@C9&v&`9eji3$Z%>*IGSIVi+c`VzvSv5Ba+nsLk${~*{$=9tpWqu`J zd_OEO&xD)3@trMrEJwYoMGCx>^A z=$`fp2K7DGEw1@xxBozGj6(bY`Y2>&7=ALU^vvE;Y969X_smY)FfL0i@EN z^=fR(12lUiMO~mI@pir>wxpb}mYYl>2xc)gIfFisMU|o2H0(>!C!Up1oA^*p<7r0d z{PJ-2?t|B@eO)>iJ9v}KB3uFvnfq*Mx0-MZ*Ov02K{@U*=F7+MfSJ!5M=Qt0#ljoJ z(DSelfBid0U-FGjVOd3u5LWr7-gkEt&6A8T+gOi>m#y9kpG5K!@Ago@=+k!WeKgbY z&##wzDEfAm{(J)5_~}|!C{IW1yMC*uWVV{p)|M`R?T?39niR8IYA7+<)m4n%TXSq_ z40!NL_9A$tZ}_87ZUvpLLY}?9@BX_0er)b?W`95R4NF8&Fvr~FEgn{$uYoB=Q>lKA z8u@>{$iM;r_NdHTmq&)hWWg^O782l}cX{gZkD%S}wa^50IqGnf+8~XX=VFT5z?hJ% zE;L`Tj;|*%DUUCI)ejSro48D+4eP=Vm%&~Ne!7dLh~ntN+J`f5+uLmW*eFefPTxpT z*^lh~EN6_ArkQ2(NFxI1^KRHBpnw}Z-&)c=gT!i-L=5AtM3P<~84amwb03FC`|(v7 zoLY%BSC66O2GKzUW1&(4PegKbdn1H-TYjhAE0N%Z3lnJfBMP$MJOmcuzAiJGHpOI>*Yf?tX4h zyT`-HKp?GakhR@$5^V2!@{hDNB~M86pXU3P>0ei$_jI4$6e{}n{k#3sIPSKY-5lI7 zo1h`v5nfgwGoT)Po~iz4^o;$)@POa|EALJD0=Dyal5&?QJYwcx&8#H)VFBkxNT3c! zJey#STV(0O-Gdv$1|#137!&n7lWAYt7Axw);9i!>mkLBRK+bZ_L(gZ^<;sWr4Q=l> zWLr|l&OE6p zW5C4S*QM_RQ?WZC4F(DRZJY5S=V6bYM${@;FGC)e*RnT7XBD%@{PGNZB(ZlOl)aO5 z`(OW?)NC9RHAaa(Vqjg1mR%5%V|q;`Eh((5+UQT_2Vl4u6)MOZ^h(X26|okNA?&4ZwIzK9A!>;0=R7vG}wM=}rKjZ|5RbPO9fDwU$D|+YGx=H38&3|-iEo0>I@lVM2VQPT_bLj|Y-Uf&s!LTa{d|F?KWU8pL1^5hW=FOPcPO?P?3AO^J0344+U zBQrLZOS9+x=XP;gmR{IuK5Lh!uv4vd;_10{h<~%Qw!goBiY7b%xhX2Ulb-##l;&S1 zum5P;VbU!=|8&Cj@3$fw;Q(14Q|Id>U;F>@^_5X^1WVh&ZE*;e;O-8=J-AD7cXxLS z65QP(*y8T)EG!b--QD5i-uM3g&Z+G)J#)5utDf%Jnx3kDRDZ%CI_*Q+I@Xn9M^;0Y zb2ooE(_>nzEVpC`myuf)%P(fj-ZaXPcgQ|N(p#2c0=8{sq<>AFH(FmyhZKFqc&#B> zJqJ0wAV*_h`9@sGxv}zdw>dKy0V$|fm8OAkg}e<4(77l&KIgu zE#ZD3URp1*%$M>?gcU>wCG&?QBjbnSt$*)h>gB^$fKIWbHXf5!x-t^du!;=Ue#?ox zm?PI^v0KRK%ve-j>%`}KIG^84MeEQA{u#uNakcez4NBJU^e8m94+GilceelbdFD z2f|KPJXk5BPwP!0S(*W1wM!nXYWlM_yVz?rZsaoDf&1=>f+0k;N1gbuI-{raHZE-Z zSygr=sr8s_PQVg!=vdXy$FWd;pH&^Q1-(gDV&EKoPG?5hiNPzBDVZ{z?!nFZd|pkq zkmpa8(SXk@OaU$vakT-Hh4)t5usw>nn^i(*^Qtg;Fp50Lpl20BZy>BDYd}_^CZ9J) zAw+h*IB(;nq9JhKDsN+V?{AI94H}3G5Bsb$BRhbQy_oF0Y;M?Ty)$DYU)7~8Cgo0-~#(KpP3c%hggqreG z_k$jX0cK5?^$JH~4Z%VqUhN1TPhbgV%|5={s}Q3No;R?BzW_6DVge8=eAt%-7* z$;Ky9`(X9k923;+dHe}b2U3H-rB_;K#zlbJY?A%OLjJwgaj3&`nEA0Y>s?vRgOwI( zD_xwI`EkD8#k}H?4>2-F@mVK6tuJ2Oe%kE49&)?}#1W;iz*zzj)NEo<<-JuI&N}Su z2F%iO#S^ULFtp~`{AT4Ld5^K(cBr0{nuZ52vFlfpMvY*VGG~&wYv|T4Z7d2G`^Ten-&)$;$n`TqG6mC$D1?t^s zdUNPQ9Q`KozPHMv-yEH-s;bct6>Wn7@!}DV*I5C>B+Mv5NcDZc^v~uMQRN_>R~`61 z`^Thz$(k3^C#Ys@)Bu0?%z=K6ad0wAo7wz8JJiR|DQBFvNj<;<(V4F}WzmxKm)%== z?eNWFq)m-C{l|YQ$Z_J=7c|3N6B3gVpSWpuaRJT-5r(8CGSKAVp-go8TZ?w9lCP-kLr z#lwLFyN1QzThU82YKY$1e@<5Y}G2BJ-)4hu@^|uyICd&iG9| zZ!tThSLP~n@YRpzYOK72gJsvhi2U9hJAsCgX4mKQugII&t#0F=gW4VH$Pu-5TW^w1 z=p#I}v`=r6B=2K;ul0-Tlf7U5pV-fb!HgZx&mj#Hrw{q@KF`gxgmxSzkY6pLI+F@LVd8*KGsRT@Fy}ID3-W zsXciMi@m$@D!jXDy1l!8hXtAQ7MclE`fqL!^+6cfo4b5r7gfnJ=EgxCs2BFY4O-1P zi$?F^>8*)%IO@n|A+i_;_(p4IE>HbJDuM%~53H=WO>6=%&&@gbHiV7Y z=xUoc91I}7h9cxeR&U-yxEfUI%YVJwN-KE%fdW-|1yx~bctZB(^bpnB{nQ4I*KR|f z@q)Ywr;xdj-fTTbho!5o!P>&X94Slpz787>_Ab_D2x~S zwXC!FuN6F%KvmiiE8gIYT1ZJQcqjYR4s^*(7)@LAj_6&kfZLpf=}!ZpBy_{hx)-?Q z$W*IBH}{juH8rzIdRP;?QqT6CodIaGQHoAUfuC-I=eIaYq&h8_ZC(O%nmBdKttt9c zs{TDsv_oycG&W=G@)R+}2ITW_Sh!VFh@3N?KWxdrUcw=|)!v~Myt}~sy-nt~swOr` z5R6bah-{=jTbR!{Kw$o|O^ZX6S^vmg>ft^Chk_QnJJ zivQ0+Fh&L~hVFdYxIx|z_K>%KzPO3aBKwsEgc_Fk2~Tytj6ZedM|fELP4ze!@-Q1P zjo1dcdIm5W{o)j;5#5;W2o;nH>3I)gUjF8!?e`tD2)M(4ER*rWlGKKNYLW3nlJu5C z9$t+vX=3|*;GOsJRUWA^`-*AzFUQ1z48EDd+UIETCsVM`D@8_9`HyP=4Wjb!JUs)H zpU~zpJuH~oo5y9n1a{Hr=<4d`EC#$kIPfjF4RHwxa!yzaSo4xWq%cJEb1c{A>nIZ=v>2U0pE5UpHDKKy-IYU$07IxOBD`k zpKtjdZXs_Os^nkX7f#Hy@`fl+)!*qJXor*asXsrovB_{r!(;w*Tq$rfj;2TdBIB6!Gjkv32*i@y zzr0DRWOcWj?5$o=$N9~e+^Gtq#GK4D^_k)rXXlwiJwEt{V2m+x((m$l3Dmg+gFlxo z@Ka5r<5{6cc79s$OQU(Yv?-M&CAC5x?uCU%Cb!g8_mN?D;CK+u&1(u)BN&xh+)#cE z=V0>U0q?)f^DEplxK9$a>!daBQ-JbrDl!XPK zi)r?clRU3dg}R8}m!tfswHXw>yAX}3N2j4IAy`hq22Gi9=Zes;LIec4h| zx@P6u9=v5i>td#;iVyDcxE&eA$9CHV$@;bpyJ9G*i^6l@l-6ab1g_=FNu3D#bX|#C(6-QR-7G?AXr^ zr9XgdEj85Ks*7e(b_&$t(>h@>Qsusxf_^sY7af#nsT=7~y>#1b)z&DTh+66DBDQPD zM7lX3s_^E{i0`j{YI_v@98^?(*@gKT}nXLcVglkn6I((3n!5;SOd6gGjiS@Z3|G zV~>hD;EG@y3O9t5Cm^2idViKi!Zy!}ppvC)oZwWvIH7z-%Q1#FMu}h_wg9SIktTWy zO<{N;WPr_&8=o#l{aHn%qE`s$OWaNjI^Z2hNGM1$8xWGoXhZfryv)4}6R@fCC7e9q zhJ;-34@$bI6O;@l*w>QnWeFHS zd)UGJ+!GBSuwu%8*x59{r1YwT!`ER3OPwt4|C{)CWB%eprbfB02}nnvP29}u1FMzb zn@X!u&fqa4!v>Dcxyc7beElo?y%eJ6P0sX~$Mk=hf1&@)`~yHjRH&Bli=VfMoAM}{ zWskWOO~57}iKWZYf(O%)(yM5}$u2ATtZUirc{$nTbQyz&8e(vl($OfDJ$7Ru?|EA@ z9f84Q$WYRXo)RBNKV8rZJOYejlPs2F-|xO`b=T|RfOQClcO*45)+AJhAriu_XtMrD z6p>~Z9lcW*{H$8eVK#k1hmxo#&ZsiMk6*^aKs@Ygpb?Wnm06KFjs~$4trceYiuP+2r+&Hn8JUum1HCi0m;B8(mk+b2562SCeWaC-P9F1{dhOr zKru zAHTZunw$O13R(?XYgui?%^LyP*8Fx1L1Jzp}5?4d*?jr#fSGi0m zutbOiOKW+Sf^A8LKr&H^*EXX_>ftM4VmjAoLp_U32BfX#cme5)avm{pWKd*5kRSYW zMBeZAmOSFRR+8t4Tz`S)5B`Jdiz)9!sZ8qcRo6}%7i&K*I@)u*&sz^R$-2RXo{y}D zFWg^1+a`O+P%DmUbnrI9Js4v|Xod<+U-sH-NShrKJaNA!@u8Gkt$oA2ul!yc1H(r5CQP|`;T0sSoDMjLvt8KJt{ z=tUz67dZTmRL803P3C#3{(#n;nw#+0BPOB&TwJClzrQi&sHwf|FR0-MNw3&F>|*tf z@2^%9NQQPbVAh6jO254dQ)zttm@&rNl(TQh_rOWFH>;s@OH)h5&XSrqnyY|36DD3 z4tqK|(igyC6uV6L7yHFziQMUiEc}35aGLK9n$c=1>&opnm3a;+2>eb8(sYLAY1biF z!09`lXeEVTnHa>djX!)LfA&j%jh4(&hsm1Vo!f}mb;Op+;d|%K$x^$MhSXt;c=>yA zNi@N8&JW4&2dgk8pzCvT+PV#8K8>l*;T>pT;ucIDz4WI5+Kek=I;T_7Xa3Yps##R| z7j5FWiBodX3KdOd$|wgbUXmb^47(;h3e`aLF}BLBhM#3Sbo#lDoC|4 z4oO*H_#F%xE~zbd`6w*Eg9e!`_ZWS|Zf73F$Ks=6>X+GDRxDpjo`3`^MDfux{LW@e!fq!;A}4kp}qIN)niVBp0VA1I{Fod#K(|i_=p83rpJP9ibI* z%{IUs$+3SAzBS8;5q-Ad8JPS*lopn!s9GK(HQ1weo%P+}Gkppm)jJg`3!b&nR5r_N z@qE?|#|)vo2qOaT!V!pF`=xK~u=Z0Ci(*n%ToxnoJ3Gn-q^XWQEZ>tI9=zkbts^EjI>kmeZfr6d>pZU} zrOdWj+=oI6SrxI=cD)d5pswl^V}+CP5)bVi13q^H+Z4HGBJ*byI`DB`+{FLJ8X^W; z8PNK5!Vk?lDuo{gj^yBl!-39ci664a{!Tt%Z&i>_eo6(k0%P?$fb%XJ+)S)8|J>w5oR_?}?n#kkN-Ul9j~JpA$bh zhCb;568Cez&^e{#xOGx^&Awu8mGTn*@I{@kk?r<|`&ha~6-g+*2y7GtORdKCvHZ=M zA}J&PC0-~Ey>Q8W|K*s-=#Yw=CtXW#E06VUg0;u;nVw=T(sI{M7{{kq>^Dld@oW$s zBlakr={0S9%?L>tkFWtmi*@e+>w7xh(c2)C9};P%P^kPH?)%& zPKj^dlic4hX3?Nxo1m8_a84ONnTxo)yJ-bKz88r$_A9z+FdZFYIM*8rV<`r6a zf-HB!1tQ7=(YijU83;N)v`XN?qqLJ{S;)(z#~ZI+FKc}tRP8A(-=;y`EL02=ohE*k z@6>gG_5@;wdL3QIlfi~1F4L?#&rsCuv2%@}sF~5X-RG%;JI@-R z;nmY+DLR?#a|Ux?5fJb5;Hy!H)CMWw?$EjyKC!F*Kc|sDPcO6d6-~#YQ~Jt$9@yiB zrQ9+MgA%&1akXX_Bl0PH=~x>!L>ld} z*TAZWIU4ORxcy3mY`M(!l?dv;WxE~D1wmBlmr2c# z#ZIXOEcN(sQwI{_8kH^0x~R@Zb4M`Fpmt_A^+ubb=Lz1JHjb}ps>jLp#l?1~ts_!L zaYCHsSd`7)66@3ND4my|Fs4<-$F99*bbWWtT zypyU|J1B&{B2MQ-{fe^s0h6Qf8q$)BATFOMGrc~TV9xmRBwo2D*Ya=S{PHWoMm`SN z-n2gSA{BRMy*iOQi?x;<&Wc~iSw+PA;R&DjNoCJq^jct)Ed#o}rvKrVn$ti+xdNuo zqA+$#OjcX?s!j-HfBT$PK1HL+@_m%&Uxpt_cn>LASlwxz{!({~n{Pt5f1+%Ck?b{_ zd9E;6ntb4AT`F5XLdJhQJ)qL_frNgj=uv|?>Jyp)T?XtdCG!^a+S+49lwc6S9 zK4ZP7kS)jHeSL}z&8@q|;yIK%Z4as4P=^_f;C=Lc8Ew|W*0nIQ@<1 zf*s|WT^+sgIIlQsRcaTy$@0hC4V<|JqhLXp?`iul#WL=3xO*zf#@w}!o09$QhWriM zP40&3yUe^ESM5t$b$Dz1@WrEY{7$a<{0!8k#2-Z7Xp{Yo%=Ny>O2WB%+h;0b)AF=8 z9`es&oFEmUc58u)3DcKyu2Cu7|k%`z>R z-FI`qs0#!DA=R-krTD`EZ(8VAbny- zU4%HzY}SFm)^z!<{?U_}_A)ZQ^(?RsTwLsi-$pY%E9Nrker{!FDD%g&F6AWn#(eA_ z2<9Kuk8c;h0}{4sW1U&6xJ4EC`gSFatf#eWV{I{MyGN0}V#}8D*LZYgIlrvg|D&3F zCW7!?M9AyAQF*P_@X!wBnn_XKN^i;xyp%qTguXr72R?IjBy&tR3)E!d^jy>~&E66v z^*s{($ejB?Z=S-I!f>^eUG1wUBrGc{}MfByahle)JUEYP0G!fAaJ zy{CaYged8qlEb-!NcqH+&2b`~ll4XrpXGd^mUUOmwk1yAxjEhb<3z?+aEYYo!aB9_ z%XiucChIpg|M@yo+l@V-*24QGKi^UJgMH@%8Plab;IVtOn+0@LjOrW% zX)Zu7KvL7NBR!>S(0Yv!D1MCz8MQ|Rtxn&O;4hLF<=^Ksb>BFSBQiLv@T-g47yBb* z&%C-L@~ZB&Qef)gdI9CLpqR|M*t2#1u`#})fZ@YrpZ=;8e^2CvZEpF*8hWv3F4>jJ zl;FdJ`YLzX*^zkj7EY&$s;%{sxmHO=Z~I7dVNsROu0$#H{g+gkl2w z=bKnHqPnc#Hm!u&Ad65KWh{S!3ZIR*`LmTam-bBa^>KWP+G!QPGS9DCX}1S#f)ZT@ zvl48A*p7^DH|J-od(UjJT?@X~i|sDYnLtfU7!m|w3t|IC-dWjg0E-TcL~q%p&`6ZD ztcForA5_y!G9fb$&|opvkPseUY3qqsj|A4R*j$%Fhh)O1xRe0ASdg;oAtvy9QTyso zK%6_twfh8u;XgWlqTbuLN34Q;4UdlBL}5IsXNjBmq61NuzhN~Z_*A{l`)-ZXU_1Jp ziS$SYoI?-XACpKGHkZae&0Eo>QwZuJI8;v9+(M1P7ttIG-oTEY)$Z3X^9 z!Y2G}u62|iJmNfZHuLyZQo|@?_XokOfr?&lwc5zmOU)|bPee59hJ>wHGLB1cts@Bk z%4GVtzfPN%P93uukQ*h=hVE#m$>|uyeQYorSCo1rLgt|dsUD%fQJ{ypge#{s>5)l( z(D4s%sr1nCnWhPR2cpg8_uZiH_BittEs|a@{t$wgP0kT7HJ&ugNlq(ylu9e{svAcC zK|mA0#h@(V;foHm-@?vHn=(?^(h8I;J}{OG*a&?j?C`^gw`P9RPs5ZIpyS(&tH1y! zr&V7DJUJA@oz~I)yR%M%)6r7%Aoei}EhXxHF7ya}3`hn*49gX<%LkqO0e>kSskorh zJz}Ua|Afxq%imjeLkWi))uX@s2)KO6;IrSN1H8)l^VIhS%YE!($Yg(ROj<-XtE8u! z(Vuwh_Jr8?Jz#*!*g5l$DLJQL;L&+V?>1%|Hm!5vA_@Y2e zIC#P+HZ^qXt-->3t!jQ(bn@@lvL|f=TS^YZKnAF&^@hF0?*%ICith>d?OLV&M1D1a z{)I!BN`E}ZfR38?na2;EH)L#q=;q`}IN+By`92k_x$Qv_cN z)}KG?&iL80>I)i}fPx#`13B?1+aib$hx-#A<%w?HpAk>ZTA4G6<%3wa&ZC zo_9$a+*k9ZNRig%V&CU0v)!TcJ*?)JpAMYItPeK4f=OnbJVn9bwYTPW0ba&jRo8HO zXfx%9gyx~<7s%X|@h1%maWZ&127NytyFOd5x|`o1#x3W+lQ1c>+y0YfwsuMY^TrdJ z|0!)T1QepK8_58UWn3)>vg*I1uFIOc%CI%X$DgnQhg^G zd>Xw$f9OsNaQzfL-+Gg>n_o}Cb_Am7nOlg!G&j7~q~1_wv8^*M=P)l?`>%j1uW;76 z7w2BZiw%l5z0mwmS>Lgb2i*DndN=s@m1dW4bBezc99NHrGcyUk=F-$rhE#P;|#OwHZR5xf3a|@Y2^GQHIqU@6a**6@cil8CTgtnuaSTz`bv>3n`LV`Hm znano#(PBbDdR18o#AH;5ZrM0sYKSd80~i#igBj@t#(br>zf{tpG+ zX2&oLCaJK5jUqs?02!{duL5h5GOjcYpx6({oYbcHPHb#^IQ(A_^r1w%OFluM=vCx& z%`~7kKNk)QF}~&-9QFxHJ>$>!WdWS{AGhxENV0IaWdkWzP z6~rpG^%Gij@#O*yu%_rv#p<$iV;QDq`5Zk1lJ&PeY5?K2Q!9R@lACF6wy$%dM>s+b4wM zJ)rT=DJaN2IHxA;jZxhrRtP;G2DaZ{@BSR@GdLUG zwI>SMnB5g+y%;uKR~YHYP4Xm4@f4)E@zdJ(72AJ{o_Ntre{g2KC}h1bX1zEtU1u8U z_@KBEV7&2D+V>UN_f_71OPF{uO@HV%T?dYID2#UKCwu0mc;?1?c2nN?>F)cg@4tmj zykt$h$fZAMvtBftu3wCFY$SVjQ{DLK@4p33ymU;wh^9aMWW9(rUC$lq`0PS3+0&o$ zri=Qfi~QzYXWv(I|1EUlC351WeBvcz;-zik<+Dkd^al;r3!v%x#z;qZvgbyUr$5zA z7sbuH-u_$g#ET&71(E6cXLo|59Un-ZM*%f8^Ct*`U%Arui0i5*0-7BYtP@A?=gt4mH8HKq@ zj$oGn%|!#vrSODF)zW%Q6troUyt#jD?;Mm#(L0&2X%@PzJL&BZmCHA_B^~mXQZlF4LDts!&*{ ze{fM*NC%aWThKyJXG8M(O75hsUJ%y588OoQ@(ZLO zl4OIj=eU<816;V1jtMN*XVzmW&ogM%ycS_u&|XF2ziWAb}MGrJ|g*DKrli zv>71nkmofRzN7$0-U}h+AVk8=y(g2kX)rG`qXMfI6g=euT30dl@!5F3EnRI z8lI}9aSUV9tU}ts`VNk}w<=*%UCQAEz|ub$vluOrG9TbM@Q#b1LYb0%MKCo`cNY|4 zN)Uj6rQ6KcBev*tZ?Q83XOjhOMM#KEb=w(OvI=!-8mM=*E|mND*kg6ZKW^Pao1gXo z;-a^I#q;mKCcFyUs~8|id9d5X+n$Vr@I9xH9}?vrJ=&|u7Xgun>)+nS ze5JEZ5`>bt-esA7hopF*?)Fbl@Q&N~2ugUl?{7bRt4La1<2obX^^tfwNm`%oZtKq@ z@+f!?go3+5^*Iy%thtc-fI?2})&}jiMng`j_nJ2iEc#q8cA8s+J=etBwQ3wnpqeqO zU&xL38-PJiXRZ&mEBMR{Ox@Mt>sy2aA)h~tkg=p0^}G$zIxOhNKPcMn^U4&(Zl$g> zY4UgKmtMEA(av_+caGuOZiW=4t{pDaKBiQ>n%xlAzqdYSg@zyyi>b!WJ^71!S1*#` zsAy4&=#pUq#A)a_P@Bo(p|1P!yv}-iWHHZBM;yWJ%7*~Dc3qNBhOme8yP;QUtN|Qe z;OMUVWvLx)ASxH7tQPlGbVT5&9A+(?d=@+&N;&3Zx(ZHwG@Lh}rHXVKC0*ZbU)9G; z(MZ{#&VIY#@7Ad4Zs5VMD>7Cg24b$bGQOahEN;vV-+#Mx2#J*PAwHLd{Zay`n~CI0 zJ-gy6TT9+%==fA#wL!zd zn@3p5%pV9ekqC)-79}|bJ-~qA9dg%q=A*pG}aNPg0aNimm+-nUQF6i zk$qL=Fa}I2S=Q)8mU^o0+ft%xwI!P2B$&(5zn^c)Jg2Ffu|H&A+9_JWryH;9brD#( zjUj3WHcMh-6#!!t2AFUV5Jz!gk%(jzCUYrb0&%8k=lY;-*5y|t3 zlCt*<&&w6ErEE%4R*MG@|7JVb24+#2N&v!c+Qv))d57Nn&(KJ__L2*0Wnp+caK z_7Cgmv-|zt@g4<&+ho&EZd!83AdxMG$qRfjJrEMp05$CG>TB=y>y|LqNhD3v(4wWi zu|_Hj2Hn{_ZUHo)&^q6OWzCBuis)euPi8b%?FQMEo236hxXI~Un;N!ZzK((^!%KuB z=?1^l&Jfo+e;Vuv;esKZzRg{$=Vl+25dZkAF?uw?J8~AC3jvl&8J26je5Y#PX2EJ? zWlHG>Pu*#m=u~-|CxRI(RZ1_v=E-+WPUBeefZ^9*+bs-y<{WQ*Zms zJknATvA)XT_l=Q94L z+BQU}y{1U{cp4H01|lh;+UIIH-<-p%yE4q%3-`;5>HP!8z58+Rt^HZ=CyRJ4{Dn0o zhmQJvs#JKQH6FYK+LF02Px=Joh}aI47_qLw)4n*SCf#?0FnTA^O_+2S3*pr_guwN%~yYm`>;{>etTf;*^I+UHn8SsNnhStJ|w_qIh<@~J@*!p}sJ^G9h$Wvf5+25I&A_uvWgw(m%9y!vBvxj$vy_*qkAiGOqxq8Wzq3$H6=!J zm#URye-#~8+Boj55l#FW+_QOb$4Z@%4oNVq>@aeAXbe;{V@_ngvLwaL6oj{(yoOPs zv_{@HU`CJ8JbKDk{fq*{DomGy%P*pg3w*c*i;jws^9cEALgYvrnbG3PCGyU)U@mZu z7$b*Qs&Zz?rv0V&4oa3!C?W`H3WW`}EJ_{?>;24WF&zWtjcU z11o@wObVqE$jM@$Yb7L|NIO`vkVt>mOQ=oevUJ%o;%u7F(W~SM_$ED$eM4e5W7(^=?P;=VT+FKq@u!yAh5$w4GA*FrfN{F-K|JP2q` z6dne^)eA=!Nv6m$CQFypW7MEa9f=)s!AL2Ylh3msHI265MGXBal|K$i1>Gpx7O zbkF;Pow~8O%mys=Meal*FIcibGmA=gX~=WXXT&0Xh}Ws)O+}{I0q7-;a0?#VX`kua z-dCL?yD;pLq2U$oqb87;W3-c0N^IV&L;Z|be@T7zwwz+TekP$48UjL0xhe4A)%CSD z%u5J}Pwox-NqC8*71&z#30S5S@v7uCS_hwvzrbs+eaCOG`qN!8$>ea|WW$;i4fA@l zoDf0(7q;s0k%{^rfyMalGh4n3R``J4Nk>-lXdB;n5j?{9mElije6rlb$I7)xP0b24 z%bdaz%{E_!*{jb5idl(OBTdNyxAdn!eS+L*s@!B*O^CR0G+U+a#xOHd}s8M?Xn`dj=+ zrKI9BPf7;zTlE!)>obqhjiGeiZw~X*F(>nT?5*G_j5i@;?_s)KWL&iFHeRd5+|yI% zdb&K(s5B)j2sXV|8duZh3bei^jpj6O&71&r_5H?J_PUJuOFh1NoL|>{baVP*LY!wf z9QsUKV>V64Vr=iRae3z4t-cLk9}QRD+I%O*>YD%gJ5oQ69`jPeeNnN@XJ`hR*P?Cu zhUZC}#kWs+x_Onal0Yw6n3vk`L|V2=~}B$Z(pxKc|~X8?N4uSVCE@s1pr>JTs)-Ab<~Y zhN^~iLBsm_?Y)WTBQ9RrtbqA84UaXGfKvYFk|8ThB951@TvHfa9h@u^URF)wiU?kx z0kaLp-#?OwV?xG}fkU?oFZkXal&sxB4*JH7J0eoVls}HIp67(WE>*F;?Rsa*vesc3 zv0Q@%X7@xj?I|n#vmOttyI{d9Ce^ZGhC#wd%xscj{yv)(EGt!#%sAt-;f6kAM0Z7_ zmG&hJJ!u2tqa4yH>0hu8Pk~q9kB%bZH`nyTr>``!)SX>9oGK@-W|ZRl?qC^d4s1ZZ zpulr!%KP6>8URg}(b($Y)WY8eL40;}?Anu{QxvS!;$N*c?n{((pdLh^ zfQ=Z2{#gmd3eP+52D#nt;`)CqFG&e=7g7FHQ#S4k-m7WKlqcLSHG~2ly$=cE$Z)rz zeD5gD$oEX?evA9urfc&jMTb?GPp0!nakc)aKTuE1_umrnh#mRYC!{Coi8`=sguX6< z{+sX9_2=%YD9(7D9vM;*Gid;rd>Np^%o%y9{WEKzznB-tcjE>JM0QSq2U zo@&O;Kio3W>`wy>Tlso%mcAr67m0rg>bo&_OCo+yWLanq$R;Kso22mb51O3G)>hll z4S4t9=Hdn<8`tn(K`d;ZJk=u+SodYDA~@mHP*Bgp8wdLS#F16u-cO&Quap{%3~Uh5 zGxhUFujDk&NtW?Kihwm^*grmJv86M;QaQMzhF3AxuWyitn;q3bbV+KWQ18hN_~QUFHAT{p7GM#nN;#k3!GLNCT;^SdgnUAaZ8ghEyrC%L|YtN7L>wr8i-y zQ{v!@<*z%gKjBCb5{sgE1=5hpXhF>kNYVvDdBR&q!iCE<;S%RA*suA5ILf|22`fQ5`PI{wOfX86 zZmTaR9)5^nC30GrjZ)n&F7{T3jbAK-R;^$YzrA-NUrR+PezuW|oxIk9u)cO(Tjp43 zfyGkVvs@AU4RUGz^oWDwY>peASG6c29$0!(>}&bwPp?B7dk;V}i!-B5;!h>o2w)x= ze@PE&B}H!#1#_({;-kZGx4D4DA4U_db(%nq@?NU!P<0tUlF}LPo7VeMofZFY$v-Y< z2EWR<>rlD7yjX3QI8!Dh=_8h(h5lXG_9#s?gh`2GjILR^)(8wM$^R)^M}7#0(n@!>lWq)zHCRSf6salz6nYre9a+=`Dt>3n0Z8or%|4NFCD0IPfN+_!Pu_-IpGjylI1AJ&VqW%w7)Jgm~A zZ2&FT4z!tJF2}dx1>&fGd;)Dp{`;~ds+X>WQfY5T#Fi0k=1pkvEQmhNR<1I+(p^<*lxaOvAufwK2Eloku;y)EMk;9$xP)n0`c}>U1>LDTgKytWEYW*_gb_+dkZkny`Aa5B0x-41>>P z%HHl9PHmE-Tv&BcGs_@Bf%0K>Oxe=eB1PD6}qk)77y4 zj6(%VW9N#SXap?>ekz}A@5~pfo>bN z^LI=KD>+X9w5*DB^E!SRPxy=@yL6dGG={@Uufv-9uaJn8J}c*bsZrK_2^B(-A^!e%1vdlj0B3m^ICY5C8t~eZ@>9-Gn@m=;+JA zUO|49Nm#TQs)@5ytzg`rLN$pQf^78RKU0c~$VRVjZ1w!>3T7oEO%`bYv?UXw0z;2@8=qv_W(YMieD~o_ zdMDKEglQ`wPiD^zZQ|A82#xAX#?rN>;8s#HL2>y^W&BbK0t_a4aFdm|FM}I!tHFUa zRW6;eKh!UV41{;rin2B$SZ(sNsdQ_kI=7wBN22--&8QYg+2jRTN&^n>b zZE;kNrV#?Bo!5V|GjAOdFGfr4XIdEEOa;Ljoe@a=3)RR?u3PY9Eg(ff0^Z-u(rbvg zC6*5^ERni-wToDejlvMMZ6$d=dWZR_Psm>}Mrv-6&e&3Khk_T!Q#M+V@tIW7kV6SM zzk2;sJv4NNAo#_z3!DvD4l}Wb_y8cap)M{ZgE^Gp2?$BpykVjq9AMUGjHPY)y-raIX1vv|?f(->8 zW$m`M)yOye!3Yh3?~(Yju}AEx_Jb-*XOa4VeO=-BkScsokYPO z#A64oKyg9atiF53EVOY!l4b3Ko5teLc?bQ>dK@|BJ=w%!q%Ix8c6sDu_ zzS2o3IczUPAbXFwAf$NJTxvstHfqS6E))Bf?qAxk%DAp(6U4E_Tk1uMYYdfVcPx*n zgO5D(o*pgM6APW6wN1JHQcP>d{BoIRdNGnX4Z$$9khzR1Rm%v&q-zoyhaA?l&9k+} z!ML}=dRIxknJ^_hbr{Rm3#s!|MV_06`}<1ncL9UFw}pa%3N6YGsAdVhf{z<%xTR+u z11HqiOuyQnIxPkkld(z0=>cjzH0vu6XTrUWm3<6M53^cw+K$@gPqmleR97rE9CP2M z-2CLeV9lY}`Tr=o>bR!9C{9R78ssPiY3a@xlr*Ry0wUco1nEXbNT=jLBqXJq4JO?n zT^lt(kGwBp}bNXp?t3&8??{(kj%nPHOe_U@i zgC&@@5`8~=8J|aYJzxZJ(Rna_t^d+%V#RZ`fcc{K1~`9`fjyWGIQ|WOS?-}R{~670 zDJ%beAk!9CDz7ge%Y)I$lb?af#cbXnuz;$(XvhOSKE_A)ynn_{l3)gqlDvp;vj zyTmV+yA@ZMCOU2Nh(2nlzSov9OMdjy#76ozv*zr>agPkeP3r9=ZQ6(`-mVN)Y;QHsttjA^-$!E_=4k5GPFKHK-?v{R(@nYn*g`wC9lc$>D z8cEjonNmv2HX$=N5A|=C-{hTHj1E>c{iUhQU+HBuUEO zud`<_m@}F?Oz9qfrQwwHSCh>LHHx>128VbiCb3pR-n%d{#686%P!8LJOGrV5*6hJ? z@?rtGx@+Fe?mxXSyM|+2$&a-5gt-sg-1V;L6v;p(1WvPjQUJX=nx&+vl#?<{t|&=eVNUu3 ztG0W6$G`HC=Nplxp4iJ8>0u(tCxIfjluzw9$-VFIIDrxePhkrtqP%YO)L%0GG@_jQ zCq1e_e7k>sH^p_@h#+f^q8pu$x9{xxusZFx&AnR;f8;6@W9heCS*nGypriB3cpu;4 z=}s!Wd*W;;@w$0DUu}rCjLxT@{#}W*nvozqe{`@#hs$H`KP)EuS=6VyEn*I$GQLvG z2cL)f4GzcN#*5Ea1b&@&-E@+WeYCs4W=K<7zYd8gr9-*=MFeuh2HefjDF zd@rshw#+Cq`#N2*;u#B{SH#t}-472beSC96gh^CXaK4fq9;9(WY;1e=V_xk0C|oub zv?!^&Xo*tjX)RtxC_nJ~AZtv2p+m%iwg}pe=!KWhM(DSJ+Z+;Szav)Djo2scs}t6U zZqq;QR7hlrIk;Esqa7$Wvded~R@A&v{@x^M5R3b0UHzVBH7hCdlv?tba?*mw1-bJ1 zv;n!pN3Y6FAtJ-`-41-zf$92Q!PwBEE>)f3C9I+oeWxE^sSID>8aK9j$m*9zW@KzP z{{qg+9^et7FfGe-5gQfi&_$b$UK~+%A+nkKRhBJ_C$-ozb~4-Cqi=Q+e(o2PpC55N zI9O8nM`OCOKe;J}DZT;EzQ^I2r?WC94}h>0_u4VAzmGCeX1*(Q?4`gwD}u6Uj*CXH zzeo_|-Wby?wEe>_0V6kq+vv~Wky;~*E}K%%UwpNf`5|yIw2XE=PIBWi%REh zoT%{qjAvzHdd%lyBR}aMoX~}j3vY>zG)MRQroK%Ktgka4O4mKqs#m`>cy9FR*Ywzp zjWm2y%7OP6s6Sri=UzxoN4r1*Y}3+fG~pRF@w6NGG7lRtuJrZr`?ZjBK9bwt?2&z**yCvyGmt?`i)77ZGtvla>M6F&+$Z~C@8g5{ieZ(T|7 zd~5zNm*ArNfc}k0rQn;?Ee2dkgyLSf^*vLY>ky&4QJjNd-5H?PZF+Z|(qRLh+>f?D zlHbZDHN!psZgsO>TujsFD(Al%0i^W}(z{1$zEdtvQ_4U*F1<6agBxAC%f_8C7`0zx z((%3t6lES9*_S#b{JD!3k@%#!O;Zk@D)9yCJ~5?UZeB8!RCjSsU zGUkk26z15B+-2J7w3V)OWa4SEv_{L1T*Q#vN7sReGcGEZ+E!DZQQTU`!B;Xne;Y!> z+SzP&4^^WkrVVjZpc7K^p}5!%G6VCKp@i+qF#CYKA-~uo$)VJ2`oUpi?oZR=QSnv8`|V#J@f%t^ z6yb_7`FrkCR%7ED@2-{k=jQ<@`rn4zidLMlQ3gHz3{wtuip2U|6ZSyHs$c=W>ZC@v zbP(B$XQkZf*PrMYBCdwajke;gj0m$akZrf;Ci^?7T&HkSayuG>GN)}&x@N!VTJbLw zoHWHLxN;&E_iTREOFk&S{+R}qqE4Yq*hBso|B8y*U!1hlA6!3na}}Lk+x73PF?|T3 z4w#i#%TG(IQDKU{;~z1-!VH%Ywnuo}1#A5}mjyXQ3%j0Bp) zl0M`=78vaF{eTaYl7SHWfj_V@M~+a~>9W;LFE7;3{MkFd*2BLIJ0f@R>`e0{)uKMw zj9fHJdiuvgd3)z-poEHHF-T1-up*MCaUX!Qp|P5|A&frGENI71CzXVo_Ng4Y zyOMT%L$Fbr)jP(K3*Db}<$_tD^35C@M}El`Q>3|iyV*mlF7AG{2vVMRQO~swLg=XG zwLazF(N+*P97Aq0Syk07aw+)vcx^BFYkr~wjZy+Sdhc1S?J86}W_VsvSnEmd<-o%3 zeO?juT`cFNTYBr7de)c06Rd+Bjb5tTw-2BP5TO#|7jJgTbo|dZ&xJJoKUw>J*B@Jd z8%yi_dzja}aVD(C{A~1DdE%hDtD(SZzHL*x-v(A?Xk#*KS=b!_3@nSS@i?*cFp@Ft zeQjLG2dk&O^Y$)J2FI>OE_RI0%#kAE6I_lmHO};NFZQun>J8dSn3VVS;L3xdO^w&n zou8!Xf~AoQ&zPc$m#i`YN5FQXj$X1_|5&|Fq;8=vqYXYMZx#y#qv_$C%qrZWKFkb-lY!Bdg^yk`sdw) zMU>5snkw<&-9Ox)Xk$vEl9EqKN~=1a%}-K8QU_CFZBlxt;L9x}u}FBTPZ#BijmO)^ zwh~DNaX-d8s!za2l(vVYoa z%EZ$!R3Y~Jrn|yFw!FgTPToDDz5P17Y#DhTRLz4;UTlBgpVdxCJ^%9ke)djh#Gr?Z zy9Y@QL)>$bm;gU%Hvfk{`qz zkO50|Z4Z%os;wYXb3bP1=9&mmw1ngUSm0knY&9q0i^$(Slx}=HEkABy|6R$a>J=J>tP-RL&(L=)A zYy1I8dbHUmEmLRl^H1{CKgRzy+US-(Ez7vI2x*whYTUN2=(P*TfBdB`za-Pk@)Nx2 zz-6^^h2+csPar3gN`;7P^MfSkdY&ZTp`Vje@UKE1S;sIMP6Izg%%ks%mkP#Gj|WA$ z+9fH@@m_pz>B;Bjk>p^}X$SoQERZ`UR{eHPv>2eWJ(AV6NK0WY_=Z*-7}#;iAH7%b z=ocw>Xq!)L3HP|ek?6hwt*FroFB^V7F6lXgLgF`3n$hIDQaJ^lJ`f- z3`bYl4$tQ|IWm>U-NFpIEj~3qP4^f`-flb#|9dtD)P3aA-^aJWE#Iyt?ca1{EJ`b+ zCnoHCC~zu$Kkny;JDl%VTU$QI5vvc#!M)a`U1rrYmIKW@mpe@fjCQ4PRN;MBb}f{2 z=S6JU`&8AZCct3}*}_|FlZbFmV{7)ySGXOAtU%ij^+jq@%B-oRx6o~jnn5q7{-y{G zl`a)C_^vPaJU2seLHj%F}9Db=Oz4veX4s zET^Zy63U8-j!%#7>88g8Negz~2)X?I8mHCpEt|LpE9J)9S-%K--1z+ihed**re#8G zW&(>dwL$qaZ_1q+=l^d~L2hyBu`Y6nA@{RKPDb^3`rv{YZc;<7)MJav)QMNe3e1gZ zyJ_#_WspzX6XYq8h>*UP9W$6Q9nDT#>5CVwx|b!7R)$E3-SDxicOxDIm#%(TrP2Hh zd@G(7Qq*{p?eJjHZJC7JF(zj`oy3mzu6ssE$-q~gBEFb|?_tbbM6K#B4Wq^bq15T* z&hvZZU#BRafTyaFh~Pj-26f3fDx|1_ai;wi=Kuj{LC#E%)^P857#bs;g;hj}?|>_a zUy91odGNW^4{LmgyQ9m->pmp*D)N!vx?nc>O@@xdu4f;qTg`&uRv+_L#U>G3g~mQ2 zxZ+1+3Ca9Wo06I(@{71N{EX*o>HF~?lJvB1i)$QiF{iuT_2m8F#Y6Yb(M^+;nl+oj zr&}%qx&9OxPPE2S9?$AID{HK^C;H084xya)jtATh)+k$Xai44}Scr*MNwm_w;bQO{ zt;s=az4YkMT=5U27Jdgp3yG!0G^X>!BrVaq8kuS?dT~mVTVyH4vGOVq1-c@?(6Yul znWqWecGNVKk^H(0-AE~u-zctCf5t>Vr_wT>K^e9t!E7b}Hlk(0nOgNVu@>i--=@B` z(GfLL+7x0vX9JtY^UE4x(sy+|nP+>rSB4qnZ(JqfkJnO}ecwX{Z?&sc$Ry79h&Fb5 zj;A&6romi5TpmV(Rg3%WW-LUq*(bUB61*eKuCI8wUv={`TsQQUrD#0rPwp3NA#9pT zlbk5Nrp%6z^+{$XpJY&j2fbYWTf{_Tdq-X-Uj1D*8Bz0>n42$7j{qaFcjWzz#ca1v zY*N}^dsr*IuHR!{OC3H=;xTijmfuC3JRwhIU^5@NC>w{y9@6v_vqBhFT3rG*T)z1x z{_+L{a(42F;*xlq6mW}L;OD1uD#`L01V430AOd!v+0r`{b+V@_y7zTX#)j)kf!3Us< zN5Vj3zQVIdQVb(=TU6qID*+I%4-caI1~6BtAL7qcv&`>Ipq#WnI=&^{)JX`Js2~rC=%7m%GN4pHN+t+;|%~i2(EaeN}Pt zIa!H$#~@IUph3$=H+Js?de^CXDYtVJ`GYamHV=_~_h44_mL{N=)8p0lqAfQC_w79m zwaCMliH*?QXMycrl>75{Hmx7RdRQmXb^KCRG5O0?N(I9)GJNy-cH&6Z@6515l4AfzTfn#(yhy`UG{LKNtz72THd-FKCm zZ|l~+6)`yOaaMi1T>gYnro;R;pk2@)Qf#7Ft!IR4;M=bU-egbx`tsV`6M)OJ_a$GA zBg3!*_;l>RQN};)Gb$2!C5`2zaf5q)sZB@r?&#TNX+B98OwVQ{Hv)pU<{_OujaZqtdM(UFRWDY`evbYp$Cav4hX={MgK`iy*&#kz~VoJH6 zthTA;bos@%$qGe+%eGpJTTJO0u(jSl-bOi|Ovll${6+}l*sqFkhi1ahcl}P3>N_UB z1WPTFbVulbNSCGH!|dOGF?nRL2=C0bHp08yRudfha=hLQY;yp#mo{6Dd9_^^$ag>H z@l^gSDSXTRFj7rQEqY^8fUQI6%7)yYA!(53RVGdSinOTF(h2*W^Q)kRv}gy%BF|>% zs73Ptbinh1O!nV78P+K{K~Sl2)rj94q$SsIM&vx^RZ#bWGCNo!1jq-xNbNy6LdwFcr2c_pmSkTQP zUvn&*fmX8`vTRQWp39%|#*3RlOH0qhI}25J$_1$6 z9;invxDs(yo;_d_{F9m_koj!*-a|eOzMuE9ZmZp27OP65tX=HZyr{0^w!xm~Ibus5rHi$-E&rJmzY$&_M>4?a>A8orvZEwy;`2)bw=Q&CTqAma{FRJTl_t**-J z?-E&S;pL72L7UIZ5+b7Nt;~azND2xZE~y;Z4EHIlU!B5%DjEU@Dn_jKr^_pfp&jkh zie%4q^c!cj1!BIt_P>xG&5pbNSo?coOD3eKC z#-gue8-3PUQ=;SjC9$Y>>#(jV2hoApAL_9PsfVpBMO1t|Ow^h&TJ&7=@F!VL4zevDI$CFa* zC0@eepCgNuVDa?8(mTzyX3@Xlj2q(T0RdXGX}29*KpVB+q=EiKu8(Tb z+Dkk{tTXuo52Cy!-G}}ASs8ph~HmoCYC*qd(~{|)ZKiOo@%qs zK6LPtd#u~#OFOfV$}M&J(eP$tc~%PE_ikhT@790DZCB-I3iVljG}4ED9@-M-HmHdT zh^X9o9H}OO>;CL@wDv}=kZi?ke`ywbCe-o9NcfI|pb*{V2U``=WQUEq zIZhhNd8=3Z7n7875BNs=NQ1lg&$G_L-x*MR5RL9gYHGV2WV-vK>4++_iUY_=#xv{0 z!r@B)ExrBKF9}0gc0kmVAl7ohufV_A*VLjk@8v+=W6tLCTUoYFKfdYVUx$2K%H}aj*JqykpJJIvP2!=(J+-+(oNF#|f1-M9$qo9-hSD z(J4WU?F%k{LzA5EK54o-UQ)R%+8?0Bpp1c^Q|2Q9C2t|tD=j;l&y&#+?;5s>L&1|e zd7YLh1C?KiiVSY+4~aT?tM^&%t&D3*w86?uUU1Yz=oj|^uIzZP-1XwbjB~H*S3`wK zJW}Uo+rI}3+fK38?zWeVP5_fk$@3-`nM<_6`zk40^m>+^$S;_BTWWnltjK z6=MLMh+f{Q#WN$0H$7>`+69JJx&a^)ftMyb)n~r5I(#?MO6O3(Fw2-s0O*NWmJ#O0 zRBp>v58x5)96@>bBSJ^q1)8jN%Pz$oaYgTG8{KMlabwrmLOpA@8x#nlkMVjxhwr(C z5nQ@b&(}9rc`Tt4{@3RFm(l>Ezga#UhC@`S8I!y>Z=|9oLlh`h9|63&9Q&c_bNf2u z!M8_4YRrD7s&TcAh-h;@cYN$joseZc_>#8oZ`aemz7=V}fsYUM)gNnTZMo#dr~KuV zy?`$ebEdQWxL3g>E@CAvv)vqX=f!8tzE2Bd5K{+*=^Sald{xvhLGnJhG0+}Aosk47 zdnKV`M3S~AW1v!yah9^p6x33Vm@eDwh&p^;VD~)~O{FUOkR!e|lJ!WcO*Bix%%j|S zK_^+~(d_X7gw8kjAQWJEm=~=wHk>Z|QSV<{&6|6rIceOCx)fX6sQtYwlSQ%eI2P=0 z)`Yb4r#_IwTn6FOyL=N4veIu-y<(TcXWvx4U>rWqNY%BU&ZN<3?aS1>T}95mMU)gp z$NU?RP>=m>dVifnN72&2{crNah~LAN@&yMk5@mPPc?65m(>BxkD8mU|f!*XptA5{- zJFgpDcw$HuM%U=KVZ&v{>+e&_xi6i^xYiC%VPfCYaB3fwSkY`OSYEv*!I6Y8yJ+6is-CS4p7(c({EBFk|K zhG}0jz3Boq4uOnadr5_0O9t%EI}c=O41!)>Stn zWYws>+idKtk6^}AO2dJr?W(EAWR1tKxLL|M@10nDXL6TbdXT{9dO3SPg!tpFy@w!~ z93ijM+x;sMn+3mAS39DURbXKAxdNYV=Wl%qQ{F4GnjHE9JNu0~Kc3_-te&s(cst96 zRJxfDU@49t!iL-??L-c!U*5>Syd~_Y;k??Jck*EC0w$BT*`wXCs#U!-E_-9;4H)D6 zUWD$YyEb!%L-g;nYE+6LEd&?;+1oyU|4%bMWtsGYLB!{sf!tjqcirSCf@B=SZ|l9J z^zO9e_6Iyun;z}GYxAPkh&nf>cV76C^K~CjCfbkBGNKsOsPU40oOMO(wT0M}Tcy$> z9r(7 z@Ad5!l}fI;T4=+^U-zT*N}QYrCDezPkRt4q1qQZu>3WgWLCKE(9IUp59stpk5fVRo-K1%lI`HRC2`kqf;)Uj$iq~ z`9A39?LVatu}*h;h!5JB8+V_r*F6PVO$j!);JMfHJ+10Ac!bByMMhWT>4a>=UYZqe zv35|3KZ$*)UPzh#%tSfAa^|Io+4FxfF`B+Ft$y}ikOmsFC0>d?CR3m8>5UM-(Q&SS2LtVsd6S7oqm;>FEj9JI^I_L#q)NXeTwJKLQmf` zB*H&y%-{B?XXv-jPxU2@pH6S=IJ_VHMjtQ#?|)KTq$hU8x*#O=+;QK9E59Kn=>ett5}gdsJB;UM zJKl5;D>x%O_ z&i0?YpMxsoq}gAcz&^eD^PQ)uA@Q>O_!oNz!!xLR&qkS=);c<>sSB$g|u?D z`UHtU5}aBtgTY>p&!ne5Eq|)YmI#Z;W38^M=uHOv>~O2udrCZTLets^o2H^xmJr%u zUCM45zjYKn>UKdb8=a#kEd5UW=*EV&8^c%hg#jl0{6EVb+{xqACf+9suDR-WPQFP zFf|}c{e7!|<=l*>pFxuFa$y;J>ZMthn8{;q&i^;kE;!^}&yUw2<9Joux2t;m@) z%2e!G?tZTymfc4!PuCk!+gwu+;d@ZB0pNq{IY>{>S*lC4$oKJdR*=4+cpiT`7vhx_ zS@Y20ewHSxC!{NpFNB4Y@W9CG=xA68x-`^8ry~4MQI{wEXQuumi-vbqU*WjFX)TXu z{KQ_hzu(M7F%oQm-&cun^+?dJmCM(0lLE%jC0VZAoU^+SksHkX0ha8W)`y^YS{z%KYd}~8NeB!Cl#dn?{P~I z4}G}a?UezWpf>^K&L_v!Pwi$v()YZ8CXJI)8n(-kyxe0WtNYN_GMIq8o`{GFgV`sIC*sHj|Z8H+M-hJ^ZYmRjPNiZ7_{|dx#i}RW&*3u6q1L$_gyu zy>W&$6tcH#U}`tKAAF$jDBZ8pN3HjFI49Su)1Ur8jmLaekNwsGG!P75&Enk|#J3 zcUSW_Dz17!v(Gz~Y^a6Fx*XFyxYCin=PWk2V~N3jDcK=xbmB;61e`3Og!}Pac_E8+ z;5PXUJsDZ^1){pdjUPD?JZ=`v7t} z$pos*fls)oaLVoWyq$n%ix8Z#LeDoC@Pz8wDLoz(C>w#DWCae90T;=DkLZ=?Hbjmk zFIo$c_JE#zxeXbo+t)lfsX&+ zh<(ExTtK3h zf}3YwNq6{~YPd;sL=?rhu1g)H-85!~+YYBHK78p}Y%JZ){V9u%n0B@Q;I$Y_Q6{i}r044Y~CPV)jqy=VGeA%mr>x?yh`B8Z4GNyV7( zPAu8y^0GJK3RCKK>D2?YNZnEM7}|%V`HHQyJog)`GYZPVck>zFXIA8=hCyuC$iN~j zC-`36O##w-C~S5pEX*DwVSj-Qey5s*6bC{owjnhLenEfBoNrb&2uo3n2AS!Vg27gK z+_BVl-(;q!Pwm1UhP9xRL6Kkh3gU}A4bsN#Q{gnTFL8Q7M}UjLITIN_n@#nV8xWt z_1a5OpU}$bE8&vU2I>MU*DF*5?zBZG07pm{^a?}zj#4Gw+fOHal7K@w6K;ugp8UTwDB`&-izqId*EG?rNZnnH7)xioF{(P~`~|Yob1?2hUJmiTY%}`3*X! zu9Bz=Ag(?b|4Ub9MbFMDh28gYlSXJ~s?d%|!f!j(yK=-SgK{mRlKsQ?$OQq+9K{M$ zc%bLE1~2rVWe}sqO>GRrY8Ap$+yb(ItK7a6#2m*AVO@X)UaAE|m?mV_~vgq5aQiNyS7v=E6|kx{g=_EFt_hPp56!}$^&NEW8iJNGZdsF#fa zE0cYKwIVb9T{_0IUvVQzp|y^8Z|d&0TL zoqz)PBIf!fFZ3<0j?n2iPiLP4mI6PEJze=fW#=eVt0?WsR{#%MSL zdz0s9puth{FLZm*-Yrl97}%J*Y0+phus)6-H#y<@ju;0N@K^5N7}G*jqGpa}(VA9e zmnbI;YNG7Yh_((GIrG8=)5jDDHHV|{aqCb6I0R4B9cBTqv&Sr0V6Z*Z5HV*=&eIW; zE1>7({u!=LG&n1J>3B&n(5ebqp06IkL<`;33xrz074WXo`KMvEV9(gu>sYXyIO7r> zEedN@iDbqmtcN{?PhL}Z<2`BVgX7nMRme+mT-Y{Y%UI;-n-~liZ5>1-!cQ6-O~xSK zu$mK^35N7U?$%9%(i!baz+ryO{ie>CG2qm7qa`{8jE{1sbX!2{ggrU(bH#9!&t98b zqPqd1H_UrCB>UA6k3X8Zp5900oJjU-9Z0H zj9z|V4G+6Zs;vf@Vap5YmI$;-MfiuE9`5yL3{MN zK@DgkEDenRrFpClz-0;x^r*p^8zOwu!G4Wik`+jA#>y$<#N!2#{lJOX}< z&4LJ$a4n!gY{HP|hiykuXQ8cNG25+03hCfL9@ka?F1kjR-*XSTqo73UB0}xt?^z?C64UX<(~f*(af8 z$oq@_*OlN)F74wH_#cetzx|t301oIkg>96^nzgi<6(J{ogm(Vq4SNF5GsC5TkGe8z zc%-p$8i8RwV6Kls<6-S!=+N@jM?ff>@Fcx62C~%g=P4~PRIEG97#=oy3tujSwUM2~ zslkE$%lJ`1&jR3WW^>6=+#Z=5Xv zXW0VlSc=BeyJGHV8~(EbAqgr%X{s(!mKb~vc+&dj=28@kH-qE3%>4_LhjYRpU|@H_ zdfhzwI>&mU9T2KT-<|A=N$}gd5v9d*{)TqSU=LdNZVCWBS&34Y&KUeV{e9)#H2e!% zC^AGEFD9crChNaGgPtNi!~M8iJZ@d`mo$TiwSQh0^BLZ#MCQB;SN0B}?b z*UlKOMgJ3GT4?sLI=!?1kwqXr7HsuVt~*R0eq{Zj?@|UU>=ulx(ZK;-+JI_D{G8T< z1~#XogwE{K4g?PJ5;|tmdQ1Na-0=ri1%O*-A3+uA;J$(J7}GNx6)iMo7`5Pn(b1g@ z%>!GF%3`^u(I#1VFItGN_|9n_Ae1)UG^`k@VjYjyh8y(6334X+?4AMof#^GEW9`F&6o2!LKlc7wsHtzFx|?$a8I|enYm3hxFeEygQZ) z#8-p8Rp#hruyy7FkUA%MF8YlbkSZrm9gg<|bOW~qltKlzyc@t9KWPLAc;syPt7HkM zfNCGH$zW;cxy+@5M^(;xCVBCMkSJ(|2uov~ObQpAFt(1<*OLTw**G1z!Ntrqms8vD zb{511vobhy-AbSab$GJ1_TS<3L;0fxekb`OF)8W%%imXkP>OUNQozJ@P#ridX_)^h zEo5?j|1K@G=kvPf9GbXHK+hS&S5`E>f3)`WNNgIkF6J?XzW)Z=X#j6u#Y)gZ`WY4t zI=As<;A_v4VB9;rs6&y@uW4VbX?DHW3wVHvtc!fzAOZ8Bi*ACG&R43CU7=fmiQj%& za52xaD?exXx=Uf1{L!mcXH2`>1~QZuf9j!)npF&uO;RaE24k;k32sL55*$42DHD8> z>bAasHg}l5jvHJ&Hu!6IUV*e)|9LRY8`cf>n=HO`wLF2;AU9UVmZ9KN--eg)0HyY4 z{|l4X2Op!LJENS1n+a;$raji6!*oRV}bRcwxh`=XZ*20o1hve0rp4 z3BMw6f;_&qA26{1C8j+>8wb~by+it!0Juc1>Fa789JO?pr$}j76gX(9BQzPjF@BM! zT8iw#LW}+vUkL&-3wno}?99M(S&ZQE79(MO3`!HDcmdkvLfs<+0s>eKq@6 zK&bEvm#zzj$lULb?=W7K*6QM2U|1bEsB`~DQwIBys~exDgL9O|j_B;)=l~{GR*s~* zq@Ep(mM?pWPC_-|RboY#bA(`>bse8WfBvFc{sInp|8HDM20N2k&DFlWQGrbV!l}BI zh7YFQ7`u=mK&QqHXp;;UD|mXuMQE}DYz6PRGzZ`|jn29!UHwtPfp{faPy6c!VKe)L zn5G9#Bte2G$HSVyT)oQ%iG=)4`j-Ix$V0B0d32pbXCxslbIl4{)*>w+z6IdZ^R0KZ zsKdi_z{I&TWETBE3QIty_st@`G`1UBdI=@8NkO|YaiLkp={eZ0TJsj}c_YR-Jqt%3M;sh;T7wT!a2L^se1-X8kLh8DPK z5g3-IgCp=|yFeqw6oKDJtq2fM4I@CU3!e)(i z3Ri$o%jEx_HF3i9mG5;E;$tnO5PbS^l`!b}S5YOMpUf{u0EU5T1u|F#lR|I^!j_=R z$Y6hG;LK=a8q^bt%^^5srV3DKa}7Oe+m_RB+TxPW+J%%OEx2BnBPWByrqHyu{+ zFdwBA=sc*_szVJf7CVg%vN#Ddgrgd6at8_I@mb7O-qUl^MgE9+V*w;ePe|uoP%Myu zzN3fyOUKC)*Ew+MuFvDHnl6~~D!~F<87zvcQifsy)O5CZai!kj=Jmv{ngYz)u&<}V!G zCd8!@fz1}KgK1H}3kcv-kS+8fbP~VE)PAFvTNQym9N!Q~*}I)k+7A5RQ7h6|V+WS& zAA~rbE&+sY&z<3}MXv}W5uJHLr*>>ZKn)y_4~*TwcLat|_@5?n$_a!aO&B`xJGu}A zn@oOdI>EiZ_hv!s`d}Z$BgfO!Q9sM06U)}l;Dr#;jq{XIKb5T$%MGuqT1Z>)g7E*{ z;OXq2vh*7Fnt%l7J|88VmxE@=st*dw?~2KDvs@y;kn3X>7!pW;B!Qr?c%Yvr$vgG> z^P9iAkDjnRAA&W(6H)>m>E6Dh_23f=VFi|+mhXc*4Ym#NM_b2Ns21Z5|ZY$G;w`+6wKS==_*D99*e|OmZIzqbx&npiArmszzNl|Bz z+xfFla`|%nGeka)E!_K`C-KBSo&}_jM}?OsXCg^q?S%?d`8P)V;YSnMNTB=7AoTOm znKM=XY&k7RA3_IH2$3ZG&5odpl{kOakp@%?(TT89|A!)W4Etq+C~XQor$hWnUZ(7# zZ9Xy}Ayi7i)_(nk+?v2uK*Uv?RVu?wg&o6QQ6v6XQBiPeZzZY9p1govrr;ma%U@?x zMWAN9As#$dx0U1m#f*k~hniCd&swvFGRR+|{Qhs_H*AUPoEUVWS@6?`FKl`NHt4O; zkm~2tc(MRZM^=eLMnrh3$Ko?^6#9`a|tel=aK(e+ibJkiif)UY9^jEVB{~NXj zg9ey_A>@Qg=J0Gt7P5q(`XdP@PSYMEMz{u-nY9t`3X6|KoJ_*-?r`Smj_Oy4)FwJ8 z5dEb_Qh7onR1)oeMq(lYdKUw|BM+qrEKkHbAX;a-u0F#8IB=l|iuob57;Li59>ay; zqDw=hlNt~#II93P0zLlnS6R{UP^dQa+dm_gma*{AXP4H*8ZGIxC=#!JGh{hZ52%wqHX*kSP zpx}rMN7THKOca)Y@kL;JhN)q#FQI4d2rOrB3~b};g(zB5*y{P=D`AAiUquq=RS@f6 z66GW;>R2{#fE2H24)!FQxcNj2gFFm7kAf`$+e!T&G&2W9c;mNe5y!8RImmjlu+CN_ z$wePEQQ^#nHvxC$FG~QIEhjc3{O;k6z)CjI1U?RyJd53WkB~D|ktN3{Wfbzlmg>xJ z=il%z5IN$9$6-rhopkcoo<|ftc?b1_;S@W@-F7^9CiKqHC^{Rqkd%!)3a^{Y{&(~5 zjlyNgvvB&iPfz(^?Obzg80WxZsvJxsQ~>Qt zKY~_cyZR18>G1%g60zN|Q&*?LUmBreXxD!)q5T@TM`*v=w3D!vA&Q@7S0VwD?DtXT zJ^bi~LgTQO#9&c$o^wf?5ZhHd3{w0L^%Su>8NlwpaU&T#q=B$BMXh& zJvJXO4*+i7g&ma#@({~kcFsfqpB_mukfs=_5Rj>0CsDLd z;NOx6{80Y%}HtIB&Ahh^Zl27wXuy?D{T;*4<*5ifp;Dia4g=5N;(E1yek+$!wS z2Saa#p1HH)=w@U7p?c#?LO%_Jj7LC1b-+QSC~Vd(EX$!Shzw2G4HlG`SV#tgjAsS@ zC3~lJv%(zVja#J;X1ZckC7rlBWkc}SWgx>J2?Mu_#6hO9O^s6Me#i(&3{k_Gfh4@1 zV1Zbe#u`bWrOwvJX%Jo0yOL~I<`D*8_~FUKVh{0?z6c#>_(W?2#SD2W7l~EFyAiw_ zPZ%+VW80C=pyk6m&sk0k`P=e^1r1f||7RB`(uh1~ToXISe_6~%1|8Bw=S+%TY2%<+ zk2=7U!aRAy*0N!BWnQy>u*T2~q=TTzUl$R$d-&yTo-h)$Aan#xgrIg>vlc{u%qVOO z_bd+i;6c%oJOK40hCVa}TQ#L_&|}3DFQE;ocus$SyVEblxskk=*Z0V-V0rl;Rkf;S7J~h9+3RcS=B~}P!gh;IJKIC1>jtH2}f_~ z^HES)Qq)zQJM5^;7wwGLm{rvhBXz_d5F>C+bSPV0xk@=8DW?`Lf?D<;o;Wn+Q5F@5Vi!7qQ)Fc7*8s*UD?CvXG67J!%utO<%KtHY~4l7F>LTh zK%Z^RFN8OS{SimUNr#~z);k3iDlWwNTXSTX`%OaHIVJ_%hP4n8Ki*#NfN=*|{{aAE{O(!D2Oo%T7E{ zGJoI!bN725C_Uy*F8|G<22Kh=KcF2tt)cp0cI4W){qyjd$Ob89r3pIqhV6=w-)6|; zPu;eeiN(s#MJ|_yfK=GW-CW0IiC79)UJB$u3}HckecpIdC@s48YqB-i4`Dg%sX(BE zM`$H(=V0Re!D&teYA*zv7k*0k;00QA;RQ|{bU~_o8;j%IULc#;I%^I0Q+*7#B1RqW zUcyG5pc&z~o}D}*EB{U!Kk|vKsdupMCc-uWm>TJ1We&_zmA$_Nh_iK_QaSyCv7MPP zLkptBY&3;UgtA@9g+tZ1vOV3lCrP0B7uK#4u>UiR{jXa4#UXl<&@b4B_rtxR%VfcK z4*46WG(rW@o)uwj1kSpP5Szv>xyqh+l32Za40nw12I7^`o`O&?P1A=9;TEDo!YaEU z64a&7X2hi`9~>UhXjMgYK84e_hb>Ktv-xu^m+vsKUCF?BzIVBiPK3r;!fb~M>BAc# zNLvI%Squ(c8M3;i8Yf$p$Z5CJrLRQpzvCyVJf)#Zfq68-FBM)st$ajQFZx3Gf0g3C(G!6XKqqm_T+v9 z|Cet5jHB$+>VTY{^rc8nbg&*iQ=!SR)wK=!_quh&XKvl>>45L1}^kAt_sT zK%7Thq&;B`G-1Tp)@VsA8|WQ=OKx!_;Ko1-(N$PZi+=hFIJi7iP6Sc^-Jn5?!Y#f* zm=7l#+4BIIG4$W?bcoe=Znt_eb_3{1tu#Vg?!y99#xHx-`LF4 ze>oR~1aMxz4|AODx}ZcTuXmBiuSl_CFfOdM4XF^);78ptL3xQczr#Jho#(GaWY2`Y z6e9#fuQj5%sSs<4$i%9~CKiSloAe+(SSN@ke!GAPAte(H3%~|3g5H@*-IuSc`c6iu zucaUe4^o1VB_^DaOe{CgPf93UPlZ-Gu2W209ozz40I`($H;mcgryaRW3MPbezeY52 zl~8~#Y`+mX0ySg_1qOnC$*pim>1B3ZODcqdfH!C$!9%8voEUd${P`n7@stLw_o}Xk zB7b3+9ezfW7C5moglEQxuzd?Ywf02Sn83ZL!Gw=33l1l65&V=V+?J1 zphTDnZPs<7{Drwy>imW1Bch2=C@LJPaeB*^|1!!joGSG&}U+G&ufCeL>g0r4%s0d|orl*QcOp@s4%#=N9~D zrBOQido^v|ViXZv!G?N%eTohnQTzO(0l@)t;22ed)Qw>Rz|9j)oPM3$FHbQ93r@aF zyJ<`xu87-Zx{3h32d;<^g&VE^1z{(!ZnR`0yBOa|vo!iXH@O(97nh?k7YsyG>e7s?ZJNqYTo{FFxmO zW7#ua!W^SxF}jD5fVv4F+?Y~95VP7^Ln`{O@~5+s6kGV4HrHYI&%Ro7(XJzHoMKTB zbHa)#pzH4(c$%4{r?h^91r1G{R7?c@AnHCwExUUG^!z2t{ohG*qkYV6?D&4nA30LfPR-# zh_wCN<4Xm{vh&U}<&yr=NAb*x90LzvMbP1;4|G)db{@C!;%r)+@c_=ai=~G2;x1#i zeG6!akN6DiK(3UBvbc!+)CHS=wBN!eSy7-s`f!LIO4cD>`$q!^KT2&m1VK+zE~K zcMv}ED1YXq$~gd5^+{)T(SZm&3znw`70x~uc;jqBz9Hab?Jkv$F=05kKE<4d%yuj@ z8Z|Xa#*(6Zi}s{h=m(b)MX^Y2XGXu1N+{q!T^RhFglp;4YS@~D)d-LC0ZaP;#B0ck z7Ixe244~7-4D5>P3&U;;2XZ}9uc3FN$&Hyx3{g1%B8gRNrmL6^A6|53sCia@9;}&n zuHNsx>we*SKrUR^ab!mu?2K6<}(?ls6)J`04}Jaz!ki9%j^O+t5%WP7Y*iSorhA%6zMqFVQtai$_6m{w=+Aik393OSMy7&Db z6o>2VQ2b&Oi2B$Bw}KB^P>huVQ5q+Bl)rfskf;U&OfoWdpAAsRvM_e)C4STF+TN^b#m!rZCVDQWW>%`YB_%#K=gs(L3 z!SP~|^GgCa&b0gi34ky#u{>2FmlbA`!E6qKvm_wa08{-Vid}M}^d4U`Cx45GYWQ># z%HwyE1U#&fClayq>>o|EL|1zqKX$dLhG@E9nkuInay0vNZ4GDh=fViPWW`c1<7RY(M|EINYM}j!u z-aYaFjg#4-^0TPJ^JGJGOETp%om!H4CgAp#r2iQv7(g=Gz-EZurka1TSWl0~?0hD_ zM4xHwbw^?Jmv*9Ls$k;1^;Ftvt4l@EY**)5@ONf(q^a@j=W>2JSj}q41)_?5P5mXj z&3K~M9iaSb8{kC0Dz@sA;N3<6zprhr$MA|q?quM1@I$D|0)qWBW*7dE5E?h1{6aY z`x;<8SnqP3WLhH1+ME?kzC6%9Km~s>8DTA2daT(1=)Zpl&7ozd<$>^%@bY+Szw@MhD(AAl$0|o{~gO<~=@Dhz^AJfV4l%8)RL`EvNyo z%lFSjUH-GJXv#uim^Uzy5J>y&sxm8Rjfhjh71qgboubush|EMfY55d68AR@+_zB%0 z!R9#?;+IL@*X zxz60#W_nO8NdDFavJ9^3D6+vA-2_w4^H_0c6O9Ty+XUtI+iCjAK}b=7VZC(PDa6zz zujLw=LCnu%(Aq&g71Yk2;z#c%Cm%}9CWbih0k+*WbJ9dobl}-JGk`1CI%@v(HNj}X zlnmnN+`k!FkT(aWxTuBo&s-S+xhMkcXT1!ugf|MQt;N~^oO#g<4uvw|EJx=o(m140(vZt-aif96B=sRCJ`fU_0f z{I}vwhCZA%|Cs{zajgs97CWuk24MP<0l-bwajTuShf=Tkk7;9P zF>rpoNBGc|CzkpszegCz19ZM2hJ~^r7o_VCTvZGs?5X!mw*HDmvx!hlBmu-g8QMj+ zyOGQxSk`cgD!p2(#9|M9+iR#ej)QONH$B|yJu~KlX4Ir%HI;UX&sQF(<^(@|)Y{nj zXgiuP2ES84jmYTRP(>G%gfB&4bJim#bfV0!Q1qhy_U(Q4cVNQuuWOM)(Db8(yIRpG zb4-{a*h&8w=Z6)xBt4?hELdeKp+dbo7&5{7*Cq7@V4V*5XQ^Q{(}D81oF1|_ng?~Q zeF%)mSzTeHS_?SV#>H-gq&V9CH z(Y~KaTX3+D`PMc2!LJ98-L%Wt{Mf1rhG^&CobOmgQSNQ1bKS${0#MTHihBXd}U zsfY%fJS^W9>_Fxcl-u7}Ag^Gh%oti2-~L*(j=`anFc=jc&y1iYN@ha{40zczVY2R- zxPrj)w}WFPvNr?KaI>KSoNtC<-(rQ)t~A`m?zp#FA+V~Js8BT=eObOdXg<5I-v+I5 zNY+G`Ub^oDMoLzN+S3rl;`RctPppS(Xoc>b=v*L5&Xn#-VPEzjjzKt>$0-{X#&ql2 zJa|6oU?e0(Eq7z=i3NrQ$$OS?3M3T43VT$jGi_cn4PK&_!jILlL>%y7^U8FHY&h9* zdG7#a;JpgIkFiOk+RS;;V{4ZL{n3=qYgr7MNe72F0PrUbnvXsS%?1%KB=9^3g^o3^ zsH0mRggdbzc_+Y?Q5tTLjs$e**m+TGG(vxGWrv2WxRd&o2XB?89UHw@c&uU&ooPin z5yu(URTD&UyLG7WZVwq>J$RK9P~;_-Nuj|TP0XNtgAGj(-czYSl@Hj?wJzpn4E7*hXtnEx)(?V4Yh~tE91Bp zqw8(kGKpZvsJ$FrvIn-*O+b|$`q)FY6|HL78p#h}10Br^Fr_msC)&1zRsS|BA>;jX zekj{0r*d~+tQDeO5qEvFw3E8vK7suhOy)lmiKRXrZiI8;bbJbfz-^hMKUt8kh{1MX zM8V9!4mxQR>cNAXtJ6N@#-5HHhV$c7trNBBgv<|lT%&Z%R~9w>s&uD~iH zi*%_O7WE!cql#0im1F@<$hfHSb==F~cR z1a$!_GN;z5Z&axjs(M6I24lD%0HQ<@xz*7qaVJKi&q2g26>KtCfp`&@RGt^kemvZG z9*O;?w5vv~`Ae!@hnh_s<${HMEf__K;a0~JC8}yB<*VZT69uLuu&#}B?%d-OF9 zVsuF5R)iyiX8z_7E!sHV83>*)@54E98f9=O7gYP0l21LK*~VYXwiMCAjADVw40Ho< zf8vq?Q5pAX*#J<0MC%@B?Qox`TS2u7+Ic-Gs)&mwWqt3S%^k_I%&BG z^$p*H(%}eFd7e=PpMn~xp<5CPFs82fF3-y7f+nj?3>A@f#vCvvyAu%<4X%r;MhlI( zqD3FgR!E-r#}-(@H2^x>QjfWD&yJjiLecImKHcg-mG)LKCfdA^bb~?%xWdPzn)-v% z@;L@-CtVDWCo9pT*_R*NUfvc*C#1J@M-mq@zPFipUQXd;f=Qo&<>{RaNd--4Pj{i^ zaI9E)Yoj3E*T5O?gf$<54clT5-Dkh?H0?18ffQ_F&XVqeh2gjWR0%1StE>Akh+mR`ilL*^5hSbHJb)jMV3 zKK7Zrz&JPlPI!_yb>kMCHy@<=cGOkE??+%_Lf+KhKTV8{nUjZJG}@^r1JKKOt_t5! z(9r$QFc6Y=029eX3_suPqQ%C#2`?c4M09M9<&dF7&%3&Vh*x*)FpNMDgM?BEneS~J zf#%~^b1b7H%8<^V;0H|HRC^{HH`vvZglB;a;EEm4hk0E?+lK$jEKe_V2d0607KDjJ z+j*rgs79+6k^fj=@1?Olc5+>LZOz68nvb1XF~Y`|>G&z)LXKK1Y|xo0s8CtlhLTe& zzgk015)~zO1_Sg+9w6{8KuNZ>UpSib%`}Dr5;7un=}$dA+Zp%uVj+s|JR9c5%N?{x zQ2E|ndO=2)cJ=rP`5|W3Jg(!6W*|U`eK3|Atu8DFg3Ao7RfEW$s++M?z6O|1JPZE9 z`R?OS#kOr(C#Ed4WThRuVLmlVJSe{l^9U?-768bfJGapS z9s(t4TxqY$e01h-M1f+f+~++mXQfJc%D?d!=iH$zQ@6+HSmF6{Bh#K~pWXS-&QV0l0_dM^Y+MnH@ z8LE=PS%w!}<7v#y@4t-w)Jxd|!4su(9--Uab&8tMn2+HBQaI{5-vtlsy*eR01NJnT zGz2m)JlVa7%UI4t(BtcYZcQw@peTHa6AKwV&mHpKC4h0Ry?c?=_=nkSjL6h4Sgi;QMV-!uQEju ztRm`|@!|(#)pTuf`TcX~hKq>H_-9--g4fKKUTdM{P0|-$qJ4{w=MB6@&lGcl$nz3; z@>B(e$G5Qqw(w&!ULS^Bg5*y0cQO>a_aJhD4gXhZPf-9W$%jd#&Nn9&OQB;&BYv)w z#hy1fVI|$?18?HqS|`ncknHuPThW2%7`EIoM2_h>@1;$MU&ihqIo%ei@H1Oe zz~-_lqt)|(69Yj`K$k!4WdgYheOTr+M@y92q-=x9*N?Xn!E11`oysYR7b>~~Ia0-a z;=*7bN1;U8tD=X*&JxkUap0cC=%nJ4TinoPDc)UrBfOpV5(A%Zae!tn;ibj;D z6P1B_8EXGB&anDy;poH;Q1y#*)Pm0;MS!VFogl8SsLVv-3Sfb<1)>8Ce3sr$Kz<<;&7-c&QXa% zkoKEb#a);&+{)AjYp0=NFCdfqj)k+d>o8FCjxAjI?89R!ox6l94dAwX;$^KU)lVmK zKuD`a(BN1*x(kJ}b+Q>XU(BoK(rUh%7cKxJvxyg`s8I<-;|37qH#rRZtPByMgA+R< z?Mp_xj-JP^0a($6K`fxZAy5d_t21s+c0H_zk4=jT%+6CJ7}-abWz$eS6+i3%jN zUBaJQx1CVwOr#Mb(5IG2@-xmFU+=}^N>ilVbcak()gJU7Xbl<+o{yXKP6U~aIV3Wm zbqb+2RBO-yu+R1qeeO~{pIY~pP!3eWJGBBcjQ*PiAcGsA&y;R(Uz#2+KC$K*MX;cRaN^jx zYIaoiX8?BeRQAt@C7cTWc5HnyMUp}A{wKV<$e(>l4>W|Bkna}LS#p<@8P&QyMg0;p z`PI5B0d_pu{Sv1bv7r{IBX{iBeC9$cx~3Ew`5$LZDlprigcIs-hYZ#Xv;RNsOCdbf zrVcZ0{+xY`0T`9JXamY!TA?1?Z>9qTBY_pDsRt-|%2^{BJyaCwsRM$iorG!7YR0$u zM$St(CAPr2Ww_M3WjKJf`TY{@06L~_V>jw{i?aH5n4|>xWCDqyTlDBCY=G`OaS198JN);%a*LO z@Ekie+`OU@l~fcgk@Tly%RL9$>cv^3>b)2|E8zs0?$~n0cDv=>9-p%vBs>YGC39%i zFat{$0z!WcT&aN2`+&;>xT@*3Ggs4pfP@W}vK`TZZi4;%fN*;Le^J-Iwfkh+w!}?G z6ycLU1(SIOc!1K@t;hm62f!vTa4GvebENqvYNULp=Sx$h5RG>H6dSOg4^iDw2*dqz zKt6~+fT)H3SJZ%vB!MqV;~r)UqZpxGw!Hb&vv)AxAs2F&f)#~o;r-`-9EdI|@= zTm#-i6Yc@|X_q{rNVBtYx)q=Yu(SylK;Z0vXs!TXxd1S@kN(~>gt`osYK?_5;ac1T zJ8xl^*0mOQ&|7qSMjFsl zdEAt_YSSKty1(^D1H@M3A1;r@ST>na&&TBNUBSxq`f7rpS35%maP@V&F48z&)8$B4 z>b?70-K$hX;)EJ-zR9^St+x8TK3}S~n6AB3aLpBxIcQIBuStiVI4%CKVoYsgab;mf|5hK4wKTa5-L z*xCT6!3!$sL~!6kohiInuv^=zCUDFEp$7JL>OA;+wUlryb=6e}L+;e0Ia(y`S%WZWkd&K; zCXA>pi(`Ktk*4*s2FG>OKuE=U9?9s#TSa?b+r+u9!6^DKM22i0cUIzxje-Cz@nTi` zHY2RtnYRWC6y-~V0jR77T-R|w#Xbx1;4Sol%v4{_j-*<6)M$h`Zr zH9a8vB;!J`@|LYfqBv4rQuh{GxFq}_5{oq3ewC2t3aluI4?b#phk0oW;7Q4gjL3|c zpBJ#a0OD~48qLzIYJWd4%x2Y4JKbISD2fI56u`KFGe+b{Ivfx#%~|}MB%A(p4RQnP zF%aeY?AWN1KAmB_(R$^=2bzBQl5iHa8Zd0AYtY<#TN6y|R8)WoL9Y)ya{{$RP337i zuOQwR$Ox#_WX1z;it7ToYA8mBictbsacpjo7rNM`a;;_#{4M*~M|8PUKW%~Zpa)nC z-H@!c6|JMcb+!kFzwZh)|F0QHEnF?~C&Su2o~^a0guoez_M5Ko_zlB7aT18gZ8Q`Q z)H59}9ehnc4DV4vPn${l{ZPDwzq|=?p%ONRzZ3xqwh`vEz^mh02k&B$gVWy6)+SU! zMgc-N!W zm-5k&qT@*&(AqHtG5u$H-2xL5Lv8*s5`GH=Bn|yrv`F!t?)M-fD;&kFhDy4@q4rmO zzH87DOSm?t32dA_>~$)5T8UmJHN==8QAIbnXW&))?a+c>Ba|9qxVHgFnEMzrPebP3 z0VB8?bGpO|o}F7EHt2x_6uKaan_kXjg8uFk{v7tL3mxyC_mByAY&}X;0Pit#qeu|f zI_~?HTIiz0@evhS_00TfbW+i&Qff5)dz~AcYNdLtI3D*_e-WI)I%)qAI;?e70K0VS zffg9Xa3*65qR6M$Xhf+NpK<`$p8u>^6 z7jfXDSzvR&CGtxG4X!;EG7XHc3WH~XK0BxcTK|3r6oPmC!QF!zIxr=B)g>FK$?WLz zW4&A@v7|CgFfXnqKV!ifYc~=&1j;vrlT*-{!;R$^pgi{GH)x?u*+Y2@M0I5J?m%3B5LUYC8y~ zcoZ;0qK*o8yai%a5?G<&dLu&dH;_=d)V<_VH}zXO?kh?xi}&H96|PD< znQC143;FVNTEwK^qboU5xl4%$?b-NM)_dA>G2K#6BuU5gT944`g3qOpd7>zqWgxM& zgO-U>uJi;pg>+2(F4&RHFCiV<_M;T>WiyTz0&Bs*y9gJJ;#)ft8{L(a`Hp*{;346L zZ~L`sIviJm-7~El88VwoC(J_A?J~jyf*drx?du~FSAzV5{a1oQS&aSer<7f*2|9Ei zxTak?=OoZ+12u}1S&T`X0=f8C8$LVif^w#6);ndEns`)FKvPFyhYmKon|$Uj{`Z#>7Eyi${EV_!wQt7lxPT?ABSk77XSP&l>K zhF&7AxL(U|byEOI{YLCm51sl)Y6wqh2r4A01U#gSxMBqb`5!k4_k0_?jvZ822(4jN zUg?nhtGlk*BrZ5-=t||FL%-`8O40s&h=_^!oJTnQWPv-mN*N{(G8cOz8yFdf~bc<)_^DXITa z@_*O1>YK~%36S4nOjsh#R)?L-ohYYrT#-M>>huyp;L zCA7}}UB4qac=y25e66}iJ+H;9AoLCV>o1YSvE!u`LZF=oB7A4ak?gd4kjvC$T+@nu z$dyItw&8hrlC;zm87Sw#Pn;Fs!JOV{Zdt3a3!X4WxRsZql3OexVwL#2@8 zSm)J(|4uC9^*3Z~6CJfM#;<*jd4}@pcZ6R%O*##*yTq4y)|%O(+E&thRa;U@BQ)&S z&o9Zp@C={&Sf9UM?MCHKILx}_4>(#IZ)|VfEjUa$$Q~|V%9Lvzu8nQ~W@qnQ^VTv( zJVXAm?D}YChp>Tn1Ks?Ck^W3Rw*Q>LLg={QN|)K!3jnK`KM0RxTdeFQ$ZE)efSR$S zSO0m#UjDYO?PugQg>2M5Eru7QZv|P|Zt_Z-M`ZV7c*Nraa0gQmmFkD&INRZjn%N>5 zhm&j0`P}^-3{`%78#g;8w65)W6c;I}s#_0j&0is-qS~5v-}mmg^0dFzwR~HnUbKKnF&i z(`GAu-VyaDyLInplBV4t;X6|IJSy{8mdtwfZSLBx3MPItsaR1*$hV&Ob`yPAjMli- z5mN>Jjjw-ulsCNpWQMv@aHgUEod7gum1Ol9ulg}w7e1Bh*l@x4+ov45`}B%vJufQw zdK8=dA<=8@&|%MN!13JP_{`ZLk282ME;n#S&+B2`7Q4N7WCnd8d9spKcEC<8!wGlF z`Y>Dsozrsk0C%P%Lk_{*FBeVqBW_^WUi&e=YUv}46Ykq?mG58? zV}J@h8a_4t-kNMB>`w?K0s4lW1ce4$A~mFbAT2elY#kOSL41>*jnli?*-uT;R$H<) zxz%~sssp&EtR*rUjWmmQ-#2m?*tl0IK95rTdDA!Kbx7`dk0D>GYM-)F&71oiq+(eH z!S=cI-OZ;pf6FKGUl0B&T*`Hs$e$i$_;irxvckP<;@Xfc5oB1a_dUp=*e_kZRj9NS zFxVQy+S$2( zAEl*g1zEGsiA`AO8@MMT`zq{B6S|ka;H=GfGKR~8&T|&Z@~s@$B^P%EZlE72bts2l zExrA-kqGOqo2gX@t!L+=RF5xx&?>=7m-41BN}KjMN^$KUS}X?~aTeQi85_+iyVP@Y z9}<%5==yowR6|2#sv_pTK9!|5ehuH5zQC_MHh!o#7kqT9Po}?hrE_uP*2WW6izAO8 z)^-sUippcIHsPzbxB6v_=ML*~Jn6f@X$Rr+!|!`njvG57J)iT~SvOWX_M8>G&vYKY z?kcyL9(Q=E*kur;j!Py7>*?u+B70`03zxXi-aBy;RFl8M;T zd$iBXpu#JuM;9T>42;a9jBmwo_TbY|c@_&AUq?@YYOdG>UFZKYFVMsypU+D_5ZGE3 zU^}lGh9t5I-a&17E-mjP?sW=^CQ&YR%dYI-^B0gxqOf;mI2=h|M-B8ZzGyP;o@Rw?DGX{Ubn^2Ocb>IKHIBvhL@GjAB%-> zeYZVzz6rSHGuIt+N;Tf46D7XtCWrIBIr{s>{joH7hm=1GQtiL3s`IVdy`H(_{B7q+ zXy5Hzp+BPF{cx-W@BLx$UzaPr<|fy)CBePT-UR0>6TX=t1yjqZ9$duylS)GV3zbdt zs|s%Yf?b?V<^rSpB+=EQyF!=F?LF9nvr*7GU4t@ci74H`GUFF)vJC01(0_cZ!>tMD z?{_}lfxqZqy1t_JScjFBo#{3haa4MpTa)NcKhR8rxq3Y%Ry8NKKcW31N$hgrTD>2N zYT?!elM7g@9hyQfV{tLHj^b~VKSf?1MP*%1?R3rSX{44t)-6r#O0jxv5f4%mu<_1~ zyQC=nL^cO@lo(=L@WnUax27h1RE>x?Son5<+lXeIv*fi{Pa zMn;Bd;$522L$`z8m(6QpIN`*{sq&qMVfb{l@frqqzMJoB+-L3$D$q;NzMnR2iEBse zW+ZyecqWJlQcCxaa!P{P7E3X8dv{40=d_Bt4V^S857w=8_;_CV@N|nTSFB>BUYBn;1qNiYp# z|4Y4B>Iyy|tdu|2*s)B?G?!#T%JWkB{Wno?_JfhW4)5?zjzq(;{f#^NS7SNcnQ5h8v5=}M8s9E)L!=FVs9!(kouoCY^p zW)@BEjv=u+J&bP)gy+6`@;_QEwCnyUB6jRN_tW2FA~3xXnH2JKS3lz#!`Zbb;c4)v zu}By#rXjfWB@9#0aaQo(^tdOR^Nles9av}{G!?a zbmxhgUr*%Eps8Ofyn?!Tv&c>nL09R}ozmHQMCQe%YVdo#Mu9rsYrEOvN%Rb74m&DE z+9NXDB4u`bc}mi?W$$Aao`{RI8AXx#uMGsnG{9dBFehz$X7N^+x_;E0^nB0Q|A^#2UIu^`wn;5^>0k*^vQ68>v^gR5KNX8W^O+Pqb`!9}$xcD&bx;>rsK3GaEA zhA#G5EI4+Yp;r^sXC1FLX$rK(vi)6U^)NZ}v43XVHuf@nHD~1El)%J8Vu*7j`?EFG zk}vgz-&RDm5Z=i=$4~cr@{?2~0wKO$y>G*l`(Bn^pP}E-DlaP&uH!s6!^cm=>T+9J zJ6B4iJ+Kg*_xSzx(u75Ma?vdkx*;jxWVqwlGa&n6T!zqR%lfZxE$TJvk|$!dkso<0 z*&>|{6+bbC9qC&HYk&+6Y(z$?gjOqyj{D*g+mGUm?K$RFZ)N!M3c|;eeP!f|mo8YW zy;cK-Dv2C^66<_|MX1fnt)5C8{kf%5Z*3JmY;WhzPKc5B!YH;$Y1J2%WOxSof0ui} zsP9HmH;q(bsXh4JW~Ra4IzL=8wW6z@C*M>frG=l$zO`w6XH~GcZp|@6+dKV|&eiW& zI}tJIG26m6nMX#LVg6CwvtHRPpE~Eh6X%EKef)DfmIp<~aI6q-cl zFR|;xsIsFRgFkS!4%=;_c7o-E;!Ub#MN?krC2l^ne)3b~)Gv%F((7}g)<96gth4zA zEva*<(Ym34Y<@$ik-W$OK9IEWDk8pALl*I5Efp;YPlE-tc;dfP}{}Sr8ShVDh{{Eo-De__99o zz%=m1Vn(>dICgUtR=L;VC>22tn!Numu=Mx#+4uLCQCSIw>owt1c}KaJYDa#kZ3EEk z)R?@ZHOu-zbUJ-K$V=nvYwsY?=U<6}Gj0m!jHAhkTB|=k%7u034_%IJCEs9`?^lu- zwF~9Db~lJqgQdcwb7Vd3_`Zxv>)1-c(X#85`o&_kBk3O|^77^V39k(Z}ntd5=HDR%sDC#57`s7c_!=D)-u?lEi*H znXUB*lM*z75}P5jcO0&oZqLHqWZKHwABbh-Y0zDk2-$VcNF5A6ZAj2eWbdy19khEr z@o)c<+~S||;*Q>oG((M0lI3j3U70xD%pdw*&3B=V<3SV8K8{se6cvcDePWsRSy+AY zc&T<*@LhkiMnZpc_vP9-jie?1(;Lc1ZcHDVyR*tBPd?c1)W1II5gy65tS~5?mOE{n zz3!$Zk?-zO$Dk#_FmdoB)d2Uzd@L)!`R2h5-3vX0BagP!y)k2VO2q3AryCQt^1}z( zt)kV>R$9aP`Q+odV)H~Jx?jhn#LW9w{SxT<_DH;E>A|gCUJ0djpI6xAH#hcWl!U@o)}>QtVq0LY19=`;MgA{roG{#$pbU)+3$<9{*B`pkG{ZWDP6rfti_O_)k$^< z^DWtbJ}yK+3Zf&QPOiQpGXbX$Ked zLgJqG0m79s7UiJxsG@+C8n$$*<^UAXn ztZurjhEJrqr2OwHuMyo!#YAqa$RFkKA09?467EJe54Z|yJUCo>Y^6%9fzf$as-*56 z2kL(`BKjrzheeE3KFo^rxI{|1LTX;fqFE}?mcKS|@Q8MeAZ5i>~T4&x`2cqoq)6Bi^SI7tqUZ^;e>{ymn`{1U_lkmEyMyGE7PlfB8 z-dO(JE5~+9_s|@Bhlcr7NCweF6-KJL6b|y_uH&@O{6;c{O|7Veq`&RkNrcJwF z04B=eA3XXJVn0i%O8!_nR4uJnboRA1X?k>XWz}Mb%j&#=^Z#-3bBEc=C)>3G^H4!B;3H1TliO-Cqt4Dm%0nLh`XBdqAA&h&_)BKL^;u(PtxiP2Zk2z?Qw)lD#SXz%M8tCH=tl5L)n?aY#GyOQmxl5N$J?S_(VcdL_k zQiMDyLaP+vrBuXZ8fher)SIT|+DG>4BR}mUd-MSt1fl4H;Hj-ep18M3#q_xeyVT7X z@K&9?MgGaHjL|;l((Csd+U7GTFms{aHeO#+DwQU5yjiL~Xe=!=3hxWRl-j|VKMcEm zTwv=>NKosN=+IBRssH#}-re++EAk1!yUWJUS}u>o?=<&*oMZJ9OylPn`K~DSHeS>H z+B+-mE_Lv&v10#{UusrQa*J+gKh>6bmvmiKUwgme7j*5R?PXu-cdFc7GK`#}tlxjV z>N$-0MPu{i#i598)_>9_H@GFPF>;E{1dE8jO^HvSwkWE&F>r?(8@N; zN7_V{yF`XjQ8e!16Mg6Gn~XgVxSy*%YZ)o#E&0W4^(3a~t8WMR%U56Lwvp)FO6lz_ zhYm(U_WulNMn$o~@4tTcJd62dV)LZr(9t%_UHZ2Y_j74R!oB4nNpX^BDR161yy6$! z%r&&RuAuzuzftrR(GhO@N9W*6;a60}SJa`0?H`QwzX7pOyR!J$R_#ha{z$jrM`;1z zE_z1#tp6F;80qz$kFJP=#in>&!ai2`eN_BH?|5t2S`8QvEYz+&RhJRqI{Rp0NmtHD zuWtNk;fmG&jC)UPJ0!o{kU8KM6MkOK_&vAf;ggK=8~xT<69aAwwSS`v8m(SbuA$D} z9%HVM8dAvoUnnu_sDxtnyz}}^L(Z#Bc`k3AT9)!Qy$QQzPGq^K`7w*8*X z6}G^8>?yHfqFX)f?2Ej;?I}Q}3rmr!OD?kt8FNazkw+K5KD=M{K`TKjLpSBW*9z>n zOmA40kKIi%3dh{~#&cXn+8F_OD z3G~x2V_8dH&E*>`gaaSBhg}OdENHIH4@OgGS~%preB~Xa33Hc!=H&K@!`C&1-FNM> zSg2aJuI4ii3CGE=(7wxEpF>;UJ-e)U-$Znyq|13=?Q)m1ogecvx)!yVn|g6-_BZtc zf4g-u<6nK^R(z19+pWIa|E{URLEQf4YyG;Xa;in#Rx~4gvp+)j5P9q)VoHrm2z6bN zml0ugmAPX~bQ*M!)g99l*4@@WYTJSF7yX!`{{%0R6hmlFR9JbkV*7u$Pqc>3d-x?a zgj-#wKjpF=^|!S5P29&?yLfo}&CIn*WxpiE^>nY_3^Rs=+@nA>=uoDE+N=hy-&p@p zWc}As&vkhmiGm`#s1jYpdnTj76ASS$(vzk0zwfpnpSM~JN6McnFJ=E4|K31X>dNz`Oh{~n7a?ke^~#%Nms4j=Izf$DjDlE1yAM9|9GhH zv&!>L6qeZjU3;RvRO!sU-h~x0DN!m83Xg}T@nrZ92uezjk%q-F5M z@FV(*3m3Q~U1owpPi~Ht6sM?kFR6Jq_t&WpxQ`i^45-)c)^*qBPHe>nz zi{<;#%lDPv>vb&!<$mK(d5|Ub-Ct5gWbCK^I{T3S`qd11e9ebDB9W1c+2uhlkJ}Cc zmilh)=aOdP^mdHC@fpb|v>qKclzlicTB;ZnpAVZc{Px_W|7+LddF1POA%2t%H??J9 z$ZTKDi(=gsyea6l-^^lemykw0>|CEm3R5- zhgs`kSIBRyM4rH@2Xa)nr_SH@wm*+4VmAH4K>O19s}x4RUj_~jd$Jh!{N{{ohez4! zlbK$!J*D*Zy#!N%&0treqHyelWS1Ui+|<>t=&7ULRufhQCoD~gN5 z5*q5p9ZL+|?%CK?3)0;Zuz%I3b>R2V37#0j^|^oZf$?efnX+7HaPYmb1UsX*f$8&q z>~~5n-v{igKC~~weAS<^SS$@XR$v&ddEc^2^POFW(C1yEskYBe~+^IHBR^XOd%)z^cdi`FQ z)c$4CYq@>>sdanbx2`G+{^`nX=F8mg26*$Wu7YW^+thb8Wlv39H5eyn0#7*=z9ORMxk9VYKbyy>eM@Z)Y#>5Z9kX$q8p# z-MHF~ogua6bC}FRa@@|H70K{>tdVeOjvV7FK zF*2WPZ^%96B+RF*<=0N|RB5*OW>Yj*c_4r2aqa=fX`{5P)y(iV$NstF>z1JA1gg#P z(cZ^9<+mdk2$lw=*W&`-d(6(yNXK7#S-yYOt^QZl%}VO`w?ROo)qWGC=#e?qTqyUS9u|3o3rj>$LE})*&U;y4+>v53-QMLy!*Pb03sJIFk*=)1NEb&#f0Hr<|uW zjFe$k&6tna@U9lK@e#UhaR0-P5Iv{aT<%4pg!6m3eceyVO9VZRlULV|g}E;UvFmF#Q~p# zeXJiYSJY%}@g?w8m-IPWI@vl|e&WT-$pmJ;v7abDrLXN~=3n8nO-o(kv%8^GdJR!z z`}&qcHD6qtjBlMxZ~FRZwo{cMMtC6{U^sTjDWCR@7Yn7A| zjkHEH4j_Xn| zU$*7|G3aGZ%E%8t*kEhbH!kO>DV?#|sV=X=c^JAQg0tHlMT|;5{qQ-N3WvCK>PBCu zwRiV-Ytrp!pSD*KNL7>`Qg#lCo@DPClca8Kwt;S!GBcs|MY05+qK{JP2DM+Z>-Pt|%oFT(UzM#4X>t5MH_w|t8nf(K{UY`K zPIGY^!HvZ?m2)gX$?Vu-xu371`$1|}+|Fkct{A2FWg0iiAD=A09@|vWp76QpHfj@B zn4#WWM5ey&8>xI#Jl(BrGxFk$*u@B#TE7f`?hkkU?5k7!j_VcK8+H(hz@fut8P8Wx ztz+aR_3FFh9;+C!T$4zpzoG*!@8W|Z)Biu3z5=SPCTP1YEwnU1X|bRMin}`$w^Ce+ zySsZRlu)1)hvHtWI20#^;BG-nA-EGfKpUk2EGAj4cxeb;Y}x_`er{wdAQXEM#rXJg*EPLU;DdTN&nyC0uPKne3dE*!4! ze_Hy~{A;8_#Lr&WFDbWse=Zik?{qS3AaQeArEz_|wlex+p9E|vn#`Fg8rgqAO4ip) zdwX#la~tS$=?5QE$+?@>qQ88{?vrJ6u`^7;%1QF(ljG-8SZp0jPIk+pRaEOY3tOyy z5yM>PFbzxDFG=KdDSuxTq=2872+A>6(aP-og~Iy_9?xIsQl;s_3Uf&ti15lxwM>Sh z=c1%K&1=&hH(G35sQ8s@AK2@NwH#G*CE9;upv?b{c|d8R+m|xd^ut}(?wjQYMFUyq z52Rxroy0ZFpNwUlgp!FpI$^ck`XjRL&2WZYcz9D*EuK(Q5|k=_p>xjR^M zX?)dml57pXWmBNa!875CZx=jyG9gvv{B$N&lO{IAeKStRuANR*czX3w-@N0x=t}Jk z9(GTwX%I{-7_Y#3WC#j3#znlgP z$KrqNld^FzMu$v08oC6?m)DfDeK!f&;+mplf%!}Uk40$IIIiU{wem|Hn%Y}t8GJV~ z^qX00Z&NRG!MqBuERK3G7cwvDEc>k$3H}TH)KZ0U84+9339r4aB?j!|OG%2(%uC#t zsXz|Zp4l9{$?4we*kah9dWfDCvM+{hXWmC=NiW1lVHyVOJD-A@x;3P(*Dtu;P8;Lx zTUoEortT5fi@`3hz^^1{$WehAR4=Qup8K;2J*{zt~Bxvi$#G<(onC8a7@hGsWv;Hl@%2W7Dviq2;-uF4dT&jn|L1O)liZOTG?KEsLzg1 z^ry!jT>T7JJpy6^yk!yvOT$a#e&r&8k^jQSitiv-At4upXdF||5tQk@i(&;E4`E(? zO&iJb9vF|h@wM`e=By>BOMXBkw}_dyT!ln~(_k}gl18ZN!7ARzW`Bnx%8~sI;-78e zhC!u`0+*{rHL;W+N!BFMrU>udHrv*ngIu;LZTG>>q#Fgj=I?BTfnV^H6m#iSK0I9e zz6!L;e6L$qhTME4eRYtWeCVXYEJ>+$)We^?dudbV^#pVKpucexn~>t#--f znLc-tUKOX`URhaaFw&a#bDlHneuOH(xdODMQQcIQC9?lLoFd6MTETPZU&+2{Ip2P* z2#aHW#rm||4U_VNavDf$GfyX~QejkYp32{dRKvc_oAih2@K`|<<=O0~&xHh$CJn7` z5L}Dtou-C7m36-DE@G6npRG=k;mSDI3GuBeR+vpZ!OM@A&(ZNdD$oIK-DNv_kWO8+c6S-r5+zRAYh4jh@m`QAup++jAGyLH5Fw4w1-*iLT~Kww^>%FGHc z5Z2cqXu>Pe$3EvEYv}mvn**_pO1<>)?bE5#DN(Eq#W>F4n`W@=C-P#UoRVC_(?y*_ zO~)d4IMI5SHr6kt*OwHd9DCnEi8xW2^ubNQQd3!=EnT*l&mO(=Ne6f#u?L!TOXJAO zHlO*pN=Vv=*VnPYzS3YeQe;B#FOTznjpkpQeW4Fvm^!Pg;j!(UHko8|_;hfCJw z2M@{}N$+>+)LBkee&qh>7i2P*xn!7j@l)p0mDwt^IZaGefBw*N$2d`&f2z%}=;NED z-Aaah_HnTPoc zzhslG0HIH-Rd}k((-#|4z+2Axo-5z1kwSnSMF}Ubd?Qo02$@cLk=I<+6ne8=FjZpTvSA3%SWh!xqNGV&58+PYpUHGl~SVXW0o*5PR_ew zESlD9%d%7Z$No!kpP!_|l-vp23QsK?_wKBuQ5X9khUV22EIKmb}-cQ z(g|=Jj`a1+cmVLcOpvrgHT5|lgM0&kqB(!~VFc&>j zF5~>ZGNY%;*33E2f6qm>O{9MqvU#ijaQc46)xgYen1;q7geS2c@5+*i++)7&hhYe# zWb{ws3K7#&JYFAz8vUD?2hm85h z_rU@5HWofuzXbGn-jR>Vu3)oFDe;l%n#VFReeBJovWg}ne%A^pI9wI&;oh=68JWyt zH^jF0-+_?|9-``_|Jsq<+i|GHHAQWc{~fk83_kjClu-oB2fOj{#QjugU*pZ!AM~rp;$S!=)axz5Jp7=qz2D}`-hlI zqld2gB5{D2l=uzCC0j6Cmi+X0DU87FC*nS_vk;@??&P4~CK|Ai*b^?)9V&f=z2oL8 z%3z)utSCuYXzPi5c)bDnAaK^#vpgF%3MGCvW__>P)bsGFq^XYGxl*h@>E0M_Mf_2q z;XwH5wgB2jE|IbAk)S$&^bT1uD1zB-BmgGu9g4VS&ehKj3w)~^Y6@ib(6m%AmQmqS zcCe$aTj>s`i(2hS3q6vFkk!L5+AaAyuJ%7tEsh!e+m$N*M2}|Ue-Tg(X+uYONUjP? zeOmeSWnzB6^z!`WUPo6DZXSU>`P+BBH)`HpsawHi9-#y|^UV;RW6)F!y43rjwyz7T z{|2&$iby-pD)}sk?yY)4C1rNz!}$lkbDsG~F$|C37qs^rp?_iQkVsHLPgA-~wE07& zhPL^gWVS!?snWW3bPeNpR?8?;7gbA#8$HEc2$N12^jeSN@frOONq;_ye?8#lM)=r4 z?Q#>^(1~Zmd$ZG#+Cw0%~youj%s56q8Lb4m2t{wRBac{8Q(8P`;D1Gs5lG z)HJ5>@M=itXJL0%L{4KO`uk>lg1DOk$>E7nS1aCi6TPa0Q{MsSQM{^}(r~RvVv?&D zoxtL@oMHHh5T`NpT#;aWd>%Xi?PVRRTZ}mOGRB}$H#|SV13-K4tWk#XefiL7oBK$G zMpa}LBE|kE(Y!rgz4upvH0E|N>!JyVO^q&C5Or1D~yOlW!%jOMi)AHN(s$b9IgPgwIrkPS(GKR?5OqMZO#L z;fv$eK@vWeps$W5v+K8Zn@u3<^}=Vk`bf%kOVaA!xDaVLAudF1>P`);W_!EcV;h6k9> za)_!WYXFgcddRnvXtGiWUComA(=#!p&?LH5`9!nlXA=piIKiu$-*q6YT?d7|rlJ0E zCh6RB_&J7OevBc8-x4t2!h(?`gNg~LJHe}LeSiH(zZbRpdvbx6Siz<0Z9TAyAw7Sg zNK)30_MQP~Nb+u1GI0Rx;oz%PNRvw9NdZFfJ&17+)T4k_eLFF6fVYO~_=hF=;{sH? ztDiS75_zrTzwbQc@To^gOZ|{P=UO>M*-F8UA1*gWr;(u zK$en3U4nU4EaCux5KrRjpX!M{u)uNyxML?j*73;Yw6nZv6WVt@eF`)x#CGP`c|p0m z6S&7faeopfE>)u*c7A?KDLk*bit*vj7OAsmlj;5&XP6h;bx|0_Ju`;<*Ck7QzaJ9o ze4$=9b%JgB;nr?x7xG#7H)%8LSqM?ri;Ey-G&H6obM-fy@t7MIGv-he@t{_WmY}%L zTi8Wo2$kq2_=@bW>yYqikr%?HUS@0A<5;r6rRU#XtzK8@Zf+2T;_RXmE>?>MEB6pz zdtlxR1?~bld06*5%IHvvd$+}1v|_Y=cn_4q=rT$(P(euW@*V5h8|f~Bp>*am4EQFl zUV>7Ko$~mH>fvu0xWi3?GP7S)g+UgLz|hZ9)QnKg-h0Z9~B9_X=9}BU{ z403+*5Tp*o@a*)KOi;iz3KkIc)7)u8@G1`V8OT0}09g^U4MJwChAAn_sM&jde)>d9 z#=ao(>2u>i=FgKal;3{l*VN(A&RkJG*w5C^ zZzALG!NxfX#6{!jcO}+jxY8VNQ1+chmibWv%;&q@uN~B z{2Rck+PxDHdh%9Gh#N(_PpU{J8HGLm1^{U;{|12~=2A|8t^}}w6M&h_Q9+=9(1Y;e zn|=gS8A!kismuSp$p%?dER_hCN_dz8sF$8RE9MS<6KB;5fPBATw?XE(*aQ=$PoY}{xBdN{xWbFX$JtMElpelXk<5*^ZtgOofE@W{OL32$$3zk`|~+u z|MF0j1BjW~e_$T*oH;BjGSl~0rQ8^59f%yd`qTGEA0p3QoW&Nyr2A+(hL}*APypM_ zq?=yx1QTH@q;$MldHe7MzQ1}6P=AL;4IxMxkJ}2t6rhL{0ZZhI9x)#Ai2Y6i=zwOI zG9XX=pw0(l$k7oHTzRko;THeC6x}9OHt@#q`MeF1O$UMpl+3y9(*U3Rd=Sfp&nKbn zcri({25tacj1sYArcwRSCV-jpLu(q`s!T!(iU<-LM4mqK?IQj&uKr}<1`i5ikV5w( zUT0oc;Qn~;Fga_iXu$KOHy%%+BM!#oBN%#C*9S}FbNCCY=uDj)0dGmxjTa z>~lK62L(PSj9|B74}T_T)|9Zj5L75JH;U|E*3!{qaHTJj4(cOjjU<~s7l7hSi*i@| zrl3*0w-<+sP5GyEV=_IhW)C2=_Di1uFqFQAuRE$oa0PIDzAy3#G;6X0%>YFg1~i9K z359~^+Vy!msG89D08sRPB`I`X;|_@7Ru4%z0L(sKZStai==Y~{qjW23w7?+M^C=SW zM2T z0Vt?6;EE1PLl1cx+2YakKwyQ0HM%;DBdCj|GU1M9GwJZ=86@`?_@zU3UN2&w|GSzU z@}yWQ2d-A0y$FaeeF!Cm8YQ4yGsHE=*rN&@QWp;D#36eAdtW!~!n#C3TN;CaG{JNUXZWKj+*r5>te zg~VzcpRn*}J3F@o*PIR`MZpB65A_-FDhEga9~2hcoDMItM}cDCc+9IskIzEr-*?gA z3|+v%EsllSujjC?4pOdLL}T`p^X z_NHV30O;G*%T(jsx%OpX?uYxGkKlnB(VNHMpfVbXJ_HLt0ksYCDeFlVK%Ms94j3vC zheb+8t-Jwa0G|{FFty}T!o`H&VyiAVX$B8^C{&b3ycEl35q(*8a>*d6-qOnqfl(;HGlf{uO@k!VHRN zwx?-kdEe@b%{*@cFq7Ljf&$Q)7c}Pn)HgT6&Hz&auFB68 zdD0KRMi8JW(TbN)m{&{)kXreCPy<})5%dHaF*M!^(BERUY+;>e1y_3NK4qTw#Y7H| zGiA)`x+VHL-?#>cd42%kCVv-B^CacKGt3j_xC=3k16B{iz;KeW2xWkN-f!v=cirke zjHJu~L_G5<@qaSyFfxBX+G>+{-}*3y_^@Bf1f-VVx_$e;b^ICg`~(0LHiy+6hf1%c zh3d9;V1BVbh!OJ7IQNQP8{;SRm`w|-J|X5aJ-%Slz8V6J>Sc@pU5~Z`#oxE)+96dp zS0^xw=frc)P2+~%cmgwVqA`Z`A&yO~QNdxJ_vHD;u*_R7eP)dMOuoOe2hILqw9*#& zIOfOE|Mhj}%sa>NzY&`IPla}v=Mg}ox*gaBUV?joqox9pRTz`ry>IQZL8g1(_quLF zj4`u(81@CzS51t77#k$eG3pK3zvy9sSj;&Q%sImzM77R%+~eUU%-rzB%&-3j6%03e zj{bp(PR2W!5t)Cqh3k0SudOWk-)On~=d?&nBLpLQ%gUd7%7sCx&s+>f_-{>o89$jQ@nl{-s~VOYsF0r;fP7`*mCQc`?J!0$okhtbBv%QXrpk zDqA#0tQAJAKm?r7JI6%;dZ5`Vi1E|aqpc+<;;4YPD;~bc50UIc2sVE7&w>+_?c|e% zrc~2}jv-X0(QHtH%4_Eu?~VA$keD_ACQqyax45)Il_0=P=Em0+>9IfG2@IuLiKiY# z>?lo;f#(ZCdWpa^`InB2P+0q8OoR%*;KHoy7pQ-MV7p{=GX|n939XD`;sR)O43Rqf zk=ha&u&+PC9V{|dIzaX>@&eNBZnLTgkWx9?R|QvID~DPl{io5SP`fFg6+?~{godp|)a2dfPY zd)PAs6VOXJTeiekn;os)O#6(kU?TJ_jd@F;+mSLD^5GH_LJy{Vwvz!|@9t0dIv7?~ zQQ7dCvK@2a14|qfv-M|; zBWUIh79HCN0!scsp}C>y$+>pGYSTfnZud?%8zgPT03QGyF?@#!mc^%=LjQpSO${d@ zQ>7!0Z}8#qZGgV-Z##cg$GjCx+T|P2Bk1xJQYsrhF@4U>0+=Yd5#yE}gl(aRIBB`ph!{q*RgffRm3K zJ2e2%k1JBx60(^u<^O5SQ+RM5K&;w_V4}8pX7eo{O1O$G7!Y4@XY}UDf(RQ%Apo6= z=))kJgKSLd0mY3?M(}mPjW-Tde@4_%{gD_Az1{ z4G=m3E@BEq^M>U};ndE&+3K$;IIZG@O7IgXaCdy!z81vvqrYezK%@3>0(G~+l<8&@ z8{jj}5fhAn57?WI+9F~6ZX|ptwVH1=mPqnU2+&5kmG4hQL4LP8e!tK?>I#NEbD z5!16EJ`_vl1U4Uvxo?0QwYoXM0+4!tB%X|ceN^pl!*bX#>hPdqNi@HCf**~|x08i_ z?=QK-M4tYeftH+E2tH2jc`D}KVFJ;_&jlJsXgIp9@`^a_ zPF|t}0g#yfx+{R0;$1i=K)t}90GyskbITiyy_hkGuyeTQPJv^U=Y6+CzTPL;0Oqcx zo(=&{R1U5_Jw|co!6h@*NqLNqgyy-8j}%#f)pM20m;;|5ukn~4+O~z9AkVyIe}00` z__9b} zruf_I-c-{O3wK;SeG7%PT{wU%eMU6Fl>tY1;L4pmN!u1jrX67Q(ohXx{#r<^<#c4f zOA2bG4AKUp6%Lx2!6yvpYip#mz)kG{NCTxQIt}255@?`v{vfs*nH8wxpxnW8f^a;}hH{z9cl*-6u3t6m2r*refO31p5xxpKhzxR&1vBIYtRH z){I*WTKUstLelt9ry4-BlSu;Y$Xm%?YDSP)l`OUSRhbvhKY;l}yhEwvLpDAisQ-e~Tx;!G_&>qG16zz-F9E3T-D00R z41&*Ve0ez%3neo!(u(7AHqcuaGlbuP7OPhi4=2Onhxfi@WSZ}8T zwLUs7t61vYL-1asaP(J(7cRWg30;HkNZT_S2fZNTw9K2V%b+x-e(pI~2`ZG3d(ogtkI!=%@*!Az>T;JkT*hP`vP%RcT z;Fco|ea2yk4l)eSI=lpp=$o?3uHFuN-LNg?w@wF&Xq_(=3d5{kH>Nbq`ui{-j z_Qk-AY!>2LxBiP3Q1F)EsM$2^Voqc@uUkAMy(QOl2l9ip5p}fKDF&{Suv%}kO#0NM z#}G%kUgr{Z><{q?IFq-scydqOm@B_1Z9Ve}H!4PoX3D+4c7K(=cU7rSF&Z)@7hmvd zoQhiYLRdAF0DJcZ(a*1tXgT$IYsj;}dSsT&g$^$Km!$ybXukW;lCDL@3HDqy?>2@B zp9N77)EXG_9g0HG>16mm-46)l}P%iJ< zv`{W|w}!Yv+RsB!qJ=f2AfxDi3besRy9$NP+AXrEqj$HAxbV?!qpx7EN;mqzbcQ>g zNx!cUvFLwlaB5tb!DBn|69)1w0uQdK_*lsOI#-|mLx$VYyrkI;Ul-)zc0~Wdo)vr9 z)YVpDWo0-SBexmodeqgOX_G@C2$&Ca~sl!Sl={soGS#sA|acox;8>b;#L@?wd zq|6#5v2~E+?IG_(%q6v6dFYmSGuPVXo-dj$8QLZKB;_1tCL8xv>+?`oj27_S(>vBA z`e0&73%y~C#bx(&)Ew(PbfFr(@zMU-UzxtPaNEza5MD?7*MH3;@vxAVso=iod2Ih} zBAm$sK{$C8Q+&Ure88HN%c;)#rXTlGxjmTJe@th=B(Z*6e^GXrI`yaOcS7cKCU^c9 znYFr!jcsnzZIi?83`fhymCnfU4=kQ_>V-siw1O0KG{nEBQuB?5m<@ z(C7>{CA3Deh8Gr=1Wouz_`e0;P-bm?eha21ftiG<^bq;*(+WR7PoBa(_UaoqUU`19&p-k)!22n@0%*pqARc(*}UMdxvl(Yt`=h7?)RAsYPD`;#Gp2kgSZ@cf)V`Rt>s=bPtR% zZOTL-t4=!32S$b179<6QmpR{rWrGIegNmM$+V58YUkpF!^tp~s?rx;vh4evH*;eHb zy5bNSH%AP@YI&7M*BjzNm-}{I#ye*1rq@0>lYL#r7SoiASIJ>mFD#9FBf%x2YW@u8 zN`KFSuJmXjP3Pk}$g!55-a_B;3+8C%*ho)5HKr|pP0jf&gYH|HYc4A<)&Dg!S=W1h zu$cF<6HdH7eL`pkP>4oan)M0T?A{;f6`5q&XkeSe^lA_6_sq4;+F5_&{k#qDrnPBj zc5zRwD<^~=7ZMp#Ru4(}qJDN1)N zG_B#9@ypOp+O-+Z=g+qZ_UEVxhX@PY$ zTFWQ*#=AZ^^Hcy6oG2t)d9vZY3x`4IpuWW&t6T%S`fGZhn8~MOynBrZ_74n}*6N}R zJrQ(7^nTNISjz!C4V$wG3}bj{+qSJENeorZRHHE|_l0wEd~e!@GS8-843?)nVZc$- zeV!g4=c^NGA8xf##`^l(u$4@Sy5iPh`<46CQQxhT!EUk~3sAsrJ(+WGM@BTLg&>!;`YHx#`L8K_y%V80_j*9 zE=DKp5-O}zbnW$Z?Q5tHlCN|#B5TW!(gne^<)vB0_k~9WPQ=r%6Q1gIOjx^?WY(ht`fd;z{K|@`KQg$@k`iaMpK`YZf_vA(; zMaN>3lND`+MXvGmHnOn_V=lS(nWe%O6x0KbEjv6M(m<=CG{giy*_d;H%X ztM8w;a9wB(d|yc%bJtW1kLmt}EJE%gizm&D_DLIUJfiwNRvhJ<&B%ADt$q{l4q=lK z!Z;*e1*EG^_TX+<-5EdI!Hn3CjclMm0Qwb$X1zC&H0 zwgu0F)$cF2nxfuNz7cyv=mhGBDEj>vcdqi)7kYAvrI)0!mH5$xDq4CYummfKM+e@d z-b6UGN(MeD;*sk3@9qTKpKXXj}1%cGd{BpZs6+ zuxzU~UfIby?B19&lwj))_Vbh}_`7RJTr=TUl%g*h{&GB<4bk<>>iDR^(j2$Hbo`qv zx?ee^8nIr&mq(d8=41Ld5Lf5;C)|+>pGdbRsn-Nd$V#qQW?n2tXR^a zPcKrFwx3|ZF9rGsX9H(c!PG4oHo;kg(GJOYgof`J6HYHTlz#Q}9S1_U+Hhv)~UDsING$tkUade1i+?u4@|H8AZ*vN@24xG_k2vGqk2LD4J_Oe6bJ21?=(4U&Pp}-QiYFUU2 zjk9&A{p)7vSw>0$)yjO?G0TL$nl4za)Y7e1*x3HXnz>J!vqd^~7E6MZC%uzR*3*w1 z-gIHymmUI%L^WIc*{SxAyu6?F0Sr~=3%v6ck}38}?nM7l=k;?;@LsKM=6j-1%JdNkxwhS8udaWFJvKF>$rm1TB?6lYj z5D3SJ5EF{YT)psl?BxZkj9X?)qU+@?Ks|?mS!%i0y2t*!>u}ls3dd7%hNEGTdKvnC z9G-Ps!=A5*e}ma4EI%zUj{o31wA3>Q_-saYEy@qH`5E|>p(n3=MxUm(!&RU8rDNeE zQxa#x5(709ajcn$_revy^aK4RG0T)r2Ph$*j>S-K){*rg5>m;64%ioLh|Q=U`5U43 zXGBgzZz&C`+X&9|HeFzd(lIBu$C??b;D3}C+93lgPU$a987lm?L~P!EfX1()R5QM| z963FGg!Xfb-eIkU+_i>o)jt#%cT1%hp(ZvFNez%E>o(ODfSVs!{AYiz3-^W@{#j^V zmt1bV>_Q&|P0^z*uM1Cq3PDIsEmvUF%u_Lw%T=h((4v{hF5N2k@k;WBfTKY>8}O<%dmKL!7r6zw%dl$fixZ z)(dMoHp6Q-dMostAa#0{qJwzj*;rGqh#9QV zK;L852m_#Zvb5jxz)u;GkvD}z83A6g4b}mKKTLQBD0IItjt!-kT-XNPiQT8ALzG$= z#A<}a+^YTR+#}sB5~1drH1f}G0_68ylD?rjMnOOFHH0M^%7h{A2H4v_a`bhw)6#R5 zr}){+^ykm*%gjCnp44_@%6ce$k{XJ<*~^fZPbitm`scwLYnVoF0{)Phlm1yZmA0as zyWuUQR+x>CgTCR_TTL^EG9f-L2`Q|`ZQLUVFTMiKC+?P5o==<(s1s(2(o#(max5-i z!Iora9SAfF)@yK37erDkeKc3UA~W`SB0_FQDFxoF0y0@d6>m|J|1$W_JEmgm>t`Bj zTRAx#PU22ZIL3!L_lXE37~3SQ+WBpMZf$PH{^qPGuQm8JcZlt$A7tb`yW`|sM=)ET z+qF(kNa)^4b9j~3RJ24-yE@k}H(&ET|E8T~*mWr=!RFqY;HDz;zFZMNAoP@>lg2s( zsIzh^+ zsL7Ze%|_Ebfzuclf#civFSW5-{_fZKD$jfGSnbsVwpeyhEypxJBbXMbTq%fa!F$sF zJD56Ghi#Eh?D55~-p$x3)`m3>7CYU6;$HjQ2L#&kzmb|HWTF1dG}N> zqRc`K?}E=}dmSG7^U-&8a^EeZB#C7QhxQ&1gcR?c(!IMJ$KT}!6}6#x`d6~%t6R*8 zqh^qy_(2VoOy~${gFP@cd7N8UN_uvhkZ;mQ;5q&7!+t~e(ntwTtb9Yv0{dSo37mlwcuTE^6KdaAnb(f-^Ey45p@JA?bu9S@kJcD$(qideq4Zj~K2 zt)0#1Yo~&W#fc;?X{zualtHhM+hK1uMbHgd4H>QvS=0xni7mImKYsB}@#B-i9+4aM z%7glnNW@tLx_VL`Xao{jZMaCSO3-KeEL}744+CVBcxbCsq>Df(W<*vg3TX6&{yc6b^wpl1E`(GHC%8LrqfMF#n28!zu@ zm6nBZ6a!wx;3j2Hu}XIiejutS(4CD{nY3OO_(4QZ>%{-pwT!U{&I5Vnulbv~EYR1q zj@UDPyGf|k*yqVuQp`vD7ArrsDs^wr7+JX9#(*%dL!l;r*qU3+pKL!tA}`h6fQII|UsNucg(y zj|$>s$_a^Yzag!QMHP~4im?^6Y~C$M8jjW54k>Zm*$@sTC5j4?8Na2sAY(~OyuFeq zWKT=%7o6>P1iol45Z&^FQOGU0J$G@!aP31BzxJbAw-SM)&WRCR zTbvf68DdYHYMf2t3>D;Be5#TN21svmykAYxwxueG0?b01$q!RR$qz*IgE$B5T+{HEzLw{ zLN9Ds3~->5JCd@r|FMrtSk%oz>mlteDcg%(`yt5&%sy|O{L|d^L!(kH>vPkybo&O& zl7gYsYl9f)7xr=H!YdYgRZ4wzLXi?J)}Z-VNdRS0!857 zJq0%%(r|yP?arlE%UWE^rdF$I?BbgCnhz?%Hz(PheW&7E{amne%0%%H{q8ZwloBDhtAe{uYd7nO1#qAIOQK(dyhAQ zvqmFOVART+K&RR?m>Rw!xlkf+>nUJ6ZB`o`L-nPo+`2~gioZLvQaeIMybbDzEp+>9 z>QVLU!)fy^ve6dc=-C|6+VLbM+vZEnM1d^4pr^Qo4WHb;a>{!A(qe|-{h&<9%!?-~ zNBn3>5Q@-+IwbOM;|6#}!z}G%;;oI4e_sEpC2@Zed)c7$iu0+_S4jS+HbJ9rnxn_z zQ;K{P6WJPJkr{km+cKY66Au)>8=E1STE|IcQrAxcHN>N~a7Tk`5@rgmZ--#NWf+YM zX4M~K)k-uY=8`N-IUFS4(lmVY=YYf6*PJ79L8hag2RWqpTE1I?IUnYO>Q~4>z zz{EG?pl~*vc;KXY(&_mQQ%+$pzob4*dc<=x?lF%M{yB%$={v3ELa@Z9d@9o(fnvA`$Bkcxn90IAwpqXozIMW>ZKWgz~3-hCbHt z=p3(@# zkZBJV8<;ckIf-|Lo{75Et03wKSBUxKMyAE9i@#v$8WXbKl_=>v1HkRoKz<%U#KQ&; znLA;`7j+&odn@iTYV3$CtAttnh=O>FHL)+WZynTb}u+W zY00kfdJV7b@$2R!qT<5x^>3fUEGN2sxr=Se$gP>W{f!#NDh%mq4OVa>E`=;K9-d-T ztp3SAqr}d7=v`aFB+y-$CWxp?=5C=Sji9n2JM4H9k(CQwOXDLu42L(_W{E+07G|&` z+5^qq{cy2^VtHD20s+VEI1wPKfwdm-(fb{tAQ{BSr>9&Gk=Zd_HSEj(O)M{3bxgX?&DQtqakDwzc$FMLEpMN^0r%gE4c@$K6i(I0N~bi z=Od{BD&MVY5o`bw=$@?reL8=?xs4NG&Ue6kg&UwU!?U0fF1@G#V5RQOKXU+7hq(L_ ze?1yg0lO&W&crL)=g$G^HtzvjRJr*od}sWg)_HFC8dM%l0$rj^ag$4beY&~aB(zLh zajhR1e^OzRxpPT)mcUoJ;!NQET3o$-#oJhE2`Zno8CY8$amm;vWZRTQ8_+<^Nvhn_ zvFm}?FU>7U7V)CRB|4WRx^C1TP_M-^I8LRgCt(ubMTpC1M)#_@`~CM0?HHU0rZbXx z&5pbWMiYY&$X@N|W(anpsY|Kd&ZmO=ltyda;|j%>M;aYXUb-Q~aej(8Wn~|(C)Gt) z-XqoKvla8^D1})j3=4DtzKY2@-gu%S-u@ARjy{?p-9ndJwBC9?e`T$vNKOdZ?~AMt zMms7#i%}om>w!n4;mD<|@11c!=qm44 zCq-GXOW`rt|GD{Rwz!tu?a}&#WDCXru=EYknf%`0wau-!w%e_>wQalIdTZOZwY6>A z=2P3oQ@8(qfA4$FB$?z+CU+(`H!~+U_XFi*p_kw-(U9v>cgYqfguLQ~W6D4473XsH zEH|wK_6*4>?qW49df<0!h=?hk;f9?8uL~Nq!4FVButtlQ4Bc&&!NY!6uM{1o0*$qU zktM(<=PDXar=9&hR3|TlbRVzlf59Fh`aufuHxXMPAcQi=%HtwVEG0Rj*kA-M0|aD_ zT5w{5SP0!8Y2Z>5<*I-B8y4v|L!Uv0iOfJ}utB!iV689$2cpmJLOcOm3$gvmzm|ZV zS>cLUGxnike?%^e$stbBn094OY7=Wx(|z3*_C+JeRkOc%b5a5@G5n34zh~4yFCnIE zgvv}9ez$}@2L{}7GV$P2*aivC(e7Q#P9+`sEud5}LOe&SQRB3RHsETjT@DY{8Y5!2 z*sH_Ic}@*Mh8?8z*$MRFobGXB_ELv0%k<@xh~nZh*n+CV$fX|*<1l1pSZtDUKDD*V zJ+=&7gZA-PiZUH!P=I-GyPuw#=P4?3UA%06}$7;irpIsRE3(J$y7^KLwwJ+zw00 z)oKi5KtB1s1oFD{NS^)OGU3aA$NN(1deS5YqdrqZt&2jATrOW#sk92^q%64F@({~I z0WKN^3_Ur{+TV?j{MqnXHZaLOpsO&vLc|TkGY-E~@rb*xXUG&~%J&7f+otmsa1)CYZ)19th6&hACh&$!n|sTQez5kT?S5%9!_$ zJ@*m)r57ZHRT-WUy>G!(O>^lEMsIn=B3Eo1lKRpTcqbdsGmtAonFNSF#C|tdL7M&z z6v3G}4|vMY6kw`ag~PS1f5Fky`m;L@C2E$YLjutu3!jSh$4E?8ppR&^|FX=ez^L4y zsL9^*PqJi}O08PM;!4^g55)Pe6c3(yLw3t+>`HLD$Ei^twAE{v;M zU{bIXd2`|Y1sZ3&Z_3*sU3>X2VDGimSnZYwfAGpaImo;AUGFOoRGjen#&?8H@KffV;6M z`(t|31LrB^EEapW?#BedknNt4Um=HE?1D>ZEa7^h-ePWI#Uz@Gv3w>?zh+_ZZ*-uQ6CSORcOMQQrEB)O}i?0x! zt-wx#w-sS9FG=Q$83gR7nw!(d8n&m--96x=d>?F#%Eq;S2T~XO7cMPSGHj;LY#PA( zajUu7-aw*6qN^nvAQp*fpiO{vy0-pFlY}WUew_jR0o%p}Y&LK&GSESu-07fO*}}ru zr2Pb178~2WWr4(6CC7AKLW8~kX1;);z`3&V#m+iYjF@<8zNxygz+Nc>d2049IH2q) z3L9u?ZONwN#K~A6EF9{(B~SycZ@H8hTq}~O0-I;~bFelFKBfFT*PkGcX{R7x z%01U70(?caQ=#zl@|4r{&{?{p0qeFgeIK+M6afV+-y354e&YyY$_21_*hLa>nJ8&@ zwTL=e*kxJ)tMnOvJ#cJ4t~|I-p|N=zYDX3KY+G8iwII4{nct!RunXVADW=n7C+tjnM&s*$9&!x!K>^I(qd~h!^1GyaW+D<=Z+(1F{tPQj6cg6(+tSd<& z8SzR`f=jHnM5IINU}NW>O#DtwluPn>Tc2n;9^@BND&G|%gV)-vg%c)G2S+QB$b{WJ zcM>N@D;{z3lAd+Idd2Y0#*Qtti*#QESTpkKG$KQB40dH7cavjaWLXKkTD#ok#?BQu z@Nb{iz+DR7#%6EG%*xiZl6mH$JlwKSO8ab~PfOSPP9^KNwpa% z@Jv)h(hs{FS>?cWk%E4iQ=`qk zV80iAnjAp6vZv_Z*r{@H!b{?9ghF2XWnQoD82z$?2U1>HUU7DVwwe{~hu|`YX;@`jytkpNjb3t)e z(tN}#Jg`rRBBx~m8+%`j&WQ|xtsBe0^}NJ12=1~h0z93IJ6%XhMTg7F_HZtaRw_)p&s2we0r!MVTX0=DwfG@P)p&J464exd=^VhIrGdlCthz#R8SnqMu4AJYd zo&|`uc*L`s@Q7@m{}8W!_Td#jUm;#0fF7R~b_&cxxmKa99-#fTvA;&C3}wTkbT1IL zv5$rGM{b-QZdP?v#@o0KUL<$5RsGc(-5w@ukFCC5fXHA0bo%aEU9hFfZ%Ns4B2L0n zP_VV{1DknexU);M|n1#0? z7C=;FYCoo68n~`~6WV5KA4r?+9bK8CLtIM|^2-7x9*<3Y>&J?f9KOV1MuX})O{S6i zdh>wr^~mh6f&t@K%_yYUfl}hJ57T}8Cp$~VO(QkL*3k1{iO5FW8sW6S=H<_}jF!yz z-|4DvM(i^CI01DNKN?I2k=C#aNS6Zevv%@UZJF#13Y#x56Nikvi=W}Opx9$7M%VHa zROxn9BTPe`Rq6k^K-_`WwnXM?3z>DpGRr(r@#WcECp8{=EF@h2xb6AQ?YJp*7}p3ihVXkw>m#17)I1x-&Cd$RS^05z zO9T>s{PCk4Zwyft6K<=^f4{cT*l*m8o4aYByLsKV;xuG)iU=-A_~Q~0JW?uh(}=KB zR;uE*CS8rf{fI+x66bivoGs_QYe+3g(b=dSA6|1^e6#`8L1kLpv#)FW@!o5O}eH?StUI0lWRYbG3t&O7!He+$x0i&8TRlZc>uHO!# zR?*|WRigFgNu z($YHjX)nTTahZfyz52I!cCYH&Lyvfj^vBW)F&n1h@6xkd!_X2QlnsHknq1Q95-%d`NVuVW^<%lk3KMLOB**8zPmf(rDJz z%(XwLlr~*Oqzs!Q^`*f4xXk1@`Rsb z!AiQc3$)2TL6AJ;Ii8K5G41?NX(_W{H{0iKL}bgKO#(TS)35q&md5fLS0(D z2?Qp<0oKeP=gy1l=W~OA(pb_W0HPM$5ss_k z{u!aE@2&TFIvyjXQh+zElfL#Q^x+#m_N|~-VaO4e>xbrP1|%F5DkHXg#rvIHKG(XF zO9RRWj3V_MqJEeF1e(1+jPWm#V9R0Wxv+ur@p)7k6*$p^+{=k>tG0?k*Jp16{{BDBNagO@|&C9Fl)5f6=1JbjnD0m zexW9MGtHiAyn$=hJ1iwFUQ$8U7&%gp$&2%MMom^a!fi5E_{1&zru2onGe^D~XouFM zeXrv-G`oT0B;5G98U8u!2yHaqn>W&AYJ+G_c;Yo>isY~icHAj2O{M^Louobo#7G0J zN#~iDfQMEEU*73c%?3}qxqlX2o3$r*o|$vD*}2^6Xb!i$y8V_Pu>GX)4`Lsyaq#rIEpO#3_m51xpNfTE9a(p zSOb-66tt@V9^fEK7$|QHGArwFU{BG;NOiTEKfQaDF#>t7d9|fBz@jAcn)^Gwt^VwxKT8`i_5D$QzGho&^1$E{AVRg zzrSO1i9`Qp9m*$Z!PJ?FkK5UU6*jIPjz6OB*7xm6Pnw|jutwynRJeIWOh$1i%%)x< zQP$O>9v~#@66qK00MltmvoHJ0Qf)z;9dJP)>e54_oJg=@QNO^Kaq;(eA|E;%K$^&A zkx!1%zx`>B63v;&`T>a3l(zCzaN-E zptgwSk0(&q14doIli-;F3GV4Ehegt@@5s28Yrj-H;X4{Z;oX;*7rqT6m3+GiB9%lQ z0FNQ#!=K?ucz|i$NTNH97mQ7Qu*e&c;@;k zaD$Kle+8S?iA+^bN8sYDE;!w2{3=$tK?WQ93jo7;M}@RKcu{Z&oy&A5DYy_X?jVdC zE%Ks>l38*nzMrf{EdXUfo}0y%V4FWEs@mZ}#vm}nm~#)wsIb4KWm|hb2EoZG07LhT zdKVkHgNs*FJ~HM38P3rNu`HrPA(MRrY^sESHS<5nMaYU}-KByYx9(626d%|TwK0y* z>bWg}U>X1R$nRiW;jg``YpZ!|h8C@T;GZ#VT0Wu<-qU}+#RvLn?$llb>gkjP|JzhW7NYrJ-dzap;4gJCk^sBC?X)@ zxU1?-`N~fdrc{cEkwse!^hVvRlO5psm>*a@B5=q>Bd848K$u?;q%dd^_mpfq0LebYifYrDQ$@O+18+Ui5g zGcQqs8_g2qgs4nih|5p9KDEpQv`q|daP29`%N96s28Fsik z;s_Eaf=qL1#w}k(Y-k>K&LJvMsJZ*#({Kat-rJ5Q;qAwbLiDp6?*u77=*(RhQP4LL z`9EUf4PESWzFUfTCo=MF7*R~9+hA<3Fz=rD9x>r`aw zFrwQ&t)YU)s$Yu$zC1J@lG`zlY|g86;&q5ztpx+&&DMb1*RKOx)WKdf>_Pie)IUSL zmNY*jZ!^>o@GIv32Jl0pesJy}n9zxU5gWWBlR3L=4skPA}=A%$}lMI7kF?ol0 zL=yS^R;AT0UGmdZ_xB8t`VUU}ES?#FDg7ty?RGphS<7f7`|V-8vM ziRnReyWHxO>~Ls9ndI-Bu-}BK`JQ3#VLj_@@YKT6cQVw9^T$2i4b0>~iRqTT);t9h zEM)}-%FzVyS_lu)V@ZMBE%k$kRFuFgxaUqm1zAFFfmkOhkF?Al3&3 zO{!ko@cfkxY@_&mYZyWVJrzSEns)jC4Z5~)x1o}QQ6^FHu4Mdv(6|NFg_6+fb6`kS z&It{)OAT&c!CX}yb|P~47T8!v7=*lx6DDjZ6Vs*`RC~VI4MpZYh5bH+Mam9)oS_Oy7Io|vqGyto$lBy?zoD(2WFB(VfdRg*d%<$2ltQ}OXsSpp0 zUi-3EOmIStr}7p(QKfj2{tb0GE+Pjz}8?a^!t+d6oybq!W>N zwKqW<&?>Xs@p7A0^)b-!me}Ks-5O-{P2?Ao(M~OB04H4|#tG6=T<5^KK-}5g@eNdP z*{28iCzRwui1>43`aouyRp3Bo#(z=vECsS1l2cG++AjTTQTadQo;!8bhh2IiChjgl zX>%kyRnK~w<(p-}x5_w5<*^!+)QUCSzEq_$QA9iN_c)J4)lT|Wodn@r)dQIA-m%3i z7Rrt_0TGZy6Y!*dva(TA*YMi1Z3beb+?}#qDq)sBC ziUx{XUsIx_uB&qXjim4iPSovHCod$w4tA`_t{9JQSs7e3{~j(?=`%jttWb(Bvx}J| zSOAHgOiqci)F?j~7-sX3pWp~76bT*3!?q6QeZ@+&9<~?a$a8uN^C)F;XStgV0+NnySOZa)~2SUYVff@mQ->B zM2bu^g>KYBB5_xVZi!xQ1D{>DY!%HEcgR^iUChB-oi*R?(v;%C=A+~s_9H~d?01jD zsuN$n9g#7`0|E7dYOMSQmvei2Op=@OniJpLHUg*YLkkFlexGEgb9G(=nYVUz9=r&; zA9p2cC%SL!?)7Z=O$VWG?$GuyCyg%$WUP!>y58zJ_D&79Ln+p2mF`XB%YcvOB+EURws;n?Ubak|F_U8!6OX_j7>@(NhE7Ps^!)!Cx1k=xblN8|s zV7j3X?+;-Tcwle}nj5WgMXZv2oFl8O)&7dVkgheQP4{s@>G^o7smYRa2v!j6PXP|< z)j4InJk{j0^9}nXeQ`h1Y-bS-xNzAS#&aYmE*!k`&IlL?wx35Q{k{P}$46RP-6@hO zJ-k#V>FTt9-`-ySnfd44_k0q^Cfe*Pn@BKjUV#>C2akigc{q?>KDcje*d}3hKZU+0 z6suDrFY&HmdYH*%(KG(1e`neXGkx(-Hc2QOo$A4C#yRHcn{MJjHz03xcO`}T@1Uh@ z%!O7pLKf2vvvBO)l+v)A1e9@NIP;D{F_x6YFLC(jOAhI!^&r?dgSt{g`%F4xsqGaf z9OXUNqB53ZGCJiLX-S=;@idlNg=A(^g<=}x@f{V_+N46%asz7Ny@@1IYH$zzg42A0 zg(PR{0RmBpQ}c+p`E3kh(;yC6Ok&eUn%}~vz@u>QJR?(73ZQ&;RRoiRU<<%xVlXJN z90nadS6MWT^M+Y9C_L~=@%!}o2yr|r{MOa7gOb9#k-p)jr`c&V;I`bZ=3_Y{q*Qkv$WTsfmQb$R-t!Hl&M zYZ+>3yvaTZd(dJ!8w>m9(iBDXbqZl?CKq;XV!{*^vt=a?IfZO>O11fjq_WQvmP}yf z4Zr%IicFS8De9)FuG2zt_Pe0vG+aoMdYLjC2OR6*Ue<6ojNeUYChs87p_}#Fe|5x; z1a`=|YOEquyu!}=+Hs^H-%+G<5VA@&kNWJrz1JOfafy^FL!Rg;%gG@2O4^UWHS8q< zndUW$;2L)k5Ztkh*}a%hF$-EPQ0*#~@qTd~NI)%pn22x6BRSG(P_A_F1!~PEDWHgt z$d{E=_(*x{KB6k)HjR;yE92sg$is3(TS`I5I4`CZv%LseAoz>av&&g_tI}H3sdC&? zbDkvzq?k=-2Y6b(2o5Bv2~KDlNm=C`f+H%gfn0ungk_b%p#fy$hqcpXE;@j-8fZGRQqNb zI%Y-;2?(Jnj655aaRiQ|iVgS+7jz?RJQcTm#ZuE(#5zxg67L2l9?C&?WuL~d|3 zr`|?zeYOr7FeklitcoBs?P*ed>o-Sc`NXrC8Jmy6iR=zb{FMItY8STPyMHmJx#mlq zW|m^F7;SBj;YP-y6Zh*K=1a0wuK7-Xqs6i5%foI`?CX(wT#ex*kx9OzAa=ml8~^j1 z)jQ`_KbL=a_k-Y*Ryx<@n~zDUT%(nA@lR=qT(jIMweIw*n{9;9FSCC$WPB6dE}6g~ z70;qu{S0sQW)~T#*M7>6)U$_elaeo%O9H@}uVxxlvzYLae?c#4d?JM9KIIm5w5&o8ETAi0UoG1f z$^P82T&d6)h?4r=Dw9quXc$GzC4$}wl&|Dlh0=t20eR>o_PKLgfHle>|Ln( zPXEpy|FWlU;cnJ3wn!rQYBX z|0~bquGeAx;w9vocNvmz3HN*UtA+oq>zR_Wkh1Ql&m@%Y!8PSY6xii;$%PN(IEOsX z`$yEkHuS7{g3q$8ec(UjwM%yIQ9}Db;9MdwaJVM)a^}8iK+pd5(V;~DiRZ&((1%0+ z?XeYjUIodi2d8!b9?-Ze{;b;H0iUE_a(HOfBNwaV=aa4I>Hl{sssX++(~R?-dti43 z$0h&vJZeQ&w6N{nqyL+a74-{m_(pyCHB^}2h)(<0ny$_2+^)ItiDE`7uTDF zKhV@ei1?MoSSkOnxR^}5i)_e1Dh`sqSriRR_hf6m0%h9y-Qmcu6B2!&Kl(I_-Mm&k znx$U%=>w^`JYFxs1F6UO`{${0`Z;wSn}wwMfEA2Cl-~Ofhn6Lb0uHZt+Mc5Mz{97t zRKCbw%bo1e{QtcGrT&kIB*um_>_7Tu0=hxnS+3^se@8k4j4m_Wk@Tk>pa1Ha*4-X< zx(~m!Rll5y<2lW}KSXZUXw1lCUxo~gbM$a|y>twu`f|Rzj&TWm{5i(?`mpTLEhI2@ z$G=~Ym;3s-c*wov(kuMHK2W@0=r{UL8~qLZZzO&u-rN}-_H^QiuKB*CM$Gv_nnxtV z!!@T`xMFa=tMAIoeUVzj>pj8^O=q@!t|M2t#uN_>csao^%xdeJqX^0LfcYcId~9etbz8yweH^ zNV>U(-znc#4Xw$O$HULb!&@<`i0VGi|JJ<-MiQX^9+SJN@X@(g-M080gH6~-Pksz* z@EniU`lV0(Q+$x{$#z<9Yg?r!w0u15oAc=Px~Vfq?o&(UXQlaI7*T#*rB? zw96a7-_V(q77c5!=FVY~Y=h(qyXJ2W&N2!380qJ|8yd`?NDea@2p6D@dE?hHH<$KL zVzYVK?Uv&;sHwG|LN8a?>4X_RJb!SVh zmZSrA{#)AdV8s~~yEV7n>wr@sUDC50rYj7JL$s0F<&j!PH?rvi9H!LL(RSk$xaMlD zYYQ;QC;xzKYv_$CEhQ#1(9%hE!`$mrKW0q!GaYgUq@D7Wvo6gF7dQ&Cy3$QLATYwnbpD{6vmhVI*F(SHqgDLTXvwwp6T5PB{r@-G!l3T6)@_*%T!;yw zot5YL(x{GTzdyxnU*-93^z>$7+Ex9Bz$LFWzGq}bP1Vh}NLf|znbJDxYwxEw{eCf{ ze-)cQ$2WE@Ye3e!d|7+8?kc&5yNvp4PNZ}C0H7(EslIL0%J)_)d)wK?+`+&3eSr5r zJ;n-4q@C~Oa&A1)G-G>TC6ar2R0q%5Pyp#8Qup2M~|CC=dfOlfJdaZ`zsUGS$oD0!pGT z7Q}!!q@KN_{8lE&xBy`>U~Rnj^eDfbi9S>PcNIla&&g3jj(SF10J<2Eob;_e-g{`Y z`;W05EU_rz$ojmb81{r4R^#DILHZ{6`9y`w%BCIT$=M0kMjR?tb` z%HsKqO=fTbGf@}EVnBFO&*@PgOOqa!`s3(}6)_+l>04F&$MmQkQ~fp`fGFxBRt!i< z`qmKt0cmo$nuL0{kBh6ug6|5=`d=VPIa{y5kp)4HoSLDpXVJQXQ)*FR?L4}@j#3j8 zm%`1ZjY#?6FZg(6H~B5r*`0kdfe>1vrohX(7u7wG3{a{jVYV#B=Ew7sWL-bmGZp(R z#V`{Sx-IPI+O0_H=R&oqPwwZE3wG>O{?3W*;uqM*2=8v(BuedWggJR5n^Y_B>RfwE z?dlZRS1WR^T!ZD5aTVnBfF#A_W6>gQW~z1_xftJ(`sb zn_U;Vr7~~*cji8a%}}ENo5#g9Q_F9LJDr%jinB5 zLnS%~{8}kvTImp_o@9q}jPBP7?eDaATZ2nJ5algmbU5O|JaQLMg}aaH=Ph8G$!8Ma zRi&PcEiJ3LKjgtY^6aQ8DSQz#>{d*>R?tB4iB-}-Vb;^Xps}Z+yQx-&gOBP5E2!uU~pq%d92&!6$XnL z<|}HPC}?2#G$?6c%!yrxMrOf9c19-klN8jBQqldTqC@%;qo#}bk;f4~Bo{pNMdYbZ z_|w#Z{L>jZD!Mlh>@N-h5^Ahr@i8H|NSdWVl5rLehEc*y&Q(r&O814anII(TFgm2j ze((;(Rs>qC1qAw3#-L87b$xio0{fo?-G)q&1_#%~sT#e_M{iYqU)lPe9v8IC8oi~b zZf?CUkH@nv^`;u8AW{EXDikd8pduWD@{sr>Grd7qJ#rkwGM8oNhouBT4Kx^OwElRU zjvxK;>C8Ss%p|1vWnDqU_^2@A5dEmIyC+c`Kl>G_GGMRGVL4jH46sI$KF9A0pc4#dWytK>r2zJuI(EnAxF#Ma>WR;| z#vQ-N%)nymh=%RE-#%mBK5yck)>_+Sdy!t|R1r+15j-AJ23Qh==rJG+GvrQ1)8kc_ zYW5`JZs-!@{1>$K9Kc4E2Rkn#EKTsj>hzgEg0e9VF~)zZ3|-r7hO>E= z{7KT9vz-8PN2d*!N!u5N1M{^uSF}8*Al8}CnB-0CYMv!-{Fk$GY6~{zanWRb?nmC0 zF6&tLYc>@EOVj}pdnA=S+oV6fh2Ms}4b z%&^0{kE+0bLT;bE%^EeAGd25@B6C~Z3)>)1WDLJ-Oc zdy{O(D%5Vqfe<;$Z*6%AD^-GvsOwK-3YN-{HcL-m#Rw!=Tk-g~jL0 zTD8t@emAa9i9lY19+I$PC@i_h>iQA2zPeJKOHJd;r)OMxx&PSIru(pTetdt`V~Bd) zhBtkX+qO&hnT~hnHnU0P@gg=i!4aX?t@v;^t?UNKzW)wJ4(n}xsa=+!jGhaYofoo^ zZh%a=V^h1FiHWVwZ-S;wSSI#w&G5f2Q|^YYqc1h4`a<$FU?||AKx8rMLPg)7g`SiZnm!_n^9;kO;Tn@9cy|3+4cH!>#a&% zA}F7LV|O#;?BjilW2hZ8L`xz1y|_j=G-@8{Fr6+7`*S+0j$IqxV^^?vJ*7)Nb&O zBkj)JgMaOGnZB?h?$rAHY|%w-PL+exzb;wz42asji)$yly|IvZgmbKlK6|{cH^#F0JCk}^Ej;os@Kz(=FP-NqYo>|9m0{<6KD*>^ z``9M?JxArd>(uKbeI=6X)aRmJGs7l(D!#?;^#=R(s9wYo!`vmJ>kL%KdK>F?PQ$BO z#GY*#@>R;~&i|6PohvS7+e5}II!OrETqS4PkE6}|L5`=XPteb!ZZ7dvjwi|O4N7mv z+=nUeyYF&9Ur(F-H%VCx@SWQa@`mw-UeyC~L6XXhfw!Xz;Xwdb>tJ?o$HQNxg zYUqhsdG|~E2R%60rG9hiDN6e#H~X?3UZ0CPI|FlK4*Adk=8@~SMVa>mfARtL>Zf5& zh(fy*2=V$tXal*gt?q&ih}&Le9&3Tr7W&Z6f9N zoFwm);d5^&CNLSRQ*~|Lf4ke&rdWR2v5+jcQJtXy_#@cXKKEkkM%xE`3R{# zh!4p_G>5IzwxDRg^z;Zh<2|fci@d?u$wy_3=X>O4sa!H5eFw#2Cf}v({kUi2qfel7 z?B;xu2UOMax_^w>E6a7moZ&mB@}XWOcq?B$VI-)D(NzMfCLRU+>-@8&OEXT8TLD8Z z>S#RXZ+3j`{VyK|Na*mh6|)kOR?z+_mjDK6I!=;T<6{QcJgdm<5`Uwi|J=b6zYXm^ zz9oO1?+e9eA_}WRn zbj%?x;_V}y2^KzWP(zVOp=-{-SR z0QJ3<|620VUB7%Lcje-^}nth8xP+&F&1xR)HweWA(` zb=l;CQo4B|OK$2oFKx2>cPV7q zcTJjm%(6-KA{PC`@lKNDmv)sSJf(CyDbsH9ras>{C{sByS4z*7HriGW^6+YM z>lEZ2CP;Whrwm}2@8aYmZuXXkao$A#t@|_x7OHhQ8?KQ^ZFtAnvAYfX{G{>DgZd@c z-;;Q2hxnNt;2S&8Gm@A=SbogTw>WC$Q5wGTpunn*rN_fKs*xJWE}w4-qV+0YP#KoHLHKoAKyqxNkaH@8y%i2-S|23g4KaxPI(>9-@5+Vk zhorv|G2dT*KS%FwZz3v~F!+RQ|3N78_p}zkZ$|;&K}ye%eV(#;hPOXfm?HmibKSaT zpKOG!rxyYz~kNA>Q+tfd34=qA)Zm~ZPRKY;PD9$y1gpL zANbXLJ-q$u#Pf;uZnGUod|}7^!BKmS1-Uh~+rlp)tvWSwD;DUf^ylwtMoY0|XZnua z=dRExH|6{E0YtY7TdR3N#)aV+bCwPtEG4TyYw;{{lmrpXJ+jW7Li)J??3!YP%l8$E zi4O&-&^t%nJ2{okpAGZkR?p&30%W>0A__7kR3TOOzJ=b$p4F~@u6C~Jf@xj8ZsOdo z-R1&e;QSqqh5sIdH?n@xc^i{5!sqvUI}LmPG2bY0fs(FnKBBk6(oY}hslPTfm!|kM z!IuHiX()Y|#{HZoB3j@QxSyz2eZ6@h;p%#U<#X&41dN=n#? zDp@W8O&GR969Odm^82lz?H{OXFWY&6?AI=3;Q?sdz*2GlW(CQ|IFN%?Ag|e++s^aW?J(Y6W|4|@64`G{5-?CYC#?ROB7!VV+4KDfFO-X zy5@KkUjHw}?%&^%b(cl%qiyhx@4ZHShtB&%=tIZ%dmy?GX%zun=c`88RX@v4#44&_ zkgG~>xMJrRg0L$iu@onT=dmg77(v)VKeZ9;_5iRe+n0&sa=WIWuNTJiOD)5Zgwc68tXYYsgdEqIte^U|(>w%eccuFQ58m}R?I zVr0YI1+r=N_yc48DV&a*)@1LG{LWr~_+6zt61-{7U7zuS*Bq<1NLdx>u~ z`_w?R9K(=&Vvu|`KT7_ck|o>i9fG!pB-eNdGBr3L50K{t842}gs(Z$`^(6N6e8pYe z3DzHY7r`+#EX%&r$O1K-dvr`R86_W47m)M5de0osz=OQb<{wiYdCJ~9I(Y@LedS1i z<$Ndd{2QhKpK%slYH`E;Fuo}-#i}gxSY7oXte?V9RZJz=6aFoPR5#xc zVJO`(N<9YO7COownGYYvxoB=F4!j`Q5ue)c+(QiyU=OwxD$OaWkQUdg3&o744z(O$*Ey&(p_=zzb);klf+|WLV1wd2c@jx*VZ= zJa8Un(d~|pWe};(&~YQ0(ly5s7kG4M3p+oQM=mmVJXy3lzK7FZCSv!5P6A59VGZY! zoS4>?g?~Q3nIJ75EJu>ETyqCGdE7KxvAavHyhm$1ZW2rGQvj zi)oPBO3Ue6B0u9zSUSY)=}FI!K(QM?0SvLo{xmX!$ZX7vbfRSWx>Llt5xtxr1t?`+ zZ$r5g+M1)Jsr>QxsGmKyJa*cwnJnipo3*?J^Z3Y|KQ~eXeMr4{eE1lz+^g|LU3y@O(6ZK403B#p@j3elaY=u=$G!nsR$ zTi}sv^Cy@S^ZU2?wepiP8{Dz9sVD~++eely%F2zRMmy&27Jb*&us-w&-%MGcg=*+e zl#5PEqrK>26wm#gdzpA8xcp@x>Zi}W;CHE$Le_Nuk}y{tWb?91i9%uQ zkshJN`Xw(NmapPM)^&k}qzRumwuDm3Ue{2$9yyhCRWBlQ<*%+8Uu;vkDv(!57MFRa z8Rd+;^2-znIckuoB^5yY{FjD`nzJ57L|1v;Y^8qdY zE1Le(Wv$6X!K(U~z)x`bL$v(A<0zk~cWL@}0YXc6(Dd(V`d*rTkEVCi^dACq@k+b< z3X*ONlKLE?>7_LN22FPce}&V(qVHcA{5PEbElqzs2!0)CbZOcSzK`=ipy@=A^!`qo zz9dL`|4NE~bCC4@8{0m{y1BcG{A(jbtx2oukF-mEby+W=BisrvBKKuoi9Zklqs&g4rqYYaV{4YWn-~v@0+KML%^m}zEgP)_= z>JYq9t3zEkz%SSk%!3fn>~F((@^4_@ycgL7x`a)jZ7e-@KVerSy_u$8;b~IwmmTRB zX*xv-{y8Nb+(Y{_L+2mkUSl-PxYd<3&A8Py0Yd+bo7~8Vk-oo^rr)LM0|7EW7&rTJ zfXolZJzoyM{9tl$)i(lUdc04wzk@GXV{&oTcLQX0+_9Yx^jGM=`@cj6ayPBO8{7Cm z-lGiUUfLmy-`y4<1BoPcK^hm*(*#oFLD~t7MIQ{nc!7A%UwBQTrO(kSyd|o@w#cLk zPt!3Vdx5IY2Nu1^Y5;Wd157z!;W2NyL@j$cwZvbd5^~jlGGf6R*s4E~iO)LM3P4n1 zF}ULcWU0A>w&R!pS&GI=Za#YtlmB@ISd7ptTZrKGVNmMyRzstzs2 zb8i<~P3K)8_2bX@1~2zz){kGyy+l4u`tj=!!3ru)lHVZ7-8A`4lDuR4T5#8@`Znp5 zdui@>04ww%N&XY-GLrlO>oJmiedNoy2T1CtU}y%zMUrn{jx$%U#q0b#bRndfzb5nO zN{Z-T$u#OAso#;Vx*GZdtZS=7V0v2}0)N_ho290n!(DY@}rC0h_vqwT8~SqtVWZ0(!Sr)nB5 zc`u6D+fBK_S~R)uB*XBS$em1c$=i3s**722eT>(T`P{Zn>n>b8fX_H=;j;h2yGu$kyFvAbeBgv*&YAh?75KaJ$KzgUo&}9rFg*aUQx~8vT{f|*#f% z&`4`Y>9=V-PXe0exrk=!5xfP{>3E>i)@G&dZBUWgi3D4F5LFUJqr>?%$US?pr2;MM z!z(B?E}5ZF`BJrcx0B{AgUJLR{fJB@1o=6P&HyzbiRFZXPezX`@CzaLtmy>9uCB#_ z@YGC=t2-k>rBW*eodAigno1kH+BrdD6nXcxR|OCTcs#cr&%X0ivV@#9;%x$0+pLVi zI!2HgjA%X7i4^QCX+}&Af+Z`)g^fy1OjgUfRPYeX${!y%wPq?} zL33(0%s4)9+zbe8Lby`MvWl?WSXSvo-qj;;mOhF|B*eOG%-LmRFt@l_6U*AF<64$= znGC)*FpE_EayrUCOT>J?Dj(c>X4p54*>DvPn0~=<5^tCv^I!r-)C(lrL%3T3< z$ayB}gg;eT#KnMG#4lE86W{rc^y!YY^Lx&8 zk0V{=M}%#n81x5bfm_D{r-{*WX6t|PtLk?wS)n;dCp z`}-YfXMLRYpXf+0cBH2`((@eYGaYH?_&D1WcBGy7o%NaTNY8epo$X)YNIT0rzdy~9 zu5+ZF^y6&*Mo0R1N7`9GXWChxg!O-a|M&NQfB*Ma*hsxbvA&Q@4<+)A^@+y1WTu$N4@P4NltAG6LOxcX z$i%YoWM-&-@#6aBee1%p%3ibF->n}=77IFfVysBOspLTYP%KtI*4}EjHrJ(+nbKI@ zP^N^+&^OfAUFF|&7BV*OuS_(x zco>8^+*1iV(HPB*gcrwhIq)4S6jSy{B38`iQK4}p9m{44#e6ANB%pM5Btf2{sZ=&* z7xPh6Edrsh7Gp77x7o}f>nN=20qmNLmqvY3pfl3NpT0gk4IvIEfq{Wz+y z4c(}GKbb`}O+?es;zBVVPYfbBlD~0(qemou+xE)tH4*fTBv~}x$t(d2plzoI3dLv< zVWxmp&;^6ZAyRV5Kq;9jBI3is8TtxFF#$bpDcFg8K9wvKNy*q~Y&e>Sx+KP8iCi(6 z&DgmjZ73Q!j`dhlL)sKl`IMcDCTUqbzUUE&CxB6DatvyaDZ)!J=-X5RKO!h<9eYe> z;R$tKGG?P5Li2-m>y|<>k%n4laXnH0*-{se#-Lg>V{kOiYQ}~Pm$g~vqBnB+1nP4{ zcyT+Mqp(aVoyaF8IvMYx90VCfZD1Yl=zrXcw2Ltv+Ql@xpWu}s z7@;SjVw1>(gb5fckm*QfnccssCqe*FAezgil4!ml$|1mk1RDL+h@DDghKj=~tQZ{< z0E8GJ&l3Q8u*r0%fH7x@F=q+*I$}3=JX(wrNDdV#lybRjz9;|+lAIF>X;TypKtW*5 zM>Fwk+8#`%C?m=`5oeu*BmBXQ;emZ%O}&c3hVkKt0KK5 zu@2Q`B+-o+@DOW5Pd*z<#7p@^CwfyZ6~QwGO@KIocIHuA5alL|TL@tJx=l(q^r1Sg zU+Dmyzag@&Gs5BMYsG9Vo9d3#b!Ia~G$v9#SkB61A{E!-A;8}5&O&LR5X&bqGwV%U zT1pg(hP*-!p-5;mS4NYmQeL0el}IIu2`|*FgvSR+5!YuD`H^HSu_1?u+5lZ1+nmXc zrV{ZXLjfmF)KA5HHs!1@1?$k!ECo@dv5+X1atam>liNvwYAq57rdEJJ937O*#1&p5 zns$CEk*Bm3fu*3^QF47xWSzvBR;AE7oQgDN5aHH!cWHn_>sIiLo;7RN)pf@cnIb3P z72WEjT7`?(bq;4yWn^?R9w^kgp>9Ku0_oZyJ|qa4flw2pF=&Si&`&tG4C;cFE2;Dk z$*Akku1NGjzt?r6Y={k{5tK(c`B!1nMj1Fax zOqz^|?}=&Hw@w382vdMpC!&1yQ!ROX$kOz8Ql6Q4&& zH-#=b5NbGh`0K&-)Bo=6cS1i3Eq(`q>q8BXhw2X=e*7T%JwiU$Hhtva;RC^~=&PZR zl_2*(aQ(EA!|#M%M=zl^pkni<1{Y2hkJHfaL7WWjI2`&WdivD8M;<4sdr_H%(+)p= z1itX~!-o&Q@WsOi4jwuD^&`RhsYgP?FC0945H+g-m2Nr!Ut?7aqdqK!MngXeww&-w zsQbZpUV!|AUxeQ$5ZboshrdXhADSCnFfH^x&OcIB3Jq3Gc^yeH$UTD0te`(1EIJwukmt{g3rl)m7U==c0$u?y8Az1=pN_hkBFrzxq%k zqP_P*b5Z^0Ps5M%Uw!)k`X$fs`^$r9BoDqCdJUBb9l`La@VNN^qK|2ZzX9!VsMHJe5fjL~Opc{zf1W`Ut8ou2Z#~^9q0A7#aL}RUou9c&ZEk%i{vi zza0z%JS4-fN96~rCcG7T94K_?hPS^Ey8YT;gf0j*ef$@pI3Dv*E&iwKxO3s(U%*f3 z7Wl=Cc?V9Pjekes_aOXW?u`gO6T0f^kuQWs(I|z6s>ZIWI^p-hn#%iruBPu_g-))g zgFivexgnq(l_#JtOXxdQu5SJxD^PXp?^!<|D`#DU-a0SX0Pu-2{HE%_VK?pnbYdWM z?mNJ3gG(?MA-z|Hf5*Wbs;)k-`mNw3*PBn`0jhI-=jCGpq3OX!S9!F4{(-D|@R<;d z&G_m~q@NT7|4_{cWs)+vf`QO=p|2yJc8rUN-mVI~7d+9`uUGMYReIg)Gm&bY_4;%`ot!9NNFz7(n-I*&9=`M{G<%h|5>er*EpNTtF1QG-W< zvs~4`F~I7hfd7HFN&&xzC}l!u$ze@{|E&tOz)jr$!6&MM=uImST88GtgpKcM2JPk$ z!=9^hb1-m;^u(eXyNRz~<7*WeZ7AK-q=lP{y(I zw2PLF)m+6ftnTWG^b+;E5WHM@xONRvAqmeeWE6YXmiAc|RqkWBbn%B^yg<)FV z#wO5alXDE*=cNn~M9kxA`DcP~Hv2dGhXR`TpR2(66_n_TmD>*k} z@50L?f<$d;_iclkKtBnje)o8fG^@k1yEC~`v76SyDyDOT$y7omZNr|Ck#*Rs{Q{ay z=TfXeT69I73JT`iNBfE`qp@rWJzfBOAQ0JXe^0) z<~&zlw+!YH8r0c{>Iwbi6PKV8iMSO{#F9{lT$XZe_uI__(b#6fq=YKW9&K!BNEgt= z9ZBR1(o)Ph`q^i@8n^^gSFK^;J>#reyh4+&o0ex<$j>rfi0ZVGun3?W-e3eBU_}5FrS@hMbSAKfuE>fFs|?3!xC%fxgUNiM z=vY9TRcQx=NAr}3L>e3HK0BAs=AuJzppN>cFdEIFVTMYq@7u8A0(<$oO}Hg+ykn;m zX*fJCxFAIf%o^0?an-sNc6XOePHn`Z=()fYtx^W@+nAM!rV|EDIhC%M45c|#0XcF1^5zIZ| z02mEWGSh08@Zq#{&@EeNEEy$xL9UZe>3$XXn>!vNryztUy4-jJx_qn!&%5jdU z^6B#Yv>8)OFR;`UYUYUZT+#x=4YV(Sqwhp4fwnQIv8myLRethX%lpwvxE>D5d)>n) z^${9H`Y~lk;31;7+s>KOq?jLh%^D`Gc~S@w%@cUjpk4Y}VyQ%w$`Ya)jV*{@Dh4t3 zU@D6Z6}saf%Gf|8i80h#BqW9#BJxylR7l=X$Vb%j8t0T}C2qtg?DD>qYweZ2k%+xv zU00-c%_c;6h%I#4y^+31KVEi#@4&W4H6w7|iAqvi%IAkYaXl&`w1Q#Y!hdD1$!U1s59STQ}2cYRX znv55RrQ=0JCa_?^1~?Nf(rG2{?Xa-d)F|l$JonXTN1aa$Ch}k+U=j9hr|>wW3YfiF zgM~z5vzYf{wm3Gi;U*Z7t%y@pN)+v=wdjL|L|L+6RMFR_?08hIl#mvPvYcC}xq%zt08z`q*aXsQKAJ%5f%eX1rHq%UvurhE&<;^`K+kA;)EdNUy$ZBJp33OIa+lKP z+@)YygI0Hh)U_a+g*x`I<>x_i3@x3&sL{%g*86rcJKgOuj+??rWD^^YVL^<301<^* z{ybA#u`G1aGtjL45~1D+{!A7SR^j zAlF)`F|-v4Qy;t8k5g&6CMlh(Q0;R$0{4&=<#j`2k!#_KW2uHZI#6GbCBOx#P%7`u z;hD*x<@YRF>R!WiBHp9WWVcypTerk@fU*oa8Z`ceVN5A7z+KH$U#ii6sO*{T|B$R; zcW$sZ^w?-rJ!E0h3~k@3d(>vv9yLh}*SnLE7Q91^Scqd6wxD?*w?~u3VVn4vz4JqFO>79iB?&;ZW4Y<3kis;ZUwQ2z9njL`R!enl0L_$oPUC;Ei1xvmX_M{P zJpPO_OCY>)anglr93d^Eohk11Bh7+ zqK!=goLvUR`HK*9AR`GsDKD`L4nA{Sf|TCQ!8V!78b?XC*K3Utl@FmbDmap*1+f|%ZHUm+Qe88w;&8IS zPEO^uOPF17sLPJLtoBh|$${-IU$==)9$)&7*vJ4~X3)$dZdBM&!)A^eWGZP7PLzfe zB)*Nu(PPp#c=8sn%to)wCeNLsS7wV>W~*0bn^$JLS7rwrA^mY|LnK1R22Hd+hqZv2 zl@TQ$KAtGA=}X~7ZhgvIL7s|)8{!Ej1x9*OX)B*iGdT{u%GqR7YZ=`=o=cIQcE)04 zDiRVx#hOjZy1}SQXae#!98}>Fe)PmGOi>)RwvjKpc$j{R)DlmQ=#F>!7OfVKs^hqm zWx8~v(#8&nq-X^oZnd}xjsqsDo^e8pf=6?+Fk|J8u3EsFbJ#e{MmyGw^CU=B7hGD( z7TxT^wK??E>7f>k#)b#{Zb1~LNO_y&21Mt7j*dk zb&(+CqYajw9Ykw;HV^#Ww!y*66vi5-QJDK$F#0SKGK3K5b;*H z@g-T2+#H4=T-XH(7xAId7-~p*pkRTeToH=-*Nw3y4m^(Wx2WJ^D|-UNDL_k`W0}QM zFv&M4OR!L^>=jkdDr0|EtWlCpTL2+-_thwz9gVQC-lpsd?^H9X2XIS(MMxS=)gn@} zO!z(rBCCUzsiq?T>!(j-t)ux3BnEw=ZUkbF6r-q(XiXSIG-TP!^FxI)N8z^1{tpf& zZBEe1xIKs@G)4GwXu_yDibfg63{`5Esf@;x&qzjlU5P>rbX>5m#WoWqqF-G=GaJdq z4hI)zwrLQALKx7NU2;nnoex>MulB3|?IG-(vU1EiY_Oay=)u~V%6wH-6pAKip3o!>q(eOeknEL0`x)sB z$E}Rjjg?x8^L{yM3Ss&dc^PkM&?>Yg&MesdixSu>3%!?04h>hlS8NQU*2fcr(Nd}? zWbQ;nv;Dxq0npSQ%;pjqx6QRyxWcE4x{Nkz@($T+(M}i?Ti9Z*wb^OB?cIH_D z&KLuV!WoF!r~*M>Ohsd8$tsOipaSuG{!PplT!by#OBgaM@4R-rjskf)j0gRm5aOdz zT}Lrljd+A{10A&E#2t{$8$1ds+&s8cOaALUf)BCV?JnvK*ONl55T9W8qC))*RI4MK zG#a+@Tsq_-Cx{GY+pv^jtEn=lYz|vvgDSeDU(@A5WJ{$(CMI3o*kIdkQx21hn!35U=y)?hvwv*XDjI6=@2vp1LYSmcd6F-a2g zv*A_E`Vem_)z{xV$-mQFl8?&-e&s6Z<6T(4fKOuR++Zd|ZGXMw|*2vZG>J?~HV45vT`{us zt9omUu{9~A=26j?>Yv$U_RnmHM3l36HZ!3N+6~4rr$!?jhcgB%S1JsXqjapr)5uj_d%o= zMGyiTMUq4UPcx$?rZAk%7pZCAQMoT8ksoAmaqfNE6vsVHw`Ad5 zG7(FRCJT)7;h@u<%rX<=B4dN2f|(G6Cj?!kH8#MhND9reJRGH}!O=aXdLPfZth~Olbcq|}Iieaizd14`wLObu3+5BiUALp@Y5VXY)=j>p% zOdXZZG#)ylQYP9aDU71I9I(+e*Bt@r*T}-YNfnNYsU*Lj%CP4-M}Z%dPa_$Y&)3+La><4um0#< zo`+3MRxFCPxL{gdsj!T=_FA;&Bx0LE42+~fl63C}4DMfAeWdI#YB)1p!|1dbhie)c z&7sA$IEY4+L{8!d%@xnEc4nw9>to4ssP)o9#LA7s;p!K2_yEZwBa9ccbTq#?VK8jt z_UmrdmROWDYOmH7`M43=w+~t|EJC~er9ek2;$r!;TO&09EiLN1g0I6?V^9>Gl1omZK!jHpC#I~8gHk(`Sm&5d& zr;%QY15=vT%UqsqC0M3rHxQl5Q-pf!D)?KFz2{VHx9jBgg;9v;y>45 z-mvA?L{et+}IFX%I2`j zmM?~UyL?ox$W5@W%1+2qPYVJqrtLx^=G%5M#cd~Z_9Py=Ca)&>X&AJT7 zFGVNcafVcqJ(eA(!OBUpCc}N=L4q0h4o)E+m-+GVZUYy}UVUg$67C450gao0gfIQM zhJ0M>rAFb}L$^E$dmG$59ur`RcHb`PFX*fAm9{qj4zG!FfwFXCE(fzz&pBAW*sM$+E2KzCPeeLpBUl|u-;^n25nLY%abN0t0rY_Pz>$=j_A%P(HO8EmtYD}lL> zmLcl22xPA&*3oKOgQ8&Z!V$%|e??Tbgldpb_GnNY9(tmf7iZBAiY9INWek z$)+}o99Wl)>hDYM>N+z<^A)>_rs9Ic@mW*(V@z<79gXI4*h>nBn2F0$7znp&!D?B2mO~=nv!CZuhOQsiUUi zAL+g}0oR0C4dXK*MGxhzN;X@B{DR5j>*3{1hwp+6L)q zG3-p%_uIXgcAPu$ZbVm+W;~xn?OZMsjP)DWLl#kBIWW6*o$J^2_4h9CUKi=o3k=kf za@D#GwVh|48E&p^Timj^p|&nvEM*c)vB5(!hLX{IY(TsBJc-gI}snu~)y^O*W>%^H*ZUFtJW`A>L+kH&^UZ`7Db zu^1`R4#E;f^cAnHnAqJK6GlozJhtS(9L(X{ebB=PO0!lO4@R8YF&l^QrM4r~pV`c_ zJa?XQh#81_M$Fx)IH@_j)Sc1L!$rKkaq|RFOI<29HgU5DneQu88YJDMndllMeULH` z+>#O2svO$8Gl>VwVh|k9F0c@J%Gn6tc+q3qitRjfVbAa>)mn+$W(Ob+q?ZK6dwvvs zcfjrP0`x!~xMbG@=^&WsNCvGzxNzQP(x=WwT{$zU*sg_XHNDOB)R2sWgQ-$sSkKY= z*6B?#ML75rIc{llo&5V))gl&VPpC{Wkr7wmm_BA@OT}~+_;z$iH7}BEBE3#2b($@q z)xzplts4IX8WR7{}qfppSp~lMh5X`L02li$^g5?hK~ z5b53I3fEzFxMQKXyzVB`hMI?JBrcV!aS7RnV!KOhP|%AckUZIsux_WS@)_jwZOiGjKHxu0cqoUE@Bj_moDXP7F<(;e;8u$spL0_@>erKLjsp&0CUv zh3F=Q1>Go)QEjFKFuPG;tnD52_<@^bM7XwVCocE8vC}yx)n#E(_m~ZZZpp!SuQuz z0Cfg$vq(%^9Ka=+upFms+>4G!ZuIGAk841?g6uF2$NDTrotIQo#2l9{jS$+%mwlXQ zWk-`W!ovC5aI}O4E^?y*lVIDK&sH<+&xjqCCQOlT4v0gsaD(e^Ir%X3s74nt0pauS zxNV2(-lh9?+NgztMRhK2`v!KP0xE8S$#JWzr%bNg0}XdTGi%`x20m$L^VB)IyhV1I3t;d%;xpWXbRO(;UFqQ6*5Qt?p>8Yw2FGF}mdgx> z`Sx@Do!_VdS_@5xGe!ECn4r74ly;ldC|x_@_79W|oIEb!z?^t6$1Dsg*%+xZUW^9G zQ0`XKUOuL7fpkpQqUtr6-JW8m(B-POWv=*l1$LyT!^3pgFA07Jo-` z?7mnJ^KT?mr8H8slhpiiL1jGrZsgK%tVbeXxbCS5rwbN8z`++hN{c86@X5g~o`O2q z^Kg6oO5-L~8ZbGH@9We}St&S+pO72jCMIEc-fhr;qhJhS`4G?Dasq7^TUf9b8N005 z&dW0NY&e_4rj5e&vk^@_)QIJM-JO?MF!dHz{mc^7+}%FT9|V-G3+5HuH=$q9Ca1U z3gsY1p1i-&$%fEADU0`tsA}D7yZgH@h!93!&_eNSA@_B89GrWtKOT8rmjrp;5#)76 zPz%Hdi{^*Cl=FlV7ZIGTTWl(}|{Vi?JbsIc~ffh|?Gvz_D)x0~F$HWzc#$!mdgh z0i(%SNe+z!Q3WND4?J;*&YG0PXCB}>0H?@4g@IN+&6^ObDy#)9qA6C2`{wAz26noo zk*3+O=Z2#sRJ&rXfc6{fN@+{nmL`dbPG4JmyK8>9U~LmF`4H!*R8*{SnISIYd}p3% zDKV=o=F#DIIdsP6saVINUlNU>^A#%syC@p66yI*^GF&0I^?0w!ikgR9G%)ES#Zj8fsfHQLqP1&W!i~I+-aYgv2H3c%(>65Sfpv8QnJ*C|4J_eS<3=wZ>=> z(HcG9N?AI0V|?*SvJfvA_?0~HImOqV%~!bGkHpbG$_e6#puiU%iOb325ahZ2CFFg% z!DFf9Pe*{wg&S;>`00wm4riZnJkHUS<3^H&3#I2};90<-auStt48Y4!A>wq zI6OEoY;^d%$;>rOriQ~2%dbS!*+|_w#A(EaaI3|GEdCAL9vzo%xWg>rb-UIOgu!tX z_t%GXAi-^q%27@@2H-dxM~gHd~)tiXh-t zvufl*d6(PRQdZjV-WIx#+M3!l>JzH~GO(2(8Tj^eQ*bc4WMVO@{O+pR?jQ#J?9SMV zt^J%~C_I;QFYe&yPII&sZ)&oL1q$kQ#0gSp>XeU>;#AkVnWDH%e6A|VY%Q-#Db#45y1 zIAuD^5;vI_wcHgO2335!c{{tU8Ig)}&*rwBfxzmyd@`E{bsB0Qgg5ild6u(;O9?p(e`D95FHSPIr4L{ai_n}&0hrWPFFm*^exovGQ;P{>hFjW?zHJeeR~`q&cQ zuQpVPvq=MeuRqUxMgTNfp!dD2*M)oEDS(9~cD`@t+*ho728f2vi8){?uBG$>tM)=}ulQ_=>p7L^evB`X&igdl9u zv-+cz&AHK{BU-=SIJdI+@M#<%-tXBa*Jn00NzvxqK3c|GIb64^!g>esBTzlUwoXMO z>@nf`4rcDu``26{-+~RxVE0W!u|+dmoJNTv2sT|=rQGJ>({gMjJ_gST$h# z+w(bd}srx@&+ZP)l*aUE`2;An^lAXQ5H zz8*8ot=!r55Pzj9JC2aYLz|Q9g|O#5+HB&Jyb2=hOD^l0m0x>9rB-&*mJHL=Pv35V zei1kME~#~{)|PCsRPn^Ajd9;vlu}g%ctK(M0$+!5*mxSESh8zz@!ic<8g7i`Yf(`= zmMp3@6}N18MT~XahFWRFidLX9hpCF7ZQif0D~>7+n&S-k*;0<_ zG_%Sk4Ne((6im0)o8OqNC_Remy--+F6C2KZ89||U(gRWuC?#+QnO~?gusx-SsYjCd zpn3~+wNY-GOFO(2gnVYQ);9WjxbGUJ;qTf~&Z|Z=j<8%fNX9iWM&!`Re*BKY4MN8f z=_MxBmgJBPwtr~XltzG&EHli9!$%vtd`qX2O^rvrsmJm>m@i(pYBUQfY&_`r799I(zMC^V{fV{eD{0lHm$MPdSHIG|( zdrn9ZLk3}nj>e-~XrMzwfEX^z#fmf(+tCDn5LcMfxOD2$gEx$kjs1~zecdb8L|lT1 zxS+{w;;OM7(Rrn-4sG2mR*k=-2nc6mm+|W17v{y&^vWp>izcQ%K8{8k;WXOU3_}bE zS_cOhV8SPdr_oD>)(~b2PWxWPKh<;q%usmwUI;ruW;QHtd_j{t4{H#<;^^q^sv<6k zM|)$HN5x5``_u@Sq8j2j%IBVp#X5ZeoJLS;9C0OHxPRFKA81$P3hC#%LWm=YSn~k5 zr&NO77Z@)1~ae ze#FrX+PmWj6TUWcs#l9=6jMjwzXlsjgbXo}$ayGSDhTeB@X*dgKbQz32mu7^`D7&S-jXWBo5L9rSf#N&Xw zgKqa>y10l^9NYU?#ydb&f>0#1(O2323@>ER$`60k2QRr zc=`!mS0el?x20moR5fBGsKgzC9z4YgeHe;uvO>xGP{B2pj%YEub~~ePv!i<&_X~$! z@X=?^71_T_qc+%^?`VmfAr!V0=#5t%bkC#Oxtv+`09*K$LTO+q`$ zSU{;1TY!@?c6&nV9iPtFFNiQhRjf(#N758_}n*DlILuF;F9E z$i{NIm5A(yygS$>-%+UrsClrMK-*z|wv+f4NyT*1U}Qkl6$a(H#v}ug2oM~$g2Hya zemsnI7r>G$>5L4lj5Jh1m_>Rx>Py%!SsI^eZ7db%ooU7kX|!J2?uFfbsOR1j{(m&7 zH)~^$#(2tYVr-@w%XHzJ-*cO0rabBJ73V;+cht@j$;8H`6LTCmNkVI%Lg zN{qM5_GY%yZNdse$Oe0_FUN#-}_KJJ#;gtyY1 zzR_lR|Fs4I%|S2IC*7+~q&z5ewO=sE{&AX~qdJwF7P9K^LcwJ#jg?<7<D;WZ+7Q&p4dR(7M($xp?#Z_}(}HJ>$_lpU_I z5$}c1u?tqI+%fbpdyAHq&TLP7Q+58`kDfb%Pcc_y-1uRBIrSVy$$k9C;o$R;$8;;7 zIzSigC$o0F{##;w{YP40FRon|zNhlYMwZXVTA5d2BPj+)(tE#mJnZQmxovUL=89Tr zTE%own?hSq(1&O1vUJ>Z;=+CQMg zX1bQkQa&j2E&jsqHkN(7dpy9}O!)I)UzR9xJNSv^zwdj__}?e8RUS%=h{dmp-Rn}9LP^5o+*c&Omg%(`zhj?9T-X^-MeL^Ag%kX}pMrn<8tFF!ATTP)k?&#l{Ms0iSye~xL zMa?z%8ywaBuJK;h?tFvaftS0Id!GMw`6QYUcAx*?TbT25+RkHRW5_9o2rkZIZWa{+V-z_mEe<-urU0ZTFphH3dl}Fj{_4A^@Zvh(XWPNTAC+IzIu2^{OQPl%uV(mjRt<9RBv@^) zmgi{#c?rfR_io>=y5TF3h&S4H;efWytJ7DGSgE~=pdOe~o>n)&#I76<#%({tE3tWY zma%zI_GJ&(oo!;?#xT8W^jG^f*xD@^u>(G$3fpKd{deUZKxEkVqRlVAWLT*LK>9DX{c+5urXTKOnfTJ2g!dM&czpM?@mejRoi+G| zdN=q^mww@@pq6~w`^^~&MPIjbX7#}*cAn{qMaLzZMi$>DX!2fOY5MCVWvei&FTC3H z2l4iJ!BMk6AF(#L$po?Ssq7b&_ck6`cG7}sNA9!R zT~Fh_?eF`arV`EdO8*&t4D?1y zaSusb40wLd+6gOaR##{JjPdh^%43cmvv|?z@aRKY^#@jB<_@VQaGvwz{6c0-Uc&`s zrPA+P#dh@?nGHI*Q75q5Uo%M4b+TicA&%28O=BN@(DuK&u+pc2sUBO@x#DTS5yqhl zXKu4Y5f=TX;H^0H6H|SFQuQHvrf8MR;h#Is>w3gG zH(r$NbwqFDWGQ@{PZF1hN+3mvovt)~r}Ua5+LA+Z-17bRWg~#j%TbFz{aLIZf>_BK zzkcGVTlWA18u_6EV`$-sdjT~HUb_1s*O0H_CUMZcMa#@^tblmq3Qg!h*fVR^4Vk-1K3vMBpXkNh6-PfryY*83)aCqS zk!R7CVAn;-1Dxa$gMRC0!O#AvFPz{x?T>0b(AF2r=l`H*H3gE;GH8}3#&}MaK~+4l z%HgFfn|_(A=#N-KKGv{?t}J0^ZtW*NMEmq&t!mKwzzINn#-(I(Cw9zZPl@@;%&g=O zJ7pX!%OD*d;X~zW*A=?Lz8zgX=Lc_x(=@@UF8glalsawcMgC7SKs?$}*xUOU8iAEP zmT&b8>gS2|6S)(D3rZr9K=P!g{4MH9d|9{u)r3mx7AKWyOO5Rb(uu=;(=qFbL1T&S zG}Zm{!~3LH9!KPJ{v+6*ea_l1N4O`;xspH)NvO1IVe5=K%g0vAa>5hBty`>iw%BWp zYG{ojY+KN05{Bes2V}CeM%Ty@7&3@mEmk%yN91EWWmsCHcsbhX1d8(XAvr>tEb)OX zu|c-^qYS-IhTbj1J(ED{mZ5jb(0gU*92xp&89Gyjdp<$1t3{|e8mBTnq&$t$8I92# zjnN*B(HUJ*o?ez0HOY%Yl&9h6C6#FfC`~$(d-r$iKy*m+uK;wreU%9_ix2w z4;7J`_9#YkG*x-pOl7)EWtyck%F-T%|EC7Nj++rUXo!_WF*GHKv)Ji#hOX61a=@s+ zGWBmF_12i#yHPD=>R2K+Wh`oV{{1v$De|)++*FcSX$J8V*`v#$B}%HKW7YP<(+RTr zJ6p44NZ@ zZk3^4O2F8*lb>x2k^B=XO$y_ zNRxkQ`iRPOvb-o%UbI? zG)rd```_ky>88M3qWjQ{haxG-(kAYAAA5&yR!E7gB=Ub^a7&h0@K`F)^Z3({XX&hS z(b*;3$$kr9Q~SeLyRyr+T}E2+7^T!j7I5}bioad^t*@^(ZZfy#a5edi*H79DF4mR zOV_1fesqvlg9SaTYvp=Q`T72-DN4gIks2Ox--nDYem2>=ld(8w!&@dYMkRX z!Z^;y`{7F>BOVJ+7sh|zm!Q<7aB3Yo@gKq;{3;kup=6X|`loARsh;*J^)>N%@wri! zyeQFYapq6Qw7Fwp1|?%`Z)KbDydHV(+FPCWHzUPcKoYBR@03QootJ?xB9nsk31i?Uxv0A)f^wU;H)=X zAkJ0XEXjJ&B~MuHz84RlQ$d36+N~S9o8$fDj>dm>p06$_%$#?ZB3=z$+_#IOu(^&_ z?r>ku?n>pSUHM7Z_Sz<|+P6I+>^joda!=Nk+Tiwr$<~WIN;CJ}626M-wq^)w^50^`~oZquJ4jZ4cumAfb2MMR=(>NS0m-q=iMY->3-IC|E( zFQMtsn#q$3DIc~Bdw(xT(E0pj>eB2nr3a#4*RIdJd3`g>%g^M_sqKMpB6dD4Od=bS_F}j^ns?mQKb(0eL zesVpuGRe%PYG+@1Q9w6y#qJwNE>3O%@?Qh%ewk|Be&Bf@?GLsr?S59OrGMS;h3oDY z%jZ_+-|(5w9=Q4JT>Yv-o+sOyO>K^D3{RePymn@_%g3hoS$#!$qU9WyE0>~!n4^jZ zH?1;O*@b^F-1X^P$>+b5UBdpo2UiSR?fUQN<$7hS&|sIs!-;ne8bd3arVHOY?&+bX ze`3AQ4l(eKReaW+r$RZO^z-5uiP3RAJ!sdBoXWo)w;lcE#xK7A(%sp7J?Z)9+a-M? zp-Ghp`9mxJ*xVS|V&N;j^5okxd=c z^FM>Zq)7h8XHHgmLsR;%w z-baPk(Hdy`=8tPoXCC|M(Y6xRQ8n{>9VTPwojYI6?H<{}@tN7Z_h^ErQ=GyUgwG%S zdKE4AN8f6{n*6N&`BUydXy)qp-o58g<94fkvfi9qH*oYXpma1S!WiPyv+2G!f)qDd zKKi(%o~(Az;TIll-dZKQQLU<_KAZUQ8`YfZ9&Q{MKdA|)KP~OP#m7BkrzqW|wgfXC{MDgW^Uv(dm6WcTA$if;Z5ySN z8%U&k&Ejm?X75DwmR5vK9u?`UM(4^%f5o=Ps7yb+*Xj;VqWGX9$N95qYE1&@JfDM1A62S)zQh z?YpyPTHY!=tH?Y$C7<4QP~svdE)AZaW*gV{g{Oc^rhk_BP8+5Q%LE6GPOyA;NRG7` zv4qmxQ81IO|&Am%K`Leg@X&2qIEy^@wz%E^~OXGK$+)>zg}T#}PC z>WQ$=L;|}}(x-z`*Z>RHXaw6%pqC%X|_wpK5b5i}ZLU zW$9JB48}X+0e6$x#6(m{3CiW2WOCO4|BMH;)vjsL}3nD5n{QUCiE%d;|9`UTULUHK^R)#!MYTU|`i2dXwQk#|# z-LkIPjdEfiMTHx&`xB*UMT|*p=(xmR3J=h<=tO_%mRInJ%=#yL3sJ|ir0VMf^eZh=z(y4wIxK<2 zk&zb5N^Sb*rr+<3N9R5Jy)?FMP1dj)MtfRXw~{h((l$^n{C-8(tel)!*zdM{{)WWr z1?>RqvHF*2n;WRHeTRacvHU&o?yL~a?o>VAH`ME6+pK19mYV%pA{DKq4ApqG%@(et zf1MfW`W2&|BDhK!#b%HCc}L(;yI7xu(rM-R<*p0Q=g%ztz<9-;Tl^NXSZj^M1paG}p^uBMnoXusHJg{3S5o-n&&YGr zjmi-hG=IO8&Z+&L!2d}dxbgP-<3nvm?5J0;be%bv*fS43TuEUk+pF;4KxYpuFa?;w zaR@dJA0OF=W)MUJNA}_I@uALclZe{pLZf>WcG@h=!bM!pW3kD4vD+GAl`OGrB?S@_ z*I3R%!C`K3yh!S)^1&#%QdV-!iYz4NlyUtqm9I4ldmRJ+oC@hnS;;Cn@hSP(@nNaQ z_xP3=AF)&}yr=kl_u87jDi#KDd55+iS;#)5xM53P?cQ(giHxAl-MLK^<&!&lat)8{ zsXe;VrS|QrF)5VIZj9%DDI_c{&5DQxz;BZnW+0BzV}jt1A2h35cBpQRym)^Ia+v!V ztcFOR4h9{%oY%j1X?`zRPA;Q2fbry?k2H=IWyJUwysWqc3UI_NUZVDGdES{nfV` z7mxJNszs;PlGY4iFMgFMDoR(5+2_&|!jBDoo@__ln;?Gw0F4Lo;~wFfun2x#*OKd`#NfH+poW^5fve>$6^Cn z3+5Lw^nt4Oqp^YEzE7qPvwE$QsAYY@VQM;k4S`oYxRj!!6%*gs+nl}bnOST=pk9U0 z%C^FvMc{$t!a8!vLBj6-^67>z3r+WW3I?unOKOkohk|$~^91%HSst-lZCm9NaW>f9 zt!5rxDK_IB>duOF5U>xm6ZMW12R0CUkM)g8^k=%HAD5MSOWti0N4C#6hE5+z8IN+u z>+#U$ta9;7Frb^ImD!HxndD&)2AyiKWPzM?-Be2l)s4qQY1?Qh6eUl=oc@wV2eJ1s z$18*r3cPn>-D4F!d=s8u9{RX`IkKi~HX0YVJG|^A{BTL9w%@A(g}tzq%^NEQxp^V8 zcZKEMvvH1HrvV5gPTme?3OvkIBTp(wjlFFF9b|1cFl)jY> zo!ZyX+&f^M#CjY+#k#2k?SbNX4foIor@|uQo0fap9l6ql2urluJ&mK1_iH6DaPcF= zXGki@PZ@_;(g@^yWZaqCLagg z5K}6Lr-)_}$Dom3PvUySdggwP7UJQD$F#>2Qk(?vtDrBQ*w+x}OcW5kr8o_nE? zZT=PB5+9GS1{rkeW@~*q zFrQOQ0K79#^q4Tzj5vzGNh|*zS>Ul~+9Md$+>jIvyb{0S9R%|OU-D1@U*kkiJ0oti zT~VD8^Q5KM7@de2*ltppj%&P0)3ZF<$fUd8TGYhH5$=v|hPKcWNo1N-D-5!MZX^l8 zw{gLQ%^d||r48Z$VE*{Yo@8eK*ou?+NPE=CAu@6Wbyw&<)C&F~Cs6Ukln z;8)^Zx0AdqmpM@kt4A(xa%rn8!qL++j+ZSE27-jUGrCaa<3UgWoIhy8F+<#*0F*#o zhu&}Gug=atEcOuJR@DULA{FEpj&0`NRSGh|+Y)dkTcMCGsV+dj)u|q5hV*^e{>7Z7 z!kT=vnbj)l0n`R|YA8^plAE@f1ap)L zr~>)y%o`+!bY_g^0@Zp+r^2T#fW|Wao-PJrOziAatU*<7I6#!q+i1@e{vhD@p}bK( z@U4vm9OzQt8c(IkR-{4@M)dygdRNgg0^!s2aQJGeI)pg#k{1TZEu847V+c!#6t$ix(KVonUX`DgO?P+w zK%p62{WOs+*cZQO0~L=A;^6D}P=h!JydRRU<3+4|QG+Z-8i8R(kP#vGiVobIY&9}< z-;LgB$&VYc$ppscFlZOFCm@`fElpGPW*v=2XGMD}f=BBQ5vk(s-@PHm#G{~#zQl%{ z8r=hyzm<(B*A|Re@7VtOdnFqy%#Nu1F7)E8WKU8VJ&*JxN>JvVL9h}qnc3Tm0A3v` z#*)343|%iZQd*Y1#|C=G%yaA76y_glx5b!pZM*$5cgAAD4$+>WSWxmyroe?LGv9** zztxBP`$&{0ON)S2k;9o}dsl@IRzO(fuzohR9lDRo7|}RQQp(ntJY%6@CVg|OCV(=m zu7}HD+Kx&}ZSh`&&E*RCZP(UjnzB-7-jW%9KU`Y3fmSgmd$?pPm$>nj4Z5r<05R$g zt%HJ*^|3Azv#XE#%W9V1ULV9A2T9Xyu7;r1^w!E;pz-x`3eaHP`_=^78i4su=C>{d zjsbn79SLI7g(%~OyrEFw@Ks7qPh^lQXQS{|Dx>jn@jI7d72&H&X6djgCL{*RsG`9z zY1#Js;wlwk41b_JGEm8sf*Z;ZD}q8L+}65rCh0+#g_Rj)ydfW{%p2PRgY^SS@W9uB zQ3W}1qp~kTZZvu~_;{fd$CPq09!u{j0o_*|!N6Y*!kOA7M`XmTiPc@zr6{exD1G4) zn^9#z?>ko=XHXG*l0g~o_$*{DM^aBDi8Xg8^k~-}Nk;0Z_`5e>!J-0;JGk| zhM3X-bNxCn?izN>fUI$f;AW^9#sj+s<0l86uG1{HG2C zJ-=0>>mrG`Uo)Ia+x@-El_`9}B`QNM*Q_y{h3)fEyCMI8%AeVl?ek~0;*F|Hj+6ab z;&~Uqkk~D6QfWID)iZOf+@*b?ppf)7pEW!4GR%T&qz1=_&;SZl*LpBnyk_~s3x?Sf zgqeE7`%~#it=#)LW8sjC)P)9^bJd^_-Fy(-d#-q_(!bVIGANS>J51{V2wufwHWln0?BneHZi4!C_SJ5+I=^$y|I!T&0thO8ViimeQ(5xu%C^AsnBL(z8?|N0Sk3?qjl;Co7Wdg4F9uo2ABM!ig zl=~1hC*QOJhY>yol-Y~&_)7zoY0RvWqSu+jYV2e^K=P~3abIywP7NW2U|+l>b+?=! z4a7N;usH%@T|W7IU7Y+}IiE45%Sk0@q9(DeYdKW0(J;5hK1t1xnk0L+L|rTtQ_li%i86{U%2;ZShU*d`(@=aC7d|YVGNedux&q{A{~mkgF+mQ$Gtx7se=6&sYCoCX zcD*vekPwN(A~nh}k`>E_&Wx%O{Enj*D*PIpJNH>>6X?Ui1|wuuC&xkV4x&#ZApdbSnJ0pxwqY z3s1NaW(H{kY$7=Di_+{~yk?$wSNOMiCE74Ii|~A2u0Y?7+5X4B$4+HzBA0!;I^QW5 z+c8^t5d418OxZRG;X_2svyq_DFSC>TgH%~LFPkrK7f5|=Md#-=8?^N>4=}P4> za#OglU$o|-kZHAeq6cE03KqMs0-t)4?7*ySL2JtN2t(>{&LYb$Nt#O_tqX(VTt%+{ zOayga2fw;kS^(Ud4lwJ3SCeE57cv_O{wdHErbS$+mfa=0O^eG$WajYTw_;`AfI?0G(ch{ z$>L2@Y|9*K%d#lSRm29aL~`?->P8BFpx&*89!(D7V3COjmA<^>1pzp;LwZ0bDczVA z|HWV5LqB0*=p0D6C}f#ZmMR4d9x=+iVK`jkX}L^AlY8R1l|UaAUqrM1lSWb*BmaD} zWQtV#=mVD~GXy0;6~2~}<$J(@Us+dN;XFO2w8Mdn0{Wzm>Emuo_?->nQwM_9vgVKH zu=Y8Hn3W+|k1fgG_(qrFO>(nRLkjUIWLQ-{yKd$Jb3zwo20735=bKW9Y()U^sAwP^ zX|%}Qo$XCOZ-x6EqqpC3xgwZZ%AMC~U!a?yllkkylwns6Q*qt`VF&MBk*pXehLgSN z6IkGUq_ki+b;NcYW#bGfd?g0q9J$`v-smgGaKFo5d0Vm{U>K#`8aYU&n!lvgre;Xb z;2%7~ETu-9LJk8S6O2*>&KA-o>{)niC|-lZ3wX~A#m=D2Wi+11pAKc3Z%%AWnKof! z&IELMq)e+Y{KiD7nr%XZ%G4WIcBXp7@5~Wz;mG;7&HO--HbP7F#Ry{x@p~{}X59n~sBKauY!c32er`xG z#)nt8cWJg^Oj$`YNj)lK>|Br0vd>vsZB#@09pPhr?KY`v^Xld5Z%W?+7emnof;&rT zAkdfPe-F8K+5d|2m{TslRg}$A9`nd8>xu%Bfj+^zM4CmXEn;U9+P7JW-{S-KP7`J- zHJW(04IUe0v)P*bG%~9_vI0X?7u>n_uSfNPkCCLg21D@)@Q~=tz^Z>#3Xz)xhyLzL zLVI%b$6uU<*}otUX%A??77KM3eqE!-;}H-AxBaIXDR~03@n6@u5w#}8weWpaLw9Ie zLBoiBmcn)IOxC#D&;yv_ZYoWAak5UkO<;;nxBX*2nWadAkVT_5B15;izg*z4C z+{NrN|1b-R8O+oFfH%MVLScWQVv?z5AU1FnjR6m4bn%ujn57{mYod<`UYRZc%BO=c zZ_h@io=Sed?5qn$E+ok4j*6r5Sj zO`|#Ww!`6%D#p+g=hvwLi-Br6@P4>HG(0QhBKAn{#jI(BWyJ~bo|etcgX7SNqsXgaj!k-_){V=X<-mY!VEHq5(HU;nRTFH&%p~O>!?mH5!GLwU4uNH;Bg0xru$0!ugKXkIE|DQmrHdy^h{`jv8ZxLiOXIHt3 zPJqUqS(M6=Qm)-bd{lLaqGp?h86rby^d~o_BkofMb9QtQ?yTkT5(cjs)B%Gv&5&tz zSu^iu85-ka{{s@#AIf#0^b@JMC}0Ysmff@bn+06|l=*HSapU9%G&AH;yeLV$rju$s zQxz9goobuQN1d^tV=R}B3!wyyuyMv$PuuuA&Nn_X(}*BT?kDw}6+n z@S~Wd&bVXVj9bAkc}0NQ=cy44QD@nk!o+OmgaKJL6}(bILhj*e`f7oze&XB)V?+l3 z^%v!_Ffx0O$QPhQ5Z;l|u6Rv1l=`@eX)gM`1LqzVZRrITvR z(xycZ&=V1_vwtcz(r%n_ zz5mJZ40h z8!!#O6?xHzY2vKMWW$T1TcDONgWxsLUDFog-5LSL#fD##!B3qCgMD?=bfuzw#p>fB7jpgF(M%JL z)xc5~Lpavt2_-xfX_CSmRT`f1^}zCaRlpQ`Q@A@V$9s2AuArUx#rkR4O+)8b%D;b~ z^TgB}IxjQ(M~S#3Luaz`?+2ltth25+2DSUD?h&jPyNJdV-1Xdm?k^^;yTh}+8y1JM ziz&c(B;jy=j4$Q_&Wp7K}6gftke1lC@L}PnaHkiqVuM)o>i1Lm?wKPT9vZ!hS%Z zp*T8z5Vr~((u`pzj3?Wh(9?xM-*d}aV?~*|R-CFS7u30i8u3iGiNxWFH*x~H+f~4kUtO^m zx0qF`@Qi)j8YzKc79qyc4Z<==Wh^bX%!Pi|0!)i#m0IGre^)DFoQkf?cV$Z7*AL~S zOpi0MXK0^rI4!l>6x!P2C8{xH=5z?tXsyJiOo6p3DBIp`35hY;&qswd7(i$9hRy<2 zk18%c<;tPibPUMLYf6o_W9#9|%zV&NqhaqX*o8!2uJ>gjXbZ zr9S+>J(g^;3~sAh228pyGoafG_D^AR0~fEkuUUpi$~6?T0gp&dyoV)JcTr=s^; zvQv)$XSUR-DUVU%@C5qA&u!5#JylR6R{zi)xb|O|WseZ3+whYi;1b(xo75gm>*fPn zrOzHit z{=R-69SNJj!PNo}%jIky)AkI_BMSH1KS`j zlj|G9yQK9h;JHMs2R`Y$Dy(aq>nSy=Oq=9yM&F7&-oWe`6I<+)IC0`Y+xMqFuMH0d z=jtm%-6Wdqas#lY9(B!-loB0+!9n^SR-ly)@xp4zW?)>MacUG|>;>=C3%+*DJQ*S0 zqG|r=r!#cMoZnY}nUp976^d?ek_~2_sauQ$6Pyaos`|lRv&_3;U!z z{BC@tZYqLN-ijfkJ7$HcfXX^l)Rjj1dr@{D5Hb`0-4rN0$a$B8Xjx`o1P|4-{N3SM zBVR3-`hGSKUKRPoA^J?+nVl)h`pZ!p|Ay0|DdR1wTnX4GfpD-2l zb%4det4q0<_SuJr0LN+0dn=$nQcN-uzK?T{VVHIL_h6Vu#&1j<>zZv0$08aBcoUZu)7G{EvX%jI-DoXgG+_Gm*-&-$Vgk2YX3oR!Ph6 zJctUycowtgEWxesU3L60|AKL4O62Qr%(5}(JRw6k>O9v5+=}4N8A7XQ)MG_r@27NG zXk&GwKiT6^p!VM8jg##drcO!VjwIwJp;9p8^T@=E9W=IX5F~)jTUh1H)N!aw4S;N} z63_@zwHzkbuSLY{0b&m6ON`apu8-Q_P14n;Uxo<7M9a^v0e&;hutJDp2*tpc2*i{} zv%<33F$UL-9u^2@9TLQtqB8_yf{R3EUT_Xni@+k&2pfu>EDcF_gwNPH?7fXwogid7 zAGt@O%}sT5YhE$ggl6)bo9Ilzczx-Ma3M!CoO+9(o3#q^x_jCT(iNG5$LxD*6k|M#T4e5M{tN0{cFCwj~oq_*XOGoZ$E`${saE520hfDLFaF}#0Itlyj!m?Gv1Uh$p* zKCiLPOw#*k_Z;;5`4CI|Rhrf7o8k?BUcfZX&*|jIgw^P<*G&w?}CU0!#ccARc}VjpKy^n(D7>YY_6a)R-ncd zK1RH-gdBCHy?}j$v%s6E&x=?AxeSa?FhhcoL#iM(k~?FIR}^zv13~ADl_(=_!o-#T zOrzEIN-h{uGl?Byz|p$mtu_=|nDvTzD-x~aTZ|A|aa%?xR?4#Y*>KBbtGm2=fa@o# zHxCH24qrQVD#uYvP_E~i0E#dK6GNmi_vm8(`L;D>9ddD`;nm33g zsTkWvQkvw!6F}=T=~%v4vjT0$sC*L7Nf-Mi2@asv&-)s~^J?%dCagJoFXFZ$uw;Hq zobxP`Cp>+etg$EVG6M3N%PKU$CP!9L82m>ZnwMmy@OKs?jHyQ5RTpPEM|oy~{t<2w zVkXS2&5vi&J0mOhHS2XfMnPe;%7G+t+_0c}GhH*xLLo=t3@uCzmQKWca2GMdK&>m< zG$-W!@=qafD7Nws64JQH4KfPP5-K2a=zHlE9!iZdEwjzl0CSpP?1V4hIQZ5Ij%~8a zv*Swi)r_;+mK;hL{2%dOHNnJRW&~f9Dm!DqVp9M1(l2G;MTGu&BVp$f=Q`8d{Zx+y zqmKF-4#AL87dICYOsCWpas?gGj$Fd7&YK4e!xLwMZ2v^v=AUi-n0B=0E^34u+hZ@}^TD7wYG=oJn zHQTQvUPuRU&Y1Z-BfOYr97FWYIoRsVg*b&A=iP84EwCxpABc|X9 z`idfSxO$eKO;3wv><3+9rIG4T>Mzn)S4-ZsW5YN$k_MsyfOd`>@@`J-=KqIog{-G8!(G>recW7LZxzMSZ`H6 z$v~>N3@tIs#~nMo;5pDf?g7ED7`9l0?7sUG4-{*&?OD;$(v@9ideExj7{DMrF>?DM zKrKQ{H?GW_Xx{;zeDR8>0vyJ4WQTh!Ev$xW+6O^9&@*pH0RW4CdV`YZ^ux7vjn&es z><}09Q#EK;9_uWC!yd^Hd#AgWdrQ`{R(;Pl>sa=;#$UjrABtlLF>lNuGtm^Fh=cS# zWx$%bIGWreSkN<}ClcppfzO(1(M4kO0IAfJn*{#ccuwf z+W2I97nyX2m=y}>L~yGU0*HP%JG^`ViD*C>r%?kkXT5Nay>w9W!};qe02>_8rH%_N z!>@7*N1H>afVwC$wJR#)2T<^de)J|ytGWGPn%JS!DgFRQaqm;_h049-Z^tVKT{ z$W@eAG1!mv1NIWN=6if`4P3{|w}soG)#>()`-}CL*T*oMBB_#ef<`8$&o`Pi0lOh4 z)P(4sMu7Xc_@fVMJ$oz>xHqGJG7_ZDAWM}Ss_n)2C5PU5X4g3Ju^nXcH#`I^zu4uT z4Ksdp4+x#m_iA3VtbZhyJ{@pc6(2XptuT?U=XYEHwas4gQsH1>yhshdez@+L;IhzE z6m<1C=sf$9rwy;IHJmYk4$%+;xis5F%=etQG5lFgyh8O*T#hvTTBdRM-Eqfav3>|} z<|>Uznf&7gaOh(>Zv>v_p`Yu(69H&eF1syip&Zs#;n5VD{dZdyqj9X^z<-vo^-R)&yB2wQjRil@;mAC|w>* z3-}&R)mjLXZ>a9i&-QkjjBAgs$ieJGGvmQ046gCWUrT7h#}ZnyYyiSta7-@jY11V@ zu0$RLRQU|3jm#AGR_YJ`p`EC4u6CX;N7idf%}`+ z3p;ceCfr~+Wlcx!krcz`K7Td)A59pSbmc2ocVyBM3Q7n7o36$1C$E`S(g*!B4FpL9 zX<+~uzrF!j+KyuiOMzU${|G7nM(>}>AkgDNc%OP?QlGgPm4R#}EHZ%a^ z8)1+kxEKQ$lNYKRfna%@moyHrnxQqU#=8wv@fcyFlJZS3H6s|b7I3xpeWue8kh+xZ z-K=ItAyChK`vl=d7!c@4qSuJsGJ&eXj$jb&&Io3=tgFV*pWgUp$!s0XH zf&=ERqf`&m$z5LrDdP`}+NL7so$vw6`eU@BULfYP+FF<9BY$GR`o$t-1<@?4oXZ^l z-`A0BNeMunK~Ai|D>rLI-XdsrmLoUAc>|oex>i58I zuV|bXi3rO7^4sdBpDupoPTVkleFBbsgu1~bZDBA^FvjL;v^750eGt@yLlxX?Z~Tdi z4ysO!Qlzda1&kPcU6j}Km$P9Rc)+ASLT)gofCnE2bi3NY!1FLr^=1nA=>c+zW}FVN`04H(t}j5`H(oAurVpIIIr`$LO~R=uTT*Q*`PgZ#zCN zU5(~$$s3b}0Vr^fZ7un0IobCTe!{~N;GNqe88n2)mkT_;n6Hao0OmGRVV3yA;;Fwv z7^V@1A;BVw_O^tG83Ew(O~YkruGPJn-SK}VhMl(Oj086$dmu*n7{1U7a;K%9NdA8v zSrH8U-`>9ZwKp0(A4`l(K-z;do8kWV)%W|KOuztf*hW}5{y{?Wh1gOC=FD)Y9f*p> zK0-m(=>?bEILN_&tNQYjcVU?)rRI7|GHw5|&%(N99@aID%0u`)L`^P>;1aYEniyeC z<Pma)oxGKk+IB!4^|AB*B z^Nuj^IUKVxT;(^`w^@eevnvPP5o58C%WaPW)BzkZ(3B#6=LSO#WcQ}a!3u32)d2W? zzS%nz>Wxz2e*V=xqf#&=l5_^1qNxo~900kfP+50s@bg%AKM;ra~Z zRo#DzC=>=e;kqcuWpz0`Au&o(o;F{n0;h@lH{qC82wW&@1FURbdcvA*UBgrK{Q%Gg z*0hn?XPn9zJZJJpperW}o#Txvh9?1W5&Y9|Q^vhvnt85;{nUGet)1mOcs*Xc%?n;v zd2S9fa8<5%+%v6)fbd(e7_`GlL2F?m3>Je`uo#3X58W{#-R0NTF$D%Bcw>;{nbxHk zCigO2hKFHcZAvmHca31lq~ypB3r3nnO}%nuVT2o++jtkm)L0bO^=i1sKh2)wz-VjHvGGW@T425BtEy<*n=5C%Ds z5uHT0Y)aRHLatOR*n;GO(iW5*Fol=#Kb-`qr;)&VuuqfvI#aCMJsAxmN?!5g0Oo5t znw+%{-FY4)MIz$K!#d;oh+Io6tI0DF5To6Y2B*5o6yLt2-XtQgcYOU%@7 z@!Om0@^i%7InDKTgA&ny)%;>P0A8~@oR9*n3b)F0a+ z;$`VJXd{wK_x?W|U3omy{~zxbB^5E2d`nX9YmTjwD`oB}Y|2&1 zRm5B?i=(Ct<10Z(? zHiH$yU@9N0)Qa217oTaXq%kvkvrO*)r;o7l*-sbwt`q!W5b&ZI(Dj3i%EB>f#X9|V zewNExjFn#kamLOVBsti6$P^01?3h_@&qG}NuZLaoS7sCfhqO7$t7d~d9m8b$p)pP2 zetO|4O%(G1$f)dNI&imsyP1T7SCpNr#a%`ew_&Jxo~7Z0ZFv8D`&eFbM9`VCa22-v z6jV{C_8B!qwlD4`m(Y)#i*{AX9ONz-iZ42`lfunEX5($K3^iO5cm6endm^a%I9oX$ z^U56C2A+Nh8TmbtIb=Ywb6o*x1wW_q6Z?B-fX6WRIjUK?_06}F&5|Q(PLzckvwK;B zY2`4)6i!hKIy~)ZZ3o}Zl*Z)@GIy;gjIcX1hjKNReXjL@0q+pgm#D++Su=D(A0}@b z1ZZIZM&l4i(QxGV%eLJUFN*tnZxw~_f(4AxclHOfy#}F~gK_gv`4O|p%%MY+-r$GTR+R(o?HViU9r; z=xVvzsEF$T(r{b{^K3q!5^e;4ufdLqM|{u$@OmnL!3HGpBfj?3|7^_ta}ZCMQK+ow z&!Jp&{EixsML+5l?vE5UUXt=mtr#aa0z<|t!Z9mm>;v&&>&3gRhR9F(?frf~5P3O} zj%ZhacQ>8_ujiKgN!)jig6>|=AeRm?Ht|tgeSBpS;F=r3XAa>3n4=R~j2z&frP3P> zMP>TiwbA;hKiswR8XLS4l-2gT)rgUJx0-68wdosB$g>0J;n;Q?B zU{m{A0kDl^Kd2ktu8ui__uNtrWIq4X+vh;sMxAb@Fu01?ew$UR$;T9p%joo+raVr1 z+n$wLy=+I$&OVS0=syic{~vIWO~*m}xt2_P7d*j1APRTCYYH>8lvVh?_$97chHXlY zR;bL5{=%PjVi>uAWz-$cB(2GULStx^x-DUqh!E^+)kdeSStR zAc}xqLZk(>B=$o^9FC0N`f(bo$+91@i~kR~7LJ z6p$)HsEt8}P6)HXAYc7T#b9R02IxO+u=fv70|#X$Tn=WuVfRxLMIKF^QlL{msi`D$ zTK5HuEcb)^0|&XXlsH$gv#RhgA*Hs@ZO+2cSbXxvx5Y2)<_t?wj$BkG^#X29Elii{ z-&bBFykm-H_Nm-b#D_ETj#4k_{7N{5c8tv#T>n@^;a>3qz)zJLJ|IRXtGMGBC69Vz zFcOIHdS;TkBdrT~$2eM@eUc@@sDoG)VpH*X!Ct=W$9_a_`0#CtzY+Xz9OH^9I6AxO z3tdr39oZSFo6pmnc+}J{v<3CaSPwM|H;e4KNl`AIfTf($f6;*anvrQ@!`5}NmR&pw zhO3aT-OI-Gu4g0zjvvWAS$^xvY82^agH2W7Xc212Scx$(d(tM+lk!X(k;eT~+oz!P zDgU2?jc%>4Q=3j(+QVpL6#Fv5n~_$Xvumvm)EF+yW#Tj=JH}`IA!MjlGv{x|HhvM2 zV$DMLwNiRRr}gX&CTs1{(u;dlB|A4OrLnR@>1QY=Wzb^Ysg+TXmf0Ou zP=WFIXw!PX4$E_}s;}19l6Hq71^~CMC^Dg>*j!7Q8ZxyHw{%lq=weL(z-4x5c_tm- zA6?y;pX2h$;#XH;yaC#dqN$PwAdA63rZx!`ufD=PmIW}X^$eSL|o4#6~FAMx1(Ko6!Nhxctw7z|%?M*Lu zhR=`_0rph2FsuZ6cB8~fsDOR;5o;rmCwriQQxq@2c~Yy@(v{~F`b5n%|5XI&GF@0(QTU#j@UH}5Rhk+kLNi?BVO z;O*dI%ZgA2>Ms83ziSWJ3zT~jPHP|)s7@WyxKi1R)(7|$eqVTLF{r3bb1QlWw$0x> zF3qoGgH3c*QX??xHdPEJxH26onf~;_I`)M|9e9 z<4w_nwK|d)gsT!j+-pXS!LY~6g|VkwN&C5RNS;EQB%{c3=fH!Jw^1ni%x%Ct{RWub ze}I#X#|sFfUII8Whll;H&7gD~K@fAg$kF$>;ha#A1+fk~D$Z@}tAhptZ(ViJl>OYz zeeB>PDQpFpRXlS>f^FJ{VCJ?RTtT#Ve2UY~rAAQp8TnXRVB3(HNJxjtierZ|^ITrP zKOPz=}0&y2Sm5k75`?@24?^sKb57C$*oX&*+jA6o9A+DbEY z@Ad*VqAbp93EUwl}WY3ifKb1Qz5<-!aVmXMH+A}hlIgED+++x9alxs z01!x+(k~#w{%B`BFI36Y7TCkYVUbh*)7p|3EGVMbHd*@V?<>qzOFb*L_=erQCJMmS z(2<;~gRt<8uB*Pt#(V|9#TaAUbQjk;yf0zRVj`Vo>R0s5 zp)2YPfVquiZG*W(1KCH}(w2tS4}J|DVti{RTC0N7sGZd=hsFuE-V?wP_Db1~Qamf(q|fOz&JHy2&$g865}M zkcOs@IgYW6?Ai;6J93PyKRR#im7fU25DdxTj%w$QU1Vcg4*iR1kv4@oj30m6_TX3` z){0&GhraCOqf7?J9@%O#glQi~s@ts(`0Zc^wTY}9Vn;%dcK}R*6zgaz;1MW;9 zIWTam#P6}d`UUbrEY^>(EqOJ)0gRMC(d}miy<&l8`8@fhQc$1pV(Xj)%zA84QhYJq z*5?rL(0TN2pnQ?!fCGF7Ii09wn9S{-qAaF+4DRm7buss(=in}a;^hEa_cVj#S3Q4` zVzWks?qe)9XEbU-lc{z}{lTyJ!_VV)3<2d}V)tYRe~C#BrOY;ih1op+TucDPs99L- z_e&5)l;AvS$`(Fkw%z)*HnnBPxMz=-29UOJ^vQ0n9!wk}q~}!Hv~Lx}??+qURD+X4 zccV!YR)p1LSz(jWS&9}=Q{!C> z$#CDvc=T*A z3Xd|N0BH13id|fc0o(lz;d(aobL4$v*!7LLzw;YpHY1eb#;u-Dr%axxnb`x|-e$tg zoRYx##;WuX63)U84BGaCORO$uSZb~8y9Xd? z&9fB6sNsu zO`y)(4s3|g=C(vxdZV|R3KE_+NkI(@5Do&74FBxiK)Td&Tn-|gszlG`&YF3jW8~O_ z1Blj3N%tr>ejr_u0D(E5G!2tO{}uxtSiw_O@KZtlIm%$Dm7Fa=#7_jU2KhU}`=f6a ztvdiQR3s22*W%bRvt@glIb@2L5qw4+E7<{xO5`=yHu5r=vYXR^L$ZK4KMt>Oe~=2E z$1Bw6!1_Tp!b_JJai+C;S%Yx|l`Luw4Fr4ib381LadGuBL%NxirVh&;pnu}Rz#AYs0Bee61E(jQKc`^ehSC}Uhr-y&*a@tA9g6WP zZ%&I1jUn|0W=*>TW|v!bu#K4$a2ng)2bija=S38iS2EsY6hF7(ipVw+_eRkr%)3Sxnx4;^VTg}!Ds-!e(-*VsNP409IVr{C-1O^<3 zCAAPq+{Z?gtiIm2l-&RUSV~|BA9@Zh!jCl0|HXITa6b-&Ot&b<7`8`n^=WOA9MTpb z2?pC3YuM8dQAZ>TekxF~u27yc@y5_T#*LVj%=ov{DrBzai$2g7)7Q+t-kFvqJAwGh z$9q6feQU`sgh|7%*quxYv7EfjYFJejL+r-i=3HUnLsj^@*@wpxjmM%cH{#gLok@l- zCOoa}eH7R+`EAN*q!36KBBuyl*T%1}-GSVZ#E4PdMZ+!u;OR@?1mLB>aDIc($p2cY zbGF=HGpRO_nwQh(Nak-O-Lq&Mi~1!0=_8@8IQ^c*>7P;P%Pj7nO6Ph@>v-`)0{;Bg zYM3P;)wTDI2E89o1G#JHW5lInMCpS*{|val^!P?4L}PJRas=9>Y`sFQ*zo68)!Su% zA74q3^k$?1<9uZGJP$xujsPzp7=pg8H#h2bt-R7C3B^--)#>g!>n}Hg>&q1UOx_4K zE)!;|@%{U`b7m|J8_sBL1J}@Wk#s{22hIBl|9Q>l5^V1SyHB7SNwse}Yfn8P)pWXF zo(Pk~_{=zk|sg&x^c&B@&V4w&HmO^~bc7kr zXAPtuQ)%q!NYK^E0fMvNRD}wBmwf3!FF0#eMwIp`?pX z0^%MhKu}Zhe!Q)ZRm*l)Vt&_#?!h=1%)_>`k4+t{xx9AAZO!N8ec@r4T|<@N`XtQm zLFJ4#;6u-LG_T4Yj9Xw7D=@b{zFTHqLEEx-*|gEFvc4VTN!zeQj>T&qvi^RDx~gT; zn}UDSNjUvP^2)67n^hn=OI9xapRPZkw1?(2xPPTp&n4Xd1<%%xLXp_^AGP2Xi$9|V zbitKvqJTP*+>^jnorr+FIH#m&X3qQ0uVJ!D(9u3mYZsq{rpEXr-Wg8TN=|U+cV-}i zar7?{^sC))Vy8+bxTl$zO-cD-@ZLeN6AeDCNq;hw7zH5UNk4PqrR51WeS}V(%-|Hf zHfS#t@HKWMS{{by@+5dCVGiIxwgJos;x5!8Jq$%Jewwg4NGgs&TFM5!dzu3VqWbP? z^oR3Nl*OzeGzHWj?Fr;$0!hAQZ=U$)V9r+#S~use>mCi3)osgNpQP9g8!{iqYodh} zzwa<9EaEueq45E`GMY(WwN)O`$&G5lZ6wFVbHsymwuHK5w<#VlvX0mprMHRJ?9}T| z2pz>fkC$Gm#`NiwGH~`QN%3vY%E^U;vOtI^;M1fxgYOLl1Ye)D9_t!lF25;K$R4Dh z6ZsKkeGzVVnbmU_@~mXFz8PBtoGbcmDPhG^Ws1l*B;Mr3S=ub@C-`q)Z#v~hNHNY? z+3dF`{G5*resSb)9X;5J;wR0hS#_}ZJ9#NNRCTj&-kkL4)9Ai=#4h%=Q!cXE{^vXB zrOU!ZTKtFNt<`H3=IyA7u0giXvv|cN{s1L!bvlnj*=ZE?QJ-z8h&jR7&Qd1aWbBCv zj#k7LAwTxz42AeJ6-zDruP>e*_JVEX<=~t_82>S3h<2*=uK_jECCscgJ#!G| z{Rn6>59ue(-@TfgMNa{jEZdvCaGaGaF>1~4Oqs*p+Ygf~veUV1(fA{^15A`&QSu`V zNi+x@dw+G+o^6MqIvueOoDDWzOc-DHk}!~oou&P?vv43IRclJoPy?S9KXu+``y|Mo zsK9(=(q~aJWvzwUa(X%)g?~B^gloJ3kK)83m25||{i>+2U(X-|v#QM$f^=?E zt=V$%&|CUgUJ%WI0h&eiE4;2pq(B(V-E7!~aV61@iDp@QL@`j~ukFqOh(zjpTZ85N z3gE!ER~tnJi5c{+hqob2QaT6MAkM@+WM))mWtVBc1`tp+$R1q7+FC1-1(=+{NW)2= z*5Iz@j2#r;KRi|@a3 z-h%MKl#jEhyB3Vrwx&Ln83D}8jMQu?1DmWS58!e%FNX$;h1|cA4eI%tTr0%S{O-qe zCG^ijVT@y@Y+fEMRx=Y)Gu_fLyy>VHrW>x5ON*^kz?OjthAq}hU<1O`-T4-@yt4u9 zEltB4;jCj9j=v6GjC}wE`nVDNa$2iCQzeyRwJWQD>e63IA+e0d^lo@Ljvz+2qjY)$L`I?$v$s zzZRo%gQ6n=1EO@&y~S!Aqd5KiQxqzw^0_wZ!Qxgy5YAZ#)pDU}G@>;~4x1Y}4If=@ z*QbQNk8E{m+9{ds=(Dti4pKn_15`{tYMGA7fowT9Nk+yo(lzVtCos#K<^qP1tl0v{3io$A@9lH68CD zO&E+GVfjBc@zrExT=TQA>6PkANK6e%G%?D< zCRy#r*J>tHzUI-QZUQ3_1A&WZHOC0cP3{Ac7W!V}F-+GLpsjUB9&PKI&U}l~>8scv z!-P^uQ~GsaAPgv%7B!?d-(s~sWC4t%|1+1ib!i{aZ^RKB6#UG!X7UiQCbqin%(oPW zK(IlQyjKtcS9pxD8Mk$Rt%kOiJrJ3|&kFN46wxJY215ZQFD`))DhC1m4@ZT0g9NW3 zghXU6jbq@v6+_tcRGV)RysLl^-1PIfdh}8V!GfGehR(}aWbH8bzs7P+#ycyj&4CaIRZcH?(+Bmr0 zkb(-;RXGMO?KCM}JsDK3l!OXo-V`$=n^6J!yq|@6lYs4Ja~gB77GjYd`?a-3WEA$h zYp}5-6CidE@ROg(d<$H$8bUw=P zD8M(4J<$A7Cq3F5lkX0+T?g7Gpg>zCFydm=e2aDazi|u!2Ay(e0Ne|>4YWO|0@@OR zwhb@f+jI@^4FwFnQ4S2f;2=$Jv95j(v^@ZNMAQLo@PGX$|MkxXzI6aanMNVHWN$)c z-aiTa6V?ylzAgV~VFEl_JPnNM{PGwvGT|i{XbaSh7D78xhF?HBs%BhYGasT|zbJW+ zzVR7vDEzi5Cc4i+`p^hyp!5QD=FLsy0i`(RR?JSV$JU~B!bexAd%<2BC~|pB_h=cS zGPCcEDxt+!Ep%3XJW&4Hr(pZaH>p06^7)dY^n*XlPPJ7*7k$3Wp7Z8Bi53$Rryr0W zKGp2vhAVma@MODSbu;xc_6vbeOkhA@Bjim#OM z8v3^6aPXO#iFu-0_Ck#KvYgyP%&#K%h;O^8CF9pgFSEsJis|wP4vif@dDQgy@z-v3 zdb@gmoO&03xmwCy4teBqrK^X>S<; z@u2jI!#RwLYh>qAi;0TVaML9>Qpv^dkMG&S|2p(e4qRHyTpbEFbcWAQC8<%I)giwp zEy~=lDy7xEzJ^F54`Z0;!%Z$(8w8wl$4Eh!+@G2MJKP{e%Ga4 zgtSsQ#l()3`E)jzQfzez1|9uLC3Tsr57Ez;B4fRb*mZvPgyGd)B1YC(RyInb2Z!qd zGTk_ZyRmppoTNoc)R#*KHWqjx%V*go6{imz4zjt!#%^gER9($_hhlZP_q5MGaeq8= z`|)GWla%C?i%EM@um;1$iNvC*SKbf>+XsjL64Ak#jYG&@rkBnXd}gXO#s4SN-E_3agirn&8fmJA1_-sjCjeJ66Co?Pi#uaIAJ``L$BcvXG1 z?b4v|Lw;A}D(>;*2kS4p=^$i0Ldy-9?} zl+II&wmiR@L-$V84&EWS_!gJ8T-bBNeemJKCqGW@6SJ@LCY;{*uFKH=FXXL>1$W`4 z+>E&lL^KSu3cnhApu&1ZjISaZbZ0X2kouJFuJXDD{iL2<4A^Yt^|+7OTw#r+0qx#W zM8+SvgHvza?CHeNxY?GqMfuA<qEBN%uUH#q_o&d2lLDYqofRa9)wv)g?TF!gcN+Vzo?B_D*X z`gky{4*v1NdqXmJgY#Xc9-iC9u{clTf`+?QYaZ>;boa`bVaTDNI8$y}Ny8}1>@x$quJ^yM3;dEoN9 zIQ{@x8Y!E2om>1*61_NQ^>O-NDdE=(?^PD-1mzdrgMRt)2h%(d4P6`@aM!mIy>til zapAa{;MaxsxNpAvD&WV&F3tmBoM&BvCdY1$h|-+USek~3N)=vLAIDLogvA%$BSzH( zacLgHM>agBOufJ{Wm84-R)QSjJwXU?!2b&;Rw#7o=3o`agE6U_>t^H zE>1tdv?hsOLqIlAN*(+uK=*(zKllH13o3zY0S;FJ_qJ0UC;iO|Nl=ljdRsWvB>?wy z4aNmA@Hw6B=?~cJoFg+iv+XR_H2(K|%s|159l!1z@B{_AO7~~Pw?Q6Z zhOL8~7e_5?q2D!T3;dY4^B#y@TF14LxP5hkWBU&;o<-;8d&QYng7o*~<(950;+v8; z1AY07gJ=RK`4oE;(JXiC(KFvrDlQIcCNz|rQ+dWBHHJTC&7&WZ@x-r#hmjTnb6~m} z(N7WPbG4iKta6tbR)REc!v;&PrAi^JZFndtp{j*Ws&FTm%HmpdlRm2n_9U~s)W~AL z%+B!=_R}Q4a)R|hS;-r{5tlsR@@8d-3N?YVM}2*7-R0WnkLo`$;aG{V6Gpoe85}wTCur{2@BXhwlP!Fk73OEL{yv(~nBT|UyZc^Wn z=$y)(R8UJ`Cu4L%O>ixl)ub-ih;oq<>UVJ%(|GlRXd051yiprz3V)z9LRZEt9Tbw1 zH^O<&`)PwWJH@)&;E9?;i=aOtyhOzj(4-W?wi`+s63q}s0J@+!CmEHBs8thWr6Nw4 z_2NdQ5NiAX%jfQm<`pZ>8D@`}!43C!#!qhQA+Ff4>F8C?p*bmpo(=E26b|n-r*hu| zBt~;DUu}bfY&d?cI>&|6iX*rmQo`77;U^lw^Z&P?uSf}9ZGhS$!jyl6pR?h~#cDnS zeNz)0>@OmNAAf0qAlBKmyl;?)F?l36*WvmO&eqLY|pmS5+AeA0G_wc1nNQ0X;XwE*#- z2S|zr*sbwA07r%}IPS|$sI%b&R)k~-y@2_xa#ljea$GD+gGJA*r}LH9_?1NeL9l03;($ll{yI zwh%@g88=MYT)z_IgGl!kV$A;HxRnhtLX6y8a0V-U!tBc$;%+L)CZ>~x3rod$+_T~C z{>Pa`Uk}95@!GZg&DOFr4Z=>DaS+M03{j&dIMTI7W=YD8;~s93t_zrQBPxp_Jb%+N zkhi>zP}j$N@D_E~V(o1Yk_b(aY8)Vf41qbestJzAm}OzU zhp^crb#VB5;U_^MU7Uszs1R^BJ#gmZh)H&IPY91=r+FN=f-zqpqtuGSdF@h&R6t4? z?c!NMmzrQ+Vh!I*L9o{HpKo@|ZrV6(N-W=a?e^b)X{p)PHHZ%D zHDUZu(udmv9-~+0`8)?K)x1n_yafKh5DacyewP7zF$>|jGJ8onK1dSe)rT3j*L5e- zms1KAzm2{>3UF~Eb!{YoX>#x4h`pOSCJXD$0?OAmuG|CoH`x%rZYqpva&@0yM=A~M z`c1ZLEI};)bNnSRZSvg;4CLg973B8B%K=|ctgt`SfaXuomF>K?uOBk1rf}Tk)~`Vj z?{0Oxq#;2IRjq=t&+*RSK+Ebl>(85&XBI%6WBlrI^MYC$$4zp5(~69dG>PD|kF2lM zH$FEa?Ha8>kDJ_|TL12i@VwbkUb*?eof#kK1PbK`B(gshwBW)=mDkUq$D^Us>tAX> zN=BsqQF(V7S~8Ts_?TUT9%tU1UVl{snl>TtfHgvh^GODPH}$n z^K!!bt%enR%W8UG3st09u)mw93Jz?mj)SMt@Rz?K7C17`*}gTPE+Zk9hTr=QG0QPN zuwH6e9on?QHY&)7wHb61UPZ&7`4$|_|NV$v zTmx!7p^~^5M8H@TkZ7EblIvV=1iYKK9UQ1w6DP=|;eEdeDV*?K>vrCV3|~QWt;g*$}Oe?0q#LStGh~Vw~JMu0;U(691lt4=%txeH*9P zdHNePn$O<3Zem$o-@F1SOL35|;1dn6^oNt>~LdxOd*Vf1Dn*-3)6=%m8jG7`P+@>rq)-2owT~*!<^i1E-9l5 z#n#^%Ig?*je2q7E8f~p07DOYAO*IybeV1y8A8%UgRnTv~{65G**Tq?<1iqA6r^ntP zhfS}qgv!$W1Um_1BI{VANF=Q)f`aSO&Ve^O zv@2FZvD*u3mtVr4u+KWtnkyoWp!n0(NcNtBGZD_9p0>DWL4My%LY)h5b;wnGZ-2k0 zwZhIX_|)0Z7|0P_xV_)e%V`o@v23J5xt(D1+e+o{%cyRkuJAND!sY~Nw;OZ#QBZ;8 z*D=0nv&h0U@=ok6;r1q9iQcv#a?8ALP(FGF zt@3#BvJ)uWxzq@>e{|MooJpHn*Eqr7;U)()9vI{#zl?)F3p78xPKJ!G6<}swx^(k2 z4FmVr#t9q=5n>CtFz3o!fE!B!@%RUaqv%p<|6Ci?eBwa zTB+353P78s+?cHCuLaP#mj=LA5*IvZgzG%*od#o?qJI_$hfaGZvKtF(x+2;GIadF8 zX>tpm6WAgLaM)S+kX>C66z<&Q2TuuXky&qTdtcwO!k#Wz33X=Pf@1<(RMtVaVz-SZ z7AS`~OZo|P3=WK!kfM6?}_hTv2(#YWXGl3(v3s{dLR=&9q!FY_5X8)%yF`_5j7B#-BEbEZJ)Q7sfFq4=@>XJJ1a4+Pjv*=*P9r!o&XVIEVvsRD%Ty|xM#vEp`GyRoqa`sq1 zU^;bLTgiH;&HT;;YSb_EeijYx*tNA#sS$KNOeu86k`)j7uQp&<2M7^5EfkD`swSRMf1HlVmRz6U?;KSgcA5kTKA%h_%^I*R*`WmjxBadS404omWXyxOJ8S|y1MMeJ5N zv)j+-z|gkXh0Z74a=7%|yQvEmy3uC5LafRyF9p0 zT52*c`)xP=mkjCSrCQ?b@t&v?&#RYrjXPP?Y;OEIy7r2$fa+O|-txavKCyl1bN9w^ zt-+8_HP@%J3hGs5zHE#sb-Rv?956UP;&toX*_~~ayG?qb+kTlQ{*im@p9;6vGO!_D zyLj`a@;&nt_2xP+55Uk>DOJ!zmsZ^*d8AG z9%xGD9=je;)@U|rsXzPQdc&C)i*ClFlSNOSisbq4K#e}5m)3$)9UX#YCN-DexpvgA zN5t*TLgnUXzQ`S42)SZ@_1ngo7Zu$bZ?CoZU@mJX+>3X2ue%XgHs*4(ue%>I{IM1a zjtj)!U$Q*&{Znzu z&A21o(Fvb-R6@aM;4P)?>+Ge!o#|)_;40E7{RGn&*^Q;IzjKe9c@8>}hK+M) zc0?7FUMt3G^nQC$bfw~ucnf{Z139f!1 zNi@OgdcTJhURohe!yv@X5;Un-Uw@5o-su@XjI-luK3svy$W%#yE*Z_-6lr|EXMeM~ z=5tuy`+{>YFf=6c)2mDN3=z^!zfHnCr@#KJ$xBZ>1(OU1b>2y*HkGhgb50Jl6|u zj^;fKwdpO}uVnRf2g^BsC)rWr*(+8~Hkpfb%up#R%03w}Hp9wQ>yJ`&l)sn}t?$xlP<1S{)!z)c2gyQb{?7bxE4yLl5`iDU#j%NS1U-$}O9 z0zd6_U++dLA4Jk~b|}mL2XTl$-^kKV%&{x)Ms0^yzS7Wn_E~nn8Tq$}=QW2HMLW*i zJGs|wSLtk(B{?NSerL(`D-e%Y>(JQtYoYtiEFOK8iVpy!)QD)~_qmbM~d5jwTYER>@4&ZcTeMz&fURaM$%rOWD8q z!$#I$5@>I7fMmsAw=Xc>e9^VB-!9P{-C4rQCa+2CmfWR)XWon@(X2(@XRT#Lv4Dc}#lvNQ0d4-vlhm(hR*2I&VTB@Zq(cr!K~wwe zc1Tz4jQ-rf{O=*zY2GwFJ+*D8M(B^${!b5052rr*y~NyJj6xI^watB+$WpR(pd<|4 zAG~gqsNufPAC=k$Q=YmVcm9Hb^iZLo$>>s+-jk0%g+Vtd_h&5?Vr4x!^{1Lss3Ftd zv(kd7sGwh5-c?;_A2*acY0apI`}m^nwFiMEX%E8B8fF&!uyz?}zdZG6 z!NsTNbBT=)*JQC%Pv-X7NBok{65%`YMP=$Xh$rNoe))QnXaL7%iL+_*O~>9!@$$~lBB zLY;a5`IEW*%g)m8av8R6VO`ryXECuqUJN5|dR{-NZTi64>D%Yix{$~Z{`ezC?cZ(v z(7|F>-?AxFH|;id*HACo-{M?_)Hdt=jZJFROa{Fq%o9DYD#OO*j?kq{n4u0Rp_mZ)2#<}Cq|9g z6*CU>2L@7c*8`05!TZX~DZ>oQ;OM)u%M#+w@z?P6Wm!cE{kzn*EMIg-oHK$6dd3$s z-im{c3k1KnOwQDQw7=HF6b;c(xcxct&z z;-%J-8-$7P`Z;%hO|@4`d0AV74_sdiDM*a&?>0XgHS?G_WGsDu&Nxl(_s*gj{GItp zR2}Ji#jAm!@$;S~Vu3T46`U-5kJf`iFLnw{jZcDx9!~2|9DZES)G1HMDu^05a8s)- zojj6*aO*SOTfI%F^y;yqZ*Wcb2fG8K#9nSO&Q>$XNPbHClx)^5%Nuvj`Nuqb>=WDk zAt~Xnw#VCst$G&EsuqniyEA9Fqa$JL_?Vm<(?aIh6a5{!4tW~SA%A&Izv;_sx7Yj# z?-FmjCdIWiRa)(W{J!7A_m5J8$I@fGf`1XOWegqlzU%rT z=+?MfDtgbaxklZ6jLhCYyT9odowSPc0?!QZzs0 zw4#sJClwZYR4=`5)%_Dx^*iC!@AQ_P!5fod@1>s^6rEChJp(#C_QW_!w3(ch`#z}H ztraP}i#~;Co|9S_l3&(&X?5yN+o}J?YQ0`H6%vDyrR~#ateu&^zdq%nHs;St*iZZZ zy-}faypg)IYD0gksHL}T;(hO#X4S&FTIUJak`3tRjyRP&;t|!rqvPM|UBm42#@d+Z z$|_bx8~MA4a+~&=v^PiwzpK1-O6R~Q{*Nsi)%_>Uwgcv+8c?YDk4)I1XQOk=I%-3y zQ~q8(l$fy5fSx9?!m&Hv`^$T{ z%-r3B9abh1_dTgoSb0!YxVRvWj35G<8du`G&Cad(w1bwYSB2unF|J zAK?IZ8Bpr+2>&>o(HopiQ^NNUM>u&yRhZo&)t{GM@h-kb@BU;Q<(B+3i{siPfznO|&a z%}>_yb!jwa>_y2~(34wb)?>L6Hbm!UgP6S|J=L};e|=_?$=VpR!f5}_ym!hN6M6Bq z8!pd2uHWCakXi9&#o^xmpDn@0R|jW&51f*U4mBNp?=dX7O7sBzp6+TU4-L;2n^pE4 zEjkDe&o zmTg&Tq5N3sQ(;iWZO}^WMA?gdw|}jh~LRig0&$foUQ z+aJszFHa6phB_sCt~_r)@#4qU895`9)X_IzW<%9%@0&=kgsT@ET6H`k0&2Zg-zz$q zlA=)GHzN7_Eyd`wL@E2Xr2osPB8k?(#l)4S*tbuNiLTbYnTICcc|@;H6rNj^iyU85 ziWD>nc_b1-KwnlZ7H(w5=_Y`tIi^` zqG-p2e(|`$I*T8%N@`Qb>21?86CW+HV=qGXfJ?Z}TR|b7OTizd;McB$iVPNF!#ZR>sCW<9BGkg9e8uearyd#l}w%6&$@SbyjcMr zMxb3@{1Ks(&$;37Tv6eG^?gZ{&2r8N{Hk93>iy=+CD$f=%u}@xDpAD0J5RRb>>a+@ zThnVIl0WioHE7wR9{THL(V>J$OX@?*eWzmRF0W;nT1CE*m3Pd|?g+FoUN7NU<)3En zj^EOf^|**`uQ9?`rSv{|#Tzr`3i-fOK;^3j;Y~YD&=RIYW`4%ei~id(9u7h7N?jCL zH=0k6?$4#}`=Ut_tjP+Fe5sS6wRU+Q{ROV}Q8B`%-B}4A*f<>bv(T$hG)*WB12ahI z8JyJ@;eGHbSmFwar~I|eOIKK^6vr!^^!+7R9zSf$*VdjzHAjcNSb6>NrpilxZmsUS zn3N}%AY7}QjC5io`3$w|nVfKu4J*%uJ%xO?kgnxP(PyUU0J{otd9Y6W?-59Fn`$wkBoJ^OZ%HW>^I#pM4 zB%CJ-r?V{dnCvgne~j<`eyD-JcL>urq%@3;Byl$Y(_)? z4?!6E5_DV9h>knW!4Uok`HhPp?`Xl$8R37~RnXDd*8cD1iZvQw2a7=TLLR-p4x`V2 zp=$DrmR5G?kyxul+-?3}jMY?^_1n$N^DC;_@^OX4pM58)uA{FV<3`&ytP9etmex1K z8payCj))Ym6@8&6^l%eZ1DW3X?ri=Y`@??4XkS`h(+Ymd=+)VRrKodLcfHw%9T~WC z2K{&*f}84m*e@A&_2|^QiSNkc!MCVehp%JK`$J4T(%a|7^M|ERTN>WIV4$MAgvvJw zZK390Z(6gHcrX-Fw-%Kq3=SMm>j)edx^RW0+f{YTpHB`TwqOdM^4>le{b0gM@O&KC z{ppn8son-t@4*y__@Yui;qF=Kl;E`{$gF#Quy4&i{I0;KaaCZB0)WOl@6!3LQt+c; z!p^+?tGM7PKQZqy4jRc4V#iH;NIzUV6B6JX>and4nPmJDQh77!{ePlAj{Se3 zKc4;9(O;$v`5l2bRrp5GO&z`o&`o2$$wD`Yd=p7G?fE8(Zo2VJwD=5?=*KrP;tRML z!Z+CkDm;d7V(BJ@Z*qy>!I{iA`2?2FbiTg_eNSnbog~b)PnZq|FMI>l2 zk8di9Sh!ipHKgJO*Mh9>EFaR)k(JAzlpHoD*U-^sAg;j>Vxe?{kiO-=+Dn8HI05*dJEa`F()UqZ)BtAYbzVxz3 z>>c#YxgHU2oI48tuHxTO1S3T=|Bj+HBix!1SKL`H`Nf@fiqHNmu0K}Q686W^Te2aS zi&#j}rJqS5MVEc1GEj6m7Nc9eR$yjgq4K^GfmIj{LYcWDGlQY13x(d6#SP6(AG&vX zl8i;sfiJTswMrHb93-`hs*pP=gd&x?6NA}X zO^GU1TYKxH_jxfsWgwXSi?{eQ$WFySHx+fi8WCT*&B~%~K}MHOe+~MXx);hy>z7`L z0sI}N()a~1r!U-(hW|kAvyLMW6?HyUlqd1}Fa*xGDNVsgZ)@kjr4kKL?R4lf3#EH? z*aXx`v89)N66sdu(#sRiO79C8>QcK6Mrsg4mXg%c$zNhRtn}haktzevA}4y8*aS{2 zm1F7lxi(8VUGv}SpEd*L$n-_upMn`S0D2eok*h zzbI)R{D_aU9Bx;`f1sPRkBj0bZk!!}e4tRuGkr#}^cuV(`z)a6kul(`0@q3KIslPD zH@XYr=QEr{015+8JSbywqIAx>CImJPT8T3H0bV-+(kJMn(owu79Cn-ufKCb8Dt#hV znh(Ho6@92D1*|;ITL5oWS~KtkUJpUw2|vZI;Pv|;e*;pZ0vkR&SCA4*H3JJhK01^` z-&QNlADS5rP#xejlsp&BPv`^)xCfA4(K3UKmM0V?rT{WiqMQcyAg&%YiMJ5&)iy^H zSztpYa4!%)4kf$17DC$n2jE;)JQ78pekqq&ccOjIXML6~zSF&0bVv|2X zaJCr7$rmGwe#%(|KSgjkfSSixHA9t%DU64Y-GDhHl+E9GEd3&J#8e>6kR<;6Tj|vd zErj3~RD9|)IqF-CZvt$$tt{ia7|#Uk2McE<3`s|r8OY{1`Ll&G4Rya@W(8oi2*Wf5 z|HAa1Kpms#%1kEnPiCe9Yk|!)NccGd2zdnv+p~qVOq0pq5faC;;Wx1)^C4}UN{nB^ z@8D&Z_`!;{kZMdS0EDvHt;`xE{^E~l2!yuT&6G^iEG7*A!YE1NM;J{mNYJ< z@cCA1F6S-Hc@^*t*-b0CoE@6;VRrt^9CN4zGUuq~`~vu2meMXKXN2P9zYV(n+e{O= zoGQej_FEtDCX(aAbqJ>B+XJ9}x5+-RcJio!PU*%v_I&_NQ?VIN)Ug)=v_!>b;T;H` zjPOQ)-tnZ}gWwSe9|!29C-wjx`!Yb+Jh4aU*m+=hQ}A{>_5`h3b%5%6;Het!2v9c< zJWC573(zDFJXgc>0D8&;FC>_1{2GAX^1w?pdZu8u`=@jZ;UfxAvQY`cDzO$}rrB=*^8+8YHwWM8C|?2nw=hv$_I1t9 zl^+T`e<<6VgF4YFN&?XP`b5#wG>+0tN0|)t`94wf%+0MKI?Ag+-|G`aPbN7^cOB&v z(69PL(eq1=GEPUy8Rs~q;;de$pXyL}LcLY78v?Og+>J_`V{BJ3#sK>fpBTFMIL2-j zV>z(jjB~- zCElZnzXB<$pd^+RHgSL^76Ve{g5i=*)x<;~^)7hB96e#=ADFX3*)H)#O?)0mYr-n} zrY7zOQf631Ki0&50V%4`4Hf;;$UiVEhq7Jb6(j#Z>Q*S6qERu5I2K3`6$+CKd!zxx(QTeLxeN0jXQz8!GyUk$+%56v}pq z&l>p$(ko#VeN_{81L>o%iXPI$?|~$W+)&YzM*e|WE|l#Oe>CzBq)tV`Df$-?i_`oM zNDnBYH|d<&(81*qu>eR*ingQO;N4CK}sM%wInI4ACO3)w;&Dab*ca(5Fw9OJkLsBnX=5F*lLn{86KhoWh z5oHsq6my)R6u)KCVV7Ap5$DLX%3k(vydH<-ufqRds743CT(F%4^MaH@#Uz-mZ|5;I z&2G}S??j$&gCg6D>Qq( z(#d&!1vzVXlJmwFTIB4$hnzhV$=SProOfR(XWs|p?7u+Hd)Yog=l$~Je9)Af z1Kr6vIEkD?3&{C!9XW@OfYYjcw75iWR*@qU-561s+&F>yv?^anpmAE2FDizUdxuy- zZb>&@DK}neipRCPLT+*KPIu$ELSE|ZgOy6ifP8cuA=s#dyDw9rFjbM^a4*_{4ACVM zZd^@xK3UrUaQG$#ZD zvfgP%G*jqEoc<6{5t06WDfCdB4q-X>D$WGOp|sFwE@v2VFkmhsgS8f82tjkc?9nep z8EC(Z!x86*vvYye;J1(y2X1=#pL4sPTe!jiK$d2JrkX(Pmxn?89CKoBd2EL6X?`x zO-}85$f?txoOxjTcLq&(!bDMn7)a^$qDNlu5?$?3T8gnRa+a*e@d-LogrmD}|w>mJmo+<~_1 zc^|cMC%nF2+HpRH|3D_hr4v)U_g}dSUe5#aqeNZc9;)+Yph}mK0F4MLcf%`6C1)FCiTvw6{dWR~k+xcq~82 z)prbB2kMCS{1Cg&sP zz6#_#ScjY$cat--FFC3Akuy7;oH@(MN#93K#z*ALJ^zJ#cHcf-;E6JNRNp>BVC4(G zS3w4((pZiCb7*mp{pmFEWdGwL@Tv4aP0ulU8r{xM)N>%KCZ3fjfD_jk>_Qpdso?Gw zEdIiClr&Pf{UAS-6^?9E#!rM}z!S(Rc2*%*3Bio4RtT%Og7QeSWttmPpFtOD;jz^# zZ>Z!R)T>^Lrq}f7s9x^`rpw_q>1oa3_5TIo(Hvfz`1F{l-Vm>4KvW(04`iVFS-~fe z&izC6rc?q+5ZY04xKFO$60gVR&chy z3A8}q1aVcGTYI3|r;j7H+!`Lzz?)I!sOs$S@ zokge9E97*hnP;tD@6uiJ8FGgFPR`IAU%HB2tL(S9!dU()E{0=X!km&4t6n91ymtQa zs5`Cw2ugiT3>Z4fDR`G;Gn8?h7+`dhaw|vyB;N9&i%UY6cY{jZjfP5SdpAVe3&Uu9+)J2kW^<4&JJdN(;8X#$- zs=9IVykbViJHC(vo;c`OL>zj+jDdH2G1JVqrE4`e&3yaudiN#A$&_gxlM45~j1wJz zywr$lUTV};pgwU$QMXBIr4TAf?T=Dff6es~nL$TRxogf>NDKyPj|qK0iSIdAbt)~Y z=8kUa&4x!?Sf)LjaGW>$Kd3ey1x%jk!Ofd3Co{#_)kAQ49jg!G9nD1++$m)^b-poe83W zL>*@ys}<8eDu{yKU}BG`w$)K-8qP;l8PY|n8gXxl8t#ZY0)IQB^67MsZ^F8sXqbjcS-H9q*7UOZ>YuQui^4Clt?bi;K=Io zUR9mU?S(ayD z$XW{RLP)F9fA4#1%;eIgukA(lg zB~+;cp;rhEh#3%`hS+t)sQZohjj<&Vyh%a=>w&-$5SVunb6FO3#C3A2AoB=ZPRf)7 zKAc=m1a22mlL}l0Jf^P65g3;n46}opT>_ZZ6+8B_B(kQr6ETnogl>wI@3Je>CFNq$ zNFYqLNhr=Gu=x^ zK)-upmyVQ`IFK7ku|PdLcDYDdrbTt7mBQK}MMMsnpe}e3~Cvk+wb&Tc#&IT~k2Y?*Gly{=dMmX-@ zSqM6h!N}2iSZQFzRZVeDeOwpm;dq;3c?hox|AFEt$ZU#bAfPoMqLN0qDb|31WJKyA z;?qH4I#yE*)K{vUh-waFVW~v`Qx7-IWr5O-<a` z^;K(oGq4hFf_WRs;#wbA0`Y>S8c74aM?=T~pkF%(>jD3Pp_qXb)R-w}6=fX2Qx)ZY zq>SvJ;zV3ij3)to-WEcP+iAc(9qu;(x)T|*6eEmbR(Ja+)%lEBudVJ0OUyN8sfYnh zq$$fspefyfK-GwK*i8moC`(t1__Dr&t4I8#Z)!*6#)imEv;k%CQEZ|MA?}jK_&C%y zY)SAq2;BhxJ0&U>YDznzbOY!F{C}$`$&DqCTUl4){RyGbO(dtt;Qy!@rP=mGoP;Fn zR%rY`RA?&UTv?Vjm3Asb2FD4CfUsaw9BXOo6eqM0gqA|&#mjPb!*E%G>j9LYU>Xtq z2aOj*qq!NG6ijL++v1cUR=nVwDrd9QGvzY~JBJFsf(owvA8aHqH8qA4pEN@=;--x~ zoVXvtr^A21`PH$96TgG1ivST(8sXtYb_iIHNG?Qth7*{MrAh~2kHP>LJY9OCIaItd zILR1ILa%1*f(8)Hiv`#4+8%n_+`uXT|A8Tx2!q%0+7rMk0MtToJc4ZU2;Srev@IZ= zRa8cUgyI6m2tdZExN3kl1A@|2Bvmp{hO47B>E6U|^Ne7>w`VNWzO;QlcDAIF^R z#5F5>qWL|9|BToH#H@*Cu%+YN(b9$fcB1(V3aJP5gqChfVJ4b=03UC01jY?B(R>t` z&nosOS9~X$ZvbJZB7J_v6=_d2j|1VHP5MOV*_~)!142}y%=4F59G{71F~CbEN^^!x zG#dicT#5*tX!ZtZfG4&w(R=`)hdr^4iRNN}mU&_u6U{9E?NG7po*nmgZ+W6QyoEK< z90YZ&?v@UYJ<%L<73L6t)WaG$1#Wad)*6C3U@&sD9#$Gyan~2L1J-aL2TF>t8O475tCP{jB*CI*J?(UxKo!#ZW8~T6v4}7buj61ul1i@`2 zbPKb)K@evO#`{UNgO|Y);&+{bJG+|)ti>t?=c?l~yIT+V7AY-scJ~oLCzSp-s2I06 zyBprhnBCO|6V}~r&F&6cv%3;2_3W;}N_%!U0m^6!{0AP%@0s1rh0sM35exErW_Mix zdK3OPA!TuX&+M)hgdT?f;~tb}cPk*^M?fyAgw5FDk>7h!@P# z#-8030sSgMSe-VwB#1j)l~7}Ic88Sq0QXds8b~o_cgPqA=u}&XF}te=_fG=)JTe+9 zMi|3DvJ;pH zaUX#HK$5m0&+gho=#%jOyhKGuP2t&HEr2${|2{=&)>iV&+1+OldQNe^nfV_zqn_Pu z0khSOY5PA^XvXaB!SOZ^7_nV&G6`t*x-TeRpenDLdqb}C$ zF1iy;d^@?2D6MgKc2@?l>I$!@4ZyRz>JZQx;0}^v&F<<#z)(O&Biaa2b9OfaLLXD2 z6Ew`TyX63_wqbL2*BS!$0(@9eLS}bg0dz^htrf?d-J#r)Pzd!pyR$pI37OrI0KeHC zwSeHnj%tKdS!@FVT$WV@?yp4imU?wD8dsKCKYrKOOkmE1|G)%XRW{(d1it{#%MuQ= zfrIPpD&;y|bjmp3Rw>_?-;?rR5G^aP1Jf`&2FxiJ0jPw8{YUh4;5I_PV$4rHv3a0- zaW~ClvmS1J4^;T}cmg|u9#&b8BbSdt(H_=r8vR3AE468tmb*Rb;+=XBCrL3P> zt1!MFu#XhJR2??RdOzW>LBIuoe^r!g_b5uLqTCLF1@4iQyj^8Q%F3tVDgsnT!59Ji zrK*%o@Kkg7Z~&f3pd*MP>$Y!!PUo+(?xK(}a6b`6JdCj!*-gkJ5V}Aje9(>IJp{iD z(0U1rIT(8k!F%!g7~FpV=y98ot#22pT^Fex8lC%{vJ;}C<=$D@iP2I zl-#OrP;$iw8zpzl(Itmxr0kNr7X*!j{{XJ7@j)J|Wy1+xUBXPz-txd z;9yV5A!R?nA1TT=gFPkp4M0CDxWC$Hj~PQ1HliV9s#`a=>E{Da5n9mbMNF~8!kqnc=H7Nj}ZEsM8sST^9lCb zKweyT7v?I+2i(&LuG-yg-*nD_MBq{_D1{5iQmH>ssY*NXhR)LFoPcyo!3jW_g6Ukk z>``zogf5Z@OE(pK9iYt;W(E1(eIn;%ak9HxJ~{7G3)-}h`lO<`@W(@3n2%x6+9{vr zDKJq@vD83Hd8mit22!A}7zM<-qKB-D1qP@-urmY>#O}|c^b*~%(o8L_sNj?*3$vRCVl%3<)5Ppw{yD6*(ss0d{;`vEkN2+rs!0}f)&xGH5o zgas>tOBMJb8d3z`=qa=DDIU-Y?o#*P;;ts=q`JUOIKekH#83LBmbj*G>WCopPl5_H zdplLAWqUbJ4fqdyfGfOvRX3HrlcFR6+)+|ov@4;x51aF9F~u27oKb+MNRErlq4eiK=xZvr&!QTym;8e9 zXt^#sFI5V$3u5h8GO1V3zJd>@eh$G=eN3bNjbx5}l&3I-AZ95Q`!|iBXS_aOE&7-l zc5#0Dy66ema4WuW{blmp!jl(-`C&-kMxEfgj;?(YI8H70pgyOUZyk}p_D6SmMNdbJCmA*C zub<--?k8h2d_~8u2~hohGByjprs2*2_3*&gH9Q`m`#f+2Ess$t%m-+p2j*9x(rEe( zfHr#IYy@MkC=LU3+ym#(!hZtjvIovXFm|Eh_Wm&c?Qg?{bnJ=%RrkQfG@JxbM-N;= z!@~iZC}Hk_m{VGF<^sM*akA;6El->)$XN&Yw*FRE$t6@xb3Ot5tj%FL{NmOu&=HDj zfJfbH>BDjwXihP}%iZgvb5qS}26$UPPAknB4EQ)dP8;ITL4UOI)Hn5UNU&3teNV1q62(Wai8r+?1hFXfi+( zEZ7`Abs$a};Lq3`WB8Plk01d4j?F0&y2tnLJ$HoD5B;M`k#*bF!S;$qQ@BqYj7?wkpfoA~BhFk=X+NXu&^HrAD@LsUX?N}d6^ zE4APd-k8(yKTunM0;S@FJq^zXp?63`RMjv~!)pT6Si;8p1Kf3j-T)05YOWQK7@EzS z>j@7@4jpG94sH&>{l`P(57(1Y%Naj##`8*)-`i&htlhy^(nOjztgj`>68rV2;4DTBwD7|;tj+kbWJA2OrD6BWWT`E4GH zh8aKhXW^J5m&0!nIcIWc8R@{V&}C{J*>|lP4JWO;#!0b}q0vn$eVj1{ECG^$6OFd+>p!F;$+eml_j+FGq8sErxdBAEZyoFAUeg-S< z2B?dINj!B5LHcBj7z)sRmUNSIgg6<1KWC+2a=swW8-O2H9GblP<&2}y?=i(!K)*E7 zvV+0-fjH5lp!JLjwN*WJLMQ0(?714ST8;`;z+gr(vlp-?`Y^TN@kGC!=t&qV<^g~4 zD60^dl*=H!1%w@=tdgK1O)y@QP5}OumAK0(LmaGv;?GfdItDl$wTQ}UIZG4>bK0r-8a9s`e0H~h_ZbtA}gzp1r+GtsA8BQX2D#8l^TH=Y_Uc(y!dPl)DZ3}kS z!jA)VQVD1HULE@~K-WCN2WdDD3_}Wzv0tCk>_Q&@9yj&+>E zVmgE8R%T=??hNv6j-5AS>O97w8@Y!c0kWAwIk!o`K*ORs1BK z#x%mQlNIj(zI&`)P^koCmn%*Jbk+kutu?#`P}De|Tr7@IRiPN*<;J-pOwP;N8qEN2 z>&MwZ9GVdi27H`fT3d)iGvai>pYoG)fH=c2bPeEJ{Nx2fm`=DFDq#ocikMl2{D*vJ~5VO*Fg(pdAW!n-#B2e+i zUk1#XVC91GzKrJuEZ)Y|6q6=4IPapDjNm+yJUFu?4~;H^=ZDMTRSld#%Dv;SCc;GI z`Iw|Mw9pj;$F97~tQJzk9?7d^8 zWC5*mOq7&2kYer~mjI}ef-{u0<=*lAfIT_U9glaM=-oRWIq`4yj!Ep_?H#`jQjW+( zHcqtnj!D7|_m0uDP7n`o$T{JClb|Su;6&Y;6UIVtKKKu;RU;&KPFM~?Yf40H)iBQq zTLIKr!l8S|BPW@2Jrd#0_3(I_RI1KoP^uBm|K;8>(k%tw06`luo!75=6#M`}k4uE5 zn+kph&}9jG_m1NxtG#1&T#k-u{q5c{p8Qcexm_pgom}+WJGpq4&)vzTSHy(b$)$AV zPVQM~ET!<|wIfR5=~Qs=Tq-zQ*um3yj;M=AkK|77j*faKw>O@bk~_K2p)uu7?&p*B zPVV}SdMEeFWMd~6N&Y*zdnfCiTsmar?&P8()=qAl`_xV@=1lJ7qM1c-m;&9M+$s0j zJGqal`)~0Cv)swW1Gj1?_n^M1B~Iv@I^t`*@$TgQ0wVu{|G)q|&DC2SC^L3)^W6`F zp!;2lwUavv0%`zK5788j@=h)a>j+41iIM@Wo!qeiJ*42?9uDv1E&zP7Cjs8codyBx z0NEy$eyId{XIe?&MyCP&{$Z$*1BaWG6Qd;CI@bke%E*fH#yJYbUoOgichk z!|u1HV?28&_fd#7U&*v~a#up|;VGt3|3kFh$E(21~GSXiBk~pl2a|Cm^-<|X$W|$sb>22PHrE-hDzLLC-*_X(p3EC zbQ-*qyAoQdSPu9q$+32F*CV_WpnX$iRX2BXDfStF&Z*euPAI zWCC=`0~gY#PItfuD$Wa94)5gdL?x#J zK4+TMRhm1w#90RTYc|K+$vuRey?`IK^)YvHiSsSsm;7{YsyVk!ho{|iA5JUHsS5aA zejH;bw+rAsr`zT;c5+hyx?jQ8PVQU?UNl|iHe@H4s`NU*w<(TcS>DN|n)wOfXQ%sE zpLcSpgsuS|^^gyTcXCV5hR|YwmwU)3E#AqkfShK4xAl`VPSu9MV8F*I&NR)Ls5$9? zFSg`}XYW%)-pPF#`;qlPdha2#2twGrlZ)vD&I0pFIJUKuoBd&^^$%N}?=)RP?oMu1 zAhZZ2nKhw{R<$oMN89X|b>?{|7Yj8o2T0G^L{!i;)rXqB0hk{s_O#!8*u0ZVhW!ed zmlT_Ja*a|-)x_Iih+SlcB+^cr&#KT;j|D z{0YTbsX4#uF6A}AH_q^>jPK~Q4g-G1N{bV;c5*KR;hH4bJGrs&3@bF#XY|H9x%h_c zMiv~pliLaK0X8ROCwCIyvu(~A)a5_<8zY>4SUb6?srF88cDT<4|AC`8cQSW!OF?K= ziG=RtCIHl4!Xgu68#}qD;C?Wm<7|e#lgkrSTpCdOwJ)ZI+sWOQ>e8Ld?CwcV`(d@n+$eBWtfP*KC7B%LZ3x`Ro;{$i91pXgFzIr@Y@r z+SBvYM%uIU)J9r^*^b&s!wH}WcAl*^()v(9vI-c3zcm%Xi7H?$zR5rYXRCm5G^PnI zQ~~2@h!lKT1w25l-`z-Cul*11)c$FQw0}CaIcp;=+Z=d4!++o{G`G2tRuV!RNkn{y z54|1edlxSUkZoC@s`h2UJ%pH`1m6 zYo3n+2GiY0dkI+E!>LMib0h5(hKduw|0>NY1al*eNq+$$>myc4m>X$CDh_zXN6f^n zjWn!+q6Oed$oWc(FgDVX0UGXsc_WRoF%zIiJaAnNzW~t79+)@MwjjIn1IZFY5RdFtA4sWE9l6wF@rZ|+cA#AiJ{s5#uZQ?~;+1!n^T+kg9dDN%8 zc_WPk)dIZ9qoyEhBaJvc08dt&EtPjZ_{2 z_;@M8?~b*RMwCVX-))OAHqxRYintfxk&pRk^R3SLEWjUq%r@|k8h#0&S3U3*4etTy zLzTjJx~8#1ob!PH;->{~q#Z?0_PNlN&o#SlYa{Ixa;gAcf38nj1vIBK;C*e5xsgU` zO$L01otC+gMsl77e5GGn)iq}a;2-#LjE%If0RL{TZ9ZcoEdquuS?5XE+DI!3!DZ)3 zEkifb8Uog8o|Ox0Bdrf$Lv7sNNW)=on2j_VdIhV_RvT$JepjR0zaH14Tl5Fl&(oj! zaPkT@((Ro0=FV*$f%thqkQjz<-~SfwtdTClbu3tXjvRBO+fCufHf8Wg7X!v2XG~tt zxh+)wQH8LID=1&)sQ2y1-4QM3j}xMA1DK=UOD2a#y{91su=Ts7c%g@JocV5py$wm-*w?xFl2=lHN?>Y65ko+VNrbe5ganX0zSfKnJ z>OJ8&bx9TOI67m1>+gd8X!hTO{#bh1d^B#fIy)eRcQKWnm^K6Sru`ET_>~020gd*@ z>lH+vkmym3;<*tgFCg&>%|tX+Zc#avB;e+WYG-u2wfm&EO;0djFyRTQ|B6ZT6>SXF z)&5Vor)Q&SNOlT@&4HlDQ1Vxp8iSMYikiO!z^e%Uq(ORX5DMA_|N9llxp)w-pF!Xk zN+bghQ5}K6>k<&ZYZRaLPOc}hzDSf_6u{^lyjB6Ev4xrfGVt07;693C*cRJ^GZv5s z6zb$t=#zMz3)kl@)D*uAuWthUj-+rIuti?RE7p%=fS&ft!CJijjK~6sBA+Q#t)n;N zH6kD2cPy|ZPr4Gy30Hl4WW%vH}jPE2$rY6i|}cDg)4&SUIg5thO@PJkw1 z(dVfl2S+b(XK~Trk~-|auyvpEfB&xb|Ipxl<^PF35W@b8tDjf?f4!;wKT{zEkEuj1 zq4Fa5^#ZrEj^;Ofh-@&~%L)I1C@d7(mWk#Wg(wBVRV5^HYP=BREdaYm;g}SYSbk|H z4F|$>o0MOPV#f@fSWsb0D;nB(9P4d7~Wb$cr%t13d0&D@XK%jOHf?anb>Q%2LSX zoYkB)fN!z%aaFm@s(c98>8C?%?2?M}2>%iguG>O5q3VRch_T`pI!@7rvNAAy7r|>0 zt_@HFgexOVBbVp|9s3@Dda2k9x7D#H05nC#X5n24-jDE;04?&Q-H+h65ncz-W>4&) zI`&b3GCi@!>Dd1Q=!z%y16sA%XB;QrGd7&6Vf@5jO%ME-7Ty-1&K~$_4UYt9ya!%F zFqPD!0L}NnFKGBxfZkBBTLZa7--X~K&zQyT;(HlC2iULAgsT=`Gb!65X#b0B!~Lj} zF9%SSMYeWV^ln}&fZ8dTI@26YNbUd#9ks|(j$;?1=i{R&d^X_o{Wv^XTuAu`e1lBE z%w#R%1U>-lxQ*jnBsxha^CQ5&*~t*4k4`1$V#g`G*plK_F)gMh;Pn^VmP*kgIs?>W zv2CeoI`(*g?(@WcM8}>F&_Yk_g#^>c?G1o7dSX9Ia9@NE19W_`T}fW$iSPvo{#C{_ z%YQTD*`9@}|E$F8Y5YUR%L7(b;%*N|>vq)STLIEt#a^qb7;Bg-iz1E#(!(~fo+g&i z#Kk~*)g~H!)m@sn2S_Ju;xSM9i#7XaVE$>bUCsv0$@d&Qsh_hXuGRJJAWv@U1EGZ? zmDTn-&3I41`b*q}>hr5tCqnS7=fbte1STy8!U~JzHY-|a3~T}DeFf7)UdzbAU+)c^ z2ErvpdeJrwGs{sM4rE;d^PeT5Eigwf)y4xA0k6Kqs(U$jp$;Vnk^t(pBwWd6Mk?Y2 zAf<*So+2V@5Lg1F*O!=$kv`Yx+Ua|?({3OfQqrcQ=3F_SQ3;*{_+Lv*Gq{wO6eTNE ztpd+mmLeYQT1EdwNmT^Af#T4RLGOM=XQh#02f+K=9NPV2V?V;hk_vl0>3XkE?ug=^hn(Rwb<(Qc4K?-`O@QO&pYZ%kHj~=^q31o6^H-8 za#ZFQ9P%LD`qE=9!0(bA^GlD&6rBO-f#@oY(w81d*f>BYE7bhbBf*aY^t6KUOOI#( zCx}g7Zrn9oW^df>1^x#Zr!mGcH||bD=ywtc-MIS;psdSWShT>{#>QO|+{Xi2-e%Co z9j{=hpJ2YU)Hns%dzn53*%4#NjPjxOI$v3?_d4nKfC|}TAoNBn{yl5mH?J*s zr`vTms81i)-H6|OW$&h#Pu;~243h%;Mdf`#3hW<6UsQDkzLWHVjJi_`+=V?6dw0i5 zfz&%mJ!ZV%rw2a8T|FL?(@9#!k*RI*O|7qrw);sLt*?p}9W!~;i*8Mdd5MljQN0kv%cs8{E{YW9x>BNmm&a_QEE=PJs1MxFL8v;o|_Bs^ELni+0A6ZKV9FXr*#z)z zTM8e_e~+IqnSgz%@J9Y-TtHktN$&*TdC~n6W^_!2z!kJ4hB$%_sm46XlLS!}fV<#7 z&X6CgLpW)1+cve zAFpwqDvHy9eFy&!kUe^-va&OcCjnFkkZ+~#0O*Gqs;{ZCQuj4<(m)}18%TzM^ots3 zNUNGx7>m~}SLwxTdb8=+mHKD~z6kqf7OWqJID6q=yhhdnpS56(@V6E$9z%|~V4Zc9 z#F1^v;00?8D1n?eRl9K)tWn_x3em3sRhjR=OG7A$Ui*<=1W3P-jngUyct%Msb;H9so+wnE7K^nDFwurn`fgXuTpfx++_ z#5Z9uio=~jp34!9UUQs5c$4R91U;(w_1<~@qC5VzK^~E%8+5$xO+*$0iO$ji1PE%K zd9v~3Xfo*WAp8g3#~jdNVxAlfJpsW>BqS=US0Lw!BL@S-M!39#oR3xCk*6>@_aJ;6 zE+;*3JUOipz6_UZ9+>y$&R~*xUWNYlRjC`p<=Mg5)d6ZKVSY_MgVnW&u7LOUh^VJU zOa$m5KM_qeXA$5pz3M6{?$Tyxp_ADL_85R3 z4)B_(OjR`^k{BReseT;-)ruxd7-zYU(L9qp8QkRz2?@z{10LeNP~g= zw4aa)$jexP&Z){y9}A!#-{fyO93$%2pBM?y3l>!Zc~+|gu#FoDoP#(qfQs)`0`#pp zH-Q620{x=ut=26If6k}dTxSEpm&CeARDY4a+I>-QRI-pJQ*%4fS6%o^-zqOJt=5kg z`n8qJ%4wYyd@Y5Ml{WzS7_-t$y#N9kF1zKz)rMAgynZWMQ6jgcNr}x~cY6x@obz9* zgNmA@WX*itdRuw6zO7ohX|!wQ`J_6hK?33yDgi5BH>#LHiF#2{&i|t{@|?_~GQ7r2 z18cGS9d!C&HGVrgaZT6}=rQT>d~f}>%F;~3)`XbJ5RaeRUU?JZ^*7qRHa@?`deb!J zzps^lPdT!Hyt=^G`rA0qr)o{Hwxslx^A22tpl{Q=;z zo*3HV4Od6SGaCu^AVc18OP}5VeBiQT;O`mflW31f2HuDY6@?`OySdjSgMJA*>#8jS z^LI!x=uNv1R1p>ftIb8pz#Fl-st7H(Qg1ppVFHqyYrKrq^G(+RShRL4GD@2({1!!`y1hkn(J?ji(#(62`;(0{-(HE#^;N2lY%03gX5&b ze<0tdj=RvDn-&$s^AP%qM8q8$zK7s#0KF$+W9L0LPKKN&fQT>P@;y>YqlE4o6orO9 zZIF@$vXWz?q$F#~041d~z_m9@J!)c5Kr2J_K(q$Dr{YkwnpzeunNh^?z`0K*=Y9no zOCVTwgB;@3ul+s{a0=|yuLoV8>#eW7jT~JAbY(viugzE6wry=~yWQH@wp-ig)^4|3 zYirxw8n3qP@BP1XemC#trjJELUf5EcGi=M)jy07az^rX)qNLf_`+b=ssvQ@z0kxT)Xj5G&-R#0J!OED?Diog~1|v zeFgx)E=ubXZ;4!?B(A__gpBh2*)fAc6@Ml)=zi*@f}57iOwuP!(Eq-RltF=uXt)8d zVgaAs_-|ZKk{swDL~d(?9s-VkL{ro~Ex`{|c5q3b+@;^QdAqUn1)LBtPUUbu+^T7koXME+(Tv+(^4}j!@IoB zI_|d~-d1xinyCr?=i{%!MioOBn}<)Jw;XR%O=2Ww@6}V}?@}p2@L9lrZas;)A-d)1 z>8PC^7O~_GIeKU4_+ZL2mCpEqY*){tHWde{V4d>OeSLjL)g9=5`lTdCOD?=$%%4D8AYSsAu726_@@fn6i9Ejn&w$b&-*WCF4{lH){z0 z*>o=?s!d7Au7}@6^p;6<{SFeJLugGOJx1`E6vgDY0tslxF|yc2WltcSZ&4~n0x$fF zOW(kh)d{1yMJI~p08$1pIce;C+7MqRE~ugYtpi?Uj4`&gKbuhL$on3LJiLtwV+zT( zdDI~~MPUBL?21((HRv3j-!f_CypNe}f+$3>4p=D85E^=gqvdp>aojX~#5{{ZYnLY9 zl}C1~zl1qX43&s(9#ZoC95^uk_JU1yziNYHCsP7cjTY>nwD?tqq@qR-=DW;XA=8!X zKeR@C?H?^McWR@nQHANk?o6CIcB0#WF~~wQM}ur$eCI)2M-ZN2euMnCn2pxy3HD@Y zvOc zm~>NMj+L}5wxEg10<9OrLY&;9#dzu`)U_0dNwp@%KYW-sia`71Fc*y?lVWY5 zp>|wMJ(#bc7trl1cIahdq?giwLDdKtKhsX4*#$ymYcT6Ez85%E?3NwQ8CVG>RBK6* z!dxo2oE&7}dMCq!b=PvO&Ksn#mJ6+(9aBtn8hIJGRgHoYOEjODFHznpn%d)sLxeMC z==Y+6E0x4KGK0WgV=CY}*#^wK+f|CH5Ro_^*dJ0a-H=5xlLu>fQ37R!Q?xpCR49{Q z(Kd^O@1m7CMtik2CgO1-Vvyx10?#oG?F=`b9GCarEYBhGPZcK*Nk47Lg;a^rq8)BU zjZBqFT*j^h-oeKPY;zN6=5-$hI$4J*)xUzG?tgvQl7AfU4forOI?cE)SKf6yEffxM zw4B`k`=m~=2~gKd;>ezM`SwWp4vTH7XSvV@SGY_`ZZyxzlS_Ej_k1LTgJQ#fH)r$@ z%rP)kTeY9zji~a3QA`de@QrR9MiH-|L;=PtUg6v1+SRgq9`rlcP@#2W6QeCZrVFa` zR>qjF&@Kz&Uq3xuwQ)zltwJ?%>O{M(i>irH@;R!ylpLWLi}I!^!IJ%HdsJzS^= zl2W)18?dEs{g&=rDDLMJ zqIB#VLDAah{|K%lxRy|pWxES3uTf#&2K#JGHh0cCX=)G)+85ZTC@)P{$Gi59@ZE1( za^(l#8c{}BPP2C>#JsLZ-fQeQhf+=T<$S*{yebCgSve@)`SZy0BL9|c8FeR!{|Q}T z)R$_$E0_>&pD5RjYACrM2l{&)TtmH|EFt_Ksag|wD}fq9VQ5zb;n`dr9-TQ@UJLH$X2?NjyIZGV zDK}yG1{twrZJ}x9Z^P?}a3gNlr-TuS$*_d*LPW;as3Fxd9P7~$7uN;q0MPI@k@_2? zui|7xx;uZK&g}oVbmplX|ECM%8lGCI{ecpTO=4OiZyw!o+mx~eqq=e#tWRrd5KI?Z zh>RG+h31O##QwXN_dW$I{4=P~D+o6(Y>*i`n#6_h9ml=TI$84&?l83pwJ6`*S8;xg z3=cAMa+d24HAsVC1)Zt9A$mO!?gYS*X0J3W2VEE#&&-`%x7n>jUEwB9B_jguM|Dg)PiD42vfGUW|63FmKEJnxKHJ*onHsAbcBSL~UJ8qLBo6gCJXrqH;^_ zn!wm1!D=t#95`lXN3u8+vi!40&Vg2O9^o!URvrKHZ9Uo+scx?>e2N?`%Z+i77Z=8Z z`H>CjMsoaHxl%FdYsD(hxSV3h2b;Ta(#PuT3`>M{D$&R4Y5>8j`D%c`>s_4)?CahN zNsPb0xoUBa#`XD3h^j?XV}jqge|~T2hcQ;DaHO8WgB0rgo8c`< z3moGERD&&1%RR*}^KR-{lP4XvshV@-Acj{AKWA(af;1y%L4(J=sJBy>mag_faD)$_ z*Kb9<1aecHez_^>zExrPh@%4FEy(R*pT0VU{cBXYn`|NQlK)o`5OwKUj8&F=BbTjR zy9iO3t#PlYR?a=wcw+z{w2Sk^6J^w}n}wIj>^uU4>KlrAZpja>vKl-Yyh(P=D=R=E zXy;xE@T%5^V8AoxE8#M9Vu)IXpkm9ZB~+^^c@uRajHu*0XJXa;iO8(BCEiieB1_0D z0mWlE{s!TOrQuwBi_K5grFf&BUenT#bWr^qeXAw>yR$iq*6Bj>pt?AmSn;f)(HgY1 zYh!8(O<&9Y-9^;2p`<5nb#YPD1=;L*uRShsNYlE6I*Y#Zsyj+nFbknz!H|0z6>Fr1 zUn?|T^z%k9M7*JWM>&1yjKe)HT=j6B+>Y}y&mwM^>F=nuUC4rXNUr= zFB;^)ET>~*p;q@{C%?_ly>ZPQGx+1jak=NYQ>6c8MmCp>$kWgiV0PxisS*45=(9yv z{$ATOfc*8Wt_SOtpz+J`o~EIPi+(%rL-zQp_w(;DNFIDVz8d_DKfap$oIbwl|I9n? ziTLQ6opDOBTf+I+T-hf1*jyC>`w&{mkNwO$CkgsAIwy(x+}b$d>L5u|`j~WJeQ!K0 z|2>+e==aXi{xQn1pqK<+SAg1a7P0S)t=KBs%&0>xh`j?S~9=P6WMe+ccn zuYs-XUK!Qz345Cy3iCTCPyh{uR@9(G0aDLjqTe9M!1q2w4cG=adxb-m9oJQkLG_tu|4YHE<%NoouhX-MXy=)mhO}C22RuoQZSKD za1X?|4bya1xDK{kcpC)b8A|(9B3Sv<8&Nn#FQs!gIYT?(zs7}lgyAqe!i3IiOXj7) zGvAq=UXTZwjU(1lY@c56aFx$YZyU?X2DtxJPU#LC@mbh{fWw~9Mf&tubi;cN@lJCY&9&e z#Z|pK!OM)zmE#yGR&>{IO`uEdz#FA1Y|xk6`1<36nF%?;L0 z&(!PJjo$vsH|NCX-e^AZXtY6g-@l{xJ%hmqtPQ9mc?E}yFEP+h2Y!?QoCFGB;a*Fj zEuiwmOh!D(v>Y*3B~B!OPw|Ja}=QzMf$0_~Fzdj*QZW!KU=Jxre$Jtc3xuOsuW zhafk<2S6|ogy-t`q;9}qnBxk;=LygsGb;DjEB zj-3h>(Cedi4Lj&#)oGWK0FDEcUjXk!3#!~|PRm1YopGy?$`gA%TZV_zq&l)-J$Mbh zz^b%Jc3TQTYK7UZ7i=LNuJOFkSW=Pl@?6o2KV4w2>e_eUAkoowIUI$t7rJ%_tZWH|6N+j28{yf4@`U$R zlb$=BFogxmA%hqqd#l{HY!pfCe@aRflazV#MBC>1Bd4DbF%rgIIjxgzVIGhH3C^av zZWX!1J1&}q1+`oN%XEMK4b5#qQT>m%@q(nVu@r$ z_PRe1KNTWX?B|`1%YiT;vwFGy?@kLdO(Z8)-q;5s=HwrkGiCY77WeAjC?AuZY5wDX z7iR1^7td{DcLN-tTRfzmb~C=jI zsJ_MqM!M{b-%ZOGn*T87yiL9JpE2PLC;`-iOG^XZ)hKDZIF{v9ym1U^Rp(Yp(zc#z zyZYssH$T^mcBnFhV+|SZlI6d`oex2g;Qxn@`~Ob~lYlxz&Jd2{opfXJ1Aoyi8lpH7 z-jlDiH*X~44MErdpOd#N4=Au1QNfy3FE5Ya(I4yNBZ=J2n>~T7Jid#tOBc{?0F$NV zw0iWPOrsX+x<40HCK1{@##2@f$%DT?|2Cs^f37gY%s7xacO(Mb+Py@zcf@;SAUw)q z0c!fUph`J~I1I7YqmSb)RZXwtU^1QsRgI856k0#bcPF7r4G?uGHR7{j4G?2fkF-lj zsdHAPJ)Swn1hD%!3bz?Ejo3ekOoZ>ZR`@z$=Djd(1#}I3T5Z#H(2JlEeW& zkjNk0$EWm>cT+I>M;538AB*6&`_)Xm(xZ#I-Zq)fkb z{RW$qtIivMb95AISpQyf)o>%x%>M@_B)bph^CF4q8&IGQFs(B;8%pPa)wIhsv3sLQb2TfBfA|s;1<1 z&FlGU6LL^;JyZV+?i;Zu?&ABL5$t~b^rPsInmZyAuuUjPc?~Mb3^&!vyn9t#rHJOL z6$vl5yUD*ee28{Aync(V5;7<{MDBgMS*U(CsdB~6c}#=LWA*z-%sR^s_i#f4Kz475l=MJ{NJ%=^f-M+w_@EEvk85Q1^ zY8y3aPu8S;enxkti@0F*w~5@qhO(IMRMrMvt6_H^4tIGKXU+6--{Y~&V-WOP<$RI} zx6Iu!c&8`p5{vW7AFqnq1|X_`CS3E){;8hQM$aS;<&9P`LPs$6K7;A+_G1x-jZ*UQ zKhZx%Wn0=3zQd?Q*d{|Z-SMpWL0=SvU+oV2ms($ielu!nqVln8U8Mfc<44DTVF-=I zKmX@v8ZE3#?>$g1PxAmh82hd+ZRa<$(XHb2?&y2{3vgfQ2^yW6h0rQ9B?YyDj+anK zHhDEE!k@n64QnB7t~c-BSIUbZgsJK+c4kt?S7|}*ZlNQa zjT9q6>`Ftr_|>;mWqr?QT(L%{)$*MB!oz|m;nEp5iKWBDi+tDRZNk@4D{|iRDnD{w z-}j^7A8xFcg99ho!dO+=nMtTjPjA6g7>OuuLm3KN_joh5ugSsuVgX}|7#+ug$NB#> zp%Ba6G5T!yHl>_jXC=`Y`P(DlrdKSXV>%u&`v4fhv3*qPTPZv9SB#b!sbq~7??Z#} z+c5y9OwJb{M4QL*d;}WU%UJg-%c7PaCbmcLJ*#IzE;kMXsUrQyCNFcMl5`uTZ8! zFk+w){C;D2(&L|RQsLU(?|E>Od^PR@x{4+q;ky~+p|+1M_wX$(b06rmp*V0JQpeou z&iGVCC?%W@kY&2)}oB zxnRvSD|o~9t*UK?Ab#Gq{o{bf*>ZGoCbyKD{nJg+L#mCM_kwX}Pr5~R)r z52HUa!hw2Y5gOOBLy1Nj)GrK)IybmylMMx#ApP>}hS(WvtPH$C{0*xU>5~@ujTEO3 zvf<{1EbPWS5FY9Yj|77{Tqas?=V8JphQJ?xid!?`XxsVF5-R<>201b+~+sl zo}{=yyq9Of`~)=AFrg81TwOUh!cloZ%8T6bqyawu zWkH{HBA-6L&x+hp@aFpt2p>`CzlKB5R`I&S^!>DAS8Ty1eJ2YB7G^%b(e_-iJ@XXB z%tAqkZo_dAe9;Hpv?eFy-E`2w8{wy$_{wMsW&iFLSB8;+YcfX;Z<$XClX;M+;qo>s zevNG}WgYE%P!L2lpL*Z0$nr@`>{J2_K)9ZSf@aA==!1hc&WoOzK(G5`m@H{W z8>1lYdu9+Kp}-7%ixr^l3<0+M+r8`73-#?l%ctwLd|!~XJRpY>j5oU{8UO8wKJS-< ze;F_JtWYTKP|OqYL+g$zzG?33eS)mk|CeapK>S0%|gR z6O5_*h#GAWe_z9Z{*rw7p-#5TRD9h)Zo6bA`Vy*g$yAg9b@|Rk>%mSW^^&!SJEa>O zWK4UHw=Q4zZcG6j0Wc06QQ=-HvG{R-jNG$rB=zHA3U?vpqfYi8U9ZCRM3Z{8QxKyL zi)Nc$YZMVEcWPj;c->NbibL$R;e(`%+Hy*-b(7$vo@8pu$kVR-@6MrtiaH6V@8ebw zVT~1fVpfTh#N;7Ivb#McK*&ayylXI+j0}l75VZ#JGuTjsZeZ|=xgnuwi6#cpGiUJ7 zJHmT}2qFsC8FYI@R&(DG+1eq0MWO;S=_=6z^Esmv)TG-g6PY0ZvFVzr$t&BUrZC2$ zQIG1+>=FHTJlAn8 zikdcOJqMeT|3oouh>1f7Z%@7}{zLP9?U`#bdwwDnUN6^^;y7-HpN-o^j!OOPa2guW zL(p8})io=sHim}(a!`J+S{jFZ(~zD(sGq9SbYE2pIR7IIqxZ(-E$89BCUyliTil~* ze3mhKn}}0b4rx+ERNnJrE7ils+8er4&wfYc>zN=+==b;l4I5tlR^#nLnO6SX13^>3 zw%N5VM8WcPWF9A_WO>XNa~4HvnAnAC7xQ94Sc8ocpqhvQV&H|5p{x0w&FyS<=gUo z`jg%=r94hKH8iZq#!$rx$EAQfL^p=8+7z3UF4U`8Vnjl&HQxwVg)63(#6qRLzOkZ+ zUbEHCC$8oCt1ZkdJ+;RE_*E;cI>$BVJ4pjO}%W{7ir{w-t<%e}tebJEb@yiy*)7F`=zv@j6RbI7!_!z-IjE5@u zDW5d_d(y(M5q^2U;> V~j?o(;|p-B;?zHMFXY|tA_Xk7x87V-V1b1`L@h=rUg6q zVeNT{UshaW2{>l06itl>AMm6^fEbOV#?O#S7o-PJD0vT%wI#!op4~0D5~~RRM?M{rMLspg{wl6_uIn)4t%!KIuo)8DwE(un%S1pOE`H;_jG6U$6AAQG zeIW_ct2tKqFg;S7;al-{YkTcXlg_w83z7MA7{NR30f`aV$1W(N&tenn;3Jus!l-<< zaOy5wHqH|U*?{E!S<0|NSs|`XGwXRScCnzi!Yf*&ixSs(v&uCRzR=}J7+-ock86MLRsQTP`-R*R3egIG)Nq8 zC<&TwayQBeUPO!P=}EKZ=%%j7wQHKxiIk!25GM2F1l4PT%#5!!n5^C?X!!Br+(& z8(Kmh^;@{DCtJ9Z|Fqfh{+HY<$ij1O6|1}J2ugBc3QHRNsRNRq5}!Ht3lVA1|8t@0 zAaUjFHRIYE{0qXh)teV%U3B+`jqy+ER{>$+3M)J-d=v_uK;lfmWcruXC)MaIRV*2d zaCwLct+zXDOyOa?u-Weej+nx9N8uR%n0^%yCgAeF|32^^o24g^=<@xKND*9Oe&Ik+ zzBL+L{sWY;*@_-3q-vux45aEUMm)W0)+Rku>j&hYB_P;i%C6lOS z167xgEz!fZ2dXX`PZ=pUAA<##zlVIQD4@H4_60%Wh-XMXeELg?y=iQCHrVUG&KAJ~ zap#OHW5Qv?>b_H+To|)uiDdZRIt0@Gl?`Xs!fn?vJvQ4+L^AZvQ*h3VD-=ovwaFI~ z`#qC+WROTRZu|SBS4<&87LwWVI0jPRY}!<~)R$aXAp=%;O{a?K@wmA~u*eE7|G(b< zxZCarjX2i9UMu|I!b%@pY>DM#_`%sjLu`rcJpkitHdZ({1Cj%AA}QXQZ~6CQZvu&2 z4A%dK9E+g4FL01L$cGXx+_7~Fm|aic^mpTVSbx^|sR!{UEKv5&WcOb+2S74-y(&m- z?}Gh;Xg%y|t5s_EQ+0QX&gCk()l+`Mhw?HX1ggs}z>{#)8%~r@&)`Sppr7cjV_GY! z+=c_-i7cwaa95bo<%`;dB&jt)ZlgzjV}$Z@5AXyZ^;R5CJ^P2mO?HyIEXB5?e{+HVgrtErXjBE+WaTB=Q?yavLBTF{0io20s*bFH>6c zyu8U*b0at-~Exq}L8J?X}hiG|zt>yimr zogsbUx_oG&&>?fEfiZokKId`&7!w^TT%~o|g6cjKNh(}f zA4STzZ^7uYtVL+C)O+o;=uu_&^}|Z4X(pTwUfOw_^zhPDeZR%)_k$8AzfjF=avtiLg-81pMmO2Pu;7omyeOFqq@KotCIrQCqe0B1~VkPd}KsceY2@= zU%{g9!?N+~xG7?(&%oq5}MSgTG^|`&7lf#dT8Kk zg8!Ub2VFX;^A{-f{vXY&M#QT6>x2HJ)JZN^&j zlqHqq+m`T&a>@XLOjFsTDS6cJ|Dg;`Q0QkGsh780*?~fS4M0%HAs!^QQT`v|&Wg9{ z!N9Ck8Kz)6jbOWZM@*>YZ^3qyeOw5A9LX-*5a@gq7V!s@d4&K$iVFs@Yb4qKBMg{1 z_9GaWNq40WHKPHam&siXtL$Ay>GdDPogHqu#he|+IntSHHQ{R%I}Fea7~pHtpqA;O zmZ|p2kjNXDEq)yc)u_YQ$geZO)uccz%Lboe2A`!UiaGnqdCJ=_RYEP7$6bu2)MP*{ z%Lkvq>I!Y>$_RMOG2+F&NrB$&*$fXR@3CMhFlIWj)qe+P7pt+WrMztSey$7?4y4V2 zlHU895ONfHKrpH-zxx6+UhNBsrL_a;M);x;?|)2sXUeB>=zz(mk*>?9G5y!|H{%n0 zXyXVegds;mp|KImRx}*}3@~Et_W?IjsvRx?%#JwP9SJv5nM1RlpkYAsV#d-~xlO{{ zYkYzh@!}m>Bt`gOW%WWe+`Ab z?-9rKQij(%l0)##DitSY@e$K9={PRJ-hxb`*E^%r-??vr1U!54f+u;s1J7*>_OJMV zK%1VJC}zmX;)i*1uVJ1i>F{Xhqd`1OK^MWeJeT}IYB@DYuy?4cnO@~hh_32ikp56> zR>0~tc&H%TPlj;VQ`|gdUbq`PuLq5HeMx(=G?H5Sn6FT0tCcfITi}x4f6Vf{AbX~ zB^W!#1VpKkbN2Pl*o%1~a`h?s=Cxvw-5viV7rS;W@aoi|?d#3X@V$>6Aqe#ymX{~v z{k4@V^Tv#{cAY4x{LcJuuLPmB99tx)R46XLyJU7>W7Y&gD0o|<3^mT+9p{)A=yZUQ zdWs+U`Mj542X`iH{jbjo?cEN}@{CdNkxVgrErnG}!Wj_e7&MDt^!zCC?Z!R41D0Hb z-K*z*wZjtC(+I1EbzFy{5R6$|F{L{=kUri@?T zz9PLnAV$ISZ`x&_@OXr{Hw7cJB#G^^AN&`)HrM{q`lr z%bBf3@NB|P52AF4G26Rjr{SM|yZ^6ef$<_Vez}Y%1+n?Mr2`%>G90#OZ7l~4cBO`7vU@<1OAlszLWav$K&pNp z+Uu|0uSYwh1!x3$JnYMr;)lN?fZxkb4^Zt6*Y#>`RLA2rbl^DVJhAs9DdJ*4meRi~f6!;3qWPw1 z_bRRPyFOXd9vjNZHzD)PNxRfAeQ+-!MUFs{+DY?^1q^7&BER&c@1jlM#ds5~fr7tB zyC&~BNhMvAe2u`JjwCzL9q!nYhv=}m#Yu#yrAY~z^7`!BM0cmHCRyT`oqWI(w?n>! z$-$v7$^InVGV(v9>HcVF5Vr<=Qow&_xKNxd6bY2R*MzfGPxg96(B_8|LO(H)v+dG0 z)W5pzo?aSY(Y{$4kk6~Iz1CW-_S@7$EmVH|@kg}x-wKkzV{ zX;iCbr4rT_^ekh11-M&^Pql^jTM&E7m_2sLV;!D76p=5r^* zTNS@H8JTF%H>Mg>&tdde$?o-%HW3w2=~|{6??-6cCFQfBHmi^Pd%Zzce-S)?CTqm^ z%7gXv#Vjt=9^jp8v&%KJi_`jtOv&YiLXowU^vqoWHt0MVN_uC=qebXkXv$7tA5OTb z2S{|Wf6r(TCdq}zH`9{ex7c*Pa-Bxzjh%b7FlOf@4|nY zW7RFrRGXsl|0S8Jc?_&JRpRf(r}k`D(^kVfeH*$DIVmDhAgcYfvZIxp{RWTmMl&?X zZIZgGkr?bx3;hJKoATkl`aC~ex;=?_8>LoIT+N8~%Joh|2H)T!pJdYV+3sNL!h ztsea^--W>Xbvb8k^3%~QOhsK0#Efc{+ACuH8Ul*#=~#`~L;2@LOd4k#iEf$8m%XA- zTTiwQnY&fMmSYrbt4*iwn4vf99qh3~fVleoSJ|cjE9$hs$^ku556In+f=d_U6)Bd; zINj%~p3NuO{EDNTh1SIn78F%lm%QZGK{-L^g3DV|rSv-qevYWSi#c|5ENSi=@;Z|R zm~n)B%On|VFVfm;qCe1;*x0d>ctt`u^_ToNe5^egw2OK5zsc@%gHY}!n)nm!9t;gC zN1WgI5}>a7XCi;fnEwR8KR^=!TRj0X9Uy2DFjT+XQjHG8Q; z&)19Z`?^C#PD-%uNTt|d_?Z(1P-CKxr}QCQY;L%yTa=u1f+R|cmb zhveiKEThoK>HswARPQ?|Z5ThMmFY{2nJRwyBjeWZL`8W`(z|G4w|<0do)d~kpe`Mh zf2%m$#;4q&cJ>Ta@3@?s@;-Pn!qBPgE0Mj9hEbfH2(8l>Et6AavbewN|q}yrI3zb#!Z^C9{G}#eCs)^*da`xzBOK& zcMIX~Ssv}mq?pIFIJYwQ)X)#NYejHM<9)<7&2Lc5uXGQ|8~P@Ydd@l2Q!#1{!9wYw z_~Y-C?l`8v!)>zVEN^d`P5Rvp^xnAuda^;2yy?ivEuv~FYd?LSV!->~*zBG~@lpiL zD(~mqJ0RfejO&oEG zG)H$Z{5oc-U*I=4ut4*@Z#)Abv-0P@V4r_ovOIbigvCiPo~b%>D#{fS8PoJzL!{x) z+;W|cGa53&juq3nbjyC$KDpSjC#DB*r`0DLUv(q^6qjAEJLDT>+A7e*&!kUov*iX? zxZX6e^rkMHPWfu+-KS^`{huN#XIFjoC_Gau5xUs^JkX^^Ok?bYa`b_}n5JeUkTt2d zZ-UQ(OklsOo&b6xK#jP!aIq)G#kma*rjx2M51-COQpZ7&NAahy{T{v!g(E&< zd42ev8e@s#zj<1M#A6;hn*#k=O(?UmD+VOBgA7`3wz@K~a!5u?E9W(*`nL#M>!#^tQ4{os!dq5GJ z?Q0fZ@kaLTM)bR7nR~N`vq08sg_?k?LQej_cA5LcO$zVPOY|`|ms6k*r43(&^AD}F zEyd7;zYg{6*fFl{DYPEpzofni5G7rL6(xLkx$q$#{6Wn>E4#^GvZuCyIf?P*Vb#`* zF5VOLMOhMT9_Z7!vZz4rU-8H3Z}yA$af$s_O}0-(%9WLfO}?-4kaF74VLPL~f{kAh z54;Rg&$yTW-|S$r`zP{&m;TbetM4G|EfWXyq1^-%q|Dleqj=wAr4p1DbQHsAKh*_d!-i|NSfF zTk0Pj>9=QUA3?tB%8|&7@LRs6veLHG^Q~dDY-9$lusH@pJWa#Xxe)}%gu5$0fdWl1 z1#<;$cW@z!=ac1PZbwPO5ttSnCbH&^m~|4jA8 zaXex6=7lXSZd~Ni$>U(AtD%>?!1`|9*EBjt;2v$fQy5MtFS*ct7|pwJ^cwnyFW}MH zbPhn!m+vJf+dV25KZ{~+PkiIMltww!SOe9ONGhE#Y~)^zjGH_4?#on<8oL=D>(ZD9 zH$}YXJfmJKur98t&=<`XO~9zocMi#|Zqn9|)0!1*H=OQ%T?om2pf~+KQWGY6{B)fks!@m78h~^Lp~m9L#W7@#YGL$gxZ`xRb;xfx z&#omm@X=3B)Md0#gL`I~gyubY6Ma^tM|q#S$q2~iY+{_xf{gf{gxek?)$f#}B)Bz2 zPS&L6{PSh`k5s>MZc#F($gmaj%|a6o$(3ao+UwR$^kO2G`0q-re$_OyFs&;Q9R^O6 zW3NYWT|Yvc!tw8)n)*y1Lep!rE{^JIa72(_vcCu|j@I|u-U7EJgbV@cu3y>I}&05g_9P|b9x*Y~gnC!~uU#K(eT zCzQJ*j<9i_9AR*|!op=~bC}p7hpb@?R{BtwI|;EF{a>-TaFc@S3(Q1UmI&zHGhT1J z>c7O9OG(p!2|b)!Q<&sU>rmMuTUm6S&7+nGJ*LG-Oh>qZR!Yw61;MjX!OxjRjCSRF zU3!jcfwRN#@qLn)b2Za%X&5DUpPr@`1O`W_Pl_ssgt>PSzL#^@Zqp=XbFgO3Q7W1k zSP_YS7#`!oM(G<-j*UccxiJ5+-b`jnz7S6Mj$${+g)Bak|9irzYM8&e$D%Vx%zx~M z#?6#ui)xsku}p$Sw{OcLv0;CajhVzyZ=C&yn*7BbP3E#YLv5!l!U05*jWWKA;HsF0 z*=YvO=%6c=&kJQ+vY#uR>V(YV!S6G>$pzKoWMsv`t9nB5G_{r2i43Xi_Cs{{8 z_$&@JpERTdkZH)gq*_nFIU&*%a7?%N=(DT~Tn)jJy>KOHbjFULe-|{m}HE zcuME7ZEteLl4(esJL9u`)DUPCq`w?KO9pMQ26-8i4_^QLLR!aG+^eXE<}D6xH9%vT zR~tySOo#Akfh{cVL|>-~!7-5QgI@)pu9rKux!;_j@lngzI;ED#$NYxZF0x83@mkG| zck0GKQe#{ZYj(ycPNVz-B}`f&?uWRJR_)!+g>U-5GhZ+LzgiKjFJvmDt`Y^58;ETr zU5SvbgLQ!8Jb|>BE55(=D*Ucu^%ah;v9r~n(MtJkK^+^c4~OjWQsZcvwq(*%+Tmak z@ZqShgSNI^dl~DUl%(u!POt6VV@6|}%c%8zG?XLz)H$_#wclAEcKYmDlHo6A8 zZ_j*uDCEz>Cvoi2Qg;N?)#8*do0r&3C;F2yG|tFbYRaCyrF2)(7r2U`K7W z?fEoXo3KG{E=%q$j}pgW!Erc4zHVs4;ZI7Q|CQ|7UJYPe7^ClF&-ElmD|36A!loK> zM`1}WyF=+XG4N@eayR$CGQ%-^&gP3Je!ApZSrP^B9vg z$vr#C?n}vys9bz4=$Wjbp*$d-E6JIQpH_$UPFP&b{H$6t^+Hj?zbGlippHoUZa{X0 zb~czIQ(qkW`f}Dz@f^#r3y&(sQW8nW19p%cZS4#cF9tZwu;CVlAWTmcgk zY_ICF^_KETGjvU8Ua>pIsKg_17(9ZjLjqmXu{%Ije3q_o+czpOX)Br9){2;LG;3Ek zWUlF>HaXZX6QY$Zp|*c`*JoEqS!Vzu90fqn-QcPVU}^ktkJ3*gb?*%Mlm1Fj+O_X| z@S407VU6D1X%^Gm2zSd%zKJZEPrEZuXvGxl{@_uB2h#Fb_QAS5z?KXBg!_{H22FJt z1aNc_$`D1&80QpYKo%d#xCLCPVvEK0G`#9T<^ye&(ZAa((U~(|=o6N1LDl!9(-&)4wC}qrT@!`XvqS~z%5o!2*AX!sC)o&S%~Hr$ zUDjLwoem#QY06PZ>^*7R(5gY>_e}rgif+E-fMd5N2Q4zuFLNx_xKVPdMWzYwF3t83 zbF>lt;;+DVUT^x`66|4FL<+}`YkRUd|;fN`l4oUSQ|;tS&!XRLaE zj%KnDKSbLu>&|nRuA@-(k=FJcX2Txj!uhb#LmlZ7=EA6_TJ6rIN)Qz|F3qyojOEvZ zx$PM!e^wdPx9GiMD}9+$<-=>a>^${g|~H}`HO-1 zmQ32D_rnMloCzt{Rh~Ue@k|9qCPT(0&(g#_xzb8oidL*2$L}M&Y+F`00(;kP0oDP4 z*nqxgR?ozF%z20|%|Zp!>n`F^bha%5{@3EeZ^Ie-u@vr`gf)=3E{3iqZlWz!y5&9s z_*8*IIQZN#Vc`=);seljE8fv99EwP$Y{Mx&AYS4Na5L1m>;?bjmc?{te?n|sV7-Ej z2yFGW9|1;zS$svFMRRZb)9-t7WF^JXvqwM?cy+TN{r+!{h%@VG+f1~D#I`3hE(n`P z?W*F|`E9&MBXm@sa5cTW(Avz1r1w>Ak4ap1^IXL1oJ;u1GGlLPGgsE~ zHK^TlH7)eqdTSKSpl~Y{mNy~BIj1x;;|0X<7F{jG<0EfaOnOz^fD8Z>}ko|1~2YA$T)Swyx6-RSb@icb4TG z{VkGe7d{DBo);Fw(M8eg4=8>BUw$2`eQX}{Ybzf%apKU;!J)8_l6tTw;;_SpK|DY3 ztK^QiI=#Vl{!N?ov!);v@TXLyj}8}cgO-dF{WHaACl&AoKG1m%?dY8_yMVnC@l$-x z!Hv~UaG9j;q|4z~%aU8AN-pbu^Ut8{EsA>^AEWdwr&!)&KM`DvOG9AU6Wm4X ztgyG+so$xa9O8JN!Gw5ApTXoBhVjov8GS<^Il&v(x;I3s%K1L2V?{(P*c7D#BE;t} zm1_n@-_Y*!LFF?GfyiHdGe3@e!tEKE}VUqQ@Gb zrO>-I;GySUKmGneJZ~MzU49&#s_7e^9^C?yI^WJVvulc2s8KK;DZDH04D1u=aJ+Wg z7g#|86JQV7#rZmn=KI2!Uwl3zc`l;$CQj`ERz5}>1pdCHEZ5#;MKee@?BT4w^dU68j3hR95)N#Eov7%=4=&ffe6c zW(ciODpOJZ%AwIW zH9MW=CiF8zl388c9P-u0jNO56Ep0pMV#itaAW+_o4msYyHJjF$YXi1!_$TYv#>~Dc zyT;N10$}Oy!h=N?K@%-=P{1GS(JRI4aUA(~aYT|rx|oYfSG`@2UJ?KL>|rwZb_@|N z8M=m?hz{5KOEbluEz@U+IX970k30)MqI*0mf0O@_j&|^?Yx(D*a#} zdSt!>{T_B$Gbv5;P#UH9l|(YS5<8nyQCU|R(3?>ks!&(nYm?J|Oc2HLEdNom=eswY z|A5-mn=&dn0@I!F(Thj0&Mlbs-cM8#kNSZm7O!DOQwsk4dQXTgl<#1uQ898{)vi(B zB^_;Ljv<4SOpRkc(Vm~TIHHSEa0#-Wz>6kPkI%N2hd_A0<6&MOX&+q=@Y#?@ zb$~bO&}8atmTDbOqr()7-7lmLqk9euK2{;I!`*v>(G=VO=W06v6*$#J0AEu?&`YSO(v4!m}#fGC=4O zK_Ln0VJ^KZc`moz2e~vr?957Df@5A+mm=ma;Z!e#-^<~@6p^*G<(Td!2;QZp)8<~z z(ffADD^Cko`X^%LuTP3EI5(elsB&e_P45wGgjOFGlgf4I;mxMWC!+Wau zyw8K$y=WUIeHag_G{sGYOAz?=#&-8DHv|0I%cRfawBZ+gEH8zA34Pt#s@O^(oguF0RVlILzzJeA|Dq**mw%W-~^ zyymz!F5ao}Imt>Z2AY)z{*7lc;LoYym6c^TX-EtILh!o`{!0;AOZx#gEw6&$IyId( zcNs^&7=Eur^i_mDvooOI0>P~{N}DLzT*=ct1HUg~Iz-l5E(BvYHgoHPQIIuzKqgg)1R$4 ze%GwSrdxh@`Xq`kz4Km-e|iCr*WPg~#-A7Q6{wvZHa+^g(`y==BARa%eyj}eMfx-G zV`?2Xy(;2o+u?^4x4rf{2PW- z`ZF##y(Sdae79x4kI}mX`TJS&%{x!G7G~e(zYO6VyxNk|ucxXj*^kk8e#fKB>oEGH zJ^K9bB()|RwcnzPOxZ(h9)3m7XFgUd+e9AiMCjs^l{OLHw9iZ?4{HgJJ*&w@R}m|- z#irY0lWZ}5&7p~3*z;^Mc#K_h*xmLn#r7^un}=Tq^etLLfLJ4gsMRbvA0e4u^Ajs0mhTz7hS|PCrX- zYs7Cz^NmIVd<^^ssQWzpq@r)&=}LwRtqc)*Q=J?813CKxFvEfU`7IaE5|Iw)+@{ID zQ!Hxxfzp6rbR{4R+eHa14#oLXs@)FfKk*vhKk-jSaHhapU=bT!55%hLqwta~U*3Ou zxt5cdt7%2`Zha|2L-o8U;hl08%=@|CH;45YIj=!rqmo=Mx*_xuk^Hose8KRhY%skF zzVvJmx>MlSsM$TFug#W|Zr<(s`PqEcY!U`OgGArf^X>red)21wU1EN)g|ze}{| zS(01u*(|uY|PYB~rHk8=gMe}wY+v)gDMLqL7LA#IAC-xzL zuc2#E&&*Ea`c(DQA%U-()~OSwj7x_E7>FNCl#JdM0TA%+9IK6AW*(nB(o2_@GiH~EzVI9B= z&EE{f*2cgfS$$YHgOAa$*)cdI+g9?SU92dI#W1xZRIwOtf5FOjoCFHch@LHxrCW*3KuWpz=cGkXe`&K$eoT*k=e%G&0T zJmSlU)rS0DI{u7d^`~iL?X8FJjvok_P3Yw93d3ak+jDi^e&e%kqB)_LUPSPTJ#|^S zN!hkWo;;eg2^)EevwAq!1x!Pah2l@O*S3|jU*}mBLfvV|xt^PKxz(j%c3C~NV*nD z9brtKI7VlD~w=HNASVMTH11|J*nV!HL58p>1o;8G>D&WDUFXw&l)b3;5wY4^Dwl< znfgW$9n4VE)`~E|*I8ktzFyB(I@hywds}JR*}AkV; zD*lDKP2W)VFVdxlkx6ZOu??bWm*`9>HSJPeS}?}VWwMM`AAY&sNuQgH+jO|-_=MupRXVy;n)V05CWNon(J#D42b*FDsoSipYKir# zY1aabS-tCY7opU&>vgA0@)tM6ykOkk=+ds@-A%T48}vS`=r=1>r)jt7V-#C$k-jauuHN7*kThh);s9-e)(@YIhtTY9s%;5e6lxtR9E^?;Q8-5xd8O- z7S&Tnx{q^fGO>l9>r|6qykKK2pH9wx~{mGfck^* zX9=0XZ3+Hqy|6iG&)I~+_Ud_uP+Kpd7C-I|BOn?m$!kIJudJgjY7M8Hqq5fC_jbhl zJK|3KqaE?%9PvSi7WClJPTa}wv5t6OM|`9seySthTerstYi-A!{CFJc&u!6Vn^Iro;i+q zh9jQkh-W(D#g2G;_3z}jz4&sy?f0iS-aF;f*&au_JU^Ac366Mr~PogPjtkc z`n$*xck=VGBR<^`cgl;iKAq)v;yd{r*3SD*j(CwH9(2T=<#EchQy#`S;x9PjPJE|* zaF#dK5qHXqvpwn@@llTWWsbO$A7_2_bi|$Q>BRq6JM{lw*U$g!`f!%t$&WLCXa9ew z{i(BlociUIS7(0CxU>It*0+-%r+skRgZAh-?W0pao$>bC=M_hMfFs`Aj(u&f{@csn z`Tpmwk3%i*p_a#)pOb!j_2(>)^Sx6(+w(`t9r5v**tG`StJDzhD1;{rmOr*S}x?e*OFP@7KRy|9<`Z_3zieU;lpn z`}ObO{w^Jg`$fig(llNFwrdx7>Nrym|9X0JB%EH`5Ugvi3Z(~+J1#v>iv^`u)* zdbqJMnjWdGuL*@S(?gjfYa61WaCIOUf(U@qBjI3rWgrqtA2lj{a>dMy;K3(x%QUny z%D{ECmFYFXVEW4ZTr)R&WL<4T^U9Gm4b6bVQ`nQo;4${wMM;mYY6{sA-T0~sRW{eO zLr$$W6|o@{t%d)CtC*?&!h=JsD40`raG0TnU}IHnLye|2gjS#cR5v#SqqU6UsB8w|8AO9Ym-jvn3D|gOZm4ajjn)S0YEKDOF)&n+sbcyVW-U~JObZEW z8lZrc&DGT*j@2Bkt*ec$!g4f4!#2*Ks!S9z8xX0AW?+!oMkskGP|vEOswz|s@HnU+ zluro8Yno{m7M1uRY-k$jM{OemOQ31iS4N_NDCETf)38dbYik(hxXR|*x+n+VBT99KZmL?b!cjB1EC3+aLxt!Hmoji8Pv(((b{?* z0=DacnH8X>tfE=w zs{+vggERq3q`9f7F&vcu8<8d_5mu%E)Nw>o4F?*k8tcvK+B$9{8=Zt3orD|R37ZAe zXB8Fj>hfn!E*n`kbuNn)kwimJQd1g=L;^J-2Cirh1|eSETsNyZ8f>iR;JFPE_ZPDY z=J@BB6?4jqW=>NL`ch`lDFUokWAVC(cqABYB8;xU$ILnYY5sDSb|x^?5-NfYqDB;? zEZi6jRW*l01yDE@%TIa$f?ma-1z{)XK$7m9}3A}ui5$bg~5WD^Rv)CNOyn?QzJfldxCYiL|i7pkgh1;I%Z>M0s-taI|q z!EWUED;ptyW+VhXxs8eiQ_IPLb}m8yvopXTjtZ)6sIr+3S+v>Bp)i*sKbrR<2j;9Y z|4hXYO{)WsrOuz(03tfFXe!qOQb#kC8E9(BAZe$q0}0mtR_`sk{(vVAJZTlU1%X}w zcJQd+O9gHRuL|C!>uWt-W5C){l`RnVdRG~1 zy&a8l4-%TO7Gdle_rZgn0Z9*DZ!Gc*>1kYJZ1xl-Jq45j2(%e`kGKa#;Cd0b&eOja zClU*4|6^&V=lnjB(zeF>a^#9nHAlj+Y6wy2DX% z-nDBkfLi-O^9<9+%`mXeUwAB(xUO5yO$YG2;U!4h19}aoh2^10SB;MEp71dx|l`lab=- zj>$W!$=~h(Rn|KO{GrDc{GH}n15f(&eY@8gH6UGoZ1H6F@{H>Bxl4_FttCobY!zU!(^Un(=GDR842t3Y?;SAH41{-6;lBa= zYHz}O#vf7TYtDJ!INrEy!%kzKk#*8eql#&D8dK%&Gw^pOK8y?TN#<@HK0JfE6LladK-+j>sx^83N%kO-j!>;J@&Ek*ckkS56Y8{;O;8;O-c3rY zqyxRqvE8t+dadZe|6Ha2FRw3~^uB^NF5RskxD!oQGpK?$#+v=0>E4d}T+P{jkE?UE z!!rLi@GXd)5Np@L!ZOFJrwTqB_0v;`@FW#}UYuLW-t2_^7?kZn&$yn_! znTU%kj(d;Qlr7~wq|qZ|^7(tbZuIgL#NdMm`XzJe$dy9-=ZoW#VkFcUGwHUjV(*5=^ntA z^9)3HqyyG+-2Au_=p??(9N?y*A9WK(z*cGZV5J=uqiCaC`-qLYzK^MMD_ut`5*yRc zzTzp3fj>k2?@=)YzW|KIj6L22;|_4Y)6O82E&zD9XqchlsZ;X z{{VG7)414p#oG;XTRH0et=l}=J&gxFu{O08<-Ho1?eXE~Ah=I?26TJKC^SxXF+0D+ zrvC-DajT7KtAe%eRiG5r)=zw)iBY&MuRmLTbT1YBu{9R3*`n)w0FJeQvPEsi>4^l( zcDLq@*-YcP)B#%q^+tVLa){ zjY0VwdWr;N+*TKXy}7&ol~MEg)^&gU948ju-)j70tFh@i<9*{nZ^K$|ulZZIZgCMP zSq;5a@H@JzFDS(?Sq1-AceNa{13s9h{om7u|0Au^O7$OFJs(Ut?cCbr^&L%L&u2+& z8SM3neA}sKn>{(-5UJYqc5Ks6+q}r!3=o5UObiajR$L42>K|FV*x_AW1?>-({2k1o z?QH06&-R343V((U=$+fDLYvONf6NdL-K&DVBx?E^1$2Y=ETC;P_3 zcrI3W?n6K81LG;Mr^Z(Q_VM0RjB!RCt1w#|z3)N0RBN0uz{SfwH12;Ee%iKpHXHg{ zJRdOH(p>CuZTYVtpULi{$RDghmQ8H;Sn~N3y!iG82)4TTCszMaG5kG(p8YQLp+gTE z(?Nb?M?;5Ogu~C?))H?d=npahX-nH$nX|AZdCx-~uxCimW?BVe&1LIFKD8W2TUnpb zUHzRyb7*9*&8Phj#>G&EDTl_WtwJs{g!g_hhRiO`wroF;y=*HM^kB?z8=jDoLHliI zE}S{WG;11~&EU$F8CkYHS49=kY}^}GR9shAuEqMw&vwh?${5?iJCD(dP6}po+Hd6qVGE_Lmpel~j&~ zJj_yaDZKHQS7e%qTiiOUKqucct3uI0Z5k^!xKUJOq_K+N|f;8OjDRz{exdMKj#lacSl7&=S-3ya3^nk|sB>0E4pSJ~bJ0$H#8$-N z7o7w$2emxI-y)5HC~!Nil8dck)B1yHp8VFB%x}Gc@>_4A{DWzt?8u5h6DZUSX2ley zGc%;AGFt+5&Ak5Gu)JfSz5uf+8iqP+Y{KoJq=Qrag=XurpOu@$(eB_y0I7B@{I8+Vo+zWQ%t7~kiNrS$D^;sj*S{iGs(uNKn zHdNHc@L>}MPhho|XHsiqKuar|jEjP?9Rlk+^1`8}x{)=$Ggig>~ZNkOxax z6?ihhlxEwHeN~3ZNHKY8r2;a|!|N8&VPgj>P>g4Sr#Bgk+_ultdSU!iGodbnBsALL zoAGuO%25MYgV~3rQMs*YRBr1UmD{>TUbc}zv7tTnADjUtE zp}M9}xTvHyLn#Xp&oe8`AlQAO5zKSvN8Iqpl4Hv|81w4dFpP%-;hJXb1sE2}OfU)~ zGIk6D5V0xojEyknIi_hlYL$^?i;5w|Xy8Hejtcx!J%j(v9s9xb*&y21$;CFbLKW}f z6T}=2!>?Yg<{{^Q@gzyB6Jq!>Bd0#F(yVKQ@o9AcdlG+jTeXyvJ;pN9r_dD+iD4bFGIekhy`TrVxmv z>rf}?2bY!g#A#J@MoJ8Geu-`xbP}Z|ok4{WKn)sOn*Q*Yl@Wm)Wg-XF#jj1CQ)o_} zxqyy3IXe41>^H*oiYrr8)`t6Hxj4|~SZSF!|I$?AuTyP*KsXhx&F+@DP5DWFK@mn* zg_P;vEVB%9sz+;DRm+a3+b6sa*0>I~CBULLgd)vB%-pPmQA{XuxHAqyJgtdnc;65q z|8f;*)yl*6v6u$|9lUb3wUq;lv8V9NB7a01qm1U{WoRVd69K(Q(V!DWsT z=bEPdgnUt}+K6SI+Hj~YwU~WwPrA{^Cicrg<$tCcX_4lrvazu)c5%hzQ>X3Swr zd&OmDw>AU^4!||5hwSXvD`=A|W}34q=1!T1O5fT7n2->~D7Uq!)w+PHt5(nv;Cvsi z)kB_QvJ%wRH`USL!Ylw?n*-&Gkm#UhAD(`KjRMt-)e!BVozf$|Vw4lC3kAY#x#6&; zoIy=m+}5^)a5cLRE)IK&zx|%0_)xo!`g)*?Bk&_{oLZe0ooxCKPllK&&Nl0rL9T0D z0W>Qcn;WWHUD7yg;mF8ESJ1JpahN@mSdPtRqeNSqjl(3vt?>;}9y?a0Oc)$Np-ak6PfMzYds|0vu+e?g|djE!`ZT?Tn3+fIPhRvR&Cp6XEh(t=ED z74(SdqnHZO@Lm!VOkX6Ln~iE;YU0X5Q#jO8+t?hTQmEH-nALTGnuy7Ea`0;=sMo5k zu7#c}(h5APVKxmW1c7ugR26D(a{B-DL=(=^*b~yC+|Sd91u))=hF0>$hrH^>@QOgV zs;ImT@t-xvET{2+b48E_UTp0FFQKW%M=d_;h&cEJW&^4O>#EvP&pGJUG3lxX;mXQH z;i`bvZ)^(G;7vM>4JOW29jY>92BQ9Y)%du%-bdOwfQoK)J4rpwA!=rEXccOYv@1+^ z>}G`OO$&#tPRdo9gLOqfwDsomPn{F2W2;QHU|fQAR-?}`{nbs#@hsx$$h!z&i>TLC z9og8`eanwUEWAcXUde;*Gu{-03mGUK`ON63eJi=lP}s=@#pbMe{_?_-StpnU)BOd- zYzEInhY%Et?mUCaJQ>*J3kNnE4(?K*>HqpZ9(vZU^v|k0($*sn#tETtONcL`wLcL+ zV*pzhdzh;WhwC)e2V<{NQpRqMyKG`K?EkORmMvt45sE9w>a~00-2Fujr<+Z-K0!O= znB}jRmjB4ul`OI=B#hKyOg7O?p#79~SD~>v+SJS(%UNao&M9q0FcNL7uZ-CDUS^89 zD2qWhwdC-#+u4~(^}^U}ZJCv}JhZt4`wN}$WM0P%QwuI_tPTF6=XTXy2EXt!wm64~ zN5oyI!eL`O^KJ6Ru(oEY4`w5G?7$5FvhpHS_2_X1tsy9x3~L<^GDo4Fe3(o5V6xb_ zN!^jv90^r{WoC1)hdaMPYsu&*H&GL=sEsb=l@K}d(;QOV$u$!L!az72Smid|f6x>C zgGaP6$3J+&&sLHa&2qezd6IUm^Z)6wC!}^6!~5&YD1Gd5)GxRyGO}nV5v2??uk_cq zeE@m^Mi^y73Y0xLJf3nCcl}`R0pNN0dq)AJ~wQ? zCef7Jv}2sxpEffpcA?Oi(?pqQM^A0TYUR>KP3$;3bax*oz1V8O&(goZz^JaRUZeF@ zE&mwH_+xK90|(rh8LnGADxx{Gfum?fIa!yAsbRMXLVeD8o$DGM6NAla8Knt##>k>T!#>KiGncZn!$Yj-53()Glx4bBAKtdbkxj&I*mx_>>t)T2ZCDnl@LQrH8$Q>$caF_In1|L6v2B6MVh~gH2yF{=8HVAQds%3e77j(1 zh8tJNJ>G}2&CbmkAAYFYzWH$AAQtj-#5#UP#t}HjiU-$QSeID2ENa47OdOPAi_4A8 z(fY%`zIvz4O+ZB<0x-DOxwcMswPfZ={q`&$d9?RQOzLR0CeO5O$ zM^}IiD^gA+{WO=?b$-*am1VN1MwY6wo=YSQPe~D+M<>YGvt?Clb>vXbhp6V?<&?(} z&jK3ZbhSS@@@LpH6z5t_{~yZkq&hJ%aTt3egTG|=#oB1;SVeXm=aGFQbVT!^6Dl+d zCeNHTv#4Nl$q{dF+*DG|cT5x?%5IdLP<>N$6%+<@3WX2EVw>nD7T7WX>;f)~wVM{hWHRnMY9Ji`|-#bkDXw_Q3g@4Re!eF zvUw1bc4pS$&N4Y}C~1G%X0$vUzz-|4A&z5**-z_PTUjP>-GLviHJl|I;cw^8VDCxD$n}I#R((?-9MY<|{4s?I z);DRQ$hcZv8*?pJYpbF#+-%?<8FW9cO2T#s=TI%r2c7R=a~O{@)mO$|*>uEA4BH+I zLvD7Uq_Mj7Zu)SF@ly_@sl$dWG2g@PE3mjde22Phj#>2eYjn^x}uzS&@0NB_7!E@YVr{s)4CjIN2^JfHvSA7I?M1E zuQM_$3QX)u*w`T)Y6*oS(qCbp(&d}LY3GH>t}ub(hL-^+5>yj$5B-hG*2DXhZSm$r~8Afce_Z=RVFF<~n zK(Z~UuLwpOaJXlZNpxJDaiq7cH8uHbf7($PKt3{vd}6sw4Cm?oMo;E*G9!w z#-F7@4ryQzbL}}!;lgkbso17tenwkJdmpRAjbby_FZd2?b`R!?`cQo&6#dC_5^c?*gDo? zOQNpJa@laZNXr`N$L`FI@gIv1*LdOK6@I5ksYz0&g+n!FB!Js!!lA&=GsQ@kZaPj& z!=Q1D$rewV4|Dlcbdcn$xNW&O6nCzb+NOz{hUPlFiG__^L-n+62~Qc|HLc3-lb>fC z(#D)JTQg-=PE4~pYAUaxF=~byt3m#1*<`!M&iIIVOD3q|8e>0-E*sDx$VGz6i|3f~ z#5#=ba3aT=%2V7dQ=D3I&hN^5Di3Xs^AYT+4x&FABNQY;1D*QTw|xJ6X945}qp8jH z^{Xt)Fs-h!GEnEwBpE0=$SZuOGD8&!pqGig9fLkZf?(uTsrGi)RPw~dc z{6_yj_TB|fva6~WKAD7`hiB#D@YLGa(&|U+iUH;&)({IB$N5?Q|GZCYp=Z?|JAP5>_)j~Xh(qoj^W}ekM6??ipaGc_@o`z`xdR= zr5k4%L6YL^Hp@3ec47-Nb8_>unjYl-J9_0ssrEpIxV*Ce$ijiO#43!IOE9V4mN^;U zNay@d6}UHsphQ_h0!~d$7`4l0MJYw2WDDcOHa7TyMtygw`zDNUkv?LZn~P((?5Bmx zK0gM_ok|Z*r6t9sXRN?t!GJV&s~IoTLJ=lu*o(6lUC)3nz;5Ec>SQidJ{$)Hjd&fG zXT>R216V-&Nd=t}0#U;yPiwG^iv5Y7KG$&I#uS0-3uOr(<M>WFvR? z(|I}t)aW}z*XYY&mXx2!W~gX(gD;Yfdf#mn6?uS@Q{$x1sr=iNK9DRDA;BTSW~XJ& zzdyP2k!xLt&^4<~ON%GiBq$!{WB=G|6u*Fzhr!GdO3B2g->TE!?zYx3hBcJMDkOJ< zk22h1r-C6{36ny{KCQFhb>m?Pp(*7hs9vJi_p3Nnrd%u{?_biv(6Zsc6 zJ8T-)dTu7{2xG=8{(4NVsdi~5#34BB^GIIQ)Ef~`1;~dLe4VvZroZzAhQu7wz_w=! z%92!_EE*_*%Irj03p>H7y0EtYsJ(x+P_PTv7gldvKghl)ZNils$HiSL;I`5YuzN;b z?u3b;9@_h@TYK$pA6&$uU!sYIS02k7%w6p zf40fg>Q19-OCx2BGPhGPuF1r>CL80L=@{3{#JDCmRv*G3#v9~gTr(Hrnt97p@N!Qk zK6RXX?wCxoQI1D#p#hg^)^*5sk)*{xD&>0rlycSRDn@E?A?sZ<(MTw(4(_u@uN}L_ zlzH1~l|?oaC}Uk`V0SE%C*HT^hS0>%DVlhV@E__H!n^zG0Jw19@?=ntiFyOsI6Z1@ zF>WwEhPo7FFn)=R5Cr3oCDnz82+66y1}Zvm*en>t#+04txXDm%6#QkGT!K_bcm7rJ zScxY40R3r9ZEUUqA2q@42dv zpGbsCt|}IB^+F2=l-U$+$Y1hfASkDvM2yTWmI%-iPVcy`+%{Tr)8O{ep@4n0#4dYnJob zfqLmrvB>6(Vw$x^8|f8_4ruWY|L^ zsqw-gjjF}9z{*LDNg*VDJW9XS!^Ed;<5f=$Var~pzR5Z|GZn+QG)#Od&;ukgWCY5a zG)DLTmc|QrGA52CXH#OQvb6z8pvXz!bi0;}v=v^JJ(=07cF*m#LX$KmT#&A~v0eT0 zX4Xkl!_lnf;TG~Z>U}Rure2c%tbilO*t}Z7HbQogmgU>RYI1o}m?zql>v4fk{8z$O zLhRjp@ITTM0P98R#(Wy1!hZEL84{0pQ=u(e=K!7H6kM0y5W|1-203vInv8;FGR016 zcVYAndWSi?9One&)Q%Q7mqA6em_Wobz|I8QXmpNp?seCVjAJ=~2JLZ%n&LCdja0h0 zOJzBkJsn&{+0^7l?hnAUg?`;ewVsw90TmrkQkob?24jeMjiYC-@Gby{#>%rn39@E;jrefj2Sl4P`1~5d8JY9*E;r$Aht6n4mdw-yWOGkCLf^U6;WY| zc@?I(pA%0LNzmM)0MR#+@<*_gjw4}apvWBi>OZ&BMhDNTKp;q{ZPyA&#=F*^A0-Q+ z4Q2@TqWoTb;)h%T&vj=@gj9_;@g6(kD6inqV}sI=^%V4IE<>|M zcTaZ645_Bew1NZC>z5&lvD5BZHTFGhRmka@B*iqyaj4~(?zGw4Ib}YXayymwb{|6r z7mgGUEEksSeG6;FMX>#g3U8_yw}&vw<%^YShEuNcR{;;m>fr`Hmq#k(ln=Dr-2|t& zuVhBbNX>!e!G_Ba#(WSMtjuhBUL&Le?%AkWSAV(wGc(Gv|2V0xjVTETsDil zKW;`M%|aY+OLzy*I-d3ASxn~9H#0A_d%;tvEBU~o1{8Jvd}|A46FMYaY0$G=jTC>v zKVhTZkLB}9SwOH}7z>ZGQ6^zRmjfBjHEXLN*?l4^7VKhnjj07FrnY5C^U3WU*RnE4 z@;}b%7L_BhV}`WckxA^hP>~|Mw!XqCLk5LD;2vDh+TfzD>TGOpS{lVnJpTEF7I@6I z6g2?41Ge|a=Du1%Zx&PxvjhuCD6K|cFx@shPIoixV3p69)10F%EciyZ=7te}1r`h% zRW%}TSW!iZMplk!D5@$l9eje7DLodEIKJT-Giy(NH>9=J`D}kkZ3>CDz>s7W{iP~2 zr<^Yx7tfZ(W-_x?#(Ly>#*H0MYj_bX z(R%EoSpg@&_#1g-JFO>^%w;=hLx@YS(@NRDc@Zj8Xu8Ia5f!1lG^y5d>E5(+#3T$B z9toj(hM8$y+KE_v*eUF1IABn>w1S-3JPCv|$cn^tlZBefYELUXz}{5pIuP?A;yjGl zaQdq=+GNL%38<_=*G&lEYh!&dD^sAb5NdFOF{b?TEHY7t9IViM`}P>lNn#APdD9#N zaE|2$JsBt0-tI#-OOIVywQ60*iN`)G3)j`y_=2r)3=W9S5q6}P#>WvmXS~$1q0C~! z_N?#Z#;oT?eoRR*30#3|l+AB8&7EwoX|?-UM^9G7WBU=D7zE|ksJ~QbA$s-Bet@P* zOc>y$rJDBgia^rlndqPb+gopoefM$p;_P_XPg`{cxD1+c=zcPGb{h8#V9`aNj_hhu zx33H~;I-6@kHxS`l-&(^wLBXU+zX+jP+Mtt`VgcBN((oHLmqva!=RUXXF7s<=O_e! zSUu;~x- z?f~=o;A4CUCB}(cwm59tqg*=`&b3i#iWIGNdu6{TK`RjM$EF3Clc_1wdCMQ{ZHf7t zgsxdH)wdlm<2L&3or)Ex(?BVg5%4vKQ_FjDjT4nhY+^{Y$Wm%Is*=ZNBVay;SC7SG zqR-hU`INL2NVn3$#2&p30)3S;T(v9ZPPxL=fw4u&%L*XF9M1%o&`{p(W}NyasXq}4 z)F~?T*mMtRj(Z@6oxWSECZ0WDZm+elwrsDg9ou)ky|1{=rw+w&kl*XQ`{1 zCRJ})NbcmX4@H@>?Uox7M4wzhLu<&_OR-nW`LfoZmelUX)`~WpX%AgT@rHG~AXh!) zeS=Km1{@6Bl2s0J)%w7WalCdDL^^Gx>hYv&k5Jz74ueVp4Si=|`Xe4NNAC^I`YJJj zTA)HRf;9?nkVgDH0V^7t_0tLw)x)D4Zaykkd<&+tw5n`z!M`efq3FP}St{&1b|5_Z z-zC5Gl~)`scW8ow<#XOTbTa>bGPgKoWcNf48Y#%3fl1g`RcEq!)`cBj6t9R4LUb-l9}u65uk zD}q06LIdQaTQR2kYC2oxiG2`E`lQ#zi4~5>O>nYI!=Sc<{;8VfIcANcD&+}j=@Scp zTlxqWP4h@|PL$%6qQZjIo8|^m_NqE`t9fwqO&BU@Rvly~Z_lm#%$Ygl+M(AXcA zA`;@qP)Q(Q`&2b~%~!}az?WXpVunU2{wm@u1vwF5H;!%Oo^rWw=>pJ0zSbbvrj11K z5Ly}S0ffZ}rH`TV=~`j+diGsMifikIWt*LZjuq^+;!Oo*uW56`N|pani)7wQ%9sri zmN4IiQQNYQwd!np0kchy=}j$I`0PWo<<1~ut4i>;*o5p(xm#|s)!hZ&LyKD@RGQA{ zL_E`wxE^d*d#uyTt*V>UJ8DkBIZbz&vw5AJ19q*`?s0WQ@u7im0#}M(BN;~s3kueS z(jq%CA1&I8E6ePy7mCY;B}L0rYm_&8wqwPN&amtwt^qcRAl$#>d)e)CC{`8< zncHE%x7qHgOjzcYpjY<{Jbj)XMJlz^>VAj>gX}TA%wIf<^mdC0x@tDAn9I9o(3}{( zh*Ke(I!i6nhmn?@r3ND0 zKV!#U-)?p5=&MBw-2?>7P(VYg#+a(!dvL7L@c$g_?CB0<^`GY4;UY z)h^ZUfVjb6=OBIL@)0U!oFd8*T(@|tWEenh>PuIDk8k!>u3Q*&&7?GRG9% z=R%@xq4d;F(`ioq82$FvpROL(JeAc$q?Jr*wD+v|Tq2a`XhD=;H*-O1s6&>m)O!dY*!l zX_j>*=J^4&9urP=Zz0^Y86L{~G;(XR&sjca!zmHEy&II2G8#U;qRUW|bgt^tCPlDT zv*I$gv#VyjQK>$kV3G|lGo>6RDqdzh1^qgGVMAn{j_ek~j^Y0GRIGEnC7;iIdtAE( z1AGV5(0r8GX-0RxvyBWJmE(nqNx(5FbwA`eAy}KtVQd3@xu`7@N}b3A;b0wTPgWr; zVhY(OcPd+0lLgIY%i!c$SYBFKU9w9@7NEr24eR5a*>22F3My$NFO4R8sesB|U@MgE zatpS*J70MvCPT74kY@^pXMe$0i_rHv@Z%MD%$rA6&d6e4^-b3Qj^#b? zt1f?fYB3H+QB9D?k64qTnN3l)Vsh!GWDJ*U!yjouLte#j^l25-_@y%a7w9o7y%y6< zKnvXJ`66$y$e+|8>7rl4Kk7z`BuKo#oN8YPoL)sbNO^S+uuOY}VtDZ)CK3h^1=si3 ztxD*|bW0_v`gcEirKE_s`sx@Ki>#gVg*c(6tx<0M$TB*3s%PyFTv_!A>lyld;PH%0jB`zd$@eTq>4^W&#d|>t4 zU{RIvPHZa`CAg%_iNmd(l4KMq(TgkgPPY#6Sv-hvT#p)zkd#RKSs)+7UTdSr<{{|8 z?DKl%0T-JvKXGSwn05C0qs!Is)JA`<%WaBFrS!Fi8M3 zytDqEXot1qVcMopiMqD%D_C>YhPWe%dtfOh*m4M1{>8@xG#K)c;RnC=@J=8jW(zpD zf{R=D6CP^|;D^w@V{gd!m1(J|I8hRD7T3`>Q>rO<-?PD;y!$Gt=%jaF9RrMrQO~CXAVL^L!rN=EU zl~nKjAaer)5C8O=Qs;*-7(`DpR_W%v03A>VvhD{!-@45{D!P?EYDWqHpzPQzz4~~Q zqxoud?Q83iWUzavbn4pL9&o7JihTGoYNh6NMj74j%4&$C>@lovr$I2ex4oQC6u=`L zuRap8-m=v))sf9KFuba2QOreuz3B8Fei{jt%4PBVOA>I*CZpQLb^Td3uPM@2{6s1f z|I?mdjB!qX_#x?1!OQ*kIwvc-8GBLZBf5V@c@nA8ScP_BoroY2SMzYc1Nr<9WEZRQkI>!3`T(0eFLfP#r{OQ}W+hotHR|a{qC@y{(11Tfk`G#_q zQ{K6-D1V~p&6HkOObfG!cLLjopz*xfIAaY310B$*5PZdkr^vnesPqtu$gX?pisxrq z$I%i#w{O&StKhD8R7qo%?+Ua2jN0#!4dLZl$p%pIcDfA-k>>C9(jr=2t-x3QyR9ae zALOc8X(m{G++Zym=1h1E^4EPiI0}N8fE&5-`P`%3#(B)BDUROmKoj z*RP|R*6KL#A>05pF!C?0F5N-j7?HBq@nEP`gdZzk&=RH;8mD`2O&yu7^d8eN9IkSY z_xFUthhqg^{-+bWMjooUt*>DVf6JviPT|EFZ|;(+_eWp-!YAU`l+H#qRhrGRPrWws z|1uC2{oY*2UPNB~!Dyg%e#Qw9Tn@%7EAX{YQF6NA3#&2|2}k<1Ud8PXs8-s&$P@;# z&c+CRb%F>0wPd_w$_Q{BdP>0W&Cqa$aQ8h~a7uX=S&DZeoFC8KJade2u6M8)!ftp~ z!!Q7fC;X8*<<^RPupFsv^EH)m{LWHDyL(d2>jM`4B3AMY-0@{84hb8hpXNxojw}$EK}0|JW{B;L>HCE!a&HsDh%*9$RGXf15LUl z9eADg>Z?=weu3*cpoyqAH|nlBM}rwUP;ea6UB?<|@^f5^=Q~F3M{MJBWB!#-zw40r zy12g|eOCoaE~}pUE!a=5Nle|-{ZwfVgy^U{;@v~2=)zd9$`$Cq-FOI}#X3(Z$tfHO z1_$>|0#@CR=rW6D;=dBkGK%smCVZ$ztMT#K@+Nt~ANr$7s5&;2r4#%vOzyvESbUPkC%Dg?M{AY~R`7bq4~O&5;}F8vPNd&Ng3=dT z=|!T7B^=D*0OU2RMIzDpMJq_|OJ^x9z<Zeyf^}6a4~WgPvw)OiPl~GJ>|oXk zKT)U!t6pY6nl-p8yuCMm5;`ux2p@>>G1Bz=*kOGXr<2}A1XI$oMo{zbfAJnzArqBD zTW-S+CUWUG`%U&G25u!G-*&Y#xG3Cv@WetN6BH>ZOup>|+tqQBe1ZQhTw>B@V6Hc5 zaCm70;^k+owE)v!x@bn;A*wD>h7Bj46rks^|U)*@=)^|Au{u9T-Nny^(ZMOR!Qel>GDaAQ}c=UdsU5p#X5h_ z6?NvE{F(#`WRJ&l;#Fm+#MXNU#yT zq6`n;uY`p021D%RU~%S?Fw7#}ItN~t@F zr9OBYZ#cIO*fowVL#w~=W?dVcH~Fc<7571@nks*uWXNZd zF@WzuwQ|aZp_DCiwd4{_VRFL;GzahJ#X;v5%pCE%z*h5bGq6ka8iEXzC$x)A}k*;x8gNi zfE4mwHgL%Acv)U`7>}ED~Lz862!xzrsql1avUO8JId+JSs!goP7-Hg0Wwc5rG9HUMgBWv9Wfh;%jUD&ZJ|-b=J75e|A8ZfYtnn(GM`w#!iPSHN_eG;t`okXVwUDpBoecgdB<;G_O+y5DfQOmCqGGBX4W?W z!1=Md2Fpc+*n9l)ThTP1Bw8bPUfS6JMiW1?qC@kB)W8VNYI=;ok3}@~e{H<;G1`QV zskJ}-!0jevt5&qru!p7(eDV0$3D#VpR>1-kre0;>`JxW z)Df{BMCqM(GM8NlS1lc%u|rmL;aWFeGbdns8aL-ETS~K z8d5%*)SrK7JUJkqEqBw}$PV%F1BKpELN-8bn{*<&YAoJVLLYTKK1#Q7J4J|KZUS6* zfh77U-m7i;6;4iT5p&Z9)1z2Q4eGl~qNTmc5Pqu6F$WikCRdB>ta`83yxQG_)(}Sc zvYr8^BThgb8=+ z^QjH6`%r|uD(ejYL67O}`VQB#S#NIkyw~6Jaivw$J^3Z~oAn`Ng`DBSt)>piQN>XU zF|i9fkwn2bICCsrF8zx;@4;|m%U644T0hPFc%`yrLR8`YR_(L?Nu&2;j3_!9iioy= zM%m>CW$@L&`UNO*J)}9Y$UnP=f)?jgeq_)CH5C2j)iI1um{d2BmvwOHZj+jIC#i_5 zVcn|9Gxb;YI3BNA==D=IZgQ}MT4OWHSqsB(x-MhElc~~0n1JwCfCXnP ze?vOc^Lwdj4QqS`-Ro=rv)C`>-`5ocWcHC6XVkOxiqgYW*catpx^ue$!hBkyLMD;+ zNeKfaoP!Nf!FMIAU%GW~(ab~h7zFfKL^}=DeJxY%-{o#S0OUB987%R@)|p<-@|S@UW6DTy@}@ayd}WalpG!k!I;M!Tb)$}D*e$M zHCiKPqZPgoWR)!^>&kYXV4Ym0APu8%LRM{C`vf7(YQ^YHtPWG?a~Ba*NVM0H!{jf* zN!mhrQP{c`{pT!q(S^k()U0oev{l2SYvoDn?$^DA$xfAp#YtL5z}Rm46^C-p2mni0 zjvIerqcpmgQ$-STi1@pDCxx8oK(P+b#_xA)1_kBY@#$XywYn;ojJFRwn5oh1i>Oiy zS##<_6NFq!4nZf&v$5bUrIr-m4G)x49rJ#R>+B=ojwXKHz47;#gel_3>Yj;w)r?Z8=2#!hyb z@;_p(49`7jLmklQ<}$TKh02WjNENx{ooRW& z$1JO4ov*Z^X|};R`;`~wI0_`XqX*{KGX^DJ4ZU!5EZgNVx=CA};mwsHBvdRn8Pm zQ>9w9lS|1;KFQB8M-$M_uvXj;KBSc6D8!P5?(gKkd+a;Zv$=hM$%2OJl8}opdMAMk4C@QFnXqIh?m|wGmqXpdTkROoUBzS zs05rMM9f58SIrNbAX+hnit>{Ou8vk`QkT}Ge<81)UaNLuJWfYGPfgBr{EKXP*URsY zlhkJZ*N0PN)$|L}3Xvk{obh4a)T{+ytsJ!aFOoZ@JK zU#W3)+)1!Ed}&y7#Xk@Ur;NOSmQ-6q-ZG>L4)y;Df3AHGP{YUi`)ApgIA%*;ev^;d zW^!!a=~49|OYuW>b^M0&YSbPHzCDZ0->?JF})k`0TMFTfLg?TZOz8dtmlJzbOWp0@F?T1oy~pU!95pj ze!_q#<7u4bq`c-@a_nu6iJwua+hi?8BCtaUE-NXYBkgrm^&$@K_>@O}&wj-*9^r#b z|GZauV992VMSfS2%c#6%jH}=Y^O1f8anSz7<{8u&QQ(M;&LEVb);`P|Ny=2hT}nQ= z|3MQvhrBundM$Z)U6C3PYx||GFX}-%9JuUg(X_{hTXMJcX`cP}&%i}!)aU)z;;D`p zmf;cUZThm&s8ES(W%i%kZgrw!0^SvS9RL2PImHzE`lwa;?_ zb?#G`%9@cMwaK^BH_Rx54B~6_xA^u|%1_ zeG)YI#LC>m{yGrGWSXy8TDOOknwru@tkUD(tZOSw{cKnhDXJW<%s-EbL9;sel+&ZH z-$h3Xz$w3slO3Vf9jLS(pUDUV> zGsF5q(uiRtKaJ0YJZ);&Nb%3D;iq^MRf>2qGWXz6oI&4UxIyCiDKM>gy44Y}T^%}J4420LBTU<^-(s`LA^u{Uz{;%v=4^6B z>7!diO^8XlK@*R^7{w!02c3Po*zlqZ-!mTgTYIiOHsSu)17&u&6d{q$+wI0%n8rk2EXMU28vsSR>(8k{$;C zrt}!xGS<-rC6r0u><{blTj!|4PcC8sSsDGFXhx zm9SxC5%C!#xSXUN*#%55Gstu*5Kpda3`mPY@4yGO!JVCD(Lap&(IXBX0{k+G6 zq5x0Dea>t8wR&kWt*IL?XC}=w^QZSlR(WQBHL+J5!RIc!{T&NFSq`ML7cL?WD=Lp8 zE6!|ARh^u?R-IWDMJe!yavtWK$R&STV#uk?a@^4L=Tw^#Or#|MMVTtA zUvda#{{0d@!F4JZolRjVQ^WfYUJnbN@*WF)7!z{OH13`)Bc?J68589f-naMQb1|^q zX&@^tk9`LZV?mfH)y_m{MpCGg4f70-7=??@jVQisAL6BoRpdKvZ}iJ>Vgo&Iu{LtC zE0R4=ZL)-^t*k~QVe(b@7m`IjaH(YIv{!D|bACFVmARMm0<|)dAMK;M@0pYc(40Td zhnCh%9+TRYGYlCV&04#ml%MY1ctNCrtbeJXeuf+W!qnW7>zEs;?n^bGF~I~2oKqY! zHzbrP`kQ|ym%9or)jV1m;f zurwox+--g1T55_9E2-ixY?h6|Lnz!UG=60N?WmNR=a($qX{D=!+V;7^1Jrf+C8l;3 z(8q)-YF=9{P#=tunp%S4cTkoR$y$(ak0Zw?T;}1BbN=AHypBeV$~)6q()Q_AVvQjs z?NMIM2rPmgnV%Z1!b|ad!K}bmBv8jF$juv^P@qMzpV=(d-*{HGnQMdJ(>fuPEYgo{ zfA40~_>CM`GFFdCT9fPj55ep>!$LcY+-`atmswUl86Sx}D2SQBpI{DJxS57-2$+4c zI*MZz#@tvPJbm3urhNeIT2yK4H-R>OBt#E}sMESxb_}Crauf;}G?4=kwOpJ^EG~>X%g{! z@2BI+ViUsgz{=wg)uqkD+RI?@FnCi0a@h+D+$S_t0NElT*Z8xIreO`I8OGGTBp<* zZa#I+CuCp66oruj8h9nES+mhlqi~zyGsTo^y5``z3pIO@lua(~)ETy+)f0{Ei@5}{ zSyXMYTmrqTY7hRcK6Q~nJ}o!OaqhgW8%jM(IZOvxv0H$AU9Gsh5ZyZ86~o5%C2G_| zz7s=KC8Dpo9(^lk!6t7aW!`dPjNoOtwS>d9aj>i{&uFea&$cq!e*9TGER>>QvR%%I zkD&atkOWeH_Ic71F6u*W9*r8b5+X%AQe${KtL z!pPs0M+m|n1liiu(RD&w&TLyKuB`(bn|ta%CTF-N0cMX;lLXs#CCj`|dU|?(dwAY4 zEEN2}Ceaj1%Us36K{2|Z6U#Zcw+RgEoh#?BDYA@$6M&S>*VlLus^=wDW*^9Ui(qSj zWhI$M(mlOuziU+4u18u0mlZg(4(_E7lAy!{lx){LQa_=$?Y31&3DmfXlriv2S7!C4 z9o-s$Th52Jmuy@u^WA)JlDQtbEumlBCxI+(lX$EObo)=%Ugu6)*m-RM^@mp3uiI5FV;CQ@y_s_= zsB?50?Bz!HyMvgob|o2LUIb>?Ii>K!W?hwUe3*W$Nj*)Nn|0v8E!TSThP4=F2k*^< z%f_(RPkH<2U%IyjPIEuMzsRFV&)F2yF>Y)IM6fw9I62h-Ru^$PQ2=f&QH}!_;B_9$ z4Z$hI-l*A&&PUC;GRbU@^N}nUFj;$6VD+jaZz=5+%mP?Wp!eYv=ZAS}yv8mWl9;)j z4(J=$3I+&SUT`?0XTz1ik9aJ$<=+@l$;mK9UWrlavf%D9`>;5D=HWL345F59xEzQ7 zHuGR;`8ice#lvW{;etJ}KdaE|wRNxOl27&zduYf>C|QVu@NcBkKvQbU&d`t!H)xi! zQr*QAZtx|ukBF=#SpbEn-1fM^3nN+i_Wfyf9Q$1fb}K`$rFjGAI^a!RN^dgqbn=*& zR-A?VA;h&#O7g}_DCh+tRj-ItY3GFxNdJf)F>t%6m&J;g$1{2~8P|^F+=%C`I<4H< zXXlw(J5Z3hnr>@T_ocFJeUF+dkcA9xM_xP^l}D|s)dMq?u4}dyZP0Ml$eW6Cp{hJDUu+c~TLsf1 zUnN$kOVd|l>V&zy(%LNkIkcV|_xbGhxP71cFz_3Jj=GQWk*Lf!(j(etfiIOF;k0Wf zYQEt-Tl%DcgS0ao;=7N#PsaE4(n$%B9pYXEsfmJW&p`sht@(W=yu1RatG**U&$T$O zWKkx%lS|4_y*mCH&xrQ>hK@axW+|`mYG$AV%TtME(_Q}RtMXPNDl#K6UD-68YWvh& zicW=v4{{}lvvWU=YD51KO>;9EbyG!)4}pX;Tqb2YvSQG)uHcjH>b}7wjgD|KHGxi% zMxmmJ!B$5y{gyvZFDb?I2w!_pPbdK|U`n-p`*IMtng^J1c#f@&;}X>v27FQmI7Qkd zCQ1)-$g^$errDwWMd^(Dxxa^hV60zKaNWGQoYH36GXK;83o{n09K;{PVxTsV|08#a zBe(xX;{%>yWq7Le#Q8hZtdIs$Nt$1+DWAXW;d(!*CH_^f{sHEe-&GZyD#OmU>rE>t zsT$)S5B^it^%5}iuyq>;7o@SNgq=BVpU+0;3~#J`aTV|ve!F_-!9)dnh!MMf}& z(`I$k)eD%!Ms)n+=$h#7tpYJ&tU5Vv&=C!W#(XrY65+yjw6Ps26j3uUG@IODJg*rU zE1EeYHj_oX@dvqGOQ9(Taf&W%&v}npm1nyz5kCLzv?vu|U}L!Y!v`|!3GrUC6{6FG zl=G}kvshx-u8(+q^-|Jl>&j@iq6skUY1bO~q!@QMr)Y7ifUin1!o^9Pm~k$&cP%wh z9`U{cqG?w9JyX`hm;niWuD+XgERoTp!YIyCWMDMurdfaipo=6&7>?gZLLQyXuD7s4 zNgJc4R6HNPSp3b&&)qs(AuoK-!<;!ZPNjw~IZR~YjD-rVWwY5;02Tpz982ph;4vlq z`1GDk*RrzGS;MabN`ynQn3R5Ke=6e6Pmo&+3M&aY*>`JRe)Ufa>!$lEXIaO8 zYbOcx9UH)aUFe zpEjxZv-y~DeJK@$Ga(>R32b@Qdz1KjEUkl|T; z)qo4=wsxS+^G##BfH^kD3Oi0mEfBrGd{!r>Xb1>yuP&Vr)01i)xR&+WaNR|wNozp zAzFa1%j=U>KBvJu;drSbk1Ynfevvtw&LK0k z0^X9Qb`k~2MhB%TZPya}gu?wKb6QlYLitcJ>!{WKc}vHtajs{;p^)y}3pa5wPR4)7 zZI2|cF4cFSEypRo*%Ab(->iN(FIZCe_t9YXhn?$6_QP0jnYN@b_3(cB3JXB%<)G6S z<@AE=*}>q3*=csQmZkFC8cZZ3k#Hp)>N<;Qz@lDNZG zy9z(kwyt0agH0*{@5tzCG8bS{Z16d5_W7n8L!*sdr_&S4xwy~41r9Fr%<_p<;7Ac^ zE+vZ;qSFX1^Nskkvcdt6F^v!{;0r=Us7-FcNcq@1KkMX}fxo%Ne#0TvjC0!)-Wb_+ zU2X&)t<-;5EwzwK=U2B;h@jU7zHXS1RfoC)vCA#_E z*t4A8Wnd_Yt5Jx$YwhEDIgz~asuXT5HU7t?1Y$MHB#Ix$BDu@|T#JQ>)QI6feC-qU z9+qTNnb6B1EMi;u62{Ch!XsFbpI;hxCY1g@B{EVknt!itsCt5N)-}_m+X)(q=*{oS z?iGt4NZUIEJt3r_@=wny&tYWr_Rw=9OJ;0$91s_wCNtB?f&WCF?~WdOoW>;@u-4m` zq5KQ4yVI8$fc(M?7$W~3=Bx|-W#B5?Q6t5p*yFE8@beLjhN*o>(VijEy2+j>5-p_* zm)mX$nYNm#@XKWA+-;FSX0DT%biikB-G#QTwDO(SdOVh%(XFhuJ+YewaK=>Rt4ZQkzM!=@e&YECAUC!Ie>$d~mjMF)W)6nxh7%<0RbLd0=F}*)p@LdXD zVV9%G2%5_vzD+PyO=t*KtM zO`UDDbJAPQ+5n1aUu-hM0ihki%YB+tfK)0?p4p+2A8h2muNprk4TPc1r|M*0f% z794r1y{mjlte8&H$thJ73mnm}hd*%0q7_iy`>>0TNg)>7qoZOK#$lj+EwtnN!4uYC zj3M`q!~|FHV>kFDYm!otJxjV?=_?odXT_8O_<4GZ?VBe(-_e4)@o}1}%Kgg=LS*LV zj9RK{@t^HWKhunOwRr>bGj_sK@JEbQ1Gd9CaE0w0<<+=h#pzvY%vm?9R`e?*yrz+c z`_+$LMHwth%J6i?*&i>hGrNwC+D5mxKbEGFvlgu=p4x47L}>GOaz&WfZO=~cmquKh z__!R``4uXN(3%tv<(mmw%OMC#s9$Im{C4dvq}UtYPL4)5qa1;+@sj;+N2cZed2*gJ zZNoiCoZRn;Xt-0wrC2)Xx5c%Mz}RteU|#H>J!2m60c0L~pNStKW4TlK?4H;tQFIsc zESa_hC@h~YhcY~eIQd4g={aXlTL2K!1|wP0Gd;hE-|xG9QCzhxG&Qi&6}V$~E2De1 zD3u0jIUUaZL_TkPPTeK);`zcA;D_}ds!d(9`2hi5{)4Zi4JDISbL08EVpjy^!k@B@ zU^XH?_$;wOU0uMi7zjp!b?~$oE3(>D z^IxK32m9Pav_zeaQ_nO69Q4{044YbZ)WtRQ?fZL|J^d}@2+V0qE`EaVxJpM5XXA?h z64)}VFPGD=Xv(_XEgQA~l*F|wcB~hxbs~=K>WquZ&~2kRawKg$%N$n#r#fR@TO|S6 z1fIa``J^9&Zm5lDtsR*NCl6eSW=-7hGSjY1>C)=&i#oCa&_S-yrAmI#IctvU&%^;; z3Lg$3e?J|`38f2OczncmKnL!Pc0I}<8e4Pcn~1<)*NIr#qw$kKk;zaM<8T+nzfN(z zn*yH=TCVy)K7tBHxZEGhi^c}%FuUFJnMx8!7c9&PWms$_re7&C8?bRKS6I`!b6Kjb zExhUS0y-uFxLDEXXD3}dh*Lh^q!5q0AbkvI{d&TW*=|roi(5V`6tqU?N{yNh|0#|& zYwUYGi84LGqh(aoiBbDm`hJ^d@vI*g=zN)b0Eh3#@m?7zltz?-eJ_BJ;&YbDPXlTy+=(p z`o{fl^lFXjy9=voCs>&`+}*_=F>@VxlKs$p(AH1n(Zll&q%SB1md`C591a>@J*lGI zh^h%(Peq+P;do0mxtgM+O!M%rq!{-xp^cvQtI&6hb%lz#)NB-kERbB}bOgN7= zR(oHq0OgZ48wgjL8Ddoy23#}Cb;a)Hv1i@_Inl_n=b{rG01 zoYzYsX3@!p_1&iTDSGf|7L=&M7e#JF{>a+I!(!ZxxdMK8xL+1>TeqT0L`q|QYDX=0 zFwpSk{=BSs3#7l>nM0!Bx=c&H?+rC2vY<36%(ycety1gOGQXNX)p(w_Prd;+8DM0Z zCk3Zcytz(Lyi>$a?J&_4qx(F6#H_ho0pR&@zW)cYvGE@uVP)uys_bAk<4D+ut5$%< z%G}B?xRNo};`qSYJu0#M+=*fGqpu;UJbGIp&g){y{fy$y(}m%$uRl~ISoX_4BoY61 z39Kd-stTolq{-*WsT`&Flk}?t{zpJ95$TV^v+ZQg-Yx!+tr*)HK^8b|KG)33Ta^4w7!;hvm=g(kFR_Dv_4Uev? zyP%7))%h9SIxgmEve@7y(i&s^K4}=;V;!zQwIjr%*n}Zu#qF1fvIcLaW@-dat_11g zruzHD)J}4hZslb4pz?Y2)|E(W2R{>7RXc8dAR22J(^iqaoQ9DkT(wBOB{IwHL`UPW}qir;4;VP9teDutI0`cF|n0$_sI_hFKPfHSedr{SogK?sB zJbGK}$0ZLlcN=YVwQ%fm+6`5SAD)?V%`fUKr$|JG1UjoG+jBAlW?dLo;C;PSf5CI9YFLI+T<1*I*?m71VTg^aGRnn|X!i(hKTKSCRdSDZ*H& z9VjBS0Ee<}uI8;c;`QfuADBL^pvx1;v8XpZH?27w51ohr%5QRh+HDv5Ut z5zY}yPc}r>jmoEXnY>4AZL7_y(#eF0k>88g)1XASg7lTa3po5B;*UCg^j0mRq7D8Z z1#lSz5fbNi$hu4=U5p;Mu-Z28DM?3UHbmhNH2Uma`JOKfRh%fAK7eID3+qsEC|3>h z=w&7mTuhIaNdm4rd)7?GYT>h*v30$|8rDHY(5mL>Y)=nE$?ETI*7)_oe%Gj$<%3Rk z`#0DVE#(j-HFR>zZsH{m^DR#Wju;|Zo*&>u&4~BoAiK?l!hFx8bzp4SI^9D*2T)f+ zv%eDM#&U#{-oz}$)usteC8Bhs)PN9#XOEQEVU1Sv5sBMO-aHQqt0>G9waxsk z&NFlojYQn>^^UeNE&B%KDtKd_OX!6;p+$~?);IB60Y`L`c{vEIb*()*gH)RfzvbC{ry&nd6lV)SozkhOcdd=K<^wA zcT>ee#!a}i2dOHHRs`&v3L!hiTdK$A8*ap1LU=KwB|$f=JEU+OfTu& zNN;Ow(w$@xzb%=6Qp{BO6CLw+5Z$B(wC{llMoz&yoT0-%6y5$-0zqMnQ6~KvQOsvP zbLIX>qw|EV*eY~ELLmE7C|&3i{&L`_!XxKTBW$4p#AAl{G)$M;nZE<>q@&C@HhR`} z2vch?G|t~!RwL{QOSAu$s9w868^mJaylwM!l&uguFv(hFldYsni>hgv4Z>B|woHpV zm-~P*ZEI=*I{_o;pfD@x|DC1x6j7_~Fq({55ZBnPMXihj0(3RVR{zfbO7edpb%XXdC_*;a{yS@6Wwppu^?69^Ef#`+BgH&?E5GC~B!2?TgLPNDa~ZF@41T?uUHqoQ zko=O)ku&Gs1jYWdgiWMsnMHp)_(?Dyo)v4OwE-llNr3PwWw|FsBwB)qNsao0CfCgT z`=+BhR?ARC`!;NUAr^jD(-PSN}9)3udJzF`KdnsW)|?Q|@!E7%_G zvv!%AHsR*=6qFk|Jc<^d>u_EX+8-9Q71_nc^gAY2WsDX5G{UTPHbG)4s`F=fxUV3ZBI~6WKIw)cC=LdVp8zX-hBaN1?}wH11mOyRzGj|?%9hUw3*U? z68%6*zk~3@E^&8m8j=6??t_))L~e&{zk1GsNzSI#3U{~b*)M&{f}B<2r}B$ms{EhX zs$c4&9s;C5KFz>wSOy2eg2$e(CZ6pbHWR>^*p`1lhQ2>z_YamJXrdjA)rvol!ZOde z_Yb74|JXt7iyN-GP9*B|MX zEDDiW(}1cV69Z94*5Vf(+wjK~WSQqW?mM3swa0&j_!sr}fm5uT53XOJuSJ-eo;32h z#srJKxi7bB#q3iV_4R9wT?=Fg#aY1ve)|h~ zv1myG$qP^K zR{OpgG5^!n_2IU9WqWE46;k|@AtT%xA%uxW*~~BYDR5fs zuHl;V`R~x+*g>Hbs7OuxVIK0W>u7B7`K~5%$dg@WIT{eW>qR*rD#i-B zy4~4#T^7B>T_anrUvG^f>=&iDLD}xT?29a4Qj2!1{AYx7A?XQMun>I{CrpXGz2g)8 zFm?Y>&G1GW^aj81>elnEkKv7SVk5R7$k5~HEY7ap7X(~%HU-j&>Q=tR02J$Xm_f|M z9+`GKCGA&sJM5sh-?u@g>d&UbFLT1V?OOih)9ZIc`!MPlPcHcFVFQ?ny({c0R;Nsg zdy3j`xtG}fPT%Rc&+tC+dea|m(?5Z0GnjJ?*Ya)$9cwVWU;VUwfo#zLhh81oXUn?> zYv-5PhlbYYkR;pSnv1Bb7sdX^^QSx*!M%rhp1#7o?d3ACM)BzTP9H6(s`LKKg6d2y zCTs$iZw4)?{#|yMxxz=HIi}Jx`SsCaaoj#GeqO%7Uyy~n4yosE*tc~+faITvMbd_M&_ZZkE{v)5%Gz{2B`igyF?rEc7EIpHbin#mj znhUlb*^eezVvJ(siytk6#{Nx=LVt}#B>tPW92yIJY23A3OtkB}g*^dlmP60`1yPT0 z1F)|BUt{5YJJb7vV~(PGkKYz3=xqPfIzZwJ(w|K+@5DsW&rs4{7LcCkmGAPmF<`v! z*qEr;uWy$(cemzqJ(4W}=gA(uJ?chpdtJA8XSyx-lz+*L->|Rz>g_6K%b}5XFFvr@ z#KuSArk$DIWCD_0-yIghEYxJItg!b(P^Mjl)zlXD74RxC@)1)Ha4Z_o4(nauF2o9Y zGok^RLJ^)`%qe=5TI6O*=3>q&{qANMzbE2;v>6vL0hmJs$bNAIlC^zCzlzi|ArkvY z*}(yQ79+h0+Clg0+q!-sym=tK0|b2*pgDZf*&|W>Oxelw3zG!JX3eFJ`r-6^|cSf6zsD(qUmTEKKjaGM^)ObOmn`*1ZC0OR!QC}!(1 z_l^s!tE!+=82aq8u98R}w_?5b5=3uTv;DL7ZEN@Cdi}p<=D%h>c4+5zigTx#?h@DQ zOSs-~)B}g0=h4XSH~&mKVEA_L8U5u`*U{c}FGLcC$^b6cio2=os0Z(bUNzUXhw9hV zp`9z$1=V%p%NWRusM^Q3UdkwdBBRh1^KM@u_Qi6JNh0K%X^U3CdcGR!TQ3YGWji~# zH&ECphu1ttSOEHSyPdeH>rpkrzdrFMv#r3ZzEIF?3x)R=j#oQ4@yvcoORz0i{Db(A z=ZoL)w^_z(G<2xcucJ=eyuFkJf zq;QU)1N!W|H)k{w5W}{UvNLw|hOpO3hz-F-4df3I&+ccZzE(noa>4b5_Se%~|3rlv z!p&j%X7t;l1ZMOfp+JS;fFvQ}`Td2GU^IkYc`zcJxC9s(6^a!?Nqub%$BqqQ38}}1 zaKZukLU!cA{Me8ggjZv@cGO?WV0<_ql)%*fGlZbL{#=A@hHE3#UrJz6xGP*paK8@< zlrBWPu-{Z3%uaKii3Nd?aftA$2nXa1>5J&UqPkwgg^;2`RS<$0L;AA&cND?mN?>t0 zFs#Q12Qr5X=|+Y2AiM^_y&=NAy$gB634#5E0@M3}@%`e;U>J4XD9{pwS5CM$Hn=y0 zkT)28D&Rh8aGxBwkosDj>Us_va)b(vMR=u$d$WXl!-eaM?0<{v?^6T=CBde&*L`%? z0jN+{6euaes}I8KBf=|eBEAq{WPhI$c!%~H#s($|v=9|)iVEF9g^HsKi%9??GslOzhX5#iMr4hR=wDg#!d zxsFAJP9OxKhKR$M2<>NQyk7a1^jDyWD1ny{#H7K^2x4;JHEak4+>R1>j_w)} z&Xn$&9&SesCX-+C;7C*`QwTe*Z*;#NYG8hUA~vKM6^aDcm)u_{4d%y%c%p7HTyur! zq5M(=^TO@WT?>VXC-##fY|~tS41uli|74?v1#w1r4TJ+yhwP~SPdsYakSUb^B=i9e zNFUOd({HK-uBW}`$AYNgLgug_xv0=ugjYT|pm0cEYCo``AGX?8^w*Er5OypGG72;k z1saC%`V--m8t#oF~;Wkm?W40$6Cc@qqQN&79dzwZm!l>eGve-n7~E!j~U4^n~f z%9H%;*?S}gl-+!*hZWIAcx^{`?L&d)BD`WEygI|ZeGGZS4FS&e_r<)4O?5m(LayY9 zAb15>l=fhqVHoB%{{nhLJe5Wek!IB<6M5Z&Ed29A#4&ErF!HYA2#EzU(bagafpSn5 z_?`HFzw}5UY*BMWkZ0^UVhBH$DaZ9x`;C#8X2LJ@1HQ#|-Q$ z3H<{9_F<2o7~(RW-m~6s8tl8$-xu6r3Eq+ZWeujE?j|FGbYt&uUW-dWN0460hfN*8 zQ^#pR@gaThZwfiD=V*f}Lc|dcr;N~{7Q;K{V0KC9H>B5%sJ@;4H~1S&5(wEOEUL^G z`9_Txl8fE9(GLuU5Ml(9hY7qc_V-0W_|c*7Vj`Z=p_y232_bLHd*U3|et7h6_TV`= z=o^Uu^h)`x`+Fc7k140fwMRsu0=Qh{021~;mBvg+5?Jyl`k!8_bk4YIxp+dI;DC4` zFf~hLxQ40OCc8ioMM&;5%Gk`e@B4qm2Hia=cOmR0l7lN!~e5K6*#a2tgpBTLBt`Zs$e}VNIGo%K5V>uf~hok4F`f3V*CFA;c|*k z#()1IVGhT)0A{QL3;JOiS@9n_fI=ZK<+H_taHDQ6*9*9u>XH2)P++ zO%p;%R3nK)vhWMcVk^_H(+hK6K-5hp@-8V2+Q~F(Lua9scFq;sL5CnrzRKKY*7`7ON zG;X(f<2RWw^r1rW|Ia?+|A)RAPu4LQ0)4O`XDCn@l}KXW{yF#*r z5-OoW$TBTYRFd|2$}*Koh_Qshn4z+i@RU$trY9uXDm!Cl>`%m$ZOSr>Nn@WGW6X?M z?)UEZc|Y&x{o~A>`|S5Q*Y&;5Irnw0lMFHr;V~HH(EGWKq#2=njxWp2qGpr zpNP&TLcIP!FV*6I=(|M#iWdzfF;`A152i#J0;V#5K>QUEcu52v5edg=d`$s%ivYV> zfYlN}mBi>R0+^-%@c0AHHCjzUu`>eLW&tPz$Z}E#xv=qQr$1~S`#(-+Dg9w~5U>^h zV0J-FP}Uy@m?ncQ0Ui@UApkZ5@S?pdDr5j4?t`_a5CITRGKoMD5qL;Mp9JHuj2A_a z{a*jj+f${sRkoXuy2&6f1aAI+tN@}r2G@N*WhZDDglwd z!tf-0^WeC(W{L_E&$6RHp&FtjHc5tS3Tm|ez&VK9AYB#Al3;F%>&yvvK-}(xgWUeB zxekHxo@6F4kD%Rt&XT5!g^9Oz&9%y*R=&6M<7ATwDMXNpVVWcf9#QS`@05oxn$p~b zG-VGpi>0y3x@C30@HtIV=jnBV4%yRl!PfXVk`*A}ksqh<4$$=_m#5dWH3d{nK?+lz zaa#thk__l3!y-`oL2(B0q`}PDwl-2sKAH}%2tjQalcX?`hl5uynd_7BMj>UuX;uN0ShaLY8IaRZTQf~sD5G|MbI zZQ-&}<7(H2>?_}R(SPO~A)CaYya$QsINFeMai-bR`mofFLtLSYJxq()$mDHoYGa;VY9k;#Zd}m;uqybZm zTvHz*5AzZI*PnoF7G^3b|EW;8GS$vqVx(7yL+1WPPIf1Oo;^T5NCae-?g}qTSCQ0d zi%}H}xC1XV316B3o1N7wO{HnP8t~1?L&e;ZvJFz-0G#swO5ntAoW5O*MaxFy=3BWA zkZ^M0-5MsYoJJG3K$?wdHQIQZtjAb!ns%e^sD|*%lPX*y=IGLBu*^c@sH;& ze#T-0R5*T67RkDuRDrwq>S`O(iMH3qr|*-4sT9d@C7|NiEm95eBFi2TfuT%<-NFF| zHF9FJ9uY8dIf*cY04!@1#P&TRRnFS6(Vn46dMOKiIDU7n1W;sx} zt?9snIIJPfc>g+cdowLg+QR(Fz<)GPYik?Y)gU;qE(A)i2>2b+HaDbG5v|{8jz`ecav!38>8Q zHmzP6F7*)4`V-M40mXWHFWk@lFNxW-EF-ZR>CSe!kJ(7BaEYBu_K7p6!R*%QKI!N$ zFPUjuH$dZ-4_*i-yMg1_>RZONmO*7lV0}OWULKl8+DyajDS;p51TfHKY=;aDX8W5i z6m3M8f5(z`uwzZ7k+Ot*BKH0UHo=a{bhM4 z4IPLhp}GjSzvg6{NP`*8frc{Ti5_H=28Xqc%IoV)LX)@k!gokr1Ke=TO*E>*?@o^_ z8L4c*B=)l*PUDa!5XeZNJ`xc0sR=gVaQTn7Tl*+c$o?q;^fs!?Ff22Pyvbz=}Pf;W+L2Y_38rHXjKIS{a>Sra6@1+^r;mJGL4kl7f zh8xUZjZ$XRycOp?Rksz#LTX2J8<>zbr;#^8aT_C1Qq}1v4oB92+r1m0;tdzjj-q&? z4mN4TdrTA3i&!2YDTsX;%~%g#j>5^di22m(PQcABFu@|$ds1^B3DD=LJYBG9+05?M zr~0`2a+FSreo;-U1#-8#!spDvqKFNMhXxo~L3a-yufee}AW0x3rM!s+2U*nP2#H@h zWRz%wu%K(c9mr=K%NSo9`KJcNCHE7MqSLOob?%H8d*=m#ip|kuzfxxvFz7{(9P&~ z91OKup?}oFImu=lE3Q^+p9SQx;O%!HaBKtYAcd5A)|7>oL&D#&Dzv$fVwC}wgJ8d?AIJW^iTCX&jjZrxV~UvbBzI)S&`oObV1Z8 zL)p(3TGL3jzdM#JM2qnNHUn!uZ6y(H!*25aWn$@149n*k9s1 zjAj@b#Xda6dqCs;4fdwXzH|s66Vc5zG0joOX@-LyTeGn+MO*-ml%R>O<@oV;NUszd zU-8#=fuq$pje4v&Va7&uD+dEVAuj4kz_ZMfEd4j_0a(YyZ9O8G_+k=aqPrBo?%t(i z^Jp?wsv6O)vV+9S$7!=Qwn;ud6ojaWFQyX)i6q2THexEZX*&O(_V1?fr4nCUpqqlRs z4X8YubO0ZLEp>j-%h3f}p>qL+TF9bBII*IW&|^(f@P=q~x0|pn9Zf-y;2=L){&I?E zEo=myM@afLfdEFU^cSz4VJ}i3>eQsXfN$?2+?-@e(k=Z}nwRlBg`KDkHGnO{P3WM& zXMO>HCVDqR#oHpW@!z~*J-2N<6M$LT!xp?K8RqaeQ8M)w1&7h}#8U zADev>q{CMnuYkuD9CZF(IMdURAc-XSf1;Q3B8yQ5BA?dV`97Ch=h?9j3Era%d5N_D z`tT{Hixv|GG2df8x5aZ`pDybRtHX^2vizghXW~tBYBll_d}1p6q8BqGNmsw>D2QMG zOul%-_@XZ+>RN70J!Smsnb>}-)`qDE4)5z#LT09~^;l~UiSK-o44f(RWo~ zqV410;lTPPWYSa}qN&~5_4Bhm+R7Da?=~GMe*hl4yVK`3`=a6p458FI{a?=u*4xTNSNu-GzIE48 z4chk)=q=Q{2PEE8WqHS~tyTG9UWfFrPB>`P>V+Dq_hp8<8DvDp8-~4D(>NWKvUu!^ zwbgdZSy;I__eG16#M9}56xNH7r)qnxsN=Eg;I#0|mQ^F$wS&l$ZLIr8%}?Mmkl3M> z*GrN|g_)sEi@!q?YU@LxXAA%P6*@)<%`=!+D*cBXL$)-C7o=ADv8%p*)9bDI<>{I5 zcrLFtp!H_#nTuny!Ld^J`@Qu0k^`n9(|gOhb50hDswsC~DGeO^CCPg}U>xQ8eb}PL z%NVp6nz83s@w))z3m}#A=<2ueSA0~$3&WE*1h~DH`1qScdfxLORK=YX`0&2UmohG& zNe@!O1&l^=@{acJ z?kl5CH!?E9W;qr*W9s8#`0l?MsJ{g{fehC;0_WF317LrV℘t$?O^M0*odXY&l=7P=F9axaf#$P zCkc3h-){bF1)ThW-S4}j^$Pr~cXZJ}eD;?ej+@r@PQ@!`r|XRUYcSKtc>s@TX7=Pt zMC2bPH8zXR7d}?`6Xx%?Ua1;QhPW1aob_|w6$G0b-KJvEgu zmvCs}=Z}$c?DdKe$`yFgKYK`se?BLu9;7@T z+!~b@TDJIZBKOJgLXh9Z;Qia*_`_+6&C1>B%NG7&gJ@gu>ek%PO`}y4XKUcGeN&Oc zH*CvM1s6w`$w@$N!+bcDWtp{7Ek40)nXqd89u}+2yHGA;I;>@jNIiAu9>O zbSuBVy#HPdpG3kp`LcrjWc*22eSLGmGzQia|LsgGqwacr=g{Yj zB}`jKl6k?XQrPnv{yiLNL)DWwb3+4O-f_aOy)Ispe^2I54E~7sErq<^?)vkwypG|g zs{z)WV=(AiwrC%4|reL7#pLI>;hx{Lk6NB3-$sqTD(s^@9$t>KP988ecbfPK3Ki7E6wCW#=yS`wA6I@x zUSH_Zy8SBI^{*83Z}5yv`y#ggX>(lnOo(Lej_|KfUt01rFO40_H0G|If2T^b3;Tz8 zXf_4sN3*D~FKdst8eS0T7PM}nw` zp0%sDUY7Lmx4Url~QNr-f7iVvdL-mm(+QiS66kiP25~3 zH(z)eJJ7VhP2*qdPTI!woS~Msk*haiy<5KVq?tg)8KZ$~0{O~P=6%r#-m&vp4l#Q3 z7VMrNxqmC%w;PoshF}RjzcUY{r6&H?AD+Cf^z*uENbK2o%0Ve}VD;rYho|q!lYIJ7 znZ84>?=q3< z_?&jPK32onX8;-BRZ-2Mm={hm0}j;jhi ztmR~Vrod@$!!6C)#xUobNw3Xt56hT=_JJthhw7XChUUu7S0Z<)ovyiA?0h@QBBRRr z%%k%C_&403+hq?*oU3$JUc6mimHv+S?{J4Vr1GQX?i=~pW{YPRo+;(V)Z+2jQ#+PU zs)R$@lDiB}?#tAskFRU4ZDTPGnznquxo)7w8UAW#!1`cH_V~Bt%FRgbIrGPtProcN zzczUE@&$*moB8dN;Q|Cbn#{YAf{k zV1c~(73lZ$;pqL(KQ4?ETDR(#p1JW3{h3jsv3FF>^{U4Xl29$%%!ENR}UwU@j#Nw{kSe2et`f@iRI(gxU zsZqY()7M&I)p~@PM;@QXegq&^pZTdL$`EXDPL1im?j7=hlKo_l-^{s%-z#T9xpZyk zi4B*?n-5%=TXroXs|8y%;C;^KPdu6AorgEdbV{^#89faSm{HkX5WhG1T*dwE=hovF zV`sb${5!N%Gr%!BdTVmmrnO-3j0yZqjLTGd?CDo6G?zLZ?Yrwq<5ZcmL04Oyer_#~ zi#t6L{=S{dlG<1Fo;_jD59n0LIYn&TOj1G>9ndjcxuo}wdM0E&GsXeC!=*Y^ z88urMvh#i{n{?NRO1hLD{e!tm5Hn(7CC{CYf*eYduV`-9umcV){L_p+=Ui=r$@ z4Ef?|GoY^FeAbnIhvzvL%Y{9D(+k4n@_CMqgossiNxU>z9x>a~ReOI1VO<|-h>RM^ zV#=(#MeWMTG5RZ{PFjYzH2&(=-X%A$(t(unI`_SjP4}+_zeePaI~gFK?KoWpj2^2S zzsjP+58j^K-#7Qep{Q=W{J`EhZdxcyh~OErO1k{I?v`n|+scyu)J*NcfH@1l0T~N7etn5ZEj1vadhfSQw(t-C$}1N^(7%57qeFp z8+pFtquS|(h}o|Puf4lF(qWt>ID>VcGkj^PGW#X#nUht;fin724YtAC`vC@(cMVEy z4+LgR9=UJ+8`Nq#>I6ubu6P?KgV2Qjp!+Wioi32>imdVbZY5rNsla$9SC+a%&1&n_ zp_}alYmR5;{$~f@=|9z2j5xJ5tni7Jm-h8XD+*d(mGF`MI^B)ChE#5T_^0D{8ocXP zYo>|^f_wZg*fsK#afO1?&I@TOQEc;=N2NQ(7uRp4x9)M4vwS0*I9K$AA9ecn6A5za z#k1_tzW?IeqArz8y#Jl*!L(MQE|kP;vA^y`eL1^1#auLqY#WU|)Vin>aip&b6(MWm z{c%k)@eqC^u=&n^-U4tT^F8D4^sAmd*J}&xwy$k**s$a2Y|M|h2h5(Q%`24=|FO<` zQ>-vEee(D#y+q*anKHFD)(39sj(49DDjLR)K6afy?SZM!g^Nc%<4P{x-ASFlG<+Ay z`JNNxraa<)^L6G>h-v$pDR$(waeJPY_|5LbuKOp&*a&MJD#&n+e z9!$AOb<}=B`_2o}j(VowJ=d0`^+DU;p2(j&#oIvsTo7zpno6q8`OR1^NxgVHwA8j? z<%?Q?(USnwplbV*rGn;3FMdPh$vnh>$K7{j=;fkg80n*HD7 zPP%X9{e?0+Xmj_5ZsgrjhY9wph7r+EaI-bknsIqkk5*B~uD5UhGZ@^WyZI{)yu&E; zwU_?J_h(h&2AmS-w@sy_#Ja;vB}4PP$=tDH&+euhkw%Io72sZx)+~aXnzc@9Ijpa%(l=L+QUU zRfP>9rS*qY-`+ZzF5hFhYs+ic=MU9B&(ljD-Oj7F{hk}4FP|dyR`wi( zGrxSD*s*Ez@lH?$()P+r2|hjQU}0TjVdUlFYSOuTb;S2%4+(t zGkV1sdZ6o>#kF_iSr(k6Ytzr*?zfMjQA6~9w(q~Sg_-uZc!wP~0*d~yuOJS%d9ZxZ z!{^$Ik&@m^^eEM<7LW^Yp1i%M_4`-P1fQD*M=l(`_=9A2zF1g{i1+F#Jr&USo) z_2NCYCvUjHfW9rkI`vL&@9U?j(Nt%H zsN#am1F^+&fd`6`4kv#d0qvmtyZe>gt!ul*k=rv((o;INE!*esf-Z~y)t5beC)bXe;=fGc2qQ>Mc z<`Y$PZoQ)=jfRO&lA;XR#1W^0Hj%+TpX)Wue*{5UT*gvvXn z1{_x-_;mu8T1gppVt+OCr&P2@C+sa9IE`ePwc=QS5=Tm2yg(-SwxW)9!v3YhzpL{!6O-x}V8wKPkRZe!$$!<(Z(ckTEm^P=&jrR4_->pw#kvI^D={yX z;NJ2zAs zNoD0HZ)Ds^Zrs>rrer(cFn|>?sK+$y`C;=r5H^@l#e><`=vBnhVin^!EQH&aD745s z-mRPaAVRt{?84e=5h==9V2w{?V3)f!_{da%zan-e>Asc9d_bq@LWVPd5$;utF(28$ zba2Hogn;0{b`sy!Ta!=a7$Y$I!hV5v!DHTWrkU%^hfJ zdk4J1mK*YA+X2n@M`X-dL&v;4`L5#SM9K0Q8wx}t-_$L6S!5u?fygy5lXVG$Tsx(=#-vK6ooI)8RO9srXflHU z9RanJtLr)Q{F+{Ce;oKF;3;*Win@KNTO@M+5(UJq8qJqi#&4CIzpD2>&~<*UBHm49 zq}KTy=`k@vK*``^`}v&KHQ%gP``20KXSYdWx#mx$ttY^DY@YlP1sq=bC5#8$SV9Go zuH5`jZFXYvy0^kS&>jUymR>WZ2`8TX1-N12e@U~^L0crw($kCR-oTaVns|)uId3T# zH%P__m~HDd2^iBJ!h)X80+n|wi^CFlNhJf^Y+3wI?h6cBpIs%DeB+YD{Np5u#z?Id zZ9*2`NdOS|VeSwHO^;I{5ms?nCM?eX2iFw?T}9RaVjdDakKsyX#d(u75Yl*>qc=zV zhRJmW#<|fL;}x+lEw(0Z8K%pZMfd)l9CHpyvXC2Wgv+2txHmDzT&ylgQn*&8g$tG@ z+)QHjEx85ZM=~ID-K-Vy3#NxFWJ!3NL_$cvMFE0e>WejKyil}&B}t`g9Vo9c*J*nj zX{9b?=f@%`2cqjJWygNg$w1F$1G;!;bbP0v8#xXU-)Jz>o>_qnyX=_a{_|xeMbaFpoM8d`(jEGe9 z3L^sTR2xZ!#)WB8A&}2>azW3=MUaf+{0E`{H}+?ybWKDSQGs@z|2|EavnH0r-9{1p z8pial;*ywtxcHR>Bg>fk+1s7hIg9#^gAroBKS?XWznyF0!pC}?a)EDuUsl6BLB5kCyB&|4nANLUk&T~m-id?;a3(ZJ52`Dnx!qr>Hwk1&I7hNTO*%+(q>P?SR zBS{wOP$u3K7dGmLIU6+#OeG*F6z&Vknt;D_2}5AT1(Trh%LFEJF;3q``UWId@?{cs zZQ3{iGY03!i3$d}Pm&3qvZUbzj+aa?!HXt{)i4AV<`^u3#x50K!WS8SrYbO#Xc|Dn zKbs@q;J4H#9X=~A8#sXxg~=lKHDaPE868LcZ;c?t(+Oole&%GdsK@q?`;#vL%*OpW3v&>1+mKflxq^Gq=z7)FW+{%I1m%MorO4d|?8uEZn(UR01l=E0 zU0G83UQ8ed_W|ss1pblM`q#RUKJGlmn~zInPRMekF=J1kdrR{P+D-Ui#rblB^ct{< zQe49SSPax%lcsa9=J{NL`a`7)m-^3Y?}*ft{LmVWnqv1c?@th)^4I4Um8$I zW(Y6QaKW>}4k9(Nm}xJ=j58%kTrMz(oYe^xl#zK5%~8b4EOLQQ#}ST5P||PkY*1B~ zN)hg&!Q`aY3BW^w=WI*ZI?SIuAVaRlqPaB-zmpdZzo-e>+*IwOFjz5`ywI`){07aC zy^*dZbE`T51{qEv3WpDbOV-gaU_I2R>8!JSmd_e7`n6@ai-hk0!kuB$*;>WwVVC5E z)mOym^{>F&g*s0fZhosHDM4fm3z#PWPXJd zbQ>{b9`ZUU?z*#3h6;+~tQy5-+2b-3fIBVDZfCfgh@aDku~01}nYyxQ&1ho-S~Jxe zLFS(K7at@!CvXhJj5XuJMk&W|yQ4Zh-v2*tqYVEt&ju5I+AvOoF7$gA(gN;Ez+F)a>EVF=WGlzvsqxv9Jic%qbSeE(a zX%aZ*gRhbaqS+&^wX&RAFpn01m*ANwDgEIQ30@@p(wxlnd=I0LpoCvS95LdhF7dVM_`7z8nPlCee~y!j2cEW zI#I~{a@vMMN~=^h1a^Vd4ieY21ype?T;I`6PX^6@42HcXQYFQ}V?rz1a7>bq&gUf) z`csJ+)BbOGf!#UMSdxgGfyPd5afC<~ z{)1-=mSWN39wtU48J}>0FAHNxX>s^Y?kNmw73oKWfI>5Do#86xTC_4-aq)fe(i1cU zN>7kbr7mv6ufy((YZbEq4A7emP>39=ZWF-La6u>Xu>?gKbnnAtrj(paVEuctu$+nOif{vcDb4zRB*Y zGQ5-o>dp1pv>TU2Oi(vrfYgUEY^@Yuqz$6z(qJ0V^H%u&ta!lXs=FFbK5ZQjOHYoYY-ru?_UuI+igdEY_?{PKPrrb_U57 zotWh8Q?iMr4Dyd;mWX*jf>l9I_|AYi?Wb+>UB5Rd%FE347x*_Gj?NR z*0*kU^}|V4^&@8g!u(HF(%O>@K*qnhlH18XqvGonRCp3NFM9^_Am3>bEc^%qe zTh3Sx5O{X_N?K{Tt9*$%2A*#TOCo=NC@~j*HhM|uWX>MlZW~qthYEuPCtVe5JE^0h z<2w+pYA%%<;E-=|RY%1A?1WR%5Y;Yzn#FEr1Je&-ueSJFiS^Ea9gLXH_LVr(tL*3u z6Y=sPsGAbtw|&roHn6oN9+jp+ma%QfN*2!g#iQCG{j>&%ic7Bf8y6Lp8!=8#U_e?B z%EP~pb~_|tE9P+aIE;~Cif*$I=emiqeo7ZGM|!I;bLd4cWvCx~oaNPD1Jx{!FW7W=J!`0MSI)4jGD;$giOJZ+(`HS)56 zw!M0Ci@!~UWn-Gnh0gd*;xMyDi7DN<`~F1jCh02*Im{@DGz@uw-zLb zibuC@sNvReJ=oiAT9&eNOolvlqd8Z>7pC#`1jeUTU#N6JlVks0=o_GSzH5$j7X19$ zVof{6GkmoP@!lN(1(lK z$hk{JBz8qcAtVWsOATdG*`G4~a8(u8-H!4z&#>3O6cRSUu26De4~&;+s76~CmL7Cj zKD&&`nmr~Sz_?lPkYp)42 zaQj>9biCrUVh3X`5#eqkl@%yh`F=LlBq&l`Yb$_bCepp))%aNCwA*G^sgmGTl(ie& zM0!>5+tV7aj>K=dr$*)iw=O@f+#!1DiOOS#Hy z4>(AD5H}x^4Z^G5N3kQ|P(&|N4dGx#hqZ$qP@@74j|vGG-5jo48u{X_=cAg zm|AuYsYO7gy@JJX(Cv`n2+x9j@yM-+Hlsn$4qbrOH$yKt+$w<5LWWzZp~`3vE#7(u zV<9nUKW<1BiczSE8|fyc!X#gW`Uu6DnnUeO%cBB&apjgyYI{E>9A%*iZ1A7G3`MX1 zdWP}T8t?0{2st|Tj(vN616-E+Hil0-BHn~RSv_)4!F#jPxO9iQZygrNf+hA+te?b! z=F0PR(?FxkECHSLY~HOB=6T53-xkHa%m;+`$%k@fIQBFGa=vdn-M*e3qJgNOPD#&h z>hey}xMK8s_=s3t;26CRrrZTf!(Krh^nWtTIYmp<+RM^Tw^1NG>&u0uLcb?m(-ORx zsGihCU5U$WXRppH#@T2>bTJ_3`^a)yX`%M#SK>{ix`Ksy+G)*{9|e@9CtoHUYD*E6~?WP=}DQJ9G)ont(m-!eu5}ZaTna`<&J2zeNWA zZTJkEO^^?$uRUzXYmWcw;3ya4{X41OI+QNbyDM5&6a*nHXB&y=L8f>o?z2Le??dnL z<>`QTnX8%cHJ%%6-ta~H*f&CbkzoiAEA};Y%I_pgXmU1;)n`Ske*uSUz)M8Zt|MYQ zMCc6lko+{{A%B#Y;HC+fA}cT+oZ%DeGCcCG6lldvLs_^9-cf8iRdY>ldZN?#12yoB z32F_neiVwjtK+hHF_KFLC(30sDx}xOT)0W`f`3(zdLT zDa)y%Eih&Ua?`!-`N2n9bJ=tHX$?kh7iB-=Rl2arftS#KRX+XB(CX+7690`qg4`^y zvLXtVkKasNW>mH3r)k}O$vy8d2_omV$E#64|i$4DZJ{qTKHN zKJl87+fmt*3++~f@0+CUZjv^d{fqpUs@O7V@$K+dV^r6Y(2H-@G{YpMlr2q*l_x0> zc)LeXVfb6aXLt{mo_B|qU(C#d@DP}GO5pk0a<|E>zyL&s{-CJS^Da8ABjf|PagNMz z6Z4E*^4B+CA#$zn^C}+(UIzL%BV5}YFsbBO<~(5&bz&@+MGQ4M`nB*GrTB9NWY6T_ z#Mf|VxJu`eqi&jwsACkSVdN>9bETiMY!Ms)V=US|DN!@IppV?i4Ds!Sf(Nfg7hkiV)X{9#Y8DmB>UN|1AMvI{wdI>pTpAv= zRS#n>-4e9+`BdGO!~=jf_^2*O({BXAmQU8aK{dv)AJ;T5T~)GaAPPZ%4Q20GpJK4b z#;LVzyrd9N%`TSDTy8fG^1b;WaHk|TGsH`o)J)Bd>IfBa+ZErp`C4lNJ6$@jLc=zv z!xe3+A_T`}ImNV7cGl~OO>G+c9tDz{@Jq>p8XDp5+a5E7JTCZc?uPOu@9|6T@L<>F%_IO6qr zPpLX=ZCm#rQBZ6j_CZOU>!y!ZM+={27^^l$>@lSUDFov;AnztHqiD`{klSjwVsmzA zvX7MRiI5!-{ZOnajv3e?ILdP_Or3BPTe2TryZZ}NJLYYZmh@=s+PiJ;5C&q8t6t&i z(HiTBF<*`#oet^#1iI;cWEL@} zf;z8?%k2r8Oa-fS5ZuW$MtnF|0wq5h`O21<6+%;3dUH41f zMD({Prk~*KsI3A13X`-`u!E;tlbru^uFrs;P}?LR(U0pkt@sP@TGhz(-lH4~nqQrS zNvjF*ZPyXF2)&;|@e8qtV_q+_g!f7`wlVuo(QEC)?9Ie)epkFpv4JKun7Blo=kwz? zVy%9u|uubrP`9gd4VSNk2W@#&B zA*O?{_NDN%on&A1-|yh{qa;${Uwt~x?VQEb&T z-)3c(s&!)nqQOF2sTHzUR4p}Puk^L5r+S0ehlC>xW*B+I)?g&-G-9B$TC9dk|NX@% z4f4&UCXM|vnAsEWHso{HD8dM2MGYHeNXbI=F%$e=@l~F;y;@geDt|1&4=sRtI~vQw zE0F&=v$YTSiVYE;ng{bajkrt5^a&%fXd_ubTlKf^oQBb#IHHkm_l}kzJ+ifu5{i;g;35>ji$px za9tJbXnr&`iSX|lEreaPKE+8E>|x*1FO%#+Hjdjk(>&nKD^3XSnP=9W`MvisO}ADB z+UzpB!KFCCbzWoM1JbwXp>1wQxeh+<@b}cHZMZ9*P@sT)<(lqIYg|rGgjF)(UvVch zSztq#y)P|F0V;V}s3hZI+y{aT=aYZ>YGyE@&%tc`=8Tqn$oas$6my@ZJJz8Gov@(Y!&3wVjxI8%$bF8wUh}-_!eBz zdR%^c+CpNqDJb@1h*nsnW*Df~9NvodPxUbp={C(^jaM8)T;d)KJ@a>8s(-;o%?Ey! zVeww~U_0~gx=Ag7&Iz@E4Rl{n`U< zt%=sdpIvH73vbovveKH1Y1;*+Gf|ryYuzW)C_28UX$BHP^r$Erk_ls8c4*>7sr`!i z07Kb{*}r!TExDZ9 z*vQ@GIysnQ81C$?Ok8p)S7_vx7=Z!iV8D30?)&X_CLdv)vLbuykFbm2pT$R*vEo`t z!ga!$!rH>7$rT8b){BarF$nJ`PbH(vIk%Mdx@UVUcz=i+Y^FD4c^nno;8k2np5WBT zHZrK2!g>kzlUZoprtN?O9jGg##fYg7Cpa)=bY(R05OK+kYbNH8RUG-*9KQ6j}`OG;v9ADQQB|>?Y3ktj4H|{pxF5I??2o2d1>K zWdjw~-xnBJpwDL$L0Z>yqO)o$Hj7smF$1G{)en9(MI7f9cUK$E9U@uz&CGJH(i%`9 z5iKj1ZqvQ$j1UixAZ-zkSHLBvk%w@8BU>2kos~8rbW*`zFn;Hw*2u50Vn@#BJ8ghh z$6c_X!O98qiU^~DVzHk8skp}k+JrsKbu8nV+o`4W5gYex(k7cS9PHB(q#gn=4Rbc= zpbpN=2dT5f85u0ybo6%2@rAwKDZ0anceWybI6?gt(UZNSTqW_N-3`dF4g z6QtF$@csl=k_A~jpcUR9fKAgFZMi^DmXB;Rzbe8jWkHj(JDSJYn!8l;W(2yl$ooQx1z`MY0QCTU;;>6OC$vPho7ERo?`a zFyW)}@DS`^iVp=LKe-GsjuJ%!KS9H~%R8Ftqr5w<;7IwfI7VxDh%N*KD#x(QlYke? zU@rKtY?3ne&Dy=trkP9wBDH~q1Bq_GGOFbnmru`A^p}H_a8CSh7ooG_E>dQ)y4aW& zgO|uPF3cKDQn)$fr}ta&Lmf+rQa!=xT+hxW+=q>gxQOFmaT7!XzV$3oz{o(zx*fi#tl%moFc?4TzO=D4ehL%_u9k9vb z@P32*I)%XA#H=NrG@+#Kw2lZ;WGfB5&$pxm= zh~v07xq8G96$$h{Sgle0f_LWclo!cwh^RJ$ zA2k{>qIx?JiQ28;xLi>Mhm-&gotr9noK2W}L~Ml!OC(x_O`Qb$M2o#1kNvu_kpbHP zLeDl3dYnM$2@ZFbhSFoit?f$!f$*J7DjB zUla6o(k)h9yL7-|gQqaBV3>cx0%>`Q_)Xq5ag!P{oNRjj$e`C{$dHvr;YQRM1{bT+ zMc7bN@qakF^0=h3zwMHHic4i_YBSbYSvh59xj;>el~c5nE6wyPQxn`pWeL~HF{f$F zX%WUYOH(Q{To4dTXLORvg;EsAjFgb8h+J9U)BDG{+z>Jgw<} zE6)5})b&m;2_;ln)U(WRf)UH6aR$2pHCTM5Y{8t2c#4AqtHuUhQeEI54|mM!bDYVC zQa_`U9%G>2=tX9X{4kV>QX}ddTq)xsUu0xgd7G3@R&R#!GZDg!OgTwpkgP zH6DSMADO)2#M}R6CEu#ZvWz{T$WWVu29*X-R>pMfWoBnbNUBw#(>YM$%{akwWQ5Xw zm^b{;>whLJv2SlN&pn+kt=gyaQo9}n}ivMzd? zs`l+zLq}qbN901BG-`KKCB9LTY1n+h?~OLDY`ZQI@(IA>oP}40(+TLhu&2Q0w$YIq z?{e~o=QAzY%};8L7?@l~pZ5tFkC589?arZ){I=Tb0!WDG*2IS&OFG8lW1~(J7T3A< z+ah<#EYlI^`M(3m5EV`NLeBCL4!RDRi|(m)z&Tw4rD$kl^yH|r)qBSFdR1k7?&DpX z4E@nRg#CHnICVHgwx62g##>MCvjo!82DoR}?=+kCmOR~z&UO%9=`e%IB+)OvtRV-? zsGZlnjISK~<;6;30-H!au)j&A zK2w;5iDj-34h5`|kY?G(Es#f5oc}b9WV|m-9tmvekcTEa>JW0{xu)@s>JE8MvV&t6>x`06tMFmj0#N)odCgIo(K0>%M*!r>LEf_&kpV7+>Huz}2-5uX7YF zK}N|c9Et@3&H2;fl3CA9UN{Bci-(Ta&wC_Ch2an(Q3s_WtB(vW(;?H7dHi0rP~N>w z>@wJt8s9|1KX+!$rUPFkQ&IYYDpE*@KMDswxSL{A-p;RUB9)~gS#Op}>0Ehk=&;16 zacb74sjiRUNq#k`EDjvhO@*bC!qy#^?KSR^fdj}me|F3(A&#o@;t`14-N9Liy(d3! zhQ5A-Wq*J+2BXy%>0-ynSRkca}2hAZGO{&a(Mn)1{Fq&lNy?5oSN!(lAU8u z=nK_m(+El5bBFMu7guS~vNLC>=r_5!%ix|!ucl3`)=v8u4llFv0uQw+4m6c!Ra!IB zx&WE_qkxB)$o(ZuvbY?BvhZWSFF*afWVS1^7=;WuO%CmnP%=}ecT0R#9@i@*oUF{z z1?*K+Wff!<5tF@Hms_W1E*d?mE*^le1N<2e-3{!Bf=11HoAcY#p)k#}nflv~$lYU7 zrNze*E+!*&9Ah?pK+@*YstM!CwPj;s%=y?OE64#X`jrmDcAXQPXSKnQxx(N{qz@K` z_W?yb_w@}i{v46w1jHL6+IjT*wptF7*r>^N??}9zHEy87RgilmI(Z8*uM_Wgfj%)o zbQfwwYHl4z?B1l}(DR~<+Et!t%x}}yIK5&zXitlZ4nzcK4kr4m=dx1{R-B zyT93*$BLsoK}@WoxB4Jelgs5W?yFA%e;~)+7$wV*1FvA#GDQ1&dRkG}QT6@AZ{fJg z;OK2*#OAtTumjnp%WkSz7(KBn> zp6s#=Xh&Dfyd8W>u1Fz7y~Z>S)A(sRwfeB}ltt6{ zwOU@**?u^!Y5Z_-NA*C)s0(|iXt&#Vr`hjp}1ssPMa%E_MT$J z)P1sOstczq9z8JsoMS#c-Lfl(GLC-Mk>sIeK|vbi`BhDgWeMEk3Eg=IX2#dy_Hg3( z3yKNxUgsM7e7_^X=Nxo@v4h!;NaJ%~e8KS6g4*QVD?&-;B#~f^zH4YLi18ljEly7k z_DTh#d$k!;S+!1RVEgf`&ZMgX5ignf%t83A6L{XqG@wy{P|5zjKLKHjHTSyDGkZjq|wp{ob z?A;1_DnQsF6P}?+Z(YGu*(-D4>vSb&j2BVivyi4@WNx9uOGI(m3DgX*mwzQ7#~)o;@Da_` zV$#QRsW3;pb2M2MHwk2!5Ahb;9kbpMYvn1UO(~Oe`O7U8^{P)I#7nx*Ee)AonQtasmg- z{pWxlWX^_*d@$w00MWJBg~YAJ2=gXMs(so-%7W4#Js-_L7a8jSulF$UhSA zd=|7>F|(7?B*&#&MQ#^G7NWnklV#Aj=1OuN`zraQSHkOW|EGh(Tcevd2{i{2cql;@ zW0+Sbx@V^geyv_+4j%7={%di-@Z{uHPc~Xq5wiRu$^rXWu~2Wz)GFx^XEv1mv;OY;=z#egM(v@5pf--7N}cTQgZ-0tjbI zqb|-z-Wz7sEP$5VN9!Xb*O^2IT=uJX(Cq0Ly&tcxO=(Mfzz*(nMs8R0k;(4WK?`wX z$GSR_gcFMhR0LA1V2q8nXP8-g|`R8ZU0#?D^PH z*!gHlK7!c&3R5)P^rk|xYaCqy$1jtx}WcBTp_Iv|aiL>xrrpy3YL;1i;M%{A1|5bz5oZ`c~+LVxFy z*BALje$rjruG<1{ABj7-;7Z3f_$VfN9!bp2#$56L@m&%zep8bNn8WVXH$xAh+qZ|F zk*H2Irygh;XS%oBNwZX&i?e)d=RK%754a`RAUXlXP)k zcYt65>RJc5-P2TR{LhX#O@AfXVrXy{c2Wk5qL4M;d_wifJ>K>}i=IdV@90dxFDlyC zdo|kN<{!o+_k?+X_a@f~JJSp%jB7*XMu(SO?!S#aP$h5TfqWg{?_#R&i$R{>>mIVT zeP+0^Z6GwdIc?Z~lOxK3U44<}3JTY3O>VwaB60u)XqAv!Cdd}d>Dv{OG1aKMQUzqI zID7w>P%rS;%8p@v>Ue5$kLU!Iep%XWZZ_Q^u2oeszCj>_GORx#FJ9d`WK8_{MrJdU9(B zZ~=HvxnCWft|{RIVYSBrw$dO8V71v;)6O|TYX&|rCJq|86qCJ4ca=T%BsN+oMfF4kPAc6A+mq1i<*%9$go8n4;v$X8@ax$KQ$3uy!B;47NBHt z9qX|z*5C%y4(j3AG#<~P4#WJTps3mQhNL4>rnp$8e~c1uK`QZtmce>m|E+Iz>*FQX zqMlj{C;dz*C&uz7+vOzqIB>L8+&01Ls(twdQOG!(kcQ7|7>Jkn;$gT}50%H?reBC6 zkGTmuv3g79G-l)I<@6p`ptwvQL$}){3U_}C;}aHoNQ08yDFcq|9rHR`axPYm!2V7A zxV5R2b913__x!uv&^^tS8CybHqfyQ6n@v@D}X+91hE5xT7MUmA< zQ6BoOc7XNG)!iF4wUy#@QDjwiS2>xm!mvcwn~XUaxZxWd=ya*l4?w3Eq8Nt9SE#Tj zG=gn`*HGabPz=9W{=t+f?e!#7ZK&6sUSaToBTKu&HzRX&*Py@L5QiLb+4*;%HoItj zqxgCS!Ge~~RN{aWakh}7dSC7X9A>D+NKM`p0+@P?d^K9ytp(UruEH~QJTW;j%eatn z*YN6|%lG=+I@e<+G-Z)5$C{a`35SM7L3k_B4>6LBv$x&cFH)??b-xAo)|ySbi)+(G z$R!t1c4f`H`LXRp;ianvYUjUkc~QaN`{iES#CvX=h&bHO!f$|V)szCC} zDfz?tIX^<{^LpKE@Y^x}j&PYF+Reakv4<1^v?G#^+ zBY>r<{fG8Ck6BY;Xa4$p#G9sz2a*&0z7|CVkFORE^++Xyv20UjX1gLe(TL2G4iM$X zj^62tyI`zWU@Houa+^blb2~7&g-rFs6CgP0Gg}yyoBbp4K_``EuXsql9sw=w#_)?> z`(Zv`(nU#E5pC$~?)j9a#=DAkxo+OwK>Pgm-d}DLTk0p`;RiqGI9LM92>YfNtYEtzL=yO^`Kf$!m@GfTy7lH|dY&vHPV_W<8TSzA+v-^Wix!~UJ+7oI zd?_jr{3Q;Vd%l<7I#BMylL?ZiKLEG)$YeC+SG3j7f+=gWWidOmw-lg~WIC`pXtkx+ z!;DBPp6jPH70cx!-GLG&?>nBH$fzsMdY83&uH6MGd7=CfM4`@Cm`w}BGL`=BQpKLK zGArPI>y5L0DZPMwmsb5Pyh;p5O4plD%O%0-NQC{%vOM$~&74wlw7l!2t>Uiw-y|p^ zJpG#jq@w$A1urtDG2*^PL+;m!tA=w;C1`8xBgLXm`NO0c3;6P<$*}z4w6q1lvCNdr zjnqd#f$2y;YLqA51L!vN4(y=voEJ-VZG&N{kS4&0Gxejzs47*GXGh?KmbT_B&_eAL z8kX{VD*OlJ8|1*S{20Z(MVadMHk&>z*}d6#X2%NhvXJ|u_$_cNy9gdyo7t4~mWSV{T==7^O_|)}sa;aq>1c6>f(%P5P0)LFq>Ks&CXm4MB)3 zfG}(-w4=hc&}%pR^3!MUMdhwVvgn^FXB=Ki^L+Y6vfXgS>1bjwyh0W3Koz{v@>dhu zTQ`sot{{J>OAeAoiC+(Rey~B;DpuSEus*S2vQ1+u9J)p65WU;_esjb3BSU33#4!Q5 zdrNgqLuF^g_{|xkCZ0zX)YoFahh8i%;mlJ;N0uTBX^)d%`~dB=i_zr}&XS7NN8$K! z^D@hi==PFCk0CAe>SmW_DeYkP#G;0$`iaWwLct-jHUg-3;ar6;>ZmJDK3)U~R34vb z$vv*BV$opAUrR31?HPB8@L4#a5`?_okTx}dqW=SD@@ z@Ns?Hl+{PC4p4+^pY?kgwW=-t?ZJ=QA{OB0=bRy*0o1#djv_a9NbMAWzD`35P8xfy zBgd3H)1>SJW*@e|>y2_YWd+#loWfI9r@WYcE*!IK*c5DAK z_5uCd)8eFl&)W+WNirEvB-lcP2L{PZ?qKJ%UKVzE$kX9IFTxR+j| ze!dW@*wQ+qgwEcN*54PGoM=i-1ByQOgTv_RLhT51DZOic7>aDcQx-64bsb&Mt^~ek zk)N-kyG#5!1KR?`xQTJ6vh3aKlJr}cKNho3=#gj4r~P;VrEB)M!-p!1Dh>~* zG4u8WpYgtDRv(qzqwCVgHzntK)h@sqFV|MD5svbsI>O@H3MG)~;uzf#*xk+RnI~@S z3zCX%`J`JR?40l@Wd1XyJNvgG7%Ir|3V*)hU0rDTa@rAoUpKT_b1)~gskAlG6kRiY ztWC0oL0m2TTwazx95VecRFV;+o7t|5B!tzW*?!5(*;Jonxu2@H>ln}(Wz4n@yuD26 zsRTkwU3H`*PE@+qmJ%*inhL$uY5|Dvy) z&s#6bSd5#mZ-w04%G8eJeR`~o>uynRKSY~U^Z*3kIunpgnexXAK(bIgoFj~J6)ymf zlMg7I4!Wsx1ot-10dRAhtJq+#n`+@IaD~i1t=yAv)4kq+m+XEXS}l$#mm1eNQd|w^ zin~khcKH+=``-@G0dmrMG*Y><*5YGg2V#=^b}?;3iLbgS(GBz4+izpA^wCI)!6f#G zBHpXr_)hKr;whPwB|j(5LbrQO5DjY_jlRN8zs@Mt{PRN{t>;4i{eOffue088KN*;SMS_8? z&(b;Qb#VCxXvLtj|LQKevxc(Sn0*0?7(aQK4xqHVWWz_<-)M2);>n$typ%^%M7LZ zGnh7JHtjF&`q(-HxO0&(aoh@N_YzygWJ$ZTKydL@q~}B?dsX4^{B-~cjM~stiLwx% zE=Q9$IvSk;xFJghPz-gh#198Bo>oj{(k9{`gTI^vQK2LY-Q~}hNDkl*5mGqn4q^@> z+4ms&uoG|b@o3$}*_=pqu)FTJ7Y#p#)OUuJQ-^cU+XJnY!IOu+@L;{&iJWPKMEN#LfqUSfUFiS9GYYJTA+ZDTPg1?&o zJNe8kd>(535KY_$_lshhZHb)D)6cD6GK&!>bbI08Iiv}?MsaIhq57CnkpQo#8)JGQ zdj>1>rRQY5^kHaAkU>odL8YmxPcEJqM3gT<#$I~$YjR>-o3$}~?7XZ)-jZm;DDN2% zt#?E%9mQ4na=<#DXd80BlgY9&s(di9ru4f~-X6kt8n1G>6*@>J3|#bf$U2$car=Ausq?gLRZ~JR=0Q`3XiSFkm0Y#FnX-fo=FZO=WYrBJKi zzy)Ct#Sok5-DWt3F&>3BE{@*TGxSCEiJH~?d2)>@wq6aTf-qKZgB4M(uGhJRG-?>4 z!YH=P9G-h0WPoxuX0&mALS>Vvmt%M53<&6WcFepb>&8b#8by`$-_s56T+Ru@k+4e* zX90+?9w#)jaN5LnhJE_zGV;N(mpMGUb3}LntQfeBrdAx|h=I^l+2JpUPM}79A=tHr zdE_gIee)iKu4}-&CGS?|q%z88&nE;fzJPg~^>^$AeyoD!OlK1i@$)r63fk$WXuuXJX1vkmr9nAC4BUb%QU-PG25#rQiW9m1 zzQhwG3?&6V))-gIb@`IJ$FJQ=7W}qStdNo4nX^x*ek(RURM;LULW{;HjUa6N%Nh_n z%Y^R;yW@bqTKNfYuAUbGwb=9M*zps* zK-W~Z!)UntgC3FwASLcF)(w;93)X~?7wou7V%ohZ+Li#~z20Kyb~^blH-lYcU=%M5|spkojXhP`|hca81XsqzajO} zPB`UXlK^9p1Z3O`7h$iFog7Rr1}=C{tFjMhwF_L3FEUUYN9b^k)|q$u^5>V*B4pMtjhn#` zu9R1cUl@%3$+EE3W_bFC@}Bnfd@O*P=l~kZD~Km2%B(2+^%jf{QNQj3@Rj)kDAyHk z*yFHyNtq-Cdo1|sFhd7zgfnBRnZQSHv?r&v`l6n$%F!K#7F_mQ$Ry^b5RTXNV0;`! zj^q>S0e1R0(+bcowldY?>vX!E;%@fED9LrB$bx@Yv7Lfo>U4_T>hX3(Q%o4XT^@APk|{ff6xNp@fV0#C zs-wa&kgc0vN|EZzR%~9yTlE{`r#YEosj^`&KDnp7k0)>W#|(X+Om(KhsZe`-4AH+S z#x+TjvbkQR+74v-c~aLep1@|g4^09c*8<$>A%rT6V+(LGTUfte+4+(0JyL&n5p-vF zOtT|+{A+rnHnwOuqklo{Px8N!$*osni-$8dd(sXl&&F{Z5|&SxHML>u0IntN7k?J> z%Gidcwk(f=>V(g_|DDPuTc794xpO+F_q46Uckt*V1Z3UaatGY-H5c6Q(WM~Sg0$*M zXoh6f<}1&a2}iF5gGH?weJZ#(m7>ylxWA`8g7~VDYt2-7gy(x&DOLUfeCVn2c?aZ9 z{SU5Y!)g9cLOE71d_K>88CEV3zVHcP{d)$}3v{nFK=)b$bgxH?-qVJt^7sYDNc}B2 zz>DI2Xtr1a1?kzC3c(qCo(-B6nh<}{JIRhS1xuL z;19Urq`!m_YMtvtY{*UbYvW8=k7l@uV)SJ0l)J<`xM^l|yY4$Uumv4URUaNT`oQ?t z(c9)+zY$|x50T+Oux}yeB*~STDRW&2O4XOm1cGNe)hG^Jt2}Hi$Dx z>#4)4MhBdr=PYddIxxiXBFYS_yXz~uFsxG9h0GsfR@!g?!YcNUcE(gP4Fz1Ip6Icz zNv>RzV8XAR?>7f|*cU2J7!n+W^$ZJWActaDgp={{#rT0N%?4hQe!dn8i}ab?D4bG` zb1u*F!lLI_fqIsLwtJC3oc-PoCzUvYFHTD`V-Muv-)em9%%^+Al*!zITt?WwdkcSWp>od=Ifqcv*n6Za?2g*a$ z&cO~jlH-9>%NgRh=LYGc?K(B&9f_Dj3a5t4#OwQ~!kc}*L7{EyYUkI1?_NpD0t|H^ z61*4;Z@%^v|2_SF@luANum(bpwaOpc`7uR~`_L2m(-n>Pa>UlLS*Q8SdNcD6%AH|5ZXU$IZ_JKlA1dI4AIDzT(PvO*6n1Ek(5Z zC&a!3aUiLJS6xd%eQ4jy)DaWlSP#Awh-Hc?&G2BDrb+JM2Np(=*>*(TPK>7s5PS!K zv^^@x^mv^=oblWiAnh#S08$wl4URhii2SkW!r_c`cS9|k>8?mT&oNxtCq{g15rGh( z?0Xc@(nY>jz!GthX&WlVnK82ke*b;xK5aIAOkt~L2l+?1+df|uXAs3 z#3^B(9 za5Qay2V*V$!&XO;GfpI3YQ|LGxeBfC7OX28&V6f3Fddi8@#Jk^9Ch-Q8w{ShTbJu~ zjG;r`JG8^t}<<3Zlhb0P0f;Q097GH%%;)W@~D<1txJ%XVo@ zvylYXy0Mr=vHK`pEl?IcdAQG=wpSK=us}Mfk@o=q8~bAgSO7xr_Cc2}bIedRDLv@r zrL(@1#W_o2PwHun;<4G7S5yG2kS4nk9}Z5(I`Hc>>JDb2{&(N>5vyOx?i0<=>CNBR zDV((-`SofXR2S)*^F8tDOt=@%>tP$qj;y{|!dXDU%4dtyNrFwPtgD8C!4ltve)lr5 z_OPc1GZWg~9sHV#9&DOINW#(0GnRx*y$7=+YBE%A5>hlY<|D>WG#kxBD%i{!e^v=u z?FWJz{-u<4?`}=x4x-!L1KyGrBT3c1fHaI9``5igu{mX&3U#1cHKKgc+VSpI05!%> zt_x|HQ#yrI=)nG#9IAHYBP9C7;CaOpVG}~iYwRsk`Xe>gvO zc**6eq5iY>Q!zuJeCQm~tjWH`y>&lzbgkH2vOYXPm&T3bx+fBcw5B3!!tpkd!PUN4}O10Qr*)sDJ+>x|_91wDCssjLvTG!-C z0-k%mVL}^PIF-fpcgm?C;)TIDgT3MT=uShC;%(NTbLHh(LH{V)f`c8%UILGY^(xy- zWNj@=bvY+6^(GwB$SckQ{A2Zfj0BNR9O8x@&s3!s0&h8$TGPX-&ZP7Z_{Q|6%~& z%%lDVv>*-W@%+J-WsD9#S&)Z0LxdhHker#N{fHPH8NDW9#FIaqgj!}YY6ao>}Et8+)7l}z8bV&=KAk9O_;HTvVW zv3|FFF@=E*(@&wbkto(G-Kt9bi1>girg$S{>L0D!1oO`H26E{=5~4fcsQPQg5e;8- zfY_0BoLy|ZuaJ*k5WQ7P$;E>H98yZ}ufeM2;NY$&zk&71^=(ipzeDh6YU~e(&^rk~ zz0Sf}p&n_8>g}QU_MTc!vMurVLDJBF^8Szyr=iiCT{&CCsE*SzwwpBip3m>qg+5nZ z3w#8*sVD-n&8G}3sW}ng#K6gKu;ty#KQ?f!5<+(Vro0-9m0ga@uRapW?@-i|VmxU- zXTQ=w4I4uC1j2q#W3tVNd){fJXG%TH&I=U3ED zbq9!D1ITy%byjl4YC_6@(vL18aYs?^v2a`o1)kMWBaqaJxxo3NgI zUR7Rz7r>J@p-(yF#ysqXdnv8}M_~wYB8STdcSHODMTQsgS7(d?*imE8>O0i0`bdT& z_p;t?{qKJe>UsU^{qXKm_xYuxSlO_GYP_SAf3LefSgx@{?wyx@LhaI=Dy9GHXT%&^ zu2*1j%}_MDv!)$;EVtP-q>7DyXG`8b_P?AC`~>nx6WV?~ zZKouqoVm;b#n9@u5)P05GD^i(etkg+5`L!hse#96nWn_co%tkdO1MaM@--pG)m==N z>2!-?cgzpVp+|O=iXzS(R=YjHp{|vtTRVw~^$iWF98Br9VpL`BNFhwk*GJoo?ivf6 zf+j5*XJn)wVk$brDrdyC~F{Byx|-BBV+-#;@@&~hgE!KK`rz)$RSHoKHNNW8m`E> zva-c#Vy^N*KZKecEw>*{0(|-6vH_jG6WZbCH{vk*6F8U~+I%yPy_~#PwyUzB48u91 zyLFYkpI>+$(&x~#En`=_0Hl4dJLJ+k$+@@_7Z5*7f%{gGkn7fw`z83mY02r_V2Ud; zLf$tIoen}_HpVJe4U3OAdTPmV(Cgq}2T}F(I}{glE@VE5Fm}4vSTLNuQ~^+ZN+_Oy z9#AeM7S-P!g!ava=D;UQ@i!3khsx|Vto*^|NDEHATx3EY`Y_Lg)(nm|EuP5zQ}Nn{ zet5Jzv4as$Jmy019Tx?0eOIN8x_U;9)fcr3;-g<$LB2VPNC)(Tj0=J7UGYNrAYp%L zqTUS|F5^|^#l2-+@{)M>bF!_FF=N*}r?;*yy9xnrfnffcEppFTd;^c4c>8Bl_^F_> z0t7*bzq?9Q1N>Nop?OG9E2d1q;PhyKHaF9?U8>i)2x&(VVv>q=MVSW3z**-0+*=7D ze18Cz)?^cYsWU&}iIYFB5F`G?$G?>SD}Pb#Asi|*7rPIPF1PVxNDZ3_KBPe664pbS zpHi&O;KYEfZ>Kvd0NFUJ*@AzcsPYmXtSfU-SL|ifPn)B8!+&PcoB&pRYK9js%c|uH z5-YhmP)80r(VVe`|0*lb=Liae7-VF4Yumxbi~};Nh-5cp z_~uyBh7cyr&KK|qW>Wq(kf1sZa%LkO^(tDo8}6B;a4a~F)&E&Rz1fvrZ1)M*fY{Az zSPur%_SzYLR$#V?1Jb>G7XmVc8z57-39q2d0hwYDkSRt0nZn9ql5Q=Sso!{(r#`2f z{FRVWdJSvGf1KSIB?$}gOb=u+XXIgGc_aCs2-srWzTV=B5>FjlJ|_6m^_`9IN?K%- zhx9fmDBp4t;1;U12_A&(x}zftVvmd+({kmZl#}8tA1=O@l48lauNhgw4Ls-hVJ#f< z8lhh>`ePNC--0(GtsRgoIC_3*2xlk-tj!4?+7f6gN7QO*+&%VyoL|xJqq zzs9}xh@*&yw>P>z12p5bl^^Ku{Zu>e6*C73FNDzRo0ys9#J<|8tZ)Ey)xHmhe&RQ$ zk_cWPr~_6Bd0v+I)j&PU5?@80^oK;gO*7^MOk<*F$F177-zAK_#_f8}2l4J%{qzh( zh!p&7t0QM)a26D-vM`uCHmOaq6Z;SFTg`CU92aPLf{(!(|5*8Hi*A`*K!=LmI8Mf2 z?xFj)-dO~Wf1BENO@}pR2q_*|%x_oSr@d-83~LrSLV8A=9oCYX0UMm^g(d(mQQBA( zcnlSeAXp5b7SfK-OQ)gcjR98{d194@B|Lss3ft1~rD|BT9x|OY4%wq~JIc#abBmg0 z%Ah}n47t#L)rg{#uxP^WPtJjb{6}-g65!3RwXbclH7S41OLnItU5n`$&j;TN2kYuB zP$ z{vG)~b(nmnc$mC6Z#JEA#N18DW)eOngenhG>?Ln2VanXB*6;*%P#aBaKRkoPK z+0=QNjm`dbw}|m86fvndXNtP^Z+UPBy^m~P3Lba90+0L5wT*znnFttDtDazU#gqhO zKOa(jqVQzrIDd3rVPhwL4HGeI>p506wnxNRk^+iZ(FBS~5q{AIti=Hiky^M`1Kg-&F{%feWS+2Azr4fqJeZ zgL*DSX~+Xq&K*^|C0DiW>QZlDHmGkpy=N4HZghFiSPxnaeBePnP1zVx;J)8iyvsdD zoHz>oFvJkr+))V9zy;I10MzVk-WTn_YQT<4s92#PtBSh%=KceS6LqF*ht)X_(&nq6 zf~wd2@B|wNatnQeRf8J({&G*+rRbxMrf;M-fd<5eR!6ygs7z0zFx z1Sv~w2|}QLQ|&zu4NEU2BLS`ZSJ+E4dM<(R?~dLEUR13?2TkTMHaKwVv%3~cQhI_J z79tNpws&VD`{yW_P#P#R#cLaV5qZYH#ISO@ZU*|vVzI27#CR8!Mvyc_XL#IHB6-u(5^VTX;EPF~;o_lgJi zPHuj0Dp|eq=!K%83un&wzup|(@$AmC4a|u@4jdc2|Loa}TY1LDy2LZP&%8>~(bMK4 z~HgtTJTVq>>7p( z?eC9A70%>OD{6Ih1*pI0!ic*G_sFq7=%dXLT z;N3MkcWdnZp<#~#{Mx78&2)&~PyW5j+V7a`KHsT+Yz5=nMd3Uu%_*V$3?HA=|ITqV zv~<%aa<;EVp88??|pn zFe;qtmDxzA$@$Vle33OJDl|@>b!s)^kU)Kk*Kllf?;;7RMqOmTDq1>G8uU9uT3|k( zbJmglliqW1q9E&N3ctC4zV+zqa2r%in^Y6c%kUgZt)c~5tD^V8W{dGL2ME}5v>}TZ z)lU>>^Tzu1u$v?ZD~qY3dD*FSMNq(G+YwOZWa@D;L4C+jk)7bRK~nZm)FVR^end0` zWBD(qh@n1?v^z6z9ylT6^Hus|ys(EkpPgcBrz)Iz88nG=6|KTn#iBx{h?C>O9Wd(n zZ4H@6Kg=&LbE4gfBjHy@OULS5CO@p}SDxm%91q5?Vg+^8@X-Yf&KnIIy=yh)u-sj~ zqp7zcbX^`pdf15=>S80pjQ3r+J9qd*XtlFv)hHv?Rzj~08Q4}J3wifz6|JN&Cw4!f z`6eeO3`Vb2sQn5M$FzS;TGJnVt}Sz{SFWcoo}8~a#6QdH>sS17{=1N%zIXaRpy4?t zOtGfy4XsX}aO%$R%-Drs)ATuzD&#Umc|^*#DWE){2V3*cHL%g&5n0{0Dt9;ay7W3t zMy%{l+b9_+jxuv~89j69e$)XFgA7$Nonr3}q7>gnOZ$+ZddsS43}^P|W3{(S3z#)( zpYuQHijqt4)zS!+I|`KQlRD@kBTk(U=gfKQmNk+yR!YMATlO!P#MNju1YQY^$*y*; zS91LebI#hS)_t%0HK6M8N@D3vY4k35r|)`g?YBwAjItJJ?WUGY&IeY}_>Rb^@e20O zgn}X01}aq2uNmc7g9gnv{FdA%lH^v=DsyL4Uk}3DRY(X~Kw(Ux{({n~qeQ2z6^~|4 zm3c=iIDZMRF{D3N(ZEc)H?vUc!p5*vr0*o|1KQmc&IW-~LQEbc8z5@W^7to|svw?S zzw*`20?xxuQJ4+to^UP2UgA}wtJ%W~R6T{m3ow2!*bHytBTeN4rZqi?x3>BQv@pX1 zwNkfDg)A*ARKD2{69UNkUGTO9(HTW-6)|5!x=tw46EMs4a zN1bAQLD`Y9&(Z=BgN!xg@~|hyGOF`;&M#`LC!0t@k8`qCONM6^I7eFgEmi0Z=)N>c zRK0e}h*i1dQ#rH$9MVcAN%w9PFplW?Hwwy*D(HM4VsnmS$1=&S;~~GUkvt7uM-Gt4 z`V|QyKf#*(b=p=N)NZ*i!-q&)8)q*m>CeRqoXLeZjjVm(m>;i}OOU?5CCpcH*X40) zkcV40_E@(6h_xRkTkKRkB(`g#VOr;2ea@!iZLVMm}_@(k#`VyR83iu z$o*>x)oY<{Q`POor$lyN>5gBqrdrx5&W-o#Lsrwi5>1HLn+gyh5c{8! z^g(PqbCQM|plHw1FJU5&aJJ#SVDp zvqSsi_yTEMoU{zZINWBhj=(A8cZ8@U7A%uQsl!GBBum_9>&qQ-S&w zzW^Xsj0PR)ZE^C5@uiBHp*9_H(JECTE??D_T8o#lB7s09m2sY-u*RG!L*fpm-4{0c zt4iNmo=h?t7LI?l7+<~#94Wk`0JV(q`DuZu{ zfw~H3=&PdDOoo$T{OWZ*s!Hcor6VDvjMFbAtSP4g#8GWuu_vy==(U>i$00++DUsz| z_@y=+USKyaJlKT8XSvi545B=Ri!UyX5z{pYg8 z`BR3bDd#J-2e;PC|JE-4vS*>BERcLL$++r0+U09nyTR@W3j2g}J9&g`upB>MoH}ST zPTb#wLnRf+=KSHkh7cdedcHCpG<)yLXu8z@$|u>xs%R#?!A2mL?&nbsDg0TIy;>d7 zK`LeNQbN6#3tD+8q}9tY{Bu!i|2G~k9tp;48vUb1Jo@o#UH(_4y|hyRR5iiVJ-0-trNHz`1_d zm2 zY<6PrlDA?JDvJH2vH1|+t1!pY#ak#SkV)G&^Atz4kI|Q(${HLd)7C&3D#O%Z3)OM4 zmZScIpAT@uUe2iKCUZs;t-pmf^$Er1D`Ux5L7u+kl+guh`||W_ zP8mbqySn6#AZ~{>O<5Tn#zU;eSqHzWLZseL@C&s1vH3Y+adPMtuiZ_aU1ep=9?Ft# z{>r(W*p0W6Lm7Yh_E-P(kYD%{sm6x$lb)u^2TeVL;JNhY!lDafIhI!v84GTq>{%2u zEZO!w%3^LYm%e~pdZ-r|mF8gI;<-9AV>$HWVxN(?doc!=Lk4THJ(q83$PzP6Da+vw z@0}T{96=;c)ueQj&xSz`u_hd*^{Cy5${qc$(Ak4ytVMAqFo|msZ^F3$!_M_N@a{ng~(Kr zw9qEXGD9^}nhdFEVMY^!!C;Kp@BJR1-`~H7$HU{yxo6IKp4aj`=k>aG?iuG3_P|>@ znEQF2zZ8aL+MOCZpQm}U+Wa!b>~^?590FV*ANmoFEbT|HzlPSC*U6DT%8@Hp#Yw+~ zn|a=BG}E5f$&$aO@YKR=ukkg9Jgpz|Fy3xLZ?{`T4QZ>Uw-pWZdhY;I-<*xbkxT=d z+5#Q_6^3=+@|_R}-Y87)6r~|W!;H5tKof~_hXB`l>smdJi@wm>R^Pme#_Y>2dhzMC z@pxIL37R1eCu>gBub!8*)#-JL53!^Kjp3wmPehIQEQzNyFhk)j^2%6@##d8HbnB$W zG3xbu66EFHDeFetHeN%P*r4T0ev)rj04_w>ad@@q)inMvNqyd$;#Jhoolo1;kEl#w z^gAKl35=SwFbDTnC50->6^GN-|LXidyvH}7jX7OC)soYn3m_JI#?oJ)%jWztU#jc6dfZ* z3F+S^Vs3@k;3kfyRrH-bUFY(+Gowd3ct=nDV5$wHmkigh=tP!J*eXkvEvDz~^d!9?~t(o4$U!hr81XSz|?x(L}>n*1wXU3kS#FR8wNI0DG)GS0Am{ zk5-ruSp>#CH*5B7+c8v!%L9MyTg#8YsR!YWEKY9x*xE3m;!~8)1X_23sU`)>L`HiX z=NQ};P)Ywq@)5c0)h9Xr__(%}>hX!V%Wj$m*TQZYyZd!#K3Y zd~I!uJo70^ZNhfh1YrAf;Yd?BVlngv5-sWsRv0!ZKEc;y_4bP3q18`q)ubi8B1!BD zkpbxGuVn}Ope{FTf9!xm_bRt@WM*J#2e)#&2s*HjU%LnXu?K%{51bT^)||IhvIW_d zH=lu&0y$hGo%tQ%sNGNN*M|h%7`A(tK$?F0L!B8)ByjCHTt;KI$8p>Z<1O_rm{(pqDheGqBBDc|L$U@ zc)!ZjI+>avBYDRj*ux45yHk-4{7JZYXy==dd0TIB;vJdu9hqtGR&m^hAF}RK$!=j* zmfESN)3N)yw8vA90yi+2K$c`KneOv*dvmlEuyl}3Uf=C5@uD4nC7i4@;Tet?KI=%cqEX0nP?2iSqn zKe=gle$<^Ppuh*7qBr$3*G<=Gko{Wg$97nuv^o);>HS&4o9!j2)bnwWLw^xq2H1af zDAU(b18muX_rM#ikjOh;ff}+E9R=Sa#UXp}7S|B#=`xDWt&b(B$op|9<%!-!(qbUo zFR$~s37M;h(%aHChJqf*uevP5w@F$F=?^%5dl-;1Lt)UZ7{kFiirHJPOryJ=wHYWD z&B~(*8xV^-6$kTZwa2o*l_h)DZ1W7sJJYr{Gyjq;q%*uL_skN~alT%*8LGe*Rfxr{ zdZBJ>9P`6=t;|Az|M18=Wy9#8RlhiZ8`}$spB)C&QQJG zZ~+Zz4%1g^W`{w{*_gi=*wBGpO>IS+6bGK&Zr;~DpfGQlB@fEM343Fu>~{QzQ+MXm zE7KMarJI=eHkqn9s`s&PgB6t2qA>2LI-bZql_^Iw=V{q;>l`^viI<*kWmfIX7q|{= zLJnI&BV(Cv(M#({zFpww0xM!|b7y_GiLJ9N6``%&IF$+CY@G4*b{04!>eEH9x3A1J z=JhVLPPv>=A5K*#J=QPYv^JE1sb44i1ihWMMI@)z*Pe8mgy6fOp zH_X3o+iq7d^3J4lribYth9)_B@T6``rY+-Hl3MOm?pC)V@a~ay!ALHMjS-RRHI#ZM zZ;RzucvC}vBFiL9xU{3->!-zcHIU%AB^Sz~xTcD4#&Y5>-VX5tp+m{iHviAtrdD*O z5vH9stUpr~&fF@hjt-VtcGU1CXJ&W9Za%+0-S?Fzo1gzVJePYW zvbAMu?NgrCyjza^wGz1$JFo=A&t~812UXwT{uMgikqI?OPd35&R-8Rn9Mn6t!p~W|6dp(&o}nHt$Ci=GAiLqO=y=mLZ9Zr}lO?E=T@0C*FJr_jS!@{W}$tTis9~2|rwHauq`|gFc~N6&wr*^+MwvhDsjc zHX7xTYg3(vf*#6Ks`I!`&o?}Lgl~LwWBNb??|J3)*lAqbmFXAXc%L3yh9Y6fT0w9t^Oh3Ph>ux_Bd}^ z@wAyRZF@>yy3X{sckr2pDY?Qk=9`k^i0-q#$swDL!2OH?n>^a6hjvHco_0D(qmNhc zi}!dBzB!#2ymsiy20uuBi19EDQX0BGKCH*qfTU-+EytI_*H1U9M4zi98GjWAC+kD_ zhYS$HX?AdGGiSf$A=_FRaoR(uRnb2Hhmmg{h+iukDtN*R(ID?#XD{DM1GqE9i)BpO!eWs z75THy*M){*v3(qc2Z2h{b(9(duwx5Itv&LxJWzDl>4#hSv>B?Q%~oLm+kMn~qVa)z z_ak+(cU)JP_V9$(@Pi2R@cJ7Yl%O}--O0KtCZ8@U5(T?diQqT1u9civR==r#c2x62 zCF0~Oa9o>COg7u&g{f;-ka0GE}zeU*0!HY^n#%_Dc zjM&;Jb@}vSmU4EqGL6%@k0tU5Q!(jNdzj6Bv)u+8YFVpB6sg~$~-G7 z(*tzW8+4s#jwpUtqItYcXO%Mh)lK*t`jlxNbbVH|A_g>il&tdHXu>~Jl@*1@EXLB+ z0#u3Ow?-6u9dKaO2&zPhmN~J3RoZt{+k{Vv$&RW_^Tg7FFpG$3JZ^RroT-JS{{nrb z!RfkVoF?8sO0HAr3ra-kKapANHo`I1L5gFRtxBb~iLmIJ5)Ef{kdlDxbi)2F+OK6I zSTCUmWeXqXa`&Bj}M1`88^Ggc^?2%#N{H2HCR(By~%_IKY6P}O@} znTAWNrX-l5S73kZ9M+ckuo^(OK=i+Df2f-Xv+LA|Qoj%Y;Oik)6Zs%&x!7&0xKM#8 zjjIBc1BR?7#KkDp2B^_`!MNl-pfgkw=!^-bDZJPRfKCZ03FJ(3>~AvJ)OAXTQN*LB z53xjWHYKr? zS0VCjfVJ}6PAwwxb_DB~Fsr^OnJ}4OG)kB=1N z>}UmO3D9UJw0Au=Q)k}_Y$j=+6E+jsXM@cw+V6?YG&^99&8+{L&JvkE)MwQz07dX# zYjRH{X4)PCt^@@w$7b3FFUDq)gB`G$fk#xanWzxZAt?lOXd4PThx#Ii)?m=D>#}m z!~0PdTe{;BDER|Vmj(cz%GeKFT^aJlK}M{t%{X-o{MGO$_BQ~yz>BDPTZ>vE?4Qh!gya#aP^80 zOVqp;z~$Wmhdwa_PpJ^ejJpP(tb7!hn zb|i@#DE4&+e4B{!@ZW0e-P(EF!~dCM3EP~O)p2tZ)(`@n^y;Fv0=9^6D8#OMOKH-j zzWAxGLk-{Z!_1JQX&DM0q1R-iujIu@tyqQz1s0)Zw$vwfVK=rng@pvF5))n?=tv4S z|ot*ZG6 zE(D>|(mH9U56e(3c1v5VQIhNvg2L(#?rOk`*S5hOY7rY_EWSM3mp+f%Km z5#<2xUP5tX=BqO7s*Jay_0+h=W%x!3G2tMA^J#N86GJG+m;)_^8negZ@<>ml(1o{=6`mE?qh8c@d)U-Zl=cRsWD>+DI|L$PLL#Bh za#@|!notvEg1U|!7_{pm&d7nJ!1Uaya=u32Ps0*gW|n_PlC(Y5b3|j~|4hJ)uXb9! zug`!jEe+b^+tk)(D5PcP0znDhXDZOQom>-&M$`2uvb+;O=GkK9(#EHSSWoBhFvSta zm&;5mjJ-`v_$D11eGJ>u{4B8!kkqU_N|C?jt_JUp>xfNw+jiZdbeJGsTot9 zUO}swRoU31W^@|Gttv45G@k>Bc{Nnl_p7w`?5@*&%`@X8-6Y@^=AL zIG2&^aM*9{kR&u5uRc<}UC(p^$&PCC2cX)r#cNAxSN&6`#X%o1AJ>F33hj_Z{4ikV z_Qv#`?U|)ORyaGf3jf#*y*iSuU6Beu8VGCBh#z8Cf1ikzPZXxvmSTGUO~u0Ie}^_N zh@W2EE~_}vA!ulq8PR_MRQT^5Ei37qQ|2C}y$WgnlydaI?k}t~KUa*plBXtxSfvKb zcc%uvx5udQ&s_z{ZJQB(xar;vLvOrFIl1B;!Fk-$H6uv);9f7V8xId#I%0lMw~l8^ zH|X%F2BMN`@h?22w4Gm&jO`K4d60_%RYW^xZ8k_@*I!oqw!Nv1Y!|4(uezzBQwM3L z?f(Vtv}lbuMR*-F9%^sU`0%#f;}I4FUpZ-eN}&~gz%EP8&ZPzS0L#9Zw!gIgI_Lpy zN7Cds?E`U|)<|#!K1d%pr|n+m{&E~-s`#Z-3(QtC9|JfN^5y*R{}0Y$e(z0?4%kLFd)v|g?m37RMy^MAg#bW@RsMQMRED?$ zui$svAvRaBt%oj%Pn8-N>;^YR>@eE=;j8L8UI^IFygASz;H!+hj=&$)ACjag@|kwL zO(ZO?rPLr_oC>^;{XWx;-Ww9ogm0sIygBl;9%Oqk_T>0={e8>oChd7k`0|zDuALcw z#!lzy#c7rd{Xr+zB9!wx95x-%1~f%8wW|jYGyGCVcl*he|K5qHjBs6;533Y1^he)y!?z0yp}D&-gj0Nc|s;iJqobh?0Hhn?I!B*}~%v=}L{SXRf-8A*&ZJq2t@ z9$slVQgUM1f=UKYd4VYet~P79`acV)c~gP)Y>P5IW!~Snw5~7No;>IFwB8(O(fn_- zGpO;gH(S9E2b@VONPAdn_G?$uE1K*ey?nqY6)Q)7sEIT8a1A=|v5Wpf+p?wPPpMjg zxDnVk8%?pdb-6hmjsSp3V1eTs(QDp&3?2YtLVw_WUh}^ZJ4P=cT7)vurHusf7jW-p{=Ar8>U#^^ z^um;K2;y(R)8=!V{u;gdm z*V!|h7tFfovf3b65LQG~I*;VL=$X=yWwX@(;W(E$>)et18h1ILkTx=ur^Z2n?Yjq% zyG+e>q#CRy|6`+c-Jy0d3QLa)T$fq#r!<-BFEIq$|tw%q6 z&O;2Go_{fIq7()A(JPFOp|wc1bO>f52i-@0xh!44HDs?tzKHcSd+U)#XJ9NsX}NZg zDSsXy0_yjIfRlwDeV${^9CRNud za+8|t)Qi-Wu2VJr3MRtcnV_}rgf?ICw_1;m>r~1G5Vx$nuSAn;C1&|5q8DZUGY!I_ zw%n9#Hmp>^VR_}??vQA5B{`_fTFxp(z$x(~Vzi10UmT=J1E)4+N8!DQDW&m zrzx}@`KGgoDCSpX=eI;Jb{%=kPzHe;N0}y@FVBiH1rIyeqjAfB^GZv+v|YguJU}2f z!cnAU&KhS$4T|1Uw&8_~Tt~8@MJD`Ka5hKUfaj9uZX*~o6%QlPS`Y&>REcSQD=7A4 zi6*Pm7iWp3m*ACLM|MEUCVW!!{7bhHw<0y7m>x{A$GiqTS)!Fp_?LqeXqjw)HEbq? zVh@S-vq~*9Q*FzmyrxgGN`)b+Cj5*NV5NiZV8Nd11!U3)LS-f%Ofy#K)<04jm|=*e zm+uA<@U#8dQKl0ntWsXOJC+`UTkbkiU#DEDEpunNQJMv>+(vHsfXRM&MzJrNJH{%t zJpyL3wM3C7V*u0)@H)~`hS&mxu;B2Kk?1Mhh0pdnd^=VtW+C`JcnAdNAFZ>ZD*yVk zN_BoHnD9-RV9-L60?mVp2H+xj|CL9D{V@cqf~%hEh*2egr~$%^miBKHd(^ZFt5i+2 z9!nSY7Tcg`Ep7j?O35WEEt;ts;O>mAA~7wc5rBK+3p6oc4Ky)j4mJfsb1WSy7>`P% zCmMt9e%uF&b+X0M10MldpDa?QWxnVGX@Va#Ai9ZYAiD1_>Ob3?O)QAcX^HDd%5g=S zN8LVFX?=r<>&Wo|5Zu?Bg5~N^J^1RwqU@-_uM7b0VKk~d%Ji!}#h!Ue7l`gAi0@0f zRKm1m=^!X(0_G-GDig&!J_E^(S^~*^mD+*1c3%WMW~l?LZlfYm?9m6n-I9XTK>$Gg zHVtswuS_iy{^@xxCXr4u0vU&6SF@wM=<6x=ylO+&k;YJP_3$Bp5ScY}x+QJ1-~JnzO5(+qq;vr9mw zz6qMZ>a2ipmX!c~<&%MO@@ZL7UT?Rsz@}9N7@Z8@Sh{58$waz~Auuk@eIRj>1+Z#t z1iqmFJf{iSz%pb)x~^1k@HTNq!T|Z7w%#FUnkZu}mhgh6KueVzV;Q3M@mk*AiFim1ywA1Vt=C3ydM+0a12I zmtqN=HgyyBE8u^bue4pM5o*Ats3Cz0#Ds6aP4Gv+#e1K!qdev?6#FUh7Ayf14|ewS&M-yRgnbXw`qe2QK*b1Fju+0 z8~KhLhH^o7@r$v9=Ff|WGY#h`_Cyd_6G{fuOxTfy6nnTq#g+OR53W5n_5EqWKGZ|8 z_j1yArQSIKa$NgWumtO)8YXPt6h)eA&q|h|PP(2e7556vsVl65cWpN;FyUI zKIJ^NRsY7WCew0`GD=PJ;hK4g@XjXX!B5UQZ7zPlxXeeV*MuUb-@&@UiyISaovMS- z8*gIe&9NX9WAfZJn#h$~4($a%_c&4PmwZzI1t9Vz-&8^2*1YDEqA=r0FysBX7hA)) zAWNC>C>EsXKz1_W(GgHMy$BTaS$iphjIFZFe^?+oZrq~Tgfz{quDB3UXEmAsauI$#L}$CY)&@>L5hRX_s}i5p}X zH6blyPB#JGuR#?*8Tvk2C;-woncNFL{Q|N(=?*?U>B9s4 z{)_-~swOF3&CZt*b+Cl`6_?LQYG=;40gL(uyeC9&`m*q^008WqCjXHJ}6yr^>hq-wcK%vppl`1#_+}rkU&1d^M17%PT(y(~6G;a-R}eUZmgxe(8UkHFRJOnw1sgzyjI1c~XB8=t^+bT3`hG2pKvobUoZ*K@ zwYT(-81l*iwcyey_JfU!U8z!#08eECJL3HUBjApv{{sJWL0;MxbT6IF&Yvg&)Yi5I zG>B0G1u%_4p%a)UdB-i}!?svr0%a{o^3Z{PDE^@E7}zug46GIlv`=vc1p?uv8&$Cw zn30`U>IXRfe~kv!W$RfCMdl(|8VjXNa}6hNiv#U}OqQgoVhPHdfKn-dB9=4({!wfM zJ`-Nz1(d=12YkH(OdtzPU`Z30fFdAOR~DFn+HWv{tfLaZTv=cOCfGHgpOJ-&4&Y*_ z3aI8TRJ()fWNvgKL3zo-Ahn>M!wVe-fk9ZOSvH5Eg}#=^%pW5WV8n1hn93&o_aZM6470 zNVKGh2(ZecbH4Z%+?7aJi-mB5`;Z%e{s=1op&SPG zL(m3={>7jGl-KouzeeV93Was;&R8uj;|aZR3>OE)q@r{e|pRDPJU3>LpTWoMAc5KB5 zq~VW5_{T^1-;wJ$T3_|3^uX*0@Q#@HFYqDb-Tu(490C2~dSSqYoxz6t^5Sm(b$hm! zvH!+?4+eLpBxH{VBPf3FGK{GK`=gb$)ogla3qC6FlwXAR)Ecx=v&>fe<{q#$syA_=;?_M(+E2}I^fRWtdQ?>7@wpN?g zf8yUr<9qCIt3Gwks968R+Uj?OpQexPs<<9Waz?*ziMIW)e(u0E5qbEY7_Qx1b9qR-ElA6NBW&^CQH0 zW-guIr7lRiviQS|8(X^kB%Ache5YbRwMU>Qi8fU*$UV2`U zb7^+-z~RS<1|sIa2Jg;(gF3b~q|e=QJ#SgkjAI5qrm>Ha1P_t07YocjKA*dqF4L#M`j6BQND zTQ)Nv`^I*z?{)Nalo{APqlX-L-VNOykyxC5|9X&e&i}#T1LMb!q(n~Zf2rw8IsR*} zpV6(5eG|>~`hO3JFtqjAwYfUBbHWg#vdW9qy|~7nP4snnJHO2+Mf$3kLQ1q@X~`K( z@Q#~DKcA}dtW0~a-aThqFUI?cX=?(PsV8dz_FxWY69!0WswG=D1_)XIEX0VmWT%ZY?=+ zK($YF;?TSIX&zdaz~2VVGn%*(XIrd>N1Gn|OX<(oM<#ERR)1sSKhma9zAk*_N zcbP@%31Xwq{ll~m*Sa?D{5yX9VzLFUOQX9hFimOTHt#gaP_*(gXT)}FaY-VE?s^HvEgeZBaowjVtdZvI zvM3j0jcp876!V><-p0U9+ffFZZ)rswk#xp-D`9$$d3nv<)}GCSrn_$)zZyNb zgxEQGy%)ba;ZJuwsdjtQjclTq9cz&!n^?IO5d_Q~#W)3|+K|>yR(QKE%WjJsITpw| zEW`ai88|w9sc(C{&Sb^8wP`v0=oUey@XN*1r`cwuU16+)!tlL5xAQJ@Z;n2zV+GWO zx*6v-=pTAk&>MCpA@{}LEt9_=HcC>QJLPxGDwA=g(kL@H-i$M<$L!KR``f&Br{8^L z#pd}ouDSOmPhG-z|9}574!dvjzAN4{ogZI0NmRM`_lw2E&%^(y`ZTqN8}w~VVVsVN zZQ)J)O-qW}{SiCZvMO}L0d8Id1TSHjdEL07mQq_L+H~rCRilwn?A6$q&7);9uGjlE zhh%&2R9}*lE#}rEhTf-vX`2yW0O4?e}VI>Av&rToYw{ z>%UvodySr4UgY!kcP3^kGw@EMYqgcRXNtl1@jNGEX;XnFU1$IM5EIU)OQlpI-MaLV zk5*v#?de;^36*7fDZXFV>8nzg)93m>2RXE(S97)=%v3u1K$AdJNyJ^+AUCf$YQM7s zvih#{^}nKe=FKY~&&3oP5PgSh1DyA?h1m{jtI&!%8hRp`abXiSFK&$HG#>HxOVDiW z=*Rbb*Vg;Qyt0bSPGPL6jY>UM6m8il5SG6_9)^V0{pOT7+TI(Ry0I?6*YXI&JRFBcI*SI*sr~V69slI9oSJqCj?qW?a`QXf!kEehjZuvA%`xjX z+4at#1<4)G`+VOd?tB2Biok}K4;kAQu&#V|nMgY`JKNbZJiIP3C9K_LB|ZGit1~~3 zu8H>zU~E*@*zeXh#GLuBKddLVrd3NTbaIz@b<8>geTR#?=FZNI{bCMCEw+r0W!ym( z>|OF>YHD83SeX$4YfYlnk_R_Jol}u#|5>}r>hVdR^bF5;NS~J{HE1{bR_B>Bw{-T7 zb(D44#9}^s9gjQ_A0Y$F>(8%Bq^+gOO}UUYyJ|yGO2j$jjNBBq289oz|xDs6SF2~ ziqsA!<8;OOVW*_1n>+kJi84}GuK)1I!{L+x=Ss`=@HJ&$;q70Ha!>i%4aQpdeHtMl z1NSpuUc2mu&iPS+@t})+rmnb=zEZbZ;`~gZ543QKY#Vd1`PBDDTE@_T-DKkC??k%v zYVzs9Mp|G#_Z{Y*_#IDYfcWc{ILYo^lO@#_zjfqy8Rr%C*N}I8tI0q&aZ^{-n!?pu zFE-FeKL+n9(|2vGl5^g9&KX|tB+gBT>`Spo8d#@msq$J^p7u$Fe+jocrb`K0THQL+ zNm@&Jl5BXc{OYAM8$4sT2)aV=-Mei4_kuEwmIihO{MN1qe$%U~TLmNish@NbKPqQ0 z_bsiubuIFKX)^Hx`Q@sbz88A(xOZLpgVmSMt$I9T`_q>G;rBPg3r#z^`<(2fJKlI^ z9(^Wh957m9IJP&VU1=!mN_%+Fr4@^=1xX*9esZsQSIo27C}@CdRi1UbsXd$s{KgOz zX6(Bs5I$>Kmg;b=u`WgS`Y_?OWB%z|UhHiHg;M?&*Jv&E8zH#u`35HN%PUK0j_J*x zJbh9EcXbAAe79(Pn9KFZZl)V`#MET`{Lv7T@!P8NKXm_<%5IxSxFG* zt^WBe;g?HrO5V+s`{N>Y_lIwbo+jLh&>EXb(g_t^4nBH*#k>S_n5*rfygrb5%&GcA zN=23CCF>S`XXe4hq4z8PTzcuIn8+@#oS*qiyl?Z_#a_$fKmGUjTmxeM(c0|Qz0ad< z_EJmRk>g@hdqL84(L}aQ+M)Y_;SI^r7Co{$-P~`Z{dr$>5sk$G;MeMR_No?aSQeHX zxia8oO~yr2cRNw@QI}UWw(f2m>=PC*?#pVAa(P-1^>uK5%h#tN(W_)&2F)(o&u3R>Mk=RZk(aEEh+`iHm9Zd&)*&ipq| zZW-^b<{CTPJ9C;kv@&DY?&<#QlA~y!A2xoY_q=IoB0^x53JN)rh01KqxG|oi1%=+^ z2CRDVwfv^dYcbkkxZ=+9ACIUpX-$`XSLnhF-N-`KUe|?uN@a(L%n7SQGTZE;R@7W$+r)b1G6a=F1vCH>22h>TR)Y&j`RzKQnxdl zYtF5$6%O&d5Ah-09Zx$qZCcaNH>t&&<2V1!NSyup7C*Z760X6Fx9rPl&6Fu8jmegj z%fWNHfp7C%k>yU*;yCevpKb0%-C8xNA*(@f*O7JBJF60SPm|oQ)#SA;7Y3%W zCMO@t_M2kEqa5-$f`+jF;!}%|a8JqJc9$#__}32xeL6a+c0ZeIdCQht9&DeUGPSk; zdQyDG6l#N^*Fae+AGgFH|)B`}Ws?I?Na9{R7`8uu+4|{E>gfkPdwx*=C=KkHrXML{?U&u! zLm(Sy;*QLhc)d?Kfg7ftd0WnXappFsT-R_hM$o}Qp_`B466mEplN%&1*6En5d#FT5QwCB1vu zH!vxVXsJqB_u0t4&F1x!@aE(Y&D0<~oW0 zXY2K|fB%k1w&2{e->iua^S?TO%B7d)qIv9|)aCfPG!vbBtJRu{-Hm^SoPDw6QB%v- zOK#QC=@Zcx!oPmRWz$>k}!;lS&- z40UPH{X4fA=4xtPYJGEU_L74f*LMph1?9-T9{sQe>!0LQ45!D`b@S5;P2UVVM& z)TDbVxJQxh-+Fv_-TSuv=w}~Z*jdDGkN3L*oiK8~+jOtPJ#zMC@Y_$;XU=dQU2PFp zzCP}@qb-MX{rW~L?O)nZknIvJZu|5xfl-|odD2Ax22YA?8gGWL$@Uu|O3KJ$DzZ@- z*+@k`1gsJ=PRI%t&+(0rNM#6@&_jMlAzz(=zEa5kxMXESMHLQmfUm2n}7_c!p2`M!;lPc&X~PKXe`1+$#_oF%=WLKH6L-Tf=Jo; zRLdGP`R#d1d8?hTM;$ZT!A*Cv$v|YUOgv`ukn$#&m2JRuzvLbs|*n^6q zQpne4ikzlVC9m;;D@_mwA7s5Ua+-=5DI>p(kZ5fg*AVehMtqGB&SIHy86UashkPC- zhkt<_;TUaMh#_L2Eo*e7Ahz#CfbYli$QXo$@lKoLuK7(|FHX`KHJ>-N;Px~j- z9~OY@RfPu(5&c|=?*`;DM=f{W;Qc7Zc>!C|E(wN;`pA;)J|=4{n`07?XbZVZB8+mG zW<<^TmIG9B+r@L%;Q#IsCINZ`hNwlJsnXDIN1><%88BCh`W#{R#WGT)jOhNHfYk_c6{uM(U2 zk%B6l;l;90*JqfYD5!!NCX<3Hn&F*bp*us#%8O+H%`??L$cRmfWuZTdQd}M&lLQDT zdKDYGoQ+fwkaktLkN|<>=#mJ?YE}62F6qV1)0l`k9bh$Gq9VtWs5kvum(m65#`KK5T5=TjmVp*il(IS^7xQu`-Di*C{L-)MpT1H6K zE(w|nJ;+8Js8H!gi5eUA`yO(<4pCP|4iaE{RaiiP2-(Pf0TRosp$hr#ko+ZOX&jmVl10Mqeka^rW z)W9*gOGJurfTCs5<#R}<83QR(h3yG#G~h^cy}Q3NjF4JYcz>CMQ#OYX$bAd`#kmQJ zh=($gXoO@Ii!9mba2BMTC=b}&gl}||oU`EC67bJH%1Ax7_GO48T&)W4-X*Uwsvrvp z_%cvGQ*SrTq<)2fRg-$^H!rl|l+uy6w_vT^BLGAZ5>O12deFzdAdZrP-4ckpz&&g4 z!ztx-Ab^Zr-+^~!Xv-YSB!Mo$NQBIBu?(oK0DPG~gN|gO-;bhCv!HcV!(~BbpmStp@l5Uv^o2q`KSPS>h8{=C%iW~#v^r?bu zQ7m?^LY@PYnStIf7zX(?FbpDe>wmO(V!=qzE@R{}2|0pA&YeNMKZdMlla8~P$04p> z5tIu|RD|>%ljqMcPcAfO+J9v3g;U|1|I?r+=$(zU0SJk*@?9f50-SHbR$~L=lZB5X zR~ANPMuM-6lfNy<66I`!GDHft7%vFTjR0NaA@Y!Q!qxDj>kt)xr^WFZ_fe<6Ma!6< zwc@&l@+ZvJVw{)xH_p;(vcU`@4(HgPTOT4b)<1E5y_mN<)nL~1&~?8e>&K0PndRbq zY^3uMF>l*Mvq>UnSovgW81PYMVXfJ!?GFixV2xEYREJASLS1&p#GZXMR_J;(}gR9R0^-YnuAvjoD-7wiG?Y(WQe2_ggh;| zB{1vyifDQx_-d%M0A81aUt0w&u0rZ=Gw;piH;)Q`lnaqCv2DT(DizZP+uOSTf=u>9 z^|#UY141!p+H3KzZli1G9Jlb!q+6g1<cF^3gdtccKDWIt*=o zR>Njy$@AcRH>h@(oTDW%@`vv4lyfvCHuY{&WIX{sCFM&VU4z#e$b-T2mAt-NeV7eZ zsMp5zNZFU7&lppa%Zks<2Y=ni*-sEdNjPN z$|I)_@*9hOGwSQB&Ol+@1c^p+U2k&HcvI9x(>QXphNKqbR!=VJVK%GPqYjSI^gPpL z@cZZhRJj|RM!>h;Mpw_VL+8wv&OIt)+lJ4XZMo0~9UiM`9%ZI1tw+;F8PRh*-bXI- zaBg4;wV{1fHhiEJi4I5$H}UjH-esEPoU zUki1vZh_0*0^JB|{%*_TkPEx!8!z;bgS$~dW6ht@^?Gx_YQVtJIq>cUnaB@!*Z&xu zfWYPnbLp=Dy;lNGTW`41!8cBn8DP1b{8m>GT0eZgTVNWWY&U_8S22)~mH}9^6 zY3-eUvCMWfI`&K@+1*h7IR`#a9Y`XN$(#MU>m%oa93+W496`+WwqG)94mOO8FMc5( zd_RiXIEvZR5zqC#;yVqSB~8l&9$QPvacAlv=G(8xR&SJjyW}hvV(878gLfU1xA-79 zZ)9;bbgcmP@dmU=CiMiGz2lYg1@UfWW_yDMGxZF4ILdTO6Wntx-lZk56Hz%qGR%r%PTpFYa6=@F|KsT zc*-1!U}e1A?q(lg-GMFy*V7@H%`qCK$k1y4`tSDqxuK>!hJq4Ay;cyl#xUgkM;GD2R~17-KrFP~%Vlf?5mXS~V8 z9_UIB+IG}7NOEpFAdMguIaTMDkbyFkx7=xgmsF!Vb}$_eq~ehhz6d=sqLTv;`F-bn z-dQp=mK7z$>u5 zOV}vNNUraLtnx;M0180K7_}3Ul3CEnI}3HL*)Dk_c1Fz`IbF?L2`vS2ue``eZm>u$ zz1H?igb;3{1y^3kL3qSi`H^du*&-Noh8ZU72@rh->MSJZz}u^N&M$hv++6)a$LeZ32iSiUL?nFz=8vv`_|6D z_Q2j`WG}x|IBFcx-jDeDY6;9@aBm99&?=k95GIMZ;7?J+6|=PKZ6Qd)+_S9+^6Z5? zlQ9~tC6QW&km7~Bu^hZ^6_a`k@`hf1N%@8PA$DC2-<1takt5ro05!Q5QID!KB7#m3 z5hHITv>IwEfc0|lFs*AIv92Nu4MFR<0V;$nD*TKNCo<7#51~s7+l5oIoN>m|Ic^!7 zM;}Gmj`|W_cny3#kZSh1 znPN8>J0jv#f)x?SM#j@PA1A8~Ec=uL*0fnnRsb;*k%Dn;Q^i3w5zEUErSQ2Ag;z+kj#ak8Ryd z>Zlo@_cfy_W#PCs_FeLUZXIc3HFL29XC&Wdp~;7;p}YdvTko9g7vx@q*!h6n6&hoL z{x{z6bn?a9%!hN<-jG5Sv{SR5{Lg#I*=8t21u3|OiX(qT_{$^U7oXGMCDG%kw5xW= zvbiyF#^GtqXt><0Vyy?{C@`acg(%0ukpJuG+T)tK?zrvDilYk3BU0QlrVdtyJghu? z?5cu+$&5C4d6V68mO?fc zDk0uu+*bUW9%7`%Dcp;pv#aLRDI)S4MsiL+x9r`~A{YV%zqL5Kuchi`lVDA;dP;B4 z0Ho#y4j1V;ap$-G0Jn9kriCE81ffn%ZYXm;n7_p29+E99!Z*W5q4eC{pa$$T2K*H6 z%^_&clRaqT{Bxv2XQ75XlYcl7$&b?HO@FW0>_>j65&JxcbwrFGn4+C?S<&z4QZ=rU zb{WcG$>u@FRNh^2deC}W5$%z`3mWX?AFD;X7*GzC#^A>`M82MtsCBn9su&wq~nwJbL8&ifX)bu0ebq!M0ude003vgV_FgCB-5I7zd<1uf zf>lg<8Of(2R8ypC3t22&{0c5H`4501Rji&I*MajL%B`UJ6DK|q2^vNm-*-2`o)bpe z7|Ip`_`KwXKlI$^y0b>HoNnW}_LZ4vATo=j-Rb10HlQR%Rk>ON!00Y`E~^%L{+nY? zxugicQlykeoQpnQlO|Y;-c~H^w zTTkK1zvW+h&H4*|uXNiy-v`mWB$Bo&$S_$(4eDcz|w514jhGj zR6=-;ZHlM^F>u!=5@lmg@jYWXb^bg(v^NC(YH5?x(4laUQL+TF z=90$hNTGIO%;~sNjc1Y;6r9@&^k8=!A!AM+)^4D#V1C~n?LCq7h9!P zMdqT6ExaO_mr~({QnpIau&fM`B3$ab7tI$_llk&gj4BT1#6W7Bonn&UCBq7X&@-0& zDsPH|yZ#kCA|ZyO+%o|PNs9$)mqW{(%6gq_*Eo;0bXl}M}jgy2G4JCiJVY)FO2HqMv0sAVkiffjCC z`%OQe{?4)4cSv<{@b==rTS(F=-0pCMdfHY~9cduz&tk_U$dYHLThILL%vC~*O}PQa zj$FmzMWWw+Og8XcwlP=3B)Cidm*vYo7oJT=BmzzECB1*N|I4#4%~srg;7fYJ7IJ6& zh(Ennz2bSwX9OA^{`JLpRMNsTmH$NK2j>x;g;sZ|S{14%5n9UmW5PCzYWUap|MN}^rsR&cwny7CK6 z5$uTLoq<;i5LhNpL#AV9%?`PcHf+#t|6R|uYx#sAMH-BtQP&SE)yjIxj7%61CkSdJ?a zPJFlcqgdwS;kBzgbyG0E-B}_a;!Uf&PQ?ketfWj2s}zP>K;wDDvJd~&TanssMb0Tx z+W`HN5nsbyE~By;tAlC7Ox#s39*@1z2KkAfQ>2HYlIH-2?g~^ z4=Eu#eA!G8cTk6a+lNL+yG~cRkGC{RK;j(SLs#zy@-U%$mK8fYfC?4APJS%7JJiq> zpLRSp$G!^DcjZo8R_se)h?sB|V}X7Dl`xyn-(oald6Pw(L$=wg1I%Jtv)hTPuP_f# zKID)PuKl1_>kI~ims_A$!mbarT)A`Q%4>UH`~M>Vnce@JhSJjV3XlFL!z-%)UxV#X z%2#^RrzBmzaBH6QS)Ib~{{64(<W5!&KbUkP^7<9|hb&QFpxgkqKK`B}8IO5qcsklu5j%wMP57|{co%h*mfs9p# zdM8)69a+Lu{v;w0l3_KRTZV*%LCv)_%*NKv){10Ma5bovKVYfXMx2U>DSvmjTMC#ruKAz8b~G*MmhTUEV&X8-0*}X)wrZ0?YN6ZmhLZgYhv--dJce{g zgqbd2G&FDDmZ{|OOS@9Bi)?z*!MV4es%ZG%eJ(RFNli596%YenoxU6J5~`D|Or$;S9bYivr|MIn-#Qc3yB7$V~=||7HruiCDLuv6_hk} zQv#X{G79+<6kQ}n5)9sNKEcGiFSTkapSHDp|DN6MgmHug%EYPf=SpPP|`e?`}Q&LeMlqzylsqULdM3bI>j)~0pq^kI2=-8+*Dwsw3 zx~dBDx?P^YvqOobYXQ^#R1<|${uzZL+5HKn^|rQfZ)OFLS<}+8qTNc9HkaefJjeRC zd3+Ia{%LV0B0hF3r@w|Gfc@0Jkhc7%FWPb!vdt=&cseJmySut8Q%V%gT6`tya%u-< z?pEGq;CG6=SDNo2!_?oFzty;Fp91t;;WG1i-J|x0UpCFJW>7z|TVhW>XT1Eo=|wK; z*wZ7IAH$}pDLiPLt@_RTm|fPCX5>2iOOE8omI;uK-{(&jei^p&{HJIM=ZB>ddOH8P zHLCRU`{jo~ECMWU`v*9`GR+XO2Pma4TL#DTtLpA|$uU?;|9Jgc`{aGUSiHRpo9>EL zaOc1mtDrHy^s$>GuUrIlA+<+$b!#oNhsRpPh8;Il(-)mKo~PGXT8r(Trxu~Q_Czhu zl8dTt5VMPD#5`UL=M;&Hc{sS-)?NBh7h43;SX33;adhF-J-1T&MK5Ex@kkd??VDQU zz_Ul0Zcy#}sYoS#q{cU)C{}E();GFHRP3UE%+Cu&lkQ1(L2cE{8-^GhyPnRLC2QvU z*WpJt^Uuodl&q4M8AWFw+=SFvV-0Ed@nYxhJ!6Mr^{+~cx;=C&X7+}h`3%!vemHf2 zUlsEMm&)kcSp~l@@)SFMtvx&zD|WMbBBSVD`ZKHGtRkWq%{}j1HK-0T8haNZUF&on z%b5Gq1%FBsis;0;s~;y91*X%JSxOxmb58H6K2p+Uunc}aKj?0j-Dkq0Yibo7TeKlI z{A$A^pOetqiFNN7c7PvR1;dMOiizJRXfDgdhK3D{IbD-?U}AVUzB!jK!ms(@(1F;6>NP*zX6?R-@pSN&{n3=>|2vF-0T#FsAQ6(?RPCWkitR$nVg$8l%(Gz#Rz&M@t5AA3> ztMSu+R!obb^8%!`4ySAWkyW;5&wVGO zSXZp&zA3hNpd)2lhFPXxX+8N>gRLKC68Bie+6a~uM1uaPj_jQ>BhXf9HFNdQsQ??> zxzJkkb-wSd9It_SYtrqfta(6PgXYCEf@X8M63DJh@$2B8{24por`;U3efm^<+P^;m z_w_%k(>g@a^@M2-AJh04>J<%>cPl-uPwE+@9dz>UX+LTZbN=>pZK6iqG8trC3sWr){k+!xN z#?$p;D{34+2Unq6H-PGda_p>~UDW;dUkg}>eU;^qWfuki?B z;@}rRvX`^nWYRQa|tZ2s31Luzb1F`Qy|T zrHfl@@uQ1C*=GN=-%CyT^7ZQEvQpmp#frX@i3B^b;4Cu%?Jx!`C!JQpztDyuJp3|# zc!l8spvB;`K?l^@BB@LMcr4cR#S4W!&-RUJ8k<{z+wq%To5usiw5Y~!v&UPXTmJ(z z_c*7=TiKlVSb&-vncZ1@U+eb;9Am_ovqOLOE?|@)*?6a8L`_azAR3MmfYMJs3ho%A zL^q1Ug7-Z0iUu_$R1SI~WRAZ?yVn(!+MK(Jf>aq?oJszt7Lfo_e_7cPZ5&!Yodt(1P7`zM98**?RaxSt2qFZ+pDbJug^=1mJlKP z!H3muFon^;xh>clVhIYFr~t%SU@m^TZW7~MJTPmr6xu>}vZn2pULc+~zP=bq;$)V4 zTroBT2}xnhYZ?0Hzq1RdHY`K5;WHpFP``57F(B{Y-O|a?Sy-^4!QmY2q9yYiW_CLd zCNX9N8$C1MkaB_@`B!HA6ejr2j!riUxPTjOEGbE?Y-90l))g^%bdQhV8B1Ho`g0v~ zpFE(a6^89?n}=KPFBVQ~fsKsYG#dTPpy-6#BirB|5!0`#_e1rA>JkgHov`39tt5pkZ$^kp&KxE zcLYwqaR7B^CbfF6O}s-DU~}Y`hXT$71q0`DCiCy;qRa<4X8#o#+BEFohew*^dDy@$ za&DpS!}Su;l8;ZMNA_S21VZWXQaim>ZBUyIqz&7%{~waSy0HXsF}j~4{^5mtTcgKr zGf%uKezOEpkQ{y=k4UKL3+?&s*;Wjd}9yv9}7k~O2QmAq~0^4@BRn?An8%h`c z93C9`d_?_xdFD4XpIV;u6^;55x1%)v8?chcFqc@NyKBW=A3{PJaE5Vko=i!&kd7yY zMsBia6hZGn_nQjxnjar3ARym}10SYb&=)MgX4P?{me2|Tag-)5pmgaC8YP-8v6*{c zsTDmx1ta|2g;!+cuNS`N$dr@aGupIJow{=oxYwZ5W>$U1l{*#TV~Tui{Lv1$v;Wg_nXDT-sKTs0ky-48}2!gKYAB# z?YU?YuNuw~-YVlkv<<_F^(mZSLbe>vIC+QgJbPvx^{0QS(;#$NWM;Q2$$wUSVN`DK zESWu2bS@qKx<1G~rI<4)?FR*eU3ByxKd_D2rU6zkC*c5@E; zF3-DV=Aq;Z-{9VAWgf{UXrk;+<{{I|$0ZVtQ z$0hxHss<8(-2SsZQS5ERYKO)o|Lq?w?D&G6K2k>lK|aqN1NrBcgQ_1VGVRQe6qNm0 zAtm#H%KnqH2FkrN{gQvs4BNQsGXH~4Vz&Ny^|%^rwjVHjcd5f5G_2Yb9^#K{6rEdd zncXLG&TRBv_|FDmn3Y$KZeq*KiWIl-w{#3UNM~#qn9eHndIx7^KRyS{P!{nwHN->MdK2qzYnV{QhF zY^^Ag;{LXrprHlVb0I>w^a2G=oG3<_y1g;xuq-(>SbT65y0DdN$arqZ9s$J2zs+y% zTf$k5wD7+r{`f27)oPIjHC5QNet$TAqbe-#Q1&LQ;6cWCSgOeq+wCt)1xy$RjnGBT z-op~$YS)7#7?1@+YiB-ncsQ-ma#6g^1W(9?$XaJ1To^G<^Ck^*>G)huJQK!oE~JUN z%IUN;m-ZVn=tA8XuA5uMe-PlijBkwApS+&WKGHUL$m%IFXODR@0%17$D>VDn?xuv3 zk&xhOq@J*DczZzVnE}-r{&Z&@`tz?1V))RorC3bf;~wUm%`AQEL>MC*F+li}rvTHa zDVlz^eA`BE@pe&&<46{t zi3zCw?z9x6g4kdkX}nK}n^l3Km>pXbC((pTX2+%#WCWaUr852-##B2Ob!L^d)OZtv z*+@GG2&N$2BmdU!BYGJ8seKSH1ExK_-O-rSi`N?6J6~M!W}!a6!|1&k6$T)RW7aUj z7iIf|&PcCC8*Bo&m6mRYO$2A54j5_qUhb5J3eStB+4B5=D(4~e7!`5e-5JK<*v8*F_wIu&Yk0}K7AJcHz+6zHe*YfBMY~3odt(7OY(scGWA+1W-(SLBe%_js zF>6b7kVwvA=vg6Eu5M*NSiXgdNik5E_>~&LcV3z0|hTO-2Hccdze?;H_yC zK!$bCB|DrtWa!h~My`(xqPCPvgNTid!gFYOP0z@xqqWvn`xJ?@fQ+YBq>}Ipn9w$& z{_oOmKOR{z;5AKf8Bu;Av?D0^`S1^Gsuz+A4ZvVTjy?F#+#3E>5kJ7BVh=+g!WXa! zUE8X8yWBnAE&elp%h1f2Z*7dKKxwagxmT3 z(LIaQ3;M~ZLr||UCND9Z;G$@Ln95wzG?#j;vXFaNdCO6`q=8}oi?J2lQVJ1x-#R`+ zE|+B9C9`t_;C=bhT)w#nAkl9Eh^BaCl(1@Y5(D{Y?e>*`=W&f6L z@uqq0jZEbxauglSO=^%TXDU+>R+0q&FD4^)Qk4Lvm9x0a-X#X&&LJXor?rtDljEki zWRA`2R`Hf4%U7>)agkq6ShO5L1RA>lAhAEsz#o!H)zLdauXCd~Mfij+P;PsFIQFO~ z8!)Aq?IAZ)+pa*mv#AF=1$1G5GkI* zn0M+)kXaq9H!pXZk_eG92(gYI_W*}x`vDc(&!`bzL|I2w)vmMPz}y|4#ehKC~O>z8M!Ein7Sak@0{`xJ1(bahVx=VKSaUTHC~#J^0QA+(W{#LUJW z{MMKeS*T*{+*R|fyx@GqwQxl8bcz0gdMis&9Y#BUp{C-5|BSkAN zLEUCf74{B0*H$rg{;{iBdd#)$Bqw7h2%C0g#6rh>b}~RRCdj^}<_mx-#71`LyDGd! z)zIumEvkT$&TBL=7iNIfRG;7SnHvBVy=@=X;OFFCZo7(!K(_3sNVC~;v4ju9?P9e6wj2Em;8j6X6-#k#f=Nj{CX=QaO4B(|VwgQ;M zm}9^1nM-zcI(W_~Z)H!5p2)3ps__M7w4u4W3XNNL%V0;(y)f8tp>{T)D=?V_7Ibk z`n;c0%NT9>gTs*jCfoI8t07iv?@YqP=>RYloj+e}>;hrmv5-E~WX?bMF)L7Sj$xZUQuhKmq0J zRn3`*>>DOmfScqx^!AtnXhs+qA-q@8B1gtr40%%@6hOh-znNnBNK?f3U*j;B+JL2*Ck zGNDDJKYUZlhrvF;@RG5s`>n591A%XiR$;yUC#~b7)Bezd>P${a>)}MZZl&e1M@4Xi z@OH`CQ%90H(^ei+#fh$sKEsK>nG5Et|9T#+I>CQEv&J^?);|HW^!Xf-9ZY3rN!U^) zTfm_@8@O$eVAka_bq?4%^CAA642Het!O&8K;DFdU0J?QEK^mq(J9mhz1q1m0#z-R? zqd1l9%o?0X>A8(zVUK%%;nxw?lcrr|Q(N<5)i9f%nTHM{K18#CFH8D;Ftb&JWh{AO z3vC^qz8$Gj7zx7TwRS8==jVc?1e zxLx$+$zT~6s9bCJ2N53u*dx_Xs!UEaz|0$Kc2IlN%9Qs`IE99)lV>1}Kv;Kl5N6_T z5$KrSYgVbcYUVjszuTv+66OtDG^~_LKIF_Z@5w6I!5yZ7Rh1p?VNkJw!bw^rRMDNNSYnwL>3800lA9-0q9otZ`A$wi1wZj z^@CNc@eeEVFjnMAB2E5-pL_a@TM&?{oO3rlLyeMY>vdHPu~xZ_VnB7QDZnbCYV$_1h>G%+uJ)pT6;krPq^6B*8nO7 z$vq4CIEDj5(Ur03uCR&i!vX()Jj)VWm;lz2xf9ZJbyZV!)n00V`O}$_<96Hh%-bO^ zgm(_ZEg@g#i`fz*)kAg}c7%HyBfFJ^G-q;J7fG6ZFkYQMo-17{%x|p~fkfXmf`}Jz zO``)Q8+-UrKJ}u0nPvoae@Co$2M~1zYqr{esi-4LY>gXydIQv31N1lGjXhB~qwSV~ zt>4^W+j*RoaIb|*B8T7zcPk%`9UN-y6j{SQ66>cq66B~F5RDIr&xEaoPE#)jne*b2Ib+Tm@xM<3*@Tx(+OQ!9`1fmI4)*|aMfk`)Z?$S` z#5UtOt7*kDMh>hB4kZ>Yza60kkWUUK+q|-jhf#$2!e-}2Q%qXeUPv|IRVc?gs>B_o znbGZYG9j*m2!1lOm!c_rXhH8)d`v{^aQ6l;_1JVpo`+u~K3MTWaAG8FRByAj=p7YI z`Yh6bNj~oazZ$7knP`^xR-nA9l)+3Bl;hQY890~2xQDfhIwZDnHnLo3`SS+L z$lxAkiXKxyg)r_ZQ&rD>yO&vWfr+~CZ?hx~ctI8%8!&%bmYaTgRg-x4sE47^hh`eE z{;eq`Fwt7*nom%Zr9KY*G-<#;lY8ppY1}}VA>H|-sq=7PNS66XFU9&DNr{F4l{9f#IRii4qFbWm z%fFP^G7wds;d~SmXy{hX?CePgYID8dT$bdtwRYu&2GX7c0WV{IK6&gKrNC#R*bc1r z33IQ(FacCBRzaK+ zSj|tRBM1#Fy8GPYJmv24{DMxIPn<_rdq+~BBUIX~TytK30LQl~Ja^bPx16h2JgN8) zCKU#vGTCf-i9@xRpXXz`)sl~cYTt;EmnfnIODyrEx7C%6YLV+)%gtNlGr9H0fn4$} zqxcAK1e@u|3T3{ke4=?nZQ*1>l%d{lWMfxmowYV=#yzLxI;rjFW4Dg?%HpRU`tdF& z>nS;q+EtIDDVvFONx|%hH|H^OBK+5GsQ+8(ky7Xz9KX+0^^ty=rl5#UiQ!jQ=D(mt5FYYAB6$Yo?}Yf_9}LiFgvdI8}#aZ)2)N>PsQS(St!zwf^EqptVLu#zc| z&|#9db~03IQL)|}71UxM1I-z-kD1P`6k$ITO#pr~SNt*?42=-P&3ik8=*_qF4WQp# z^)CxAnv{M&F-b~K74wtjcm1krCAhDf8*ljLjq~rVIsv<6ZC3c>YqMIYW?}8B@u%l} zanZEwG!;8VrW(w3)pV4jV)8Nd6-KYWRas9;N&vx(BSW?^S~|Z^ULwAk)xH_~baF?N z$C@dPxgy16hNcz5mpUR5q~W6Zj^-glf$wPl3p?7r-k8&Z?%Hd<#jl@ddcKq{^LKtH zrW_Z)@Ra*%^9=!23H$Iy`KTCegC{M&do3_Y9AETmY`9On@TA&h;mMl5qU~-;bu0ME->2Lcdcehg%IFtwRmvTB z?mRs+lAP34JuAzyKcc0k+L%PGGO#AyXDzfimAUz2jOVD_;;P1tYTZv!3Jyj;+Tj`I z73QZeOEsy#ezB%$>A#^Sq6O)9;%AM(IZtjUToK>mWMIwPo(fY^WiVzJj@55Mw0__G)5!UctzJo5Ora1yRrXOX zJl;m!C+CG6)5H2CI_>8Fh_ml6RG$VSJgq;o>FEz^25C~>w6`BsYWk$&M*a_l)}Lzg zZ;&6(tNU%J&4k*5_2nMXR`7Bpq;{Y6z2IIf|6F5Eb(>~?@!v@Or+=?~kBqC8C>%47I~5FGN!|D% zWP00_9xlrTjgpQNH|`_mTZ+e%2)Q5%|YolgTFV|Bok;x+7)_Foa}CyKF$==xt_Ay&(fQzASYDE{8Vqi zdCFjM_L0E2^p^o!hFJRbuZ0IZl^~|9Z}F2GR`(uG2#zp#UT;}D%#wR=WfZ*|WyrMd z{p1}uSoC8d$^bD%?lS|l;hMnpw=6lfUOx*y(a+HM?d7rx&=l|*A&KdPAv?gu`h$ZrLj4F5N?ovQ5MI+-t#Q`H*xmMr;N;_np>=Op}MdP zrpLuewDSHpPoN*f9#C!kH<_TN^=9zz{q&^zGN~_FDT*KNI{taY7QvDs$SiYvpd<0I zdj90e=s|4JHcRmv0AnZe-WW3BS-yRFetMAwN>JD{ch?>{9B5ui;T2m^t5TLx>d)vV zJnqqDd@NJ?(%QrOntOi_+SB#1Tt>QC!;M->iDE7vN6VbSGWL3<`}fY%;;H4tLY&Y2 zF!mJ|O`X<*G+z6+RB6;=T{a@4FlpUEsyt6s2PFS-dmbN{4~@EFukWwf0Rz(<&3Mxv zn>)-aKb7xUzQ)mgfc`qgmA;RAJ+fNT?3^rYW>e1b62@Y#-Mwjc)Uq=<@#}x3>N6m| zwsHRi#r^3_n{paJh8{tJqReLNrBuCoSl(SGPPT;k$8DkIA9?E9elnZKN!)~gcyZt6 zS_ZW&rX!&$-O9}p76fS7E~6niOI76?1toEFcs}$iwscs|JQz4RDXI3p#=1nQ#7ld9 zc;!0B->m0>OF>5`35%)+LeGm@XZ?G;R?0eH`q6;)) zkEn!L3IWCU@_I0d#hp42GEzJ)q-}m=2vWZGau@nwMVI2rn{4{wZT9Y!L(6_Ikz3!} z6D5s8q35W3rE-98)!HT#V))3X=9!ZHCP+PkHzK2s_?Hjjr z#NOSx2bigdW=;B~ln(F}lMp*{@Zj$aPgI#ONt2nNib~WP&29`k%gVHJ^@@q;a|;(X zkBzJtx@!4{-TWQWru*=}=S7n}nytm6EN+=L|NXp$Jy<^-4OP7Zcw`{tS<>6n);+<# zPMxNrje8F(%u!gQq7mz$@tynkn^-jSXr;Em!o~Z$nBt(Bs_Tn2>QIh921x^N?wvRz zY0?zuDbS1%-sLBnTWjK=kW~99N%L-taPIc?-&W$1tOIiaMbWCQF*x`b(^m?$XWef< zwVz1w_3&r!lq?wiAp zACq@GPbA$y8O8ECA~Vftt@Y_wjSdzXuKo4CDagMAOOsc4KYFD%bPyq3txiwd7~F8< z&i>bq_2*GV@OmqT{pB4o{z10uzpwm9So~AN)Dw&b{45rSczj(eIR2_4vVEoatFDet zTo47IlZ{y+gVYryIAwwTmPRvvch&^wYnBz-d|@u$kUKW?=wR2lDJJk+j(AFfB&7jo zZ`eCCE;_EMn_WXX-rt<{7K^^fzNA%jn}LKU$I1l+N2jPq=bhsCEsx_G8~X10K2&L% zoTYDN1KGTIq3%QXmfKzrs@U49D5lG)Hr{r{jK0 zbPco)x)bAm?bVMVR_sp31tHSV6U=m(OH z^Fon#Xjxm{uIT?@hIlm&YBI$vzErw?C=GZB&e!>2CD(wJy$j53ME)CHj}>J&g@qrB z$i_?N6|0_WZlwJwI2tWx{y3%CMbwzfLs84!77G8@tty#Pw#my$BfNnJX2~mv(c+%{ zT*z@_=G)_zsoLmO*AVPk8BEaDPWOuv28Sy>X)l@i45vx{{c2`};@zhV`T4q>O!V@fW^i@?3aK~IOI4GKMw|)(-|K--3Y_jO{ihur>BP96;e>Nb(Oxyv zJj;&{jJ_qq`s4$?hy`o2+|7~sY7&}m(LuQqqOWc@K5|Y@mKY#qQ{jpOAUb%EV<*$Z#ZDGQLKk9qcR!B|Yf>Bjv zd~{?L2eXBHz>M--nPiioZh*n`8_yO&*Vs5W<+1X_$xRPV3F8E-q6o_CDdh(J8?nlF zN<KXbMA2DVa-+Erc`&~2IhA+6@n<6;v-%L3N&5z9u-5@?q2qr4f zW!Ts(S5f2?6l2Qu#Q59)3CKnVoBT7rjonDWPWyAV8*PjM919=&;Jp; zWzz-pcxlcra*jO@3!di^u6Yg)DCtfg)5xee(?sN40h$6EzSpIrJqtc{i+?+I9kg|8 zD=7H+#!cU&_AYJP>#0Fe2gvqSyw-~+wqSbmA;BoKG5ScMAT^A6CD;3q3O-CQvgws)Lq$^#O|M@BIbq{PXQ6_3bQqAW^-l9 zJf<72;dAHi(crLqXB6GYgWSP22P3r`0|hs#VfJl=H*iewEJVl9y8OGKn{oD^zB!h$B_}~q zfzF;9YKG)5x| z5sXe@l9CS)@e5tInk#ZFZwu{;nLSneAxd=;kz#o-M+^v7S0Obtj#2F=>W<~J?e8+i zjvaYXDxIg@`8XE-iaVofII}+dj|B^u0wf;Zco6Hx9{#zDFXurl3%g4YbE-RX=}4}Y zvD5;b6nrzI0c`mxes<mpL;TxkZ;|jKWVe5cJ3sv(ls*iXB<*EiXH;udzx%K?x zzC?GeH78ynHeEyb;#myTX|^*=u)6?IvZ2`^g44&I$T)csfgcy+Va zVSh}-xpOF#w8J72j7{QvFWDK}LCRt%|I1T=r6_wFw~FuUEVUj=NxOU0Kd>_OBg!J| zC~QgB82S8@qWRM1tAfx0p5dM_)1bncz>5Fwc)WHSFB5AVG(74{X#tDa#G&z`GciVtD$D`y}Nd_^(4O59FNj&sJ)HLBVR?__FnX|LRPM z(YMZX01<1I%GMS`=h9z0mP1v9Xu7du^6*5J zqc$!rR{pk3_aETslZh(ZVy0JB$g3y%lE2zFZlz+%h%>+>ljVW z^7L6n3#HxNXPf8N+l%v@3x0a&Lux9tPxsPT`HC)2s=lo=Op8bXFFk$W6#~u zvl218fBhK*CkBaO&H8_E-vi`Xml#aC_+o`Sr$;ORs$KVl&VGIEVs{gzjESBww3+?y zp#kw|OZfJ10eT|GdtJP8C>fX`grKx+a~##D4q@6izdjk(9rIA&s&8g0)R}4Nj_&Uc zI9NS9VrrkiT!@$>7<)HxJyVp0(e`!HDNHFKq^5bp#ImhGPYy|CVxHQrF!xL592;pT zWniJXF?_50mUrCM52y_Hi}(E`(}lMEZH1vl|1UncaV{*StU=m9&Fq7xY_O)v!nU@^ zx!GF0syorY3y|MGb;86RAXH$cw!5Z{2NOty{8HbiMA)%`QNJ;S|}AY zxTE*iQQ^s7C%<=pqqk9!Sy7zlS48*pY`c&;G7oMO26KV^KGhIm%reRKy12izgy$B% z+WmL1m7Mcno5Od4^~7@fttvuDaZ!kFOV?gWk?3p44#It$zTnyQpAl+I_?(Jh@fVjHOKbuOsEYV{M6i0@)YxlL3z*m;gx1el*^c&tN3u1h=pg-i# zR93A?W!C`dXlOmVf3xMCF5%hgfhSq0{0Oi-ee8L={Typ_QE=QF2xt4uPIC>^{%!v$ zqjHn=0&t)tsoVW?a(xu6beczGZMV2h@<#B>2K(cP=7l=L1J64>9m^w8tM~m>pc|6V zVG;#z8IQk~`Uhbl`q~WpZ5u;c^XoRy1!XvFMRiicnl2-L(fOLS03WbdMC#t6`GeuR zpw0KN8(FZA$?+DW1JxR@xArLh%<+h9K(5Y&^_V3S4leBOD!(bmh0v@+7=*SMC|*nepIyXvX4<9>}h8(${)ovlixp#!Y2~(jQ)Q!Wy)Vve+aPeKfq-s@^)45O^Do0j>3f+LUXJ?EEn3T( zKlg;Bira&%4Ll5481uTBmpzS}R0cI*8a|IPVk;I1{n z3`%psz?#n#(z74^@*ziVGQ>9YS$*AUqouf#+f)4t6{}jxt1wBWu+G0vQl0PbM?U1} z4lWAUTz4djn)0)+izH%d#S97k@F!>=;x9g7C};1FM&G7B)4al8c1|9VZh>>zs+sp!;PqQ{B7V89|~2A16;JIM+|) z)3j3lt2t;$hOa5-phY_!X-C@hAel`n_M0YW5AOZRX<`^HE;P?}TLu+=ZPj%ts3jzL)j0{%&IGw0Z zY~*v1ZL6HH9P(T2o2(+BYOr(LT#!!N*$uzFuV(d!2T~+gy#C}!21)HL*WmW}i0G56 zWew`5ugPv4LGVfDZ zyUcFUj*UPOwRLv$w1Db}Jt-$MjZLA0#Amj~RP;D(MwQ}6#6zJUSF4n@jj!cckN95& zIo&_FefRj6Arm*CzU+F~-Nt2`3JkRT0jYyFSKe~}{WF7CA09|z--?FK+kF8{#=uOm zR_27)9T>~~jSq>F-t9aMU)Oq{1PUTc?h%ENCG_nA=n}ei3A7C5QYQA0aw!~(&nMnB zhcfo>8Q>hlAv(CpaEJjeJ{+QfV?#Fb5`f4?L8t^eloFPU4GTx{Lb=d~l$_6SZs8yu zrSi{MYY}*z4GcNWI)c{`dq_d{lCB;`jYMb#8X_CHp;yrC(S#?+^Uu^Q$SOhaXOv4H zRynnB4dI*yII6;VOC(G?@H#q=68;RAtsW+VcKRG_z)Mi$5lq33YZLL|Rays5bVM1X zBrlXAsWuyn4`0&4)rX_Fq5M2BNpwpxp(z}exC$`9IcXDBkRTrXAtfvcJ52^M+w^&s z)=!U)aWUezM0k~6pas%`8>))rZ6wkE8e^0i(sg_Vu;I94--Rk-c!7Vgz4h$BSGBWCX|2=vj8-l|G1xzz{lgHh90MYYv3l; ziPFg4&xA5cxGtH$DjhO^7J>(-^lAyKD1N9@GD!hFZFDY3a7JPnh@nUjFO=~ZQ^#3) zp-F$vS4WL5V^~bXF3~9-Qy{XiyWtSs9XM7t3TlXKp;vo{y~QK=85>Jc#Z9nKHxNS4 z8IueH<&$9wXbgi|I@V=^NXe;BHmLtbDp5%S#A6}%)Kahkr6fV9M=~H5Ywb!3uX=t^ zB|v~&GN?a6Vo*yUXVGg!GQ`oS6TOhrMdWPZT0|%kpifrUPyot}-l7A>)L^e`H%Wvq z8P!1Bm;hGhN-6g<5tSjpeGNbK;p3kIMDIlgEV!3YU6#Jvv(Y2(o0RZmxY z>D$%%AzTFIa6@i_7P$n~lCa|xun*X*IuO|^Ob}g50m~x0RP772)enTQknRzw>S5oR z>S0KEu45EG;VzO>P{mGRjV?^3A8v>%3rD=b0m%upbN5SX*x(u|cb?%=!UOmTuQo}P zFgV#2tI4?_l$U2I1&g{z=B}55Q!9{$>`(JI4vuY%%6%W6$b*k$Sd5?17W*HSIPOb- z574HRaQzidB>Bq&0y|7(%1-|ylkzNoPZ}v-yiaE9Gl7*7kbqUJvqkRlLp8=co5BI= zWCMWi>M9+P{Sv!FGKmFEx@7N=QgTBKDtHMh<24zc7;>5ys+wP=j20y0BY-d28>ZlV z5(wY{e8wJ@UN8_9c?46jkuC(oKz1_R|B16mmX<^#EFXbwxm;nI3}ZpV1)&0Hh{<`0 zH<>{qTT*QtmU4pVa-QP9sD)!xH@J(QBcq!L(50%pd?Y9mb{QPTh0mZ{%)ypX!s2?!nseiQDB#+-wmJ|6 zxs?aVt`KSDqO!OY&F%6ogM3HgI!*$MLlwvrgHp)pB6L<@NVwqg0y!j^GsshNerZv5 zH}AF6kugql;bp@C`s5`g$-#H|pjVP)a3Qk?}U_zTqPd~hzuDex0+uxu(!1RvJ`Lf0N~h#OOew0B>7t9(M3soUoNMfJRN!J0WPI& zVOY$=>R)0SC&yX(*hk3)y>3E!g6vHpupm)i$(eoOBj281Hn)R`rxfm}=H*;5 zeN5zrdXN)Tk z|71WSb~1_pMRHyilEG!{*uD&4Ew+Np3c)IQAq^XPSwA6s2xT;)ki2G?4NZ~0+vtK@~JxUEwZtMd`0?9xP`3Zg;Jp*ml7ym@|!|lRzgqSq(DjJ zQu|+z6kLuT`6NUVwu8K{5w4LNfIv%rFN`+HCwKM%xpS8?$on2CoV=?c63P0IvMOQ6 zjKt?;e-N#nBvJGwukF__EAfBrs{egO8|QbKn=T)W3%y0&bf7~0oI1F*%ht%C1mt4% zFNIYhTfm|(8~n0Z?F;8!!eO!4tZ;-Oj=at4YHrN^|?(R}3P~5FpDb^yT z6nA%r;_eOwibE*w?oM&1xI^&b!7aeMdEP&8uJhr1*@S)XnR~67H8Tn9BrH8mG$&or z5Tw_OX>?z3eM#f9CGLEKH{|Y0fiS%g0BuBH5$JsDk_%nIT~dH-dLuGF^$>l3jBA2S z1-rh5+Vea!Kw%QPC^zF?XCL!BKeQf(89-V^U!Gxlu-*YrC-mvsLm^(Tc_&W*;0jFx zt3jWE(!io`4}kc+RvmVNSQ4b=H71n9KxO_{&Nc7+2sguUeMvU?UoRng_afbcMeB{Z z$^Gie*<^JWcRlg7ID&!Vhy#Y(_3MD!%m;-8V-?(F8*I`d19RguFkO9L2c0hvMijp^ z2rIIF)N6Uarqa12Td{2`ci7={rJ*E0Ey38y`)Apgm0cr`i>q!ohPEqki|+9TsRG=R zy}u(vKJ^*wqX!!q$7hxysdhw;tB>NCTf6?7|IGhb^+mz<;_L;o^r6A@DoqB;_tgQv zj|Hmq&A@Iub^E*H8VFcvaFCx1bUXA_Q{&g*aFDaIAWI74a*)TcK_tmhh+}^fG}BVP zA&#{pXr{r0N0(_teb?6kcqt3CzJ+x|I*xpxJwM>mdMQnfUkGpdBEaxw=J+q5KI$*C=Avv3;>VO zEOO|F^+;9Ca2VH2YrqbmN3BMEWm3%#Si@Ii0q0>2^nvqa24b^Rjs)G$#bQP>-LQZ^ zp)8V9{|DMm%x2odxI0|%SKyqpzYqXH5#}`TKO)Tk5h42a(zf{G53l6cx8&ajpk9DE zjRojnHX{M+oL~@Oh~Pg59GCp{C7*BGIu`#oGJYu0aRo#m_R7oU?~C6 zm2h_i04Z8<0N_d}i`bU{$OQ$28i*oYcMt${9|lYO2`3vy81U$g3;}$di*{?xzStl8 zb@%>9gcfjY4I=}9NP&<2^n}BXNFD=_g3$m13&Ie1#ZCc12JGH-*8rP1`fmdU(%rOx zF)eIY=mTx+n{ogT794rp11%_7NlK0ttX z(KmM(|Ix6|eQv6Gfh_`{*TE_R?yF#hQC@}RK>A-kh5(1GL~E zVZbQ~e=#5uXYf$YLqD`fDhI&702zb^07=>%1vnUm^#cT`hkmCFoPz6?18~>DvID_U zM1qn49C5*>fEP!9F(3hCuc_+sj|296alRe(n?7(F22b};TDfJ`wU3xHoHe|~@+1*|;~+6@!~cf9|o*Z_{{ zx-$UB`!M$ZX{-HJbjT1sU_rDScy&Pr6p1t7c*)-luwQ^#2ZE=Ec}E7U8+Eq<3urKY zK)^s4?ytr00W1RS^~L`dNaG;vGmvweH|;fOi|5eEuuvHMu3y^tCcyFNBtdc?E zieFp+0k;5#vHn4k6p+*n3=}}x3=5_O62ads1DLDAP)R)D2*HU0<=VMD z37G^8kNgz@bnLLA06I~mJA8oL8}JOUAmKj=EZo9ABV51W0ZF0!FDaS;deZKF0R1TJ z%WD%uzY_+~!-CNOlO=z407Mb|GtfPSQ5=AryOV?A07c_K=m5LV-6;Twc>gNEFA{7g zV2ue66#_8wgT=nRSOejz0?-S=J>$I=iZ{h;6j;2qK59#~$3c?tQi-~sso zE%+^fH+-9mBv~s+t<<+^O5)O|1bh(1|xcON$c%C6fhfP6NUqrWD7|rvYIS>oqWQ zP=nqqB0wB~vguX&9rz7s01)J6YHWZSWT?6u&+(nX;&)aD8DV6Ob}bEXqyRccd!!om z+fxi;y|wqvH$pdJ2I@dIWx9ERNHBHV0T|W%tpQphFbmSJ%|Hj~TILwB8KBUN3N8XJ ziuFGNme20EbN~+C6b|q}AnCd>fR%k1exPcyVW8*$Uu^II;LFE9V&#o2jtVJMAt2os}ugyRM$cY`oA{hW4b`hYk3RBJgT0qrQ zuS5*|{_AQm00IiCP$3}wRq&_bueoY|EhcjC#DBSJ0~WAgPXS%5Bi$j)zHr@$fj&eIN(a3e7;)~f20#(J^MQ!~1~ag?Kr|HL%7KK(!IK01l@IO|=-`wn z0>sxc~qHkcLJU`y59oFb$|U&Pwa*-@R&f9+}=RBUU>+hzlzQQn2mtwfY}I$ z?sYua`6B_?%3ypE0D{Qw)UTrB@2vu2QUy;5Y}NV3o#Q_uua5Ej!+-@WSV~|htRrbe zJrEhZz*7PxH-Sk0iXC162r|%}fl>per3DZaxb6?Y(WaXdus-mY0k&d*jRjBvJb*;; z!BGOWNr`gD`MHu+r4bCdt^kkJQGlC#qG6U3a86*?&ZCtr|Ev+K0# zRDKSxUH*&Y!FgiElNNm+<_oV#$C|qK!q5DXdxmKFt>Fl)#<`JHhHZO}~65V78HhZv+km>dQtVkNBck{k*vNV|(#qZWTu z{iScrWp~&;p&Vm-m}nW|NWW13DX7Fz%kW#waCLyEVC41TF#R{j@{h2`q}*0j@+ZSo zBgyp#hfs8v=U4~bbRq9TzUmH7c zKjNIx=-DNDpxop4iDUPEoz(j;K^VWs0^4pkH?(haGH!OnTv9aU`!n+CL}nN=jabvP z>*<{92w2njHdR7)kmm(j(xX2THT!oJ?KY#HtV4q=)OF`82Ue;xSgh~t8g;fQJe*>( z`4^he$~c(^IDxx|_bxsT2)K-Qej5jHCI(j3<-nsB_oVHjOnN~x0H|X z@77{IM=nL(@NhSvEqs9|;W@zDD`J?evHD$);+)UVq?pNp)K;w;>WN8c#Y2>S8>RCv zYVT9nZ;vwP+D(*Bk5%4D2|oTd98+DvQBRuL2-P2=%2q<;HbWb|Z21HqW>XWn1qXLX z>SVIEhnC&G#$X5@R~|cKQTFARxou?~9L{;oj)LjODX*p9UpkTF_er)6(bR;}TgSJk zve3vl#D_t?veianqY!lJq?B}+;w9D|HkKDftR>{=C1dEJPd0FI3R+MyPt%vXcaH`< za&2}_?LB_T?)|znL@q16F-LMpkbVV!JkRJSem!K{yV*!I)+A``$lR#9NjGO2fB7qu z)OmOH`Da_9;B8HvfhlwT4*eKbw6Vl{?KsMwrc?SW>8H1kUy~VWy<;ut20GinoG!|m z@5ILJ?`maCPFtH@rn%GMwK-d(Uj8{aQaIkor4*2}#8k}w6RTgrgM>6;=IERXcQHm- z^NfDb$yfeZn<^zA(BqE9Hrz|8GuFZ5yy`W3IYnxeLvDv*7E!GEtD$dB6(9G}F~S<+ z`*z9(UEj_CmvAj%#p}(ebbQM~7+3KePXJP`edMc)W#{w);`8`kfYfzi>5Y#~??nKpoH1 zkg~^kdyuF&R`gBuxVn1Tjp|JV?8|@;`5`5Gcxa{<5w<7WF*Lneq}HA(OswVQ{R6wf zpQ4K223qlbz+hg9drsdyF|5=xRnr^L`9~s0RjXsS2ZxxBws?aUTX`?g%B9KK9=w5C zF6$0Mm)Y?)1wyje6HMaWE^q#+&iT&0rJ2%25Oc{q&%;&lzCq`B3D2pf<9BE|N0}1b zqqQk9oo?+|Zc)0FzF_ZTGOsovzhdQdW`>1cITp>)=5Yp&XppM=^nyTgGrs#X{LLUe zG);FP5VK2vFtYZMA^TU7zVGsC^~#6HoaRT|ZH<5P+R;V#|LDv}b-EAitioDcFHkW% z88Zc3N4U)hI`1{ra_E#dYX^k6xHZx(9ReL2hE+fJaOx$>X^qoS=&{R@S|?wPT4tQ+ zoS~+TX-M+F%~rUzS$00Xu1A)4H4$UQLZbKF^dx@qyIA6+ow@diHX;ol;us(5Do}!KErKn7BMCZt*gb1ZMUh?Zi$9)4N^iGt{t^ zo2ac%4i5jT7&%SFng*Fp^KoVPI4lvgF+lY`+~gOKXrhlV+t_%0$*1%{!Vh z7wTbdX1%xXGuq0Q6y>$q7-z+Iy63L6k8fvpN)`u5UdJxC%e6nU0@vk4}ALm@}~|OUs9rmaC%08gs7{_sfKd*Edj)^;RNM zGEATPAe{G^(%XJ$Y`vsV=M)?3PanT}+GYN3nay15d^8joz%x4=z`Tm0-8c~4a63gm z-<)o{#b|_={m}!7ZJ5A#PS7irj9Qz}H4Q<1^B#39+kpLRZ3j>L$788p8gz^SPVQu%t1sC`-EnCg3*7pLdU*vO8l*=%(|EN)&F3rxf4IaXw`P*EZaZ7o%TJU| zIrTKimuV(>n1rK-ZnBd!x8Q|#ZQpzr-S`0OJe{xb{@1$0^eUy+`~40dof&amfj<%h z0>kRhvNumzltX)m(ZNQJtYLYW@C~uf z7a4FKST!HD9XhB}vz>B3>>2cpg?7^CEvGopJq;q+RJv6f#Oo#vfe>pm@IOL3D^aPE zHCb-s51p_LwG_(pPU$iyYj>!(NSS|DIQKYn%^n3#zo5%*plQpIxIhb1*T$fJX z97uWBiwycx(5iX8EO|}KV(nY!J%o#S;@(I)nXF`s4js_?Npi*(&GeRKHBldnN6DU( z`6o^%f?Br$j9lk04DcG&?(mC!^&^V5j#ax$KAgOTHV?P;w)!6nvk!iQ1MZ=Tw84hl zSxx@?jzd1(-kSsUpJbE=>w8cOIU0-QC?llIgSmSJQF%2y;f!yU_NGDHDan6i+k}a4 zc*lrz$B6L2M(VDPf%jXx@E83ln?}l-i9F7+XJdlPRH0dninDOm#BX?yF?hX0*SOZb zM};q0Z!tM@SWRlxu$z6YiETp32(J}uX*x5KI3L{kpry|>6 zrS{kJMtR)+EC`a$>=B3E(`zgJH|8+k(>bYJ=ANd&-8N@U0U?zFzVnd$C zV((jv1MYJNydCGnm!&+Icge@c1K{|FYFbm=ynw!Q9?)y4lg zxGHg_xX*gmaO)iZVG}j&Y##QmLD8|9KphFab*%oXI=*COGFR;J#W?(y1m_ zoB6^>kBGKH=m~q%-~2U4j+T$KD$Ue4L4Hz~!V@ehbGIxRlaEiAVDabsnTz_RI4LQ3 z2}j3H;4O_G)VBv$P4$_A^1YE0I?dlzma{0!nl8?L&Q7?c3uT?Q(mP$AL57Dl`_1Cf zzN5vKuQ>dItG;pfhwV8r%BC{G2UIs$6Wjs~+TWxZB=^5>AJ`cdJ{=}#Dxf5cpZR5- z-2RC5n;H6pZgKKf1HJ1*KSkMxf}eSW{x|aHCR7C9j&<7En8RyvZ{yRChbKh_wcH@^ zx$7Y4+YLj<&2Ouavzq5=s|5Jn_F5`-NaGg9Fngw89(Lo?d(=ywxNXCYVYRv=B&RbF z)L|7jBcop$Zg2I9{ARO;ES;U_z-^j>*HS1e)%7=Swx*fW2?Vn)b8QS=tYi^iVz5}* z9kwp#ifbyn?HU>^1u@1~O`XKFBWFhs4m`OpZCkkXM*h(sIyIKX zbw<+i)G*u^>ve73fu9bPxoQ$}J2GjRM(Uu<%;9Z%-h|9!E3qVhGE~=q;q-t6#gqXbaSwJD>Q9nuKaJ3h*MNp&3gOlPu+6M&bz$(+_T%rKi|%g<8&@r zgBm7H8|a_Nrdya?FL#TQRs*sPo_Yi|)%aMjrsI066jCGaF%0Y`iM1^Bwsu(i{;blV zBGq}R#1~+awD~yhW#AI`uP{XtosVeNa|_H(5IkBpl`sB$ip*4Bdh#lKBk5T5Gob4n zgc-9X@PG^IUIr@v5@Gj|K<6nH#OrG9g@x?4LDYnEkv8v*j2^gi!ty687>brg~}zhA>- zq&YcasJ7&7{~TjcP12^6m_#6%%9)~HHQy2__(NU{-FA6twJ>Yk)(UK!J}47c_&HHij)j3wiY{aAfAPqISq6D8pMNvg9#fLr%d42h zj~#OzC+WiLemIsdMefoMWv~xvEC_z~|ITHr`*;OoFY>F@aWmTq>-3LDh&dD-UBINq zg^qMQ8uvW)+yG4^JZJ7~fZ8pZzffjBnWU9BC;0r8Zez+Q9atq_Vf|Gdm0~BsK_;?TY_ZU`PnDJ+Yg-E=feA5X#WFxUdiy|0`nTaSQ#Kh|NM|F59gg*WuiT7`|=+cr(eh1&tDc9F>ansZd z$PP17nINjDshFv#%?kXGV=5eTG#h(-Iqq2SICeg3`8NjjdwIEip)$L0zSVrJxmmZa z=(yQF#Qfe>S6g_2XBV#=FQ0^X53iHQQ=1`dX@J6prk)mgmE3C zAWD^>ybU8};te4t(YOi=bF9h-6@osqb>F+G(z0>Z!LZ9IiC;HjXBHBJoOW63Dx=RQ zXfYR_oQh})OL=C1VN9!tA^H=Xm@`D2Rs$$NJHl3)&+K}M9_GC49ktTTD;6t zGuJDbpQLB1RENMeXnUA@--j05P~45Bzob94x<*B(c1-V-Jq>-2^pt(zQYs~J#B zTBPQ?azAH3FO_V%u&}`p7k=JUcuqaxsc~U5(>z?fWTi?#i^aFEkB_VuENy)Zck<0? zyxYX%Q;M*okJu)E!-ICR7s4;dZoZ{M!h~vOP4@mDw`do3CZABU4FAeppFMvGAyQ2u z{G7a~QO|%f|Dc-pcJW=Lh_}wT|Fjx!30HMS^rfAT#_HPvCN&QzKW})|eNDCq1;6jV zV)w!G0Wqj%9>jd@igcc0cDfj>u<9#cQ=x5g^uX3AIs}z9*CJ(Sf(N zJLa98vEZJ%AQ(EO)WA;3lK&`L%;2$)(I=?ymg>Cg3MttZk$Xyf3h8JKEiukfUW?4B z)ha1Bv17$u37)u+$>vD8m*wns5TSf-orhZrv$UC##gy8sIK8$c7-afAP>s||n*9PY z=k2@`$&0C*NX!=GHgCQBxi5c9&UI38L>O5i7nNr!J@aF(O`0vA55q^9f(pMEg8k31 z7^1O$;U$!mJ3739(;rFGd)tcTv}&6W+T)0Um=W=Q?lggD$FRxgzQa~_>Lb_JqBnek zcpIuQYFmsFO=l7qaa3HIW@R<^%e^*pg?Fe}G43RxC)<2YoXVF7cyo5!N0zn15*A~k z@4Q;u1K6W>y^E{7TI6_BCdsf$DwW8DSWV5j6Z)Qd;+ehLisSO87nB4sT9(KOlnnv~ zdTA8UTva4E^9!=1j4`=*FJbX)4|5uMBBft-HB4Py@%Yt#K8?k&Jk-BT0)kq{>w*@zT?? zC%q)eD|HkLaq@zv39RK(@}=C$jf`)rbgiPG?O3I+q1bezqCwF76qC{>S2swF?_W(x zxB3L*S^CNEq(k4sKT$4mygTqNTzlfy`Ke?k73aeH3E!c+b9KDBy1Q4C3()Z%k(2nFx;M}?Jcm3%(Sf~Q&$nt@xckhXq*!m1P3d%%cn|dJi2tDU8zXzFk?#0kuXn@$8YX4UD!rAdZU8DFmo!4to)!Zx0|H(TW*cSq?g1wlsd6}$z`j%xz$ zv7Wyc#P38ahH-3I-n4UBOefZHw%DIQ_FT^momcHF7s(s7c`Yl9+D#B`Pgg);@}++# z?b{UXgdf@{^ViF+LOV>BF8MoX4t@=OXK}J!F+7y>g+cb)&uYN!Y#P1%@s-77k%Dq{ zC4#+l#%uj}@+>9YXU4a&^Nv;FY_PL?Wo2T&gi^8+ttdRwf#MA(L9E;E6bctzd zWZ`V!a^7f~FVTDos2OC!V40E^0K}zAafij;N_xG1# z-OgJ_AP;)XhCJ78iU*~(_*iElD>u-&aF%BIfG||-xP8;L^AGQ$Ws!u~&~{HsXI&ZX zHObzMTFkJiW0Q?~Q&EC`J+U@)rAwK6D~NZu_EDABluBX*=|ibRA2Uw2=Sq$bsOmhK zmEiG$e1!CFX=Nx3KZJ_VNhRh^vi*k>tMS$2N#=p*@on7X<%W9gMv2bEsG83RmG0Ql zi}1!iUfhVQcd6~BZmYWA^i^mSRjzQg_8mv|^97Bc^{)<-LaEvYfg21qmd|A5B0SSd zIFT*lQ1DLkSYh~SO%NF^n~_jffnCAQoU__|b(7VAnEmfsi8rJ3#biMRE>@2|{bgzc zd@Q?{Pxf=?nW&my{Wc2sRd@q+8wQP{{Q?$1R1_MWDFNTTJ5&tv)xaKF0ccX%>ysBg zRvB*@kNgpNHm#eYFh3V>QE;S4jp4?Cx_$R;wpn$aN(Ka0e($!IjSj{^;wx?Pz|jHU zf8=b#K1WHhP_on+yxmSU22b3NJ4dVZkCtdDW^~H` z{s%l$l6c7)Oohzgj8*A>k26q<=%p}q`Q*-51Eutg%{o~el=Z1-VY&X?XiY_oo z!}f;P#HY8eqP@=PlTJ>e)+*r#Ni+k0ZFLzXi`Brx70dT=`@vEs_iAF+-@~6QdKQ>M zV50qgqJ1Qf642#&aKG`IuhV7fE7jf4$7Y~ZS;{Q0X({`v8t#^zgrCcQHpodu8&g*> zAM|M_1K;SLA2G!JMG7sX*yNtIf|s$6N@;TegnhzU9@sQU!Lnr=$iS9T=ms`E66qR6 za0^P-OWrubuNdFiY}g-quG(tR?{#_ssYbD`Txc}aX{<<=i$!WYv&?6-UmWI&l$HO? zl6^^8K5i!iJtRJ8g*frQF&^V5uoCiXlCs@zHlK6-TDDu|a87xz71g31b&sTH{_-Zd z#kF+GQeaLXlISs@tp5%%anD-i9p&6nJuHE{ZCCLO5wk~D=<1`R^54C*(QiQ(F0M z4WA{f#_@#Am9H%AKHQb*9uFN5yY9^XnP~nBuTIw4SQh5L6moj_7JR9(rgxth#rK0| z@u=`$>b6oL#6h{a>V25o@RTZ3&=W6W*&nZlnueFA4pF5d)sd}hl!FH4>l4lOkLQ14 zWsw$TS2v5pS7IEHdww?dAqKw{J>Nu@p&nar^-m!?`zQeF07r3H@0f5b4}VpYsWL0_ zxR1&@ma@Dd>_gIDzE=NUrDZC>?eg|a>V;?yc`h7m9sRc^qYHQ3S6#ZQmCn;8uGGBW zeo(r%C1~8nd$Y~h1$j<9hbedAylLsFD6&2Ne3Ti3L~KmG?st;}8{e9a~ z6w;Bmfj;vS``!1%euE$u(a<*&WPMf~k+H~T_JeG3dZv$}u}u{(gEFc_#L(FH+tv&ZwB%snGgo%`g*-V?bw|F+ef-RA!u4BRD66!&d5QOcl-jsnZ1>u$5}`*?Qq9>Jy;aR{R$ zf&KvDTiY+0NEtMDM9=BX>k!J_E^^DCMO-eR>RvMG~s1vpi+Xm-Cn2eF}hW>e6D7!MByb3>B8-4S|U3m_?kq?;f1ACafQ5;dT zPob(7WJaj$*yJL^xE;@;O{=Gb(RwJnIsry|=4s?`v5trr%oNfrQ>s(hhf8 zv2F#?Y?)OOcv3*Lz4I}|lqmGC852iG>|#gKiUZ-j->pz2;VFfr-JKwd3*Z|HXGCno zIs_{vMY!|fby0Bq96pa7Dd9jrA69_6{Fvf1l@IQhd(a`R4YsjSi!%|7VIZjkO9@a4 z36ALKzYZ~jx6hQ2Cm6ZEhvBgL_s4LiY{fuOJQ)&iAl+?TuLotK0zu^t%NpEV1$9* z=OlmKTxk`;6D(_~^C!da*!VJE7SQ-q<5i@-5qwd7qZbSEJ)8#ifC>W6FlXZZwCSc+fgWUO^JWS!4QbF@#N);7c5~-RqLiY%VII&5>@G z%LO`LOA*Squu{%2=1U3W=N|SLzp(5_A^2mn@p%2nLD~FN7Zx0fq@=HB`@ZVWgFZ8t zf&Qi?lkvv-ISxs^1A(%4%-cD1)pLX0O6)ux3$7y6(4T^Di8p`A?0Tw6N_k@+66Vga z1|ROd;JXPCv8p2d3C1WcpRnfCPhqj%EkLu_+DKdYwETIFNoAQHC&;q-tcn0)9i#G* zUFlZ72zPhUxhhL$T=?4&Qs3vwe)%a6Wf6GDMJ-52V~||1pGG zTqJU-)T)6E;pYS6Fe0P>tl}^Y-nTn)lZ9x)FLzdbpmn+YSo0Z-@3e!z#;fupMfp^&=${DR-(#Ty)4%8BlfRWs z{xWhA(|`XlLh?g4@N=I*#88(-3;U;0pO~R6A9riueG&C4!U{Nu(SNK1de%CQ^fpf@ z4CyN);-+(v%068W*_ehl5iQwo#>SK7YC1M^_e4gOR$vh*kk_6G$HYy1&{ey$4giB^ zasPshoX_PAfcDuf` z&iHe-wMZXGftTi%Z5~r9>f2*l>wG;9$bV-A^z1U+Q_O-fth_shs5MP~9&?pC)@F*= zjusC{q9=!&@!EMxD{BOicD)0ko^1avJ#TCa3BPp*l{uDF4lsI}C>VcFVJ#X; zTR!0t!ni{YLk|a>Nz*VxCYQF~r>^0&t3tEzd&`-Op8OPc5)Z>P9gbpKaPggKUYN(@ zzM#&uf_+3L{iyqK!iK6P%|Bavby*CM#kOl${cFOxe;lI9H0a#KY+edeWx-yNmd=S= zMNhMUe!x-ATVD>M4e&f2Fu>V=4qn0zzkMLMMZnfWNaz3eKtYP9(%Q5G25~=A6gq* zJH%uXrKu)ZO7Zf&S4K>%XZvxnz1=*y%gZU~(ugYAIdn)qlRfn_p}hC%G3Vwu%jTrE z`!9!x2$QskGIaU!*-KQeo$IDgJJ&p;Wg{;?-s%UwCkSCUKw;x~_s;+Ywej=JA4^52 z$|e49x7X94*iFSHrvC4?D5i`pB^{Crm(+gFQNFdZkcnyjcGy%7NvO5F~7Co_ApCsS2!{IVn_ObSz5olrLR;U zcr^dF$j8Ppc>Z(BWfo#=*8zb)pgOgEc^b(IQ`Q6O7QV$(_Pbx1-ny`dJn5fEdwWD& zEhxS|*BI=H)d!Q6d2MgDH*3t1VG$KXTx;A=ZhGGMnA$g4?qpBd%@~L=hNKg8DbSuP z2;H8r`AFWCNEVaUy;an;@TeZ^cRS+!o+LfO>@0M4eAeznOJ$gDJB_?OD?=>PU-=F5 zNJ3++^kHkGIFjqeWp6RE)ZmtLNZ`e9)?h`|wt2ajECG=i>O1B6C-*wAfg!@dZtElz zcipGYz*;3^)4rZs3x(0VUW6cP$eb_~dg{?PUdY2pBuC$4@olyw_7pqTQ<9AMcbn#Z zVOtM89_7+S2TM{aT;x>#Fo}A9EOIqvF?d92xGg6zDu)=6*ggrmz$z>qR~nS5{nBp_ zftAwuD37PcqH8yj>LMC41|qm_J%4YD}6^RxyrcBOPZajKqQa5p)S zM{jG*R6NTK7c@yEY2H-%}6i``ML%qu#mERuw zWvRdO^BG?bqp{+yGSQKcpZR&&SI)l^dgbcwA*FDF8HXs**Wz22)$X$U9P=yv%4{!C z9z=du#0qxz)F}18XY%$M;smC)MN4Nh&|A(4l{ABVmQ?O7za`4)kA!%n0_-!t1C;q7 z0$uH29b+Q|lm-Og`5~a;7hUAPK5}U=4Vh|5pr_W5x~aUoQh50}-+zY{& zZ@;QPN9?pp3|)WC`$ku}?Gf>P^pmf-k&g!6QLj$9P_u?uzDWEaW1dDB>cpFBT1nH* zPfk{@)`haj{T0%{=S2|~e&=wEtZUJOvCM3y0*mwAabVhP)Jd%!ZZ{t8>P*>eY_J}F zuxR2FJS+N_czHIhG$Lu|_Qd{IL+K5(=>eizt|0UCNmXe)oK(KI@w>;~@-(dmGo!9W z=|VdyUn9bFKCUP`b>sS>YmW>CTaSWSl z5*!baUU0o(GJ*^H$9(KLB0U%p6nw>Kz4jMUU8XPcJXLMtZ26mRih8$ym_XvflfPwm z>g0karusjWHry&T-I(2IYzX+uHR~?SE0<9cRCvyKOO#FchHrd6DbWutcW4O~Hh*IC zm@iU8Te0}-J6;$2lOh9o_>4v(zMx4!Wb-8FQFnvYSl8#5+*LuXd57e$EEdnm4vauo zDvTxg(-=ppH;IT-p61&zC6}!3#yAQ5^s6L$F}6NZ?#2fMp@wlSIwzMZDMxiiDaSDs zbDx2a%anElKRfYbm7SfJ^-!)-;@l5^X3s|!onOpYo%3k=wrU9PMj@DXO#IvTo*-t` z4=)dU3w-BdfdWUc_7_aX1xZh*NE<4xqsJ8C#(93{G!dN&;5$J{nPhMIL+hs{6biy3 zYd^RMVY4ON{w;cI<)jo@<>;GhE{TWFVES(BfrK^QDXBo0%S_U>SYafbX&am5nlH3I zn!GSNT>kOT^W-sPF;sEV@G>50$@1Bt87CJC@*39U%rn~U z;E=XNRJnuLABkf|bx)a9P4s4yn0l90=(3;CRQW39p9Yfy?_@>wQAZdAb(_L#*43%L z!UcFU+19cb4qb^L@N`2vq4wTt}3i8RtRD z==4^7#&Ocx86Wf#LS;9T?Dw#`Z78vM^4K!?M+d!k<&NMMRQX=C0lGfZxRryo>J@pe z=S{ovw@-LIZMZM@aQcr8swS@yU-t5&Sha$~i%-rC<*aD3{EvIJy9(V6q571zvgte_ zLd~_lTAs;=2Alei4)+OekS|2yGJiaT|USouh4mN-Q=J6N?*!KYJ%U7eDs0*f}z zd0y6#n7aX<-MTN0%_^ApNm6zA+BEp!*)DQ}C3h|QRR2%EO(c1#t4^Nb)XzOPl~k@Z zzgOw5YE|ulmFoSP{nJ6$PNqF`)=vxfHdmUah6mdMF_vw^OWOi_LdakR=6&OI-tEPp zE#{1Efp*l8Ma}4L{lcuUj{1W}$>>Sz^vZ>%5%42Men(hW-SbGK-N9Ga@^^Z(cIV)c zY|*(q{(b8-cN8PM?4vJ;X|-*wius8?#jV?peIe<=v$gW7#jD|mEvS;2moM(xr@$I= zcFSBmX_We9?>6bi#oF+oXPP~Qn4RTGP@O<#JEUO$=-P@?N8zU}e_Pt* zC;cEALARQD6?T?}TIw6&IKmyMa3aERcB$6SY{DO=;@+&RL(4|rA$1)J%Cc)svkD9@ zwvFwUmrtv8EvigQzt57J4k zM@z2HDqGi-!`6`qFApLKMALZJlwUTS+hi^x#{9M^hufy-`1Z%f_r3m zL$_&0t;^L+TGueWlGVS7c!tffhVOA5OZB8+PKvH%T+FkGHf3Dg6nLE8CQ9wQE9-4} zSMl$q})AzsZj?-1&6HsYewAV26 zubDa;r_4QRzKqyv6lP9GR5Z>xB_=+DdE9WT>phK_=NJ0H zYu+A6+Is|i+62Gtcelwp2GScZC&Cg|5-K)yv<=4=9{p>>Zw%R1b$@fHBDI4}Z(ja! z@@~5u52S=gYcp;Wj<|p1!w~E#5Y;R9`@`xK|MLRH`#a9b>Liq8|FX17*a&;_+1kAE zPIgjKjm>yUf3u5}&a@fC1$Bx=B9w4a zxRD?o&t=MulUD6(P+MQoB5_mE_+>N|HYxVD%>^?hV@z7^Q8O2u+Ng z(C!P1-|hR#xm4rbj+`0Y{$VHuxW zPa(+;wk|b3HO}|V-08CDX#F)xtExv_t*1SbHBhmdN>2D>&%J1LUFhVfo1S-c_OX_9 zTI)xKh2#TfzCmb7xA9Rh>R4;=b;~uO%Cj{7QTY-5676!>{rLHpA=rl}j(dz&mADf=?R(C! zv2y1oO4+fg%F-9jiPd4K;Z#A1Jm}@uiSYW~>nsN^;i}ZnPmnwBBd@h<4Kl7t`uToMP^IhDGfC0L zKHBLx8tFoj_IjG%U?5v3B)^iD#*T^<_Ih|`N^t&>OEz|HLc3e%NM-H2uuZPTQSv6{ zXq5>h5%AGSwZ!^YF^Ey zr|cqyBKEnjYertykzIyqtdC|}pM!^{bNB*%QM=HB=E?SnAo+vJsm3t}ad7l+)sx)H zrWaO*%ZjurmYvY&p5KgL0JYZNcTvMc?lK$o43>xm(J;7C{2YzIbe9j&vn}WNg~JpF zX>0Mq!Vgp*#k@;V~Z}grY&@}H#7uGKwojPxl zxsv?SRcl z#si?iMea>T)>o@{PVs3MOHdd&We3FBZ=B&q7oT#(nZ3u?cCz*pdD$Jf$}KfhP;xC&TjrIPns@gCJ@k*54_~nF zK(&mZJfqr3OXU_h{xJMFtHG_S-o}0T z@|~+w?tD(Br91=g%XJUEqWvpTrsce5>b`kl9r7>h-oMy9$)gM%Zpbs{@Wcb-7M4>+ zU?TeUjFHrA zu@#s36jkh&J_7*O1y^K`-Es`O0?g&~XSevWo#a4S`$u%9CxfhfgT4*p^T{{M!8Pey z+r2gXgRT3>xjiB|tbKCTZqmhjIjCQo$+(5*b2$j4NOAn+Th#%w#xXfBLn8?hxUKPe zJiIJm=Hhc!ecrB&EF5{b`GrU>!TUqePrK5ZZK2n!jUB|M-ALuQ#ENnhb8hvxblG!E zS);7{6?0?YN>0O!7xZyk`iWNJFEpA{bC_%N^!s)wr8+-$sv(_tM4p!)`*bKa{dUCT z?>Xy-r@I<9#W}>K&Ucf&&kKo5eag21oW}Xdg89(g{XVJ_=Y)&^r96SxR>miyK>2VT>8exnp;zOWD&U+S9{+oE-si(L|Vt= zyuJ{M7Y?&NgYAl+IC#CRI-)cP|MS*c`62c8a$9T)0bjg)$?T5wa*GPK>y0Rs(LVFl zKyJ~VS*0|mIql#z9=`FfO`eLi9?X@&e1NPjOHI!7K|=iIyCuVqD{l6NAJE2=Zv#tS z(NZy{c7?s4E&g|!Zdq4TBtl9~Mds%1i6!*R_HIyQ=xp?7=qO z5r*@M{&r#jvN{_kO_@2~|09@Dt8Aw0&6~;6yImRf&!O26)Vn@&OD~=SyrE<%%d!>t zAy2EHjcG)6z3fmoV_osj&RV#j&uGeA{9($2yd4HLl;Z@&+>9=^-x!{yFN*!PIZz(+ z{P~UNnp=vPeY`*TDsO)|M%%xw`rt`ABA5-T7Hwqs$ z2Q&!(_Jj@1*IJ^r+Kh@<&->RH4Y_^}zh5EVGiBrzcE|oL#<@K30p@zXrITNlR_< zeKKQ>Nk#Lh2b^)uTaLuRVV1prt~RVD%TS9SgTNkDCiyV6LDVlH*mrGSHSlDaE2VFc zlkW!<0!=`L(ia&kmN(fO`j}F)BzTkau|#Z2*Jz_312HkWivCp2`&Dnbhy zvzlSp=qG<&J2x%c3$1_+hJOe>r!qSqv!xhT5)m6$VR12}DB|+e>M3Y-`IWXxEewk} z*Nbpi>8v4JmeoCv=2Crgpw!U+>OiS8+WA0C)z=4xL`r=+#k z`?|=tN>XOXqOSTq*x0Cg-*NeucZ&gJCgE33cpb9aBer?VhX3YI$&*yp1Eyb}KG&J1 zOO^m|j)ly9IN`F}B#qgSQu+WJ$&(%X6;rg3d-br}I++=$^5U`YtwZ%*e!$x|QoV-i z6Xl`q?6n6D85-3NbTt&N4`*X9Js)}ZO zp1AARE56|K=?E!Plf&9YNDTIHDX!?gFaK6Hi5HRnj=uJEJQoe#f75afVMTG~b{>W+ zu(;oS7qQ;4F~qx%N-4C4)yEk#^O9sFZQ(C%yBq#ZIJPg_Hou?e3RW~7#y%s^`e`P9@0Ct(rlQQ* zx5qu@dwYbYC{JrK8Q)Mjel8h~=05^2tbs#4wHsl-$S3*!Xvc%(ff5oN)t{f)B)!}# zS1HoJEl>OR$>e#fiEg?cKbV zCHv&3udX^YuG}S_y%1)b8cTcVvlFE4WR{qe?=2x>xkk(qyT#p-UF1{0K3-j0y%%Pa zD_YGhcBB=cbp>GZIGg@G9sMrdSw4I@PS-%4tl^ygXDN?L8c&yftb+I|h?DMN0fbB%#0K}88ew|AX@}K$z5B>XaAYp){@Z%%kec5W4jp+~kc`q`xLKz4SvynEKbc;R=y}XyeNl5v# z@_8vnA(2BRBeI*PJdXX0{jEi4j+O0i)Vp3nvRW%d!lecdr*{JG58T?k<>-dF-z_1!^L2WbV^e;t42h^t z57Ax<>8qvD>IvoPFH?^z`?KnPC`q?22>X`sjX{Fy(dgiydUi%`tkz$(P~_vpbn^8@ zwE8B$Bl-78if`e_f+W*S8BSML^{l8f2~ejoc~S|P_i4cAhjJemB3k@)XiKM33L|=S zFs_eV9}{Y%8)N6PW;}uXQUWu1S-B}}L@G2vnRs6>i3W$qt&4A-2AJ>XKE6`=+;w-{ z@s68tsY+?5!=CN$Qu1L~$5LcfV~Q?Wy}xOEF7D?H+)C!hj~F!V;@%4H88MpY1PY-1 zuW~w;2;*qk<2lKVNUc?fO3r?Mhzr`k@lSC#at84Ti5t@Ne5apA^s-91CjWHTyAV6e zI4u6mpb6G7CI>br#zTFnCQ?hNFP_R%x0S_)<|>eHjT3uFChqmAg7u@!x)^KMeaq+{ zGiSOb-xb<$>SX8r{AnVQU4?H4i5MpS7VH123Jr^-R`+w*+0_kX(=Lj6XiyYuTKd9UoCc)Ci-!vuTc}k*Cwwf13B0n3(9ZvL)Sb0zvWapQVisDdT0_)S!>}FWfx1$tXG&OgOCRi(k;W zH#De+*!NBoexl1uKebuc-YvCzE0|X5P+_k5?wsy*mkC{pTz`IIw4eA32I1%xH=c?a#nHyHrKc9A(;X~Dndz!pvnNvtF@I^%T$;ot z@$HXAf{o>_(Cnu6g$b!JeO;Da=x_cg&exq|tUpjg;FJ=p)Ze?+`y=^|-%?eF;-59? zy<1jGc=vB`ly}Pb&r|%PED(7unTpol<48wYtNPbl#2TG%i+sM)X#WBK)?K9Mhc@sQ^zaJye9l6=tIcxKinz+ z+zV;(gZrAotFxg#qWuR`VST}Ar zzC^qE&u-7=?g3%}Ks=&bJ7h7mHcmy_`r0h1Cb}pUpBM-7`BUq8XggPnd3I>_I~~f6 zPLepa8&_-mQ-V4Q#t8pNtHdHs9OV$?At#N8m>}64jyVOIxrN0K&yU3K@eV6X_j>m+ z1MiUj8qS)oHQ%Xdb~aAHyS#cDNs<;ONt!v*KsvuC#>9uqdOGrWUx_dTITRXs8(#c` z>G%@(AYyTxBfZ}e6S(>Up&;^K_!prx-LBnqPi1I2QsuNiw(f_Bb=$8sAC3ss(f;W& zUY2`sNwk6+M|_OGgC9_T@vobEjdD%cn(WlTn(LI;dZOfmyEXTzs30q2S{$PL-yvG^ z)b3tF@m|8rnoH0=YWUxQaGdkK%{N&BM#3H(b##7oEi{bx3u%cC@m&b%akLx!x>quk zwL*%44y*AB?YP=F88`!DpIXInCGf6sd~p--7DLNIo1|U=;*j_rq8@x6;&r>`8P0@) z%q@@RC}n$Bs=q~Jh%6r*21gdf5mDmU8fu z03I=pddSaiCu>R%Vh^!Xi?vT{R-w@$v)|d}Jm~6f4Pu08C2@?&;|SddcW|tT?rXi^ zxe;560`@}Lx+&Mlt*=*N&dCMoS^$hxfq+aZbdCidz6?;MGMUh zp@+n&uQjhA5B?pI2JuxF(I-O5Cw~M^vMJD%Ed-1?UxJBO@R#sq@nlImY;dRW^+G$3 zV!UQqUQwAhQSXKFdL^++@=)!CLUFEf+{e|xYi8YlyOD&iApGd&cW|bPg$WcT~dS5;fUs=S0@c{wkdo_BgWX(!7ZZCsEh(o2iNn}?^HE_jojBxJq6y>{1 zy6vs`Cmx_l8E=SH9#luJ;BAIdT2l&=wUD-u&XF!rx)8JC5y{13h_7%zosiw)G2<+e z#t|+wx0wvF~pMf(TKyyUJjJt#%hsR22kEe}a8QSTta2HY>x{UdZ z=;jSo54j7;4xtSR2-)i{zSrq^uknQXkBo=tV%$u}1)>hW5Mv0VuPcrd89!7NG z-F+&AhBS67cc*kyTD!=hoN@a9%KgxeC=$I#>iw&*gR%fHB!z!ScG$>(#P12&Qy}&r z6lC!uzj^8*dhU!fM)c_rpJmP)bVC${PldOOlYrZddq)Hd#=pe_;i=-@JxK)BQF#!0 z(0T9*()dwlQpyr7p@?n(1b1NCbG#)Y4V)&N*borTEUpZt(n?5)yW&bnEEAi1cXhXA z_+;>Xt{Gb6)tS*w;VXw6gy@CJgjR+|o5-#`uqLiE;@&ELyce2s@Ar~>zq75iy}e3e z`c91Mx@W7{P_B?!oB)d7Hx$g2f#)o6o>P@I-L(+q3B9$K)*^x|Z~`|1B1*#5Zt69= z6GiP%yOUz```AibkJBS~1@AMP5m%NX=fR;I`8f_V1)5lpaPEc;!6bRfaY{CV%StqJ zpWF-(^5AF=$ePERyfxk_bsfnZt~oKe>^*w~clUHRcI$N$S)Y=?54hkC*0_Q!Ei^57 zEi5f*kqHG|-9ZXm9!F)23@`=asHmSJgNzIz5U0KtoWtwKLxjip;y7lZuH7OEcAN|A z-Zw(sBHi59*TA;|6O`t-IV4M@8pNywE5!HSBt?)7v=ASX$r8lj1@}$itFfpA;4$OqF>kzhXTD5sc(4XOqy0UJo5T?+KAi@BmD)f^p@*9#1eagBGbH@gr)X^s|wlwDlj{mAiV~ zVbS`AA5cTEYXff-n0*;>mj@`_U1xH&&8m~6xB()iGY(9%3&~eka%#>!$+6Eczqi}| z4KO;SQpNVbgI}3_>>U0#KKlwfV^nfY801N^W$}Vzv~;TY6x|&!Fl(kO$Mg$a8s1d^ z9rpQ>B>&pu51dya{{hN_2m9L;V|FHc{d`XEOK^fJ==1K0ZSZ5BNi}DLtsh2YCs*$o zW6f3MI_#cw7{x?$iy?)JNr$8fCIoZ)IMlzS^8>xn{uy>78HCD-E!8uQP*)t9laO5 zDyf`v>m#3Dl+#6j`4AP|!3VD*Cx&+_0{Vw;#Pt(WDtA4}J&B%Bgzo;8!MN5zu2E-L?xau zw-f*4;|AJQ%9%}#ALkZF%}c8i6QzUixHjnH8r@EwLg3#Ba~rSSzC-a5elu>)JC zmaVZ0&~bHCZb9wm`t*{Xg57X=MWUgaX%!kxQ=oHywz}I@#+Nf}hO=_dSvk;7H z>LsHd0V<<_N_eV);*$7I5-t~q_|i7YNFg0id1GrY;?}Nn9Nl~w_?6w#|JUxP_sA-o zATcJ*x`{I`k`h;?k*4A~nSmES2GLI6h5Z8#U!$Wj49-Mjbrnx`6aDmwA$N4~* z@#Vz(y#u_kyGp;x?=d^!9`ln`eO_M6FRoFxG<<~t0b<;nK=AwL8_i*GL$oX5ohfh|Kp-dD z4T{KraHx zq zMfZiZavZCG?Qs>D<>u&|dkdKu2w~-{mar(OmZ-)LT6;NdRpdJhmr*>S-St8;&N>GM z&klh`=)XO0H9vWU?ku?lxd50E)erApcVgZaDW+846|WZnGY|dcqGtgJ2?dC`srJH; z>iI{Z@}FXc|1BGXnzS}IhJmtUs=a#|YhIDQB7Lpp*@k1Ry^qCax24&u*8}0j>E3jR zF}jQcUVt7eV1JuCqlkaXyatI|D)|L>!Q4yc+|$0@+{7hlKY#Ymnf=}wC5Pp!uHi-! z`KDE>Qa|6E+BB00VTR=+uSW#mhDJ!H_nT-uQ3A?$@vi1S4r~bE#Tk>Rzdcd)PaU4H8kViCK1BlIGU+C_L^K7nW~YO@&;lrQ#MCG~tcK6G^-vYX zCwFIGWQHW7D9E?8?=(y%M3vk9vecU!=nn6)-1L=N0Jk>E?U8}Uw`VYpbnwp3@7lzj zi(UtfagX%7{+agUOl&Gz!DfUlTNmE@23`DXj8p#H+&I!!Eu#R^wO^iD4kui8qOit+ za}8D9veP5Rgb&2Rm?!RrtL+@c;LC~$;!{GHW#!97O4Nkc0a8RJ`l0D@5N7F%WZ6*l z?n6bRr?qJ_7rSpKiVaQ2^EVZ>Egj|hcf(m5rf$*xEE}m+2w^N?(BPYcU`cZD-WzAD zeFC^6Z}r`trN_pxspAnDC9#}c$z`AbE&|D0eOW?+$Vre2;$Cv0E8xQbXTcCqL|kfE}dG_Oi??E6F{-4%}cae_)6=HDWyaBO4AHj)B6D&5E`77 zB;R)r=x_bI(JcciF5VQ^r5^`LiG$X zJp@Al7b!v0HhR_q;nf9@nAKoN*9f1(Nrl%Z>NCUYddp%E5lU;qDg%Crx}loo?t*PE zuulSJ;X#U662#!cpd!@-yyacR3|^fgGDVw!6c%m}Goo+=!tDNo_yXy6xfzhsC4-Qw z@c9GWVawnh`JS)w3yA{28x#TESM36=8Znyzxp`DFvl(HS)|E`{m_n@LI6}!`7stC} zVjkJuK4aP}BO`IsYw9dBFh=WUexQO?1X?*)uLf{;8ek61H%#5{iR=mRB^H?n=F_hwaC_^-&oWP7pD?S^bE%_#PI;OjYClTOlj;zrhqvVsIcy>r4_;kvOPdJSqB zq;hxs4t##r7bW>CA;0us$gP(J`MJ@pbS*!)V0HK$wb@rc_Gll;E$F7s+GwfW5Z-m8 zDe-?<^=tVZE-$5`qsmXM(ly;KhJuw+8l!9@cAf2N~9TuEcDXcDn84KiPj6 zD(OtKOC5Ymk#ex%t&ma9XE;L(D@9t+Y|RAA6G1y}DJHO7RY+Ex`)L5h@dyrGq3{iTL7~L(jk1b@A2kHo#(gE_O;VJ46+v~{{+#f9gu~6 z3+BaSgjgOw!)g`)gBC8(S&i$g6J&YfM|ySQq9bgJ)DDY(XXJ^q3p(~A)nwp}+Ge+O zGzAdEuS-*PQuuAhLxZ4*8kU<*p1W(xQ@Qc~)E-+RILz zSG1yUI|B6ijx4sE9c+{pA(+PpS24tQNe)#9DO4zFAi`;4_MU!lg8qr*Ert)iBr9o7 zelTONPF;5P*r_4;qTQvTOK_*PamMu_Au4+uJdY&~T5Xs)u;Ep35147wY!1V8F`yJD zuKjqhjPT2GuoPC-SSQDF>YDJ*42a;KNH9Ge=>PojDtN4+)IW_FYb&-vQPI%ku&4;F z85_Q#0>918Kmr1QKgPgvH38f%8x5sGB=vd|7F9u1IC3px7t+MnkhxoBpP43hVnmLK2{EtAP*Ye72Kc*8bk5HA6#MPyz_?FF8~@l>9P);Uj=hI)vj`U}SWhZ=T~C;M(Pfh*&|hoysGS3c2SQ$=DLcX=FKCLQon z0YRv>>y$2x^SIvCt^9gych?2lKfNCdR@s;j#3r~5QD#G;HIZYV;#rBeE!^ABcg|wY zEBX8PoNxOb;)-Ms8J73Ue%&Htc?AsQ@q5q%+ulknd>G~%tH1sysksf z!Cr%}SG@o#j&dhxXs#P>jRcOq!5!>^=z-+9jrw5dF;&dX&IZDr>$2(fbAavt$Tjwpr$`T@=ZPR%U$O>(t!vsK>N%mM}jc+*yjMOvi#7lF1^L> zdc9BVWo;u*?IL1jzo~n5;&vI4=YX_uYWMh#)i+DRE)TuQPEE)ga_%5wZ9;-<^ejsc zH5KtCuy?m7s}L;a_IeeH#oS$=Kq1(n)v2Gb6F5|T&GzI$T)}RIUK3O+33ieVQ{xGw zi5!31A`^Ku8*oOrli7zZ3auR>q5E2@GeZD%z+r=p`Z8RqgQdakE9BYMnQ;r>lyyi5@ig*^W9U&Ic7;za9AE8FF_(1z1 zkvZ3?Ff2I2CPFCUb;SQEfeszwI#gp+WmL|5nfcmS$ym!+*;w6Jd+wEAL|yJFr;UQu zi~Kr(4WkXY%|n~#HVqhVyk*q#pS{&t2C$Omn^tO^j|vI z^yO_pFhLk2j1#5-dkFJ_J%O3Rz%W%9N5oMC*8_aF@8=J0X`*QQsh`u>KTM}ir=6jm zc{oEW{*aZ;g-iA|<3#>{476MGzjP42{f~h%zWR@WT2rTK&m{=P2}TKi5lpFzsLQE~ zs!OlSt4lg1v5{GS4Ga1GUq&dE2mb#@l)UgiJRz9+U!D;BuWVLV4 z^S@l>@n2R-{1-48RsO?>HTwV3QT(5t_&>s-x&_VyRX}1L~<4&iIRAl+t^fdhm z>-WfPo31<&`ZM5RP5&wr&jy4Z&X2j9EkAR99&-b^ykLg87M*T<~gZEHhh4aS!F%3RakC_POI=#khHeAuB{GH#IvMfV_+U!-~k{d z9;02azKR)4LXH;Jq4vg~&<1ILU6LQAGo-K`k7Sos9(6A?&yR`p!ge&hJwDOq zmi-LtYGq$i9?gdV^jhSMc4`CiNT3Bf`CP*nHhMQ@vL@K@bGsm>G+^^}eP9+g7by%O z)?81xunW>ZPF}2)iNq?b|Mne3Yl=qx!8agS$lY%M| zdIi&xZXrqt>t)jz{vcgTPbEnq&PDkGiHq*mg)UUb0;!uIbMB1hlDBS92F>+Z((Nlq z*;}_&fF_cdesC`!3wFgW6+{>LFFtgOy%jPX^FA0*>LDDNkPU}OM2_>OFWQ>^tO6nX zywJBX+gE7YpM2v0`r++sVA9{{j6YWndS6^>Ed~1^oi7Dyds0`>T<9;#nLDId>vMJ* zNK)U|en%^Mh*8rMs3%W6R}bOxp?2m#2Fb!4X_?2KfJxr0j`1azsqf&XuTp2u>IPT} zn!zI*2@9@`smp~0S)~of3Pw6WUnE>FTBR*sHyYX9dXK!sZX5WcS?bKvGjvITg=g2j z&caZk+F`VPmq0>-nN6s9k>5xYc3G(LD0jE`X-PY6j2%k#>SEf%a~7oA zX`Tl5Gb}@A4w+{Tbvqe83xEQLwQp|k(Xw4wiTq>!2B5m`Ls#nKUb2pVwh1n3&W0_U zZFv}76l4EhPH?k^Edi&!J`Q=9EHDZoK_zoloKtsU65_@_yhPz}X`9nvS zy=7jQ9pt|&ZOyB5JrmYZ%*meiHY)qByasK1fv&WwG`DJi<|rW+d0g_S+_+HB=-fV} zZ4b&~51cSJdX=&mi|Z^BsuB;FgD@x?lycBKK!-tyv<6|`kz$=lZvzEj)8uc~8H9r# zN1i-uJ1=noq5>VCK)X^8QZ7o&^SSOD7x~4bLSu#?#~sU5|L7U z$UuH^%s9yYE3g<_a#WAr3gjBFy3Jh*&eD>?mT0vGT}f_Vm7^?ouz=NJbj_XOnENf2 z7ZPyy^kNYcK2qy{*WV#O{SW-rKd8Th)i!VSuKhp+z>=|D7!Rv}xLB^jor1P{J+lB8 zfnD0sgRI|RdNNz6tXas&fz-|=Q}bmOWh>fC&p%sc>kMv3I<9+gTPz#Ad|sTh+6%A? z(7h;LS~b&HXMm&*yJK`}#0jX};aa^N2b;1S>~7PZ-w0hvn1ISK&j+-TqoS5~&xf1+@7`a!*LS*< zdK3*|Uz>ED6x8jX@JsO=40v;Gqpjq4E-oftx88M0@idR0Lhr0bf{6X}4caeP9G;7$ zWa&#j2&E>8U?=zG zR0l0+^q#a|%U`#T=kE?4dS98|E}tBq2<+y(4c=TVL{&jqUSLsGT$BW2MInHSU`OT~(0(-+zI0B>XSzi|yjs3wNw;zkA<*Rr{U$TfQ zMfm6y!t52Ano>`f6zQa7$ulmd?W|A&h8YxoNLiqqd~HJX0h=gIo=wNqa>&x=akd>B zZy;sVo9k+~7eZ8=R%xAisi#SCx45;ou-PfBwk21Duk8!$hL4xugI6CxTbH(&!7wQ{ zf4wP?NZjhKp2QAtw!za{8;|C;@`K&2S(Z|_Zz%uisUsZ;S9IWB@gf&-*m571 zqxfuiy=8ARU)eO`J4_j!@wxX$HVx+Fho`vILkU}Sb-7~4mTW*hR49o#S@l*Ql;O1W zAX#L~5kvK5E8W{eWN~%PglCEHnO^<<)8SX1NIbW6q@MppOPk3qa5VejzI_9f-Th5P zwkw8wB{kjUu>EfMEya@Ko90eT*$*ufB;N+|Ey0_&k&ooR+C4b-(RhE8EO!bH&0y~! z(Ys_%IUs|)Ae46fp2)aF-8fNSX37|Kg);s&Yxf`L zUGeUPbWh8%R!K#rbFDiQUIfd=^<@hui+Jqhz}C*Ti_hTfM)aso2KrqQ7lTjC4f%C2 z!=l*;@x(&PO=1Mq>p#V*E9$Eqh*9ytmsF>uFpgVZjm7-7lW{K+rrlgbTK3p`d0*z; z+*U&=?-hfwCHGX3lX|b63z}rflLpTr6Jt%O*hQXQB-@Y)CeF*yMSpB)bI2q}P3pi4 zyjP`dFs8np*6=gWOZ?JcY-fIGzW%io@I+^fcQ@6W--5@}`-krJjMdPEmKGql9Y59k z#B+Pe{d*3vNUO#ZP(J_ux_QJ#G4+A+51I1(pH=jd7 zS8>Gk!T8f8T<^4>!4thH7HCW%Z-3C|&d-aZ0)Mu>sf1;3VXqO9W!_O^Xv$sUr#-xt z>G=W1d;wW*4?p~rqvq=eGf2EoI*tFIo1uYTZP5*CO4 zoElw|SZ_?|oO^%u?trn%QS^@fO>oc9Z2oWgsJvk46KYuNlVd7bV4SsOaJ|SNp=?Ki z^E*c8qmSr{n5HQn0+-%HX}3z`+R?TmpdbaLKZ7L8|4xYs3JNM}*yMby599m}%6{H?-Q@sVLsuZE#_RnL$+B}+!ZR$b(w zz8|4V@OSCnuwnn8xAoiGPA^4ENJYFj8#>x&V`7ZnelaWyY_waW?b$BP^m(H;ILu(YZhM|mr$f^cOn32(U2q|D_VwqL-dloy zzhdgp|Wkm+8n8Enx!sLWNnFYYO?7^3vXE?+)HR>-8Fe9mThK z%GBiyjC{+}6@I>Kl`cB7nMW#tArrRv_NA>alRN_-YmR}rdF{*W+yD>LO=r6`JNt)w z7k(u%Xyv80CE6sD^PgyFbYg$e2?M{>M3Ox(5qNiqynTWA-8*fop-T$LqVRo2CC_k~)0DWQt!jK$x0vvCZo%G=JZ`oSiW!j2g*yG>03upw^=K#_NosozYD%mwQ|QRM$gx zA*u8tB*IHc+=(=4R`iv!Hf_psd0@;AF@ghG>?59~B-1=$tADj9^VoY^4|&3L7c$u= zB+T6P72I={hUJeKojN3-Gc$cZOtvPi{+5ND4<7q8d{dpxB?1LKzLmX`=xS0+=u;@( zgKWRloUtN?&rl60^501Y%b}PQI>CU`AXLMAViF1mF%^85MZkuK>UssQ1QLqq=94|p zL4j}74$7WNsqPZ@zw@Db;x8UV&gn3V?C7ZRKI7JcQi@tasFJMkTE^3_U&q zav>|cI_`vyt(VZmKb)Oh-`rX6cq2wD6I9~{!N39}B4$DmiZPO{j@(bQQg9EgBfKQI zp_>Bs!xE<|H?D;`*+qdxRCr}ST=)O~9b`)BWuN2a`^6RJ<2h8E$0>4PPY%3uivMT%4###=Hprds&(I*2KLi zSVHxIj*3;(K?T^q;2&a;(O4KkAGp{kPs~$MNEPv1?2_;%NNG3GO5KV$*ZCkY)`#WJ zHlm`^D&+Ykg6Xupb~bW^2-QAOR)}HNU4CUnb;oqz%hvD(^9&~b4-%4N50;c1y%d(fL78$^2lBxLpV z32FWq7`Jy$r4}DsgR=Qvk{!$pUA~OHIVyCI&dHOuik?w-PdHeS=AsEgd_29~KVpOC zcRk`cs)gX*Pm_^XqL|JP9}7p6t&13ApZJTt1U$%%-Uk&;N9{4uIJIDcB|$Zx$k0jB zAUer6`S{hU2YaWFi>Z1}j5`I+y>nJ@TZJsGV)Qj8W^K&<-vEdn&|bE!X-`?HX=%-X z6yo#{42ev7m*fS1KT^Hdnw5CE@)*ofAaW`6C(8t-^BvqI&)~HKKf4Js1&~tYPu{Y} zdtd6UjsIxOV3ICFuEFx$d6idO<$i|2`*zJNzX)>(rS;k}vB+ z{&M)2O>$4r>qahQ?2gp${a}E6?d^s4`=w7Gz2E!s6Z$dm3-x?dPykQ4(ZC;{#jipL zGFNEP3Xf>MclH%-K>W^kc;^mMus$qj^K5fA|0>Pli3H^ZOwn5C`yNkU*W_48Qd{if9@EdN z&fe$KS-dh$YN23?SeSVp*VxzQxSFIie_0*(JoGqo+N;l&`A)8X6g#)wm{Gv&GmX)m zrcO?FKJ_hLoXGhJ@qMV<9D7=1IA8gdi=T6d>aN(liE_^!l1&AwRGJ5n${cM|CH0EG_1x$D`fyJx?p9?EYclZ z(|E@KDNtOz#KZzp;0^ke&`%8kTl^GTRcULW4q!L3%;Wcq3QM)fAYC&UTN7M=coFzU zh|Wn=#cF!nSgrjJAX~gD{K1Rz1ulV>KW`5z|su=N7X0Oy=a;do>+KqLTrLMvBBp=!JuM3zmS#q#;E0=A?t)azPNRapZ&Fu(IYV z-&bDs@~NNnYZkyCe-?~yqoP}-!yXOmVea+}v-qojB&o{^R= zG24+Oc**s0QT57E4f|v%9W=`A-?b>l5#r#Bz1Mhwkn$z(SE?z8cnR}jEQHaD$=Aiu zZj9Sn0AR`Pk5<=fa%)^0N3|Lf$S|hK&&3!scvzY`TPr;#(b6byR&yP9{XF+FdEUw0 zSkLIEDv#rurL%ypZH=d6;?FC%guW3=0r$*=H=&?hbJ2fGY;E)$dM&)L`bg5W-GS{u zbb$0Vx&O<8Zc@hCHqNtk-u;5g_?azL#xp&~PF2ZXKQ-~OgEq#VKF_0+d3_jilrdz561|ql^mp7B+{i)n-Qqa+s7KV;Z@=LVBBmhp-+nrA z>B*TxhpnEkl(f}nCtFD_KxPP43#f_d+F z|5#H)}_GPex69bNp<+APF}Jxq#RPSZM|c<{C?^m%o{9`jcc`T&C1g2 zr@Sw5OHPa+8)KGA*O1rWMdY>=FJ}%}g~L*6j)GI-!gQr4eIqj0?0o}mGe@Js)IvU zn2YUm9MQ=?a3PP1fs=X6nmwzSZ8Y7Zrw4XuuA41e@+In{)%!9!+`=i(w^cpyG8$4w zvK`3@GswHY(H#gplB?64v#NgYvXnemR+Q|rgt()mZjGC~0uWS&mRu2Fh}KaVH&FdJ zAKA!1Y^&1MiGGs$x3*NXr{NM@VA_vQ8H^>Yjmb0jJL)wu9upj4?`wNl8IL%l^q2{D zW9H>&v<1O@g@lfmjD z1*8L20e?$OwI3QSXXU6`njuQJ*3DX+KcRl&R5q{LS6iu{$E09zD06xzB{mgFOqMCg zs8HxlDjKhpz?V(;=x|O*=~K(jBL zJm^d;Fqp`>G^ z&CfE$dhgy5uQD}l#GioLvT9pPp5CO9^vzdIesc6D2gTdBxKloNyD^mvP1E_?RflJ` zDfKYe?)ZjSXZ`z)h;d2%$)VhFSpDhxW!P+U(!Sk}?v(lAhUm|cUrFr;Q|*z*uuL3R z&HvwUPszkJ*Bt#{)1gSmv!^)$Iwph2t?n$ICtwd0k9&{UX-}ZMB38;z|FRHIEH(P> z*Pgf?RCoS;MljDuLV55{!IM8A&FOdhc@hxbCij$>;ooj!=0kWSBs) zxf6!0yEPd3OX44@_cT?J_4zC1g2R$YYfYe>LetXm9Pl$C0O497;gU>ThqWp*(CS)7 zb66_A(`UwJQxe%1@pem6{@owg<2SIxNz-9BUBfu(PD{l}pRiNoB{nDgQOeipG>Oqm zt4-yo$2$xTe6)O)uyF-RDp$Nn6o7us2H%&FOWt9OXr;{S!I0!9Q?zJ zW%K4le8a@@ZK3SZ=J3tua#Ik_GVdmxhMeKUscleOgP0$NcYh(H*~@V`0mD0nhUPZ^ zBs{)hX5ecIhN>ik8#_C>Mmw5YW>RXd;%P<`nw!F8?L`Q0SZ)JAnK1RjE375VGmRxY zEA^qmLxp>F_n8$=R%Yo+u?_Z9^{P1C1RWx!Hc6CZH9}~8budDRg8d7f&(EwJz4bsN zOnRb!jL2k!N#1keJ6faDl~elCKHY%fXSYzPCRI+qkD&EH=y8$p{SOi^M^BEid@<*b z392sAcC~~vTkFOIZ457191V*FAJx)oLYjkrvm<7W`gVId{adgRkT9sfRjoT>=-NgW zQ(M$JC++hLs0 zLG7U#OT})o3N*vn6JTS)Qn;-G<0I5y{V6xcGMW?CzTya55>L{Tj9M>)_I>X^033WRQs#8P+) zj4|l}tPkisKcpj(ew2|ARfiZ4`6oa*>5KI<4dX46o{jvw39A+gH2##DwYkAP^g5GG z59A<`iyB`uuqc?m?5Gx|F|I1nc-aguM0B5REfTqPtmeOype>nHXGij?{MUA`^yf}C zNe8<}kA2|iNEUkCiQjL+&W%2s5_NJuO6n6gy)T54&uXPlKq@N4+z!XFi#%bz=xa_C zT|8VVDOUn&w0@5jEj(c3j`v(nj`)#YH3dfy_E5AsYS5$FG z6C@ehjVwd&=jw4SepUj1Wz!a-Iq^29e_Vz^=(W90yddHh+h6GNjDWt@{Uv+6t8PCo z)??NJ9Zvp;!uw`oGzo&W5^Rw<>X3=Qh>-&YF=+MKDarwK-C`xC{zT1(AvC*+BV_>_ zIt@zMO+<*nh)dTcV1)3NIRsf?Bk-LS?8cgkWOBH2wkS8p_H-6u7-GpXnte~8V64;C zoTMM_R$Y|KDwrWmg`^G^lQ6M^^{&P+5~OaC59m8TGRS!txkMWvF&2+99Cx|7Ft6EoP?Q^YGrwQlG9vPHNqxIAb!Z%mOkewH{KPF%48^lOle)mS$f7UpoQr8YBe8uK#o*X3aSqp=t^Jht^x=h1PeJx#4o zx!+Jbw!LR6Z0;>_c3ak%#S=(r1{68(=$7T^@ul3a-kkou$g9nnmYei^4{+Y;EXZ*; zNn2c3QRTVjQk;eAO=)%rbAIYC$w3lQo|QaJ1?=THBc5nWoGMZrh-;VaHsoTlD)w&lz&m~yWGUQOkW!=~gXM}Gh6gh_f+olB+8PI*`3IliVY53-@i zl~JhfexR7F?2+eD(^r>oEsIK0lIG#qpqsydBnonCk(LQOls;`u_7IbLW{==%vCEaQxGI5hGU$lKY>oA$geI17Ugt6TW zBlqroUmViSDYMQ40iHAwuDe(^;@8y3`jQ*_%y^SpR3`ZBm8yOVKI!7C;W53IHF0oh zW(%T!aqZ5)>X~fTvKL40L~{z;z5DTWq@I|CeU@okQ0uLM(oyG0HNzX5` zWBP9q9=ae1XM+4QmO;T1+YM>1KF#D`JrN#X zpd%fSjvw%4u zPG){(I-Bb%&(?TPW)gG<&axe+u+?`t=h;C}-SrB2;3^Y@JgV-Hq%iDDzlcDu5~6gz zNTNIKlu{UhYj6*@i_N69$lfv5#_UI3hDuVkXyN@SoYnAUqL@kCWCkcaogR=kJ!0xh z9-ZgnXI4W}rS>L+cTV0BUwm@$Sb6x6)_LFZ?jFv4{IHWyIpSAy|G0D#Xpss+f0aq1 z9Jy%@_SA2#9P1yLi@!SFu8RD)vlFxCKe00|H$L!=;P)m${m5LfWmR+v%tDFVG~N=hVp^A%&(K*y%||z@0D9Okk^X; z#1@6H-ESK)N+WLlXoUiE1r5r~g^w6KGq+RB@=vvV5%S!R=;M4mM_mVJ^e`%!%rEt~ zbd|X}X~w-(zZNy3u1Q|NFg#*mD;%BvQ6JI0x?#|q-BLBfC|UDm?saT83il_cq6mai zfYF#1%Jf9svx|T!Ox!aDD`PnJ(x>3qt9=dzj#iE`W9A4WJ2NiCKZ%<=2J$7%n^(Wg* z%B)C~v-&L!^2Tl)HXd%T80q6Cul^=hJXqhat3Ay)Bqms2UF$=ZGAnF5$yzWI&B^rm z!YL9wyB+~kz%B2Kj(CK&d_hZrKMxZ!C+{z$j?m za(+cZiB_T#K&bth#8>O;hqZ(fzbd1>4^pd)I?wzO&xEsIWT+-HlWxqzUx%!PR~6Nw zYQ#@cH4Vzww;@fYp{|Ibt|OV6jm%g*&`X^ zo~NkBE{idWRuqNk_VG-ll8R<;FL+`m2&18Y4jta%II?URitDsKlY)L09nr(JRb!$Z z2%1sl>F-_+DBb=R7NUoay$;^VbL?E9h%J_q_#KGD9I)n8;>?Tm_xV5e;7h zdpEW0;aF)*js$23oU&eV*?!VR*N(heIjWU z(MjQstxC#Yv6z7{Hf3X_lfoMG|w(Kw57@yaYS@zbtS z)#8DlR%#Ri;Cyg{v%JUHcf;C&n$foSPEdMQL327%@;@=E9ph}$ouZ$JPe|`B-j(4) zS61+#x!hY9y2TZJLko0C3mh7) zjyPrxzXyj`M$$asqWZ2DkN#Zw;eX$dH&TJ=u`=9-b?;5&wv{*6VZ1Fk9h!E+Q-AnY z9ed-y_nNtuf2)1}HEP2+Kf;Iar^ za-HF=S>*5qlv&(oN8%2?sbQ!+6ap(vm4-e2)aev35>g5PBbh@IBUG4$DJlMdTkG^U zdv!^ZbeB!kIW=;%d|`NFYE-1H=+@1aMLTxQ1K}d^O!Lsad<*cNYP*KLCFVmiy%z_k zPDjV}MX~f>2gIVUHQk@F#dB_2dTJK!4BpYyqxa{ZkeCpXwi$EID>dOOu4d=*A{}Wb zR&zj>|3v7uN4l{Y$_<-zly-lXO)L=@zPAWwIh!Lp@fDfEjOSN$^$J&~$LrU@8iUP2 zjL*%|$0uyOiKx~`A`EX8hKrC$R0}d-_^|n@2_e&fj4-Kn*;@@+O13A+SxQf1*A<7n z^S+Vk3Tc8mUoI9(Es;{agHN;Q^bIzzF*C2{W;ANaX7 z(wA67T#&?Ba}oV*c=DQQb<5+$0ww7^Wx^e+gyGPWjxpDtMMK92f?-|uyjCBRLKLuz zrP@G+aq;c{M+%d8^<{zyC-~`aPL4ncB+>?&Gw3{s_gWeYiuz`OBvMG&yZxxw8th zcrGPQ_G+45(BWbFj0Kp#pLU4UB_c?%3!DQ}WBeKBbPRF#hB045s6iX}189FlBgfE5 z@vTv?6_rxMwNNBHxhaA_PP*e2;|Cx@v92Q8V8!1oIY)gL@X_6%IIy70=~pr6UapKk zmOdw|%DZzplKM?gk-xPc9o#n|aN9k81%NV?sn`Wj_5RYG2CQ*wJf?X>XMc}bHhMS| zP^1Vv;nku$d_}iJ5EIj*bfuIsLb}ZAfVOo^LtF=8lC$A|^tfN%572>Dn;o{Q$=ECw zbQ}pU@5*`*K0TEr1j5f(hEFs7BA^P7YRo_81v)##( z-vncojDs@w|75PpJcXqETjl(2aeBb#>j1++#+P#H&r8Oa6fQOvur(V~V?{`#z4zt$ zQE&XP?G80Fj<{B|-46cM9r?ITz)sd(49*939gX?GWMN8oFSC&Ot523S!E_Xzm&}_> zp6x^vB0vLvUn&eCH__F`aCST^czwnkX(!iJ;;AjpbJ-Hve7z*GTQ2b_CWdZygBDpI zh5}&+sQ3L-z>p~5#wscG(Q6fJrCl0%x7?v6O`jP>lcKS%cqdZptJn zZ6c8dRv|^m*TO^gE?CcOZps0&;wqZW)`X>j6AhxRA>5lge-d-iOmGro%UY1>b~Z2X zZJhf(7*m7Z!2%Iiip+Ny$m{v$y8z#7WZ3|rLasy zGMOZ5@q2|mf|QU0!FXSLiCEpk2KT|Wi4EaRa6J<;SK6&i?VhHlgDx@JW&a-TzuN!EpP2bI|M_Y$^}eGx0y2@;;Zuof7PD-*9u;F zGKokTfF=}5xYfTmyhPOfIn?R=_kjk5xE&H!gam=0pA!fSE_%=nNO(3hLyptyTCUxp zv_7>Bj);8H4}dk&Q-!!wDC_>Il~zEX*?suis#u@4d!(&=gX3OXy?ogM>{~zL&5I+L zloY9}{gIk#MNPlHZ3`iEKD&9P%pMhJ_B20p9kA8EwWt9w-x~_u!8Ko;{?fO^p#%bB z&)ZtHUw|_&RJa?JWy}xg>TiFJ`;Y0C7eN8|>V6NAv2%-&dnQ_-3Mecb8h%}0+YCr8Q*q+qYzNkY4;~pr4bLZM@0B2O}2I5{B3ePD_Mg%I^@GrV7;VM@cBbDkE45gK@Nbe$r&q zcN6nnv^8Jar-ExRy*K58Q0;ti?JG=X90buq7#bBa66RoDPn;9(0dWY#5$ti zj<-FA4~^?f{KS zcK<#t0fA^Z<=3$r%|xiVL7ueG9;F=N9<0uljB0O94Km$NPUhsBdf&+v4)DCu01UG) z4$%}a)t#VkBZ_ReID#tY_@*}e_3?`8c;iVAt1oDjbstb7Q0@)zx6{ihCfp8Ps%_;E zf3Z48f;U~X{oN`uN3(7#MihNfLfhH9aK?P){G~0>kEHHkNPT4q$IEj`Lk-)Hj*YXU z#IhSFR(wF%{f#48+Zie5PbO;>^Kpka?3AGZ+0B$O>4_N=x&7?p)yNOgF60^84A4K? zvX!O>MJ*flSbkUGWo|fNGB4h^rX@)7Vqnj`VV~zlqKt+hdx ziypE6;x(P5MjXq#Yo2cGj&dDLrmcD%6Y|XMnZ4tWz>okK(8q-{D0fY14`qD#!p~h- zni+WSvLDOY{80^8|A?XR)3=vfF%fLCUom-n@lrcGfCBPn{rBhUR~dnqmr}9gOBJNj>!CbOwUP6tj+@W?l+6L z+)tVDd)7H>0TQcj@>9=myN54?V?|<$_lD=^-g;jD`m@+wUsduf72@6UY2v^AI=TX1 zF!5x+GGhb*&};dPhNVJZP671{p<}1hQh%A?ksSK%ZeH@Jm_9H(=3wftE$p)^GXt6A zoP~s|GJ#15@eA#_ryf(2lUESRJNsar866JvPZnw@oevd8u^TZ-+Ybz~2hPh_#|v5# zf>Gfo1qZ_EqayHL@DCgq0D_Do^d27|M^r`k7iO#meCsC>$mma42{)*eRjl*aroO#L z&)!O8AQ%d)$@c6!rfrKNCI=hvJ+{;8h)L;N0K%&KW)9hFbbUJl(N6VX&b#$A5*mt z95Cm=Y~$apKrhn_<~W1CYu&lFWMeE}1Mv(E*-+Dn!B^Ed|JfsakguOoUi3VRyW>Y6 zU?1jEAEZ%CAI~dDHXevL|CnOCv^IXn>I+7Jm)5)f!4TY6MAy`UOYc_2pQxEkH_Miy z(Jr8w7#+xO;imLaJF#W_i8TZcioj&2_BiH^cuwNeKZUh}A#v6jkk>4RcVqW@Z*COg zhcoZS=b}lmY_RLAWtRx!4}VqxUQZO;K{QG0I^E$9>9P`dZ({k_*@B2yqFA~oE9Sgp z>*0);HM3D|^Gl_bx!?ftBOESQOIYVF2K@rV%uX1A;Dz)grq9w2Uq%?_8m6Kj9P1Db zs%zCJ9{ob}*hN@@?}p{+HF5)3zjkF6eB)pM2fN?Lv$bWDvIl9N1nO$gSYd(HpXKli zWgY{L)2pCi7#|bXW}7RUbZF8Lo5sXx$90lX4G)E6M3`3VheswWiC(FaXld)hHFWS2 zv`4mL97%bO8#>#F(-Ay`VBxO_!LS_Kjdi)9J$leS#uO8DcZAwY03{XLOSl$y)$~6r zJDY5$TrfWxIE!HpM_j8dpVO%D6f>Ut#^!6ZX=@+57MzCqXBI`)0#Q!<(mlkDz&qRT zn>xK!nM*+oes?w1nDSvl7xrowi@i_V*=|IOpPFsF<|Da~K7Q--Tm5K(qC2={3Y@Y| zXg35}+_@@=N%6yNSA*0V5PkU|-;}btQ2-M9F>)Hl1OUcMFTHa|;67fNz-KT@dRi|& ze2g=uMdmP0sa~GhGIlNh4exQ#@pxB!az~|LM3%)Nud2)wnVvAN7Gno=(7GTlTyl#* zd2FF#HqyzPzp-R$9jF_jLO6!9W%nSjDr3pLT9(8mMP(G#7m{JQaL28Ck`~%VF|sd% zK%zoM6{KUnreKJ#6h$9-_Okih2B$=!wV7}gmP|>Ixw>y-E@sl{6?(D4a#tYFhB=cr zUCMSdj49GXo{fq51sL<%x-H_fIStJLyu*-Ua|){nuPqwS2^3nkCt#PeRRC`BvY%=y zrXOitt;d})OTgn7gsCV*^!Bk+Hb6{v!^n9Oq~08$&7Gs8{oFpySc-6Sg&|5;d~k8w z_O+102Kus<&=CV&ygEPLbD;N0?xPQ4l>8G_>B}8-`9Mo^Q4+l=&ieK_Kf zWp|J%gd6nC8QL~WA!=zlT~Rh7e4v;v%n|;6V#>qV7ss_!3N#OM@-?RGgDPIw@oiy` z5dL=A=_PUhI|xX&X60@VxdUquK?)^3 z4~@5HAxxtwS$88Oi4;Yu&uG@Udq0AXe7VzA1Od4EY5$mp_XHrnH@q!E1P~nj1D=q4 z(zPS_YYa_rzetI!eQ@R(;SjZ`GVU>erx%0QU{as~xdB#>Q4S>$wl5$E#D2W0X^F`c z3Sz$_TvEwmy$O_*+=`;{aO^tu$(lJbV~PerlG zc9YBiQwt5?Z{ooG_j5mv$D?*j3Wj$7M946pktPXN(f?dD7{6TJw*+8p2|x{g-8csw zTnXT(*KNuCDe2`3L9 z7W0)>bZH!sR3Pj6aRf5zul6VPpWKU~)}Xe~mKBj_jzOPQtl=Y0&I7!Qny8CAx%cu) zYC0`X+P$031Mpf$H4pN<+t3&~kVq~}K5PscFBZ~DQu&9g;XXQl zwUJm_`f zIQ7Rlt7HAj(}=<@jS%gd{WBS$#&mcM`-4TGiKz=}9j1mQ-jFwl4{+fmIgx@+^Hoys zgZQz6LlSD3&@{2n7Aoxp7vhUULQzQBb7jiIA1}=d`ca-R9vhkc&az&Yj$9LTX9PJ{ z5^%U-C-?qxTW)sprA;UdfuE5q;f~W;QGia1qXx3#V#uioOiw>)H$(v93NV}v0oFIN z5Hdmi<-uP-vr=nqGk|c6hs{NWq7Q1Bi@ZL8K@RPp&(L zt7zbT#4>Z+1wJ?MEFhNGKizMdBl1J|-+}2j&*wxQlr@C z;dv&<>Tep9SMNjmD9&;daWWee80IjEK)!H3wh}%i$Y4`=R@V4TG^coNrd*2>Qz_)8 z(~~C3QX?U{F;>VR{e@^ze#KDt_Ba!z59hH&k3Y-5-K~4sCS&5Zf%OtW??f}ZS(m;6 zXX3_-^wLD{?9nm$SxHyS1gZXJ5A|h_$rA-wR&&W`<~9KT9y~cxK`8kLy)Ss2#Wh&6 z1$t41K`No-=YsLB9yL@#4#ucTr;1lM)8X&dI?4V|gk!JOdL3uF73bNZ4#G^X1Fe7% z@juFLEe`9~3ypB|CH87{)@UmZ*ZBi=@;%s%Mw4Y>7i_;bxmS|K_$%~_5+4gN3XcSQ z$4vI6 zgI%N2j-44VZdD^?y~RKX3c!WiuwA)4_x7D^Ok3~$v)No9E2g_Tzv}12QK+AE2fb|G zr-oPqMSoWe3p1S+3dAPuE0qDM33+5;Oho3get`G`aGII_x)Q8BbI~Hk!L-hcYo!dfh8@CDwwt}?KCJew=~V>`Y_whe{Vs*I;O9#GG~-^0)=eto z?C)M3!S=}?OCf9x?ecM-$Fyb;G`b;7;r{j0qekowI;=PJ&0ArwJn+-@Fn5^;902$D zcP*56fds`&Traw*G1ak6ao5%y|BV`?BSdapHmWr=OKweEPB_*s1GLGuP}yPsR61c9 zg?$wqT+oEqS0%Vi0?i}Him(SuN%`OQ?6M_?aZ>hP_pqp`m}G#n{5I?rn5<=-v1QCd z*X7tA{taqV{k-MiVKy(vCu~FoN*Jv`3!xf@QPXJ~8AjlfI%XOuy^D|O~4{Laoxs_ML98nVHEN4l0l+udc)W>Q2P7Nn^qfkejQQQNJmp& z@5ne=h@d6xNNtxTRg_hZGS@@qod5r(ngX!qRv>GE!LJXwaef~EVY-7S9uC79iPo=LA zTNa5=`k$~jEsFAIm}I=uyaRYz_}$ngTiQfBnRc=79Rw`m|JgGB zWob2p0LtNR2#97mP@_?$d4OVH4xC{a-He{;JXs3BMhy=J9CBNY{!08 z7Nz(=E|~kT`$f25hF(Pv^qIzg5^q7HuqXBr!=>dgpoTD=Ume5+s{aXO)7bW@KsXu= zi=mp@u;;quv(K>&yW4gkBdY?c;qfa>0p6<`~ZhJFssLbLE@**Y=l{8@>O{lR~| z7L9?~yLRz`FDCnA)5?vPGd%U2Wq6jL#~TgJAxHCjgD!8{A* z*YyqndrJY_?3~g8gBG4{{8@&}F|KLYcf=cTg)nsqpnn=4Pb{4vUsnEmF9CY?3norpUT#!Bmt!bo#Qv{7I zP>5)s^x14JogcFR2vfpHNBzfE2vO8AQOdPG=#Y`OTe*lm(nUzhDlP>k$tNvs@CVY%yY3JZ} zod*gmnh||{IjonyiYBilm z@%Bl5HqC|Gm1DPlac>!NXZj=s!0pT729TNX8yH*1#{eWW3~mG}EfO<=S@}{cNw;wF zZOk0LA|XGuBQZDtnh&3i%wwnm4d78s9o$rTEhQ*VY6_*z|PFmR5P*(!s9a3NUDmFdHAwOf5mmK z-wxt57o|h$Q^1XFU1;8CSy8ov?X;R$>H^hlPK6p##e)lyMdJgS$%JacaUb-+ePl6t zfU;jlQ3n^`e!owa)ffi;T)bQ+NOyv~XjfnZnoUR$u)W@R3xhAvt71FX8{PUc?~Dgz z-J95ebL7!qt|f;HVtq0IRFcl{tAnT@(G4C>Tc=sP-O*<0*R0RpRI{a#y&HO{SGsyeAK+et*T%^=JD8D3 zH1rP8nM#<6>+W4>n+5O2&4RUQK6K{w*+NF$ruc!hJzK!>gtUp%yIdT$+t$?1W~nZr zpDEXEamEd;$EY9xIXYfRqwLW|h@0^-nrP~tNh!go_D*TcPSK! zeMsDZUH1pXN$zbic})V}P5|g1-z|?yM~s6%OM@gH79ZG7qu-8l72raxT|7{J9+&;Q zBR-j8NAQ`zJP0r0`(NAp`SlJkiSud^PcP|2%sWXPO-SF<(*|C-GM+$eKF;*H}_m=2O z7UCt&r8|7t1F!mhoDxwFhVqA(07L2F@(HuM9Af3|Y8n_al*;@$6{=nR5xJdvwh0b* zEkQ(ZW{{oXoBE%33rc`=Gq!d?^C9=b(D7^Pl`XTs5wIi%4a7F-p^ZQN{Lt4gD}@L@ z6-C|))*yTL(O2Qpu$F_biC9Mf+td$oy(dmz+7*Q)^w;cP_5`^p- z$QD>b&KDA%yiVNwY6ZzWDA3Dx8R`Hp$&1BQIzv^JP`D--VQvBYYgbGWQJ3-;+NU%W zos41NS8_VW%n~`4^NcqX#`Mw|neN+Z(8)&3)$it8fwHNo$#a~d^K)~<5zf6aHlLrI zG?Su#PCMSSl9q6?LF4>zF_}2}gSzp4*w7`M6k2>JK!g+&+z_7q@X|EQRE3|+i)|p^5d;aBp#l7B zIvq&AsY(?0Sr80$!?y6#rlk#(-bEkn2$!%Qtccw0PifD6sz0gjpxxeC=*93+W(9>_ zZS35X5dS1e=S2m?RG8srmYeNpHne^cKia1F1Sk1g+bFUEdZL{FLH8(B{8-6vQsSu{ z?Fa9#ghFbDBbe*U!-~Xe0TCk=)@2u(?J>%+f4%|cP^We)Oh&g@JbDgQ11&CoJ z2{oqkbUuEF9GCWE^B36{F?i@MZX(9E^6+o$8T=c^uP-g2){3W`6ZVL2BwimIL^C6` zu)hzeZF7<^OMrh3JyyRmxd?b3R9q}rDxBVE(&O9cA7I>=MnT+>C^IrmL-M)}O~n+P z9poEN^4WH@HyrVT3P*}7NzXZ03aLR9ZAK;;ERkmQHjz4q7^2R8SToFifRf%k#yi_S zW+UczNQ}X)6zoHJ9L?+${bfGB24WFrX*&HwK=Mdovvlwk^`&xN6(^^;=?yd)P|d{w zy(%e=Kp&OmsM0seH8=)Nw|wg0X`6Is6W$S=izs@jNHU3hUt%Q$k8;3TReS;8Q$E77 zKdG%}x@9+n1}aCzf8S!J?P+a=W@uP3UkzH@E{5l5VuxHtNc+$o@U&hyEO-sRU)w4& z9${(i12!KozXf|$r1vcfi?#0^Aa20tVi$+y%YkDPHoKmFP0}Dn=aIqbna?b$0iwDB zBX_vSCNj07fLqlHxx5f)h2&*!sgTaHuM|MZePf|&*XP#KQ@MdE3@kW=d8l8NTWvJN z2iki%kW=BkYKey_Qz&zeU2u(`krr&x`!tA*)(3hPhaf3;IfPrmK{SIl|H)kR1jp!x z_AQmIjql-PsP-mMq#aV2ha(al&=kEMop31{!;1VKepgekPPZvThd1@P@@e2>ffin0rJ|M?d8No`);o z+iJv+^6tk}dCtEBsGHeUgNTwZ5^gHlys)|_j8GIgtpS`*u_C1u`8xMm7_v0ZfbMV^ z81DhU_IextCi93)5FcxQzH)T_p_KAtzK00#mxJyx5#gJ>X|dR4qXooppo1Hh*%DftU_~bSLQ+-=ynZdeAqr z_f*3-pbCu-vgwh%H+%%Tw%mro*0)2wzIW24&1E8jbB+%E^kcLZM|dwwSvR5wX_`f> z#f^>U8k6c|yn}CP1WMbcvw3ik*@>&`PimL5=N`L80qDtznN03=}0tf+yis z(`E4RQ142|XI{q`^dSwgb9U?8d}aeC0(luwjEt&K7vz`Rssx26RuRdtNT#g*I4Fud zjq(2XK3EF)YQ~=$i3|_465+0FvHc{mbK9X#|1L`is-z7_*(Z_wH|t)u z7?1TDwY3?_2S0XAZQfNBnT7#xzaGZxy=M154mB8G`bJjzmq`vxTe8O zM5}plfD9-vGUQo7=)hh3?Mflk6Uqt>m!`(?+ZBF-IwOzhOVCUdlfM4NOh0Z(e6WhE zZukpo73+ILk5(m;sh330R3im#^YBrH>nU*Q;_TGXCx2QU%K0Su!V5g(o4mL zL8J^~I-|@N&s_-(X=qhogcoi<`AtXhQ*B!CkbF6z$D{o7%q|?UON4s(zCmEk zwe_2N1~Y8HaCIk<6v<0kQ$hkly(jjXDTA;agJzw%C1BVFSt9qb;~K$5lUmHq14owr ziOp3b?1sUaD`qJeFO0Vws-0Q<=%EK!A@Yh4aw$ahJ*C2{ccNIoW$BA?&7b&;mdrmn zkxprqW+9$)cnraFVVM5I^HE~jD9LO$UGI$)qF>$_sGN6PDk`nOmu02M_LsVo1sGX2>CV9wu>y=P zo6Bt=j4+$eeUv+gQA?)*3AnTG;r#T9L+i;X7XeysDPY2>?w`VqWk9(D&>mYq)fU4BTmUD{y`-us;v3*69T5ty z1KFw#^~zN4~XJ?2K)YP)}HZAMcCcwJkL!D&Z1 zjoh8WHA7BU-~+PAaWg}jxp&Mk<;(!SAd4KDt=ZbRM|LywbPMpEp>mwM=Vw&$H(nR2 z6`UIBw1RrffcT2%g<9_1JIYz^R4>r}Wu&vj$?uf>yCu%M_ocXxFjXN)_NOMjR?|5JN<=vlU3y6%1Zu7M?N1FHRY$QlA;cf{*=GOmQRN88uA|> z&9_P31RmB^zJ;3(vvNxj)>C?1hP7@F;BuG!V=iQWf6oZ^TTrmuLi;zt5^JDQg^iY7 z78((h7$Zc=LSb$M%ZSeP>X{On)XTD9Z%9a-jp=0EGWl*rLqPK}LDkWuL}M%t+aTw? zY)}^ckK)L7(mi*DA$C_t9IWvoacYuE$K4Y~9JfQ_5GsycA#r5MiNxR0cZS8u*oubO zTx0*9jw;=u#`mssO^qJA_Sm5A+tXyL6ttz(?t(}>?bk%ud-BduL!Sv_g`otsb(F}m zfl=uRG_;5k_c1SIwOBLOEIRcqx|OUbm1=h+BfXtbG51;w^^Uix>eB(es&Y?B=FrRu z-nhT#1XXmD$g(Gr_*))TqI?jGz6Hja$+UUUf_lzrzR9S*wa5Kk&$`rePU8ek>Dg!8 z-}NjQrE;itS0j(tj1&I_iVGQTT`4CGQ)-YK{*!r}vIC2Ma^V98pxV=F>)WW31@@I1$Es=Z*M$$+9hz7aPPx^_9W*n?@JY=nIt-d}kWpDhy!LO0uKu1wH#h2@j@c~$A zegIZeAAt467E_-~j4e*9EHdvG5dK*CQcnp{uKaK*9;@^RM3yVu1DEOQa%ycM9;?Q0 ziI+R^4tz8Iu+HHrgTa?{$oP!t@yhGyoHM>3dVYX%E-ErP3;wn0>dl!7Y4!p?g}4X4hb%-kRPYys zTeal=?nyuwE!bR8-#rj;+W||Y=nO>g&AM5d-`UQnmozX;b`@onpv)Oc+u=h383IkMAdCDTbRxq0BV~ zoMLfQuph%wHFQbr7O)(^ogXatjFuvAa?7}P1w(F)o#wX%e0e#U9 zYJk04ZIptk$^`H}!2|^^hs5jyKTeVA+dba^IO&8`;Lxl6jc@n-4&bgGGN|V8GeD{8 zWi7Flx=njz%~6kdnl&eFw^MV}lcZ+N;bW*)&Dq2ACq0l${qV2V+U?YwwmdR95x#RQ zL^jy%)SPB~OY3Stn=Lq`=G>euMKaHa?#0h1q%@<13R9h$(<4fXVx*kI&u=#6iK$M_ z+16GVQang){4`4seQK7P7_mYLk+?h`H zR{M?npMbp6O*kZbYh!$x#22XK1zePr{FK0D0xNs7qc%N5N)5n`Y|8p+PWILuX-eq{ zc%&7P96l{e_IBcXyypO4ZgW(y;nSS#T?`{m1>6qKTUK;N_VRgC;pY>+ZR5rm4Rh6u zf7LLT^L@?tAVh$s^~iJ@=JTbX6+H7;KuE*9(nqR>Sr%xz9n@@?8JR}IY!09e!G4)e z!#ugrc=i5Z03)4{M#H>$zPssimnvVm9IaVX-;XQ(|Hz2Enr1w9N}6P zD`Rx^W4NqzrU5QHwH{-bs88~YfjYv|e<$)Qy6dvOQVg1DntX=c*P<;ZNYOo(nBQt_ zQ8u3@qI*wxXlxL)sEyfJbiW2Y&D)8Xe@74ey^2ZRR~BK1`1TvOkxeI}Do2m_ex~^z z>gbU?0%e<=!N-$6nWv1C7iT}R@hP*^YKmaLQ?XclZ$LSU}S)IHd74J}ATk=GQ8~n@G{P0;KN@JC63E0zM8-nb~G^ zB0CS2{Xf>;J3fjkY9GI|vteg98%RQu-Snj;Lrnuh2`#iphlGw0dhflXAVsMPf)oK! zibzou0TmEI5U^lJlqMho(p3<|-+9iRncW25_x=9y%jc8XbI(2ZxzF6WbIa`PIbm}f zyhAyyN!w+1z)NEiiZ>s{@nTuntRYwo%qE*O@7gn)C-(3h7`fdMvWARM% zf$fXu&1a&IY{oNDehgYfm5)LB$)`iD=zk`vsU?vpdKQmPU8(~SARbY@cBBfAS__3&r&gUnKD z%r!-n0Omx>dd8|;W|vdvTvY_WnzNj;-mnM+Jm*YNze})5h`p45&=0}cRn>0sHVN?y zWnC@=!OsV&swaEJCi%KyN$@jtJz z9>xe4p!!$6BKyiebNzi~XMw)bBCxOY3hXN#1N+LR;+X$mphlp7TXJAuIiS)yr6H+X znORDDU|;#7o)8bPkM2+TLt#@bu&>O$MHJyodNv*A`?HO{(vnt!^?|v8vbI>2n|&p` zukm>1Q_4DF5h&1C_E$C_u2B9>KZMa&Dla!6oYY7Wa|=QkePwBMl;6d|kv2wO*>%9EYc$?xDuiS7mG!?EIImFt>xFQPzEb42f%6gNA1Q=m z^p()dLf}Fu=P3U-)8+{e?t}|aHHwhd?eQ$xk+lrx&N)65*@oiqNap&hmiiz#chnO$IN*d44059KKD)8PP2 zb^#$}o_}gU!BQ~!i4GSnlbZAVQ$yK3LZbXT4^ItD9>MbpO$}FQK2}Olewt;&#e(Pg zr-ohkgy4ctkxk3_Ms@z@g2Dw4m|gG#h-R9Vc54)oU@(<2u+XgTQb*y*V$gW5P+XX$V z3h}C959&W;lyF^R!=UGEROr5xr`b>_s7?)qsyIvtPVFfhs%t^VL1S2)ZbRtoCA8IA zf>Ms#TS)v7tkOg6{i%Z0%K9*r-${mR6wR*P=W_4b0f%D>Yn+DuI;d&(Au3M6PE9Xb zS6VMbbhWj#sv8zv;|`Xf=|0t~at%imI8mh)lee6>Mi%PsiL^);2l+eT%dv_f+tp$1 zA!EU+skH|QLk<;={Yp1DpR^bapVg1 zFSkupD8}7Uow=0s5$ZzxPA;n{ec(SEO`xK&W9@J|N-9SRfmew9o9cC>kyx=v`-KQi zgsflo2~jC%GKnF#>CApi`SagJRDMn@wa;I&num0%DG$mm!5NGuo0Nx;L)F#L{|nix z_MkRQc?8*~rl4*AgRCcDqn|>jj*(Uit(g~(4hhiY6(b4v6}m;*C6kC?*}E+Z$D6QdGNf^oRwrXhA* zLVGZXQa+-bX$dWm<55mi;@Jd5!b`GWhH$qAVbK9RV8FZ>B{i&XV z!toc`r8;ma?Al$vyAX}Zg_mR^O4IqJ#VP1%DKDB+L&S(;Hj(y&4cdm#;y}elP_c-M zp_F&mHjq^KR|cBJOsnB9qNfM#!0-S$qB#u*X%`u78H|TpkP&rgfJuA6qu>r`cLdZn z4rO0BuZXl-Z1Am_XOMh>Hrr_pIP0dB1%SpPV%RAvHkk9=FBQrgiIe-0>6A3{#Nb^$ z3GFm%Bbwc#(iz;aEntC`;*^3UQ9}=p=tW~hn$G(1FPRNd$TZ@OB!Vr?j2FOYfdm)~ zfUUF@OKZ*6dn^E!0_)<-)B;U-iP@ccsbCYn+?lejan>y}OGNxcqkCElZh-K`CN{$w ztuU%HRX&ytDlIl!-pHFuLw=g70`e*3K`?529*y3Pi}ha|*suzcM0Xn+a44F8En6*k zf>p#xu^4XFd7MlTjZrLz|hG5dMxF4<@_6q3uZN>O<~$5&T=g&m{oo$m8!^< z;oj!~KsKk*-Wb@Dt{xz(?x59ViOCNjBB}F_lrsRxy_N)$5=nhtqnzo;nNld{`Y)8z z9w5sKp_Trgay|f=cM6t?sQ(=0)K`)9!;;6F2s$D=aXE6A3Eju z+WK?45qTQ4t8F@w91K}gAJO7A-Ocxg`sL504}l!2#?T@yy(r`e^)6OeJRNw|w^23} za-3Q_j>?8X_Nm_$p}Hb4N$TqGOwvc9ucivuFGMaWW*2TKFrNLgb-wd|C1r1%%Z8T& zTY}F_B;D&n*@J=p>B|MKxXgZ4p*HD)LKmMMZfOC2oE5Rm zur~^nGzPSJw5SL`Iq}s`C_b|VC4_@=g-A}(Ufn+MP~gp#0 zF^bh2{puQ%zQDkNBNU%ngn3Y_QSu7q9>NjI3k6O`)VTK*cXVnQwOPBARxufKSv!)}2^sTPyg|#{jQ3c)MRY2A z!PL>8I8=^)7h)t;Tsh__#5bw7%CTo5wkN(-yqidLb)`CRvXKw|Q<%tF*jDAn*bCcCZh`W!t;VO_ z47N4+tQM^zg9eNnyN)OZEMDjfo(1${0ZAU7FWTxEsKMK zR8h4%7kizij;g&_8$>Nzb?9F>p&zJas}56^V*?U8cQw{Np>0oLgD`=1Tdyf0-XV&} z&&=4gl7{5oQ8tm8iGfL|zt9|$Sxqi~b7)_XSz9iDf9xVeW&^qWT|k{Kv!Pu6c1PJp zy!=&9qHJSc{i+R6His9#>i&u(KgDZb^>b>n%qG0_RlCt$p4k*rTPw9Edv!c;x_S3oDI{i6Vl1)UT_p{+2YsmuOX6Z4C+sBm8K!wYYx4C1J3h4K72w zl?_yg+h7p3f$FK|NU?$PWx4Kr5eyKqIwqJt2rZj4;IyH$*{eSvt&`db~@SQ zg;uXWg79Zq_6_d)?HfYY=zb%M>Wz9x`{t|d@?8OG--2HhkoGMhll>alw|a3EZc4g8 zYYZ;A96f~A^VQ3!Cs&~<&d{+s=-eTJH~4awA2AnJt$2iW;&p5s$i5hTtW#olBDbv# zAFwEIStNacI(uXOtNW_i_(`8b*$`)fJ8puda!hHCg zsEToTVWN6#6)n8&Rr6ZQ0Ta&&s*knd3Lo-APXTnUiY7h_ExR1$R>rIKqWV%5r5~6D zjB&do8uv9`NX4!eg_r3fq7+bN=!ypdlfykJ+l07wIoeP z)-cF}tg4bCpgaQQ3u~T0{~q{#j=Av7CuKJP(TP}H9W0P7lH9#^+EPxP`{;1pc1(II#bam$(o4#9B{XS0a!JhSGoc!b;sr2Lx)krsaKIhyja?z6U+rA?ZBnzYBE9Pc+h=pf}Ua{ues4&O?wPcguordD}V zlEK+WTtTtQJOF(4n%Nz>OUt@;yiWj^AzyjT>-V7mX*a7>Z4iL zAy--#SlpnOM?3qhx8zx`GwI#;4^K;Id60EhZi20RNJM`N=&z(QPisv7%xxvT&%oO;RFh#x=@ah|Dki%HHS6>_sRq7oaa%H9kz{J8l11 z@U6Dd#w@F(685^ulNTQmEf0}8iEFJ|AWOC~4+>+y)Cp}hvXVNzNcLM`(C&2$>6ry$|h;}X2g=1$r4w{a`tDHs%co&{0+qD6~e1q}v zm>Wj~u6Ak&sO>al1e9`W2qm7PA?UW9k51#rd)zw7m=3i%<-=aZMYwG0 z1`qh7VJuhJxF&z(4CRj|6Zxa*JpO35g+H1f=Z_Xw`J)wvY^_dfjL{)Q9W?0F{pKDK z8WURg`>XWnD@%*&xy?J+>Q0A{N59a}TCePDus$=J@=^|9vQ(p}dFoZo+<>9=qthf;=N}`8 zkU=Sm=$E}UopRI?D{Ufs8~14S83NAU4q3|?I!t8m?6wU{pgZM>@4nvKut;9<6v_Mf ziMDzJ`j4U4)uqrMfIe0I>|c@(c_pN2!|c!^;!?2yzrcX3cmfSL>(wRj25*v5ib%$>oric*X zs6o4?`lCWN8mq;mjRlrv7$t>c$CrwzzdDVwlACQb$4*=;X<3x_=#EmfJ8$5|<#fFM zoFW?XcL}ccR3N0+ABym1$8RTDtxE>k3E15URY{4Hb^j1e9H>FC`q8-xH!y=}$o%O?n-~_`t;O7CaBWiS1e!zIecOWWA|~ z#(K~uDqf2URNPeHlz7Afb%isy8SEOaf}=5wcsYr+HyQQzL4Kc21?uI2*Q%Tf4niLp zmT6wkr^2460^wh8R_IDT0}r6I%lwq|jh2{vK6(P5L7NKj3E83AL~4_;aOxK7gXa~| zBpjkp-=$4glj7W=)X&3hqDchgP<3<(k|QB|)rZrBXcATNP23yjw~*`srcPXYEjPMC zGG!__kP>w4nwJtGsWeBoYEo^nRcrOd{#t7U)LK*4x_SjagC~M8owQNm%${o+{5TaSm z&do-@JGr?)zvCo#zB8K{dEsUpmjJKJRYf$G0PY4izg>3yE`8%My&Qz~#W# zGQK6MQwRNL6D<>rf$u$nX_;7`G92F~lHRul1c18ttpYa}Cyo2+Pm)8bN7!g^c>}T< z-;8?9`s{6h-$fTcdqd7PT-}C0lDx46rU>CWh)UMdwa-q$uGcXuoWxX!^_%Q6`&4#T zWx6fG>rKX(yB2Xu!pG2Y?wes*|PxRD7k}dX1nN)u8uMZTLXbb$Qv}hjLTklhSchaSTbD%QK;#( z^~-+o;#Rcmgpq{y($%fFZ@SMQ{o-3&ajVCtk$%bFTX9ePc!cDa|J{no_eF(lma5w@ z`F=^ei0oxfo_v?!dc0C>8}6GGbxB?xxeZUK@~4r!B9=dV-VYH=6mO& zyn|Se%i`EW&5^wZjTG;roxH2sHe}V}<3Ki!K+npf{+PY#AeXDinLTiy9DjjmXP?IM zf(NARGa=j2m>X$)%swl>yKlUJPUIY4r<_sU`-<%IxUOz>iIX6ImEXqTM~K-MGPk3V zuRl%l#ai3Z$h?xdl*cQas$EF_t<82c=G;)iyxey?8j}}Lzhio81g_C#dWnfgk=O?xXPARnYlggWHhsZPnRzqh{NV^ZL*1wWvw<8M_9D53EF$e9Mxu z1Idol)B@R8P;1D{3N&bB-*}JI>gIPyeUm$|Iv2g;mTU|!?Xa_N%hCDAp=5K1znT(` zl~g$U?zrt($1;!od_0B??VyP?MAtyG*FUw(Je}52MQB+RetZxHBKRy-!uQiU%NG9j zyI9ydVA(qU=k2&kbgSvD%M2s?{QfK9&O5m&$-X=))mk4)RDH*(XzQ{$G#vXrqVlcF zMd4)?wFmW%)=8*HsG+o*Z=DkVHmKXEqqa`p&g++u+Yc47uuTqdLPjs8{@SK#ZIbib zouoxYo95BLM~K}vE$)2{za-lbTjJ_BBrbVH5p7zX{+7hCRY}|W#CIfCwb?|QHV0|M z@%8(U407N9fy5dKWRUkJjd{LuBT3tK)kzY^QM0vaSBJ(M--t$J(0(DrXfJ6yoP${V zbrL(KpEA#;O|#EVnP=0c(`@T(+B}W3X(iNFr6}X6%#Zk)3f;?Xnhf~}MwlDhbe;4z zx+@pxjsoK_-;pk46syhaysVr?ta&6k(6A6=#kU9r5UmgB^dMhKDDWFAiJ2fDlRnoh%s{YYITuh~eP z*hpGei(@W!svI$LbNTOPWHhA%acA5Fu@x(kQjygG$eRDZAaQRyGR!Gzb$Rv zvu$(tlOp`fbPPe`@nf0rPZP1{Id~m=o{P75W!H8V!L*VuK}Awqv~4ZNj{jzp+;QQ% zJmKk7LEBCRFvzp~uVUWSWsfC2I zp5<9wHawh(7w0V!=SodFw*tcb+O<0oklm4ZxFRAU$Fn{>3UcWv$R3t!v;2Y=$HN{R zGozv3#G0C1hTqvAc$x1lR=TpgGS?YsWmQTahu?Ei@>>9!hy1r%HX0>sAnvX-|u`z&Q z;^d>9HBPNuZRiu&CYp~atO;ScW^GvFcPVxa;R>BBJ6X1C_>GfO!;i=8#<36Ee8IU# z5^zl81{u%CL2-PASVmYoyY`h2$DWB?J8M?&!VVO_jKYBw7>Jx2!ZFx21i^D^wh|!t z7t6(2ua$%xQxb9r%avJvrZjJ2OYxGd40nIle9qJ&xLU|gmhBpTRYbSx49N2M4WAH# z3es)C2)pyu2&my?ImKwOPZf4uxgdJ(VDWIUh0?-FYFOw5&hd>FG?PMmoh3mY^ewoQZ`Y}HY>MyDy>`ERXTTr zay}vLH8Y3%i1Nn==E3^PFyOnu;o_(7IH4pRx{EHau00xI(Leb~P$Il;77X-&@(7Wj zHPZX!OKU&V?9icvd}+-^Yo!h)(lzR%CNmaMofhKDsn@H<(`z?YMrgHnYS0$O?^KSM$udV>%jbK zSOQ_Oi z!e}bgFondBd?wT=VLuaU9JJpg)VS1si%{bLLX86mHLkngPpI*6KcOZDp>wl9sO)}T z`O-1D1|1X}h>%pL?8nPpv}MU}x*vpQFrjAKB%$UnTZEdw>nGGafKc-QLd{PE5NiJP zev42mgV2P|Ahd^TMit4&KIYu%c}kc~{JP2G=~P;TUyU;W*Trf(B^(R(;1SRg5UR$62F&<`2@M?hiAiYSoKGx5 z0|N*R3?MXceE^|>>7Q7Hh8ToOWP{LxPf#E;DlSmBt)uj-j zVUY)!(C~*Aq2VzHEkeTs2n`P)G(7X5pV076{Dejsgxnv3knbRBMit3vbWm_0LQD6n&bG?A~e@*p?5&2*Qcl%RV0sw3k)3aiUz9( z(9zL!HlfXX075I7(EKZs(1H^dp#?Ymgcbx4S`a{Jf%~wZ(1K-tLN6MGrauEhe{#*J zBDn|^P;ekZQvCpgW<*e-m+*Fa$o*Bg?H5lx%!HQoIBXJHGVQQMXh{H}B>{w%tO_8s zr0ijf&@zM2o%tX%^Dt^g70F9MXsIM5)pP0ScnOp1EAb?Tgt*Z{%iTwq(26@2p%r0A zEJ7;+2(1Vpw4%}xKcN+S{DfXL2*qsxALTdvEt=$(uXl>IY7NOS-LVJ3E&_=EqRV42Qq1}>@RBr{L z610EIf1?hGA?=ya`bwWMp$(CrnS?fEd}a~a5I|@{0HF=7KJydW@Ux%Ln+Bn?bwH^4 zXQ&xfBsZahf&=!@tgiDJ2<1?r&0m4gqGBNQ);>vS%X*8@mVZe0}+zy>BrzCly+143y%p8vCa>{T$og3ZXMO&$jb# zllE7(?Eu>gZ0n&-fBr?b-GSHIF0t*t=Slk;+fIV*WwxF5K8e4xt)i2`6}GMKA@M5P zu7T|}wjH&M#6Q^98$%qfv+anlNPB~A55o2)+g2<|;w`rQ>T42jv+Z6`zr(hdVSATt z6F#8Y{$yL1fvMk3!X z?Hy?(2TA*^q9hlQ_8RR1^BvN@4D2;&KbQ8;`A%t{j85v3_W%7waNhJA#zpEjQ4NNNA_ z4U(gz{l2|q?~(SmXo-~XmG;ewkWI9-|6>d3W2F5Fjr6h7K8WV${5WYpY9-mkOZ&RL zNS`3>H>Q$4QQDV-y-(V&)k$AM+K)x=Dk<&njUt;;(!M3^OH2Eudr2-M?f*s(OEUQ2 zrcajkb7=C(*QI^!Q=~5|?c?7fxtz3r{Z*37OZ%;`uORLB4kmp?X}|J3=_^V52S1XW zBJIC{eX6uy_<-azX}`cj{L`hq5=;6FX@3v)m8Jc^FXIuLwEy4>s;jEB@1I9Z!1S~b)$XelUzgE4_JyPW70kw_F2-tE|yKTr2T{1B-fVqi*006N80y=eO+mf zZ*%hNN&DgtNY0k_HLH?bpY20B&7>uB_o5$tZ9J6h9`I1IyYW!6!y=NshxmzYL%U6M zkA^-pXXxOOqI;tDBA(KAqQRlNPrkaF{sYM+AeUC}T_a5Xm7^{kn{8CMY%8iOcsh~l zUYnm{;w!(L9v-|up`Ki#l8dV26K0t5E+mbM<1^)vx{T^FLKuQb^N_aOV85^&dU5+&gFv1Ba) z@d`jrFVAulu$T8e3$T|7n4;N4FW+bY=8=6b3HVF85WOVeJDtf|0^&81oZgbO*AIXRWZzc; zenxY5UkMmInG7T#UWdu)=Q(Wx_VX^cmNxxNz~^ar@8{bMz(;+jLO| z`rZQIP_iE=0S~C8m4GeiQVo=Vc!efskO%M3FyJ8XTNdCT6YvI2y@P!J0`OO|A0z?a ztRci837B${v=R`nuH+2%j5GlUduv(GP6nHRpN|q^u&>4UnD@zkumt>uCcMECum_Ew zgC!tdZ^{|sIcNe7@piMGeGD-HZ@xtd-)aC>BKsi{@Xwv3m4M&16k>=3#H&I%Lp^v` zhyjOsZ(4vuO~7quDB-&az)#42s0577B&`Izv4TVih*xxShI#s!fWy4cSkE4YnSiDH z2rt7W58jDlz!Bbd*1m0o37A0R@Ce_p0CbZ52nkqz5t&H9 zk7=noLIUDdq@0nSjwawp?{601NE2`mjc6l%mB}Xf1+pJ00UNd=(HI;Wk%0un>uNcp zJa3wSqrBnP(}__gV6pEh;d>5%>101j0)9(F#wZE6-e(h|Bp_b>${Fo>U;>WzuCo9~ zn}A0hl<<8Iz!PLYS^^HICF5ubxFv~135Zv&a>jV@&J_cW@m97j$`}){?o~?olF26c z4%v?}1_!#A$4J1<>qwMWf&{#oLRtx^?5-r z0T@R16D8nFUy>*RYn>xe0^^@$U ztwZZ=HT-?NMG(F%OAxn_)4^@-7;xMDK7YXsoZNargb+Mvr6O{lW)82>iRO0YrWs7* zW^OmG^Y@PCi}rb$czrQEX(;M+&cKU)VIQK-)Lv+h(37aM&Nj41R|L=tzlpc^gaZh9 zb;qN&cj#R5I?KC*YRl`wwXN+<;?t-t_?scL@vaU7hqhFRsr>q4@C$U8P7UQ^{of!l z3|Ff4ueEGqTFLITbO;Guji1w%MqDQKiz|wlRz|+GFzJ>M(~|HCho+|WCw;Q~-N>NJ zq}Nf@D_rcp)UMtB8QTC&h-XUL@HR%+caTf79Q?E@#IvRO*N|Zl)A>iabk)VPnJgmQ z$+P^ewp|0D3-0sm8W_3Y(9o$N`nOYabjJ~nd!1S&9}$h)sWs$d0$Xr;Oz7%aID-h?*sUcLG(~uGVEQO<^+4<;tk8!2q z0>35o107w*na~%-5ucvLbNpK4nFvx`<|1FP0wLk-8baUMHTVs6!8@r_dz%{xer8=! ztk}Sf1aFb9WLA907Vs|Ws>TZBrEnYDHN*vRA)XVp;Aj#%u?4hF4MB{Y+FyJ`R3f`3 zf7-h4b-s4|MqU&j5mU&?xlYctYjCIN+Q48PxiiRP)0(8-%j#1kww*x(PD?ymYWvJV zMPOy4v~AQ)h(^?-#AfAEv`sviM17S0#=WHsK1#RnWFh|h@4u;SZ_iW2R!SsI*n3P7 zH%Y3jOn~FZbXo#6DBiZxO(Dj>o%R;Rdr1+yp5t=(n_A)^@x3+%b+vknAT)AkNVTMg?hB1###8 zkJv)8(y<1tQK^|UDjjQ8dZjnzPEz1W+qP(^Xn^oYTZ~GJT9vjs7vRV;I;k#)&yf)Q zL@k6+8+i_4tYo<`s~oh`=s#v=oGS9q7$-K5POREvEqCtR|6eUv3yxCl=Y=Tu*oi;pRs_JN)MZ+!rvrG||z+;n-r7A6`LY4w2;h$fY5l!>>> zEc*3HerV-c{-k0I;lhYBSIOPm__jFwowE@MEC>{rRt?og*(u$3;#!8DzgL0 zhOj!2Og`3u8X(ZsbB__bb|D~om3ePkO*=E67#U?MT4fqsd{TU`6+urX8l zsUQ>D%joK&7F?+JC6opRc7%lu?Wl{!EvB88Jj%fL?o!hF4Es`+J+ymF`z`V!Q2P!O zVWTh-Q{AtN3%3Zg$1fQzvUq1;iy(>%TI8px#&tmaoO@)u$3Q7&p+H;ww}2Qr4A=O*0Jynj zIh8MT4lPuItSkR!v;zzS8WuhB!hQY+%8q^|idNH2?Vp=BA%e7xf9x8#EMU2I#>Rsh^XI%I6tCr`#_sa z|6ZU_qj=9>mVKfOf-N+moHa(7Y=8eJ?cm>y9`*MxW{(;o!g?Zh0y-#u7l{s90?{^R zK33~8DqXf)x9*67dDvV>AVkmylre5Z;p+|U5wpVL?;BU|Sz0$fW!P4-Y{RaY(4Q-F zEn`?&O3O%FB9%+OVzlDH0>ergFdNbiup@m|GHQ&qYJ|22 z{d)nyy?-YF$5U!H{TFH7P~qNZAuHPvX(=q?j0}Tz0Y2e zSExiAT1ed)Ubt=VTroO&#JnZu3I|b24-GHeR9RR3O*OD!Qz2MsKvN+~DPPWm)C#K& zpd<@u>eYa8Mj~EP2D~4DcuBFwnxW-Mm`5enTs7LHYk{#Q4QQ?hia1Q4Glmy#ZD_xu ze=i`owdVuyH%k3=wQy?#*=TK)`T8KSzD8r!@WQPPZRWMW*8WYxdv9Jf?uUlNp%a-j zd91~u?R(AWo;A(xd7IiSctfh`Q#!Q-?(O+Jqn0AD8G?*Mp1uIYIxxx7urPn_o5{8{ve;$62l5F8OHwcq%exc zlEGMR7)u73D!gRSId;r*1he>$0DdxDOdY@@B>e~Ud2m?axeVIlAc^9*DD(f27o`?L zwA`b_yN{KDw)pjc@GFnE;atg$?j(fSe0Esj(R%9j|22#z&j_K3#@e$V&j?mBpJ#+n zpSe4zeMT<6MF|AwtYOrZW7YNH^(TefEXyPL5xd!lC9*L78->eRh5x#4-gY~bkAE?5 zyCF!Xb~n23$^OLnh7i|>7T$tDn{>lyptJL+q_IK6!;w}qpDhBz1MqK#8CLQ^Tfu{N1+z*ZSc@XBG1 zb~*;hmZH`y8X_AI=%pcr2Rdl;&FY?&r_Qx$EtN6v8*HB;w$sTd+$jEyRUF!Vh1p7W ziCR~Ktz=hH8_uhgR^4%39i_BA2D=6w>HbtyT~$~dO|ZoY4#9$3aCdiicXwDkXwcwp zAxLnC#oa@IU?IWXCAb9%Zg-ad-iP}@RZaD&Q&ru~?(FV2Gm$u_r`|3I9+OLh-Bm5K zy;u*2oxS0-pA1?bu|IuZKZDyiF)@QlT8%p0LKl{^Q`lKr<6v=jGg{&jlQz|bBgH-? zF!Gs*xaNl}aw5kYRzX|WO~KQ{>X(mS2<)r6;;xeG&+gafWr+uNMS}4 zh`USC4;|GdqbjU8>|8gQnVRAc*8NO5ZkC*h((mY(M$q%6+SE&nv=Nr}08jgx{mXs% zu(OAFF1)1g=d-s2PF!E9lgu%U;wX(3+)`jHcDSVd<@00_ek$ZPFa%#SMSb%yd~0Zr zIn9qVf3iqIB~6&Aro~InrPUlSr+P-Y_-%?r4Dt zfAUHS#ESeRl#0jG5plbn@^et+K7Dc+BPlXHEj{8Mu48pr{I0q zG?f3+j?LDerI-j4aQE3_75K@D7iGMJOA0;?{hX-*D zex4YKAwD^ZF?e&%|7QPS`5G{tw8rcsyw zj>0**#v>JxVCTqihw=HY*p6$G^=0H7^eL`UvNAFV^xiOWrdUK za}&pP(Ift|wQPh<>CY^6*{9^RKQDyjH7c(kN9nZJ=u*$~t3z%gI|$KeL1^SHDulpS zW@(#vB2DTy$SPYBF8uLfQ^jLlwoSyO-{9gh={{@+V;Ub^<^+bzD%(9weaFWX`a#is zhw_BX`*+YUoR()^%d%xRdQ?f>k9P9pW8Cj$0&;C8OuN5pevWkSXkr|LN@>&6V1Ib= zvrRMw;7hihh+J(vKu^cZ!H%3O&jc1<6JE`<90v2C@YDUI4KF`RzsJjM;az(%wXDiQ zv9`=IWBC#v(D%}$#?qL;@`qg_u-;`8i)e}LFTP&=ZWPD2pU=?t4n)`Oz$wd;X!!A! z$v3&E5ZI@nI36%<88@hX(T<;=Xxw>}IsC%GF8PWpAoqmIVIMRLb@C2)p-LR<%NowB z?%H`~2N{MjvW03Wz93~t!M1#(TZ5@t-@i1=>tm#|!zcG~Sl_=wu($QEQYx%K>U%OlgNmOwS1%DQA8 z=V^Jrrm`k77tWJ{Z&y9y8eRkJ``yr=`S81QJH zF{%BdmL7xgh$Z&GsU2$*j6 z7s6}PEc_2v0%+OAtDptmhT{UK3zuN5+`%&jE76Rm9ABL7KlwRl83EFSDZ0rm5{Z3@ z`1t{i`NHR44V9zD<^A$IoBp~iNf(2QP)C*iO;1S{Er-+eLR z{87tQ4ga1RRf8<)K2{bwRI7)+U|80J>QO!q3BisL1!qZ?k6Mh)j2&vL3|9RG9x8@Q z@0${1fkAPL@Eq3!4{%1I0Ap*hp6g>^;~;zR`~v@*9(qPCpMcp6e`>Gfu`g+&8)n!G zp*Zl}%_V|DfECR3m)LZ-LOCjHoN1|O=U6*o#b4u($U9{MMkg55>Ta_3OXd zteXp*+ZqiVw-SfVRGKFB81t7{^S?8hllv3-+$0Ge%#UGqQ2Op3PD1O<%}+#^jLOdM zWvSrp8b$|EWG$)Wvu|dxEl8VsTKBUS?hKSzGD78(HWs`r zmTWGI66z95kGTAEw=*hQMrAHb8*pKtvGz7!^v#)1GnU8U?a^*Sb7blWz6)dRQ~)@F zVJI+PWlkQ(xNZ*H-9Cz0uxj2;uLn0NV6s7#RyObALo%a}gWY7GDy=QCY5AMxHuL%% z9F&pI(!`yJ4XjIY$b2vAe{g+X>RFdwj=sd{a%-1ID3`C zw6I=LxH+@#rX_{;Asm!@{7f#bwVfhN?Xc=&qri}NME|kEfi8e~PR1ViIMKq#Nu4tO z4`2RJQsFW>muKwq1pIY{%l7@6?iVti_^G|S_$Fyy`q2|tRgLbCUJ5qvjZ9u(8D^T6 zOKrS_rLQqII-{m+%Un6>2ML@+1+7Qe3UlwIr8zqKYr)I{el{aXr>qQHE^R)B|ENml ztQjnN|636-$nk9e-8fT?`fwpCnuTu%v|^^h6_CxPZ?Z!GS^_xtvU9`>T*+_Gc6fZWt`| z1#u{9B`IrQb;`jF59G4OO|Br2C983&6zb>0!gkFaX$7l2v)EE)l9Bl)oEm7G(%;SC z_xp^SltGh6nw&$X)Ja@EKgtFiZG>{rVY+Q-L* zj?hmQCCmS8NTW=fmfoWxVZTrI)by(X>AIScEE$$-D)8aldBD_Mi)^RAKVS)z_Nr8lZxn1c z@`EV+a-s-`|GjA#kIv{7e-WQEp6=16lPm7PVCf z4T6c$mvuR% zTPk1uAVkw=FYHSIrE94;de2Hz8u$7-rbCb%8Oy*`nFxs5>T8V@Hg#z1p|O1BWHDxN zipT~vZgs`^+S;{)ZiG)s4|uxT^|=1Y+(MP8aAWnb z%W;ahP69Kt!~h6(fT5yD%oMfvbI73r0YugxPn=~TK6w6P>6dorlBwHN3sd^=8z$vd z*@FT2}qrXk^NT$OzQYX@WT#Qx5 z)zuS8poW1eWEm5F@?aDZOfN@;T*&DQ7l#EuNx+Fn`|j`_ozoc3qOC2^42#{!NHjO% zO;BM?$~-%62Q&;duM+!auIhy+=LzPiu3Vs1sdj-|@w<6m(lBz_NBnu!+RHDXNOiic z_O?K28;D{No8ik1Rg6!P3yKS3+z5BqGJYj;^hH>^O0 zo2Sjer&u4B)2Gq9XK5k)o1uv#m40_O;L4y`B-Z^?Nzs(Rj)>McATp83G z4Fq6sq^NR&N#-#;9DOc@+hj!O3$29kGZ0%(l|GUJnKyk{ND0QJ{{U5;lx`|v&XKnT z*kF#q0YwYuPjZ<{0&OIGs-u`v7%oqj|5sS)L`6aPzR;X7epzh+)1KPuigYCAj%9d4 zhE_k#E?3W7vN*NSnX3scStlkuwET&QFpH|X?N8gz)OBGcYd9lSOD_-d6luVuU=IgrU1f{bDGxc&cituxfHmTAgI9P0Vm? zc2&xl%MvfjU3n=f>0D2sTgnE?ae=6&w^+^7!6rZ=EK;+>e$NDuNBBwpCs=y%p@Qm? zqQPVx%8CI8o9bB#!sfX*<;|s4xPYrc!M+@#LDqI{7ywrx52*S`syH=Dpl-YX#Fl%O z49@hGdM(!#Q-j{iEybW)P68hOP%6gL5jZAHJm9IKHFtRiK~#5NB=?f6I`1*j45 zAFg|24BOzqA^B7Pr|dZ5lYVw+A7D*?68+`snA5NgmRR|oHX>ndo*>6)5>Paq{{U_j zQ{66h6E&-gLfJ~y^7zL+61BI$K$=j!m0YjQmC*n81kIfQR>R}bO>0*wJ9Qt@-E>x5#JniSV*H-ec{i|Z2fl4G@-7hpZldqr z?ppn&R`!zFxZWd1Z?PTU0GlnGm>RZvW2voCUNc`R6 z)*#gu2R;HGoPpcTsf(P9wBGN#>tFc-%{U5(ZRA)>itKJHD}VO?+1%rjEd z1WG(?b(^hHpMQcF=o-7B>L!4ce&(h=kq}H_ z_ev8`R-hXjFEdPanId(_O;y**{ue3fh$E zNF5~*6(Pq9pVro|M12m{X}f%R6@F z)a#AKLW&J&0GX~@vqmr_RaDfDe#w?CbY zysJV6vCOp!-DZ++5#p7jZX*JtZe@T!FK-RtD1jy{HpZTKovPsZl154bR#Zwt68Kwd z=E9~d_=Yq|j7e-t)AD=hlh|3p!uzHSS4tmQ#}P*IkpYWo^|(3ns6MQ$`lRC%I-D3a z;(F~#W{FLELH0OlpCuL4q1lOrX)g;a`eW7&zzJfng#rdAsdUlKnsWA~Z;A;a?t31P z7)89W6YU@~0+bM-Sa%!4%1-*jj7s0AE=NaShy<6NNSUa}@BzVCDeSA9K(yZ5582qc zE!c|U*PAr7LPS7Z+E|Ze@J@lAS?M$fWz0B2Zc6}Zc05{ci{cqUSl_f)wB7IJg0m)L z$_S@T`%bI(v4G7H6WcrO1@>V<0B(NmZ-fefQ_T#0mRPhe(6r*p-%4!<3B}3m25{mQ0&pT6J-NE&Rb%5-uD9uqJI&gsmm*PSCI}j z!U7bhaQkXf)by+H(vq9kopJABTi2~Kl;~Ch)6aXvEL+#*rJXiqgylD%eLu(i^4+)= zqz5%*hXeYjJIsdbLylH1*5$PpCA4ahfD12vJfMpqK}O@WL!@MyLy zj59U!yS^64X+Zw-G4=x8k403a=y|8 zJE;X%x&U`q;L`;27PiTktSxNerTRi^9m1=Dc}+Ef@m(T$+W9~TkZ?Imf&LV}Ys#AW zRVQ_@?zcASl3;OomF}yESnAZl7XvNAWlAQ7c-V3-^!zD4fe>&{P^;uLr5Y!uMSh}8 zCXV!hq~*(|ZxI3(P3j=xlUC+Ct&KH9m&|v)TAAYsY+$auy|O8xPYRb%45Oy$S{v=l z1>gF$K4HQJ{8Riq!kFKe`{T;S)Ickd)XFTi)t)+tx}o0q6~_XsQ~-+&GJ-u0d=0BB~ucr53|rtfD)S{kL8Z?^7l7`$+q)OfZ-j zzR}9)YuyuQZS)xaefd_*QI{|Th~S|@4z^DtJx~m=f_@pu{_cWJG^8`AVgGf_2z1Tc zCSq0!fkpw){(PAE)%%H4(o&Aca%t<^^gxCmu;r*2`5cd*i(zV4&`$(QVIaZZQ?yiq zk^SK3Bf~!`GyK561IKav&2I_gzt1e@XsMnDM9O?22hXRG1tc& zN3}LWmkZ*1byo;q_Zgv}9ndvm+w-v?Uh2WYBwp%QV6FG(Y)4bHb|0gx^6vj;EId?%>-xERe9%zq^GJ5$qt-5=)<(8r-d?;p14?c*JD4eh zz*1cwQ_NZ%Diyx+J?`zQm!126mFF^oyWTJy-x%fv^%pjf(+(D16pF(;w_l~t$ulUf z)YGI=o7dx|QbTK{!KvvN4sqc6tat&Z!T*X$D$4RsS^gvBa#Up;B=Lfy_%@cD4WQ(WlJf1}v?G`PS~oCTVNwdA--$J?zAyf<*}JHLQR=YSMkh{q#qP z!6E2I^W$nh4DHH25!zP9NCY!pD%#&$u;ZKj28vH35#vDac`v)pjMw#AqXr+t<6i%* zuKn(yzR1QfR(Me=PaXL->-!h27Ohxbup=1PMSbzDn6)BQD)Yy4CHUNC5`!n7|Lb}{ z^It)|t;3o><<@*PG>eN-{w@M71?$}HWov`J{==lwPVlbM) zyiSpG?9kk>6bScr#pmJgfGHm}TyF*zOpv3u@S*_t*KWB=jG$&q4WMOacu;u&AEV?q zuznip7Ny3$o%FK9|F7+Ca%8qrsI^h$>IN<;HX6Z=Xt3L#iGhlKuZfaDJP zPu9QMjm&Es3;{h9*NoujuSC%9c80UwKm@K-pJ_}i`dTFDRUXPb{HAS>cqJ=+B~yfu znfxaWU+vdkO>|#v)z?(akalXvuL%WbSq!igvc zeZN7C57Rtphz>YYZp2n;{&m0ofDH_^z=^JT^ntzfNhI4?93hV5UJfl_U;mohjT|}F z>ddyqr0e0f;r}aebfDiZg*prFLnvF?@sIyWg9D&aw>F_1nm?3?i@YB7-q`~&U3*m6 zbzQBWuQtG4NN)giz%Mn(u%Z~>EDJ02CV+smDqF%8l1@SEL0((MGlR#*RB2|s4Fqn^ zJzGN#L4?2onKnFK;ac252UVn54{NXijkc}>%noMJqlKeffPsIod*q35SZqB z@@!C<96*+HXm1Hq>Kib(L_P~iqh%`HfD{gBNC@~9OHD2~t8!Vz2|eAF#oWUM>0sJl z6ABo&hm23Za>+xuPTL(|O8qJg6eB!dQ30kf5CAnK8DvgW(mx$*3I3R_tAfth3@{Ux zA7KNgK=8*NRhAmx>{t@ebPff?BMH->c`}lluG}-S_H|A&V}u5v(7i@Ogs3#g+~`9( zw?-OPX|D7MeoGJvq9`G=8w2Ty;dOSev>0unbgpO&4PPo=>8@~T zA!%zEAixR;umS?K_1(?*^mWafsYeOY1ZTiENUL8Vt#U#-v3*^G(aRJhy-~woOA)%9 zkoe5M!cag(+>mLTh0KU<3ean3N16Xe*t(9^@6EcE&XAHlO_MM5C_e{yz5*e9x{yif zjIjNTr1!&b9;V710z)(PgV3QtP}~r@`6LLcbk7~TuGG7tIlR&y0#ja>fxwhsVe!2M zSOl+Yx+7n124(XxQO_yE8UjoED*^?~s^Y5+X_N^vaSk6No`bTV5dCon@I~Ur$5?)b ziwUei9sHvycwc}ZfmTqg{uTrS_Xh3_rZ24)E@m-4JcAxsP<4;*xF1iTcM_&|(V zFa-Ax?M!_jaT`%n5HJwEwz)hNpKiaf58%S zsyK1Qss_P-rihl{&wwe83>>dno(wC9Q-1Qu95WI``!ybRcIUk{#H0`PFZW{fRui5! ztE}U=4y#RtxLaeo(L(vOI#W5KB%2NC|1*aHzZXUmY74rdJ&~gmgs{5E@GT7luY=%L z?&a_rs)KN+c4Bp7{>$uxUh?YF`(=#qU4);Lie`{>i~yCOJ|y(#2sv5B>Y$U54WT3U zb;l}cOFg6&o=MX_a`ai}qSu3w|ICYmC8t$krckFJJPXyzhQA#|_USww4jG!oSL{|608DwxehyPj|rbhK1KNt%6~ z7M|jC2$GwtYE#<3ejh&sA zXBE&jZ3?T|NU96;`4zf`ZM8?-^jV?}U?YtW!Xm+^Z}R7Bv<=qcS?Kxfad6e_g~M$c z_k1#t!(026LU?;_(!9SIxkTq&EqKA#%+OlI${;)!bOqKm-Y2&K*Q7VY# z17DSp1r%oiIwK->ax}_tRTc)L_oexcvq;s-Xk=>VUEK#>GM&@iA0w-WbsvyWlB<_B z7s^TF!6P!IX5n&l2-V3sY&K{EW-J`ImhEb&A1DPao}4ftuYCRgp%LJ zu9c@y@+4gjH6Rwov)mndiywKq;FKTg0=nFrfRX8Oeyq=rD(o@{X0lU7%%2r+%Rb7S zDR2VQg-CWXyF@bnlZ;J*;EWW5c7h;R_R7SF8*qs%_oz#h$R%mF?;#;Hq+i%g4RKOaLk4|7_R6?(>%UX9=TtGpe@k>E z^FFj_E8I?WRwzWel``1nDipP+fzonu=ZVwdL$M?lxc+$V`KxxTglLz6kV|>d0|ppw z7)#whDErg;30geSC6U^Xdo1ocf+=G*W~ZrD(%?XO&d^V9vEe{IXrw%?nyg3LoaYBDkZxj z>A`hYShNYKz^DY^k(#L({dUeY>`A{t_HS^n659og~R`Da=8C!~<8$#EHCpv5zsz1&| zcFd8$PO^iku#n7YDOTgA5D=@5@ zlla^-G_6o+vns8GpfW?W=4s}9qJ{f*J#2C9OM?EaHB?7ml!`gRk%I4^8}5neW}jQ3 zh7ovr;b(jJMP%e)T11awh8zwws(1$Adw%qkw&fcT{~9}gKga*;=hl-ObXPjq$?&2k z7KiZO+p3)UAyBHZG5`Jb082+c?IM2Xeh8i<@n4R*SeE_pMx$X%E)_wqNq8}ynh7b& zHZAP8Pd<{y!>dILN+D>T6gOUOm%)I3QPX8GdP{UD@f=P}S6{%gEjn!emZ)9gR5BrL zK@I-`>Vxt;Q?Qev4?OLb5#T61SH{NYnF*Kcwm<2M=)eqh(SW!$VqB(-0loEucag=h z9L3H4ui5tm6o7ZcZg1Zv#2J@OdtCubfAyx@ zn47tzv0TPA^j&Hj;CgS=sWK+yS0bDveXXvxiqaP>UYG}adc`c4F$^2ZTr z3W35grOLu+V3}t& zFfvg03BAbTJ=DGYtqks^N%@{S-ViPZO~S;~^}6Cu)E5`A+aSbx?;4GxgX&Eo_OzUV z*hT#dCP770%RR8^qP`9f!PtfGu~1ImSWNG6RrbJGh4yjP+Q?Yu^l{Zwa*k&S`zpAp zn_ZA-YT+YIUe4&{;$lN;PBrbqqE}AN-oF-CuX!t57i7T)#QMueR4;UqA7ceY$Hd+J zW68_MT^rNrW3iLRUH@7h*5H1KF6a{G z@#)fr%4==JYVXASxT`TKXIgOa;|-Uft#iHmHMHPg?fo}(g;h0c z)5brHeTMc3$T?M<-TVUw+mezkbcA>1{8T!HJ5hyU*Js*(E^_E85GYkx`C-ZC*hWA^ z0XvmbZL{C%R(Gt=e!G_|DJuU(18ta`SEg_zj#A?Kwz-jJOD@ICUOLqcJFI-A@s}8d zK(cLSwVhBN$a&{@l@?xipQ4y9j00-~M67?R=$r}vn{xfmi>-v9?Gk37E5W~Y`M~Z# zeNQ%!B?|_BbExx)s#MFmZGQT zfu`lK?a#914?nWRW`I5I*)%_%lm^+qhdnVcq=Ipt3S}~GpT=4n)M=-8E>kX&Y5MRm zu8SP}=x~NDvmgh;4=k4{$mA~Jq1uqd?hoTE8?d2&BX=o+f= zrr_OY77f&I&7sw}yM0A$NdKUBdAC+Tz)v zu-M#C+BdV+TQf7~slD{DW^iRT4(X>& zk$tw)+!44eHxT_43?(0PC@_v|rpJVEU_}==4Q4pP7w_m$v0ddW=k?6j8rg~GyBe-T zpOpLpN^s6@@iK0NF|I4Fr}*f_Xj@9Z9{fRkXr3$A!@}8diBN~04Smx2l~V#!f%x!E zhuUzJ@e3UZ_Kh2IHiBvW^cjy}{IePDbF_-7>oLkB!Y^kjg2_5=nA^}bDwi?7muq52ga79kE@mk$L@I-7jMx7vlKl;FCE_r zE>|`*QU&Mi`8G7V3ki1W)HT}j3i^%LUH*EL@N_EcqpY#BhIajkP1eO|yi?2M^~^Fp zCK|tZ=lwpr0+zj<+1L|v@TR14m(^^XB5Q%bH!R28c7eWaaO|w}IPOd_Qd2KIC)s#` zfHN$oUbRlMD=X*RcH!$8tYAtLDqqU#@$d3J6?q{+cg@AGycs$0*bDk?89B7*^^Lc1 zf{LukoPR!MhG{Ws9^8l>qIrw67}B>Iv@6WlQ?a&YnwF@_W$@?QN~(YR^XZV}rKHn2 zPyLrMj+DDGv(4LPW$q8fI&4=_INTT8h*~(vQ(2#d)C$wWV1P%tWrwVRIm3SfugC%k z%$e2FlJlk}Sz;aHY2OK{)$c(z5jK548AesSb6aPQ4dee_7}j$#MdpO4Z+kE*Pv(+y zQluX#2G`V%vhs4*BQbw$4Y}6v2OUiKHaNcp`LufL%DdgXV4glw(1(PO5sYQ9NyQi> z{x~FdQtPF|nkc-(3+GuYHEYImq0qh0q8*8!dR4!9?Eo_M>Q)EE#;1dj3I0H=^-J(k|g$$Pezn-&7bLLR>O}6k!t^U=JfE zdKfyOp4%Pbps$@lEJd&fU2ye_`R* zjKNtQ?i74V&xFTT;B?tjmq4RhcT1BwLh{_?AS_P{EL^8Y*0TWrzQ_8s@W|4Y$Sw|Q z$lAt><@(GikcLkgnL;V3NFR54hWUX(nJ$hr$(SQiW=TeMI9MBVWZ1b$C+aWV@9`*W zku9B=?wln%iMMq|A2kbv4<>g@u7-MvC1&cIe--3ZRtv@Prbixv3frpZb&}E$qv_oqi?;F@vMF8_D`1al`wd*_^T#Rl?Agt@jwY8vknyL3Fq2ED zdP(-JkF+wmXQZ4P&d6%jqw#z=`_*!VM9&2L{mZb94md?+^7sB(DUEaTo@$GHNro_Y zL}n?n#FuI_hNeB?rS`0~2`LGwS9-LeGUR%naQja3s`m`X@~Sg zb9%qvH~A=~;X|QpXWy+pHj!N8yrM&9E!uFJOBqtIvXd=S6oX*Ap=LO{m*=w>HXW>K z^7XYOzn<9afKQ-j4JL*h_C`xn52IW&|F<_Eet%Ql@DQdTb@$WXkVj)^E3<*C%6Ay@ zUX!N(Cd3@E~W@hjd3(XxA9~esQBO4 zlbxA2WMkO=vEX`2&ingm8l(22v)u!aFC0GYX9%j+RD}_hSyN_Cy-tud)vxr&zsmD? z0)E~)Z|NM6#Z&A`j%0^GpJw5W#f%YaU&f{Dyyk)dWF;ZFx?31X>oyD8mP zw$hGpC5kN-vDFx@lY(w&&*ew;(C|qUm7^l?#FISt0($k#>NXuA$%p-eVupIj2h(>l zgML5NrQlkux7e)fXR&!J-FIs7xzAZ+VQ?5P)B^5mx0;(rA>dJ5W9O73kJ!i^{? z6nN!!iB=!`AD2Ee^Ounx1W~R&jU>|Hm6RtD@fLd&JzGxewJ94FAqynH35kxxbyI*d z!X_5ey=gn1Jh;;HqJZ#T-A`k6#s3+;?Bcrmn>bTI2Kr0i0>(T~pH0l{fbTtujl{!ekXhL1%qon=_{@u- z!>%U-*v3zy@!oCKyN1A*1kB?n@n_z`GJdVQmWC~JCL#HdTh&g-Wg@6RT@Sk)Sc3`@ zfq(e#){AZe({g{1Ty(qGK4;4YDUpeyj^{;$B`2pnpKDpTk77rW6ZLn43ZTkvVX#XC(}X$od-n{>jqh9X#rQq4S?? z^`S(8q!ze+o6v5n?%aaYpSM#B@y#Zoa=K;*()$lYbP2m9gxO^Ud#D#CZ?B^6+u$U- zuS;r3iY^|Rps)RcrJDWt^+*Ca5*)KBXQ>TGpE?`r<3w*;>z>2^POujY+;e(ctIOO0`8g zt9No@*DztsBQ1A0(H*b}6HUIawWCF&vGO|ztHoPj4DbDA_X5<@EEmJKEhAl=E@#KNqHDGnOHn$>V(Uz zUl~9-jG4A#^pC&WCQ*1P>7dNu4_Zx8&CJxUbLpM2Q&-EnoDVCtgJnwP4w7~Z3?fU) z_%5S$^V_s?LW(&u#bV5K(|pvF!thdec<%A)@1e$V;X8ElG{=6YF;ml1mI3+;AzS(; zaZ)FfT?P7@%Y1$-&`vMe_^Eo&LQ<(gKrwEZCSkZcId&r6`%Dq9%B^^my*yUf zpq9+l+|{H48~ain5&oo=?s8JDd6G z^q-kvi$VC5|3`h|anodu4=RkbUr=zkagswG{cRRqVE; z= z)XVbQK^pEx(=bj6jpDm-H=>7xT#g0~7QtOKZJ{W|e9=h<#iyFnjIwiZyr9@Q2{v)}I=S_uuI6clo=gC_971sr z3vyK|-m0$b!g+&8uRf`{kk9I<+PQ}qYW+fe;sBf6gz?a}UD9L}h*Hf0ufgsiot&#m zOQyxX8|qouE8NRUp6`089F{@uA%12B_Cm>8%)$`+x($3PU(rq4%-^e=%?K|FJ}=HZ zghX8CC|@CKR5#Af!L=U0^DRUie(-VHvuvepW5rK?hB@f2dWy0zS8;t|5PzcWS#NgQ z`i*pY4{!62!qe{Aa7ZPGzZXrvEb!ed;pd9zYM{0pf#g+|?buaNLcc!t3g1*>S( zY5-1YZth(%P9y(I@w(N3nax!8#;zt6bz;&fx63#F-c`2AxLs_Gpc9gK{$8i=lW{vP zOA9W5z+#a`*_w%PA4Cfr8?Hq@R$LD^?e z3vCmB?`%4F-Mq=Ocn<(zHNLMFYgYPlUZh`ma$iIxo%TohyDIpCYC1xi!YB4GfLf~!J5R~ zJL)8JXe;lzpyN(k>zILUbn_M_ho%RYsA(aK&>;};)m={s9x*QfFzu-N?}PedfD z3HAy{k$sKAy_O5As;gv58RlZ51FI%0tt=LlDc%+mq4NyfC>HPfvgH_0F1sz0eb$b! zB$o8f#7@pnja%cMv+C;t*5M?#Cu$1N_u*J}w&JR%w+3jiR3l5W_|{Wrxa(!R_LdX$ zhw9ByMr4l>L=l!?stbP>^M4!{{VEET>&C*RSk$Z_($VSX8U8q>cAQ$I?+^ZECFC5U zqkK_r>d1wc(`Y5)VSy|~SOgOiy6H)S<8AecTSu#6QAWT?H+~|eKCW4n6f9?Mm#sbn z^P8;SkFsmUkKqJm;KZ=VmNb^EPwZ9dChKK`!8M`;Fr==5z@Uo{55hVsy|fuac)$q4R+J5t@8KQ%6|zEnsxfVubc_6HukRaiDr4d$ z6ix@F4lj?>6LnrQ7hm<6t5-W@hg3Z8N!fg4#~xdL+JRcQ^uyiKIaUR0V{Gf7F}~@H zM#vf3OkQeM`9PxPa1l<&IEQ&n!t4sHfF}oYv8S&cZfFDMT1F}L&WHp3`AE-RJaIG+ zh5SRwnQ0LTQ9k(%88m%yclip>$@maXvG$*r)}La;fu`?nOtcUXc&=k$zvBaTPe0j_#&!bfJG{c+wJ(J#qAq1F3wB2T5j1E ziBV<5Tav&c=$-v0^?+6eYvw;Wqcid#M3QJnb#d$+5i%uZ@dX0Hb3-*I*O`qU_*kS8 zp?@3DnmiX7^aW3>zMabHM2$1WXZ1w#>HJi1kp8iv!MQy7Z^yCAXZtX1_n8a%-$7Gp z(h>~vMNul@id{9!TZ>y4t_)_+7FpXnIi4;{9R1rvh@o9BmRe_uMUWtdH!zE;_g;li@O(h zcXui74#lnLA;pVB@#1Hf>X%J*ur_VI{5yZoRh;fr` z*?@~de%!1w#1G?Ad`w#oSa}|wqPe}`k>72-NvOXMTV^XIE0lNZ?&5*ZK181Gsmmdl zrLsk}N2q(&=K1yIpJhn}pXVCv4OBiJJ))Mc%cI9n$P#8Vv1@(~t{`rtT+rC1!Vq{( zq$PTcM^Vf^OiP-=P43WiYKoQX&^Tq`q?2WXl|~s%ty5NNa286MVLt>U9yWSO+FN?Y zp#%mo1B8>U_ga;5%#BXi(&+_iPViETvuE{kUlkK1deZ1%2iR&DA6go@4LGXUBsQVb zJZV21HPHSnfUAm%spa$L&&ZBTdzZB|rV*`>SvKsyNj?%SNN&RI5ouifp~N5z12K)E z&eeSz8#^iKu`Az&>4Ka@S44rB$8ZVu)GeHoUuzR~%m`NSw}jKOg8V)tP;Bcb#vt1} z%N%U;f3W_&T7Ywu3K0Em(vY5+~M_Y5|cEn;& z@+fC3kD`(?mAdp+(QyNv{#qMX)l{!Y99-G(1b9x&JoFL5Xm z%k1mO?@s+?u^%y|a)@VGE9HkN?qgJyfBH24U_0sqES)vTy?Tc-i@)Uju64lDtSc`h zDb+%s;2q8i{4j@r|JV#kYdW){gvBJVrY$LjXSCa4w67!Oty!S-f@bIlX1DlOl(ZXa zSj@?Z^$xq%mwkD^$}>tv{%xs#rPd;xMaa5t7QLZ5u%?C@boPY|=)|bG(WpCcVQP)P zFq~5#AMx;ee*hTTx14LS+DD#k5&I!+J;kkt9r_^KVQ9!z@HChE0I?d8)di5{gYJ(n zd~HNoU+^{}Oa|a8e~@eEY0PuT$JAb%9^>Sn){mLG#3KqNcgY$sotWD0|D^z|X)O0CBP7B*bMP?@?nT`UQIB_Z; zXjdDvbRMtWY`BZ%#8z91*@c2o70PNNq+x5rg;xYJ{}2zM3_k_e)3EJW|+ z-P-;gk%)5OBsSgBLWn_5@>zO=9=m5`J02x*i_R62AU^lP3Z!9sb}%*QW5LyFU1nF< z2`~GY9Nww%xa(Zc>Dy+JrjxE&LklHbXm7)q(d3vhDpr%`{A^3$?;L1&w~Sg z$?NCf@HbX68^@&Z>wMBv1rqv(HN5mjB_@Nu;;(P`GUjZz0~OntV0ho`1sG z@FurkJ63CUxdZO?Ci%XG<-!|W%FUL9vRV0w=*1zFE`CKJI;g<=0=t@=)h&M;ewun$ z*=nbT@2>B+gL1`&D4?cOq*E6vwx{;+^dhj$H zq`qRAL+*#uVu*;r#T5RqRApap7}b2b=0}dVu`BMbsHjNcw$-zgS1q!EgJcWrvX0lE zf(9LNi{a(CRnYGXPL~-dy|^viNVs#zDU!|XR)(^b76F={dq?uCiwm{W&bZd$r z!KXow>W_x-xT4>?T~;4SYTn%s?3e^SXamiLR1?Mto6v?%6ExA3F2M6s#iPA=@04g zDc7p9sgE`W#W&F(X5Xx!Qx;{Lb>4ojuzAj!6DQ!MN9;(v@?l!ke&`z4J#|I%{IYwY z`@8CD)d2rQGR|$-$%R`0UMrhKC-+lBAWUq!Yj$!&Ko=$&b3sH*QUV_`GY!WFLnX98 z$1Zj0u4hh2!=+5R$@i7~wKbN+E|*U zgT}~~4>{lIUAmARsS2F55Lf7g;f`S(xkOX#R%KwCEIZQ+XhG{(pB<7OU6Lp`Z1F69~k?+_qYMy8K5~B#>72~9cbyS&gdm`)GX43@^RNCD0~T=sQhTSc@(^#2&>lG_Rm|KBqPyw? z*%a(KN_%E5su1jF+wswQ0HS~_d1&6(P@L#E#L}*Aqi#B0lu~8QVdgiSJ*N{sL3izVKUiFMXv4v$_RaX|TP`41ti4XaE z;f0z-7&Tt_OzA!sQFYlkrxu3mID&Pijl7E5xU(28OJx0&c9Z+)^aXu~f?dwTAE?60 zKlgqkD{R&OI6)_d_``XhgYY&|jJt)PPut9k4Dkhw^~kE4NfqQl*7^6rEGHUzS>laq zgsl*y& zA61c1SU>O|*0Gsqr1F?su(wZR`*`T&*#yjObCr3zCEN^RWnh%#X8p~#R}Qk@CW3MF z!9uRj_?YT2+E`Z4xn}tBYQFhVw!2NTG!zFRJOa@@Tqo+s-g1Xps1q{&mC{oBD|w-{ z0imsB~l$O(ND=6wEKkeX{W{7OmZ*pgQaVHS4>X>CT|n; zeA5F#;RnVT*UF|>UHzj&CPDK)6T!c;3K~O?GwKkK5aZ3a?nJ_Pz?=!nFLCCqP^Q`e zwv7m$y!;I zJArbS5EeiU8?{7j7kjok7fFx(cX?JDw=_rSaO)6i)59VkDQ}yvI!{@%*n4wkEFt$cFyw zbsJG(X1iC1!j!f(@C$K%%i|tFOe0gOuf8Y!WuyX4FmX&>!gx6o;CVHL#fsjHUcifE z5dKFr`NtyGL`|fo^B`&C+$wCR%@c``%&7UAT55wJW;BRl5bSK-adft8vv)a`T2y!B z{Cc}%+;_Mu4q`xymv+p@&CXpkC>~QvjYAFG<9K9Al_>^>iB7Ni1yXZ>8KK`lrcveD zaRg*w|6?{`Mic6uIEb=pI7vtx9UCD+l21P`!sp zsn`R}+JfB!*RyGKh;lpeYxy<>{Uz<=UTf{mP(4=+lgw3CIk&1~XQP*(mPRtWy(C;9`{*X$~;T@E0 zyT&7JjiKPRfp1C<>vA*mDumj0S8FXSF}y94^HM^hs9f75VGn4pDcK2oF&QF^lr?-B z`P2`sdX>`u_=EmxumA-SWbCv9$jEI#lVyj1-o@`JqDjT(RG7#wZvmfu6Q&DaVQ- zp!6!F7^8xhcqdW$;!iQ^yizT1|7CfU1z9#3&In?@Y0~CgUS&$^wRV)3J!oavz#C~d zyf%U5;DL8iCT-O%o!~f_og(EvKIpg*o+B%-a&>T|3uZ@-r#+{NEczPXH;M3lgGDNZ zEv^DY&&?L6f)<>Qo33!K-%QD4Me29IAoP8024&nVkn``)>(v_!FwvFUw=|6bK{w8V z;$Yt9B7Z*qHyq^>9gPcwgJD33^*N!H<#CASfZucuyR&9mCDs?ldJyq9+Br??H>oAJ z36pONP)D5cDa~R^S;d57qi;&9q*lxbKlT1HQf==$0(3X3)NAVAojC-i7 zqg~DPCGz0DLpQP(1|$Yf*|VmdZ$#-li?lBFZ>vp^xaCgkPJl9;H%iq^4!ElnHR4d` zQVizHth2_r(0uu%yfB^^@$I+Y(#QCh@D>1maJ6B{Dpj|*PKR`N(!JOZs<*?AZnw{$ zj5PuR7QgiHR4qEDzGO!!d^2p3%)nYue@7n%5rC8C8dZbO2YP(l&e#B5P_Cv;s?Xhg zCV-h@)!L-kyoS#|2l->tHIfXZnc9cs!yX_$yFo42($ab23174qw4FZX2WB)iET5LR z#kYl;zIEMkM3P@ix&TDqMBfZkM7&lio`?!%bx$peNc@ZabiQdxByp6|vfHIT3inez zM}ofdF@%qL*kXwX&ljW$)bX~yD8Ev{LOU7D$}t)IKK>wVh(>C}1pZo(`MGHl6$$bt zmQ+;;{suQoH!}B^-f#7jO$+6ub82RixlQ>@J^jN`>;^MszLtuhAg)sgu|7=PZ5e-jF+32_4oS;Jg%sM;lKx0F-z)np+ zrLFX-oy3MKTP?s{{x2(fQ)%Gznfg_x!&B%)-hwclsb(~{kC6h=LtKHThTE1}$}>;C zgMRxT?yRn!_;tE!c;#1cLh$DY`VKmfZ!3iym~yyv`R86l4?p|KH?iagtIw-lUgZ>j z_fjT(4)f+1^+T?ut0bIMuV_*EnDFu&9?SQ}>n}VWJ|MrjTrxZx%Kj1&nb9h~U07}| zp}4w<(Ef%6VB+ejMR`$Dl^WH?XN#2Mt;L2N1ySn&AG|6jJ?Q$itc`Yt!aCPGj))@!u~I9C-F%V6IOKJdwS_}{It|1^|h8!_l&Nc z2^(8>^>~gVOL8oMH7%y;8_`}Nfl4Vi_ds#o^@Do++%+;@h4!6a9cF^Lf~luEy*(yf z5IXtJE-+LnsV(8TOLno_#=luV!o{>cR3q1<7-Mw5vlx3JH%swf04{g8jyHKMJwu@X z*)eR2WuQKFw;&ZZw&{{wovF(Q_aAHyC47U2@lhSXm#WxuP7Sk>B%m^2ww+}3>|sEF z$k?GzR5TYbdp0mc^Y1-xf5AeDMKLuhC)SfD706FdZApPHI1=r_$;pS4vVZwL<6B*x z35dZsu<|T;f2jp${{>=Evk`MB3YzEz0~>c>x;9x`wAh}(Vc--Y3RN+qFmJ>t21#^ziP z{VMi~s%$etOw)RBv1R3*YK9N$9#yJ|%H8ec%gP%__6WSAYmBFGPyDa68w2aT^z@cl zuGhzfbH3*z(*3!z%_IHikMHCO{>J_>JsXAHMV(C#^XH?Rvl~?xnA3K)3`jzm1 z2}NxHi|uUg;s254C7mH0In}jJ$s~ajbXA7J?%~raR;7zg9)Lx+g1nsSYa~A%=Rbc) z+eg10j4JB{s5<}Yz?g1y2P}?{DTiEfJ!)R6y5LHxDp9B?tNOzblLKiN#1>A^#S*W6 zMyR@YV#G8=n{UD{e!?B@K&+y2Iqj6=nn~u3Se9L&e7j;V7P}*j#Zyy#d8TtHa=c^p zK~g^&_^p$7mVYDacW*WXgk(KqAD^ys^QMTpyh`;2IX{nuD{>2L&Wk9k+@UV+3G2zZ zPk}=>j+RP3b=;YR;yx>qdEE8HjJaaji||uC;tbj)iL2=Ld1Hqs*H)i=DLo|W^k=8# zaK&ks7OBF=D6*THH>07hdxZm`yn0$C#2L_ zkD^F5z$8xB6-IAADPlJWGC-jAdlB-4&|hxS;s&ATlv+{AXWFsj*hfH9_;fy#`JH-4fnCtD#)ad{fQ)B;&WI zvKO_?z}ATn{kX!6@+e7GskOUkc>s_k2eX@pTCjy)`6OI#g_T88Ya2osXdImO1?W$! z0e5>PCbGg})=dgut@}&B!b$O$$=7M@VSXOjxYG~4H_PJ=R6;QYmcFR5eMUXV3Wpq4 znRPPzrs$sqI>Y>Z84u*VtFR5@!56FMhq;x5Q!o|(F2XNUtdRHkGQo*FjRU%Uy@qwE zn=#r(nKm;sqB&2DnWXsQ2t^AFJFiYx2cw=9&tWpCs~nwerp!?I(T3+Gd2gWNPp0Hz z#$7k7=@s!=E8T?Y5x$_KB3-A7*j(h?9HZ=_{k9Ym>KjAlYcS~{sEbbOBJOANAxe3w zUTg!|0MD$f_Mbd%gY$v(>N(F%Vxzm7?`s$H9>5ZZPhOST)4E)c+y46~|C}By$H$l5 z>_d{tvJuU{Jsgg8U+F$t6iEKt>ZX?x!;2S7*m-ngc?4?pJ+-TMKO3ko>$L#i9x1`S zzkrrzGaypJ>oRaxNTl&`%5BMqm(2mBI@@`r<`A+Ley{Iz2oaYa&v^*?ZtV%oXhVHo z?U!q6EWGxLmNWO7lIBDp!|4QFOMF~>+RXI(Eq~|dOv#6No%^u&qa(^s-))#$-+wG* z$7(W9#+8L4$gLoM>oAHdzd{(J^~BN6K-N>=G82e!9t+B0mNw}jRX~$y2gK4~q^L@w zhrX$;S_l=%R^{@^sSIFFMcN3s{B%?*G-j2`;*&;qxTZgdKV#k?9?A+;13s3$fDpD3rpqJHHNMfSujX^=rI8dj#GTxjZMlKLi}e z#U}n$x3km>IGk@+w}&@^)#1sfvfqRjz$~MC)m$80j4nSSYJTm(5JUIy#-X^f3+vnw z@#8t4eNY?ua}Kv1Q~#YRxunvMAH+7g^B@9*rFAyVp?oGidpj<_NqHy0E(jj8QkQ&7 zqac3z5H9NibKVdSekE4*J*E%pW;88SvBazq8e6ZPJX;;|e|3PULw>9irYE%U6Q)=9 zF!8`W-T|lARI+DUp?gJg_Kg8k_js5bpf_Derng)JyG!l6Y#0t$OfI3<Q3k%e z3Zhe(Lzid!Ol1*6$OwKwAj@uRt~o$00I&}KmrZR(J)WmU0WPE8i51MIRB5S#I+siM zHHGuev0YocIu-k%8CH91e`=g>AeuQTP5`_DcBP~NPPpPycU(dxI>XZ|NPt_aJB zQXWqz0M5pe`X~Lqh&fzF{)`-3tH-RXC&z?lW&rii@>*RPJz+0n6Fca_VxOiiqN*_l zuD|bbhf~C)X2%yq^U?YJ)|lr-ghkk3 zQJnJ8h5Xj`_v~8%<%KxK~(BwPT!953N9PiW22rsWLkoET+^RJr$SC)^?*GE+(jnFv4i$Gb9cbTt< zI$}Gv$ZsyS1dc?Wd~V@rjmtXv!x?MN`}2jLkmmh1cyz7^DuIr;+4+zi2mX3htv4Vg}<7CXMW zlRoeB-;ZCCob9lcpEBeCd+0(WIcF)l=*^k!w%o4~3HIDNV*P&$J%-1-3v8wd=@byQ z(Qp+sw)>fqU%Em=bGgUBU`t!Wkg3s0KYG4`zgWeN&Z3R$k09AlxINw$+*0F#NVTyi zmk#21JMz?Z)#SrF6p#6kF*~r0_?BIK&c~N{M`r~7Hlpoqo8AQ~3_jRzi7o9!cJ7+N z49D99*ezi_(^6#58cSt46#-Rh?-Mb9{xTVw3XQ$H(X?b}+D|;m+?G9Ou4_tNp$YuB zXTH8@~+O?nA`}?qR;Hq7n{fEQ)yT9{Nhj5-JOlEI}s3+A&JwCJ`e#1=z$=f zr3Y$CY6;D|*cJly`Me@p3I`t4G5&cVx4GK%V7l+2epjD@B_v37sxXJalJ@>p^OoH5 z@+C9;0*D8iSQVSlZ%?I{f7J~}^$Q^#eH&d*9>4wk(32+QWb&50DcmKRJWQCQTPfuG zvN?KUOkdaWDw{G{mE?T+I7W#1smx+JrQ(0R8&^9#w=1R42Z(?;^mn1VaAo+BsXJ5; zox}uKI+@7w`;zT!drAG}$Ec$YCbEPIj_vW3q4|0p)#Ek2B0-MJ3yN|oKyiHz0zsR4 z@wy?K0}kKMcX-rvyAnSO$YDSsx;mzNJ8XIvLQCMfE&y<@BOJ*2z9IXs>E!_9cthS2 z;s1L=k?yPh*UN@;377u1W4nhg48Y*!al1j&*<7~?(9bY8{1D4E-1X-KHwfQwAL!@D zA@bMZ!Gy*KX5I(pC*=F8>H!_Kqd*8j<{*7F{A3j8MnFz!m9iKW8oaH2S}YP8hYuEdC7Z${5sPPhxS;CZ#Y za2`6W3&6zMtx6nV4^R2iu&SZ*-g2bW{8;o?`Fi?po@;*S9w7s$OmV0-iL3I zEXap?^CEfDn(IZUVbWT0bJk}>pxtqMk5m4wYX!`y-}-otx9j&q?)Sq{{rR1(=_y?b**8VqrDzUow zTDsc_Q`zqDXke}XE)s9ZQAcrz%fVhN1y^9JD`ZGUXop_| zVx7c`{(D{f+{mv?JrnHv^Z{{Pi9dR@yN=L+-Dm&F<7dW4DYdj4?QOfKgpW(p0z`~h zk3~npSMpUXjbM1Av)iqi}yR=t<7G_KUr#-d^5{z6uK>;h`1Nm^t( zZ8^T;uN~j_SA)&btp-6S>}8J1MT`=cRaO49=UTP+OzeN6&x}-Ir9X+LUo}$MWp9kB z?H~P&b~>m+um0a15x`=cFohBuGsFmhkcfJ;@3oFj?9Zvv8yc}1^9_OBE5pZ2(OENl zxQ7Pz=OzJ8teH7R851(y`Go^IGdO7CAjhCjn^JkX-~Ek?=#?AVa;w^&Z81in*DV2Z z!Q#dDT@R0n0ghAPLk!{EFEisR4FUlh`kA(Z0y+D8r${e-RymEd-o{(P@O$4QSHk&s zKN6e@m|u|br+jl}*grYKi-0^iP!IDn|5ml0(#gpA=GJoctd-N4jy|O$$Zz;CpoL+} zES78G(K5VuI)&|en}%-q^#!?ab^cMXBUa()$v z%?u9udT!04p=z_h`u3h<7NBuoWs3JWp=>SJ>9#3Ev)x@q`iT$k45YRA+Hhy<$&)`U z6xCeLm=wG}R+L+FB9b6rSRg$4&$0W>GpF$eeQHUF-_X>yBf9aX)}GgP`e$yWSagqX z)w?(ai{hqT#&17d)z9#Y*n(BWxZkUl7f+qLFRX4R3U-dHzMapE_}#Bp5vVpk2yLH+ z6nI^=PL6`0k2ChXA<<{Ae4c`>ekE}=GXKx2Xme*a>hZ0E=YdkCrjlS6Xvfh6C}Va0 z%WDg2mN~R_s1JmX7-Fbk<9olJ%DD-4$r%M*hBA1t9oFMr%UY(j7yCMpbsK58k8L_QkxQuTWvqmJ8I!OY@7d1p+5L=i)tNT1Ko~@~bu5 z8hQsXu5+3G7b)qP@RG#(zmYR=cF~tB`N|g}IaUXXp8yp$G-d$@1RB4*qCZVHJP4g` zU(|;K2fV<(_d=v1>);D%01%1I^8PCR-M(xC%zAue|FbVP&*8v}+F-kuA&>}SNC zC!}R&N+9jr2|ztPH%Y-qE2jeZsw3D6j`@iKzJlQGBR!qi=yFR&5665H4nM){aQ8Bz zdOTbng8d10noTKqUMT@6hiH!F<(>n(s!_gCRIzY6=aR24lM`u{B~)w4HI3e$-**lT zQFZ^v0eD3io><54n|l8lQKdy^>i@Q9*5xyq=bNl+TU=hR zLE3p$>jZrLC;R3dP{97a{xubY;G?vgoLRvp+dc$Gc(NeWGkrhmQ0F3EXYl|q@AH9y za3o{Cud~kVc018D7ZVYIh({yxFg%8BdIFn*;}jK|ED8RK_CFSWduI0VfOekwdHS0Z70&H$cB-9RwFfjJlJ)9q!?uJys(!HL`LW}Plir1xyU4jV(a2v_!*7{?Oql@;d@#_Ou=VS3tgIT6V^?B%R7xQv?*suL~Z4;cPS|)cv5)6n9Y{~!APj^nO zj2y|>a;L+moy@V^yh@P*0U;7@(7)5u#RpznTe93dFIVr|f(P=cDU*C#5AUtL(^kfc zB&2uspn<|4R~A;3`P84v3q^VPz!Rqg;CTicWT^W_uo(R4T5xP_#dPZ*m)7dG{$H1dSKyss7pezx_38P{2DtqHDB{4|DS zwgZ0uCj{dBqTW_cGDSLVMDUXsHXBqUDQ7foK((Q)_}tVJ6j0bM{ap*VLAhXCxmWz= zA2m4bcPY0Wgbh@4(6d|13xGGjsZ;nnp*@UFq|{@|*}_r3OxTI!Lfm62?9#}bNLa3Cl4H0G3CYI3ZmGt6Ml?* zAsfDC6cSmmmd5@OS&aBzJkm5SDG`D3Ihl?IkvR}w+0#Q3Hy9pLh%Dy7Il7M*yf}St zR@o1{W!l+9emjv#9l-60$1rDNdQRfLovtZ?5E$>7>hCDdcG2<~?Zoq8(n;(XV$i+G zMS_TAU)7OKN$%|;K^lN(OWa^81>NfRA*0eyCgcKyK`H zdueXb@tR7Ad;uWjOJve7KQm{iNRW(^hcj6u2qVxqGQ^AKVOjGY%@puviTpNgoqEFj zjMzKE_^kPsydl1m*}?dNhDV;G;X%UqT+qv>bN{AeE|Sp?49x$hpmra2PD9TW2p6@d zjQc9?l$w+M%tG0o)sJDCz@vZ+Lb%6A1`*GXW+1<*Vvour10}G_()%&sdz$+TRQn!D zBQYML_jr*(!l8RDKkiPHU!*t0-=FLe-Y;k!wNd82<%w*N)z~)hVr1>!gELR{9VN*K zD@S#={L=R98A*rm4i%?sjuxju9b##1+Yu}J{g*0Muo|8-dN2lk0~2-~#jk#W3gWAS zXzNAB@J&74Nd&}b?Z!-6v=&tK*I3}G3}Mjc9Yp4E*`$;TR8g^%nX%6qT;+S6^m+); zfvYnw!H0~#M^?tGVlK0Kp&e*?A2V9yUtI)@8_Fim7}^U)$&Cv=gy@JbEd))d4X9f# z(tNXq=IjL!$+SM*N;PzKgk`mE@*-4=2j4L@zNMtbzCv@h6=tz00|Y*@@|;5tYX*0Wwr;rscW%27QC-dl~_B(o71PJSw-MpS`E3Fpnu!0 zpMWX6-1D8WbGDdC3!#DRvvtW+kF~3np7c}ea!N*DLFEY<(F-H03H`I2wW|*or3_Q} zjTo(|HRd=(Q>MKEy#Or{dAv2`JE=91u&haOkpr6~Q1xDYY#VW5CqV-NQR7KKfoM=C zA#L`2GNW(S9H>%{n%IK+`X|%5sJwsMGJ>K8bt@<(FugBnE`qQI)nZ*zA>~PT+)Q0h z@u@tGYJ5AC?TGGCgfK81B0XldFZC{Lh>2rphL7lOgp4!jkzwQG29MpKutsmSPr)2nc^grKZCR#E}PYJ?~E{pdu3or5e4Q& z{oYOc>R2Vm=xu2VPr`!E>;&v*Y(XV2?^AN~+@4=y6u-Byt`8E7wb`8s{V?{qWvk?e z&vYwlB8HIpTMzpdCn1DmQ|h44OtL>o7eTCq&a#WMjoKjY@}0GzM9DS8f+!dB_C#xZ z8*Y4?$n^b=feR-<68lO-Dk(XPG`8JyOv4nuBAUuMoA5&I=xU({`{Z;jHEwo7aY$!C z|06gWf-^ZBdVD2i?TVqyL-)>Wk;XYHvdYQNSRMM}Z<}iE>dBxSUDP>X#VD4LDuRt`*WO(K6`V-vx38NeFW2L z>cOT%9(F>hd;78Nc>*~t1jAtIcO&RFVw~SxnHWMSkA`1$m@6|x;Hvnpl=O;@fb&Vr znCQBELzRzY1&ij-*C0|JSuQ51Nf=s)L5?RUc7x=EEdm;0glfO}sWz!0d5)+5<}l8R zghUW-!zb(#k7b`Sa-RXm}-mI?_O-T|%@z zfm~`2KAz{te-etTG7A|g)Ds5ma{N8@>LBj_5NxwoUUg~WgPS03yY#aGp+JbrWqHCt zfF_A(ttR28{u3GYI8YkFW~m+Sk~FeF{|@=X!-s{=W`v1duc3+TQvKoexGc2d3Fj*SC@OR=v>w1vFr?NupX_3dRn*$azZ~5?_y|jb2@lfZRzYLq^%n#(Dx09k;+T2)qTg&b1oHk zwYX%_#T6~ZC&mrJqq*Y64_czcX1;QM55Tx2$?SGv93SLt?`s#mG%JaN&_uhV_!m^y z$E8t{DTQQF6tqpFU@SjzuxI*;CXq4t`sN#e0%1t4b!z(^z{y1ei`BO*(o2!z;0lTU4i{c3;^6T7f=Rq+ zy9mO|8?{08lzu!xeo6Cr+4aiiG}BBbM^9eBj3zIVTL>pJaE41TQ#jOubMYgkPs4*} zGfY=8bgbP4x#;1Cn~+P-NuIClNjR?XM*%uT>Bxl3ZUxKT1$HUxr{@hg^;yv}G5{X0 z4h&sk>yPyBrfTb!@SoisLXKg?CJ9`)v4JD<5G6fPVKFZ<9wZSr-wO7z_7AgRQRARS6bzvpo+uWx!BW>YOuU|?1bbGiGMKc;WSDz@8dIc!u2-klT75N<@v1qoN zMJlIl`eHtw4>}fI*vM)QD~*|aU@hPbiRh=>|3y8ZWDg>}{4nRB?VKnrocvjI3>`H} zULX%;RJ{~GmnMo(1mNxcG04fXwf{=B1;?0i%h(*y_!5{rm}eK-_Le5;kC>CIi0&58 z6V`*mN0H9K_$Dc**4X>`wwXEea1>|vo#fu8(XRS`| zd~PMYc>JU)%(;H(?@?YI?eRnf06CNTuX(4Ye7X&(qIjp)FPhUa0lSMFD8V(prbuH z{p!tNjkj|Sec>fiZ~wD|_LW=C4AG2X;!|qUr2rNh{t6E>)+AefHCYiQ%oD%5IhO~L zBlfYAO>*yTO=tzFE)v7cL}0{?3%}Zhb>p9dUYoz9dQtxR^QjBtCa0xdW`QCGh;yov zAzX$UxYdH=0}aRQIG0mncdl3lVXXTH1$YvfSIqf+C02QOg2!PQkEM%Tw^2jC>be84TnJ|1( zzh`PZ6Uek9`{vENTKHRh#_^3OYHPK06^ppAD z=Un%mR=rqf;v`C5vE{Fv<#aR?nc!UMs>w`nQLM=U;LyP}ow>~4 zLx2JbLng<1@*c z7~dtK>>`#EKCVZrLzFn)e5qL=gMk;i^d$S}wJJk31Hg$<;M~eXKz*F! z=S}K332e;KJ8O;EADdxD)C2~cF1M6U%rd`Mj5N#YTi2u=FU zknsuH{3)^~HAAbvzgtj4%EbbmMB%Q;P&W`l7P! zugHdM%LnH_otNToRu?`Nn}w5}EwXbtCKq=z?T-Zw#uy{7A1bQ$S7kNWxTJj#_rpr> z)N~N=oy&Q4VpfCo;E3Q87?kuMGfcD8ymcP0AcDF;roDEX-a_ z)7^sS7U_HLVg$|ZH?4?+%P=1%d~GA0G8WZ8AUI>GYpQCE=;;6ay~5>^o|CY%A}r+y z1=WY0|8n-2&@0^hx(QzCkN}2vOzw1qGwoiXAM=hx;ti86I3?OJU$gdn5kD`XMu|1) zaDYDp$w{AU-tSxw1U8+%-18Xs_E;I3eUV!1W4FsO%4{q;a2cm|j#ln#+rX!}ZGx?$ z&erwR_qXW0^A-|msG$)bymjR0k2?8@+wx>;Sm?8Q*1l&?1fZaMKj_w(%ZA%Jb9ed` z{gc}JeqM57^;C$|L+6`U{Xh-6ciUngdaK~djtQa=X^qaYSG{BvtY)MZCd^676t!BD zWZGmrc}Ak#WqEXI)tf$gs3!`y!0Zi&_rd24b{A{5RNhL>AQpn{^B;otx8-|9@g) zSc%?ZP*AD+R$iK1wc66haVO%sz$R@J?c6_5a5-YvEu0DtVvq!XfqR?j#7mH8<1`l0x z3n7O0rOC%&xivEh0C_5}*7t~kY&ibSXxb%`_%kg1IF|+#Au3rBGWt0FW7Uz^KdVWC zbk(!R&KO#!Q<-L6KI7=!NpZLrrt+5FHu~wbdmhTRvA)g`EJeX z=?E!>SKi2mC%MPG--Pl3hfm%J=?H4xh-V(qa@mcAJ>8S_dy%CEy-5D-Q(GSSwAy)# z#){kIk#Y3RahsS^^&Xs?QNd>&b9aIK&d-oz0|SJn2i zadny>xq6vJVAp1pi0|FgQr~@eGnFebGm6&MQ}Itc@JzX+ZP|C zJX^AOuRPm#5xwU9mXr_lecmZ#ODBTU$AS)h%Yq~;xNtXQxOwSrqo49V!KKm@w0Tsa7>lmE)4eeXN6*%ujg-WR_le z2k+Qs{ZZ8e4}JK{e>}%#+%-Rc%)qSK0VQ4+YuU zj=HwXpkX;vDCdG~{OBZtZ11%!4MQl|BR##Ni%{Ncq$jlMhYv0rq<5G#!r{_N|$g6;Toq39w`M3T89YE=T8Q&&e{RWpnr0v#+?P(I*+0noiSy4nVUyZ&g9s1 zIK?DdHL_xpr{Hg5jwC3;?J2wWhlL9%IgA~?DjiwGj*?2&I+$6zHRnU7taoE>q>K7G za!nu>&ZZH1F4dGvzg#WOOd|D;;$h5ayFAXYENYBb%#39(ggI1E=$4`!Vw*uaZt$t> zQ_2)bJ(jT_K}vP6?04si5d3SW0FNkh7!|^U+c3k!S~W}9p71SC^IB5M-`=o&tF8YB zZa|U0WZ2ZaWZ2`~!Z5-+_cSNgp{_dIOD}>juMsb&YClv|Hc_1iW)slb)&L%)HyD^F z4ihD4L^=kSBpvgeq{BO!T>jeg$mM@lfL#6__o(WD>bInMA%_Ng}5=Ba!pximMgG>%5W)T>cfC7-Fu{GwkNZixGZB~b z;Y<>6!X@AlJ*RB;TSNkO(uYRPo1#g;)i@IHT`dxDCrSt)F6YnJNkFHOhJa`Epssmp zdlIm<6$uz6uB60wAOSy*7RD3a`N9`S|KVi})|d2Ls(C^WVl5=DH~!XvSYHX_&m@uV zm~KKhaXH`DB>~qL8v_2MhcV4l5=p>)`lzVcvX}&9Tt)&4uOI>ATaW-daXA_P77Q^z z7BeJpPR}NqKZy%Y6H-XTTDr1senu~_V|Ic%&HNg%4RFmF7EX`nndcNHw!Iw$TO_fm z^#vP2oi^?TP)tgY!IqxWQ)%XWrHSpI<>F0hqNTSclEK&3Qf1kR!I_ztBjzb<4dyJI z9=$T}?nKN5qKLUsUSclao|u0bOQrp*DD}2$Vbt5~#O%z@6G>3r0*0U*oSs24U#v-j z=Fl8!ZaRttrK})9$HxdOh{2hMpCab9^9<%7P7mOi59KH3f{DcZPd{RQ+Jl&Q7*vc6<)0`za9nUxC zT}f<(BZ=+1;l#GDhF~M8GnU^awsx+?s4S;b>E@zxk(o$rG0ll>HcjB>q*|gfh{0Kz zXG)>(By}*Dt8hB1ZT|HeVy;w!m;={{vJuExgVzQ*V^d@ech=@UJCT@-&eFtLkKY3& zZ~!PV&IWu366xtKju|S|;B~p% zN$_TTN{Vq3yrtmj%_~<=5)5_b&yC; zH))(5_)(W_?f5yDZ5?^horY~)xOCp-o9^6gbGqBsm51y!Z0o`0B|>{UnxuR3>|{>D zGJ2rC7q7AliFwn=(7rqi5`oF<=#i@a{8zG#uJ=0!@SLtEy!-JtF53q3D=yoHXnKTg zz1?l=<8Iqfe%xhSJeT)3?Tyj3oC!RYY}=2X^4@unKPKDO!O%<2BYX?lb_nak7UwZO z9*OjH71Mc~(^X8(wxc}2^@g?+yyq^%w$nmSs%3Z$k!u?G)k?wD@DWQCH+4hYhZ`|A8(<2V0l^68spmFp#Wp9PvWN2ST z`J)tiE1&%kt@p1KdW(=fj$RSiP^C9K*!$C@(nX~=6xi?gqXk^0Crs_JlW1x)(UV4= zb=T1A6-?rc?}n|k?K9DZTh9)~sh^wZsD$Ty!nBr{wl(SX3KBDNJH1drVg{laooyv% z0``*5b`q0?Uc=O0Vw%&V@f{>)U_t8o5;GZF2WKaVxk++5OU#-uvR`6yW5em}DluK? z5s+>YGY-pvv%AF1tBZIKi8&TSV?kmf$>v@XbE_}ap~R%nW2=26X7~)m`%27_c*Ofj z%nOp)Ut;{J{s&0RRGM%GO3Vt%A0#oY+95tzV(!svr-n#OJgo>rCFVKR|1gP}MRvwX zOdIUAobeLVuqBNbiAlnS)tM+US+NK>hf7RFTAW8n%(PyJkJK>3sc%TkGfYd)(Grsm zD~@xF#N?*eV2zcSY*e4)BqoUFkns}Jmg;1J#5k!=CQ8iP5X2`*%u8%`oRcLc_deR> zOUy&kHC19}Qk_hb7$0o#ozo@eJiP)SNn*;=4(VHoF>gkEhQ$0z{duOuoLPnVEQ#rZ z&7O0%#N@!X%Q;74ZjVEJuEZ4Yi1<8-*?>KVbH2p%ZBBlL#9V2L_(F;KM7Ax`+5#I4 z=VFP;z8CQ&5)+TzkuzChTG6A+$k|P=rQ?S64M=< z2WP4#haRinEipN1N4Q5~Uc=FH?v|6W zBqo1n#1BhM7EIO7BNCIB_I*bsrWCd5F^Snmb$eW5O3b7sL}F^wUh1U8+@b~Xls1pi z{CQepo-RQAjKp}+tE0|J%&)W`I43ay*lIh^OH5DdGZ!Rg2i4C-iOEKrp-U38h5FuQ ziJ3z2D-v^o=Ekd9pP!HTHHoPL&%}9MVm8sM>uyNQJ8H+95>p;7kMowqbP+C-#5{v* z=)5B_Yq1w}-j$d*nosUY%srY1zLS`4*#A54OU%sah<`6IstK;$6?x+;0o8w{h=_)u zhg~TvqV*|SQ$&vvps9%dMp1bdaUTKth^QY7xe_m;KT+-k5%s~ed}Wr1o~(oDQW5Qj zZOfI7BKnGQcZ+BaOwU)2ODq8{O8`Z`6VaXo_*q;0hot;nmM5Jg^fVa!ri^HR7N>CAz(6-;@XFb8;<=fDrMnRi1@dhKV)_a3H{qAEeo|%3tir=4O#H%F5@3buR8!Uc{ z31ol4b+kCebCeXfti&&2EY@U!Y?+llhgUDFc+HK-p}565Q((&aQO*#7kva4Rb?<$L zDf>@B94~(3auKAGh|{k{Q;%6~FaM(r+vATRRW^ zKFLkLgtS=0N`W=<2xa{84Q0@;cex`JC7gFn5p4rT?;b@`uIwR=0$#jhIwm)T4 zSkI!^@#1grbl&3(XG4(u^yyP#omW#h%Tc6V7DMt9+I6jvs z6O~coh~(^GaP|YIU+V_F#asG)@0d7C-+}WZ#M8vL#B#S}9p6RYF-lVRQj)6JE_h(L z_v8hLCRS6bCpD#m45iOH zfEvdeRiR`rRyP$&|2iy{W-ydyKh9X@2KAU!kS`WISv3)zS>3zf`RxmyI$!W)m}~Hq z8IBV51LB^>m(f*&$Q_RVd}Fh#%=4&L8UH}XC=J`h!2Wdne^ePO(pJWbw3VSJtFWLl zg&BE@LV9jPi~otwOX79UL<2xr))qWjHJ%y<&wvwT1(_4^g*gYfWY)~llbSgPT;_bp z#MskAQgoOh`aGHQDvk@$nVqMkU4=-rt(|68A(E`8+7u$ew)R>jurjSNuwOvRHBELF zLpJ4pJfT&7l_Oda=c0(q4t?Ge+nxM(JNjuQly+#TI?|5*TKODzoJbAVyI%1&5Uuoq z&~f+=B?CUefWEC;cVS-Mri`Sx1?ha$P+^-8j@K;mH!PyugZPgkDX=_hs0iDz@XRRj zBP1$mJmm}?%Jn#0GGdYYbUcj=jk2`bG;M*}py({dh>>g~#)vJaKA>as%DI#UWh}y2 zdremrL)ZP&Zj#F#8p?#y{Gv~tGU)>%=swo-5*l*>gV}yYZ>a6uB1@Q`dIpkLa>*k4 zSh4!Ey5B(gqLz|B)ZlM@MpI5F0E>{I^mj?7tf{s}3jK2!w2nl=e(>|jhjOQ#(dzk} z)?MmepwIt)(KyG>xK(JZHrK`)&5;XI?;em$g$$Ll$!jcyj|U5GP!8#!x1GP@*ViAH$oz~}vqa$Dg)ibPOxihqD*N_V6N>H_Oi zzpX?l8$7E;2zO|59EKdqT}5)bYjT1{K+aSRm(RfceAcbM%A)?1wx~aGqmtUADNAS~ z8WjjZCx5*rL)bGqz}bUiY1aDaTfr%dQ*C%KTUc+Z!k- zc;NGCg>omK(;EMGeXdxQm$A*reZODgqYXUep3(6m+$J;A+8#E&$I=cjC>MTqX#C|3 z{_N-7R=Ui!*KtPMM&H>#p!trgB$-NgGe43iv}7F?{uJpl;OxHt^WjIiHO_1HESI|= z7TzzE9$RHSmA0(pxCqkJ9wfAvI}DqOHe0xF$b% zoX#ihDPFTQB6}d_(s`{neP=8r8PrE&MkFnR;9$N(*jBS6hhYchS}&kykrY};j-J;B z>PpOvja6d9!e_RCdwvqq8z97kD1(aTx{qOx#+W?HRyqF z_I}=pH(dC9k@ZN_Mz~mH^%QJ8h5m67@I#uAB8CvkeShJL{?VJ6w&V#C+_JZ9k-Y^& zJsJy2s9k+^n!6&4HnioKr?QOd1~|0oh6hWcz0*cd6NF0hpt>V(=^ zLSf?(cGTpQHsnxl63J<-$tlwq^Xv{JDrwl929|O!T};#IqR=wFlg z6w#xT6K8QG`T#3>ftoZok%>-ioxx?Nj9`aC+D zBd+!7Cc^1Qh1ETap7?mz=abyv%i1zYaP+_a%v_Z;iy8eluBvCT9*$2SKK~$_ixc zy5csN+-wsZV-R%kNI49w1$=T$nj{Q0P&+Rrs1#`ODK* zK1rBXM`6to&eU{NFmzCEd;CX{2+=XVr-JlFD$ZRXt3;^HLlw3h;oy|d85uIuQg%~qZP^wgX|2~VQRuhedsZ z?--LZ5IXPBrQMFyCh@k?y3*=ki_*^Zg?M>CRgE=`dgVP^8*LOFtOq zyD}Q|u3GxmFyH)RknX0XFAekUPFH5StMsg~nsjQIZ`pZB_fX}P8msT$eUR*_kq-^? z{ejM=^wP+7Tj%~r_EpJJ%)D{71C^2Pr=^qQY-cFlUrVovv)!Qd04=>G&i07X1GRK& zob7i?57N?y;%px%Jy=VhinE#Nkl7F|eF^j+q=%_=Doafo9cOznN}+ePNONz++1^z} z`lu?7m?yo6vwa+i^hsg9nlwJn)}0PnT~{*-c@N^E`*!Hh)LR;Ta-5CP*|9e&y>CEG znjUBSgR0}5>L>6|VGq&&QR(};YSPR&TUI)ttD17i^2gg+-9>AdOd+zh;^+w~`aZCg zUJ7BcZh_c>xzOz4z|ZC6>4b6?M4#$>zfAUqLFx3~Q0b1|8!jlaH>3{nt=ru#y=90k zH3jJ_3cb3CTHn^V1eH%AUNvd>P#YbrRBtJ=e3ypU=y0WaTT5RX65XXkKc?PQY6$%J zp|*dT0RKRIQxNqz#Ktxv{YcSz-w@l7)=2-LrQZ*+m7xPXkG1sEA+~MwNzR{?++uBg zFw|C`?8&2Q_6)OCqxLMMrMC>TeX|JZ!fF$dJ~Y&Jp%~It)K(&WYN+iGYVTSqy;uSA zhS<{69fCS)dqKZ6RJKPWtvwzOk?ql3P1_zVRM{R|;#%fjA*(q_mDPOlHavnZOns_V z$)O=(r8P(w4Pt9gedcGSp3pgcXv$O&CIW)nihOn^dYbEB5o8lOaer`zEA&tCSCp){eXKG1(ni^`0#9FR? zqjr@YgI@e@vCb7khw9y8oh;(?{FB8>?-jFH%ghmvZ0$q?(1&WLFO(WOoAm)S>z+P< znrZ`PO`PxV(?yy#Iy7PV{+JKxW?Fh~oNwC>A}tM{8RvVum|J>!obO*fk#4TFfzx%wJH2*;`9v{u2GamzKtSCHnsWMfQKpSKT_&{HCeH{8(!@eG*qo z?~9Y;W11qz$MASLKDH@xd|>_*<70;+$H&}wIX?C(a(o=q=BqlfOT+8Z< zWi39?+R5jhY|7!930vaAI%$y9G)*~5pA+I_Q;tz&Q$9sghRs_dS*CEU+m$H*$Q-R2 z9>m$&VArKCQmDmHtMOrB$rAaeTW?ybnXn@+tg1%7oW_I|nhDe6ZQ*3XDrLbv-300? zLE@P%I@=XQpD!*nTMB7wbeMbJ=^f@N*E@`yQGelb^rMEi6a6`-521<{UQ1_Q|KM^3 z!V0mZ8`5t%eXUuvXf@*hC=OSN+ObiKd=lsE#E73oGpj=ili0Yt+xGYwBRay{z)_Ul4St&P+N?H89UMX=} zrKBd<&Qa$d!RfOF=wS)AxZy~T7K6%J<9B;I)w(8Y=fuq4$%f%WD~rIcZep~DqG-vyd%B%(l?1k6(%^ue6@>S zAA|Obuh*$(TeR;LK^>pqh@{=cky|1;J;AXo50WSDi{#t{hiHzI>BNgwHpDxg%%{eD zEU1U#9bzDyuOymwOT42By?){*eWD3<81HDf0LkxV@>0A*RQcaBc`IJlxT4kggLqlv zURsSOYc-x;tKmypjr(fp;aZL7(9-CJ8RsC~mOm4=tx1rBunU)ia7Vlxgx$Ctgj*71 zPwJ=jq}2GZ#*<{b#B1|qJxqT;$!@tKK5U#uEvr!-`3BRJMJEDCyQ9JY+OKFkjRZ%d zZAdKQJX5}7fC&p;3z^Hyx(5P_DOVP*h||KZMlgT(KZ;-a6bRO0 zu_Dup1}#=PX&FSHXD>QR8f8=U9%cDK?@=9OkGhp0dsGM6qb?Z6Ewgt%<>3@(@h@%0$?P#{F%IS#?F}*I-_Javwc}8pZ8Qf}e zxGdg-gs}P=^*M8|$&qPma+IvAxrwqSN6VT_PLwq{MpD-#%9T{$+Z0XC%9X+&&9ehQ7PI8D1d?lG2o>))p->b;&J4!Ex zNKLsIj81d}{Y{g(wpU3EYcNtO-osp#QCEt3pAgnbqb}AfL+pF&$%St&y#R4Oe^3H* z%0yxb)XFlH>17Fd%vh0j{Rac^x{ggg+lmlU^e--Hrvju!3Y*A{R7%p*5 z4Pi}4SjQgyL6ldnQxht%g}fC?&)4L<#Kb|0-r7y1Oa@!5yc8=h)ABV0A}^gy8pxT6 zbq-+6x`5Mz1SVTfl@)!Wu<7ZU@wccN=&v?%=D0;yflFI0RUyD4;@p}Ec9d2uYbY>T zY7wP2DAwowIm=G(s|3iL1ypN8?Ci7WElb2sFG0*l?-eYqc#OoLuu$B(#S4gFy7X_& zToj1>v|qQ-Tgn!4lSh}H{h3941|Yx(xDcUc%>YD0&kMUe;L|e;#jWMbBfB7(XjOlP zq;Ev-^$m!Y7P)g^QTE9qx1R^1Q_hPXXth2^L9?e&%EKB$r3v7o2o5kEb#FIHi_(uSaG3#3d zffj0tX4ae;!cH>gkDPc@&Ws#kp-c}@xtXZT6e>I&(ac1}jug{KPH)*#W3i#hndK1; z16GMzx&R>6sJE!h8V-Ruv(lEOnNKdqK5Vg@fvU#k;Vf774}yO_T&-L=h{?*V`+>+6 zPy~q#b#p1qo|`Qr{BHVM7^^MtPcgI0xJm8ZnBqR7mz3_#w73sj%)_Z_=Vy3H9VH-{ z8c&_IA6ZN9iUNdCYb~Q@w5stiCSVm6#s{5uol0GpDnu0Kon9EqC0j&pdXtu$ndM)D z%xrzAFO}hxpKU6|V`aP@Rd!hs_ps8d94$p@Ouxiv$x}Hq*?kBl&QptO#Zm(#8{HJi zGmb2?WvA$P5yec&@=OrXMfln_-6>3qdRl-^RDuOvm2 zdB6VcQSCt~j5XhYf`@%f#k?3@Btm65gKMrvJVWlM*cv;kF7@)xo7uVz(Q@LbAZ zkwgtnn)_N|t1f2BM+9VaR;cgujxJRhdAk;wcuEui{}BpXCX4uMtYE>d2BcEFIhrcC&C)#--|j@d^Jo~wcT>FWDT-U05~h0_ zh>u)A)w$YKLS@U4+=zdry6TU9RlU7K^0|=61el6+!$2f`>(8*NFSyC@QN0LUs^xTXfFI2&$lyzhzKa5oE?%(kP9rdkQ9< zjeDrD`k=H*ON}aZ7}P7X?rlRNSwuUJ@Rd<;;t(jwhJ7Nzjd5VsD1gI-^ZOm}2v zrAvN@y9U(v26Bq4ZVD+Qu}bhiyl8u`)6a*c6%wUnbO4kMfDl`n!n%QqD&?{RR2qO< zHg`=LXf}byD)TV#csl@k>L9s&K2%f5xxuUQcLO$r&&6FyL2I;A+hULl?l&O) z<>D6P?&>YfB!W9j227n94DJ%xa0d@iKmDnh77bEy7kT+0=#E#**tBxj1F4CNe1S|G zs|KalOzQ*EAQ!nJ>7J&BzR`3~2Whs8OwN4pT=m;PInndYAf>p--Dw}NSbd_c1N;I= z*IeW$Pr$ugE%Z^YJN!40UK?bek!?WUsy3xgYW2pZ+WX6OPl67p6|ocHVF1LW0WlvB z__@Ky)Bt!Yye4S%y^VT}rVYbQHRf+keRq)hdK>DyV$&b|T>SxyBOizCZ$Fc~cn;`q z)V5f^`D)NMx+D+x1L>n$vZP$s_z95C8Inz9;gtv5Or5i-tQ1x1k08C!$x^z+ba14z_@uF*xU)Z|1JgfdO-wEofE*DzP< zF^5e5R$l@=!o&BahUS?W%b58q^(BBw9v3cXzybgj$(**n1ZJ7XpNBO}EznzK{z`ob z-~o>j-)X=>0FBI?wr`xONqYy6XG~im7J$CRz=*lkZC(=SvgQY&m>rG-b=^P;W;c-y z&ApsbK1o7H>z`j-WsLzXXq?iDFmMwuJD*I23n-a0LdTWt#TZ1b?9 znk9pQ9RDR+18y?kf1rt73ee89K(~4o=tJhSm$WtcB9Px3=+R~a*qOGbf1AgKYx>^< zWX<~J{!{|JE$d%u5_17mFsr*n4U^k)F2B}N6+v&91|xw!Rrh0(En-=l8I9BxfZkb+ ziR;=OSYFE#`Hxo42_P;0(jcvU1iHN?>wXQr3&s|`{^!52Xy{LtgXuJMCO+Jg5NhiQ_AV-n#~%*|WO8Cb17dBOG5bQ~*Of z*Iw2n&If4ozZxpg#XKKH=;a6U*4GRb!0Mh+-g@}~;@Q7qXn(rY)6{eK6HUKAKn1dY z#ZUo^^YqilU3q|-WdAoq1$v@q*%unR50E3iL~Fo>o=?kYhRz3Q-Pa7Q0S`NPz2{k7 z|51Rhe$7w;yxDfe;c=wsq@)(%*(52kAD@LA_(9OK4REk#ftj5@R@IJ@?8`9Ci z&44VsxFFgfB~wnFC=4JG!T@onoauj-oq%_plLYRZo?S1ML)g>P{@btA1{Sa5kdZ)% z5Uba#Bb>fr%es=>AtX29jxQ+bymG`Lj@$`4MP3?|jGkT%J~6fkq%}I3CldE^PM7LJ zyu3!eXKZ&`8ncu~MuttJk>Oe6H^dVu?pb5eSs3;cfyYSP8N|o)mA}widI-l^hRvIa zYj>esjFluYYz3z*&poGMPj2KYNp6Z5GA8h*r!YFAJVRrTBG)r?QmP21+!n#q=OUQq zb&-PU--sZoi3q+OB7zw+MKE)V2xgrV!R$vOnDbl&bLlI`o}u$fh+uvr5iA%Xf`to3 zuy~sYlCO$j>2nb*^Sn&KiU<*`t|NkV14OW4mIyX&5y6(TBG~$i2)21#pa3VznC$Ed()Eg0;&U&4KGetyjwuT7KwG+Yl5hA#-L-1QemH#8c zbUfP)3O#vo5!yM~Q$5tdBgErp0epZ6bMY-A%&YO`)A)h~pM7mI-2%wWUj)%xOByNg z3dLk^DTEoyyT$@!_=@8QmNLjFMIL{_>^#?Wg>^%kH-!w|8b7RChd!)ePM&kSycswl zk4Dg_-TSkGLA?10NnM?m>PORQ!Gb)vlblY^61l?-{fBI0esoo|UZ!~WbUluRz>zr33XjE$6S$uv?NgbP(Dw}s6 zzmZoq?>Zunx}pELHSZeUGgvn7F&(2d?{;20RAH3yG_O0Ora?6C5k42SH~|?p6qir< zOoM3NGdwU!Vj{kV5fyNShZUBX1_nmxqDs@6_YOZiOJS7JlQ7d<&3m8k>ZdTO&hhyS z`$Y3T;?e!J{;%^$My+{&;%$aYPT9QAc%CLQEn&>FP{gbo6htPAAZon`qIZg*NVS_3 z6m2MiVr@ha(@g{=UI|Fak0K~#6`9{;7D1VfB8W{fQBdx%fRw*1f(rLUQ1OWfDi0LM zDkDTtb+QPm%@IM301?y-5kalOBB)(P1a(tIP;VK6=2tT*EWB_h?0cfGBWew=-3)Pc zPfyOm>(ZehwvrPeyneNx89Niq*me9XkH9NVOtHv>-heiIi4De6P=42`EVAD~_%)4c zv;{Ihx^#Y>5H_oQg|arg{4i2tkXzbdla#h=FkW~)b5jV)hHz2VPjV!kvS?T&f_~`ecAZGz7P$zQ|$X4+gQP42GTr`(^ zu^7-xhv+pki5JA?D}3IPzmd2Fa(#ouEQ?X?p5aw{Qc*p_i&JtnkE;cI#k;c@qblH( z$*lGsm~Vf%2evxJv17DM3!&45p{N$#XdmKb+C zf?Au+!ujwV_zQJTkNTh*BMkI}X1?zF9Y{Q``I_DG>kdDiN8IkSz5^HUkmgls$h zm0~1ZQpWh5q}dU<#dM0i(c3Wzdr{k@X>?1zvQE;DDOqU8?io>}$}I|t4!BK0v1tf0 zc#3h+xAr5xkftY z1yOD3xTKx&nQlv&vLpTGRPV786);;-gI)#XS}#L=uIcpd?pFU)B8gS z#FMxUUDcb8%=yd_>zH5pzTn-?6Za|XC&(&7XC?BI`m73zF8$zpxZ4mFgMVcnnV$|ZPH>i0K+5&NzJ=F7Zap2t3edg# z=*s=DTOlOx3QBLHE)i5ZE)iXQ-35gSVdL>L)u2x1bRHtQ_C{2SAg{*HMuY6tx}vy1 zz$|oCI>UiKFoP&jcR)9n+9qF6VzvWFvmeVa6C;=_b8O-8?Do=&il%V#dzCq*u*!+e z3@FMY}%!rV8N*C~!fTZNVpAHo!AsSG9GViLHL z$doNq#tl3t(OM}F27+i~Y+t!S4YAw#7!$ze3CYTJi_%6a6dRZz7YM`01ud zSE~!g48M*?5Ag029?7te_zqhH?*Sw8aAu|#gEV)biy1!vH~R_kEUkM+(t9gM9pNlX zyV9d2&P*?MGOuTDoRpG38hiW|G^*d8AZ#iMR{Kt2ey6TQs_c)K*wR6wxo$EZKudhSB2s(|oIz!l> z-%7Dx(OyYBv~0h3kF0j^!Z3R}XZBJ#RFSSA(;5Csp`B5oPDmzFJf_ejs-`wbE3sl7 zwGebX53zF=6G1r6w($ONC3sBv4C6_BOvN+E&M@pdidWu+c#^o}6H|FJ_8{v?R1F%? zHnH_7ITRU8Ep1f+m_~8dvOHOpVW^rhTD$F&AzqzGTb^G*e@6o9k$@&-&{lrlOJx~` ztFP%iBKM5esEmEfAN2w%Lmjh)1a0Gi>maF_*%3`fH?P^1Gd1F6LzsGLH_E8CeE~w$ z#EdFaJ6awq?C0E^bwpO5Xl+M9EvR?}bFD3-p4tdH`>?`(4d*Ngu!TC5T2MkoTSl$= zL{EQZ%AgA9KEO`uP%i^2+Hwm2-H*g>GO5CX$2zW(p=p6tVj5Nt@J3S@>jb9pB(WDstX-IfN?~Cr8TT!(zLzTb6t^r! z(w?z6)<5+e{|i(74jzi7M19Nu3Zjo=$?1`WEP8>=_q-BauL~L428lm~R;%}tL!6#p zrbHkKQZMmmT{!cEtgQG~hLQz>&p(-jT;qGb;fylEiqMitml3JN{;3)1RS~=t)RVC4 zpfu8{(o6O?*G37yhb`6180i8G}IKjRd7JJ*`*W^r<~o6J#V2r7cm)wyxDfTmzxI2(k~8o}jlU4J#~U zti8hDOqf!p7)+s++ht0-jUYV&=qZ`f+1-@V=%2s8B!>l%p6;eZPUWmWGO`n8Xj)Ua zZVKs1W6EwarOZ89D`&_Q>bEXa-q3S-J&@lI|H^Q8Q%oN@8;gu7q;RskDOuZc_AN42 z6J>5%Qxx44(v!xN3P9WMoFP;0nmS@*8%p)W)X?2BAUadM%QeF9FD5EUa2F_2Uzw^ybkgk z5p6Bed<5-J(-w>)r5m!x=p;`4fKv-_Dm&jna8pbjz(1L?!%_H1^|To9wYnxwixV?> zy#Yq`p!YxudyjyAGYy6luN*KEZSfc|SZ?){7xea`;yQZID;?ftSxu-V&@QDeZ+}t~X zi(%>2x=N%N6o^ELE@|%3nlYNJgRXig#$B_EsKy!m{WSDYtD29Wfxwc#m#3L+#(sK) zjXyfbSsQFk=7O@AGpzd&)tQk3HC65?h{y5<}tR+Jz;z}Utx%7D-+)Nsih|mVPhXBY zrf1^RmV6!Jfxl7vwC0ymIctwL>WY75Bt88&f(ueRzQkW)iO8O)llT;(`&YtlSM9`` z?t?o8(lY$7A;=6t^?t(W%?KS9V+W1gL-;@8q85YSr}pCU7S0wU<31>l4b74|kQW7& z`pw_;LjKaaa^YCIMpU1d#=^fioofISU;aOja+Y72gxIED*bGG9rVhTuV>4v=U4(O@ zF7w!Ll}FPDmezWS>^`C|kblnQ0RA7emibk*DqMQ^iNro-Dy{lUl{aOueBCUEdf%Yb zZccNb7%-a@>Ts%D%Qh=3N*cp$o6?^?0PzEji7q8My$dK9e3n0u;ZKL+)zgYsea_Ou zz8nyqAOA{ba+U(fVhMSq9C$7vu^?ABAVCD_?(EOhzm)HjC88~;J<C~=TS}vsmPg#{V>(%FDSRwbkKm;eLR$8vnZtNOY`@3lzA<>Rs#@&La1Qfw|S` zzgmsVzG( zM?ZCQH5+c{|9!24rBf|A&L5AGF$suax_VpJ8h#-EDB~ zC*u4;s)BsFx~gn`?Y5sN@Qkyy$mm?2c89Os_7m0Vh04enNt6?!vF4nj*P56P6;|02 z;S6(R-` z(LXP3;Z+{%&Be8eHlTDgSS8iM_tj$JB1Zx!qYd6BC9|rm-U)@xLe>I<$!J|>p{=6* za69V%=Pkcif>l%+rnVCE{1wanrsUwSplc6TEmU&LS%~r8RGl1kOVMtKw*r@X&q8JP z{`LiV=awjF@h*0i_F|TEsF*TWf2aMIB{!B@o~t6JJ^U*%WQ!#IV2OeE!Al{#vQFaV zUG&G6C9^?q0a_=6UR6{;dD<%dY8kSHv)af=1bK`hT~c3I1~%cWAu<+$vYe>Ri5eJO zf*#YiesdXfA##rxqB{z5Ln>vcbrl-<21pOnlKsan1i6^?RWD4%$oR7&J^80Y#DEVB zrM0cR^-WFGGD!Iia(4scfB6c%57GMUy240qQ($`HKa5`IOo<%L3Uij@?rOy7LY^jo zGI`A$bTP0n?L-`zRgyBkkSe6i0%Ni+g%UZ$g)hk~qJh-v>Jv-5vMSpTz^O{wXcwbH z;N!M~C@Uh{R+5sX*UFf6IiAJhAHksgFFZDy@u#D!Y8-Isu$z zMY;+8TUDkDEpOa>&gW<%R)<; zeB|{Rxb%^K1nCzSx8@_?p~INOZ9*%0RyDXaA9>kAd09ru15!v;gIn{FFKp9%WY zF}TyNNpz3-f9)f`u0$MNb6llQ7tc4>W@~esZQI(cjW^r2Yujwxtj#tz+qP}K{oa4h zbIy3qoaZy1ufWX!4uj9$X8BA+zo)H$W0rSjNbcnY#S#QphVm|1nd1GjNhCopu>YgbDn*hhKH!C>OVA&s}70*-S7S z#jYC*?95{ra^_sH3SsmouCK?_1NYcHNKGD(F{(vhUUZrH>@se>4*bz_!`t%n?m3Hn zkSkmaYxCkH5m{C;_QD20tLUQFcfn~Jdz?O$ZmbP|=h({D$4vMv?If2Gv^OXIRvdfX zZ<@n4Gcr|qsAdV!7j8=)Ot?MyhU~!G-I)6 zd^`~-!`la``gFy$mnEbAy2&Jcj?LUf>^B4+_FrT6Voy;B`jAP}@NlSCQk~ z8;bVnX>92u>~X3><-Vg_8;Z-9&iZg;k2&Yp2xjl3Gf}m~9p$L%dsbpM z>d`&IuB+DyHlFulGK|xS#uegMNd!4ax;h-Vizu9ANc{pVtCA$b55C$$TK{_%TF?}Ynug=!8jXS_MPj6ac1?_+z+9D;4;2hBOSW&D<`8fnS@Z}SbID$d%E<5#k@r* z5I9ySo{W%A&S!oNcxn8ZvBJH~^acQ9XNk&B+kzI}B3>Q)?NsfPuX-(1gN#>j2k-j3 z60R%1^4%kzkRWq|SAN^@y-5A=H~mE;g^zfnK`{GSo@AaUQ|D&ONH}}$q8Cf!!YA9< z$}n`dhp2VqI9wj#M*+Z1Jv1xnJ*O2ylClTrjH>Mq0Z8F;x1xT2)aYfr83d) zYO;+5ej?dJ{L{C;Cbe59m`$GLmK6&PqBh>}T`wi)2WF0_SsZP5sPiNdpZFZ8%}~K0 z72n{Pb&}zDi3Z@s`k6lJq^PzK>11f49{T?c4}_=}3DR z_u8uJaa}oD>MgjjueOq&I|w5pMDUSxYPX&_QcN!-Bk~}U)lb}f6h|-kLu}&b)C2Ba z&VRX2XK=k@;w}nx8cQu^jnt*O>67kaQeQ^Ad{kzrYC&eLgx0>YPlb%Ay3F%;*>)>szN3Vmfpo|RRE-}VbXABc#>2_)g&A_!JX;@4vK% zx>&*)!ewu$fBl$nVl=BDky7S)Hn0_#=7)Gq%ZQxvUXo`$Z$=uIcWMTjMUD)DKhsCp z$`AZDk-xP$)A<=tFHGg^016INz?W_H#4`rs73Q&y zj|ey@lv0)x%irT1`Qe;R)+%o&#D{Vh5*^u*uiX7TV=LrVu;(K}OpfXzl0U-n?irxO z0*O1NSujioNVr}~wnfE+p5f$4o20zZ?|s>A!Zti2TL+t40DjZ2#6MYJpQ|j8Y3fRo zo*YB^OF8W$$P+}sGDS-}@0&}9o_KGIp`3-A{nk^uPnMCtui)%z#m!S+*hG+Z$)asb zvq1ZS0M$WJca)IbUY6gqR$=Sx56k+;4n6DRtU+fq=8U}h028968T@$m>p?1z9Hha#y`3I{eDYXEVMd-QpgVC1@}R5 zs5LQ{!U`GnlVm?VU_rMhUQrmCWIUS#$NpJdRf7;2znZf1I-cc;k_tt~q1omW zQ`1jmg2`zDh*0;~Htm@=!zWx~fLT#x$yz0P`Nbufu`^#NVVd^-Yk+fVAHg5n?G&}E z)Ayw!Y6|Dn@A1D3af8=>^Mqhyn|LJp3jd5Z52{zA8f93zhJG_x4gT#MYl5P;U8L%{ z6CH{wtdVvsUy&<@jwTV)b3o=iOUgpaYLjXM30sAq8jhRw3E3Qxc|K6B2g6_i9ZA^Y z;T)M*g_|nmwh$Gdra&bNX?`u_d0cG6bScz%oHVYf6pArVkGW`Pev788E5vpaUxlYd zM2enb%^KY*^a6m#E??rZ`FhXe@S^mp8Y8ch% z3^s|l!Jf7ThNHN2!KOihn~81vN`$NFow5dz4CgB9lnn>esfiFLHV&io;`g+qM&yNA zKN6yZcxYLvABwrMO+C)b19&}Dv;24Qvh~49`v@7c*^wMX3#y6{yV2;=j^0!^J|eYf zk{;l-VHJuZ`4Gi1CKK^NUVmv9whDwJj^wTW+~;ay(A!Co1a&NYH<34Ul&L%{Np7b2 z?n;@DqBW^{-Rw?SaSzeJ@cC)sHF{MR%V6zpcA1&!>OfsDl{c^+=@o_LMmIo%(dkv0*73+4aOkmd*-`Z`3y9jqq!?Aa1@t2j zY=0~XB#*`9k6RAUUTD-i7#2{3sUSchsfdl*XOB*fA)E#O3L=VZhT>dO(HC$hZxL=l zvTiQf6`g6dY%?+DAOB4y6W}|Ub8F0#cM0p+iHu_)AO0B3*&rv^MAR2~$g4#Om_Y$5 zBRsDyq_40&NA%8b+y5~^uw1F76cJzL3BuJe`zhKvjEt&ibCOZ|DOv~b!$V>Y6RaN) z-?fyt$o+MtTL6z`93 zJm#hd8nTFV#$Hf$g5uEB5oCq&Sn=^12GvAXEfl{22h>~$M^N~S9Za$Z!>F2+6C+H`it~*UnlXmKH=5)Agan{Wz@hhI%>d5jHc@t|1!xnm7 zmwWH>71hoA@C^YaEX_nhU%-$sikmypNOfm7s(4g7N4GJ3Z0KhKjg{jN|Id{?%s1_gPvMd&FL1(I(c4p6{!5cm8oW;Mqio38FNxSRB9g~8 z!gh9jE%Z1KGY-h6PX?VL;whv>kgDH)u#ciGj<>aJJt0th=7`6SCdHf? z{R1*H`}_SdtvcL3r>7le$wqNWFx>08TiVur}1bEJgUEGXnZ*zbLj?+)@O^hKk zhKpK>pf4T6Kkai7Fx-wv1W6Gt%5LQs3Yz~@wa<^1!=Lj_l7r*ZljVJl)fHwl!0oF+ z=8_A5holAe^&oO`AWsd<@}P3s01F?O0L4^w`~`Y*yN*d0NZ#S&%ZK)6ZD<;Em~O~d zru6SlIh`&$TE{XxQYkwMTVcEQzZ}UZ!u05x5NblQQ`_O*q%)gSomP`}bZA`BhSp`m z`zzn>r)qMGGnik}BS(kf_<9e1*mHG6hkaL%VYUQ|yPo}?!A`kzLra1eFp351knr+b zfF#ChUk9qw8buzflfBVESv0Q(ajfz)f-tk|#}W_{e{xXeg7jC`0h z?O1T3(h7FDIoQR*V&2yF;ZkW%dqv^vPzw7T)0{1N;o(BMjM%FX6}*4NA#}OcplICB zgK(|hl^Eg7iA)-6oxQ05cioOeX#7l}E1#39I*P6WuIjy|_0DbivRCAe<{_hzkdJd! z_K_**PNseZjt9*154e__#&RcqgMJt{j>K{euE&%RUL--C4PBtlOMR z3LnqJ-cujZ<6Q{eQXjomXGsdDRTD#JNhzj?$hI`jEgercg07_Vb>afea?PtxMOXTF zG~)tc%vqtCO%+Mr;VOqpJTdC6{Ao0oF}Uii=R7gk+M7ccdzMZ5?x;&z@x@qEu6(5` zqnjWRSgq=chb258QJ&(c$CR~)PsX#uvU279al5i4-Z;EYIz+mi{T(&`^2z7jn<+Y} zrQJU1!C0{S!Pq@yVtUp|o?}f3$V+82Db+sSde2U1n?F42l5&B3xkJY8gl)f}sYPMU zFVjIaea6|jd!BKKJ zXR4yow0ggp6aGe(f8~GE9+FTE`E%qpR^->Y5{9lw$2T_mzMSh|SAlzE@d8M;&k*OX zkl`l8a>7XQJKtage_O4;zC(R-!Lm$c?v83o5l3jwQ*9{TF=6vlY2gj?EGIvp(s-Y2 z8<-^R8t(SlJ^~ihZMZsEjBpYpQ1WJxSWZcuEe9`72r~hbK&N9rerpCwsc%6{Q5H=# z`1cqc+jYbojEaC$RD!D@Q^1ZUO2*?5+jeXWy3XkoN=CI<&tH<{m!Bu~6=CBBu}Oi5 z3Z~x&x}Kqj37>z=q2BS6y@nvla2HBpOm_95_F(T4X^JcrUYul`sF-1y}QC)c!E1i-Xrp2V?eyr3iR%;}=`BbOf zt?~DZUt$*u+Dsk5s znvZyJ0=?Qwc9id)Wd4S>lM-@6(bYTRX?OPGovz%nAl217?qNJun3ul1Z*ILt8_25r z^T8Eg&RgxiHo$uvFv#u?a3T`Zh4jEs6nW*XvU8V@4{mhR-MsP61duF}5Q*r_4Ow@y zKS-#KbX?|H!+k`Ls-d^Bu=yM-31yJ*+mJevxa_c2Xl`RY=*pshD?ne3o#iAMhM>+ts(Ud({N%91jjV;p^~~~Vcy&~WkpaRkBfA@P z;dpZ|?#AUE3i^MVIJwhpInjJw=!>g_?qQfxbbS~F5KkE6A~iJmcb&fh^_iJdBSflb zAf%PBNm*Q;=fH@~a;?J{WUye$AIwu@cWl`dS_4grs&UZA>+D*4*7~6{HK?VVrH&MFu9eT?qqH-4{@FNJ_)o4^7vR2y{BXrmkbLIAB7D!!&7yTPC1xXC8SC{34hWTC!Vc3oZyH2S5>Aba^J9FYyRm6`({}qkM(7 zIbAo7xf8sHAMD;qWEOrwUA6O7oz@*bSBqmT%1{F`4d##J&rakiN}ZNKonbvfmm^jG z3GNZ#@u}ta0pYLfj6&4}skWufBY5MDGQ#*9ETr0^Wwt*jC>^RQcB)UJ3kRPcaEBzG@&#SBM5jiKzz#8=lZYPL$cFRtrbs-9E=22< zxbg_~s?Il(jjCb!gLm8m@hxUN!jY?G{30cUc13JGL~4C~2jl^Cl1clm+K?UCP3Qc` zn*MzcIb7E@_V-7vDjpCzIPO-KUkd9g=8Cw0w$S#lXIj zsa$Oulb`U4z=5mYZEMAlLzia$Lxg*4-s@>-Ad~(;We$78;0e#YiOch-H~q9kt2GNF zO^OHR>5j`Y)oEs|Mv{60Z%fBo!PS;z+zWOw=b#xp-4X99=fg79aed51A+lY}15Weq zt|`=YQTK8DXuOpO1eIM?oYhm`cHsF-;YZ1KufGfr(|J{ke#R-5WwSsomMbD;OVRX2 zx-3-mWg+)_KwP*nv>WC%gl9e#P(JgyTjSyGyp^3wtNXncry#rz`{|m?!67Gs#Sr`j z<6sT?V=Sk@GnNq&**TuJ>WS%x2V++=29=#qoMt5z<5hmg+wKknC7>3u*BgzK^(=3615hMZ6tZu}e4S%;u)b&rRz*lEK}eMM1->oaQ%Ib+A@YMtz3 zXKejPpivb>eJ^r4)&w?<>%H(SpH#}LfE$5gwQ^0|F5Ogt@jDYceym^+gJ`K+pytr^ zqz+^bl67g!4ll|S)HqJvmX>@GSLd%vX6 z^@}D`7hXS4Y<12uh8f#m2A?}=k8A;luM8faiHEK$9=ZsJE*Xs@)23=iB28q7KX=_1 zt_=KCd;-lNf0V?~Y{_V`Rf5ykw)eAvmn zm?{<$;sU|VVKB^kUbyrtDT*=swQC&>HeJZew_HH>voT%vzj~>8GDnwzg1CioyAigy zPj=YppTg4^k%y-mu>pR@V)3J-dgi1uZ4FD~U_IbM#XpvKV&k|iuC!jGIv*VPHigJ# zpAS|)`C^Ml)kvXZ%kXKp-!uChZlbIo(PX~~?9_nz99oG=QHGvlgg>|KGk1}QeM3=( z+;VI7K&xjW2Oxy5CrJ&T>o{AZ9b!Fuj9Q%agIeSvxrRROS_yX)sYG(hY_>m*t0Lt#CBi5 zPp9j~_j4zQRt(#$s98d@SKW4^&#A+m@#ioB>`N)Z3a4uUkGb{-C^h~59O2b=+Mq8N zDt3&0+$~P50Re1AA8;5U)Mz6%?vLoT=o6>wqlZ*tk$8aAH-vq}`pE$+01g?v5<0#D zQP`|jQA>;wl)D`jgbzdKB$JpCEG1YPe|K#Tq|V_ECK}Dimp%W8^kMjb)q7EvVqBe0 zAs@Qb~y9x|YRJ+fxen!#n!_gwKT`yA*@G?b}TWVQXa2CW4eNn*1%#UrArM#>s&o^O*>K zIjOrCJNHegndXf#01X0?@8;7!-k-0k#+6RZt3i{lP(E*!@73x#f1p@Dapn}&nPqah zjgUu?q#>P{WhgWq2;vX&U{8j1(x!uoza1!cK`kHd==lAKyp6nh*Xfe0nHcyS1Kool zvY&M}pU$1G)q;L!=6BO-Hh;FbQ{h$NL0H*@#rfLEuk)eo$5x0SilZlPesxq1XHM6E z!Wv34ccR>ZO>Omc9&9&{Lii4(DI(r_7Y2d78e|{1DVP8Fjk;8|D?$H$68we39nyQY zOf)4Pz!wYmQ@W>62}eo#KcTw#WZ%U{NS;75CyHu3QW}ot657Ha^3=&eS%NMH#v=BM zy?!_fDn&@@0$bVXe$j1r@gRIb%tb)1m>ejtoVsEavimP`n79Skv|+_3%U?)z&r zafc8pFn%}n$>TDBygVb8PAnbht~i;r?TJ`C+>t;F zLYTLJRx$7+!!4X-066kLDMnA#%{SiW>m?67pF3Vn7-xU4lA(9$lL^=yn>dh|?aoJcd;I0O8Fj>4zGSLlv(p>@+ z>K4qIpV^{_sB0DKs6W?EC3uRp>VJJ06l<}g;QnIlg__~D+g0Y)%dZ4KWwUzlg+9Cr z+K1cGEY{LvNzae`{{)~|%UA(F5UMg9T@JIGXFQ!wUKqyD`1^q11^ZF7L%){jkC%x< z==1+i01Pw|C!rB8S^LoqkaG~S-!E9rqg}TYi7;zvvy<8&aI?=9ctlMQ`W>0QSIGsW zP6d{~2TY$nK`=FJFem%5s)fq5|wfrReli0n*^@$ zODqF`eBzEM#HPd`htov>aP90~7*CPxP8bhm>xD$#Mf-%rMo&@r&_L+{$4`Q4#MUPs z%Om{Yvtar}(n^ddSGbz-xs$@2tL9#K<)9ZtZOx|F*mPt};9c<6{pc6KUVAOAV9l#P zRnE@~d1BsIp-&8AFSe_T2HbVzxEf59au55pAU_fPf1E98sFvaf<_C0gKfh{8JPxWC zWY(0u#35CQz5Z{Yy^BE8^AD;0ELHI~GGak^Wva$-0YK+ERt)pR1iAm?CA!z}?}2yd zF?A#I%z-odFBs|l>a9z>T@Bc;z-^`~e;5Moy`l}IH32|U=!PPc?ha$0?@cH(WiH8q zWw~RpeE1Fr%d9>c`dX|Jo!~k!O5%V80Fam%zUQ9>Oi2vnX;3{~6ezF@nr$uMURayC ze&ZO*55*$FG{+}C8IJBm9Lf$*zX(@}GSdsNcw))L=ddOOK}S!GY=S53{@7m-*1j3# zai$eI9$Fsxir=H9(jyL*_gE^_bLq4|mju;Q0oW-p?2{vW zEx$4Vd5WA-8cBC2QN8GVrFsyzNMi@yelErv^i}Xb1f4BSV_ zD0vr69}wAN3cNqePCpAE=?$!y6vG4DR}Q1GHeVj?|iG3T|S6 z3tlF+`eDa^<27~w$&3;~>1QthzyD54K)9jX|2O>CvaADLuET!qQ8vk%Dfmru5J&a2 zS|qDb)zXocL~*4gltJ|<#lWV}#_Ex{h~&sG*tZho1@Bq5+}XXn$b(9UdrtSwu>ej> zHkPR@aJE}O{m;u<9@Pkmr1{m5Q%g9*=ahP=rq{E672TlPpQsH~<8IU(&<{j0a1>es zINeeZpJwr91{)u4N&(W-k54+kf}S0Jjotd9w+PYf!{1hJg+0bzhAIJ!4)C=_H1Q5DL2$jqSO3@WUy47;5q6Cr~XS#Vz6BDdqtuc z=8Z!9>jdSyQl$Vu8Ed1b-iB{W3rjpn_+!SRWCK%uQcC#Vn0~5q_Fa_;ZG5iH6^5r_ z_e%lP*O(N`@h`d73N`Ti4~S1)A9&4e`4ao}cy8ht)=zd}B``U}ji{$Smmalc5@}bIq$mG0yZPkLexIB7$Z;TTS)7=%lDtG<(QkDVMSVlF>9LY= z6J2t^4jg)7 z_X|oeudj@^^yUcpJgEmjxNuN0%DS1d`T)|3Ngk!1^T7H#vjlyUx8ui(%pbo2+|j zA}bY%U6QQ+9H{MtF0|}J_r4e_y(HTOnL?VkA?sw!jT z?hv^^g(E3E#uZ$a-^d+!Q;Z50p>4Q953raoIJv9}7U^vs037KRS<{v8LX!lkMLHYX zgGUf}v2n-((**be3PmxT3Rp8m`(PLc-I&xDxP#-hcvXlcp^&pYORpU@CJ7k2DmLIQ zj)v*n?%4QkZ5Hn2xegozd?4I;p#qK{iBTl_>_bgU?46r93HS;8-3pV>at-!*30`*i z67ZIvBz)P%=DO~VbE#B=*9tr@-7O;Isa86YR^FFZefX7%w=9q&z`lPLSg9p)x6V^K z@H4bd@6o%3p`3Hk9*p8TDjR6-#gh(>8FW}in1javf#pbHsvEQ<#b6IN&i>JW%G)6z z{Z6GB2Q8TzTNwD~1u>Fpdb*AsJm#ozx7}L+Q&tOSN8TKHdf4$QA8#?vh0(&B zIzAo@^{?zKRmN5DkA=6#a0M$Qq5I4!#5j)iKIbC^e^0KwuE$&)vvf>6+55D=4*o@4 zdAQkD0t0N7NIin!+U8-%zA__zZ1^)VGn*s=HX(ESlTT)K<~p=~hLhIqT)Rn4-~AL* zBaTSz9v^X_I-7n?2z$Xqw7&mVbi+vtz^GT^Ua0!j4!12&aCMS-fnOFhH)^Xy1VzaD9zm2|n z_QgvZ#z)vN2It_w+|~d%ab}3QkzjHz~5^a+o7OqD%Oo*kk|XWhRsxnIZDIKCv)UNi}L?I#?>3 z8IsQmIAq0OvN0o!-XHzVNDHc;OAv^6$Psw>`wJ&_uI|`|4z=A?URlHt3}jIZsx4+F zkZSHd<}w_{lAx3J@+DsR3TTzv$#3R)=#Tmi^l<7vvC}A^X#{Wl?|zZ0P>lI4FW)sF z$24M|Nh<0a*eOSyrULZxwHCdOU?0H*8oN31*-U8$?ZsP=o(hS@ub+O!KL(YrPCkX5 zq&VhnCib-O?cKv<%X}BJ-J*Eo_I|<4);wQ$4gVV@Yoz2sq82skKepfH?p zn|qi~q#;_2pW}pC3HVZOzXj7A?fX$=neXeEn(78VHiF=4+M`P(E>PLk*(QzCCX%d9vH$rLrr6d{G zBU7Xg=o!VybG4%cA2W;LyW_rKHPkz>f0^R$s|=@)(vF5QxYkC`eoIImq4E-(Y#*5T zMk1(>U2Bpd!tp}#c2SWlaJRotcA5=#wYC;cY6t0ep7xVKoMR^F7m>C-#&Y6aJ8FQ7 zRe{N|fZ6cc6D0-*!rhM=3=WjNxM7%(PO6YqS^64`3s;PbJeV?!3wcwTJqdi3z2ud) zf6a5tZQIya8ag|faxb!^gs(KRMw{LP)7@%0zIQ=4gVw3Fd39i>{#VaYd{D`Ticn z5SD$GaPIV4MEW*&dFmFr6wJhXWsY;VRSp4j5#j~kJBpR7@1`CwEnE!wZCzF9()tMj zzGADVys>8@IGlN&1wmowh)C8$&FBlD|p>fpcF{s$UsWOUdA)hJX-OIyfz`VPJUfII)!w z#6Vc8Dus}C);{Bq9Y6MlHBd2doZW&rX&WgSFYx`=sccb?b?&Evzl&{uf_qD-T2<1o z<|w%bjOPSQO<(-S={3ELVbe${p$2O%vY2@~=y#GwKPIT^oH*9KzQxc^Va7G|-)odD)ha&^SYq=b$EDFoPp`}s zi}BnTX3Q1!zyhz$F{lPGrEAFKI61J3zVHIU#>~I44D{#?f=1GSlemG5Pa5F*lLiqx zYRq=nY?#I9SDhc8bJ*Iesq;$v`|gHy*6ql7LkwKxa9&)mr8q2)y`k2Gar#6GtVS%N@Bw$AQ_$Cn6Vt# zO_!T0<-EA18a({OT@)OSA+xvBvICzQlaGh^qH~g|%XAhpGSa8*y~T%Z{^|lfyl;lf zjv^8;qz>8WW;8|; ztN`p`Gvw^((;pBD4koD>bKqsK$65DX=R3Ip3~12%8at8&m316SP^*!K%ey zXsmDf?-LK#Z*awvQ;P+NP0Lf|%uo;&ZEoqJlIH|O7oMadn5k5yze`_3Hs>Axn)-*Q zg(}%U4RC&)BR+W~zEfI3{)y&`q7sqp%5Rn*Z6j%8;~+#>peRaX0o^eesPsbSNj!?o zVuhwecEj(OmfuV214%yG(S;ZGvU%McbcAGrte*SyR`OY=bT2PAy+5Z!lb~TO0xrrS zsP>IOYyVFDZB1cnZl_|iVP!#)k!$LObv$W@Ah7-WdxZ6SKPpk7A0RjWx1G91s#Alp zpdiBcz@M8;QhrvFf-ZL2esQm%)KH*rA13fRf`014t2v<%p+6K#d6JmRvqEJjry}B` zKBtIWomv1=r@vD}T69Jid$+usQsfhw#8$X+Oca%|8Wz@dI5I%4s&W|PDSv`Hi^z6| z)T%1j=Sm0;y)I-#BMR-Ji(p%>>O2tGI{efldqdXJr#;|_K$Bj1KNC|Y5&V?1G4ns+ zg3KVs$e~BY+`adOo0r_qdCM6b9+glJsN!tN>r~BgTK_bH-f2;)x=A$f*evAa>dIg6 zNid+<*-s_|@;rMs$xMS>a%6wcCcginlynNwi6tv-CcUB-DMDZ z%SMw)W@CocwV)ay-8sjT-jdCtmFQ7eg-!;J(~YuA=3`q=++l3vms&hezwOFa{Y9vu z&TT6b)Iv<>`?oq4?iTk8*KY`wEkwYU`3Zcve!8CvJ;&KPjtP3*+sBgm3D4TcOiU$d zLZ>1RPaEy?2AK456B8VpjZ+TnEAt=7CB89I9f@b9J_wflXpXdfNtwj5&LkMSSM+2# zB}bFO^aB+p_zsU(MlfHZQP_A%s7@WO{nSL%W*QwcKrispIpbpqD zNcirEDLL+7U>OpzM5gx794m;ni5!l%w+_Wa&0@OCA0LIzGBUA?4DRqYAD%S%#<_t{ zlyb_ls5f<=Qi%;uk#K&9;AnXD)1;ejp9GGIv0FJoAvw}4GUawWY%`=JU3DbUZ^};; ztLM`_!f9GfP=9Bw-W*jQbCf%+`N$6cZgdeXWs6^5fLcK}5=K64Z=~xgrDz?~wX_?xa(m*>s(i?_=SuD4Y(orY72n|Fn#5^57wG5TA=#aLL{!2P7? zoUTL4;P9L-L)(unQ!;O@8l!Y`ppuDh`XVbsr+C)Wz&p<5nE{~40qNiqMPV9Lz zT8?gO65sM=+xz*0NNCnvz-w!t-3k8*=67a_$jwgM5{a(kkQ_o{->D;_is&6T8YlgC z#Pmprlxr{NB@i)h+@_Pd?Iz1k2!$O72e5Ip+wnAu*)6JJ?Zxm4rZDfPX28M5K(Dr1 z%Q!;R`F`>cpMqdu^>o>fY;H1G2O{z4;%js3f~+=6MCddhqm*`pYgU8=FO^l<5~Vs$ zydJ*ROANm{)QBVd14BzMxTFc|Kn5#{9&WG@Zl>zrENRC~@kC!RtKjoX*5XxL1ZLM( zp}8U{UvuFm!%Ye`ebtXb^{<|6S-HnPxMeTm=k@noBnP#tgu>KkhAxFZxGik@@B97o z4`^kH9(RSY2i#XEjYI?6g__)~qtb*L@EB5q^dFw?aO%?pRC0yII9J2}i8Mdwy`8mA zBfvKVVu|#Z7nq!cQ80rE;Jp(E95_lLttt}93Zn4XODz-5D$3{pP24UakJ;y~3Cp97JE|Iv#%D=(sM~-@=LkDJpd*A*LM4-7dFYJibAeWWT z=?Jmr>zlAWTkaro#py_IMbT2X&Vv7o4)c-=1?rUuJU`}?_Yl}->r7Sr&lF z3+gdEPd8=@oL8SV{%B0M(3+i3ADn`Jv9Ren+3cVtBP-ZHjW7=%=16NA03WRsb~byq zXjf~T_e~p|5e{;`p`dF5$v!Q~zU9xVfJyj1$!W=-XxMr+r*(A{zL217`s;Gbd+Uh9 zHP6O=bUA(9`fC z-Dn?JX ziHjYXUlc__Q}j*BTLSy=Fk?sM)uY9m1zQ~}M$)ntJX2p3pHCWGNiT$4 z@T~u_D%i7fFuF=stV{|6M)(V$zO^_#3d&U*hhWO-7DJo}95f+BF;Dn{Nkal_SQls2gR89$qorNtE}C zubzKeiyxZnxQH{p&y*guXXMiH*f}3Zc4iTsxg)o2?o5{a=Z<92aX%nHD)ImnAMA6gbi=rqv!F zsl?Q2R4v$qWa1!b`}JL+hElj7LoRW||8ylW={4&Y{i3Q>1TYjBcU3g&Or1tl8#hC*#6)OQuBTt ze7T)IJkZ@gctMKed6OkDF(4|*-NRyl$CUB3s{E6rBI7nOKS<4*nm--nhKAL9DR7<9 z@keNq;g~;2z}ZOr9M>DN`r_*3Q5ip%=GgS$Z8+}Y%B=AZS!Qs-`8wbFw*2ho?gHV4 ze_U@rhL~u{lX7hOeoQiMMC!=hS9aW!IcB9_?M;$g-3p zVHUVZF!Q~eahU-5;Z(TzI8)N*(0{VW+p;G4jXSLN#2m*tt&vkz*N#LDz^NyV!3MYK zW2$)a%a8r_JMp!S@JG~-Xsb@yXXU%;YC6=-CX(kVH=0jTAWhNCEXUwCoFKtnyUjxH zDre0kv`lcNpMV9~XSFzxyCRP)WF+4&aa;O*N&dt@;{6ElxsAa0l$)+%_Qc4%Zb@$1 zI~4)Sm^`%~5cRaN@K!Vi!o}NQSE|Xs9ruj3f9!|tW74Jrx(!x5F(euH%WY;4VDf}i zh`x?sq}&MB&v@QIGCIr|#OaT?`GD@lAnk}Gzxc;jX?R-LWt1n9sNGEa8b-N-UB~;RUu_Fm0~#ukTn^8Pnb=Wv z@!}@9@Vgsso5zeQ>LW{afM1o0IEBeR$*t!@F;%Ai9gmuTaaXrWvvRhnl-zcb(j156 z^c5n8pC@boUO383Qiv-~QzTX4VyNd$-X#6ERLEQ}#v!>^SYQ`V@PPUI zcA0iIS>#)y_s~6vSGw)B|7U7%YzwLQKQy^iOQV%xW}GY8WOIv3q~C$9WHu?XunWIy z3LI)K5}R+WCy;nsjU3T^>dxS!W`BAGZEdpv{DY}NT0JMb$lrr)5`%y`@{n}+qfy!Q zj%3K}=QBT)UMVtk|46YX1@3|j*^5XiteD%nD*b&r9exki&(ok>{&jIud^y~{lkg{E zuAc}LTZys&qbPSm&a82%)6PQT$0NPjkb61>CEeq_Vj zyNPxaGB0pWIt8JH=W@?o@mlPHeKKAF6;}V;CslJai>259^{UIIyN)c1#N=EcwU?HG z6~E=dr=lk5_DuceQkuYpP0IN0C54(p<>>0@8^*r|+0Ko-$77=<(Ic)|a4U2)m@VbD zvPkf4!R%XnUNA;P5Z^Ppl#hxERcs^UCs=LL*wGO&rA^DW&`27Tyudr~ARh5K^F10> z$22ZB-=2o^`Rg%HB;}D&o4$&WjS4ls8$fCUelKy(8__Lf=%)(Ya85U$1MUsuFtK$} zFVj!j@Hgpk?8hxdsSng!b9j8Yk2%U#IAz*z&$Ag_0J17jJ$TyqnKtZ=iJEL*uoq=C zf^0)XI+~X5MReB2H7BXHJP_zG$VtUzN_HlX-%Tj}y2bioI)3$t<}s5BLH{IoRNqog z>g@AT^BJvPa&~JYjX`pD7ngfMetpjR@hpH^SDoNPVW*VSK+?IpeWMf%^!in!eS`0d zF9zc$vIG{$fLea1CHRV?z?-<0LvE_c+7;i*h#zJu@-K(tTo&a8k%%L;Y+8!N^J96E zT#!!UAmKRe^;BzJUwlQmOT_Z;-D6$O0dS?RK!F>~V7IafQ@d z1Pi zgW&h+xOA>yf^1jQ5S*7W{TY`u103T3oEM5}Rf65W!cF40-jm=dt8f|Q1m_E(MJ#WG zMn=prGl3z79l&v5A^KuM8~J*q#TD+_>Ayb_Yx!v<2{angWwo#3W{#?6lr4@)2yKXSgQzp=kUZRMLpZUsG~6BEgT#GoFJ$xKdoofi>&;0WzK_Ja z0UQw2$?Oz%unt-z*>|w^UseAc1SnqK;*N9aV|7m?W# zE?gxvyDanmkEE*%YqM#(r9dd|?heJhcyV_qTHL)raVZ1|?oJ_Sad(&E7TmQ+aCiH7 z-tW)mitOyp*_pZap6s59ZN6D-gIn`n`gZ(tEv)H^$-*fV? z(XvpeDWi7CbMhELQb0?oxvx?k?L%37R|rRzbksKT`QM~AKyD08^Lb%H5mR6W!=WXOz!8;?dEARpNz((#hbWdb@CgVAJ zEUAD#<^4GPO2HrMhfGj4yfx$QWBe30D-@7V7L>(U)d=8ro`4_uCqHC35s`CIhqPga zg*Xk=_J0+Z#ahiJRzUU~OWgS`TbNBjjhVu+MJA_RCKmsmIgU#>JxE30(h+u@C&&}` zzT~}@#A`!RUyo#HxJ=uY!P^ftsM0@*p{j+8ZSHkNjT%b0=(Zss(XAxTi>P_njpctv zG8hl}BS;V*FNG^=>;J2jF8_Y+Atq{jfkN~i8Dvx^`~^`-v5AT+bCgy6+cR7f^HO!B zA*13EWdnn}V2Tb;%j64?!lk<_DnQUY0yTJ^3rfzhz8FzU#lpfz?QB zDJ|of5lqS;9Aa;>td)fRpty`???1di#lu|3l}VM+&lgN(m!4Dw%cfgc@u=!T<#RQc z${2I%BEX2)o?5ti{gx2#x?*B-eM)W3Nyy~ zd~c)@9PnBWifc$JvhfFH<7DNf`R5|NjaqHi&pJu__sH@4E=@E73S1ejx`Ctfio;f_ zPLj8Nletj$R4(CxXAt<2PD`ovV%HVOWX~Y>eMlv>+bvmEz86SS{!slTG zv(hQ`Qy6%r?m7P3h~z$lH7$c94jijinO98h@|}{}d>i{BOaSg|thPwSug}erjaJ^` zuYLYK4PHMv&MhA03YU4$(qLb0LFBkIAVx@vi?)fR-}1LsB+NJ?U2SANf>M7MQb=0EJDd%*|cBjB=s zVOcOfh-b_z?hsTFmhmkp_Mk_~MnfY3XFXJ*P*l?IF;2Sn? z#)zyz^17bN*GG5~nrMO}1j4LDmgNB6oat*2)*#a}>cS@*UBIk3&8K!p$~Hn9C0Uru zFvF%%re8SYxnPq<=Tu)@0QNY{Z!UF1YGrQ{_u{B=l~=^$>2z@FS}v#G7dgXFjmN4h z$;i$RGwB`Itacuvx1CI~+M-K7lo{e4Wh#}IGs)yt`}W)xkoP;i5|ycIo?5ljAc89S z38rT@^qY-~(%}7FBY10+blS`&Xbfh$PiH`-{t2aFGAMK5z$lk*j79OEarah~;lSszYn)eYN1ivP0MMIO^W@uSZ~kq0+Iyqq&(Br1X0O^6_-~OJ18=2o zy>GT;djSo_RcJ^qX39D@W4Xix)WEXW8q~Kd^TFee!Q zS^m`}?+yt5Vw4`sNnNU8uEMoNH~O87bMOj&Nw=OEPOSuAZVQdVyFrikSID=+UzVhL zXeVl+biHHq7-FQNz1_A`EDW@cis7YmDsu0{ec*=N09hF#MiN z%%S|PRq{EsDA%3HTNvIgv~f_@IJBtO8L{gzEU$UbCZ(lPLvPzBrHE$Ip{s`CL%`7FWnbC8eS-4N>VDqq?DfitT z$4^9@V6PeW{Ax!4Y?w;6CaD=}Y>2QnD8Tlax}TU?NH~|_vxdp@`D&kf*?cP3CX0e@ zYa)tS80t#E3L7bt)?H#Ia_kMB5u?C*!3Y*;OaN@xwFxeQcK>b|vFNGTY z_g+DPb@6jq_bgAZ>RM`$WePZ-{hGT{j%Q8B~aE-94&$;Oua6T*Of z4IlZ{i#mGi4jWLlcetateJ3%CRL9>P+&wlOuQ`QY+!3LaMU0z-1kuIgbeLE39dwQj z^j=e{hcLleUdQ+In(zl>0R7n4+_GNch!~Pj!z8KuBCB9_MSI(Mrq#zvTszFmL!HRS zzj})O0s%Pn_-D?krWIOP@6|ug)a~+D_HN_>SFQE#`oSzx&+?$qN7~aY(9mxc0ojrW z!0)~w4nMbT{117dowdsbZVAyC!Fz@h4wbJaw&V@$^+dT$>r(<_B+->@0_G%{EhHN8 z&?H+0x4-<1c^V}wQzjsKfop(Agby%xoDDr@*)|99l+rXR)Q*^7b7#OoWU4 z_bL2Q!TaO+ANl}qjXVn(t75O%gyg_4gu_O1&7$jb5At1eSsS~Iuw7O>v(i>ntE5U@ z$o&*L@BD(3StsY;3TC9|;OLykJdUU7QwACeJzknr(5O9{d2vGP2H zwgUU~iHG&IWMwY!>3UIC9rpLA`emj~X|5@=!X;?dNqkF&Mdbk`-}F&2_K}hl6|+}3 zno1W`8#|)FWb_}Yc4$0b=?Gn!vJ|d|$)`^&Tyc-9A<-p;x8gZ5DFPkLP>Y~IX>)($ z^nvf&KjrcGz{M#h=x(obUgtIn?nE{8_);q^CHExX%97UQ5o%9l)Ls_rx0F?6$x9u@h~xwpOX@{hc=gDA}5;?w%GgV z({?Jcq6Ix3wQyDgOJUsi+1=AjwtM|yv!sgomuWvwC>t{Q3%7Fo-n~?VhZycHO9tIW z^;MPlwT0$w7B0 zs@#IzhDUD6FCZSly#2oIxH+P8HhhKs>7HHsnWBfXe)0O#9cebN9mXXWr z?OjjU>%_Jj`$zUn}tuHaqlo2jBDs>8fX}x7o`GJkSl7oLIM|t* zRKjAyR^U$Fk_?PjvMKz6;#rzQ7%84Q5Qb7In|RIc0qCQ(x*3r)SZKylZmM9<16q1{ z9rLUH+Z)ZfG(o7fdK>oqqt~)OT(0t!`8i(yWwqQ|>+sh26zQ}#u15C?!qPm=qlj0V zRFGd#m(^K3_2wS9-a_gF6>_;3vanJ zlhXQ*>a;tg@z(bC)7*!MTH0uktdG~Z7ihI$va}Fod%bKI_F{_G$6pQGrl=v&2vx7>C8Zv19TDX zmb>M3Xp*6LvpeA&yTu}KyWMe9ymT(G&%%c$CwlK`N}5v6Xf;!gj)inZrbn9JY)x(P zylvm##HiSsjtG{7muwc$6**4)dH?26zeG+(J|pju53MUuJ_{_I;rH*;`=y6}Q+!r- zc$y#9>^ty;S3s7C`YWzr%O2ZDnUM_IZ(8ehhd8ZJ8oGN#ft_F>!V2P9D#8ys{uBXou=?I@E22#MF@;10mc9ii}d{3+B1 zZZrcs@#}g=;WmT)eXl}^q;B4!z3aL8Ry3(+-_eqYBol|KNO9W&?cAXAbD?#DLEy8(_cCHcd zOVm$zUOE^*<2B)EiB5aT5xHNFvuOsVKEhf{RXa9|Dw)=4|Edcx%W_p3+t}*XnST$l z{B@*tcfF?Tm%OMwG7VqAhJ^1p>AYrrXHz(>71gB|nFP!z@wI*@^Y(~Ng*Uuy6LOo` zP>O}~6uy2ARcL$eX>?~ULQifJ%4eE+C1>(d=I6=k=>P1ZUph1;!>N;g)%KY|l)X?A z7ogito&ZX`hQjb;sGjZJK=ua>$R1l8pEzY6zT*^{e8u781q^D_zXcuc9D6KK zrHb^QT$Wc!U5+v5`rJBtOTxe_7U4&ifmL?Bgs%}r*`APH8e4_jVAea*<{;z#ceb}F5}tRKx33cGe#eEA z{%u0n{f>8M_QN%;1yE|4luopkmNapfRC>fGraE6znRYW8IlS83>p~YkKeL%5xs@Ea z>kceFzYWN)+-lBsLibV0T8>2R1Is(i@calTv195R7Nw^bD zfV%a)B~DVz?LNClO-#$Kzxe$APw-zW?|2HpUpaZ=qIffyQIe~@vX26$STPDX@Op8T z8@=rKZ(E8c11)O1YLsoszD0M!u93n7T%-FcJ|lzyj0;C^!%2vddd8j`)U;wQ?fk(< z%@rzAP3U!_d+@EMUsL%$2*01rW&UF|O;{XmEz35F6io4;FFK*-4_CX72W4!p2ULv0 z;MVgCrNzXfvzyo$axeJ&EN3oTY?crBr8oL^oAKDyWU!+1RU@i{(`Fv;;ffy5bV9#l zW0oqb-83i4VNI@{p*u3Kyfo1e-k5hITRu(86Ny4IGH7jm+QvIle2rb|G0`nc!j}c9 z>wX(8aK6g)I37ara>k~^GJ2{bLL6TgzhXxpILhw!|EdRp9 zxYz~jJ@Y)m)!;{EDp1z-4*Q{3oChYvGb98Cp8kHtNsmx zOx0@;1+fn_nxP`Do7pb1!Yhph$-jtmO@I&5@-Lq&{Y`*;O%4(NoG2KPy=siyj8m-;u(D5gqMKGB!g&_OALwLp#@JB@^m6m=Bw>F2&du zKk%BfMF{N7BJF);?gB*O#H3Ogff3O@PK27rGJ{}K5diKLNAaQ}L`Px~?Tw%40VH3ZpQm5Z0*63kh= zO|$}z7$gCHek9PG8U#n6`=XRC9vQ8GKQDuisE5H^BwSLMKO#|D3sK(rGtD6a<^85* zjc=(LjKrE1JqWxErPm0f;Nl{3dtja~O2j1xL+KmBAei9}VFjGA4EB#60)HcCu#BL} zqbHF=dzW$RER4?1+duCu19<5Myi-D=l)8@a7Ec((i2ZyY`(26OaO9-G!!b9Mh{p8P4WQF#$u^%!6dB&xr+CY&{f$gF??A^@Iq zj^Z96av+iUn>F#Q4)JUeFCq6fb^kk>V-!Hk|IlPMm}FpPHp?ss{v}0>L!ShwXAMm7QvwuXxY@+zfrbDw39!JVFQ^8SpRT8B zShN$xyQ zDgqq70T?fAIjuj29xb{TZlZo312jxhFM-j93oKN_oNb6_dj`R1B7mR8jHEyT19z0e z0@M-J6qL_YjQ@d&^#5S0I}5j!QK{}HnnT7tu>e1pN>C14$9Rj6L!D=BvRn!eLaD^)nZ4l zYJiF^N8r${==~*3q`N; z9mf`PNQ@$+QJAk?>{=wWdXcoG!yckMV@Fue1zg~@{u3)E=!debJAFh@e^qS;A+t*m z%|sbFEc`D>^}ag=yKJ~?-%VDpEsOgZ8Ycr6alKPAr}dlW3i#!S1bF+dz{Vi>h29rs zd1J_q*iDuAnj-;a`R{)w9X14(7@?qD7X#4t2=LyjqIv>LtHr_;2F!pl<}p@;ZUqKH zD`0970ORJP7DMofl`A3(YQ5I&LtXvN6WwQ!N8jr2e9Df|RhYjWgRAkxTOE@I>8Qa7V=Sp3*TcrXe_fRsJK?}y9~?uK zgD1{rZ(5O)eKS23*%q;IJdHYk9bZlSv*kCiN^1V-y0=b!io92}7O`l^$@gOJX~faw zfa+<)l{#-zzUGZsygD}pb~YFdpr7XL2qVO;@@`v_A*4=>G>Mn)ecAMF)9Tn$Xb*#ttD!bK!P4|(zZb#}c@ z)3y~|r_9CRY4B>3aufW~ud)n;tfy%s3v>xE5~@GWwG?0betEMlYU(-%bCF0Kn8 zZa^>YJvO6%X74%uw`YMD4Bqf<6SDRQ}xagK`Wn@GXHt z!0o%D*(C#Cl&xGg!YW+^4K=%Qh zF6N6!CV!g@-elEh585rZl6#FBgK(C@dn4?w`fc(m$xNMy95`ir-F`Mam;nAg1Rjz= zM%O_Kq=C!?Qa@f=!9%6tD!LwW&fgyPOmGBwX7ULL3rDLpZP2vSu^-EY4xou#Gw+}D z{BQjCTybv-SL4*sG3nnPyju@bUpJ56XbR3^oe=)eoS9B{#L53whxB7y_0GPVt}JDI`@|7+hX~0I$g3+HA4*HHW(-h zrsxDH3UGZ{PKb;bWZeZpnkAeP_ zX3glqE|g}TOi@Q6?@|-Yllo_oLoI3+2<(h3g0>nvod5Zu5pGwiSVV2{koVA9Ym9+lK>%{FV8(@q>+1wVKdyiKI#Uh{K_KYUHaKqfiVO95FzYI zy9qL3cMmp^gM;ro`r3ieu{7jN4M8C6BkX1$BCyPXN#gjMmL7GPb_d^gx#)o!x*N15 zafhLP>W4x&597yg_JtK*b>O@~>=$P!L0N(tCa~vol8KakrHP*Ar%d(H*ZyqP)zq(Wr^I}2lF#gSOru3U5hK`ylpvbtT8|!Gu4so7!&l6z6U5^sGGVh7i!oeNp;)TZcb`t?dQ z;7pkowZIIeU;xqlBY8a@t%kBp=FIuzv?(fdS z1g7mK1EmBgUkXsP`{@WOw?Fq(|IJU(T89JMq*qudgu&$znkeN|C7&6LJcgSIjj*Fzh1&D@ag z0e0PZFV>8GA+orvb6g1SHH3zHhN?YhZ=QI%6E+ zu_0>fuH@aKQjgzv1Q-&WT=V?~Yy_2&72Mx!7Z5{L+-S{z^WhUp_Y4XQoQLwgYp(c4 z!b&KCay+I(eid)rEON_gmY~N*p!^X=_skEA@D~2@Cd!0n)?Zk=8hJB;(;n}`Pd5i2 zB8#>g1k4(~HuBKO#;T9N!1}W%1^{Ym!vLtGjD4r&#XW6HVmUw%F`&?musEywR*DG+ zYh7f|<~doNen>d)1sOu7wEQpfwCE%<$F!%jJK%N*+PJs}*0OrCsR2}ljv6rI-3WU$ z?soo>&v<#jl#TPCruY{?!ZO19hg{mXaU-IQyS}QsuVkg`mRkA)I>1NY?rq1Ac?AfI zn8Z?zG}@T^arE{&@fx1%GM(#Mj9FsqTgX_t(r7j8X8|iThYTu6rmHXaB-@`zBaHh; z69dbq9jq}fQ=S)E9hSW%YJ`>i-KVtuO@tcZz2MTg{kzz$$y2wTP2z+_G$qR7NGCdC z(zr|~ym5y%a#kxd$MJPmx}DZnS@2O4hKq3YsJ**z)bx@5v^l&-p9RkC>{$N6=cPCZ zPSNmC%BH^$pWEL$!UkA++*-gnaONj+ikqmZ#_Et7x7c1) zKPKOU1)-9JXovG!-D|~W^NWv@bUn1u_(SLl)chk_E(g~+c|WN;y%NghpelhjIEZ+kDw@DortV3jLy zdWRPirX>S)S`9+1%F8KhqL#Dsj?T%&K^*LBdxDxV{u&gLfqJU{gzFlZ$$5hGeLegP5R8WKv-X2WAyg}bBxGg7 z|HqrFV)JCsb|OJ`hPE z7t{P8uPxUr8zaw6z-fL!C3DNn#d;G-!GCdj7?rmd{-X0_9ojXesL_dltM>u;in|+= z|GDKKYDmoFeDKR3dq1rQ6Oer6<~;%I+0PpB1fy4MhN?Sf>#|Jb#I6&2xY<6nu+P``lnxe9)ssMS%%d*}+h<_WBYA0xq+fKoE ziB}s+^!IGl?3p2&9j7fIC#%!ZW5utA*zv;(vU-7n5STde9ty~_%bVN8l{HReXKuey zD-mVKKJtMVM`ol54={wGyU`b$QbMt`kdHPop>}vx%~^J-LfUh(W24O)0!7ii73ms* zwXiB16SA?;ZqJsj3xc60Phv$bYmdK1s(okme9y{0eUU3D2_Skoks(((b{8);L&pYa zthg#0BtsG5p=WS_ zo)~Nk13t@jpcbDhZT=4C=yzZrwpm@P|J2l{EXB*$j-Uq!(3{|DT^#x}#a1yaJcQwL zbqwBcRZHyqr2JQd$LEE{!^u0(MGS$Gt_w3_P?+dr-N)qs)`A=77*doN5FYJiM%QOJ zfXXq-{&)TfuphtL5B~5(xnYrz8^%J zVSk|u zZ<=+Gb5RgZaf9)5UrI+l;wta1U@I}V=hWOoXqm)7rMpU?p&O+oOnMgd3+3q%@!<)- zS@Mx9pX`)1^>Y^rztN>46Bax}@WK#5ehxUZ*0nyTAd~Uo(7p@zBy$J_YRxD+mP2*x zM2T-q+p)yyT@7=u|0ryw@!H}TpaLU<$<32Pp~uP*UTMs@pkn1DnV?B+xq5>l^1Xy& zA_zLuX8b7wWgfAh++*%W73`;ngDfGh_oGTbnzp@7)7wQpO2+Z+u9_ z6l);?z0!;xxz0Au{BrZM5;3Inz;ls82+5VlU0wD@ z`9{sjhe8VEVCyK^<`L$n!L55Lt&qO$^`K)L)68cF`O~;~u4V%f>IS!x=h9KD4DRQ7 zRZy;ye(tqi2%NtL05jM3%`YVCb@A7!th_3)xVq0CpPBPJdciDktzUQ~sh49Q5>ecz z`RJPMzdhwaGavKTa7X$Xvsv}+vxn;ceb2rB$Cs5qeJ+%uAGku9ErU#rE=hipmu6J~ z2~sknHjYX2TXd)!}uDCP)Abbc~ON?t{vxr zmhu_=*OJ4xMO$6eo~^X$BGwJ#e(RwPSB8n| zZwyxZAbDZ#gznNaRtmk7tUeZj*=Qrr#_~UwYl#dvC`zLT(t`(_ME0E4ngOy1^!~$y zOI5O`l@z-|Sh{Q9pyj{6^4~=m22KpwB2R_EzX&Ol-*D-CIs5Q9WV2K+gQLRx=bEYb-m*TASH=@s#DzB_BBYsi z3-Q$26u#|)o%P60L0%Q@=bXG4=tHsQe@zk_Vs36ZtzTsZ;Vq8BT!&LE5Px9#38D7R z1aI^mV2dKaw)ENP627Ee8fi-ZP9K%XI|qd{Yle6}xW!xV1VT484YR578H>=6w&jrH zWS;%1>cY7&CzIdkC>DyDwK&lAH(Q~!loXy+8^6C+^HJD|N#-bPjm=zGBeDuu%ms3>!Dh6Ub>KC+@@v%eL;*gw2lg|vmrkwlwBw1;u_6f2UG|KN-OS>(m zZAV%tG#y#G#XNl}SQwQky;UM7+6S~m-rb6}4pSh7|GV`&LdM z1VS8gRtz{p-bC!?(`E4ZlGk#+-;-3oi7pXlv_XOYT%+)o%yHLJEs`%XPP@a72gUg} zq>b~7I?of1v|@$y4~t>xy3~e1qF2d9&Q!8=LefR3{I#R^oQ!G9M%%X>C$-Rt?T{J=bR$V|V$j9gAP)hdhCD<-*2>y8GK{;fk%`@`%NU&XPtl&JFYq-kTw z3}!0SKf-OBCa=;AW{rAO2kN@lI}p@Fn>JdSP!yM9V-OVj{jW*|O-b6@cL>_c=F;fK z5NEVC;Mt3vKSDW?TZD2mJq&r%a+0t1oK_xZ;jB)3dbI$&C! ziI+$vu1jBIln2rsh9hs&D{?;49a(G))ppf(F+SM^i)~oo-UqyJlq=n`Vfs~etr?l; z85Oxu(yE;qqWPm^2wygoFJYXpcUx-n6)kxiI?mX~aykVToWL1*GgKG9>fI(_jN^9z%XrzUZZVlq>_tDvNbtgQ-4urDPs-!W7BrFyql%;s*AO?7!jwuV+7S+;!zX z50r})>2Ih`;AGgfJFm2ZGLM`2toy`Ue1D`8mh!$AoBHeCZL%Wng>uhYH}*}uD)o2c z!OuQpBWMpyX&y$u zPPxYFc~=rR>1vPDuH#?KL14c&JAq9*F*%bZKXVcyYWS>uUHuqiF||JQams0H63ASf zU>&Oe8d3zCG?D5LQQ_R+nX1dy;24jF*icV%;K}iP`1+j=CiGv@kRZha@vUxne0qh_<-SO0NEHIZQ&LYe)r8l{)}x1-!37B2 za@od-lQAWKSC(u;RUe}k{{8I&uxI#-JvL0*NcVFaOB0%ltN!s>uQ2`YeCM_kAi=!N}-I_KMLp%=d-Gdz7~Lr7doVeQ`r z0(*G_6Q9h#9nB$f2Ft;MpAO*Ns9ko|K+w&e_Q3N+cmdytKz}muM#>PIH6}~^L5HYv zU{nf>Z=W&i)abV2kpm@JI6sL-0|I<4e&=1vP#@OR!saBoDa9uZ zMQzM5eE)3jU$jU+b?^pD!rWmRWsx3FW<=@Sn!delasx@T{B`qc8O7Q&C7$*$XD;<* zK+x|-!cIHn-Ee}bmH*JU*6@R+eXnFU|DKccgZdOwY3WyYuZNv=NL{AMTqEzevh8DQ zB}&LbRYPWT%p`~!wihYq!b}a1?Iuv>EuVP~@)FO{-&6_GUyYPQxx>CRSp$jl z3MEb+IsHXvMlaru2P?WNz{dLd`+9*)en}bKV#RYW*7V#JFiQP65i&=^jfSM5G$BO^8;fnikQDl z95^S@XD-UhK4#O#+4A^HC4DB%z_0tySU9e;+_*Lapuvzbz_DEm!@1W01s*)>BLP}iHN&N`H(a3l%s_j+-x(caosk7!ubo9k{yr~9`<&QrnTh(M+ z^{j?l8sI@Fo7tk{TH#FFO%;O>al0V^JY ztL4S1gLHXSvDNo}DK*3EegtNTZ5}ig)QUJ8CWwc-HR0BE@$N@lua;tI zyfeRSH9HJoCFx^#%v_V6^f%PDE6yAlq~S3<%2J=ur?m1279x``dh8He5Mtdb6W<32 zlU^q3A;>JpjH*cwP>ve+yTeS-r?>~Ul;`kAAYpSn7Tx=TuNFG`w-@Sv1$ zj_`B2cmRQ4|BM~*-rTQ=WuvaoXmsCDXSWe*1EG=mo{>UKS;NKs&KJDhH~Gz=l*O!J zO~vW$B>9ZkZ$qzUmsx?<#P?Se$RpJVoX2R8?kN{VESEhFxwO5;x@JmjPuW3pLCh(O z`5iKI(DsH0cTP=C;Isoj-HJ1Mw0rxoBCZoBc2(&5uqa(7FTG4=(Kw)uW4smnZ!I3c z?F!|5IcC^2+`0`#Uy%T`OGS`*@QYRWvz?ygTZYM%0;eLzij^n{WV%R9pOcJSMO(NTy+-hwUv)q?xq%I za+!&$==dh?j~NbaNL?vn{3o?z*l2y|iAi|FpX82DBXG`dW)*5k={?a=KLKHy_lyoP z#LeClHbN%TZmU7^;-O&MrOXgX*>CLZX-&GD_UAP@UYn$kvTrViTc&LvOGIS_ITABv zN`MT5D_d{I*SSaac#}|5&(iqNdkGs*g*x^r=LFG2KTPor%4Zkwo$5B<6KtLhx+sCt zb;_L;Ik!ne{zhpGW&g4dp*{=|MXv>;#Gb;2GJYtGuKRDtdU)_fa*0Pf|HkPtobo!mpU*+r@EKyVSAIf~xrEswB1GSy%o%0H%X57Xs>5nMK7+1j zpFLs8(ivjcPyVr>HR*`ew&>nOY=QldUfgYA%sBduw}y9=`KAd^zw0a_g}iS$(`MFY z@Jx>nERZ>F4L%3S{BwqSdNYmPk%>>&8Xw;PQDRu)^ogc0)3+P4oP(U&(&L1_l5bz9 z5?zBTajuQ@4FS@tgGuawy=`<(toID(osro=81cczaJ?jdm{PM5}fC`x2x660Lyzs?>to+i_KQ|F57Z=}CYww{0E)!H=SsE{>Sxw{z%nEUr4-hAT43tteOvd+If3 z=;STjpc$JSz9Q}{ZH?~p^wSyM=tD2O-y6#*doPyc88Ssz0@r~VyIB1JO&Bye0Ti~p zDk&9& zza>qvajh3o3hW}SJZkvfui9&bU~Xuc@q=`da*bE=MTdD048Z5wa17gPb8^ zkHW~Ua5o3AqfAmuzF_A5E0TVZ7TZvM)10RuuBt9~K2M`!#$>stH8$$_$VV?~IV>L) zM7?arnQGGh!;g9(3h0x{Hk|<#g~1F!|HiToT>HEZbkI{y2t6X2%22xk*u^WOM(oW# z2kL1~I4GZ}R(t8GXUeQR)3nkNyMo_xDLnj{C(S^PzwM0zjFs99aLeQn-YU0GkOw#w zc&D_BO<%T_2`CIp$aXZ;HI0UjbT@T|t`03?FutlRUyWGNdBDGOEg3aijERj_!1z== z;6Pl+NA-xNCNz#mk&dONoG4cl=+pvWScK3(0=~?Xe?ZDPR1fBA5`&nvII5R5%=I8c zCTP``6Jp*#CEy7il1x4#9%=nobA`!R!+PnzW~#3m$zhql4T2=P#8}@vZqen7vD_V2 z3qi}Y{qfQQc@MxnsXgTeA$;W3=E%`O)Ovi$$Smv4NG$rPCgM+dV z^}@{Jk;q>Zt*NhUr@vdwZdeIT5 z4HlhrpRgT%qNrK6xnXJ+rT!wUz^~S-8vXY>d`ue{~^LPqLtWS3*~E3I~%&U zB%hImM@T;ye^k>KGAUq1eBFz?2lUVWgfJ1@P6iu;cs2?on^HOPA_V%+^RIxd#!Mg^ zVcBQgA-+D6WY-|~G|M|@QlN-GFQr5vL(1gAUX>jNOO|E2oaWU6k5(ukudC8z1Rd#0 z=-x6QlpEp7!V%OdGQPb{xbCf88AoqPwqMeEsVOH4OtLL`_7b7AVFF-Wk~-_^Q*>2G zU*q=#p|DWN^M_aR{{U%`F=v##-f{D>0)724|7dL2QJolv zk3Vu0lsdt_0KXAlSAjgSZljOSyfM50U&RDx7M+^g)nh%1va~Y(o3j1;Q$j$e-*5oy zchsou3h_KDlUhHLgmpa%wpYr>XB3VP!T%av1Pn;v?x83mLq018>+c(b9jp7ylDIkK z-KiLB?q{z!c#CFILU)+rH^m294wpT)aE|d@{7;O(&ay%-x5@Jq%KyuFJ8UReUG{gK ziShgIdM0-I{2x{C6kXXDyo+{>9osfLwr$(Ct&Z*d;&g`{+uX6yv2AECf*b0&uNyf2;~-gdaVW5hm<5JSzB?ATO4fo! zWDpOWu}4Hlkzc07Vjy^~;b(Z`j&khVNQTp-cjJ7D{uM4baRB;*_-a*$adOh~F7iT> z;3sstF0$Jfs?~`5Vyclu&TEInC2%vmcQ2tT^tg5CqQw-t>j`Yw!@}Zjfvw>a#yfi} z*c2(F#`g&A=U*k2xi!v{+8lIZOF8=lZ{?zI%*@MaGNa$v5_MWlFmutgNjQk4-tvVYC2z18x?3bzjSTQiC`(jkXc_tsd2kO-gMsTl|HlRagn!MiY9jK# zPAwZ_gaQ65q&%%MKh1b?SdD+iL5H;2``nQ54pH0uEz_=}#Rl{BB`WF}%$IU+&NrfZ zZ$3XpyVDYWa(-3$j+Q3A*vAka&E5(J;>_UQA6Q6UNw7YHGLbG z%l22CJvkFaY{qAJ$V4D_X`|niToi@vZkLW+w}yz09e9x5oBD$K-7TFW?sLD^W}HTyjV~a7!?7_yIG~H`a@ORl@DXF>efeM2_= zZg4&9`AK{FLqD#^0iY;DopMBx-Z^If=U8J^Lg z+0aar&b>B%*qPcXsu|_C3u^zWV3@b9S&V6Kz)CchQbx!Ti@a|Ca8 zsk#y&n;gy3lu`fJdEJy4+L1_Wb3}hFAo(;{)K*+qGT<&Zb;@Tug0$mlVDs0rUOE3; zi7oV50`B4uo=FWIq|EL%L(1*mCw3{Ms88Fvn~mvvpVVV?4mA0hXM%9|9BRGZsFH&f z1zEIa^oSD*;k;w9%HHq$kswc8F-<>cV3k{t2QN^JTw64JgxUa6Mvu%Qn1{<6Z0#gu zT{1+A*SC;fOqbbU2wkgiO?)?MLq*{7$Mht?1}UdLrQ`#`zj{Kn;(1P;5-gIt{9fmW zRQS(<0BKcmiodv1PSjKeiPvN!k#!mwag*Ur>rwy!L>>WI7f#ZNsq##_@^Dit&M8U} zC`$11cphU*d+RZZOY7vgHdt!mVCcbYT@}Mm$3iDMTid5DD}YjVQyv*cAFOb58o2^^ zuh)Pkc-Sf)d$)=ZDf2lEqIZz6nn>aZ|JP612)X+8lO7R)eunjH(e++~+AR)8BCy+92SeK^7Lzn@qbjU&mXWHKi)d(uVb#xM#2|v~cZP@OqC=@~g8>c!8gV+5Pr} zD_IT3_ldHh&a(zLt90+pXL0K(YY*1tN0j_^+yixfs>Z+N;K<$bLQF1PS6jhIJ2V5Lf$Tx77R|w2m|-Q)OSQb zFcS>5)H38ROHt&yfK2syo1D)nDq<4*T6cfYbkq8$_L~3BhK1<8!ikCS*L zU-9q8RiJ`XXl%xhUx9)d%+)6g$Q9*!=&YcUP@d~Bg5V=1JZWlp85HIy9K4y)~X1K z50nSY?1#xBVW^H!@KZ<1TC!NO2}SDG$SJ&;=;EXyRB2APYRuKZ4#u-xS<3H5B}52K zYmc)Hu!a9Z<|&&Dk8M3U9^|?_7cjq__(^Qz6jnJ;au`B3^gEgXEn445TVWLInTSOy zokIM&*FPERPuVpw5!9e2}r#!O1MBU6TH{u|^gZ9|_izmF3v7X5m z=D&1$ei&|3(X~pagD9W73DXi3!~FY59bLrSNoOSadFqpLsg8M6Nm{w^E%^S&1KW@k zR9i;3*uI#~?fw6A@%6S<$1I<_p~mQGe5h9V&o-T3)axxUbQ(m~qL$U~;Qf1|Pm?kk zR>9GwOV1aTc8|VyL+byEpDApIqN{)t>^Om={U_r+Y_}4E@uMs7nEu+NFaTv!kM2m5 z1Yz}kAfn=61XDhQ48P%pedE~LJF&DU!d|exz&5I!?Mt15qEVC5q_~rJ zCxBxkF(LeoZlRPkr*>OAO-&V##Dre3)%Kr7;M&=ChZ)a1@*-J|(Q!eJ#5q%?I*6`4))v;>a zKeMp{t?KptheRhPHjVXGSndJRuh+7F!rrj5lSpHi@UGD?7?Fp$5EqLXIM{C3=;BtVhP3amiKz>e{*oXj}5sEqu)eis7STTGGSuI32s4ftYUT}4D#ShEG06`RnAsJlF57) z0^PV$ZJA|x_b?24{ia0bN91MrAnrZg0W^%oT6YF5coGKoL009u{nuj+@jeI8Sx=Vn z*7VR$>`OX|>|t>{V)j5aFgs4~YkSzaOZrbBG3>$j&k)Gs)!XNeJCZ;M?mQOZdE6Z4 zXCd{j&7z3`5jaROcNc+NOgym-s|UdR3*2($(4)I(nSy_dkKrZnyI+9IhY|OikQAS7 z<|5Jr6F#0p5PjF%rSitBLl4}LjdP9TlUr5Dz^U84 zU(z7$_Do1pQrrap&n+c#;{GSnTs3@hYVpLrJQ%e()qp>u(%w+oK2D>}!t4bh8E3)M znc5N`29#%v`c_=glYVPxS0isYNRgwS155#+^bLecQvdq!)>m$Pb3AM zFd6^S@8ge!DoVk0#(`v{DuthsSo~I#g_t7AZX5XwUd#_+5Jx(!k#WaK{7cGBx9)xO_9^fTg*7XTa04Y9i~5* zsQI@s3+gC#Q;6d6$b?-XL%AqzQ9JX{Z{4wzL!%@l-~HM_op2W8LgFqkQCi23l~){h z0Yi=gey<%ecNlDaNpsB3Ox7@t)~CMYpt)JrkWcMyEhh#0IJGM_^T4A{ZfnSM>>l1E zR;dM$Myg6R-~qYGEQ(HuGEeD0YBp`Nic6ws=iclo{}Q zZi9@Wyyc+axeJC}tZWrQfN|-xH(OHR`h97hM9%-dtj=A+%11=;*1S*~kjBKRUD$=!_xl@<1$7=5#o(G_n4mO8Wia^U(a+a+=j|1uTN zZ4mC(hJ27(lITyprjM;%TB+v}fBouO&gFV}b#>m}g@JD}u$^yZ=-hPnzwi9Xt>$nF zEJfIwH>ECLml^qKU1S!K@@*y8k8GfpsQ7XCngvj6KG?y{x-_hKE-pW>I;0@yl~#1r z7o7@A;gHD|n!w$EZi9&=d5K{PK`-+K6oS^$bhbdFL!=u`l+ZHXH8#1wU{h`3F-)_L z6JCTzPLfQeOj>#z-{@<|J|J{Xl@D&=Zb|5@t3Qbm_N`(z&$8BXFr*R^ zBspA)fu(@pXS(^n*_Ih{q@43vw%WBgrh)_J5Hv0G@@`#VqFx5g=MbWn6Rd83`q?tc zm*w0OrpwdfhjZ}F@O^ZE4x#RbWkbB9SZoRjHukTVgm$Tv%S?l-3}T{p@@{NB@y(B6 z7-gJ`Jlhq^$}bFcjpEt;TjuQkm}4bI^&YzP^-6igB|cp<1bGna!yJ8%3~p*MVUWt} z4GpMhO`a5tc06(#1go9ZCztS*q;;bhOq#v2rOBPz^4oH4zjxnM2!b+YPiBeC|#tfs58?JUf@f2mUcVv!9J$rk9Ka%Rr2&8irdf8x;f03eiqE zlz`Dq2+1Lax#wW43rpN?FeFF&I@YU~VLRO7+ryG_(XliLZ$c773y)5vo1(hL9wsFG z*27f$oYcADEME%SxUyCdy;8ntkQ>z;x`N3j_#zW95%4TET?4JBPQWS_Ey6dRwVG*o zxRG2a&kT3Vi9|Y=7Wc(n_2{uMzWQM_jek{)ay|m#IhM20UGq$zMz6Fkm{uX+iRFYl z<@7^8y7lx!S=WoIB2PmPpYz*F{@f(FNR1A(Y&9b`N$n)#thc}<;vw6+otUXI;~;-Y zD8;Of6r$ps*qqa6jxqdmVxMXvR_SUqZQ})Fq zYCWl{ym~@sX*7V__*6>uBp#*VEE;}{MWwrhf!;|Xo++q<-rkzCMp==ysqN^fp_;6i z6Ut{P@2CeK$UJ_<((KxyJKOIC()P(F(9^T1jNj~xK{Yh1S_HGVOAGN-ytQ+>-r@GC z$PYOJ`SOk;1=0F9Ic^*Fen|gKg zc4qNpcE>s^bY$n+aTOqU08r)YCp;=D^;X2J6LUrVKxj-i#h&zyt!^pUv1aM0bIb0! zuRNR4?8mMKft61@!rnL;V_7QO<2E0q0BYAH13g5~hwcd2YrC>}UOdZJ$pL&f9jSa) ze4AyBB0Lu@sr5gH2%U+7l0+2!DD4~W{|&QpjqTajTjDr9d9$*RKbnWkKj&J%iv35B zu!re+$+>zKsK8=ST;A~7t@`)}rEB~YN`Wndrv%XI8?nwiChx{#rb(V~YwxDxo^ZPQ zEH7kIbJ}D+Rx`{$-#^NU_(X8NaopPaXBTkD3moO2mzpl+IbD*)X3qfK`mgru?Xcg# zZ+2~xb=GPyyy;Rl45*&DYh&qJO|w>V5j(#Uh|J5=T3O15+c-0b<`m4Gr80OvQKz$C zDe7NdwJ~~lu%`16_Rv+z)prTi;_=E^s+mlzY*Hpq$x4iN@?0oLMROEfP#kI#P|Uv? zp4*z${&#Wmu<@^3(}d{8W1*%ycWn`Wn58?b}8op5qy7f{4&^2aC>eQk= zs+Wq9f4;fYK;jR<;o!Gk{Rf{h9i+f1_i7nS84ydx*W60i|JbfzqIiB8pS9rCmb0KY zZKeA4Z_dNaQ?{%wakALXvi(G}b6mfLbE>4I|Hzsu$9$@~(e3Z%H&Zo-vTlbSuSyNN z1O3|ukpmY!zv-OAr6Wrd3-v1w7a#SKV_tKbL%-)0VD~co53Uv0D3ht05=?29SAEXw zqwevIH_O<#6AQtTij>+p^=iEODn+YOZU(GcapNY<)m$cUVexk)LG03kIV-in+xn2? z(Ib&!WkYF>$jZc~dB=hy9w;4gPO!i1bRur*S3)%3)MD4^cIGB)udR#`mE~Tr;v2)J z;~gTa!hD~nshNdq)Fv#ktz!H@STb){GHyVajZ1t}Yi?ga>Q7rKK7}5H6ZQ(jkucri zgTww@LOZ;|ghN{v!gw!U%&dOj+#qta3u=>OMKt(XQbaB8__48grX(d1bk~YaZQvX) zqY1cQ2naIRKI5XAQ-Gf4s$|Q?+UK(K!LtvhR=$l3`_L zZm&noJVwu!g$2HkgSGpud(pXSOV^IQo+Bs592JyQoJ0KTPtsPJB`M|b8D9g^T;Gzj z*Q$a*Uq{VI%(=%sVtQ)D;=|Obcns-pY*bt8$DQw{Prn-MXl~w{F}&seshpBECvD zg{I95$?I|{P9U#XCs4x>m+#OiKJe@aA6Sy3a0i~^p;CSRIEU> z85b&yAWTyHe3$Wc3L!=;zFp3#vs3PR9^-$1kCWdvUwcPsC-$C_N|bGBQV4M8!6rfzM-bRE46M zUpZY@`zJF8Gap|wYjtg{)Adz2)X-tt=6%eB+FLOeh81@D@iQ)AkIUQ?JuI|6h3D%< zje*+R2NFPb-~1p~%huVY{Obu8A{N3p&)6Y==W|0?*3*WzMU5mAqLub#CN8W&rY{~F zwn;<;t`id87Z*Gu7D6ykN5@2jWHi@eK#YWvgiLwwB4uwQgx?!YQmqdnmqA-Imk2VHKK)fcTWnWpoXp-)sw!hyF*;OoJdgeFtP9 zUpR-Z?{%uKZfGz})MU1)_PkZ^HEI{UU%B1Xy*CcezL;G*teLxe$nQS7VF+MQ5lgKz z*5>$FDh=1z9;)#ScbEtFvPEt8&Us%WlQv2=DpEQIMLxV>9i}mM9L{ z`GfjWaXti-sC@72D(-`2eq9!7&1+yrs7h5lyI^m8$%M)wpyX72amo4ayRJw5jp&f3 z8(*2qaKn{r8rL2`0+v`t3JNGC)-1O!GR%!EF*L-W8 zJv69BRjGQW^G) zj4_?1@BXCy6!Dn4A^7UL>k2G-HcI*~2ihN8^nQ7g=eTbG{}kdB`Iv})9}*VvyGOR6 zP`xk;3(3Z$c~l|eBrhuyXpjxiH}!wf8R7~5WaYI|HBeSf-)Fu*evWC79b(WtnV_4b z@2kj>4j1CnRvo^&Zv=notMUo|Wn?2`BJyYo$AO+^iJ6+^_4AfxK0!n$Je+b>2YS9R z1-|Dnm{~g=3iuBt*XJkS`k@caK9X*A8;N$3hIZZHblP{N-*h&hlp$!CBb`$J4T58g9EBx(o@!2`O5A`TU+?fw ze7HRkodjW7e{3mV3CgHU+M!&HqTh02a_|bn1_jbjBIqw#YOZ`Y= zl_-`EZVy#`JT!-D#8HK(2)>(}OKHf5Tgglvm)HK&kY5f#wahxBL@Cj|5z;TJHx+3m zkHhwRIl#QO0KHR*fF*4+zCbnhe#g6HABVr4pAY}aZ2~}@3ezYT!_D8!z4K|@e?v=N z`b?$NZYqCdUBD&Mr%KMN%G$0cT$80HnLy+NRWuoPLH}+he0~%?uE0P)_IR9{@e(N( zUad}k`U9-~pUKG$D~;eNPMiod!qjia$`^B*r7#sVcAK-&$z5_p0#`t~c?L!T?rMOy zj0?)z!q%uHJhUN;rFXu+AxURdP(>O2J7D4?*qD48ytudj`qf!oQ^dq4>#Y&>Q}lb< zpx{!-9zX6+G%3!{hL{lhuLV_<9?6-4RX~g!7Urwl9Uf_tk0>A1ge?5wo$E?GVW7Dg zdxKUla>vr}P;b@4L4Il*j=2T52Fam?yS85C%88lOE?#kJLnt1`TjQUX(Kb0~)@UHl zhcb_!9IN=*X~-Ty&MWJiwQ74$9CBo`g$1RBnLdqyMRmS>TqPX3l%+1{@I>^dHN4J* zJ29Im0=}}Kb%Q+CJvEYFMUlTXhX&~HKu__Il`Y+yyaEA}7lvEVpd|PjFs4BZ5yFT} z9LjqW5~)W7<6&HLtv8rs0e2PSF|IzB{nK5TxXIc#s-#*kx3IPfB2r2Tsz+BLPUkOG zlS*XM76KCwFH`BQO28%-M}2eloTSo%+Jl3@OHW5w)(`u6GF1?-gNv-lo%{y}umep0 z^!7D`U;5+7+}K*#Y>QpO0~tEFHT9<(;`6M}#a$cR)7&|FFJSq~u!gu2w_ae?!i~0FweZ4eG1X6`g~sEv{qEhU!(LL z4I$p{OKG(nd(aJdLkf@-VBa+Wi4?-<421qM01?_EJZi&&R%BfU=2unk+%m_{~;Tv<5bM~!SI;BWT=4=@Do8u_pand+&-Y(pj6vW!k(=%U{Q26 z@?3Lvh9ldXj4@j0ZvONlS;DD1_mP3t zQ_!!8j-uDJ*W$*+Gah>k-_wkxJJ)x?7~)r~_rDzum_TA-p;KR^Gl+0H;ebZXs#<-6 z+n{dPNaI}1c2zr%m_;Z6H4@MACmOuRX^=A@=os*9R`|O@trKuZ4f$)SjQ8;mH{8UW zm-I(g(6WeCA`~Uw%>9D%t-EqA&L2`qYSM0r9Vg{3p*=eGf6zUA?CsRRGa4abk zYoR`EHNEKm7`E-E=9NKPs=ewT*vBI__ycX4ebA_->o&w(5|=;XH7b$fO2&g_GbM$@ zwn7u@>gr8K7A(n%xuul+!aQZYk`uXWmHbHcXZ0$9kU(x2l+sf+`_CbJ_tfo~y3;Dm zq+o7iWj+)t3V1#}0C} z;KU4=HA9q*tVIv*!RlT5Nc+FQ$zRkivVr{5(PSRsQ$`RFaS-dcW7OZWVR3R!^uVrR zp;k^Z(~Ctt>&(`oCGkmidZcj3!lznPchX%F1RgVcYqiADN!~+(kntEp^|!EYupuLI z$0UAF6%+n^CET?HcMR%|nSr_E8HPwy9V$YM@yNv&7~wSdH;)C9X4ti1F8m{>F(T znYKmSBda;s#4Tfarpi13ZWycJ$Hm?g&^}^I%o8Cm3l($o_M$_O}Z;G<9O}9%rwAzWtvc15!07bMu zpRL2Zn?!?cInXb;7*A5qmV#{xslG4dkNnVQ} zBm{R4;~x+nAIxt-AI>!&KNZS_oz$zVDj@x_B%hRvzLKXy_huteWf}1iGWV)opJa_w zm@pGoA^!Ud_nawtTGBQE`2O8s7oc~u+3|3EV4|5NR0vuYktnn@V`e`+H=4)Zvr-c*lO zb0Z@T^NG@|xSrB%r~|s{d+-wGF<#x?HypL=jWJ`gGl(>gcahME1YmVD`OT15f|&|2?UPDVSGv`@QIAOqMF{^{+VFraS3FFg1-94ZwtDniVJO7LYm8iAYOEE0?x z59z@@pr&8M1}~fc_p^#juT4MG#xGoN56*oa3BYyn(*Q|&=JNV!;7}Rbq*-EAGly|& zfRbqtk7sTWRm(K72$h9GffU!dNvd4mnNH{hwO@d z_`WVG_PdW?QaZ{p@yG1ck3?9%phzYuk1)QA17|sPsW8e4^8To^Ao?$8+ zxC&#P$kWWhce<-OFC?=!<(s97O{C-{x`pa-BJ?C>dRPuRFh9em#5AoT{|!L3M3^9V zDAD2`<;Afs1t7?Owpb42(jp;EasH>k5Q;?iFTLH1I9p8}1ro|~mxaHQe+MRp)$R*E z$tw@aJl+nhq<0eKXDN0}v}T>~J^*|*U9a6Zi&7+`A!~?r&C$99HoBR;RKv4_nGW`7 zo}VGE#5{qX<{u+1eZwe$@!?U^0RedW!M{kY=h=M6F!KgwsFv|46@AE1=nlI$=TLdt zBwESeLIp|sr|k+#zavep6_GHThGR!h^mPZqV>qQX3qlcedFWAS#+XJ;8x#4`{B}i@ z41`~T&-yEz!NR)yJ!NAjc_K<*PT&J2M0zj#AhB0Hj*-qvQTg>!tde{Jp;CQibwr48 znBr~YgCrc{=&jwipc{*R&Xm>EQM%*S9=RD3tR6Jt$dbc1+{N^5(vKpwB^sJrBAH~A zTey}0tmpqy{ob8stZ0ir=26p(-Ad%|r+-o?*`VWV-KA=nqxxL?#rXW0Q+o^4Zfd z((T&?#8`ct-(d*cf^igi7=GFUMZSX37f#kI9-!Y>f@d&$o`xvvJUJh=8_>wgMhrQ&+ki9Is896;5-7PiN(?2m;NPPmUfT zR(b}1eu-~`iUkd}4W43%5WoBq2!{E91%`Ru)kxmX5zdv537S^1Z@hqCwWg|5E1IR$ zy~n$}%}VYNk%=7r}_|CiS{?6&&KXD;JuU)<_7gA2dK;&FdiC$O4O!7*)dU1Pk6mzn-QWKCl7?F0;;(9Y&t-eH4DX%ODp&sw#O&t6 z62m}ZwCKDo(fBDjWG38sJ!`jSHM=(dx{gO!;G&Y*z4uvy@T0GL0ED|zS8iLa<@)Yg zM})5Rj4tpImqv@QiA~*olaql`y@{hb9~Nq>CNTfe#)ANVw=UQD_tF7mZTo7$h}~l} z$BlP$5zJ>j9kuo0t6_Dx^*@eUTv~xE5bpTD<`<+y`WH@Jo^qBjC9%8w2qRiI`U1i*EL;%-SQS6grm(^#D#7 z$tEZ)-4rgBtWC>KAZg3sa8dPXZpXrSPB)4GF;R2TM5XnHYL1WhEK2C_Rg}ndS4t`& zr~Cx4>2x_J#Fv4X%+&m9EJjuA_Uvrxm4WG2JkmH#)9hU0*@{%PNE}eQeZuroIwbWS`#ywc)g- zE_HP`@c!zwL|LTU>|}bqElE!PuHyVIfF#KfTBWvhlQH!8^j*~36Bqx~QcqhmSAb87 zP^W;rk0fN~PH4hjFs`&hC7m%_65g&3cufn8>VBiaUKXx&d@!{ils({Y$?eTvG;VHO zuxcr!J)Dx{=VtC+8znz(C^S9P6|B;)*KM5KuJ~|jp-Z&fxNtsT>un3M#=P|UaSTjL zka1kaHf?Sus!OJEPtc`H|H`D*Ai3Y~pAqK6i+55Cpq5D3&KzoIavY3%ZPJ-QS`d~R zmf(PzuBa1B-Uy^498ltwIG2SnMpDcvS)?@}VTTq044=gK`&{^m()U-^MqR#U22B}j z+82a^a}I1JjYWdDK$4j1N%2p(unl9LqthGvsoRhXVe}zDM`2j@(jrb_)KTtW(09r0 zqz9=nd{TpR6@jCEYW7;j5%&whtq@H{9=2Nx1)57Ln-0xE`Y%1AN2`E)LTZ{)F2$Bw z8dENrLav$`!L{Qm61{0)%1ghzDzM97uYY|QT0(ZhzeU&(|> zp8%)TRcN>`^sT>KuOaVWd5E!}JA!P1+-D+PS6)|m`5jj~`MhKh`Yn;lL$!r0(!DRN zhRxUD1+prT6_*YzXODNwc$oQksL&Nnp}`zTePfc%62xWLXpZ?Ek@#iUbpm0w>!KoS zMj{@uippQ}h3Nm@hIQdF^BKdJ+he@}GPm$#q6N_o834Vi5Zgo_Yg>Rp5(LGjQzL8?;8>|<#S*)<@0{zn2e zh5I+Z{TsR_g;0fHuv;aCEJ=Thby5f$6a+q^l(U~@mzbv@yOAhg-qg!<^UVIZ!``KW;r3TW?~#(^R_rZh zKZjRqc1~v62@uU}ae3*5-T?neh;5;W46a325dYb+)e}*zbuqUMcpGWA4Jb1#SVo%F z%AN75+${8o^8|Lw)-C`aY(u1K)tGNj?sqHoK-|w4hq$H0m9^EC%aspAsrm{wn4FqG zii+iEc#g5}ifgVS$!)b#C7~+M#9_>UmYGRTpz>)6cEt(^eA$J=A-Nl^wYZGOu#(Ex z_PW8r_LgpQp?|-ne8^zWG%|Z8+vz`4O+*=;#=3_p%Dx4;rqXn!`G!Qo#j~+`^~gn=;SeCpn(cl+&IjYo`?oGp_g;Ze#y_qA9qK6g|(&?@MjPGZ-4fblB?#JCo;V zPNKdG#VdoXTPh--C9s=2eLzptl>%l9kA|Ip#`0< zT7%^%zL&kCTFmHO%VsCRkHv5AoaIJZDx#2 z+V?`q_xg18)PAEmhniyk8ExhEZ?&Cjy4S18DuH{}eV6e88oEgahTp_zYLyG{7d;{_ zk3R(aUf6Q5_`dMmYaOLUdiPViOHAu)6j8O#n&E-?1!^TPm$E-L_SIL21e~}`UoGi= zsoyy-wwC{TIm^Dww$SaPtq#p#rQR4~w#p4XcFo*Kh9UgL((lw;TzA z^$=A2es#sf@X6^e6}?>4Rj}DKhF|;i;#pNH80S&cFq}7r-)MXKm4O_SJ+VX&+i4FB zaW>Pd-C@h9)^b)teyY~`T)b4RlVn;io+%$`H-I0{n((B3R%3;E^81K~n-$bs|?7H*&*H^S2`-O!#pm4@@E-za5D$^P*sS@bm&nE*ikV zKB9s7oY+0}*c*XYmkoMg{Y;&h#tBS*NyZ6dQojYF+t!(&-HRwg4K)<=YF3#HTR0jf z;2rRj&E3$;Qc2t1px%)Qjst>`J3oZb-~utK)X+bp)k9=UTuAF?gl%pQ(?k|#mjA1{|g<8T1E3(j%fO0bjuQ^@JcZ@--Wg_g3(zAoKC`{aL>Xcc~sBqwtFBX|#GpC{M~yTTcu30M#exWcXrczu`deLTIV z2HOYuXcIEuZ16sv-b)5M^_TF&ZFb4&RrxKS)*D_P0r_jymtGWaJrirErJ@Z zr()5&X~^#WC|hCIR)?xOTm#NA(G`pT7^>z@YY8+&Id(RPqVawjxq$?8#J^)T%$(0L zwS*ya5p9la5l}9xqzL5(p5S7(tw7+cJUq@uk;+RM})qA3@b5f7j%^> z%U2x|Sht@NETh2Mq24*QPC?;rVYG*Fk}Ru&vGuNA@831_4r?OABcNpf8@cC}zv3j1B8r!k+YD@HMP zDZ#fQt`*3{b@ca)lYK+;1)&-fBN=T~0!VL)rc%|6LUd5bheabB`}Lh`v?j5qCm-N# zf5WfnXAE`&m3pUXG+RH$8f$Iq9L_~LvOWHZBupBi-E1Qs)t^kmt~gSCQW(FX%m$*kn(5(6qtx+)nkukCb^)V3 z$TF#SavW|{!2*{NGQ{Tl1lY5^^SnI;jo{v1I*27?{%VjbFdQYMe4{~wP;nmZba(ibVfYEI21=ZpZzgU_-a(U}#t0}XfX=A2i9OE{R zGcgYkLz+6P*Zu9PLunYKW1^)!(l$Z*`i@(rr<#d`QpPse$Ux{|R^|61-A^zwjKR+# zbb*SxxP^<}x^VnjXueb4?1|0tnvWrOs(9BDud$CoVKZcyIBMaCql`h1G^FpTs%X7! zB-xpqlnT7eJJWO%|EP5=d{!B>ViQ{B%Qul8W!#3TptNK%~j-=XdB6 z8z~Vpc2CcFu9&As&fEz$PU)y#EanP~olKT*?HY7GUR+*g%uyFdw)&~mb*<#(9y1S1 z^Rx{~%GS!CuLGT&oSyido;IS*A_k~a8T>?^<{DB+;*TznJ`ixp*Ha2rQOY+=t?4cZ z>7oyZaBfvDLRFt-8(n=HY7H;WRUa2~0v<@Kl%i`xp!(7ej-cODvE4B}wV*0#7T}3; z5EBbQU-eI%N(mIJ-OBu$@2LD$Kl2?*oVJ(CYt@hBH^DV5)zdmy)$n9AHUsiDkCkY{ zSvjhc*i~s7&+tGYh;|4qP6Hu?PH=WVv8Gpg1AkZ=GiWy&hr9f{O>};`c}`uJFV1So zQq?HIh;bJBB^Y?@bz(m|9~u;xEkywaP88F|iPCTj5dc|`Z4X>=*!^>%)X762_WI+G zbSfkUBu;a;xKi`Xx^!p$Pt?fRe$xMr^PH&05dt!}nQ!=7 zBvkYnOKH~Y9%w%GT(SpwLXCbix5*Fp?~(375n&a$8*&>l9Njp!d3dY&k#0?Cjd2^9 zy{aPm#|UN3yQFCSt`&ez1UnAfrE@%orM7IN)*xBl*4>X4IbcqSmF7+8BZaKjz34Ay zT5v9k6I%B{Pds#lqmN*vY@&{S$!lptT7S9wJvCfMkSD;|Wye`e&w23) zR1&(}ieGU!hH+}h97v8l4zTrIum5acSM0eqnomGJh0(h1;93Te@?@i5eQk6Sc3Xt* zM)e#X3E&$5u`5^1pQ(HYp8i~&C^*e@?r#fTbbk!Me1$4$4G_m|A-@0Pzy}!y;v{GX z{zzN|`W+*8ymu^rj$EZ7BgZOHJE48a8s+CU(B?L<5j@uLxAAn04cRtJ3dml+)jVYz zJX}eJZpANOKEVK05;qfG_rUldI>@{ByRUnmc37`h^X~;Ruuw=-usU`{V4S2k$gA5s zGKgUXA7+UWI)Qu-jGvntk%7~CfgsOb=q6lSsMk%Vf!ceiHK6;@^XOF%Jo2u0WfmH^H-R~byxSUs?@rv0Dd5D zj1x?vWw(e2f>Uqa8^oi)1#{O%@6rtiLBbAKs~8jhvX+*=lGB&5;itlrLgJ^Ym6j}q zDusd3+A_(-rrs~yn+Oz+iD7ie!bTjX@e)lCRrNjYAvO(KcUk@n6jcj*A&C}KU8lfY__a5`Wdzt@6Ev~zPhv!>8 zgaK_4)HoFq$KXGRBd@^?!0lxI7XVj4sJ}nHyJ0t-ySJoG@G;O{;Wqn&0ci$)&*$u> z4+;-%`MfDV2Jh0(OmEl)wIk$P+-6r-1DgIA_Wi5wn=b4vzu4dVgPwL`f9SuhoBwQ> z|K#`Z;ih-T&les0?PRqM*nFzJ)xUeky0wctv~2N2V*Y%+L9Bnp@vgHEeV@w{7cP2d zulJfiWaq7~)HYf2;g7?Sf2*yxka4BU&tt`lk9gJV|0s@D?HtY)|0e$r{f<&M^@O_W zcW-q)PuiC3EI%9U`a@qgAhT)G*zomNGSdHeF3qcWcb$Pv7~$^lHR*kfmz94Ptslq+ zi*)h6>VH7B#*ZT{2D|QzICcW;%M7%xBTsucD{ z+^jkTAGoH3+vL(IR!o>7Tv*tVcdwQB)8Pf_o)Y+<{ZJSBf7tKdX$r+WTWYJp>`?%UWMfX~UD^lv+N*9rZJ@1~7}U-#ej2H+qK{lP~x z6JSr_R=9Jcp3iVj)K70e+>E-?X7U>s|L6^dtao?AwZjLvG1!I4NjNy01Ts z#6`6m5{gtP$g2;rr6X+vtA%HH$Mw;L+KnGZUB~Sy38$w*9g701v>gA$>tV~>hlEt< zhLPW|@{KmZggSo2jr4`|{fK_9@F{w)zXMY&@8K;RR738Cq`vom9LC<(^~dfIKijP)F@Jp^n1JIxPvtIkK1|P0Qy#YgquoLT6zT6-z(l=FWDmGKNAmEMS-3>IC zi_9NuQp%Rk zB)%IRd;6?#PngWCyc22}riFyt?hfK#^gr;Q-}U$==^LY-ogZZ3#i*!M_yDv_)*gb! zhnPn`@(^|r)RwMUJ0G2zarln=TBE^_@MPD9G3xgQo$D?tdDQH&WrPR=ZVAQJGVt-y z7lE%bD1D)C!HN$2{*BtbH^Kpg+rNvg4*lwNXLR*Wlh0dt61aJ3cGw;K5o?W+@|{TR z__2hIyhfXD+dA<6m8pK)*J7IZa({1}e|`rbAXo4EJ+P$0iRpZQr%OCY-<`NYR2XQY z;tSFd8EQ&%_#=F%$6ZJsrGr|Qw{_JM-bbBBtZ?3Lh5Y#t0+L+OA2&V!2cL`P8xYI4 zw2XI z^H6-N6>ZmTe-V840c^u?BvU0^LDtU2f#Qz5JoU=j(#T8R{ecXiW6 z?Kbr9Aizdnh|U2Vg8iS37hY<$!<1cwnWftgcZ+DgUIZ)(wh;@r58gUZA-i7Ft2GSn zjqWgNBKt@8{i0v1>kaL`-<}5eO`p4gU{^0%af>HTt{h1*%2^+th zjThVCn-|ow{z7uE{O)&~@semj7z*sy-=zNL72fqQI_G>P-Mb6<##+O8qdy#Xhc#H2 zT9e(1@7`i<#qSLpY#7zrC=m~vvEW7-FQe`~-9N1!1g$LD01ZZ90sm$zWO5K4`267% zzY3)|@D6JYg9@f=FBYsKGQV^eKCE+q+Xga@{~BuxOi$pChwz@-xlP*9g~j#xm&F@Z zXWb>3s)#Br-G#PSZ=U)WNVCBD*B^ZPnl^+hLk4?0q{pglBl}*|J>vT=*zIbHYz_|r z5#zw3^hi@LBRR%ru0kkoBjriV4DDcB$#vPT5XaiUQ6V}A6;C0{{I>Z5j-wF zN6M48lTY5_B1(PTIS-$F>gvx)GSdPXd#w3SV(ZW1r_0%bbKC;soE6!Ni?o}(NZ*Z% z^zFDPvLDUu^LP!e%Xf_QhIZ5STC5xx_)a^q{u!$464ndexsEns&Ble)jk$h8+gvyK zH7e=Q3-PYN5Bu+*l;Vu3HkhK?V71FyyMHdVXT#g9!Yzo~4qda8-S(>{YVm6ZfB5*v z8~o!n{&9(av{{%da@He$Z;#YE))CJ{daG4W7)Gn0R!sJ^Vo0)u*V_TDN zvNu>dKH>$Oh2WL=*DJ&l;ZD=W-o734dq44$XU;CXT5PS%_Z?zLvu;g1%xd~D(A z@k<8xEA|*H*1@KGGp}jSLKkndA)A145!;?FQ*A1}k?$y2DG`ET5kkRxX7de%uH((a zF2tys-i5r15RL_cZ4F~DxCZj#ZN;{=7&GV*YYpR{(y2XzCyk#BWq4l$_-nRbMNHF+ zSINk7z-25ETsh7_>sK6FrUw7`%UUZOe`1T(c*0xc~ZL|O4IHQdJIz6r-MPiVKF;i{@!59oGWr#eOn z>l=R|j`+FK=<;^qU42(-Aig8m=d)>`V!r{Xs6JdcL?%T(VrRTCGgawIK$rcmUwvhK z0H1UjYR%e?tV;5^a`TJqKV#gLD4h0b-5s=gG}{- zdAMGXYgO2q9z2)Ynk<6xW{-@~6{edUl(TZzc5a_(pX^wk(3Vx6VW={d2NUkpd_{-( z-eUC(|Gr=CsCSC&;^B6*c8(UCn;@Q!<4>0%@mUE$yck9&A~GwWlI!PECAS)?c#u4~ z^1-PVQN;53>qzcXaZPtsKm6XxFu_Bt9E0<-jd*v*EyMKDdJ{a&SGz5VxK1q1D}F4X zMG;)eq?6{eIq0Qr%FiPYzh=p3UUV=CAjCc8APi#^^MjOYJyu>7u1h+cEl~!!F3J+Z z5gJ4fqPg{EwH`lUk0QiQ7&ny_&H6Y3cR)KJj@snG^*uaxYV9nfXxC%!gU=|-u|vou zneqrGm;EucF`QVqk0#TNd6JPjw&k~mt|Ny)Ad-6@{lS}?-uD~=#aY1_T2&A%s()Li z3GB>x{iPQQ>CgEmzqdH_iD~2b=FL+e(vbN<1-Ukcr74~LPIBC9-k?P?ZfExXVk7h? zrPIP#ryb^;Ht3v^IFKsrFmJVs);pf6@AU<7zlm|E%g|BX0gnWYJIKy;el4;#{65mM zyHqYo&-}`2LWb+oVy)TKPzM%$b&hol3xEac5~0>= zltM@z{V7pD1)pHsCYaWeb=nv}cN8eHp3W0;@6ZI{O$hIvJW*csR)7(3w&9<4A{QW2 z_Ft>N{f+wD-+Ce-Cs2d@>EE67IZLkVuLFo%YsL8yVgvF)pW4T%t&Y=*@Y`x;9di0? zIH`|@Q;|R`XQ448m8^kF2XKT5V0yw<_kxV>Hc&}xb<@lIgL*%pZMt;i+`1$7!{`hR z9Y)`UzzeqGJJ&u%d(tJqF)OD_c->pe5^_1)Qr+9(Vuju&h#ohq=NN)g1nkui`n%pf z0MHtnAD*~YyZK$p3yJnMb?dABw!z87q)JfG@7sc){JqfswA|RRWcjEDLti zwXXxRcJQxwk)9r?n&+?8H2*Emqm?PtE<^-Yq*~mN)#7IRl-&UZwD?DyKpl{I2BOlYsTG9l=rcS3-iWN7l_b!Ww`amSimL zhax9wta4MtWQB2A7A(+e2EWwtvi3jwl@_I&rj+k zTzhhPu^=?Ji$$sB5M)_~Yr(@$-8g&_{|tdNODCEagzhyGVYBV$@P4&8nr`FBFUABC zbTv!3k$XMHJ{ax`1Het^o}4eqFA}sn$GcA;F{drb1!UoT^UNb{%nxLaz#wHn`#BWE==>5@)xzC7s(Hs7V5(d~`M8EXaF0~j z^=-Exy@B&AA!)SD=WNKRi&Kcdc8g6W8#W7_G>{PohFDk{OkueezIOOzkE>fiq>*Kb zTw(Q7K?9RTTu(fp)0$*ssAMGwhx$C(F41pgblSD^a|{ggdhO3oIiYa=Q}CGue>zS( z&U#(W8%pqiAt(#HbG(WX=X$fvN|Mu@Fhdllp?MC25J$nRcLaduJ%)!4Ds9wpsRTfa zN@T@*5Rp4gk1MgXsiW+8PAM^#sTjWQ2vrNcS+FCWC7Tz*{3LnuozWXUlL85@T_3Xx z9wx}jG{n}kl{!f0aF9gP-7Onw(RgcEN_AETS^ujJw9|0N8n)=Ec0i4C+L{s z)=(o>Eu#S9!;!Zg(hofn$i=SMG1X&o@WyAU?cC|X%HU#~MCO9^Arc9_IRA%z)8obS z7)LmgKY4gVAW&d~n2Pfh18@h6^LObi&NXW5up2J-LWU)HEz=QXFA|)4e`e%;5lnR4 zVsN@b#0}(kl!ex0$y0D+fhf-I%zafj+1r%a-uk6yCQI$uDg%zl20^sjEJp$?@+%Un zIxM58lw@|T^pRLld0MbulVA#_>k9iSu*nLpxtzkL`Sqa&=Jg)da=P!KbHL{ln_g5U zN@Qqql z#Sp*aKP=ZcK$Cko^yPw~R$I@5N$@=11~L4EB`SCa%4kxV7=5_iW)r9(7Ke_JOCW46 z4xYNA_OgQmq(svi)h7HueDLqCe1q2R(9#TXi_90k-$xEo>Q7idj`_DG@}RSMsL`LN zJZGRdQv{|IGDE$?Q`b52uJAoZg&%3`w2UjP5={fZXL-pD&(@d`@~a6RXM zf(mCxQiDS`@Ub|Hpt;}^gq`3h)Xw~bDRQjEWZ{RQw_6gB6X9slYBBY=voZOswJl^| zQSvIuI^?90G?2dz6$iI7e}FZuot2EfoQJSV3gj;`;;N2MfgO9EJl=Z}ks$I~FKg%D zytsJfWrD9xT>tb`DKZ*A)PqIoCO8Ek(P-=xgWaupU#W>iM_%D*=|p!9uV!g5sD8-NV-lDVh9|rwqncjrqiT(oT@<6zI|MPkDW)Fo*4dqTQPJ zzQYBV^r>M4e|tDWysGhKr?IJ?a4JEkzsg6gwj`xYdWXv%x<#FjyK?DBOe-H~%!`J) zDSIJuGa84_TiZS1m&|i=7j2Kx?Tw^8;3_9KECY=L3RXP}uYBqk4Atcnm)OftW4y_Q@l){`atYw0@MlZbxkyq5QUs-%KxyyJmj& zNMq3wZlm!g(t##vi+}FT;7*aPTT!sY_wVE&%&BvCET>)dqT-uc(;b!XVU z!Zc<)+r#Mk)JedLP)D69>L^LtpDY1ptM@0*_}P9qewsB@K-Q(Gd)UugJ3r~U-Ss;8 z0i=}$=1zoCd^n_-N}Yo)Hy-^sA%8U-O`63qAqWKKlk(K2t@V{g0~ZuzEoVm zIg0@`uLXjJrg_cA+vvoPq>8mKQi%%A^%(nx2?mo~{ilHiPjTTg53Z;xS=^4to0|N~ zRG7FeoCf#1hq9?nf~X6+vkgSM#T$Kl#Nxvn;JmEa!jYgxSr`SqWJxn^4Ahs^;GH=I z${fyhvbIwPu%!6F{k6B= ztUxY9_@<|om{GrdT*1*_j>CWg{Whq~=kaFR9b_a6{N9KS$dMO5<0cS%QM5fxB8~Er ze3FU6(>E{9PP+Ca;n43GmXfz?yUn*WvyEao%bAdNM!}ZI?Fq*qD`%tTuNJzs3XwV8 zeVYy0got@K#FI0Cc(&u0+E`NcC}E&G*#txd&#R)oO{<#zxHV0R;yuU=L9@HS;o;9E z%9;HXd@h3UKWB{w^(=7YxR^hJkpa&J;3XgoL1uh}ug*3>P>lVM6BoSlX0R>m)lrg& zH1)n{_tB-|nz}qfD%E5{$!w!GM!TlSHc#6T(l*Iif-D>$%s5!Mz74%qgmlcv8gkcr zbJKY{^mMBB$ibPCate?rCGA(QIF+PKl9X};kw;|vxS211f&~NzIx55)RBdi-gX_a+ zlg(LG!|^uvcptI67UB&_8B-0PCeNoJUUTD|}PxL}$^agfyab zn5Kak3ywR8_MF&7)$kBDj&h=DGJ_`jS7q4hAd2jgP^+)!)J1S5nXo@nyr8irxLA_^9 z!Zyk%o<*|j>636$yZ&FH-9$5z;X++#<6JX`D2s`EwY)L1>4RhQBMa{D))HWbTtPn zP?ysWTj}(d8ut}@)4lN%ixd-#sP?eJ3#ll&>yl4WF2Q6W`LqwttwvxpVN-LUtLL07 z{j?QF)}&3>G;^tqOJ*JT6HOk2$xrEB!j%o^{FC2Xl)ka%M%6kFJ}G=1OK|B)2^QB` zo$=Wdc&v<}E0`!pf!L=1ic`-1NxHn1d&_lCv=k6ZC&4_d8!N}Mv=0woZRw;%+2d8} z8H?Ir65$7q+L!}Ik8`Ja8tO}iMksi5A(RNuP(00^*9gL&c}8q;gp7*!NhU*hAVMj( ztm)?$Vx$4WX~TQ?G3S`RWsg+*daQe!;Ca5B=HWmyQlT-@v(98D<_PC+BAjzXl48hv ztgoQ9P7V`!BkH^oj$yt9fg~KmUd*!6{ z;KmO9+b+B6-N7w(x_AC{+>Jh4j32fvFj;OgQc>(CSY|C)hO*b@S@Fiqf{yN4>>4vU z(7AT;4Btpo!sD^qi4jI$605ovf4n*Aqy+bcG%oTY7DFsZPQ(H7e!cXFy9x89QOLsi z@|4#ymFoTY$<=t?(q)l8n0iA@k^W-G9<(SFP`+ZmD2nc$BJbv8o@~A$231}gm~Ddb z)SE<~Vsg>tbJ%~f&OMwj9 zudmC!$2PgUT7$pRPW}=kC@)@>UGl$j%~V@v>Y)KUAUJ-GR)ymr>!!9!HCd8ni^tSL8N=n4k&W*xJgA<#Fo&nQ zEJO+Wx&RHTIbh_3b9iKT?+JK@`z8vN;(W>BHM3J*fEKep2qN;9dEDPzZGQ9HBIuVh zIe)EYjh`&byA?NK9XKB?3ih*ku$Z#v`80Yw&R1Ztu~3PegOdeORRN>#Rhi}o^XgWR z*(g$zy_8s+JZ~|l^W5%iqx$W}g|Iyg<3?A2<>6!0kS9Va_0K3JaQ<`7(|DBM&-3J5 z8DXt^jRS>clly4y_bJe;7X5%yUQu-bJ-{3y?pN1~afko^u5 zxShM}&fuE$Z#u|T{=-P=z`yw$oQi?eB^;uj-BIv$7L@p;VW!C$L-a`_Xl%*>mZqa0 zul3)RMf07DmH`d~KIL9)Sy-;6I*$90<#UGo!-F~-^rW&+L{23iqvBsYZnL1bHKm?Q zU^~Z=DvwvDq*1F;sAzYfdAO+~!%~vCd8n;FQw~=irQzW_;N+`l&)?y-n~?^XU+JSvvG}f_IWz~TovjSx2>U8eIl^es9?KY5}ZSS7xW(P~y@hUAI5ixwl3W9&_8dndLBP6KdMT%t`;I3i2-Hw{;qj+lN={`2kY`A)qqD(Ql>+xBNG6R!r`H?+N zaVy=2+PU|$ZJ^Z^T)ADNPwH3D9@JC0@2cr5o%@2*#B%gfvt>iy40_j%>Kx;1TCj`2?~q1Hi$(IRl>V2>Q20vGY;^8^tQy!|7!5pmM5tf%DY%fVB2w%VjTu=9 zYHUxXmGfrnUG%&y(4Aiw-TBD}Rm-e`bS7AtJjb zEy2H8t^IkwKS|-nsio+BZiw<1`BGHW3pD*A@_6!Tti6YbAy1oq*kZ1c;%7(&KOmyx zssQ!>S&{Jo1>RFH@SaA2_cRNKNy*H>>sd0YiF_d7UKg$$Q$$c1re9&K9a}Fpc)+K4_&d<~1|OhRkm{7qrbF z_I$u>4rAr@(qrB2EoB353Dg1CCOYT94ka(uu*fesjHExYE=zEhU;#@`or|I`mDhvU z2`I~<8VxR!jRsrZX+WcRng+C^PWOHo98!bQ1e7r*Y4S%kbgPC}3^ABR=Y6Oakyg!) zV~SN{;%PXtM5dm%D>rEv)z8zt1#qOrXEG0Kf5iIeL*W?v^LR#`M$GAIdM-vdrZGVY zY^tP3(Q=#bP4CGeup|ukKk@cPS?3BHZ2Cf9iV6_Pv*f3qVp|%+O%n2Zoy%-qJ!Fj$YWbl|p?IfAz*8#{@zjch zJhdV*Pp!3Q0!-r@X%t$iBGFN;NO)AcJmqAWg~U1KXDl)v0@Q%uiL25JrlZ^xW7MyM zxR2PqYiYAAYy$bLs28(>PZ~{lRx44FHx)|H6wy}oBHF56L|fI1q-g5rp5&e73n%7@ zWV13og|Kv)-B&g)6MXXm%dCe7)alcz4~@{Epl!AZh)-NAgBf#z z4?P;ifsM%IZ9V)T_UmS9Jo{&{C9>t2@Eo$W`bq}$d2lJI-LNt1tv~R7HmvIro$MzM zb}|`fzsjbHk%OulS*Uf|b*v>l(#VLP0-l1L&*1KO0xy>}?3MR(oPYNa@CGZsoPty1 z*M|YBJ7exni85Zpo?TNg;%v%*^OEL!@bOR{9dAmv*6VVz2hU1Od17(gJx$>xZ6hjEqQH);wXj2tn)|9Z?*<`VTJBva# z-%hvjgWQ3#cnW+XQ2}RiS|D%SCpSY>QPR~ptQc0e7o_(V#rZ{&?7#WAfG=7PA+$>| z42u@<3~tSB6s)U~wOCc*HcO6u_;Wf|$^KgKCgRaIzrg6M7p38!iNU?UlBIO8FPKOB z1nco)Fo*Q4PdKH=Ly&jeDFNL*E#%;(2U1@|U$z!^UEv?s_=nHKFfRgY85fWb8h>)X zxPwMd3_>MSEL1f@1G{vGm$<083?4r5cks^Ls>qvj4z@||W?7(#lQJL`XL6~E*89bw zRb2tge6?6;l9|-^XEP}^cOfp;9hj0`pexiU#zO}Ol6~VcnWQf+C~c9_#GKTY&j=>O z@oc<}&YMX(q5`>g%U!utfhc@O>IAXfDI-Q|4Gb0aI5EG7(`0!iyDxb~;!cRvo-Pnh zjla<`bO$+MUoi<=xk<*^}?E*;S* z#qB9#*t?n8_Bx|Ctlz_==78vukqM2TWjS>YN$*vQuc&(Qa?F{E>h7Kcd(yQw=t;|F*(L9$Zy4(5r1iKVXs)Ti|)h|w2FPu*lsN2e^muVRa z5%w@WdCE7rSWhuqK;vu!KiZ;KxS|rl~fRS_taf(6>DxZ@1QG_~tXzm4!b~Pn;pd zc0RK68)wR|&CIQnP|U@VvHHUIPRpuU;M$}ig3HY$79)u-bCS7%z&^^=DeV%sCYw`_ zEYJC;;5ZhXwQeMH(#W!!X=GU^e8_5bA$LTKjY2b8*N&mB=AV4YziOaz?n9M^`n79ag|DQ-FU7X;_hI!+HeHfuSw&<)ovO1xEpYcQTHX`Zr(F*w@mM7<>bMWg^Ms< zIpiY4C?Yn@C1erkkUR88sRk z9c^Vxs;QGz;g=#wc(Q)9;wFW6C)j(=bvDw1$=SwOmM>!=cQRY%@v8TR}Pu|!{G3EEOd|@_@{)EsmZrIr~MRQ#sw)>Jbdcn}{%YQ^{ zhKs`W!2zfuQfM$WH1kB4kp@XPGNHt%e_>(c&LyqO>M7XF7OQ9MqKE$nV9g3rlvwpQIrx(7aF+%?qyK zSH?Jnl0HADHNae?z__kvdjMtoBQ{WzuTFEXc-!AQhRodC$#^*{yXc}lOfPe4Ndk?Y zslUO(2*dKvbp8OhQaj5A_vEn!(iDJn0V>U*rE$uRGte_6Wu4)hTlQw)`|QKrwLiG| zkx;*7$LIdF6X%y1rF)<%U{AWMd-jI%DmTU4F}mLSnMV>*$;Fot-DmX8}N3Y6wcpFCx_3VjAm z-z)A-;LxEB=*`_4(>=4+EQXZYE?Z^_ZnL%GuPG;H@T&6`CQfww_Q4fW6+r&eA z2f^Xzx{|xlw(qqpNcSvWBI4Rq_01fxCP;<^7MJKqjv?RT;wPN-BQBdn3v1{NAdGmQ z7MolB^EGEs%Q|=0Y~T<5QMO7T6%C#n_|5ou+LY|WNnt}HXgu^~k3euEZdb}wqCdDG zJyovH_~+oKI=6X&iL=TRNw*`d<&(D{p8@`u&QXHL3u(f*n_JYRe_h;dP_4q*qeB!% zm=HHo`LFK(2)k5TbzMxx>+xhx1lt%1eYoq~bl=|j*X*iu*SqUpb#Aa~pPf9_W$mzB z*$J{9c7y($O}$>(Mf-D2Yu0lB9A;!PGp5sOQMjtM<_FHoS8mI#abv|YOzEwSrr5mh z47*n(GWK*vPA5X716i2Ly1-QChw@kT3KbGKI^*t$@!r8E-cz?+ARg03pEJSjY_{!u zvAXuj@*2s`p2fp)boO8p*JXJ^sJ{kE)kvWBrhb!CR;XW95=j+lzP(Um!rEDlF-I6v zAW8MwxuB*m*`HP*Ux@3n_+B!n+Z{ZZRlRiiGsim`%CASPo)!6=v>7=dqqt;4qP+GH zu0dT_;d+r4VJLEfn)jsU{@#j>B<==J&g|CuOjFAAW%``mskS}C*LDK7EV9)ZneVI% zUh*@%n-D7XJEHu7A3tGYx<6vq>)uEx`a~&+_%a3aQpzu*yo{Qff6sU`LUuB#0jQ;G3OBU`t0gmuY2Y5>tSLqNjt~+e`^i- zJO0DN%mHaJfmuY<1-){2&S%5xQ-*7`=*Xc9&|R)~QCHI8;I_y0*wo}r46h*VDhD{6 z?t0bFVt88!m!FfjJQxm@&XP*r}x4n_WfJy4A2?clOx&Wd2lSY(tl1Dq{?LSQcPgh;%mg;IM z)%Bivoxz*#%?%sA@AmutwYS=V_c;^Xz0V*}_xpk96rWdin3K{$V?;X~{ni)UREVR& zrXBjB9GJFTMGSrOA_aQZD4j)XQZ+8-l}Mg!3H80VJ1nY@b;@`w#{+^-Q2-}MJ=595 zNO?(0v7)JfGsVMI!z$o(71GTif8i{ehX;>BmB&K7$BQSVL5}kbCCG8Q3G9sfd|gn( z^EQZ1dwwyA6`%0HIbeIkcPxwiz2xFOd4jqm#a$r?PFeE?;&WMVr8-I7nU5GLESCnK z)~jW(1c^-8!qhZaO?x;C4cuS_ywZ9TCwLsZq@JK_swN5-3X(mbxluTsLJinF*}zew zJ4kan4AO%VDbw=v1T3L?O^7JAp6=2O(tf4xT$Tf!Xfp0}#4k0*icxkqi~p+*-&;fG zG*Igz6HzWWi{T9w@s9C8xcr0KMy`ra0p}Z+p&pxgQMg`?L&09nqiAF7#wmvwggAZ2 zJX@_42K5WRy%#y~V4hP@BBFVp62JYWx6e?AEAh+@k}gr3fhGd)2@e18no1aN*zheI zcEK91mB4O^Yj;T#a&Y3}(tx$`5q~zSjrVLNhueQ;ywwHD{^}KuuM2+i;QUPIvl&F} z;r%9BJx_{<9k#jA;*QfMDk97coSSE`r!>sKf)pL7Pn^EyvdGkzx@_}nw!P;GY-4y| zp;x*mU7jL?#+z!;_$4nB(+D(>CXl3`g3tUk9NaO|crQ-WdEvV9J5E_wxgF2wvpnqL z$0Gu4qJ`3!l7jit_cCFcO5jDev`WmO%4D&FGsdUgoUo$GB>zaOGAL&%SpldWeT%~Z z+?Tood!|W^aI9|dGvCIh$;#jD=hZuEXX+EHIDdrVop^lD(Nlr_YLSrrUrm)5vy6{O zhVbnp-1fJ-dk7+T->$ZkZ}E2ib{Z_d4eEbOPdx)?0RFL^hu>~DlW#*_7TK(J7+Zf! zV-v;C#Q4O`Kbx%A@yJ^QDP~xSTA^W>HOcB-FD+oirLy6z$3oJ(F>G<@J#!^|0d>B&SRw`e@nzyp6?FStr&)Z2m%y3jw`y5YNU28eE zA}wnQ{Aq)`v$kQ(G?eqZ;y|;@ zm=i6}O(y2E2FvjE&V{Q7(qqiWQ8lNuT93?CrTqG_mTH8}pqBabx5HwwsA&|7>ZPki;4HB> z+;J)wJ0F`e$pNuG@Qj=$sZ?~$FpNftjlgvx&LYexPaZd($#M<9C+KBer=>c@^Q+ty zw#C22gD6VWL)GdYV>o;kb?f1(|CS0-PC(8$3`ro<>0hxAcUQeTI3k_yoqwG}3?PI} zwbh-jd^vgw##{Eo?afDAi<>#MOp7b4wB9eq0GyUrPqdJhpb=2ayG2uBDjiX#H&im~ z#6!J#9XXvL!3BLU`@JOZxh)W1wBx3rEa#5N9Zh?32YERh{IxU^4Iq5Q}egy5Atzi&7uBLnUOg$BI(Ii`ob=WIZn&>+- z6}&+NQzFxqPAXWD*FZ<1)>+tp4_8v6@+H&pvIO_a@5 zoI+P~weXS%-rlShaS&*AHmIU_eucFywMNTxJ@3KIzBaS&g7IqcA{cK$c;GRX!2|JZ z64VXZ7>WJgi^Fd1;dQWTdk4VJM|3zae#TE9VQ>za4Bg~E=3L}Snk4Kndjl?N&`I|X0`yQF#D8^;bOiEYeh=z zNLz69TT@4LUX+?_t?RwVZ{qU=n->qkk_NOh1iC!c@aaJjld;|it-Bs?#^56a8^q`P zv1MG~fBnZftkfLLS)435$sk6I%eqzspMvfy1DsfuuFzyY97grJi+hHR%eP5T4m$3X z7$C=Bjn940_Fy=gQfIm0Oy(PVK;ZmkP23+^QuLN^Bf4goE})NvQ$_1`3rOsut-*zcOC;sxFjQ0qFImauP2+Ix7*_bKb>WfJLFs>MakJ`UxC=kGCboqha8F zHQqHlE1cbIcGb){^9`1u_SD9;3181Ses%x(9`XK_N-d^?jq!HD+>|zT#S*a!3cF9x z7I#J+zp+0Vy>=4abth>QDgXQ(^K2<8&qJt1)EPYKRrid8@D2|p5l%si`vbgZSv%F5 zGbK-S_FS0+nkZxbOa|t-#i|Skm$_(r22#D5Xg!|u`4HW?-=fB2l<|6-u+khO4Z3p} zpz|q0_jq{+^FH@Iz4dg*z=8HG$N$S?$rfg{UR%$DN$@=1263BtJR7W7FZVRPm%BXa zPqKY3UQzq;3n)>^XI3|0f~XI43ptak_0Pq}C) zx&u)5HYj|Dq9|}5diqj@rO!@iUC0e?duFTE0kOYd%QI93gP?VyC!SYg!*gZl%T9mB zgS2H@PoxQA=dv_iWlbw2!;jsRg($gJ)LUTYN!?(7dJg` ze<@1HP*a2q4adXib<`TxT*uKk9X_x->GEI-yVfcCkupB2(O?G?aq3MT$D0Pugb6kq zh?+d*`+HBb=j~*?oOyQXg;zXga3v0FVdK=YM|#zxOrFP0Om*gGu`*&wLN*(S@lVdP zS1*(aiBF-(Yh@rkWbBibdWfS%tEB(cHyLz2Sn#)M*M}IroRMpQ)ra*5?HH{%d+?{( zCOiaisqQDE%9e~O7r~5M^7ZGKWS~*cbKf$e#u$CXkw;Z)Ks}5aW;8aoNZr3FDGe@9 zT$k!2*^#~j`D|_8j&y)%b=GMykm-_ndu8-8D~2kgbIT^X)LyZw&oKYw_YO~yf7og4#4Gf6Jx&JA$M$2cE>K3Y02d8urOkoMH=#VEoTtfG7pHGicx07higC>FVj&s-J z%|l%0I$1+cTd~^)TNBCb_c@bTA_rDhL($Qd`F)R#=q65CSCuqSd?qMw7Czkr?-+XV zUG~rmq~E#r2N*M~?>9gF5|t91`#2#wX9WV@#Di9tn0UWU`vsBlyb25@^%Xm35PaB$PdHtI5%{Zw*PQ0 z2i(-pTroZep%|D?Z#Lh6MhHGd!Ey^*cjyR2W=wmMElI#O;sT2HgUExB4v*0y2!mzx zvR0PALefN+$mj|!kdDR6#qJWaa&NGN6RE5XD07yw^QuH;CN(tn0NM6pWD}g9Pbo7( zD~zcw05@&XJlIpEw-XWkEwePPyQ%HZ)ZW4M$~mK6EHYWdF6AXl4&29}9xbK}t;UZB z4~lSM$_efk`+?ExXhqkX)q4DZp1l~LEX}?;SBX=f-QYyEov;9NdTJK72y=STl8mg# zv^;ruuyZESxMngKf_o4=1)Hswy;6(J@5r!28Tog5go8mYDIGlJgDEq|wwx?^NTN+D zW6G>v{e;7$3eYbTWB`Fce!u-Oe(aT3AVcX{H&FrV8ggSWn+J<2ledyenaR_HM=+mU zFTFk%EEz7GIU-qxQTe^`-2CGDtPP5BHd~AzWQZuWLd(F+-aUaI*BB`-SXkDE5@~bBkvPvJ#g_+0 zP<@$bBlVjEHs?_7aC-I%PIjpg0r$K4V(J(aAdO8acReQiQ&OJlmLI`K5G=R_v4US# zttb;J=*kbqO`j=4<4V!A{JMG?6ibUpGHPEwK_Kcvz`=h#gbYbLpx{r$vx@&8M)h-% zTpp7_Wik2Q_`$!BpUDiuL6!Hhfe+`CohMGi7qrJn0U@yc@0i`fEJ=_in_xNR_GP>= zbg*ufbVZC@)_wnujehLQM%GkEO16NLvGf1%!N0rm$*9d|b1-btUrJ~!dE0Ou?&lE| zO_^1x-DA$OmQd&3X_I+{MqNf8oQry};PJuoL^FB{kB=XQZVcySm|P! zfb_&6_1GO!;IK)uN91%PR>uj6LiP|wtJzHGq?2ZliJ54#oD)JSD>@3wO(x#zN}*l6 z`rYriz!Fx=tKAHr{vzZ#Owp@Z*CS+6t059T>M4hdfB-mHfj_B)v}iB7#&-;(qN*D(`PCHC%ll2 z|GamZ`kPl?I9>~xn>_^4^GQ!XcVNxlrDM%%lqw%ajb?sNR3PoOShK+h z{2p5JZLT{_Y2d*Xd(-LO(9H0)HZvTdT8zWkQQ`4*8?Vp*e*!0-_Y#F!9+XzLN<6>xX<9rL zB#)vs9Xj<_k*9NKbJ}4!?spT=ao+^9U;`fxa;uG{5{pNk3rvN(iQd;2uk5ub z;+@s8@W%>r;y)3Ld(gSN?%jF@yyT!0C6UDgPO4|kKCE6yq^XD}J*N0lK?x946CS(< zPl*z3)MW|cJuvnK1hK_xwOq_W+O(wt0M`rFXdj|0x|!7#eY*0+bHm6c&1Ng46PbEc zYOWe~w*^9x0uld-0`C#?Y`9QiG9Z`leGFp3B5lakDFyQa^usq%gduiyIQkV&SeB_l z6Jj{F-ULtc)ov^N*p&R>aaR2(tt)H9*Ja|SwXxqR)gt8JAKtOv@Wbnm__0KL)NH>- z{zBB8$K~WqAAK$ZxC#@uhykU>SovAaHo#uXb$FPHn+CHNXb8zoN7R7%FAv`@Q}`9y zPI&R-?P7I5UT~>k-D|YC5N-u`uTjrqbzTfwaJ`YgYrKY=Ue+e?FqG|>?z|svZ`gVq zJ(?eax5EcLLedA$3*Plc?{FqHzuqS>;&jb&AgCn#>09k4iE-|qO`MOjWDoE}#&7sq z;BDiMTn9X;T5S@acRi1{g=4)y7B2jLqNrQZ`q*#X>C4D9l-32U|C09rIxhlGkhp#R zNO=1X^y7ejJf9L@o>(OBdA0e8P3If^dpJ!PeNTp^UuXt>LFSyp4@V$$+c9sT#HC3N zOX~Vt&Bv4b?vmvN{~j)|XIQP<_9Z-o!?U?U3ppWiS4zW(hAoOrJ=_4l9s21eSg+s; z=}ni$-Fa8z-8P^{!jEA`Cfq}f{;boV4f?Z5f41n)bB}-B6?bOxMpH<2hPFTcdpd5y zT0Tn>vT^n1N9oyOs7>ci@{;u6Is)E=JXCVipZzxY=j-t%@cZwdF*eWHG&xQ!$Koww z-77xJ=K`pW15*%nrr|t_z#-^HLFkqst$vg7IW88LX5mAu8Vcw#>crBbMt*@N?1-k| z?I8Fg+--{b6;BZVbRMo3@^PHs5ycM*z7M5nR-7hz7`2|kC5~`*Yski%&G@r>U(O+P zeuy4%Thiv8WgR^!0wfS|%vI=+kg3o@w41q_RBGJh#BVQG5err`ILj7&pjr0vlpM%HMy4MHb=Tcv?tt7d<%g~&DEe)ihZM({a$IAd$mWS-TM&jFi zp3IjPutVIj@}XdBx$tk~u_^=^Gu5>7D{E@#h*-Sb3-jP8twzmxdP#M6N#7oL=Ai(_t0Rv%P4^%HtuAAd2^6M zaVv%13|m1$?^s9I&vw}tRohGVV5;V~)G=>dZdG6t!%B~X|o)! z=i`UvY8!F%C)RwxOv8t?Ry%!;BVMM~YJ2ufGIEmL5#uO+%2-S=#$ z(yZG@2u&9tUmvLN` z2~Kl$=9v99FQ4q{k-a-ft#0c}w|tYTvNUn+Y-@N;Lpi1k?nn3t>qWRs>|XlPnj0Bs zF$@w%(ogl8i+fuW>f~=p<5~wgaRu(t<+Q75Lu#XO{Uk!t?lk9_;Jbx2 z(-uA{69ZmprxQ@decq*nFTykKKZj-Fm(0{cA!)Y*AiN+%55z;a-NF*2uT~*p_Uy!o z%?qqfjighqLwt;4$s?8i0@Juf?T7v}db-zewK`K?ACb-$UZUA5?+$bIn-XWU#8mTw zasM>tOtcZt3(iJWL^EqKsPifsvQz_;XveJ8uxDTD`b@lu^lce8DaGxkyDbnZ=sPCb zcP}e0^Zb*)a3y{~;=yMGNkh-f;{h2b{mZm04)d+(g%kQkh>VgKdVDwnGmxk(fip-j zvaSAQ!#V@$2Assd=2UgM?bbu1Bm#`Sv+co=olh7j<4rIQU!sZ=MGf7>$G=OqE!+&M zT4J8|>I3`G#|$1DvhC;P1ilr0F$Pzduk zs083!n8!Gio-rg=Tj{e)_36=O{_qfNw66KQAkKV>{>|+j>rP>%K~~H@{jo^H#b-h( zRZGM1R2^!$p_PkGmotrSF@Jsu$IkR@1}+Q5urPZN`U^^>tIA#DJST3Zt<)x-i!`ZL z^U+o(c8aSq3dsA?;ub!;y+A&hADyBFm$)31fZm&RUkht*Apo5omR1GMbuuq%jzKN@ z8)|2@G)GG*g1fh%Fx4r}f3j-Nl%-J;seM_|O&p$t50}q7U#@ymsYIb$EiO} zyo||)hMlyPf`V&XaZ(dwL%%=izn>%@-RX}o>Itb^tLI6CKQ10!N*!Bzfq$rDub=|-y`%xKuXKTlzeL#q*V8#tE)I#wHUM@! zW@g(2!b>|oTJY{t=Y^+GaV_p-O(PuXm<3JtSw#TTMh;0Q5f6#=6R{k-HI7e@sR2_oXs zb#88U=LxccmByZFdtg#ll#7Pz%dKQBrB*20htg7u>DjoXol6=y*Q8v{g#`yVk>w4I zD`%y0O9#ff9X7n!qUoGG8)0fxtPz31nj@Yi{(D3FdsF*+OZ)q|_V>2-_ltb;*#&ib z4B_X`OIj{K^WoT^nblfPWNE64z;jh^at-d@Lm$^Bd)a3u`t^|`JQ_FJEM+DVm4N3}hQF`1IK=cgujCc-< z$4y1^zq@M4B1vhV_zee{)fh*b9l(1?#DK-`kRwYk*tNjd^%rnFC=)!uIkacYPgE#V zyj^8Gxf=j)6z0jD64<#Fa6H`mDQ3w}mR6|xiJfdZ=B?|@!V=XRZ?ffM0J9@YcSVQ} z`Yo0;JGXD{#$k|hx&*@j$Cc|t7$)%oTcv2>h+)SB*lIfT8j{@USeHgt*su^UVI)|j zyLRfJrDd;T0PrNA(O1>U1Qa^1mKn#m=FL}I-cu~P1sMMp?QT_B!wlhthSDPUv^aeG z2)?8kaIwG3H9*F}!l98;iH7|yZEl+j}NG`x#*^nN#MmEZ(I#3tW&9+NZ>xJkr6q6=fOdQj4!XZon) zhw9ZB9Z>1|9t2l|!n)h}U*SUKSrARF@T*=V@Iy|l zxIHL5cP6N05invOqqi&RrsOxAB@v(*NkRc78b(cO#7RlF7;DnDTsgC`$~d`2!W0TI zV2R?6p*)``zL!FoIEdw~W>li+d2$-$m|8JEvw;>lzxP;wY}6IbT8Ysln9}AUWIbxkvsz{* zn$|kx#Euu56v(@x&1TBsY49ekp#HGDFQTT>y&UQ=mLYtX+Q%kAcbc}`j;@$mLjg`h z2jEmG92--U3ah-)A%)J|cV6KzRc*>vHXVhQsK6#Ml(`u!>7caI5mNdiKV7<{mN{*9S5GlIAZRYGmLeD&eRN@M)%U z*Sv`2u>lFXg*Y|=ekfBZg-frQl>l2a>&QdH7j#rVJRBmj7C`J63ktV>o%y&) zjDdCv;8?Iic`MT*W4|jVXCQ>c$BF)0@Y!!ZIyFjqv)WzeW=7VeJC_ylxZ-A@8%#pJ> zk0n`@R?7gIB<#%)=5X$mT`@!`A?G9Pp7m?3>3k-<64E3-O-e?l-h^4v(r{|+4gWo* zPM3o6)2c~DgNuB}LT^{hRHeBV#{{@1YRnI^`NNBNo_89|tN=zEvbx6ztA(6Y)u2j# zlObkDd|7tM)&;_+^aeU4;A>M@o@b%(BK{M6UZk^)TG zYm#`yx1E4eifh%bAuj zGl09QCTB zsU^k42%;45`tZ(Oa)gsd;2_yimb#dB^d-q=(=M2oRC5J`aUf`bI@*PJH8gC8o~tw5 zbThABF!M=`>*4mnL&&Er4&U!)8Bmx7x2Hx_V1f=*Trjl+LTi?+r-6}kik&I`QyRd3 zy)n2JvSC_$o_7ggI+isk_tr4r**V-H3AgSURckebA?E6wIoDbZ8!(rV^tGOIf`p9F zJ(rgy`Q2diweS8TpZ!VYw_vl;5XOA_jiL%T^BKT-Gro5!Fk!jU+hNKX+XU-^BXp2po`ML? zl=cO|ik79*TvU(_kjRC^!Zgtj;7LhGE;CY-?h`3g?d=xLU#3woI5v@AQ%>Of+q_z_ z0?pZI*l`4slMQS%g#zsfp1Yd*TV4IFVZjh1>)$)?XIwE|!c$U1CgEbHuPqdf5!n(T zIJKCiOlSSlG@W()O1LE3(bns5$ROjZ-7bYJC{ypwWV~E0@opIL@fWMbw(VLhuMY47 zn9N+K6G{}TE^AJ@eX?~%pMrSMteQ`Hg28 zG0RxnQr?N#3Oh0BSY1^Im&(*4-mH3$297pbnZWjN7>;==jc&HYq2$^*#rHSk2SGeX z0ga&;bm~I4i{ZoL)`OaMrOe9U>c4j zsZ$3TJ5$uL3o)HFoj<_O{KWYPw>obmh+j0HeFkNjS8{h8{EO1yjD&BNT zgmc?gQXleO@2LF&l8l-P`V{`_X5kANxMrI)7TJ6RTL+pqf=}(gceq^~mlpwP6!@r-Ys< z5u0c-RJ~3HBu|?v;F5ehIg^Tw=1R=e11i~`v}*Ffvuf=HkO^Se?{;CfxAdGOm2oFt zYRy{FBOSw*(z5^ulQo+jnlU?@_jP6~m)UkfCXLh3EqIHN%_GL4xrolr*R{LUR2nYh zd`V>X+@5s(Sb1s=_Fgy@y`$RpGR_P}fh6+HbD`n#pk^t|>lc&pdOQJV#^69s;7)dF zS~-Ewa17m&oBh>S+TY#j2ts5Pa!GcM3U++klDoR$Wd``}HEB;2XfCdEayAWPCP(Q8 zdV#$#sj^aV%=!F4#%#EcZMY&Nldr6J6-s&&!X!*%@_>W~&e+fC+*w ztX-yL8-> zue27s-on!m1StoPll$?5m(W>U?lq-VBt{htD(U{l&RHsUo(knG6s9HU308uXFfOa| zZ%$sc(HM2Tt)F_dlMOK`4OM3j%Ay3EQp!z<4(C)O^u1d)TE$vb#IY9qit}Rp?Wwi4 zoi;qxeAn;}T!{3jDD~-ns2B86qtuL-Y4G#2MmZI(d~A=~6UB7Saz*TZ^OWgKrM7H% z&eB(HnICny*g8bBcTq5r)6H$kHYqlaaBe!pd8QjjLM?qc5zxfsD#aLnjaKji(OAji zQ^hQCIQJLs0In5;YngP4J+{b|luIUPTVZUG?Diauo~KahJxQE}9+)+0$d1U>sm6%} z3COC|l$p`1qhbUZp3p2a&j2e>+Y7*Q~_V;5>AYR zHCCXLKf%M%1UnGU*iy8Qq&CMD>ZOm{T2l(l$u^dDJF{zLmkzWu@hDx1#w`}EB4C&0 zUYuDNhSrUl}zy^78(q$7yw|g{~HL~TwXYSoDx7NZ8Z9jxrT}(mt$t-*_aLP*<(yVOsemCno_lGcNgt?wPu2~B0g1iaS1{0rO-r)6Xc?7YWmV) zEO^}l_5Php-kdq#vur&OU&tctK=dG+2Lb~uj+6_TY4mrSboySxjVt6JI11uv?O?`C z4{GCHxCLN56sa8~DB>e>O}baX_L?nf5{hV<%JZ|W=Q0&E^(3JN8o9jVIwTT@7qXO@ zJc^||lZeIa3UalMUMGN24po}dRW4l~U7wW8^k!l!;-rJCWEXAb4ViP3%Q1xz$ z!%|^LB?F@Fn-;?nB`I%Rq9Y&Aq2l=rJ<(aBxq^mPl!{u-d;3#%nzla)C*DTubt@iQ zS;MexCOfTN-~Bu^tjV)VX(EVnVryb~Us&tDd3{je4S2U67 z%EQ76=d&88yeZ>6G2&onn&)a)TCwC(F&w;OM?j!d)|_pt_lfau6!+iiL_si>G|t zx>`rfg7#Q#0`BV6^Tr6nt+-SG#-rH#Qkd+a=HWTrMwrPhRN*S_!q$qDK-8?xKnIUn z-A@i8Pp$Xl<0WLbzd2;Dz!(cxdw5E1M&pJ^ofa*$uyAN`0tBB8aH;TMw5?A>wOQOa zCNeifzsZSl;L6(-dmJyPi-b3mS(CEPaC*c2C0GpfmPc!&?OvAF^iJ?R6^1CIup4N( z9pk}t2RL<%l2L&*AgVd--*Lloqo|(AiYK4E`IfgDm@bB^Z^5QUz&7rfeooiFx(eY4 z!2F7v4cAG`b1B?I2}VWZe8!R3qo^GKPANqI2lg7VXoaF4l#!4io&dbU)UKf zZEdBuxgKxEA?*7G^PpN}yTJeYkNEg=3k7bB9Zf*NGilx3<`FhpRL)aM>NXHvPB&3s zUdB5xN;!$LoWm$ch(#)w^Ez$|qr+&rmOH-9Ika%$pBSHXm~Z0>MO)I^RP~h-vli%*f&Mrr6(- z)B?q7Z`fn4hrsL4B1kI^l3aLh^4#muWMTevvY1A*HRC-bG*Z-ZqDIWGh-H?srA08F zljlrhV|S7~=OlBp{Hsy{qeF8!?=fSR;Bpl`ZdT6}TT%i{f8)#S!9woD6P2=MwTo_U zwPwoC)rvOS;vkqar_`BM8QdYo<$$}pDgK&C&@wSxRC}a(F@Q4XP0cD-mWiiwci3is zEx5@^Y6P8C>nSJc72A5A))MoS;kzk%lPS1`$tJ@f8OjK2EZk?g;b4xGs35t1 zg5uOQq)~$t>N$SXsFEb3i?bpTydl^P;i_#Wq`d6SwdgJKpq2eJ z=1#lfJI{Vv=E1#FQ%j+_WKeVU|s17>l>ORR_U|cEdk*jyjS?R@=qYS5}VlnU_(6c zBNEsluKc^-=~vDKZzd8H0@4Xm@$<{YIJ}>ZUwJ~s2#5h@EfEzBrU^&O#a@CuW^gj! zJjIIC_feg2l~VWns7*oTjJJ;rEl3v*A^pzBubFQd-U#<7W4==D%GR0B;xRo}Jf>X0 z<2yfNLvnd*+i0@r!rr7`pS)PEbmnlElZCn~P%Plf!aI7y%RRR?oaDG@5@?G@j?Ly9 zuv@EHmbSk$A6HxMtWCoIN>s!;6(75HE|SN3=6H|u1t-gHRHaiPxe_PZ6q2eZ7&Zv* zI7c%pw#ITMQVsNUZe{9@850vg+P_0VuGgFvVHmYY-*>+oaIo+->wZW3{WO3RXfSK$ z!Hp*smQgeeRXZgL?3fv&rLWUfJ=-PDSYh2|YV(OXZht5~t3ng=vj=}uXRm~TpN$vW zfU99s>DFuU^+cFKj$4KXyHc{B@|0I~l!`Ove}{gR|DBJ5F^DDRdOf0Xk{68rPU3^% zJ_Ja?CnnzX!*-1v8GtRU9h6(T$<_PA0XQc@ruO5i-CIO)e8zuG`>g2_`B+m6{b}H&$(Rqboi#@sN&`q?H-?iRQqUBhr%1fzhRVF?R(Ss z>nD^}Sj@wD6g#2y>N>AZ5%^+E0k}whl}M19?hV z4JnP<0Om*INvvEA9zOTTbI{U3Mbu+jEQ7ZWVsn?0%K;I%pySG-Rd<1D-$%GA{Ot~+ zW5f%srUD_2KZiA?U)0aowV;xxUry<_@>l)MJjA`lpRx67F`sbQ8vT_yQAUq5mWFDy+I>Edb ze$#0xAf#KpRA!uKEop2Ty5nJ1HacnGE4qNPc&&N)iWf-EXmp1Np30Y2+e}Ur zf#Nf*h#6SlWJyBGuiz{eN$>LDGxqVOOfnE3&4jPl{(N7#69ML4sx7o@HV1vgirFe6 zp^YmnegRYzc|+>A9);U>(l#|KUrik4@|*Z4)7TBlp`Q@6uwD^=u;H~IF!%X&#RsPF z?Pt~@&-ZaI=0)w9RQA~0o8Ifr4MRQ$)@3w0mFA;bp+|{;EiNoeXGmk1EeJTVqwpel zlh=uOsR9w^+@G287*3Q(WR@_b=ul`8=Kj;pU zr4kxf?bS>6KKT623-%H567WhE5ng>Bhx1=j`UGCz)$orx{sEtdmjPu6`jjAme~#$8 zU+LHXjTSK+_glaE?TdeoM8z-g+Asc2ses>$uYn&GwJEW-@?l0LuZtLJ#DBMtO>bB!GzawLd;FL%Q6b~|Y# z!%6XiLrh-%!|#44;J`v=cz%L9Z!`pBX>3ePSUfrADO*&<9xBXP!Gb1e3(&z;fw3Zn z+0olIdghn90|IRIu@vkqhvtm{i;h- zl#-ci15tZRkM`u+W|w@bhNpi14CV607k9va;1Y~XU~K>Wv#P?w5tni6*xu&=mGfi| z7#6CSa2FAQKqwDqmEN<>zKvHVklIdJ9##NT8q6=Nci!nb<>2*qE2ue6vhs$?8;=oN z?g68)_Am?gD&4azO+@wov|VnoM9Dt|+1Fwc(q~Z0lKxuj>6~ zI#$2Ksw%|`i7KE6b`{5jh1$Wxfc^}oNt<;DsBbmsms<-l%YYzx3TMjGSk8>fVQPCy(;oFI_Y=t(F9AA+9ZPm))$R8vTCknyIn_YKH zBC8LkEF7=9w)Tq=iWYKFUnHtZ3VeH~a_uaou$q=9t8+S;T*R;p>cUSK`q7|EgiGA^$7cV)p8_CzV5WOSEN`NeRy?+ZAfJW4d7Hd;p; z7Ukh$O49;iastA0`U?0%Z@S(O9FZM8WJDyiL|^j@?8~QA+|?Ui6d{R{+3R(^q9PE0 zy(}$O-HYQ&>av)-lAA5vU%Tfq;EWOZyT<;^TkKe2Nc~z>Rms*mKCnW#FHX>irdkX2 zU|4Hiz6s+3n=sDPnlM_ix!aDPz*21^A~;rUtndqZfVv5B$pThoz+Eo)gu9eKSw#2~ zRqXdmfe#)a7KcHtr4G1bVB*T&%cPs8^N`-yXjTd2eee*S#6<@CoSVk%#f z+xS>Do^6Yhxku7sk1`v?bCWFBILRA`yeL`(m4`ZaWs@oefQklaI}c~`g&OVR24g?* zA}j@shdO6D2OP0ibigmrfruXGTb|)B=wnr)9=l*(B1v|%z>hDhEMrw%RqQHJd8^84 zHnS0Xl1~m<5*^*H7->{UFnUmx-fGj3~ zBN`4@E~w&q>a$8|S|K_V-2wk)&+T1~q;uI5$blo(cC@5lCFoL$B^7`NnW?$o&8il; zl=*fbqZLP)ofdFPd9BvWH+T?1YD$saI)Y##GB-Ih! zt;r%7Z;Ie0CV4Y~D!5b1W6o(_u;y6oh57YF4`S7Oj`1ZK>LWSho}lU^!L@Q-jk2Hd z+qf^;-v8qP1|&?fO1Nu#_0<$!rJml(XT5Z0PaXQol=mi-ybfR4+hZaG7xXYQahp-S zwdA(V`e58cGuYYBaV%PG$s`okfnK%~7&k=i1193wMDk{|9%WhK{0?EuXNX%iwHD?L zzXLTToS~xL)jpo!aY1etLTeLDo@At-gDlC^kb8iFbrwo_=F;fv3%ak>=<9We%3i5a z4T6+E%jtb(Bd9?Gm3m0;JfmssMSQ&y@WBMD_8}WN1(i*uGFMOZ`5*1p;4oa_@5J%M z;doWxIfn0H6zZE+duPQkL1V9RbWobKg~x4>Q; zY?EUR;mt!Tivf0o-;xf4lM*G{WvTB65Gjg!6=xzn<#nJmX5m={uU)eWa*nH5@~2?4 zjiFI5)s17?;FlU<7BeB2QNPrLzegD}*)$q^`neN$O8JPFx{ruZw6}cHQ_$y{cRM+ z9+_v8S_d^deW;?#BEfFe&`falW1q*t#jr=i70AA!ShRFh`DFd}5#I3=i&ktlkFrya zzJDNJAVk|9m5xveWxG^s0(db^@44v7Z}J@mlSTG=YPA{-o{=)3o( z;i4?k|LgJp{^pQS@7?eJ&wKpm>whp`|1<0LUsR~+ z^}iIa|CM-FDe=IehbUcVBrL-9Hium6j9{a?lF|Mf4;*MBnRum6^K z{iovf-xaS*>-9geUjG~G^?wkr|D$;Qn|uEHjd=Z0y#Bp-{cpwVzZS3mkM;WROw8AF z>-E}t{ZGZ~&*JrewqCDh;{D?FkJjsdXTAPU*6aT!UjKLT`s%@a{V)Fi_Pzv8uA*AM zvnT{Y2q8ca0wJQvk}=)0^&nu9nNBifo6Jlgi+Gvo>6tX?jqaYw1Oo&RP?jfxpe#ZN zAd6uUQU0<1BA|fque$Y}?t9OzdvABo3@^-ceuOXirf%K3wVXQV z)Tt`q*}#_>?y^$hB;a8TPiOcu;EllBfp-8OX1Gfn`2!8$k-$?J{t);h;4c~OdX&O1 z0PBHa;NGk3m|%E4@CM)uz!!mUGn}2UV}jwi!1I8&F}x3WKX8Yn!U@1tzy$ES3~yoh z7{gI1J5FHu67Xf<*t8vg1-u2gnc*7@$7k$#Aj1=Ws z%CH%DD6os+Nx*LdFJX8O!*>{NmsL0pI1N|@Y-YF`*bh8~;d+LDX7~}qX*oNtVR#P1 zOMx4J*8;Bt{t9>t@V|i%0AFXgRbJuNz#V}TfqMd{02_f#z@-dNW_S+6zcTz6!>xMl z*v2r!@HmFoGkk>MzI_V!1BMx12)qb*EyG(G{*B?H)#%^s=h!P0f7z7^e*(PnN`3l! z*D3z%zrgo0y@AgsGmx&I;W@w`0H0*o_DhBBz+)KR$Z*un3P%I?X83jB4B!gjH-H-% z-oo%jhHo?6|NkjG0NBs)AGg>sa;w7Gz;1?@GrSYH3HUC<-ELF3JFo-T2|OOS4w$&z zjyExUANWt;{&(Q}fCn=CFNQZU{5|kt;8P68+-b*23=afyeU$hvh8r0^1AG?vI`9qP zzknYACvUQ2JunQM&G0)6H!%DIa5L}~hCBV*jvWk7V)zvBY2fP&KV&%OE;}B`@RGaq zd&djR)+RG%dj382KGN{$EE1M ze)b%tJC5Py4DVpL=`lObdtBjs;KC=+zJqM9{%_l#^j)ig{lJSEZUl1skN9VR&jLRJ za{Zk6FF&b}>wA9sJGT!h9|Oqs`6I#q6v*w>jo|MDZUVjz3NJN;HW>LKA9ha`#b#n6WqVBrTGs=<2!c*P6So~xjjex8lazj$L;rH z@Z9f!+}?W#`~`ouEd(|&?-y~6N4hNJ&s$31}DKgj)k+`q^Dca%?t;b{ynXLuvSgWpAa09zRz$?zD4 zrvtga=M3=oGo1V$$`6bKj{>e`cs0YD89oAh6!<5G)$c2;0WM^C8N;6e{rsahBHg_V zH#7Wz;nx4O<5Y%o8Fn&U%kXyK9l+E6WyeQ=j{-9X}}$NbC4r9h~C7;KJ|b!td_FPj=z=aN+lKaI%#~2j2RG^JB%Ik(zcN z2mVdQ?*)FwA$Gprd`Gc<=(n@YzdPG2iG0?veAbxho$dZ3m-1hU_fElk+ri&!^1B3% zL_4kn|E^0uqesZ}qCbD6$}<}LRPa+iQT$iHw^4e=e|v;J|L-IH_z|j~PXK=n`00%Q zjY~dHBmG>Yr`mfTd^6+6j#T`ijNf&ns(*@vSqA=#;GYM746C0m^`AWJw^Tp0 z(#Pv(&lBwR^BeGgx=HcP;NJniA6E2sqI`VHIewhJoNHM*soi%Nr*HQOuZ>dU`gx4&t-&8Y zO8(zD?;K^Ocgp#7$mbQ7&qd(hWb*$i@O)nQg~>bTojXPq`?mGxF~Lt2^+OgB6r8}b zqvhBi8~Eo2MXVm9_$i-L>B%EPGs-RC$&*TQW5eeaPbjo+&Hto7$> zTdDNq$^SC=72qj?t(wwrt@wf^2fiOXd59aR9>9|)XGid7j!`^mgyX3Yz#T-cKlsExFWj(=dM|0HLGbT^rxj1)YqnK9 zY3eh$)|ca zaDu*^%fORoiufN-(6{4b;K{O{i1d5zh;-3J2Dfsk8#b+V7-$y=V z$xlQ2o{5Sl4>k3}Gr*H)hRnGqz>^1-l2jPm!DSy$^z)&G;|urg-u!7WxBt^1zawdFt+p zr${F%|CQj$!%F3OVRwB!yzjzqGg-CcM~x`wD8=tRS>;a=HI)Bc@U${U-*rKaKL4wb zo+5=Pp9d%F)BgqODT0B%chMel{&N0A_fY9+CFl|GEB1t(L4DG*>%miGa~t?Sf~OUV zD)9SE(U)`P6qTMlgft&j?NrkMeH;PZ34*y;tt9mk(PVfbv5Qhru5No+2q1gYN=Q zD`J$-ec;KnO#0`HX^N*E4BrI5ZkoRSubHOgULN!EzTp3Wd}!sEtbW9unYb#cDqIo4`}#6r~?=kg~@CuqIF0 z&tmrYjt8mq6bW-J_zMow%lSHEV=NKX+Ze*^#S!HVCH`6U(~qSvdFhp6=2-*VR> z`uA@2b(Nl0_U6!c%}_i=h?9Obdxk!rvyh%597&!$I77*Yvo2EnO4uE{&xD@2(*E8v z!N1P@0C$6@2v-`9V`nLzA~ETE=YXe`dg7DdDKdflV7-mdE12KueDD-0L;2hZo+AEf z`R$`def^AUQuT1my(;}8@GF{BJ|{E%;l3ul-t}+rv{RrF{PKwYy{U*wPmy0FAD#qH z5gqisZ-b}E=Q_%04(c;wm*+F*==`um2=g6#qZ7Lwe#oe%Xux*Qv@>gs}I4S$L!Gh1*m^Ej@B;F z&ljgIDC(TnpUaRBMTq?Y{EiFJ?l;@z_MC;P9`3*n>xW>^9)t80kxBly8^Kc~G0B-p zi=d|=qVI>`N47vu-eey~%fM4)7Rk4JTU2?@zz*&g;nshvMPCp9Mm`kz|0VEC7OQ;D zg98l9If0(V=+A$#*U#hNDT0pbc0#M-DKeJkCFYshh!5q%6tXQHJ7aM*@wb2zc80NB#LMLqBgmWTzXS?m=J=&?aIz_ru4Lo+3r5Uo}S2PhMnt3wVmyCx7@+U5ckjK`PHF;Aw{} z<$o!7?k~EoORo<<3Z8a$QTj3w=r!;ZiAnWyeUE-TPFRWY0{xTh)&zKpNGE;cLGZLQn$|b}4xV<@9E>G*lZ%XUaKjy-}nnu56@eCs~`t-ZG@LzS|XJs%R@37a~I`Fh}eJ%9Q zr!)F-wCQMl{+o}6JnXjT|HZ80>7)^o&zFGb>-(>Or=6G>u7R!c=!cu^`F{;O?JOie z?VaE$0+{;4gkHtd&J23*!Qg2}46PH@^(mfqVlM^X37&RbQ2)6BJYUxsvs&>K@lSeb zJ9yf;M}FWr{fg)DC;P0C^Xw!?+)nix*r9*1zxQnLe0}Yg;Q4y-Q^Yg-B6JMK#b539 zzXm)-PSd>b$uaO(&sF?A;P?KPN`D!Xw{h^alaA)B>%XP%ZzI;K^c49`@;tLvy?0Tw z;%S}h0;K15`g`DM=NFZy`B=r%4pgeQD~{Ed=hsM2CnS)4^tt1Z|7-Ssxc)f3-n$t* zU%yyzy#Bo%$E)^k(fhwbh70Qe7?J@WE8z5X`x1pRyWIRSDW?M42yniCbz z{b0*a)aRc;`a_vr@HBXez^C3m>m+@7+D}sHX~znE*9P#kQ=iK7D0m*nwf(pC`A`2g z=FPZWuRabuo!mg>{H;qq&mleSq^5FKove7;p+)|I6Ts6>Y^t9Jz|#&$;*C>O|9|*y zyWaKPQ=q3oev&=-i&OON@@u4jmf0h3fv24`^xoZ1RXpv;gg6Ao=&i# zb(TMX=YGWzF7abKeNUyQo!td}4?K@wTK_#&Ki420o7Rhef%J630OhmKS&+kQeJu}u zHq(1=0Z%6pQU3o1Pdl8+ueIv?unQiy>xc8thW*R@Cl`UIlc311-1Z#s&)EC<#&h)J z_ug~#_4#MyLp$lIe{TMP-rfwKt9Uxeg2u}c=j!u6$%X$2`Mkp9bL)AEr=7;+M?Lt5 zXcx9#a5#9{sZ8s7e*#ZC+^L-V{7CUnFnggFd?#Dyy%{{6R6_D|+WCr4GJnW%=j-k3 zvyq;5NK^U$alY!G7bC73-s;#N2KR|ytx-Dp2xdheW8n=0qJR{ zAk7P7FVd&q<06%w$GNQlPbVbNy6tztpTgEn9tKZ47s)8Od@CDI380#7Fc zkzRDb2EE)^yg^_7EYj17F>7FlzV4E~<1*EbhaG2^tE(@Ap2Pb8ZQ$u-46+mVa*4OE zyIiHG6KzNiBwW&;g!FvfZ8LZ}d8l9)U!k`zj=w^m|Jg45HOPlfb|XL1ec*ZA>04J| zUHB};KaP6-%1`w9AL7EV`H9M(PMD+kfek;A@^Dh1A9@AFEo?-39$z#Ce!SX##gB*n z^P0FMM&lGUrP)Z5FCU#WlZ>qt*0TG01?e3jz4 zf3oRn$aBnJ6vz9()%yIOxmuNf)+s7|cpJsfxklx~{cJtpc^tw9@N}{c_5atv(+Q}w zE_wVX4y5uUJ)NXU{*XBv70>-DS@3jH6Um2PZ`9A5k8RY~&o0-h zd}s$Yz4sf}%Jj~C!JXHt^52fYx38l=ti4vB|2Z!FGsx%g1$O=REtH3^Yfrll_AgsE zOo68pZK%I}>w4&QN7?(;o#6k<;xu-=0qG%6X3%Fxv-w=Ux4XM48t95;V?FU)K9)7| zNh6v_r((H)VRWU9oWaZ=^H%csi9c(uuBkOG`8o49P23h(_kQXg-6?=Z9+A zBCUr-T8;V5ZS9eT#^NQBB@v^od3nTqb-he0U!BbxxmdO@mTj3AjYonFhSAa*X>VU< z%wDpvvAucGLc?%85KY8IIXxb*7AK%dP*qc1)8O)p+B)%gN5)9Ta=8xkx` zwdLmr8#Jf#<5$(i%P~5#J<0_oULF}y-th>rEdiwi~Oe~vAr^Ji%YmC0>BITTgON_`|JTSMZwUFzg z*|Xas?MC~|S@R>sOqRDd%UdYYvh#MU+dV`k?F$<5GBLt(X|!&@Xj-;#=7Q$NfT(-X zNVAPdC>P83W?ExM_ll1#UZOGlZYl{@o0n;sPnvgWi4U!hr}D9$tSF+{!8=m<=1w!Y ztcbALzM@>!^*!oJSZZt8yt!yLZVCmFXD%b2jzx;MHWaQJaom0urQ6SJ6>GooLEXDy zt;b@`xmBE7y_q*hh};$!v3^l6QQZ7BZ@9LyypF9?%teK}{ObBdIn!D3g&m?$k*30> zbHVCfA+F@i)nz0*GR^$Mi(kUN(0V^wo4f=j(iAi^ZOeX+AuHW z!KI&O=WLnhUQsP_e76VXrNg3oi=Lu#3HPRow|#Y)Im$V>+RU|h2U#LwK0e(LRa0X) zuP^^Jub(QbW3z${e$Nh>mtl)`aOv1|U2My|wk9Kxj3tGVf`&FiRiUa{bd->Bm?_=W zC%Ctxlnt`JiVw(31Dk?;lJL)=A=4{LXTh*E`kN_#Eb3diokF}3S4NA^tCnK8V^vJan0UANpjdx2mdO_-LqaPoq@-wRcg{hU zp%+awx4PfJ9BFEgCaTS=)rHKCL=%N;h=t(j&PX}1s8DIntJrG|w>#KnWjk(QR})UE z>gHcnZ<=9gA!6$cbHc8tYAUCVOvNvrisg+=KAm#*%1{ldZdOam=uS%e`xx6S zQx%#{Dx{+k#VEt2khPIeTRa)g_NI(PI-QAN5~@t|af$<#eK5RQ)Sw~S+4KS!h3iPY zoEn26P2^3x@l-Sm#WyU3y=o+{UeIUl2AaAHQQcYUs7~Ic8t+Mo38b^PyF2D_Q=ZT^ z7Kql(mM_&stI+`Vx=Ovp^FC|q)u4SmC*2*T9_1>Oy)9(OLYk9!jrkT!>xXK^fVB&= zs3@&DJ0)x)uqMn!U_8|ok9JrEpb!VruO^BowHk{!Ovs;>m2puDT;nS39E}cSs(ez% zQonOmj6AxCn2{n-nZkw`>Au&_lR@X+Y93ZWQMAa{_Cc&vG(wAprN@ouMf+t~8h65k zSYQ;d5EcVAx+<2>`8AN=utK$kf~MC{d9sS)t~K5otTz9px;Gcg33-$1Nl;x!T3XBu9F;h%oj&4o7oY;9T#NNfP1o%v z;(_%=i~mS}`L?@+uuS5uLX?W`Y4jxJz22s;-w24AI;SymxON*Xc<{CmH-)qE=XrW6 zThX#MdqL8AwusW(gWk8Pdo*Zq`Uon`G-UWrAs&Ucx~OVR7nT3b$gQSo z&^AjL`{oVIeSW?yHIB;eByPjK+%6-Z@E_0((qAoKm{UW=-Swq)1TaIeq{iTCh3Y_E zi5BKzS}Cjt$1rtSwex;?qENsR?}gUr;U!u2o@G!UYINjsF;VtzQ3Q<)8d@izSp;FD zi2oe#9r*0yX?zAy|< zFKT|~sBJO7MOY|u^*!C))v-qB!W*`Y>(GKlyUMtRK^sw8#~Aav&*EPGl>eaYY&GX^ ztyiGkSPJ*@%<_EUUM62PImzK-7lNuoRJ`epnK45M-kGzSjbK&v7UsnEU7o46FV8sE z9)#FVNPj;T7=)!CG_^pv(%~2?19LKK`-*MEwulymb{3AOb7pev%s+4B=Qa|O| z9qf%mvDm7VwwboY6z5t>P^DJ`QlvLT*M;NK)`u|sl#1Wik?4&%++R#HkYigUEcls* z!uzkjvB4PDGoa3B3$r0qr`KZ2aSF;QQLZ=?yJG30NqTcbPEESb@^NN!H&>$jM1tmQ zEjwPJ&xk@6BXh7A(Vfo391d%9nKYA@@hgQ1x~1|C7o1+mD;<#@_CPik?fbtnUwiqj z{3iAbUP6V|wv!J8+mW2vseF)u?t=4ClnMyMknNiy4nbcY%lpl8-nbY(2MDxx!l zY)hf@yaIkoSqyF9AsP08D71)@A~M3IMP$t75g8RkFo?!Titi4Q&&n3}DIEbU)~qTN zw5%7^i~49qq;|~glIAPS)j=Q2uTmw`=F*!v0GFP{^ICS;N6=!AMSRx z@nUfo*y8K)B4N_V?r)j_W_SU`If_vyIeGz$dQn0u=#q>s6Gaau{4DI;mxGd4@yQ#C9E z>q^bef1OULibBkof0g=Rxlvg9$;^9Y%xmGt?)^(7^?h6Km$peYQwr1@ZAR4eIh(Do z-(FOV@Gix9=(|(EHyle7LpwZYeYSQ}kz>fkMQrm6HB=hIXlw;>6I*s^X25Y?E&6KSv1_72dq=J?nq#I6B&eaUY(uz$}sz^}^ z7Zjz&`OT4qB5S$LuyN6nh3!K$VYzwdT1?sJ81|)jwTkQRwxy0Hm!*#3s0)TdW(2Rf z>JL?136Z3a8{RLf)nhx2PgrYnyKHCLN#4GoQSKvem)|hx)+>5ITRxF%)@&|nl`m79 zkkYgVNzC7JtC(J|7?wT6W8CRN4E_yIKA0)Y4|1YID}9Hq7B9`m$dXLC7PDpje<}yjhf;>wpogP&vw~ zvIy38#k-+Z8Ky!d@(&v_Vn@__LbKvK6oCdT1SCw3V*BRwpmN$8%ZIN8)mS6zf37I+ zyd?=4!0Z-29x0Ni6 z7C6u`tdGfY8NvtSrm`@om{$T3%4!~2!vJdF-dFOO2qf`!giD-YpmZ4YuUxUg_M z+}$B-T)>cTgwpH>8>9wz4+|Ms%ww<^^H^afnsq+U@NUN*ep`HZ<*S9v6s|VZwvB2! zAI144#e-H4hrJ5YnsRtWKx8$(P# zN(tLW;jbFZlQBvSR;}dVo>_jUlT<#69YTC)#hiNtigSmoCjPvHs2eULtl>Le>(ruT z?zLF!G@|0EIw^XLj+Az9qhlT3Uk2Hh+e2lm)K-^z49jvgibTA zAo$Yf_*lOlVl(wgKP*huY|+HasHm|R6`~14It$w9a21{jtMoM2u!DR_s$@5%xP`?MQ7I`=KAm0QKS5OBD6~q)vYZOG@HyYTSrrH1rZf4DY>zXdSg9_9zvA3d z499CUoJTVZmTsZlRlG$x_Dec4%6fW&S$4~SiYDaL;n0sEK`d*79kx?;Ja#2HPwcP2 z%rM`S6Wt^sW-!yM*q@XorlpnPDqoZrXzrlI6BSmwG$+)`o!I8!rh{sE1GLU-H;RU~ z=t2~%QAu=C(6ZC=GrRw}*4+PG7!3oH^ZrWkAf0r zMJfbQVYTOD=6OXOJ;hjEe-X>i0=G-pdUpxyyl`c}o570Hc=049)1M&!2pzCavv6vgg^&AL$xe={$VQd5w~6C?O$)31!F&@>niusoLAQ zZh0QPb60NpE(?qEz-nzjwqOw&YA5wz_%|z^o>a5=$hk%#2-+_MS`4SQd4|*l^j)Tujn#u5 z;Zt32_5PvV;U-5FXYW|sw@dQ!m-ZV$Xjl#e97@tD zOc67rk1NgPhl2aAv3Z{KU5pLzSiko;imuY=MpNT#aD=Z6Aj)g-z2+5cG7r|MXiaG~ z>MtU3GqQ^}Z8;p6)~mK^wI|k=Gb`GU121tIzeb)nDi4w~&n#|E=Zr;yNQ&2S1Ic*> zSZRt|un?Ll%Il*G!o?t~A=qHAaAT=xMt!Xh`sSWsVRH{Z5VRDH#qSQgp$O{2!Tv(> zL{}Nnm8;m<{xxMp*~+O|X>>}%u9h=2LTPo{&i~S?lEy<())io-p7=8ahe1laJE@7- z9Huj)r_0&v;+{d(;LLdmo9DS8qo7xIXRV9}P332rh6J5AMpK3wFL8Ofp#9AHVcm)@ zb7q~#$t-@isL47vPk@EpCJecJZiqaNZmZ?aFlet*w?`B9}A_%{U@> zZJR_qKEK33ugb&D*w&?LqhKr!T2%BFv&>-K^NA}?t7(tC5ewy#5&j)MQSk{|Kv_q| zvUAegTq?K`61G(Xmk<(r1mh6NssTm~M~YFy^@hdKUAe$1UNqzQ=;5XyA*P!+i58AIQ&9<7&4%)}{d|4qR=&u(m4}S>Hfbuw`mGpj9zoyw!yjVdB61rT$oWZ0=UG%x= zO3ihP!_#-=erVJ{cM6uU8OCELTwyDMJO+{uw(k@vO|jqzQ4_O`5VeVTD&~HumE|zo zIF@~sPA*hsIS08Mk|p)vTBTa+j>IZy8VR{}Vpo6F@a%5dqjT(sEQaWi#fpL+tTFU8 z5#EH1_J(uk^U`z57=PX-lHFH@uEP`P+IU9O(mT{O~E zJXBOH%m$`Y>Gl{8;EW;t7UTxsXrnSsTzODXzAKh>25Nd8K;hMWN;!bS44Q&du6laG zDQ7$0Ra(vFmI?NWTa=GcJ45DD7Qf(-pMYUM`Ldjy*V-d=yl?0;r+D)aG?z)fA|u1< zR_%;yRx&Eu3slP4#M*m3%D%7McBPoN;H}tq!(I0?4S8TgGSIy`D;jukYOD}5Uyv_q zLU9)=7O#rwFCno~H=tvjLUx-|O6W{B9gTJMW@C*QSM!QvH=2kf0<=Zb|HKjBsLEk} zuUl<25$o`ao%QJLR{bDo>Idc$c%Kx0>`oPbCtak{lP3ma`%W2lnUK@jv~D+p#|i36 z35!V|p`UE5*rRJd;b6-#9WAE?cO_c-+8pwrlKs3H>%i38JUF-B=;`k_M4RQ(@-Wl< z8l!Kza|O8!w~c-?2s*x>Yg7iQRa-WMm{*0AVq>KpHrBk#j4X>Vh3O6t-e4%@6$z0t zBJ9N=Qb)LSdu%2u`Iv86%!IsTRCjiTr#4aEp~&txNtWTituN7kJFp{w%}WBAJ77s_ zwe)DT#&W%8RW&vWe!9KR;m@`mitBeSp!0~BP=kGWC?q>Tcf7~BIwXTDy0uLws<#1d ziL`cTMWTJ3`t!Iomq$yTUIh&$V)7EBc~RQd+1*v5TBASIs4t*a`!xNS-ICDUrzUI1 zc{-Z4H1TBNE{qZm(@EI3y$vXa-1E{vF{1NEDxdy86pQF}5ter>;(*Qy8NeZXR%Ncf zWM@yvew$uV>r2Lxw(zH5jjj9ERJ(Ow@53?6SQmELI_`G%dpXg(gLUa^Ipt5O&PXpQDz)0{yFyi3_M48)%g5XR_zpKOAAh zF)Tg*{&Vm=wcn9=jxfKIJ^d8+{DtiK&ErSfaN}6-_g~GPUpINA4clw%>3MzroWFnZ zNE^-=WlzuFe~P^BOOKceRL@Uh>3RD-BK~Y|c|L>ZGkD&w{htY_wxj3!@q9m? zCpk2lJxBfE#DMyKdVZxb6{w#7kR4LLsNbf}HXy^jcQ9z{kULt})KtQ_G z0HOC#6B3el`M&pl@6X3#-F0*4%*@`iXU z{UyXC{*OQCYmMKjPX~{?1+V^LXMOJ~Khs}MOEh;;ez@}an3y3V{ne+> zdPd^1y>>sdyBWih?`qxH{2AaigUcMgqI2S%t6GH`SC&8}rjMV5TMjfA7Ms0dOk(%m z{nXg@cwa;Eu%=B@IdBOeYqhi};G{0C7oog*L$Q(Q!>d=o}r zC*(^8B4d~*pmw+18_72L7^9g*skEO=|6|iJavr0d9EoC-RMzIi>fCcu=!-Y2=*US3 zN;1-4_!{CIb5~U*0klv!mUm9}XGH>o430)*yofYDky(n^JFAFPNG!e0!>TVU8vl$- z>;~x1OM9;WDE|A8%+A`^`u~(1sOSHmYGN`nGUES}?hV=hSM|Lv(x;ycFTnVBg-*ii zE)GWO8{M_PSB>HlsXRF2XzaO%I2d2|7CP;GB)`q2@oghDCd0wOzT}(T2SJA%GvTtV zEavZ7W$9Vlgj}CP`CP}())U>ZCA^4V9wsy&yAU$kwwWJt&^7wUcRM@ZVW%8d1Xe=5Ngbl`E+CzeaLV`mC4!R+p4SiO@*)oH-UWkqXm@(ppAdpYt7JCdFU}(I7Z>Ljh6@Uwu$@5y9wCnhkQ3ap?y15Nmd?nOi*8Eu<}+d=CM=lz&*`L%dG1fcze0crW0R;jn^|e>J>E zZQ<}skj1iqcZ+MK(}B;Y3;W+#al7!LU0(hV>r<*r`#clu1FvDtMvXN($B);bGWQX> z@?7F(u!Bymu}-rCmfIIo!ljg0$V+qHSJRHVA{E8VLNyury&>5T|3N;8zj106_chNW zg`5@a;l|TXHpiKLFP(oEd3A_cv9)q)(p;H=#vcY`ZYR)7mlzt9Y|H90{F>$V`CyQ& zWgGCTBqL3$ioXy=BA@HuD#tIh=^%g+*3s-9ALTa~@ZX#7pF-_XP%o)a?WyRU3UG#M{YZL z!agW+Z`+5JL|fmtCy^>kIIQ!)3$)lbJoeZCy6NPm=OcPEl7EA5hbrn9HB|Ex=7sjehJT<;c#|%>@ zU0Cen*DILqv(Vq!E|qgw+Fvyr;^dL*FxoKV{cY%+zsR~*S(vx`ig)dXD#}P)$*n8o z4PKCHgV@Qs`a{UjjS-KkT`B(oKR-8V`?lRvx6<3CI?<yhqJ{W1P_;XY{FNM3g~KL#l+5GUN%>c%b^I>Fmif^)ya<4SAxMQpK$5 zZ}>H<*Bq6CZ;ZRCizsK4Z`-Srub=%&&KSI?Q8J5f9^Ek|+ICkzR1T&dCrOridU<#J zxq6OWcM^wtOe68Qk@`I6e$*=pXX;{Ij{Wo?aO^2BkEoSBxR@xpJHnT7Tsk>X>GJ+K zzdHDLh>nVE@0{VyvRB<;l5MVHD-Mh3Q^8{JdQ(m^YtLXVYu~>~@H7SMmHbogZkFL66a=X%T zDmz5{cV2?kuQ(}_XChbpIEs~Mso&4sRqy49Rtjc)d8@dTBO%J} zouuYQLd*=K`g3(uGA#$MvS!4mpKHCaS3jInS;%XclHn@Z|2cnM;~O$&BpUQpAJvkl zvvgF-rrcIl_u&|hJ{2#HPR^)pCtJR9O}30}q#b8THc|?v8)sHO9PD&mISW(Y<*15n zBz?(QJe;f;(?~h)uP(>2pK%d-v!+1#l46`8xjU*6G(K~D$%zSOwDkHQBY+YMyt+TG zq3&q%dh{puW&CK*F0ncT=M}{^L&l+WAcSq)Dw*}o!Ml~3$yA>>y3XmCwVP$a#T^`v zBN`8eE2!-;e_Xvn4V5|?1f?Xe{#|)*y|g%eO@uettN>AUtxE3I&wmF8tdF$MItESf zvs->M6hfGGS04O(Osumgr+A1~J3T}iO(zM@b@^%f_FpUoE%@}{bZGp*GLMmeetZoN z2zYU{D`|7pQLt~d*Xciqy7=bdb|C4C%SoGi0Zwgn`!@7@Wk>;v=x5WGk^P!AggyC4 z)v>@9c<|!{9ub}CNEPNizhGGsBfy{R(Q{APAzl7LDN~S_mf` zJ*RH5r#_x%J3r3@AisB#xhvQ8U^*mOl6 z-WiHiV3O{z)5UJ@Tw$ei7IndjKf3bf3u%%jKfVPWI~-p!>{ur3URsaZmms>f zoMrK2hbOwy!G5Eg`&2I!<-YePGk`n9!vEP6{G*R_6bY$5Y5XdY7;DBU`0RdKvJ>>APMB4<&3)a=-{nY9H? zbuf#9m-aLJ3$nrw?9ThE>68y)mwyX8V4*JXE|%<>S#6fD5IIv6N!rR+#2@W zL+1}!sK0V~FEpyYa^3En*+lZm3WbJwjjT4O#Qgh0mw7cQa+rsY%nv*`+W@=oVl#S4 zx{f<_K_RPe`yZ4f$QrTnyU@c{M@-rI(<%e^Gw?ySuo#s&Y@ zhvgcr#H)}Ik!cb!!c1cjgO10D$tB+hLlDFH$TpJcDUi>0I=xj$SJ+y5nQCNz*U?0C z+(cNcIr(R+(H3m!iJ3*%)+`gO>h0d;p2&ekM)<|R^yfU?Gs#D;O&*biF9$20h?D+t z9oHGjU_a9$-Y+83Sp~R7zTL0Yix7{&*pT|fpqN{d>RUlOs}(sqcDdM{%@|~GR8r0~ zVF~OXw&<_7bqkj2IRe4$56^^3jGm1$)2(-Q41WVDF3A71)zwBIN2eZ($SfY%9gQaS zZ5tWk?c*f@7qeY|l zOZ1_i6%6G#kzUc?>HYRNi*EQZ$)l|;{q@XkPp}u4Y|}2ek}lK*J4biOvm~w>HaRuB zyYZ}dtb2%Lp~cNbzoLyuRuX2unaPbuPKfJh-BlRHTd*t(mY z{*-Qx;&J8&Q&O4PF~t|BPo&r3H684bQQKz7LQ{+gTX+87@+{>0AAc2BROIf7fUkxd zXoPg_Jlu1*)KWI2Z5U0h2)_K0 zu^BFC`p-f4PYpOHJe#mCC!shze2^RJzJ)97(}|yl3Ql{18lIf>8l9P8-NR}vYL*(9 z%`Z=C&>_AZ)%cB^d68PD`R)E(_HI}A%9Wb;6Q!82U`$%;=UBOY)3*Y$XG`|Ga%+8I zgpwqmlTR;J5ISTuM*mFNb ztYyfjDFm`95jYt}E*?_79XQCXxDuH|x1k+cbJ+OWwR7pPLwd92$|94{Uv+TBEwz3S z7Iab=?)hl`?`eWs3q%ffGId+5Ob}LM@TA@z#x}oc5$_!bDfa8{J+#`%JKiF){6^ec zqirr)G)&I$m8B&slm|Wc0gZ56YB>Ep<=;~T?yj?6YQHgWFoTuG+u2bUU^5cTrNrM( zb?c-kriJHC`DsnV%Vx|VX!A{(UyIp<*)k20(Gv+>g`l4$Bh<(Z`+HDQQplDGjytHV z*T)gG7#wI33^U78>a965KX!Pzbt0FpE8@6uA+TR3V2dhjpa$*Cb~N>8b#c={Mz!3% zWd~swU3r!mhv7l{u5sn(i_$g7QLAd~F49NLN8*^;u6yRd=DJ_ z3&7j4(O)!)ArCg|A2Sd_zR>iUNCoB^xTE-7=Y==Z?l+%+9ZFfDVeTmIy*04@s1#_= zEvH}a$Kvfn=TaQrqZy;`e|+d_lLPYP1H=0g+>ctjYtzA%U)=GZ@^IvPjeO-9`}iGu zHBXtuW{gPA>_(={tS}@g@BC3iQNgb~_Y;-9fAa-8&1Y@XI$c8a^XErj**X-a7o;Gb zLi3^T@{SSh2>9}j)sXDSArf zA?_W^>r$;ROS_jL$t+UtJTP&MBiCv2rFv@go5JN$`a9i`YX}#hsyImdv~9{<@o zA|TA*$Vx*o8}1jjF5H&2VWxGIk_tQ2?~%^H?TvlS?WArzzAqDp8=5Cqv~1oC%lmzZ z&gKyQjRXCm4_(l4mutCT!2OzOyc*vl?g{aj*??ie5e0Qh6)lOQWQyl1J+IyNNcd+W zy?sPY*drc=YVSCvFCS)LVtL8J{{&ZczF@x_N=NnyX2o?@W^a>mqM@-eDN>eC9qb`dJTF3qLQFIy#eq zxTNW^$}d_6Q#0VAO3cEj0%-T+L0o7$Z)%k7zy&o8POILkz4U{3ww4?d&k*L4Jq2>c z(<73JOL|F7RKl*zbNJxQwD!524&gID`VvImowNq>;6;--I9=sYu665Mn;TNYKjEaB<_Kg7&ztl;L& z2ll=ucq2~kV~jUlu)D6tJtClr^&&O(E}^NNVS>!8NOXiJ7e?^q=uB}wwN|)>LQjD> zY53vLo|@T}?m2zvsm(Tm2Q2pdsA0zC3@LKe+a}$3K3!CGYAZsfsC`T{;g*Eh zO(kg0z2+VOxp4(%J`zF*svbp3JIzlxG%xF#V0uSOHDHaZM?^eU%W>jTuVNrvfkQI2 zAu1`5Rg)@nuq;`J?1JG@#_$KDde|kb#CJ3B(r6QZ%iaYbNx-E_4sX1L?nU_{Ul9}h1MQ{=~3)Z-#3+~r`I zNY^0~ce#n!A#WqsGmJ?D6r}jKneXN0eg?>S{$&2mwsi4TKuV|nWh|v!BXSGn<=tuW zOX$HY>|^C>+P5%!T(kL+h?e5a{CTGy`00^PrqljT$5Qj=$3uHutxt!Mr_j3m>S;zZ z%zvh7e-oT~KU20T+JyPJk&~)+XBr_M{ss%&M z#hP`!aOX!?c(ZRm!svJ}dA1k`*5tTBp5-^^Mqk~6Ikq(;s5doXX2t6*{w@10Co05< zpr&as>x()C9Y^U#1(92`S!(QER!3UvJ_3TFNSGMn;*6dkpNA z<;~RF=LWqP!PaQuzn!M-R-V?{rcUNeb%M4cmWUL_(Fv>Nwixb{nDY}~ty;dk&zKQl;pQ8ZM-(dleFF{G_`SEBn4IeF*hkc1NUVXsJTT?^Co%PsaDc& zTn4%`YcKP%-s;irgTrZYNdB}U(OP?J=2SbHvrKwIR*0aTzdYkf*ZHgbFa@<1?(C_+ zLwG;ASd(`bH}@qbfMi)LG}!s zM#FN4+vEm}ce5iP!xb|iE_|sxLZ0CWRa4}@nqsaBQ(Sfp={yDTo_W$k;1o2tEaJIv z^JNFQ>Lfbt;XltYM`%`#T(BKKJ7~nor5_rA5qQw zZ54Z&cN_edpe|1H1sBOD$S+KDxOsaSYhn2XG4_r;gyr2}uo15qtG%LfDg`QZkF zhp(87(Wbu!O1#6u40o)AMbdqA$rV>Ds={M_hqomIV(2!~hQdteaN&!$5Y}~4-F_LD z0YiTiYlyws_iUP~lQNErwm_+IQBMy#o;(T6EBSPTETVHu_|xih<ay!jMbMfWQ%jDt z6Y>bfO$6BqpIF568*%mnSB88tBDXZ~#iwZ} zj!ykrDS55m%Nkp##+R}+!oQeHt9nii&OaB~caL5c!iH1YVLy^Jt%sc5!#!z(xy1J( zGQ56&;WZ;1DS0&x4hk~Oo zSl2Oe_62X9jC-uIYZ8iLW>FP_YqAx(@0N9kuGV;%sA07#^CH+1@Sf+di_G0v7tlMwN*_=P0*APD_SI~J~6Kk%P`8&L&at7Bw2z)Z+ zDw8yy$&E(VhYq!KXzpyjQtJswyA)F$I(0 z&dhioZ<=yR2&?qRRfoKSlMx+d3{(BoSW*C8fRY%+6wVjpy#+y6~bnuSloiycS|khus=lpvo}*H9te}#^~q=~ zb;Ir}*5`TE=h2l|k)`@ObrDYTb4yp(x|IS3Ai^^*3ZPSo9bMxP_Ap%*X^&64(E-I> zrqiXA>o~*Y(y93e+YpD5nM886AWN9;h};z~;&rvic;!eYcIax8SFj27HpPvQD_K>5 zIrr+(4b!UFTzDuWJneF|pO6?qFgrk+PTOyLn{Qc;XZRTAi%?{2HYb^$a%`53Ae(~G z6-lfjLyh~P2A8pzaj?nxg=OaYOd2JBGH%G5?V^!&CL=JUAh-0TZ$#!QKem6CJt;-p zgTl1@Op9R+Gc(>ahe27&ba&4ePxZ>Tc^V-Ex-A|dDR+H>YABpza~jtV)3NNOYu!$t z*5)<46uPu`FY+@tk<+83dud47*~+s5Z1I)0McEXgLVT%VsWh8=sBXz|i*Fwn(Rf1d zy&#l^CG;A*oK2YLgQl8;M>y3E8vMv;JJ(rZPd8e^E!U$K5Dkg}PCT0kBf3UB#-q(6 zyU~zk2BRKw-crBm=bblRrY8sX$k-kHO*x16%fM1JRi5W5dJ3#%pXDxd^MZ|mW76l* z>k`GPi<8a4O)lXfRFi&wr0(E7OzF^B#CqsSc_@3)y0&}nGT**k?i9}QHJtR!F1J?e zIAGxFykXQC3D2*G$W>16_#`frQZ|}_zYRAlfb&0L2XfZCW9`9qM+)Nkb!OC3=_fiv zvA0ArcL#~sxd_j;!9trOx`Texm40R+fm$@{tjWX_pVm9YUtO+9H(tu{?$-|J?BhZ- z5BSW}v7{NBiS0}F^V9$;v|+_nl!Q0i+|nRb&fsRvfoV;`$BhBMw6pLK&u!2Cq#1Y` zhK?9)HtjmAcAUKXt?PB;8CBR|GejpDKRx4O)p!=z1A}SESq9Gr={y(NEIMjw#Dv)s z&OLK}x(=ABHxiuFSqZMYBKObb6KYIW5{yfRR*>RP0(@8i~ zUYcUAEbjv1WIqpvaTEyNsSB?DVU<`TBIhz6qN~j#>LJ zgK`?YuR_FCSvH|*n=#X)^Pxg#K5t|FJ0ITe-75ZMM-+~Yn0=#1K{`O{@ary#$Oq0q z^j($8F+0}0WCyA280zhu*#?DTm~_h#Iz#QN->S>Mo)C#C!Ed2moRT`JT><>iiv zed8EZlvh~FrBfLZ@Lo?tB4@QPXYG}Na=i@I;Cnfne6hYhux;E&P4%eM&aM~m?Ow_K+>k# zQhtFqp7OZuZ$T+k%EvxsL{Lg4Nkh;2q)0y1#Jk+cjhVTcu=!K=($)F-gh>&p3sAH6>qF@_Zdk{j&O9vUSWY<%NNbwoQcCtTwN* zmovZE=$i?;)T^&Hwl8A7uc0)xHNES_;M$sBSc+_Hpd8(6U%Gr--Y9kaO?YtUYqX2f ztQhLS*r45CG9$!`SDv?~`krSMDbp!;g~ol*N%|;}P2s@nk;~sh!FJ2^DCS^}g@R@& zOxbOrMAJbW&PWGm-cP5>>=y_lA=!^w&L{6nhSkD|Pu|(D2IpLK#0nL^r1kOkJSd4|`u2dC(!n-+Hu;kjv)`vX zi=Q%_B)^7tc0rf)%VN;q*Gzt^{+hkdBim=Z$(E5^{LVfyNKoH-ASS#Wf1B-l|J`ws z+&B|kZOuykfp;v=3Ld_aH9!6!27Nv+R?^34JMjYE{h7M_0y(8Z{M;wluJ@Q zHDvMqgREuf)55ZK>G$2KDA` zD;|nGEPu@``BcrlX2g9--@$_RG4~7f%_fa6Jz;GMzrQinx*M4uY1X$kw)kev06Ulv|o+`@9HeaU`uPR=#AF_x<8tKLtCO*rn zuE}h=xgLE`w(X3%%{=lYlD6vd`9|IBjpOXU^;LpbcIozWq_r8hzx}wyDDS2{_qhET zjyzuX>0`tBh|YGVm^d*Z*}v_-(le8jto_3V{*k#T^N z#O2b8XrtHpyZ_+NTB5RuD6XCwfBS^$;f#-OuM^b>W>Q{hUdg|0p=w_*do?Le=`^s> z_{N#~XY+*ZpPqQ49xh+m#eaWAbya@9Re??R7v9YIiGJ7H!d;pP-dR$gdaon)hqU>g ze4|{H`M|cQz1>qO74HwExZ)c($?2phqPQ1ryKc{Cn40zvy47F&{Ij%3aoeYp-#+)f zT(F8cE!>z+V2>*Og}Ua8SM>2S0{a^KRhCl&i!G@O=@u8qVsHKl%dyC-+PsXuy=ve4 zv-myDAt=*^nZf=8C7eCVgOvBRI8)k7j%*1gYw?H_JBk?n@?8h^0v8@1yRN;+h76Zr zy%M32iGOA#4{R1^zo-3G8mE~PW%B$R_ZE3~Vmq}E={^S)QGKl3VehW4S!-HC<*3Xu z%;NEbb9`e-5r5Lh~5pw2oe^$Tw!X3dPmizp2QzVsO1ttbR(nj`3 zJ%$b;PAW}thrg+uWaKExxSTKhe@_%|Zw>!l$%y||y?KG?GBPv*#TzxLdHEye02kDi=-(j_Q9@~-$h zMWpO}1njsGEm%7>wh>5F#TGrF3{gH<=6UG(#GeLd7611Jb9}VgDN2el^=rOZhBUDu zMe@%fHFM!KXk}zDW6rj_yNMWoSt0CAPC&$I{CIQw7cS?GWARrz0+P2Mlvj(wrsF!x z-#jz?T_ncpEE!o2jy3-GqMYVk$tRzPb+cE~70W}9>@#O%A3nWz+n8uDAY-w5Rl%?f z9(~i6?w6*mUi5IYxF74&pOZyJHmW0aHnTQXJf8gHdSWl#)Kz;K9w-G>ap`+aaoL?o zL}AEY_*Epj{3fH&_^e@aV{J!T{(=4woCltbd`bCJWY>3nh+T*KM&Qx3By`LBlk|Y{ zk|{|MaXDP9MwXUEXssF+IyAW9+nM2Zn4R>EhQ9H}ad2JdCptRc1kf|nI)05tq4bPz z&0}v8nXAZa7a}vLBW3OG>O2YmZfHJhtN-=%UDPK@mp3hMoZL(oiq?PK{iZ?k{Ml^} zt5lg7)6+>IMFAo9oevt5yn{FYw&fJj(sqSX2Djc}zkC0$iH+%=r4svWvXZ>PJ8N~# zN~lnsqKV1VFb$1qrXD91?N*SBxQ&#Gi>8h8pTJfY>B>KF@22@tYAq#h;l4FRBXhS| zs>GyHd)MhDDIIk}ojtkG(9NHGY~Lgnj-nrO3OxQNV35W2C8*Z-<4+;VXIm#7CC_<3 zN09K2C;wcQldSAm(P8*VuB%_Y<-UE3(&qf=$qAAAZmnOLAXc7u$Hd;IW_zP+=3ZSMzgyxmhWH`9v1W7^;NV&2@oaA4 z_X!yzi4XL~YCwjU+w7TKV*n?4N19fczTG>1h1ulKsj1~fT>)RLe7#6(E1{7;elVur zV~w=D6Mzrv6N=g`*^y8M=S_K{T31TDIr?l;Qpt9jw@ z*6*j!8d~pbF|5YxT0c}^eHj162DDN`On_>E~G1_)6(gtdeV&?8^#q5n&Ibe z1EbwynAw&GFoDl$XMNb3Ph$=gZ$eyZcpm*A%8OcKG{CHvF}!9?O3>7nHZsbm8uf%5 zNuffFpP=TK)EYb|vn7Nd`g0K9Sj`=pUy?Cix9yvzF`>gY4xVjeJ?H>3aD&@y@}_8+dxq_afmwE)H&)`<8KwA3DolCTBY*CvX{JkYEgsOXiull-~|TbH&{{f!K1~ zzp>g@5IvBAzT1jHs^J6%i*4{{m2MRbL0Tl?kI5TA8yosXhh`c7(hO0ev&{HGCFN| zuL=S0)||@kukcXv2mPv;c2;hhe{=QDYF51xFO`%~N)XtJsP8YtH-%FrO+OA%X?gtY z=(H`DaMC1wyJCgci;i>lvwqRL-e9%c#%IYAQ*N^^c1fW|Zz$;H$>*wEMk9>$o*-&b z-zZr;Rs2Brs>aP`bEXGhJpt#JE%k1sE4(qQ+P_iZs9PbZO3ALhZ+mCgcw#?;S-!!{ zBEFpP)Rp*goOjnGA1oBrRy3IJSLH;|411nJ*0lF88)1;Fg_rqU})GiTgqA zQ6^{pnAsx0O@Lkn-T{Y4dOU*L^@)m59(-hWpPcd)i2TMgJFYq0GB(&2<3TU4jk(xc zK)H87CO7U^zgu-zxN|}9?H`7>|CvudJzR?1@i5I)WwD-Ki^rUl;bpP;f~){vB&n!&BLF1l4S zwJN@Iqdcc61sXp{;!zFr@W#eZt=XBBbe`WspJ<$DzY0pLETqy3)FDaIKVI3JXSr!a z(`->PC!$1m7t2)M&K5z(-RJKuXZJ`^w_M?%^83i3;wu9my4uS}Iv}D0O+Hh~S6Ir5 zH=l1ES--?Y&YU{`wBv5IRoYEWeT3?VdDU;}sEsQB{j0Rze26a?SN2>+7QX7+EWAkJaFXe1(<@`{~PYU5Zb^Aa0 zWvOauF47MN$Xrl$bnM2=V`ej7Nu4_kMT#kHIIBEWIjj6i0=T|4IX;*xl=|_mG>QIJ z)AWl9j`Fh!VLU!h@xVV~0v0x2=Im=WvQrkGi@5o(pdVBJ{+W`x}L};3?6{Y^R+Cc=PoQA zNSvh`{h+#sJ4)G!8XI^sw2DOtWUn5rF!_~k>wr>%XO7}tVHc?%i)a0p(De$_p)EjL zw_yCxgzC2I@nb&vMvKrQDnfO9c^Huq4^XgSP zUzD4hgfr;wb$ZkX&jcF=POe+* z7YSn%s()&DMU!ZzhgZFBI;avAsBd4i)O)pliE)UAq)Q8SHf?&I=Ua9dG=I4&7Y}N` z^i&WjG%V|+nMIMWLsjO2bU^9`TB6D$zhPY@jX>r*rkScwV-zw&`kSau0n{sEH6Z_o^|C zSSt_TfBWlosS#rAwaQ09>|5Q>xKsooNA0{qvOi>=a(K}FcMzdLYE3|f=}KfSBZ zqG3sz*1GQVnYR*yb2G2Qh?5TL>UCeu5{~ogwT%$nz19DmpIV7f@G4NsLb)pL`k!mD zC0aWM5OtkNZV7}?t;2#}m&p;1Z&+_Tw?obx;|9YvFjoA$VY)X%?0$|n*^9I2X-D#Y zjU|1*lnH`;L38B2B15;=i+te?}z{0BZoHl*Mlfz9vC8*lt2b{O9(gxCyl{ znwa~zr&50yJ*9njBfg;PUEcu%1Fo0-P76&6dZ{O_Z$#0AQkga+NpHqYS~JY%r)387 z2o`Uce?jPwhV1F$2u3NMwwjI2io>~Eu32;y3XX=CYrzRI&u1&wUB3^CXc$`SmUDq# z_AF_(^)Ht<)U8$-aAW6jsG<*2=7a3qWTJ6wz24vlzMBC$wGEfQ+Xo3`sig;pa}_jT z=VDAav6P}MEsFg45TrCXI`(lk?Vh}@pPbs*x>RJP;-Y1w?y!FgwrqADefg6Nlu}ce zXBhlU@p~$B9rKh<|OkC+iB}8A_@rwV868#^0 zdJ0>@JR_Vw^hJnazgL3d?)YM`XgWavEl1m6#7<`{pNlJ(%DqGktk@kkfC%KTFz=2V z6rKE-6R2ZA-fg_88AN`aD$S-*% zDY)K0!~oKENK?7Y)TT5g#|q-X-4cBHr~iEP-z>T$#aYJwLU5N2$4jJD%lq^F`_@EM zUo=$ezaLyAKRZR(p3;{RV9w!*^}!s4xu}n$hekfB)q}A?f)&OmG;E-p0?X>kJ7(J$ z#`1>`u{UBNo~$YP4%(5AZI8E}eMB^{sNob)uT_C>1rECww~CaFZLV@(G=;@O(rpuA z{0~|eIo8A3KGKJO@6d#sctl#dCUggkFjqWbF|?&I8aw=F?2fYERointxZ#R_JL(SY)f~N9 z!ODh!Z;j^~JL&k8(+tdXhF8P}hI#nhOAq-y?ZSS1Ilu9xFKSED$4$FG(PI21@HI6n z8=bAX%3Acp=SR1>@#-BmqR&*SoHrh(F##Vl{;@vQ(NY&L{-u@$txGm#`rA^|Q~I$~ z{LS09dRCDE3^g7*^YsBs7NNhead&<%RDCplcRM(Q|EO74uePV+W77EtzF0E6j6l;G z3|&C?#Y_NB$R!m#?QRbBD-P*{HErk59qSA&Cf2W+i9>|W3yNNnR6m(8bj;G~l&x5o zsc4$XxM@$Jf)Vf+2m&5EkEes6g>Cb{w*CwWQ0H`qBT9Y*;+*o=gN5v4 zI@#|yAACIN(VsN*SFhGkRwg2b;}~d5ThzaQw8h5-!x~aKYF4apO_@DSlLk6k2c|!p z(gkTDX9p4^Yl0i(xtcS1pKjCU%#V60jZS)ZKNMLFrw;Z@Sr@DVK7g)7=fy`PwXD`? zGlZ7YTdfJBe~g$dMW~sg6#V0HSw^^`RFT?MtVZ|m57Zf^@O8C;ou)=VkjgT#an+xWfXd2=x_vW2=)AhZh}HSqga>_`6yNB;UBaD z^zbJ-40;Ghb3-reaT;*&Pc$u@+5yK4AAQ5-pMc^H!f1PbfqEVY2j;4#F#=(}RpR^s zuRvY6T)p?rC!@l*#Fyex!SETI^(fJBUL-do5LX`x`!UBfx^5pTfNZJt7H71|L1jU$ z2GMTt0NeFViEwEogJ?JvlAO^hHXZf>zyLVm7up{R%S7cvLBr_(;C$kW z$*2Me%Tcs60ImBSkO*vzdk9A?1IVb~VjXdoa7WSbJ1r1+%bWdC2i$G=rUc#*F7gH! z2xkz*-?}cJBD}^vlnN;=jwgpRh$$um;AhqWJ{gs{+zV7pkks8Y6fg8}5I}r&T>uI} zHD?R>?)5Dnyh9vsc|c%7!~$N@NE8^!aDvj@~>HP#~!RRpnPWoC~SECUDc!4cuMqDuy5Eqiw z4~8bK0KlRvbHmIDZcD&SP#BG9EQK5CkRlP+61)cj9{#!_06#p6h5B3LcCQnBUiTb9 zOF;u1ap6Ei6pR2otm?dPGJ>H%W>0UdW9VxmojXW5AK*?d19A^(zz7;ew=EDP@U%k( zJ!sH1Q-kZ~%e-zro9pU51Gse)4FMCfB9FK31Sb)g3Vs2BIe~-)e|8r8(T+j5Q8WjT z5bOn}|21rz88&?s_sxC1C50RR-xfXjzk!GULL zUVwhrJ#5vB1i?M8nY#gL@mkX(fpBS?OI`a=AwXUH13|ttlm%14Fk1B*Gguz)h@%DE z2v8tJNPX~(IMCbD;@u)Z7lhQ|LKq>@KqUz=K(Zu&J#MBFM+-l^?wAl0yeqU|U?1kr z1WN#hnNH)M)1H6+b?wfH2|Ru za5{>F2`HZ|0IHi5*}!C#1gsssCZ%@mnbPD)k7TL$YR^E~wh|n1^Od<=@WbojxYz)w z3O*vxz&)?;8XiGNkqJ;(A9@N3gQGQ|#&hYYa6sNpFcK)=FZ2e`ZJlz+juRIqL?kd8 zkn5&{4Fhs0n92mh!M(s;(skZQ0E%KZfFkn*Xwp*C5OK!C>tzAg#v%aJ;s3_+T5k`a zsS8Ht+A>fy2-sMrt{F-XK@w0xZ3NHJRl{qQ zn1>Dq(Nx!h$XgM_yV*}9_8AEe1rceeLs7+dr~+WnQ178L65TfdS^n31Afu6oaI5Rd z6MF;^Ku%yTGf_&9APZC5^5*WGDlG;$LTvJbt1B)q{1z~zq71*jqbZ8sed-O9xe)|A95ujza6@pD8EM;g74Q%_BQ_U};tjnTLQ`II9^6~V zL&+M2%fS)7GcYLl$1#a0ULM%^2se`;jIfM#YU@x4Tun3_gj5s5(*rse^aJgQ*aVQ? zsKjZ*Tb6-4@<$LwBy0odqU$bH`~cw4wO_BX#~H#s?c^b~MRD`g7X;``gZH_Z;%Af^ zBl!KbO4maJs`C~W3+F)Ah=t!prYG9txSn^2hSLL_Ain`~+I4r-T*HmImLeNyUPxq< zL^4X`TDH3x;3!nn^%A}7+07JF%ts}ODW;nLAC8y zaL^i1-y&0gWBB1JzOXFf_W5Z8;A&j3fDXrMr= z@?CE&A^_S@p6jh8;QA;ezTR4p*JvLN!QP>C#Q}UL09>4R21E#1V1s)O*L@R8gQUBD zCUm{=P<^CJ6va~mN`U@cfip7!egzKuo$x>~JHb~NNqN2XJ-ptUd9P0!?Df{?1#hwK zBmx8=e88SKGnk*YjqDz}muxkB_>?#H2M+Qyrr7VjdtvrCAhb~)i{tC}aIa$In=f0`1c zR3>E8&(p`Xq-kJD|I*j^I+?v}Qwxr~`#gBSE2?pa4=|*oN()hI zeDZW&27uvJ->`c4PrADZm18<7P7j@9I`&AkWop4&$<_OShkD;d3NA{8riBMXO8qPp zJfQpJ4vGjcu*ZRTFa+hjgnxN!dF3! zh2#NS)2-eC7BTkeCSMa#1441rfd5AXcMpicv6=#SbM)x~-XR=P$vB7}fty|RnC{@+ zlMicrd+(oQ1Eg+xQ2-)PdOaG@ZDqIN{+}SMK=FemeiQ)=Gimw(_fbwApiBkI@-b_C zq4!V{KwP3YI=~!4!v|1r;no4l&cLO^iK)>iaO?15NNb+sfQW%IHgv$1W>pdZ%G&1u zT($eQ0q?T7egG~X2Rop)6z2#KJV{ADe~phdA@C;9Mzkm&V3A(mbqXRHT`mkM31_}G zfc!lg%tJT?G?xG@Y>JtIzZgS*n0sR#p$PRE5Sj7M?q;Xb21#<3+{EtZ|&@BKHn*TAe0RTN*H3py% z(TD(eNjNP5yZ{r!RD$siq>mVIr;5u2;wsz~0VHmDiu=Er>;i`1IAcIuHkuk>#H>7T z{$G?`gLfU>*KV7nZEV}NZQHhOtBq~jww=bdb%>B?%YRMAPCdJN?@`>gkFGZzF-el02ak=E3oMsLM<@=rRXbw6vz>GU{i3|HtAEX z(g(2~5V2k~a3Ae|>3#{|LMMFx0VwI)6&J8cX7ChP5M@MrAbfd&S3+PVgFFB&c);w+ z0#R5D1_Q4WgZMy@!ie?&Qh1S9#((LK2B3o<)Rugw21tnnJmMnQ6aPmF2&fhSDc}B) zBKMD!PQV-!<_Jit5WU@ibso)84Y$QSYWU*-8cm<#xNAbQXG#|k>& zUT9E1;Wf4V1Mw1=zgDa(_a7^tft`s4_5ZQ*4(OQ&`AQJjq%s%^I73Fj|HleGuq?5H zudqPGSXYWbEF`ErmBmeZ}5BP->@&OWS6YR>J2jJ$@?thx< z4)X_8Y%lHuh)E~x(LCV;>5hL_8n7&d`2*q6i~FPlfWBX$0@33Pssn*BBYprv$%%Mm z2R4BZ_5zM&!)gJfBLwe({|W4o>z}}K|3P5~yn`Wr09pp1B>sa!oA6-{2&_$1-z&l4 z+hE&}!oOa_b4^7{wE2b64kERN^ehB}A4x$=0LXnFDw-+sv#>U{U77wBY_MT*E~$U5 zMtq^T@O!RsRIEU12m)U)2L3SxEQt>aBc5-n7ZTqO4E!ltSMn}&Mm)om4kSX zf1Sp$vi){m6!2g349kRFx^ELbU#ofrW1$0HzzI!H%n z05Hbj17IjbYy~7KP6T}Uh8!oNjT9J10Gtx=>lX~e2MiAauLNTs$anlk?f|Rb2CIQZ zzzgFAUTG2dfokg}ya{MR2mWf{Up=q|3@f^yTY>tdFSZ#2kO$}J4fvuQ#04zki0(j^ z;R|er14N)Znga&6L0!NQ9M+leiVoBRZy+Ld;(LHddhs(^AfbX*L;uSm$Nw0T8SDY@ zl!v_mBY+D^|JVWp-Wwyh16eIjd?9#^93!#`Py+x#{|5vF3?LYc1;p=7;Fq+|FaQ5( zH1^;gp8$C=8U5EPadr*<;Q#}cMjR0yh!9_Z2gtB4^ecpaID`R1a2P)E(+p6c;Q+za zit$AKmqCscKq!d248UGEg9HC$_g}jyCBg&Z1sHMs#|SvE6U;6-0B0_Y7}zO3EEia- zP$EB|k?3xR!c5ySzx@*;=>6KWI00A4!@V}Qk95w-zF za}&h?YS6d;?!odOj$IER1kOQ7U`>?6Mu0VmCGz{P-F$K+0-V$DlKjIl2AG8gDM|bx zf%H)UHdzhM0IZ}EvjLva3FUwpX9R74te+9d0xD2WgvWnv=*zC-zkUe=48R!N1LB+u zBL`dn{Sru2I8h!TD*+gQ3joG{F7U!Wgs(p&06zXprO#I={~CWeU_lEj1w3sb$OELV z2xkHL<|e`eq@z#w=ii6G#Honp0NNSCX#g$IFoEGdD2{ah>HyG`fI4skEX)RCufR1j zod{3nKEE{JmbrlKN|AZX^aiJ6X0U`v7vknlj%;0}Rlo4nC>;D3;O#h1W=YNF! zSC%aX|0}!kVd#KcVZ>hG7y>WM1M**SRs!(A57s8UngilR2j=A_&;#=9UZ4votD9f0 ztbyU2t((alcf>8vU7$NeF!#tpAR8KM*m*y>-Xw zecPM6VBe|tZQHiIESMv-?M0zlaKTil8m+-=NNZJ@_!ZRY?=4X26TNDbT?#Y zy$jr&op!BjnO?@7$Z|PT>*(ZDcUQ{A*85WN>+53aHMVT2D9;58%X$Gf+qqW2n(KPA z$_>~;4Fr2e47S;!ah`haE3_ADDwaY-XOO@#t%{?hxkmq=BPl0WQccms(>`dIyaE|K zh)XB8K)hvo^&-5IH;2<@H6AvaC-4wn-d(NhEzL8$Lsj<8WS!t^|C$4M-W4zA6B5RBInmOn;Z;SZ9m8L0Z^xUSFSFz@_wC~Vf_!W*a_M?@Y_@A?cy}&Hy zi%bh74_y_ONk5Su%4tVX65Rc^je|ISR;->-uRi5$u0fwsxWDFwEkW}Orle5KWwsQQ zd)A?bkj-RKPuFoDFKS;5#&vRaE}wr`l8WqURngL}ZX!)@ttms0w^?$0*mxMcptc!X zOAH9k`R*7HLiZ`ZWmnK`Y=U5_$r>*D08N&j$$J>}Gy+Gk*BRSa1KeHqlkec4qn3qi z&W`4x4pooD9*tJSQ=Z%(sDklyDMaPLZ&i_->a|s)Ed`@sE~OL=IW$PvK0TOWzJ;Hp zo_5_Mv$lSx=xkL8-5TAt6H}O>q>p4+CN6Ix-Tn4``P=h!;>+%rC%5(;j?{g0U1tl+ zcN*Q{^m)6^^Q`4d*Hj*;<@8&X-BgNKLCHG;r5P$~hWQvToU?a%yZ-yC zLJZgaBG(8##89KyrpEW>8YYiA<)j9sC>mV%BbPL|8|i~O#vs5I>bF;pBtO`J;oCF<;Ld{PG3hakDe6U zS69SuId{lg4e-i{ZOex;(EP0HOD@auh3^H0%TI&P?K_N2Uux-pb}_2cPQ8GiOk{`h zDldn|QA<=42vi$fKd^M5%^r=1T8Y5o=QLL2Q&asCtTtp>?=R9c>N@j99hQ#Aptntl zqoGUVy(MAmdC;|L-iXnzsJ`KiNzhy_1b?uvV3hK@)Hb5zlB4ySlALSJYx!cBBUIF` zKGu~7FZU+ZXm9sOWAXPz+JZ*%!zXyKACkZJA+u~TM7=EE;p4A8ZGY^Ooa$K$o)g7z zpA?R8>rW>hS_1m`)RO=?cV+bPW?h!QW0mva%B3)hq8{gIqCrY!zq|Bs)7#^&m9ial zY@L!x=P>MPq_n7|DvDEXgS6%=x7QY(?;+UI1x47)!Arc;?z19m$A6h<@9?JVd=mA) zhf2Der#Et&oN~97R-7bC=bUjrq?QSv(M@?`qSS|(?9pHo`3!~kW#=!K)907nuStyk zZo$g+Lb3XF>~@<{;$V|vUmrF^@w490AUX+yN7KOtJ)euCJuHi8+x>b9)E44Yk)wkB zTqK)X5i%>Emv0MEG;QmA_X0ikR6LCtA*I-@NQ;piyK?HnxYykrw`s*byu!o1anjN0 zH3#3`ICPcg8AmzmR_Eu+w>7xD23i-<$}ms7Zz!<4?{;E%HMI08Y>8LTs&8r*d3V^I z%E%`czcaEN*~rU1Pdojbl7q5wQ!-dU1lRP^jLFZQeS_FYc$9CJ5vi^Fx__46Pa-jnN<(rtk%vkQ+{*s z&;ErWx{{jANYB04`1<`-9ZsehxigwYE^k&-I5dE)q*#E zO%)Ca)g1{1Ny8)s!%ESje%7=HLq^cEzS1`dS~dYR1GLs$8>+vB_|4L(&@2be{jn&g zc42~;e&FBCYAynXK1AYBL3wi_)#uSe{6#G-YQTM^PJPI`fmyM!ADVXWl+zubNW|cW zG)etI1v8&gciDh`*QN3;&irgfDE5ZIe)>IYg5Vw=I-M%?HK<~;pL_-C%3E;hqQeWJ z2$eLLV-%+;0|eD-->w>&?08Ao4AbR&0NMVo7b|0j*0M$Pw2()`>!xIk;5{$o6NTa9 zc#Npj7_CNvKUh!=UBJ_Z_Y{)63@gq3`NrT_X1?PlDALIRQq zwDDi4z=sGJh^_NI1ZsY^@mA`zSHJkH}%*^Uw!xA_mg z>kQJ%OYz$+*A+5P4F=ikEp!bZ{~2vGXICHg~C`Z@>wC+aCm03=%F6y)ksG=d?i#Vc)G{d7)XKa@tYEFGnKs(4&OLOf` za}B%xY($FDPhVXgX5z~zu3sOLNY^`4BV4aDOD?KLK$x@wVU=@#q?7AufU_Uu^je^{ zbh|8jmb<#aPoW2qy)saUx1zAYYvH_$C#hQ+?EJ?3&c1>LeLK{KA+YT=z1|M05o+~ZZ`O(~*>fiUd%%BZP;O?Y`J6~B zbSSnka1vEU#rmh)skb(bCdPwMWWrRYv{2|g;6HOm`Ox1&W;aO_tB zMn)?}*CivomyW7LpPu5MKgn|Sskm8u@HNC%eatW=e>=FJ@;T&LV~jy>O>fJyUyfzn z{xrG|CJITaC|L+dpB}iG>&>fTbg&FwizQ#a4j_ttIBqd?!VmaeqR8=@<3C+vU02W$ar0N<}p|W1x`vWzlBLs>L;q7C*B)z2Rt)CUB94 z-UzMoDev^j?b&h#cam+rivmXgypJVP;TXnC2*s=JM+S3&?Nc4KIE ze+N&Qj?aLP1x$U7Q}ZWdlS2`D+0Y(MbZxB)1pSN7*2iY;*zuQoOGmX&1W>ETxO7$5 z4MIj1exL`ugPFqD1-iB%DfILWmv>F~^-ThKoAkx)SE$BwaDKUmLle}=!Hq*j!}jTo z8Lh0}$Tw-Ey>1!nBIyp#i8fjSEH|3ln!ow%OYua6N{Pf-1Q1P zoGE*6xnnO|(5sO1F6WX(<>K`Wa;cy%UC3h=D!pry8-Oq4k|oVXQ%nu(m(W$w(_3Co zujnX=6FV%1YKG@3l#_Q(U*~=k;40o=;ezF^S+X2yKY9L8c76LOUM$b`s!#QDJV|9M zC@k8mh;IB;LJw{5T8a5G{{Ajbh#&4>rXiR`trX-f3#jqvD_0aVzXyZ!S`-UsJX^3o&M=EOuDH1vX)Xkq6xOb)OhKhSU%~|pBA#(RYqJ^f_72lazh;TQ7n$&0SJH236-<9oui~L`WRIQVy;6FncJ|{mufJcg04$|P z0$1S&CcFZe*UZR6=zT)S4SXf+2%?Owdz|gZPp!CSfhHJz6lbtE6t7Usg-)vsP66A4 zb|YzKUjD`^%V&QnH=(4qGF; zqj8d5RNDxoEkZFbLAgV}RS!AUqHDv3@e2e8xA%X#9^C1-nQV*3n&pPxzND&g5x{xu z&;sk1w>@Czrk(Qni#+k;?^You!c-Z)H~Ub@Ekz3>fl~F?!Hw;P&-K5dxxsdwdF(h_ zH>?DbglL1MgZaq*g!7V5KI+w{6<7*bf6B4 z+blF1FMsDi!6AGkt=GE`yKR(mY?G2RoPzU#qVIHK>`k$cWd4z}&iDvks-|LwYux;=YO}k^#9zJBV`K7V%}4?&RZeNoL2YWT?|KO~6;Ps#CBgkZscOZ614t z-b<%9NU*X6S267UMH_=5QIiiE3-<}UY_2v{*YYO(wDk*#!tWN9H{IAp5 zd!L%~j~3Z-FM{{8M*PlvpHc*5j;Qo=s&E!?$2KYPf!MjAr9xJ!`3K3Dyv z32Im)#ttoq^?-}q$2k0N@0ckBJPIp3lKN1MR?g)LkMzcX3&ZhuI`);dJ?tf(Oy-+S zIQAqR9*F};)o*Mg0|S;FGNJQ?MRteI;xvkmd`Z0_sro))c8MuSUvb?;Tr{{1LoU=t zYDp2GJu0~LJp?8%JqS*U8W!NflI7`iXAj%7Kz%qe<`+l@RGrCprULxcqlT>w+QJ+c zYQvUcTAj%@k|^IgmWd!ZKDdxK$fivvgc7igN=coiX_Kk8=(WGT(4?T9(gn?K`tks40HK7IQVQWftY3lAbA0%zC{53=^cP(&>JG#~*T9FL9! zuXBAI!Jy%#D&S&P?Td*F(~536oHMF9}$>3Rz3F zRlQJ7hj)o@!PA63pCwNFea6^2D4~5F98>hVW50g~vvNc^A{zF`>)X5yXozWbX)5k5 zD>U_o82#dOX!yiQSX1>(p!i0?=+*n4F}3O`(eU;F->depE$Y|Ii$rxdju3^>)yPq~ zLhERiEPZ*)DDDurlk$BQxDRC6SGWk=!5!Qgk=^j& zZyF*tQ~lMS-t+^dMeAPdDn*L8tOkF;h^Jm5jE6Ez$rN9Bq+?bEjKdvY*L-u zOzz}(YK2TWlI%LmHIFAtmS{V+J^SHYQl@TivrR>l>qD|Fv;uz)cGI#wzC;Er&o8Q0 zNd)R@mq2f=Z+Zp>kIh1Cwy1~lG_mw&M~g&4*G2u`%kdYBHgOd5;G}df?uID@PO0xg zs@9Hqzn2vux4Eu|lP8n1Ih=Vom9ixoCd~X!F^eWkXWzd+qKMrgt9&l(;!9kga<+>T zEv_Fus)i zRY}qCzSFbzUGhg5te8kQl>vf?8-k#q1Plg41GoviCIM1HT6A9CcM_5i1A#Cbp;e)z zA7u!I1!5@(xWj$%so^~_OeYMA82V-*g2RFr58SGyFK%0#J-@qdK5`B}e39`kYAfZd zOXae;Tq`=XUF1qIZ%i?f!3LKf39yYoAH+xC`^1M-*tZqPxxS$qo0q#eBlTw^j+k*-( zr7HFg1x(fRYKND$P5O5=KN~slpZvaOtcATi((i%#ltUjif*H&bu7lncg-I1M9?f4m zsfN%sBkYYS-znY2c2c6CC<{Y_tm*3ZHKSqw{F=L1t){8ZEm>uMm#ROyNJ!p#$gu-; z6WXm|^LfYOxwjb1WdnmyeeE@U zGsE6{>%=#gcQ*@%vdP{_2dyNy@WKps903s6R2P4xI!%X`rl9Ib)f5XkHjxN;2WtF6 z*dVicktHVD$X(H&9p)xHegd?k57`xB_}MCPapq!3h<0wW9!+UFy$A$Pfyo5X6fBf6 zuxgdSdBP3Kgx)Zb5VwmSYt|O2P!omukT;?a*M0>(FAEC!vs@e$R~&Igw+nU~|0`B1 zW6WR8nl@U5yKW-h56#RHs^QSFScyYHL-SZjRE$q~v#g>i+Q#rm+Si)nG+Ni7!Vt9~ z{{glF=|;Y2QtO+kcgxpS8L$w>x>;M8NyOn_LIW5E#^s6{Q@ajWyiJ=bPC>3-$45}d zYYB{fdkMetVvCe3uj35tgIx%+G)*`V*e;#N#2E(PYA0WUU-tEq3ljJr1^B2y@so6Hd@1TM>z^39Y57dW4IJeR8k(*3r59>^m@Q}BI?s1B{&{{A=)!{JR_K#dw zxD<-62&3YW45cPmUBiEC*CTu{hbh-+|K2Mu25 zortaXPIw)kQOT%LF1&cxW}*HGn%4VK?NgdoHie!`B<&_P>SIm|=~7-=<{E?sKN+7{ zWxb5#T7f@ci*ndcKMlhprSJE8V6cr4Lm!xXk-A18PyxdiWm6?$l$BYC&{6J~s+c(;b!6 z!;q0%TJ;y(W_)xvjb($76F$cSr6Be@Lse#9kE^i7&_9=0r$Y1IrPr|Ctxm0~`0vAA zxvknVs{Z5TA6IyWqd|D44lTi@=}i5)Q<{Ay8;5TSKmC9Kz#pkpcPFBFD!AJm3^$xc3u{ zFhAY-5FFvK9Q#eOw5uHTia3fPP+z~BDzcUjO7mkE#?)LOFIgyiwe~uSV=5Mq@f1KA znUF$`>gxzxa?)yI(@}4TtAVSo=2({pynkj**bOtbVfFKgiq?}Mjj5j#_H*$Q-TyMB z2>eaB2rX3 zC6Uggl*~F`#C3d%ct#zTRBSS?Ab;gRKj_%6Kf)!iH61#&B%brxiYuciKArvuiJ8DC*2z84J<`mmx*PF z3WgShPLo86I&19~i>kvmbk%?$t{b*TbrVArZk~g%*ly8Y9Xi8h@tcmWy7lt4&gZIxd_hl4Vw1HQ8&~zKWP$Z!0n^ zG^W)-I7w{Com54eu-T|35xW#dmK6R@YnqcX_Ej=6P^MVFn^?BE{blQotg4^_W`HWA zT{cccNpRgJp`eA5+3n4GDk@LT+&+eq&nCPv`m38GvF>}A;5y4aEV`zc36v%cvDaK? zhvN7%HnM7)h6Nh<#9axQDlb|H1P?lgrwp4rF6bjhy>=0@sgx4jcy2ek=lF-pGuB9I2|^ zL*;?Aa&72evHf5q=?t-zVAy+z+p)ie!`OVZsPmo6io^EQAd>s&mIz$;=;pDSr0|Uu zx>!2az`CbSb6eW7Ja{E1PAI)@fm@3?O^D0gj!F!}I?&_C{gGXcYuGTI3Ue=HAuSZB z1R>$8Jk$(TVKQoRU>He(rOqG+sGD7};dyTjl~NEH4N?;hZmkS%3HLWq!jWUyeiaM1 zRhE{pQGkL>jf{mgvP9=-UA9(l7C)8+gPRQ}q^jH}-75ww7=00qA84-^Y~X!rsAty_ zHZ#8A#iGW2E!(u0G>Njp5?3HvtayjFEJ(17++N5!xRI~bv?k~|AlVAQ-M?)*kZsgt z*UCUm7JD9bA?n}_P3eG;yUw|XliH9hf;~IrmHHO3`}<6qOvLFXj^LN~7k?>-U05UM zqO-E0&DWcYgIsjFrC;z?U1nELI$R$jQgtkKmNjwdP)?Wg=UudP_lLOFP~{|zu4NM# zzFjor^ci+~TDYB)aY*qYCI(vZl%Is}CGSVlMyR85lIlg3BTSUV)E&5qiW@motnP=* zOuxL}RMHuTs#zgB)88vAo+CQNd7goKj!Tl^o<{aYOAQ()Cj2gLmOVa1uS&)|oEJSB ztFQD*J>E>ZWLQC9%N{ezU205vJy@4tt-IP$E@SBx!FQb4h~8XFJAd|1nIiBpLtdu| zLofAvc-KyJpikvU*AEz-NoS6r8@+FN&(+h#c3adRpSPpiGLrS1*jgJ)iLXGK6O5p+ z4PLVs!8)2Z8|Y^@A(_pvRRw9Yx9wZWZ01^m>f$?D%U)r8h47#L zUb@RKKcQ}D_Pmp1+-Bia%rdUYz!&#kn+8k|suRkjua_i4_lt)^U-{bh~U`ge*pPa3wI^w>6Okdx@yBB)Y53$sB+G8Ap7$To|zOt)U; zN+N?#oi=!PdEky&4i+Ah-JwoiJx1A37KFQ?PW3iCr;d+YPU}nZwbN}2t9gA^(29AJ8p_v*7e;>sl_X)%L2VNb z-ETa+sipp5@6q<(HDFurl9D$~QyHwq$jD7{x|DKuf~nT5AywxZeJ4 z^jV9f@H;n4-FdD_wsUoS*`rE*5eVj)R1$qCq}G5S3Vx|NIZm5r;MbhhPsi-tmRnX) z0UJS3ZF5H^<)e}2U%s7#v+|VJY#@V|@evC$H2Rc3TdWA%C$>9*eN6Cyi0Q3V7ccp9 zG)Rek5bcAoaGSP)eLL8x;u!A?lK*AW=YT7SN} zNA0C`N^@jzqS;$ zU*`o+@6v4cVB_}*V|F25el5aNdMvN?y3j!#=QJ^}DOTxN5t%EqzVGRlhb@pIywkNU zJmm_@K6sXNxI-=>@+ohY>3zWPSOglF3~U`;48{6zb%XgETjMM))Y#?p2nHS`);-QW){+I%NVW%)ZSv$Aw9QGDxin z_^2nAj=C0Zeo}1{T|XRlM~>FEdhGAnad+PrdcLq%-`dEou>{A0T%%?~Ml!sr8qO2s zsVR)PgS4(r+YH)FT^rjewjRa9b(yWX9y}{HwKEW!u!_ zB~{JLKW|`Q_7NZE)nV^qWUTie>wf8lK%y@Aw zMu$;2QjNFEdzc%hg!t$jjZn0x` z{iQfqa~8ft!N!2yMf?rs8m*_-1YF_exzkV}-yOY)M0F{8;fX+lhlS72WsAi@dT*N- zdxEL;sn8g8eNvmiy&fd7PsEF!zthtbnri}Gb9l*X_KMk~Hky<QD=j_@&}~PoCoLQZMTJJ?(6Fj-h-}`V>D5?us%PLe8tSYPXV-G3(Oh&cpk{9{ ziFYP4r&;zMQnK1~yJ$Q#x;7Q3FGa7w)1*rhKfgZclrI*pAP?Z*h=edkLziUSuGa!L zcVc+*Onh!}_?vR?ZCIcK>-$lV@V5jiKjJ_rO2jCTDEE+j?|aJ7{3Wr)&H;xYJO3t) z(xxez_!goXVdoxnhN9HV-CqB_ffsNpUum;nD7CWZw{lbDtIJ|f!k0A-uL)x>LS0k~ zqU&`7#au%3y}8Xd(S2PMcPVgPH3yb901kUR zgM#dKrIn8SbgT^#?@p1Cqx^VVRpRJq*(Dlf=gFldAIls(IRqOnenCDN5h_Mp8|7cJ zDO%#uqjk`TGkJDV`Z@{*bJ+LmK-)YdFlN8;fS9s%QK)GS@;o#XRh&&PTH&AU8#eQY z-`x^z&gALK=+U?sKo)T=iwZe&6Hh}zcDwA-Fh=T}Bz!EAuw>=UN$b9~n89*;LMthe zLhOaJo8?X=h?}pTRZnkV%!%-G<+fJKepFtSO?}K02-8k?OsUpaokGa_Np(^jokeH3 zvN7<+B-6U(6fJ?I5%*f)R*r=oC)u9&j571)_HiQ+FqGYaEb+Zv=KEX2PBRn+5n2Kx z$p$ot9q_k(I6>V_isv12b)9|7MWUwN0Mt1vZF$+}vCwNBLIi((6dm zjI1Bjd)T^_jDoheb~pzdt{bEoYe!9=>pvQ%-RdRwhPX`~j#bq+Y?qfk_3Lx>X`mkx zoWl`*uvIR(8ZhGnkC%2AKJ(sRchkJDan*F!B#QFc>ZGy!Lr339gTB)7#BUSOv`Gw` zo4zDqNh06Ja-F)Y*m0X&^}E1tB-=->i$YeZ8MT2%ke4Llx#F0H(#G*nBe8PU^m+Cf zC7#w#1w439-lX25z5WQLuX`pT`CV7$>ac#u{AhTp5_ZRe0T0{81v}y)`m$Lf`|EK)dY1a3aKkBA*OvZJwV5b59*GX zwo^*{XwzH=$C3x?g)F{O>s_b8O{7*eis$!i%8$prMgqEx2NP2df2h^oc7EmqmK(*oTwW?uY-HpL_4+GwFB7KMOU2MzKk~3-6>}KxxfF z=g}=gIoj)lQV1byw0lAU8wiqW-JR zU|S87C?QvLw-Q6^1-SrMe7(BW3A-~GEIqu=deWJWs?PdANrSHQVYpOPw9a}&v0cU) zudV1e#_c5^_T`z;9}6wM%LrfTJL|`0+I%jDiC+8oUyVU6Fm3W(wll+gwq}by-YFbs z!S?qXO}F{=mue2BWN~$2w(A!yx_LG$IWw(xD=oS%2#shjO*k-XzBjLFbU ztX$^O2VMnF**>G=QoEH5I(vH|dJn>i#R?Uam3_*;-=NOjiIe8ITzf9JX2`~{6gApr zF^4CP2dni5ytp>{cHMI`tXs|#QR(2#d($K{*~=6=R2b8ed2{8Vy5J9HpsF&a`Q)!` zIc8+g*G)RAexuuw==M(fMSs427czFqGCy>`y3EM2FDYEoC1i{`TF;*8^V#5qsDG09 z`16f63h$9}#z=j?$>eTpa-v2;@Rj-g=13m;EM{pn2&IyDxWZELPlVZWCyuN&Lxzki zH~+Q@Yd_xmmXhk*w4Tjm#7LWV;oz?R0K>m|o?*7h6Z072p(4KH!E(!I(LMgY}E7Ty47L zyt#pD0$W@yAv+mt=*S8`i#w2%gGo*+)u9XAhGvHSnhN=*PJkc3L5>)+i1?a$;PgG> z>5UMv^^M9IyMcmoEY2GKIrQW^M`VpngrC~&NS2v7>}Jctd~gdWgcI5~`^nqsC%P<> z>SHA9*lByOO5&u?L8^5^UFjLC<+Hye|Ld4AKaYwF>)R~nwlM$gRP#}2IP~W8 z&W>n=AI57^0X|5#;wbcX2y`b5Qc~pyH`Q0=_enIJgTIrmt-!AlkIZ1>C;U_I5KbAZ zOpqbVD*w@WCoBh|UxW`2Ua7+WO6PbQ8Y55rY`D%`;y0?bE6Yza*{}p(*>xJ4o1&ZO zr;)KE%5uAQ1>W8?81S9+@J8m-ve3q zjHK_3q0Z&r%BZoHyioDqmt-*Bk zr8gl8CVyN&NjRw^$6fK9ZlyOZJjc&}N^g2v9XXJ(*~>SXFTEVq?kqD$V2W#4h__B!_M<{GtWjGGl9N3teYf82bUpj7fAR)NKC(=2 zJst+BDMNVus;zddIJX#PP7cF?AH}A-DnF9e%f+Ku!o?x)nmnW%py%!qyUBHzUzl{+ zwr0aTy@4?X{ni<}Z8xj2x0cA!EMU1-Y1Aob5N8pQ*m5sUXq=}ZE{WvOcS^P+C;>-e!i2U|oL!8fTMXFm&#|4q|i} zikdx_JjhkyEsTT>T{$SWdZo zy?IXN$y^HjTP~kX&7!Sb3Ndw$+V}ai>Tu|0kMk2jt8ka{;Hq8Hct3W!7wfA{PtkCB z{1A1*KCR~0UPk`@qurmBIl@KI^-?D|{+JUp+I=RkI8fx##+3ufltam&s)x*T4k>Jb zv-jlU3_o4MGIFLU(-HNo9S~1y`%4?iR-%_z$_9mou|;{=f*SRQSpr1-u7+}Lm02tb zh|Jd>hmdCiB@6QCqQqBI2jBzv5t;}iXxJ%{bTktD+ zVBH*V(r-I;yooX+595)K)O~4`Fm8cYWJu2~Yj%{B2>YM#(&au_8MA;w3-NSo%=$TUFs-)KMQB z$?KlgUFK`gFn9A&Jj%z*tR7pd0zc%?+}J&%NPhx&eY1!x>}e23!($nT!ky~E6%3al zX~*T7OgR`0@UKrF4$`^9v?&cNCv`oLVfBH5HQA2|m^d zbg>^svJJdf=vE2!kQHQ{w{6j6?d~8|*0J6KNIn0}YRL7O>qT(i(#nkALIt5@9>x*y zvI-on?PMG*D~sSa3tbig!ec8nkV<5FiDaW`RaODpQ7@tyzg-fl$vEQvewfNS3jEJ!=O~A}FgPYqBQ~S9{eKUskE59ti z+)g)C(EH-8ZbbXe2_IPwOP?ukfURdr#sj^OjYe6Ml|8ewVzUYHW+%l$MpTTCXNnG9 zRff$)@G|*WvG-t7B|ZjqHiF^znL6>%A;(f5ZcsOzI-aSIRmp?1tTcMIdy}T}N=Zo! ziu4Ocd*STDrmlw8%FWpw-ax|h-U)Z;fzRj*RLSqG*jE4i*#2eq?i#5Y(GdTfW6FVi zNsvj~mWnne9&4Xm$bfB^AfM@@x?}_leOB4%-&}JlCZ0D&<&d`#P182#1a!B z*T~}IMHy_%j*W@c5A|Y8jerNfzf{~N{yK?gK_!oRb6$thwWjChdo~?g@48>_>c=}_ zVq{fS+|N}`J7M^|R{xyqeqF|_8FXRV^8T*VQ-Y2|Aye)-m^xy!Rj5RGmt{o$lsv^- zGW_hG5&NXF&qpPA&?Ae1IGke`Wy-#=@L{o6ic~WCTQbDdiU;x5w<|3dxXz82VX^L7 z!2OlSh^zIa%HEzyex@`E32tOzxR6H|N!O=mq+#2Rt4svtLu5fvH4=?Ymw(7bVQn;7 z_5S0L;i=Er{+7tDkbySKb=5P0ed>BCu{wRlg#YOx`Hk6RvhM05Mz1{gY>j$b&U%@; zR#w5=^z^9mc03%TS$!O-W}W(G({5mcuu(P=?}fDc+A6@dR>vdAd#E(}{>peL#_jDR{`rGC z5odMtBaBYh`evR<^!~5xB`7zTW7Zrq#5{}H!xismKdz=;*NlUMmZ2`fHwyeZ$=kaZ zTc_KAM*xnyC~tznZI-@eok)N71cUV`{YSh$~4kH2AN2BrM^mTPB`*3TEb8L;%OyO`YkSlh9%N+h> zvr#@FB_n+$)$iFl9aEE2OV4S!D(cLnTK)1fuh*_VJ+15Ps9<^^M{fMFC!}S$q+G8 zSp0bw6P=Zf&!WcRD92$PBJr?TG&cKG7y85K>eYf!)j9l=`w~AZFQ>VfnVguHi8?Je zv7?<+3>!5oucWl})U>4B%Ej3D=x94Rw=3vuzY6p~^3cQ0%1h2kO-jg!`FXR4oSXV8 z$8lg}WbAj;*W6}%Oad9gv|N2sx}@ERaUIn{3o?@LVUMiZdx1_ll<7IQwjNuJ6Xn+ zD5xQ2l$jN~8EOs*2|1D3`IjZ}8^-?#d&{V{o+n_qxI@w6K}vyQ#hu_#C{|juSg}HJ zw-6i(6j~@y+@*MNhZb$I;O7rvJ|Oi$WKF3IgAC^@#MF2a&tJHQ*>$`2@mi@ zG<;Vw9V_r*EO{XkSEP%_dtK#ui#6dGua4y;a55|dIylsYLBaEuq9 zd-=ItSggB|m%}plYcuv`51$t)#hZ`EmzTy7^Tp__>)dQHL2h=>T2TRC%ja2X=~2^E zRD%U1l*rRpr@3FGZOIW&1x)J=Mttpz6G?a$pB9VowmUgZn6~rs{xM~LV?g?8N!q)@ z_5D*yU}H+7_l(y7SCFXm27T$0x5z(g?aQe*N$!X1yawH|O10c2jzuX@7UFdl$@jn6 z%E#UldO=Ue#{O!)(#3d{HSg;;{?llB-r>KL>ATEN#6y)=*KCVfb03SlbqV;sTjjJJ zQd^UE`+dIkowBKFFo9J<#P9bak7yqIsrp&G7P-<{M6&u^_THz}qM>Ze*>ERGqFz$Z zuQ%JaY&C{H1MWuXMT5lNe1nj1Mzdw&Y0s1EX=+m=n4}Uqq@#|7j1OLpKj`4`8j8H zA?E_@LhRyXqHh}vlfLo`OY>4mN4@4bVM`q zH#lhwmHmS11{enFRiQUyCGUQOUhS7|b!5=Z1+R`wiK-_ukNO9R!uNvYzUAcQMAts< zJ}OzKo$o7|`Z@7!w#n{?k9~>)qw}Gghq{BvIE{QxG4;P^vW-)76L<{mkFj6vFWEgE zS1LOQ{9(#)a21z*L1g-aqsFxKG%h1?3g|KbxE6mTVW9DgkI$SzM9YEvZL6?#TY|NLdU5h8Ba;qJX<7%1b5Z6=$_H_!e< z=LjeG4D%*y-fXx?&lj@#PY#yPC4*VT*c?J9?}zf$((PtwDwQ*8grR;kK5nr`5RM1!R*!A6M_3=RU zo1amP`DrptI4`no8Kkjy-Q8Wke^*q0TCQJDfrJ(3qf7{ip#p`;Q9Zag1)m``x)Kbk z!GmNYb@X7KM4#u))0ux~WYJ2beRMn|30PlUf4o3&%2FFuvM;`5IQX;hosHzxFvn9) z649zAQ)^%;_cQMo;p3jg`NR5X@}2eo+&|cFU&Hm7$MKi!+N5h%2b!M76Hf6Tq}aWV zYk^ii{i(%v6{zc_O!bY+t+02OLp82)F6-D{`@mKE=VVQtKq;Vla%}c#4WOeLfM^29 z(4g<9^uQ0WL3F5ctqr5?0C|>h5PpfD-z6z&(m;D;j;KS4Ea(2@OPw6ff$Kl3wG;QT zgb6#R_f7+*j%Jch5__Xe8I%hnM6!*jOz9d4w@Wp#)?N%z zUkjGz=kw3=4*gB0=}J-m^O;Ik`sa!|lhXLh$r0hIFJtjD!N?caat3*k_V7zpKA7BzZwh}(xAF4;e-^j5Xs#S2k>LY*b4_<9V#&QLdkE|WSyr!h?B8Op_KBl&l=Q&qy)5Et`aLfJ{Lu6I(Po^A z&z|i`k2>WJy+GO*!yFcTq%od?#@yD#9=IO;0U3Nmi|p%rX81WGln3F#VH#mv$?Wpy z=GKZIb+Q#04#G8@dMPwx^`}$87gQNl#L%E$ zdw&xlP4ozSG7rWVWCx<*!%B77c{q9aF&5=c8R7EbDhnO&cESn5rTgl_KZddVwWviZ z2BCLfT1%f}pZgZ98_g)-!|~QHISz4-$;SwWa2Bvq!?23_x-4g$ z!&SmR_ht6MnWk8+-L3IFB_o}>sfSoM=1fc)5At(qYsz{?6TAnOdMxN-1g!6C-zGc@{`3Xa zEiUc*I9@wX&S{D;SI`kdKkD&I^sfKiR7C$WccJysh| z0C7N+LQ^MThee8&-h%{&Q%`;V*aP>R#G2|ncvHl>97mI443`zFrAnpQ zDFdjaF4>kr*=0J|GU4UWnNy71(tY!1O1j|`*i~WDefZWa^+dOLFK+#2ap;L&)u^=h zg;E(jgjlObd#dBARC4q#||vUowhOTbJjhm%9xh5L@s1x$YsZrUef&2TQ} zu|;{_Nqzh17&lQWJ_yG)+&e5aT&=IW&w2ADrmxd(N?Vr)op&~tUE}%@C=ey$g%Z8O zK~cA1FCyuuaf-u-!?nZq!*-ay^pG4oV4_9Fn!ldvJAO6BQ=w$l_|5tktIuG{x$8Dc}_bPXWABB~NI}QIj(}aY7?NjNa-^{WqUc(5$Va-`j z9Du+0h!jDO#OorXUwu2H6~2avnV)?Zz2OS@Wtf;)c=R#+ZJ#=Ez9JZFKLk5;qtr<| zoHMKr6D+PxSDZ9>)cD0?SY4lOIkn#@vzNWPJhF)E?|FZrz%$df(NCWA=tU-OSg+ zC!*RkL!wkb0B#U~(T5%+?W-yZLVfQ|w!xq9R z2jhos;M`#iVS^u-y|BAZd)c}B+%Psb!PwkqQ#zi4^oXdPz>lB@I}y(kw+ySl7ZYeN zti|hT0nh2m@j*V4Xb>AA}>rKKDs&a&3}Ys{$6W`ojBm`d;>lVsygWl-b;# z`Qp9FxaqWcqgYc{c8$h?QN5s)qPfNOc;k%>KkhX4=xWD%s50+O(20i`A7(h1&qCcuPhjb6CN3s8YUWk z*Eg^8L9$-9o}8Xcj_ehd^GyU$k^6l84BCZt{01`wg>DjWvRjM4_!m6OBt;TH{+)=F zDe40In4BMb2pfo9hSiH#`=~`e0oHelkwU4@yDv7}=EiB+76b2x{p|DY6SEfgz^l)j z#_27G^=W@&t+?Wtz1TGw{|Y#5WnU^ot}aJjg<9$R7Sg}I*3Z%x&3sy7qm0=i6s z3;IF+*9ShbrNuDLbMPAIa&&PBP?{T$PNs;lEMV$4i+zG1bEn<)r{~h_;FlCM`nLMs zw)3m*$+O~+S7}A$U^RpRAwh_DvMdFfhrnLh^Y9$F9hz|@5nD=%PKt1w-7$Y~zX=-Hc=@&8Alb<6EcmtFAFvp zPP{DKOOwBfKShW@WW&~t|Dah#(JXBnI7gL(#7N%M&;j-Z^L`qHbt+2Wv^U;&(WErA zcpQNjCIo(j)aF7uIv{il+<$eP2y-C=M3ICLCMEFe!hK?y>nZ8o71{Z{ES9*2j_dkw z!h8_uFvsp!?T<>O$vu~ia9i;Y$a>bCqHomh^E*<|%mQE~#8w9(4QY)~7}1*ay-}e@ zpjjaOw9iPUoBLxJ~B|RS>F=P0yHu)QZMf`wIF*%1A zSpjMN4s!-0G^@vG*ua_<5_?qPSn>OD?P^6l!J6R+;aP|9-sxJddN-GMuXk0(S= zMHl>ycLv*b2HDmvOa+Z&)1MBrUYIqDjk+jzCF!-l14YRHJ*GN#1O8oZn%!fx-qTCZ z?p;&bpg<_{$(v9ANKECy=-uQ(%yaNBiTW(bo5(YXjr?FNtUX<7vTf8f(yK=;r~F&! zU(us>0Icv!q@Ynyge>wUq&Oq6j(bWdOaYXMl$x6AwJ-2*o=#moxR2TVA&`K*YLg|D(U(fn}aO`Q~wXvv~5?QxRvSI((!cpZt=JJ8t)o212{w z>=DwEPkvY@`2+iC^4kE|7hZo~O|(3egnb{Yv$JDIuIV?}DGdDVrR<(4_1$XkYTiPE z(j@MhQ>mWkLUF{wjrjq|Doh4qEZBOMFjD{|2m69N((hG4gQn;hqIRH{Wkk1VwlY!D-9GG6iU9Er!fkq>Z1pl)H83i*j@7faap;q8#uPQ|t->um0YX#(6CRUSzsf}* z`S|jtUmG*aa!znS(%myAg~>1W@2CsTaJqBTSRGBi%AwgOK0P_MH*m-6MnrVy&OL!G zD7m|r0-ZC_igiK1LizuNq2iMt7Q%WC@PaKG@(+#e-1l>FkpMNg-#Q*-IC40Z7J=*S zwt|b$f`DU>!T|0!-_ooY8bs)GL(tyq`4%Q#Bfz`g`>h45t+?!+wO>)hhvumdPpy>eE9Aj(pa z_wBvZP#NgXH;E+AIo7 zDL2etb^bvxezha81Gt!8Sh*Q~32Cjlsdq%OdLDrxdNr;2k-qf2uyJSE;0_^Zh7u+* z^<-lr7-H`3(avi0H(6qI5(@;u56-m02?7IP$by??>&gApf{nw-P%M~{gip$p4(4H` zCfem}@g4eU$MvK>J!8K_&}0JQ8@werq9^V$sH}Lp9JO>B^1;2+Beh$%RQ}99`*@h} zBpTTLr)Tm*a>(_wdxhfeE0*lz`$YJxo=d|S_3}rcn+kVcp2i(n_V;q3_1)C+k6(zY@8wI9OP4T`0jAEuyz&gC8=4I<_lkAI2 zfh0;+P)_7CNQTSL)Y7)K(d2&^>06MVNb-(WSfocgu69v zi&&TWZx955$jwNrY(@8F2O)O?>F!n#moQ2R9h80cQyW<4a$|{qu>5@YCk0IJhdf2a z$;CaS2z?>y8w)c3x5*tE+wDTT#r+Xeyxl6F(FI%qLfw{}gv@nrKdm10qa&5(Ld&~d z)I`?i$qA4hxjpvWWS*=mPC~LWP;bA6rVmAOIZF;d*8w(3kU*fNA9hynn6 z zd~lE@8De@34)S7#sVPAB74v&nVv!`JD41Jts1E`1Vhw(sj3*Cjr9cxv4MDT+c+iW^ zllz2;G{K9xP{@;0c&+2he^6%U1GkM}o~>N*ldxn77%u4E?Y>dWvmpP{VE7e8@3tT# z9Q9S_PHg`ar`xYJws-1_0r`x@Q+985N^z z)jhO4v!Hd|c7q~8sn;nP1bh>=?v*SLI8>xq#30L+dN+$fjCA)p3cCYDhz-}DD7IazA~7?6b8IpN)DjlZGaV+qa#t#6sA(-2wp&l!tlY#VLLvI zPhFm(slLW>!!4`DweBV;ouN?KGBE!8M>X1PJY%?eGKBn?N{|f(BQ*ScgXWbF# zaM1n@r7%5n^*k58G-(fG){aVsPhAPP-Yl)0!B(|{txgE!`(hs;-Xbg_C&(4p!`S(& z`$lQO3{F_$PPqR=)6E0)L;c5{&q+r`z`@P+HI90TfvLr90$`BJLNp=wV0UN+nz#B} z5^jxG*OMX^m%AJlJI^&MmhbNK_h;_NeqS@26-Cb(B-qwbBQ`kJR@qw>e0Fxb>`piz zfMtMYDF8ir%wvV-I*JI8ycx)i#RhnfVJqwtuAV@ivxJ{XHBqo|IA>LB*nxdChtzu= zRhk8`47gRqjQa$@l+VE0!m@$UtMkN_^%9y zE=@syBHjrlp4xzg>c$`7;`~`?wY)t7#~Z`f2D3yG(Yv&@RwG0 zAUO5>5DQ&z9^(8F@Qbo-sj&N0o}P-ywOc+#1!eyHzLG>oBb* zY|55m{UA_xUB1;kSbCtB#Y0X>-+PDcke4S0#S)shUxpm zzcT%`#PT>@e+5JupoQk{)zCHbSGbO|)5TqUf~M%0N&Ce?n_|{|>35!5G3Z}5ocZY9 zhdpm}Fe=xky<>!)=IKv)+b2V)#HqxKMBc=}#OTDm#I!{5#OuUz`pFlTcBIa~_C)<` zjwk8I=_kMc{yuCnVlrX!$E4q6G9dnfbVqHdz*;c>Cy6cQ3G-0E5Y3R>kn)h%kk%06 zP|%QJq9eVK2!8YKB}3;6xMQM2qT?%@Fqq=$}Aa zFQc3Wv%E?Y8N`5oRN(ZnYVk;?5MLxPD&hGK>t21EKQdJ=|F20n(5^hXSO z!g)4b7)6HuOH8A83jd+$_<3M9({nU>i z+h@sbV$}iQGltRIn%{}HDl&g=^YQNE(PJm-4{-m{TQJc%E&A9({eiCA{=wYE=vV}0 z`&s>A;^xoomFu<@y!=*>|Hke?htuwX{c8$}LDp;8>%p6uwQo!J$}WH{w%lvcqifeY z05_Jx>z0?C;+5mCf9EhC@m?=-;NPuhwPveKL@rtr5?;F z5KiP9qg&*eBFv*(G~_~dv11FS&Y*jT(fZW>9qABYtg&O&_1frGC^PDr`JSF;5-F2a zMBL8#IJ55lxiq=nMA{ZTx%k^`VE9>F{Yv|C*GXThB5u;a}B>^xrK@<{qgHPIO4Kf~#~0LF~Qfq6g{F zUe!td#1?_{yDdueNk}tBV+rQqWo(9?>_~qh{XNHD*v&{LX}M4RPozRvVsY}{9Qk7= z|1I2eh{V16g*sIOP`}dy`uwBq!-Cg?6x<~!3B8G()=P=^94ScNx_=JAZU!~VZST`m zT<$EP?O&aZZ80XFKVh}$RTl3xCw_|*t$iA73*hWB^Xh-Rwt3=itQRh-n_5Q4|IaLJQR3jaoD+@t<>_;)l1+!RwZ#hpqEfa~GmM&6NOesnzWMH0IFn{a}ll^bG`_`06!Y za}SQ(Zv)n?3+B*>`x_`@T4+jt!gqz1cWIMjUd_NfKI4@u%l75Gt3Bsn{N9RraEgZ1 zzFKoA_+9z@*>9QVP*bK^M4GGqet)uL#Z^99-8W>l*c37R!Vhdj}B5 zf)^|1xm{9az?RD;6Ot-culMZ7wVwl-EMKpH|8k-%vgZ&(o{RO4d9VUw7o+_;XL6>P zOEq$CuYgOsX8EhuipzJ+YH6`5%&cQue9Wk*e(vY9w;RS42&Ik6mK#6vjlWw2t(BJ| zpsHm6iFD4;|N1gq`QBCJfg|?D&G2ZZUT1HCg1INJKXhdd^_0nlwNW^*f%3LdaCD#uN%xzYjq>_!f1+6H38r{XU<)`Onz;s+TP?ZKO!KVq9AXUob{yQS(YDO_4qa)6lBNiPD5L=z;XfV% zLi5c~|3J@yJsagM=pv29Gx6r`{NA#bo4+5OgBv&WkBko~*RNxi^O868NADlVk{>WQ zK#SFQ-6$rxnJFub_Wtc%NJf8*{Pbm57MhHib#!Z(qT){AiqIXdX*F)szs_XB**}Ef zXi@(RY*!x_DpybQpS*Up`CPd{?)km9s!Xlx$0g^1jxTCF*f1^m#J%#a7hYzTzvEuH zbJM%==5D6g=rdr4GVg8GzkJiG%YCn!zxn5_v+$Cx(w6<})>#DjIz0=WzwvsMBGkMF zJh0*%xVB+*6@2U}-n+ysG4Jo|UUeBf#EHU7uHTS#2Fdgkmw_RX3Uiz}!&^4YwR`8D z^NQUvBId z>j4}a#z!}s_lFNMM<8DXb6AfI`Z&l+pza^28D!-VKoOf?WjI<_X*ddeQ=X3Y&CRkp zCvXlWP|)8W-T)Q+)tFRqMxO3_u*W7dzaB+TbE4W+DiykRDaoby`(wbIi2AIJSL94r zXf2AMIU5QTi_!JCFa-k4VstMGjni64uGrzdjMG4~8e9j)YantspM&MlW-*21+s_vb z)Pw{(aSHWV)>*nk2{>4?tT^vDkdfwzs<>bckH=KE_ss>ZM)w3w^qg+^cnR6zftt*Z zAAirvE5@6k`hoqV;Bjxis-;qX13a55ZuGThd-`cDWyaM(Lyll%ggI_+^`}=Wn+|Li z1o=umpRvGav0Y{g_y*){Qrco=OwF75E4*5xZ=To>`3~+pyyc&X>Q!3 z*`?nsIvV*hh{+G66rRU^0ISuAB_t(fH|Ouu!;OilF5AW8cuXyla7jiJ-u9)F=kZhQ zROR(Tv0q7naq^-iw0m^hBk}{Zp1K}a1c9)7qX)Cw?m>tj4529$jz7i&zs!Pqa=+S!rxG*g~nJ_~07_h&6`#sBbIkHsI|@bRX4)To_XuYRNqc~tn~P_xpH z?_k-D@>MtQshjYrWnJ@n6l3$tXL-QQf_v9=$hCeT^2J-{?`>|BT@*yvOdbrnhN_!h z&lPf7#<3FyxVmeB^(OD8pU_3f=;!`cP?s9WA9B3S$N2!BQlm`Lk1|&+ot#=TKX6+) z&Urd;l*qJTtiKXE9|=B9ZaOiOQ<>hV9ef`IFSbbdEr1 zpw&ly4!gSfr1gL#GFVG69vIh_#HW7X)alcc$9?c_3LA~y#dqyZQUCT4@AVp+*{O%> zCRp#QcH~&2fdl;W*s*!$D8OD2oMI|z;2`;|^q-Re>d1CilSmdO9{OS+7X>@PMW2V^ zPjg^l-B9BajHO7HW4RH#1zLRs-X%Sx3d4)SLL=_+Q&Qd|iisYfiE z&%bQ8e>;|+6@98oZ!O@|LP8|4VAnv`l<9Mo{LR%7U5@k8Ib+M1a9L(M@($;(Lto9r zAnHvFU{FeN04L>^e6wZ6ihUawh#l|oH_>A_zry*C`GxlTh47eYzhNNsAM>v|wyS@% z9hgIXrzW}%O4N)-Em0*jn#ya}hl-U-C_4kC+zLr^g+o20k}^Mj+U-;uR0C^SI6ZxA?=&$r(CCVyso;Lyt>sP`A{Y1c**O{G zuFpwVkh`7V14_+#&xhYuxx@Yi0}wxw%CD<5~|)h0`S z*!88?nU#J0>1+GI-TPaGKde^YQGD>X0yGC=X@JAg9j7UUQOrh#<)mN<*Rd$y&L_|Wy||j zGK8BTNoM5LE3Ev-GCG-qhrXQV6agbtN{j4cnWj>kf`5PSRA!Y1~TDUhnN%wsA!N3 zGRdf804WRr;2I1z3|M@$OaQ9oGCN2PiXvMTR3HAxqj0=#`kG{F!eJ5g2NoTs!A@Eu zL$t#6MKCzw2chVXdFQaUf!XTj4!x&c6qGqN!B&M`1g_p6YVPA}otG&0n&^H;3Rif@ ze<_OcAJf*HF-s8PWMhjsO-_tlft@f$*d2Kk>wukfzkXeE2zyg05P_qZR3c^b<|ie) z+)LRe50-Jljp--;zgMPUrtF7Mw%oQfT!k)qwF(+aw*taoHQeVC4{zfk4o{*v2Ox)9 zYp36rdG#-=c37s#?Y-Z4yC4{sR@K}d4Zn#$Ykdx{eTkys2){5FZ!)J=%hvsbG#YfW zK*z>e{P8O?@7+sO&%7&*VZ8IDl{l=7oE#zTd>w;3EkP`g=_tq*_wi z+ejc(5f!d>qbkli6{K(SE_tR22A`eTc^Dh)w z@Z4PEx+j(No$aSDdSi#INh=l_AM>iB_r<-N6*HOy7wg&=@O(}(K6fAhrA{cU9?>LUbdE;%vb|W1d0y#>V@TA{OSt9~9@O z%xe{-Y%$3o6x+$vj&dGv_`j;(aAD7lV;X_AsG1yFa_~3vQ^pHulxiz%~(A#AcO~RUWL7KISi8gXx4-VDW@H zBy)OA${^pMm)?A!qtB4LAc51?sbr2x5Ba+wG3ETYkmW;|Qtr{UAB@+k+m~tV4I)y8 z-63i{ddwF@St|<#_h0KE-tEpCP^j=q9u*6RxKH(}FPr-Yxi%SsiDy?} zEBgH_*BWkYAK6*&{HM<%{~cAAx0LTp;~4DAUI#$aG(n`!>u;^%rTh{z zNTCt58`2j+6R&`+a>EM3+P<0P{IzNs!~jw-L(|;BrZQRz7veS|I<98`q~*4YAOkd( z45;=)0Sfp1dezKP0Kq}5e(OCf|7*WBDC~A^gE2^_Zr~aj#9u)Hg?VNcBHjfZ<)NfO zs%BtfafVv=p)*3H(Jn(N0IC?o$f87@H|2q{MF25mMew@?B3Pu0vO}x@>Q!e zj$oDt!U&#OI3-d~lc`*iEnnlhchkQb#W z?3)~h!FfCzER!C}p&Q|;hS&M}D^5Z5htd{c7Jmn*4UcD8D8+4hK`;Ixe>ZvWCxrWX zc1fMar$2~nB_AG;RITID3OlVgOcv@b6!aYQN~umwd;icqJge+XxiSzTI4f;2`8$^s z$#nkQuuda4A0iY{Wr_$b`8)65T$1q<{OPtmsNdIT5$WCZz9*F6bQg2ldZ(gQa*)E0 znexK?Y5yWxl53nVU({qks}D{f`E6kFOxfytB#l;x5tw$>q$nB7_eU+~q&;FoNdV&L zTc83f-5m2mO6=;FxR*{k9yK0tEg?iJY(AlQmfMui!sWED-|~P;QNic?fop(k{uywz zobkc_SG03C>xC7BJ9c_>8#t8PECUKDepkLw(_0}6jh;am!2Siv$18Bu0S3?1*YwIW zIswXgLI<&r!Ho)x3+AxbvxUlM5$SGo#+>`Eh@jb!&K~U5mBM`0cG>G=2_Go%(LyK8 zDbA|2Rio2#{-)Ti4l1tMX?~-@RCP@|;+>2N{?=m*h&wXA21j)0l~0cMmd(VbST39? zj!D7YA-#3{&Hg!N8pfC$Sn3Vegi3i#h2^iUD$yMO@)~8TcI6LfB zYd<@ zC0kynqyU}=D~|zS0z5ZhSkSJwC78|^m4JGFdu}XG<9e5kvI`FK4FxwL&k#SD4yIz( zN3JxwIlbDR>TGQ4zSn&=BiYuf|I-eEPw_Yd^SPmsaWca09SIi!i6*R4u>&_AUtX>J z5{m?i@7Wxc?T^%ng2Ttq&HY0Aq#7;7#PF9&Qjdwd3Vf9c^_)E3CA z-3Lq}zIAF30~-;yJDZks&TvcjX-D)F3-z2!3a37a^mvTSW?c-&b^N(ahBP03A^IH5t|}TL;QD8QYIzBL z12b*dbU!~TVMJ=`h=CRFq@z}OcRvz+zAB~<;?eOej9A3-(BSrJh|;nmQG+_FLtpiz zLv|-%_97j;3Z_e$Ap(WoJpV{-S6;}e_#18}aK=ppStX9J| zNcWSyGgB_DD;51JQw5{@wf1|phpwY1H~m8)ld1!CcS&0+Mu3~U8U6NlvybZynwZLE zcT;RBWQST9Ig5Wcbp4NDm|3jCjjkts0;AbDS2{o>ful<6=#^zU1T;GYoI*NtP(^`Ju*twVJh+~QSBJB16N2J zstRVb6k`-nsTK`1RTe!6YB#n1A1?{WxRy}!@&B5z0^?p9xZ7cn3ce&GR?V+7RWR7{ z&d5uOG%8BJa{aG1Yf^X>ACAGT1kf3JZBtNba*t4viwe)M{LXyN`eGANjb zVRi#ARY|9=o%o12c?w}aztT}xer~qvDmn`=mo;Z za`t;1|7D`aG8-L}EX!Hji-y1IA9}tN(~RF~_9Du2VeP=3VARErvP%}kPT8-A<@aN-Zws-oP5^M#ThboRc#{p z=2=HOn-k-3^zfuGvwmYydsH0U%LXEqMG{tlEBNR&=LZ;tz{_IvC;hBm?ro=A_1I6D zM}^Xz{ThwFn*5&!#|X1xc6L56hDKZ>`3!sX3)6~Ox8w4BnC7-oc$8{ty;e8}Z$8B< z7$zOesgoB0tJTgJ|DC&N2k8}jRn6b2RHN;Tr3`^}+R5!cXBIm8F81SIbI*PkZyxmh zvf&tCV?{5tNI?}|)N9>fK%pEB6*};}S{$r^@(J}>RSOLQ>Bo=xcc&Ii8j{}k^P+{h z;$uJe{5A>YTC3>_sr6dTFS*xlN`5^B9`KBoVnRVz)a_3CKB2TZNN!$mY8lEJ-%ci) ze*8Dgf|A!e@F7eosNBnF>UjIfD``t^;K-WvNTNpS$WMd$e(r{{dTWby{^TrVj9&I@ zxb6PAdHPSzfFh0Kn5Tkz|5PGP=|y)q+Dob)XNy1iT9cZ_U&$?zZTZ%Aw;=efi_XuR z=k)C>c!B9O9(a4-^#r_zJjlK?{{gE^yt({#RB`cLEB)Bfc5M4Yk#f>6KwylXhxW(6 zoWK&G+JiV)gJfp#x;?-+V$za>5IJx!@a#BWDKJ9fgV4 ztyN?6zsKp~w+%Uw%YwLaW zh23lj|A18KL>2wbzU_%6!#@W!p|@Ut^SaYN*Hx*;q4G4zjhCKgc;`MjZy)U(V{bMF z$xjGA`m>G8mq2z;CUMpPwo}r14=jAYl>OrQ!JoI^zJ5J^EG8$Prlr|_5*-nQxcE@a z)8L)CTdZEfGbCwRsYmHs{b3sFmgrkI_)-?=W|Wqp*Tj?h%1EF6P1l9lybgZypxvwa z#+4y*K7aKIk;EK)m{*k4w%%#^e;-p*><1W8*GX0Mn8QVuiyjsV{ELy&HS~#3~ zC9a-`dK>SbA;6(yvsPq#ID)<@<`oEyMA7w9uFu>PYG{I6r4e+7UQW&Mm=3BJJSHc7 zE_{`Uo*N#!!Ul-ep@2bST^G8^ncVjPQ9bg2F}WS`g6dc^%%R8(i zg;+(;Fu!)mZVF$yp>6-&Ad@p4Zvmo{=Rk)%gI(b(>DA#sw*MaYe4#q8UJ6Qi*B_el zuo0;BUNC8#*7JKXRlZ@y`O4ox>Le+&Y>QWpJ>NaH>)v~;7Oz`F$(*tpW|SDGq|4qp zQZlEd=Gbeg#jC4O<92HJoqtmrx+d*dwAwD;hU=b`Z^_Z*k3zo|oWZDJvOWbAlg8|5 z`o}Z<|1X}na0NdYH4MA|e?_a<%|511_HPTUpDEq;Nq^WJ{>_*>S&X3Tj2eU>T5#QE zif-znEk`P=L+sES*TCxHdc?$!e9uB!>6?1mbQNwF~IPRMS9wC zw^D}_mmWnkt(HuJs&A!@te?pK>{G^X9f|D6&cxah&+)dlwdOvr=(%ct;xgBI6+Spb z6X^Wf3r+N0I75AO{bD~=3p}JsOa^->`6lSV+&wOp63g4YsyL}D5}PX)rBj*&mVTSb zNeawKq^M%BsrK)`E^~T?lFi;UnUd9c4G7IQB<&Sjo(c+}{dK98z#ug(f-@RNI~(8n zv5HYxvRTwGQ#c_PatQiKO+LZT<)_TouPgPUvB|EpnbN#-y4zIwZcc@3ts&>gJ^If( zFbBk_@Rb&zm^qb)yG6@1aP$4dZKDfIB5V}D+-hFe>i8QeA4vFBC0ZWYZ-j8Zwe-8{ zUX|(8@M}F=`Z33Z1Ka3f@9WMC4Qa`#wmc;2|D0?|;p*icXkS5oUE=jZ8#b5k6WsBcN)T`lAAFxqt zOH*7i-Fl{aaUM=aV07j#OKWJ)fJ}H}{Mn)MdP5A=2@@sBrp%|%Y`)^a*&Y6NtHglQ zrBZ1YXo)&A#*(i7J@)?BNx+UzFcsf(Uxr-( zgL`>6;ffn}{HW=e;i5^^YEL^teyo0Z%!`e;m+fGXaovoS1bkn7TEE)H1G_q~}E2lU)E4m0sMDll1WTC%!qRQ`Mx+Hu2v%p(|b;H+H5QT0JuI8l= zO;Pn(u@Fbh`h9_A{_D=qt2?lAPH)T>z5(le>6#`?CGp9eltZ=cVZ^*oFMgBxCrh&_ z=xC$FxW4~xRT7;`Q_13KO+kMbU2h~vbr<_YT%(Y2PPs;0Be+Lu(uH=vk7Qf!9`n_L za{sQI6UrQ7k@G|_?urAg$Y^$4O5UK^C&xDh&P%iiz-Tn#wcGnEG?%aDfd5hKeLEUXz zh=MkvEW{fDqt}fdm2`YH;K!|r4&iSE(%oYC++(WPwpQOUb@ps+9^5_s1~{x%uoKH= zv>p7DC8!JM@buF9TxeJoA=TVC@MA_lCrBgeHQLpaG32Rkf8Bu7LxFx);*;{F=ado~ zg1QOZgMUCuIYxoXe~vhGk2(jPL|^6jEksSD(xq6G)fR=#avsFDee#HgPkuQs`Tn3Y zYrg-qPT$$#{hIiCS57;re17mAI*W=-^8a`F)5n2@&Qa-~lng}^o#UTJp6R-Dz?>7yz`><2FY+daTs&D1IVS#jZo8NZOu%!uj~9g|COEg{;H6TXIn+?O zyk`^Cz5`1$Dmfn)RDb1j!-}p(r6^HGJQL$2+Ydb!Ip%cOYIQEiQ3dkQ3Gfl zFB7(31#09l>LzKST+?ph z*O3g{6BFO*rsv;VX>@(c_4U+NDg1v4#+@>lsnk2nytY<&D`aH(gA&NE@k$se&vK{b zvVw2cZrigw*uDQmGVE$RII-v1p74gCOVOONqIPEOBTl@w2e}T!GwljIgPu6RW^$mV zw|4D7yys?jfhjo`>#t+LRneBa9Q9?!05E=#_W!W-&GD5q&A+j|8{4+MNjA2vjcwa@ zPHa2bI2+rx?QHBlNq*;f@BL$1Ra33%{?yF$eCwg=(>+V29Q_1=TwoF|zjUE~+@L3- z3R6#Dsv^NE;oC?jGhvg2+7#_JZ0kd}yfMKDu!z~I(o~2}&FPpO?ZM&QEzM_3pE=k` zHQ6VkYnwuyVEgU2+}gl~*WMnHIi^vPgDEqB6l-gsk{j7QY$}}}f2<0J z@)3CG+PWOI*_FC3A}ZjC@O543*tlxo`dIVWrF8@=v2EX9ap?d|9nZ+C0UrM=b?N9)2?uJl8{^;I|+H=k|I_DLOgb*fiCRLRQE-xB zu$xRf`lTR)Im$u!kP;(5rCb#OYpw5*d!mqSL6IE)mc#g1b(tns&4dnwVDlF8k55yh zwHPPpsXeHQ0VIjtL;y*CyAKsXb)MrzVWu2%4DD(qn)A=qfKPW_&Xh#>p@oNjItw~U zRrZ+P_pawju~T*@FjCoK`2?~by}3!0yQD%Ia7Py7uADK$@G~6cp;L9TXMEVXCk$h; zUSx`*k&Dih-!kWrFf>bhFmn~FDZ9D<=*>X$LtCRldxlE!mdfiKD2l%eD=|57?1CAn zl%k)7q)fs7ZJt0&=*+%wh7?~PXxK`|w$DZ?dBg1;8p6C4CaFz{$Mr!uWWaQEZ$$Zb zRT)dEl!m{#4^y;CodfT8NPXJLo7gO64*I=_Afx=uJn9@;fMrm1DAGSw=}wnh%u#6f zvtL$(sZ&0~o~`%zn0rwp5Q*E3p1WOm3$%OV$yC}kL_7pls=p3fK7JIyME~{?lgom? z&bZHVkTgG{bky^4WpLI90bMp|a3`+FQ@mq;`_#v1T|mUiOpQQZYV&EBKW-(f8p5W7 zcJJu?Z8<+pGJD80bKA$X+8v=`LUJ}+`zI<$p9v-Wf&;D{z2p=a6BKz4<<{}D!7spf zlF5UqSrh&!8dp6kwYYjY?nhOASmT+@ZKc@MY2lQ76qYJUFAiNwk!yc-p{)gF3G64@ zM2}{Xrvt3F$(dkebEpF>us8hP>=^33sFa_$BWUq0Y4VILJaX23Il5w*!$ z?ykYaw(gI9tV-^k3q!I7oz~Aa3$u3ng#FW6`7;GU)r6#z`K-4{WZ5&TqpjZn5XhEZ z;r0_#W>b1X1`@{zW%vrJqjSieTz2|lJzu&Q~c169qG7ZnsUNlZ4e@M zuZb4_ErWUO(S^`x!8O@|gC{cuE~%c{WI?GO^CLZm_j=7$x-xg}wiE+M!M(ISNN`g= z19Mztf*^seA_NVrmFJa`iSa*FpJE(c5`qc&%6%Dv5hsgR3rB@H2CQt(!uFA=}@ zy=2%eAZ0>iO%z0V3s6a+K{W>#L2>C&1Yj- zPvQ}FC`8|YHl5DL5c;HnS_c+H;fQ%(Dy@faJV$Kkkig3h$y9ILJu0vSGzJQsMOT_> zHoZK?JQKc$OJ;Ux_NCfqBsPm4qvG5KD}qJr?E-T?!FT(xP6*-)dAx3^rAExG-^^l&iEHp~Hakfu!>SoXyZ&GK0 z++tu4oDVXhfnewt+;5WZ>4X4WE<8l9ZnQNS{9Rh!sz^$&sTbpKS$znhM%;UT?pHA0 zj8{Hqjl{twKR!hsN#;Aq1Pe7Jg=I zT(52zdxjJc>{)Y(dm92bwD&kYxE)H>U4H1>zD7>dYG~=nk}K!YGdvdKjs)+USALxb z@4M5YJY}Z<5yOFhbfyPCbYFAJP&(6K7;t2q+cW~e-`a-q^za&tGC01i*+qVn$(rlc zXUSnGTXvREfqaCaoK6kKM#?Omru@OZHyFZ`WgLQyl!BFc)nQcExDK0!rO)E}7KQ@{ zYqt<1J5BQ!dhmi%?2pdd^Dl z{-W}R7RwP>mEi=PvQ58IUF`2YH&^JTMdA%TmegG%CY%xQtOHa#CY+r-+Zts;dhptp z2rg_SruT(wpjjmG3h8r)iJ`-1mpB>~p)Sz}-- zgu;@SqL_&WbHPE#OW0pY#-$JK>qsM?H#M#jPSo_d02}Rd+uJk%QPx4*f*`Fwy&&DN zL+NPgYwcrt_P^Rk1LQSAe^DZT6QOt}WY9mpbYS%HFjEo?a{+dx!d>Gu;*v}QkEZRa z?mmX8Qv)HMMZ>E1Zu79Pi-n!h~AY6 zz#5#IoogUACGR-u9VWOO0Hg0d)L~5Z3QS*5Z4m7R7_@}+ufac_?@7tg3wlIq3_ArN zo&7USrD?|Tpuxi<8O{ESKC**Tf(tZ|^Ts8agq>Dl-k{jhfi+t~4n_9QZpA zUz$B|s%daTJ@8Lha?eRVuEw7xfr%JvkT$JML)N&O&$|?C<<>r~B7A7POEp7&e2eU5 zoo@TDdBK~3(Z!6^CE1BWe@AH03#UjO}9(M5SGAFK#%!`1-I4{` z7NV)ZeEolS3R}~(z%8h|FQp@ba^Qw^PdEi1{S9WNyIrMA31~TBz#w_}#)U=Heh3)X z#qfZ~7bTtZ1suU@CAtazI`rLazf&Kq_XHqD>0*abuLh~bT3{-BUAlf}I=-XV`g-C`78HpBzXRiFZ zT7TKps+BJCgleE+Gwo~=#_Wr%sJqn%kH(L{nRONrl+99NE2?6eZ5I zMMz|^4r~prm;rGv$W2k)KTjaRE-T{l#y79SBjNs9Br8Tl)*U-m2qIce3`hJQ+YDNU zCTHc%B2Z7yD&CnG zlq<(JF=SwEgpxQK>P&&36ZK(Zp>H z{qTokG4CoQ$daX-_vX^WN!d2Y_{tngGO*s;wsc3Dl81_1r3JaA^PxEGee;qZ&wE&&FZKGS3g|o_ zbj!Y$814u%d zlS8#SAus@YDoHc*7!zg}ZS`MxF zx7~b&0=M>k5}F@ALIKRlC!~Hc-{u6A+BRM7@|Guzf;$od*#^4QIV*l3 z&CuquE8^$O1{tDEBw!{m`47d8sv{%zS_hq1SF9}6%a0YY5;O#X5A-#l+10(lJO)hC|#~8Gccd)h6LRF z`6T28%<+T&{Vj%nTmL?f#{QTcsIXBu7=A*2uj{RCV%BE}@jiok!yJC~RjR4LVQk?x zMZIj-z6uxW&PVqPov9@erUK-lU=^uwkYL(9gFd<}Q0Hx*y48f`frrXB$O(|N3u)Ov z%=Af`Q0|_yRT(#C0g-hRA-lBquKzgL%}nO1J*o>$<%_6f8CQT#!;rox3O(A6NJU)=u16^`1n;b%ffx*4~!R{_x#Ki$zjbRy^KI>qwnbOd>W{XOA&Hj|5?67su8 zXwNE4HJ22js)$Y+p%!$|6$Vb2FFT=00$nBoVP~K3vElFHyuOA*dO~jmM2S%!BmF59 zJYVre8f5aBRhCDRSg6r@5>K1YIMdcpIHZgo`$FP$PIY-$cIpg5a_C2QnuTplZ>~+8 zast91cxZAZ!RE>UW94o_Z{MErJeU)NY{qlghSR|x&v6KwbF&PMUd~$SHzs!IsA9xACNa zL4tCAu-?g&*n1a$r__8SuC?EN<)={G68l{k8t3}#c`bb&Fr{V`IDo)Z-`xm1!$5;) z47hr23e4qe?D%)%{i{C~Bt2-U?3iDwL<<#X_6FM3`QTwo2ovqbLh#hPxvOEQ6{%I< zr&y=TSLCQSx}jp;!}~U2T`)dBl|BPJ9P%a;PQ+NB%Vv*z%|s3CbT6UGy0>BOPVk&P)KbA#CYr&hIZdpykvohuZ3q#gpP*LmbpgZ4100n*4#Ep z6D@5HeY6U-s@sD$x-pgiw)JrbJUV)@Obx&mQX*eWbAWMI2^(MU4yKT=+>MqQeW*c? z2>uRA`Ta=tpK(|F(mH(!xBs?aZf?2R{sov4Ss&=W!(o0>#*&}lRAC;we`2kGdAxLN z&*&PP6f=|m-5r!5`{T5l7xbl}RmlhB*O}Og9E6!z|Z18hU=M|9nr_{nhXR_maTvF={Q@+8{j)xp!av>MYk;t{Ks@>@@kO! zd{rEnJ$m2>Ui~6V3!*AqUCNF+KIF@Lsz?rH88Y4IfLE z^OH$XSR6NL7rLUJumk*MwFh>3E(Lu0R#M>~hkpZ8|5rE0$)slX2aCtqK{oG1+FUeh z$)ii4K@-_3AuvZk64B0C2;vhkeSUF@rFPGC8ySuzse%$|+kBXgV6LnVR_V^7 z{3{mYSK%QA@k5Kvm}WxAWj4EyZ&%YD0{bv)-wkT?*iovpP>Ly4E8eR{wo7sRbmalC zCQQ2pHmKLw#d|~Jr>}{{dZoF}X;1)hO)~`zsKCa8h&bJv0e=8b`-$RmT@CUGT3C zDV+hYdEU;@4!Fp^WZvISjsm_ML;(|C{}gMiXr>`{8bBojUZd-sfN@%|o!JwlG@?0& zuIR6!b>|A{ObAZ{M-I`Bz1Sfhf#d=CKw|nLO(;~*o{0#Iw#Q9r=MsrmMVw8S0vd8?pRbMp+{EBFJwBxE#EQNuy z4#cbj29IlY4v!{AcnXwrIAp#O1tYF1hJMIEb3ZLq4{3%;EWxoJI_-p%jqt5z@FE+} zvYspv%OW2nP&BF8G;-X%TW?~fVszDm(0jnsP(2;SpsrHicMBoG;li1N zZ9hCPYtu2cuU21?6LJai09>At(X3jJ;qkSuPD0Tc2+7rErNmU!4j|fH#cad$a}aF! z+uv@d9>XZ9+QfxymNnBdNX!*`zLAz&D?o0UU7OhlAHvo2lCs=b?*X+zxigK8f8EUg zc)k$0U1$gN5yQP@zjJXU*K%20*&(DG`DiTb+gN{fU(e+5h)7n%_vwQKPiUnbz6S(& zoQeDtnGo%xx0BIUso5^%wzh2fHn+$%1t#tuQPFnqc*7&;TzV2NA9pf#s%Sa%OcfWh ziNA_A$sB8yl0iH|HEqry=f(pu#L12R0cY%zV$Lb7muN4tLWOLIE>-`L`s-I`rk1}j zmH9QwojeQuKCN#&FH-7!tchBo@II=J=xRqImQLh}MlZn8hN15X3$YR7#JtwQ2h}9t z*3;$70QrN?SdFnJ4kO+2diho!&ZRz_^0EHe+H_X1d)p(D79R zHK#g!&;!@#blm=ThvtJl@0Y=J{ZwF!CVO0ckhTveq3-L8^$x@7ZZ+--nNfXs3IEOV zlKuW}weg*f52qT1W&Mc~qECG|Z_~52mhpy5k9bmd7CmF|i?w}Q!;AGRMs|zl;40{Z zNS2_p$@MZpD!xno37kU>h$(DDY(b<$OJ)D`HHDJ_+Vt8dsT8bAcWG%aRO_>~!UU{|t}YxRm<~soJKU#2OfedGYa!TeZwWlH?#n50QX|HlZl+2^y`ZO&a{wfbflGl0>mG*(+eyB8<$6XyH&oOoebMo-3Dm zY@0Qrv0j>b@J_Rc`o^h7HQ)57gYUH%F1)sF8g!K{%XFYg$UAdAhPQyM+T5_d z0Ckf~f)sumR|%EBxkWPtYEVmb7uGVFaATv|if<>@m$#tBe{HMU>6v}M98B;sV!AsE zQlYj4>l6Ge|3AVyZ~sA2w8Gu_zf=F|g|D~_itOsJiFyD<`>dPkh*i90^Hyrv$;6S>uwYVO8 zKyk~?MZIb00U%6IZkaHD`v3#JaDlAu7R?8|GS2-}%b2HtO_KN)O;sU-YO13pn4KEC zL?KYe;w~ok9wCHyGEDw1U*Xz}uz!0E5$6FltD}d?g8!B}#&N1UYcwG2Wj1Q3CaNg$WsS?Y(eD| zL`^(V{xi(+V<{(zDtMly@%?f0APsq`##LnB%jJhDGot`4w8tV^A*fJgtnr=dsCU>g z7ZQUFRu+qAgJ~xQLn4?*S2Thy%|X~l2Z%3{jBm}FE}gj=yAZv&Q&wGa9~QfFC-=o( zXLvP|c{Wr&oW1UiFV<;=?3cLh`4Rah(4&-~oyMT2x{YYzFBV3#=3;`z^h2OQn^AXs zAxLxU8~*IX{&V@!i)0RUvy3AvQ5Wi0H!~6+%iMcrAiqgKDfI*-^WlW2mbC#W)giOp1 zg31OHG#|w1?#R7EsGUv+%SDP7OnkUDVAy}O=nH_8Ax(5Cv{lz|z%E_*qeZ}Kb(6~O z!f*1S%fK|J>kdyB0X75B*owG<_jOJ0O$VUW{*7IIz4#Pp;Mx)i0yD3e>C36jhq_$r zRZ%}%aUW^tsSQ`IVh#={l~tnD0u4^5PDw)@%f}y><e`D+E z2L+1B2!lMxEgsn>!Q$%60&pzx3SJ=aZX%}t#!9Ccr?EY%{HO*tfcjY7%C#pL`25e< zh5s-FSEpO#m7>6d@#6}Fmp{r@@LKXUoIQoGa zzcOl?B+XkKGKuzXGO3Zmsz=GgQyQ$y6)##_Pxo^Gw#A064JJ zsFYH~hW}8V;pB;*Bp9Td6?G;IG|fBR=ImXluN?FUDJJ$7IqkEyXEuQj^aCIT z>IufAcE3mLOZX1jduCqW-OSd;^TB%6D2PDA%HiCl^v54{?MpED5X8IlA&r~ky0>f> z?|ZYmHN)eZEp4+0@p65`DaR{&()L;)I4*F95i3rj%2#Mr`@hGu6l^X#kSo@6Xa_TnN{W{ zF6<5m?`Y6h6Wr+5Oa=R>Z}APn?WM>1umxx#{Oi~I>22IP^wtU2J0Is z20}L#yH7JxMkYuqrEa`ACdTBQ_X9%IY~f1QUdCK5OcQ&R6uh);1{mv#myElQiKdYV z`d$_xy|>c4;feZKW(|K6-;sL^VLjfwh!wA6R}mP!uvE9Epc8Q~3+ErQc(34?2bkzb@uSrov#oagJhg|327vc55->@lQ;`vuMW9G z-m{NEVKOo7zY9U{rM!3l-Eyb({`*;O@|3@JWOg@uN@TmZIxL*>X%3W4j-SpQL(M9nuH}tXbT-ba zHgf1*F?2_~6kPWLX=v+0u|^UVc&;LtuWV#fQm#hRv7Et$1222pyKcNM;)*S=V8hfZ;k9xVy?;Dx`n#@zM^7C4 z_XQ`cqIBk`wwzli|1X$18AKFo-Wy{|9F(6oBgfh*D{SG-K0rol*l!sLsf+D7Ewt)4 zcWpV#TKlpLt29>@=T4mtNofz4XeV%?w$A(oc??yn_E| z&odMsdrj`{W5_h_TA3cP9Y#e1?%e4gv2U{CZg0eY&9d|xgnb@#kK;ZuO6@kGZP(8k zcEPrfzi}22GxAh;zD%iDb^xi+Lxai4;Q z{L~)>eqYJ|#7OcTjU-}z^q9(5q#Ot{A&k} zRR}D%iqN6?lokonvl&zIz_G)NO`^()F5|Rl%u7wY%ISyJ|GzRuS(VxaP-!{oYM>cz z)eff`)D8<8qDIb*@{sn&lZ^6o!t*6*OC`d98qu`3z;H)y)IyN71+nt+gX2o%`@i=p zHbjvo> z*LQo_WEtHAN2`xcDD(V`t4dmjdczOtp$&2_TFBRh_povX}l~UzB z*Tu@uKd@q+#J_~p1)SisstGKI!74BBq;RYoI;nifY`znDXK4;_>+Pu*wO&C(wzSW?n*tYCHrq!D%_%`bQ_N&hj$Ox#wuWr`1t6*cp-o9zqsvO(d{0@-+NY% z6TvD{+K<;S|HPB`JFV=vOo0F-z-3H6<-hz%a(35$F%}tj?t$lsj!wnaW8~pHmzBMs zUy;ho&>cvKqaZf7*dd6RrK!5l>Lg&o$S7k!GWs70XWN+rPvk#=59hj&o*bA7n^G~W zr9ZO2rO#A+dxVU%v;U7sU&_5_uKZt0cJ(dN$m_pUH5s)>O~N6lvFgX>y8kPo;_m!k z8{9h9u}9fg78)N-w+LbnCGQp+#oGq|SFxl+?il;ZmVidFEl%~ovALpaM|xwHPO%V~ zXS-2{N)}@rtc;W=<~$~H!Bzx{jD_+9V({N#zn{#%xC!`44-{{jgSBe}#nu*%J*`kb z(BojN)UWBI;!ai11l?27|9L?Cp&a~Bm#K#-c}5y6YZbRf4(nTFfMN##E%^sp(JC5| zS%Vocoir&Ll!II7qTNhjW}^B0803y4N`AaoN|Aqh!+qM)uECBONss5AFshj#CP*>= z#KRPyIb@FwrV)+Hh#A=DE*xRkSR zi7Uos?(ty;B>hB$SXvEPZAvfvB-N=(_x&Ke zEYAatJrBe@RskI68L{^S#8h1<>xj&1Jxu9XKSLO>VxH;ylfJaa6_e)r3M^Cx)<+Wx zx^Xv%F~^ZEPAOWzkb_}rw(L&FY{cqS~K06HgRGS;;>Q zey08=?9XKLPpwKJlBj3Du=4jEz%fv44ieTAYB`i6kg(wsqlyt!s9orO^vUfVaF%0M z2uN-6rynCfOK`If&rN1(5($0~i6uK%eoS}v|Ay?jHEsPrYY}uu%=c` zuL!{*O*bv{NQ-$Q!es6)nDKoA`IiP$EF1&eIL^v(1O7xD#$QPo^>*-^#fs$}q#+Zd z=QZbk_mPWqm{>me{{)*Ziyi|n|PTYQp(%mL?CDasa@`>Qs_t1(A%sQM<<(1Jbg`yDv` z?%}BLiRZkA_klFMUo49t?~hpQJMrH3&pB-L&A~1iyDghiN)w$A6X4=lc9)9Q`%d3g z#k(L6K%k%g2LC(!WvI07HK76Rl{Uo{eg~XSisp_YDuRvq(P$f5Kf^Sv#HHO<#af0* zpg|(_FW3;0reF0xNuLM#Ah<1V0y|>{A(#x~PlB^8cG47k`&SJGaquS6nPq8byBQ6G zM#BE_YkeHk%SfL5Zab!*Pjr#A3vF)1spePOKW0CM-bkPinNupUnZKLh#-N=YVeI`` zB7olpRJps3h|~SlzLOBmMSx#g(kI|klj@SWd68-tO-3Av=7*_Nr^)=uJiAUy-@8rKiyD>fM67L|+ffa83~4dfDCO~1@H%60yfLsgy_1KS5z))yy_0X(NI?Jm<^*Zbo3t4F z19~P;_@T-6(ZhquM8NO-W}jfj^L;)b-39*;_eX%@Dd`A%2cgT&CG{oxyMNeCqPvk!iGSz1IZcVuo>#_vh z=V$=ybFaR+{K-Fx(f5{OCTx44?}%I97_HylIu?9WeduvA8Hw3m|0@28mAruI6=N6f zHDM14hz2T9_d5~)c&TBl;?~iQGL%;I7`c@*^MI%`t3;WdOg_aK8H|n8RtN`xx8jl- z^v#C21RQTeb@HAivh-0=_zhCPIz1n1>q@LsZ+aGOjP7jz375k7lai+z|ZrC@C1C?BUcH>eZeuS3KgS za*y0H<)#pR5@hI)uP5GYVJt|d@f{VM{#S8zWMiybF%+Q(Y}fS%4k`O3zn5tS!=LCA zlMMr`V<}kFZ|qC6yJIxFso8&k^+qSUSrIW-+WpkXCcov4zyqwSWr#1raTVw&dJ^6a za83QUn!$HWonhCG7O%l1Z^7lwoyHY%;oaw_Epqrv&^*I4jd7r-_PZ;Nv5L`bx3nbW zsF$|K-6wL30&DY2IzmV0dbbtmXwwEvzW4Z3KLr%~m-C_#kG9$%C8g^UYbVC%cXxxAoFU6~FH(*A29Y2kmF zh)pwN!6q%;U|7{H{!D`(jT7xvu~E+!IQ1lZ%6Dkgl6=`(=H^t}L&79=zF*3QL_>R-X?~XdHa5+O z%cX{=iqSFhL-_6HV;Qa|sigW56%N6^%H!K*hP6+uo?`1#^)Yd_j04zb$DXcjj!?xH z^m08L9`s{#h=@Ustt5ZA*F&Z;m3~w`l zh^;O>CFUqX;f4W*CsqOOcp=grdntjt0(?~gT92=0arDyeyg;qBTIuTX$$20XH|pi3 z8XG~n&VJVo8yRmX>kRIw(yF|QNGTD6c^lQn0KOnGY#OQyP{LdH}TJ+++q za>_TVCcH7_1nsz^(D527=K)g<7hYqw>M#%+;6IL*WDv*wk>z*|mvghJhAyuTTXil0 zW9G6!eA?6niKMK#TXHdF(>*VP&oR%_)yv{_M8|i49~FwdG|@)hhcUFbm!;41`o`n^ z-1C)7?e%HkaL8(t@SiDOB`=|n6lt*>4%`Sbb*h9HTeIzmO1Zp;^$-7lLH2N{*0Z0% zKl znW^$8{CH@i8EI#49%f^j39t0`tzv;Cg6X7ab24VmOF<}+xKrcPhz_ax%w8<5k_f}> zIK2?}O7iNPxrxHA@_#m%>P>r;CnfV1zHio79496B7_UBZTyh-`B+Fef%1dXgW6@1% z%r1PtI-?ual4ya}`bR-7GQ4D`gYg~`pMj!|;zT+yhg|oWqs<6$a(!S#SZ`LkOL9lH z1;b?71^MBUE1nV5LxLS@^bSXg8FJC|FL*V)HgWZW+Z?F;@~CV>M}d|v78ztVc7LI1 zybfG#`b_n4r&b!NJbYS)N;hL z`V{vj#J|%ElG6|`MCo5ct9W7Dq*UrGS8E|RH;SPZ{EIDM7-tb*ZUM82-K&B2SXGx< zR>b8Sl=I-dJMKT9u(Y9$542gAz$;vfd$&dN18W{TG_Dz^J+~#iK0Gr))*)(qd^qttE<=%8o?88~*!Il2{O;FT-f zDz(l;pD>c~5wEcsRm0;5I- zXCi)I*rb{YTuq5S*r+w8RRGV$Zqti|MLJZIOpA{aGC(LtovOtPHi;Q2yByZ3qT;D3 zH=kTGrNYbFu!5b+nWGl0x;Kd_5&?Plj~QlZ^f$=lyT?0lz5m31ZdNcj&8l_nTk!v`-4tp;l8<|k>}Gl(u{E_| zvuVl6&Q=E@Sqp!^j)MD=MX6|PJ;R$#Sfy>{vUM5D+N(W519pwo(3o9HWbq#Rn7uCI zCu=`#ukMYqP@a^X*c9S_DvdPA%P%`^@pxlqyyeMY*CQ|<&YIs;O=bai+!2h^rSHtj z#g#B)Qen8I!#S&e13GRu1T_co`%Nya_|mfqAB9a14srvr00*FzAVBsZPK zjy7734bSxK4Ry-lr7&p{G)i$&L&qtDDaG|^Oisgx(MN6M6OY_bB%ySis@5mv2T{KoGF7_hdfjERHF+ zDe9g`fk-vADf8YZ$IT|Vml6uurDE{`{YY2vHenw!yQA?c`O>JvpEGyWnGNG5=@Pty zDR=Nvxx=5NTgaKKzJ3C*d{8%h^I>N~+Od@q)-Dklx3;S?ALLBbOLlek*2QGpI}?7q zLw>57CB_zb;`?^vQ&t|k0d9EjU)rJ-HB;Vt`ld16 zv{!j7~w`R>(7{FQTly04#ci+Y)9^Y?UquOM2} zq*7>u#E_)2fZK9G_9W{f*DQ>#weLp8nP#fppYY59Ew(-oMLAG?0!gTk|F zb}82Zddkek&qZGugk!mwY{AjoZYwmJ^k#U*JI2!zYzN%9m{Z3X?!^F8ZU`hb4tGh& z)4ycIw&cyLk4~}XU|yk)SLwQ^MN2n6myk?!su9j_(-~IK=hbT3;S4_4o777uAMHh7 zHE=hH3oh;y2MzP!Nhd5LtkwT&ns2;8jznu{6GwF)KgrEodl`_A9Oi~|33Jq+*UMQ$ z(a|#3zxl{rurS6 zaT%-LQzo}*GN;6EChq+{Hqa$@uyeY2+LJaOM(L%t22FnwbSF+)ZhGfbxaz+F{+8r) zdyv~6_Rveyxgh;WX`z=s@XSp&Y)GtChHy0t9It@D%I3BwyI=bwggDm8DqUSzi{A|w zu-U*_&}!cp4y}od*JgiVG%~Xd>ClvaE*QIB^mU6yO%PJKYBT6P&@J#UmUAAJiE^32og5IkZpz|n9g+v z)OlN=AWE6cQM%VJfzRkhyUpSqh$;*N2 zcxJd}fyrw*C+%@Qw4s_L(EM zA)iO)Ds||f7`fgx$dJVi-M_xx@4C-;bM%nBV@@xppcKDv&|8&_P990L$M5Wv|Cs3^iv*7;$=OHz*PeFqei;xmDsER0+2g^dX1^?;Hw14cy;@ln*lI=P z0sGd|_=Yxo9G}inHwJ)p{j-&RH1Um)Bt6wr!$N#J)8Il0Xv}mRo}ixh~WCfXPxQ6TaO1=0+{qu z-Ko1`?$}|}%tOVomwDZ%N|ivUuTG)mrZ5}`l=%!oL@*%P1H-tkBme1tLc5ilD+)~? z*&8RDEa)&)xn*XJO;Ng&b zY0%L_r}@d-RTOo9fg#=QV=Z+2678FzXAxbJ@QQtybv*=OBGCE0KiQ({PJbaD*G5%pg!5hi~#-#jDouGJqWBn__ zfxz0{wYeFYmTI>2ulCBoK)(>kRlHYbrX0`McH4Zqe3;x#b=m)8>Mg_SXqsqI+&#Dj z2(G~`xCVE3ch}&--JRg>Zo%E%A-Em=4%P^c-5(w<8MvMNtHufx$*{Ao8UW5XJZ5L%FiEn z8>fraCucvw{;F78#vJeb&fIzn@mXDuBcd{Q;|9IlM~>DcIpI@sJCow(irY{&8-E{m z0;gmd$}G!2wd@+zP~3DsD#Iz+W3+po#C7=0!a(_m(Kg76d6cW6sBB2>ZV?DupNZpO zxEWGM=m%n$Yu^rNN}*7tRk}xHX0~XQ(N!bsedFSDg>Rv_)h{X9p_s@qbOkrV{)Q-i&WB)c8h&;5b2b8_Fb2hdMyoS-j28F|P*8BC zHRfO1%tI)z)*noJ9Nzq1K6D+DlD2ctBfXLPPt(^#n_F7f*uNOVpHfQ*Il}^;Ht&+4 z>!jW^8OgepQeaR3=CTi7e;{`E_huxPsE`^;$7Vymf?L~SzJlzum2_T4vf4VrB9cO> znZGc*cJ&>d$_-z)aFc8>zaw{?S<_;D@eq3(JYxn9wMm$>gKMbq0#m7T62dDf!lKWT zLg^-@cHTFpC#-UuT!l`s;NL#DfCjIy4aUzvFjXlQ4y7=qjDKOo`nIevg7&dUc)CTD zHoCq4kL+ZgaI|(cdT@q{rZLSz;TgVm9wj&eJG?^a=nT7WaK^?Z-NJ^-u@M*6n0|j! zx~P+%4jU7I;Xb^`XZZ=DsZ}%>gPB5=Y2~*yeV)5SH`xf8sL=@F9@!zSl|Be((Y?fHDh5#?0r=83=j?h zUSlI|L8nCH5r)7=is0(!@Pm3`ugf(>m@lQO0qZw(6Du^!f5C10CQ0lEIhW5eS<^v@95aZRE~u`X_Hz4XjsGde>%)| z2$G6yfUDmRuEV)pn5!IvD_Z;&KnfoEVok?(=+iB141tONA$KOt8XO@yy}4J-BCBj> z4zaS{Ie{fn@+}6z#~j$30tLbq%!$}hA0cb*zbaY?Z$;=M`p7pEb(zN8@_Z;b$(>-zOYAHp3n)G3tCl;y`i&=2*Cz5 zCDNl3`n=VKj~Ky+NIoM<7E|AWpP?N>QL|AA=5en>VrD3xk!t5X77OoXD&$e1GK1DN z9l@3ZC@5Xoj1evcG~!s_pDJnuhNx9?1cr7?x<+c>#HyKmuwZOx>c-MT%5LFElxHk0 z8`{5nRF(Dnve#%}%lqZ67J9jHq>PajUVqG>w4D4Ans9^L!Ly&V#Z6m}T9g@eHn zuwbZF9)K%8_%YKaSS<~~Mc;XzGery6 z(a99yia&PESXxB6Grz%t)o^U?=o+8$_48bdg|DbIg`+uHfiyPYaV8OgG}>C*&3k+3 zHT*&lbS;L(J9lJ7@}j+Lf;qA;=^B9ri3UfoeW3*O9>+S6IM%l(;7>xy3}Y0y+Mq>9 zMZ7~0*oWGIFBx%@S>uI4&Db{R!OiR&Ml_98%h=j^w!nPg7ia7H48Fn5ZOtnPwwzeB zKPGAaw1^S++3ZLU{#Od(?-kDvEpUI2?G>m^Q0a%h4-Z5!8La)Zs4;Kub2=zvxYG_G zopMLtzN(4~nka)>veU%v=&zNRT1#KAy3wvqy+S*O zNusqlLA-AC9ZU!Mt`}=hL+X}bY zckG7CTen?z?5OUMcieIf-9=mF4Y}1Wiyca;L;jXJY?0kF>|~F_?xZ;ouz&yC>Y%Kc z3{4gE%yQ$V)QY$jbf4r9+l72#xszg6@eu0ZWz0|Gq1|e)CSh`cYkG%Uc!9v_4qJEu z@6OS7fq36PcloB=`ds^);X$yqyAt9)%E3M1InP1AXRLC&(!t&hd?(9ctADLy`_m4` zAg0n~o#JrTw`oL9mk)(GaPB+89s*eB3`5W94keCYk2c8yJY2y2r%C$5z`x2sMdps-rxGpzU`+#0=hkuB+|a(Aq_ zr*fZkDDtq9i-%C`RenXedd_{Bn%A9mv&8*yAkTr7>;;AKN3U$zv+3u5 zTwbUT)aB>)FH@(C+VwWy+~zq+N#Ui1B_RrNtl;v3iAe+@=Af~l6p?7*Xvw~OS5i?B z5)(rwD5cJYgS!iX78MjiM}#mEdOPwupEzYi?cVz5v*pd7?sb^$+n69FFTX%*eM{+a0Vit1#@3+^kcq;DEj$FM{plnrOPl9XTvZh5sk>J0cFzEGr| zZ$y_Vh69&}aZ#pdqs!7gJ2zoT{?XFmN&YX`4y|6DC|n!PO?Bx6)sWTJBAlCMV2oss zI~bP*@R)Sqe#OLGIuN_b+P84`+(ZsRM+x9u!mwYSiGO(rfNh783kX9T&Ln;ohL~EB zEQA_Bto>{5_X zkm%*9akh8QffMlQM*aF)fMSuSSUdZS0j8bkT>$kG$7Yk{pU!sA1{8dz(#~lwni7)3 zlb;zZ)1?QIjfCB^irl!(1!q*U2Q9-flYIM!JQ@x75+)VB?Z+wD89(!ekgT8S-@)aa(h- z?()mv!(JTt{(G)Hstn;fXJRZVXXFBU6(U*^QK|l)@@drQSSH68KWy;2_P}Qw?R`zp zg^Ver&Diz<^LHf|5P~R1CUt~wH6j|6667FGI}W)8gOvMQi2Lf0k8*q_igaNKCLaGH z3g7w)0VMK)fs7LH6H42+n**ovwBx`IOmyjyQnF5H$ugnuPJAJUKQ4s#OMpT;lLi7r z#-seHKLbwXHH7!etRAKHjM>QJ0^9&;R6fOD#Da)T6N1NrBW=PzZ z4wembsiPY__t)`|a5`yYzx(O^~K<8+t(M0eQDtsMJM@2Ql$fjwd&{szYc7Fo`u^5S{Y{h3IZ z$P8a6MQIUlS-+{gjJbscQdnu4s^AiAp<0KFiVpqilwR4S#PpD_O_4P`H zdH&_}3iv+%)#&7Iu1I>a=;IPxU7(#-tT%n=7^iR;gsBPgZD_TqTQvO-iN)H+4|>eh zvJ2l)*&TUa*f}eELa&-r+|eOI>K=Hjok)^kS>_Roefl_3_Ex%Pxp47GRtQ9%VG}7fML+G43o? zwWe=h2R(HT@Lu2P%+>~QFk8))%{hRU2%^9PmBF| z%#^v_rcC_OI=Vpsaa~G@RegT=7hzyTIa8&zEt9p~_<|nQfu$c;J~-zmcVyyNLzYTw zZ6=N}dqrRHFK^BfYz{2BQ?m{ebhUMD7P>4|6Bye)klY_yiDjC zJ22^pxPnI#`Z@m)0(vgSKHC9^PMUGc#to#i6J$BHi5#-(_Z#eZ-#vsp6$fcVY2`?* z42y)c46rEaD{M~#Ej2^0*LDIeJ#h0#J>8u3mFlYAXHgMB4U@x+7JKRzi zPWD|5kbhyWa{ml3FQZME$&;h%I1z-l)0ZVJguB6Pdlkk!YCJ4+J-||7i#aH!VT)CH z=l$1+ki$%?cb(Ooj{-;kVhwo&mHMy?40^VWmNAV4b;1+TQ$q7y&dV^YD>O zpX`L=$Rj4zt?~>JN3OhQ&f2W^1Rk_sBUu%5rF*w}BoxM+sg;#cr4j-KO z9D?wK4IS{D2_adL7>#50NNi78uy@ac*&Of?Et4m0ji>r=P*UsS*y0X-_uz?^SL$w6$8%6!C1gY7*RfDJxn?so_U0NcUXMrL#9a_P5s zQ)KJ6MsaU>)c)6S|9g0Z!)QG9BW${{-*lo4@v6-Ymyy?$<}H|abh z)a~*&S=7~4A%9ho|H6aMAdyvSfiT4V64Or86}^W+l&?)t2=&(bGGKHI)^w z(JGWR^@Bh&yfYhMrkTEKg*Rt3r@co0KnwJ%e1mr#4iTjPNXHRlx?!W&c^eKMHp9^l z>pT+P?^;1u1Myr=P)Kg3V00{yl}g6N2LG;`@Q|bIMttl`rz7)>&AwpT{)dspL_3hf zJ%rkr?Q$qwBpM>2RrYHoeVpM(8xXmen|!_1lS|863;&T8)QPdNd37mp9*5O%0xc~B zIXmxJasgRe*_lH{M8w#kChU}s;_T{|KRxMmw1*UQ-x#vm@(mj3SiUav%4n&tAYnP= zNtPNn@!1T9K> zdNB!k=mW6|$w;6$%V2)wkR&YQf}xAa2ghHhJqKp6jGVjZ<$xoG&DCX724+oVjKv*9Hy+8|gENWr~!m<;u75u+s)+_HFVzkF z&*Jm-yWH%NmbDxIUb5aky0Vp(oUr(jH*LGSEhp)J3e_vZAz9PFS~ z?Q9{S|6_-GbXM6JKghc4V)S7FzVhV(?%YT2BL<(5-Ss@gBur^_P|re<)L`vnkVm4vXCs#2x^;Ix1=VducP` z8JMR*B?a3JT>~Jz(XI;400#aA(Z5i<0F*UVa}ZPNVhBeeb8LaJ%XU@>Nj$zDo8XEtqMO1=5K zMDxX$r~4#i-uV=uA>N@H0430}!7~f$idpl3*opUon}~q4_vUp`+ z2X&f&;q2D=U|Jxmn|&>u@;G%P0RxUR2`fISdRidhkA|L@pM2U{$3H@KW%{&j0Ncn+ zpRwidLH$~UF132H@}G*4uXmUgXX2^Y;q;G+g(F3b-W35>J&&K9n(6@1)cH~*fYa~5 z&KfA)4W}j^h%z4X3jp4IGpAb$>i$C73Z1VUhVDWUz3oY*tHWI+21xyrF_np>pbhmI zIiH={fX%|-)21RxNg*CDgYj%nVLCy^gYc&PHJ!;n=%1R>(npe=?&O7HT#5Ge6?VEd zLNd3Pr8pgCKEgr&XIZC%y&VOj0&S;%OsunR4^7OTBx<$|Uky!+jHjvWM?dlewJf0S zFx-fEc=;q1iFiC8qt$?Y=ZjT}$iomROnM+yl6pm>;p1$cB~`L=4U6gb?oPlrF*!UJT??kM!^5L~G^5JkQa#L zyyShAQ7hYL0lNcnOO>>bC64fY004HRt2pjN?EJ0<_Tli!tW4hv7hgzX?@OyI85Iz* zH4{kw!AuDT2BX8VHrVDF&2w!q6zyaBkDvOm+oNGk>W5SJ zqM(HBRUe%CJ_W$+q3g#GV$>?dHO`{|Z84DYZ;q3}XniU9^vpUJ;UoJws+o zU8mswp=IGrM|*HR1))Hr0S6mhXjsTXm58dE6Z5=;h8 z)Q%W0(7;OL(6(Jw9KnNg42vD)6WdodFrK&4pB~%1qT@%BIORTzm=?I{i6KJ{2?vN6DS5b zSR93Sw@w4c;^!uuYz?8DE2`1+q0qlCs zYcUP~Ro$^{ELI^ny2MAM!%jCj@6Ss)(y~f`ZG-*5mQr#^9bgLyw-ZSY0gg0>P_axq z0y1xwq2u9nf)OU%HFlIoXQipFTWz%8R}P^?=5NUx!vzv&f5x|WZ=f~yV^+cQTB;da z0aG0U=s5=Z%Xn7JRJ*wi>ltFlzZ3Q`?R@TFRYW2KI0CI!9xHx@<)2ot5@*njF)i!>?r$t{VuZ?6ALnLCRlA7TdDXU20`pQQWq(>uXh4;4sX>Q~s%ih> z`v2(HlnjjfEw-W^9+Jv8To!7i8j2B4Q+#g5b~Tc8I^#+`ir|xrDU!s&@>;Xw&8N zo|6iuqjKG}(hw?|7`bB!fl63uq}sM#8d#v&Zm}u{x}|+)GhIJr;oE7Y?IHoD;xY(2 z(=9&~Y1Nc_$r)8my-b7B`Y(dX2jJ!O_EH9_2L3ipixedPm!3HZpci~T*EK4w-$*tn zb?OGPPxPUqqO7H@5MWW!d~MTDUIZ_%L{Tukod)QMwQWQHqrZz&IlxshoHySpUlG+! zUaWX2|5928F>bOYVqQf1N1XC^d8M@sn~Ek*?pQmR>e8>ck@BA76|2m+u&e;!qSM&e zYY7mY5YnNuUM487l$K^w@l*k>_|dN0$(|tD`U^)rxqiykd#I(!DP)&_mibpH^hm&H z^v`%OKv8+NfMuF&DQ95=osxJC(2y)WB4A>DmksaIEF~B~;s!~3#PL1=?#sJ`c$Z}F z660O6fMiRusbS*j`cQrC*SpTXcS-9W66X{BZk~EK{3m-s?K1<-74m1ddU~4#pPw3_ zKsYr)vgN(~>pgT^hbi(|2k7F8{-MN6>#q)BmqM$}vR##15i$4+G`E3%tep>z&U#Ing^z z*E>wiyZi8a+pPlAA7-{D{1EB89~ zZh5cekN8*c*6#PD%-<{I{Eq86vbI9mR`n+U)3#-e!=PnNZM~`wFdXG0ia^>V0B-;Z zskK-kZ;|anU~)aJ{c86oxrWv-af1WeC4-1#)RvVw$pirlXf&)9iKuNNf_EJBn3az=W>3G0-?h|0m*X6V}`8XTaAzDe-x8+(2&Yp0E&r!x=fK{Z$Z% zGtu8BG3$@71nk6Z7CV@;D_}eN#t8;EwSl1iCqPg?_p~kj&-f;XLP|SP;4=5`HgCX! zWSzX=L2Z!l83oBY`B7WRvA-vAXkF^aJh)+E*3p>|i(&28sYL((UjU33o7IqqUNS?3 z$u*FDl-yfCF+k&~|BtXq)Y*0`vh;_}rhqXB01-kk$@Rbm$~px=0kr=UCYk#v=ZZWA zu=176uC6lx<3_Kx42bcZ1k@3N02U_@3UG@#pX4!+h+SUsbXfq6%zEK~0ZI|%Pyj-d zfFI!){jnj{4zn_PlLWr<6&5g3T`Yr=qyi-=2TJk>Iglhy`yZDcVR;E-9EDOK{I;1) zSr8>-l7DRo4In@*ApU({6QwFC1O^k&j7z!If;bdrC7$=t^PVf{}4SVia0EOn!i@N_?1DbeRIQqtyKaAR&*~03QP%<7cs%hfI6&?H9;p@f*iqzs*S2$4ilfI4aOET__yqN@LII+ zAo+5>UQo1rhjcZ+iHGm>txqzGi*Go+H>l+Sm*Wkf{kkKglx;2vmiK- z8Lgty;3TjG$k!*u*X=mg+!|(^wef8$B$MZ8qW2RY$bTjwbcjau?UEE>SO-$eWYDOl zu@-zzFLW8w!3Y-OC_)@sp+@4T(f#RI_h8bIRL^v4RFouwrCFI|x3_jYC{?x;0WE!% z1#;0?$#~ol2ikN@;c0lgQEAog!*fx7HkK*uysp z>P6^sMn}k*BPgDLtu5@B5nKCPjdLyU*|UzlB^#Rl7d-BFeO}ed^&?+c#dvWXt;g5Y zlq<}M5$DFg7q}-E%yZr4Me^p6*Xk0PE0sK0R2XG7QjKeBiHc?GhTeIM1i#vQX$Q2V zOgTLT5_qk!gHRalW@H9VE6Ef-_!?Avza>-@5PsSu8x{#Xb0!VP!dfJ zz1FzofIp7v-@KwH3>$|1ZcJRwu=S>E7RZSi`^=>MWaCWt5|OJHc%Ob~8kuc7MRH>O z&*a2&z!qvPO4_?S<~%WOePUVjsgHG1=d(Qug4@1GfdMXC6^9E6$1a2xrFMv!f{Vbf z1P*$M$UB;PaQ}YfZEUm8%FQG zE!IYVTexew?(3-$oduSEx~Tt6-CD`RgS$vN?#MD+8^kU$*|;c~{E}z3rf1`_hlJlh zw>LAMVAz$*m>D+}12bxq(`wTw`6oJw`KB@HH984$?c^5|4EgCrRdeQX{Ahys>#=(~ z&8x#F)pEAu&`Dg^6^}PC^)6f$2@8PlY z!7W24b0>2iThMC|h;Nrs#3WaF?Uyoyk-xvIFSyR-Zw134(m(Y#aN&5jF>bWvEE?_k z;#eSd8R2YV<7-`F{k&v}8B{;*8|TJm1lx(^#-^;_aSzNgZ0La|c@f)ateu_0ZSRNf zfnNJ=k0GJ4?Z0DS??2+KZ3vGD=o!05h$(vPCGTVBr{NGN_vY+?GMH_m@Q6`rFV?KvECA zh13M-x#H7+x;i2N4F!7X?ZfFMOqdI;f=4^ZV(87{ zY`zf&qr*3E5?V_1aGSpGsG@`9MRU=C-JNIH_kzS*n{JW(^s)B#(rcBw>+5zqyL#V& z4v)-4kh#dd6|5JBXtl_C*`-aGw+HGU)aj5Bi5V#ltZd}?*gSf}1@((S_aNlkUQ_Pk zROmW|VB>!a#-GGcJvbVH=_bM7A5wssl}T)02*@hZ>}CN}iIyqu(w z|ELmCfri3!>2gUQWJc-1>gihIR#Sank+e7oA3tJRAcR+@Nc zJA0X1+|s`DrQk;t zV*K&mc4)#cFP~v!JBE6n3JAYcy9r&Iz`)AiZ*QlIqi{?gY`4L3uUxahPWz4YB9?G@ z%+6u;N{zKkYu5sGb8x50eONAZ#XY?!eN5WuFFCj*~utD7&BKe2O%F#eNC^0pCR%T z*M;m)3=$o&C>jGdDAsgVf>%!4>LgE0ub=TUPWa2qXy)vLcAx)J-!=@3DPhs9hux<1 zZkn^Me3+I{_#HUFV^+)i$u;xHav9UlXN8qbm*m=>j<_Nhscg>fiQoA7WuS>_F-(L4h1V) zCY3v!qf0%&*AW&GN&XtJ^Enfa3T!hpiWMR^@bm$XUz{m?rKusqu+IKSHo)DA-_!Nu zZL*+^9cMLcwdKWeG-$`Rt~Uyg-GK+^uw1dAI<+WY2ldl3V&h`5j{CpqwoP8-wiJb* zvXps0PyXqF>0`xN{~{apo{OTP@M!8c zlv62_<_zTt!nI&GMsWIN6fnwrD2VKWv1E!O4<(HaE!F%}raqj4_gsx+6_c9#lw}m1 z-m^QMJkiRY>QH0mYZKL5AV1j6BX@mrfYbcw$K%o8h|FS9I%;x1XqkRbv&{_?l*zcx z8Cg!HI@~LKPHf9|+m;A2QS~tP@Y!CIL&tK}R}lTq5-N2C>7bVPeTghqXs;SwuckgC zrKObJI&5gBRoM*AK4X_n+V0zDPR4Jnz0Im!4~pm`6;vw(<+q3~9~>QAFR|&g1=OL) zGF!rhd@y-IJJ6y99^K%KUE!2#=OEb$!@0)H6MzT>D={}9_#R< zz^nEbKe(VzHudE+;bKzB2+It%$|}?uQ->zg`hG)bJ^S&NTh}vB2CH-msoPiDD2!F) zkxgGs!JRK!h6^~Xpd!e<`TCqA_ydYvm#F4OA)%l6rZi1ks3cbawB$nHQJJ#G5#2A{ zZ~dFqgf#=|xIe!2Gpc+p`+4sC8`-O6?xBjzjr1Zl{@$&?FqNhou51;(1W4Lq1#8T0 zjo|yU{bzNKQ`&>@5>w!?9`dQo#V3kf!yJW(oOopI@^K5~=MIcIG4wFpUo4;VQXn}` z84t)8xA-H{P}6-<4|nB!wbJjyImGk}toSaE;S6YA8QJHI!nj%h_g#6rjU0v=Zyjm+jyQ(iuLPJqW)0VTF zCuQju6xg9mxSw;B+y8?P-9@KYsKk{JlYdaikr)1p-(8) z0i~VNVTK_vkeJC)p))Zs8|79gzz~=-jLFCks)c?^jD}<*SO3271h}Ej2saF}8&CZ)t%)<(+Ex z$zbodldFNJ{*_QtPaBJL9!lDxI84!i2TUSW@BDAp>>@_Ch^6*B3 zm7mx)*y|+x(i9(9a_@NghkWXFgNg_}OJFJ$TQ(?(6bUF5G`#U_abBe!e0=q5N@RP+#!zI}JZd@!jrrh9jYl7Zofkhtp^0 zkFd-CMtW^to(yGwl7<9kDs#71`3FAoacj&B^!B9_(rZoh>P|a4+*=cF+>k;$`xOaM z{z7->h%)Q{D9F1fUepp5h}?;rOpI~Qjm{a1pGBp0Z(;Fk?_>L)XS(Q(`94eYgjZC# zz>meWAF#2?$&90(&~Jm_S@qOK#S0=r$uThSJ}tU`=I$ly{@6vGx4RJJDW!dhzaa3B zJWiZXk1;{AbE18O2MW@L5NY35`Y?>Gi$HyKiUyN|U6ZcCxCjqL*mc9iV*Rwz&foP(E#sJp5=F>c3swphQ=D(x0ES>tI=f5atvNjFF!DUK^EJ1Jd!HS9e9ri|PeBC36UGiv&Jl)tI%XYBD`RjH*sH5xJ$!bZ?7P930 zzptDr*uNiS%wq~TX3Aovr1!5^kQs4AD>QJ}F; z(eK8{MsTIlL1664>6!d4HC@1raLu0Mi7+euX_05&8EvUfy5m{b-oU6}XF>MuW;mjj zQAtlj{x8hTc#_CMXos#n$&)W}{hk%vy;TDMKZp zM$U0>#@;D(#X7c;@yrv$1RdYq;;6VhCsDYtny8}>QjfOz!5MZ}ouLjK%g#bxqGMxW zQE(#)ThJ6lm8@91#yFvI%Mgo2DnIKQ@`m|TOwDDZ;y5{PIIEx&JIhk=_tujrQ?&ct zTabp-)Bg5{jQETy8l><%%W6pswN{K$U>fiF`M8$6kOkFeC!b7CDI+I761n{AP#AIv zwLON5xHZz?!BLE+YHozdZX#Yz`8Ny_6kF{AJ@HxbRtA zsq7qHfye}k!5%vCqiYCJC!7QIviu~jCZP>M|DUNdtVn?`Uqd95a(*_ZWxuu!Xqq@6 zzHS^;E2vhIPALoNAitrB66<~Ke04Rtm=`nIvfK(J#=RNRL{ZH}B_usB8<#RD7#{3s z+s!3=qlg)=awcUGOOP&goLv7FmrIlUuzF4cwK=~HelLK>=p9qKF2a;IOx(d7oXvS7 zWFg*5gBKNkXwZZ-6C`qe5R(;#-tUd!5%EWSj3(Y|7PV4t_d9}7HVamO9n5QDq0UW6Eoo=e4cOJZQ(#}Xt2zP#j(MdXD4!@s)2ecADSgERfake6H&ey^yQf*R@Yx zYm+sMeRz7vTJlDuJTc|RhSEKTb#hMh==w`(`w?GsXRwAgvfF-|dYHGIPh5KlM4&hB z@pGo`-i2CD0amtCh6m1G%?tyhQ2)iku@gkNWbTnbZ)xl5x+RN&)~P>V$p@uzePSm?{rIf~O`g3yDA|{bsC3CpAtnMw|(1-aS z+D!}2VeHd68LRFY{QoqiJ0mo#U(2rQS32hYe!eBGq)e_F`1T7JMopVKDBs1Z6`)$m z6ZNA4e^4%d)K}uo$~%q}-+6v|T$h=}ZuG-gluelGPI;8Jh&S`yY78_prHJ(i=FxAo z6pO7mTgy*v1TXmLC{9qO&)Tj5w?Bb?Xbt=lUUsDapx zL-)z<-Ij_e@|krs{QlbmZt452G%T$dn&{Eb81sMVSdy9(4l$$=wHC^pX`asa>Au9G z&e>R>n|bCO8sDO0tYDIpCv=ybOu9Wi*bi)etwcrUn7+W+qs(}*y`c8w{ww1x58+23 zoEca_d41VJzAEmM`P77eh()$Z@B;NFQV?hxq?JSMr>Tq>rhm%*v?-(|z7~-belZ54 z4C~=&bdIHU2R4a#7?`4&WAU9cerA^rep5`E_r_5Amm&9l8G+=nnEiHt={9>|*cWkL z{2Tccyhb|3Ez$saaFv(=uyO69d2ciOs zm5G-!+TQtK|K#f-!d*so<|;q;u7N=G86@w$zo)oub5p&syr;{ zzc!`S>io{;Bh)LV~j#&#tXkDLRKv)kE5)f-*D%i>r#;l|SQZQTL9`swoFL`iJo z<`$-NcgDg$ORDC3s%zid8|tVTE05tdlG2DPJnW1UR4MI(%8tE!ILT! zSbY(fy2Ej#KjGnYuz$wCg+_H`32Y4jbML-qtDFozwhPO;Ht+iT+uYHEU+!wDt?sRH zeA%ZwOmjdJcVKb*V6!=$O+)q+xm|K*ljE;8Atc#=^}sJ@P5AxIyUvvIhXgJGe4P>4 zGux63OZ#W0tFx*=G!Or^kAD|hVHEn^GLM8%`CHji?`vkFzVoqAOYd!e!^?#aC5Z+y zgpZh5KG?iVWidRp-J=VxYtaqJ*#*X|iXrcs8Cypz33RAy zS~qRawzl06@`nGpM?8E8mJ^TuL$DFf-*GvCM#dpxOk?}<;$cd9SIs>@$N4ZKg>XW! zfyWj`11V`BT&r+y+?((#*&-t)xsAMOB<}S12vzkB9{4Ie;MKRC`tXzqVO=%U z=nrkX))-vqNcr{-&KCIkQ7UAS9KD*~%x5@TMK<%qcveOSq+oyI+xP@(i#7F@jfXET zN>=bAp>iIjbDEsK6^+Q zB|ojM!Em-I8Kd^K@V?mC25OtALbog+8BJa_G$EhQpkj`8rD{|lHFxz!KmE}9ix;uE zL|MBUjeLG#9`=v;3Ze`2j#9kl>_QpHaZ;Gb|`f*NAFfDvn=3sr3S51hbDlvcvvp{h zFRbF1?^q6eT!U#Lh&IfcG#_~5;3BXM{7ES`ejs1F4wH9GptG}JfDyh`UZtqK26ONF z8wp8Ks&dLUIs;g}Y2w*2o-7UHmogxe>2JTe2QrT2t85(_EY17rT2yU|@H$gKMG{2p zT<_VGs$5=w;tk)}eiQYi`>6cakgsUzZ4Jg9VJK!R{Jy65V~@9O;Iky{m17z$ig^+@ zP{W@nR*tP*o?zS;o-+*i;AIi83Ab@87DXQR)sGO zm6v?AFt5$+js&)J317zFRPsmNxW>BPUpOVBFVf!Xa%g0TzX>*&K1(-|1rUmqvM#4K z_x`$pSaiqPy_yvL9HsFH6o*w&Hw{Yy%2ybWpm(Mnk*R#at zbCbV@?z(QCDX_nC?%8_d$=PnDz5`VqO>`Pjwx`N_UW4Y3>Lu8y!6=QAkMEI&SqoZv zL$)jVq!n_3{v7ERu$XJ_uqSUt*4-r11ht4c4iF)$z|RiIbDDUJqBZssJ!XkStcuo3gwo#bM+&gIzW&cWc=8=hTa&^AUPcX8WP`Qr>z* z=5z{JypWX%&qs}3)Z$@M@&Rvq;xg{aPPBsKE$>fS9T}Q=hi;8HYQQa|hAE}KwE~Hk zFDdmmX`Hi!;c%uDy2Rfn&Nd9~@&W|NdpkmSG^lFzi^tsrp0Uc)&}tqD)|MK777vk7%s+TeAkTkPDEp3I^C7iLM`pR}as^woBIFcdbfc|rg(ecV=z%w&OD$r4L#J=S!in+k?u+bKiuj5hytS?%7fy4+`Fc(17b;{z zng$52&dJb|Jku=B@PC`8zz_Ix-VPPkQdy?pcXQg1U~lY36mHfyw0?vr5De|Z?mY0u zBWjAJ&wzh0U!%Rg&35TLQ%my_^$AQC8)qK7eTdoOuqsa3OPbLygbtYP#L8~BWA&Xu zbG)B*o^?ubI?qb-PFGrBwb^eCOxy>v9)8{wr$&Z#wr$(ov9V*@w(T?T zcYbtN=kDZ6b&~4pE1ldW4M%FKGM$4Zw4IZx$tV%j>Q>I&5~ZfrMFrG7fuNv;%qhA# z+pNUtq!OXi84wnIRFHC>+=N~X$z$|&y&!-`2*^}sU10?C_sBaF(OG31+jk))7aZOK z{Ne!yUqlADcB!SJeomF24IKW$$?CFuc;1 zjJMKt6zAHIn(PXRQ{u~4`)E*ZJbSLvRNGxxqR|zu_R&spfsHzNBRaS^x3|8k2gON( z>aL?6c`4`IOk`W^LU64^UumvZsg6wRL^~Nf=XjG1zZbDYD;oP*9EQgGSMhjY=Pj`Y z&NeBVK5lTZ$DGk>^&75QrA7fe^^oE$WrlQD34hHWK|dEp6jSv3lz}L+gJALjby5ak z!u%O;MGm=Z_2VXotZiJ3jgnkt+F}UST|JZLNJZxFI&2tuxPA)>rZ8~sBM?#R6J;}m zs%_d(BVju*h}OxL)U~Wp!>zzejW-+3IbOE1Xuiv3RAtAxT9X^JwFqEx-+IoT%|BBx zDt*amQkQy~qwktu!AB3fo`_)P=*oD+KL5m7SWN3qSxB3xf6gjgp$rk5D`>NXZy7Q& z`|Kf*I6wV6fMKxy4HM9`;ERTx+miitWxQY&-lHe|_3UXfLNG$@g_&P9Bk-p*Hl+99 zJL*>?({335KgdbnAnp&YjoY4cd+PHz7y9RzY~P^R4@msaYsh!Z{0|Eaii19?(Tr>e zW-4gCM4+mIkp4AktZg&&XOcCS1_f;%EEIWVUT%9 zA(zK?3>d^QnOg%Pbym629vFOBhHOj#Al=p4#Z>Ie6n4f;@dwCViP7$zaHC1T7a0=H z*+UN0QluU{{M}bC7K*qma7wzLxPpG#iGK~k0&XOVXhB45-I2~W`#!0nhRh4!uW7`dFy|;x9D7&^~6#;^pxKpl{mNfR`{fjq|o+`?fduu_mihC@yWb{ z9I~C`96QJU;H?IubxY13!8NA!S!B$oQ*wSggg2nP^#O~f~hZ~GIfts7#F(ybdpp}$=wHL>4@ z7xyftN%hcoVYS?zY>Q7#!nru zh78%+6b?Vd?teD8R#g`D(Q8KEE8l{E#-H#eyZ3R9qm+f^)3FKN_?^N0|v z_`#s(LI1s08r*@*=oWI#6p~X$r|C(kQ|i#{fQ-Ll<&;GUN`LNm*|Me+*JoxQlkiTP zxO?A^_!n-t{ps?+@z)9n!4kdGePDj4E2~$JKUU?86^}1&xO-z-bV$}I}qPydNCp?_B!@5gIWCHw`Cq{o_~ zEP9-C%GDkQ=5@{~IY^CFTC16`WYYL`Lew7`{M(M|K7;-kP6!CTfr~ooLQFe>@`+(2 z1fV7C%*Q==9R%u2u*VJdw+KsJ_wDx>apL}N4Gr}k)9lTwxPu|CRh4Urh7P1Y;V)Mx z;FIaO)ohnvCBXNM+$RgRlL_ z{55HQp<51>`R?($FyG3M3G~-yc!j2{qnADOWnG+4`J+~P(@Lv}>r#7DRD2tx1W-R6 zD($ihbdVhlV7@Y4vgBXq?UJoN=mN7YywqETZ})x-)AiBJdyn}MHy-H?R}?SW*|M2| zqucYf3aXJWyM5%0g!6+#cUhY+WpEz3g$2@IMIZz&Al-g%2xP7Ia=KuaB3G9>h5iEN zJM=f774Sl}?49HxkbT+SMlOwns;bfb?r=mDfBZlN`%BGS64C#pHe`87$?lE>2WjkS-NkQ6EfhYGKshDpi)ts-kuW;+f?t=W~ z6y$@Hy*bQlGn}Yr71Q>a7NwgSE%2lDGN^S}izK~&K_L|l*?kt=F$H^{jSU3b^NS^0LXYD@uEK8|U?(`7w-yO< z`t?C$L!s>)k>n}YhsSsg{qb_NIS7C(cChdDL-j+CxHi$uqUfEjg!Dt?d!QPjyZG96 z!P4W6f1$;=xTVfVYbNxC6u)l!{q6QJuMop$a1*PJ^-;^9@~{_r1K{<;(m7*fo7geO zvCI=imvs-G!5c-;H>;NG)dFl(pdRMU8g@ zq&!X9COygPIP`E*RI9~pKOy$=fb{@fToVTT@axjox7^0!lm=)t?9LskiwwwzDw1(0 zL27;MfAz0Ofa^R2|hik|hf56AR zC|GuzMf8Tl@!o2#BDTj4#RAa0DOma8w>27h?R7|XIo zSBg|KoJoRKc-=!xaf75XVRnyUMYcKDW9FEJMTzymSPrEQVjI?6`y$`SMqRHvAn`L& zDy2{?zHNzWJwc|f8z*J{W;AEoldrQb1jJ1U=WNeMq=ah-&p++ms6)&CcxByCS^jwt z3^R&&KA4Sx;_h1l~TiWAr zt}i^uzi)Ova5P%uKE_ct$_II&t_VzvM;a{v3$<9rT1{ zO)wkS@iKWMzZrQUPuckwwg8AZ{q9Z3m@-0g(_!8-6{>FzQ*7wS6?LG^%FR#9eNQrh zczc69gFD!#`@Hj6nSO8B37v^Qg097FV>drS*7h;9>$S9??^ge5&q&1U0PcAbgSnNK zu_roqvZ13N(H$dOI7C7HI#l|et@Llpw6j$A-zx0g*4Ztr+9NO6GA#&sf114q7Of8a zJwgxU$DCV+Hn^;Y*b%=8bMo=5=Z_mxUROt&YG#CAc!l=M31k^~W9_hkN*{~?M~iQ; zJOww_tl%g>u1y+#1dJ!*iVOrZ{RUsF@H zmi~EX@qRObbIMKih%U|!Jti@Kc^lueun~{6pT4BRg8uqWeHKdhW)1QM?_#8AE7{6j z0Px6Bhv9xI@D1Um zZuYQG?&4KK9V4255+9>SXhNIH`yHq>jrqMm{P_|ruATHr;Gi#OhI?6?Hz|^;XwZn= ztw7l&d?@nJa;ljIt2d@~;_u<251v^HK;2G2o6M0#>`jNj`iE^3wmtE9qx_u*&ZN3L zi^Ys>Sn{_LRWS*qAsEi~A>}%lDnk2yu2-)-B4MM5>*glX{o{yduNn*yo+6IhJ_|sw z$L}SLM4FArxUeI_bWFejmgf-VuO_bjs|j4vj+IE-+B{yNn@&w{aO6#f+41IQ649!5 zZm)_(bx3&5k^6+DME27Hlu~*>K||o^HfSaMYMhJF16OxUNk7xxehBeFEwqBG`*6_0xl;)HihYipM2mmoRccwuMU^c@BLUL(&~GqIOr9XUyxC5bvdow*)k6u&TFfSpSM#6HoQa2YTEKtjbWIG{JT_@m-{Xw}%QY zuKYvlG=hMGPONfVBq`mX`zaEYqeBL?@$1%)tdhDD*vAo>Kj!d0#%N&Ol%!I@fjBJ# z)Ie$%cOXDje3I{j+Fxb%FZvtOB!+3HgU_+*6TpiU!F81~S#cJbZ3)g@Hq73fy*L(d zo5J-oF$Ltrj}c8Y81&EHiV>2j@Ft4kpyq~Fd!~3rwBHC8um`pr%4X74=xH(k9+#6Y zKvcEk;rTs2r489*2{EivTS4GUzQ?@S7PcMyqJs)3u3qbMCi#h4j!*QK-49MfkK06D zxrUIQe%PRtaq+8%&g@ zhaKTln(Z=@Mpy3oIe2&`aAo1&i}PUX?9e|P4dWq|sI$q_{m!_=j3a}IMLw#Ar}|0< z0+6Z}zk4E8*=KW_sW6)=S}4gg(BqFfPnl~_RVnZ4#wyJZDx^fa4f>fv|5Rvw!Ve+v z(u@3U;tH4$F*rudzX?XoWalWu`EYNpd))nDYdFNLC2BXL6TWjz(qG@nBf3QdUqm&v zXKkvZ73>DNMlBG(*YtzqK_REJ4&hps#f>?ThOfM;y!^$wZ^yhLeYXfH*1^X zBa5=lYZ6u>KTY^uJssR9_{K4%5IcH_`Gpu>!9m_`1}b6s)I;Gz!rp9Iys0-$F=KEB z^iL%4sVuXm_$AFoc*g3l9qAg}gv{LHs`5EBN4{KNFi}1{+@!P1pyKQMBh3T+q7yA} z`Jon0oK^S)>$_Efv^IihO`=wUx8_K`JG^g+S%Fzw}zkQ(=1Iozce%KR*SL(<;xvG4fAt#_Scm}shDXiheNh|eiM^G|^$pIP(Vv%D~0O20*`%M>mi^Q^t~oxTX@C*t2zB+YMTM+nOq zHa9nUEHpon2zZ7>-{uumxy(2^FK?(5F4M_);M7TXjP=Lg#KW|k^*Q7a*k{}sAUJ3T z_=tVyLw2>suW{+VtYGhs%{}zNCFS2WQokrQGT0YVE=(2lEGa*|Hg9E{cOFx%$dXVSL>|YhUpqdchvc%>Y6rFX` z@#JT^DSmwNiW>@r+8Hj6b@Swte@Z=62om28y4ecfRffh6UQ3L5L;#pgNyy%i9wgLx z|Gea%!5_R6?1@*3f{}dBxEGL@5dxGx*2+cXOX>cwSsQ3iE_ZofGGZ*RzrKM3jNDbe zigRLROw;8)761e4^dp6uG`Qtl6-)UES}WZL=1~T;*5@~!9;ZMRYb&XRwb3mPuUaRwjIw8CNY@xRB(T|AQrhT7>cj5nJi_2E=;L40Ys@M2tWZ>YyP1G@KIzY=th(_R_FR;aNhZt9N6GM2Y6 zu(F*YiYMidKxxY|mu9cxUp+JH@52p^o z^4DD=yxloCNakBfM3*sRD^aZ?mI%af3oqET3x-N(&=8jF6My)?ZO0 z6sI5yyy!TlWOFWkilqkrA0#2ylALxgPWf*Io7RsuVvTgTH_~G=shuhM{QpThY(-FSdNccF2(&X#1UkQo887?40N5@F^`DQh*1_869i^VFKrcMz z2Rxn1^H0tpO*w^F+_-N-ydeG)Ae7!hAiWa&{7#8b=^D z5}_xh@me=ZLx}_M1a{UrL{<_kh7vD|YeGi%CLGfU7x;2qsdMk?5X!fIti}R-qAPQ^ zulSjVG$jGAy@p8`bJP4%u&4Cm;g#iLA+XG>w-+l0R2B-~5G?kc zVzE;AxzI4#O%wH@nWauxG`bZM zwWc!S-gHZ62-U2R3Lt0fUh9!sK;iWi0BoJN{aB9Q4e*&p$0B6y5cSRBjh~E zp-vH11#HST!^Vpb_fF`!9!z%ui{DpkVurRnkteU*W`7g;8M3I1*ug_~*aNS8LiD`_ zjc%Se6$gm0Oho}xW`ulk@niUSTjq1AoYHh*x2z9m@?PR$R^^OR zLC*7>;+dc)j~NbZF-7KElQ)rW<;X4wv@<_X zi1a*>aM-SG((qg++Arc((2`S^2n?i1*+@zsxS`>CYqsiY@v$%d9J25Djc;Dgt_Qwt z!~uj7NeMHUi}BUaXuN`FzG1yiWf*qr6jlw>X;q^mM^l_xTx zLAv3pizw$eeDaHw+LE_RtoB5mtQm=*Q!dLG$XvnEq`>_5i-NNPvO zi8Ky1mP2Yn_h;*ov{jWn`}Gw@b2e3q(|?L3rxO-SiU1EU9z4_qp|xXYMSG-ttp}iX zEw)*ljkITILQZ(c?89Zb9WLsBxp~W){%Ph5nt}q^sGvV$PsA@9^@DY*tWi!Y8@C`M zeRDw-NNpiqxoO_=EFUM2N6RlcKVqXKXY38iGkfu;2)(A+2m-QhWt67e!$G3Rvl^eS z?E;{AZV2G#lT=BD@wl9OUZAi9_}lw-j;G=0GFAsA_6fJgQdl0LB_kr5FE+O!Le;A9 zIciR>OB*9XWwbl3qBp{?<0l$P?)ZrcU{|c|*&CA-`$UCU05}MIqQ+(&{2+VbVxP$t zkITcQ5u&ofDEgw4TUBARvX2powp!B`#SvpANMpC*o}baMWj)}UemZ7_tyBGauc0Ti zW4zQ+Z`d^(7qvZ%V@Al)Z`k85x8Ju1b1fR~#Iy&XLyB$$A*u&_T;j96Z>*5)!7 zT~5_2bpcZKsT%dqW%bWnUJDwA*0W{x*o9;C|*Z zj$8HHQjVkAxnYjL9;xj1v=7yW8}-qCK=H1w&W9=%qS>9g=J9n2`QrqKWP5`fWkooK z8T%_IaK4k@aNOkuVOKlG$B_2R`RKdE|m{Kt}Vh*QpyrT7@nQmICWseJ^dj(s4 z<)|_%jQk=EkE-_O;*fH4u&zvwi-*iUjhgGcsUDo9~eIHjNZ6gWra0Y_&O z!Vu=Swi6a&j-0JL;P7ggXR*PB*}cN0B6C!k7Dm3AhG)@pW^zcm+DKP6$MT%V!!GqC z)`;|UtQ$#K1N#`16T*K6LZeQ_v1B%0JiAm9Er+b~>*WLEL)rM1rI25)`DrA4&Mswi zn?GT}rXrU2!T0w|?1QPzoyy1b8S!KMQ0~sm z3-%k@BjW=-d_VaP{`LMc$S>LZc<a@fLi$gU0(>&70ZG zD~&lF~FWm;~qkA2(M;?vD?>zG6Iu*4vz4I#WT(=W1&hLT2gV*@br80ThMokZ4 zJd#&NFE*odD)RXDcR^h9ja2&|b<{439AC(R64n+`Hv%4crdnEIPo~;xrY9D6n@2DC z#AP)!J#9^Q8&a<}cbgyL)`RBisq-u0!E=Wn1&^OgZtu+6;QeRT=`Hj)NyQ&o+<9$w zAESbo8zYuCQg^>a*+}TTaznqfF822Biayqd4m~vUOGghysZ;qi+jtBP?-D+$e$uFk z#SEM_Nz4#c8TMzXmsnE zt=7*jcIc^>z+UM(t_y7w_h6H=%Os~`zE5<`vzd4JJ3jWI=fNBMp?S=r0plBHgEmIyY}R9Y&AOku>(D_RCyUX=?Aj8u$F2H@S*D`1aTjc zqniMudCkHE&g2=&NM>TyI2L)eq}*Li+rz#5m>pPVWS1G0*&dcox;!3MoNpOCCbKl} zzdKBKNAoq^$0|%ttnLmfG2atBd|t^%`B=Uli*IXdvA#Jxk!r4#>yTrARtrH+vrZ^) z$N5eu_e6cd=Dd9_Odpiz2ABGx<-Bd4AMcfKr+1Udf4byYev5e-@JBnFudtWuq^dnL$Q9I^TTk2&ay)?PDRJ@r}`p>J7N&D)=ri3@B7lY#IyMdzBf2# zQpkr{N;^saq0c<}U7wnJg`yyMg5ho7ETfoT%<_qo%uKXd4~ooesQR-$F1fK^ZA!}g z5?N+SD)V!eIQ}0Yn$X8@i|@>`ryiWk;L48mUrAOo*fYl#h2r>z5V5kxQy~v>EF9Pg z9X+F~h%jctG+A(zo7+RHaZKT4W&qq3@#OiQVaj>=nOvaB|yKLFe$#(CiT{T5n5oZ)}wkBy4E zmAmDsh4mEspYO|R!)&YKcVe~_@(avVECx^8h-$EB9_ybh3jxvDh_YPRJ}`}%noOi_ zLVuO|QR4IR=R&M71FEYh`iaP;Y5X(VRe5>M*3wE=cVl55{(-&C!rX?vxoX4P=CCBb zrLAXFR=IIg1w(*D!9v(_;K$wAsyL(SZ1!ZrypJqh$k#IK+YaO6^ln4}ID2Nj!Q$**B)lPA$J# z%|mKg3z5MC$KrvNJIEg=jBA$E&9yxC7BGn6Y$tA6x4f}J{ccbEUl9SmTGn+ z$mW=8x@VZ|S}YA2qsuqKlce)ZE_!Hv(?2#F|5y+`An0w4zy<|4pB6NFQ@Dw36r5c+ z9h=n^p)qQ6pxVd2&h=+3LDEvK9#}UuBa~=xN;f+`Rj1JZq_b8b5J-?Y2ZjD=>X7L6 zrbqB4$jGzPf+F3wkj!o+t}nSUQckRXoS+0YzM?D1OdV-+WZLaof8C>?o81FQGP8VY zozOI*-gZEL6xoirG{rq8u|WdP@8B)Bk)2IYifUn9T)QT->UPq77HnEUS@uD+^2#tj zB%2(Yq^UNDIOhvn&8aCtgi=|H6K|FHZ)|>Y*IbET_kD@_70|S(<`!N^zaB@5i3~8k zWf%N&3?f#VM6g)5E{)gsupL|pK>@V{`zCOVn5#KxdM^Od5Vf#bu8)k+om}~p2GST< zF$>ZiUy)tGAFMH|`o?x&W`25}y|LA=;(uzY$HqL*1-&L4KI%1Oab-3d?+kK-F=|w> z)yCvD!RcJb(B?r;uraf))w{XUw|1KANUUcJ+8kP8Pe$sczz>-DF88~F)h*jL!?1fI#&2IE&K2Dd)6Ap-N0c>mYGl}HyLj{X&B zR79_&dcm^f6{D!)Wujp`vx|SiH(!G*1LV8BeJcW%dHl>RU`u`VF=SMCH`~u2Aqa#sz9${`aPGpXUkRY6CB6df;2;{cwv0*e*XHZl)`pS4wo{BAzMN z3bpNK>8`!m-z1aajay)pMtal*G&{Tx5N5aZf^w%(gJGWO{#EJrAqkf;-S=tx`^gmv zQ!`$Eo-9NxtrCiQeQO`l>s;Pfs205=M`>IJGW{}I2lsye(CM5lt9>Fg?xaQ6umJpt zIF=+AG30tF#)9U4IcE2}JJqMqX$SVtGc96(eSw$S4eGz43ZB)CQ=%-o$700&l*5GP ze&e3p7U05yhF}jSFejz7hV&LMu6reLPwrm{|H1B2j^*_!sBr}`o*$=pU0Hemm@I*_+4 zFk;$DLzN_sqYU>xQ?Q};KhHDSJNDp$YZ(ZJAmE6DuSb3rqL@aN*h$y*+okqZqRizt zq~-Y9!3OjG)bGaXi3N?l97J$}LzxBdEnht2$I>Zfz%Jv&n=HiDhdMtV8)IMJulE)E zh6(M332nAY011sN34#CTx)>#dJxHBWCy>;azBq15dFbIO(}?2YGIx6e;h7C32L2BL zg+EFPME75%lQtm4;u$^I`k(gCi9FqZ?p0VB=_zOnzc8Z6N{0%_BQCOMzwvQ~ua7w? zL}|GZtG_T-$f%AOSs=`%@)3lk%8$8A#~ZReY9 zNFhz1q6)O}cYtd`e`zl{MX+Al4RTWdMDuAQPF36#`VSA_ERe8T+6n(^r$w4M#YQ)1 z0730+Q_U|vMM~=^7li_)lkio7c+|Bk{iBQANQ4a)fFVw+g+h=VEmy#aT+jX{5f@VT z8KI*C4z5J#1pGYqIgVY*9LP8JoivS_n_-u}n|Cr*@IbtMK+4!vQMKTz+|0h-Q8)@5 z)?AxtCfs-pxa>*}!@)ux>Ci^X@S4wo2PL2h$(+m4#$A^F%;_XK5lV)UX@@enxM9_z7gAR^zO(&7zy?; zfYy)+?r?CY5BK9i`dOdmOH2i3vy7rZB0wU}N6d50GgjCb$jcX64(11Y|Ag#Q2#)Y7 z!A`iKeTA>3h29)@Lw>``@i6o_0dr^;uDe z2Eb9s7PX6X%dLP3sO*=J15zESJ6@9gV9QiWM`Cf)%}za0BMF_D2$^-F$M3!J)F+ieiM zEb-A||HXq~?#T(LsT$FezQxPj5oBN`fz)Fc?l|V2Hzd{{tbD(b9gD{gn-=jWa%h)M}LQ=8$vq7rJ68D#7oMav9{NuGtUKV+g z@Jp~F#+PJdIu5y(+*~}rfoRe&ZYqd>RoQ;DH%C4J%ONllc^SSH0f)s>OpDHqw8SWe zmx3p(<)UcA0>dAIAmyFLO(ZgJ+FpQazb*VszD*i1&oRR3=S8Q$#YI7gx&*x`^oViT zeiw_d8%S>}=VZOLF=)=F2eSh;n_mFgk}$PpJu{0k^x&v)i86d8zu^?C-$3^HL0(y? zEUfj0Yxp7U7>w*f%nhqDHomkXR}hEcZ)XQN_{y!heYGPT45B`(2@D4?-w~s|bp(f} z1Ou^iW9#d8486nJbseQ5ZYzXYg5&pvq0Rx<&9jbV2Wz}YB*yRlT2sH?q*{f2^9^RY z#mypcQ%{(YW5hE(wDMGtg~WibCHbL)@9fU9VReKCQ`!m~giINowRtW=D)-^T?o5Q<&mu-V=?WLA;bPKh3PSv*dN7!> z6ds_!>mUdG`LO6#VC|Pd4J?q0vk^fNh*>QpxZ_Wq`9l(l%CBA*^(g05o?%zuYR`H` zX8w?sU#VbJkUO|J)*h6Hk5a8Fz^WyxHiVuCBrXQcJjS88lpI(yLy>((4zrN{iS@Ur z@9E1u=gUNIhyU7GBk{zEl*vv2;5+_JUK&h_`#@Y-6P!k2{WWAX#GuLwOn#R&tSA4L z&*j~Y|EW;j+)h5^?B~MN0i-qkkTnwAH}F7^{XJ(sIDa2adMF(4+HSd~-AL5(E7lf< zp+*kj(4m?5Z2?yGWj%MGaya1*13O{@)|@llHezZ*)uh2!+1a#aWpr3}HoZ-UT{Ic6 ziISa8?b6`!A0Cw$?aRZgFd4GgBf|b@@0=ksz-WRrm#gO{iyp5TdlggpP7KS_KMbglRecK2e zBF}bItogctpmp_y5nu*(9nh;5%n;$q<)&@y`YXF*@|d4neF7yra1{;SRGTBsW>>!@ zIdHX&NuH4-t=ee^Pa8g##QHg>?B<13?|e(bcjhqj=dlny-1_VaFbrDUSyIvdbHB?X8{}-oof9m{XnJR zNIo;&ym}7B4AUaWsd^jHILL{5oA=ka6K+n)-=M>kl)8<%-znN!{f<`B8aY-QEQO>r z>{>!tB{hd05W@P{fl(=yOXB3Hd+IOql3pC;l3|w+Z&h4mu z(~^_AMY{Q1@Skal#wNc$)8eQ7Oltb(UFOxbWB?Y7KE*>1$!hcJM-l0^Y29-SJ`$jy z9^-=g>tRu9RP(3er9_p$C*q~vUzLu$>~}gQqfW`B)2b;v>YDdD$yTZ9$5h1AtmfgB zcQu7P!tt|Ii$%bHrRur()y;^jJk>()4DFOGj9#y3){Vh=Z(cEZh359iCCA+oxTuo^ zJHK%=p{h92{%}vvY;@N%)ZR;;eauPrdTPq*AEJWN$XxF^vQYO4Byd$mlkODRBWrxp z0Hxv)>l^WdCoE_>F$1yNv8JF-y*<1H8%>D;Z+!))pdvk_MG`Y}b;-6O&#fL%k&Zn~ z$Sfq~aN2kFNQBpf&Nnh<`sTqIe{MGU(|BaD$Ng|qO^IFOYn7yjH0SR>#Y}Qjo>ogp zX_+yT`b?IOw*2n=5+*X#cO@b+K*d}t1I89} zH|xihdOP{q`yC%M!)4id{K?{@vY~iNnq0nVBh{|YeYrw>M_@Mc_1Fa0CD+FFTM!wo zxoCuw1Ow~i-Ha_7U#e6b_qJ0$thiQ|3*IY{6$s3{S-ljo`bkZH%ifJRZCnks~ZHl~Yod@@=EM&;d=!$qj}ci!#~ij!r4AywhR?g^TvY zd}6ZD6p?yGT=e}B5#0tEwff6KO`trhaXUUBl@845q&2Hho9_(7&#p887R}iIo`&+I zJv$S6Hyeg}CbLGbBVDqm6xlci$&K>*iC<~X_PG@pYF}q9cgM$sU04EY*Hg>H-0ZmUP zr%izoYmCW*6#q!S&ql4}*+vHH?N=gh$&-!q@L>FG?jN66#<-%XY!fIB=f-jeble8} zPCvnxcO24n`i7`w$fI&%Ei7|R>0HC(=`G?Z$x;3oQFBK&B%%>l5HW4`pL?>Ct~C%c#N z`ciyb%_&9m%F(>=P`Ao?wd$G4&4R%SL)%MgnB(Ef3llU8QBJJiCcJ57z@>CbRfG&8 z^N}0*eK7|Dguk}Pft%pU`X&jA;E@vBR;P)1@ab_R2}=L@K%Xm8rzzjr{&ScnEbFwq z+Ghw7QNXzBPSM=KiU{Je_X0HM<~;?s4ermZNlr%_^DLbQeH)8PAp=TgjqEvDxLz@v zGVq9Dmrq2DN{r0Ir@*i#yVComXE+LG@yO>BczeBTXKAx!q-VLZB2i3VEIg}(45kbk zPjw0yriCpO6w{6>PwSzBDdl3dY1GroSw3nN()wALYgE!08k~~*b#96wC{f6g$6Cb< zx+{WSnxPxfKoXs@`;%@2KRkmuBVH%k1P#PCfJ_Vf2j^zfWufoskQp*jk8t3Ev{6h! zD;C;R4WJEu?QNCQ^dq)w7}6QlIov2@KyTZW4d@JN&o_!0R2il@+^A(zt#7Us(*~CR zY*#WIGZt|@Q%*Qw@jg*UL4-IR0|l?jb$vqww}~C{mN9sJ2Ytu&CzTYMg`$>VJG>P3 z8~3Z6@f0xdEAry0riBg;Fb1#6z&*D1zbIzDN*XjMd_V=?egd<7R54Wl`$~kq2c56G zPwLkx^5m~(Fo~Vnhk|C#x-mmFeS!1j5j1$>&mTcXDFJO>zlT=N1}_Al9x?9HQ%t=5 zy#c7CEiUlUQ_3hma2?x0H-;?zN<}T9Zce0zR*qT{R7W*sl)YI-Iod+qsimIa^-&rpqFjT17Hv_-~Z^pMPK&GZya^`du=O2U`wI>FhqSblRAjfJi48K zA;HjSAttdidZi<$^U~eqvys8HshRUcugFLTJmVK}pu3}I2w#Vq&AVxw`eqGx6pPj3 zWqU!I;_}@k*EbPFl!dJ>e0L(|j$lTKLqT9sQ zE9!7oqFeN8H&30=o#SK?Djm1DVYV3>a5}D+jw}Dl#mB8H{JNGKPtAeqvq0Gx*qw5i z4}jX=eTj*u^*)VGa`73hHT-wIn>LXq<%^Q|4+B;Bn*OGyF0BAiZ%+b%I3ku%eVShk zH0tE0D>?DU5o~gww?gH?F?;cy$?|sA9aev{S1}cr?)FX0t$6?|nTUF@pGo!ZWOpoi zpd~}-_QW^V4Z7zW-CB}3@d-C57NXeyhj{nb)aT&Yeu4ZSx7aa!@N#{SF&u_069RoX4>7R5@bn z!9?z-WcZ>N=s1OICr>ySUe{{HRJJkYmvi2ROG7S7fh;(ovG%bqVS94#MMTda)Eql_ zjX++uOIxY~74>B(li|LL<&xx9II2;OMg7Vx?%wiopk(`eEXlWrRrt&#v$WAY;PdINejf)3+`>l@WvZ_*X zg||QGDnG~0WxY~FKf^N1db|x@IT7SMs-HHrVu;XmVX%J#U6>5h&5q_F6izMG%gWGn zQGI*^VMfj+)>H6eiZO_R&i_??KW_ugY@4yWJ(W(lZNPT<)e^;5id9}(Zc^gW_Mr?= zP(8Ycr>eJ&L0Xtx-Df&>Q9GGa70;-!s(o2NS00Ea+$zZ9Y{888^N-?Me=&h&9+{t|O@%CpHOx}hh;eBGh|(;|xf z0{>B@1(rws!)_Z9NuQ5v2T3bE&6j2xiXFL9FY$I&;$p2^cNd;c`WhTkSD?3^F>n1a zht8@w}foM+YA7iiA5w3@xLq;bH#urY`~?O8Btdim_7`wDr%z~ ztx8ysS_Xor^Qj_ccF;#$>(U2^!}auq&Ga``TfQ}1j1*=1jdUueV$BfR=K$pDwg#1x z@ZsP?v02vWJb$CNthy&KGQ8~fVdYd?VDH~WG_%6LWYq+JVXispY=GUuuW?%H>~;J{kqRnK z$=9$>qs0F#1q7J@1yYdO+3X$t+zCGTiUi%Zhmf8-RThnTiQAb_ogtt_{)~IEY<7lhu9X~ zaz7HP>?uhfyVS}-O}+JcYieyyB;Gdu%4KuPrI42<`opcG+mXk#gJQqMe-vqp%SHC&j9dep&{~CTgG@ske{G(sN{m)%v6_g6Y%aw|alr zh@&=qILW%F>OGt%StA4+e?r`t&S1*c* zNE?MDvo~0JrmL%0A$3bJksp9NsrQFnlwyzLKZ;avSD#7>FCuiyP(i*HgX`#@P~x`CP{anOKUgw=rF#Q{%QWYwnn;2V=bat|B;1c2Z5=D-T+-V>$<^$B4)R z1;HY$2#Ei1VM?)WH+|40gBM{CyWT@#OS`)7rVpF*lubr~)Hr%6{WyBb7)Pf{`1Lm3 zgg5;ltnM+i#4|lU9OT|?(x*v+qy6;}9yKUu9?|b3$+8|F&djwoe`@8Rdd2Z{y+RMQ z(H9C>#5F}j?}7BQJ~D)2lQyUC9irq&^d{|FM9*OQlW^?$^MZv9lBu4Q)0^3BmeY5-KK`-g)k z#Wvdd!6GVhPXu;Xh~3pq;Rl*{ik-dIwtVx$BZ%he|0iwx#&yDWnNoKmNv#Ep1|o?*WN$f*u}~;!7`DwI%A|K`FlX zwj4mHtG|k}|m5Jn6xp)Ytc-J??$b556)n;jq|&WwsA$OwsB#g z@3@khD|~98*XYs+-;ngcAGH;)D|>50-D$T2bUUZtqc2^JoGq6PG z_PvGePkEW~>yo^hT><_PzvUC`CVBZ3h5jc}wWS$JUe|6y{m**(Xmf% z=G=*;-U%-xd2uJ!^zij0Ft>IvbZ`s|J@V*q^ zZ=N9BRd4XyQhfUs(~Pi|CRBUxuJ=ETUahG=CF)^}R^0vv>0yjk-2O*M)&4P>RQnV1 zF-Bud@mf(H^09jOev0ZJ-$~U!Fq(1yI3QL3!05^S=8W9?$f_=_G$- zjn>87J5EW}J7%P|sM=U@cu23Md3#kwPSg#!o)XF*SUWaU#>Lg%@E=7%cwWRu@<$3f?J;4P_TUxK1@Ow)1zq)u`IukbObx_G` zFIlifhVL^hpmuVOTMnJ@2&T7!SF59ROg39fyZu-pb8C5RG!{P|P5)6HALJeDL#8p?SiR-RD zan+YJahXk{sopg1>rJCg`liuVZyFP6+M?4#9*!vPdlN952Ggt3JAJKqylQUn;tv=+ z{usYsW$oAdErLhs4OV2hUor)cso=y^zmXI?u7WdCzoy5vY$p^c^Hcq9()@msv=WDY z%=s?{Wqxm7Ab8GT%rAN^J%`lq05jlslZtqS4w_MQ`StS#Kev-u81psH^MB|QVTvD5 zeD_p88kFkC{pc^%jq3O@S5FjG!-xwyUF+eXqqiOodY(3z-VmR+x<0pf7+jP*XmAm$ zxR{X=@%S1A>GxDOOxPZNg?wODM^(P-DXM%u^|e}xDqk;EzQ-wk?+BbgYPm$*`xEJT zFSbs_bM>Ig2X)pn6L@HigF5S6;9>NHA1!nI9?>u8qiY{j!=Rs9 zbmwpD}?44V~yY360l>gVh4@kF16Wt z`p}%}SC!T-^P3;kJ9GI;2re-Ob{-TSa5XmMpX0CbmEMo%;h4me4Ly17;h-Z=!St^G z9#!>WM;g^z{E$(-Wz43|3$k)*J%+;b2vX4)?)`W<_N6{6rugw{tg^m1OZl1?V^uHj zw$@Nh)xFU|OP4~hmcHswjV@nJ*|9^oc>G46k5i)S=+b$*)Q=Z2wQriEvX~*C@Xno* zJg=hA1B6ku5hz+QXP-m>=!;-lT9fD;dim=aDjT1LV0_LPwa*bVWiD(mwQuI=%9@(W zHj}ar-TFYNZc1)TsVrv6y66dV*`u85H}Z@6b}Flxtb)4BrtZMWW!_S4z{HvEbPTmx zE;>#rmto*>Yc@v{KeW@tV>e;`?JY(pm&2vVb%Ad1m37#u#o5^}9UefI)$G5J<7WSc zB=mJrM<#3%bBAI{xe} zMecA~eA(&A=-JZEy>s_I!cH-c2p`}IayCA*fGd20?Q-vrBG}3ASd2|T?g%o`@f-H~ zxyy6xv{Ud_;MgBvQSPxE+Z;1j?s4RuBOQ(nC}{4@6moYIq|yXRE<$D`uv3Jiz+z40 zKEO#QKw%zt>S^A8pcEGZpC5+_wx(b-@CC0NZCDnHz_+BtVe1S`;6LQ|!O{c%cjWiC zH6qNv&}5X z;e{yR!GR{>J1LDr{str3gl8gcp7I6)ox(>G%uABN@!{D?;=_SH;U~!Atnv*4iQyGV zl0#D7gTlWgiJznj9ui)FRQt<2h#MNdjU>6{OE{y#`wWyKuz++&4im%uNfIf25SS63 zmjY27m>(WWfoKja3y-8g5e}>i|C|CvCEb$S7Cx>w0>#+2ec|oNoZ|8w00+@v;N-Pa zRWx%1dC$SRJOD8XZb4Zj++wdzg50dsWQz4{1#dQzqINKh1Z7q=HLfh;v)`m{AgWSL z7XqX@wHBLj%!9%p-}4YQ^U0U%$WgeE+KQBvB46$|oc@>we;!KY5RRij@V2w?kGb2q6GEnP3SH8t7jv-e?p1#e?zR;YeD3-1CjYhl4V}G z$vcX@Wsq0?(d?zQaYz7}TeTb#Ou_#=DZC!Q4aqf%R2(EkAR)Z&Q*2&}^$A1&E8s1Q zLuqsRB5;9V?F5@e&Ad5%7q~zO$9U0qfkQ(m+Kavm99ooB(RYDEOR|^VD-v3kyx+;* zecFNc8=J9Bn~#D=zS|avZg>5fCW6AgUJAeWA&f7MuraGZMd`nIJr}oJ6JawbLPU}@ zEUo@HO|(Y12mZB^H!=E>RF=AALZ+0tqKP4hoRl8&C46GIJP6FndzzSUNHw(s&ARTa z6k#ps#+pp<30v?h^|#r`tu7_3^t8fW()J$Z4>I=mtxn)M>ZSyRd1 zJemCkuyGG-*@FFRd=y7OJ9&eUKbCrCjDHPP;bqYE2OOCZu->;Ure0 zj-Q5be2vXVVrrjf<#LwdYy zf+p%i(ki_)s&EZR&jj_*L{-caeIXraDvoN7h86a!+el^7BnTFo$veAp_-6%Rm-4pM z#Ab+hnpQ`iYzV;(f&Th4A}@YmSg{`=eYtOPdcfjjxPcST?fQRo|#2QG%>h2 zKE?zr`yQBVvi#SY=mAkFU@90mUFs*R_tZpRL^Oh=g~KRdz>YXb3(F;wH9;EtKr+mb zsyt`}5rMWYz!jIHn`vSOApp;P3>E>cX9HJFPTi__e*nxY z6UVB`tZWNNZJG8$6aI9BkcJ2rDHUY~9)-M#%%7@>QlFA9p!98JKeV|frrgC_nNg_L zus(9*I!z>+@&+FIMVBYab|+9~Q%+rgFSlb&nit^NN*pP&o?VF z4jUo&qSw>t@iId?h5~C}gm|*di2BRuDMSuWqv{7z%>}+#5Aig)07F?Jh^ly|YZ+#Z z=*os;hY>bQPWlsE0NLqdw8(t90W>a>-(qZ&$p8#BKq7`ktK~>EF*yU#-<#=q%v4D? z%fCs!4YD878>{38OZWHJJ%YX5<> zDt;;p4+Fe8pz$W$q{)hWCwKo2 zT61(f=>(v=0a8<#+eU0R!p3Xo(T_(`s*#XSN|&3C*{oGe(lIL`-{NIuNyqHdBG%}b zlaOCBG28Fm)-hRZ8{6s_zf5!o)Jliq^Ir=QL33*iDPWd2J5M3Ks3)x?KT@5 zz(PIsbBNx$QnR?L?ae4X zb#`wIo!(~ZPIXbRzP4i1bkmAKRN5upkO6ro+a9jg#q}U+;u6my(?;0NuF;kEgebu! z4x+p#*y6|Q;)xJVbBSp)A2!40bxaNPaxFxgU1It+b=W+c_g-E6Gep0*#F>6Y>hEoD zXX@ey5Ir@;ncHHUAGY4MXA3>^kQs~W%pcEt3be=e1S=642|%fIAd&e!72u#P=Y7b( zhOB;Olh;IAF#KveI783AD@46Ao7oq_Rw?X}?FUSbawMWBeW2O@8RXAxk1&7BrI4+5 zXS^C)UJw^>*9)axPI>PpSxM7NVi^wg&yI`2xo#zEtdn|q?( zuOC75#}u$^wDj_R0H$iK~!-X6yMwUF;HF@s&0p6+qYbX>gJZ}*m;lg_ zZ0XxZ{xjg~se9k~`V27}@^vPL$5zX@#ON$_%7z}XxAbfu0`zZs z`xMU%?CNo-n=$`o7vi(*9|5gIa+0AQ@6z-nH34s(K8b}*Mo;rNct=Mk0y*kqv<_V3 z(WRdbTmaCP^gs)*jNa$*qK(ekNg%J8=wTiva1<>~|MAFuO;`IWJH3AF~lI?}Z8{;3+WXSQq7V#>{G<(K+dXiwkOa4a^ z9lge0{fv&T17zGM(3U#mB>U{4kMtx%0iTiMBlfH%|HZy-iH=?mbUe=CINJ0iX1V zB(9yC-a;H6GmZ5x;D1JNt!xJ+|ZL;1^m?~lDPJlDoHO#*?oGFEdD}-`llOp z+L!}MK*8HIe>uwirO*`sY~ugFYCGUJ(!bZ?H9@6_2m0Gjq;OSVKpUD{esDC?=h}rp zZ}1l%57299=lzRg&vboxbsV7U{>JjewGUUTsm9f@-nr^{wi8|PIZz^}p>ia*v!_^| zgxz&asjLakBPZl}bD9f@J#Xw*v+bazZPhNz`W-0BJ4 z9?1|l21PZ3m!-=bimJuqQx+bA7^41{UM^lz~Z}Um5+bGC)mo z|CgbR{?=0)Wt1Pt!5^b_;2h6We;ehe*KB>t&=JSz=C9{_BmW-&I{PU@8Thkj=nEZq zA0V0MzYJycWzPja8s!JF(8p*U_|Vh6n^As%>gV}{p-wCv!~XSbfW=8L@BaWwGJ%$? zed!)umW-kO)IB;m6`=WftR>Ph-7}6()iK*4|M_EOR`jThlX~jtJ3x8_ej5FeC9^UP zKB=e6i!_A-tt9A}4H@hIu45`g-sBUyE$9;&56{ujJ%JqaA82KS$Ggo^5RH`!)|Mh) zet5q0mV$p~u@jMwn+-G(UX#3{Q{+28xZdT8OK@McNM0d2(<@gBR2Ba8L#+q!_a}dbT6ZP^@&|#F748`PBjnwCSPa)DoD|+)o`92KdsIFlN|PG#y`-oN zI~F2IFk-b)mW%`5KSkJ;^*0MA16g%VpU}u7Mnw*KBvy)bvok{WR zOdi9|l%?!U{ehin7ulJ9o1GaM&yX{-2s^WCu`@e?ojH@(nYWCc`A6AVaGRZl;w(9f zLfKhbjhz);*jY7(oi$6?S+}2^^*7kr@Rps8zQ2&ODVm+lHQ3qWWM^y0IdZm@W@md7 zc6KDNvvV3dyY{oQ`!{y>{=?3Gzw_iAD8bGTjo3NZkDWtP**UzDoga_0bL1~}j%NIo zoMVOAIsPR(KQ(3NL;^cMPi5!iMs`k}hEt=kLq20SgUoz^Tu&LzuD>LEY81{TiJTgR z17#O>^T{Rb7SPj$>gmEbo&W0)`UxPLd>kT#&wxu3yFwo9?NJz^d>Z7{L_`igj$p5d zh%&U}kH{?tWYt6$gk^2$kPYedWta9nMMRLCSyJ7+8=YSl=+drzL_~=6a#PZ!>7~9j zoJK^*i+@TUPLGqg`32)bwh3RlD;iNoZu?aVinwiHgfFcFBdW+vzM7zj3?bHpdJZW^ zfvG1i9+9FgBItD>vh4>s(9%1ine;lSFm*qLVFF_1+kzTn`kENdi%1i`2}EO@d|ylx z6fuD$9odSy#Am$RR9+KA=W>^Q<8wgLN1iLD2s&bDRq6;?2HiYf9A4QqBX$baNUj2aQc#??#z*gA^2Tw}3UFo!0eKfJrXs=%#g(ZaK>_*O)TUl25M|P^5VW;X9cB*$}WK04(HHNTLa~wOhva|Db zUUt4I#7^zv?9^SuPQ4j$TJ*rGA^P)Rxen=Z;Yc9oINFEwe5xJs21dZ}FK%2(|Z4WmDQLko0(B$i4 zf=?XWL7|HpPEZ>Vh=mNB8qtBgA8h+z9cW^cg6~fT3SX1vwA#jr3alPEP@3@G`7f zkQEO&ej`NT5~g<6Z1g1kaOgPGCt2((1c z+y!c0P@?*#NZ99rcF*V<-KnUa(WNQ4L{9z=_^Nw>APOW!3P-NmsG7gdAhLGyb)=jC zk@r>_v}B`Q1?j;-@;5E-i!yAc9R5)`%!I#An_P%(*&J7bIx>ET@$D`hO|+k)@X8h_ za${OQ7U@a9PG{*_zmO221-HA+iizv=@S`i1w#Lr;+qau96I2P?sh@#FjK9 z>WAL;t-)uOF}LX_`Ray9Kc-}-6}xAV;uS8DQ=-dn&Rd1 z`$BX>b}}N0|JYPteSXQFhVdd8t9IdivLz!=xR8H*glu$+khN|y@}&!DOVp7m2|BVB zefVjqEU<*3IxP4j7%LQ>pQRSKOwOQ&?2OpL&gfs*8T*i(akeYujQ3|}LL@tBjoF#f zo1JN+*_pYBomqR?nSG6&x$oJTPoMMi{OtQ;>@2Rx&XT(9EbYS1vTxa0zMP$vd)Zla zjh)BC*_P*Tx03VX4M)E6y++RKPVBrX#Ln9q?EEu?oT9OGT-CFvlMd{87HvO=BRgzj zr{hs}I$dL@^K*9MJg<|}C5WA_U$E1yEjv92veRomJAL-D)At%X{lpD&5_7QAKZ2c< zQtS+^$=00cb1(AcW=-ua63{R4w7`D%!f{@c@LG;`0Pg` z5J8(E@8P^w^P!V--lO>Dpbwo?^B%(+PoKpUpC+|S^i}u%@K5J?%(v!l_&3T5UuxnH z=qgTUC34cn)st?AD)D~VVT}?uO(&NBB1)9W=+K1s30d=)Ci)3@lchXKUNj-iR;z1n~|&s8_5c<0E|@!(Sm7y)_)F zO5tA{N9JdMPZC`CG33imYf%HW5L?f{h=TOneX;5d=V^kFG7ge>l1^qR9hWHfRUEoB zD;tH&cvJeVr1KEPYCn3SijT;?%%JnwH7Op9>M@84wL= z+&%Jp1q=ww6c9+qa0i5C49Eh{a@o33QSo{8PM=pViD0Y8SaYv|XN8RX2e}q+s>!i( zR4GjqZ>v4W$TwE@*#iS(HJU^+6Q+1e?HKJWMkCb(GGq~zaHWhOSu5@JYp7XZ#Ooug z@GMbp^G$NtMiILx8;*V*axhMmrtF@m-F2`%+)^rvpFh*r*{663rsqctzf z1TEoOJ;K_pSdmYsYlt08?N6t3)Wrs+1{HMFA(b1*m^$0nA>Egoa9v0eFVeV~idUx~ zR>c98LvY`oY%V@Knn$n)RdHId^;i&mPb`AmollxK!zn)rnp zzBfEApVLMMB2nml4}xC3p`f;+A3{A|0Xq35L5q9?=$>D%DrnS4P}bU(w2qUP8WQ%< z1cm*C%5kJp_;=_*R_Br(i_*Irg@5p26;4oL??EqVDG@ab!T#hg6}3JRrJszj_Bl_z zc7l$O&Z-a=A)FLzWgF~1WU0#DGrE&o^&O(Ui^P+^`k(Mm;JZYns!y(`iL0cl;w>5? zXvHE*uSSHhwOXzLaDe=xaY3@mbAYW%G5wb!&t%&wS|#O0L?QfZRY}2DWY9W!brpu{ zK{ne!0AzVXD#S!NY#a^ibv*2(XuWic2C$jOH^s>47D;*ODS=K6X}F(=GTLJEV^oQn zj>*H;L93|=N01aVfn8KgUxZK%Y8Pnu;<}8gyqTb#kZ z7Fe&eJ_78G0c~q)<+>ar-|r>t=ZlnDzt45tI8&vnOM5qZ73Wvwq;S}7_XWzfgC3*0 z!z-jninrYxSxJie5H-cW#)1iwC4X(j7NxThE7hvX-}@2GK3gTdw9O~2H*nk4{gs9J zNxkw{Ohx=o_HW>k+qOsEOA=xh673|7ZAs%0_~dy09=Dy0n<#JYBjrb={WOC91!~iy zHb2Rz5<+a0U(jbCU&yy1^!9Kyri$>;LXw_IuRyo>!kf~gcCR^Chfg+oBQ9ZARjYaz$yuGfxU6qYbIr zSO?^qC+KYiyE3cEX#vEmK7f?KR>pQ)#so+~&FLV-7t=vp7ZH#!5c>X-FP2G>2cReT ze`y*NI2}u58&)3}v@?R4EG6{Ph)t43Pi0Yvf{kdIho2jumgiX}PeyX;@N87U_%lT=>`aSWPL1$*l?^ibEm~T20ye6x(k^)F#QP^rlF| z6v`)^Dfh{gARYm%Y4 zNgk#*MKesHeA1bc0JQ&)X~fEJZZpfk6yizPLhmbwJVb9ZM3UNpq#BS^cIip4MQ}T3M@H}6R_?{dmXN1$xoqSlX>t;7 zgQyGG+_z3wy-s@$xo2rBMp9bUVHDc#-lmI=&JScU6YcZd0A}V-{CT@yrr%Ry0BB-@ zay-{nip-@J!@jKUavNmb07y;`B6T8j157!#9PS0^Z909sh z>I~Wz$afivba6iS!vj^1(9S{ho1sFuCGUjx5cj`22yVaHGl<@}QnNVBJvv-9Vl5kL zF=rVw^-vNQaz9r_a+A}FLR6}ZnVQ9s?w#KWZg*N;h#H%zJ%YaxybSlakWcV7-XjZw z-FPmF`HVXSJVm)ldXxc%2J7JLe$xD*O#_W-vOMM?e}^qpzJu=4m+AF^0gHN}*ahW+ z1yXDQO~)ZQO*!u;&bki35@E_CP25D(U5X}*%MQzkCG6C2{a18QU2#-dx-Zhq+7(-2 zl$C`M{~7+Z;OCaE*tiMSzKHk=5*hW}(iMHM@VIKq&>$b&&Ys+LmLd{qf zFDFDkY+BWtM=UJlE;a+ zx~~3_%l?X9in{@*-DVDrS(_V8tHJgzSj~}o?L6d{4Q;x(fZd~}su1ltL~l*||3@43 z7!n}4ivCAq^`K2pF&ZcB^w_BXLHas~?Q7W-6qc?*uk)NFxfbflMh!^BHz91z#3EwUk@o542PLw3dgCYGOL-XfFP>K{+HnD@GEhjQ?8`>k+%lkjOD44j4@D#px)& z?5~Lgh|2yBVqr&ILdQrEF{>#$a<(p5I@`W;zX4so z-?c^_3*AFks5Hwe=#50R9&QS>=#X3fpH`N~?OPh(1h9@H{0a>J+m*;s6gXC2iTLBf1^UNAIw*9m2pqmb&N+q@7oZ zrbFhC&iUG^+bYFL(F?I#@W0=X${8+5ZCg+56PrME5&!p0Nc&0#E|77JZFRdy@eZ+$ zFAPkcj{iq#6#hFJ(gbtRb{Scgj;Qp1w$fayaN+-;5@np#ZT^?W1|^qU;RkAiA`xfD zzc!EAVQH{i)%H^4LTo5W7Ckq1H-YrbimjmAfhR(gfvBn}<`vQZLGtWGn*a22)bJAQ zwa`p_xZw@7Q^T`wppvyKfrt_I8ADXbe?#0KWZ()iaNYlpon$d`^^ZKFHW|NGCK{Vs zmlKn)bdUoOKM4Ptcwt#i#GsA5fvL0Tw=$0xmgU6jJM?NZY|KcK^~I-`6O>Q7GIktDxb9(*+=YiI3La{G3u@maczURG$I zgi+mRKB%-^wo{pXu5PD|wLJy7_$2=V%r*OC4Cm$Ow>R5O``i|&l*|}CeDSXhBU_Z{ zmVN(B*iZ=3#SM|1;FAAt@6ifLYeLr0luu;>!e2su-`*E}eKsPxLEPKauB4Cc_hHup zM2vwXjigIS8aOUL3YpgtQ$vWwh+Su@Ud`gcku>Z&=KO#iFhnQQivz0pLtN6azm^ai z5pf6NzfA~t*1&0l=tVh>%GIUt0J%A;8RCs5CZLlOJb5}^wbumctqx2J{C`I8<)uKL zQ|NPf>`UOIdvLk}ij>_j_sa9|36JraB)3dqpMeVUKU_#{G_@N4UpJce8Z^Hwspi^f z)-5f?ID}8(|2&ms|4Yk8Gnb%^=6%HfO|qX}S~i*qsgT*Rz|2=&7yZwT=J5^DJIUg|2% zjpmf8D9(8R{zwn{^`&K_`J5);xA1$!7-hco(z4O~w~bI6&AgBoh%x9iHkwzvNwv|e z08te~g}KoT$)|3VXe}Xfx>D;K&Cr?pMl%VbA+FT=M)PE%y0@XthG>B+wZ75xO;k5H zv>g!bGgGG@+3C04|JNJMF4btGnT)L$Z!|lgjg{U}*Rs)kw@8TiSJ*>9QifXKz*ojb zb3?KwzCu)8iYAQ9j&vJMYPkM>m(=bq7_GcC<@&#NcckJ|yF03MV|Pa#!Pwn}edXHS zm8<32-F;EZwY#fU>;K~IE5Nfjy0&L_lRQr#O@bys(4c`pa0n125G=vnLvVMOVnvHn z+@U~mD}@#>(gGEnLb2jrTw3_=b9Q$3*^s_{|Nr{FKi8FgX6L@=%o(3EGrMbBchv^i z)?L%m)J#&rOiG7;?d~fN>n?LHVEN%4XF~sO-7Q^U!6vmD+ck}!@65H$gs4vZNPV#(k$yPR~u#ocy+q(O4uqOJVj0Te}J0Zx!x?40&6I0+j&qU;`AP?&< z@RcU&1KNWBZ-_EK$iuoDI29Hee1F0JSsPW>UC^JJ_!1tEfIPP%Hm$o~pU@)$m|Y-E zL9u4!wsps~_#do03YRaEF3%!h-34Mo5nObVVcqSGwXM5S9gHxa#r}hJXEd7sqOg*- z?tafN*}C(tVOw`o2Y6U_RNpM?ZhKV^>uwBgT+d={>#hUBxxC_R>ux(nij2@N9DXI@ zXi1QExbnaDuJOa8rv?M`OOb!@or(X&CMxULl$v^no|t|D+JXNg7A3ld$uq6H^-D1S zhwm+mb9?mvYBq}C^z#hsZWpqxWU?CnyM^Xy-T5pKY~2m3Wm|V?Ye}~5u0WZa_}3b} z_OR~GV9NXkzFxIxj`BLOb(dm2qyh@H;3TZO|Iy5IQKkiF>}ptdVYO}Rjw+sOYAxHk zJKWZ&t~=rPJt^3R6zuf>v5|~IticVk8rI!*=$exbi`mxQNjhTK2>vZ<(=_F^hjmvE zedIQH44|!@eXl*NyIK2%I1G>JgdBgJv~@@EIIOz@V0Y_!foCkwd)7&0-7PxoVcpg1 zFU1fHh<_r;D^g6nv8}sr&`QSw^oNMl_}7xZ@v!cGI4*cII3JKgbdvRWc}YC=nce#jx%wV(iRGsj;oQY5hH{J4(50b{*Tgqpm0^ z>n`mZ+qw%GYg>0+P;KNx2zW-iguL;v?i#!Y+XxUC>3~g1k#<*vTr=ByT1wwF$%tuEzyYMC_v$RhX87hnAw;glQ$ zRxz)^yd@)`P!mpiM&EqPdeCF!=Gw;mCMosg&Nk|T7S@|~R(yY{-T)Q8Rs*W=`e$3D z@I6ahp{GH#zUTO9tI`>k!CgRh+y^16p~hBHT0eaW3?1B4!Bw{3mt{6wi!DFYvodDli zCSn|PGXj1e(uM2=K-)}Mj-${$So=ex>q#*g_s4*qbuyB-tZ!;p-_(vWJ-92)aq{$a zyJ_!?j{fH9=jKce&Nf^ylFb9*?DXF?UsB1fZiJG{*50G!P7Ax_=!}$Aa%Y-BR%;0A zihqsP){KKZX372Kh881%eQx2!UV40FrWJgsJ>Mb$$I#_Jb(%ug+w*Nf5FyIHIWvMjJ%-H>gYTuxA<&2Lu_wqM07?<(jhfI@+C6GVz!>FjgQYSn)nn_W|@%;wjyCkh6H*p zPf~v)xxeAcby}#(MOiCcR4x&|)Fr3rQl>GAqTyaLAJhrky98pPOyJF1n?)27u;CEMip%P)oO$uAMrCxnu37%q#K`eU=g%b3#DiQ zIf9r_>Mv3%|9(;`C5=)k`V!q#@Olfl`+_o<;(7kUR&Zo$XfOr7^Gw8$t`uB53h)L% zJ5AV7aEA2lPsjNO$V;>wT0N&GQViq;ZPJt%QfJC(OAU&G&va0*aSV&sPW@*+LyYPA zv5B>{gPKU~v>aZ>gi{3nF$0REYbm>dSW?n9d3rjOl`cWfpKbJb_2Aitwu5F_CLR|w z&tdq8t&3s_&h^e{YM(c;n;N-AzTgkY&!d9?r`<~H`zZ-cyNwSZmZxv(ab1+EDzaQo zX+*`Q=%M`92c!Pyq}^B{bJC6#erT@>KbMRjTA>%RBrQh@H%%SI?uUh>@GB<| zQ7g{niJ?Ubd7=tu0DPzC}omg z!0PuC6|8hEA@CSF7r&n=Bc*FIY4w_P|BVi4xem}h8NPmZX;+iYG{3@LKLYDbWT5;Iq?)lrJu@VE=)xurh`PX9e@cfSGhUO|K6*Bsf}+|)l) zowCqyfLHMms7vrI*4&K#AziNKu{d+QI^>h08t^7g&f3gE9kKIk?{x}uxo*Jwm>iL* z+Cd=WWL=m5m z^@p@Sucqw2pEj$yfaJP4C7vN2Sb#{dJj3lG?;@0r_ z6ojb`AqJ@mlUB=xAwhY5{NB(vc}jj{M|%C8rPY;g0x4KvmMO zn)f)g895W!ViPxdc|Mfv*UnbXBls1dzgwDBo!>s`_e{P;N;!1eRzifdGD92iE4jj3g)R!HR4X$yzaY}@ot#ou z7;rs6O>CH65b5_pPVcAS-hc+$Fg+&Xr)#-0qEHB)4rq=I)2j~sTv~;dYBs$Y&<-1> z7w`Bb*ZN{0qh3+|0_dy_)5A4>0ot)Ir6K$=pcgir3g(wzYAsg>DX0sT{_(JX<1M%* z_4ygJwoxi{IH1BdTsSp-C0fg}PH7$ssE!RcyN=MI+K~nd?hL4(2^&3-S0x%2a%sJ< zDb5t&^DItsyJ+)jD>6v&ia1+=?}>MGl|~5_(n8J(gL4k}btlJ=Q%uWTTS7Oo0D$|n zcIacsDWmQ8Qk=}d!<-zWxGQLLqlCeU23{i(hs(UGwz-euvTK8R;98s(J3eYAC4q&*MRy-TEe|Z1W+DvT<&NX@#+HZpQ0|kMXPQ=MM5xV^7eSeu0mrHb`WRK z&pwEEwa@v&Mn9$P0qK;Jc+yh9D=THy&ptnlQS1j`%C;t(CP$GENyQ6&%!QeBHkW4dsi0pOSJi&1!p;M8 zrNzG2)Z#qVYCl)~^d8_pSe)N&&Py$4UsYkR1Ao}oSs9tL+m+{6CC8^7rq}H}<1!-T zchLGha4r7~tt>AH1x=C&h@~0RJ6AHw)EIczZs(aYk?Cm_#F5(_omYysfciRMHGN`E zZFiNrLW~DK*U2%aPgNgu^e$?!MzBghNJ@@Xr=iBzy zipJjw@Tq|ND($JsP`0QQjhtjmHG^+^6LG9)TtYjPg8_YJ!ZH(uRx27E&}Osaej(7+ zP6n@N7$$Lj%Oq}3-4;D6mS>RrxAvwnHP{_SA%gF>mW(|2Kq3h7KbD5y9@M47KfgUF zf!-dJ0#o4RAcf<LvcM$X9%QW@xJZ-W&zF(HFI{AeZkME2 z0Lwr$zo0wMYu6^+el6YZJnvjPWQzNU{;jJ5Bz_~GY{ktx*XJE*86w-L+{S~R?m#6q z+oc&YQA81|SMihXpTiQ$IqN4OEHnHxJ(l(tX$wfp30uT8!vlxV18VTiY9g{A!-g4N zYdzqifXbP$dVheiPEdi~zup{BhmM|W1uTZG`L@M35-;-}@J5&%KF-1%+8jUzQJ%QJ zge?EqG4we8=R=GKoawxh`G7OkZr4{G?T4Ca1?Ar!WFE0w6W=1td;H6tRI5(GWj)B; zu(knb>*NW`Bg8QuWPWr{6BR6+*h+?akh$|vO^`=3;_RimU_Qtkh{#Fdeijm0u`iHY z^6)cF%3M(+Uo7s8I>Ukjz7pcg}5-1-!`cL}~PO++rGRpk8SDnge? zVjF_CJ*NdanY=3o!LBB~oQ?0;mIu;gUSP#6JjRY~Pw8Cns0OIM1+(}dhL21sL(lU9 z8t9Pj$@z5#Ed_rLe4!%-PtLUy^mOTF;J;WLHeQoTnGxjf?XmE<0s8Z*@A!UNJF%i72?{P_htMmAiecfCtk@_8davA6Wg8VA_Iv(|G6dmzT3j5lg;u zD){reISRobrIeMLnxyR@?Ca(z2{y7_S!9|#igW?^4M*gLvFOSzueXzes-XNExZWL{ zI5rg@IXMryPMV4fMex1YlIj|@Ekyk?9gO$xoXKH#TC2*&~6K6v(435j=_Y9g`Wj< z$r5hBt!3H?D)b9L?`+{@thw6BRCA>Pr|uy{`W_ZcM=D$uw9r&i(CVx#3@ECHnX`>- zP8F@9RGfyuTU(qKHm9R@>55WvFz|^Mhhz2-)?Is80wbp`2Vr>Php0)Oogq&Ok^*7Pc}6g`Cq>1lF$+MICxN<~$)MS+*IIBl#c zwX3WiI!MLU7IH2>Qx%RXBY^hO_H(5<7%i^DuVRPh4%_8d@RR7XI)*x z^{MFhsFRhufgkK?6%?&zxW?!m7h%Rq@FhUkZJ4ZG*K9pLK&A8@AfH~&R4`}0-r1~Y znSqD(QX&+GEMnIhea}Lb8_~dPB;t^@>-t)c`&k$kaeLss62--wUHXVr$|9Z!{EI|# z=ya9qxc>fcAv%%oM&P>=$zjefdb7%ka|-xni_?Q!KztwJ`dyFdpeQc^%iaz#Ou429 zpdao>p6LK*@9orv)`MJk^(QG*4^RepbZ;wzX+6mGNY7GCWlS?bt!p`wkUVGQ72UF$)U)smYK03SPD(|I5DR>v4eHI+Ra8<936#$)q z_f<44CaaO`$mnEC z4a+jxnq9i?phCN6^`!xW3`qaqXY#K9jeamh9?(g&r1p;Ky&2Zt@e+FEls*o;h7_Tb zJI0$G%)Mh@+D+dB><0_K!6)U^-f_kg#-W{SfFD?t*<*ygcRT?ih~fpU0{WSh%|tQx zjt>@;A{0=53+8u0n0v>sf6;_K2-wViYFoEXzr=gTUHkpZ-Z6{)PkYBlUTESwNcq)_ zWJf>e-Z4w~k9)_IwZcV*HzES2OR@6*4h9ki z-=ZcWzh&6431`ylWvc?JXToal*s%5P--3D3wZEsW$0C%iN5|75hzX@i41iK)50O%8 z@0jSOf&(W|@j%cHif6-XTfs9iNYgR+o;49ex>B%eDByd5UYM}CcN|^U*cc8TVC^0A zaXHeIk7@nu-Z7p030~gFI8M=UfW4DTZjrAm%&v%ZlO*lr(pf&WlgqD&`G=icjyIyh z7T(Fdj>eLcPF@R{lTN4Nht8$qXP5Cqr}2a=Nk@;&o!otO?48`^bY9Bb$z4d9Y3}6y zKEU3|-B!om$$d4zV<(qLN$=zy8es3_@*yL&lS_&?c5>qeT06OvGIJ-FvRS%14NSC? zJ9waTCwJ07YbTdZFq=EMbl}$7$vwe0YA5#s->9A3n{;FD!f+xs!W> z-uFeH;~s2AKZY)jo!pC`36UCjb|=TNlY6ZkswVI#lVk1VRzzj21K)mD=zrXAok-!# zo!lB1;Ugy@)O1Uxxs$u=6tGqB{$;Rdrv8g$b0;@?0-D}UgnVL!o@V2ByjG%pNpDzd zfkQkKZ0+P8DNof2SkWP#;XNbC=zXOme5!%a#395WnLD{F%F^LJ5C&N!4}850SOK3Y zz}5`;IGwW-#kp7ZhW#Sdrz74;hB0??Ct(J*kbGZ~c{* zE#F58&jcvD4Xd48Jzl|O07cud+R5FfOTnek3{YzuRy(<0_EkH%g8_}OVYQQ+WjE&N zBzzvAB{r;fa!(-nEPN-Ry*8|Na@+ld)=i<$1G;R(YA1K>RTcUbpucTc?c}aptl+f6 z(fL3a#ro+UahQZ<~iWkKXvB5+R42YuS)S9aGw!Qj@rpBOdqkPrL)Yy z!$vscQaicl7D|ziIMKjsB$A_ca%c25YJ=7ucrS}H+~)Mt>Q_;miNNPOJxc5+`XRy}wdFuPmqZ38XNQ|;M(RjJ1TpJ8!U*_@YJz%kXOtOLGdl(RCbom?^~ zSk5oNuR7u~A~bh$o6=PL1qkmTs<$v=TBQif~`pkko@^uB?$sIGs+R2@Q#w`8D(0A>j z)Jd|P)J|?UIyamXz6DLhv6CB5vzkhPYMHP+PodRL?#&GthH&2=XfG$jxsz)csI)W? z>{Z9uuU#=F@lI}aSOkRZ8Ix!ySM6q9pxvwuCym`KdiurO&7%BsogHKEW|77GZ@XF5 z>S^LO!h~T;ENfFaeW0ZQb2qDMEd#FMfaNpdn7dgCKWU#5;Q>`!eHqyBDtBo{n_G%-I zClP8RjR$bGk;ZLKZKQopAI6f&$6l4*fRhvvS1dkHqv&}0>~CX2OQEp zIlr!_4e7JMZ#iP{N`4sd@fPQ$HKTEr)&DrJw9#Ev{#OK4^K)k^)JEFL zZmJq~0N&dap*U(I?Z=*~qE7-oI}t~1q}{}HnGKRnz`sotm)c0XbwC&f$!XwM63I~; zX(y24zsUDBaDB2JHq!PrR+O@Ut2xD}jkHKu6mI&ON^8Jf zCp)!K8)^9$sFZ&Oe9~kqgVjbFoxoyvC7`u7tTxg*Z&vX4fPS`OxHr}`$6dl}?qU_g z9pKLrX`wdK`l2T}NgTf^=*p*fcHP!S+DvpOmx&VrywntDTxuijC`NJS)C1nq$uT$5 zhGWvkaSZ@I${Clrk(R!NlCuE#szh{As>CnXcS^Gr3hbZn%>)3Rg~u&PrXsW3OvmeV^KS^(?l#GM;y zH0}L|jWnKmxeAW8HqvPR9y|?`PnzAnpJvZ)$?e)U)&A6nz$j?Wbm{H+|2ES-P*xMa zB7ACk19B%i6nS^5$4qxb0Rt}KfaUK~J!ZNOo=DNi!ilY9sG079ESeyXUc~8<#^c;p zix*Om@{=sY{JaOHD>CnOp7mD$OcUQtQ!`phpAiv%8z8daVV?EA|5_8zJvltdnis1*r+jw-121Ou@6cnKMJHQe5;v= z97(YHBv9Z!cr-B~^OHanoBx#S^g6m~MP^Z9<<{V?9f@{Pl2y^`9!JMfk3584YY*J@ z$?et~e-C#9atDS}D0ic6e@n3sF&w5?_EX#j&}`*>DK5bCh6%{yHX1*-h$dbUGQ&hq zGCJ`pB4{6%K@((JWwFrngpQG;5%~8tn#gYgDot*xXzrSuFhO+Zy#Z%jQ)Hm461})! zl|+PJ_Mc8Ps;urFTvy|PfsYxa z*_V58B;q1L2k?K?0>dx=ijc!br`N4%Ab?=aV-`Q5SFvi*nLNr$%m)q9>3c7An$O=uH0rO-uo@*nukX zzY}HY9JI16fOne|qYUy_MniS4>7Ps!R6kAwy^<&eZZuQ(rn2XycuL4D6D7Vu2`Yt> zckiqWqMjCb)>#e-++9(lvRjR-GYU3h(brU)&#%UuCYk#@X@;LG#!vkj{4?43p(4yl zVT8t(p!*ItWLI~@l#*-FT~;S0y*A2y|64LSQVu8ggTw45OV9nV%#T7@dhW;kfsmAQ zsOCOdznI*M$o=OQc2ig9e#(X9Iz3C-j_&8AymZ}!N5Iqr^fd=LA8k%1{{qb#|C$dK zN)?9u<NB^EQIjW?3B9>HfjuzeODYU9o1np9Bd46vJy@Sc&hlbypsdJ96b*`7i?NyFt& z58;y;gaQ_6$6_mCQ;4)#7AOfx6+x(Jl8hS3AEXP|nrbfwGz!@saIe{p6tSV@J|S}m z&EQM~{)Iy!#knreMk>xm;JY09hyeN$qZ@+=`X~7_uq(4a%40>!rbR(*`5c4~P9Z$c zaTnJ5Kb2wyg$jl#kZF!t84S3z_PM_%HW6GLP#J;?5X>_dcO|V-9?b~d08le4v;o)9 zx<8Xf=)QmkTcN$?qg!w{)atG(&g|K=o`m3&lNK>+nFu-4#%88zwv0y-4#rCk2<(BtX+`m}U;{<=T;-6ucJD zW(y98-vxNHwh&cA9)|a?b3Kb);fJ)%+u?Hy*vq*|RErO!;Y}?~6n*??9@_srE8_<2 z2J}e#3;iJn2m=%`&(e-;eD^Eu!3lL(wkn{S792#gz<~0xw-H?ee7ntaD95ITJA-~8 znE2r9> zrT#>p@Qn)H8_+;IG{Y10bB|Q$>44_gq4!|Q;hv)}eW1PzwHeS3J2b-!^cNADXi4xd zfX>dhD+vi-tB?K-(0zEnG()QLXMCrg#+%B20jmB26OUwkGG=k^pY?qhnq^*K1x;M! zp*4emUM0U)9Y$3kjjhm|tSZKf5bl&-y&_cK&24XfpH{@aAdN|iI1%$Z_hs)omyIq@TLjXEMV^h3Ki4P%{(w25=*BOOHnrF#m_BZ1~rf zkuuL{%0qPXOOIdD7uSjbFKu$nFFj_z1)GED^?)=XbTy;KmmUuf(gX|Z1!RDQnqPWM zzevH;0L`{w`qCq1fN)XMk7z|lDSh`uEwwi8e*PXlhrmBZVaib$wQ+ZICXg%ey=Nkh zjk{A@0lx?2yHvq4hC-{2yJe6Yi~B4<^Ew&4ac8VxSdUV=m?LifbUzBT5ws%f0uSOC_1$AUuIH9EfeT)A zN)vSfwOE$agQ-S<_Ug?)W|mnma-v)cZg<|uvZ>4LEaP+px1sXMGsykbGJCI+p9c(% zJ7yr?dm#KqEB~M9GsGpgyaV8_jIN>N*Zk>YGObGPpl`mq$+9Z>O|svF@L69<6XYj? z*RLait$flfHwDJ~@E2A6SIr@TyJMG|0{7bj4^U5J2s{{Q3gq6&f8|luW7P7b^q^5( z=`oqiNeafxIQ~mob8NekjIE^=?BGl@SW6BTa29=GvH{<$pckkg(L}P9d^9?IRe!h# z&7ZA_n~-=P|5`SBkDUPw9f|9Ec>1nTfbo*1ij00bl%AZ;2q?D&hf`n!9?_)&;L?C9 zTX11p_SjbFB$@!}WTEsCNBK4FxQ2aR1(YQR%Nw7L97V_eN>W$@Sf2i*0W2VZ z`@_P^CY_D5WY9ECoun78-N>Pa-}j=N%%{DgoFpG1YxDOmXKI7#thg))pfvuqW+b>h z2{s5{Xs7QHp$@?27J>HD4Kp@bw4SAdCitL#Kj0&rLJUqd{j1xGGY|MmryS$cobB}O z^py23V23QcH{52X+ttL;TRY8YE7rGtqPsAb8SE$sIu2Rdxr!4`u}K zs$=vu5v%OJhEEyHX``SW1~B1;~}jewbbDChm4~cl~>z~*ZgMFo~!Jm z8T2CTe_ODAF%!k6&#k{$UnEf*KLh%xAELH20z07s2(X z7|1LSgb!x~Pp@D|+vp+9cs!uTe0ofO!yl{7M+!Dlfq6VqVAgT_k%HjEqmAr8yvELc z{%pvT)pqvNSEl|g`}f?0APA|5fB6mNU%E9O+5g)R1Mc8}R`x?P*S{oU5b&Z{2#+&i>&gBfFZxH_%8OC86 zMh``2kotvQcAXIIYQcU<{aWXtO3UFYio5rGCv(tXm0Ef=LdPp}P(G&Cy$pl~tkiC= z+7KWE8f*iS-0M3UzXw2%Vffd6q!d(PD8OqueHUy7ycd~}EWocoe$)oh1$%{KU?mT^ z1DD;zIm3Miy&^w#h}YotnrJ}qSzIpJFufx`br!E#==ZA<`~sJEHcYRz18OF0ye8i(AH`7E>)uKwq9O3+wg`qJy|%4XBKiRu zkx0ZuN<#&&yY&=j9`KcGm6EbFXTt_mp42g3hrd$M>;e9RCCA{*A~|thUG6G5*MUDw zBxfV(Q`>9!w@Qu=$|uD-ryN>-N!`e6>_(NRVZe*7bI7shE-s2HxKnRqHrHaEJ)8TU zG9b9gETgv^2&ARzE%~V#;XiW#prFB9*Qu#a&@k!&!$zVJ1$};QgeJxSSwj`*7FYJp zX!-oHfSwhgeo*Dk6foGkff2!P9ue>h7KQ)YQyf9+^;QJb##IE%FvGotFv)<*2UZ09 ztvMCJagLzuexqeYuD4qjJCFSKlO>72ohLRE;Y$k;m!fhmF z4!zm^ijSdH)(y5+rEdS5R$;$mX7I`QeuoT+(Hm4x!Jl(}&mGhsqadrl9J$AkH5!y` z{axx?5i)tps#R4SHLE82q`DDDn!MXI5j;m;Sz!oRwZWr`Dax<(P4*SCS-jzU=l>~= z)R(-fbWsW3=otsqVi6`lNqave+W2;M6)>{RT9J4L`cL0mzew3s;Ot8yn>ua$D4W8z z^e6EVD~-=>ulg^<+uvwU^SC_cahCHc{Tn^gFF5@z9qCV0j%h9i!y40)*$%X^de0q%=vuw$h+GO30*e{LkY@BTM6!n_+rG+ zVL0Y#LEhj0Y|Ow{ZQ}O?b^M1(e$00?tv2TF570J}W%C|$!GNwO8L}YF@GfmK9}+bt zhiQ&i=cfWqX+4* zS(QG&0r)ueDPgmZgHg4}cN%{ZZGy?58<{Vh>PP=(B%^j$qnlf2GWbc*=I`|_=X zjGd1q=fO`VgWt3}B!XmY|CVA2T&wY``Jb2!x{*5zQetM^=YorAY~)7HE#kk(g0SK! z?v%Zc?luB7MIfK?>m`@A&wxuZ$W%11K43+noDpMiYS)90PEJFQ{5|M&Ch&Q+b=x zo^IsIy2My{jTmd&YW!q*N0UJ}@@WHN)ZwbR0Cp@Lvz}-&Xu>alX-JH$pAzHRFinuv zx87v%v)#Uph;d^bF?{Z5f(~u}Y%=%+cLidkY4w0hzRWx$LsD%|DjV&Rcjl*&Az^uM zP%N)|Xo6N;if&i2(2cCwoU?2(vh3JzBQ?=(dy;Y!<#AYFj0>N%?(_`?;{++jnIa2b zN6d5)VI}vVpf29T;64*W#zvDt^<9z=UxfP%a-jIKU4UCeJVI7d^nY)cA`fDTre_|q zhJsde>R>wf4^T9lj7#{3Z0PJdEz#hVauEI>02?b8cYtLQnk?_@=deDi=9MzwJpF32 z0DhCD%16devQ*);92L=(tf*9xqjsp3?a0VnR zcy!Dq`Z@phGX4CK<_i7X2;-ldRr%+32mZM;5g% z8>O{RuAS<22!VaqhkKS0o7%iK+%Q`eGLGMAjlMOFC?t25$yr>N+f~}%u@QJ>naTsfq$_}DJf%jS_W@f zedA;m%|_t6EI9^;4d-b6WlI&;Dd3kA$zg-HvL3ud$$3Tiw@x{1I9J#EbyspS0MGfY zQx2~~)YNyN-=~6*Wr0^RIrg3c&yurwQ==wP4ZYhKb!GH!yRPt7fmK(sF88P_#g}{3 zm3+%R>Pkfnta2M2v8PBkc-ED#TG06)c>iWXa+_ye32OpV8jyU3%NyeC@~kT*F^Ekk zI3*fu@OKuh>dFEb(fdedK|sa7Gb1rqz{{#4Oi1b)ksV{lYmNjpl#^#ORY-A*~GuJov> z<EeT3B0u%;XPZ>Y$?zFBxg(fj#4#SYWm!sE%Ag}&6e0Q zRI{bCO^~9k&}Jw8wXVV&{v^s> zlF(wmU9A4Yq^Ls_UnC{<0h7{czg?{B(H>b!KES09n0iF+PgJbyYSIY<;H@kU2aDWq z7wbq=Qw}%)oMC2kwv{Yg^yQ>(ehuht&}r%=pk9{jNpG;_Pa39aJd9udTrruzO;dgb zc0Yt1AwhNMLFjNsTFl8I#c%MuX##RI&Dru-fPI-J{u=GDp-}%K^q?8k0NZbeP)b!g z0GSDF&S1WcFzC9*H5P)ZM==1U?T`%iT)9jNYQ%K`G`2!|)SS-|Uqo_x{aC8V$U{li z9DWd4)ts@f?3%;&v#L3~h@)ywqgjylJtF&&BAolmt~m|SN6E|Zy=x+J#Vfn!B%{|0 z{|(6fy@DMz=OpIpp8}Ox0OuvjS0rK1LA&M@eJsQzqC^9(VNq5bv}?}HI?|BR4sbs+ zBH8C)qMGxHUJW||_&kfl!TKDuYfi3~umQ+(3pn4H(TN~>Dm>MsCiDvDGw{9oy~k7E zhA7^z4WcK*Q;pq6n~-Ud_YsE@KOIiKA9Vqhi}kbDcCk)+Z5QjTd2r8%LQCzgS+w!?RyiO7Yo?PA?VFSj@i=!ywD zign$mn2Z9EuLy>&+H#W6{g7R(?~6*2Kook4HHSqRe8?`=9IKU-GJxX_n|f3~l&Dzg z!9W=gyr;$CVAT)V#X9kW5FBtkI8)5%>_su*qSxVd`#@$RI)pw){!@o=nO-e<5<DDlsy$~laOc|?F%8(wr zOL`j8KfjZnhV-N@($kRc;O8);*W5Nx|F~}{RegFKwG8P=(>xYVJ)b>0e}Q|%5?tE5&rmuR?&!5M?b%`0A+Lbk^RLVi8g518!wezCLOvh?d6(yOEOcSrwBS`MsC`-zhffF&s{|TDrLe>`}XZ~C88ei zCbkG=-!6ZyMDzwUERhIh-=GwRCJpX|EQ(ot8Yc-EDbo^@rOXI-gDhcovf!ow7)2=b^a_3i+=2=7}aB$Eeu z)Rp*HO-!TJ{tvi#!&1{y1bNhz65}(EC8q%J$e)~YR9%VgsN~cI-Xf74b1h_yCX(}U zP~byNP7=Gz!bPGYR;=Q^hQ~iAIW*7)yE!zx4zh=a_d)j1;1z5S4WoX5v_BE+D~dT; zust;VwTqsAK`d#1R)|a!>@hU71RMsas0llU2LD-_SWhp{qSu`_B1#65aOfv{XgH0` z*-4ZhfCpQYUw^WPhL;1Blo^1RTY4=0Dbdj2ONSeG06$`JIM~vk?4jZQL``tOE8yHT zqq9#U2p4?~r}Sm=AYh8AfWH6vo3ed?)D^s!;}J$T1ml zSF$5eU0S7SWj;hVJCC0Y6x>S**&1TaQ5K&xD&N&74=*+F`(SokR+Hf5k?t4rI7M zncjedWjW=Uv660~Zd+8a42>xJmoh6R308)Iq+J5zolkwFog&>N4c8k*f67xsh0|k5 zQ7st%@{|+OMo*~$5x_sA;X@ubi@OEU^C@_M1|M|C2Z zX-<2pBl7+=5XdM(3M4{`LuOP%5>oZFQ(795_ARNA;0%-D-7O%|Izi)3f1EkwhkVX_ z22(uQr>iJY)0KA|5tf#eR+Z>NBN3NCm(|46t~)6#8j{X-FO(oijp5U$Bk zE^j7kK9@=3l4q>+CPx*BYD;NpbjC9$IAtPl7Z`w1T}gWXGmf%0;7t+*+Kd8ykwoYW z-~2$?%s1bjF$zB2tZgkDdKEPcu~M2;7H--A_tt$uQu_**p2UB=BccPXpLH zuZ8Ef@r%?|ROd!m;hf#MG@-ts4|_MZy~8@}g0!V{C6E3lVsvL=M=t|CL|5{hbQ$4P1?f&04ihtf4Nlq#8VHGHb`^^+WQO_ziGjjQ29kBz(O zEJnFt`iP|a6Lco!($QN;-4A+8Q7-*Fa;BUICq@}K%esXqAKaCOq%Juf-#(@h~L ze;}OccaU=xYE1bI7s%NigJcEzl%;V0K2C}X`Dmxd-J>>q!?`aBLWl|ls7AZH5w}=* za$X{C@hU8VxFvY%k(RiTd={DwxWd`HZWx)5`GjZ{UAXf_^w9+|eTXj3M*(FCf?tc=b@dgY@UKJedip_ss>{`*8GKh76MsAr(L8xjzacwwyeT!Wj+8V{8EEgaq(>U_@%)# zyy6lb^Du~ric6`~{n8TQOC|&nVS_O!5@90|n$kl)6@xie_tC4rVNj`Xqf~=32>SO#zZedRP`->#S=Ea5?6EKUJOP|OoYLY zJLY8^Ff#Zx_;iuMuSst3j}yOED{ul|5hsVf;1XrUGF+obhp*|A_hbzjCQ*h@bqc_J z?s0`dtiw>&ef zM|Q>()M?GQ;qRUr8N)JPrcy++`D|58ZJqM9_wQzD8+|BUV*2x;q4BotVI;e*P8qv` zeEBOPoVOY1+Z8dhbqc-L44}I5ILfYNJh!^?yGT4|7a2lH>O2nmAql+AU~k~1^eh;N zBqb|xLiWh@l$l+$!k10`hs`6Ihxn$=Tyh_gwF#}sLwiTcxW1IdoiCelo!~5;Ovolm z(gX*h<^+c*qHR>)*CYXFpl&nf6C)EYTe&udWUe&Qf7zTUd5q~zNxwxL>aB$v7R6A4 z8tPOt>8PB?(YLz~BlT?};2HY0HqjE_=3yDAl1(l%eK;#chU92t zp*cC$BM!*OWv=I6$U<2mZZTnbKfydWbUiWdT(hK*g%CQNGeW=aC?UTpbui9^6V2~% z6)7s`&%_gfAM(-l3}5MFr>{GfulIS%yhfb#RQu4yg~)k;ue59I%h#cG3-g*0>ZOa8+`Qe#$r;a1dNaMN3p?`{ zgR?(7Yc-(2clm0#>7W#*%nc}eI@Bi)U48kQtXeJ_4U<*NdzydpQ{SDeTHzdgSA@oo z*)qO$Z;Zy=?LGLzYz)b&6+80>{S<%1+!8bfCaYF5n13R}`KR=|9rP2`oA1hv=bz{m z{8Mo+|5UodKb1f5PnE(Pf3>pwQ@u9-#CGPNxC#7IV-5e*+RHz+siXFPi5d`C{nWRZ z*7gsqes%+X3m3=Cz52O*JiP7y)z0CxA(#$nkA2b{J4EIv}VyI z`R^zH-1<=RKS2Hw`il>6A3FMoX304h!Tlqd2(|QNFcIU95vP%U2mN^5ucS{a;Udkw z-K35?AJP&VSp?2%J78zHyoerKy8vwAkmNbx4w*$?ISz?fDFr>j+**pj*ar0g>rv=E zVjCvEMJdTU3GPOeX_(Gk0x7mJiKy17ttqoc+CwDs5%N-mWG*2ga~mu(Eo2Pl^?JzT z_Lymg?42TocgWUNQuu@fWAt-{T&|9i2^j&@H>4c;xMU#((S(zSZ1^0r;t<;8{6x5C zVd$vQ=a*Y*ws`lJV_HVzif~`iz*+npP>F!s=4eA@WiY7_>X01;!`6?A)4j5r6tz;4 z>aO$%;NS5My@VuVZ@Bg2$x(2b_^_b99%g!6W^!wKSQOkmvG%Ilqfajpmo<=Wpmylm zejcDR2?fPYM*J4&BV?|iIJfjbU;{GXy;M$}Jn2HtvVSUUAnk`tBd zEsTs*T%mLqx}^H4$sMR4Ck~y-MB7;33;t=J+@ZFy8)H-bAd;Dzdgb$~D%_*!=mJkt z$J>1oSO4@#f35l@8s0TyElExlYotf4rHoj^(P7pv-TW@a+UXPU%XGa+I2r2b5wYl=# zK4SABS3_Pmld!?`Cg}Pa1P^C5H^#x8&R7mz3L~&VdSf}X5UO8;3@2FS%k$w5A$PEF zXF-$=GWJGb|NWDZ^ah#o--Dbp=!qL-zQr=>WljyUkUNWB0xi2i)(ZD1S-%h`8@a0p z*PnM)zS6xh;rDhIhTDA(VjF}K?y5rfr}p7KCuO;NSZz2fza(ey7%3W78F)|Cy9M_g z^^R}3@-4f^lIz~1Ya^0(4E;c(dRy&MU!$9?(r zBNBhI5IT-k-#y~RZp?z>Rv(}tLb%3KsJfNVIW|pkokG2IOVO0OE1^%u1fppwa>ICU z08N^v-c9`N%@DR}nv@Sz**8sl{k~cDO@p}C6RwA({w7qzrorTN1%d6pUsQ@_SqnW- z1=r+(qod+mXKzI_KnmCwYBkT@`GG38$qyW1m~Qt5)gnup%^|Mz77#+R(=%)#8|Vug zA?-qF1KPb}8PM{(ftEOFN#ov}gky4e7I?z%56q%}_;Dv>$LLx-;cAKud`TCNtaojEEVooc*cH?Hh+Gzau=}N`oE{5!gTe5(~q-0`#rktY& zp9KvlZp~O`uYE+<95iSbMqO+acbVox+=Iql89}S3dc~4(U*#5}_ZSTIuW{+r?GxW# z#9gP-^wTHw2Ir5jxHqNOF~r?i`SGXV9t=@&XfF*@EO$A1c%eCt8x{ZAswnu z4cXh>?=huos99GjCZnccxOuERDN1gNWO=~tu7n(jyGOD5|A@I>VBF(8C~AE%Y^=B^ zTy6F18KK~xMrJ%j!;gDv3?~n$!+FLFiNc-dB5s~PcuWs0J|XEv_}YNb_fW7!BxQTG z?4`{X+%oMTFhUAVq!#=)eHI|3KpZ7!>MNRwyNTH{W34AN34kS$yJe0WaQA&mFPLqa zYcJe|eIci1?gM|qSqed0<{5*ARCocxw+t)uj8qTW40le72qIHxqGf?;Pe}F0=qp+l z>dg}_|KtOunA$3ehU5UD+HP{bn+D(N z{;A;1grv2KZ3(BLY^w@4*iFi|iu=n_wpA@swwBPFeTA@Pll@I8%6b$)x$=J#iTdkS zwVynp+Q=`(%1wOz4%H4DUD4qe#ggjNogh_zHGD9W)k8n zU;WceLVPukB*d4tlMr9VPC|V3(|?*th_7KL;V2bNT}u)!9!?y<5kcdQT)Fw^3tT79N9A@Oy2G^Us&EFq;)OWjWnF2k_okq=H6`r+>LiUsA_tdNj&gUDpG2jb`sM zjd=uULT8m&NPIE!4lP30+w7)~0s6APxBCJ6^eRqQ`j&_<`*^$iv(Ir3^*6iwvYY(9 z-E$)${yB@+O2GMnqrO;#JgSwTYnc+{qp@2nMQ&2b*FBEidDu<<-tN!&TCoho#Ju3) zh$)75W6qwOWyyUlijKFvAdjqNX=Nu(S#lR*FjqNpmn=u_eC)2v?j;rIdZ|1ww?>oy z9`>P!W?Wx$e1DU3Kg%UwU-rP*h@5quXK#93$(ygPyBvgG8s_W%i?g~mOFhR|!=HRm zj%0GXzvZjp&YzXE7JQ{b^>%mZ03(MM=IMDDYvqrgcX5#q=Hm2$yyon@6iv@euyaO5 z`jj0z&sL=C9P$|bk|JprL*mK9*S(XkhnPbC-tKkmzRvz%b)@Up9m(fi6S@XNP1i9N zGoUGX9Hwe?i6iRLl;j@ff?L;=uECtB-Rw5}r?5LeSD%ZW_VIP+?n3?{%n9OaIQt}LcgZfqq{jhV^c(>?@qXmpf`gLV+fC1x zxaM-K^wf~Iy7D(2H?jA?{#-q)Qu(ux&N1}0Cw6Y-{Q5G6c%9kZxhfYceQ5A8Q?^%S zkiGq0qhSZ}qbRSr8B=%W>!vRhdb{_=Qu<$$$A?%-!?Rd&2QuhggHu?8+{xHokln*- z(REi%x`x#z{{`$rPj|TJ!5EY&IR~>`7wgiFb)hFeT+`W`o~!ZZt7|z2p|=hCx=Re; z1qqhAov(&J`Jhi2O>X+ir!TvUaJHh&keGWchMp&Jy>XN;xm3chaVD}9=>2vdCd>dijB z?w(`Gzb*T>;%h(lsmJb-W630d?bM@9meKEMT?=Dqo9tAjgaoWe1l_)vQ1%nSF0q)qXY$tCYZ%ib1l zq~FW1l>OgQ|M!lZC)k5#4F_cETx|=DN-4zm@6<9?+rs1&2W6MG-9+0WY?|aUdf>AF zzUKp10l9>G3_`UnI{zJQz_%^li_TjAMQ@+>hIa|$h{k5b-L~XchE0kx6KzXf1HW9x z03q6?qqDTW`lT~Or7fbiLbOl86Oz1Rq-dX#CnWvRi3PV$)0ISji9xx2TI0ReD`Bp; z4>G1WMPdB34<_RWQ=G{N&^}%1zi1MGi~q$%m?O0hxl974Kw|rh

^sOkLV%D$A4O z9ogWY*|5SSjGgwpyqa1+-wy7qylbyNaf6?Y+#&jVRN?layo-s99Pk$%8b&njvk#?c zZ{Xs02=^V*a%y~X!5j#p)VSkd5_aSi`1PnGMaOisj^&qQK77+NH=NE?8MCtXFb6yF ztjzrxjEK$|Ian^t!8>Q+U^&svcFxM&Hkdef&i0rhz5~O(iy`554k@~@1iv~UbP1xl zmVa~T;MdiEFQ%P5W$T*Kp0af{7IgHEs2g3=s)Fl-09}J7gYV~u?yYNHmiTiEA-V-~ z8Eu1Y9??BK>OCrOaQFN<-jlRAO?1y6{hlP##|XRUH|#x{ni_6DJ=Jq^w|YM2Eb>jhEs@Dp-&38XC`vSWPfI%_*;jej#MQkXCRO)BS0TXvJS$ZA zXG5VPUt0p-|+=54J*){vRxb$|!}x@{&TG zKk(`Xt|f-xBI!b7FMId=KubX}h$Tvc(?3g5QmE{ohC=1eTMCtXX)9FDL!ojW3YANR ze!^6!++tgyXr<8gWTenv95Y2x;u8drbfGCBduxKeLN*V9D$XE<(&fa^(7n<~ctfF> zjHC=|28L!p=m4!{akRSNxdh3e4fg02)riAAK)B10j=dj=^q z82x$oYT4oRPv9J?o=UPpv2QJfVuPinP^^bSu^tM=7L~R_vHNX>YAS{NcT$|0BwZeP{z zLiLqGNA6La8#!i*qQpK@XrG~w;k}&{8oU^>G>C!Ie=RH2u&BlgH44#8g&IX_mO_m@ z6l&z5P@{&Ltx%&sY=xRCh0=VWILm2tr6@|&#zoQv3K`xpxVo>vMDO1094YiOE7bh3 zp-_wUmO?F#*$TDrP^g86LM`riDAb~lW+@b}6xw}=;{26krYK5WCxxyX3K`z#NTDa; z2-La*oc`Z)rA}z5vqEj6bW@==&2&qlHvfmcHvx~T$oj_X-kVNtAS@wG5)jBj*d>7w zRtW+jkg$djkWHH`odrTVraK9HFd!g`0s<;337~)of+7ecfZ_(oC_1BvjyvEoj-!Ag zI-~z{YPoAialUz<|9s!`D&2kSSEo*$sycP*)RJ2Uf$|Ij<;_)ef$|)RCQtzvsO=E! zWjPAwj9K*a!k2_!AP|EK;aeRM1i2JmLxJ)>K!J+BU;@p2LlbD`-*tgz8U&hY5NKwj z09~M&8+3tYbAdkThyq=vIb#<60w95eUmy^Juc1Jnf=Tq0tc1s=cTs^na|5VAr85GA zK&6WUG=WMD0+kvBDt*`>P-&+CO&~89Xw@f}=h6WD#w_}+M}gKeff&3p0PhEck<{b6 z0Unz^MFlEvVz_7<>bKt6keeF7tMwKal^kK-KT*0^P|4@(o6T`UYaom_@&|Kzs#QAQgzg$?&b-4Ni$?+3P4!XDZP0 zBTS$bk7)v}IIat{!XVHJgFq`jG6=L{R-h)(-CUsWKEOOr(3~-ge&cD=C4LV_`8%%Wdg z_>%Ao7d9!}0&fF63G++OV_Shi$S&|0J=>`pKMC{Rf&O~xClH{wDpwsrxZYsP}*VWCmyA=RY-e`(*A7)JU&lpmpupsFHqX8 zFir9tr?gv<_C-oN79G2nDD57Yj(J|DwDZ;h`U<6e6=`3kwCBbH!3jz`Xb_+$DQ)yZ zKu=NHdMw*(ly>>c@OYZizVZe<{)y7IL#=q7(oTo*#PbHFeYpoPJHzU1JD_h;+SJDZ zeT&lGfwX_7v}fDF<6kK4UYPZI-lnua+z+(xP}*%sdzR83S__ZwQrc@1fZ!aZeG7a> z&wG@12n->f_gNd`(EC?P8~6yIA5hxm%i-}uO8YbN{fN>oKm+nIrLEr&=qHr6`DQ>r zrL=e|(DNCkT{{IH&$D`{1cD2c_UhMwUZk|CNc%aZ?R^>^zo4|Q;hgPDO6x3w$FC^u zOr-rArEQ%I=+~5X|2{zfPHFeyc>N8fJqMP=^AAe{nn-MxTxyslm-1QipjHwojqFdC z5PpHyFKvZ*^9kS(kj7m%B@&+1a|C)$kmH&vDAn=is?B8j;RKodubdc6l}g zL^u=!kAvv68n+A6ZjZqILZt|7!tIgy+GOG56%5NGcWMmF1;Z<^ zLm+xSGJF&0%NfIX=n3VFq3;QJWDIdfFs&luJHfCb@+NKWQXv@r`6L9QPb0&_KwrTa zehMRB1!K6Z2vEilw|~#jA37B zwMxbi_gd5DMBFbJ&WQ}tMx;4{;V97jIngD^@F397VGLgfvowb>d=2z!4r7QrpJ{U= z&I^WfBOlZl&J_$>?14b^F=Y4-(9dNI3!o3oWen%6heyT`x4F~iMc_U+WjHVLR&Ba9 zPcS?VT;@eL2bz!|pr6MW`e0z1#~7YF0FR6z?kT6uk60!c&X4>?V>n+hbbu9{ADxX1 zI|BWD#_&y$a6V($8OEOZj3MsurY(p#D;O?_tkR}C3k1U-!5}S&eg+x-dNx|k66qYPHzb)FEWhFX?H{v3x;<@UeFlcAsF5YRdh%6h!$96pudAL zjJpNM8N>CpfHH=7nj)<_;)q~a9eG;o%hiHmbYF;weh?WtfxenCJn|zvGKRasiKu1_ z@k~bAk_bGMK^ZQI>=G;(E)fg|gIG(VzeI+Yfqn^N7y<+S62`FEI6xUgJlT=9G{Pkq zE{$xism)Ts@X$7hh#mkmA>ly3lrg*o{Gg?bVIvp~mQscxpTo#`=MD4}&4_Jcdw)g` zJTKBF8vg*c&A%SQb8x%9!BaFR=i~PND+BP@^iNnf9wN5H1enCbvz`deR=J1fcYfeg$EjbNWgrqBx8x)TQHwFppXt2ZXi`o-xZj{ zC@>Z|8O*5#6Q47l=8y(yaxyW8kb&R}FYAv4(`WuHk>xRcTcYBAEs@CO?eU^ErRpre zacmFc`IGS60XKqF<#@16mUpDbYDo}%{Z*kOy0L?hm!)qTLwV`WL$ESO`}+{23Bot3 zI8KHAvE*KI6B8B0+d9Z<6Yvz~i+TiC41*^Jl#7G>P7Z>Y(32w^6z!6bqoCJFo%Hw_>6DW4yFiH^C5i3 zm%ljF$&>~Whl;PB3i^;Tn@Y=%uPO`r2L+O8rQ!>Rg7CFQ!K#~5;0vmPLMec84izt! z42q=yUbdM;fnffPcO?d^cmbt@J_q5&i%Im+q2e1QgQnAzc(Gy<1%m0fLp?)l;zg{9 zstC-u6K>6~q>lqeVO(F_cYl~B$2h3j?fAWre&bzm!RkME&@&lSaJ-Nt=oC$lH@5}7 zO;aKotl~9W@VuKg0sX6^>7OAoiGEL~2)-LA2wyA|tm2!O9P~Q~-yq~r-v$pZs3VPA zMbBNR^uU9Ye&fAVuSjq7l9XLe@P8 zV+i~==T)g?8X+|h{Povgt0uoWl8^(?svQ?g+u{lN5gwDI#nMQykpqqrGAwMeOOnX~ zcpN-=-&Kk1fTyae7r&RtM@Nz4qQ%mR6B79f0>4&OWi*ya%rTY|{jchTlnYgV<1w1u zuQbcW*mv<|k|(8>cvbOIw&U57u>Yh-PD!&~lE_Yur)&5$m|(=b5-JnN31lI!DUSKM znI0-6QCFc_d@r$d%d~X$tqd21gfD$Y!h5*TK*(z*hhP5E5X=bg5kzn4qF1}DN$a$t zF9b`Z_q(tRdgDuMKLU37Jd>tcCWw9wpC-qjmq_jpj6M|KF4YXYgrS_iy+)5{Vrx#{ z9A9*`rm(%sRZ7Bq_>w7k&5XFs^mj6e!u!KIa}KRF4(`^H{+=mFT1J}Og)iiyg5oQy zRseyMCv$4a5M3`aj)~;-_%hCefCkzMhUm+J{^uWgP2;U(Z@7bnHE+9H$i6Zqb6+S>S{;(r0f~{sz&46GD27Aup3Q`YxKirn- zLSRJoB4SkvZ|6{aBU&xs0i1fMMvdr;ZEOlzLc(%4bA`l{&zN5{eRG;5bk8n>0mkH=Y7jkT;0b>atEpjgo#U=FbW-PqQ^kPJnt4@+b+0e-)> z@j-Mt^1+m}_1=Zn`|!B6^&V_%Z9TlXinkuV z$F0VuOS}J=vB6jSjRtl-Yz0DeN;@u41XtZCyv6VA3ygNMMtiK?b@j=|%zg4PbDtE! zG!lgu0q*Cy#A>-*ZfEU;&c6oWKuD|hQYs^k5in<%2-=Y82NSJmpEX@^#o*d z=YE-7h2P^mqbMySMDY$bEx8jJLT=6%=^_5uEx{nOsh|Zhs0I6h@I;KHH@16O(R~l`R-AxcQCoV^xIcx z3h%&W_6}Uv=N;e;ou`gkwd0=lR>Kt7Qu7X?@KVm*JWX3I%}J5Q^rlp1)!tKZib50P zb)DHf@n|h^T%6?RVop}HqY^WTyl5iGi*{5qvZ42b1seg3T66XzH1>#=#qkRN)M&x- zg$1Lk48gEzY`6}61I+JwNHg{b<91r(hUmv}7W2z`bzk1A_g1lP+@IUm5v-Hn#5;Lf zGWsUUKx(X^C?xt4UJ%lugG9!|r)SP3nfwcKU>AhWII&SC!OuvM5S49GLNdGvD0BX{ z7UK6wv{y`m6r&cNl1Zc61MyUD% z5fOb?NV2?xRgx{gBZ(7Bf*mZL{?2d?pudxy!|5+^j-tOR%-HZRCW0`l(7C<9?e8d& zi}hAJhiKQ1l71B_t@#f-2zP4^QSzBJpFu*ipu)!h@#%VNM@DpNN2@izbsiWyK$q5A zwFc20f_~mLlh$zaDzxT`c?Q|VlQ+@UNv<3_CZiY-Qz;8vJRcjD!+L=po#3sqRzaxngOM+UH z*NJIOX(y&N3pz2axuX-)nkc--cY2+*eWyUyzjseBRJafC_Pts2|A5s{8>`3tvZ5FF zuJ0_$#dyU!yqs6)W1zurLUfxts|F+bb!SPx=GKn}vw;INI1w7ZSr>@1iG^sJE|!6# z&+0yeTsdsD;Uj=9e9=SbS_JIku1=qxHxY8tMp|YdjsKoI(gUZ0{ey_-4_gaEQ6a^{ zjCB~6p;fLl@`~sebM+uhw(ut8g2PrfyJJ`T;AXnvSGd`1_|V*J7PPt9eelxcDYoKG z?JDUvA&a@LHX!wfvGzuurn{Er8BAlli#G#YVc}w?Eplg40$Tt7$*6{58Xtwa3pMx>C4k({FWUWC&PjoYnxg@j{ z=>G<2KBph0(IXmkqnVzW*QtC^2LEz0=#Jb4s4{NkW+v`N(H*HR(Z)at-`PD1+pAH2 zAg*MN3UkT$OmEIfz?_!9Ad|b{w>g((q9zNXyG0Jm%sDtQd$dZ4H!`c#7k-sB8G+7} z8<~0PjW&;dYy8=#TTS-Tvf^DO*Dmt!6cbh<V>|*>FDCE~ z@j!yT%b^4DJ6#TQ+Wmn{eu3ZP2drHV(dZsLhim2>oR~d!xyKV&m)n`ZyWD{U*5#sa zdmN;UhxEgG@QLSmbYpNz*2pVO!fPB7ko}`j_p{)485dxnCIF&%JG~RRU}k;kZwBJk}=O-$T-Gx99z7K@YyLHuEt;dXRkJ7jJl&SdL1fn(|)VKmwFmJB3^lz0hJ>#jgXd!;Fs^W zRtuuBi6%LK{^5~?qyjqAMvrKwp#PrJM@@#=XT*N1F?uHP|Iiqf{>Y3`pKbW(+_oZr zkf^&_pK?1I^)1xSk!P)Q;(omv_K1#}J))y#k4T>rM|FILkb9oBE-Gy5)v$Nt<+E+( z-SAKb^KN{c@8D;zK-^-niV(dBiFN_gRof(qbbQuoz7QRp#M`yDrE&2cFP<_kzDMCzWg)g) zXC;Xxt$#?R!V$w;8SjONU-nrW57CE3hLeR$gZE?|1@ygr*6k`pKd}pl+f{41fK1TI zB>Ff$`~!%uCGjf61Y{_t-}|~u@UN|2-)CLSN3;ukoS2g8QpHR{w(qmL?8Ute?jtMl zMd^^{WR+r2b0NRm1r}hRwXQbw);31I7G`T2XqVSUdA|1_S%>{Z^CidU6B5)1D*kE4 zv0M@y5nb8G;2Ual=a8-{I)^xSj{BJI0gz5@R>BnhMwKn>Os13OknZZ|G?>=uqh%1A zKxf>b*I8N5uw1TiF*|vlfcQjCKBH5`vk>gX$qT`b;}xU3L6-NPwl+7SXM~g=esAzC ze8XR0%{|}+*4)AB-=lFy97o1byd^fKFH|Y#cvj%9;nO;_#A4WzFiUxOXVBqKc4cdMj@+u&wILl@D1Nwx&=B$J;X5 z2ERY-wQ3=vd*I_l7IfLR1{ofK(5pswXg1 zwAb4C5l!xAt8DE2170w9{yrO12)S>swKo^`6Q+1nKnu~Cm*&EV2N5}YtH&Y^6c7dS@U~oM1^GRqc zn7efX7GLkN_Bce7`di%ds4dF~d1a5)6jb&%xWU2{jK5|w1)3|o8ce}1TXviKYo_2L zHwDpOWkHfX5b<(<-r{$%ApqQi-qKujz=mSFU!e1U4Zmw`ToL^je4NMyhk%3q*$@!* zAShv_jegXCKe8_WiSW1k?Ce8G(H^TdR1DCy;h?ZcH!LOOA&9uL+iH;zZF7^sbv9Zg z^qu`#B(`X%S){6Kel60-r~F$aM()QV;T@+pgDhuuTP+fzIYP<@e>7Soyy_G?$*7n4 z$|YV+yB%nM+-0>wh@QX6pf%JAA?nu(;jGGFg%(`BUMn;Z_{f)ltu&CUP)-ED)s`fn z053vCbcVRMc3G7g(f;spVsg}-pKs#s1Kx=`9byjdvaN{#S~Sq&E=SY*h${hJDTKiC z7)&81*|SzAPs8u7T~-r@=wTEDSx|<1k>LrH+Q^U$MXDwlFxP?KS{olk&kyxOa#W>LC6M(h}>m0g@`_r zY@TNdQ^>Uxv=aRBw}GhsNvkPDwAmn&Ki-fjd?MXs3V&j=4AQ#|;P@8Noljb4SBTy$ znBO7FQk{nH)so2SC#_n5sArI6GSTM-aNet*v{uu`LAvw)lCZKR;8st3(pp8A25}D? z9dqmYAzyps>xV34T|bPb7sQgAp{i~+IE3s@*rCY24NR{4K-};rt*ae~j)0F7lVfiP zzM1ug-gpnI7Xp23X%M~lW=X$e)$X+3!(;=4{5EujfG4f9il1)wH>)t8>u3?hx9rIuuhqv_d9rhDc0TVdOID9Mn}DpAe;|{u;P*VwNZn;gXdp{N~Afb{j)}kXy#DA z8?aI8ZhroS?VZJ{Y;`ar84IDbS5NWtE}`A?U_1vVaXT3MuQm3F)($nyHgKLzN8RW^ zwi2BYKBa^P`J{sM?$w`=7g1QwEllHv=*L6NzFA!O_slN$=*LIjH+sSRGzFaE?be|U z(M~B`+q3;|erAi!&w3DJBoLq3Zq*hW4sqs2c($;a`8tvdW-h*(ig#INZWIUi+DYj9(Dh!1v|l`CtrA4vvT%i|;sipz2h{nP)x06v zbA;cM0#Rz}HM4nR>y4Uu+rdwbMb8KSP`(+sOdP@0c(pbk%aztspBghcohFk7@cYeH ztKmU(6?~k?1ywC=1ox@0f@ioF16!@86Vdla7^X!A)5&%eG}FmvKcx2~BMA8gCD>v$ zorvC$X7_N z)4=rA(OjDYwM~$wN@KbLhIzV2%H$jPoysNBk5D4|D}0>D1vT#QXl`-k^)Le&107`( zOOvamK{R;`FY#A~O%U}EtFIX#8G7WSfM~`TF4?O&^xQCte9X3ScP6dF>jOA=p#A|KF+ILRx*~)aLQnYlfmh`X!IV4 z4!;Tw+w@1i2ZSq*K-$&D`kAqY`LS3!HO-1HO4@wtC@9@Kk1`fn8jB9&xYE&!?1j<= zRyUOi{;edNBlk4@SwV|L)1MWz=p}ad!ttSx3kmK-Y2lUK%~3_mA_ZRZj@53Z{Rf7+ZZc-Xo;hG^1wgQn5p8qv1vQ2z}JGn4rm zE7uRY#JY}e{gTjsrVw%qB=bFN9gY#r8_%n!ggeH)_rVllIiNWYTNl+3T_@;Y<QZOAb))$W71n=g6Qr{ zTVE(8>fQnO)4srZ#$MJlCX?vhXv69t$;+7rdrK0K%brr1d=0;=c|L=*d=UK}K2A(Y z`{#R5!I2XrQnt~mSBQ3)z-4+s^ykO(pw9q$qAlpD) zUByQGopfS_OY+Q9f0E9elr@X1Ivv~z;im${e81DLTOhnA5U=|~`xC7G8Rmz5IzUrg zc+hHrKAd1!!r*5;P$DXLI1Kcyvp`cHV99RR1V?m97ViTX@Vn)})_`_YEs>N)>S&CiP4G9-ciKm^JMZ0{7!zr>Zl_627H{D5(`{WhHS6MA3^v_!3p~z zNkF<&TV>LGB6JuVCq!FK#5F(8DfCxx1qK50?FQ?%0HSwJG|#MAlUK=N8SB|h8f>f` z=E)@?i)AshzH$s=tK|qW<=Fvw?EsEPd0vTHUWoqLoL3?9B`Y{{=F~y(E%65y2Vo-p z1Eg8G!8-aN+G3J5WO_XFuyZ)CbsvdcP4b5jh(6Lnz=KH8KAv0ZP@{xX#{kp zm)BW4Q@2|TlUm-HP$DY$6__v-072IM*3N|JnOk^g!hqk-#8w=5XL{(C>+4Lo3}Ng{ zsn>XCT5ae|xH!Q&Q?R-MOIHM?OTFJ(y5PyYbSM)q9g2;m3sy@o;oXq1uPxzFkq}G7 z6CyK~FbfmzhJ;;g3FnK1SW=#FC{Os1G$5Vz`&EEEFq!w(3ObdCxR1dC`mxNjgQGhodU|W*2)RdQ202{a!#QqVVai&$hNiC zevjzFDduUO==Wj`hWGoe*G&ChO!IiZe?oMfGRUhIIQrIF`#qwsne)>6{nl%ye$SXg zzmI`A;WvTfb<+k4_WZ({F>Z@o3N_Y^w) zL9qM4`S2R6gNx|4sRjp={sme)pg##{KBu3c(Ifhfl|H&HI34nNfCHv+W%!CscEFuj zf$jvGqpkRfx(}HC_;Q(a17eluaGP!u038M&C-TGdtAD4z8O|T4^4vzETapPR?rDap zm0`IBlW!`M$vyD<^=hjQBDx+kKo-ci~5IQl~Q5F8pHHkF4TY79gJF2img1{X>OPy&nc!bUkn%yt4xxwI0TlPb6JrAaJ ziue$M8>Gc-=Fq8ah)kM2K!bE?EHoJu<5OT*yUJR6ME^0}GP8-Qhq+)rr|qxNj=R-5 zD~P>S6i6)HnWm%fiRma?x?9J$MZp-}f=8Oe_7gIBm9_0w+{!x+l5=B-In#>n1CGm+ z5E!(|I_e^N@K(#5BJ@7!GVcQ#&gnaA^oV{T=;w=u{FjT6#<#&Rbq}K-uF)eJd7F7x zj)Wcq`kMeTJ#jA$>5&FCEJH-qr)Kq|-(I&BOgIS|o?3!)!tNA$1| zq|1+DJOnxZCCAg?U?v7p4pYt5ee|<53flL||(mw(u z37E1uI5=Oz?|Un(Gj&9NLf*SL@BM=J%XliRNe-AI_$&x<$@df)lkCejkL-7$hdq zw`00(@VM8Qj!Z<7%5s^!0Kcyy`8G=KaRB+-@c4ruPyUpU*QE6`WYTHfE(ag+JFOe~ zDRRM-?|^$5lq-=4_>94%V?M;MuaIAoszRflmh!=>4b0`HtLLYb3z+R3d?e9}H$bK% zA$mqG&oqRs)6602aH%a_r@_?KGi9tTi3sNv-+c=RcMYhT<xZupo#L0B6LZ3bm-G0#Pkk~W3n1{$GV8Pu(Yx}jYb-wk z{VqTcF0(GGA$myAFAEpbj-xOF_UQ++x(z&qev+t(8-|^CV+cLZ5Zf2#2JG)(X(cJc zr9*k5&gK$j1P_ADM?8e|fV2yi+4esGO?C@2BIfNgfPMy`IW~GkXItr`6CQwv`2gSR zHYki?9Ka-bFtqH4-*%koFpVjqN8#f{7L?%+=og)a&^tzkBmt@Vrpx4CNVv>8o*){S z4}4AwK81~dj}xGF`JB&fw4WfA?-iLOz;AE(j6oU_x}gmG8+iKbos4w{jWwdad~>;} zwGBG001zFpB}a6hNM2`{_5^*P{2&fMezb~^cYtWMEjgl>{3buGCGWEW z`gG??mb9Cev{wP|<+wgcz2?C8*L_C#nq-a^f}YhE{2O@)&}S9!%Iak{X~-*ji%i_` zI}1KzkeEdOf`^vp!s8NSIx-PSLULrX4t_Tx`CLjqHU!9bz++v3p-l|gAZ^VpGC2*u zZ(%wlCKYSJ*mb&F{uBb=7Z{A8Ath3eUm=sgLdY3DW006k!rRLnc|8HRw20NuL5HXx zL~D!0@e?2nSaa~cMKSnySPptKO2C?DAv{^ZFy3nxux7`7iv~OQ$iz{&XFrC&UA<`V zQM?zWXjeN7pMmfTkknC$y)$6Vi}x)m@RWLqV=i7+2K11=$r_-)120nxSo1D~zs1Xf zmf@a9z?#*NzBUQMn^^uYVSdod9W^ge`JR8eYVgq~ApPcdXn67ZMS~wX3h`U<2DE@R zUjY5pcOd*&SDJqD>O}?aGUC{obOD2VfqniNNPdtdul;OM*4>L)y?n&=W^iH+5Uj*k zThjDPrLi!@AAJ>rAKwSTLtABXdoc!2U~uSV5j=C>qO6OYTdCmI_io^J54y-Sdw?e4 zEqV^u%TV)=@HWx^v=h3yNe^Yj;OkCB zC@tp8Lwaa%%;q8Eq zX-h!H(Omj*n)HZX@+Rcjc5wpP4=1Y%TG?@_XGs~pqCqRp+8jNRZaOUYMG70YjbfioJ%0`?= zt;PeYPCJ{08U z5XX(N?4)1T7%oo%=TP7#jvmN>&w<~E?mh{xRCL5G0`wl9;Z!X{M7I_D6F-iN-ySoJ zi{)>*_>=S<82Nye*uJ5h+dPfiRp8V<*Ea_Ux_m(sWF>MU@%N{LZ}~H%zxUO1{QSi0 z(hbn(1I8Yl$LOYL%sS2nX8E&y5XrVL4=&0iy+ivDk`6JxJFR0WqVCzeC}nKGpofr@ z%Tn9kY{ck&4jxtjQO=##O*cf>i{uMG;~R$ClECx=I`~ejXM^Zxg1&%f7xOJlSB^^6 zNo>*W42&hpG3nkUzH2rZAHIV`KhNgF0lx2*3`IU6AIc=QL?T^zPT^Wkh<1aI6H`*D zzK$nkEFh7#QXpDX!lkPDl(pyh@iLJg;O$A?kX}rciS$(4S7oAd2Ko`|M<8(=zC0EW ztFYf0oO~V>1O>bx#Dzyk|9szhb zQJM~Dd{g7}Flf~{(zx*;hzA|uk1A+uM}m=o%>W@J2!AlFhDl1(#*Hzp1i|1Y8l!$d z)`$lkEZA6NLr91urH5gPCNaP_0g$F)5IL|F6g){wbaN{NnkQ*Y84wzS1??{>s>nC2 zzsA`)fZ#(Upe4dZttrFI}mt9a?=R*Ypy)ATURsI`L@`i3xx6|tl# zCT|0!QuRW%4cFua$GjykR}@YHqbW-sIj|MtG5GS_SRH3sVN81sY%HKSO(ZRS2R$hR zI_ki3sTIRI#S>$`;L`P_1?i$^f%#(d502b0l&0zG&}vzZ1m`cw6uhyqG!Yb~dy-ak zMB}j)$^SblWo*f?0BKNTlt>8T>Ux#^svFLB^Fav(0Z$T+BjE@7^BO%FpS0ZE(=ARyx)CxJ>+yEyS zsmKkU)8okE}^$8d16JhP0kw$%LWz?tE#yqjwZqVzuQ!7(DwJ|qoTXS`{ zGpkpWXvt`ye=$bJ78Qtfn0U1}Hh5eE>9B>F9gy)S2>`|1DgmPL9M*~r)GbhuxgR7p z9@r|6HkfMEmEZ&_5wx^W{>DsCLd<&61n5-6o7(M7Gtpqpjalj$hUyt60#ysEWnxre zMla$V4Fsu5_-pr(aoy4_G6n^nykGr=W$^MUG5;8s=uQ-Z=GEybD8g!8Z*4}P~Mzf z%<9{f)dJXNf8)cAqEmP8L7N*36|ZU|R)SFqLuNgM3Fv9>&53BSdYMPCBr_kzq_V0%Am#cW!l>gsP^<>q;@)qlr$X?hRU35whDvHR^evd0T^s< z(PGGZh(6#CH97(*GFQf7X7vztkjfN#g`_q7aGg1zSa~DtU4xJ`Yvtu~j_Fov5i!zk z9<*v56=71o(PkZ6DRCBK%*~j~7{G)`_i@HqD_KjNkwiv>;VaZEZbYWpVouP#t1MlU z2exX{2RE)a5yu}-O-n5=hiKw+jEZmeUNlp6+ve??u37KuT{)Ch?F?C)vJ07bsC!{pO+LE`25iLwe zSrfwu;%#DXWS`aB#`NX-AV)}r?kiQ^M9_%OVZPE_pi*^>n1_DLeDtvw`0MqhE z^m3}KF3Vzx4wp>`xkEBLxYd%`!(Ac?7h|c!H4IYSDW1VGS|*-Bt(Hq{vbI8smxR8W z6!0!BLUU;Upfkxl1BYHu|835svEw?8BYI2o02FQ?ry_(C6WLNicZ@oe%nfUe2z3&0 zENf$J(6*vI+nLQ~lyN+dZesBJ|ER~P2TeYsDP0HiaMjW1X?8M?U7dwmbrA}oOF@;Q zt1wlXBWi9)#o7b`!clb?RVPrWMUd{5s-l{M&C1ZotT~Mva$ZBsQ?@2n?P$t$w3+Z` zn;UIHsNHvMA^hJk|Gul!>|(YwPawmER~%t(rbxSfnI|XyoG-%!ML=z=&SG1$E8Wg& zU#Z^t_no7S{&kE|H)G?a5oRT9?=a3&nETs7Hv}CcOqJ4!>o#x7&cdPX;?QvFdN$<4 zb`!aQ18Uad?kHIvmn|=hOBe4TJ!y1;(9<5me)RP3qbHiXe=l<%OAx9;lpNixaa z7X^s`qCj20=I&8H;l=g0=0@F2-C+>RIyVVte4yDvB%6!JR~QCiXELt{&>;}x2HQvb zA-WGdw4q5y3K}l(IeUhcG__S{s(Gq0+&uXiAq;WDF6Q!T2{=%vGJ*EKQD(KY_>c@3 zW41|S&CdBal!*~$=q~wqT~T>mWg5Nf3A)#vWi`?htqwPWldRnkyhVMMI9W`Urudsz zPSvM<)2tQCg`2Lg|J6#t|;B0sq@=pOED1^SJ_= zlWHtpW#zDHN*?(&0-U81H+S$NQf8@SSLNH+vbK)+FJ@^!Dqv^sx=jeH(H|`Z15PzZhT#m|Kso>If zzy_8$lg%#LAmMi2Z1imhn;r8Z`ZzeWfl)g}_os$6u-=&}+|A)ochq2x5H4iHUXt!x zjjjI8L~s8Fr^|e1nUrndk~mF#E$V$ho%%Ivd z=oa%RKUw$CrZ@~^_f)e_H_bX%n{IU8ZngVjx9Lux%d%uQgDI_$AiD=)jhe$6gbfL~ zR{Nt>g6=tSZ`5r!Rp2yPy_W*B&swN^az%ERYo_jv&hqDc7Mq7?>Mr?T6)v%@3VUp; z!lex^wBBx6-7ITpMcDfrE5bgzM_+E9%T!p0-%6vaI>+3HHR0x(`D!lgJl!*%Z%!(t zU4Y#bJLy8^sw}cP&{etvy;#yc=sOJFM76UYT7p-A>*u*)2QzTvm5|m5mO)FzgEGec9c^)sk_6e2rvVAzv$*`Wx#0 z{gUosB+@orXF|{$W1W)vViq_50lkdc82%vl&mIz5<{v#4|^&gdV zUw@N?&VG$#^!95dW4FY5C1f*T%<65C{3s+~)0) zap8G~WSk>BA?cHZosxN$@TA{a!Y)6vgx!`|!c!LE3E3kVSL*lLIP;$Pv}9l7e@3zz zYoy#K*;nzOwbU`v?U!up_y;7@LjH4-an$1TM+N|cdWwHK6%VPaY+G737lF?H~zOPtjM6ViVL?;Y0qLcO+(J6m3 zqSqwdb;Uo)!Ty8zpBkF!yzYOd^M*+&Oi^ckV-j?a3^O1S0N;}IbJHg9Eup1>kCag6 z@%R$FMY9XsWr+#y#O_5UK6hDucCH%&04I3MaubH74kroa-m-+^qMU?++}wmY{rb52 zBy}$?Dk-1Sy`ZE#p>IM_Np5j@o}1C}fSoR<$mcbYnCWx7bxY{`J1i)Toss{%5`1$@ z-M>fZo$CdM0!!=4bLV^Gb4yFHZoIxc2*wve)e*`j9{vg%y z%8HA;J{Fe?kw8k&t?AY+*He;TQ~)u7G!;bfWWKWUT%XHVG}~Q~T?|-|A>LtOO!&@r`~yXx;l!;0aBnZu$KO+lLKqFvZq~vHHvqW z5}c30j;~ch`ijCjbqc3Ht6tn(_-^58b&A{}Z1WO19JFtUg8De(-`2+oDOnl+{R&y) z_7%a0Tz41at?kYAmHuaRu)G8w^H`)!bFNoGb!GH=a%W}d<(2V_A>=n*xo)!@8&;<@-K1Ww+pLz?ZRRP|cjXSwWJu%t8%@{| z=#!V!@?VTa)aV_yXwk5<~mfJ)B3zIvBp>TDZlY1(S4o^`U#b1F4=rrxa&H-tAXJK7!AuuVd zuRN73%g|*asZpOQ{r7hw(Gg7g{XeYT4eM$H+UfA4ov2sg-ML=1H|o{pEoxoe7IjL2 z8g@~wsjE~+)m0i*2%nP!&j*4vRO>n6S6~2`Ga95tarU0YaJnXI&oS6f`H zy(sr|s!QZa%j1Ng!uS`Arr>-%)LHSW={N{v!}m}=ecvr{biN_L*su?&9BR$_?`aX z*8%zWhmM?VulxE3nd>5Sm*jf#XyaYCB_Y|~5*LkSW?RDUo?YtV+Tbe8F3Br)m(hWZ zcXyYsEE{V|F^@oW)G2nAW*3#Qep%wKL>l*;Tz9Fj$W!7f_3;?m=xor+t;{XVE)xSA z2tpr=J-OM%ZsTw#2t4?dUtW@n9J7l-K5rpo3iVl(>jKXVDu5y7UbokkU5w0p9-g(Y zyp%D|z*5Aze;+e!ja*^Dvp+RjngwB~+XX4P`JP zF4ycFuP@u@7Jwz_at%)(oywkt$p(v~gS189v9a#w&So*f*f-M5F}KEzZ1!107$er8 z?3sJGjSXH(W1V*hNI1f!X;mYAFllTZOdt*dB_0biF*Gz`$_-t@oy+}jU<*ZZWlhOQ zWdIUnmzIJ8Wb-x#Fvnfy@)cLOirpmzzCttR%P!CXU<}O57yu70+5rVH$4W8BN`bk9 z(Q)Nv`?48Q3MAh0(o#>EPX|m)O07&-nX;j(y*k%2=(e8OuKc26-l;uS#vUtUkAKFl zl(cc_DZIK;6NhAU&lon5h0;rkd_~zfT8v@Vg25BYb8{h_UtT<}+?VT_&Ebh9UjGr} zQnFIBTobY~)5new76@z<^%)5Q+5viGsax7$D;Z6tpRUpL9DD&jH^UBNI zDNqz6RVwXg&=c|)noBx0i7gvS) zQWL#yud8=IX#B+H$~{D_(U_F#(ur zDS$+wscL&Lh&jcM*hKXr{077-Bh>SC=}P}i6>9b8>Xgsb+RwMh>CTgKhn6TpY?xZF zZr-9!y$Et`r4j9&zyl*5>#A;%Bfx9EEeQSSq`?0gKl(pERl9CCw}Clb18yI{J#*QR z33EN!;BzSY5FMa94gs3u;Lr!^K-w^u>k$9i#s*7^DB^23`B;|G&fV{|>|d zKMunU88dO`W1n{ZBCaem9q1 zJu4n?#j8NA*{psJBY$#FwWl62!dZ?HwKvyQsAFIdKid=khlloT6*IaOj<6@2`Ws>W zEFArj#fv{U-0Eu{*T3lWpIuw}PmIfda5c@(s+l&j0SHg(%gxo|vo&7Ur4GKJQslz{!I&X9xpbH+E}G}g z)8Xvm0uQc|F$4s58J3^86X5|#-PyBE%hG|ms}f{b?@)EOB}j8yRO^C?YF>W`vM#j< zCnwnIsmNlTOw!lMBz>Js($>i&+maYt zjrX}{qtqTMC)A(IP{ozGC>D>%ugnvYi6*18E`uLvTj2`uvz+CyX^z9NWTl!{s8oFc zD%iXLrCL{=f^2SOkYUv+*s$sptgSl16BJ}Nh*#+;%ZnEaOl;*SSYJ@0>tI;W?n0U% zfv{L@Vis(jm>KtiCGO{jSo~bs>gUS-{9M_OpDSDaT-oa9%2q#Dw)(lU)z6h}ey(iw zb7iZaD_i|s+3M%Y{`_3o>gUQGo^G0n}vyfR$ zy)9j(Ww=yDMbLa?+3q9Db{|>x>m$onA6XV2v26E<h<>L<&7{bWC=*|GIQVC8A^ljVl}WZA!;Ec@}3Wq*FM z?8i@*ZGN(B_mgG2pDg?HlVyK?vTXK~Wq*FM6)YG#REx+MJ!Wk8^gMToPgCHb>E=!~ zf|7SnDfECaMs`L%NR%?M`@{?rGHjxrk*>%Bf+A+q-5MK^#VofG8ipfRk*R)IME5Mu zQ1=9^_wMO1T$(fvtG&cGBv((CQ3kbNl56GOeMsKyA|G^W1CNyKa<3aG%pu+=1~3b3 zrdPL*6ceR2Kx2x$xrU%sfUzE*9~m--j1^m2S|#a_txoi)Om{_**Iz_K%p1aUQCM@$ zmN9KMw3@pDsyVByr~vF|gAL_1wAARL2F(XpzhZBL&0|XFr|R^0E{=7OG1%*2McD-< z;FA{R>iOy2aKczWph+=xIL)1{jee#GQ`Tr+z_+49i`Q$YK5ld@TsUfDp&73R%-RHS z&&s`4)HHG$TG(r-GS;mjO?N-a1_B#v-xR@=#8CI(zh!xD0SD67`6obw6uT{>oS*J$ zs%f8vA5QzlTOO4il5|)OgjsEX4Dchvu75#YQ8rh_tL>kZ)56sr1%*r1%j%Duq)x4= zRWIXlA(%(ggCLcMm8PrZSm)>->gq3HqQCpXNi_`qcfNa8O;DGpC+pROnmTy^uFc1X z$+zI|7RjmhsHv-0r`DXkASZ@>uTGJ>gk3m$j!*V+5x;lXk|j&kDQ7R7y{N_l%|)d| zJ*son5h&$8>=vSN2#jXV!> zRi~F@Y>hn5Sy6XUJqL+!Zy*5=L3Iq%AD!^Mn+DY-b?R&IbZ2e-Q!G?VHyG-ks>d8o z*45P=Ia*h5p11ppD{Fuh{&{$8(x#8;6y83tJxG*`c^+f}}uq(*(duW8SXXOrI@bB!q#qwe)Oim7y zhdS#Z_FX|93*?XnNNCpc)M~|dSZO(shHi;g5)RYd4PeqzG;b_b9eHTz1L{<0U^P~a z!zA9wMJQ1rEXGw zA?KCqDs?10sH>I6=jG8YXj4xy{GXsEg6>^bV?h4)PWssX?1dWmX3zNj`EF>*-Dl}( zDYc&Bcv4QCRRj9rtUHC}Y9ID4vc{d9J@sl#%~N%!)H>CvUaVJpsZXh(DaL2H@PQbU7 zG$_Lc5w#zq3gk}VI=3%G+{QrZh+3m3YT@A#X9yTEO}uyk|BFaE} zqQ`9%ahC`POwFMK;2i=!B}wYdATO0E5MtgEF(&X&;B$(kCd(ZJ|JJ1(e=QD>;ETelWzW6)`I%W2-zR;5}HE<&cjes`)b!^$U@dMwdiAH^Ot^J|49UQjL;( zAl?}841uo-lw!X1LICb8;Jvb>u24^c zO$!oAv_QmNP^8QBv?Q(9Eds9A>J@9~sDR%lQZ=hMWO7o#r>Q2k7Il49;8(EEXzd)x zuWC@XIG{Oco=s3p0lz0n$JB&^QLJE?!2}WY3`*Hrly{+kUk%nO5)1sYz&AmGE96!} z{2v5by*=UY$~|p5-QdLucG0Np5_ddn65QUtI55(m%Lw!j7N* z->^5*;Fib#+@Ey(fs^=uXpc&4&e#vI%6?Cz%C>zRMVyYq{Tur}iEKZIDqA*rWYcDY zERMuV_Prn3e8yGQwt{5ag1&6p3bMyrj@HWl_kHB+*)x*;9F8>{%*EpuzA}?!_MIcy zcC=UiZ`(`y&HV+-#ttnGKId2RYP9SwiT$KT#yu+Y&XR22p=xZ}XtHi+$-lq%q_=FD z3rj_7wc*_-xq;m$+Zk^8w|1mtKRZ&g{~f9Smi?#3|K|SF?`| zF)5}kCdL02lj47iNoi<{NwIA)DaPZ@0hZ&=O>Ad8n;Q3-6#G7tV&7*{{O&U;)_o>L z>@z9$eI})WeI}*BeI|Pf1~#~(yA>x6u*&ybw^3@yQAa>HE#j= zA+Yka?I3Y_O9m?HR17YeJ8>U_v1QUhWaP_p>zmCnucd73L zes{H29impK^@G*wFVx-gjZSrmI#Z3lD91Y03vy>C1TM%ohK+{rMCWMr{KfhU7u8y| z2hB*1ZxJ|3?i`xM&12#X6ym2YIJzK)j(Bg9Rn%0-#4?BL>uxFuEDg3M!tkmA-> zzblbQATEQ&+|`j6nL4CUw%FV^3UR=bhd=wy-Vh|P= z04tx%Mp)cAto)N0Yd~C=tekL2m%d!07Jzm=RUs#~l;c}o)@wvu?yUUekgjs7^191< z&4_ELe}fMeS=?-GSQSNB+@Wn)6-8KF(alyxYD?+X0=$wB+@0m zgoflF3S3{x3Pmmg*4JB+T3y58<+yUHCa7MufGsf5g=Z047oas1;)ezPCyMt+yanJ* z*V>ow=%^y_UxJ}0v={B|6Y%!|*d*-)zD*;?`cik7ubHCj_azZ|St|&_P4DOMjwz0+~Bv;k8bc^>ECYnjY=Q*fZs}={D7^}sax>Czgb@w9`svZS04N~>#J;| zwZ2e$R}0j%DSDED<$9^vRHwobtd4S zz``=eD-5?u1k83eh9m9-{2PI5I~yo}$Rolg{E?jvO!=coY1rAodl+>@ z_bvgyPk_3Qq3wSVF$X1Z66!ACMz$hKF}228-B^f9fm&Dk={PJRw>E;lq4mn+0to*tcvT}P zwboJPtzsmFIv%U8Q_m{RAh$X37wV44NnvWetl89W1gW|6Iv*1Q90=Ru^UI*Pr{wm{ zj;h1enY!8e;xWHXFF)?T=?6Xjf7bNPxA|@QuG{=JebzRAO`o&PZ_`(Avo$@kesr7v zHV)qIzm5BCzn(Tev)ykSf3@9j8#mwKw~ga=Tz4Bcf8zHV6RY67psF@i!LLu)i;Ck! z_njQqcTVYGAmC@UF}fwdlLY*=HWxr!R4QP7pB3|5yVKU9Xq@T=Y}iai^Azx;-5W#G z*hk>{W-7wN1$;)69Jx#suwiQwOH?iJS5%{~v|7MVm>O}XfX$;`y@2m;Dyd7M0qWQ= zfGruhi^qM3v#PctNveQPY5Ah`S-Xs4(ydyUqsZEDAfol1VuW`ISRW;@Sq|>9H4Dz% z-V*S7m|E#W&5r`cG5QjFxsp7gg?d8nBS_Bd7XFiIN18e}B5Hec=?Asoa@~@rF5|+& zg*x?Qow{a=dO@vMN~)EXlk4hs>k3u0$5svDI3x-9W69_XuH9o(zX&Y8fbWrvmg5xx z>jN+{`FfAvrVZTNa2w|A_1lK`?e*J+oA&-@8-BIdZyWxw*Vcvz%TNDqtGxGggRSz* z(|@>Cu=>6GY}JqTylS7{dfvXzR?jHb>-+qc^Syn3rA2-HMaz~*OZh4ZW)Si$$Mw?= z$f@JA4c0T-lQI#lpKCxvaF2kk-VQE59TAbXg9_N*!TbH%iUYM!0d13j&6BoW0$v8A?J~Jc6u#d9jxW|uU|ePc#V=IJtpYwG8K=5W3wVWORE^UD*2e~{%=e%3-%{}h{kBxvLBB1PbI@-~ zl^*opQvW=7$=pwERO2SK2d&{MOD#hy2#g-w*k%9rdu^ku&nJO;GGGHwxG= zaz+9^Md12j8|*>_0=696X$5i5YphJ}=tTjW`_&cyuv{nV*|bj3M!>p%h1EP%z?&Nx z$H3_V-e7_&1pJQ>T_2_pZ}#d7znML@ z#C}1dACkj5KPzBMZ^I-#j*H9!jm}Pc?&&dzMS%W;z}RqD)!{ga{2Jo ziMyI<^}QQdR-+L<(fLSzs93iUQtCV zuqyVH6lkT&Eic1AAHvf-K2LdZF=UBFoaZUwSaBZzEyfah%280Cr!tpH>dmfTf&x3t zFTdE6?V}k))35RpFFlSHjfbTwbA6uKIjm-~b7z&8(gRAQzo-vL2sKiHhk#Iy{356i z58*EoCtf_rLKD-fq)BtU?(DMMLXurpkjqXN5nqL?-0KGETvV2xiT!^693mb(%hL`x zLXDK+-`8QS^agpbW?gyNbBl`#3Vl=nR?oUDrM@z9d$|W9r}pfD^18gf?AfIi^zal^ zmDkX!RBj9=x_Y{($Sy;DVKo^dp|)LmJ+q|Pl0AEp5o0Gtr*!MqGby@neDC-k(cNeJ z%1hkI1@00&&ILiNnB+PA`gHG;6y3cbx_f>`dJ24lWVy4tmzH^a^h{!RXj{k_*?MM| zf*R$QKzXr6sP>hY;0cQo7f9hM&Cct|eiGSFFZPqfetHwuj>J{LPHKAc^Sy4$3z`R; zsDc#~N(Iq+?VC1 zI%JqDbKKC06S75T8N)Jf?nsZdxfoe&ZqX$D#;lXxkIOqeh(g@ABW z$YPJD6zwIY8#!*MD`ni+tjuwvNqR;`=D4hJt}$5|ynsV8sYEDoMr!IP0&GUPGKbv4 zS{j<4wlozua|jB=Wu$ek$ugN9NSc(IIU#-ASS^>-u_;4XJ|j}IMr67&X=7+LkddD5 z!t7GB46>w;Wz{ug60}76FlYy;o7AkVDX!rY$EIWfd$cS_p~;S+A(*I&Nat z1fAERne815kzElSAqJ7jChe5bVNpUESXh^{Zl{O$3Ykd{RTzE1q7MV zPf=u1L}d^i7aUyBk8w~D8T3oE1;FSnKxg&c<(Ofp5=f3 z$9q;l3f6Y;X}t?88+N_!)Y;eAo6U}@I^`^bGyDt9h0NQnxt#Fuvv+MO; z7)oyit#56K$F#RAwafHK@*rQ_tXlPIm5tcO1$Nu@%WT-!&uocR$EQVmH__Db+nMIl z8G;CA7eK#VbM9jE%bG1VHDV0wyX-I9b+I-!H#WqaZof#q{n_%_3jZPRYmAk*unLUk6D(*fFwWaRePg+w#?>M-0a16ts?E%OVx9E_1A*>t9XWs zTa_KLzxcKvHTwhC>9nLv?Va;ZIk&n4r;=YlK)he2=F4B)-g)O@)fVeXEG~X!rE*5R z`2cCRf`^S5e{YRc?_8my5wFfW>`d5&*%4z>xs%^Ag}%x2WW*@5 z737TNO|VhD2*OWnT0UgX=KAjXnf1CIkYdi}xf&aHc*&Q$!@fV(u7T&oFV}@!kp_mn@s__|%I9|0x5S^f*}U&ocFLgMv6Utk$1b}< zI_%g^fitIk=Hf2iRC*v3wlnt`u&uXrnp>k{-!t$t@!oG+fx-KcDBId|FRbLV&Kj(!Agd&&k# zQ(TyQyvlXQJLfbph!Z0p(aL*Vte>y#CKJgdjBnElR`IiDr?PX#TRQw4fFI6R>e~06 z*}&WtlLpH4u*)EJ?ahl@Ad%T-Uo*(gTBnvP@P4#@xmRIXz0zjZ29Y1H;H<6Ii)hbD(FzZN&3~%zeIaI4$ zy6mq`Fo{rw_a<+>Rx7iO?H?YB-pi$1-XzyGLxUMt^vZQMi%jy#!g>8pqj0UC7fRi3 z?J|3_P31hRR%+{;WjH6`aPSXTX3DTfg5|2|2)^_{3)?%BswlGAL0q$|Ti)!QMNN}E z{*Hfe@jsne-`zMbtSf(N$%D!vkz5-t}5IC zOtRBsZB$T!$qUn%?YC`Qe>Sr<`MTo&Y*p+_wpf~H*|I#hy(>-bM(uKS*I<8mtDLV} z`5qhG_;KnNt5v=+rDx~orjW(5313qON!*1LTvhE6tHV=!^!3F*xg|`1Ei|8lho&@l zXKZ`7dfxvQc0RhDBR5Qt@^xnKGF_4@&UBY^HG`I;$N^?}UMh>X?hnS`vX&3HjS3S0 zo@Wj6lf{~Nk+7k?>1Ipz&h;(HwWN-?u^xG97_PdnE;zc#8Urr=QWA54~H=>DJ+l4*FTxr_6{vuR-~!;%&!)DEhGG}PR* z*MzIOd;C{<(Z%wejxaC$!-g4gs-s7CI+*kY)hPAO(2ANd1cbH`j8Vq0gY}xZbN-j5>FbbY* z{JVRT?zl7Py3W`gjh)_T-x|1NXs_4LZaZgdHj|e-n|5vMGANDA2xG?{8%=ASX~<_l z*1dSAKF$>s+KO_wdiJQg3i;Pgb@QTKA1?zFMY+p-FWITgAnAr$CFMfQ5&kK*1HM(6$Z68V5%Z``5?Bt61QZ>hw(wz(J z*_NF1M1xW8`rlX0<>g#%{xHi-Ic1ONI4w>($v#?lyKMAwqp|+z-Yf0YSDf6cv)yk& z9y_nOH#+DX?(;w7mz+(v-C)Bk{@CJwr9V}N5F;77(1)xc;&vtfk&*SFytTJvi~r@= zFxkuCk7PpyV^gm(ZBR|+Wvdz3jdM5#{u>qfojJ__k7y_(qD&fl5=R>V|CPhuIP8Vt z$!+%K+w2hI!kovr*a?w$dOZsydER@Kh)K=id*urdT^3XrAq!BQ-DE2;2P?3^Hiq33 zw-tZc>)8!%7L*QL= zf^!uZzw7h~_J7v6H-J#R#UGuEuJtWuvapkxopMZXtAZf&x177zcMja{z#X1iGJieI z5Btd*jg${|^NDt&J963M-F#v^oVceg=gvlV;)<1}uK@92=~qCQ%u2f+;1lsuiAis^ zO;#NC&pP~b2L9QAe^woftqZn{CWm9(J7IEJl|rypRx*j@)v$M54S&hiaIw6aWB^cj zh%h+>q9;8#Y9CXT8n0jYO4U&qbi9w6 zd1{0{H0zlabINAoE@5%_E0!M`30|kf8VmgNocb(@BD9K%P@%*Oc`?v0`Fd}cv*YN{ z9Zi}CT$?tYC-;*^0UF>z4jzhWg6=*5ccPW_Ygsg{_8M0l)YBD|W3Hg^NCeV0u9uu)*Ov{Y7Q!k zP)xe)?S<8oW$l%~Q^8(=8ImQ3>GkYfsqhH1#g~shi-zMVo6=5mA6zIi{|aWkgr5Td z<6_$mCU!7%k2?LyhzpMUTEi@YVp9?tzvXi0j4Dp@MRq7DG>!uM%r;xOW#?A740GHo zY_TzYIk#lf@-KlqZGYH6YSYHyxZK<7G2z!d>Z$Gzl~ql4fXsg3ZjeSD`gldYlWdE7 z>FCe6$rGIKbi7+*z{z$Sqp^vRP};9i^mmJV#-hP>w|mub?^*a44JdOfy0%$nZx!&; z#Ap#VybZe}N?ezJ%C4fNVsJ-Y8_o#OHQjsIm__WI2`w2WpA?qdTtWGDMMznr!&T5i zdIATO8}LgWHpb#hlGrmjaA`&x>DRQoI-g?$*kOvqa16B3OcfN1tkR(oDN&; z?d^PBB6Ch|-D;vA3Tx3 z{}UQhoR?!rzsRs-I>R(_)P5e z``w#^Nzj?D2HC9s$COx3?r^BVW7|{6bay@Y|(3V#wC}*Ssnj2vyBJa z!`pUZzmJ%`Mw17QrNF^t-RtmLnu6Y^J#>My2#N;kAiem_s(WviVYjkHE=H1XE%=d1@rUqgdb&y^Ybp+vcCo+VbZ3t4Ey`+0`|$HK7LYA$StlaxFU`PFSxg;e!FzRumv6n4m^;waZ(Ga z0(TG)jJj12zM+@2H}$u%>SR#2i;zx50aje!xvUspG5)LO(H;s3rWT4qx6Bws8tN0Fky=)Ky(%f(m8WTYQ6#I*)-X7AKi7OnU&6WWebW*td*; zM{Ufso0%K*lnd`1HxKsab9YankxJ8}0x^ArEmKm7hPs(CM$a=qN{gJ8o811$NlBq0 ziDPJvgR{7Q7;?(pPmC7eb#bq-F=)m|^si~@1VIfEM~#}vMK`NCfbl%aV9%M$&&I%z zoC*M?Za%Sk`u5v}^O&EBS0L{aA_DFq#~L~WWXMTQ=`Ygba7BE|x1DB~y51X%uS%Q& zkTH19uJPa5!yJx)Wo>ko>F-zOlW!xLzuv9aJoseHAy9e%0}A-RtE9@qBGp%C$zcZw zQ)8GqQ{QA~zEeNz0LO6I5$PVyG209f{SyQZ4=6euFL@mZWG?Oyh0MnK4p8^5ZwVS1 zc1_wiqi$WO5k~m7O~JI4MV-kl`R*?shwi~MhK6V|Yc|3RE%6!}gOTu>w;LnDhwiKo z_jCN;Jl9m!a$BxAb)Mc)EIUe zhkB$e;ChEI;g6WyAs1w#I7*p?5J4!Bop9`n$;TsQBrK@V*j!$8thU+hv?AP2n_l?5 z#Ki|}RU|fAVC!Qu6-4{mQqq&4eoHFqmrZ>XS&W_wzuttBd|kJ-?^;8*-RX7{L`d?e z;1y@BGWoBYj;pK!>49N5+EYC7Y24U%dQ!^uA_@qD0>VG3C?G2ooPl{306MJJ=nALC z!bW%p!V4Il~*UaX|a7ORwNkt;2-7$>SlV&dMEpwN`i=Q)eQ zbNqR51O{}(-;-^Vp*w=79fki1xjv7Z0aDykGaywrdd&sjyG-i@{s~#MguP)BCZ`3} z=Xml!Kw?Je`MvtK!%VwvE4O-CC#JMk&ugfm5E45RAe9t(M~N3T+h8deon$Us^Bb@Xy-OFmacI}3jenw zs+cUYbco{a3v~o6?sy=JRTliml8XOWV2Kodq=d0O_UacFc^4T(^c~?M+Rw_Fc@YZG ztC^lW>>rO0P>x5ZC$Pt7TJ{6WPEQmSEqPJVRNTqLn#|N2XVicR8@dfkK(tz3?J@sY zn=L>TA-4%_m^|4q#W_96ku_2yxXEC-My1V9j+#9mw*W){h7PfGmiU}7%H^ctoyzWc zQQUY@MGf)Turmr)$E3%WEjN9pBdd=@DNW0SA9-`gRpYD=tMCWq&yh9&LK zVY<9p919)AQ8=9+2)^-51#pacX!l>~8;_4D*6qESjNc$fD1bb|0P?v($8EaDoe_>E z4=s;{Dj_jP`blPcow49%7=;J#y%Avt$#C57?fFoAr2Tc;YJo8uLCL_QFk1~qt~V-! zO=@D9U*kTKD67KAvH#IFo@k-)y>)%sFW>AV4l%Hfxq^eqM3K*1Qs>ee2*jh4g{%k>Y|$#EmJH-bl0E*3}`o&YNtzO3Hf5MEGL5Wa+Uzi*D7 z5Kq4dDHG>GBnikIJcdP)kyImq_T6Kr%@!p2Mq&z^n`drLWd>FR-vdZOZXZpZ8^t;ND}Z#;M#2q`AvDa89b)p25+p(;qLav&sm$53Q27xPc6eSgI*VniZ8? zn=E0Otp#5^0eXXwy3|o-LSi=guE!=nuMMB+|_|!}awfa2=vh{rYt_Wbj zBz8Sz9XCZN+LB6NhsYgv*DF1yuQx4+EzO3Mc%A?gbuFJ}+zh#64vRFG(=eF}e7c2~ zqWvO^ok*1Ui8vhC>O%^M8HYb5qNb!aeUiEwW+E(g0>wKOWkz>3A~UuG;pYqvqljmo zTU6nTtvX&l&lBc2N>V<->?ovh53*24ZqpjTjtC&lqnL2?ov(4>@QBW~G0eJAh zL3J=(Y;!We2zV3`zby)b;(&|vgPD5=4M0+M7$~Q%%24DTKmjI%5qfS0eJ~)03v4sw za#Es)2k>3gvolwK8gE}5)}T*09#+LJHve?i26ZhH#OP`@IK zM_9b7quFAsDR&O_^%lv$n||SGjtQnjUXfFXwzz*@%e9))u)n{O3SYx^1X%Bk|V5x*k&8^LRH52WiS3GAI>*mbiTNXT`1g9cohaszls12XA zV7EsiRVdBc96M!6V{EvO4GkW(?_10r5LW|Lxg9zU3-1rrj1uhh>ZJw8^v^ctQhRkZW< zPOq@!5v$2E!C?ZuyVq#mZELT!z#G8F7DVH&i10L2uOm#-I*90<~o!5ha5yGY!LHl&yNptwIZ^q z4aZg}Fj0>(JI>ki7F41JwHZQWI2-0|CcFr+T)jWa-((=_pzlFAId@IR58jejduJiF zR?kje&-aQIOKN-0#UIl38s9(91-GWML8LDr?KW9DA z{+eGr#5bh-doOdFB)0W(MVkrA!(YpTWr{jEFV5%OJg*>d*kYd?HOB+)4y|=+xdQ)9 zXnM|guPPJ;Imt%Ehue$1yOAiP-Eq4uhhpXy73*E(Hy3*A`Gt1&A;(6$-JOgM?t{o` zk_s?Ph*?IPBsJKLt6;VDoz2QNdpFQj0~wq#83{hfnK}l0!@Dhb?>rZ-v(JrLCH;V{5dIZ;&OoS#KI#Ii9mcu?GZ!DycnjZ_yEqsRqMP=s|s3d9rJ|xsGZJ4<=8SX-)1uM z(~<^XE9U)ha_DsXeLz8gour{8Dt66kcHPF%9nOVi{Yap0CfzwC^cVOVZBGuHa6BwD z%G-0zv8w~g4l8=HLlQ`q$5~k*%8ew{0N0pIO3ABy6wL<{0dEzt7&w*TjNy}j!`nP? zn|C{HG^^diNzdv5i^oBKGHM*QMqoEaf+j*dGJ?P6XmmVkHV)gqizK&t%m#vU8~VNx zNLtcI-EuC9GF5lGS4Wn}Cr^&=)i5SLyjP;1nkUau@?$X;KmrAmC1Nf4o&qyF&XQkB>5ES)NsJ|es-fv(0o@rdQ>Lm_x*-H2 z+JJ5@YgU=;mt%i$E^Tk!3G!;IBV-a0jPl`<3}S1qbJ!SO_0DWbG4p={y0YZy?}6>@ z>*fW=TCeXomHNdqcRFXvyFfhb3T-FpF}dbJ&(;>%n38ZZLG?mL$Z!uAvu-;3hwLjx zhgLKQ&uR}ScS+|3pt=;i9ws=CI2*ZXlD(SOx?(Nh(_TqyudW48j~ZE%Kmnn!$%;li zde&RIJhge(b}J~=f(#kueqlE+xFc9+gS-n$igVJvQJ}q15&$~^v>rJKIq*rp8^e8O zr^(gDCI%qg;vRpJ@*WmckX88lmLrGbIzfyrY?o0QtaBh63zGs(hwOsz@AA@`Y?xmL zAWZKVlISy{$^{m!!#yUql5vJf%!)yXW?;8X$yAV*0xPQ85Lbkwih$3FF^3=U_Z4x@ zEWPsPw2DOy@A)+JQM_9ZEDjl7LnI$wKr^$mi90q+Q)jM**2NJfVS@CN0+s$MML9;7 z$m<+niJL1ImQdY2KvBC3C1B&c3fXCPCDcNHz{zq<39XiXGNxLwb5`SsrVEQeD>K#G zgG@N4TUjuRt;DW9uiS0EXkddj7TmUsA*H$DEGht-aM@fmp=zANDXO>*x!B12Nan`S zir|p~%1ny@(jewipEJO8=FI! zrj;gf$u|!gL!PsJi5+=ooipq8@`fc-^F(7-1NnEee$spct4R&K5gPHZ0zaP7@5F?0 ze;~A~8*ZFOd=+XWhuyr`IVXaqb<#Ytwk0gVQq zR6c?uzOVbkwCCBp{cZ+&sL=4;#M==8O&6EG>Lo@wFp&ZeQiq6Xsa~gUR?9 z_Nl>(peMqMA|wIjGg%7!-~hbDUW{{m80tt*#tQEW zQLa#`sbIZd=P@9~3q4NeW7|x_B$}N(j9X*i_7FKQ;(0lVGMl;40=uaFoZzV7B*#7< zwSCCJOiwc^J|8S!WqvpAlGE!rKH%5{mv}-iC*DBkGg)mD_CkAC$IR$%TkLb5g*0*~ zs0L-!!^pOUylC|&Y*J4X$f~=@7L=KSikXg`QEM~@RWy*^K>FtT&Sj*Jr5^c|mvf|I zILz0e67Q5e?>aAX5^2gcz_Y5}S?Yfh*b23w&O9#!*sGrzRja(KWA+?-#+C z9U*_xLObYmazZ15X_QbGUFKB**uxQvO^>ZR8(!AZ$_|Y~YunFU&L^VEU)9m$(Mrp* zv&Oj@N_aR}`T>%{=d;MM9;GH`Xf_++xTDmGMCEW+fR9il%&@_ZONCg3k!1==mmO{k ze7<{2XsVEXf--{Hu{a5C9=pvKV2WtJMHgaJVANV6;#M$l5P)y#5h7t9EIVF^K}=&< z0cbHDx8E*&#KyWg_ori>Lw9mGLY%DoMHlUz4cju|_-1}o3R`1+p>wQ*gle3IE(%AK zM+a>(GuG%>B{f=0X-6bEGn5BIx9PUrQFIoRWN9w)9C6qx@C>j~IqLK$BXo9!Fg4C0 zcc}svccT1VGqE|wYrPaxOO0+!16vjx&C0uyw1DbwCRTBO1?^O@yy4<59*+y3_#}&t zU!{T9`&+M_EpKf(l?!GJoS!nCO7h?5Rpq#Yk^6=eHqG_!l9r_i${MUjG5_q*ZTD36(S3BEG z=bg}jVq(v_SK=!-&=`ffzSsdxp(`zK%&#H3m}AT_!3OkqBqrGM7-PPKceyX{E>fwU zIU`WyaBi}M5Q;bEb5!DPk&4@e4jN_M6=N%zUen?MfH~x28mQGVEFW3o7pNThv=Sm| zz$^Z)Mj_(LK3vOAxddRQB?L3UZsMKZrWpYir`7K{P=I^(7$;n{>yDhwk$?y`5uI*= zYw`)MDHsCovI{Z6Es`+jCLzu(CAenQM_r>%hLGVoq@2m1{B_5J2HpoAdXE(&Q!+tr z$ydefDifN#R*;lh4p;wxTE#y%n{3=C-&=43?oSr*A=(iqF!Gg5hZ`bt15HL0u z0LDIWlC5V;_Z2d`v*bSF$xRX`Nrd;<(!B21w(s;PiBVCaB8Np!fi#Uz&g#1Da6n7Y z?LJf29zTOc@)Of-nLZU00SGD42FWX9rbt`e{xKVXz5WE#kfI?Mpo%WE=@F!NSDZnK zLf+n)LgLwT4{gT#b*^O_M8)m~1hywjybYNovEO4OE38?(0uV&aAcMe?sqwP2-Db(# z`{Hr~MFK1+HHzJ}v)>t0zEBJpzfl)pe784%Le&0lN@OSaN0`L0HJSB!nI;OhuGYr@ zD@nMt?h9gWZ#zZH?xK^+Ewt<|3YkqhW2jK&0Wwti!OGrg03nCXbB@>v+2UNa`@{ZZ z0F1H060MM(1ofgurqf`rXZzm!kO$zaKa6<~B5}=w*x1{(d``&zJ!gHm9|6Xh0TxG` zO2}F7GBbC`lp|!U_kQJc99MxPb4s!!^FEDCTQFuVm=Dda6BqDd-2)gu>PSYfBNowyf4XF$Z9`UYzqcSSsBztTgSY3#rI*ZBd}|e+5fT-tkj5JtxSE zChqVm1Oj*Yr!C|YZtUx$k%D|%4qq1>k&xN4xD6!`=e(y48pbgYe(_(s(P5433A9?& zW7P?g1B8>xUt5!%rP9U19wuJmj7&>|hP=*8lf=kQ#8IO=ahh&xGITdQ6B+T1Su#;q zy+z!sUihMzI^Adts#D=sV}fkCJWyjMQocBU$B+#cm?EL2>By7JjX8d(2nJ8HQ7n|f zaQ=lU^5r>rf8Rai*1O~88-t^qO3gp?YWa$D(~Ab^tc)^?!JNG|@~Hu34h5gnm;9LX z^J7Xt4yiDJKJ$VgW1;0uSTV(FWWr6d?V!AFnucx$-r-S!-4)cFy$?g-B=FBk&(Njx=afh~7q{i`{6R{10YY{|Z~%bu-#W-By7 zaGJP#XvR+u&+kR8Zt5A+;zXo}X?E@I{ARQgU-|i3cIOy!OzsHJF@a>9MRxrAX?mHY zd^$t%+8?QfenmNk3yONnRpNEtuVa&&BdHE`^5o4CUX7EdXKkZmiZa!}1Wq}p>mFL` z^|RZ~*_v%T7k4)8+SX;jjNLZu_s6%5I=y{&n7_@<-vTmW*k+H$eqr6W?M*t})@`F< z^R}K~3>fw&V_w@dNl<1ZNGf|RVfl(2eV&3BHy`>aTH!=?!nHZIvpzas93?n|?$Y+W zJk$aOXPU25OA&4dFB@&v6}5qRLMtJ5Azqiewp`^VRcKt3L{=)qEBY&EjreqH30{)5+5|=%LE+33pgNVyS7MlxQn^; zg|F(ojKcm9T0bnS@<_O-fREw+%|%iv-lKC6)HGZRplsvr z5g^;xa1oE&3;Z~fMte2WG#hC++heyow=leiI!wk>$CVocP2EBod6Bp$D6LY+FSc(~ z=B)DRoH%<`$?Zes7AXfDSWxfb5A0zd>-L(WAAqeXDoMB2C&J`na zSTN8#B{hdx&GflBIQODl3rs!v*66>Wocvy4jW#Y^wJqwf*Hrj_RHog)m zWgPQ&g5>FI`dmuG;KWBE^qL}HD)xOKbg1UlT8L5{X zwxHNXWZSU5>C|nfeh%I1(-g|%$Kf%1EM5xKKSz(SQmG*ubY$vWXh$1|Ub2-w2$JO? zhd%J1ofA2fGu;6q*1FIrwn!G=RSosG;>hOoVy?Dgv+Fj7DY$J4Ew0cj-)hM&r%CC6UudS)cHp~8X3wgAi-j;jj=k4iO={~{6` zok%h(brEqs2f^ZS$=5()GF2e|vw5W@jNdqI=ITe-mV6c^Gax@S1;7hCQNF)27&OMD|Tg}u`YVZZGn$M4kirnD)xXK z`v~ZTS$GemBZEh2DD<;Nl_4E3(>w*g$d^iI&5COzlBZ4PAF&cR9jwV<;BmF{ zb9Tf>us@VIG1*$(9iEVp`2Z*lU9hzHxrz#6 zZYcuLvl3C7Dde?Vv~_N{I!v1R1J)AMWdqLKGXHD9P_ z3;C81I3Je$90kGCQ5^~)uDC73m9ALCmf>KnZE#j zFOauPn99e^(GZFf#FA44X(?{wa8K+**yr%p=3ror#_m9HE{rT2BuiN-&9}g**D{#R z4+2%}TH>|m<*Hl95{T!T)T`lK^WEA0@!_-02VLB1Eh`<8Zk(G{PW22lK}QhphhQF( z&{^lY{k=xl&hrDbyb1Ec-8mz0%Iv#yO^3@~4o1DSy~VWo@qxvuXqch_x<0OM(~YPU zn79u_82P=dQIE+vh&RHQaC@Q8@2}i~Jq5ds;kL#{K6LikQ!9Tt+^2iMg4*=YVEyyK zL72$z5BU-Uncmm*0OHHC%LwsR+^KwPQ~q`llMN1!_}airi-CZb-sjye@9wm$n-jR%_WFg%*O#J9lz(opvO@ zuUF}S-K)X<+Pkp#hwh+199tWW$;jPhn`#8Vf?30ij~xFu&;Kp(f0y~cMgH#!5DXrI z51gNA!coJ?#sYu`05bSL^Yjt+?sUd#4j(=XY_e{@ojr~t3WgrG`v%rak$^-YL3Kp< z3z14)!&l+Pv=u;48)#{iY{v+NHz(*m3)9wwF5M3T@JJU^$EqnC!h9L~XkR zc9f70!%nl)iX3z>mp}yW4s@cR$o0we_S*Umg{wx+R>v=%qCZ}c5il3c2uSNulMo7n zwe}^;L*cn*7oWw4s<}szDJD@Yg*uWsfgw#=g&6nF=% zArz6eq|rWgEPe?blF_0wI2E{$xUh2e*td9;f3yMOw=2O$3J@9U9*mN)=39#L5JQ*} zKBsh8MUJGT9_Vs_P2zfqf-OgG@C%WfFM~{Fs=|_E@8+Ccw)pZ6 z7vFJmjqgie#xtEW;_*OncQ^=hgv=*tCvb($36JP9m61IjA1!!Q-L}duXFCZ@Q8lpYe^;d(BAD3oN)8Yu}mwZ_K6wbJT zp>cs~xk&^=8WmgCSXDGIWx{)>hT+}WTL%xJv3?BXmPR4?9k_gXEwyCAQ`>QRjk{g3 zEjw*CZUX-kG+o#lkmIM)2u#AFX@N1bgqb9uLansclJ2t71ex&+N`AiAcg%`z0hC;J z3<`16ig^llOFYran;|Mb>YLT$UK$-g((;}1=r8FNe>x$Q}a!yum06y zgh?A@ph##cx1@YqWmmxC4+eIJ{IqE;hiIG1_+3XC-+?WFuD<}3!|^(_wOB=r($%VAtXaDQlPTb41;du!oe_ z2Y=39^+G#&+xI>S2@J>9{jKVES*X z(+^l*%xK`jLkRK72M0dSZvTv1=L)!Y49N}`gQO8hbg>XL2sST*O`tkcl1mG(XsN17 z%Bx1XcT}=_xR8@*Tk^c#EqYe{LjyX;eFq#9Y;^-O!GJARCd|oIVR9gFzBUw;OhxQc zl5zNhNTeD`{7reGf9qzbGxk+c_LLM|8}uOv2H;^na(to5|pEmt+%(`kNu{!hi!t z#lvYH7Y)g1Ja?I7^cH6P*JS$wEi+72lLBiia5N`9V3Z{skf8dKb&Q^$ro9ZhlwECB zFEj(+9AQ(yLEs*?oPOIcm&&7Q9as}M^+JJau*-O;WFp>o$#nFRnAe!-R9B`aW+7W` z4Bg4q=YXXXYA_Z{AYn&NN8rp(al)(9^2GUfRm70~I;j;?a>qu}adJB)R=(+4t?J#t zI&0E0mxDeAIhNSG7vjq(0J`?voeJTCCu&d16UW9%NcbcUg*e|FT%*M&WhF+^hh$o= zfKuAz0*f|?Fhayx5KZ_eFOB75{LwE0kIepH=R>*Wr^p)&BJsQ{MRmId&f$=nuleNw zs~m2&^2jcN#ec;P63@|oFoX3?!t9)+lY+UkKHMM0IOCi^bjAXU#M{-KmeU^g zd&+65spaV1HE8DK_vNH|(r%30j8bFrPlL zxX#4cnF|TbP*Q1_BPPNNV(>df`mc1`ipyIiKp1pT^%Ol)Sq29An##rtm`^e1k}90R zh0nHh2SWJ%&jsn{W$EXl^z(}Jb4mJnHQwXWf%Izq}KDX7-K_d#9V;i2J< zixtuvLn)eUu+~h2q+XTwF!1XXrEp~n0HFXP`3Hk-&~yMNGzy8ua)*)W4>IsO-IJv^ z4Csujpod6;h6p@UYIVcQk3UnEC?lE!CgmVz<)46crq@lv28X{1yHmH(WWsE6C54HT z)VnxI{c0LHTzVG~d9nh3p+i!tT|J$y6fpIYKj9JgBCa}{2t=xO*$(C|#2UM3cge8> z@vji$z&odfy236Lhh~Uzu1^R)Q-G2WxG91zbsk%Ta-cFQscdxe@fFWrWS8@%6*UaV zc4yQyPC@j(j}ZK!N}+TXCegjsFjEjI6ao_}%3E<{_Rr_LkU9W(DC=I?K@&`J4)s&3 z(nBm)6VXMT7lW3OriGX8g!vk(*Z35{Rl zZI*ZiY_OH$CTxITJojt-*vBLPSCc)oWp{E})|K z{G&$_JbbuAt?G%YUDtQm#gGS86Sh*#J%Z2z)YFu#ClT&U=Z?XnOy7$mttVXDR~|q{ z4N;cVShnE35(&>xO5+>;3e$SZxz z?rC1fX9l`bt-kC;ZJ7WV)&o-ez8p1+fSe~$I>B1Og2YjG$lhBj1Q77hNy)jX_FR!b zB2HrrPE|f$UV>;a@Ck*sRWhHblRkkRO9w;He-owwhDK#K@-~e4xbKLii{)+7jK`WM zQqUb0_FcUm)6ruLZ5`}jyh~)ji%Z!M(l_pplRY$qs`jFzJV2Ht7!zqtkA;c=9&{-P zp$0=vo(^5mvNE(*GAv$U;DvzjeIWJAl6Xa}y-Azth-dr5{@8u<-qz7J);2I8r)j z@l+wF6H<6W^Syb0IH!c@9S|VGjpI0-K8#2llN-!(p^*9%6%0cMZu4$9i=ZTX({QxQ zW>u*EW&o{)xC6PN#&P64ts(9DS*6gqY&!~JJ;S_a$; zxZ(WFjcELuEYtyB!e2;ds4_bMLqXN1vpPAJQ5@EmKZxAG#H>C+N-j(ueT$fr6c7oB z&>Xhac(xWKXtA!{kZ3i2SUF6(k-9@p0{IAsUR3^tGHoJ&F1XP3EYX|gW@9#{NBL4+yY{Qluyl6@;3!qULc z0`^O0YMC1)O}E_gfOS0su+H06I-VmGWVR(E#f(1VxR_liZiq5%d<)1hY2(!L*0=pU z$uF4*;cy$v6F^G2(e%2%UOinJK1~~&Cyv_aonRJvQaG>w<7sUQ$aIn2T2U%!!^0N3 z{CkHkni8i%6*!e}9PU^u8LVisnEe$L@hF~XP%K6%J1jduHwOS+K|Mw2T*S;p>D6k^ zWx&Tbj{30gJM$E6VomZ=;JndMGT=gm?V6`zm%Decv%>bXdN&7^UEK#0zhY{DO1X{us}H5!Ys~s*(Dzl4UGawNM6a{ zCNn9IQT}&bhm`?(Vta(c&JqD60BFz61P%-Kp^fa3HzQv&h%As+uHXru9y`kY(T>w? z$YX8_!^>fwkQk8+YdxIw*7<8&#~p!lP`4TcVnReo!e|z^<#pGfg2YtiT1e8bpD^B} zgz-$zawMzv9TWCtdCkD(H#RE+DmuZu5;B~$24`2^;0zDAe2hC^z?^e|vR;8Ka++r4 zq0+~mn?s2-Glfr9g1RKc@era*Sqr_6aq5wwB(O|&Aq9|$SEV@nAIkuRhMN3`Ldm2H)4->;rQnI~nmaFfdFfsDge2LFr{DK2mAIi*v)C_1j0R z3q7xj1F=3Xwb6+N>PThRsqx9u)yOiNNPC$tNB>Cz5&jTaido}iN3Bz+!l?bzp&U^0 zBhMP|fR|44j3STgj6vmC@ktvObENVlBk3XiLWC=VagTrAN2FaO=51I)-UdIC zgGf;?pkppnB)OMTXI7dLLt+HKC-ej0XHe4-esU@dL!96=@WPd0F)2eTl5ss#mSn(K z^U|cd(HF$|eN1M8Vj`rHO9k%`^ds`6L^=3UU|yz3RTMiF=P^ze4dOVG-e^Dlk#6+X zD+XIv9AhnQ!JPJ!$#_T`7p5phkkt&BKTH}|EdA_X2!U&aTRf|UirjGNmHDQN$a67lrW+j+^$B=FE4r1 zf(WBP=3Dqcrqbxt!oiYE&k>De7HA1lq-(ikWB+KNJGpv%n0y^XMBB5j+;Vp zwb3>hi(#PNAb(zdiE3dPjwc!&cJl2^db)(xAzrIRc#VURXX-rfd6ojmPrAEx@N{aG z)V%3Kv%~!degPCx3UMnZf&Lp(V-kRjnvFrD+2JX%g8Zw?_Yt4K4X9v-kWzsEYMIjs zB=97Zm>cGzb11?@>$>8pax)Vpdoa6QNpBCL%uV5%8e^;*Wx?&@b2wz> zwD\O@=z9LcIn0VC=$k8JtGgp&7Fv$$4MJ6>0bVUO>i!LZXGBGx3*V&fE!hkG82 zxY2E^&=8SNFS0fT1pO=(iy4RN3{ZLo9lAc+tsAZ}4aVY?n%rR$9;ufS6cR!nc?dbF zd8DLQh1$fEQ0{r;TX&@Rh%=DB-G?T4taf9fOA9;1xDBH)oVEIsy{;?q0z_0mNm?ew zY;AgZ5zU&M1{6@kC6VK2#d;P7dvK?DFx<}w?*m^CyDMQ`MgrRCn(-V2I5YYlkUZ}g z3MWK!amhlUz=KMdY{U1RPT`q6!h#`U1<;|u36_hA-~#O5$svqj%^0UuEGb%HCR8syKY!W0EhUs+fZ7ZzbToTPNnB%K&0>S% zdF@joaj2*Qd_koudtIU;yrH-n*>}>lr09KC6Csi%THl_64o+;(2yFszLz2}g(pb&5O0sMO++fJX z*GWu~Z4T*7qI3JE>N}f!>ie~1+P)VdyC7Sq_p!4Fx<6iYBnSP=x&Dm7r=&Ee_ z%+3I=3?BA54P7Us0!*sKp~N=A!wqP}6s&;nY9@hMp3&mv!3su;#)ZUJE+@XSXx8b2TpC?f*X06-6kasse2$c4T*A8RX##>B40q*M~ zxeW?+0G6z!bjH(TF8OLYFS^Z>5c-M=lS!xK8V2}vIS|hF2h9Wlr-4%$U*tEbkMntR zwrl7%?#la^lLZ1va+rVm7y}$}w09xty@7;Tc0OVfM;7#~&oby4Kk|-`#C%S|p^YlG zrA*lFWKIEqf5$Pwc`UZAUKg>9!Tl$^?xGAOg|7`F(N8usM%XtLxQnurGSZSvLAdWT z;+vk;I3bD~E1h8Ee!f&dp(G?hkV&-^$gPXIZvsTa#7YDMkKTEcv;&k>Y4SMLSDk>O zD`DTJ^!%$Lw!k?)0fFdrTtrmkW-`K>|$7iZ0 zBT6KN0dbT1&5~sEq!tb|^4Kv$cJGz#pJ>;KrSH11U^C^RBuZ&gWqfkr zl`$(QaZ*?G>Y?{C95$lF8X{X{O;6!SRRtgE23`TPd!ili)n>104W(Sh&{&}~p!u~F zrYgq4D2#oR5AN_o+u>utOSBnho{I`ekViWpVvO&+6NV#@amOaHC=@kuR0Y`V6|V55 zP`87@Q!R!#p7%K9qKMrUbAF}BNlT*$DXvmNFQPpeUI5C3cnk{lfPc*Z8n|!a0vWQ} zg$)x^*#h1zjI$^abT-~PQ~AuYWD_Thh4^6O3kL4yhzg_e@38Dy>I#sW$vaV5nJHZP zxO%eeUM6`2_A+D-!G71PUqr+~Cz*|0B_o~VNa7vK;_D(=>+*(NmC&TYcmOJKGDxNO z<_%J>Xu0ZA4v`E&%}6SeprDBwEXkAR4rj8cY_R5G7x~IL;tZn6)sBGYi&Kqa9a5(? z>N^LG!&Wzhp^eVHkT@B|du!U!A0=4a0F z*F$|PiSkdDkFqEbuug*y(L04wFCK$F0`;>(vNmXXLKsH7suS9WcR1_gevjFC$4m=1 zYj%2WbjQzk(XZ44dL5OQF;TEii7sL27t$nGiVGOJ+|(K;9Hdp=PvwLJ%FL^XlQ<=q^K9#Gh0Y(-63Qm1WO^?q~VaP zeBwPAo_ZA}0%@aj_-IlbP*kByDbtIZur;C#(1dxP4&aV@rxt*P4@Yc&1vD*0dTUR#Qq;|3qN?i*z!xP2kmrA6Y@E z6Q?ogVAgG?IT;Swx>oH^_9$j^jTlbqKv>k|AbLG&1jzO9D!^WHrGj*k0B-}&^p!AO zH7@8~aky=quaq}zzG6CU*l#0qcWSp4K}F)zbgVv`4w(F8N=86-I-&I32HR^nbAISJ zKKC(CsUosOioFT=;z8+v^h$um*GnXnCo{B~cncYVs zz^w(`<3gBG@w>T)S%70x2(2*nPG!hx>W(X=7I|bOGPQ{xNV`h`?TlSDI$12ISxXb5 zyzg8*ft-+}ToEeIMzkYN32!e&QZ%M;AXr#1n~g5FCj0F+J8(lVAjHjysb^aP9%Ix% zy`w89)fG|Ca#h_fghAb-HEn6V)*aJA6`bFaEsmAQJT(C*7{xJdNZJT^dov;7418U> z*sYJ32aV3Ke4$&-=Si?HrQ5yySpGT|CWJZway=IDH^M7XZd2 zoY`t&;dY}ta&JBnmpB#nm(x*euW6tMjeJlt)&eZ(d;`LuXkdezPe4Vy6F1y+;|;V5 zZo2U_v5YWb3d5Vr<%KpbGFQsYpyU(}TN=7NbYk~lnwFg&7KGV%$NVva6H>dt{S<6< zcG+U>x;-Xd%a_V@<#P~?}`M+P32$O)za6VDuYOTqg~ zu7b1=1zsjBN*2SM7zKv{r=(xtD11H04-RDg;=RT79k=NocRVYJ-N+fAMCs0_Fu+!$ z{L$AY(hh+S%T;{t^9@dJJ#?TGtD$I?EN zFcz5nlCo0L4>5r(ARQ%`Xv;oA+7sUS_S@wc)X(i zI$UO|V@vwHbhMs5@-+wBhT}&ZL3z6h>cf)1g3C;3^S^O6!p_Knr%r8|BFtT8Y>qhS zBbc05JSJx{OAjTpG-7~6j6od{Q3z5Dwm)o3PMzEBxzV`UEwfb={-E3n7AItf4N#K-u@Whj?km*qxL$0^**TK|`jj_S+`!!EDB& z;E+~p^Vwb3l)F4>cagTy407h#JIAPqagL_clizZqt)v}wJxiN8N(9*Hn0MDR3Re#F z*9p?65cLI)aBd8TjjI8o2QI0JJ-I0r?8f zgi`W{N!~j^7UpwCO|m{Nay_wpM@{4sF~j!`zM_t5>;zE=z~f%9nPGk~YdM>Qld{8- zS*F@JNl9F3M_4uyOAgUtNZU7`lVrJY8gU^SaVl+it32duH}Wt|OOAa97hPcWe1Z@!AGX{p4qkL=G=P#H>`&(%@f%-l7I$qW9F4$vDi24|9}bu% zsS1!ZJcm&uA%xl<*r`r#&2aX!WBL-lL{@1gnax2}*x>$ZCUt)m9A`3eN8$!cMM(0x zo7tj#NSwRfs|sz8;>buRb?A^w{sFG1j+g+)v@k5}nnl=2V&g(r;{Hp$2lO4ejQXao zAtsZaIfoQiwwPk%72CFa3C%_TNbJkgDkavv@(RvkQ*^URRAv`8v-?Xl`!-x6H#G_% zxPF`bOCcw$bceu_W0~-jYn=kl{DyYu~{zU%!27wl|)_OR=iB zC{X%}azNhGX4fs54p2ie8xgu|%KSAM7g2U&$IIm~J7LX!GCk@6rL)p1X&LHjtvgJ~ z%Br%+nq4WeW|vnrJ6Wrvyy)2*cU5RbHs%H|CFbmMk2AQgPAwU#ywBeMN4jOKZk|nb zC37x=bCu_FdsU;jo0;^GEaju}i7J<*HbDjhyEC2l!4FBywQfS6qPMaclmzDD@EcVunUcTUanjEztQ z_(r=)Oc0&LOO6A#cPNl%i}HF<-W|FOW>D?IuH*Y1nIQyc!2B#{U+dnS^m?E;ja<-( zGRLcgZ&I(+qu(IbWr-CUIN{|;cWxWaxo8!n#5uv6!(^-w*~XG|<_w~IMeGwBq#UGQ z&EXtVxw=w6VA4#4CKDhww*c6!mQ}B;sIwLE;CZhA7gl?!dx_L_QKKW%!-qlKnmn%2 z?escSaJcFDbF!SrdG7v(0>e(fjZx1O5q(wWFl8p-(TsFhpXTxP!^}fOK28!?rNmGG;p0H1U+&sH{+w%`;v-Cb{xBlbF(N=8REaVg5d^W7Ol_{aiV^T3buwo+FvTrx$^R78VP~f)X3Zz|m1{KoGsi6;DT5~qs2&7MS;u;^TOvzIw~xHF zj(?)%?qk)_jUyK@*4APQnFeG;g7*r8Gwcj;udo4VCQ+)hV3j(?EQu&c-@MW%GMEIJ zb=?(TlYlyIOy6w^(CFH1-NjMZ%t~fxCYdu5+%=VjX*ynH6O+GYJm#1EwdkL4jp071 z1zPkkqjnn;(2hUjvoDRD1Qvt4NTFl2DduB;)47pEg;_=x8T7;?3l;G=>~wyrP&+hY zr4u-O7I;qs7%xKRMXA%vvO1kff|#K|8E#c-_IrcIP=>G1C_sKPZGik_R-|;UV1h+O zrm=93z1c)g=4BQh%OpXQ^p5o{kz*#}xrQ=BVSxOT;eX1Q+#tw^V6%fr=8*i%-c8>M z&r=#o)*yMPB#;fd=;W^Z1i%>boZNxJj{JDIo2nqjl@1~goTFQQ2-x*aY-R^zO|7}< z=@h$~Mke`4-RxRQFA2^*^D7?3qj*enm_^1Z;2}FfRungqyuVu9Evbin!%k}n{1csU zlxhFcysBwZsybUsmm~#n@j;(^@D%UJ3?qaAX`fOr43_V@kTC7QpfdAG_VLUa;+03% zy`qGcbI@rKQTSAGX3IIZRXMZ17-DUicBAy&n$bd~W%HEFAu1sv(Wzc<`x^Tx8m z68f@)8EN6r#RC8{Evq^P9@t+;Y^d1GdP{ufTUSd$U3ID)aXb%?XgMb4pXA67KUdaxqFXx0^>NWJVCt`2M7vKy~Cfs$;sG1kbJK>~S^U*}Hpeww$xN z)YiQ6Uv@1kvxAQ|wUm=EdQpYan%fIhUns>Y7k$jBMh7@NB--PV_TK%5W z;6-BnX&N{7Qxl(WPEivud*(|*IyP~(3SNKs{`e4u04(H^AStquAQT9+6z)TyA)Nvi zq7VnBMo5_baWlqAkbiOX+@-ABNTl8=5%I8yWWLPnMhZ(4Qgbm`X%-R?v?f`T&vH2R zCS&fS>`fsQioXjjm#Uj&OT*vsTfgAaX<0>GvNVN8ip5W{A*T2w8Q#b5}uY0OCe3i5@=k8h*<-6-uJp|ivPW*GBKb~bbcb_^`+=_7Kj{~*Cwu?M zx0c?v9St$i>+n>HmTff6UT(VYEPj;qko{Daqa!VG}S;bo}|? zow9?4Xl(F+(;ue1{oAfEgwp^&Tg1AJkC{QW7RhgRJcu3jb8s+Ufw64_4h7aT(L7NEkKEvqD7hGdh81s z#OvplZ4OaFF)8r{>FtQjTNW{&eJ-Q2@L_`QHxs6`TgobLU;SDwU)N0k&?Vk6lvKr; z#vx8J{(R7>3{M|<|3FWqz+jO`wu_@GO2v8fN$;~qZ`dk`k)?z4*E3@xKO;U+GxuNk z^d(hJ?zxlUc1iGZjy?D5U!_zO6MH=FOoI4$cbn4o=WPu=HZNZn@6W$Jy}!=Hb7fGZ zn1Fo_CzDE_jht3&;LMo?Kc$dna=22`{a?Bx1Qc70>w}aXKXZ6o^4MI=H1@~DPaQJ# zP3fNlRL(Q#20hI~9QRo2?hhY38`WntI$E<58UVRv!sP=P%Ng9B>2aRS&??iejR%Lb zOSK=1Ki|sKQ+@S3lYD3&IyA14^GuM!tU;82v_dJoS61uZX^u*o4Q!s9-Qairz$EfZ zB!3q5z*F{i@a1 zWSEhuE%!1PxS3&Ae}P)iy#ybJ!Wk0h(eGLYxW)tGqe5xMzBAzo>z&E<*@o;Z4y{L} zYm3b|mg}Lz4fvCny7mb7J8}lsN8Yl>geb8+5|<)KH2sKAJ}UkFmB&Vuu9#Zd+nV1F z!GF3lD@)6qU7wbUQ9bXYR0z0;*ksneEtEPliT zxh=g~vfBq~DcqKxV@zzuRKQ=~Co0}G6g(?f%Z$c&O4`CWkngBPkB+>RSKj*A=&aN5 z-=*{Cb14s9(qBXdg?P+P#&4dvs+4h9JZ@Dh_tPVM5^QCE%cF7K=LX(?Y*5MZl)&T5 z%A?KIOc8-M`=rN*k9GbwM1IWKY*Pmwy>D4<_-4Rt#wOOQZg8H@1-ae{<;x4PU#QzS zN!Wb)ml9&we;ps*VXz4wIgc_gt2-6Vy=~G}CJ=qdCE{ z>nUkv6o=OhldWE|{87&_NawK;Vvb!?tlKz3?qRm!J5jmc3BvI9Bbn@RjYoaoHM6g% zTa2WwZK6jGEYGB~@b=HnoXIq3yDCl5;v6z=tseeY#O$9r3PhFWh3yYxux|$bmbXrS zD0>+oYh6Rl_r@AwwA=RKUi03ow?X#nb6$csW}HQR-Fd&{wlx~gQymx1Q!i}G(z=t( zn31J3-~B;Ky{?*p{z(EvX_e~}Z)3Q#^+k^#f6b6vL#Dm^Q#1TP{9$*DA|(^=XMeeJ z5!RfDJ%718TCvZ9pB>^Dh`sNpdAkl$fBS0~)YyK}FX`f2rREz$Jm($MN4%Rn!D%mK z7T)-J&v9x}ShDk@-FJQs+i0rjdqM1`!kW>4jQTV7_ps8_E-sKkZ~gvHX@rZ|qfCfb zXnoXUeZ$A9FTm{SkI_#>Eu%18QhFPGPpF1Rb@GymQ(bxd%c%MP&(mjskH zI698erkfjco@SRmT6Yn9aN70po`d;suW|kEJ;v3-oE8HTqN1Pga*eKQ@)FG=&Fe<*#ff z`NRuFWgG3)23CGMYo0Mss1h$K5D|a<+d^MEwbH2l{;BG1 zQ1~{G@mKJZN^ODzF6G^76J@!mEp7EBNrTU75hoXOVJ8_5*~OW}phc<+W*y z52wLz4O>6#>qy}V9VY2aPC4X=9yS)=8Q4cDXiE?9cF(8X{Q6LkWT$a&cvPUA+A)7L z`#}v8{TZp`dS}n;d>*${*j1zvDA?Zrvx`{48}eSCg&1WOJUKg#QIHG&6NNE>{@^Y2 z?_6bo-tf>&kV=?SIMqPd3pb^}C_31?t=Qh4%I{ygeiWwk6VkNThX#O5MLC7D2yWx; zSCh{F#WWnd%vZDr7=T=KKz}oV<%Hqkd!+iTC68;v-TWuQ@J0B$HH=q=?XN@|pztO|5wbe+K4xuQ8?V-Gh_kd;_APf(%FKcF6Q z96M0w2xpBx3uepg)@E&DVXhN6_8SbTSl!Sgd7%kG-+HC}b36KNm5l6Al@*TsHyWU> zB$v_FlABGh`F>-{Dc}jYJUNRWvHhpbK*JRF_3|hD(QsXQxv8{aR@uf!xUlIa7$*OwiLMT9 z;&z2CxU!k)p@SgpP+7|gS4G8wa`SgLt)bm*XI0EIJ+u()-godRfs_iC_45J(Xp3@o z13{?ZCblSF^PogHjT^M2xlC!M<~@qk93@+g7H|W^!M9MwA$TpVHbDX{AKXrUBLL2D zizY;$Im*!-H6P{#igvef1t`3Q^uB2tTRwJyyEY-<%NR#DtfecfC@q|`zS_oOpd|** z-XdJ^1D@N25Uxk#x9H0EBKr`Jszag{d(>T_32MzW5%XE7KJM1@*<0N7SM{vad(Ha(d9>uz$aZdli??rQy`ImrCw;)+Q~Zh(9UD+2rg0vbZ-)}amESTEtl-DHs3enj^2u`^tt z3E^vw(y2y2s760-0SzGjLfKbfHYla#p8F6GN~an9W6>O1)}lMN;uzez(!&60wLvYO z=tHcB5D%6yx^94E_#l`H&eJ0C9~&657H|SQqsPQu*A>oP?d}REw?nDA0jis8F$#C@ zUV?vMu>%M@pZrCIqlGrBdYpmqdz6qH>&4S%w7HvgESwM`+5#wQ2ByFPHmDD6x~viK zBy)>da|_qQ<>U9L!&)N>fFkIrq(6Rzz8_> zJ?aN5HN2!A9lqFe8Z(b*Hb+_4quE-3h0RjkuidN6gJ>XGI7rnYj4gmDIIIpW*OCP^ zZ4w?tn7TrXn@^TjfD0?o0M6sjZh*38-8+irkmSW0yP!vq+93pE9gd?=16R-`Pjkr2 z7AymV+yxGGfk%YCZCbKLwVI>)Sq&lJUPQ*S6>`fZ$lR3`MO7Ta)FR~!uUW*o3rBwS zGA4CVVROR8qSucG0{w&dT#wFNR5%uNL0P(i<8Ofm?pP)W_%{ODg!tC_6Nj+d(3QX( z^|U%9Wl`bU-NmBc@1X@Fq;c75e#K*9v6(fO@g!S7KFZh!=L82AUgezE5%WXT3)XpXvHjc!_0xU5)c34^n= z)XuK3_994^F%m7HUWE5@C<}xD{rH&I4NDJ6d5;4A7xHR=supNfv&Z5JHX80>hZK8*9TROV$;LF(1>X38c_0Zofaqc7#&T6!NHJYIst?dRRfdFP!EY|o}Eb8TJ z|BI0672qJkx-R4&uESY^J0k@22Z8;A06M{;PVl}p?v)rjl)W1$96n(lWaf%&Mr758 zu(p7vSEgLxz9+^IM<+OLVA*Q<*%j;Gi2UWAb9on3?lOkK}wNxU_|| zI;3+k^o=X_4GzdyaR^rn4gf>7yG>^d9Ov8IW(4yxMy>_;vl)7&FcT`(;xV&=bcJL4 z5nIa&cet}Dnaxo#=0OmYN@pb8xf(4|jsCtEYVL}qfC$?Jp=;w2f0hdtRB?Vxw3aEU(RUHbfU0f99Ep}= z2rNvjoDP7oSAzhNE5Q8ix|%kcys_s(R|`$vDikt4k0m_JCnr+ayISO|hDsm+qq3g8 z^H?X>k!9?MMKJx~Rp6oMVw|=_VGT@ z;SIJCFGS>kyaj`SUSiZ5vF{weBZq9TuMUBd2(a#<@Y%`fPz)yU82&_jnc4jFK1Dw4D z1?JOZV|G-gJ{$ps5MXMQbxqO~70{3wL}%$3s?#xL0LTw_G%fZcnChe-Sf0S*U6FrKIfYP?A%vpul4e@SwU0oKesNbma$2D zt!$zvENE-)3W`mp>p zWOeOZC^Bv-0W;NQ5CRps@gBQ6Z5=XW6(0u9T}^?ljt&8RA?Qy>;KRUcDgWcHL~GW} z3uq$prqmC_+K&OxZDTF!tO0bmcBm1sN#S=VweC0IlsXKo?ueo(AHYN%do56tpfg z-l6%9pua=UTSH_J*cXV5HMN78+OCzmZcTE!r3~w^8sJvn#1^88TnY-iRg3iu8uT6r z*^>^ycV(SA?m#gfbcF13_9N3n()uv82*bS8TWBQO{^XY(_5};Wxm61FlA&C*&TZAQ zu4l1FKgPO0^t{6IH^xz3<1z!3w2RKI2OSw6V7t|_L9p7>z=omy+u0Hoz{b5jnW_}p zt$>zix7a=CtPTQ9vMnNrGmC;yD*iyPterD zg}(kzQ6nekrbk$zql#<7k+T0V6{)jcQzJ6KF+E6NaQhzb%k1NeBi?uzmhS+7k_OX( z_-c3o_mhBI0?L3J&3(*gfchoybte{r1H2(+i*?+HZ3xG{!`ffm-o^9gB2TJuy!4&? z!GH%t<7?-T3OD>XzFIHyI&rSx4}=EQV|l8vt#zQguC+k_pL@K(m-}I^x>V@M2gNXO zB6?f50(O(4`y!=JH~JC`bAHca?MVr`2%NzZ_yc=$r_opc(8~T|*&f3e-T9{1Nudaa|^SOBIBsMi|O11fzEw2d*NKvPo#ABi=j$_+hIJ;D&Pq4=aZ- zWQwc7w!&gV&zI)f+!ahN4fDdbF9Zr)7lA#<_FWi|b1i0*(+6}2ey02}_-k9i9r7|S z<=SONH&j1xlJuy;|BU|#%Y_>!194)fvx&KN_5}mUP(*afhuhiKoVP?ERb&7Qf=VZ5 z?a%@|*rf|dMn`&E4&XMLvfUD$AUTe(=106>$yJy(&O2VS$bwML0=2f2p8F_kuabZ~ zFllW?o6HDA*A@$t2tY|l#fA3LP}hND(2+~ScEGIw|6`}Eiy9bFJMzuEfI=*qwfB(! zSn1*#yKz<9Ndu*8MMr$3U80ld-jqDz4JMf|AxH5~DxPnbwXV0HZXF;ME{!i_fw$G0 zfxSVqZTY>S@fkC>cOP*wq@Ea%Z{3hCT)R>|!lps`uc)VZx;JZ;w(qVqukTKbhipku zL`bEr(*y2{cH9M?Zkz0F4KAE}OHwON;$-9q&hofX9ceEBu!U3%Yai-K!M8y;c|B+| zl&&7gopL(@)Q2K{aX-^auVVcj8gD&=2I+}RolHDz>?r>bG8Q!P4rlLw3%ZbAq?+a zNl-va6w#8(5-?O{x!P#rV~9V|4*6i*S~9x!S@zE9OO4&DQ~j=jQ&G?$Mz=aXH2&qx zMc%s?hh;&oyC`sg_P?0TI9MIl(Sr^h`GN<%P1PE+JTrw8w@}*lE9A|4YwVedW$OU>P`?r zrSNYM1Iwp9X^!&y@DNp-N4sRbh*+}DlRV_rMVZU#p52$K!(O{8UB1FClD?@Hfb+aX z5i;pHK$Gkk9e7QZs34B#YU^kVc!{DX{nqcNd(neObyl% zr+uD$HIM=>|9vI(l;61A$JpT{!F>g0{Es1uEH#f}Ru831AR!9W$X~;o#~=@TS&t=J z2{?<>zVOCSS?ONCGbe|+Hzi1P?tg7DBLj~jd_``+ts5bPtO(RH_OkK%jt}{VGe@N~#s*u^dq zEwUE#Y1=vpE%kLEq`)U(59{!6sbUnTO`=)pE>heus&>~VILR2xE`2+Gb#tL~APb~H z08L+J0hv)mpfihQ5EvI%F`9?lEI4dbt1voT9^P%LWo?PNT|mwIUQ-@bbg|5Wc$dM& za3s<_dkJ>pk-f8q9Sj{!D1_a`yI+J@H3`=6G8vJg06l`chXf}^SKl_1+X_C3a@F>* zqKH_PL#u&L&dyq19OrMZK)k3chKm`87DFGa>Gn*E5ki>^8**KcCVJ8=vZO{wDscoz_lAxV6o#CU;n4G+2bq4(nW~)o93L{%sshN# zS~S9GOXkuFkburyQt>(h+W|IqMnb_?LKpr$r$V0cJ280!7?`D)wRK0N-wOr3ZxpWm$(3#e6 zkia`ly_4BH`l;YJGk{zKxtjU2IkYu2-08Ls9IyaoYYw=3n<7IjtassOZeX4X_ zwhpe`tB{M~K>$e*K&?i@P(~DgN>e=U*4^Nu-O{DdDh8I8fQCYzYyr2@_ptN|SjZ`E zZkP2d(C<(S2-vzi#xE7obJ7<&N>_GusIDg<`5QF)_6n*S0BVwvM!>j{SpJ_K#OPb1jv$@Q9wIzcOIQ=bOgM1eE@wtj;vj z80FAlU}Xze8wL*&SLZfssl$o5zltb`o2K{7zvw6+nqsM#D-(eU}J|Nz) zT9-tNcl(2_yU?4wjva6=Lqi{q&Il7MO-Z2wLr;E&@tItWlPk&GPO+o!uAdB=WoO0ZD&J_*^xV=&?caQB z&%Hdk8k;8DY|;1d9*pufn~CXyEVN=RJ^^mkHl(}esdi$61{XSE+ly zCF>x@@*u&Brq*kIsTE9wL&$cX0VdzsJ4r%!Iaxp_X&`J_-I~W0q&u-Cs_j?$d}=^5 zCQux+^bmk63(&;5c)<$FxJepX552TgYv0{xMt21>9;<(PvArlfSD-1i{(&*KH4dG zkG*B&Q~M`VKw|Q*7&K%8rfGM-qquVIc zE|_FK151`!75I~v>huLP95o|Mzcg|P?}>R@I<9 zqeke{3Y^T%W-zmDnwik5J*DG_^C}w5jes7;Vc^(rVfFV3|2gXPW4D|?@4pmG{qj^T zRB#a@|HZn4VwAj_d2c*uJ0SQ7ej5;scWmMrSR0_$d)K3cGqroudZO8em0Ay_0bNjM z+Wn(y%Ie7ST!QqmXO0 z!n=%5*st;L)~51E%I9bRwr2ChkPtYrk&h_CK9=CUr=bge<^2xR8aeo{4I(c zOt6hNFu7@aQzEu{oe}BRld6ZQohBQ!Rzweyus+#&hN(up>h00t0}3=noE1#3-Nq5n zcXu>2kieu@0$8I^M!^Hddd@K5%tF@teO^v>mnSh6fwhxYn zq*dQ&p7`qtn}ot&qrJfokak`7gQ0W^_&x?jy=sC$Uu#FWRs!v{r zQ0P|JFviK(@ZSmWMgiT9NI98HnVOR0Sa}UJ2tHoqJi@erY_JqF*d?$*Ciwnh-)hPp z1gocbBUP9WMg?Sp?pXIyT(a_lzF23ENTuCh2om}^&_k_l`NGA5~mHBXRt z4jyfG463dW-~H~xrqmGk93c{`6*zfoh!}lCrZfwKH2io}V@ynoR*y2F$g_5byy(o% z!F|HKd(E7C=&9@BBGLJv;Ua&+FNu#$*CmdByN_mSbmbtc^{ZcZjF-fA3C+x!7nh*Q z$py0YZEMm2;i;xk-{#8DT9r@WIx5~u&5}mBn%D0Gqm4bt)Ta<#yXD#~Ip`L<&QmK_ zjHsOs)kCVD9OA7XlB?SK(sQdv=Roo>v680-2g&lZQ0Edx21a5z)QzRnl>JetYKPDm} z_J-PfPES}+M)vi)mB& zMWyMp^6le~4!;Uq-RH3o!%EFix`;1YzCo$;O^u9ayy=o+lxvo8gt0D*e1}7I#??)f zo$>N;(&6)pE*YDIR;7Oqz>E)b=71hT@{*V1jK7bJhi7wj##ud{8}BX8smp3SpKC3h_t%__*De4t31;UYGAGcGF4G!F&UN}J1lrd(uRM~imc$SSpD z={$<~_N~fjLWecM`l*Ub3=oS+7@8oX0E=5eLV9AnAxd(|C$j$6r!19?W#< z12olAdHdJXtx~bv+K-tDB(kG^9sI`5^9!)?@VnC-DQAT_9BDCi4%1IOkyU(4Tk5zl z=vQG^VUJ(Pi|~}~{OI{p$5C)NEH9m2RG{MZ_q(00(y||C70M3KymCfk9tXh{i%?k^ zN}^v2MwH9&*3N2&%zFl2zs1>`f)ZcErYgmtf4TWO3$y8y+kKV@#&^u62XXXh+6x(c zBa}}QNifNu&M(MTrZheE+J`F5_Of(7urHe@dq`GtOo63B85IC#1lo8WW zAUA*YPpKRJm!(V!txYhrVs5rU+W+Y6Rl@$IZ%W@ikq%sUa-Gkrw!W@uiAFn1@7pG* zW~<7!vy#ehB+Pcj8~&DTn>abDM-|K$s1ED5Lqd2Dh6sQ%Mk~5ZFV$Fz)zd6%sBOvl z+z%27dsg4*9_EP^ZJgN>PR?^>tG&^vfZ=sZi4l{rLp2thjj0y+e$P@T{6vyG!O*7ui~o0-M8FRc``1+@XUgpRu5vP-z0AF zHZazG4*#X*ZC`$2Lip?rhT>e{Lj*k=Fc2-Hl12kQUCc%}Z#PaNx*}UWt znW1&VOjBT$PYm+?%V*%h@HowoAgTE*SeAA<_d_2~j)Y3;L9|!CEx8^U!Gq3FFy5gU`Qyb7uruzG&^H1cv;Np>D%-Ar5e=yh;cOb zNk{Li6JBkJBg#MQC*t|;FU#c($c$Sa?k9!i?EYrqlFcry`PI*WW`Cy)8_=OG*CQv3 z#e12@FQ83XzZP-Z`GS5$l!jmGBPqf7ATyJ^K)_<#nvRXuBX`p0<#W|-ey%X=n0jV8 zKZ6O+0-BrJOQDC(1XigyZO{;$%hqAf!iUoK)Aw?Wsjb}C8LJQ1_x=@&=jqZ3_{3mP zqa8S5n;02$QrQLcIh6r2?6R|(k%_+8PUUc`{d-wm(EEJL*4S>DQ9+|xu+w*N)^j&~ z!c9hy|1(R~-#izrv6uqm%{cTbc=yCrqJ1zSr(@s#axW!!Z>9tB&%8@$!*}@^z?yp>XhTpQ5lMS>vA+6q?-1&*fqpCf$s@{W5a1D2|n- zsNQ9W`l^4k5~=$&BO%Wa(YIrrO0bHb!MAxVKp`0S(k72@-3ERCwC88YU(Yt?zlB=5 zjTAN%c*TMN4Ctqn5cZMryPn6;mY%4#}nxK#%Y4eC?_2Iu9pfRqg3LqxBJP z2%$Ii552TcY4{oTu0T#7s-p*`7)Z z>*k@dAe_=S&ia}vDcO^1_>rn7KQn#Pq?1p({-sN%`gDm2)g?*dk%&m|t%%&j2X3W2 zXJV0vMA(R=FCkC-@mmb*IYmKwqo>?{{4qV%gv9f0drKyT+3OB?|DL5glliB(zkCC(^AD`- z&P@AcU*|gXNF?y;=9`-EuV`)i-h7c7{r#6}L0cdXG0+miBBAZnk=Zn>No2ksF|3o# zL-5+GkN;C+cABok~Pwq0T@-C$ai@`>G5oEy|vQ|o4$#tWCk)JH+ z3zzWZUG`mcZSIq8+n2jhFc&@}87cn$&Ka5t_|6@?N!mwkrxTOclRv2+*)mUgRIX~2 zLFF^{rseml>UJ5Sh>vWR)KfwCX1A$?H~0c%eGz`l6~$j}#}2AAotPkg&iQ)3w=2x2 zvKkg1(w!Fz9}Rpj{wq2iAxP!@^-qSZzVQ%6wLlvWdwa4g{Mn?V*}0{{f!sjl1@#6@ z_+9%&`Xe*gtFLaJq%Y?WC7qx~RwH?@qP?9U!R}-b2ud?zg042LhG$+nS2mH!IgKVN>eN2Uf}u@di5fmj zrT19c$$5Wt=TuZXW=N>G!7TP18r=7*kU;PLdBU@(db{VEpx|^OacLwO*PmRHYjuZ^ zXes6yi}4LvdKDsXg>rR@zXy?m00h~t*8D~6c>zU~o3u&QyPC$Uz4Fptz4SjuIjg}4 z<4I*PIs7G-LB)GX9qd;Qs7SQ58u5ivyvg<+59#9$Q6s}8qw$@N>}O9&Xh#TXm&6l% z>pDLEFjpAOF8^^c{$u}CPD{B#rFGk2>H9+iiWt#abs{g*wYI`H_=d{&yeg(S=Qf0nhnjL4zQ`x(+sx=s=Xkg04K)Dyo-ez@=Jz};%F_kuc)g_$zAP)~ zSZ{azs1+-sq;0tSqeghbKG*-2mz|VNEJoX6wMl==KPTULMk}CtU%GJ(J|$xQDkr3x zQGGo5n>IC)VN~*Z9v#eX1y%*PixGkY3X6yie zDy}Bx7tVhrb}65Y*+?^kAbcMs$Z?5}czwMe;8|=d$Z?{_xk-8+=q&18HdIMxYs<8E zo>2HIM<#eXVal#9M(yGF4+Z9cO=X(i;Bi$E)=Qp_=LRaXV$x5T{meYY%Aob%pLIzL zg7kVsJ{?1fp@d!orFA#YzVx9~_R6TMAO69PF@KT#)Eu@aC*P|LeL1zRMXcKQ%& z=YLYmiR+(>Gtm8*A@)}A^G9vte&EYQM1QhxPph=jjC)4%%RTk-`wy2|EVXnQiTWsG z1h*BI4OyP31b%1Q|I^$?K}G0ZWYKT58?L(hMIoO|1BB4U?TTi7!cA?Ue_;A%?Q5z) zHra!+dXI=AsE^c^jl!RfL}+X?C5J7o`oAz=%dUsW%-v6K&8pggKHzpdE9DTa04OKp z&z-sw&cPMDhjHIiatso`P-}(ADY_96g#kuN#`=qR=}r9M2-B426(r^0?QhexYCq6DP4V&K*E4R$gG#4R1MZPro#-X+zDKB7?~6M42#$=8kBca%}ec-aw_r`XP3mBgrU zhcTtyz-(0;0hVk|mg;=L*BwdxFfCISva+xDxAwLh$ViHxA`PAiRjS$#w!OS~E|o*< zo+eG8M+_aIjlWsjloh{q@B^^Cwhj2T7aln*1{L@H&>tRyk-m?CT&$ZRzTW_iK?N|*RW+Af;aU?nGZLn@!SPgv!1$+Eb1`o4Q8dt*)9 zx%&IFn>;S!UhS4`)yB`g0P@o~Vg5rC9$p=oK9PL3BrC zM|w5$IYWA1q$^mfC1o%Rv^bdkthh774!+ZbnKvEgq@|7^z;}Ht=ao)-xwrN9kpK%) z0lMLUZ$q^LO}wDoCX{?Um?yWsEuOE6{*l5g>4sltE5W1h>@m#d`JjZX`bBB8uPTwO znZOsgZN(SqwucoW17r{Go$iq>vZnTmd=sg(al7pboreitkB4o`8C(fD&y);3Rf_^q zH7aYGJ|QUOVtxN4y9Y1@x1iU(uim!I`0m?=BH6Tmp`+-=<6QMK_X*;islhz8EW8M< zMhLQ7KV^e!-8p=QGx@RR;Z@*RnumvsJNN~cL>+d}w@#~hjO?4ZU7-1s2VV^a?`kH# zn{muQqFJ6J_`b{8@>10KF6pcime8wH|A-*#H1XpIZk0&1{lP`=GI|JWTFO!*=Ud<7 zrzDiJ>nnpZu3F7^J~%(pddTnWK6hw#5M+PvAu|!(G?OZm;Os!wD_LJIL7Q-Hy+_4) zyygKzM)YHja(R}PmGMeTL|f=qv}!W7ed3el zWBL6CL$XX-$foC)LFUWR*hk$Ok>tCHjb_g#>{AE-l==M9gb5gd)9jlw`6Ry!gbB~! z>r{-J*iyd>tb5uMt!Pq7_*-a)AEp*k>vURT3eKw`iejUag+|K0n4ILg;n9M<;h;?L zi?o&Vk_izjZ|ZC8E*JIVKhh_*mZI7@9Nl?tC#Ta7`Bq{~ar}Y|Q2pe?i*I|oQ8xa! ze1BjOoTEF1Uw_9t*`MsACld-qCFj0!O`KS4X%s(vp+)=PMXBx4!%^EDN7}r<9&%I( z)OAr)bX#LPks?gbAdB>rUqQTD+*(VPu9_K%TQ<*v(zo~%57^Tl;OA}LfAUJi?2ak1 zto`-Lwmp0FOkoqKAxEdxgLfz>7Jug;d{t4TKC{(QJDK$l{gCsYgoC~ySZd>Vze?VZ zb(!yD+J_TDLsg;?{t_P&r}RsK)uviQQE#+{oEfN0R@UgRBn%aw@%jiP0kYHYl)tMc z-WT}vHEz|Lxe=o+b^-b|XVb9Y>thoZH`QxRojLiPt{d92D(%4MxCu9q!9PfwHZsfz zQ{ZP0slAIwX~>t$S9OIdml^dlXdV_76sU)TLgnn$dT&gGhWwOOT4xrV2F5-Vk5imz zF@9+E51esIyz|L-bLg&lW@dJ^rU|{;yp#J_jh@!NTQ_FS5Jh z@F*7xxtK&ZC42}3JGd8a7V&DefxJ2Rc7 z_d#We2~#3Zg$$>jDdoLsXz$eA%L{lwYc~qze3{{?`R=~6HF(;+5& z`FUM=Q9I^C=1hBFc|p@a?>Kh_DSu&PZjwklx=~(b_T>U#EONmJ0@3%_d9MbhzvSciZbDa%pfE{iw^v&XhaQV)d~o;!Q>VMexGQ zeNBZ38VH#@EwcmTBMF#Nid=HO6y!7hERVSMp#2`MdDD8|DUoIUIUeDodo#Df zTIR4ZYgPIbrI>6cGM+6WVeXA$IWY61&9uJPJ73;U`N{XrEI;k8Tw^HxqLN?NOq~;0 z;z`|plV|Ac;HfdCT~?OxZ*#tNA5XQ+R@Z^>r)oE4aXb1xg@WUUIHML9TpJ2H`hVoV zy1zsywaPu7ED7FK0Z!r1 z-rZYBg4fK2y0^aD04;wq`U&q=sOGQf5$Gv$UA3Fu*dtH`d%IVRe2fG~CtFvZ!+SBm zK9cRR_H=7vPo@n5=e~?h7zHKxEX%00tbDwVYgu!-Pn>ZoLz$FTekh4lX1taPacEp} zH(GwtZ>KWGSYT4w@<_h?py&f)5W!R3YaAQH`qvHL+TE=UK^FRcm*y@P+;L6yGv)Ro z;}RLOccOB7^MdO9>gy;viw{(FiTryK;_>AQl$~0u3w~oM9DQP4IA1#l9pjk79;6H} z#U!1!Q>ERS^j;A*C0%{SePSZd1@KS|z%*YXgVHd->xA>GQ*JM;ut815-U(Lq0JuAL zepRorj7<I8dle(2`q<#nV_$c5$(ik$xnT00LwBB^Gt=CaBF*ewk-Csv&O-AQ)l ziOJ9fGV>OA){szI<((D`zP%gT7l!<7Q_ux(idd=)2z*5?+@P4y=$SWY_IXxC^sgJN zhRQheA~fo@Q;&6jnp;EOlAzV3A7zKGt|IF*ng>d6-B_C(n2<3?SN*WYZd~3%4GvfX z;I?h?x8N!{Z0h+9ps;%V#z-H_@B?U}ipGY+1je|20GkaIiY$c-V&~o>F1B#rRsqUu zQvky1Kd|{K`q;VJPSa;5C+Nz^Tc8i*;@bDdXnzW*t%#-zwwwpf<<1>0@m_8%1s4?Z zN!?X+h0UK?X!&DGpfm#8jSO3KtDQ5TPHPUnr5E0t7rJv$Mgh;;spE7t)4L-Us;k;t ro7)TPJUwhT^vMmUb%OV_}>2j`#z2Q diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/AMFName.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/AMFName.c new file mode 100644 index 0000000..cb7c0a0 --- /dev/null +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/AMFName.c @@ -0,0 +1,109 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` + */ + +#include "AMFName.h" + +static const int permitted_alphabet_table_1[256] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */ + 1, 0, 0, 0, 0, 0, 0, 2, 3, 4, 0, 5, 6, 7, 8, 9, /* . '() +,-./ */ +10,11,12,13,14,15,16,17,18,19,20, 0, 0,21, 0,22, /* 0123456789: = ? */ + 0,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37, /* ABCDEFGHIJKLMNO */ +38,39,40,41,42,43,44,45,46,47,48, 0, 0, 0, 0, 0, /* PQRSTUVWXYZ */ + 0,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63, /* abcdefghijklmno */ +64,65,66,67,68,69,70,71,72,73,74, 0, 0, 0, 0, 0, /* pqrstuvwxyz */ +}; +static const int permitted_alphabet_code2value_1[74] = { +32,39,40,41,43,44,45,46,47,48,49,50,51,52,53,54, +55,56,57,58,61,63,65,66,67,68,69,70,71,72,73,74, +75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90, +97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112, +113,114,115,116,117,118,119,120,121,122,}; + + +static int check_permitted_alphabet_1(const void *sptr) { + const int *table = permitted_alphabet_table_1; + /* The underlying type is PrintableString */ + const PrintableString_t *st = (const PrintableString_t *)sptr; + const uint8_t *ch = st->buf; + const uint8_t *end = ch + st->size; + + for(; ch < end; ch++) { + uint8_t cv = *ch; + if(!table[cv]) return -1; + } + return 0; +} + +int +AMFName_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const PrintableString_t *st = (const PrintableString_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size >= 1 && size <= 150) + && !check_permitted_alphabet_1(st)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int asn_PER_MAP_AMFName_1_v2c(unsigned int value) { + if(value >= sizeof(permitted_alphabet_table_1)/sizeof(permitted_alphabet_table_1[0])) + return -1; + return permitted_alphabet_table_1[value] - 1; +} +static int asn_PER_MAP_AMFName_1_c2v(unsigned int code) { + if(code >= sizeof(permitted_alphabet_code2value_1)/sizeof(permitted_alphabet_code2value_1[0])) + return -1; + return permitted_alphabet_code2value_1[code]; +} +/* + * This type is implemented using PrintableString, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_AMFName_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..MAX)) */}; +asn_per_constraints_t asn_PER_type_AMFName_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 32, 122 } /* (32..122) */, + { APC_CONSTRAINED | APC_EXTENSIBLE, 8, 8, 1, 150 } /* (SIZE(1..150,...)) */, + asn_PER_MAP_AMFName_1_v2c, /* Value to PER code map */ + asn_PER_MAP_AMFName_1_c2v /* PER code to value map */ +}; +static const ber_tlv_tag_t asn_DEF_AMFName_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (19 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AMFName = { + "AMFName", + "AMFName", + &asn_OP_PrintableString, + asn_DEF_AMFName_tags_1, + sizeof(asn_DEF_AMFName_tags_1) + /sizeof(asn_DEF_AMFName_tags_1[0]), /* 1 */ + asn_DEF_AMFName_tags_1, /* Same as above */ + sizeof(asn_DEF_AMFName_tags_1) + /sizeof(asn_DEF_AMFName_tags_1[0]), /* 1 */ + { &asn_OER_type_AMFName_constr_1, &asn_PER_type_AMFName_constr_1, AMFName_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/AMFName.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/AMFName.h new file mode 100644 index 0000000..52eef4d --- /dev/null +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/AMFName.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` + */ + +#ifndef _AMFName_H_ +#define _AMFName_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "PrintableString.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* AMFName */ +typedef PrintableString_t AMFName_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_AMFName_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_AMFName; +asn_struct_free_f AMFName_free; +asn_struct_print_f AMFName_print; +asn_constr_check_f AMFName_constraint; +ber_type_decoder_f AMFName_decode_ber; +der_type_encoder_f AMFName_encode_der; +xer_type_decoder_f AMFName_decode_xer; +xer_type_encoder_f AMFName_encode_xer; +oer_type_decoder_f AMFName_decode_oer; +oer_type_encoder_f AMFName_encode_oer; +per_type_decoder_f AMFName_decode_uper; +per_type_encoder_f AMFName_encode_uper; +per_type_decoder_f AMFName_decode_aper; +per_type_encoder_f AMFName_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AMFName_H_ */ +#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CMakeLists.txt b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CMakeLists.txt index 1f96e59..8ba7111 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CMakeLists.txt +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CMakeLists.txt @@ -1,5 +1,3 @@ - - #/***************************************************************************** # * # Copyright 2020 AT&T Intellectual Property * @@ -24,17 +22,10 @@ file(GLOB SOURCES "*.c") file(GLOB HEADERS "*.h") include_directories(.) -add_library( asn1_objects OBJECT ${SOURCES}) - +add_library( asn1_objects STATIC ${SOURCES} ${HEADERS}) target_include_directories (asn1_objects PUBLIC $ $ PRIVATE src) -if( DEV_PKG ) - install( FILES - ${HEADERS} - DESTINATION ${install_inc} - ) -endif() -# --------------------------------------------------------------------------- + diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/Cause.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/Cause.c index 2943b94..8f3f2e8 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/Cause.c +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/Cause.c @@ -1,14 +1,17 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #include "Cause.h" +static asn_oer_constraints_t asn_OER_type_Cause_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; asn_per_constraints_t asn_PER_type_Cause_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 4 } /* (0..4,...) */, + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 5 } /* (0..5,...) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; @@ -16,7 +19,7 @@ asn_TYPE_member_t asn_MBR_Cause_1[] = { { ATF_NOFLAGS, 0, offsetof(struct Cause, choice.ricRequest), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ - &asn_DEF_CauseRIC, + &asn_DEF_CauseRICrequest, 0, { 0, 0, 0 }, 0, 0, /* No default value */ @@ -31,9 +34,18 @@ asn_TYPE_member_t asn_MBR_Cause_1[] = { 0, 0, /* No default value */ "ricService" }, - { ATF_NOFLAGS, 0, offsetof(struct Cause, choice.transport), + { ATF_NOFLAGS, 0, offsetof(struct Cause, choice.e2Node), (ASN_TAG_CLASS_CONTEXT | (2 << 2)), -1, /* IMPLICIT tag at current level */ + &asn_DEF_CauseE2node, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "e2Node" + }, + { ATF_NOFLAGS, 0, offsetof(struct Cause, choice.transport), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_CauseTransport, 0, { 0, 0, 0 }, @@ -41,7 +53,7 @@ asn_TYPE_member_t asn_MBR_Cause_1[] = { "transport" }, { ATF_NOFLAGS, 0, offsetof(struct Cause, choice.protocol), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), -1, /* IMPLICIT tag at current level */ &asn_DEF_CauseProtocol, 0, @@ -50,7 +62,7 @@ asn_TYPE_member_t asn_MBR_Cause_1[] = { "protocol" }, { ATF_NOFLAGS, 0, offsetof(struct Cause, choice.misc), - (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), -1, /* IMPLICIT tag at current level */ &asn_DEF_CauseMisc, 0, @@ -62,9 +74,10 @@ asn_TYPE_member_t asn_MBR_Cause_1[] = { static const asn_TYPE_tag2member_t asn_MAP_Cause_tag2el_1[] = { { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ricRequest */ { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ricService */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* transport */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* protocol */ - { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* misc */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* e2Node */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* transport */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* protocol */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* misc */ }; asn_CHOICE_specifics_t asn_SPC_Cause_specs_1 = { sizeof(struct Cause), @@ -72,9 +85,9 @@ asn_CHOICE_specifics_t asn_SPC_Cause_specs_1 = { offsetof(struct Cause, present), sizeof(((struct Cause *)0)->present), asn_MAP_Cause_tag2el_1, - 5, /* Count of tags in the map */ + 6, /* Count of tags in the map */ 0, 0, - 5 /* Extensions start */ + 6 /* Extensions start */ }; asn_TYPE_descriptor_t asn_DEF_Cause = { "Cause", @@ -84,9 +97,9 @@ asn_TYPE_descriptor_t asn_DEF_Cause = { 0, /* No effective tags (count) */ 0, /* No tags (pointer) */ 0, /* No tags (count) */ - { 0, &asn_PER_type_Cause_constr_1, CHOICE_constraint }, + { &asn_OER_type_Cause_constr_1, &asn_PER_type_Cause_constr_1, CHOICE_constraint }, asn_MBR_Cause_1, - 5, /* Elements count */ + 6, /* Elements count */ &asn_SPC_Cause_specs_1 /* Additional specs */ }; diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/Cause.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/Cause.h index d4a5362..79f0aac 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/Cause.h +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/Cause.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #ifndef _Cause_H_ @@ -12,8 +12,9 @@ #include "asn_application.h" /* Including external dependencies */ -#include "CauseRIC.h" +#include "CauseRICrequest.h" #include "CauseRICservice.h" +#include "CauseE2node.h" #include "CauseTransport.h" #include "CauseProtocol.h" #include "CauseMisc.h" @@ -28,6 +29,7 @@ typedef enum Cause_PR { Cause_PR_NOTHING, /* No components present */ Cause_PR_ricRequest, Cause_PR_ricService, + Cause_PR_e2Node, Cause_PR_transport, Cause_PR_protocol, Cause_PR_misc @@ -39,8 +41,9 @@ typedef enum Cause_PR { typedef struct Cause { Cause_PR present; union Cause_u { - CauseRIC_t ricRequest; + CauseRICrequest_t ricRequest; CauseRICservice_t ricService; + CauseE2node_t e2Node; CauseTransport_t transport; CauseProtocol_t protocol; CauseMisc_t misc; @@ -57,7 +60,7 @@ typedef struct Cause { /* Implementation */ extern asn_TYPE_descriptor_t asn_DEF_Cause; extern asn_CHOICE_specifics_t asn_SPC_Cause_specs_1; -extern asn_TYPE_member_t asn_MBR_Cause_1[5]; +extern asn_TYPE_member_t asn_MBR_Cause_1[6]; extern asn_per_constraints_t asn_PER_type_Cause_constr_1; #ifdef __cplusplus diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CauseE2node.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CauseE2node.c new file mode 100644 index 0000000..c52989a --- /dev/null +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CauseE2node.c @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` + */ + +#include "CauseE2node.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_CauseE2node_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_CauseE2node_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 0, 0 } /* (0..0,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_CauseE2node_value2enum_1[] = { + { 0, 24, "e2node-component-unknown" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_CauseE2node_enum2value_1[] = { + 0 /* e2node-component-unknown(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_CauseE2node_specs_1 = { + asn_MAP_CauseE2node_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_CauseE2node_enum2value_1, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 2, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_CauseE2node_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_CauseE2node = { + "CauseE2node", + "CauseE2node", + &asn_OP_NativeEnumerated, + asn_DEF_CauseE2node_tags_1, + sizeof(asn_DEF_CauseE2node_tags_1) + /sizeof(asn_DEF_CauseE2node_tags_1[0]), /* 1 */ + asn_DEF_CauseE2node_tags_1, /* Same as above */ + sizeof(asn_DEF_CauseE2node_tags_1) + /sizeof(asn_DEF_CauseE2node_tags_1[0]), /* 1 */ + { &asn_OER_type_CauseE2node_constr_1, &asn_PER_type_CauseE2node_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_CauseE2node_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CauseE2node.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CauseE2node.h new file mode 100644 index 0000000..483f655 --- /dev/null +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CauseE2node.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` + */ + +#ifndef _CauseE2node_H_ +#define _CauseE2node_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum CauseE2node { + CauseE2node_e2node_component_unknown = 0 + /* + * Enumeration is extensible + */ +} e_CauseE2node; + +/* CauseE2node */ +typedef long CauseE2node_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_CauseE2node_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_CauseE2node; +extern const asn_INTEGER_specifics_t asn_SPC_CauseE2node_specs_1; +asn_struct_free_f CauseE2node_free; +asn_struct_print_f CauseE2node_print; +asn_constr_check_f CauseE2node_constraint; +ber_type_decoder_f CauseE2node_decode_ber; +der_type_encoder_f CauseE2node_encode_der; +xer_type_decoder_f CauseE2node_decode_xer; +xer_type_encoder_f CauseE2node_encode_xer; +oer_type_decoder_f CauseE2node_decode_oer; +oer_type_encoder_f CauseE2node_encode_oer; +per_type_decoder_f CauseE2node_decode_uper; +per_type_encoder_f CauseE2node_encode_uper; +per_type_decoder_f CauseE2node_decode_aper; +per_type_encoder_f CauseE2node_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _CauseE2node_H_ */ +#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CauseMisc.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CauseMisc.c index 01b6dbd..d7cb3a3 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CauseMisc.c +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CauseMisc.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #include "CauseMisc.h" @@ -11,6 +11,9 @@ * This type is implemented using NativeEnumerated, * so here we adjust the DEF accordingly. */ +static asn_oer_constraints_t asn_OER_type_CauseMisc_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; asn_per_constraints_t asn_PER_type_CauseMisc_constr_1 CC_NOTUSED = { { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 3 } /* (0..3,...) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, @@ -52,7 +55,7 @@ asn_TYPE_descriptor_t asn_DEF_CauseMisc = { asn_DEF_CauseMisc_tags_1, /* Same as above */ sizeof(asn_DEF_CauseMisc_tags_1) /sizeof(asn_DEF_CauseMisc_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_CauseMisc_constr_1, NativeEnumerated_constraint }, + { &asn_OER_type_CauseMisc_constr_1, &asn_PER_type_CauseMisc_constr_1, NativeEnumerated_constraint }, 0, 0, /* Defined elsewhere */ &asn_SPC_CauseMisc_specs_1 /* Additional specs */ }; diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CauseMisc.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CauseMisc.h index 6432f33..a8d2306 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CauseMisc.h +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CauseMisc.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #ifndef _CauseMisc_H_ @@ -43,6 +43,8 @@ ber_type_decoder_f CauseMisc_decode_ber; der_type_encoder_f CauseMisc_encode_der; xer_type_decoder_f CauseMisc_decode_xer; xer_type_encoder_f CauseMisc_encode_xer; +oer_type_decoder_f CauseMisc_decode_oer; +oer_type_encoder_f CauseMisc_encode_oer; per_type_decoder_f CauseMisc_decode_uper; per_type_encoder_f CauseMisc_encode_uper; per_type_decoder_f CauseMisc_decode_aper; diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CauseProtocol.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CauseProtocol.c index bc0b0da..7fdc4c4 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CauseProtocol.c +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CauseProtocol.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #include "CauseProtocol.h" @@ -11,6 +11,9 @@ * This type is implemented using NativeEnumerated, * so here we adjust the DEF accordingly. */ +static asn_oer_constraints_t asn_OER_type_CauseProtocol_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; asn_per_constraints_t asn_PER_type_CauseProtocol_constr_1 CC_NOTUSED = { { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 6 } /* (0..6,...) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, @@ -58,7 +61,7 @@ asn_TYPE_descriptor_t asn_DEF_CauseProtocol = { asn_DEF_CauseProtocol_tags_1, /* Same as above */ sizeof(asn_DEF_CauseProtocol_tags_1) /sizeof(asn_DEF_CauseProtocol_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_CauseProtocol_constr_1, NativeEnumerated_constraint }, + { &asn_OER_type_CauseProtocol_constr_1, &asn_PER_type_CauseProtocol_constr_1, NativeEnumerated_constraint }, 0, 0, /* Defined elsewhere */ &asn_SPC_CauseProtocol_specs_1 /* Additional specs */ }; diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CauseProtocol.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CauseProtocol.h index b985a17..b6dbc0a 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CauseProtocol.h +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CauseProtocol.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #ifndef _CauseProtocol_H_ @@ -46,6 +46,8 @@ ber_type_decoder_f CauseProtocol_decode_ber; der_type_encoder_f CauseProtocol_encode_der; xer_type_decoder_f CauseProtocol_decode_xer; xer_type_encoder_f CauseProtocol_encode_xer; +oer_type_decoder_f CauseProtocol_decode_oer; +oer_type_encoder_f CauseProtocol_encode_oer; per_type_decoder_f CauseProtocol_decode_uper; per_type_encoder_f CauseProtocol_encode_uper; per_type_decoder_f CauseProtocol_decode_aper; diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CauseRIC.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CauseRIC.c deleted file mode 100644 index dd41ce5..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CauseRIC.c +++ /dev/null @@ -1,73 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` - */ - -#include "CauseRIC.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_CauseRIC_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 4, 4, 0, 10 } /* (0..10,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_CauseRIC_value2enum_1[] = { - { 0, 23, "ran-function-id-Invalid" }, - { 1, 20, "action-not-supported" }, - { 2, 17, "excessive-actions" }, - { 3, 16, "duplicate-action" }, - { 4, 15, "duplicate-event" }, - { 5, 23, "function-resource-limit" }, - { 6, 18, "request-id-unknown" }, - { 7, 46, "inconsistent-action-subsequent-action-sequence" }, - { 8, 23, "control-message-invalid" }, - { 9, 23, "call-process-id-invalid" }, - { 10, 11, "unspecified" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_CauseRIC_enum2value_1[] = { - 1, /* action-not-supported(1) */ - 9, /* call-process-id-invalid(9) */ - 8, /* control-message-invalid(8) */ - 3, /* duplicate-action(3) */ - 4, /* duplicate-event(4) */ - 2, /* excessive-actions(2) */ - 5, /* function-resource-limit(5) */ - 7, /* inconsistent-action-subsequent-action-sequence(7) */ - 0, /* ran-function-id-Invalid(0) */ - 6, /* request-id-unknown(6) */ - 10 /* unspecified(10) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_CauseRIC_specs_1 = { - asn_MAP_CauseRIC_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_CauseRIC_enum2value_1, /* N => "tag"; sorted by N */ - 11, /* Number of elements in the maps */ - 12, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_CauseRIC_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_CauseRIC = { - "CauseRIC", - "CauseRIC", - &asn_OP_NativeEnumerated, - asn_DEF_CauseRIC_tags_1, - sizeof(asn_DEF_CauseRIC_tags_1) - /sizeof(asn_DEF_CauseRIC_tags_1[0]), /* 1 */ - asn_DEF_CauseRIC_tags_1, /* Same as above */ - sizeof(asn_DEF_CauseRIC_tags_1) - /sizeof(asn_DEF_CauseRIC_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_CauseRIC_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_CauseRIC_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CauseRIC.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CauseRIC.h deleted file mode 100644 index f523945..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CauseRIC.h +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` - */ - -#ifndef _CauseRIC_H_ -#define _CauseRIC_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum CauseRIC { - CauseRIC_ran_function_id_Invalid = 0, - CauseRIC_action_not_supported = 1, - CauseRIC_excessive_actions = 2, - CauseRIC_duplicate_action = 3, - CauseRIC_duplicate_event = 4, - CauseRIC_function_resource_limit = 5, - CauseRIC_request_id_unknown = 6, - CauseRIC_inconsistent_action_subsequent_action_sequence = 7, - CauseRIC_control_message_invalid = 8, - CauseRIC_call_process_id_invalid = 9, - CauseRIC_unspecified = 10 - /* - * Enumeration is extensible - */ -} e_CauseRIC; - -/* CauseRIC */ -typedef long CauseRIC_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_CauseRIC_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_CauseRIC; -extern const asn_INTEGER_specifics_t asn_SPC_CauseRIC_specs_1; -asn_struct_free_f CauseRIC_free; -asn_struct_print_f CauseRIC_print; -asn_constr_check_f CauseRIC_constraint; -ber_type_decoder_f CauseRIC_decode_ber; -der_type_encoder_f CauseRIC_encode_der; -xer_type_decoder_f CauseRIC_decode_xer; -xer_type_encoder_f CauseRIC_encode_xer; -per_type_decoder_f CauseRIC_decode_uper; -per_type_encoder_f CauseRIC_encode_uper; -per_type_decoder_f CauseRIC_decode_aper; -per_type_encoder_f CauseRIC_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _CauseRIC_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CauseRICrequest.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CauseRICrequest.c new file mode 100644 index 0000000..4ed2c85 --- /dev/null +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CauseRICrequest.c @@ -0,0 +1,82 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` + */ + +#include "CauseRICrequest.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_CauseRICrequest_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_CauseRICrequest_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 4, 4, 0, 13 } /* (0..13,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_CauseRICrequest_value2enum_1[] = { + { 0, 23, "ran-function-id-invalid" }, + { 1, 20, "action-not-supported" }, + { 2, 17, "excessive-actions" }, + { 3, 16, "duplicate-action" }, + { 4, 23, "duplicate-event-trigger" }, + { 5, 23, "function-resource-limit" }, + { 6, 18, "request-id-unknown" }, + { 7, 46, "inconsistent-action-subsequent-action-sequence" }, + { 8, 23, "control-message-invalid" }, + { 9, 27, "ric-call-process-id-invalid" }, + { 10, 21, "control-timer-expired" }, + { 11, 25, "control-failed-to-execute" }, + { 12, 16, "system-not-ready" }, + { 13, 11, "unspecified" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_CauseRICrequest_enum2value_1[] = { + 1, /* action-not-supported(1) */ + 11, /* control-failed-to-execute(11) */ + 8, /* control-message-invalid(8) */ + 10, /* control-timer-expired(10) */ + 3, /* duplicate-action(3) */ + 4, /* duplicate-event-trigger(4) */ + 2, /* excessive-actions(2) */ + 5, /* function-resource-limit(5) */ + 7, /* inconsistent-action-subsequent-action-sequence(7) */ + 0, /* ran-function-id-invalid(0) */ + 6, /* request-id-unknown(6) */ + 9, /* ric-call-process-id-invalid(9) */ + 12, /* system-not-ready(12) */ + 13 /* unspecified(13) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_CauseRICrequest_specs_1 = { + asn_MAP_CauseRICrequest_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_CauseRICrequest_enum2value_1, /* N => "tag"; sorted by N */ + 14, /* Number of elements in the maps */ + 15, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_CauseRICrequest_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_CauseRICrequest = { + "CauseRICrequest", + "CauseRICrequest", + &asn_OP_NativeEnumerated, + asn_DEF_CauseRICrequest_tags_1, + sizeof(asn_DEF_CauseRICrequest_tags_1) + /sizeof(asn_DEF_CauseRICrequest_tags_1[0]), /* 1 */ + asn_DEF_CauseRICrequest_tags_1, /* Same as above */ + sizeof(asn_DEF_CauseRICrequest_tags_1) + /sizeof(asn_DEF_CauseRICrequest_tags_1[0]), /* 1 */ + { &asn_OER_type_CauseRICrequest_constr_1, &asn_PER_type_CauseRICrequest_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_CauseRICrequest_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CauseRICrequest.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CauseRICrequest.h new file mode 100644 index 0000000..26822c6 --- /dev/null +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CauseRICrequest.h @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` + */ + +#ifndef _CauseRICrequest_H_ +#define _CauseRICrequest_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum CauseRICrequest { + CauseRICrequest_ran_function_id_invalid = 0, + CauseRICrequest_action_not_supported = 1, + CauseRICrequest_excessive_actions = 2, + CauseRICrequest_duplicate_action = 3, + CauseRICrequest_duplicate_event_trigger = 4, + CauseRICrequest_function_resource_limit = 5, + CauseRICrequest_request_id_unknown = 6, + CauseRICrequest_inconsistent_action_subsequent_action_sequence = 7, + CauseRICrequest_control_message_invalid = 8, + CauseRICrequest_ric_call_process_id_invalid = 9, + CauseRICrequest_control_timer_expired = 10, + CauseRICrequest_control_failed_to_execute = 11, + CauseRICrequest_system_not_ready = 12, + CauseRICrequest_unspecified = 13 + /* + * Enumeration is extensible + */ +} e_CauseRICrequest; + +/* CauseRICrequest */ +typedef long CauseRICrequest_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_CauseRICrequest_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_CauseRICrequest; +extern const asn_INTEGER_specifics_t asn_SPC_CauseRICrequest_specs_1; +asn_struct_free_f CauseRICrequest_free; +asn_struct_print_f CauseRICrequest_print; +asn_constr_check_f CauseRICrequest_constraint; +ber_type_decoder_f CauseRICrequest_decode_ber; +der_type_encoder_f CauseRICrequest_encode_der; +xer_type_decoder_f CauseRICrequest_decode_xer; +xer_type_encoder_f CauseRICrequest_encode_xer; +oer_type_decoder_f CauseRICrequest_decode_oer; +oer_type_encoder_f CauseRICrequest_encode_oer; +per_type_decoder_f CauseRICrequest_decode_uper; +per_type_encoder_f CauseRICrequest_encode_uper; +per_type_decoder_f CauseRICrequest_decode_aper; +per_type_encoder_f CauseRICrequest_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _CauseRICrequest_H_ */ +#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CauseRICservice.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CauseRICservice.c index a2ede9b..094ad14 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CauseRICservice.c +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CauseRICservice.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #include "CauseRICservice.h" @@ -11,20 +11,23 @@ * This type is implemented using NativeEnumerated, * so here we adjust the DEF accordingly. */ +static asn_oer_constraints_t asn_OER_type_CauseRICservice_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; asn_per_constraints_t asn_PER_type_CauseRICservice_constr_1 CC_NOTUSED = { { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 2 } /* (0..2,...) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; static const asn_INTEGER_enum_map_t asn_MAP_CauseRICservice_value2enum_1[] = { - { 0, 21, "function-not-required" }, + { 0, 26, "ran-function-not-supported" }, { 1, 19, "excessive-functions" }, { 2, 18, "ric-resource-limit" } /* This list is extensible */ }; static const unsigned int asn_MAP_CauseRICservice_enum2value_1[] = { 1, /* excessive-functions(1) */ - 0, /* function-not-required(0) */ + 0, /* ran-function-not-supported(0) */ 2 /* ric-resource-limit(2) */ /* This list is extensible */ }; @@ -50,7 +53,7 @@ asn_TYPE_descriptor_t asn_DEF_CauseRICservice = { asn_DEF_CauseRICservice_tags_1, /* Same as above */ sizeof(asn_DEF_CauseRICservice_tags_1) /sizeof(asn_DEF_CauseRICservice_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_CauseRICservice_constr_1, NativeEnumerated_constraint }, + { &asn_OER_type_CauseRICservice_constr_1, &asn_PER_type_CauseRICservice_constr_1, NativeEnumerated_constraint }, 0, 0, /* Defined elsewhere */ &asn_SPC_CauseRICservice_specs_1 /* Additional specs */ }; diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CauseRICservice.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CauseRICservice.h index 8840d56..429dd9e 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CauseRICservice.h +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CauseRICservice.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #ifndef _CauseRICservice_H_ @@ -20,7 +20,7 @@ extern "C" { /* Dependencies */ typedef enum CauseRICservice { - CauseRICservice_function_not_required = 0, + CauseRICservice_ran_function_not_supported = 0, CauseRICservice_excessive_functions = 1, CauseRICservice_ric_resource_limit = 2 /* @@ -42,6 +42,8 @@ ber_type_decoder_f CauseRICservice_decode_ber; der_type_encoder_f CauseRICservice_encode_der; xer_type_decoder_f CauseRICservice_decode_xer; xer_type_encoder_f CauseRICservice_encode_xer; +oer_type_decoder_f CauseRICservice_decode_oer; +oer_type_encoder_f CauseRICservice_encode_oer; per_type_decoder_f CauseRICservice_decode_uper; per_type_encoder_f CauseRICservice_encode_uper; per_type_decoder_f CauseRICservice_decode_aper; diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CauseTransport.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CauseTransport.c index cbbd239..58b3d14 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CauseTransport.c +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CauseTransport.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #include "CauseTransport.h" @@ -11,6 +11,9 @@ * This type is implemented using NativeEnumerated, * so here we adjust the DEF accordingly. */ +static asn_oer_constraints_t asn_OER_type_CauseTransport_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; asn_per_constraints_t asn_PER_type_CauseTransport_constr_1 CC_NOTUSED = { { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, @@ -48,7 +51,7 @@ asn_TYPE_descriptor_t asn_DEF_CauseTransport = { asn_DEF_CauseTransport_tags_1, /* Same as above */ sizeof(asn_DEF_CauseTransport_tags_1) /sizeof(asn_DEF_CauseTransport_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_CauseTransport_constr_1, NativeEnumerated_constraint }, + { &asn_OER_type_CauseTransport_constr_1, &asn_PER_type_CauseTransport_constr_1, NativeEnumerated_constraint }, 0, 0, /* Defined elsewhere */ &asn_SPC_CauseTransport_specs_1 /* Additional specs */ }; diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CauseTransport.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CauseTransport.h index eec71d1..d4f5450 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CauseTransport.h +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CauseTransport.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #ifndef _CauseTransport_H_ @@ -41,6 +41,8 @@ ber_type_decoder_f CauseTransport_decode_ber; der_type_encoder_f CauseTransport_encode_der; xer_type_decoder_f CauseTransport_decode_xer; xer_type_encoder_f CauseTransport_encode_xer; +oer_type_decoder_f CauseTransport_decode_oer; +oer_type_encoder_f CauseTransport_encode_oer; per_type_decoder_f CauseTransport_decode_uper; per_type_encoder_f CauseTransport_encode_uper; per_type_decoder_f CauseTransport_decode_aper; diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/Criticality.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/Criticality.c index 59ba9d8..645d8c0 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/Criticality.c +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/Criticality.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-CommonDataTypes" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #include "Criticality.h" @@ -11,6 +11,9 @@ * This type is implemented using NativeEnumerated, * so here we adjust the DEF accordingly. */ +static asn_oer_constraints_t asn_OER_type_Criticality_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; asn_per_constraints_t asn_PER_type_Criticality_constr_1 CC_NOTUSED = { { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, @@ -48,7 +51,7 @@ asn_TYPE_descriptor_t asn_DEF_Criticality = { asn_DEF_Criticality_tags_1, /* Same as above */ sizeof(asn_DEF_Criticality_tags_1) /sizeof(asn_DEF_Criticality_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_Criticality_constr_1, NativeEnumerated_constraint }, + { &asn_OER_type_Criticality_constr_1, &asn_PER_type_Criticality_constr_1, NativeEnumerated_constraint }, 0, 0, /* Defined elsewhere */ &asn_SPC_Criticality_specs_1 /* Additional specs */ }; diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/Criticality.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/Criticality.h index b2a0acc..8a0ab54 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/Criticality.h +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/Criticality.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-CommonDataTypes" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #ifndef _Criticality_H_ @@ -39,6 +39,8 @@ ber_type_decoder_f Criticality_decode_ber; der_type_encoder_f Criticality_encode_der; xer_type_decoder_f Criticality_decode_xer; xer_type_encoder_f Criticality_encode_xer; +oer_type_decoder_f Criticality_decode_oer; +oer_type_encoder_f Criticality_encode_oer; per_type_decoder_f Criticality_decode_uper; per_type_encoder_f Criticality_encode_uper; per_type_decoder_f Criticality_decode_aper; diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CriticalityDiagnostics-IE-Item.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CriticalityDiagnostics-IE-Item.c index 52c8388..bde7c2c 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CriticalityDiagnostics-IE-Item.c +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CriticalityDiagnostics-IE-Item.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #include "CriticalityDiagnostics-IE-Item.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CriticalityDiagnostics-IE-Item.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CriticalityDiagnostics-IE-Item.h index ede043e..a8c0959 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CriticalityDiagnostics-IE-Item.h +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CriticalityDiagnostics-IE-Item.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #ifndef _CriticalityDiagnostics_IE_Item_H_ diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CriticalityDiagnostics-IE-List.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CriticalityDiagnostics-IE-List.c index 50f163a..3b72770 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CriticalityDiagnostics-IE-List.c +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CriticalityDiagnostics-IE-List.c @@ -1,13 +1,16 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #include "CriticalityDiagnostics-IE-List.h" #include "CriticalityDiagnostics-IE-Item.h" +static asn_oer_constraints_t asn_OER_type_CriticalityDiagnostics_IE_List_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..256)) */}; asn_per_constraints_t asn_PER_type_CriticalityDiagnostics_IE_List_constr_1 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 8, 8, 1, 256 } /* (SIZE(1..256)) */, @@ -42,7 +45,7 @@ asn_TYPE_descriptor_t asn_DEF_CriticalityDiagnostics_IE_List = { asn_DEF_CriticalityDiagnostics_IE_List_tags_1, /* Same as above */ sizeof(asn_DEF_CriticalityDiagnostics_IE_List_tags_1) /sizeof(asn_DEF_CriticalityDiagnostics_IE_List_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_CriticalityDiagnostics_IE_List_constr_1, SEQUENCE_OF_constraint }, + { &asn_OER_type_CriticalityDiagnostics_IE_List_constr_1, &asn_PER_type_CriticalityDiagnostics_IE_List_constr_1, SEQUENCE_OF_constraint }, asn_MBR_CriticalityDiagnostics_IE_List_1, 1, /* Single element */ &asn_SPC_CriticalityDiagnostics_IE_List_specs_1 /* Additional specs */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CriticalityDiagnostics-IE-List.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CriticalityDiagnostics-IE-List.h index 3631dbf..79dc433 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CriticalityDiagnostics-IE-List.h +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CriticalityDiagnostics-IE-List.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #ifndef _CriticalityDiagnostics_IE_List_H_ diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CriticalityDiagnostics.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CriticalityDiagnostics.c index 732642d..b6569e3 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CriticalityDiagnostics.c +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CriticalityDiagnostics.c @@ -1,15 +1,15 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #include "CriticalityDiagnostics.h" #include "RICrequestID.h" #include "CriticalityDiagnostics-IE-List.h" -asn_TYPE_member_t asn_MBR_CriticalityDiagnostics_1[] = { +static asn_TYPE_member_t asn_MBR_CriticalityDiagnostics_1[] = { { ATF_POINTER, 5, offsetof(struct CriticalityDiagnostics, procedureCode), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ @@ -67,7 +67,7 @@ static const asn_TYPE_tag2member_t asn_MAP_CriticalityDiagnostics_tag2el_1[] = { { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* ricRequestorID */ { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* iEsCriticalityDiagnostics */ }; -asn_SEQUENCE_specifics_t asn_SPC_CriticalityDiagnostics_specs_1 = { +static asn_SEQUENCE_specifics_t asn_SPC_CriticalityDiagnostics_specs_1 = { sizeof(struct CriticalityDiagnostics), offsetof(struct CriticalityDiagnostics, _asn_ctx), asn_MAP_CriticalityDiagnostics_tag2el_1, diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CriticalityDiagnostics.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CriticalityDiagnostics.h index 67d4802..652c5c0 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CriticalityDiagnostics.h +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/CriticalityDiagnostics.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #ifndef _CriticalityDiagnostics_H_ @@ -43,8 +43,6 @@ typedef struct CriticalityDiagnostics { /* Implementation */ extern asn_TYPE_descriptor_t asn_DEF_CriticalityDiagnostics; -extern asn_SEQUENCE_specifics_t asn_SPC_CriticalityDiagnostics_specs_1; -extern asn_TYPE_member_t asn_MBR_CriticalityDiagnostics_1[5]; #ifdef __cplusplus } diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2AP-PDU.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2AP-PDU.c index 87b3320..4e69825 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2AP-PDU.c +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2AP-PDU.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Descriptions" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #include "E2AP-PDU.h" @@ -10,6 +10,9 @@ #include "InitiatingMessage.h" #include "SuccessfulOutcome.h" #include "UnsuccessfulOutcome.h" +static asn_oer_constraints_t asn_OER_type_E2AP_PDU_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; static asn_per_constraints_t asn_PER_type_E2AP_PDU_constr_1 CC_NOTUSED = { { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 2 } /* (0..2,...) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, @@ -67,7 +70,7 @@ asn_TYPE_descriptor_t asn_DEF_E2AP_PDU = { 0, /* No effective tags (count) */ 0, /* No tags (pointer) */ 0, /* No tags (count) */ - { 0, &asn_PER_type_E2AP_PDU_constr_1, CHOICE_constraint }, + { &asn_OER_type_E2AP_PDU_constr_1, &asn_PER_type_E2AP_PDU_constr_1, CHOICE_constraint }, asn_MBR_E2AP_PDU_1, 3, /* Elements count */ &asn_SPC_E2AP_PDU_specs_1 /* Additional specs */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2AP-PDU.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2AP-PDU.h index 9edfbf3..3bf1764 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2AP-PDU.h +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2AP-PDU.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Descriptions" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #ifndef _E2AP_PDU_H_ diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2connectionSetupFailed-Item.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2connectionSetupFailed-Item.c index 5792f7f..f0f45f8 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2connectionSetupFailed-Item.c +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2connectionSetupFailed-Item.c @@ -1,13 +1,13 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #include "E2connectionSetupFailed-Item.h" -asn_TYPE_member_t asn_MBR_E2connectionSetupFailed_Item_1[] = { +static asn_TYPE_member_t asn_MBR_E2connectionSetupFailed_Item_1[] = { { ATF_NOFLAGS, 0, offsetof(struct E2connectionSetupFailed_Item, tnlInformation), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ @@ -34,7 +34,7 @@ static const asn_TYPE_tag2member_t asn_MAP_E2connectionSetupFailed_Item_tag2el_1 { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* tnlInformation */ { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* cause */ }; -asn_SEQUENCE_specifics_t asn_SPC_E2connectionSetupFailed_Item_specs_1 = { +static asn_SEQUENCE_specifics_t asn_SPC_E2connectionSetupFailed_Item_specs_1 = { sizeof(struct E2connectionSetupFailed_Item), offsetof(struct E2connectionSetupFailed_Item, _asn_ctx), asn_MAP_E2connectionSetupFailed_Item_tag2el_1, diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2connectionSetupFailed-Item.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2connectionSetupFailed-Item.h index e062ce9..a976438 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2connectionSetupFailed-Item.h +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2connectionSetupFailed-Item.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #ifndef _E2connectionSetupFailed_Item_H_ @@ -35,8 +35,6 @@ typedef struct E2connectionSetupFailed_Item { /* Implementation */ extern asn_TYPE_descriptor_t asn_DEF_E2connectionSetupFailed_Item; -extern asn_SEQUENCE_specifics_t asn_SPC_E2connectionSetupFailed_Item_specs_1; -extern asn_TYPE_member_t asn_MBR_E2connectionSetupFailed_Item_1[2]; #ifdef __cplusplus } diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2connectionSetupFailed-List.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2connectionSetupFailed-List.c index 502490b..cd30a64 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2connectionSetupFailed-List.c +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2connectionSetupFailed-List.c @@ -1,23 +1,26 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #include "E2connectionSetupFailed-List.h" #include "ProtocolIE-SingleContainer.h" -asn_per_constraints_t asn_PER_type_E2connectionSetupFailed_List_constr_1 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_type_E2connectionSetupFailed_List_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +static asn_per_constraints_t asn_PER_type_E2connectionSetupFailed_List_constr_1 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */, 0, 0 /* No PER value map */ }; -asn_TYPE_member_t asn_MBR_E2connectionSetupFailed_List_1[] = { +static asn_TYPE_member_t asn_MBR_E2connectionSetupFailed_List_1[] = { { ATF_POINTER, 0, 0, (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, - &asn_DEF_ProtocolIE_SingleContainer_229P5, + &asn_DEF_ProtocolIE_SingleContainer_1920P6, 0, { 0, 0, 0 }, 0, 0, /* No default value */ @@ -27,7 +30,7 @@ asn_TYPE_member_t asn_MBR_E2connectionSetupFailed_List_1[] = { static const ber_tlv_tag_t asn_DEF_E2connectionSetupFailed_List_tags_1[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_SET_OF_specifics_t asn_SPC_E2connectionSetupFailed_List_specs_1 = { +static asn_SET_OF_specifics_t asn_SPC_E2connectionSetupFailed_List_specs_1 = { sizeof(struct E2connectionSetupFailed_List), offsetof(struct E2connectionSetupFailed_List, _asn_ctx), 0, /* XER encoding is XMLDelimitedItemList */ @@ -42,7 +45,7 @@ asn_TYPE_descriptor_t asn_DEF_E2connectionSetupFailed_List = { asn_DEF_E2connectionSetupFailed_List_tags_1, /* Same as above */ sizeof(asn_DEF_E2connectionSetupFailed_List_tags_1) /sizeof(asn_DEF_E2connectionSetupFailed_List_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_E2connectionSetupFailed_List_constr_1, SEQUENCE_OF_constraint }, + { &asn_OER_type_E2connectionSetupFailed_List_constr_1, &asn_PER_type_E2connectionSetupFailed_List_constr_1, SEQUENCE_OF_constraint }, asn_MBR_E2connectionSetupFailed_List_1, 1, /* Single element */ &asn_SPC_E2connectionSetupFailed_List_specs_1 /* Additional specs */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2connectionSetupFailed-List.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2connectionSetupFailed-List.h index 6a5265c..1d31824 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2connectionSetupFailed-List.h +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2connectionSetupFailed-List.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #ifndef _E2connectionSetupFailed_List_H_ @@ -32,9 +32,6 @@ typedef struct E2connectionSetupFailed_List { /* Implementation */ extern asn_TYPE_descriptor_t asn_DEF_E2connectionSetupFailed_List; -extern asn_SET_OF_specifics_t asn_SPC_E2connectionSetupFailed_List_specs_1; -extern asn_TYPE_member_t asn_MBR_E2connectionSetupFailed_List_1[1]; -extern asn_per_constraints_t asn_PER_type_E2connectionSetupFailed_List_constr_1; #ifdef __cplusplus } diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2connectionUpdate-Item.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2connectionUpdate-Item.c index c109abf..ca94fb5 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2connectionUpdate-Item.c +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2connectionUpdate-Item.c @@ -1,13 +1,13 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #include "E2connectionUpdate-Item.h" -asn_TYPE_member_t asn_MBR_E2connectionUpdate_Item_1[] = { +static asn_TYPE_member_t asn_MBR_E2connectionUpdate_Item_1[] = { { ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdate_Item, tnlInformation), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ @@ -34,7 +34,7 @@ static const asn_TYPE_tag2member_t asn_MAP_E2connectionUpdate_Item_tag2el_1[] = { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* tnlInformation */ { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* tnlUsage */ }; -asn_SEQUENCE_specifics_t asn_SPC_E2connectionUpdate_Item_specs_1 = { +static asn_SEQUENCE_specifics_t asn_SPC_E2connectionUpdate_Item_specs_1 = { sizeof(struct E2connectionUpdate_Item), offsetof(struct E2connectionUpdate_Item, _asn_ctx), asn_MAP_E2connectionUpdate_Item_tag2el_1, diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2connectionUpdate-Item.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2connectionUpdate-Item.h index 85f6ebb..71a8b7a 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2connectionUpdate-Item.h +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2connectionUpdate-Item.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #ifndef _E2connectionUpdate_Item_H_ @@ -35,8 +35,6 @@ typedef struct E2connectionUpdate_Item { /* Implementation */ extern asn_TYPE_descriptor_t asn_DEF_E2connectionUpdate_Item; -extern asn_SEQUENCE_specifics_t asn_SPC_E2connectionUpdate_Item_specs_1; -extern asn_TYPE_member_t asn_MBR_E2connectionUpdate_Item_1[2]; #ifdef __cplusplus } diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2connectionUpdate-List.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2connectionUpdate-List.c index 0f5f738..018c9f8 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2connectionUpdate-List.c +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2connectionUpdate-List.c @@ -1,23 +1,26 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #include "E2connectionUpdate-List.h" #include "ProtocolIE-SingleContainer.h" -asn_per_constraints_t asn_PER_type_E2connectionUpdate_List_constr_1 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_type_E2connectionUpdate_List_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +static asn_per_constraints_t asn_PER_type_E2connectionUpdate_List_constr_1 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */, 0, 0 /* No PER value map */ }; -asn_TYPE_member_t asn_MBR_E2connectionUpdate_List_1[] = { +static asn_TYPE_member_t asn_MBR_E2connectionUpdate_List_1[] = { { ATF_POINTER, 0, 0, (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, - &asn_DEF_ProtocolIE_SingleContainer_229P3, + &asn_DEF_ProtocolIE_SingleContainer_1920P4, 0, { 0, 0, 0 }, 0, 0, /* No default value */ @@ -27,7 +30,7 @@ asn_TYPE_member_t asn_MBR_E2connectionUpdate_List_1[] = { static const ber_tlv_tag_t asn_DEF_E2connectionUpdate_List_tags_1[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_SET_OF_specifics_t asn_SPC_E2connectionUpdate_List_specs_1 = { +static asn_SET_OF_specifics_t asn_SPC_E2connectionUpdate_List_specs_1 = { sizeof(struct E2connectionUpdate_List), offsetof(struct E2connectionUpdate_List, _asn_ctx), 0, /* XER encoding is XMLDelimitedItemList */ @@ -42,7 +45,7 @@ asn_TYPE_descriptor_t asn_DEF_E2connectionUpdate_List = { asn_DEF_E2connectionUpdate_List_tags_1, /* Same as above */ sizeof(asn_DEF_E2connectionUpdate_List_tags_1) /sizeof(asn_DEF_E2connectionUpdate_List_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_E2connectionUpdate_List_constr_1, SEQUENCE_OF_constraint }, + { &asn_OER_type_E2connectionUpdate_List_constr_1, &asn_PER_type_E2connectionUpdate_List_constr_1, SEQUENCE_OF_constraint }, asn_MBR_E2connectionUpdate_List_1, 1, /* Single element */ &asn_SPC_E2connectionUpdate_List_specs_1 /* Additional specs */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2connectionUpdate-List.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2connectionUpdate-List.h index cb71b0a..734d770 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2connectionUpdate-List.h +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2connectionUpdate-List.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #ifndef _E2connectionUpdate_List_H_ @@ -32,9 +32,6 @@ typedef struct E2connectionUpdate_List { /* Implementation */ extern asn_TYPE_descriptor_t asn_DEF_E2connectionUpdate_List; -extern asn_SET_OF_specifics_t asn_SPC_E2connectionUpdate_List_specs_1; -extern asn_TYPE_member_t asn_MBR_E2connectionUpdate_List_1[1]; -extern asn_per_constraints_t asn_PER_type_E2connectionUpdate_List_constr_1; #ifdef __cplusplus } diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2connectionUpdate.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2connectionUpdate.c index 426676e..1cee810 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2connectionUpdate.c +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2connectionUpdate.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #include "E2connectionUpdate.h" @@ -11,7 +11,7 @@ asn_TYPE_member_t asn_MBR_E2connectionUpdate_1[] = { { ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdate, protocolIEs), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_226P14, + &asn_DEF_ProtocolIE_Container_1917P15, 0, { 0, 0, 0 }, 0, 0, /* No default value */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2connectionUpdate.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2connectionUpdate.h index 9426be7..102f711 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2connectionUpdate.h +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2connectionUpdate.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #ifndef _E2connectionUpdate_H_ @@ -21,7 +21,7 @@ extern "C" { /* E2connectionUpdate */ typedef struct E2connectionUpdate { - ProtocolIE_Container_226P14_t protocolIEs; + ProtocolIE_Container_1917P15_t protocolIEs; /* * This type is extensible, * possible extensions are below. diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2connectionUpdateAcknowledge.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2connectionUpdateAcknowledge.c index dbc443d..ad55786 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2connectionUpdateAcknowledge.c +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2connectionUpdateAcknowledge.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #include "E2connectionUpdateAcknowledge.h" @@ -11,7 +11,7 @@ asn_TYPE_member_t asn_MBR_E2connectionUpdateAcknowledge_1[] = { { ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdateAcknowledge, protocolIEs), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_226P15, + &asn_DEF_ProtocolIE_Container_1917P16, 0, { 0, 0, 0 }, 0, 0, /* No default value */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2connectionUpdateAcknowledge.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2connectionUpdateAcknowledge.h index 7dc879e..668ae54 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2connectionUpdateAcknowledge.h +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2connectionUpdateAcknowledge.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #ifndef _E2connectionUpdateAcknowledge_H_ @@ -21,7 +21,7 @@ extern "C" { /* E2connectionUpdateAcknowledge */ typedef struct E2connectionUpdateAcknowledge { - ProtocolIE_Container_226P15_t protocolIEs; + ProtocolIE_Container_1917P16_t protocolIEs; /* * This type is extensible, * possible extensions are below. diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2connectionUpdateFailure.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2connectionUpdateFailure.c index 52c1908..8c8daa4 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2connectionUpdateFailure.c +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2connectionUpdateFailure.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #include "E2connectionUpdateFailure.h" @@ -11,7 +11,7 @@ asn_TYPE_member_t asn_MBR_E2connectionUpdateFailure_1[] = { { ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdateFailure, protocolIEs), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_226P16, + &asn_DEF_ProtocolIE_Container_1917P17, 0, { 0, 0, 0 }, 0, 0, /* No default value */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2connectionUpdateFailure.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2connectionUpdateFailure.h index 0e357fd..c81d6c8 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2connectionUpdateFailure.h +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2connectionUpdateFailure.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #ifndef _E2connectionUpdateFailure_H_ @@ -21,7 +21,7 @@ extern "C" { /* E2connectionUpdateFailure */ typedef struct E2connectionUpdateFailure { - ProtocolIE_Container_226P16_t protocolIEs; + ProtocolIE_Container_1917P17_t protocolIEs; /* * This type is extensible, * possible extensions are below. diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2connectionUpdateRemove-Item.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2connectionUpdateRemove-Item.c index 45ae85e..6384820 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2connectionUpdateRemove-Item.c +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2connectionUpdateRemove-Item.c @@ -1,13 +1,13 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #include "E2connectionUpdateRemove-Item.h" -asn_TYPE_member_t asn_MBR_E2connectionUpdateRemove_Item_1[] = { +static asn_TYPE_member_t asn_MBR_E2connectionUpdateRemove_Item_1[] = { { ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdateRemove_Item, tnlInformation), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ @@ -24,7 +24,7 @@ static const ber_tlv_tag_t asn_DEF_E2connectionUpdateRemove_Item_tags_1[] = { static const asn_TYPE_tag2member_t asn_MAP_E2connectionUpdateRemove_Item_tag2el_1[] = { { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* tnlInformation */ }; -asn_SEQUENCE_specifics_t asn_SPC_E2connectionUpdateRemove_Item_specs_1 = { +static asn_SEQUENCE_specifics_t asn_SPC_E2connectionUpdateRemove_Item_specs_1 = { sizeof(struct E2connectionUpdateRemove_Item), offsetof(struct E2connectionUpdateRemove_Item, _asn_ctx), asn_MAP_E2connectionUpdateRemove_Item_tag2el_1, diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2connectionUpdateRemove-Item.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2connectionUpdateRemove-Item.h index 4a6800c..d161623 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2connectionUpdateRemove-Item.h +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2connectionUpdateRemove-Item.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #ifndef _E2connectionUpdateRemove_Item_H_ @@ -33,8 +33,6 @@ typedef struct E2connectionUpdateRemove_Item { /* Implementation */ extern asn_TYPE_descriptor_t asn_DEF_E2connectionUpdateRemove_Item; -extern asn_SEQUENCE_specifics_t asn_SPC_E2connectionUpdateRemove_Item_specs_1; -extern asn_TYPE_member_t asn_MBR_E2connectionUpdateRemove_Item_1[1]; #ifdef __cplusplus } diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2connectionUpdateRemove-List.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2connectionUpdateRemove-List.c index c9a4624..e5f7f8b 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2connectionUpdateRemove-List.c +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2connectionUpdateRemove-List.c @@ -1,23 +1,26 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #include "E2connectionUpdateRemove-List.h" #include "ProtocolIE-SingleContainer.h" -asn_per_constraints_t asn_PER_type_E2connectionUpdateRemove_List_constr_1 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_type_E2connectionUpdateRemove_List_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +static asn_per_constraints_t asn_PER_type_E2connectionUpdateRemove_List_constr_1 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */, 0, 0 /* No PER value map */ }; -asn_TYPE_member_t asn_MBR_E2connectionUpdateRemove_List_1[] = { +static asn_TYPE_member_t asn_MBR_E2connectionUpdateRemove_List_1[] = { { ATF_POINTER, 0, 0, (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, - &asn_DEF_ProtocolIE_SingleContainer_229P4, + &asn_DEF_ProtocolIE_SingleContainer_1920P5, 0, { 0, 0, 0 }, 0, 0, /* No default value */ @@ -27,7 +30,7 @@ asn_TYPE_member_t asn_MBR_E2connectionUpdateRemove_List_1[] = { static const ber_tlv_tag_t asn_DEF_E2connectionUpdateRemove_List_tags_1[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_SET_OF_specifics_t asn_SPC_E2connectionUpdateRemove_List_specs_1 = { +static asn_SET_OF_specifics_t asn_SPC_E2connectionUpdateRemove_List_specs_1 = { sizeof(struct E2connectionUpdateRemove_List), offsetof(struct E2connectionUpdateRemove_List, _asn_ctx), 0, /* XER encoding is XMLDelimitedItemList */ @@ -42,7 +45,7 @@ asn_TYPE_descriptor_t asn_DEF_E2connectionUpdateRemove_List = { asn_DEF_E2connectionUpdateRemove_List_tags_1, /* Same as above */ sizeof(asn_DEF_E2connectionUpdateRemove_List_tags_1) /sizeof(asn_DEF_E2connectionUpdateRemove_List_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_E2connectionUpdateRemove_List_constr_1, SEQUENCE_OF_constraint }, + { &asn_OER_type_E2connectionUpdateRemove_List_constr_1, &asn_PER_type_E2connectionUpdateRemove_List_constr_1, SEQUENCE_OF_constraint }, asn_MBR_E2connectionUpdateRemove_List_1, 1, /* Single element */ &asn_SPC_E2connectionUpdateRemove_List_specs_1 /* Additional specs */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2connectionUpdateRemove-List.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2connectionUpdateRemove-List.h index f6dd3d2..135195d 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2connectionUpdateRemove-List.h +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2connectionUpdateRemove-List.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #ifndef _E2connectionUpdateRemove_List_H_ @@ -32,9 +32,6 @@ typedef struct E2connectionUpdateRemove_List { /* Implementation */ extern asn_TYPE_descriptor_t asn_DEF_E2connectionUpdateRemove_List; -extern asn_SET_OF_specifics_t asn_SPC_E2connectionUpdateRemove_List_specs_1; -extern asn_TYPE_member_t asn_MBR_E2connectionUpdateRemove_List_1[1]; -extern asn_per_constraints_t asn_PER_type_E2connectionUpdateRemove_List_constr_1; #ifdef __cplusplus } diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigAddition-Item.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigAddition-Item.c new file mode 100644 index 0000000..2ad05a1 --- /dev/null +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigAddition-Item.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` + */ + +#include "E2nodeComponentConfigAddition-Item.h" + +static asn_TYPE_member_t asn_MBR_E2nodeComponentConfigAddition_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigAddition_Item, e2nodeComponentInterfaceType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_E2nodeComponentInterfaceType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "e2nodeComponentInterfaceType" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigAddition_Item, e2nodeComponentID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_E2nodeComponentID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "e2nodeComponentID" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigAddition_Item, e2nodeComponentConfiguration), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_E2nodeComponentConfiguration, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "e2nodeComponentConfiguration" + }, +}; +static const ber_tlv_tag_t asn_DEF_E2nodeComponentConfigAddition_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_E2nodeComponentConfigAddition_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e2nodeComponentInterfaceType */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* e2nodeComponentID */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* e2nodeComponentConfiguration */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigAddition_Item_specs_1 = { + sizeof(struct E2nodeComponentConfigAddition_Item), + offsetof(struct E2nodeComponentConfigAddition_Item, _asn_ctx), + asn_MAP_E2nodeComponentConfigAddition_Item_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigAddition_Item = { + "E2nodeComponentConfigAddition-Item", + "E2nodeComponentConfigAddition-Item", + &asn_OP_SEQUENCE, + asn_DEF_E2nodeComponentConfigAddition_Item_tags_1, + sizeof(asn_DEF_E2nodeComponentConfigAddition_Item_tags_1) + /sizeof(asn_DEF_E2nodeComponentConfigAddition_Item_tags_1[0]), /* 1 */ + asn_DEF_E2nodeComponentConfigAddition_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_E2nodeComponentConfigAddition_Item_tags_1) + /sizeof(asn_DEF_E2nodeComponentConfigAddition_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_E2nodeComponentConfigAddition_Item_1, + 3, /* Elements count */ + &asn_SPC_E2nodeComponentConfigAddition_Item_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigAddition-Item.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigAddition-Item.h new file mode 100644 index 0000000..db691a1 --- /dev/null +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigAddition-Item.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` + */ + +#ifndef _E2nodeComponentConfigAddition_Item_H_ +#define _E2nodeComponentConfigAddition_Item_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "E2nodeComponentInterfaceType.h" +#include "E2nodeComponentID.h" +#include "E2nodeComponentConfiguration.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* E2nodeComponentConfigAddition-Item */ +typedef struct E2nodeComponentConfigAddition_Item { + E2nodeComponentInterfaceType_t e2nodeComponentInterfaceType; + E2nodeComponentID_t e2nodeComponentID; + E2nodeComponentConfiguration_t e2nodeComponentConfiguration; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2nodeComponentConfigAddition_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigAddition_Item; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2nodeComponentConfigAddition_Item_H_ */ +#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigAddition-List.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigAddition-List.c new file mode 100644 index 0000000..3e93cda --- /dev/null +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigAddition-List.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` + */ + +#include "E2nodeComponentConfigAddition-List.h" + +#include "ProtocolIE-SingleContainer.h" +static asn_oer_constraints_t asn_OER_type_E2nodeComponentConfigAddition_List_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..1024)) */}; +static asn_per_constraints_t asn_PER_type_E2nodeComponentConfigAddition_List_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 10, 10, 1, 1024 } /* (SIZE(1..1024)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_E2nodeComponentConfigAddition_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ProtocolIE_SingleContainer_1920P7, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_E2nodeComponentConfigAddition_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_E2nodeComponentConfigAddition_List_specs_1 = { + sizeof(struct E2nodeComponentConfigAddition_List), + offsetof(struct E2nodeComponentConfigAddition_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigAddition_List = { + "E2nodeComponentConfigAddition-List", + "E2nodeComponentConfigAddition-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_E2nodeComponentConfigAddition_List_tags_1, + sizeof(asn_DEF_E2nodeComponentConfigAddition_List_tags_1) + /sizeof(asn_DEF_E2nodeComponentConfigAddition_List_tags_1[0]), /* 1 */ + asn_DEF_E2nodeComponentConfigAddition_List_tags_1, /* Same as above */ + sizeof(asn_DEF_E2nodeComponentConfigAddition_List_tags_1) + /sizeof(asn_DEF_E2nodeComponentConfigAddition_List_tags_1[0]), /* 1 */ + { &asn_OER_type_E2nodeComponentConfigAddition_List_constr_1, &asn_PER_type_E2nodeComponentConfigAddition_List_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_E2nodeComponentConfigAddition_List_1, + 1, /* Single element */ + &asn_SPC_E2nodeComponentConfigAddition_List_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigAddition-List.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigAddition-List.h new file mode 100644 index 0000000..0bed3fd --- /dev/null +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigAddition-List.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` + */ + +#ifndef _E2nodeComponentConfigAddition_List_H_ +#define _E2nodeComponentConfigAddition_List_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolIE_SingleContainer; + +/* E2nodeComponentConfigAddition-List */ +typedef struct E2nodeComponentConfigAddition_List { + A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2nodeComponentConfigAddition_List_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigAddition_List; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2nodeComponentConfigAddition_List_H_ */ +#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigAdditionAck-Item.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigAdditionAck-Item.c new file mode 100644 index 0000000..e36ef6f --- /dev/null +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigAdditionAck-Item.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` + */ + +#include "E2nodeComponentConfigAdditionAck-Item.h" + +static asn_TYPE_member_t asn_MBR_E2nodeComponentConfigAdditionAck_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigAdditionAck_Item, e2nodeComponentInterfaceType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_E2nodeComponentInterfaceType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "e2nodeComponentInterfaceType" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigAdditionAck_Item, e2nodeComponentID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_E2nodeComponentID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "e2nodeComponentID" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigAdditionAck_Item, e2nodeComponentConfigurationAck), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_E2nodeComponentConfigurationAck, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "e2nodeComponentConfigurationAck" + }, +}; +static const ber_tlv_tag_t asn_DEF_E2nodeComponentConfigAdditionAck_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_E2nodeComponentConfigAdditionAck_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e2nodeComponentInterfaceType */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* e2nodeComponentID */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* e2nodeComponentConfigurationAck */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigAdditionAck_Item_specs_1 = { + sizeof(struct E2nodeComponentConfigAdditionAck_Item), + offsetof(struct E2nodeComponentConfigAdditionAck_Item, _asn_ctx), + asn_MAP_E2nodeComponentConfigAdditionAck_Item_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigAdditionAck_Item = { + "E2nodeComponentConfigAdditionAck-Item", + "E2nodeComponentConfigAdditionAck-Item", + &asn_OP_SEQUENCE, + asn_DEF_E2nodeComponentConfigAdditionAck_Item_tags_1, + sizeof(asn_DEF_E2nodeComponentConfigAdditionAck_Item_tags_1) + /sizeof(asn_DEF_E2nodeComponentConfigAdditionAck_Item_tags_1[0]), /* 1 */ + asn_DEF_E2nodeComponentConfigAdditionAck_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_E2nodeComponentConfigAdditionAck_Item_tags_1) + /sizeof(asn_DEF_E2nodeComponentConfigAdditionAck_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_E2nodeComponentConfigAdditionAck_Item_1, + 3, /* Elements count */ + &asn_SPC_E2nodeComponentConfigAdditionAck_Item_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigAdditionAck-Item.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigAdditionAck-Item.h new file mode 100644 index 0000000..1278256 --- /dev/null +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigAdditionAck-Item.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` + */ + +#ifndef _E2nodeComponentConfigAdditionAck_Item_H_ +#define _E2nodeComponentConfigAdditionAck_Item_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "E2nodeComponentInterfaceType.h" +#include "E2nodeComponentID.h" +#include "E2nodeComponentConfigurationAck.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* E2nodeComponentConfigAdditionAck-Item */ +typedef struct E2nodeComponentConfigAdditionAck_Item { + E2nodeComponentInterfaceType_t e2nodeComponentInterfaceType; + E2nodeComponentID_t e2nodeComponentID; + E2nodeComponentConfigurationAck_t e2nodeComponentConfigurationAck; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2nodeComponentConfigAdditionAck_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigAdditionAck_Item; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2nodeComponentConfigAdditionAck_Item_H_ */ +#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigAdditionAck-List.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigAdditionAck-List.c new file mode 100644 index 0000000..b1dcd18 --- /dev/null +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigAdditionAck-List.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` + */ + +#include "E2nodeComponentConfigAdditionAck-List.h" + +#include "ProtocolIE-SingleContainer.h" +static asn_oer_constraints_t asn_OER_type_E2nodeComponentConfigAdditionAck_List_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..1024)) */}; +static asn_per_constraints_t asn_PER_type_E2nodeComponentConfigAdditionAck_List_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 10, 10, 1, 1024 } /* (SIZE(1..1024)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_E2nodeComponentConfigAdditionAck_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ProtocolIE_SingleContainer_1920P11, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_E2nodeComponentConfigAdditionAck_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_E2nodeComponentConfigAdditionAck_List_specs_1 = { + sizeof(struct E2nodeComponentConfigAdditionAck_List), + offsetof(struct E2nodeComponentConfigAdditionAck_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigAdditionAck_List = { + "E2nodeComponentConfigAdditionAck-List", + "E2nodeComponentConfigAdditionAck-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_E2nodeComponentConfigAdditionAck_List_tags_1, + sizeof(asn_DEF_E2nodeComponentConfigAdditionAck_List_tags_1) + /sizeof(asn_DEF_E2nodeComponentConfigAdditionAck_List_tags_1[0]), /* 1 */ + asn_DEF_E2nodeComponentConfigAdditionAck_List_tags_1, /* Same as above */ + sizeof(asn_DEF_E2nodeComponentConfigAdditionAck_List_tags_1) + /sizeof(asn_DEF_E2nodeComponentConfigAdditionAck_List_tags_1[0]), /* 1 */ + { &asn_OER_type_E2nodeComponentConfigAdditionAck_List_constr_1, &asn_PER_type_E2nodeComponentConfigAdditionAck_List_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_E2nodeComponentConfigAdditionAck_List_1, + 1, /* Single element */ + &asn_SPC_E2nodeComponentConfigAdditionAck_List_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigAdditionAck-List.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigAdditionAck-List.h new file mode 100644 index 0000000..07761c5 --- /dev/null +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigAdditionAck-List.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` + */ + +#ifndef _E2nodeComponentConfigAdditionAck_List_H_ +#define _E2nodeComponentConfigAdditionAck_List_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolIE_SingleContainer; + +/* E2nodeComponentConfigAdditionAck-List */ +typedef struct E2nodeComponentConfigAdditionAck_List { + A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2nodeComponentConfigAdditionAck_List_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigAdditionAck_List; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2nodeComponentConfigAdditionAck_List_H_ */ +#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigRemoval-Item.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigRemoval-Item.c new file mode 100644 index 0000000..eed716f --- /dev/null +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigRemoval-Item.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` + */ + +#include "E2nodeComponentConfigRemoval-Item.h" + +static asn_TYPE_member_t asn_MBR_E2nodeComponentConfigRemoval_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigRemoval_Item, e2nodeComponentInterfaceType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_E2nodeComponentInterfaceType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "e2nodeComponentInterfaceType" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigRemoval_Item, e2nodeComponentID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_E2nodeComponentID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "e2nodeComponentID" + }, +}; +static const ber_tlv_tag_t asn_DEF_E2nodeComponentConfigRemoval_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_E2nodeComponentConfigRemoval_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e2nodeComponentInterfaceType */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* e2nodeComponentID */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigRemoval_Item_specs_1 = { + sizeof(struct E2nodeComponentConfigRemoval_Item), + offsetof(struct E2nodeComponentConfigRemoval_Item, _asn_ctx), + asn_MAP_E2nodeComponentConfigRemoval_Item_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigRemoval_Item = { + "E2nodeComponentConfigRemoval-Item", + "E2nodeComponentConfigRemoval-Item", + &asn_OP_SEQUENCE, + asn_DEF_E2nodeComponentConfigRemoval_Item_tags_1, + sizeof(asn_DEF_E2nodeComponentConfigRemoval_Item_tags_1) + /sizeof(asn_DEF_E2nodeComponentConfigRemoval_Item_tags_1[0]), /* 1 */ + asn_DEF_E2nodeComponentConfigRemoval_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_E2nodeComponentConfigRemoval_Item_tags_1) + /sizeof(asn_DEF_E2nodeComponentConfigRemoval_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_E2nodeComponentConfigRemoval_Item_1, + 2, /* Elements count */ + &asn_SPC_E2nodeComponentConfigRemoval_Item_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigRemoval-Item.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigRemoval-Item.h new file mode 100644 index 0000000..65f2788 --- /dev/null +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigRemoval-Item.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` + */ + +#ifndef _E2nodeComponentConfigRemoval_Item_H_ +#define _E2nodeComponentConfigRemoval_Item_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "E2nodeComponentInterfaceType.h" +#include "E2nodeComponentID.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* E2nodeComponentConfigRemoval-Item */ +typedef struct E2nodeComponentConfigRemoval_Item { + E2nodeComponentInterfaceType_t e2nodeComponentInterfaceType; + E2nodeComponentID_t e2nodeComponentID; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2nodeComponentConfigRemoval_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigRemoval_Item; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2nodeComponentConfigRemoval_Item_H_ */ +#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigRemoval-List.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigRemoval-List.c new file mode 100644 index 0000000..6e8c5a0 --- /dev/null +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigRemoval-List.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` + */ + +#include "E2nodeComponentConfigRemoval-List.h" + +#include "ProtocolIE-SingleContainer.h" +static asn_oer_constraints_t asn_OER_type_E2nodeComponentConfigRemoval_List_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..1024)) */}; +static asn_per_constraints_t asn_PER_type_E2nodeComponentConfigRemoval_List_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 10, 10, 1, 1024 } /* (SIZE(1..1024)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_E2nodeComponentConfigRemoval_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ProtocolIE_SingleContainer_1920P9, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_E2nodeComponentConfigRemoval_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_E2nodeComponentConfigRemoval_List_specs_1 = { + sizeof(struct E2nodeComponentConfigRemoval_List), + offsetof(struct E2nodeComponentConfigRemoval_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigRemoval_List = { + "E2nodeComponentConfigRemoval-List", + "E2nodeComponentConfigRemoval-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_E2nodeComponentConfigRemoval_List_tags_1, + sizeof(asn_DEF_E2nodeComponentConfigRemoval_List_tags_1) + /sizeof(asn_DEF_E2nodeComponentConfigRemoval_List_tags_1[0]), /* 1 */ + asn_DEF_E2nodeComponentConfigRemoval_List_tags_1, /* Same as above */ + sizeof(asn_DEF_E2nodeComponentConfigRemoval_List_tags_1) + /sizeof(asn_DEF_E2nodeComponentConfigRemoval_List_tags_1[0]), /* 1 */ + { &asn_OER_type_E2nodeComponentConfigRemoval_List_constr_1, &asn_PER_type_E2nodeComponentConfigRemoval_List_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_E2nodeComponentConfigRemoval_List_1, + 1, /* Single element */ + &asn_SPC_E2nodeComponentConfigRemoval_List_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigRemoval-List.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigRemoval-List.h new file mode 100644 index 0000000..c562dfb --- /dev/null +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigRemoval-List.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` + */ + +#ifndef _E2nodeComponentConfigRemoval_List_H_ +#define _E2nodeComponentConfigRemoval_List_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolIE_SingleContainer; + +/* E2nodeComponentConfigRemoval-List */ +typedef struct E2nodeComponentConfigRemoval_List { + A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2nodeComponentConfigRemoval_List_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigRemoval_List; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2nodeComponentConfigRemoval_List_H_ */ +#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigRemovalAck-Item.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigRemovalAck-Item.c new file mode 100644 index 0000000..1b064f4 --- /dev/null +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigRemovalAck-Item.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` + */ + +#include "E2nodeComponentConfigRemovalAck-Item.h" + +static asn_TYPE_member_t asn_MBR_E2nodeComponentConfigRemovalAck_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigRemovalAck_Item, e2nodeComponentInterfaceType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_E2nodeComponentInterfaceType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "e2nodeComponentInterfaceType" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigRemovalAck_Item, e2nodeComponentID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_E2nodeComponentID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "e2nodeComponentID" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigRemovalAck_Item, e2nodeComponentConfigurationAck), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_E2nodeComponentConfigurationAck, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "e2nodeComponentConfigurationAck" + }, +}; +static const ber_tlv_tag_t asn_DEF_E2nodeComponentConfigRemovalAck_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_E2nodeComponentConfigRemovalAck_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e2nodeComponentInterfaceType */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* e2nodeComponentID */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* e2nodeComponentConfigurationAck */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigRemovalAck_Item_specs_1 = { + sizeof(struct E2nodeComponentConfigRemovalAck_Item), + offsetof(struct E2nodeComponentConfigRemovalAck_Item, _asn_ctx), + asn_MAP_E2nodeComponentConfigRemovalAck_Item_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigRemovalAck_Item = { + "E2nodeComponentConfigRemovalAck-Item", + "E2nodeComponentConfigRemovalAck-Item", + &asn_OP_SEQUENCE, + asn_DEF_E2nodeComponentConfigRemovalAck_Item_tags_1, + sizeof(asn_DEF_E2nodeComponentConfigRemovalAck_Item_tags_1) + /sizeof(asn_DEF_E2nodeComponentConfigRemovalAck_Item_tags_1[0]), /* 1 */ + asn_DEF_E2nodeComponentConfigRemovalAck_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_E2nodeComponentConfigRemovalAck_Item_tags_1) + /sizeof(asn_DEF_E2nodeComponentConfigRemovalAck_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_E2nodeComponentConfigRemovalAck_Item_1, + 3, /* Elements count */ + &asn_SPC_E2nodeComponentConfigRemovalAck_Item_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigRemovalAck-Item.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigRemovalAck-Item.h new file mode 100644 index 0000000..cfe64df --- /dev/null +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigRemovalAck-Item.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` + */ + +#ifndef _E2nodeComponentConfigRemovalAck_Item_H_ +#define _E2nodeComponentConfigRemovalAck_Item_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "E2nodeComponentInterfaceType.h" +#include "E2nodeComponentID.h" +#include "E2nodeComponentConfigurationAck.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* E2nodeComponentConfigRemovalAck-Item */ +typedef struct E2nodeComponentConfigRemovalAck_Item { + E2nodeComponentInterfaceType_t e2nodeComponentInterfaceType; + E2nodeComponentID_t e2nodeComponentID; + E2nodeComponentConfigurationAck_t e2nodeComponentConfigurationAck; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2nodeComponentConfigRemovalAck_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigRemovalAck_Item; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2nodeComponentConfigRemovalAck_Item_H_ */ +#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigRemovalAck-List.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigRemovalAck-List.c new file mode 100644 index 0000000..31f4339 --- /dev/null +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigRemovalAck-List.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` + */ + +#include "E2nodeComponentConfigRemovalAck-List.h" + +#include "ProtocolIE-SingleContainer.h" +static asn_oer_constraints_t asn_OER_type_E2nodeComponentConfigRemovalAck_List_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..1024)) */}; +static asn_per_constraints_t asn_PER_type_E2nodeComponentConfigRemovalAck_List_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 10, 10, 1, 1024 } /* (SIZE(1..1024)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_E2nodeComponentConfigRemovalAck_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ProtocolIE_SingleContainer_1920P13, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_E2nodeComponentConfigRemovalAck_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_E2nodeComponentConfigRemovalAck_List_specs_1 = { + sizeof(struct E2nodeComponentConfigRemovalAck_List), + offsetof(struct E2nodeComponentConfigRemovalAck_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigRemovalAck_List = { + "E2nodeComponentConfigRemovalAck-List", + "E2nodeComponentConfigRemovalAck-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_E2nodeComponentConfigRemovalAck_List_tags_1, + sizeof(asn_DEF_E2nodeComponentConfigRemovalAck_List_tags_1) + /sizeof(asn_DEF_E2nodeComponentConfigRemovalAck_List_tags_1[0]), /* 1 */ + asn_DEF_E2nodeComponentConfigRemovalAck_List_tags_1, /* Same as above */ + sizeof(asn_DEF_E2nodeComponentConfigRemovalAck_List_tags_1) + /sizeof(asn_DEF_E2nodeComponentConfigRemovalAck_List_tags_1[0]), /* 1 */ + { &asn_OER_type_E2nodeComponentConfigRemovalAck_List_constr_1, &asn_PER_type_E2nodeComponentConfigRemovalAck_List_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_E2nodeComponentConfigRemovalAck_List_1, + 1, /* Single element */ + &asn_SPC_E2nodeComponentConfigRemovalAck_List_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigRemovalAck-List.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigRemovalAck-List.h new file mode 100644 index 0000000..632b764 --- /dev/null +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigRemovalAck-List.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` + */ + +#ifndef _E2nodeComponentConfigRemovalAck_List_H_ +#define _E2nodeComponentConfigRemovalAck_List_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolIE_SingleContainer; + +/* E2nodeComponentConfigRemovalAck-List */ +typedef struct E2nodeComponentConfigRemovalAck_List { + A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2nodeComponentConfigRemovalAck_List_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigRemovalAck_List; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2nodeComponentConfigRemovalAck_List_H_ */ +#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigUpdate-Item.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigUpdate-Item.c index cc1a0bd..98ab889 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigUpdate-Item.c +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigUpdate-Item.c @@ -1,24 +1,23 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #include "E2nodeComponentConfigUpdate-Item.h" -#include "E2nodeComponentID.h" -asn_TYPE_member_t asn_MBR_E2nodeComponentConfigUpdate_Item_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigUpdate_Item, e2nodeComponentType), +static asn_TYPE_member_t asn_MBR_E2nodeComponentConfigUpdate_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigUpdate_Item, e2nodeComponentInterfaceType), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ - &asn_DEF_E2nodeComponentType, + &asn_DEF_E2nodeComponentInterfaceType, 0, { 0, 0, 0 }, 0, 0, /* No default value */ - "e2nodeComponentType" + "e2nodeComponentInterfaceType" }, - { ATF_POINTER, 1, offsetof(struct E2nodeComponentConfigUpdate_Item, e2nodeComponentID), + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigUpdate_Item, e2nodeComponentID), (ASN_TAG_CLASS_CONTEXT | (1 << 2)), +1, /* EXPLICIT tag at current level */ &asn_DEF_E2nodeComponentID, @@ -27,32 +26,30 @@ asn_TYPE_member_t asn_MBR_E2nodeComponentConfigUpdate_Item_1[] = { 0, 0, /* No default value */ "e2nodeComponentID" }, - { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigUpdate_Item, e2nodeComponentConfigUpdate), + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigUpdate_Item, e2nodeComponentConfiguration), (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_E2nodeComponentConfigUpdate, + -1, /* IMPLICIT tag at current level */ + &asn_DEF_E2nodeComponentConfiguration, 0, { 0, 0, 0 }, 0, 0, /* No default value */ - "e2nodeComponentConfigUpdate" + "e2nodeComponentConfiguration" }, }; -static const int asn_MAP_E2nodeComponentConfigUpdate_Item_oms_1[] = { 1 }; static const ber_tlv_tag_t asn_DEF_E2nodeComponentConfigUpdate_Item_tags_1[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; static const asn_TYPE_tag2member_t asn_MAP_E2nodeComponentConfigUpdate_Item_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e2nodeComponentType */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e2nodeComponentInterfaceType */ { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* e2nodeComponentID */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* e2nodeComponentConfigUpdate */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* e2nodeComponentConfiguration */ }; -asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigUpdate_Item_specs_1 = { +static asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigUpdate_Item_specs_1 = { sizeof(struct E2nodeComponentConfigUpdate_Item), offsetof(struct E2nodeComponentConfigUpdate_Item, _asn_ctx), asn_MAP_E2nodeComponentConfigUpdate_Item_tag2el_1, 3, /* Count of tags in the map */ - asn_MAP_E2nodeComponentConfigUpdate_Item_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ + 0, 0, 0, /* Optional elements (not needed) */ 3, /* First extension addition */ }; asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigUpdate_Item = { diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigUpdate-Item.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigUpdate-Item.h index c78aadf..e1ae519 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigUpdate-Item.h +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigUpdate-Item.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #ifndef _E2nodeComponentConfigUpdate_Item_H_ @@ -12,22 +12,20 @@ #include "asn_application.h" /* Including external dependencies */ -#include "E2nodeComponentType.h" -#include "E2nodeComponentConfigUpdate.h" +#include "E2nodeComponentInterfaceType.h" +#include "E2nodeComponentID.h" +#include "E2nodeComponentConfiguration.h" #include "constr_SEQUENCE.h" #ifdef __cplusplus extern "C" { #endif -/* Forward declarations */ -struct E2nodeComponentID; - /* E2nodeComponentConfigUpdate-Item */ typedef struct E2nodeComponentConfigUpdate_Item { - E2nodeComponentType_t e2nodeComponentType; - struct E2nodeComponentID *e2nodeComponentID; /* OPTIONAL */ - E2nodeComponentConfigUpdate_t e2nodeComponentConfigUpdate; + E2nodeComponentInterfaceType_t e2nodeComponentInterfaceType; + E2nodeComponentID_t e2nodeComponentID; + E2nodeComponentConfiguration_t e2nodeComponentConfiguration; /* * This type is extensible, * possible extensions are below. @@ -39,8 +37,6 @@ typedef struct E2nodeComponentConfigUpdate_Item { /* Implementation */ extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigUpdate_Item; -extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigUpdate_Item_specs_1; -extern asn_TYPE_member_t asn_MBR_E2nodeComponentConfigUpdate_Item_1[3]; #ifdef __cplusplus } diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigUpdate-List.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigUpdate-List.c index f982bb6..12d5f1e 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigUpdate-List.c +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigUpdate-List.c @@ -1,23 +1,26 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #include "E2nodeComponentConfigUpdate-List.h" #include "ProtocolIE-SingleContainer.h" -asn_per_constraints_t asn_PER_type_E2nodeComponentConfigUpdate_List_constr_1 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_type_E2nodeComponentConfigUpdate_List_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..1024)) */}; +static asn_per_constraints_t asn_PER_type_E2nodeComponentConfigUpdate_List_constr_1 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 10, 10, 1, 1024 } /* (SIZE(1..1024)) */, 0, 0 /* No PER value map */ }; -asn_TYPE_member_t asn_MBR_E2nodeComponentConfigUpdate_List_1[] = { +static asn_TYPE_member_t asn_MBR_E2nodeComponentConfigUpdate_List_1[] = { { ATF_POINTER, 0, 0, (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, - &asn_DEF_ProtocolIE_SingleContainer_229P6, + &asn_DEF_ProtocolIE_SingleContainer_1920P8, 0, { 0, 0, 0 }, 0, 0, /* No default value */ @@ -27,7 +30,7 @@ asn_TYPE_member_t asn_MBR_E2nodeComponentConfigUpdate_List_1[] = { static const ber_tlv_tag_t asn_DEF_E2nodeComponentConfigUpdate_List_tags_1[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_SET_OF_specifics_t asn_SPC_E2nodeComponentConfigUpdate_List_specs_1 = { +static asn_SET_OF_specifics_t asn_SPC_E2nodeComponentConfigUpdate_List_specs_1 = { sizeof(struct E2nodeComponentConfigUpdate_List), offsetof(struct E2nodeComponentConfigUpdate_List, _asn_ctx), 0, /* XER encoding is XMLDelimitedItemList */ @@ -42,7 +45,7 @@ asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigUpdate_List = { asn_DEF_E2nodeComponentConfigUpdate_List_tags_1, /* Same as above */ sizeof(asn_DEF_E2nodeComponentConfigUpdate_List_tags_1) /sizeof(asn_DEF_E2nodeComponentConfigUpdate_List_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_E2nodeComponentConfigUpdate_List_constr_1, SEQUENCE_OF_constraint }, + { &asn_OER_type_E2nodeComponentConfigUpdate_List_constr_1, &asn_PER_type_E2nodeComponentConfigUpdate_List_constr_1, SEQUENCE_OF_constraint }, asn_MBR_E2nodeComponentConfigUpdate_List_1, 1, /* Single element */ &asn_SPC_E2nodeComponentConfigUpdate_List_specs_1 /* Additional specs */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigUpdate-List.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigUpdate-List.h index 4795cd5..a11a1c8 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigUpdate-List.h +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigUpdate-List.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #ifndef _E2nodeComponentConfigUpdate_List_H_ @@ -32,9 +32,6 @@ typedef struct E2nodeComponentConfigUpdate_List { /* Implementation */ extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigUpdate_List; -extern asn_SET_OF_specifics_t asn_SPC_E2nodeComponentConfigUpdate_List_specs_1; -extern asn_TYPE_member_t asn_MBR_E2nodeComponentConfigUpdate_List_1[1]; -extern asn_per_constraints_t asn_PER_type_E2nodeComponentConfigUpdate_List_constr_1; #ifdef __cplusplus } diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigUpdate.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigUpdate.c deleted file mode 100644 index 10f6fa6..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigUpdate.c +++ /dev/null @@ -1,86 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` - */ - -#include "E2nodeComponentConfigUpdate.h" - -#include "E2nodeComponentConfigUpdateGNB.h" -#include "E2nodeComponentConfigUpdateENgNB.h" -#include "E2nodeComponentConfigUpdateNGeNB.h" -#include "E2nodeComponentConfigUpdateENB.h" -asn_per_constraints_t asn_PER_type_E2nodeComponentConfigUpdate_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 3 } /* (0..3,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_E2nodeComponentConfigUpdate_1[] = { - { ATF_POINTER, 0, offsetof(struct E2nodeComponentConfigUpdate, choice.gNBconfigUpdate), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E2nodeComponentConfigUpdateGNB, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "gNBconfigUpdate" - }, - { ATF_POINTER, 0, offsetof(struct E2nodeComponentConfigUpdate, choice.en_gNBconfigUpdate), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E2nodeComponentConfigUpdateENgNB, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "en-gNBconfigUpdate" - }, - { ATF_POINTER, 0, offsetof(struct E2nodeComponentConfigUpdate, choice.ng_eNBconfigUpdate), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E2nodeComponentConfigUpdateNGeNB, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ng-eNBconfigUpdate" - }, - { ATF_POINTER, 0, offsetof(struct E2nodeComponentConfigUpdate, choice.eNBconfigUpdate), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E2nodeComponentConfigUpdateENB, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "eNBconfigUpdate" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_E2nodeComponentConfigUpdate_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* gNBconfigUpdate */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* en-gNBconfigUpdate */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* ng-eNBconfigUpdate */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* eNBconfigUpdate */ -}; -asn_CHOICE_specifics_t asn_SPC_E2nodeComponentConfigUpdate_specs_1 = { - sizeof(struct E2nodeComponentConfigUpdate), - offsetof(struct E2nodeComponentConfigUpdate, _asn_ctx), - offsetof(struct E2nodeComponentConfigUpdate, present), - sizeof(((struct E2nodeComponentConfigUpdate *)0)->present), - asn_MAP_E2nodeComponentConfigUpdate_tag2el_1, - 4, /* Count of tags in the map */ - 0, 0, - 4 /* Extensions start */ -}; -asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigUpdate = { - "E2nodeComponentConfigUpdate", - "E2nodeComponentConfigUpdate", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, &asn_PER_type_E2nodeComponentConfigUpdate_constr_1, CHOICE_constraint }, - asn_MBR_E2nodeComponentConfigUpdate_1, - 4, /* Elements count */ - &asn_SPC_E2nodeComponentConfigUpdate_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigUpdate.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigUpdate.h deleted file mode 100644 index 6e0ca4a..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigUpdate.h +++ /dev/null @@ -1,67 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` - */ - -#ifndef _E2nodeComponentConfigUpdate_H_ -#define _E2nodeComponentConfigUpdate_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "constr_CHOICE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum E2nodeComponentConfigUpdate_PR { - E2nodeComponentConfigUpdate_PR_NOTHING, /* No components present */ - E2nodeComponentConfigUpdate_PR_gNBconfigUpdate, - E2nodeComponentConfigUpdate_PR_en_gNBconfigUpdate, - E2nodeComponentConfigUpdate_PR_ng_eNBconfigUpdate, - E2nodeComponentConfigUpdate_PR_eNBconfigUpdate - /* Extensions may appear below */ - -} E2nodeComponentConfigUpdate_PR; - -/* Forward declarations */ -struct E2nodeComponentConfigUpdateGNB; -struct E2nodeComponentConfigUpdateENgNB; -struct E2nodeComponentConfigUpdateNGeNB; -struct E2nodeComponentConfigUpdateENB; - -/* E2nodeComponentConfigUpdate */ -typedef struct E2nodeComponentConfigUpdate { - E2nodeComponentConfigUpdate_PR present; - union E2nodeComponentConfigUpdate_u { - struct E2nodeComponentConfigUpdateGNB *gNBconfigUpdate; - struct E2nodeComponentConfigUpdateENgNB *en_gNBconfigUpdate; - struct E2nodeComponentConfigUpdateNGeNB *ng_eNBconfigUpdate; - struct E2nodeComponentConfigUpdateENB *eNBconfigUpdate; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E2nodeComponentConfigUpdate_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigUpdate; -extern asn_CHOICE_specifics_t asn_SPC_E2nodeComponentConfigUpdate_specs_1; -extern asn_TYPE_member_t asn_MBR_E2nodeComponentConfigUpdate_1[4]; -extern asn_per_constraints_t asn_PER_type_E2nodeComponentConfigUpdate_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _E2nodeComponentConfigUpdate_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigUpdateAck-Item.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigUpdateAck-Item.c index 77cdb1b..418210f 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigUpdateAck-Item.c +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigUpdateAck-Item.c @@ -1,24 +1,23 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #include "E2nodeComponentConfigUpdateAck-Item.h" -#include "E2nodeComponentID.h" -asn_TYPE_member_t asn_MBR_E2nodeComponentConfigUpdateAck_Item_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigUpdateAck_Item, e2nodeComponentType), +static asn_TYPE_member_t asn_MBR_E2nodeComponentConfigUpdateAck_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigUpdateAck_Item, e2nodeComponentInterfaceType), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ - &asn_DEF_E2nodeComponentType, + &asn_DEF_E2nodeComponentInterfaceType, 0, { 0, 0, 0 }, 0, 0, /* No default value */ - "e2nodeComponentType" + "e2nodeComponentInterfaceType" }, - { ATF_POINTER, 1, offsetof(struct E2nodeComponentConfigUpdateAck_Item, e2nodeComponentID), + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigUpdateAck_Item, e2nodeComponentID), (ASN_TAG_CLASS_CONTEXT | (1 << 2)), +1, /* EXPLICIT tag at current level */ &asn_DEF_E2nodeComponentID, @@ -27,32 +26,30 @@ asn_TYPE_member_t asn_MBR_E2nodeComponentConfigUpdateAck_Item_1[] = { 0, 0, /* No default value */ "e2nodeComponentID" }, - { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigUpdateAck_Item, e2nodeComponentConfigUpdateAck), + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigUpdateAck_Item, e2nodeComponentConfigurationAck), (ASN_TAG_CLASS_CONTEXT | (2 << 2)), -1, /* IMPLICIT tag at current level */ - &asn_DEF_E2nodeComponentConfigUpdateAck, + &asn_DEF_E2nodeComponentConfigurationAck, 0, { 0, 0, 0 }, 0, 0, /* No default value */ - "e2nodeComponentConfigUpdateAck" + "e2nodeComponentConfigurationAck" }, }; -static const int asn_MAP_E2nodeComponentConfigUpdateAck_Item_oms_1[] = { 1 }; static const ber_tlv_tag_t asn_DEF_E2nodeComponentConfigUpdateAck_Item_tags_1[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; static const asn_TYPE_tag2member_t asn_MAP_E2nodeComponentConfigUpdateAck_Item_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e2nodeComponentType */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e2nodeComponentInterfaceType */ { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* e2nodeComponentID */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* e2nodeComponentConfigUpdateAck */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* e2nodeComponentConfigurationAck */ }; -asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigUpdateAck_Item_specs_1 = { +static asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigUpdateAck_Item_specs_1 = { sizeof(struct E2nodeComponentConfigUpdateAck_Item), offsetof(struct E2nodeComponentConfigUpdateAck_Item, _asn_ctx), asn_MAP_E2nodeComponentConfigUpdateAck_Item_tag2el_1, 3, /* Count of tags in the map */ - asn_MAP_E2nodeComponentConfigUpdateAck_Item_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ + 0, 0, 0, /* Optional elements (not needed) */ 3, /* First extension addition */ }; asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigUpdateAck_Item = { diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigUpdateAck-Item.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigUpdateAck-Item.h index cfae915..9b7809e 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigUpdateAck-Item.h +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigUpdateAck-Item.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #ifndef _E2nodeComponentConfigUpdateAck_Item_H_ @@ -12,22 +12,20 @@ #include "asn_application.h" /* Including external dependencies */ -#include "E2nodeComponentType.h" -#include "E2nodeComponentConfigUpdateAck.h" +#include "E2nodeComponentInterfaceType.h" +#include "E2nodeComponentID.h" +#include "E2nodeComponentConfigurationAck.h" #include "constr_SEQUENCE.h" #ifdef __cplusplus extern "C" { #endif -/* Forward declarations */ -struct E2nodeComponentID; - /* E2nodeComponentConfigUpdateAck-Item */ typedef struct E2nodeComponentConfigUpdateAck_Item { - E2nodeComponentType_t e2nodeComponentType; - struct E2nodeComponentID *e2nodeComponentID; /* OPTIONAL */ - E2nodeComponentConfigUpdateAck_t e2nodeComponentConfigUpdateAck; + E2nodeComponentInterfaceType_t e2nodeComponentInterfaceType; + E2nodeComponentID_t e2nodeComponentID; + E2nodeComponentConfigurationAck_t e2nodeComponentConfigurationAck; /* * This type is extensible, * possible extensions are below. @@ -39,8 +37,6 @@ typedef struct E2nodeComponentConfigUpdateAck_Item { /* Implementation */ extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigUpdateAck_Item; -extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigUpdateAck_Item_specs_1; -extern asn_TYPE_member_t asn_MBR_E2nodeComponentConfigUpdateAck_Item_1[3]; #ifdef __cplusplus } diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigUpdateAck-List.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigUpdateAck-List.c index 779f011..f08c742 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigUpdateAck-List.c +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigUpdateAck-List.c @@ -1,23 +1,26 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #include "E2nodeComponentConfigUpdateAck-List.h" #include "ProtocolIE-SingleContainer.h" -asn_per_constraints_t asn_PER_type_E2nodeComponentConfigUpdateAck_List_constr_1 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_type_E2nodeComponentConfigUpdateAck_List_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..1024)) */}; +static asn_per_constraints_t asn_PER_type_E2nodeComponentConfigUpdateAck_List_constr_1 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 10, 10, 1, 1024 } /* (SIZE(1..1024)) */, 0, 0 /* No PER value map */ }; -asn_TYPE_member_t asn_MBR_E2nodeComponentConfigUpdateAck_List_1[] = { +static asn_TYPE_member_t asn_MBR_E2nodeComponentConfigUpdateAck_List_1[] = { { ATF_POINTER, 0, 0, (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, - &asn_DEF_ProtocolIE_SingleContainer_229P7, + &asn_DEF_ProtocolIE_SingleContainer_1920P12, 0, { 0, 0, 0 }, 0, 0, /* No default value */ @@ -27,7 +30,7 @@ asn_TYPE_member_t asn_MBR_E2nodeComponentConfigUpdateAck_List_1[] = { static const ber_tlv_tag_t asn_DEF_E2nodeComponentConfigUpdateAck_List_tags_1[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_SET_OF_specifics_t asn_SPC_E2nodeComponentConfigUpdateAck_List_specs_1 = { +static asn_SET_OF_specifics_t asn_SPC_E2nodeComponentConfigUpdateAck_List_specs_1 = { sizeof(struct E2nodeComponentConfigUpdateAck_List), offsetof(struct E2nodeComponentConfigUpdateAck_List, _asn_ctx), 0, /* XER encoding is XMLDelimitedItemList */ @@ -42,7 +45,7 @@ asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigUpdateAck_List = { asn_DEF_E2nodeComponentConfigUpdateAck_List_tags_1, /* Same as above */ sizeof(asn_DEF_E2nodeComponentConfigUpdateAck_List_tags_1) /sizeof(asn_DEF_E2nodeComponentConfigUpdateAck_List_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_E2nodeComponentConfigUpdateAck_List_constr_1, SEQUENCE_OF_constraint }, + { &asn_OER_type_E2nodeComponentConfigUpdateAck_List_constr_1, &asn_PER_type_E2nodeComponentConfigUpdateAck_List_constr_1, SEQUENCE_OF_constraint }, asn_MBR_E2nodeComponentConfigUpdateAck_List_1, 1, /* Single element */ &asn_SPC_E2nodeComponentConfigUpdateAck_List_specs_1 /* Additional specs */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigUpdateAck-List.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigUpdateAck-List.h index ff89f9e..58961ef 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigUpdateAck-List.h +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigUpdateAck-List.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #ifndef _E2nodeComponentConfigUpdateAck_List_H_ @@ -32,9 +32,6 @@ typedef struct E2nodeComponentConfigUpdateAck_List { /* Implementation */ extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigUpdateAck_List; -extern asn_SET_OF_specifics_t asn_SPC_E2nodeComponentConfigUpdateAck_List_specs_1; -extern asn_TYPE_member_t asn_MBR_E2nodeComponentConfigUpdateAck_List_1[1]; -extern asn_per_constraints_t asn_PER_type_E2nodeComponentConfigUpdateAck_List_constr_1; #ifdef __cplusplus } diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigUpdateAck.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigUpdateAck.c deleted file mode 100644 index ac7c6a0..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigUpdateAck.c +++ /dev/null @@ -1,111 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` - */ - -#include "E2nodeComponentConfigUpdateAck.h" - -#include "Cause.h" -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -static asn_per_constraints_t asn_PER_type_updateOutcome_constr_2 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_updateOutcome_value2enum_2[] = { - { 0, 7, "success" }, - { 1, 7, "failure" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_updateOutcome_enum2value_2[] = { - 1, /* failure(1) */ - 0 /* success(0) */ - /* This list is extensible */ -}; -static const asn_INTEGER_specifics_t asn_SPC_updateOutcome_specs_2 = { - asn_MAP_updateOutcome_value2enum_2, /* "tag" => N; sorted by tag */ - asn_MAP_updateOutcome_enum2value_2, /* N => "tag"; sorted by N */ - 2, /* Number of elements in the maps */ - 3, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_updateOutcome_tags_2[] = { - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_updateOutcome_2 = { - "updateOutcome", - "updateOutcome", - &asn_OP_NativeEnumerated, - asn_DEF_updateOutcome_tags_2, - sizeof(asn_DEF_updateOutcome_tags_2) - /sizeof(asn_DEF_updateOutcome_tags_2[0]) - 1, /* 1 */ - asn_DEF_updateOutcome_tags_2, /* Same as above */ - sizeof(asn_DEF_updateOutcome_tags_2) - /sizeof(asn_DEF_updateOutcome_tags_2[0]), /* 2 */ - { 0, &asn_PER_type_updateOutcome_constr_2, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_updateOutcome_specs_2 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E2nodeComponentConfigUpdateAck_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigUpdateAck, updateOutcome), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_updateOutcome_2, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "updateOutcome" - }, - { ATF_POINTER, 1, offsetof(struct E2nodeComponentConfigUpdateAck, failureCause), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_Cause, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "failureCause" - }, -}; -static const int asn_MAP_E2nodeComponentConfigUpdateAck_oms_1[] = { 1 }; -static const ber_tlv_tag_t asn_DEF_E2nodeComponentConfigUpdateAck_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E2nodeComponentConfigUpdateAck_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* updateOutcome */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* failureCause */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigUpdateAck_specs_1 = { - sizeof(struct E2nodeComponentConfigUpdateAck), - offsetof(struct E2nodeComponentConfigUpdateAck, _asn_ctx), - asn_MAP_E2nodeComponentConfigUpdateAck_tag2el_1, - 2, /* Count of tags in the map */ - asn_MAP_E2nodeComponentConfigUpdateAck_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 2, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigUpdateAck = { - "E2nodeComponentConfigUpdateAck", - "E2nodeComponentConfigUpdateAck", - &asn_OP_SEQUENCE, - asn_DEF_E2nodeComponentConfigUpdateAck_tags_1, - sizeof(asn_DEF_E2nodeComponentConfigUpdateAck_tags_1) - /sizeof(asn_DEF_E2nodeComponentConfigUpdateAck_tags_1[0]), /* 1 */ - asn_DEF_E2nodeComponentConfigUpdateAck_tags_1, /* Same as above */ - sizeof(asn_DEF_E2nodeComponentConfigUpdateAck_tags_1) - /sizeof(asn_DEF_E2nodeComponentConfigUpdateAck_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E2nodeComponentConfigUpdateAck_1, - 2, /* Elements count */ - &asn_SPC_E2nodeComponentConfigUpdateAck_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigUpdateAck.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigUpdateAck.h deleted file mode 100644 index b9b5fbc..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigUpdateAck.h +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` - */ - -#ifndef _E2nodeComponentConfigUpdateAck_H_ -#define _E2nodeComponentConfigUpdateAck_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum E2nodeComponentConfigUpdateAck__updateOutcome { - E2nodeComponentConfigUpdateAck__updateOutcome_success = 0, - E2nodeComponentConfigUpdateAck__updateOutcome_failure = 1 - /* - * Enumeration is extensible - */ -} e_E2nodeComponentConfigUpdateAck__updateOutcome; - -/* Forward declarations */ -struct Cause; - -/* E2nodeComponentConfigUpdateAck */ -typedef struct E2nodeComponentConfigUpdateAck { - long updateOutcome; - struct Cause *failureCause; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E2nodeComponentConfigUpdateAck_t; - -/* Implementation */ -/* extern asn_TYPE_descriptor_t asn_DEF_updateOutcome_2; // (Use -fall-defs-global to expose) */ -extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigUpdateAck; -extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigUpdateAck_specs_1; -extern asn_TYPE_member_t asn_MBR_E2nodeComponentConfigUpdateAck_1[2]; - -#ifdef __cplusplus -} -#endif - -#endif /* _E2nodeComponentConfigUpdateAck_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigUpdateENB.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigUpdateENB.c deleted file mode 100644 index b8ebed0..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigUpdateENB.c +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` - */ - -#include "E2nodeComponentConfigUpdateENB.h" - -asn_TYPE_member_t asn_MBR_E2nodeComponentConfigUpdateENB_1[] = { - { ATF_POINTER, 2, offsetof(struct E2nodeComponentConfigUpdateENB, s1APconfigUpdate), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_OCTET_STRING, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "s1APconfigUpdate" - }, - { ATF_POINTER, 1, offsetof(struct E2nodeComponentConfigUpdateENB, x2APconfigUpdate), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_OCTET_STRING, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "x2APconfigUpdate" - }, -}; -static const int asn_MAP_E2nodeComponentConfigUpdateENB_oms_1[] = { 0, 1 }; -static const ber_tlv_tag_t asn_DEF_E2nodeComponentConfigUpdateENB_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E2nodeComponentConfigUpdateENB_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* s1APconfigUpdate */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* x2APconfigUpdate */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigUpdateENB_specs_1 = { - sizeof(struct E2nodeComponentConfigUpdateENB), - offsetof(struct E2nodeComponentConfigUpdateENB, _asn_ctx), - asn_MAP_E2nodeComponentConfigUpdateENB_tag2el_1, - 2, /* Count of tags in the map */ - asn_MAP_E2nodeComponentConfigUpdateENB_oms_1, /* Optional members */ - 2, 0, /* Root/Additions */ - 2, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigUpdateENB = { - "E2nodeComponentConfigUpdateENB", - "E2nodeComponentConfigUpdateENB", - &asn_OP_SEQUENCE, - asn_DEF_E2nodeComponentConfigUpdateENB_tags_1, - sizeof(asn_DEF_E2nodeComponentConfigUpdateENB_tags_1) - /sizeof(asn_DEF_E2nodeComponentConfigUpdateENB_tags_1[0]), /* 1 */ - asn_DEF_E2nodeComponentConfigUpdateENB_tags_1, /* Same as above */ - sizeof(asn_DEF_E2nodeComponentConfigUpdateENB_tags_1) - /sizeof(asn_DEF_E2nodeComponentConfigUpdateENB_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E2nodeComponentConfigUpdateENB_1, - 2, /* Elements count */ - &asn_SPC_E2nodeComponentConfigUpdateENB_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigUpdateENB.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigUpdateENB.h deleted file mode 100644 index ad36d72..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigUpdateENB.h +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` - */ - -#ifndef _E2nodeComponentConfigUpdateENB_H_ -#define _E2nodeComponentConfigUpdateENB_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "OCTET_STRING.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* E2nodeComponentConfigUpdateENB */ -typedef struct E2nodeComponentConfigUpdateENB { - OCTET_STRING_t *s1APconfigUpdate; /* OPTIONAL */ - OCTET_STRING_t *x2APconfigUpdate; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E2nodeComponentConfigUpdateENB_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigUpdateENB; -extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigUpdateENB_specs_1; -extern asn_TYPE_member_t asn_MBR_E2nodeComponentConfigUpdateENB_1[2]; - -#ifdef __cplusplus -} -#endif - -#endif /* _E2nodeComponentConfigUpdateENB_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigUpdateENgNB.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigUpdateENgNB.c deleted file mode 100644 index f490891..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigUpdateENgNB.c +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` - */ - -#include "E2nodeComponentConfigUpdateENgNB.h" - -asn_TYPE_member_t asn_MBR_E2nodeComponentConfigUpdateENgNB_1[] = { - { ATF_POINTER, 1, offsetof(struct E2nodeComponentConfigUpdateENgNB, x2APconfigUpdate), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_OCTET_STRING, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "x2APconfigUpdate" - }, -}; -static const int asn_MAP_E2nodeComponentConfigUpdateENgNB_oms_1[] = { 0 }; -static const ber_tlv_tag_t asn_DEF_E2nodeComponentConfigUpdateENgNB_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E2nodeComponentConfigUpdateENgNB_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* x2APconfigUpdate */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigUpdateENgNB_specs_1 = { - sizeof(struct E2nodeComponentConfigUpdateENgNB), - offsetof(struct E2nodeComponentConfigUpdateENgNB, _asn_ctx), - asn_MAP_E2nodeComponentConfigUpdateENgNB_tag2el_1, - 1, /* Count of tags in the map */ - asn_MAP_E2nodeComponentConfigUpdateENgNB_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigUpdateENgNB = { - "E2nodeComponentConfigUpdateENgNB", - "E2nodeComponentConfigUpdateENgNB", - &asn_OP_SEQUENCE, - asn_DEF_E2nodeComponentConfigUpdateENgNB_tags_1, - sizeof(asn_DEF_E2nodeComponentConfigUpdateENgNB_tags_1) - /sizeof(asn_DEF_E2nodeComponentConfigUpdateENgNB_tags_1[0]), /* 1 */ - asn_DEF_E2nodeComponentConfigUpdateENgNB_tags_1, /* Same as above */ - sizeof(asn_DEF_E2nodeComponentConfigUpdateENgNB_tags_1) - /sizeof(asn_DEF_E2nodeComponentConfigUpdateENgNB_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E2nodeComponentConfigUpdateENgNB_1, - 1, /* Elements count */ - &asn_SPC_E2nodeComponentConfigUpdateENgNB_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigUpdateENgNB.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigUpdateENgNB.h deleted file mode 100644 index 9e5dc10..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigUpdateENgNB.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` - */ - -#ifndef _E2nodeComponentConfigUpdateENgNB_H_ -#define _E2nodeComponentConfigUpdateENgNB_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "OCTET_STRING.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* E2nodeComponentConfigUpdateENgNB */ -typedef struct E2nodeComponentConfigUpdateENgNB { - OCTET_STRING_t *x2APconfigUpdate; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E2nodeComponentConfigUpdateENgNB_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigUpdateENgNB; -extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigUpdateENgNB_specs_1; -extern asn_TYPE_member_t asn_MBR_E2nodeComponentConfigUpdateENgNB_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _E2nodeComponentConfigUpdateENgNB_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigUpdateGNB.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigUpdateGNB.c deleted file mode 100644 index 814e676..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigUpdateGNB.c +++ /dev/null @@ -1,82 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` - */ - -#include "E2nodeComponentConfigUpdateGNB.h" - -asn_TYPE_member_t asn_MBR_E2nodeComponentConfigUpdateGNB_1[] = { - { ATF_POINTER, 4, offsetof(struct E2nodeComponentConfigUpdateGNB, ngAPconfigUpdate), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_OCTET_STRING, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ngAPconfigUpdate" - }, - { ATF_POINTER, 3, offsetof(struct E2nodeComponentConfigUpdateGNB, xnAPconfigUpdate), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_OCTET_STRING, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "xnAPconfigUpdate" - }, - { ATF_POINTER, 2, offsetof(struct E2nodeComponentConfigUpdateGNB, e1APconfigUpdate), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_OCTET_STRING, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "e1APconfigUpdate" - }, - { ATF_POINTER, 1, offsetof(struct E2nodeComponentConfigUpdateGNB, f1APconfigUpdate), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_OCTET_STRING, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "f1APconfigUpdate" - }, -}; -static const int asn_MAP_E2nodeComponentConfigUpdateGNB_oms_1[] = { 0, 1, 2, 3 }; -static const ber_tlv_tag_t asn_DEF_E2nodeComponentConfigUpdateGNB_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E2nodeComponentConfigUpdateGNB_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ngAPconfigUpdate */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* xnAPconfigUpdate */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* e1APconfigUpdate */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* f1APconfigUpdate */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigUpdateGNB_specs_1 = { - sizeof(struct E2nodeComponentConfigUpdateGNB), - offsetof(struct E2nodeComponentConfigUpdateGNB, _asn_ctx), - asn_MAP_E2nodeComponentConfigUpdateGNB_tag2el_1, - 4, /* Count of tags in the map */ - asn_MAP_E2nodeComponentConfigUpdateGNB_oms_1, /* Optional members */ - 4, 0, /* Root/Additions */ - 4, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigUpdateGNB = { - "E2nodeComponentConfigUpdateGNB", - "E2nodeComponentConfigUpdateGNB", - &asn_OP_SEQUENCE, - asn_DEF_E2nodeComponentConfigUpdateGNB_tags_1, - sizeof(asn_DEF_E2nodeComponentConfigUpdateGNB_tags_1) - /sizeof(asn_DEF_E2nodeComponentConfigUpdateGNB_tags_1[0]), /* 1 */ - asn_DEF_E2nodeComponentConfigUpdateGNB_tags_1, /* Same as above */ - sizeof(asn_DEF_E2nodeComponentConfigUpdateGNB_tags_1) - /sizeof(asn_DEF_E2nodeComponentConfigUpdateGNB_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E2nodeComponentConfigUpdateGNB_1, - 4, /* Elements count */ - &asn_SPC_E2nodeComponentConfigUpdateGNB_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigUpdateGNB.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigUpdateGNB.h deleted file mode 100644 index ebdeae3..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigUpdateGNB.h +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` - */ - -#ifndef _E2nodeComponentConfigUpdateGNB_H_ -#define _E2nodeComponentConfigUpdateGNB_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "OCTET_STRING.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* E2nodeComponentConfigUpdateGNB */ -typedef struct E2nodeComponentConfigUpdateGNB { - OCTET_STRING_t *ngAPconfigUpdate; /* OPTIONAL */ - OCTET_STRING_t *xnAPconfigUpdate; /* OPTIONAL */ - OCTET_STRING_t *e1APconfigUpdate; /* OPTIONAL */ - OCTET_STRING_t *f1APconfigUpdate; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E2nodeComponentConfigUpdateGNB_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigUpdateGNB; -extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigUpdateGNB_specs_1; -extern asn_TYPE_member_t asn_MBR_E2nodeComponentConfigUpdateGNB_1[4]; - -#ifdef __cplusplus -} -#endif - -#endif /* _E2nodeComponentConfigUpdateGNB_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigUpdateNGeNB.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigUpdateNGeNB.c deleted file mode 100644 index 3c726e9..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigUpdateNGeNB.c +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` - */ - -#include "E2nodeComponentConfigUpdateNGeNB.h" - -asn_TYPE_member_t asn_MBR_E2nodeComponentConfigUpdateNGeNB_1[] = { - { ATF_POINTER, 2, offsetof(struct E2nodeComponentConfigUpdateNGeNB, ngAPconfigUpdate), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_OCTET_STRING, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ngAPconfigUpdate" - }, - { ATF_POINTER, 1, offsetof(struct E2nodeComponentConfigUpdateNGeNB, xnAPconfigUpdate), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_OCTET_STRING, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "xnAPconfigUpdate" - }, -}; -static const int asn_MAP_E2nodeComponentConfigUpdateNGeNB_oms_1[] = { 0, 1 }; -static const ber_tlv_tag_t asn_DEF_E2nodeComponentConfigUpdateNGeNB_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E2nodeComponentConfigUpdateNGeNB_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ngAPconfigUpdate */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* xnAPconfigUpdate */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigUpdateNGeNB_specs_1 = { - sizeof(struct E2nodeComponentConfigUpdateNGeNB), - offsetof(struct E2nodeComponentConfigUpdateNGeNB, _asn_ctx), - asn_MAP_E2nodeComponentConfigUpdateNGeNB_tag2el_1, - 2, /* Count of tags in the map */ - asn_MAP_E2nodeComponentConfigUpdateNGeNB_oms_1, /* Optional members */ - 2, 0, /* Root/Additions */ - 2, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigUpdateNGeNB = { - "E2nodeComponentConfigUpdateNGeNB", - "E2nodeComponentConfigUpdateNGeNB", - &asn_OP_SEQUENCE, - asn_DEF_E2nodeComponentConfigUpdateNGeNB_tags_1, - sizeof(asn_DEF_E2nodeComponentConfigUpdateNGeNB_tags_1) - /sizeof(asn_DEF_E2nodeComponentConfigUpdateNGeNB_tags_1[0]), /* 1 */ - asn_DEF_E2nodeComponentConfigUpdateNGeNB_tags_1, /* Same as above */ - sizeof(asn_DEF_E2nodeComponentConfigUpdateNGeNB_tags_1) - /sizeof(asn_DEF_E2nodeComponentConfigUpdateNGeNB_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E2nodeComponentConfigUpdateNGeNB_1, - 2, /* Elements count */ - &asn_SPC_E2nodeComponentConfigUpdateNGeNB_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigUpdateNGeNB.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigUpdateNGeNB.h deleted file mode 100644 index 116e211..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigUpdateNGeNB.h +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` - */ - -#ifndef _E2nodeComponentConfigUpdateNGeNB_H_ -#define _E2nodeComponentConfigUpdateNGeNB_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "OCTET_STRING.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* E2nodeComponentConfigUpdateNGeNB */ -typedef struct E2nodeComponentConfigUpdateNGeNB { - OCTET_STRING_t *ngAPconfigUpdate; /* OPTIONAL */ - OCTET_STRING_t *xnAPconfigUpdate; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E2nodeComponentConfigUpdateNGeNB_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigUpdateNGeNB; -extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigUpdateNGeNB_specs_1; -extern asn_TYPE_member_t asn_MBR_E2nodeComponentConfigUpdateNGeNB_1[2]; - -#ifdef __cplusplus -} -#endif - -#endif /* _E2nodeComponentConfigUpdateNGeNB_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfiguration.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfiguration.c new file mode 100644 index 0000000..d29312a --- /dev/null +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfiguration.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` + */ + +#include "E2nodeComponentConfiguration.h" + +asn_TYPE_member_t asn_MBR_E2nodeComponentConfiguration_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfiguration, e2nodeComponentRequestPart), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "e2nodeComponentRequestPart" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfiguration, e2nodeComponentResponsePart), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "e2nodeComponentResponsePart" + }, +}; +static const ber_tlv_tag_t asn_DEF_E2nodeComponentConfiguration_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_E2nodeComponentConfiguration_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e2nodeComponentRequestPart */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* e2nodeComponentResponsePart */ +}; +asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfiguration_specs_1 = { + sizeof(struct E2nodeComponentConfiguration), + offsetof(struct E2nodeComponentConfiguration, _asn_ctx), + asn_MAP_E2nodeComponentConfiguration_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfiguration = { + "E2nodeComponentConfiguration", + "E2nodeComponentConfiguration", + &asn_OP_SEQUENCE, + asn_DEF_E2nodeComponentConfiguration_tags_1, + sizeof(asn_DEF_E2nodeComponentConfiguration_tags_1) + /sizeof(asn_DEF_E2nodeComponentConfiguration_tags_1[0]), /* 1 */ + asn_DEF_E2nodeComponentConfiguration_tags_1, /* Same as above */ + sizeof(asn_DEF_E2nodeComponentConfiguration_tags_1) + /sizeof(asn_DEF_E2nodeComponentConfiguration_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_E2nodeComponentConfiguration_1, + 2, /* Elements count */ + &asn_SPC_E2nodeComponentConfiguration_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfiguration.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfiguration.h new file mode 100644 index 0000000..315be3a --- /dev/null +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfiguration.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` + */ + +#ifndef _E2nodeComponentConfiguration_H_ +#define _E2nodeComponentConfiguration_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "OCTET_STRING.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* E2nodeComponentConfiguration */ +typedef struct E2nodeComponentConfiguration { + OCTET_STRING_t e2nodeComponentRequestPart; + OCTET_STRING_t e2nodeComponentResponsePart; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2nodeComponentConfiguration_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfiguration; +extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfiguration_specs_1; +extern asn_TYPE_member_t asn_MBR_E2nodeComponentConfiguration_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2nodeComponentConfiguration_H_ */ +#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigurationAck.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigurationAck.c new file mode 100644 index 0000000..4004d4a --- /dev/null +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigurationAck.c @@ -0,0 +1,114 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` + */ + +#include "E2nodeComponentConfigurationAck.h" + +#include "Cause.h" +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_updateOutcome_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_updateOutcome_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_updateOutcome_value2enum_2[] = { + { 0, 7, "success" }, + { 1, 7, "failure" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_updateOutcome_enum2value_2[] = { + 1, /* failure(1) */ + 0 /* success(0) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_updateOutcome_specs_2 = { + asn_MAP_updateOutcome_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_updateOutcome_enum2value_2, /* N => "tag"; sorted by N */ + 2, /* Number of elements in the maps */ + 3, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_updateOutcome_tags_2[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_updateOutcome_2 = { + "updateOutcome", + "updateOutcome", + &asn_OP_NativeEnumerated, + asn_DEF_updateOutcome_tags_2, + sizeof(asn_DEF_updateOutcome_tags_2) + /sizeof(asn_DEF_updateOutcome_tags_2[0]) - 1, /* 1 */ + asn_DEF_updateOutcome_tags_2, /* Same as above */ + sizeof(asn_DEF_updateOutcome_tags_2) + /sizeof(asn_DEF_updateOutcome_tags_2[0]), /* 2 */ + { &asn_OER_type_updateOutcome_constr_2, &asn_PER_type_updateOutcome_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_updateOutcome_specs_2 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_E2nodeComponentConfigurationAck_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigurationAck, updateOutcome), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_updateOutcome_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "updateOutcome" + }, + { ATF_POINTER, 1, offsetof(struct E2nodeComponentConfigurationAck, failureCause), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_Cause, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "failureCause" + }, +}; +static const int asn_MAP_E2nodeComponentConfigurationAck_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_E2nodeComponentConfigurationAck_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_E2nodeComponentConfigurationAck_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* updateOutcome */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* failureCause */ +}; +asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigurationAck_specs_1 = { + sizeof(struct E2nodeComponentConfigurationAck), + offsetof(struct E2nodeComponentConfigurationAck, _asn_ctx), + asn_MAP_E2nodeComponentConfigurationAck_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_E2nodeComponentConfigurationAck_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigurationAck = { + "E2nodeComponentConfigurationAck", + "E2nodeComponentConfigurationAck", + &asn_OP_SEQUENCE, + asn_DEF_E2nodeComponentConfigurationAck_tags_1, + sizeof(asn_DEF_E2nodeComponentConfigurationAck_tags_1) + /sizeof(asn_DEF_E2nodeComponentConfigurationAck_tags_1[0]), /* 1 */ + asn_DEF_E2nodeComponentConfigurationAck_tags_1, /* Same as above */ + sizeof(asn_DEF_E2nodeComponentConfigurationAck_tags_1) + /sizeof(asn_DEF_E2nodeComponentConfigurationAck_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_E2nodeComponentConfigurationAck_1, + 2, /* Elements count */ + &asn_SPC_E2nodeComponentConfigurationAck_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigurationAck.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigurationAck.h new file mode 100644 index 0000000..bf93bfb --- /dev/null +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentConfigurationAck.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` + */ + +#ifndef _E2nodeComponentConfigurationAck_H_ +#define _E2nodeComponentConfigurationAck_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum E2nodeComponentConfigurationAck__updateOutcome { + E2nodeComponentConfigurationAck__updateOutcome_success = 0, + E2nodeComponentConfigurationAck__updateOutcome_failure = 1 + /* + * Enumeration is extensible + */ +} e_E2nodeComponentConfigurationAck__updateOutcome; + +/* Forward declarations */ +struct Cause; + +/* E2nodeComponentConfigurationAck */ +typedef struct E2nodeComponentConfigurationAck { + long updateOutcome; + struct Cause *failureCause; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2nodeComponentConfigurationAck_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_updateOutcome_2; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigurationAck; +extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigurationAck_specs_1; +extern asn_TYPE_member_t asn_MBR_E2nodeComponentConfigurationAck_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2nodeComponentConfigurationAck_H_ */ +#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentGNB-CU-UP-ID.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentGNB-CU-UP-ID.c deleted file mode 100644 index 9d6da08..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentGNB-CU-UP-ID.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` - */ - -#include "E2nodeComponentGNB-CU-UP-ID.h" - -asn_TYPE_member_t asn_MBR_E2nodeComponentGNB_CU_UP_ID_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentGNB_CU_UP_ID, gNB_CU_UP_ID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GNB_CU_UP_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "gNB-CU-UP-ID" - }, -}; -static const ber_tlv_tag_t asn_DEF_E2nodeComponentGNB_CU_UP_ID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E2nodeComponentGNB_CU_UP_ID_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* gNB-CU-UP-ID */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentGNB_CU_UP_ID_specs_1 = { - sizeof(struct E2nodeComponentGNB_CU_UP_ID), - offsetof(struct E2nodeComponentGNB_CU_UP_ID, _asn_ctx), - asn_MAP_E2nodeComponentGNB_CU_UP_ID_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E2nodeComponentGNB_CU_UP_ID = { - "E2nodeComponentGNB-CU-UP-ID", - "E2nodeComponentGNB-CU-UP-ID", - &asn_OP_SEQUENCE, - asn_DEF_E2nodeComponentGNB_CU_UP_ID_tags_1, - sizeof(asn_DEF_E2nodeComponentGNB_CU_UP_ID_tags_1) - /sizeof(asn_DEF_E2nodeComponentGNB_CU_UP_ID_tags_1[0]), /* 1 */ - asn_DEF_E2nodeComponentGNB_CU_UP_ID_tags_1, /* Same as above */ - sizeof(asn_DEF_E2nodeComponentGNB_CU_UP_ID_tags_1) - /sizeof(asn_DEF_E2nodeComponentGNB_CU_UP_ID_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E2nodeComponentGNB_CU_UP_ID_1, - 1, /* Elements count */ - &asn_SPC_E2nodeComponentGNB_CU_UP_ID_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentGNB-CU-UP-ID.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentGNB-CU-UP-ID.h deleted file mode 100644 index 314e9d4..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentGNB-CU-UP-ID.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` - */ - -#ifndef _E2nodeComponentGNB_CU_UP_ID_H_ -#define _E2nodeComponentGNB_CU_UP_ID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "GNB-CU-UP-ID.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* E2nodeComponentGNB-CU-UP-ID */ -typedef struct E2nodeComponentGNB_CU_UP_ID { - GNB_CU_UP_ID_t gNB_CU_UP_ID; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E2nodeComponentGNB_CU_UP_ID_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentGNB_CU_UP_ID; -extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentGNB_CU_UP_ID_specs_1; -extern asn_TYPE_member_t asn_MBR_E2nodeComponentGNB_CU_UP_ID_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _E2nodeComponentGNB_CU_UP_ID_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentGNB-DU-ID.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentGNB-DU-ID.c deleted file mode 100644 index f2ed742..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentGNB-DU-ID.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` - */ - -#include "E2nodeComponentGNB-DU-ID.h" - -asn_TYPE_member_t asn_MBR_E2nodeComponentGNB_DU_ID_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentGNB_DU_ID, gNB_DU_ID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GNB_DU_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "gNB-DU-ID" - }, -}; -static const ber_tlv_tag_t asn_DEF_E2nodeComponentGNB_DU_ID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E2nodeComponentGNB_DU_ID_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* gNB-DU-ID */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentGNB_DU_ID_specs_1 = { - sizeof(struct E2nodeComponentGNB_DU_ID), - offsetof(struct E2nodeComponentGNB_DU_ID, _asn_ctx), - asn_MAP_E2nodeComponentGNB_DU_ID_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E2nodeComponentGNB_DU_ID = { - "E2nodeComponentGNB-DU-ID", - "E2nodeComponentGNB-DU-ID", - &asn_OP_SEQUENCE, - asn_DEF_E2nodeComponentGNB_DU_ID_tags_1, - sizeof(asn_DEF_E2nodeComponentGNB_DU_ID_tags_1) - /sizeof(asn_DEF_E2nodeComponentGNB_DU_ID_tags_1[0]), /* 1 */ - asn_DEF_E2nodeComponentGNB_DU_ID_tags_1, /* Same as above */ - sizeof(asn_DEF_E2nodeComponentGNB_DU_ID_tags_1) - /sizeof(asn_DEF_E2nodeComponentGNB_DU_ID_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E2nodeComponentGNB_DU_ID_1, - 1, /* Elements count */ - &asn_SPC_E2nodeComponentGNB_DU_ID_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentGNB-DU-ID.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentGNB-DU-ID.h deleted file mode 100644 index 86ed36a..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentGNB-DU-ID.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` - */ - -#ifndef _E2nodeComponentGNB_DU_ID_H_ -#define _E2nodeComponentGNB_DU_ID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "GNB-DU-ID.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* E2nodeComponentGNB-DU-ID */ -typedef struct E2nodeComponentGNB_DU_ID { - GNB_DU_ID_t gNB_DU_ID; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E2nodeComponentGNB_DU_ID_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentGNB_DU_ID; -extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentGNB_DU_ID_specs_1; -extern asn_TYPE_member_t asn_MBR_E2nodeComponentGNB_DU_ID_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _E2nodeComponentGNB_DU_ID_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentID.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentID.c index 3ce23a0..cea878d 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentID.c +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentID.c @@ -1,42 +1,100 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #include "E2nodeComponentID.h" -#include "E2nodeComponentGNB-CU-UP-ID.h" -#include "E2nodeComponentGNB-DU-ID.h" +#include "E2nodeComponentInterfaceNG.h" +#include "E2nodeComponentInterfaceXn.h" +#include "E2nodeComponentInterfaceE1.h" +#include "E2nodeComponentInterfaceF1.h" +#include "E2nodeComponentInterfaceW1.h" +#include "E2nodeComponentInterfaceS1.h" +#include "E2nodeComponentInterfaceX2.h" +static asn_oer_constraints_t asn_OER_type_E2nodeComponentID_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; asn_per_constraints_t asn_PER_type_E2nodeComponentID_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 6 } /* (0..6,...) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; asn_TYPE_member_t asn_MBR_E2nodeComponentID_1[] = { - { ATF_POINTER, 0, offsetof(struct E2nodeComponentID, choice.e2nodeComponentTypeGNB_CU_UP), + { ATF_POINTER, 0, offsetof(struct E2nodeComponentID, choice.e2nodeComponentInterfaceTypeNG), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ - &asn_DEF_E2nodeComponentGNB_CU_UP_ID, + &asn_DEF_E2nodeComponentInterfaceNG, 0, { 0, 0, 0 }, 0, 0, /* No default value */ - "e2nodeComponentTypeGNB-CU-UP" + "e2nodeComponentInterfaceTypeNG" }, - { ATF_POINTER, 0, offsetof(struct E2nodeComponentID, choice.e2nodeComponentTypeGNB_DU), + { ATF_POINTER, 0, offsetof(struct E2nodeComponentID, choice.e2nodeComponentInterfaceTypeXn), (ASN_TAG_CLASS_CONTEXT | (1 << 2)), -1, /* IMPLICIT tag at current level */ - &asn_DEF_E2nodeComponentGNB_DU_ID, + &asn_DEF_E2nodeComponentInterfaceXn, 0, { 0, 0, 0 }, 0, 0, /* No default value */ - "e2nodeComponentTypeGNB-DU" + "e2nodeComponentInterfaceTypeXn" + }, + { ATF_POINTER, 0, offsetof(struct E2nodeComponentID, choice.e2nodeComponentInterfaceTypeE1), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_E2nodeComponentInterfaceE1, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "e2nodeComponentInterfaceTypeE1" + }, + { ATF_POINTER, 0, offsetof(struct E2nodeComponentID, choice.e2nodeComponentInterfaceTypeF1), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_E2nodeComponentInterfaceF1, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "e2nodeComponentInterfaceTypeF1" + }, + { ATF_POINTER, 0, offsetof(struct E2nodeComponentID, choice.e2nodeComponentInterfaceTypeW1), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_E2nodeComponentInterfaceW1, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "e2nodeComponentInterfaceTypeW1" + }, + { ATF_POINTER, 0, offsetof(struct E2nodeComponentID, choice.e2nodeComponentInterfaceTypeS1), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_E2nodeComponentInterfaceS1, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "e2nodeComponentInterfaceTypeS1" + }, + { ATF_POINTER, 0, offsetof(struct E2nodeComponentID, choice.e2nodeComponentInterfaceTypeX2), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_E2nodeComponentInterfaceX2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "e2nodeComponentInterfaceTypeX2" }, }; static const asn_TYPE_tag2member_t asn_MAP_E2nodeComponentID_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e2nodeComponentTypeGNB-CU-UP */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* e2nodeComponentTypeGNB-DU */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e2nodeComponentInterfaceTypeNG */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* e2nodeComponentInterfaceTypeXn */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* e2nodeComponentInterfaceTypeE1 */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* e2nodeComponentInterfaceTypeF1 */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* e2nodeComponentInterfaceTypeW1 */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* e2nodeComponentInterfaceTypeS1 */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 } /* e2nodeComponentInterfaceTypeX2 */ }; asn_CHOICE_specifics_t asn_SPC_E2nodeComponentID_specs_1 = { sizeof(struct E2nodeComponentID), @@ -44,9 +102,9 @@ asn_CHOICE_specifics_t asn_SPC_E2nodeComponentID_specs_1 = { offsetof(struct E2nodeComponentID, present), sizeof(((struct E2nodeComponentID *)0)->present), asn_MAP_E2nodeComponentID_tag2el_1, - 2, /* Count of tags in the map */ + 7, /* Count of tags in the map */ 0, 0, - 2 /* Extensions start */ + 7 /* Extensions start */ }; asn_TYPE_descriptor_t asn_DEF_E2nodeComponentID = { "E2nodeComponentID", @@ -56,9 +114,9 @@ asn_TYPE_descriptor_t asn_DEF_E2nodeComponentID = { 0, /* No effective tags (count) */ 0, /* No tags (pointer) */ 0, /* No tags (count) */ - { 0, &asn_PER_type_E2nodeComponentID_constr_1, CHOICE_constraint }, + { &asn_OER_type_E2nodeComponentID_constr_1, &asn_PER_type_E2nodeComponentID_constr_1, CHOICE_constraint }, asn_MBR_E2nodeComponentID_1, - 2, /* Elements count */ + 7, /* Elements count */ &asn_SPC_E2nodeComponentID_specs_1 /* Additional specs */ }; diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentID.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentID.h index 46b20c3..2c4ac61 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentID.h +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentID.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #ifndef _E2nodeComponentID_H_ @@ -21,22 +21,37 @@ extern "C" { /* Dependencies */ typedef enum E2nodeComponentID_PR { E2nodeComponentID_PR_NOTHING, /* No components present */ - E2nodeComponentID_PR_e2nodeComponentTypeGNB_CU_UP, - E2nodeComponentID_PR_e2nodeComponentTypeGNB_DU + E2nodeComponentID_PR_e2nodeComponentInterfaceTypeNG, + E2nodeComponentID_PR_e2nodeComponentInterfaceTypeXn, + E2nodeComponentID_PR_e2nodeComponentInterfaceTypeE1, + E2nodeComponentID_PR_e2nodeComponentInterfaceTypeF1, + E2nodeComponentID_PR_e2nodeComponentInterfaceTypeW1, + E2nodeComponentID_PR_e2nodeComponentInterfaceTypeS1, + E2nodeComponentID_PR_e2nodeComponentInterfaceTypeX2 /* Extensions may appear below */ } E2nodeComponentID_PR; /* Forward declarations */ -struct E2nodeComponentGNB_CU_UP_ID; -struct E2nodeComponentGNB_DU_ID; +struct E2nodeComponentInterfaceNG; +struct E2nodeComponentInterfaceXn; +struct E2nodeComponentInterfaceE1; +struct E2nodeComponentInterfaceF1; +struct E2nodeComponentInterfaceW1; +struct E2nodeComponentInterfaceS1; +struct E2nodeComponentInterfaceX2; /* E2nodeComponentID */ typedef struct E2nodeComponentID { E2nodeComponentID_PR present; union E2nodeComponentID_u { - struct E2nodeComponentGNB_CU_UP_ID *e2nodeComponentTypeGNB_CU_UP; - struct E2nodeComponentGNB_DU_ID *e2nodeComponentTypeGNB_DU; + struct E2nodeComponentInterfaceNG *e2nodeComponentInterfaceTypeNG; + struct E2nodeComponentInterfaceXn *e2nodeComponentInterfaceTypeXn; + struct E2nodeComponentInterfaceE1 *e2nodeComponentInterfaceTypeE1; + struct E2nodeComponentInterfaceF1 *e2nodeComponentInterfaceTypeF1; + struct E2nodeComponentInterfaceW1 *e2nodeComponentInterfaceTypeW1; + struct E2nodeComponentInterfaceS1 *e2nodeComponentInterfaceTypeS1; + struct E2nodeComponentInterfaceX2 *e2nodeComponentInterfaceTypeX2; /* * This type is extensible, * possible extensions are below. @@ -50,7 +65,7 @@ typedef struct E2nodeComponentID { /* Implementation */ extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentID; extern asn_CHOICE_specifics_t asn_SPC_E2nodeComponentID_specs_1; -extern asn_TYPE_member_t asn_MBR_E2nodeComponentID_1[2]; +extern asn_TYPE_member_t asn_MBR_E2nodeComponentID_1[7]; extern asn_per_constraints_t asn_PER_type_E2nodeComponentID_constr_1; #ifdef __cplusplus diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentInterfaceE1.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentInterfaceE1.c new file mode 100644 index 0000000..ddf06fa --- /dev/null +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentInterfaceE1.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` + */ + +#include "E2nodeComponentInterfaceE1.h" + +asn_TYPE_member_t asn_MBR_E2nodeComponentInterfaceE1_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentInterfaceE1, gNB_CU_CP_ID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_GNB_CU_UP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "gNB-CU-CP-ID" + }, +}; +static const ber_tlv_tag_t asn_DEF_E2nodeComponentInterfaceE1_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_E2nodeComponentInterfaceE1_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* gNB-CU-CP-ID */ +}; +asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentInterfaceE1_specs_1 = { + sizeof(struct E2nodeComponentInterfaceE1), + offsetof(struct E2nodeComponentInterfaceE1, _asn_ctx), + asn_MAP_E2nodeComponentInterfaceE1_tag2el_1, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_E2nodeComponentInterfaceE1 = { + "E2nodeComponentInterfaceE1", + "E2nodeComponentInterfaceE1", + &asn_OP_SEQUENCE, + asn_DEF_E2nodeComponentInterfaceE1_tags_1, + sizeof(asn_DEF_E2nodeComponentInterfaceE1_tags_1) + /sizeof(asn_DEF_E2nodeComponentInterfaceE1_tags_1[0]), /* 1 */ + asn_DEF_E2nodeComponentInterfaceE1_tags_1, /* Same as above */ + sizeof(asn_DEF_E2nodeComponentInterfaceE1_tags_1) + /sizeof(asn_DEF_E2nodeComponentInterfaceE1_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_E2nodeComponentInterfaceE1_1, + 1, /* Elements count */ + &asn_SPC_E2nodeComponentInterfaceE1_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentInterfaceE1.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentInterfaceE1.h new file mode 100644 index 0000000..d563930 --- /dev/null +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentInterfaceE1.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` + */ + +#ifndef _E2nodeComponentInterfaceE1_H_ +#define _E2nodeComponentInterfaceE1_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "GNB-CU-UP-ID.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* E2nodeComponentInterfaceE1 */ +typedef struct E2nodeComponentInterfaceE1 { + GNB_CU_UP_ID_t gNB_CU_CP_ID; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2nodeComponentInterfaceE1_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentInterfaceE1; +extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentInterfaceE1_specs_1; +extern asn_TYPE_member_t asn_MBR_E2nodeComponentInterfaceE1_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2nodeComponentInterfaceE1_H_ */ +#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentInterfaceF1.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentInterfaceF1.c new file mode 100644 index 0000000..d93b874 --- /dev/null +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentInterfaceF1.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` + */ + +#include "E2nodeComponentInterfaceF1.h" + +asn_TYPE_member_t asn_MBR_E2nodeComponentInterfaceF1_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentInterfaceF1, gNB_DU_ID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_GNB_DU_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "gNB-DU-ID" + }, +}; +static const ber_tlv_tag_t asn_DEF_E2nodeComponentInterfaceF1_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_E2nodeComponentInterfaceF1_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* gNB-DU-ID */ +}; +asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentInterfaceF1_specs_1 = { + sizeof(struct E2nodeComponentInterfaceF1), + offsetof(struct E2nodeComponentInterfaceF1, _asn_ctx), + asn_MAP_E2nodeComponentInterfaceF1_tag2el_1, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_E2nodeComponentInterfaceF1 = { + "E2nodeComponentInterfaceF1", + "E2nodeComponentInterfaceF1", + &asn_OP_SEQUENCE, + asn_DEF_E2nodeComponentInterfaceF1_tags_1, + sizeof(asn_DEF_E2nodeComponentInterfaceF1_tags_1) + /sizeof(asn_DEF_E2nodeComponentInterfaceF1_tags_1[0]), /* 1 */ + asn_DEF_E2nodeComponentInterfaceF1_tags_1, /* Same as above */ + sizeof(asn_DEF_E2nodeComponentInterfaceF1_tags_1) + /sizeof(asn_DEF_E2nodeComponentInterfaceF1_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_E2nodeComponentInterfaceF1_1, + 1, /* Elements count */ + &asn_SPC_E2nodeComponentInterfaceF1_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentInterfaceF1.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentInterfaceF1.h new file mode 100644 index 0000000..3c8e082 --- /dev/null +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentInterfaceF1.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` + */ + +#ifndef _E2nodeComponentInterfaceF1_H_ +#define _E2nodeComponentInterfaceF1_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "GNB-DU-ID.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* E2nodeComponentInterfaceF1 */ +typedef struct E2nodeComponentInterfaceF1 { + GNB_DU_ID_t gNB_DU_ID; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2nodeComponentInterfaceF1_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentInterfaceF1; +extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentInterfaceF1_specs_1; +extern asn_TYPE_member_t asn_MBR_E2nodeComponentInterfaceF1_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2nodeComponentInterfaceF1_H_ */ +#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentInterfaceNG.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentInterfaceNG.c new file mode 100644 index 0000000..a8a16e3 --- /dev/null +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentInterfaceNG.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` + */ + +#include "E2nodeComponentInterfaceNG.h" + +asn_TYPE_member_t asn_MBR_E2nodeComponentInterfaceNG_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentInterfaceNG, amf_name), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AMFName, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "amf-name" + }, +}; +static const ber_tlv_tag_t asn_DEF_E2nodeComponentInterfaceNG_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_E2nodeComponentInterfaceNG_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* amf-name */ +}; +asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentInterfaceNG_specs_1 = { + sizeof(struct E2nodeComponentInterfaceNG), + offsetof(struct E2nodeComponentInterfaceNG, _asn_ctx), + asn_MAP_E2nodeComponentInterfaceNG_tag2el_1, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_E2nodeComponentInterfaceNG = { + "E2nodeComponentInterfaceNG", + "E2nodeComponentInterfaceNG", + &asn_OP_SEQUENCE, + asn_DEF_E2nodeComponentInterfaceNG_tags_1, + sizeof(asn_DEF_E2nodeComponentInterfaceNG_tags_1) + /sizeof(asn_DEF_E2nodeComponentInterfaceNG_tags_1[0]), /* 1 */ + asn_DEF_E2nodeComponentInterfaceNG_tags_1, /* Same as above */ + sizeof(asn_DEF_E2nodeComponentInterfaceNG_tags_1) + /sizeof(asn_DEF_E2nodeComponentInterfaceNG_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_E2nodeComponentInterfaceNG_1, + 1, /* Elements count */ + &asn_SPC_E2nodeComponentInterfaceNG_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentInterfaceNG.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentInterfaceNG.h new file mode 100644 index 0000000..cd24525 --- /dev/null +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentInterfaceNG.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` + */ + +#ifndef _E2nodeComponentInterfaceNG_H_ +#define _E2nodeComponentInterfaceNG_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "AMFName.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* E2nodeComponentInterfaceNG */ +typedef struct E2nodeComponentInterfaceNG { + AMFName_t amf_name; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2nodeComponentInterfaceNG_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentInterfaceNG; +extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentInterfaceNG_specs_1; +extern asn_TYPE_member_t asn_MBR_E2nodeComponentInterfaceNG_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2nodeComponentInterfaceNG_H_ */ +#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentInterfaceS1.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentInterfaceS1.c new file mode 100644 index 0000000..cc86742 --- /dev/null +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentInterfaceS1.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` + */ + +#include "E2nodeComponentInterfaceS1.h" + +asn_TYPE_member_t asn_MBR_E2nodeComponentInterfaceS1_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentInterfaceS1, mme_name), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MMEname, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mme-name" + }, +}; +static const ber_tlv_tag_t asn_DEF_E2nodeComponentInterfaceS1_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_E2nodeComponentInterfaceS1_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* mme-name */ +}; +asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentInterfaceS1_specs_1 = { + sizeof(struct E2nodeComponentInterfaceS1), + offsetof(struct E2nodeComponentInterfaceS1, _asn_ctx), + asn_MAP_E2nodeComponentInterfaceS1_tag2el_1, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_E2nodeComponentInterfaceS1 = { + "E2nodeComponentInterfaceS1", + "E2nodeComponentInterfaceS1", + &asn_OP_SEQUENCE, + asn_DEF_E2nodeComponentInterfaceS1_tags_1, + sizeof(asn_DEF_E2nodeComponentInterfaceS1_tags_1) + /sizeof(asn_DEF_E2nodeComponentInterfaceS1_tags_1[0]), /* 1 */ + asn_DEF_E2nodeComponentInterfaceS1_tags_1, /* Same as above */ + sizeof(asn_DEF_E2nodeComponentInterfaceS1_tags_1) + /sizeof(asn_DEF_E2nodeComponentInterfaceS1_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_E2nodeComponentInterfaceS1_1, + 1, /* Elements count */ + &asn_SPC_E2nodeComponentInterfaceS1_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentInterfaceS1.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentInterfaceS1.h new file mode 100644 index 0000000..97893d2 --- /dev/null +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentInterfaceS1.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` + */ + +#ifndef _E2nodeComponentInterfaceS1_H_ +#define _E2nodeComponentInterfaceS1_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "MMEname.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* E2nodeComponentInterfaceS1 */ +typedef struct E2nodeComponentInterfaceS1 { + MMEname_t mme_name; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2nodeComponentInterfaceS1_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentInterfaceS1; +extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentInterfaceS1_specs_1; +extern asn_TYPE_member_t asn_MBR_E2nodeComponentInterfaceS1_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2nodeComponentInterfaceS1_H_ */ +#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentInterfaceType.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentInterfaceType.c new file mode 100644 index 0000000..1db7956 --- /dev/null +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentInterfaceType.c @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` + */ + +#include "E2nodeComponentInterfaceType.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_E2nodeComponentInterfaceType_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_E2nodeComponentInterfaceType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 6 } /* (0..6,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_E2nodeComponentInterfaceType_value2enum_1[] = { + { 0, 2, "ng" }, + { 1, 2, "xn" }, + { 2, 2, "e1" }, + { 3, 2, "f1" }, + { 4, 2, "w1" }, + { 5, 2, "s1" }, + { 6, 2, "x2" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_E2nodeComponentInterfaceType_enum2value_1[] = { + 2, /* e1(2) */ + 3, /* f1(3) */ + 0, /* ng(0) */ + 5, /* s1(5) */ + 4, /* w1(4) */ + 6, /* x2(6) */ + 1 /* xn(1) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_E2nodeComponentInterfaceType_specs_1 = { + asn_MAP_E2nodeComponentInterfaceType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_E2nodeComponentInterfaceType_enum2value_1, /* N => "tag"; sorted by N */ + 7, /* Number of elements in the maps */ + 8, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_E2nodeComponentInterfaceType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_E2nodeComponentInterfaceType = { + "E2nodeComponentInterfaceType", + "E2nodeComponentInterfaceType", + &asn_OP_NativeEnumerated, + asn_DEF_E2nodeComponentInterfaceType_tags_1, + sizeof(asn_DEF_E2nodeComponentInterfaceType_tags_1) + /sizeof(asn_DEF_E2nodeComponentInterfaceType_tags_1[0]), /* 1 */ + asn_DEF_E2nodeComponentInterfaceType_tags_1, /* Same as above */ + sizeof(asn_DEF_E2nodeComponentInterfaceType_tags_1) + /sizeof(asn_DEF_E2nodeComponentInterfaceType_tags_1[0]), /* 1 */ + { &asn_OER_type_E2nodeComponentInterfaceType_constr_1, &asn_PER_type_E2nodeComponentInterfaceType_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_E2nodeComponentInterfaceType_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentInterfaceType.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentInterfaceType.h new file mode 100644 index 0000000..8830afb --- /dev/null +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentInterfaceType.h @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` + */ + +#ifndef _E2nodeComponentInterfaceType_H_ +#define _E2nodeComponentInterfaceType_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum E2nodeComponentInterfaceType { + E2nodeComponentInterfaceType_ng = 0, + E2nodeComponentInterfaceType_xn = 1, + E2nodeComponentInterfaceType_e1 = 2, + E2nodeComponentInterfaceType_f1 = 3, + E2nodeComponentInterfaceType_w1 = 4, + E2nodeComponentInterfaceType_s1 = 5, + E2nodeComponentInterfaceType_x2 = 6 + /* + * Enumeration is extensible + */ +} e_E2nodeComponentInterfaceType; + +/* E2nodeComponentInterfaceType */ +typedef long E2nodeComponentInterfaceType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_E2nodeComponentInterfaceType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentInterfaceType; +extern const asn_INTEGER_specifics_t asn_SPC_E2nodeComponentInterfaceType_specs_1; +asn_struct_free_f E2nodeComponentInterfaceType_free; +asn_struct_print_f E2nodeComponentInterfaceType_print; +asn_constr_check_f E2nodeComponentInterfaceType_constraint; +ber_type_decoder_f E2nodeComponentInterfaceType_decode_ber; +der_type_encoder_f E2nodeComponentInterfaceType_encode_der; +xer_type_decoder_f E2nodeComponentInterfaceType_decode_xer; +xer_type_encoder_f E2nodeComponentInterfaceType_encode_xer; +oer_type_decoder_f E2nodeComponentInterfaceType_decode_oer; +oer_type_encoder_f E2nodeComponentInterfaceType_encode_oer; +per_type_decoder_f E2nodeComponentInterfaceType_decode_uper; +per_type_encoder_f E2nodeComponentInterfaceType_encode_uper; +per_type_decoder_f E2nodeComponentInterfaceType_decode_aper; +per_type_encoder_f E2nodeComponentInterfaceType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2nodeComponentInterfaceType_H_ */ +#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentInterfaceW1.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentInterfaceW1.c new file mode 100644 index 0000000..b25f695 --- /dev/null +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentInterfaceW1.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` + */ + +#include "E2nodeComponentInterfaceW1.h" + +asn_TYPE_member_t asn_MBR_E2nodeComponentInterfaceW1_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentInterfaceW1, ng_eNB_DU_ID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NGENB_DU_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ng-eNB-DU-ID" + }, +}; +static const ber_tlv_tag_t asn_DEF_E2nodeComponentInterfaceW1_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_E2nodeComponentInterfaceW1_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* ng-eNB-DU-ID */ +}; +asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentInterfaceW1_specs_1 = { + sizeof(struct E2nodeComponentInterfaceW1), + offsetof(struct E2nodeComponentInterfaceW1, _asn_ctx), + asn_MAP_E2nodeComponentInterfaceW1_tag2el_1, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_E2nodeComponentInterfaceW1 = { + "E2nodeComponentInterfaceW1", + "E2nodeComponentInterfaceW1", + &asn_OP_SEQUENCE, + asn_DEF_E2nodeComponentInterfaceW1_tags_1, + sizeof(asn_DEF_E2nodeComponentInterfaceW1_tags_1) + /sizeof(asn_DEF_E2nodeComponentInterfaceW1_tags_1[0]), /* 1 */ + asn_DEF_E2nodeComponentInterfaceW1_tags_1, /* Same as above */ + sizeof(asn_DEF_E2nodeComponentInterfaceW1_tags_1) + /sizeof(asn_DEF_E2nodeComponentInterfaceW1_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_E2nodeComponentInterfaceW1_1, + 1, /* Elements count */ + &asn_SPC_E2nodeComponentInterfaceW1_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentInterfaceW1.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentInterfaceW1.h new file mode 100644 index 0000000..29ac2c0 --- /dev/null +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentInterfaceW1.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` + */ + +#ifndef _E2nodeComponentInterfaceW1_H_ +#define _E2nodeComponentInterfaceW1_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NGENB-DU-ID.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* E2nodeComponentInterfaceW1 */ +typedef struct E2nodeComponentInterfaceW1 { + NGENB_DU_ID_t ng_eNB_DU_ID; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2nodeComponentInterfaceW1_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentInterfaceW1; +extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentInterfaceW1_specs_1; +extern asn_TYPE_member_t asn_MBR_E2nodeComponentInterfaceW1_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2nodeComponentInterfaceW1_H_ */ +#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentInterfaceX2.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentInterfaceX2.c new file mode 100644 index 0000000..f271361 --- /dev/null +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentInterfaceX2.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` + */ + +#include "E2nodeComponentInterfaceX2.h" + +#include "GlobalENB-ID.h" +#include "GlobalenGNB-ID.h" +asn_TYPE_member_t asn_MBR_E2nodeComponentInterfaceX2_1[] = { + { ATF_POINTER, 2, offsetof(struct E2nodeComponentInterfaceX2, global_eNB_ID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_GlobalENB_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "global-eNB-ID" + }, + { ATF_POINTER, 1, offsetof(struct E2nodeComponentInterfaceX2, global_en_gNB_ID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_GlobalenGNB_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "global-en-gNB-ID" + }, +}; +static const int asn_MAP_E2nodeComponentInterfaceX2_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_E2nodeComponentInterfaceX2_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_E2nodeComponentInterfaceX2_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* global-eNB-ID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* global-en-gNB-ID */ +}; +asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentInterfaceX2_specs_1 = { + sizeof(struct E2nodeComponentInterfaceX2), + offsetof(struct E2nodeComponentInterfaceX2, _asn_ctx), + asn_MAP_E2nodeComponentInterfaceX2_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_E2nodeComponentInterfaceX2_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_E2nodeComponentInterfaceX2 = { + "E2nodeComponentInterfaceX2", + "E2nodeComponentInterfaceX2", + &asn_OP_SEQUENCE, + asn_DEF_E2nodeComponentInterfaceX2_tags_1, + sizeof(asn_DEF_E2nodeComponentInterfaceX2_tags_1) + /sizeof(asn_DEF_E2nodeComponentInterfaceX2_tags_1[0]), /* 1 */ + asn_DEF_E2nodeComponentInterfaceX2_tags_1, /* Same as above */ + sizeof(asn_DEF_E2nodeComponentInterfaceX2_tags_1) + /sizeof(asn_DEF_E2nodeComponentInterfaceX2_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_E2nodeComponentInterfaceX2_1, + 2, /* Elements count */ + &asn_SPC_E2nodeComponentInterfaceX2_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentInterfaceX2.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentInterfaceX2.h new file mode 100644 index 0000000..d226ea0 --- /dev/null +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentInterfaceX2.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` + */ + +#ifndef _E2nodeComponentInterfaceX2_H_ +#define _E2nodeComponentInterfaceX2_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct GlobalENB_ID; +struct GlobalenGNB_ID; + +/* E2nodeComponentInterfaceX2 */ +typedef struct E2nodeComponentInterfaceX2 { + struct GlobalENB_ID *global_eNB_ID; /* OPTIONAL */ + struct GlobalenGNB_ID *global_en_gNB_ID; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2nodeComponentInterfaceX2_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentInterfaceX2; +extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentInterfaceX2_specs_1; +extern asn_TYPE_member_t asn_MBR_E2nodeComponentInterfaceX2_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2nodeComponentInterfaceX2_H_ */ +#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentInterfaceXn.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentInterfaceXn.c new file mode 100644 index 0000000..0d5646b --- /dev/null +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentInterfaceXn.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` + */ + +#include "E2nodeComponentInterfaceXn.h" + +asn_TYPE_member_t asn_MBR_E2nodeComponentInterfaceXn_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentInterfaceXn, global_NG_RAN_Node_ID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_GlobalNG_RANNode_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "global-NG-RAN-Node-ID" + }, +}; +static const ber_tlv_tag_t asn_DEF_E2nodeComponentInterfaceXn_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_E2nodeComponentInterfaceXn_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* global-NG-RAN-Node-ID */ +}; +asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentInterfaceXn_specs_1 = { + sizeof(struct E2nodeComponentInterfaceXn), + offsetof(struct E2nodeComponentInterfaceXn, _asn_ctx), + asn_MAP_E2nodeComponentInterfaceXn_tag2el_1, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_E2nodeComponentInterfaceXn = { + "E2nodeComponentInterfaceXn", + "E2nodeComponentInterfaceXn", + &asn_OP_SEQUENCE, + asn_DEF_E2nodeComponentInterfaceXn_tags_1, + sizeof(asn_DEF_E2nodeComponentInterfaceXn_tags_1) + /sizeof(asn_DEF_E2nodeComponentInterfaceXn_tags_1[0]), /* 1 */ + asn_DEF_E2nodeComponentInterfaceXn_tags_1, /* Same as above */ + sizeof(asn_DEF_E2nodeComponentInterfaceXn_tags_1) + /sizeof(asn_DEF_E2nodeComponentInterfaceXn_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_E2nodeComponentInterfaceXn_1, + 1, /* Elements count */ + &asn_SPC_E2nodeComponentInterfaceXn_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentInterfaceXn.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentInterfaceXn.h new file mode 100644 index 0000000..5a22510 --- /dev/null +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentInterfaceXn.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` + */ + +#ifndef _E2nodeComponentInterfaceXn_H_ +#define _E2nodeComponentInterfaceXn_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "GlobalNG-RANNode-ID.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* E2nodeComponentInterfaceXn */ +typedef struct E2nodeComponentInterfaceXn { + GlobalNG_RANNode_ID_t global_NG_RAN_Node_ID; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2nodeComponentInterfaceXn_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentInterfaceXn; +extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentInterfaceXn_specs_1; +extern asn_TYPE_member_t asn_MBR_E2nodeComponentInterfaceXn_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2nodeComponentInterfaceXn_H_ */ +#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentType.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentType.c deleted file mode 100644 index ecd690f..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentType.c +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` - */ - -#include "E2nodeComponentType.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_E2nodeComponentType_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 5 } /* (0..5,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_E2nodeComponentType_value2enum_1[] = { - { 0, 3, "gNB" }, - { 1, 9, "gNB-CU-UP" }, - { 2, 6, "gNB-DU" }, - { 3, 6, "en-gNB" }, - { 4, 3, "eNB" }, - { 5, 6, "ng-eNB" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_E2nodeComponentType_enum2value_1[] = { - 4, /* eNB(4) */ - 3, /* en-gNB(3) */ - 0, /* gNB(0) */ - 1, /* gNB-CU-UP(1) */ - 2, /* gNB-DU(2) */ - 5 /* ng-eNB(5) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_E2nodeComponentType_specs_1 = { - asn_MAP_E2nodeComponentType_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_E2nodeComponentType_enum2value_1, /* N => "tag"; sorted by N */ - 6, /* Number of elements in the maps */ - 7, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_E2nodeComponentType_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_E2nodeComponentType = { - "E2nodeComponentType", - "E2nodeComponentType", - &asn_OP_NativeEnumerated, - asn_DEF_E2nodeComponentType_tags_1, - sizeof(asn_DEF_E2nodeComponentType_tags_1) - /sizeof(asn_DEF_E2nodeComponentType_tags_1[0]), /* 1 */ - asn_DEF_E2nodeComponentType_tags_1, /* Same as above */ - sizeof(asn_DEF_E2nodeComponentType_tags_1) - /sizeof(asn_DEF_E2nodeComponentType_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_E2nodeComponentType_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_E2nodeComponentType_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentType.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentType.h deleted file mode 100644 index 7fa6e30..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeComponentType.h +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` - */ - -#ifndef _E2nodeComponentType_H_ -#define _E2nodeComponentType_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum E2nodeComponentType { - E2nodeComponentType_gNB = 0, - E2nodeComponentType_gNB_CU_UP = 1, - E2nodeComponentType_gNB_DU = 2, - E2nodeComponentType_en_gNB = 3, - E2nodeComponentType_eNB = 4, - E2nodeComponentType_ng_eNB = 5 - /* - * Enumeration is extensible - */ -} e_E2nodeComponentType; - -/* E2nodeComponentType */ -typedef long E2nodeComponentType_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_E2nodeComponentType_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentType; -extern const asn_INTEGER_specifics_t asn_SPC_E2nodeComponentType_specs_1; -asn_struct_free_f E2nodeComponentType_free; -asn_struct_print_f E2nodeComponentType_print; -asn_constr_check_f E2nodeComponentType_constraint; -ber_type_decoder_f E2nodeComponentType_decode_ber; -der_type_encoder_f E2nodeComponentType_encode_der; -xer_type_decoder_f E2nodeComponentType_decode_xer; -xer_type_encoder_f E2nodeComponentType_encode_xer; -per_type_decoder_f E2nodeComponentType_decode_uper; -per_type_encoder_f E2nodeComponentType_encode_uper; -per_type_decoder_f E2nodeComponentType_decode_aper; -per_type_encoder_f E2nodeComponentType_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _E2nodeComponentType_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeConfigurationUpdate.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeConfigurationUpdate.c index 812fe76..183a5e7 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeConfigurationUpdate.c +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeConfigurationUpdate.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #include "E2nodeConfigurationUpdate.h" @@ -11,7 +11,7 @@ asn_TYPE_member_t asn_MBR_E2nodeConfigurationUpdate_1[] = { { ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdate, protocolIEs), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_226P17, + &asn_DEF_ProtocolIE_Container_1917P18, 0, { 0, 0, 0 }, 0, 0, /* No default value */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeConfigurationUpdate.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeConfigurationUpdate.h index 72da4aa..23125a1 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeConfigurationUpdate.h +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeConfigurationUpdate.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #ifndef _E2nodeConfigurationUpdate_H_ @@ -21,7 +21,7 @@ extern "C" { /* E2nodeConfigurationUpdate */ typedef struct E2nodeConfigurationUpdate { - ProtocolIE_Container_226P17_t protocolIEs; + ProtocolIE_Container_1917P18_t protocolIEs; /* * This type is extensible, * possible extensions are below. diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeConfigurationUpdateAcknowledge.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeConfigurationUpdateAcknowledge.c index ff1c818..9a35816 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeConfigurationUpdateAcknowledge.c +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeConfigurationUpdateAcknowledge.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #include "E2nodeConfigurationUpdateAcknowledge.h" @@ -11,7 +11,7 @@ asn_TYPE_member_t asn_MBR_E2nodeConfigurationUpdateAcknowledge_1[] = { { ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdateAcknowledge, protocolIEs), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_226P18, + &asn_DEF_ProtocolIE_Container_1917P19, 0, { 0, 0, 0 }, 0, 0, /* No default value */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeConfigurationUpdateAcknowledge.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeConfigurationUpdateAcknowledge.h index a9e1a10..6fdec97 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeConfigurationUpdateAcknowledge.h +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeConfigurationUpdateAcknowledge.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #ifndef _E2nodeConfigurationUpdateAcknowledge_H_ @@ -21,7 +21,7 @@ extern "C" { /* E2nodeConfigurationUpdateAcknowledge */ typedef struct E2nodeConfigurationUpdateAcknowledge { - ProtocolIE_Container_226P18_t protocolIEs; + ProtocolIE_Container_1917P19_t protocolIEs; /* * This type is extensible, * possible extensions are below. diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeConfigurationUpdateFailure.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeConfigurationUpdateFailure.c index c002b9b..3933041 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeConfigurationUpdateFailure.c +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeConfigurationUpdateFailure.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #include "E2nodeConfigurationUpdateFailure.h" @@ -11,7 +11,7 @@ asn_TYPE_member_t asn_MBR_E2nodeConfigurationUpdateFailure_1[] = { { ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdateFailure, protocolIEs), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_226P19, + &asn_DEF_ProtocolIE_Container_1917P20, 0, { 0, 0, 0 }, 0, 0, /* No default value */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeConfigurationUpdateFailure.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeConfigurationUpdateFailure.h index 89067d3..ddde6a1 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeConfigurationUpdateFailure.h +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeConfigurationUpdateFailure.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #ifndef _E2nodeConfigurationUpdateFailure_H_ @@ -21,7 +21,7 @@ extern "C" { /* E2nodeConfigurationUpdateFailure */ typedef struct E2nodeConfigurationUpdateFailure { - ProtocolIE_Container_226P19_t protocolIEs; + ProtocolIE_Container_1917P20_t protocolIEs; /* * This type is extensible, * possible extensions are below. diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeTNLassociationRemoval-Item.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeTNLassociationRemoval-Item.c new file mode 100644 index 0000000..c2ecd03 --- /dev/null +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeTNLassociationRemoval-Item.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` + */ + +#include "E2nodeTNLassociationRemoval-Item.h" + +static asn_TYPE_member_t asn_MBR_E2nodeTNLassociationRemoval_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2nodeTNLassociationRemoval_Item, tnlInformation), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TNLinformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tnlInformation" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2nodeTNLassociationRemoval_Item, tnlInformationRIC), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TNLinformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tnlInformationRIC" + }, +}; +static const ber_tlv_tag_t asn_DEF_E2nodeTNLassociationRemoval_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_E2nodeTNLassociationRemoval_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* tnlInformation */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* tnlInformationRIC */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_E2nodeTNLassociationRemoval_Item_specs_1 = { + sizeof(struct E2nodeTNLassociationRemoval_Item), + offsetof(struct E2nodeTNLassociationRemoval_Item, _asn_ctx), + asn_MAP_E2nodeTNLassociationRemoval_Item_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_E2nodeTNLassociationRemoval_Item = { + "E2nodeTNLassociationRemoval-Item", + "E2nodeTNLassociationRemoval-Item", + &asn_OP_SEQUENCE, + asn_DEF_E2nodeTNLassociationRemoval_Item_tags_1, + sizeof(asn_DEF_E2nodeTNLassociationRemoval_Item_tags_1) + /sizeof(asn_DEF_E2nodeTNLassociationRemoval_Item_tags_1[0]), /* 1 */ + asn_DEF_E2nodeTNLassociationRemoval_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_E2nodeTNLassociationRemoval_Item_tags_1) + /sizeof(asn_DEF_E2nodeTNLassociationRemoval_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_E2nodeTNLassociationRemoval_Item_1, + 2, /* Elements count */ + &asn_SPC_E2nodeTNLassociationRemoval_Item_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeTNLassociationRemoval-Item.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeTNLassociationRemoval-Item.h new file mode 100644 index 0000000..d31e5b7 --- /dev/null +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeTNLassociationRemoval-Item.h @@ -0,0 +1,43 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` + */ + +#ifndef _E2nodeTNLassociationRemoval_Item_H_ +#define _E2nodeTNLassociationRemoval_Item_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "TNLinformation.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* E2nodeTNLassociationRemoval-Item */ +typedef struct E2nodeTNLassociationRemoval_Item { + TNLinformation_t tnlInformation; + TNLinformation_t tnlInformationRIC; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2nodeTNLassociationRemoval_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_E2nodeTNLassociationRemoval_Item; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2nodeTNLassociationRemoval_Item_H_ */ +#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeTNLassociationRemoval-List.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeTNLassociationRemoval-List.c new file mode 100644 index 0000000..8993424 --- /dev/null +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeTNLassociationRemoval-List.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` + */ + +#include "E2nodeTNLassociationRemoval-List.h" + +#include "ProtocolIE-SingleContainer.h" +static asn_oer_constraints_t asn_OER_type_E2nodeTNLassociationRemoval_List_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +static asn_per_constraints_t asn_PER_type_E2nodeTNLassociationRemoval_List_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_E2nodeTNLassociationRemoval_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ProtocolIE_SingleContainer_1920P10, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_E2nodeTNLassociationRemoval_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_E2nodeTNLassociationRemoval_List_specs_1 = { + sizeof(struct E2nodeTNLassociationRemoval_List), + offsetof(struct E2nodeTNLassociationRemoval_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_E2nodeTNLassociationRemoval_List = { + "E2nodeTNLassociationRemoval-List", + "E2nodeTNLassociationRemoval-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_E2nodeTNLassociationRemoval_List_tags_1, + sizeof(asn_DEF_E2nodeTNLassociationRemoval_List_tags_1) + /sizeof(asn_DEF_E2nodeTNLassociationRemoval_List_tags_1[0]), /* 1 */ + asn_DEF_E2nodeTNLassociationRemoval_List_tags_1, /* Same as above */ + sizeof(asn_DEF_E2nodeTNLassociationRemoval_List_tags_1) + /sizeof(asn_DEF_E2nodeTNLassociationRemoval_List_tags_1[0]), /* 1 */ + { &asn_OER_type_E2nodeTNLassociationRemoval_List_constr_1, &asn_PER_type_E2nodeTNLassociationRemoval_List_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_E2nodeTNLassociationRemoval_List_1, + 1, /* Single element */ + &asn_SPC_E2nodeTNLassociationRemoval_List_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeTNLassociationRemoval-List.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeTNLassociationRemoval-List.h new file mode 100644 index 0000000..193e626 --- /dev/null +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2nodeTNLassociationRemoval-List.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` + */ + +#ifndef _E2nodeTNLassociationRemoval_List_H_ +#define _E2nodeTNLassociationRemoval_List_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolIE_SingleContainer; + +/* E2nodeTNLassociationRemoval-List */ +typedef struct E2nodeTNLassociationRemoval_List { + A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2nodeTNLassociationRemoval_List_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_E2nodeTNLassociationRemoval_List; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2nodeTNLassociationRemoval_List_H_ */ +#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2setupFailure.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2setupFailure.c index 3107c7a..0b7cab5 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2setupFailure.c +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2setupFailure.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #include "E2setupFailure.h" @@ -11,7 +11,7 @@ asn_TYPE_member_t asn_MBR_E2setupFailure_1[] = { { ATF_NOFLAGS, 0, offsetof(struct E2setupFailure, protocolIEs), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_226P13, + &asn_DEF_ProtocolIE_Container_1917P14, 0, { 0, 0, 0 }, 0, 0, /* No default value */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2setupFailure.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2setupFailure.h index c03a588..0d8c71e 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2setupFailure.h +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2setupFailure.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #ifndef _E2setupFailure_H_ @@ -21,7 +21,7 @@ extern "C" { /* E2setupFailure */ typedef struct E2setupFailure { - ProtocolIE_Container_226P13_t protocolIEs; + ProtocolIE_Container_1917P14_t protocolIEs; /* * This type is extensible, * possible extensions are below. diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2setupRequest.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2setupRequest.c index 6535e6c..4b7af4f 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2setupRequest.c +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2setupRequest.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #include "E2setupRequest.h" @@ -11,7 +11,7 @@ asn_TYPE_member_t asn_MBR_E2setupRequest_1[] = { { ATF_NOFLAGS, 0, offsetof(struct E2setupRequest, protocolIEs), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_226P11, + &asn_DEF_ProtocolIE_Container_1917P12, 0, { 0, 0, 0 }, 0, 0, /* No default value */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2setupRequest.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2setupRequest.h index 4e58ba1..89093d7 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2setupRequest.h +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2setupRequest.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #ifndef _E2setupRequest_H_ @@ -21,7 +21,7 @@ extern "C" { /* E2setupRequest */ typedef struct E2setupRequest { - ProtocolIE_Container_226P11_t protocolIEs; + ProtocolIE_Container_1917P12_t protocolIEs; /* * This type is extensible, * possible extensions are below. diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2setupResponse.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2setupResponse.c index 0c94082..8e82484 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2setupResponse.c +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2setupResponse.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #include "E2setupResponse.h" @@ -11,7 +11,7 @@ asn_TYPE_member_t asn_MBR_E2setupResponse_1[] = { { ATF_NOFLAGS, 0, offsetof(struct E2setupResponse, protocolIEs), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_226P12, + &asn_DEF_ProtocolIE_Container_1917P13, 0, { 0, 0, 0 }, 0, 0, /* No default value */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2setupResponse.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2setupResponse.h index 0d8ec2e..d69675d 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2setupResponse.h +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/E2setupResponse.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #ifndef _E2setupResponse_H_ @@ -21,7 +21,7 @@ extern "C" { /* E2setupResponse */ typedef struct E2setupResponse { - ProtocolIE_Container_226P12_t protocolIEs; + ProtocolIE_Container_1917P13_t protocolIEs; /* * This type is extensible, * possible extensions are below. diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ENB-ID-Choice.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ENB-ID-Choice.c index 2892b2e..e3e8c6e 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ENB-ID-Choice.c +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ENB-ID-Choice.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #include "ENB-ID-Choice.h" @@ -100,21 +100,33 @@ memb_enb_ID_longmacro_constraint_1(const asn_TYPE_descriptor_t *td, const void * } } +static asn_oer_constraints_t asn_OER_memb_enb_ID_macro_constr_2 CC_NOTUSED = { + { 0, 0 }, + 20 /* (SIZE(20..20)) */}; static asn_per_constraints_t asn_PER_memb_enb_ID_macro_constr_2 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 0, 0, 20, 20 } /* (SIZE(20..20)) */, 0, 0 /* No PER value map */ }; +static asn_oer_constraints_t asn_OER_memb_enb_ID_shortmacro_constr_3 CC_NOTUSED = { + { 0, 0 }, + 18 /* (SIZE(18..18)) */}; static asn_per_constraints_t asn_PER_memb_enb_ID_shortmacro_constr_3 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 0, 0, 18, 18 } /* (SIZE(18..18)) */, 0, 0 /* No PER value map */ }; +static asn_oer_constraints_t asn_OER_memb_enb_ID_longmacro_constr_4 CC_NOTUSED = { + { 0, 0 }, + 21 /* (SIZE(21..21)) */}; static asn_per_constraints_t asn_PER_memb_enb_ID_longmacro_constr_4 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 0, 0, 21, 21 } /* (SIZE(21..21)) */, 0, 0 /* No PER value map */ }; +static asn_oer_constraints_t asn_OER_type_ENB_ID_Choice_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; asn_per_constraints_t asn_PER_type_ENB_ID_Choice_constr_1 CC_NOTUSED = { { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 2 } /* (0..2,...) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, @@ -126,7 +138,7 @@ asn_TYPE_member_t asn_MBR_ENB_ID_Choice_1[] = { -1, /* IMPLICIT tag at current level */ &asn_DEF_BIT_STRING, 0, - { 0, &asn_PER_memb_enb_ID_macro_constr_2, memb_enb_ID_macro_constraint_1 }, + { &asn_OER_memb_enb_ID_macro_constr_2, &asn_PER_memb_enb_ID_macro_constr_2, memb_enb_ID_macro_constraint_1 }, 0, 0, /* No default value */ "enb-ID-macro" }, @@ -135,7 +147,7 @@ asn_TYPE_member_t asn_MBR_ENB_ID_Choice_1[] = { -1, /* IMPLICIT tag at current level */ &asn_DEF_BIT_STRING, 0, - { 0, &asn_PER_memb_enb_ID_shortmacro_constr_3, memb_enb_ID_shortmacro_constraint_1 }, + { &asn_OER_memb_enb_ID_shortmacro_constr_3, &asn_PER_memb_enb_ID_shortmacro_constr_3, memb_enb_ID_shortmacro_constraint_1 }, 0, 0, /* No default value */ "enb-ID-shortmacro" }, @@ -144,7 +156,7 @@ asn_TYPE_member_t asn_MBR_ENB_ID_Choice_1[] = { -1, /* IMPLICIT tag at current level */ &asn_DEF_BIT_STRING, 0, - { 0, &asn_PER_memb_enb_ID_longmacro_constr_4, memb_enb_ID_longmacro_constraint_1 }, + { &asn_OER_memb_enb_ID_longmacro_constr_4, &asn_PER_memb_enb_ID_longmacro_constr_4, memb_enb_ID_longmacro_constraint_1 }, 0, 0, /* No default value */ "enb-ID-longmacro" }, @@ -172,7 +184,7 @@ asn_TYPE_descriptor_t asn_DEF_ENB_ID_Choice = { 0, /* No effective tags (count) */ 0, /* No tags (pointer) */ 0, /* No tags (count) */ - { 0, &asn_PER_type_ENB_ID_Choice_constr_1, CHOICE_constraint }, + { &asn_OER_type_ENB_ID_Choice_constr_1, &asn_PER_type_ENB_ID_Choice_constr_1, CHOICE_constraint }, asn_MBR_ENB_ID_Choice_1, 3, /* Elements count */ &asn_SPC_ENB_ID_Choice_specs_1 /* Additional specs */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ENB-ID-Choice.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ENB-ID-Choice.h index 7606e10..ee499d8 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ENB-ID-Choice.h +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ENB-ID-Choice.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #ifndef _ENB_ID_Choice_H_ diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ENB-ID.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ENB-ID.c index 75089a2..31c7893 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ENB-ID.c +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ENB-ID.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #include "ENB-ID.h" @@ -131,26 +131,41 @@ memb_long_Macro_eNB_ID_constraint_1(const asn_TYPE_descriptor_t *td, const void } } +static asn_oer_constraints_t asn_OER_memb_macro_eNB_ID_constr_2 CC_NOTUSED = { + { 0, 0 }, + 20 /* (SIZE(20..20)) */}; static asn_per_constraints_t asn_PER_memb_macro_eNB_ID_constr_2 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 0, 0, 20, 20 } /* (SIZE(20..20)) */, 0, 0 /* No PER value map */ }; +static asn_oer_constraints_t asn_OER_memb_home_eNB_ID_constr_3 CC_NOTUSED = { + { 0, 0 }, + 28 /* (SIZE(28..28)) */}; static asn_per_constraints_t asn_PER_memb_home_eNB_ID_constr_3 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 0, 0, 28, 28 } /* (SIZE(28..28)) */, 0, 0 /* No PER value map */ }; +static asn_oer_constraints_t asn_OER_memb_short_Macro_eNB_ID_constr_5 CC_NOTUSED = { + { 0, 0 }, + 18 /* (SIZE(18..18)) */}; static asn_per_constraints_t asn_PER_memb_short_Macro_eNB_ID_constr_5 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 0, 0, 18, 18 } /* (SIZE(18..18)) */, 0, 0 /* No PER value map */ }; +static asn_oer_constraints_t asn_OER_memb_long_Macro_eNB_ID_constr_6 CC_NOTUSED = { + { 0, 0 }, + 21 /* (SIZE(21..21)) */}; static asn_per_constraints_t asn_PER_memb_long_Macro_eNB_ID_constr_6 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 0, 0, 21, 21 } /* (SIZE(21..21)) */, 0, 0 /* No PER value map */ }; +static asn_oer_constraints_t asn_OER_type_ENB_ID_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; asn_per_constraints_t asn_PER_type_ENB_ID_constr_1 CC_NOTUSED = { { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, @@ -162,7 +177,7 @@ asn_TYPE_member_t asn_MBR_ENB_ID_1[] = { -1, /* IMPLICIT tag at current level */ &asn_DEF_BIT_STRING, 0, - { 0, &asn_PER_memb_macro_eNB_ID_constr_2, memb_macro_eNB_ID_constraint_1 }, + { &asn_OER_memb_macro_eNB_ID_constr_2, &asn_PER_memb_macro_eNB_ID_constr_2, memb_macro_eNB_ID_constraint_1 }, 0, 0, /* No default value */ "macro-eNB-ID" }, @@ -171,7 +186,7 @@ asn_TYPE_member_t asn_MBR_ENB_ID_1[] = { -1, /* IMPLICIT tag at current level */ &asn_DEF_BIT_STRING, 0, - { 0, &asn_PER_memb_home_eNB_ID_constr_3, memb_home_eNB_ID_constraint_1 }, + { &asn_OER_memb_home_eNB_ID_constr_3, &asn_PER_memb_home_eNB_ID_constr_3, memb_home_eNB_ID_constraint_1 }, 0, 0, /* No default value */ "home-eNB-ID" }, @@ -180,7 +195,7 @@ asn_TYPE_member_t asn_MBR_ENB_ID_1[] = { -1, /* IMPLICIT tag at current level */ &asn_DEF_BIT_STRING, 0, - { 0, &asn_PER_memb_short_Macro_eNB_ID_constr_5, memb_short_Macro_eNB_ID_constraint_1 }, + { &asn_OER_memb_short_Macro_eNB_ID_constr_5, &asn_PER_memb_short_Macro_eNB_ID_constr_5, memb_short_Macro_eNB_ID_constraint_1 }, 0, 0, /* No default value */ "short-Macro-eNB-ID" }, @@ -189,7 +204,7 @@ asn_TYPE_member_t asn_MBR_ENB_ID_1[] = { -1, /* IMPLICIT tag at current level */ &asn_DEF_BIT_STRING, 0, - { 0, &asn_PER_memb_long_Macro_eNB_ID_constr_6, memb_long_Macro_eNB_ID_constraint_1 }, + { &asn_OER_memb_long_Macro_eNB_ID_constr_6, &asn_PER_memb_long_Macro_eNB_ID_constr_6, memb_long_Macro_eNB_ID_constraint_1 }, 0, 0, /* No default value */ "long-Macro-eNB-ID" }, @@ -218,7 +233,7 @@ asn_TYPE_descriptor_t asn_DEF_ENB_ID = { 0, /* No effective tags (count) */ 0, /* No tags (pointer) */ 0, /* No tags (count) */ - { 0, &asn_PER_type_ENB_ID_constr_1, CHOICE_constraint }, + { &asn_OER_type_ENB_ID_constr_1, &asn_PER_type_ENB_ID_constr_1, CHOICE_constraint }, asn_MBR_ENB_ID_1, 4, /* Elements count */ &asn_SPC_ENB_ID_specs_1 /* Additional specs */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ENB-ID.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ENB-ID.h index 89f3217..5af5286 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ENB-ID.h +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ENB-ID.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #ifndef _ENB_ID_H_ diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ENGNB-ID.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ENGNB-ID.c index 7f2346c..775d556 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ENGNB-ID.c +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ENGNB-ID.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #include "ENGNB-ID.h" @@ -38,11 +38,17 @@ memb_gNB_ID_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, } } +static asn_oer_constraints_t asn_OER_memb_gNB_ID_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(22..32)) */}; static asn_per_constraints_t asn_PER_memb_gNB_ID_constr_2 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 4, 4, 22, 32 } /* (SIZE(22..32)) */, 0, 0 /* No PER value map */ }; +static asn_oer_constraints_t asn_OER_type_ENGNB_ID_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; asn_per_constraints_t asn_PER_type_ENGNB_ID_constr_1 CC_NOTUSED = { { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 0, 0 } /* (0..0,...) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, @@ -54,7 +60,7 @@ asn_TYPE_member_t asn_MBR_ENGNB_ID_1[] = { -1, /* IMPLICIT tag at current level */ &asn_DEF_BIT_STRING, 0, - { 0, &asn_PER_memb_gNB_ID_constr_2, memb_gNB_ID_constraint_1 }, + { &asn_OER_memb_gNB_ID_constr_2, &asn_PER_memb_gNB_ID_constr_2, memb_gNB_ID_constraint_1 }, 0, 0, /* No default value */ "gNB-ID" }, @@ -80,7 +86,7 @@ asn_TYPE_descriptor_t asn_DEF_ENGNB_ID = { 0, /* No effective tags (count) */ 0, /* No tags (pointer) */ 0, /* No tags (count) */ - { 0, &asn_PER_type_ENGNB_ID_constr_1, CHOICE_constraint }, + { &asn_OER_type_ENGNB_ID_constr_1, &asn_PER_type_ENGNB_ID_constr_1, CHOICE_constraint }, asn_MBR_ENGNB_ID_1, 1, /* Elements count */ &asn_SPC_ENGNB_ID_specs_1 /* Additional specs */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ENGNB-ID.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ENGNB-ID.h index 738674a..2a7ce8b 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ENGNB-ID.h +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ENGNB-ID.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #ifndef _ENGNB_ID_H_ diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ErrorIndication.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ErrorIndication.c index a042ab0..209a036 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ErrorIndication.c +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ErrorIndication.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #include "ErrorIndication.h" @@ -11,7 +11,7 @@ asn_TYPE_member_t asn_MBR_ErrorIndication_1[] = { { ATF_NOFLAGS, 0, offsetof(struct ErrorIndication, protocolIEs), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_226P10, + &asn_DEF_ProtocolIE_Container_1917P11, 0, { 0, 0, 0 }, 0, 0, /* No default value */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ErrorIndication.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ErrorIndication.h index 42154e5..ed0676e 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ErrorIndication.h +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ErrorIndication.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #ifndef _ErrorIndication_H_ @@ -21,7 +21,7 @@ extern "C" { /* ErrorIndication */ typedef struct ErrorIndication { - ProtocolIE_Container_226P10_t protocolIEs; + ProtocolIE_Container_1917P11_t protocolIEs; /* * This type is extensible, * possible extensions are below. diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GNB-CU-UP-ID.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GNB-CU-UP-ID.c index f66e62b..ce383bd 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GNB-CU-UP-ID.c +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GNB-CU-UP-ID.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #include "GNB-CU-UP-ID.h" @@ -42,6 +42,9 @@ GNB_CU_UP_ID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, * This type is implemented using INTEGER, * so here we adjust the DEF accordingly. */ +static asn_oer_constraints_t asn_OER_type_GNB_CU_UP_ID_constr_1 CC_NOTUSED = { + { 8, 1 } /* (0..68719476735) */, + -1}; asn_per_constraints_t asn_PER_type_GNB_CU_UP_ID_constr_1 CC_NOTUSED = { { APC_CONSTRAINED, 36, -1, 0, 68719476735 } /* (0..68719476735) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, @@ -60,7 +63,7 @@ asn_TYPE_descriptor_t asn_DEF_GNB_CU_UP_ID = { asn_DEF_GNB_CU_UP_ID_tags_1, /* Same as above */ sizeof(asn_DEF_GNB_CU_UP_ID_tags_1) /sizeof(asn_DEF_GNB_CU_UP_ID_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_GNB_CU_UP_ID_constr_1, GNB_CU_UP_ID_constraint }, + { &asn_OER_type_GNB_CU_UP_ID_constr_1, &asn_PER_type_GNB_CU_UP_ID_constr_1, GNB_CU_UP_ID_constraint }, 0, 0, /* No members */ 0 /* No specifics */ }; diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GNB-CU-UP-ID.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GNB-CU-UP-ID.h index 6aedbb6..38093ef 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GNB-CU-UP-ID.h +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GNB-CU-UP-ID.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #ifndef _GNB_CU_UP_ID_H_ @@ -31,6 +31,8 @@ ber_type_decoder_f GNB_CU_UP_ID_decode_ber; der_type_encoder_f GNB_CU_UP_ID_encode_der; xer_type_decoder_f GNB_CU_UP_ID_decode_xer; xer_type_encoder_f GNB_CU_UP_ID_encode_xer; +oer_type_decoder_f GNB_CU_UP_ID_decode_oer; +oer_type_encoder_f GNB_CU_UP_ID_encode_oer; per_type_decoder_f GNB_CU_UP_ID_decode_uper; per_type_encoder_f GNB_CU_UP_ID_encode_uper; per_type_decoder_f GNB_CU_UP_ID_decode_aper; diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GNB-DU-ID.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GNB-DU-ID.c index 4eb8a31..1296c02 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GNB-DU-ID.c +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GNB-DU-ID.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #include "GNB-DU-ID.h" @@ -42,6 +42,9 @@ GNB_DU_ID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, * This type is implemented using INTEGER, * so here we adjust the DEF accordingly. */ +static asn_oer_constraints_t asn_OER_type_GNB_DU_ID_constr_1 CC_NOTUSED = { + { 8, 1 } /* (0..68719476735) */, + -1}; asn_per_constraints_t asn_PER_type_GNB_DU_ID_constr_1 CC_NOTUSED = { { APC_CONSTRAINED, 36, -1, 0, 68719476735 } /* (0..68719476735) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, @@ -60,7 +63,7 @@ asn_TYPE_descriptor_t asn_DEF_GNB_DU_ID = { asn_DEF_GNB_DU_ID_tags_1, /* Same as above */ sizeof(asn_DEF_GNB_DU_ID_tags_1) /sizeof(asn_DEF_GNB_DU_ID_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_GNB_DU_ID_constr_1, GNB_DU_ID_constraint }, + { &asn_OER_type_GNB_DU_ID_constr_1, &asn_PER_type_GNB_DU_ID_constr_1, GNB_DU_ID_constraint }, 0, 0, /* No members */ 0 /* No specifics */ }; diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GNB-DU-ID.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GNB-DU-ID.h index a90c182..0432111 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GNB-DU-ID.h +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GNB-DU-ID.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #ifndef _GNB_DU_ID_H_ @@ -31,6 +31,8 @@ ber_type_decoder_f GNB_DU_ID_decode_ber; der_type_encoder_f GNB_DU_ID_encode_der; xer_type_decoder_f GNB_DU_ID_decode_xer; xer_type_encoder_f GNB_DU_ID_encode_xer; +oer_type_decoder_f GNB_DU_ID_decode_oer; +oer_type_encoder_f GNB_DU_ID_encode_oer; per_type_decoder_f GNB_DU_ID_decode_uper; per_type_encoder_f GNB_DU_ID_encode_uper; per_type_decoder_f GNB_DU_ID_decode_aper; diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GNB-ID-Choice.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GNB-ID-Choice.c index 2894314..274bcec 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GNB-ID-Choice.c +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GNB-ID-Choice.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #include "GNB-ID-Choice.h" @@ -38,11 +38,17 @@ memb_gnb_ID_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, } } +static asn_oer_constraints_t asn_OER_memb_gnb_ID_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(22..32)) */}; static asn_per_constraints_t asn_PER_memb_gnb_ID_constr_2 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 4, 4, 22, 32 } /* (SIZE(22..32)) */, 0, 0 /* No PER value map */ }; +static asn_oer_constraints_t asn_OER_type_GNB_ID_Choice_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; asn_per_constraints_t asn_PER_type_GNB_ID_Choice_constr_1 CC_NOTUSED = { { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 0, 0 } /* (0..0,...) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, @@ -54,7 +60,7 @@ asn_TYPE_member_t asn_MBR_GNB_ID_Choice_1[] = { -1, /* IMPLICIT tag at current level */ &asn_DEF_BIT_STRING, 0, - { 0, &asn_PER_memb_gnb_ID_constr_2, memb_gnb_ID_constraint_1 }, + { &asn_OER_memb_gnb_ID_constr_2, &asn_PER_memb_gnb_ID_constr_2, memb_gnb_ID_constraint_1 }, 0, 0, /* No default value */ "gnb-ID" }, @@ -80,7 +86,7 @@ asn_TYPE_descriptor_t asn_DEF_GNB_ID_Choice = { 0, /* No effective tags (count) */ 0, /* No tags (pointer) */ 0, /* No tags (count) */ - { 0, &asn_PER_type_GNB_ID_Choice_constr_1, CHOICE_constraint }, + { &asn_OER_type_GNB_ID_Choice_constr_1, &asn_PER_type_GNB_ID_Choice_constr_1, CHOICE_constraint }, asn_MBR_GNB_ID_Choice_1, 1, /* Elements count */ &asn_SPC_GNB_ID_Choice_specs_1 /* Additional specs */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GNB-ID-Choice.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GNB-ID-Choice.h index 03b6142..58bc4a5 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GNB-ID-Choice.h +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GNB-ID-Choice.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #ifndef _GNB_ID_Choice_H_ diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalE2node-ID.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalE2node-ID.c index d940c03..65bc445 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalE2node-ID.c +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalE2node-ID.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #include "GlobalE2node-ID.h" @@ -11,12 +11,15 @@ #include "GlobalE2node-en-gNB-ID.h" #include "GlobalE2node-ng-eNB-ID.h" #include "GlobalE2node-eNB-ID.h" -asn_per_constraints_t asn_PER_type_GlobalE2node_ID_constr_1 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_type_GlobalE2node_ID_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_GlobalE2node_ID_constr_1 CC_NOTUSED = { { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 3 } /* (0..3,...) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; -asn_TYPE_member_t asn_MBR_GlobalE2node_ID_1[] = { +static asn_TYPE_member_t asn_MBR_GlobalE2node_ID_1[] = { { ATF_POINTER, 0, offsetof(struct GlobalE2node_ID, choice.gNB), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ @@ -60,7 +63,7 @@ static const asn_TYPE_tag2member_t asn_MAP_GlobalE2node_ID_tag2el_1[] = { { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* ng-eNB */ { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* eNB */ }; -asn_CHOICE_specifics_t asn_SPC_GlobalE2node_ID_specs_1 = { +static asn_CHOICE_specifics_t asn_SPC_GlobalE2node_ID_specs_1 = { sizeof(struct GlobalE2node_ID), offsetof(struct GlobalE2node_ID, _asn_ctx), offsetof(struct GlobalE2node_ID, present), @@ -78,7 +81,7 @@ asn_TYPE_descriptor_t asn_DEF_GlobalE2node_ID = { 0, /* No effective tags (count) */ 0, /* No tags (pointer) */ 0, /* No tags (count) */ - { 0, &asn_PER_type_GlobalE2node_ID_constr_1, CHOICE_constraint }, + { &asn_OER_type_GlobalE2node_ID_constr_1, &asn_PER_type_GlobalE2node_ID_constr_1, CHOICE_constraint }, asn_MBR_GlobalE2node_ID_1, 4, /* Elements count */ &asn_SPC_GlobalE2node_ID_specs_1 /* Additional specs */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalE2node-ID.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalE2node-ID.h index 52baad2..9a2da69 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalE2node-ID.h +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalE2node-ID.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #ifndef _GlobalE2node_ID_H_ @@ -55,9 +55,6 @@ typedef struct GlobalE2node_ID { /* Implementation */ extern asn_TYPE_descriptor_t asn_DEF_GlobalE2node_ID; -extern asn_CHOICE_specifics_t asn_SPC_GlobalE2node_ID_specs_1; -extern asn_TYPE_member_t asn_MBR_GlobalE2node_ID_1[4]; -extern asn_per_constraints_t asn_PER_type_GlobalE2node_ID_constr_1; #ifdef __cplusplus } diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalE2node-eNB-ID.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalE2node-eNB-ID.c index bccce7b..e4833bc 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalE2node-eNB-ID.c +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalE2node-eNB-ID.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #include "GlobalE2node-eNB-ID.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalE2node-eNB-ID.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalE2node-eNB-ID.h index 72696c5..5f2afe6 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalE2node-eNB-ID.h +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalE2node-eNB-ID.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #ifndef _GlobalE2node_eNB_ID_H_ diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalE2node-en-gNB-ID.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalE2node-en-gNB-ID.c index f9a8ae4..43dc3b1 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalE2node-en-gNB-ID.c +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalE2node-en-gNB-ID.c @@ -1,36 +1,58 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #include "GlobalE2node-en-gNB-ID.h" asn_TYPE_member_t asn_MBR_GlobalE2node_en_gNB_ID_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct GlobalE2node_en_gNB_ID, global_gNB_ID), + { ATF_NOFLAGS, 0, offsetof(struct GlobalE2node_en_gNB_ID, global_en_gNB_ID), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ &asn_DEF_GlobalenGNB_ID, 0, { 0, 0, 0 }, 0, 0, /* No default value */ - "global-gNB-ID" + "global-en-gNB-ID" + }, + { ATF_POINTER, 2, offsetof(struct GlobalE2node_en_gNB_ID, en_gNB_CU_UP_ID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_GNB_CU_UP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "en-gNB-CU-UP-ID" + }, + { ATF_POINTER, 1, offsetof(struct GlobalE2node_en_gNB_ID, en_gNB_DU_ID), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_GNB_DU_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "en-gNB-DU-ID" }, }; +static const int asn_MAP_GlobalE2node_en_gNB_ID_oms_1[] = { 1, 2 }; static const ber_tlv_tag_t asn_DEF_GlobalE2node_en_gNB_ID_tags_1[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; static const asn_TYPE_tag2member_t asn_MAP_GlobalE2node_en_gNB_ID_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* global-gNB-ID */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* global-en-gNB-ID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* en-gNB-CU-UP-ID */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* en-gNB-DU-ID */ }; asn_SEQUENCE_specifics_t asn_SPC_GlobalE2node_en_gNB_ID_specs_1 = { sizeof(struct GlobalE2node_en_gNB_ID), offsetof(struct GlobalE2node_en_gNB_ID, _asn_ctx), asn_MAP_GlobalE2node_en_gNB_ID_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ + 3, /* Count of tags in the map */ + asn_MAP_GlobalE2node_en_gNB_ID_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 3, /* First extension addition */ }; asn_TYPE_descriptor_t asn_DEF_GlobalE2node_en_gNB_ID = { "GlobalE2node-en-gNB-ID", @@ -44,7 +66,7 @@ asn_TYPE_descriptor_t asn_DEF_GlobalE2node_en_gNB_ID = { /sizeof(asn_DEF_GlobalE2node_en_gNB_ID_tags_1[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, asn_MBR_GlobalE2node_en_gNB_ID_1, - 1, /* Elements count */ + 3, /* Elements count */ &asn_SPC_GlobalE2node_en_gNB_ID_specs_1 /* Additional specs */ }; diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalE2node-en-gNB-ID.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalE2node-en-gNB-ID.h index 314ea88..33d626d 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalE2node-en-gNB-ID.h +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalE2node-en-gNB-ID.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #ifndef _GlobalE2node_en_gNB_ID_H_ @@ -13,6 +13,8 @@ /* Including external dependencies */ #include "GlobalenGNB-ID.h" +#include "GNB-CU-UP-ID.h" +#include "GNB-DU-ID.h" #include "constr_SEQUENCE.h" #ifdef __cplusplus @@ -21,7 +23,9 @@ extern "C" { /* GlobalE2node-en-gNB-ID */ typedef struct GlobalE2node_en_gNB_ID { - GlobalenGNB_ID_t global_gNB_ID; + GlobalenGNB_ID_t global_en_gNB_ID; + GNB_CU_UP_ID_t *en_gNB_CU_UP_ID; /* OPTIONAL */ + GNB_DU_ID_t *en_gNB_DU_ID; /* OPTIONAL */ /* * This type is extensible, * possible extensions are below. @@ -34,7 +38,7 @@ typedef struct GlobalE2node_en_gNB_ID { /* Implementation */ extern asn_TYPE_descriptor_t asn_DEF_GlobalE2node_en_gNB_ID; extern asn_SEQUENCE_specifics_t asn_SPC_GlobalE2node_en_gNB_ID_specs_1; -extern asn_TYPE_member_t asn_MBR_GlobalE2node_en_gNB_ID_1[1]; +extern asn_TYPE_member_t asn_MBR_GlobalE2node_en_gNB_ID_1[3]; #ifdef __cplusplus } diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalE2node-gNB-ID.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalE2node-gNB-ID.c index 7a4810c..b8a3de2 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalE2node-gNB-ID.c +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalE2node-gNB-ID.c @@ -1,12 +1,13 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #include "GlobalE2node-gNB-ID.h" +#include "GlobalenGNB-ID.h" asn_TYPE_member_t asn_MBR_GlobalE2node_gNB_ID_1[] = { { ATF_NOFLAGS, 0, offsetof(struct GlobalE2node_gNB_ID, global_gNB_ID), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), @@ -17,9 +18,18 @@ asn_TYPE_member_t asn_MBR_GlobalE2node_gNB_ID_1[] = { 0, 0, /* No default value */ "global-gNB-ID" }, - { ATF_POINTER, 2, offsetof(struct GlobalE2node_gNB_ID, gNB_CU_UP_ID), + { ATF_POINTER, 3, offsetof(struct GlobalE2node_gNB_ID, global_en_gNB_ID), (ASN_TAG_CLASS_CONTEXT | (1 << 2)), -1, /* IMPLICIT tag at current level */ + &asn_DEF_GlobalenGNB_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "global-en-gNB-ID" + }, + { ATF_POINTER, 2, offsetof(struct GlobalE2node_gNB_ID, gNB_CU_UP_ID), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_GNB_CU_UP_ID, 0, { 0, 0, 0 }, @@ -27,7 +37,7 @@ asn_TYPE_member_t asn_MBR_GlobalE2node_gNB_ID_1[] = { "gNB-CU-UP-ID" }, { ATF_POINTER, 1, offsetof(struct GlobalE2node_gNB_ID, gNB_DU_ID), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), -1, /* IMPLICIT tag at current level */ &asn_DEF_GNB_DU_ID, 0, @@ -36,23 +46,24 @@ asn_TYPE_member_t asn_MBR_GlobalE2node_gNB_ID_1[] = { "gNB-DU-ID" }, }; -static const int asn_MAP_GlobalE2node_gNB_ID_oms_1[] = { 1, 2 }; +static const int asn_MAP_GlobalE2node_gNB_ID_oms_1[] = { 1, 2, 3 }; static const ber_tlv_tag_t asn_DEF_GlobalE2node_gNB_ID_tags_1[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; static const asn_TYPE_tag2member_t asn_MAP_GlobalE2node_gNB_ID_tag2el_1[] = { { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* global-gNB-ID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* gNB-CU-UP-ID */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* gNB-DU-ID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* global-en-gNB-ID */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* gNB-CU-UP-ID */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* gNB-DU-ID */ }; asn_SEQUENCE_specifics_t asn_SPC_GlobalE2node_gNB_ID_specs_1 = { sizeof(struct GlobalE2node_gNB_ID), offsetof(struct GlobalE2node_gNB_ID, _asn_ctx), asn_MAP_GlobalE2node_gNB_ID_tag2el_1, - 3, /* Count of tags in the map */ + 4, /* Count of tags in the map */ asn_MAP_GlobalE2node_gNB_ID_oms_1, /* Optional members */ - 2, 0, /* Root/Additions */ - 3, /* First extension addition */ + 3, 0, /* Root/Additions */ + 4, /* First extension addition */ }; asn_TYPE_descriptor_t asn_DEF_GlobalE2node_gNB_ID = { "GlobalE2node-gNB-ID", @@ -66,7 +77,7 @@ asn_TYPE_descriptor_t asn_DEF_GlobalE2node_gNB_ID = { /sizeof(asn_DEF_GlobalE2node_gNB_ID_tags_1[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, asn_MBR_GlobalE2node_gNB_ID_1, - 3, /* Elements count */ + 4, /* Elements count */ &asn_SPC_GlobalE2node_gNB_ID_specs_1 /* Additional specs */ }; diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalE2node-gNB-ID.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalE2node-gNB-ID.h index d160c4c..fc8c33b 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalE2node-gNB-ID.h +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalE2node-gNB-ID.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #ifndef _GlobalE2node_gNB_ID_H_ @@ -21,9 +21,13 @@ extern "C" { #endif +/* Forward declarations */ +struct GlobalenGNB_ID; + /* GlobalE2node-gNB-ID */ typedef struct GlobalE2node_gNB_ID { GlobalgNB_ID_t global_gNB_ID; + struct GlobalenGNB_ID *global_en_gNB_ID; /* OPTIONAL */ GNB_CU_UP_ID_t *gNB_CU_UP_ID; /* OPTIONAL */ GNB_DU_ID_t *gNB_DU_ID; /* OPTIONAL */ /* @@ -38,7 +42,7 @@ typedef struct GlobalE2node_gNB_ID { /* Implementation */ extern asn_TYPE_descriptor_t asn_DEF_GlobalE2node_gNB_ID; extern asn_SEQUENCE_specifics_t asn_SPC_GlobalE2node_gNB_ID_specs_1; -extern asn_TYPE_member_t asn_MBR_GlobalE2node_gNB_ID_1[3]; +extern asn_TYPE_member_t asn_MBR_GlobalE2node_gNB_ID_1[4]; #ifdef __cplusplus } diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalE2node-ng-eNB-ID.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalE2node-ng-eNB-ID.c index c37ded1..605fa18 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalE2node-ng-eNB-ID.c +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalE2node-ng-eNB-ID.c @@ -1,12 +1,13 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #include "GlobalE2node-ng-eNB-ID.h" +#include "GlobalENB-ID.h" asn_TYPE_member_t asn_MBR_GlobalE2node_ng_eNB_ID_1[] = { { ATF_NOFLAGS, 0, offsetof(struct GlobalE2node_ng_eNB_ID, global_ng_eNB_ID), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), @@ -17,20 +18,42 @@ asn_TYPE_member_t asn_MBR_GlobalE2node_ng_eNB_ID_1[] = { 0, 0, /* No default value */ "global-ng-eNB-ID" }, + { ATF_POINTER, 2, offsetof(struct GlobalE2node_ng_eNB_ID, global_eNB_ID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_GlobalENB_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "global-eNB-ID" + }, + { ATF_POINTER, 1, offsetof(struct GlobalE2node_ng_eNB_ID, ngENB_DU_ID), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NGENB_DU_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ngENB-DU-ID" + }, }; +static const int asn_MAP_GlobalE2node_ng_eNB_ID_oms_1[] = { 1, 2 }; static const ber_tlv_tag_t asn_DEF_GlobalE2node_ng_eNB_ID_tags_1[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; static const asn_TYPE_tag2member_t asn_MAP_GlobalE2node_ng_eNB_ID_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* global-ng-eNB-ID */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* global-ng-eNB-ID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* global-eNB-ID */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* ngENB-DU-ID */ }; asn_SEQUENCE_specifics_t asn_SPC_GlobalE2node_ng_eNB_ID_specs_1 = { sizeof(struct GlobalE2node_ng_eNB_ID), offsetof(struct GlobalE2node_ng_eNB_ID, _asn_ctx), asn_MAP_GlobalE2node_ng_eNB_ID_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ + 3, /* Count of tags in the map */ + asn_MAP_GlobalE2node_ng_eNB_ID_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 3, /* First extension addition */ }; asn_TYPE_descriptor_t asn_DEF_GlobalE2node_ng_eNB_ID = { "GlobalE2node-ng-eNB-ID", @@ -44,7 +67,7 @@ asn_TYPE_descriptor_t asn_DEF_GlobalE2node_ng_eNB_ID = { /sizeof(asn_DEF_GlobalE2node_ng_eNB_ID_tags_1[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, asn_MBR_GlobalE2node_ng_eNB_ID_1, - 1, /* Elements count */ + 3, /* Elements count */ &asn_SPC_GlobalE2node_ng_eNB_ID_specs_1 /* Additional specs */ }; diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalE2node-ng-eNB-ID.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalE2node-ng-eNB-ID.h index b4042c5..a4475c5 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalE2node-ng-eNB-ID.h +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalE2node-ng-eNB-ID.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #ifndef _GlobalE2node_ng_eNB_ID_H_ @@ -13,15 +13,21 @@ /* Including external dependencies */ #include "GlobalngeNB-ID.h" +#include "NGENB-DU-ID.h" #include "constr_SEQUENCE.h" #ifdef __cplusplus extern "C" { #endif +/* Forward declarations */ +struct GlobalENB_ID; + /* GlobalE2node-ng-eNB-ID */ typedef struct GlobalE2node_ng_eNB_ID { GlobalngeNB_ID_t global_ng_eNB_ID; + struct GlobalENB_ID *global_eNB_ID; /* OPTIONAL */ + NGENB_DU_ID_t *ngENB_DU_ID; /* OPTIONAL */ /* * This type is extensible, * possible extensions are below. @@ -34,7 +40,7 @@ typedef struct GlobalE2node_ng_eNB_ID { /* Implementation */ extern asn_TYPE_descriptor_t asn_DEF_GlobalE2node_ng_eNB_ID; extern asn_SEQUENCE_specifics_t asn_SPC_GlobalE2node_ng_eNB_ID_specs_1; -extern asn_TYPE_member_t asn_MBR_GlobalE2node_ng_eNB_ID_1[1]; +extern asn_TYPE_member_t asn_MBR_GlobalE2node_ng_eNB_ID_1[3]; #ifdef __cplusplus } diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalENB-ID.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalENB-ID.c index ad5b9fa..01f06cf 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalENB-ID.c +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalENB-ID.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #include "GlobalENB-ID.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalENB-ID.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalENB-ID.h index f38829a..dae3d51 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalENB-ID.h +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalENB-ID.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #ifndef _GlobalENB_ID_H_ diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalNG-RANNode-ID.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalNG-RANNode-ID.c new file mode 100644 index 0000000..9e810a9 --- /dev/null +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalNG-RANNode-ID.c @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` + */ + +#include "GlobalNG-RANNode-ID.h" + +#include "GlobalgNB-ID.h" +#include "GlobalngeNB-ID.h" +static asn_oer_constraints_t asn_OER_type_GlobalNG_RANNode_ID_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_GlobalNG_RANNode_ID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_GlobalNG_RANNode_ID_1[] = { + { ATF_POINTER, 0, offsetof(struct GlobalNG_RANNode_ID, choice.gNB), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_GlobalgNB_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "gNB" + }, + { ATF_POINTER, 0, offsetof(struct GlobalNG_RANNode_ID, choice.ng_eNB), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_GlobalngeNB_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ng-eNB" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_GlobalNG_RANNode_ID_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* gNB */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ng-eNB */ +}; +asn_CHOICE_specifics_t asn_SPC_GlobalNG_RANNode_ID_specs_1 = { + sizeof(struct GlobalNG_RANNode_ID), + offsetof(struct GlobalNG_RANNode_ID, _asn_ctx), + offsetof(struct GlobalNG_RANNode_ID, present), + sizeof(((struct GlobalNG_RANNode_ID *)0)->present), + asn_MAP_GlobalNG_RANNode_ID_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + 2 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_GlobalNG_RANNode_ID = { + "GlobalNG-RANNode-ID", + "GlobalNG-RANNode-ID", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_GlobalNG_RANNode_ID_constr_1, &asn_PER_type_GlobalNG_RANNode_ID_constr_1, CHOICE_constraint }, + asn_MBR_GlobalNG_RANNode_ID_1, + 2, /* Elements count */ + &asn_SPC_GlobalNG_RANNode_ID_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalNG-RANNode-ID.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalNG-RANNode-ID.h new file mode 100644 index 0000000..9759e9f --- /dev/null +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalNG-RANNode-ID.h @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` + */ + +#ifndef _GlobalNG_RANNode_ID_H_ +#define _GlobalNG_RANNode_ID_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "constr_CHOICE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum GlobalNG_RANNode_ID_PR { + GlobalNG_RANNode_ID_PR_NOTHING, /* No components present */ + GlobalNG_RANNode_ID_PR_gNB, + GlobalNG_RANNode_ID_PR_ng_eNB + /* Extensions may appear below */ + +} GlobalNG_RANNode_ID_PR; + +/* Forward declarations */ +struct GlobalgNB_ID; +struct GlobalngeNB_ID; + +/* GlobalNG-RANNode-ID */ +typedef struct GlobalNG_RANNode_ID { + GlobalNG_RANNode_ID_PR present; + union GlobalNG_RANNode_ID_u { + struct GlobalgNB_ID *gNB; + struct GlobalngeNB_ID *ng_eNB; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} GlobalNG_RANNode_ID_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_GlobalNG_RANNode_ID; +extern asn_CHOICE_specifics_t asn_SPC_GlobalNG_RANNode_ID_specs_1; +extern asn_TYPE_member_t asn_MBR_GlobalNG_RANNode_ID_1[2]; +extern asn_per_constraints_t asn_PER_type_GlobalNG_RANNode_ID_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _GlobalNG_RANNode_ID_H_ */ +#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalRIC-ID.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalRIC-ID.c index 19260d0..b4c99cf 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalRIC-ID.c +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalRIC-ID.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #include "GlobalRIC-ID.h" @@ -38,12 +38,15 @@ memb_ric_ID_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, } } +static asn_oer_constraints_t asn_OER_memb_ric_ID_constr_3 CC_NOTUSED = { + { 0, 0 }, + 20 /* (SIZE(20..20)) */}; static asn_per_constraints_t asn_PER_memb_ric_ID_constr_3 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 0, 0, 20, 20 } /* (SIZE(20..20)) */, 0, 0 /* No PER value map */ }; -asn_TYPE_member_t asn_MBR_GlobalRIC_ID_1[] = { +static asn_TYPE_member_t asn_MBR_GlobalRIC_ID_1[] = { { ATF_NOFLAGS, 0, offsetof(struct GlobalRIC_ID, pLMN_Identity), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ @@ -58,7 +61,7 @@ asn_TYPE_member_t asn_MBR_GlobalRIC_ID_1[] = { -1, /* IMPLICIT tag at current level */ &asn_DEF_BIT_STRING, 0, - { 0, &asn_PER_memb_ric_ID_constr_3, memb_ric_ID_constraint_1 }, + { &asn_OER_memb_ric_ID_constr_3, &asn_PER_memb_ric_ID_constr_3, memb_ric_ID_constraint_1 }, 0, 0, /* No default value */ "ric-ID" }, @@ -70,7 +73,7 @@ static const asn_TYPE_tag2member_t asn_MAP_GlobalRIC_ID_tag2el_1[] = { { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pLMN-Identity */ { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ric-ID */ }; -asn_SEQUENCE_specifics_t asn_SPC_GlobalRIC_ID_specs_1 = { +static asn_SEQUENCE_specifics_t asn_SPC_GlobalRIC_ID_specs_1 = { sizeof(struct GlobalRIC_ID), offsetof(struct GlobalRIC_ID, _asn_ctx), asn_MAP_GlobalRIC_ID_tag2el_1, diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalRIC-ID.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalRIC-ID.h index 6024a04..435e9a1 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalRIC-ID.h +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalRIC-ID.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #ifndef _GlobalRIC_ID_H_ @@ -35,8 +35,6 @@ typedef struct GlobalRIC_ID { /* Implementation */ extern asn_TYPE_descriptor_t asn_DEF_GlobalRIC_ID; -extern asn_SEQUENCE_specifics_t asn_SPC_GlobalRIC_ID_specs_1; -extern asn_TYPE_member_t asn_MBR_GlobalRIC_ID_1[2]; #ifdef __cplusplus } diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalenGNB-ID.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalenGNB-ID.c index 46a641a..d86c807 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalenGNB-ID.c +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalenGNB-ID.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #include "GlobalenGNB-ID.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalenGNB-ID.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalenGNB-ID.h index bb96628..9ed6e07 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalenGNB-ID.h +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalenGNB-ID.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #ifndef _GlobalenGNB_ID_H_ diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalgNB-ID.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalgNB-ID.c index a143609..1a31649 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalgNB-ID.c +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalgNB-ID.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #include "GlobalgNB-ID.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalgNB-ID.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalgNB-ID.h index 7061c98..721f5a9 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalgNB-ID.h +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalgNB-ID.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #ifndef _GlobalgNB_ID_H_ diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalngeNB-ID.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalngeNB-ID.c index 8694350..5a4023a 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalngeNB-ID.c +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalngeNB-ID.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #include "GlobalngeNB-ID.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalngeNB-ID.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalngeNB-ID.h index 5f3cf3d..6858ec0 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalngeNB-ID.h +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/GlobalngeNB-ID.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #ifndef _GlobalngeNB_ID_H_ diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/InitiatingMessage.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/InitiatingMessage.c index 4a7db12..d29e2a2 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/InitiatingMessage.c +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/InitiatingMessage.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Descriptions" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #include "InitiatingMessage.h" @@ -29,6 +29,8 @@ static const long asn_VAL_10_id_RICserviceQuery = 6; static const long asn_VAL_10_ignore = 1; static const long asn_VAL_11_id_ErrorIndication = 2; static const long asn_VAL_11_ignore = 1; +static const long asn_VAL_12_id_RICsubscriptionDeleteRequired = 12; +static const long asn_VAL_12_ignore = 1; static const asn_ioc_cell_t asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1_rows[] = { { "&InitiatingMessage", aioc__type, &asn_DEF_RICsubscriptionRequest }, { "&SuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionResponse }, @@ -84,10 +86,15 @@ static const asn_ioc_cell_t asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1_rows[] = { { "&SuccessfulOutcome", }, { "&UnsuccessfulOutcome", }, { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_11_id_ErrorIndication }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_11_ignore } + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_11_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_RICsubscriptionDeleteRequired }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_12_id_RICsubscriptionDeleteRequired }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_12_ignore } }; static const asn_ioc_set_t asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1[] = { - { 11, 5, asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1_rows } + { 12, 5, asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1_rows } }; static int memb_procedureCode_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, @@ -206,16 +213,25 @@ memb_value_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); } +static asn_oer_constraints_t asn_OER_memb_procedureCode_constr_2 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; static asn_per_constraints_t asn_PER_memb_procedureCode_constr_2 CC_NOTUSED = { { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1}; static asn_per_constraints_t asn_PER_memb_criticality_constr_3 CC_NOTUSED = { { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; +static asn_oer_constraints_t asn_OER_memb_value_constr_4 CC_NOTUSED = { + { 0, 0 }, + -1}; static asn_per_constraints_t asn_PER_memb_value_constr_4 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, @@ -321,19 +337,29 @@ static asn_TYPE_member_t asn_MBR_value_4[] = { 0, 0, /* No default value */ "ErrorIndication" }, + { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.RICsubscriptionDeleteRequired), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RICsubscriptionDeleteRequired, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RICsubscriptionDeleteRequired" + }, }; static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_4[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 10 }, /* RICsubscriptionRequest */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 9 }, /* RICsubscriptionDeleteRequest */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -2, 8 }, /* RICserviceUpdate */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -3, 7 }, /* RICcontrolRequest */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, -4, 6 }, /* E2setupRequest */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 5, -5, 5 }, /* E2nodeConfigurationUpdate */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 6, -6, 4 }, /* E2connectionUpdate */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 7, -7, 3 }, /* ResetRequest */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 8, -8, 2 }, /* RICindication */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 9, -9, 1 }, /* RICserviceQuery */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 10, -10, 0 } /* ErrorIndication */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 11 }, /* RICsubscriptionRequest */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 10 }, /* RICsubscriptionDeleteRequest */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -2, 9 }, /* RICserviceUpdate */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -3, 8 }, /* RICcontrolRequest */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, -4, 7 }, /* E2setupRequest */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 5, -5, 6 }, /* E2nodeConfigurationUpdate */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 6, -6, 5 }, /* E2connectionUpdate */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 7, -7, 4 }, /* ResetRequest */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 8, -8, 3 }, /* RICindication */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 9, -9, 2 }, /* RICserviceQuery */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 10, -10, 1 }, /* ErrorIndication */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 11, -11, 0 } /* RICsubscriptionDeleteRequired */ }; static asn_CHOICE_specifics_t asn_SPC_value_specs_4 = { sizeof(struct InitiatingMessage__value), @@ -341,7 +367,7 @@ static asn_CHOICE_specifics_t asn_SPC_value_specs_4 = { offsetof(struct InitiatingMessage__value, present), sizeof(((struct InitiatingMessage__value *)0)->present), asn_MAP_value_tag2el_4, - 11, /* Count of tags in the map */ + 12, /* Count of tags in the map */ 0, 0, -1 /* Extensions start */ }; @@ -356,7 +382,7 @@ asn_TYPE_descriptor_t asn_DEF_value_4 = { 0, /* No tags (count) */ { 0, 0, OPEN_TYPE_constraint }, asn_MBR_value_4, - 11, /* Elements count */ + 12, /* Elements count */ &asn_SPC_value_specs_4 /* Additional specs */ }; @@ -366,7 +392,7 @@ asn_TYPE_member_t asn_MBR_InitiatingMessage_1[] = { -1, /* IMPLICIT tag at current level */ &asn_DEF_ProcedureCode, 0, - { 0, &asn_PER_memb_procedureCode_constr_2, memb_procedureCode_constraint_1 }, + { &asn_OER_memb_procedureCode_constr_2, &asn_PER_memb_procedureCode_constr_2, memb_procedureCode_constraint_1 }, 0, 0, /* No default value */ "procedureCode" }, @@ -375,7 +401,7 @@ asn_TYPE_member_t asn_MBR_InitiatingMessage_1[] = { -1, /* IMPLICIT tag at current level */ &asn_DEF_Criticality, select_InitiatingMessage_criticality_type, - { 0, &asn_PER_memb_criticality_constr_3, memb_criticality_constraint_1 }, + { &asn_OER_memb_criticality_constr_3, &asn_PER_memb_criticality_constr_3, memb_criticality_constraint_1 }, 0, 0, /* No default value */ "criticality" }, @@ -384,7 +410,7 @@ asn_TYPE_member_t asn_MBR_InitiatingMessage_1[] = { +1, /* EXPLICIT tag at current level */ &asn_DEF_value_4, select_InitiatingMessage_value_type, - { 0, &asn_PER_memb_value_constr_4, memb_value_constraint_1 }, + { &asn_OER_memb_value_constr_4, &asn_PER_memb_value_constr_4, memb_value_constraint_1 }, 0, 0, /* No default value */ "value" }, diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/InitiatingMessage.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/InitiatingMessage.h index 9a4d02d..d474edc 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/InitiatingMessage.h +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/InitiatingMessage.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Descriptions" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #ifndef _InitiatingMessage_H_ @@ -42,6 +42,7 @@ #include "RICindication.h" #include "RICserviceQuery.h" #include "ErrorIndication.h" +#include "RICsubscriptionDeleteRequired.h" #include "OPEN_TYPE.h" #include "constr_CHOICE.h" #include "constr_SEQUENCE.h" @@ -63,7 +64,8 @@ typedef enum InitiatingMessage__value_PR { InitiatingMessage__value_PR_ResetRequest, InitiatingMessage__value_PR_RICindication, InitiatingMessage__value_PR_RICserviceQuery, - InitiatingMessage__value_PR_ErrorIndication + InitiatingMessage__value_PR_ErrorIndication, + InitiatingMessage__value_PR_RICsubscriptionDeleteRequired } InitiatingMessage__value_PR; /* InitiatingMessage */ @@ -84,6 +86,7 @@ typedef struct InitiatingMessage { RICindication_t RICindication; RICserviceQuery_t RICserviceQuery; ErrorIndication_t ErrorIndication; + RICsubscriptionDeleteRequired_t RICsubscriptionDeleteRequired; } choice; /* Context for parsing across buffer boundaries */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/MMEname.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/MMEname.c new file mode 100644 index 0000000..76890a7 --- /dev/null +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/MMEname.c @@ -0,0 +1,109 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` + */ + +#include "MMEname.h" + +static const int permitted_alphabet_table_1[256] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */ + 1, 0, 0, 0, 0, 0, 0, 2, 3, 4, 0, 5, 6, 7, 8, 9, /* . '() +,-./ */ +10,11,12,13,14,15,16,17,18,19,20, 0, 0,21, 0,22, /* 0123456789: = ? */ + 0,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37, /* ABCDEFGHIJKLMNO */ +38,39,40,41,42,43,44,45,46,47,48, 0, 0, 0, 0, 0, /* PQRSTUVWXYZ */ + 0,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63, /* abcdefghijklmno */ +64,65,66,67,68,69,70,71,72,73,74, 0, 0, 0, 0, 0, /* pqrstuvwxyz */ +}; +static const int permitted_alphabet_code2value_1[74] = { +32,39,40,41,43,44,45,46,47,48,49,50,51,52,53,54, +55,56,57,58,61,63,65,66,67,68,69,70,71,72,73,74, +75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90, +97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112, +113,114,115,116,117,118,119,120,121,122,}; + + +static int check_permitted_alphabet_1(const void *sptr) { + const int *table = permitted_alphabet_table_1; + /* The underlying type is PrintableString */ + const PrintableString_t *st = (const PrintableString_t *)sptr; + const uint8_t *ch = st->buf; + const uint8_t *end = ch + st->size; + + for(; ch < end; ch++) { + uint8_t cv = *ch; + if(!table[cv]) return -1; + } + return 0; +} + +int +MMEname_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const PrintableString_t *st = (const PrintableString_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size >= 1 && size <= 150) + && !check_permitted_alphabet_1(st)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int asn_PER_MAP_MMEname_1_v2c(unsigned int value) { + if(value >= sizeof(permitted_alphabet_table_1)/sizeof(permitted_alphabet_table_1[0])) + return -1; + return permitted_alphabet_table_1[value] - 1; +} +static int asn_PER_MAP_MMEname_1_c2v(unsigned int code) { + if(code >= sizeof(permitted_alphabet_code2value_1)/sizeof(permitted_alphabet_code2value_1[0])) + return -1; + return permitted_alphabet_code2value_1[code]; +} +/* + * This type is implemented using PrintableString, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_MMEname_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..MAX)) */}; +asn_per_constraints_t asn_PER_type_MMEname_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 32, 122 } /* (32..122) */, + { APC_CONSTRAINED | APC_EXTENSIBLE, 8, 8, 1, 150 } /* (SIZE(1..150,...)) */, + asn_PER_MAP_MMEname_1_v2c, /* Value to PER code map */ + asn_PER_MAP_MMEname_1_c2v /* PER code to value map */ +}; +static const ber_tlv_tag_t asn_DEF_MMEname_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (19 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_MMEname = { + "MMEname", + "MMEname", + &asn_OP_PrintableString, + asn_DEF_MMEname_tags_1, + sizeof(asn_DEF_MMEname_tags_1) + /sizeof(asn_DEF_MMEname_tags_1[0]), /* 1 */ + asn_DEF_MMEname_tags_1, /* Same as above */ + sizeof(asn_DEF_MMEname_tags_1) + /sizeof(asn_DEF_MMEname_tags_1[0]), /* 1 */ + { &asn_OER_type_MMEname_constr_1, &asn_PER_type_MMEname_constr_1, MMEname_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/MMEname.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/MMEname.h new file mode 100644 index 0000000..82b1fdc --- /dev/null +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/MMEname.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` + */ + +#ifndef _MMEname_H_ +#define _MMEname_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "PrintableString.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* MMEname */ +typedef PrintableString_t MMEname_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_MMEname_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_MMEname; +asn_struct_free_f MMEname_free; +asn_struct_print_f MMEname_print; +asn_constr_check_f MMEname_constraint; +ber_type_decoder_f MMEname_decode_ber; +der_type_encoder_f MMEname_encode_der; +xer_type_decoder_f MMEname_decode_xer; +xer_type_encoder_f MMEname_encode_xer; +oer_type_decoder_f MMEname_decode_oer; +oer_type_encoder_f MMEname_encode_oer; +per_type_decoder_f MMEname_decode_uper; +per_type_encoder_f MMEname_encode_uper; +per_type_decoder_f MMEname_decode_aper; +per_type_encoder_f MMEname_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _MMEname_H_ */ +#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/Makefile.am.libasncodec b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/Makefile.am.libasncodec deleted file mode 100644 index 215ef0a..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/Makefile.am.libasncodec +++ /dev/null @@ -1,333 +0,0 @@ -ASN_MODULE_SRCS= \ - Criticality.c \ - Presence.c \ - ProcedureCode.c \ - ProtocolIE-ID.c \ - TriggeringMessage.c \ - ProtocolIE-Container.c \ - ProtocolIE-SingleContainer.c \ - ProtocolIE-Field.c \ - ProtocolIE-ContainerPair.c \ - ProtocolIE-FieldPair.c \ - ProtocolIE-ContainerList.c \ - ProtocolIE-ContainerPairList.c \ - Cause.c \ - CauseMisc.c \ - CauseProtocol.c \ - CauseRIC.c \ - CauseRICservice.c \ - CauseTransport.c \ - CriticalityDiagnostics.c \ - CriticalityDiagnostics-IE-List.c \ - CriticalityDiagnostics-IE-Item.c \ - E2nodeComponentConfigUpdate.c \ - E2nodeComponentConfigUpdateGNB.c \ - E2nodeComponentConfigUpdateENgNB.c \ - E2nodeComponentConfigUpdateNGeNB.c \ - E2nodeComponentConfigUpdateENB.c \ - E2nodeComponentConfigUpdateAck.c \ - E2nodeComponentType.c \ - E2nodeComponentID.c \ - E2nodeComponentGNB-CU-UP-ID.c \ - E2nodeComponentGNB-DU-ID.c \ - ENB-ID.c \ - ENB-ID-Choice.c \ - ENGNB-ID.c \ - GlobalE2node-ID.c \ - GlobalE2node-en-gNB-ID.c \ - GlobalE2node-eNB-ID.c \ - GlobalE2node-gNB-ID.c \ - GlobalE2node-ng-eNB-ID.c \ - GlobalENB-ID.c \ - GlobalenGNB-ID.c \ - GlobalgNB-ID.c \ - GlobalngeNB-ID.c \ - GlobalRIC-ID.c \ - GNB-CU-UP-ID.c \ - GNB-DU-ID.c \ - GNB-ID-Choice.c \ - PLMN-Identity.c \ - RANfunctionDefinition.c \ - RANfunctionID.c \ - RANfunctionOID.c \ - RANfunctionRevision.c \ - RICactionDefinition.c \ - RICactionID.c \ - RICactionType.c \ - RICcallProcessID.c \ - RICcontrolAckRequest.c \ - RICcontrolHeader.c \ - RICcontrolMessage.c \ - RICcontrolOutcome.c \ - RICcontrolStatus.c \ - RICeventTriggerDefinition.c \ - RICindicationHeader.c \ - RICindicationMessage.c \ - RICindicationSN.c \ - RICindicationType.c \ - RICrequestID.c \ - RICsubsequentAction.c \ - RICsubsequentActionType.c \ - RICtimeToWait.c \ - TimeToWait.c \ - TNLinformation.c \ - TNLusage.c \ - TypeOfError.c \ - E2AP-PDU.c \ - InitiatingMessage.c \ - SuccessfulOutcome.c \ - UnsuccessfulOutcome.c \ - RICsubscriptionRequest.c \ - RICsubscriptionDetails.c \ - RICactions-ToBeSetup-List.c \ - RICaction-ToBeSetup-Item.c \ - RICsubscriptionResponse.c \ - RICaction-Admitted-List.c \ - RICaction-Admitted-Item.c \ - RICaction-NotAdmitted-List.c \ - RICaction-NotAdmitted-Item.c \ - RICsubscriptionFailure.c \ - RICsubscriptionDeleteRequest.c \ - RICsubscriptionDeleteResponse.c \ - RICsubscriptionDeleteFailure.c \ - RICindication.c \ - RICcontrolRequest.c \ - RICcontrolAcknowledge.c \ - RICcontrolFailure.c \ - ErrorIndication.c \ - E2setupRequest.c \ - E2setupResponse.c \ - E2setupFailure.c \ - E2connectionUpdate.c \ - E2connectionUpdate-List.c \ - E2connectionUpdate-Item.c \ - E2connectionUpdateRemove-List.c \ - E2connectionUpdateRemove-Item.c \ - E2connectionUpdateAcknowledge.c \ - E2connectionSetupFailed-List.c \ - E2connectionSetupFailed-Item.c \ - E2connectionUpdateFailure.c \ - E2nodeConfigurationUpdate.c \ - E2nodeComponentConfigUpdate-List.c \ - E2nodeComponentConfigUpdate-Item.c \ - E2nodeConfigurationUpdateAcknowledge.c \ - E2nodeComponentConfigUpdateAck-List.c \ - E2nodeComponentConfigUpdateAck-Item.c \ - E2nodeConfigurationUpdateFailure.c \ - ResetRequest.c \ - ResetResponse.c \ - RICserviceUpdate.c \ - RANfunctions-List.c \ - RANfunction-Item.c \ - RANfunctionsID-List.c \ - RANfunctionID-Item.c \ - RICserviceUpdateAcknowledge.c \ - RANfunctionsIDcause-List.c \ - RANfunctionIDcause-Item.c \ - RICserviceUpdateFailure.c \ - RICserviceQuery.c - -ASN_MODULE_HDRS= \ - Criticality.h \ - Presence.h \ - ProcedureCode.h \ - ProtocolIE-ID.h \ - TriggeringMessage.h \ - ProtocolIE-Container.h \ - ProtocolIE-SingleContainer.h \ - ProtocolIE-Field.h \ - ProtocolIE-ContainerPair.h \ - ProtocolIE-FieldPair.h \ - ProtocolIE-ContainerList.h \ - ProtocolIE-ContainerPairList.h \ - Cause.h \ - CauseMisc.h \ - CauseProtocol.h \ - CauseRIC.h \ - CauseRICservice.h \ - CauseTransport.h \ - CriticalityDiagnostics.h \ - CriticalityDiagnostics-IE-List.h \ - CriticalityDiagnostics-IE-Item.h \ - E2nodeComponentConfigUpdate.h \ - E2nodeComponentConfigUpdateGNB.h \ - E2nodeComponentConfigUpdateENgNB.h \ - E2nodeComponentConfigUpdateNGeNB.h \ - E2nodeComponentConfigUpdateENB.h \ - E2nodeComponentConfigUpdateAck.h \ - E2nodeComponentType.h \ - E2nodeComponentID.h \ - E2nodeComponentGNB-CU-UP-ID.h \ - E2nodeComponentGNB-DU-ID.h \ - ENB-ID.h \ - ENB-ID-Choice.h \ - ENGNB-ID.h \ - GlobalE2node-ID.h \ - GlobalE2node-en-gNB-ID.h \ - GlobalE2node-eNB-ID.h \ - GlobalE2node-gNB-ID.h \ - GlobalE2node-ng-eNB-ID.h \ - GlobalENB-ID.h \ - GlobalenGNB-ID.h \ - GlobalgNB-ID.h \ - GlobalngeNB-ID.h \ - GlobalRIC-ID.h \ - GNB-CU-UP-ID.h \ - GNB-DU-ID.h \ - GNB-ID-Choice.h \ - PLMN-Identity.h \ - RANfunctionDefinition.h \ - RANfunctionID.h \ - RANfunctionOID.h \ - RANfunctionRevision.h \ - RICactionDefinition.h \ - RICactionID.h \ - RICactionType.h \ - RICcallProcessID.h \ - RICcontrolAckRequest.h \ - RICcontrolHeader.h \ - RICcontrolMessage.h \ - RICcontrolOutcome.h \ - RICcontrolStatus.h \ - RICeventTriggerDefinition.h \ - RICindicationHeader.h \ - RICindicationMessage.h \ - RICindicationSN.h \ - RICindicationType.h \ - RICrequestID.h \ - RICsubsequentAction.h \ - RICsubsequentActionType.h \ - RICtimeToWait.h \ - TimeToWait.h \ - TNLinformation.h \ - TNLusage.h \ - TypeOfError.h \ - E2AP-PDU.h \ - InitiatingMessage.h \ - SuccessfulOutcome.h \ - UnsuccessfulOutcome.h \ - RICsubscriptionRequest.h \ - RICsubscriptionDetails.h \ - RICactions-ToBeSetup-List.h \ - RICaction-ToBeSetup-Item.h \ - RICsubscriptionResponse.h \ - RICaction-Admitted-List.h \ - RICaction-Admitted-Item.h \ - RICaction-NotAdmitted-List.h \ - RICaction-NotAdmitted-Item.h \ - RICsubscriptionFailure.h \ - RICsubscriptionDeleteRequest.h \ - RICsubscriptionDeleteResponse.h \ - RICsubscriptionDeleteFailure.h \ - RICindication.h \ - RICcontrolRequest.h \ - RICcontrolAcknowledge.h \ - RICcontrolFailure.h \ - ErrorIndication.h \ - E2setupRequest.h \ - E2setupResponse.h \ - E2setupFailure.h \ - E2connectionUpdate.h \ - E2connectionUpdate-List.h \ - E2connectionUpdate-Item.h \ - E2connectionUpdateRemove-List.h \ - E2connectionUpdateRemove-Item.h \ - E2connectionUpdateAcknowledge.h \ - E2connectionSetupFailed-List.h \ - E2connectionSetupFailed-Item.h \ - E2connectionUpdateFailure.h \ - E2nodeConfigurationUpdate.h \ - E2nodeComponentConfigUpdate-List.h \ - E2nodeComponentConfigUpdate-Item.h \ - E2nodeConfigurationUpdateAcknowledge.h \ - E2nodeComponentConfigUpdateAck-List.h \ - E2nodeComponentConfigUpdateAck-Item.h \ - E2nodeConfigurationUpdateFailure.h \ - ResetRequest.h \ - ResetResponse.h \ - RICserviceUpdate.h \ - RANfunctions-List.h \ - RANfunction-Item.h \ - RANfunctionsID-List.h \ - RANfunctionID-Item.h \ - RICserviceUpdateAcknowledge.h \ - RANfunctionsIDcause-List.h \ - RANfunctionIDcause-Item.h \ - RICserviceUpdateFailure.h \ - RICserviceQuery.h - -ASN_MODULE_HDRS+=ANY.h -ASN_MODULE_SRCS+=ANY.c -ASN_MODULE_HDRS+=OCTET_STRING.h -ASN_MODULE_HDRS+=OPEN_TYPE.h -ASN_MODULE_SRCS+=OPEN_TYPE.c -ASN_MODULE_HDRS+=constr_CHOICE.h -ASN_MODULE_HDRS+=INTEGER.h -ASN_MODULE_SRCS+=INTEGER.c -ASN_MODULE_HDRS+=NativeEnumerated.h -ASN_MODULE_SRCS+=NativeEnumerated.c -ASN_MODULE_HDRS+=NativeInteger.h -ASN_MODULE_SRCS+=NativeInteger.c -ASN_MODULE_HDRS+=PrintableString.h -ASN_MODULE_SRCS+=PrintableString.c -ASN_MODULE_HDRS+=asn_SEQUENCE_OF.h -ASN_MODULE_SRCS+=asn_SEQUENCE_OF.c -ASN_MODULE_HDRS+=asn_SET_OF.h -ASN_MODULE_SRCS+=asn_SET_OF.c -ASN_MODULE_SRCS+=constr_CHOICE.c -ASN_MODULE_HDRS+=constr_SEQUENCE.h -ASN_MODULE_SRCS+=constr_SEQUENCE.c -ASN_MODULE_HDRS+=constr_SEQUENCE_OF.h -ASN_MODULE_SRCS+=constr_SEQUENCE_OF.c -ASN_MODULE_HDRS+=constr_SET_OF.h -ASN_MODULE_SRCS+=constr_SET_OF.c -ASN_MODULE_HDRS+=asn_application.h -ASN_MODULE_SRCS+=asn_application.c -ASN_MODULE_HDRS+=asn_ioc.h -ASN_MODULE_HDRS+=asn_system.h -ASN_MODULE_HDRS+=asn_codecs.h -ASN_MODULE_HDRS+=asn_internal.h -ASN_MODULE_SRCS+=asn_internal.c -ASN_MODULE_HDRS+=asn_random_fill.h -ASN_MODULE_SRCS+=asn_random_fill.c -ASN_MODULE_HDRS+=asn_bit_data.h -ASN_MODULE_SRCS+=asn_bit_data.c -ASN_MODULE_SRCS+=OCTET_STRING.c -ASN_MODULE_HDRS+=BIT_STRING.h -ASN_MODULE_SRCS+=BIT_STRING.c -ASN_MODULE_SRCS+=asn_codecs_prim.c -ASN_MODULE_HDRS+=asn_codecs_prim.h -ASN_MODULE_HDRS+=ber_tlv_length.h -ASN_MODULE_SRCS+=ber_tlv_length.c -ASN_MODULE_HDRS+=ber_tlv_tag.h -ASN_MODULE_SRCS+=ber_tlv_tag.c -ASN_MODULE_HDRS+=ber_decoder.h -ASN_MODULE_SRCS+=ber_decoder.c -ASN_MODULE_HDRS+=der_encoder.h -ASN_MODULE_SRCS+=der_encoder.c -ASN_MODULE_HDRS+=constr_TYPE.h -ASN_MODULE_SRCS+=constr_TYPE.c -ASN_MODULE_HDRS+=constraints.h -ASN_MODULE_SRCS+=constraints.c -ASN_MODULE_HDRS+=xer_support.h -ASN_MODULE_SRCS+=xer_support.c -ASN_MODULE_HDRS+=xer_decoder.h -ASN_MODULE_SRCS+=xer_decoder.c -ASN_MODULE_HDRS+=xer_encoder.h -ASN_MODULE_SRCS+=xer_encoder.c -ASN_MODULE_HDRS+=per_support.h -ASN_MODULE_SRCS+=per_support.c -ASN_MODULE_HDRS+=per_decoder.h -ASN_MODULE_SRCS+=per_decoder.c -ASN_MODULE_HDRS+=per_encoder.h -ASN_MODULE_SRCS+=per_encoder.c -ASN_MODULE_HDRS+=per_opentype.h -ASN_MODULE_SRCS+=per_opentype.c - -ASN_MODULE_CFLAGS=-DASN_DISABLE_OER_SUPPORT - -lib_LTLIBRARIES+=libasncodec.la -libasncodec_la_SOURCES=$(ASN_MODULE_SRCS) $(ASN_MODULE_HDRS) -libasncodec_la_CPPFLAGS=-I$(top_srcdir)/ -libasncodec_la_CFLAGS=$(ASN_MODULE_CFLAGS) -libasncodec_la_LDFLAGS=-lm diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/NGENB-DU-ID.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/NGENB-DU-ID.c new file mode 100644 index 0000000..f82c8b0 --- /dev/null +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/NGENB-DU-ID.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` + */ + +#include "NGENB-DU-ID.h" + +int +NGENB_DU_ID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const INTEGER_t *st = (const INTEGER_t *)sptr; + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(asn_INTEGER2long(st, &value)) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value too large (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if((value >= 0 && value <= 68719476735)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using INTEGER, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_NGENB_DU_ID_constr_1 CC_NOTUSED = { + { 8, 1 } /* (0..68719476735) */, + -1}; +asn_per_constraints_t asn_PER_type_NGENB_DU_ID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 36, -1, 0, 68719476735 } /* (0..68719476735) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_NGENB_DU_ID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_NGENB_DU_ID = { + "NGENB-DU-ID", + "NGENB-DU-ID", + &asn_OP_INTEGER, + asn_DEF_NGENB_DU_ID_tags_1, + sizeof(asn_DEF_NGENB_DU_ID_tags_1) + /sizeof(asn_DEF_NGENB_DU_ID_tags_1[0]), /* 1 */ + asn_DEF_NGENB_DU_ID_tags_1, /* Same as above */ + sizeof(asn_DEF_NGENB_DU_ID_tags_1) + /sizeof(asn_DEF_NGENB_DU_ID_tags_1[0]), /* 1 */ + { &asn_OER_type_NGENB_DU_ID_constr_1, &asn_PER_type_NGENB_DU_ID_constr_1, NGENB_DU_ID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/NGENB-DU-ID.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/NGENB-DU-ID.h new file mode 100644 index 0000000..9a491db --- /dev/null +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/NGENB-DU-ID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` + */ + +#ifndef _NGENB_DU_ID_H_ +#define _NGENB_DU_ID_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "INTEGER.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* NGENB-DU-ID */ +typedef INTEGER_t NGENB_DU_ID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_NGENB_DU_ID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_NGENB_DU_ID; +asn_struct_free_f NGENB_DU_ID_free; +asn_struct_print_f NGENB_DU_ID_print; +asn_constr_check_f NGENB_DU_ID_constraint; +ber_type_decoder_f NGENB_DU_ID_decode_ber; +der_type_encoder_f NGENB_DU_ID_encode_der; +xer_type_decoder_f NGENB_DU_ID_decode_xer; +xer_type_encoder_f NGENB_DU_ID_encode_xer; +oer_type_decoder_f NGENB_DU_ID_decode_oer; +oer_type_encoder_f NGENB_DU_ID_encode_oer; +per_type_decoder_f NGENB_DU_ID_decode_uper; +per_type_encoder_f NGENB_DU_ID_encode_uper; +per_type_decoder_f NGENB_DU_ID_decode_aper; +per_type_encoder_f NGENB_DU_ID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _NGENB_DU_ID_H_ */ +#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/PLMN-Identity.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/PLMN-Identity.c index 3fb2bba..ede48d2 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/PLMN-Identity.c +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/PLMN-Identity.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #include "PLMN-Identity.h" @@ -37,6 +37,9 @@ PLMN_Identity_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, * This type is implemented using OCTET_STRING, * so here we adjust the DEF accordingly. */ +static asn_oer_constraints_t asn_OER_type_PLMN_Identity_constr_1 CC_NOTUSED = { + { 0, 0 }, + 3 /* (SIZE(3..3)) */}; asn_per_constraints_t asn_PER_type_PLMN_Identity_constr_1 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 0, 0, 3, 3 } /* (SIZE(3..3)) */, @@ -55,7 +58,7 @@ asn_TYPE_descriptor_t asn_DEF_PLMN_Identity = { asn_DEF_PLMN_Identity_tags_1, /* Same as above */ sizeof(asn_DEF_PLMN_Identity_tags_1) /sizeof(asn_DEF_PLMN_Identity_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_PLMN_Identity_constr_1, PLMN_Identity_constraint }, + { &asn_OER_type_PLMN_Identity_constr_1, &asn_PER_type_PLMN_Identity_constr_1, PLMN_Identity_constraint }, 0, 0, /* No members */ &asn_SPC_OCTET_STRING_specs /* Additional specs */ }; diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/PLMN-Identity.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/PLMN-Identity.h index 7210120..111ce90 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/PLMN-Identity.h +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/PLMN-Identity.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #ifndef _PLMN_Identity_H_ @@ -31,6 +31,8 @@ ber_type_decoder_f PLMN_Identity_decode_ber; der_type_encoder_f PLMN_Identity_encode_der; xer_type_decoder_f PLMN_Identity_decode_xer; xer_type_encoder_f PLMN_Identity_encode_xer; +oer_type_decoder_f PLMN_Identity_decode_oer; +oer_type_encoder_f PLMN_Identity_encode_oer; per_type_decoder_f PLMN_Identity_decode_uper; per_type_encoder_f PLMN_Identity_encode_uper; per_type_decoder_f PLMN_Identity_decode_aper; diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/Presence.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/Presence.c index 1669907..b9ee204 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/Presence.c +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/Presence.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-CommonDataTypes" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #include "Presence.h" @@ -11,6 +11,9 @@ * This type is implemented using NativeEnumerated, * so here we adjust the DEF accordingly. */ +static asn_oer_constraints_t asn_OER_type_Presence_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; asn_per_constraints_t asn_PER_type_Presence_constr_1 CC_NOTUSED = { { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, @@ -48,7 +51,7 @@ asn_TYPE_descriptor_t asn_DEF_Presence = { asn_DEF_Presence_tags_1, /* Same as above */ sizeof(asn_DEF_Presence_tags_1) /sizeof(asn_DEF_Presence_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_Presence_constr_1, NativeEnumerated_constraint }, + { &asn_OER_type_Presence_constr_1, &asn_PER_type_Presence_constr_1, NativeEnumerated_constraint }, 0, 0, /* Defined elsewhere */ &asn_SPC_Presence_specs_1 /* Additional specs */ }; diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/Presence.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/Presence.h index 0e89a76..baf9353 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/Presence.h +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/Presence.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-CommonDataTypes" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #ifndef _Presence_H_ @@ -39,6 +39,8 @@ ber_type_decoder_f Presence_decode_ber; der_type_encoder_f Presence_encode_der; xer_type_decoder_f Presence_decode_xer; xer_type_encoder_f Presence_encode_xer; +oer_type_decoder_f Presence_decode_oer; +oer_type_encoder_f Presence_encode_oer; per_type_decoder_f Presence_decode_uper; per_type_encoder_f Presence_encode_uper; per_type_decoder_f Presence_decode_aper; diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ProcedureCode.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ProcedureCode.c index 31cb35c..3fa11b8 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ProcedureCode.c +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ProcedureCode.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-CommonDataTypes" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #include "ProcedureCode.h" @@ -36,6 +36,9 @@ ProcedureCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, * This type is implemented using NativeInteger, * so here we adjust the DEF accordingly. */ +static asn_oer_constraints_t asn_OER_type_ProcedureCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; asn_per_constraints_t asn_PER_type_ProcedureCode_constr_1 CC_NOTUSED = { { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, @@ -54,7 +57,7 @@ asn_TYPE_descriptor_t asn_DEF_ProcedureCode = { asn_DEF_ProcedureCode_tags_1, /* Same as above */ sizeof(asn_DEF_ProcedureCode_tags_1) /sizeof(asn_DEF_ProcedureCode_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_ProcedureCode_constr_1, ProcedureCode_constraint }, + { &asn_OER_type_ProcedureCode_constr_1, &asn_PER_type_ProcedureCode_constr_1, ProcedureCode_constraint }, 0, 0, /* No members */ 0 /* No specifics */ }; diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ProcedureCode.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ProcedureCode.h index a0a7c7c..857d458 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ProcedureCode.h +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ProcedureCode.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-CommonDataTypes" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #ifndef _ProcedureCode_H_ @@ -31,6 +31,8 @@ ber_type_decoder_f ProcedureCode_decode_ber; der_type_encoder_f ProcedureCode_encode_der; xer_type_decoder_f ProcedureCode_decode_xer; xer_type_encoder_f ProcedureCode_encode_xer; +oer_type_decoder_f ProcedureCode_decode_oer; +oer_type_encoder_f ProcedureCode_encode_oer; per_type_decoder_f ProcedureCode_decode_uper; per_type_encoder_f ProcedureCode_encode_uper; per_type_decoder_f ProcedureCode_decode_aper; @@ -46,6 +48,7 @@ per_type_encoder_f ProcedureCode_encode_aper; #define ProcedureCode_id_RICsubscriptionDelete ((ProcedureCode_t)9) #define ProcedureCode_id_E2nodeConfigurationUpdate ((ProcedureCode_t)10) #define ProcedureCode_id_E2connectionUpdate ((ProcedureCode_t)11) +#define ProcedureCode_id_RICsubscriptionDeleteRequired ((ProcedureCode_t)12) #ifdef __cplusplus } diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ProtocolIE-Container.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ProtocolIE-Container.c index 9aa9500..f8c9a79 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ProtocolIE-Container.c +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ProtocolIE-Container.c @@ -1,144 +1,230 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-Containers" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #include "ProtocolIE-Container.h" #include "ProtocolIE-Field.h" -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_226P0_constr_1 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_1917P0_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P0_constr_1 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, 0, 0 /* No PER value map */ }; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_226P1_constr_3 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_1917P1_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P1_constr_3 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, 0, 0 /* No PER value map */ }; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_226P2_constr_5 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_1917P2_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P2_constr_5 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, 0, 0 /* No PER value map */ }; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_226P3_constr_7 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_1917P3_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P3_constr_7 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, 0, 0 /* No PER value map */ }; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_226P4_constr_9 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_1917P4_constr_9 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P4_constr_9 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, 0, 0 /* No PER value map */ }; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_226P5_constr_11 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_1917P5_constr_11 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P5_constr_11 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, 0, 0 /* No PER value map */ }; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_226P6_constr_13 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_1917P6_constr_13 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P6_constr_13 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, 0, 0 /* No PER value map */ }; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_226P7_constr_15 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_1917P7_constr_15 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P7_constr_15 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, 0, 0 /* No PER value map */ }; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_226P8_constr_17 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_1917P8_constr_17 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P8_constr_17 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, 0, 0 /* No PER value map */ }; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_226P9_constr_19 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_1917P9_constr_19 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P9_constr_19 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, 0, 0 /* No PER value map */ }; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_226P10_constr_21 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_1917P10_constr_21 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P10_constr_21 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, 0, 0 /* No PER value map */ }; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_226P11_constr_23 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_1917P11_constr_23 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P11_constr_23 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, 0, 0 /* No PER value map */ }; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_226P12_constr_25 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_1917P12_constr_25 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P12_constr_25 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, 0, 0 /* No PER value map */ }; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_226P13_constr_27 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_1917P13_constr_27 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P13_constr_27 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, 0, 0 /* No PER value map */ }; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_226P14_constr_29 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_1917P14_constr_29 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P14_constr_29 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, 0, 0 /* No PER value map */ }; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_226P15_constr_31 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_1917P15_constr_31 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P15_constr_31 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, 0, 0 /* No PER value map */ }; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_226P16_constr_33 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_1917P16_constr_33 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P16_constr_33 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, 0, 0 /* No PER value map */ }; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_226P17_constr_35 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_1917P17_constr_35 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P17_constr_35 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, 0, 0 /* No PER value map */ }; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_226P18_constr_37 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_1917P18_constr_37 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P18_constr_37 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, 0, 0 /* No PER value map */ }; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_226P19_constr_39 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_1917P19_constr_39 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P19_constr_39 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, 0, 0 /* No PER value map */ }; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_226P20_constr_41 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_1917P20_constr_41 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P20_constr_41 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, 0, 0 /* No PER value map */ }; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_226P21_constr_43 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_1917P21_constr_43 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P21_constr_43 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, 0, 0 /* No PER value map */ }; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_226P22_constr_45 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_1917P22_constr_45 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P22_constr_45 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, 0, 0 /* No PER value map */ }; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_226P23_constr_47 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_1917P23_constr_47 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P23_constr_47 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, 0, 0 /* No PER value map */ }; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_226P24_constr_49 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_1917P24_constr_49 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P24_constr_49 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, 0, 0 /* No PER value map */ }; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_226P25_constr_51 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_1917P25_constr_51 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P25_constr_51 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, 0, 0 /* No PER value map */ }; -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P0_1[] = { +static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_1917P26_constr_53 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P26_constr_53 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P0_1[] = { { ATF_POINTER, 0, 0, (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -149,31 +235,31 @@ asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P0_1[] = { "" }, }; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_226P0_tags_1[] = { +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1917P0_tags_1[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_226P0_specs_1 = { - sizeof(struct ProtocolIE_Container_226P0), - offsetof(struct ProtocolIE_Container_226P0, _asn_ctx), +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P0_specs_1 = { + sizeof(struct ProtocolIE_Container_1917P0), + offsetof(struct ProtocolIE_Container_1917P0, _asn_ctx), 0, /* XER encoding is XMLDelimitedItemList */ }; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_226P0 = { +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P0 = { "ProtocolIE-Container", "ProtocolIE-Container", &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_226P0_tags_1, - sizeof(asn_DEF_ProtocolIE_Container_226P0_tags_1) - /sizeof(asn_DEF_ProtocolIE_Container_226P0_tags_1[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_226P0_tags_1, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_226P0_tags_1) - /sizeof(asn_DEF_ProtocolIE_Container_226P0_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_226P0_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_226P0_1, + asn_DEF_ProtocolIE_Container_1917P0_tags_1, + sizeof(asn_DEF_ProtocolIE_Container_1917P0_tags_1) + /sizeof(asn_DEF_ProtocolIE_Container_1917P0_tags_1[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_1917P0_tags_1, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_1917P0_tags_1) + /sizeof(asn_DEF_ProtocolIE_Container_1917P0_tags_1[0]), /* 1 */ + { &asn_OER_type_ProtocolIE_Container_1917P0_constr_1, &asn_PER_type_ProtocolIE_Container_1917P0_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_1917P0_1, 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_226P0_specs_1 /* Additional specs */ + &asn_SPC_ProtocolIE_Container_1917P0_specs_1 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P1_3[] = { +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P1_3[] = { { ATF_POINTER, 0, 0, (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -184,31 +270,31 @@ asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P1_3[] = { "" }, }; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_226P1_tags_3[] = { +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1917P1_tags_3[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_226P1_specs_3 = { - sizeof(struct ProtocolIE_Container_226P1), - offsetof(struct ProtocolIE_Container_226P1, _asn_ctx), +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P1_specs_3 = { + sizeof(struct ProtocolIE_Container_1917P1), + offsetof(struct ProtocolIE_Container_1917P1, _asn_ctx), 0, /* XER encoding is XMLDelimitedItemList */ }; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_226P1 = { +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P1 = { "ProtocolIE-Container", "ProtocolIE-Container", &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_226P1_tags_3, - sizeof(asn_DEF_ProtocolIE_Container_226P1_tags_3) - /sizeof(asn_DEF_ProtocolIE_Container_226P1_tags_3[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_226P1_tags_3, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_226P1_tags_3) - /sizeof(asn_DEF_ProtocolIE_Container_226P1_tags_3[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_226P1_constr_3, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_226P1_3, + asn_DEF_ProtocolIE_Container_1917P1_tags_3, + sizeof(asn_DEF_ProtocolIE_Container_1917P1_tags_3) + /sizeof(asn_DEF_ProtocolIE_Container_1917P1_tags_3[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_1917P1_tags_3, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_1917P1_tags_3) + /sizeof(asn_DEF_ProtocolIE_Container_1917P1_tags_3[0]), /* 1 */ + { &asn_OER_type_ProtocolIE_Container_1917P1_constr_3, &asn_PER_type_ProtocolIE_Container_1917P1_constr_3, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_1917P1_3, 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_226P1_specs_3 /* Additional specs */ + &asn_SPC_ProtocolIE_Container_1917P1_specs_3 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P2_5[] = { +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P2_5[] = { { ATF_POINTER, 0, 0, (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -219,31 +305,31 @@ asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P2_5[] = { "" }, }; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_226P2_tags_5[] = { +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1917P2_tags_5[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_226P2_specs_5 = { - sizeof(struct ProtocolIE_Container_226P2), - offsetof(struct ProtocolIE_Container_226P2, _asn_ctx), +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P2_specs_5 = { + sizeof(struct ProtocolIE_Container_1917P2), + offsetof(struct ProtocolIE_Container_1917P2, _asn_ctx), 0, /* XER encoding is XMLDelimitedItemList */ }; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_226P2 = { +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P2 = { "ProtocolIE-Container", "ProtocolIE-Container", &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_226P2_tags_5, - sizeof(asn_DEF_ProtocolIE_Container_226P2_tags_5) - /sizeof(asn_DEF_ProtocolIE_Container_226P2_tags_5[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_226P2_tags_5, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_226P2_tags_5) - /sizeof(asn_DEF_ProtocolIE_Container_226P2_tags_5[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_226P2_constr_5, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_226P2_5, + asn_DEF_ProtocolIE_Container_1917P2_tags_5, + sizeof(asn_DEF_ProtocolIE_Container_1917P2_tags_5) + /sizeof(asn_DEF_ProtocolIE_Container_1917P2_tags_5[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_1917P2_tags_5, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_1917P2_tags_5) + /sizeof(asn_DEF_ProtocolIE_Container_1917P2_tags_5[0]), /* 1 */ + { &asn_OER_type_ProtocolIE_Container_1917P2_constr_5, &asn_PER_type_ProtocolIE_Container_1917P2_constr_5, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_1917P2_5, 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_226P2_specs_5 /* Additional specs */ + &asn_SPC_ProtocolIE_Container_1917P2_specs_5 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P3_7[] = { +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P3_7[] = { { ATF_POINTER, 0, 0, (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -254,31 +340,31 @@ asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P3_7[] = { "" }, }; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_226P3_tags_7[] = { +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1917P3_tags_7[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_226P3_specs_7 = { - sizeof(struct ProtocolIE_Container_226P3), - offsetof(struct ProtocolIE_Container_226P3, _asn_ctx), +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P3_specs_7 = { + sizeof(struct ProtocolIE_Container_1917P3), + offsetof(struct ProtocolIE_Container_1917P3, _asn_ctx), 0, /* XER encoding is XMLDelimitedItemList */ }; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_226P3 = { +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P3 = { "ProtocolIE-Container", "ProtocolIE-Container", &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_226P3_tags_7, - sizeof(asn_DEF_ProtocolIE_Container_226P3_tags_7) - /sizeof(asn_DEF_ProtocolIE_Container_226P3_tags_7[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_226P3_tags_7, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_226P3_tags_7) - /sizeof(asn_DEF_ProtocolIE_Container_226P3_tags_7[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_226P3_constr_7, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_226P3_7, + asn_DEF_ProtocolIE_Container_1917P3_tags_7, + sizeof(asn_DEF_ProtocolIE_Container_1917P3_tags_7) + /sizeof(asn_DEF_ProtocolIE_Container_1917P3_tags_7[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_1917P3_tags_7, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_1917P3_tags_7) + /sizeof(asn_DEF_ProtocolIE_Container_1917P3_tags_7[0]), /* 1 */ + { &asn_OER_type_ProtocolIE_Container_1917P3_constr_7, &asn_PER_type_ProtocolIE_Container_1917P3_constr_7, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_1917P3_7, 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_226P3_specs_7 /* Additional specs */ + &asn_SPC_ProtocolIE_Container_1917P3_specs_7 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P4_9[] = { +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P4_9[] = { { ATF_POINTER, 0, 0, (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -289,31 +375,31 @@ asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P4_9[] = { "" }, }; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_226P4_tags_9[] = { +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1917P4_tags_9[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_226P4_specs_9 = { - sizeof(struct ProtocolIE_Container_226P4), - offsetof(struct ProtocolIE_Container_226P4, _asn_ctx), +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P4_specs_9 = { + sizeof(struct ProtocolIE_Container_1917P4), + offsetof(struct ProtocolIE_Container_1917P4, _asn_ctx), 0, /* XER encoding is XMLDelimitedItemList */ }; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_226P4 = { +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P4 = { "ProtocolIE-Container", "ProtocolIE-Container", &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_226P4_tags_9, - sizeof(asn_DEF_ProtocolIE_Container_226P4_tags_9) - /sizeof(asn_DEF_ProtocolIE_Container_226P4_tags_9[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_226P4_tags_9, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_226P4_tags_9) - /sizeof(asn_DEF_ProtocolIE_Container_226P4_tags_9[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_226P4_constr_9, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_226P4_9, + asn_DEF_ProtocolIE_Container_1917P4_tags_9, + sizeof(asn_DEF_ProtocolIE_Container_1917P4_tags_9) + /sizeof(asn_DEF_ProtocolIE_Container_1917P4_tags_9[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_1917P4_tags_9, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_1917P4_tags_9) + /sizeof(asn_DEF_ProtocolIE_Container_1917P4_tags_9[0]), /* 1 */ + { &asn_OER_type_ProtocolIE_Container_1917P4_constr_9, &asn_PER_type_ProtocolIE_Container_1917P4_constr_9, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_1917P4_9, 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_226P4_specs_9 /* Additional specs */ + &asn_SPC_ProtocolIE_Container_1917P4_specs_9 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P5_11[] = { +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P5_11[] = { { ATF_POINTER, 0, 0, (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -324,31 +410,66 @@ asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P5_11[] = { "" }, }; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_226P5_tags_11[] = { +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1917P5_tags_11[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P5_specs_11 = { + sizeof(struct ProtocolIE_Container_1917P5), + offsetof(struct ProtocolIE_Container_1917P5, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P5 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_1917P5_tags_11, + sizeof(asn_DEF_ProtocolIE_Container_1917P5_tags_11) + /sizeof(asn_DEF_ProtocolIE_Container_1917P5_tags_11[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_1917P5_tags_11, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_1917P5_tags_11) + /sizeof(asn_DEF_ProtocolIE_Container_1917P5_tags_11[0]), /* 1 */ + { &asn_OER_type_ProtocolIE_Container_1917P5_constr_11, &asn_PER_type_ProtocolIE_Container_1917P5_constr_11, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_1917P5_11, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_1917P5_specs_11 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P6_13[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RICsubscriptionDeleteRequired_IEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1917P6_tags_13[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_226P5_specs_11 = { - sizeof(struct ProtocolIE_Container_226P5), - offsetof(struct ProtocolIE_Container_226P5, _asn_ctx), +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P6_specs_13 = { + sizeof(struct ProtocolIE_Container_1917P6), + offsetof(struct ProtocolIE_Container_1917P6, _asn_ctx), 0, /* XER encoding is XMLDelimitedItemList */ }; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_226P5 = { +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P6 = { "ProtocolIE-Container", "ProtocolIE-Container", &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_226P5_tags_11, - sizeof(asn_DEF_ProtocolIE_Container_226P5_tags_11) - /sizeof(asn_DEF_ProtocolIE_Container_226P5_tags_11[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_226P5_tags_11, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_226P5_tags_11) - /sizeof(asn_DEF_ProtocolIE_Container_226P5_tags_11[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_226P5_constr_11, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_226P5_11, + asn_DEF_ProtocolIE_Container_1917P6_tags_13, + sizeof(asn_DEF_ProtocolIE_Container_1917P6_tags_13) + /sizeof(asn_DEF_ProtocolIE_Container_1917P6_tags_13[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_1917P6_tags_13, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_1917P6_tags_13) + /sizeof(asn_DEF_ProtocolIE_Container_1917P6_tags_13[0]), /* 1 */ + { &asn_OER_type_ProtocolIE_Container_1917P6_constr_13, &asn_PER_type_ProtocolIE_Container_1917P6_constr_13, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_1917P6_13, 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_226P5_specs_11 /* Additional specs */ + &asn_SPC_ProtocolIE_Container_1917P6_specs_13 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P6_13[] = { +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P7_15[] = { { ATF_POINTER, 0, 0, (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -359,31 +480,31 @@ asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P6_13[] = { "" }, }; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_226P6_tags_13[] = { +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1917P7_tags_15[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_226P6_specs_13 = { - sizeof(struct ProtocolIE_Container_226P6), - offsetof(struct ProtocolIE_Container_226P6, _asn_ctx), +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P7_specs_15 = { + sizeof(struct ProtocolIE_Container_1917P7), + offsetof(struct ProtocolIE_Container_1917P7, _asn_ctx), 0, /* XER encoding is XMLDelimitedItemList */ }; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_226P6 = { +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P7 = { "ProtocolIE-Container", "ProtocolIE-Container", &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_226P6_tags_13, - sizeof(asn_DEF_ProtocolIE_Container_226P6_tags_13) - /sizeof(asn_DEF_ProtocolIE_Container_226P6_tags_13[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_226P6_tags_13, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_226P6_tags_13) - /sizeof(asn_DEF_ProtocolIE_Container_226P6_tags_13[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_226P6_constr_13, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_226P6_13, + asn_DEF_ProtocolIE_Container_1917P7_tags_15, + sizeof(asn_DEF_ProtocolIE_Container_1917P7_tags_15) + /sizeof(asn_DEF_ProtocolIE_Container_1917P7_tags_15[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_1917P7_tags_15, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_1917P7_tags_15) + /sizeof(asn_DEF_ProtocolIE_Container_1917P7_tags_15[0]), /* 1 */ + { &asn_OER_type_ProtocolIE_Container_1917P7_constr_15, &asn_PER_type_ProtocolIE_Container_1917P7_constr_15, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_1917P7_15, 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_226P6_specs_13 /* Additional specs */ + &asn_SPC_ProtocolIE_Container_1917P7_specs_15 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P7_15[] = { +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P8_17[] = { { ATF_POINTER, 0, 0, (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -394,31 +515,31 @@ asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P7_15[] = { "" }, }; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_226P7_tags_15[] = { +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1917P8_tags_17[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_226P7_specs_15 = { - sizeof(struct ProtocolIE_Container_226P7), - offsetof(struct ProtocolIE_Container_226P7, _asn_ctx), +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P8_specs_17 = { + sizeof(struct ProtocolIE_Container_1917P8), + offsetof(struct ProtocolIE_Container_1917P8, _asn_ctx), 0, /* XER encoding is XMLDelimitedItemList */ }; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_226P7 = { +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P8 = { "ProtocolIE-Container", "ProtocolIE-Container", &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_226P7_tags_15, - sizeof(asn_DEF_ProtocolIE_Container_226P7_tags_15) - /sizeof(asn_DEF_ProtocolIE_Container_226P7_tags_15[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_226P7_tags_15, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_226P7_tags_15) - /sizeof(asn_DEF_ProtocolIE_Container_226P7_tags_15[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_226P7_constr_15, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_226P7_15, + asn_DEF_ProtocolIE_Container_1917P8_tags_17, + sizeof(asn_DEF_ProtocolIE_Container_1917P8_tags_17) + /sizeof(asn_DEF_ProtocolIE_Container_1917P8_tags_17[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_1917P8_tags_17, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_1917P8_tags_17) + /sizeof(asn_DEF_ProtocolIE_Container_1917P8_tags_17[0]), /* 1 */ + { &asn_OER_type_ProtocolIE_Container_1917P8_constr_17, &asn_PER_type_ProtocolIE_Container_1917P8_constr_17, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_1917P8_17, 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_226P7_specs_15 /* Additional specs */ + &asn_SPC_ProtocolIE_Container_1917P8_specs_17 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P8_17[] = { +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P9_19[] = { { ATF_POINTER, 0, 0, (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -429,31 +550,31 @@ asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P8_17[] = { "" }, }; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_226P8_tags_17[] = { +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1917P9_tags_19[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_226P8_specs_17 = { - sizeof(struct ProtocolIE_Container_226P8), - offsetof(struct ProtocolIE_Container_226P8, _asn_ctx), +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P9_specs_19 = { + sizeof(struct ProtocolIE_Container_1917P9), + offsetof(struct ProtocolIE_Container_1917P9, _asn_ctx), 0, /* XER encoding is XMLDelimitedItemList */ }; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_226P8 = { +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P9 = { "ProtocolIE-Container", "ProtocolIE-Container", &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_226P8_tags_17, - sizeof(asn_DEF_ProtocolIE_Container_226P8_tags_17) - /sizeof(asn_DEF_ProtocolIE_Container_226P8_tags_17[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_226P8_tags_17, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_226P8_tags_17) - /sizeof(asn_DEF_ProtocolIE_Container_226P8_tags_17[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_226P8_constr_17, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_226P8_17, + asn_DEF_ProtocolIE_Container_1917P9_tags_19, + sizeof(asn_DEF_ProtocolIE_Container_1917P9_tags_19) + /sizeof(asn_DEF_ProtocolIE_Container_1917P9_tags_19[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_1917P9_tags_19, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_1917P9_tags_19) + /sizeof(asn_DEF_ProtocolIE_Container_1917P9_tags_19[0]), /* 1 */ + { &asn_OER_type_ProtocolIE_Container_1917P9_constr_19, &asn_PER_type_ProtocolIE_Container_1917P9_constr_19, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_1917P9_19, 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_226P8_specs_17 /* Additional specs */ + &asn_SPC_ProtocolIE_Container_1917P9_specs_19 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P9_19[] = { +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P10_21[] = { { ATF_POINTER, 0, 0, (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -464,31 +585,31 @@ asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P9_19[] = { "" }, }; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_226P9_tags_19[] = { +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1917P10_tags_21[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_226P9_specs_19 = { - sizeof(struct ProtocolIE_Container_226P9), - offsetof(struct ProtocolIE_Container_226P9, _asn_ctx), +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P10_specs_21 = { + sizeof(struct ProtocolIE_Container_1917P10), + offsetof(struct ProtocolIE_Container_1917P10, _asn_ctx), 0, /* XER encoding is XMLDelimitedItemList */ }; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_226P9 = { +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P10 = { "ProtocolIE-Container", "ProtocolIE-Container", &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_226P9_tags_19, - sizeof(asn_DEF_ProtocolIE_Container_226P9_tags_19) - /sizeof(asn_DEF_ProtocolIE_Container_226P9_tags_19[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_226P9_tags_19, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_226P9_tags_19) - /sizeof(asn_DEF_ProtocolIE_Container_226P9_tags_19[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_226P9_constr_19, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_226P9_19, + asn_DEF_ProtocolIE_Container_1917P10_tags_21, + sizeof(asn_DEF_ProtocolIE_Container_1917P10_tags_21) + /sizeof(asn_DEF_ProtocolIE_Container_1917P10_tags_21[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_1917P10_tags_21, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_1917P10_tags_21) + /sizeof(asn_DEF_ProtocolIE_Container_1917P10_tags_21[0]), /* 1 */ + { &asn_OER_type_ProtocolIE_Container_1917P10_constr_21, &asn_PER_type_ProtocolIE_Container_1917P10_constr_21, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_1917P10_21, 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_226P9_specs_19 /* Additional specs */ + &asn_SPC_ProtocolIE_Container_1917P10_specs_21 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P10_21[] = { +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P11_23[] = { { ATF_POINTER, 0, 0, (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -499,31 +620,31 @@ asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P10_21[] = { "" }, }; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_226P10_tags_21[] = { +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1917P11_tags_23[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_226P10_specs_21 = { - sizeof(struct ProtocolIE_Container_226P10), - offsetof(struct ProtocolIE_Container_226P10, _asn_ctx), +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P11_specs_23 = { + sizeof(struct ProtocolIE_Container_1917P11), + offsetof(struct ProtocolIE_Container_1917P11, _asn_ctx), 0, /* XER encoding is XMLDelimitedItemList */ }; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_226P10 = { +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P11 = { "ProtocolIE-Container", "ProtocolIE-Container", &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_226P10_tags_21, - sizeof(asn_DEF_ProtocolIE_Container_226P10_tags_21) - /sizeof(asn_DEF_ProtocolIE_Container_226P10_tags_21[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_226P10_tags_21, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_226P10_tags_21) - /sizeof(asn_DEF_ProtocolIE_Container_226P10_tags_21[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_226P10_constr_21, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_226P10_21, + asn_DEF_ProtocolIE_Container_1917P11_tags_23, + sizeof(asn_DEF_ProtocolIE_Container_1917P11_tags_23) + /sizeof(asn_DEF_ProtocolIE_Container_1917P11_tags_23[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_1917P11_tags_23, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_1917P11_tags_23) + /sizeof(asn_DEF_ProtocolIE_Container_1917P11_tags_23[0]), /* 1 */ + { &asn_OER_type_ProtocolIE_Container_1917P11_constr_23, &asn_PER_type_ProtocolIE_Container_1917P11_constr_23, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_1917P11_23, 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_226P10_specs_21 /* Additional specs */ + &asn_SPC_ProtocolIE_Container_1917P11_specs_23 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P11_23[] = { +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P12_25[] = { { ATF_POINTER, 0, 0, (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -534,31 +655,31 @@ asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P11_23[] = { "" }, }; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_226P11_tags_23[] = { +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1917P12_tags_25[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_226P11_specs_23 = { - sizeof(struct ProtocolIE_Container_226P11), - offsetof(struct ProtocolIE_Container_226P11, _asn_ctx), +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P12_specs_25 = { + sizeof(struct ProtocolIE_Container_1917P12), + offsetof(struct ProtocolIE_Container_1917P12, _asn_ctx), 0, /* XER encoding is XMLDelimitedItemList */ }; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_226P11 = { +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P12 = { "ProtocolIE-Container", "ProtocolIE-Container", &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_226P11_tags_23, - sizeof(asn_DEF_ProtocolIE_Container_226P11_tags_23) - /sizeof(asn_DEF_ProtocolIE_Container_226P11_tags_23[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_226P11_tags_23, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_226P11_tags_23) - /sizeof(asn_DEF_ProtocolIE_Container_226P11_tags_23[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_226P11_constr_23, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_226P11_23, + asn_DEF_ProtocolIE_Container_1917P12_tags_25, + sizeof(asn_DEF_ProtocolIE_Container_1917P12_tags_25) + /sizeof(asn_DEF_ProtocolIE_Container_1917P12_tags_25[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_1917P12_tags_25, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_1917P12_tags_25) + /sizeof(asn_DEF_ProtocolIE_Container_1917P12_tags_25[0]), /* 1 */ + { &asn_OER_type_ProtocolIE_Container_1917P12_constr_25, &asn_PER_type_ProtocolIE_Container_1917P12_constr_25, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_1917P12_25, 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_226P11_specs_23 /* Additional specs */ + &asn_SPC_ProtocolIE_Container_1917P12_specs_25 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P12_25[] = { +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P13_27[] = { { ATF_POINTER, 0, 0, (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -569,31 +690,31 @@ asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P12_25[] = { "" }, }; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_226P12_tags_25[] = { +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1917P13_tags_27[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_226P12_specs_25 = { - sizeof(struct ProtocolIE_Container_226P12), - offsetof(struct ProtocolIE_Container_226P12, _asn_ctx), +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P13_specs_27 = { + sizeof(struct ProtocolIE_Container_1917P13), + offsetof(struct ProtocolIE_Container_1917P13, _asn_ctx), 0, /* XER encoding is XMLDelimitedItemList */ }; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_226P12 = { +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P13 = { "ProtocolIE-Container", "ProtocolIE-Container", &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_226P12_tags_25, - sizeof(asn_DEF_ProtocolIE_Container_226P12_tags_25) - /sizeof(asn_DEF_ProtocolIE_Container_226P12_tags_25[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_226P12_tags_25, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_226P12_tags_25) - /sizeof(asn_DEF_ProtocolIE_Container_226P12_tags_25[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_226P12_constr_25, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_226P12_25, + asn_DEF_ProtocolIE_Container_1917P13_tags_27, + sizeof(asn_DEF_ProtocolIE_Container_1917P13_tags_27) + /sizeof(asn_DEF_ProtocolIE_Container_1917P13_tags_27[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_1917P13_tags_27, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_1917P13_tags_27) + /sizeof(asn_DEF_ProtocolIE_Container_1917P13_tags_27[0]), /* 1 */ + { &asn_OER_type_ProtocolIE_Container_1917P13_constr_27, &asn_PER_type_ProtocolIE_Container_1917P13_constr_27, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_1917P13_27, 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_226P12_specs_25 /* Additional specs */ + &asn_SPC_ProtocolIE_Container_1917P13_specs_27 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P13_27[] = { +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P14_29[] = { { ATF_POINTER, 0, 0, (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -604,31 +725,31 @@ asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P13_27[] = { "" }, }; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_226P13_tags_27[] = { +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1917P14_tags_29[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_226P13_specs_27 = { - sizeof(struct ProtocolIE_Container_226P13), - offsetof(struct ProtocolIE_Container_226P13, _asn_ctx), +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P14_specs_29 = { + sizeof(struct ProtocolIE_Container_1917P14), + offsetof(struct ProtocolIE_Container_1917P14, _asn_ctx), 0, /* XER encoding is XMLDelimitedItemList */ }; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_226P13 = { +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P14 = { "ProtocolIE-Container", "ProtocolIE-Container", &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_226P13_tags_27, - sizeof(asn_DEF_ProtocolIE_Container_226P13_tags_27) - /sizeof(asn_DEF_ProtocolIE_Container_226P13_tags_27[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_226P13_tags_27, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_226P13_tags_27) - /sizeof(asn_DEF_ProtocolIE_Container_226P13_tags_27[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_226P13_constr_27, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_226P13_27, + asn_DEF_ProtocolIE_Container_1917P14_tags_29, + sizeof(asn_DEF_ProtocolIE_Container_1917P14_tags_29) + /sizeof(asn_DEF_ProtocolIE_Container_1917P14_tags_29[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_1917P14_tags_29, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_1917P14_tags_29) + /sizeof(asn_DEF_ProtocolIE_Container_1917P14_tags_29[0]), /* 1 */ + { &asn_OER_type_ProtocolIE_Container_1917P14_constr_29, &asn_PER_type_ProtocolIE_Container_1917P14_constr_29, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_1917P14_29, 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_226P13_specs_27 /* Additional specs */ + &asn_SPC_ProtocolIE_Container_1917P14_specs_29 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P14_29[] = { +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P15_31[] = { { ATF_POINTER, 0, 0, (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -639,31 +760,31 @@ asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P14_29[] = { "" }, }; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_226P14_tags_29[] = { +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1917P15_tags_31[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_226P14_specs_29 = { - sizeof(struct ProtocolIE_Container_226P14), - offsetof(struct ProtocolIE_Container_226P14, _asn_ctx), +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P15_specs_31 = { + sizeof(struct ProtocolIE_Container_1917P15), + offsetof(struct ProtocolIE_Container_1917P15, _asn_ctx), 0, /* XER encoding is XMLDelimitedItemList */ }; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_226P14 = { +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P15 = { "ProtocolIE-Container", "ProtocolIE-Container", &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_226P14_tags_29, - sizeof(asn_DEF_ProtocolIE_Container_226P14_tags_29) - /sizeof(asn_DEF_ProtocolIE_Container_226P14_tags_29[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_226P14_tags_29, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_226P14_tags_29) - /sizeof(asn_DEF_ProtocolIE_Container_226P14_tags_29[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_226P14_constr_29, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_226P14_29, + asn_DEF_ProtocolIE_Container_1917P15_tags_31, + sizeof(asn_DEF_ProtocolIE_Container_1917P15_tags_31) + /sizeof(asn_DEF_ProtocolIE_Container_1917P15_tags_31[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_1917P15_tags_31, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_1917P15_tags_31) + /sizeof(asn_DEF_ProtocolIE_Container_1917P15_tags_31[0]), /* 1 */ + { &asn_OER_type_ProtocolIE_Container_1917P15_constr_31, &asn_PER_type_ProtocolIE_Container_1917P15_constr_31, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_1917P15_31, 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_226P14_specs_29 /* Additional specs */ + &asn_SPC_ProtocolIE_Container_1917P15_specs_31 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P15_31[] = { +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P16_33[] = { { ATF_POINTER, 0, 0, (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -674,31 +795,31 @@ asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P15_31[] = { "" }, }; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_226P15_tags_31[] = { +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1917P16_tags_33[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_226P15_specs_31 = { - sizeof(struct ProtocolIE_Container_226P15), - offsetof(struct ProtocolIE_Container_226P15, _asn_ctx), +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P16_specs_33 = { + sizeof(struct ProtocolIE_Container_1917P16), + offsetof(struct ProtocolIE_Container_1917P16, _asn_ctx), 0, /* XER encoding is XMLDelimitedItemList */ }; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_226P15 = { +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P16 = { "ProtocolIE-Container", "ProtocolIE-Container", &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_226P15_tags_31, - sizeof(asn_DEF_ProtocolIE_Container_226P15_tags_31) - /sizeof(asn_DEF_ProtocolIE_Container_226P15_tags_31[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_226P15_tags_31, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_226P15_tags_31) - /sizeof(asn_DEF_ProtocolIE_Container_226P15_tags_31[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_226P15_constr_31, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_226P15_31, + asn_DEF_ProtocolIE_Container_1917P16_tags_33, + sizeof(asn_DEF_ProtocolIE_Container_1917P16_tags_33) + /sizeof(asn_DEF_ProtocolIE_Container_1917P16_tags_33[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_1917P16_tags_33, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_1917P16_tags_33) + /sizeof(asn_DEF_ProtocolIE_Container_1917P16_tags_33[0]), /* 1 */ + { &asn_OER_type_ProtocolIE_Container_1917P16_constr_33, &asn_PER_type_ProtocolIE_Container_1917P16_constr_33, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_1917P16_33, 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_226P15_specs_31 /* Additional specs */ + &asn_SPC_ProtocolIE_Container_1917P16_specs_33 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P16_33[] = { +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P17_35[] = { { ATF_POINTER, 0, 0, (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -709,31 +830,31 @@ asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P16_33[] = { "" }, }; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_226P16_tags_33[] = { +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1917P17_tags_35[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_226P16_specs_33 = { - sizeof(struct ProtocolIE_Container_226P16), - offsetof(struct ProtocolIE_Container_226P16, _asn_ctx), +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P17_specs_35 = { + sizeof(struct ProtocolIE_Container_1917P17), + offsetof(struct ProtocolIE_Container_1917P17, _asn_ctx), 0, /* XER encoding is XMLDelimitedItemList */ }; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_226P16 = { +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P17 = { "ProtocolIE-Container", "ProtocolIE-Container", &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_226P16_tags_33, - sizeof(asn_DEF_ProtocolIE_Container_226P16_tags_33) - /sizeof(asn_DEF_ProtocolIE_Container_226P16_tags_33[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_226P16_tags_33, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_226P16_tags_33) - /sizeof(asn_DEF_ProtocolIE_Container_226P16_tags_33[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_226P16_constr_33, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_226P16_33, + asn_DEF_ProtocolIE_Container_1917P17_tags_35, + sizeof(asn_DEF_ProtocolIE_Container_1917P17_tags_35) + /sizeof(asn_DEF_ProtocolIE_Container_1917P17_tags_35[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_1917P17_tags_35, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_1917P17_tags_35) + /sizeof(asn_DEF_ProtocolIE_Container_1917P17_tags_35[0]), /* 1 */ + { &asn_OER_type_ProtocolIE_Container_1917P17_constr_35, &asn_PER_type_ProtocolIE_Container_1917P17_constr_35, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_1917P17_35, 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_226P16_specs_33 /* Additional specs */ + &asn_SPC_ProtocolIE_Container_1917P17_specs_35 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P17_35[] = { +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P18_37[] = { { ATF_POINTER, 0, 0, (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -744,31 +865,31 @@ asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P17_35[] = { "" }, }; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_226P17_tags_35[] = { +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1917P18_tags_37[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_226P17_specs_35 = { - sizeof(struct ProtocolIE_Container_226P17), - offsetof(struct ProtocolIE_Container_226P17, _asn_ctx), +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P18_specs_37 = { + sizeof(struct ProtocolIE_Container_1917P18), + offsetof(struct ProtocolIE_Container_1917P18, _asn_ctx), 0, /* XER encoding is XMLDelimitedItemList */ }; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_226P17 = { +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P18 = { "ProtocolIE-Container", "ProtocolIE-Container", &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_226P17_tags_35, - sizeof(asn_DEF_ProtocolIE_Container_226P17_tags_35) - /sizeof(asn_DEF_ProtocolIE_Container_226P17_tags_35[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_226P17_tags_35, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_226P17_tags_35) - /sizeof(asn_DEF_ProtocolIE_Container_226P17_tags_35[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_226P17_constr_35, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_226P17_35, + asn_DEF_ProtocolIE_Container_1917P18_tags_37, + sizeof(asn_DEF_ProtocolIE_Container_1917P18_tags_37) + /sizeof(asn_DEF_ProtocolIE_Container_1917P18_tags_37[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_1917P18_tags_37, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_1917P18_tags_37) + /sizeof(asn_DEF_ProtocolIE_Container_1917P18_tags_37[0]), /* 1 */ + { &asn_OER_type_ProtocolIE_Container_1917P18_constr_37, &asn_PER_type_ProtocolIE_Container_1917P18_constr_37, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_1917P18_37, 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_226P17_specs_35 /* Additional specs */ + &asn_SPC_ProtocolIE_Container_1917P18_specs_37 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P18_37[] = { +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P19_39[] = { { ATF_POINTER, 0, 0, (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -779,31 +900,31 @@ asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P18_37[] = { "" }, }; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_226P18_tags_37[] = { +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1917P19_tags_39[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_226P18_specs_37 = { - sizeof(struct ProtocolIE_Container_226P18), - offsetof(struct ProtocolIE_Container_226P18, _asn_ctx), +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P19_specs_39 = { + sizeof(struct ProtocolIE_Container_1917P19), + offsetof(struct ProtocolIE_Container_1917P19, _asn_ctx), 0, /* XER encoding is XMLDelimitedItemList */ }; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_226P18 = { +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P19 = { "ProtocolIE-Container", "ProtocolIE-Container", &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_226P18_tags_37, - sizeof(asn_DEF_ProtocolIE_Container_226P18_tags_37) - /sizeof(asn_DEF_ProtocolIE_Container_226P18_tags_37[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_226P18_tags_37, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_226P18_tags_37) - /sizeof(asn_DEF_ProtocolIE_Container_226P18_tags_37[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_226P18_constr_37, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_226P18_37, + asn_DEF_ProtocolIE_Container_1917P19_tags_39, + sizeof(asn_DEF_ProtocolIE_Container_1917P19_tags_39) + /sizeof(asn_DEF_ProtocolIE_Container_1917P19_tags_39[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_1917P19_tags_39, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_1917P19_tags_39) + /sizeof(asn_DEF_ProtocolIE_Container_1917P19_tags_39[0]), /* 1 */ + { &asn_OER_type_ProtocolIE_Container_1917P19_constr_39, &asn_PER_type_ProtocolIE_Container_1917P19_constr_39, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_1917P19_39, 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_226P18_specs_37 /* Additional specs */ + &asn_SPC_ProtocolIE_Container_1917P19_specs_39 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P19_39[] = { +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P20_41[] = { { ATF_POINTER, 0, 0, (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -814,31 +935,31 @@ asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P19_39[] = { "" }, }; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_226P19_tags_39[] = { +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1917P20_tags_41[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_226P19_specs_39 = { - sizeof(struct ProtocolIE_Container_226P19), - offsetof(struct ProtocolIE_Container_226P19, _asn_ctx), +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P20_specs_41 = { + sizeof(struct ProtocolIE_Container_1917P20), + offsetof(struct ProtocolIE_Container_1917P20, _asn_ctx), 0, /* XER encoding is XMLDelimitedItemList */ }; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_226P19 = { +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P20 = { "ProtocolIE-Container", "ProtocolIE-Container", &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_226P19_tags_39, - sizeof(asn_DEF_ProtocolIE_Container_226P19_tags_39) - /sizeof(asn_DEF_ProtocolIE_Container_226P19_tags_39[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_226P19_tags_39, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_226P19_tags_39) - /sizeof(asn_DEF_ProtocolIE_Container_226P19_tags_39[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_226P19_constr_39, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_226P19_39, + asn_DEF_ProtocolIE_Container_1917P20_tags_41, + sizeof(asn_DEF_ProtocolIE_Container_1917P20_tags_41) + /sizeof(asn_DEF_ProtocolIE_Container_1917P20_tags_41[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_1917P20_tags_41, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_1917P20_tags_41) + /sizeof(asn_DEF_ProtocolIE_Container_1917P20_tags_41[0]), /* 1 */ + { &asn_OER_type_ProtocolIE_Container_1917P20_constr_41, &asn_PER_type_ProtocolIE_Container_1917P20_constr_41, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_1917P20_41, 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_226P19_specs_39 /* Additional specs */ + &asn_SPC_ProtocolIE_Container_1917P20_specs_41 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P20_41[] = { +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P21_43[] = { { ATF_POINTER, 0, 0, (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -849,31 +970,31 @@ asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P20_41[] = { "" }, }; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_226P20_tags_41[] = { +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1917P21_tags_43[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_226P20_specs_41 = { - sizeof(struct ProtocolIE_Container_226P20), - offsetof(struct ProtocolIE_Container_226P20, _asn_ctx), +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P21_specs_43 = { + sizeof(struct ProtocolIE_Container_1917P21), + offsetof(struct ProtocolIE_Container_1917P21, _asn_ctx), 0, /* XER encoding is XMLDelimitedItemList */ }; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_226P20 = { +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P21 = { "ProtocolIE-Container", "ProtocolIE-Container", &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_226P20_tags_41, - sizeof(asn_DEF_ProtocolIE_Container_226P20_tags_41) - /sizeof(asn_DEF_ProtocolIE_Container_226P20_tags_41[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_226P20_tags_41, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_226P20_tags_41) - /sizeof(asn_DEF_ProtocolIE_Container_226P20_tags_41[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_226P20_constr_41, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_226P20_41, + asn_DEF_ProtocolIE_Container_1917P21_tags_43, + sizeof(asn_DEF_ProtocolIE_Container_1917P21_tags_43) + /sizeof(asn_DEF_ProtocolIE_Container_1917P21_tags_43[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_1917P21_tags_43, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_1917P21_tags_43) + /sizeof(asn_DEF_ProtocolIE_Container_1917P21_tags_43[0]), /* 1 */ + { &asn_OER_type_ProtocolIE_Container_1917P21_constr_43, &asn_PER_type_ProtocolIE_Container_1917P21_constr_43, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_1917P21_43, 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_226P20_specs_41 /* Additional specs */ + &asn_SPC_ProtocolIE_Container_1917P21_specs_43 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P21_43[] = { +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P22_45[] = { { ATF_POINTER, 0, 0, (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -884,31 +1005,31 @@ asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P21_43[] = { "" }, }; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_226P21_tags_43[] = { +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1917P22_tags_45[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_226P21_specs_43 = { - sizeof(struct ProtocolIE_Container_226P21), - offsetof(struct ProtocolIE_Container_226P21, _asn_ctx), +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P22_specs_45 = { + sizeof(struct ProtocolIE_Container_1917P22), + offsetof(struct ProtocolIE_Container_1917P22, _asn_ctx), 0, /* XER encoding is XMLDelimitedItemList */ }; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_226P21 = { +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P22 = { "ProtocolIE-Container", "ProtocolIE-Container", &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_226P21_tags_43, - sizeof(asn_DEF_ProtocolIE_Container_226P21_tags_43) - /sizeof(asn_DEF_ProtocolIE_Container_226P21_tags_43[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_226P21_tags_43, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_226P21_tags_43) - /sizeof(asn_DEF_ProtocolIE_Container_226P21_tags_43[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_226P21_constr_43, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_226P21_43, + asn_DEF_ProtocolIE_Container_1917P22_tags_45, + sizeof(asn_DEF_ProtocolIE_Container_1917P22_tags_45) + /sizeof(asn_DEF_ProtocolIE_Container_1917P22_tags_45[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_1917P22_tags_45, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_1917P22_tags_45) + /sizeof(asn_DEF_ProtocolIE_Container_1917P22_tags_45[0]), /* 1 */ + { &asn_OER_type_ProtocolIE_Container_1917P22_constr_45, &asn_PER_type_ProtocolIE_Container_1917P22_constr_45, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_1917P22_45, 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_226P21_specs_43 /* Additional specs */ + &asn_SPC_ProtocolIE_Container_1917P22_specs_45 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P22_45[] = { +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P23_47[] = { { ATF_POINTER, 0, 0, (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -919,31 +1040,31 @@ asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P22_45[] = { "" }, }; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_226P22_tags_45[] = { +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1917P23_tags_47[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_226P22_specs_45 = { - sizeof(struct ProtocolIE_Container_226P22), - offsetof(struct ProtocolIE_Container_226P22, _asn_ctx), +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P23_specs_47 = { + sizeof(struct ProtocolIE_Container_1917P23), + offsetof(struct ProtocolIE_Container_1917P23, _asn_ctx), 0, /* XER encoding is XMLDelimitedItemList */ }; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_226P22 = { +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P23 = { "ProtocolIE-Container", "ProtocolIE-Container", &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_226P22_tags_45, - sizeof(asn_DEF_ProtocolIE_Container_226P22_tags_45) - /sizeof(asn_DEF_ProtocolIE_Container_226P22_tags_45[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_226P22_tags_45, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_226P22_tags_45) - /sizeof(asn_DEF_ProtocolIE_Container_226P22_tags_45[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_226P22_constr_45, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_226P22_45, + asn_DEF_ProtocolIE_Container_1917P23_tags_47, + sizeof(asn_DEF_ProtocolIE_Container_1917P23_tags_47) + /sizeof(asn_DEF_ProtocolIE_Container_1917P23_tags_47[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_1917P23_tags_47, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_1917P23_tags_47) + /sizeof(asn_DEF_ProtocolIE_Container_1917P23_tags_47[0]), /* 1 */ + { &asn_OER_type_ProtocolIE_Container_1917P23_constr_47, &asn_PER_type_ProtocolIE_Container_1917P23_constr_47, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_1917P23_47, 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_226P22_specs_45 /* Additional specs */ + &asn_SPC_ProtocolIE_Container_1917P23_specs_47 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P23_47[] = { +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P24_49[] = { { ATF_POINTER, 0, 0, (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -954,31 +1075,31 @@ asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P23_47[] = { "" }, }; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_226P23_tags_47[] = { +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1917P24_tags_49[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_226P23_specs_47 = { - sizeof(struct ProtocolIE_Container_226P23), - offsetof(struct ProtocolIE_Container_226P23, _asn_ctx), +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P24_specs_49 = { + sizeof(struct ProtocolIE_Container_1917P24), + offsetof(struct ProtocolIE_Container_1917P24, _asn_ctx), 0, /* XER encoding is XMLDelimitedItemList */ }; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_226P23 = { +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P24 = { "ProtocolIE-Container", "ProtocolIE-Container", &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_226P23_tags_47, - sizeof(asn_DEF_ProtocolIE_Container_226P23_tags_47) - /sizeof(asn_DEF_ProtocolIE_Container_226P23_tags_47[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_226P23_tags_47, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_226P23_tags_47) - /sizeof(asn_DEF_ProtocolIE_Container_226P23_tags_47[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_226P23_constr_47, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_226P23_47, + asn_DEF_ProtocolIE_Container_1917P24_tags_49, + sizeof(asn_DEF_ProtocolIE_Container_1917P24_tags_49) + /sizeof(asn_DEF_ProtocolIE_Container_1917P24_tags_49[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_1917P24_tags_49, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_1917P24_tags_49) + /sizeof(asn_DEF_ProtocolIE_Container_1917P24_tags_49[0]), /* 1 */ + { &asn_OER_type_ProtocolIE_Container_1917P24_constr_49, &asn_PER_type_ProtocolIE_Container_1917P24_constr_49, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_1917P24_49, 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_226P23_specs_47 /* Additional specs */ + &asn_SPC_ProtocolIE_Container_1917P24_specs_49 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P24_49[] = { +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P25_51[] = { { ATF_POINTER, 0, 0, (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -989,31 +1110,31 @@ asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P24_49[] = { "" }, }; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_226P24_tags_49[] = { +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1917P25_tags_51[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_226P24_specs_49 = { - sizeof(struct ProtocolIE_Container_226P24), - offsetof(struct ProtocolIE_Container_226P24, _asn_ctx), +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P25_specs_51 = { + sizeof(struct ProtocolIE_Container_1917P25), + offsetof(struct ProtocolIE_Container_1917P25, _asn_ctx), 0, /* XER encoding is XMLDelimitedItemList */ }; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_226P24 = { +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P25 = { "ProtocolIE-Container", "ProtocolIE-Container", &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_226P24_tags_49, - sizeof(asn_DEF_ProtocolIE_Container_226P24_tags_49) - /sizeof(asn_DEF_ProtocolIE_Container_226P24_tags_49[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_226P24_tags_49, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_226P24_tags_49) - /sizeof(asn_DEF_ProtocolIE_Container_226P24_tags_49[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_226P24_constr_49, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_226P24_49, + asn_DEF_ProtocolIE_Container_1917P25_tags_51, + sizeof(asn_DEF_ProtocolIE_Container_1917P25_tags_51) + /sizeof(asn_DEF_ProtocolIE_Container_1917P25_tags_51[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_1917P25_tags_51, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_1917P25_tags_51) + /sizeof(asn_DEF_ProtocolIE_Container_1917P25_tags_51[0]), /* 1 */ + { &asn_OER_type_ProtocolIE_Container_1917P25_constr_51, &asn_PER_type_ProtocolIE_Container_1917P25_constr_51, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_1917P25_51, 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_226P24_specs_49 /* Additional specs */ + &asn_SPC_ProtocolIE_Container_1917P25_specs_51 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P25_51[] = { +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P26_53[] = { { ATF_POINTER, 0, 0, (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -1024,27 +1145,27 @@ asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P25_51[] = { "" }, }; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_226P25_tags_51[] = { +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1917P26_tags_53[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_226P25_specs_51 = { - sizeof(struct ProtocolIE_Container_226P25), - offsetof(struct ProtocolIE_Container_226P25, _asn_ctx), +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P26_specs_53 = { + sizeof(struct ProtocolIE_Container_1917P26), + offsetof(struct ProtocolIE_Container_1917P26, _asn_ctx), 0, /* XER encoding is XMLDelimitedItemList */ }; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_226P25 = { +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P26 = { "ProtocolIE-Container", "ProtocolIE-Container", &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_226P25_tags_51, - sizeof(asn_DEF_ProtocolIE_Container_226P25_tags_51) - /sizeof(asn_DEF_ProtocolIE_Container_226P25_tags_51[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_226P25_tags_51, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_226P25_tags_51) - /sizeof(asn_DEF_ProtocolIE_Container_226P25_tags_51[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_226P25_constr_51, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_226P25_51, + asn_DEF_ProtocolIE_Container_1917P26_tags_53, + sizeof(asn_DEF_ProtocolIE_Container_1917P26_tags_53) + /sizeof(asn_DEF_ProtocolIE_Container_1917P26_tags_53[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_1917P26_tags_53, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_1917P26_tags_53) + /sizeof(asn_DEF_ProtocolIE_Container_1917P26_tags_53[0]), /* 1 */ + { &asn_OER_type_ProtocolIE_Container_1917P26_constr_53, &asn_PER_type_ProtocolIE_Container_1917P26_constr_53, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_1917P26_53, 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_226P25_specs_51 /* Additional specs */ + &asn_SPC_ProtocolIE_Container_1917P26_specs_53 /* Additional specs */ }; diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ProtocolIE-Container.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ProtocolIE-Container.h index 7b7cccb..c456afc 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ProtocolIE-Container.h +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ProtocolIE-Container.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-Containers" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #ifndef _ProtocolIE_Container_H_ @@ -26,6 +26,7 @@ struct RICsubscriptionFailure_IEs; struct RICsubscriptionDeleteRequest_IEs; struct RICsubscriptionDeleteResponse_IEs; struct RICsubscriptionDeleteFailure_IEs; +struct RICsubscriptionDeleteRequired_IEs; struct RICindication_IEs; struct RICcontrolRequest_IEs; struct RICcontrolAcknowledge_IEs; @@ -48,268 +49,278 @@ struct RICserviceUpdateFailure_IEs; struct RICserviceQuery_IEs; /* ProtocolIE-Container */ -typedef struct ProtocolIE_Container_226P0 { +typedef struct ProtocolIE_Container_1917P0 { A_SEQUENCE_OF(struct RICsubscriptionRequest_IEs) list; /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_226P0_t; -typedef struct ProtocolIE_Container_226P1 { +} ProtocolIE_Container_1917P0_t; +typedef struct ProtocolIE_Container_1917P1 { A_SEQUENCE_OF(struct RICsubscriptionResponse_IEs) list; /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_226P1_t; -typedef struct ProtocolIE_Container_226P2 { +} ProtocolIE_Container_1917P1_t; +typedef struct ProtocolIE_Container_1917P2 { A_SEQUENCE_OF(struct RICsubscriptionFailure_IEs) list; /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_226P2_t; -typedef struct ProtocolIE_Container_226P3 { +} ProtocolIE_Container_1917P2_t; +typedef struct ProtocolIE_Container_1917P3 { A_SEQUENCE_OF(struct RICsubscriptionDeleteRequest_IEs) list; /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_226P3_t; -typedef struct ProtocolIE_Container_226P4 { +} ProtocolIE_Container_1917P3_t; +typedef struct ProtocolIE_Container_1917P4 { A_SEQUENCE_OF(struct RICsubscriptionDeleteResponse_IEs) list; /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_226P4_t; -typedef struct ProtocolIE_Container_226P5 { +} ProtocolIE_Container_1917P4_t; +typedef struct ProtocolIE_Container_1917P5 { A_SEQUENCE_OF(struct RICsubscriptionDeleteFailure_IEs) list; /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_226P5_t; -typedef struct ProtocolIE_Container_226P6 { +} ProtocolIE_Container_1917P5_t; +typedef struct ProtocolIE_Container_1917P6 { + A_SEQUENCE_OF(struct RICsubscriptionDeleteRequired_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_1917P6_t; +typedef struct ProtocolIE_Container_1917P7 { A_SEQUENCE_OF(struct RICindication_IEs) list; /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_226P6_t; -typedef struct ProtocolIE_Container_226P7 { +} ProtocolIE_Container_1917P7_t; +typedef struct ProtocolIE_Container_1917P8 { A_SEQUENCE_OF(struct RICcontrolRequest_IEs) list; /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_226P7_t; -typedef struct ProtocolIE_Container_226P8 { +} ProtocolIE_Container_1917P8_t; +typedef struct ProtocolIE_Container_1917P9 { A_SEQUENCE_OF(struct RICcontrolAcknowledge_IEs) list; /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_226P8_t; -typedef struct ProtocolIE_Container_226P9 { +} ProtocolIE_Container_1917P9_t; +typedef struct ProtocolIE_Container_1917P10 { A_SEQUENCE_OF(struct RICcontrolFailure_IEs) list; /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_226P9_t; -typedef struct ProtocolIE_Container_226P10 { +} ProtocolIE_Container_1917P10_t; +typedef struct ProtocolIE_Container_1917P11 { A_SEQUENCE_OF(struct ErrorIndication_IEs) list; /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_226P10_t; -typedef struct ProtocolIE_Container_226P11 { +} ProtocolIE_Container_1917P11_t; +typedef struct ProtocolIE_Container_1917P12 { A_SEQUENCE_OF(struct E2setupRequestIEs) list; /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_226P11_t; -typedef struct ProtocolIE_Container_226P12 { +} ProtocolIE_Container_1917P12_t; +typedef struct ProtocolIE_Container_1917P13 { A_SEQUENCE_OF(struct E2setupResponseIEs) list; /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_226P12_t; -typedef struct ProtocolIE_Container_226P13 { +} ProtocolIE_Container_1917P13_t; +typedef struct ProtocolIE_Container_1917P14 { A_SEQUENCE_OF(struct E2setupFailureIEs) list; /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_226P13_t; -typedef struct ProtocolIE_Container_226P14 { +} ProtocolIE_Container_1917P14_t; +typedef struct ProtocolIE_Container_1917P15 { A_SEQUENCE_OF(struct E2connectionUpdate_IEs) list; /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_226P14_t; -typedef struct ProtocolIE_Container_226P15 { +} ProtocolIE_Container_1917P15_t; +typedef struct ProtocolIE_Container_1917P16 { A_SEQUENCE_OF(struct E2connectionUpdateAck_IEs) list; /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_226P15_t; -typedef struct ProtocolIE_Container_226P16 { +} ProtocolIE_Container_1917P16_t; +typedef struct ProtocolIE_Container_1917P17 { A_SEQUENCE_OF(struct E2connectionUpdateFailure_IEs) list; /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_226P16_t; -typedef struct ProtocolIE_Container_226P17 { +} ProtocolIE_Container_1917P17_t; +typedef struct ProtocolIE_Container_1917P18 { A_SEQUENCE_OF(struct E2nodeConfigurationUpdate_IEs) list; /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_226P17_t; -typedef struct ProtocolIE_Container_226P18 { +} ProtocolIE_Container_1917P18_t; +typedef struct ProtocolIE_Container_1917P19 { A_SEQUENCE_OF(struct E2nodeConfigurationUpdateAcknowledge_IEs) list; /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_226P18_t; -typedef struct ProtocolIE_Container_226P19 { +} ProtocolIE_Container_1917P19_t; +typedef struct ProtocolIE_Container_1917P20 { A_SEQUENCE_OF(struct E2nodeConfigurationUpdateFailure_IEs) list; /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_226P19_t; -typedef struct ProtocolIE_Container_226P20 { +} ProtocolIE_Container_1917P20_t; +typedef struct ProtocolIE_Container_1917P21 { A_SEQUENCE_OF(struct ResetRequestIEs) list; /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_226P20_t; -typedef struct ProtocolIE_Container_226P21 { +} ProtocolIE_Container_1917P21_t; +typedef struct ProtocolIE_Container_1917P22 { A_SEQUENCE_OF(struct ResetResponseIEs) list; /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_226P21_t; -typedef struct ProtocolIE_Container_226P22 { +} ProtocolIE_Container_1917P22_t; +typedef struct ProtocolIE_Container_1917P23 { A_SEQUENCE_OF(struct RICserviceUpdate_IEs) list; /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_226P22_t; -typedef struct ProtocolIE_Container_226P23 { +} ProtocolIE_Container_1917P23_t; +typedef struct ProtocolIE_Container_1917P24 { A_SEQUENCE_OF(struct RICserviceUpdateAcknowledge_IEs) list; /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_226P23_t; -typedef struct ProtocolIE_Container_226P24 { +} ProtocolIE_Container_1917P24_t; +typedef struct ProtocolIE_Container_1917P25 { A_SEQUENCE_OF(struct RICserviceUpdateFailure_IEs) list; /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_226P24_t; -typedef struct ProtocolIE_Container_226P25 { +} ProtocolIE_Container_1917P25_t; +typedef struct ProtocolIE_Container_1917P26 { A_SEQUENCE_OF(struct RICserviceQuery_IEs) list; /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_226P25_t; +} ProtocolIE_Container_1917P26_t; /* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_226P0; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_226P0_specs_1; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P0_1[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_226P0_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_226P1; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_226P1_specs_3; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P1_3[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_226P1_constr_3; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_226P2; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_226P2_specs_5; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P2_5[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_226P2_constr_5; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_226P3; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_226P3_specs_7; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P3_7[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_226P3_constr_7; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_226P4; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_226P4_specs_9; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P4_9[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_226P4_constr_9; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_226P5; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_226P5_specs_11; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P5_11[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_226P5_constr_11; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_226P6; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_226P6_specs_13; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P6_13[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_226P6_constr_13; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_226P7; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_226P7_specs_15; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P7_15[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_226P7_constr_15; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_226P8; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_226P8_specs_17; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P8_17[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_226P8_constr_17; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_226P9; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_226P9_specs_19; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P9_19[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_226P9_constr_19; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_226P10; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_226P10_specs_21; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P10_21[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_226P10_constr_21; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_226P11; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_226P11_specs_23; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P11_23[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_226P11_constr_23; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_226P12; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_226P12_specs_25; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P12_25[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_226P12_constr_25; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_226P13; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_226P13_specs_27; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P13_27[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_226P13_constr_27; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_226P14; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_226P14_specs_29; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P14_29[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_226P14_constr_29; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_226P15; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_226P15_specs_31; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P15_31[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_226P15_constr_31; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_226P16; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_226P16_specs_33; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P16_33[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_226P16_constr_33; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_226P17; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_226P17_specs_35; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P17_35[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_226P17_constr_35; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_226P18; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_226P18_specs_37; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P18_37[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_226P18_constr_37; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_226P19; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_226P19_specs_39; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P19_39[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_226P19_constr_39; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_226P20; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_226P20_specs_41; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P20_41[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_226P20_constr_41; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_226P21; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_226P21_specs_43; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P21_43[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_226P21_constr_43; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_226P22; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_226P22_specs_45; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P22_45[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_226P22_constr_45; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_226P23; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_226P23_specs_47; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P23_47[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_226P23_constr_47; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_226P24; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_226P24_specs_49; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P24_49[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_226P24_constr_49; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_226P25; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_226P25_specs_51; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P25_51[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_226P25_constr_51; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P0; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P0_specs_1; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P0_1[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P0_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P1; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P1_specs_3; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P1_3[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P1_constr_3; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P2; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P2_specs_5; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P2_5[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P2_constr_5; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P3; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P3_specs_7; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P3_7[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P3_constr_7; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P4; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P4_specs_9; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P4_9[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P4_constr_9; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P5; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P5_specs_11; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P5_11[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P5_constr_11; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P6; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P6_specs_13; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P6_13[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P6_constr_13; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P7; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P7_specs_15; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P7_15[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P7_constr_15; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P8; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P8_specs_17; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P8_17[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P8_constr_17; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P9; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P9_specs_19; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P9_19[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P9_constr_19; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P10; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P10_specs_21; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P10_21[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P10_constr_21; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P11; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P11_specs_23; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P11_23[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P11_constr_23; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P12; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P12_specs_25; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P12_25[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P12_constr_25; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P13; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P13_specs_27; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P13_27[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P13_constr_27; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P14; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P14_specs_29; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P14_29[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P14_constr_29; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P15; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P15_specs_31; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P15_31[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P15_constr_31; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P16; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P16_specs_33; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P16_33[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P16_constr_33; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P17; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P17_specs_35; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P17_35[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P17_constr_35; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P18; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P18_specs_37; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P18_37[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P18_constr_37; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P19; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P19_specs_39; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P19_39[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P19_constr_39; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P20; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P20_specs_41; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P20_41[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P20_constr_41; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P21; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P21_specs_43; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P21_43[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P21_constr_43; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P22; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P22_specs_45; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P22_45[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P22_constr_45; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P23; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P23_specs_47; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P23_47[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P23_constr_47; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P24; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P24_specs_49; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P24_49[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P24_constr_49; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P25; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P25_specs_51; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P25_51[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P25_constr_51; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P26; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P26_specs_53; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P26_53[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P26_constr_53; #ifdef __cplusplus } diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ProtocolIE-ContainerList.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ProtocolIE-ContainerList.c index a55503d..c036a5d 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ProtocolIE-ContainerList.c +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ProtocolIE-ContainerList.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-Containers" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #include "ProtocolIE-ContainerList.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ProtocolIE-ContainerList.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ProtocolIE-ContainerList.h index fe7c646..83965fb 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ProtocolIE-ContainerList.h +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ProtocolIE-ContainerList.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-Containers" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #ifndef _ProtocolIE_ContainerList_H_ diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ProtocolIE-ContainerPair.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ProtocolIE-ContainerPair.c index 00bfc8e..3721a2c 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ProtocolIE-ContainerPair.c +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ProtocolIE-ContainerPair.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-Containers" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #include "ProtocolIE-ContainerPair.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ProtocolIE-ContainerPair.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ProtocolIE-ContainerPair.h index eb1eabf..3672c67 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ProtocolIE-ContainerPair.h +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ProtocolIE-ContainerPair.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-Containers" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #ifndef _ProtocolIE_ContainerPair_H_ diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ProtocolIE-ContainerPairList.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ProtocolIE-ContainerPairList.c index 3518d31..fd11ba4 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ProtocolIE-ContainerPairList.c +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ProtocolIE-ContainerPairList.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-Containers" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #include "ProtocolIE-ContainerPairList.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ProtocolIE-ContainerPairList.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ProtocolIE-ContainerPairList.h index 176c565..8ad73e3 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ProtocolIE-ContainerPairList.h +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ProtocolIE-ContainerPairList.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-Containers" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #ifndef _ProtocolIE_ContainerPairList_H_ diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ProtocolIE-Field.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ProtocolIE-Field.c index 556fd53..7123cc9 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ProtocolIE-Field.c +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ProtocolIE-Field.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-Containers" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #include "ProtocolIE-Field.h" @@ -43,98 +43,170 @@ static const asn_ioc_cell_t asn_IOS_RICaction_NotAdmitted_ItemIEs_1_rows[] = { static const asn_ioc_set_t asn_IOS_RICaction_NotAdmitted_ItemIEs_1[] = { { 1, 4, asn_IOS_RICaction_NotAdmitted_ItemIEs_1_rows } }; -static const long asn_VAL_65_id_E2connectionUpdate_Item = 43; -static const long asn_VAL_65_ignore = 1; -static const long asn_VAL_65_mandatory = 2; +static const long asn_VAL_24_id_RICsubscription_withCause_Item = 51; +static const long asn_VAL_24_ignore = 1; +static const long asn_VAL_24_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_RICsubscription_withCause_ItemIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_24_id_RICsubscription_withCause_Item }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_24_ignore }, + { "&Value", aioc__type, &asn_DEF_RICsubscription_withCause_Item }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_24_mandatory } +}; +static const asn_ioc_set_t asn_IOS_RICsubscription_withCause_ItemIEs_1[] = { + { 1, 4, asn_IOS_RICsubscription_withCause_ItemIEs_1_rows } +}; +static const long asn_VAL_71_id_E2connectionUpdate_Item = 43; +static const long asn_VAL_71_ignore = 1; +static const long asn_VAL_71_mandatory = 2; static const asn_ioc_cell_t asn_IOS_E2connectionUpdate_ItemIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_65_id_E2connectionUpdate_Item }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_65_ignore }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_71_id_E2connectionUpdate_Item }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_71_ignore }, { "&Value", aioc__type, &asn_DEF_E2connectionUpdate_Item }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_65_mandatory } + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_71_mandatory } }; static const asn_ioc_set_t asn_IOS_E2connectionUpdate_ItemIEs_1[] = { { 1, 4, asn_IOS_E2connectionUpdate_ItemIEs_1_rows } }; -static const long asn_VAL_66_id_E2connectionUpdateRemove_Item = 47; -static const long asn_VAL_66_ignore = 1; -static const long asn_VAL_66_mandatory = 2; +static const long asn_VAL_72_id_E2connectionUpdateRemove_Item = 47; +static const long asn_VAL_72_ignore = 1; +static const long asn_VAL_72_mandatory = 2; static const asn_ioc_cell_t asn_IOS_E2connectionUpdateRemove_ItemIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_66_id_E2connectionUpdateRemove_Item }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_66_ignore }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_72_id_E2connectionUpdateRemove_Item }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_72_ignore }, { "&Value", aioc__type, &asn_DEF_E2connectionUpdateRemove_Item }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_66_mandatory } + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_72_mandatory } }; static const asn_ioc_set_t asn_IOS_E2connectionUpdateRemove_ItemIEs_1[] = { { 1, 4, asn_IOS_E2connectionUpdateRemove_ItemIEs_1_rows } }; -static const long asn_VAL_69_id_E2connectionSetupFailed_Item = 41; -static const long asn_VAL_69_ignore = 1; -static const long asn_VAL_69_mandatory = 2; +static const long asn_VAL_76_id_E2connectionSetupFailed_Item = 41; +static const long asn_VAL_76_ignore = 1; +static const long asn_VAL_76_mandatory = 2; static const asn_ioc_cell_t asn_IOS_E2connectionSetupFailed_ItemIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_69_id_E2connectionSetupFailed_Item }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_69_ignore }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_76_id_E2connectionSetupFailed_Item }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_76_ignore }, { "&Value", aioc__type, &asn_DEF_E2connectionSetupFailed_Item }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_69_mandatory } + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_76_mandatory } }; static const asn_ioc_set_t asn_IOS_E2connectionSetupFailed_ItemIEs_1[] = { { 1, 4, asn_IOS_E2connectionSetupFailed_ItemIEs_1_rows } }; -static const long asn_VAL_74_id_E2nodeComponentConfigUpdate_Item = 34; -static const long asn_VAL_74_reject = 0; -static const long asn_VAL_74_mandatory = 2; +static const long asn_VAL_87_id_E2nodeComponentConfigAddition_Item = 51; +static const long asn_VAL_87_reject = 0; +static const long asn_VAL_87_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_E2nodeComponentConfigAddition_ItemIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_87_id_E2nodeComponentConfigAddition_Item }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_87_reject }, + { "&Value", aioc__type, &asn_DEF_E2nodeComponentConfigAddition_Item }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_87_mandatory } +}; +static const asn_ioc_set_t asn_IOS_E2nodeComponentConfigAddition_ItemIEs_1[] = { + { 1, 4, asn_IOS_E2nodeComponentConfigAddition_ItemIEs_1_rows } +}; +static const long asn_VAL_88_id_E2nodeComponentConfigUpdate_Item = 34; +static const long asn_VAL_88_reject = 0; +static const long asn_VAL_88_mandatory = 2; static const asn_ioc_cell_t asn_IOS_E2nodeComponentConfigUpdate_ItemIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_74_id_E2nodeComponentConfigUpdate_Item }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_74_reject }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_88_id_E2nodeComponentConfigUpdate_Item }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_88_reject }, { "&Value", aioc__type, &asn_DEF_E2nodeComponentConfigUpdate_Item }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_74_mandatory } + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_88_mandatory } }; static const asn_ioc_set_t asn_IOS_E2nodeComponentConfigUpdate_ItemIEs_1[] = { { 1, 4, asn_IOS_E2nodeComponentConfigUpdate_ItemIEs_1_rows } }; -static const long asn_VAL_76_id_E2nodeComponentConfigUpdateAck_Item = 36; -static const long asn_VAL_76_reject = 0; -static const long asn_VAL_76_mandatory = 2; +static const long asn_VAL_89_id_E2nodeComponentConfigRemoval_Item = 55; +static const long asn_VAL_89_reject = 0; +static const long asn_VAL_89_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_E2nodeComponentConfigRemoval_ItemIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_89_id_E2nodeComponentConfigRemoval_Item }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_89_reject }, + { "&Value", aioc__type, &asn_DEF_E2nodeComponentConfigRemoval_Item }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_89_mandatory } +}; +static const asn_ioc_set_t asn_IOS_E2nodeComponentConfigRemoval_ItemIEs_1[] = { + { 1, 4, asn_IOS_E2nodeComponentConfigRemoval_ItemIEs_1_rows } +}; +static const long asn_VAL_90_id_E2nodeTNLassociationRemoval_Item = 59; +static const long asn_VAL_90_reject = 0; +static const long asn_VAL_90_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_E2nodeTNLassociationRemoval_ItemIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_90_id_E2nodeTNLassociationRemoval_Item }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_90_reject }, + { "&Value", aioc__type, &asn_DEF_E2nodeTNLassociationRemoval_Item }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_90_mandatory } +}; +static const asn_ioc_set_t asn_IOS_E2nodeTNLassociationRemoval_ItemIEs_1[] = { + { 1, 4, asn_IOS_E2nodeTNLassociationRemoval_ItemIEs_1_rows } +}; +static const long asn_VAL_95_id_E2nodeComponentConfigAdditionAck_Item = 53; +static const long asn_VAL_95_reject = 0; +static const long asn_VAL_95_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_E2nodeComponentConfigAdditionAck_ItemIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_95_id_E2nodeComponentConfigAdditionAck_Item }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_95_reject }, + { "&Value", aioc__type, &asn_DEF_E2nodeComponentConfigAdditionAck_Item }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_95_mandatory } +}; +static const asn_ioc_set_t asn_IOS_E2nodeComponentConfigAdditionAck_ItemIEs_1[] = { + { 1, 4, asn_IOS_E2nodeComponentConfigAdditionAck_ItemIEs_1_rows } +}; +static const long asn_VAL_96_id_E2nodeComponentConfigUpdateAck_Item = 36; +static const long asn_VAL_96_reject = 0; +static const long asn_VAL_96_mandatory = 2; static const asn_ioc_cell_t asn_IOS_E2nodeComponentConfigUpdateAck_ItemIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_76_id_E2nodeComponentConfigUpdateAck_Item }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_76_reject }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_96_id_E2nodeComponentConfigUpdateAck_Item }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_96_reject }, { "&Value", aioc__type, &asn_DEF_E2nodeComponentConfigUpdateAck_Item }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_76_mandatory } + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_96_mandatory } }; static const asn_ioc_set_t asn_IOS_E2nodeComponentConfigUpdateAck_ItemIEs_1[] = { { 1, 4, asn_IOS_E2nodeComponentConfigUpdateAck_ItemIEs_1_rows } }; -static const long asn_VAL_85_id_RANfunction_Item = 8; -static const long asn_VAL_85_ignore = 1; -static const long asn_VAL_85_mandatory = 2; +static const long asn_VAL_97_id_E2nodeComponentConfigRemovalAck_Item = 57; +static const long asn_VAL_97_reject = 0; +static const long asn_VAL_97_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_E2nodeComponentConfigRemovalAck_ItemIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_97_id_E2nodeComponentConfigRemovalAck_Item }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_97_reject }, + { "&Value", aioc__type, &asn_DEF_E2nodeComponentConfigRemovalAck_Item }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_97_mandatory } +}; +static const asn_ioc_set_t asn_IOS_E2nodeComponentConfigRemovalAck_ItemIEs_1[] = { + { 1, 4, asn_IOS_E2nodeComponentConfigRemovalAck_ItemIEs_1_rows } +}; +static const long asn_VAL_110_id_RANfunction_Item = 8; +static const long asn_VAL_110_ignore = 1; +static const long asn_VAL_110_mandatory = 2; static const asn_ioc_cell_t asn_IOS_RANfunction_ItemIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_85_id_RANfunction_Item }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_85_ignore }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_110_id_RANfunction_Item }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_110_ignore }, { "&Value", aioc__type, &asn_DEF_RANfunction_Item }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_85_mandatory } + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_110_mandatory } }; static const asn_ioc_set_t asn_IOS_RANfunction_ItemIEs_1[] = { { 1, 4, asn_IOS_RANfunction_ItemIEs_1_rows } }; -static const long asn_VAL_86_id_RANfunctionID_Item = 6; -static const long asn_VAL_86_ignore = 1; -static const long asn_VAL_86_mandatory = 2; +static const long asn_VAL_111_id_RANfunctionID_Item = 6; +static const long asn_VAL_111_ignore = 1; +static const long asn_VAL_111_mandatory = 2; static const asn_ioc_cell_t asn_IOS_RANfunctionID_ItemIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_86_id_RANfunctionID_Item }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_86_ignore }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_111_id_RANfunctionID_Item }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_111_ignore }, { "&Value", aioc__type, &asn_DEF_RANfunctionID_Item }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_86_mandatory } + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_111_mandatory } }; static const asn_ioc_set_t asn_IOS_RANfunctionID_ItemIEs_1[] = { { 1, 4, asn_IOS_RANfunctionID_ItemIEs_1_rows } }; -static const long asn_VAL_89_id_RANfunctionIEcause_Item = 7; -static const long asn_VAL_89_ignore = 1; -static const long asn_VAL_89_mandatory = 2; +static const long asn_VAL_115_id_RANfunctionIEcause_Item = 7; +static const long asn_VAL_115_ignore = 1; +static const long asn_VAL_115_mandatory = 2; static const asn_ioc_cell_t asn_IOS_RANfunctionIDcause_ItemIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_89_id_RANfunctionIEcause_Item }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_89_ignore }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_115_id_RANfunctionIEcause_Item }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_115_ignore }, { "&Value", aioc__type, &asn_DEF_RANfunctionIDcause_Item }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_89_mandatory } + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_115_mandatory } }; static const asn_ioc_set_t asn_IOS_RANfunctionIDcause_ItemIEs_1[] = { { 1, 4, asn_IOS_RANfunctionIDcause_ItemIEs_1_rows } @@ -204,7 +276,7 @@ static const long asn_VAL_11_mandatory = 2; static const long asn_VAL_12_id_RANfunctionID = 5; static const long asn_VAL_12_reject = 0; static const long asn_VAL_12_mandatory = 2; -static const long asn_VAL_13_id_RICactions_NotAdmitted = 18; +static const long asn_VAL_13_id_Cause = 1; static const long asn_VAL_13_reject = 0; static const long asn_VAL_13_mandatory = 2; static const long asn_VAL_14_id_CriticalityDiagnostics = 2; @@ -219,9 +291,9 @@ static const asn_ioc_cell_t asn_IOS_RICsubscriptionFailure_IEs_1_rows[] = { { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_12_reject }, { "&Value", aioc__type, &asn_DEF_RANfunctionID }, { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_12_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_13_id_RICactions_NotAdmitted }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_13_id_Cause }, { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_13_reject }, - { "&Value", aioc__type, &asn_DEF_RICaction_NotAdmitted_List }, + { "&Value", aioc__type, &asn_DEF_Cause }, { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_13_mandatory }, { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_14_id_CriticalityDiagnostics }, { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_14_ignore }, @@ -302,546 +374,705 @@ static const asn_ioc_cell_t asn_IOS_RICsubscriptionDeleteFailure_IEs_1_rows[] = static const asn_ioc_set_t asn_IOS_RICsubscriptionDeleteFailure_IEs_1[] = { { 4, 4, asn_IOS_RICsubscriptionDeleteFailure_IEs_1_rows } }; -static const long asn_VAL_23_id_RICrequestID = 29; -static const long asn_VAL_23_reject = 0; +static const long asn_VAL_23_id_RICsubscriptionToBeRemoved = 50; +static const long asn_VAL_23_ignore = 1; static const long asn_VAL_23_mandatory = 2; -static const long asn_VAL_24_id_RANfunctionID = 5; -static const long asn_VAL_24_reject = 0; -static const long asn_VAL_24_mandatory = 2; -static const long asn_VAL_25_id_RICactionID = 15; +static const asn_ioc_cell_t asn_IOS_RICsubscriptionDeleteRequired_IEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_23_id_RICsubscriptionToBeRemoved }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_23_ignore }, + { "&Value", aioc__type, &asn_DEF_RICsubscription_List_withCause }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_23_mandatory } +}; +static const asn_ioc_set_t asn_IOS_RICsubscriptionDeleteRequired_IEs_1[] = { + { 1, 4, asn_IOS_RICsubscriptionDeleteRequired_IEs_1_rows } +}; +static const long asn_VAL_25_id_RICrequestID = 29; static const long asn_VAL_25_reject = 0; static const long asn_VAL_25_mandatory = 2; -static const long asn_VAL_26_id_RICindicationSN = 27; +static const long asn_VAL_26_id_RANfunctionID = 5; static const long asn_VAL_26_reject = 0; -static const long asn_VAL_26_optional = 0; -static const long asn_VAL_27_id_RICindicationType = 28; +static const long asn_VAL_26_mandatory = 2; +static const long asn_VAL_27_id_RICactionID = 15; static const long asn_VAL_27_reject = 0; static const long asn_VAL_27_mandatory = 2; -static const long asn_VAL_28_id_RICindicationHeader = 25; +static const long asn_VAL_28_id_RICindicationSN = 27; static const long asn_VAL_28_reject = 0; -static const long asn_VAL_28_mandatory = 2; -static const long asn_VAL_29_id_RICindicationMessage = 26; +static const long asn_VAL_28_optional = 0; +static const long asn_VAL_29_id_RICindicationType = 28; static const long asn_VAL_29_reject = 0; static const long asn_VAL_29_mandatory = 2; -static const long asn_VAL_30_id_RICcallProcessID = 20; +static const long asn_VAL_30_id_RICindicationHeader = 25; static const long asn_VAL_30_reject = 0; -static const long asn_VAL_30_optional = 0; +static const long asn_VAL_30_mandatory = 2; +static const long asn_VAL_31_id_RICindicationMessage = 26; +static const long asn_VAL_31_reject = 0; +static const long asn_VAL_31_mandatory = 2; +static const long asn_VAL_32_id_RICcallProcessID = 20; +static const long asn_VAL_32_reject = 0; +static const long asn_VAL_32_optional = 0; static const asn_ioc_cell_t asn_IOS_RICindication_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_23_id_RICrequestID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_23_reject }, - { "&Value", aioc__type, &asn_DEF_RICrequestID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_23_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_24_id_RANfunctionID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_24_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_24_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_25_id_RICactionID }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_25_id_RICrequestID }, { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_25_reject }, - { "&Value", aioc__type, &asn_DEF_RICactionID }, + { "&Value", aioc__type, &asn_DEF_RICrequestID }, { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_25_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_26_id_RICindicationSN }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_26_id_RANfunctionID }, { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_26_reject }, - { "&Value", aioc__type, &asn_DEF_RICindicationSN }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_26_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_27_id_RICindicationType }, + { "&Value", aioc__type, &asn_DEF_RANfunctionID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_26_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_27_id_RICactionID }, { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_27_reject }, - { "&Value", aioc__type, &asn_DEF_RICindicationType }, + { "&Value", aioc__type, &asn_DEF_RICactionID }, { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_27_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_28_id_RICindicationHeader }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_28_id_RICindicationSN }, { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_28_reject }, - { "&Value", aioc__type, &asn_DEF_RICindicationHeader }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_28_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_29_id_RICindicationMessage }, + { "&Value", aioc__type, &asn_DEF_RICindicationSN }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_28_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_29_id_RICindicationType }, { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_29_reject }, - { "&Value", aioc__type, &asn_DEF_RICindicationMessage }, + { "&Value", aioc__type, &asn_DEF_RICindicationType }, { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_29_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_30_id_RICcallProcessID }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_30_id_RICindicationHeader }, { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_30_reject }, + { "&Value", aioc__type, &asn_DEF_RICindicationHeader }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_30_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_31_id_RICindicationMessage }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_31_reject }, + { "&Value", aioc__type, &asn_DEF_RICindicationMessage }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_31_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_32_id_RICcallProcessID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_32_reject }, { "&Value", aioc__type, &asn_DEF_RICcallProcessID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_30_optional } + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_32_optional } }; static const asn_ioc_set_t asn_IOS_RICindication_IEs_1[] = { { 8, 4, asn_IOS_RICindication_IEs_1_rows } }; -static const long asn_VAL_31_id_RICrequestID = 29; -static const long asn_VAL_31_reject = 0; -static const long asn_VAL_31_mandatory = 2; -static const long asn_VAL_32_id_RANfunctionID = 5; -static const long asn_VAL_32_reject = 0; -static const long asn_VAL_32_mandatory = 2; -static const long asn_VAL_33_id_RICcallProcessID = 20; +static const long asn_VAL_33_id_RICrequestID = 29; static const long asn_VAL_33_reject = 0; -static const long asn_VAL_33_optional = 0; -static const long asn_VAL_34_id_RICcontrolHeader = 22; +static const long asn_VAL_33_mandatory = 2; +static const long asn_VAL_34_id_RANfunctionID = 5; static const long asn_VAL_34_reject = 0; static const long asn_VAL_34_mandatory = 2; -static const long asn_VAL_35_id_RICcontrolMessage = 23; +static const long asn_VAL_35_id_RICcallProcessID = 20; static const long asn_VAL_35_reject = 0; -static const long asn_VAL_35_mandatory = 2; -static const long asn_VAL_36_id_RICcontrolAckRequest = 21; +static const long asn_VAL_35_optional = 0; +static const long asn_VAL_36_id_RICcontrolHeader = 22; static const long asn_VAL_36_reject = 0; -static const long asn_VAL_36_optional = 0; +static const long asn_VAL_36_mandatory = 2; +static const long asn_VAL_37_id_RICcontrolMessage = 23; +static const long asn_VAL_37_reject = 0; +static const long asn_VAL_37_mandatory = 2; +static const long asn_VAL_38_id_RICcontrolAckRequest = 21; +static const long asn_VAL_38_reject = 0; +static const long asn_VAL_38_optional = 0; static const asn_ioc_cell_t asn_IOS_RICcontrolRequest_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_31_id_RICrequestID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_31_reject }, - { "&Value", aioc__type, &asn_DEF_RICrequestID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_31_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_32_id_RANfunctionID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_32_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_32_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_33_id_RICcallProcessID }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_33_id_RICrequestID }, { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_33_reject }, - { "&Value", aioc__type, &asn_DEF_RICcallProcessID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_33_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_34_id_RICcontrolHeader }, + { "&Value", aioc__type, &asn_DEF_RICrequestID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_33_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_34_id_RANfunctionID }, { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_34_reject }, - { "&Value", aioc__type, &asn_DEF_RICcontrolHeader }, + { "&Value", aioc__type, &asn_DEF_RANfunctionID }, { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_34_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_35_id_RICcontrolMessage }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_35_id_RICcallProcessID }, { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_35_reject }, - { "&Value", aioc__type, &asn_DEF_RICcontrolMessage }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_35_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_36_id_RICcontrolAckRequest }, + { "&Value", aioc__type, &asn_DEF_RICcallProcessID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_35_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_36_id_RICcontrolHeader }, { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_36_reject }, + { "&Value", aioc__type, &asn_DEF_RICcontrolHeader }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_36_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_37_id_RICcontrolMessage }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_37_reject }, + { "&Value", aioc__type, &asn_DEF_RICcontrolMessage }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_37_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_38_id_RICcontrolAckRequest }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_38_reject }, { "&Value", aioc__type, &asn_DEF_RICcontrolAckRequest }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_36_optional } + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_38_optional } }; static const asn_ioc_set_t asn_IOS_RICcontrolRequest_IEs_1[] = { { 6, 4, asn_IOS_RICcontrolRequest_IEs_1_rows } }; -static const long asn_VAL_37_id_RICrequestID = 29; -static const long asn_VAL_37_reject = 0; -static const long asn_VAL_37_mandatory = 2; -static const long asn_VAL_38_id_RANfunctionID = 5; -static const long asn_VAL_38_reject = 0; -static const long asn_VAL_38_mandatory = 2; -static const long asn_VAL_39_id_RICcallProcessID = 20; +static const long asn_VAL_39_id_RICrequestID = 29; static const long asn_VAL_39_reject = 0; -static const long asn_VAL_39_optional = 0; -static const long asn_VAL_40_id_RICcontrolStatus = 24; +static const long asn_VAL_39_mandatory = 2; +static const long asn_VAL_40_id_RANfunctionID = 5; static const long asn_VAL_40_reject = 0; static const long asn_VAL_40_mandatory = 2; -static const long asn_VAL_41_id_RICcontrolOutcome = 32; +static const long asn_VAL_41_id_RICcallProcessID = 20; static const long asn_VAL_41_reject = 0; static const long asn_VAL_41_optional = 0; +static const long asn_VAL_42_id_RICcontrolOutcome = 32; +static const long asn_VAL_42_reject = 0; +static const long asn_VAL_42_optional = 0; static const asn_ioc_cell_t asn_IOS_RICcontrolAcknowledge_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_37_id_RICrequestID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_37_reject }, - { "&Value", aioc__type, &asn_DEF_RICrequestID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_37_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_38_id_RANfunctionID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_38_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_38_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_39_id_RICcallProcessID }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_39_id_RICrequestID }, { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_39_reject }, - { "&Value", aioc__type, &asn_DEF_RICcallProcessID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_39_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_40_id_RICcontrolStatus }, + { "&Value", aioc__type, &asn_DEF_RICrequestID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_39_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_40_id_RANfunctionID }, { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_40_reject }, - { "&Value", aioc__type, &asn_DEF_RICcontrolStatus }, + { "&Value", aioc__type, &asn_DEF_RANfunctionID }, { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_40_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_41_id_RICcontrolOutcome }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_41_id_RICcallProcessID }, { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_41_reject }, + { "&Value", aioc__type, &asn_DEF_RICcallProcessID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_41_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_42_id_RICcontrolOutcome }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_42_reject }, { "&Value", aioc__type, &asn_DEF_RICcontrolOutcome }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_41_optional } + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_42_optional } }; static const asn_ioc_set_t asn_IOS_RICcontrolAcknowledge_IEs_1[] = { - { 5, 4, asn_IOS_RICcontrolAcknowledge_IEs_1_rows } + { 4, 4, asn_IOS_RICcontrolAcknowledge_IEs_1_rows } }; -static const long asn_VAL_42_id_RICrequestID = 29; -static const long asn_VAL_42_reject = 0; -static const long asn_VAL_42_mandatory = 2; -static const long asn_VAL_43_id_RANfunctionID = 5; +static const long asn_VAL_43_id_RICrequestID = 29; static const long asn_VAL_43_reject = 0; static const long asn_VAL_43_mandatory = 2; -static const long asn_VAL_44_id_RICcallProcessID = 20; +static const long asn_VAL_44_id_RANfunctionID = 5; static const long asn_VAL_44_reject = 0; -static const long asn_VAL_44_optional = 0; -static const long asn_VAL_45_id_Cause = 1; -static const long asn_VAL_45_ignore = 1; -static const long asn_VAL_45_mandatory = 2; -static const long asn_VAL_46_id_RICcontrolOutcome = 32; -static const long asn_VAL_46_reject = 0; -static const long asn_VAL_46_optional = 0; +static const long asn_VAL_44_mandatory = 2; +static const long asn_VAL_45_id_RICcallProcessID = 20; +static const long asn_VAL_45_reject = 0; +static const long asn_VAL_45_optional = 0; +static const long asn_VAL_46_id_Cause = 1; +static const long asn_VAL_46_ignore = 1; +static const long asn_VAL_46_mandatory = 2; +static const long asn_VAL_47_id_RICcontrolOutcome = 32; +static const long asn_VAL_47_reject = 0; +static const long asn_VAL_47_optional = 0; static const asn_ioc_cell_t asn_IOS_RICcontrolFailure_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_42_id_RICrequestID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_42_reject }, - { "&Value", aioc__type, &asn_DEF_RICrequestID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_42_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_43_id_RANfunctionID }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_43_id_RICrequestID }, { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_43_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionID }, + { "&Value", aioc__type, &asn_DEF_RICrequestID }, { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_43_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_44_id_RICcallProcessID }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_44_id_RANfunctionID }, { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_44_reject }, + { "&Value", aioc__type, &asn_DEF_RANfunctionID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_44_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_45_id_RICcallProcessID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_45_reject }, { "&Value", aioc__type, &asn_DEF_RICcallProcessID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_44_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_45_id_Cause }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_45_ignore }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_45_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_46_id_Cause }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_46_ignore }, { "&Value", aioc__type, &asn_DEF_Cause }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_45_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_46_id_RICcontrolOutcome }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_46_reject }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_46_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_47_id_RICcontrolOutcome }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_47_reject }, { "&Value", aioc__type, &asn_DEF_RICcontrolOutcome }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_46_optional } + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_47_optional } }; static const asn_ioc_set_t asn_IOS_RICcontrolFailure_IEs_1[] = { { 5, 4, asn_IOS_RICcontrolFailure_IEs_1_rows } }; -static const long asn_VAL_47_id_RICrequestID = 29; -static const long asn_VAL_47_reject = 0; -static const long asn_VAL_47_optional = 0; -static const long asn_VAL_48_id_RANfunctionID = 5; +static const long asn_VAL_48_id_TransactionID = 49; static const long asn_VAL_48_reject = 0; static const long asn_VAL_48_optional = 0; -static const long asn_VAL_49_id_Cause = 1; -static const long asn_VAL_49_ignore = 1; +static const long asn_VAL_49_id_RICrequestID = 29; +static const long asn_VAL_49_reject = 0; static const long asn_VAL_49_optional = 0; -static const long asn_VAL_50_id_CriticalityDiagnostics = 2; -static const long asn_VAL_50_ignore = 1; +static const long asn_VAL_50_id_RANfunctionID = 5; +static const long asn_VAL_50_reject = 0; static const long asn_VAL_50_optional = 0; +static const long asn_VAL_51_id_Cause = 1; +static const long asn_VAL_51_ignore = 1; +static const long asn_VAL_51_optional = 0; +static const long asn_VAL_52_id_CriticalityDiagnostics = 2; +static const long asn_VAL_52_ignore = 1; +static const long asn_VAL_52_optional = 0; static const asn_ioc_cell_t asn_IOS_ErrorIndication_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_47_id_RICrequestID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_47_reject }, - { "&Value", aioc__type, &asn_DEF_RICrequestID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_47_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_48_id_RANfunctionID }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_48_id_TransactionID }, { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_48_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionID }, + { "&Value", aioc__type, &asn_DEF_TransactionID }, { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_48_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_49_id_Cause }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_49_ignore }, - { "&Value", aioc__type, &asn_DEF_Cause }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_49_id_RICrequestID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_49_reject }, + { "&Value", aioc__type, &asn_DEF_RICrequestID }, { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_49_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_50_id_CriticalityDiagnostics }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_50_ignore }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_50_id_RANfunctionID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_50_reject }, + { "&Value", aioc__type, &asn_DEF_RANfunctionID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_50_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_51_id_Cause }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_51_ignore }, + { "&Value", aioc__type, &asn_DEF_Cause }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_51_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_52_id_CriticalityDiagnostics }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_52_ignore }, { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_50_optional } + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_52_optional } }; static const asn_ioc_set_t asn_IOS_ErrorIndication_IEs_1[] = { - { 4, 4, asn_IOS_ErrorIndication_IEs_1_rows } + { 5, 4, asn_IOS_ErrorIndication_IEs_1_rows } }; -static const long asn_VAL_51_id_GlobalE2node_ID = 3; -static const long asn_VAL_51_reject = 0; -static const long asn_VAL_51_mandatory = 2; -static const long asn_VAL_52_id_RANfunctionsAdded = 10; -static const long asn_VAL_52_reject = 0; -static const long asn_VAL_52_optional = 0; -static const long asn_VAL_53_id_E2nodeComponentConfigUpdate = 33; +static const long asn_VAL_53_id_TransactionID = 49; static const long asn_VAL_53_reject = 0; -static const long asn_VAL_53_optional = 0; +static const long asn_VAL_53_mandatory = 2; +static const long asn_VAL_54_id_GlobalE2node_ID = 3; +static const long asn_VAL_54_reject = 0; +static const long asn_VAL_54_mandatory = 2; +static const long asn_VAL_55_id_RANfunctionsAdded = 10; +static const long asn_VAL_55_reject = 0; +static const long asn_VAL_55_mandatory = 2; +static const long asn_VAL_56_id_E2nodeComponentConfigAddition = 50; +static const long asn_VAL_56_reject = 0; +static const long asn_VAL_56_mandatory = 2; static const asn_ioc_cell_t asn_IOS_E2setupRequestIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_51_id_GlobalE2node_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_51_reject }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_53_id_TransactionID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_53_reject }, + { "&Value", aioc__type, &asn_DEF_TransactionID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_53_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_54_id_GlobalE2node_ID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_54_reject }, { "&Value", aioc__type, &asn_DEF_GlobalE2node_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_51_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_52_id_RANfunctionsAdded }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_52_reject }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_54_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_55_id_RANfunctionsAdded }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_55_reject }, { "&Value", aioc__type, &asn_DEF_RANfunctions_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_52_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_53_id_E2nodeComponentConfigUpdate }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_53_reject }, - { "&Value", aioc__type, &asn_DEF_E2nodeComponentConfigUpdate_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_53_optional } + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_55_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_56_id_E2nodeComponentConfigAddition }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_56_reject }, + { "&Value", aioc__type, &asn_DEF_E2nodeComponentConfigAddition_List }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_56_mandatory } }; static const asn_ioc_set_t asn_IOS_E2setupRequestIEs_1[] = { - { 3, 4, asn_IOS_E2setupRequestIEs_1_rows } + { 4, 4, asn_IOS_E2setupRequestIEs_1_rows } }; -static const long asn_VAL_54_id_GlobalRIC_ID = 4; -static const long asn_VAL_54_reject = 0; -static const long asn_VAL_54_mandatory = 2; -static const long asn_VAL_55_id_RANfunctionsAccepted = 9; -static const long asn_VAL_55_reject = 0; -static const long asn_VAL_55_optional = 0; -static const long asn_VAL_56_id_RANfunctionsRejected = 13; -static const long asn_VAL_56_reject = 0; -static const long asn_VAL_56_optional = 0; -static const long asn_VAL_57_id_E2nodeComponentConfigUpdateAck = 35; +static const long asn_VAL_57_id_TransactionID = 49; static const long asn_VAL_57_reject = 0; -static const long asn_VAL_57_optional = 0; +static const long asn_VAL_57_mandatory = 2; +static const long asn_VAL_58_id_GlobalRIC_ID = 4; +static const long asn_VAL_58_reject = 0; +static const long asn_VAL_58_mandatory = 2; +static const long asn_VAL_59_id_RANfunctionsAccepted = 9; +static const long asn_VAL_59_reject = 0; +static const long asn_VAL_59_optional = 0; +static const long asn_VAL_60_id_RANfunctionsRejected = 13; +static const long asn_VAL_60_reject = 0; +static const long asn_VAL_60_optional = 0; +static const long asn_VAL_61_id_E2nodeComponentConfigAdditionAck = 52; +static const long asn_VAL_61_reject = 0; +static const long asn_VAL_61_mandatory = 2; static const asn_ioc_cell_t asn_IOS_E2setupResponseIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_54_id_GlobalRIC_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_54_reject }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_57_id_TransactionID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_57_reject }, + { "&Value", aioc__type, &asn_DEF_TransactionID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_57_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_58_id_GlobalRIC_ID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_58_reject }, { "&Value", aioc__type, &asn_DEF_GlobalRIC_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_54_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_55_id_RANfunctionsAccepted }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_55_reject }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_58_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_59_id_RANfunctionsAccepted }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_59_reject }, { "&Value", aioc__type, &asn_DEF_RANfunctionsID_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_55_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_56_id_RANfunctionsRejected }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_56_reject }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_59_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_60_id_RANfunctionsRejected }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_60_reject }, { "&Value", aioc__type, &asn_DEF_RANfunctionsIDcause_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_56_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_57_id_E2nodeComponentConfigUpdateAck }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_57_reject }, - { "&Value", aioc__type, &asn_DEF_E2nodeComponentConfigUpdateAck_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_57_optional } + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_60_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_61_id_E2nodeComponentConfigAdditionAck }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_61_reject }, + { "&Value", aioc__type, &asn_DEF_E2nodeComponentConfigAdditionAck_List }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_61_mandatory } }; static const asn_ioc_set_t asn_IOS_E2setupResponseIEs_1[] = { - { 4, 4, asn_IOS_E2setupResponseIEs_1_rows } + { 5, 4, asn_IOS_E2setupResponseIEs_1_rows } }; -static const long asn_VAL_58_id_Cause = 1; -static const long asn_VAL_58_ignore = 1; -static const long asn_VAL_58_mandatory = 2; -static const long asn_VAL_59_id_TimeToWait = 31; -static const long asn_VAL_59_ignore = 1; -static const long asn_VAL_59_optional = 0; -static const long asn_VAL_60_id_CriticalityDiagnostics = 2; -static const long asn_VAL_60_ignore = 1; -static const long asn_VAL_60_optional = 0; -static const long asn_VAL_61_id_TNLinformation = 48; -static const long asn_VAL_61_ignore = 1; -static const long asn_VAL_61_optional = 0; +static const long asn_VAL_62_id_TransactionID = 49; +static const long asn_VAL_62_reject = 0; +static const long asn_VAL_62_mandatory = 2; +static const long asn_VAL_63_id_Cause = 1; +static const long asn_VAL_63_ignore = 1; +static const long asn_VAL_63_mandatory = 2; +static const long asn_VAL_64_id_TimeToWait = 31; +static const long asn_VAL_64_ignore = 1; +static const long asn_VAL_64_optional = 0; +static const long asn_VAL_65_id_CriticalityDiagnostics = 2; +static const long asn_VAL_65_ignore = 1; +static const long asn_VAL_65_optional = 0; +static const long asn_VAL_66_id_TNLinformation = 48; +static const long asn_VAL_66_ignore = 1; +static const long asn_VAL_66_optional = 0; static const asn_ioc_cell_t asn_IOS_E2setupFailureIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_58_id_Cause }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_58_ignore }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_62_id_TransactionID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_62_reject }, + { "&Value", aioc__type, &asn_DEF_TransactionID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_62_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_63_id_Cause }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_63_ignore }, { "&Value", aioc__type, &asn_DEF_Cause }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_58_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_59_id_TimeToWait }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_59_ignore }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_63_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_64_id_TimeToWait }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_64_ignore }, { "&Value", aioc__type, &asn_DEF_TimeToWait }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_59_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_60_id_CriticalityDiagnostics }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_60_ignore }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_64_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_65_id_CriticalityDiagnostics }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_65_ignore }, { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_60_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_61_id_TNLinformation }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_61_ignore }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_65_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_66_id_TNLinformation }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_66_ignore }, { "&Value", aioc__type, &asn_DEF_TNLinformation }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_61_optional } + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_66_optional } }; static const asn_ioc_set_t asn_IOS_E2setupFailureIEs_1[] = { - { 4, 4, asn_IOS_E2setupFailureIEs_1_rows } + { 5, 4, asn_IOS_E2setupFailureIEs_1_rows } }; -static const long asn_VAL_62_id_E2connectionUpdateAdd = 44; -static const long asn_VAL_62_reject = 0; -static const long asn_VAL_62_optional = 0; -static const long asn_VAL_63_id_E2connectionUpdateRemove = 46; -static const long asn_VAL_63_reject = 0; -static const long asn_VAL_63_optional = 0; -static const long asn_VAL_64_id_E2connectionUpdateModify = 45; -static const long asn_VAL_64_reject = 0; -static const long asn_VAL_64_optional = 0; +static const long asn_VAL_67_id_TransactionID = 49; +static const long asn_VAL_67_reject = 0; +static const long asn_VAL_67_mandatory = 2; +static const long asn_VAL_68_id_E2connectionUpdateAdd = 44; +static const long asn_VAL_68_reject = 0; +static const long asn_VAL_68_optional = 0; +static const long asn_VAL_69_id_E2connectionUpdateRemove = 46; +static const long asn_VAL_69_reject = 0; +static const long asn_VAL_69_optional = 0; +static const long asn_VAL_70_id_E2connectionUpdateModify = 45; +static const long asn_VAL_70_reject = 0; +static const long asn_VAL_70_optional = 0; static const asn_ioc_cell_t asn_IOS_E2connectionUpdate_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_62_id_E2connectionUpdateAdd }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_62_reject }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_67_id_TransactionID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_67_reject }, + { "&Value", aioc__type, &asn_DEF_TransactionID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_67_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_68_id_E2connectionUpdateAdd }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_68_reject }, { "&Value", aioc__type, &asn_DEF_E2connectionUpdate_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_62_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_63_id_E2connectionUpdateRemove }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_63_reject }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_68_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_69_id_E2connectionUpdateRemove }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_69_reject }, { "&Value", aioc__type, &asn_DEF_E2connectionUpdateRemove_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_63_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_64_id_E2connectionUpdateModify }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_64_reject }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_69_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_70_id_E2connectionUpdateModify }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_70_reject }, { "&Value", aioc__type, &asn_DEF_E2connectionUpdate_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_64_optional } + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_70_optional } }; static const asn_ioc_set_t asn_IOS_E2connectionUpdate_IEs_1[] = { - { 3, 4, asn_IOS_E2connectionUpdate_IEs_1_rows } + { 4, 4, asn_IOS_E2connectionUpdate_IEs_1_rows } }; -static const long asn_VAL_67_id_E2connectionSetup = 39; -static const long asn_VAL_67_reject = 0; -static const long asn_VAL_67_optional = 0; -static const long asn_VAL_68_id_E2connectionSetupFailed = 40; -static const long asn_VAL_68_reject = 0; -static const long asn_VAL_68_optional = 0; +static const long asn_VAL_73_id_TransactionID = 49; +static const long asn_VAL_73_reject = 0; +static const long asn_VAL_73_mandatory = 2; +static const long asn_VAL_74_id_E2connectionSetup = 39; +static const long asn_VAL_74_reject = 0; +static const long asn_VAL_74_optional = 0; +static const long asn_VAL_75_id_E2connectionSetupFailed = 40; +static const long asn_VAL_75_reject = 0; +static const long asn_VAL_75_optional = 0; static const asn_ioc_cell_t asn_IOS_E2connectionUpdateAck_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_67_id_E2connectionSetup }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_67_reject }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_73_id_TransactionID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_73_reject }, + { "&Value", aioc__type, &asn_DEF_TransactionID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_73_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_74_id_E2connectionSetup }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_74_reject }, { "&Value", aioc__type, &asn_DEF_E2connectionUpdate_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_67_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_68_id_E2connectionSetupFailed }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_68_reject }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_74_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_75_id_E2connectionSetupFailed }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_75_reject }, { "&Value", aioc__type, &asn_DEF_E2connectionSetupFailed_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_68_optional } + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_75_optional } }; static const asn_ioc_set_t asn_IOS_E2connectionUpdateAck_IEs_1[] = { - { 2, 4, asn_IOS_E2connectionUpdateAck_IEs_1_rows } + { 3, 4, asn_IOS_E2connectionUpdateAck_IEs_1_rows } }; -static const long asn_VAL_70_id_Cause = 1; -static const long asn_VAL_70_reject = 0; -static const long asn_VAL_70_optional = 0; -static const long asn_VAL_71_id_TimeToWait = 31; -static const long asn_VAL_71_ignore = 1; -static const long asn_VAL_71_optional = 0; -static const long asn_VAL_72_id_CriticalityDiagnostics = 2; -static const long asn_VAL_72_ignore = 1; -static const long asn_VAL_72_optional = 0; +static const long asn_VAL_77_id_TransactionID = 49; +static const long asn_VAL_77_reject = 0; +static const long asn_VAL_77_mandatory = 2; +static const long asn_VAL_78_id_Cause = 1; +static const long asn_VAL_78_reject = 0; +static const long asn_VAL_78_optional = 0; +static const long asn_VAL_79_id_TimeToWait = 31; +static const long asn_VAL_79_ignore = 1; +static const long asn_VAL_79_optional = 0; +static const long asn_VAL_80_id_CriticalityDiagnostics = 2; +static const long asn_VAL_80_ignore = 1; +static const long asn_VAL_80_optional = 0; static const asn_ioc_cell_t asn_IOS_E2connectionUpdateFailure_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_70_id_Cause }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_70_reject }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_77_id_TransactionID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_77_reject }, + { "&Value", aioc__type, &asn_DEF_TransactionID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_77_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_78_id_Cause }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_78_reject }, { "&Value", aioc__type, &asn_DEF_Cause }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_70_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_71_id_TimeToWait }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_71_ignore }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_78_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_79_id_TimeToWait }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_79_ignore }, { "&Value", aioc__type, &asn_DEF_TimeToWait }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_71_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_72_id_CriticalityDiagnostics }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_72_ignore }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_79_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_80_id_CriticalityDiagnostics }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_80_ignore }, { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_72_optional } + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_80_optional } }; static const asn_ioc_set_t asn_IOS_E2connectionUpdateFailure_IEs_1[] = { - { 3, 4, asn_IOS_E2connectionUpdateFailure_IEs_1_rows } + { 4, 4, asn_IOS_E2connectionUpdateFailure_IEs_1_rows } }; -static const long asn_VAL_73_id_E2nodeComponentConfigUpdate = 33; -static const long asn_VAL_73_reject = 0; -static const long asn_VAL_73_optional = 0; +static const long asn_VAL_81_id_TransactionID = 49; +static const long asn_VAL_81_reject = 0; +static const long asn_VAL_81_mandatory = 2; +static const long asn_VAL_82_id_GlobalE2node_ID = 3; +static const long asn_VAL_82_reject = 0; +static const long asn_VAL_82_optional = 0; +static const long asn_VAL_83_id_E2nodeComponentConfigAddition = 50; +static const long asn_VAL_83_reject = 0; +static const long asn_VAL_83_optional = 0; +static const long asn_VAL_84_id_E2nodeComponentConfigUpdate = 33; +static const long asn_VAL_84_reject = 0; +static const long asn_VAL_84_optional = 0; +static const long asn_VAL_85_id_E2nodeComponentConfigRemoval = 54; +static const long asn_VAL_85_reject = 0; +static const long asn_VAL_85_optional = 0; +static const long asn_VAL_86_id_E2nodeTNLassociationRemoval = 58; +static const long asn_VAL_86_reject = 0; +static const long asn_VAL_86_optional = 0; static const asn_ioc_cell_t asn_IOS_E2nodeConfigurationUpdate_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_73_id_E2nodeComponentConfigUpdate }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_73_reject }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_81_id_TransactionID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_81_reject }, + { "&Value", aioc__type, &asn_DEF_TransactionID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_81_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_82_id_GlobalE2node_ID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_82_reject }, + { "&Value", aioc__type, &asn_DEF_GlobalE2node_ID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_82_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_83_id_E2nodeComponentConfigAddition }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_83_reject }, + { "&Value", aioc__type, &asn_DEF_E2nodeComponentConfigAddition_List }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_83_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_84_id_E2nodeComponentConfigUpdate }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_84_reject }, { "&Value", aioc__type, &asn_DEF_E2nodeComponentConfigUpdate_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_73_optional } + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_84_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_85_id_E2nodeComponentConfigRemoval }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_85_reject }, + { "&Value", aioc__type, &asn_DEF_E2nodeComponentConfigRemoval_List }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_85_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_86_id_E2nodeTNLassociationRemoval }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_86_reject }, + { "&Value", aioc__type, &asn_DEF_E2nodeTNLassociationRemoval_List }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_86_optional } }; static const asn_ioc_set_t asn_IOS_E2nodeConfigurationUpdate_IEs_1[] = { - { 1, 4, asn_IOS_E2nodeConfigurationUpdate_IEs_1_rows } + { 6, 4, asn_IOS_E2nodeConfigurationUpdate_IEs_1_rows } }; -static const long asn_VAL_75_id_E2nodeComponentConfigUpdateAck = 35; -static const long asn_VAL_75_reject = 0; -static const long asn_VAL_75_optional = 0; +static const long asn_VAL_91_id_TransactionID = 49; +static const long asn_VAL_91_reject = 0; +static const long asn_VAL_91_mandatory = 2; +static const long asn_VAL_92_id_E2nodeComponentConfigAdditionAck = 52; +static const long asn_VAL_92_reject = 0; +static const long asn_VAL_92_optional = 0; +static const long asn_VAL_93_id_E2nodeComponentConfigUpdateAck = 35; +static const long asn_VAL_93_reject = 0; +static const long asn_VAL_93_optional = 0; +static const long asn_VAL_94_id_E2nodeComponentConfigRemovalAck = 56; +static const long asn_VAL_94_reject = 0; +static const long asn_VAL_94_optional = 0; static const asn_ioc_cell_t asn_IOS_E2nodeConfigurationUpdateAcknowledge_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_75_id_E2nodeComponentConfigUpdateAck }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_75_reject }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_91_id_TransactionID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_91_reject }, + { "&Value", aioc__type, &asn_DEF_TransactionID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_91_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_92_id_E2nodeComponentConfigAdditionAck }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_92_reject }, + { "&Value", aioc__type, &asn_DEF_E2nodeComponentConfigAdditionAck_List }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_92_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_93_id_E2nodeComponentConfigUpdateAck }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_93_reject }, { "&Value", aioc__type, &asn_DEF_E2nodeComponentConfigUpdateAck_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_75_optional } + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_93_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_94_id_E2nodeComponentConfigRemovalAck }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_94_reject }, + { "&Value", aioc__type, &asn_DEF_E2nodeComponentConfigRemovalAck_List }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_94_optional } }; static const asn_ioc_set_t asn_IOS_E2nodeConfigurationUpdateAcknowledge_IEs_1[] = { - { 1, 4, asn_IOS_E2nodeConfigurationUpdateAcknowledge_IEs_1_rows } -}; -static const long asn_VAL_77_id_Cause = 1; -static const long asn_VAL_77_ignore = 1; -static const long asn_VAL_77_mandatory = 2; -static const long asn_VAL_78_id_TimeToWait = 31; -static const long asn_VAL_78_ignore = 1; -static const long asn_VAL_78_optional = 0; -static const long asn_VAL_79_id_CriticalityDiagnostics = 2; -static const long asn_VAL_79_ignore = 1; -static const long asn_VAL_79_optional = 0; + { 4, 4, asn_IOS_E2nodeConfigurationUpdateAcknowledge_IEs_1_rows } +}; +static const long asn_VAL_98_id_TransactionID = 49; +static const long asn_VAL_98_reject = 0; +static const long asn_VAL_98_mandatory = 2; +static const long asn_VAL_99_id_Cause = 1; +static const long asn_VAL_99_ignore = 1; +static const long asn_VAL_99_mandatory = 2; +static const long asn_VAL_100_id_TimeToWait = 31; +static const long asn_VAL_100_ignore = 1; +static const long asn_VAL_100_optional = 0; +static const long asn_VAL_101_id_CriticalityDiagnostics = 2; +static const long asn_VAL_101_ignore = 1; +static const long asn_VAL_101_optional = 0; static const asn_ioc_cell_t asn_IOS_E2nodeConfigurationUpdateFailure_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_77_id_Cause }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_77_ignore }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_98_id_TransactionID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_98_reject }, + { "&Value", aioc__type, &asn_DEF_TransactionID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_98_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_99_id_Cause }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_99_ignore }, { "&Value", aioc__type, &asn_DEF_Cause }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_77_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_78_id_TimeToWait }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_78_ignore }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_99_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_100_id_TimeToWait }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_100_ignore }, { "&Value", aioc__type, &asn_DEF_TimeToWait }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_78_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_79_id_CriticalityDiagnostics }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_79_ignore }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_100_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_101_id_CriticalityDiagnostics }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_101_ignore }, { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_79_optional } + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_101_optional } }; static const asn_ioc_set_t asn_IOS_E2nodeConfigurationUpdateFailure_IEs_1[] = { - { 3, 4, asn_IOS_E2nodeConfigurationUpdateFailure_IEs_1_rows } -}; -static const long asn_VAL_80_id_Cause = 1; -static const long asn_VAL_80_ignore = 1; -static const long asn_VAL_80_mandatory = 2; + { 4, 4, asn_IOS_E2nodeConfigurationUpdateFailure_IEs_1_rows } +}; +static const long asn_VAL_102_id_TransactionID = 49; +static const long asn_VAL_102_reject = 0; +static const long asn_VAL_102_mandatory = 2; +static const long asn_VAL_103_id_Cause = 1; +static const long asn_VAL_103_ignore = 1; +static const long asn_VAL_103_mandatory = 2; static const asn_ioc_cell_t asn_IOS_ResetRequestIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_80_id_Cause }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_80_ignore }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_102_id_TransactionID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_102_reject }, + { "&Value", aioc__type, &asn_DEF_TransactionID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_102_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_103_id_Cause }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_103_ignore }, { "&Value", aioc__type, &asn_DEF_Cause }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_80_mandatory } + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_103_mandatory } }; static const asn_ioc_set_t asn_IOS_ResetRequestIEs_1[] = { - { 1, 4, asn_IOS_ResetRequestIEs_1_rows } -}; -static const long asn_VAL_81_id_CriticalityDiagnostics = 2; -static const long asn_VAL_81_ignore = 1; -static const long asn_VAL_81_optional = 0; + { 2, 4, asn_IOS_ResetRequestIEs_1_rows } +}; +static const long asn_VAL_104_id_TransactionID = 49; +static const long asn_VAL_104_reject = 0; +static const long asn_VAL_104_mandatory = 2; +static const long asn_VAL_105_id_CriticalityDiagnostics = 2; +static const long asn_VAL_105_ignore = 1; +static const long asn_VAL_105_optional = 0; static const asn_ioc_cell_t asn_IOS_ResetResponseIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_81_id_CriticalityDiagnostics }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_81_ignore }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_104_id_TransactionID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_104_reject }, + { "&Value", aioc__type, &asn_DEF_TransactionID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_104_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_105_id_CriticalityDiagnostics }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_105_ignore }, { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_81_optional } + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_105_optional } }; static const asn_ioc_set_t asn_IOS_ResetResponseIEs_1[] = { - { 1, 4, asn_IOS_ResetResponseIEs_1_rows } -}; -static const long asn_VAL_82_id_RANfunctionsAdded = 10; -static const long asn_VAL_82_reject = 0; -static const long asn_VAL_82_optional = 0; -static const long asn_VAL_83_id_RANfunctionsModified = 12; -static const long asn_VAL_83_reject = 0; -static const long asn_VAL_83_optional = 0; -static const long asn_VAL_84_id_RANfunctionsDeleted = 11; -static const long asn_VAL_84_reject = 0; -static const long asn_VAL_84_optional = 0; + { 2, 4, asn_IOS_ResetResponseIEs_1_rows } +}; +static const long asn_VAL_106_id_TransactionID = 49; +static const long asn_VAL_106_reject = 0; +static const long asn_VAL_106_mandatory = 2; +static const long asn_VAL_107_id_RANfunctionsAdded = 10; +static const long asn_VAL_107_reject = 0; +static const long asn_VAL_107_optional = 0; +static const long asn_VAL_108_id_RANfunctionsModified = 12; +static const long asn_VAL_108_reject = 0; +static const long asn_VAL_108_optional = 0; +static const long asn_VAL_109_id_RANfunctionsDeleted = 11; +static const long asn_VAL_109_reject = 0; +static const long asn_VAL_109_optional = 0; static const asn_ioc_cell_t asn_IOS_RICserviceUpdate_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_82_id_RANfunctionsAdded }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_82_reject }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_106_id_TransactionID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_106_reject }, + { "&Value", aioc__type, &asn_DEF_TransactionID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_106_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_107_id_RANfunctionsAdded }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_107_reject }, { "&Value", aioc__type, &asn_DEF_RANfunctions_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_82_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_83_id_RANfunctionsModified }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_83_reject }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_107_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_108_id_RANfunctionsModified }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_108_reject }, { "&Value", aioc__type, &asn_DEF_RANfunctions_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_83_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_84_id_RANfunctionsDeleted }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_84_reject }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_108_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_109_id_RANfunctionsDeleted }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_109_reject }, { "&Value", aioc__type, &asn_DEF_RANfunctionsID_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_84_optional } + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_109_optional } }; static const asn_ioc_set_t asn_IOS_RICserviceUpdate_IEs_1[] = { - { 3, 4, asn_IOS_RICserviceUpdate_IEs_1_rows } -}; -static const long asn_VAL_87_id_RANfunctionsAccepted = 9; -static const long asn_VAL_87_reject = 0; -static const long asn_VAL_87_optional = 0; -static const long asn_VAL_88_id_RANfunctionsRejected = 13; -static const long asn_VAL_88_reject = 0; -static const long asn_VAL_88_optional = 0; + { 4, 4, asn_IOS_RICserviceUpdate_IEs_1_rows } +}; +static const long asn_VAL_112_id_TransactionID = 49; +static const long asn_VAL_112_reject = 0; +static const long asn_VAL_112_mandatory = 2; +static const long asn_VAL_113_id_RANfunctionsAccepted = 9; +static const long asn_VAL_113_reject = 0; +static const long asn_VAL_113_mandatory = 2; +static const long asn_VAL_114_id_RANfunctionsRejected = 13; +static const long asn_VAL_114_reject = 0; +static const long asn_VAL_114_optional = 0; static const asn_ioc_cell_t asn_IOS_RICserviceUpdateAcknowledge_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_87_id_RANfunctionsAccepted }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_87_reject }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_112_id_TransactionID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_112_reject }, + { "&Value", aioc__type, &asn_DEF_TransactionID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_112_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_113_id_RANfunctionsAccepted }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_113_reject }, { "&Value", aioc__type, &asn_DEF_RANfunctionsID_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_87_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_88_id_RANfunctionsRejected }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_88_reject }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_113_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_114_id_RANfunctionsRejected }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_114_reject }, { "&Value", aioc__type, &asn_DEF_RANfunctionsIDcause_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_88_optional } + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_114_optional } }; static const asn_ioc_set_t asn_IOS_RICserviceUpdateAcknowledge_IEs_1[] = { - { 2, 4, asn_IOS_RICserviceUpdateAcknowledge_IEs_1_rows } -}; -static const long asn_VAL_90_id_RANfunctionsRejected = 13; -static const long asn_VAL_90_ignore = 1; -static const long asn_VAL_90_optional = 0; -static const long asn_VAL_91_id_TimeToWait = 31; -static const long asn_VAL_91_ignore = 1; -static const long asn_VAL_91_optional = 0; -static const long asn_VAL_92_id_CriticalityDiagnostics = 2; -static const long asn_VAL_92_ignore = 1; -static const long asn_VAL_92_optional = 0; + { 3, 4, asn_IOS_RICserviceUpdateAcknowledge_IEs_1_rows } +}; +static const long asn_VAL_116_id_TransactionID = 49; +static const long asn_VAL_116_reject = 0; +static const long asn_VAL_116_mandatory = 2; +static const long asn_VAL_117_id_Cause = 1; +static const long asn_VAL_117_reject = 0; +static const long asn_VAL_117_mandatory = 2; +static const long asn_VAL_118_id_TimeToWait = 31; +static const long asn_VAL_118_ignore = 1; +static const long asn_VAL_118_optional = 0; +static const long asn_VAL_119_id_CriticalityDiagnostics = 2; +static const long asn_VAL_119_ignore = 1; +static const long asn_VAL_119_optional = 0; static const asn_ioc_cell_t asn_IOS_RICserviceUpdateFailure_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_90_id_RANfunctionsRejected }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_90_ignore }, - { "&Value", aioc__type, &asn_DEF_RANfunctionsIDcause_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_90_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_91_id_TimeToWait }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_91_ignore }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_116_id_TransactionID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_116_reject }, + { "&Value", aioc__type, &asn_DEF_TransactionID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_116_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_117_id_Cause }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_117_reject }, + { "&Value", aioc__type, &asn_DEF_Cause }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_117_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_118_id_TimeToWait }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_118_ignore }, { "&Value", aioc__type, &asn_DEF_TimeToWait }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_91_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_92_id_CriticalityDiagnostics }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_92_ignore }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_118_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_119_id_CriticalityDiagnostics }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_119_ignore }, { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_92_optional } + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_119_optional } }; static const asn_ioc_set_t asn_IOS_RICserviceUpdateFailure_IEs_1[] = { - { 3, 4, asn_IOS_RICserviceUpdateFailure_IEs_1_rows } -}; -static const long asn_VAL_93_id_RANfunctionsAccepted = 9; -static const long asn_VAL_93_reject = 0; -static const long asn_VAL_93_optional = 0; + { 4, 4, asn_IOS_RICserviceUpdateFailure_IEs_1_rows } +}; +static const long asn_VAL_120_id_TransactionID = 49; +static const long asn_VAL_120_reject = 0; +static const long asn_VAL_120_mandatory = 2; +static const long asn_VAL_121_id_RANfunctionsAccepted = 9; +static const long asn_VAL_121_reject = 0; +static const long asn_VAL_121_optional = 0; static const asn_ioc_cell_t asn_IOS_RICserviceQuery_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_93_id_RANfunctionsAccepted }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_93_reject }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_120_id_TransactionID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_120_reject }, + { "&Value", aioc__type, &asn_DEF_TransactionID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_120_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_121_id_RANfunctionsAccepted }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_121_reject }, { "&Value", aioc__type, &asn_DEF_RANfunctionsID_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_93_optional } + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_121_optional } }; static const asn_ioc_set_t asn_IOS_RICserviceQuery_IEs_1[] = { - { 1, 4, asn_IOS_RICserviceQuery_IEs_1_rows } + { 2, 4, asn_IOS_RICserviceQuery_IEs_1_rows } }; static int memb_id_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, @@ -1220,13 +1451,13 @@ memb_id_constraint_13(const asn_TYPE_descriptor_t *td, const void *sptr, } static asn_type_selector_result_t -select_E2connectionUpdate_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_RICsubscription_withCause_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E2connectionUpdate_ItemIEs_1; + const asn_ioc_set_t *itable = asn_IOS_RICsubscription_withCause_ItemIEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 1; /* &criticality */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2connectionUpdate_ItemIEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscription_withCause_ItemIEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -1266,13 +1497,13 @@ memb_criticality_constraint_13(const asn_TYPE_descriptor_t *td, const void *sptr } static asn_type_selector_result_t -select_E2connectionUpdate_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_RICsubscription_withCause_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E2connectionUpdate_ItemIEs_1; + const asn_ioc_set_t *itable = asn_IOS_RICsubscription_withCause_ItemIEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 2; /* &Value */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2connectionUpdate_ItemIEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscription_withCause_ItemIEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -1337,13 +1568,13 @@ memb_id_constraint_17(const asn_TYPE_descriptor_t *td, const void *sptr, } static asn_type_selector_result_t -select_E2connectionUpdateRemove_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_E2connectionUpdate_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E2connectionUpdateRemove_ItemIEs_1; + const asn_ioc_set_t *itable = asn_IOS_E2connectionUpdate_ItemIEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 1; /* &criticality */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2connectionUpdateRemove_ItemIEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2connectionUpdate_ItemIEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -1383,13 +1614,13 @@ memb_criticality_constraint_17(const asn_TYPE_descriptor_t *td, const void *sptr } static asn_type_selector_result_t -select_E2connectionUpdateRemove_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_E2connectionUpdate_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E2connectionUpdateRemove_ItemIEs_1; + const asn_ioc_set_t *itable = asn_IOS_E2connectionUpdate_ItemIEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 2; /* &Value */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2connectionUpdateRemove_ItemIEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2connectionUpdate_ItemIEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -1454,13 +1685,13 @@ memb_id_constraint_21(const asn_TYPE_descriptor_t *td, const void *sptr, } static asn_type_selector_result_t -select_E2connectionSetupFailed_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_E2connectionUpdateRemove_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E2connectionSetupFailed_ItemIEs_1; + const asn_ioc_set_t *itable = asn_IOS_E2connectionUpdateRemove_ItemIEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 1; /* &criticality */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2connectionSetupFailed_ItemIEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2connectionUpdateRemove_ItemIEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -1500,13 +1731,13 @@ memb_criticality_constraint_21(const asn_TYPE_descriptor_t *td, const void *sptr } static asn_type_selector_result_t -select_E2connectionSetupFailed_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_E2connectionUpdateRemove_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E2connectionSetupFailed_ItemIEs_1; + const asn_ioc_set_t *itable = asn_IOS_E2connectionUpdateRemove_ItemIEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 2; /* &Value */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2connectionSetupFailed_ItemIEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2connectionUpdateRemove_ItemIEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -1571,13 +1802,13 @@ memb_id_constraint_25(const asn_TYPE_descriptor_t *td, const void *sptr, } static asn_type_selector_result_t -select_E2nodeComponentConfigUpdate_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_E2connectionSetupFailed_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E2nodeComponentConfigUpdate_ItemIEs_1; + const asn_ioc_set_t *itable = asn_IOS_E2connectionSetupFailed_ItemIEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 1; /* &criticality */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2nodeComponentConfigUpdate_ItemIEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2connectionSetupFailed_ItemIEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -1617,13 +1848,13 @@ memb_criticality_constraint_25(const asn_TYPE_descriptor_t *td, const void *sptr } static asn_type_selector_result_t -select_E2nodeComponentConfigUpdate_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_E2connectionSetupFailed_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E2nodeComponentConfigUpdate_ItemIEs_1; + const asn_ioc_set_t *itable = asn_IOS_E2connectionSetupFailed_ItemIEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 2; /* &Value */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2nodeComponentConfigUpdate_ItemIEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2connectionSetupFailed_ItemIEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -1688,13 +1919,13 @@ memb_id_constraint_29(const asn_TYPE_descriptor_t *td, const void *sptr, } static asn_type_selector_result_t -select_E2nodeComponentConfigUpdateAck_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_E2nodeComponentConfigAddition_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E2nodeComponentConfigUpdateAck_ItemIEs_1; + const asn_ioc_set_t *itable = asn_IOS_E2nodeComponentConfigAddition_ItemIEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 1; /* &criticality */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2nodeComponentConfigUpdateAck_ItemIEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2nodeComponentConfigAddition_ItemIEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -1734,13 +1965,13 @@ memb_criticality_constraint_29(const asn_TYPE_descriptor_t *td, const void *sptr } static asn_type_selector_result_t -select_E2nodeComponentConfigUpdateAck_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_E2nodeComponentConfigAddition_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E2nodeComponentConfigUpdateAck_ItemIEs_1; + const asn_ioc_set_t *itable = asn_IOS_E2nodeComponentConfigAddition_ItemIEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 2; /* &Value */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2nodeComponentConfigUpdateAck_ItemIEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2nodeComponentConfigAddition_ItemIEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -1805,13 +2036,13 @@ memb_id_constraint_33(const asn_TYPE_descriptor_t *td, const void *sptr, } static asn_type_selector_result_t -select_RANfunction_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_E2nodeComponentConfigUpdate_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RANfunction_ItemIEs_1; + const asn_ioc_set_t *itable = asn_IOS_E2nodeComponentConfigUpdate_ItemIEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 1; /* &criticality */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RANfunction_ItemIEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2nodeComponentConfigUpdate_ItemIEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -1851,13 +2082,13 @@ memb_criticality_constraint_33(const asn_TYPE_descriptor_t *td, const void *sptr } static asn_type_selector_result_t -select_RANfunction_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_E2nodeComponentConfigUpdate_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RANfunction_ItemIEs_1; + const asn_ioc_set_t *itable = asn_IOS_E2nodeComponentConfigUpdate_ItemIEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 2; /* &Value */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RANfunction_ItemIEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2nodeComponentConfigUpdate_ItemIEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -1922,13 +2153,13 @@ memb_id_constraint_37(const asn_TYPE_descriptor_t *td, const void *sptr, } static asn_type_selector_result_t -select_RANfunctionID_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_E2nodeComponentConfigRemoval_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RANfunctionID_ItemIEs_1; + const asn_ioc_set_t *itable = asn_IOS_E2nodeComponentConfigRemoval_ItemIEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 1; /* &criticality */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RANfunctionID_ItemIEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2nodeComponentConfigRemoval_ItemIEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -1968,13 +2199,13 @@ memb_criticality_constraint_37(const asn_TYPE_descriptor_t *td, const void *sptr } static asn_type_selector_result_t -select_RANfunctionID_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_E2nodeComponentConfigRemoval_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RANfunctionID_ItemIEs_1; + const asn_ioc_set_t *itable = asn_IOS_E2nodeComponentConfigRemoval_ItemIEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 2; /* &Value */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RANfunctionID_ItemIEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2nodeComponentConfigRemoval_ItemIEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -2039,13 +2270,13 @@ memb_id_constraint_41(const asn_TYPE_descriptor_t *td, const void *sptr, } static asn_type_selector_result_t -select_RANfunctionIDcause_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_E2nodeTNLassociationRemoval_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RANfunctionIDcause_ItemIEs_1; + const asn_ioc_set_t *itable = asn_IOS_E2nodeTNLassociationRemoval_ItemIEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 1; /* &criticality */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RANfunctionIDcause_ItemIEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2nodeTNLassociationRemoval_ItemIEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -2085,13 +2316,13 @@ memb_criticality_constraint_41(const asn_TYPE_descriptor_t *td, const void *sptr } static asn_type_selector_result_t -select_RANfunctionIDcause_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_E2nodeTNLassociationRemoval_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RANfunctionIDcause_ItemIEs_1; + const asn_ioc_set_t *itable = asn_IOS_E2nodeTNLassociationRemoval_ItemIEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 2; /* &Value */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RANfunctionIDcause_ItemIEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2nodeTNLassociationRemoval_ItemIEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -2156,13 +2387,13 @@ memb_id_constraint_45(const asn_TYPE_descriptor_t *td, const void *sptr, } static asn_type_selector_result_t -select_RICsubscriptionRequest_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_E2nodeComponentConfigAdditionAck_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionRequest_IEs_1; + const asn_ioc_set_t *itable = asn_IOS_E2nodeComponentConfigAdditionAck_ItemIEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 1; /* &criticality */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionRequest_IEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2nodeComponentConfigAdditionAck_ItemIEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -2202,13 +2433,13 @@ memb_criticality_constraint_45(const asn_TYPE_descriptor_t *td, const void *sptr } static asn_type_selector_result_t -select_RICsubscriptionRequest_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_E2nodeComponentConfigAdditionAck_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionRequest_IEs_1; + const asn_ioc_set_t *itable = asn_IOS_E2nodeComponentConfigAdditionAck_ItemIEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 2; /* &Value */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionRequest_IEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2nodeComponentConfigAdditionAck_ItemIEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -2273,13 +2504,13 @@ memb_id_constraint_49(const asn_TYPE_descriptor_t *td, const void *sptr, } static asn_type_selector_result_t -select_RICsubscriptionResponse_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_E2nodeComponentConfigUpdateAck_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionResponse_IEs_1; + const asn_ioc_set_t *itable = asn_IOS_E2nodeComponentConfigUpdateAck_ItemIEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 1; /* &criticality */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionResponse_IEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2nodeComponentConfigUpdateAck_ItemIEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -2319,13 +2550,13 @@ memb_criticality_constraint_49(const asn_TYPE_descriptor_t *td, const void *sptr } static asn_type_selector_result_t -select_RICsubscriptionResponse_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_E2nodeComponentConfigUpdateAck_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionResponse_IEs_1; + const asn_ioc_set_t *itable = asn_IOS_E2nodeComponentConfigUpdateAck_ItemIEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 2; /* &Value */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionResponse_IEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2nodeComponentConfigUpdateAck_ItemIEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -2390,13 +2621,13 @@ memb_id_constraint_53(const asn_TYPE_descriptor_t *td, const void *sptr, } static asn_type_selector_result_t -select_RICsubscriptionFailure_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_E2nodeComponentConfigRemovalAck_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionFailure_IEs_1; + const asn_ioc_set_t *itable = asn_IOS_E2nodeComponentConfigRemovalAck_ItemIEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 1; /* &criticality */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionFailure_IEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2nodeComponentConfigRemovalAck_ItemIEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -2436,13 +2667,13 @@ memb_criticality_constraint_53(const asn_TYPE_descriptor_t *td, const void *sptr } static asn_type_selector_result_t -select_RICsubscriptionFailure_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_E2nodeComponentConfigRemovalAck_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionFailure_IEs_1; + const asn_ioc_set_t *itable = asn_IOS_E2nodeComponentConfigRemovalAck_ItemIEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 2; /* &Value */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionFailure_IEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2nodeComponentConfigRemovalAck_ItemIEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -2507,13 +2738,13 @@ memb_id_constraint_57(const asn_TYPE_descriptor_t *td, const void *sptr, } static asn_type_selector_result_t -select_RICsubscriptionDeleteRequest_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_RANfunction_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionDeleteRequest_IEs_1; + const asn_ioc_set_t *itable = asn_IOS_RANfunction_ItemIEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 1; /* &criticality */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionDeleteRequest_IEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RANfunction_ItemIEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -2553,13 +2784,13 @@ memb_criticality_constraint_57(const asn_TYPE_descriptor_t *td, const void *sptr } static asn_type_selector_result_t -select_RICsubscriptionDeleteRequest_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_RANfunction_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionDeleteRequest_IEs_1; + const asn_ioc_set_t *itable = asn_IOS_RANfunction_ItemIEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 2; /* &Value */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionDeleteRequest_IEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RANfunction_ItemIEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -2624,13 +2855,13 @@ memb_id_constraint_61(const asn_TYPE_descriptor_t *td, const void *sptr, } static asn_type_selector_result_t -select_RICsubscriptionDeleteResponse_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_RANfunctionID_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionDeleteResponse_IEs_1; + const asn_ioc_set_t *itable = asn_IOS_RANfunctionID_ItemIEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 1; /* &criticality */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionDeleteResponse_IEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RANfunctionID_ItemIEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -2670,13 +2901,13 @@ memb_criticality_constraint_61(const asn_TYPE_descriptor_t *td, const void *sptr } static asn_type_selector_result_t -select_RICsubscriptionDeleteResponse_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_RANfunctionID_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionDeleteResponse_IEs_1; + const asn_ioc_set_t *itable = asn_IOS_RANfunctionID_ItemIEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 2; /* &Value */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionDeleteResponse_IEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RANfunctionID_ItemIEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -2741,13 +2972,13 @@ memb_id_constraint_65(const asn_TYPE_descriptor_t *td, const void *sptr, } static asn_type_selector_result_t -select_RICsubscriptionDeleteFailure_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_RANfunctionIDcause_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionDeleteFailure_IEs_1; + const asn_ioc_set_t *itable = asn_IOS_RANfunctionIDcause_ItemIEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 1; /* &criticality */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionDeleteFailure_IEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RANfunctionIDcause_ItemIEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -2787,13 +3018,13 @@ memb_criticality_constraint_65(const asn_TYPE_descriptor_t *td, const void *sptr } static asn_type_selector_result_t -select_RICsubscriptionDeleteFailure_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_RANfunctionIDcause_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionDeleteFailure_IEs_1; + const asn_ioc_set_t *itable = asn_IOS_RANfunctionIDcause_ItemIEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 2; /* &Value */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionDeleteFailure_IEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RANfunctionIDcause_ItemIEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -2858,13 +3089,13 @@ memb_id_constraint_69(const asn_TYPE_descriptor_t *td, const void *sptr, } static asn_type_selector_result_t -select_RICindication_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_RICsubscriptionRequest_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICindication_IEs_1; + const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionRequest_IEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 1; /* &criticality */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICindication_IEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionRequest_IEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -2904,13 +3135,13 @@ memb_criticality_constraint_69(const asn_TYPE_descriptor_t *td, const void *sptr } static asn_type_selector_result_t -select_RICindication_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_RICsubscriptionRequest_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICindication_IEs_1; + const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionRequest_IEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 2; /* &Value */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICindication_IEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionRequest_IEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -2975,13 +3206,13 @@ memb_id_constraint_73(const asn_TYPE_descriptor_t *td, const void *sptr, } static asn_type_selector_result_t -select_RICcontrolRequest_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_RICsubscriptionResponse_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICcontrolRequest_IEs_1; + const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionResponse_IEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 1; /* &criticality */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICcontrolRequest_IEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionResponse_IEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -3021,13 +3252,13 @@ memb_criticality_constraint_73(const asn_TYPE_descriptor_t *td, const void *sptr } static asn_type_selector_result_t -select_RICcontrolRequest_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_RICsubscriptionResponse_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICcontrolRequest_IEs_1; + const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionResponse_IEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 2; /* &Value */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICcontrolRequest_IEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionResponse_IEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -3092,13 +3323,13 @@ memb_id_constraint_77(const asn_TYPE_descriptor_t *td, const void *sptr, } static asn_type_selector_result_t -select_RICcontrolAcknowledge_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_RICsubscriptionFailure_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICcontrolAcknowledge_IEs_1; + const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionFailure_IEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 1; /* &criticality */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICcontrolAcknowledge_IEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionFailure_IEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -3138,13 +3369,13 @@ memb_criticality_constraint_77(const asn_TYPE_descriptor_t *td, const void *sptr } static asn_type_selector_result_t -select_RICcontrolAcknowledge_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_RICsubscriptionFailure_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICcontrolAcknowledge_IEs_1; + const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionFailure_IEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 2; /* &Value */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICcontrolAcknowledge_IEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionFailure_IEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -3209,13 +3440,13 @@ memb_id_constraint_81(const asn_TYPE_descriptor_t *td, const void *sptr, } static asn_type_selector_result_t -select_RICcontrolFailure_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_RICsubscriptionDeleteRequest_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICcontrolFailure_IEs_1; + const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionDeleteRequest_IEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 1; /* &criticality */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICcontrolFailure_IEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionDeleteRequest_IEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -3255,13 +3486,13 @@ memb_criticality_constraint_81(const asn_TYPE_descriptor_t *td, const void *sptr } static asn_type_selector_result_t -select_RICcontrolFailure_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_RICsubscriptionDeleteRequest_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICcontrolFailure_IEs_1; + const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionDeleteRequest_IEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 2; /* &Value */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICcontrolFailure_IEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionDeleteRequest_IEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -3326,13 +3557,13 @@ memb_id_constraint_85(const asn_TYPE_descriptor_t *td, const void *sptr, } static asn_type_selector_result_t -select_ErrorIndication_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_RICsubscriptionDeleteResponse_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_ErrorIndication_IEs_1; + const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionDeleteResponse_IEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 1; /* &criticality */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ErrorIndication_IEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionDeleteResponse_IEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -3372,13 +3603,13 @@ memb_criticality_constraint_85(const asn_TYPE_descriptor_t *td, const void *sptr } static asn_type_selector_result_t -select_ErrorIndication_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_RICsubscriptionDeleteResponse_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_ErrorIndication_IEs_1; + const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionDeleteResponse_IEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 2; /* &Value */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ErrorIndication_IEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionDeleteResponse_IEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -3443,13 +3674,13 @@ memb_id_constraint_89(const asn_TYPE_descriptor_t *td, const void *sptr, } static asn_type_selector_result_t -select_E2setupRequestIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_RICsubscriptionDeleteFailure_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E2setupRequestIEs_1; + const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionDeleteFailure_IEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 1; /* &criticality */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2setupRequestIEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionDeleteFailure_IEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -3489,13 +3720,13 @@ memb_criticality_constraint_89(const asn_TYPE_descriptor_t *td, const void *sptr } static asn_type_selector_result_t -select_E2setupRequestIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_RICsubscriptionDeleteFailure_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E2setupRequestIEs_1; + const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionDeleteFailure_IEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 2; /* &Value */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2setupRequestIEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionDeleteFailure_IEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -3560,13 +3791,13 @@ memb_id_constraint_93(const asn_TYPE_descriptor_t *td, const void *sptr, } static asn_type_selector_result_t -select_E2setupResponseIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_RICsubscriptionDeleteRequired_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E2setupResponseIEs_1; + const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionDeleteRequired_IEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 1; /* &criticality */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2setupResponseIEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionDeleteRequired_IEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -3606,13 +3837,13 @@ memb_criticality_constraint_93(const asn_TYPE_descriptor_t *td, const void *sptr } static asn_type_selector_result_t -select_E2setupResponseIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_RICsubscriptionDeleteRequired_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E2setupResponseIEs_1; + const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionDeleteRequired_IEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 2; /* &Value */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2setupResponseIEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionDeleteRequired_IEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -3677,13 +3908,13 @@ memb_id_constraint_97(const asn_TYPE_descriptor_t *td, const void *sptr, } static asn_type_selector_result_t -select_E2setupFailureIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_RICindication_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E2setupFailureIEs_1; + const asn_ioc_set_t *itable = asn_IOS_RICindication_IEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 1; /* &criticality */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2setupFailureIEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICindication_IEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -3723,13 +3954,13 @@ memb_criticality_constraint_97(const asn_TYPE_descriptor_t *td, const void *sptr } static asn_type_selector_result_t -select_E2setupFailureIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_RICindication_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E2setupFailureIEs_1; + const asn_ioc_set_t *itable = asn_IOS_RICindication_IEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 2; /* &Value */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2setupFailureIEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICindication_IEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -3794,13 +4025,13 @@ memb_id_constraint_101(const asn_TYPE_descriptor_t *td, const void *sptr, } static asn_type_selector_result_t -select_E2connectionUpdate_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_RICcontrolRequest_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E2connectionUpdate_IEs_1; + const asn_ioc_set_t *itable = asn_IOS_RICcontrolRequest_IEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 1; /* &criticality */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2connectionUpdate_IEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICcontrolRequest_IEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -3840,19 +4071,13 @@ memb_criticality_constraint_101(const asn_TYPE_descriptor_t *td, const void *spt } static asn_type_selector_result_t -select_E2connectionUpdate_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_RICcontrolRequest_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E2connectionUpdate_IEs_1; + const asn_ioc_set_t *itable = asn_IOS_RICcontrolRequest_IEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 2; /* &Value */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2connectionUpdate_IEs, id)); - const int indexToPresence[4] = { - E2connectionUpdate_IEs__value_PR_NOTHING, - E2connectionUpdate_IEs__value_PR_E2connectionUpdate_List, - E2connectionUpdate_IEs__value_PR_E2connectionUpdateRemove_List, - E2connectionUpdate_IEs__value_PR_E2connectionUpdate_List - }; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICcontrolRequest_IEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -3864,7 +4089,7 @@ select_E2connectionUpdate_IEs_value_type(const asn_TYPE_descriptor_t *parent_typ presence_index++; if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { result.type_descriptor = type_cell->type_descriptor; - result.presence_index = indexToPresence[presence_index]; + result.presence_index = presence_index; break; } } @@ -3917,13 +4142,13 @@ memb_id_constraint_105(const asn_TYPE_descriptor_t *td, const void *sptr, } static asn_type_selector_result_t -select_E2connectionUpdateAck_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_RICcontrolAcknowledge_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E2connectionUpdateAck_IEs_1; + const asn_ioc_set_t *itable = asn_IOS_RICcontrolAcknowledge_IEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 1; /* &criticality */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2connectionUpdateAck_IEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICcontrolAcknowledge_IEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -3963,13 +4188,13 @@ memb_criticality_constraint_105(const asn_TYPE_descriptor_t *td, const void *spt } static asn_type_selector_result_t -select_E2connectionUpdateAck_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_RICcontrolAcknowledge_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E2connectionUpdateAck_IEs_1; + const asn_ioc_set_t *itable = asn_IOS_RICcontrolAcknowledge_IEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 2; /* &Value */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2connectionUpdateAck_IEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICcontrolAcknowledge_IEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -4034,13 +4259,13 @@ memb_id_constraint_109(const asn_TYPE_descriptor_t *td, const void *sptr, } static asn_type_selector_result_t -select_E2connectionUpdateFailure_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_RICcontrolFailure_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E2connectionUpdateFailure_IEs_1; + const asn_ioc_set_t *itable = asn_IOS_RICcontrolFailure_IEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 1; /* &criticality */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2connectionUpdateFailure_IEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICcontrolFailure_IEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -4080,13 +4305,13 @@ memb_criticality_constraint_109(const asn_TYPE_descriptor_t *td, const void *spt } static asn_type_selector_result_t -select_E2connectionUpdateFailure_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_RICcontrolFailure_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E2connectionUpdateFailure_IEs_1; + const asn_ioc_set_t *itable = asn_IOS_RICcontrolFailure_IEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 2; /* &Value */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2connectionUpdateFailure_IEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICcontrolFailure_IEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -4151,13 +4376,13 @@ memb_id_constraint_113(const asn_TYPE_descriptor_t *td, const void *sptr, } static asn_type_selector_result_t -select_E2nodeConfigurationUpdate_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_ErrorIndication_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E2nodeConfigurationUpdate_IEs_1; + const asn_ioc_set_t *itable = asn_IOS_ErrorIndication_IEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 1; /* &criticality */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2nodeConfigurationUpdate_IEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ErrorIndication_IEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -4197,13 +4422,13 @@ memb_criticality_constraint_113(const asn_TYPE_descriptor_t *td, const void *spt } static asn_type_selector_result_t -select_E2nodeConfigurationUpdate_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_ErrorIndication_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E2nodeConfigurationUpdate_IEs_1; + const asn_ioc_set_t *itable = asn_IOS_ErrorIndication_IEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 2; /* &Value */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2nodeConfigurationUpdate_IEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ErrorIndication_IEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -4268,13 +4493,13 @@ memb_id_constraint_117(const asn_TYPE_descriptor_t *td, const void *sptr, } static asn_type_selector_result_t -select_E2nodeConfigurationUpdateAcknowledge_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_E2setupRequestIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E2nodeConfigurationUpdateAcknowledge_IEs_1; + const asn_ioc_set_t *itable = asn_IOS_E2setupRequestIEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 1; /* &criticality */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2nodeConfigurationUpdateAcknowledge_IEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2setupRequestIEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -4314,13 +4539,13 @@ memb_criticality_constraint_117(const asn_TYPE_descriptor_t *td, const void *spt } static asn_type_selector_result_t -select_E2nodeConfigurationUpdateAcknowledge_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_E2setupRequestIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E2nodeConfigurationUpdateAcknowledge_IEs_1; + const asn_ioc_set_t *itable = asn_IOS_E2setupRequestIEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 2; /* &Value */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2nodeConfigurationUpdateAcknowledge_IEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2setupRequestIEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -4385,13 +4610,13 @@ memb_id_constraint_121(const asn_TYPE_descriptor_t *td, const void *sptr, } static asn_type_selector_result_t -select_E2nodeConfigurationUpdateFailure_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_E2setupResponseIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E2nodeConfigurationUpdateFailure_IEs_1; + const asn_ioc_set_t *itable = asn_IOS_E2setupResponseIEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 1; /* &criticality */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2nodeConfigurationUpdateFailure_IEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2setupResponseIEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -4431,13 +4656,13 @@ memb_criticality_constraint_121(const asn_TYPE_descriptor_t *td, const void *spt } static asn_type_selector_result_t -select_E2nodeConfigurationUpdateFailure_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_E2setupResponseIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E2nodeConfigurationUpdateFailure_IEs_1; + const asn_ioc_set_t *itable = asn_IOS_E2setupResponseIEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 2; /* &Value */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2nodeConfigurationUpdateFailure_IEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2setupResponseIEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -4502,13 +4727,13 @@ memb_id_constraint_125(const asn_TYPE_descriptor_t *td, const void *sptr, } static asn_type_selector_result_t -select_ResetRequestIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_E2setupFailureIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_ResetRequestIEs_1; + const asn_ioc_set_t *itable = asn_IOS_E2setupFailureIEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 1; /* &criticality */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ResetRequestIEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2setupFailureIEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -4548,13 +4773,13 @@ memb_criticality_constraint_125(const asn_TYPE_descriptor_t *td, const void *spt } static asn_type_selector_result_t -select_ResetRequestIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_E2setupFailureIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_ResetRequestIEs_1; + const asn_ioc_set_t *itable = asn_IOS_E2setupFailureIEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 2; /* &Value */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ResetRequestIEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2setupFailureIEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -4619,13 +4844,13 @@ memb_id_constraint_129(const asn_TYPE_descriptor_t *td, const void *sptr, } static asn_type_selector_result_t -select_ResetResponseIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_E2connectionUpdate_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_ResetResponseIEs_1; + const asn_ioc_set_t *itable = asn_IOS_E2connectionUpdate_IEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 1; /* &criticality */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ResetResponseIEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2connectionUpdate_IEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -4665,13 +4890,20 @@ memb_criticality_constraint_129(const asn_TYPE_descriptor_t *td, const void *spt } static asn_type_selector_result_t -select_ResetResponseIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_E2connectionUpdate_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_ResetResponseIEs_1; + const asn_ioc_set_t *itable = asn_IOS_E2connectionUpdate_IEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 2; /* &Value */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ResetResponseIEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2connectionUpdate_IEs, id)); + const int indexToPresence[5] = { + E2connectionUpdate_IEs__value_PR_NOTHING, + E2connectionUpdate_IEs__value_PR_TransactionID, + E2connectionUpdate_IEs__value_PR_E2connectionUpdate_List, + E2connectionUpdate_IEs__value_PR_E2connectionUpdateRemove_List, + E2connectionUpdate_IEs__value_PR_E2connectionUpdate_List + }; for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -4683,7 +4915,7 @@ select_ResetResponseIEs_value_type(const asn_TYPE_descriptor_t *parent_type, con presence_index++; if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; + result.presence_index = indexToPresence[presence_index]; break; } } @@ -4736,13 +4968,13 @@ memb_id_constraint_133(const asn_TYPE_descriptor_t *td, const void *sptr, } static asn_type_selector_result_t -select_RICserviceUpdate_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_E2connectionUpdateAck_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICserviceUpdate_IEs_1; + const asn_ioc_set_t *itable = asn_IOS_E2connectionUpdateAck_IEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 1; /* &criticality */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICserviceUpdate_IEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2connectionUpdateAck_IEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -4782,19 +5014,13 @@ memb_criticality_constraint_133(const asn_TYPE_descriptor_t *td, const void *spt } static asn_type_selector_result_t -select_RICserviceUpdate_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_E2connectionUpdateAck_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICserviceUpdate_IEs_1; + const asn_ioc_set_t *itable = asn_IOS_E2connectionUpdateAck_IEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 2; /* &Value */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICserviceUpdate_IEs, id)); - const int indexToPresence[4] = { - RICserviceUpdate_IEs__value_PR_NOTHING, - RICserviceUpdate_IEs__value_PR_RANfunctions_List, - RICserviceUpdate_IEs__value_PR_RANfunctions_List, - RICserviceUpdate_IEs__value_PR_RANfunctionsID_List - }; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2connectionUpdateAck_IEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -4806,7 +5032,7 @@ select_RICserviceUpdate_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, presence_index++; if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { result.type_descriptor = type_cell->type_descriptor; - result.presence_index = indexToPresence[presence_index]; + result.presence_index = presence_index; break; } } @@ -4859,13 +5085,13 @@ memb_id_constraint_137(const asn_TYPE_descriptor_t *td, const void *sptr, } static asn_type_selector_result_t -select_RICserviceUpdateAcknowledge_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_E2connectionUpdateFailure_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICserviceUpdateAcknowledge_IEs_1; + const asn_ioc_set_t *itable = asn_IOS_E2connectionUpdateFailure_IEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 1; /* &criticality */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICserviceUpdateAcknowledge_IEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2connectionUpdateFailure_IEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -4905,13 +5131,13 @@ memb_criticality_constraint_137(const asn_TYPE_descriptor_t *td, const void *spt } static asn_type_selector_result_t -select_RICserviceUpdateAcknowledge_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_E2connectionUpdateFailure_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICserviceUpdateAcknowledge_IEs_1; + const asn_ioc_set_t *itable = asn_IOS_E2connectionUpdateFailure_IEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 2; /* &Value */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICserviceUpdateAcknowledge_IEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2connectionUpdateFailure_IEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -4976,13 +5202,13 @@ memb_id_constraint_141(const asn_TYPE_descriptor_t *td, const void *sptr, } static asn_type_selector_result_t -select_RICserviceUpdateFailure_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_E2nodeConfigurationUpdate_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICserviceUpdateFailure_IEs_1; + const asn_ioc_set_t *itable = asn_IOS_E2nodeConfigurationUpdate_IEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 1; /* &criticality */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICserviceUpdateFailure_IEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2nodeConfigurationUpdate_IEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -5022,13 +5248,13 @@ memb_criticality_constraint_141(const asn_TYPE_descriptor_t *td, const void *spt } static asn_type_selector_result_t -select_RICserviceUpdateFailure_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_E2nodeConfigurationUpdate_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICserviceUpdateFailure_IEs_1; + const asn_ioc_set_t *itable = asn_IOS_E2nodeConfigurationUpdate_IEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 2; /* &Value */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICserviceUpdateFailure_IEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2nodeConfigurationUpdate_IEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -5093,13 +5319,13 @@ memb_id_constraint_145(const asn_TYPE_descriptor_t *td, const void *sptr, } static asn_type_selector_result_t -select_RICserviceQuery_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_E2nodeConfigurationUpdateAcknowledge_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICserviceQuery_IEs_1; + const asn_ioc_set_t *itable = asn_IOS_E2nodeConfigurationUpdateAcknowledge_IEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 1; /* &criticality */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICserviceQuery_IEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2nodeConfigurationUpdateAcknowledge_IEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -5139,13 +5365,13 @@ memb_criticality_constraint_145(const asn_TYPE_descriptor_t *td, const void *spt } static asn_type_selector_result_t -select_RICserviceQuery_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_E2nodeConfigurationUpdateAcknowledge_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICserviceQuery_IEs_1; + const asn_ioc_set_t *itable = asn_IOS_E2nodeConfigurationUpdateAcknowledge_IEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 2; /* &Value */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICserviceQuery_IEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2nodeConfigurationUpdateAcknowledge_IEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -5184,587 +5410,2514 @@ memb_value_constraint_145(const asn_TYPE_descriptor_t *td, const void *sptr, return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); } -static asn_per_constraints_t asn_PER_memb_id_constr_2 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_3 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_4 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_6 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_7 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_8 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_10 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_11 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_12 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_14 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_15 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_16 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_18 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_19 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_20 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_22 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_23 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_24 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_26 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_27 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_28 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_30 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_31 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_32 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_34 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_35 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_36 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, +static int +memb_id_constraint_149(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_E2nodeConfigurationUpdateFailure_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_E2nodeConfigurationUpdateFailure_IEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2nodeConfigurationUpdateFailure_IEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_149(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_E2nodeConfigurationUpdateFailure_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_E2nodeConfigurationUpdateFailure_IEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2nodeConfigurationUpdateFailure_IEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_value_constraint_149(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_153(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_ResetRequestIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ResetRequestIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ResetRequestIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_153(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_ResetRequestIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ResetRequestIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ResetRequestIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_value_constraint_153(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_157(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_ResetResponseIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ResetResponseIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ResetResponseIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_157(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_ResetResponseIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ResetResponseIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ResetResponseIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_value_constraint_157(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_161(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_RICserviceUpdate_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_RICserviceUpdate_IEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICserviceUpdate_IEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_161(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_RICserviceUpdate_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_RICserviceUpdate_IEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICserviceUpdate_IEs, id)); + const int indexToPresence[5] = { + RICserviceUpdate_IEs__value_PR_NOTHING, + RICserviceUpdate_IEs__value_PR_TransactionID, + RICserviceUpdate_IEs__value_PR_RANfunctions_List, + RICserviceUpdate_IEs__value_PR_RANfunctions_List, + RICserviceUpdate_IEs__value_PR_RANfunctionsID_List + }; + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = indexToPresence[presence_index]; + break; + } + } + + return result; +} + +static int +memb_value_constraint_161(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_165(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_RICserviceUpdateAcknowledge_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_RICserviceUpdateAcknowledge_IEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICserviceUpdateAcknowledge_IEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_165(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_RICserviceUpdateAcknowledge_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_RICserviceUpdateAcknowledge_IEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICserviceUpdateAcknowledge_IEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_value_constraint_165(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_169(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_RICserviceUpdateFailure_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_RICserviceUpdateFailure_IEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICserviceUpdateFailure_IEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_169(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_RICserviceUpdateFailure_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_RICserviceUpdateFailure_IEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICserviceUpdateFailure_IEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_value_constraint_169(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_173(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_RICserviceQuery_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_RICserviceQuery_IEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICserviceQuery_IEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_173(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_RICserviceQuery_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_RICserviceQuery_IEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICserviceQuery_IEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_value_constraint_173(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_oer_constraints_t asn_OER_memb_id_constr_2 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_4 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_4 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_6 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_6 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_7 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_8 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_8 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_10 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_10 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_11 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_11 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_12 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_12 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_14 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_14 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_15 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_15 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_16 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_16 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_18 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_18 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_19 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_19 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_20 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_20 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_22 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_22 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_23 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_23 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_24 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_24 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_26 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_26 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_27 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_27 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_28 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_28 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_30 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_30 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_31 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_31 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_32 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_32 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_34 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_34 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_35 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_35 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_36 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_36 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_38 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_38 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_39 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_39 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_40 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_40 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_42 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_42 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_43 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_43 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_44 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_44 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_46 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_46 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_47 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_47 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_48 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_48 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_50 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_50 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_51 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_51 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_52 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_52 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_54 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_54 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_55 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_55 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_56 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_56 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_58 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_58 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_59 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_59 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_60 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_60 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_62 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_62 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_63 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_63 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_64 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_64 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_66 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_66 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_67 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_67 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_68 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_68 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_70 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_70 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_71 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_71 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_72 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_72 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_74 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_74 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_75 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_75 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_76 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_76 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_78 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_78 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_79 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_79 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_80 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_80 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_82 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_82 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_83 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_83 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_84 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_84 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_86 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_86 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_87 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_87 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_88 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_88 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_90 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_90 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_91 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_91 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_92 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_92 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_94 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_94 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_95 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_95 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_96 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_96 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_98 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_98 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_99 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_99 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_100 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_100 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_102 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_102 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_103 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_103 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_104 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_104 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_106 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_106 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_107 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_107 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_108 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_108 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; -static asn_per_constraints_t asn_PER_memb_id_constr_38 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_memb_id_constr_110 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_110 CC_NOTUSED = { { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; -static asn_per_constraints_t asn_PER_memb_criticality_constr_39 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_memb_criticality_constr_111 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_111 CC_NOTUSED = { { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; -static asn_per_constraints_t asn_PER_memb_value_constr_40 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_memb_value_constr_112 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_112 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; -static asn_per_constraints_t asn_PER_memb_id_constr_42 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_memb_id_constr_114 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_114 CC_NOTUSED = { { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; -static asn_per_constraints_t asn_PER_memb_criticality_constr_43 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_memb_criticality_constr_115 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_115 CC_NOTUSED = { { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; -static asn_per_constraints_t asn_PER_memb_value_constr_44 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_memb_value_constr_116 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_116 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; -static asn_per_constraints_t asn_PER_memb_id_constr_46 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_memb_id_constr_118 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_118 CC_NOTUSED = { { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; -static asn_per_constraints_t asn_PER_memb_criticality_constr_47 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_memb_criticality_constr_119 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_119 CC_NOTUSED = { { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; -static asn_per_constraints_t asn_PER_memb_value_constr_48 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_memb_value_constr_120 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_120 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; -static asn_per_constraints_t asn_PER_memb_id_constr_50 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_memb_id_constr_122 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_122 CC_NOTUSED = { { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; -static asn_per_constraints_t asn_PER_memb_criticality_constr_51 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_memb_criticality_constr_123 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_123 CC_NOTUSED = { { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; -static asn_per_constraints_t asn_PER_memb_value_constr_52 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_memb_value_constr_124 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_124 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; -static asn_per_constraints_t asn_PER_memb_id_constr_54 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_memb_id_constr_126 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_126 CC_NOTUSED = { { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; -static asn_per_constraints_t asn_PER_memb_criticality_constr_55 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_memb_criticality_constr_127 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_127 CC_NOTUSED = { { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; -static asn_per_constraints_t asn_PER_memb_value_constr_56 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_memb_value_constr_128 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_128 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; -static asn_per_constraints_t asn_PER_memb_id_constr_58 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_memb_id_constr_130 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_130 CC_NOTUSED = { { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; -static asn_per_constraints_t asn_PER_memb_criticality_constr_59 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_memb_criticality_constr_131 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_131 CC_NOTUSED = { { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; -static asn_per_constraints_t asn_PER_memb_value_constr_60 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_memb_value_constr_132 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_132 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; -static asn_per_constraints_t asn_PER_memb_id_constr_62 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_memb_id_constr_134 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_134 CC_NOTUSED = { { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; -static asn_per_constraints_t asn_PER_memb_criticality_constr_63 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_memb_criticality_constr_135 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_135 CC_NOTUSED = { { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; -static asn_per_constraints_t asn_PER_memb_value_constr_64 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_memb_value_constr_136 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_136 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; -static asn_per_constraints_t asn_PER_memb_id_constr_66 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_memb_id_constr_138 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_138 CC_NOTUSED = { { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; -static asn_per_constraints_t asn_PER_memb_criticality_constr_67 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_memb_criticality_constr_139 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_139 CC_NOTUSED = { { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; -static asn_per_constraints_t asn_PER_memb_value_constr_68 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_memb_value_constr_140 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_140 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; -static asn_per_constraints_t asn_PER_memb_id_constr_70 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_memb_id_constr_142 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_142 CC_NOTUSED = { { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; -static asn_per_constraints_t asn_PER_memb_criticality_constr_71 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_memb_criticality_constr_143 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_143 CC_NOTUSED = { { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; -static asn_per_constraints_t asn_PER_memb_value_constr_72 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_memb_value_constr_144 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_144 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; -static asn_per_constraints_t asn_PER_memb_id_constr_74 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_memb_id_constr_146 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_146 CC_NOTUSED = { { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; -static asn_per_constraints_t asn_PER_memb_criticality_constr_75 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_memb_criticality_constr_147 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_147 CC_NOTUSED = { { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; -static asn_per_constraints_t asn_PER_memb_value_constr_76 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_memb_value_constr_148 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_148 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; -static asn_per_constraints_t asn_PER_memb_id_constr_78 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_memb_id_constr_150 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_150 CC_NOTUSED = { { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; -static asn_per_constraints_t asn_PER_memb_criticality_constr_79 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_memb_criticality_constr_151 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_151 CC_NOTUSED = { { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; -static asn_per_constraints_t asn_PER_memb_value_constr_80 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_memb_value_constr_152 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_152 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; -static asn_per_constraints_t asn_PER_memb_id_constr_82 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_memb_id_constr_154 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_154 CC_NOTUSED = { { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; -static asn_per_constraints_t asn_PER_memb_criticality_constr_83 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_memb_criticality_constr_155 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_155 CC_NOTUSED = { { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; -static asn_per_constraints_t asn_PER_memb_value_constr_84 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_memb_value_constr_156 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_156 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; -static asn_per_constraints_t asn_PER_memb_id_constr_86 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_memb_id_constr_158 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_158 CC_NOTUSED = { { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; -static asn_per_constraints_t asn_PER_memb_criticality_constr_87 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_memb_criticality_constr_159 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_159 CC_NOTUSED = { { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; -static asn_per_constraints_t asn_PER_memb_value_constr_88 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_memb_value_constr_160 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_160 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; -static asn_per_constraints_t asn_PER_memb_id_constr_90 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_memb_id_constr_162 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_162 CC_NOTUSED = { { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; -static asn_per_constraints_t asn_PER_memb_criticality_constr_91 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_memb_criticality_constr_163 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_163 CC_NOTUSED = { { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; -static asn_per_constraints_t asn_PER_memb_value_constr_92 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_memb_value_constr_164 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_164 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; -static asn_per_constraints_t asn_PER_memb_id_constr_94 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_memb_id_constr_166 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_166 CC_NOTUSED = { { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; -static asn_per_constraints_t asn_PER_memb_criticality_constr_95 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_memb_criticality_constr_167 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_167 CC_NOTUSED = { { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; -static asn_per_constraints_t asn_PER_memb_value_constr_96 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_memb_value_constr_168 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_168 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; -static asn_per_constraints_t asn_PER_memb_id_constr_98 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_memb_id_constr_170 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_170 CC_NOTUSED = { { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; -static asn_per_constraints_t asn_PER_memb_criticality_constr_99 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_memb_criticality_constr_171 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_171 CC_NOTUSED = { { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; -static asn_per_constraints_t asn_PER_memb_value_constr_100 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ +static asn_oer_constraints_t asn_OER_memb_value_constr_172 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_172 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_174 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_174 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_175 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_175 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_176 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_176 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_value_4[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICaction_ToBeSetup_ItemIEs__value, choice.RICaction_ToBeSetup_Item), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RICaction_ToBeSetup_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RICaction-ToBeSetup-Item" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_4[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RICaction-ToBeSetup-Item */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_4 = { + sizeof(struct RICaction_ToBeSetup_ItemIEs__value), + offsetof(struct RICaction_ToBeSetup_ItemIEs__value, _asn_ctx), + offsetof(struct RICaction_ToBeSetup_ItemIEs__value, present), + sizeof(((struct RICaction_ToBeSetup_ItemIEs__value *)0)->present), + asn_MAP_value_tag2el_4, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_4 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_4, + 1, /* Elements count */ + &asn_SPC_value_specs_4 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RICaction_ToBeSetup_ItemIEs_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICaction_ToBeSetup_ItemIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ID, + 0, + { &asn_OER_memb_id_constr_2, &asn_PER_memb_id_constr_2, memb_id_constraint_1 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICaction_ToBeSetup_ItemIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_RICaction_ToBeSetup_ItemIEs_criticality_type, + { &asn_OER_memb_criticality_constr_3, &asn_PER_memb_criticality_constr_3, memb_criticality_constraint_1 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICaction_ToBeSetup_ItemIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_4, + select_RICaction_ToBeSetup_ItemIEs_value_type, + { &asn_OER_memb_value_constr_4, &asn_PER_memb_value_constr_4, memb_value_constraint_1 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_RICaction_ToBeSetup_ItemIEs_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RICaction_ToBeSetup_ItemIEs_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RICaction_ToBeSetup_ItemIEs_specs_1 = { + sizeof(struct RICaction_ToBeSetup_ItemIEs), + offsetof(struct RICaction_ToBeSetup_ItemIEs, _asn_ctx), + asn_MAP_RICaction_ToBeSetup_ItemIEs_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RICaction_ToBeSetup_ItemIEs = { + "RICaction-ToBeSetup-ItemIEs", + "RICaction-ToBeSetup-ItemIEs", + &asn_OP_SEQUENCE, + asn_DEF_RICaction_ToBeSetup_ItemIEs_tags_1, + sizeof(asn_DEF_RICaction_ToBeSetup_ItemIEs_tags_1) + /sizeof(asn_DEF_RICaction_ToBeSetup_ItemIEs_tags_1[0]), /* 1 */ + asn_DEF_RICaction_ToBeSetup_ItemIEs_tags_1, /* Same as above */ + sizeof(asn_DEF_RICaction_ToBeSetup_ItemIEs_tags_1) + /sizeof(asn_DEF_RICaction_ToBeSetup_ItemIEs_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RICaction_ToBeSetup_ItemIEs_1, + 3, /* Elements count */ + &asn_SPC_RICaction_ToBeSetup_ItemIEs_specs_1 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_8[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICaction_Admitted_ItemIEs__value, choice.RICaction_Admitted_Item), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RICaction_Admitted_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RICaction-Admitted-Item" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_8[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RICaction-Admitted-Item */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_8 = { + sizeof(struct RICaction_Admitted_ItemIEs__value), + offsetof(struct RICaction_Admitted_ItemIEs__value, _asn_ctx), + offsetof(struct RICaction_Admitted_ItemIEs__value, present), + sizeof(((struct RICaction_Admitted_ItemIEs__value *)0)->present), + asn_MAP_value_tag2el_8, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_8 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_8, + 1, /* Elements count */ + &asn_SPC_value_specs_8 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RICaction_Admitted_ItemIEs_5[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICaction_Admitted_ItemIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ID, + 0, + { &asn_OER_memb_id_constr_6, &asn_PER_memb_id_constr_6, memb_id_constraint_5 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICaction_Admitted_ItemIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_RICaction_Admitted_ItemIEs_criticality_type, + { &asn_OER_memb_criticality_constr_7, &asn_PER_memb_criticality_constr_7, memb_criticality_constraint_5 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICaction_Admitted_ItemIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_8, + select_RICaction_Admitted_ItemIEs_value_type, + { &asn_OER_memb_value_constr_8, &asn_PER_memb_value_constr_8, memb_value_constraint_5 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_RICaction_Admitted_ItemIEs_tags_5[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RICaction_Admitted_ItemIEs_tag2el_5[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RICaction_Admitted_ItemIEs_specs_5 = { + sizeof(struct RICaction_Admitted_ItemIEs), + offsetof(struct RICaction_Admitted_ItemIEs, _asn_ctx), + asn_MAP_RICaction_Admitted_ItemIEs_tag2el_5, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RICaction_Admitted_ItemIEs = { + "RICaction-Admitted-ItemIEs", + "RICaction-Admitted-ItemIEs", + &asn_OP_SEQUENCE, + asn_DEF_RICaction_Admitted_ItemIEs_tags_5, + sizeof(asn_DEF_RICaction_Admitted_ItemIEs_tags_5) + /sizeof(asn_DEF_RICaction_Admitted_ItemIEs_tags_5[0]), /* 1 */ + asn_DEF_RICaction_Admitted_ItemIEs_tags_5, /* Same as above */ + sizeof(asn_DEF_RICaction_Admitted_ItemIEs_tags_5) + /sizeof(asn_DEF_RICaction_Admitted_ItemIEs_tags_5[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RICaction_Admitted_ItemIEs_5, + 3, /* Elements count */ + &asn_SPC_RICaction_Admitted_ItemIEs_specs_5 /* Additional specs */ }; -static asn_per_constraints_t asn_PER_memb_id_constr_102 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ + +static asn_TYPE_member_t asn_MBR_value_12[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICaction_NotAdmitted_ItemIEs__value, choice.RICaction_NotAdmitted_Item), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RICaction_NotAdmitted_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RICaction-NotAdmitted-Item" + }, }; -static asn_per_constraints_t asn_PER_memb_criticality_constr_103 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_12[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RICaction-NotAdmitted-Item */ }; -static asn_per_constraints_t asn_PER_memb_value_constr_104 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ +static asn_CHOICE_specifics_t asn_SPC_value_specs_12 = { + sizeof(struct RICaction_NotAdmitted_ItemIEs__value), + offsetof(struct RICaction_NotAdmitted_ItemIEs__value, _asn_ctx), + offsetof(struct RICaction_NotAdmitted_ItemIEs__value, present), + sizeof(((struct RICaction_NotAdmitted_ItemIEs__value *)0)->present), + asn_MAP_value_tag2el_12, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ }; -static asn_per_constraints_t asn_PER_memb_id_constr_106 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_12 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_12, + 1, /* Elements count */ + &asn_SPC_value_specs_12 /* Additional specs */ }; -static asn_per_constraints_t asn_PER_memb_criticality_constr_107 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ + +asn_TYPE_member_t asn_MBR_RICaction_NotAdmitted_ItemIEs_9[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICaction_NotAdmitted_ItemIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ID, + 0, + { &asn_OER_memb_id_constr_10, &asn_PER_memb_id_constr_10, memb_id_constraint_9 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICaction_NotAdmitted_ItemIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_RICaction_NotAdmitted_ItemIEs_criticality_type, + { &asn_OER_memb_criticality_constr_11, &asn_PER_memb_criticality_constr_11, memb_criticality_constraint_9 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICaction_NotAdmitted_ItemIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_12, + select_RICaction_NotAdmitted_ItemIEs_value_type, + { &asn_OER_memb_value_constr_12, &asn_PER_memb_value_constr_12, memb_value_constraint_9 }, + 0, 0, /* No default value */ + "value" + }, }; -static asn_per_constraints_t asn_PER_memb_value_constr_108 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ +static const ber_tlv_tag_t asn_DEF_RICaction_NotAdmitted_ItemIEs_tags_9[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -static asn_per_constraints_t asn_PER_memb_id_constr_110 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ +static const asn_TYPE_tag2member_t asn_MAP_RICaction_NotAdmitted_ItemIEs_tag2el_9[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ }; -static asn_per_constraints_t asn_PER_memb_criticality_constr_111 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ +asn_SEQUENCE_specifics_t asn_SPC_RICaction_NotAdmitted_ItemIEs_specs_9 = { + sizeof(struct RICaction_NotAdmitted_ItemIEs), + offsetof(struct RICaction_NotAdmitted_ItemIEs, _asn_ctx), + asn_MAP_RICaction_NotAdmitted_ItemIEs_tag2el_9, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ }; -static asn_per_constraints_t asn_PER_memb_value_constr_112 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ +asn_TYPE_descriptor_t asn_DEF_RICaction_NotAdmitted_ItemIEs = { + "RICaction-NotAdmitted-ItemIEs", + "RICaction-NotAdmitted-ItemIEs", + &asn_OP_SEQUENCE, + asn_DEF_RICaction_NotAdmitted_ItemIEs_tags_9, + sizeof(asn_DEF_RICaction_NotAdmitted_ItemIEs_tags_9) + /sizeof(asn_DEF_RICaction_NotAdmitted_ItemIEs_tags_9[0]), /* 1 */ + asn_DEF_RICaction_NotAdmitted_ItemIEs_tags_9, /* Same as above */ + sizeof(asn_DEF_RICaction_NotAdmitted_ItemIEs_tags_9) + /sizeof(asn_DEF_RICaction_NotAdmitted_ItemIEs_tags_9[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RICaction_NotAdmitted_ItemIEs_9, + 3, /* Elements count */ + &asn_SPC_RICaction_NotAdmitted_ItemIEs_specs_9 /* Additional specs */ }; -static asn_per_constraints_t asn_PER_memb_id_constr_114 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ + +static asn_TYPE_member_t asn_MBR_value_16[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICsubscription_withCause_ItemIEs__value, choice.RICsubscription_withCause_Item), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RICsubscription_withCause_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RICsubscription-withCause-Item" + }, }; -static asn_per_constraints_t asn_PER_memb_criticality_constr_115 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_16[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RICsubscription-withCause-Item */ }; -static asn_per_constraints_t asn_PER_memb_value_constr_116 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ +static asn_CHOICE_specifics_t asn_SPC_value_specs_16 = { + sizeof(struct RICsubscription_withCause_ItemIEs__value), + offsetof(struct RICsubscription_withCause_ItemIEs__value, _asn_ctx), + offsetof(struct RICsubscription_withCause_ItemIEs__value, present), + sizeof(((struct RICsubscription_withCause_ItemIEs__value *)0)->present), + asn_MAP_value_tag2el_16, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ }; -static asn_per_constraints_t asn_PER_memb_id_constr_118 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_16 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_16, + 1, /* Elements count */ + &asn_SPC_value_specs_16 /* Additional specs */ }; -static asn_per_constraints_t asn_PER_memb_criticality_constr_119 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ + +asn_TYPE_member_t asn_MBR_RICsubscription_withCause_ItemIEs_13[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICsubscription_withCause_ItemIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ID, + 0, + { &asn_OER_memb_id_constr_14, &asn_PER_memb_id_constr_14, memb_id_constraint_13 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICsubscription_withCause_ItemIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_RICsubscription_withCause_ItemIEs_criticality_type, + { &asn_OER_memb_criticality_constr_15, &asn_PER_memb_criticality_constr_15, memb_criticality_constraint_13 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICsubscription_withCause_ItemIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_16, + select_RICsubscription_withCause_ItemIEs_value_type, + { &asn_OER_memb_value_constr_16, &asn_PER_memb_value_constr_16, memb_value_constraint_13 }, + 0, 0, /* No default value */ + "value" + }, }; -static asn_per_constraints_t asn_PER_memb_value_constr_120 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ +static const ber_tlv_tag_t asn_DEF_RICsubscription_withCause_ItemIEs_tags_13[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -static asn_per_constraints_t asn_PER_memb_id_constr_122 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ +static const asn_TYPE_tag2member_t asn_MAP_RICsubscription_withCause_ItemIEs_tag2el_13[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ }; -static asn_per_constraints_t asn_PER_memb_criticality_constr_123 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ +asn_SEQUENCE_specifics_t asn_SPC_RICsubscription_withCause_ItemIEs_specs_13 = { + sizeof(struct RICsubscription_withCause_ItemIEs), + offsetof(struct RICsubscription_withCause_ItemIEs, _asn_ctx), + asn_MAP_RICsubscription_withCause_ItemIEs_tag2el_13, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ }; -static asn_per_constraints_t asn_PER_memb_value_constr_124 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ +asn_TYPE_descriptor_t asn_DEF_RICsubscription_withCause_ItemIEs = { + "RICsubscription-withCause-ItemIEs", + "RICsubscription-withCause-ItemIEs", + &asn_OP_SEQUENCE, + asn_DEF_RICsubscription_withCause_ItemIEs_tags_13, + sizeof(asn_DEF_RICsubscription_withCause_ItemIEs_tags_13) + /sizeof(asn_DEF_RICsubscription_withCause_ItemIEs_tags_13[0]), /* 1 */ + asn_DEF_RICsubscription_withCause_ItemIEs_tags_13, /* Same as above */ + sizeof(asn_DEF_RICsubscription_withCause_ItemIEs_tags_13) + /sizeof(asn_DEF_RICsubscription_withCause_ItemIEs_tags_13[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RICsubscription_withCause_ItemIEs_13, + 3, /* Elements count */ + &asn_SPC_RICsubscription_withCause_ItemIEs_specs_13 /* Additional specs */ }; -static asn_per_constraints_t asn_PER_memb_id_constr_126 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ + +static asn_TYPE_member_t asn_MBR_value_20[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdate_ItemIEs__value, choice.E2connectionUpdate_Item), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_E2connectionUpdate_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "E2connectionUpdate-Item" + }, }; -static asn_per_constraints_t asn_PER_memb_criticality_constr_127 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_20[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* E2connectionUpdate-Item */ }; -static asn_per_constraints_t asn_PER_memb_value_constr_128 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ +static asn_CHOICE_specifics_t asn_SPC_value_specs_20 = { + sizeof(struct E2connectionUpdate_ItemIEs__value), + offsetof(struct E2connectionUpdate_ItemIEs__value, _asn_ctx), + offsetof(struct E2connectionUpdate_ItemIEs__value, present), + sizeof(((struct E2connectionUpdate_ItemIEs__value *)0)->present), + asn_MAP_value_tag2el_20, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ }; -static asn_per_constraints_t asn_PER_memb_id_constr_130 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_20 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_20, + 1, /* Elements count */ + &asn_SPC_value_specs_20 /* Additional specs */ }; -static asn_per_constraints_t asn_PER_memb_criticality_constr_131 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ + +asn_TYPE_member_t asn_MBR_E2connectionUpdate_ItemIEs_17[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdate_ItemIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ID, + 0, + { &asn_OER_memb_id_constr_18, &asn_PER_memb_id_constr_18, memb_id_constraint_17 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdate_ItemIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_E2connectionUpdate_ItemIEs_criticality_type, + { &asn_OER_memb_criticality_constr_19, &asn_PER_memb_criticality_constr_19, memb_criticality_constraint_17 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdate_ItemIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_20, + select_E2connectionUpdate_ItemIEs_value_type, + { &asn_OER_memb_value_constr_20, &asn_PER_memb_value_constr_20, memb_value_constraint_17 }, + 0, 0, /* No default value */ + "value" + }, }; -static asn_per_constraints_t asn_PER_memb_value_constr_132 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ +static const ber_tlv_tag_t asn_DEF_E2connectionUpdate_ItemIEs_tags_17[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -static asn_per_constraints_t asn_PER_memb_id_constr_134 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ +static const asn_TYPE_tag2member_t asn_MAP_E2connectionUpdate_ItemIEs_tag2el_17[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ }; -static asn_per_constraints_t asn_PER_memb_criticality_constr_135 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ +asn_SEQUENCE_specifics_t asn_SPC_E2connectionUpdate_ItemIEs_specs_17 = { + sizeof(struct E2connectionUpdate_ItemIEs), + offsetof(struct E2connectionUpdate_ItemIEs, _asn_ctx), + asn_MAP_E2connectionUpdate_ItemIEs_tag2el_17, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ }; -static asn_per_constraints_t asn_PER_memb_value_constr_136 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ +asn_TYPE_descriptor_t asn_DEF_E2connectionUpdate_ItemIEs = { + "E2connectionUpdate-ItemIEs", + "E2connectionUpdate-ItemIEs", + &asn_OP_SEQUENCE, + asn_DEF_E2connectionUpdate_ItemIEs_tags_17, + sizeof(asn_DEF_E2connectionUpdate_ItemIEs_tags_17) + /sizeof(asn_DEF_E2connectionUpdate_ItemIEs_tags_17[0]), /* 1 */ + asn_DEF_E2connectionUpdate_ItemIEs_tags_17, /* Same as above */ + sizeof(asn_DEF_E2connectionUpdate_ItemIEs_tags_17) + /sizeof(asn_DEF_E2connectionUpdate_ItemIEs_tags_17[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_E2connectionUpdate_ItemIEs_17, + 3, /* Elements count */ + &asn_SPC_E2connectionUpdate_ItemIEs_specs_17 /* Additional specs */ }; -static asn_per_constraints_t asn_PER_memb_id_constr_138 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ + +static asn_TYPE_member_t asn_MBR_value_24[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdateRemove_ItemIEs__value, choice.E2connectionUpdateRemove_Item), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_E2connectionUpdateRemove_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "E2connectionUpdateRemove-Item" + }, }; -static asn_per_constraints_t asn_PER_memb_criticality_constr_139 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_24[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* E2connectionUpdateRemove-Item */ }; -static asn_per_constraints_t asn_PER_memb_value_constr_140 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ +static asn_CHOICE_specifics_t asn_SPC_value_specs_24 = { + sizeof(struct E2connectionUpdateRemove_ItemIEs__value), + offsetof(struct E2connectionUpdateRemove_ItemIEs__value, _asn_ctx), + offsetof(struct E2connectionUpdateRemove_ItemIEs__value, present), + sizeof(((struct E2connectionUpdateRemove_ItemIEs__value *)0)->present), + asn_MAP_value_tag2el_24, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ }; -static asn_per_constraints_t asn_PER_memb_id_constr_142 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_24 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_24, + 1, /* Elements count */ + &asn_SPC_value_specs_24 /* Additional specs */ }; -static asn_per_constraints_t asn_PER_memb_criticality_constr_143 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ + +asn_TYPE_member_t asn_MBR_E2connectionUpdateRemove_ItemIEs_21[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdateRemove_ItemIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ID, + 0, + { &asn_OER_memb_id_constr_22, &asn_PER_memb_id_constr_22, memb_id_constraint_21 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdateRemove_ItemIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_E2connectionUpdateRemove_ItemIEs_criticality_type, + { &asn_OER_memb_criticality_constr_23, &asn_PER_memb_criticality_constr_23, memb_criticality_constraint_21 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdateRemove_ItemIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_24, + select_E2connectionUpdateRemove_ItemIEs_value_type, + { &asn_OER_memb_value_constr_24, &asn_PER_memb_value_constr_24, memb_value_constraint_21 }, + 0, 0, /* No default value */ + "value" + }, }; -static asn_per_constraints_t asn_PER_memb_value_constr_144 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ +static const ber_tlv_tag_t asn_DEF_E2connectionUpdateRemove_ItemIEs_tags_21[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -static asn_per_constraints_t asn_PER_memb_id_constr_146 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ +static const asn_TYPE_tag2member_t asn_MAP_E2connectionUpdateRemove_ItemIEs_tag2el_21[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ }; -static asn_per_constraints_t asn_PER_memb_criticality_constr_147 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ +asn_SEQUENCE_specifics_t asn_SPC_E2connectionUpdateRemove_ItemIEs_specs_21 = { + sizeof(struct E2connectionUpdateRemove_ItemIEs), + offsetof(struct E2connectionUpdateRemove_ItemIEs, _asn_ctx), + asn_MAP_E2connectionUpdateRemove_ItemIEs_tag2el_21, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ }; -static asn_per_constraints_t asn_PER_memb_value_constr_148 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ +asn_TYPE_descriptor_t asn_DEF_E2connectionUpdateRemove_ItemIEs = { + "E2connectionUpdateRemove-ItemIEs", + "E2connectionUpdateRemove-ItemIEs", + &asn_OP_SEQUENCE, + asn_DEF_E2connectionUpdateRemove_ItemIEs_tags_21, + sizeof(asn_DEF_E2connectionUpdateRemove_ItemIEs_tags_21) + /sizeof(asn_DEF_E2connectionUpdateRemove_ItemIEs_tags_21[0]), /* 1 */ + asn_DEF_E2connectionUpdateRemove_ItemIEs_tags_21, /* Same as above */ + sizeof(asn_DEF_E2connectionUpdateRemove_ItemIEs_tags_21) + /sizeof(asn_DEF_E2connectionUpdateRemove_ItemIEs_tags_21[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_E2connectionUpdateRemove_ItemIEs_21, + 3, /* Elements count */ + &asn_SPC_E2connectionUpdateRemove_ItemIEs_specs_21 /* Additional specs */ }; -static asn_TYPE_member_t asn_MBR_value_4[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICaction_ToBeSetup_ItemIEs__value, choice.RICaction_ToBeSetup_Item), + +static asn_TYPE_member_t asn_MBR_value_28[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2connectionSetupFailed_ItemIEs__value, choice.E2connectionSetupFailed_Item), (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, - &asn_DEF_RICaction_ToBeSetup_Item, + &asn_DEF_E2connectionSetupFailed_Item, 0, { 0, 0, 0 }, 0, 0, /* No default value */ - "RICaction-ToBeSetup-Item" + "E2connectionSetupFailed-Item" }, }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_4[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RICaction-ToBeSetup-Item */ +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_28[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* E2connectionSetupFailed-Item */ }; -static asn_CHOICE_specifics_t asn_SPC_value_specs_4 = { - sizeof(struct RICaction_ToBeSetup_ItemIEs__value), - offsetof(struct RICaction_ToBeSetup_ItemIEs__value, _asn_ctx), - offsetof(struct RICaction_ToBeSetup_ItemIEs__value, present), - sizeof(((struct RICaction_ToBeSetup_ItemIEs__value *)0)->present), - asn_MAP_value_tag2el_4, +static asn_CHOICE_specifics_t asn_SPC_value_specs_28 = { + sizeof(struct E2connectionSetupFailed_ItemIEs__value), + offsetof(struct E2connectionSetupFailed_ItemIEs__value, _asn_ctx), + offsetof(struct E2connectionSetupFailed_ItemIEs__value, present), + sizeof(((struct E2connectionSetupFailed_ItemIEs__value *)0)->present), + asn_MAP_value_tag2el_28, 1, /* Count of tags in the map */ 0, 0, -1 /* Extensions start */ }; static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_4 = { +asn_TYPE_descriptor_t asn_DEF_value_28 = { "value", "value", &asn_OP_OPEN_TYPE, @@ -5773,97 +7926,98 @@ asn_TYPE_descriptor_t asn_DEF_value_4 = { 0, /* No tags (pointer) */ 0, /* No tags (count) */ { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_4, + asn_MBR_value_28, 1, /* Elements count */ - &asn_SPC_value_specs_4 /* Additional specs */ + &asn_SPC_value_specs_28 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_RICaction_ToBeSetup_ItemIEs_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICaction_ToBeSetup_ItemIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, +asn_TYPE_member_t asn_MBR_E2connectionSetupFailed_ItemIEs_25[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2connectionSetupFailed_ItemIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_ProtocolIE_ID, 0, - { 0, &asn_PER_memb_id_constr_2, memb_id_constraint_1 }, + { &asn_OER_memb_id_constr_26, &asn_PER_memb_id_constr_26, memb_id_constraint_25 }, 0, 0, /* No default value */ "id" }, - { ATF_NOFLAGS, 0, offsetof(struct RICaction_ToBeSetup_ItemIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, + { ATF_NOFLAGS, 0, offsetof(struct E2connectionSetupFailed_ItemIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_Criticality, - select_RICaction_ToBeSetup_ItemIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_3, memb_criticality_constraint_1 }, + select_E2connectionSetupFailed_ItemIEs_criticality_type, + { &asn_OER_memb_criticality_constr_27, &asn_PER_memb_criticality_constr_27, memb_criticality_constraint_25 }, 0, 0, /* No default value */ "criticality" }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICaction_ToBeSetup_ItemIEs, value), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_value_4, - select_RICaction_ToBeSetup_ItemIEs_value_type, - { 0, &asn_PER_memb_value_constr_4, memb_value_constraint_1 }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E2connectionSetupFailed_ItemIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_28, + select_E2connectionSetupFailed_ItemIEs_value_type, + { &asn_OER_memb_value_constr_28, &asn_PER_memb_value_constr_28, memb_value_constraint_25 }, 0, 0, /* No default value */ "value" }, }; -static const ber_tlv_tag_t asn_DEF_RICaction_ToBeSetup_ItemIEs_tags_1[] = { +static const ber_tlv_tag_t asn_DEF_E2connectionSetupFailed_ItemIEs_tags_25[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -static const asn_TYPE_tag2member_t asn_MAP_RICaction_ToBeSetup_ItemIEs_tag2el_1[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +static const asn_TYPE_tag2member_t asn_MAP_E2connectionSetupFailed_ItemIEs_tag2el_25[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ }; -asn_SEQUENCE_specifics_t asn_SPC_RICaction_ToBeSetup_ItemIEs_specs_1 = { - sizeof(struct RICaction_ToBeSetup_ItemIEs), - offsetof(struct RICaction_ToBeSetup_ItemIEs, _asn_ctx), - asn_MAP_RICaction_ToBeSetup_ItemIEs_tag2el_1, - 2, /* Count of tags in the map */ +asn_SEQUENCE_specifics_t asn_SPC_E2connectionSetupFailed_ItemIEs_specs_25 = { + sizeof(struct E2connectionSetupFailed_ItemIEs), + offsetof(struct E2connectionSetupFailed_ItemIEs, _asn_ctx), + asn_MAP_E2connectionSetupFailed_ItemIEs_tag2el_25, + 3, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; -asn_TYPE_descriptor_t asn_DEF_RICaction_ToBeSetup_ItemIEs = { - "RICaction-ToBeSetup-ItemIEs", - "RICaction-ToBeSetup-ItemIEs", +asn_TYPE_descriptor_t asn_DEF_E2connectionSetupFailed_ItemIEs = { + "E2connectionSetupFailed-ItemIEs", + "E2connectionSetupFailed-ItemIEs", &asn_OP_SEQUENCE, - asn_DEF_RICaction_ToBeSetup_ItemIEs_tags_1, - sizeof(asn_DEF_RICaction_ToBeSetup_ItemIEs_tags_1) - /sizeof(asn_DEF_RICaction_ToBeSetup_ItemIEs_tags_1[0]), /* 1 */ - asn_DEF_RICaction_ToBeSetup_ItemIEs_tags_1, /* Same as above */ - sizeof(asn_DEF_RICaction_ToBeSetup_ItemIEs_tags_1) - /sizeof(asn_DEF_RICaction_ToBeSetup_ItemIEs_tags_1[0]), /* 1 */ + asn_DEF_E2connectionSetupFailed_ItemIEs_tags_25, + sizeof(asn_DEF_E2connectionSetupFailed_ItemIEs_tags_25) + /sizeof(asn_DEF_E2connectionSetupFailed_ItemIEs_tags_25[0]), /* 1 */ + asn_DEF_E2connectionSetupFailed_ItemIEs_tags_25, /* Same as above */ + sizeof(asn_DEF_E2connectionSetupFailed_ItemIEs_tags_25) + /sizeof(asn_DEF_E2connectionSetupFailed_ItemIEs_tags_25[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICaction_ToBeSetup_ItemIEs_1, + asn_MBR_E2connectionSetupFailed_ItemIEs_25, 3, /* Elements count */ - &asn_SPC_RICaction_ToBeSetup_ItemIEs_specs_1 /* Additional specs */ + &asn_SPC_E2connectionSetupFailed_ItemIEs_specs_25 /* Additional specs */ }; -static asn_TYPE_member_t asn_MBR_value_8[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICaction_Admitted_ItemIEs__value, choice.RICaction_Admitted_Item), +static asn_TYPE_member_t asn_MBR_value_32[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigAddition_ItemIEs__value, choice.E2nodeComponentConfigAddition_Item), (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, - &asn_DEF_RICaction_Admitted_Item, + &asn_DEF_E2nodeComponentConfigAddition_Item, 0, { 0, 0, 0 }, 0, 0, /* No default value */ - "RICaction-Admitted-Item" + "E2nodeComponentConfigAddition-Item" }, }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_8[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RICaction-Admitted-Item */ +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_32[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* E2nodeComponentConfigAddition-Item */ }; -static asn_CHOICE_specifics_t asn_SPC_value_specs_8 = { - sizeof(struct RICaction_Admitted_ItemIEs__value), - offsetof(struct RICaction_Admitted_ItemIEs__value, _asn_ctx), - offsetof(struct RICaction_Admitted_ItemIEs__value, present), - sizeof(((struct RICaction_Admitted_ItemIEs__value *)0)->present), - asn_MAP_value_tag2el_8, +static asn_CHOICE_specifics_t asn_SPC_value_specs_32 = { + sizeof(struct E2nodeComponentConfigAddition_ItemIEs__value), + offsetof(struct E2nodeComponentConfigAddition_ItemIEs__value, _asn_ctx), + offsetof(struct E2nodeComponentConfigAddition_ItemIEs__value, present), + sizeof(((struct E2nodeComponentConfigAddition_ItemIEs__value *)0)->present), + asn_MAP_value_tag2el_32, 1, /* Count of tags in the map */ 0, 0, -1 /* Extensions start */ }; static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_8 = { +asn_TYPE_descriptor_t asn_DEF_value_32 = { "value", "value", &asn_OP_OPEN_TYPE, @@ -5872,97 +8026,98 @@ asn_TYPE_descriptor_t asn_DEF_value_8 = { 0, /* No tags (pointer) */ 0, /* No tags (count) */ { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_8, + asn_MBR_value_32, 1, /* Elements count */ - &asn_SPC_value_specs_8 /* Additional specs */ + &asn_SPC_value_specs_32 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_RICaction_Admitted_ItemIEs_5[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICaction_Admitted_ItemIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, +asn_TYPE_member_t asn_MBR_E2nodeComponentConfigAddition_ItemIEs_29[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigAddition_ItemIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_ProtocolIE_ID, 0, - { 0, &asn_PER_memb_id_constr_6, memb_id_constraint_5 }, + { &asn_OER_memb_id_constr_30, &asn_PER_memb_id_constr_30, memb_id_constraint_29 }, 0, 0, /* No default value */ "id" }, - { ATF_NOFLAGS, 0, offsetof(struct RICaction_Admitted_ItemIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigAddition_ItemIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_Criticality, - select_RICaction_Admitted_ItemIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_7, memb_criticality_constraint_5 }, + select_E2nodeComponentConfigAddition_ItemIEs_criticality_type, + { &asn_OER_memb_criticality_constr_31, &asn_PER_memb_criticality_constr_31, memb_criticality_constraint_29 }, 0, 0, /* No default value */ "criticality" }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICaction_Admitted_ItemIEs, value), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_value_8, - select_RICaction_Admitted_ItemIEs_value_type, - { 0, &asn_PER_memb_value_constr_8, memb_value_constraint_5 }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigAddition_ItemIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_32, + select_E2nodeComponentConfigAddition_ItemIEs_value_type, + { &asn_OER_memb_value_constr_32, &asn_PER_memb_value_constr_32, memb_value_constraint_29 }, 0, 0, /* No default value */ "value" }, }; -static const ber_tlv_tag_t asn_DEF_RICaction_Admitted_ItemIEs_tags_5[] = { +static const ber_tlv_tag_t asn_DEF_E2nodeComponentConfigAddition_ItemIEs_tags_29[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -static const asn_TYPE_tag2member_t asn_MAP_RICaction_Admitted_ItemIEs_tag2el_5[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +static const asn_TYPE_tag2member_t asn_MAP_E2nodeComponentConfigAddition_ItemIEs_tag2el_29[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ }; -asn_SEQUENCE_specifics_t asn_SPC_RICaction_Admitted_ItemIEs_specs_5 = { - sizeof(struct RICaction_Admitted_ItemIEs), - offsetof(struct RICaction_Admitted_ItemIEs, _asn_ctx), - asn_MAP_RICaction_Admitted_ItemIEs_tag2el_5, - 2, /* Count of tags in the map */ +asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigAddition_ItemIEs_specs_29 = { + sizeof(struct E2nodeComponentConfigAddition_ItemIEs), + offsetof(struct E2nodeComponentConfigAddition_ItemIEs, _asn_ctx), + asn_MAP_E2nodeComponentConfigAddition_ItemIEs_tag2el_29, + 3, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; -asn_TYPE_descriptor_t asn_DEF_RICaction_Admitted_ItemIEs = { - "RICaction-Admitted-ItemIEs", - "RICaction-Admitted-ItemIEs", +asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigAddition_ItemIEs = { + "E2nodeComponentConfigAddition-ItemIEs", + "E2nodeComponentConfigAddition-ItemIEs", &asn_OP_SEQUENCE, - asn_DEF_RICaction_Admitted_ItemIEs_tags_5, - sizeof(asn_DEF_RICaction_Admitted_ItemIEs_tags_5) - /sizeof(asn_DEF_RICaction_Admitted_ItemIEs_tags_5[0]), /* 1 */ - asn_DEF_RICaction_Admitted_ItemIEs_tags_5, /* Same as above */ - sizeof(asn_DEF_RICaction_Admitted_ItemIEs_tags_5) - /sizeof(asn_DEF_RICaction_Admitted_ItemIEs_tags_5[0]), /* 1 */ + asn_DEF_E2nodeComponentConfigAddition_ItemIEs_tags_29, + sizeof(asn_DEF_E2nodeComponentConfigAddition_ItemIEs_tags_29) + /sizeof(asn_DEF_E2nodeComponentConfigAddition_ItemIEs_tags_29[0]), /* 1 */ + asn_DEF_E2nodeComponentConfigAddition_ItemIEs_tags_29, /* Same as above */ + sizeof(asn_DEF_E2nodeComponentConfigAddition_ItemIEs_tags_29) + /sizeof(asn_DEF_E2nodeComponentConfigAddition_ItemIEs_tags_29[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICaction_Admitted_ItemIEs_5, + asn_MBR_E2nodeComponentConfigAddition_ItemIEs_29, 3, /* Elements count */ - &asn_SPC_RICaction_Admitted_ItemIEs_specs_5 /* Additional specs */ + &asn_SPC_E2nodeComponentConfigAddition_ItemIEs_specs_29 /* Additional specs */ }; -static asn_TYPE_member_t asn_MBR_value_12[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICaction_NotAdmitted_ItemIEs__value, choice.RICaction_NotAdmitted_Item), +static asn_TYPE_member_t asn_MBR_value_36[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigUpdate_ItemIEs__value, choice.E2nodeComponentConfigUpdate_Item), (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, - &asn_DEF_RICaction_NotAdmitted_Item, + &asn_DEF_E2nodeComponentConfigUpdate_Item, 0, { 0, 0, 0 }, 0, 0, /* No default value */ - "RICaction-NotAdmitted-Item" + "E2nodeComponentConfigUpdate-Item" }, }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_12[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RICaction-NotAdmitted-Item */ +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_36[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* E2nodeComponentConfigUpdate-Item */ }; -static asn_CHOICE_specifics_t asn_SPC_value_specs_12 = { - sizeof(struct RICaction_NotAdmitted_ItemIEs__value), - offsetof(struct RICaction_NotAdmitted_ItemIEs__value, _asn_ctx), - offsetof(struct RICaction_NotAdmitted_ItemIEs__value, present), - sizeof(((struct RICaction_NotAdmitted_ItemIEs__value *)0)->present), - asn_MAP_value_tag2el_12, +static asn_CHOICE_specifics_t asn_SPC_value_specs_36 = { + sizeof(struct E2nodeComponentConfigUpdate_ItemIEs__value), + offsetof(struct E2nodeComponentConfigUpdate_ItemIEs__value, _asn_ctx), + offsetof(struct E2nodeComponentConfigUpdate_ItemIEs__value, present), + sizeof(((struct E2nodeComponentConfigUpdate_ItemIEs__value *)0)->present), + asn_MAP_value_tag2el_36, 1, /* Count of tags in the map */ 0, 0, -1 /* Extensions start */ }; static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_12 = { +asn_TYPE_descriptor_t asn_DEF_value_36 = { "value", "value", &asn_OP_OPEN_TYPE, @@ -5971,97 +8126,98 @@ asn_TYPE_descriptor_t asn_DEF_value_12 = { 0, /* No tags (pointer) */ 0, /* No tags (count) */ { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_12, + asn_MBR_value_36, 1, /* Elements count */ - &asn_SPC_value_specs_12 /* Additional specs */ + &asn_SPC_value_specs_36 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_RICaction_NotAdmitted_ItemIEs_9[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICaction_NotAdmitted_ItemIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, +asn_TYPE_member_t asn_MBR_E2nodeComponentConfigUpdate_ItemIEs_33[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigUpdate_ItemIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_ProtocolIE_ID, 0, - { 0, &asn_PER_memb_id_constr_10, memb_id_constraint_9 }, + { &asn_OER_memb_id_constr_34, &asn_PER_memb_id_constr_34, memb_id_constraint_33 }, 0, 0, /* No default value */ "id" }, - { ATF_NOFLAGS, 0, offsetof(struct RICaction_NotAdmitted_ItemIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigUpdate_ItemIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_Criticality, - select_RICaction_NotAdmitted_ItemIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_11, memb_criticality_constraint_9 }, + select_E2nodeComponentConfigUpdate_ItemIEs_criticality_type, + { &asn_OER_memb_criticality_constr_35, &asn_PER_memb_criticality_constr_35, memb_criticality_constraint_33 }, 0, 0, /* No default value */ "criticality" }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICaction_NotAdmitted_ItemIEs, value), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_value_12, - select_RICaction_NotAdmitted_ItemIEs_value_type, - { 0, &asn_PER_memb_value_constr_12, memb_value_constraint_9 }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigUpdate_ItemIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_36, + select_E2nodeComponentConfigUpdate_ItemIEs_value_type, + { &asn_OER_memb_value_constr_36, &asn_PER_memb_value_constr_36, memb_value_constraint_33 }, 0, 0, /* No default value */ "value" }, }; -static const ber_tlv_tag_t asn_DEF_RICaction_NotAdmitted_ItemIEs_tags_9[] = { +static const ber_tlv_tag_t asn_DEF_E2nodeComponentConfigUpdate_ItemIEs_tags_33[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -static const asn_TYPE_tag2member_t asn_MAP_RICaction_NotAdmitted_ItemIEs_tag2el_9[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +static const asn_TYPE_tag2member_t asn_MAP_E2nodeComponentConfigUpdate_ItemIEs_tag2el_33[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ }; -asn_SEQUENCE_specifics_t asn_SPC_RICaction_NotAdmitted_ItemIEs_specs_9 = { - sizeof(struct RICaction_NotAdmitted_ItemIEs), - offsetof(struct RICaction_NotAdmitted_ItemIEs, _asn_ctx), - asn_MAP_RICaction_NotAdmitted_ItemIEs_tag2el_9, - 2, /* Count of tags in the map */ +asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigUpdate_ItemIEs_specs_33 = { + sizeof(struct E2nodeComponentConfigUpdate_ItemIEs), + offsetof(struct E2nodeComponentConfigUpdate_ItemIEs, _asn_ctx), + asn_MAP_E2nodeComponentConfigUpdate_ItemIEs_tag2el_33, + 3, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; -asn_TYPE_descriptor_t asn_DEF_RICaction_NotAdmitted_ItemIEs = { - "RICaction-NotAdmitted-ItemIEs", - "RICaction-NotAdmitted-ItemIEs", +asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigUpdate_ItemIEs = { + "E2nodeComponentConfigUpdate-ItemIEs", + "E2nodeComponentConfigUpdate-ItemIEs", &asn_OP_SEQUENCE, - asn_DEF_RICaction_NotAdmitted_ItemIEs_tags_9, - sizeof(asn_DEF_RICaction_NotAdmitted_ItemIEs_tags_9) - /sizeof(asn_DEF_RICaction_NotAdmitted_ItemIEs_tags_9[0]), /* 1 */ - asn_DEF_RICaction_NotAdmitted_ItemIEs_tags_9, /* Same as above */ - sizeof(asn_DEF_RICaction_NotAdmitted_ItemIEs_tags_9) - /sizeof(asn_DEF_RICaction_NotAdmitted_ItemIEs_tags_9[0]), /* 1 */ + asn_DEF_E2nodeComponentConfigUpdate_ItemIEs_tags_33, + sizeof(asn_DEF_E2nodeComponentConfigUpdate_ItemIEs_tags_33) + /sizeof(asn_DEF_E2nodeComponentConfigUpdate_ItemIEs_tags_33[0]), /* 1 */ + asn_DEF_E2nodeComponentConfigUpdate_ItemIEs_tags_33, /* Same as above */ + sizeof(asn_DEF_E2nodeComponentConfigUpdate_ItemIEs_tags_33) + /sizeof(asn_DEF_E2nodeComponentConfigUpdate_ItemIEs_tags_33[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICaction_NotAdmitted_ItemIEs_9, + asn_MBR_E2nodeComponentConfigUpdate_ItemIEs_33, 3, /* Elements count */ - &asn_SPC_RICaction_NotAdmitted_ItemIEs_specs_9 /* Additional specs */ + &asn_SPC_E2nodeComponentConfigUpdate_ItemIEs_specs_33 /* Additional specs */ }; -static asn_TYPE_member_t asn_MBR_value_16[] = { - { ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdate_ItemIEs__value, choice.E2connectionUpdate_Item), +static asn_TYPE_member_t asn_MBR_value_40[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigRemoval_ItemIEs__value, choice.E2nodeComponentConfigRemoval_Item), (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, - &asn_DEF_E2connectionUpdate_Item, + &asn_DEF_E2nodeComponentConfigRemoval_Item, 0, { 0, 0, 0 }, 0, 0, /* No default value */ - "E2connectionUpdate-Item" + "E2nodeComponentConfigRemoval-Item" }, }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_16[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* E2connectionUpdate-Item */ +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_40[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* E2nodeComponentConfigRemoval-Item */ }; -static asn_CHOICE_specifics_t asn_SPC_value_specs_16 = { - sizeof(struct E2connectionUpdate_ItemIEs__value), - offsetof(struct E2connectionUpdate_ItemIEs__value, _asn_ctx), - offsetof(struct E2connectionUpdate_ItemIEs__value, present), - sizeof(((struct E2connectionUpdate_ItemIEs__value *)0)->present), - asn_MAP_value_tag2el_16, +static asn_CHOICE_specifics_t asn_SPC_value_specs_40 = { + sizeof(struct E2nodeComponentConfigRemoval_ItemIEs__value), + offsetof(struct E2nodeComponentConfigRemoval_ItemIEs__value, _asn_ctx), + offsetof(struct E2nodeComponentConfigRemoval_ItemIEs__value, present), + sizeof(((struct E2nodeComponentConfigRemoval_ItemIEs__value *)0)->present), + asn_MAP_value_tag2el_40, 1, /* Count of tags in the map */ 0, 0, -1 /* Extensions start */ }; static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_16 = { +asn_TYPE_descriptor_t asn_DEF_value_40 = { "value", "value", &asn_OP_OPEN_TYPE, @@ -6070,97 +8226,98 @@ asn_TYPE_descriptor_t asn_DEF_value_16 = { 0, /* No tags (pointer) */ 0, /* No tags (count) */ { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_16, + asn_MBR_value_40, 1, /* Elements count */ - &asn_SPC_value_specs_16 /* Additional specs */ + &asn_SPC_value_specs_40 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_E2connectionUpdate_ItemIEs_13[] = { - { ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdate_ItemIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, +asn_TYPE_member_t asn_MBR_E2nodeComponentConfigRemoval_ItemIEs_37[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigRemoval_ItemIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_ProtocolIE_ID, 0, - { 0, &asn_PER_memb_id_constr_14, memb_id_constraint_13 }, + { &asn_OER_memb_id_constr_38, &asn_PER_memb_id_constr_38, memb_id_constraint_37 }, 0, 0, /* No default value */ "id" }, - { ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdate_ItemIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigRemoval_ItemIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_Criticality, - select_E2connectionUpdate_ItemIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_15, memb_criticality_constraint_13 }, + select_E2nodeComponentConfigRemoval_ItemIEs_criticality_type, + { &asn_OER_memb_criticality_constr_39, &asn_PER_memb_criticality_constr_39, memb_criticality_constraint_37 }, 0, 0, /* No default value */ "criticality" }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdate_ItemIEs, value), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_value_16, - select_E2connectionUpdate_ItemIEs_value_type, - { 0, &asn_PER_memb_value_constr_16, memb_value_constraint_13 }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigRemoval_ItemIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_40, + select_E2nodeComponentConfigRemoval_ItemIEs_value_type, + { &asn_OER_memb_value_constr_40, &asn_PER_memb_value_constr_40, memb_value_constraint_37 }, 0, 0, /* No default value */ "value" }, }; -static const ber_tlv_tag_t asn_DEF_E2connectionUpdate_ItemIEs_tags_13[] = { +static const ber_tlv_tag_t asn_DEF_E2nodeComponentConfigRemoval_ItemIEs_tags_37[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -static const asn_TYPE_tag2member_t asn_MAP_E2connectionUpdate_ItemIEs_tag2el_13[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +static const asn_TYPE_tag2member_t asn_MAP_E2nodeComponentConfigRemoval_ItemIEs_tag2el_37[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ }; -asn_SEQUENCE_specifics_t asn_SPC_E2connectionUpdate_ItemIEs_specs_13 = { - sizeof(struct E2connectionUpdate_ItemIEs), - offsetof(struct E2connectionUpdate_ItemIEs, _asn_ctx), - asn_MAP_E2connectionUpdate_ItemIEs_tag2el_13, - 2, /* Count of tags in the map */ +asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigRemoval_ItemIEs_specs_37 = { + sizeof(struct E2nodeComponentConfigRemoval_ItemIEs), + offsetof(struct E2nodeComponentConfigRemoval_ItemIEs, _asn_ctx), + asn_MAP_E2nodeComponentConfigRemoval_ItemIEs_tag2el_37, + 3, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; -asn_TYPE_descriptor_t asn_DEF_E2connectionUpdate_ItemIEs = { - "E2connectionUpdate-ItemIEs", - "E2connectionUpdate-ItemIEs", +asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigRemoval_ItemIEs = { + "E2nodeComponentConfigRemoval-ItemIEs", + "E2nodeComponentConfigRemoval-ItemIEs", &asn_OP_SEQUENCE, - asn_DEF_E2connectionUpdate_ItemIEs_tags_13, - sizeof(asn_DEF_E2connectionUpdate_ItemIEs_tags_13) - /sizeof(asn_DEF_E2connectionUpdate_ItemIEs_tags_13[0]), /* 1 */ - asn_DEF_E2connectionUpdate_ItemIEs_tags_13, /* Same as above */ - sizeof(asn_DEF_E2connectionUpdate_ItemIEs_tags_13) - /sizeof(asn_DEF_E2connectionUpdate_ItemIEs_tags_13[0]), /* 1 */ + asn_DEF_E2nodeComponentConfigRemoval_ItemIEs_tags_37, + sizeof(asn_DEF_E2nodeComponentConfigRemoval_ItemIEs_tags_37) + /sizeof(asn_DEF_E2nodeComponentConfigRemoval_ItemIEs_tags_37[0]), /* 1 */ + asn_DEF_E2nodeComponentConfigRemoval_ItemIEs_tags_37, /* Same as above */ + sizeof(asn_DEF_E2nodeComponentConfigRemoval_ItemIEs_tags_37) + /sizeof(asn_DEF_E2nodeComponentConfigRemoval_ItemIEs_tags_37[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_E2connectionUpdate_ItemIEs_13, + asn_MBR_E2nodeComponentConfigRemoval_ItemIEs_37, 3, /* Elements count */ - &asn_SPC_E2connectionUpdate_ItemIEs_specs_13 /* Additional specs */ + &asn_SPC_E2nodeComponentConfigRemoval_ItemIEs_specs_37 /* Additional specs */ }; -static asn_TYPE_member_t asn_MBR_value_20[] = { - { ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdateRemove_ItemIEs__value, choice.E2connectionUpdateRemove_Item), +static asn_TYPE_member_t asn_MBR_value_44[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2nodeTNLassociationRemoval_ItemIEs__value, choice.E2nodeTNLassociationRemoval_Item), (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, - &asn_DEF_E2connectionUpdateRemove_Item, + &asn_DEF_E2nodeTNLassociationRemoval_Item, 0, { 0, 0, 0 }, 0, 0, /* No default value */ - "E2connectionUpdateRemove-Item" + "E2nodeTNLassociationRemoval-Item" }, }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_20[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* E2connectionUpdateRemove-Item */ +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_44[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* E2nodeTNLassociationRemoval-Item */ }; -static asn_CHOICE_specifics_t asn_SPC_value_specs_20 = { - sizeof(struct E2connectionUpdateRemove_ItemIEs__value), - offsetof(struct E2connectionUpdateRemove_ItemIEs__value, _asn_ctx), - offsetof(struct E2connectionUpdateRemove_ItemIEs__value, present), - sizeof(((struct E2connectionUpdateRemove_ItemIEs__value *)0)->present), - asn_MAP_value_tag2el_20, +static asn_CHOICE_specifics_t asn_SPC_value_specs_44 = { + sizeof(struct E2nodeTNLassociationRemoval_ItemIEs__value), + offsetof(struct E2nodeTNLassociationRemoval_ItemIEs__value, _asn_ctx), + offsetof(struct E2nodeTNLassociationRemoval_ItemIEs__value, present), + sizeof(((struct E2nodeTNLassociationRemoval_ItemIEs__value *)0)->present), + asn_MAP_value_tag2el_44, 1, /* Count of tags in the map */ 0, 0, -1 /* Extensions start */ }; static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_20 = { +asn_TYPE_descriptor_t asn_DEF_value_44 = { "value", "value", &asn_OP_OPEN_TYPE, @@ -6169,97 +8326,98 @@ asn_TYPE_descriptor_t asn_DEF_value_20 = { 0, /* No tags (pointer) */ 0, /* No tags (count) */ { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_20, + asn_MBR_value_44, 1, /* Elements count */ - &asn_SPC_value_specs_20 /* Additional specs */ + &asn_SPC_value_specs_44 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_E2connectionUpdateRemove_ItemIEs_17[] = { - { ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdateRemove_ItemIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, +asn_TYPE_member_t asn_MBR_E2nodeTNLassociationRemoval_ItemIEs_41[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2nodeTNLassociationRemoval_ItemIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_ProtocolIE_ID, 0, - { 0, &asn_PER_memb_id_constr_18, memb_id_constraint_17 }, + { &asn_OER_memb_id_constr_42, &asn_PER_memb_id_constr_42, memb_id_constraint_41 }, 0, 0, /* No default value */ "id" }, - { ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdateRemove_ItemIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, + { ATF_NOFLAGS, 0, offsetof(struct E2nodeTNLassociationRemoval_ItemIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_Criticality, - select_E2connectionUpdateRemove_ItemIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_19, memb_criticality_constraint_17 }, + select_E2nodeTNLassociationRemoval_ItemIEs_criticality_type, + { &asn_OER_memb_criticality_constr_43, &asn_PER_memb_criticality_constr_43, memb_criticality_constraint_41 }, 0, 0, /* No default value */ "criticality" }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdateRemove_ItemIEs, value), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_value_20, - select_E2connectionUpdateRemove_ItemIEs_value_type, - { 0, &asn_PER_memb_value_constr_20, memb_value_constraint_17 }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E2nodeTNLassociationRemoval_ItemIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_44, + select_E2nodeTNLassociationRemoval_ItemIEs_value_type, + { &asn_OER_memb_value_constr_44, &asn_PER_memb_value_constr_44, memb_value_constraint_41 }, 0, 0, /* No default value */ "value" }, }; -static const ber_tlv_tag_t asn_DEF_E2connectionUpdateRemove_ItemIEs_tags_17[] = { +static const ber_tlv_tag_t asn_DEF_E2nodeTNLassociationRemoval_ItemIEs_tags_41[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -static const asn_TYPE_tag2member_t asn_MAP_E2connectionUpdateRemove_ItemIEs_tag2el_17[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +static const asn_TYPE_tag2member_t asn_MAP_E2nodeTNLassociationRemoval_ItemIEs_tag2el_41[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ }; -asn_SEQUENCE_specifics_t asn_SPC_E2connectionUpdateRemove_ItemIEs_specs_17 = { - sizeof(struct E2connectionUpdateRemove_ItemIEs), - offsetof(struct E2connectionUpdateRemove_ItemIEs, _asn_ctx), - asn_MAP_E2connectionUpdateRemove_ItemIEs_tag2el_17, - 2, /* Count of tags in the map */ +asn_SEQUENCE_specifics_t asn_SPC_E2nodeTNLassociationRemoval_ItemIEs_specs_41 = { + sizeof(struct E2nodeTNLassociationRemoval_ItemIEs), + offsetof(struct E2nodeTNLassociationRemoval_ItemIEs, _asn_ctx), + asn_MAP_E2nodeTNLassociationRemoval_ItemIEs_tag2el_41, + 3, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; -asn_TYPE_descriptor_t asn_DEF_E2connectionUpdateRemove_ItemIEs = { - "E2connectionUpdateRemove-ItemIEs", - "E2connectionUpdateRemove-ItemIEs", +asn_TYPE_descriptor_t asn_DEF_E2nodeTNLassociationRemoval_ItemIEs = { + "E2nodeTNLassociationRemoval-ItemIEs", + "E2nodeTNLassociationRemoval-ItemIEs", &asn_OP_SEQUENCE, - asn_DEF_E2connectionUpdateRemove_ItemIEs_tags_17, - sizeof(asn_DEF_E2connectionUpdateRemove_ItemIEs_tags_17) - /sizeof(asn_DEF_E2connectionUpdateRemove_ItemIEs_tags_17[0]), /* 1 */ - asn_DEF_E2connectionUpdateRemove_ItemIEs_tags_17, /* Same as above */ - sizeof(asn_DEF_E2connectionUpdateRemove_ItemIEs_tags_17) - /sizeof(asn_DEF_E2connectionUpdateRemove_ItemIEs_tags_17[0]), /* 1 */ + asn_DEF_E2nodeTNLassociationRemoval_ItemIEs_tags_41, + sizeof(asn_DEF_E2nodeTNLassociationRemoval_ItemIEs_tags_41) + /sizeof(asn_DEF_E2nodeTNLassociationRemoval_ItemIEs_tags_41[0]), /* 1 */ + asn_DEF_E2nodeTNLassociationRemoval_ItemIEs_tags_41, /* Same as above */ + sizeof(asn_DEF_E2nodeTNLassociationRemoval_ItemIEs_tags_41) + /sizeof(asn_DEF_E2nodeTNLassociationRemoval_ItemIEs_tags_41[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_E2connectionUpdateRemove_ItemIEs_17, + asn_MBR_E2nodeTNLassociationRemoval_ItemIEs_41, 3, /* Elements count */ - &asn_SPC_E2connectionUpdateRemove_ItemIEs_specs_17 /* Additional specs */ + &asn_SPC_E2nodeTNLassociationRemoval_ItemIEs_specs_41 /* Additional specs */ }; -static asn_TYPE_member_t asn_MBR_value_24[] = { - { ATF_NOFLAGS, 0, offsetof(struct E2connectionSetupFailed_ItemIEs__value, choice.E2connectionSetupFailed_Item), +static asn_TYPE_member_t asn_MBR_value_48[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigAdditionAck_ItemIEs__value, choice.E2nodeComponentConfigAdditionAck_Item), (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, - &asn_DEF_E2connectionSetupFailed_Item, + &asn_DEF_E2nodeComponentConfigAdditionAck_Item, 0, { 0, 0, 0 }, 0, 0, /* No default value */ - "E2connectionSetupFailed-Item" + "E2nodeComponentConfigAdditionAck-Item" }, }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_24[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* E2connectionSetupFailed-Item */ +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_48[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* E2nodeComponentConfigAdditionAck-Item */ }; -static asn_CHOICE_specifics_t asn_SPC_value_specs_24 = { - sizeof(struct E2connectionSetupFailed_ItemIEs__value), - offsetof(struct E2connectionSetupFailed_ItemIEs__value, _asn_ctx), - offsetof(struct E2connectionSetupFailed_ItemIEs__value, present), - sizeof(((struct E2connectionSetupFailed_ItemIEs__value *)0)->present), - asn_MAP_value_tag2el_24, +static asn_CHOICE_specifics_t asn_SPC_value_specs_48 = { + sizeof(struct E2nodeComponentConfigAdditionAck_ItemIEs__value), + offsetof(struct E2nodeComponentConfigAdditionAck_ItemIEs__value, _asn_ctx), + offsetof(struct E2nodeComponentConfigAdditionAck_ItemIEs__value, present), + sizeof(((struct E2nodeComponentConfigAdditionAck_ItemIEs__value *)0)->present), + asn_MAP_value_tag2el_48, 1, /* Count of tags in the map */ 0, 0, -1 /* Extensions start */ }; static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_24 = { +asn_TYPE_descriptor_t asn_DEF_value_48 = { "value", "value", &asn_OP_OPEN_TYPE, @@ -6268,97 +8426,98 @@ asn_TYPE_descriptor_t asn_DEF_value_24 = { 0, /* No tags (pointer) */ 0, /* No tags (count) */ { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_24, + asn_MBR_value_48, 1, /* Elements count */ - &asn_SPC_value_specs_24 /* Additional specs */ + &asn_SPC_value_specs_48 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_E2connectionSetupFailed_ItemIEs_21[] = { - { ATF_NOFLAGS, 0, offsetof(struct E2connectionSetupFailed_ItemIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, +asn_TYPE_member_t asn_MBR_E2nodeComponentConfigAdditionAck_ItemIEs_45[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigAdditionAck_ItemIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_ProtocolIE_ID, 0, - { 0, &asn_PER_memb_id_constr_22, memb_id_constraint_21 }, + { &asn_OER_memb_id_constr_46, &asn_PER_memb_id_constr_46, memb_id_constraint_45 }, 0, 0, /* No default value */ "id" }, - { ATF_NOFLAGS, 0, offsetof(struct E2connectionSetupFailed_ItemIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigAdditionAck_ItemIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_Criticality, - select_E2connectionSetupFailed_ItemIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_23, memb_criticality_constraint_21 }, + select_E2nodeComponentConfigAdditionAck_ItemIEs_criticality_type, + { &asn_OER_memb_criticality_constr_47, &asn_PER_memb_criticality_constr_47, memb_criticality_constraint_45 }, 0, 0, /* No default value */ "criticality" }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E2connectionSetupFailed_ItemIEs, value), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_value_24, - select_E2connectionSetupFailed_ItemIEs_value_type, - { 0, &asn_PER_memb_value_constr_24, memb_value_constraint_21 }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigAdditionAck_ItemIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_48, + select_E2nodeComponentConfigAdditionAck_ItemIEs_value_type, + { &asn_OER_memb_value_constr_48, &asn_PER_memb_value_constr_48, memb_value_constraint_45 }, 0, 0, /* No default value */ "value" }, }; -static const ber_tlv_tag_t asn_DEF_E2connectionSetupFailed_ItemIEs_tags_21[] = { +static const ber_tlv_tag_t asn_DEF_E2nodeComponentConfigAdditionAck_ItemIEs_tags_45[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -static const asn_TYPE_tag2member_t asn_MAP_E2connectionSetupFailed_ItemIEs_tag2el_21[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +static const asn_TYPE_tag2member_t asn_MAP_E2nodeComponentConfigAdditionAck_ItemIEs_tag2el_45[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ }; -asn_SEQUENCE_specifics_t asn_SPC_E2connectionSetupFailed_ItemIEs_specs_21 = { - sizeof(struct E2connectionSetupFailed_ItemIEs), - offsetof(struct E2connectionSetupFailed_ItemIEs, _asn_ctx), - asn_MAP_E2connectionSetupFailed_ItemIEs_tag2el_21, - 2, /* Count of tags in the map */ +asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigAdditionAck_ItemIEs_specs_45 = { + sizeof(struct E2nodeComponentConfigAdditionAck_ItemIEs), + offsetof(struct E2nodeComponentConfigAdditionAck_ItemIEs, _asn_ctx), + asn_MAP_E2nodeComponentConfigAdditionAck_ItemIEs_tag2el_45, + 3, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; -asn_TYPE_descriptor_t asn_DEF_E2connectionSetupFailed_ItemIEs = { - "E2connectionSetupFailed-ItemIEs", - "E2connectionSetupFailed-ItemIEs", +asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigAdditionAck_ItemIEs = { + "E2nodeComponentConfigAdditionAck-ItemIEs", + "E2nodeComponentConfigAdditionAck-ItemIEs", &asn_OP_SEQUENCE, - asn_DEF_E2connectionSetupFailed_ItemIEs_tags_21, - sizeof(asn_DEF_E2connectionSetupFailed_ItemIEs_tags_21) - /sizeof(asn_DEF_E2connectionSetupFailed_ItemIEs_tags_21[0]), /* 1 */ - asn_DEF_E2connectionSetupFailed_ItemIEs_tags_21, /* Same as above */ - sizeof(asn_DEF_E2connectionSetupFailed_ItemIEs_tags_21) - /sizeof(asn_DEF_E2connectionSetupFailed_ItemIEs_tags_21[0]), /* 1 */ + asn_DEF_E2nodeComponentConfigAdditionAck_ItemIEs_tags_45, + sizeof(asn_DEF_E2nodeComponentConfigAdditionAck_ItemIEs_tags_45) + /sizeof(asn_DEF_E2nodeComponentConfigAdditionAck_ItemIEs_tags_45[0]), /* 1 */ + asn_DEF_E2nodeComponentConfigAdditionAck_ItemIEs_tags_45, /* Same as above */ + sizeof(asn_DEF_E2nodeComponentConfigAdditionAck_ItemIEs_tags_45) + /sizeof(asn_DEF_E2nodeComponentConfigAdditionAck_ItemIEs_tags_45[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_E2connectionSetupFailed_ItemIEs_21, + asn_MBR_E2nodeComponentConfigAdditionAck_ItemIEs_45, 3, /* Elements count */ - &asn_SPC_E2connectionSetupFailed_ItemIEs_specs_21 /* Additional specs */ + &asn_SPC_E2nodeComponentConfigAdditionAck_ItemIEs_specs_45 /* Additional specs */ }; -static asn_TYPE_member_t asn_MBR_value_28[] = { - { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigUpdate_ItemIEs__value, choice.E2nodeComponentConfigUpdate_Item), +static asn_TYPE_member_t asn_MBR_value_52[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigUpdateAck_ItemIEs__value, choice.E2nodeComponentConfigUpdateAck_Item), (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, - &asn_DEF_E2nodeComponentConfigUpdate_Item, + &asn_DEF_E2nodeComponentConfigUpdateAck_Item, 0, { 0, 0, 0 }, 0, 0, /* No default value */ - "E2nodeComponentConfigUpdate-Item" + "E2nodeComponentConfigUpdateAck-Item" }, }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_28[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* E2nodeComponentConfigUpdate-Item */ +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_52[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* E2nodeComponentConfigUpdateAck-Item */ }; -static asn_CHOICE_specifics_t asn_SPC_value_specs_28 = { - sizeof(struct E2nodeComponentConfigUpdate_ItemIEs__value), - offsetof(struct E2nodeComponentConfigUpdate_ItemIEs__value, _asn_ctx), - offsetof(struct E2nodeComponentConfigUpdate_ItemIEs__value, present), - sizeof(((struct E2nodeComponentConfigUpdate_ItemIEs__value *)0)->present), - asn_MAP_value_tag2el_28, +static asn_CHOICE_specifics_t asn_SPC_value_specs_52 = { + sizeof(struct E2nodeComponentConfigUpdateAck_ItemIEs__value), + offsetof(struct E2nodeComponentConfigUpdateAck_ItemIEs__value, _asn_ctx), + offsetof(struct E2nodeComponentConfigUpdateAck_ItemIEs__value, present), + sizeof(((struct E2nodeComponentConfigUpdateAck_ItemIEs__value *)0)->present), + asn_MAP_value_tag2el_52, 1, /* Count of tags in the map */ 0, 0, -1 /* Extensions start */ }; static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_28 = { +asn_TYPE_descriptor_t asn_DEF_value_52 = { "value", "value", &asn_OP_OPEN_TYPE, @@ -6367,97 +8526,98 @@ asn_TYPE_descriptor_t asn_DEF_value_28 = { 0, /* No tags (pointer) */ 0, /* No tags (count) */ { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_28, + asn_MBR_value_52, 1, /* Elements count */ - &asn_SPC_value_specs_28 /* Additional specs */ + &asn_SPC_value_specs_52 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_E2nodeComponentConfigUpdate_ItemIEs_25[] = { - { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigUpdate_ItemIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, +asn_TYPE_member_t asn_MBR_E2nodeComponentConfigUpdateAck_ItemIEs_49[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigUpdateAck_ItemIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_ProtocolIE_ID, 0, - { 0, &asn_PER_memb_id_constr_26, memb_id_constraint_25 }, + { &asn_OER_memb_id_constr_50, &asn_PER_memb_id_constr_50, memb_id_constraint_49 }, 0, 0, /* No default value */ "id" }, - { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigUpdate_ItemIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigUpdateAck_ItemIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_Criticality, - select_E2nodeComponentConfigUpdate_ItemIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_27, memb_criticality_constraint_25 }, + select_E2nodeComponentConfigUpdateAck_ItemIEs_criticality_type, + { &asn_OER_memb_criticality_constr_51, &asn_PER_memb_criticality_constr_51, memb_criticality_constraint_49 }, 0, 0, /* No default value */ "criticality" }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigUpdate_ItemIEs, value), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_value_28, - select_E2nodeComponentConfigUpdate_ItemIEs_value_type, - { 0, &asn_PER_memb_value_constr_28, memb_value_constraint_25 }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigUpdateAck_ItemIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_52, + select_E2nodeComponentConfigUpdateAck_ItemIEs_value_type, + { &asn_OER_memb_value_constr_52, &asn_PER_memb_value_constr_52, memb_value_constraint_49 }, 0, 0, /* No default value */ "value" }, }; -static const ber_tlv_tag_t asn_DEF_E2nodeComponentConfigUpdate_ItemIEs_tags_25[] = { +static const ber_tlv_tag_t asn_DEF_E2nodeComponentConfigUpdateAck_ItemIEs_tags_49[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -static const asn_TYPE_tag2member_t asn_MAP_E2nodeComponentConfigUpdate_ItemIEs_tag2el_25[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +static const asn_TYPE_tag2member_t asn_MAP_E2nodeComponentConfigUpdateAck_ItemIEs_tag2el_49[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ }; -asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigUpdate_ItemIEs_specs_25 = { - sizeof(struct E2nodeComponentConfigUpdate_ItemIEs), - offsetof(struct E2nodeComponentConfigUpdate_ItemIEs, _asn_ctx), - asn_MAP_E2nodeComponentConfigUpdate_ItemIEs_tag2el_25, - 2, /* Count of tags in the map */ +asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigUpdateAck_ItemIEs_specs_49 = { + sizeof(struct E2nodeComponentConfigUpdateAck_ItemIEs), + offsetof(struct E2nodeComponentConfigUpdateAck_ItemIEs, _asn_ctx), + asn_MAP_E2nodeComponentConfigUpdateAck_ItemIEs_tag2el_49, + 3, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; -asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigUpdate_ItemIEs = { - "E2nodeComponentConfigUpdate-ItemIEs", - "E2nodeComponentConfigUpdate-ItemIEs", +asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigUpdateAck_ItemIEs = { + "E2nodeComponentConfigUpdateAck-ItemIEs", + "E2nodeComponentConfigUpdateAck-ItemIEs", &asn_OP_SEQUENCE, - asn_DEF_E2nodeComponentConfigUpdate_ItemIEs_tags_25, - sizeof(asn_DEF_E2nodeComponentConfigUpdate_ItemIEs_tags_25) - /sizeof(asn_DEF_E2nodeComponentConfigUpdate_ItemIEs_tags_25[0]), /* 1 */ - asn_DEF_E2nodeComponentConfigUpdate_ItemIEs_tags_25, /* Same as above */ - sizeof(asn_DEF_E2nodeComponentConfigUpdate_ItemIEs_tags_25) - /sizeof(asn_DEF_E2nodeComponentConfigUpdate_ItemIEs_tags_25[0]), /* 1 */ + asn_DEF_E2nodeComponentConfigUpdateAck_ItemIEs_tags_49, + sizeof(asn_DEF_E2nodeComponentConfigUpdateAck_ItemIEs_tags_49) + /sizeof(asn_DEF_E2nodeComponentConfigUpdateAck_ItemIEs_tags_49[0]), /* 1 */ + asn_DEF_E2nodeComponentConfigUpdateAck_ItemIEs_tags_49, /* Same as above */ + sizeof(asn_DEF_E2nodeComponentConfigUpdateAck_ItemIEs_tags_49) + /sizeof(asn_DEF_E2nodeComponentConfigUpdateAck_ItemIEs_tags_49[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_E2nodeComponentConfigUpdate_ItemIEs_25, + asn_MBR_E2nodeComponentConfigUpdateAck_ItemIEs_49, 3, /* Elements count */ - &asn_SPC_E2nodeComponentConfigUpdate_ItemIEs_specs_25 /* Additional specs */ + &asn_SPC_E2nodeComponentConfigUpdateAck_ItemIEs_specs_49 /* Additional specs */ }; -static asn_TYPE_member_t asn_MBR_value_32[] = { - { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigUpdateAck_ItemIEs__value, choice.E2nodeComponentConfigUpdateAck_Item), +static asn_TYPE_member_t asn_MBR_value_56[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigRemovalAck_ItemIEs__value, choice.E2nodeComponentConfigRemovalAck_Item), (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, - &asn_DEF_E2nodeComponentConfigUpdateAck_Item, + &asn_DEF_E2nodeComponentConfigRemovalAck_Item, 0, { 0, 0, 0 }, 0, 0, /* No default value */ - "E2nodeComponentConfigUpdateAck-Item" + "E2nodeComponentConfigRemovalAck-Item" }, }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_32[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* E2nodeComponentConfigUpdateAck-Item */ +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_56[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* E2nodeComponentConfigRemovalAck-Item */ }; -static asn_CHOICE_specifics_t asn_SPC_value_specs_32 = { - sizeof(struct E2nodeComponentConfigUpdateAck_ItemIEs__value), - offsetof(struct E2nodeComponentConfigUpdateAck_ItemIEs__value, _asn_ctx), - offsetof(struct E2nodeComponentConfigUpdateAck_ItemIEs__value, present), - sizeof(((struct E2nodeComponentConfigUpdateAck_ItemIEs__value *)0)->present), - asn_MAP_value_tag2el_32, +static asn_CHOICE_specifics_t asn_SPC_value_specs_56 = { + sizeof(struct E2nodeComponentConfigRemovalAck_ItemIEs__value), + offsetof(struct E2nodeComponentConfigRemovalAck_ItemIEs__value, _asn_ctx), + offsetof(struct E2nodeComponentConfigRemovalAck_ItemIEs__value, present), + sizeof(((struct E2nodeComponentConfigRemovalAck_ItemIEs__value *)0)->present), + asn_MAP_value_tag2el_56, 1, /* Count of tags in the map */ 0, 0, -1 /* Extensions start */ }; static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_32 = { +asn_TYPE_descriptor_t asn_DEF_value_56 = { "value", "value", &asn_OP_OPEN_TYPE, @@ -6466,72 +8626,73 @@ asn_TYPE_descriptor_t asn_DEF_value_32 = { 0, /* No tags (pointer) */ 0, /* No tags (count) */ { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_32, + asn_MBR_value_56, 1, /* Elements count */ - &asn_SPC_value_specs_32 /* Additional specs */ + &asn_SPC_value_specs_56 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_E2nodeComponentConfigUpdateAck_ItemIEs_29[] = { - { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigUpdateAck_ItemIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, +asn_TYPE_member_t asn_MBR_E2nodeComponentConfigRemovalAck_ItemIEs_53[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigRemovalAck_ItemIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_ProtocolIE_ID, 0, - { 0, &asn_PER_memb_id_constr_30, memb_id_constraint_29 }, + { &asn_OER_memb_id_constr_54, &asn_PER_memb_id_constr_54, memb_id_constraint_53 }, 0, 0, /* No default value */ "id" }, - { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigUpdateAck_ItemIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigRemovalAck_ItemIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_Criticality, - select_E2nodeComponentConfigUpdateAck_ItemIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_31, memb_criticality_constraint_29 }, + select_E2nodeComponentConfigRemovalAck_ItemIEs_criticality_type, + { &asn_OER_memb_criticality_constr_55, &asn_PER_memb_criticality_constr_55, memb_criticality_constraint_53 }, 0, 0, /* No default value */ "criticality" }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigUpdateAck_ItemIEs, value), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_value_32, - select_E2nodeComponentConfigUpdateAck_ItemIEs_value_type, - { 0, &asn_PER_memb_value_constr_32, memb_value_constraint_29 }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigRemovalAck_ItemIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_56, + select_E2nodeComponentConfigRemovalAck_ItemIEs_value_type, + { &asn_OER_memb_value_constr_56, &asn_PER_memb_value_constr_56, memb_value_constraint_53 }, 0, 0, /* No default value */ "value" }, }; -static const ber_tlv_tag_t asn_DEF_E2nodeComponentConfigUpdateAck_ItemIEs_tags_29[] = { +static const ber_tlv_tag_t asn_DEF_E2nodeComponentConfigRemovalAck_ItemIEs_tags_53[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -static const asn_TYPE_tag2member_t asn_MAP_E2nodeComponentConfigUpdateAck_ItemIEs_tag2el_29[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +static const asn_TYPE_tag2member_t asn_MAP_E2nodeComponentConfigRemovalAck_ItemIEs_tag2el_53[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ }; -asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigUpdateAck_ItemIEs_specs_29 = { - sizeof(struct E2nodeComponentConfigUpdateAck_ItemIEs), - offsetof(struct E2nodeComponentConfigUpdateAck_ItemIEs, _asn_ctx), - asn_MAP_E2nodeComponentConfigUpdateAck_ItemIEs_tag2el_29, - 2, /* Count of tags in the map */ +asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigRemovalAck_ItemIEs_specs_53 = { + sizeof(struct E2nodeComponentConfigRemovalAck_ItemIEs), + offsetof(struct E2nodeComponentConfigRemovalAck_ItemIEs, _asn_ctx), + asn_MAP_E2nodeComponentConfigRemovalAck_ItemIEs_tag2el_53, + 3, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; -asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigUpdateAck_ItemIEs = { - "E2nodeComponentConfigUpdateAck-ItemIEs", - "E2nodeComponentConfigUpdateAck-ItemIEs", +asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigRemovalAck_ItemIEs = { + "E2nodeComponentConfigRemovalAck-ItemIEs", + "E2nodeComponentConfigRemovalAck-ItemIEs", &asn_OP_SEQUENCE, - asn_DEF_E2nodeComponentConfigUpdateAck_ItemIEs_tags_29, - sizeof(asn_DEF_E2nodeComponentConfigUpdateAck_ItemIEs_tags_29) - /sizeof(asn_DEF_E2nodeComponentConfigUpdateAck_ItemIEs_tags_29[0]), /* 1 */ - asn_DEF_E2nodeComponentConfigUpdateAck_ItemIEs_tags_29, /* Same as above */ - sizeof(asn_DEF_E2nodeComponentConfigUpdateAck_ItemIEs_tags_29) - /sizeof(asn_DEF_E2nodeComponentConfigUpdateAck_ItemIEs_tags_29[0]), /* 1 */ + asn_DEF_E2nodeComponentConfigRemovalAck_ItemIEs_tags_53, + sizeof(asn_DEF_E2nodeComponentConfigRemovalAck_ItemIEs_tags_53) + /sizeof(asn_DEF_E2nodeComponentConfigRemovalAck_ItemIEs_tags_53[0]), /* 1 */ + asn_DEF_E2nodeComponentConfigRemovalAck_ItemIEs_tags_53, /* Same as above */ + sizeof(asn_DEF_E2nodeComponentConfigRemovalAck_ItemIEs_tags_53) + /sizeof(asn_DEF_E2nodeComponentConfigRemovalAck_ItemIEs_tags_53[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_E2nodeComponentConfigUpdateAck_ItemIEs_29, + asn_MBR_E2nodeComponentConfigRemovalAck_ItemIEs_53, 3, /* Elements count */ - &asn_SPC_E2nodeComponentConfigUpdateAck_ItemIEs_specs_29 /* Additional specs */ + &asn_SPC_E2nodeComponentConfigRemovalAck_ItemIEs_specs_53 /* Additional specs */ }; -static asn_TYPE_member_t asn_MBR_value_36[] = { +static asn_TYPE_member_t asn_MBR_value_60[] = { { ATF_NOFLAGS, 0, offsetof(struct RANfunction_ItemIEs__value, choice.RANfunction_Item), (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -6542,21 +8703,21 @@ static asn_TYPE_member_t asn_MBR_value_36[] = { "RANfunction-Item" }, }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_36[] = { +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_60[] = { { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RANfunction-Item */ }; -static asn_CHOICE_specifics_t asn_SPC_value_specs_36 = { +static asn_CHOICE_specifics_t asn_SPC_value_specs_60 = { sizeof(struct RANfunction_ItemIEs__value), offsetof(struct RANfunction_ItemIEs__value, _asn_ctx), offsetof(struct RANfunction_ItemIEs__value, present), sizeof(((struct RANfunction_ItemIEs__value *)0)->present), - asn_MAP_value_tag2el_36, + asn_MAP_value_tag2el_60, 1, /* Count of tags in the map */ 0, 0, -1 /* Extensions start */ }; static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_36 = { +asn_TYPE_descriptor_t asn_DEF_value_60 = { "value", "value", &asn_OP_OPEN_TYPE, @@ -6565,52 +8726,53 @@ asn_TYPE_descriptor_t asn_DEF_value_36 = { 0, /* No tags (pointer) */ 0, /* No tags (count) */ { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_36, + asn_MBR_value_60, 1, /* Elements count */ - &asn_SPC_value_specs_36 /* Additional specs */ + &asn_SPC_value_specs_60 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_RANfunction_ItemIEs_33[] = { +asn_TYPE_member_t asn_MBR_RANfunction_ItemIEs_57[] = { { ATF_NOFLAGS, 0, offsetof(struct RANfunction_ItemIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_ProtocolIE_ID, 0, - { 0, &asn_PER_memb_id_constr_34, memb_id_constraint_33 }, + { &asn_OER_memb_id_constr_58, &asn_PER_memb_id_constr_58, memb_id_constraint_57 }, 0, 0, /* No default value */ "id" }, { ATF_NOFLAGS, 0, offsetof(struct RANfunction_ItemIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_Criticality, select_RANfunction_ItemIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_35, memb_criticality_constraint_33 }, + { &asn_OER_memb_criticality_constr_59, &asn_PER_memb_criticality_constr_59, memb_criticality_constraint_57 }, 0, 0, /* No default value */ "criticality" }, { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RANfunction_ItemIEs, value), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_value_36, + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_60, select_RANfunction_ItemIEs_value_type, - { 0, &asn_PER_memb_value_constr_36, memb_value_constraint_33 }, + { &asn_OER_memb_value_constr_60, &asn_PER_memb_value_constr_60, memb_value_constraint_57 }, 0, 0, /* No default value */ "value" }, }; -static const ber_tlv_tag_t asn_DEF_RANfunction_ItemIEs_tags_33[] = { +static const ber_tlv_tag_t asn_DEF_RANfunction_ItemIEs_tags_57[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -static const asn_TYPE_tag2member_t asn_MAP_RANfunction_ItemIEs_tag2el_33[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +static const asn_TYPE_tag2member_t asn_MAP_RANfunction_ItemIEs_tag2el_57[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ }; -asn_SEQUENCE_specifics_t asn_SPC_RANfunction_ItemIEs_specs_33 = { +asn_SEQUENCE_specifics_t asn_SPC_RANfunction_ItemIEs_specs_57 = { sizeof(struct RANfunction_ItemIEs), offsetof(struct RANfunction_ItemIEs, _asn_ctx), - asn_MAP_RANfunction_ItemIEs_tag2el_33, - 2, /* Count of tags in the map */ + asn_MAP_RANfunction_ItemIEs_tag2el_57, + 3, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; @@ -6618,19 +8780,19 @@ asn_TYPE_descriptor_t asn_DEF_RANfunction_ItemIEs = { "RANfunction-ItemIEs", "RANfunction-ItemIEs", &asn_OP_SEQUENCE, - asn_DEF_RANfunction_ItemIEs_tags_33, - sizeof(asn_DEF_RANfunction_ItemIEs_tags_33) - /sizeof(asn_DEF_RANfunction_ItemIEs_tags_33[0]), /* 1 */ - asn_DEF_RANfunction_ItemIEs_tags_33, /* Same as above */ - sizeof(asn_DEF_RANfunction_ItemIEs_tags_33) - /sizeof(asn_DEF_RANfunction_ItemIEs_tags_33[0]), /* 1 */ + asn_DEF_RANfunction_ItemIEs_tags_57, + sizeof(asn_DEF_RANfunction_ItemIEs_tags_57) + /sizeof(asn_DEF_RANfunction_ItemIEs_tags_57[0]), /* 1 */ + asn_DEF_RANfunction_ItemIEs_tags_57, /* Same as above */ + sizeof(asn_DEF_RANfunction_ItemIEs_tags_57) + /sizeof(asn_DEF_RANfunction_ItemIEs_tags_57[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_RANfunction_ItemIEs_33, + asn_MBR_RANfunction_ItemIEs_57, 3, /* Elements count */ - &asn_SPC_RANfunction_ItemIEs_specs_33 /* Additional specs */ + &asn_SPC_RANfunction_ItemIEs_specs_57 /* Additional specs */ }; -static asn_TYPE_member_t asn_MBR_value_40[] = { +static asn_TYPE_member_t asn_MBR_value_64[] = { { ATF_NOFLAGS, 0, offsetof(struct RANfunctionID_ItemIEs__value, choice.RANfunctionID_Item), (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -6641,21 +8803,21 @@ static asn_TYPE_member_t asn_MBR_value_40[] = { "RANfunctionID-Item" }, }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_40[] = { +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_64[] = { { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RANfunctionID-Item */ }; -static asn_CHOICE_specifics_t asn_SPC_value_specs_40 = { +static asn_CHOICE_specifics_t asn_SPC_value_specs_64 = { sizeof(struct RANfunctionID_ItemIEs__value), offsetof(struct RANfunctionID_ItemIEs__value, _asn_ctx), offsetof(struct RANfunctionID_ItemIEs__value, present), sizeof(((struct RANfunctionID_ItemIEs__value *)0)->present), - asn_MAP_value_tag2el_40, + asn_MAP_value_tag2el_64, 1, /* Count of tags in the map */ 0, 0, -1 /* Extensions start */ }; static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_40 = { +asn_TYPE_descriptor_t asn_DEF_value_64 = { "value", "value", &asn_OP_OPEN_TYPE, @@ -6664,52 +8826,53 @@ asn_TYPE_descriptor_t asn_DEF_value_40 = { 0, /* No tags (pointer) */ 0, /* No tags (count) */ { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_40, + asn_MBR_value_64, 1, /* Elements count */ - &asn_SPC_value_specs_40 /* Additional specs */ + &asn_SPC_value_specs_64 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_RANfunctionID_ItemIEs_37[] = { +asn_TYPE_member_t asn_MBR_RANfunctionID_ItemIEs_61[] = { { ATF_NOFLAGS, 0, offsetof(struct RANfunctionID_ItemIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_ProtocolIE_ID, 0, - { 0, &asn_PER_memb_id_constr_38, memb_id_constraint_37 }, + { &asn_OER_memb_id_constr_62, &asn_PER_memb_id_constr_62, memb_id_constraint_61 }, 0, 0, /* No default value */ "id" }, { ATF_NOFLAGS, 0, offsetof(struct RANfunctionID_ItemIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_Criticality, select_RANfunctionID_ItemIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_39, memb_criticality_constraint_37 }, + { &asn_OER_memb_criticality_constr_63, &asn_PER_memb_criticality_constr_63, memb_criticality_constraint_61 }, 0, 0, /* No default value */ "criticality" }, { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RANfunctionID_ItemIEs, value), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_value_40, + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_64, select_RANfunctionID_ItemIEs_value_type, - { 0, &asn_PER_memb_value_constr_40, memb_value_constraint_37 }, + { &asn_OER_memb_value_constr_64, &asn_PER_memb_value_constr_64, memb_value_constraint_61 }, 0, 0, /* No default value */ "value" }, }; -static const ber_tlv_tag_t asn_DEF_RANfunctionID_ItemIEs_tags_37[] = { +static const ber_tlv_tag_t asn_DEF_RANfunctionID_ItemIEs_tags_61[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -static const asn_TYPE_tag2member_t asn_MAP_RANfunctionID_ItemIEs_tag2el_37[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +static const asn_TYPE_tag2member_t asn_MAP_RANfunctionID_ItemIEs_tag2el_61[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ }; -asn_SEQUENCE_specifics_t asn_SPC_RANfunctionID_ItemIEs_specs_37 = { +asn_SEQUENCE_specifics_t asn_SPC_RANfunctionID_ItemIEs_specs_61 = { sizeof(struct RANfunctionID_ItemIEs), offsetof(struct RANfunctionID_ItemIEs, _asn_ctx), - asn_MAP_RANfunctionID_ItemIEs_tag2el_37, - 2, /* Count of tags in the map */ + asn_MAP_RANfunctionID_ItemIEs_tag2el_61, + 3, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; @@ -6717,19 +8880,19 @@ asn_TYPE_descriptor_t asn_DEF_RANfunctionID_ItemIEs = { "RANfunctionID-ItemIEs", "RANfunctionID-ItemIEs", &asn_OP_SEQUENCE, - asn_DEF_RANfunctionID_ItemIEs_tags_37, - sizeof(asn_DEF_RANfunctionID_ItemIEs_tags_37) - /sizeof(asn_DEF_RANfunctionID_ItemIEs_tags_37[0]), /* 1 */ - asn_DEF_RANfunctionID_ItemIEs_tags_37, /* Same as above */ - sizeof(asn_DEF_RANfunctionID_ItemIEs_tags_37) - /sizeof(asn_DEF_RANfunctionID_ItemIEs_tags_37[0]), /* 1 */ + asn_DEF_RANfunctionID_ItemIEs_tags_61, + sizeof(asn_DEF_RANfunctionID_ItemIEs_tags_61) + /sizeof(asn_DEF_RANfunctionID_ItemIEs_tags_61[0]), /* 1 */ + asn_DEF_RANfunctionID_ItemIEs_tags_61, /* Same as above */ + sizeof(asn_DEF_RANfunctionID_ItemIEs_tags_61) + /sizeof(asn_DEF_RANfunctionID_ItemIEs_tags_61[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_RANfunctionID_ItemIEs_37, + asn_MBR_RANfunctionID_ItemIEs_61, 3, /* Elements count */ - &asn_SPC_RANfunctionID_ItemIEs_specs_37 /* Additional specs */ + &asn_SPC_RANfunctionID_ItemIEs_specs_61 /* Additional specs */ }; -static asn_TYPE_member_t asn_MBR_value_44[] = { +static asn_TYPE_member_t asn_MBR_value_68[] = { { ATF_NOFLAGS, 0, offsetof(struct RANfunctionIDcause_ItemIEs__value, choice.RANfunctionIDcause_Item), (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -6740,21 +8903,21 @@ static asn_TYPE_member_t asn_MBR_value_44[] = { "RANfunctionIDcause-Item" }, }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_44[] = { +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_68[] = { { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RANfunctionIDcause-Item */ }; -static asn_CHOICE_specifics_t asn_SPC_value_specs_44 = { +static asn_CHOICE_specifics_t asn_SPC_value_specs_68 = { sizeof(struct RANfunctionIDcause_ItemIEs__value), offsetof(struct RANfunctionIDcause_ItemIEs__value, _asn_ctx), offsetof(struct RANfunctionIDcause_ItemIEs__value, present), sizeof(((struct RANfunctionIDcause_ItemIEs__value *)0)->present), - asn_MAP_value_tag2el_44, + asn_MAP_value_tag2el_68, 1, /* Count of tags in the map */ 0, 0, -1 /* Extensions start */ }; static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_44 = { +asn_TYPE_descriptor_t asn_DEF_value_68 = { "value", "value", &asn_OP_OPEN_TYPE, @@ -6763,52 +8926,53 @@ asn_TYPE_descriptor_t asn_DEF_value_44 = { 0, /* No tags (pointer) */ 0, /* No tags (count) */ { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_44, + asn_MBR_value_68, 1, /* Elements count */ - &asn_SPC_value_specs_44 /* Additional specs */ + &asn_SPC_value_specs_68 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_RANfunctionIDcause_ItemIEs_41[] = { +asn_TYPE_member_t asn_MBR_RANfunctionIDcause_ItemIEs_65[] = { { ATF_NOFLAGS, 0, offsetof(struct RANfunctionIDcause_ItemIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_ProtocolIE_ID, 0, - { 0, &asn_PER_memb_id_constr_42, memb_id_constraint_41 }, + { &asn_OER_memb_id_constr_66, &asn_PER_memb_id_constr_66, memb_id_constraint_65 }, 0, 0, /* No default value */ "id" }, { ATF_NOFLAGS, 0, offsetof(struct RANfunctionIDcause_ItemIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_Criticality, select_RANfunctionIDcause_ItemIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_43, memb_criticality_constraint_41 }, + { &asn_OER_memb_criticality_constr_67, &asn_PER_memb_criticality_constr_67, memb_criticality_constraint_65 }, 0, 0, /* No default value */ "criticality" }, { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RANfunctionIDcause_ItemIEs, value), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_value_44, + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_68, select_RANfunctionIDcause_ItemIEs_value_type, - { 0, &asn_PER_memb_value_constr_44, memb_value_constraint_41 }, + { &asn_OER_memb_value_constr_68, &asn_PER_memb_value_constr_68, memb_value_constraint_65 }, 0, 0, /* No default value */ "value" }, }; -static const ber_tlv_tag_t asn_DEF_RANfunctionIDcause_ItemIEs_tags_41[] = { +static const ber_tlv_tag_t asn_DEF_RANfunctionIDcause_ItemIEs_tags_65[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -static const asn_TYPE_tag2member_t asn_MAP_RANfunctionIDcause_ItemIEs_tag2el_41[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +static const asn_TYPE_tag2member_t asn_MAP_RANfunctionIDcause_ItemIEs_tag2el_65[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ }; -asn_SEQUENCE_specifics_t asn_SPC_RANfunctionIDcause_ItemIEs_specs_41 = { +asn_SEQUENCE_specifics_t asn_SPC_RANfunctionIDcause_ItemIEs_specs_65 = { sizeof(struct RANfunctionIDcause_ItemIEs), offsetof(struct RANfunctionIDcause_ItemIEs, _asn_ctx), - asn_MAP_RANfunctionIDcause_ItemIEs_tag2el_41, - 2, /* Count of tags in the map */ + asn_MAP_RANfunctionIDcause_ItemIEs_tag2el_65, + 3, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; @@ -6816,19 +8980,19 @@ asn_TYPE_descriptor_t asn_DEF_RANfunctionIDcause_ItemIEs = { "RANfunctionIDcause-ItemIEs", "RANfunctionIDcause-ItemIEs", &asn_OP_SEQUENCE, - asn_DEF_RANfunctionIDcause_ItemIEs_tags_41, - sizeof(asn_DEF_RANfunctionIDcause_ItemIEs_tags_41) - /sizeof(asn_DEF_RANfunctionIDcause_ItemIEs_tags_41[0]), /* 1 */ - asn_DEF_RANfunctionIDcause_ItemIEs_tags_41, /* Same as above */ - sizeof(asn_DEF_RANfunctionIDcause_ItemIEs_tags_41) - /sizeof(asn_DEF_RANfunctionIDcause_ItemIEs_tags_41[0]), /* 1 */ + asn_DEF_RANfunctionIDcause_ItemIEs_tags_65, + sizeof(asn_DEF_RANfunctionIDcause_ItemIEs_tags_65) + /sizeof(asn_DEF_RANfunctionIDcause_ItemIEs_tags_65[0]), /* 1 */ + asn_DEF_RANfunctionIDcause_ItemIEs_tags_65, /* Same as above */ + sizeof(asn_DEF_RANfunctionIDcause_ItemIEs_tags_65) + /sizeof(asn_DEF_RANfunctionIDcause_ItemIEs_tags_65[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_RANfunctionIDcause_ItemIEs_41, + asn_MBR_RANfunctionIDcause_ItemIEs_65, 3, /* Elements count */ - &asn_SPC_RANfunctionIDcause_ItemIEs_specs_41 /* Additional specs */ + &asn_SPC_RANfunctionIDcause_ItemIEs_specs_65 /* Additional specs */ }; -static asn_TYPE_member_t asn_MBR_value_48[] = { +static asn_TYPE_member_t asn_MBR_value_72[] = { { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionRequest_IEs__value, choice.RICrequestID), (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -6857,26 +9021,26 @@ static asn_TYPE_member_t asn_MBR_value_48[] = { "RICsubscriptionDetails" }, }; -static const unsigned asn_MAP_value_to_canonical_48[] = { 1, 0, 2 }; -static const unsigned asn_MAP_value_from_canonical_48[] = { 1, 0, 2 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_48[] = { +static const unsigned asn_MAP_value_to_canonical_72[] = { 1, 0, 2 }; +static const unsigned asn_MAP_value_from_canonical_72[] = { 1, 0, 2 }; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_72[] = { { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* RANfunctionID */ { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 1 }, /* RICrequestID */ { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -1, 0 } /* RICsubscriptionDetails */ }; -static asn_CHOICE_specifics_t asn_SPC_value_specs_48 = { +static asn_CHOICE_specifics_t asn_SPC_value_specs_72 = { sizeof(struct RICsubscriptionRequest_IEs__value), offsetof(struct RICsubscriptionRequest_IEs__value, _asn_ctx), offsetof(struct RICsubscriptionRequest_IEs__value, present), sizeof(((struct RICsubscriptionRequest_IEs__value *)0)->present), - asn_MAP_value_tag2el_48, + asn_MAP_value_tag2el_72, 3, /* Count of tags in the map */ - asn_MAP_value_to_canonical_48, - asn_MAP_value_from_canonical_48, + asn_MAP_value_to_canonical_72, + asn_MAP_value_from_canonical_72, -1 /* Extensions start */ }; static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_48 = { +asn_TYPE_descriptor_t asn_DEF_value_72 = { "value", "value", &asn_OP_OPEN_TYPE, @@ -6885,52 +9049,53 @@ asn_TYPE_descriptor_t asn_DEF_value_48 = { 0, /* No tags (pointer) */ 0, /* No tags (count) */ { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_48, + asn_MBR_value_72, 3, /* Elements count */ - &asn_SPC_value_specs_48 /* Additional specs */ + &asn_SPC_value_specs_72 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_RICsubscriptionRequest_IEs_45[] = { +asn_TYPE_member_t asn_MBR_RICsubscriptionRequest_IEs_69[] = { { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionRequest_IEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_ProtocolIE_ID, 0, - { 0, &asn_PER_memb_id_constr_46, memb_id_constraint_45 }, + { &asn_OER_memb_id_constr_70, &asn_PER_memb_id_constr_70, memb_id_constraint_69 }, 0, 0, /* No default value */ "id" }, { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionRequest_IEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_Criticality, select_RICsubscriptionRequest_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_47, memb_criticality_constraint_45 }, + { &asn_OER_memb_criticality_constr_71, &asn_PER_memb_criticality_constr_71, memb_criticality_constraint_69 }, 0, 0, /* No default value */ "criticality" }, { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionRequest_IEs, value), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_value_48, + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_72, select_RICsubscriptionRequest_IEs_value_type, - { 0, &asn_PER_memb_value_constr_48, memb_value_constraint_45 }, + { &asn_OER_memb_value_constr_72, &asn_PER_memb_value_constr_72, memb_value_constraint_69 }, 0, 0, /* No default value */ "value" }, }; -static const ber_tlv_tag_t asn_DEF_RICsubscriptionRequest_IEs_tags_45[] = { +static const ber_tlv_tag_t asn_DEF_RICsubscriptionRequest_IEs_tags_69[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionRequest_IEs_tag2el_45[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionRequest_IEs_tag2el_69[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ }; -asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionRequest_IEs_specs_45 = { +asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionRequest_IEs_specs_69 = { sizeof(struct RICsubscriptionRequest_IEs), offsetof(struct RICsubscriptionRequest_IEs, _asn_ctx), - asn_MAP_RICsubscriptionRequest_IEs_tag2el_45, - 2, /* Count of tags in the map */ + asn_MAP_RICsubscriptionRequest_IEs_tag2el_69, + 3, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; @@ -6938,19 +9103,19 @@ asn_TYPE_descriptor_t asn_DEF_RICsubscriptionRequest_IEs = { "RICsubscriptionRequest-IEs", "RICsubscriptionRequest-IEs", &asn_OP_SEQUENCE, - asn_DEF_RICsubscriptionRequest_IEs_tags_45, - sizeof(asn_DEF_RICsubscriptionRequest_IEs_tags_45) - /sizeof(asn_DEF_RICsubscriptionRequest_IEs_tags_45[0]), /* 1 */ - asn_DEF_RICsubscriptionRequest_IEs_tags_45, /* Same as above */ - sizeof(asn_DEF_RICsubscriptionRequest_IEs_tags_45) - /sizeof(asn_DEF_RICsubscriptionRequest_IEs_tags_45[0]), /* 1 */ + asn_DEF_RICsubscriptionRequest_IEs_tags_69, + sizeof(asn_DEF_RICsubscriptionRequest_IEs_tags_69) + /sizeof(asn_DEF_RICsubscriptionRequest_IEs_tags_69[0]), /* 1 */ + asn_DEF_RICsubscriptionRequest_IEs_tags_69, /* Same as above */ + sizeof(asn_DEF_RICsubscriptionRequest_IEs_tags_69) + /sizeof(asn_DEF_RICsubscriptionRequest_IEs_tags_69[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICsubscriptionRequest_IEs_45, + asn_MBR_RICsubscriptionRequest_IEs_69, 3, /* Elements count */ - &asn_SPC_RICsubscriptionRequest_IEs_specs_45 /* Additional specs */ + &asn_SPC_RICsubscriptionRequest_IEs_specs_69 /* Additional specs */ }; -static asn_TYPE_member_t asn_MBR_value_52[] = { +static asn_TYPE_member_t asn_MBR_value_76[] = { { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionResponse_IEs__value, choice.RICrequestID), (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -6988,27 +9153,27 @@ static asn_TYPE_member_t asn_MBR_value_52[] = { "RICaction-NotAdmitted-List" }, }; -static const unsigned asn_MAP_value_to_canonical_52[] = { 1, 0, 2, 3 }; -static const unsigned asn_MAP_value_from_canonical_52[] = { 1, 0, 2, 3 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_52[] = { +static const unsigned asn_MAP_value_to_canonical_76[] = { 1, 0, 2, 3 }; +static const unsigned asn_MAP_value_from_canonical_76[] = { 1, 0, 2, 3 }; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_76[] = { { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* RANfunctionID */ { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 2 }, /* RICrequestID */ { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -1, 1 }, /* RICaction-Admitted-List */ { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -2, 0 } /* RICaction-NotAdmitted-List */ }; -static asn_CHOICE_specifics_t asn_SPC_value_specs_52 = { +static asn_CHOICE_specifics_t asn_SPC_value_specs_76 = { sizeof(struct RICsubscriptionResponse_IEs__value), offsetof(struct RICsubscriptionResponse_IEs__value, _asn_ctx), offsetof(struct RICsubscriptionResponse_IEs__value, present), sizeof(((struct RICsubscriptionResponse_IEs__value *)0)->present), - asn_MAP_value_tag2el_52, + asn_MAP_value_tag2el_76, 4, /* Count of tags in the map */ - asn_MAP_value_to_canonical_52, - asn_MAP_value_from_canonical_52, + asn_MAP_value_to_canonical_76, + asn_MAP_value_from_canonical_76, -1 /* Extensions start */ }; static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_52 = { +asn_TYPE_descriptor_t asn_DEF_value_76 = { "value", "value", &asn_OP_OPEN_TYPE, @@ -7017,52 +9182,53 @@ asn_TYPE_descriptor_t asn_DEF_value_52 = { 0, /* No tags (pointer) */ 0, /* No tags (count) */ { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_52, + asn_MBR_value_76, 4, /* Elements count */ - &asn_SPC_value_specs_52 /* Additional specs */ + &asn_SPC_value_specs_76 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_RICsubscriptionResponse_IEs_49[] = { +asn_TYPE_member_t asn_MBR_RICsubscriptionResponse_IEs_73[] = { { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionResponse_IEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_ProtocolIE_ID, 0, - { 0, &asn_PER_memb_id_constr_50, memb_id_constraint_49 }, + { &asn_OER_memb_id_constr_74, &asn_PER_memb_id_constr_74, memb_id_constraint_73 }, 0, 0, /* No default value */ "id" }, { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionResponse_IEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_Criticality, select_RICsubscriptionResponse_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_51, memb_criticality_constraint_49 }, + { &asn_OER_memb_criticality_constr_75, &asn_PER_memb_criticality_constr_75, memb_criticality_constraint_73 }, 0, 0, /* No default value */ "criticality" }, { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionResponse_IEs, value), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_value_52, + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_76, select_RICsubscriptionResponse_IEs_value_type, - { 0, &asn_PER_memb_value_constr_52, memb_value_constraint_49 }, + { &asn_OER_memb_value_constr_76, &asn_PER_memb_value_constr_76, memb_value_constraint_73 }, 0, 0, /* No default value */ "value" }, }; -static const ber_tlv_tag_t asn_DEF_RICsubscriptionResponse_IEs_tags_49[] = { +static const ber_tlv_tag_t asn_DEF_RICsubscriptionResponse_IEs_tags_73[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionResponse_IEs_tag2el_49[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionResponse_IEs_tag2el_73[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ }; -asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionResponse_IEs_specs_49 = { +asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionResponse_IEs_specs_73 = { sizeof(struct RICsubscriptionResponse_IEs), offsetof(struct RICsubscriptionResponse_IEs, _asn_ctx), - asn_MAP_RICsubscriptionResponse_IEs_tag2el_49, - 2, /* Count of tags in the map */ + asn_MAP_RICsubscriptionResponse_IEs_tag2el_73, + 3, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; @@ -7070,19 +9236,19 @@ asn_TYPE_descriptor_t asn_DEF_RICsubscriptionResponse_IEs = { "RICsubscriptionResponse-IEs", "RICsubscriptionResponse-IEs", &asn_OP_SEQUENCE, - asn_DEF_RICsubscriptionResponse_IEs_tags_49, - sizeof(asn_DEF_RICsubscriptionResponse_IEs_tags_49) - /sizeof(asn_DEF_RICsubscriptionResponse_IEs_tags_49[0]), /* 1 */ - asn_DEF_RICsubscriptionResponse_IEs_tags_49, /* Same as above */ - sizeof(asn_DEF_RICsubscriptionResponse_IEs_tags_49) - /sizeof(asn_DEF_RICsubscriptionResponse_IEs_tags_49[0]), /* 1 */ + asn_DEF_RICsubscriptionResponse_IEs_tags_73, + sizeof(asn_DEF_RICsubscriptionResponse_IEs_tags_73) + /sizeof(asn_DEF_RICsubscriptionResponse_IEs_tags_73[0]), /* 1 */ + asn_DEF_RICsubscriptionResponse_IEs_tags_73, /* Same as above */ + sizeof(asn_DEF_RICsubscriptionResponse_IEs_tags_73) + /sizeof(asn_DEF_RICsubscriptionResponse_IEs_tags_73[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICsubscriptionResponse_IEs_49, + asn_MBR_RICsubscriptionResponse_IEs_73, 3, /* Elements count */ - &asn_SPC_RICsubscriptionResponse_IEs_specs_49 /* Additional specs */ + &asn_SPC_RICsubscriptionResponse_IEs_specs_73 /* Additional specs */ }; -static asn_TYPE_member_t asn_MBR_value_56[] = { +static asn_TYPE_member_t asn_MBR_value_80[] = { { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionFailure_IEs__value, choice.RICrequestID), (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -7101,14 +9267,14 @@ static asn_TYPE_member_t asn_MBR_value_56[] = { 0, 0, /* No default value */ "RANfunctionID" }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionFailure_IEs__value, choice.RICaction_NotAdmitted_List), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionFailure_IEs__value, choice.Cause), + -1 /* Ambiguous tag (CHOICE?) */, 0, - &asn_DEF_RICaction_NotAdmitted_List, + &asn_DEF_Cause, 0, { 0, 0, 0 }, 0, 0, /* No default value */ - "RICaction-NotAdmitted-List" + "Cause" }, { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionFailure_IEs__value, choice.CriticalityDiagnostics), (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), @@ -7120,27 +9286,32 @@ static asn_TYPE_member_t asn_MBR_value_56[] = { "CriticalityDiagnostics" }, }; -static const unsigned asn_MAP_value_to_canonical_56[] = { 1, 0, 2, 3 }; -static const unsigned asn_MAP_value_from_canonical_56[] = { 1, 0, 2, 3 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_56[] = { +static const unsigned asn_MAP_value_to_canonical_80[] = { 1, 0, 3, 2 }; +static const unsigned asn_MAP_value_from_canonical_80[] = { 1, 0, 3, 2 }; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_80[] = { { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* RANfunctionID */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 2 }, /* RICrequestID */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -1, 1 }, /* RICaction-NotAdmitted-List */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -2, 0 } /* CriticalityDiagnostics */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 1 }, /* RICrequestID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -1, 0 }, /* CriticalityDiagnostics */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 2, 0, 0 }, /* ricRequest */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 2, 0, 0 }, /* ricService */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* e2Node */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 2, 0, 0 }, /* transport */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 2, 0, 0 }, /* protocol */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 2, 0, 0 } /* misc */ }; -static asn_CHOICE_specifics_t asn_SPC_value_specs_56 = { +static asn_CHOICE_specifics_t asn_SPC_value_specs_80 = { sizeof(struct RICsubscriptionFailure_IEs__value), offsetof(struct RICsubscriptionFailure_IEs__value, _asn_ctx), offsetof(struct RICsubscriptionFailure_IEs__value, present), sizeof(((struct RICsubscriptionFailure_IEs__value *)0)->present), - asn_MAP_value_tag2el_56, - 4, /* Count of tags in the map */ - asn_MAP_value_to_canonical_56, - asn_MAP_value_from_canonical_56, + asn_MAP_value_tag2el_80, + 9, /* Count of tags in the map */ + asn_MAP_value_to_canonical_80, + asn_MAP_value_from_canonical_80, -1 /* Extensions start */ }; static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_56 = { +asn_TYPE_descriptor_t asn_DEF_value_80 = { "value", "value", &asn_OP_OPEN_TYPE, @@ -7149,52 +9320,53 @@ asn_TYPE_descriptor_t asn_DEF_value_56 = { 0, /* No tags (pointer) */ 0, /* No tags (count) */ { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_56, + asn_MBR_value_80, 4, /* Elements count */ - &asn_SPC_value_specs_56 /* Additional specs */ + &asn_SPC_value_specs_80 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_RICsubscriptionFailure_IEs_53[] = { +asn_TYPE_member_t asn_MBR_RICsubscriptionFailure_IEs_77[] = { { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionFailure_IEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_ProtocolIE_ID, 0, - { 0, &asn_PER_memb_id_constr_54, memb_id_constraint_53 }, + { &asn_OER_memb_id_constr_78, &asn_PER_memb_id_constr_78, memb_id_constraint_77 }, 0, 0, /* No default value */ "id" }, { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionFailure_IEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_Criticality, select_RICsubscriptionFailure_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_55, memb_criticality_constraint_53 }, + { &asn_OER_memb_criticality_constr_79, &asn_PER_memb_criticality_constr_79, memb_criticality_constraint_77 }, 0, 0, /* No default value */ "criticality" }, { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionFailure_IEs, value), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_value_56, + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_80, select_RICsubscriptionFailure_IEs_value_type, - { 0, &asn_PER_memb_value_constr_56, memb_value_constraint_53 }, + { &asn_OER_memb_value_constr_80, &asn_PER_memb_value_constr_80, memb_value_constraint_77 }, 0, 0, /* No default value */ "value" }, }; -static const ber_tlv_tag_t asn_DEF_RICsubscriptionFailure_IEs_tags_53[] = { +static const ber_tlv_tag_t asn_DEF_RICsubscriptionFailure_IEs_tags_77[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionFailure_IEs_tag2el_53[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionFailure_IEs_tag2el_77[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ }; -asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionFailure_IEs_specs_53 = { +asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionFailure_IEs_specs_77 = { sizeof(struct RICsubscriptionFailure_IEs), offsetof(struct RICsubscriptionFailure_IEs, _asn_ctx), - asn_MAP_RICsubscriptionFailure_IEs_tag2el_53, - 2, /* Count of tags in the map */ + asn_MAP_RICsubscriptionFailure_IEs_tag2el_77, + 3, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; @@ -7202,19 +9374,19 @@ asn_TYPE_descriptor_t asn_DEF_RICsubscriptionFailure_IEs = { "RICsubscriptionFailure-IEs", "RICsubscriptionFailure-IEs", &asn_OP_SEQUENCE, - asn_DEF_RICsubscriptionFailure_IEs_tags_53, - sizeof(asn_DEF_RICsubscriptionFailure_IEs_tags_53) - /sizeof(asn_DEF_RICsubscriptionFailure_IEs_tags_53[0]), /* 1 */ - asn_DEF_RICsubscriptionFailure_IEs_tags_53, /* Same as above */ - sizeof(asn_DEF_RICsubscriptionFailure_IEs_tags_53) - /sizeof(asn_DEF_RICsubscriptionFailure_IEs_tags_53[0]), /* 1 */ + asn_DEF_RICsubscriptionFailure_IEs_tags_77, + sizeof(asn_DEF_RICsubscriptionFailure_IEs_tags_77) + /sizeof(asn_DEF_RICsubscriptionFailure_IEs_tags_77[0]), /* 1 */ + asn_DEF_RICsubscriptionFailure_IEs_tags_77, /* Same as above */ + sizeof(asn_DEF_RICsubscriptionFailure_IEs_tags_77) + /sizeof(asn_DEF_RICsubscriptionFailure_IEs_tags_77[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICsubscriptionFailure_IEs_53, + asn_MBR_RICsubscriptionFailure_IEs_77, 3, /* Elements count */ - &asn_SPC_RICsubscriptionFailure_IEs_specs_53 /* Additional specs */ + &asn_SPC_RICsubscriptionFailure_IEs_specs_77 /* Additional specs */ }; -static asn_TYPE_member_t asn_MBR_value_60[] = { +static asn_TYPE_member_t asn_MBR_value_84[] = { { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteRequest_IEs__value, choice.RICrequestID), (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -7234,25 +9406,25 @@ static asn_TYPE_member_t asn_MBR_value_60[] = { "RANfunctionID" }, }; -static const unsigned asn_MAP_value_to_canonical_60[] = { 1, 0 }; -static const unsigned asn_MAP_value_from_canonical_60[] = { 1, 0 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_60[] = { +static const unsigned asn_MAP_value_to_canonical_84[] = { 1, 0 }; +static const unsigned asn_MAP_value_from_canonical_84[] = { 1, 0 }; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_84[] = { { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* RANfunctionID */ { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RICrequestID */ }; -static asn_CHOICE_specifics_t asn_SPC_value_specs_60 = { +static asn_CHOICE_specifics_t asn_SPC_value_specs_84 = { sizeof(struct RICsubscriptionDeleteRequest_IEs__value), offsetof(struct RICsubscriptionDeleteRequest_IEs__value, _asn_ctx), offsetof(struct RICsubscriptionDeleteRequest_IEs__value, present), sizeof(((struct RICsubscriptionDeleteRequest_IEs__value *)0)->present), - asn_MAP_value_tag2el_60, + asn_MAP_value_tag2el_84, 2, /* Count of tags in the map */ - asn_MAP_value_to_canonical_60, - asn_MAP_value_from_canonical_60, + asn_MAP_value_to_canonical_84, + asn_MAP_value_from_canonical_84, -1 /* Extensions start */ }; static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_60 = { +asn_TYPE_descriptor_t asn_DEF_value_84 = { "value", "value", &asn_OP_OPEN_TYPE, @@ -7261,52 +9433,53 @@ asn_TYPE_descriptor_t asn_DEF_value_60 = { 0, /* No tags (pointer) */ 0, /* No tags (count) */ { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_60, + asn_MBR_value_84, 2, /* Elements count */ - &asn_SPC_value_specs_60 /* Additional specs */ + &asn_SPC_value_specs_84 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteRequest_IEs_57[] = { +asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteRequest_IEs_81[] = { { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteRequest_IEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_ProtocolIE_ID, 0, - { 0, &asn_PER_memb_id_constr_58, memb_id_constraint_57 }, + { &asn_OER_memb_id_constr_82, &asn_PER_memb_id_constr_82, memb_id_constraint_81 }, 0, 0, /* No default value */ "id" }, { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteRequest_IEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_Criticality, select_RICsubscriptionDeleteRequest_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_59, memb_criticality_constraint_57 }, + { &asn_OER_memb_criticality_constr_83, &asn_PER_memb_criticality_constr_83, memb_criticality_constraint_81 }, 0, 0, /* No default value */ "criticality" }, { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteRequest_IEs, value), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_value_60, + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_84, select_RICsubscriptionDeleteRequest_IEs_value_type, - { 0, &asn_PER_memb_value_constr_60, memb_value_constraint_57 }, + { &asn_OER_memb_value_constr_84, &asn_PER_memb_value_constr_84, memb_value_constraint_81 }, 0, 0, /* No default value */ "value" }, }; -static const ber_tlv_tag_t asn_DEF_RICsubscriptionDeleteRequest_IEs_tags_57[] = { +static const ber_tlv_tag_t asn_DEF_RICsubscriptionDeleteRequest_IEs_tags_81[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionDeleteRequest_IEs_tag2el_57[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionDeleteRequest_IEs_tag2el_81[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ }; -asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteRequest_IEs_specs_57 = { +asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteRequest_IEs_specs_81 = { sizeof(struct RICsubscriptionDeleteRequest_IEs), offsetof(struct RICsubscriptionDeleteRequest_IEs, _asn_ctx), - asn_MAP_RICsubscriptionDeleteRequest_IEs_tag2el_57, - 2, /* Count of tags in the map */ + asn_MAP_RICsubscriptionDeleteRequest_IEs_tag2el_81, + 3, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; @@ -7314,19 +9487,19 @@ asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDeleteRequest_IEs = { "RICsubscriptionDeleteRequest-IEs", "RICsubscriptionDeleteRequest-IEs", &asn_OP_SEQUENCE, - asn_DEF_RICsubscriptionDeleteRequest_IEs_tags_57, - sizeof(asn_DEF_RICsubscriptionDeleteRequest_IEs_tags_57) - /sizeof(asn_DEF_RICsubscriptionDeleteRequest_IEs_tags_57[0]), /* 1 */ - asn_DEF_RICsubscriptionDeleteRequest_IEs_tags_57, /* Same as above */ - sizeof(asn_DEF_RICsubscriptionDeleteRequest_IEs_tags_57) - /sizeof(asn_DEF_RICsubscriptionDeleteRequest_IEs_tags_57[0]), /* 1 */ + asn_DEF_RICsubscriptionDeleteRequest_IEs_tags_81, + sizeof(asn_DEF_RICsubscriptionDeleteRequest_IEs_tags_81) + /sizeof(asn_DEF_RICsubscriptionDeleteRequest_IEs_tags_81[0]), /* 1 */ + asn_DEF_RICsubscriptionDeleteRequest_IEs_tags_81, /* Same as above */ + sizeof(asn_DEF_RICsubscriptionDeleteRequest_IEs_tags_81) + /sizeof(asn_DEF_RICsubscriptionDeleteRequest_IEs_tags_81[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICsubscriptionDeleteRequest_IEs_57, + asn_MBR_RICsubscriptionDeleteRequest_IEs_81, 3, /* Elements count */ - &asn_SPC_RICsubscriptionDeleteRequest_IEs_specs_57 /* Additional specs */ + &asn_SPC_RICsubscriptionDeleteRequest_IEs_specs_81 /* Additional specs */ }; -static asn_TYPE_member_t asn_MBR_value_64[] = { +static asn_TYPE_member_t asn_MBR_value_88[] = { { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteResponse_IEs__value, choice.RICrequestID), (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -7346,25 +9519,25 @@ static asn_TYPE_member_t asn_MBR_value_64[] = { "RANfunctionID" }, }; -static const unsigned asn_MAP_value_to_canonical_64[] = { 1, 0 }; -static const unsigned asn_MAP_value_from_canonical_64[] = { 1, 0 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_64[] = { +static const unsigned asn_MAP_value_to_canonical_88[] = { 1, 0 }; +static const unsigned asn_MAP_value_from_canonical_88[] = { 1, 0 }; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_88[] = { { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* RANfunctionID */ { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RICrequestID */ }; -static asn_CHOICE_specifics_t asn_SPC_value_specs_64 = { +static asn_CHOICE_specifics_t asn_SPC_value_specs_88 = { sizeof(struct RICsubscriptionDeleteResponse_IEs__value), offsetof(struct RICsubscriptionDeleteResponse_IEs__value, _asn_ctx), offsetof(struct RICsubscriptionDeleteResponse_IEs__value, present), sizeof(((struct RICsubscriptionDeleteResponse_IEs__value *)0)->present), - asn_MAP_value_tag2el_64, + asn_MAP_value_tag2el_88, 2, /* Count of tags in the map */ - asn_MAP_value_to_canonical_64, - asn_MAP_value_from_canonical_64, + asn_MAP_value_to_canonical_88, + asn_MAP_value_from_canonical_88, -1 /* Extensions start */ }; static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_64 = { +asn_TYPE_descriptor_t asn_DEF_value_88 = { "value", "value", &asn_OP_OPEN_TYPE, @@ -7373,52 +9546,53 @@ asn_TYPE_descriptor_t asn_DEF_value_64 = { 0, /* No tags (pointer) */ 0, /* No tags (count) */ { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_64, + asn_MBR_value_88, 2, /* Elements count */ - &asn_SPC_value_specs_64 /* Additional specs */ + &asn_SPC_value_specs_88 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteResponse_IEs_61[] = { +asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteResponse_IEs_85[] = { { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteResponse_IEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_ProtocolIE_ID, 0, - { 0, &asn_PER_memb_id_constr_62, memb_id_constraint_61 }, + { &asn_OER_memb_id_constr_86, &asn_PER_memb_id_constr_86, memb_id_constraint_85 }, 0, 0, /* No default value */ "id" }, { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteResponse_IEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_Criticality, select_RICsubscriptionDeleteResponse_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_63, memb_criticality_constraint_61 }, + { &asn_OER_memb_criticality_constr_87, &asn_PER_memb_criticality_constr_87, memb_criticality_constraint_85 }, 0, 0, /* No default value */ "criticality" }, { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteResponse_IEs, value), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_value_64, + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_88, select_RICsubscriptionDeleteResponse_IEs_value_type, - { 0, &asn_PER_memb_value_constr_64, memb_value_constraint_61 }, + { &asn_OER_memb_value_constr_88, &asn_PER_memb_value_constr_88, memb_value_constraint_85 }, 0, 0, /* No default value */ "value" }, }; -static const ber_tlv_tag_t asn_DEF_RICsubscriptionDeleteResponse_IEs_tags_61[] = { +static const ber_tlv_tag_t asn_DEF_RICsubscriptionDeleteResponse_IEs_tags_85[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionDeleteResponse_IEs_tag2el_61[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionDeleteResponse_IEs_tag2el_85[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ }; -asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteResponse_IEs_specs_61 = { +asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteResponse_IEs_specs_85 = { sizeof(struct RICsubscriptionDeleteResponse_IEs), offsetof(struct RICsubscriptionDeleteResponse_IEs, _asn_ctx), - asn_MAP_RICsubscriptionDeleteResponse_IEs_tag2el_61, - 2, /* Count of tags in the map */ + asn_MAP_RICsubscriptionDeleteResponse_IEs_tag2el_85, + 3, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; @@ -7426,19 +9600,19 @@ asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDeleteResponse_IEs = { "RICsubscriptionDeleteResponse-IEs", "RICsubscriptionDeleteResponse-IEs", &asn_OP_SEQUENCE, - asn_DEF_RICsubscriptionDeleteResponse_IEs_tags_61, - sizeof(asn_DEF_RICsubscriptionDeleteResponse_IEs_tags_61) - /sizeof(asn_DEF_RICsubscriptionDeleteResponse_IEs_tags_61[0]), /* 1 */ - asn_DEF_RICsubscriptionDeleteResponse_IEs_tags_61, /* Same as above */ - sizeof(asn_DEF_RICsubscriptionDeleteResponse_IEs_tags_61) - /sizeof(asn_DEF_RICsubscriptionDeleteResponse_IEs_tags_61[0]), /* 1 */ + asn_DEF_RICsubscriptionDeleteResponse_IEs_tags_85, + sizeof(asn_DEF_RICsubscriptionDeleteResponse_IEs_tags_85) + /sizeof(asn_DEF_RICsubscriptionDeleteResponse_IEs_tags_85[0]), /* 1 */ + asn_DEF_RICsubscriptionDeleteResponse_IEs_tags_85, /* Same as above */ + sizeof(asn_DEF_RICsubscriptionDeleteResponse_IEs_tags_85) + /sizeof(asn_DEF_RICsubscriptionDeleteResponse_IEs_tags_85[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICsubscriptionDeleteResponse_IEs_61, + asn_MBR_RICsubscriptionDeleteResponse_IEs_85, 3, /* Elements count */ - &asn_SPC_RICsubscriptionDeleteResponse_IEs_specs_61 /* Additional specs */ + &asn_SPC_RICsubscriptionDeleteResponse_IEs_specs_85 /* Additional specs */ }; -static asn_TYPE_member_t asn_MBR_value_68[] = { +static asn_TYPE_member_t asn_MBR_value_92[] = { { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteFailure_IEs__value, choice.RICrequestID), (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -7476,31 +9650,32 @@ static asn_TYPE_member_t asn_MBR_value_68[] = { "CriticalityDiagnostics" }, }; -static const unsigned asn_MAP_value_to_canonical_68[] = { 1, 0, 3, 2 }; -static const unsigned asn_MAP_value_from_canonical_68[] = { 1, 0, 3, 2 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_68[] = { +static const unsigned asn_MAP_value_to_canonical_92[] = { 1, 0, 3, 2 }; +static const unsigned asn_MAP_value_from_canonical_92[] = { 1, 0, 3, 2 }; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_92[] = { { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* RANfunctionID */ { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 1 }, /* RICrequestID */ { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -1, 0 }, /* CriticalityDiagnostics */ { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 2, 0, 0 }, /* ricRequest */ { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 2, 0, 0 }, /* ricService */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* transport */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 2, 0, 0 }, /* protocol */ - { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 2, 0, 0 } /* misc */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* e2Node */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 2, 0, 0 }, /* transport */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 2, 0, 0 }, /* protocol */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 2, 0, 0 } /* misc */ }; -static asn_CHOICE_specifics_t asn_SPC_value_specs_68 = { +static asn_CHOICE_specifics_t asn_SPC_value_specs_92 = { sizeof(struct RICsubscriptionDeleteFailure_IEs__value), offsetof(struct RICsubscriptionDeleteFailure_IEs__value, _asn_ctx), offsetof(struct RICsubscriptionDeleteFailure_IEs__value, present), sizeof(((struct RICsubscriptionDeleteFailure_IEs__value *)0)->present), - asn_MAP_value_tag2el_68, - 8, /* Count of tags in the map */ - asn_MAP_value_to_canonical_68, - asn_MAP_value_from_canonical_68, + asn_MAP_value_tag2el_92, + 9, /* Count of tags in the map */ + asn_MAP_value_to_canonical_92, + asn_MAP_value_from_canonical_92, -1 /* Extensions start */ }; static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_68 = { +asn_TYPE_descriptor_t asn_DEF_value_92 = { "value", "value", &asn_OP_OPEN_TYPE, @@ -7509,52 +9684,53 @@ asn_TYPE_descriptor_t asn_DEF_value_68 = { 0, /* No tags (pointer) */ 0, /* No tags (count) */ { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_68, + asn_MBR_value_92, 4, /* Elements count */ - &asn_SPC_value_specs_68 /* Additional specs */ + &asn_SPC_value_specs_92 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteFailure_IEs_65[] = { +asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteFailure_IEs_89[] = { { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteFailure_IEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_ProtocolIE_ID, 0, - { 0, &asn_PER_memb_id_constr_66, memb_id_constraint_65 }, + { &asn_OER_memb_id_constr_90, &asn_PER_memb_id_constr_90, memb_id_constraint_89 }, 0, 0, /* No default value */ "id" }, { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteFailure_IEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_Criticality, select_RICsubscriptionDeleteFailure_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_67, memb_criticality_constraint_65 }, + { &asn_OER_memb_criticality_constr_91, &asn_PER_memb_criticality_constr_91, memb_criticality_constraint_89 }, 0, 0, /* No default value */ "criticality" }, { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteFailure_IEs, value), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_value_68, + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_92, select_RICsubscriptionDeleteFailure_IEs_value_type, - { 0, &asn_PER_memb_value_constr_68, memb_value_constraint_65 }, + { &asn_OER_memb_value_constr_92, &asn_PER_memb_value_constr_92, memb_value_constraint_89 }, 0, 0, /* No default value */ "value" }, }; -static const ber_tlv_tag_t asn_DEF_RICsubscriptionDeleteFailure_IEs_tags_65[] = { +static const ber_tlv_tag_t asn_DEF_RICsubscriptionDeleteFailure_IEs_tags_89[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionDeleteFailure_IEs_tag2el_65[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionDeleteFailure_IEs_tag2el_89[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ }; -asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteFailure_IEs_specs_65 = { +asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteFailure_IEs_specs_89 = { sizeof(struct RICsubscriptionDeleteFailure_IEs), offsetof(struct RICsubscriptionDeleteFailure_IEs, _asn_ctx), - asn_MAP_RICsubscriptionDeleteFailure_IEs_tag2el_65, - 2, /* Count of tags in the map */ + asn_MAP_RICsubscriptionDeleteFailure_IEs_tag2el_89, + 3, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; @@ -7562,19 +9738,119 @@ asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDeleteFailure_IEs = { "RICsubscriptionDeleteFailure-IEs", "RICsubscriptionDeleteFailure-IEs", &asn_OP_SEQUENCE, - asn_DEF_RICsubscriptionDeleteFailure_IEs_tags_65, - sizeof(asn_DEF_RICsubscriptionDeleteFailure_IEs_tags_65) - /sizeof(asn_DEF_RICsubscriptionDeleteFailure_IEs_tags_65[0]), /* 1 */ - asn_DEF_RICsubscriptionDeleteFailure_IEs_tags_65, /* Same as above */ - sizeof(asn_DEF_RICsubscriptionDeleteFailure_IEs_tags_65) - /sizeof(asn_DEF_RICsubscriptionDeleteFailure_IEs_tags_65[0]), /* 1 */ + asn_DEF_RICsubscriptionDeleteFailure_IEs_tags_89, + sizeof(asn_DEF_RICsubscriptionDeleteFailure_IEs_tags_89) + /sizeof(asn_DEF_RICsubscriptionDeleteFailure_IEs_tags_89[0]), /* 1 */ + asn_DEF_RICsubscriptionDeleteFailure_IEs_tags_89, /* Same as above */ + sizeof(asn_DEF_RICsubscriptionDeleteFailure_IEs_tags_89) + /sizeof(asn_DEF_RICsubscriptionDeleteFailure_IEs_tags_89[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICsubscriptionDeleteFailure_IEs_65, + asn_MBR_RICsubscriptionDeleteFailure_IEs_89, 3, /* Elements count */ - &asn_SPC_RICsubscriptionDeleteFailure_IEs_specs_65 /* Additional specs */ + &asn_SPC_RICsubscriptionDeleteFailure_IEs_specs_89 /* Additional specs */ }; -static asn_TYPE_member_t asn_MBR_value_72[] = { +static asn_TYPE_member_t asn_MBR_value_96[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteRequired_IEs__value, choice.RICsubscription_List_withCause), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RICsubscription_List_withCause, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RICsubscription-List-withCause" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_96[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RICsubscription-List-withCause */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_96 = { + sizeof(struct RICsubscriptionDeleteRequired_IEs__value), + offsetof(struct RICsubscriptionDeleteRequired_IEs__value, _asn_ctx), + offsetof(struct RICsubscriptionDeleteRequired_IEs__value, present), + sizeof(((struct RICsubscriptionDeleteRequired_IEs__value *)0)->present), + asn_MAP_value_tag2el_96, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_96 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_96, + 1, /* Elements count */ + &asn_SPC_value_specs_96 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteRequired_IEs_93[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteRequired_IEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ID, + 0, + { &asn_OER_memb_id_constr_94, &asn_PER_memb_id_constr_94, memb_id_constraint_93 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteRequired_IEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_RICsubscriptionDeleteRequired_IEs_criticality_type, + { &asn_OER_memb_criticality_constr_95, &asn_PER_memb_criticality_constr_95, memb_criticality_constraint_93 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteRequired_IEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_96, + select_RICsubscriptionDeleteRequired_IEs_value_type, + { &asn_OER_memb_value_constr_96, &asn_PER_memb_value_constr_96, memb_value_constraint_93 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_RICsubscriptionDeleteRequired_IEs_tags_93[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionDeleteRequired_IEs_tag2el_93[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteRequired_IEs_specs_93 = { + sizeof(struct RICsubscriptionDeleteRequired_IEs), + offsetof(struct RICsubscriptionDeleteRequired_IEs, _asn_ctx), + asn_MAP_RICsubscriptionDeleteRequired_IEs_tag2el_93, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDeleteRequired_IEs = { + "RICsubscriptionDeleteRequired-IEs", + "RICsubscriptionDeleteRequired-IEs", + &asn_OP_SEQUENCE, + asn_DEF_RICsubscriptionDeleteRequired_IEs_tags_93, + sizeof(asn_DEF_RICsubscriptionDeleteRequired_IEs_tags_93) + /sizeof(asn_DEF_RICsubscriptionDeleteRequired_IEs_tags_93[0]), /* 1 */ + asn_DEF_RICsubscriptionDeleteRequired_IEs_tags_93, /* Same as above */ + sizeof(asn_DEF_RICsubscriptionDeleteRequired_IEs_tags_93) + /sizeof(asn_DEF_RICsubscriptionDeleteRequired_IEs_tags_93[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RICsubscriptionDeleteRequired_IEs_93, + 3, /* Elements count */ + &asn_SPC_RICsubscriptionDeleteRequired_IEs_specs_93 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_100[] = { { ATF_NOFLAGS, 0, offsetof(struct RICindication_IEs__value, choice.RICrequestID), (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -7648,9 +9924,9 @@ static asn_TYPE_member_t asn_MBR_value_72[] = { "RICcallProcessID" }, }; -static const unsigned asn_MAP_value_to_canonical_72[] = { 1, 2, 3, 5, 6, 7, 4, 0 }; -static const unsigned asn_MAP_value_from_canonical_72[] = { 7, 0, 1, 2, 6, 3, 4, 5 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_72[] = { +static const unsigned asn_MAP_value_to_canonical_100[] = { 1, 2, 3, 5, 6, 7, 4, 0 }; +static const unsigned asn_MAP_value_from_canonical_100[] = { 7, 0, 1, 2, 6, 3, 4, 5 }; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_100[] = { { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 2 }, /* RANfunctionID */ { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 2, -1, 1 }, /* RICactionID */ { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 3, -2, 0 }, /* RICindicationSN */ @@ -7660,19 +9936,19 @@ static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_72[] = { { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 4, 0, 0 }, /* RICindicationType */ { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RICrequestID */ }; -static asn_CHOICE_specifics_t asn_SPC_value_specs_72 = { +static asn_CHOICE_specifics_t asn_SPC_value_specs_100 = { sizeof(struct RICindication_IEs__value), offsetof(struct RICindication_IEs__value, _asn_ctx), offsetof(struct RICindication_IEs__value, present), sizeof(((struct RICindication_IEs__value *)0)->present), - asn_MAP_value_tag2el_72, + asn_MAP_value_tag2el_100, 8, /* Count of tags in the map */ - asn_MAP_value_to_canonical_72, - asn_MAP_value_from_canonical_72, + asn_MAP_value_to_canonical_100, + asn_MAP_value_from_canonical_100, -1 /* Extensions start */ }; static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_72 = { +asn_TYPE_descriptor_t asn_DEF_value_100 = { "value", "value", &asn_OP_OPEN_TYPE, @@ -7681,52 +9957,53 @@ asn_TYPE_descriptor_t asn_DEF_value_72 = { 0, /* No tags (pointer) */ 0, /* No tags (count) */ { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_72, + asn_MBR_value_100, 8, /* Elements count */ - &asn_SPC_value_specs_72 /* Additional specs */ + &asn_SPC_value_specs_100 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_RICindication_IEs_69[] = { +asn_TYPE_member_t asn_MBR_RICindication_IEs_97[] = { { ATF_NOFLAGS, 0, offsetof(struct RICindication_IEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_ProtocolIE_ID, 0, - { 0, &asn_PER_memb_id_constr_70, memb_id_constraint_69 }, + { &asn_OER_memb_id_constr_98, &asn_PER_memb_id_constr_98, memb_id_constraint_97 }, 0, 0, /* No default value */ "id" }, { ATF_NOFLAGS, 0, offsetof(struct RICindication_IEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_Criticality, select_RICindication_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_71, memb_criticality_constraint_69 }, + { &asn_OER_memb_criticality_constr_99, &asn_PER_memb_criticality_constr_99, memb_criticality_constraint_97 }, 0, 0, /* No default value */ "criticality" }, { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICindication_IEs, value), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_value_72, + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_100, select_RICindication_IEs_value_type, - { 0, &asn_PER_memb_value_constr_72, memb_value_constraint_69 }, + { &asn_OER_memb_value_constr_100, &asn_PER_memb_value_constr_100, memb_value_constraint_97 }, 0, 0, /* No default value */ "value" }, }; -static const ber_tlv_tag_t asn_DEF_RICindication_IEs_tags_69[] = { +static const ber_tlv_tag_t asn_DEF_RICindication_IEs_tags_97[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -static const asn_TYPE_tag2member_t asn_MAP_RICindication_IEs_tag2el_69[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +static const asn_TYPE_tag2member_t asn_MAP_RICindication_IEs_tag2el_97[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ }; -asn_SEQUENCE_specifics_t asn_SPC_RICindication_IEs_specs_69 = { +asn_SEQUENCE_specifics_t asn_SPC_RICindication_IEs_specs_97 = { sizeof(struct RICindication_IEs), offsetof(struct RICindication_IEs, _asn_ctx), - asn_MAP_RICindication_IEs_tag2el_69, - 2, /* Count of tags in the map */ + asn_MAP_RICindication_IEs_tag2el_97, + 3, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; @@ -7734,19 +10011,19 @@ asn_TYPE_descriptor_t asn_DEF_RICindication_IEs = { "RICindication-IEs", "RICindication-IEs", &asn_OP_SEQUENCE, - asn_DEF_RICindication_IEs_tags_69, - sizeof(asn_DEF_RICindication_IEs_tags_69) - /sizeof(asn_DEF_RICindication_IEs_tags_69[0]), /* 1 */ - asn_DEF_RICindication_IEs_tags_69, /* Same as above */ - sizeof(asn_DEF_RICindication_IEs_tags_69) - /sizeof(asn_DEF_RICindication_IEs_tags_69[0]), /* 1 */ + asn_DEF_RICindication_IEs_tags_97, + sizeof(asn_DEF_RICindication_IEs_tags_97) + /sizeof(asn_DEF_RICindication_IEs_tags_97[0]), /* 1 */ + asn_DEF_RICindication_IEs_tags_97, /* Same as above */ + sizeof(asn_DEF_RICindication_IEs_tags_97) + /sizeof(asn_DEF_RICindication_IEs_tags_97[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICindication_IEs_69, + asn_MBR_RICindication_IEs_97, 3, /* Elements count */ - &asn_SPC_RICindication_IEs_specs_69 /* Additional specs */ + &asn_SPC_RICindication_IEs_specs_97 /* Additional specs */ }; -static asn_TYPE_member_t asn_MBR_value_76[] = { +static asn_TYPE_member_t asn_MBR_value_104[] = { { ATF_NOFLAGS, 0, offsetof(struct RICcontrolRequest_IEs__value, choice.RICrequestID), (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -7802,9 +10079,9 @@ static asn_TYPE_member_t asn_MBR_value_76[] = { "RICcontrolAckRequest" }, }; -static const unsigned asn_MAP_value_to_canonical_76[] = { 1, 2, 3, 4, 5, 0 }; -static const unsigned asn_MAP_value_from_canonical_76[] = { 5, 0, 1, 2, 3, 4 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_76[] = { +static const unsigned asn_MAP_value_to_canonical_104[] = { 1, 2, 3, 4, 5, 0 }; +static const unsigned asn_MAP_value_from_canonical_104[] = { 5, 0, 1, 2, 3, 4 }; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_104[] = { { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* RANfunctionID */ { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 2, 0, 2 }, /* RICcallProcessID */ { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 3, -1, 1 }, /* RICcontrolHeader */ @@ -7812,19 +10089,19 @@ static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_76[] = { { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 5, 0, 0 }, /* RICcontrolAckRequest */ { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RICrequestID */ }; -static asn_CHOICE_specifics_t asn_SPC_value_specs_76 = { +static asn_CHOICE_specifics_t asn_SPC_value_specs_104 = { sizeof(struct RICcontrolRequest_IEs__value), offsetof(struct RICcontrolRequest_IEs__value, _asn_ctx), offsetof(struct RICcontrolRequest_IEs__value, present), sizeof(((struct RICcontrolRequest_IEs__value *)0)->present), - asn_MAP_value_tag2el_76, + asn_MAP_value_tag2el_104, 6, /* Count of tags in the map */ - asn_MAP_value_to_canonical_76, - asn_MAP_value_from_canonical_76, + asn_MAP_value_to_canonical_104, + asn_MAP_value_from_canonical_104, -1 /* Extensions start */ }; static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_76 = { +asn_TYPE_descriptor_t asn_DEF_value_104 = { "value", "value", &asn_OP_OPEN_TYPE, @@ -7833,52 +10110,53 @@ asn_TYPE_descriptor_t asn_DEF_value_76 = { 0, /* No tags (pointer) */ 0, /* No tags (count) */ { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_76, + asn_MBR_value_104, 6, /* Elements count */ - &asn_SPC_value_specs_76 /* Additional specs */ + &asn_SPC_value_specs_104 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_RICcontrolRequest_IEs_73[] = { +asn_TYPE_member_t asn_MBR_RICcontrolRequest_IEs_101[] = { { ATF_NOFLAGS, 0, offsetof(struct RICcontrolRequest_IEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_ProtocolIE_ID, 0, - { 0, &asn_PER_memb_id_constr_74, memb_id_constraint_73 }, + { &asn_OER_memb_id_constr_102, &asn_PER_memb_id_constr_102, memb_id_constraint_101 }, 0, 0, /* No default value */ "id" }, { ATF_NOFLAGS, 0, offsetof(struct RICcontrolRequest_IEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_Criticality, select_RICcontrolRequest_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_75, memb_criticality_constraint_73 }, + { &asn_OER_memb_criticality_constr_103, &asn_PER_memb_criticality_constr_103, memb_criticality_constraint_101 }, 0, 0, /* No default value */ "criticality" }, { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICcontrolRequest_IEs, value), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_value_76, + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_104, select_RICcontrolRequest_IEs_value_type, - { 0, &asn_PER_memb_value_constr_76, memb_value_constraint_73 }, + { &asn_OER_memb_value_constr_104, &asn_PER_memb_value_constr_104, memb_value_constraint_101 }, 0, 0, /* No default value */ "value" }, }; -static const ber_tlv_tag_t asn_DEF_RICcontrolRequest_IEs_tags_73[] = { +static const ber_tlv_tag_t asn_DEF_RICcontrolRequest_IEs_tags_101[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -static const asn_TYPE_tag2member_t asn_MAP_RICcontrolRequest_IEs_tag2el_73[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +static const asn_TYPE_tag2member_t asn_MAP_RICcontrolRequest_IEs_tag2el_101[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ }; -asn_SEQUENCE_specifics_t asn_SPC_RICcontrolRequest_IEs_specs_73 = { +asn_SEQUENCE_specifics_t asn_SPC_RICcontrolRequest_IEs_specs_101 = { sizeof(struct RICcontrolRequest_IEs), offsetof(struct RICcontrolRequest_IEs, _asn_ctx), - asn_MAP_RICcontrolRequest_IEs_tag2el_73, - 2, /* Count of tags in the map */ + asn_MAP_RICcontrolRequest_IEs_tag2el_101, + 3, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; @@ -7886,19 +10164,19 @@ asn_TYPE_descriptor_t asn_DEF_RICcontrolRequest_IEs = { "RICcontrolRequest-IEs", "RICcontrolRequest-IEs", &asn_OP_SEQUENCE, - asn_DEF_RICcontrolRequest_IEs_tags_73, - sizeof(asn_DEF_RICcontrolRequest_IEs_tags_73) - /sizeof(asn_DEF_RICcontrolRequest_IEs_tags_73[0]), /* 1 */ - asn_DEF_RICcontrolRequest_IEs_tags_73, /* Same as above */ - sizeof(asn_DEF_RICcontrolRequest_IEs_tags_73) - /sizeof(asn_DEF_RICcontrolRequest_IEs_tags_73[0]), /* 1 */ + asn_DEF_RICcontrolRequest_IEs_tags_101, + sizeof(asn_DEF_RICcontrolRequest_IEs_tags_101) + /sizeof(asn_DEF_RICcontrolRequest_IEs_tags_101[0]), /* 1 */ + asn_DEF_RICcontrolRequest_IEs_tags_101, /* Same as above */ + sizeof(asn_DEF_RICcontrolRequest_IEs_tags_101) + /sizeof(asn_DEF_RICcontrolRequest_IEs_tags_101[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICcontrolRequest_IEs_73, + asn_MBR_RICcontrolRequest_IEs_101, 3, /* Elements count */ - &asn_SPC_RICcontrolRequest_IEs_specs_73 /* Additional specs */ + &asn_SPC_RICcontrolRequest_IEs_specs_101 /* Additional specs */ }; -static asn_TYPE_member_t asn_MBR_value_80[] = { +static asn_TYPE_member_t asn_MBR_value_108[] = { { ATF_NOFLAGS, 0, offsetof(struct RICcontrolAcknowledge_IEs__value, choice.RICrequestID), (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -7926,15 +10204,6 @@ static asn_TYPE_member_t asn_MBR_value_80[] = { 0, 0, /* No default value */ "RICcallProcessID" }, - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolAcknowledge_IEs__value, choice.RICcontrolStatus), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_RICcontrolStatus, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICcontrolStatus" - }, { ATF_NOFLAGS, 0, offsetof(struct RICcontrolAcknowledge_IEs__value, choice.RICcontrolOutcome), (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 0, @@ -7945,28 +10214,27 @@ static asn_TYPE_member_t asn_MBR_value_80[] = { "RICcontrolOutcome" }, }; -static const unsigned asn_MAP_value_to_canonical_80[] = { 1, 2, 4, 3, 0 }; -static const unsigned asn_MAP_value_from_canonical_80[] = { 4, 0, 1, 3, 2 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_80[] = { +static const unsigned asn_MAP_value_to_canonical_108[] = { 1, 2, 3, 0 }; +static const unsigned asn_MAP_value_from_canonical_108[] = { 3, 0, 1, 2 }; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_108[] = { { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* RANfunctionID */ { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 2, 0, 1 }, /* RICcallProcessID */ - { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 4, -1, 0 }, /* RICcontrolOutcome */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 3, 0, 0 }, /* RICcontrolStatus */ + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 3, -1, 0 }, /* RICcontrolOutcome */ { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RICrequestID */ }; -static asn_CHOICE_specifics_t asn_SPC_value_specs_80 = { +static asn_CHOICE_specifics_t asn_SPC_value_specs_108 = { sizeof(struct RICcontrolAcknowledge_IEs__value), offsetof(struct RICcontrolAcknowledge_IEs__value, _asn_ctx), offsetof(struct RICcontrolAcknowledge_IEs__value, present), sizeof(((struct RICcontrolAcknowledge_IEs__value *)0)->present), - asn_MAP_value_tag2el_80, - 5, /* Count of tags in the map */ - asn_MAP_value_to_canonical_80, - asn_MAP_value_from_canonical_80, + asn_MAP_value_tag2el_108, + 4, /* Count of tags in the map */ + asn_MAP_value_to_canonical_108, + asn_MAP_value_from_canonical_108, -1 /* Extensions start */ }; static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_80 = { +asn_TYPE_descriptor_t asn_DEF_value_108 = { "value", "value", &asn_OP_OPEN_TYPE, @@ -7975,52 +10243,53 @@ asn_TYPE_descriptor_t asn_DEF_value_80 = { 0, /* No tags (pointer) */ 0, /* No tags (count) */ { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_80, - 5, /* Elements count */ - &asn_SPC_value_specs_80 /* Additional specs */ + asn_MBR_value_108, + 4, /* Elements count */ + &asn_SPC_value_specs_108 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_RICcontrolAcknowledge_IEs_77[] = { +asn_TYPE_member_t asn_MBR_RICcontrolAcknowledge_IEs_105[] = { { ATF_NOFLAGS, 0, offsetof(struct RICcontrolAcknowledge_IEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_ProtocolIE_ID, 0, - { 0, &asn_PER_memb_id_constr_78, memb_id_constraint_77 }, + { &asn_OER_memb_id_constr_106, &asn_PER_memb_id_constr_106, memb_id_constraint_105 }, 0, 0, /* No default value */ "id" }, { ATF_NOFLAGS, 0, offsetof(struct RICcontrolAcknowledge_IEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_Criticality, select_RICcontrolAcknowledge_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_79, memb_criticality_constraint_77 }, + { &asn_OER_memb_criticality_constr_107, &asn_PER_memb_criticality_constr_107, memb_criticality_constraint_105 }, 0, 0, /* No default value */ "criticality" }, { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICcontrolAcknowledge_IEs, value), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_value_80, + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_108, select_RICcontrolAcknowledge_IEs_value_type, - { 0, &asn_PER_memb_value_constr_80, memb_value_constraint_77 }, + { &asn_OER_memb_value_constr_108, &asn_PER_memb_value_constr_108, memb_value_constraint_105 }, 0, 0, /* No default value */ "value" }, }; -static const ber_tlv_tag_t asn_DEF_RICcontrolAcknowledge_IEs_tags_77[] = { +static const ber_tlv_tag_t asn_DEF_RICcontrolAcknowledge_IEs_tags_105[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -static const asn_TYPE_tag2member_t asn_MAP_RICcontrolAcknowledge_IEs_tag2el_77[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +static const asn_TYPE_tag2member_t asn_MAP_RICcontrolAcknowledge_IEs_tag2el_105[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ }; -asn_SEQUENCE_specifics_t asn_SPC_RICcontrolAcknowledge_IEs_specs_77 = { +asn_SEQUENCE_specifics_t asn_SPC_RICcontrolAcknowledge_IEs_specs_105 = { sizeof(struct RICcontrolAcknowledge_IEs), offsetof(struct RICcontrolAcknowledge_IEs, _asn_ctx), - asn_MAP_RICcontrolAcknowledge_IEs_tag2el_77, - 2, /* Count of tags in the map */ + asn_MAP_RICcontrolAcknowledge_IEs_tag2el_105, + 3, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; @@ -8028,19 +10297,19 @@ asn_TYPE_descriptor_t asn_DEF_RICcontrolAcknowledge_IEs = { "RICcontrolAcknowledge-IEs", "RICcontrolAcknowledge-IEs", &asn_OP_SEQUENCE, - asn_DEF_RICcontrolAcknowledge_IEs_tags_77, - sizeof(asn_DEF_RICcontrolAcknowledge_IEs_tags_77) - /sizeof(asn_DEF_RICcontrolAcknowledge_IEs_tags_77[0]), /* 1 */ - asn_DEF_RICcontrolAcknowledge_IEs_tags_77, /* Same as above */ - sizeof(asn_DEF_RICcontrolAcknowledge_IEs_tags_77) - /sizeof(asn_DEF_RICcontrolAcknowledge_IEs_tags_77[0]), /* 1 */ + asn_DEF_RICcontrolAcknowledge_IEs_tags_105, + sizeof(asn_DEF_RICcontrolAcknowledge_IEs_tags_105) + /sizeof(asn_DEF_RICcontrolAcknowledge_IEs_tags_105[0]), /* 1 */ + asn_DEF_RICcontrolAcknowledge_IEs_tags_105, /* Same as above */ + sizeof(asn_DEF_RICcontrolAcknowledge_IEs_tags_105) + /sizeof(asn_DEF_RICcontrolAcknowledge_IEs_tags_105[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICcontrolAcknowledge_IEs_77, + asn_MBR_RICcontrolAcknowledge_IEs_105, 3, /* Elements count */ - &asn_SPC_RICcontrolAcknowledge_IEs_specs_77 /* Additional specs */ + &asn_SPC_RICcontrolAcknowledge_IEs_specs_105 /* Additional specs */ }; -static asn_TYPE_member_t asn_MBR_value_84[] = { +static asn_TYPE_member_t asn_MBR_value_112[] = { { ATF_NOFLAGS, 0, offsetof(struct RICcontrolFailure_IEs__value, choice.RICrequestID), (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -8087,32 +10356,33 @@ static asn_TYPE_member_t asn_MBR_value_84[] = { "RICcontrolOutcome" }, }; -static const unsigned asn_MAP_value_to_canonical_84[] = { 1, 2, 4, 0, 3 }; -static const unsigned asn_MAP_value_from_canonical_84[] = { 3, 0, 1, 4, 2 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_84[] = { +static const unsigned asn_MAP_value_to_canonical_112[] = { 1, 2, 4, 0, 3 }; +static const unsigned asn_MAP_value_from_canonical_112[] = { 3, 0, 1, 4, 2 }; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_112[] = { { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* RANfunctionID */ { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 2, 0, 1 }, /* RICcallProcessID */ { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 4, -1, 0 }, /* RICcontrolOutcome */ { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 }, /* RICrequestID */ { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 3, 0, 0 }, /* ricRequest */ { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 3, 0, 0 }, /* ricService */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 3, 0, 0 }, /* transport */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* protocol */ - { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 3, 0, 0 } /* misc */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 3, 0, 0 }, /* e2Node */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* transport */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 3, 0, 0 }, /* protocol */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 3, 0, 0 } /* misc */ }; -static asn_CHOICE_specifics_t asn_SPC_value_specs_84 = { +static asn_CHOICE_specifics_t asn_SPC_value_specs_112 = { sizeof(struct RICcontrolFailure_IEs__value), offsetof(struct RICcontrolFailure_IEs__value, _asn_ctx), offsetof(struct RICcontrolFailure_IEs__value, present), sizeof(((struct RICcontrolFailure_IEs__value *)0)->present), - asn_MAP_value_tag2el_84, - 9, /* Count of tags in the map */ - asn_MAP_value_to_canonical_84, - asn_MAP_value_from_canonical_84, + asn_MAP_value_tag2el_112, + 10, /* Count of tags in the map */ + asn_MAP_value_to_canonical_112, + asn_MAP_value_from_canonical_112, -1 /* Extensions start */ }; static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_84 = { +asn_TYPE_descriptor_t asn_DEF_value_112 = { "value", "value", &asn_OP_OPEN_TYPE, @@ -8121,52 +10391,53 @@ asn_TYPE_descriptor_t asn_DEF_value_84 = { 0, /* No tags (pointer) */ 0, /* No tags (count) */ { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_84, + asn_MBR_value_112, 5, /* Elements count */ - &asn_SPC_value_specs_84 /* Additional specs */ + &asn_SPC_value_specs_112 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_RICcontrolFailure_IEs_81[] = { +asn_TYPE_member_t asn_MBR_RICcontrolFailure_IEs_109[] = { { ATF_NOFLAGS, 0, offsetof(struct RICcontrolFailure_IEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_ProtocolIE_ID, 0, - { 0, &asn_PER_memb_id_constr_82, memb_id_constraint_81 }, + { &asn_OER_memb_id_constr_110, &asn_PER_memb_id_constr_110, memb_id_constraint_109 }, 0, 0, /* No default value */ "id" }, { ATF_NOFLAGS, 0, offsetof(struct RICcontrolFailure_IEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_Criticality, select_RICcontrolFailure_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_83, memb_criticality_constraint_81 }, + { &asn_OER_memb_criticality_constr_111, &asn_PER_memb_criticality_constr_111, memb_criticality_constraint_109 }, 0, 0, /* No default value */ "criticality" }, { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICcontrolFailure_IEs, value), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_value_84, + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_112, select_RICcontrolFailure_IEs_value_type, - { 0, &asn_PER_memb_value_constr_84, memb_value_constraint_81 }, + { &asn_OER_memb_value_constr_112, &asn_PER_memb_value_constr_112, memb_value_constraint_109 }, 0, 0, /* No default value */ "value" }, }; -static const ber_tlv_tag_t asn_DEF_RICcontrolFailure_IEs_tags_81[] = { +static const ber_tlv_tag_t asn_DEF_RICcontrolFailure_IEs_tags_109[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -static const asn_TYPE_tag2member_t asn_MAP_RICcontrolFailure_IEs_tag2el_81[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +static const asn_TYPE_tag2member_t asn_MAP_RICcontrolFailure_IEs_tag2el_109[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ }; -asn_SEQUENCE_specifics_t asn_SPC_RICcontrolFailure_IEs_specs_81 = { +asn_SEQUENCE_specifics_t asn_SPC_RICcontrolFailure_IEs_specs_109 = { sizeof(struct RICcontrolFailure_IEs), offsetof(struct RICcontrolFailure_IEs, _asn_ctx), - asn_MAP_RICcontrolFailure_IEs_tag2el_81, - 2, /* Count of tags in the map */ + asn_MAP_RICcontrolFailure_IEs_tag2el_109, + 3, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; @@ -8174,19 +10445,28 @@ asn_TYPE_descriptor_t asn_DEF_RICcontrolFailure_IEs = { "RICcontrolFailure-IEs", "RICcontrolFailure-IEs", &asn_OP_SEQUENCE, - asn_DEF_RICcontrolFailure_IEs_tags_81, - sizeof(asn_DEF_RICcontrolFailure_IEs_tags_81) - /sizeof(asn_DEF_RICcontrolFailure_IEs_tags_81[0]), /* 1 */ - asn_DEF_RICcontrolFailure_IEs_tags_81, /* Same as above */ - sizeof(asn_DEF_RICcontrolFailure_IEs_tags_81) - /sizeof(asn_DEF_RICcontrolFailure_IEs_tags_81[0]), /* 1 */ + asn_DEF_RICcontrolFailure_IEs_tags_109, + sizeof(asn_DEF_RICcontrolFailure_IEs_tags_109) + /sizeof(asn_DEF_RICcontrolFailure_IEs_tags_109[0]), /* 1 */ + asn_DEF_RICcontrolFailure_IEs_tags_109, /* Same as above */ + sizeof(asn_DEF_RICcontrolFailure_IEs_tags_109) + /sizeof(asn_DEF_RICcontrolFailure_IEs_tags_109[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICcontrolFailure_IEs_81, + asn_MBR_RICcontrolFailure_IEs_109, 3, /* Elements count */ - &asn_SPC_RICcontrolFailure_IEs_specs_81 /* Additional specs */ + &asn_SPC_RICcontrolFailure_IEs_specs_109 /* Additional specs */ }; -static asn_TYPE_member_t asn_MBR_value_88[] = { +static asn_TYPE_member_t asn_MBR_value_116[] = { + { ATF_NOFLAGS, 0, offsetof(struct ErrorIndication_IEs__value, choice.TransactionID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_TransactionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "TransactionID" + }, { ATF_NOFLAGS, 0, offsetof(struct ErrorIndication_IEs__value, choice.RICrequestID), (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -8224,31 +10504,33 @@ static asn_TYPE_member_t asn_MBR_value_88[] = { "CriticalityDiagnostics" }, }; -static const unsigned asn_MAP_value_to_canonical_88[] = { 1, 0, 3, 2 }; -static const unsigned asn_MAP_value_from_canonical_88[] = { 1, 0, 3, 2 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_88[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* RANfunctionID */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 1 }, /* RICrequestID */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -1, 0 }, /* CriticalityDiagnostics */ - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 2, 0, 0 }, /* ricRequest */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 2, 0, 0 }, /* ricService */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* transport */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 2, 0, 0 }, /* protocol */ - { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 2, 0, 0 } /* misc */ +static const unsigned asn_MAP_value_to_canonical_116[] = { 0, 2, 1, 4, 3 }; +static const unsigned asn_MAP_value_from_canonical_116[] = { 0, 2, 1, 4, 3 }; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_116[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 1 }, /* TransactionID */ + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 2, -1, 0 }, /* RANfunctionID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 1 }, /* RICrequestID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, -1, 0 }, /* CriticalityDiagnostics */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 3, 0, 0 }, /* ricRequest */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 3, 0, 0 }, /* ricService */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 3, 0, 0 }, /* e2Node */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* transport */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 3, 0, 0 }, /* protocol */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 3, 0, 0 } /* misc */ }; -static asn_CHOICE_specifics_t asn_SPC_value_specs_88 = { +static asn_CHOICE_specifics_t asn_SPC_value_specs_116 = { sizeof(struct ErrorIndication_IEs__value), offsetof(struct ErrorIndication_IEs__value, _asn_ctx), offsetof(struct ErrorIndication_IEs__value, present), sizeof(((struct ErrorIndication_IEs__value *)0)->present), - asn_MAP_value_tag2el_88, - 8, /* Count of tags in the map */ - asn_MAP_value_to_canonical_88, - asn_MAP_value_from_canonical_88, + asn_MAP_value_tag2el_116, + 10, /* Count of tags in the map */ + asn_MAP_value_to_canonical_116, + asn_MAP_value_from_canonical_116, -1 /* Extensions start */ }; static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_88 = { +asn_TYPE_descriptor_t asn_DEF_value_116 = { "value", "value", &asn_OP_OPEN_TYPE, @@ -8257,52 +10539,53 @@ asn_TYPE_descriptor_t asn_DEF_value_88 = { 0, /* No tags (pointer) */ 0, /* No tags (count) */ { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_88, - 4, /* Elements count */ - &asn_SPC_value_specs_88 /* Additional specs */ + asn_MBR_value_116, + 5, /* Elements count */ + &asn_SPC_value_specs_116 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_ErrorIndication_IEs_85[] = { +asn_TYPE_member_t asn_MBR_ErrorIndication_IEs_113[] = { { ATF_NOFLAGS, 0, offsetof(struct ErrorIndication_IEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_ProtocolIE_ID, 0, - { 0, &asn_PER_memb_id_constr_86, memb_id_constraint_85 }, + { &asn_OER_memb_id_constr_114, &asn_PER_memb_id_constr_114, memb_id_constraint_113 }, 0, 0, /* No default value */ "id" }, { ATF_NOFLAGS, 0, offsetof(struct ErrorIndication_IEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_Criticality, select_ErrorIndication_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_87, memb_criticality_constraint_85 }, + { &asn_OER_memb_criticality_constr_115, &asn_PER_memb_criticality_constr_115, memb_criticality_constraint_113 }, 0, 0, /* No default value */ "criticality" }, { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ErrorIndication_IEs, value), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_value_88, + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_116, select_ErrorIndication_IEs_value_type, - { 0, &asn_PER_memb_value_constr_88, memb_value_constraint_85 }, + { &asn_OER_memb_value_constr_116, &asn_PER_memb_value_constr_116, memb_value_constraint_113 }, 0, 0, /* No default value */ "value" }, }; -static const ber_tlv_tag_t asn_DEF_ErrorIndication_IEs_tags_85[] = { +static const ber_tlv_tag_t asn_DEF_ErrorIndication_IEs_tags_113[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -static const asn_TYPE_tag2member_t asn_MAP_ErrorIndication_IEs_tag2el_85[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +static const asn_TYPE_tag2member_t asn_MAP_ErrorIndication_IEs_tag2el_113[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ }; -asn_SEQUENCE_specifics_t asn_SPC_ErrorIndication_IEs_specs_85 = { +asn_SEQUENCE_specifics_t asn_SPC_ErrorIndication_IEs_specs_113 = { sizeof(struct ErrorIndication_IEs), offsetof(struct ErrorIndication_IEs, _asn_ctx), - asn_MAP_ErrorIndication_IEs_tag2el_85, - 2, /* Count of tags in the map */ + asn_MAP_ErrorIndication_IEs_tag2el_113, + 3, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; @@ -8310,19 +10593,28 @@ asn_TYPE_descriptor_t asn_DEF_ErrorIndication_IEs = { "ErrorIndication-IEs", "ErrorIndication-IEs", &asn_OP_SEQUENCE, - asn_DEF_ErrorIndication_IEs_tags_85, - sizeof(asn_DEF_ErrorIndication_IEs_tags_85) - /sizeof(asn_DEF_ErrorIndication_IEs_tags_85[0]), /* 1 */ - asn_DEF_ErrorIndication_IEs_tags_85, /* Same as above */ - sizeof(asn_DEF_ErrorIndication_IEs_tags_85) - /sizeof(asn_DEF_ErrorIndication_IEs_tags_85[0]), /* 1 */ + asn_DEF_ErrorIndication_IEs_tags_113, + sizeof(asn_DEF_ErrorIndication_IEs_tags_113) + /sizeof(asn_DEF_ErrorIndication_IEs_tags_113[0]), /* 1 */ + asn_DEF_ErrorIndication_IEs_tags_113, /* Same as above */ + sizeof(asn_DEF_ErrorIndication_IEs_tags_113) + /sizeof(asn_DEF_ErrorIndication_IEs_tags_113[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_ErrorIndication_IEs_85, + asn_MBR_ErrorIndication_IEs_113, 3, /* Elements count */ - &asn_SPC_ErrorIndication_IEs_specs_85 /* Additional specs */ + &asn_SPC_ErrorIndication_IEs_specs_113 /* Additional specs */ }; -static asn_TYPE_member_t asn_MBR_value_92[] = { +static asn_TYPE_member_t asn_MBR_value_120[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2setupRequestIEs__value, choice.TransactionID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_TransactionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "TransactionID" + }, { ATF_NOFLAGS, 0, offsetof(struct E2setupRequestIEs__value, choice.GlobalE2node_ID), -1 /* Ambiguous tag (CHOICE?) */, 0, @@ -8341,39 +10633,40 @@ static asn_TYPE_member_t asn_MBR_value_92[] = { 0, 0, /* No default value */ "RANfunctions-List" }, - { ATF_NOFLAGS, 0, offsetof(struct E2setupRequestIEs__value, choice.E2nodeComponentConfigUpdate_List), + { ATF_NOFLAGS, 0, offsetof(struct E2setupRequestIEs__value, choice.E2nodeComponentConfigAddition_List), (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, - &asn_DEF_E2nodeComponentConfigUpdate_List, + &asn_DEF_E2nodeComponentConfigAddition_List, 0, { 0, 0, 0 }, 0, 0, /* No default value */ - "E2nodeComponentConfigUpdate-List" + "E2nodeComponentConfigAddition-List" }, }; -static const unsigned asn_MAP_value_to_canonical_92[] = { 1, 2, 0 }; -static const unsigned asn_MAP_value_from_canonical_92[] = { 2, 0, 1 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_92[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 1 }, /* RANfunctions-List */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -1, 0 }, /* E2nodeComponentConfigUpdate-List */ - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* gNB */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 0, 0, 0 }, /* en-gNB */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 0, 0, 0 }, /* ng-eNB */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 0, 0, 0 } /* eNB */ +static const unsigned asn_MAP_value_to_canonical_120[] = { 0, 2, 3, 1 }; +static const unsigned asn_MAP_value_from_canonical_120[] = { 0, 3, 1, 2 }; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_120[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* TransactionID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, 0, 1 }, /* RANfunctions-List */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -1, 0 }, /* E2nodeComponentConfigAddition-List */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 1, 0, 0 }, /* gNB */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* en-gNB */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 1, 0, 0 }, /* ng-eNB */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 1, 0, 0 } /* eNB */ }; -static asn_CHOICE_specifics_t asn_SPC_value_specs_92 = { +static asn_CHOICE_specifics_t asn_SPC_value_specs_120 = { sizeof(struct E2setupRequestIEs__value), offsetof(struct E2setupRequestIEs__value, _asn_ctx), offsetof(struct E2setupRequestIEs__value, present), sizeof(((struct E2setupRequestIEs__value *)0)->present), - asn_MAP_value_tag2el_92, - 6, /* Count of tags in the map */ - asn_MAP_value_to_canonical_92, - asn_MAP_value_from_canonical_92, + asn_MAP_value_tag2el_120, + 7, /* Count of tags in the map */ + asn_MAP_value_to_canonical_120, + asn_MAP_value_from_canonical_120, -1 /* Extensions start */ }; static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_92 = { +asn_TYPE_descriptor_t asn_DEF_value_120 = { "value", "value", &asn_OP_OPEN_TYPE, @@ -8382,52 +10675,53 @@ asn_TYPE_descriptor_t asn_DEF_value_92 = { 0, /* No tags (pointer) */ 0, /* No tags (count) */ { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_92, - 3, /* Elements count */ - &asn_SPC_value_specs_92 /* Additional specs */ + asn_MBR_value_120, + 4, /* Elements count */ + &asn_SPC_value_specs_120 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_E2setupRequestIEs_89[] = { +asn_TYPE_member_t asn_MBR_E2setupRequestIEs_117[] = { { ATF_NOFLAGS, 0, offsetof(struct E2setupRequestIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_ProtocolIE_ID, 0, - { 0, &asn_PER_memb_id_constr_90, memb_id_constraint_89 }, + { &asn_OER_memb_id_constr_118, &asn_PER_memb_id_constr_118, memb_id_constraint_117 }, 0, 0, /* No default value */ "id" }, { ATF_NOFLAGS, 0, offsetof(struct E2setupRequestIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_Criticality, select_E2setupRequestIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_91, memb_criticality_constraint_89 }, + { &asn_OER_memb_criticality_constr_119, &asn_PER_memb_criticality_constr_119, memb_criticality_constraint_117 }, 0, 0, /* No default value */ "criticality" }, { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E2setupRequestIEs, value), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_value_92, + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_120, select_E2setupRequestIEs_value_type, - { 0, &asn_PER_memb_value_constr_92, memb_value_constraint_89 }, + { &asn_OER_memb_value_constr_120, &asn_PER_memb_value_constr_120, memb_value_constraint_117 }, 0, 0, /* No default value */ "value" }, }; -static const ber_tlv_tag_t asn_DEF_E2setupRequestIEs_tags_89[] = { +static const ber_tlv_tag_t asn_DEF_E2setupRequestIEs_tags_117[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -static const asn_TYPE_tag2member_t asn_MAP_E2setupRequestIEs_tag2el_89[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +static const asn_TYPE_tag2member_t asn_MAP_E2setupRequestIEs_tag2el_117[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ }; -asn_SEQUENCE_specifics_t asn_SPC_E2setupRequestIEs_specs_89 = { +asn_SEQUENCE_specifics_t asn_SPC_E2setupRequestIEs_specs_117 = { sizeof(struct E2setupRequestIEs), offsetof(struct E2setupRequestIEs, _asn_ctx), - asn_MAP_E2setupRequestIEs_tag2el_89, - 2, /* Count of tags in the map */ + asn_MAP_E2setupRequestIEs_tag2el_117, + 3, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; @@ -8435,19 +10729,28 @@ asn_TYPE_descriptor_t asn_DEF_E2setupRequestIEs = { "E2setupRequestIEs", "E2setupRequestIEs", &asn_OP_SEQUENCE, - asn_DEF_E2setupRequestIEs_tags_89, - sizeof(asn_DEF_E2setupRequestIEs_tags_89) - /sizeof(asn_DEF_E2setupRequestIEs_tags_89[0]), /* 1 */ - asn_DEF_E2setupRequestIEs_tags_89, /* Same as above */ - sizeof(asn_DEF_E2setupRequestIEs_tags_89) - /sizeof(asn_DEF_E2setupRequestIEs_tags_89[0]), /* 1 */ + asn_DEF_E2setupRequestIEs_tags_117, + sizeof(asn_DEF_E2setupRequestIEs_tags_117) + /sizeof(asn_DEF_E2setupRequestIEs_tags_117[0]), /* 1 */ + asn_DEF_E2setupRequestIEs_tags_117, /* Same as above */ + sizeof(asn_DEF_E2setupRequestIEs_tags_117) + /sizeof(asn_DEF_E2setupRequestIEs_tags_117[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_E2setupRequestIEs_89, + asn_MBR_E2setupRequestIEs_117, 3, /* Elements count */ - &asn_SPC_E2setupRequestIEs_specs_89 /* Additional specs */ + &asn_SPC_E2setupRequestIEs_specs_117 /* Additional specs */ }; -static asn_TYPE_member_t asn_MBR_value_96[] = { +static asn_TYPE_member_t asn_MBR_value_124[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2setupResponseIEs__value, choice.TransactionID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_TransactionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "TransactionID" + }, { ATF_NOFLAGS, 0, offsetof(struct E2setupResponseIEs__value, choice.GlobalRIC_ID), (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -8475,34 +10778,35 @@ static asn_TYPE_member_t asn_MBR_value_96[] = { 0, 0, /* No default value */ "RANfunctionsIDcause-List" }, - { ATF_NOFLAGS, 0, offsetof(struct E2setupResponseIEs__value, choice.E2nodeComponentConfigUpdateAck_List), + { ATF_NOFLAGS, 0, offsetof(struct E2setupResponseIEs__value, choice.E2nodeComponentConfigAdditionAck_List), (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, - &asn_DEF_E2nodeComponentConfigUpdateAck_List, + &asn_DEF_E2nodeComponentConfigAdditionAck_List, 0, { 0, 0, 0 }, 0, 0, /* No default value */ - "E2nodeComponentConfigUpdateAck-List" + "E2nodeComponentConfigAdditionAck-List" }, }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_96[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 3 }, /* GlobalRIC-ID */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 2 }, /* RANfunctionsID-List */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -2, 1 }, /* RANfunctionsIDcause-List */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -3, 0 } /* E2nodeComponentConfigUpdateAck-List */ +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_124[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* TransactionID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 3 }, /* GlobalRIC-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -1, 2 }, /* RANfunctionsID-List */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -2, 1 }, /* RANfunctionsIDcause-List */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, -3, 0 } /* E2nodeComponentConfigAdditionAck-List */ }; -static asn_CHOICE_specifics_t asn_SPC_value_specs_96 = { +static asn_CHOICE_specifics_t asn_SPC_value_specs_124 = { sizeof(struct E2setupResponseIEs__value), offsetof(struct E2setupResponseIEs__value, _asn_ctx), offsetof(struct E2setupResponseIEs__value, present), sizeof(((struct E2setupResponseIEs__value *)0)->present), - asn_MAP_value_tag2el_96, - 4, /* Count of tags in the map */ + asn_MAP_value_tag2el_124, + 5, /* Count of tags in the map */ 0, 0, -1 /* Extensions start */ }; static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_96 = { +asn_TYPE_descriptor_t asn_DEF_value_124 = { "value", "value", &asn_OP_OPEN_TYPE, @@ -8511,52 +10815,53 @@ asn_TYPE_descriptor_t asn_DEF_value_96 = { 0, /* No tags (pointer) */ 0, /* No tags (count) */ { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_96, - 4, /* Elements count */ - &asn_SPC_value_specs_96 /* Additional specs */ + asn_MBR_value_124, + 5, /* Elements count */ + &asn_SPC_value_specs_124 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_E2setupResponseIEs_93[] = { +asn_TYPE_member_t asn_MBR_E2setupResponseIEs_121[] = { { ATF_NOFLAGS, 0, offsetof(struct E2setupResponseIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_ProtocolIE_ID, 0, - { 0, &asn_PER_memb_id_constr_94, memb_id_constraint_93 }, + { &asn_OER_memb_id_constr_122, &asn_PER_memb_id_constr_122, memb_id_constraint_121 }, 0, 0, /* No default value */ "id" }, { ATF_NOFLAGS, 0, offsetof(struct E2setupResponseIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_Criticality, select_E2setupResponseIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_95, memb_criticality_constraint_93 }, + { &asn_OER_memb_criticality_constr_123, &asn_PER_memb_criticality_constr_123, memb_criticality_constraint_121 }, 0, 0, /* No default value */ "criticality" }, { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E2setupResponseIEs, value), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_value_96, + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_124, select_E2setupResponseIEs_value_type, - { 0, &asn_PER_memb_value_constr_96, memb_value_constraint_93 }, + { &asn_OER_memb_value_constr_124, &asn_PER_memb_value_constr_124, memb_value_constraint_121 }, 0, 0, /* No default value */ "value" }, }; -static const ber_tlv_tag_t asn_DEF_E2setupResponseIEs_tags_93[] = { +static const ber_tlv_tag_t asn_DEF_E2setupResponseIEs_tags_121[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -static const asn_TYPE_tag2member_t asn_MAP_E2setupResponseIEs_tag2el_93[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +static const asn_TYPE_tag2member_t asn_MAP_E2setupResponseIEs_tag2el_121[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ }; -asn_SEQUENCE_specifics_t asn_SPC_E2setupResponseIEs_specs_93 = { +asn_SEQUENCE_specifics_t asn_SPC_E2setupResponseIEs_specs_121 = { sizeof(struct E2setupResponseIEs), offsetof(struct E2setupResponseIEs, _asn_ctx), - asn_MAP_E2setupResponseIEs_tag2el_93, - 2, /* Count of tags in the map */ + asn_MAP_E2setupResponseIEs_tag2el_121, + 3, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; @@ -8564,19 +10869,28 @@ asn_TYPE_descriptor_t asn_DEF_E2setupResponseIEs = { "E2setupResponseIEs", "E2setupResponseIEs", &asn_OP_SEQUENCE, - asn_DEF_E2setupResponseIEs_tags_93, - sizeof(asn_DEF_E2setupResponseIEs_tags_93) - /sizeof(asn_DEF_E2setupResponseIEs_tags_93[0]), /* 1 */ - asn_DEF_E2setupResponseIEs_tags_93, /* Same as above */ - sizeof(asn_DEF_E2setupResponseIEs_tags_93) - /sizeof(asn_DEF_E2setupResponseIEs_tags_93[0]), /* 1 */ + asn_DEF_E2setupResponseIEs_tags_121, + sizeof(asn_DEF_E2setupResponseIEs_tags_121) + /sizeof(asn_DEF_E2setupResponseIEs_tags_121[0]), /* 1 */ + asn_DEF_E2setupResponseIEs_tags_121, /* Same as above */ + sizeof(asn_DEF_E2setupResponseIEs_tags_121) + /sizeof(asn_DEF_E2setupResponseIEs_tags_121[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_E2setupResponseIEs_93, + asn_MBR_E2setupResponseIEs_121, 3, /* Elements count */ - &asn_SPC_E2setupResponseIEs_specs_93 /* Additional specs */ + &asn_SPC_E2setupResponseIEs_specs_121 /* Additional specs */ }; -static asn_TYPE_member_t asn_MBR_value_100[] = { +static asn_TYPE_member_t asn_MBR_value_128[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2setupFailureIEs__value, choice.TransactionID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_TransactionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "TransactionID" + }, { ATF_NOFLAGS, 0, offsetof(struct E2setupFailureIEs__value, choice.Cause), -1 /* Ambiguous tag (CHOICE?) */, 0, @@ -8614,31 +10928,33 @@ static asn_TYPE_member_t asn_MBR_value_100[] = { "TNLinformation" }, }; -static const unsigned asn_MAP_value_to_canonical_100[] = { 1, 2, 3, 0 }; -static const unsigned asn_MAP_value_from_canonical_100[] = { 3, 0, 1, 2 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_100[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 }, /* TimeToWait */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, 0, 1 }, /* CriticalityDiagnostics */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -1, 0 }, /* TNLinformation */ - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ricRequest */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 0, 0, 0 }, /* ricService */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 0, 0, 0 }, /* transport */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 0, 0, 0 }, /* protocol */ - { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 0, 0, 0 } /* misc */ +static const unsigned asn_MAP_value_to_canonical_128[] = { 0, 2, 3, 4, 1 }; +static const unsigned asn_MAP_value_from_canonical_128[] = { 0, 4, 1, 2, 3 }; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_128[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* TransactionID */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 2, 0, 0 }, /* TimeToWait */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, 0, 1 }, /* CriticalityDiagnostics */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, -1, 0 }, /* TNLinformation */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 1, 0, 0 }, /* ricRequest */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ricService */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 1, 0, 0 }, /* e2Node */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 1, 0, 0 }, /* transport */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 1, 0, 0 }, /* protocol */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 1, 0, 0 } /* misc */ }; -static asn_CHOICE_specifics_t asn_SPC_value_specs_100 = { +static asn_CHOICE_specifics_t asn_SPC_value_specs_128 = { sizeof(struct E2setupFailureIEs__value), offsetof(struct E2setupFailureIEs__value, _asn_ctx), offsetof(struct E2setupFailureIEs__value, present), sizeof(((struct E2setupFailureIEs__value *)0)->present), - asn_MAP_value_tag2el_100, - 8, /* Count of tags in the map */ - asn_MAP_value_to_canonical_100, - asn_MAP_value_from_canonical_100, + asn_MAP_value_tag2el_128, + 10, /* Count of tags in the map */ + asn_MAP_value_to_canonical_128, + asn_MAP_value_from_canonical_128, -1 /* Extensions start */ }; static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_100 = { +asn_TYPE_descriptor_t asn_DEF_value_128 = { "value", "value", &asn_OP_OPEN_TYPE, @@ -8647,52 +10963,53 @@ asn_TYPE_descriptor_t asn_DEF_value_100 = { 0, /* No tags (pointer) */ 0, /* No tags (count) */ { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_100, - 4, /* Elements count */ - &asn_SPC_value_specs_100 /* Additional specs */ + asn_MBR_value_128, + 5, /* Elements count */ + &asn_SPC_value_specs_128 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_E2setupFailureIEs_97[] = { +asn_TYPE_member_t asn_MBR_E2setupFailureIEs_125[] = { { ATF_NOFLAGS, 0, offsetof(struct E2setupFailureIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_ProtocolIE_ID, 0, - { 0, &asn_PER_memb_id_constr_98, memb_id_constraint_97 }, + { &asn_OER_memb_id_constr_126, &asn_PER_memb_id_constr_126, memb_id_constraint_125 }, 0, 0, /* No default value */ "id" }, { ATF_NOFLAGS, 0, offsetof(struct E2setupFailureIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_Criticality, select_E2setupFailureIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_99, memb_criticality_constraint_97 }, + { &asn_OER_memb_criticality_constr_127, &asn_PER_memb_criticality_constr_127, memb_criticality_constraint_125 }, 0, 0, /* No default value */ "criticality" }, { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E2setupFailureIEs, value), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_value_100, + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_128, select_E2setupFailureIEs_value_type, - { 0, &asn_PER_memb_value_constr_100, memb_value_constraint_97 }, + { &asn_OER_memb_value_constr_128, &asn_PER_memb_value_constr_128, memb_value_constraint_125 }, 0, 0, /* No default value */ "value" }, }; -static const ber_tlv_tag_t asn_DEF_E2setupFailureIEs_tags_97[] = { +static const ber_tlv_tag_t asn_DEF_E2setupFailureIEs_tags_125[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -static const asn_TYPE_tag2member_t asn_MAP_E2setupFailureIEs_tag2el_97[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +static const asn_TYPE_tag2member_t asn_MAP_E2setupFailureIEs_tag2el_125[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ }; -asn_SEQUENCE_specifics_t asn_SPC_E2setupFailureIEs_specs_97 = { +asn_SEQUENCE_specifics_t asn_SPC_E2setupFailureIEs_specs_125 = { sizeof(struct E2setupFailureIEs), offsetof(struct E2setupFailureIEs, _asn_ctx), - asn_MAP_E2setupFailureIEs_tag2el_97, - 2, /* Count of tags in the map */ + asn_MAP_E2setupFailureIEs_tag2el_125, + 3, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; @@ -8700,19 +11017,28 @@ asn_TYPE_descriptor_t asn_DEF_E2setupFailureIEs = { "E2setupFailureIEs", "E2setupFailureIEs", &asn_OP_SEQUENCE, - asn_DEF_E2setupFailureIEs_tags_97, - sizeof(asn_DEF_E2setupFailureIEs_tags_97) - /sizeof(asn_DEF_E2setupFailureIEs_tags_97[0]), /* 1 */ - asn_DEF_E2setupFailureIEs_tags_97, /* Same as above */ - sizeof(asn_DEF_E2setupFailureIEs_tags_97) - /sizeof(asn_DEF_E2setupFailureIEs_tags_97[0]), /* 1 */ + asn_DEF_E2setupFailureIEs_tags_125, + sizeof(asn_DEF_E2setupFailureIEs_tags_125) + /sizeof(asn_DEF_E2setupFailureIEs_tags_125[0]), /* 1 */ + asn_DEF_E2setupFailureIEs_tags_125, /* Same as above */ + sizeof(asn_DEF_E2setupFailureIEs_tags_125) + /sizeof(asn_DEF_E2setupFailureIEs_tags_125[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_E2setupFailureIEs_97, + asn_MBR_E2setupFailureIEs_125, 3, /* Elements count */ - &asn_SPC_E2setupFailureIEs_specs_97 /* Additional specs */ + &asn_SPC_E2setupFailureIEs_specs_125 /* Additional specs */ }; -static asn_TYPE_member_t asn_MBR_value_104[] = { +static asn_TYPE_member_t asn_MBR_value_132[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdate_IEs__value, choice.TransactionID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_TransactionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "TransactionID" + }, { ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdate_IEs__value, choice.E2connectionUpdate_List), (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -8732,22 +11058,23 @@ static asn_TYPE_member_t asn_MBR_value_104[] = { "E2connectionUpdateRemove-List" }, }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_104[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 1 }, /* E2connectionUpdate-List */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 0 } /* E2connectionUpdateRemove-List */ +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_132[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* TransactionID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 1 }, /* E2connectionUpdate-List */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -1, 0 } /* E2connectionUpdateRemove-List */ }; -static asn_CHOICE_specifics_t asn_SPC_value_specs_104 = { +static asn_CHOICE_specifics_t asn_SPC_value_specs_132 = { sizeof(struct E2connectionUpdate_IEs__value), offsetof(struct E2connectionUpdate_IEs__value, _asn_ctx), offsetof(struct E2connectionUpdate_IEs__value, present), sizeof(((struct E2connectionUpdate_IEs__value *)0)->present), - asn_MAP_value_tag2el_104, - 2, /* Count of tags in the map */ + asn_MAP_value_tag2el_132, + 3, /* Count of tags in the map */ 0, 0, -1 /* Extensions start */ }; static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_104 = { +asn_TYPE_descriptor_t asn_DEF_value_132 = { "value", "value", &asn_OP_OPEN_TYPE, @@ -8756,52 +11083,53 @@ asn_TYPE_descriptor_t asn_DEF_value_104 = { 0, /* No tags (pointer) */ 0, /* No tags (count) */ { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_104, - 2, /* Elements count */ - &asn_SPC_value_specs_104 /* Additional specs */ + asn_MBR_value_132, + 3, /* Elements count */ + &asn_SPC_value_specs_132 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_E2connectionUpdate_IEs_101[] = { +asn_TYPE_member_t asn_MBR_E2connectionUpdate_IEs_129[] = { { ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdate_IEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_ProtocolIE_ID, 0, - { 0, &asn_PER_memb_id_constr_102, memb_id_constraint_101 }, + { &asn_OER_memb_id_constr_130, &asn_PER_memb_id_constr_130, memb_id_constraint_129 }, 0, 0, /* No default value */ "id" }, { ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdate_IEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_Criticality, select_E2connectionUpdate_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_103, memb_criticality_constraint_101 }, + { &asn_OER_memb_criticality_constr_131, &asn_PER_memb_criticality_constr_131, memb_criticality_constraint_129 }, 0, 0, /* No default value */ "criticality" }, { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdate_IEs, value), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_value_104, + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_132, select_E2connectionUpdate_IEs_value_type, - { 0, &asn_PER_memb_value_constr_104, memb_value_constraint_101 }, + { &asn_OER_memb_value_constr_132, &asn_PER_memb_value_constr_132, memb_value_constraint_129 }, 0, 0, /* No default value */ "value" }, }; -static const ber_tlv_tag_t asn_DEF_E2connectionUpdate_IEs_tags_101[] = { +static const ber_tlv_tag_t asn_DEF_E2connectionUpdate_IEs_tags_129[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -static const asn_TYPE_tag2member_t asn_MAP_E2connectionUpdate_IEs_tag2el_101[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +static const asn_TYPE_tag2member_t asn_MAP_E2connectionUpdate_IEs_tag2el_129[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ }; -asn_SEQUENCE_specifics_t asn_SPC_E2connectionUpdate_IEs_specs_101 = { +asn_SEQUENCE_specifics_t asn_SPC_E2connectionUpdate_IEs_specs_129 = { sizeof(struct E2connectionUpdate_IEs), offsetof(struct E2connectionUpdate_IEs, _asn_ctx), - asn_MAP_E2connectionUpdate_IEs_tag2el_101, - 2, /* Count of tags in the map */ + asn_MAP_E2connectionUpdate_IEs_tag2el_129, + 3, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; @@ -8809,19 +11137,28 @@ asn_TYPE_descriptor_t asn_DEF_E2connectionUpdate_IEs = { "E2connectionUpdate-IEs", "E2connectionUpdate-IEs", &asn_OP_SEQUENCE, - asn_DEF_E2connectionUpdate_IEs_tags_101, - sizeof(asn_DEF_E2connectionUpdate_IEs_tags_101) - /sizeof(asn_DEF_E2connectionUpdate_IEs_tags_101[0]), /* 1 */ - asn_DEF_E2connectionUpdate_IEs_tags_101, /* Same as above */ - sizeof(asn_DEF_E2connectionUpdate_IEs_tags_101) - /sizeof(asn_DEF_E2connectionUpdate_IEs_tags_101[0]), /* 1 */ + asn_DEF_E2connectionUpdate_IEs_tags_129, + sizeof(asn_DEF_E2connectionUpdate_IEs_tags_129) + /sizeof(asn_DEF_E2connectionUpdate_IEs_tags_129[0]), /* 1 */ + asn_DEF_E2connectionUpdate_IEs_tags_129, /* Same as above */ + sizeof(asn_DEF_E2connectionUpdate_IEs_tags_129) + /sizeof(asn_DEF_E2connectionUpdate_IEs_tags_129[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_E2connectionUpdate_IEs_101, + asn_MBR_E2connectionUpdate_IEs_129, 3, /* Elements count */ - &asn_SPC_E2connectionUpdate_IEs_specs_101 /* Additional specs */ + &asn_SPC_E2connectionUpdate_IEs_specs_129 /* Additional specs */ }; -static asn_TYPE_member_t asn_MBR_value_108[] = { +static asn_TYPE_member_t asn_MBR_value_136[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdateAck_IEs__value, choice.TransactionID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_TransactionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "TransactionID" + }, { ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdateAck_IEs__value, choice.E2connectionUpdate_List), (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -8841,22 +11178,23 @@ static asn_TYPE_member_t asn_MBR_value_108[] = { "E2connectionSetupFailed-List" }, }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_108[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 1 }, /* E2connectionUpdate-List */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 0 } /* E2connectionSetupFailed-List */ +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_136[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* TransactionID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 1 }, /* E2connectionUpdate-List */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -1, 0 } /* E2connectionSetupFailed-List */ }; -static asn_CHOICE_specifics_t asn_SPC_value_specs_108 = { +static asn_CHOICE_specifics_t asn_SPC_value_specs_136 = { sizeof(struct E2connectionUpdateAck_IEs__value), offsetof(struct E2connectionUpdateAck_IEs__value, _asn_ctx), offsetof(struct E2connectionUpdateAck_IEs__value, present), sizeof(((struct E2connectionUpdateAck_IEs__value *)0)->present), - asn_MAP_value_tag2el_108, - 2, /* Count of tags in the map */ + asn_MAP_value_tag2el_136, + 3, /* Count of tags in the map */ 0, 0, -1 /* Extensions start */ }; static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_108 = { +asn_TYPE_descriptor_t asn_DEF_value_136 = { "value", "value", &asn_OP_OPEN_TYPE, @@ -8865,52 +11203,53 @@ asn_TYPE_descriptor_t asn_DEF_value_108 = { 0, /* No tags (pointer) */ 0, /* No tags (count) */ { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_108, - 2, /* Elements count */ - &asn_SPC_value_specs_108 /* Additional specs */ + asn_MBR_value_136, + 3, /* Elements count */ + &asn_SPC_value_specs_136 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_E2connectionUpdateAck_IEs_105[] = { +asn_TYPE_member_t asn_MBR_E2connectionUpdateAck_IEs_133[] = { { ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdateAck_IEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_ProtocolIE_ID, 0, - { 0, &asn_PER_memb_id_constr_106, memb_id_constraint_105 }, + { &asn_OER_memb_id_constr_134, &asn_PER_memb_id_constr_134, memb_id_constraint_133 }, 0, 0, /* No default value */ "id" }, { ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdateAck_IEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_Criticality, select_E2connectionUpdateAck_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_107, memb_criticality_constraint_105 }, + { &asn_OER_memb_criticality_constr_135, &asn_PER_memb_criticality_constr_135, memb_criticality_constraint_133 }, 0, 0, /* No default value */ "criticality" }, { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdateAck_IEs, value), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_value_108, + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_136, select_E2connectionUpdateAck_IEs_value_type, - { 0, &asn_PER_memb_value_constr_108, memb_value_constraint_105 }, + { &asn_OER_memb_value_constr_136, &asn_PER_memb_value_constr_136, memb_value_constraint_133 }, 0, 0, /* No default value */ "value" }, }; -static const ber_tlv_tag_t asn_DEF_E2connectionUpdateAck_IEs_tags_105[] = { +static const ber_tlv_tag_t asn_DEF_E2connectionUpdateAck_IEs_tags_133[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -static const asn_TYPE_tag2member_t asn_MAP_E2connectionUpdateAck_IEs_tag2el_105[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +static const asn_TYPE_tag2member_t asn_MAP_E2connectionUpdateAck_IEs_tag2el_133[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ }; -asn_SEQUENCE_specifics_t asn_SPC_E2connectionUpdateAck_IEs_specs_105 = { +asn_SEQUENCE_specifics_t asn_SPC_E2connectionUpdateAck_IEs_specs_133 = { sizeof(struct E2connectionUpdateAck_IEs), offsetof(struct E2connectionUpdateAck_IEs, _asn_ctx), - asn_MAP_E2connectionUpdateAck_IEs_tag2el_105, - 2, /* Count of tags in the map */ + asn_MAP_E2connectionUpdateAck_IEs_tag2el_133, + 3, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; @@ -8918,19 +11257,28 @@ asn_TYPE_descriptor_t asn_DEF_E2connectionUpdateAck_IEs = { "E2connectionUpdateAck-IEs", "E2connectionUpdateAck-IEs", &asn_OP_SEQUENCE, - asn_DEF_E2connectionUpdateAck_IEs_tags_105, - sizeof(asn_DEF_E2connectionUpdateAck_IEs_tags_105) - /sizeof(asn_DEF_E2connectionUpdateAck_IEs_tags_105[0]), /* 1 */ - asn_DEF_E2connectionUpdateAck_IEs_tags_105, /* Same as above */ - sizeof(asn_DEF_E2connectionUpdateAck_IEs_tags_105) - /sizeof(asn_DEF_E2connectionUpdateAck_IEs_tags_105[0]), /* 1 */ + asn_DEF_E2connectionUpdateAck_IEs_tags_133, + sizeof(asn_DEF_E2connectionUpdateAck_IEs_tags_133) + /sizeof(asn_DEF_E2connectionUpdateAck_IEs_tags_133[0]), /* 1 */ + asn_DEF_E2connectionUpdateAck_IEs_tags_133, /* Same as above */ + sizeof(asn_DEF_E2connectionUpdateAck_IEs_tags_133) + /sizeof(asn_DEF_E2connectionUpdateAck_IEs_tags_133[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_E2connectionUpdateAck_IEs_105, + asn_MBR_E2connectionUpdateAck_IEs_133, 3, /* Elements count */ - &asn_SPC_E2connectionUpdateAck_IEs_specs_105 /* Additional specs */ + &asn_SPC_E2connectionUpdateAck_IEs_specs_133 /* Additional specs */ }; -static asn_TYPE_member_t asn_MBR_value_112[] = { +static asn_TYPE_member_t asn_MBR_value_140[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdateFailure_IEs__value, choice.TransactionID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_TransactionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "TransactionID" + }, { ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdateFailure_IEs__value, choice.Cause), -1 /* Ambiguous tag (CHOICE?) */, 0, @@ -8959,30 +11307,32 @@ static asn_TYPE_member_t asn_MBR_value_112[] = { "CriticalityDiagnostics" }, }; -static const unsigned asn_MAP_value_to_canonical_112[] = { 1, 2, 0 }; -static const unsigned asn_MAP_value_from_canonical_112[] = { 2, 0, 1 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_112[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 }, /* TimeToWait */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, 0, 0 }, /* CriticalityDiagnostics */ - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ricRequest */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 0, 0, 0 }, /* ricService */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 0, 0, 0 }, /* transport */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 0, 0, 0 }, /* protocol */ - { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 0, 0, 0 } /* misc */ +static const unsigned asn_MAP_value_to_canonical_140[] = { 0, 2, 3, 1 }; +static const unsigned asn_MAP_value_from_canonical_140[] = { 0, 3, 1, 2 }; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_140[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* TransactionID */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 2, 0, 0 }, /* TimeToWait */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, 0, 0 }, /* CriticalityDiagnostics */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 1, 0, 0 }, /* ricRequest */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ricService */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 1, 0, 0 }, /* e2Node */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 1, 0, 0 }, /* transport */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 1, 0, 0 }, /* protocol */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 1, 0, 0 } /* misc */ }; -static asn_CHOICE_specifics_t asn_SPC_value_specs_112 = { +static asn_CHOICE_specifics_t asn_SPC_value_specs_140 = { sizeof(struct E2connectionUpdateFailure_IEs__value), offsetof(struct E2connectionUpdateFailure_IEs__value, _asn_ctx), offsetof(struct E2connectionUpdateFailure_IEs__value, present), sizeof(((struct E2connectionUpdateFailure_IEs__value *)0)->present), - asn_MAP_value_tag2el_112, - 7, /* Count of tags in the map */ - asn_MAP_value_to_canonical_112, - asn_MAP_value_from_canonical_112, + asn_MAP_value_tag2el_140, + 9, /* Count of tags in the map */ + asn_MAP_value_to_canonical_140, + asn_MAP_value_from_canonical_140, -1 /* Extensions start */ }; static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_112 = { +asn_TYPE_descriptor_t asn_DEF_value_140 = { "value", "value", &asn_OP_OPEN_TYPE, @@ -8991,52 +11341,53 @@ asn_TYPE_descriptor_t asn_DEF_value_112 = { 0, /* No tags (pointer) */ 0, /* No tags (count) */ { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_112, - 3, /* Elements count */ - &asn_SPC_value_specs_112 /* Additional specs */ + asn_MBR_value_140, + 4, /* Elements count */ + &asn_SPC_value_specs_140 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_E2connectionUpdateFailure_IEs_109[] = { +asn_TYPE_member_t asn_MBR_E2connectionUpdateFailure_IEs_137[] = { { ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdateFailure_IEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_ProtocolIE_ID, 0, - { 0, &asn_PER_memb_id_constr_110, memb_id_constraint_109 }, + { &asn_OER_memb_id_constr_138, &asn_PER_memb_id_constr_138, memb_id_constraint_137 }, 0, 0, /* No default value */ "id" }, { ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdateFailure_IEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_Criticality, select_E2connectionUpdateFailure_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_111, memb_criticality_constraint_109 }, + { &asn_OER_memb_criticality_constr_139, &asn_PER_memb_criticality_constr_139, memb_criticality_constraint_137 }, 0, 0, /* No default value */ "criticality" }, { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdateFailure_IEs, value), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_value_112, + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_140, select_E2connectionUpdateFailure_IEs_value_type, - { 0, &asn_PER_memb_value_constr_112, memb_value_constraint_109 }, + { &asn_OER_memb_value_constr_140, &asn_PER_memb_value_constr_140, memb_value_constraint_137 }, 0, 0, /* No default value */ "value" }, }; -static const ber_tlv_tag_t asn_DEF_E2connectionUpdateFailure_IEs_tags_109[] = { +static const ber_tlv_tag_t asn_DEF_E2connectionUpdateFailure_IEs_tags_137[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -static const asn_TYPE_tag2member_t asn_MAP_E2connectionUpdateFailure_IEs_tag2el_109[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +static const asn_TYPE_tag2member_t asn_MAP_E2connectionUpdateFailure_IEs_tag2el_137[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ }; -asn_SEQUENCE_specifics_t asn_SPC_E2connectionUpdateFailure_IEs_specs_109 = { +asn_SEQUENCE_specifics_t asn_SPC_E2connectionUpdateFailure_IEs_specs_137 = { sizeof(struct E2connectionUpdateFailure_IEs), offsetof(struct E2connectionUpdateFailure_IEs, _asn_ctx), - asn_MAP_E2connectionUpdateFailure_IEs_tag2el_109, - 2, /* Count of tags in the map */ + asn_MAP_E2connectionUpdateFailure_IEs_tag2el_137, + 3, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; @@ -9044,19 +11395,46 @@ asn_TYPE_descriptor_t asn_DEF_E2connectionUpdateFailure_IEs = { "E2connectionUpdateFailure-IEs", "E2connectionUpdateFailure-IEs", &asn_OP_SEQUENCE, - asn_DEF_E2connectionUpdateFailure_IEs_tags_109, - sizeof(asn_DEF_E2connectionUpdateFailure_IEs_tags_109) - /sizeof(asn_DEF_E2connectionUpdateFailure_IEs_tags_109[0]), /* 1 */ - asn_DEF_E2connectionUpdateFailure_IEs_tags_109, /* Same as above */ - sizeof(asn_DEF_E2connectionUpdateFailure_IEs_tags_109) - /sizeof(asn_DEF_E2connectionUpdateFailure_IEs_tags_109[0]), /* 1 */ + asn_DEF_E2connectionUpdateFailure_IEs_tags_137, + sizeof(asn_DEF_E2connectionUpdateFailure_IEs_tags_137) + /sizeof(asn_DEF_E2connectionUpdateFailure_IEs_tags_137[0]), /* 1 */ + asn_DEF_E2connectionUpdateFailure_IEs_tags_137, /* Same as above */ + sizeof(asn_DEF_E2connectionUpdateFailure_IEs_tags_137) + /sizeof(asn_DEF_E2connectionUpdateFailure_IEs_tags_137[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_E2connectionUpdateFailure_IEs_109, + asn_MBR_E2connectionUpdateFailure_IEs_137, 3, /* Elements count */ - &asn_SPC_E2connectionUpdateFailure_IEs_specs_109 /* Additional specs */ + &asn_SPC_E2connectionUpdateFailure_IEs_specs_137 /* Additional specs */ }; -static asn_TYPE_member_t asn_MBR_value_116[] = { +static asn_TYPE_member_t asn_MBR_value_144[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdate_IEs__value, choice.TransactionID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_TransactionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "TransactionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdate_IEs__value, choice.GlobalE2node_ID), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_GlobalE2node_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "GlobalE2node-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdate_IEs__value, choice.E2nodeComponentConfigAddition_List), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_E2nodeComponentConfigAddition_List, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "E2nodeComponentConfigAddition-List" + }, { ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdate_IEs__value, choice.E2nodeComponentConfigUpdate_List), (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -9066,22 +11444,51 @@ static asn_TYPE_member_t asn_MBR_value_116[] = { 0, 0, /* No default value */ "E2nodeComponentConfigUpdate-List" }, + { ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdate_IEs__value, choice.E2nodeComponentConfigRemoval_List), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_E2nodeComponentConfigRemoval_List, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "E2nodeComponentConfigRemoval-List" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdate_IEs__value, choice.E2nodeTNLassociationRemoval_List), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_E2nodeTNLassociationRemoval_List, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "E2nodeTNLassociationRemoval-List" + }, }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_116[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* E2nodeComponentConfigUpdate-List */ +static const unsigned asn_MAP_value_to_canonical_144[] = { 0, 2, 3, 4, 5, 1 }; +static const unsigned asn_MAP_value_from_canonical_144[] = { 0, 5, 1, 2, 3, 4 }; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_144[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* TransactionID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, 0, 3 }, /* E2nodeComponentConfigAddition-List */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -1, 2 }, /* E2nodeComponentConfigUpdate-List */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, -2, 1 }, /* E2nodeComponentConfigRemoval-List */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 5, -3, 0 }, /* E2nodeTNLassociationRemoval-List */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 1, 0, 0 }, /* gNB */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* en-gNB */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 1, 0, 0 }, /* ng-eNB */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 1, 0, 0 } /* eNB */ }; -static asn_CHOICE_specifics_t asn_SPC_value_specs_116 = { +static asn_CHOICE_specifics_t asn_SPC_value_specs_144 = { sizeof(struct E2nodeConfigurationUpdate_IEs__value), offsetof(struct E2nodeConfigurationUpdate_IEs__value, _asn_ctx), offsetof(struct E2nodeConfigurationUpdate_IEs__value, present), sizeof(((struct E2nodeConfigurationUpdate_IEs__value *)0)->present), - asn_MAP_value_tag2el_116, - 1, /* Count of tags in the map */ - 0, 0, + asn_MAP_value_tag2el_144, + 9, /* Count of tags in the map */ + asn_MAP_value_to_canonical_144, + asn_MAP_value_from_canonical_144, -1 /* Extensions start */ }; static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_116 = { +asn_TYPE_descriptor_t asn_DEF_value_144 = { "value", "value", &asn_OP_OPEN_TYPE, @@ -9090,52 +11497,53 @@ asn_TYPE_descriptor_t asn_DEF_value_116 = { 0, /* No tags (pointer) */ 0, /* No tags (count) */ { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_116, - 1, /* Elements count */ - &asn_SPC_value_specs_116 /* Additional specs */ + asn_MBR_value_144, + 6, /* Elements count */ + &asn_SPC_value_specs_144 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_E2nodeConfigurationUpdate_IEs_113[] = { +asn_TYPE_member_t asn_MBR_E2nodeConfigurationUpdate_IEs_141[] = { { ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdate_IEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_ProtocolIE_ID, 0, - { 0, &asn_PER_memb_id_constr_114, memb_id_constraint_113 }, + { &asn_OER_memb_id_constr_142, &asn_PER_memb_id_constr_142, memb_id_constraint_141 }, 0, 0, /* No default value */ "id" }, { ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdate_IEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_Criticality, select_E2nodeConfigurationUpdate_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_115, memb_criticality_constraint_113 }, + { &asn_OER_memb_criticality_constr_143, &asn_PER_memb_criticality_constr_143, memb_criticality_constraint_141 }, 0, 0, /* No default value */ "criticality" }, { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdate_IEs, value), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_value_116, + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_144, select_E2nodeConfigurationUpdate_IEs_value_type, - { 0, &asn_PER_memb_value_constr_116, memb_value_constraint_113 }, + { &asn_OER_memb_value_constr_144, &asn_PER_memb_value_constr_144, memb_value_constraint_141 }, 0, 0, /* No default value */ "value" }, }; -static const ber_tlv_tag_t asn_DEF_E2nodeConfigurationUpdate_IEs_tags_113[] = { +static const ber_tlv_tag_t asn_DEF_E2nodeConfigurationUpdate_IEs_tags_141[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -static const asn_TYPE_tag2member_t asn_MAP_E2nodeConfigurationUpdate_IEs_tag2el_113[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +static const asn_TYPE_tag2member_t asn_MAP_E2nodeConfigurationUpdate_IEs_tag2el_141[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ }; -asn_SEQUENCE_specifics_t asn_SPC_E2nodeConfigurationUpdate_IEs_specs_113 = { +asn_SEQUENCE_specifics_t asn_SPC_E2nodeConfigurationUpdate_IEs_specs_141 = { sizeof(struct E2nodeConfigurationUpdate_IEs), offsetof(struct E2nodeConfigurationUpdate_IEs, _asn_ctx), - asn_MAP_E2nodeConfigurationUpdate_IEs_tag2el_113, - 2, /* Count of tags in the map */ + asn_MAP_E2nodeConfigurationUpdate_IEs_tag2el_141, + 3, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; @@ -9143,19 +11551,37 @@ asn_TYPE_descriptor_t asn_DEF_E2nodeConfigurationUpdate_IEs = { "E2nodeConfigurationUpdate-IEs", "E2nodeConfigurationUpdate-IEs", &asn_OP_SEQUENCE, - asn_DEF_E2nodeConfigurationUpdate_IEs_tags_113, - sizeof(asn_DEF_E2nodeConfigurationUpdate_IEs_tags_113) - /sizeof(asn_DEF_E2nodeConfigurationUpdate_IEs_tags_113[0]), /* 1 */ - asn_DEF_E2nodeConfigurationUpdate_IEs_tags_113, /* Same as above */ - sizeof(asn_DEF_E2nodeConfigurationUpdate_IEs_tags_113) - /sizeof(asn_DEF_E2nodeConfigurationUpdate_IEs_tags_113[0]), /* 1 */ + asn_DEF_E2nodeConfigurationUpdate_IEs_tags_141, + sizeof(asn_DEF_E2nodeConfigurationUpdate_IEs_tags_141) + /sizeof(asn_DEF_E2nodeConfigurationUpdate_IEs_tags_141[0]), /* 1 */ + asn_DEF_E2nodeConfigurationUpdate_IEs_tags_141, /* Same as above */ + sizeof(asn_DEF_E2nodeConfigurationUpdate_IEs_tags_141) + /sizeof(asn_DEF_E2nodeConfigurationUpdate_IEs_tags_141[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_E2nodeConfigurationUpdate_IEs_113, + asn_MBR_E2nodeConfigurationUpdate_IEs_141, 3, /* Elements count */ - &asn_SPC_E2nodeConfigurationUpdate_IEs_specs_113 /* Additional specs */ + &asn_SPC_E2nodeConfigurationUpdate_IEs_specs_141 /* Additional specs */ }; -static asn_TYPE_member_t asn_MBR_value_120[] = { +static asn_TYPE_member_t asn_MBR_value_148[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdateAcknowledge_IEs__value, choice.TransactionID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_TransactionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "TransactionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdateAcknowledge_IEs__value, choice.E2nodeComponentConfigAdditionAck_List), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_E2nodeComponentConfigAdditionAck_List, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "E2nodeComponentConfigAdditionAck-List" + }, { ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdateAcknowledge_IEs__value, choice.E2nodeComponentConfigUpdateAck_List), (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -9165,22 +11591,34 @@ static asn_TYPE_member_t asn_MBR_value_120[] = { 0, 0, /* No default value */ "E2nodeComponentConfigUpdateAck-List" }, + { ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdateAcknowledge_IEs__value, choice.E2nodeComponentConfigRemovalAck_List), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_E2nodeComponentConfigRemovalAck_List, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "E2nodeComponentConfigRemovalAck-List" + }, }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_120[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* E2nodeComponentConfigUpdateAck-List */ +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_148[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* TransactionID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 2 }, /* E2nodeComponentConfigAdditionAck-List */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -1, 1 }, /* E2nodeComponentConfigUpdateAck-List */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -2, 0 } /* E2nodeComponentConfigRemovalAck-List */ }; -static asn_CHOICE_specifics_t asn_SPC_value_specs_120 = { +static asn_CHOICE_specifics_t asn_SPC_value_specs_148 = { sizeof(struct E2nodeConfigurationUpdateAcknowledge_IEs__value), offsetof(struct E2nodeConfigurationUpdateAcknowledge_IEs__value, _asn_ctx), offsetof(struct E2nodeConfigurationUpdateAcknowledge_IEs__value, present), sizeof(((struct E2nodeConfigurationUpdateAcknowledge_IEs__value *)0)->present), - asn_MAP_value_tag2el_120, - 1, /* Count of tags in the map */ + asn_MAP_value_tag2el_148, + 4, /* Count of tags in the map */ 0, 0, -1 /* Extensions start */ }; static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_120 = { +asn_TYPE_descriptor_t asn_DEF_value_148 = { "value", "value", &asn_OP_OPEN_TYPE, @@ -9189,52 +11627,53 @@ asn_TYPE_descriptor_t asn_DEF_value_120 = { 0, /* No tags (pointer) */ 0, /* No tags (count) */ { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_120, - 1, /* Elements count */ - &asn_SPC_value_specs_120 /* Additional specs */ + asn_MBR_value_148, + 4, /* Elements count */ + &asn_SPC_value_specs_148 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_E2nodeConfigurationUpdateAcknowledge_IEs_117[] = { +asn_TYPE_member_t asn_MBR_E2nodeConfigurationUpdateAcknowledge_IEs_145[] = { { ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdateAcknowledge_IEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_ProtocolIE_ID, 0, - { 0, &asn_PER_memb_id_constr_118, memb_id_constraint_117 }, + { &asn_OER_memb_id_constr_146, &asn_PER_memb_id_constr_146, memb_id_constraint_145 }, 0, 0, /* No default value */ "id" }, { ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdateAcknowledge_IEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_Criticality, select_E2nodeConfigurationUpdateAcknowledge_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_119, memb_criticality_constraint_117 }, + { &asn_OER_memb_criticality_constr_147, &asn_PER_memb_criticality_constr_147, memb_criticality_constraint_145 }, 0, 0, /* No default value */ "criticality" }, { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdateAcknowledge_IEs, value), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_value_120, + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_148, select_E2nodeConfigurationUpdateAcknowledge_IEs_value_type, - { 0, &asn_PER_memb_value_constr_120, memb_value_constraint_117 }, + { &asn_OER_memb_value_constr_148, &asn_PER_memb_value_constr_148, memb_value_constraint_145 }, 0, 0, /* No default value */ "value" }, }; -static const ber_tlv_tag_t asn_DEF_E2nodeConfigurationUpdateAcknowledge_IEs_tags_117[] = { +static const ber_tlv_tag_t asn_DEF_E2nodeConfigurationUpdateAcknowledge_IEs_tags_145[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -static const asn_TYPE_tag2member_t asn_MAP_E2nodeConfigurationUpdateAcknowledge_IEs_tag2el_117[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +static const asn_TYPE_tag2member_t asn_MAP_E2nodeConfigurationUpdateAcknowledge_IEs_tag2el_145[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ }; -asn_SEQUENCE_specifics_t asn_SPC_E2nodeConfigurationUpdateAcknowledge_IEs_specs_117 = { +asn_SEQUENCE_specifics_t asn_SPC_E2nodeConfigurationUpdateAcknowledge_IEs_specs_145 = { sizeof(struct E2nodeConfigurationUpdateAcknowledge_IEs), offsetof(struct E2nodeConfigurationUpdateAcknowledge_IEs, _asn_ctx), - asn_MAP_E2nodeConfigurationUpdateAcknowledge_IEs_tag2el_117, - 2, /* Count of tags in the map */ + asn_MAP_E2nodeConfigurationUpdateAcknowledge_IEs_tag2el_145, + 3, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; @@ -9242,19 +11681,28 @@ asn_TYPE_descriptor_t asn_DEF_E2nodeConfigurationUpdateAcknowledge_IEs = { "E2nodeConfigurationUpdateAcknowledge-IEs", "E2nodeConfigurationUpdateAcknowledge-IEs", &asn_OP_SEQUENCE, - asn_DEF_E2nodeConfigurationUpdateAcknowledge_IEs_tags_117, - sizeof(asn_DEF_E2nodeConfigurationUpdateAcknowledge_IEs_tags_117) - /sizeof(asn_DEF_E2nodeConfigurationUpdateAcknowledge_IEs_tags_117[0]), /* 1 */ - asn_DEF_E2nodeConfigurationUpdateAcknowledge_IEs_tags_117, /* Same as above */ - sizeof(asn_DEF_E2nodeConfigurationUpdateAcknowledge_IEs_tags_117) - /sizeof(asn_DEF_E2nodeConfigurationUpdateAcknowledge_IEs_tags_117[0]), /* 1 */ + asn_DEF_E2nodeConfigurationUpdateAcknowledge_IEs_tags_145, + sizeof(asn_DEF_E2nodeConfigurationUpdateAcknowledge_IEs_tags_145) + /sizeof(asn_DEF_E2nodeConfigurationUpdateAcknowledge_IEs_tags_145[0]), /* 1 */ + asn_DEF_E2nodeConfigurationUpdateAcknowledge_IEs_tags_145, /* Same as above */ + sizeof(asn_DEF_E2nodeConfigurationUpdateAcknowledge_IEs_tags_145) + /sizeof(asn_DEF_E2nodeConfigurationUpdateAcknowledge_IEs_tags_145[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_E2nodeConfigurationUpdateAcknowledge_IEs_117, + asn_MBR_E2nodeConfigurationUpdateAcknowledge_IEs_145, 3, /* Elements count */ - &asn_SPC_E2nodeConfigurationUpdateAcknowledge_IEs_specs_117 /* Additional specs */ + &asn_SPC_E2nodeConfigurationUpdateAcknowledge_IEs_specs_145 /* Additional specs */ }; -static asn_TYPE_member_t asn_MBR_value_124[] = { +static asn_TYPE_member_t asn_MBR_value_152[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdateFailure_IEs__value, choice.TransactionID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_TransactionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "TransactionID" + }, { ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdateFailure_IEs__value, choice.Cause), -1 /* Ambiguous tag (CHOICE?) */, 0, @@ -9283,30 +11731,32 @@ static asn_TYPE_member_t asn_MBR_value_124[] = { "CriticalityDiagnostics" }, }; -static const unsigned asn_MAP_value_to_canonical_124[] = { 1, 2, 0 }; -static const unsigned asn_MAP_value_from_canonical_124[] = { 2, 0, 1 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_124[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 }, /* TimeToWait */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, 0, 0 }, /* CriticalityDiagnostics */ - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ricRequest */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 0, 0, 0 }, /* ricService */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 0, 0, 0 }, /* transport */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 0, 0, 0 }, /* protocol */ - { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 0, 0, 0 } /* misc */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_124 = { +static const unsigned asn_MAP_value_to_canonical_152[] = { 0, 2, 3, 1 }; +static const unsigned asn_MAP_value_from_canonical_152[] = { 0, 3, 1, 2 }; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_152[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* TransactionID */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 2, 0, 0 }, /* TimeToWait */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, 0, 0 }, /* CriticalityDiagnostics */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 1, 0, 0 }, /* ricRequest */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ricService */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 1, 0, 0 }, /* e2Node */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 1, 0, 0 }, /* transport */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 1, 0, 0 }, /* protocol */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 1, 0, 0 } /* misc */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_152 = { sizeof(struct E2nodeConfigurationUpdateFailure_IEs__value), offsetof(struct E2nodeConfigurationUpdateFailure_IEs__value, _asn_ctx), offsetof(struct E2nodeConfigurationUpdateFailure_IEs__value, present), sizeof(((struct E2nodeConfigurationUpdateFailure_IEs__value *)0)->present), - asn_MAP_value_tag2el_124, - 7, /* Count of tags in the map */ - asn_MAP_value_to_canonical_124, - asn_MAP_value_from_canonical_124, + asn_MAP_value_tag2el_152, + 9, /* Count of tags in the map */ + asn_MAP_value_to_canonical_152, + asn_MAP_value_from_canonical_152, -1 /* Extensions start */ }; static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_124 = { +asn_TYPE_descriptor_t asn_DEF_value_152 = { "value", "value", &asn_OP_OPEN_TYPE, @@ -9315,52 +11765,53 @@ asn_TYPE_descriptor_t asn_DEF_value_124 = { 0, /* No tags (pointer) */ 0, /* No tags (count) */ { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_124, - 3, /* Elements count */ - &asn_SPC_value_specs_124 /* Additional specs */ + asn_MBR_value_152, + 4, /* Elements count */ + &asn_SPC_value_specs_152 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_E2nodeConfigurationUpdateFailure_IEs_121[] = { +asn_TYPE_member_t asn_MBR_E2nodeConfigurationUpdateFailure_IEs_149[] = { { ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdateFailure_IEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_ProtocolIE_ID, 0, - { 0, &asn_PER_memb_id_constr_122, memb_id_constraint_121 }, + { &asn_OER_memb_id_constr_150, &asn_PER_memb_id_constr_150, memb_id_constraint_149 }, 0, 0, /* No default value */ "id" }, { ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdateFailure_IEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_Criticality, select_E2nodeConfigurationUpdateFailure_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_123, memb_criticality_constraint_121 }, + { &asn_OER_memb_criticality_constr_151, &asn_PER_memb_criticality_constr_151, memb_criticality_constraint_149 }, 0, 0, /* No default value */ "criticality" }, { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdateFailure_IEs, value), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_value_124, + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_152, select_E2nodeConfigurationUpdateFailure_IEs_value_type, - { 0, &asn_PER_memb_value_constr_124, memb_value_constraint_121 }, + { &asn_OER_memb_value_constr_152, &asn_PER_memb_value_constr_152, memb_value_constraint_149 }, 0, 0, /* No default value */ "value" }, }; -static const ber_tlv_tag_t asn_DEF_E2nodeConfigurationUpdateFailure_IEs_tags_121[] = { +static const ber_tlv_tag_t asn_DEF_E2nodeConfigurationUpdateFailure_IEs_tags_149[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -static const asn_TYPE_tag2member_t asn_MAP_E2nodeConfigurationUpdateFailure_IEs_tag2el_121[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +static const asn_TYPE_tag2member_t asn_MAP_E2nodeConfigurationUpdateFailure_IEs_tag2el_149[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ }; -asn_SEQUENCE_specifics_t asn_SPC_E2nodeConfigurationUpdateFailure_IEs_specs_121 = { +asn_SEQUENCE_specifics_t asn_SPC_E2nodeConfigurationUpdateFailure_IEs_specs_149 = { sizeof(struct E2nodeConfigurationUpdateFailure_IEs), offsetof(struct E2nodeConfigurationUpdateFailure_IEs, _asn_ctx), - asn_MAP_E2nodeConfigurationUpdateFailure_IEs_tag2el_121, - 2, /* Count of tags in the map */ + asn_MAP_E2nodeConfigurationUpdateFailure_IEs_tag2el_149, + 3, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; @@ -9368,19 +11819,28 @@ asn_TYPE_descriptor_t asn_DEF_E2nodeConfigurationUpdateFailure_IEs = { "E2nodeConfigurationUpdateFailure-IEs", "E2nodeConfigurationUpdateFailure-IEs", &asn_OP_SEQUENCE, - asn_DEF_E2nodeConfigurationUpdateFailure_IEs_tags_121, - sizeof(asn_DEF_E2nodeConfigurationUpdateFailure_IEs_tags_121) - /sizeof(asn_DEF_E2nodeConfigurationUpdateFailure_IEs_tags_121[0]), /* 1 */ - asn_DEF_E2nodeConfigurationUpdateFailure_IEs_tags_121, /* Same as above */ - sizeof(asn_DEF_E2nodeConfigurationUpdateFailure_IEs_tags_121) - /sizeof(asn_DEF_E2nodeConfigurationUpdateFailure_IEs_tags_121[0]), /* 1 */ + asn_DEF_E2nodeConfigurationUpdateFailure_IEs_tags_149, + sizeof(asn_DEF_E2nodeConfigurationUpdateFailure_IEs_tags_149) + /sizeof(asn_DEF_E2nodeConfigurationUpdateFailure_IEs_tags_149[0]), /* 1 */ + asn_DEF_E2nodeConfigurationUpdateFailure_IEs_tags_149, /* Same as above */ + sizeof(asn_DEF_E2nodeConfigurationUpdateFailure_IEs_tags_149) + /sizeof(asn_DEF_E2nodeConfigurationUpdateFailure_IEs_tags_149[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_E2nodeConfigurationUpdateFailure_IEs_121, + asn_MBR_E2nodeConfigurationUpdateFailure_IEs_149, 3, /* Elements count */ - &asn_SPC_E2nodeConfigurationUpdateFailure_IEs_specs_121 /* Additional specs */ + &asn_SPC_E2nodeConfigurationUpdateFailure_IEs_specs_149 /* Additional specs */ }; -static asn_TYPE_member_t asn_MBR_value_128[] = { +static asn_TYPE_member_t asn_MBR_value_156[] = { + { ATF_NOFLAGS, 0, offsetof(struct ResetRequestIEs__value, choice.TransactionID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_TransactionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "TransactionID" + }, { ATF_NOFLAGS, 0, offsetof(struct ResetRequestIEs__value, choice.Cause), -1 /* Ambiguous tag (CHOICE?) */, 0, @@ -9391,25 +11851,27 @@ static asn_TYPE_member_t asn_MBR_value_128[] = { "Cause" }, }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_128[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ricRequest */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 0, 0, 0 }, /* ricService */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 0, 0, 0 }, /* transport */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 0, 0, 0 }, /* protocol */ - { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 0, 0, 0 } /* misc */ +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_156[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* TransactionID */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 1, 0, 0 }, /* ricRequest */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ricService */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 1, 0, 0 }, /* e2Node */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 1, 0, 0 }, /* transport */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 1, 0, 0 }, /* protocol */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 1, 0, 0 } /* misc */ }; -static asn_CHOICE_specifics_t asn_SPC_value_specs_128 = { +static asn_CHOICE_specifics_t asn_SPC_value_specs_156 = { sizeof(struct ResetRequestIEs__value), offsetof(struct ResetRequestIEs__value, _asn_ctx), offsetof(struct ResetRequestIEs__value, present), sizeof(((struct ResetRequestIEs__value *)0)->present), - asn_MAP_value_tag2el_128, - 5, /* Count of tags in the map */ + asn_MAP_value_tag2el_156, + 7, /* Count of tags in the map */ 0, 0, -1 /* Extensions start */ }; static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_128 = { +asn_TYPE_descriptor_t asn_DEF_value_156 = { "value", "value", &asn_OP_OPEN_TYPE, @@ -9418,52 +11880,53 @@ asn_TYPE_descriptor_t asn_DEF_value_128 = { 0, /* No tags (pointer) */ 0, /* No tags (count) */ { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_128, - 1, /* Elements count */ - &asn_SPC_value_specs_128 /* Additional specs */ + asn_MBR_value_156, + 2, /* Elements count */ + &asn_SPC_value_specs_156 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_ResetRequestIEs_125[] = { +asn_TYPE_member_t asn_MBR_ResetRequestIEs_153[] = { { ATF_NOFLAGS, 0, offsetof(struct ResetRequestIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_ProtocolIE_ID, 0, - { 0, &asn_PER_memb_id_constr_126, memb_id_constraint_125 }, + { &asn_OER_memb_id_constr_154, &asn_PER_memb_id_constr_154, memb_id_constraint_153 }, 0, 0, /* No default value */ "id" }, { ATF_NOFLAGS, 0, offsetof(struct ResetRequestIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_Criticality, select_ResetRequestIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_127, memb_criticality_constraint_125 }, + { &asn_OER_memb_criticality_constr_155, &asn_PER_memb_criticality_constr_155, memb_criticality_constraint_153 }, 0, 0, /* No default value */ "criticality" }, { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ResetRequestIEs, value), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_value_128, + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_156, select_ResetRequestIEs_value_type, - { 0, &asn_PER_memb_value_constr_128, memb_value_constraint_125 }, + { &asn_OER_memb_value_constr_156, &asn_PER_memb_value_constr_156, memb_value_constraint_153 }, 0, 0, /* No default value */ "value" }, }; -static const ber_tlv_tag_t asn_DEF_ResetRequestIEs_tags_125[] = { +static const ber_tlv_tag_t asn_DEF_ResetRequestIEs_tags_153[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -static const asn_TYPE_tag2member_t asn_MAP_ResetRequestIEs_tag2el_125[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +static const asn_TYPE_tag2member_t asn_MAP_ResetRequestIEs_tag2el_153[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ }; -asn_SEQUENCE_specifics_t asn_SPC_ResetRequestIEs_specs_125 = { +asn_SEQUENCE_specifics_t asn_SPC_ResetRequestIEs_specs_153 = { sizeof(struct ResetRequestIEs), offsetof(struct ResetRequestIEs, _asn_ctx), - asn_MAP_ResetRequestIEs_tag2el_125, - 2, /* Count of tags in the map */ + asn_MAP_ResetRequestIEs_tag2el_153, + 3, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; @@ -9471,19 +11934,28 @@ asn_TYPE_descriptor_t asn_DEF_ResetRequestIEs = { "ResetRequestIEs", "ResetRequestIEs", &asn_OP_SEQUENCE, - asn_DEF_ResetRequestIEs_tags_125, - sizeof(asn_DEF_ResetRequestIEs_tags_125) - /sizeof(asn_DEF_ResetRequestIEs_tags_125[0]), /* 1 */ - asn_DEF_ResetRequestIEs_tags_125, /* Same as above */ - sizeof(asn_DEF_ResetRequestIEs_tags_125) - /sizeof(asn_DEF_ResetRequestIEs_tags_125[0]), /* 1 */ + asn_DEF_ResetRequestIEs_tags_153, + sizeof(asn_DEF_ResetRequestIEs_tags_153) + /sizeof(asn_DEF_ResetRequestIEs_tags_153[0]), /* 1 */ + asn_DEF_ResetRequestIEs_tags_153, /* Same as above */ + sizeof(asn_DEF_ResetRequestIEs_tags_153) + /sizeof(asn_DEF_ResetRequestIEs_tags_153[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_ResetRequestIEs_125, + asn_MBR_ResetRequestIEs_153, 3, /* Elements count */ - &asn_SPC_ResetRequestIEs_specs_125 /* Additional specs */ + &asn_SPC_ResetRequestIEs_specs_153 /* Additional specs */ }; -static asn_TYPE_member_t asn_MBR_value_132[] = { +static asn_TYPE_member_t asn_MBR_value_160[] = { + { ATF_NOFLAGS, 0, offsetof(struct ResetResponseIEs__value, choice.TransactionID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_TransactionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "TransactionID" + }, { ATF_NOFLAGS, 0, offsetof(struct ResetResponseIEs__value, choice.CriticalityDiagnostics), (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -9494,21 +11966,22 @@ static asn_TYPE_member_t asn_MBR_value_132[] = { "CriticalityDiagnostics" }, }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_132[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* CriticalityDiagnostics */ +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_160[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* TransactionID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 0 } /* CriticalityDiagnostics */ }; -static asn_CHOICE_specifics_t asn_SPC_value_specs_132 = { +static asn_CHOICE_specifics_t asn_SPC_value_specs_160 = { sizeof(struct ResetResponseIEs__value), offsetof(struct ResetResponseIEs__value, _asn_ctx), offsetof(struct ResetResponseIEs__value, present), sizeof(((struct ResetResponseIEs__value *)0)->present), - asn_MAP_value_tag2el_132, - 1, /* Count of tags in the map */ + asn_MAP_value_tag2el_160, + 2, /* Count of tags in the map */ 0, 0, -1 /* Extensions start */ }; static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_132 = { +asn_TYPE_descriptor_t asn_DEF_value_160 = { "value", "value", &asn_OP_OPEN_TYPE, @@ -9517,52 +11990,53 @@ asn_TYPE_descriptor_t asn_DEF_value_132 = { 0, /* No tags (pointer) */ 0, /* No tags (count) */ { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_132, - 1, /* Elements count */ - &asn_SPC_value_specs_132 /* Additional specs */ + asn_MBR_value_160, + 2, /* Elements count */ + &asn_SPC_value_specs_160 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_ResetResponseIEs_129[] = { +asn_TYPE_member_t asn_MBR_ResetResponseIEs_157[] = { { ATF_NOFLAGS, 0, offsetof(struct ResetResponseIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_ProtocolIE_ID, 0, - { 0, &asn_PER_memb_id_constr_130, memb_id_constraint_129 }, + { &asn_OER_memb_id_constr_158, &asn_PER_memb_id_constr_158, memb_id_constraint_157 }, 0, 0, /* No default value */ "id" }, { ATF_NOFLAGS, 0, offsetof(struct ResetResponseIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_Criticality, select_ResetResponseIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_131, memb_criticality_constraint_129 }, + { &asn_OER_memb_criticality_constr_159, &asn_PER_memb_criticality_constr_159, memb_criticality_constraint_157 }, 0, 0, /* No default value */ "criticality" }, { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ResetResponseIEs, value), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_value_132, + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_160, select_ResetResponseIEs_value_type, - { 0, &asn_PER_memb_value_constr_132, memb_value_constraint_129 }, + { &asn_OER_memb_value_constr_160, &asn_PER_memb_value_constr_160, memb_value_constraint_157 }, 0, 0, /* No default value */ "value" }, }; -static const ber_tlv_tag_t asn_DEF_ResetResponseIEs_tags_129[] = { +static const ber_tlv_tag_t asn_DEF_ResetResponseIEs_tags_157[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -static const asn_TYPE_tag2member_t asn_MAP_ResetResponseIEs_tag2el_129[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +static const asn_TYPE_tag2member_t asn_MAP_ResetResponseIEs_tag2el_157[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ }; -asn_SEQUENCE_specifics_t asn_SPC_ResetResponseIEs_specs_129 = { +asn_SEQUENCE_specifics_t asn_SPC_ResetResponseIEs_specs_157 = { sizeof(struct ResetResponseIEs), offsetof(struct ResetResponseIEs, _asn_ctx), - asn_MAP_ResetResponseIEs_tag2el_129, - 2, /* Count of tags in the map */ + asn_MAP_ResetResponseIEs_tag2el_157, + 3, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; @@ -9570,19 +12044,28 @@ asn_TYPE_descriptor_t asn_DEF_ResetResponseIEs = { "ResetResponseIEs", "ResetResponseIEs", &asn_OP_SEQUENCE, - asn_DEF_ResetResponseIEs_tags_129, - sizeof(asn_DEF_ResetResponseIEs_tags_129) - /sizeof(asn_DEF_ResetResponseIEs_tags_129[0]), /* 1 */ - asn_DEF_ResetResponseIEs_tags_129, /* Same as above */ - sizeof(asn_DEF_ResetResponseIEs_tags_129) - /sizeof(asn_DEF_ResetResponseIEs_tags_129[0]), /* 1 */ + asn_DEF_ResetResponseIEs_tags_157, + sizeof(asn_DEF_ResetResponseIEs_tags_157) + /sizeof(asn_DEF_ResetResponseIEs_tags_157[0]), /* 1 */ + asn_DEF_ResetResponseIEs_tags_157, /* Same as above */ + sizeof(asn_DEF_ResetResponseIEs_tags_157) + /sizeof(asn_DEF_ResetResponseIEs_tags_157[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_ResetResponseIEs_129, + asn_MBR_ResetResponseIEs_157, 3, /* Elements count */ - &asn_SPC_ResetResponseIEs_specs_129 /* Additional specs */ + &asn_SPC_ResetResponseIEs_specs_157 /* Additional specs */ }; -static asn_TYPE_member_t asn_MBR_value_136[] = { +static asn_TYPE_member_t asn_MBR_value_164[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdate_IEs__value, choice.TransactionID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_TransactionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "TransactionID" + }, { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdate_IEs__value, choice.RANfunctions_List), (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -9602,22 +12085,23 @@ static asn_TYPE_member_t asn_MBR_value_136[] = { "RANfunctionsID-List" }, }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_136[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 1 }, /* RANfunctions-List */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 0 } /* RANfunctionsID-List */ +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_164[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* TransactionID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 1 }, /* RANfunctions-List */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -1, 0 } /* RANfunctionsID-List */ }; -static asn_CHOICE_specifics_t asn_SPC_value_specs_136 = { +static asn_CHOICE_specifics_t asn_SPC_value_specs_164 = { sizeof(struct RICserviceUpdate_IEs__value), offsetof(struct RICserviceUpdate_IEs__value, _asn_ctx), offsetof(struct RICserviceUpdate_IEs__value, present), sizeof(((struct RICserviceUpdate_IEs__value *)0)->present), - asn_MAP_value_tag2el_136, - 2, /* Count of tags in the map */ + asn_MAP_value_tag2el_164, + 3, /* Count of tags in the map */ 0, 0, -1 /* Extensions start */ }; static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_136 = { +asn_TYPE_descriptor_t asn_DEF_value_164 = { "value", "value", &asn_OP_OPEN_TYPE, @@ -9626,52 +12110,53 @@ asn_TYPE_descriptor_t asn_DEF_value_136 = { 0, /* No tags (pointer) */ 0, /* No tags (count) */ { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_136, - 2, /* Elements count */ - &asn_SPC_value_specs_136 /* Additional specs */ + asn_MBR_value_164, + 3, /* Elements count */ + &asn_SPC_value_specs_164 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_RICserviceUpdate_IEs_133[] = { +asn_TYPE_member_t asn_MBR_RICserviceUpdate_IEs_161[] = { { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdate_IEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_ProtocolIE_ID, 0, - { 0, &asn_PER_memb_id_constr_134, memb_id_constraint_133 }, + { &asn_OER_memb_id_constr_162, &asn_PER_memb_id_constr_162, memb_id_constraint_161 }, 0, 0, /* No default value */ "id" }, { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdate_IEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_Criticality, select_RICserviceUpdate_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_135, memb_criticality_constraint_133 }, + { &asn_OER_memb_criticality_constr_163, &asn_PER_memb_criticality_constr_163, memb_criticality_constraint_161 }, 0, 0, /* No default value */ "criticality" }, { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdate_IEs, value), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_value_136, + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_164, select_RICserviceUpdate_IEs_value_type, - { 0, &asn_PER_memb_value_constr_136, memb_value_constraint_133 }, + { &asn_OER_memb_value_constr_164, &asn_PER_memb_value_constr_164, memb_value_constraint_161 }, 0, 0, /* No default value */ "value" }, }; -static const ber_tlv_tag_t asn_DEF_RICserviceUpdate_IEs_tags_133[] = { +static const ber_tlv_tag_t asn_DEF_RICserviceUpdate_IEs_tags_161[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -static const asn_TYPE_tag2member_t asn_MAP_RICserviceUpdate_IEs_tag2el_133[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +static const asn_TYPE_tag2member_t asn_MAP_RICserviceUpdate_IEs_tag2el_161[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ }; -asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdate_IEs_specs_133 = { +asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdate_IEs_specs_161 = { sizeof(struct RICserviceUpdate_IEs), offsetof(struct RICserviceUpdate_IEs, _asn_ctx), - asn_MAP_RICserviceUpdate_IEs_tag2el_133, - 2, /* Count of tags in the map */ + asn_MAP_RICserviceUpdate_IEs_tag2el_161, + 3, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; @@ -9679,19 +12164,28 @@ asn_TYPE_descriptor_t asn_DEF_RICserviceUpdate_IEs = { "RICserviceUpdate-IEs", "RICserviceUpdate-IEs", &asn_OP_SEQUENCE, - asn_DEF_RICserviceUpdate_IEs_tags_133, - sizeof(asn_DEF_RICserviceUpdate_IEs_tags_133) - /sizeof(asn_DEF_RICserviceUpdate_IEs_tags_133[0]), /* 1 */ - asn_DEF_RICserviceUpdate_IEs_tags_133, /* Same as above */ - sizeof(asn_DEF_RICserviceUpdate_IEs_tags_133) - /sizeof(asn_DEF_RICserviceUpdate_IEs_tags_133[0]), /* 1 */ + asn_DEF_RICserviceUpdate_IEs_tags_161, + sizeof(asn_DEF_RICserviceUpdate_IEs_tags_161) + /sizeof(asn_DEF_RICserviceUpdate_IEs_tags_161[0]), /* 1 */ + asn_DEF_RICserviceUpdate_IEs_tags_161, /* Same as above */ + sizeof(asn_DEF_RICserviceUpdate_IEs_tags_161) + /sizeof(asn_DEF_RICserviceUpdate_IEs_tags_161[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICserviceUpdate_IEs_133, + asn_MBR_RICserviceUpdate_IEs_161, 3, /* Elements count */ - &asn_SPC_RICserviceUpdate_IEs_specs_133 /* Additional specs */ + &asn_SPC_RICserviceUpdate_IEs_specs_161 /* Additional specs */ }; -static asn_TYPE_member_t asn_MBR_value_140[] = { +static asn_TYPE_member_t asn_MBR_value_168[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateAcknowledge_IEs__value, choice.TransactionID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_TransactionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "TransactionID" + }, { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateAcknowledge_IEs__value, choice.RANfunctionsID_List), (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -9711,22 +12205,23 @@ static asn_TYPE_member_t asn_MBR_value_140[] = { "RANfunctionsIDcause-List" }, }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_140[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 1 }, /* RANfunctionsID-List */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 0 } /* RANfunctionsIDcause-List */ +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_168[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* TransactionID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 1 }, /* RANfunctionsID-List */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -1, 0 } /* RANfunctionsIDcause-List */ }; -static asn_CHOICE_specifics_t asn_SPC_value_specs_140 = { +static asn_CHOICE_specifics_t asn_SPC_value_specs_168 = { sizeof(struct RICserviceUpdateAcknowledge_IEs__value), offsetof(struct RICserviceUpdateAcknowledge_IEs__value, _asn_ctx), offsetof(struct RICserviceUpdateAcknowledge_IEs__value, present), sizeof(((struct RICserviceUpdateAcknowledge_IEs__value *)0)->present), - asn_MAP_value_tag2el_140, - 2, /* Count of tags in the map */ + asn_MAP_value_tag2el_168, + 3, /* Count of tags in the map */ 0, 0, -1 /* Extensions start */ }; static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_140 = { +asn_TYPE_descriptor_t asn_DEF_value_168 = { "value", "value", &asn_OP_OPEN_TYPE, @@ -9735,52 +12230,53 @@ asn_TYPE_descriptor_t asn_DEF_value_140 = { 0, /* No tags (pointer) */ 0, /* No tags (count) */ { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_140, - 2, /* Elements count */ - &asn_SPC_value_specs_140 /* Additional specs */ + asn_MBR_value_168, + 3, /* Elements count */ + &asn_SPC_value_specs_168 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_RICserviceUpdateAcknowledge_IEs_137[] = { +asn_TYPE_member_t asn_MBR_RICserviceUpdateAcknowledge_IEs_165[] = { { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateAcknowledge_IEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_ProtocolIE_ID, 0, - { 0, &asn_PER_memb_id_constr_138, memb_id_constraint_137 }, + { &asn_OER_memb_id_constr_166, &asn_PER_memb_id_constr_166, memb_id_constraint_165 }, 0, 0, /* No default value */ "id" }, { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateAcknowledge_IEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_Criticality, select_RICserviceUpdateAcknowledge_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_139, memb_criticality_constraint_137 }, + { &asn_OER_memb_criticality_constr_167, &asn_PER_memb_criticality_constr_167, memb_criticality_constraint_165 }, 0, 0, /* No default value */ "criticality" }, { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateAcknowledge_IEs, value), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_value_140, + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_168, select_RICserviceUpdateAcknowledge_IEs_value_type, - { 0, &asn_PER_memb_value_constr_140, memb_value_constraint_137 }, + { &asn_OER_memb_value_constr_168, &asn_PER_memb_value_constr_168, memb_value_constraint_165 }, 0, 0, /* No default value */ "value" }, }; -static const ber_tlv_tag_t asn_DEF_RICserviceUpdateAcknowledge_IEs_tags_137[] = { +static const ber_tlv_tag_t asn_DEF_RICserviceUpdateAcknowledge_IEs_tags_165[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -static const asn_TYPE_tag2member_t asn_MAP_RICserviceUpdateAcknowledge_IEs_tag2el_137[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +static const asn_TYPE_tag2member_t asn_MAP_RICserviceUpdateAcknowledge_IEs_tag2el_165[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ }; -asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdateAcknowledge_IEs_specs_137 = { +asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdateAcknowledge_IEs_specs_165 = { sizeof(struct RICserviceUpdateAcknowledge_IEs), offsetof(struct RICserviceUpdateAcknowledge_IEs, _asn_ctx), - asn_MAP_RICserviceUpdateAcknowledge_IEs_tag2el_137, - 2, /* Count of tags in the map */ + asn_MAP_RICserviceUpdateAcknowledge_IEs_tag2el_165, + 3, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; @@ -9788,27 +12284,36 @@ asn_TYPE_descriptor_t asn_DEF_RICserviceUpdateAcknowledge_IEs = { "RICserviceUpdateAcknowledge-IEs", "RICserviceUpdateAcknowledge-IEs", &asn_OP_SEQUENCE, - asn_DEF_RICserviceUpdateAcknowledge_IEs_tags_137, - sizeof(asn_DEF_RICserviceUpdateAcknowledge_IEs_tags_137) - /sizeof(asn_DEF_RICserviceUpdateAcknowledge_IEs_tags_137[0]), /* 1 */ - asn_DEF_RICserviceUpdateAcknowledge_IEs_tags_137, /* Same as above */ - sizeof(asn_DEF_RICserviceUpdateAcknowledge_IEs_tags_137) - /sizeof(asn_DEF_RICserviceUpdateAcknowledge_IEs_tags_137[0]), /* 1 */ + asn_DEF_RICserviceUpdateAcknowledge_IEs_tags_165, + sizeof(asn_DEF_RICserviceUpdateAcknowledge_IEs_tags_165) + /sizeof(asn_DEF_RICserviceUpdateAcknowledge_IEs_tags_165[0]), /* 1 */ + asn_DEF_RICserviceUpdateAcknowledge_IEs_tags_165, /* Same as above */ + sizeof(asn_DEF_RICserviceUpdateAcknowledge_IEs_tags_165) + /sizeof(asn_DEF_RICserviceUpdateAcknowledge_IEs_tags_165[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICserviceUpdateAcknowledge_IEs_137, + asn_MBR_RICserviceUpdateAcknowledge_IEs_165, 3, /* Elements count */ - &asn_SPC_RICserviceUpdateAcknowledge_IEs_specs_137 /* Additional specs */ + &asn_SPC_RICserviceUpdateAcknowledge_IEs_specs_165 /* Additional specs */ }; -static asn_TYPE_member_t asn_MBR_value_144[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateFailure_IEs__value, choice.RANfunctionsIDcause_List), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), +static asn_TYPE_member_t asn_MBR_value_172[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateFailure_IEs__value, choice.TransactionID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, - &asn_DEF_RANfunctionsIDcause_List, + &asn_DEF_TransactionID, 0, { 0, 0, 0 }, 0, 0, /* No default value */ - "RANfunctionsIDcause-List" + "TransactionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateFailure_IEs__value, choice.Cause), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_Cause, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "Cause" }, { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateFailure_IEs__value, choice.TimeToWait), (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), @@ -9829,26 +12334,32 @@ static asn_TYPE_member_t asn_MBR_value_144[] = { "CriticalityDiagnostics" }, }; -static const unsigned asn_MAP_value_to_canonical_144[] = { 1, 0, 2 }; -static const unsigned asn_MAP_value_from_canonical_144[] = { 1, 0, 2 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_144[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 }, /* TimeToWait */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 1 }, /* RANfunctionsIDcause-List */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -1, 0 } /* CriticalityDiagnostics */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_144 = { +static const unsigned asn_MAP_value_to_canonical_172[] = { 0, 2, 3, 1 }; +static const unsigned asn_MAP_value_from_canonical_172[] = { 0, 3, 1, 2 }; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_172[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* TransactionID */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 2, 0, 0 }, /* TimeToWait */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, 0, 0 }, /* CriticalityDiagnostics */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 1, 0, 0 }, /* ricRequest */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ricService */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 1, 0, 0 }, /* e2Node */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 1, 0, 0 }, /* transport */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 1, 0, 0 }, /* protocol */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 1, 0, 0 } /* misc */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_172 = { sizeof(struct RICserviceUpdateFailure_IEs__value), offsetof(struct RICserviceUpdateFailure_IEs__value, _asn_ctx), offsetof(struct RICserviceUpdateFailure_IEs__value, present), sizeof(((struct RICserviceUpdateFailure_IEs__value *)0)->present), - asn_MAP_value_tag2el_144, - 3, /* Count of tags in the map */ - asn_MAP_value_to_canonical_144, - asn_MAP_value_from_canonical_144, + asn_MAP_value_tag2el_172, + 9, /* Count of tags in the map */ + asn_MAP_value_to_canonical_172, + asn_MAP_value_from_canonical_172, -1 /* Extensions start */ }; static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_144 = { +asn_TYPE_descriptor_t asn_DEF_value_172 = { "value", "value", &asn_OP_OPEN_TYPE, @@ -9857,52 +12368,53 @@ asn_TYPE_descriptor_t asn_DEF_value_144 = { 0, /* No tags (pointer) */ 0, /* No tags (count) */ { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_144, - 3, /* Elements count */ - &asn_SPC_value_specs_144 /* Additional specs */ + asn_MBR_value_172, + 4, /* Elements count */ + &asn_SPC_value_specs_172 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_RICserviceUpdateFailure_IEs_141[] = { +asn_TYPE_member_t asn_MBR_RICserviceUpdateFailure_IEs_169[] = { { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateFailure_IEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_ProtocolIE_ID, 0, - { 0, &asn_PER_memb_id_constr_142, memb_id_constraint_141 }, + { &asn_OER_memb_id_constr_170, &asn_PER_memb_id_constr_170, memb_id_constraint_169 }, 0, 0, /* No default value */ "id" }, { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateFailure_IEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_Criticality, select_RICserviceUpdateFailure_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_143, memb_criticality_constraint_141 }, + { &asn_OER_memb_criticality_constr_171, &asn_PER_memb_criticality_constr_171, memb_criticality_constraint_169 }, 0, 0, /* No default value */ "criticality" }, { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateFailure_IEs, value), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_value_144, + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_172, select_RICserviceUpdateFailure_IEs_value_type, - { 0, &asn_PER_memb_value_constr_144, memb_value_constraint_141 }, + { &asn_OER_memb_value_constr_172, &asn_PER_memb_value_constr_172, memb_value_constraint_169 }, 0, 0, /* No default value */ "value" }, }; -static const ber_tlv_tag_t asn_DEF_RICserviceUpdateFailure_IEs_tags_141[] = { +static const ber_tlv_tag_t asn_DEF_RICserviceUpdateFailure_IEs_tags_169[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -static const asn_TYPE_tag2member_t asn_MAP_RICserviceUpdateFailure_IEs_tag2el_141[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +static const asn_TYPE_tag2member_t asn_MAP_RICserviceUpdateFailure_IEs_tag2el_169[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ }; -asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdateFailure_IEs_specs_141 = { +asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdateFailure_IEs_specs_169 = { sizeof(struct RICserviceUpdateFailure_IEs), offsetof(struct RICserviceUpdateFailure_IEs, _asn_ctx), - asn_MAP_RICserviceUpdateFailure_IEs_tag2el_141, - 2, /* Count of tags in the map */ + asn_MAP_RICserviceUpdateFailure_IEs_tag2el_169, + 3, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; @@ -9910,19 +12422,28 @@ asn_TYPE_descriptor_t asn_DEF_RICserviceUpdateFailure_IEs = { "RICserviceUpdateFailure-IEs", "RICserviceUpdateFailure-IEs", &asn_OP_SEQUENCE, - asn_DEF_RICserviceUpdateFailure_IEs_tags_141, - sizeof(asn_DEF_RICserviceUpdateFailure_IEs_tags_141) - /sizeof(asn_DEF_RICserviceUpdateFailure_IEs_tags_141[0]), /* 1 */ - asn_DEF_RICserviceUpdateFailure_IEs_tags_141, /* Same as above */ - sizeof(asn_DEF_RICserviceUpdateFailure_IEs_tags_141) - /sizeof(asn_DEF_RICserviceUpdateFailure_IEs_tags_141[0]), /* 1 */ + asn_DEF_RICserviceUpdateFailure_IEs_tags_169, + sizeof(asn_DEF_RICserviceUpdateFailure_IEs_tags_169) + /sizeof(asn_DEF_RICserviceUpdateFailure_IEs_tags_169[0]), /* 1 */ + asn_DEF_RICserviceUpdateFailure_IEs_tags_169, /* Same as above */ + sizeof(asn_DEF_RICserviceUpdateFailure_IEs_tags_169) + /sizeof(asn_DEF_RICserviceUpdateFailure_IEs_tags_169[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICserviceUpdateFailure_IEs_141, + asn_MBR_RICserviceUpdateFailure_IEs_169, 3, /* Elements count */ - &asn_SPC_RICserviceUpdateFailure_IEs_specs_141 /* Additional specs */ + &asn_SPC_RICserviceUpdateFailure_IEs_specs_169 /* Additional specs */ }; -static asn_TYPE_member_t asn_MBR_value_148[] = { +static asn_TYPE_member_t asn_MBR_value_176[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICserviceQuery_IEs__value, choice.TransactionID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_TransactionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "TransactionID" + }, { ATF_NOFLAGS, 0, offsetof(struct RICserviceQuery_IEs__value, choice.RANfunctionsID_List), (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -9933,21 +12454,22 @@ static asn_TYPE_member_t asn_MBR_value_148[] = { "RANfunctionsID-List" }, }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_148[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RANfunctionsID-List */ +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_176[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* TransactionID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 0 } /* RANfunctionsID-List */ }; -static asn_CHOICE_specifics_t asn_SPC_value_specs_148 = { +static asn_CHOICE_specifics_t asn_SPC_value_specs_176 = { sizeof(struct RICserviceQuery_IEs__value), offsetof(struct RICserviceQuery_IEs__value, _asn_ctx), offsetof(struct RICserviceQuery_IEs__value, present), sizeof(((struct RICserviceQuery_IEs__value *)0)->present), - asn_MAP_value_tag2el_148, - 1, /* Count of tags in the map */ + asn_MAP_value_tag2el_176, + 2, /* Count of tags in the map */ 0, 0, -1 /* Extensions start */ }; static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_148 = { +asn_TYPE_descriptor_t asn_DEF_value_176 = { "value", "value", &asn_OP_OPEN_TYPE, @@ -9956,52 +12478,53 @@ asn_TYPE_descriptor_t asn_DEF_value_148 = { 0, /* No tags (pointer) */ 0, /* No tags (count) */ { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_148, - 1, /* Elements count */ - &asn_SPC_value_specs_148 /* Additional specs */ + asn_MBR_value_176, + 2, /* Elements count */ + &asn_SPC_value_specs_176 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_RICserviceQuery_IEs_145[] = { +asn_TYPE_member_t asn_MBR_RICserviceQuery_IEs_173[] = { { ATF_NOFLAGS, 0, offsetof(struct RICserviceQuery_IEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_ProtocolIE_ID, 0, - { 0, &asn_PER_memb_id_constr_146, memb_id_constraint_145 }, + { &asn_OER_memb_id_constr_174, &asn_PER_memb_id_constr_174, memb_id_constraint_173 }, 0, 0, /* No default value */ "id" }, { ATF_NOFLAGS, 0, offsetof(struct RICserviceQuery_IEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_Criticality, select_RICserviceQuery_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_147, memb_criticality_constraint_145 }, + { &asn_OER_memb_criticality_constr_175, &asn_PER_memb_criticality_constr_175, memb_criticality_constraint_173 }, 0, 0, /* No default value */ "criticality" }, { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICserviceQuery_IEs, value), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_value_148, + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_176, select_RICserviceQuery_IEs_value_type, - { 0, &asn_PER_memb_value_constr_148, memb_value_constraint_145 }, + { &asn_OER_memb_value_constr_176, &asn_PER_memb_value_constr_176, memb_value_constraint_173 }, 0, 0, /* No default value */ "value" }, }; -static const ber_tlv_tag_t asn_DEF_RICserviceQuery_IEs_tags_145[] = { +static const ber_tlv_tag_t asn_DEF_RICserviceQuery_IEs_tags_173[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -static const asn_TYPE_tag2member_t asn_MAP_RICserviceQuery_IEs_tag2el_145[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +static const asn_TYPE_tag2member_t asn_MAP_RICserviceQuery_IEs_tag2el_173[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ }; -asn_SEQUENCE_specifics_t asn_SPC_RICserviceQuery_IEs_specs_145 = { +asn_SEQUENCE_specifics_t asn_SPC_RICserviceQuery_IEs_specs_173 = { sizeof(struct RICserviceQuery_IEs), offsetof(struct RICserviceQuery_IEs, _asn_ctx), - asn_MAP_RICserviceQuery_IEs_tag2el_145, - 2, /* Count of tags in the map */ + asn_MAP_RICserviceQuery_IEs_tag2el_173, + 3, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; @@ -10009,15 +12532,15 @@ asn_TYPE_descriptor_t asn_DEF_RICserviceQuery_IEs = { "RICserviceQuery-IEs", "RICserviceQuery-IEs", &asn_OP_SEQUENCE, - asn_DEF_RICserviceQuery_IEs_tags_145, - sizeof(asn_DEF_RICserviceQuery_IEs_tags_145) - /sizeof(asn_DEF_RICserviceQuery_IEs_tags_145[0]), /* 1 */ - asn_DEF_RICserviceQuery_IEs_tags_145, /* Same as above */ - sizeof(asn_DEF_RICserviceQuery_IEs_tags_145) - /sizeof(asn_DEF_RICserviceQuery_IEs_tags_145[0]), /* 1 */ + asn_DEF_RICserviceQuery_IEs_tags_173, + sizeof(asn_DEF_RICserviceQuery_IEs_tags_173) + /sizeof(asn_DEF_RICserviceQuery_IEs_tags_173[0]), /* 1 */ + asn_DEF_RICserviceQuery_IEs_tags_173, /* Same as above */ + sizeof(asn_DEF_RICserviceQuery_IEs_tags_173) + /sizeof(asn_DEF_RICserviceQuery_IEs_tags_173[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICserviceQuery_IEs_145, + asn_MBR_RICserviceQuery_IEs_173, 3, /* Elements count */ - &asn_SPC_RICserviceQuery_IEs_specs_145 /* Additional specs */ + &asn_SPC_RICserviceQuery_IEs_specs_173 /* Additional specs */ }; diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ProtocolIE-Field.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ProtocolIE-Field.h index bf80722..e138e9c 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ProtocolIE-Field.h +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ProtocolIE-Field.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-Containers" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #ifndef _ProtocolIE_Field_H_ @@ -23,11 +23,17 @@ #include "constr_SEQUENCE.h" #include "RICaction-Admitted-Item.h" #include "RICaction-NotAdmitted-Item.h" +#include "RICsubscription-withCause-Item.h" #include "E2connectionUpdate-Item.h" #include "E2connectionUpdateRemove-Item.h" #include "E2connectionSetupFailed-Item.h" +#include "E2nodeComponentConfigAddition-Item.h" #include "E2nodeComponentConfigUpdate-Item.h" +#include "E2nodeComponentConfigRemoval-Item.h" +#include "E2nodeTNLassociationRemoval-Item.h" +#include "E2nodeComponentConfigAdditionAck-Item.h" #include "E2nodeComponentConfigUpdateAck-Item.h" +#include "E2nodeComponentConfigRemovalAck-Item.h" #include "RANfunction-Item.h" #include "RANfunctionID-Item.h" #include "RANfunctionIDcause-Item.h" @@ -36,8 +42,9 @@ #include "RICsubscriptionDetails.h" #include "RICaction-Admitted-List.h" #include "RICaction-NotAdmitted-List.h" -#include "CriticalityDiagnostics.h" #include "Cause.h" +#include "CriticalityDiagnostics.h" +#include "RICsubscription-List-withCause.h" #include "RICactionID.h" #include "RICindicationSN.h" #include "RICindicationType.h" @@ -47,20 +54,25 @@ #include "RICcontrolHeader.h" #include "RICcontrolMessage.h" #include "RICcontrolAckRequest.h" -#include "RICcontrolStatus.h" #include "RICcontrolOutcome.h" +#include "TransactionID.h" #include "GlobalE2node-ID.h" #include "RANfunctions-List.h" -#include "E2nodeComponentConfigUpdate-List.h" +#include "E2nodeComponentConfigAddition-List.h" #include "GlobalRIC-ID.h" #include "RANfunctionsID-List.h" #include "RANfunctionsIDcause-List.h" -#include "E2nodeComponentConfigUpdateAck-List.h" +#include "E2nodeComponentConfigAdditionAck-List.h" #include "TimeToWait.h" #include "TNLinformation.h" #include "E2connectionUpdate-List.h" #include "E2connectionUpdateRemove-List.h" #include "E2connectionSetupFailed-List.h" +#include "E2nodeComponentConfigUpdate-List.h" +#include "E2nodeComponentConfigRemoval-List.h" +#include "E2nodeTNLassociationRemoval-List.h" +#include "E2nodeComponentConfigUpdateAck-List.h" +#include "E2nodeComponentConfigRemovalAck-List.h" #ifdef __cplusplus extern "C" { @@ -79,6 +91,10 @@ typedef enum RICaction_NotAdmitted_ItemIEs__value_PR { RICaction_NotAdmitted_ItemIEs__value_PR_NOTHING, /* No components present */ RICaction_NotAdmitted_ItemIEs__value_PR_RICaction_NotAdmitted_Item } RICaction_NotAdmitted_ItemIEs__value_PR; +typedef enum RICsubscription_withCause_ItemIEs__value_PR { + RICsubscription_withCause_ItemIEs__value_PR_NOTHING, /* No components present */ + RICsubscription_withCause_ItemIEs__value_PR_RICsubscription_withCause_Item +} RICsubscription_withCause_ItemIEs__value_PR; typedef enum E2connectionUpdate_ItemIEs__value_PR { E2connectionUpdate_ItemIEs__value_PR_NOTHING, /* No components present */ E2connectionUpdate_ItemIEs__value_PR_E2connectionUpdate_Item @@ -91,14 +107,34 @@ typedef enum E2connectionSetupFailed_ItemIEs__value_PR { E2connectionSetupFailed_ItemIEs__value_PR_NOTHING, /* No components present */ E2connectionSetupFailed_ItemIEs__value_PR_E2connectionSetupFailed_Item } E2connectionSetupFailed_ItemIEs__value_PR; +typedef enum E2nodeComponentConfigAddition_ItemIEs__value_PR { + E2nodeComponentConfigAddition_ItemIEs__value_PR_NOTHING, /* No components present */ + E2nodeComponentConfigAddition_ItemIEs__value_PR_E2nodeComponentConfigAddition_Item +} E2nodeComponentConfigAddition_ItemIEs__value_PR; typedef enum E2nodeComponentConfigUpdate_ItemIEs__value_PR { E2nodeComponentConfigUpdate_ItemIEs__value_PR_NOTHING, /* No components present */ E2nodeComponentConfigUpdate_ItemIEs__value_PR_E2nodeComponentConfigUpdate_Item } E2nodeComponentConfigUpdate_ItemIEs__value_PR; +typedef enum E2nodeComponentConfigRemoval_ItemIEs__value_PR { + E2nodeComponentConfigRemoval_ItemIEs__value_PR_NOTHING, /* No components present */ + E2nodeComponentConfigRemoval_ItemIEs__value_PR_E2nodeComponentConfigRemoval_Item +} E2nodeComponentConfigRemoval_ItemIEs__value_PR; +typedef enum E2nodeTNLassociationRemoval_ItemIEs__value_PR { + E2nodeTNLassociationRemoval_ItemIEs__value_PR_NOTHING, /* No components present */ + E2nodeTNLassociationRemoval_ItemIEs__value_PR_E2nodeTNLassociationRemoval_Item +} E2nodeTNLassociationRemoval_ItemIEs__value_PR; +typedef enum E2nodeComponentConfigAdditionAck_ItemIEs__value_PR { + E2nodeComponentConfigAdditionAck_ItemIEs__value_PR_NOTHING, /* No components present */ + E2nodeComponentConfigAdditionAck_ItemIEs__value_PR_E2nodeComponentConfigAdditionAck_Item +} E2nodeComponentConfigAdditionAck_ItemIEs__value_PR; typedef enum E2nodeComponentConfigUpdateAck_ItemIEs__value_PR { E2nodeComponentConfigUpdateAck_ItemIEs__value_PR_NOTHING, /* No components present */ E2nodeComponentConfigUpdateAck_ItemIEs__value_PR_E2nodeComponentConfigUpdateAck_Item } E2nodeComponentConfigUpdateAck_ItemIEs__value_PR; +typedef enum E2nodeComponentConfigRemovalAck_ItemIEs__value_PR { + E2nodeComponentConfigRemovalAck_ItemIEs__value_PR_NOTHING, /* No components present */ + E2nodeComponentConfigRemovalAck_ItemIEs__value_PR_E2nodeComponentConfigRemovalAck_Item +} E2nodeComponentConfigRemovalAck_ItemIEs__value_PR; typedef enum RANfunction_ItemIEs__value_PR { RANfunction_ItemIEs__value_PR_NOTHING, /* No components present */ RANfunction_ItemIEs__value_PR_RANfunction_Item @@ -128,7 +164,7 @@ typedef enum RICsubscriptionFailure_IEs__value_PR { RICsubscriptionFailure_IEs__value_PR_NOTHING, /* No components present */ RICsubscriptionFailure_IEs__value_PR_RICrequestID, RICsubscriptionFailure_IEs__value_PR_RANfunctionID, - RICsubscriptionFailure_IEs__value_PR_RICaction_NotAdmitted_List, + RICsubscriptionFailure_IEs__value_PR_Cause, RICsubscriptionFailure_IEs__value_PR_CriticalityDiagnostics } RICsubscriptionFailure_IEs__value_PR; typedef enum RICsubscriptionDeleteRequest_IEs__value_PR { @@ -148,6 +184,10 @@ typedef enum RICsubscriptionDeleteFailure_IEs__value_PR { RICsubscriptionDeleteFailure_IEs__value_PR_Cause, RICsubscriptionDeleteFailure_IEs__value_PR_CriticalityDiagnostics } RICsubscriptionDeleteFailure_IEs__value_PR; +typedef enum RICsubscriptionDeleteRequired_IEs__value_PR { + RICsubscriptionDeleteRequired_IEs__value_PR_NOTHING, /* No components present */ + RICsubscriptionDeleteRequired_IEs__value_PR_RICsubscription_List_withCause +} RICsubscriptionDeleteRequired_IEs__value_PR; typedef enum RICindication_IEs__value_PR { RICindication_IEs__value_PR_NOTHING, /* No components present */ RICindication_IEs__value_PR_RICrequestID, @@ -173,7 +213,6 @@ typedef enum RICcontrolAcknowledge_IEs__value_PR { RICcontrolAcknowledge_IEs__value_PR_RICrequestID, RICcontrolAcknowledge_IEs__value_PR_RANfunctionID, RICcontrolAcknowledge_IEs__value_PR_RICcallProcessID, - RICcontrolAcknowledge_IEs__value_PR_RICcontrolStatus, RICcontrolAcknowledge_IEs__value_PR_RICcontrolOutcome } RICcontrolAcknowledge_IEs__value_PR; typedef enum RICcontrolFailure_IEs__value_PR { @@ -186,6 +225,7 @@ typedef enum RICcontrolFailure_IEs__value_PR { } RICcontrolFailure_IEs__value_PR; typedef enum ErrorIndication_IEs__value_PR { ErrorIndication_IEs__value_PR_NOTHING, /* No components present */ + ErrorIndication_IEs__value_PR_TransactionID, ErrorIndication_IEs__value_PR_RICrequestID, ErrorIndication_IEs__value_PR_RANfunctionID, ErrorIndication_IEs__value_PR_Cause, @@ -193,19 +233,22 @@ typedef enum ErrorIndication_IEs__value_PR { } ErrorIndication_IEs__value_PR; typedef enum E2setupRequestIEs__value_PR { E2setupRequestIEs__value_PR_NOTHING, /* No components present */ + E2setupRequestIEs__value_PR_TransactionID, E2setupRequestIEs__value_PR_GlobalE2node_ID, E2setupRequestIEs__value_PR_RANfunctions_List, - E2setupRequestIEs__value_PR_E2nodeComponentConfigUpdate_List + E2setupRequestIEs__value_PR_E2nodeComponentConfigAddition_List } E2setupRequestIEs__value_PR; typedef enum E2setupResponseIEs__value_PR { E2setupResponseIEs__value_PR_NOTHING, /* No components present */ + E2setupResponseIEs__value_PR_TransactionID, E2setupResponseIEs__value_PR_GlobalRIC_ID, E2setupResponseIEs__value_PR_RANfunctionsID_List, E2setupResponseIEs__value_PR_RANfunctionsIDcause_List, - E2setupResponseIEs__value_PR_E2nodeComponentConfigUpdateAck_List + E2setupResponseIEs__value_PR_E2nodeComponentConfigAdditionAck_List } E2setupResponseIEs__value_PR; typedef enum E2setupFailureIEs__value_PR { E2setupFailureIEs__value_PR_NOTHING, /* No components present */ + E2setupFailureIEs__value_PR_TransactionID, E2setupFailureIEs__value_PR_Cause, E2setupFailureIEs__value_PR_TimeToWait, E2setupFailureIEs__value_PR_CriticalityDiagnostics, @@ -213,60 +256,78 @@ typedef enum E2setupFailureIEs__value_PR { } E2setupFailureIEs__value_PR; typedef enum E2connectionUpdate_IEs__value_PR { E2connectionUpdate_IEs__value_PR_NOTHING, /* No components present */ + E2connectionUpdate_IEs__value_PR_TransactionID, E2connectionUpdate_IEs__value_PR_E2connectionUpdate_List, E2connectionUpdate_IEs__value_PR_E2connectionUpdateRemove_List } E2connectionUpdate_IEs__value_PR; typedef enum E2connectionUpdateAck_IEs__value_PR { E2connectionUpdateAck_IEs__value_PR_NOTHING, /* No components present */ + E2connectionUpdateAck_IEs__value_PR_TransactionID, E2connectionUpdateAck_IEs__value_PR_E2connectionUpdate_List, E2connectionUpdateAck_IEs__value_PR_E2connectionSetupFailed_List } E2connectionUpdateAck_IEs__value_PR; typedef enum E2connectionUpdateFailure_IEs__value_PR { E2connectionUpdateFailure_IEs__value_PR_NOTHING, /* No components present */ + E2connectionUpdateFailure_IEs__value_PR_TransactionID, E2connectionUpdateFailure_IEs__value_PR_Cause, E2connectionUpdateFailure_IEs__value_PR_TimeToWait, E2connectionUpdateFailure_IEs__value_PR_CriticalityDiagnostics } E2connectionUpdateFailure_IEs__value_PR; typedef enum E2nodeConfigurationUpdate_IEs__value_PR { E2nodeConfigurationUpdate_IEs__value_PR_NOTHING, /* No components present */ - E2nodeConfigurationUpdate_IEs__value_PR_E2nodeComponentConfigUpdate_List + E2nodeConfigurationUpdate_IEs__value_PR_TransactionID, + E2nodeConfigurationUpdate_IEs__value_PR_GlobalE2node_ID, + E2nodeConfigurationUpdate_IEs__value_PR_E2nodeComponentConfigAddition_List, + E2nodeConfigurationUpdate_IEs__value_PR_E2nodeComponentConfigUpdate_List, + E2nodeConfigurationUpdate_IEs__value_PR_E2nodeComponentConfigRemoval_List, + E2nodeConfigurationUpdate_IEs__value_PR_E2nodeTNLassociationRemoval_List } E2nodeConfigurationUpdate_IEs__value_PR; typedef enum E2nodeConfigurationUpdateAcknowledge_IEs__value_PR { E2nodeConfigurationUpdateAcknowledge_IEs__value_PR_NOTHING, /* No components present */ - E2nodeConfigurationUpdateAcknowledge_IEs__value_PR_E2nodeComponentConfigUpdateAck_List + E2nodeConfigurationUpdateAcknowledge_IEs__value_PR_TransactionID, + E2nodeConfigurationUpdateAcknowledge_IEs__value_PR_E2nodeComponentConfigAdditionAck_List, + E2nodeConfigurationUpdateAcknowledge_IEs__value_PR_E2nodeComponentConfigUpdateAck_List, + E2nodeConfigurationUpdateAcknowledge_IEs__value_PR_E2nodeComponentConfigRemovalAck_List } E2nodeConfigurationUpdateAcknowledge_IEs__value_PR; typedef enum E2nodeConfigurationUpdateFailure_IEs__value_PR { E2nodeConfigurationUpdateFailure_IEs__value_PR_NOTHING, /* No components present */ + E2nodeConfigurationUpdateFailure_IEs__value_PR_TransactionID, E2nodeConfigurationUpdateFailure_IEs__value_PR_Cause, E2nodeConfigurationUpdateFailure_IEs__value_PR_TimeToWait, E2nodeConfigurationUpdateFailure_IEs__value_PR_CriticalityDiagnostics } E2nodeConfigurationUpdateFailure_IEs__value_PR; typedef enum ResetRequestIEs__value_PR { ResetRequestIEs__value_PR_NOTHING, /* No components present */ + ResetRequestIEs__value_PR_TransactionID, ResetRequestIEs__value_PR_Cause } ResetRequestIEs__value_PR; typedef enum ResetResponseIEs__value_PR { ResetResponseIEs__value_PR_NOTHING, /* No components present */ + ResetResponseIEs__value_PR_TransactionID, ResetResponseIEs__value_PR_CriticalityDiagnostics } ResetResponseIEs__value_PR; typedef enum RICserviceUpdate_IEs__value_PR { RICserviceUpdate_IEs__value_PR_NOTHING, /* No components present */ + RICserviceUpdate_IEs__value_PR_TransactionID, RICserviceUpdate_IEs__value_PR_RANfunctions_List, RICserviceUpdate_IEs__value_PR_RANfunctionsID_List } RICserviceUpdate_IEs__value_PR; typedef enum RICserviceUpdateAcknowledge_IEs__value_PR { RICserviceUpdateAcknowledge_IEs__value_PR_NOTHING, /* No components present */ + RICserviceUpdateAcknowledge_IEs__value_PR_TransactionID, RICserviceUpdateAcknowledge_IEs__value_PR_RANfunctionsID_List, RICserviceUpdateAcknowledge_IEs__value_PR_RANfunctionsIDcause_List } RICserviceUpdateAcknowledge_IEs__value_PR; typedef enum RICserviceUpdateFailure_IEs__value_PR { RICserviceUpdateFailure_IEs__value_PR_NOTHING, /* No components present */ - RICserviceUpdateFailure_IEs__value_PR_RANfunctionsIDcause_List, + RICserviceUpdateFailure_IEs__value_PR_TransactionID, + RICserviceUpdateFailure_IEs__value_PR_Cause, RICserviceUpdateFailure_IEs__value_PR_TimeToWait, RICserviceUpdateFailure_IEs__value_PR_CriticalityDiagnostics } RICserviceUpdateFailure_IEs__value_PR; typedef enum RICserviceQuery_IEs__value_PR { RICserviceQuery_IEs__value_PR_NOTHING, /* No components present */ + RICserviceQuery_IEs__value_PR_TransactionID, RICserviceQuery_IEs__value_PR_RANfunctionsID_List } RICserviceQuery_IEs__value_PR; @@ -319,6 +380,22 @@ typedef struct RICaction_NotAdmitted_ItemIEs { /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; } RICaction_NotAdmitted_ItemIEs_t; +typedef struct RICsubscription_withCause_ItemIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct RICsubscription_withCause_ItemIEs__value { + RICsubscription_withCause_ItemIEs__value_PR present; + union RICsubscription_withCause_ItemIEs__value_u { + RICsubscription_withCause_Item_t RICsubscription_withCause_Item; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RICsubscription_withCause_ItemIEs_t; typedef struct E2connectionUpdate_ItemIEs { ProtocolIE_ID_t id; Criticality_t criticality; @@ -367,6 +444,22 @@ typedef struct E2connectionSetupFailed_ItemIEs { /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; } E2connectionSetupFailed_ItemIEs_t; +typedef struct E2nodeComponentConfigAddition_ItemIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct E2nodeComponentConfigAddition_ItemIEs__value { + E2nodeComponentConfigAddition_ItemIEs__value_PR present; + union E2nodeComponentConfigAddition_ItemIEs__value_u { + E2nodeComponentConfigAddition_Item_t E2nodeComponentConfigAddition_Item; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2nodeComponentConfigAddition_ItemIEs_t; typedef struct E2nodeComponentConfigUpdate_ItemIEs { ProtocolIE_ID_t id; Criticality_t criticality; @@ -383,6 +476,54 @@ typedef struct E2nodeComponentConfigUpdate_ItemIEs { /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; } E2nodeComponentConfigUpdate_ItemIEs_t; +typedef struct E2nodeComponentConfigRemoval_ItemIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct E2nodeComponentConfigRemoval_ItemIEs__value { + E2nodeComponentConfigRemoval_ItemIEs__value_PR present; + union E2nodeComponentConfigRemoval_ItemIEs__value_u { + E2nodeComponentConfigRemoval_Item_t E2nodeComponentConfigRemoval_Item; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2nodeComponentConfigRemoval_ItemIEs_t; +typedef struct E2nodeTNLassociationRemoval_ItemIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct E2nodeTNLassociationRemoval_ItemIEs__value { + E2nodeTNLassociationRemoval_ItemIEs__value_PR present; + union E2nodeTNLassociationRemoval_ItemIEs__value_u { + E2nodeTNLassociationRemoval_Item_t E2nodeTNLassociationRemoval_Item; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2nodeTNLassociationRemoval_ItemIEs_t; +typedef struct E2nodeComponentConfigAdditionAck_ItemIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct E2nodeComponentConfigAdditionAck_ItemIEs__value { + E2nodeComponentConfigAdditionAck_ItemIEs__value_PR present; + union E2nodeComponentConfigAdditionAck_ItemIEs__value_u { + E2nodeComponentConfigAdditionAck_Item_t E2nodeComponentConfigAdditionAck_Item; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2nodeComponentConfigAdditionAck_ItemIEs_t; typedef struct E2nodeComponentConfigUpdateAck_ItemIEs { ProtocolIE_ID_t id; Criticality_t criticality; @@ -399,6 +540,22 @@ typedef struct E2nodeComponentConfigUpdateAck_ItemIEs { /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; } E2nodeComponentConfigUpdateAck_ItemIEs_t; +typedef struct E2nodeComponentConfigRemovalAck_ItemIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct E2nodeComponentConfigRemovalAck_ItemIEs__value { + E2nodeComponentConfigRemovalAck_ItemIEs__value_PR present; + union E2nodeComponentConfigRemovalAck_ItemIEs__value_u { + E2nodeComponentConfigRemovalAck_Item_t E2nodeComponentConfigRemovalAck_Item; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2nodeComponentConfigRemovalAck_ItemIEs_t; typedef struct RANfunction_ItemIEs { ProtocolIE_ID_t id; Criticality_t criticality; @@ -492,7 +649,7 @@ typedef struct RICsubscriptionFailure_IEs { union RICsubscriptionFailure_IEs__value_u { RICrequestID_t RICrequestID; RANfunctionID_t RANfunctionID; - RICaction_NotAdmitted_List_t RICaction_NotAdmitted_List; + Cause_t Cause; CriticalityDiagnostics_t CriticalityDiagnostics; } choice; @@ -556,6 +713,22 @@ typedef struct RICsubscriptionDeleteFailure_IEs { /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; } RICsubscriptionDeleteFailure_IEs_t; +typedef struct RICsubscriptionDeleteRequired_IEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct RICsubscriptionDeleteRequired_IEs__value { + RICsubscriptionDeleteRequired_IEs__value_PR present; + union RICsubscriptionDeleteRequired_IEs__value_u { + RICsubscription_List_withCause_t RICsubscription_List_withCause; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RICsubscriptionDeleteRequired_IEs_t; typedef struct RICindication_IEs { ProtocolIE_ID_t id; Criticality_t criticality; @@ -609,7 +782,6 @@ typedef struct RICcontrolAcknowledge_IEs { RICrequestID_t RICrequestID; RANfunctionID_t RANfunctionID; RICcallProcessID_t RICcallProcessID; - RICcontrolStatus_t RICcontrolStatus; RICcontrolOutcome_t RICcontrolOutcome; } choice; @@ -646,6 +818,7 @@ typedef struct ErrorIndication_IEs { struct ErrorIndication_IEs__value { ErrorIndication_IEs__value_PR present; union ErrorIndication_IEs__value_u { + TransactionID_t TransactionID; RICrequestID_t RICrequestID; RANfunctionID_t RANfunctionID; Cause_t Cause; @@ -665,9 +838,10 @@ typedef struct E2setupRequestIEs { struct E2setupRequestIEs__value { E2setupRequestIEs__value_PR present; union E2setupRequestIEs__value_u { + TransactionID_t TransactionID; GlobalE2node_ID_t GlobalE2node_ID; RANfunctions_List_t RANfunctions_List; - E2nodeComponentConfigUpdate_List_t E2nodeComponentConfigUpdate_List; + E2nodeComponentConfigAddition_List_t E2nodeComponentConfigAddition_List; } choice; /* Context for parsing across buffer boundaries */ @@ -683,10 +857,11 @@ typedef struct E2setupResponseIEs { struct E2setupResponseIEs__value { E2setupResponseIEs__value_PR present; union E2setupResponseIEs__value_u { + TransactionID_t TransactionID; GlobalRIC_ID_t GlobalRIC_ID; RANfunctionsID_List_t RANfunctionsID_List; RANfunctionsIDcause_List_t RANfunctionsIDcause_List; - E2nodeComponentConfigUpdateAck_List_t E2nodeComponentConfigUpdateAck_List; + E2nodeComponentConfigAdditionAck_List_t E2nodeComponentConfigAdditionAck_List; } choice; /* Context for parsing across buffer boundaries */ @@ -702,6 +877,7 @@ typedef struct E2setupFailureIEs { struct E2setupFailureIEs__value { E2setupFailureIEs__value_PR present; union E2setupFailureIEs__value_u { + TransactionID_t TransactionID; Cause_t Cause; TimeToWait_t TimeToWait; CriticalityDiagnostics_t CriticalityDiagnostics; @@ -721,6 +897,7 @@ typedef struct E2connectionUpdate_IEs { struct E2connectionUpdate_IEs__value { E2connectionUpdate_IEs__value_PR present; union E2connectionUpdate_IEs__value_u { + TransactionID_t TransactionID; E2connectionUpdate_List_t E2connectionUpdate_List; E2connectionUpdateRemove_List_t E2connectionUpdateRemove_List; } choice; @@ -738,6 +915,7 @@ typedef struct E2connectionUpdateAck_IEs { struct E2connectionUpdateAck_IEs__value { E2connectionUpdateAck_IEs__value_PR present; union E2connectionUpdateAck_IEs__value_u { + TransactionID_t TransactionID; E2connectionUpdate_List_t E2connectionUpdate_List; E2connectionSetupFailed_List_t E2connectionSetupFailed_List; } choice; @@ -755,6 +933,7 @@ typedef struct E2connectionUpdateFailure_IEs { struct E2connectionUpdateFailure_IEs__value { E2connectionUpdateFailure_IEs__value_PR present; union E2connectionUpdateFailure_IEs__value_u { + TransactionID_t TransactionID; Cause_t Cause; TimeToWait_t TimeToWait; CriticalityDiagnostics_t CriticalityDiagnostics; @@ -773,7 +952,12 @@ typedef struct E2nodeConfigurationUpdate_IEs { struct E2nodeConfigurationUpdate_IEs__value { E2nodeConfigurationUpdate_IEs__value_PR present; union E2nodeConfigurationUpdate_IEs__value_u { + TransactionID_t TransactionID; + GlobalE2node_ID_t GlobalE2node_ID; + E2nodeComponentConfigAddition_List_t E2nodeComponentConfigAddition_List; E2nodeComponentConfigUpdate_List_t E2nodeComponentConfigUpdate_List; + E2nodeComponentConfigRemoval_List_t E2nodeComponentConfigRemoval_List; + E2nodeTNLassociationRemoval_List_t E2nodeTNLassociationRemoval_List; } choice; /* Context for parsing across buffer boundaries */ @@ -789,7 +973,10 @@ typedef struct E2nodeConfigurationUpdateAcknowledge_IEs { struct E2nodeConfigurationUpdateAcknowledge_IEs__value { E2nodeConfigurationUpdateAcknowledge_IEs__value_PR present; union E2nodeConfigurationUpdateAcknowledge_IEs__value_u { + TransactionID_t TransactionID; + E2nodeComponentConfigAdditionAck_List_t E2nodeComponentConfigAdditionAck_List; E2nodeComponentConfigUpdateAck_List_t E2nodeComponentConfigUpdateAck_List; + E2nodeComponentConfigRemovalAck_List_t E2nodeComponentConfigRemovalAck_List; } choice; /* Context for parsing across buffer boundaries */ @@ -805,6 +992,7 @@ typedef struct E2nodeConfigurationUpdateFailure_IEs { struct E2nodeConfigurationUpdateFailure_IEs__value { E2nodeConfigurationUpdateFailure_IEs__value_PR present; union E2nodeConfigurationUpdateFailure_IEs__value_u { + TransactionID_t TransactionID; Cause_t Cause; TimeToWait_t TimeToWait; CriticalityDiagnostics_t CriticalityDiagnostics; @@ -823,6 +1011,7 @@ typedef struct ResetRequestIEs { struct ResetRequestIEs__value { ResetRequestIEs__value_PR present; union ResetRequestIEs__value_u { + TransactionID_t TransactionID; Cause_t Cause; } choice; @@ -839,6 +1028,7 @@ typedef struct ResetResponseIEs { struct ResetResponseIEs__value { ResetResponseIEs__value_PR present; union ResetResponseIEs__value_u { + TransactionID_t TransactionID; CriticalityDiagnostics_t CriticalityDiagnostics; } choice; @@ -855,6 +1045,7 @@ typedef struct RICserviceUpdate_IEs { struct RICserviceUpdate_IEs__value { RICserviceUpdate_IEs__value_PR present; union RICserviceUpdate_IEs__value_u { + TransactionID_t TransactionID; RANfunctions_List_t RANfunctions_List; RANfunctionsID_List_t RANfunctionsID_List; } choice; @@ -872,6 +1063,7 @@ typedef struct RICserviceUpdateAcknowledge_IEs { struct RICserviceUpdateAcknowledge_IEs__value { RICserviceUpdateAcknowledge_IEs__value_PR present; union RICserviceUpdateAcknowledge_IEs__value_u { + TransactionID_t TransactionID; RANfunctionsID_List_t RANfunctionsID_List; RANfunctionsIDcause_List_t RANfunctionsIDcause_List; } choice; @@ -889,7 +1081,8 @@ typedef struct RICserviceUpdateFailure_IEs { struct RICserviceUpdateFailure_IEs__value { RICserviceUpdateFailure_IEs__value_PR present; union RICserviceUpdateFailure_IEs__value_u { - RANfunctionsIDcause_List_t RANfunctionsIDcause_List; + TransactionID_t TransactionID; + Cause_t Cause; TimeToWait_t TimeToWait; CriticalityDiagnostics_t CriticalityDiagnostics; } choice; @@ -907,6 +1100,7 @@ typedef struct RICserviceQuery_IEs { struct RICserviceQuery_IEs__value { RICserviceQuery_IEs__value_PR present; union RICserviceQuery_IEs__value_u { + TransactionID_t TransactionID; RANfunctionsID_List_t RANfunctionsID_List; } choice; @@ -928,108 +1122,129 @@ extern asn_TYPE_member_t asn_MBR_RICaction_Admitted_ItemIEs_5[3]; extern asn_TYPE_descriptor_t asn_DEF_RICaction_NotAdmitted_ItemIEs; extern asn_SEQUENCE_specifics_t asn_SPC_RICaction_NotAdmitted_ItemIEs_specs_9; extern asn_TYPE_member_t asn_MBR_RICaction_NotAdmitted_ItemIEs_9[3]; +extern asn_TYPE_descriptor_t asn_DEF_RICsubscription_withCause_ItemIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscription_withCause_ItemIEs_specs_13; +extern asn_TYPE_member_t asn_MBR_RICsubscription_withCause_ItemIEs_13[3]; extern asn_TYPE_descriptor_t asn_DEF_E2connectionUpdate_ItemIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E2connectionUpdate_ItemIEs_specs_13; -extern asn_TYPE_member_t asn_MBR_E2connectionUpdate_ItemIEs_13[3]; +extern asn_SEQUENCE_specifics_t asn_SPC_E2connectionUpdate_ItemIEs_specs_17; +extern asn_TYPE_member_t asn_MBR_E2connectionUpdate_ItemIEs_17[3]; extern asn_TYPE_descriptor_t asn_DEF_E2connectionUpdateRemove_ItemIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E2connectionUpdateRemove_ItemIEs_specs_17; -extern asn_TYPE_member_t asn_MBR_E2connectionUpdateRemove_ItemIEs_17[3]; +extern asn_SEQUENCE_specifics_t asn_SPC_E2connectionUpdateRemove_ItemIEs_specs_21; +extern asn_TYPE_member_t asn_MBR_E2connectionUpdateRemove_ItemIEs_21[3]; extern asn_TYPE_descriptor_t asn_DEF_E2connectionSetupFailed_ItemIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E2connectionSetupFailed_ItemIEs_specs_21; -extern asn_TYPE_member_t asn_MBR_E2connectionSetupFailed_ItemIEs_21[3]; +extern asn_SEQUENCE_specifics_t asn_SPC_E2connectionSetupFailed_ItemIEs_specs_25; +extern asn_TYPE_member_t asn_MBR_E2connectionSetupFailed_ItemIEs_25[3]; +extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigAddition_ItemIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigAddition_ItemIEs_specs_29; +extern asn_TYPE_member_t asn_MBR_E2nodeComponentConfigAddition_ItemIEs_29[3]; extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigUpdate_ItemIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigUpdate_ItemIEs_specs_25; -extern asn_TYPE_member_t asn_MBR_E2nodeComponentConfigUpdate_ItemIEs_25[3]; +extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigUpdate_ItemIEs_specs_33; +extern asn_TYPE_member_t asn_MBR_E2nodeComponentConfigUpdate_ItemIEs_33[3]; +extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigRemoval_ItemIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigRemoval_ItemIEs_specs_37; +extern asn_TYPE_member_t asn_MBR_E2nodeComponentConfigRemoval_ItemIEs_37[3]; +extern asn_TYPE_descriptor_t asn_DEF_E2nodeTNLassociationRemoval_ItemIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeTNLassociationRemoval_ItemIEs_specs_41; +extern asn_TYPE_member_t asn_MBR_E2nodeTNLassociationRemoval_ItemIEs_41[3]; +extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigAdditionAck_ItemIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigAdditionAck_ItemIEs_specs_45; +extern asn_TYPE_member_t asn_MBR_E2nodeComponentConfigAdditionAck_ItemIEs_45[3]; extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigUpdateAck_ItemIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigUpdateAck_ItemIEs_specs_29; -extern asn_TYPE_member_t asn_MBR_E2nodeComponentConfigUpdateAck_ItemIEs_29[3]; +extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigUpdateAck_ItemIEs_specs_49; +extern asn_TYPE_member_t asn_MBR_E2nodeComponentConfigUpdateAck_ItemIEs_49[3]; +extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigRemovalAck_ItemIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigRemovalAck_ItemIEs_specs_53; +extern asn_TYPE_member_t asn_MBR_E2nodeComponentConfigRemovalAck_ItemIEs_53[3]; extern asn_TYPE_descriptor_t asn_DEF_RANfunction_ItemIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RANfunction_ItemIEs_specs_33; -extern asn_TYPE_member_t asn_MBR_RANfunction_ItemIEs_33[3]; +extern asn_SEQUENCE_specifics_t asn_SPC_RANfunction_ItemIEs_specs_57; +extern asn_TYPE_member_t asn_MBR_RANfunction_ItemIEs_57[3]; extern asn_TYPE_descriptor_t asn_DEF_RANfunctionID_ItemIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RANfunctionID_ItemIEs_specs_37; -extern asn_TYPE_member_t asn_MBR_RANfunctionID_ItemIEs_37[3]; +extern asn_SEQUENCE_specifics_t asn_SPC_RANfunctionID_ItemIEs_specs_61; +extern asn_TYPE_member_t asn_MBR_RANfunctionID_ItemIEs_61[3]; extern asn_TYPE_descriptor_t asn_DEF_RANfunctionIDcause_ItemIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RANfunctionIDcause_ItemIEs_specs_41; -extern asn_TYPE_member_t asn_MBR_RANfunctionIDcause_ItemIEs_41[3]; +extern asn_SEQUENCE_specifics_t asn_SPC_RANfunctionIDcause_ItemIEs_specs_65; +extern asn_TYPE_member_t asn_MBR_RANfunctionIDcause_ItemIEs_65[3]; extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionRequest_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionRequest_IEs_specs_45; -extern asn_TYPE_member_t asn_MBR_RICsubscriptionRequest_IEs_45[3]; +extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionRequest_IEs_specs_69; +extern asn_TYPE_member_t asn_MBR_RICsubscriptionRequest_IEs_69[3]; extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionResponse_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionResponse_IEs_specs_49; -extern asn_TYPE_member_t asn_MBR_RICsubscriptionResponse_IEs_49[3]; +extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionResponse_IEs_specs_73; +extern asn_TYPE_member_t asn_MBR_RICsubscriptionResponse_IEs_73[3]; extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionFailure_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionFailure_IEs_specs_53; -extern asn_TYPE_member_t asn_MBR_RICsubscriptionFailure_IEs_53[3]; +extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionFailure_IEs_specs_77; +extern asn_TYPE_member_t asn_MBR_RICsubscriptionFailure_IEs_77[3]; extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDeleteRequest_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteRequest_IEs_specs_57; -extern asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteRequest_IEs_57[3]; +extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteRequest_IEs_specs_81; +extern asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteRequest_IEs_81[3]; extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDeleteResponse_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteResponse_IEs_specs_61; -extern asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteResponse_IEs_61[3]; +extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteResponse_IEs_specs_85; +extern asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteResponse_IEs_85[3]; extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDeleteFailure_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteFailure_IEs_specs_65; -extern asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteFailure_IEs_65[3]; +extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteFailure_IEs_specs_89; +extern asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteFailure_IEs_89[3]; +extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDeleteRequired_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteRequired_IEs_specs_93; +extern asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteRequired_IEs_93[3]; extern asn_TYPE_descriptor_t asn_DEF_RICindication_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RICindication_IEs_specs_69; -extern asn_TYPE_member_t asn_MBR_RICindication_IEs_69[3]; +extern asn_SEQUENCE_specifics_t asn_SPC_RICindication_IEs_specs_97; +extern asn_TYPE_member_t asn_MBR_RICindication_IEs_97[3]; extern asn_TYPE_descriptor_t asn_DEF_RICcontrolRequest_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RICcontrolRequest_IEs_specs_73; -extern asn_TYPE_member_t asn_MBR_RICcontrolRequest_IEs_73[3]; +extern asn_SEQUENCE_specifics_t asn_SPC_RICcontrolRequest_IEs_specs_101; +extern asn_TYPE_member_t asn_MBR_RICcontrolRequest_IEs_101[3]; extern asn_TYPE_descriptor_t asn_DEF_RICcontrolAcknowledge_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RICcontrolAcknowledge_IEs_specs_77; -extern asn_TYPE_member_t asn_MBR_RICcontrolAcknowledge_IEs_77[3]; +extern asn_SEQUENCE_specifics_t asn_SPC_RICcontrolAcknowledge_IEs_specs_105; +extern asn_TYPE_member_t asn_MBR_RICcontrolAcknowledge_IEs_105[3]; extern asn_TYPE_descriptor_t asn_DEF_RICcontrolFailure_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RICcontrolFailure_IEs_specs_81; -extern asn_TYPE_member_t asn_MBR_RICcontrolFailure_IEs_81[3]; +extern asn_SEQUENCE_specifics_t asn_SPC_RICcontrolFailure_IEs_specs_109; +extern asn_TYPE_member_t asn_MBR_RICcontrolFailure_IEs_109[3]; extern asn_TYPE_descriptor_t asn_DEF_ErrorIndication_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_ErrorIndication_IEs_specs_85; -extern asn_TYPE_member_t asn_MBR_ErrorIndication_IEs_85[3]; +extern asn_SEQUENCE_specifics_t asn_SPC_ErrorIndication_IEs_specs_113; +extern asn_TYPE_member_t asn_MBR_ErrorIndication_IEs_113[3]; extern asn_TYPE_descriptor_t asn_DEF_E2setupRequestIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E2setupRequestIEs_specs_89; -extern asn_TYPE_member_t asn_MBR_E2setupRequestIEs_89[3]; +extern asn_SEQUENCE_specifics_t asn_SPC_E2setupRequestIEs_specs_117; +extern asn_TYPE_member_t asn_MBR_E2setupRequestIEs_117[3]; extern asn_TYPE_descriptor_t asn_DEF_E2setupResponseIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E2setupResponseIEs_specs_93; -extern asn_TYPE_member_t asn_MBR_E2setupResponseIEs_93[3]; +extern asn_SEQUENCE_specifics_t asn_SPC_E2setupResponseIEs_specs_121; +extern asn_TYPE_member_t asn_MBR_E2setupResponseIEs_121[3]; extern asn_TYPE_descriptor_t asn_DEF_E2setupFailureIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E2setupFailureIEs_specs_97; -extern asn_TYPE_member_t asn_MBR_E2setupFailureIEs_97[3]; +extern asn_SEQUENCE_specifics_t asn_SPC_E2setupFailureIEs_specs_125; +extern asn_TYPE_member_t asn_MBR_E2setupFailureIEs_125[3]; extern asn_TYPE_descriptor_t asn_DEF_E2connectionUpdate_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E2connectionUpdate_IEs_specs_101; -extern asn_TYPE_member_t asn_MBR_E2connectionUpdate_IEs_101[3]; +extern asn_SEQUENCE_specifics_t asn_SPC_E2connectionUpdate_IEs_specs_129; +extern asn_TYPE_member_t asn_MBR_E2connectionUpdate_IEs_129[3]; extern asn_TYPE_descriptor_t asn_DEF_E2connectionUpdateAck_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E2connectionUpdateAck_IEs_specs_105; -extern asn_TYPE_member_t asn_MBR_E2connectionUpdateAck_IEs_105[3]; +extern asn_SEQUENCE_specifics_t asn_SPC_E2connectionUpdateAck_IEs_specs_133; +extern asn_TYPE_member_t asn_MBR_E2connectionUpdateAck_IEs_133[3]; extern asn_TYPE_descriptor_t asn_DEF_E2connectionUpdateFailure_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E2connectionUpdateFailure_IEs_specs_109; -extern asn_TYPE_member_t asn_MBR_E2connectionUpdateFailure_IEs_109[3]; +extern asn_SEQUENCE_specifics_t asn_SPC_E2connectionUpdateFailure_IEs_specs_137; +extern asn_TYPE_member_t asn_MBR_E2connectionUpdateFailure_IEs_137[3]; extern asn_TYPE_descriptor_t asn_DEF_E2nodeConfigurationUpdate_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeConfigurationUpdate_IEs_specs_113; -extern asn_TYPE_member_t asn_MBR_E2nodeConfigurationUpdate_IEs_113[3]; +extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeConfigurationUpdate_IEs_specs_141; +extern asn_TYPE_member_t asn_MBR_E2nodeConfigurationUpdate_IEs_141[3]; extern asn_TYPE_descriptor_t asn_DEF_E2nodeConfigurationUpdateAcknowledge_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeConfigurationUpdateAcknowledge_IEs_specs_117; -extern asn_TYPE_member_t asn_MBR_E2nodeConfigurationUpdateAcknowledge_IEs_117[3]; +extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeConfigurationUpdateAcknowledge_IEs_specs_145; +extern asn_TYPE_member_t asn_MBR_E2nodeConfigurationUpdateAcknowledge_IEs_145[3]; extern asn_TYPE_descriptor_t asn_DEF_E2nodeConfigurationUpdateFailure_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeConfigurationUpdateFailure_IEs_specs_121; -extern asn_TYPE_member_t asn_MBR_E2nodeConfigurationUpdateFailure_IEs_121[3]; +extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeConfigurationUpdateFailure_IEs_specs_149; +extern asn_TYPE_member_t asn_MBR_E2nodeConfigurationUpdateFailure_IEs_149[3]; extern asn_TYPE_descriptor_t asn_DEF_ResetRequestIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_ResetRequestIEs_specs_125; -extern asn_TYPE_member_t asn_MBR_ResetRequestIEs_125[3]; +extern asn_SEQUENCE_specifics_t asn_SPC_ResetRequestIEs_specs_153; +extern asn_TYPE_member_t asn_MBR_ResetRequestIEs_153[3]; extern asn_TYPE_descriptor_t asn_DEF_ResetResponseIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_ResetResponseIEs_specs_129; -extern asn_TYPE_member_t asn_MBR_ResetResponseIEs_129[3]; +extern asn_SEQUENCE_specifics_t asn_SPC_ResetResponseIEs_specs_157; +extern asn_TYPE_member_t asn_MBR_ResetResponseIEs_157[3]; extern asn_TYPE_descriptor_t asn_DEF_RICserviceUpdate_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdate_IEs_specs_133; -extern asn_TYPE_member_t asn_MBR_RICserviceUpdate_IEs_133[3]; +extern asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdate_IEs_specs_161; +extern asn_TYPE_member_t asn_MBR_RICserviceUpdate_IEs_161[3]; extern asn_TYPE_descriptor_t asn_DEF_RICserviceUpdateAcknowledge_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdateAcknowledge_IEs_specs_137; -extern asn_TYPE_member_t asn_MBR_RICserviceUpdateAcknowledge_IEs_137[3]; +extern asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdateAcknowledge_IEs_specs_165; +extern asn_TYPE_member_t asn_MBR_RICserviceUpdateAcknowledge_IEs_165[3]; extern asn_TYPE_descriptor_t asn_DEF_RICserviceUpdateFailure_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdateFailure_IEs_specs_141; -extern asn_TYPE_member_t asn_MBR_RICserviceUpdateFailure_IEs_141[3]; +extern asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdateFailure_IEs_specs_169; +extern asn_TYPE_member_t asn_MBR_RICserviceUpdateFailure_IEs_169[3]; extern asn_TYPE_descriptor_t asn_DEF_RICserviceQuery_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RICserviceQuery_IEs_specs_145; -extern asn_TYPE_member_t asn_MBR_RICserviceQuery_IEs_145[3]; +extern asn_SEQUENCE_specifics_t asn_SPC_RICserviceQuery_IEs_specs_173; +extern asn_TYPE_member_t asn_MBR_RICserviceQuery_IEs_173[3]; #ifdef __cplusplus } diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ProtocolIE-FieldPair.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ProtocolIE-FieldPair.c index 74ff309..369845c 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ProtocolIE-FieldPair.c +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ProtocolIE-FieldPair.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-Containers" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #include "ProtocolIE-FieldPair.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ProtocolIE-FieldPair.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ProtocolIE-FieldPair.h index 7437097..485ab58 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ProtocolIE-FieldPair.h +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ProtocolIE-FieldPair.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-Containers" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #ifndef _ProtocolIE_FieldPair_H_ diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ProtocolIE-ID.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ProtocolIE-ID.c index 5d11b66..6fb4247 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ProtocolIE-ID.c +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ProtocolIE-ID.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-CommonDataTypes" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #include "ProtocolIE-ID.h" @@ -36,6 +36,9 @@ ProtocolIE_ID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, * This type is implemented using NativeInteger, * so here we adjust the DEF accordingly. */ +static asn_oer_constraints_t asn_OER_type_ProtocolIE_ID_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; asn_per_constraints_t asn_PER_type_ProtocolIE_ID_constr_1 CC_NOTUSED = { { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, @@ -54,7 +57,7 @@ asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ID = { asn_DEF_ProtocolIE_ID_tags_1, /* Same as above */ sizeof(asn_DEF_ProtocolIE_ID_tags_1) /sizeof(asn_DEF_ProtocolIE_ID_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_ID_constr_1, ProtocolIE_ID_constraint }, + { &asn_OER_type_ProtocolIE_ID_constr_1, &asn_PER_type_ProtocolIE_ID_constr_1, ProtocolIE_ID_constraint }, 0, 0, /* No members */ 0 /* No specifics */ }; diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ProtocolIE-ID.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ProtocolIE-ID.h index 77b6c57..a50dc2d 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ProtocolIE-ID.h +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ProtocolIE-ID.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-CommonDataTypes" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #ifndef _ProtocolIE_ID_H_ @@ -31,6 +31,8 @@ ber_type_decoder_f ProtocolIE_ID_decode_ber; der_type_encoder_f ProtocolIE_ID_encode_der; xer_type_decoder_f ProtocolIE_ID_decode_xer; xer_type_encoder_f ProtocolIE_ID_encode_xer; +oer_type_decoder_f ProtocolIE_ID_decode_oer; +oer_type_encoder_f ProtocolIE_ID_encode_oer; per_type_decoder_f ProtocolIE_ID_decode_uper; per_type_encoder_f ProtocolIE_ID_encode_uper; per_type_decoder_f ProtocolIE_ID_decode_aper; @@ -81,6 +83,19 @@ per_type_encoder_f ProtocolIE_ID_encode_aper; #define ProtocolIE_ID_id_E2connectionUpdateRemove ((ProtocolIE_ID_t)46) #define ProtocolIE_ID_id_E2connectionUpdateRemove_Item ((ProtocolIE_ID_t)47) #define ProtocolIE_ID_id_TNLinformation ((ProtocolIE_ID_t)48) +#define ProtocolIE_ID_id_TransactionID ((ProtocolIE_ID_t)49) +#define ProtocolIE_ID_id_E2nodeComponentConfigAddition ((ProtocolIE_ID_t)50) +#define ProtocolIE_ID_id_E2nodeComponentConfigAddition_Item ((ProtocolIE_ID_t)51) +#define ProtocolIE_ID_id_E2nodeComponentConfigAdditionAck ((ProtocolIE_ID_t)52) +#define ProtocolIE_ID_id_E2nodeComponentConfigAdditionAck_Item ((ProtocolIE_ID_t)53) +#define ProtocolIE_ID_id_E2nodeComponentConfigRemoval ((ProtocolIE_ID_t)54) +#define ProtocolIE_ID_id_E2nodeComponentConfigRemoval_Item ((ProtocolIE_ID_t)55) +#define ProtocolIE_ID_id_E2nodeComponentConfigRemovalAck ((ProtocolIE_ID_t)56) +#define ProtocolIE_ID_id_E2nodeComponentConfigRemovalAck_Item ((ProtocolIE_ID_t)57) +#define ProtocolIE_ID_id_E2nodeTNLassociationRemoval ((ProtocolIE_ID_t)58) +#define ProtocolIE_ID_id_E2nodeTNLassociationRemoval_Item ((ProtocolIE_ID_t)59) +#define ProtocolIE_ID_id_RICsubscriptionToBeRemoved ((ProtocolIE_ID_t)50) +#define ProtocolIE_ID_id_RICsubscription_withCause_Item ((ProtocolIE_ID_t)51) #ifdef __cplusplus } diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ProtocolIE-SingleContainer.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ProtocolIE-SingleContainer.c index 73b92ab..e56a8dc 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ProtocolIE-SingleContainer.c +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ProtocolIE-SingleContainer.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-Containers" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #include "ProtocolIE-SingleContainer.h" @@ -19,6 +19,10 @@ * This type is implemented using RICaction_NotAdmitted_ItemIEs, * so here we adjust the DEF accordingly. */ +/* + * This type is implemented using RICsubscription_withCause_ItemIEs, + * so here we adjust the DEF accordingly. + */ /* * This type is implemented using E2connectionUpdate_ItemIEs, * so here we adjust the DEF accordingly. @@ -31,14 +35,34 @@ * This type is implemented using E2connectionSetupFailed_ItemIEs, * so here we adjust the DEF accordingly. */ +/* + * This type is implemented using E2nodeComponentConfigAddition_ItemIEs, + * so here we adjust the DEF accordingly. + */ /* * This type is implemented using E2nodeComponentConfigUpdate_ItemIEs, * so here we adjust the DEF accordingly. */ +/* + * This type is implemented using E2nodeComponentConfigRemoval_ItemIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using E2nodeTNLassociationRemoval_ItemIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using E2nodeComponentConfigAdditionAck_ItemIEs, + * so here we adjust the DEF accordingly. + */ /* * This type is implemented using E2nodeComponentConfigUpdateAck_ItemIEs, * so here we adjust the DEF accordingly. */ +/* + * This type is implemented using E2nodeComponentConfigRemovalAck_ItemIEs, + * so here we adjust the DEF accordingly. + */ /* * This type is implemented using RANfunction_ItemIEs, * so here we adjust the DEF accordingly. @@ -51,212 +75,326 @@ * This type is implemented using RANfunctionIDcause_ItemIEs, * so here we adjust the DEF accordingly. */ -static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_229P0_tags_1[] = { +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_1920P0_tags_1[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_229P0 = { +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P0 = { "ProtocolIE-SingleContainer", "ProtocolIE-SingleContainer", &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_SingleContainer_229P0_tags_1, - sizeof(asn_DEF_ProtocolIE_SingleContainer_229P0_tags_1) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_229P0_tags_1[0]), /* 1 */ - asn_DEF_ProtocolIE_SingleContainer_229P0_tags_1, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_SingleContainer_229P0_tags_1) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_229P0_tags_1[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_1920P0_tags_1, + sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P0_tags_1) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P0_tags_1[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_1920P0_tags_1, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P0_tags_1) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P0_tags_1[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, asn_MBR_RICaction_ToBeSetup_ItemIEs_1, 3, /* Elements count */ &asn_SPC_RICaction_ToBeSetup_ItemIEs_specs_1 /* Additional specs */ }; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_229P1_tags_2[] = { +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_1920P1_tags_2[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_229P1 = { +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P1 = { "ProtocolIE-SingleContainer", "ProtocolIE-SingleContainer", &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_SingleContainer_229P1_tags_2, - sizeof(asn_DEF_ProtocolIE_SingleContainer_229P1_tags_2) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_229P1_tags_2[0]), /* 1 */ - asn_DEF_ProtocolIE_SingleContainer_229P1_tags_2, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_SingleContainer_229P1_tags_2) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_229P1_tags_2[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_1920P1_tags_2, + sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P1_tags_2) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P1_tags_2[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_1920P1_tags_2, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P1_tags_2) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P1_tags_2[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, asn_MBR_RICaction_Admitted_ItemIEs_5, 3, /* Elements count */ &asn_SPC_RICaction_Admitted_ItemIEs_specs_5 /* Additional specs */ }; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_229P2_tags_3[] = { +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_1920P2_tags_3[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_229P2 = { +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P2 = { "ProtocolIE-SingleContainer", "ProtocolIE-SingleContainer", &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_SingleContainer_229P2_tags_3, - sizeof(asn_DEF_ProtocolIE_SingleContainer_229P2_tags_3) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_229P2_tags_3[0]), /* 1 */ - asn_DEF_ProtocolIE_SingleContainer_229P2_tags_3, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_SingleContainer_229P2_tags_3) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_229P2_tags_3[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_1920P2_tags_3, + sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P2_tags_3) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P2_tags_3[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_1920P2_tags_3, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P2_tags_3) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P2_tags_3[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, asn_MBR_RICaction_NotAdmitted_ItemIEs_9, 3, /* Elements count */ &asn_SPC_RICaction_NotAdmitted_ItemIEs_specs_9 /* Additional specs */ }; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_229P3_tags_4[] = { +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_1920P3_tags_4[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P3 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_SingleContainer_1920P3_tags_4, + sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P3_tags_4) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P3_tags_4[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_1920P3_tags_4, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P3_tags_4) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P3_tags_4[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RICsubscription_withCause_ItemIEs_13, + 3, /* Elements count */ + &asn_SPC_RICsubscription_withCause_ItemIEs_specs_13 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_1920P4_tags_5[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P4 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_SingleContainer_1920P4_tags_5, + sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P4_tags_5) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P4_tags_5[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_1920P4_tags_5, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P4_tags_5) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P4_tags_5[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_E2connectionUpdate_ItemIEs_17, + 3, /* Elements count */ + &asn_SPC_E2connectionUpdate_ItemIEs_specs_17 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_1920P5_tags_6[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P5 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_SingleContainer_1920P5_tags_6, + sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P5_tags_6) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P5_tags_6[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_1920P5_tags_6, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P5_tags_6) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P5_tags_6[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_E2connectionUpdateRemove_ItemIEs_21, + 3, /* Elements count */ + &asn_SPC_E2connectionUpdateRemove_ItemIEs_specs_21 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_1920P6_tags_7[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P6 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_SingleContainer_1920P6_tags_7, + sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P6_tags_7) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P6_tags_7[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_1920P6_tags_7, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P6_tags_7) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P6_tags_7[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_E2connectionSetupFailed_ItemIEs_25, + 3, /* Elements count */ + &asn_SPC_E2connectionSetupFailed_ItemIEs_specs_25 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_1920P7_tags_8[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P7 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_SingleContainer_1920P7_tags_8, + sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P7_tags_8) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P7_tags_8[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_1920P7_tags_8, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P7_tags_8) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P7_tags_8[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_E2nodeComponentConfigAddition_ItemIEs_29, + 3, /* Elements count */ + &asn_SPC_E2nodeComponentConfigAddition_ItemIEs_specs_29 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_1920P8_tags_9[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P8 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_SingleContainer_1920P8_tags_9, + sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P8_tags_9) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P8_tags_9[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_1920P8_tags_9, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P8_tags_9) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P8_tags_9[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_E2nodeComponentConfigUpdate_ItemIEs_33, + 3, /* Elements count */ + &asn_SPC_E2nodeComponentConfigUpdate_ItemIEs_specs_33 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_1920P9_tags_10[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_229P3 = { +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P9 = { "ProtocolIE-SingleContainer", "ProtocolIE-SingleContainer", &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_SingleContainer_229P3_tags_4, - sizeof(asn_DEF_ProtocolIE_SingleContainer_229P3_tags_4) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_229P3_tags_4[0]), /* 1 */ - asn_DEF_ProtocolIE_SingleContainer_229P3_tags_4, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_SingleContainer_229P3_tags_4) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_229P3_tags_4[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_1920P9_tags_10, + sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P9_tags_10) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P9_tags_10[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_1920P9_tags_10, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P9_tags_10) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P9_tags_10[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_E2connectionUpdate_ItemIEs_13, + asn_MBR_E2nodeComponentConfigRemoval_ItemIEs_37, 3, /* Elements count */ - &asn_SPC_E2connectionUpdate_ItemIEs_specs_13 /* Additional specs */ + &asn_SPC_E2nodeComponentConfigRemoval_ItemIEs_specs_37 /* Additional specs */ }; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_229P4_tags_5[] = { +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_1920P10_tags_11[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_229P4 = { +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P10 = { "ProtocolIE-SingleContainer", "ProtocolIE-SingleContainer", &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_SingleContainer_229P4_tags_5, - sizeof(asn_DEF_ProtocolIE_SingleContainer_229P4_tags_5) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_229P4_tags_5[0]), /* 1 */ - asn_DEF_ProtocolIE_SingleContainer_229P4_tags_5, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_SingleContainer_229P4_tags_5) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_229P4_tags_5[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_1920P10_tags_11, + sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P10_tags_11) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P10_tags_11[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_1920P10_tags_11, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P10_tags_11) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P10_tags_11[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_E2connectionUpdateRemove_ItemIEs_17, + asn_MBR_E2nodeTNLassociationRemoval_ItemIEs_41, 3, /* Elements count */ - &asn_SPC_E2connectionUpdateRemove_ItemIEs_specs_17 /* Additional specs */ + &asn_SPC_E2nodeTNLassociationRemoval_ItemIEs_specs_41 /* Additional specs */ }; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_229P5_tags_6[] = { +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_1920P11_tags_12[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_229P5 = { +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P11 = { "ProtocolIE-SingleContainer", "ProtocolIE-SingleContainer", &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_SingleContainer_229P5_tags_6, - sizeof(asn_DEF_ProtocolIE_SingleContainer_229P5_tags_6) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_229P5_tags_6[0]), /* 1 */ - asn_DEF_ProtocolIE_SingleContainer_229P5_tags_6, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_SingleContainer_229P5_tags_6) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_229P5_tags_6[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_1920P11_tags_12, + sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P11_tags_12) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P11_tags_12[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_1920P11_tags_12, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P11_tags_12) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P11_tags_12[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_E2connectionSetupFailed_ItemIEs_21, + asn_MBR_E2nodeComponentConfigAdditionAck_ItemIEs_45, 3, /* Elements count */ - &asn_SPC_E2connectionSetupFailed_ItemIEs_specs_21 /* Additional specs */ + &asn_SPC_E2nodeComponentConfigAdditionAck_ItemIEs_specs_45 /* Additional specs */ }; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_229P6_tags_7[] = { +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_1920P12_tags_13[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_229P6 = { +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P12 = { "ProtocolIE-SingleContainer", "ProtocolIE-SingleContainer", &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_SingleContainer_229P6_tags_7, - sizeof(asn_DEF_ProtocolIE_SingleContainer_229P6_tags_7) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_229P6_tags_7[0]), /* 1 */ - asn_DEF_ProtocolIE_SingleContainer_229P6_tags_7, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_SingleContainer_229P6_tags_7) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_229P6_tags_7[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_1920P12_tags_13, + sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P12_tags_13) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P12_tags_13[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_1920P12_tags_13, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P12_tags_13) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P12_tags_13[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_E2nodeComponentConfigUpdate_ItemIEs_25, + asn_MBR_E2nodeComponentConfigUpdateAck_ItemIEs_49, 3, /* Elements count */ - &asn_SPC_E2nodeComponentConfigUpdate_ItemIEs_specs_25 /* Additional specs */ + &asn_SPC_E2nodeComponentConfigUpdateAck_ItemIEs_specs_49 /* Additional specs */ }; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_229P7_tags_8[] = { +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_1920P13_tags_14[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_229P7 = { +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P13 = { "ProtocolIE-SingleContainer", "ProtocolIE-SingleContainer", &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_SingleContainer_229P7_tags_8, - sizeof(asn_DEF_ProtocolIE_SingleContainer_229P7_tags_8) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_229P7_tags_8[0]), /* 1 */ - asn_DEF_ProtocolIE_SingleContainer_229P7_tags_8, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_SingleContainer_229P7_tags_8) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_229P7_tags_8[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_1920P13_tags_14, + sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P13_tags_14) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P13_tags_14[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_1920P13_tags_14, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P13_tags_14) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P13_tags_14[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_E2nodeComponentConfigUpdateAck_ItemIEs_29, + asn_MBR_E2nodeComponentConfigRemovalAck_ItemIEs_53, 3, /* Elements count */ - &asn_SPC_E2nodeComponentConfigUpdateAck_ItemIEs_specs_29 /* Additional specs */ + &asn_SPC_E2nodeComponentConfigRemovalAck_ItemIEs_specs_53 /* Additional specs */ }; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_229P8_tags_9[] = { +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_1920P14_tags_15[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_229P8 = { +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P14 = { "ProtocolIE-SingleContainer", "ProtocolIE-SingleContainer", &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_SingleContainer_229P8_tags_9, - sizeof(asn_DEF_ProtocolIE_SingleContainer_229P8_tags_9) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_229P8_tags_9[0]), /* 1 */ - asn_DEF_ProtocolIE_SingleContainer_229P8_tags_9, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_SingleContainer_229P8_tags_9) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_229P8_tags_9[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_1920P14_tags_15, + sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P14_tags_15) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P14_tags_15[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_1920P14_tags_15, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P14_tags_15) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P14_tags_15[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_RANfunction_ItemIEs_33, + asn_MBR_RANfunction_ItemIEs_57, 3, /* Elements count */ - &asn_SPC_RANfunction_ItemIEs_specs_33 /* Additional specs */ + &asn_SPC_RANfunction_ItemIEs_specs_57 /* Additional specs */ }; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_229P9_tags_10[] = { +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_1920P15_tags_16[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_229P9 = { +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P15 = { "ProtocolIE-SingleContainer", "ProtocolIE-SingleContainer", &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_SingleContainer_229P9_tags_10, - sizeof(asn_DEF_ProtocolIE_SingleContainer_229P9_tags_10) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_229P9_tags_10[0]), /* 1 */ - asn_DEF_ProtocolIE_SingleContainer_229P9_tags_10, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_SingleContainer_229P9_tags_10) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_229P9_tags_10[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_1920P15_tags_16, + sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P15_tags_16) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P15_tags_16[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_1920P15_tags_16, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P15_tags_16) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P15_tags_16[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_RANfunctionID_ItemIEs_37, + asn_MBR_RANfunctionID_ItemIEs_61, 3, /* Elements count */ - &asn_SPC_RANfunctionID_ItemIEs_specs_37 /* Additional specs */ + &asn_SPC_RANfunctionID_ItemIEs_specs_61 /* Additional specs */ }; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_229P10_tags_11[] = { +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_1920P16_tags_17[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_229P10 = { +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P16 = { "ProtocolIE-SingleContainer", "ProtocolIE-SingleContainer", &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_SingleContainer_229P10_tags_11, - sizeof(asn_DEF_ProtocolIE_SingleContainer_229P10_tags_11) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_229P10_tags_11[0]), /* 1 */ - asn_DEF_ProtocolIE_SingleContainer_229P10_tags_11, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_SingleContainer_229P10_tags_11) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_229P10_tags_11[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_1920P16_tags_17, + sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P16_tags_17) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P16_tags_17[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_1920P16_tags_17, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P16_tags_17) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P16_tags_17[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_RANfunctionIDcause_ItemIEs_41, + asn_MBR_RANfunctionIDcause_ItemIEs_65, 3, /* Elements count */ - &asn_SPC_RANfunctionIDcause_ItemIEs_specs_41 /* Additional specs */ + &asn_SPC_RANfunctionIDcause_ItemIEs_specs_65 /* Additional specs */ }; diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ProtocolIE-SingleContainer.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ProtocolIE-SingleContainer.h index 31495a1..e3d59b5 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ProtocolIE-SingleContainer.h +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ProtocolIE-SingleContainer.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-Containers" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #ifndef _ProtocolIE_SingleContainer_H_ @@ -19,151 +19,263 @@ extern "C" { #endif /* ProtocolIE-SingleContainer */ -typedef RICaction_ToBeSetup_ItemIEs_t ProtocolIE_SingleContainer_229P0_t; -typedef RICaction_Admitted_ItemIEs_t ProtocolIE_SingleContainer_229P1_t; -typedef RICaction_NotAdmitted_ItemIEs_t ProtocolIE_SingleContainer_229P2_t; -typedef E2connectionUpdate_ItemIEs_t ProtocolIE_SingleContainer_229P3_t; -typedef E2connectionUpdateRemove_ItemIEs_t ProtocolIE_SingleContainer_229P4_t; -typedef E2connectionSetupFailed_ItemIEs_t ProtocolIE_SingleContainer_229P5_t; -typedef E2nodeComponentConfigUpdate_ItemIEs_t ProtocolIE_SingleContainer_229P6_t; -typedef E2nodeComponentConfigUpdateAck_ItemIEs_t ProtocolIE_SingleContainer_229P7_t; -typedef RANfunction_ItemIEs_t ProtocolIE_SingleContainer_229P8_t; -typedef RANfunctionID_ItemIEs_t ProtocolIE_SingleContainer_229P9_t; -typedef RANfunctionIDcause_ItemIEs_t ProtocolIE_SingleContainer_229P10_t; +typedef RICaction_ToBeSetup_ItemIEs_t ProtocolIE_SingleContainer_1920P0_t; +typedef RICaction_Admitted_ItemIEs_t ProtocolIE_SingleContainer_1920P1_t; +typedef RICaction_NotAdmitted_ItemIEs_t ProtocolIE_SingleContainer_1920P2_t; +typedef RICsubscription_withCause_ItemIEs_t ProtocolIE_SingleContainer_1920P3_t; +typedef E2connectionUpdate_ItemIEs_t ProtocolIE_SingleContainer_1920P4_t; +typedef E2connectionUpdateRemove_ItemIEs_t ProtocolIE_SingleContainer_1920P5_t; +typedef E2connectionSetupFailed_ItemIEs_t ProtocolIE_SingleContainer_1920P6_t; +typedef E2nodeComponentConfigAddition_ItemIEs_t ProtocolIE_SingleContainer_1920P7_t; +typedef E2nodeComponentConfigUpdate_ItemIEs_t ProtocolIE_SingleContainer_1920P8_t; +typedef E2nodeComponentConfigRemoval_ItemIEs_t ProtocolIE_SingleContainer_1920P9_t; +typedef E2nodeTNLassociationRemoval_ItemIEs_t ProtocolIE_SingleContainer_1920P10_t; +typedef E2nodeComponentConfigAdditionAck_ItemIEs_t ProtocolIE_SingleContainer_1920P11_t; +typedef E2nodeComponentConfigUpdateAck_ItemIEs_t ProtocolIE_SingleContainer_1920P12_t; +typedef E2nodeComponentConfigRemovalAck_ItemIEs_t ProtocolIE_SingleContainer_1920P13_t; +typedef RANfunction_ItemIEs_t ProtocolIE_SingleContainer_1920P14_t; +typedef RANfunctionID_ItemIEs_t ProtocolIE_SingleContainer_1920P15_t; +typedef RANfunctionIDcause_ItemIEs_t ProtocolIE_SingleContainer_1920P16_t; /* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_229P0; -asn_struct_free_f ProtocolIE_SingleContainer_229P0_free; -asn_struct_print_f ProtocolIE_SingleContainer_229P0_print; -asn_constr_check_f ProtocolIE_SingleContainer_229P0_constraint; -ber_type_decoder_f ProtocolIE_SingleContainer_229P0_decode_ber; -der_type_encoder_f ProtocolIE_SingleContainer_229P0_encode_der; -xer_type_decoder_f ProtocolIE_SingleContainer_229P0_decode_xer; -xer_type_encoder_f ProtocolIE_SingleContainer_229P0_encode_xer; -per_type_decoder_f ProtocolIE_SingleContainer_229P0_decode_uper; -per_type_encoder_f ProtocolIE_SingleContainer_229P0_encode_uper; -per_type_decoder_f ProtocolIE_SingleContainer_229P0_decode_aper; -per_type_encoder_f ProtocolIE_SingleContainer_229P0_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_229P1; -asn_struct_free_f ProtocolIE_SingleContainer_229P1_free; -asn_struct_print_f ProtocolIE_SingleContainer_229P1_print; -asn_constr_check_f ProtocolIE_SingleContainer_229P1_constraint; -ber_type_decoder_f ProtocolIE_SingleContainer_229P1_decode_ber; -der_type_encoder_f ProtocolIE_SingleContainer_229P1_encode_der; -xer_type_decoder_f ProtocolIE_SingleContainer_229P1_decode_xer; -xer_type_encoder_f ProtocolIE_SingleContainer_229P1_encode_xer; -per_type_decoder_f ProtocolIE_SingleContainer_229P1_decode_uper; -per_type_encoder_f ProtocolIE_SingleContainer_229P1_encode_uper; -per_type_decoder_f ProtocolIE_SingleContainer_229P1_decode_aper; -per_type_encoder_f ProtocolIE_SingleContainer_229P1_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_229P2; -asn_struct_free_f ProtocolIE_SingleContainer_229P2_free; -asn_struct_print_f ProtocolIE_SingleContainer_229P2_print; -asn_constr_check_f ProtocolIE_SingleContainer_229P2_constraint; -ber_type_decoder_f ProtocolIE_SingleContainer_229P2_decode_ber; -der_type_encoder_f ProtocolIE_SingleContainer_229P2_encode_der; -xer_type_decoder_f ProtocolIE_SingleContainer_229P2_decode_xer; -xer_type_encoder_f ProtocolIE_SingleContainer_229P2_encode_xer; -per_type_decoder_f ProtocolIE_SingleContainer_229P2_decode_uper; -per_type_encoder_f ProtocolIE_SingleContainer_229P2_encode_uper; -per_type_decoder_f ProtocolIE_SingleContainer_229P2_decode_aper; -per_type_encoder_f ProtocolIE_SingleContainer_229P2_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_229P3; -asn_struct_free_f ProtocolIE_SingleContainer_229P3_free; -asn_struct_print_f ProtocolIE_SingleContainer_229P3_print; -asn_constr_check_f ProtocolIE_SingleContainer_229P3_constraint; -ber_type_decoder_f ProtocolIE_SingleContainer_229P3_decode_ber; -der_type_encoder_f ProtocolIE_SingleContainer_229P3_encode_der; -xer_type_decoder_f ProtocolIE_SingleContainer_229P3_decode_xer; -xer_type_encoder_f ProtocolIE_SingleContainer_229P3_encode_xer; -per_type_decoder_f ProtocolIE_SingleContainer_229P3_decode_uper; -per_type_encoder_f ProtocolIE_SingleContainer_229P3_encode_uper; -per_type_decoder_f ProtocolIE_SingleContainer_229P3_decode_aper; -per_type_encoder_f ProtocolIE_SingleContainer_229P3_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_229P4; -asn_struct_free_f ProtocolIE_SingleContainer_229P4_free; -asn_struct_print_f ProtocolIE_SingleContainer_229P4_print; -asn_constr_check_f ProtocolIE_SingleContainer_229P4_constraint; -ber_type_decoder_f ProtocolIE_SingleContainer_229P4_decode_ber; -der_type_encoder_f ProtocolIE_SingleContainer_229P4_encode_der; -xer_type_decoder_f ProtocolIE_SingleContainer_229P4_decode_xer; -xer_type_encoder_f ProtocolIE_SingleContainer_229P4_encode_xer; -per_type_decoder_f ProtocolIE_SingleContainer_229P4_decode_uper; -per_type_encoder_f ProtocolIE_SingleContainer_229P4_encode_uper; -per_type_decoder_f ProtocolIE_SingleContainer_229P4_decode_aper; -per_type_encoder_f ProtocolIE_SingleContainer_229P4_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_229P5; -asn_struct_free_f ProtocolIE_SingleContainer_229P5_free; -asn_struct_print_f ProtocolIE_SingleContainer_229P5_print; -asn_constr_check_f ProtocolIE_SingleContainer_229P5_constraint; -ber_type_decoder_f ProtocolIE_SingleContainer_229P5_decode_ber; -der_type_encoder_f ProtocolIE_SingleContainer_229P5_encode_der; -xer_type_decoder_f ProtocolIE_SingleContainer_229P5_decode_xer; -xer_type_encoder_f ProtocolIE_SingleContainer_229P5_encode_xer; -per_type_decoder_f ProtocolIE_SingleContainer_229P5_decode_uper; -per_type_encoder_f ProtocolIE_SingleContainer_229P5_encode_uper; -per_type_decoder_f ProtocolIE_SingleContainer_229P5_decode_aper; -per_type_encoder_f ProtocolIE_SingleContainer_229P5_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_229P6; -asn_struct_free_f ProtocolIE_SingleContainer_229P6_free; -asn_struct_print_f ProtocolIE_SingleContainer_229P6_print; -asn_constr_check_f ProtocolIE_SingleContainer_229P6_constraint; -ber_type_decoder_f ProtocolIE_SingleContainer_229P6_decode_ber; -der_type_encoder_f ProtocolIE_SingleContainer_229P6_encode_der; -xer_type_decoder_f ProtocolIE_SingleContainer_229P6_decode_xer; -xer_type_encoder_f ProtocolIE_SingleContainer_229P6_encode_xer; -per_type_decoder_f ProtocolIE_SingleContainer_229P6_decode_uper; -per_type_encoder_f ProtocolIE_SingleContainer_229P6_encode_uper; -per_type_decoder_f ProtocolIE_SingleContainer_229P6_decode_aper; -per_type_encoder_f ProtocolIE_SingleContainer_229P6_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_229P7; -asn_struct_free_f ProtocolIE_SingleContainer_229P7_free; -asn_struct_print_f ProtocolIE_SingleContainer_229P7_print; -asn_constr_check_f ProtocolIE_SingleContainer_229P7_constraint; -ber_type_decoder_f ProtocolIE_SingleContainer_229P7_decode_ber; -der_type_encoder_f ProtocolIE_SingleContainer_229P7_encode_der; -xer_type_decoder_f ProtocolIE_SingleContainer_229P7_decode_xer; -xer_type_encoder_f ProtocolIE_SingleContainer_229P7_encode_xer; -per_type_decoder_f ProtocolIE_SingleContainer_229P7_decode_uper; -per_type_encoder_f ProtocolIE_SingleContainer_229P7_encode_uper; -per_type_decoder_f ProtocolIE_SingleContainer_229P7_decode_aper; -per_type_encoder_f ProtocolIE_SingleContainer_229P7_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_229P8; -asn_struct_free_f ProtocolIE_SingleContainer_229P8_free; -asn_struct_print_f ProtocolIE_SingleContainer_229P8_print; -asn_constr_check_f ProtocolIE_SingleContainer_229P8_constraint; -ber_type_decoder_f ProtocolIE_SingleContainer_229P8_decode_ber; -der_type_encoder_f ProtocolIE_SingleContainer_229P8_encode_der; -xer_type_decoder_f ProtocolIE_SingleContainer_229P8_decode_xer; -xer_type_encoder_f ProtocolIE_SingleContainer_229P8_encode_xer; -per_type_decoder_f ProtocolIE_SingleContainer_229P8_decode_uper; -per_type_encoder_f ProtocolIE_SingleContainer_229P8_encode_uper; -per_type_decoder_f ProtocolIE_SingleContainer_229P8_decode_aper; -per_type_encoder_f ProtocolIE_SingleContainer_229P8_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_229P9; -asn_struct_free_f ProtocolIE_SingleContainer_229P9_free; -asn_struct_print_f ProtocolIE_SingleContainer_229P9_print; -asn_constr_check_f ProtocolIE_SingleContainer_229P9_constraint; -ber_type_decoder_f ProtocolIE_SingleContainer_229P9_decode_ber; -der_type_encoder_f ProtocolIE_SingleContainer_229P9_encode_der; -xer_type_decoder_f ProtocolIE_SingleContainer_229P9_decode_xer; -xer_type_encoder_f ProtocolIE_SingleContainer_229P9_encode_xer; -per_type_decoder_f ProtocolIE_SingleContainer_229P9_decode_uper; -per_type_encoder_f ProtocolIE_SingleContainer_229P9_encode_uper; -per_type_decoder_f ProtocolIE_SingleContainer_229P9_decode_aper; -per_type_encoder_f ProtocolIE_SingleContainer_229P9_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_229P10; -asn_struct_free_f ProtocolIE_SingleContainer_229P10_free; -asn_struct_print_f ProtocolIE_SingleContainer_229P10_print; -asn_constr_check_f ProtocolIE_SingleContainer_229P10_constraint; -ber_type_decoder_f ProtocolIE_SingleContainer_229P10_decode_ber; -der_type_encoder_f ProtocolIE_SingleContainer_229P10_encode_der; -xer_type_decoder_f ProtocolIE_SingleContainer_229P10_decode_xer; -xer_type_encoder_f ProtocolIE_SingleContainer_229P10_encode_xer; -per_type_decoder_f ProtocolIE_SingleContainer_229P10_decode_uper; -per_type_encoder_f ProtocolIE_SingleContainer_229P10_encode_uper; -per_type_decoder_f ProtocolIE_SingleContainer_229P10_decode_aper; -per_type_encoder_f ProtocolIE_SingleContainer_229P10_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P0; +asn_struct_free_f ProtocolIE_SingleContainer_1920P0_free; +asn_struct_print_f ProtocolIE_SingleContainer_1920P0_print; +asn_constr_check_f ProtocolIE_SingleContainer_1920P0_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_1920P0_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_1920P0_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_1920P0_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_1920P0_encode_xer; +oer_type_decoder_f ProtocolIE_SingleContainer_1920P0_decode_oer; +oer_type_encoder_f ProtocolIE_SingleContainer_1920P0_encode_oer; +per_type_decoder_f ProtocolIE_SingleContainer_1920P0_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_1920P0_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_1920P0_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_1920P0_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P1; +asn_struct_free_f ProtocolIE_SingleContainer_1920P1_free; +asn_struct_print_f ProtocolIE_SingleContainer_1920P1_print; +asn_constr_check_f ProtocolIE_SingleContainer_1920P1_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_1920P1_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_1920P1_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_1920P1_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_1920P1_encode_xer; +oer_type_decoder_f ProtocolIE_SingleContainer_1920P1_decode_oer; +oer_type_encoder_f ProtocolIE_SingleContainer_1920P1_encode_oer; +per_type_decoder_f ProtocolIE_SingleContainer_1920P1_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_1920P1_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_1920P1_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_1920P1_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P2; +asn_struct_free_f ProtocolIE_SingleContainer_1920P2_free; +asn_struct_print_f ProtocolIE_SingleContainer_1920P2_print; +asn_constr_check_f ProtocolIE_SingleContainer_1920P2_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_1920P2_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_1920P2_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_1920P2_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_1920P2_encode_xer; +oer_type_decoder_f ProtocolIE_SingleContainer_1920P2_decode_oer; +oer_type_encoder_f ProtocolIE_SingleContainer_1920P2_encode_oer; +per_type_decoder_f ProtocolIE_SingleContainer_1920P2_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_1920P2_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_1920P2_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_1920P2_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P3; +asn_struct_free_f ProtocolIE_SingleContainer_1920P3_free; +asn_struct_print_f ProtocolIE_SingleContainer_1920P3_print; +asn_constr_check_f ProtocolIE_SingleContainer_1920P3_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_1920P3_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_1920P3_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_1920P3_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_1920P3_encode_xer; +oer_type_decoder_f ProtocolIE_SingleContainer_1920P3_decode_oer; +oer_type_encoder_f ProtocolIE_SingleContainer_1920P3_encode_oer; +per_type_decoder_f ProtocolIE_SingleContainer_1920P3_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_1920P3_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_1920P3_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_1920P3_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P4; +asn_struct_free_f ProtocolIE_SingleContainer_1920P4_free; +asn_struct_print_f ProtocolIE_SingleContainer_1920P4_print; +asn_constr_check_f ProtocolIE_SingleContainer_1920P4_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_1920P4_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_1920P4_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_1920P4_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_1920P4_encode_xer; +oer_type_decoder_f ProtocolIE_SingleContainer_1920P4_decode_oer; +oer_type_encoder_f ProtocolIE_SingleContainer_1920P4_encode_oer; +per_type_decoder_f ProtocolIE_SingleContainer_1920P4_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_1920P4_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_1920P4_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_1920P4_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P5; +asn_struct_free_f ProtocolIE_SingleContainer_1920P5_free; +asn_struct_print_f ProtocolIE_SingleContainer_1920P5_print; +asn_constr_check_f ProtocolIE_SingleContainer_1920P5_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_1920P5_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_1920P5_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_1920P5_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_1920P5_encode_xer; +oer_type_decoder_f ProtocolIE_SingleContainer_1920P5_decode_oer; +oer_type_encoder_f ProtocolIE_SingleContainer_1920P5_encode_oer; +per_type_decoder_f ProtocolIE_SingleContainer_1920P5_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_1920P5_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_1920P5_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_1920P5_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P6; +asn_struct_free_f ProtocolIE_SingleContainer_1920P6_free; +asn_struct_print_f ProtocolIE_SingleContainer_1920P6_print; +asn_constr_check_f ProtocolIE_SingleContainer_1920P6_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_1920P6_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_1920P6_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_1920P6_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_1920P6_encode_xer; +oer_type_decoder_f ProtocolIE_SingleContainer_1920P6_decode_oer; +oer_type_encoder_f ProtocolIE_SingleContainer_1920P6_encode_oer; +per_type_decoder_f ProtocolIE_SingleContainer_1920P6_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_1920P6_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_1920P6_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_1920P6_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P7; +asn_struct_free_f ProtocolIE_SingleContainer_1920P7_free; +asn_struct_print_f ProtocolIE_SingleContainer_1920P7_print; +asn_constr_check_f ProtocolIE_SingleContainer_1920P7_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_1920P7_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_1920P7_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_1920P7_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_1920P7_encode_xer; +oer_type_decoder_f ProtocolIE_SingleContainer_1920P7_decode_oer; +oer_type_encoder_f ProtocolIE_SingleContainer_1920P7_encode_oer; +per_type_decoder_f ProtocolIE_SingleContainer_1920P7_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_1920P7_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_1920P7_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_1920P7_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P8; +asn_struct_free_f ProtocolIE_SingleContainer_1920P8_free; +asn_struct_print_f ProtocolIE_SingleContainer_1920P8_print; +asn_constr_check_f ProtocolIE_SingleContainer_1920P8_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_1920P8_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_1920P8_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_1920P8_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_1920P8_encode_xer; +oer_type_decoder_f ProtocolIE_SingleContainer_1920P8_decode_oer; +oer_type_encoder_f ProtocolIE_SingleContainer_1920P8_encode_oer; +per_type_decoder_f ProtocolIE_SingleContainer_1920P8_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_1920P8_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_1920P8_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_1920P8_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P9; +asn_struct_free_f ProtocolIE_SingleContainer_1920P9_free; +asn_struct_print_f ProtocolIE_SingleContainer_1920P9_print; +asn_constr_check_f ProtocolIE_SingleContainer_1920P9_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_1920P9_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_1920P9_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_1920P9_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_1920P9_encode_xer; +oer_type_decoder_f ProtocolIE_SingleContainer_1920P9_decode_oer; +oer_type_encoder_f ProtocolIE_SingleContainer_1920P9_encode_oer; +per_type_decoder_f ProtocolIE_SingleContainer_1920P9_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_1920P9_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_1920P9_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_1920P9_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P10; +asn_struct_free_f ProtocolIE_SingleContainer_1920P10_free; +asn_struct_print_f ProtocolIE_SingleContainer_1920P10_print; +asn_constr_check_f ProtocolIE_SingleContainer_1920P10_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_1920P10_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_1920P10_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_1920P10_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_1920P10_encode_xer; +oer_type_decoder_f ProtocolIE_SingleContainer_1920P10_decode_oer; +oer_type_encoder_f ProtocolIE_SingleContainer_1920P10_encode_oer; +per_type_decoder_f ProtocolIE_SingleContainer_1920P10_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_1920P10_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_1920P10_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_1920P10_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P11; +asn_struct_free_f ProtocolIE_SingleContainer_1920P11_free; +asn_struct_print_f ProtocolIE_SingleContainer_1920P11_print; +asn_constr_check_f ProtocolIE_SingleContainer_1920P11_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_1920P11_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_1920P11_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_1920P11_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_1920P11_encode_xer; +oer_type_decoder_f ProtocolIE_SingleContainer_1920P11_decode_oer; +oer_type_encoder_f ProtocolIE_SingleContainer_1920P11_encode_oer; +per_type_decoder_f ProtocolIE_SingleContainer_1920P11_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_1920P11_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_1920P11_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_1920P11_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P12; +asn_struct_free_f ProtocolIE_SingleContainer_1920P12_free; +asn_struct_print_f ProtocolIE_SingleContainer_1920P12_print; +asn_constr_check_f ProtocolIE_SingleContainer_1920P12_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_1920P12_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_1920P12_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_1920P12_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_1920P12_encode_xer; +oer_type_decoder_f ProtocolIE_SingleContainer_1920P12_decode_oer; +oer_type_encoder_f ProtocolIE_SingleContainer_1920P12_encode_oer; +per_type_decoder_f ProtocolIE_SingleContainer_1920P12_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_1920P12_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_1920P12_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_1920P12_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P13; +asn_struct_free_f ProtocolIE_SingleContainer_1920P13_free; +asn_struct_print_f ProtocolIE_SingleContainer_1920P13_print; +asn_constr_check_f ProtocolIE_SingleContainer_1920P13_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_1920P13_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_1920P13_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_1920P13_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_1920P13_encode_xer; +oer_type_decoder_f ProtocolIE_SingleContainer_1920P13_decode_oer; +oer_type_encoder_f ProtocolIE_SingleContainer_1920P13_encode_oer; +per_type_decoder_f ProtocolIE_SingleContainer_1920P13_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_1920P13_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_1920P13_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_1920P13_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P14; +asn_struct_free_f ProtocolIE_SingleContainer_1920P14_free; +asn_struct_print_f ProtocolIE_SingleContainer_1920P14_print; +asn_constr_check_f ProtocolIE_SingleContainer_1920P14_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_1920P14_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_1920P14_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_1920P14_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_1920P14_encode_xer; +oer_type_decoder_f ProtocolIE_SingleContainer_1920P14_decode_oer; +oer_type_encoder_f ProtocolIE_SingleContainer_1920P14_encode_oer; +per_type_decoder_f ProtocolIE_SingleContainer_1920P14_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_1920P14_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_1920P14_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_1920P14_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P15; +asn_struct_free_f ProtocolIE_SingleContainer_1920P15_free; +asn_struct_print_f ProtocolIE_SingleContainer_1920P15_print; +asn_constr_check_f ProtocolIE_SingleContainer_1920P15_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_1920P15_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_1920P15_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_1920P15_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_1920P15_encode_xer; +oer_type_decoder_f ProtocolIE_SingleContainer_1920P15_decode_oer; +oer_type_encoder_f ProtocolIE_SingleContainer_1920P15_encode_oer; +per_type_decoder_f ProtocolIE_SingleContainer_1920P15_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_1920P15_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_1920P15_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_1920P15_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P16; +asn_struct_free_f ProtocolIE_SingleContainer_1920P16_free; +asn_struct_print_f ProtocolIE_SingleContainer_1920P16_print; +asn_constr_check_f ProtocolIE_SingleContainer_1920P16_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_1920P16_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_1920P16_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_1920P16_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_1920P16_encode_xer; +oer_type_decoder_f ProtocolIE_SingleContainer_1920P16_decode_oer; +oer_type_encoder_f ProtocolIE_SingleContainer_1920P16_encode_oer; +per_type_decoder_f ProtocolIE_SingleContainer_1920P16_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_1920P16_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_1920P16_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_1920P16_encode_aper; #ifdef __cplusplus } diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunction-Item.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunction-Item.c index dbc136b..fc406d5 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunction-Item.c +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunction-Item.c @@ -1,13 +1,13 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #include "RANfunction-Item.h" -asn_TYPE_member_t asn_MBR_RANfunction_Item_1[] = { +static asn_TYPE_member_t asn_MBR_RANfunction_Item_1[] = { { ATF_NOFLAGS, 0, offsetof(struct RANfunction_Item, ranFunctionID), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ @@ -35,7 +35,7 @@ asn_TYPE_member_t asn_MBR_RANfunction_Item_1[] = { 0, 0, /* No default value */ "ranFunctionRevision" }, - { ATF_POINTER, 1, offsetof(struct RANfunction_Item, ranFunctionOID), + { ATF_NOFLAGS, 0, offsetof(struct RANfunction_Item, ranFunctionOID), (ASN_TAG_CLASS_CONTEXT | (3 << 2)), -1, /* IMPLICIT tag at current level */ &asn_DEF_RANfunctionOID, @@ -45,7 +45,6 @@ asn_TYPE_member_t asn_MBR_RANfunction_Item_1[] = { "ranFunctionOID" }, }; -static const int asn_MAP_RANfunction_Item_oms_1[] = { 3 }; static const ber_tlv_tag_t asn_DEF_RANfunction_Item_tags_1[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; @@ -55,14 +54,13 @@ static const asn_TYPE_tag2member_t asn_MAP_RANfunction_Item_tag2el_1[] = { { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* ranFunctionRevision */ { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* ranFunctionOID */ }; -asn_SEQUENCE_specifics_t asn_SPC_RANfunction_Item_specs_1 = { +static asn_SEQUENCE_specifics_t asn_SPC_RANfunction_Item_specs_1 = { sizeof(struct RANfunction_Item), offsetof(struct RANfunction_Item, _asn_ctx), asn_MAP_RANfunction_Item_tag2el_1, 4, /* Count of tags in the map */ - asn_MAP_RANfunction_Item_oms_1, /* Optional members */ - 0, 1, /* Root/Additions */ - 3, /* First extension addition */ + 0, 0, 0, /* Optional elements (not needed) */ + 4, /* First extension addition */ }; asn_TYPE_descriptor_t asn_DEF_RANfunction_Item = { "RANfunction-Item", diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunction-Item.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunction-Item.h index 82e0f45..df49735 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunction-Item.h +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunction-Item.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #ifndef _RANfunction_Item_H_ @@ -27,11 +27,11 @@ typedef struct RANfunction_Item { RANfunctionID_t ranFunctionID; RANfunctionDefinition_t ranFunctionDefinition; RANfunctionRevision_t ranFunctionRevision; + RANfunctionOID_t ranFunctionOID; /* * This type is extensible, * possible extensions are below. */ - RANfunctionOID_t *ranFunctionOID; /* OPTIONAL */ /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; @@ -39,8 +39,6 @@ typedef struct RANfunction_Item { /* Implementation */ extern asn_TYPE_descriptor_t asn_DEF_RANfunction_Item; -extern asn_SEQUENCE_specifics_t asn_SPC_RANfunction_Item_specs_1; -extern asn_TYPE_member_t asn_MBR_RANfunction_Item_1[4]; #ifdef __cplusplus } diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunctionDefinition.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunctionDefinition.c index 542b359..14eaaec 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunctionDefinition.c +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunctionDefinition.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #include "RANfunctionDefinition.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunctionDefinition.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunctionDefinition.h index 28b23cd..c78ff90 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunctionDefinition.h +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunctionDefinition.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #ifndef _RANfunctionDefinition_H_ @@ -30,6 +30,8 @@ ber_type_decoder_f RANfunctionDefinition_decode_ber; der_type_encoder_f RANfunctionDefinition_encode_der; xer_type_decoder_f RANfunctionDefinition_decode_xer; xer_type_encoder_f RANfunctionDefinition_encode_xer; +oer_type_decoder_f RANfunctionDefinition_decode_oer; +oer_type_encoder_f RANfunctionDefinition_encode_oer; per_type_decoder_f RANfunctionDefinition_decode_uper; per_type_encoder_f RANfunctionDefinition_encode_uper; per_type_decoder_f RANfunctionDefinition_decode_aper; diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunctionID-Item.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunctionID-Item.c index adcb862..563e65b 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunctionID-Item.c +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunctionID-Item.c @@ -1,13 +1,13 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #include "RANfunctionID-Item.h" -asn_TYPE_member_t asn_MBR_RANfunctionID_Item_1[] = { +static asn_TYPE_member_t asn_MBR_RANfunctionID_Item_1[] = { { ATF_NOFLAGS, 0, offsetof(struct RANfunctionID_Item, ranFunctionID), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ @@ -34,7 +34,7 @@ static const asn_TYPE_tag2member_t asn_MAP_RANfunctionID_Item_tag2el_1[] = { { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ranFunctionID */ { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ranFunctionRevision */ }; -asn_SEQUENCE_specifics_t asn_SPC_RANfunctionID_Item_specs_1 = { +static asn_SEQUENCE_specifics_t asn_SPC_RANfunctionID_Item_specs_1 = { sizeof(struct RANfunctionID_Item), offsetof(struct RANfunctionID_Item, _asn_ctx), asn_MAP_RANfunctionID_Item_tag2el_1, diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunctionID-Item.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunctionID-Item.h index 47782f0..fc30438 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunctionID-Item.h +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunctionID-Item.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #ifndef _RANfunctionID_Item_H_ @@ -35,8 +35,6 @@ typedef struct RANfunctionID_Item { /* Implementation */ extern asn_TYPE_descriptor_t asn_DEF_RANfunctionID_Item; -extern asn_SEQUENCE_specifics_t asn_SPC_RANfunctionID_Item_specs_1; -extern asn_TYPE_member_t asn_MBR_RANfunctionID_Item_1[2]; #ifdef __cplusplus } diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunctionID.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunctionID.c index f778b48..d835872 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunctionID.c +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunctionID.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #include "RANfunctionID.h" @@ -36,6 +36,9 @@ RANfunctionID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, * This type is implemented using NativeInteger, * so here we adjust the DEF accordingly. */ +static asn_oer_constraints_t asn_OER_type_RANfunctionID_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..4095) */, + -1}; asn_per_constraints_t asn_PER_type_RANfunctionID_constr_1 CC_NOTUSED = { { APC_CONSTRAINED, 12, 12, 0, 4095 } /* (0..4095) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, @@ -54,7 +57,7 @@ asn_TYPE_descriptor_t asn_DEF_RANfunctionID = { asn_DEF_RANfunctionID_tags_1, /* Same as above */ sizeof(asn_DEF_RANfunctionID_tags_1) /sizeof(asn_DEF_RANfunctionID_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_RANfunctionID_constr_1, RANfunctionID_constraint }, + { &asn_OER_type_RANfunctionID_constr_1, &asn_PER_type_RANfunctionID_constr_1, RANfunctionID_constraint }, 0, 0, /* No members */ 0 /* No specifics */ }; diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunctionID.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunctionID.h index 26676a5..a44c4b4 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunctionID.h +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunctionID.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #ifndef _RANfunctionID_H_ @@ -31,6 +31,8 @@ ber_type_decoder_f RANfunctionID_decode_ber; der_type_encoder_f RANfunctionID_encode_der; xer_type_decoder_f RANfunctionID_decode_xer; xer_type_encoder_f RANfunctionID_encode_xer; +oer_type_decoder_f RANfunctionID_decode_oer; +oer_type_encoder_f RANfunctionID_encode_oer; per_type_decoder_f RANfunctionID_decode_uper; per_type_encoder_f RANfunctionID_encode_uper; per_type_decoder_f RANfunctionID_decode_aper; diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunctionIDcause-Item.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunctionIDcause-Item.c index 0b40b89..99f2b58 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunctionIDcause-Item.c +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunctionIDcause-Item.c @@ -1,13 +1,13 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #include "RANfunctionIDcause-Item.h" -asn_TYPE_member_t asn_MBR_RANfunctionIDcause_Item_1[] = { +static asn_TYPE_member_t asn_MBR_RANfunctionIDcause_Item_1[] = { { ATF_NOFLAGS, 0, offsetof(struct RANfunctionIDcause_Item, ranFunctionID), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ @@ -34,7 +34,7 @@ static const asn_TYPE_tag2member_t asn_MAP_RANfunctionIDcause_Item_tag2el_1[] = { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ranFunctionID */ { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* cause */ }; -asn_SEQUENCE_specifics_t asn_SPC_RANfunctionIDcause_Item_specs_1 = { +static asn_SEQUENCE_specifics_t asn_SPC_RANfunctionIDcause_Item_specs_1 = { sizeof(struct RANfunctionIDcause_Item), offsetof(struct RANfunctionIDcause_Item, _asn_ctx), asn_MAP_RANfunctionIDcause_Item_tag2el_1, diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunctionIDcause-Item.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunctionIDcause-Item.h index d83f497..91621cf 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunctionIDcause-Item.h +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunctionIDcause-Item.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #ifndef _RANfunctionIDcause_Item_H_ @@ -35,8 +35,6 @@ typedef struct RANfunctionIDcause_Item { /* Implementation */ extern asn_TYPE_descriptor_t asn_DEF_RANfunctionIDcause_Item; -extern asn_SEQUENCE_specifics_t asn_SPC_RANfunctionIDcause_Item_specs_1; -extern asn_TYPE_member_t asn_MBR_RANfunctionIDcause_Item_1[2]; #ifdef __cplusplus } diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunctionOID.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunctionOID.c index aa775f8..11bfe86 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunctionOID.c +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunctionOID.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #include "RANfunctionOID.h" @@ -80,6 +80,9 @@ static int asn_PER_MAP_RANfunctionOID_1_c2v(unsigned int code) { * This type is implemented using PrintableString, * so here we adjust the DEF accordingly. */ +static asn_oer_constraints_t asn_OER_type_RANfunctionOID_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..MAX)) */}; asn_per_constraints_t asn_PER_type_RANfunctionOID_constr_1 CC_NOTUSED = { { APC_CONSTRAINED, 7, 7, 32, 122 } /* (32..122) */, { APC_CONSTRAINED | APC_EXTENSIBLE, 10, 10, 1, 1000 } /* (SIZE(1..1000,...)) */, @@ -99,7 +102,7 @@ asn_TYPE_descriptor_t asn_DEF_RANfunctionOID = { asn_DEF_RANfunctionOID_tags_1, /* Same as above */ sizeof(asn_DEF_RANfunctionOID_tags_1) /sizeof(asn_DEF_RANfunctionOID_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_RANfunctionOID_constr_1, RANfunctionOID_constraint }, + { &asn_OER_type_RANfunctionOID_constr_1, &asn_PER_type_RANfunctionOID_constr_1, RANfunctionOID_constraint }, 0, 0, /* No members */ 0 /* No specifics */ }; diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunctionOID.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunctionOID.h index b7defa5..84085ab 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunctionOID.h +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunctionOID.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #ifndef _RANfunctionOID_H_ @@ -31,6 +31,8 @@ ber_type_decoder_f RANfunctionOID_decode_ber; der_type_encoder_f RANfunctionOID_encode_der; xer_type_decoder_f RANfunctionOID_decode_xer; xer_type_encoder_f RANfunctionOID_encode_xer; +oer_type_decoder_f RANfunctionOID_decode_oer; +oer_type_encoder_f RANfunctionOID_encode_oer; per_type_decoder_f RANfunctionOID_decode_uper; per_type_encoder_f RANfunctionOID_encode_uper; per_type_decoder_f RANfunctionOID_decode_aper; diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunctionRevision.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunctionRevision.c index f9398aa..940862b 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunctionRevision.c +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunctionRevision.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #include "RANfunctionRevision.h" @@ -36,6 +36,9 @@ RANfunctionRevision_constraint(const asn_TYPE_descriptor_t *td, const void *sptr * This type is implemented using NativeInteger, * so here we adjust the DEF accordingly. */ +static asn_oer_constraints_t asn_OER_type_RANfunctionRevision_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..4095) */, + -1}; asn_per_constraints_t asn_PER_type_RANfunctionRevision_constr_1 CC_NOTUSED = { { APC_CONSTRAINED, 12, 12, 0, 4095 } /* (0..4095) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, @@ -54,7 +57,7 @@ asn_TYPE_descriptor_t asn_DEF_RANfunctionRevision = { asn_DEF_RANfunctionRevision_tags_1, /* Same as above */ sizeof(asn_DEF_RANfunctionRevision_tags_1) /sizeof(asn_DEF_RANfunctionRevision_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_RANfunctionRevision_constr_1, RANfunctionRevision_constraint }, + { &asn_OER_type_RANfunctionRevision_constr_1, &asn_PER_type_RANfunctionRevision_constr_1, RANfunctionRevision_constraint }, 0, 0, /* No members */ 0 /* No specifics */ }; diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunctionRevision.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunctionRevision.h index 99953bf..3190cdc 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunctionRevision.h +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunctionRevision.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #ifndef _RANfunctionRevision_H_ @@ -31,6 +31,8 @@ ber_type_decoder_f RANfunctionRevision_decode_ber; der_type_encoder_f RANfunctionRevision_encode_der; xer_type_decoder_f RANfunctionRevision_decode_xer; xer_type_encoder_f RANfunctionRevision_encode_xer; +oer_type_decoder_f RANfunctionRevision_decode_oer; +oer_type_encoder_f RANfunctionRevision_encode_oer; per_type_decoder_f RANfunctionRevision_decode_uper; per_type_encoder_f RANfunctionRevision_encode_uper; per_type_decoder_f RANfunctionRevision_decode_aper; diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunctions-List.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunctions-List.c index f3b5419..3b1d0af 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunctions-List.c +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunctions-List.c @@ -1,23 +1,26 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #include "RANfunctions-List.h" #include "ProtocolIE-SingleContainer.h" -asn_per_constraints_t asn_PER_type_RANfunctions_List_constr_1 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_type_RANfunctions_List_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..256)) */}; +static asn_per_constraints_t asn_PER_type_RANfunctions_List_constr_1 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 9, 9, 0, 256 } /* (SIZE(0..256)) */, + { APC_CONSTRAINED, 8, 8, 1, 256 } /* (SIZE(1..256)) */, 0, 0 /* No PER value map */ }; -asn_TYPE_member_t asn_MBR_RANfunctions_List_1[] = { +static asn_TYPE_member_t asn_MBR_RANfunctions_List_1[] = { { ATF_POINTER, 0, 0, (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, - &asn_DEF_ProtocolIE_SingleContainer_229P8, + &asn_DEF_ProtocolIE_SingleContainer_1920P14, 0, { 0, 0, 0 }, 0, 0, /* No default value */ @@ -27,7 +30,7 @@ asn_TYPE_member_t asn_MBR_RANfunctions_List_1[] = { static const ber_tlv_tag_t asn_DEF_RANfunctions_List_tags_1[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_SET_OF_specifics_t asn_SPC_RANfunctions_List_specs_1 = { +static asn_SET_OF_specifics_t asn_SPC_RANfunctions_List_specs_1 = { sizeof(struct RANfunctions_List), offsetof(struct RANfunctions_List, _asn_ctx), 0, /* XER encoding is XMLDelimitedItemList */ @@ -42,7 +45,7 @@ asn_TYPE_descriptor_t asn_DEF_RANfunctions_List = { asn_DEF_RANfunctions_List_tags_1, /* Same as above */ sizeof(asn_DEF_RANfunctions_List_tags_1) /sizeof(asn_DEF_RANfunctions_List_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_RANfunctions_List_constr_1, SEQUENCE_OF_constraint }, + { &asn_OER_type_RANfunctions_List_constr_1, &asn_PER_type_RANfunctions_List_constr_1, SEQUENCE_OF_constraint }, asn_MBR_RANfunctions_List_1, 1, /* Single element */ &asn_SPC_RANfunctions_List_specs_1 /* Additional specs */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunctions-List.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunctions-List.h index 0a8b12d..9cf4ac4 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunctions-List.h +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunctions-List.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #ifndef _RANfunctions_List_H_ @@ -32,9 +32,6 @@ typedef struct RANfunctions_List { /* Implementation */ extern asn_TYPE_descriptor_t asn_DEF_RANfunctions_List; -extern asn_SET_OF_specifics_t asn_SPC_RANfunctions_List_specs_1; -extern asn_TYPE_member_t asn_MBR_RANfunctions_List_1[1]; -extern asn_per_constraints_t asn_PER_type_RANfunctions_List_constr_1; #ifdef __cplusplus } diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunctionsID-List.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunctionsID-List.c index 204c8af..0eb7988 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunctionsID-List.c +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunctionsID-List.c @@ -1,23 +1,26 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #include "RANfunctionsID-List.h" #include "ProtocolIE-SingleContainer.h" -asn_per_constraints_t asn_PER_type_RANfunctionsID_List_constr_1 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_type_RANfunctionsID_List_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..256)) */}; +static asn_per_constraints_t asn_PER_type_RANfunctionsID_List_constr_1 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 9, 9, 0, 256 } /* (SIZE(0..256)) */, + { APC_CONSTRAINED, 8, 8, 1, 256 } /* (SIZE(1..256)) */, 0, 0 /* No PER value map */ }; -asn_TYPE_member_t asn_MBR_RANfunctionsID_List_1[] = { +static asn_TYPE_member_t asn_MBR_RANfunctionsID_List_1[] = { { ATF_POINTER, 0, 0, (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, - &asn_DEF_ProtocolIE_SingleContainer_229P9, + &asn_DEF_ProtocolIE_SingleContainer_1920P15, 0, { 0, 0, 0 }, 0, 0, /* No default value */ @@ -27,7 +30,7 @@ asn_TYPE_member_t asn_MBR_RANfunctionsID_List_1[] = { static const ber_tlv_tag_t asn_DEF_RANfunctionsID_List_tags_1[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_SET_OF_specifics_t asn_SPC_RANfunctionsID_List_specs_1 = { +static asn_SET_OF_specifics_t asn_SPC_RANfunctionsID_List_specs_1 = { sizeof(struct RANfunctionsID_List), offsetof(struct RANfunctionsID_List, _asn_ctx), 0, /* XER encoding is XMLDelimitedItemList */ @@ -42,7 +45,7 @@ asn_TYPE_descriptor_t asn_DEF_RANfunctionsID_List = { asn_DEF_RANfunctionsID_List_tags_1, /* Same as above */ sizeof(asn_DEF_RANfunctionsID_List_tags_1) /sizeof(asn_DEF_RANfunctionsID_List_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_RANfunctionsID_List_constr_1, SEQUENCE_OF_constraint }, + { &asn_OER_type_RANfunctionsID_List_constr_1, &asn_PER_type_RANfunctionsID_List_constr_1, SEQUENCE_OF_constraint }, asn_MBR_RANfunctionsID_List_1, 1, /* Single element */ &asn_SPC_RANfunctionsID_List_specs_1 /* Additional specs */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunctionsID-List.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunctionsID-List.h index eaba417..ad5722a 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunctionsID-List.h +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunctionsID-List.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #ifndef _RANfunctionsID_List_H_ @@ -32,9 +32,6 @@ typedef struct RANfunctionsID_List { /* Implementation */ extern asn_TYPE_descriptor_t asn_DEF_RANfunctionsID_List; -extern asn_SET_OF_specifics_t asn_SPC_RANfunctionsID_List_specs_1; -extern asn_TYPE_member_t asn_MBR_RANfunctionsID_List_1[1]; -extern asn_per_constraints_t asn_PER_type_RANfunctionsID_List_constr_1; #ifdef __cplusplus } diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunctionsIDcause-List.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunctionsIDcause-List.c index 02c12f5..f557347 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunctionsIDcause-List.c +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunctionsIDcause-List.c @@ -1,23 +1,26 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #include "RANfunctionsIDcause-List.h" #include "ProtocolIE-SingleContainer.h" -asn_per_constraints_t asn_PER_type_RANfunctionsIDcause_List_constr_1 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_type_RANfunctionsIDcause_List_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..256)) */}; +static asn_per_constraints_t asn_PER_type_RANfunctionsIDcause_List_constr_1 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 9, 9, 0, 256 } /* (SIZE(0..256)) */, + { APC_CONSTRAINED, 8, 8, 1, 256 } /* (SIZE(1..256)) */, 0, 0 /* No PER value map */ }; -asn_TYPE_member_t asn_MBR_RANfunctionsIDcause_List_1[] = { +static asn_TYPE_member_t asn_MBR_RANfunctionsIDcause_List_1[] = { { ATF_POINTER, 0, 0, (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, - &asn_DEF_ProtocolIE_SingleContainer_229P10, + &asn_DEF_ProtocolIE_SingleContainer_1920P16, 0, { 0, 0, 0 }, 0, 0, /* No default value */ @@ -27,7 +30,7 @@ asn_TYPE_member_t asn_MBR_RANfunctionsIDcause_List_1[] = { static const ber_tlv_tag_t asn_DEF_RANfunctionsIDcause_List_tags_1[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_SET_OF_specifics_t asn_SPC_RANfunctionsIDcause_List_specs_1 = { +static asn_SET_OF_specifics_t asn_SPC_RANfunctionsIDcause_List_specs_1 = { sizeof(struct RANfunctionsIDcause_List), offsetof(struct RANfunctionsIDcause_List, _asn_ctx), 0, /* XER encoding is XMLDelimitedItemList */ @@ -42,7 +45,7 @@ asn_TYPE_descriptor_t asn_DEF_RANfunctionsIDcause_List = { asn_DEF_RANfunctionsIDcause_List_tags_1, /* Same as above */ sizeof(asn_DEF_RANfunctionsIDcause_List_tags_1) /sizeof(asn_DEF_RANfunctionsIDcause_List_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_RANfunctionsIDcause_List_constr_1, SEQUENCE_OF_constraint }, + { &asn_OER_type_RANfunctionsIDcause_List_constr_1, &asn_PER_type_RANfunctionsIDcause_List_constr_1, SEQUENCE_OF_constraint }, asn_MBR_RANfunctionsIDcause_List_1, 1, /* Single element */ &asn_SPC_RANfunctionsIDcause_List_specs_1 /* Additional specs */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunctionsIDcause-List.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunctionsIDcause-List.h index 144b852..6d8de97 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunctionsIDcause-List.h +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RANfunctionsIDcause-List.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #ifndef _RANfunctionsIDcause_List_H_ @@ -32,9 +32,6 @@ typedef struct RANfunctionsIDcause_List { /* Implementation */ extern asn_TYPE_descriptor_t asn_DEF_RANfunctionsIDcause_List; -extern asn_SET_OF_specifics_t asn_SPC_RANfunctionsIDcause_List_specs_1; -extern asn_TYPE_member_t asn_MBR_RANfunctionsIDcause_List_1[1]; -extern asn_per_constraints_t asn_PER_type_RANfunctionsIDcause_List_constr_1; #ifdef __cplusplus } diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICaction-Admitted-Item.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICaction-Admitted-Item.c index 5264f97..bc952d3 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICaction-Admitted-Item.c +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICaction-Admitted-Item.c @@ -1,13 +1,13 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #include "RICaction-Admitted-Item.h" -asn_TYPE_member_t asn_MBR_RICaction_Admitted_Item_1[] = { +static asn_TYPE_member_t asn_MBR_RICaction_Admitted_Item_1[] = { { ATF_NOFLAGS, 0, offsetof(struct RICaction_Admitted_Item, ricActionID), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ @@ -24,7 +24,7 @@ static const ber_tlv_tag_t asn_DEF_RICaction_Admitted_Item_tags_1[] = { static const asn_TYPE_tag2member_t asn_MAP_RICaction_Admitted_Item_tag2el_1[] = { { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* ricActionID */ }; -asn_SEQUENCE_specifics_t asn_SPC_RICaction_Admitted_Item_specs_1 = { +static asn_SEQUENCE_specifics_t asn_SPC_RICaction_Admitted_Item_specs_1 = { sizeof(struct RICaction_Admitted_Item), offsetof(struct RICaction_Admitted_Item, _asn_ctx), asn_MAP_RICaction_Admitted_Item_tag2el_1, diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICaction-Admitted-Item.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICaction-Admitted-Item.h index 763fb6b..1c7fce7 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICaction-Admitted-Item.h +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICaction-Admitted-Item.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #ifndef _RICaction_Admitted_Item_H_ @@ -33,8 +33,6 @@ typedef struct RICaction_Admitted_Item { /* Implementation */ extern asn_TYPE_descriptor_t asn_DEF_RICaction_Admitted_Item; -extern asn_SEQUENCE_specifics_t asn_SPC_RICaction_Admitted_Item_specs_1; -extern asn_TYPE_member_t asn_MBR_RICaction_Admitted_Item_1[1]; #ifdef __cplusplus } diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICaction-Admitted-List.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICaction-Admitted-List.c index c0ac7aa..0028709 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICaction-Admitted-List.c +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICaction-Admitted-List.c @@ -1,23 +1,26 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #include "RICaction-Admitted-List.h" #include "ProtocolIE-SingleContainer.h" -asn_per_constraints_t asn_PER_type_RICaction_Admitted_List_constr_1 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_type_RICaction_Admitted_List_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +static asn_per_constraints_t asn_PER_type_RICaction_Admitted_List_constr_1 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 4, 4, 1, 16 } /* (SIZE(1..16)) */, 0, 0 /* No PER value map */ }; -asn_TYPE_member_t asn_MBR_RICaction_Admitted_List_1[] = { +static asn_TYPE_member_t asn_MBR_RICaction_Admitted_List_1[] = { { ATF_POINTER, 0, 0, (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, - &asn_DEF_ProtocolIE_SingleContainer_229P1, + &asn_DEF_ProtocolIE_SingleContainer_1920P1, 0, { 0, 0, 0 }, 0, 0, /* No default value */ @@ -27,7 +30,7 @@ asn_TYPE_member_t asn_MBR_RICaction_Admitted_List_1[] = { static const ber_tlv_tag_t asn_DEF_RICaction_Admitted_List_tags_1[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_SET_OF_specifics_t asn_SPC_RICaction_Admitted_List_specs_1 = { +static asn_SET_OF_specifics_t asn_SPC_RICaction_Admitted_List_specs_1 = { sizeof(struct RICaction_Admitted_List), offsetof(struct RICaction_Admitted_List, _asn_ctx), 0, /* XER encoding is XMLDelimitedItemList */ @@ -42,7 +45,7 @@ asn_TYPE_descriptor_t asn_DEF_RICaction_Admitted_List = { asn_DEF_RICaction_Admitted_List_tags_1, /* Same as above */ sizeof(asn_DEF_RICaction_Admitted_List_tags_1) /sizeof(asn_DEF_RICaction_Admitted_List_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_RICaction_Admitted_List_constr_1, SEQUENCE_OF_constraint }, + { &asn_OER_type_RICaction_Admitted_List_constr_1, &asn_PER_type_RICaction_Admitted_List_constr_1, SEQUENCE_OF_constraint }, asn_MBR_RICaction_Admitted_List_1, 1, /* Single element */ &asn_SPC_RICaction_Admitted_List_specs_1 /* Additional specs */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICaction-Admitted-List.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICaction-Admitted-List.h index 1b04907..f10a2a0 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICaction-Admitted-List.h +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICaction-Admitted-List.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #ifndef _RICaction_Admitted_List_H_ @@ -32,9 +32,6 @@ typedef struct RICaction_Admitted_List { /* Implementation */ extern asn_TYPE_descriptor_t asn_DEF_RICaction_Admitted_List; -extern asn_SET_OF_specifics_t asn_SPC_RICaction_Admitted_List_specs_1; -extern asn_TYPE_member_t asn_MBR_RICaction_Admitted_List_1[1]; -extern asn_per_constraints_t asn_PER_type_RICaction_Admitted_List_constr_1; #ifdef __cplusplus } diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICaction-NotAdmitted-Item.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICaction-NotAdmitted-Item.c index fdc9a5a..57e5663 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICaction-NotAdmitted-Item.c +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICaction-NotAdmitted-Item.c @@ -1,13 +1,13 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #include "RICaction-NotAdmitted-Item.h" -asn_TYPE_member_t asn_MBR_RICaction_NotAdmitted_Item_1[] = { +static asn_TYPE_member_t asn_MBR_RICaction_NotAdmitted_Item_1[] = { { ATF_NOFLAGS, 0, offsetof(struct RICaction_NotAdmitted_Item, ricActionID), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ @@ -34,7 +34,7 @@ static const asn_TYPE_tag2member_t asn_MAP_RICaction_NotAdmitted_Item_tag2el_1[] { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ricActionID */ { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* cause */ }; -asn_SEQUENCE_specifics_t asn_SPC_RICaction_NotAdmitted_Item_specs_1 = { +static asn_SEQUENCE_specifics_t asn_SPC_RICaction_NotAdmitted_Item_specs_1 = { sizeof(struct RICaction_NotAdmitted_Item), offsetof(struct RICaction_NotAdmitted_Item, _asn_ctx), asn_MAP_RICaction_NotAdmitted_Item_tag2el_1, diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICaction-NotAdmitted-Item.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICaction-NotAdmitted-Item.h index 36072ef..f0d09d0 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICaction-NotAdmitted-Item.h +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICaction-NotAdmitted-Item.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #ifndef _RICaction_NotAdmitted_Item_H_ @@ -35,8 +35,6 @@ typedef struct RICaction_NotAdmitted_Item { /* Implementation */ extern asn_TYPE_descriptor_t asn_DEF_RICaction_NotAdmitted_Item; -extern asn_SEQUENCE_specifics_t asn_SPC_RICaction_NotAdmitted_Item_specs_1; -extern asn_TYPE_member_t asn_MBR_RICaction_NotAdmitted_Item_1[2]; #ifdef __cplusplus } diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICaction-NotAdmitted-List.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICaction-NotAdmitted-List.c index b5681f3..ce63307 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICaction-NotAdmitted-List.c +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICaction-NotAdmitted-List.c @@ -1,23 +1,26 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #include "RICaction-NotAdmitted-List.h" #include "ProtocolIE-SingleContainer.h" -asn_per_constraints_t asn_PER_type_RICaction_NotAdmitted_List_constr_1 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_type_RICaction_NotAdmitted_List_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..16)) */}; +static asn_per_constraints_t asn_PER_type_RICaction_NotAdmitted_List_constr_1 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 5, 5, 0, 16 } /* (SIZE(0..16)) */, 0, 0 /* No PER value map */ }; -asn_TYPE_member_t asn_MBR_RICaction_NotAdmitted_List_1[] = { +static asn_TYPE_member_t asn_MBR_RICaction_NotAdmitted_List_1[] = { { ATF_POINTER, 0, 0, (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, - &asn_DEF_ProtocolIE_SingleContainer_229P2, + &asn_DEF_ProtocolIE_SingleContainer_1920P2, 0, { 0, 0, 0 }, 0, 0, /* No default value */ @@ -27,7 +30,7 @@ asn_TYPE_member_t asn_MBR_RICaction_NotAdmitted_List_1[] = { static const ber_tlv_tag_t asn_DEF_RICaction_NotAdmitted_List_tags_1[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_SET_OF_specifics_t asn_SPC_RICaction_NotAdmitted_List_specs_1 = { +static asn_SET_OF_specifics_t asn_SPC_RICaction_NotAdmitted_List_specs_1 = { sizeof(struct RICaction_NotAdmitted_List), offsetof(struct RICaction_NotAdmitted_List, _asn_ctx), 0, /* XER encoding is XMLDelimitedItemList */ @@ -42,7 +45,7 @@ asn_TYPE_descriptor_t asn_DEF_RICaction_NotAdmitted_List = { asn_DEF_RICaction_NotAdmitted_List_tags_1, /* Same as above */ sizeof(asn_DEF_RICaction_NotAdmitted_List_tags_1) /sizeof(asn_DEF_RICaction_NotAdmitted_List_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_RICaction_NotAdmitted_List_constr_1, SEQUENCE_OF_constraint }, + { &asn_OER_type_RICaction_NotAdmitted_List_constr_1, &asn_PER_type_RICaction_NotAdmitted_List_constr_1, SEQUENCE_OF_constraint }, asn_MBR_RICaction_NotAdmitted_List_1, 1, /* Single element */ &asn_SPC_RICaction_NotAdmitted_List_specs_1 /* Additional specs */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICaction-NotAdmitted-List.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICaction-NotAdmitted-List.h index 02f6465..1ba455f 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICaction-NotAdmitted-List.h +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICaction-NotAdmitted-List.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #ifndef _RICaction_NotAdmitted_List_H_ @@ -32,9 +32,6 @@ typedef struct RICaction_NotAdmitted_List { /* Implementation */ extern asn_TYPE_descriptor_t asn_DEF_RICaction_NotAdmitted_List; -extern asn_SET_OF_specifics_t asn_SPC_RICaction_NotAdmitted_List_specs_1; -extern asn_TYPE_member_t asn_MBR_RICaction_NotAdmitted_List_1[1]; -extern asn_per_constraints_t asn_PER_type_RICaction_NotAdmitted_List_constr_1; #ifdef __cplusplus } diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICaction-ToBeSetup-Item.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICaction-ToBeSetup-Item.c index 42ef838..aac91ba 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICaction-ToBeSetup-Item.c +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICaction-ToBeSetup-Item.c @@ -1,14 +1,14 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #include "RICaction-ToBeSetup-Item.h" #include "RICsubsequentAction.h" -asn_TYPE_member_t asn_MBR_RICaction_ToBeSetup_Item_1[] = { +static asn_TYPE_member_t asn_MBR_RICaction_ToBeSetup_Item_1[] = { { ATF_NOFLAGS, 0, offsetof(struct RICaction_ToBeSetup_Item, ricActionID), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ @@ -56,7 +56,7 @@ static const asn_TYPE_tag2member_t asn_MAP_RICaction_ToBeSetup_Item_tag2el_1[] = { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* ricActionDefinition */ { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* ricSubsequentAction */ }; -asn_SEQUENCE_specifics_t asn_SPC_RICaction_ToBeSetup_Item_specs_1 = { +static asn_SEQUENCE_specifics_t asn_SPC_RICaction_ToBeSetup_Item_specs_1 = { sizeof(struct RICaction_ToBeSetup_Item), offsetof(struct RICaction_ToBeSetup_Item, _asn_ctx), asn_MAP_RICaction_ToBeSetup_Item_tag2el_1, diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICaction-ToBeSetup-Item.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICaction-ToBeSetup-Item.h index 1598de9..767749c 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICaction-ToBeSetup-Item.h +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICaction-ToBeSetup-Item.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #ifndef _RICaction_ToBeSetup_Item_H_ @@ -41,8 +41,6 @@ typedef struct RICaction_ToBeSetup_Item { /* Implementation */ extern asn_TYPE_descriptor_t asn_DEF_RICaction_ToBeSetup_Item; -extern asn_SEQUENCE_specifics_t asn_SPC_RICaction_ToBeSetup_Item_specs_1; -extern asn_TYPE_member_t asn_MBR_RICaction_ToBeSetup_Item_1[4]; #ifdef __cplusplus } diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICactionDefinition.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICactionDefinition.c index 6a7729e..2d15df4 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICactionDefinition.c +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICactionDefinition.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #include "RICactionDefinition.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICactionDefinition.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICactionDefinition.h index 5a1b3a8..3d553ba 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICactionDefinition.h +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICactionDefinition.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #ifndef _RICactionDefinition_H_ @@ -30,6 +30,8 @@ ber_type_decoder_f RICactionDefinition_decode_ber; der_type_encoder_f RICactionDefinition_encode_der; xer_type_decoder_f RICactionDefinition_decode_xer; xer_type_encoder_f RICactionDefinition_encode_xer; +oer_type_decoder_f RICactionDefinition_decode_oer; +oer_type_encoder_f RICactionDefinition_encode_oer; per_type_decoder_f RICactionDefinition_decode_uper; per_type_encoder_f RICactionDefinition_encode_uper; per_type_decoder_f RICactionDefinition_decode_aper; diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICactionID.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICactionID.c index 7deb2d9..abe442a 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICactionID.c +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICactionID.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #include "RICactionID.h" @@ -36,6 +36,9 @@ RICactionID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, * This type is implemented using NativeInteger, * so here we adjust the DEF accordingly. */ +static asn_oer_constraints_t asn_OER_type_RICactionID_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; asn_per_constraints_t asn_PER_type_RICactionID_constr_1 CC_NOTUSED = { { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, @@ -54,7 +57,7 @@ asn_TYPE_descriptor_t asn_DEF_RICactionID = { asn_DEF_RICactionID_tags_1, /* Same as above */ sizeof(asn_DEF_RICactionID_tags_1) /sizeof(asn_DEF_RICactionID_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_RICactionID_constr_1, RICactionID_constraint }, + { &asn_OER_type_RICactionID_constr_1, &asn_PER_type_RICactionID_constr_1, RICactionID_constraint }, 0, 0, /* No members */ 0 /* No specifics */ }; diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICactionID.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICactionID.h index 7818a7c..4c255b7 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICactionID.h +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICactionID.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #ifndef _RICactionID_H_ @@ -31,6 +31,8 @@ ber_type_decoder_f RICactionID_decode_ber; der_type_encoder_f RICactionID_encode_der; xer_type_decoder_f RICactionID_decode_xer; xer_type_encoder_f RICactionID_encode_xer; +oer_type_decoder_f RICactionID_decode_oer; +oer_type_encoder_f RICactionID_encode_oer; per_type_decoder_f RICactionID_decode_uper; per_type_encoder_f RICactionID_encode_uper; per_type_decoder_f RICactionID_decode_aper; diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICactionType.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICactionType.c index 9c6814c..133ac04 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICactionType.c +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICactionType.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #include "RICactionType.h" @@ -11,6 +11,9 @@ * This type is implemented using NativeEnumerated, * so here we adjust the DEF accordingly. */ +static asn_oer_constraints_t asn_OER_type_RICactionType_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; asn_per_constraints_t asn_PER_type_RICactionType_constr_1 CC_NOTUSED = { { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 2 } /* (0..2,...) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, @@ -50,7 +53,7 @@ asn_TYPE_descriptor_t asn_DEF_RICactionType = { asn_DEF_RICactionType_tags_1, /* Same as above */ sizeof(asn_DEF_RICactionType_tags_1) /sizeof(asn_DEF_RICactionType_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_RICactionType_constr_1, NativeEnumerated_constraint }, + { &asn_OER_type_RICactionType_constr_1, &asn_PER_type_RICactionType_constr_1, NativeEnumerated_constraint }, 0, 0, /* Defined elsewhere */ &asn_SPC_RICactionType_specs_1 /* Additional specs */ }; diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICactionType.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICactionType.h index 08ad89d..8b3e10e 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICactionType.h +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICactionType.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #ifndef _RICactionType_H_ @@ -42,6 +42,8 @@ ber_type_decoder_f RICactionType_decode_ber; der_type_encoder_f RICactionType_encode_der; xer_type_decoder_f RICactionType_decode_xer; xer_type_encoder_f RICactionType_encode_xer; +oer_type_decoder_f RICactionType_decode_oer; +oer_type_encoder_f RICactionType_encode_oer; per_type_decoder_f RICactionType_decode_uper; per_type_encoder_f RICactionType_encode_uper; per_type_decoder_f RICactionType_decode_aper; diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICactions-ToBeSetup-List.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICactions-ToBeSetup-List.c index 00474c7..0236112 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICactions-ToBeSetup-List.c +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICactions-ToBeSetup-List.c @@ -1,13 +1,16 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #include "RICactions-ToBeSetup-List.h" #include "ProtocolIE-SingleContainer.h" +static asn_oer_constraints_t asn_OER_type_RICactions_ToBeSetup_List_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; asn_per_constraints_t asn_PER_type_RICactions_ToBeSetup_List_constr_1 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 4, 4, 1, 16 } /* (SIZE(1..16)) */, @@ -17,7 +20,7 @@ asn_TYPE_member_t asn_MBR_RICactions_ToBeSetup_List_1[] = { { ATF_POINTER, 0, 0, (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, - &asn_DEF_ProtocolIE_SingleContainer_229P0, + &asn_DEF_ProtocolIE_SingleContainer_1920P0, 0, { 0, 0, 0 }, 0, 0, /* No default value */ @@ -42,7 +45,7 @@ asn_TYPE_descriptor_t asn_DEF_RICactions_ToBeSetup_List = { asn_DEF_RICactions_ToBeSetup_List_tags_1, /* Same as above */ sizeof(asn_DEF_RICactions_ToBeSetup_List_tags_1) /sizeof(asn_DEF_RICactions_ToBeSetup_List_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_RICactions_ToBeSetup_List_constr_1, SEQUENCE_OF_constraint }, + { &asn_OER_type_RICactions_ToBeSetup_List_constr_1, &asn_PER_type_RICactions_ToBeSetup_List_constr_1, SEQUENCE_OF_constraint }, asn_MBR_RICactions_ToBeSetup_List_1, 1, /* Single element */ &asn_SPC_RICactions_ToBeSetup_List_specs_1 /* Additional specs */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICactions-ToBeSetup-List.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICactions-ToBeSetup-List.h index 391cc17..95834cf 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICactions-ToBeSetup-List.h +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICactions-ToBeSetup-List.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #ifndef _RICactions_ToBeSetup_List_H_ diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICcallProcessID.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICcallProcessID.c index 847d8e5..10c2fd4 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICcallProcessID.c +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICcallProcessID.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #include "RICcallProcessID.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICcallProcessID.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICcallProcessID.h index b3bbfc8..0ba6bdb 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICcallProcessID.h +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICcallProcessID.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #ifndef _RICcallProcessID_H_ @@ -30,6 +30,8 @@ ber_type_decoder_f RICcallProcessID_decode_ber; der_type_encoder_f RICcallProcessID_encode_der; xer_type_decoder_f RICcallProcessID_decode_xer; xer_type_encoder_f RICcallProcessID_encode_xer; +oer_type_decoder_f RICcallProcessID_decode_oer; +oer_type_encoder_f RICcallProcessID_encode_oer; per_type_decoder_f RICcallProcessID_decode_uper; per_type_encoder_f RICcallProcessID_encode_uper; per_type_decoder_f RICcallProcessID_decode_aper; diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICcontrolAckRequest.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICcontrolAckRequest.c index d7f1237..417dc30 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICcontrolAckRequest.c +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICcontrolAckRequest.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #include "RICcontrolAckRequest.h" @@ -11,28 +11,29 @@ * This type is implemented using NativeEnumerated, * so here we adjust the DEF accordingly. */ -asn_per_constraints_t asn_PER_type_RICcontrolAckRequest_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 2 } /* (0..2,...) */, +static asn_oer_constraints_t asn_OER_type_RICcontrolAckRequest_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_RICcontrolAckRequest_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; static const asn_INTEGER_enum_map_t asn_MAP_RICcontrolAckRequest_value2enum_1[] = { { 0, 5, "noAck" }, - { 1, 3, "ack" }, - { 2, 4, "nAck" } + { 1, 3, "ack" } /* This list is extensible */ }; static const unsigned int asn_MAP_RICcontrolAckRequest_enum2value_1[] = { 1, /* ack(1) */ - 2, /* nAck(2) */ 0 /* noAck(0) */ /* This list is extensible */ }; -const asn_INTEGER_specifics_t asn_SPC_RICcontrolAckRequest_specs_1 = { +static const asn_INTEGER_specifics_t asn_SPC_RICcontrolAckRequest_specs_1 = { asn_MAP_RICcontrolAckRequest_value2enum_1, /* "tag" => N; sorted by tag */ asn_MAP_RICcontrolAckRequest_enum2value_1, /* N => "tag"; sorted by N */ - 3, /* Number of elements in the maps */ - 4, /* Extensions before this member */ + 2, /* Number of elements in the maps */ + 3, /* Extensions before this member */ 1, /* Strict enumeration */ 0, /* Native long size */ 0 @@ -50,7 +51,7 @@ asn_TYPE_descriptor_t asn_DEF_RICcontrolAckRequest = { asn_DEF_RICcontrolAckRequest_tags_1, /* Same as above */ sizeof(asn_DEF_RICcontrolAckRequest_tags_1) /sizeof(asn_DEF_RICcontrolAckRequest_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_RICcontrolAckRequest_constr_1, NativeEnumerated_constraint }, + { &asn_OER_type_RICcontrolAckRequest_constr_1, &asn_PER_type_RICcontrolAckRequest_constr_1, NativeEnumerated_constraint }, 0, 0, /* Defined elsewhere */ &asn_SPC_RICcontrolAckRequest_specs_1 /* Additional specs */ }; diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICcontrolAckRequest.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICcontrolAckRequest.h index 4f96f83..4fb713a 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICcontrolAckRequest.h +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICcontrolAckRequest.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #ifndef _RICcontrolAckRequest_H_ @@ -21,8 +21,7 @@ extern "C" { /* Dependencies */ typedef enum RICcontrolAckRequest { RICcontrolAckRequest_noAck = 0, - RICcontrolAckRequest_ack = 1, - RICcontrolAckRequest_nAck = 2 + RICcontrolAckRequest_ack = 1 /* * Enumeration is extensible */ @@ -32,9 +31,7 @@ typedef enum RICcontrolAckRequest { typedef long RICcontrolAckRequest_t; /* Implementation */ -extern asn_per_constraints_t asn_PER_type_RICcontrolAckRequest_constr_1; extern asn_TYPE_descriptor_t asn_DEF_RICcontrolAckRequest; -extern const asn_INTEGER_specifics_t asn_SPC_RICcontrolAckRequest_specs_1; asn_struct_free_f RICcontrolAckRequest_free; asn_struct_print_f RICcontrolAckRequest_print; asn_constr_check_f RICcontrolAckRequest_constraint; @@ -42,6 +39,8 @@ ber_type_decoder_f RICcontrolAckRequest_decode_ber; der_type_encoder_f RICcontrolAckRequest_encode_der; xer_type_decoder_f RICcontrolAckRequest_decode_xer; xer_type_encoder_f RICcontrolAckRequest_encode_xer; +oer_type_decoder_f RICcontrolAckRequest_decode_oer; +oer_type_encoder_f RICcontrolAckRequest_encode_oer; per_type_decoder_f RICcontrolAckRequest_decode_uper; per_type_encoder_f RICcontrolAckRequest_encode_uper; per_type_decoder_f RICcontrolAckRequest_decode_aper; diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICcontrolAcknowledge.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICcontrolAcknowledge.c index 1d0f224..bc16991 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICcontrolAcknowledge.c +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICcontrolAcknowledge.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #include "RICcontrolAcknowledge.h" @@ -11,7 +11,7 @@ asn_TYPE_member_t asn_MBR_RICcontrolAcknowledge_1[] = { { ATF_NOFLAGS, 0, offsetof(struct RICcontrolAcknowledge, protocolIEs), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_226P8, + &asn_DEF_ProtocolIE_Container_1917P9, 0, { 0, 0, 0 }, 0, 0, /* No default value */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICcontrolAcknowledge.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICcontrolAcknowledge.h index 6f61ded..afa6870 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICcontrolAcknowledge.h +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICcontrolAcknowledge.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #ifndef _RICcontrolAcknowledge_H_ @@ -21,7 +21,7 @@ extern "C" { /* RICcontrolAcknowledge */ typedef struct RICcontrolAcknowledge { - ProtocolIE_Container_226P8_t protocolIEs; + ProtocolIE_Container_1917P9_t protocolIEs; /* * This type is extensible, * possible extensions are below. diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICcontrolFailure.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICcontrolFailure.c index a3b6d13..c4ea6bc 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICcontrolFailure.c +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICcontrolFailure.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #include "RICcontrolFailure.h" @@ -11,7 +11,7 @@ asn_TYPE_member_t asn_MBR_RICcontrolFailure_1[] = { { ATF_NOFLAGS, 0, offsetof(struct RICcontrolFailure, protocolIEs), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_226P9, + &asn_DEF_ProtocolIE_Container_1917P10, 0, { 0, 0, 0 }, 0, 0, /* No default value */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICcontrolFailure.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICcontrolFailure.h index bb2ef49..9119a50 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICcontrolFailure.h +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICcontrolFailure.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #ifndef _RICcontrolFailure_H_ @@ -21,7 +21,7 @@ extern "C" { /* RICcontrolFailure */ typedef struct RICcontrolFailure { - ProtocolIE_Container_226P9_t protocolIEs; + ProtocolIE_Container_1917P10_t protocolIEs; /* * This type is extensible, * possible extensions are below. diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICcontrolHeader.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICcontrolHeader.c index 7ddbac1..34a7d05 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICcontrolHeader.c +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICcontrolHeader.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #include "RICcontrolHeader.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICcontrolHeader.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICcontrolHeader.h index 6ecea7a..f4b3091 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICcontrolHeader.h +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICcontrolHeader.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #ifndef _RICcontrolHeader_H_ @@ -30,6 +30,8 @@ ber_type_decoder_f RICcontrolHeader_decode_ber; der_type_encoder_f RICcontrolHeader_encode_der; xer_type_decoder_f RICcontrolHeader_decode_xer; xer_type_encoder_f RICcontrolHeader_encode_xer; +oer_type_decoder_f RICcontrolHeader_decode_oer; +oer_type_encoder_f RICcontrolHeader_encode_oer; per_type_decoder_f RICcontrolHeader_decode_uper; per_type_encoder_f RICcontrolHeader_encode_uper; per_type_decoder_f RICcontrolHeader_decode_aper; diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICcontrolMessage.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICcontrolMessage.c index 56b2322..9237dc5 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICcontrolMessage.c +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICcontrolMessage.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #include "RICcontrolMessage.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICcontrolMessage.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICcontrolMessage.h index b5afb39..4177e59 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICcontrolMessage.h +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICcontrolMessage.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #ifndef _RICcontrolMessage_H_ @@ -30,6 +30,8 @@ ber_type_decoder_f RICcontrolMessage_decode_ber; der_type_encoder_f RICcontrolMessage_encode_der; xer_type_decoder_f RICcontrolMessage_decode_xer; xer_type_encoder_f RICcontrolMessage_encode_xer; +oer_type_decoder_f RICcontrolMessage_decode_oer; +oer_type_encoder_f RICcontrolMessage_encode_oer; per_type_decoder_f RICcontrolMessage_decode_uper; per_type_encoder_f RICcontrolMessage_encode_uper; per_type_decoder_f RICcontrolMessage_decode_aper; diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICcontrolOutcome.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICcontrolOutcome.c index e584d19..0bedd24 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICcontrolOutcome.c +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICcontrolOutcome.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #include "RICcontrolOutcome.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICcontrolOutcome.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICcontrolOutcome.h index 725ceb5..c285f44 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICcontrolOutcome.h +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICcontrolOutcome.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #ifndef _RICcontrolOutcome_H_ @@ -30,6 +30,8 @@ ber_type_decoder_f RICcontrolOutcome_decode_ber; der_type_encoder_f RICcontrolOutcome_encode_der; xer_type_decoder_f RICcontrolOutcome_decode_xer; xer_type_encoder_f RICcontrolOutcome_encode_xer; +oer_type_decoder_f RICcontrolOutcome_decode_oer; +oer_type_encoder_f RICcontrolOutcome_encode_oer; per_type_decoder_f RICcontrolOutcome_decode_uper; per_type_encoder_f RICcontrolOutcome_encode_uper; per_type_decoder_f RICcontrolOutcome_decode_aper; diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICcontrolRequest.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICcontrolRequest.c index 7398fc5..467ff4b 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICcontrolRequest.c +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICcontrolRequest.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #include "RICcontrolRequest.h" @@ -11,7 +11,7 @@ asn_TYPE_member_t asn_MBR_RICcontrolRequest_1[] = { { ATF_NOFLAGS, 0, offsetof(struct RICcontrolRequest, protocolIEs), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_226P7, + &asn_DEF_ProtocolIE_Container_1917P8, 0, { 0, 0, 0 }, 0, 0, /* No default value */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICcontrolRequest.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICcontrolRequest.h index 40daf83..561fd37 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICcontrolRequest.h +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICcontrolRequest.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #ifndef _RICcontrolRequest_H_ @@ -21,7 +21,7 @@ extern "C" { /* RICcontrolRequest */ typedef struct RICcontrolRequest { - ProtocolIE_Container_226P7_t protocolIEs; + ProtocolIE_Container_1917P8_t protocolIEs; /* * This type is extensible, * possible extensions are below. diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICcontrolStatus.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICcontrolStatus.c deleted file mode 100644 index 1c6c454..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICcontrolStatus.c +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` - */ - -#include "RICcontrolStatus.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_RICcontrolStatus_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 2 } /* (0..2,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_RICcontrolStatus_value2enum_1[] = { - { 0, 7, "success" }, - { 1, 8, "rejected" }, - { 2, 6, "failed" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_RICcontrolStatus_enum2value_1[] = { - 2, /* failed(2) */ - 1, /* rejected(1) */ - 0 /* success(0) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_RICcontrolStatus_specs_1 = { - asn_MAP_RICcontrolStatus_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_RICcontrolStatus_enum2value_1, /* N => "tag"; sorted by N */ - 3, /* Number of elements in the maps */ - 4, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_RICcontrolStatus_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RICcontrolStatus = { - "RICcontrolStatus", - "RICcontrolStatus", - &asn_OP_NativeEnumerated, - asn_DEF_RICcontrolStatus_tags_1, - sizeof(asn_DEF_RICcontrolStatus_tags_1) - /sizeof(asn_DEF_RICcontrolStatus_tags_1[0]), /* 1 */ - asn_DEF_RICcontrolStatus_tags_1, /* Same as above */ - sizeof(asn_DEF_RICcontrolStatus_tags_1) - /sizeof(asn_DEF_RICcontrolStatus_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_RICcontrolStatus_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_RICcontrolStatus_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICcontrolStatus.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICcontrolStatus.h deleted file mode 100644 index de6496f..0000000 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICcontrolStatus.h +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` - */ - -#ifndef _RICcontrolStatus_H_ -#define _RICcontrolStatus_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum RICcontrolStatus { - RICcontrolStatus_success = 0, - RICcontrolStatus_rejected = 1, - RICcontrolStatus_failed = 2 - /* - * Enumeration is extensible - */ -} e_RICcontrolStatus; - -/* RICcontrolStatus */ -typedef long RICcontrolStatus_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_RICcontrolStatus_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_RICcontrolStatus; -extern const asn_INTEGER_specifics_t asn_SPC_RICcontrolStatus_specs_1; -asn_struct_free_f RICcontrolStatus_free; -asn_struct_print_f RICcontrolStatus_print; -asn_constr_check_f RICcontrolStatus_constraint; -ber_type_decoder_f RICcontrolStatus_decode_ber; -der_type_encoder_f RICcontrolStatus_encode_der; -xer_type_decoder_f RICcontrolStatus_decode_xer; -xer_type_encoder_f RICcontrolStatus_encode_xer; -per_type_decoder_f RICcontrolStatus_decode_uper; -per_type_encoder_f RICcontrolStatus_encode_uper; -per_type_decoder_f RICcontrolStatus_decode_aper; -per_type_encoder_f RICcontrolStatus_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICcontrolStatus_H_ */ -#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICeventTriggerDefinition.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICeventTriggerDefinition.c index a0762b3..bec7659 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICeventTriggerDefinition.c +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICeventTriggerDefinition.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #include "RICeventTriggerDefinition.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICeventTriggerDefinition.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICeventTriggerDefinition.h index c4b75d6..d53ac38 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICeventTriggerDefinition.h +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICeventTriggerDefinition.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #ifndef _RICeventTriggerDefinition_H_ @@ -30,6 +30,8 @@ ber_type_decoder_f RICeventTriggerDefinition_decode_ber; der_type_encoder_f RICeventTriggerDefinition_encode_der; xer_type_decoder_f RICeventTriggerDefinition_decode_xer; xer_type_encoder_f RICeventTriggerDefinition_encode_xer; +oer_type_decoder_f RICeventTriggerDefinition_decode_oer; +oer_type_encoder_f RICeventTriggerDefinition_encode_oer; per_type_decoder_f RICeventTriggerDefinition_decode_uper; per_type_encoder_f RICeventTriggerDefinition_encode_uper; per_type_decoder_f RICeventTriggerDefinition_decode_aper; diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICindication.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICindication.c index 734903e..5f164b5 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICindication.c +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICindication.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #include "RICindication.h" @@ -11,7 +11,7 @@ asn_TYPE_member_t asn_MBR_RICindication_1[] = { { ATF_NOFLAGS, 0, offsetof(struct RICindication, protocolIEs), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_226P6, + &asn_DEF_ProtocolIE_Container_1917P7, 0, { 0, 0, 0 }, 0, 0, /* No default value */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICindication.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICindication.h index 3d089a2..b189589 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICindication.h +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICindication.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #ifndef _RICindication_H_ @@ -21,7 +21,7 @@ extern "C" { /* RICindication */ typedef struct RICindication { - ProtocolIE_Container_226P6_t protocolIEs; + ProtocolIE_Container_1917P7_t protocolIEs; /* * This type is extensible, * possible extensions are below. diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICindicationHeader.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICindicationHeader.c index eab1fb5..7a3b70c 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICindicationHeader.c +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICindicationHeader.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #include "RICindicationHeader.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICindicationHeader.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICindicationHeader.h index 2526404..9b99d11 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICindicationHeader.h +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICindicationHeader.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #ifndef _RICindicationHeader_H_ @@ -30,6 +30,8 @@ ber_type_decoder_f RICindicationHeader_decode_ber; der_type_encoder_f RICindicationHeader_encode_der; xer_type_decoder_f RICindicationHeader_decode_xer; xer_type_encoder_f RICindicationHeader_encode_xer; +oer_type_decoder_f RICindicationHeader_decode_oer; +oer_type_encoder_f RICindicationHeader_encode_oer; per_type_decoder_f RICindicationHeader_decode_uper; per_type_encoder_f RICindicationHeader_encode_uper; per_type_decoder_f RICindicationHeader_decode_aper; diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICindicationMessage.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICindicationMessage.c index 471e2ca..85d3627 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICindicationMessage.c +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICindicationMessage.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #include "RICindicationMessage.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICindicationMessage.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICindicationMessage.h index 487a23d..794f93d 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICindicationMessage.h +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICindicationMessage.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #ifndef _RICindicationMessage_H_ @@ -30,6 +30,8 @@ ber_type_decoder_f RICindicationMessage_decode_ber; der_type_encoder_f RICindicationMessage_encode_der; xer_type_decoder_f RICindicationMessage_decode_xer; xer_type_encoder_f RICindicationMessage_encode_xer; +oer_type_decoder_f RICindicationMessage_decode_oer; +oer_type_encoder_f RICindicationMessage_encode_oer; per_type_decoder_f RICindicationMessage_decode_uper; per_type_encoder_f RICindicationMessage_encode_uper; per_type_decoder_f RICindicationMessage_decode_aper; diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICindicationSN.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICindicationSN.c index 06e9405..02e15d9 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICindicationSN.c +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICindicationSN.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #include "RICindicationSN.h" @@ -36,7 +36,10 @@ RICindicationSN_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, * This type is implemented using NativeInteger, * so here we adjust the DEF accordingly. */ -asn_per_constraints_t asn_PER_type_RICindicationSN_constr_1 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_type_RICindicationSN_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_type_RICindicationSN_constr_1 CC_NOTUSED = { { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ @@ -54,7 +57,7 @@ asn_TYPE_descriptor_t asn_DEF_RICindicationSN = { asn_DEF_RICindicationSN_tags_1, /* Same as above */ sizeof(asn_DEF_RICindicationSN_tags_1) /sizeof(asn_DEF_RICindicationSN_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_RICindicationSN_constr_1, RICindicationSN_constraint }, + { &asn_OER_type_RICindicationSN_constr_1, &asn_PER_type_RICindicationSN_constr_1, RICindicationSN_constraint }, 0, 0, /* No members */ 0 /* No specifics */ }; diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICindicationSN.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICindicationSN.h index c13fff6..b802c11 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICindicationSN.h +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICindicationSN.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #ifndef _RICindicationSN_H_ @@ -22,7 +22,6 @@ extern "C" { typedef long RICindicationSN_t; /* Implementation */ -extern asn_per_constraints_t asn_PER_type_RICindicationSN_constr_1; extern asn_TYPE_descriptor_t asn_DEF_RICindicationSN; asn_struct_free_f RICindicationSN_free; asn_struct_print_f RICindicationSN_print; @@ -31,6 +30,8 @@ ber_type_decoder_f RICindicationSN_decode_ber; der_type_encoder_f RICindicationSN_encode_der; xer_type_decoder_f RICindicationSN_decode_xer; xer_type_encoder_f RICindicationSN_encode_xer; +oer_type_decoder_f RICindicationSN_decode_oer; +oer_type_encoder_f RICindicationSN_encode_oer; per_type_decoder_f RICindicationSN_decode_uper; per_type_encoder_f RICindicationSN_encode_uper; per_type_decoder_f RICindicationSN_decode_aper; diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICindicationType.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICindicationType.c index b68a6ba..d4b4ef6 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICindicationType.c +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICindicationType.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #include "RICindicationType.h" @@ -11,7 +11,10 @@ * This type is implemented using NativeEnumerated, * so here we adjust the DEF accordingly. */ -asn_per_constraints_t asn_PER_type_RICindicationType_constr_1 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_type_RICindicationType_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_RICindicationType_constr_1 CC_NOTUSED = { { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ @@ -26,7 +29,7 @@ static const unsigned int asn_MAP_RICindicationType_enum2value_1[] = { 0 /* report(0) */ /* This list is extensible */ }; -const asn_INTEGER_specifics_t asn_SPC_RICindicationType_specs_1 = { +static const asn_INTEGER_specifics_t asn_SPC_RICindicationType_specs_1 = { asn_MAP_RICindicationType_value2enum_1, /* "tag" => N; sorted by tag */ asn_MAP_RICindicationType_enum2value_1, /* N => "tag"; sorted by N */ 2, /* Number of elements in the maps */ @@ -48,7 +51,7 @@ asn_TYPE_descriptor_t asn_DEF_RICindicationType = { asn_DEF_RICindicationType_tags_1, /* Same as above */ sizeof(asn_DEF_RICindicationType_tags_1) /sizeof(asn_DEF_RICindicationType_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_RICindicationType_constr_1, NativeEnumerated_constraint }, + { &asn_OER_type_RICindicationType_constr_1, &asn_PER_type_RICindicationType_constr_1, NativeEnumerated_constraint }, 0, 0, /* Defined elsewhere */ &asn_SPC_RICindicationType_specs_1 /* Additional specs */ }; diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICindicationType.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICindicationType.h index 76e08e9..b21a107 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICindicationType.h +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICindicationType.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #ifndef _RICindicationType_H_ @@ -31,9 +31,7 @@ typedef enum RICindicationType { typedef long RICindicationType_t; /* Implementation */ -extern asn_per_constraints_t asn_PER_type_RICindicationType_constr_1; extern asn_TYPE_descriptor_t asn_DEF_RICindicationType; -extern const asn_INTEGER_specifics_t asn_SPC_RICindicationType_specs_1; asn_struct_free_f RICindicationType_free; asn_struct_print_f RICindicationType_print; asn_constr_check_f RICindicationType_constraint; @@ -41,6 +39,8 @@ ber_type_decoder_f RICindicationType_decode_ber; der_type_encoder_f RICindicationType_encode_der; xer_type_decoder_f RICindicationType_decode_xer; xer_type_encoder_f RICindicationType_encode_xer; +oer_type_decoder_f RICindicationType_decode_oer; +oer_type_encoder_f RICindicationType_encode_oer; per_type_decoder_f RICindicationType_decode_uper; per_type_encoder_f RICindicationType_encode_uper; per_type_decoder_f RICindicationType_decode_aper; diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICrequestID.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICrequestID.c index 701a7cb..0a77044 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICrequestID.c +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICrequestID.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #include "RICrequestID.h" @@ -57,11 +57,17 @@ memb_ricInstanceID_constraint_1(const asn_TYPE_descriptor_t *td, const void *spt } } +static asn_oer_constraints_t asn_OER_memb_ricRequestorID_constr_2 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; static asn_per_constraints_t asn_PER_memb_ricRequestorID_constr_2 CC_NOTUSED = { { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; +static asn_oer_constraints_t asn_OER_memb_ricInstanceID_constr_3 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; static asn_per_constraints_t asn_PER_memb_ricInstanceID_constr_3 CC_NOTUSED = { { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, @@ -73,7 +79,7 @@ asn_TYPE_member_t asn_MBR_RICrequestID_1[] = { -1, /* IMPLICIT tag at current level */ &asn_DEF_NativeInteger, 0, - { 0, &asn_PER_memb_ricRequestorID_constr_2, memb_ricRequestorID_constraint_1 }, + { &asn_OER_memb_ricRequestorID_constr_2, &asn_PER_memb_ricRequestorID_constr_2, memb_ricRequestorID_constraint_1 }, 0, 0, /* No default value */ "ricRequestorID" }, @@ -82,7 +88,7 @@ asn_TYPE_member_t asn_MBR_RICrequestID_1[] = { -1, /* IMPLICIT tag at current level */ &asn_DEF_NativeInteger, 0, - { 0, &asn_PER_memb_ricInstanceID_constr_3, memb_ricInstanceID_constraint_1 }, + { &asn_OER_memb_ricInstanceID_constr_3, &asn_PER_memb_ricInstanceID_constr_3, memb_ricInstanceID_constraint_1 }, 0, 0, /* No default value */ "ricInstanceID" }, diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICrequestID.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICrequestID.h index f832678..5e2fe15 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICrequestID.h +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICrequestID.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #ifndef _RICrequestID_H_ diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICserviceQuery.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICserviceQuery.c index 9dce754..a5a5a03 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICserviceQuery.c +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICserviceQuery.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #include "RICserviceQuery.h" @@ -11,7 +11,7 @@ asn_TYPE_member_t asn_MBR_RICserviceQuery_1[] = { { ATF_NOFLAGS, 0, offsetof(struct RICserviceQuery, protocolIEs), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_226P25, + &asn_DEF_ProtocolIE_Container_1917P26, 0, { 0, 0, 0 }, 0, 0, /* No default value */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICserviceQuery.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICserviceQuery.h index 3b215de..7760fc7 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICserviceQuery.h +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICserviceQuery.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #ifndef _RICserviceQuery_H_ @@ -21,7 +21,7 @@ extern "C" { /* RICserviceQuery */ typedef struct RICserviceQuery { - ProtocolIE_Container_226P25_t protocolIEs; + ProtocolIE_Container_1917P26_t protocolIEs; /* * This type is extensible, * possible extensions are below. diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICserviceUpdate.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICserviceUpdate.c index 73206ce..5ee17e3 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICserviceUpdate.c +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICserviceUpdate.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #include "RICserviceUpdate.h" @@ -11,7 +11,7 @@ asn_TYPE_member_t asn_MBR_RICserviceUpdate_1[] = { { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdate, protocolIEs), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_226P22, + &asn_DEF_ProtocolIE_Container_1917P23, 0, { 0, 0, 0 }, 0, 0, /* No default value */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICserviceUpdate.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICserviceUpdate.h index 1155249..7425da6 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICserviceUpdate.h +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICserviceUpdate.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #ifndef _RICserviceUpdate_H_ @@ -21,7 +21,7 @@ extern "C" { /* RICserviceUpdate */ typedef struct RICserviceUpdate { - ProtocolIE_Container_226P22_t protocolIEs; + ProtocolIE_Container_1917P23_t protocolIEs; /* * This type is extensible, * possible extensions are below. diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICserviceUpdateAcknowledge.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICserviceUpdateAcknowledge.c index 700c355..e16604f 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICserviceUpdateAcknowledge.c +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICserviceUpdateAcknowledge.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #include "RICserviceUpdateAcknowledge.h" @@ -11,7 +11,7 @@ asn_TYPE_member_t asn_MBR_RICserviceUpdateAcknowledge_1[] = { { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateAcknowledge, protocolIEs), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_226P23, + &asn_DEF_ProtocolIE_Container_1917P24, 0, { 0, 0, 0 }, 0, 0, /* No default value */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICserviceUpdateAcknowledge.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICserviceUpdateAcknowledge.h index cb8afea..aae8baf 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICserviceUpdateAcknowledge.h +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICserviceUpdateAcknowledge.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #ifndef _RICserviceUpdateAcknowledge_H_ @@ -21,7 +21,7 @@ extern "C" { /* RICserviceUpdateAcknowledge */ typedef struct RICserviceUpdateAcknowledge { - ProtocolIE_Container_226P23_t protocolIEs; + ProtocolIE_Container_1917P24_t protocolIEs; /* * This type is extensible, * possible extensions are below. diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICserviceUpdateFailure.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICserviceUpdateFailure.c index 72ddf04..314d892 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICserviceUpdateFailure.c +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICserviceUpdateFailure.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #include "RICserviceUpdateFailure.h" @@ -11,7 +11,7 @@ asn_TYPE_member_t asn_MBR_RICserviceUpdateFailure_1[] = { { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateFailure, protocolIEs), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_226P24, + &asn_DEF_ProtocolIE_Container_1917P25, 0, { 0, 0, 0 }, 0, 0, /* No default value */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICserviceUpdateFailure.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICserviceUpdateFailure.h index 3993372..f418bc8 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICserviceUpdateFailure.h +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICserviceUpdateFailure.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #ifndef _RICserviceUpdateFailure_H_ @@ -21,7 +21,7 @@ extern "C" { /* RICserviceUpdateFailure */ typedef struct RICserviceUpdateFailure { - ProtocolIE_Container_226P24_t protocolIEs; + ProtocolIE_Container_1917P25_t protocolIEs; /* * This type is extensible, * possible extensions are below. diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscription-List-withCause.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscription-List-withCause.c new file mode 100644 index 0000000..384fc73 --- /dev/null +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscription-List-withCause.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` + */ + +#include "RICsubscription-List-withCause.h" + +#include "ProtocolIE-SingleContainer.h" +static asn_oer_constraints_t asn_OER_type_RICsubscription_List_withCause_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4294967295)) */}; +static asn_per_constraints_t asn_PER_type_RICsubscription_List_withCause_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 32, -1, 1, 4294967295 } /* (SIZE(1..4294967295)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_RICsubscription_List_withCause_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ProtocolIE_SingleContainer_1920P3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_RICsubscription_List_withCause_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_RICsubscription_List_withCause_specs_1 = { + sizeof(struct RICsubscription_List_withCause), + offsetof(struct RICsubscription_List_withCause, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_RICsubscription_List_withCause = { + "RICsubscription-List-withCause", + "RICsubscription-List-withCause", + &asn_OP_SEQUENCE_OF, + asn_DEF_RICsubscription_List_withCause_tags_1, + sizeof(asn_DEF_RICsubscription_List_withCause_tags_1) + /sizeof(asn_DEF_RICsubscription_List_withCause_tags_1[0]), /* 1 */ + asn_DEF_RICsubscription_List_withCause_tags_1, /* Same as above */ + sizeof(asn_DEF_RICsubscription_List_withCause_tags_1) + /sizeof(asn_DEF_RICsubscription_List_withCause_tags_1[0]), /* 1 */ + { &asn_OER_type_RICsubscription_List_withCause_constr_1, &asn_PER_type_RICsubscription_List_withCause_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_RICsubscription_List_withCause_1, + 1, /* Single element */ + &asn_SPC_RICsubscription_List_withCause_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscription-List-withCause.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscription-List-withCause.h new file mode 100644 index 0000000..43117cd --- /dev/null +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscription-List-withCause.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` + */ + +#ifndef _RICsubscription_List_withCause_H_ +#define _RICsubscription_List_withCause_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolIE_SingleContainer; + +/* RICsubscription-List-withCause */ +typedef struct RICsubscription_List_withCause { + A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RICsubscription_List_withCause_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RICsubscription_List_withCause; + +#ifdef __cplusplus +} +#endif + +#endif /* _RICsubscription_List_withCause_H_ */ +#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscription-withCause-Item.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscription-withCause-Item.c new file mode 100644 index 0000000..fef3391 --- /dev/null +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscription-withCause-Item.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` + */ + +#include "RICsubscription-withCause-Item.h" + +static asn_TYPE_member_t asn_MBR_RICsubscription_withCause_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICsubscription_withCause_Item, ricRequestID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RICrequestID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ricRequestID" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICsubscription_withCause_Item, ranFunctionID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RANfunctionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ranFunctionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICsubscription_withCause_Item, cause), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_Cause, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cause" + }, +}; +static const ber_tlv_tag_t asn_DEF_RICsubscription_withCause_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RICsubscription_withCause_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ricRequestID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ranFunctionID */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* cause */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_RICsubscription_withCause_Item_specs_1 = { + sizeof(struct RICsubscription_withCause_Item), + offsetof(struct RICsubscription_withCause_Item, _asn_ctx), + asn_MAP_RICsubscription_withCause_Item_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RICsubscription_withCause_Item = { + "RICsubscription-withCause-Item", + "RICsubscription-withCause-Item", + &asn_OP_SEQUENCE, + asn_DEF_RICsubscription_withCause_Item_tags_1, + sizeof(asn_DEF_RICsubscription_withCause_Item_tags_1) + /sizeof(asn_DEF_RICsubscription_withCause_Item_tags_1[0]), /* 1 */ + asn_DEF_RICsubscription_withCause_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_RICsubscription_withCause_Item_tags_1) + /sizeof(asn_DEF_RICsubscription_withCause_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RICsubscription_withCause_Item_1, + 3, /* Elements count */ + &asn_SPC_RICsubscription_withCause_Item_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscription-withCause-Item.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscription-withCause-Item.h new file mode 100644 index 0000000..db46929 --- /dev/null +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscription-withCause-Item.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` + */ + +#ifndef _RICsubscription_withCause_Item_H_ +#define _RICsubscription_withCause_Item_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "RICrequestID.h" +#include "RANfunctionID.h" +#include "Cause.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* RICsubscription-withCause-Item */ +typedef struct RICsubscription_withCause_Item { + RICrequestID_t ricRequestID; + RANfunctionID_t ranFunctionID; + Cause_t cause; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RICsubscription_withCause_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RICsubscription_withCause_Item; + +#ifdef __cplusplus +} +#endif + +#endif /* _RICsubscription_withCause_Item_H_ */ +#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscriptionDeleteFailure.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscriptionDeleteFailure.c index 17144b1..7ecf563 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscriptionDeleteFailure.c +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscriptionDeleteFailure.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #include "RICsubscriptionDeleteFailure.h" @@ -11,7 +11,7 @@ asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteFailure_1[] = { { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteFailure, protocolIEs), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_226P5, + &asn_DEF_ProtocolIE_Container_1917P5, 0, { 0, 0, 0 }, 0, 0, /* No default value */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscriptionDeleteFailure.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscriptionDeleteFailure.h index c449ec2..6279bf9 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscriptionDeleteFailure.h +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscriptionDeleteFailure.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #ifndef _RICsubscriptionDeleteFailure_H_ @@ -21,7 +21,7 @@ extern "C" { /* RICsubscriptionDeleteFailure */ typedef struct RICsubscriptionDeleteFailure { - ProtocolIE_Container_226P5_t protocolIEs; + ProtocolIE_Container_1917P5_t protocolIEs; /* * This type is extensible, * possible extensions are below. diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscriptionDeleteRequest.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscriptionDeleteRequest.c index acf561a..deecbb5 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscriptionDeleteRequest.c +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscriptionDeleteRequest.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #include "RICsubscriptionDeleteRequest.h" @@ -11,7 +11,7 @@ asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteRequest_1[] = { { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteRequest, protocolIEs), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_226P3, + &asn_DEF_ProtocolIE_Container_1917P3, 0, { 0, 0, 0 }, 0, 0, /* No default value */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscriptionDeleteRequest.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscriptionDeleteRequest.h index 1d86168..3365757 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscriptionDeleteRequest.h +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscriptionDeleteRequest.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #ifndef _RICsubscriptionDeleteRequest_H_ @@ -21,7 +21,7 @@ extern "C" { /* RICsubscriptionDeleteRequest */ typedef struct RICsubscriptionDeleteRequest { - ProtocolIE_Container_226P3_t protocolIEs; + ProtocolIE_Container_1917P3_t protocolIEs; /* * This type is extensible, * possible extensions are below. diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscriptionDeleteRequired.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscriptionDeleteRequired.c new file mode 100644 index 0000000..e52fc9c --- /dev/null +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscriptionDeleteRequired.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` + */ + +#include "RICsubscriptionDeleteRequired.h" + +asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteRequired_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteRequired, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_Container_1917P6, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_RICsubscriptionDeleteRequired_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionDeleteRequired_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteRequired_specs_1 = { + sizeof(struct RICsubscriptionDeleteRequired), + offsetof(struct RICsubscriptionDeleteRequired, _asn_ctx), + asn_MAP_RICsubscriptionDeleteRequired_tag2el_1, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDeleteRequired = { + "RICsubscriptionDeleteRequired", + "RICsubscriptionDeleteRequired", + &asn_OP_SEQUENCE, + asn_DEF_RICsubscriptionDeleteRequired_tags_1, + sizeof(asn_DEF_RICsubscriptionDeleteRequired_tags_1) + /sizeof(asn_DEF_RICsubscriptionDeleteRequired_tags_1[0]), /* 1 */ + asn_DEF_RICsubscriptionDeleteRequired_tags_1, /* Same as above */ + sizeof(asn_DEF_RICsubscriptionDeleteRequired_tags_1) + /sizeof(asn_DEF_RICsubscriptionDeleteRequired_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RICsubscriptionDeleteRequired_1, + 1, /* Elements count */ + &asn_SPC_RICsubscriptionDeleteRequired_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscriptionDeleteRequired.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscriptionDeleteRequired.h new file mode 100644 index 0000000..ed1945d --- /dev/null +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscriptionDeleteRequired.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` + */ + +#ifndef _RICsubscriptionDeleteRequired_H_ +#define _RICsubscriptionDeleteRequired_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* RICsubscriptionDeleteRequired */ +typedef struct RICsubscriptionDeleteRequired { + ProtocolIE_Container_1917P6_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RICsubscriptionDeleteRequired_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDeleteRequired; +extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteRequired_specs_1; +extern asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteRequired_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RICsubscriptionDeleteRequired_H_ */ +#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscriptionDeleteResponse.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscriptionDeleteResponse.c index a8268de..2170d81 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscriptionDeleteResponse.c +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscriptionDeleteResponse.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #include "RICsubscriptionDeleteResponse.h" @@ -11,7 +11,7 @@ asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteResponse_1[] = { { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteResponse, protocolIEs), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_226P4, + &asn_DEF_ProtocolIE_Container_1917P4, 0, { 0, 0, 0 }, 0, 0, /* No default value */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscriptionDeleteResponse.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscriptionDeleteResponse.h index 5f54a1c..cddc20e 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscriptionDeleteResponse.h +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscriptionDeleteResponse.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #ifndef _RICsubscriptionDeleteResponse_H_ @@ -21,7 +21,7 @@ extern "C" { /* RICsubscriptionDeleteResponse */ typedef struct RICsubscriptionDeleteResponse { - ProtocolIE_Container_226P4_t protocolIEs; + ProtocolIE_Container_1917P4_t protocolIEs; /* * This type is extensible, * possible extensions are below. diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscriptionDetails.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscriptionDetails.c index 07a6871..777fae0 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscriptionDetails.c +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscriptionDetails.c @@ -1,13 +1,13 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #include "RICsubscriptionDetails.h" -asn_TYPE_member_t asn_MBR_RICsubscriptionDetails_1[] = { +static asn_TYPE_member_t asn_MBR_RICsubscriptionDetails_1[] = { { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDetails, ricEventTriggerDefinition), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ @@ -34,7 +34,7 @@ static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionDetails_tag2el_1[] = { { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ricEventTriggerDefinition */ { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ricAction-ToBeSetup-List */ }; -asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDetails_specs_1 = { +static asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDetails_specs_1 = { sizeof(struct RICsubscriptionDetails), offsetof(struct RICsubscriptionDetails, _asn_ctx), asn_MAP_RICsubscriptionDetails_tag2el_1, diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscriptionDetails.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscriptionDetails.h index 2ec7ae2..4f45d46 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscriptionDetails.h +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscriptionDetails.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #ifndef _RICsubscriptionDetails_H_ @@ -35,8 +35,6 @@ typedef struct RICsubscriptionDetails { /* Implementation */ extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDetails; -extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDetails_specs_1; -extern asn_TYPE_member_t asn_MBR_RICsubscriptionDetails_1[2]; #ifdef __cplusplus } diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscriptionFailure.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscriptionFailure.c index b95025e..576e1cf 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscriptionFailure.c +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscriptionFailure.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #include "RICsubscriptionFailure.h" @@ -11,7 +11,7 @@ asn_TYPE_member_t asn_MBR_RICsubscriptionFailure_1[] = { { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionFailure, protocolIEs), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_226P2, + &asn_DEF_ProtocolIE_Container_1917P2, 0, { 0, 0, 0 }, 0, 0, /* No default value */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscriptionFailure.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscriptionFailure.h index 7910f1c..e5bfe7d 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscriptionFailure.h +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscriptionFailure.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #ifndef _RICsubscriptionFailure_H_ @@ -21,7 +21,7 @@ extern "C" { /* RICsubscriptionFailure */ typedef struct RICsubscriptionFailure { - ProtocolIE_Container_226P2_t protocolIEs; + ProtocolIE_Container_1917P2_t protocolIEs; /* * This type is extensible, * possible extensions are below. diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscriptionRequest.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscriptionRequest.c index ef86fa8..383a300 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscriptionRequest.c +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscriptionRequest.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #include "RICsubscriptionRequest.h" @@ -11,7 +11,7 @@ asn_TYPE_member_t asn_MBR_RICsubscriptionRequest_1[] = { { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionRequest, protocolIEs), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_226P0, + &asn_DEF_ProtocolIE_Container_1917P0, 0, { 0, 0, 0 }, 0, 0, /* No default value */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscriptionRequest.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscriptionRequest.h index 76429ea..ed87c29 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscriptionRequest.h +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscriptionRequest.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #ifndef _RICsubscriptionRequest_H_ @@ -21,7 +21,7 @@ extern "C" { /* RICsubscriptionRequest */ typedef struct RICsubscriptionRequest { - ProtocolIE_Container_226P0_t protocolIEs; + ProtocolIE_Container_1917P0_t protocolIEs; /* * This type is extensible, * possible extensions are below. diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscriptionResponse.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscriptionResponse.c index 28c0861..8c46f2e 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscriptionResponse.c +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscriptionResponse.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #include "RICsubscriptionResponse.h" @@ -11,7 +11,7 @@ asn_TYPE_member_t asn_MBR_RICsubscriptionResponse_1[] = { { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionResponse, protocolIEs), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_226P1, + &asn_DEF_ProtocolIE_Container_1917P1, 0, { 0, 0, 0 }, 0, 0, /* No default value */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscriptionResponse.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscriptionResponse.h index 5dd7865..7367e7b 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscriptionResponse.h +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubscriptionResponse.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #ifndef _RICsubscriptionResponse_H_ @@ -21,7 +21,7 @@ extern "C" { /* RICsubscriptionResponse */ typedef struct RICsubscriptionResponse { - ProtocolIE_Container_226P1_t protocolIEs; + ProtocolIE_Container_1917P1_t protocolIEs; /* * This type is extensible, * possible extensions are below. diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubsequentAction.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubsequentAction.c index 5a63307..3205562 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubsequentAction.c +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubsequentAction.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #include "RICsubsequentAction.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubsequentAction.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubsequentAction.h index 9806500..d485d2f 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubsequentAction.h +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubsequentAction.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #ifndef _RICsubsequentAction_H_ diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubsequentActionType.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubsequentActionType.c index b460c42..4a21d06 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubsequentActionType.c +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubsequentActionType.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #include "RICsubsequentActionType.h" @@ -11,6 +11,9 @@ * This type is implemented using NativeEnumerated, * so here we adjust the DEF accordingly. */ +static asn_oer_constraints_t asn_OER_type_RICsubsequentActionType_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; asn_per_constraints_t asn_PER_type_RICsubsequentActionType_constr_1 CC_NOTUSED = { { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, @@ -48,7 +51,7 @@ asn_TYPE_descriptor_t asn_DEF_RICsubsequentActionType = { asn_DEF_RICsubsequentActionType_tags_1, /* Same as above */ sizeof(asn_DEF_RICsubsequentActionType_tags_1) /sizeof(asn_DEF_RICsubsequentActionType_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_RICsubsequentActionType_constr_1, NativeEnumerated_constraint }, + { &asn_OER_type_RICsubsequentActionType_constr_1, &asn_PER_type_RICsubsequentActionType_constr_1, NativeEnumerated_constraint }, 0, 0, /* Defined elsewhere */ &asn_SPC_RICsubsequentActionType_specs_1 /* Additional specs */ }; diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubsequentActionType.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubsequentActionType.h index dae379e..2faa650 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubsequentActionType.h +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICsubsequentActionType.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #ifndef _RICsubsequentActionType_H_ @@ -41,6 +41,8 @@ ber_type_decoder_f RICsubsequentActionType_decode_ber; der_type_encoder_f RICsubsequentActionType_encode_der; xer_type_decoder_f RICsubsequentActionType_decode_xer; xer_type_encoder_f RICsubsequentActionType_encode_xer; +oer_type_decoder_f RICsubsequentActionType_decode_oer; +oer_type_encoder_f RICsubsequentActionType_encode_oer; per_type_decoder_f RICsubsequentActionType_decode_uper; per_type_encoder_f RICsubsequentActionType_encode_uper; per_type_decoder_f RICsubsequentActionType_decode_aper; diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICtimeToWait.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICtimeToWait.c index 91edeb9..5a5e765 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICtimeToWait.c +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICtimeToWait.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #include "RICtimeToWait.h" @@ -11,58 +11,59 @@ * This type is implemented using NativeEnumerated, * so here we adjust the DEF accordingly. */ +static asn_oer_constraints_t asn_OER_type_RICtimeToWait_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; asn_per_constraints_t asn_PER_type_RICtimeToWait_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 5, 5, 0, 17 } /* (0..17,...) */, + { APC_CONSTRAINED | APC_EXTENSIBLE, 5, 5, 0, 16 } /* (0..16,...) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; static const asn_INTEGER_enum_map_t asn_MAP_RICtimeToWait_value2enum_1[] = { - { 0, 4, "zero" }, - { 1, 4, "w1ms" }, - { 2, 4, "w2ms" }, - { 3, 4, "w5ms" }, - { 4, 5, "w10ms" }, - { 5, 5, "w20ms" }, - { 6, 5, "w30ms" }, - { 7, 5, "w40ms" }, - { 8, 5, "w50ms" }, - { 9, 6, "w100ms" }, - { 10, 6, "w200ms" }, - { 11, 6, "w500ms" }, - { 12, 3, "w1s" }, - { 13, 3, "w2s" }, - { 14, 3, "w5s" }, - { 15, 4, "w10s" }, - { 16, 4, "w20s" }, - { 17, 4, "w60s" } + { 0, 4, "w1ms" }, + { 1, 4, "w2ms" }, + { 2, 4, "w5ms" }, + { 3, 5, "w10ms" }, + { 4, 5, "w20ms" }, + { 5, 5, "w30ms" }, + { 6, 5, "w40ms" }, + { 7, 5, "w50ms" }, + { 8, 6, "w100ms" }, + { 9, 6, "w200ms" }, + { 10, 6, "w500ms" }, + { 11, 3, "w1s" }, + { 12, 3, "w2s" }, + { 13, 3, "w5s" }, + { 14, 4, "w10s" }, + { 15, 4, "w20s" }, + { 16, 4, "w60s" } /* This list is extensible */ }; static const unsigned int asn_MAP_RICtimeToWait_enum2value_1[] = { - 9, /* w100ms(9) */ - 4, /* w10ms(4) */ - 15, /* w10s(15) */ - 1, /* w1ms(1) */ - 12, /* w1s(12) */ - 10, /* w200ms(10) */ - 5, /* w20ms(5) */ - 16, /* w20s(16) */ - 2, /* w2ms(2) */ - 13, /* w2s(13) */ - 6, /* w30ms(6) */ - 7, /* w40ms(7) */ - 11, /* w500ms(11) */ - 8, /* w50ms(8) */ - 3, /* w5ms(3) */ - 14, /* w5s(14) */ - 17, /* w60s(17) */ - 0 /* zero(0) */ + 8, /* w100ms(8) */ + 3, /* w10ms(3) */ + 14, /* w10s(14) */ + 0, /* w1ms(0) */ + 11, /* w1s(11) */ + 9, /* w200ms(9) */ + 4, /* w20ms(4) */ + 15, /* w20s(15) */ + 1, /* w2ms(1) */ + 12, /* w2s(12) */ + 5, /* w30ms(5) */ + 6, /* w40ms(6) */ + 10, /* w500ms(10) */ + 7, /* w50ms(7) */ + 2, /* w5ms(2) */ + 13, /* w5s(13) */ + 16 /* w60s(16) */ /* This list is extensible */ }; const asn_INTEGER_specifics_t asn_SPC_RICtimeToWait_specs_1 = { asn_MAP_RICtimeToWait_value2enum_1, /* "tag" => N; sorted by tag */ asn_MAP_RICtimeToWait_enum2value_1, /* N => "tag"; sorted by N */ - 18, /* Number of elements in the maps */ - 19, /* Extensions before this member */ + 17, /* Number of elements in the maps */ + 18, /* Extensions before this member */ 1, /* Strict enumeration */ 0, /* Native long size */ 0 @@ -80,7 +81,7 @@ asn_TYPE_descriptor_t asn_DEF_RICtimeToWait = { asn_DEF_RICtimeToWait_tags_1, /* Same as above */ sizeof(asn_DEF_RICtimeToWait_tags_1) /sizeof(asn_DEF_RICtimeToWait_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_RICtimeToWait_constr_1, NativeEnumerated_constraint }, + { &asn_OER_type_RICtimeToWait_constr_1, &asn_PER_type_RICtimeToWait_constr_1, NativeEnumerated_constraint }, 0, 0, /* Defined elsewhere */ &asn_SPC_RICtimeToWait_specs_1 /* Additional specs */ }; diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICtimeToWait.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICtimeToWait.h index 5b1bc8f..840bc00 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICtimeToWait.h +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/RICtimeToWait.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #ifndef _RICtimeToWait_H_ @@ -20,24 +20,23 @@ extern "C" { /* Dependencies */ typedef enum RICtimeToWait { - RICtimeToWait_zero = 0, - RICtimeToWait_w1ms = 1, - RICtimeToWait_w2ms = 2, - RICtimeToWait_w5ms = 3, - RICtimeToWait_w10ms = 4, - RICtimeToWait_w20ms = 5, - RICtimeToWait_w30ms = 6, - RICtimeToWait_w40ms = 7, - RICtimeToWait_w50ms = 8, - RICtimeToWait_w100ms = 9, - RICtimeToWait_w200ms = 10, - RICtimeToWait_w500ms = 11, - RICtimeToWait_w1s = 12, - RICtimeToWait_w2s = 13, - RICtimeToWait_w5s = 14, - RICtimeToWait_w10s = 15, - RICtimeToWait_w20s = 16, - RICtimeToWait_w60s = 17 + RICtimeToWait_w1ms = 0, + RICtimeToWait_w2ms = 1, + RICtimeToWait_w5ms = 2, + RICtimeToWait_w10ms = 3, + RICtimeToWait_w20ms = 4, + RICtimeToWait_w30ms = 5, + RICtimeToWait_w40ms = 6, + RICtimeToWait_w50ms = 7, + RICtimeToWait_w100ms = 8, + RICtimeToWait_w200ms = 9, + RICtimeToWait_w500ms = 10, + RICtimeToWait_w1s = 11, + RICtimeToWait_w2s = 12, + RICtimeToWait_w5s = 13, + RICtimeToWait_w10s = 14, + RICtimeToWait_w20s = 15, + RICtimeToWait_w60s = 16 /* * Enumeration is extensible */ @@ -57,6 +56,8 @@ ber_type_decoder_f RICtimeToWait_decode_ber; der_type_encoder_f RICtimeToWait_encode_der; xer_type_decoder_f RICtimeToWait_decode_xer; xer_type_encoder_f RICtimeToWait_encode_xer; +oer_type_decoder_f RICtimeToWait_decode_oer; +oer_type_encoder_f RICtimeToWait_encode_oer; per_type_decoder_f RICtimeToWait_decode_uper; per_type_encoder_f RICtimeToWait_encode_uper; per_type_decoder_f RICtimeToWait_decode_aper; diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ResetRequest.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ResetRequest.c index b4ab9eb..c5b85be 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ResetRequest.c +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ResetRequest.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #include "ResetRequest.h" @@ -11,7 +11,7 @@ asn_TYPE_member_t asn_MBR_ResetRequest_1[] = { { ATF_NOFLAGS, 0, offsetof(struct ResetRequest, protocolIEs), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_226P20, + &asn_DEF_ProtocolIE_Container_1917P21, 0, { 0, 0, 0 }, 0, 0, /* No default value */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ResetRequest.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ResetRequest.h index 8cfbabd..0299fa9 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ResetRequest.h +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ResetRequest.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #ifndef _ResetRequest_H_ @@ -21,7 +21,7 @@ extern "C" { /* ResetRequest */ typedef struct ResetRequest { - ProtocolIE_Container_226P20_t protocolIEs; + ProtocolIE_Container_1917P21_t protocolIEs; /* * This type is extensible, * possible extensions are below. diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ResetResponse.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ResetResponse.c index d483846..a969a9c 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ResetResponse.c +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ResetResponse.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #include "ResetResponse.h" @@ -11,7 +11,7 @@ asn_TYPE_member_t asn_MBR_ResetResponse_1[] = { { ATF_NOFLAGS, 0, offsetof(struct ResetResponse, protocolIEs), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_226P21, + &asn_DEF_ProtocolIE_Container_1917P22, 0, { 0, 0, 0 }, 0, 0, /* No default value */ diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ResetResponse.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ResetResponse.h index 15f6fb3..ed09c06 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ResetResponse.h +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/ResetResponse.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #ifndef _ResetResponse_H_ @@ -21,7 +21,7 @@ extern "C" { /* ResetResponse */ typedef struct ResetResponse { - ProtocolIE_Container_226P21_t protocolIEs; + ProtocolIE_Container_1917P22_t protocolIEs; /* * This type is extensible, * possible extensions are below. diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/SuccessfulOutcome.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/SuccessfulOutcome.c index fe59400..2992230 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/SuccessfulOutcome.c +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/SuccessfulOutcome.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Descriptions" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #include "SuccessfulOutcome.h" @@ -29,6 +29,8 @@ static const long asn_VAL_10_id_RICserviceQuery = 6; static const long asn_VAL_10_ignore = 1; static const long asn_VAL_11_id_ErrorIndication = 2; static const long asn_VAL_11_ignore = 1; +static const long asn_VAL_12_id_RICsubscriptionDeleteRequired = 12; +static const long asn_VAL_12_ignore = 1; static const asn_ioc_cell_t asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1_rows[] = { { "&InitiatingMessage", aioc__type, &asn_DEF_RICsubscriptionRequest }, { "&SuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionResponse }, @@ -84,10 +86,15 @@ static const asn_ioc_cell_t asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1_rows[] = { { "&SuccessfulOutcome", }, { "&UnsuccessfulOutcome", }, { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_11_id_ErrorIndication }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_11_ignore } + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_11_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_RICsubscriptionDeleteRequired }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_12_id_RICsubscriptionDeleteRequired }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_12_ignore } }; static const asn_ioc_set_t asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1[] = { - { 11, 5, asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1_rows } + { 12, 5, asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1_rows } }; static int memb_procedureCode_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, @@ -206,16 +213,25 @@ memb_value_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); } +static asn_oer_constraints_t asn_OER_memb_procedureCode_constr_2 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; static asn_per_constraints_t asn_PER_memb_procedureCode_constr_2 CC_NOTUSED = { { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1}; static asn_per_constraints_t asn_PER_memb_criticality_constr_3 CC_NOTUSED = { { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; +static asn_oer_constraints_t asn_OER_memb_value_constr_4 CC_NOTUSED = { + { 0, 0 }, + -1}; static asn_per_constraints_t asn_PER_memb_value_constr_4 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, @@ -336,7 +352,7 @@ asn_TYPE_member_t asn_MBR_SuccessfulOutcome_1[] = { -1, /* IMPLICIT tag at current level */ &asn_DEF_ProcedureCode, 0, - { 0, &asn_PER_memb_procedureCode_constr_2, memb_procedureCode_constraint_1 }, + { &asn_OER_memb_procedureCode_constr_2, &asn_PER_memb_procedureCode_constr_2, memb_procedureCode_constraint_1 }, 0, 0, /* No default value */ "procedureCode" }, @@ -345,7 +361,7 @@ asn_TYPE_member_t asn_MBR_SuccessfulOutcome_1[] = { -1, /* IMPLICIT tag at current level */ &asn_DEF_Criticality, select_SuccessfulOutcome_criticality_type, - { 0, &asn_PER_memb_criticality_constr_3, memb_criticality_constraint_1 }, + { &asn_OER_memb_criticality_constr_3, &asn_PER_memb_criticality_constr_3, memb_criticality_constraint_1 }, 0, 0, /* No default value */ "criticality" }, @@ -354,7 +370,7 @@ asn_TYPE_member_t asn_MBR_SuccessfulOutcome_1[] = { +1, /* EXPLICIT tag at current level */ &asn_DEF_value_4, select_SuccessfulOutcome_value_type, - { 0, &asn_PER_memb_value_constr_4, memb_value_constraint_1 }, + { &asn_OER_memb_value_constr_4, &asn_PER_memb_value_constr_4, memb_value_constraint_1 }, 0, 0, /* No default value */ "value" }, diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/SuccessfulOutcome.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/SuccessfulOutcome.h index fd1f423..4798fa0 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/SuccessfulOutcome.h +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/SuccessfulOutcome.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Descriptions" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #ifndef _SuccessfulOutcome_H_ @@ -42,6 +42,7 @@ #include "RICindication.h" #include "RICserviceQuery.h" #include "ErrorIndication.h" +#include "RICsubscriptionDeleteRequired.h" #include "OPEN_TYPE.h" #include "constr_CHOICE.h" #include "constr_SEQUENCE.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/TNLinformation.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/TNLinformation.c index 799c22c..0c37796 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/TNLinformation.c +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/TNLinformation.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #include "TNLinformation.h" @@ -69,11 +69,17 @@ memb_tnlPort_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, } } +static asn_oer_constraints_t asn_OER_memb_tnlAddress_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..MAX)) */}; static asn_per_constraints_t asn_PER_memb_tnlAddress_constr_2 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED | APC_EXTENSIBLE, 8, 8, 1, 160 } /* (SIZE(1..160,...)) */, 0, 0 /* No PER value map */ }; +static asn_oer_constraints_t asn_OER_memb_tnlPort_constr_3 CC_NOTUSED = { + { 0, 0 }, + 16 /* (SIZE(16..16)) */}; static asn_per_constraints_t asn_PER_memb_tnlPort_constr_3 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 0, 0, 16, 16 } /* (SIZE(16..16)) */, @@ -85,7 +91,7 @@ asn_TYPE_member_t asn_MBR_TNLinformation_1[] = { -1, /* IMPLICIT tag at current level */ &asn_DEF_BIT_STRING, 0, - { 0, &asn_PER_memb_tnlAddress_constr_2, memb_tnlAddress_constraint_1 }, + { &asn_OER_memb_tnlAddress_constr_2, &asn_PER_memb_tnlAddress_constr_2, memb_tnlAddress_constraint_1 }, 0, 0, /* No default value */ "tnlAddress" }, @@ -94,7 +100,7 @@ asn_TYPE_member_t asn_MBR_TNLinformation_1[] = { -1, /* IMPLICIT tag at current level */ &asn_DEF_BIT_STRING, 0, - { 0, &asn_PER_memb_tnlPort_constr_3, memb_tnlPort_constraint_1 }, + { &asn_OER_memb_tnlPort_constr_3, &asn_PER_memb_tnlPort_constr_3, memb_tnlPort_constraint_1 }, 0, 0, /* No default value */ "tnlPort" }, diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/TNLinformation.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/TNLinformation.h index eccde1b..cbb3c46 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/TNLinformation.h +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/TNLinformation.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #ifndef _TNLinformation_H_ diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/TNLusage.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/TNLusage.c index 94fbd4c..8c0ce3a 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/TNLusage.c +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/TNLusage.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #include "TNLusage.h" @@ -11,6 +11,9 @@ * This type is implemented using NativeEnumerated, * so here we adjust the DEF accordingly. */ +static asn_oer_constraints_t asn_OER_type_TNLusage_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; asn_per_constraints_t asn_PER_type_TNLusage_constr_1 CC_NOTUSED = { { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 2 } /* (0..2,...) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, @@ -50,7 +53,7 @@ asn_TYPE_descriptor_t asn_DEF_TNLusage = { asn_DEF_TNLusage_tags_1, /* Same as above */ sizeof(asn_DEF_TNLusage_tags_1) /sizeof(asn_DEF_TNLusage_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_TNLusage_constr_1, NativeEnumerated_constraint }, + { &asn_OER_type_TNLusage_constr_1, &asn_PER_type_TNLusage_constr_1, NativeEnumerated_constraint }, 0, 0, /* Defined elsewhere */ &asn_SPC_TNLusage_specs_1 /* Additional specs */ }; diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/TNLusage.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/TNLusage.h index 63abe96..30b0aee 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/TNLusage.h +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/TNLusage.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #ifndef _TNLusage_H_ @@ -42,6 +42,8 @@ ber_type_decoder_f TNLusage_decode_ber; der_type_encoder_f TNLusage_encode_der; xer_type_decoder_f TNLusage_decode_xer; xer_type_encoder_f TNLusage_encode_xer; +oer_type_decoder_f TNLusage_decode_oer; +oer_type_encoder_f TNLusage_encode_oer; per_type_decoder_f TNLusage_decode_uper; per_type_encoder_f TNLusage_encode_uper; per_type_decoder_f TNLusage_decode_aper; diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/TimeToWait.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/TimeToWait.c index fcddc44..4c5ec81 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/TimeToWait.c +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/TimeToWait.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #include "TimeToWait.h" @@ -11,7 +11,10 @@ * This type is implemented using NativeEnumerated, * so here we adjust the DEF accordingly. */ -asn_per_constraints_t asn_PER_type_TimeToWait_constr_1 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_type_TimeToWait_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_TimeToWait_constr_1 CC_NOTUSED = { { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 5 } /* (0..5,...) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ @@ -34,7 +37,7 @@ static const unsigned int asn_MAP_TimeToWait_enum2value_1[] = { 5 /* v60s(5) */ /* This list is extensible */ }; -const asn_INTEGER_specifics_t asn_SPC_TimeToWait_specs_1 = { +static const asn_INTEGER_specifics_t asn_SPC_TimeToWait_specs_1 = { asn_MAP_TimeToWait_value2enum_1, /* "tag" => N; sorted by tag */ asn_MAP_TimeToWait_enum2value_1, /* N => "tag"; sorted by N */ 6, /* Number of elements in the maps */ @@ -56,7 +59,7 @@ asn_TYPE_descriptor_t asn_DEF_TimeToWait = { asn_DEF_TimeToWait_tags_1, /* Same as above */ sizeof(asn_DEF_TimeToWait_tags_1) /sizeof(asn_DEF_TimeToWait_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_TimeToWait_constr_1, NativeEnumerated_constraint }, + { &asn_OER_type_TimeToWait_constr_1, &asn_PER_type_TimeToWait_constr_1, NativeEnumerated_constraint }, 0, 0, /* Defined elsewhere */ &asn_SPC_TimeToWait_specs_1 /* Additional specs */ }; diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/TimeToWait.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/TimeToWait.h index bc8a935..69793d7 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/TimeToWait.h +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/TimeToWait.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #ifndef _TimeToWait_H_ @@ -35,9 +35,7 @@ typedef enum TimeToWait { typedef long TimeToWait_t; /* Implementation */ -extern asn_per_constraints_t asn_PER_type_TimeToWait_constr_1; extern asn_TYPE_descriptor_t asn_DEF_TimeToWait; -extern const asn_INTEGER_specifics_t asn_SPC_TimeToWait_specs_1; asn_struct_free_f TimeToWait_free; asn_struct_print_f TimeToWait_print; asn_constr_check_f TimeToWait_constraint; @@ -45,6 +43,8 @@ ber_type_decoder_f TimeToWait_decode_ber; der_type_encoder_f TimeToWait_encode_der; xer_type_decoder_f TimeToWait_decode_xer; xer_type_encoder_f TimeToWait_encode_xer; +oer_type_decoder_f TimeToWait_decode_oer; +oer_type_encoder_f TimeToWait_encode_oer; per_type_decoder_f TimeToWait_decode_uper; per_type_encoder_f TimeToWait_encode_uper; per_type_decoder_f TimeToWait_decode_aper; diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/TransactionID.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/TransactionID.c new file mode 100644 index 0000000..b6c2c44 --- /dev/null +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/TransactionID.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` + */ + +#include "TransactionID.h" + +int +TransactionID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_TransactionID_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_TransactionID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 8, 8, 0, 255 } /* (0..255,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_TransactionID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TransactionID = { + "TransactionID", + "TransactionID", + &asn_OP_NativeInteger, + asn_DEF_TransactionID_tags_1, + sizeof(asn_DEF_TransactionID_tags_1) + /sizeof(asn_DEF_TransactionID_tags_1[0]), /* 1 */ + asn_DEF_TransactionID_tags_1, /* Same as above */ + sizeof(asn_DEF_TransactionID_tags_1) + /sizeof(asn_DEF_TransactionID_tags_1[0]), /* 1 */ + { &asn_OER_type_TransactionID_constr_1, &asn_PER_type_TransactionID_constr_1, TransactionID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/TransactionID.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/TransactionID.h new file mode 100644 index 0000000..bcfd5b8 --- /dev/null +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/TransactionID.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` + */ + +#ifndef _TransactionID_H_ +#define _TransactionID_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* TransactionID */ +typedef long TransactionID_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_TransactionID; +asn_struct_free_f TransactionID_free; +asn_struct_print_f TransactionID_print; +asn_constr_check_f TransactionID_constraint; +ber_type_decoder_f TransactionID_decode_ber; +der_type_encoder_f TransactionID_encode_der; +xer_type_decoder_f TransactionID_decode_xer; +xer_type_encoder_f TransactionID_encode_xer; +oer_type_decoder_f TransactionID_decode_oer; +oer_type_encoder_f TransactionID_encode_oer; +per_type_decoder_f TransactionID_decode_uper; +per_type_encoder_f TransactionID_encode_uper; +per_type_decoder_f TransactionID_decode_aper; +per_type_encoder_f TransactionID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TransactionID_H_ */ +#include "asn_internal.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/TriggeringMessage.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/TriggeringMessage.c index 3f44842..9f286d1 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/TriggeringMessage.c +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/TriggeringMessage.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-CommonDataTypes" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #include "TriggeringMessage.h" @@ -11,6 +11,9 @@ * This type is implemented using NativeEnumerated, * so here we adjust the DEF accordingly. */ +static asn_oer_constraints_t asn_OER_type_TriggeringMessage_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; asn_per_constraints_t asn_PER_type_TriggeringMessage_constr_1 CC_NOTUSED = { { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, @@ -48,7 +51,7 @@ asn_TYPE_descriptor_t asn_DEF_TriggeringMessage = { asn_DEF_TriggeringMessage_tags_1, /* Same as above */ sizeof(asn_DEF_TriggeringMessage_tags_1) /sizeof(asn_DEF_TriggeringMessage_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_TriggeringMessage_constr_1, NativeEnumerated_constraint }, + { &asn_OER_type_TriggeringMessage_constr_1, &asn_PER_type_TriggeringMessage_constr_1, NativeEnumerated_constraint }, 0, 0, /* Defined elsewhere */ &asn_SPC_TriggeringMessage_specs_1 /* Additional specs */ }; diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/TriggeringMessage.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/TriggeringMessage.h index f92107f..b614674 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/TriggeringMessage.h +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/TriggeringMessage.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-CommonDataTypes" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #ifndef _TriggeringMessage_H_ @@ -39,6 +39,8 @@ ber_type_decoder_f TriggeringMessage_decode_ber; der_type_encoder_f TriggeringMessage_encode_der; xer_type_decoder_f TriggeringMessage_decode_xer; xer_type_encoder_f TriggeringMessage_encode_xer; +oer_type_decoder_f TriggeringMessage_decode_oer; +oer_type_encoder_f TriggeringMessage_encode_oer; per_type_decoder_f TriggeringMessage_decode_uper; per_type_encoder_f TriggeringMessage_encode_uper; per_type_decoder_f TriggeringMessage_decode_aper; diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/TypeOfError.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/TypeOfError.c index 35cab04..ea504c9 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/TypeOfError.c +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/TypeOfError.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #include "TypeOfError.h" @@ -11,6 +11,9 @@ * This type is implemented using NativeEnumerated, * so here we adjust the DEF accordingly. */ +static asn_oer_constraints_t asn_OER_type_TypeOfError_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; asn_per_constraints_t asn_PER_type_TypeOfError_constr_1 CC_NOTUSED = { { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, @@ -48,7 +51,7 @@ asn_TYPE_descriptor_t asn_DEF_TypeOfError = { asn_DEF_TypeOfError_tags_1, /* Same as above */ sizeof(asn_DEF_TypeOfError_tags_1) /sizeof(asn_DEF_TypeOfError_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_TypeOfError_constr_1, NativeEnumerated_constraint }, + { &asn_OER_type_TypeOfError_constr_1, &asn_PER_type_TypeOfError_constr_1, NativeEnumerated_constraint }, 0, 0, /* Defined elsewhere */ &asn_SPC_TypeOfError_specs_1 /* Additional specs */ }; diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/TypeOfError.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/TypeOfError.h index 4481028..51c08b9 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/TypeOfError.h +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/TypeOfError.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #ifndef _TypeOfError_H_ @@ -41,6 +41,8 @@ ber_type_decoder_f TypeOfError_decode_ber; der_type_encoder_f TypeOfError_encode_der; xer_type_decoder_f TypeOfError_decode_xer; xer_type_encoder_f TypeOfError_encode_xer; +oer_type_decoder_f TypeOfError_decode_oer; +oer_type_encoder_f TypeOfError_encode_oer; per_type_decoder_f TypeOfError_decode_uper; per_type_encoder_f TypeOfError_encode_uper; per_type_decoder_f TypeOfError_decode_aper; diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/UnsuccessfulOutcome.c b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/UnsuccessfulOutcome.c index bf5905c..1a41540 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/UnsuccessfulOutcome.c +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/UnsuccessfulOutcome.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Descriptions" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #include "UnsuccessfulOutcome.h" @@ -29,6 +29,8 @@ static const long asn_VAL_10_id_RICserviceQuery = 6; static const long asn_VAL_10_ignore = 1; static const long asn_VAL_11_id_ErrorIndication = 2; static const long asn_VAL_11_ignore = 1; +static const long asn_VAL_12_id_RICsubscriptionDeleteRequired = 12; +static const long asn_VAL_12_ignore = 1; static const asn_ioc_cell_t asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1_rows[] = { { "&InitiatingMessage", aioc__type, &asn_DEF_RICsubscriptionRequest }, { "&SuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionResponse }, @@ -84,10 +86,15 @@ static const asn_ioc_cell_t asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1_rows[] = { { "&SuccessfulOutcome", }, { "&UnsuccessfulOutcome", }, { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_11_id_ErrorIndication }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_11_ignore } + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_11_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_RICsubscriptionDeleteRequired }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_12_id_RICsubscriptionDeleteRequired }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_12_ignore } }; static const asn_ioc_set_t asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1[] = { - { 11, 5, asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1_rows } + { 12, 5, asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1_rows } }; static int memb_procedureCode_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, @@ -206,16 +213,25 @@ memb_value_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); } +static asn_oer_constraints_t asn_OER_memb_procedureCode_constr_2 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; static asn_per_constraints_t asn_PER_memb_procedureCode_constr_2 CC_NOTUSED = { { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1}; static asn_per_constraints_t asn_PER_memb_criticality_constr_3 CC_NOTUSED = { { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; +static asn_oer_constraints_t asn_OER_memb_value_constr_4 CC_NOTUSED = { + { 0, 0 }, + -1}; static asn_per_constraints_t asn_PER_memb_value_constr_4 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, @@ -326,7 +342,7 @@ asn_TYPE_member_t asn_MBR_UnsuccessfulOutcome_1[] = { -1, /* IMPLICIT tag at current level */ &asn_DEF_ProcedureCode, 0, - { 0, &asn_PER_memb_procedureCode_constr_2, memb_procedureCode_constraint_1 }, + { &asn_OER_memb_procedureCode_constr_2, &asn_PER_memb_procedureCode_constr_2, memb_procedureCode_constraint_1 }, 0, 0, /* No default value */ "procedureCode" }, @@ -335,7 +351,7 @@ asn_TYPE_member_t asn_MBR_UnsuccessfulOutcome_1[] = { -1, /* IMPLICIT tag at current level */ &asn_DEF_Criticality, select_UnsuccessfulOutcome_criticality_type, - { 0, &asn_PER_memb_criticality_constr_3, memb_criticality_constraint_1 }, + { &asn_OER_memb_criticality_constr_3, &asn_PER_memb_criticality_constr_3, memb_criticality_constraint_1 }, 0, 0, /* No default value */ "criticality" }, @@ -344,7 +360,7 @@ asn_TYPE_member_t asn_MBR_UnsuccessfulOutcome_1[] = { +1, /* EXPLICIT tag at current level */ &asn_DEF_value_4, select_UnsuccessfulOutcome_value_type, - { 0, &asn_PER_memb_value_constr_4, memb_value_constraint_1 }, + { &asn_OER_memb_value_constr_4, &asn_PER_memb_value_constr_4, memb_value_constraint_1 }, 0, 0, /* No default value */ "value" }, diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/UnsuccessfulOutcome.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/UnsuccessfulOutcome.h index 2a37e89..2001573 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/UnsuccessfulOutcome.h +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/UnsuccessfulOutcome.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Descriptions" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example` */ #ifndef _UnsuccessfulOutcome_H_ @@ -42,6 +42,7 @@ #include "RICindication.h" #include "RICserviceQuery.h" #include "ErrorIndication.h" +#include "RICsubscriptionDeleteRequired.h" #include "OPEN_TYPE.h" #include "constr_CHOICE.h" #include "constr_SEQUENCE.h" diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/asn_constant.h b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/asn_constant.h index 308038d..b850c56 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/asn_constant.h +++ b/e2sim/e2sm_examples/kpm_e2sm/src/ASN1c/asn_constant.h @@ -15,6 +15,7 @@ extern "C" { #define maxofRANfunctionID (256) #define maxofRICactionID (16) #define maxofTNLA (32) +#define maxofRICrequestID (4294967295) #ifdef __cplusplus diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/kpm/CMakeLists.txt b/e2sim/e2sm_examples/kpm_e2sm/src/kpm/CMakeLists.txt index f7df757..263d98c 100644 --- a/e2sim/e2sm_examples/kpm_e2sm/src/kpm/CMakeLists.txt +++ b/e2sim/e2sm_examples/kpm_e2sm/src/kpm/CMakeLists.txt @@ -27,6 +27,7 @@ target_link_libraries( kpm_sim asn1_objects ) target_link_libraries( kpm_sim e2sim ) target_link_libraries( kpm_sim asn1_objects ) target_link_libraries( kpm_sim pthread) +#target_link_libraries( kpm_sim /usr/local/lib/libe2sim.a) install( TARGETS kpm_sim diff --git a/e2sim/files.txt b/e2sim/files.txt new file mode 100644 index 0000000..e5015f9 --- /dev/null +++ b/e2sim/files.txt @@ -0,0 +1,258 @@ +Cause.c +Cause.h +CauseMisc.c +CauseMisc.h +CauseProtocol.c +CauseProtocol.h +CauseRIC.c +CauseRIC.h +CauseRICservice.c +CauseRICservice.h +CauseTransport.c +CauseTransport.h +Criticality.c +Criticality.h +CriticalityDiagnostics-IE-Item.c +CriticalityDiagnostics-IE-Item.h +CriticalityDiagnostics-IE-List.c +CriticalityDiagnostics-IE-List.h +CriticalityDiagnostics.c +CriticalityDiagnostics.h +E2AP-PDU.c +E2AP-PDU.h +E2connectionSetupFailed-Item.c +E2connectionSetupFailed-Item.h +E2connectionSetupFailed-List.c +E2connectionSetupFailed-List.h +E2connectionUpdate-Item.c +E2connectionUpdate-Item.h +E2connectionUpdate-List.c +E2connectionUpdate-List.h +E2connectionUpdate.c +E2connectionUpdate.h +E2connectionUpdateAcknowledge.c +E2connectionUpdateAcknowledge.h +E2connectionUpdateFailure.c +E2connectionUpdateFailure.h +E2connectionUpdateRemove-Item.c +E2connectionUpdateRemove-Item.h +E2connectionUpdateRemove-List.c +E2connectionUpdateRemove-List.h +E2nodeComponentConfigUpdate-Item.c +E2nodeComponentConfigUpdate-Item.h +E2nodeComponentConfigUpdate-List.c +E2nodeComponentConfigUpdate-List.h +E2nodeComponentConfigUpdate.c +E2nodeComponentConfigUpdate.h +E2nodeComponentConfigUpdateAck-Item.c +E2nodeComponentConfigUpdateAck-Item.h +E2nodeComponentConfigUpdateAck-List.c +E2nodeComponentConfigUpdateAck-List.h +E2nodeComponentConfigUpdateAck.c +E2nodeComponentConfigUpdateAck.h +E2nodeComponentConfigUpdateENB.c +E2nodeComponentConfigUpdateENB.h +E2nodeComponentConfigUpdateENgNB.c +E2nodeComponentConfigUpdateENgNB.h +E2nodeComponentConfigUpdateGNB.c +E2nodeComponentConfigUpdateGNB.h +E2nodeComponentConfigUpdateNGeNB.c +E2nodeComponentConfigUpdateNGeNB.h +E2nodeComponentGNB-CU-UP-ID.c +E2nodeComponentGNB-CU-UP-ID.h +E2nodeComponentGNB-DU-ID.c +E2nodeComponentGNB-DU-ID.h +E2nodeComponentID.c +E2nodeComponentID.h +E2nodeComponentType.c +E2nodeComponentType.h +E2nodeConfigurationUpdate.c +E2nodeConfigurationUpdate.h +E2nodeConfigurationUpdateAcknowledge.c +E2nodeConfigurationUpdateAcknowledge.h +E2nodeConfigurationUpdateFailure.c +E2nodeConfigurationUpdateFailure.h +E2setupFailure.c +E2setupFailure.h +E2setupRequest.c +E2setupRequest.h +E2setupResponse.c +E2setupResponse.h +ENB-ID-Choice.c +ENB-ID-Choice.h +ENB-ID.c +ENB-ID.h +ENGNB-ID.c +ENGNB-ID.h +ErrorIndication.c +ErrorIndication.h +GNB-CU-UP-ID.c +GNB-CU-UP-ID.h +GNB-DU-ID.c +GNB-DU-ID.h +GNB-ID-Choice.c +GNB-ID-Choice.h +GlobalE2node-ID.c +GlobalE2node-ID.h +GlobalE2node-eNB-ID.c +GlobalE2node-eNB-ID.h +GlobalE2node-en-gNB-ID.c +GlobalE2node-en-gNB-ID.h +GlobalE2node-gNB-ID.c +GlobalE2node-gNB-ID.h +GlobalE2node-ng-eNB-ID.c +GlobalE2node-ng-eNB-ID.h +GlobalENB-ID.c +GlobalENB-ID.h +GlobalRIC-ID.c +GlobalRIC-ID.h +GlobalenGNB-ID.c +GlobalenGNB-ID.h +GlobalgNB-ID.c +GlobalgNB-ID.h +GlobalngeNB-ID.c +GlobalngeNB-ID.h +InitiatingMessage.c +InitiatingMessage.h +Makefile.am.libasncodec +PLMN-Identity.c +PLMN-Identity.h +Presence.c +Presence.h +ProcedureCode.c +ProcedureCode.h +ProtocolIE-Container.c +ProtocolIE-Container.h +ProtocolIE-ContainerList.c +ProtocolIE-ContainerList.h +ProtocolIE-ContainerPair.c +ProtocolIE-ContainerPair.h +ProtocolIE-ContainerPairList.c +ProtocolIE-ContainerPairList.h +ProtocolIE-Field.c +ProtocolIE-Field.h +ProtocolIE-FieldPair.c +ProtocolIE-FieldPair.h +ProtocolIE-ID.c +ProtocolIE-ID.h +ProtocolIE-SingleContainer.c +ProtocolIE-SingleContainer.h +RANfunction-Item.c +RANfunction-Item.h +RANfunctionDefinition.c +RANfunctionDefinition.h +RANfunctionID-Item.c +RANfunctionID-Item.h +RANfunctionID.c +RANfunctionID.h +RANfunctionIDcause-Item.c +RANfunctionIDcause-Item.h +RANfunctionOID.c +RANfunctionOID.h +RANfunctionRevision.c +RANfunctionRevision.h +RANfunctions-List.c +RANfunctions-List.h +RANfunctionsID-List.c +RANfunctionsID-List.h +RANfunctionsIDcause-List.c +RANfunctionsIDcause-List.h +RICaction-Admitted-Item.c +RICaction-Admitted-Item.h +RICaction-Admitted-List.c +RICaction-Admitted-List.h +RICaction-NotAdmitted-Item.c +RICaction-NotAdmitted-Item.h +RICaction-NotAdmitted-List.c +RICaction-NotAdmitted-List.h +RICaction-ToBeSetup-Item.c +RICaction-ToBeSetup-Item.h +RICactionDefinition.c +RICactionDefinition.h +RICactionID.c +RICactionID.h +RICactionType.c +RICactionType.h +RICactions-ToBeSetup-List.c +RICactions-ToBeSetup-List.h +RICcallProcessID.c +RICcallProcessID.h +RICcontrolAckRequest.c +RICcontrolAckRequest.h +RICcontrolAcknowledge.c +RICcontrolAcknowledge.h +RICcontrolFailure.c +RICcontrolFailure.h +RICcontrolHeader.c +RICcontrolHeader.h +RICcontrolMessage.c +RICcontrolMessage.h +RICcontrolOutcome.c +RICcontrolOutcome.h +RICcontrolRequest.c +RICcontrolRequest.h +RICcontrolStatus.c +RICcontrolStatus.h +RICeventTriggerDefinition.c +RICeventTriggerDefinition.h +RICindication.c +RICindication.h +RICindicationHeader.c +RICindicationHeader.h +RICindicationMessage.c +RICindicationMessage.h +RICindicationSN.c +RICindicationSN.h +RICindicationType.c +RICindicationType.h +RICrequestID.c +RICrequestID.h +RICserviceQuery.c +RICserviceQuery.h +RICserviceUpdate.c +RICserviceUpdate.h +RICserviceUpdateAcknowledge.c +RICserviceUpdateAcknowledge.h +RICserviceUpdateFailure.c +RICserviceUpdateFailure.h +RICsubscriptionDeleteFailure.c +RICsubscriptionDeleteFailure.h +RICsubscriptionDeleteRequest.c +RICsubscriptionDeleteRequest.h +RICsubscriptionDeleteResponse.c +RICsubscriptionDeleteResponse.h +RICsubscriptionDetails.c +RICsubscriptionDetails.h +RICsubscriptionFailure.c +RICsubscriptionFailure.h +RICsubscriptionRequest.c +RICsubscriptionRequest.h +RICsubscriptionResponse.c +RICsubscriptionResponse.h +RICsubsequentAction.c +RICsubsequentAction.h +RICsubsequentActionType.c +RICsubsequentActionType.h +RICtimeToWait.c +RICtimeToWait.h +ResetRequest.c +ResetRequest.h +ResetResponse.c +ResetResponse.h +SuccessfulOutcome.c +SuccessfulOutcome.h +TNLinformation.c +TNLinformation.h +TNLusage.c +TNLusage.h +TimeToWait.c +TimeToWait.h +TriggeringMessage.c +TriggeringMessage.h +TypeOfError.c +TypeOfError.h +UnsuccessfulOutcome.c +UnsuccessfulOutcome.h +asn_constant.h +asn_internal.c +per_support.c diff --git a/e2sim/previous/ASN1c/ABS-Status.c b/e2sim/previous/ASN1c/ABS-Status.c deleted file mode 100644 index b41a7ab..0000000 --- a/e2sim/previous/ASN1c/ABS-Status.c +++ /dev/null @@ -1,91 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "ABS-Status.h" - -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_ABS_Status_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct ABS_Status, dL_ABS_status), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_DL_ABS_status, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "dL-ABS-status" - }, - { ATF_NOFLAGS, 0, offsetof(struct ABS_Status, usableABSInformation), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_UsableABSInformation, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "usableABSInformation" - }, - { ATF_POINTER, 1, offsetof(struct ABS_Status, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P106, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_ABS_Status_oms_1[] = { 2 }; -static const ber_tlv_tag_t asn_DEF_ABS_Status_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ABS_Status_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* dL-ABS-status */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* usableABSInformation */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ABS_Status_specs_1 = { - sizeof(struct ABS_Status), - offsetof(struct ABS_Status, _asn_ctx), - asn_MAP_ABS_Status_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_ABS_Status_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ABS_Status = { - "ABS-Status", - "ABS-Status", - &asn_OP_SEQUENCE, - asn_DEF_ABS_Status_tags_1, - sizeof(asn_DEF_ABS_Status_tags_1) - /sizeof(asn_DEF_ABS_Status_tags_1[0]), /* 1 */ - asn_DEF_ABS_Status_tags_1, /* Same as above */ - sizeof(asn_DEF_ABS_Status_tags_1) - /sizeof(asn_DEF_ABS_Status_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ABS_Status_1, - 3, /* Elements count */ - &asn_SPC_ABS_Status_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/ABS-Status.h b/e2sim/previous/ASN1c/ABS-Status.h deleted file mode 100644 index 55132eb..0000000 --- a/e2sim/previous/ASN1c/ABS-Status.h +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _ABS_Status_H_ -#define _ABS_Status_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "DL-ABS-status.h" -#include "UsableABSInformation.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* ABS-Status */ -typedef struct ABS_Status { - DL_ABS_status_t dL_ABS_status; - UsableABSInformation_t usableABSInformation; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ABS_Status_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ABS_Status; -extern asn_SEQUENCE_specifics_t asn_SPC_ABS_Status_specs_1; -extern asn_TYPE_member_t asn_MBR_ABS_Status_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _ABS_Status_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/ABSInformation.c b/e2sim/previous/ASN1c/ABSInformation.c deleted file mode 100644 index fff56a2..0000000 --- a/e2sim/previous/ASN1c/ABSInformation.c +++ /dev/null @@ -1,92 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "ABSInformation.h" - -#include "ABSInformationFDD.h" -#include "ABSInformationTDD.h" -asn_per_constraints_t asn_PER_type_ABSInformation_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 2 } /* (0..2,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_ABSInformation_1[] = { - { ATF_POINTER, 0, offsetof(struct ABSInformation, choice.fdd), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ABSInformationFDD, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "fdd" - }, - { ATF_POINTER, 0, offsetof(struct ABSInformation, choice.tdd), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ABSInformationTDD, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "tdd" - }, - { ATF_NOFLAGS, 0, offsetof(struct ABSInformation, choice.abs_inactive), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NULL, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "abs-inactive" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_ABSInformation_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* fdd */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* tdd */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* abs-inactive */ -}; -asn_CHOICE_specifics_t asn_SPC_ABSInformation_specs_1 = { - sizeof(struct ABSInformation), - offsetof(struct ABSInformation, _asn_ctx), - offsetof(struct ABSInformation, present), - sizeof(((struct ABSInformation *)0)->present), - asn_MAP_ABSInformation_tag2el_1, - 3, /* Count of tags in the map */ - 0, 0, - 3 /* Extensions start */ -}; -asn_TYPE_descriptor_t asn_DEF_ABSInformation = { - "ABSInformation", - "ABSInformation", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, &asn_PER_type_ABSInformation_constr_1, CHOICE_constraint }, - asn_MBR_ABSInformation_1, - 3, /* Elements count */ - &asn_SPC_ABSInformation_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/ABSInformation.h b/e2sim/previous/ASN1c/ABSInformation.h deleted file mode 100644 index 9861413..0000000 --- a/e2sim/previous/ASN1c/ABSInformation.h +++ /dev/null @@ -1,82 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _ABSInformation_H_ -#define _ABSInformation_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NULL.h" -#include "constr_CHOICE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum ABSInformation_PR { - ABSInformation_PR_NOTHING, /* No components present */ - ABSInformation_PR_fdd, - ABSInformation_PR_tdd, - ABSInformation_PR_abs_inactive - /* Extensions may appear below */ - -} ABSInformation_PR; - -/* Forward declarations */ -struct ABSInformationFDD; -struct ABSInformationTDD; - -/* ABSInformation */ -typedef struct ABSInformation { - ABSInformation_PR present; - union ABSInformation_u { - struct ABSInformationFDD *fdd; - struct ABSInformationTDD *tdd; - NULL_t abs_inactive; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ABSInformation_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ABSInformation; -extern asn_CHOICE_specifics_t asn_SPC_ABSInformation_specs_1; -extern asn_TYPE_member_t asn_MBR_ABSInformation_1[3]; -extern asn_per_constraints_t asn_PER_type_ABSInformation_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _ABSInformation_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/ABSInformationFDD.c b/e2sim/previous/ASN1c/ABSInformationFDD.c deleted file mode 100644 index c00fe77..0000000 --- a/e2sim/previous/ASN1c/ABSInformationFDD.c +++ /dev/null @@ -1,223 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "ABSInformationFDD.h" - -#include "ProtocolExtensionContainer.h" -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -static int -memb_abs_pattern_info_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if(st->size > 0) { - /* Size in bits */ - size = 8 * st->size - (st->bits_unused & 0x07); - } else { - size = 0; - } - - if((size == 40)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_measurement_subset_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if(st->size > 0) { - /* Size in bits */ - size = 8 * st->size - (st->bits_unused & 0x07); - } else { - size = 0; - } - - if((size == 40)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_per_constraints_t asn_PER_type_numberOfCellSpecificAntennaPorts_constr_3 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 2 } /* (0..2,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_abs_pattern_info_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 0, 0, 40, 40 } /* (SIZE(40..40)) */, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_measurement_subset_constr_8 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 0, 0, 40, 40 } /* (SIZE(40..40)) */, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_numberOfCellSpecificAntennaPorts_value2enum_3[] = { - { 0, 3, "one" }, - { 1, 3, "two" }, - { 2, 4, "four" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_numberOfCellSpecificAntennaPorts_enum2value_3[] = { - 2, /* four(2) */ - 0, /* one(0) */ - 1 /* two(1) */ - /* This list is extensible */ -}; -static const asn_INTEGER_specifics_t asn_SPC_numberOfCellSpecificAntennaPorts_specs_3 = { - asn_MAP_numberOfCellSpecificAntennaPorts_value2enum_3, /* "tag" => N; sorted by tag */ - asn_MAP_numberOfCellSpecificAntennaPorts_enum2value_3, /* N => "tag"; sorted by N */ - 3, /* Number of elements in the maps */ - 4, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_numberOfCellSpecificAntennaPorts_tags_3[] = { - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_numberOfCellSpecificAntennaPorts_3 = { - "numberOfCellSpecificAntennaPorts", - "numberOfCellSpecificAntennaPorts", - &asn_OP_NativeEnumerated, - asn_DEF_numberOfCellSpecificAntennaPorts_tags_3, - sizeof(asn_DEF_numberOfCellSpecificAntennaPorts_tags_3) - /sizeof(asn_DEF_numberOfCellSpecificAntennaPorts_tags_3[0]) - 1, /* 1 */ - asn_DEF_numberOfCellSpecificAntennaPorts_tags_3, /* Same as above */ - sizeof(asn_DEF_numberOfCellSpecificAntennaPorts_tags_3) - /sizeof(asn_DEF_numberOfCellSpecificAntennaPorts_tags_3[0]), /* 2 */ - { 0, &asn_PER_type_numberOfCellSpecificAntennaPorts_constr_3, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_numberOfCellSpecificAntennaPorts_specs_3 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ABSInformationFDD_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct ABSInformationFDD, abs_pattern_info), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_BIT_STRING, - 0, - { 0, &asn_PER_memb_abs_pattern_info_constr_2, memb_abs_pattern_info_constraint_1 }, - 0, 0, /* No default value */ - "abs-pattern-info" - }, - { ATF_NOFLAGS, 0, offsetof(struct ABSInformationFDD, numberOfCellSpecificAntennaPorts), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_numberOfCellSpecificAntennaPorts_3, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "numberOfCellSpecificAntennaPorts" - }, - { ATF_NOFLAGS, 0, offsetof(struct ABSInformationFDD, measurement_subset), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_BIT_STRING, - 0, - { 0, &asn_PER_memb_measurement_subset_constr_8, memb_measurement_subset_constraint_1 }, - 0, 0, /* No default value */ - "measurement-subset" - }, - { ATF_POINTER, 1, offsetof(struct ABSInformationFDD, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P104, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_ABSInformationFDD_oms_1[] = { 3 }; -static const ber_tlv_tag_t asn_DEF_ABSInformationFDD_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ABSInformationFDD_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* abs-pattern-info */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* numberOfCellSpecificAntennaPorts */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* measurement-subset */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ABSInformationFDD_specs_1 = { - sizeof(struct ABSInformationFDD), - offsetof(struct ABSInformationFDD, _asn_ctx), - asn_MAP_ABSInformationFDD_tag2el_1, - 4, /* Count of tags in the map */ - asn_MAP_ABSInformationFDD_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 4, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ABSInformationFDD = { - "ABSInformationFDD", - "ABSInformationFDD", - &asn_OP_SEQUENCE, - asn_DEF_ABSInformationFDD_tags_1, - sizeof(asn_DEF_ABSInformationFDD_tags_1) - /sizeof(asn_DEF_ABSInformationFDD_tags_1[0]), /* 1 */ - asn_DEF_ABSInformationFDD_tags_1, /* Same as above */ - sizeof(asn_DEF_ABSInformationFDD_tags_1) - /sizeof(asn_DEF_ABSInformationFDD_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ABSInformationFDD_1, - 4, /* Elements count */ - &asn_SPC_ABSInformationFDD_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/ABSInformationFDD.h b/e2sim/previous/ASN1c/ABSInformationFDD.h deleted file mode 100644 index 496d68b..0000000 --- a/e2sim/previous/ASN1c/ABSInformationFDD.h +++ /dev/null @@ -1,80 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _ABSInformationFDD_H_ -#define _ABSInformationFDD_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "BIT_STRING.h" -#include "NativeEnumerated.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum ABSInformationFDD__numberOfCellSpecificAntennaPorts { - ABSInformationFDD__numberOfCellSpecificAntennaPorts_one = 0, - ABSInformationFDD__numberOfCellSpecificAntennaPorts_two = 1, - ABSInformationFDD__numberOfCellSpecificAntennaPorts_four = 2 - /* - * Enumeration is extensible - */ -} e_ABSInformationFDD__numberOfCellSpecificAntennaPorts; - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* ABSInformationFDD */ -typedef struct ABSInformationFDD { - BIT_STRING_t abs_pattern_info; - long numberOfCellSpecificAntennaPorts; - BIT_STRING_t measurement_subset; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ABSInformationFDD_t; - -/* Implementation */ -/* extern asn_TYPE_descriptor_t asn_DEF_numberOfCellSpecificAntennaPorts_3; // (Use -fall-defs-global to expose) */ -extern asn_TYPE_descriptor_t asn_DEF_ABSInformationFDD; -extern asn_SEQUENCE_specifics_t asn_SPC_ABSInformationFDD_specs_1; -extern asn_TYPE_member_t asn_MBR_ABSInformationFDD_1[4]; - -#ifdef __cplusplus -} -#endif - -#endif /* _ABSInformationFDD_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/ABSInformationTDD.c b/e2sim/previous/ASN1c/ABSInformationTDD.c deleted file mode 100644 index 318d488..0000000 --- a/e2sim/previous/ASN1c/ABSInformationTDD.c +++ /dev/null @@ -1,223 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "ABSInformationTDD.h" - -#include "ProtocolExtensionContainer.h" -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -static int -memb_abs_pattern_info_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if(st->size > 0) { - /* Size in bits */ - size = 8 * st->size - (st->bits_unused & 0x07); - } else { - size = 0; - } - - if((size >= 1 && size <= 70)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_measurement_subset_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if(st->size > 0) { - /* Size in bits */ - size = 8 * st->size - (st->bits_unused & 0x07); - } else { - size = 0; - } - - if((size >= 1 && size <= 70)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_per_constraints_t asn_PER_type_numberOfCellSpecificAntennaPorts_constr_3 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 2 } /* (0..2,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_abs_pattern_info_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED | APC_EXTENSIBLE, 7, 7, 1, 70 } /* (SIZE(1..70,...)) */, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_measurement_subset_constr_8 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED | APC_EXTENSIBLE, 7, 7, 1, 70 } /* (SIZE(1..70,...)) */, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_numberOfCellSpecificAntennaPorts_value2enum_3[] = { - { 0, 3, "one" }, - { 1, 3, "two" }, - { 2, 4, "four" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_numberOfCellSpecificAntennaPorts_enum2value_3[] = { - 2, /* four(2) */ - 0, /* one(0) */ - 1 /* two(1) */ - /* This list is extensible */ -}; -static const asn_INTEGER_specifics_t asn_SPC_numberOfCellSpecificAntennaPorts_specs_3 = { - asn_MAP_numberOfCellSpecificAntennaPorts_value2enum_3, /* "tag" => N; sorted by tag */ - asn_MAP_numberOfCellSpecificAntennaPorts_enum2value_3, /* N => "tag"; sorted by N */ - 3, /* Number of elements in the maps */ - 4, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_numberOfCellSpecificAntennaPorts_tags_3[] = { - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_numberOfCellSpecificAntennaPorts_3 = { - "numberOfCellSpecificAntennaPorts", - "numberOfCellSpecificAntennaPorts", - &asn_OP_NativeEnumerated, - asn_DEF_numberOfCellSpecificAntennaPorts_tags_3, - sizeof(asn_DEF_numberOfCellSpecificAntennaPorts_tags_3) - /sizeof(asn_DEF_numberOfCellSpecificAntennaPorts_tags_3[0]) - 1, /* 1 */ - asn_DEF_numberOfCellSpecificAntennaPorts_tags_3, /* Same as above */ - sizeof(asn_DEF_numberOfCellSpecificAntennaPorts_tags_3) - /sizeof(asn_DEF_numberOfCellSpecificAntennaPorts_tags_3[0]), /* 2 */ - { 0, &asn_PER_type_numberOfCellSpecificAntennaPorts_constr_3, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_numberOfCellSpecificAntennaPorts_specs_3 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ABSInformationTDD_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct ABSInformationTDD, abs_pattern_info), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_BIT_STRING, - 0, - { 0, &asn_PER_memb_abs_pattern_info_constr_2, memb_abs_pattern_info_constraint_1 }, - 0, 0, /* No default value */ - "abs-pattern-info" - }, - { ATF_NOFLAGS, 0, offsetof(struct ABSInformationTDD, numberOfCellSpecificAntennaPorts), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_numberOfCellSpecificAntennaPorts_3, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "numberOfCellSpecificAntennaPorts" - }, - { ATF_NOFLAGS, 0, offsetof(struct ABSInformationTDD, measurement_subset), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_BIT_STRING, - 0, - { 0, &asn_PER_memb_measurement_subset_constr_8, memb_measurement_subset_constraint_1 }, - 0, 0, /* No default value */ - "measurement-subset" - }, - { ATF_POINTER, 1, offsetof(struct ABSInformationTDD, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P105, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_ABSInformationTDD_oms_1[] = { 3 }; -static const ber_tlv_tag_t asn_DEF_ABSInformationTDD_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ABSInformationTDD_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* abs-pattern-info */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* numberOfCellSpecificAntennaPorts */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* measurement-subset */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ABSInformationTDD_specs_1 = { - sizeof(struct ABSInformationTDD), - offsetof(struct ABSInformationTDD, _asn_ctx), - asn_MAP_ABSInformationTDD_tag2el_1, - 4, /* Count of tags in the map */ - asn_MAP_ABSInformationTDD_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 4, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ABSInformationTDD = { - "ABSInformationTDD", - "ABSInformationTDD", - &asn_OP_SEQUENCE, - asn_DEF_ABSInformationTDD_tags_1, - sizeof(asn_DEF_ABSInformationTDD_tags_1) - /sizeof(asn_DEF_ABSInformationTDD_tags_1[0]), /* 1 */ - asn_DEF_ABSInformationTDD_tags_1, /* Same as above */ - sizeof(asn_DEF_ABSInformationTDD_tags_1) - /sizeof(asn_DEF_ABSInformationTDD_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ABSInformationTDD_1, - 4, /* Elements count */ - &asn_SPC_ABSInformationTDD_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/ABSInformationTDD.h b/e2sim/previous/ASN1c/ABSInformationTDD.h deleted file mode 100644 index 210966c..0000000 --- a/e2sim/previous/ASN1c/ABSInformationTDD.h +++ /dev/null @@ -1,80 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _ABSInformationTDD_H_ -#define _ABSInformationTDD_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "BIT_STRING.h" -#include "NativeEnumerated.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum ABSInformationTDD__numberOfCellSpecificAntennaPorts { - ABSInformationTDD__numberOfCellSpecificAntennaPorts_one = 0, - ABSInformationTDD__numberOfCellSpecificAntennaPorts_two = 1, - ABSInformationTDD__numberOfCellSpecificAntennaPorts_four = 2 - /* - * Enumeration is extensible - */ -} e_ABSInformationTDD__numberOfCellSpecificAntennaPorts; - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* ABSInformationTDD */ -typedef struct ABSInformationTDD { - BIT_STRING_t abs_pattern_info; - long numberOfCellSpecificAntennaPorts; - BIT_STRING_t measurement_subset; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ABSInformationTDD_t; - -/* Implementation */ -/* extern asn_TYPE_descriptor_t asn_DEF_numberOfCellSpecificAntennaPorts_3; // (Use -fall-defs-global to expose) */ -extern asn_TYPE_descriptor_t asn_DEF_ABSInformationTDD; -extern asn_SEQUENCE_specifics_t asn_SPC_ABSInformationTDD_specs_1; -extern asn_TYPE_member_t asn_MBR_ABSInformationTDD_1[4]; - -#ifdef __cplusplus -} -#endif - -#endif /* _ABSInformationTDD_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/ANY.c b/e2sim/previous/ASN1c/ANY.c deleted file mode 100644 index 5044d8e..0000000 --- a/e2sim/previous/ASN1c/ANY.c +++ /dev/null @@ -1,468 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include - -asn_OCTET_STRING_specifics_t asn_SPC_ANY_specs = { - sizeof(ANY_t), - offsetof(ANY_t, _asn_ctx), - ASN_OSUBV_ANY -}; -asn_TYPE_operation_t asn_OP_ANY = { - OCTET_STRING_free, - OCTET_STRING_print, - OCTET_STRING_compare, - OCTET_STRING_decode_ber, - OCTET_STRING_encode_der, - OCTET_STRING_decode_xer_hex, - ANY_encode_xer, -#ifdef ASN_DISABLE_OER_SUPPORT - 0, - 0, -#else - 0, - 0, -#endif /* ASN_DISABLE_OER_SUPPORT */ -#ifdef ASN_DISABLE_PER_SUPPORT - 0, 0, 0, 0, -#else - ANY_decode_uper, - ANY_encode_uper, - ANY_decode_aper, - ANY_encode_aper, -#endif /* ASN_DISABLE_PER_SUPPORT */ - 0, /* Random fill is not defined for ANY type */ - 0 /* Use generic outmost tag fetcher */ -}; -asn_TYPE_descriptor_t asn_DEF_ANY = { - "ANY", - "ANY", - &asn_OP_ANY, - 0, 0, 0, 0, - { 0, 0, asn_generic_no_constraint }, /* No constraints */ - 0, 0, /* No members */ - &asn_SPC_ANY_specs, -}; - -#undef RETURN -#define RETURN(_code) \ - do { \ - asn_dec_rval_t tmprval; \ - tmprval.code = _code; \ - tmprval.consumed = consumed_myself; \ - return tmprval; \ - } while(0) - -asn_enc_rval_t -ANY_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, - enum xer_encoder_flags_e flags, asn_app_consume_bytes_f *cb, - void *app_key) { - if(flags & XER_F_CANONICAL) { - /* - * Canonical XER-encoding of ANY type is not supported. - */ - ASN__ENCODE_FAILED; - } - - /* Dump as binary */ - return OCTET_STRING_encode_xer(td, sptr, ilevel, flags, cb, app_key); -} - -struct _callback_arg { - uint8_t *buffer; - size_t offset; - size_t size; -}; - -static int ANY__consume_bytes(const void *buffer, size_t size, void *key); - -int -ANY_fromType(ANY_t *st, asn_TYPE_descriptor_t *td, void *sptr) { - struct _callback_arg arg; - asn_enc_rval_t erval = {0,0,0}; - - if(!st || !td) { - errno = EINVAL; - return -1; - } - - if(!sptr) { - if(st->buf) FREEMEM(st->buf); - st->size = 0; - return 0; - } - - arg.offset = arg.size = 0; - arg.buffer = 0; - - erval = der_encode(td, sptr, ANY__consume_bytes, &arg); - if(erval.encoded == -1) { - if(arg.buffer) FREEMEM(arg.buffer); - return -1; - } - assert((size_t)erval.encoded == arg.offset); - - if(st->buf) FREEMEM(st->buf); - st->buf = arg.buffer; - st->size = arg.offset; - - return 0; -} - -int -ANY_fromType_aper(ANY_t *st, asn_TYPE_descriptor_t *td, void *sptr) { - uint8_t *buffer = NULL; - ssize_t erval; - - if(!st || !td) { - errno = EINVAL; - return -1; - } - - if(!sptr) { - if(st->buf) FREEMEM(st->buf); - st->size = 0; - return 0; - } - - erval = aper_encode_to_new_buffer(td, td->encoding_constraints.per_constraints, sptr, (void**)&buffer); - - if(erval == -1) { - if(buffer) FREEMEM(buffer); - return -1; - } - assert((size_t)erval > 0); - - if(st->buf) FREEMEM(st->buf); - st->buf = buffer; - st->size = erval; - - return 0; -} - -ANY_t * -ANY_new_fromType(asn_TYPE_descriptor_t *td, void *sptr) { - ANY_t tmp; - ANY_t *st; - - if(!td || !sptr) { - errno = EINVAL; - return 0; - } - - memset(&tmp, 0, sizeof(tmp)); - - if(ANY_fromType(&tmp, td, sptr)) return 0; - - st = (ANY_t *)CALLOC(1, sizeof(ANY_t)); - if(st) { - *st = tmp; - return st; - } else { - FREEMEM(tmp.buf); - return 0; - } -} - -ANY_t * -ANY_new_fromType_aper(asn_TYPE_descriptor_t *td, void *sptr) { - ANY_t tmp; - ANY_t *st; - - if(!td || !sptr) { - errno = EINVAL; - return 0; - } - - memset(&tmp, 0, sizeof(tmp)); - - if(ANY_fromType_aper(&tmp, td, sptr)) return 0; - - st = (ANY_t *)CALLOC(1, sizeof(ANY_t)); - if(st) { - *st = tmp; - return st; - } else { - FREEMEM(tmp.buf); - return 0; - } -} - -int -ANY_to_type(ANY_t *st, asn_TYPE_descriptor_t *td, void **struct_ptr) { - asn_dec_rval_t rval; - void *newst = 0; - - if(!st || !td || !struct_ptr) { - errno = EINVAL; - return -1; - } - - if(st->buf == 0) { - /* Nothing to convert, make it empty. */ - *struct_ptr = (void *)0; - return 0; - } - - rval = ber_decode(0, td, (void **)&newst, st->buf, st->size); - if(rval.code == RC_OK) { - *struct_ptr = newst; - return 0; - } else { - /* Remove possibly partially decoded data. */ - ASN_STRUCT_FREE(*td, newst); - return -1; - } -} - -int -ANY_to_type_aper(ANY_t *st, asn_TYPE_descriptor_t *td, void **struct_ptr) { - asn_dec_rval_t rval; - void *newst = 0; - - if(!st || !td || !struct_ptr) { - errno = EINVAL; - return -1; - } - - if(st->buf == 0) { - /* Nothing to convert, make it empty. */ - *struct_ptr = (void *)0; - return 0; - } - - rval = aper_decode(0, td, (void **)&newst, st->buf, st->size, 0, 0); - if(rval.code == RC_OK) { - *struct_ptr = newst; - return 0; - } else { - /* Remove possibly partially decoded data. */ - ASN_STRUCT_FREE(*td, newst); - return -1; - } -} - -static int ANY__consume_bytes(const void *buffer, size_t size, void *key) { - struct _callback_arg *arg = (struct _callback_arg *)key; - - if((arg->offset + size) >= arg->size) { - size_t nsize = (arg->size ? arg->size << 2 : 16) + size; - void *p = REALLOC(arg->buffer, nsize); - if(!p) return -1; - arg->buffer = (uint8_t *)p; - arg->size = nsize; - } - - memcpy(arg->buffer + arg->offset, buffer, size); - arg->offset += size; - assert(arg->offset < arg->size); - - return 0; -} - -#ifndef ASN_DISABLE_PER_SUPPORT - -asn_dec_rval_t -ANY_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, - asn_per_data_t *pd) { - const asn_OCTET_STRING_specifics_t *specs = - td->specifics ? (const asn_OCTET_STRING_specifics_t *)td->specifics - : &asn_SPC_ANY_specs; - size_t consumed_myself = 0; - int repeat; - ANY_t *st = (ANY_t *)*sptr; - - (void)opt_codec_ctx; - (void)constraints; - - /* - * Allocate the structure. - */ - if(!st) { - st = (ANY_t *)(*sptr = CALLOC(1, specs->struct_size)); - if(!st) RETURN(RC_FAIL); - } - - ASN_DEBUG("UPER Decoding ANY type"); - - st->size = 0; - do { - ssize_t raw_len; - ssize_t len_bytes; - ssize_t len_bits; - void *p; - int ret; - - /* Get the PER length */ - raw_len = uper_get_length(pd, -1, 0, &repeat); - if(raw_len < 0) RETURN(RC_WMORE); - if(raw_len == 0 && st->buf) break; - - ASN_DEBUG("Got PER length len %" ASN_PRI_SIZE ", %s (%s)", raw_len, - repeat ? "repeat" : "once", td->name); - len_bytes = raw_len; - len_bits = len_bytes * 8; - - p = REALLOC(st->buf, st->size + len_bytes + 1); - if(!p) RETURN(RC_FAIL); - st->buf = (uint8_t *)p; - - ret = per_get_many_bits(pd, &st->buf[st->size], 0, len_bits); - if(ret < 0) RETURN(RC_WMORE); - consumed_myself += len_bits; - st->size += len_bytes; - } while(repeat); - st->buf[st->size] = 0; /* nul-terminate */ - - RETURN(RC_OK); -} - -asn_enc_rval_t -ANY_encode_uper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, const void *sptr, - asn_per_outp_t *po) { - const ANY_t *st = (const ANY_t *)sptr; - asn_enc_rval_t er = {0, 0, 0}; - const uint8_t *buf; - size_t size; - int ret; - - (void)constraints; - - if(!st || (!st->buf && st->size)) ASN__ENCODE_FAILED; - - buf = st->buf; - size = st->size; - do { - int need_eom = 0; - ssize_t may_save = uper_put_length(po, size, &need_eom); - if(may_save < 0) ASN__ENCODE_FAILED; - - ret = per_put_many_bits(po, buf, may_save * 8); - if(ret) ASN__ENCODE_FAILED; - - buf += may_save; - size -= may_save; - assert(!(may_save & 0x07) || !size); - if(need_eom && uper_put_length(po, 0, 0)) - ASN__ENCODE_FAILED; /* End of Message length */ - } while(size); - - ASN__ENCODED_OK(er); -} - -asn_dec_rval_t -ANY_decode_aper(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, - asn_per_data_t *pd) { - const asn_OCTET_STRING_specifics_t *specs = - td->specifics ? (const asn_OCTET_STRING_specifics_t *)td->specifics - : &asn_SPC_ANY_specs; - size_t consumed_myself = 0; - int repeat; - ANY_t *st = (ANY_t *)*sptr; - - (void)opt_codec_ctx; - (void)constraints; - - /* - * Allocate the structure. - */ - if(!st) { - st = (ANY_t *)(*sptr = CALLOC(1, specs->struct_size)); - if(!st) RETURN(RC_FAIL); - } - - ASN_DEBUG("APER Decoding ANY type"); - - st->size = 0; - do { - ssize_t raw_len; - ssize_t len_bytes; - ssize_t len_bits; - void *p; - int ret; - - /* Get the PER length */ - raw_len = aper_get_length(pd, -1, 0, &repeat); - if(raw_len < 0) RETURN(RC_WMORE); - if(raw_len == 0 && st->buf) break; - - ASN_DEBUG("Got PER length len %" ASN_PRI_SIZE ", %s (%s)", raw_len, - repeat ? "repeat" : "once", td->name); - len_bytes = raw_len; - len_bits = len_bytes * 8; - - p = REALLOC(st->buf, st->size + len_bytes + 1); - if(!p) RETURN(RC_FAIL); - st->buf = (uint8_t *)p; - - ret = per_get_many_bits(pd, &st->buf[st->size], 0, len_bits); - if(ret < 0) RETURN(RC_WMORE); - consumed_myself += len_bits; - st->size += len_bytes; - } while(repeat); - st->buf[st->size] = 0; /* nul-terminate */ - - RETURN(RC_OK); -} - -asn_enc_rval_t -ANY_encode_aper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, const void *sptr, - asn_per_outp_t *po) { - const ANY_t *st = (const ANY_t *)sptr; - asn_enc_rval_t er = {0, 0, 0}; - const uint8_t *buf; - size_t size; - int ret; - - (void)constraints; - - if(!st || (!st->buf && st->size)) ASN__ENCODE_FAILED; - - buf = st->buf; - size = st->size; - do { - int need_eom = 0; - ssize_t may_save = uper_put_length(po, size, &need_eom); - if(may_save < 0) ASN__ENCODE_FAILED; - - ret = per_put_many_bits(po, buf, may_save * 8); - if(ret) ASN__ENCODE_FAILED; - - buf += may_save; - size -= may_save; - assert(!(may_save & 0x07) || !size); - if(need_eom && uper_put_length(po, 0, 0)) - ASN__ENCODE_FAILED; /* End of Message length */ - } while(size); - - ASN__ENCODED_OK(er); -} -#endif /* ASN_DISABLE_PER_SUPPORT */ - diff --git a/e2sim/previous/ASN1c/ANY.h b/e2sim/previous/ASN1c/ANY.h deleted file mode 100644 index fbdfec6..0000000 --- a/e2sim/previous/ASN1c/ANY.h +++ /dev/null @@ -1,83 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/*- - * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef ASN_TYPE_ANY_H -#define ASN_TYPE_ANY_H - -#include /* Implemented via OCTET STRING type */ - -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct ANY { - uint8_t *buf; /* BER-encoded ANY contents */ - int size; /* Size of the above buffer */ - - asn_struct_ctx_t _asn_ctx; /* Parsing across buffer boundaries */ -} ANY_t; - -extern asn_TYPE_descriptor_t asn_DEF_ANY; -extern asn_TYPE_operation_t asn_OP_ANY; -extern asn_OCTET_STRING_specifics_t asn_SPC_ANY_specs; - -asn_struct_free_f ANY_free; -asn_struct_print_f ANY_print; -ber_type_decoder_f ANY_decode_ber; -der_type_encoder_f ANY_encode_der; -xer_type_encoder_f ANY_encode_xer; -per_type_decoder_f ANY_decode_uper; -per_type_encoder_f ANY_encode_uper; -per_type_decoder_f ANY_decode_aper; -per_type_encoder_f ANY_encode_aper; - -#define ANY_free OCTET_STRING_free -#define ANY_print OCTET_STRING_print -#define ANY_compare OCTET_STRING_compare -#define ANY_constraint asn_generic_no_constraint -#define ANY_decode_ber OCTET_STRING_decode_ber -#define ANY_encode_der OCTET_STRING_encode_der -#define ANY_decode_xer OCTET_STRING_decode_xer_hex - -/****************************** - * Handy conversion routines. * - ******************************/ - -/* Convert another ASN.1 type into the ANY. This implies DER encoding. */ -int ANY_fromType(ANY_t *, asn_TYPE_descriptor_t *td, void *struct_ptr); -int ANY_fromType_aper(ANY_t *st, asn_TYPE_descriptor_t *td, void *sptr); -ANY_t *ANY_new_fromType(asn_TYPE_descriptor_t *td, void *struct_ptr); -ANY_t *ANY_new_fromType_aper(asn_TYPE_descriptor_t *td, void *sptr); - -/* Convert the contents of the ANY type into the specified type. */ -int ANY_to_type(ANY_t *, asn_TYPE_descriptor_t *td, void **struct_ptr); -int ANY_to_type_aper(ANY_t *, asn_TYPE_descriptor_t *td, void **struct_ptr); - -#define ANY_fromBuf(s, buf, size) OCTET_STRING_fromBuf((s), (buf), (size)) -#define ANY_new_fromBuf(buf, size) OCTET_STRING_new_fromBuf( \ - &asn_DEF_ANY, (buf), (size)) - -#ifdef __cplusplus -} -#endif - -#endif /* ASN_TYPE_ANY_H */ diff --git a/e2sim/previous/ASN1c/AS-SecurityInformation.c b/e2sim/previous/ASN1c/AS-SecurityInformation.c deleted file mode 100644 index 94e7d53..0000000 --- a/e2sim/previous/ASN1c/AS-SecurityInformation.c +++ /dev/null @@ -1,91 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "AS-SecurityInformation.h" - -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_AS_SecurityInformation_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct AS_SecurityInformation, key_eNodeB_star), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Key_eNodeB_Star, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "key-eNodeB-star" - }, - { ATF_NOFLAGS, 0, offsetof(struct AS_SecurityInformation, nextHopChainingCount), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NextHopChainingCount, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "nextHopChainingCount" - }, - { ATF_POINTER, 1, offsetof(struct AS_SecurityInformation, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P110, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_AS_SecurityInformation_oms_1[] = { 2 }; -static const ber_tlv_tag_t asn_DEF_AS_SecurityInformation_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_AS_SecurityInformation_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* key-eNodeB-star */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* nextHopChainingCount */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_AS_SecurityInformation_specs_1 = { - sizeof(struct AS_SecurityInformation), - offsetof(struct AS_SecurityInformation, _asn_ctx), - asn_MAP_AS_SecurityInformation_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_AS_SecurityInformation_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_AS_SecurityInformation = { - "AS-SecurityInformation", - "AS-SecurityInformation", - &asn_OP_SEQUENCE, - asn_DEF_AS_SecurityInformation_tags_1, - sizeof(asn_DEF_AS_SecurityInformation_tags_1) - /sizeof(asn_DEF_AS_SecurityInformation_tags_1[0]), /* 1 */ - asn_DEF_AS_SecurityInformation_tags_1, /* Same as above */ - sizeof(asn_DEF_AS_SecurityInformation_tags_1) - /sizeof(asn_DEF_AS_SecurityInformation_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_AS_SecurityInformation_1, - 3, /* Elements count */ - &asn_SPC_AS_SecurityInformation_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/AS-SecurityInformation.h b/e2sim/previous/ASN1c/AS-SecurityInformation.h deleted file mode 100644 index baade7a..0000000 --- a/e2sim/previous/ASN1c/AS-SecurityInformation.h +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _AS_SecurityInformation_H_ -#define _AS_SecurityInformation_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "Key-eNodeB-Star.h" -#include "NextHopChainingCount.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* AS-SecurityInformation */ -typedef struct AS_SecurityInformation { - Key_eNodeB_Star_t key_eNodeB_star; - NextHopChainingCount_t nextHopChainingCount; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} AS_SecurityInformation_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_AS_SecurityInformation; -extern asn_SEQUENCE_specifics_t asn_SPC_AS_SecurityInformation_specs_1; -extern asn_TYPE_member_t asn_MBR_AS_SecurityInformation_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _AS_SecurityInformation_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/ActionParameter-ID.c b/e2sim/previous/ASN1c/ActionParameter-ID.c deleted file mode 100644 index 24ed3f5..0000000 --- a/e2sim/previous/ASN1c/ActionParameter-ID.c +++ /dev/null @@ -1,79 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-gNB-X2-IEs" - * found in "../../asnFiles/e2sm-gNB-X2-release-1-v041.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "ActionParameter-ID.h" - -int -ActionParameter_ID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 255)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using NativeInteger, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_ActionParameter_ID_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_ActionParameter_ID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ActionParameter_ID = { - "ActionParameter-ID", - "ActionParameter-ID", - &asn_OP_NativeInteger, - asn_DEF_ActionParameter_ID_tags_1, - sizeof(asn_DEF_ActionParameter_ID_tags_1) - /sizeof(asn_DEF_ActionParameter_ID_tags_1[0]), /* 1 */ - asn_DEF_ActionParameter_ID_tags_1, /* Same as above */ - sizeof(asn_DEF_ActionParameter_ID_tags_1) - /sizeof(asn_DEF_ActionParameter_ID_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_ActionParameter_ID_constr_1, ActionParameter_ID_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/previous/ASN1c/ActionParameter-ID.h b/e2sim/previous/ASN1c/ActionParameter-ID.h deleted file mode 100644 index 23a8038..0000000 --- a/e2sim/previous/ASN1c/ActionParameter-ID.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-gNB-X2-IEs" - * found in "../../asnFiles/e2sm-gNB-X2-release-1-v041.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _ActionParameter_ID_H_ -#define _ActionParameter_ID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeInteger.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* ActionParameter-ID */ -typedef long ActionParameter_ID_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_ActionParameter_ID_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_ActionParameter_ID; -asn_struct_free_f ActionParameter_ID_free; -asn_struct_print_f ActionParameter_ID_print; -asn_constr_check_f ActionParameter_ID_constraint; -ber_type_decoder_f ActionParameter_ID_decode_ber; -der_type_encoder_f ActionParameter_ID_encode_der; -xer_type_decoder_f ActionParameter_ID_decode_xer; -xer_type_encoder_f ActionParameter_ID_encode_xer; -per_type_decoder_f ActionParameter_ID_decode_uper; -per_type_encoder_f ActionParameter_ID_encode_uper; -per_type_decoder_f ActionParameter_ID_decode_aper; -per_type_encoder_f ActionParameter_ID_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _ActionParameter_ID_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/ActionParameter-Item.c b/e2sim/previous/ASN1c/ActionParameter-Item.c deleted file mode 100644 index d432c10..0000000 --- a/e2sim/previous/ASN1c/ActionParameter-Item.c +++ /dev/null @@ -1,78 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-gNB-X2-IEs" - * found in "../../asnFiles/e2sm-gNB-X2-release-1-v041.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "ActionParameter-Item.h" - -asn_TYPE_member_t asn_MBR_ActionParameter_Item_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct ActionParameter_Item, actionParameter_ID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ActionParameter_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "actionParameter-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct ActionParameter_Item, actionParameter_Value), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_ActionParameter_Value, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "actionParameter-Value" - }, -}; -static const ber_tlv_tag_t asn_DEF_ActionParameter_Item_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ActionParameter_Item_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* actionParameter-ID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* actionParameter-Value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ActionParameter_Item_specs_1 = { - sizeof(struct ActionParameter_Item), - offsetof(struct ActionParameter_Item, _asn_ctx), - asn_MAP_ActionParameter_Item_tag2el_1, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 2, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ActionParameter_Item = { - "ActionParameter-Item", - "ActionParameter-Item", - &asn_OP_SEQUENCE, - asn_DEF_ActionParameter_Item_tags_1, - sizeof(asn_DEF_ActionParameter_Item_tags_1) - /sizeof(asn_DEF_ActionParameter_Item_tags_1[0]), /* 1 */ - asn_DEF_ActionParameter_Item_tags_1, /* Same as above */ - sizeof(asn_DEF_ActionParameter_Item_tags_1) - /sizeof(asn_DEF_ActionParameter_Item_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ActionParameter_Item_1, - 2, /* Elements count */ - &asn_SPC_ActionParameter_Item_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/ActionParameter-Item.h b/e2sim/previous/ASN1c/ActionParameter-Item.h deleted file mode 100644 index a257ac5..0000000 --- a/e2sim/previous/ASN1c/ActionParameter-Item.h +++ /dev/null @@ -1,64 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-gNB-X2-IEs" - * found in "../../asnFiles/e2sm-gNB-X2-release-1-v041.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _ActionParameter_Item_H_ -#define _ActionParameter_Item_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ActionParameter-ID.h" -#include "ActionParameter-Value.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* ActionParameter-Item */ -typedef struct ActionParameter_Item { - ActionParameter_ID_t actionParameter_ID; - ActionParameter_Value_t actionParameter_Value; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ActionParameter_Item_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ActionParameter_Item; -extern asn_SEQUENCE_specifics_t asn_SPC_ActionParameter_Item_specs_1; -extern asn_TYPE_member_t asn_MBR_ActionParameter_Item_1[2]; - -#ifdef __cplusplus -} -#endif - -#endif /* _ActionParameter_Item_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/ActionParameter-Value.c b/e2sim/previous/ASN1c/ActionParameter-Value.c deleted file mode 100644 index 2c98fdb..0000000 --- a/e2sim/previous/ASN1c/ActionParameter-Value.c +++ /dev/null @@ -1,120 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-gNB-X2-IEs" - * found in "../../asnFiles/e2sm-gNB-X2-release-1-v041.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "ActionParameter-Value.h" - -asn_per_constraints_t asn_PER_type_ActionParameter_Value_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 5 } /* (0..5,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_ActionParameter_Value_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct ActionParameter_Value, choice.valueInt), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "valueInt" - }, - { ATF_NOFLAGS, 0, offsetof(struct ActionParameter_Value, choice.valueEnum), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "valueEnum" - }, - { ATF_NOFLAGS, 0, offsetof(struct ActionParameter_Value, choice.valueBool), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_BOOLEAN, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "valueBool" - }, - { ATF_NOFLAGS, 0, offsetof(struct ActionParameter_Value, choice.valueBitS), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_BIT_STRING, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "valueBitS" - }, - { ATF_NOFLAGS, 0, offsetof(struct ActionParameter_Value, choice.valueOctS), - (ASN_TAG_CLASS_CONTEXT | (4 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_OCTET_STRING, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "valueOctS" - }, - { ATF_NOFLAGS, 0, offsetof(struct ActionParameter_Value, choice.valuePrtS), - (ASN_TAG_CLASS_CONTEXT | (5 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_PrintableString, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "valuePrtS" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_ActionParameter_Value_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* valueInt */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* valueEnum */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* valueBool */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* valueBitS */ - { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* valueOctS */ - { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* valuePrtS */ -}; -asn_CHOICE_specifics_t asn_SPC_ActionParameter_Value_specs_1 = { - sizeof(struct ActionParameter_Value), - offsetof(struct ActionParameter_Value, _asn_ctx), - offsetof(struct ActionParameter_Value, present), - sizeof(((struct ActionParameter_Value *)0)->present), - asn_MAP_ActionParameter_Value_tag2el_1, - 6, /* Count of tags in the map */ - 0, 0, - 6 /* Extensions start */ -}; -asn_TYPE_descriptor_t asn_DEF_ActionParameter_Value = { - "ActionParameter-Value", - "ActionParameter-Value", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, &asn_PER_type_ActionParameter_Value_constr_1, CHOICE_constraint }, - asn_MBR_ActionParameter_Value_1, - 6, /* Elements count */ - &asn_SPC_ActionParameter_Value_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/ActionParameter-Value.h b/e2sim/previous/ASN1c/ActionParameter-Value.h deleted file mode 100644 index edf2d73..0000000 --- a/e2sim/previous/ASN1c/ActionParameter-Value.h +++ /dev/null @@ -1,88 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-gNB-X2-IEs" - * found in "../../asnFiles/e2sm-gNB-X2-release-1-v041.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _ActionParameter_Value_H_ -#define _ActionParameter_Value_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeInteger.h" -#include "BOOLEAN.h" -#include "BIT_STRING.h" -#include "OCTET_STRING.h" -#include "PrintableString.h" -#include "constr_CHOICE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum ActionParameter_Value_PR { - ActionParameter_Value_PR_NOTHING, /* No components present */ - ActionParameter_Value_PR_valueInt, - ActionParameter_Value_PR_valueEnum, - ActionParameter_Value_PR_valueBool, - ActionParameter_Value_PR_valueBitS, - ActionParameter_Value_PR_valueOctS, - ActionParameter_Value_PR_valuePrtS - /* Extensions may appear below */ - -} ActionParameter_Value_PR; - -/* ActionParameter-Value */ -typedef struct ActionParameter_Value { - ActionParameter_Value_PR present; - union ActionParameter_Value_u { - long valueInt; - long valueEnum; - BOOLEAN_t valueBool; - BIT_STRING_t valueBitS; - OCTET_STRING_t valueOctS; - PrintableString_t valuePrtS; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ActionParameter_Value_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ActionParameter_Value; -extern asn_CHOICE_specifics_t asn_SPC_ActionParameter_Value_specs_1; -extern asn_TYPE_member_t asn_MBR_ActionParameter_Value_1[6]; -extern asn_per_constraints_t asn_PER_type_ActionParameter_Value_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _ActionParameter_Value_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/ActivatedCellList-Item.c b/e2sim/previous/ASN1c/ActivatedCellList-Item.c deleted file mode 100644 index de8e467..0000000 --- a/e2sim/previous/ASN1c/ActivatedCellList-Item.c +++ /dev/null @@ -1,81 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "ActivatedCellList-Item.h" - -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_ActivatedCellList_Item_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct ActivatedCellList_Item, ecgi), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ECGI, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ecgi" - }, - { ATF_POINTER, 1, offsetof(struct ActivatedCellList_Item, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P15, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_ActivatedCellList_Item_oms_1[] = { 1 }; -static const ber_tlv_tag_t asn_DEF_ActivatedCellList_Item_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ActivatedCellList_Item_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ecgi */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ActivatedCellList_Item_specs_1 = { - sizeof(struct ActivatedCellList_Item), - offsetof(struct ActivatedCellList_Item, _asn_ctx), - asn_MAP_ActivatedCellList_Item_tag2el_1, - 2, /* Count of tags in the map */ - asn_MAP_ActivatedCellList_Item_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 2, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ActivatedCellList_Item = { - "ActivatedCellList-Item", - "ActivatedCellList-Item", - &asn_OP_SEQUENCE, - asn_DEF_ActivatedCellList_Item_tags_1, - sizeof(asn_DEF_ActivatedCellList_Item_tags_1) - /sizeof(asn_DEF_ActivatedCellList_Item_tags_1[0]), /* 1 */ - asn_DEF_ActivatedCellList_Item_tags_1, /* Same as above */ - sizeof(asn_DEF_ActivatedCellList_Item_tags_1) - /sizeof(asn_DEF_ActivatedCellList_Item_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ActivatedCellList_Item_1, - 2, /* Elements count */ - &asn_SPC_ActivatedCellList_Item_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/ActivatedCellList-Item.h b/e2sim/previous/ASN1c/ActivatedCellList-Item.h deleted file mode 100644 index b70b468..0000000 --- a/e2sim/previous/ASN1c/ActivatedCellList-Item.h +++ /dev/null @@ -1,66 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _ActivatedCellList_Item_H_ -#define _ActivatedCellList_Item_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ECGI.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* ActivatedCellList-Item */ -typedef struct ActivatedCellList_Item { - ECGI_t ecgi; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ActivatedCellList_Item_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ActivatedCellList_Item; -extern asn_SEQUENCE_specifics_t asn_SPC_ActivatedCellList_Item_specs_1; -extern asn_TYPE_member_t asn_MBR_ActivatedCellList_Item_1[2]; - -#ifdef __cplusplus -} -#endif - -#endif /* _ActivatedCellList_Item_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/ActivatedCellList.c b/e2sim/previous/ASN1c/ActivatedCellList.c deleted file mode 100644 index a12132b..0000000 --- a/e2sim/previous/ASN1c/ActivatedCellList.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "ActivatedCellList.h" - -#include "ActivatedCellList-Item.h" -static asn_per_constraints_t asn_PER_type_ActivatedCellList_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 8, 8, 1, 256 } /* (SIZE(1..256)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_ActivatedCellList_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ActivatedCellList_Item, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ActivatedCellList_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_ActivatedCellList_specs_1 = { - sizeof(struct ActivatedCellList), - offsetof(struct ActivatedCellList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ActivatedCellList = { - "ActivatedCellList", - "ActivatedCellList", - &asn_OP_SEQUENCE_OF, - asn_DEF_ActivatedCellList_tags_1, - sizeof(asn_DEF_ActivatedCellList_tags_1) - /sizeof(asn_DEF_ActivatedCellList_tags_1[0]), /* 1 */ - asn_DEF_ActivatedCellList_tags_1, /* Same as above */ - sizeof(asn_DEF_ActivatedCellList_tags_1) - /sizeof(asn_DEF_ActivatedCellList_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_ActivatedCellList_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_ActivatedCellList_1, - 1, /* Single element */ - &asn_SPC_ActivatedCellList_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/ActivatedCellList.h b/e2sim/previous/ASN1c/ActivatedCellList.h deleted file mode 100644 index e145ddd..0000000 --- a/e2sim/previous/ASN1c/ActivatedCellList.h +++ /dev/null @@ -1,59 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _ActivatedCellList_H_ -#define _ActivatedCellList_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ActivatedCellList_Item; - -/* ActivatedCellList */ -typedef struct ActivatedCellList { - A_SEQUENCE_OF(struct ActivatedCellList_Item) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ActivatedCellList_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ActivatedCellList; - -#ifdef __cplusplus -} -#endif - -#endif /* _ActivatedCellList_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/ActivatedNRCellList-Item.c b/e2sim/previous/ASN1c/ActivatedNRCellList-Item.c deleted file mode 100644 index df3b99c..0000000 --- a/e2sim/previous/ASN1c/ActivatedNRCellList-Item.c +++ /dev/null @@ -1,81 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "ActivatedNRCellList-Item.h" - -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_ActivatedNRCellList_Item_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct ActivatedNRCellList_Item, nrCellID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NRCGI, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "nrCellID" - }, - { ATF_POINTER, 1, offsetof(struct ActivatedNRCellList_Item, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P102, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_ActivatedNRCellList_Item_oms_1[] = { 1 }; -static const ber_tlv_tag_t asn_DEF_ActivatedNRCellList_Item_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ActivatedNRCellList_Item_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nrCellID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ActivatedNRCellList_Item_specs_1 = { - sizeof(struct ActivatedNRCellList_Item), - offsetof(struct ActivatedNRCellList_Item, _asn_ctx), - asn_MAP_ActivatedNRCellList_Item_tag2el_1, - 2, /* Count of tags in the map */ - asn_MAP_ActivatedNRCellList_Item_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 2, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ActivatedNRCellList_Item = { - "ActivatedNRCellList-Item", - "ActivatedNRCellList-Item", - &asn_OP_SEQUENCE, - asn_DEF_ActivatedNRCellList_Item_tags_1, - sizeof(asn_DEF_ActivatedNRCellList_Item_tags_1) - /sizeof(asn_DEF_ActivatedNRCellList_Item_tags_1[0]), /* 1 */ - asn_DEF_ActivatedNRCellList_Item_tags_1, /* Same as above */ - sizeof(asn_DEF_ActivatedNRCellList_Item_tags_1) - /sizeof(asn_DEF_ActivatedNRCellList_Item_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ActivatedNRCellList_Item_1, - 2, /* Elements count */ - &asn_SPC_ActivatedNRCellList_Item_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/ActivatedNRCellList-Item.h b/e2sim/previous/ASN1c/ActivatedNRCellList-Item.h deleted file mode 100644 index 31437d3..0000000 --- a/e2sim/previous/ASN1c/ActivatedNRCellList-Item.h +++ /dev/null @@ -1,66 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _ActivatedNRCellList_Item_H_ -#define _ActivatedNRCellList_Item_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NRCGI.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* ActivatedNRCellList-Item */ -typedef struct ActivatedNRCellList_Item { - NRCGI_t nrCellID; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ActivatedNRCellList_Item_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ActivatedNRCellList_Item; -extern asn_SEQUENCE_specifics_t asn_SPC_ActivatedNRCellList_Item_specs_1; -extern asn_TYPE_member_t asn_MBR_ActivatedNRCellList_Item_1[2]; - -#ifdef __cplusplus -} -#endif - -#endif /* _ActivatedNRCellList_Item_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/ActivatedNRCellList.c b/e2sim/previous/ASN1c/ActivatedNRCellList.c deleted file mode 100644 index 531a4d9..0000000 --- a/e2sim/previous/ASN1c/ActivatedNRCellList.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "ActivatedNRCellList.h" - -#include "ActivatedNRCellList-Item.h" -static asn_per_constraints_t asn_PER_type_ActivatedNRCellList_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 14, 14, 1, 16384 } /* (SIZE(1..16384)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_ActivatedNRCellList_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ActivatedNRCellList_Item, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ActivatedNRCellList_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_ActivatedNRCellList_specs_1 = { - sizeof(struct ActivatedNRCellList), - offsetof(struct ActivatedNRCellList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ActivatedNRCellList = { - "ActivatedNRCellList", - "ActivatedNRCellList", - &asn_OP_SEQUENCE_OF, - asn_DEF_ActivatedNRCellList_tags_1, - sizeof(asn_DEF_ActivatedNRCellList_tags_1) - /sizeof(asn_DEF_ActivatedNRCellList_tags_1[0]), /* 1 */ - asn_DEF_ActivatedNRCellList_tags_1, /* Same as above */ - sizeof(asn_DEF_ActivatedNRCellList_tags_1) - /sizeof(asn_DEF_ActivatedNRCellList_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_ActivatedNRCellList_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_ActivatedNRCellList_1, - 1, /* Single element */ - &asn_SPC_ActivatedNRCellList_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/ActivatedNRCellList.h b/e2sim/previous/ASN1c/ActivatedNRCellList.h deleted file mode 100644 index 3f47cd1..0000000 --- a/e2sim/previous/ASN1c/ActivatedNRCellList.h +++ /dev/null @@ -1,59 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _ActivatedNRCellList_H_ -#define _ActivatedNRCellList_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ActivatedNRCellList_Item; - -/* ActivatedNRCellList */ -typedef struct ActivatedNRCellList { - A_SEQUENCE_OF(struct ActivatedNRCellList_Item) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ActivatedNRCellList_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ActivatedNRCellList; - -#ifdef __cplusplus -} -#endif - -#endif /* _ActivatedNRCellList_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/ActivationID.c b/e2sim/previous/ASN1c/ActivationID.c deleted file mode 100644 index 7ddf4c9..0000000 --- a/e2sim/previous/ASN1c/ActivationID.c +++ /dev/null @@ -1,79 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "ActivationID.h" - -int -ActivationID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 255)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using NativeInteger, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_ActivationID_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_ActivationID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ActivationID = { - "ActivationID", - "ActivationID", - &asn_OP_NativeInteger, - asn_DEF_ActivationID_tags_1, - sizeof(asn_DEF_ActivationID_tags_1) - /sizeof(asn_DEF_ActivationID_tags_1[0]), /* 1 */ - asn_DEF_ActivationID_tags_1, /* Same as above */ - sizeof(asn_DEF_ActivationID_tags_1) - /sizeof(asn_DEF_ActivationID_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_ActivationID_constr_1, ActivationID_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/previous/ASN1c/ActivationID.h b/e2sim/previous/ASN1c/ActivationID.h deleted file mode 100644 index 7c82220..0000000 --- a/e2sim/previous/ASN1c/ActivationID.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _ActivationID_H_ -#define _ActivationID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeInteger.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* ActivationID */ -typedef long ActivationID_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_ActivationID_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_ActivationID; -asn_struct_free_f ActivationID_free; -asn_struct_print_f ActivationID_print; -asn_constr_check_f ActivationID_constraint; -ber_type_decoder_f ActivationID_decode_ber; -der_type_encoder_f ActivationID_encode_der; -xer_type_decoder_f ActivationID_decode_xer; -xer_type_encoder_f ActivationID_encode_xer; -per_type_decoder_f ActivationID_decode_uper; -per_type_encoder_f ActivationID_encode_uper; -per_type_decoder_f ActivationID_decode_aper; -per_type_encoder_f ActivationID_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _ActivationID_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/AdditionalSpecialSubframe-Info.c b/e2sim/previous/ASN1c/AdditionalSpecialSubframe-Info.c deleted file mode 100644 index 265ae45..0000000 --- a/e2sim/previous/ASN1c/AdditionalSpecialSubframe-Info.c +++ /dev/null @@ -1,101 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "AdditionalSpecialSubframe-Info.h" - -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_AdditionalSpecialSubframe_Info_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct AdditionalSpecialSubframe_Info, additionalspecialSubframePatterns), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_AdditionalSpecialSubframePatterns, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "additionalspecialSubframePatterns" - }, - { ATF_NOFLAGS, 0, offsetof(struct AdditionalSpecialSubframe_Info, cyclicPrefixDL), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_CyclicPrefixDL, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "cyclicPrefixDL" - }, - { ATF_NOFLAGS, 0, offsetof(struct AdditionalSpecialSubframe_Info, cyclicPrefixUL), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_CyclicPrefixUL, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "cyclicPrefixUL" - }, - { ATF_POINTER, 1, offsetof(struct AdditionalSpecialSubframe_Info, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P107, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_AdditionalSpecialSubframe_Info_oms_1[] = { 3 }; -static const ber_tlv_tag_t asn_DEF_AdditionalSpecialSubframe_Info_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_AdditionalSpecialSubframe_Info_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* additionalspecialSubframePatterns */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* cyclicPrefixDL */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* cyclicPrefixUL */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_AdditionalSpecialSubframe_Info_specs_1 = { - sizeof(struct AdditionalSpecialSubframe_Info), - offsetof(struct AdditionalSpecialSubframe_Info, _asn_ctx), - asn_MAP_AdditionalSpecialSubframe_Info_tag2el_1, - 4, /* Count of tags in the map */ - asn_MAP_AdditionalSpecialSubframe_Info_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 4, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_AdditionalSpecialSubframe_Info = { - "AdditionalSpecialSubframe-Info", - "AdditionalSpecialSubframe-Info", - &asn_OP_SEQUENCE, - asn_DEF_AdditionalSpecialSubframe_Info_tags_1, - sizeof(asn_DEF_AdditionalSpecialSubframe_Info_tags_1) - /sizeof(asn_DEF_AdditionalSpecialSubframe_Info_tags_1[0]), /* 1 */ - asn_DEF_AdditionalSpecialSubframe_Info_tags_1, /* Same as above */ - sizeof(asn_DEF_AdditionalSpecialSubframe_Info_tags_1) - /sizeof(asn_DEF_AdditionalSpecialSubframe_Info_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_AdditionalSpecialSubframe_Info_1, - 4, /* Elements count */ - &asn_SPC_AdditionalSpecialSubframe_Info_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/AdditionalSpecialSubframe-Info.h b/e2sim/previous/ASN1c/AdditionalSpecialSubframe-Info.h deleted file mode 100644 index 0145105..0000000 --- a/e2sim/previous/ASN1c/AdditionalSpecialSubframe-Info.h +++ /dev/null @@ -1,70 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _AdditionalSpecialSubframe_Info_H_ -#define _AdditionalSpecialSubframe_Info_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "AdditionalSpecialSubframePatterns.h" -#include "CyclicPrefixDL.h" -#include "CyclicPrefixUL.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* AdditionalSpecialSubframe-Info */ -typedef struct AdditionalSpecialSubframe_Info { - AdditionalSpecialSubframePatterns_t additionalspecialSubframePatterns; - CyclicPrefixDL_t cyclicPrefixDL; - CyclicPrefixUL_t cyclicPrefixUL; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} AdditionalSpecialSubframe_Info_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_AdditionalSpecialSubframe_Info; -extern asn_SEQUENCE_specifics_t asn_SPC_AdditionalSpecialSubframe_Info_specs_1; -extern asn_TYPE_member_t asn_MBR_AdditionalSpecialSubframe_Info_1[4]; - -#ifdef __cplusplus -} -#endif - -#endif /* _AdditionalSpecialSubframe_Info_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/AdditionalSpecialSubframeExtension-Info.c b/e2sim/previous/ASN1c/AdditionalSpecialSubframeExtension-Info.c deleted file mode 100644 index 2c88de2..0000000 --- a/e2sim/previous/ASN1c/AdditionalSpecialSubframeExtension-Info.c +++ /dev/null @@ -1,101 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "AdditionalSpecialSubframeExtension-Info.h" - -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_AdditionalSpecialSubframeExtension_Info_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct AdditionalSpecialSubframeExtension_Info, additionalspecialSubframePatternsExtension), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_AdditionalSpecialSubframePatternsExtension, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "additionalspecialSubframePatternsExtension" - }, - { ATF_NOFLAGS, 0, offsetof(struct AdditionalSpecialSubframeExtension_Info, cyclicPrefixDL), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_CyclicPrefixDL, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "cyclicPrefixDL" - }, - { ATF_NOFLAGS, 0, offsetof(struct AdditionalSpecialSubframeExtension_Info, cyclicPrefixUL), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_CyclicPrefixUL, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "cyclicPrefixUL" - }, - { ATF_POINTER, 1, offsetof(struct AdditionalSpecialSubframeExtension_Info, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P108, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_AdditionalSpecialSubframeExtension_Info_oms_1[] = { 3 }; -static const ber_tlv_tag_t asn_DEF_AdditionalSpecialSubframeExtension_Info_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_AdditionalSpecialSubframeExtension_Info_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* additionalspecialSubframePatternsExtension */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* cyclicPrefixDL */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* cyclicPrefixUL */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_AdditionalSpecialSubframeExtension_Info_specs_1 = { - sizeof(struct AdditionalSpecialSubframeExtension_Info), - offsetof(struct AdditionalSpecialSubframeExtension_Info, _asn_ctx), - asn_MAP_AdditionalSpecialSubframeExtension_Info_tag2el_1, - 4, /* Count of tags in the map */ - asn_MAP_AdditionalSpecialSubframeExtension_Info_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 4, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_AdditionalSpecialSubframeExtension_Info = { - "AdditionalSpecialSubframeExtension-Info", - "AdditionalSpecialSubframeExtension-Info", - &asn_OP_SEQUENCE, - asn_DEF_AdditionalSpecialSubframeExtension_Info_tags_1, - sizeof(asn_DEF_AdditionalSpecialSubframeExtension_Info_tags_1) - /sizeof(asn_DEF_AdditionalSpecialSubframeExtension_Info_tags_1[0]), /* 1 */ - asn_DEF_AdditionalSpecialSubframeExtension_Info_tags_1, /* Same as above */ - sizeof(asn_DEF_AdditionalSpecialSubframeExtension_Info_tags_1) - /sizeof(asn_DEF_AdditionalSpecialSubframeExtension_Info_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_AdditionalSpecialSubframeExtension_Info_1, - 4, /* Elements count */ - &asn_SPC_AdditionalSpecialSubframeExtension_Info_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/AdditionalSpecialSubframeExtension-Info.h b/e2sim/previous/ASN1c/AdditionalSpecialSubframeExtension-Info.h deleted file mode 100644 index 5be0df6..0000000 --- a/e2sim/previous/ASN1c/AdditionalSpecialSubframeExtension-Info.h +++ /dev/null @@ -1,70 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _AdditionalSpecialSubframeExtension_Info_H_ -#define _AdditionalSpecialSubframeExtension_Info_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "AdditionalSpecialSubframePatternsExtension.h" -#include "CyclicPrefixDL.h" -#include "CyclicPrefixUL.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* AdditionalSpecialSubframeExtension-Info */ -typedef struct AdditionalSpecialSubframeExtension_Info { - AdditionalSpecialSubframePatternsExtension_t additionalspecialSubframePatternsExtension; - CyclicPrefixDL_t cyclicPrefixDL; - CyclicPrefixUL_t cyclicPrefixUL; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} AdditionalSpecialSubframeExtension_Info_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_AdditionalSpecialSubframeExtension_Info; -extern asn_SEQUENCE_specifics_t asn_SPC_AdditionalSpecialSubframeExtension_Info_specs_1; -extern asn_TYPE_member_t asn_MBR_AdditionalSpecialSubframeExtension_Info_1[4]; - -#ifdef __cplusplus -} -#endif - -#endif /* _AdditionalSpecialSubframeExtension_Info_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/AdditionalSpecialSubframePatterns.c b/e2sim/previous/ASN1c/AdditionalSpecialSubframePatterns.c deleted file mode 100644 index 76ddb4d..0000000 --- a/e2sim/previous/ASN1c/AdditionalSpecialSubframePatterns.c +++ /dev/null @@ -1,89 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "AdditionalSpecialSubframePatterns.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_AdditionalSpecialSubframePatterns_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 4, 4, 0, 9 } /* (0..9,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_AdditionalSpecialSubframePatterns_value2enum_1[] = { - { 0, 4, "ssp0" }, - { 1, 4, "ssp1" }, - { 2, 4, "ssp2" }, - { 3, 4, "ssp3" }, - { 4, 4, "ssp4" }, - { 5, 4, "ssp5" }, - { 6, 4, "ssp6" }, - { 7, 4, "ssp7" }, - { 8, 4, "ssp8" }, - { 9, 4, "ssp9" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_AdditionalSpecialSubframePatterns_enum2value_1[] = { - 0, /* ssp0(0) */ - 1, /* ssp1(1) */ - 2, /* ssp2(2) */ - 3, /* ssp3(3) */ - 4, /* ssp4(4) */ - 5, /* ssp5(5) */ - 6, /* ssp6(6) */ - 7, /* ssp7(7) */ - 8, /* ssp8(8) */ - 9 /* ssp9(9) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_AdditionalSpecialSubframePatterns_specs_1 = { - asn_MAP_AdditionalSpecialSubframePatterns_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_AdditionalSpecialSubframePatterns_enum2value_1, /* N => "tag"; sorted by N */ - 10, /* Number of elements in the maps */ - 11, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_AdditionalSpecialSubframePatterns_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_AdditionalSpecialSubframePatterns = { - "AdditionalSpecialSubframePatterns", - "AdditionalSpecialSubframePatterns", - &asn_OP_NativeEnumerated, - asn_DEF_AdditionalSpecialSubframePatterns_tags_1, - sizeof(asn_DEF_AdditionalSpecialSubframePatterns_tags_1) - /sizeof(asn_DEF_AdditionalSpecialSubframePatterns_tags_1[0]), /* 1 */ - asn_DEF_AdditionalSpecialSubframePatterns_tags_1, /* Same as above */ - sizeof(asn_DEF_AdditionalSpecialSubframePatterns_tags_1) - /sizeof(asn_DEF_AdditionalSpecialSubframePatterns_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_AdditionalSpecialSubframePatterns_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_AdditionalSpecialSubframePatterns_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/AdditionalSpecialSubframePatterns.h b/e2sim/previous/ASN1c/AdditionalSpecialSubframePatterns.h deleted file mode 100644 index 62c987a..0000000 --- a/e2sim/previous/ASN1c/AdditionalSpecialSubframePatterns.h +++ /dev/null @@ -1,80 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _AdditionalSpecialSubframePatterns_H_ -#define _AdditionalSpecialSubframePatterns_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum AdditionalSpecialSubframePatterns { - AdditionalSpecialSubframePatterns_ssp0 = 0, - AdditionalSpecialSubframePatterns_ssp1 = 1, - AdditionalSpecialSubframePatterns_ssp2 = 2, - AdditionalSpecialSubframePatterns_ssp3 = 3, - AdditionalSpecialSubframePatterns_ssp4 = 4, - AdditionalSpecialSubframePatterns_ssp5 = 5, - AdditionalSpecialSubframePatterns_ssp6 = 6, - AdditionalSpecialSubframePatterns_ssp7 = 7, - AdditionalSpecialSubframePatterns_ssp8 = 8, - AdditionalSpecialSubframePatterns_ssp9 = 9 - /* - * Enumeration is extensible - */ -} e_AdditionalSpecialSubframePatterns; - -/* AdditionalSpecialSubframePatterns */ -typedef long AdditionalSpecialSubframePatterns_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_AdditionalSpecialSubframePatterns_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_AdditionalSpecialSubframePatterns; -extern const asn_INTEGER_specifics_t asn_SPC_AdditionalSpecialSubframePatterns_specs_1; -asn_struct_free_f AdditionalSpecialSubframePatterns_free; -asn_struct_print_f AdditionalSpecialSubframePatterns_print; -asn_constr_check_f AdditionalSpecialSubframePatterns_constraint; -ber_type_decoder_f AdditionalSpecialSubframePatterns_decode_ber; -der_type_encoder_f AdditionalSpecialSubframePatterns_encode_der; -xer_type_decoder_f AdditionalSpecialSubframePatterns_decode_xer; -xer_type_encoder_f AdditionalSpecialSubframePatterns_encode_xer; -per_type_decoder_f AdditionalSpecialSubframePatterns_decode_uper; -per_type_encoder_f AdditionalSpecialSubframePatterns_encode_uper; -per_type_decoder_f AdditionalSpecialSubframePatterns_decode_aper; -per_type_encoder_f AdditionalSpecialSubframePatterns_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _AdditionalSpecialSubframePatterns_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/AdditionalSpecialSubframePatternsExtension.c b/e2sim/previous/ASN1c/AdditionalSpecialSubframePatternsExtension.c deleted file mode 100644 index bd809ac..0000000 --- a/e2sim/previous/ASN1c/AdditionalSpecialSubframePatternsExtension.c +++ /dev/null @@ -1,71 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "AdditionalSpecialSubframePatternsExtension.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_AdditionalSpecialSubframePatternsExtension_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 0, 0 } /* (0..0,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_AdditionalSpecialSubframePatternsExtension_value2enum_1[] = { - { 0, 5, "ssp10" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_AdditionalSpecialSubframePatternsExtension_enum2value_1[] = { - 0 /* ssp10(0) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_AdditionalSpecialSubframePatternsExtension_specs_1 = { - asn_MAP_AdditionalSpecialSubframePatternsExtension_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_AdditionalSpecialSubframePatternsExtension_enum2value_1, /* N => "tag"; sorted by N */ - 1, /* Number of elements in the maps */ - 2, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_AdditionalSpecialSubframePatternsExtension_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_AdditionalSpecialSubframePatternsExtension = { - "AdditionalSpecialSubframePatternsExtension", - "AdditionalSpecialSubframePatternsExtension", - &asn_OP_NativeEnumerated, - asn_DEF_AdditionalSpecialSubframePatternsExtension_tags_1, - sizeof(asn_DEF_AdditionalSpecialSubframePatternsExtension_tags_1) - /sizeof(asn_DEF_AdditionalSpecialSubframePatternsExtension_tags_1[0]), /* 1 */ - asn_DEF_AdditionalSpecialSubframePatternsExtension_tags_1, /* Same as above */ - sizeof(asn_DEF_AdditionalSpecialSubframePatternsExtension_tags_1) - /sizeof(asn_DEF_AdditionalSpecialSubframePatternsExtension_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_AdditionalSpecialSubframePatternsExtension_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_AdditionalSpecialSubframePatternsExtension_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/AdditionalSpecialSubframePatternsExtension.h b/e2sim/previous/ASN1c/AdditionalSpecialSubframePatternsExtension.h deleted file mode 100644 index 70c8a80..0000000 --- a/e2sim/previous/ASN1c/AdditionalSpecialSubframePatternsExtension.h +++ /dev/null @@ -1,71 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _AdditionalSpecialSubframePatternsExtension_H_ -#define _AdditionalSpecialSubframePatternsExtension_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum AdditionalSpecialSubframePatternsExtension { - AdditionalSpecialSubframePatternsExtension_ssp10 = 0 - /* - * Enumeration is extensible - */ -} e_AdditionalSpecialSubframePatternsExtension; - -/* AdditionalSpecialSubframePatternsExtension */ -typedef long AdditionalSpecialSubframePatternsExtension_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_AdditionalSpecialSubframePatternsExtension_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_AdditionalSpecialSubframePatternsExtension; -extern const asn_INTEGER_specifics_t asn_SPC_AdditionalSpecialSubframePatternsExtension_specs_1; -asn_struct_free_f AdditionalSpecialSubframePatternsExtension_free; -asn_struct_print_f AdditionalSpecialSubframePatternsExtension_print; -asn_constr_check_f AdditionalSpecialSubframePatternsExtension_constraint; -ber_type_decoder_f AdditionalSpecialSubframePatternsExtension_decode_ber; -der_type_encoder_f AdditionalSpecialSubframePatternsExtension_encode_der; -xer_type_decoder_f AdditionalSpecialSubframePatternsExtension_decode_xer; -xer_type_encoder_f AdditionalSpecialSubframePatternsExtension_encode_xer; -per_type_decoder_f AdditionalSpecialSubframePatternsExtension_decode_uper; -per_type_encoder_f AdditionalSpecialSubframePatternsExtension_encode_uper; -per_type_decoder_f AdditionalSpecialSubframePatternsExtension_decode_aper; -per_type_encoder_f AdditionalSpecialSubframePatternsExtension_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _AdditionalSpecialSubframePatternsExtension_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/AerialUEsubscriptionInformation.c b/e2sim/previous/ASN1c/AerialUEsubscriptionInformation.c deleted file mode 100644 index 5e632f7..0000000 --- a/e2sim/previous/ASN1c/AerialUEsubscriptionInformation.c +++ /dev/null @@ -1,73 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "AerialUEsubscriptionInformation.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_AerialUEsubscriptionInformation_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_AerialUEsubscriptionInformation_value2enum_1[] = { - { 0, 7, "allowed" }, - { 1, 11, "not-allowed" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_AerialUEsubscriptionInformation_enum2value_1[] = { - 0, /* allowed(0) */ - 1 /* not-allowed(1) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_AerialUEsubscriptionInformation_specs_1 = { - asn_MAP_AerialUEsubscriptionInformation_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_AerialUEsubscriptionInformation_enum2value_1, /* N => "tag"; sorted by N */ - 2, /* Number of elements in the maps */ - 3, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_AerialUEsubscriptionInformation_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_AerialUEsubscriptionInformation = { - "AerialUEsubscriptionInformation", - "AerialUEsubscriptionInformation", - &asn_OP_NativeEnumerated, - asn_DEF_AerialUEsubscriptionInformation_tags_1, - sizeof(asn_DEF_AerialUEsubscriptionInformation_tags_1) - /sizeof(asn_DEF_AerialUEsubscriptionInformation_tags_1[0]), /* 1 */ - asn_DEF_AerialUEsubscriptionInformation_tags_1, /* Same as above */ - sizeof(asn_DEF_AerialUEsubscriptionInformation_tags_1) - /sizeof(asn_DEF_AerialUEsubscriptionInformation_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_AerialUEsubscriptionInformation_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_AerialUEsubscriptionInformation_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/AerialUEsubscriptionInformation.h b/e2sim/previous/ASN1c/AerialUEsubscriptionInformation.h deleted file mode 100644 index 528332d..0000000 --- a/e2sim/previous/ASN1c/AerialUEsubscriptionInformation.h +++ /dev/null @@ -1,72 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _AerialUEsubscriptionInformation_H_ -#define _AerialUEsubscriptionInformation_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum AerialUEsubscriptionInformation { - AerialUEsubscriptionInformation_allowed = 0, - AerialUEsubscriptionInformation_not_allowed = 1 - /* - * Enumeration is extensible - */ -} e_AerialUEsubscriptionInformation; - -/* AerialUEsubscriptionInformation */ -typedef long AerialUEsubscriptionInformation_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_AerialUEsubscriptionInformation_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_AerialUEsubscriptionInformation; -extern const asn_INTEGER_specifics_t asn_SPC_AerialUEsubscriptionInformation_specs_1; -asn_struct_free_f AerialUEsubscriptionInformation_free; -asn_struct_print_f AerialUEsubscriptionInformation_print; -asn_constr_check_f AerialUEsubscriptionInformation_constraint; -ber_type_decoder_f AerialUEsubscriptionInformation_decode_ber; -der_type_encoder_f AerialUEsubscriptionInformation_encode_der; -xer_type_decoder_f AerialUEsubscriptionInformation_decode_xer; -xer_type_encoder_f AerialUEsubscriptionInformation_encode_xer; -per_type_decoder_f AerialUEsubscriptionInformation_decode_uper; -per_type_encoder_f AerialUEsubscriptionInformation_encode_uper; -per_type_decoder_f AerialUEsubscriptionInformation_decode_aper; -per_type_encoder_f AerialUEsubscriptionInformation_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _AerialUEsubscriptionInformation_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/AllocationAndRetentionPriority.c b/e2sim/previous/ASN1c/AllocationAndRetentionPriority.c deleted file mode 100644 index 0411ea9..0000000 --- a/e2sim/previous/ASN1c/AllocationAndRetentionPriority.c +++ /dev/null @@ -1,101 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "AllocationAndRetentionPriority.h" - -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_AllocationAndRetentionPriority_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct AllocationAndRetentionPriority, priorityLevel), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_PriorityLevel, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "priorityLevel" - }, - { ATF_NOFLAGS, 0, offsetof(struct AllocationAndRetentionPriority, pre_emptionCapability), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Pre_emptionCapability, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "pre-emptionCapability" - }, - { ATF_NOFLAGS, 0, offsetof(struct AllocationAndRetentionPriority, pre_emptionVulnerability), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Pre_emptionVulnerability, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "pre-emptionVulnerability" - }, - { ATF_POINTER, 1, offsetof(struct AllocationAndRetentionPriority, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P109, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_AllocationAndRetentionPriority_oms_1[] = { 3 }; -static const ber_tlv_tag_t asn_DEF_AllocationAndRetentionPriority_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_AllocationAndRetentionPriority_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* priorityLevel */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* pre-emptionCapability */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* pre-emptionVulnerability */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_AllocationAndRetentionPriority_specs_1 = { - sizeof(struct AllocationAndRetentionPriority), - offsetof(struct AllocationAndRetentionPriority, _asn_ctx), - asn_MAP_AllocationAndRetentionPriority_tag2el_1, - 4, /* Count of tags in the map */ - asn_MAP_AllocationAndRetentionPriority_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 4, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_AllocationAndRetentionPriority = { - "AllocationAndRetentionPriority", - "AllocationAndRetentionPriority", - &asn_OP_SEQUENCE, - asn_DEF_AllocationAndRetentionPriority_tags_1, - sizeof(asn_DEF_AllocationAndRetentionPriority_tags_1) - /sizeof(asn_DEF_AllocationAndRetentionPriority_tags_1[0]), /* 1 */ - asn_DEF_AllocationAndRetentionPriority_tags_1, /* Same as above */ - sizeof(asn_DEF_AllocationAndRetentionPriority_tags_1) - /sizeof(asn_DEF_AllocationAndRetentionPriority_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_AllocationAndRetentionPriority_1, - 4, /* Elements count */ - &asn_SPC_AllocationAndRetentionPriority_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/AllocationAndRetentionPriority.h b/e2sim/previous/ASN1c/AllocationAndRetentionPriority.h deleted file mode 100644 index f46ba79..0000000 --- a/e2sim/previous/ASN1c/AllocationAndRetentionPriority.h +++ /dev/null @@ -1,70 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _AllocationAndRetentionPriority_H_ -#define _AllocationAndRetentionPriority_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "PriorityLevel.h" -#include "Pre-emptionCapability.h" -#include "Pre-emptionVulnerability.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* AllocationAndRetentionPriority */ -typedef struct AllocationAndRetentionPriority { - PriorityLevel_t priorityLevel; - Pre_emptionCapability_t pre_emptionCapability; - Pre_emptionVulnerability_t pre_emptionVulnerability; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} AllocationAndRetentionPriority_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_AllocationAndRetentionPriority; -extern asn_SEQUENCE_specifics_t asn_SPC_AllocationAndRetentionPriority_specs_1; -extern asn_TYPE_member_t asn_MBR_AllocationAndRetentionPriority_1[4]; - -#ifdef __cplusplus -} -#endif - -#endif /* _AllocationAndRetentionPriority_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/AreaScopeOfMDT.c b/e2sim/previous/ASN1c/AreaScopeOfMDT.c deleted file mode 100644 index 3158494..0000000 --- a/e2sim/previous/ASN1c/AreaScopeOfMDT.c +++ /dev/null @@ -1,103 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "AreaScopeOfMDT.h" - -#include "CellBasedMDT.h" -#include "TABasedMDT.h" -#include "TAIBasedMDT.h" -asn_per_constraints_t asn_PER_type_AreaScopeOfMDT_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 2 } /* (0..2,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_AreaScopeOfMDT_1[] = { - { ATF_POINTER, 0, offsetof(struct AreaScopeOfMDT, choice.cellBased), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_CellBasedMDT, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "cellBased" - }, - { ATF_POINTER, 0, offsetof(struct AreaScopeOfMDT, choice.tABased), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_TABasedMDT, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "tABased" - }, - { ATF_NOFLAGS, 0, offsetof(struct AreaScopeOfMDT, choice.pLMNWide), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NULL, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "pLMNWide" - }, - { ATF_POINTER, 0, offsetof(struct AreaScopeOfMDT, choice.tAIBased), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_TAIBasedMDT, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "tAIBased" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_AreaScopeOfMDT_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* cellBased */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* tABased */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* pLMNWide */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* tAIBased */ -}; -asn_CHOICE_specifics_t asn_SPC_AreaScopeOfMDT_specs_1 = { - sizeof(struct AreaScopeOfMDT), - offsetof(struct AreaScopeOfMDT, _asn_ctx), - offsetof(struct AreaScopeOfMDT, present), - sizeof(((struct AreaScopeOfMDT *)0)->present), - asn_MAP_AreaScopeOfMDT_tag2el_1, - 4, /* Count of tags in the map */ - 0, 0, - 3 /* Extensions start */ -}; -asn_TYPE_descriptor_t asn_DEF_AreaScopeOfMDT = { - "AreaScopeOfMDT", - "AreaScopeOfMDT", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, &asn_PER_type_AreaScopeOfMDT_constr_1, CHOICE_constraint }, - asn_MBR_AreaScopeOfMDT_1, - 4, /* Elements count */ - &asn_SPC_AreaScopeOfMDT_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/AreaScopeOfMDT.h b/e2sim/previous/ASN1c/AreaScopeOfMDT.h deleted file mode 100644 index d4664e9..0000000 --- a/e2sim/previous/ASN1c/AreaScopeOfMDT.h +++ /dev/null @@ -1,84 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _AreaScopeOfMDT_H_ -#define _AreaScopeOfMDT_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NULL.h" -#include "constr_CHOICE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum AreaScopeOfMDT_PR { - AreaScopeOfMDT_PR_NOTHING, /* No components present */ - AreaScopeOfMDT_PR_cellBased, - AreaScopeOfMDT_PR_tABased, - AreaScopeOfMDT_PR_pLMNWide, - /* Extensions may appear below */ - AreaScopeOfMDT_PR_tAIBased -} AreaScopeOfMDT_PR; - -/* Forward declarations */ -struct CellBasedMDT; -struct TABasedMDT; -struct TAIBasedMDT; - -/* AreaScopeOfMDT */ -typedef struct AreaScopeOfMDT { - AreaScopeOfMDT_PR present; - union AreaScopeOfMDT_u { - struct CellBasedMDT *cellBased; - struct TABasedMDT *tABased; - NULL_t pLMNWide; - /* - * This type is extensible, - * possible extensions are below. - */ - struct TAIBasedMDT *tAIBased; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} AreaScopeOfMDT_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_AreaScopeOfMDT; -extern asn_CHOICE_specifics_t asn_SPC_AreaScopeOfMDT_specs_1; -extern asn_TYPE_member_t asn_MBR_AreaScopeOfMDT_1[4]; -extern asn_per_constraints_t asn_PER_type_AreaScopeOfMDT_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _AreaScopeOfMDT_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/AreaScopeOfQMC.c b/e2sim/previous/ASN1c/AreaScopeOfQMC.c deleted file mode 100644 index 23bb37a..0000000 --- a/e2sim/previous/ASN1c/AreaScopeOfQMC.c +++ /dev/null @@ -1,104 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "AreaScopeOfQMC.h" - -#include "CellBasedQMC.h" -#include "TABasedQMC.h" -#include "TAIBasedQMC.h" -#include "PLMNAreaBasedQMC.h" -asn_per_constraints_t asn_PER_type_AreaScopeOfQMC_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 3 } /* (0..3,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_AreaScopeOfQMC_1[] = { - { ATF_POINTER, 0, offsetof(struct AreaScopeOfQMC, choice.cellBased), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_CellBasedQMC, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "cellBased" - }, - { ATF_POINTER, 0, offsetof(struct AreaScopeOfQMC, choice.tABased), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_TABasedQMC, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "tABased" - }, - { ATF_POINTER, 0, offsetof(struct AreaScopeOfQMC, choice.tAIBased), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_TAIBasedQMC, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "tAIBased" - }, - { ATF_POINTER, 0, offsetof(struct AreaScopeOfQMC, choice.pLMNAreaBased), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_PLMNAreaBasedQMC, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "pLMNAreaBased" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_AreaScopeOfQMC_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* cellBased */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* tABased */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* tAIBased */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* pLMNAreaBased */ -}; -asn_CHOICE_specifics_t asn_SPC_AreaScopeOfQMC_specs_1 = { - sizeof(struct AreaScopeOfQMC), - offsetof(struct AreaScopeOfQMC, _asn_ctx), - offsetof(struct AreaScopeOfQMC, present), - sizeof(((struct AreaScopeOfQMC *)0)->present), - asn_MAP_AreaScopeOfQMC_tag2el_1, - 4, /* Count of tags in the map */ - 0, 0, - 4 /* Extensions start */ -}; -asn_TYPE_descriptor_t asn_DEF_AreaScopeOfQMC = { - "AreaScopeOfQMC", - "AreaScopeOfQMC", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, &asn_PER_type_AreaScopeOfQMC_constr_1, CHOICE_constraint }, - asn_MBR_AreaScopeOfQMC_1, - 4, /* Elements count */ - &asn_SPC_AreaScopeOfQMC_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/AreaScopeOfQMC.h b/e2sim/previous/ASN1c/AreaScopeOfQMC.h deleted file mode 100644 index c88bd30..0000000 --- a/e2sim/previous/ASN1c/AreaScopeOfQMC.h +++ /dev/null @@ -1,85 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _AreaScopeOfQMC_H_ -#define _AreaScopeOfQMC_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "constr_CHOICE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum AreaScopeOfQMC_PR { - AreaScopeOfQMC_PR_NOTHING, /* No components present */ - AreaScopeOfQMC_PR_cellBased, - AreaScopeOfQMC_PR_tABased, - AreaScopeOfQMC_PR_tAIBased, - AreaScopeOfQMC_PR_pLMNAreaBased - /* Extensions may appear below */ - -} AreaScopeOfQMC_PR; - -/* Forward declarations */ -struct CellBasedQMC; -struct TABasedQMC; -struct TAIBasedQMC; -struct PLMNAreaBasedQMC; - -/* AreaScopeOfQMC */ -typedef struct AreaScopeOfQMC { - AreaScopeOfQMC_PR present; - union AreaScopeOfQMC_u { - struct CellBasedQMC *cellBased; - struct TABasedQMC *tABased; - struct TAIBasedQMC *tAIBased; - struct PLMNAreaBasedQMC *pLMNAreaBased; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} AreaScopeOfQMC_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_AreaScopeOfQMC; -extern asn_CHOICE_specifics_t asn_SPC_AreaScopeOfQMC_specs_1; -extern asn_TYPE_member_t asn_MBR_AreaScopeOfQMC_1[4]; -extern asn_per_constraints_t asn_PER_type_AreaScopeOfQMC_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _AreaScopeOfQMC_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/BIT_STRING.c b/e2sim/previous/ASN1c/BIT_STRING.c deleted file mode 100644 index a4b724e..0000000 --- a/e2sim/previous/ASN1c/BIT_STRING.c +++ /dev/null @@ -1,674 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/*- - * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include - -/* - * BIT STRING basic type description. - */ -static const ber_tlv_tag_t asn_DEF_BIT_STRING_tags[] = { - (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) -}; -asn_OCTET_STRING_specifics_t asn_SPC_BIT_STRING_specs = { - sizeof(BIT_STRING_t), - offsetof(BIT_STRING_t, _asn_ctx), - ASN_OSUBV_BIT -}; -asn_TYPE_operation_t asn_OP_BIT_STRING = { - OCTET_STRING_free, /* Implemented in terms of OCTET STRING */ - BIT_STRING_print, - BIT_STRING_compare, - OCTET_STRING_decode_ber, /* Implemented in terms of OCTET STRING */ - OCTET_STRING_encode_der, /* Implemented in terms of OCTET STRING */ - OCTET_STRING_decode_xer_binary, - BIT_STRING_encode_xer, -#ifdef ASN_DISABLE_OER_SUPPORT - 0, - 0, -#else - BIT_STRING_decode_oer, - BIT_STRING_encode_oer, -#endif /* ASN_DISABLE_OER_SUPPORT */ -#ifdef ASN_DISABLE_PER_SUPPORT - 0, - 0, - 0, - 0, -#else - BIT_STRING_decode_uper, /* Unaligned PER decoder */ - BIT_STRING_encode_uper, /* Unaligned PER encoder */ - OCTET_STRING_decode_aper, /* Aligned PER decoder */ - OCTET_STRING_encode_aper, /* Aligned PER encoder */ -#endif /* ASN_DISABLE_PER_SUPPORT */ - BIT_STRING_random_fill, - 0 /* Use generic outmost tag fetcher */ -}; -asn_TYPE_descriptor_t asn_DEF_BIT_STRING = { - "BIT STRING", - "BIT_STRING", - &asn_OP_BIT_STRING, - asn_DEF_BIT_STRING_tags, - sizeof(asn_DEF_BIT_STRING_tags) - / sizeof(asn_DEF_BIT_STRING_tags[0]), - asn_DEF_BIT_STRING_tags, /* Same as above */ - sizeof(asn_DEF_BIT_STRING_tags) - / sizeof(asn_DEF_BIT_STRING_tags[0]), - { 0, 0, BIT_STRING_constraint }, - 0, 0, /* No members */ - &asn_SPC_BIT_STRING_specs -}; - -/* - * BIT STRING generic constraint. - */ -int -BIT_STRING_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - - if(st && st->buf) { - if((st->size == 0 && st->bits_unused) - || st->bits_unused < 0 || st->bits_unused > 7) { - ASN__CTFAIL(app_key, td, sptr, - "%s: invalid padding byte (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - return 0; -} - -static const char *_bit_pattern[16] = { - "0000", "0001", "0010", "0011", "0100", "0101", "0110", "0111", - "1000", "1001", "1010", "1011", "1100", "1101", "1110", "1111" -}; - -asn_enc_rval_t -BIT_STRING_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, - int ilevel, enum xer_encoder_flags_e flags, - asn_app_consume_bytes_f *cb, void *app_key) { - asn_enc_rval_t er = {0, 0, 0}; - char scratch[128]; - char *p = scratch; - char *scend = scratch + (sizeof(scratch) - 10); - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - int xcan = (flags & XER_F_CANONICAL); - uint8_t *buf; - uint8_t *end; - - if(!st || !st->buf) - ASN__ENCODE_FAILED; - - er.encoded = 0; - - buf = st->buf; - end = buf + st->size - 1; /* Last byte is special */ - - /* - * Binary dump - */ - for(; buf < end; buf++) { - int v = *buf; - int nline = xcan?0:(((buf - st->buf) % 8) == 0); - if(p >= scend || nline) { - ASN__CALLBACK(scratch, p - scratch); - p = scratch; - if(nline) ASN__TEXT_INDENT(1, ilevel); - } - memcpy(p + 0, _bit_pattern[v >> 4], 4); - memcpy(p + 4, _bit_pattern[v & 0x0f], 4); - p += 8; - } - - if(!xcan && ((buf - st->buf) % 8) == 0) - ASN__TEXT_INDENT(1, ilevel); - ASN__CALLBACK(scratch, p - scratch); - p = scratch; - - if(buf == end) { - int v = *buf; - int ubits = st->bits_unused; - int i; - for(i = 7; i >= ubits; i--) - *p++ = (v & (1 << i)) ? 0x31 : 0x30; - ASN__CALLBACK(scratch, p - scratch); - } - - if(!xcan) ASN__TEXT_INDENT(1, ilevel - 1); - - ASN__ENCODED_OK(er); -cb_failed: - ASN__ENCODE_FAILED; -} - - -/* - * BIT STRING specific contents printer. - */ -int -BIT_STRING_print(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, - asn_app_consume_bytes_f *cb, void *app_key) { - const char * const h2c = "0123456789ABCDEF"; - char scratch[64]; - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - uint8_t *buf; - uint8_t *end; - char *p = scratch; - - (void)td; /* Unused argument */ - - if(!st || !st->buf) - return (cb("", 8, app_key) < 0) ? -1 : 0; - - ilevel++; - buf = st->buf; - end = buf + st->size; - - /* - * Hexadecimal dump. - */ - for(; buf < end; buf++) { - if((buf - st->buf) % 16 == 0 && (st->size > 16) - && buf != st->buf) { - _i_INDENT(1); - /* Dump the string */ - if(cb(scratch, p - scratch, app_key) < 0) return -1; - p = scratch; - } - *p++ = h2c[*buf >> 4]; - *p++ = h2c[*buf & 0x0F]; - *p++ = 0x20; - } - - if(p > scratch) { - p--; /* Eat the tailing space */ - - if((st->size > 16)) { - _i_INDENT(1); - } - - /* Dump the incomplete 16-bytes row */ - if(cb(scratch, p - scratch, app_key) < 0) - return -1; - } - - if(st->bits_unused) { - int ret = snprintf(scratch, sizeof(scratch), " (%d bit%s unused)", - st->bits_unused, st->bits_unused == 1 ? "" : "s"); - assert(ret > 0 && ret < (ssize_t)sizeof(scratch)); - if(ret > 0 && ret < (ssize_t)sizeof(scratch) - && cb(scratch, ret, app_key) < 0) - return -1; - } - - return 0; -} - -/* - * Non-destructively remove the trailing 0-bits from the given bit string. - */ -static const BIT_STRING_t * -BIT_STRING__compactify(const BIT_STRING_t *st, BIT_STRING_t *tmp) { - const uint8_t *b; - union { - const uint8_t *c_buf; - uint8_t *nc_buf; - } unconst; - - if(st->size == 0) { - assert(st->bits_unused == 0); - return st; - } else { - for(b = &st->buf[st->size - 1]; b > st->buf && *b == 0; b--) { - ; - } - /* b points to the last byte which may contain data */ - if(*b) { - int unused = 7; - uint8_t v = *b; - v &= -(int8_t)v; - if(v & 0x0F) unused -= 4; - if(v & 0x33) unused -= 2; - if(v & 0x55) unused -= 1; - tmp->size = b-st->buf + 1; - tmp->bits_unused = unused; - } else { - tmp->size = b-st->buf; - tmp->bits_unused = 0; - } - - assert(b >= st->buf); - } - - unconst.c_buf = st->buf; - tmp->buf = unconst.nc_buf; - return tmp; -} - -/* - * Lexicographically compare the common prefix of both strings, - * and if it is the same return -1 for the smallest string. - */ -int -BIT_STRING_compare(const asn_TYPE_descriptor_t *td, const void *aptr, - const void *bptr) { - /* - * Remove information about trailing bits, since - * X.680 (08/2015) #22.7 "ensure that different semantics are not" - * "associated with [values that differ only in] the trailing 0 bits." - */ - BIT_STRING_t compact_a, compact_b; - const BIT_STRING_t *a = BIT_STRING__compactify(aptr, &compact_a); - const BIT_STRING_t *b = BIT_STRING__compactify(bptr, &compact_b); - const asn_OCTET_STRING_specifics_t *specs = td->specifics; - - assert(specs && specs->subvariant == ASN_OSUBV_BIT); - - if(a && b) { - size_t common_prefix_size = a->size <= b->size ? a->size : b->size; - int ret = memcmp(a->buf, b->buf, common_prefix_size); - if(ret == 0) { - /* Figure out which string with equal prefixes is longer. */ - if(a->size < b->size) { - return -1; - } else if(a->size > b->size) { - return 1; - } else { - /* Figure out how many unused bits */ - if(a->bits_unused > b->bits_unused) { - return -1; - } else if(a->bits_unused < b->bits_unused) { - return 1; - } else { - return 0; - } - } - } else { - return ret; - } - } else if(!a && !b) { - return 0; - } else if(!a) { - return -1; - } else { - return 1; - } -} - -#ifndef ASN_DISABLE_PER_SUPPORT - -#undef RETURN -#define RETURN(_code) \ - do { \ - asn_dec_rval_t tmprval; \ - tmprval.code = _code; \ - tmprval.consumed = consumed_myself; \ - return tmprval; \ - } while(0) - -static asn_per_constraint_t asn_DEF_BIT_STRING_constraint_size = { - APC_SEMI_CONSTRAINED, -1, -1, 0, 0}; - -asn_dec_rval_t -BIT_STRING_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, - asn_per_data_t *pd) { - const asn_OCTET_STRING_specifics_t *specs = td->specifics - ? (const asn_OCTET_STRING_specifics_t *)td->specifics - : &asn_SPC_BIT_STRING_specs; - const asn_per_constraints_t *pc = - constraints ? constraints : td->encoding_constraints.per_constraints; - const asn_per_constraint_t *csiz; - asn_dec_rval_t rval = { RC_OK, 0 }; - BIT_STRING_t *st = (BIT_STRING_t *)*sptr; - ssize_t consumed_myself = 0; - int repeat; - - (void)opt_codec_ctx; - - if(pc) { - csiz = &pc->size; - } else { - csiz = &asn_DEF_BIT_STRING_constraint_size; - } - - if(specs->subvariant != ASN_OSUBV_BIT) { - ASN_DEBUG("Subvariant %d is not BIT OSUBV_BIT", specs->subvariant); - RETURN(RC_FAIL); - } - - /* - * Allocate the string. - */ - if(!st) { - st = (BIT_STRING_t *)(*sptr = CALLOC(1, specs->struct_size)); - if(!st) RETURN(RC_FAIL); - } - - ASN_DEBUG("PER Decoding %s size %ld .. %ld bits %d", - csiz->flags & APC_EXTENSIBLE ? "extensible" : "non-extensible", - csiz->lower_bound, csiz->upper_bound, csiz->effective_bits); - - if(csiz->flags & APC_EXTENSIBLE) { - int inext = per_get_few_bits(pd, 1); - if(inext < 0) RETURN(RC_WMORE); - if(inext) { - csiz = &asn_DEF_BIT_STRING_constraint_size; - } - } - - if(csiz->effective_bits >= 0) { - FREEMEM(st->buf); - st->size = (csiz->upper_bound + 7) >> 3; - st->buf = (uint8_t *)MALLOC(st->size + 1); - if(!st->buf) { st->size = 0; RETURN(RC_FAIL); } - } - - /* X.691, #16.5: zero-length encoding */ - /* X.691, #16.6: short fixed length encoding (up to 2 octets) */ - /* X.691, #16.7: long fixed length encoding (up to 64K octets) */ - if(csiz->effective_bits == 0) { - int ret; - ASN_DEBUG("Encoding BIT STRING size %ld", csiz->upper_bound); - ret = per_get_many_bits(pd, st->buf, 0, csiz->upper_bound); - if(ret < 0) RETURN(RC_WMORE); - consumed_myself += csiz->upper_bound; - st->buf[st->size] = 0; - st->bits_unused = (8 - (csiz->upper_bound & 0x7)) & 0x7; - RETURN(RC_OK); - } - - st->size = 0; - do { - ssize_t raw_len; - ssize_t len_bytes; - ssize_t len_bits; - void *p; - int ret; - - /* Get the PER length */ - raw_len = uper_get_length(pd, csiz->effective_bits, csiz->lower_bound, - &repeat); - if(raw_len < 0) RETURN(RC_WMORE); - if(raw_len == 0 && st->buf) break; - - ASN_DEBUG("Got PER length eb %ld, len %ld, %s (%s)", - (long)csiz->effective_bits, (long)raw_len, - repeat ? "repeat" : "once", td->name); - len_bits = raw_len; - len_bytes = (len_bits + 7) >> 3; - if(len_bits & 0x7) st->bits_unused = 8 - (len_bits & 0x7); - /* len_bits be multiple of 16K if repeat is set */ - p = REALLOC(st->buf, st->size + len_bytes + 1); - if(!p) RETURN(RC_FAIL); - st->buf = (uint8_t *)p; - - ret = per_get_many_bits(pd, &st->buf[st->size], 0, len_bits); - if(ret < 0) RETURN(RC_WMORE); - st->size += len_bytes; - } while(repeat); - st->buf[st->size] = 0; /* nul-terminate */ - - return rval; -} - -asn_enc_rval_t -BIT_STRING_encode_uper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_per_outp_t *po) { - const asn_OCTET_STRING_specifics_t *specs = - td->specifics ? (const asn_OCTET_STRING_specifics_t *)td->specifics - : &asn_SPC_BIT_STRING_specs; - const asn_per_constraints_t *pc = - constraints ? constraints : td->encoding_constraints.per_constraints; - const asn_per_constraint_t *csiz; - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - BIT_STRING_t compact_bstr; /* Do not modify this directly! */ - asn_enc_rval_t er = { 0, 0, 0 }; - int inext = 0; /* Lies not within extension root */ - size_t size_in_bits; - const uint8_t *buf; - int ret; - int ct_extensible; - - if(!st || (!st->buf && st->size)) - ASN__ENCODE_FAILED; - - if(specs->subvariant == ASN_OSUBV_BIT) { - if((st->size == 0 && st->bits_unused) || (st->bits_unused & ~7)) - ASN__ENCODE_FAILED; - } else { - ASN__ENCODE_FAILED; - } - - if(pc) { - csiz = &pc->size; - } else { - csiz = &asn_DEF_BIT_STRING_constraint_size; - } - ct_extensible = csiz->flags & APC_EXTENSIBLE; - - /* Figure out the size without the trailing bits */ - st = BIT_STRING__compactify(st, &compact_bstr); - size_in_bits = 8 * st->size - st->bits_unused; - - ASN_DEBUG( - "Encoding %s into %" ASN_PRI_SIZE " bits" - " (%ld..%ld, effective %d)%s", - td->name, size_in_bits, csiz->lower_bound, csiz->upper_bound, - csiz->effective_bits, ct_extensible ? " EXT" : ""); - - /* Figure out whether size lies within PER visible constraint */ - - if(csiz->effective_bits >= 0) { - if((ssize_t)size_in_bits > csiz->upper_bound) { - if(ct_extensible) { - csiz = &asn_DEF_BIT_STRING_constraint_size; - inext = 1; - } else { - ASN__ENCODE_FAILED; - } - } - } else { - inext = 0; - } - - if(ct_extensible) { - /* Declare whether length is [not] within extension root */ - if(per_put_few_bits(po, inext, 1)) - ASN__ENCODE_FAILED; - } - - if(csiz->effective_bits >= 0 && !inext) { - int add_trailer = (ssize_t)size_in_bits < csiz->lower_bound; - ASN_DEBUG( - "Encoding %" ASN_PRI_SIZE " bytes (%ld), length (in %d bits) trailer %d; actual " - "value %" ASN_PRI_SSIZE "", - st->size, size_in_bits - csiz->lower_bound, csiz->effective_bits, - add_trailer, - add_trailer ? 0 : (ssize_t)size_in_bits - csiz->lower_bound); - ret = per_put_few_bits( - po, add_trailer ? 0 : (ssize_t)size_in_bits - csiz->lower_bound, - csiz->effective_bits); - if(ret) ASN__ENCODE_FAILED; - ret = per_put_many_bits(po, st->buf, size_in_bits); - if(ret) ASN__ENCODE_FAILED; - if(add_trailer) { - static const uint8_t zeros[16]; - size_t trailing_zero_bits = csiz->lower_bound - size_in_bits; - while(trailing_zero_bits > 0) { - if(trailing_zero_bits > 8 * sizeof(zeros)) { - ret = per_put_many_bits(po, zeros, 8 * sizeof(zeros)); - trailing_zero_bits -= 8 * sizeof(zeros); - } else { - ret = per_put_many_bits(po, zeros, trailing_zero_bits); - trailing_zero_bits = 0; - } - if(ret) ASN__ENCODE_FAILED; - } - } - ASN__ENCODED_OK(er); - } - - ASN_DEBUG("Encoding %" ASN_PRI_SIZE " bytes", st->size); - - buf = st->buf; - do { - int need_eom = 0; - ssize_t maySave = uper_put_length(po, size_in_bits, &need_eom); - if(maySave < 0) ASN__ENCODE_FAILED; - - ASN_DEBUG("Encoding %" ASN_PRI_SSIZE " of %" ASN_PRI_SIZE "", maySave, size_in_bits); - - ret = per_put_many_bits(po, buf, maySave); - if(ret) ASN__ENCODE_FAILED; - - buf += maySave >> 3; - size_in_bits -= maySave; - assert(!(maySave & 0x07) || !size_in_bits); - if(need_eom && uper_put_length(po, 0, 0)) - ASN__ENCODE_FAILED; /* End of Message length */ - } while(size_in_bits); - - ASN__ENCODED_OK(er); -} - -#endif /* ASN_DISABLE_PER_SUPPORT */ - -asn_random_fill_result_t -BIT_STRING_random_fill(const asn_TYPE_descriptor_t *td, void **sptr, - const asn_encoding_constraints_t *constraints, - size_t max_length) { - const asn_OCTET_STRING_specifics_t *specs = - td->specifics ? (const asn_OCTET_STRING_specifics_t *)td->specifics - : &asn_SPC_BIT_STRING_specs; - asn_random_fill_result_t result_ok = {ARFILL_OK, 1}; - asn_random_fill_result_t result_failed = {ARFILL_FAILED, 0}; - asn_random_fill_result_t result_skipped = {ARFILL_SKIPPED, 0}; - static unsigned lengths[] = {0, 1, 2, 3, 4, 8, - 126, 127, 128, 16383, 16384, 16385, - 65534, 65535, 65536, 65537}; - uint8_t *buf; - uint8_t *bend; - uint8_t *b; - size_t rnd_bits, rnd_len; - BIT_STRING_t *st; - - if(max_length == 0) return result_skipped; - - switch(specs->subvariant) { - case ASN_OSUBV_ANY: - return result_failed; - case ASN_OSUBV_BIT: - break; - default: - break; - } - - /* Figure out how far we should go */ - rnd_bits = lengths[asn_random_between( - 0, sizeof(lengths) / sizeof(lengths[0]) - 1)]; - if(!constraints || !constraints->per_constraints) - constraints = &td->encoding_constraints; - if(constraints->per_constraints) { - const asn_per_constraint_t *pc = &constraints->per_constraints->size; - if(pc->flags & APC_CONSTRAINED) { - long suggested_upper_bound = pc->upper_bound < (ssize_t)max_length - ? pc->upper_bound - : (ssize_t)max_length; - if(max_length < (size_t)pc->lower_bound) { - return result_skipped; - } - if(pc->flags & APC_EXTENSIBLE) { - switch(asn_random_between(0, 5)) { - case 0: - if(pc->lower_bound > 0) { - rnd_bits = pc->lower_bound - 1; - break; - } - /* Fall through */ - case 1: - rnd_bits = pc->upper_bound + 1; - break; - case 2: - /* Keep rnd_bits from the table */ - if(rnd_bits < max_length) { - break; - } - /* Fall through */ - default: - rnd_bits = asn_random_between(pc->lower_bound, - suggested_upper_bound); - } - } else { - rnd_bits = - asn_random_between(pc->lower_bound, suggested_upper_bound); - } - } else { - rnd_bits = asn_random_between(0, max_length - 1); - } - } else if(rnd_bits >= max_length) { - rnd_bits = asn_random_between(0, max_length - 1); - } - - rnd_len = (rnd_bits + 7) / 8; - buf = CALLOC(1, rnd_len + 1); - if(!buf) return result_failed; - - bend = &buf[rnd_len]; - - for(b = buf; b < bend; b++) { - *(uint8_t *)b = asn_random_between(0, 255); - } - *b = 0; /* Zero-terminate just in case. */ - - if(*sptr) { - st = *sptr; - FREEMEM(st->buf); - } else { - st = (BIT_STRING_t *)(*sptr = CALLOC(1, specs->struct_size)); - if(!st) { - FREEMEM(buf); - return result_failed; - } - } - - st->buf = buf; - st->size = rnd_len; - st->bits_unused = (8 - (rnd_bits & 0x7)) & 0x7; - if(st->bits_unused) { - assert(st->size > 0); - st->buf[st->size-1] &= 0xff << st->bits_unused; - } - - result_ok.length = st->size; - return result_ok; -} diff --git a/e2sim/previous/ASN1c/BIT_STRING.h b/e2sim/previous/ASN1c/BIT_STRING.h deleted file mode 100644 index 7bd05b4..0000000 --- a/e2sim/previous/ASN1c/BIT_STRING.h +++ /dev/null @@ -1,66 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/*- - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef _BIT_STRING_H_ -#define _BIT_STRING_H_ - -#include /* Some help from OCTET STRING */ - -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct BIT_STRING_s { - uint8_t *buf; /* BIT STRING body */ - size_t size; /* Size of the above buffer */ - - int bits_unused;/* Unused trailing bits in the last octet (0..7) */ - - asn_struct_ctx_t _asn_ctx; /* Parsing across buffer boundaries */ -} BIT_STRING_t; - -extern asn_TYPE_descriptor_t asn_DEF_BIT_STRING; -extern asn_TYPE_operation_t asn_OP_BIT_STRING; -extern asn_OCTET_STRING_specifics_t asn_SPC_BIT_STRING_specs; - -asn_struct_print_f BIT_STRING_print; /* Human-readable output */ -asn_struct_compare_f BIT_STRING_compare; -asn_constr_check_f BIT_STRING_constraint; -xer_type_encoder_f BIT_STRING_encode_xer; -oer_type_decoder_f BIT_STRING_decode_oer; -oer_type_encoder_f BIT_STRING_encode_oer; -per_type_decoder_f BIT_STRING_decode_uper; -per_type_encoder_f BIT_STRING_encode_uper; -asn_random_fill_f BIT_STRING_random_fill; - -#define BIT_STRING_free OCTET_STRING_free -#define BIT_STRING_decode_ber OCTET_STRING_decode_ber -#define BIT_STRING_encode_der OCTET_STRING_encode_der -#define BIT_STRING_decode_xer OCTET_STRING_decode_xer_binary -#define BIT_STRING_decode_aper OCTET_STRING_decode_aper -#define BIT_STRING_encode_aper OCTET_STRING_encode_aper - -#ifdef __cplusplus -} -#endif - -#endif /* _BIT_STRING_H_ */ diff --git a/e2sim/previous/ASN1c/BOOLEAN.c b/e2sim/previous/ASN1c/BOOLEAN.c deleted file mode 100644 index 41b88e7..0000000 --- a/e2sim/previous/ASN1c/BOOLEAN.c +++ /dev/null @@ -1,510 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/*- - * Copyright (c) 2003, 2005 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include - -/* - * BOOLEAN basic type description. - */ -static const ber_tlv_tag_t asn_DEF_BOOLEAN_tags[] = { - (ASN_TAG_CLASS_UNIVERSAL | (1 << 2)) -}; -asn_TYPE_operation_t asn_OP_BOOLEAN = { - BOOLEAN_free, - BOOLEAN_print, - BOOLEAN_compare, - BOOLEAN_decode_ber, - BOOLEAN_encode_der, - BOOLEAN_decode_xer, - BOOLEAN_encode_xer, -#ifdef ASN_DISABLE_OER_SUPPORT - 0, - 0, -#else - BOOLEAN_decode_oer, - BOOLEAN_encode_oer, -#endif /* ASN_DISABLE_OER_SUPPORT */ -#ifdef ASN_DISABLE_PER_SUPPORT - 0, - 0, - 0, - 0, -#else - BOOLEAN_decode_uper, /* Unaligned PER decoder */ - BOOLEAN_encode_uper, /* Unaligned PER encoder */ - BOOLEAN_decode_aper, /* Aligned PER decoder */ - BOOLEAN_encode_aper, /* Aligned PER encoder */ -#endif /* ASN_DISABLE_PER_SUPPORT */ - BOOLEAN_random_fill, - 0 /* Use generic outmost tag fetcher */ -}; -asn_TYPE_descriptor_t asn_DEF_BOOLEAN = { - "BOOLEAN", - "BOOLEAN", - &asn_OP_BOOLEAN, - asn_DEF_BOOLEAN_tags, - sizeof(asn_DEF_BOOLEAN_tags) / sizeof(asn_DEF_BOOLEAN_tags[0]), - asn_DEF_BOOLEAN_tags, /* Same as above */ - sizeof(asn_DEF_BOOLEAN_tags) / sizeof(asn_DEF_BOOLEAN_tags[0]), - { 0, 0, asn_generic_no_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - -/* - * Decode BOOLEAN type. - */ -asn_dec_rval_t -BOOLEAN_decode_ber(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **bool_value, - const void *buf_ptr, size_t size, int tag_mode) { - BOOLEAN_t *st = (BOOLEAN_t *)*bool_value; - asn_dec_rval_t rval; - ber_tlv_len_t length; - ber_tlv_len_t lidx; - - if(st == NULL) { - st = (BOOLEAN_t *)(*bool_value = CALLOC(1, sizeof(*st))); - if(st == NULL) { - rval.code = RC_FAIL; - rval.consumed = 0; - return rval; - } - } - - ASN_DEBUG("Decoding %s as BOOLEAN (tm=%d)", - td->name, tag_mode); - - /* - * Check tags. - */ - rval = ber_check_tags(opt_codec_ctx, td, 0, buf_ptr, size, - tag_mode, 0, &length, 0); - if(rval.code != RC_OK) - return rval; - - ASN_DEBUG("Boolean length is %d bytes", (int)length); - - buf_ptr = ((const char *)buf_ptr) + rval.consumed; - size -= rval.consumed; - if(length > (ber_tlv_len_t)size) { - rval.code = RC_WMORE; - rval.consumed = 0; - return rval; - } - - /* - * Compute boolean value. - */ - for(*st = 0, lidx = 0; - (lidx < length) && *st == 0; lidx++) { - /* - * Very simple approach: read bytes until the end or - * value is already TRUE. - * BOOLEAN is not supposed to contain meaningful data anyway. - */ - *st |= ((const uint8_t *)buf_ptr)[lidx]; - } - - rval.code = RC_OK; - rval.consumed += length; - - ASN_DEBUG("Took %ld/%ld bytes to encode %s, value=%d", - (long)rval.consumed, (long)length, - td->name, *st); - - return rval; -} - -asn_enc_rval_t -BOOLEAN_encode_der(const asn_TYPE_descriptor_t *td, const void *sptr, - int tag_mode, ber_tlv_tag_t tag, asn_app_consume_bytes_f *cb, - void *app_key) { - asn_enc_rval_t erval = {0,0,0}; - const BOOLEAN_t *st = (const BOOLEAN_t *)sptr; - - erval.encoded = der_write_tags(td, 1, tag_mode, 0, tag, cb, app_key); - if(erval.encoded == -1) { - erval.failed_type = td; - erval.structure_ptr = sptr; - return erval; - } - - if(cb) { - uint8_t bool_value; - - bool_value = *st ? 0xff : 0; /* 0xff mandated by DER */ - - if(cb(&bool_value, 1, app_key) < 0) { - erval.encoded = -1; - erval.failed_type = td; - erval.structure_ptr = sptr; - return erval; - } - } - - erval.encoded += 1; - - ASN__ENCODED_OK(erval); -} - - -/* - * Decode the chunk of XML text encoding INTEGER. - */ -static enum xer_pbd_rval -BOOLEAN__xer_body_decode(const asn_TYPE_descriptor_t *td, void *sptr, - const void *chunk_buf, size_t chunk_size) { - BOOLEAN_t *st = (BOOLEAN_t *)sptr; - const char *p = (const char *)chunk_buf; - - (void)td; - - if(chunk_size && p[0] == 0x3c /* '<' */) { - switch(xer_check_tag(chunk_buf, chunk_size, "false")) { - case XCT_BOTH: - /* "" */ - *st = 0; - break; - case XCT_UNKNOWN_BO: - if(xer_check_tag(chunk_buf, chunk_size, "true") - != XCT_BOTH) - return XPBD_BROKEN_ENCODING; - /* "" */ - *st = 1; /* Or 0xff as in DER?.. */ - break; - default: - return XPBD_BROKEN_ENCODING; - } - return XPBD_BODY_CONSUMED; - } else { - return XPBD_BROKEN_ENCODING; - } -} - - -asn_dec_rval_t -BOOLEAN_decode_xer(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **sptr, - const char *opt_mname, const void *buf_ptr, size_t size) { - return xer_decode_primitive(opt_codec_ctx, td, - sptr, sizeof(BOOLEAN_t), opt_mname, buf_ptr, size, - BOOLEAN__xer_body_decode); -} - -asn_enc_rval_t -BOOLEAN_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, - int ilevel, enum xer_encoder_flags_e flags, - asn_app_consume_bytes_f *cb, void *app_key) { - const BOOLEAN_t *st = (const BOOLEAN_t *)sptr; - asn_enc_rval_t er = {0, 0, 0}; - - (void)ilevel; - (void)flags; - - if(!st) ASN__ENCODE_FAILED; - - if(*st) { - ASN__CALLBACK("", 7); - } else { - ASN__CALLBACK("", 8); - } - - ASN__ENCODED_OK(er); -cb_failed: - ASN__ENCODE_FAILED; -} - -int -BOOLEAN_print(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, - asn_app_consume_bytes_f *cb, void *app_key) { - const BOOLEAN_t *st = (const BOOLEAN_t *)sptr; - const char *buf; - size_t buflen; - - (void)td; /* Unused argument */ - (void)ilevel; /* Unused argument */ - - if(st) { - if(*st) { - buf = "TRUE"; - buflen = 4; - } else { - buf = "FALSE"; - buflen = 5; - } - } else { - buf = ""; - buflen = 8; - } - - return (cb(buf, buflen, app_key) < 0) ? -1 : 0; -} - -void -BOOLEAN_free(const asn_TYPE_descriptor_t *td, void *ptr, - enum asn_struct_free_method method) { - if(td && ptr) { - switch(method) { - case ASFM_FREE_EVERYTHING: - FREEMEM(ptr); - break; - case ASFM_FREE_UNDERLYING: - break; - case ASFM_FREE_UNDERLYING_AND_RESET: - memset(ptr, 0, sizeof(BOOLEAN_t)); - break; - } - } -} - -#ifndef ASN_DISABLE_PER_SUPPORT - -asn_dec_rval_t -BOOLEAN_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, - asn_per_data_t *pd) { - asn_dec_rval_t rv; - BOOLEAN_t *st = (BOOLEAN_t *)*sptr; - - (void)opt_codec_ctx; - (void)td; - (void)constraints; - - if(!st) { - st = (BOOLEAN_t *)(*sptr = MALLOC(sizeof(*st))); - if(!st) ASN__DECODE_FAILED; - } - - /* - * Extract a single bit - */ - switch(per_get_few_bits(pd, 1)) { - case 1: *st = 1; break; - case 0: *st = 0; break; - case -1: default: ASN__DECODE_STARVED; - } - - ASN_DEBUG("%s decoded as %s", td->name, *st ? "TRUE" : "FALSE"); - - rv.code = RC_OK; - rv.consumed = 1; - return rv; -} - - -asn_enc_rval_t -BOOLEAN_encode_uper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, const void *sptr, - asn_per_outp_t *po) { - const BOOLEAN_t *st = (const BOOLEAN_t *)sptr; - asn_enc_rval_t er = { 0, 0, 0 }; - - (void)constraints; - - if(!st) ASN__ENCODE_FAILED; - - if(per_put_few_bits(po, *st ? 1 : 0, 1)) - ASN__ENCODE_FAILED; - - ASN__ENCODED_OK(er); -} - -asn_dec_rval_t -BOOLEAN_decode_aper(const asn_codec_ctx_t *opt_codec_ctx, const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, asn_per_data_t *pd) { - asn_dec_rval_t rv; - BOOLEAN_t *st = (BOOLEAN_t *)*sptr; - - (void)opt_codec_ctx; - (void)constraints; - (void)td; - - if(!st) { - st = (BOOLEAN_t *)(*sptr = MALLOC(sizeof(*st))); - if(!st) ASN__DECODE_FAILED; - } - - /* - * Extract a single bit - */ - switch(per_get_few_bits(pd, 1)) { - case 1: - *st = 1; - break; - case 0: - *st = 0; - break; - case -1: - default: - ASN__DECODE_STARVED; - } - - ASN_DEBUG("%s decoded as %s", td->name, *st ? "TRUE" : "FALSE"); - - rv.code = RC_OK; - rv.consumed = 1; - return rv; -} - -asn_enc_rval_t -BOOLEAN_encode_aper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_per_outp_t *po) { - const BOOLEAN_t *st = (const BOOLEAN_t *)sptr; - asn_enc_rval_t er = { 0, 0, 0 }; - - (void)constraints; - - if(!st) ASN__ENCODE_FAILED; - - if(per_put_few_bits(po, *st ? 1 : 0, 1)) - ASN__ENCODE_FAILED; - - ASN__ENCODED_OK(er); -} - -#endif /* ASN_DISABLE_PER_SUPPORT */ - -#ifndef ASN_DISABLE_OER_SUPPORT - -/* - * Encode as Canonical OER. - */ -asn_enc_rval_t -BOOLEAN_encode_oer(const asn_TYPE_descriptor_t *td, - const asn_oer_constraints_t *constraints, const void *sptr, - asn_app_consume_bytes_f *cb, void *app_key) { - asn_enc_rval_t er = { 1, 0, 0 }; - const BOOLEAN_t *st = sptr; - uint8_t bool_value = *st ? 0xff : 0; /* 0xff mandated by OER */ - - (void)td; - (void)constraints; /* Constraints are unused in OER */ - - if(cb(&bool_value, 1, app_key) < 0) { - ASN__ENCODE_FAILED; - } else { - ASN__ENCODED_OK(er); - } -} - -asn_dec_rval_t -BOOLEAN_decode_oer(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_oer_constraints_t *constraints, void **sptr, - const void *ptr, size_t size) { - asn_dec_rval_t ok = {RC_OK, 1}; - BOOLEAN_t *st; - - (void)opt_codec_ctx; - (void)td; - (void)constraints; /* Constraints are unused in OER */ - - if(size < 1) { - ASN__DECODE_STARVED; - } - - if(!(st = *sptr)) { - st = (BOOLEAN_t *)(*sptr = CALLOC(1, sizeof(*st))); - if(!st) ASN__DECODE_FAILED; - } - - *st = *(const uint8_t *)ptr; - - return ok; -} - - - -#endif - -int -BOOLEAN_compare(const asn_TYPE_descriptor_t *td, const void *aptr, - const void *bptr) { - const BOOLEAN_t *a = aptr; - const BOOLEAN_t *b = bptr; - - (void)td; - - if(a && b) { - if(!*a == !*b) { /* TRUE can be encoded by any non-zero byte. */ - return 0; - } else if(!*a) { - return -1; - } else { - return 1; - } - } else if(!a) { - return -1; - } else { - return 1; - } -} - -asn_random_fill_result_t -BOOLEAN_random_fill(const asn_TYPE_descriptor_t *td, void **sptr, - const asn_encoding_constraints_t *constraints, - size_t max_length) { - asn_random_fill_result_t result_ok = {ARFILL_OK, 1}; - asn_random_fill_result_t result_failed = {ARFILL_FAILED, 0}; - asn_random_fill_result_t result_skipped = {ARFILL_SKIPPED, 0}; - BOOLEAN_t *st = *sptr; - - if(max_length == 0) return result_skipped; - - if(st == NULL) { - st = (BOOLEAN_t *)(*sptr = CALLOC(1, sizeof(*st))); - if(st == NULL) { - return result_failed; - } - } - - if(!constraints || !constraints->per_constraints) - constraints = &td->encoding_constraints; - if(constraints->per_constraints) { - const asn_per_constraint_t *pc = &constraints->per_constraints->value; - if(pc->flags & APC_CONSTRAINED) { - *st = asn_random_between(pc->lower_bound, pc->upper_bound); - return result_ok; - } - } - - /* Simulate booleans that are sloppily set and biased. */ - switch(asn_random_between(0, 7)) { - case 0: - case 1: - case 2: - *st = 0; break; - case 3: *st = -1; break; - case 4: *st = 1; break; - case 5: *st = INT_MIN; break; - case 6: *st = INT_MAX; break; - default: - *st = asn_random_between(INT_MIN, INT_MAX); - break; - } - return result_ok; -} diff --git a/e2sim/previous/ASN1c/BOOLEAN.h b/e2sim/previous/ASN1c/BOOLEAN.h deleted file mode 100644 index c822311..0000000 --- a/e2sim/previous/ASN1c/BOOLEAN.h +++ /dev/null @@ -1,63 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/*- - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef _BOOLEAN_H_ -#define _BOOLEAN_H_ - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * The underlying integer may contain various values, but everything - * non-zero is capped to 0xff by the DER encoder. The BER decoder may - * yield non-zero values different from 1, beware. - */ -typedef int BOOLEAN_t; - -extern asn_TYPE_descriptor_t asn_DEF_BOOLEAN; -extern asn_TYPE_operation_t asn_OP_BOOLEAN; - -asn_struct_free_f BOOLEAN_free; -asn_struct_print_f BOOLEAN_print; -asn_struct_compare_f BOOLEAN_compare; -ber_type_decoder_f BOOLEAN_decode_ber; -der_type_encoder_f BOOLEAN_encode_der; -oer_type_decoder_f BOOLEAN_decode_oer; -oer_type_encoder_f BOOLEAN_encode_oer; -per_type_decoder_f BOOLEAN_decode_uper; -per_type_encoder_f BOOLEAN_encode_uper; -per_type_decoder_f BOOLEAN_decode_aper; -per_type_encoder_f BOOLEAN_encode_aper; -xer_type_decoder_f BOOLEAN_decode_xer; -xer_type_encoder_f BOOLEAN_encode_xer; -asn_random_fill_f BOOLEAN_random_fill; - -#define BOOLEAN_constraint asn_generic_no_constraint - -#ifdef __cplusplus -} -#endif - -#endif /* _BOOLEAN_H_ */ diff --git a/e2sim/previous/ASN1c/BandInfo.c b/e2sim/previous/ASN1c/BandInfo.c deleted file mode 100644 index 6710e8a..0000000 --- a/e2sim/previous/ASN1c/BandInfo.c +++ /dev/null @@ -1,81 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "BandInfo.h" - -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_BandInfo_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct BandInfo, freqBandIndicator), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_FreqBandIndicator, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "freqBandIndicator" - }, - { ATF_POINTER, 1, offsetof(struct BandInfo, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P169, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_BandInfo_oms_1[] = { 1 }; -static const ber_tlv_tag_t asn_DEF_BandInfo_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_BandInfo_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* freqBandIndicator */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_BandInfo_specs_1 = { - sizeof(struct BandInfo), - offsetof(struct BandInfo, _asn_ctx), - asn_MAP_BandInfo_tag2el_1, - 2, /* Count of tags in the map */ - asn_MAP_BandInfo_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 2, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_BandInfo = { - "BandInfo", - "BandInfo", - &asn_OP_SEQUENCE, - asn_DEF_BandInfo_tags_1, - sizeof(asn_DEF_BandInfo_tags_1) - /sizeof(asn_DEF_BandInfo_tags_1[0]), /* 1 */ - asn_DEF_BandInfo_tags_1, /* Same as above */ - sizeof(asn_DEF_BandInfo_tags_1) - /sizeof(asn_DEF_BandInfo_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_BandInfo_1, - 2, /* Elements count */ - &asn_SPC_BandInfo_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/BandInfo.h b/e2sim/previous/ASN1c/BandInfo.h deleted file mode 100644 index 3a5f7a9..0000000 --- a/e2sim/previous/ASN1c/BandInfo.h +++ /dev/null @@ -1,66 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _BandInfo_H_ -#define _BandInfo_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "FreqBandIndicator.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* BandInfo */ -typedef struct BandInfo { - FreqBandIndicator_t freqBandIndicator; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} BandInfo_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_BandInfo; -extern asn_SEQUENCE_specifics_t asn_SPC_BandInfo_specs_1; -extern asn_TYPE_member_t asn_MBR_BandInfo_1[2]; - -#ifdef __cplusplus -} -#endif - -#endif /* _BandInfo_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/BandwidthReducedSI.c b/e2sim/previous/ASN1c/BandwidthReducedSI.c deleted file mode 100644 index 8cba4ad..0000000 --- a/e2sim/previous/ASN1c/BandwidthReducedSI.c +++ /dev/null @@ -1,71 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "BandwidthReducedSI.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_BandwidthReducedSI_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 0, 0 } /* (0..0,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_BandwidthReducedSI_value2enum_1[] = { - { 0, 9, "scheduled" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_BandwidthReducedSI_enum2value_1[] = { - 0 /* scheduled(0) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_BandwidthReducedSI_specs_1 = { - asn_MAP_BandwidthReducedSI_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_BandwidthReducedSI_enum2value_1, /* N => "tag"; sorted by N */ - 1, /* Number of elements in the maps */ - 2, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_BandwidthReducedSI_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_BandwidthReducedSI = { - "BandwidthReducedSI", - "BandwidthReducedSI", - &asn_OP_NativeEnumerated, - asn_DEF_BandwidthReducedSI_tags_1, - sizeof(asn_DEF_BandwidthReducedSI_tags_1) - /sizeof(asn_DEF_BandwidthReducedSI_tags_1[0]), /* 1 */ - asn_DEF_BandwidthReducedSI_tags_1, /* Same as above */ - sizeof(asn_DEF_BandwidthReducedSI_tags_1) - /sizeof(asn_DEF_BandwidthReducedSI_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_BandwidthReducedSI_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_BandwidthReducedSI_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/BandwidthReducedSI.h b/e2sim/previous/ASN1c/BandwidthReducedSI.h deleted file mode 100644 index 18910d5..0000000 --- a/e2sim/previous/ASN1c/BandwidthReducedSI.h +++ /dev/null @@ -1,71 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _BandwidthReducedSI_H_ -#define _BandwidthReducedSI_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum BandwidthReducedSI { - BandwidthReducedSI_scheduled = 0 - /* - * Enumeration is extensible - */ -} e_BandwidthReducedSI; - -/* BandwidthReducedSI */ -typedef long BandwidthReducedSI_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_BandwidthReducedSI_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_BandwidthReducedSI; -extern const asn_INTEGER_specifics_t asn_SPC_BandwidthReducedSI_specs_1; -asn_struct_free_f BandwidthReducedSI_free; -asn_struct_print_f BandwidthReducedSI_print; -asn_constr_check_f BandwidthReducedSI_constraint; -ber_type_decoder_f BandwidthReducedSI_decode_ber; -der_type_encoder_f BandwidthReducedSI_encode_der; -xer_type_decoder_f BandwidthReducedSI_decode_xer; -xer_type_encoder_f BandwidthReducedSI_encode_xer; -per_type_decoder_f BandwidthReducedSI_decode_uper; -per_type_encoder_f BandwidthReducedSI_encode_uper; -per_type_decoder_f BandwidthReducedSI_decode_aper; -per_type_encoder_f BandwidthReducedSI_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _BandwidthReducedSI_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/BearerType.c b/e2sim/previous/ASN1c/BearerType.c deleted file mode 100644 index 7a14791..0000000 --- a/e2sim/previous/ASN1c/BearerType.c +++ /dev/null @@ -1,71 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "BearerType.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_BearerType_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 0, 0 } /* (0..0,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_BearerType_value2enum_1[] = { - { 0, 6, "non-IP" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_BearerType_enum2value_1[] = { - 0 /* non-IP(0) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_BearerType_specs_1 = { - asn_MAP_BearerType_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_BearerType_enum2value_1, /* N => "tag"; sorted by N */ - 1, /* Number of elements in the maps */ - 2, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_BearerType_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_BearerType = { - "BearerType", - "BearerType", - &asn_OP_NativeEnumerated, - asn_DEF_BearerType_tags_1, - sizeof(asn_DEF_BearerType_tags_1) - /sizeof(asn_DEF_BearerType_tags_1[0]), /* 1 */ - asn_DEF_BearerType_tags_1, /* Same as above */ - sizeof(asn_DEF_BearerType_tags_1) - /sizeof(asn_DEF_BearerType_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_BearerType_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_BearerType_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/BearerType.h b/e2sim/previous/ASN1c/BearerType.h deleted file mode 100644 index 69e6d45..0000000 --- a/e2sim/previous/ASN1c/BearerType.h +++ /dev/null @@ -1,71 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _BearerType_H_ -#define _BearerType_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum BearerType { - BearerType_non_IP = 0 - /* - * Enumeration is extensible - */ -} e_BearerType; - -/* BearerType */ -typedef long BearerType_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_BearerType_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_BearerType; -extern const asn_INTEGER_specifics_t asn_SPC_BearerType_specs_1; -asn_struct_free_f BearerType_free; -asn_struct_print_f BearerType_print; -asn_constr_check_f BearerType_constraint; -ber_type_decoder_f BearerType_decode_ber; -der_type_encoder_f BearerType_encode_der; -xer_type_decoder_f BearerType_decode_xer; -xer_type_encoder_f BearerType_encode_xer; -per_type_decoder_f BearerType_decode_uper; -per_type_encoder_f BearerType_encode_uper; -per_type_decoder_f BearerType_decode_aper; -per_type_encoder_f BearerType_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _BearerType_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/BenefitMetric.c b/e2sim/previous/ASN1c/BenefitMetric.c deleted file mode 100644 index 48fb194..0000000 --- a/e2sim/previous/ASN1c/BenefitMetric.c +++ /dev/null @@ -1,79 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "BenefitMetric.h" - -int -BenefitMetric_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= -101 && value <= 100)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using NativeInteger, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_BenefitMetric_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 8, 8, -101, 100 } /* (-101..100,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_BenefitMetric_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_BenefitMetric = { - "BenefitMetric", - "BenefitMetric", - &asn_OP_NativeInteger, - asn_DEF_BenefitMetric_tags_1, - sizeof(asn_DEF_BenefitMetric_tags_1) - /sizeof(asn_DEF_BenefitMetric_tags_1[0]), /* 1 */ - asn_DEF_BenefitMetric_tags_1, /* Same as above */ - sizeof(asn_DEF_BenefitMetric_tags_1) - /sizeof(asn_DEF_BenefitMetric_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_BenefitMetric_constr_1, BenefitMetric_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/previous/ASN1c/BenefitMetric.h b/e2sim/previous/ASN1c/BenefitMetric.h deleted file mode 100644 index a3a5196..0000000 --- a/e2sim/previous/ASN1c/BenefitMetric.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _BenefitMetric_H_ -#define _BenefitMetric_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeInteger.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* BenefitMetric */ -typedef long BenefitMetric_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_BenefitMetric_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_BenefitMetric; -asn_struct_free_f BenefitMetric_free; -asn_struct_print_f BenefitMetric_print; -asn_constr_check_f BenefitMetric_constraint; -ber_type_decoder_f BenefitMetric_decode_ber; -der_type_encoder_f BenefitMetric_encode_der; -xer_type_decoder_f BenefitMetric_decode_xer; -xer_type_encoder_f BenefitMetric_encode_xer; -per_type_decoder_f BenefitMetric_decode_uper; -per_type_encoder_f BenefitMetric_encode_uper; -per_type_decoder_f BenefitMetric_decode_aper; -per_type_encoder_f BenefitMetric_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _BenefitMetric_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/BitRate.c b/e2sim/previous/ASN1c/BitRate.c deleted file mode 100644 index 6444d13..0000000 --- a/e2sim/previous/ASN1c/BitRate.c +++ /dev/null @@ -1,85 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "BitRate.h" - -int -BitRate_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const INTEGER_t *st = (const INTEGER_t *)sptr; - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if(asn_INTEGER2long(st, &value)) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value too large (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if((value >= 0 && value <= 10000000000)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using INTEGER, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_BitRate_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED, 34, -1, 0, 10000000000 } /* (0..10000000000) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_BitRate_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_BitRate = { - "BitRate", - "BitRate", - &asn_OP_INTEGER, - asn_DEF_BitRate_tags_1, - sizeof(asn_DEF_BitRate_tags_1) - /sizeof(asn_DEF_BitRate_tags_1[0]), /* 1 */ - asn_DEF_BitRate_tags_1, /* Same as above */ - sizeof(asn_DEF_BitRate_tags_1) - /sizeof(asn_DEF_BitRate_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_BitRate_constr_1, BitRate_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/previous/ASN1c/BitRate.h b/e2sim/previous/ASN1c/BitRate.h deleted file mode 100644 index d792ca9..0000000 --- a/e2sim/previous/ASN1c/BitRate.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _BitRate_H_ -#define _BitRate_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "INTEGER.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* BitRate */ -typedef INTEGER_t BitRate_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_BitRate_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_BitRate; -asn_struct_free_f BitRate_free; -asn_struct_print_f BitRate_print; -asn_constr_check_f BitRate_constraint; -ber_type_decoder_f BitRate_decode_ber; -der_type_encoder_f BitRate_encode_der; -xer_type_decoder_f BitRate_decode_xer; -xer_type_encoder_f BitRate_encode_xer; -per_type_decoder_f BitRate_decode_uper; -per_type_encoder_f BitRate_encode_uper; -per_type_decoder_f BitRate_decode_aper; -per_type_encoder_f BitRate_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _BitRate_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/BluetoothMeasConfig.c b/e2sim/previous/ASN1c/BluetoothMeasConfig.c deleted file mode 100644 index ca1b91f..0000000 --- a/e2sim/previous/ASN1c/BluetoothMeasConfig.c +++ /dev/null @@ -1,71 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "BluetoothMeasConfig.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_BluetoothMeasConfig_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 0, 0 } /* (0..0,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_BluetoothMeasConfig_value2enum_1[] = { - { 0, 5, "setup" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_BluetoothMeasConfig_enum2value_1[] = { - 0 /* setup(0) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_BluetoothMeasConfig_specs_1 = { - asn_MAP_BluetoothMeasConfig_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_BluetoothMeasConfig_enum2value_1, /* N => "tag"; sorted by N */ - 1, /* Number of elements in the maps */ - 2, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_BluetoothMeasConfig_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_BluetoothMeasConfig = { - "BluetoothMeasConfig", - "BluetoothMeasConfig", - &asn_OP_NativeEnumerated, - asn_DEF_BluetoothMeasConfig_tags_1, - sizeof(asn_DEF_BluetoothMeasConfig_tags_1) - /sizeof(asn_DEF_BluetoothMeasConfig_tags_1[0]), /* 1 */ - asn_DEF_BluetoothMeasConfig_tags_1, /* Same as above */ - sizeof(asn_DEF_BluetoothMeasConfig_tags_1) - /sizeof(asn_DEF_BluetoothMeasConfig_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_BluetoothMeasConfig_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_BluetoothMeasConfig_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/BluetoothMeasConfig.h b/e2sim/previous/ASN1c/BluetoothMeasConfig.h deleted file mode 100644 index c98bdb7..0000000 --- a/e2sim/previous/ASN1c/BluetoothMeasConfig.h +++ /dev/null @@ -1,71 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _BluetoothMeasConfig_H_ -#define _BluetoothMeasConfig_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum BluetoothMeasConfig { - BluetoothMeasConfig_setup = 0 - /* - * Enumeration is extensible - */ -} e_BluetoothMeasConfig; - -/* BluetoothMeasConfig */ -typedef long BluetoothMeasConfig_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_BluetoothMeasConfig_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_BluetoothMeasConfig; -extern const asn_INTEGER_specifics_t asn_SPC_BluetoothMeasConfig_specs_1; -asn_struct_free_f BluetoothMeasConfig_free; -asn_struct_print_f BluetoothMeasConfig_print; -asn_constr_check_f BluetoothMeasConfig_constraint; -ber_type_decoder_f BluetoothMeasConfig_decode_ber; -der_type_encoder_f BluetoothMeasConfig_encode_der; -xer_type_decoder_f BluetoothMeasConfig_decode_xer; -xer_type_encoder_f BluetoothMeasConfig_encode_xer; -per_type_decoder_f BluetoothMeasConfig_decode_uper; -per_type_encoder_f BluetoothMeasConfig_encode_uper; -per_type_decoder_f BluetoothMeasConfig_decode_aper; -per_type_encoder_f BluetoothMeasConfig_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _BluetoothMeasConfig_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/BluetoothMeasConfigNameList.c b/e2sim/previous/ASN1c/BluetoothMeasConfigNameList.c deleted file mode 100644 index b6c74806..0000000 --- a/e2sim/previous/ASN1c/BluetoothMeasConfigNameList.c +++ /dev/null @@ -1,67 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "BluetoothMeasConfigNameList.h" - -asn_per_constraints_t asn_PER_type_BluetoothMeasConfigNameList_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_BluetoothMeasConfigNameList_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), - 0, - &asn_DEF_BluetoothName, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_BluetoothMeasConfigNameList_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_BluetoothMeasConfigNameList_specs_1 = { - sizeof(struct BluetoothMeasConfigNameList), - offsetof(struct BluetoothMeasConfigNameList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_BluetoothMeasConfigNameList = { - "BluetoothMeasConfigNameList", - "BluetoothMeasConfigNameList", - &asn_OP_SEQUENCE_OF, - asn_DEF_BluetoothMeasConfigNameList_tags_1, - sizeof(asn_DEF_BluetoothMeasConfigNameList_tags_1) - /sizeof(asn_DEF_BluetoothMeasConfigNameList_tags_1[0]), /* 1 */ - asn_DEF_BluetoothMeasConfigNameList_tags_1, /* Same as above */ - sizeof(asn_DEF_BluetoothMeasConfigNameList_tags_1) - /sizeof(asn_DEF_BluetoothMeasConfigNameList_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_BluetoothMeasConfigNameList_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_BluetoothMeasConfigNameList_1, - 1, /* Single element */ - &asn_SPC_BluetoothMeasConfigNameList_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/BluetoothMeasConfigNameList.h b/e2sim/previous/ASN1c/BluetoothMeasConfigNameList.h deleted file mode 100644 index 3f512dc..0000000 --- a/e2sim/previous/ASN1c/BluetoothMeasConfigNameList.h +++ /dev/null @@ -1,60 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _BluetoothMeasConfigNameList_H_ -#define _BluetoothMeasConfigNameList_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "BluetoothName.h" -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* BluetoothMeasConfigNameList */ -typedef struct BluetoothMeasConfigNameList { - A_SEQUENCE_OF(BluetoothName_t) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} BluetoothMeasConfigNameList_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_BluetoothMeasConfigNameList; -extern asn_SET_OF_specifics_t asn_SPC_BluetoothMeasConfigNameList_specs_1; -extern asn_TYPE_member_t asn_MBR_BluetoothMeasConfigNameList_1[1]; -extern asn_per_constraints_t asn_PER_type_BluetoothMeasConfigNameList_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _BluetoothMeasConfigNameList_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/BluetoothMeasurementConfiguration.c b/e2sim/previous/ASN1c/BluetoothMeasurementConfiguration.c deleted file mode 100644 index 4502114..0000000 --- a/e2sim/previous/ASN1c/BluetoothMeasurementConfiguration.c +++ /dev/null @@ -1,148 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "BluetoothMeasurementConfiguration.h" - -#include "BluetoothMeasConfigNameList.h" -#include "ProtocolExtensionContainer.h" -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -static asn_per_constraints_t asn_PER_type_bt_rssi_constr_4 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 0, 0 } /* (0..0,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_bt_rssi_value2enum_4[] = { - { 0, 4, "true" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_bt_rssi_enum2value_4[] = { - 0 /* true(0) */ - /* This list is extensible */ -}; -static const asn_INTEGER_specifics_t asn_SPC_bt_rssi_specs_4 = { - asn_MAP_bt_rssi_value2enum_4, /* "tag" => N; sorted by tag */ - asn_MAP_bt_rssi_enum2value_4, /* N => "tag"; sorted by N */ - 1, /* Number of elements in the maps */ - 2, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_bt_rssi_tags_4[] = { - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_bt_rssi_4 = { - "bt-rssi", - "bt-rssi", - &asn_OP_NativeEnumerated, - asn_DEF_bt_rssi_tags_4, - sizeof(asn_DEF_bt_rssi_tags_4) - /sizeof(asn_DEF_bt_rssi_tags_4[0]) - 1, /* 1 */ - asn_DEF_bt_rssi_tags_4, /* Same as above */ - sizeof(asn_DEF_bt_rssi_tags_4) - /sizeof(asn_DEF_bt_rssi_tags_4[0]), /* 2 */ - { 0, &asn_PER_type_bt_rssi_constr_4, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_bt_rssi_specs_4 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_BluetoothMeasurementConfiguration_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct BluetoothMeasurementConfiguration, bluetoothMeasConfig), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_BluetoothMeasConfig, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "bluetoothMeasConfig" - }, - { ATF_POINTER, 3, offsetof(struct BluetoothMeasurementConfiguration, bluetoothMeasConfigNameList), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_BluetoothMeasConfigNameList, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "bluetoothMeasConfigNameList" - }, - { ATF_POINTER, 2, offsetof(struct BluetoothMeasurementConfiguration, bt_rssi), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_bt_rssi_4, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "bt-rssi" - }, - { ATF_POINTER, 1, offsetof(struct BluetoothMeasurementConfiguration, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P111, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_BluetoothMeasurementConfiguration_oms_1[] = { 1, 2, 3 }; -static const ber_tlv_tag_t asn_DEF_BluetoothMeasurementConfiguration_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_BluetoothMeasurementConfiguration_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* bluetoothMeasConfig */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* bluetoothMeasConfigNameList */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* bt-rssi */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_BluetoothMeasurementConfiguration_specs_1 = { - sizeof(struct BluetoothMeasurementConfiguration), - offsetof(struct BluetoothMeasurementConfiguration, _asn_ctx), - asn_MAP_BluetoothMeasurementConfiguration_tag2el_1, - 4, /* Count of tags in the map */ - asn_MAP_BluetoothMeasurementConfiguration_oms_1, /* Optional members */ - 3, 0, /* Root/Additions */ - 4, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_BluetoothMeasurementConfiguration = { - "BluetoothMeasurementConfiguration", - "BluetoothMeasurementConfiguration", - &asn_OP_SEQUENCE, - asn_DEF_BluetoothMeasurementConfiguration_tags_1, - sizeof(asn_DEF_BluetoothMeasurementConfiguration_tags_1) - /sizeof(asn_DEF_BluetoothMeasurementConfiguration_tags_1[0]), /* 1 */ - asn_DEF_BluetoothMeasurementConfiguration_tags_1, /* Same as above */ - sizeof(asn_DEF_BluetoothMeasurementConfiguration_tags_1) - /sizeof(asn_DEF_BluetoothMeasurementConfiguration_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_BluetoothMeasurementConfiguration_1, - 4, /* Elements count */ - &asn_SPC_BluetoothMeasurementConfiguration_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/BluetoothMeasurementConfiguration.h b/e2sim/previous/ASN1c/BluetoothMeasurementConfiguration.h deleted file mode 100644 index 83b75ca..0000000 --- a/e2sim/previous/ASN1c/BluetoothMeasurementConfiguration.h +++ /dev/null @@ -1,79 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _BluetoothMeasurementConfiguration_H_ -#define _BluetoothMeasurementConfiguration_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "BluetoothMeasConfig.h" -#include "NativeEnumerated.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum BluetoothMeasurementConfiguration__bt_rssi { - BluetoothMeasurementConfiguration__bt_rssi_true = 0 - /* - * Enumeration is extensible - */ -} e_BluetoothMeasurementConfiguration__bt_rssi; - -/* Forward declarations */ -struct BluetoothMeasConfigNameList; -struct ProtocolExtensionContainer; - -/* BluetoothMeasurementConfiguration */ -typedef struct BluetoothMeasurementConfiguration { - BluetoothMeasConfig_t bluetoothMeasConfig; - struct BluetoothMeasConfigNameList *bluetoothMeasConfigNameList; /* OPTIONAL */ - long *bt_rssi; /* OPTIONAL */ - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} BluetoothMeasurementConfiguration_t; - -/* Implementation */ -/* extern asn_TYPE_descriptor_t asn_DEF_bt_rssi_4; // (Use -fall-defs-global to expose) */ -extern asn_TYPE_descriptor_t asn_DEF_BluetoothMeasurementConfiguration; -extern asn_SEQUENCE_specifics_t asn_SPC_BluetoothMeasurementConfiguration_specs_1; -extern asn_TYPE_member_t asn_MBR_BluetoothMeasurementConfiguration_1[4]; - -#ifdef __cplusplus -} -#endif - -#endif /* _BluetoothMeasurementConfiguration_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/BluetoothName.c b/e2sim/previous/ASN1c/BluetoothName.c deleted file mode 100644 index 9b0cf88..0000000 --- a/e2sim/previous/ASN1c/BluetoothName.c +++ /dev/null @@ -1,80 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "BluetoothName.h" - -int -BluetoothName_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - size = st->size; - - if((size >= 1 && size <= 248)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using OCTET_STRING, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_BluetoothName_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 8, 8, 1, 248 } /* (SIZE(1..248)) */, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_BluetoothName_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_BluetoothName = { - "BluetoothName", - "BluetoothName", - &asn_OP_OCTET_STRING, - asn_DEF_BluetoothName_tags_1, - sizeof(asn_DEF_BluetoothName_tags_1) - /sizeof(asn_DEF_BluetoothName_tags_1[0]), /* 1 */ - asn_DEF_BluetoothName_tags_1, /* Same as above */ - sizeof(asn_DEF_BluetoothName_tags_1) - /sizeof(asn_DEF_BluetoothName_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_BluetoothName_constr_1, BluetoothName_constraint }, - 0, 0, /* No members */ - &asn_SPC_OCTET_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/BluetoothName.h b/e2sim/previous/ASN1c/BluetoothName.h deleted file mode 100644 index 1a4e667..0000000 --- a/e2sim/previous/ASN1c/BluetoothName.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _BluetoothName_H_ -#define _BluetoothName_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "OCTET_STRING.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* BluetoothName */ -typedef OCTET_STRING_t BluetoothName_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_BluetoothName_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_BluetoothName; -asn_struct_free_f BluetoothName_free; -asn_struct_print_f BluetoothName_print; -asn_constr_check_f BluetoothName_constraint; -ber_type_decoder_f BluetoothName_decode_ber; -der_type_encoder_f BluetoothName_encode_der; -xer_type_decoder_f BluetoothName_decode_xer; -xer_type_encoder_f BluetoothName_encode_xer; -per_type_decoder_f BluetoothName_decode_uper; -per_type_encoder_f BluetoothName_encode_uper; -per_type_decoder_f BluetoothName_decode_aper; -per_type_encoder_f BluetoothName_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _BluetoothName_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/BroadcastPLMNs-Item.c b/e2sim/previous/ASN1c/BroadcastPLMNs-Item.c deleted file mode 100644 index 3535839..0000000 --- a/e2sim/previous/ASN1c/BroadcastPLMNs-Item.c +++ /dev/null @@ -1,67 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "BroadcastPLMNs-Item.h" - -asn_per_constraints_t asn_PER_type_BroadcastPLMNs_Item_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 3, 3, 1, 6 } /* (SIZE(1..6)) */, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_BroadcastPLMNs_Item_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), - 0, - &asn_DEF_PLMN_Identity, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_BroadcastPLMNs_Item_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_BroadcastPLMNs_Item_specs_1 = { - sizeof(struct BroadcastPLMNs_Item), - offsetof(struct BroadcastPLMNs_Item, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_BroadcastPLMNs_Item = { - "BroadcastPLMNs-Item", - "BroadcastPLMNs-Item", - &asn_OP_SEQUENCE_OF, - asn_DEF_BroadcastPLMNs_Item_tags_1, - sizeof(asn_DEF_BroadcastPLMNs_Item_tags_1) - /sizeof(asn_DEF_BroadcastPLMNs_Item_tags_1[0]), /* 1 */ - asn_DEF_BroadcastPLMNs_Item_tags_1, /* Same as above */ - sizeof(asn_DEF_BroadcastPLMNs_Item_tags_1) - /sizeof(asn_DEF_BroadcastPLMNs_Item_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_BroadcastPLMNs_Item_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_BroadcastPLMNs_Item_1, - 1, /* Single element */ - &asn_SPC_BroadcastPLMNs_Item_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/BroadcastPLMNs-Item.h b/e2sim/previous/ASN1c/BroadcastPLMNs-Item.h deleted file mode 100644 index d229a46..0000000 --- a/e2sim/previous/ASN1c/BroadcastPLMNs-Item.h +++ /dev/null @@ -1,60 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _BroadcastPLMNs_Item_H_ -#define _BroadcastPLMNs_Item_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "PLMN-Identity.h" -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* BroadcastPLMNs-Item */ -typedef struct BroadcastPLMNs_Item { - A_SEQUENCE_OF(PLMN_Identity_t) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} BroadcastPLMNs_Item_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_BroadcastPLMNs_Item; -extern asn_SET_OF_specifics_t asn_SPC_BroadcastPLMNs_Item_specs_1; -extern asn_TYPE_member_t asn_MBR_BroadcastPLMNs_Item_1[1]; -extern asn_per_constraints_t asn_PER_type_BroadcastPLMNs_Item_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _BroadcastPLMNs_Item_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/CNTypeRestrictions.c b/e2sim/previous/ASN1c/CNTypeRestrictions.c deleted file mode 100644 index 0f80e47..0000000 --- a/e2sim/previous/ASN1c/CNTypeRestrictions.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "CNTypeRestrictions.h" - -#include "CNTypeRestrictionsItem.h" -asn_per_constraints_t asn_PER_type_CNTypeRestrictions_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 4, 4, 1, 16 } /* (SIZE(1..16)) */, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_CNTypeRestrictions_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CNTypeRestrictionsItem, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_CNTypeRestrictions_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_CNTypeRestrictions_specs_1 = { - sizeof(struct CNTypeRestrictions), - offsetof(struct CNTypeRestrictions, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_CNTypeRestrictions = { - "CNTypeRestrictions", - "CNTypeRestrictions", - &asn_OP_SEQUENCE_OF, - asn_DEF_CNTypeRestrictions_tags_1, - sizeof(asn_DEF_CNTypeRestrictions_tags_1) - /sizeof(asn_DEF_CNTypeRestrictions_tags_1[0]), /* 1 */ - asn_DEF_CNTypeRestrictions_tags_1, /* Same as above */ - sizeof(asn_DEF_CNTypeRestrictions_tags_1) - /sizeof(asn_DEF_CNTypeRestrictions_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_CNTypeRestrictions_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_CNTypeRestrictions_1, - 1, /* Single element */ - &asn_SPC_CNTypeRestrictions_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/CNTypeRestrictions.h b/e2sim/previous/ASN1c/CNTypeRestrictions.h deleted file mode 100644 index 0e7758b..0000000 --- a/e2sim/previous/ASN1c/CNTypeRestrictions.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _CNTypeRestrictions_H_ -#define _CNTypeRestrictions_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct CNTypeRestrictionsItem; - -/* CNTypeRestrictions */ -typedef struct CNTypeRestrictions { - A_SEQUENCE_OF(struct CNTypeRestrictionsItem) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} CNTypeRestrictions_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_CNTypeRestrictions; -extern asn_SET_OF_specifics_t asn_SPC_CNTypeRestrictions_specs_1; -extern asn_TYPE_member_t asn_MBR_CNTypeRestrictions_1[1]; -extern asn_per_constraints_t asn_PER_type_CNTypeRestrictions_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _CNTypeRestrictions_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/CNTypeRestrictionsItem.c b/e2sim/previous/ASN1c/CNTypeRestrictionsItem.c deleted file mode 100644 index ab8134c..0000000 --- a/e2sim/previous/ASN1c/CNTypeRestrictionsItem.c +++ /dev/null @@ -1,137 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "CNTypeRestrictionsItem.h" - -#include "ProtocolExtensionContainer.h" -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -static asn_per_constraints_t asn_PER_type_cn_type_constr_3 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 0, 0 } /* (0..0,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_cn_type_value2enum_3[] = { - { 0, 16, "fiveGC-forbidden" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_cn_type_enum2value_3[] = { - 0 /* fiveGC-forbidden(0) */ - /* This list is extensible */ -}; -static const asn_INTEGER_specifics_t asn_SPC_cn_type_specs_3 = { - asn_MAP_cn_type_value2enum_3, /* "tag" => N; sorted by tag */ - asn_MAP_cn_type_enum2value_3, /* N => "tag"; sorted by N */ - 1, /* Number of elements in the maps */ - 2, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_cn_type_tags_3[] = { - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_cn_type_3 = { - "cn-type", - "cn-type", - &asn_OP_NativeEnumerated, - asn_DEF_cn_type_tags_3, - sizeof(asn_DEF_cn_type_tags_3) - /sizeof(asn_DEF_cn_type_tags_3[0]) - 1, /* 1 */ - asn_DEF_cn_type_tags_3, /* Same as above */ - sizeof(asn_DEF_cn_type_tags_3) - /sizeof(asn_DEF_cn_type_tags_3[0]), /* 2 */ - { 0, &asn_PER_type_cn_type_constr_3, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_cn_type_specs_3 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_CNTypeRestrictionsItem_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct CNTypeRestrictionsItem, plmn_Id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_PLMN_Identity, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "plmn-Id" - }, - { ATF_NOFLAGS, 0, offsetof(struct CNTypeRestrictionsItem, cn_type), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_cn_type_3, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "cn-type" - }, - { ATF_POINTER, 1, offsetof(struct CNTypeRestrictionsItem, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P116, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_CNTypeRestrictionsItem_oms_1[] = { 2 }; -static const ber_tlv_tag_t asn_DEF_CNTypeRestrictionsItem_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_CNTypeRestrictionsItem_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* plmn-Id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* cn-type */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_CNTypeRestrictionsItem_specs_1 = { - sizeof(struct CNTypeRestrictionsItem), - offsetof(struct CNTypeRestrictionsItem, _asn_ctx), - asn_MAP_CNTypeRestrictionsItem_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_CNTypeRestrictionsItem_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_CNTypeRestrictionsItem = { - "CNTypeRestrictionsItem", - "CNTypeRestrictionsItem", - &asn_OP_SEQUENCE, - asn_DEF_CNTypeRestrictionsItem_tags_1, - sizeof(asn_DEF_CNTypeRestrictionsItem_tags_1) - /sizeof(asn_DEF_CNTypeRestrictionsItem_tags_1[0]), /* 1 */ - asn_DEF_CNTypeRestrictionsItem_tags_1, /* Same as above */ - sizeof(asn_DEF_CNTypeRestrictionsItem_tags_1) - /sizeof(asn_DEF_CNTypeRestrictionsItem_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_CNTypeRestrictionsItem_1, - 3, /* Elements count */ - &asn_SPC_CNTypeRestrictionsItem_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/CNTypeRestrictionsItem.h b/e2sim/previous/ASN1c/CNTypeRestrictionsItem.h deleted file mode 100644 index 6f6b726..0000000 --- a/e2sim/previous/ASN1c/CNTypeRestrictionsItem.h +++ /dev/null @@ -1,77 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _CNTypeRestrictionsItem_H_ -#define _CNTypeRestrictionsItem_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "PLMN-Identity.h" -#include "NativeEnumerated.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum CNTypeRestrictionsItem__cn_type { - CNTypeRestrictionsItem__cn_type_fiveGC_forbidden = 0 - /* - * Enumeration is extensible - */ -} e_CNTypeRestrictionsItem__cn_type; - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* CNTypeRestrictionsItem */ -typedef struct CNTypeRestrictionsItem { - PLMN_Identity_t plmn_Id; - long cn_type; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} CNTypeRestrictionsItem_t; - -/* Implementation */ -/* extern asn_TYPE_descriptor_t asn_DEF_cn_type_3; // (Use -fall-defs-global to expose) */ -extern asn_TYPE_descriptor_t asn_DEF_CNTypeRestrictionsItem; -extern asn_SEQUENCE_specifics_t asn_SPC_CNTypeRestrictionsItem_specs_1; -extern asn_TYPE_member_t asn_MBR_CNTypeRestrictionsItem_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _CNTypeRestrictionsItem_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/COUNTValueExtended.c b/e2sim/previous/ASN1c/COUNTValueExtended.c deleted file mode 100644 index 0609c07..0000000 --- a/e2sim/previous/ASN1c/COUNTValueExtended.c +++ /dev/null @@ -1,91 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "COUNTValueExtended.h" - -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_COUNTValueExtended_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct COUNTValueExtended, pDCP_SNExtended), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_PDCP_SNExtended, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "pDCP-SNExtended" - }, - { ATF_NOFLAGS, 0, offsetof(struct COUNTValueExtended, hFNModified), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_HFNModified, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "hFNModified" - }, - { ATF_POINTER, 1, offsetof(struct COUNTValueExtended, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P124, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_COUNTValueExtended_oms_1[] = { 2 }; -static const ber_tlv_tag_t asn_DEF_COUNTValueExtended_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_COUNTValueExtended_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pDCP-SNExtended */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* hFNModified */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_COUNTValueExtended_specs_1 = { - sizeof(struct COUNTValueExtended), - offsetof(struct COUNTValueExtended, _asn_ctx), - asn_MAP_COUNTValueExtended_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_COUNTValueExtended_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_COUNTValueExtended = { - "COUNTValueExtended", - "COUNTValueExtended", - &asn_OP_SEQUENCE, - asn_DEF_COUNTValueExtended_tags_1, - sizeof(asn_DEF_COUNTValueExtended_tags_1) - /sizeof(asn_DEF_COUNTValueExtended_tags_1[0]), /* 1 */ - asn_DEF_COUNTValueExtended_tags_1, /* Same as above */ - sizeof(asn_DEF_COUNTValueExtended_tags_1) - /sizeof(asn_DEF_COUNTValueExtended_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_COUNTValueExtended_1, - 3, /* Elements count */ - &asn_SPC_COUNTValueExtended_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/COUNTValueExtended.h b/e2sim/previous/ASN1c/COUNTValueExtended.h deleted file mode 100644 index 2d5bed0..0000000 --- a/e2sim/previous/ASN1c/COUNTValueExtended.h +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _COUNTValueExtended_H_ -#define _COUNTValueExtended_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "PDCP-SNExtended.h" -#include "HFNModified.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* COUNTValueExtended */ -typedef struct COUNTValueExtended { - PDCP_SNExtended_t pDCP_SNExtended; - HFNModified_t hFNModified; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} COUNTValueExtended_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_COUNTValueExtended; -extern asn_SEQUENCE_specifics_t asn_SPC_COUNTValueExtended_specs_1; -extern asn_TYPE_member_t asn_MBR_COUNTValueExtended_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _COUNTValueExtended_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/COUNTvalue.c b/e2sim/previous/ASN1c/COUNTvalue.c deleted file mode 100644 index 650efa7..0000000 --- a/e2sim/previous/ASN1c/COUNTvalue.c +++ /dev/null @@ -1,91 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "COUNTvalue.h" - -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_COUNTvalue_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct COUNTvalue, pDCP_SN), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_PDCP_SN, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "pDCP-SN" - }, - { ATF_NOFLAGS, 0, offsetof(struct COUNTvalue, hFN), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_HFN, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "hFN" - }, - { ATF_POINTER, 1, offsetof(struct COUNTvalue, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P123, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_COUNTvalue_oms_1[] = { 2 }; -static const ber_tlv_tag_t asn_DEF_COUNTvalue_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_COUNTvalue_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pDCP-SN */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* hFN */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_COUNTvalue_specs_1 = { - sizeof(struct COUNTvalue), - offsetof(struct COUNTvalue, _asn_ctx), - asn_MAP_COUNTvalue_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_COUNTvalue_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_COUNTvalue = { - "COUNTvalue", - "COUNTvalue", - &asn_OP_SEQUENCE, - asn_DEF_COUNTvalue_tags_1, - sizeof(asn_DEF_COUNTvalue_tags_1) - /sizeof(asn_DEF_COUNTvalue_tags_1[0]), /* 1 */ - asn_DEF_COUNTvalue_tags_1, /* Same as above */ - sizeof(asn_DEF_COUNTvalue_tags_1) - /sizeof(asn_DEF_COUNTvalue_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_COUNTvalue_1, - 3, /* Elements count */ - &asn_SPC_COUNTvalue_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/COUNTvalue.h b/e2sim/previous/ASN1c/COUNTvalue.h deleted file mode 100644 index 8442403..0000000 --- a/e2sim/previous/ASN1c/COUNTvalue.h +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _COUNTvalue_H_ -#define _COUNTvalue_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "PDCP-SN.h" -#include "HFN.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* COUNTvalue */ -typedef struct COUNTvalue { - PDCP_SN_t pDCP_SN; - HFN_t hFN; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} COUNTvalue_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_COUNTvalue; -extern asn_SEQUENCE_specifics_t asn_SPC_COUNTvalue_specs_1; -extern asn_TYPE_member_t asn_MBR_COUNTvalue_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _COUNTvalue_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/COUNTvaluePDCP-SNlength18.c b/e2sim/previous/ASN1c/COUNTvaluePDCP-SNlength18.c deleted file mode 100644 index b9d8687..0000000 --- a/e2sim/previous/ASN1c/COUNTvaluePDCP-SNlength18.c +++ /dev/null @@ -1,91 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "COUNTvaluePDCP-SNlength18.h" - -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_COUNTvaluePDCP_SNlength18_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct COUNTvaluePDCP_SNlength18, pDCP_SNlength18), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_PDCP_SNlength18, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "pDCP-SNlength18" - }, - { ATF_NOFLAGS, 0, offsetof(struct COUNTvaluePDCP_SNlength18, hFNforPDCP_SNlength18), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_HFNforPDCP_SNlength18, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "hFNforPDCP-SNlength18" - }, - { ATF_POINTER, 1, offsetof(struct COUNTvaluePDCP_SNlength18, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P125, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_COUNTvaluePDCP_SNlength18_oms_1[] = { 2 }; -static const ber_tlv_tag_t asn_DEF_COUNTvaluePDCP_SNlength18_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_COUNTvaluePDCP_SNlength18_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pDCP-SNlength18 */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* hFNforPDCP-SNlength18 */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_COUNTvaluePDCP_SNlength18_specs_1 = { - sizeof(struct COUNTvaluePDCP_SNlength18), - offsetof(struct COUNTvaluePDCP_SNlength18, _asn_ctx), - asn_MAP_COUNTvaluePDCP_SNlength18_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_COUNTvaluePDCP_SNlength18_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_COUNTvaluePDCP_SNlength18 = { - "COUNTvaluePDCP-SNlength18", - "COUNTvaluePDCP-SNlength18", - &asn_OP_SEQUENCE, - asn_DEF_COUNTvaluePDCP_SNlength18_tags_1, - sizeof(asn_DEF_COUNTvaluePDCP_SNlength18_tags_1) - /sizeof(asn_DEF_COUNTvaluePDCP_SNlength18_tags_1[0]), /* 1 */ - asn_DEF_COUNTvaluePDCP_SNlength18_tags_1, /* Same as above */ - sizeof(asn_DEF_COUNTvaluePDCP_SNlength18_tags_1) - /sizeof(asn_DEF_COUNTvaluePDCP_SNlength18_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_COUNTvaluePDCP_SNlength18_1, - 3, /* Elements count */ - &asn_SPC_COUNTvaluePDCP_SNlength18_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/COUNTvaluePDCP-SNlength18.h b/e2sim/previous/ASN1c/COUNTvaluePDCP-SNlength18.h deleted file mode 100644 index c9b7d1c..0000000 --- a/e2sim/previous/ASN1c/COUNTvaluePDCP-SNlength18.h +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _COUNTvaluePDCP_SNlength18_H_ -#define _COUNTvaluePDCP_SNlength18_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "PDCP-SNlength18.h" -#include "HFNforPDCP-SNlength18.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* COUNTvaluePDCP-SNlength18 */ -typedef struct COUNTvaluePDCP_SNlength18 { - PDCP_SNlength18_t pDCP_SNlength18; - HFNforPDCP_SNlength18_t hFNforPDCP_SNlength18; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} COUNTvaluePDCP_SNlength18_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_COUNTvaluePDCP_SNlength18; -extern asn_SEQUENCE_specifics_t asn_SPC_COUNTvaluePDCP_SNlength18_specs_1; -extern asn_TYPE_member_t asn_MBR_COUNTvaluePDCP_SNlength18_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _COUNTvaluePDCP_SNlength18_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/CRNTI.c b/e2sim/previous/ASN1c/CRNTI.c deleted file mode 100644 index 35f2875..0000000 --- a/e2sim/previous/ASN1c/CRNTI.c +++ /dev/null @@ -1,85 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "CRNTI.h" - -int -CRNTI_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if(st->size > 0) { - /* Size in bits */ - size = 8 * st->size - (st->bits_unused & 0x07); - } else { - size = 0; - } - - if((size == 16)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using BIT_STRING, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_CRNTI_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 0, 0, 16, 16 } /* (SIZE(16..16)) */, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_CRNTI_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_CRNTI = { - "CRNTI", - "CRNTI", - &asn_OP_BIT_STRING, - asn_DEF_CRNTI_tags_1, - sizeof(asn_DEF_CRNTI_tags_1) - /sizeof(asn_DEF_CRNTI_tags_1[0]), /* 1 */ - asn_DEF_CRNTI_tags_1, /* Same as above */ - sizeof(asn_DEF_CRNTI_tags_1) - /sizeof(asn_DEF_CRNTI_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_CRNTI_constr_1, CRNTI_constraint }, - 0, 0, /* No members */ - &asn_SPC_BIT_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/CRNTI.h b/e2sim/previous/ASN1c/CRNTI.h deleted file mode 100644 index e535f4d..0000000 --- a/e2sim/previous/ASN1c/CRNTI.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _CRNTI_H_ -#define _CRNTI_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "BIT_STRING.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* CRNTI */ -typedef BIT_STRING_t CRNTI_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_CRNTI_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_CRNTI; -asn_struct_free_f CRNTI_free; -asn_struct_print_f CRNTI_print; -asn_constr_check_f CRNTI_constraint; -ber_type_decoder_f CRNTI_decode_ber; -der_type_encoder_f CRNTI_encode_der; -xer_type_decoder_f CRNTI_decode_xer; -xer_type_encoder_f CRNTI_encode_xer; -per_type_decoder_f CRNTI_decode_uper; -per_type_encoder_f CRNTI_encode_uper; -per_type_decoder_f CRNTI_decode_aper; -per_type_encoder_f CRNTI_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _CRNTI_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/CSG-Id.c b/e2sim/previous/ASN1c/CSG-Id.c deleted file mode 100644 index da65c6a..0000000 --- a/e2sim/previous/ASN1c/CSG-Id.c +++ /dev/null @@ -1,85 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "CSG-Id.h" - -int -CSG_Id_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if(st->size > 0) { - /* Size in bits */ - size = 8 * st->size - (st->bits_unused & 0x07); - } else { - size = 0; - } - - if((size == 27)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using BIT_STRING, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_CSG_Id_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 0, 0, 27, 27 } /* (SIZE(27..27)) */, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_CSG_Id_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_CSG_Id = { - "CSG-Id", - "CSG-Id", - &asn_OP_BIT_STRING, - asn_DEF_CSG_Id_tags_1, - sizeof(asn_DEF_CSG_Id_tags_1) - /sizeof(asn_DEF_CSG_Id_tags_1[0]), /* 1 */ - asn_DEF_CSG_Id_tags_1, /* Same as above */ - sizeof(asn_DEF_CSG_Id_tags_1) - /sizeof(asn_DEF_CSG_Id_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_CSG_Id_constr_1, CSG_Id_constraint }, - 0, 0, /* No members */ - &asn_SPC_BIT_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/CSG-Id.h b/e2sim/previous/ASN1c/CSG-Id.h deleted file mode 100644 index ff339d6..0000000 --- a/e2sim/previous/ASN1c/CSG-Id.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _CSG_Id_H_ -#define _CSG_Id_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "BIT_STRING.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* CSG-Id */ -typedef BIT_STRING_t CSG_Id_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_CSG_Id_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_CSG_Id; -asn_struct_free_f CSG_Id_free; -asn_struct_print_f CSG_Id_print; -asn_constr_check_f CSG_Id_constraint; -ber_type_decoder_f CSG_Id_decode_ber; -der_type_encoder_f CSG_Id_encode_der; -xer_type_decoder_f CSG_Id_decode_xer; -xer_type_encoder_f CSG_Id_encode_xer; -per_type_decoder_f CSG_Id_decode_uper; -per_type_encoder_f CSG_Id_encode_uper; -per_type_decoder_f CSG_Id_decode_aper; -per_type_encoder_f CSG_Id_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _CSG_Id_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/CSGMembershipStatus.c b/e2sim/previous/ASN1c/CSGMembershipStatus.c deleted file mode 100644 index 59c23c2..0000000 --- a/e2sim/previous/ASN1c/CSGMembershipStatus.c +++ /dev/null @@ -1,71 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "CSGMembershipStatus.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_CSGMembershipStatus_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_CSGMembershipStatus_value2enum_1[] = { - { 0, 6, "member" }, - { 1, 10, "not-member" } -}; -static const unsigned int asn_MAP_CSGMembershipStatus_enum2value_1[] = { - 0, /* member(0) */ - 1 /* not-member(1) */ -}; -const asn_INTEGER_specifics_t asn_SPC_CSGMembershipStatus_specs_1 = { - asn_MAP_CSGMembershipStatus_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_CSGMembershipStatus_enum2value_1, /* N => "tag"; sorted by N */ - 2, /* Number of elements in the maps */ - 0, /* Enumeration is not extensible */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_CSGMembershipStatus_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_CSGMembershipStatus = { - "CSGMembershipStatus", - "CSGMembershipStatus", - &asn_OP_NativeEnumerated, - asn_DEF_CSGMembershipStatus_tags_1, - sizeof(asn_DEF_CSGMembershipStatus_tags_1) - /sizeof(asn_DEF_CSGMembershipStatus_tags_1[0]), /* 1 */ - asn_DEF_CSGMembershipStatus_tags_1, /* Same as above */ - sizeof(asn_DEF_CSGMembershipStatus_tags_1) - /sizeof(asn_DEF_CSGMembershipStatus_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_CSGMembershipStatus_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_CSGMembershipStatus_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/CSGMembershipStatus.h b/e2sim/previous/ASN1c/CSGMembershipStatus.h deleted file mode 100644 index c47d563..0000000 --- a/e2sim/previous/ASN1c/CSGMembershipStatus.h +++ /dev/null @@ -1,69 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _CSGMembershipStatus_H_ -#define _CSGMembershipStatus_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum CSGMembershipStatus { - CSGMembershipStatus_member = 0, - CSGMembershipStatus_not_member = 1 -} e_CSGMembershipStatus; - -/* CSGMembershipStatus */ -typedef long CSGMembershipStatus_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_CSGMembershipStatus_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_CSGMembershipStatus; -extern const asn_INTEGER_specifics_t asn_SPC_CSGMembershipStatus_specs_1; -asn_struct_free_f CSGMembershipStatus_free; -asn_struct_print_f CSGMembershipStatus_print; -asn_constr_check_f CSGMembershipStatus_constraint; -ber_type_decoder_f CSGMembershipStatus_decode_ber; -der_type_encoder_f CSGMembershipStatus_encode_der; -xer_type_decoder_f CSGMembershipStatus_decode_xer; -xer_type_encoder_f CSGMembershipStatus_encode_xer; -per_type_decoder_f CSGMembershipStatus_decode_uper; -per_type_encoder_f CSGMembershipStatus_encode_uper; -per_type_decoder_f CSGMembershipStatus_decode_aper; -per_type_encoder_f CSGMembershipStatus_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _CSGMembershipStatus_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/CSIReportList.c b/e2sim/previous/ASN1c/CSIReportList.c deleted file mode 100644 index 8cea051..0000000 --- a/e2sim/previous/ASN1c/CSIReportList.c +++ /dev/null @@ -1,132 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "CSIReportList.h" - -#include "ProtocolExtensionContainer.h" -asn_per_constraints_t asn_PER_type_CSIReportList_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 7, 7, 1, 128 } /* (SIZE(1..128)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_Member_2[] = { - { ATF_NOFLAGS, 0, offsetof(struct CSIReportList__Member, uEID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_UEID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "uEID" - }, - { ATF_NOFLAGS, 0, offsetof(struct CSIReportList__Member, cSIReportPerCSIProcess), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_CSIReportPerCSIProcess, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "cSIReportPerCSIProcess" - }, - { ATF_POINTER, 1, offsetof(struct CSIReportList__Member, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P128, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_Member_oms_2[] = { 2 }; -static const ber_tlv_tag_t asn_DEF_Member_tags_2[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_Member_tag2el_2[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* uEID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* cSIReportPerCSIProcess */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_Member_specs_2 = { - sizeof(struct CSIReportList__Member), - offsetof(struct CSIReportList__Member, _asn_ctx), - asn_MAP_Member_tag2el_2, - 3, /* Count of tags in the map */ - asn_MAP_Member_oms_2, /* Optional members */ - 1, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_Member_2 = { - "SEQUENCE", - "SEQUENCE", - &asn_OP_SEQUENCE, - asn_DEF_Member_tags_2, - sizeof(asn_DEF_Member_tags_2) - /sizeof(asn_DEF_Member_tags_2[0]), /* 1 */ - asn_DEF_Member_tags_2, /* Same as above */ - sizeof(asn_DEF_Member_tags_2) - /sizeof(asn_DEF_Member_tags_2[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_Member_2, - 3, /* Elements count */ - &asn_SPC_Member_specs_2 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_CSIReportList_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_Member_2, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_CSIReportList_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_CSIReportList_specs_1 = { - sizeof(struct CSIReportList), - offsetof(struct CSIReportList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_CSIReportList = { - "CSIReportList", - "CSIReportList", - &asn_OP_SEQUENCE_OF, - asn_DEF_CSIReportList_tags_1, - sizeof(asn_DEF_CSIReportList_tags_1) - /sizeof(asn_DEF_CSIReportList_tags_1[0]), /* 1 */ - asn_DEF_CSIReportList_tags_1, /* Same as above */ - sizeof(asn_DEF_CSIReportList_tags_1) - /sizeof(asn_DEF_CSIReportList_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_CSIReportList_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_CSIReportList_1, - 1, /* Single element */ - &asn_SPC_CSIReportList_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/CSIReportList.h b/e2sim/previous/ASN1c/CSIReportList.h deleted file mode 100644 index 04eeb3f..0000000 --- a/e2sim/previous/ASN1c/CSIReportList.h +++ /dev/null @@ -1,79 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _CSIReportList_H_ -#define _CSIReportList_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "UEID.h" -#include "CSIReportPerCSIProcess.h" -#include "constr_SEQUENCE.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* Forward definitions */ -typedef struct CSIReportList__Member { - UEID_t uEID; - CSIReportPerCSIProcess_t cSIReportPerCSIProcess; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} CSIReportList__Member; - -/* CSIReportList */ -typedef struct CSIReportList { - A_SEQUENCE_OF(CSIReportList__Member) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} CSIReportList_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_CSIReportList; -extern asn_SET_OF_specifics_t asn_SPC_CSIReportList_specs_1; -extern asn_TYPE_member_t asn_MBR_CSIReportList_1[1]; -extern asn_per_constraints_t asn_PER_type_CSIReportList_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _CSIReportList_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/CSIReportPerCSIProcess.c b/e2sim/previous/ASN1c/CSIReportPerCSIProcess.c deleted file mode 100644 index b7d9251..0000000 --- a/e2sim/previous/ASN1c/CSIReportPerCSIProcess.c +++ /dev/null @@ -1,162 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "CSIReportPerCSIProcess.h" - -#include "ProtocolExtensionContainer.h" -static int -memb_cSIProcessConfigurationIndex_constraint_2(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 1 && value <= 7)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_per_constraints_t asn_PER_memb_cSIProcessConfigurationIndex_constr_3 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 1, 7 } /* (1..7,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_CSIReportPerCSIProcess_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_Member_2[] = { - { ATF_NOFLAGS, 0, offsetof(struct CSIReportPerCSIProcess__Member, cSIProcessConfigurationIndex), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { 0, &asn_PER_memb_cSIProcessConfigurationIndex_constr_3, memb_cSIProcessConfigurationIndex_constraint_2 }, - 0, 0, /* No default value */ - "cSIProcessConfigurationIndex" - }, - { ATF_NOFLAGS, 0, offsetof(struct CSIReportPerCSIProcess__Member, cSIReportPerCSIProcessItem), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_CSIReportPerCSIProcessItem, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "cSIReportPerCSIProcessItem" - }, - { ATF_POINTER, 1, offsetof(struct CSIReportPerCSIProcess__Member, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P129, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_Member_oms_2[] = { 2 }; -static const ber_tlv_tag_t asn_DEF_Member_tags_2[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_Member_tag2el_2[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* cSIProcessConfigurationIndex */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* cSIReportPerCSIProcessItem */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_Member_specs_2 = { - sizeof(struct CSIReportPerCSIProcess__Member), - offsetof(struct CSIReportPerCSIProcess__Member, _asn_ctx), - asn_MAP_Member_tag2el_2, - 3, /* Count of tags in the map */ - asn_MAP_Member_oms_2, /* Optional members */ - 1, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_Member_2 = { - "SEQUENCE", - "SEQUENCE", - &asn_OP_SEQUENCE, - asn_DEF_Member_tags_2, - sizeof(asn_DEF_Member_tags_2) - /sizeof(asn_DEF_Member_tags_2[0]), /* 1 */ - asn_DEF_Member_tags_2, /* Same as above */ - sizeof(asn_DEF_Member_tags_2) - /sizeof(asn_DEF_Member_tags_2[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_Member_2, - 3, /* Elements count */ - &asn_SPC_Member_specs_2 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_CSIReportPerCSIProcess_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_Member_2, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_CSIReportPerCSIProcess_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_CSIReportPerCSIProcess_specs_1 = { - sizeof(struct CSIReportPerCSIProcess), - offsetof(struct CSIReportPerCSIProcess, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_CSIReportPerCSIProcess = { - "CSIReportPerCSIProcess", - "CSIReportPerCSIProcess", - &asn_OP_SEQUENCE_OF, - asn_DEF_CSIReportPerCSIProcess_tags_1, - sizeof(asn_DEF_CSIReportPerCSIProcess_tags_1) - /sizeof(asn_DEF_CSIReportPerCSIProcess_tags_1[0]), /* 1 */ - asn_DEF_CSIReportPerCSIProcess_tags_1, /* Same as above */ - sizeof(asn_DEF_CSIReportPerCSIProcess_tags_1) - /sizeof(asn_DEF_CSIReportPerCSIProcess_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_CSIReportPerCSIProcess_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_CSIReportPerCSIProcess_1, - 1, /* Single element */ - &asn_SPC_CSIReportPerCSIProcess_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/CSIReportPerCSIProcess.h b/e2sim/previous/ASN1c/CSIReportPerCSIProcess.h deleted file mode 100644 index e0c5500..0000000 --- a/e2sim/previous/ASN1c/CSIReportPerCSIProcess.h +++ /dev/null @@ -1,79 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _CSIReportPerCSIProcess_H_ -#define _CSIReportPerCSIProcess_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "NativeInteger.h" -#include "CSIReportPerCSIProcessItem.h" -#include "constr_SEQUENCE.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* Forward definitions */ -typedef struct CSIReportPerCSIProcess__Member { - long cSIProcessConfigurationIndex; - CSIReportPerCSIProcessItem_t cSIReportPerCSIProcessItem; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} CSIReportPerCSIProcess__Member; - -/* CSIReportPerCSIProcess */ -typedef struct CSIReportPerCSIProcess { - A_SEQUENCE_OF(CSIReportPerCSIProcess__Member) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} CSIReportPerCSIProcess_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_CSIReportPerCSIProcess; -extern asn_SET_OF_specifics_t asn_SPC_CSIReportPerCSIProcess_specs_1; -extern asn_TYPE_member_t asn_MBR_CSIReportPerCSIProcess_1[1]; -extern asn_per_constraints_t asn_PER_type_CSIReportPerCSIProcess_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _CSIReportPerCSIProcess_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/CSIReportPerCSIProcessItem.c b/e2sim/previous/ASN1c/CSIReportPerCSIProcessItem.c deleted file mode 100644 index 33322db..0000000 --- a/e2sim/previous/ASN1c/CSIReportPerCSIProcessItem.c +++ /dev/null @@ -1,183 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "CSIReportPerCSIProcessItem.h" - -#include "SubbandCQIList.h" -#include "ProtocolExtensionContainer.h" -static int -memb_rI_constraint_2(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 1 && value <= 8)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_per_constraints_t asn_PER_memb_rI_constr_3 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 1, 8 } /* (1..8,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_CSIReportPerCSIProcessItem_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 1, 1, 1, 2 } /* (SIZE(1..2)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_Member_2[] = { - { ATF_NOFLAGS, 0, offsetof(struct CSIReportPerCSIProcessItem__Member, rI), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { 0, &asn_PER_memb_rI_constr_3, memb_rI_constraint_2 }, - 0, 0, /* No default value */ - "rI" - }, - { ATF_NOFLAGS, 0, offsetof(struct CSIReportPerCSIProcessItem__Member, widebandCQI), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_WidebandCQI, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "widebandCQI" - }, - { ATF_NOFLAGS, 0, offsetof(struct CSIReportPerCSIProcessItem__Member, subbandSize), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_SubbandSize, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "subbandSize" - }, - { ATF_POINTER, 2, offsetof(struct CSIReportPerCSIProcessItem__Member, subbandCQIList), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_SubbandCQIList, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "subbandCQIList" - }, - { ATF_POINTER, 1, offsetof(struct CSIReportPerCSIProcessItem__Member, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (4 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P130, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_Member_oms_2[] = { 3, 4 }; -static const ber_tlv_tag_t asn_DEF_Member_tags_2[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_Member_tag2el_2[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* rI */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* widebandCQI */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* subbandSize */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* subbandCQIList */ - { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* iE-Extensions */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_Member_specs_2 = { - sizeof(struct CSIReportPerCSIProcessItem__Member), - offsetof(struct CSIReportPerCSIProcessItem__Member, _asn_ctx), - asn_MAP_Member_tag2el_2, - 5, /* Count of tags in the map */ - asn_MAP_Member_oms_2, /* Optional members */ - 2, 0, /* Root/Additions */ - 5, /* First extension addition */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_Member_2 = { - "SEQUENCE", - "SEQUENCE", - &asn_OP_SEQUENCE, - asn_DEF_Member_tags_2, - sizeof(asn_DEF_Member_tags_2) - /sizeof(asn_DEF_Member_tags_2[0]), /* 1 */ - asn_DEF_Member_tags_2, /* Same as above */ - sizeof(asn_DEF_Member_tags_2) - /sizeof(asn_DEF_Member_tags_2[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_Member_2, - 5, /* Elements count */ - &asn_SPC_Member_specs_2 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_CSIReportPerCSIProcessItem_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_Member_2, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_CSIReportPerCSIProcessItem_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_CSIReportPerCSIProcessItem_specs_1 = { - sizeof(struct CSIReportPerCSIProcessItem), - offsetof(struct CSIReportPerCSIProcessItem, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_CSIReportPerCSIProcessItem = { - "CSIReportPerCSIProcessItem", - "CSIReportPerCSIProcessItem", - &asn_OP_SEQUENCE_OF, - asn_DEF_CSIReportPerCSIProcessItem_tags_1, - sizeof(asn_DEF_CSIReportPerCSIProcessItem_tags_1) - /sizeof(asn_DEF_CSIReportPerCSIProcessItem_tags_1[0]), /* 1 */ - asn_DEF_CSIReportPerCSIProcessItem_tags_1, /* Same as above */ - sizeof(asn_DEF_CSIReportPerCSIProcessItem_tags_1) - /sizeof(asn_DEF_CSIReportPerCSIProcessItem_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_CSIReportPerCSIProcessItem_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_CSIReportPerCSIProcessItem_1, - 1, /* Single element */ - &asn_SPC_CSIReportPerCSIProcessItem_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/CSIReportPerCSIProcessItem.h b/e2sim/previous/ASN1c/CSIReportPerCSIProcessItem.h deleted file mode 100644 index 04c8455..0000000 --- a/e2sim/previous/ASN1c/CSIReportPerCSIProcessItem.h +++ /dev/null @@ -1,83 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _CSIReportPerCSIProcessItem_H_ -#define _CSIReportPerCSIProcessItem_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "NativeInteger.h" -#include "WidebandCQI.h" -#include "SubbandSize.h" -#include "constr_SEQUENCE.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct SubbandCQIList; -struct ProtocolExtensionContainer; - -/* Forward definitions */ -typedef struct CSIReportPerCSIProcessItem__Member { - long rI; - WidebandCQI_t widebandCQI; - SubbandSize_t subbandSize; - struct SubbandCQIList *subbandCQIList; /* OPTIONAL */ - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} CSIReportPerCSIProcessItem__Member; - -/* CSIReportPerCSIProcessItem */ -typedef struct CSIReportPerCSIProcessItem { - A_SEQUENCE_OF(CSIReportPerCSIProcessItem__Member) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} CSIReportPerCSIProcessItem_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_CSIReportPerCSIProcessItem; -extern asn_SET_OF_specifics_t asn_SPC_CSIReportPerCSIProcessItem_specs_1; -extern asn_TYPE_member_t asn_MBR_CSIReportPerCSIProcessItem_1[1]; -extern asn_per_constraints_t asn_PER_type_CSIReportPerCSIProcessItem_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _CSIReportPerCSIProcessItem_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/CallProcess-ID.c b/e2sim/previous/ASN1c/CallProcess-ID.c deleted file mode 100644 index 7ecee10..0000000 --- a/e2sim/previous/ASN1c/CallProcess-ID.c +++ /dev/null @@ -1,49 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-gNB-X2-IEs" - * found in "../../asnFiles/e2sm-gNB-X2-release-1-v041.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "CallProcess-ID.h" - -/* - * This type is implemented using NativeInteger, - * so here we adjust the DEF accordingly. - */ -static const ber_tlv_tag_t asn_DEF_CallProcess_ID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_CallProcess_ID = { - "CallProcess-ID", - "CallProcess-ID", - &asn_OP_NativeInteger, - asn_DEF_CallProcess_ID_tags_1, - sizeof(asn_DEF_CallProcess_ID_tags_1) - /sizeof(asn_DEF_CallProcess_ID_tags_1[0]), /* 1 */ - asn_DEF_CallProcess_ID_tags_1, /* Same as above */ - sizeof(asn_DEF_CallProcess_ID_tags_1) - /sizeof(asn_DEF_CallProcess_ID_tags_1[0]), /* 1 */ - { 0, 0, NativeInteger_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/previous/ASN1c/CallProcess-ID.h b/e2sim/previous/ASN1c/CallProcess-ID.h deleted file mode 100644 index 0dab560..0000000 --- a/e2sim/previous/ASN1c/CallProcess-ID.h +++ /dev/null @@ -1,61 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-gNB-X2-IEs" - * found in "../../asnFiles/e2sm-gNB-X2-release-1-v041.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _CallProcess_ID_H_ -#define _CallProcess_ID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeInteger.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* CallProcess-ID */ -typedef long CallProcess_ID_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_CallProcess_ID; -asn_struct_free_f CallProcess_ID_free; -asn_struct_print_f CallProcess_ID_print; -asn_constr_check_f CallProcess_ID_constraint; -ber_type_decoder_f CallProcess_ID_decode_ber; -der_type_encoder_f CallProcess_ID_encode_der; -xer_type_decoder_f CallProcess_ID_decode_xer; -xer_type_encoder_f CallProcess_ID_encode_xer; -per_type_decoder_f CallProcess_ID_decode_uper; -per_type_encoder_f CallProcess_ID_encode_uper; -per_type_decoder_f CallProcess_ID_decode_aper; -per_type_encoder_f CallProcess_ID_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _CallProcess_ID_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/CapacityValue.c b/e2sim/previous/ASN1c/CapacityValue.c deleted file mode 100644 index 4bdca68..0000000 --- a/e2sim/previous/ASN1c/CapacityValue.c +++ /dev/null @@ -1,79 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "CapacityValue.h" - -int -CapacityValue_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 100)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using NativeInteger, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_CapacityValue_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED, 7, 7, 0, 100 } /* (0..100) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_CapacityValue_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_CapacityValue = { - "CapacityValue", - "CapacityValue", - &asn_OP_NativeInteger, - asn_DEF_CapacityValue_tags_1, - sizeof(asn_DEF_CapacityValue_tags_1) - /sizeof(asn_DEF_CapacityValue_tags_1[0]), /* 1 */ - asn_DEF_CapacityValue_tags_1, /* Same as above */ - sizeof(asn_DEF_CapacityValue_tags_1) - /sizeof(asn_DEF_CapacityValue_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_CapacityValue_constr_1, CapacityValue_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/previous/ASN1c/CapacityValue.h b/e2sim/previous/ASN1c/CapacityValue.h deleted file mode 100644 index d3cc315..0000000 --- a/e2sim/previous/ASN1c/CapacityValue.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _CapacityValue_H_ -#define _CapacityValue_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeInteger.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* CapacityValue */ -typedef long CapacityValue_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_CapacityValue_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_CapacityValue; -asn_struct_free_f CapacityValue_free; -asn_struct_print_f CapacityValue_print; -asn_constr_check_f CapacityValue_constraint; -ber_type_decoder_f CapacityValue_decode_ber; -der_type_encoder_f CapacityValue_encode_der; -xer_type_decoder_f CapacityValue_decode_xer; -xer_type_encoder_f CapacityValue_encode_xer; -per_type_decoder_f CapacityValue_decode_uper; -per_type_encoder_f CapacityValue_encode_uper; -per_type_decoder_f CapacityValue_decode_aper; -per_type_encoder_f CapacityValue_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _CapacityValue_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/Cause.c b/e2sim/previous/ASN1c/Cause.c deleted file mode 100644 index 779da05..0000000 --- a/e2sim/previous/ASN1c/Cause.c +++ /dev/null @@ -1,100 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "Cause.h" - -asn_per_constraints_t asn_PER_type_Cause_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 3 } /* (0..3,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_Cause_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct Cause, choice.radioNetwork), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_CauseRadioNetwork, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "radioNetwork" - }, - { ATF_NOFLAGS, 0, offsetof(struct Cause, choice.transport), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_CauseTransport, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "transport" - }, - { ATF_NOFLAGS, 0, offsetof(struct Cause, choice.protocol), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_CauseProtocol, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocol" - }, - { ATF_NOFLAGS, 0, offsetof(struct Cause, choice.misc), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_CauseMisc, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "misc" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_Cause_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* radioNetwork */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* transport */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* protocol */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* misc */ -}; -asn_CHOICE_specifics_t asn_SPC_Cause_specs_1 = { - sizeof(struct Cause), - offsetof(struct Cause, _asn_ctx), - offsetof(struct Cause, present), - sizeof(((struct Cause *)0)->present), - asn_MAP_Cause_tag2el_1, - 4, /* Count of tags in the map */ - 0, 0, - 4 /* Extensions start */ -}; -asn_TYPE_descriptor_t asn_DEF_Cause = { - "Cause", - "Cause", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, &asn_PER_type_Cause_constr_1, CHOICE_constraint }, - asn_MBR_Cause_1, - 4, /* Elements count */ - &asn_SPC_Cause_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/Cause.h b/e2sim/previous/ASN1c/Cause.h deleted file mode 100644 index 4f311c4..0000000 --- a/e2sim/previous/ASN1c/Cause.h +++ /dev/null @@ -1,83 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _Cause_H_ -#define _Cause_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "CauseRadioNetwork.h" -#include "CauseTransport.h" -#include "CauseProtocol.h" -#include "CauseMisc.h" -#include "constr_CHOICE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum Cause_PR { - Cause_PR_NOTHING, /* No components present */ - Cause_PR_radioNetwork, - Cause_PR_transport, - Cause_PR_protocol, - Cause_PR_misc - /* Extensions may appear below */ - -} Cause_PR; - -/* Cause */ -typedef struct Cause { - Cause_PR present; - union Cause_u { - CauseRadioNetwork_t radioNetwork; - CauseTransport_t transport; - CauseProtocol_t protocol; - CauseMisc_t misc; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} Cause_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_Cause; -extern asn_CHOICE_specifics_t asn_SPC_Cause_specs_1; -extern asn_TYPE_member_t asn_MBR_Cause_1[4]; -extern asn_per_constraints_t asn_PER_type_Cause_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _Cause_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/CauseMisc.c b/e2sim/previous/ASN1c/CauseMisc.c deleted file mode 100644 index a8b431b..0000000 --- a/e2sim/previous/ASN1c/CauseMisc.c +++ /dev/null @@ -1,79 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "CauseMisc.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_CauseMisc_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 4 } /* (0..4,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_CauseMisc_value2enum_1[] = { - { 0, 27, "control-processing-overload" }, - { 1, 16, "hardware-failure" }, - { 2, 15, "om-intervention" }, - { 3, 42, "not-enough-user-plane-processing-resources" }, - { 4, 11, "unspecified" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_CauseMisc_enum2value_1[] = { - 0, /* control-processing-overload(0) */ - 1, /* hardware-failure(1) */ - 3, /* not-enough-user-plane-processing-resources(3) */ - 2, /* om-intervention(2) */ - 4 /* unspecified(4) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_CauseMisc_specs_1 = { - asn_MAP_CauseMisc_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_CauseMisc_enum2value_1, /* N => "tag"; sorted by N */ - 5, /* Number of elements in the maps */ - 6, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_CauseMisc_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_CauseMisc = { - "CauseMisc", - "CauseMisc", - &asn_OP_NativeEnumerated, - asn_DEF_CauseMisc_tags_1, - sizeof(asn_DEF_CauseMisc_tags_1) - /sizeof(asn_DEF_CauseMisc_tags_1[0]), /* 1 */ - asn_DEF_CauseMisc_tags_1, /* Same as above */ - sizeof(asn_DEF_CauseMisc_tags_1) - /sizeof(asn_DEF_CauseMisc_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_CauseMisc_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_CauseMisc_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/CauseMisc.h b/e2sim/previous/ASN1c/CauseMisc.h deleted file mode 100644 index 6b59462..0000000 --- a/e2sim/previous/ASN1c/CauseMisc.h +++ /dev/null @@ -1,75 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _CauseMisc_H_ -#define _CauseMisc_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum CauseMisc { - CauseMisc_control_processing_overload = 0, - CauseMisc_hardware_failure = 1, - CauseMisc_om_intervention = 2, - CauseMisc_not_enough_user_plane_processing_resources = 3, - CauseMisc_unspecified = 4 - /* - * Enumeration is extensible - */ -} e_CauseMisc; - -/* CauseMisc */ -typedef long CauseMisc_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_CauseMisc_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_CauseMisc; -extern const asn_INTEGER_specifics_t asn_SPC_CauseMisc_specs_1; -asn_struct_free_f CauseMisc_free; -asn_struct_print_f CauseMisc_print; -asn_constr_check_f CauseMisc_constraint; -ber_type_decoder_f CauseMisc_decode_ber; -der_type_encoder_f CauseMisc_encode_der; -xer_type_decoder_f CauseMisc_decode_xer; -xer_type_encoder_f CauseMisc_encode_xer; -per_type_decoder_f CauseMisc_decode_uper; -per_type_encoder_f CauseMisc_encode_uper; -per_type_decoder_f CauseMisc_decode_aper; -per_type_encoder_f CauseMisc_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _CauseMisc_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/CauseProtocol.c b/e2sim/previous/ASN1c/CauseProtocol.c deleted file mode 100644 index 779271c..0000000 --- a/e2sim/previous/ASN1c/CauseProtocol.c +++ /dev/null @@ -1,83 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "CauseProtocol.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_CauseProtocol_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 6 } /* (0..6,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_CauseProtocol_value2enum_1[] = { - { 0, 21, "transfer-syntax-error" }, - { 1, 28, "abstract-syntax-error-reject" }, - { 2, 39, "abstract-syntax-error-ignore-and-notify" }, - { 3, 42, "message-not-compatible-with-receiver-state" }, - { 4, 14, "semantic-error" }, - { 5, 11, "unspecified" }, - { 6, 49, "abstract-syntax-error-falsely-constructed-message" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_CauseProtocol_enum2value_1[] = { - 6, /* abstract-syntax-error-falsely-constructed-message(6) */ - 2, /* abstract-syntax-error-ignore-and-notify(2) */ - 1, /* abstract-syntax-error-reject(1) */ - 3, /* message-not-compatible-with-receiver-state(3) */ - 4, /* semantic-error(4) */ - 0, /* transfer-syntax-error(0) */ - 5 /* unspecified(5) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_CauseProtocol_specs_1 = { - asn_MAP_CauseProtocol_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_CauseProtocol_enum2value_1, /* N => "tag"; sorted by N */ - 7, /* Number of elements in the maps */ - 8, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_CauseProtocol_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_CauseProtocol = { - "CauseProtocol", - "CauseProtocol", - &asn_OP_NativeEnumerated, - asn_DEF_CauseProtocol_tags_1, - sizeof(asn_DEF_CauseProtocol_tags_1) - /sizeof(asn_DEF_CauseProtocol_tags_1[0]), /* 1 */ - asn_DEF_CauseProtocol_tags_1, /* Same as above */ - sizeof(asn_DEF_CauseProtocol_tags_1) - /sizeof(asn_DEF_CauseProtocol_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_CauseProtocol_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_CauseProtocol_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/CauseProtocol.h b/e2sim/previous/ASN1c/CauseProtocol.h deleted file mode 100644 index 7445a53..0000000 --- a/e2sim/previous/ASN1c/CauseProtocol.h +++ /dev/null @@ -1,77 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _CauseProtocol_H_ -#define _CauseProtocol_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum CauseProtocol { - CauseProtocol_transfer_syntax_error = 0, - CauseProtocol_abstract_syntax_error_reject = 1, - CauseProtocol_abstract_syntax_error_ignore_and_notify = 2, - CauseProtocol_message_not_compatible_with_receiver_state = 3, - CauseProtocol_semantic_error = 4, - CauseProtocol_unspecified = 5, - CauseProtocol_abstract_syntax_error_falsely_constructed_message = 6 - /* - * Enumeration is extensible - */ -} e_CauseProtocol; - -/* CauseProtocol */ -typedef long CauseProtocol_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_CauseProtocol_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_CauseProtocol; -extern const asn_INTEGER_specifics_t asn_SPC_CauseProtocol_specs_1; -asn_struct_free_f CauseProtocol_free; -asn_struct_print_f CauseProtocol_print; -asn_constr_check_f CauseProtocol_constraint; -ber_type_decoder_f CauseProtocol_decode_ber; -der_type_encoder_f CauseProtocol_encode_der; -xer_type_decoder_f CauseProtocol_decode_xer; -xer_type_encoder_f CauseProtocol_encode_xer; -per_type_decoder_f CauseProtocol_decode_uper; -per_type_encoder_f CauseProtocol_encode_uper; -per_type_decoder_f CauseProtocol_decode_aper; -per_type_encoder_f CauseProtocol_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _CauseProtocol_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/CauseRIC.c b/e2sim/previous/ASN1c/CauseRIC.c deleted file mode 100644 index c4a9d45..0000000 --- a/e2sim/previous/ASN1c/CauseRIC.c +++ /dev/null @@ -1,95 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "../../asnFiles/e2ap-v031.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "CauseRIC.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_CauseRIC_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 4, 4, 0, 12 } /* (0..12,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_CauseRIC_value2enum_1[] = { - { 0, 19, "function-id-Invalid" }, - { 1, 20, "action-not-supported" }, - { 2, 17, "excessive-actions" }, - { 3, 16, "duplicate-action" }, - { 4, 15, "duplicate-event" }, - { 5, 23, "function-resource-limit" }, - { 6, 18, "request-id-unknown" }, - { 7, 46, "inconsistent-action-subsequent-action-sequence" }, - { 8, 23, "control-message-invalid" }, - { 9, 23, "call-process-id-invalid" }, - { 10, 21, "function-not-required" }, - { 11, 19, "excessive-functions" }, - { 12, 18, "ric-resource-limit" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_CauseRIC_enum2value_1[] = { - 1, /* action-not-supported(1) */ - 9, /* call-process-id-invalid(9) */ - 8, /* control-message-invalid(8) */ - 3, /* duplicate-action(3) */ - 4, /* duplicate-event(4) */ - 2, /* excessive-actions(2) */ - 11, /* excessive-functions(11) */ - 0, /* function-id-Invalid(0) */ - 10, /* function-not-required(10) */ - 5, /* function-resource-limit(5) */ - 7, /* inconsistent-action-subsequent-action-sequence(7) */ - 6, /* request-id-unknown(6) */ - 12 /* ric-resource-limit(12) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_CauseRIC_specs_1 = { - asn_MAP_CauseRIC_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_CauseRIC_enum2value_1, /* N => "tag"; sorted by N */ - 13, /* Number of elements in the maps */ - 14, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_CauseRIC_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_CauseRIC = { - "CauseRIC", - "CauseRIC", - &asn_OP_NativeEnumerated, - asn_DEF_CauseRIC_tags_1, - sizeof(asn_DEF_CauseRIC_tags_1) - /sizeof(asn_DEF_CauseRIC_tags_1[0]), /* 1 */ - asn_DEF_CauseRIC_tags_1, /* Same as above */ - sizeof(asn_DEF_CauseRIC_tags_1) - /sizeof(asn_DEF_CauseRIC_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_CauseRIC_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_CauseRIC_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/CauseRIC.h b/e2sim/previous/ASN1c/CauseRIC.h deleted file mode 100644 index 7ff708a..0000000 --- a/e2sim/previous/ASN1c/CauseRIC.h +++ /dev/null @@ -1,83 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "../../asnFiles/e2ap-v031.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _CauseRIC_H_ -#define _CauseRIC_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum CauseRIC { - CauseRIC_function_id_Invalid = 0, - CauseRIC_action_not_supported = 1, - CauseRIC_excessive_actions = 2, - CauseRIC_duplicate_action = 3, - CauseRIC_duplicate_event = 4, - CauseRIC_function_resource_limit = 5, - CauseRIC_request_id_unknown = 6, - CauseRIC_inconsistent_action_subsequent_action_sequence = 7, - CauseRIC_control_message_invalid = 8, - CauseRIC_call_process_id_invalid = 9, - CauseRIC_function_not_required = 10, - CauseRIC_excessive_functions = 11, - CauseRIC_ric_resource_limit = 12 - /* - * Enumeration is extensible - */ -} e_CauseRIC; - -/* CauseRIC */ -typedef long CauseRIC_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_CauseRIC_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_CauseRIC; -extern const asn_INTEGER_specifics_t asn_SPC_CauseRIC_specs_1; -asn_struct_free_f CauseRIC_free; -asn_struct_print_f CauseRIC_print; -asn_constr_check_f CauseRIC_constraint; -ber_type_decoder_f CauseRIC_decode_ber; -der_type_encoder_f CauseRIC_encode_der; -xer_type_decoder_f CauseRIC_decode_xer; -xer_type_encoder_f CauseRIC_encode_xer; -per_type_decoder_f CauseRIC_decode_uper; -per_type_encoder_f CauseRIC_encode_uper; -per_type_decoder_f CauseRIC_decode_aper; -per_type_encoder_f CauseRIC_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _CauseRIC_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/CauseRadioNetwork.c b/e2sim/previous/ASN1c/CauseRadioNetwork.c deleted file mode 100644 index 1f9e49d..0000000 --- a/e2sim/previous/ASN1c/CauseRadioNetwork.c +++ /dev/null @@ -1,171 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "CauseRadioNetwork.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_CauseRadioNetwork_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 5, 5, 0, 21 } /* (0..21,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_CauseRadioNetwork_value2enum_1[] = { - { 0, 36, "handover-desirable-for-radio-reasons" }, - { 1, 22, "time-critical-handover" }, - { 2, 30, "resource-optimisation-handover" }, - { 3, 27, "reduce-load-in-serving-cell" }, - { 4, 16, "partial-handover" }, - { 5, 26, "unknown-new-eNB-UE-X2AP-ID" }, - { 6, 26, "unknown-old-eNB-UE-X2AP-ID" }, - { 7, 26, "unknown-pair-of-UE-X2AP-ID" }, - { 8, 21, "ho-target-not-allowed" }, - { 9, 22, "tx2relocoverall-expiry" }, - { 10, 17, "trelocprep-expiry" }, - { 11, 18, "cell-not-available" }, - { 12, 43, "no-radio-resources-available-in-target-cell" }, - { 13, 19, "invalid-MME-GroupID" }, - { 14, 16, "unknown-MME-Code" }, - { 15, 63, "encryption-and-or-integrity-protection-algorithms-not-supported" }, - { 16, 26, "reportCharacteristicsEmpty" }, - { 17, 19, "noReportPeriodicity" }, - { 18, 21, "existingMeasurementID" }, - { 19, 26, "unknown-eNB-Measurement-ID" }, - { 20, 37, "measurement-temporarily-not-available" }, - { 21, 11, "unspecified" }, - { 22, 14, "load-balancing" }, - { 23, 21, "handover-optimisation" }, - { 24, 26, "value-out-of-allowed-range" }, - { 25, 27, "multiple-E-RAB-ID-instances" }, - { 26, 18, "switch-off-ongoing" }, - { 27, 23, "not-supported-QCI-value" }, - { 28, 40, "measurement-not-supported-for-the-object" }, - { 29, 17, "tDCoverall-expiry" }, - { 30, 14, "tDCprep-expiry" }, - { 31, 34, "action-desirable-for-radio-reasons" }, - { 32, 11, "reduce-load" }, - { 33, 21, "resource-optimisation" }, - { 34, 20, "time-critical-action" }, - { 35, 18, "target-not-allowed" }, - { 36, 28, "no-radio-resources-available" }, - { 37, 23, "invalid-QoS-combination" }, - { 38, 35, "encryption-algorithms-not-aupported" }, - { 39, 19, "procedure-cancelled" }, - { 40, 11, "rRM-purpose" }, - { 41, 21, "improve-user-bit-rate" }, - { 42, 15, "user-inactivity" }, - { 43, 29, "radio-connection-with-UE-lost" }, - { 44, 40, "failure-in-the-radio-interface-procedure" }, - { 45, 27, "bearer-option-not-supported" }, - { 46, 12, "mCG-Mobility" }, - { 47, 12, "sCG-Mobility" }, - { 48, 23, "count-reaches-max-value" }, - { 49, 29, "unknown-old-en-gNB-UE-X2AP-ID" }, - { 50, 13, "pDCP-Overload" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_CauseRadioNetwork_enum2value_1[] = { - 31, /* action-desirable-for-radio-reasons(31) */ - 45, /* bearer-option-not-supported(45) */ - 11, /* cell-not-available(11) */ - 48, /* count-reaches-max-value(48) */ - 38, /* encryption-algorithms-not-aupported(38) */ - 15, /* encryption-and-or-integrity-protection-algorithms-not-supported(15) */ - 18, /* existingMeasurementID(18) */ - 44, /* failure-in-the-radio-interface-procedure(44) */ - 0, /* handover-desirable-for-radio-reasons(0) */ - 23, /* handover-optimisation(23) */ - 8, /* ho-target-not-allowed(8) */ - 41, /* improve-user-bit-rate(41) */ - 13, /* invalid-MME-GroupID(13) */ - 37, /* invalid-QoS-combination(37) */ - 22, /* load-balancing(22) */ - 46, /* mCG-Mobility(46) */ - 28, /* measurement-not-supported-for-the-object(28) */ - 20, /* measurement-temporarily-not-available(20) */ - 25, /* multiple-E-RAB-ID-instances(25) */ - 36, /* no-radio-resources-available(36) */ - 12, /* no-radio-resources-available-in-target-cell(12) */ - 17, /* noReportPeriodicity(17) */ - 27, /* not-supported-QCI-value(27) */ - 50, /* pDCP-Overload(50) */ - 4, /* partial-handover(4) */ - 39, /* procedure-cancelled(39) */ - 40, /* rRM-purpose(40) */ - 43, /* radio-connection-with-UE-lost(43) */ - 32, /* reduce-load(32) */ - 3, /* reduce-load-in-serving-cell(3) */ - 16, /* reportCharacteristicsEmpty(16) */ - 33, /* resource-optimisation(33) */ - 2, /* resource-optimisation-handover(2) */ - 47, /* sCG-Mobility(47) */ - 26, /* switch-off-ongoing(26) */ - 29, /* tDCoverall-expiry(29) */ - 30, /* tDCprep-expiry(30) */ - 35, /* target-not-allowed(35) */ - 34, /* time-critical-action(34) */ - 1, /* time-critical-handover(1) */ - 10, /* trelocprep-expiry(10) */ - 9, /* tx2relocoverall-expiry(9) */ - 14, /* unknown-MME-Code(14) */ - 19, /* unknown-eNB-Measurement-ID(19) */ - 5, /* unknown-new-eNB-UE-X2AP-ID(5) */ - 6, /* unknown-old-eNB-UE-X2AP-ID(6) */ - 49, /* unknown-old-en-gNB-UE-X2AP-ID(49) */ - 7, /* unknown-pair-of-UE-X2AP-ID(7) */ - 21, /* unspecified(21) */ - 42, /* user-inactivity(42) */ - 24 /* value-out-of-allowed-range(24) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_CauseRadioNetwork_specs_1 = { - asn_MAP_CauseRadioNetwork_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_CauseRadioNetwork_enum2value_1, /* N => "tag"; sorted by N */ - 51, /* Number of elements in the maps */ - 23, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_CauseRadioNetwork_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_CauseRadioNetwork = { - "CauseRadioNetwork", - "CauseRadioNetwork", - &asn_OP_NativeEnumerated, - asn_DEF_CauseRadioNetwork_tags_1, - sizeof(asn_DEF_CauseRadioNetwork_tags_1) - /sizeof(asn_DEF_CauseRadioNetwork_tags_1[0]), /* 1 */ - asn_DEF_CauseRadioNetwork_tags_1, /* Same as above */ - sizeof(asn_DEF_CauseRadioNetwork_tags_1) - /sizeof(asn_DEF_CauseRadioNetwork_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_CauseRadioNetwork_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_CauseRadioNetwork_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/CauseRadioNetwork.h b/e2sim/previous/ASN1c/CauseRadioNetwork.h deleted file mode 100644 index 7ab7f90..0000000 --- a/e2sim/previous/ASN1c/CauseRadioNetwork.h +++ /dev/null @@ -1,121 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _CauseRadioNetwork_H_ -#define _CauseRadioNetwork_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum CauseRadioNetwork { - CauseRadioNetwork_handover_desirable_for_radio_reasons = 0, - CauseRadioNetwork_time_critical_handover = 1, - CauseRadioNetwork_resource_optimisation_handover = 2, - CauseRadioNetwork_reduce_load_in_serving_cell = 3, - CauseRadioNetwork_partial_handover = 4, - CauseRadioNetwork_unknown_new_eNB_UE_X2AP_ID = 5, - CauseRadioNetwork_unknown_old_eNB_UE_X2AP_ID = 6, - CauseRadioNetwork_unknown_pair_of_UE_X2AP_ID = 7, - CauseRadioNetwork_ho_target_not_allowed = 8, - CauseRadioNetwork_tx2relocoverall_expiry = 9, - CauseRadioNetwork_trelocprep_expiry = 10, - CauseRadioNetwork_cell_not_available = 11, - CauseRadioNetwork_no_radio_resources_available_in_target_cell = 12, - CauseRadioNetwork_invalid_MME_GroupID = 13, - CauseRadioNetwork_unknown_MME_Code = 14, - CauseRadioNetwork_encryption_and_or_integrity_protection_algorithms_not_supported = 15, - CauseRadioNetwork_reportCharacteristicsEmpty = 16, - CauseRadioNetwork_noReportPeriodicity = 17, - CauseRadioNetwork_existingMeasurementID = 18, - CauseRadioNetwork_unknown_eNB_Measurement_ID = 19, - CauseRadioNetwork_measurement_temporarily_not_available = 20, - CauseRadioNetwork_unspecified = 21, - /* - * Enumeration is extensible - */ - CauseRadioNetwork_load_balancing = 22, - CauseRadioNetwork_handover_optimisation = 23, - CauseRadioNetwork_value_out_of_allowed_range = 24, - CauseRadioNetwork_multiple_E_RAB_ID_instances = 25, - CauseRadioNetwork_switch_off_ongoing = 26, - CauseRadioNetwork_not_supported_QCI_value = 27, - CauseRadioNetwork_measurement_not_supported_for_the_object = 28, - CauseRadioNetwork_tDCoverall_expiry = 29, - CauseRadioNetwork_tDCprep_expiry = 30, - CauseRadioNetwork_action_desirable_for_radio_reasons = 31, - CauseRadioNetwork_reduce_load = 32, - CauseRadioNetwork_resource_optimisation = 33, - CauseRadioNetwork_time_critical_action = 34, - CauseRadioNetwork_target_not_allowed = 35, - CauseRadioNetwork_no_radio_resources_available = 36, - CauseRadioNetwork_invalid_QoS_combination = 37, - CauseRadioNetwork_encryption_algorithms_not_aupported = 38, - CauseRadioNetwork_procedure_cancelled = 39, - CauseRadioNetwork_rRM_purpose = 40, - CauseRadioNetwork_improve_user_bit_rate = 41, - CauseRadioNetwork_user_inactivity = 42, - CauseRadioNetwork_radio_connection_with_UE_lost = 43, - CauseRadioNetwork_failure_in_the_radio_interface_procedure = 44, - CauseRadioNetwork_bearer_option_not_supported = 45, - CauseRadioNetwork_mCG_Mobility = 46, - CauseRadioNetwork_sCG_Mobility = 47, - CauseRadioNetwork_count_reaches_max_value = 48, - CauseRadioNetwork_unknown_old_en_gNB_UE_X2AP_ID = 49, - CauseRadioNetwork_pDCP_Overload = 50 -} e_CauseRadioNetwork; - -/* CauseRadioNetwork */ -typedef long CauseRadioNetwork_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_CauseRadioNetwork_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_CauseRadioNetwork; -extern const asn_INTEGER_specifics_t asn_SPC_CauseRadioNetwork_specs_1; -asn_struct_free_f CauseRadioNetwork_free; -asn_struct_print_f CauseRadioNetwork_print; -asn_constr_check_f CauseRadioNetwork_constraint; -ber_type_decoder_f CauseRadioNetwork_decode_ber; -der_type_encoder_f CauseRadioNetwork_encode_der; -xer_type_decoder_f CauseRadioNetwork_decode_xer; -xer_type_encoder_f CauseRadioNetwork_encode_xer; -per_type_decoder_f CauseRadioNetwork_decode_uper; -per_type_encoder_f CauseRadioNetwork_encode_uper; -per_type_decoder_f CauseRadioNetwork_decode_aper; -per_type_encoder_f CauseRadioNetwork_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _CauseRadioNetwork_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/CauseTransport.c b/e2sim/previous/ASN1c/CauseTransport.c deleted file mode 100644 index e8364b8..0000000 --- a/e2sim/previous/ASN1c/CauseTransport.c +++ /dev/null @@ -1,73 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "CauseTransport.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_CauseTransport_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_CauseTransport_value2enum_1[] = { - { 0, 30, "transport-resource-unavailable" }, - { 1, 11, "unspecified" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_CauseTransport_enum2value_1[] = { - 0, /* transport-resource-unavailable(0) */ - 1 /* unspecified(1) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_CauseTransport_specs_1 = { - asn_MAP_CauseTransport_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_CauseTransport_enum2value_1, /* N => "tag"; sorted by N */ - 2, /* Number of elements in the maps */ - 3, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_CauseTransport_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_CauseTransport = { - "CauseTransport", - "CauseTransport", - &asn_OP_NativeEnumerated, - asn_DEF_CauseTransport_tags_1, - sizeof(asn_DEF_CauseTransport_tags_1) - /sizeof(asn_DEF_CauseTransport_tags_1[0]), /* 1 */ - asn_DEF_CauseTransport_tags_1, /* Same as above */ - sizeof(asn_DEF_CauseTransport_tags_1) - /sizeof(asn_DEF_CauseTransport_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_CauseTransport_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_CauseTransport_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/CauseTransport.h b/e2sim/previous/ASN1c/CauseTransport.h deleted file mode 100644 index 2adff94..0000000 --- a/e2sim/previous/ASN1c/CauseTransport.h +++ /dev/null @@ -1,72 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _CauseTransport_H_ -#define _CauseTransport_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum CauseTransport { - CauseTransport_transport_resource_unavailable = 0, - CauseTransport_unspecified = 1 - /* - * Enumeration is extensible - */ -} e_CauseTransport; - -/* CauseTransport */ -typedef long CauseTransport_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_CauseTransport_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_CauseTransport; -extern const asn_INTEGER_specifics_t asn_SPC_CauseTransport_specs_1; -asn_struct_free_f CauseTransport_free; -asn_struct_print_f CauseTransport_print; -asn_constr_check_f CauseTransport_constraint; -ber_type_decoder_f CauseTransport_decode_ber; -der_type_encoder_f CauseTransport_encode_der; -xer_type_decoder_f CauseTransport_decode_xer; -xer_type_encoder_f CauseTransport_encode_xer; -per_type_decoder_f CauseTransport_decode_uper; -per_type_encoder_f CauseTransport_encode_uper; -per_type_decoder_f CauseTransport_decode_aper; -per_type_encoder_f CauseTransport_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _CauseTransport_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/Cell-Size.c b/e2sim/previous/ASN1c/Cell-Size.c deleted file mode 100644 index 8775b64..0000000 --- a/e2sim/previous/ASN1c/Cell-Size.c +++ /dev/null @@ -1,77 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "Cell-Size.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_Cell_Size_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 3 } /* (0..3,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_Cell_Size_value2enum_1[] = { - { 0, 9, "verysmall" }, - { 1, 5, "small" }, - { 2, 6, "medium" }, - { 3, 5, "large" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_Cell_Size_enum2value_1[] = { - 3, /* large(3) */ - 2, /* medium(2) */ - 1, /* small(1) */ - 0 /* verysmall(0) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_Cell_Size_specs_1 = { - asn_MAP_Cell_Size_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_Cell_Size_enum2value_1, /* N => "tag"; sorted by N */ - 4, /* Number of elements in the maps */ - 5, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_Cell_Size_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_Cell_Size = { - "Cell-Size", - "Cell-Size", - &asn_OP_NativeEnumerated, - asn_DEF_Cell_Size_tags_1, - sizeof(asn_DEF_Cell_Size_tags_1) - /sizeof(asn_DEF_Cell_Size_tags_1[0]), /* 1 */ - asn_DEF_Cell_Size_tags_1, /* Same as above */ - sizeof(asn_DEF_Cell_Size_tags_1) - /sizeof(asn_DEF_Cell_Size_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_Cell_Size_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_Cell_Size_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/Cell-Size.h b/e2sim/previous/ASN1c/Cell-Size.h deleted file mode 100644 index 813ac94..0000000 --- a/e2sim/previous/ASN1c/Cell-Size.h +++ /dev/null @@ -1,74 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _Cell_Size_H_ -#define _Cell_Size_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum Cell_Size { - Cell_Size_verysmall = 0, - Cell_Size_small = 1, - Cell_Size_medium = 2, - Cell_Size_large = 3 - /* - * Enumeration is extensible - */ -} e_Cell_Size; - -/* Cell-Size */ -typedef long Cell_Size_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_Cell_Size_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_Cell_Size; -extern const asn_INTEGER_specifics_t asn_SPC_Cell_Size_specs_1; -asn_struct_free_f Cell_Size_free; -asn_struct_print_f Cell_Size_print; -asn_constr_check_f Cell_Size_constraint; -ber_type_decoder_f Cell_Size_decode_ber; -der_type_encoder_f Cell_Size_encode_der; -xer_type_decoder_f Cell_Size_decode_xer; -xer_type_encoder_f Cell_Size_encode_xer; -per_type_decoder_f Cell_Size_decode_uper; -per_type_encoder_f Cell_Size_encode_uper; -per_type_decoder_f Cell_Size_decode_aper; -per_type_encoder_f Cell_Size_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _Cell_Size_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/CellActivationFailure.c b/e2sim/previous/ASN1c/CellActivationFailure.c deleted file mode 100644 index 7edd26b..0000000 --- a/e2sim/previous/ASN1c/CellActivationFailure.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "CellActivationFailure.h" - -static asn_TYPE_member_t asn_MBR_CellActivationFailure_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct CellActivationFailure, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_119P41, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_CellActivationFailure_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_CellActivationFailure_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_CellActivationFailure_specs_1 = { - sizeof(struct CellActivationFailure), - offsetof(struct CellActivationFailure, _asn_ctx), - asn_MAP_CellActivationFailure_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_CellActivationFailure = { - "CellActivationFailure", - "CellActivationFailure", - &asn_OP_SEQUENCE, - asn_DEF_CellActivationFailure_tags_1, - sizeof(asn_DEF_CellActivationFailure_tags_1) - /sizeof(asn_DEF_CellActivationFailure_tags_1[0]), /* 1 */ - asn_DEF_CellActivationFailure_tags_1, /* Same as above */ - sizeof(asn_DEF_CellActivationFailure_tags_1) - /sizeof(asn_DEF_CellActivationFailure_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_CellActivationFailure_1, - 1, /* Elements count */ - &asn_SPC_CellActivationFailure_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/CellActivationFailure.h b/e2sim/previous/ASN1c/CellActivationFailure.h deleted file mode 100644 index 54ad738..0000000 --- a/e2sim/previous/ASN1c/CellActivationFailure.h +++ /dev/null @@ -1,60 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _CellActivationFailure_H_ -#define _CellActivationFailure_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* CellActivationFailure */ -typedef struct CellActivationFailure { - ProtocolIE_Container_119P41_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} CellActivationFailure_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_CellActivationFailure; - -#ifdef __cplusplus -} -#endif - -#endif /* _CellActivationFailure_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/CellActivationRequest.c b/e2sim/previous/ASN1c/CellActivationRequest.c deleted file mode 100644 index 60598bf..0000000 --- a/e2sim/previous/ASN1c/CellActivationRequest.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "CellActivationRequest.h" - -static asn_TYPE_member_t asn_MBR_CellActivationRequest_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct CellActivationRequest, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_119P39, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_CellActivationRequest_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_CellActivationRequest_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_CellActivationRequest_specs_1 = { - sizeof(struct CellActivationRequest), - offsetof(struct CellActivationRequest, _asn_ctx), - asn_MAP_CellActivationRequest_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_CellActivationRequest = { - "CellActivationRequest", - "CellActivationRequest", - &asn_OP_SEQUENCE, - asn_DEF_CellActivationRequest_tags_1, - sizeof(asn_DEF_CellActivationRequest_tags_1) - /sizeof(asn_DEF_CellActivationRequest_tags_1[0]), /* 1 */ - asn_DEF_CellActivationRequest_tags_1, /* Same as above */ - sizeof(asn_DEF_CellActivationRequest_tags_1) - /sizeof(asn_DEF_CellActivationRequest_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_CellActivationRequest_1, - 1, /* Elements count */ - &asn_SPC_CellActivationRequest_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/CellActivationRequest.h b/e2sim/previous/ASN1c/CellActivationRequest.h deleted file mode 100644 index 79448c1..0000000 --- a/e2sim/previous/ASN1c/CellActivationRequest.h +++ /dev/null @@ -1,60 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _CellActivationRequest_H_ -#define _CellActivationRequest_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* CellActivationRequest */ -typedef struct CellActivationRequest { - ProtocolIE_Container_119P39_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} CellActivationRequest_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_CellActivationRequest; - -#ifdef __cplusplus -} -#endif - -#endif /* _CellActivationRequest_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/CellActivationResponse.c b/e2sim/previous/ASN1c/CellActivationResponse.c deleted file mode 100644 index 05fc371..0000000 --- a/e2sim/previous/ASN1c/CellActivationResponse.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "CellActivationResponse.h" - -static asn_TYPE_member_t asn_MBR_CellActivationResponse_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct CellActivationResponse, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_119P40, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_CellActivationResponse_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_CellActivationResponse_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_CellActivationResponse_specs_1 = { - sizeof(struct CellActivationResponse), - offsetof(struct CellActivationResponse, _asn_ctx), - asn_MAP_CellActivationResponse_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_CellActivationResponse = { - "CellActivationResponse", - "CellActivationResponse", - &asn_OP_SEQUENCE, - asn_DEF_CellActivationResponse_tags_1, - sizeof(asn_DEF_CellActivationResponse_tags_1) - /sizeof(asn_DEF_CellActivationResponse_tags_1[0]), /* 1 */ - asn_DEF_CellActivationResponse_tags_1, /* Same as above */ - sizeof(asn_DEF_CellActivationResponse_tags_1) - /sizeof(asn_DEF_CellActivationResponse_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_CellActivationResponse_1, - 1, /* Elements count */ - &asn_SPC_CellActivationResponse_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/CellActivationResponse.h b/e2sim/previous/ASN1c/CellActivationResponse.h deleted file mode 100644 index cc84201..0000000 --- a/e2sim/previous/ASN1c/CellActivationResponse.h +++ /dev/null @@ -1,60 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _CellActivationResponse_H_ -#define _CellActivationResponse_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* CellActivationResponse */ -typedef struct CellActivationResponse { - ProtocolIE_Container_119P40_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} CellActivationResponse_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_CellActivationResponse; - -#ifdef __cplusplus -} -#endif - -#endif /* _CellActivationResponse_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/CellAssistanceInformation.c b/e2sim/previous/ASN1c/CellAssistanceInformation.c deleted file mode 100644 index 2e183d8..0000000 --- a/e2sim/previous/ASN1c/CellAssistanceInformation.c +++ /dev/null @@ -1,127 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "CellAssistanceInformation.h" - -#include "Limited-list.h" -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -static asn_per_constraints_t asn_PER_type_full_list_constr_3 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 0, 0 } /* (0..0,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_type_CellAssistanceInformation_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_full_list_value2enum_3[] = { - { 0, 16, "allServedNRcells" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_full_list_enum2value_3[] = { - 0 /* allServedNRcells(0) */ - /* This list is extensible */ -}; -static const asn_INTEGER_specifics_t asn_SPC_full_list_specs_3 = { - asn_MAP_full_list_value2enum_3, /* "tag" => N; sorted by tag */ - asn_MAP_full_list_enum2value_3, /* N => "tag"; sorted by N */ - 1, /* Number of elements in the maps */ - 2, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_full_list_tags_3[] = { - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_full_list_3 = { - "full-list", - "full-list", - &asn_OP_NativeEnumerated, - asn_DEF_full_list_tags_3, - sizeof(asn_DEF_full_list_tags_3) - /sizeof(asn_DEF_full_list_tags_3[0]) - 1, /* 1 */ - asn_DEF_full_list_tags_3, /* Same as above */ - sizeof(asn_DEF_full_list_tags_3) - /sizeof(asn_DEF_full_list_tags_3[0]), /* 2 */ - { 0, &asn_PER_type_full_list_constr_3, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_full_list_specs_3 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_CellAssistanceInformation_1[] = { - { ATF_POINTER, 0, offsetof(struct CellAssistanceInformation, choice.limited_list), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Limited_list, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "limited-list" - }, - { ATF_NOFLAGS, 0, offsetof(struct CellAssistanceInformation, choice.full_list), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_full_list_3, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "full-list" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_CellAssistanceInformation_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* limited-list */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* full-list */ -}; -static asn_CHOICE_specifics_t asn_SPC_CellAssistanceInformation_specs_1 = { - sizeof(struct CellAssistanceInformation), - offsetof(struct CellAssistanceInformation, _asn_ctx), - offsetof(struct CellAssistanceInformation, present), - sizeof(((struct CellAssistanceInformation *)0)->present), - asn_MAP_CellAssistanceInformation_tag2el_1, - 2, /* Count of tags in the map */ - 0, 0, - 2 /* Extensions start */ -}; -asn_TYPE_descriptor_t asn_DEF_CellAssistanceInformation = { - "CellAssistanceInformation", - "CellAssistanceInformation", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, &asn_PER_type_CellAssistanceInformation_constr_1, CHOICE_constraint }, - asn_MBR_CellAssistanceInformation_1, - 2, /* Elements count */ - &asn_SPC_CellAssistanceInformation_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/CellAssistanceInformation.h b/e2sim/previous/ASN1c/CellAssistanceInformation.h deleted file mode 100644 index 987c42e..0000000 --- a/e2sim/previous/ASN1c/CellAssistanceInformation.h +++ /dev/null @@ -1,83 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _CellAssistanceInformation_H_ -#define _CellAssistanceInformation_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" -#include "constr_CHOICE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum CellAssistanceInformation_PR { - CellAssistanceInformation_PR_NOTHING, /* No components present */ - CellAssistanceInformation_PR_limited_list, - CellAssistanceInformation_PR_full_list - /* Extensions may appear below */ - -} CellAssistanceInformation_PR; -typedef enum CellAssistanceInformation__full_list { - CellAssistanceInformation__full_list_allServedNRcells = 0 - /* - * Enumeration is extensible - */ -} e_CellAssistanceInformation__full_list; - -/* Forward declarations */ -struct Limited_list; - -/* CellAssistanceInformation */ -typedef struct CellAssistanceInformation { - CellAssistanceInformation_PR present; - union CellAssistanceInformation_u { - struct Limited_list *limited_list; - long full_list; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} CellAssistanceInformation_t; - -/* Implementation */ -/* extern asn_TYPE_descriptor_t asn_DEF_full_list_3; // (Use -fall-defs-global to expose) */ -extern asn_TYPE_descriptor_t asn_DEF_CellAssistanceInformation; - -#ifdef __cplusplus -} -#endif - -#endif /* _CellAssistanceInformation_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/CellBasedMDT.c b/e2sim/previous/ASN1c/CellBasedMDT.c deleted file mode 100644 index 84eba09..0000000 --- a/e2sim/previous/ASN1c/CellBasedMDT.c +++ /dev/null @@ -1,81 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "CellBasedMDT.h" - -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_CellBasedMDT_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct CellBasedMDT, cellIdListforMDT), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_CellIdListforMDT, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "cellIdListforMDT" - }, - { ATF_POINTER, 1, offsetof(struct CellBasedMDT, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P112, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_CellBasedMDT_oms_1[] = { 1 }; -static const ber_tlv_tag_t asn_DEF_CellBasedMDT_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_CellBasedMDT_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* cellIdListforMDT */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_CellBasedMDT_specs_1 = { - sizeof(struct CellBasedMDT), - offsetof(struct CellBasedMDT, _asn_ctx), - asn_MAP_CellBasedMDT_tag2el_1, - 2, /* Count of tags in the map */ - asn_MAP_CellBasedMDT_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 2, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_CellBasedMDT = { - "CellBasedMDT", - "CellBasedMDT", - &asn_OP_SEQUENCE, - asn_DEF_CellBasedMDT_tags_1, - sizeof(asn_DEF_CellBasedMDT_tags_1) - /sizeof(asn_DEF_CellBasedMDT_tags_1[0]), /* 1 */ - asn_DEF_CellBasedMDT_tags_1, /* Same as above */ - sizeof(asn_DEF_CellBasedMDT_tags_1) - /sizeof(asn_DEF_CellBasedMDT_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_CellBasedMDT_1, - 2, /* Elements count */ - &asn_SPC_CellBasedMDT_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/CellBasedMDT.h b/e2sim/previous/ASN1c/CellBasedMDT.h deleted file mode 100644 index d9a7a0e..0000000 --- a/e2sim/previous/ASN1c/CellBasedMDT.h +++ /dev/null @@ -1,66 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _CellBasedMDT_H_ -#define _CellBasedMDT_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "CellIdListforMDT.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* CellBasedMDT */ -typedef struct CellBasedMDT { - CellIdListforMDT_t cellIdListforMDT; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} CellBasedMDT_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_CellBasedMDT; -extern asn_SEQUENCE_specifics_t asn_SPC_CellBasedMDT_specs_1; -extern asn_TYPE_member_t asn_MBR_CellBasedMDT_1[2]; - -#ifdef __cplusplus -} -#endif - -#endif /* _CellBasedMDT_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/CellBasedQMC.c b/e2sim/previous/ASN1c/CellBasedQMC.c deleted file mode 100644 index 6faf135..0000000 --- a/e2sim/previous/ASN1c/CellBasedQMC.c +++ /dev/null @@ -1,81 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "CellBasedQMC.h" - -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_CellBasedQMC_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct CellBasedQMC, cellIdListforQMC), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_CellIdListforQMC, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "cellIdListforQMC" - }, - { ATF_POINTER, 1, offsetof(struct CellBasedQMC, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P113, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_CellBasedQMC_oms_1[] = { 1 }; -static const ber_tlv_tag_t asn_DEF_CellBasedQMC_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_CellBasedQMC_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* cellIdListforQMC */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_CellBasedQMC_specs_1 = { - sizeof(struct CellBasedQMC), - offsetof(struct CellBasedQMC, _asn_ctx), - asn_MAP_CellBasedQMC_tag2el_1, - 2, /* Count of tags in the map */ - asn_MAP_CellBasedQMC_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 2, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_CellBasedQMC = { - "CellBasedQMC", - "CellBasedQMC", - &asn_OP_SEQUENCE, - asn_DEF_CellBasedQMC_tags_1, - sizeof(asn_DEF_CellBasedQMC_tags_1) - /sizeof(asn_DEF_CellBasedQMC_tags_1[0]), /* 1 */ - asn_DEF_CellBasedQMC_tags_1, /* Same as above */ - sizeof(asn_DEF_CellBasedQMC_tags_1) - /sizeof(asn_DEF_CellBasedQMC_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_CellBasedQMC_1, - 2, /* Elements count */ - &asn_SPC_CellBasedQMC_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/CellBasedQMC.h b/e2sim/previous/ASN1c/CellBasedQMC.h deleted file mode 100644 index dc35c7e..0000000 --- a/e2sim/previous/ASN1c/CellBasedQMC.h +++ /dev/null @@ -1,66 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _CellBasedQMC_H_ -#define _CellBasedQMC_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "CellIdListforQMC.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* CellBasedQMC */ -typedef struct CellBasedQMC { - CellIdListforQMC_t cellIdListforQMC; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} CellBasedQMC_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_CellBasedQMC; -extern asn_SEQUENCE_specifics_t asn_SPC_CellBasedQMC_specs_1; -extern asn_TYPE_member_t asn_MBR_CellBasedQMC_1[2]; - -#ifdef __cplusplus -} -#endif - -#endif /* _CellBasedQMC_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/CellCapacityClassValue.c b/e2sim/previous/ASN1c/CellCapacityClassValue.c deleted file mode 100644 index aea44bb..0000000 --- a/e2sim/previous/ASN1c/CellCapacityClassValue.c +++ /dev/null @@ -1,79 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "CellCapacityClassValue.h" - -int -CellCapacityClassValue_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 1 && value <= 100)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using NativeInteger, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_CellCapacityClassValue_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 7, 7, 1, 100 } /* (1..100,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_CellCapacityClassValue_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_CellCapacityClassValue = { - "CellCapacityClassValue", - "CellCapacityClassValue", - &asn_OP_NativeInteger, - asn_DEF_CellCapacityClassValue_tags_1, - sizeof(asn_DEF_CellCapacityClassValue_tags_1) - /sizeof(asn_DEF_CellCapacityClassValue_tags_1[0]), /* 1 */ - asn_DEF_CellCapacityClassValue_tags_1, /* Same as above */ - sizeof(asn_DEF_CellCapacityClassValue_tags_1) - /sizeof(asn_DEF_CellCapacityClassValue_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_CellCapacityClassValue_constr_1, CellCapacityClassValue_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/previous/ASN1c/CellCapacityClassValue.h b/e2sim/previous/ASN1c/CellCapacityClassValue.h deleted file mode 100644 index 63e554b..0000000 --- a/e2sim/previous/ASN1c/CellCapacityClassValue.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _CellCapacityClassValue_H_ -#define _CellCapacityClassValue_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeInteger.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* CellCapacityClassValue */ -typedef long CellCapacityClassValue_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_CellCapacityClassValue_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_CellCapacityClassValue; -asn_struct_free_f CellCapacityClassValue_free; -asn_struct_print_f CellCapacityClassValue_print; -asn_constr_check_f CellCapacityClassValue_constraint; -ber_type_decoder_f CellCapacityClassValue_decode_ber; -der_type_encoder_f CellCapacityClassValue_encode_der; -xer_type_decoder_f CellCapacityClassValue_decode_xer; -xer_type_encoder_f CellCapacityClassValue_encode_xer; -per_type_decoder_f CellCapacityClassValue_decode_uper; -per_type_encoder_f CellCapacityClassValue_encode_uper; -per_type_decoder_f CellCapacityClassValue_decode_aper; -per_type_encoder_f CellCapacityClassValue_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _CellCapacityClassValue_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/CellDeploymentStatusIndicator.c b/e2sim/previous/ASN1c/CellDeploymentStatusIndicator.c deleted file mode 100644 index 040f7eb..0000000 --- a/e2sim/previous/ASN1c/CellDeploymentStatusIndicator.c +++ /dev/null @@ -1,71 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "CellDeploymentStatusIndicator.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_CellDeploymentStatusIndicator_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 0, 0 } /* (0..0,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_CellDeploymentStatusIndicator_value2enum_1[] = { - { 0, 23, "pre-change-notification" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_CellDeploymentStatusIndicator_enum2value_1[] = { - 0 /* pre-change-notification(0) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_CellDeploymentStatusIndicator_specs_1 = { - asn_MAP_CellDeploymentStatusIndicator_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_CellDeploymentStatusIndicator_enum2value_1, /* N => "tag"; sorted by N */ - 1, /* Number of elements in the maps */ - 2, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_CellDeploymentStatusIndicator_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_CellDeploymentStatusIndicator = { - "CellDeploymentStatusIndicator", - "CellDeploymentStatusIndicator", - &asn_OP_NativeEnumerated, - asn_DEF_CellDeploymentStatusIndicator_tags_1, - sizeof(asn_DEF_CellDeploymentStatusIndicator_tags_1) - /sizeof(asn_DEF_CellDeploymentStatusIndicator_tags_1[0]), /* 1 */ - asn_DEF_CellDeploymentStatusIndicator_tags_1, /* Same as above */ - sizeof(asn_DEF_CellDeploymentStatusIndicator_tags_1) - /sizeof(asn_DEF_CellDeploymentStatusIndicator_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_CellDeploymentStatusIndicator_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_CellDeploymentStatusIndicator_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/CellDeploymentStatusIndicator.h b/e2sim/previous/ASN1c/CellDeploymentStatusIndicator.h deleted file mode 100644 index ea84428..0000000 --- a/e2sim/previous/ASN1c/CellDeploymentStatusIndicator.h +++ /dev/null @@ -1,71 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _CellDeploymentStatusIndicator_H_ -#define _CellDeploymentStatusIndicator_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum CellDeploymentStatusIndicator { - CellDeploymentStatusIndicator_pre_change_notification = 0 - /* - * Enumeration is extensible - */ -} e_CellDeploymentStatusIndicator; - -/* CellDeploymentStatusIndicator */ -typedef long CellDeploymentStatusIndicator_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_CellDeploymentStatusIndicator_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_CellDeploymentStatusIndicator; -extern const asn_INTEGER_specifics_t asn_SPC_CellDeploymentStatusIndicator_specs_1; -asn_struct_free_f CellDeploymentStatusIndicator_free; -asn_struct_print_f CellDeploymentStatusIndicator_print; -asn_constr_check_f CellDeploymentStatusIndicator_constraint; -ber_type_decoder_f CellDeploymentStatusIndicator_decode_ber; -der_type_encoder_f CellDeploymentStatusIndicator_encode_der; -xer_type_decoder_f CellDeploymentStatusIndicator_decode_xer; -xer_type_encoder_f CellDeploymentStatusIndicator_encode_xer; -per_type_decoder_f CellDeploymentStatusIndicator_decode_uper; -per_type_encoder_f CellDeploymentStatusIndicator_encode_uper; -per_type_decoder_f CellDeploymentStatusIndicator_decode_aper; -per_type_encoder_f CellDeploymentStatusIndicator_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _CellDeploymentStatusIndicator_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/CellIdListforMDT.c b/e2sim/previous/ASN1c/CellIdListforMDT.c deleted file mode 100644 index 1d3e073..0000000 --- a/e2sim/previous/ASN1c/CellIdListforMDT.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "CellIdListforMDT.h" - -#include "ECGI.h" -asn_per_constraints_t asn_PER_type_CellIdListforMDT_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_CellIdListforMDT_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ECGI, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_CellIdListforMDT_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_CellIdListforMDT_specs_1 = { - sizeof(struct CellIdListforMDT), - offsetof(struct CellIdListforMDT, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_CellIdListforMDT = { - "CellIdListforMDT", - "CellIdListforMDT", - &asn_OP_SEQUENCE_OF, - asn_DEF_CellIdListforMDT_tags_1, - sizeof(asn_DEF_CellIdListforMDT_tags_1) - /sizeof(asn_DEF_CellIdListforMDT_tags_1[0]), /* 1 */ - asn_DEF_CellIdListforMDT_tags_1, /* Same as above */ - sizeof(asn_DEF_CellIdListforMDT_tags_1) - /sizeof(asn_DEF_CellIdListforMDT_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_CellIdListforMDT_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_CellIdListforMDT_1, - 1, /* Single element */ - &asn_SPC_CellIdListforMDT_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/CellIdListforMDT.h b/e2sim/previous/ASN1c/CellIdListforMDT.h deleted file mode 100644 index 2419753..0000000 --- a/e2sim/previous/ASN1c/CellIdListforMDT.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _CellIdListforMDT_H_ -#define _CellIdListforMDT_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ECGI; - -/* CellIdListforMDT */ -typedef struct CellIdListforMDT { - A_SEQUENCE_OF(struct ECGI) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} CellIdListforMDT_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_CellIdListforMDT; -extern asn_SET_OF_specifics_t asn_SPC_CellIdListforMDT_specs_1; -extern asn_TYPE_member_t asn_MBR_CellIdListforMDT_1[1]; -extern asn_per_constraints_t asn_PER_type_CellIdListforMDT_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _CellIdListforMDT_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/CellIdListforQMC.c b/e2sim/previous/ASN1c/CellIdListforQMC.c deleted file mode 100644 index 0786f57..0000000 --- a/e2sim/previous/ASN1c/CellIdListforQMC.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "CellIdListforQMC.h" - -#include "ECGI.h" -asn_per_constraints_t asn_PER_type_CellIdListforQMC_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_CellIdListforQMC_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ECGI, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_CellIdListforQMC_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_CellIdListforQMC_specs_1 = { - sizeof(struct CellIdListforQMC), - offsetof(struct CellIdListforQMC, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_CellIdListforQMC = { - "CellIdListforQMC", - "CellIdListforQMC", - &asn_OP_SEQUENCE_OF, - asn_DEF_CellIdListforQMC_tags_1, - sizeof(asn_DEF_CellIdListforQMC_tags_1) - /sizeof(asn_DEF_CellIdListforQMC_tags_1[0]), /* 1 */ - asn_DEF_CellIdListforQMC_tags_1, /* Same as above */ - sizeof(asn_DEF_CellIdListforQMC_tags_1) - /sizeof(asn_DEF_CellIdListforQMC_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_CellIdListforQMC_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_CellIdListforQMC_1, - 1, /* Single element */ - &asn_SPC_CellIdListforQMC_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/CellIdListforQMC.h b/e2sim/previous/ASN1c/CellIdListforQMC.h deleted file mode 100644 index 88e1e7d..0000000 --- a/e2sim/previous/ASN1c/CellIdListforQMC.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _CellIdListforQMC_H_ -#define _CellIdListforQMC_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ECGI; - -/* CellIdListforQMC */ -typedef struct CellIdListforQMC { - A_SEQUENCE_OF(struct ECGI) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} CellIdListforQMC_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_CellIdListforQMC; -extern asn_SET_OF_specifics_t asn_SPC_CellIdListforQMC_specs_1; -extern asn_TYPE_member_t asn_MBR_CellIdListforQMC_1[1]; -extern asn_per_constraints_t asn_PER_type_CellIdListforQMC_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _CellIdListforQMC_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/CellInformation-Item.c b/e2sim/previous/ASN1c/CellInformation-Item.c deleted file mode 100644 index b74f6be..0000000 --- a/e2sim/previous/ASN1c/CellInformation-Item.c +++ /dev/null @@ -1,114 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "CellInformation-Item.h" - -#include "UL-InterferenceOverloadIndication.h" -#include "UL-HighInterferenceIndicationInfo.h" -#include "RelativeNarrowbandTxPower.h" -#include "ProtocolExtensionContainer.h" -static asn_TYPE_member_t asn_MBR_CellInformation_Item_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct CellInformation_Item, cell_ID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ECGI, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "cell-ID" - }, - { ATF_POINTER, 4, offsetof(struct CellInformation_Item, ul_InterferenceOverloadIndication), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_UL_InterferenceOverloadIndication, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ul-InterferenceOverloadIndication" - }, - { ATF_POINTER, 3, offsetof(struct CellInformation_Item, ul_HighInterferenceIndicationInfo), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_UL_HighInterferenceIndicationInfo, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ul-HighInterferenceIndicationInfo" - }, - { ATF_POINTER, 2, offsetof(struct CellInformation_Item, relativeNarrowbandTxPower), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RelativeNarrowbandTxPower, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "relativeNarrowbandTxPower" - }, - { ATF_POINTER, 1, offsetof(struct CellInformation_Item, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (4 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P7, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_CellInformation_Item_oms_1[] = { 1, 2, 3, 4 }; -static const ber_tlv_tag_t asn_DEF_CellInformation_Item_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_CellInformation_Item_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* cell-ID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ul-InterferenceOverloadIndication */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* ul-HighInterferenceIndicationInfo */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* relativeNarrowbandTxPower */ - { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* iE-Extensions */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_CellInformation_Item_specs_1 = { - sizeof(struct CellInformation_Item), - offsetof(struct CellInformation_Item, _asn_ctx), - asn_MAP_CellInformation_Item_tag2el_1, - 5, /* Count of tags in the map */ - asn_MAP_CellInformation_Item_oms_1, /* Optional members */ - 4, 0, /* Root/Additions */ - 5, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_CellInformation_Item = { - "CellInformation-Item", - "CellInformation-Item", - &asn_OP_SEQUENCE, - asn_DEF_CellInformation_Item_tags_1, - sizeof(asn_DEF_CellInformation_Item_tags_1) - /sizeof(asn_DEF_CellInformation_Item_tags_1[0]), /* 1 */ - asn_DEF_CellInformation_Item_tags_1, /* Same as above */ - sizeof(asn_DEF_CellInformation_Item_tags_1) - /sizeof(asn_DEF_CellInformation_Item_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_CellInformation_Item_1, - 5, /* Elements count */ - &asn_SPC_CellInformation_Item_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/CellInformation-Item.h b/e2sim/previous/ASN1c/CellInformation-Item.h deleted file mode 100644 index d276c54..0000000 --- a/e2sim/previous/ASN1c/CellInformation-Item.h +++ /dev/null @@ -1,70 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _CellInformation_Item_H_ -#define _CellInformation_Item_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ECGI.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct UL_InterferenceOverloadIndication; -struct UL_HighInterferenceIndicationInfo; -struct RelativeNarrowbandTxPower; -struct ProtocolExtensionContainer; - -/* CellInformation-Item */ -typedef struct CellInformation_Item { - ECGI_t cell_ID; - struct UL_InterferenceOverloadIndication *ul_InterferenceOverloadIndication; /* OPTIONAL */ - struct UL_HighInterferenceIndicationInfo *ul_HighInterferenceIndicationInfo; /* OPTIONAL */ - struct RelativeNarrowbandTxPower *relativeNarrowbandTxPower; /* OPTIONAL */ - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} CellInformation_Item_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_CellInformation_Item; - -#ifdef __cplusplus -} -#endif - -#endif /* _CellInformation_Item_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/CellInformation-List.c b/e2sim/previous/ASN1c/CellInformation-List.c deleted file mode 100644 index 3b09720..0000000 --- a/e2sim/previous/ASN1c/CellInformation-List.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "CellInformation-List.h" - -#include "ProtocolIE-Single-Container.h" -static asn_per_constraints_t asn_PER_type_CellInformation_List_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 8, 8, 1, 256 } /* (SIZE(1..256)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_CellInformation_List_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ProtocolIE_Single_Container_122P9, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_CellInformation_List_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_CellInformation_List_specs_1 = { - sizeof(struct CellInformation_List), - offsetof(struct CellInformation_List, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_CellInformation_List = { - "CellInformation-List", - "CellInformation-List", - &asn_OP_SEQUENCE_OF, - asn_DEF_CellInformation_List_tags_1, - sizeof(asn_DEF_CellInformation_List_tags_1) - /sizeof(asn_DEF_CellInformation_List_tags_1[0]), /* 1 */ - asn_DEF_CellInformation_List_tags_1, /* Same as above */ - sizeof(asn_DEF_CellInformation_List_tags_1) - /sizeof(asn_DEF_CellInformation_List_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_CellInformation_List_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_CellInformation_List_1, - 1, /* Single element */ - &asn_SPC_CellInformation_List_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/CellInformation-List.h b/e2sim/previous/ASN1c/CellInformation-List.h deleted file mode 100644 index c71dece..0000000 --- a/e2sim/previous/ASN1c/CellInformation-List.h +++ /dev/null @@ -1,59 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _CellInformation_List_H_ -#define _CellInformation_List_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolIE_Single_Container; - -/* CellInformation-List */ -typedef struct CellInformation_List { - A_SEQUENCE_OF(struct ProtocolIE_Single_Container) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} CellInformation_List_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_CellInformation_List; - -#ifdef __cplusplus -} -#endif - -#endif /* _CellInformation_List_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/CellMeasurementResult-Item.c b/e2sim/previous/ASN1c/CellMeasurementResult-Item.c deleted file mode 100644 index 9389595..0000000 --- a/e2sim/previous/ASN1c/CellMeasurementResult-Item.c +++ /dev/null @@ -1,114 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "CellMeasurementResult-Item.h" - -#include "HWLoadIndicator.h" -#include "S1TNLLoadIndicator.h" -#include "RadioResourceStatus.h" -#include "ProtocolExtensionContainer.h" -static asn_TYPE_member_t asn_MBR_CellMeasurementResult_Item_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct CellMeasurementResult_Item, cell_ID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ECGI, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "cell-ID" - }, - { ATF_POINTER, 4, offsetof(struct CellMeasurementResult_Item, hWLoadIndicator), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_HWLoadIndicator, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "hWLoadIndicator" - }, - { ATF_POINTER, 3, offsetof(struct CellMeasurementResult_Item, s1TNLLoadIndicator), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_S1TNLLoadIndicator, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "s1TNLLoadIndicator" - }, - { ATF_POINTER, 2, offsetof(struct CellMeasurementResult_Item, radioResourceStatus), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RadioResourceStatus, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "radioResourceStatus" - }, - { ATF_POINTER, 1, offsetof(struct CellMeasurementResult_Item, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (4 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P13, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_CellMeasurementResult_Item_oms_1[] = { 1, 2, 3, 4 }; -static const ber_tlv_tag_t asn_DEF_CellMeasurementResult_Item_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_CellMeasurementResult_Item_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* cell-ID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* hWLoadIndicator */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* s1TNLLoadIndicator */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* radioResourceStatus */ - { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* iE-Extensions */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_CellMeasurementResult_Item_specs_1 = { - sizeof(struct CellMeasurementResult_Item), - offsetof(struct CellMeasurementResult_Item, _asn_ctx), - asn_MAP_CellMeasurementResult_Item_tag2el_1, - 5, /* Count of tags in the map */ - asn_MAP_CellMeasurementResult_Item_oms_1, /* Optional members */ - 4, 0, /* Root/Additions */ - 5, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_CellMeasurementResult_Item = { - "CellMeasurementResult-Item", - "CellMeasurementResult-Item", - &asn_OP_SEQUENCE, - asn_DEF_CellMeasurementResult_Item_tags_1, - sizeof(asn_DEF_CellMeasurementResult_Item_tags_1) - /sizeof(asn_DEF_CellMeasurementResult_Item_tags_1[0]), /* 1 */ - asn_DEF_CellMeasurementResult_Item_tags_1, /* Same as above */ - sizeof(asn_DEF_CellMeasurementResult_Item_tags_1) - /sizeof(asn_DEF_CellMeasurementResult_Item_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_CellMeasurementResult_Item_1, - 5, /* Elements count */ - &asn_SPC_CellMeasurementResult_Item_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/CellMeasurementResult-Item.h b/e2sim/previous/ASN1c/CellMeasurementResult-Item.h deleted file mode 100644 index 3e1117e..0000000 --- a/e2sim/previous/ASN1c/CellMeasurementResult-Item.h +++ /dev/null @@ -1,70 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _CellMeasurementResult_Item_H_ -#define _CellMeasurementResult_Item_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ECGI.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct HWLoadIndicator; -struct S1TNLLoadIndicator; -struct RadioResourceStatus; -struct ProtocolExtensionContainer; - -/* CellMeasurementResult-Item */ -typedef struct CellMeasurementResult_Item { - ECGI_t cell_ID; - struct HWLoadIndicator *hWLoadIndicator; /* OPTIONAL */ - struct S1TNLLoadIndicator *s1TNLLoadIndicator; /* OPTIONAL */ - struct RadioResourceStatus *radioResourceStatus; /* OPTIONAL */ - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} CellMeasurementResult_Item_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_CellMeasurementResult_Item; - -#ifdef __cplusplus -} -#endif - -#endif /* _CellMeasurementResult_Item_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/CellMeasurementResult-List.c b/e2sim/previous/ASN1c/CellMeasurementResult-List.c deleted file mode 100644 index 33fcdb0..0000000 --- a/e2sim/previous/ASN1c/CellMeasurementResult-List.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "CellMeasurementResult-List.h" - -#include "ProtocolIE-Single-Container.h" -static asn_per_constraints_t asn_PER_type_CellMeasurementResult_List_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 8, 8, 1, 256 } /* (SIZE(1..256)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_CellMeasurementResult_List_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ProtocolIE_Single_Container_122P14, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_CellMeasurementResult_List_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_CellMeasurementResult_List_specs_1 = { - sizeof(struct CellMeasurementResult_List), - offsetof(struct CellMeasurementResult_List, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_CellMeasurementResult_List = { - "CellMeasurementResult-List", - "CellMeasurementResult-List", - &asn_OP_SEQUENCE_OF, - asn_DEF_CellMeasurementResult_List_tags_1, - sizeof(asn_DEF_CellMeasurementResult_List_tags_1) - /sizeof(asn_DEF_CellMeasurementResult_List_tags_1[0]), /* 1 */ - asn_DEF_CellMeasurementResult_List_tags_1, /* Same as above */ - sizeof(asn_DEF_CellMeasurementResult_List_tags_1) - /sizeof(asn_DEF_CellMeasurementResult_List_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_CellMeasurementResult_List_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_CellMeasurementResult_List_1, - 1, /* Single element */ - &asn_SPC_CellMeasurementResult_List_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/CellMeasurementResult-List.h b/e2sim/previous/ASN1c/CellMeasurementResult-List.h deleted file mode 100644 index effedc6..0000000 --- a/e2sim/previous/ASN1c/CellMeasurementResult-List.h +++ /dev/null @@ -1,59 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _CellMeasurementResult_List_H_ -#define _CellMeasurementResult_List_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolIE_Single_Container; - -/* CellMeasurementResult-List */ -typedef struct CellMeasurementResult_List { - A_SEQUENCE_OF(struct ProtocolIE_Single_Container) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} CellMeasurementResult_List_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_CellMeasurementResult_List; - -#ifdef __cplusplus -} -#endif - -#endif /* _CellMeasurementResult_List_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/CellReplacingInfo.c b/e2sim/previous/ASN1c/CellReplacingInfo.c deleted file mode 100644 index edf80c6..0000000 --- a/e2sim/previous/ASN1c/CellReplacingInfo.c +++ /dev/null @@ -1,81 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "CellReplacingInfo.h" - -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_CellReplacingInfo_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct CellReplacingInfo, replacingCellsList), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ReplacingCellsList, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "replacingCellsList" - }, - { ATF_POINTER, 1, offsetof(struct CellReplacingInfo, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P114, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_CellReplacingInfo_oms_1[] = { 1 }; -static const ber_tlv_tag_t asn_DEF_CellReplacingInfo_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_CellReplacingInfo_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* replacingCellsList */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_CellReplacingInfo_specs_1 = { - sizeof(struct CellReplacingInfo), - offsetof(struct CellReplacingInfo, _asn_ctx), - asn_MAP_CellReplacingInfo_tag2el_1, - 2, /* Count of tags in the map */ - asn_MAP_CellReplacingInfo_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 2, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_CellReplacingInfo = { - "CellReplacingInfo", - "CellReplacingInfo", - &asn_OP_SEQUENCE, - asn_DEF_CellReplacingInfo_tags_1, - sizeof(asn_DEF_CellReplacingInfo_tags_1) - /sizeof(asn_DEF_CellReplacingInfo_tags_1[0]), /* 1 */ - asn_DEF_CellReplacingInfo_tags_1, /* Same as above */ - sizeof(asn_DEF_CellReplacingInfo_tags_1) - /sizeof(asn_DEF_CellReplacingInfo_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_CellReplacingInfo_1, - 2, /* Elements count */ - &asn_SPC_CellReplacingInfo_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/CellReplacingInfo.h b/e2sim/previous/ASN1c/CellReplacingInfo.h deleted file mode 100644 index a346253..0000000 --- a/e2sim/previous/ASN1c/CellReplacingInfo.h +++ /dev/null @@ -1,66 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _CellReplacingInfo_H_ -#define _CellReplacingInfo_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ReplacingCellsList.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* CellReplacingInfo */ -typedef struct CellReplacingInfo { - ReplacingCellsList_t replacingCellsList; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} CellReplacingInfo_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_CellReplacingInfo; -extern asn_SEQUENCE_specifics_t asn_SPC_CellReplacingInfo_specs_1; -extern asn_TYPE_member_t asn_MBR_CellReplacingInfo_1[2]; - -#ifdef __cplusplus -} -#endif - -#endif /* _CellReplacingInfo_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/CellReportingIndicator.c b/e2sim/previous/ASN1c/CellReportingIndicator.c deleted file mode 100644 index 02b30e7..0000000 --- a/e2sim/previous/ASN1c/CellReportingIndicator.c +++ /dev/null @@ -1,71 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "CellReportingIndicator.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_CellReportingIndicator_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 0, 0 } /* (0..0,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_CellReportingIndicator_value2enum_1[] = { - { 0, 12, "stop-request" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_CellReportingIndicator_enum2value_1[] = { - 0 /* stop-request(0) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_CellReportingIndicator_specs_1 = { - asn_MAP_CellReportingIndicator_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_CellReportingIndicator_enum2value_1, /* N => "tag"; sorted by N */ - 1, /* Number of elements in the maps */ - 2, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_CellReportingIndicator_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_CellReportingIndicator = { - "CellReportingIndicator", - "CellReportingIndicator", - &asn_OP_NativeEnumerated, - asn_DEF_CellReportingIndicator_tags_1, - sizeof(asn_DEF_CellReportingIndicator_tags_1) - /sizeof(asn_DEF_CellReportingIndicator_tags_1[0]), /* 1 */ - asn_DEF_CellReportingIndicator_tags_1, /* Same as above */ - sizeof(asn_DEF_CellReportingIndicator_tags_1) - /sizeof(asn_DEF_CellReportingIndicator_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_CellReportingIndicator_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_CellReportingIndicator_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/CellReportingIndicator.h b/e2sim/previous/ASN1c/CellReportingIndicator.h deleted file mode 100644 index 73585c2..0000000 --- a/e2sim/previous/ASN1c/CellReportingIndicator.h +++ /dev/null @@ -1,71 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _CellReportingIndicator_H_ -#define _CellReportingIndicator_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum CellReportingIndicator { - CellReportingIndicator_stop_request = 0 - /* - * Enumeration is extensible - */ -} e_CellReportingIndicator; - -/* CellReportingIndicator */ -typedef long CellReportingIndicator_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_CellReportingIndicator_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_CellReportingIndicator; -extern const asn_INTEGER_specifics_t asn_SPC_CellReportingIndicator_specs_1; -asn_struct_free_f CellReportingIndicator_free; -asn_struct_print_f CellReportingIndicator_print; -asn_constr_check_f CellReportingIndicator_constraint; -ber_type_decoder_f CellReportingIndicator_decode_ber; -der_type_encoder_f CellReportingIndicator_encode_der; -xer_type_decoder_f CellReportingIndicator_decode_xer; -xer_type_encoder_f CellReportingIndicator_encode_xer; -per_type_decoder_f CellReportingIndicator_decode_uper; -per_type_encoder_f CellReportingIndicator_encode_uper; -per_type_decoder_f CellReportingIndicator_decode_aper; -per_type_encoder_f CellReportingIndicator_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _CellReportingIndicator_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/CellToReport-Item.c b/e2sim/previous/ASN1c/CellToReport-Item.c deleted file mode 100644 index 1a3f1e4..0000000 --- a/e2sim/previous/ASN1c/CellToReport-Item.c +++ /dev/null @@ -1,81 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "CellToReport-Item.h" - -#include "ProtocolExtensionContainer.h" -static asn_TYPE_member_t asn_MBR_CellToReport_Item_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct CellToReport_Item, cell_ID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ECGI, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "cell-ID" - }, - { ATF_POINTER, 1, offsetof(struct CellToReport_Item, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P9, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_CellToReport_Item_oms_1[] = { 1 }; -static const ber_tlv_tag_t asn_DEF_CellToReport_Item_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_CellToReport_Item_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* cell-ID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_CellToReport_Item_specs_1 = { - sizeof(struct CellToReport_Item), - offsetof(struct CellToReport_Item, _asn_ctx), - asn_MAP_CellToReport_Item_tag2el_1, - 2, /* Count of tags in the map */ - asn_MAP_CellToReport_Item_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 2, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_CellToReport_Item = { - "CellToReport-Item", - "CellToReport-Item", - &asn_OP_SEQUENCE, - asn_DEF_CellToReport_Item_tags_1, - sizeof(asn_DEF_CellToReport_Item_tags_1) - /sizeof(asn_DEF_CellToReport_Item_tags_1[0]), /* 1 */ - asn_DEF_CellToReport_Item_tags_1, /* Same as above */ - sizeof(asn_DEF_CellToReport_Item_tags_1) - /sizeof(asn_DEF_CellToReport_Item_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_CellToReport_Item_1, - 2, /* Elements count */ - &asn_SPC_CellToReport_Item_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/CellToReport-Item.h b/e2sim/previous/ASN1c/CellToReport-Item.h deleted file mode 100644 index 22ec640..0000000 --- a/e2sim/previous/ASN1c/CellToReport-Item.h +++ /dev/null @@ -1,64 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _CellToReport_Item_H_ -#define _CellToReport_Item_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ECGI.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* CellToReport-Item */ -typedef struct CellToReport_Item { - ECGI_t cell_ID; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} CellToReport_Item_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_CellToReport_Item; - -#ifdef __cplusplus -} -#endif - -#endif /* _CellToReport_Item_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/CellToReport-List.c b/e2sim/previous/ASN1c/CellToReport-List.c deleted file mode 100644 index 8712c4c..0000000 --- a/e2sim/previous/ASN1c/CellToReport-List.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "CellToReport-List.h" - -#include "ProtocolIE-Single-Container.h" -static asn_per_constraints_t asn_PER_type_CellToReport_List_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 8, 8, 1, 256 } /* (SIZE(1..256)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_CellToReport_List_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ProtocolIE_Single_Container_122P10, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_CellToReport_List_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_CellToReport_List_specs_1 = { - sizeof(struct CellToReport_List), - offsetof(struct CellToReport_List, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_CellToReport_List = { - "CellToReport-List", - "CellToReport-List", - &asn_OP_SEQUENCE_OF, - asn_DEF_CellToReport_List_tags_1, - sizeof(asn_DEF_CellToReport_List_tags_1) - /sizeof(asn_DEF_CellToReport_List_tags_1[0]), /* 1 */ - asn_DEF_CellToReport_List_tags_1, /* Same as above */ - sizeof(asn_DEF_CellToReport_List_tags_1) - /sizeof(asn_DEF_CellToReport_List_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_CellToReport_List_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_CellToReport_List_1, - 1, /* Single element */ - &asn_SPC_CellToReport_List_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/CellToReport-List.h b/e2sim/previous/ASN1c/CellToReport-List.h deleted file mode 100644 index 84f97b5..0000000 --- a/e2sim/previous/ASN1c/CellToReport-List.h +++ /dev/null @@ -1,59 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _CellToReport_List_H_ -#define _CellToReport_List_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolIE_Single_Container; - -/* CellToReport-List */ -typedef struct CellToReport_List { - A_SEQUENCE_OF(struct ProtocolIE_Single_Container) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} CellToReport_List_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_CellToReport_List; - -#ifdef __cplusplus -} -#endif - -#endif /* _CellToReport_List_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/CellType.c b/e2sim/previous/ASN1c/CellType.c deleted file mode 100644 index 59a7ae9..0000000 --- a/e2sim/previous/ASN1c/CellType.c +++ /dev/null @@ -1,81 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "CellType.h" - -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_CellType_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct CellType, cell_Size), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Cell_Size, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "cell-Size" - }, - { ATF_POINTER, 1, offsetof(struct CellType, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P115, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_CellType_oms_1[] = { 1 }; -static const ber_tlv_tag_t asn_DEF_CellType_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_CellType_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* cell-Size */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_CellType_specs_1 = { - sizeof(struct CellType), - offsetof(struct CellType, _asn_ctx), - asn_MAP_CellType_tag2el_1, - 2, /* Count of tags in the map */ - asn_MAP_CellType_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 2, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_CellType = { - "CellType", - "CellType", - &asn_OP_SEQUENCE, - asn_DEF_CellType_tags_1, - sizeof(asn_DEF_CellType_tags_1) - /sizeof(asn_DEF_CellType_tags_1[0]), /* 1 */ - asn_DEF_CellType_tags_1, /* Same as above */ - sizeof(asn_DEF_CellType_tags_1) - /sizeof(asn_DEF_CellType_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_CellType_1, - 2, /* Elements count */ - &asn_SPC_CellType_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/CellType.h b/e2sim/previous/ASN1c/CellType.h deleted file mode 100644 index 20523ba..0000000 --- a/e2sim/previous/ASN1c/CellType.h +++ /dev/null @@ -1,66 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _CellType_H_ -#define _CellType_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "Cell-Size.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* CellType */ -typedef struct CellType { - Cell_Size_t cell_Size; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} CellType_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_CellType; -extern asn_SEQUENCE_specifics_t asn_SPC_CellType_specs_1; -extern asn_TYPE_member_t asn_MBR_CellType_1[2]; - -#ifdef __cplusplus -} -#endif - -#endif /* _CellType_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/CoMPHypothesisSet.c b/e2sim/previous/ASN1c/CoMPHypothesisSet.c deleted file mode 100644 index f4b429a..0000000 --- a/e2sim/previous/ASN1c/CoMPHypothesisSet.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "CoMPHypothesisSet.h" - -#include "CoMPHypothesisSetItem.h" -asn_per_constraints_t asn_PER_type_CoMPHypothesisSet_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_CoMPHypothesisSet_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CoMPHypothesisSetItem, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_CoMPHypothesisSet_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_CoMPHypothesisSet_specs_1 = { - sizeof(struct CoMPHypothesisSet), - offsetof(struct CoMPHypothesisSet, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_CoMPHypothesisSet = { - "CoMPHypothesisSet", - "CoMPHypothesisSet", - &asn_OP_SEQUENCE_OF, - asn_DEF_CoMPHypothesisSet_tags_1, - sizeof(asn_DEF_CoMPHypothesisSet_tags_1) - /sizeof(asn_DEF_CoMPHypothesisSet_tags_1[0]), /* 1 */ - asn_DEF_CoMPHypothesisSet_tags_1, /* Same as above */ - sizeof(asn_DEF_CoMPHypothesisSet_tags_1) - /sizeof(asn_DEF_CoMPHypothesisSet_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_CoMPHypothesisSet_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_CoMPHypothesisSet_1, - 1, /* Single element */ - &asn_SPC_CoMPHypothesisSet_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/CoMPHypothesisSet.h b/e2sim/previous/ASN1c/CoMPHypothesisSet.h deleted file mode 100644 index 71556dc..0000000 --- a/e2sim/previous/ASN1c/CoMPHypothesisSet.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _CoMPHypothesisSet_H_ -#define _CoMPHypothesisSet_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct CoMPHypothesisSetItem; - -/* CoMPHypothesisSet */ -typedef struct CoMPHypothesisSet { - A_SEQUENCE_OF(struct CoMPHypothesisSetItem) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} CoMPHypothesisSet_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_CoMPHypothesisSet; -extern asn_SET_OF_specifics_t asn_SPC_CoMPHypothesisSet_specs_1; -extern asn_TYPE_member_t asn_MBR_CoMPHypothesisSet_1[1]; -extern asn_per_constraints_t asn_PER_type_CoMPHypothesisSet_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _CoMPHypothesisSet_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/CoMPHypothesisSetItem.c b/e2sim/previous/ASN1c/CoMPHypothesisSetItem.c deleted file mode 100644 index 931d69a..0000000 --- a/e2sim/previous/ASN1c/CoMPHypothesisSetItem.c +++ /dev/null @@ -1,127 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "CoMPHypothesisSetItem.h" - -#include "ProtocolExtensionContainer.h" -static int -memb_coMPHypothesis_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if(st->size > 0) { - /* Size in bits */ - size = 8 * st->size - (st->bits_unused & 0x07); - } else { - size = 0; - } - - if((size >= 6 && size <= 4400)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_per_constraints_t asn_PER_memb_coMPHypothesis_constr_3 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED | APC_EXTENSIBLE, 13, 13, 6, 4400 } /* (SIZE(6..4400,...)) */, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_CoMPHypothesisSetItem_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct CoMPHypothesisSetItem, coMPCellID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ECGI, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "coMPCellID" - }, - { ATF_NOFLAGS, 0, offsetof(struct CoMPHypothesisSetItem, coMPHypothesis), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_BIT_STRING, - 0, - { 0, &asn_PER_memb_coMPHypothesis_constr_3, memb_coMPHypothesis_constraint_1 }, - 0, 0, /* No default value */ - "coMPHypothesis" - }, - { ATF_POINTER, 1, offsetof(struct CoMPHypothesisSetItem, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P117, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_CoMPHypothesisSetItem_oms_1[] = { 2 }; -static const ber_tlv_tag_t asn_DEF_CoMPHypothesisSetItem_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_CoMPHypothesisSetItem_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* coMPCellID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* coMPHypothesis */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_CoMPHypothesisSetItem_specs_1 = { - sizeof(struct CoMPHypothesisSetItem), - offsetof(struct CoMPHypothesisSetItem, _asn_ctx), - asn_MAP_CoMPHypothesisSetItem_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_CoMPHypothesisSetItem_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_CoMPHypothesisSetItem = { - "CoMPHypothesisSetItem", - "CoMPHypothesisSetItem", - &asn_OP_SEQUENCE, - asn_DEF_CoMPHypothesisSetItem_tags_1, - sizeof(asn_DEF_CoMPHypothesisSetItem_tags_1) - /sizeof(asn_DEF_CoMPHypothesisSetItem_tags_1[0]), /* 1 */ - asn_DEF_CoMPHypothesisSetItem_tags_1, /* Same as above */ - sizeof(asn_DEF_CoMPHypothesisSetItem_tags_1) - /sizeof(asn_DEF_CoMPHypothesisSetItem_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_CoMPHypothesisSetItem_1, - 3, /* Elements count */ - &asn_SPC_CoMPHypothesisSetItem_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/CoMPHypothesisSetItem.h b/e2sim/previous/ASN1c/CoMPHypothesisSetItem.h deleted file mode 100644 index 6768c8a..0000000 --- a/e2sim/previous/ASN1c/CoMPHypothesisSetItem.h +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _CoMPHypothesisSetItem_H_ -#define _CoMPHypothesisSetItem_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ECGI.h" -#include "BIT_STRING.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* CoMPHypothesisSetItem */ -typedef struct CoMPHypothesisSetItem { - ECGI_t coMPCellID; - BIT_STRING_t coMPHypothesis; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} CoMPHypothesisSetItem_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_CoMPHypothesisSetItem; -extern asn_SEQUENCE_specifics_t asn_SPC_CoMPHypothesisSetItem_specs_1; -extern asn_TYPE_member_t asn_MBR_CoMPHypothesisSetItem_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _CoMPHypothesisSetItem_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/CoMPInformation.c b/e2sim/previous/ASN1c/CoMPInformation.c deleted file mode 100644 index 00cdb93..0000000 --- a/e2sim/previous/ASN1c/CoMPInformation.c +++ /dev/null @@ -1,91 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "CoMPInformation.h" - -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_CoMPInformation_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct CoMPInformation, coMPInformationItem), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_CoMPInformationItem, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "coMPInformationItem" - }, - { ATF_NOFLAGS, 0, offsetof(struct CoMPInformation, coMPInformationStartTime), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_CoMPInformationStartTime, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "coMPInformationStartTime" - }, - { ATF_POINTER, 1, offsetof(struct CoMPInformation, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P118, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_CoMPInformation_oms_1[] = { 2 }; -static const ber_tlv_tag_t asn_DEF_CoMPInformation_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_CoMPInformation_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* coMPInformationItem */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* coMPInformationStartTime */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_CoMPInformation_specs_1 = { - sizeof(struct CoMPInformation), - offsetof(struct CoMPInformation, _asn_ctx), - asn_MAP_CoMPInformation_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_CoMPInformation_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_CoMPInformation = { - "CoMPInformation", - "CoMPInformation", - &asn_OP_SEQUENCE, - asn_DEF_CoMPInformation_tags_1, - sizeof(asn_DEF_CoMPInformation_tags_1) - /sizeof(asn_DEF_CoMPInformation_tags_1[0]), /* 1 */ - asn_DEF_CoMPInformation_tags_1, /* Same as above */ - sizeof(asn_DEF_CoMPInformation_tags_1) - /sizeof(asn_DEF_CoMPInformation_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_CoMPInformation_1, - 3, /* Elements count */ - &asn_SPC_CoMPInformation_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/CoMPInformation.h b/e2sim/previous/ASN1c/CoMPInformation.h deleted file mode 100644 index 5f952cd..0000000 --- a/e2sim/previous/ASN1c/CoMPInformation.h +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _CoMPInformation_H_ -#define _CoMPInformation_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "CoMPInformationItem.h" -#include "CoMPInformationStartTime.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* CoMPInformation */ -typedef struct CoMPInformation { - CoMPInformationItem_t coMPInformationItem; - CoMPInformationStartTime_t coMPInformationStartTime; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} CoMPInformation_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_CoMPInformation; -extern asn_SEQUENCE_specifics_t asn_SPC_CoMPInformation_specs_1; -extern asn_TYPE_member_t asn_MBR_CoMPInformation_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _CoMPInformation_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/CoMPInformationItem.c b/e2sim/previous/ASN1c/CoMPInformationItem.c deleted file mode 100644 index 3575371..0000000 --- a/e2sim/previous/ASN1c/CoMPInformationItem.c +++ /dev/null @@ -1,132 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "CoMPInformationItem.h" - -#include "ProtocolExtensionContainer.h" -asn_per_constraints_t asn_PER_type_CoMPInformationItem_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 8, 8, 1, 256 } /* (SIZE(1..256)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_Member_2[] = { - { ATF_NOFLAGS, 0, offsetof(struct CoMPInformationItem__Member, coMPHypothesisSet), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_CoMPHypothesisSet, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "coMPHypothesisSet" - }, - { ATF_NOFLAGS, 0, offsetof(struct CoMPInformationItem__Member, benefitMetric), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_BenefitMetric, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "benefitMetric" - }, - { ATF_POINTER, 1, offsetof(struct CoMPInformationItem__Member, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P119, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_Member_oms_2[] = { 2 }; -static const ber_tlv_tag_t asn_DEF_Member_tags_2[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_Member_tag2el_2[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* coMPHypothesisSet */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* benefitMetric */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_Member_specs_2 = { - sizeof(struct CoMPInformationItem__Member), - offsetof(struct CoMPInformationItem__Member, _asn_ctx), - asn_MAP_Member_tag2el_2, - 3, /* Count of tags in the map */ - asn_MAP_Member_oms_2, /* Optional members */ - 1, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_Member_2 = { - "SEQUENCE", - "SEQUENCE", - &asn_OP_SEQUENCE, - asn_DEF_Member_tags_2, - sizeof(asn_DEF_Member_tags_2) - /sizeof(asn_DEF_Member_tags_2[0]), /* 1 */ - asn_DEF_Member_tags_2, /* Same as above */ - sizeof(asn_DEF_Member_tags_2) - /sizeof(asn_DEF_Member_tags_2[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_Member_2, - 3, /* Elements count */ - &asn_SPC_Member_specs_2 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_CoMPInformationItem_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_Member_2, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_CoMPInformationItem_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_CoMPInformationItem_specs_1 = { - sizeof(struct CoMPInformationItem), - offsetof(struct CoMPInformationItem, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_CoMPInformationItem = { - "CoMPInformationItem", - "CoMPInformationItem", - &asn_OP_SEQUENCE_OF, - asn_DEF_CoMPInformationItem_tags_1, - sizeof(asn_DEF_CoMPInformationItem_tags_1) - /sizeof(asn_DEF_CoMPInformationItem_tags_1[0]), /* 1 */ - asn_DEF_CoMPInformationItem_tags_1, /* Same as above */ - sizeof(asn_DEF_CoMPInformationItem_tags_1) - /sizeof(asn_DEF_CoMPInformationItem_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_CoMPInformationItem_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_CoMPInformationItem_1, - 1, /* Single element */ - &asn_SPC_CoMPInformationItem_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/CoMPInformationItem.h b/e2sim/previous/ASN1c/CoMPInformationItem.h deleted file mode 100644 index 0f9c976..0000000 --- a/e2sim/previous/ASN1c/CoMPInformationItem.h +++ /dev/null @@ -1,79 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _CoMPInformationItem_H_ -#define _CoMPInformationItem_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "CoMPHypothesisSet.h" -#include "BenefitMetric.h" -#include "constr_SEQUENCE.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* Forward definitions */ -typedef struct CoMPInformationItem__Member { - CoMPHypothesisSet_t coMPHypothesisSet; - BenefitMetric_t benefitMetric; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} CoMPInformationItem__Member; - -/* CoMPInformationItem */ -typedef struct CoMPInformationItem { - A_SEQUENCE_OF(CoMPInformationItem__Member) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} CoMPInformationItem_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_CoMPInformationItem; -extern asn_SET_OF_specifics_t asn_SPC_CoMPInformationItem_specs_1; -extern asn_TYPE_member_t asn_MBR_CoMPInformationItem_1[1]; -extern asn_per_constraints_t asn_PER_type_CoMPInformationItem_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _CoMPInformationItem_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/CoMPInformationStartTime.c b/e2sim/previous/ASN1c/CoMPInformationStartTime.c deleted file mode 100644 index fff2521..0000000 --- a/e2sim/previous/ASN1c/CoMPInformationStartTime.c +++ /dev/null @@ -1,192 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "CoMPInformationStartTime.h" - -#include "ProtocolExtensionContainer.h" -static int -memb_startSFN_constraint_2(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 1023)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_startSubframeNumber_constraint_2(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 9)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_per_constraints_t asn_PER_memb_startSFN_constr_3 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 10, 10, 0, 1023 } /* (0..1023,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_startSubframeNumber_constr_4 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 4, 4, 0, 9 } /* (0..9,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_CoMPInformationStartTime_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 1, 1, 0, 1 } /* (SIZE(0..1)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_Member_2[] = { - { ATF_NOFLAGS, 0, offsetof(struct CoMPInformationStartTime__Member, startSFN), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { 0, &asn_PER_memb_startSFN_constr_3, memb_startSFN_constraint_2 }, - 0, 0, /* No default value */ - "startSFN" - }, - { ATF_NOFLAGS, 0, offsetof(struct CoMPInformationStartTime__Member, startSubframeNumber), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { 0, &asn_PER_memb_startSubframeNumber_constr_4, memb_startSubframeNumber_constraint_2 }, - 0, 0, /* No default value */ - "startSubframeNumber" - }, - { ATF_POINTER, 1, offsetof(struct CoMPInformationStartTime__Member, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P120, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_Member_oms_2[] = { 2 }; -static const ber_tlv_tag_t asn_DEF_Member_tags_2[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_Member_tag2el_2[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* startSFN */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* startSubframeNumber */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_Member_specs_2 = { - sizeof(struct CoMPInformationStartTime__Member), - offsetof(struct CoMPInformationStartTime__Member, _asn_ctx), - asn_MAP_Member_tag2el_2, - 3, /* Count of tags in the map */ - asn_MAP_Member_oms_2, /* Optional members */ - 1, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_Member_2 = { - "SEQUENCE", - "SEQUENCE", - &asn_OP_SEQUENCE, - asn_DEF_Member_tags_2, - sizeof(asn_DEF_Member_tags_2) - /sizeof(asn_DEF_Member_tags_2[0]), /* 1 */ - asn_DEF_Member_tags_2, /* Same as above */ - sizeof(asn_DEF_Member_tags_2) - /sizeof(asn_DEF_Member_tags_2[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_Member_2, - 3, /* Elements count */ - &asn_SPC_Member_specs_2 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_CoMPInformationStartTime_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_Member_2, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_CoMPInformationStartTime_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_CoMPInformationStartTime_specs_1 = { - sizeof(struct CoMPInformationStartTime), - offsetof(struct CoMPInformationStartTime, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_CoMPInformationStartTime = { - "CoMPInformationStartTime", - "CoMPInformationStartTime", - &asn_OP_SEQUENCE_OF, - asn_DEF_CoMPInformationStartTime_tags_1, - sizeof(asn_DEF_CoMPInformationStartTime_tags_1) - /sizeof(asn_DEF_CoMPInformationStartTime_tags_1[0]), /* 1 */ - asn_DEF_CoMPInformationStartTime_tags_1, /* Same as above */ - sizeof(asn_DEF_CoMPInformationStartTime_tags_1) - /sizeof(asn_DEF_CoMPInformationStartTime_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_CoMPInformationStartTime_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_CoMPInformationStartTime_1, - 1, /* Single element */ - &asn_SPC_CoMPInformationStartTime_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/CoMPInformationStartTime.h b/e2sim/previous/ASN1c/CoMPInformationStartTime.h deleted file mode 100644 index c7c660b..0000000 --- a/e2sim/previous/ASN1c/CoMPInformationStartTime.h +++ /dev/null @@ -1,78 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _CoMPInformationStartTime_H_ -#define _CoMPInformationStartTime_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "NativeInteger.h" -#include "constr_SEQUENCE.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* Forward definitions */ -typedef struct CoMPInformationStartTime__Member { - long startSFN; - long startSubframeNumber; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} CoMPInformationStartTime__Member; - -/* CoMPInformationStartTime */ -typedef struct CoMPInformationStartTime { - A_SEQUENCE_OF(CoMPInformationStartTime__Member) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} CoMPInformationStartTime_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_CoMPInformationStartTime; -extern asn_SET_OF_specifics_t asn_SPC_CoMPInformationStartTime_specs_1; -extern asn_TYPE_member_t asn_MBR_CoMPInformationStartTime_1[1]; -extern asn_per_constraints_t asn_PER_type_CoMPInformationStartTime_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _CoMPInformationStartTime_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/CompleteFailureCauseInformation-Item.c b/e2sim/previous/ASN1c/CompleteFailureCauseInformation-Item.c deleted file mode 100644 index a2239e1..0000000 --- a/e2sim/previous/ASN1c/CompleteFailureCauseInformation-Item.c +++ /dev/null @@ -1,91 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "CompleteFailureCauseInformation-Item.h" - -#include "ProtocolExtensionContainer.h" -static asn_TYPE_member_t asn_MBR_CompleteFailureCauseInformation_Item_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct CompleteFailureCauseInformation_Item, cell_ID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ECGI, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "cell-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct CompleteFailureCauseInformation_Item, measurementFailureCause_List), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_MeasurementFailureCause_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "measurementFailureCause-List" - }, - { ATF_POINTER, 1, offsetof(struct CompleteFailureCauseInformation_Item, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P12, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_CompleteFailureCauseInformation_Item_oms_1[] = { 2 }; -static const ber_tlv_tag_t asn_DEF_CompleteFailureCauseInformation_Item_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_CompleteFailureCauseInformation_Item_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* cell-ID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* measurementFailureCause-List */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_CompleteFailureCauseInformation_Item_specs_1 = { - sizeof(struct CompleteFailureCauseInformation_Item), - offsetof(struct CompleteFailureCauseInformation_Item, _asn_ctx), - asn_MAP_CompleteFailureCauseInformation_Item_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_CompleteFailureCauseInformation_Item_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_CompleteFailureCauseInformation_Item = { - "CompleteFailureCauseInformation-Item", - "CompleteFailureCauseInformation-Item", - &asn_OP_SEQUENCE, - asn_DEF_CompleteFailureCauseInformation_Item_tags_1, - sizeof(asn_DEF_CompleteFailureCauseInformation_Item_tags_1) - /sizeof(asn_DEF_CompleteFailureCauseInformation_Item_tags_1[0]), /* 1 */ - asn_DEF_CompleteFailureCauseInformation_Item_tags_1, /* Same as above */ - sizeof(asn_DEF_CompleteFailureCauseInformation_Item_tags_1) - /sizeof(asn_DEF_CompleteFailureCauseInformation_Item_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_CompleteFailureCauseInformation_Item_1, - 3, /* Elements count */ - &asn_SPC_CompleteFailureCauseInformation_Item_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/CompleteFailureCauseInformation-Item.h b/e2sim/previous/ASN1c/CompleteFailureCauseInformation-Item.h deleted file mode 100644 index 6112f5f..0000000 --- a/e2sim/previous/ASN1c/CompleteFailureCauseInformation-Item.h +++ /dev/null @@ -1,66 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _CompleteFailureCauseInformation_Item_H_ -#define _CompleteFailureCauseInformation_Item_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ECGI.h" -#include "MeasurementFailureCause-List.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* CompleteFailureCauseInformation-Item */ -typedef struct CompleteFailureCauseInformation_Item { - ECGI_t cell_ID; - MeasurementFailureCause_List_t measurementFailureCause_List; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} CompleteFailureCauseInformation_Item_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_CompleteFailureCauseInformation_Item; - -#ifdef __cplusplus -} -#endif - -#endif /* _CompleteFailureCauseInformation_Item_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/CompleteFailureCauseInformation-List.c b/e2sim/previous/ASN1c/CompleteFailureCauseInformation-List.c deleted file mode 100644 index 9238870..0000000 --- a/e2sim/previous/ASN1c/CompleteFailureCauseInformation-List.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "CompleteFailureCauseInformation-List.h" - -#include "ProtocolIE-Single-Container.h" -static asn_per_constraints_t asn_PER_type_CompleteFailureCauseInformation_List_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 8, 8, 1, 256 } /* (SIZE(1..256)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_CompleteFailureCauseInformation_List_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ProtocolIE_Single_Container_122P13, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_CompleteFailureCauseInformation_List_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_CompleteFailureCauseInformation_List_specs_1 = { - sizeof(struct CompleteFailureCauseInformation_List), - offsetof(struct CompleteFailureCauseInformation_List, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_CompleteFailureCauseInformation_List = { - "CompleteFailureCauseInformation-List", - "CompleteFailureCauseInformation-List", - &asn_OP_SEQUENCE_OF, - asn_DEF_CompleteFailureCauseInformation_List_tags_1, - sizeof(asn_DEF_CompleteFailureCauseInformation_List_tags_1) - /sizeof(asn_DEF_CompleteFailureCauseInformation_List_tags_1[0]), /* 1 */ - asn_DEF_CompleteFailureCauseInformation_List_tags_1, /* Same as above */ - sizeof(asn_DEF_CompleteFailureCauseInformation_List_tags_1) - /sizeof(asn_DEF_CompleteFailureCauseInformation_List_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_CompleteFailureCauseInformation_List_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_CompleteFailureCauseInformation_List_1, - 1, /* Single element */ - &asn_SPC_CompleteFailureCauseInformation_List_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/CompleteFailureCauseInformation-List.h b/e2sim/previous/ASN1c/CompleteFailureCauseInformation-List.h deleted file mode 100644 index 73eadff..0000000 --- a/e2sim/previous/ASN1c/CompleteFailureCauseInformation-List.h +++ /dev/null @@ -1,59 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _CompleteFailureCauseInformation_List_H_ -#define _CompleteFailureCauseInformation_List_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolIE_Single_Container; - -/* CompleteFailureCauseInformation-List */ -typedef struct CompleteFailureCauseInformation_List { - A_SEQUENCE_OF(struct ProtocolIE_Single_Container) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} CompleteFailureCauseInformation_List_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_CompleteFailureCauseInformation_List; - -#ifdef __cplusplus -} -#endif - -#endif /* _CompleteFailureCauseInformation_List_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/CompositeAvailableCapacity.c b/e2sim/previous/ASN1c/CompositeAvailableCapacity.c deleted file mode 100644 index b8cb844..0000000 --- a/e2sim/previous/ASN1c/CompositeAvailableCapacity.c +++ /dev/null @@ -1,91 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "CompositeAvailableCapacity.h" - -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_CompositeAvailableCapacity_1[] = { - { ATF_POINTER, 1, offsetof(struct CompositeAvailableCapacity, cellCapacityClassValue), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_CellCapacityClassValue, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "cellCapacityClassValue" - }, - { ATF_NOFLAGS, 0, offsetof(struct CompositeAvailableCapacity, capacityValue), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_CapacityValue, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "capacityValue" - }, - { ATF_POINTER, 1, offsetof(struct CompositeAvailableCapacity, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P121, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_CompositeAvailableCapacity_oms_1[] = { 0, 2 }; -static const ber_tlv_tag_t asn_DEF_CompositeAvailableCapacity_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_CompositeAvailableCapacity_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* cellCapacityClassValue */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* capacityValue */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_CompositeAvailableCapacity_specs_1 = { - sizeof(struct CompositeAvailableCapacity), - offsetof(struct CompositeAvailableCapacity, _asn_ctx), - asn_MAP_CompositeAvailableCapacity_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_CompositeAvailableCapacity_oms_1, /* Optional members */ - 2, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_CompositeAvailableCapacity = { - "CompositeAvailableCapacity", - "CompositeAvailableCapacity", - &asn_OP_SEQUENCE, - asn_DEF_CompositeAvailableCapacity_tags_1, - sizeof(asn_DEF_CompositeAvailableCapacity_tags_1) - /sizeof(asn_DEF_CompositeAvailableCapacity_tags_1[0]), /* 1 */ - asn_DEF_CompositeAvailableCapacity_tags_1, /* Same as above */ - sizeof(asn_DEF_CompositeAvailableCapacity_tags_1) - /sizeof(asn_DEF_CompositeAvailableCapacity_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_CompositeAvailableCapacity_1, - 3, /* Elements count */ - &asn_SPC_CompositeAvailableCapacity_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/CompositeAvailableCapacity.h b/e2sim/previous/ASN1c/CompositeAvailableCapacity.h deleted file mode 100644 index c8dc3e0..0000000 --- a/e2sim/previous/ASN1c/CompositeAvailableCapacity.h +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _CompositeAvailableCapacity_H_ -#define _CompositeAvailableCapacity_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "CellCapacityClassValue.h" -#include "CapacityValue.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* CompositeAvailableCapacity */ -typedef struct CompositeAvailableCapacity { - CellCapacityClassValue_t *cellCapacityClassValue; /* OPTIONAL */ - CapacityValue_t capacityValue; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} CompositeAvailableCapacity_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_CompositeAvailableCapacity; -extern asn_SEQUENCE_specifics_t asn_SPC_CompositeAvailableCapacity_specs_1; -extern asn_TYPE_member_t asn_MBR_CompositeAvailableCapacity_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _CompositeAvailableCapacity_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/CompositeAvailableCapacityGroup.c b/e2sim/previous/ASN1c/CompositeAvailableCapacityGroup.c deleted file mode 100644 index 8699580..0000000 --- a/e2sim/previous/ASN1c/CompositeAvailableCapacityGroup.c +++ /dev/null @@ -1,91 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "CompositeAvailableCapacityGroup.h" - -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_CompositeAvailableCapacityGroup_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct CompositeAvailableCapacityGroup, dL_CompositeAvailableCapacity), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_CompositeAvailableCapacity, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "dL-CompositeAvailableCapacity" - }, - { ATF_NOFLAGS, 0, offsetof(struct CompositeAvailableCapacityGroup, uL_CompositeAvailableCapacity), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_CompositeAvailableCapacity, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "uL-CompositeAvailableCapacity" - }, - { ATF_POINTER, 1, offsetof(struct CompositeAvailableCapacityGroup, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P122, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_CompositeAvailableCapacityGroup_oms_1[] = { 2 }; -static const ber_tlv_tag_t asn_DEF_CompositeAvailableCapacityGroup_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_CompositeAvailableCapacityGroup_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* dL-CompositeAvailableCapacity */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* uL-CompositeAvailableCapacity */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_CompositeAvailableCapacityGroup_specs_1 = { - sizeof(struct CompositeAvailableCapacityGroup), - offsetof(struct CompositeAvailableCapacityGroup, _asn_ctx), - asn_MAP_CompositeAvailableCapacityGroup_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_CompositeAvailableCapacityGroup_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_CompositeAvailableCapacityGroup = { - "CompositeAvailableCapacityGroup", - "CompositeAvailableCapacityGroup", - &asn_OP_SEQUENCE, - asn_DEF_CompositeAvailableCapacityGroup_tags_1, - sizeof(asn_DEF_CompositeAvailableCapacityGroup_tags_1) - /sizeof(asn_DEF_CompositeAvailableCapacityGroup_tags_1[0]), /* 1 */ - asn_DEF_CompositeAvailableCapacityGroup_tags_1, /* Same as above */ - sizeof(asn_DEF_CompositeAvailableCapacityGroup_tags_1) - /sizeof(asn_DEF_CompositeAvailableCapacityGroup_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_CompositeAvailableCapacityGroup_1, - 3, /* Elements count */ - &asn_SPC_CompositeAvailableCapacityGroup_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/CompositeAvailableCapacityGroup.h b/e2sim/previous/ASN1c/CompositeAvailableCapacityGroup.h deleted file mode 100644 index ce617bc..0000000 --- a/e2sim/previous/ASN1c/CompositeAvailableCapacityGroup.h +++ /dev/null @@ -1,67 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _CompositeAvailableCapacityGroup_H_ -#define _CompositeAvailableCapacityGroup_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "CompositeAvailableCapacity.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* CompositeAvailableCapacityGroup */ -typedef struct CompositeAvailableCapacityGroup { - CompositeAvailableCapacity_t dL_CompositeAvailableCapacity; - CompositeAvailableCapacity_t uL_CompositeAvailableCapacity; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} CompositeAvailableCapacityGroup_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_CompositeAvailableCapacityGroup; -extern asn_SEQUENCE_specifics_t asn_SPC_CompositeAvailableCapacityGroup_specs_1; -extern asn_TYPE_member_t asn_MBR_CompositeAvailableCapacityGroup_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _CompositeAvailableCapacityGroup_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/Correlation-ID.c b/e2sim/previous/ASN1c/Correlation-ID.c deleted file mode 100644 index fedb077..0000000 --- a/e2sim/previous/ASN1c/Correlation-ID.c +++ /dev/null @@ -1,80 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "Correlation-ID.h" - -int -Correlation_ID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - size = st->size; - - if((size == 4)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using OCTET_STRING, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_Correlation_ID_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 0, 0, 4, 4 } /* (SIZE(4..4)) */, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_Correlation_ID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_Correlation_ID = { - "Correlation-ID", - "Correlation-ID", - &asn_OP_OCTET_STRING, - asn_DEF_Correlation_ID_tags_1, - sizeof(asn_DEF_Correlation_ID_tags_1) - /sizeof(asn_DEF_Correlation_ID_tags_1[0]), /* 1 */ - asn_DEF_Correlation_ID_tags_1, /* Same as above */ - sizeof(asn_DEF_Correlation_ID_tags_1) - /sizeof(asn_DEF_Correlation_ID_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_Correlation_ID_constr_1, Correlation_ID_constraint }, - 0, 0, /* No members */ - &asn_SPC_OCTET_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/Correlation-ID.h b/e2sim/previous/ASN1c/Correlation-ID.h deleted file mode 100644 index 1381531..0000000 --- a/e2sim/previous/ASN1c/Correlation-ID.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _Correlation_ID_H_ -#define _Correlation_ID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "OCTET_STRING.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Correlation-ID */ -typedef OCTET_STRING_t Correlation_ID_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_Correlation_ID_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_Correlation_ID; -asn_struct_free_f Correlation_ID_free; -asn_struct_print_f Correlation_ID_print; -asn_constr_check_f Correlation_ID_constraint; -ber_type_decoder_f Correlation_ID_decode_ber; -der_type_encoder_f Correlation_ID_encode_der; -xer_type_decoder_f Correlation_ID_decode_xer; -xer_type_encoder_f Correlation_ID_encode_xer; -per_type_decoder_f Correlation_ID_decode_uper; -per_type_encoder_f Correlation_ID_encode_uper; -per_type_decoder_f Correlation_ID_decode_aper; -per_type_encoder_f Correlation_ID_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _Correlation_ID_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/CoverageModification-Item.c b/e2sim/previous/ASN1c/CoverageModification-Item.c deleted file mode 100644 index a7c1f58..0000000 --- a/e2sim/previous/ASN1c/CoverageModification-Item.c +++ /dev/null @@ -1,131 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "CoverageModification-Item.h" - -#include "CellReplacingInfo.h" -static int -memb_coverageState_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 15)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_per_constraints_t asn_PER_memb_coverageState_constr_3 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 4, 4, 0, 15 } /* (0..15,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_CoverageModification_Item_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct CoverageModification_Item, eCGI), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ECGI, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "eCGI" - }, - { ATF_NOFLAGS, 0, offsetof(struct CoverageModification_Item, coverageState), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { 0, &asn_PER_memb_coverageState_constr_3, memb_coverageState_constraint_1 }, - 0, 0, /* No default value */ - "coverageState" - }, - { ATF_POINTER, 2, offsetof(struct CoverageModification_Item, cellDeploymentStatusIndicator), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_CellDeploymentStatusIndicator, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "cellDeploymentStatusIndicator" - }, - { ATF_POINTER, 1, offsetof(struct CoverageModification_Item, cellReplacingInfo), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_CellReplacingInfo, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "cellReplacingInfo" - }, -}; -static const int asn_MAP_CoverageModification_Item_oms_1[] = { 2, 3 }; -static const ber_tlv_tag_t asn_DEF_CoverageModification_Item_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_CoverageModification_Item_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* eCGI */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* coverageState */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* cellDeploymentStatusIndicator */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* cellReplacingInfo */ -}; -asn_SEQUENCE_specifics_t asn_SPC_CoverageModification_Item_specs_1 = { - sizeof(struct CoverageModification_Item), - offsetof(struct CoverageModification_Item, _asn_ctx), - asn_MAP_CoverageModification_Item_tag2el_1, - 4, /* Count of tags in the map */ - asn_MAP_CoverageModification_Item_oms_1, /* Optional members */ - 2, 0, /* Root/Additions */ - 4, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_CoverageModification_Item = { - "CoverageModification-Item", - "CoverageModification-Item", - &asn_OP_SEQUENCE, - asn_DEF_CoverageModification_Item_tags_1, - sizeof(asn_DEF_CoverageModification_Item_tags_1) - /sizeof(asn_DEF_CoverageModification_Item_tags_1[0]), /* 1 */ - asn_DEF_CoverageModification_Item_tags_1, /* Same as above */ - sizeof(asn_DEF_CoverageModification_Item_tags_1) - /sizeof(asn_DEF_CoverageModification_Item_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_CoverageModification_Item_1, - 4, /* Elements count */ - &asn_SPC_CoverageModification_Item_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/CoverageModification-Item.h b/e2sim/previous/ASN1c/CoverageModification-Item.h deleted file mode 100644 index 4277523..0000000 --- a/e2sim/previous/ASN1c/CoverageModification-Item.h +++ /dev/null @@ -1,70 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _CoverageModification_Item_H_ -#define _CoverageModification_Item_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ECGI.h" -#include "NativeInteger.h" -#include "CellDeploymentStatusIndicator.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct CellReplacingInfo; - -/* CoverageModification-Item */ -typedef struct CoverageModification_Item { - ECGI_t eCGI; - long coverageState; - CellDeploymentStatusIndicator_t *cellDeploymentStatusIndicator; /* OPTIONAL */ - struct CellReplacingInfo *cellReplacingInfo; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} CoverageModification_Item_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_CoverageModification_Item; -extern asn_SEQUENCE_specifics_t asn_SPC_CoverageModification_Item_specs_1; -extern asn_TYPE_member_t asn_MBR_CoverageModification_Item_1[4]; - -#ifdef __cplusplus -} -#endif - -#endif /* _CoverageModification_Item_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/CoverageModificationList.c b/e2sim/previous/ASN1c/CoverageModificationList.c deleted file mode 100644 index 2e976c9..0000000 --- a/e2sim/previous/ASN1c/CoverageModificationList.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "CoverageModificationList.h" - -#include "CoverageModification-Item.h" -asn_per_constraints_t asn_PER_type_CoverageModificationList_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 8, 8, 1, 256 } /* (SIZE(1..256)) */, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_CoverageModificationList_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CoverageModification_Item, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_CoverageModificationList_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_CoverageModificationList_specs_1 = { - sizeof(struct CoverageModificationList), - offsetof(struct CoverageModificationList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_CoverageModificationList = { - "CoverageModificationList", - "CoverageModificationList", - &asn_OP_SEQUENCE_OF, - asn_DEF_CoverageModificationList_tags_1, - sizeof(asn_DEF_CoverageModificationList_tags_1) - /sizeof(asn_DEF_CoverageModificationList_tags_1[0]), /* 1 */ - asn_DEF_CoverageModificationList_tags_1, /* Same as above */ - sizeof(asn_DEF_CoverageModificationList_tags_1) - /sizeof(asn_DEF_CoverageModificationList_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_CoverageModificationList_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_CoverageModificationList_1, - 1, /* Single element */ - &asn_SPC_CoverageModificationList_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/CoverageModificationList.h b/e2sim/previous/ASN1c/CoverageModificationList.h deleted file mode 100644 index 0f35d0d..0000000 --- a/e2sim/previous/ASN1c/CoverageModificationList.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _CoverageModificationList_H_ -#define _CoverageModificationList_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct CoverageModification_Item; - -/* CoverageModificationList */ -typedef struct CoverageModificationList { - A_SEQUENCE_OF(struct CoverageModification_Item) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} CoverageModificationList_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_CoverageModificationList; -extern asn_SET_OF_specifics_t asn_SPC_CoverageModificationList_specs_1; -extern asn_TYPE_member_t asn_MBR_CoverageModificationList_1[1]; -extern asn_per_constraints_t asn_PER_type_CoverageModificationList_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _CoverageModificationList_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/Criticality.c b/e2sim/previous/ASN1c/Criticality.c deleted file mode 100644 index 741ee00..0000000 --- a/e2sim/previous/ASN1c/Criticality.c +++ /dev/null @@ -1,73 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-CommonDataTypes" - * found in "../../asnFiles/X2AP-CommonDataTypes.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "Criticality.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_Criticality_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_Criticality_value2enum_1[] = { - { 0, 6, "reject" }, - { 1, 6, "ignore" }, - { 2, 6, "notify" } -}; -static const unsigned int asn_MAP_Criticality_enum2value_1[] = { - 1, /* ignore(1) */ - 2, /* notify(2) */ - 0 /* reject(0) */ -}; -const asn_INTEGER_specifics_t asn_SPC_Criticality_specs_1 = { - asn_MAP_Criticality_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_Criticality_enum2value_1, /* N => "tag"; sorted by N */ - 3, /* Number of elements in the maps */ - 0, /* Enumeration is not extensible */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_Criticality_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_Criticality = { - "Criticality", - "Criticality", - &asn_OP_NativeEnumerated, - asn_DEF_Criticality_tags_1, - sizeof(asn_DEF_Criticality_tags_1) - /sizeof(asn_DEF_Criticality_tags_1[0]), /* 1 */ - asn_DEF_Criticality_tags_1, /* Same as above */ - sizeof(asn_DEF_Criticality_tags_1) - /sizeof(asn_DEF_Criticality_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_Criticality_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_Criticality_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/Criticality.h b/e2sim/previous/ASN1c/Criticality.h deleted file mode 100644 index 4ab4f6f..0000000 --- a/e2sim/previous/ASN1c/Criticality.h +++ /dev/null @@ -1,70 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-CommonDataTypes" - * found in "../../asnFiles/X2AP-CommonDataTypes.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _Criticality_H_ -#define _Criticality_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum Criticality { - Criticality_reject = 0, - Criticality_ignore = 1, - Criticality_notify = 2 -} e_Criticality; - -/* Criticality */ -typedef long Criticality_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_Criticality_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_Criticality; -extern const asn_INTEGER_specifics_t asn_SPC_Criticality_specs_1; -asn_struct_free_f Criticality_free; -asn_struct_print_f Criticality_print; -asn_constr_check_f Criticality_constraint; -ber_type_decoder_f Criticality_decode_ber; -der_type_encoder_f Criticality_encode_der; -xer_type_decoder_f Criticality_decode_xer; -xer_type_encoder_f Criticality_encode_xer; -per_type_decoder_f Criticality_decode_uper; -per_type_encoder_f Criticality_encode_uper; -per_type_decoder_f Criticality_decode_aper; -per_type_encoder_f Criticality_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _Criticality_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/CriticalityDiagnostics-IE-List.c b/e2sim/previous/ASN1c/CriticalityDiagnostics-IE-List.c deleted file mode 100644 index 7cb49f6..0000000 --- a/e2sim/previous/ASN1c/CriticalityDiagnostics-IE-List.c +++ /dev/null @@ -1,142 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "CriticalityDiagnostics-IE-List.h" - -#include "ProtocolExtensionContainer.h" -asn_per_constraints_t asn_PER_type_CriticalityDiagnostics_IE_List_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 8, 8, 1, 256 } /* (SIZE(1..256)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_Member_2[] = { - { ATF_NOFLAGS, 0, offsetof(struct CriticalityDiagnostics_IE_List__Member, iECriticality), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iECriticality" - }, - { ATF_NOFLAGS, 0, offsetof(struct CriticalityDiagnostics_IE_List__Member, iE_ID), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct CriticalityDiagnostics_IE_List__Member, typeOfError), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_TypeOfError, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "typeOfError" - }, - { ATF_POINTER, 1, offsetof(struct CriticalityDiagnostics_IE_List__Member, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P127, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_Member_oms_2[] = { 3 }; -static const ber_tlv_tag_t asn_DEF_Member_tags_2[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_Member_tag2el_2[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* iECriticality */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* iE-ID */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* typeOfError */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_Member_specs_2 = { - sizeof(struct CriticalityDiagnostics_IE_List__Member), - offsetof(struct CriticalityDiagnostics_IE_List__Member, _asn_ctx), - asn_MAP_Member_tag2el_2, - 4, /* Count of tags in the map */ - asn_MAP_Member_oms_2, /* Optional members */ - 1, 0, /* Root/Additions */ - 4, /* First extension addition */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_Member_2 = { - "SEQUENCE", - "SEQUENCE", - &asn_OP_SEQUENCE, - asn_DEF_Member_tags_2, - sizeof(asn_DEF_Member_tags_2) - /sizeof(asn_DEF_Member_tags_2[0]), /* 1 */ - asn_DEF_Member_tags_2, /* Same as above */ - sizeof(asn_DEF_Member_tags_2) - /sizeof(asn_DEF_Member_tags_2[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_Member_2, - 4, /* Elements count */ - &asn_SPC_Member_specs_2 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_CriticalityDiagnostics_IE_List_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_Member_2, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_CriticalityDiagnostics_IE_List_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_CriticalityDiagnostics_IE_List_specs_1 = { - sizeof(struct CriticalityDiagnostics_IE_List), - offsetof(struct CriticalityDiagnostics_IE_List, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_CriticalityDiagnostics_IE_List = { - "CriticalityDiagnostics-IE-List", - "CriticalityDiagnostics-IE-List", - &asn_OP_SEQUENCE_OF, - asn_DEF_CriticalityDiagnostics_IE_List_tags_1, - sizeof(asn_DEF_CriticalityDiagnostics_IE_List_tags_1) - /sizeof(asn_DEF_CriticalityDiagnostics_IE_List_tags_1[0]), /* 1 */ - asn_DEF_CriticalityDiagnostics_IE_List_tags_1, /* Same as above */ - sizeof(asn_DEF_CriticalityDiagnostics_IE_List_tags_1) - /sizeof(asn_DEF_CriticalityDiagnostics_IE_List_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_CriticalityDiagnostics_IE_List_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_CriticalityDiagnostics_IE_List_1, - 1, /* Single element */ - &asn_SPC_CriticalityDiagnostics_IE_List_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/CriticalityDiagnostics-IE-List.h b/e2sim/previous/ASN1c/CriticalityDiagnostics-IE-List.h deleted file mode 100644 index fb94416..0000000 --- a/e2sim/previous/ASN1c/CriticalityDiagnostics-IE-List.h +++ /dev/null @@ -1,81 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _CriticalityDiagnostics_IE_List_H_ -#define _CriticalityDiagnostics_IE_List_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "Criticality.h" -#include "ProtocolIE-ID.h" -#include "TypeOfError.h" -#include "constr_SEQUENCE.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* Forward definitions */ -typedef struct CriticalityDiagnostics_IE_List__Member { - Criticality_t iECriticality; - ProtocolIE_ID_t iE_ID; - TypeOfError_t typeOfError; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} CriticalityDiagnostics_IE_List__Member; - -/* CriticalityDiagnostics-IE-List */ -typedef struct CriticalityDiagnostics_IE_List { - A_SEQUENCE_OF(CriticalityDiagnostics_IE_List__Member) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} CriticalityDiagnostics_IE_List_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_CriticalityDiagnostics_IE_List; -extern asn_SET_OF_specifics_t asn_SPC_CriticalityDiagnostics_IE_List_specs_1; -extern asn_TYPE_member_t asn_MBR_CriticalityDiagnostics_IE_List_1[1]; -extern asn_per_constraints_t asn_PER_type_CriticalityDiagnostics_IE_List_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _CriticalityDiagnostics_IE_List_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/CriticalityDiagnostics.c b/e2sim/previous/ASN1c/CriticalityDiagnostics.c deleted file mode 100644 index c4d015c..0000000 --- a/e2sim/previous/ASN1c/CriticalityDiagnostics.c +++ /dev/null @@ -1,112 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "CriticalityDiagnostics.h" - -#include "CriticalityDiagnostics-IE-List.h" -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_CriticalityDiagnostics_1[] = { - { ATF_POINTER, 5, offsetof(struct CriticalityDiagnostics, procedureCode), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProcedureCode, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "procedureCode" - }, - { ATF_POINTER, 4, offsetof(struct CriticalityDiagnostics, triggeringMessage), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_TriggeringMessage, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "triggeringMessage" - }, - { ATF_POINTER, 3, offsetof(struct CriticalityDiagnostics, procedureCriticality), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "procedureCriticality" - }, - { ATF_POINTER, 2, offsetof(struct CriticalityDiagnostics, iEsCriticalityDiagnostics), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_CriticalityDiagnostics_IE_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iEsCriticalityDiagnostics" - }, - { ATF_POINTER, 1, offsetof(struct CriticalityDiagnostics, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (4 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P126, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_CriticalityDiagnostics_oms_1[] = { 0, 1, 2, 3, 4 }; -static const ber_tlv_tag_t asn_DEF_CriticalityDiagnostics_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_CriticalityDiagnostics_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* procedureCode */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* triggeringMessage */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* procedureCriticality */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* iEsCriticalityDiagnostics */ - { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_CriticalityDiagnostics_specs_1 = { - sizeof(struct CriticalityDiagnostics), - offsetof(struct CriticalityDiagnostics, _asn_ctx), - asn_MAP_CriticalityDiagnostics_tag2el_1, - 5, /* Count of tags in the map */ - asn_MAP_CriticalityDiagnostics_oms_1, /* Optional members */ - 5, 0, /* Root/Additions */ - 5, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_CriticalityDiagnostics = { - "CriticalityDiagnostics", - "CriticalityDiagnostics", - &asn_OP_SEQUENCE, - asn_DEF_CriticalityDiagnostics_tags_1, - sizeof(asn_DEF_CriticalityDiagnostics_tags_1) - /sizeof(asn_DEF_CriticalityDiagnostics_tags_1[0]), /* 1 */ - asn_DEF_CriticalityDiagnostics_tags_1, /* Same as above */ - sizeof(asn_DEF_CriticalityDiagnostics_tags_1) - /sizeof(asn_DEF_CriticalityDiagnostics_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_CriticalityDiagnostics_1, - 5, /* Elements count */ - &asn_SPC_CriticalityDiagnostics_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/CriticalityDiagnostics.h b/e2sim/previous/ASN1c/CriticalityDiagnostics.h deleted file mode 100644 index 8d8c649..0000000 --- a/e2sim/previous/ASN1c/CriticalityDiagnostics.h +++ /dev/null @@ -1,72 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _CriticalityDiagnostics_H_ -#define _CriticalityDiagnostics_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProcedureCode.h" -#include "TriggeringMessage.h" -#include "Criticality.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct CriticalityDiagnostics_IE_List; -struct ProtocolExtensionContainer; - -/* CriticalityDiagnostics */ -typedef struct CriticalityDiagnostics { - ProcedureCode_t *procedureCode; /* OPTIONAL */ - TriggeringMessage_t *triggeringMessage; /* OPTIONAL */ - Criticality_t *procedureCriticality; /* OPTIONAL */ - struct CriticalityDiagnostics_IE_List *iEsCriticalityDiagnostics; /* OPTIONAL */ - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} CriticalityDiagnostics_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_CriticalityDiagnostics; -extern asn_SEQUENCE_specifics_t asn_SPC_CriticalityDiagnostics_specs_1; -extern asn_TYPE_member_t asn_MBR_CriticalityDiagnostics_1[5]; - -#ifdef __cplusplus -} -#endif - -#endif /* _CriticalityDiagnostics_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/CyclicPrefixDL.c b/e2sim/previous/ASN1c/CyclicPrefixDL.c deleted file mode 100644 index 3dd2488..0000000 --- a/e2sim/previous/ASN1c/CyclicPrefixDL.c +++ /dev/null @@ -1,73 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "CyclicPrefixDL.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_CyclicPrefixDL_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_CyclicPrefixDL_value2enum_1[] = { - { 0, 6, "normal" }, - { 1, 8, "extended" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_CyclicPrefixDL_enum2value_1[] = { - 1, /* extended(1) */ - 0 /* normal(0) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_CyclicPrefixDL_specs_1 = { - asn_MAP_CyclicPrefixDL_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_CyclicPrefixDL_enum2value_1, /* N => "tag"; sorted by N */ - 2, /* Number of elements in the maps */ - 3, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_CyclicPrefixDL_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_CyclicPrefixDL = { - "CyclicPrefixDL", - "CyclicPrefixDL", - &asn_OP_NativeEnumerated, - asn_DEF_CyclicPrefixDL_tags_1, - sizeof(asn_DEF_CyclicPrefixDL_tags_1) - /sizeof(asn_DEF_CyclicPrefixDL_tags_1[0]), /* 1 */ - asn_DEF_CyclicPrefixDL_tags_1, /* Same as above */ - sizeof(asn_DEF_CyclicPrefixDL_tags_1) - /sizeof(asn_DEF_CyclicPrefixDL_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_CyclicPrefixDL_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_CyclicPrefixDL_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/CyclicPrefixDL.h b/e2sim/previous/ASN1c/CyclicPrefixDL.h deleted file mode 100644 index 66b0375..0000000 --- a/e2sim/previous/ASN1c/CyclicPrefixDL.h +++ /dev/null @@ -1,72 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _CyclicPrefixDL_H_ -#define _CyclicPrefixDL_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum CyclicPrefixDL { - CyclicPrefixDL_normal = 0, - CyclicPrefixDL_extended = 1 - /* - * Enumeration is extensible - */ -} e_CyclicPrefixDL; - -/* CyclicPrefixDL */ -typedef long CyclicPrefixDL_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_CyclicPrefixDL_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_CyclicPrefixDL; -extern const asn_INTEGER_specifics_t asn_SPC_CyclicPrefixDL_specs_1; -asn_struct_free_f CyclicPrefixDL_free; -asn_struct_print_f CyclicPrefixDL_print; -asn_constr_check_f CyclicPrefixDL_constraint; -ber_type_decoder_f CyclicPrefixDL_decode_ber; -der_type_encoder_f CyclicPrefixDL_encode_der; -xer_type_decoder_f CyclicPrefixDL_decode_xer; -xer_type_encoder_f CyclicPrefixDL_encode_xer; -per_type_decoder_f CyclicPrefixDL_decode_uper; -per_type_encoder_f CyclicPrefixDL_encode_uper; -per_type_decoder_f CyclicPrefixDL_decode_aper; -per_type_encoder_f CyclicPrefixDL_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _CyclicPrefixDL_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/CyclicPrefixUL.c b/e2sim/previous/ASN1c/CyclicPrefixUL.c deleted file mode 100644 index 59faba1..0000000 --- a/e2sim/previous/ASN1c/CyclicPrefixUL.c +++ /dev/null @@ -1,73 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "CyclicPrefixUL.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_CyclicPrefixUL_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_CyclicPrefixUL_value2enum_1[] = { - { 0, 6, "normal" }, - { 1, 8, "extended" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_CyclicPrefixUL_enum2value_1[] = { - 1, /* extended(1) */ - 0 /* normal(0) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_CyclicPrefixUL_specs_1 = { - asn_MAP_CyclicPrefixUL_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_CyclicPrefixUL_enum2value_1, /* N => "tag"; sorted by N */ - 2, /* Number of elements in the maps */ - 3, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_CyclicPrefixUL_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_CyclicPrefixUL = { - "CyclicPrefixUL", - "CyclicPrefixUL", - &asn_OP_NativeEnumerated, - asn_DEF_CyclicPrefixUL_tags_1, - sizeof(asn_DEF_CyclicPrefixUL_tags_1) - /sizeof(asn_DEF_CyclicPrefixUL_tags_1[0]), /* 1 */ - asn_DEF_CyclicPrefixUL_tags_1, /* Same as above */ - sizeof(asn_DEF_CyclicPrefixUL_tags_1) - /sizeof(asn_DEF_CyclicPrefixUL_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_CyclicPrefixUL_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_CyclicPrefixUL_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/CyclicPrefixUL.h b/e2sim/previous/ASN1c/CyclicPrefixUL.h deleted file mode 100644 index ff49cbc..0000000 --- a/e2sim/previous/ASN1c/CyclicPrefixUL.h +++ /dev/null @@ -1,72 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _CyclicPrefixUL_H_ -#define _CyclicPrefixUL_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum CyclicPrefixUL { - CyclicPrefixUL_normal = 0, - CyclicPrefixUL_extended = 1 - /* - * Enumeration is extensible - */ -} e_CyclicPrefixUL; - -/* CyclicPrefixUL */ -typedef long CyclicPrefixUL_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_CyclicPrefixUL_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_CyclicPrefixUL; -extern const asn_INTEGER_specifics_t asn_SPC_CyclicPrefixUL_specs_1; -asn_struct_free_f CyclicPrefixUL_free; -asn_struct_print_f CyclicPrefixUL_print; -asn_constr_check_f CyclicPrefixUL_constraint; -ber_type_decoder_f CyclicPrefixUL_decode_ber; -der_type_encoder_f CyclicPrefixUL_encode_der; -xer_type_decoder_f CyclicPrefixUL_decode_xer; -xer_type_encoder_f CyclicPrefixUL_encode_xer; -per_type_decoder_f CyclicPrefixUL_decode_uper; -per_type_encoder_f CyclicPrefixUL_encode_uper; -per_type_decoder_f CyclicPrefixUL_decode_aper; -per_type_encoder_f CyclicPrefixUL_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _CyclicPrefixUL_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/DL-ABS-status.c b/e2sim/previous/ASN1c/DL-ABS-status.c deleted file mode 100644 index 2fe9c00..0000000 --- a/e2sim/previous/ASN1c/DL-ABS-status.c +++ /dev/null @@ -1,79 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "DL-ABS-status.h" - -int -DL_ABS_status_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 100)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using NativeInteger, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_DL_ABS_status_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED, 7, 7, 0, 100 } /* (0..100) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_DL_ABS_status_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_DL_ABS_status = { - "DL-ABS-status", - "DL-ABS-status", - &asn_OP_NativeInteger, - asn_DEF_DL_ABS_status_tags_1, - sizeof(asn_DEF_DL_ABS_status_tags_1) - /sizeof(asn_DEF_DL_ABS_status_tags_1[0]), /* 1 */ - asn_DEF_DL_ABS_status_tags_1, /* Same as above */ - sizeof(asn_DEF_DL_ABS_status_tags_1) - /sizeof(asn_DEF_DL_ABS_status_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_DL_ABS_status_constr_1, DL_ABS_status_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/previous/ASN1c/DL-ABS-status.h b/e2sim/previous/ASN1c/DL-ABS-status.h deleted file mode 100644 index 345dde6..0000000 --- a/e2sim/previous/ASN1c/DL-ABS-status.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _DL_ABS_status_H_ -#define _DL_ABS_status_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeInteger.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* DL-ABS-status */ -typedef long DL_ABS_status_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_DL_ABS_status_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_DL_ABS_status; -asn_struct_free_f DL_ABS_status_free; -asn_struct_print_f DL_ABS_status_print; -asn_constr_check_f DL_ABS_status_constraint; -ber_type_decoder_f DL_ABS_status_decode_ber; -der_type_encoder_f DL_ABS_status_encode_der; -xer_type_decoder_f DL_ABS_status_decode_xer; -xer_type_encoder_f DL_ABS_status_encode_xer; -per_type_decoder_f DL_ABS_status_decode_uper; -per_type_encoder_f DL_ABS_status_encode_uper; -per_type_decoder_f DL_ABS_status_decode_aper; -per_type_encoder_f DL_ABS_status_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _DL_ABS_status_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/DL-Forwarding.c b/e2sim/previous/ASN1c/DL-Forwarding.c deleted file mode 100644 index 13edeab..0000000 --- a/e2sim/previous/ASN1c/DL-Forwarding.c +++ /dev/null @@ -1,71 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "DL-Forwarding.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_DL_Forwarding_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 0, 0 } /* (0..0,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_DL_Forwarding_value2enum_1[] = { - { 0, 21, "dL-forwardingProposed" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_DL_Forwarding_enum2value_1[] = { - 0 /* dL-forwardingProposed(0) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_DL_Forwarding_specs_1 = { - asn_MAP_DL_Forwarding_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_DL_Forwarding_enum2value_1, /* N => "tag"; sorted by N */ - 1, /* Number of elements in the maps */ - 2, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_DL_Forwarding_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_DL_Forwarding = { - "DL-Forwarding", - "DL-Forwarding", - &asn_OP_NativeEnumerated, - asn_DEF_DL_Forwarding_tags_1, - sizeof(asn_DEF_DL_Forwarding_tags_1) - /sizeof(asn_DEF_DL_Forwarding_tags_1[0]), /* 1 */ - asn_DEF_DL_Forwarding_tags_1, /* Same as above */ - sizeof(asn_DEF_DL_Forwarding_tags_1) - /sizeof(asn_DEF_DL_Forwarding_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_DL_Forwarding_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_DL_Forwarding_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/DL-Forwarding.h b/e2sim/previous/ASN1c/DL-Forwarding.h deleted file mode 100644 index c748493..0000000 --- a/e2sim/previous/ASN1c/DL-Forwarding.h +++ /dev/null @@ -1,71 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _DL_Forwarding_H_ -#define _DL_Forwarding_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum DL_Forwarding { - DL_Forwarding_dL_forwardingProposed = 0 - /* - * Enumeration is extensible - */ -} e_DL_Forwarding; - -/* DL-Forwarding */ -typedef long DL_Forwarding_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_DL_Forwarding_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_DL_Forwarding; -extern const asn_INTEGER_specifics_t asn_SPC_DL_Forwarding_specs_1; -asn_struct_free_f DL_Forwarding_free; -asn_struct_print_f DL_Forwarding_print; -asn_constr_check_f DL_Forwarding_constraint; -ber_type_decoder_f DL_Forwarding_decode_ber; -der_type_encoder_f DL_Forwarding_encode_der; -xer_type_decoder_f DL_Forwarding_decode_xer; -xer_type_encoder_f DL_Forwarding_encode_xer; -per_type_decoder_f DL_Forwarding_decode_uper; -per_type_encoder_f DL_Forwarding_encode_uper; -per_type_decoder_f DL_Forwarding_decode_aper; -per_type_encoder_f DL_Forwarding_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _DL_Forwarding_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/DL-GBR-PRB-usage.c b/e2sim/previous/ASN1c/DL-GBR-PRB-usage.c deleted file mode 100644 index aa6e869..0000000 --- a/e2sim/previous/ASN1c/DL-GBR-PRB-usage.c +++ /dev/null @@ -1,79 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "DL-GBR-PRB-usage.h" - -int -DL_GBR_PRB_usage_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 100)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using NativeInteger, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_DL_GBR_PRB_usage_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED, 7, 7, 0, 100 } /* (0..100) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_DL_GBR_PRB_usage_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_DL_GBR_PRB_usage = { - "DL-GBR-PRB-usage", - "DL-GBR-PRB-usage", - &asn_OP_NativeInteger, - asn_DEF_DL_GBR_PRB_usage_tags_1, - sizeof(asn_DEF_DL_GBR_PRB_usage_tags_1) - /sizeof(asn_DEF_DL_GBR_PRB_usage_tags_1[0]), /* 1 */ - asn_DEF_DL_GBR_PRB_usage_tags_1, /* Same as above */ - sizeof(asn_DEF_DL_GBR_PRB_usage_tags_1) - /sizeof(asn_DEF_DL_GBR_PRB_usage_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_DL_GBR_PRB_usage_constr_1, DL_GBR_PRB_usage_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/previous/ASN1c/DL-GBR-PRB-usage.h b/e2sim/previous/ASN1c/DL-GBR-PRB-usage.h deleted file mode 100644 index 8dc4bf4..0000000 --- a/e2sim/previous/ASN1c/DL-GBR-PRB-usage.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _DL_GBR_PRB_usage_H_ -#define _DL_GBR_PRB_usage_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeInteger.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* DL-GBR-PRB-usage */ -typedef long DL_GBR_PRB_usage_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_DL_GBR_PRB_usage_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_DL_GBR_PRB_usage; -asn_struct_free_f DL_GBR_PRB_usage_free; -asn_struct_print_f DL_GBR_PRB_usage_print; -asn_constr_check_f DL_GBR_PRB_usage_constraint; -ber_type_decoder_f DL_GBR_PRB_usage_decode_ber; -der_type_encoder_f DL_GBR_PRB_usage_encode_der; -xer_type_decoder_f DL_GBR_PRB_usage_decode_xer; -xer_type_encoder_f DL_GBR_PRB_usage_encode_xer; -per_type_decoder_f DL_GBR_PRB_usage_decode_uper; -per_type_encoder_f DL_GBR_PRB_usage_encode_uper; -per_type_decoder_f DL_GBR_PRB_usage_decode_aper; -per_type_encoder_f DL_GBR_PRB_usage_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _DL_GBR_PRB_usage_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/DL-Total-PRB-usage.c b/e2sim/previous/ASN1c/DL-Total-PRB-usage.c deleted file mode 100644 index f6cd6cd..0000000 --- a/e2sim/previous/ASN1c/DL-Total-PRB-usage.c +++ /dev/null @@ -1,79 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "DL-Total-PRB-usage.h" - -int -DL_Total_PRB_usage_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 100)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using NativeInteger, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_DL_Total_PRB_usage_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED, 7, 7, 0, 100 } /* (0..100) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_DL_Total_PRB_usage_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_DL_Total_PRB_usage = { - "DL-Total-PRB-usage", - "DL-Total-PRB-usage", - &asn_OP_NativeInteger, - asn_DEF_DL_Total_PRB_usage_tags_1, - sizeof(asn_DEF_DL_Total_PRB_usage_tags_1) - /sizeof(asn_DEF_DL_Total_PRB_usage_tags_1[0]), /* 1 */ - asn_DEF_DL_Total_PRB_usage_tags_1, /* Same as above */ - sizeof(asn_DEF_DL_Total_PRB_usage_tags_1) - /sizeof(asn_DEF_DL_Total_PRB_usage_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_DL_Total_PRB_usage_constr_1, DL_Total_PRB_usage_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/previous/ASN1c/DL-Total-PRB-usage.h b/e2sim/previous/ASN1c/DL-Total-PRB-usage.h deleted file mode 100644 index 4ee9165..0000000 --- a/e2sim/previous/ASN1c/DL-Total-PRB-usage.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _DL_Total_PRB_usage_H_ -#define _DL_Total_PRB_usage_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeInteger.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* DL-Total-PRB-usage */ -typedef long DL_Total_PRB_usage_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_DL_Total_PRB_usage_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_DL_Total_PRB_usage; -asn_struct_free_f DL_Total_PRB_usage_free; -asn_struct_print_f DL_Total_PRB_usage_print; -asn_constr_check_f DL_Total_PRB_usage_constraint; -ber_type_decoder_f DL_Total_PRB_usage_decode_ber; -der_type_encoder_f DL_Total_PRB_usage_encode_der; -xer_type_decoder_f DL_Total_PRB_usage_decode_xer; -xer_type_encoder_f DL_Total_PRB_usage_encode_xer; -per_type_decoder_f DL_Total_PRB_usage_decode_uper; -per_type_encoder_f DL_Total_PRB_usage_encode_uper; -per_type_decoder_f DL_Total_PRB_usage_decode_aper; -per_type_encoder_f DL_Total_PRB_usage_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _DL_Total_PRB_usage_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/DL-non-GBR-PRB-usage.c b/e2sim/previous/ASN1c/DL-non-GBR-PRB-usage.c deleted file mode 100644 index 9b3d6c0..0000000 --- a/e2sim/previous/ASN1c/DL-non-GBR-PRB-usage.c +++ /dev/null @@ -1,79 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "DL-non-GBR-PRB-usage.h" - -int -DL_non_GBR_PRB_usage_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 100)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using NativeInteger, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_DL_non_GBR_PRB_usage_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED, 7, 7, 0, 100 } /* (0..100) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_DL_non_GBR_PRB_usage_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_DL_non_GBR_PRB_usage = { - "DL-non-GBR-PRB-usage", - "DL-non-GBR-PRB-usage", - &asn_OP_NativeInteger, - asn_DEF_DL_non_GBR_PRB_usage_tags_1, - sizeof(asn_DEF_DL_non_GBR_PRB_usage_tags_1) - /sizeof(asn_DEF_DL_non_GBR_PRB_usage_tags_1[0]), /* 1 */ - asn_DEF_DL_non_GBR_PRB_usage_tags_1, /* Same as above */ - sizeof(asn_DEF_DL_non_GBR_PRB_usage_tags_1) - /sizeof(asn_DEF_DL_non_GBR_PRB_usage_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_DL_non_GBR_PRB_usage_constr_1, DL_non_GBR_PRB_usage_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/previous/ASN1c/DL-non-GBR-PRB-usage.h b/e2sim/previous/ASN1c/DL-non-GBR-PRB-usage.h deleted file mode 100644 index 35d369e..0000000 --- a/e2sim/previous/ASN1c/DL-non-GBR-PRB-usage.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _DL_non_GBR_PRB_usage_H_ -#define _DL_non_GBR_PRB_usage_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeInteger.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* DL-non-GBR-PRB-usage */ -typedef long DL_non_GBR_PRB_usage_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_DL_non_GBR_PRB_usage_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_DL_non_GBR_PRB_usage; -asn_struct_free_f DL_non_GBR_PRB_usage_free; -asn_struct_print_f DL_non_GBR_PRB_usage_print; -asn_constr_check_f DL_non_GBR_PRB_usage_constraint; -ber_type_decoder_f DL_non_GBR_PRB_usage_decode_ber; -der_type_encoder_f DL_non_GBR_PRB_usage_encode_der; -xer_type_decoder_f DL_non_GBR_PRB_usage_decode_xer; -xer_type_encoder_f DL_non_GBR_PRB_usage_encode_xer; -per_type_decoder_f DL_non_GBR_PRB_usage_decode_uper; -per_type_encoder_f DL_non_GBR_PRB_usage_encode_uper; -per_type_decoder_f DL_non_GBR_PRB_usage_decode_aper; -per_type_encoder_f DL_non_GBR_PRB_usage_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _DL_non_GBR_PRB_usage_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/DL-scheduling-PDCCH-CCE-usage.c b/e2sim/previous/ASN1c/DL-scheduling-PDCCH-CCE-usage.c deleted file mode 100644 index fe6969f..0000000 --- a/e2sim/previous/ASN1c/DL-scheduling-PDCCH-CCE-usage.c +++ /dev/null @@ -1,79 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "DL-scheduling-PDCCH-CCE-usage.h" - -int -DL_scheduling_PDCCH_CCE_usage_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 100)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using NativeInteger, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_DL_scheduling_PDCCH_CCE_usage_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED, 7, 7, 0, 100 } /* (0..100) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_DL_scheduling_PDCCH_CCE_usage_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_DL_scheduling_PDCCH_CCE_usage = { - "DL-scheduling-PDCCH-CCE-usage", - "DL-scheduling-PDCCH-CCE-usage", - &asn_OP_NativeInteger, - asn_DEF_DL_scheduling_PDCCH_CCE_usage_tags_1, - sizeof(asn_DEF_DL_scheduling_PDCCH_CCE_usage_tags_1) - /sizeof(asn_DEF_DL_scheduling_PDCCH_CCE_usage_tags_1[0]), /* 1 */ - asn_DEF_DL_scheduling_PDCCH_CCE_usage_tags_1, /* Same as above */ - sizeof(asn_DEF_DL_scheduling_PDCCH_CCE_usage_tags_1) - /sizeof(asn_DEF_DL_scheduling_PDCCH_CCE_usage_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_DL_scheduling_PDCCH_CCE_usage_constr_1, DL_scheduling_PDCCH_CCE_usage_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/previous/ASN1c/DL-scheduling-PDCCH-CCE-usage.h b/e2sim/previous/ASN1c/DL-scheduling-PDCCH-CCE-usage.h deleted file mode 100644 index 38fb95b..0000000 --- a/e2sim/previous/ASN1c/DL-scheduling-PDCCH-CCE-usage.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _DL_scheduling_PDCCH_CCE_usage_H_ -#define _DL_scheduling_PDCCH_CCE_usage_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeInteger.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* DL-scheduling-PDCCH-CCE-usage */ -typedef long DL_scheduling_PDCCH_CCE_usage_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_DL_scheduling_PDCCH_CCE_usage_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_DL_scheduling_PDCCH_CCE_usage; -asn_struct_free_f DL_scheduling_PDCCH_CCE_usage_free; -asn_struct_print_f DL_scheduling_PDCCH_CCE_usage_print; -asn_constr_check_f DL_scheduling_PDCCH_CCE_usage_constraint; -ber_type_decoder_f DL_scheduling_PDCCH_CCE_usage_decode_ber; -der_type_encoder_f DL_scheduling_PDCCH_CCE_usage_encode_der; -xer_type_decoder_f DL_scheduling_PDCCH_CCE_usage_decode_xer; -xer_type_encoder_f DL_scheduling_PDCCH_CCE_usage_encode_xer; -per_type_decoder_f DL_scheduling_PDCCH_CCE_usage_decode_uper; -per_type_encoder_f DL_scheduling_PDCCH_CCE_usage_encode_uper; -per_type_decoder_f DL_scheduling_PDCCH_CCE_usage_decode_aper; -per_type_encoder_f DL_scheduling_PDCCH_CCE_usage_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _DL_scheduling_PDCCH_CCE_usage_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/DLResourceBitmapULandDLSharing.c b/e2sim/previous/ASN1c/DLResourceBitmapULandDLSharing.c deleted file mode 100644 index 1f1b0e9..0000000 --- a/e2sim/previous/ASN1c/DLResourceBitmapULandDLSharing.c +++ /dev/null @@ -1,85 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "DLResourceBitmapULandDLSharing.h" - -int -DLResourceBitmapULandDLSharing_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const DataTrafficResources_t *st = (const DataTrafficResources_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if(st->size > 0) { - /* Size in bits */ - size = 8 * st->size - (st->bits_unused & 0x07); - } else { - size = 0; - } - - if((size >= 6 && size <= 17600)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using DataTrafficResources, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_DLResourceBitmapULandDLSharing_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 15, 15, 6, 17600 } /* (SIZE(6..17600)) */, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_DLResourceBitmapULandDLSharing_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_DLResourceBitmapULandDLSharing = { - "DLResourceBitmapULandDLSharing", - "DLResourceBitmapULandDLSharing", - &asn_OP_BIT_STRING, - asn_DEF_DLResourceBitmapULandDLSharing_tags_1, - sizeof(asn_DEF_DLResourceBitmapULandDLSharing_tags_1) - /sizeof(asn_DEF_DLResourceBitmapULandDLSharing_tags_1[0]), /* 1 */ - asn_DEF_DLResourceBitmapULandDLSharing_tags_1, /* Same as above */ - sizeof(asn_DEF_DLResourceBitmapULandDLSharing_tags_1) - /sizeof(asn_DEF_DLResourceBitmapULandDLSharing_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_DLResourceBitmapULandDLSharing_constr_1, DLResourceBitmapULandDLSharing_constraint }, - 0, 0, /* No members */ - &asn_SPC_BIT_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/DLResourceBitmapULandDLSharing.h b/e2sim/previous/ASN1c/DLResourceBitmapULandDLSharing.h deleted file mode 100644 index 752b4d2..0000000 --- a/e2sim/previous/ASN1c/DLResourceBitmapULandDLSharing.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _DLResourceBitmapULandDLSharing_H_ -#define _DLResourceBitmapULandDLSharing_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "DataTrafficResources.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* DLResourceBitmapULandDLSharing */ -typedef DataTrafficResources_t DLResourceBitmapULandDLSharing_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_DLResourceBitmapULandDLSharing_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_DLResourceBitmapULandDLSharing; -asn_struct_free_f DLResourceBitmapULandDLSharing_free; -asn_struct_print_f DLResourceBitmapULandDLSharing_print; -asn_constr_check_f DLResourceBitmapULandDLSharing_constraint; -ber_type_decoder_f DLResourceBitmapULandDLSharing_decode_ber; -der_type_encoder_f DLResourceBitmapULandDLSharing_encode_der; -xer_type_decoder_f DLResourceBitmapULandDLSharing_decode_xer; -xer_type_encoder_f DLResourceBitmapULandDLSharing_encode_xer; -per_type_decoder_f DLResourceBitmapULandDLSharing_decode_uper; -per_type_encoder_f DLResourceBitmapULandDLSharing_encode_uper; -per_type_decoder_f DLResourceBitmapULandDLSharing_decode_aper; -per_type_encoder_f DLResourceBitmapULandDLSharing_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _DLResourceBitmapULandDLSharing_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/DLResourcesULandDLSharing.c b/e2sim/previous/ASN1c/DLResourcesULandDLSharing.c deleted file mode 100644 index 273a3a2..0000000 --- a/e2sim/previous/ASN1c/DLResourcesULandDLSharing.c +++ /dev/null @@ -1,80 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "DLResourcesULandDLSharing.h" - -asn_per_constraints_t asn_PER_type_DLResourcesULandDLSharing_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_DLResourcesULandDLSharing_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct DLResourcesULandDLSharing, choice.unchanged), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NULL, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "unchanged" - }, - { ATF_NOFLAGS, 0, offsetof(struct DLResourcesULandDLSharing, choice.changed), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_DLResourceBitmapULandDLSharing, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "changed" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_DLResourcesULandDLSharing_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* unchanged */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* changed */ -}; -asn_CHOICE_specifics_t asn_SPC_DLResourcesULandDLSharing_specs_1 = { - sizeof(struct DLResourcesULandDLSharing), - offsetof(struct DLResourcesULandDLSharing, _asn_ctx), - offsetof(struct DLResourcesULandDLSharing, present), - sizeof(((struct DLResourcesULandDLSharing *)0)->present), - asn_MAP_DLResourcesULandDLSharing_tag2el_1, - 2, /* Count of tags in the map */ - 0, 0, - 2 /* Extensions start */ -}; -asn_TYPE_descriptor_t asn_DEF_DLResourcesULandDLSharing = { - "DLResourcesULandDLSharing", - "DLResourcesULandDLSharing", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, &asn_PER_type_DLResourcesULandDLSharing_constr_1, CHOICE_constraint }, - asn_MBR_DLResourcesULandDLSharing_1, - 2, /* Elements count */ - &asn_SPC_DLResourcesULandDLSharing_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/DLResourcesULandDLSharing.h b/e2sim/previous/ASN1c/DLResourcesULandDLSharing.h deleted file mode 100644 index 43b5547..0000000 --- a/e2sim/previous/ASN1c/DLResourcesULandDLSharing.h +++ /dev/null @@ -1,77 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _DLResourcesULandDLSharing_H_ -#define _DLResourcesULandDLSharing_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NULL.h" -#include "DLResourceBitmapULandDLSharing.h" -#include "constr_CHOICE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum DLResourcesULandDLSharing_PR { - DLResourcesULandDLSharing_PR_NOTHING, /* No components present */ - DLResourcesULandDLSharing_PR_unchanged, - DLResourcesULandDLSharing_PR_changed - /* Extensions may appear below */ - -} DLResourcesULandDLSharing_PR; - -/* DLResourcesULandDLSharing */ -typedef struct DLResourcesULandDLSharing { - DLResourcesULandDLSharing_PR present; - union DLResourcesULandDLSharing_u { - NULL_t unchanged; - DLResourceBitmapULandDLSharing_t changed; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} DLResourcesULandDLSharing_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_DLResourcesULandDLSharing; -extern asn_CHOICE_specifics_t asn_SPC_DLResourcesULandDLSharing_specs_1; -extern asn_TYPE_member_t asn_MBR_DLResourcesULandDLSharing_1[2]; -extern asn_per_constraints_t asn_PER_type_DLResourcesULandDLSharing_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _DLResourcesULandDLSharing_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/DRB-ID.c b/e2sim/previous/ASN1c/DRB-ID.c deleted file mode 100644 index e27b031..0000000 --- a/e2sim/previous/ASN1c/DRB-ID.c +++ /dev/null @@ -1,79 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "DRB-ID.h" - -int -DRB_ID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 1 && value <= 32)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using NativeInteger, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_DRB_ID_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED, 5, 5, 1, 32 } /* (1..32) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_DRB_ID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_DRB_ID = { - "DRB-ID", - "DRB-ID", - &asn_OP_NativeInteger, - asn_DEF_DRB_ID_tags_1, - sizeof(asn_DEF_DRB_ID_tags_1) - /sizeof(asn_DEF_DRB_ID_tags_1[0]), /* 1 */ - asn_DEF_DRB_ID_tags_1, /* Same as above */ - sizeof(asn_DEF_DRB_ID_tags_1) - /sizeof(asn_DEF_DRB_ID_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_DRB_ID_constr_1, DRB_ID_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/previous/ASN1c/DRB-ID.h b/e2sim/previous/ASN1c/DRB-ID.h deleted file mode 100644 index 2b4de97..0000000 --- a/e2sim/previous/ASN1c/DRB-ID.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _DRB_ID_H_ -#define _DRB_ID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeInteger.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* DRB-ID */ -typedef long DRB_ID_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_DRB_ID_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_DRB_ID; -asn_struct_free_f DRB_ID_free; -asn_struct_print_f DRB_ID_print; -asn_constr_check_f DRB_ID_constraint; -ber_type_decoder_f DRB_ID_decode_ber; -der_type_encoder_f DRB_ID_encode_der; -xer_type_decoder_f DRB_ID_decode_xer; -xer_type_encoder_f DRB_ID_encode_xer; -per_type_decoder_f DRB_ID_decode_uper; -per_type_encoder_f DRB_ID_encode_uper; -per_type_decoder_f DRB_ID_decode_aper; -per_type_encoder_f DRB_ID_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _DRB_ID_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/DataForwardingAddressIndication.c b/e2sim/previous/ASN1c/DataForwardingAddressIndication.c deleted file mode 100644 index 01290f2..0000000 --- a/e2sim/previous/ASN1c/DataForwardingAddressIndication.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "DataForwardingAddressIndication.h" - -static asn_TYPE_member_t asn_MBR_DataForwardingAddressIndication_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct DataForwardingAddressIndication, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_119P118, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_DataForwardingAddressIndication_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_DataForwardingAddressIndication_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_DataForwardingAddressIndication_specs_1 = { - sizeof(struct DataForwardingAddressIndication), - offsetof(struct DataForwardingAddressIndication, _asn_ctx), - asn_MAP_DataForwardingAddressIndication_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_DataForwardingAddressIndication = { - "DataForwardingAddressIndication", - "DataForwardingAddressIndication", - &asn_OP_SEQUENCE, - asn_DEF_DataForwardingAddressIndication_tags_1, - sizeof(asn_DEF_DataForwardingAddressIndication_tags_1) - /sizeof(asn_DEF_DataForwardingAddressIndication_tags_1[0]), /* 1 */ - asn_DEF_DataForwardingAddressIndication_tags_1, /* Same as above */ - sizeof(asn_DEF_DataForwardingAddressIndication_tags_1) - /sizeof(asn_DEF_DataForwardingAddressIndication_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_DataForwardingAddressIndication_1, - 1, /* Elements count */ - &asn_SPC_DataForwardingAddressIndication_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/DataForwardingAddressIndication.h b/e2sim/previous/ASN1c/DataForwardingAddressIndication.h deleted file mode 100644 index 4d06d31..0000000 --- a/e2sim/previous/ASN1c/DataForwardingAddressIndication.h +++ /dev/null @@ -1,60 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _DataForwardingAddressIndication_H_ -#define _DataForwardingAddressIndication_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* DataForwardingAddressIndication */ -typedef struct DataForwardingAddressIndication { - ProtocolIE_Container_119P118_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} DataForwardingAddressIndication_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_DataForwardingAddressIndication; - -#ifdef __cplusplus -} -#endif - -#endif /* _DataForwardingAddressIndication_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/DataTrafficResourceIndication.c b/e2sim/previous/ASN1c/DataTrafficResourceIndication.c deleted file mode 100644 index 4ded49e..0000000 --- a/e2sim/previous/ASN1c/DataTrafficResourceIndication.c +++ /dev/null @@ -1,132 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "DataTrafficResourceIndication.h" - -#include "ReservedSubframePattern.h" -#include "ProtocolExtensionContainer.h" -static int -memb_activationSFN_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 1023)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_per_constraints_t asn_PER_memb_activationSFN_constr_2 CC_NOTUSED = { - { APC_CONSTRAINED, 10, 10, 0, 1023 } /* (0..1023) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_DataTrafficResourceIndication_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct DataTrafficResourceIndication, activationSFN), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { 0, &asn_PER_memb_activationSFN_constr_2, memb_activationSFN_constraint_1 }, - 0, 0, /* No default value */ - "activationSFN" - }, - { ATF_NOFLAGS, 0, offsetof(struct DataTrafficResourceIndication, sharedResourceType), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_SharedResourceType, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "sharedResourceType" - }, - { ATF_POINTER, 2, offsetof(struct DataTrafficResourceIndication, reservedSubframePattern), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ReservedSubframePattern, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "reservedSubframePattern" - }, - { ATF_POINTER, 1, offsetof(struct DataTrafficResourceIndication, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P131, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_DataTrafficResourceIndication_oms_1[] = { 2, 3 }; -static const ber_tlv_tag_t asn_DEF_DataTrafficResourceIndication_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_DataTrafficResourceIndication_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* activationSFN */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* sharedResourceType */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* reservedSubframePattern */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_DataTrafficResourceIndication_specs_1 = { - sizeof(struct DataTrafficResourceIndication), - offsetof(struct DataTrafficResourceIndication, _asn_ctx), - asn_MAP_DataTrafficResourceIndication_tag2el_1, - 4, /* Count of tags in the map */ - asn_MAP_DataTrafficResourceIndication_oms_1, /* Optional members */ - 2, 0, /* Root/Additions */ - 4, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_DataTrafficResourceIndication = { - "DataTrafficResourceIndication", - "DataTrafficResourceIndication", - &asn_OP_SEQUENCE, - asn_DEF_DataTrafficResourceIndication_tags_1, - sizeof(asn_DEF_DataTrafficResourceIndication_tags_1) - /sizeof(asn_DEF_DataTrafficResourceIndication_tags_1[0]), /* 1 */ - asn_DEF_DataTrafficResourceIndication_tags_1, /* Same as above */ - sizeof(asn_DEF_DataTrafficResourceIndication_tags_1) - /sizeof(asn_DEF_DataTrafficResourceIndication_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_DataTrafficResourceIndication_1, - 4, /* Elements count */ - &asn_SPC_DataTrafficResourceIndication_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/DataTrafficResourceIndication.h b/e2sim/previous/ASN1c/DataTrafficResourceIndication.h deleted file mode 100644 index 5755618..0000000 --- a/e2sim/previous/ASN1c/DataTrafficResourceIndication.h +++ /dev/null @@ -1,70 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _DataTrafficResourceIndication_H_ -#define _DataTrafficResourceIndication_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeInteger.h" -#include "SharedResourceType.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ReservedSubframePattern; -struct ProtocolExtensionContainer; - -/* DataTrafficResourceIndication */ -typedef struct DataTrafficResourceIndication { - long activationSFN; - SharedResourceType_t sharedResourceType; - struct ReservedSubframePattern *reservedSubframePattern; /* OPTIONAL */ - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} DataTrafficResourceIndication_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_DataTrafficResourceIndication; -extern asn_SEQUENCE_specifics_t asn_SPC_DataTrafficResourceIndication_specs_1; -extern asn_TYPE_member_t asn_MBR_DataTrafficResourceIndication_1[4]; - -#ifdef __cplusplus -} -#endif - -#endif /* _DataTrafficResourceIndication_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/DataTrafficResources.c b/e2sim/previous/ASN1c/DataTrafficResources.c deleted file mode 100644 index 797e86a..0000000 --- a/e2sim/previous/ASN1c/DataTrafficResources.c +++ /dev/null @@ -1,85 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "DataTrafficResources.h" - -int -DataTrafficResources_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if(st->size > 0) { - /* Size in bits */ - size = 8 * st->size - (st->bits_unused & 0x07); - } else { - size = 0; - } - - if((size >= 6 && size <= 17600)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using BIT_STRING, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_DataTrafficResources_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 15, 15, 6, 17600 } /* (SIZE(6..17600)) */, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_DataTrafficResources_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_DataTrafficResources = { - "DataTrafficResources", - "DataTrafficResources", - &asn_OP_BIT_STRING, - asn_DEF_DataTrafficResources_tags_1, - sizeof(asn_DEF_DataTrafficResources_tags_1) - /sizeof(asn_DEF_DataTrafficResources_tags_1[0]), /* 1 */ - asn_DEF_DataTrafficResources_tags_1, /* Same as above */ - sizeof(asn_DEF_DataTrafficResources_tags_1) - /sizeof(asn_DEF_DataTrafficResources_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_DataTrafficResources_constr_1, DataTrafficResources_constraint }, - 0, 0, /* No members */ - &asn_SPC_BIT_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/DataTrafficResources.h b/e2sim/previous/ASN1c/DataTrafficResources.h deleted file mode 100644 index 890e81b..0000000 --- a/e2sim/previous/ASN1c/DataTrafficResources.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _DataTrafficResources_H_ -#define _DataTrafficResources_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "BIT_STRING.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* DataTrafficResources */ -typedef BIT_STRING_t DataTrafficResources_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_DataTrafficResources_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_DataTrafficResources; -asn_struct_free_f DataTrafficResources_free; -asn_struct_print_f DataTrafficResources_print; -asn_constr_check_f DataTrafficResources_constraint; -ber_type_decoder_f DataTrafficResources_decode_ber; -der_type_encoder_f DataTrafficResources_encode_der; -xer_type_decoder_f DataTrafficResources_decode_xer; -xer_type_encoder_f DataTrafficResources_encode_xer; -per_type_decoder_f DataTrafficResources_decode_uper; -per_type_encoder_f DataTrafficResources_encode_uper; -per_type_decoder_f DataTrafficResources_decode_aper; -per_type_encoder_f DataTrafficResources_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _DataTrafficResources_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/DeactivationIndication.c b/e2sim/previous/ASN1c/DeactivationIndication.c deleted file mode 100644 index d9775a1..0000000 --- a/e2sim/previous/ASN1c/DeactivationIndication.c +++ /dev/null @@ -1,71 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "DeactivationIndication.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_DeactivationIndication_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 0, 0 } /* (0..0,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_DeactivationIndication_value2enum_1[] = { - { 0, 11, "deactivated" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_DeactivationIndication_enum2value_1[] = { - 0 /* deactivated(0) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_DeactivationIndication_specs_1 = { - asn_MAP_DeactivationIndication_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_DeactivationIndication_enum2value_1, /* N => "tag"; sorted by N */ - 1, /* Number of elements in the maps */ - 2, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_DeactivationIndication_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_DeactivationIndication = { - "DeactivationIndication", - "DeactivationIndication", - &asn_OP_NativeEnumerated, - asn_DEF_DeactivationIndication_tags_1, - sizeof(asn_DEF_DeactivationIndication_tags_1) - /sizeof(asn_DEF_DeactivationIndication_tags_1[0]), /* 1 */ - asn_DEF_DeactivationIndication_tags_1, /* Same as above */ - sizeof(asn_DEF_DeactivationIndication_tags_1) - /sizeof(asn_DEF_DeactivationIndication_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_DeactivationIndication_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_DeactivationIndication_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/DeactivationIndication.h b/e2sim/previous/ASN1c/DeactivationIndication.h deleted file mode 100644 index 0819790..0000000 --- a/e2sim/previous/ASN1c/DeactivationIndication.h +++ /dev/null @@ -1,71 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _DeactivationIndication_H_ -#define _DeactivationIndication_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum DeactivationIndication { - DeactivationIndication_deactivated = 0 - /* - * Enumeration is extensible - */ -} e_DeactivationIndication; - -/* DeactivationIndication */ -typedef long DeactivationIndication_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_DeactivationIndication_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_DeactivationIndication; -extern const asn_INTEGER_specifics_t asn_SPC_DeactivationIndication_specs_1; -asn_struct_free_f DeactivationIndication_free; -asn_struct_print_f DeactivationIndication_print; -asn_constr_check_f DeactivationIndication_constraint; -ber_type_decoder_f DeactivationIndication_decode_ber; -der_type_encoder_f DeactivationIndication_encode_der; -xer_type_decoder_f DeactivationIndication_decode_xer; -xer_type_encoder_f DeactivationIndication_encode_xer; -per_type_decoder_f DeactivationIndication_decode_uper; -per_type_encoder_f DeactivationIndication_encode_uper; -per_type_decoder_f DeactivationIndication_decode_aper; -per_type_encoder_f DeactivationIndication_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _DeactivationIndication_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/DeliveryStatus.c b/e2sim/previous/ASN1c/DeliveryStatus.c deleted file mode 100644 index 2f6c809..0000000 --- a/e2sim/previous/ASN1c/DeliveryStatus.c +++ /dev/null @@ -1,111 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "DeliveryStatus.h" - -#include "ProtocolExtensionContainer.h" -static int -memb_highestSuccessDeliveredPDCPSN_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 4095)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_per_constraints_t asn_PER_memb_highestSuccessDeliveredPDCPSN_constr_2 CC_NOTUSED = { - { APC_CONSTRAINED, 12, 12, 0, 4095 } /* (0..4095) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_DeliveryStatus_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct DeliveryStatus, highestSuccessDeliveredPDCPSN), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { 0, &asn_PER_memb_highestSuccessDeliveredPDCPSN_constr_2, memb_highestSuccessDeliveredPDCPSN_constraint_1 }, - 0, 0, /* No default value */ - "highestSuccessDeliveredPDCPSN" - }, - { ATF_POINTER, 1, offsetof(struct DeliveryStatus, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P132, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_DeliveryStatus_oms_1[] = { 1 }; -static const ber_tlv_tag_t asn_DEF_DeliveryStatus_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_DeliveryStatus_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* highestSuccessDeliveredPDCPSN */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_DeliveryStatus_specs_1 = { - sizeof(struct DeliveryStatus), - offsetof(struct DeliveryStatus, _asn_ctx), - asn_MAP_DeliveryStatus_tag2el_1, - 2, /* Count of tags in the map */ - asn_MAP_DeliveryStatus_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 2, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_DeliveryStatus = { - "DeliveryStatus", - "DeliveryStatus", - &asn_OP_SEQUENCE, - asn_DEF_DeliveryStatus_tags_1, - sizeof(asn_DEF_DeliveryStatus_tags_1) - /sizeof(asn_DEF_DeliveryStatus_tags_1[0]), /* 1 */ - asn_DEF_DeliveryStatus_tags_1, /* Same as above */ - sizeof(asn_DEF_DeliveryStatus_tags_1) - /sizeof(asn_DEF_DeliveryStatus_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_DeliveryStatus_1, - 2, /* Elements count */ - &asn_SPC_DeliveryStatus_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/DeliveryStatus.h b/e2sim/previous/ASN1c/DeliveryStatus.h deleted file mode 100644 index bc4bb21..0000000 --- a/e2sim/previous/ASN1c/DeliveryStatus.h +++ /dev/null @@ -1,66 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _DeliveryStatus_H_ -#define _DeliveryStatus_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeInteger.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* DeliveryStatus */ -typedef struct DeliveryStatus { - long highestSuccessDeliveredPDCPSN; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} DeliveryStatus_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_DeliveryStatus; -extern asn_SEQUENCE_specifics_t asn_SPC_DeliveryStatus_specs_1; -extern asn_TYPE_member_t asn_MBR_DeliveryStatus_1[2]; - -#ifdef __cplusplus -} -#endif - -#endif /* _DeliveryStatus_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/DuplicationActivation.c b/e2sim/previous/ASN1c/DuplicationActivation.c deleted file mode 100644 index a74db1c..0000000 --- a/e2sim/previous/ASN1c/DuplicationActivation.c +++ /dev/null @@ -1,73 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "DuplicationActivation.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_DuplicationActivation_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_DuplicationActivation_value2enum_1[] = { - { 0, 6, "active" }, - { 1, 8, "inactive" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_DuplicationActivation_enum2value_1[] = { - 0, /* active(0) */ - 1 /* inactive(1) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_DuplicationActivation_specs_1 = { - asn_MAP_DuplicationActivation_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_DuplicationActivation_enum2value_1, /* N => "tag"; sorted by N */ - 2, /* Number of elements in the maps */ - 3, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_DuplicationActivation_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_DuplicationActivation = { - "DuplicationActivation", - "DuplicationActivation", - &asn_OP_NativeEnumerated, - asn_DEF_DuplicationActivation_tags_1, - sizeof(asn_DEF_DuplicationActivation_tags_1) - /sizeof(asn_DEF_DuplicationActivation_tags_1[0]), /* 1 */ - asn_DEF_DuplicationActivation_tags_1, /* Same as above */ - sizeof(asn_DEF_DuplicationActivation_tags_1) - /sizeof(asn_DEF_DuplicationActivation_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_DuplicationActivation_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_DuplicationActivation_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/DuplicationActivation.h b/e2sim/previous/ASN1c/DuplicationActivation.h deleted file mode 100644 index 8d79972..0000000 --- a/e2sim/previous/ASN1c/DuplicationActivation.h +++ /dev/null @@ -1,72 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _DuplicationActivation_H_ -#define _DuplicationActivation_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum DuplicationActivation { - DuplicationActivation_active = 0, - DuplicationActivation_inactive = 1 - /* - * Enumeration is extensible - */ -} e_DuplicationActivation; - -/* DuplicationActivation */ -typedef long DuplicationActivation_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_DuplicationActivation_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_DuplicationActivation; -extern const asn_INTEGER_specifics_t asn_SPC_DuplicationActivation_specs_1; -asn_struct_free_f DuplicationActivation_free; -asn_struct_print_f DuplicationActivation_print; -asn_constr_check_f DuplicationActivation_constraint; -ber_type_decoder_f DuplicationActivation_decode_ber; -der_type_encoder_f DuplicationActivation_encode_der; -xer_type_decoder_f DuplicationActivation_decode_xer; -xer_type_encoder_f DuplicationActivation_encode_xer; -per_type_decoder_f DuplicationActivation_decode_uper; -per_type_encoder_f DuplicationActivation_encode_uper; -per_type_decoder_f DuplicationActivation_decode_aper; -per_type_encoder_f DuplicationActivation_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _DuplicationActivation_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/DynamicDLTransmissionInformation.c b/e2sim/previous/ASN1c/DynamicDLTransmissionInformation.c deleted file mode 100644 index 73ba6ab..0000000 --- a/e2sim/previous/ASN1c/DynamicDLTransmissionInformation.c +++ /dev/null @@ -1,81 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "DynamicDLTransmissionInformation.h" - -#include "DynamicNAICSInformation.h" -asn_per_constraints_t asn_PER_type_DynamicDLTransmissionInformation_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_DynamicDLTransmissionInformation_1[] = { - { ATF_POINTER, 0, offsetof(struct DynamicDLTransmissionInformation, choice.naics_active), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_DynamicNAICSInformation, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "naics-active" - }, - { ATF_NOFLAGS, 0, offsetof(struct DynamicDLTransmissionInformation, choice.naics_inactive), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NULL, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "naics-inactive" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_DynamicDLTransmissionInformation_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* naics-active */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* naics-inactive */ -}; -asn_CHOICE_specifics_t asn_SPC_DynamicDLTransmissionInformation_specs_1 = { - sizeof(struct DynamicDLTransmissionInformation), - offsetof(struct DynamicDLTransmissionInformation, _asn_ctx), - offsetof(struct DynamicDLTransmissionInformation, present), - sizeof(((struct DynamicDLTransmissionInformation *)0)->present), - asn_MAP_DynamicDLTransmissionInformation_tag2el_1, - 2, /* Count of tags in the map */ - 0, 0, - 2 /* Extensions start */ -}; -asn_TYPE_descriptor_t asn_DEF_DynamicDLTransmissionInformation = { - "DynamicDLTransmissionInformation", - "DynamicDLTransmissionInformation", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, &asn_PER_type_DynamicDLTransmissionInformation_constr_1, CHOICE_constraint }, - asn_MBR_DynamicDLTransmissionInformation_1, - 2, /* Elements count */ - &asn_SPC_DynamicDLTransmissionInformation_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/DynamicDLTransmissionInformation.h b/e2sim/previous/ASN1c/DynamicDLTransmissionInformation.h deleted file mode 100644 index 88fcdbc..0000000 --- a/e2sim/previous/ASN1c/DynamicDLTransmissionInformation.h +++ /dev/null @@ -1,79 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _DynamicDLTransmissionInformation_H_ -#define _DynamicDLTransmissionInformation_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NULL.h" -#include "constr_CHOICE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum DynamicDLTransmissionInformation_PR { - DynamicDLTransmissionInformation_PR_NOTHING, /* No components present */ - DynamicDLTransmissionInformation_PR_naics_active, - DynamicDLTransmissionInformation_PR_naics_inactive - /* Extensions may appear below */ - -} DynamicDLTransmissionInformation_PR; - -/* Forward declarations */ -struct DynamicNAICSInformation; - -/* DynamicDLTransmissionInformation */ -typedef struct DynamicDLTransmissionInformation { - DynamicDLTransmissionInformation_PR present; - union DynamicDLTransmissionInformation_u { - struct DynamicNAICSInformation *naics_active; - NULL_t naics_inactive; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} DynamicDLTransmissionInformation_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_DynamicDLTransmissionInformation; -extern asn_CHOICE_specifics_t asn_SPC_DynamicDLTransmissionInformation_specs_1; -extern asn_TYPE_member_t asn_MBR_DynamicDLTransmissionInformation_1[2]; -extern asn_per_constraints_t asn_PER_type_DynamicDLTransmissionInformation_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _DynamicDLTransmissionInformation_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/DynamicNAICSInformation.c b/e2sim/previous/ASN1c/DynamicNAICSInformation.c deleted file mode 100644 index 7fd9d42..0000000 --- a/e2sim/previous/ASN1c/DynamicNAICSInformation.c +++ /dev/null @@ -1,240 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "DynamicNAICSInformation.h" - -#include "ProtocolExtensionContainer.h" -static int -memb_transmissionModes_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if(st->size > 0) { - /* Size in bits */ - size = 8 * st->size - (st->bits_unused & 0x07); - } else { - size = 0; - } - - if((size == 8)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_pB_information_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 3)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_pA_list_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - /* Determine the number of elements */ - size = _A_CSEQUENCE_FROM_VOID(sptr)->count; - - if((size <= 3)) { - /* Perform validation of the inner elements */ - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_per_constraints_t asn_PER_type_pA_list_constr_4 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 2, 2, 0, 3 } /* (SIZE(0..3)) */, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_transmissionModes_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 0, 0, 8, 8 } /* (SIZE(8..8)) */, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_pB_information_constr_3 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 3 } /* (0..3) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_pA_list_constr_4 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 2, 2, 0, 3 } /* (SIZE(0..3)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_pA_list_4[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_PA_Values, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_pA_list_tags_4[] = { - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_pA_list_specs_4 = { - sizeof(struct DynamicNAICSInformation__pA_list), - offsetof(struct DynamicNAICSInformation__pA_list, _asn_ctx), - 1, /* XER encoding is XMLValueList */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_pA_list_4 = { - "pA-list", - "pA-list", - &asn_OP_SEQUENCE_OF, - asn_DEF_pA_list_tags_4, - sizeof(asn_DEF_pA_list_tags_4) - /sizeof(asn_DEF_pA_list_tags_4[0]) - 1, /* 1 */ - asn_DEF_pA_list_tags_4, /* Same as above */ - sizeof(asn_DEF_pA_list_tags_4) - /sizeof(asn_DEF_pA_list_tags_4[0]), /* 2 */ - { 0, &asn_PER_type_pA_list_constr_4, SEQUENCE_OF_constraint }, - asn_MBR_pA_list_4, - 1, /* Single element */ - &asn_SPC_pA_list_specs_4 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_DynamicNAICSInformation_1[] = { - { ATF_POINTER, 2, offsetof(struct DynamicNAICSInformation, transmissionModes), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_BIT_STRING, - 0, - { 0, &asn_PER_memb_transmissionModes_constr_2, memb_transmissionModes_constraint_1 }, - 0, 0, /* No default value */ - "transmissionModes" - }, - { ATF_POINTER, 1, offsetof(struct DynamicNAICSInformation, pB_information), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { 0, &asn_PER_memb_pB_information_constr_3, memb_pB_information_constraint_1 }, - 0, 0, /* No default value */ - "pB-information" - }, - { ATF_NOFLAGS, 0, offsetof(struct DynamicNAICSInformation, pA_list), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - 0, - &asn_DEF_pA_list_4, - 0, - { 0, &asn_PER_memb_pA_list_constr_4, memb_pA_list_constraint_1 }, - 0, 0, /* No default value */ - "pA-list" - }, - { ATF_POINTER, 1, offsetof(struct DynamicNAICSInformation, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P133, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_DynamicNAICSInformation_oms_1[] = { 0, 1, 3 }; -static const ber_tlv_tag_t asn_DEF_DynamicNAICSInformation_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_DynamicNAICSInformation_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* transmissionModes */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* pB-information */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* pA-list */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_DynamicNAICSInformation_specs_1 = { - sizeof(struct DynamicNAICSInformation), - offsetof(struct DynamicNAICSInformation, _asn_ctx), - asn_MAP_DynamicNAICSInformation_tag2el_1, - 4, /* Count of tags in the map */ - asn_MAP_DynamicNAICSInformation_oms_1, /* Optional members */ - 3, 0, /* Root/Additions */ - 4, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_DynamicNAICSInformation = { - "DynamicNAICSInformation", - "DynamicNAICSInformation", - &asn_OP_SEQUENCE, - asn_DEF_DynamicNAICSInformation_tags_1, - sizeof(asn_DEF_DynamicNAICSInformation_tags_1) - /sizeof(asn_DEF_DynamicNAICSInformation_tags_1[0]), /* 1 */ - asn_DEF_DynamicNAICSInformation_tags_1, /* Same as above */ - sizeof(asn_DEF_DynamicNAICSInformation_tags_1) - /sizeof(asn_DEF_DynamicNAICSInformation_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_DynamicNAICSInformation_1, - 4, /* Elements count */ - &asn_SPC_DynamicNAICSInformation_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/DynamicNAICSInformation.h b/e2sim/previous/ASN1c/DynamicNAICSInformation.h deleted file mode 100644 index 3c128fa..0000000 --- a/e2sim/previous/ASN1c/DynamicNAICSInformation.h +++ /dev/null @@ -1,77 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _DynamicNAICSInformation_H_ -#define _DynamicNAICSInformation_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "BIT_STRING.h" -#include "NativeInteger.h" -#include "PA-Values.h" -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* DynamicNAICSInformation */ -typedef struct DynamicNAICSInformation { - BIT_STRING_t *transmissionModes; /* OPTIONAL */ - long *pB_information; /* OPTIONAL */ - struct DynamicNAICSInformation__pA_list { - A_SEQUENCE_OF(PA_Values_t) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } pA_list; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} DynamicNAICSInformation_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_DynamicNAICSInformation; -extern asn_SEQUENCE_specifics_t asn_SPC_DynamicNAICSInformation_specs_1; -extern asn_TYPE_member_t asn_MBR_DynamicNAICSInformation_1[4]; - -#ifdef __cplusplus -} -#endif - -#endif /* _DynamicNAICSInformation_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E-RAB-ID.c b/e2sim/previous/ASN1c/E-RAB-ID.c deleted file mode 100644 index afdef5f..0000000 --- a/e2sim/previous/ASN1c/E-RAB-ID.c +++ /dev/null @@ -1,79 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E-RAB-ID.h" - -int -E_RAB_ID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 15)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using NativeInteger, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_E_RAB_ID_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 4, 4, 0, 15 } /* (0..15,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_E_RAB_ID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_E_RAB_ID = { - "E-RAB-ID", - "E-RAB-ID", - &asn_OP_NativeInteger, - asn_DEF_E_RAB_ID_tags_1, - sizeof(asn_DEF_E_RAB_ID_tags_1) - /sizeof(asn_DEF_E_RAB_ID_tags_1[0]), /* 1 */ - asn_DEF_E_RAB_ID_tags_1, /* Same as above */ - sizeof(asn_DEF_E_RAB_ID_tags_1) - /sizeof(asn_DEF_E_RAB_ID_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_E_RAB_ID_constr_1, E_RAB_ID_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/previous/ASN1c/E-RAB-ID.h b/e2sim/previous/ASN1c/E-RAB-ID.h deleted file mode 100644 index 69a47bf..0000000 --- a/e2sim/previous/ASN1c/E-RAB-ID.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E_RAB_ID_H_ -#define _E_RAB_ID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeInteger.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* E-RAB-ID */ -typedef long E_RAB_ID_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_E_RAB_ID_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_E_RAB_ID; -asn_struct_free_f E_RAB_ID_free; -asn_struct_print_f E_RAB_ID_print; -asn_constr_check_f E_RAB_ID_constraint; -ber_type_decoder_f E_RAB_ID_decode_ber; -der_type_encoder_f E_RAB_ID_encode_der; -xer_type_decoder_f E_RAB_ID_decode_xer; -xer_type_encoder_f E_RAB_ID_encode_xer; -per_type_decoder_f E_RAB_ID_decode_uper; -per_type_encoder_f E_RAB_ID_encode_uper; -per_type_decoder_f E_RAB_ID_decode_aper; -per_type_encoder_f E_RAB_ID_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _E_RAB_ID_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E-RAB-Item.c b/e2sim/previous/ASN1c/E-RAB-Item.c deleted file mode 100644 index e616412..0000000 --- a/e2sim/previous/ASN1c/E-RAB-Item.c +++ /dev/null @@ -1,91 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E-RAB-Item.h" - -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_E_RAB_Item_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RAB_Item, e_RAB_ID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E_RAB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "e-RAB-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RAB_Item, cause), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_Cause, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "cause" - }, - { ATF_POINTER, 1, offsetof(struct E_RAB_Item, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P140, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_E_RAB_Item_oms_1[] = { 2 }; -static const ber_tlv_tag_t asn_DEF_E_RAB_Item_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RAB_Item_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e-RAB-ID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* cause */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RAB_Item_specs_1 = { - sizeof(struct E_RAB_Item), - offsetof(struct E_RAB_Item, _asn_ctx), - asn_MAP_E_RAB_Item_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_E_RAB_Item_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RAB_Item = { - "E-RAB-Item", - "E-RAB-Item", - &asn_OP_SEQUENCE, - asn_DEF_E_RAB_Item_tags_1, - sizeof(asn_DEF_E_RAB_Item_tags_1) - /sizeof(asn_DEF_E_RAB_Item_tags_1[0]), /* 1 */ - asn_DEF_E_RAB_Item_tags_1, /* Same as above */ - sizeof(asn_DEF_E_RAB_Item_tags_1) - /sizeof(asn_DEF_E_RAB_Item_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RAB_Item_1, - 3, /* Elements count */ - &asn_SPC_E_RAB_Item_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/E-RAB-Item.h b/e2sim/previous/ASN1c/E-RAB-Item.h deleted file mode 100644 index a1fa6a1..0000000 --- a/e2sim/previous/ASN1c/E-RAB-Item.h +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E_RAB_Item_H_ -#define _E_RAB_Item_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "E-RAB-ID.h" -#include "Cause.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* E-RAB-Item */ -typedef struct E_RAB_Item { - E_RAB_ID_t e_RAB_ID; - Cause_t cause; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RAB_Item_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E_RAB_Item; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RAB_Item_specs_1; -extern asn_TYPE_member_t asn_MBR_E_RAB_Item_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _E_RAB_Item_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E-RAB-Level-QoS-Parameters.c b/e2sim/previous/ASN1c/E-RAB-Level-QoS-Parameters.c deleted file mode 100644 index b69e40e..0000000 --- a/e2sim/previous/ASN1c/E-RAB-Level-QoS-Parameters.c +++ /dev/null @@ -1,102 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E-RAB-Level-QoS-Parameters.h" - -#include "GBR-QosInformation.h" -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_E_RAB_Level_QoS_Parameters_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RAB_Level_QoS_Parameters, qCI), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_QCI, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "qCI" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RAB_Level_QoS_Parameters, allocationAndRetentionPriority), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_AllocationAndRetentionPriority, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "allocationAndRetentionPriority" - }, - { ATF_POINTER, 2, offsetof(struct E_RAB_Level_QoS_Parameters, gbrQosInformation), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GBR_QosInformation, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "gbrQosInformation" - }, - { ATF_POINTER, 1, offsetof(struct E_RAB_Level_QoS_Parameters, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P139, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_E_RAB_Level_QoS_Parameters_oms_1[] = { 2, 3 }; -static const ber_tlv_tag_t asn_DEF_E_RAB_Level_QoS_Parameters_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RAB_Level_QoS_Parameters_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* qCI */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* allocationAndRetentionPriority */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* gbrQosInformation */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RAB_Level_QoS_Parameters_specs_1 = { - sizeof(struct E_RAB_Level_QoS_Parameters), - offsetof(struct E_RAB_Level_QoS_Parameters, _asn_ctx), - asn_MAP_E_RAB_Level_QoS_Parameters_tag2el_1, - 4, /* Count of tags in the map */ - asn_MAP_E_RAB_Level_QoS_Parameters_oms_1, /* Optional members */ - 2, 0, /* Root/Additions */ - 4, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RAB_Level_QoS_Parameters = { - "E-RAB-Level-QoS-Parameters", - "E-RAB-Level-QoS-Parameters", - &asn_OP_SEQUENCE, - asn_DEF_E_RAB_Level_QoS_Parameters_tags_1, - sizeof(asn_DEF_E_RAB_Level_QoS_Parameters_tags_1) - /sizeof(asn_DEF_E_RAB_Level_QoS_Parameters_tags_1[0]), /* 1 */ - asn_DEF_E_RAB_Level_QoS_Parameters_tags_1, /* Same as above */ - sizeof(asn_DEF_E_RAB_Level_QoS_Parameters_tags_1) - /sizeof(asn_DEF_E_RAB_Level_QoS_Parameters_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RAB_Level_QoS_Parameters_1, - 4, /* Elements count */ - &asn_SPC_E_RAB_Level_QoS_Parameters_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/E-RAB-Level-QoS-Parameters.h b/e2sim/previous/ASN1c/E-RAB-Level-QoS-Parameters.h deleted file mode 100644 index 92a8255..0000000 --- a/e2sim/previous/ASN1c/E-RAB-Level-QoS-Parameters.h +++ /dev/null @@ -1,70 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E_RAB_Level_QoS_Parameters_H_ -#define _E_RAB_Level_QoS_Parameters_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "QCI.h" -#include "AllocationAndRetentionPriority.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct GBR_QosInformation; -struct ProtocolExtensionContainer; - -/* E-RAB-Level-QoS-Parameters */ -typedef struct E_RAB_Level_QoS_Parameters { - QCI_t qCI; - AllocationAndRetentionPriority_t allocationAndRetentionPriority; - struct GBR_QosInformation *gbrQosInformation; /* OPTIONAL */ - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RAB_Level_QoS_Parameters_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E_RAB_Level_QoS_Parameters; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RAB_Level_QoS_Parameters_specs_1; -extern asn_TYPE_member_t asn_MBR_E_RAB_Level_QoS_Parameters_1[4]; - -#ifdef __cplusplus -} -#endif - -#endif /* _E_RAB_Level_QoS_Parameters_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E-RAB-List.c b/e2sim/previous/ASN1c/E-RAB-List.c deleted file mode 100644 index 82f3806..0000000 --- a/e2sim/previous/ASN1c/E-RAB-List.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E-RAB-List.h" - -#include "ProtocolIE-Single-Container.h" -asn_per_constraints_t asn_PER_type_E_RAB_List_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 8, 8, 1, 256 } /* (SIZE(1..256)) */, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_E_RAB_List_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ProtocolIE_Single_Container_122P46, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RAB_List_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_E_RAB_List_specs_1 = { - sizeof(struct E_RAB_List), - offsetof(struct E_RAB_List, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RAB_List = { - "E-RAB-List", - "E-RAB-List", - &asn_OP_SEQUENCE_OF, - asn_DEF_E_RAB_List_tags_1, - sizeof(asn_DEF_E_RAB_List_tags_1) - /sizeof(asn_DEF_E_RAB_List_tags_1[0]), /* 1 */ - asn_DEF_E_RAB_List_tags_1, /* Same as above */ - sizeof(asn_DEF_E_RAB_List_tags_1) - /sizeof(asn_DEF_E_RAB_List_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_E_RAB_List_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_E_RAB_List_1, - 1, /* Single element */ - &asn_SPC_E_RAB_List_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/E-RAB-List.h b/e2sim/previous/ASN1c/E-RAB-List.h deleted file mode 100644 index cfbef63..0000000 --- a/e2sim/previous/ASN1c/E-RAB-List.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E_RAB_List_H_ -#define _E_RAB_List_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolIE_Single_Container; - -/* E-RAB-List */ -typedef struct E_RAB_List { - A_SEQUENCE_OF(struct ProtocolIE_Single_Container) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RAB_List_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E_RAB_List; -extern asn_SET_OF_specifics_t asn_SPC_E_RAB_List_specs_1; -extern asn_TYPE_member_t asn_MBR_E_RAB_List_1[1]; -extern asn_per_constraints_t asn_PER_type_E_RAB_List_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _E_RAB_List_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E-RABUsageReport-Item.c b/e2sim/previous/ASN1c/E-RABUsageReport-Item.c deleted file mode 100644 index 06fe740..0000000 --- a/e2sim/previous/ASN1c/E-RABUsageReport-Item.c +++ /dev/null @@ -1,315 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E-RABUsageReport-Item.h" - -#include "ProtocolExtensionContainer.h" -static int -usageCountUL_4_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - /* Constraint check succeeded */ - return 0; -} - -/* - * This type is implemented using NativeInteger, - * so here we adjust the DEF accordingly. - */ -static int -usageCountDL_5_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - /* Constraint check succeeded */ - return 0; -} - -/* - * This type is implemented using NativeInteger, - * so here we adjust the DEF accordingly. - */ -static int -memb_startTimeStamp_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - size = st->size; - - if((size == 4)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_endTimeStamp_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - size = st->size; - - if((size == 4)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_usageCountUL_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - /* Constraint check succeeded */ - return 0; -} - -static int -memb_usageCountDL_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - /* Constraint check succeeded */ - return 0; -} - -static asn_per_constraints_t asn_PER_type_usageCountUL_constr_4 CC_NOTUSED = { - { APC_CONSTRAINED, 32, -1, 0, 4294967295 } /* (0..4294967295) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_type_usageCountDL_constr_5 CC_NOTUSED = { - { APC_CONSTRAINED, 32, -1, 0, 4294967295 } /* (0..4294967295) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_startTimeStamp_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 0, 0, 4, 4 } /* (SIZE(4..4)) */, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_endTimeStamp_constr_3 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 0, 0, 4, 4 } /* (SIZE(4..4)) */, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_usageCountUL_constr_4 CC_NOTUSED = { - { APC_CONSTRAINED, 32, -1, 0, 4294967295 } /* (0..4294967295) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_usageCountDL_constr_5 CC_NOTUSED = { - { APC_CONSTRAINED, 32, -1, 0, 4294967295 } /* (0..4294967295) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_specifics_t asn_SPC_usageCountUL_specs_4 = { - 0, 0, 0, 0, 0, - 0, /* Native long size */ - 1 /* Unsigned representation */ -}; -static const ber_tlv_tag_t asn_DEF_usageCountUL_tags_4[] = { - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_usageCountUL_4 = { - "usageCountUL", - "usageCountUL", - &asn_OP_NativeInteger, - asn_DEF_usageCountUL_tags_4, - sizeof(asn_DEF_usageCountUL_tags_4) - /sizeof(asn_DEF_usageCountUL_tags_4[0]) - 1, /* 1 */ - asn_DEF_usageCountUL_tags_4, /* Same as above */ - sizeof(asn_DEF_usageCountUL_tags_4) - /sizeof(asn_DEF_usageCountUL_tags_4[0]), /* 2 */ - { 0, &asn_PER_type_usageCountUL_constr_4, usageCountUL_4_constraint }, - 0, 0, /* No members */ - &asn_SPC_usageCountUL_specs_4 /* Additional specs */ -}; - -static const asn_INTEGER_specifics_t asn_SPC_usageCountDL_specs_5 = { - 0, 0, 0, 0, 0, - 0, /* Native long size */ - 1 /* Unsigned representation */ -}; -static const ber_tlv_tag_t asn_DEF_usageCountDL_tags_5[] = { - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_usageCountDL_5 = { - "usageCountDL", - "usageCountDL", - &asn_OP_NativeInteger, - asn_DEF_usageCountDL_tags_5, - sizeof(asn_DEF_usageCountDL_tags_5) - /sizeof(asn_DEF_usageCountDL_tags_5[0]) - 1, /* 1 */ - asn_DEF_usageCountDL_tags_5, /* Same as above */ - sizeof(asn_DEF_usageCountDL_tags_5) - /sizeof(asn_DEF_usageCountDL_tags_5[0]), /* 2 */ - { 0, &asn_PER_type_usageCountDL_constr_5, usageCountDL_5_constraint }, - 0, 0, /* No members */ - &asn_SPC_usageCountDL_specs_5 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E_RABUsageReport_Item_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABUsageReport_Item, startTimeStamp), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_OCTET_STRING, - 0, - { 0, &asn_PER_memb_startTimeStamp_constr_2, memb_startTimeStamp_constraint_1 }, - 0, 0, /* No default value */ - "startTimeStamp" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABUsageReport_Item, endTimeStamp), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_OCTET_STRING, - 0, - { 0, &asn_PER_memb_endTimeStamp_constr_3, memb_endTimeStamp_constraint_1 }, - 0, 0, /* No default value */ - "endTimeStamp" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABUsageReport_Item, usageCountUL), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_usageCountUL_4, - 0, - { 0, &asn_PER_memb_usageCountUL_constr_4, memb_usageCountUL_constraint_1 }, - 0, 0, /* No default value */ - "usageCountUL" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABUsageReport_Item, usageCountDL), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_usageCountDL_5, - 0, - { 0, &asn_PER_memb_usageCountDL_constr_5, memb_usageCountDL_constraint_1 }, - 0, 0, /* No default value */ - "usageCountDL" - }, - { ATF_POINTER, 1, offsetof(struct E_RABUsageReport_Item, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (4 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P141, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_E_RABUsageReport_Item_oms_1[] = { 4 }; -static const ber_tlv_tag_t asn_DEF_E_RABUsageReport_Item_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABUsageReport_Item_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* startTimeStamp */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* endTimeStamp */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* usageCountUL */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* usageCountDL */ - { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABUsageReport_Item_specs_1 = { - sizeof(struct E_RABUsageReport_Item), - offsetof(struct E_RABUsageReport_Item, _asn_ctx), - asn_MAP_E_RABUsageReport_Item_tag2el_1, - 5, /* Count of tags in the map */ - asn_MAP_E_RABUsageReport_Item_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 5, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABUsageReport_Item = { - "E-RABUsageReport-Item", - "E-RABUsageReport-Item", - &asn_OP_SEQUENCE, - asn_DEF_E_RABUsageReport_Item_tags_1, - sizeof(asn_DEF_E_RABUsageReport_Item_tags_1) - /sizeof(asn_DEF_E_RABUsageReport_Item_tags_1[0]), /* 1 */ - asn_DEF_E_RABUsageReport_Item_tags_1, /* Same as above */ - sizeof(asn_DEF_E_RABUsageReport_Item_tags_1) - /sizeof(asn_DEF_E_RABUsageReport_Item_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABUsageReport_Item_1, - 5, /* Elements count */ - &asn_SPC_E_RABUsageReport_Item_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/E-RABUsageReport-Item.h b/e2sim/previous/ASN1c/E-RABUsageReport-Item.h deleted file mode 100644 index cde197b..0000000 --- a/e2sim/previous/ASN1c/E-RABUsageReport-Item.h +++ /dev/null @@ -1,72 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E_RABUsageReport_Item_H_ -#define _E_RABUsageReport_Item_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "OCTET_STRING.h" -#include "NativeInteger.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* E-RABUsageReport-Item */ -typedef struct E_RABUsageReport_Item { - OCTET_STRING_t startTimeStamp; - OCTET_STRING_t endTimeStamp; - unsigned long usageCountUL; - unsigned long usageCountDL; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABUsageReport_Item_t; - -/* Implementation */ -/* extern asn_TYPE_descriptor_t asn_DEF_usageCountUL_4; // (Use -fall-defs-global to expose) */ -/* extern asn_TYPE_descriptor_t asn_DEF_usageCountDL_5; // (Use -fall-defs-global to expose) */ -extern asn_TYPE_descriptor_t asn_DEF_E_RABUsageReport_Item; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABUsageReport_Item_specs_1; -extern asn_TYPE_member_t asn_MBR_E_RABUsageReport_Item_1[5]; - -#ifdef __cplusplus -} -#endif - -#endif /* _E_RABUsageReport_Item_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E-RABUsageReportList.c b/e2sim/previous/ASN1c/E-RABUsageReportList.c deleted file mode 100644 index d6f246a..0000000 --- a/e2sim/previous/ASN1c/E-RABUsageReportList.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E-RABUsageReportList.h" - -#include "ProtocolIE-Single-Container.h" -asn_per_constraints_t asn_PER_type_E_RABUsageReportList_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 1, 1, 1, 2 } /* (SIZE(1..2)) */, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_E_RABUsageReportList_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ProtocolIE_Single_Container_122P47, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABUsageReportList_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_E_RABUsageReportList_specs_1 = { - sizeof(struct E_RABUsageReportList), - offsetof(struct E_RABUsageReportList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABUsageReportList = { - "E-RABUsageReportList", - "E-RABUsageReportList", - &asn_OP_SEQUENCE_OF, - asn_DEF_E_RABUsageReportList_tags_1, - sizeof(asn_DEF_E_RABUsageReportList_tags_1) - /sizeof(asn_DEF_E_RABUsageReportList_tags_1[0]), /* 1 */ - asn_DEF_E_RABUsageReportList_tags_1, /* Same as above */ - sizeof(asn_DEF_E_RABUsageReportList_tags_1) - /sizeof(asn_DEF_E_RABUsageReportList_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_E_RABUsageReportList_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_E_RABUsageReportList_1, - 1, /* Single element */ - &asn_SPC_E_RABUsageReportList_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/E-RABUsageReportList.h b/e2sim/previous/ASN1c/E-RABUsageReportList.h deleted file mode 100644 index 1d4a26e..0000000 --- a/e2sim/previous/ASN1c/E-RABUsageReportList.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E_RABUsageReportList_H_ -#define _E_RABUsageReportList_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolIE_Single_Container; - -/* E-RABUsageReportList */ -typedef struct E_RABUsageReportList { - A_SEQUENCE_OF(struct ProtocolIE_Single_Container) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABUsageReportList_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E_RABUsageReportList; -extern asn_SET_OF_specifics_t asn_SPC_E_RABUsageReportList_specs_1; -extern asn_TYPE_member_t asn_MBR_E_RABUsageReportList_1[1]; -extern asn_per_constraints_t asn_PER_type_E_RABUsageReportList_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _E_RABUsageReportList_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E-RABs-Admitted-Item.c b/e2sim/previous/ASN1c/E-RABs-Admitted-Item.c deleted file mode 100644 index b57fc16..0000000 --- a/e2sim/previous/ASN1c/E-RABs-Admitted-Item.c +++ /dev/null @@ -1,102 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E-RABs-Admitted-Item.h" - -#include "GTPtunnelEndpoint.h" -#include "ProtocolExtensionContainer.h" -static asn_TYPE_member_t asn_MBR_E_RABs_Admitted_Item_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_Item, e_RAB_ID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E_RAB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "e-RAB-ID" - }, - { ATF_POINTER, 3, offsetof(struct E_RABs_Admitted_Item, uL_GTP_TunnelEndpoint), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GTPtunnelEndpoint, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "uL-GTP-TunnelEndpoint" - }, - { ATF_POINTER, 2, offsetof(struct E_RABs_Admitted_Item, dL_GTP_TunnelEndpoint), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GTPtunnelEndpoint, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "dL-GTP-TunnelEndpoint" - }, - { ATF_POINTER, 1, offsetof(struct E_RABs_Admitted_Item, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P5, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_E_RABs_Admitted_Item_oms_1[] = { 1, 2, 3 }; -static const ber_tlv_tag_t asn_DEF_E_RABs_Admitted_Item_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_Admitted_Item_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e-RAB-ID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* uL-GTP-TunnelEndpoint */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* dL-GTP-TunnelEndpoint */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_Item_specs_1 = { - sizeof(struct E_RABs_Admitted_Item), - offsetof(struct E_RABs_Admitted_Item, _asn_ctx), - asn_MAP_E_RABs_Admitted_Item_tag2el_1, - 4, /* Count of tags in the map */ - asn_MAP_E_RABs_Admitted_Item_oms_1, /* Optional members */ - 3, 0, /* Root/Additions */ - 4, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_Item = { - "E-RABs-Admitted-Item", - "E-RABs-Admitted-Item", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_Admitted_Item_tags_1, - sizeof(asn_DEF_E_RABs_Admitted_Item_tags_1) - /sizeof(asn_DEF_E_RABs_Admitted_Item_tags_1[0]), /* 1 */ - asn_DEF_E_RABs_Admitted_Item_tags_1, /* Same as above */ - sizeof(asn_DEF_E_RABs_Admitted_Item_tags_1) - /sizeof(asn_DEF_E_RABs_Admitted_Item_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_Admitted_Item_1, - 4, /* Elements count */ - &asn_SPC_E_RABs_Admitted_Item_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/E-RABs-Admitted-Item.h b/e2sim/previous/ASN1c/E-RABs-Admitted-Item.h deleted file mode 100644 index 5f67e0b..0000000 --- a/e2sim/previous/ASN1c/E-RABs-Admitted-Item.h +++ /dev/null @@ -1,67 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E_RABs_Admitted_Item_H_ -#define _E_RABs_Admitted_Item_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "E-RAB-ID.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct GTPtunnelEndpoint; -struct ProtocolExtensionContainer; - -/* E-RABs-Admitted-Item */ -typedef struct E_RABs_Admitted_Item { - E_RAB_ID_t e_RAB_ID; - struct GTPtunnelEndpoint *uL_GTP_TunnelEndpoint; /* OPTIONAL */ - struct GTPtunnelEndpoint *dL_GTP_TunnelEndpoint; /* OPTIONAL */ - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_Admitted_Item_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_Item; - -#ifdef __cplusplus -} -#endif - -#endif /* _E_RABs_Admitted_Item_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E-RABs-Admitted-List.c b/e2sim/previous/ASN1c/E-RABs-Admitted-List.c deleted file mode 100644 index 1f00dbd..0000000 --- a/e2sim/previous/ASN1c/E-RABs-Admitted-List.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E-RABs-Admitted-List.h" - -#include "ProtocolIE-Single-Container.h" -static asn_per_constraints_t asn_PER_type_E_RABs_Admitted_List_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 8, 8, 1, 256 } /* (SIZE(1..256)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_E_RABs_Admitted_List_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ProtocolIE_Single_Container_122P7, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_Admitted_List_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_E_RABs_Admitted_List_specs_1 = { - sizeof(struct E_RABs_Admitted_List), - offsetof(struct E_RABs_Admitted_List, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_List = { - "E-RABs-Admitted-List", - "E-RABs-Admitted-List", - &asn_OP_SEQUENCE_OF, - asn_DEF_E_RABs_Admitted_List_tags_1, - sizeof(asn_DEF_E_RABs_Admitted_List_tags_1) - /sizeof(asn_DEF_E_RABs_Admitted_List_tags_1[0]), /* 1 */ - asn_DEF_E_RABs_Admitted_List_tags_1, /* Same as above */ - sizeof(asn_DEF_E_RABs_Admitted_List_tags_1) - /sizeof(asn_DEF_E_RABs_Admitted_List_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_E_RABs_Admitted_List_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_E_RABs_Admitted_List_1, - 1, /* Single element */ - &asn_SPC_E_RABs_Admitted_List_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/E-RABs-Admitted-List.h b/e2sim/previous/ASN1c/E-RABs-Admitted-List.h deleted file mode 100644 index 2451eb5..0000000 --- a/e2sim/previous/ASN1c/E-RABs-Admitted-List.h +++ /dev/null @@ -1,59 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E_RABs_Admitted_List_H_ -#define _E_RABs_Admitted_List_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolIE_Single_Container; - -/* E-RABs-Admitted-List */ -typedef struct E_RABs_Admitted_List { - A_SEQUENCE_OF(struct ProtocolIE_Single_Container) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_Admitted_List_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_List; - -#ifdef __cplusplus -} -#endif - -#endif /* _E_RABs_Admitted_List_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-Item-SCG-Bearer.c b/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-Item-SCG-Bearer.c deleted file mode 100644 index 30d9ef4..0000000 --- a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-Item-SCG-Bearer.c +++ /dev/null @@ -1,112 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E-RABs-Admitted-ToBeAdded-Item-SCG-Bearer.h" - -#include "GTPtunnelEndpoint.h" -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeAdded_Item_SCG_Bearer_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_Item_SCG_Bearer, e_RAB_ID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E_RAB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "e-RAB-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_Item_SCG_Bearer, s1_DL_GTPtunnelEndpoint), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GTPtunnelEndpoint, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "s1-DL-GTPtunnelEndpoint" - }, - { ATF_POINTER, 3, offsetof(struct E_RABs_Admitted_ToBeAdded_Item_SCG_Bearer, dL_Forwarding_GTPtunnelEndpoint), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GTPtunnelEndpoint, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "dL-Forwarding-GTPtunnelEndpoint" - }, - { ATF_POINTER, 2, offsetof(struct E_RABs_Admitted_ToBeAdded_Item_SCG_Bearer, uL_Forwarding_GTPtunnelEndpoint), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GTPtunnelEndpoint, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "uL-Forwarding-GTPtunnelEndpoint" - }, - { ATF_POINTER, 1, offsetof(struct E_RABs_Admitted_ToBeAdded_Item_SCG_Bearer, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (4 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P19, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_E_RABs_Admitted_ToBeAdded_Item_SCG_Bearer_oms_1[] = { 2, 3, 4 }; -static const ber_tlv_tag_t asn_DEF_E_RABs_Admitted_ToBeAdded_Item_SCG_Bearer_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_Admitted_ToBeAdded_Item_SCG_Bearer_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e-RAB-ID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* s1-DL-GTPtunnelEndpoint */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* dL-Forwarding-GTPtunnelEndpoint */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* uL-Forwarding-GTPtunnelEndpoint */ - { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeAdded_Item_SCG_Bearer_specs_1 = { - sizeof(struct E_RABs_Admitted_ToBeAdded_Item_SCG_Bearer), - offsetof(struct E_RABs_Admitted_ToBeAdded_Item_SCG_Bearer, _asn_ctx), - asn_MAP_E_RABs_Admitted_ToBeAdded_Item_SCG_Bearer_tag2el_1, - 5, /* Count of tags in the map */ - asn_MAP_E_RABs_Admitted_ToBeAdded_Item_SCG_Bearer_oms_1, /* Optional members */ - 3, 0, /* Root/Additions */ - 5, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeAdded_Item_SCG_Bearer = { - "E-RABs-Admitted-ToBeAdded-Item-SCG-Bearer", - "E-RABs-Admitted-ToBeAdded-Item-SCG-Bearer", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_Admitted_ToBeAdded_Item_SCG_Bearer_tags_1, - sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_Item_SCG_Bearer_tags_1) - /sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_Item_SCG_Bearer_tags_1[0]), /* 1 */ - asn_DEF_E_RABs_Admitted_ToBeAdded_Item_SCG_Bearer_tags_1, /* Same as above */ - sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_Item_SCG_Bearer_tags_1) - /sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_Item_SCG_Bearer_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_Admitted_ToBeAdded_Item_SCG_Bearer_1, - 5, /* Elements count */ - &asn_SPC_E_RABs_Admitted_ToBeAdded_Item_SCG_Bearer_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-Item-SCG-Bearer.h b/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-Item-SCG-Bearer.h deleted file mode 100644 index a6b3c14..0000000 --- a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-Item-SCG-Bearer.h +++ /dev/null @@ -1,71 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E_RABs_Admitted_ToBeAdded_Item_SCG_Bearer_H_ -#define _E_RABs_Admitted_ToBeAdded_Item_SCG_Bearer_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "E-RAB-ID.h" -#include "GTPtunnelEndpoint.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct GTPtunnelEndpoint; -struct ProtocolExtensionContainer; - -/* E-RABs-Admitted-ToBeAdded-Item-SCG-Bearer */ -typedef struct E_RABs_Admitted_ToBeAdded_Item_SCG_Bearer { - E_RAB_ID_t e_RAB_ID; - GTPtunnelEndpoint_t s1_DL_GTPtunnelEndpoint; - struct GTPtunnelEndpoint *dL_Forwarding_GTPtunnelEndpoint; /* OPTIONAL */ - struct GTPtunnelEndpoint *uL_Forwarding_GTPtunnelEndpoint; /* OPTIONAL */ - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_Admitted_ToBeAdded_Item_SCG_Bearer_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeAdded_Item_SCG_Bearer; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeAdded_Item_SCG_Bearer_specs_1; -extern asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeAdded_Item_SCG_Bearer_1[5]; - -#ifdef __cplusplus -} -#endif - -#endif /* _E_RABs_Admitted_ToBeAdded_Item_SCG_Bearer_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-Item-Split-Bearer.c b/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-Item-Split-Bearer.c deleted file mode 100644 index 9d4e3db..0000000 --- a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-Item-Split-Bearer.c +++ /dev/null @@ -1,91 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E-RABs-Admitted-ToBeAdded-Item-Split-Bearer.h" - -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeAdded_Item_Split_Bearer_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_Item_Split_Bearer, e_RAB_ID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E_RAB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "e-RAB-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_Item_Split_Bearer, seNB_GTPtunnelEndpoint), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GTPtunnelEndpoint, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "seNB-GTPtunnelEndpoint" - }, - { ATF_POINTER, 1, offsetof(struct E_RABs_Admitted_ToBeAdded_Item_Split_Bearer, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P20, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_E_RABs_Admitted_ToBeAdded_Item_Split_Bearer_oms_1[] = { 2 }; -static const ber_tlv_tag_t asn_DEF_E_RABs_Admitted_ToBeAdded_Item_Split_Bearer_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_Admitted_ToBeAdded_Item_Split_Bearer_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e-RAB-ID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* seNB-GTPtunnelEndpoint */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeAdded_Item_Split_Bearer_specs_1 = { - sizeof(struct E_RABs_Admitted_ToBeAdded_Item_Split_Bearer), - offsetof(struct E_RABs_Admitted_ToBeAdded_Item_Split_Bearer, _asn_ctx), - asn_MAP_E_RABs_Admitted_ToBeAdded_Item_Split_Bearer_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_E_RABs_Admitted_ToBeAdded_Item_Split_Bearer_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeAdded_Item_Split_Bearer = { - "E-RABs-Admitted-ToBeAdded-Item-Split-Bearer", - "E-RABs-Admitted-ToBeAdded-Item-Split-Bearer", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_Admitted_ToBeAdded_Item_Split_Bearer_tags_1, - sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_Item_Split_Bearer_tags_1) - /sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_Item_Split_Bearer_tags_1[0]), /* 1 */ - asn_DEF_E_RABs_Admitted_ToBeAdded_Item_Split_Bearer_tags_1, /* Same as above */ - sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_Item_Split_Bearer_tags_1) - /sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_Item_Split_Bearer_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_Admitted_ToBeAdded_Item_Split_Bearer_1, - 3, /* Elements count */ - &asn_SPC_E_RABs_Admitted_ToBeAdded_Item_Split_Bearer_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-Item-Split-Bearer.h b/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-Item-Split-Bearer.h deleted file mode 100644 index d475930..0000000 --- a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-Item-Split-Bearer.h +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E_RABs_Admitted_ToBeAdded_Item_Split_Bearer_H_ -#define _E_RABs_Admitted_ToBeAdded_Item_Split_Bearer_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "E-RAB-ID.h" -#include "GTPtunnelEndpoint.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* E-RABs-Admitted-ToBeAdded-Item-Split-Bearer */ -typedef struct E_RABs_Admitted_ToBeAdded_Item_Split_Bearer { - E_RAB_ID_t e_RAB_ID; - GTPtunnelEndpoint_t seNB_GTPtunnelEndpoint; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_Admitted_ToBeAdded_Item_Split_Bearer_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeAdded_Item_Split_Bearer; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeAdded_Item_Split_Bearer_specs_1; -extern asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeAdded_Item_Split_Bearer_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _E_RABs_Admitted_ToBeAdded_Item_Split_Bearer_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-Item.c b/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-Item.c deleted file mode 100644 index b005660..0000000 --- a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-Item.c +++ /dev/null @@ -1,82 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E-RABs-Admitted-ToBeAdded-Item.h" - -#include "E-RABs-Admitted-ToBeAdded-Item-SCG-Bearer.h" -#include "E-RABs-Admitted-ToBeAdded-Item-Split-Bearer.h" -static asn_per_constraints_t asn_PER_type_E_RABs_Admitted_ToBeAdded_Item_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeAdded_Item_1[] = { - { ATF_POINTER, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_Item, choice.sCG_Bearer), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E_RABs_Admitted_ToBeAdded_Item_SCG_Bearer, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "sCG-Bearer" - }, - { ATF_POINTER, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_Item, choice.split_Bearer), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E_RABs_Admitted_ToBeAdded_Item_Split_Bearer, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "split-Bearer" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_Admitted_ToBeAdded_Item_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sCG-Bearer */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* split-Bearer */ -}; -static asn_CHOICE_specifics_t asn_SPC_E_RABs_Admitted_ToBeAdded_Item_specs_1 = { - sizeof(struct E_RABs_Admitted_ToBeAdded_Item), - offsetof(struct E_RABs_Admitted_ToBeAdded_Item, _asn_ctx), - offsetof(struct E_RABs_Admitted_ToBeAdded_Item, present), - sizeof(((struct E_RABs_Admitted_ToBeAdded_Item *)0)->present), - asn_MAP_E_RABs_Admitted_ToBeAdded_Item_tag2el_1, - 2, /* Count of tags in the map */ - 0, 0, - 2 /* Extensions start */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeAdded_Item = { - "E-RABs-Admitted-ToBeAdded-Item", - "E-RABs-Admitted-ToBeAdded-Item", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, &asn_PER_type_E_RABs_Admitted_ToBeAdded_Item_constr_1, CHOICE_constraint }, - asn_MBR_E_RABs_Admitted_ToBeAdded_Item_1, - 2, /* Elements count */ - &asn_SPC_E_RABs_Admitted_ToBeAdded_Item_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-Item.h b/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-Item.h deleted file mode 100644 index a11858a..0000000 --- a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-Item.h +++ /dev/null @@ -1,76 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E_RABs_Admitted_ToBeAdded_Item_H_ -#define _E_RABs_Admitted_ToBeAdded_Item_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "constr_CHOICE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum E_RABs_Admitted_ToBeAdded_Item_PR { - E_RABs_Admitted_ToBeAdded_Item_PR_NOTHING, /* No components present */ - E_RABs_Admitted_ToBeAdded_Item_PR_sCG_Bearer, - E_RABs_Admitted_ToBeAdded_Item_PR_split_Bearer - /* Extensions may appear below */ - -} E_RABs_Admitted_ToBeAdded_Item_PR; - -/* Forward declarations */ -struct E_RABs_Admitted_ToBeAdded_Item_SCG_Bearer; -struct E_RABs_Admitted_ToBeAdded_Item_Split_Bearer; - -/* E-RABs-Admitted-ToBeAdded-Item */ -typedef struct E_RABs_Admitted_ToBeAdded_Item { - E_RABs_Admitted_ToBeAdded_Item_PR present; - union E_RABs_Admitted_ToBeAdded_Item_u { - struct E_RABs_Admitted_ToBeAdded_Item_SCG_Bearer *sCG_Bearer; - struct E_RABs_Admitted_ToBeAdded_Item_Split_Bearer *split_Bearer; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_Admitted_ToBeAdded_Item_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeAdded_Item; - -#ifdef __cplusplus -} -#endif - -#endif /* _E_RABs_Admitted_ToBeAdded_Item_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-List.c b/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-List.c deleted file mode 100644 index 180acd0..0000000 --- a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-List.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E-RABs-Admitted-ToBeAdded-List.h" - -#include "ProtocolIE-Single-Container.h" -static asn_per_constraints_t asn_PER_type_E_RABs_Admitted_ToBeAdded_List_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 8, 8, 1, 256 } /* (SIZE(1..256)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeAdded_List_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ProtocolIE_Single_Container_122P16, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_Admitted_ToBeAdded_List_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_E_RABs_Admitted_ToBeAdded_List_specs_1 = { - sizeof(struct E_RABs_Admitted_ToBeAdded_List), - offsetof(struct E_RABs_Admitted_ToBeAdded_List, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeAdded_List = { - "E-RABs-Admitted-ToBeAdded-List", - "E-RABs-Admitted-ToBeAdded-List", - &asn_OP_SEQUENCE_OF, - asn_DEF_E_RABs_Admitted_ToBeAdded_List_tags_1, - sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_List_tags_1) - /sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_List_tags_1[0]), /* 1 */ - asn_DEF_E_RABs_Admitted_ToBeAdded_List_tags_1, /* Same as above */ - sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_List_tags_1) - /sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_List_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_E_RABs_Admitted_ToBeAdded_List_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_E_RABs_Admitted_ToBeAdded_List_1, - 1, /* Single element */ - &asn_SPC_E_RABs_Admitted_ToBeAdded_List_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-List.h b/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-List.h deleted file mode 100644 index a558e33..0000000 --- a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-List.h +++ /dev/null @@ -1,59 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E_RABs_Admitted_ToBeAdded_List_H_ -#define _E_RABs_Admitted_ToBeAdded_List_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolIE_Single_Container; - -/* E-RABs-Admitted-ToBeAdded-List */ -typedef struct E_RABs_Admitted_ToBeAdded_List { - A_SEQUENCE_OF(struct ProtocolIE_Single_Container) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_Admitted_ToBeAdded_List_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeAdded_List; - -#ifdef __cplusplus -} -#endif - -#endif /* _E_RABs_Admitted_ToBeAdded_List_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-ModAckItem-SCG-Bearer.c b/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-ModAckItem-SCG-Bearer.c deleted file mode 100644 index 9dbc7d0..0000000 --- a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-ModAckItem-SCG-Bearer.c +++ /dev/null @@ -1,112 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E-RABs-Admitted-ToBeAdded-ModAckItem-SCG-Bearer.h" - -#include "GTPtunnelEndpoint.h" -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_Bearer_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_Bearer, e_RAB_ID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E_RAB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "e-RAB-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_Bearer, s1_DL_GTPtunnelEndpoint), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GTPtunnelEndpoint, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "s1-DL-GTPtunnelEndpoint" - }, - { ATF_POINTER, 3, offsetof(struct E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_Bearer, dL_Forwarding_GTPtunnelEndpoint), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GTPtunnelEndpoint, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "dL-Forwarding-GTPtunnelEndpoint" - }, - { ATF_POINTER, 2, offsetof(struct E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_Bearer, uL_Forwarding_GTPtunnelEndpoint), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GTPtunnelEndpoint, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "uL-Forwarding-GTPtunnelEndpoint" - }, - { ATF_POINTER, 1, offsetof(struct E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_Bearer, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (4 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P30, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_Bearer_oms_1[] = { 2, 3, 4 }; -static const ber_tlv_tag_t asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_Bearer_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_Bearer_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e-RAB-ID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* s1-DL-GTPtunnelEndpoint */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* dL-Forwarding-GTPtunnelEndpoint */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* uL-Forwarding-GTPtunnelEndpoint */ - { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_Bearer_specs_1 = { - sizeof(struct E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_Bearer), - offsetof(struct E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_Bearer, _asn_ctx), - asn_MAP_E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_Bearer_tag2el_1, - 5, /* Count of tags in the map */ - asn_MAP_E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_Bearer_oms_1, /* Optional members */ - 3, 0, /* Root/Additions */ - 5, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_Bearer = { - "E-RABs-Admitted-ToBeAdded-ModAckItem-SCG-Bearer", - "E-RABs-Admitted-ToBeAdded-ModAckItem-SCG-Bearer", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_Bearer_tags_1, - sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_Bearer_tags_1) - /sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_Bearer_tags_1[0]), /* 1 */ - asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_Bearer_tags_1, /* Same as above */ - sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_Bearer_tags_1) - /sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_Bearer_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_Bearer_1, - 5, /* Elements count */ - &asn_SPC_E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_Bearer_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-ModAckItem-SCG-Bearer.h b/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-ModAckItem-SCG-Bearer.h deleted file mode 100644 index 2493347..0000000 --- a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-ModAckItem-SCG-Bearer.h +++ /dev/null @@ -1,71 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_Bearer_H_ -#define _E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_Bearer_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "E-RAB-ID.h" -#include "GTPtunnelEndpoint.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct GTPtunnelEndpoint; -struct ProtocolExtensionContainer; - -/* E-RABs-Admitted-ToBeAdded-ModAckItem-SCG-Bearer */ -typedef struct E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_Bearer { - E_RAB_ID_t e_RAB_ID; - GTPtunnelEndpoint_t s1_DL_GTPtunnelEndpoint; - struct GTPtunnelEndpoint *dL_Forwarding_GTPtunnelEndpoint; /* OPTIONAL */ - struct GTPtunnelEndpoint *uL_Forwarding_GTPtunnelEndpoint; /* OPTIONAL */ - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_Bearer_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_Bearer; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_Bearer_specs_1; -extern asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_Bearer_1[5]; - -#ifdef __cplusplus -} -#endif - -#endif /* _E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_Bearer_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-ModAckItem-Split-Bearer.c b/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-ModAckItem-Split-Bearer.c deleted file mode 100644 index 2742b80..0000000 --- a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-ModAckItem-Split-Bearer.c +++ /dev/null @@ -1,91 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E-RABs-Admitted-ToBeAdded-ModAckItem-Split-Bearer.h" - -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeAdded_ModAckItem_Split_Bearer_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_ModAckItem_Split_Bearer, e_RAB_ID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E_RAB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "e-RAB-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_ModAckItem_Split_Bearer, seNB_GTPtunnelEndpoint), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GTPtunnelEndpoint, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "seNB-GTPtunnelEndpoint" - }, - { ATF_POINTER, 1, offsetof(struct E_RABs_Admitted_ToBeAdded_ModAckItem_Split_Bearer, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P31, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_E_RABs_Admitted_ToBeAdded_ModAckItem_Split_Bearer_oms_1[] = { 2 }; -static const ber_tlv_tag_t asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckItem_Split_Bearer_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_Admitted_ToBeAdded_ModAckItem_Split_Bearer_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e-RAB-ID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* seNB-GTPtunnelEndpoint */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeAdded_ModAckItem_Split_Bearer_specs_1 = { - sizeof(struct E_RABs_Admitted_ToBeAdded_ModAckItem_Split_Bearer), - offsetof(struct E_RABs_Admitted_ToBeAdded_ModAckItem_Split_Bearer, _asn_ctx), - asn_MAP_E_RABs_Admitted_ToBeAdded_ModAckItem_Split_Bearer_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_E_RABs_Admitted_ToBeAdded_ModAckItem_Split_Bearer_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckItem_Split_Bearer = { - "E-RABs-Admitted-ToBeAdded-ModAckItem-Split-Bearer", - "E-RABs-Admitted-ToBeAdded-ModAckItem-Split-Bearer", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckItem_Split_Bearer_tags_1, - sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckItem_Split_Bearer_tags_1) - /sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckItem_Split_Bearer_tags_1[0]), /* 1 */ - asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckItem_Split_Bearer_tags_1, /* Same as above */ - sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckItem_Split_Bearer_tags_1) - /sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckItem_Split_Bearer_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_Admitted_ToBeAdded_ModAckItem_Split_Bearer_1, - 3, /* Elements count */ - &asn_SPC_E_RABs_Admitted_ToBeAdded_ModAckItem_Split_Bearer_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-ModAckItem-Split-Bearer.h b/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-ModAckItem-Split-Bearer.h deleted file mode 100644 index 87f653c..0000000 --- a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-ModAckItem-Split-Bearer.h +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E_RABs_Admitted_ToBeAdded_ModAckItem_Split_Bearer_H_ -#define _E_RABs_Admitted_ToBeAdded_ModAckItem_Split_Bearer_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "E-RAB-ID.h" -#include "GTPtunnelEndpoint.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* E-RABs-Admitted-ToBeAdded-ModAckItem-Split-Bearer */ -typedef struct E_RABs_Admitted_ToBeAdded_ModAckItem_Split_Bearer { - E_RAB_ID_t e_RAB_ID; - GTPtunnelEndpoint_t seNB_GTPtunnelEndpoint; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_Admitted_ToBeAdded_ModAckItem_Split_Bearer_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckItem_Split_Bearer; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeAdded_ModAckItem_Split_Bearer_specs_1; -extern asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeAdded_ModAckItem_Split_Bearer_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _E_RABs_Admitted_ToBeAdded_ModAckItem_Split_Bearer_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-ModAckItem.c b/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-ModAckItem.c deleted file mode 100644 index a5daae3..0000000 --- a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-ModAckItem.c +++ /dev/null @@ -1,82 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E-RABs-Admitted-ToBeAdded-ModAckItem.h" - -#include "E-RABs-Admitted-ToBeAdded-ModAckItem-SCG-Bearer.h" -#include "E-RABs-Admitted-ToBeAdded-ModAckItem-Split-Bearer.h" -static asn_per_constraints_t asn_PER_type_E_RABs_Admitted_ToBeAdded_ModAckItem_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeAdded_ModAckItem_1[] = { - { ATF_POINTER, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_ModAckItem, choice.sCG_Bearer), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_Bearer, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "sCG-Bearer" - }, - { ATF_POINTER, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_ModAckItem, choice.split_Bearer), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckItem_Split_Bearer, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "split-Bearer" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_Admitted_ToBeAdded_ModAckItem_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sCG-Bearer */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* split-Bearer */ -}; -static asn_CHOICE_specifics_t asn_SPC_E_RABs_Admitted_ToBeAdded_ModAckItem_specs_1 = { - sizeof(struct E_RABs_Admitted_ToBeAdded_ModAckItem), - offsetof(struct E_RABs_Admitted_ToBeAdded_ModAckItem, _asn_ctx), - offsetof(struct E_RABs_Admitted_ToBeAdded_ModAckItem, present), - sizeof(((struct E_RABs_Admitted_ToBeAdded_ModAckItem *)0)->present), - asn_MAP_E_RABs_Admitted_ToBeAdded_ModAckItem_tag2el_1, - 2, /* Count of tags in the map */ - 0, 0, - 2 /* Extensions start */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckItem = { - "E-RABs-Admitted-ToBeAdded-ModAckItem", - "E-RABs-Admitted-ToBeAdded-ModAckItem", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, &asn_PER_type_E_RABs_Admitted_ToBeAdded_ModAckItem_constr_1, CHOICE_constraint }, - asn_MBR_E_RABs_Admitted_ToBeAdded_ModAckItem_1, - 2, /* Elements count */ - &asn_SPC_E_RABs_Admitted_ToBeAdded_ModAckItem_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-ModAckItem.h b/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-ModAckItem.h deleted file mode 100644 index 9877f07..0000000 --- a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-ModAckItem.h +++ /dev/null @@ -1,76 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E_RABs_Admitted_ToBeAdded_ModAckItem_H_ -#define _E_RABs_Admitted_ToBeAdded_ModAckItem_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "constr_CHOICE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum E_RABs_Admitted_ToBeAdded_ModAckItem_PR { - E_RABs_Admitted_ToBeAdded_ModAckItem_PR_NOTHING, /* No components present */ - E_RABs_Admitted_ToBeAdded_ModAckItem_PR_sCG_Bearer, - E_RABs_Admitted_ToBeAdded_ModAckItem_PR_split_Bearer - /* Extensions may appear below */ - -} E_RABs_Admitted_ToBeAdded_ModAckItem_PR; - -/* Forward declarations */ -struct E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_Bearer; -struct E_RABs_Admitted_ToBeAdded_ModAckItem_Split_Bearer; - -/* E-RABs-Admitted-ToBeAdded-ModAckItem */ -typedef struct E_RABs_Admitted_ToBeAdded_ModAckItem { - E_RABs_Admitted_ToBeAdded_ModAckItem_PR present; - union E_RABs_Admitted_ToBeAdded_ModAckItem_u { - struct E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_Bearer *sCG_Bearer; - struct E_RABs_Admitted_ToBeAdded_ModAckItem_Split_Bearer *split_Bearer; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_Admitted_ToBeAdded_ModAckItem_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckItem; - -#ifdef __cplusplus -} -#endif - -#endif /* _E_RABs_Admitted_ToBeAdded_ModAckItem_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-ModAckList.c b/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-ModAckList.c deleted file mode 100644 index 9a4a1ed..0000000 --- a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-ModAckList.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E-RABs-Admitted-ToBeAdded-ModAckList.h" - -#include "ProtocolIE-Single-Container.h" -static asn_per_constraints_t asn_PER_type_E_RABs_Admitted_ToBeAdded_ModAckList_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 8, 8, 1, 256 } /* (SIZE(1..256)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeAdded_ModAckList_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ProtocolIE_Single_Container_122P20, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckList_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_E_RABs_Admitted_ToBeAdded_ModAckList_specs_1 = { - sizeof(struct E_RABs_Admitted_ToBeAdded_ModAckList), - offsetof(struct E_RABs_Admitted_ToBeAdded_ModAckList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckList = { - "E-RABs-Admitted-ToBeAdded-ModAckList", - "E-RABs-Admitted-ToBeAdded-ModAckList", - &asn_OP_SEQUENCE_OF, - asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckList_tags_1, - sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckList_tags_1) - /sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckList_tags_1[0]), /* 1 */ - asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckList_tags_1, /* Same as above */ - sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckList_tags_1) - /sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckList_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_E_RABs_Admitted_ToBeAdded_ModAckList_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_E_RABs_Admitted_ToBeAdded_ModAckList_1, - 1, /* Single element */ - &asn_SPC_E_RABs_Admitted_ToBeAdded_ModAckList_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-ModAckList.h b/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-ModAckList.h deleted file mode 100644 index c754abb..0000000 --- a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-ModAckList.h +++ /dev/null @@ -1,59 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E_RABs_Admitted_ToBeAdded_ModAckList_H_ -#define _E_RABs_Admitted_ToBeAdded_ModAckList_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolIE_Single_Container; - -/* E-RABs-Admitted-ToBeAdded-ModAckList */ -typedef struct E_RABs_Admitted_ToBeAdded_ModAckList { - A_SEQUENCE_OF(struct ProtocolIE_Single_Container) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_Admitted_ToBeAdded_ModAckList_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckList; - -#ifdef __cplusplus -} -#endif - -#endif /* _E_RABs_Admitted_ToBeAdded_ModAckList_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPnotpresent.c b/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPnotpresent.c deleted file mode 100644 index 5fff1a1..0000000 --- a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPnotpresent.c +++ /dev/null @@ -1,92 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPnotpresent.h" - -#include "GTPtunnelEndpoint.h" -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresent_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresent, sgNB_DL_GTP_TEIDatSCG), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GTPtunnelEndpoint, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "sgNB-DL-GTP-TEIDatSCG" - }, - { ATF_POINTER, 2, offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresent, secondary_sgNB_DL_GTP_TEIDatSCG), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GTPtunnelEndpoint, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "secondary-sgNB-DL-GTP-TEIDatSCG" - }, - { ATF_POINTER, 1, offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresent, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P49, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresent_oms_1[] = { 1, 2 }; -static const ber_tlv_tag_t asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresent_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresent_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sgNB-DL-GTP-TEIDatSCG */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* secondary-sgNB-DL-GTP-TEIDatSCG */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresent_specs_1 = { - sizeof(struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresent), - offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresent, _asn_ctx), - asn_MAP_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresent_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresent_oms_1, /* Optional members */ - 2, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresent = { - "E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPnotpresent", - "E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPnotpresent", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresent_tags_1, - sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresent_tags_1) - /sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresent_tags_1[0]), /* 1 */ - asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresent_tags_1, /* Same as above */ - sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresent_tags_1) - /sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresent_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresent_1, - 3, /* Elements count */ - &asn_SPC_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresent_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPnotpresent.h b/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPnotpresent.h deleted file mode 100644 index ca52542..0000000 --- a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPnotpresent.h +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresent_H_ -#define _E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresent_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "GTPtunnelEndpoint.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct GTPtunnelEndpoint; -struct ProtocolExtensionContainer; - -/* E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPnotpresent */ -typedef struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresent { - GTPtunnelEndpoint_t sgNB_DL_GTP_TEIDatSCG; - struct GTPtunnelEndpoint *secondary_sgNB_DL_GTP_TEIDatSCG; /* OPTIONAL */ - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresent_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresent; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresent_specs_1; -extern asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresent_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresent_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPpresent.c b/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPpresent.c deleted file mode 100644 index d73dff9..0000000 --- a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPpresent.c +++ /dev/null @@ -1,144 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPpresent.h" - -#include "GTPtunnelEndpoint.h" -#include "E-RAB-Level-QoS-Parameters.h" -#include "ULConfiguration.h" -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresent_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresent, s1_DL_GTPtunnelEndpoint), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GTPtunnelEndpoint, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "s1-DL-GTPtunnelEndpoint" - }, - { ATF_POINTER, 7, offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresent, sgNB_UL_GTP_TEIDatPDCP), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GTPtunnelEndpoint, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "sgNB-UL-GTP-TEIDatPDCP" - }, - { ATF_POINTER, 6, offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresent, rlc_Mode), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RLCMode, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "rlc-Mode" - }, - { ATF_POINTER, 5, offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresent, dL_Forwarding_GTPtunnelEndpoint), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GTPtunnelEndpoint, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "dL-Forwarding-GTPtunnelEndpoint" - }, - { ATF_POINTER, 4, offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresent, uL_Forwarding_GTPtunnelEndpoint), - (ASN_TAG_CLASS_CONTEXT | (4 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GTPtunnelEndpoint, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "uL-Forwarding-GTPtunnelEndpoint" - }, - { ATF_POINTER, 3, offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresent, mCG_E_RAB_Level_QoS_Parameters), - (ASN_TAG_CLASS_CONTEXT | (5 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E_RAB_Level_QoS_Parameters, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "mCG-E-RAB-Level-QoS-Parameters" - }, - { ATF_POINTER, 2, offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresent, uL_Configuration), - (ASN_TAG_CLASS_CONTEXT | (6 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ULConfiguration, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "uL-Configuration" - }, - { ATF_POINTER, 1, offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresent, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (7 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P48, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresent_oms_1[] = { 1, 2, 3, 4, 5, 6, 7 }; -static const ber_tlv_tag_t asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresent_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresent_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* s1-DL-GTPtunnelEndpoint */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* sgNB-UL-GTP-TEIDatPDCP */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* rlc-Mode */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* dL-Forwarding-GTPtunnelEndpoint */ - { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* uL-Forwarding-GTPtunnelEndpoint */ - { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* mCG-E-RAB-Level-QoS-Parameters */ - { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* uL-Configuration */ - { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresent_specs_1 = { - sizeof(struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresent), - offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresent, _asn_ctx), - asn_MAP_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresent_tag2el_1, - 8, /* Count of tags in the map */ - asn_MAP_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresent_oms_1, /* Optional members */ - 7, 0, /* Root/Additions */ - 8, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresent = { - "E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPpresent", - "E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPpresent", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresent_tags_1, - sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresent_tags_1) - /sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresent_tags_1[0]), /* 1 */ - asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresent_tags_1, /* Same as above */ - sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresent_tags_1) - /sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresent_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresent_1, - 8, /* Elements count */ - &asn_SPC_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresent_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPpresent.h b/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPpresent.h deleted file mode 100644 index 08db077..0000000 --- a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPpresent.h +++ /dev/null @@ -1,76 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresent_H_ -#define _E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresent_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "GTPtunnelEndpoint.h" -#include "RLCMode.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct GTPtunnelEndpoint; -struct E_RAB_Level_QoS_Parameters; -struct ULConfiguration; -struct ProtocolExtensionContainer; - -/* E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPpresent */ -typedef struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresent { - GTPtunnelEndpoint_t s1_DL_GTPtunnelEndpoint; - struct GTPtunnelEndpoint *sgNB_UL_GTP_TEIDatPDCP; /* OPTIONAL */ - RLCMode_t *rlc_Mode; /* OPTIONAL */ - struct GTPtunnelEndpoint *dL_Forwarding_GTPtunnelEndpoint; /* OPTIONAL */ - struct GTPtunnelEndpoint *uL_Forwarding_GTPtunnelEndpoint; /* OPTIONAL */ - struct E_RAB_Level_QoS_Parameters *mCG_E_RAB_Level_QoS_Parameters; /* OPTIONAL */ - struct ULConfiguration *uL_Configuration; /* OPTIONAL */ - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresent_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresent; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresent_specs_1; -extern asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresent_1[8]; - -#ifdef __cplusplus -} -#endif - -#endif /* _E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresent_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item.c b/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item.c deleted file mode 100644 index 48407f9..0000000 --- a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item.c +++ /dev/null @@ -1,157 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item.h" - -#include "ProtocolExtensionContainer.h" -#include "E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPpresent.h" -#include "E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPnotpresent.h" -static asn_per_constraints_t asn_PER_type_resource_configuration_constr_4 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_resource_configuration_4[] = { - { ATF_POINTER, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item__resource_configuration, choice.sgNBPDCPpresent), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresent, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "sgNBPDCPpresent" - }, - { ATF_POINTER, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item__resource_configuration, choice.sgNBPDCPnotpresent), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresent, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "sgNBPDCPnotpresent" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_resource_configuration_tag2el_4[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sgNBPDCPpresent */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* sgNBPDCPnotpresent */ -}; -static asn_CHOICE_specifics_t asn_SPC_resource_configuration_specs_4 = { - sizeof(struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item__resource_configuration), - offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item__resource_configuration, _asn_ctx), - offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item__resource_configuration, present), - sizeof(((struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item__resource_configuration *)0)->present), - asn_MAP_resource_configuration_tag2el_4, - 2, /* Count of tags in the map */ - 0, 0, - 2 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_resource_configuration_4 = { - "resource-configuration", - "resource-configuration", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, &asn_PER_type_resource_configuration_constr_4, CHOICE_constraint }, - asn_MBR_resource_configuration_4, - 2, /* Elements count */ - &asn_SPC_resource_configuration_specs_4 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item, e_RAB_ID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E_RAB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "e-RAB-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item, en_DC_ResourceConfiguration), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_EN_DC_ResourceConfiguration, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "en-DC-ResourceConfiguration" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item, resource_configuration), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_resource_configuration_4, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "resource-configuration" - }, - { ATF_POINTER, 1, offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P47, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_oms_1[] = { 3 }; -static const ber_tlv_tag_t asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e-RAB-ID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* en-DC-ResourceConfiguration */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* resource-configuration */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_specs_1 = { - sizeof(struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item), - offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item, _asn_ctx), - asn_MAP_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_tag2el_1, - 4, /* Count of tags in the map */ - asn_MAP_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 4, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item = { - "E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item", - "E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_tags_1, - sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_tags_1) - /sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_tags_1[0]), /* 1 */ - asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_tags_1, /* Same as above */ - sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_tags_1) - /sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_1, - 4, /* Elements count */ - &asn_SPC_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item.h b/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item.h deleted file mode 100644 index af4ec29..0000000 --- a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item.h +++ /dev/null @@ -1,92 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_H_ -#define _E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "E-RAB-ID.h" -#include "EN-DC-ResourceConfiguration.h" -#include "constr_CHOICE.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item__resource_configuration_PR { - E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item__resource_configuration_PR_NOTHING, /* No components present */ - E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item__resource_configuration_PR_sgNBPDCPpresent, - E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item__resource_configuration_PR_sgNBPDCPnotpresent - /* Extensions may appear below */ - -} E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item__resource_configuration_PR; - -/* Forward declarations */ -struct ProtocolExtensionContainer; -struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresent; -struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresent; - -/* E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item */ -typedef struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item { - E_RAB_ID_t e_RAB_ID; - EN_DC_ResourceConfiguration_t en_DC_ResourceConfiguration; - struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item__resource_configuration { - E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item__resource_configuration_PR present; - union E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item__resource_configuration_u { - struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresent *sgNBPDCPpresent; - struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresent *sgNBPDCPnotpresent; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } resource_configuration; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item; - -#ifdef __cplusplus -} -#endif - -#endif /* _E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-SgNBAddReqAckList.c b/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-SgNBAddReqAckList.c deleted file mode 100644 index bb1fe9b..0000000 --- a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-SgNBAddReqAckList.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E-RABs-Admitted-ToBeAdded-SgNBAddReqAckList.h" - -#include "ProtocolIE-Single-Container.h" -static asn_per_constraints_t asn_PER_type_E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 8, 8, 1, 256 } /* (SIZE(1..256)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ProtocolIE_Single_Container_122P29, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList_specs_1 = { - sizeof(struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList), - offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList = { - "E-RABs-Admitted-ToBeAdded-SgNBAddReqAckList", - "E-RABs-Admitted-ToBeAdded-SgNBAddReqAckList", - &asn_OP_SEQUENCE_OF, - asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList_tags_1, - sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList_tags_1) - /sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList_tags_1[0]), /* 1 */ - asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList_tags_1, /* Same as above */ - sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList_tags_1) - /sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList_1, - 1, /* Single element */ - &asn_SPC_E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-SgNBAddReqAckList.h b/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-SgNBAddReqAckList.h deleted file mode 100644 index 4f848d6..0000000 --- a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-SgNBAddReqAckList.h +++ /dev/null @@ -1,59 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList_H_ -#define _E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolIE_Single_Container; - -/* E-RABs-Admitted-ToBeAdded-SgNBAddReqAckList */ -typedef struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList { - A_SEQUENCE_OF(struct ProtocolIE_Single_Container) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList; - -#ifdef __cplusplus -} -#endif - -#endif /* _E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPnotpresent.c b/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPnotpresent.c deleted file mode 100644 index 3935b02..0000000 --- a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPnotpresent.c +++ /dev/null @@ -1,92 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPnotpresent.h" - -#include "GTPtunnelEndpoint.h" -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresent_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresent, sgNB_DL_GTP_TEIDatSCG), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GTPtunnelEndpoint, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "sgNB-DL-GTP-TEIDatSCG" - }, - { ATF_POINTER, 2, offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresent, secondary_sgNB_DL_GTP_TEIDatSCG), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GTPtunnelEndpoint, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "secondary-sgNB-DL-GTP-TEIDatSCG" - }, - { ATF_POINTER, 1, offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresent, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P64, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresent_oms_1[] = { 1, 2 }; -static const ber_tlv_tag_t asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresent_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresent_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sgNB-DL-GTP-TEIDatSCG */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* secondary-sgNB-DL-GTP-TEIDatSCG */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresent_specs_1 = { - sizeof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresent), - offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresent, _asn_ctx), - asn_MAP_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresent_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresent_oms_1, /* Optional members */ - 2, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresent = { - "E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPnotpresent", - "E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPnotpresent", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresent_tags_1, - sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresent_tags_1) - /sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresent_tags_1[0]), /* 1 */ - asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresent_tags_1, /* Same as above */ - sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresent_tags_1) - /sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresent_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresent_1, - 3, /* Elements count */ - &asn_SPC_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresent_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPnotpresent.h b/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPnotpresent.h deleted file mode 100644 index d93d473..0000000 --- a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPnotpresent.h +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresent_H_ -#define _E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresent_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "GTPtunnelEndpoint.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct GTPtunnelEndpoint; -struct ProtocolExtensionContainer; - -/* E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPnotpresent */ -typedef struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresent { - GTPtunnelEndpoint_t sgNB_DL_GTP_TEIDatSCG; - struct GTPtunnelEndpoint *secondary_sgNB_DL_GTP_TEIDatSCG; /* OPTIONAL */ - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresent_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresent; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresent_specs_1; -extern asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresent_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresent_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPpresent.c b/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPpresent.c deleted file mode 100644 index 92d9618..0000000 --- a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPpresent.c +++ /dev/null @@ -1,144 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPpresent.h" - -#include "GTPtunnelEndpoint.h" -#include "E-RAB-Level-QoS-Parameters.h" -#include "ULConfiguration.h" -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresent_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresent, s1_DL_GTPtunnelEndpoint), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GTPtunnelEndpoint, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "s1-DL-GTPtunnelEndpoint" - }, - { ATF_POINTER, 7, offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresent, sgNB_UL_GTP_TEIDatPDCP), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GTPtunnelEndpoint, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "sgNB-UL-GTP-TEIDatPDCP" - }, - { ATF_POINTER, 6, offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresent, rlc_Mode), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RLCMode, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "rlc-Mode" - }, - { ATF_POINTER, 5, offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresent, dL_Forwarding_GTPtunnelEndpoint), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GTPtunnelEndpoint, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "dL-Forwarding-GTPtunnelEndpoint" - }, - { ATF_POINTER, 4, offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresent, uL_Forwarding_GTPtunnelEndpoint), - (ASN_TAG_CLASS_CONTEXT | (4 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GTPtunnelEndpoint, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "uL-Forwarding-GTPtunnelEndpoint" - }, - { ATF_POINTER, 3, offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresent, mCG_E_RAB_Level_QoS_Parameters), - (ASN_TAG_CLASS_CONTEXT | (5 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E_RAB_Level_QoS_Parameters, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "mCG-E-RAB-Level-QoS-Parameters" - }, - { ATF_POINTER, 2, offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresent, uL_Configuration), - (ASN_TAG_CLASS_CONTEXT | (6 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ULConfiguration, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "uL-Configuration" - }, - { ATF_POINTER, 1, offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresent, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (7 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P63, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresent_oms_1[] = { 1, 2, 3, 4, 5, 6, 7 }; -static const ber_tlv_tag_t asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresent_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresent_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* s1-DL-GTPtunnelEndpoint */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* sgNB-UL-GTP-TEIDatPDCP */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* rlc-Mode */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* dL-Forwarding-GTPtunnelEndpoint */ - { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* uL-Forwarding-GTPtunnelEndpoint */ - { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* mCG-E-RAB-Level-QoS-Parameters */ - { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* uL-Configuration */ - { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresent_specs_1 = { - sizeof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresent), - offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresent, _asn_ctx), - asn_MAP_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresent_tag2el_1, - 8, /* Count of tags in the map */ - asn_MAP_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresent_oms_1, /* Optional members */ - 7, 0, /* Root/Additions */ - 8, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresent = { - "E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPpresent", - "E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPpresent", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresent_tags_1, - sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresent_tags_1) - /sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresent_tags_1[0]), /* 1 */ - asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresent_tags_1, /* Same as above */ - sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresent_tags_1) - /sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresent_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresent_1, - 8, /* Elements count */ - &asn_SPC_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresent_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPpresent.h b/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPpresent.h deleted file mode 100644 index c336ef2..0000000 --- a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPpresent.h +++ /dev/null @@ -1,76 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresent_H_ -#define _E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresent_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "GTPtunnelEndpoint.h" -#include "RLCMode.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct GTPtunnelEndpoint; -struct E_RAB_Level_QoS_Parameters; -struct ULConfiguration; -struct ProtocolExtensionContainer; - -/* E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPpresent */ -typedef struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresent { - GTPtunnelEndpoint_t s1_DL_GTPtunnelEndpoint; - struct GTPtunnelEndpoint *sgNB_UL_GTP_TEIDatPDCP; /* OPTIONAL */ - RLCMode_t *rlc_Mode; /* OPTIONAL */ - struct GTPtunnelEndpoint *dL_Forwarding_GTPtunnelEndpoint; /* OPTIONAL */ - struct GTPtunnelEndpoint *uL_Forwarding_GTPtunnelEndpoint; /* OPTIONAL */ - struct E_RAB_Level_QoS_Parameters *mCG_E_RAB_Level_QoS_Parameters; /* OPTIONAL */ - struct ULConfiguration *uL_Configuration; /* OPTIONAL */ - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresent_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresent; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresent_specs_1; -extern asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresent_1[8]; - -#ifdef __cplusplus -} -#endif - -#endif /* _E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresent_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-SgNBModAck-Item.c b/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-SgNBModAck-Item.c deleted file mode 100644 index b4719f6..0000000 --- a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-SgNBModAck-Item.c +++ /dev/null @@ -1,157 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E-RABs-Admitted-ToBeAdded-SgNBModAck-Item.h" - -#include "ProtocolExtensionContainer.h" -#include "E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPpresent.h" -#include "E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPnotpresent.h" -static asn_per_constraints_t asn_PER_type_resource_configuration_constr_4 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_resource_configuration_4[] = { - { ATF_POINTER, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item__resource_configuration, choice.sgNBPDCPpresent), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresent, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "sgNBPDCPpresent" - }, - { ATF_POINTER, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item__resource_configuration, choice.sgNBPDCPnotpresent), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresent, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "sgNBPDCPnotpresent" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_resource_configuration_tag2el_4[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sgNBPDCPpresent */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* sgNBPDCPnotpresent */ -}; -static asn_CHOICE_specifics_t asn_SPC_resource_configuration_specs_4 = { - sizeof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item__resource_configuration), - offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item__resource_configuration, _asn_ctx), - offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item__resource_configuration, present), - sizeof(((struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item__resource_configuration *)0)->present), - asn_MAP_resource_configuration_tag2el_4, - 2, /* Count of tags in the map */ - 0, 0, - 2 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_resource_configuration_4 = { - "resource-configuration", - "resource-configuration", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, &asn_PER_type_resource_configuration_constr_4, CHOICE_constraint }, - asn_MBR_resource_configuration_4, - 2, /* Elements count */ - &asn_SPC_resource_configuration_specs_4 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item, e_RAB_ID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E_RAB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "e-RAB-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item, en_DC_ResourceConfiguration), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_EN_DC_ResourceConfiguration, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "en-DC-ResourceConfiguration" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item, resource_configuration), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_resource_configuration_4, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "resource-configuration" - }, - { ATF_POINTER, 1, offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P62, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_oms_1[] = { 3 }; -static const ber_tlv_tag_t asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e-RAB-ID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* en-DC-ResourceConfiguration */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* resource-configuration */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_specs_1 = { - sizeof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item), - offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item, _asn_ctx), - asn_MAP_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_tag2el_1, - 4, /* Count of tags in the map */ - asn_MAP_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 4, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item = { - "E-RABs-Admitted-ToBeAdded-SgNBModAck-Item", - "E-RABs-Admitted-ToBeAdded-SgNBModAck-Item", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_tags_1, - sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_tags_1) - /sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_tags_1[0]), /* 1 */ - asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_tags_1, /* Same as above */ - sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_tags_1) - /sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_1, - 4, /* Elements count */ - &asn_SPC_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-SgNBModAck-Item.h b/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-SgNBModAck-Item.h deleted file mode 100644 index 4e26b19..0000000 --- a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-SgNBModAck-Item.h +++ /dev/null @@ -1,92 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_H_ -#define _E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "E-RAB-ID.h" -#include "EN-DC-ResourceConfiguration.h" -#include "constr_CHOICE.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum E_RABs_Admitted_ToBeAdded_SgNBModAck_Item__resource_configuration_PR { - E_RABs_Admitted_ToBeAdded_SgNBModAck_Item__resource_configuration_PR_NOTHING, /* No components present */ - E_RABs_Admitted_ToBeAdded_SgNBModAck_Item__resource_configuration_PR_sgNBPDCPpresent, - E_RABs_Admitted_ToBeAdded_SgNBModAck_Item__resource_configuration_PR_sgNBPDCPnotpresent - /* Extensions may appear below */ - -} E_RABs_Admitted_ToBeAdded_SgNBModAck_Item__resource_configuration_PR; - -/* Forward declarations */ -struct ProtocolExtensionContainer; -struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresent; -struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresent; - -/* E-RABs-Admitted-ToBeAdded-SgNBModAck-Item */ -typedef struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item { - E_RAB_ID_t e_RAB_ID; - EN_DC_ResourceConfiguration_t en_DC_ResourceConfiguration; - struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item__resource_configuration { - E_RABs_Admitted_ToBeAdded_SgNBModAck_Item__resource_configuration_PR present; - union E_RABs_Admitted_ToBeAdded_SgNBModAck_Item__resource_configuration_u { - struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresent *sgNBPDCPpresent; - struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresent *sgNBPDCPnotpresent; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } resource_configuration; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item; - -#ifdef __cplusplus -} -#endif - -#endif /* _E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-SgNBModAckList.c b/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-SgNBModAckList.c deleted file mode 100644 index 736f3d2..0000000 --- a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-SgNBModAckList.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E-RABs-Admitted-ToBeAdded-SgNBModAckList.h" - -#include "ProtocolIE-Single-Container.h" -static asn_per_constraints_t asn_PER_type_E_RABs_Admitted_ToBeAdded_SgNBModAckList_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 8, 8, 1, 256 } /* (SIZE(1..256)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeAdded_SgNBModAckList_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ProtocolIE_Single_Container_122P33, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAckList_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_E_RABs_Admitted_ToBeAdded_SgNBModAckList_specs_1 = { - sizeof(struct E_RABs_Admitted_ToBeAdded_SgNBModAckList), - offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBModAckList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAckList = { - "E-RABs-Admitted-ToBeAdded-SgNBModAckList", - "E-RABs-Admitted-ToBeAdded-SgNBModAckList", - &asn_OP_SEQUENCE_OF, - asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAckList_tags_1, - sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAckList_tags_1) - /sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAckList_tags_1[0]), /* 1 */ - asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAckList_tags_1, /* Same as above */ - sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAckList_tags_1) - /sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAckList_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_E_RABs_Admitted_ToBeAdded_SgNBModAckList_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_E_RABs_Admitted_ToBeAdded_SgNBModAckList_1, - 1, /* Single element */ - &asn_SPC_E_RABs_Admitted_ToBeAdded_SgNBModAckList_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-SgNBModAckList.h b/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-SgNBModAckList.h deleted file mode 100644 index 22b2294..0000000 --- a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeAdded-SgNBModAckList.h +++ /dev/null @@ -1,59 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E_RABs_Admitted_ToBeAdded_SgNBModAckList_H_ -#define _E_RABs_Admitted_ToBeAdded_SgNBModAckList_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolIE_Single_Container; - -/* E-RABs-Admitted-ToBeAdded-SgNBModAckList */ -typedef struct E_RABs_Admitted_ToBeAdded_SgNBModAckList { - A_SEQUENCE_OF(struct ProtocolIE_Single_Container) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_Admitted_ToBeAdded_SgNBModAckList_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAckList; - -#ifdef __cplusplus -} -#endif - -#endif /* _E_RABs_Admitted_ToBeAdded_SgNBModAckList_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeModified-ModAckItem-SCG-Bearer.c b/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeModified-ModAckItem-SCG-Bearer.c deleted file mode 100644 index 24fad6f..0000000 --- a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeModified-ModAckItem-SCG-Bearer.c +++ /dev/null @@ -1,92 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E-RABs-Admitted-ToBeModified-ModAckItem-SCG-Bearer.h" - -#include "GTPtunnelEndpoint.h" -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeModified_ModAckItem_SCG_Bearer_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeModified_ModAckItem_SCG_Bearer, e_RAB_ID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E_RAB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "e-RAB-ID" - }, - { ATF_POINTER, 2, offsetof(struct E_RABs_Admitted_ToBeModified_ModAckItem_SCG_Bearer, s1_DL_GTPtunnelEndpoint), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GTPtunnelEndpoint, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "s1-DL-GTPtunnelEndpoint" - }, - { ATF_POINTER, 1, offsetof(struct E_RABs_Admitted_ToBeModified_ModAckItem_SCG_Bearer, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P32, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_E_RABs_Admitted_ToBeModified_ModAckItem_SCG_Bearer_oms_1[] = { 1, 2 }; -static const ber_tlv_tag_t asn_DEF_E_RABs_Admitted_ToBeModified_ModAckItem_SCG_Bearer_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_Admitted_ToBeModified_ModAckItem_SCG_Bearer_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e-RAB-ID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* s1-DL-GTPtunnelEndpoint */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeModified_ModAckItem_SCG_Bearer_specs_1 = { - sizeof(struct E_RABs_Admitted_ToBeModified_ModAckItem_SCG_Bearer), - offsetof(struct E_RABs_Admitted_ToBeModified_ModAckItem_SCG_Bearer, _asn_ctx), - asn_MAP_E_RABs_Admitted_ToBeModified_ModAckItem_SCG_Bearer_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_E_RABs_Admitted_ToBeModified_ModAckItem_SCG_Bearer_oms_1, /* Optional members */ - 2, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeModified_ModAckItem_SCG_Bearer = { - "E-RABs-Admitted-ToBeModified-ModAckItem-SCG-Bearer", - "E-RABs-Admitted-ToBeModified-ModAckItem-SCG-Bearer", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_Admitted_ToBeModified_ModAckItem_SCG_Bearer_tags_1, - sizeof(asn_DEF_E_RABs_Admitted_ToBeModified_ModAckItem_SCG_Bearer_tags_1) - /sizeof(asn_DEF_E_RABs_Admitted_ToBeModified_ModAckItem_SCG_Bearer_tags_1[0]), /* 1 */ - asn_DEF_E_RABs_Admitted_ToBeModified_ModAckItem_SCG_Bearer_tags_1, /* Same as above */ - sizeof(asn_DEF_E_RABs_Admitted_ToBeModified_ModAckItem_SCG_Bearer_tags_1) - /sizeof(asn_DEF_E_RABs_Admitted_ToBeModified_ModAckItem_SCG_Bearer_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_Admitted_ToBeModified_ModAckItem_SCG_Bearer_1, - 3, /* Elements count */ - &asn_SPC_E_RABs_Admitted_ToBeModified_ModAckItem_SCG_Bearer_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeModified-ModAckItem-SCG-Bearer.h b/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeModified-ModAckItem-SCG-Bearer.h deleted file mode 100644 index cb477c8..0000000 --- a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeModified-ModAckItem-SCG-Bearer.h +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E_RABs_Admitted_ToBeModified_ModAckItem_SCG_Bearer_H_ -#define _E_RABs_Admitted_ToBeModified_ModAckItem_SCG_Bearer_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "E-RAB-ID.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct GTPtunnelEndpoint; -struct ProtocolExtensionContainer; - -/* E-RABs-Admitted-ToBeModified-ModAckItem-SCG-Bearer */ -typedef struct E_RABs_Admitted_ToBeModified_ModAckItem_SCG_Bearer { - E_RAB_ID_t e_RAB_ID; - struct GTPtunnelEndpoint *s1_DL_GTPtunnelEndpoint; /* OPTIONAL */ - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_Admitted_ToBeModified_ModAckItem_SCG_Bearer_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeModified_ModAckItem_SCG_Bearer; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeModified_ModAckItem_SCG_Bearer_specs_1; -extern asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeModified_ModAckItem_SCG_Bearer_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _E_RABs_Admitted_ToBeModified_ModAckItem_SCG_Bearer_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeModified-ModAckItem-Split-Bearer.c b/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeModified-ModAckItem-Split-Bearer.c deleted file mode 100644 index ba5e326..0000000 --- a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeModified-ModAckItem-Split-Bearer.c +++ /dev/null @@ -1,92 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E-RABs-Admitted-ToBeModified-ModAckItem-Split-Bearer.h" - -#include "GTPtunnelEndpoint.h" -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeModified_ModAckItem_Split_Bearer_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeModified_ModAckItem_Split_Bearer, e_RAB_ID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E_RAB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "e-RAB-ID" - }, - { ATF_POINTER, 2, offsetof(struct E_RABs_Admitted_ToBeModified_ModAckItem_Split_Bearer, seNB_GTPtunnelEndpoint), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GTPtunnelEndpoint, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "seNB-GTPtunnelEndpoint" - }, - { ATF_POINTER, 1, offsetof(struct E_RABs_Admitted_ToBeModified_ModAckItem_Split_Bearer, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P33, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_E_RABs_Admitted_ToBeModified_ModAckItem_Split_Bearer_oms_1[] = { 1, 2 }; -static const ber_tlv_tag_t asn_DEF_E_RABs_Admitted_ToBeModified_ModAckItem_Split_Bearer_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_Admitted_ToBeModified_ModAckItem_Split_Bearer_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e-RAB-ID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* seNB-GTPtunnelEndpoint */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeModified_ModAckItem_Split_Bearer_specs_1 = { - sizeof(struct E_RABs_Admitted_ToBeModified_ModAckItem_Split_Bearer), - offsetof(struct E_RABs_Admitted_ToBeModified_ModAckItem_Split_Bearer, _asn_ctx), - asn_MAP_E_RABs_Admitted_ToBeModified_ModAckItem_Split_Bearer_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_E_RABs_Admitted_ToBeModified_ModAckItem_Split_Bearer_oms_1, /* Optional members */ - 2, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeModified_ModAckItem_Split_Bearer = { - "E-RABs-Admitted-ToBeModified-ModAckItem-Split-Bearer", - "E-RABs-Admitted-ToBeModified-ModAckItem-Split-Bearer", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_Admitted_ToBeModified_ModAckItem_Split_Bearer_tags_1, - sizeof(asn_DEF_E_RABs_Admitted_ToBeModified_ModAckItem_Split_Bearer_tags_1) - /sizeof(asn_DEF_E_RABs_Admitted_ToBeModified_ModAckItem_Split_Bearer_tags_1[0]), /* 1 */ - asn_DEF_E_RABs_Admitted_ToBeModified_ModAckItem_Split_Bearer_tags_1, /* Same as above */ - sizeof(asn_DEF_E_RABs_Admitted_ToBeModified_ModAckItem_Split_Bearer_tags_1) - /sizeof(asn_DEF_E_RABs_Admitted_ToBeModified_ModAckItem_Split_Bearer_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_Admitted_ToBeModified_ModAckItem_Split_Bearer_1, - 3, /* Elements count */ - &asn_SPC_E_RABs_Admitted_ToBeModified_ModAckItem_Split_Bearer_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeModified-ModAckItem-Split-Bearer.h b/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeModified-ModAckItem-Split-Bearer.h deleted file mode 100644 index 3d21af8..0000000 --- a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeModified-ModAckItem-Split-Bearer.h +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E_RABs_Admitted_ToBeModified_ModAckItem_Split_Bearer_H_ -#define _E_RABs_Admitted_ToBeModified_ModAckItem_Split_Bearer_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "E-RAB-ID.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct GTPtunnelEndpoint; -struct ProtocolExtensionContainer; - -/* E-RABs-Admitted-ToBeModified-ModAckItem-Split-Bearer */ -typedef struct E_RABs_Admitted_ToBeModified_ModAckItem_Split_Bearer { - E_RAB_ID_t e_RAB_ID; - struct GTPtunnelEndpoint *seNB_GTPtunnelEndpoint; /* OPTIONAL */ - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_Admitted_ToBeModified_ModAckItem_Split_Bearer_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeModified_ModAckItem_Split_Bearer; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeModified_ModAckItem_Split_Bearer_specs_1; -extern asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeModified_ModAckItem_Split_Bearer_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _E_RABs_Admitted_ToBeModified_ModAckItem_Split_Bearer_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeModified-ModAckItem.c b/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeModified-ModAckItem.c deleted file mode 100644 index e5ab1a3..0000000 --- a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeModified-ModAckItem.c +++ /dev/null @@ -1,82 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E-RABs-Admitted-ToBeModified-ModAckItem.h" - -#include "E-RABs-Admitted-ToBeModified-ModAckItem-SCG-Bearer.h" -#include "E-RABs-Admitted-ToBeModified-ModAckItem-Split-Bearer.h" -static asn_per_constraints_t asn_PER_type_E_RABs_Admitted_ToBeModified_ModAckItem_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeModified_ModAckItem_1[] = { - { ATF_POINTER, 0, offsetof(struct E_RABs_Admitted_ToBeModified_ModAckItem, choice.sCG_Bearer), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E_RABs_Admitted_ToBeModified_ModAckItem_SCG_Bearer, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "sCG-Bearer" - }, - { ATF_POINTER, 0, offsetof(struct E_RABs_Admitted_ToBeModified_ModAckItem, choice.split_Bearer), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E_RABs_Admitted_ToBeModified_ModAckItem_Split_Bearer, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "split-Bearer" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_Admitted_ToBeModified_ModAckItem_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sCG-Bearer */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* split-Bearer */ -}; -static asn_CHOICE_specifics_t asn_SPC_E_RABs_Admitted_ToBeModified_ModAckItem_specs_1 = { - sizeof(struct E_RABs_Admitted_ToBeModified_ModAckItem), - offsetof(struct E_RABs_Admitted_ToBeModified_ModAckItem, _asn_ctx), - offsetof(struct E_RABs_Admitted_ToBeModified_ModAckItem, present), - sizeof(((struct E_RABs_Admitted_ToBeModified_ModAckItem *)0)->present), - asn_MAP_E_RABs_Admitted_ToBeModified_ModAckItem_tag2el_1, - 2, /* Count of tags in the map */ - 0, 0, - 2 /* Extensions start */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeModified_ModAckItem = { - "E-RABs-Admitted-ToBeModified-ModAckItem", - "E-RABs-Admitted-ToBeModified-ModAckItem", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, &asn_PER_type_E_RABs_Admitted_ToBeModified_ModAckItem_constr_1, CHOICE_constraint }, - asn_MBR_E_RABs_Admitted_ToBeModified_ModAckItem_1, - 2, /* Elements count */ - &asn_SPC_E_RABs_Admitted_ToBeModified_ModAckItem_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeModified-ModAckItem.h b/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeModified-ModAckItem.h deleted file mode 100644 index 4a7fe77..0000000 --- a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeModified-ModAckItem.h +++ /dev/null @@ -1,76 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E_RABs_Admitted_ToBeModified_ModAckItem_H_ -#define _E_RABs_Admitted_ToBeModified_ModAckItem_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "constr_CHOICE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum E_RABs_Admitted_ToBeModified_ModAckItem_PR { - E_RABs_Admitted_ToBeModified_ModAckItem_PR_NOTHING, /* No components present */ - E_RABs_Admitted_ToBeModified_ModAckItem_PR_sCG_Bearer, - E_RABs_Admitted_ToBeModified_ModAckItem_PR_split_Bearer - /* Extensions may appear below */ - -} E_RABs_Admitted_ToBeModified_ModAckItem_PR; - -/* Forward declarations */ -struct E_RABs_Admitted_ToBeModified_ModAckItem_SCG_Bearer; -struct E_RABs_Admitted_ToBeModified_ModAckItem_Split_Bearer; - -/* E-RABs-Admitted-ToBeModified-ModAckItem */ -typedef struct E_RABs_Admitted_ToBeModified_ModAckItem { - E_RABs_Admitted_ToBeModified_ModAckItem_PR present; - union E_RABs_Admitted_ToBeModified_ModAckItem_u { - struct E_RABs_Admitted_ToBeModified_ModAckItem_SCG_Bearer *sCG_Bearer; - struct E_RABs_Admitted_ToBeModified_ModAckItem_Split_Bearer *split_Bearer; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_Admitted_ToBeModified_ModAckItem_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeModified_ModAckItem; - -#ifdef __cplusplus -} -#endif - -#endif /* _E_RABs_Admitted_ToBeModified_ModAckItem_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeModified-ModAckList.c b/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeModified-ModAckList.c deleted file mode 100644 index c7145d7..0000000 --- a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeModified-ModAckList.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E-RABs-Admitted-ToBeModified-ModAckList.h" - -#include "ProtocolIE-Single-Container.h" -static asn_per_constraints_t asn_PER_type_E_RABs_Admitted_ToBeModified_ModAckList_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 8, 8, 1, 256 } /* (SIZE(1..256)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeModified_ModAckList_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ProtocolIE_Single_Container_122P21, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_Admitted_ToBeModified_ModAckList_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_E_RABs_Admitted_ToBeModified_ModAckList_specs_1 = { - sizeof(struct E_RABs_Admitted_ToBeModified_ModAckList), - offsetof(struct E_RABs_Admitted_ToBeModified_ModAckList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeModified_ModAckList = { - "E-RABs-Admitted-ToBeModified-ModAckList", - "E-RABs-Admitted-ToBeModified-ModAckList", - &asn_OP_SEQUENCE_OF, - asn_DEF_E_RABs_Admitted_ToBeModified_ModAckList_tags_1, - sizeof(asn_DEF_E_RABs_Admitted_ToBeModified_ModAckList_tags_1) - /sizeof(asn_DEF_E_RABs_Admitted_ToBeModified_ModAckList_tags_1[0]), /* 1 */ - asn_DEF_E_RABs_Admitted_ToBeModified_ModAckList_tags_1, /* Same as above */ - sizeof(asn_DEF_E_RABs_Admitted_ToBeModified_ModAckList_tags_1) - /sizeof(asn_DEF_E_RABs_Admitted_ToBeModified_ModAckList_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_E_RABs_Admitted_ToBeModified_ModAckList_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_E_RABs_Admitted_ToBeModified_ModAckList_1, - 1, /* Single element */ - &asn_SPC_E_RABs_Admitted_ToBeModified_ModAckList_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeModified-ModAckList.h b/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeModified-ModAckList.h deleted file mode 100644 index abcc0ca..0000000 --- a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeModified-ModAckList.h +++ /dev/null @@ -1,59 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E_RABs_Admitted_ToBeModified_ModAckList_H_ -#define _E_RABs_Admitted_ToBeModified_ModAckList_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolIE_Single_Container; - -/* E-RABs-Admitted-ToBeModified-ModAckList */ -typedef struct E_RABs_Admitted_ToBeModified_ModAckList { - A_SEQUENCE_OF(struct ProtocolIE_Single_Container) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_Admitted_ToBeModified_ModAckList_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeModified_ModAckList; - -#ifdef __cplusplus -} -#endif - -#endif /* _E_RABs_Admitted_ToBeModified_ModAckList_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPnotpresent.c b/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPnotpresent.c deleted file mode 100644 index 2205853..0000000 --- a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPnotpresent.c +++ /dev/null @@ -1,82 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPnotpresent.h" - -#include "GTPtunnelEndpoint.h" -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresent_1[] = { - { ATF_POINTER, 2, offsetof(struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresent, sgNB_DL_GTP_TEIDatSCG), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GTPtunnelEndpoint, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "sgNB-DL-GTP-TEIDatSCG" - }, - { ATF_POINTER, 1, offsetof(struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresent, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P67, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresent_oms_1[] = { 0, 1 }; -static const ber_tlv_tag_t asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresent_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresent_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sgNB-DL-GTP-TEIDatSCG */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresent_specs_1 = { - sizeof(struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresent), - offsetof(struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresent, _asn_ctx), - asn_MAP_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresent_tag2el_1, - 2, /* Count of tags in the map */ - asn_MAP_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresent_oms_1, /* Optional members */ - 2, 0, /* Root/Additions */ - 2, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresent = { - "E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPnotpresent", - "E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPnotpresent", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresent_tags_1, - sizeof(asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresent_tags_1) - /sizeof(asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresent_tags_1[0]), /* 1 */ - asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresent_tags_1, /* Same as above */ - sizeof(asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresent_tags_1) - /sizeof(asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresent_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresent_1, - 2, /* Elements count */ - &asn_SPC_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresent_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPnotpresent.h b/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPnotpresent.h deleted file mode 100644 index 3012b83..0000000 --- a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPnotpresent.h +++ /dev/null @@ -1,66 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresent_H_ -#define _E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresent_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct GTPtunnelEndpoint; -struct ProtocolExtensionContainer; - -/* E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPnotpresent */ -typedef struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresent { - struct GTPtunnelEndpoint *sgNB_DL_GTP_TEIDatSCG; /* OPTIONAL */ - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresent_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresent; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresent_specs_1; -extern asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresent_1[2]; - -#ifdef __cplusplus -} -#endif - -#endif /* _E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresent_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPpresent.c b/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPpresent.c deleted file mode 100644 index 8697a05..0000000 --- a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPpresent.c +++ /dev/null @@ -1,114 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPpresent.h" - -#include "GTPtunnelEndpoint.h" -#include "E-RAB-Level-QoS-Parameters.h" -#include "ULConfiguration.h" -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresent_1[] = { - { ATF_POINTER, 5, offsetof(struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresent, s1_DL_GTPtunnelEndpoint), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GTPtunnelEndpoint, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "s1-DL-GTPtunnelEndpoint" - }, - { ATF_POINTER, 4, offsetof(struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresent, sgNB_UL_GTP_TEIDatPDCP), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GTPtunnelEndpoint, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "sgNB-UL-GTP-TEIDatPDCP" - }, - { ATF_POINTER, 3, offsetof(struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresent, mCG_E_RAB_Level_QoS_Parameters), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E_RAB_Level_QoS_Parameters, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "mCG-E-RAB-Level-QoS-Parameters" - }, - { ATF_POINTER, 2, offsetof(struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresent, uL_Configuration), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ULConfiguration, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "uL-Configuration" - }, - { ATF_POINTER, 1, offsetof(struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresent, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (4 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P66, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresent_oms_1[] = { 0, 1, 2, 3, 4 }; -static const ber_tlv_tag_t asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresent_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresent_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* s1-DL-GTPtunnelEndpoint */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* sgNB-UL-GTP-TEIDatPDCP */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* mCG-E-RAB-Level-QoS-Parameters */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* uL-Configuration */ - { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresent_specs_1 = { - sizeof(struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresent), - offsetof(struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresent, _asn_ctx), - asn_MAP_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresent_tag2el_1, - 5, /* Count of tags in the map */ - asn_MAP_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresent_oms_1, /* Optional members */ - 5, 0, /* Root/Additions */ - 5, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresent = { - "E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPpresent", - "E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPpresent", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresent_tags_1, - sizeof(asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresent_tags_1) - /sizeof(asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresent_tags_1[0]), /* 1 */ - asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresent_tags_1, /* Same as above */ - sizeof(asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresent_tags_1) - /sizeof(asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresent_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresent_1, - 5, /* Elements count */ - &asn_SPC_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresent_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPpresent.h b/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPpresent.h deleted file mode 100644 index acb1006..0000000 --- a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPpresent.h +++ /dev/null @@ -1,71 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresent_H_ -#define _E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresent_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct GTPtunnelEndpoint; -struct E_RAB_Level_QoS_Parameters; -struct ULConfiguration; -struct ProtocolExtensionContainer; - -/* E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPpresent */ -typedef struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresent { - struct GTPtunnelEndpoint *s1_DL_GTPtunnelEndpoint; /* OPTIONAL */ - struct GTPtunnelEndpoint *sgNB_UL_GTP_TEIDatPDCP; /* OPTIONAL */ - struct E_RAB_Level_QoS_Parameters *mCG_E_RAB_Level_QoS_Parameters; /* OPTIONAL */ - struct ULConfiguration *uL_Configuration; /* OPTIONAL */ - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresent_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresent; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresent_specs_1; -extern asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresent_1[5]; - -#ifdef __cplusplus -} -#endif - -#endif /* _E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresent_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeModified-SgNBModAck-Item.c b/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeModified-SgNBModAck-Item.c deleted file mode 100644 index 6b6b1ec..0000000 --- a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeModified-SgNBModAck-Item.c +++ /dev/null @@ -1,157 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E-RABs-Admitted-ToBeModified-SgNBModAck-Item.h" - -#include "ProtocolExtensionContainer.h" -#include "E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPpresent.h" -#include "E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPnotpresent.h" -static asn_per_constraints_t asn_PER_type_resource_configuration_constr_4 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_resource_configuration_4[] = { - { ATF_POINTER, 0, offsetof(struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item__resource_configuration, choice.sgNBPDCPpresent), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresent, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "sgNBPDCPpresent" - }, - { ATF_POINTER, 0, offsetof(struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item__resource_configuration, choice.sgNBPDCPnotpresent), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresent, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "sgNBPDCPnotpresent" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_resource_configuration_tag2el_4[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sgNBPDCPpresent */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* sgNBPDCPnotpresent */ -}; -static asn_CHOICE_specifics_t asn_SPC_resource_configuration_specs_4 = { - sizeof(struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item__resource_configuration), - offsetof(struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item__resource_configuration, _asn_ctx), - offsetof(struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item__resource_configuration, present), - sizeof(((struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item__resource_configuration *)0)->present), - asn_MAP_resource_configuration_tag2el_4, - 2, /* Count of tags in the map */ - 0, 0, - 2 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_resource_configuration_4 = { - "resource-configuration", - "resource-configuration", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, &asn_PER_type_resource_configuration_constr_4, CHOICE_constraint }, - asn_MBR_resource_configuration_4, - 2, /* Elements count */ - &asn_SPC_resource_configuration_specs_4 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item, e_RAB_ID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E_RAB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "e-RAB-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item, en_DC_ResourceConfiguration), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_EN_DC_ResourceConfiguration, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "en-DC-ResourceConfiguration" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item, resource_configuration), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_resource_configuration_4, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "resource-configuration" - }, - { ATF_POINTER, 1, offsetof(struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P65, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_oms_1[] = { 3 }; -static const ber_tlv_tag_t asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e-RAB-ID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* en-DC-ResourceConfiguration */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* resource-configuration */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_specs_1 = { - sizeof(struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item), - offsetof(struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item, _asn_ctx), - asn_MAP_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_tag2el_1, - 4, /* Count of tags in the map */ - asn_MAP_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 4, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAck_Item = { - "E-RABs-Admitted-ToBeModified-SgNBModAck-Item", - "E-RABs-Admitted-ToBeModified-SgNBModAck-Item", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_tags_1, - sizeof(asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_tags_1) - /sizeof(asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_tags_1[0]), /* 1 */ - asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_tags_1, /* Same as above */ - sizeof(asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_tags_1) - /sizeof(asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_1, - 4, /* Elements count */ - &asn_SPC_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeModified-SgNBModAck-Item.h b/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeModified-SgNBModAck-Item.h deleted file mode 100644 index 09d4f0f..0000000 --- a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeModified-SgNBModAck-Item.h +++ /dev/null @@ -1,92 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E_RABs_Admitted_ToBeModified_SgNBModAck_Item_H_ -#define _E_RABs_Admitted_ToBeModified_SgNBModAck_Item_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "E-RAB-ID.h" -#include "EN-DC-ResourceConfiguration.h" -#include "constr_CHOICE.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum E_RABs_Admitted_ToBeModified_SgNBModAck_Item__resource_configuration_PR { - E_RABs_Admitted_ToBeModified_SgNBModAck_Item__resource_configuration_PR_NOTHING, /* No components present */ - E_RABs_Admitted_ToBeModified_SgNBModAck_Item__resource_configuration_PR_sgNBPDCPpresent, - E_RABs_Admitted_ToBeModified_SgNBModAck_Item__resource_configuration_PR_sgNBPDCPnotpresent - /* Extensions may appear below */ - -} E_RABs_Admitted_ToBeModified_SgNBModAck_Item__resource_configuration_PR; - -/* Forward declarations */ -struct ProtocolExtensionContainer; -struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresent; -struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresent; - -/* E-RABs-Admitted-ToBeModified-SgNBModAck-Item */ -typedef struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item { - E_RAB_ID_t e_RAB_ID; - EN_DC_ResourceConfiguration_t en_DC_ResourceConfiguration; - struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item__resource_configuration { - E_RABs_Admitted_ToBeModified_SgNBModAck_Item__resource_configuration_PR present; - union E_RABs_Admitted_ToBeModified_SgNBModAck_Item__resource_configuration_u { - struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresent *sgNBPDCPpresent; - struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresent *sgNBPDCPnotpresent; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } resource_configuration; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_Admitted_ToBeModified_SgNBModAck_Item_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAck_Item; - -#ifdef __cplusplus -} -#endif - -#endif /* _E_RABs_Admitted_ToBeModified_SgNBModAck_Item_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeModified-SgNBModAckList.c b/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeModified-SgNBModAckList.c deleted file mode 100644 index 8d810b4..0000000 --- a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeModified-SgNBModAckList.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E-RABs-Admitted-ToBeModified-SgNBModAckList.h" - -#include "ProtocolIE-Single-Container.h" -static asn_per_constraints_t asn_PER_type_E_RABs_Admitted_ToBeModified_SgNBModAckList_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 8, 8, 1, 256 } /* (SIZE(1..256)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeModified_SgNBModAckList_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ProtocolIE_Single_Container_122P34, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAckList_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_E_RABs_Admitted_ToBeModified_SgNBModAckList_specs_1 = { - sizeof(struct E_RABs_Admitted_ToBeModified_SgNBModAckList), - offsetof(struct E_RABs_Admitted_ToBeModified_SgNBModAckList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAckList = { - "E-RABs-Admitted-ToBeModified-SgNBModAckList", - "E-RABs-Admitted-ToBeModified-SgNBModAckList", - &asn_OP_SEQUENCE_OF, - asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAckList_tags_1, - sizeof(asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAckList_tags_1) - /sizeof(asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAckList_tags_1[0]), /* 1 */ - asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAckList_tags_1, /* Same as above */ - sizeof(asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAckList_tags_1) - /sizeof(asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAckList_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_E_RABs_Admitted_ToBeModified_SgNBModAckList_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_E_RABs_Admitted_ToBeModified_SgNBModAckList_1, - 1, /* Single element */ - &asn_SPC_E_RABs_Admitted_ToBeModified_SgNBModAckList_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeModified-SgNBModAckList.h b/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeModified-SgNBModAckList.h deleted file mode 100644 index 0c0c980..0000000 --- a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeModified-SgNBModAckList.h +++ /dev/null @@ -1,59 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E_RABs_Admitted_ToBeModified_SgNBModAckList_H_ -#define _E_RABs_Admitted_ToBeModified_SgNBModAckList_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolIE_Single_Container; - -/* E-RABs-Admitted-ToBeModified-SgNBModAckList */ -typedef struct E_RABs_Admitted_ToBeModified_SgNBModAckList { - A_SEQUENCE_OF(struct ProtocolIE_Single_Container) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_Admitted_ToBeModified_SgNBModAckList_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAckList; - -#ifdef __cplusplus -} -#endif - -#endif /* _E_RABs_Admitted_ToBeModified_SgNBModAckList_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeReleased-ModAckItem-SCG-Bearer.c b/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeReleased-ModAckItem-SCG-Bearer.c deleted file mode 100644 index 231ccf7..0000000 --- a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeReleased-ModAckItem-SCG-Bearer.c +++ /dev/null @@ -1,81 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E-RABs-Admitted-ToBeReleased-ModAckItem-SCG-Bearer.h" - -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_Bearer_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_Bearer, e_RAB_ID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E_RAB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "e-RAB-ID" - }, - { ATF_POINTER, 1, offsetof(struct E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_Bearer, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P34, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_Bearer_oms_1[] = { 1 }; -static const ber_tlv_tag_t asn_DEF_E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_Bearer_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_Bearer_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e-RAB-ID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_Bearer_specs_1 = { - sizeof(struct E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_Bearer), - offsetof(struct E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_Bearer, _asn_ctx), - asn_MAP_E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_Bearer_tag2el_1, - 2, /* Count of tags in the map */ - asn_MAP_E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_Bearer_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 2, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_Bearer = { - "E-RABs-Admitted-ToBeReleased-ModAckItem-SCG-Bearer", - "E-RABs-Admitted-ToBeReleased-ModAckItem-SCG-Bearer", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_Bearer_tags_1, - sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_Bearer_tags_1) - /sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_Bearer_tags_1[0]), /* 1 */ - asn_DEF_E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_Bearer_tags_1, /* Same as above */ - sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_Bearer_tags_1) - /sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_Bearer_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_Bearer_1, - 2, /* Elements count */ - &asn_SPC_E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_Bearer_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeReleased-ModAckItem-SCG-Bearer.h b/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeReleased-ModAckItem-SCG-Bearer.h deleted file mode 100644 index b444de3..0000000 --- a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeReleased-ModAckItem-SCG-Bearer.h +++ /dev/null @@ -1,66 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_Bearer_H_ -#define _E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_Bearer_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "E-RAB-ID.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* E-RABs-Admitted-ToBeReleased-ModAckItem-SCG-Bearer */ -typedef struct E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_Bearer { - E_RAB_ID_t e_RAB_ID; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_Bearer_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_Bearer; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_Bearer_specs_1; -extern asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_Bearer_1[2]; - -#ifdef __cplusplus -} -#endif - -#endif /* _E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_Bearer_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeReleased-ModAckItem-Split-Bearer.c b/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeReleased-ModAckItem-Split-Bearer.c deleted file mode 100644 index f17da18..0000000 --- a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeReleased-ModAckItem-Split-Bearer.c +++ /dev/null @@ -1,81 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E-RABs-Admitted-ToBeReleased-ModAckItem-Split-Bearer.h" - -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeReleased_ModAckItem_Split_Bearer_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeReleased_ModAckItem_Split_Bearer, e_RAB_ID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E_RAB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "e-RAB-ID" - }, - { ATF_POINTER, 1, offsetof(struct E_RABs_Admitted_ToBeReleased_ModAckItem_Split_Bearer, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P35, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_E_RABs_Admitted_ToBeReleased_ModAckItem_Split_Bearer_oms_1[] = { 1 }; -static const ber_tlv_tag_t asn_DEF_E_RABs_Admitted_ToBeReleased_ModAckItem_Split_Bearer_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_Admitted_ToBeReleased_ModAckItem_Split_Bearer_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e-RAB-ID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeReleased_ModAckItem_Split_Bearer_specs_1 = { - sizeof(struct E_RABs_Admitted_ToBeReleased_ModAckItem_Split_Bearer), - offsetof(struct E_RABs_Admitted_ToBeReleased_ModAckItem_Split_Bearer, _asn_ctx), - asn_MAP_E_RABs_Admitted_ToBeReleased_ModAckItem_Split_Bearer_tag2el_1, - 2, /* Count of tags in the map */ - asn_MAP_E_RABs_Admitted_ToBeReleased_ModAckItem_Split_Bearer_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 2, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeReleased_ModAckItem_Split_Bearer = { - "E-RABs-Admitted-ToBeReleased-ModAckItem-Split-Bearer", - "E-RABs-Admitted-ToBeReleased-ModAckItem-Split-Bearer", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_Admitted_ToBeReleased_ModAckItem_Split_Bearer_tags_1, - sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_ModAckItem_Split_Bearer_tags_1) - /sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_ModAckItem_Split_Bearer_tags_1[0]), /* 1 */ - asn_DEF_E_RABs_Admitted_ToBeReleased_ModAckItem_Split_Bearer_tags_1, /* Same as above */ - sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_ModAckItem_Split_Bearer_tags_1) - /sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_ModAckItem_Split_Bearer_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_Admitted_ToBeReleased_ModAckItem_Split_Bearer_1, - 2, /* Elements count */ - &asn_SPC_E_RABs_Admitted_ToBeReleased_ModAckItem_Split_Bearer_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeReleased-ModAckItem-Split-Bearer.h b/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeReleased-ModAckItem-Split-Bearer.h deleted file mode 100644 index 438be77..0000000 --- a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeReleased-ModAckItem-Split-Bearer.h +++ /dev/null @@ -1,66 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E_RABs_Admitted_ToBeReleased_ModAckItem_Split_Bearer_H_ -#define _E_RABs_Admitted_ToBeReleased_ModAckItem_Split_Bearer_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "E-RAB-ID.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* E-RABs-Admitted-ToBeReleased-ModAckItem-Split-Bearer */ -typedef struct E_RABs_Admitted_ToBeReleased_ModAckItem_Split_Bearer { - E_RAB_ID_t e_RAB_ID; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_Admitted_ToBeReleased_ModAckItem_Split_Bearer_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeReleased_ModAckItem_Split_Bearer; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeReleased_ModAckItem_Split_Bearer_specs_1; -extern asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeReleased_ModAckItem_Split_Bearer_1[2]; - -#ifdef __cplusplus -} -#endif - -#endif /* _E_RABs_Admitted_ToBeReleased_ModAckItem_Split_Bearer_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeReleased-ModAckList.c b/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeReleased-ModAckList.c deleted file mode 100644 index 1ca3800..0000000 --- a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeReleased-ModAckList.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E-RABs-Admitted-ToBeReleased-ModAckList.h" - -#include "ProtocolIE-Single-Container.h" -static asn_per_constraints_t asn_PER_type_E_RABs_Admitted_ToBeReleased_ModAckList_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 8, 8, 1, 256 } /* (SIZE(1..256)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeReleased_ModAckList_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ProtocolIE_Single_Container_122P22, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_Admitted_ToBeReleased_ModAckList_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_E_RABs_Admitted_ToBeReleased_ModAckList_specs_1 = { - sizeof(struct E_RABs_Admitted_ToBeReleased_ModAckList), - offsetof(struct E_RABs_Admitted_ToBeReleased_ModAckList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeReleased_ModAckList = { - "E-RABs-Admitted-ToBeReleased-ModAckList", - "E-RABs-Admitted-ToBeReleased-ModAckList", - &asn_OP_SEQUENCE_OF, - asn_DEF_E_RABs_Admitted_ToBeReleased_ModAckList_tags_1, - sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_ModAckList_tags_1) - /sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_ModAckList_tags_1[0]), /* 1 */ - asn_DEF_E_RABs_Admitted_ToBeReleased_ModAckList_tags_1, /* Same as above */ - sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_ModAckList_tags_1) - /sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_ModAckList_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_E_RABs_Admitted_ToBeReleased_ModAckList_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_E_RABs_Admitted_ToBeReleased_ModAckList_1, - 1, /* Single element */ - &asn_SPC_E_RABs_Admitted_ToBeReleased_ModAckList_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeReleased-ModAckList.h b/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeReleased-ModAckList.h deleted file mode 100644 index f498163..0000000 --- a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeReleased-ModAckList.h +++ /dev/null @@ -1,59 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E_RABs_Admitted_ToBeReleased_ModAckList_H_ -#define _E_RABs_Admitted_ToBeReleased_ModAckList_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolIE_Single_Container; - -/* E-RABs-Admitted-ToBeReleased-ModAckList */ -typedef struct E_RABs_Admitted_ToBeReleased_ModAckList { - A_SEQUENCE_OF(struct ProtocolIE_Single_Container) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_Admitted_ToBeReleased_ModAckList_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeReleased_ModAckList; - -#ifdef __cplusplus -} -#endif - -#endif /* _E_RABs_Admitted_ToBeReleased_ModAckList_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPnotpresent.c b/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPnotpresent.c deleted file mode 100644 index 539aab9..0000000 --- a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPnotpresent.c +++ /dev/null @@ -1,71 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPnotpresent.h" - -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresent_1[] = { - { ATF_POINTER, 1, offsetof(struct E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresent, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P70, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresent_oms_1[] = { 0 }; -static const ber_tlv_tag_t asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresent_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresent_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresent_specs_1 = { - sizeof(struct E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresent), - offsetof(struct E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresent, _asn_ctx), - asn_MAP_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresent_tag2el_1, - 1, /* Count of tags in the map */ - asn_MAP_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresent_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresent = { - "E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPnotpresent", - "E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPnotpresent", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresent_tags_1, - sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresent_tags_1) - /sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresent_tags_1[0]), /* 1 */ - asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresent_tags_1, /* Same as above */ - sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresent_tags_1) - /sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresent_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresent_1, - 1, /* Elements count */ - &asn_SPC_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresent_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPnotpresent.h b/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPnotpresent.h deleted file mode 100644 index 4777250..0000000 --- a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPnotpresent.h +++ /dev/null @@ -1,64 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresent_H_ -#define _E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresent_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPnotpresent */ -typedef struct E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresent { - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresent_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresent; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresent_specs_1; -extern asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresent_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresent_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPpresent.c b/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPpresent.c deleted file mode 100644 index 4b58fea..0000000 --- a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPpresent.c +++ /dev/null @@ -1,71 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPpresent.h" - -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresent_1[] = { - { ATF_POINTER, 1, offsetof(struct E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresent, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P69, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresent_oms_1[] = { 0 }; -static const ber_tlv_tag_t asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresent_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresent_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresent_specs_1 = { - sizeof(struct E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresent), - offsetof(struct E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresent, _asn_ctx), - asn_MAP_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresent_tag2el_1, - 1, /* Count of tags in the map */ - asn_MAP_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresent_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresent = { - "E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPpresent", - "E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPpresent", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresent_tags_1, - sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresent_tags_1) - /sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresent_tags_1[0]), /* 1 */ - asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresent_tags_1, /* Same as above */ - sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresent_tags_1) - /sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresent_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresent_1, - 1, /* Elements count */ - &asn_SPC_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresent_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPpresent.h b/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPpresent.h deleted file mode 100644 index 5957f4b..0000000 --- a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPpresent.h +++ /dev/null @@ -1,64 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresent_H_ -#define _E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresent_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPpresent */ -typedef struct E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresent { - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresent_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresent; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresent_specs_1; -extern asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresent_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresent_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeReleased-SgNBModAckList.c b/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeReleased-SgNBModAckList.c deleted file mode 100644 index eda6529..0000000 --- a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeReleased-SgNBModAckList.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E-RABs-Admitted-ToBeReleased-SgNBModAckList.h" - -#include "ProtocolIE-Single-Container.h" -static asn_per_constraints_t asn_PER_type_E_RABs_Admitted_ToBeReleased_SgNBModAckList_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 8, 8, 1, 256 } /* (SIZE(1..256)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeReleased_SgNBModAckList_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ProtocolIE_Single_Container_122P35, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBModAckList_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_E_RABs_Admitted_ToBeReleased_SgNBModAckList_specs_1 = { - sizeof(struct E_RABs_Admitted_ToBeReleased_SgNBModAckList), - offsetof(struct E_RABs_Admitted_ToBeReleased_SgNBModAckList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBModAckList = { - "E-RABs-Admitted-ToBeReleased-SgNBModAckList", - "E-RABs-Admitted-ToBeReleased-SgNBModAckList", - &asn_OP_SEQUENCE_OF, - asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBModAckList_tags_1, - sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBModAckList_tags_1) - /sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBModAckList_tags_1[0]), /* 1 */ - asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBModAckList_tags_1, /* Same as above */ - sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBModAckList_tags_1) - /sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBModAckList_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_E_RABs_Admitted_ToBeReleased_SgNBModAckList_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_E_RABs_Admitted_ToBeReleased_SgNBModAckList_1, - 1, /* Single element */ - &asn_SPC_E_RABs_Admitted_ToBeReleased_SgNBModAckList_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeReleased-SgNBModAckList.h b/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeReleased-SgNBModAckList.h deleted file mode 100644 index 14e89b4..0000000 --- a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeReleased-SgNBModAckList.h +++ /dev/null @@ -1,59 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E_RABs_Admitted_ToBeReleased_SgNBModAckList_H_ -#define _E_RABs_Admitted_ToBeReleased_SgNBModAckList_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolIE_Single_Container; - -/* E-RABs-Admitted-ToBeReleased-SgNBModAckList */ -typedef struct E_RABs_Admitted_ToBeReleased_SgNBModAckList { - A_SEQUENCE_OF(struct ProtocolIE_Single_Container) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_Admitted_ToBeReleased_SgNBModAckList_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBModAckList; - -#ifdef __cplusplus -} -#endif - -#endif /* _E_RABs_Admitted_ToBeReleased_SgNBModAckList_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeReleased-SgNBRelReqAck-Item.c b/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeReleased-SgNBRelReqAck-Item.c deleted file mode 100644 index 91c40ec..0000000 --- a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeReleased-SgNBRelReqAck-Item.c +++ /dev/null @@ -1,91 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E-RABs-Admitted-ToBeReleased-SgNBRelReqAck-Item.h" - -#include "ProtocolExtensionContainer.h" -static asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item, e_RAB_ID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E_RAB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "e-RAB-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item, rlc_Mode_transferred), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RLCMode, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "rlc-Mode-transferred" - }, - { ATF_POINTER, 1, offsetof(struct E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P81, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item_oms_1[] = { 2 }; -static const ber_tlv_tag_t asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e-RAB-ID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* rlc-Mode-transferred */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item_specs_1 = { - sizeof(struct E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item), - offsetof(struct E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item, _asn_ctx), - asn_MAP_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item = { - "E-RABs-Admitted-ToBeReleased-SgNBRelReqAck-Item", - "E-RABs-Admitted-ToBeReleased-SgNBRelReqAck-Item", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item_tags_1, - sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item_tags_1) - /sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item_tags_1[0]), /* 1 */ - asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item_tags_1, /* Same as above */ - sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item_tags_1) - /sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item_1, - 3, /* Elements count */ - &asn_SPC_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeReleased-SgNBRelReqAck-Item.h b/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeReleased-SgNBRelReqAck-Item.h deleted file mode 100644 index 9ed4adc..0000000 --- a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeReleased-SgNBRelReqAck-Item.h +++ /dev/null @@ -1,66 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item_H_ -#define _E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "E-RAB-ID.h" -#include "RLCMode.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* E-RABs-Admitted-ToBeReleased-SgNBRelReqAck-Item */ -typedef struct E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item { - E_RAB_ID_t e_RAB_ID; - RLCMode_t rlc_Mode_transferred; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item; - -#ifdef __cplusplus -} -#endif - -#endif /* _E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeReleased-SgNBRelReqAckList.c b/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeReleased-SgNBRelReqAckList.c deleted file mode 100644 index c70731b..0000000 --- a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeReleased-SgNBRelReqAckList.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E-RABs-Admitted-ToBeReleased-SgNBRelReqAckList.h" - -#include "ProtocolIE-Single-Container.h" -static asn_per_constraints_t asn_PER_type_E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 8, 8, 1, 256 } /* (SIZE(1..256)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ProtocolIE_Single_Container_122P40, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList_specs_1 = { - sizeof(struct E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList), - offsetof(struct E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList = { - "E-RABs-Admitted-ToBeReleased-SgNBRelReqAckList", - "E-RABs-Admitted-ToBeReleased-SgNBRelReqAckList", - &asn_OP_SEQUENCE_OF, - asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList_tags_1, - sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList_tags_1) - /sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList_tags_1[0]), /* 1 */ - asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList_tags_1, /* Same as above */ - sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList_tags_1) - /sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList_1, - 1, /* Single element */ - &asn_SPC_E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeReleased-SgNBRelReqAckList.h b/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeReleased-SgNBRelReqAckList.h deleted file mode 100644 index e97ab50..0000000 --- a/e2sim/previous/ASN1c/E-RABs-Admitted-ToBeReleased-SgNBRelReqAckList.h +++ /dev/null @@ -1,59 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList_H_ -#define _E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolIE_Single_Container; - -/* E-RABs-Admitted-ToBeReleased-SgNBRelReqAckList */ -typedef struct E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList { - A_SEQUENCE_OF(struct ProtocolIE_Single_Container) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList; - -#ifdef __cplusplus -} -#endif - -#endif /* _E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E-RABs-Admitted-ToReleased-ModAckItem.c b/e2sim/previous/ASN1c/E-RABs-Admitted-ToReleased-ModAckItem.c deleted file mode 100644 index ea9e63b..0000000 --- a/e2sim/previous/ASN1c/E-RABs-Admitted-ToReleased-ModAckItem.c +++ /dev/null @@ -1,82 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E-RABs-Admitted-ToReleased-ModAckItem.h" - -#include "E-RABs-Admitted-ToBeReleased-ModAckItem-SCG-Bearer.h" -#include "E-RABs-Admitted-ToBeReleased-ModAckItem-Split-Bearer.h" -static asn_per_constraints_t asn_PER_type_E_RABs_Admitted_ToReleased_ModAckItem_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToReleased_ModAckItem_1[] = { - { ATF_POINTER, 0, offsetof(struct E_RABs_Admitted_ToReleased_ModAckItem, choice.sCG_Bearer), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_Bearer, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "sCG-Bearer" - }, - { ATF_POINTER, 0, offsetof(struct E_RABs_Admitted_ToReleased_ModAckItem, choice.split_Bearer), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E_RABs_Admitted_ToBeReleased_ModAckItem_Split_Bearer, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "split-Bearer" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_Admitted_ToReleased_ModAckItem_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sCG-Bearer */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* split-Bearer */ -}; -static asn_CHOICE_specifics_t asn_SPC_E_RABs_Admitted_ToReleased_ModAckItem_specs_1 = { - sizeof(struct E_RABs_Admitted_ToReleased_ModAckItem), - offsetof(struct E_RABs_Admitted_ToReleased_ModAckItem, _asn_ctx), - offsetof(struct E_RABs_Admitted_ToReleased_ModAckItem, present), - sizeof(((struct E_RABs_Admitted_ToReleased_ModAckItem *)0)->present), - asn_MAP_E_RABs_Admitted_ToReleased_ModAckItem_tag2el_1, - 2, /* Count of tags in the map */ - 0, 0, - 2 /* Extensions start */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToReleased_ModAckItem = { - "E-RABs-Admitted-ToReleased-ModAckItem", - "E-RABs-Admitted-ToReleased-ModAckItem", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, &asn_PER_type_E_RABs_Admitted_ToReleased_ModAckItem_constr_1, CHOICE_constraint }, - asn_MBR_E_RABs_Admitted_ToReleased_ModAckItem_1, - 2, /* Elements count */ - &asn_SPC_E_RABs_Admitted_ToReleased_ModAckItem_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/E-RABs-Admitted-ToReleased-ModAckItem.h b/e2sim/previous/ASN1c/E-RABs-Admitted-ToReleased-ModAckItem.h deleted file mode 100644 index 1d992a3..0000000 --- a/e2sim/previous/ASN1c/E-RABs-Admitted-ToReleased-ModAckItem.h +++ /dev/null @@ -1,76 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E_RABs_Admitted_ToReleased_ModAckItem_H_ -#define _E_RABs_Admitted_ToReleased_ModAckItem_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "constr_CHOICE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum E_RABs_Admitted_ToReleased_ModAckItem_PR { - E_RABs_Admitted_ToReleased_ModAckItem_PR_NOTHING, /* No components present */ - E_RABs_Admitted_ToReleased_ModAckItem_PR_sCG_Bearer, - E_RABs_Admitted_ToReleased_ModAckItem_PR_split_Bearer - /* Extensions may appear below */ - -} E_RABs_Admitted_ToReleased_ModAckItem_PR; - -/* Forward declarations */ -struct E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_Bearer; -struct E_RABs_Admitted_ToBeReleased_ModAckItem_Split_Bearer; - -/* E-RABs-Admitted-ToReleased-ModAckItem */ -typedef struct E_RABs_Admitted_ToReleased_ModAckItem { - E_RABs_Admitted_ToReleased_ModAckItem_PR present; - union E_RABs_Admitted_ToReleased_ModAckItem_u { - struct E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_Bearer *sCG_Bearer; - struct E_RABs_Admitted_ToBeReleased_ModAckItem_Split_Bearer *split_Bearer; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_Admitted_ToReleased_ModAckItem_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToReleased_ModAckItem; - -#ifdef __cplusplus -} -#endif - -#endif /* _E_RABs_Admitted_ToReleased_ModAckItem_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E-RABs-Admitted-ToReleased-SgNBModAck-Item.c b/e2sim/previous/ASN1c/E-RABs-Admitted-ToReleased-SgNBModAck-Item.c deleted file mode 100644 index 7da2793..0000000 --- a/e2sim/previous/ASN1c/E-RABs-Admitted-ToReleased-SgNBModAck-Item.c +++ /dev/null @@ -1,157 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E-RABs-Admitted-ToReleased-SgNBModAck-Item.h" - -#include "ProtocolExtensionContainer.h" -#include "E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPpresent.h" -#include "E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPnotpresent.h" -static asn_per_constraints_t asn_PER_type_resource_configuration_constr_4 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_resource_configuration_4[] = { - { ATF_POINTER, 0, offsetof(struct E_RABs_Admitted_ToReleased_SgNBModAck_Item__resource_configuration, choice.sgNBPDCPpresent), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresent, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "sgNBPDCPpresent" - }, - { ATF_POINTER, 0, offsetof(struct E_RABs_Admitted_ToReleased_SgNBModAck_Item__resource_configuration, choice.sgNBPDCPnotpresent), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresent, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "sgNBPDCPnotpresent" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_resource_configuration_tag2el_4[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sgNBPDCPpresent */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* sgNBPDCPnotpresent */ -}; -static asn_CHOICE_specifics_t asn_SPC_resource_configuration_specs_4 = { - sizeof(struct E_RABs_Admitted_ToReleased_SgNBModAck_Item__resource_configuration), - offsetof(struct E_RABs_Admitted_ToReleased_SgNBModAck_Item__resource_configuration, _asn_ctx), - offsetof(struct E_RABs_Admitted_ToReleased_SgNBModAck_Item__resource_configuration, present), - sizeof(((struct E_RABs_Admitted_ToReleased_SgNBModAck_Item__resource_configuration *)0)->present), - asn_MAP_resource_configuration_tag2el_4, - 2, /* Count of tags in the map */ - 0, 0, - 2 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_resource_configuration_4 = { - "resource-configuration", - "resource-configuration", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, &asn_PER_type_resource_configuration_constr_4, CHOICE_constraint }, - asn_MBR_resource_configuration_4, - 2, /* Elements count */ - &asn_SPC_resource_configuration_specs_4 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToReleased_SgNBModAck_Item_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToReleased_SgNBModAck_Item, e_RAB_ID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E_RAB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "e-RAB-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToReleased_SgNBModAck_Item, en_DC_ResourceConfiguration), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_EN_DC_ResourceConfiguration, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "en-DC-ResourceConfiguration" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToReleased_SgNBModAck_Item, resource_configuration), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_resource_configuration_4, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "resource-configuration" - }, - { ATF_POINTER, 1, offsetof(struct E_RABs_Admitted_ToReleased_SgNBModAck_Item, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P68, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_E_RABs_Admitted_ToReleased_SgNBModAck_Item_oms_1[] = { 3 }; -static const ber_tlv_tag_t asn_DEF_E_RABs_Admitted_ToReleased_SgNBModAck_Item_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_Admitted_ToReleased_SgNBModAck_Item_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e-RAB-ID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* en-DC-ResourceConfiguration */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* resource-configuration */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToReleased_SgNBModAck_Item_specs_1 = { - sizeof(struct E_RABs_Admitted_ToReleased_SgNBModAck_Item), - offsetof(struct E_RABs_Admitted_ToReleased_SgNBModAck_Item, _asn_ctx), - asn_MAP_E_RABs_Admitted_ToReleased_SgNBModAck_Item_tag2el_1, - 4, /* Count of tags in the map */ - asn_MAP_E_RABs_Admitted_ToReleased_SgNBModAck_Item_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 4, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToReleased_SgNBModAck_Item = { - "E-RABs-Admitted-ToReleased-SgNBModAck-Item", - "E-RABs-Admitted-ToReleased-SgNBModAck-Item", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_Admitted_ToReleased_SgNBModAck_Item_tags_1, - sizeof(asn_DEF_E_RABs_Admitted_ToReleased_SgNBModAck_Item_tags_1) - /sizeof(asn_DEF_E_RABs_Admitted_ToReleased_SgNBModAck_Item_tags_1[0]), /* 1 */ - asn_DEF_E_RABs_Admitted_ToReleased_SgNBModAck_Item_tags_1, /* Same as above */ - sizeof(asn_DEF_E_RABs_Admitted_ToReleased_SgNBModAck_Item_tags_1) - /sizeof(asn_DEF_E_RABs_Admitted_ToReleased_SgNBModAck_Item_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_Admitted_ToReleased_SgNBModAck_Item_1, - 4, /* Elements count */ - &asn_SPC_E_RABs_Admitted_ToReleased_SgNBModAck_Item_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/E-RABs-Admitted-ToReleased-SgNBModAck-Item.h b/e2sim/previous/ASN1c/E-RABs-Admitted-ToReleased-SgNBModAck-Item.h deleted file mode 100644 index 292f0a8..0000000 --- a/e2sim/previous/ASN1c/E-RABs-Admitted-ToReleased-SgNBModAck-Item.h +++ /dev/null @@ -1,92 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E_RABs_Admitted_ToReleased_SgNBModAck_Item_H_ -#define _E_RABs_Admitted_ToReleased_SgNBModAck_Item_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "E-RAB-ID.h" -#include "EN-DC-ResourceConfiguration.h" -#include "constr_CHOICE.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum E_RABs_Admitted_ToReleased_SgNBModAck_Item__resource_configuration_PR { - E_RABs_Admitted_ToReleased_SgNBModAck_Item__resource_configuration_PR_NOTHING, /* No components present */ - E_RABs_Admitted_ToReleased_SgNBModAck_Item__resource_configuration_PR_sgNBPDCPpresent, - E_RABs_Admitted_ToReleased_SgNBModAck_Item__resource_configuration_PR_sgNBPDCPnotpresent - /* Extensions may appear below */ - -} E_RABs_Admitted_ToReleased_SgNBModAck_Item__resource_configuration_PR; - -/* Forward declarations */ -struct ProtocolExtensionContainer; -struct E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresent; -struct E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresent; - -/* E-RABs-Admitted-ToReleased-SgNBModAck-Item */ -typedef struct E_RABs_Admitted_ToReleased_SgNBModAck_Item { - E_RAB_ID_t e_RAB_ID; - EN_DC_ResourceConfiguration_t en_DC_ResourceConfiguration; - struct E_RABs_Admitted_ToReleased_SgNBModAck_Item__resource_configuration { - E_RABs_Admitted_ToReleased_SgNBModAck_Item__resource_configuration_PR present; - union E_RABs_Admitted_ToReleased_SgNBModAck_Item__resource_configuration_u { - struct E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresent *sgNBPDCPpresent; - struct E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresent *sgNBPDCPnotpresent; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } resource_configuration; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_Admitted_ToReleased_SgNBModAck_Item_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToReleased_SgNBModAck_Item; - -#ifdef __cplusplus -} -#endif - -#endif /* _E_RABs_Admitted_ToReleased_SgNBModAck_Item_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPnotpresent.c b/e2sim/previous/ASN1c/E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPnotpresent.c deleted file mode 100644 index 0d13314..0000000 --- a/e2sim/previous/ASN1c/E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPnotpresent.c +++ /dev/null @@ -1,82 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPnotpresent.h" - -#include "GTPtunnelEndpoint.h" -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresent_1[] = { - { ATF_POINTER, 2, offsetof(struct E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresent, secondary_meNB_UL_GTP_TEIDatPDCP), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GTPtunnelEndpoint, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "secondary-meNB-UL-GTP-TEIDatPDCP" - }, - { ATF_POINTER, 1, offsetof(struct E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresent, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P77, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresent_oms_1[] = { 0, 1 }; -static const ber_tlv_tag_t asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresent_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresent_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* secondary-meNB-UL-GTP-TEIDatPDCP */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresent_specs_1 = { - sizeof(struct E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresent), - offsetof(struct E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresent, _asn_ctx), - asn_MAP_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresent_tag2el_1, - 2, /* Count of tags in the map */ - asn_MAP_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresent_oms_1, /* Optional members */ - 2, 0, /* Root/Additions */ - 2, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresent = { - "E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPnotpresent", - "E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPnotpresent", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresent_tags_1, - sizeof(asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresent_tags_1) - /sizeof(asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresent_tags_1[0]), /* 1 */ - asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresent_tags_1, /* Same as above */ - sizeof(asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresent_tags_1) - /sizeof(asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresent_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresent_1, - 2, /* Elements count */ - &asn_SPC_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresent_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPnotpresent.h b/e2sim/previous/ASN1c/E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPnotpresent.h deleted file mode 100644 index 7f921db..0000000 --- a/e2sim/previous/ASN1c/E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPnotpresent.h +++ /dev/null @@ -1,66 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresent_H_ -#define _E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresent_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct GTPtunnelEndpoint; -struct ProtocolExtensionContainer; - -/* E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPnotpresent */ -typedef struct E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresent { - struct GTPtunnelEndpoint *secondary_meNB_UL_GTP_TEIDatPDCP; /* OPTIONAL */ - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresent_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresent; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresent_specs_1; -extern asn_TYPE_member_t asn_MBR_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresent_1[2]; - -#ifdef __cplusplus -} -#endif - -#endif /* _E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresent_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPpresent.c b/e2sim/previous/ASN1c/E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPpresent.c deleted file mode 100644 index ff3050f..0000000 --- a/e2sim/previous/ASN1c/E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPpresent.c +++ /dev/null @@ -1,71 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPpresent.h" - -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresent_1[] = { - { ATF_POINTER, 1, offsetof(struct E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresent, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P76, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresent_oms_1[] = { 0 }; -static const ber_tlv_tag_t asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresent_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresent_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresent_specs_1 = { - sizeof(struct E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresent), - offsetof(struct E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresent, _asn_ctx), - asn_MAP_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresent_tag2el_1, - 1, /* Count of tags in the map */ - asn_MAP_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresent_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresent = { - "E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPpresent", - "E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPpresent", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresent_tags_1, - sizeof(asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresent_tags_1) - /sizeof(asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresent_tags_1[0]), /* 1 */ - asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresent_tags_1, /* Same as above */ - sizeof(asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresent_tags_1) - /sizeof(asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresent_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresent_1, - 1, /* Elements count */ - &asn_SPC_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresent_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPpresent.h b/e2sim/previous/ASN1c/E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPpresent.h deleted file mode 100644 index 3324a3a..0000000 --- a/e2sim/previous/ASN1c/E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPpresent.h +++ /dev/null @@ -1,64 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresent_H_ -#define _E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresent_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPpresent */ -typedef struct E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresent { - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresent_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresent; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresent_specs_1; -extern asn_TYPE_member_t asn_MBR_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresent_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresent_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E-RABs-AdmittedToBeModified-SgNBModConf-Item.c b/e2sim/previous/ASN1c/E-RABs-AdmittedToBeModified-SgNBModConf-Item.c deleted file mode 100644 index 467a91f..0000000 --- a/e2sim/previous/ASN1c/E-RABs-AdmittedToBeModified-SgNBModConf-Item.c +++ /dev/null @@ -1,157 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E-RABs-AdmittedToBeModified-SgNBModConf-Item.h" - -#include "ProtocolExtensionContainer.h" -#include "E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPpresent.h" -#include "E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPnotpresent.h" -static asn_per_constraints_t asn_PER_type_resource_configuration_constr_4 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_resource_configuration_4[] = { - { ATF_POINTER, 0, offsetof(struct E_RABs_AdmittedToBeModified_SgNBModConf_Item__resource_configuration, choice.sgNBPDCPpresent), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresent, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "sgNBPDCPpresent" - }, - { ATF_POINTER, 0, offsetof(struct E_RABs_AdmittedToBeModified_SgNBModConf_Item__resource_configuration, choice.sgNBPDCPnotpresent), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresent, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "sgNBPDCPnotpresent" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_resource_configuration_tag2el_4[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sgNBPDCPpresent */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* sgNBPDCPnotpresent */ -}; -static asn_CHOICE_specifics_t asn_SPC_resource_configuration_specs_4 = { - sizeof(struct E_RABs_AdmittedToBeModified_SgNBModConf_Item__resource_configuration), - offsetof(struct E_RABs_AdmittedToBeModified_SgNBModConf_Item__resource_configuration, _asn_ctx), - offsetof(struct E_RABs_AdmittedToBeModified_SgNBModConf_Item__resource_configuration, present), - sizeof(((struct E_RABs_AdmittedToBeModified_SgNBModConf_Item__resource_configuration *)0)->present), - asn_MAP_resource_configuration_tag2el_4, - 2, /* Count of tags in the map */ - 0, 0, - 2 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_resource_configuration_4 = { - "resource-configuration", - "resource-configuration", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, &asn_PER_type_resource_configuration_constr_4, CHOICE_constraint }, - asn_MBR_resource_configuration_4, - 2, /* Elements count */ - &asn_SPC_resource_configuration_specs_4 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_E_RABs_AdmittedToBeModified_SgNBModConf_Item_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_AdmittedToBeModified_SgNBModConf_Item, e_RAB_ID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E_RAB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "e-RAB-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_AdmittedToBeModified_SgNBModConf_Item, en_DC_ResourceConfiguration), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_EN_DC_ResourceConfiguration, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "en-DC-ResourceConfiguration" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_AdmittedToBeModified_SgNBModConf_Item, resource_configuration), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_resource_configuration_4, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "resource-configuration" - }, - { ATF_POINTER, 1, offsetof(struct E_RABs_AdmittedToBeModified_SgNBModConf_Item, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P75, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_E_RABs_AdmittedToBeModified_SgNBModConf_Item_oms_1[] = { 3 }; -static const ber_tlv_tag_t asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_Item_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_AdmittedToBeModified_SgNBModConf_Item_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e-RAB-ID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* en-DC-ResourceConfiguration */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* resource-configuration */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_E_RABs_AdmittedToBeModified_SgNBModConf_Item_specs_1 = { - sizeof(struct E_RABs_AdmittedToBeModified_SgNBModConf_Item), - offsetof(struct E_RABs_AdmittedToBeModified_SgNBModConf_Item, _asn_ctx), - asn_MAP_E_RABs_AdmittedToBeModified_SgNBModConf_Item_tag2el_1, - 4, /* Count of tags in the map */ - asn_MAP_E_RABs_AdmittedToBeModified_SgNBModConf_Item_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 4, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_Item = { - "E-RABs-AdmittedToBeModified-SgNBModConf-Item", - "E-RABs-AdmittedToBeModified-SgNBModConf-Item", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_Item_tags_1, - sizeof(asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_Item_tags_1) - /sizeof(asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_Item_tags_1[0]), /* 1 */ - asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_Item_tags_1, /* Same as above */ - sizeof(asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_Item_tags_1) - /sizeof(asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_Item_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_AdmittedToBeModified_SgNBModConf_Item_1, - 4, /* Elements count */ - &asn_SPC_E_RABs_AdmittedToBeModified_SgNBModConf_Item_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/E-RABs-AdmittedToBeModified-SgNBModConf-Item.h b/e2sim/previous/ASN1c/E-RABs-AdmittedToBeModified-SgNBModConf-Item.h deleted file mode 100644 index 1802fa0..0000000 --- a/e2sim/previous/ASN1c/E-RABs-AdmittedToBeModified-SgNBModConf-Item.h +++ /dev/null @@ -1,92 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E_RABs_AdmittedToBeModified_SgNBModConf_Item_H_ -#define _E_RABs_AdmittedToBeModified_SgNBModConf_Item_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "E-RAB-ID.h" -#include "EN-DC-ResourceConfiguration.h" -#include "constr_CHOICE.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum E_RABs_AdmittedToBeModified_SgNBModConf_Item__resource_configuration_PR { - E_RABs_AdmittedToBeModified_SgNBModConf_Item__resource_configuration_PR_NOTHING, /* No components present */ - E_RABs_AdmittedToBeModified_SgNBModConf_Item__resource_configuration_PR_sgNBPDCPpresent, - E_RABs_AdmittedToBeModified_SgNBModConf_Item__resource_configuration_PR_sgNBPDCPnotpresent - /* Extensions may appear below */ - -} E_RABs_AdmittedToBeModified_SgNBModConf_Item__resource_configuration_PR; - -/* Forward declarations */ -struct ProtocolExtensionContainer; -struct E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresent; -struct E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresent; - -/* E-RABs-AdmittedToBeModified-SgNBModConf-Item */ -typedef struct E_RABs_AdmittedToBeModified_SgNBModConf_Item { - E_RAB_ID_t e_RAB_ID; - EN_DC_ResourceConfiguration_t en_DC_ResourceConfiguration; - struct E_RABs_AdmittedToBeModified_SgNBModConf_Item__resource_configuration { - E_RABs_AdmittedToBeModified_SgNBModConf_Item__resource_configuration_PR present; - union E_RABs_AdmittedToBeModified_SgNBModConf_Item__resource_configuration_u { - struct E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresent *sgNBPDCPpresent; - struct E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresent *sgNBPDCPnotpresent; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } resource_configuration; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_AdmittedToBeModified_SgNBModConf_Item_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_Item; - -#ifdef __cplusplus -} -#endif - -#endif /* _E_RABs_AdmittedToBeModified_SgNBModConf_Item_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E-RABs-AdmittedToBeModified-SgNBModConfList.c b/e2sim/previous/ASN1c/E-RABs-AdmittedToBeModified-SgNBModConfList.c deleted file mode 100644 index 505b502..0000000 --- a/e2sim/previous/ASN1c/E-RABs-AdmittedToBeModified-SgNBModConfList.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E-RABs-AdmittedToBeModified-SgNBModConfList.h" - -#include "ProtocolIE-Single-Container.h" -static asn_per_constraints_t asn_PER_type_E_RABs_AdmittedToBeModified_SgNBModConfList_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 8, 8, 1, 256 } /* (SIZE(1..256)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_E_RABs_AdmittedToBeModified_SgNBModConfList_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ProtocolIE_Single_Container_122P38, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConfList_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_E_RABs_AdmittedToBeModified_SgNBModConfList_specs_1 = { - sizeof(struct E_RABs_AdmittedToBeModified_SgNBModConfList), - offsetof(struct E_RABs_AdmittedToBeModified_SgNBModConfList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConfList = { - "E-RABs-AdmittedToBeModified-SgNBModConfList", - "E-RABs-AdmittedToBeModified-SgNBModConfList", - &asn_OP_SEQUENCE_OF, - asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConfList_tags_1, - sizeof(asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConfList_tags_1) - /sizeof(asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConfList_tags_1[0]), /* 1 */ - asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConfList_tags_1, /* Same as above */ - sizeof(asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConfList_tags_1) - /sizeof(asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConfList_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_E_RABs_AdmittedToBeModified_SgNBModConfList_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_E_RABs_AdmittedToBeModified_SgNBModConfList_1, - 1, /* Single element */ - &asn_SPC_E_RABs_AdmittedToBeModified_SgNBModConfList_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/E-RABs-AdmittedToBeModified-SgNBModConfList.h b/e2sim/previous/ASN1c/E-RABs-AdmittedToBeModified-SgNBModConfList.h deleted file mode 100644 index 974237c..0000000 --- a/e2sim/previous/ASN1c/E-RABs-AdmittedToBeModified-SgNBModConfList.h +++ /dev/null @@ -1,59 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E_RABs_AdmittedToBeModified_SgNBModConfList_H_ -#define _E_RABs_AdmittedToBeModified_SgNBModConfList_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolIE_Single_Container; - -/* E-RABs-AdmittedToBeModified-SgNBModConfList */ -typedef struct E_RABs_AdmittedToBeModified_SgNBModConfList { - A_SEQUENCE_OF(struct ProtocolIE_Single_Container) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_AdmittedToBeModified_SgNBModConfList_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConfList; - -#ifdef __cplusplus -} -#endif - -#endif /* _E_RABs_AdmittedToBeModified_SgNBModConfList_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E-RABs-DataForwardingAddress-Item.c b/e2sim/previous/ASN1c/E-RABs-DataForwardingAddress-Item.c deleted file mode 100644 index b28fe28..0000000 --- a/e2sim/previous/ASN1c/E-RABs-DataForwardingAddress-Item.c +++ /dev/null @@ -1,91 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E-RABs-DataForwardingAddress-Item.h" - -#include "ProtocolExtensionContainer.h" -static asn_TYPE_member_t asn_MBR_E_RABs_DataForwardingAddress_Item_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_DataForwardingAddress_Item, e_RAB_ID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E_RAB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "e-RAB-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_DataForwardingAddress_Item, dl_GTPtunnelEndpoint), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GTPtunnelEndpoint, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "dl-GTPtunnelEndpoint" - }, - { ATF_POINTER, 1, offsetof(struct E_RABs_DataForwardingAddress_Item, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P103, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_E_RABs_DataForwardingAddress_Item_oms_1[] = { 2 }; -static const ber_tlv_tag_t asn_DEF_E_RABs_DataForwardingAddress_Item_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_DataForwardingAddress_Item_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e-RAB-ID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* dl-GTPtunnelEndpoint */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_E_RABs_DataForwardingAddress_Item_specs_1 = { - sizeof(struct E_RABs_DataForwardingAddress_Item), - offsetof(struct E_RABs_DataForwardingAddress_Item, _asn_ctx), - asn_MAP_E_RABs_DataForwardingAddress_Item_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_E_RABs_DataForwardingAddress_Item_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_DataForwardingAddress_Item = { - "E-RABs-DataForwardingAddress-Item", - "E-RABs-DataForwardingAddress-Item", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_DataForwardingAddress_Item_tags_1, - sizeof(asn_DEF_E_RABs_DataForwardingAddress_Item_tags_1) - /sizeof(asn_DEF_E_RABs_DataForwardingAddress_Item_tags_1[0]), /* 1 */ - asn_DEF_E_RABs_DataForwardingAddress_Item_tags_1, /* Same as above */ - sizeof(asn_DEF_E_RABs_DataForwardingAddress_Item_tags_1) - /sizeof(asn_DEF_E_RABs_DataForwardingAddress_Item_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_DataForwardingAddress_Item_1, - 3, /* Elements count */ - &asn_SPC_E_RABs_DataForwardingAddress_Item_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/E-RABs-DataForwardingAddress-Item.h b/e2sim/previous/ASN1c/E-RABs-DataForwardingAddress-Item.h deleted file mode 100644 index 84c5d98..0000000 --- a/e2sim/previous/ASN1c/E-RABs-DataForwardingAddress-Item.h +++ /dev/null @@ -1,66 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E_RABs_DataForwardingAddress_Item_H_ -#define _E_RABs_DataForwardingAddress_Item_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "E-RAB-ID.h" -#include "GTPtunnelEndpoint.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* E-RABs-DataForwardingAddress-Item */ -typedef struct E_RABs_DataForwardingAddress_Item { - E_RAB_ID_t e_RAB_ID; - GTPtunnelEndpoint_t dl_GTPtunnelEndpoint; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_DataForwardingAddress_Item_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_DataForwardingAddress_Item; - -#ifdef __cplusplus -} -#endif - -#endif /* _E_RABs_DataForwardingAddress_Item_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E-RABs-DataForwardingAddress-List.c b/e2sim/previous/ASN1c/E-RABs-DataForwardingAddress-List.c deleted file mode 100644 index bb83dd4..0000000 --- a/e2sim/previous/ASN1c/E-RABs-DataForwardingAddress-List.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E-RABs-DataForwardingAddress-List.h" - -#include "ProtocolIE-Single-Container.h" -static asn_per_constraints_t asn_PER_type_E_RABs_DataForwardingAddress_List_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 8, 8, 1, 256 } /* (SIZE(1..256)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_E_RABs_DataForwardingAddress_List_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ProtocolIE_Single_Container_122P45, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_DataForwardingAddress_List_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_E_RABs_DataForwardingAddress_List_specs_1 = { - sizeof(struct E_RABs_DataForwardingAddress_List), - offsetof(struct E_RABs_DataForwardingAddress_List, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_DataForwardingAddress_List = { - "E-RABs-DataForwardingAddress-List", - "E-RABs-DataForwardingAddress-List", - &asn_OP_SEQUENCE_OF, - asn_DEF_E_RABs_DataForwardingAddress_List_tags_1, - sizeof(asn_DEF_E_RABs_DataForwardingAddress_List_tags_1) - /sizeof(asn_DEF_E_RABs_DataForwardingAddress_List_tags_1[0]), /* 1 */ - asn_DEF_E_RABs_DataForwardingAddress_List_tags_1, /* Same as above */ - sizeof(asn_DEF_E_RABs_DataForwardingAddress_List_tags_1) - /sizeof(asn_DEF_E_RABs_DataForwardingAddress_List_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_E_RABs_DataForwardingAddress_List_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_E_RABs_DataForwardingAddress_List_1, - 1, /* Single element */ - &asn_SPC_E_RABs_DataForwardingAddress_List_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/E-RABs-DataForwardingAddress-List.h b/e2sim/previous/ASN1c/E-RABs-DataForwardingAddress-List.h deleted file mode 100644 index 96dd116..0000000 --- a/e2sim/previous/ASN1c/E-RABs-DataForwardingAddress-List.h +++ /dev/null @@ -1,59 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E_RABs_DataForwardingAddress_List_H_ -#define _E_RABs_DataForwardingAddress_List_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolIE_Single_Container; - -/* E-RABs-DataForwardingAddress-List */ -typedef struct E_RABs_DataForwardingAddress_List { - A_SEQUENCE_OF(struct ProtocolIE_Single_Container) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_DataForwardingAddress_List_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_DataForwardingAddress_List; - -#ifdef __cplusplus -} -#endif - -#endif /* _E_RABs_DataForwardingAddress_List_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E-RABs-SubjectToCounterCheck-List.c b/e2sim/previous/ASN1c/E-RABs-SubjectToCounterCheck-List.c deleted file mode 100644 index 47fa4b9..0000000 --- a/e2sim/previous/ASN1c/E-RABs-SubjectToCounterCheck-List.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E-RABs-SubjectToCounterCheck-List.h" - -#include "ProtocolIE-Single-Container.h" -static asn_per_constraints_t asn_PER_type_E_RABs_SubjectToCounterCheck_List_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 8, 8, 1, 256 } /* (SIZE(1..256)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_E_RABs_SubjectToCounterCheck_List_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ProtocolIE_Single_Container_122P26, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_SubjectToCounterCheck_List_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_E_RABs_SubjectToCounterCheck_List_specs_1 = { - sizeof(struct E_RABs_SubjectToCounterCheck_List), - offsetof(struct E_RABs_SubjectToCounterCheck_List, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_SubjectToCounterCheck_List = { - "E-RABs-SubjectToCounterCheck-List", - "E-RABs-SubjectToCounterCheck-List", - &asn_OP_SEQUENCE_OF, - asn_DEF_E_RABs_SubjectToCounterCheck_List_tags_1, - sizeof(asn_DEF_E_RABs_SubjectToCounterCheck_List_tags_1) - /sizeof(asn_DEF_E_RABs_SubjectToCounterCheck_List_tags_1[0]), /* 1 */ - asn_DEF_E_RABs_SubjectToCounterCheck_List_tags_1, /* Same as above */ - sizeof(asn_DEF_E_RABs_SubjectToCounterCheck_List_tags_1) - /sizeof(asn_DEF_E_RABs_SubjectToCounterCheck_List_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_E_RABs_SubjectToCounterCheck_List_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_E_RABs_SubjectToCounterCheck_List_1, - 1, /* Single element */ - &asn_SPC_E_RABs_SubjectToCounterCheck_List_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/E-RABs-SubjectToCounterCheck-List.h b/e2sim/previous/ASN1c/E-RABs-SubjectToCounterCheck-List.h deleted file mode 100644 index 1aa0700..0000000 --- a/e2sim/previous/ASN1c/E-RABs-SubjectToCounterCheck-List.h +++ /dev/null @@ -1,59 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E_RABs_SubjectToCounterCheck_List_H_ -#define _E_RABs_SubjectToCounterCheck_List_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolIE_Single_Container; - -/* E-RABs-SubjectToCounterCheck-List */ -typedef struct E_RABs_SubjectToCounterCheck_List { - A_SEQUENCE_OF(struct ProtocolIE_Single_Container) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_SubjectToCounterCheck_List_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_SubjectToCounterCheck_List; - -#ifdef __cplusplus -} -#endif - -#endif /* _E_RABs_SubjectToCounterCheck_List_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E-RABs-SubjectToCounterCheckItem.c b/e2sim/previous/ASN1c/E-RABs-SubjectToCounterCheckItem.c deleted file mode 100644 index 0df0fe7..0000000 --- a/e2sim/previous/ASN1c/E-RABs-SubjectToCounterCheckItem.c +++ /dev/null @@ -1,243 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E-RABs-SubjectToCounterCheckItem.h" - -#include "ProtocolExtensionContainer.h" -static int -uL_Count_3_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - /* Constraint check succeeded */ - return 0; -} - -/* - * This type is implemented using NativeInteger, - * so here we adjust the DEF accordingly. - */ -static int -dL_Count_4_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - /* Constraint check succeeded */ - return 0; -} - -/* - * This type is implemented using NativeInteger, - * so here we adjust the DEF accordingly. - */ -static int -memb_uL_Count_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - /* Constraint check succeeded */ - return 0; -} - -static int -memb_dL_Count_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - /* Constraint check succeeded */ - return 0; -} - -static asn_per_constraints_t asn_PER_type_uL_Count_constr_3 CC_NOTUSED = { - { APC_CONSTRAINED, 32, -1, 0, 4294967295 } /* (0..4294967295) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_type_dL_Count_constr_4 CC_NOTUSED = { - { APC_CONSTRAINED, 32, -1, 0, 4294967295 } /* (0..4294967295) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_uL_Count_constr_3 CC_NOTUSED = { - { APC_CONSTRAINED, 32, -1, 0, 4294967295 } /* (0..4294967295) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_dL_Count_constr_4 CC_NOTUSED = { - { APC_CONSTRAINED, 32, -1, 0, 4294967295 } /* (0..4294967295) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_specifics_t asn_SPC_uL_Count_specs_3 = { - 0, 0, 0, 0, 0, - 0, /* Native long size */ - 1 /* Unsigned representation */ -}; -static const ber_tlv_tag_t asn_DEF_uL_Count_tags_3[] = { - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_uL_Count_3 = { - "uL-Count", - "uL-Count", - &asn_OP_NativeInteger, - asn_DEF_uL_Count_tags_3, - sizeof(asn_DEF_uL_Count_tags_3) - /sizeof(asn_DEF_uL_Count_tags_3[0]) - 1, /* 1 */ - asn_DEF_uL_Count_tags_3, /* Same as above */ - sizeof(asn_DEF_uL_Count_tags_3) - /sizeof(asn_DEF_uL_Count_tags_3[0]), /* 2 */ - { 0, &asn_PER_type_uL_Count_constr_3, uL_Count_3_constraint }, - 0, 0, /* No members */ - &asn_SPC_uL_Count_specs_3 /* Additional specs */ -}; - -static const asn_INTEGER_specifics_t asn_SPC_dL_Count_specs_4 = { - 0, 0, 0, 0, 0, - 0, /* Native long size */ - 1 /* Unsigned representation */ -}; -static const ber_tlv_tag_t asn_DEF_dL_Count_tags_4[] = { - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_dL_Count_4 = { - "dL-Count", - "dL-Count", - &asn_OP_NativeInteger, - asn_DEF_dL_Count_tags_4, - sizeof(asn_DEF_dL_Count_tags_4) - /sizeof(asn_DEF_dL_Count_tags_4[0]) - 1, /* 1 */ - asn_DEF_dL_Count_tags_4, /* Same as above */ - sizeof(asn_DEF_dL_Count_tags_4) - /sizeof(asn_DEF_dL_Count_tags_4[0]), /* 2 */ - { 0, &asn_PER_type_dL_Count_constr_4, dL_Count_4_constraint }, - 0, 0, /* No members */ - &asn_SPC_dL_Count_specs_4 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_E_RABs_SubjectToCounterCheckItem_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_SubjectToCounterCheckItem, e_RAB_ID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E_RAB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "e-RAB-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_SubjectToCounterCheckItem, uL_Count), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_uL_Count_3, - 0, - { 0, &asn_PER_memb_uL_Count_constr_3, memb_uL_Count_constraint_1 }, - 0, 0, /* No default value */ - "uL-Count" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_SubjectToCounterCheckItem, dL_Count), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_dL_Count_4, - 0, - { 0, &asn_PER_memb_dL_Count_constr_4, memb_dL_Count_constraint_1 }, - 0, 0, /* No default value */ - "dL-Count" - }, - { ATF_POINTER, 1, offsetof(struct E_RABs_SubjectToCounterCheckItem, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P41, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_E_RABs_SubjectToCounterCheckItem_oms_1[] = { 3 }; -static const ber_tlv_tag_t asn_DEF_E_RABs_SubjectToCounterCheckItem_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_SubjectToCounterCheckItem_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e-RAB-ID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* uL-Count */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* dL-Count */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_E_RABs_SubjectToCounterCheckItem_specs_1 = { - sizeof(struct E_RABs_SubjectToCounterCheckItem), - offsetof(struct E_RABs_SubjectToCounterCheckItem, _asn_ctx), - asn_MAP_E_RABs_SubjectToCounterCheckItem_tag2el_1, - 4, /* Count of tags in the map */ - asn_MAP_E_RABs_SubjectToCounterCheckItem_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 4, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_SubjectToCounterCheckItem = { - "E-RABs-SubjectToCounterCheckItem", - "E-RABs-SubjectToCounterCheckItem", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_SubjectToCounterCheckItem_tags_1, - sizeof(asn_DEF_E_RABs_SubjectToCounterCheckItem_tags_1) - /sizeof(asn_DEF_E_RABs_SubjectToCounterCheckItem_tags_1[0]), /* 1 */ - asn_DEF_E_RABs_SubjectToCounterCheckItem_tags_1, /* Same as above */ - sizeof(asn_DEF_E_RABs_SubjectToCounterCheckItem_tags_1) - /sizeof(asn_DEF_E_RABs_SubjectToCounterCheckItem_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_SubjectToCounterCheckItem_1, - 4, /* Elements count */ - &asn_SPC_E_RABs_SubjectToCounterCheckItem_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/E-RABs-SubjectToCounterCheckItem.h b/e2sim/previous/ASN1c/E-RABs-SubjectToCounterCheckItem.h deleted file mode 100644 index c83c6ca..0000000 --- a/e2sim/previous/ASN1c/E-RABs-SubjectToCounterCheckItem.h +++ /dev/null @@ -1,69 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E_RABs_SubjectToCounterCheckItem_H_ -#define _E_RABs_SubjectToCounterCheckItem_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "E-RAB-ID.h" -#include "NativeInteger.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* E-RABs-SubjectToCounterCheckItem */ -typedef struct E_RABs_SubjectToCounterCheckItem { - E_RAB_ID_t e_RAB_ID; - unsigned long uL_Count; - unsigned long dL_Count; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_SubjectToCounterCheckItem_t; - -/* Implementation */ -/* extern asn_TYPE_descriptor_t asn_DEF_uL_Count_3; // (Use -fall-defs-global to expose) */ -/* extern asn_TYPE_descriptor_t asn_DEF_dL_Count_4; // (Use -fall-defs-global to expose) */ -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_SubjectToCounterCheckItem; - -#ifdef __cplusplus -} -#endif - -#endif /* _E_RABs_SubjectToCounterCheckItem_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E-RABs-SubjectToSgNBCounterCheck-Item.c b/e2sim/previous/ASN1c/E-RABs-SubjectToSgNBCounterCheck-Item.c deleted file mode 100644 index 2be2432..0000000 --- a/e2sim/previous/ASN1c/E-RABs-SubjectToSgNBCounterCheck-Item.c +++ /dev/null @@ -1,243 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E-RABs-SubjectToSgNBCounterCheck-Item.h" - -#include "ProtocolExtensionContainer.h" -static int -uL_Count_3_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - /* Constraint check succeeded */ - return 0; -} - -/* - * This type is implemented using NativeInteger, - * so here we adjust the DEF accordingly. - */ -static int -dL_Count_4_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - /* Constraint check succeeded */ - return 0; -} - -/* - * This type is implemented using NativeInteger, - * so here we adjust the DEF accordingly. - */ -static int -memb_uL_Count_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - /* Constraint check succeeded */ - return 0; -} - -static int -memb_dL_Count_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - /* Constraint check succeeded */ - return 0; -} - -static asn_per_constraints_t asn_PER_type_uL_Count_constr_3 CC_NOTUSED = { - { APC_CONSTRAINED, 32, -1, 0, 4294967295 } /* (0..4294967295) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_type_dL_Count_constr_4 CC_NOTUSED = { - { APC_CONSTRAINED, 32, -1, 0, 4294967295 } /* (0..4294967295) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_uL_Count_constr_3 CC_NOTUSED = { - { APC_CONSTRAINED, 32, -1, 0, 4294967295 } /* (0..4294967295) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_dL_Count_constr_4 CC_NOTUSED = { - { APC_CONSTRAINED, 32, -1, 0, 4294967295 } /* (0..4294967295) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_specifics_t asn_SPC_uL_Count_specs_3 = { - 0, 0, 0, 0, 0, - 0, /* Native long size */ - 1 /* Unsigned representation */ -}; -static const ber_tlv_tag_t asn_DEF_uL_Count_tags_3[] = { - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_uL_Count_3 = { - "uL-Count", - "uL-Count", - &asn_OP_NativeInteger, - asn_DEF_uL_Count_tags_3, - sizeof(asn_DEF_uL_Count_tags_3) - /sizeof(asn_DEF_uL_Count_tags_3[0]) - 1, /* 1 */ - asn_DEF_uL_Count_tags_3, /* Same as above */ - sizeof(asn_DEF_uL_Count_tags_3) - /sizeof(asn_DEF_uL_Count_tags_3[0]), /* 2 */ - { 0, &asn_PER_type_uL_Count_constr_3, uL_Count_3_constraint }, - 0, 0, /* No members */ - &asn_SPC_uL_Count_specs_3 /* Additional specs */ -}; - -static const asn_INTEGER_specifics_t asn_SPC_dL_Count_specs_4 = { - 0, 0, 0, 0, 0, - 0, /* Native long size */ - 1 /* Unsigned representation */ -}; -static const ber_tlv_tag_t asn_DEF_dL_Count_tags_4[] = { - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_dL_Count_4 = { - "dL-Count", - "dL-Count", - &asn_OP_NativeInteger, - asn_DEF_dL_Count_tags_4, - sizeof(asn_DEF_dL_Count_tags_4) - /sizeof(asn_DEF_dL_Count_tags_4[0]) - 1, /* 1 */ - asn_DEF_dL_Count_tags_4, /* Same as above */ - sizeof(asn_DEF_dL_Count_tags_4) - /sizeof(asn_DEF_dL_Count_tags_4[0]), /* 2 */ - { 0, &asn_PER_type_dL_Count_constr_4, dL_Count_4_constraint }, - 0, 0, /* No members */ - &asn_SPC_dL_Count_specs_4 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_E_RABs_SubjectToSgNBCounterCheck_Item_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_SubjectToSgNBCounterCheck_Item, e_RAB_ID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E_RAB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "e-RAB-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_SubjectToSgNBCounterCheck_Item, uL_Count), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_uL_Count_3, - 0, - { 0, &asn_PER_memb_uL_Count_constr_3, memb_uL_Count_constraint_1 }, - 0, 0, /* No default value */ - "uL-Count" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_SubjectToSgNBCounterCheck_Item, dL_Count), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_dL_Count_4, - 0, - { 0, &asn_PER_memb_dL_Count_constr_4, memb_dL_Count_constraint_1 }, - 0, 0, /* No default value */ - "dL-Count" - }, - { ATF_POINTER, 1, offsetof(struct E_RABs_SubjectToSgNBCounterCheck_Item, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P86, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_E_RABs_SubjectToSgNBCounterCheck_Item_oms_1[] = { 3 }; -static const ber_tlv_tag_t asn_DEF_E_RABs_SubjectToSgNBCounterCheck_Item_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_SubjectToSgNBCounterCheck_Item_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e-RAB-ID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* uL-Count */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* dL-Count */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_E_RABs_SubjectToSgNBCounterCheck_Item_specs_1 = { - sizeof(struct E_RABs_SubjectToSgNBCounterCheck_Item), - offsetof(struct E_RABs_SubjectToSgNBCounterCheck_Item, _asn_ctx), - asn_MAP_E_RABs_SubjectToSgNBCounterCheck_Item_tag2el_1, - 4, /* Count of tags in the map */ - asn_MAP_E_RABs_SubjectToSgNBCounterCheck_Item_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 4, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_SubjectToSgNBCounterCheck_Item = { - "E-RABs-SubjectToSgNBCounterCheck-Item", - "E-RABs-SubjectToSgNBCounterCheck-Item", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_SubjectToSgNBCounterCheck_Item_tags_1, - sizeof(asn_DEF_E_RABs_SubjectToSgNBCounterCheck_Item_tags_1) - /sizeof(asn_DEF_E_RABs_SubjectToSgNBCounterCheck_Item_tags_1[0]), /* 1 */ - asn_DEF_E_RABs_SubjectToSgNBCounterCheck_Item_tags_1, /* Same as above */ - sizeof(asn_DEF_E_RABs_SubjectToSgNBCounterCheck_Item_tags_1) - /sizeof(asn_DEF_E_RABs_SubjectToSgNBCounterCheck_Item_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_SubjectToSgNBCounterCheck_Item_1, - 4, /* Elements count */ - &asn_SPC_E_RABs_SubjectToSgNBCounterCheck_Item_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/E-RABs-SubjectToSgNBCounterCheck-Item.h b/e2sim/previous/ASN1c/E-RABs-SubjectToSgNBCounterCheck-Item.h deleted file mode 100644 index fa17216..0000000 --- a/e2sim/previous/ASN1c/E-RABs-SubjectToSgNBCounterCheck-Item.h +++ /dev/null @@ -1,69 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E_RABs_SubjectToSgNBCounterCheck_Item_H_ -#define _E_RABs_SubjectToSgNBCounterCheck_Item_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "E-RAB-ID.h" -#include "NativeInteger.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* E-RABs-SubjectToSgNBCounterCheck-Item */ -typedef struct E_RABs_SubjectToSgNBCounterCheck_Item { - E_RAB_ID_t e_RAB_ID; - unsigned long uL_Count; - unsigned long dL_Count; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_SubjectToSgNBCounterCheck_Item_t; - -/* Implementation */ -/* extern asn_TYPE_descriptor_t asn_DEF_uL_Count_3; // (Use -fall-defs-global to expose) */ -/* extern asn_TYPE_descriptor_t asn_DEF_dL_Count_4; // (Use -fall-defs-global to expose) */ -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_SubjectToSgNBCounterCheck_Item; - -#ifdef __cplusplus -} -#endif - -#endif /* _E_RABs_SubjectToSgNBCounterCheck_Item_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E-RABs-SubjectToSgNBCounterCheck-List.c b/e2sim/previous/ASN1c/E-RABs-SubjectToSgNBCounterCheck-List.c deleted file mode 100644 index 788a025..0000000 --- a/e2sim/previous/ASN1c/E-RABs-SubjectToSgNBCounterCheck-List.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E-RABs-SubjectToSgNBCounterCheck-List.h" - -#include "ProtocolIE-Single-Container.h" -static asn_per_constraints_t asn_PER_type_E_RABs_SubjectToSgNBCounterCheck_List_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 8, 8, 1, 256 } /* (SIZE(1..256)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_E_RABs_SubjectToSgNBCounterCheck_List_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ProtocolIE_Single_Container_122P43, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_SubjectToSgNBCounterCheck_List_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_E_RABs_SubjectToSgNBCounterCheck_List_specs_1 = { - sizeof(struct E_RABs_SubjectToSgNBCounterCheck_List), - offsetof(struct E_RABs_SubjectToSgNBCounterCheck_List, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_SubjectToSgNBCounterCheck_List = { - "E-RABs-SubjectToSgNBCounterCheck-List", - "E-RABs-SubjectToSgNBCounterCheck-List", - &asn_OP_SEQUENCE_OF, - asn_DEF_E_RABs_SubjectToSgNBCounterCheck_List_tags_1, - sizeof(asn_DEF_E_RABs_SubjectToSgNBCounterCheck_List_tags_1) - /sizeof(asn_DEF_E_RABs_SubjectToSgNBCounterCheck_List_tags_1[0]), /* 1 */ - asn_DEF_E_RABs_SubjectToSgNBCounterCheck_List_tags_1, /* Same as above */ - sizeof(asn_DEF_E_RABs_SubjectToSgNBCounterCheck_List_tags_1) - /sizeof(asn_DEF_E_RABs_SubjectToSgNBCounterCheck_List_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_E_RABs_SubjectToSgNBCounterCheck_List_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_E_RABs_SubjectToSgNBCounterCheck_List_1, - 1, /* Single element */ - &asn_SPC_E_RABs_SubjectToSgNBCounterCheck_List_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/E-RABs-SubjectToSgNBCounterCheck-List.h b/e2sim/previous/ASN1c/E-RABs-SubjectToSgNBCounterCheck-List.h deleted file mode 100644 index dc588d1..0000000 --- a/e2sim/previous/ASN1c/E-RABs-SubjectToSgNBCounterCheck-List.h +++ /dev/null @@ -1,59 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E_RABs_SubjectToSgNBCounterCheck_List_H_ -#define _E_RABs_SubjectToSgNBCounterCheck_List_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolIE_Single_Container; - -/* E-RABs-SubjectToSgNBCounterCheck-List */ -typedef struct E_RABs_SubjectToSgNBCounterCheck_List { - A_SEQUENCE_OF(struct ProtocolIE_Single_Container) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_SubjectToSgNBCounterCheck_List_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_SubjectToSgNBCounterCheck_List; - -#ifdef __cplusplus -} -#endif - -#endif /* _E_RABs_SubjectToSgNBCounterCheck_List_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E-RABs-SubjectToStatusTransfer-Item.c b/e2sim/previous/ASN1c/E-RABs-SubjectToStatusTransfer-Item.c deleted file mode 100644 index e8ffdef..0000000 --- a/e2sim/previous/ASN1c/E-RABs-SubjectToStatusTransfer-Item.c +++ /dev/null @@ -1,111 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E-RABs-SubjectToStatusTransfer-Item.h" - -#include "ProtocolExtensionContainer.h" -static asn_TYPE_member_t asn_MBR_E_RABs_SubjectToStatusTransfer_Item_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_SubjectToStatusTransfer_Item, e_RAB_ID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E_RAB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "e-RAB-ID" - }, - { ATF_POINTER, 1, offsetof(struct E_RABs_SubjectToStatusTransfer_Item, receiveStatusofULPDCPSDUs), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ReceiveStatusofULPDCPSDUs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "receiveStatusofULPDCPSDUs" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_SubjectToStatusTransfer_Item, uL_COUNTvalue), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_COUNTvalue, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "uL-COUNTvalue" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_SubjectToStatusTransfer_Item, dL_COUNTvalue), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_COUNTvalue, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "dL-COUNTvalue" - }, - { ATF_POINTER, 1, offsetof(struct E_RABs_SubjectToStatusTransfer_Item, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (4 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P6, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_E_RABs_SubjectToStatusTransfer_Item_oms_1[] = { 1, 4 }; -static const ber_tlv_tag_t asn_DEF_E_RABs_SubjectToStatusTransfer_Item_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_SubjectToStatusTransfer_Item_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e-RAB-ID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* receiveStatusofULPDCPSDUs */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* uL-COUNTvalue */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* dL-COUNTvalue */ - { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* iE-Extensions */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_E_RABs_SubjectToStatusTransfer_Item_specs_1 = { - sizeof(struct E_RABs_SubjectToStatusTransfer_Item), - offsetof(struct E_RABs_SubjectToStatusTransfer_Item, _asn_ctx), - asn_MAP_E_RABs_SubjectToStatusTransfer_Item_tag2el_1, - 5, /* Count of tags in the map */ - asn_MAP_E_RABs_SubjectToStatusTransfer_Item_oms_1, /* Optional members */ - 2, 0, /* Root/Additions */ - 5, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_SubjectToStatusTransfer_Item = { - "E-RABs-SubjectToStatusTransfer-Item", - "E-RABs-SubjectToStatusTransfer-Item", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_SubjectToStatusTransfer_Item_tags_1, - sizeof(asn_DEF_E_RABs_SubjectToStatusTransfer_Item_tags_1) - /sizeof(asn_DEF_E_RABs_SubjectToStatusTransfer_Item_tags_1[0]), /* 1 */ - asn_DEF_E_RABs_SubjectToStatusTransfer_Item_tags_1, /* Same as above */ - sizeof(asn_DEF_E_RABs_SubjectToStatusTransfer_Item_tags_1) - /sizeof(asn_DEF_E_RABs_SubjectToStatusTransfer_Item_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_SubjectToStatusTransfer_Item_1, - 5, /* Elements count */ - &asn_SPC_E_RABs_SubjectToStatusTransfer_Item_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/E-RABs-SubjectToStatusTransfer-Item.h b/e2sim/previous/ASN1c/E-RABs-SubjectToStatusTransfer-Item.h deleted file mode 100644 index 819c4c6..0000000 --- a/e2sim/previous/ASN1c/E-RABs-SubjectToStatusTransfer-Item.h +++ /dev/null @@ -1,69 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E_RABs_SubjectToStatusTransfer_Item_H_ -#define _E_RABs_SubjectToStatusTransfer_Item_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "E-RAB-ID.h" -#include "ReceiveStatusofULPDCPSDUs.h" -#include "COUNTvalue.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* E-RABs-SubjectToStatusTransfer-Item */ -typedef struct E_RABs_SubjectToStatusTransfer_Item { - E_RAB_ID_t e_RAB_ID; - ReceiveStatusofULPDCPSDUs_t *receiveStatusofULPDCPSDUs; /* OPTIONAL */ - COUNTvalue_t uL_COUNTvalue; - COUNTvalue_t dL_COUNTvalue; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_SubjectToStatusTransfer_Item_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_SubjectToStatusTransfer_Item; - -#ifdef __cplusplus -} -#endif - -#endif /* _E_RABs_SubjectToStatusTransfer_Item_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E-RABs-SubjectToStatusTransfer-List.c b/e2sim/previous/ASN1c/E-RABs-SubjectToStatusTransfer-List.c deleted file mode 100644 index 6afcaa3..0000000 --- a/e2sim/previous/ASN1c/E-RABs-SubjectToStatusTransfer-List.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E-RABs-SubjectToStatusTransfer-List.h" - -#include "ProtocolIE-Single-Container.h" -static asn_per_constraints_t asn_PER_type_E_RABs_SubjectToStatusTransfer_List_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 8, 8, 1, 256 } /* (SIZE(1..256)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_E_RABs_SubjectToStatusTransfer_List_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ProtocolIE_Single_Container_122P8, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_SubjectToStatusTransfer_List_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_E_RABs_SubjectToStatusTransfer_List_specs_1 = { - sizeof(struct E_RABs_SubjectToStatusTransfer_List), - offsetof(struct E_RABs_SubjectToStatusTransfer_List, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_SubjectToStatusTransfer_List = { - "E-RABs-SubjectToStatusTransfer-List", - "E-RABs-SubjectToStatusTransfer-List", - &asn_OP_SEQUENCE_OF, - asn_DEF_E_RABs_SubjectToStatusTransfer_List_tags_1, - sizeof(asn_DEF_E_RABs_SubjectToStatusTransfer_List_tags_1) - /sizeof(asn_DEF_E_RABs_SubjectToStatusTransfer_List_tags_1[0]), /* 1 */ - asn_DEF_E_RABs_SubjectToStatusTransfer_List_tags_1, /* Same as above */ - sizeof(asn_DEF_E_RABs_SubjectToStatusTransfer_List_tags_1) - /sizeof(asn_DEF_E_RABs_SubjectToStatusTransfer_List_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_E_RABs_SubjectToStatusTransfer_List_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_E_RABs_SubjectToStatusTransfer_List_1, - 1, /* Single element */ - &asn_SPC_E_RABs_SubjectToStatusTransfer_List_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/E-RABs-SubjectToStatusTransfer-List.h b/e2sim/previous/ASN1c/E-RABs-SubjectToStatusTransfer-List.h deleted file mode 100644 index 924ac3c..0000000 --- a/e2sim/previous/ASN1c/E-RABs-SubjectToStatusTransfer-List.h +++ /dev/null @@ -1,59 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E_RABs_SubjectToStatusTransfer_List_H_ -#define _E_RABs_SubjectToStatusTransfer_List_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolIE_Single_Container; - -/* E-RABs-SubjectToStatusTransfer-List */ -typedef struct E_RABs_SubjectToStatusTransfer_List { - A_SEQUENCE_OF(struct ProtocolIE_Single_Container) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_SubjectToStatusTransfer_List_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_SubjectToStatusTransfer_List; - -#ifdef __cplusplus -} -#endif - -#endif /* _E_RABs_SubjectToStatusTransfer_List_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeAdded-Item-SCG-Bearer.c b/e2sim/previous/ASN1c/E-RABs-ToBeAdded-Item-SCG-Bearer.c deleted file mode 100644 index ad5f113..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeAdded-Item-SCG-Bearer.c +++ /dev/null @@ -1,111 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E-RABs-ToBeAdded-Item-SCG-Bearer.h" - -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_E_RABs_ToBeAdded_Item_SCG_Bearer_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_Item_SCG_Bearer, e_RAB_ID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E_RAB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "e-RAB-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_Item_SCG_Bearer, e_RAB_Level_QoS_Parameters), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E_RAB_Level_QoS_Parameters, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "e-RAB-Level-QoS-Parameters" - }, - { ATF_POINTER, 1, offsetof(struct E_RABs_ToBeAdded_Item_SCG_Bearer, dL_Forwarding), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_DL_Forwarding, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "dL-Forwarding" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_Item_SCG_Bearer, s1_UL_GTPtunnelEndpoint), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GTPtunnelEndpoint, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "s1-UL-GTPtunnelEndpoint" - }, - { ATF_POINTER, 1, offsetof(struct E_RABs_ToBeAdded_Item_SCG_Bearer, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (4 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P17, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_E_RABs_ToBeAdded_Item_SCG_Bearer_oms_1[] = { 2, 4 }; -static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeAdded_Item_SCG_Bearer_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeAdded_Item_SCG_Bearer_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e-RAB-ID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* e-RAB-Level-QoS-Parameters */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* dL-Forwarding */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* s1-UL-GTPtunnelEndpoint */ - { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeAdded_Item_SCG_Bearer_specs_1 = { - sizeof(struct E_RABs_ToBeAdded_Item_SCG_Bearer), - offsetof(struct E_RABs_ToBeAdded_Item_SCG_Bearer, _asn_ctx), - asn_MAP_E_RABs_ToBeAdded_Item_SCG_Bearer_tag2el_1, - 5, /* Count of tags in the map */ - asn_MAP_E_RABs_ToBeAdded_Item_SCG_Bearer_oms_1, /* Optional members */ - 2, 0, /* Root/Additions */ - 5, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_Item_SCG_Bearer = { - "E-RABs-ToBeAdded-Item-SCG-Bearer", - "E-RABs-ToBeAdded-Item-SCG-Bearer", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_ToBeAdded_Item_SCG_Bearer_tags_1, - sizeof(asn_DEF_E_RABs_ToBeAdded_Item_SCG_Bearer_tags_1) - /sizeof(asn_DEF_E_RABs_ToBeAdded_Item_SCG_Bearer_tags_1[0]), /* 1 */ - asn_DEF_E_RABs_ToBeAdded_Item_SCG_Bearer_tags_1, /* Same as above */ - sizeof(asn_DEF_E_RABs_ToBeAdded_Item_SCG_Bearer_tags_1) - /sizeof(asn_DEF_E_RABs_ToBeAdded_Item_SCG_Bearer_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_ToBeAdded_Item_SCG_Bearer_1, - 5, /* Elements count */ - &asn_SPC_E_RABs_ToBeAdded_Item_SCG_Bearer_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeAdded-Item-SCG-Bearer.h b/e2sim/previous/ASN1c/E-RABs-ToBeAdded-Item-SCG-Bearer.h deleted file mode 100644 index ef3e85c..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeAdded-Item-SCG-Bearer.h +++ /dev/null @@ -1,72 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E_RABs_ToBeAdded_Item_SCG_Bearer_H_ -#define _E_RABs_ToBeAdded_Item_SCG_Bearer_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "E-RAB-ID.h" -#include "E-RAB-Level-QoS-Parameters.h" -#include "DL-Forwarding.h" -#include "GTPtunnelEndpoint.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* E-RABs-ToBeAdded-Item-SCG-Bearer */ -typedef struct E_RABs_ToBeAdded_Item_SCG_Bearer { - E_RAB_ID_t e_RAB_ID; - E_RAB_Level_QoS_Parameters_t e_RAB_Level_QoS_Parameters; - DL_Forwarding_t *dL_Forwarding; /* OPTIONAL */ - GTPtunnelEndpoint_t s1_UL_GTPtunnelEndpoint; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeAdded_Item_SCG_Bearer_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_Item_SCG_Bearer; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeAdded_Item_SCG_Bearer_specs_1; -extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeAdded_Item_SCG_Bearer_1[5]; - -#ifdef __cplusplus -} -#endif - -#endif /* _E_RABs_ToBeAdded_Item_SCG_Bearer_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeAdded-Item-Split-Bearer.c b/e2sim/previous/ASN1c/E-RABs-ToBeAdded-Item-Split-Bearer.c deleted file mode 100644 index af38ca4..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeAdded-Item-Split-Bearer.c +++ /dev/null @@ -1,101 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E-RABs-ToBeAdded-Item-Split-Bearer.h" - -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_E_RABs_ToBeAdded_Item_Split_Bearer_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_Item_Split_Bearer, e_RAB_ID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E_RAB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "e-RAB-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_Item_Split_Bearer, e_RAB_Level_QoS_Parameters), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E_RAB_Level_QoS_Parameters, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "e-RAB-Level-QoS-Parameters" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_Item_Split_Bearer, meNB_GTPtunnelEndpoint), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GTPtunnelEndpoint, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "meNB-GTPtunnelEndpoint" - }, - { ATF_POINTER, 1, offsetof(struct E_RABs_ToBeAdded_Item_Split_Bearer, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P18, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_E_RABs_ToBeAdded_Item_Split_Bearer_oms_1[] = { 3 }; -static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeAdded_Item_Split_Bearer_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeAdded_Item_Split_Bearer_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e-RAB-ID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* e-RAB-Level-QoS-Parameters */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* meNB-GTPtunnelEndpoint */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeAdded_Item_Split_Bearer_specs_1 = { - sizeof(struct E_RABs_ToBeAdded_Item_Split_Bearer), - offsetof(struct E_RABs_ToBeAdded_Item_Split_Bearer, _asn_ctx), - asn_MAP_E_RABs_ToBeAdded_Item_Split_Bearer_tag2el_1, - 4, /* Count of tags in the map */ - asn_MAP_E_RABs_ToBeAdded_Item_Split_Bearer_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 4, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_Item_Split_Bearer = { - "E-RABs-ToBeAdded-Item-Split-Bearer", - "E-RABs-ToBeAdded-Item-Split-Bearer", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_ToBeAdded_Item_Split_Bearer_tags_1, - sizeof(asn_DEF_E_RABs_ToBeAdded_Item_Split_Bearer_tags_1) - /sizeof(asn_DEF_E_RABs_ToBeAdded_Item_Split_Bearer_tags_1[0]), /* 1 */ - asn_DEF_E_RABs_ToBeAdded_Item_Split_Bearer_tags_1, /* Same as above */ - sizeof(asn_DEF_E_RABs_ToBeAdded_Item_Split_Bearer_tags_1) - /sizeof(asn_DEF_E_RABs_ToBeAdded_Item_Split_Bearer_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_ToBeAdded_Item_Split_Bearer_1, - 4, /* Elements count */ - &asn_SPC_E_RABs_ToBeAdded_Item_Split_Bearer_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeAdded-Item-Split-Bearer.h b/e2sim/previous/ASN1c/E-RABs-ToBeAdded-Item-Split-Bearer.h deleted file mode 100644 index b1d3552..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeAdded-Item-Split-Bearer.h +++ /dev/null @@ -1,70 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E_RABs_ToBeAdded_Item_Split_Bearer_H_ -#define _E_RABs_ToBeAdded_Item_Split_Bearer_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "E-RAB-ID.h" -#include "E-RAB-Level-QoS-Parameters.h" -#include "GTPtunnelEndpoint.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* E-RABs-ToBeAdded-Item-Split-Bearer */ -typedef struct E_RABs_ToBeAdded_Item_Split_Bearer { - E_RAB_ID_t e_RAB_ID; - E_RAB_Level_QoS_Parameters_t e_RAB_Level_QoS_Parameters; - GTPtunnelEndpoint_t meNB_GTPtunnelEndpoint; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeAdded_Item_Split_Bearer_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_Item_Split_Bearer; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeAdded_Item_Split_Bearer_specs_1; -extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeAdded_Item_Split_Bearer_1[4]; - -#ifdef __cplusplus -} -#endif - -#endif /* _E_RABs_ToBeAdded_Item_Split_Bearer_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeAdded-Item.c b/e2sim/previous/ASN1c/E-RABs-ToBeAdded-Item.c deleted file mode 100644 index 9d548bd..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeAdded-Item.c +++ /dev/null @@ -1,82 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E-RABs-ToBeAdded-Item.h" - -#include "E-RABs-ToBeAdded-Item-SCG-Bearer.h" -#include "E-RABs-ToBeAdded-Item-Split-Bearer.h" -static asn_per_constraints_t asn_PER_type_E_RABs_ToBeAdded_Item_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_E_RABs_ToBeAdded_Item_1[] = { - { ATF_POINTER, 0, offsetof(struct E_RABs_ToBeAdded_Item, choice.sCG_Bearer), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E_RABs_ToBeAdded_Item_SCG_Bearer, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "sCG-Bearer" - }, - { ATF_POINTER, 0, offsetof(struct E_RABs_ToBeAdded_Item, choice.split_Bearer), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E_RABs_ToBeAdded_Item_Split_Bearer, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "split-Bearer" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeAdded_Item_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sCG-Bearer */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* split-Bearer */ -}; -static asn_CHOICE_specifics_t asn_SPC_E_RABs_ToBeAdded_Item_specs_1 = { - sizeof(struct E_RABs_ToBeAdded_Item), - offsetof(struct E_RABs_ToBeAdded_Item, _asn_ctx), - offsetof(struct E_RABs_ToBeAdded_Item, present), - sizeof(((struct E_RABs_ToBeAdded_Item *)0)->present), - asn_MAP_E_RABs_ToBeAdded_Item_tag2el_1, - 2, /* Count of tags in the map */ - 0, 0, - 2 /* Extensions start */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_Item = { - "E-RABs-ToBeAdded-Item", - "E-RABs-ToBeAdded-Item", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, &asn_PER_type_E_RABs_ToBeAdded_Item_constr_1, CHOICE_constraint }, - asn_MBR_E_RABs_ToBeAdded_Item_1, - 2, /* Elements count */ - &asn_SPC_E_RABs_ToBeAdded_Item_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeAdded-Item.h b/e2sim/previous/ASN1c/E-RABs-ToBeAdded-Item.h deleted file mode 100644 index b665fd2..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeAdded-Item.h +++ /dev/null @@ -1,76 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E_RABs_ToBeAdded_Item_H_ -#define _E_RABs_ToBeAdded_Item_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "constr_CHOICE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum E_RABs_ToBeAdded_Item_PR { - E_RABs_ToBeAdded_Item_PR_NOTHING, /* No components present */ - E_RABs_ToBeAdded_Item_PR_sCG_Bearer, - E_RABs_ToBeAdded_Item_PR_split_Bearer - /* Extensions may appear below */ - -} E_RABs_ToBeAdded_Item_PR; - -/* Forward declarations */ -struct E_RABs_ToBeAdded_Item_SCG_Bearer; -struct E_RABs_ToBeAdded_Item_Split_Bearer; - -/* E-RABs-ToBeAdded-Item */ -typedef struct E_RABs_ToBeAdded_Item { - E_RABs_ToBeAdded_Item_PR present; - union E_RABs_ToBeAdded_Item_u { - struct E_RABs_ToBeAdded_Item_SCG_Bearer *sCG_Bearer; - struct E_RABs_ToBeAdded_Item_Split_Bearer *split_Bearer; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeAdded_Item_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_Item; - -#ifdef __cplusplus -} -#endif - -#endif /* _E_RABs_ToBeAdded_Item_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeAdded-List-ModReq.c b/e2sim/previous/ASN1c/E-RABs-ToBeAdded-List-ModReq.c deleted file mode 100644 index 3beffc4..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeAdded-List-ModReq.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E-RABs-ToBeAdded-List-ModReq.h" - -#include "ProtocolIE-Single-Container.h" -asn_per_constraints_t asn_PER_type_E_RABs_ToBeAdded_List_ModReq_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 8, 8, 1, 256 } /* (SIZE(1..256)) */, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_E_RABs_ToBeAdded_List_ModReq_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ProtocolIE_Single_Container_122P17, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeAdded_List_ModReq_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_E_RABs_ToBeAdded_List_ModReq_specs_1 = { - sizeof(struct E_RABs_ToBeAdded_List_ModReq), - offsetof(struct E_RABs_ToBeAdded_List_ModReq, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_List_ModReq = { - "E-RABs-ToBeAdded-List-ModReq", - "E-RABs-ToBeAdded-List-ModReq", - &asn_OP_SEQUENCE_OF, - asn_DEF_E_RABs_ToBeAdded_List_ModReq_tags_1, - sizeof(asn_DEF_E_RABs_ToBeAdded_List_ModReq_tags_1) - /sizeof(asn_DEF_E_RABs_ToBeAdded_List_ModReq_tags_1[0]), /* 1 */ - asn_DEF_E_RABs_ToBeAdded_List_ModReq_tags_1, /* Same as above */ - sizeof(asn_DEF_E_RABs_ToBeAdded_List_ModReq_tags_1) - /sizeof(asn_DEF_E_RABs_ToBeAdded_List_ModReq_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_E_RABs_ToBeAdded_List_ModReq_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_E_RABs_ToBeAdded_List_ModReq_1, - 1, /* Single element */ - &asn_SPC_E_RABs_ToBeAdded_List_ModReq_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeAdded-List-ModReq.h b/e2sim/previous/ASN1c/E-RABs-ToBeAdded-List-ModReq.h deleted file mode 100644 index eb6bd42..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeAdded-List-ModReq.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E_RABs_ToBeAdded_List_ModReq_H_ -#define _E_RABs_ToBeAdded_List_ModReq_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolIE_Single_Container; - -/* E-RABs-ToBeAdded-List-ModReq */ -typedef struct E_RABs_ToBeAdded_List_ModReq { - A_SEQUENCE_OF(struct ProtocolIE_Single_Container) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeAdded_List_ModReq_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_List_ModReq; -extern asn_SET_OF_specifics_t asn_SPC_E_RABs_ToBeAdded_List_ModReq_specs_1; -extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeAdded_List_ModReq_1[1]; -extern asn_per_constraints_t asn_PER_type_E_RABs_ToBeAdded_List_ModReq_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _E_RABs_ToBeAdded_List_ModReq_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeAdded-List.c b/e2sim/previous/ASN1c/E-RABs-ToBeAdded-List.c deleted file mode 100644 index c83fed4..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeAdded-List.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E-RABs-ToBeAdded-List.h" - -#include "ProtocolIE-Single-Container.h" -static asn_per_constraints_t asn_PER_type_E_RABs_ToBeAdded_List_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 8, 8, 1, 256 } /* (SIZE(1..256)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_E_RABs_ToBeAdded_List_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ProtocolIE_Single_Container_122P15, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeAdded_List_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_E_RABs_ToBeAdded_List_specs_1 = { - sizeof(struct E_RABs_ToBeAdded_List), - offsetof(struct E_RABs_ToBeAdded_List, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_List = { - "E-RABs-ToBeAdded-List", - "E-RABs-ToBeAdded-List", - &asn_OP_SEQUENCE_OF, - asn_DEF_E_RABs_ToBeAdded_List_tags_1, - sizeof(asn_DEF_E_RABs_ToBeAdded_List_tags_1) - /sizeof(asn_DEF_E_RABs_ToBeAdded_List_tags_1[0]), /* 1 */ - asn_DEF_E_RABs_ToBeAdded_List_tags_1, /* Same as above */ - sizeof(asn_DEF_E_RABs_ToBeAdded_List_tags_1) - /sizeof(asn_DEF_E_RABs_ToBeAdded_List_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_E_RABs_ToBeAdded_List_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_E_RABs_ToBeAdded_List_1, - 1, /* Single element */ - &asn_SPC_E_RABs_ToBeAdded_List_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeAdded-List.h b/e2sim/previous/ASN1c/E-RABs-ToBeAdded-List.h deleted file mode 100644 index 785d5ae..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeAdded-List.h +++ /dev/null @@ -1,59 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E_RABs_ToBeAdded_List_H_ -#define _E_RABs_ToBeAdded_List_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolIE_Single_Container; - -/* E-RABs-ToBeAdded-List */ -typedef struct E_RABs_ToBeAdded_List { - A_SEQUENCE_OF(struct ProtocolIE_Single_Container) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeAdded_List_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_List; - -#ifdef __cplusplus -} -#endif - -#endif /* _E_RABs_ToBeAdded_List_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeAdded-ModReqItem-SCG-Bearer.c b/e2sim/previous/ASN1c/E-RABs-ToBeAdded-ModReqItem-SCG-Bearer.c deleted file mode 100644 index 2c6eada..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeAdded-ModReqItem-SCG-Bearer.c +++ /dev/null @@ -1,111 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E-RABs-ToBeAdded-ModReqItem-SCG-Bearer.h" - -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_E_RABs_ToBeAdded_ModReqItem_SCG_Bearer_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_ModReqItem_SCG_Bearer, e_RAB_ID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E_RAB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "e-RAB-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_ModReqItem_SCG_Bearer, e_RAB_Level_QoS_Parameters), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E_RAB_Level_QoS_Parameters, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "e-RAB-Level-QoS-Parameters" - }, - { ATF_POINTER, 1, offsetof(struct E_RABs_ToBeAdded_ModReqItem_SCG_Bearer, dL_Forwarding), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_DL_Forwarding, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "dL-Forwarding" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_ModReqItem_SCG_Bearer, s1_UL_GTPtunnelEndpoint), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GTPtunnelEndpoint, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "s1-UL-GTPtunnelEndpoint" - }, - { ATF_POINTER, 1, offsetof(struct E_RABs_ToBeAdded_ModReqItem_SCG_Bearer, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (4 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P24, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_E_RABs_ToBeAdded_ModReqItem_SCG_Bearer_oms_1[] = { 2, 4 }; -static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeAdded_ModReqItem_SCG_Bearer_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeAdded_ModReqItem_SCG_Bearer_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e-RAB-ID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* e-RAB-Level-QoS-Parameters */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* dL-Forwarding */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* s1-UL-GTPtunnelEndpoint */ - { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeAdded_ModReqItem_SCG_Bearer_specs_1 = { - sizeof(struct E_RABs_ToBeAdded_ModReqItem_SCG_Bearer), - offsetof(struct E_RABs_ToBeAdded_ModReqItem_SCG_Bearer, _asn_ctx), - asn_MAP_E_RABs_ToBeAdded_ModReqItem_SCG_Bearer_tag2el_1, - 5, /* Count of tags in the map */ - asn_MAP_E_RABs_ToBeAdded_ModReqItem_SCG_Bearer_oms_1, /* Optional members */ - 2, 0, /* Root/Additions */ - 5, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_ModReqItem_SCG_Bearer = { - "E-RABs-ToBeAdded-ModReqItem-SCG-Bearer", - "E-RABs-ToBeAdded-ModReqItem-SCG-Bearer", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_ToBeAdded_ModReqItem_SCG_Bearer_tags_1, - sizeof(asn_DEF_E_RABs_ToBeAdded_ModReqItem_SCG_Bearer_tags_1) - /sizeof(asn_DEF_E_RABs_ToBeAdded_ModReqItem_SCG_Bearer_tags_1[0]), /* 1 */ - asn_DEF_E_RABs_ToBeAdded_ModReqItem_SCG_Bearer_tags_1, /* Same as above */ - sizeof(asn_DEF_E_RABs_ToBeAdded_ModReqItem_SCG_Bearer_tags_1) - /sizeof(asn_DEF_E_RABs_ToBeAdded_ModReqItem_SCG_Bearer_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_ToBeAdded_ModReqItem_SCG_Bearer_1, - 5, /* Elements count */ - &asn_SPC_E_RABs_ToBeAdded_ModReqItem_SCG_Bearer_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeAdded-ModReqItem-SCG-Bearer.h b/e2sim/previous/ASN1c/E-RABs-ToBeAdded-ModReqItem-SCG-Bearer.h deleted file mode 100644 index 6b96484..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeAdded-ModReqItem-SCG-Bearer.h +++ /dev/null @@ -1,72 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E_RABs_ToBeAdded_ModReqItem_SCG_Bearer_H_ -#define _E_RABs_ToBeAdded_ModReqItem_SCG_Bearer_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "E-RAB-ID.h" -#include "E-RAB-Level-QoS-Parameters.h" -#include "DL-Forwarding.h" -#include "GTPtunnelEndpoint.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* E-RABs-ToBeAdded-ModReqItem-SCG-Bearer */ -typedef struct E_RABs_ToBeAdded_ModReqItem_SCG_Bearer { - E_RAB_ID_t e_RAB_ID; - E_RAB_Level_QoS_Parameters_t e_RAB_Level_QoS_Parameters; - DL_Forwarding_t *dL_Forwarding; /* OPTIONAL */ - GTPtunnelEndpoint_t s1_UL_GTPtunnelEndpoint; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeAdded_ModReqItem_SCG_Bearer_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_ModReqItem_SCG_Bearer; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeAdded_ModReqItem_SCG_Bearer_specs_1; -extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeAdded_ModReqItem_SCG_Bearer_1[5]; - -#ifdef __cplusplus -} -#endif - -#endif /* _E_RABs_ToBeAdded_ModReqItem_SCG_Bearer_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeAdded-ModReqItem-Split-Bearer.c b/e2sim/previous/ASN1c/E-RABs-ToBeAdded-ModReqItem-Split-Bearer.c deleted file mode 100644 index 2aa70e8..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeAdded-ModReqItem-Split-Bearer.c +++ /dev/null @@ -1,101 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E-RABs-ToBeAdded-ModReqItem-Split-Bearer.h" - -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_E_RABs_ToBeAdded_ModReqItem_Split_Bearer_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_ModReqItem_Split_Bearer, e_RAB_ID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E_RAB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "e-RAB-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_ModReqItem_Split_Bearer, e_RAB_Level_QoS_Parameters), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E_RAB_Level_QoS_Parameters, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "e-RAB-Level-QoS-Parameters" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_ModReqItem_Split_Bearer, meNB_GTPtunnelEndpoint), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GTPtunnelEndpoint, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "meNB-GTPtunnelEndpoint" - }, - { ATF_POINTER, 1, offsetof(struct E_RABs_ToBeAdded_ModReqItem_Split_Bearer, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P25, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_E_RABs_ToBeAdded_ModReqItem_Split_Bearer_oms_1[] = { 3 }; -static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeAdded_ModReqItem_Split_Bearer_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeAdded_ModReqItem_Split_Bearer_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e-RAB-ID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* e-RAB-Level-QoS-Parameters */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* meNB-GTPtunnelEndpoint */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeAdded_ModReqItem_Split_Bearer_specs_1 = { - sizeof(struct E_RABs_ToBeAdded_ModReqItem_Split_Bearer), - offsetof(struct E_RABs_ToBeAdded_ModReqItem_Split_Bearer, _asn_ctx), - asn_MAP_E_RABs_ToBeAdded_ModReqItem_Split_Bearer_tag2el_1, - 4, /* Count of tags in the map */ - asn_MAP_E_RABs_ToBeAdded_ModReqItem_Split_Bearer_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 4, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_ModReqItem_Split_Bearer = { - "E-RABs-ToBeAdded-ModReqItem-Split-Bearer", - "E-RABs-ToBeAdded-ModReqItem-Split-Bearer", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_ToBeAdded_ModReqItem_Split_Bearer_tags_1, - sizeof(asn_DEF_E_RABs_ToBeAdded_ModReqItem_Split_Bearer_tags_1) - /sizeof(asn_DEF_E_RABs_ToBeAdded_ModReqItem_Split_Bearer_tags_1[0]), /* 1 */ - asn_DEF_E_RABs_ToBeAdded_ModReqItem_Split_Bearer_tags_1, /* Same as above */ - sizeof(asn_DEF_E_RABs_ToBeAdded_ModReqItem_Split_Bearer_tags_1) - /sizeof(asn_DEF_E_RABs_ToBeAdded_ModReqItem_Split_Bearer_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_ToBeAdded_ModReqItem_Split_Bearer_1, - 4, /* Elements count */ - &asn_SPC_E_RABs_ToBeAdded_ModReqItem_Split_Bearer_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeAdded-ModReqItem-Split-Bearer.h b/e2sim/previous/ASN1c/E-RABs-ToBeAdded-ModReqItem-Split-Bearer.h deleted file mode 100644 index 3dc1ce2..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeAdded-ModReqItem-Split-Bearer.h +++ /dev/null @@ -1,70 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E_RABs_ToBeAdded_ModReqItem_Split_Bearer_H_ -#define _E_RABs_ToBeAdded_ModReqItem_Split_Bearer_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "E-RAB-ID.h" -#include "E-RAB-Level-QoS-Parameters.h" -#include "GTPtunnelEndpoint.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* E-RABs-ToBeAdded-ModReqItem-Split-Bearer */ -typedef struct E_RABs_ToBeAdded_ModReqItem_Split_Bearer { - E_RAB_ID_t e_RAB_ID; - E_RAB_Level_QoS_Parameters_t e_RAB_Level_QoS_Parameters; - GTPtunnelEndpoint_t meNB_GTPtunnelEndpoint; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeAdded_ModReqItem_Split_Bearer_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_ModReqItem_Split_Bearer; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeAdded_ModReqItem_Split_Bearer_specs_1; -extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeAdded_ModReqItem_Split_Bearer_1[4]; - -#ifdef __cplusplus -} -#endif - -#endif /* _E_RABs_ToBeAdded_ModReqItem_Split_Bearer_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeAdded-ModReqItem.c b/e2sim/previous/ASN1c/E-RABs-ToBeAdded-ModReqItem.c deleted file mode 100644 index f6ed5f6..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeAdded-ModReqItem.c +++ /dev/null @@ -1,82 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E-RABs-ToBeAdded-ModReqItem.h" - -#include "E-RABs-ToBeAdded-ModReqItem-SCG-Bearer.h" -#include "E-RABs-ToBeAdded-ModReqItem-Split-Bearer.h" -static asn_per_constraints_t asn_PER_type_E_RABs_ToBeAdded_ModReqItem_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_E_RABs_ToBeAdded_ModReqItem_1[] = { - { ATF_POINTER, 0, offsetof(struct E_RABs_ToBeAdded_ModReqItem, choice.sCG_Bearer), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E_RABs_ToBeAdded_ModReqItem_SCG_Bearer, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "sCG-Bearer" - }, - { ATF_POINTER, 0, offsetof(struct E_RABs_ToBeAdded_ModReqItem, choice.split_Bearer), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E_RABs_ToBeAdded_ModReqItem_Split_Bearer, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "split-Bearer" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeAdded_ModReqItem_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sCG-Bearer */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* split-Bearer */ -}; -static asn_CHOICE_specifics_t asn_SPC_E_RABs_ToBeAdded_ModReqItem_specs_1 = { - sizeof(struct E_RABs_ToBeAdded_ModReqItem), - offsetof(struct E_RABs_ToBeAdded_ModReqItem, _asn_ctx), - offsetof(struct E_RABs_ToBeAdded_ModReqItem, present), - sizeof(((struct E_RABs_ToBeAdded_ModReqItem *)0)->present), - asn_MAP_E_RABs_ToBeAdded_ModReqItem_tag2el_1, - 2, /* Count of tags in the map */ - 0, 0, - 2 /* Extensions start */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_ModReqItem = { - "E-RABs-ToBeAdded-ModReqItem", - "E-RABs-ToBeAdded-ModReqItem", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, &asn_PER_type_E_RABs_ToBeAdded_ModReqItem_constr_1, CHOICE_constraint }, - asn_MBR_E_RABs_ToBeAdded_ModReqItem_1, - 2, /* Elements count */ - &asn_SPC_E_RABs_ToBeAdded_ModReqItem_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeAdded-ModReqItem.h b/e2sim/previous/ASN1c/E-RABs-ToBeAdded-ModReqItem.h deleted file mode 100644 index a8146c1..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeAdded-ModReqItem.h +++ /dev/null @@ -1,76 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E_RABs_ToBeAdded_ModReqItem_H_ -#define _E_RABs_ToBeAdded_ModReqItem_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "constr_CHOICE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum E_RABs_ToBeAdded_ModReqItem_PR { - E_RABs_ToBeAdded_ModReqItem_PR_NOTHING, /* No components present */ - E_RABs_ToBeAdded_ModReqItem_PR_sCG_Bearer, - E_RABs_ToBeAdded_ModReqItem_PR_split_Bearer - /* Extensions may appear below */ - -} E_RABs_ToBeAdded_ModReqItem_PR; - -/* Forward declarations */ -struct E_RABs_ToBeAdded_ModReqItem_SCG_Bearer; -struct E_RABs_ToBeAdded_ModReqItem_Split_Bearer; - -/* E-RABs-ToBeAdded-ModReqItem */ -typedef struct E_RABs_ToBeAdded_ModReqItem { - E_RABs_ToBeAdded_ModReqItem_PR present; - union E_RABs_ToBeAdded_ModReqItem_u { - struct E_RABs_ToBeAdded_ModReqItem_SCG_Bearer *sCG_Bearer; - struct E_RABs_ToBeAdded_ModReqItem_Split_Bearer *split_Bearer; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeAdded_ModReqItem_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_ModReqItem; - -#ifdef __cplusplus -} -#endif - -#endif /* _E_RABs_ToBeAdded_ModReqItem_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPnotpresent.c b/e2sim/previous/ASN1c/E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPnotpresent.c deleted file mode 100644 index d2d3fc1..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPnotpresent.c +++ /dev/null @@ -1,123 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPnotpresent.h" - -#include "GTPtunnelEndpoint.h" -#include "ULConfiguration.h" -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresent_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresent, requested_SCG_E_RAB_Level_QoS_Parameters), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E_RAB_Level_QoS_Parameters, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "requested-SCG-E-RAB-Level-QoS-Parameters" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresent, meNB_UL_GTP_TEIDatPDCP), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GTPtunnelEndpoint, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "meNB-UL-GTP-TEIDatPDCP" - }, - { ATF_POINTER, 1, offsetof(struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresent, secondary_meNB_UL_GTP_TEIDatPDCP), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GTPtunnelEndpoint, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "secondary-meNB-UL-GTP-TEIDatPDCP" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresent, rlc_Mode), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RLCMode, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "rlc-Mode" - }, - { ATF_POINTER, 2, offsetof(struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresent, uL_Configuration), - (ASN_TAG_CLASS_CONTEXT | (4 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ULConfiguration, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "uL-Configuration" - }, - { ATF_POINTER, 1, offsetof(struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresent, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (5 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P46, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresent_oms_1[] = { 2, 4, 5 }; -static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresent_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresent_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* requested-SCG-E-RAB-Level-QoS-Parameters */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* meNB-UL-GTP-TEIDatPDCP */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* secondary-meNB-UL-GTP-TEIDatPDCP */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* rlc-Mode */ - { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* uL-Configuration */ - { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresent_specs_1 = { - sizeof(struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresent), - offsetof(struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresent, _asn_ctx), - asn_MAP_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresent_tag2el_1, - 6, /* Count of tags in the map */ - asn_MAP_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresent_oms_1, /* Optional members */ - 3, 0, /* Root/Additions */ - 6, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresent = { - "E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPnotpresent", - "E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPnotpresent", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresent_tags_1, - sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresent_tags_1) - /sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresent_tags_1[0]), /* 1 */ - asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresent_tags_1, /* Same as above */ - sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresent_tags_1) - /sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresent_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresent_1, - 6, /* Elements count */ - &asn_SPC_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresent_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPnotpresent.h b/e2sim/previous/ASN1c/E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPnotpresent.h deleted file mode 100644 index ee320d8..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPnotpresent.h +++ /dev/null @@ -1,74 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresent_H_ -#define _E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresent_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "E-RAB-Level-QoS-Parameters.h" -#include "GTPtunnelEndpoint.h" -#include "RLCMode.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct GTPtunnelEndpoint; -struct ULConfiguration; -struct ProtocolExtensionContainer; - -/* E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPnotpresent */ -typedef struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresent { - E_RAB_Level_QoS_Parameters_t requested_SCG_E_RAB_Level_QoS_Parameters; - GTPtunnelEndpoint_t meNB_UL_GTP_TEIDatPDCP; - struct GTPtunnelEndpoint *secondary_meNB_UL_GTP_TEIDatPDCP; /* OPTIONAL */ - RLCMode_t rlc_Mode; - struct ULConfiguration *uL_Configuration; /* OPTIONAL */ - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresent_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresent; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresent_specs_1; -extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresent_1[6]; - -#ifdef __cplusplus -} -#endif - -#endif /* _E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresent_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPpresent.c b/e2sim/previous/ASN1c/E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPpresent.c deleted file mode 100644 index 6f29d64..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPpresent.c +++ /dev/null @@ -1,123 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPpresent.h" - -#include "GBR-QosInformation.h" -#include "GTPtunnelEndpoint.h" -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresent_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresent, full_E_RAB_Level_QoS_Parameters), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E_RAB_Level_QoS_Parameters, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "full-E-RAB-Level-QoS-Parameters" - }, - { ATF_POINTER, 3, offsetof(struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresent, max_MCG_admit_E_RAB_Level_QoS_Parameters), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GBR_QosInformation, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "max-MCG-admit-E-RAB-Level-QoS-Parameters" - }, - { ATF_POINTER, 2, offsetof(struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresent, dL_Forwarding), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_DL_Forwarding, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "dL-Forwarding" - }, - { ATF_POINTER, 1, offsetof(struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresent, meNB_DL_GTP_TEIDatMCG), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GTPtunnelEndpoint, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "meNB-DL-GTP-TEIDatMCG" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresent, s1_UL_GTPtunnelEndpoint), - (ASN_TAG_CLASS_CONTEXT | (4 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GTPtunnelEndpoint, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "s1-UL-GTPtunnelEndpoint" - }, - { ATF_POINTER, 1, offsetof(struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresent, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (5 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P45, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresent_oms_1[] = { 1, 2, 3, 5 }; -static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresent_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresent_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* full-E-RAB-Level-QoS-Parameters */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* max-MCG-admit-E-RAB-Level-QoS-Parameters */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* dL-Forwarding */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* meNB-DL-GTP-TEIDatMCG */ - { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* s1-UL-GTPtunnelEndpoint */ - { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresent_specs_1 = { - sizeof(struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresent), - offsetof(struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresent, _asn_ctx), - asn_MAP_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresent_tag2el_1, - 6, /* Count of tags in the map */ - asn_MAP_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresent_oms_1, /* Optional members */ - 4, 0, /* Root/Additions */ - 6, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresent = { - "E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPpresent", - "E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPpresent", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresent_tags_1, - sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresent_tags_1) - /sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresent_tags_1[0]), /* 1 */ - asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresent_tags_1, /* Same as above */ - sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresent_tags_1) - /sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresent_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresent_1, - 6, /* Elements count */ - &asn_SPC_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresent_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPpresent.h b/e2sim/previous/ASN1c/E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPpresent.h deleted file mode 100644 index ee11e43..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPpresent.h +++ /dev/null @@ -1,74 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresent_H_ -#define _E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresent_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "E-RAB-Level-QoS-Parameters.h" -#include "DL-Forwarding.h" -#include "GTPtunnelEndpoint.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct GBR_QosInformation; -struct GTPtunnelEndpoint; -struct ProtocolExtensionContainer; - -/* E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPpresent */ -typedef struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresent { - E_RAB_Level_QoS_Parameters_t full_E_RAB_Level_QoS_Parameters; - struct GBR_QosInformation *max_MCG_admit_E_RAB_Level_QoS_Parameters; /* OPTIONAL */ - DL_Forwarding_t *dL_Forwarding; /* OPTIONAL */ - struct GTPtunnelEndpoint *meNB_DL_GTP_TEIDatMCG; /* OPTIONAL */ - GTPtunnelEndpoint_t s1_UL_GTPtunnelEndpoint; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresent_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresent; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresent_specs_1; -extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresent_1[6]; - -#ifdef __cplusplus -} -#endif - -#endif /* _E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresent_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeAdded-SgNBAddReq-Item.c b/e2sim/previous/ASN1c/E-RABs-ToBeAdded-SgNBAddReq-Item.c deleted file mode 100644 index 9e0ba66..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeAdded-SgNBAddReq-Item.c +++ /dev/null @@ -1,167 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E-RABs-ToBeAdded-SgNBAddReq-Item.h" - -#include "ProtocolExtensionContainer.h" -#include "E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPpresent.h" -#include "E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPnotpresent.h" -static asn_per_constraints_t asn_PER_type_resource_configuration_constr_5 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_resource_configuration_5[] = { - { ATF_POINTER, 0, offsetof(struct E_RABs_ToBeAdded_SgNBAddReq_Item__resource_configuration, choice.sgNBPDCPpresent), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresent, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "sgNBPDCPpresent" - }, - { ATF_POINTER, 0, offsetof(struct E_RABs_ToBeAdded_SgNBAddReq_Item__resource_configuration, choice.sgNBPDCPnotpresent), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresent, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "sgNBPDCPnotpresent" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_resource_configuration_tag2el_5[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sgNBPDCPpresent */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* sgNBPDCPnotpresent */ -}; -static asn_CHOICE_specifics_t asn_SPC_resource_configuration_specs_5 = { - sizeof(struct E_RABs_ToBeAdded_SgNBAddReq_Item__resource_configuration), - offsetof(struct E_RABs_ToBeAdded_SgNBAddReq_Item__resource_configuration, _asn_ctx), - offsetof(struct E_RABs_ToBeAdded_SgNBAddReq_Item__resource_configuration, present), - sizeof(((struct E_RABs_ToBeAdded_SgNBAddReq_Item__resource_configuration *)0)->present), - asn_MAP_resource_configuration_tag2el_5, - 2, /* Count of tags in the map */ - 0, 0, - 2 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_resource_configuration_5 = { - "resource-configuration", - "resource-configuration", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, &asn_PER_type_resource_configuration_constr_5, CHOICE_constraint }, - asn_MBR_resource_configuration_5, - 2, /* Elements count */ - &asn_SPC_resource_configuration_specs_5 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_E_RABs_ToBeAdded_SgNBAddReq_Item_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_SgNBAddReq_Item, e_RAB_ID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E_RAB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "e-RAB-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_SgNBAddReq_Item, drb_ID), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_DRB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "drb-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_SgNBAddReq_Item, en_DC_ResourceConfiguration), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_EN_DC_ResourceConfiguration, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "en-DC-ResourceConfiguration" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_SgNBAddReq_Item, resource_configuration), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_resource_configuration_5, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "resource-configuration" - }, - { ATF_POINTER, 1, offsetof(struct E_RABs_ToBeAdded_SgNBAddReq_Item, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (4 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P44, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_E_RABs_ToBeAdded_SgNBAddReq_Item_oms_1[] = { 4 }; -static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_Item_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeAdded_SgNBAddReq_Item_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e-RAB-ID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* drb-ID */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* en-DC-ResourceConfiguration */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* resource-configuration */ - { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* iE-Extensions */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeAdded_SgNBAddReq_Item_specs_1 = { - sizeof(struct E_RABs_ToBeAdded_SgNBAddReq_Item), - offsetof(struct E_RABs_ToBeAdded_SgNBAddReq_Item, _asn_ctx), - asn_MAP_E_RABs_ToBeAdded_SgNBAddReq_Item_tag2el_1, - 5, /* Count of tags in the map */ - asn_MAP_E_RABs_ToBeAdded_SgNBAddReq_Item_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 5, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_Item = { - "E-RABs-ToBeAdded-SgNBAddReq-Item", - "E-RABs-ToBeAdded-SgNBAddReq-Item", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_Item_tags_1, - sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_Item_tags_1) - /sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_Item_tags_1[0]), /* 1 */ - asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_Item_tags_1, /* Same as above */ - sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_Item_tags_1) - /sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_Item_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_ToBeAdded_SgNBAddReq_Item_1, - 5, /* Elements count */ - &asn_SPC_E_RABs_ToBeAdded_SgNBAddReq_Item_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeAdded-SgNBAddReq-Item.h b/e2sim/previous/ASN1c/E-RABs-ToBeAdded-SgNBAddReq-Item.h deleted file mode 100644 index 25e592f..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeAdded-SgNBAddReq-Item.h +++ /dev/null @@ -1,94 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E_RABs_ToBeAdded_SgNBAddReq_Item_H_ -#define _E_RABs_ToBeAdded_SgNBAddReq_Item_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "E-RAB-ID.h" -#include "DRB-ID.h" -#include "EN-DC-ResourceConfiguration.h" -#include "constr_CHOICE.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum E_RABs_ToBeAdded_SgNBAddReq_Item__resource_configuration_PR { - E_RABs_ToBeAdded_SgNBAddReq_Item__resource_configuration_PR_NOTHING, /* No components present */ - E_RABs_ToBeAdded_SgNBAddReq_Item__resource_configuration_PR_sgNBPDCPpresent, - E_RABs_ToBeAdded_SgNBAddReq_Item__resource_configuration_PR_sgNBPDCPnotpresent - /* Extensions may appear below */ - -} E_RABs_ToBeAdded_SgNBAddReq_Item__resource_configuration_PR; - -/* Forward declarations */ -struct ProtocolExtensionContainer; -struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresent; -struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresent; - -/* E-RABs-ToBeAdded-SgNBAddReq-Item */ -typedef struct E_RABs_ToBeAdded_SgNBAddReq_Item { - E_RAB_ID_t e_RAB_ID; - DRB_ID_t drb_ID; - EN_DC_ResourceConfiguration_t en_DC_ResourceConfiguration; - struct E_RABs_ToBeAdded_SgNBAddReq_Item__resource_configuration { - E_RABs_ToBeAdded_SgNBAddReq_Item__resource_configuration_PR present; - union E_RABs_ToBeAdded_SgNBAddReq_Item__resource_configuration_u { - struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresent *sgNBPDCPpresent; - struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresent *sgNBPDCPnotpresent; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } resource_configuration; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeAdded_SgNBAddReq_Item_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_Item; - -#ifdef __cplusplus -} -#endif - -#endif /* _E_RABs_ToBeAdded_SgNBAddReq_Item_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeAdded-SgNBAddReqList.c b/e2sim/previous/ASN1c/E-RABs-ToBeAdded-SgNBAddReqList.c deleted file mode 100644 index 6503a44..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeAdded-SgNBAddReqList.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E-RABs-ToBeAdded-SgNBAddReqList.h" - -#include "ProtocolIE-Single-Container.h" -static asn_per_constraints_t asn_PER_type_E_RABs_ToBeAdded_SgNBAddReqList_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 8, 8, 1, 256 } /* (SIZE(1..256)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_E_RABs_ToBeAdded_SgNBAddReqList_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ProtocolIE_Single_Container_122P28, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeAdded_SgNBAddReqList_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_E_RABs_ToBeAdded_SgNBAddReqList_specs_1 = { - sizeof(struct E_RABs_ToBeAdded_SgNBAddReqList), - offsetof(struct E_RABs_ToBeAdded_SgNBAddReqList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_SgNBAddReqList = { - "E-RABs-ToBeAdded-SgNBAddReqList", - "E-RABs-ToBeAdded-SgNBAddReqList", - &asn_OP_SEQUENCE_OF, - asn_DEF_E_RABs_ToBeAdded_SgNBAddReqList_tags_1, - sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBAddReqList_tags_1) - /sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBAddReqList_tags_1[0]), /* 1 */ - asn_DEF_E_RABs_ToBeAdded_SgNBAddReqList_tags_1, /* Same as above */ - sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBAddReqList_tags_1) - /sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBAddReqList_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_E_RABs_ToBeAdded_SgNBAddReqList_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_E_RABs_ToBeAdded_SgNBAddReqList_1, - 1, /* Single element */ - &asn_SPC_E_RABs_ToBeAdded_SgNBAddReqList_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeAdded-SgNBAddReqList.h b/e2sim/previous/ASN1c/E-RABs-ToBeAdded-SgNBAddReqList.h deleted file mode 100644 index ff49afd..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeAdded-SgNBAddReqList.h +++ /dev/null @@ -1,59 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E_RABs_ToBeAdded_SgNBAddReqList_H_ -#define _E_RABs_ToBeAdded_SgNBAddReqList_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolIE_Single_Container; - -/* E-RABs-ToBeAdded-SgNBAddReqList */ -typedef struct E_RABs_ToBeAdded_SgNBAddReqList { - A_SEQUENCE_OF(struct ProtocolIE_Single_Container) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeAdded_SgNBAddReqList_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_SgNBAddReqList; - -#ifdef __cplusplus -} -#endif - -#endif /* _E_RABs_ToBeAdded_SgNBAddReqList_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPnotpresent.c b/e2sim/previous/ASN1c/E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPnotpresent.c deleted file mode 100644 index 4ead22c..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPnotpresent.c +++ /dev/null @@ -1,123 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPnotpresent.h" - -#include "GTPtunnelEndpoint.h" -#include "ULConfiguration.h" -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresent_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresent, requested_SCG_E_RAB_Level_QoS_Parameters), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E_RAB_Level_QoS_Parameters, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "requested-SCG-E-RAB-Level-QoS-Parameters" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresent, meNB_UL_GTP_TEIDatPDCP), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GTPtunnelEndpoint, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "meNB-UL-GTP-TEIDatPDCP" - }, - { ATF_POINTER, 1, offsetof(struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresent, secondary_meNB_UL_GTP_TEIDatPDCP), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GTPtunnelEndpoint, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "secondary-meNB-UL-GTP-TEIDatPDCP" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresent, rlc_Mode), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RLCMode, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "rlc-Mode" - }, - { ATF_POINTER, 2, offsetof(struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresent, uL_Configuration), - (ASN_TAG_CLASS_CONTEXT | (4 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ULConfiguration, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "uL-Configuration" - }, - { ATF_POINTER, 1, offsetof(struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresent, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (5 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P55, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresent_oms_1[] = { 2, 4, 5 }; -static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresent_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresent_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* requested-SCG-E-RAB-Level-QoS-Parameters */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* meNB-UL-GTP-TEIDatPDCP */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* secondary-meNB-UL-GTP-TEIDatPDCP */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* rlc-Mode */ - { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* uL-Configuration */ - { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresent_specs_1 = { - sizeof(struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresent), - offsetof(struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresent, _asn_ctx), - asn_MAP_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresent_tag2el_1, - 6, /* Count of tags in the map */ - asn_MAP_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresent_oms_1, /* Optional members */ - 3, 0, /* Root/Additions */ - 6, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresent = { - "E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPnotpresent", - "E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPnotpresent", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresent_tags_1, - sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresent_tags_1) - /sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresent_tags_1[0]), /* 1 */ - asn_DEF_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresent_tags_1, /* Same as above */ - sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresent_tags_1) - /sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresent_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresent_1, - 6, /* Elements count */ - &asn_SPC_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresent_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPnotpresent.h b/e2sim/previous/ASN1c/E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPnotpresent.h deleted file mode 100644 index 5741bc4..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPnotpresent.h +++ /dev/null @@ -1,74 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresent_H_ -#define _E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresent_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "E-RAB-Level-QoS-Parameters.h" -#include "GTPtunnelEndpoint.h" -#include "RLCMode.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct GTPtunnelEndpoint; -struct ULConfiguration; -struct ProtocolExtensionContainer; - -/* E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPnotpresent */ -typedef struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresent { - E_RAB_Level_QoS_Parameters_t requested_SCG_E_RAB_Level_QoS_Parameters; - GTPtunnelEndpoint_t meNB_UL_GTP_TEIDatPDCP; - struct GTPtunnelEndpoint *secondary_meNB_UL_GTP_TEIDatPDCP; /* OPTIONAL */ - RLCMode_t rlc_Mode; - struct ULConfiguration *uL_Configuration; /* OPTIONAL */ - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresent_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresent; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresent_specs_1; -extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresent_1[6]; - -#ifdef __cplusplus -} -#endif - -#endif /* _E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresent_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPpresent.c b/e2sim/previous/ASN1c/E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPpresent.c deleted file mode 100644 index 227b695..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPpresent.c +++ /dev/null @@ -1,123 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPpresent.h" - -#include "GBR-QosInformation.h" -#include "GTPtunnelEndpoint.h" -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresent_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresent, full_E_RAB_Level_QoS_Parameters), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E_RAB_Level_QoS_Parameters, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "full-E-RAB-Level-QoS-Parameters" - }, - { ATF_POINTER, 3, offsetof(struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresent, max_MN_admit_E_RAB_Level_QoS_Parameters), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GBR_QosInformation, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "max-MN-admit-E-RAB-Level-QoS-Parameters" - }, - { ATF_POINTER, 2, offsetof(struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresent, dL_Forwarding), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_DL_Forwarding, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "dL-Forwarding" - }, - { ATF_POINTER, 1, offsetof(struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresent, meNB_DL_GTP_TEIDatMCG), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GTPtunnelEndpoint, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "meNB-DL-GTP-TEIDatMCG" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresent, s1_UL_GTPtunnelEndpoint), - (ASN_TAG_CLASS_CONTEXT | (4 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GTPtunnelEndpoint, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "s1-UL-GTPtunnelEndpoint" - }, - { ATF_POINTER, 1, offsetof(struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresent, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (5 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P54, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresent_oms_1[] = { 1, 2, 3, 5 }; -static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresent_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresent_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* full-E-RAB-Level-QoS-Parameters */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* max-MN-admit-E-RAB-Level-QoS-Parameters */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* dL-Forwarding */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* meNB-DL-GTP-TEIDatMCG */ - { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* s1-UL-GTPtunnelEndpoint */ - { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresent_specs_1 = { - sizeof(struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresent), - offsetof(struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresent, _asn_ctx), - asn_MAP_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresent_tag2el_1, - 6, /* Count of tags in the map */ - asn_MAP_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresent_oms_1, /* Optional members */ - 4, 0, /* Root/Additions */ - 6, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresent = { - "E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPpresent", - "E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPpresent", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresent_tags_1, - sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresent_tags_1) - /sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresent_tags_1[0]), /* 1 */ - asn_DEF_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresent_tags_1, /* Same as above */ - sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresent_tags_1) - /sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresent_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresent_1, - 6, /* Elements count */ - &asn_SPC_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresent_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPpresent.h b/e2sim/previous/ASN1c/E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPpresent.h deleted file mode 100644 index cc9476f..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPpresent.h +++ /dev/null @@ -1,74 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresent_H_ -#define _E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresent_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "E-RAB-Level-QoS-Parameters.h" -#include "DL-Forwarding.h" -#include "GTPtunnelEndpoint.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct GBR_QosInformation; -struct GTPtunnelEndpoint; -struct ProtocolExtensionContainer; - -/* E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPpresent */ -typedef struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresent { - E_RAB_Level_QoS_Parameters_t full_E_RAB_Level_QoS_Parameters; - struct GBR_QosInformation *max_MN_admit_E_RAB_Level_QoS_Parameters; /* OPTIONAL */ - DL_Forwarding_t *dL_Forwarding; /* OPTIONAL */ - struct GTPtunnelEndpoint *meNB_DL_GTP_TEIDatMCG; /* OPTIONAL */ - GTPtunnelEndpoint_t s1_UL_GTPtunnelEndpoint; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresent_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresent; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresent_specs_1; -extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresent_1[6]; - -#ifdef __cplusplus -} -#endif - -#endif /* _E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresent_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeAdded-SgNBModReq-Item.c b/e2sim/previous/ASN1c/E-RABs-ToBeAdded-SgNBModReq-Item.c deleted file mode 100644 index dcab1a1..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeAdded-SgNBModReq-Item.c +++ /dev/null @@ -1,167 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E-RABs-ToBeAdded-SgNBModReq-Item.h" - -#include "ProtocolExtensionContainer.h" -#include "E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPpresent.h" -#include "E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPnotpresent.h" -static asn_per_constraints_t asn_PER_type_resource_configuration_constr_5 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_resource_configuration_5[] = { - { ATF_POINTER, 0, offsetof(struct E_RABs_ToBeAdded_SgNBModReq_Item__resource_configuration, choice.sgNBPDCPpresent), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresent, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "sgNBPDCPpresent" - }, - { ATF_POINTER, 0, offsetof(struct E_RABs_ToBeAdded_SgNBModReq_Item__resource_configuration, choice.sgNBPDCPnotpresent), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresent, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "sgNBPDCPnotpresent" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_resource_configuration_tag2el_5[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sgNBPDCPpresent */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* sgNBPDCPnotpresent */ -}; -static asn_CHOICE_specifics_t asn_SPC_resource_configuration_specs_5 = { - sizeof(struct E_RABs_ToBeAdded_SgNBModReq_Item__resource_configuration), - offsetof(struct E_RABs_ToBeAdded_SgNBModReq_Item__resource_configuration, _asn_ctx), - offsetof(struct E_RABs_ToBeAdded_SgNBModReq_Item__resource_configuration, present), - sizeof(((struct E_RABs_ToBeAdded_SgNBModReq_Item__resource_configuration *)0)->present), - asn_MAP_resource_configuration_tag2el_5, - 2, /* Count of tags in the map */ - 0, 0, - 2 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_resource_configuration_5 = { - "resource-configuration", - "resource-configuration", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, &asn_PER_type_resource_configuration_constr_5, CHOICE_constraint }, - asn_MBR_resource_configuration_5, - 2, /* Elements count */ - &asn_SPC_resource_configuration_specs_5 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_E_RABs_ToBeAdded_SgNBModReq_Item_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_SgNBModReq_Item, e_RAB_ID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E_RAB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "e-RAB-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_SgNBModReq_Item, drb_ID), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_DRB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "drb-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_SgNBModReq_Item, en_DC_ResourceConfiguration), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_EN_DC_ResourceConfiguration, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "en-DC-ResourceConfiguration" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_SgNBModReq_Item, resource_configuration), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_resource_configuration_5, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "resource-configuration" - }, - { ATF_POINTER, 1, offsetof(struct E_RABs_ToBeAdded_SgNBModReq_Item, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (4 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P53, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_E_RABs_ToBeAdded_SgNBModReq_Item_oms_1[] = { 4 }; -static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeAdded_SgNBModReq_Item_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeAdded_SgNBModReq_Item_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e-RAB-ID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* drb-ID */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* en-DC-ResourceConfiguration */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* resource-configuration */ - { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* iE-Extensions */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeAdded_SgNBModReq_Item_specs_1 = { - sizeof(struct E_RABs_ToBeAdded_SgNBModReq_Item), - offsetof(struct E_RABs_ToBeAdded_SgNBModReq_Item, _asn_ctx), - asn_MAP_E_RABs_ToBeAdded_SgNBModReq_Item_tag2el_1, - 5, /* Count of tags in the map */ - asn_MAP_E_RABs_ToBeAdded_SgNBModReq_Item_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 5, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_SgNBModReq_Item = { - "E-RABs-ToBeAdded-SgNBModReq-Item", - "E-RABs-ToBeAdded-SgNBModReq-Item", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_ToBeAdded_SgNBModReq_Item_tags_1, - sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBModReq_Item_tags_1) - /sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBModReq_Item_tags_1[0]), /* 1 */ - asn_DEF_E_RABs_ToBeAdded_SgNBModReq_Item_tags_1, /* Same as above */ - sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBModReq_Item_tags_1) - /sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBModReq_Item_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_ToBeAdded_SgNBModReq_Item_1, - 5, /* Elements count */ - &asn_SPC_E_RABs_ToBeAdded_SgNBModReq_Item_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeAdded-SgNBModReq-Item.h b/e2sim/previous/ASN1c/E-RABs-ToBeAdded-SgNBModReq-Item.h deleted file mode 100644 index f451330..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeAdded-SgNBModReq-Item.h +++ /dev/null @@ -1,94 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E_RABs_ToBeAdded_SgNBModReq_Item_H_ -#define _E_RABs_ToBeAdded_SgNBModReq_Item_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "E-RAB-ID.h" -#include "DRB-ID.h" -#include "EN-DC-ResourceConfiguration.h" -#include "constr_CHOICE.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum E_RABs_ToBeAdded_SgNBModReq_Item__resource_configuration_PR { - E_RABs_ToBeAdded_SgNBModReq_Item__resource_configuration_PR_NOTHING, /* No components present */ - E_RABs_ToBeAdded_SgNBModReq_Item__resource_configuration_PR_sgNBPDCPpresent, - E_RABs_ToBeAdded_SgNBModReq_Item__resource_configuration_PR_sgNBPDCPnotpresent - /* Extensions may appear below */ - -} E_RABs_ToBeAdded_SgNBModReq_Item__resource_configuration_PR; - -/* Forward declarations */ -struct ProtocolExtensionContainer; -struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresent; -struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresent; - -/* E-RABs-ToBeAdded-SgNBModReq-Item */ -typedef struct E_RABs_ToBeAdded_SgNBModReq_Item { - E_RAB_ID_t e_RAB_ID; - DRB_ID_t drb_ID; - EN_DC_ResourceConfiguration_t en_DC_ResourceConfiguration; - struct E_RABs_ToBeAdded_SgNBModReq_Item__resource_configuration { - E_RABs_ToBeAdded_SgNBModReq_Item__resource_configuration_PR present; - union E_RABs_ToBeAdded_SgNBModReq_Item__resource_configuration_u { - struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresent *sgNBPDCPpresent; - struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresent *sgNBPDCPnotpresent; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } resource_configuration; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeAdded_SgNBModReq_Item_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_SgNBModReq_Item; - -#ifdef __cplusplus -} -#endif - -#endif /* _E_RABs_ToBeAdded_SgNBModReq_Item_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeAdded-SgNBModReq-List.c b/e2sim/previous/ASN1c/E-RABs-ToBeAdded-SgNBModReq-List.c deleted file mode 100644 index fe158ed..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeAdded-SgNBModReq-List.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E-RABs-ToBeAdded-SgNBModReq-List.h" - -#include "ProtocolIE-Single-Container.h" -asn_per_constraints_t asn_PER_type_E_RABs_ToBeAdded_SgNBModReq_List_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 8, 8, 1, 256 } /* (SIZE(1..256)) */, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_E_RABs_ToBeAdded_SgNBModReq_List_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ProtocolIE_Single_Container_122P30, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeAdded_SgNBModReq_List_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_E_RABs_ToBeAdded_SgNBModReq_List_specs_1 = { - sizeof(struct E_RABs_ToBeAdded_SgNBModReq_List), - offsetof(struct E_RABs_ToBeAdded_SgNBModReq_List, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_SgNBModReq_List = { - "E-RABs-ToBeAdded-SgNBModReq-List", - "E-RABs-ToBeAdded-SgNBModReq-List", - &asn_OP_SEQUENCE_OF, - asn_DEF_E_RABs_ToBeAdded_SgNBModReq_List_tags_1, - sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBModReq_List_tags_1) - /sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBModReq_List_tags_1[0]), /* 1 */ - asn_DEF_E_RABs_ToBeAdded_SgNBModReq_List_tags_1, /* Same as above */ - sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBModReq_List_tags_1) - /sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBModReq_List_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_E_RABs_ToBeAdded_SgNBModReq_List_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_E_RABs_ToBeAdded_SgNBModReq_List_1, - 1, /* Single element */ - &asn_SPC_E_RABs_ToBeAdded_SgNBModReq_List_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeAdded-SgNBModReq-List.h b/e2sim/previous/ASN1c/E-RABs-ToBeAdded-SgNBModReq-List.h deleted file mode 100644 index a83415b..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeAdded-SgNBModReq-List.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E_RABs_ToBeAdded_SgNBModReq_List_H_ -#define _E_RABs_ToBeAdded_SgNBModReq_List_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolIE_Single_Container; - -/* E-RABs-ToBeAdded-SgNBModReq-List */ -typedef struct E_RABs_ToBeAdded_SgNBModReq_List { - A_SEQUENCE_OF(struct ProtocolIE_Single_Container) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeAdded_SgNBModReq_List_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_SgNBModReq_List; -extern asn_SET_OF_specifics_t asn_SPC_E_RABs_ToBeAdded_SgNBModReq_List_specs_1; -extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeAdded_SgNBModReq_List_1[1]; -extern asn_per_constraints_t asn_PER_type_E_RABs_ToBeAdded_SgNBModReq_List_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _E_RABs_ToBeAdded_SgNBModReq_List_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeModified-List-ModReq.c b/e2sim/previous/ASN1c/E-RABs-ToBeModified-List-ModReq.c deleted file mode 100644 index 38e0309..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeModified-List-ModReq.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E-RABs-ToBeModified-List-ModReq.h" - -#include "ProtocolIE-Single-Container.h" -asn_per_constraints_t asn_PER_type_E_RABs_ToBeModified_List_ModReq_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 8, 8, 1, 256 } /* (SIZE(1..256)) */, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_E_RABs_ToBeModified_List_ModReq_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ProtocolIE_Single_Container_122P18, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeModified_List_ModReq_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_E_RABs_ToBeModified_List_ModReq_specs_1 = { - sizeof(struct E_RABs_ToBeModified_List_ModReq), - offsetof(struct E_RABs_ToBeModified_List_ModReq, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeModified_List_ModReq = { - "E-RABs-ToBeModified-List-ModReq", - "E-RABs-ToBeModified-List-ModReq", - &asn_OP_SEQUENCE_OF, - asn_DEF_E_RABs_ToBeModified_List_ModReq_tags_1, - sizeof(asn_DEF_E_RABs_ToBeModified_List_ModReq_tags_1) - /sizeof(asn_DEF_E_RABs_ToBeModified_List_ModReq_tags_1[0]), /* 1 */ - asn_DEF_E_RABs_ToBeModified_List_ModReq_tags_1, /* Same as above */ - sizeof(asn_DEF_E_RABs_ToBeModified_List_ModReq_tags_1) - /sizeof(asn_DEF_E_RABs_ToBeModified_List_ModReq_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_E_RABs_ToBeModified_List_ModReq_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_E_RABs_ToBeModified_List_ModReq_1, - 1, /* Single element */ - &asn_SPC_E_RABs_ToBeModified_List_ModReq_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeModified-List-ModReq.h b/e2sim/previous/ASN1c/E-RABs-ToBeModified-List-ModReq.h deleted file mode 100644 index 964d2c2..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeModified-List-ModReq.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E_RABs_ToBeModified_List_ModReq_H_ -#define _E_RABs_ToBeModified_List_ModReq_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolIE_Single_Container; - -/* E-RABs-ToBeModified-List-ModReq */ -typedef struct E_RABs_ToBeModified_List_ModReq { - A_SEQUENCE_OF(struct ProtocolIE_Single_Container) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeModified_List_ModReq_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeModified_List_ModReq; -extern asn_SET_OF_specifics_t asn_SPC_E_RABs_ToBeModified_List_ModReq_specs_1; -extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeModified_List_ModReq_1[1]; -extern asn_per_constraints_t asn_PER_type_E_RABs_ToBeModified_List_ModReq_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _E_RABs_ToBeModified_List_ModReq_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeModified-ModReqItem-SCG-Bearer.c b/e2sim/previous/ASN1c/E-RABs-ToBeModified-ModReqItem-SCG-Bearer.c deleted file mode 100644 index 4124cf1..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeModified-ModReqItem-SCG-Bearer.c +++ /dev/null @@ -1,103 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E-RABs-ToBeModified-ModReqItem-SCG-Bearer.h" - -#include "E-RAB-Level-QoS-Parameters.h" -#include "GTPtunnelEndpoint.h" -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_E_RABs_ToBeModified_ModReqItem_SCG_Bearer_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeModified_ModReqItem_SCG_Bearer, e_RAB_ID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E_RAB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "e-RAB-ID" - }, - { ATF_POINTER, 3, offsetof(struct E_RABs_ToBeModified_ModReqItem_SCG_Bearer, e_RAB_Level_QoS_Parameters), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E_RAB_Level_QoS_Parameters, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "e-RAB-Level-QoS-Parameters" - }, - { ATF_POINTER, 2, offsetof(struct E_RABs_ToBeModified_ModReqItem_SCG_Bearer, s1_UL_GTPtunnelEndpoint), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GTPtunnelEndpoint, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "s1-UL-GTPtunnelEndpoint" - }, - { ATF_POINTER, 1, offsetof(struct E_RABs_ToBeModified_ModReqItem_SCG_Bearer, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P26, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_E_RABs_ToBeModified_ModReqItem_SCG_Bearer_oms_1[] = { 1, 2, 3 }; -static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeModified_ModReqItem_SCG_Bearer_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeModified_ModReqItem_SCG_Bearer_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e-RAB-ID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* e-RAB-Level-QoS-Parameters */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* s1-UL-GTPtunnelEndpoint */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeModified_ModReqItem_SCG_Bearer_specs_1 = { - sizeof(struct E_RABs_ToBeModified_ModReqItem_SCG_Bearer), - offsetof(struct E_RABs_ToBeModified_ModReqItem_SCG_Bearer, _asn_ctx), - asn_MAP_E_RABs_ToBeModified_ModReqItem_SCG_Bearer_tag2el_1, - 4, /* Count of tags in the map */ - asn_MAP_E_RABs_ToBeModified_ModReqItem_SCG_Bearer_oms_1, /* Optional members */ - 3, 0, /* Root/Additions */ - 4, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeModified_ModReqItem_SCG_Bearer = { - "E-RABs-ToBeModified-ModReqItem-SCG-Bearer", - "E-RABs-ToBeModified-ModReqItem-SCG-Bearer", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_ToBeModified_ModReqItem_SCG_Bearer_tags_1, - sizeof(asn_DEF_E_RABs_ToBeModified_ModReqItem_SCG_Bearer_tags_1) - /sizeof(asn_DEF_E_RABs_ToBeModified_ModReqItem_SCG_Bearer_tags_1[0]), /* 1 */ - asn_DEF_E_RABs_ToBeModified_ModReqItem_SCG_Bearer_tags_1, /* Same as above */ - sizeof(asn_DEF_E_RABs_ToBeModified_ModReqItem_SCG_Bearer_tags_1) - /sizeof(asn_DEF_E_RABs_ToBeModified_ModReqItem_SCG_Bearer_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_ToBeModified_ModReqItem_SCG_Bearer_1, - 4, /* Elements count */ - &asn_SPC_E_RABs_ToBeModified_ModReqItem_SCG_Bearer_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeModified-ModReqItem-SCG-Bearer.h b/e2sim/previous/ASN1c/E-RABs-ToBeModified-ModReqItem-SCG-Bearer.h deleted file mode 100644 index 8e1aacb..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeModified-ModReqItem-SCG-Bearer.h +++ /dev/null @@ -1,70 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E_RABs_ToBeModified_ModReqItem_SCG_Bearer_H_ -#define _E_RABs_ToBeModified_ModReqItem_SCG_Bearer_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "E-RAB-ID.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct E_RAB_Level_QoS_Parameters; -struct GTPtunnelEndpoint; -struct ProtocolExtensionContainer; - -/* E-RABs-ToBeModified-ModReqItem-SCG-Bearer */ -typedef struct E_RABs_ToBeModified_ModReqItem_SCG_Bearer { - E_RAB_ID_t e_RAB_ID; - struct E_RAB_Level_QoS_Parameters *e_RAB_Level_QoS_Parameters; /* OPTIONAL */ - struct GTPtunnelEndpoint *s1_UL_GTPtunnelEndpoint; /* OPTIONAL */ - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeModified_ModReqItem_SCG_Bearer_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeModified_ModReqItem_SCG_Bearer; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeModified_ModReqItem_SCG_Bearer_specs_1; -extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeModified_ModReqItem_SCG_Bearer_1[4]; - -#ifdef __cplusplus -} -#endif - -#endif /* _E_RABs_ToBeModified_ModReqItem_SCG_Bearer_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeModified-ModReqItem-Split-Bearer.c b/e2sim/previous/ASN1c/E-RABs-ToBeModified-ModReqItem-Split-Bearer.c deleted file mode 100644 index bbc945f..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeModified-ModReqItem-Split-Bearer.c +++ /dev/null @@ -1,103 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E-RABs-ToBeModified-ModReqItem-Split-Bearer.h" - -#include "E-RAB-Level-QoS-Parameters.h" -#include "GTPtunnelEndpoint.h" -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_E_RABs_ToBeModified_ModReqItem_Split_Bearer_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeModified_ModReqItem_Split_Bearer, e_RAB_ID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E_RAB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "e-RAB-ID" - }, - { ATF_POINTER, 3, offsetof(struct E_RABs_ToBeModified_ModReqItem_Split_Bearer, e_RAB_Level_QoS_Parameters), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E_RAB_Level_QoS_Parameters, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "e-RAB-Level-QoS-Parameters" - }, - { ATF_POINTER, 2, offsetof(struct E_RABs_ToBeModified_ModReqItem_Split_Bearer, meNB_GTPtunnelEndpoint), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GTPtunnelEndpoint, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "meNB-GTPtunnelEndpoint" - }, - { ATF_POINTER, 1, offsetof(struct E_RABs_ToBeModified_ModReqItem_Split_Bearer, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P27, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_E_RABs_ToBeModified_ModReqItem_Split_Bearer_oms_1[] = { 1, 2, 3 }; -static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeModified_ModReqItem_Split_Bearer_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeModified_ModReqItem_Split_Bearer_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e-RAB-ID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* e-RAB-Level-QoS-Parameters */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* meNB-GTPtunnelEndpoint */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeModified_ModReqItem_Split_Bearer_specs_1 = { - sizeof(struct E_RABs_ToBeModified_ModReqItem_Split_Bearer), - offsetof(struct E_RABs_ToBeModified_ModReqItem_Split_Bearer, _asn_ctx), - asn_MAP_E_RABs_ToBeModified_ModReqItem_Split_Bearer_tag2el_1, - 4, /* Count of tags in the map */ - asn_MAP_E_RABs_ToBeModified_ModReqItem_Split_Bearer_oms_1, /* Optional members */ - 3, 0, /* Root/Additions */ - 4, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeModified_ModReqItem_Split_Bearer = { - "E-RABs-ToBeModified-ModReqItem-Split-Bearer", - "E-RABs-ToBeModified-ModReqItem-Split-Bearer", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_ToBeModified_ModReqItem_Split_Bearer_tags_1, - sizeof(asn_DEF_E_RABs_ToBeModified_ModReqItem_Split_Bearer_tags_1) - /sizeof(asn_DEF_E_RABs_ToBeModified_ModReqItem_Split_Bearer_tags_1[0]), /* 1 */ - asn_DEF_E_RABs_ToBeModified_ModReqItem_Split_Bearer_tags_1, /* Same as above */ - sizeof(asn_DEF_E_RABs_ToBeModified_ModReqItem_Split_Bearer_tags_1) - /sizeof(asn_DEF_E_RABs_ToBeModified_ModReqItem_Split_Bearer_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_ToBeModified_ModReqItem_Split_Bearer_1, - 4, /* Elements count */ - &asn_SPC_E_RABs_ToBeModified_ModReqItem_Split_Bearer_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeModified-ModReqItem-Split-Bearer.h b/e2sim/previous/ASN1c/E-RABs-ToBeModified-ModReqItem-Split-Bearer.h deleted file mode 100644 index ffd3075..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeModified-ModReqItem-Split-Bearer.h +++ /dev/null @@ -1,70 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E_RABs_ToBeModified_ModReqItem_Split_Bearer_H_ -#define _E_RABs_ToBeModified_ModReqItem_Split_Bearer_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "E-RAB-ID.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct E_RAB_Level_QoS_Parameters; -struct GTPtunnelEndpoint; -struct ProtocolExtensionContainer; - -/* E-RABs-ToBeModified-ModReqItem-Split-Bearer */ -typedef struct E_RABs_ToBeModified_ModReqItem_Split_Bearer { - E_RAB_ID_t e_RAB_ID; - struct E_RAB_Level_QoS_Parameters *e_RAB_Level_QoS_Parameters; /* OPTIONAL */ - struct GTPtunnelEndpoint *meNB_GTPtunnelEndpoint; /* OPTIONAL */ - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeModified_ModReqItem_Split_Bearer_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeModified_ModReqItem_Split_Bearer; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeModified_ModReqItem_Split_Bearer_specs_1; -extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeModified_ModReqItem_Split_Bearer_1[4]; - -#ifdef __cplusplus -} -#endif - -#endif /* _E_RABs_ToBeModified_ModReqItem_Split_Bearer_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeModified-ModReqItem.c b/e2sim/previous/ASN1c/E-RABs-ToBeModified-ModReqItem.c deleted file mode 100644 index 127101d..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeModified-ModReqItem.c +++ /dev/null @@ -1,82 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E-RABs-ToBeModified-ModReqItem.h" - -#include "E-RABs-ToBeModified-ModReqItem-SCG-Bearer.h" -#include "E-RABs-ToBeModified-ModReqItem-Split-Bearer.h" -static asn_per_constraints_t asn_PER_type_E_RABs_ToBeModified_ModReqItem_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_E_RABs_ToBeModified_ModReqItem_1[] = { - { ATF_POINTER, 0, offsetof(struct E_RABs_ToBeModified_ModReqItem, choice.sCG_Bearer), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E_RABs_ToBeModified_ModReqItem_SCG_Bearer, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "sCG-Bearer" - }, - { ATF_POINTER, 0, offsetof(struct E_RABs_ToBeModified_ModReqItem, choice.split_Bearer), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E_RABs_ToBeModified_ModReqItem_Split_Bearer, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "split-Bearer" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeModified_ModReqItem_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sCG-Bearer */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* split-Bearer */ -}; -static asn_CHOICE_specifics_t asn_SPC_E_RABs_ToBeModified_ModReqItem_specs_1 = { - sizeof(struct E_RABs_ToBeModified_ModReqItem), - offsetof(struct E_RABs_ToBeModified_ModReqItem, _asn_ctx), - offsetof(struct E_RABs_ToBeModified_ModReqItem, present), - sizeof(((struct E_RABs_ToBeModified_ModReqItem *)0)->present), - asn_MAP_E_RABs_ToBeModified_ModReqItem_tag2el_1, - 2, /* Count of tags in the map */ - 0, 0, - 2 /* Extensions start */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeModified_ModReqItem = { - "E-RABs-ToBeModified-ModReqItem", - "E-RABs-ToBeModified-ModReqItem", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, &asn_PER_type_E_RABs_ToBeModified_ModReqItem_constr_1, CHOICE_constraint }, - asn_MBR_E_RABs_ToBeModified_ModReqItem_1, - 2, /* Elements count */ - &asn_SPC_E_RABs_ToBeModified_ModReqItem_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeModified-ModReqItem.h b/e2sim/previous/ASN1c/E-RABs-ToBeModified-ModReqItem.h deleted file mode 100644 index 7b7042f..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeModified-ModReqItem.h +++ /dev/null @@ -1,76 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E_RABs_ToBeModified_ModReqItem_H_ -#define _E_RABs_ToBeModified_ModReqItem_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "constr_CHOICE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum E_RABs_ToBeModified_ModReqItem_PR { - E_RABs_ToBeModified_ModReqItem_PR_NOTHING, /* No components present */ - E_RABs_ToBeModified_ModReqItem_PR_sCG_Bearer, - E_RABs_ToBeModified_ModReqItem_PR_split_Bearer - /* Extensions may appear below */ - -} E_RABs_ToBeModified_ModReqItem_PR; - -/* Forward declarations */ -struct E_RABs_ToBeModified_ModReqItem_SCG_Bearer; -struct E_RABs_ToBeModified_ModReqItem_Split_Bearer; - -/* E-RABs-ToBeModified-ModReqItem */ -typedef struct E_RABs_ToBeModified_ModReqItem { - E_RABs_ToBeModified_ModReqItem_PR present; - union E_RABs_ToBeModified_ModReqItem_u { - struct E_RABs_ToBeModified_ModReqItem_SCG_Bearer *sCG_Bearer; - struct E_RABs_ToBeModified_ModReqItem_Split_Bearer *split_Bearer; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeModified_ModReqItem_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeModified_ModReqItem; - -#ifdef __cplusplus -} -#endif - -#endif /* _E_RABs_ToBeModified_ModReqItem_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPnotpresent.c b/e2sim/previous/ASN1c/E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPnotpresent.c deleted file mode 100644 index 2f3a322..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPnotpresent.c +++ /dev/null @@ -1,104 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPnotpresent.h" - -#include "E-RAB-Level-QoS-Parameters.h" -#include "GTPtunnelEndpoint.h" -#include "ULConfiguration.h" -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresent_1[] = { - { ATF_POINTER, 4, offsetof(struct E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresent, requested_SCG_E_RAB_Level_QoS_Parameters), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E_RAB_Level_QoS_Parameters, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "requested-SCG-E-RAB-Level-QoS-Parameters" - }, - { ATF_POINTER, 3, offsetof(struct E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresent, meNB_UL_GTP_TEIDatPDCP), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GTPtunnelEndpoint, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "meNB-UL-GTP-TEIDatPDCP" - }, - { ATF_POINTER, 2, offsetof(struct E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresent, uL_Configuration), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ULConfiguration, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "uL-Configuration" - }, - { ATF_POINTER, 1, offsetof(struct E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresent, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P58, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresent_oms_1[] = { 0, 1, 2, 3 }; -static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresent_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresent_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* requested-SCG-E-RAB-Level-QoS-Parameters */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* meNB-UL-GTP-TEIDatPDCP */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* uL-Configuration */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresent_specs_1 = { - sizeof(struct E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresent), - offsetof(struct E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresent, _asn_ctx), - asn_MAP_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresent_tag2el_1, - 4, /* Count of tags in the map */ - asn_MAP_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresent_oms_1, /* Optional members */ - 4, 0, /* Root/Additions */ - 4, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresent = { - "E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPnotpresent", - "E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPnotpresent", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresent_tags_1, - sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresent_tags_1) - /sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresent_tags_1[0]), /* 1 */ - asn_DEF_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresent_tags_1, /* Same as above */ - sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresent_tags_1) - /sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresent_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresent_1, - 4, /* Elements count */ - &asn_SPC_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresent_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPnotpresent.h b/e2sim/previous/ASN1c/E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPnotpresent.h deleted file mode 100644 index fcb5a54..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPnotpresent.h +++ /dev/null @@ -1,70 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresent_H_ -#define _E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresent_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct E_RAB_Level_QoS_Parameters; -struct GTPtunnelEndpoint; -struct ULConfiguration; -struct ProtocolExtensionContainer; - -/* E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPnotpresent */ -typedef struct E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresent { - struct E_RAB_Level_QoS_Parameters *requested_SCG_E_RAB_Level_QoS_Parameters; /* OPTIONAL */ - struct GTPtunnelEndpoint *meNB_UL_GTP_TEIDatPDCP; /* OPTIONAL */ - struct ULConfiguration *uL_Configuration; /* OPTIONAL */ - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresent_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresent; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresent_specs_1; -extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresent_1[4]; - -#ifdef __cplusplus -} -#endif - -#endif /* _E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresent_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPpresent.c b/e2sim/previous/ASN1c/E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPpresent.c deleted file mode 100644 index a6cf6cb..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPpresent.c +++ /dev/null @@ -1,114 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPpresent.h" - -#include "E-RAB-Level-QoS-Parameters.h" -#include "GBR-QosInformation.h" -#include "GTPtunnelEndpoint.h" -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresent_1[] = { - { ATF_POINTER, 5, offsetof(struct E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresent, full_E_RAB_Level_QoS_Parameters), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E_RAB_Level_QoS_Parameters, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "full-E-RAB-Level-QoS-Parameters" - }, - { ATF_POINTER, 4, offsetof(struct E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresent, max_MN_admit_E_RAB_Level_QoS_Parameters), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GBR_QosInformation, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "max-MN-admit-E-RAB-Level-QoS-Parameters" - }, - { ATF_POINTER, 3, offsetof(struct E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresent, meNB_DL_GTP_TEIDatMCG), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GTPtunnelEndpoint, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "meNB-DL-GTP-TEIDatMCG" - }, - { ATF_POINTER, 2, offsetof(struct E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresent, s1_UL_GTPtunnelEndpoint), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GTPtunnelEndpoint, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "s1-UL-GTPtunnelEndpoint" - }, - { ATF_POINTER, 1, offsetof(struct E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresent, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (4 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P57, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresent_oms_1[] = { 0, 1, 2, 3, 4 }; -static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresent_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresent_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* full-E-RAB-Level-QoS-Parameters */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* max-MN-admit-E-RAB-Level-QoS-Parameters */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* meNB-DL-GTP-TEIDatMCG */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* s1-UL-GTPtunnelEndpoint */ - { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresent_specs_1 = { - sizeof(struct E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresent), - offsetof(struct E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresent, _asn_ctx), - asn_MAP_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresent_tag2el_1, - 5, /* Count of tags in the map */ - asn_MAP_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresent_oms_1, /* Optional members */ - 5, 0, /* Root/Additions */ - 5, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresent = { - "E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPpresent", - "E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPpresent", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresent_tags_1, - sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresent_tags_1) - /sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresent_tags_1[0]), /* 1 */ - asn_DEF_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresent_tags_1, /* Same as above */ - sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresent_tags_1) - /sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresent_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresent_1, - 5, /* Elements count */ - &asn_SPC_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresent_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPpresent.h b/e2sim/previous/ASN1c/E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPpresent.h deleted file mode 100644 index c62eb59..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPpresent.h +++ /dev/null @@ -1,71 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresent_H_ -#define _E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresent_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct E_RAB_Level_QoS_Parameters; -struct GBR_QosInformation; -struct GTPtunnelEndpoint; -struct ProtocolExtensionContainer; - -/* E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPpresent */ -typedef struct E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresent { - struct E_RAB_Level_QoS_Parameters *full_E_RAB_Level_QoS_Parameters; /* OPTIONAL */ - struct GBR_QosInformation *max_MN_admit_E_RAB_Level_QoS_Parameters; /* OPTIONAL */ - struct GTPtunnelEndpoint *meNB_DL_GTP_TEIDatMCG; /* OPTIONAL */ - struct GTPtunnelEndpoint *s1_UL_GTPtunnelEndpoint; /* OPTIONAL */ - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresent_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresent; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresent_specs_1; -extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresent_1[5]; - -#ifdef __cplusplus -} -#endif - -#endif /* _E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresent_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeModified-SgNBModReq-Item.c b/e2sim/previous/ASN1c/E-RABs-ToBeModified-SgNBModReq-Item.c deleted file mode 100644 index 89147bd..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeModified-SgNBModReq-Item.c +++ /dev/null @@ -1,157 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E-RABs-ToBeModified-SgNBModReq-Item.h" - -#include "ProtocolExtensionContainer.h" -#include "E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPpresent.h" -#include "E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPnotpresent.h" -static asn_per_constraints_t asn_PER_type_resource_configuration_constr_4 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_resource_configuration_4[] = { - { ATF_POINTER, 0, offsetof(struct E_RABs_ToBeModified_SgNBModReq_Item__resource_configuration, choice.sgNBPDCPpresent), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresent, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "sgNBPDCPpresent" - }, - { ATF_POINTER, 0, offsetof(struct E_RABs_ToBeModified_SgNBModReq_Item__resource_configuration, choice.sgNBPDCPnotpresent), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresent, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "sgNBPDCPnotpresent" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_resource_configuration_tag2el_4[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sgNBPDCPpresent */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* sgNBPDCPnotpresent */ -}; -static asn_CHOICE_specifics_t asn_SPC_resource_configuration_specs_4 = { - sizeof(struct E_RABs_ToBeModified_SgNBModReq_Item__resource_configuration), - offsetof(struct E_RABs_ToBeModified_SgNBModReq_Item__resource_configuration, _asn_ctx), - offsetof(struct E_RABs_ToBeModified_SgNBModReq_Item__resource_configuration, present), - sizeof(((struct E_RABs_ToBeModified_SgNBModReq_Item__resource_configuration *)0)->present), - asn_MAP_resource_configuration_tag2el_4, - 2, /* Count of tags in the map */ - 0, 0, - 2 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_resource_configuration_4 = { - "resource-configuration", - "resource-configuration", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, &asn_PER_type_resource_configuration_constr_4, CHOICE_constraint }, - asn_MBR_resource_configuration_4, - 2, /* Elements count */ - &asn_SPC_resource_configuration_specs_4 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_E_RABs_ToBeModified_SgNBModReq_Item_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeModified_SgNBModReq_Item, e_RAB_ID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E_RAB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "e-RAB-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeModified_SgNBModReq_Item, en_DC_ResourceConfiguration), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_EN_DC_ResourceConfiguration, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "en-DC-ResourceConfiguration" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeModified_SgNBModReq_Item, resource_configuration), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_resource_configuration_4, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "resource-configuration" - }, - { ATF_POINTER, 1, offsetof(struct E_RABs_ToBeModified_SgNBModReq_Item, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P56, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_E_RABs_ToBeModified_SgNBModReq_Item_oms_1[] = { 3 }; -static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeModified_SgNBModReq_Item_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeModified_SgNBModReq_Item_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e-RAB-ID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* en-DC-ResourceConfiguration */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* resource-configuration */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeModified_SgNBModReq_Item_specs_1 = { - sizeof(struct E_RABs_ToBeModified_SgNBModReq_Item), - offsetof(struct E_RABs_ToBeModified_SgNBModReq_Item, _asn_ctx), - asn_MAP_E_RABs_ToBeModified_SgNBModReq_Item_tag2el_1, - 4, /* Count of tags in the map */ - asn_MAP_E_RABs_ToBeModified_SgNBModReq_Item_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 4, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeModified_SgNBModReq_Item = { - "E-RABs-ToBeModified-SgNBModReq-Item", - "E-RABs-ToBeModified-SgNBModReq-Item", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_ToBeModified_SgNBModReq_Item_tags_1, - sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReq_Item_tags_1) - /sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReq_Item_tags_1[0]), /* 1 */ - asn_DEF_E_RABs_ToBeModified_SgNBModReq_Item_tags_1, /* Same as above */ - sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReq_Item_tags_1) - /sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReq_Item_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_ToBeModified_SgNBModReq_Item_1, - 4, /* Elements count */ - &asn_SPC_E_RABs_ToBeModified_SgNBModReq_Item_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeModified-SgNBModReq-Item.h b/e2sim/previous/ASN1c/E-RABs-ToBeModified-SgNBModReq-Item.h deleted file mode 100644 index 059e624..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeModified-SgNBModReq-Item.h +++ /dev/null @@ -1,92 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E_RABs_ToBeModified_SgNBModReq_Item_H_ -#define _E_RABs_ToBeModified_SgNBModReq_Item_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "E-RAB-ID.h" -#include "EN-DC-ResourceConfiguration.h" -#include "constr_CHOICE.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum E_RABs_ToBeModified_SgNBModReq_Item__resource_configuration_PR { - E_RABs_ToBeModified_SgNBModReq_Item__resource_configuration_PR_NOTHING, /* No components present */ - E_RABs_ToBeModified_SgNBModReq_Item__resource_configuration_PR_sgNBPDCPpresent, - E_RABs_ToBeModified_SgNBModReq_Item__resource_configuration_PR_sgNBPDCPnotpresent - /* Extensions may appear below */ - -} E_RABs_ToBeModified_SgNBModReq_Item__resource_configuration_PR; - -/* Forward declarations */ -struct ProtocolExtensionContainer; -struct E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresent; -struct E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresent; - -/* E-RABs-ToBeModified-SgNBModReq-Item */ -typedef struct E_RABs_ToBeModified_SgNBModReq_Item { - E_RAB_ID_t e_RAB_ID; - EN_DC_ResourceConfiguration_t en_DC_ResourceConfiguration; - struct E_RABs_ToBeModified_SgNBModReq_Item__resource_configuration { - E_RABs_ToBeModified_SgNBModReq_Item__resource_configuration_PR present; - union E_RABs_ToBeModified_SgNBModReq_Item__resource_configuration_u { - struct E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresent *sgNBPDCPpresent; - struct E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresent *sgNBPDCPnotpresent; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } resource_configuration; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeModified_SgNBModReq_Item_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeModified_SgNBModReq_Item; - -#ifdef __cplusplus -} -#endif - -#endif /* _E_RABs_ToBeModified_SgNBModReq_Item_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeModified-SgNBModReq-List.c b/e2sim/previous/ASN1c/E-RABs-ToBeModified-SgNBModReq-List.c deleted file mode 100644 index f58e885..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeModified-SgNBModReq-List.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E-RABs-ToBeModified-SgNBModReq-List.h" - -#include "ProtocolIE-Single-Container.h" -asn_per_constraints_t asn_PER_type_E_RABs_ToBeModified_SgNBModReq_List_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 8, 8, 1, 256 } /* (SIZE(1..256)) */, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_E_RABs_ToBeModified_SgNBModReq_List_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ProtocolIE_Single_Container_122P31, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeModified_SgNBModReq_List_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_E_RABs_ToBeModified_SgNBModReq_List_specs_1 = { - sizeof(struct E_RABs_ToBeModified_SgNBModReq_List), - offsetof(struct E_RABs_ToBeModified_SgNBModReq_List, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeModified_SgNBModReq_List = { - "E-RABs-ToBeModified-SgNBModReq-List", - "E-RABs-ToBeModified-SgNBModReq-List", - &asn_OP_SEQUENCE_OF, - asn_DEF_E_RABs_ToBeModified_SgNBModReq_List_tags_1, - sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReq_List_tags_1) - /sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReq_List_tags_1[0]), /* 1 */ - asn_DEF_E_RABs_ToBeModified_SgNBModReq_List_tags_1, /* Same as above */ - sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReq_List_tags_1) - /sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReq_List_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_E_RABs_ToBeModified_SgNBModReq_List_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_E_RABs_ToBeModified_SgNBModReq_List_1, - 1, /* Single element */ - &asn_SPC_E_RABs_ToBeModified_SgNBModReq_List_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeModified-SgNBModReq-List.h b/e2sim/previous/ASN1c/E-RABs-ToBeModified-SgNBModReq-List.h deleted file mode 100644 index 14775d3..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeModified-SgNBModReq-List.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E_RABs_ToBeModified_SgNBModReq_List_H_ -#define _E_RABs_ToBeModified_SgNBModReq_List_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolIE_Single_Container; - -/* E-RABs-ToBeModified-SgNBModReq-List */ -typedef struct E_RABs_ToBeModified_SgNBModReq_List { - A_SEQUENCE_OF(struct ProtocolIE_Single_Container) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeModified_SgNBModReq_List_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeModified_SgNBModReq_List; -extern asn_SET_OF_specifics_t asn_SPC_E_RABs_ToBeModified_SgNBModReq_List_specs_1; -extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeModified_SgNBModReq_List_1[1]; -extern asn_per_constraints_t asn_PER_type_E_RABs_ToBeModified_SgNBModReq_List_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _E_RABs_ToBeModified_SgNBModReq_List_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPnotpresent.c b/e2sim/previous/ASN1c/E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPnotpresent.c deleted file mode 100644 index 1e3665c..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPnotpresent.c +++ /dev/null @@ -1,92 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPnotpresent.h" - -#include "GTPtunnelEndpoint.h" -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresent_1[] = { - { ATF_POINTER, 3, offsetof(struct E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresent, sgNB_DL_GTP_TEIDatSCG), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GTPtunnelEndpoint, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "sgNB-DL-GTP-TEIDatSCG" - }, - { ATF_POINTER, 2, offsetof(struct E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresent, secondary_sgNB_DL_GTP_TEIDatSCG), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GTPtunnelEndpoint, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "secondary-sgNB-DL-GTP-TEIDatSCG" - }, - { ATF_POINTER, 1, offsetof(struct E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresent, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P74, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresent_oms_1[] = { 0, 1, 2 }; -static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresent_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresent_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sgNB-DL-GTP-TEIDatSCG */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* secondary-sgNB-DL-GTP-TEIDatSCG */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresent_specs_1 = { - sizeof(struct E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresent), - offsetof(struct E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresent, _asn_ctx), - asn_MAP_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresent_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresent_oms_1, /* Optional members */ - 3, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresent = { - "E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPnotpresent", - "E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPnotpresent", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresent_tags_1, - sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresent_tags_1) - /sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresent_tags_1[0]), /* 1 */ - asn_DEF_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresent_tags_1, /* Same as above */ - sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresent_tags_1) - /sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresent_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresent_1, - 3, /* Elements count */ - &asn_SPC_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresent_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPnotpresent.h b/e2sim/previous/ASN1c/E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPnotpresent.h deleted file mode 100644 index 4ff79d8..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPnotpresent.h +++ /dev/null @@ -1,67 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresent_H_ -#define _E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresent_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct GTPtunnelEndpoint; -struct ProtocolExtensionContainer; - -/* E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPnotpresent */ -typedef struct E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresent { - struct GTPtunnelEndpoint *sgNB_DL_GTP_TEIDatSCG; /* OPTIONAL */ - struct GTPtunnelEndpoint *secondary_sgNB_DL_GTP_TEIDatSCG; /* OPTIONAL */ - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresent_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresent; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresent_specs_1; -extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresent_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresent_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPpresent.c b/e2sim/previous/ASN1c/E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPpresent.c deleted file mode 100644 index 52ae213..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPpresent.c +++ /dev/null @@ -1,114 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPpresent.h" - -#include "E-RAB-Level-QoS-Parameters.h" -#include "ULConfiguration.h" -#include "GTPtunnelEndpoint.h" -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresent_1[] = { - { ATF_POINTER, 5, offsetof(struct E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresent, requested_MCG_E_RAB_Level_QoS_Parameters), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E_RAB_Level_QoS_Parameters, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "requested-MCG-E-RAB-Level-QoS-Parameters" - }, - { ATF_POINTER, 4, offsetof(struct E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresent, uL_Configuration), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ULConfiguration, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "uL-Configuration" - }, - { ATF_POINTER, 3, offsetof(struct E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresent, sgNB_UL_GTP_TEIDatPDCP), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GTPtunnelEndpoint, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "sgNB-UL-GTP-TEIDatPDCP" - }, - { ATF_POINTER, 2, offsetof(struct E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresent, s1_DL_GTP_TEIDatSgNB), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GTPtunnelEndpoint, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "s1-DL-GTP-TEIDatSgNB" - }, - { ATF_POINTER, 1, offsetof(struct E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresent, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (4 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P73, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresent_oms_1[] = { 0, 1, 2, 3, 4 }; -static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresent_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresent_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* requested-MCG-E-RAB-Level-QoS-Parameters */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* uL-Configuration */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* sgNB-UL-GTP-TEIDatPDCP */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* s1-DL-GTP-TEIDatSgNB */ - { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresent_specs_1 = { - sizeof(struct E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresent), - offsetof(struct E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresent, _asn_ctx), - asn_MAP_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresent_tag2el_1, - 5, /* Count of tags in the map */ - asn_MAP_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresent_oms_1, /* Optional members */ - 5, 0, /* Root/Additions */ - 5, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresent = { - "E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPpresent", - "E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPpresent", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresent_tags_1, - sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresent_tags_1) - /sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresent_tags_1[0]), /* 1 */ - asn_DEF_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresent_tags_1, /* Same as above */ - sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresent_tags_1) - /sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresent_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresent_1, - 5, /* Elements count */ - &asn_SPC_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresent_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPpresent.h b/e2sim/previous/ASN1c/E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPpresent.h deleted file mode 100644 index b3712e7..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPpresent.h +++ /dev/null @@ -1,71 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresent_H_ -#define _E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresent_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct E_RAB_Level_QoS_Parameters; -struct ULConfiguration; -struct GTPtunnelEndpoint; -struct ProtocolExtensionContainer; - -/* E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPpresent */ -typedef struct E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresent { - struct E_RAB_Level_QoS_Parameters *requested_MCG_E_RAB_Level_QoS_Parameters; /* OPTIONAL */ - struct ULConfiguration *uL_Configuration; /* OPTIONAL */ - struct GTPtunnelEndpoint *sgNB_UL_GTP_TEIDatPDCP; /* OPTIONAL */ - struct GTPtunnelEndpoint *s1_DL_GTP_TEIDatSgNB; /* OPTIONAL */ - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresent_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresent; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresent_specs_1; -extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresent_1[5]; - -#ifdef __cplusplus -} -#endif - -#endif /* _E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresent_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeModified-SgNBModReqd-Item.c b/e2sim/previous/ASN1c/E-RABs-ToBeModified-SgNBModReqd-Item.c deleted file mode 100644 index 963e4a3..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeModified-SgNBModReqd-Item.c +++ /dev/null @@ -1,157 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E-RABs-ToBeModified-SgNBModReqd-Item.h" - -#include "ProtocolExtensionContainer.h" -#include "E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPpresent.h" -#include "E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPnotpresent.h" -static asn_per_constraints_t asn_PER_type_resource_configuration_constr_4 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_resource_configuration_4[] = { - { ATF_POINTER, 0, offsetof(struct E_RABs_ToBeModified_SgNBModReqd_Item__resource_configuration, choice.sgNBPDCPpresent), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresent, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "sgNBPDCPpresent" - }, - { ATF_POINTER, 0, offsetof(struct E_RABs_ToBeModified_SgNBModReqd_Item__resource_configuration, choice.sgNBPDCPnotpresent), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresent, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "sgNBPDCPnotpresent" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_resource_configuration_tag2el_4[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sgNBPDCPpresent */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* sgNBPDCPnotpresent */ -}; -static asn_CHOICE_specifics_t asn_SPC_resource_configuration_specs_4 = { - sizeof(struct E_RABs_ToBeModified_SgNBModReqd_Item__resource_configuration), - offsetof(struct E_RABs_ToBeModified_SgNBModReqd_Item__resource_configuration, _asn_ctx), - offsetof(struct E_RABs_ToBeModified_SgNBModReqd_Item__resource_configuration, present), - sizeof(((struct E_RABs_ToBeModified_SgNBModReqd_Item__resource_configuration *)0)->present), - asn_MAP_resource_configuration_tag2el_4, - 2, /* Count of tags in the map */ - 0, 0, - 2 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_resource_configuration_4 = { - "resource-configuration", - "resource-configuration", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, &asn_PER_type_resource_configuration_constr_4, CHOICE_constraint }, - asn_MBR_resource_configuration_4, - 2, /* Elements count */ - &asn_SPC_resource_configuration_specs_4 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_E_RABs_ToBeModified_SgNBModReqd_Item_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeModified_SgNBModReqd_Item, e_RAB_ID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E_RAB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "e-RAB-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeModified_SgNBModReqd_Item, en_DC_ResourceConfiguration), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_EN_DC_ResourceConfiguration, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "en-DC-ResourceConfiguration" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeModified_SgNBModReqd_Item, resource_configuration), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_resource_configuration_4, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "resource-configuration" - }, - { ATF_POINTER, 1, offsetof(struct E_RABs_ToBeModified_SgNBModReqd_Item, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P72, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_E_RABs_ToBeModified_SgNBModReqd_Item_oms_1[] = { 3 }; -static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeModified_SgNBModReqd_Item_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeModified_SgNBModReqd_Item_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e-RAB-ID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* en-DC-ResourceConfiguration */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* resource-configuration */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeModified_SgNBModReqd_Item_specs_1 = { - sizeof(struct E_RABs_ToBeModified_SgNBModReqd_Item), - offsetof(struct E_RABs_ToBeModified_SgNBModReqd_Item, _asn_ctx), - asn_MAP_E_RABs_ToBeModified_SgNBModReqd_Item_tag2el_1, - 4, /* Count of tags in the map */ - asn_MAP_E_RABs_ToBeModified_SgNBModReqd_Item_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 4, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeModified_SgNBModReqd_Item = { - "E-RABs-ToBeModified-SgNBModReqd-Item", - "E-RABs-ToBeModified-SgNBModReqd-Item", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_ToBeModified_SgNBModReqd_Item_tags_1, - sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReqd_Item_tags_1) - /sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReqd_Item_tags_1[0]), /* 1 */ - asn_DEF_E_RABs_ToBeModified_SgNBModReqd_Item_tags_1, /* Same as above */ - sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReqd_Item_tags_1) - /sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReqd_Item_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_ToBeModified_SgNBModReqd_Item_1, - 4, /* Elements count */ - &asn_SPC_E_RABs_ToBeModified_SgNBModReqd_Item_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeModified-SgNBModReqd-Item.h b/e2sim/previous/ASN1c/E-RABs-ToBeModified-SgNBModReqd-Item.h deleted file mode 100644 index f287edd..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeModified-SgNBModReqd-Item.h +++ /dev/null @@ -1,92 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E_RABs_ToBeModified_SgNBModReqd_Item_H_ -#define _E_RABs_ToBeModified_SgNBModReqd_Item_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "E-RAB-ID.h" -#include "EN-DC-ResourceConfiguration.h" -#include "constr_CHOICE.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum E_RABs_ToBeModified_SgNBModReqd_Item__resource_configuration_PR { - E_RABs_ToBeModified_SgNBModReqd_Item__resource_configuration_PR_NOTHING, /* No components present */ - E_RABs_ToBeModified_SgNBModReqd_Item__resource_configuration_PR_sgNBPDCPpresent, - E_RABs_ToBeModified_SgNBModReqd_Item__resource_configuration_PR_sgNBPDCPnotpresent - /* Extensions may appear below */ - -} E_RABs_ToBeModified_SgNBModReqd_Item__resource_configuration_PR; - -/* Forward declarations */ -struct ProtocolExtensionContainer; -struct E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresent; -struct E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresent; - -/* E-RABs-ToBeModified-SgNBModReqd-Item */ -typedef struct E_RABs_ToBeModified_SgNBModReqd_Item { - E_RAB_ID_t e_RAB_ID; - EN_DC_ResourceConfiguration_t en_DC_ResourceConfiguration; - struct E_RABs_ToBeModified_SgNBModReqd_Item__resource_configuration { - E_RABs_ToBeModified_SgNBModReqd_Item__resource_configuration_PR present; - union E_RABs_ToBeModified_SgNBModReqd_Item__resource_configuration_u { - struct E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresent *sgNBPDCPpresent; - struct E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresent *sgNBPDCPnotpresent; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } resource_configuration; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeModified_SgNBModReqd_Item_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeModified_SgNBModReqd_Item; - -#ifdef __cplusplus -} -#endif - -#endif /* _E_RABs_ToBeModified_SgNBModReqd_Item_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeModified-SgNBModReqdList.c b/e2sim/previous/ASN1c/E-RABs-ToBeModified-SgNBModReqdList.c deleted file mode 100644 index e9ad6ab..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeModified-SgNBModReqdList.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E-RABs-ToBeModified-SgNBModReqdList.h" - -#include "ProtocolIE-Single-Container.h" -static asn_per_constraints_t asn_PER_type_E_RABs_ToBeModified_SgNBModReqdList_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 8, 8, 1, 256 } /* (SIZE(1..256)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_E_RABs_ToBeModified_SgNBModReqdList_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ProtocolIE_Single_Container_122P37, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeModified_SgNBModReqdList_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_E_RABs_ToBeModified_SgNBModReqdList_specs_1 = { - sizeof(struct E_RABs_ToBeModified_SgNBModReqdList), - offsetof(struct E_RABs_ToBeModified_SgNBModReqdList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeModified_SgNBModReqdList = { - "E-RABs-ToBeModified-SgNBModReqdList", - "E-RABs-ToBeModified-SgNBModReqdList", - &asn_OP_SEQUENCE_OF, - asn_DEF_E_RABs_ToBeModified_SgNBModReqdList_tags_1, - sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReqdList_tags_1) - /sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReqdList_tags_1[0]), /* 1 */ - asn_DEF_E_RABs_ToBeModified_SgNBModReqdList_tags_1, /* Same as above */ - sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReqdList_tags_1) - /sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReqdList_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_E_RABs_ToBeModified_SgNBModReqdList_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_E_RABs_ToBeModified_SgNBModReqdList_1, - 1, /* Single element */ - &asn_SPC_E_RABs_ToBeModified_SgNBModReqdList_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeModified-SgNBModReqdList.h b/e2sim/previous/ASN1c/E-RABs-ToBeModified-SgNBModReqdList.h deleted file mode 100644 index 8a31401..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeModified-SgNBModReqdList.h +++ /dev/null @@ -1,59 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E_RABs_ToBeModified_SgNBModReqdList_H_ -#define _E_RABs_ToBeModified_SgNBModReqdList_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolIE_Single_Container; - -/* E-RABs-ToBeModified-SgNBModReqdList */ -typedef struct E_RABs_ToBeModified_SgNBModReqdList { - A_SEQUENCE_OF(struct ProtocolIE_Single_Container) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeModified_SgNBModReqdList_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeModified_SgNBModReqdList; - -#ifdef __cplusplus -} -#endif - -#endif /* _E_RABs_ToBeModified_SgNBModReqdList_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-List-ModReq.c b/e2sim/previous/ASN1c/E-RABs-ToBeReleased-List-ModReq.c deleted file mode 100644 index d6dbc3b..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-List-ModReq.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E-RABs-ToBeReleased-List-ModReq.h" - -#include "ProtocolIE-Single-Container.h" -asn_per_constraints_t asn_PER_type_E_RABs_ToBeReleased_List_ModReq_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 8, 8, 1, 256 } /* (SIZE(1..256)) */, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_List_ModReq_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ProtocolIE_Single_Container_122P19, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeReleased_List_ModReq_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_E_RABs_ToBeReleased_List_ModReq_specs_1 = { - sizeof(struct E_RABs_ToBeReleased_List_ModReq), - offsetof(struct E_RABs_ToBeReleased_List_ModReq, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_List_ModReq = { - "E-RABs-ToBeReleased-List-ModReq", - "E-RABs-ToBeReleased-List-ModReq", - &asn_OP_SEQUENCE_OF, - asn_DEF_E_RABs_ToBeReleased_List_ModReq_tags_1, - sizeof(asn_DEF_E_RABs_ToBeReleased_List_ModReq_tags_1) - /sizeof(asn_DEF_E_RABs_ToBeReleased_List_ModReq_tags_1[0]), /* 1 */ - asn_DEF_E_RABs_ToBeReleased_List_ModReq_tags_1, /* Same as above */ - sizeof(asn_DEF_E_RABs_ToBeReleased_List_ModReq_tags_1) - /sizeof(asn_DEF_E_RABs_ToBeReleased_List_ModReq_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_E_RABs_ToBeReleased_List_ModReq_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_E_RABs_ToBeReleased_List_ModReq_1, - 1, /* Single element */ - &asn_SPC_E_RABs_ToBeReleased_List_ModReq_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-List-ModReq.h b/e2sim/previous/ASN1c/E-RABs-ToBeReleased-List-ModReq.h deleted file mode 100644 index 5245f88..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-List-ModReq.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E_RABs_ToBeReleased_List_ModReq_H_ -#define _E_RABs_ToBeReleased_List_ModReq_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolIE_Single_Container; - -/* E-RABs-ToBeReleased-List-ModReq */ -typedef struct E_RABs_ToBeReleased_List_ModReq { - A_SEQUENCE_OF(struct ProtocolIE_Single_Container) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeReleased_List_ModReq_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_List_ModReq; -extern asn_SET_OF_specifics_t asn_SPC_E_RABs_ToBeReleased_List_ModReq_specs_1; -extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_List_ModReq_1[1]; -extern asn_per_constraints_t asn_PER_type_E_RABs_ToBeReleased_List_ModReq_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _E_RABs_ToBeReleased_List_ModReq_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-List-RelConf.c b/e2sim/previous/ASN1c/E-RABs-ToBeReleased-List-RelConf.c deleted file mode 100644 index f7c3c6d..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-List-RelConf.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E-RABs-ToBeReleased-List-RelConf.h" - -#include "ProtocolIE-Single-Container.h" -static asn_per_constraints_t asn_PER_type_E_RABs_ToBeReleased_List_RelConf_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 8, 8, 1, 256 } /* (SIZE(1..256)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_List_RelConf_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ProtocolIE_Single_Container_122P25, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeReleased_List_RelConf_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_E_RABs_ToBeReleased_List_RelConf_specs_1 = { - sizeof(struct E_RABs_ToBeReleased_List_RelConf), - offsetof(struct E_RABs_ToBeReleased_List_RelConf, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_List_RelConf = { - "E-RABs-ToBeReleased-List-RelConf", - "E-RABs-ToBeReleased-List-RelConf", - &asn_OP_SEQUENCE_OF, - asn_DEF_E_RABs_ToBeReleased_List_RelConf_tags_1, - sizeof(asn_DEF_E_RABs_ToBeReleased_List_RelConf_tags_1) - /sizeof(asn_DEF_E_RABs_ToBeReleased_List_RelConf_tags_1[0]), /* 1 */ - asn_DEF_E_RABs_ToBeReleased_List_RelConf_tags_1, /* Same as above */ - sizeof(asn_DEF_E_RABs_ToBeReleased_List_RelConf_tags_1) - /sizeof(asn_DEF_E_RABs_ToBeReleased_List_RelConf_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_E_RABs_ToBeReleased_List_RelConf_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_E_RABs_ToBeReleased_List_RelConf_1, - 1, /* Single element */ - &asn_SPC_E_RABs_ToBeReleased_List_RelConf_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-List-RelConf.h b/e2sim/previous/ASN1c/E-RABs-ToBeReleased-List-RelConf.h deleted file mode 100644 index 2309cb7..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-List-RelConf.h +++ /dev/null @@ -1,59 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E_RABs_ToBeReleased_List_RelConf_H_ -#define _E_RABs_ToBeReleased_List_RelConf_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolIE_Single_Container; - -/* E-RABs-ToBeReleased-List-RelConf */ -typedef struct E_RABs_ToBeReleased_List_RelConf { - A_SEQUENCE_OF(struct ProtocolIE_Single_Container) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeReleased_List_RelConf_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_List_RelConf; - -#ifdef __cplusplus -} -#endif - -#endif /* _E_RABs_ToBeReleased_List_RelConf_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-List-RelReq.c b/e2sim/previous/ASN1c/E-RABs-ToBeReleased-List-RelReq.c deleted file mode 100644 index 55c30ea..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-List-RelReq.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E-RABs-ToBeReleased-List-RelReq.h" - -#include "ProtocolIE-Single-Container.h" -static asn_per_constraints_t asn_PER_type_E_RABs_ToBeReleased_List_RelReq_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 8, 8, 1, 256 } /* (SIZE(1..256)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_List_RelReq_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ProtocolIE_Single_Container_122P24, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeReleased_List_RelReq_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_E_RABs_ToBeReleased_List_RelReq_specs_1 = { - sizeof(struct E_RABs_ToBeReleased_List_RelReq), - offsetof(struct E_RABs_ToBeReleased_List_RelReq, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_List_RelReq = { - "E-RABs-ToBeReleased-List-RelReq", - "E-RABs-ToBeReleased-List-RelReq", - &asn_OP_SEQUENCE_OF, - asn_DEF_E_RABs_ToBeReleased_List_RelReq_tags_1, - sizeof(asn_DEF_E_RABs_ToBeReleased_List_RelReq_tags_1) - /sizeof(asn_DEF_E_RABs_ToBeReleased_List_RelReq_tags_1[0]), /* 1 */ - asn_DEF_E_RABs_ToBeReleased_List_RelReq_tags_1, /* Same as above */ - sizeof(asn_DEF_E_RABs_ToBeReleased_List_RelReq_tags_1) - /sizeof(asn_DEF_E_RABs_ToBeReleased_List_RelReq_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_E_RABs_ToBeReleased_List_RelReq_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_E_RABs_ToBeReleased_List_RelReq_1, - 1, /* Single element */ - &asn_SPC_E_RABs_ToBeReleased_List_RelReq_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-List-RelReq.h b/e2sim/previous/ASN1c/E-RABs-ToBeReleased-List-RelReq.h deleted file mode 100644 index 300393a..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-List-RelReq.h +++ /dev/null @@ -1,59 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E_RABs_ToBeReleased_List_RelReq_H_ -#define _E_RABs_ToBeReleased_List_RelReq_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolIE_Single_Container; - -/* E-RABs-ToBeReleased-List-RelReq */ -typedef struct E_RABs_ToBeReleased_List_RelReq { - A_SEQUENCE_OF(struct ProtocolIE_Single_Container) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeReleased_List_RelReq_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_List_RelReq; - -#ifdef __cplusplus -} -#endif - -#endif /* _E_RABs_ToBeReleased_List_RelReq_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-ModReqItem-SCG-Bearer.c b/e2sim/previous/ASN1c/E-RABs-ToBeReleased-ModReqItem-SCG-Bearer.c deleted file mode 100644 index c1d4eb3..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-ModReqItem-SCG-Bearer.c +++ /dev/null @@ -1,102 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E-RABs-ToBeReleased-ModReqItem-SCG-Bearer.h" - -#include "GTPtunnelEndpoint.h" -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_ModReqItem_SCG_Bearer_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_ModReqItem_SCG_Bearer, e_RAB_ID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E_RAB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "e-RAB-ID" - }, - { ATF_POINTER, 3, offsetof(struct E_RABs_ToBeReleased_ModReqItem_SCG_Bearer, dL_Forwarding_GTPtunnelEndpoint), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GTPtunnelEndpoint, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "dL-Forwarding-GTPtunnelEndpoint" - }, - { ATF_POINTER, 2, offsetof(struct E_RABs_ToBeReleased_ModReqItem_SCG_Bearer, uL_Forwarding_GTPtunnelEndpoint), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GTPtunnelEndpoint, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "uL-Forwarding-GTPtunnelEndpoint" - }, - { ATF_POINTER, 1, offsetof(struct E_RABs_ToBeReleased_ModReqItem_SCG_Bearer, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P28, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_E_RABs_ToBeReleased_ModReqItem_SCG_Bearer_oms_1[] = { 1, 2, 3 }; -static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeReleased_ModReqItem_SCG_Bearer_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeReleased_ModReqItem_SCG_Bearer_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e-RAB-ID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* dL-Forwarding-GTPtunnelEndpoint */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* uL-Forwarding-GTPtunnelEndpoint */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_ModReqItem_SCG_Bearer_specs_1 = { - sizeof(struct E_RABs_ToBeReleased_ModReqItem_SCG_Bearer), - offsetof(struct E_RABs_ToBeReleased_ModReqItem_SCG_Bearer, _asn_ctx), - asn_MAP_E_RABs_ToBeReleased_ModReqItem_SCG_Bearer_tag2el_1, - 4, /* Count of tags in the map */ - asn_MAP_E_RABs_ToBeReleased_ModReqItem_SCG_Bearer_oms_1, /* Optional members */ - 3, 0, /* Root/Additions */ - 4, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_ModReqItem_SCG_Bearer = { - "E-RABs-ToBeReleased-ModReqItem-SCG-Bearer", - "E-RABs-ToBeReleased-ModReqItem-SCG-Bearer", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_ToBeReleased_ModReqItem_SCG_Bearer_tags_1, - sizeof(asn_DEF_E_RABs_ToBeReleased_ModReqItem_SCG_Bearer_tags_1) - /sizeof(asn_DEF_E_RABs_ToBeReleased_ModReqItem_SCG_Bearer_tags_1[0]), /* 1 */ - asn_DEF_E_RABs_ToBeReleased_ModReqItem_SCG_Bearer_tags_1, /* Same as above */ - sizeof(asn_DEF_E_RABs_ToBeReleased_ModReqItem_SCG_Bearer_tags_1) - /sizeof(asn_DEF_E_RABs_ToBeReleased_ModReqItem_SCG_Bearer_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_ToBeReleased_ModReqItem_SCG_Bearer_1, - 4, /* Elements count */ - &asn_SPC_E_RABs_ToBeReleased_ModReqItem_SCG_Bearer_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-ModReqItem-SCG-Bearer.h b/e2sim/previous/ASN1c/E-RABs-ToBeReleased-ModReqItem-SCG-Bearer.h deleted file mode 100644 index 6e4c504..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-ModReqItem-SCG-Bearer.h +++ /dev/null @@ -1,69 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E_RABs_ToBeReleased_ModReqItem_SCG_Bearer_H_ -#define _E_RABs_ToBeReleased_ModReqItem_SCG_Bearer_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "E-RAB-ID.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct GTPtunnelEndpoint; -struct ProtocolExtensionContainer; - -/* E-RABs-ToBeReleased-ModReqItem-SCG-Bearer */ -typedef struct E_RABs_ToBeReleased_ModReqItem_SCG_Bearer { - E_RAB_ID_t e_RAB_ID; - struct GTPtunnelEndpoint *dL_Forwarding_GTPtunnelEndpoint; /* OPTIONAL */ - struct GTPtunnelEndpoint *uL_Forwarding_GTPtunnelEndpoint; /* OPTIONAL */ - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeReleased_ModReqItem_SCG_Bearer_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_ModReqItem_SCG_Bearer; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_ModReqItem_SCG_Bearer_specs_1; -extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_ModReqItem_SCG_Bearer_1[4]; - -#ifdef __cplusplus -} -#endif - -#endif /* _E_RABs_ToBeReleased_ModReqItem_SCG_Bearer_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-ModReqItem-Split-Bearer.c b/e2sim/previous/ASN1c/E-RABs-ToBeReleased-ModReqItem-Split-Bearer.c deleted file mode 100644 index 78b5955..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-ModReqItem-Split-Bearer.c +++ /dev/null @@ -1,92 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E-RABs-ToBeReleased-ModReqItem-Split-Bearer.h" - -#include "GTPtunnelEndpoint.h" -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_ModReqItem_Split_Bearer_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_ModReqItem_Split_Bearer, e_RAB_ID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E_RAB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "e-RAB-ID" - }, - { ATF_POINTER, 2, offsetof(struct E_RABs_ToBeReleased_ModReqItem_Split_Bearer, dL_Forwarding_GTPtunnelEndpoint), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GTPtunnelEndpoint, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "dL-Forwarding-GTPtunnelEndpoint" - }, - { ATF_POINTER, 1, offsetof(struct E_RABs_ToBeReleased_ModReqItem_Split_Bearer, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P29, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_E_RABs_ToBeReleased_ModReqItem_Split_Bearer_oms_1[] = { 1, 2 }; -static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeReleased_ModReqItem_Split_Bearer_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeReleased_ModReqItem_Split_Bearer_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e-RAB-ID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* dL-Forwarding-GTPtunnelEndpoint */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_ModReqItem_Split_Bearer_specs_1 = { - sizeof(struct E_RABs_ToBeReleased_ModReqItem_Split_Bearer), - offsetof(struct E_RABs_ToBeReleased_ModReqItem_Split_Bearer, _asn_ctx), - asn_MAP_E_RABs_ToBeReleased_ModReqItem_Split_Bearer_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_E_RABs_ToBeReleased_ModReqItem_Split_Bearer_oms_1, /* Optional members */ - 2, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_ModReqItem_Split_Bearer = { - "E-RABs-ToBeReleased-ModReqItem-Split-Bearer", - "E-RABs-ToBeReleased-ModReqItem-Split-Bearer", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_ToBeReleased_ModReqItem_Split_Bearer_tags_1, - sizeof(asn_DEF_E_RABs_ToBeReleased_ModReqItem_Split_Bearer_tags_1) - /sizeof(asn_DEF_E_RABs_ToBeReleased_ModReqItem_Split_Bearer_tags_1[0]), /* 1 */ - asn_DEF_E_RABs_ToBeReleased_ModReqItem_Split_Bearer_tags_1, /* Same as above */ - sizeof(asn_DEF_E_RABs_ToBeReleased_ModReqItem_Split_Bearer_tags_1) - /sizeof(asn_DEF_E_RABs_ToBeReleased_ModReqItem_Split_Bearer_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_ToBeReleased_ModReqItem_Split_Bearer_1, - 3, /* Elements count */ - &asn_SPC_E_RABs_ToBeReleased_ModReqItem_Split_Bearer_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-ModReqItem-Split-Bearer.h b/e2sim/previous/ASN1c/E-RABs-ToBeReleased-ModReqItem-Split-Bearer.h deleted file mode 100644 index 761a2cd..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-ModReqItem-Split-Bearer.h +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E_RABs_ToBeReleased_ModReqItem_Split_Bearer_H_ -#define _E_RABs_ToBeReleased_ModReqItem_Split_Bearer_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "E-RAB-ID.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct GTPtunnelEndpoint; -struct ProtocolExtensionContainer; - -/* E-RABs-ToBeReleased-ModReqItem-Split-Bearer */ -typedef struct E_RABs_ToBeReleased_ModReqItem_Split_Bearer { - E_RAB_ID_t e_RAB_ID; - struct GTPtunnelEndpoint *dL_Forwarding_GTPtunnelEndpoint; /* OPTIONAL */ - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeReleased_ModReqItem_Split_Bearer_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_ModReqItem_Split_Bearer; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_ModReqItem_Split_Bearer_specs_1; -extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_ModReqItem_Split_Bearer_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _E_RABs_ToBeReleased_ModReqItem_Split_Bearer_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-ModReqItem.c b/e2sim/previous/ASN1c/E-RABs-ToBeReleased-ModReqItem.c deleted file mode 100644 index 41dee41..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-ModReqItem.c +++ /dev/null @@ -1,82 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E-RABs-ToBeReleased-ModReqItem.h" - -#include "E-RABs-ToBeReleased-ModReqItem-SCG-Bearer.h" -#include "E-RABs-ToBeReleased-ModReqItem-Split-Bearer.h" -static asn_per_constraints_t asn_PER_type_E_RABs_ToBeReleased_ModReqItem_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_ModReqItem_1[] = { - { ATF_POINTER, 0, offsetof(struct E_RABs_ToBeReleased_ModReqItem, choice.sCG_Bearer), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E_RABs_ToBeReleased_ModReqItem_SCG_Bearer, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "sCG-Bearer" - }, - { ATF_POINTER, 0, offsetof(struct E_RABs_ToBeReleased_ModReqItem, choice.split_Bearer), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E_RABs_ToBeReleased_ModReqItem_Split_Bearer, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "split-Bearer" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeReleased_ModReqItem_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sCG-Bearer */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* split-Bearer */ -}; -static asn_CHOICE_specifics_t asn_SPC_E_RABs_ToBeReleased_ModReqItem_specs_1 = { - sizeof(struct E_RABs_ToBeReleased_ModReqItem), - offsetof(struct E_RABs_ToBeReleased_ModReqItem, _asn_ctx), - offsetof(struct E_RABs_ToBeReleased_ModReqItem, present), - sizeof(((struct E_RABs_ToBeReleased_ModReqItem *)0)->present), - asn_MAP_E_RABs_ToBeReleased_ModReqItem_tag2el_1, - 2, /* Count of tags in the map */ - 0, 0, - 2 /* Extensions start */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_ModReqItem = { - "E-RABs-ToBeReleased-ModReqItem", - "E-RABs-ToBeReleased-ModReqItem", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, &asn_PER_type_E_RABs_ToBeReleased_ModReqItem_constr_1, CHOICE_constraint }, - asn_MBR_E_RABs_ToBeReleased_ModReqItem_1, - 2, /* Elements count */ - &asn_SPC_E_RABs_ToBeReleased_ModReqItem_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-ModReqItem.h b/e2sim/previous/ASN1c/E-RABs-ToBeReleased-ModReqItem.h deleted file mode 100644 index 72480af..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-ModReqItem.h +++ /dev/null @@ -1,76 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E_RABs_ToBeReleased_ModReqItem_H_ -#define _E_RABs_ToBeReleased_ModReqItem_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "constr_CHOICE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum E_RABs_ToBeReleased_ModReqItem_PR { - E_RABs_ToBeReleased_ModReqItem_PR_NOTHING, /* No components present */ - E_RABs_ToBeReleased_ModReqItem_PR_sCG_Bearer, - E_RABs_ToBeReleased_ModReqItem_PR_split_Bearer - /* Extensions may appear below */ - -} E_RABs_ToBeReleased_ModReqItem_PR; - -/* Forward declarations */ -struct E_RABs_ToBeReleased_ModReqItem_SCG_Bearer; -struct E_RABs_ToBeReleased_ModReqItem_Split_Bearer; - -/* E-RABs-ToBeReleased-ModReqItem */ -typedef struct E_RABs_ToBeReleased_ModReqItem { - E_RABs_ToBeReleased_ModReqItem_PR present; - union E_RABs_ToBeReleased_ModReqItem_u { - struct E_RABs_ToBeReleased_ModReqItem_SCG_Bearer *sCG_Bearer; - struct E_RABs_ToBeReleased_ModReqItem_Split_Bearer *split_Bearer; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeReleased_ModReqItem_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_ModReqItem; - -#ifdef __cplusplus -} -#endif - -#endif /* _E_RABs_ToBeReleased_ModReqItem_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-ModReqd.c b/e2sim/previous/ASN1c/E-RABs-ToBeReleased-ModReqd.c deleted file mode 100644 index 5663549..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-ModReqd.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E-RABs-ToBeReleased-ModReqd.h" - -#include "ProtocolIE-Single-Container.h" -static asn_per_constraints_t asn_PER_type_E_RABs_ToBeReleased_ModReqd_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 8, 8, 1, 256 } /* (SIZE(1..256)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_ModReqd_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ProtocolIE_Single_Container_122P23, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeReleased_ModReqd_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_E_RABs_ToBeReleased_ModReqd_specs_1 = { - sizeof(struct E_RABs_ToBeReleased_ModReqd), - offsetof(struct E_RABs_ToBeReleased_ModReqd, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_ModReqd = { - "E-RABs-ToBeReleased-ModReqd", - "E-RABs-ToBeReleased-ModReqd", - &asn_OP_SEQUENCE_OF, - asn_DEF_E_RABs_ToBeReleased_ModReqd_tags_1, - sizeof(asn_DEF_E_RABs_ToBeReleased_ModReqd_tags_1) - /sizeof(asn_DEF_E_RABs_ToBeReleased_ModReqd_tags_1[0]), /* 1 */ - asn_DEF_E_RABs_ToBeReleased_ModReqd_tags_1, /* Same as above */ - sizeof(asn_DEF_E_RABs_ToBeReleased_ModReqd_tags_1) - /sizeof(asn_DEF_E_RABs_ToBeReleased_ModReqd_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_E_RABs_ToBeReleased_ModReqd_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_E_RABs_ToBeReleased_ModReqd_1, - 1, /* Single element */ - &asn_SPC_E_RABs_ToBeReleased_ModReqd_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-ModReqd.h b/e2sim/previous/ASN1c/E-RABs-ToBeReleased-ModReqd.h deleted file mode 100644 index 203e2bd..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-ModReqd.h +++ /dev/null @@ -1,59 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E_RABs_ToBeReleased_ModReqd_H_ -#define _E_RABs_ToBeReleased_ModReqd_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolIE_Single_Container; - -/* E-RABs-ToBeReleased-ModReqd */ -typedef struct E_RABs_ToBeReleased_ModReqd { - A_SEQUENCE_OF(struct ProtocolIE_Single_Container) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeReleased_ModReqd_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_ModReqd; - -#ifdef __cplusplus -} -#endif - -#endif /* _E_RABs_ToBeReleased_ModReqd_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-ModReqdItem.c b/e2sim/previous/ASN1c/E-RABs-ToBeReleased-ModReqdItem.c deleted file mode 100644 index 24dbc25..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-ModReqdItem.c +++ /dev/null @@ -1,91 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E-RABs-ToBeReleased-ModReqdItem.h" - -#include "ProtocolExtensionContainer.h" -static asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_ModReqdItem_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_ModReqdItem, e_RAB_ID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E_RAB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "e-RAB-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_ModReqdItem, cause), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_Cause, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "cause" - }, - { ATF_POINTER, 1, offsetof(struct E_RABs_ToBeReleased_ModReqdItem, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P36, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_E_RABs_ToBeReleased_ModReqdItem_oms_1[] = { 2 }; -static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeReleased_ModReqdItem_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeReleased_ModReqdItem_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e-RAB-ID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* cause */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_ModReqdItem_specs_1 = { - sizeof(struct E_RABs_ToBeReleased_ModReqdItem), - offsetof(struct E_RABs_ToBeReleased_ModReqdItem, _asn_ctx), - asn_MAP_E_RABs_ToBeReleased_ModReqdItem_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_E_RABs_ToBeReleased_ModReqdItem_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_ModReqdItem = { - "E-RABs-ToBeReleased-ModReqdItem", - "E-RABs-ToBeReleased-ModReqdItem", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_ToBeReleased_ModReqdItem_tags_1, - sizeof(asn_DEF_E_RABs_ToBeReleased_ModReqdItem_tags_1) - /sizeof(asn_DEF_E_RABs_ToBeReleased_ModReqdItem_tags_1[0]), /* 1 */ - asn_DEF_E_RABs_ToBeReleased_ModReqdItem_tags_1, /* Same as above */ - sizeof(asn_DEF_E_RABs_ToBeReleased_ModReqdItem_tags_1) - /sizeof(asn_DEF_E_RABs_ToBeReleased_ModReqdItem_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_ToBeReleased_ModReqdItem_1, - 3, /* Elements count */ - &asn_SPC_E_RABs_ToBeReleased_ModReqdItem_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-ModReqdItem.h b/e2sim/previous/ASN1c/E-RABs-ToBeReleased-ModReqdItem.h deleted file mode 100644 index 4d23acd..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-ModReqdItem.h +++ /dev/null @@ -1,66 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E_RABs_ToBeReleased_ModReqdItem_H_ -#define _E_RABs_ToBeReleased_ModReqdItem_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "E-RAB-ID.h" -#include "Cause.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* E-RABs-ToBeReleased-ModReqdItem */ -typedef struct E_RABs_ToBeReleased_ModReqdItem { - E_RAB_ID_t e_RAB_ID; - Cause_t cause; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeReleased_ModReqdItem_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_ModReqdItem; - -#ifdef __cplusplus -} -#endif - -#endif /* _E_RABs_ToBeReleased_ModReqdItem_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-RelConfItem-SCG-Bearer.c b/e2sim/previous/ASN1c/E-RABs-ToBeReleased-RelConfItem-SCG-Bearer.c deleted file mode 100644 index 99506ff..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-RelConfItem-SCG-Bearer.c +++ /dev/null @@ -1,102 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E-RABs-ToBeReleased-RelConfItem-SCG-Bearer.h" - -#include "GTPtunnelEndpoint.h" -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_RelConfItem_SCG_Bearer_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_RelConfItem_SCG_Bearer, e_RAB_ID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E_RAB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "e-RAB-ID" - }, - { ATF_POINTER, 3, offsetof(struct E_RABs_ToBeReleased_RelConfItem_SCG_Bearer, uL_Forwarding_GTPtunnelEndpoint), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GTPtunnelEndpoint, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "uL-Forwarding-GTPtunnelEndpoint" - }, - { ATF_POINTER, 2, offsetof(struct E_RABs_ToBeReleased_RelConfItem_SCG_Bearer, dL_Forwarding_GTPtunnelEndpoint), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GTPtunnelEndpoint, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "dL-Forwarding-GTPtunnelEndpoint" - }, - { ATF_POINTER, 1, offsetof(struct E_RABs_ToBeReleased_RelConfItem_SCG_Bearer, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P39, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_E_RABs_ToBeReleased_RelConfItem_SCG_Bearer_oms_1[] = { 1, 2, 3 }; -static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeReleased_RelConfItem_SCG_Bearer_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeReleased_RelConfItem_SCG_Bearer_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e-RAB-ID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* uL-Forwarding-GTPtunnelEndpoint */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* dL-Forwarding-GTPtunnelEndpoint */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_RelConfItem_SCG_Bearer_specs_1 = { - sizeof(struct E_RABs_ToBeReleased_RelConfItem_SCG_Bearer), - offsetof(struct E_RABs_ToBeReleased_RelConfItem_SCG_Bearer, _asn_ctx), - asn_MAP_E_RABs_ToBeReleased_RelConfItem_SCG_Bearer_tag2el_1, - 4, /* Count of tags in the map */ - asn_MAP_E_RABs_ToBeReleased_RelConfItem_SCG_Bearer_oms_1, /* Optional members */ - 3, 0, /* Root/Additions */ - 4, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_RelConfItem_SCG_Bearer = { - "E-RABs-ToBeReleased-RelConfItem-SCG-Bearer", - "E-RABs-ToBeReleased-RelConfItem-SCG-Bearer", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_ToBeReleased_RelConfItem_SCG_Bearer_tags_1, - sizeof(asn_DEF_E_RABs_ToBeReleased_RelConfItem_SCG_Bearer_tags_1) - /sizeof(asn_DEF_E_RABs_ToBeReleased_RelConfItem_SCG_Bearer_tags_1[0]), /* 1 */ - asn_DEF_E_RABs_ToBeReleased_RelConfItem_SCG_Bearer_tags_1, /* Same as above */ - sizeof(asn_DEF_E_RABs_ToBeReleased_RelConfItem_SCG_Bearer_tags_1) - /sizeof(asn_DEF_E_RABs_ToBeReleased_RelConfItem_SCG_Bearer_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_ToBeReleased_RelConfItem_SCG_Bearer_1, - 4, /* Elements count */ - &asn_SPC_E_RABs_ToBeReleased_RelConfItem_SCG_Bearer_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-RelConfItem-SCG-Bearer.h b/e2sim/previous/ASN1c/E-RABs-ToBeReleased-RelConfItem-SCG-Bearer.h deleted file mode 100644 index eb7d661..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-RelConfItem-SCG-Bearer.h +++ /dev/null @@ -1,69 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E_RABs_ToBeReleased_RelConfItem_SCG_Bearer_H_ -#define _E_RABs_ToBeReleased_RelConfItem_SCG_Bearer_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "E-RAB-ID.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct GTPtunnelEndpoint; -struct ProtocolExtensionContainer; - -/* E-RABs-ToBeReleased-RelConfItem-SCG-Bearer */ -typedef struct E_RABs_ToBeReleased_RelConfItem_SCG_Bearer { - E_RAB_ID_t e_RAB_ID; - struct GTPtunnelEndpoint *uL_Forwarding_GTPtunnelEndpoint; /* OPTIONAL */ - struct GTPtunnelEndpoint *dL_Forwarding_GTPtunnelEndpoint; /* OPTIONAL */ - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeReleased_RelConfItem_SCG_Bearer_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_RelConfItem_SCG_Bearer; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_RelConfItem_SCG_Bearer_specs_1; -extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_RelConfItem_SCG_Bearer_1[4]; - -#ifdef __cplusplus -} -#endif - -#endif /* _E_RABs_ToBeReleased_RelConfItem_SCG_Bearer_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-RelConfItem-Split-Bearer.c b/e2sim/previous/ASN1c/E-RABs-ToBeReleased-RelConfItem-Split-Bearer.c deleted file mode 100644 index 2354383..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-RelConfItem-Split-Bearer.c +++ /dev/null @@ -1,92 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E-RABs-ToBeReleased-RelConfItem-Split-Bearer.h" - -#include "GTPtunnelEndpoint.h" -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_RelConfItem_Split_Bearer_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_RelConfItem_Split_Bearer, e_RAB_ID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E_RAB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "e-RAB-ID" - }, - { ATF_POINTER, 2, offsetof(struct E_RABs_ToBeReleased_RelConfItem_Split_Bearer, dL_Forwarding_GTPtunnelEndpoint), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GTPtunnelEndpoint, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "dL-Forwarding-GTPtunnelEndpoint" - }, - { ATF_POINTER, 1, offsetof(struct E_RABs_ToBeReleased_RelConfItem_Split_Bearer, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P40, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_E_RABs_ToBeReleased_RelConfItem_Split_Bearer_oms_1[] = { 1, 2 }; -static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeReleased_RelConfItem_Split_Bearer_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeReleased_RelConfItem_Split_Bearer_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e-RAB-ID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* dL-Forwarding-GTPtunnelEndpoint */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_RelConfItem_Split_Bearer_specs_1 = { - sizeof(struct E_RABs_ToBeReleased_RelConfItem_Split_Bearer), - offsetof(struct E_RABs_ToBeReleased_RelConfItem_Split_Bearer, _asn_ctx), - asn_MAP_E_RABs_ToBeReleased_RelConfItem_Split_Bearer_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_E_RABs_ToBeReleased_RelConfItem_Split_Bearer_oms_1, /* Optional members */ - 2, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_RelConfItem_Split_Bearer = { - "E-RABs-ToBeReleased-RelConfItem-Split-Bearer", - "E-RABs-ToBeReleased-RelConfItem-Split-Bearer", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_ToBeReleased_RelConfItem_Split_Bearer_tags_1, - sizeof(asn_DEF_E_RABs_ToBeReleased_RelConfItem_Split_Bearer_tags_1) - /sizeof(asn_DEF_E_RABs_ToBeReleased_RelConfItem_Split_Bearer_tags_1[0]), /* 1 */ - asn_DEF_E_RABs_ToBeReleased_RelConfItem_Split_Bearer_tags_1, /* Same as above */ - sizeof(asn_DEF_E_RABs_ToBeReleased_RelConfItem_Split_Bearer_tags_1) - /sizeof(asn_DEF_E_RABs_ToBeReleased_RelConfItem_Split_Bearer_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_ToBeReleased_RelConfItem_Split_Bearer_1, - 3, /* Elements count */ - &asn_SPC_E_RABs_ToBeReleased_RelConfItem_Split_Bearer_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-RelConfItem-Split-Bearer.h b/e2sim/previous/ASN1c/E-RABs-ToBeReleased-RelConfItem-Split-Bearer.h deleted file mode 100644 index 802b74c..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-RelConfItem-Split-Bearer.h +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E_RABs_ToBeReleased_RelConfItem_Split_Bearer_H_ -#define _E_RABs_ToBeReleased_RelConfItem_Split_Bearer_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "E-RAB-ID.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct GTPtunnelEndpoint; -struct ProtocolExtensionContainer; - -/* E-RABs-ToBeReleased-RelConfItem-Split-Bearer */ -typedef struct E_RABs_ToBeReleased_RelConfItem_Split_Bearer { - E_RAB_ID_t e_RAB_ID; - struct GTPtunnelEndpoint *dL_Forwarding_GTPtunnelEndpoint; /* OPTIONAL */ - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeReleased_RelConfItem_Split_Bearer_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_RelConfItem_Split_Bearer; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_RelConfItem_Split_Bearer_specs_1; -extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_RelConfItem_Split_Bearer_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _E_RABs_ToBeReleased_RelConfItem_Split_Bearer_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-RelConfItem.c b/e2sim/previous/ASN1c/E-RABs-ToBeReleased-RelConfItem.c deleted file mode 100644 index 60e75ec..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-RelConfItem.c +++ /dev/null @@ -1,82 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E-RABs-ToBeReleased-RelConfItem.h" - -#include "E-RABs-ToBeReleased-RelConfItem-SCG-Bearer.h" -#include "E-RABs-ToBeReleased-RelConfItem-Split-Bearer.h" -static asn_per_constraints_t asn_PER_type_E_RABs_ToBeReleased_RelConfItem_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_RelConfItem_1[] = { - { ATF_POINTER, 0, offsetof(struct E_RABs_ToBeReleased_RelConfItem, choice.sCG_Bearer), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E_RABs_ToBeReleased_RelConfItem_SCG_Bearer, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "sCG-Bearer" - }, - { ATF_POINTER, 0, offsetof(struct E_RABs_ToBeReleased_RelConfItem, choice.split_Bearer), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E_RABs_ToBeReleased_RelConfItem_Split_Bearer, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "split-Bearer" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeReleased_RelConfItem_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sCG-Bearer */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* split-Bearer */ -}; -static asn_CHOICE_specifics_t asn_SPC_E_RABs_ToBeReleased_RelConfItem_specs_1 = { - sizeof(struct E_RABs_ToBeReleased_RelConfItem), - offsetof(struct E_RABs_ToBeReleased_RelConfItem, _asn_ctx), - offsetof(struct E_RABs_ToBeReleased_RelConfItem, present), - sizeof(((struct E_RABs_ToBeReleased_RelConfItem *)0)->present), - asn_MAP_E_RABs_ToBeReleased_RelConfItem_tag2el_1, - 2, /* Count of tags in the map */ - 0, 0, - 2 /* Extensions start */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_RelConfItem = { - "E-RABs-ToBeReleased-RelConfItem", - "E-RABs-ToBeReleased-RelConfItem", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, &asn_PER_type_E_RABs_ToBeReleased_RelConfItem_constr_1, CHOICE_constraint }, - asn_MBR_E_RABs_ToBeReleased_RelConfItem_1, - 2, /* Elements count */ - &asn_SPC_E_RABs_ToBeReleased_RelConfItem_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-RelConfItem.h b/e2sim/previous/ASN1c/E-RABs-ToBeReleased-RelConfItem.h deleted file mode 100644 index 39ed64c..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-RelConfItem.h +++ /dev/null @@ -1,76 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E_RABs_ToBeReleased_RelConfItem_H_ -#define _E_RABs_ToBeReleased_RelConfItem_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "constr_CHOICE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum E_RABs_ToBeReleased_RelConfItem_PR { - E_RABs_ToBeReleased_RelConfItem_PR_NOTHING, /* No components present */ - E_RABs_ToBeReleased_RelConfItem_PR_sCG_Bearer, - E_RABs_ToBeReleased_RelConfItem_PR_split_Bearer - /* Extensions may appear below */ - -} E_RABs_ToBeReleased_RelConfItem_PR; - -/* Forward declarations */ -struct E_RABs_ToBeReleased_RelConfItem_SCG_Bearer; -struct E_RABs_ToBeReleased_RelConfItem_Split_Bearer; - -/* E-RABs-ToBeReleased-RelConfItem */ -typedef struct E_RABs_ToBeReleased_RelConfItem { - E_RABs_ToBeReleased_RelConfItem_PR present; - union E_RABs_ToBeReleased_RelConfItem_u { - struct E_RABs_ToBeReleased_RelConfItem_SCG_Bearer *sCG_Bearer; - struct E_RABs_ToBeReleased_RelConfItem_Split_Bearer *split_Bearer; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeReleased_RelConfItem_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_RelConfItem; - -#ifdef __cplusplus -} -#endif - -#endif /* _E_RABs_ToBeReleased_RelConfItem_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-RelReqItem-SCG-Bearer.c b/e2sim/previous/ASN1c/E-RABs-ToBeReleased-RelReqItem-SCG-Bearer.c deleted file mode 100644 index 18d308d..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-RelReqItem-SCG-Bearer.c +++ /dev/null @@ -1,102 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E-RABs-ToBeReleased-RelReqItem-SCG-Bearer.h" - -#include "GTPtunnelEndpoint.h" -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_RelReqItem_SCG_Bearer_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_RelReqItem_SCG_Bearer, e_RAB_ID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E_RAB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "e-RAB-ID" - }, - { ATF_POINTER, 3, offsetof(struct E_RABs_ToBeReleased_RelReqItem_SCG_Bearer, uL_Forwarding_GTPtunnelEndpoint), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GTPtunnelEndpoint, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "uL-Forwarding-GTPtunnelEndpoint" - }, - { ATF_POINTER, 2, offsetof(struct E_RABs_ToBeReleased_RelReqItem_SCG_Bearer, dL_Forwarding_GTPtunnelEndpoint), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GTPtunnelEndpoint, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "dL-Forwarding-GTPtunnelEndpoint" - }, - { ATF_POINTER, 1, offsetof(struct E_RABs_ToBeReleased_RelReqItem_SCG_Bearer, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P37, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_E_RABs_ToBeReleased_RelReqItem_SCG_Bearer_oms_1[] = { 1, 2, 3 }; -static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeReleased_RelReqItem_SCG_Bearer_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeReleased_RelReqItem_SCG_Bearer_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e-RAB-ID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* uL-Forwarding-GTPtunnelEndpoint */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* dL-Forwarding-GTPtunnelEndpoint */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_RelReqItem_SCG_Bearer_specs_1 = { - sizeof(struct E_RABs_ToBeReleased_RelReqItem_SCG_Bearer), - offsetof(struct E_RABs_ToBeReleased_RelReqItem_SCG_Bearer, _asn_ctx), - asn_MAP_E_RABs_ToBeReleased_RelReqItem_SCG_Bearer_tag2el_1, - 4, /* Count of tags in the map */ - asn_MAP_E_RABs_ToBeReleased_RelReqItem_SCG_Bearer_oms_1, /* Optional members */ - 3, 0, /* Root/Additions */ - 4, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_RelReqItem_SCG_Bearer = { - "E-RABs-ToBeReleased-RelReqItem-SCG-Bearer", - "E-RABs-ToBeReleased-RelReqItem-SCG-Bearer", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_ToBeReleased_RelReqItem_SCG_Bearer_tags_1, - sizeof(asn_DEF_E_RABs_ToBeReleased_RelReqItem_SCG_Bearer_tags_1) - /sizeof(asn_DEF_E_RABs_ToBeReleased_RelReqItem_SCG_Bearer_tags_1[0]), /* 1 */ - asn_DEF_E_RABs_ToBeReleased_RelReqItem_SCG_Bearer_tags_1, /* Same as above */ - sizeof(asn_DEF_E_RABs_ToBeReleased_RelReqItem_SCG_Bearer_tags_1) - /sizeof(asn_DEF_E_RABs_ToBeReleased_RelReqItem_SCG_Bearer_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_ToBeReleased_RelReqItem_SCG_Bearer_1, - 4, /* Elements count */ - &asn_SPC_E_RABs_ToBeReleased_RelReqItem_SCG_Bearer_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-RelReqItem-SCG-Bearer.h b/e2sim/previous/ASN1c/E-RABs-ToBeReleased-RelReqItem-SCG-Bearer.h deleted file mode 100644 index f1be15c..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-RelReqItem-SCG-Bearer.h +++ /dev/null @@ -1,69 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E_RABs_ToBeReleased_RelReqItem_SCG_Bearer_H_ -#define _E_RABs_ToBeReleased_RelReqItem_SCG_Bearer_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "E-RAB-ID.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct GTPtunnelEndpoint; -struct ProtocolExtensionContainer; - -/* E-RABs-ToBeReleased-RelReqItem-SCG-Bearer */ -typedef struct E_RABs_ToBeReleased_RelReqItem_SCG_Bearer { - E_RAB_ID_t e_RAB_ID; - struct GTPtunnelEndpoint *uL_Forwarding_GTPtunnelEndpoint; /* OPTIONAL */ - struct GTPtunnelEndpoint *dL_Forwarding_GTPtunnelEndpoint; /* OPTIONAL */ - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeReleased_RelReqItem_SCG_Bearer_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_RelReqItem_SCG_Bearer; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_RelReqItem_SCG_Bearer_specs_1; -extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_RelReqItem_SCG_Bearer_1[4]; - -#ifdef __cplusplus -} -#endif - -#endif /* _E_RABs_ToBeReleased_RelReqItem_SCG_Bearer_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-RelReqItem-Split-Bearer.c b/e2sim/previous/ASN1c/E-RABs-ToBeReleased-RelReqItem-Split-Bearer.c deleted file mode 100644 index 35015bb..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-RelReqItem-Split-Bearer.c +++ /dev/null @@ -1,92 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E-RABs-ToBeReleased-RelReqItem-Split-Bearer.h" - -#include "GTPtunnelEndpoint.h" -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_RelReqItem_Split_Bearer_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_RelReqItem_Split_Bearer, e_RAB_ID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E_RAB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "e-RAB-ID" - }, - { ATF_POINTER, 2, offsetof(struct E_RABs_ToBeReleased_RelReqItem_Split_Bearer, dL_Forwarding_GTPtunnelEndpoint), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GTPtunnelEndpoint, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "dL-Forwarding-GTPtunnelEndpoint" - }, - { ATF_POINTER, 1, offsetof(struct E_RABs_ToBeReleased_RelReqItem_Split_Bearer, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P38, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_E_RABs_ToBeReleased_RelReqItem_Split_Bearer_oms_1[] = { 1, 2 }; -static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeReleased_RelReqItem_Split_Bearer_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeReleased_RelReqItem_Split_Bearer_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e-RAB-ID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* dL-Forwarding-GTPtunnelEndpoint */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_RelReqItem_Split_Bearer_specs_1 = { - sizeof(struct E_RABs_ToBeReleased_RelReqItem_Split_Bearer), - offsetof(struct E_RABs_ToBeReleased_RelReqItem_Split_Bearer, _asn_ctx), - asn_MAP_E_RABs_ToBeReleased_RelReqItem_Split_Bearer_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_E_RABs_ToBeReleased_RelReqItem_Split_Bearer_oms_1, /* Optional members */ - 2, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_RelReqItem_Split_Bearer = { - "E-RABs-ToBeReleased-RelReqItem-Split-Bearer", - "E-RABs-ToBeReleased-RelReqItem-Split-Bearer", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_ToBeReleased_RelReqItem_Split_Bearer_tags_1, - sizeof(asn_DEF_E_RABs_ToBeReleased_RelReqItem_Split_Bearer_tags_1) - /sizeof(asn_DEF_E_RABs_ToBeReleased_RelReqItem_Split_Bearer_tags_1[0]), /* 1 */ - asn_DEF_E_RABs_ToBeReleased_RelReqItem_Split_Bearer_tags_1, /* Same as above */ - sizeof(asn_DEF_E_RABs_ToBeReleased_RelReqItem_Split_Bearer_tags_1) - /sizeof(asn_DEF_E_RABs_ToBeReleased_RelReqItem_Split_Bearer_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_ToBeReleased_RelReqItem_Split_Bearer_1, - 3, /* Elements count */ - &asn_SPC_E_RABs_ToBeReleased_RelReqItem_Split_Bearer_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-RelReqItem-Split-Bearer.h b/e2sim/previous/ASN1c/E-RABs-ToBeReleased-RelReqItem-Split-Bearer.h deleted file mode 100644 index 3b048dd..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-RelReqItem-Split-Bearer.h +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E_RABs_ToBeReleased_RelReqItem_Split_Bearer_H_ -#define _E_RABs_ToBeReleased_RelReqItem_Split_Bearer_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "E-RAB-ID.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct GTPtunnelEndpoint; -struct ProtocolExtensionContainer; - -/* E-RABs-ToBeReleased-RelReqItem-Split-Bearer */ -typedef struct E_RABs_ToBeReleased_RelReqItem_Split_Bearer { - E_RAB_ID_t e_RAB_ID; - struct GTPtunnelEndpoint *dL_Forwarding_GTPtunnelEndpoint; /* OPTIONAL */ - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeReleased_RelReqItem_Split_Bearer_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_RelReqItem_Split_Bearer; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_RelReqItem_Split_Bearer_specs_1; -extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_RelReqItem_Split_Bearer_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _E_RABs_ToBeReleased_RelReqItem_Split_Bearer_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-RelReqItem.c b/e2sim/previous/ASN1c/E-RABs-ToBeReleased-RelReqItem.c deleted file mode 100644 index b71f1af..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-RelReqItem.c +++ /dev/null @@ -1,82 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E-RABs-ToBeReleased-RelReqItem.h" - -#include "E-RABs-ToBeReleased-RelReqItem-SCG-Bearer.h" -#include "E-RABs-ToBeReleased-RelReqItem-Split-Bearer.h" -static asn_per_constraints_t asn_PER_type_E_RABs_ToBeReleased_RelReqItem_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_RelReqItem_1[] = { - { ATF_POINTER, 0, offsetof(struct E_RABs_ToBeReleased_RelReqItem, choice.sCG_Bearer), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E_RABs_ToBeReleased_RelReqItem_SCG_Bearer, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "sCG-Bearer" - }, - { ATF_POINTER, 0, offsetof(struct E_RABs_ToBeReleased_RelReqItem, choice.split_Bearer), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E_RABs_ToBeReleased_RelReqItem_Split_Bearer, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "split-Bearer" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeReleased_RelReqItem_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sCG-Bearer */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* split-Bearer */ -}; -static asn_CHOICE_specifics_t asn_SPC_E_RABs_ToBeReleased_RelReqItem_specs_1 = { - sizeof(struct E_RABs_ToBeReleased_RelReqItem), - offsetof(struct E_RABs_ToBeReleased_RelReqItem, _asn_ctx), - offsetof(struct E_RABs_ToBeReleased_RelReqItem, present), - sizeof(((struct E_RABs_ToBeReleased_RelReqItem *)0)->present), - asn_MAP_E_RABs_ToBeReleased_RelReqItem_tag2el_1, - 2, /* Count of tags in the map */ - 0, 0, - 2 /* Extensions start */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_RelReqItem = { - "E-RABs-ToBeReleased-RelReqItem", - "E-RABs-ToBeReleased-RelReqItem", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, &asn_PER_type_E_RABs_ToBeReleased_RelReqItem_constr_1, CHOICE_constraint }, - asn_MBR_E_RABs_ToBeReleased_RelReqItem_1, - 2, /* Elements count */ - &asn_SPC_E_RABs_ToBeReleased_RelReqItem_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-RelReqItem.h b/e2sim/previous/ASN1c/E-RABs-ToBeReleased-RelReqItem.h deleted file mode 100644 index e923a5e..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-RelReqItem.h +++ /dev/null @@ -1,76 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E_RABs_ToBeReleased_RelReqItem_H_ -#define _E_RABs_ToBeReleased_RelReqItem_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "constr_CHOICE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum E_RABs_ToBeReleased_RelReqItem_PR { - E_RABs_ToBeReleased_RelReqItem_PR_NOTHING, /* No components present */ - E_RABs_ToBeReleased_RelReqItem_PR_sCG_Bearer, - E_RABs_ToBeReleased_RelReqItem_PR_split_Bearer - /* Extensions may appear below */ - -} E_RABs_ToBeReleased_RelReqItem_PR; - -/* Forward declarations */ -struct E_RABs_ToBeReleased_RelReqItem_SCG_Bearer; -struct E_RABs_ToBeReleased_RelReqItem_Split_Bearer; - -/* E-RABs-ToBeReleased-RelReqItem */ -typedef struct E_RABs_ToBeReleased_RelReqItem { - E_RABs_ToBeReleased_RelReqItem_PR present; - union E_RABs_ToBeReleased_RelReqItem_u { - struct E_RABs_ToBeReleased_RelReqItem_SCG_Bearer *sCG_Bearer; - struct E_RABs_ToBeReleased_RelReqItem_Split_Bearer *split_Bearer; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeReleased_RelReqItem_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_RelReqItem; - -#ifdef __cplusplus -} -#endif - -#endif /* _E_RABs_ToBeReleased_RelReqItem_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPnotpresent.c b/e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPnotpresent.c deleted file mode 100644 index 31c1e73..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPnotpresent.c +++ /dev/null @@ -1,71 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPnotpresent.h" - -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresent_1[] = { - { ATF_POINTER, 1, offsetof(struct E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresent, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P89, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresent_oms_1[] = { 0 }; -static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresent_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresent_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresent_specs_1 = { - sizeof(struct E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresent), - offsetof(struct E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresent, _asn_ctx), - asn_MAP_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresent_tag2el_1, - 1, /* Count of tags in the map */ - asn_MAP_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresent_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresent = { - "E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPnotpresent", - "E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPnotpresent", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresent_tags_1, - sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresent_tags_1) - /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresent_tags_1[0]), /* 1 */ - asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresent_tags_1, /* Same as above */ - sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresent_tags_1) - /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresent_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresent_1, - 1, /* Elements count */ - &asn_SPC_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresent_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPnotpresent.h b/e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPnotpresent.h deleted file mode 100644 index cc9939d..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPnotpresent.h +++ /dev/null @@ -1,64 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresent_H_ -#define _E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresent_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPnotpresent */ -typedef struct E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresent { - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresent_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresent; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresent_specs_1; -extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresent_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresent_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPpresent.c b/e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPpresent.c deleted file mode 100644 index df4b8c4..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPpresent.c +++ /dev/null @@ -1,92 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPpresent.h" - -#include "GTPtunnelEndpoint.h" -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresent_1[] = { - { ATF_POINTER, 3, offsetof(struct E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresent, uL_GTPtunnelEndpoint), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GTPtunnelEndpoint, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "uL-GTPtunnelEndpoint" - }, - { ATF_POINTER, 2, offsetof(struct E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresent, dL_GTPtunnelEndpoint), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GTPtunnelEndpoint, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "dL-GTPtunnelEndpoint" - }, - { ATF_POINTER, 1, offsetof(struct E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresent, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P88, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresent_oms_1[] = { 0, 1, 2 }; -static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresent_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresent_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* uL-GTPtunnelEndpoint */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* dL-GTPtunnelEndpoint */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresent_specs_1 = { - sizeof(struct E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresent), - offsetof(struct E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresent, _asn_ctx), - asn_MAP_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresent_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresent_oms_1, /* Optional members */ - 3, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresent = { - "E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPpresent", - "E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPpresent", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresent_tags_1, - sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresent_tags_1) - /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresent_tags_1[0]), /* 1 */ - asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresent_tags_1, /* Same as above */ - sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresent_tags_1) - /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresent_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresent_1, - 3, /* Elements count */ - &asn_SPC_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresent_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPpresent.h b/e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPpresent.h deleted file mode 100644 index 768ada4..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPpresent.h +++ /dev/null @@ -1,67 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresent_H_ -#define _E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresent_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct GTPtunnelEndpoint; -struct ProtocolExtensionContainer; - -/* E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPpresent */ -typedef struct E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresent { - struct GTPtunnelEndpoint *uL_GTPtunnelEndpoint; /* OPTIONAL */ - struct GTPtunnelEndpoint *dL_GTPtunnelEndpoint; /* OPTIONAL */ - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresent_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresent; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresent_specs_1; -extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresent_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresent_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBChaConf-Item.c b/e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBChaConf-Item.c deleted file mode 100644 index 4b94252..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBChaConf-Item.c +++ /dev/null @@ -1,157 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E-RABs-ToBeReleased-SgNBChaConf-Item.h" - -#include "ProtocolExtensionContainer.h" -#include "E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPpresent.h" -#include "E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPnotpresent.h" -static asn_per_constraints_t asn_PER_type_resource_configuration_constr_4 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_resource_configuration_4[] = { - { ATF_POINTER, 0, offsetof(struct E_RABs_ToBeReleased_SgNBChaConf_Item__resource_configuration, choice.sgNBPDCPpresent), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresent, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "sgNBPDCPpresent" - }, - { ATF_POINTER, 0, offsetof(struct E_RABs_ToBeReleased_SgNBChaConf_Item__resource_configuration, choice.sgNBPDCPnotpresent), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresent, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "sgNBPDCPnotpresent" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_resource_configuration_tag2el_4[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sgNBPDCPpresent */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* sgNBPDCPnotpresent */ -}; -static asn_CHOICE_specifics_t asn_SPC_resource_configuration_specs_4 = { - sizeof(struct E_RABs_ToBeReleased_SgNBChaConf_Item__resource_configuration), - offsetof(struct E_RABs_ToBeReleased_SgNBChaConf_Item__resource_configuration, _asn_ctx), - offsetof(struct E_RABs_ToBeReleased_SgNBChaConf_Item__resource_configuration, present), - sizeof(((struct E_RABs_ToBeReleased_SgNBChaConf_Item__resource_configuration *)0)->present), - asn_MAP_resource_configuration_tag2el_4, - 2, /* Count of tags in the map */ - 0, 0, - 2 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_resource_configuration_4 = { - "resource-configuration", - "resource-configuration", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, &asn_PER_type_resource_configuration_constr_4, CHOICE_constraint }, - asn_MBR_resource_configuration_4, - 2, /* Elements count */ - &asn_SPC_resource_configuration_specs_4 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBChaConf_Item_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBChaConf_Item, e_RAB_ID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E_RAB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "e-RAB-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBChaConf_Item, en_DC_ResourceConfiguration), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_EN_DC_ResourceConfiguration, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "en-DC-ResourceConfiguration" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBChaConf_Item, resource_configuration), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_resource_configuration_4, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "resource-configuration" - }, - { ATF_POINTER, 1, offsetof(struct E_RABs_ToBeReleased_SgNBChaConf_Item, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P87, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_E_RABs_ToBeReleased_SgNBChaConf_Item_oms_1[] = { 3 }; -static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_Item_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeReleased_SgNBChaConf_Item_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e-RAB-ID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* en-DC-ResourceConfiguration */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* resource-configuration */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBChaConf_Item_specs_1 = { - sizeof(struct E_RABs_ToBeReleased_SgNBChaConf_Item), - offsetof(struct E_RABs_ToBeReleased_SgNBChaConf_Item, _asn_ctx), - asn_MAP_E_RABs_ToBeReleased_SgNBChaConf_Item_tag2el_1, - 4, /* Count of tags in the map */ - asn_MAP_E_RABs_ToBeReleased_SgNBChaConf_Item_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 4, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_Item = { - "E-RABs-ToBeReleased-SgNBChaConf-Item", - "E-RABs-ToBeReleased-SgNBChaConf-Item", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_Item_tags_1, - sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_Item_tags_1) - /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_Item_tags_1[0]), /* 1 */ - asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_Item_tags_1, /* Same as above */ - sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_Item_tags_1) - /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_Item_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_ToBeReleased_SgNBChaConf_Item_1, - 4, /* Elements count */ - &asn_SPC_E_RABs_ToBeReleased_SgNBChaConf_Item_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBChaConf-Item.h b/e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBChaConf-Item.h deleted file mode 100644 index 27a2fc8..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBChaConf-Item.h +++ /dev/null @@ -1,92 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E_RABs_ToBeReleased_SgNBChaConf_Item_H_ -#define _E_RABs_ToBeReleased_SgNBChaConf_Item_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "E-RAB-ID.h" -#include "EN-DC-ResourceConfiguration.h" -#include "constr_CHOICE.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum E_RABs_ToBeReleased_SgNBChaConf_Item__resource_configuration_PR { - E_RABs_ToBeReleased_SgNBChaConf_Item__resource_configuration_PR_NOTHING, /* No components present */ - E_RABs_ToBeReleased_SgNBChaConf_Item__resource_configuration_PR_sgNBPDCPpresent, - E_RABs_ToBeReleased_SgNBChaConf_Item__resource_configuration_PR_sgNBPDCPnotpresent - /* Extensions may appear below */ - -} E_RABs_ToBeReleased_SgNBChaConf_Item__resource_configuration_PR; - -/* Forward declarations */ -struct ProtocolExtensionContainer; -struct E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresent; -struct E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresent; - -/* E-RABs-ToBeReleased-SgNBChaConf-Item */ -typedef struct E_RABs_ToBeReleased_SgNBChaConf_Item { - E_RAB_ID_t e_RAB_ID; - EN_DC_ResourceConfiguration_t en_DC_ResourceConfiguration; - struct E_RABs_ToBeReleased_SgNBChaConf_Item__resource_configuration { - E_RABs_ToBeReleased_SgNBChaConf_Item__resource_configuration_PR present; - union E_RABs_ToBeReleased_SgNBChaConf_Item__resource_configuration_u { - struct E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresent *sgNBPDCPpresent; - struct E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresent *sgNBPDCPnotpresent; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } resource_configuration; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeReleased_SgNBChaConf_Item_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_Item; - -#ifdef __cplusplus -} -#endif - -#endif /* _E_RABs_ToBeReleased_SgNBChaConf_Item_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBChaConfList.c b/e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBChaConfList.c deleted file mode 100644 index b9146bc..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBChaConfList.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E-RABs-ToBeReleased-SgNBChaConfList.h" - -#include "ProtocolIE-Single-Container.h" -static asn_per_constraints_t asn_PER_type_E_RABs_ToBeReleased_SgNBChaConfList_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 8, 8, 1, 256 } /* (SIZE(1..256)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBChaConfList_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ProtocolIE_Single_Container_122P44, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeReleased_SgNBChaConfList_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBChaConfList_specs_1 = { - sizeof(struct E_RABs_ToBeReleased_SgNBChaConfList), - offsetof(struct E_RABs_ToBeReleased_SgNBChaConfList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBChaConfList = { - "E-RABs-ToBeReleased-SgNBChaConfList", - "E-RABs-ToBeReleased-SgNBChaConfList", - &asn_OP_SEQUENCE_OF, - asn_DEF_E_RABs_ToBeReleased_SgNBChaConfList_tags_1, - sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBChaConfList_tags_1) - /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBChaConfList_tags_1[0]), /* 1 */ - asn_DEF_E_RABs_ToBeReleased_SgNBChaConfList_tags_1, /* Same as above */ - sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBChaConfList_tags_1) - /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBChaConfList_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_E_RABs_ToBeReleased_SgNBChaConfList_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_E_RABs_ToBeReleased_SgNBChaConfList_1, - 1, /* Single element */ - &asn_SPC_E_RABs_ToBeReleased_SgNBChaConfList_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBChaConfList.h b/e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBChaConfList.h deleted file mode 100644 index 9b64c53..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBChaConfList.h +++ /dev/null @@ -1,59 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E_RABs_ToBeReleased_SgNBChaConfList_H_ -#define _E_RABs_ToBeReleased_SgNBChaConfList_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolIE_Single_Container; - -/* E-RABs-ToBeReleased-SgNBChaConfList */ -typedef struct E_RABs_ToBeReleased_SgNBChaConfList { - A_SEQUENCE_OF(struct ProtocolIE_Single_Container) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeReleased_SgNBChaConfList_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBChaConfList; - -#ifdef __cplusplus -} -#endif - -#endif /* _E_RABs_ToBeReleased_SgNBChaConfList_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPnotpresent.c b/e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPnotpresent.c deleted file mode 100644 index 226d7c3..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPnotpresent.c +++ /dev/null @@ -1,71 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPnotpresent.h" - -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresent_1[] = { - { ATF_POINTER, 1, offsetof(struct E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresent, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P61, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresent_oms_1[] = { 0 }; -static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresent_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresent_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresent_specs_1 = { - sizeof(struct E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresent), - offsetof(struct E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresent, _asn_ctx), - asn_MAP_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresent_tag2el_1, - 1, /* Count of tags in the map */ - asn_MAP_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresent_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresent = { - "E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPnotpresent", - "E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPnotpresent", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresent_tags_1, - sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresent_tags_1) - /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresent_tags_1[0]), /* 1 */ - asn_DEF_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresent_tags_1, /* Same as above */ - sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresent_tags_1) - /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresent_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresent_1, - 1, /* Elements count */ - &asn_SPC_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresent_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPnotpresent.h b/e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPnotpresent.h deleted file mode 100644 index b704063..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPnotpresent.h +++ /dev/null @@ -1,64 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresent_H_ -#define _E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresent_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPnotpresent */ -typedef struct E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresent { - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresent_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresent; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresent_specs_1; -extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresent_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresent_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPpresent.c b/e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPpresent.c deleted file mode 100644 index c73a566..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPpresent.c +++ /dev/null @@ -1,92 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPpresent.h" - -#include "GTPtunnelEndpoint.h" -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresent_1[] = { - { ATF_POINTER, 3, offsetof(struct E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresent, dL_GTPtunnelEndpoint), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GTPtunnelEndpoint, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "dL-GTPtunnelEndpoint" - }, - { ATF_POINTER, 2, offsetof(struct E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresent, uL_GTPtunnelEndpoint), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GTPtunnelEndpoint, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "uL-GTPtunnelEndpoint" - }, - { ATF_POINTER, 1, offsetof(struct E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresent, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P60, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresent_oms_1[] = { 0, 1, 2 }; -static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresent_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresent_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* dL-GTPtunnelEndpoint */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* uL-GTPtunnelEndpoint */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresent_specs_1 = { - sizeof(struct E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresent), - offsetof(struct E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresent, _asn_ctx), - asn_MAP_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresent_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresent_oms_1, /* Optional members */ - 3, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresent = { - "E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPpresent", - "E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPpresent", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresent_tags_1, - sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresent_tags_1) - /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresent_tags_1[0]), /* 1 */ - asn_DEF_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresent_tags_1, /* Same as above */ - sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresent_tags_1) - /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresent_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresent_1, - 3, /* Elements count */ - &asn_SPC_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresent_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPpresent.h b/e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPpresent.h deleted file mode 100644 index 3d8c880..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPpresent.h +++ /dev/null @@ -1,67 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresent_H_ -#define _E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresent_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct GTPtunnelEndpoint; -struct ProtocolExtensionContainer; - -/* E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPpresent */ -typedef struct E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresent { - struct GTPtunnelEndpoint *dL_GTPtunnelEndpoint; /* OPTIONAL */ - struct GTPtunnelEndpoint *uL_GTPtunnelEndpoint; /* OPTIONAL */ - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresent_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresent; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresent_specs_1; -extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresent_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresent_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBModReq-Item.c b/e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBModReq-Item.c deleted file mode 100644 index ac2f4bc..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBModReq-Item.c +++ /dev/null @@ -1,157 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E-RABs-ToBeReleased-SgNBModReq-Item.h" - -#include "ProtocolExtensionContainer.h" -#include "E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPpresent.h" -#include "E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPnotpresent.h" -static asn_per_constraints_t asn_PER_type_resource_configuration_constr_4 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_resource_configuration_4[] = { - { ATF_POINTER, 0, offsetof(struct E_RABs_ToBeReleased_SgNBModReq_Item__resource_configuration, choice.sgNBPDCPpresent), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresent, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "sgNBPDCPpresent" - }, - { ATF_POINTER, 0, offsetof(struct E_RABs_ToBeReleased_SgNBModReq_Item__resource_configuration, choice.sgNBPDCPnotpresent), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresent, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "sgNBPDCPnotpresent" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_resource_configuration_tag2el_4[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sgNBPDCPpresent */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* sgNBPDCPnotpresent */ -}; -static asn_CHOICE_specifics_t asn_SPC_resource_configuration_specs_4 = { - sizeof(struct E_RABs_ToBeReleased_SgNBModReq_Item__resource_configuration), - offsetof(struct E_RABs_ToBeReleased_SgNBModReq_Item__resource_configuration, _asn_ctx), - offsetof(struct E_RABs_ToBeReleased_SgNBModReq_Item__resource_configuration, present), - sizeof(((struct E_RABs_ToBeReleased_SgNBModReq_Item__resource_configuration *)0)->present), - asn_MAP_resource_configuration_tag2el_4, - 2, /* Count of tags in the map */ - 0, 0, - 2 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_resource_configuration_4 = { - "resource-configuration", - "resource-configuration", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, &asn_PER_type_resource_configuration_constr_4, CHOICE_constraint }, - asn_MBR_resource_configuration_4, - 2, /* Elements count */ - &asn_SPC_resource_configuration_specs_4 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBModReq_Item_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBModReq_Item, e_RAB_ID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E_RAB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "e-RAB-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBModReq_Item, en_DC_ResourceConfiguration), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_EN_DC_ResourceConfiguration, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "en-DC-ResourceConfiguration" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBModReq_Item, resource_configuration), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_resource_configuration_4, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "resource-configuration" - }, - { ATF_POINTER, 1, offsetof(struct E_RABs_ToBeReleased_SgNBModReq_Item, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P59, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_E_RABs_ToBeReleased_SgNBModReq_Item_oms_1[] = { 3 }; -static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeReleased_SgNBModReq_Item_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeReleased_SgNBModReq_Item_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e-RAB-ID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* en-DC-ResourceConfiguration */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* resource-configuration */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBModReq_Item_specs_1 = { - sizeof(struct E_RABs_ToBeReleased_SgNBModReq_Item), - offsetof(struct E_RABs_ToBeReleased_SgNBModReq_Item, _asn_ctx), - asn_MAP_E_RABs_ToBeReleased_SgNBModReq_Item_tag2el_1, - 4, /* Count of tags in the map */ - asn_MAP_E_RABs_ToBeReleased_SgNBModReq_Item_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 4, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBModReq_Item = { - "E-RABs-ToBeReleased-SgNBModReq-Item", - "E-RABs-ToBeReleased-SgNBModReq-Item", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_ToBeReleased_SgNBModReq_Item_tags_1, - sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBModReq_Item_tags_1) - /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBModReq_Item_tags_1[0]), /* 1 */ - asn_DEF_E_RABs_ToBeReleased_SgNBModReq_Item_tags_1, /* Same as above */ - sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBModReq_Item_tags_1) - /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBModReq_Item_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_ToBeReleased_SgNBModReq_Item_1, - 4, /* Elements count */ - &asn_SPC_E_RABs_ToBeReleased_SgNBModReq_Item_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBModReq-Item.h b/e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBModReq-Item.h deleted file mode 100644 index 7e2a8dd..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBModReq-Item.h +++ /dev/null @@ -1,92 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E_RABs_ToBeReleased_SgNBModReq_Item_H_ -#define _E_RABs_ToBeReleased_SgNBModReq_Item_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "E-RAB-ID.h" -#include "EN-DC-ResourceConfiguration.h" -#include "constr_CHOICE.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum E_RABs_ToBeReleased_SgNBModReq_Item__resource_configuration_PR { - E_RABs_ToBeReleased_SgNBModReq_Item__resource_configuration_PR_NOTHING, /* No components present */ - E_RABs_ToBeReleased_SgNBModReq_Item__resource_configuration_PR_sgNBPDCPpresent, - E_RABs_ToBeReleased_SgNBModReq_Item__resource_configuration_PR_sgNBPDCPnotpresent - /* Extensions may appear below */ - -} E_RABs_ToBeReleased_SgNBModReq_Item__resource_configuration_PR; - -/* Forward declarations */ -struct ProtocolExtensionContainer; -struct E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresent; -struct E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresent; - -/* E-RABs-ToBeReleased-SgNBModReq-Item */ -typedef struct E_RABs_ToBeReleased_SgNBModReq_Item { - E_RAB_ID_t e_RAB_ID; - EN_DC_ResourceConfiguration_t en_DC_ResourceConfiguration; - struct E_RABs_ToBeReleased_SgNBModReq_Item__resource_configuration { - E_RABs_ToBeReleased_SgNBModReq_Item__resource_configuration_PR present; - union E_RABs_ToBeReleased_SgNBModReq_Item__resource_configuration_u { - struct E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresent *sgNBPDCPpresent; - struct E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresent *sgNBPDCPnotpresent; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } resource_configuration; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeReleased_SgNBModReq_Item_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBModReq_Item; - -#ifdef __cplusplus -} -#endif - -#endif /* _E_RABs_ToBeReleased_SgNBModReq_Item_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBModReq-List.c b/e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBModReq-List.c deleted file mode 100644 index 14a3bd2..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBModReq-List.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E-RABs-ToBeReleased-SgNBModReq-List.h" - -#include "ProtocolIE-Single-Container.h" -asn_per_constraints_t asn_PER_type_E_RABs_ToBeReleased_SgNBModReq_List_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 8, 8, 1, 256 } /* (SIZE(1..256)) */, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBModReq_List_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ProtocolIE_Single_Container_122P32, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeReleased_SgNBModReq_List_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBModReq_List_specs_1 = { - sizeof(struct E_RABs_ToBeReleased_SgNBModReq_List), - offsetof(struct E_RABs_ToBeReleased_SgNBModReq_List, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBModReq_List = { - "E-RABs-ToBeReleased-SgNBModReq-List", - "E-RABs-ToBeReleased-SgNBModReq-List", - &asn_OP_SEQUENCE_OF, - asn_DEF_E_RABs_ToBeReleased_SgNBModReq_List_tags_1, - sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBModReq_List_tags_1) - /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBModReq_List_tags_1[0]), /* 1 */ - asn_DEF_E_RABs_ToBeReleased_SgNBModReq_List_tags_1, /* Same as above */ - sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBModReq_List_tags_1) - /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBModReq_List_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_E_RABs_ToBeReleased_SgNBModReq_List_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_E_RABs_ToBeReleased_SgNBModReq_List_1, - 1, /* Single element */ - &asn_SPC_E_RABs_ToBeReleased_SgNBModReq_List_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBModReq-List.h b/e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBModReq-List.h deleted file mode 100644 index 1dbdfd4..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBModReq-List.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E_RABs_ToBeReleased_SgNBModReq_List_H_ -#define _E_RABs_ToBeReleased_SgNBModReq_List_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolIE_Single_Container; - -/* E-RABs-ToBeReleased-SgNBModReq-List */ -typedef struct E_RABs_ToBeReleased_SgNBModReq_List { - A_SEQUENCE_OF(struct ProtocolIE_Single_Container) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeReleased_SgNBModReq_List_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBModReq_List; -extern asn_SET_OF_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBModReq_List_specs_1; -extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBModReq_List_1[1]; -extern asn_per_constraints_t asn_PER_type_E_RABs_ToBeReleased_SgNBModReq_List_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _E_RABs_ToBeReleased_SgNBModReq_List_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBModReqd-Item.c b/e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBModReqd-Item.c deleted file mode 100644 index 02f2b20..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBModReqd-Item.c +++ /dev/null @@ -1,91 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E-RABs-ToBeReleased-SgNBModReqd-Item.h" - -#include "ProtocolExtensionContainer.h" -static asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBModReqd_Item_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBModReqd_Item, e_RAB_ID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E_RAB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "e-RAB-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBModReqd_Item, cause), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_Cause, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "cause" - }, - { ATF_POINTER, 1, offsetof(struct E_RABs_ToBeReleased_SgNBModReqd_Item, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P71, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_E_RABs_ToBeReleased_SgNBModReqd_Item_oms_1[] = { 2 }; -static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeReleased_SgNBModReqd_Item_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeReleased_SgNBModReqd_Item_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e-RAB-ID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* cause */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBModReqd_Item_specs_1 = { - sizeof(struct E_RABs_ToBeReleased_SgNBModReqd_Item), - offsetof(struct E_RABs_ToBeReleased_SgNBModReqd_Item, _asn_ctx), - asn_MAP_E_RABs_ToBeReleased_SgNBModReqd_Item_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_E_RABs_ToBeReleased_SgNBModReqd_Item_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBModReqd_Item = { - "E-RABs-ToBeReleased-SgNBModReqd-Item", - "E-RABs-ToBeReleased-SgNBModReqd-Item", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_ToBeReleased_SgNBModReqd_Item_tags_1, - sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBModReqd_Item_tags_1) - /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBModReqd_Item_tags_1[0]), /* 1 */ - asn_DEF_E_RABs_ToBeReleased_SgNBModReqd_Item_tags_1, /* Same as above */ - sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBModReqd_Item_tags_1) - /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBModReqd_Item_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_ToBeReleased_SgNBModReqd_Item_1, - 3, /* Elements count */ - &asn_SPC_E_RABs_ToBeReleased_SgNBModReqd_Item_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBModReqd-Item.h b/e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBModReqd-Item.h deleted file mode 100644 index 79034a2..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBModReqd-Item.h +++ /dev/null @@ -1,66 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E_RABs_ToBeReleased_SgNBModReqd_Item_H_ -#define _E_RABs_ToBeReleased_SgNBModReqd_Item_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "E-RAB-ID.h" -#include "Cause.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* E-RABs-ToBeReleased-SgNBModReqd-Item */ -typedef struct E_RABs_ToBeReleased_SgNBModReqd_Item { - E_RAB_ID_t e_RAB_ID; - Cause_t cause; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeReleased_SgNBModReqd_Item_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBModReqd_Item; - -#ifdef __cplusplus -} -#endif - -#endif /* _E_RABs_ToBeReleased_SgNBModReqd_Item_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBModReqdList.c b/e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBModReqdList.c deleted file mode 100644 index 5ae7967..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBModReqdList.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E-RABs-ToBeReleased-SgNBModReqdList.h" - -#include "ProtocolIE-Single-Container.h" -static asn_per_constraints_t asn_PER_type_E_RABs_ToBeReleased_SgNBModReqdList_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 8, 8, 1, 256 } /* (SIZE(1..256)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBModReqdList_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ProtocolIE_Single_Container_122P36, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeReleased_SgNBModReqdList_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBModReqdList_specs_1 = { - sizeof(struct E_RABs_ToBeReleased_SgNBModReqdList), - offsetof(struct E_RABs_ToBeReleased_SgNBModReqdList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBModReqdList = { - "E-RABs-ToBeReleased-SgNBModReqdList", - "E-RABs-ToBeReleased-SgNBModReqdList", - &asn_OP_SEQUENCE_OF, - asn_DEF_E_RABs_ToBeReleased_SgNBModReqdList_tags_1, - sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBModReqdList_tags_1) - /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBModReqdList_tags_1[0]), /* 1 */ - asn_DEF_E_RABs_ToBeReleased_SgNBModReqdList_tags_1, /* Same as above */ - sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBModReqdList_tags_1) - /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBModReqdList_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_E_RABs_ToBeReleased_SgNBModReqdList_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_E_RABs_ToBeReleased_SgNBModReqdList_1, - 1, /* Single element */ - &asn_SPC_E_RABs_ToBeReleased_SgNBModReqdList_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBModReqdList.h b/e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBModReqdList.h deleted file mode 100644 index 7e09067..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBModReqdList.h +++ /dev/null @@ -1,59 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E_RABs_ToBeReleased_SgNBModReqdList_H_ -#define _E_RABs_ToBeReleased_SgNBModReqdList_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolIE_Single_Container; - -/* E-RABs-ToBeReleased-SgNBModReqdList */ -typedef struct E_RABs_ToBeReleased_SgNBModReqdList { - A_SEQUENCE_OF(struct ProtocolIE_Single_Container) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeReleased_SgNBModReqdList_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBModReqdList; - -#ifdef __cplusplus -} -#endif - -#endif /* _E_RABs_ToBeReleased_SgNBModReqdList_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPnotpresent.c b/e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPnotpresent.c deleted file mode 100644 index e56bdcb..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPnotpresent.c +++ /dev/null @@ -1,71 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPnotpresent.h" - -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresent_1[] = { - { ATF_POINTER, 1, offsetof(struct E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresent, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P85, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresent_oms_1[] = { 0 }; -static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresent_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresent_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresent_specs_1 = { - sizeof(struct E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresent), - offsetof(struct E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresent, _asn_ctx), - asn_MAP_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresent_tag2el_1, - 1, /* Count of tags in the map */ - asn_MAP_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresent_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresent = { - "E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPnotpresent", - "E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPnotpresent", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresent_tags_1, - sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresent_tags_1) - /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresent_tags_1[0]), /* 1 */ - asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresent_tags_1, /* Same as above */ - sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresent_tags_1) - /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresent_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresent_1, - 1, /* Elements count */ - &asn_SPC_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresent_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPnotpresent.h b/e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPnotpresent.h deleted file mode 100644 index c12f70b..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPnotpresent.h +++ /dev/null @@ -1,64 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresent_H_ -#define _E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresent_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPnotpresent */ -typedef struct E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresent { - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresent_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresent; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresent_specs_1; -extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresent_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresent_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPpresent.c b/e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPpresent.c deleted file mode 100644 index c1c11ec..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPpresent.c +++ /dev/null @@ -1,92 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPpresent.h" - -#include "GTPtunnelEndpoint.h" -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresent_1[] = { - { ATF_POINTER, 3, offsetof(struct E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresent, uL_GTPtunnelEndpoint), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GTPtunnelEndpoint, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "uL-GTPtunnelEndpoint" - }, - { ATF_POINTER, 2, offsetof(struct E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresent, dL_GTPtunnelEndpoint), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GTPtunnelEndpoint, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "dL-GTPtunnelEndpoint" - }, - { ATF_POINTER, 1, offsetof(struct E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresent, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P84, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresent_oms_1[] = { 0, 1, 2 }; -static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresent_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresent_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* uL-GTPtunnelEndpoint */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* dL-GTPtunnelEndpoint */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresent_specs_1 = { - sizeof(struct E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresent), - offsetof(struct E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresent, _asn_ctx), - asn_MAP_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresent_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresent_oms_1, /* Optional members */ - 3, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresent = { - "E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPpresent", - "E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPpresent", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresent_tags_1, - sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresent_tags_1) - /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresent_tags_1[0]), /* 1 */ - asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresent_tags_1, /* Same as above */ - sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresent_tags_1) - /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresent_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresent_1, - 3, /* Elements count */ - &asn_SPC_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresent_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPpresent.h b/e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPpresent.h deleted file mode 100644 index ea75cf0..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPpresent.h +++ /dev/null @@ -1,67 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresent_H_ -#define _E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresent_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct GTPtunnelEndpoint; -struct ProtocolExtensionContainer; - -/* E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPpresent */ -typedef struct E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresent { - struct GTPtunnelEndpoint *uL_GTPtunnelEndpoint; /* OPTIONAL */ - struct GTPtunnelEndpoint *dL_GTPtunnelEndpoint; /* OPTIONAL */ - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresent_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresent; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresent_specs_1; -extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresent_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresent_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBRelConf-Item.c b/e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBRelConf-Item.c deleted file mode 100644 index f4034b1..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBRelConf-Item.c +++ /dev/null @@ -1,157 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E-RABs-ToBeReleased-SgNBRelConf-Item.h" - -#include "ProtocolExtensionContainer.h" -#include "E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPpresent.h" -#include "E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPnotpresent.h" -static asn_per_constraints_t asn_PER_type_resource_configuration_constr_4 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_resource_configuration_4[] = { - { ATF_POINTER, 0, offsetof(struct E_RABs_ToBeReleased_SgNBRelConf_Item__resource_configuration, choice.sgNBPDCPpresent), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresent, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "sgNBPDCPpresent" - }, - { ATF_POINTER, 0, offsetof(struct E_RABs_ToBeReleased_SgNBRelConf_Item__resource_configuration, choice.sgNBPDCPnotpresent), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresent, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "sgNBPDCPnotpresent" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_resource_configuration_tag2el_4[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sgNBPDCPpresent */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* sgNBPDCPnotpresent */ -}; -static asn_CHOICE_specifics_t asn_SPC_resource_configuration_specs_4 = { - sizeof(struct E_RABs_ToBeReleased_SgNBRelConf_Item__resource_configuration), - offsetof(struct E_RABs_ToBeReleased_SgNBRelConf_Item__resource_configuration, _asn_ctx), - offsetof(struct E_RABs_ToBeReleased_SgNBRelConf_Item__resource_configuration, present), - sizeof(((struct E_RABs_ToBeReleased_SgNBRelConf_Item__resource_configuration *)0)->present), - asn_MAP_resource_configuration_tag2el_4, - 2, /* Count of tags in the map */ - 0, 0, - 2 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_resource_configuration_4 = { - "resource-configuration", - "resource-configuration", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, &asn_PER_type_resource_configuration_constr_4, CHOICE_constraint }, - asn_MBR_resource_configuration_4, - 2, /* Elements count */ - &asn_SPC_resource_configuration_specs_4 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBRelConf_Item_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBRelConf_Item, e_RAB_ID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E_RAB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "e-RAB-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBRelConf_Item, en_DC_ResourceConfiguration), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_EN_DC_ResourceConfiguration, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "en-DC-ResourceConfiguration" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBRelConf_Item, resource_configuration), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_resource_configuration_4, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "resource-configuration" - }, - { ATF_POINTER, 1, offsetof(struct E_RABs_ToBeReleased_SgNBRelConf_Item, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P83, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_E_RABs_ToBeReleased_SgNBRelConf_Item_oms_1[] = { 3 }; -static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_Item_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeReleased_SgNBRelConf_Item_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e-RAB-ID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* en-DC-ResourceConfiguration */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* resource-configuration */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBRelConf_Item_specs_1 = { - sizeof(struct E_RABs_ToBeReleased_SgNBRelConf_Item), - offsetof(struct E_RABs_ToBeReleased_SgNBRelConf_Item, _asn_ctx), - asn_MAP_E_RABs_ToBeReleased_SgNBRelConf_Item_tag2el_1, - 4, /* Count of tags in the map */ - asn_MAP_E_RABs_ToBeReleased_SgNBRelConf_Item_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 4, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_Item = { - "E-RABs-ToBeReleased-SgNBRelConf-Item", - "E-RABs-ToBeReleased-SgNBRelConf-Item", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_Item_tags_1, - sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_Item_tags_1) - /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_Item_tags_1[0]), /* 1 */ - asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_Item_tags_1, /* Same as above */ - sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_Item_tags_1) - /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_Item_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_ToBeReleased_SgNBRelConf_Item_1, - 4, /* Elements count */ - &asn_SPC_E_RABs_ToBeReleased_SgNBRelConf_Item_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBRelConf-Item.h b/e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBRelConf-Item.h deleted file mode 100644 index 49fe748..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBRelConf-Item.h +++ /dev/null @@ -1,92 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E_RABs_ToBeReleased_SgNBRelConf_Item_H_ -#define _E_RABs_ToBeReleased_SgNBRelConf_Item_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "E-RAB-ID.h" -#include "EN-DC-ResourceConfiguration.h" -#include "constr_CHOICE.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum E_RABs_ToBeReleased_SgNBRelConf_Item__resource_configuration_PR { - E_RABs_ToBeReleased_SgNBRelConf_Item__resource_configuration_PR_NOTHING, /* No components present */ - E_RABs_ToBeReleased_SgNBRelConf_Item__resource_configuration_PR_sgNBPDCPpresent, - E_RABs_ToBeReleased_SgNBRelConf_Item__resource_configuration_PR_sgNBPDCPnotpresent - /* Extensions may appear below */ - -} E_RABs_ToBeReleased_SgNBRelConf_Item__resource_configuration_PR; - -/* Forward declarations */ -struct ProtocolExtensionContainer; -struct E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresent; -struct E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresent; - -/* E-RABs-ToBeReleased-SgNBRelConf-Item */ -typedef struct E_RABs_ToBeReleased_SgNBRelConf_Item { - E_RAB_ID_t e_RAB_ID; - EN_DC_ResourceConfiguration_t en_DC_ResourceConfiguration; - struct E_RABs_ToBeReleased_SgNBRelConf_Item__resource_configuration { - E_RABs_ToBeReleased_SgNBRelConf_Item__resource_configuration_PR present; - union E_RABs_ToBeReleased_SgNBRelConf_Item__resource_configuration_u { - struct E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresent *sgNBPDCPpresent; - struct E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresent *sgNBPDCPnotpresent; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } resource_configuration; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeReleased_SgNBRelConf_Item_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_Item; - -#ifdef __cplusplus -} -#endif - -#endif /* _E_RABs_ToBeReleased_SgNBRelConf_Item_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBRelConfList.c b/e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBRelConfList.c deleted file mode 100644 index a6525be..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBRelConfList.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E-RABs-ToBeReleased-SgNBRelConfList.h" - -#include "ProtocolIE-Single-Container.h" -static asn_per_constraints_t asn_PER_type_E_RABs_ToBeReleased_SgNBRelConfList_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 8, 8, 1, 256 } /* (SIZE(1..256)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBRelConfList_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ProtocolIE_Single_Container_122P42, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeReleased_SgNBRelConfList_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBRelConfList_specs_1 = { - sizeof(struct E_RABs_ToBeReleased_SgNBRelConfList), - offsetof(struct E_RABs_ToBeReleased_SgNBRelConfList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBRelConfList = { - "E-RABs-ToBeReleased-SgNBRelConfList", - "E-RABs-ToBeReleased-SgNBRelConfList", - &asn_OP_SEQUENCE_OF, - asn_DEF_E_RABs_ToBeReleased_SgNBRelConfList_tags_1, - sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelConfList_tags_1) - /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelConfList_tags_1[0]), /* 1 */ - asn_DEF_E_RABs_ToBeReleased_SgNBRelConfList_tags_1, /* Same as above */ - sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelConfList_tags_1) - /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelConfList_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_E_RABs_ToBeReleased_SgNBRelConfList_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_E_RABs_ToBeReleased_SgNBRelConfList_1, - 1, /* Single element */ - &asn_SPC_E_RABs_ToBeReleased_SgNBRelConfList_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBRelConfList.h b/e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBRelConfList.h deleted file mode 100644 index 7e7b798..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBRelConfList.h +++ /dev/null @@ -1,59 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E_RABs_ToBeReleased_SgNBRelConfList_H_ -#define _E_RABs_ToBeReleased_SgNBRelConfList_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolIE_Single_Container; - -/* E-RABs-ToBeReleased-SgNBRelConfList */ -typedef struct E_RABs_ToBeReleased_SgNBRelConfList { - A_SEQUENCE_OF(struct ProtocolIE_Single_Container) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeReleased_SgNBRelConfList_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBRelConfList; - -#ifdef __cplusplus -} -#endif - -#endif /* _E_RABs_ToBeReleased_SgNBRelConfList_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPnotpresent.c b/e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPnotpresent.c deleted file mode 100644 index febb6ec..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPnotpresent.c +++ /dev/null @@ -1,71 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPnotpresent.h" - -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresent_1[] = { - { ATF_POINTER, 1, offsetof(struct E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresent, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P80, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresent_oms_1[] = { 0 }; -static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresent_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresent_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresent_specs_1 = { - sizeof(struct E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresent), - offsetof(struct E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresent, _asn_ctx), - asn_MAP_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresent_tag2el_1, - 1, /* Count of tags in the map */ - asn_MAP_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresent_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresent = { - "E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPnotpresent", - "E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPnotpresent", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresent_tags_1, - sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresent_tags_1) - /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresent_tags_1[0]), /* 1 */ - asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresent_tags_1, /* Same as above */ - sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresent_tags_1) - /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresent_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresent_1, - 1, /* Elements count */ - &asn_SPC_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresent_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPnotpresent.h b/e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPnotpresent.h deleted file mode 100644 index b52cd68..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPnotpresent.h +++ /dev/null @@ -1,64 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresent_H_ -#define _E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresent_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPnotpresent */ -typedef struct E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresent { - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresent_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresent; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresent_specs_1; -extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresent_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresent_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPpresent.c b/e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPpresent.c deleted file mode 100644 index dbb8f3e..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPpresent.c +++ /dev/null @@ -1,92 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPpresent.h" - -#include "GTPtunnelEndpoint.h" -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresent_1[] = { - { ATF_POINTER, 3, offsetof(struct E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresent, uL_GTPtunnelEndpoint), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GTPtunnelEndpoint, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "uL-GTPtunnelEndpoint" - }, - { ATF_POINTER, 2, offsetof(struct E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresent, dL_GTPtunnelEndpoint), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GTPtunnelEndpoint, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "dL-GTPtunnelEndpoint" - }, - { ATF_POINTER, 1, offsetof(struct E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresent, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P79, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresent_oms_1[] = { 0, 1, 2 }; -static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresent_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresent_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* uL-GTPtunnelEndpoint */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* dL-GTPtunnelEndpoint */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresent_specs_1 = { - sizeof(struct E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresent), - offsetof(struct E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresent, _asn_ctx), - asn_MAP_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresent_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresent_oms_1, /* Optional members */ - 3, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresent = { - "E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPpresent", - "E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPpresent", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresent_tags_1, - sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresent_tags_1) - /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresent_tags_1[0]), /* 1 */ - asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresent_tags_1, /* Same as above */ - sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresent_tags_1) - /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresent_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresent_1, - 3, /* Elements count */ - &asn_SPC_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresent_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPpresent.h b/e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPpresent.h deleted file mode 100644 index 321f899..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPpresent.h +++ /dev/null @@ -1,67 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresent_H_ -#define _E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresent_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct GTPtunnelEndpoint; -struct ProtocolExtensionContainer; - -/* E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPpresent */ -typedef struct E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresent { - struct GTPtunnelEndpoint *uL_GTPtunnelEndpoint; /* OPTIONAL */ - struct GTPtunnelEndpoint *dL_GTPtunnelEndpoint; /* OPTIONAL */ - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresent_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresent; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresent_specs_1; -extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresent_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresent_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBRelReq-Item.c b/e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBRelReq-Item.c deleted file mode 100644 index 7081787..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBRelReq-Item.c +++ /dev/null @@ -1,157 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E-RABs-ToBeReleased-SgNBRelReq-Item.h" - -#include "ProtocolExtensionContainer.h" -#include "E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPpresent.h" -#include "E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPnotpresent.h" -static asn_per_constraints_t asn_PER_type_resource_configuration_constr_4 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_resource_configuration_4[] = { - { ATF_POINTER, 0, offsetof(struct E_RABs_ToBeReleased_SgNBRelReq_Item__resource_configuration, choice.sgNBPDCPpresent), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresent, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "sgNBPDCPpresent" - }, - { ATF_POINTER, 0, offsetof(struct E_RABs_ToBeReleased_SgNBRelReq_Item__resource_configuration, choice.sgNBPDCPnotpresent), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresent, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "sgNBPDCPnotpresent" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_resource_configuration_tag2el_4[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sgNBPDCPpresent */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* sgNBPDCPnotpresent */ -}; -static asn_CHOICE_specifics_t asn_SPC_resource_configuration_specs_4 = { - sizeof(struct E_RABs_ToBeReleased_SgNBRelReq_Item__resource_configuration), - offsetof(struct E_RABs_ToBeReleased_SgNBRelReq_Item__resource_configuration, _asn_ctx), - offsetof(struct E_RABs_ToBeReleased_SgNBRelReq_Item__resource_configuration, present), - sizeof(((struct E_RABs_ToBeReleased_SgNBRelReq_Item__resource_configuration *)0)->present), - asn_MAP_resource_configuration_tag2el_4, - 2, /* Count of tags in the map */ - 0, 0, - 2 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_resource_configuration_4 = { - "resource-configuration", - "resource-configuration", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, &asn_PER_type_resource_configuration_constr_4, CHOICE_constraint }, - asn_MBR_resource_configuration_4, - 2, /* Elements count */ - &asn_SPC_resource_configuration_specs_4 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBRelReq_Item_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBRelReq_Item, e_RAB_ID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E_RAB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "e-RAB-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBRelReq_Item, en_DC_ResourceConfiguration), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_EN_DC_ResourceConfiguration, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "en-DC-ResourceConfiguration" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBRelReq_Item, resource_configuration), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_resource_configuration_4, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "resource-configuration" - }, - { ATF_POINTER, 1, offsetof(struct E_RABs_ToBeReleased_SgNBRelReq_Item, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P78, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_E_RABs_ToBeReleased_SgNBRelReq_Item_oms_1[] = { 3 }; -static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_Item_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeReleased_SgNBRelReq_Item_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e-RAB-ID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* en-DC-ResourceConfiguration */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* resource-configuration */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBRelReq_Item_specs_1 = { - sizeof(struct E_RABs_ToBeReleased_SgNBRelReq_Item), - offsetof(struct E_RABs_ToBeReleased_SgNBRelReq_Item, _asn_ctx), - asn_MAP_E_RABs_ToBeReleased_SgNBRelReq_Item_tag2el_1, - 4, /* Count of tags in the map */ - asn_MAP_E_RABs_ToBeReleased_SgNBRelReq_Item_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 4, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_Item = { - "E-RABs-ToBeReleased-SgNBRelReq-Item", - "E-RABs-ToBeReleased-SgNBRelReq-Item", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_Item_tags_1, - sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_Item_tags_1) - /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_Item_tags_1[0]), /* 1 */ - asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_Item_tags_1, /* Same as above */ - sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_Item_tags_1) - /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_Item_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_ToBeReleased_SgNBRelReq_Item_1, - 4, /* Elements count */ - &asn_SPC_E_RABs_ToBeReleased_SgNBRelReq_Item_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBRelReq-Item.h b/e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBRelReq-Item.h deleted file mode 100644 index 7b3a600..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBRelReq-Item.h +++ /dev/null @@ -1,92 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E_RABs_ToBeReleased_SgNBRelReq_Item_H_ -#define _E_RABs_ToBeReleased_SgNBRelReq_Item_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "E-RAB-ID.h" -#include "EN-DC-ResourceConfiguration.h" -#include "constr_CHOICE.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum E_RABs_ToBeReleased_SgNBRelReq_Item__resource_configuration_PR { - E_RABs_ToBeReleased_SgNBRelReq_Item__resource_configuration_PR_NOTHING, /* No components present */ - E_RABs_ToBeReleased_SgNBRelReq_Item__resource_configuration_PR_sgNBPDCPpresent, - E_RABs_ToBeReleased_SgNBRelReq_Item__resource_configuration_PR_sgNBPDCPnotpresent - /* Extensions may appear below */ - -} E_RABs_ToBeReleased_SgNBRelReq_Item__resource_configuration_PR; - -/* Forward declarations */ -struct ProtocolExtensionContainer; -struct E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresent; -struct E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresent; - -/* E-RABs-ToBeReleased-SgNBRelReq-Item */ -typedef struct E_RABs_ToBeReleased_SgNBRelReq_Item { - E_RAB_ID_t e_RAB_ID; - EN_DC_ResourceConfiguration_t en_DC_ResourceConfiguration; - struct E_RABs_ToBeReleased_SgNBRelReq_Item__resource_configuration { - E_RABs_ToBeReleased_SgNBRelReq_Item__resource_configuration_PR present; - union E_RABs_ToBeReleased_SgNBRelReq_Item__resource_configuration_u { - struct E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresent *sgNBPDCPpresent; - struct E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresent *sgNBPDCPnotpresent; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } resource_configuration; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeReleased_SgNBRelReq_Item_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_Item; - -#ifdef __cplusplus -} -#endif - -#endif /* _E_RABs_ToBeReleased_SgNBRelReq_Item_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBRelReqList.c b/e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBRelReqList.c deleted file mode 100644 index 9d42226..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBRelReqList.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E-RABs-ToBeReleased-SgNBRelReqList.h" - -#include "ProtocolIE-Single-Container.h" -static asn_per_constraints_t asn_PER_type_E_RABs_ToBeReleased_SgNBRelReqList_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 8, 8, 1, 256 } /* (SIZE(1..256)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBRelReqList_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ProtocolIE_Single_Container_122P39, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeReleased_SgNBRelReqList_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBRelReqList_specs_1 = { - sizeof(struct E_RABs_ToBeReleased_SgNBRelReqList), - offsetof(struct E_RABs_ToBeReleased_SgNBRelReqList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBRelReqList = { - "E-RABs-ToBeReleased-SgNBRelReqList", - "E-RABs-ToBeReleased-SgNBRelReqList", - &asn_OP_SEQUENCE_OF, - asn_DEF_E_RABs_ToBeReleased_SgNBRelReqList_tags_1, - sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelReqList_tags_1) - /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelReqList_tags_1[0]), /* 1 */ - asn_DEF_E_RABs_ToBeReleased_SgNBRelReqList_tags_1, /* Same as above */ - sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelReqList_tags_1) - /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelReqList_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_E_RABs_ToBeReleased_SgNBRelReqList_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_E_RABs_ToBeReleased_SgNBRelReqList_1, - 1, /* Single element */ - &asn_SPC_E_RABs_ToBeReleased_SgNBRelReqList_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBRelReqList.h b/e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBRelReqList.h deleted file mode 100644 index 871a4d2..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBRelReqList.h +++ /dev/null @@ -1,59 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E_RABs_ToBeReleased_SgNBRelReqList_H_ -#define _E_RABs_ToBeReleased_SgNBRelReqList_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolIE_Single_Container; - -/* E-RABs-ToBeReleased-SgNBRelReqList */ -typedef struct E_RABs_ToBeReleased_SgNBRelReqList { - A_SEQUENCE_OF(struct ProtocolIE_Single_Container) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeReleased_SgNBRelReqList_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBRelReqList; - -#ifdef __cplusplus -} -#endif - -#endif /* _E_RABs_ToBeReleased_SgNBRelReqList_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBRelReqd-Item.c b/e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBRelReqd-Item.c deleted file mode 100644 index 5015294..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBRelReqd-Item.c +++ /dev/null @@ -1,91 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E-RABs-ToBeReleased-SgNBRelReqd-Item.h" - -#include "ProtocolExtensionContainer.h" -static asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBRelReqd_Item_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBRelReqd_Item, e_RAB_ID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E_RAB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "e-RAB-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBRelReqd_Item, rlc_Mode_transferred), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RLCMode, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "rlc-Mode-transferred" - }, - { ATF_POINTER, 1, offsetof(struct E_RABs_ToBeReleased_SgNBRelReqd_Item, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P82, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_E_RABs_ToBeReleased_SgNBRelReqd_Item_oms_1[] = { 2 }; -static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeReleased_SgNBRelReqd_Item_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeReleased_SgNBRelReqd_Item_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e-RAB-ID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* rlc-Mode-transferred */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBRelReqd_Item_specs_1 = { - sizeof(struct E_RABs_ToBeReleased_SgNBRelReqd_Item), - offsetof(struct E_RABs_ToBeReleased_SgNBRelReqd_Item, _asn_ctx), - asn_MAP_E_RABs_ToBeReleased_SgNBRelReqd_Item_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_E_RABs_ToBeReleased_SgNBRelReqd_Item_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBRelReqd_Item = { - "E-RABs-ToBeReleased-SgNBRelReqd-Item", - "E-RABs-ToBeReleased-SgNBRelReqd-Item", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_ToBeReleased_SgNBRelReqd_Item_tags_1, - sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelReqd_Item_tags_1) - /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelReqd_Item_tags_1[0]), /* 1 */ - asn_DEF_E_RABs_ToBeReleased_SgNBRelReqd_Item_tags_1, /* Same as above */ - sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelReqd_Item_tags_1) - /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelReqd_Item_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_ToBeReleased_SgNBRelReqd_Item_1, - 3, /* Elements count */ - &asn_SPC_E_RABs_ToBeReleased_SgNBRelReqd_Item_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBRelReqd-Item.h b/e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBRelReqd-Item.h deleted file mode 100644 index 56cfc6b..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBRelReqd-Item.h +++ /dev/null @@ -1,66 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E_RABs_ToBeReleased_SgNBRelReqd_Item_H_ -#define _E_RABs_ToBeReleased_SgNBRelReqd_Item_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "E-RAB-ID.h" -#include "RLCMode.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* E-RABs-ToBeReleased-SgNBRelReqd-Item */ -typedef struct E_RABs_ToBeReleased_SgNBRelReqd_Item { - E_RAB_ID_t e_RAB_ID; - RLCMode_t rlc_Mode_transferred; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeReleased_SgNBRelReqd_Item_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBRelReqd_Item; - -#ifdef __cplusplus -} -#endif - -#endif /* _E_RABs_ToBeReleased_SgNBRelReqd_Item_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBRelReqdList.c b/e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBRelReqdList.c deleted file mode 100644 index 92d80dc..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBRelReqdList.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E-RABs-ToBeReleased-SgNBRelReqdList.h" - -#include "ProtocolIE-Single-Container.h" -static asn_per_constraints_t asn_PER_type_E_RABs_ToBeReleased_SgNBRelReqdList_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 8, 8, 1, 256 } /* (SIZE(1..256)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBRelReqdList_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ProtocolIE_Single_Container_122P41, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeReleased_SgNBRelReqdList_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBRelReqdList_specs_1 = { - sizeof(struct E_RABs_ToBeReleased_SgNBRelReqdList), - offsetof(struct E_RABs_ToBeReleased_SgNBRelReqdList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBRelReqdList = { - "E-RABs-ToBeReleased-SgNBRelReqdList", - "E-RABs-ToBeReleased-SgNBRelReqdList", - &asn_OP_SEQUENCE_OF, - asn_DEF_E_RABs_ToBeReleased_SgNBRelReqdList_tags_1, - sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelReqdList_tags_1) - /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelReqdList_tags_1[0]), /* 1 */ - asn_DEF_E_RABs_ToBeReleased_SgNBRelReqdList_tags_1, /* Same as above */ - sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelReqdList_tags_1) - /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelReqdList_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_E_RABs_ToBeReleased_SgNBRelReqdList_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_E_RABs_ToBeReleased_SgNBRelReqdList_1, - 1, /* Single element */ - &asn_SPC_E_RABs_ToBeReleased_SgNBRelReqdList_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBRelReqdList.h b/e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBRelReqdList.h deleted file mode 100644 index 30ca644..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeReleased-SgNBRelReqdList.h +++ /dev/null @@ -1,59 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E_RABs_ToBeReleased_SgNBRelReqdList_H_ -#define _E_RABs_ToBeReleased_SgNBRelReqdList_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolIE_Single_Container; - -/* E-RABs-ToBeReleased-SgNBRelReqdList */ -typedef struct E_RABs_ToBeReleased_SgNBRelReqdList { - A_SEQUENCE_OF(struct ProtocolIE_Single_Container) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeReleased_SgNBRelReqdList_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBRelReqdList; - -#ifdef __cplusplus -} -#endif - -#endif /* _E_RABs_ToBeReleased_SgNBRelReqdList_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeSetup-Item.c b/e2sim/previous/ASN1c/E-RABs-ToBeSetup-Item.c deleted file mode 100644 index 24f15e6..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeSetup-Item.c +++ /dev/null @@ -1,111 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E-RABs-ToBeSetup-Item.h" - -#include "ProtocolExtensionContainer.h" -static asn_TYPE_member_t asn_MBR_E_RABs_ToBeSetup_Item_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeSetup_Item, e_RAB_ID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E_RAB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "e-RAB-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeSetup_Item, e_RAB_Level_QoS_Parameters), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E_RAB_Level_QoS_Parameters, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "e-RAB-Level-QoS-Parameters" - }, - { ATF_POINTER, 1, offsetof(struct E_RABs_ToBeSetup_Item, dL_Forwarding), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_DL_Forwarding, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "dL-Forwarding" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeSetup_Item, uL_GTPtunnelEndpoint), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GTPtunnelEndpoint, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "uL-GTPtunnelEndpoint" - }, - { ATF_POINTER, 1, offsetof(struct E_RABs_ToBeSetup_Item, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (4 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P1, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_E_RABs_ToBeSetup_Item_oms_1[] = { 2, 4 }; -static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeSetup_Item_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeSetup_Item_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e-RAB-ID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* e-RAB-Level-QoS-Parameters */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* dL-Forwarding */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* uL-GTPtunnelEndpoint */ - { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* iE-Extensions */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeSetup_Item_specs_1 = { - sizeof(struct E_RABs_ToBeSetup_Item), - offsetof(struct E_RABs_ToBeSetup_Item, _asn_ctx), - asn_MAP_E_RABs_ToBeSetup_Item_tag2el_1, - 5, /* Count of tags in the map */ - asn_MAP_E_RABs_ToBeSetup_Item_oms_1, /* Optional members */ - 2, 0, /* Root/Additions */ - 5, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeSetup_Item = { - "E-RABs-ToBeSetup-Item", - "E-RABs-ToBeSetup-Item", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_ToBeSetup_Item_tags_1, - sizeof(asn_DEF_E_RABs_ToBeSetup_Item_tags_1) - /sizeof(asn_DEF_E_RABs_ToBeSetup_Item_tags_1[0]), /* 1 */ - asn_DEF_E_RABs_ToBeSetup_Item_tags_1, /* Same as above */ - sizeof(asn_DEF_E_RABs_ToBeSetup_Item_tags_1) - /sizeof(asn_DEF_E_RABs_ToBeSetup_Item_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_ToBeSetup_Item_1, - 5, /* Elements count */ - &asn_SPC_E_RABs_ToBeSetup_Item_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeSetup-Item.h b/e2sim/previous/ASN1c/E-RABs-ToBeSetup-Item.h deleted file mode 100644 index f9fecfc..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeSetup-Item.h +++ /dev/null @@ -1,70 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E_RABs_ToBeSetup_Item_H_ -#define _E_RABs_ToBeSetup_Item_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "E-RAB-ID.h" -#include "E-RAB-Level-QoS-Parameters.h" -#include "DL-Forwarding.h" -#include "GTPtunnelEndpoint.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* E-RABs-ToBeSetup-Item */ -typedef struct E_RABs_ToBeSetup_Item { - E_RAB_ID_t e_RAB_ID; - E_RAB_Level_QoS_Parameters_t e_RAB_Level_QoS_Parameters; - DL_Forwarding_t *dL_Forwarding; /* OPTIONAL */ - GTPtunnelEndpoint_t uL_GTPtunnelEndpoint; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeSetup_Item_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeSetup_Item; - -#ifdef __cplusplus -} -#endif - -#endif /* _E_RABs_ToBeSetup_Item_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeSetup-List.c b/e2sim/previous/ASN1c/E-RABs-ToBeSetup-List.c deleted file mode 100644 index 3fde74f..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeSetup-List.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E-RABs-ToBeSetup-List.h" - -#include "ProtocolIE-Single-Container.h" -asn_per_constraints_t asn_PER_type_E_RABs_ToBeSetup_List_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 8, 8, 1, 256 } /* (SIZE(1..256)) */, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_E_RABs_ToBeSetup_List_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ProtocolIE_Single_Container_122P6, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeSetup_List_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_E_RABs_ToBeSetup_List_specs_1 = { - sizeof(struct E_RABs_ToBeSetup_List), - offsetof(struct E_RABs_ToBeSetup_List, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeSetup_List = { - "E-RABs-ToBeSetup-List", - "E-RABs-ToBeSetup-List", - &asn_OP_SEQUENCE_OF, - asn_DEF_E_RABs_ToBeSetup_List_tags_1, - sizeof(asn_DEF_E_RABs_ToBeSetup_List_tags_1) - /sizeof(asn_DEF_E_RABs_ToBeSetup_List_tags_1[0]), /* 1 */ - asn_DEF_E_RABs_ToBeSetup_List_tags_1, /* Same as above */ - sizeof(asn_DEF_E_RABs_ToBeSetup_List_tags_1) - /sizeof(asn_DEF_E_RABs_ToBeSetup_List_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_E_RABs_ToBeSetup_List_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_E_RABs_ToBeSetup_List_1, - 1, /* Single element */ - &asn_SPC_E_RABs_ToBeSetup_List_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeSetup-List.h b/e2sim/previous/ASN1c/E-RABs-ToBeSetup-List.h deleted file mode 100644 index 7406d61..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeSetup-List.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E_RABs_ToBeSetup_List_H_ -#define _E_RABs_ToBeSetup_List_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolIE_Single_Container; - -/* E-RABs-ToBeSetup-List */ -typedef struct E_RABs_ToBeSetup_List { - A_SEQUENCE_OF(struct ProtocolIE_Single_Container) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeSetup_List_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeSetup_List; -extern asn_SET_OF_specifics_t asn_SPC_E_RABs_ToBeSetup_List_specs_1; -extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeSetup_List_1[1]; -extern asn_per_constraints_t asn_PER_type_E_RABs_ToBeSetup_List_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _E_RABs_ToBeSetup_List_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeSetup-ListRetrieve.c b/e2sim/previous/ASN1c/E-RABs-ToBeSetup-ListRetrieve.c deleted file mode 100644 index fa67721..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeSetup-ListRetrieve.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E-RABs-ToBeSetup-ListRetrieve.h" - -#include "ProtocolIE-Single-Container.h" -asn_per_constraints_t asn_PER_type_E_RABs_ToBeSetup_ListRetrieve_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 8, 8, 1, 256 } /* (SIZE(1..256)) */, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_E_RABs_ToBeSetup_ListRetrieve_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ProtocolIE_Single_Container_122P27, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeSetup_ListRetrieve_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_E_RABs_ToBeSetup_ListRetrieve_specs_1 = { - sizeof(struct E_RABs_ToBeSetup_ListRetrieve), - offsetof(struct E_RABs_ToBeSetup_ListRetrieve, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeSetup_ListRetrieve = { - "E-RABs-ToBeSetup-ListRetrieve", - "E-RABs-ToBeSetup-ListRetrieve", - &asn_OP_SEQUENCE_OF, - asn_DEF_E_RABs_ToBeSetup_ListRetrieve_tags_1, - sizeof(asn_DEF_E_RABs_ToBeSetup_ListRetrieve_tags_1) - /sizeof(asn_DEF_E_RABs_ToBeSetup_ListRetrieve_tags_1[0]), /* 1 */ - asn_DEF_E_RABs_ToBeSetup_ListRetrieve_tags_1, /* Same as above */ - sizeof(asn_DEF_E_RABs_ToBeSetup_ListRetrieve_tags_1) - /sizeof(asn_DEF_E_RABs_ToBeSetup_ListRetrieve_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_E_RABs_ToBeSetup_ListRetrieve_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_E_RABs_ToBeSetup_ListRetrieve_1, - 1, /* Single element */ - &asn_SPC_E_RABs_ToBeSetup_ListRetrieve_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeSetup-ListRetrieve.h b/e2sim/previous/ASN1c/E-RABs-ToBeSetup-ListRetrieve.h deleted file mode 100644 index a671382..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeSetup-ListRetrieve.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E_RABs_ToBeSetup_ListRetrieve_H_ -#define _E_RABs_ToBeSetup_ListRetrieve_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolIE_Single_Container; - -/* E-RABs-ToBeSetup-ListRetrieve */ -typedef struct E_RABs_ToBeSetup_ListRetrieve { - A_SEQUENCE_OF(struct ProtocolIE_Single_Container) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeSetup_ListRetrieve_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeSetup_ListRetrieve; -extern asn_SET_OF_specifics_t asn_SPC_E_RABs_ToBeSetup_ListRetrieve_specs_1; -extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeSetup_ListRetrieve_1[1]; -extern asn_per_constraints_t asn_PER_type_E_RABs_ToBeSetup_ListRetrieve_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _E_RABs_ToBeSetup_ListRetrieve_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeSetupRetrieve-Item.c b/e2sim/previous/ASN1c/E-RABs-ToBeSetupRetrieve-Item.c deleted file mode 100644 index 6641467..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeSetupRetrieve-Item.c +++ /dev/null @@ -1,101 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E-RABs-ToBeSetupRetrieve-Item.h" - -#include "ProtocolExtensionContainer.h" -static asn_TYPE_member_t asn_MBR_E_RABs_ToBeSetupRetrieve_Item_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeSetupRetrieve_Item, e_RAB_ID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E_RAB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "e-RAB-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeSetupRetrieve_Item, e_RAB_Level_QoS_Parameters), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E_RAB_Level_QoS_Parameters, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "e-RAB-Level-QoS-Parameters" - }, - { ATF_POINTER, 2, offsetof(struct E_RABs_ToBeSetupRetrieve_Item, bearerType), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_BearerType, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "bearerType" - }, - { ATF_POINTER, 1, offsetof(struct E_RABs_ToBeSetupRetrieve_Item, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P43, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_E_RABs_ToBeSetupRetrieve_Item_oms_1[] = { 2, 3 }; -static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeSetupRetrieve_Item_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeSetupRetrieve_Item_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e-RAB-ID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* e-RAB-Level-QoS-Parameters */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* bearerType */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeSetupRetrieve_Item_specs_1 = { - sizeof(struct E_RABs_ToBeSetupRetrieve_Item), - offsetof(struct E_RABs_ToBeSetupRetrieve_Item, _asn_ctx), - asn_MAP_E_RABs_ToBeSetupRetrieve_Item_tag2el_1, - 4, /* Count of tags in the map */ - asn_MAP_E_RABs_ToBeSetupRetrieve_Item_oms_1, /* Optional members */ - 2, 0, /* Root/Additions */ - 4, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeSetupRetrieve_Item = { - "E-RABs-ToBeSetupRetrieve-Item", - "E-RABs-ToBeSetupRetrieve-Item", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_ToBeSetupRetrieve_Item_tags_1, - sizeof(asn_DEF_E_RABs_ToBeSetupRetrieve_Item_tags_1) - /sizeof(asn_DEF_E_RABs_ToBeSetupRetrieve_Item_tags_1[0]), /* 1 */ - asn_DEF_E_RABs_ToBeSetupRetrieve_Item_tags_1, /* Same as above */ - sizeof(asn_DEF_E_RABs_ToBeSetupRetrieve_Item_tags_1) - /sizeof(asn_DEF_E_RABs_ToBeSetupRetrieve_Item_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_ToBeSetupRetrieve_Item_1, - 4, /* Elements count */ - &asn_SPC_E_RABs_ToBeSetupRetrieve_Item_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/E-RABs-ToBeSetupRetrieve-Item.h b/e2sim/previous/ASN1c/E-RABs-ToBeSetupRetrieve-Item.h deleted file mode 100644 index 6e0fe8a..0000000 --- a/e2sim/previous/ASN1c/E-RABs-ToBeSetupRetrieve-Item.h +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E_RABs_ToBeSetupRetrieve_Item_H_ -#define _E_RABs_ToBeSetupRetrieve_Item_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "E-RAB-ID.h" -#include "E-RAB-Level-QoS-Parameters.h" -#include "BearerType.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* E-RABs-ToBeSetupRetrieve-Item */ -typedef struct E_RABs_ToBeSetupRetrieve_Item { - E_RAB_ID_t e_RAB_ID; - E_RAB_Level_QoS_Parameters_t e_RAB_Level_QoS_Parameters; - BearerType_t *bearerType; /* OPTIONAL */ - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeSetupRetrieve_Item_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeSetupRetrieve_Item; - -#ifdef __cplusplus -} -#endif - -#endif /* _E_RABs_ToBeSetupRetrieve_Item_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E2AP-PDU.c b/e2sim/previous/ASN1c/E2AP-PDU.c deleted file mode 100644 index b815431..0000000 --- a/e2sim/previous/ASN1c/E2AP-PDU.c +++ /dev/null @@ -1,93 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Descriptions" - * found in "../../asnFiles/e2ap-v031.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E2AP-PDU.h" - -#include "InitiatingMessage.h" -#include "SuccessfulOutcome.h" -#include "UnsuccessfulOutcome.h" -static asn_per_constraints_t asn_PER_type_E2AP_PDU_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 2 } /* (0..2,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_E2AP_PDU_1[] = { - { ATF_POINTER, 0, offsetof(struct E2AP_PDU, choice.initiatingMessage), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_InitiatingMessage, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "initiatingMessage" - }, - { ATF_POINTER, 0, offsetof(struct E2AP_PDU, choice.successfulOutcome), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_SuccessfulOutcome, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "successfulOutcome" - }, - { ATF_POINTER, 0, offsetof(struct E2AP_PDU, choice.unsuccessfulOutcome), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_UnsuccessfulOutcome, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "unsuccessfulOutcome" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_E2AP_PDU_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* initiatingMessage */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* successfulOutcome */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* unsuccessfulOutcome */ -}; -static asn_CHOICE_specifics_t asn_SPC_E2AP_PDU_specs_1 = { - sizeof(struct E2AP_PDU), - offsetof(struct E2AP_PDU, _asn_ctx), - offsetof(struct E2AP_PDU, present), - sizeof(((struct E2AP_PDU *)0)->present), - asn_MAP_E2AP_PDU_tag2el_1, - 3, /* Count of tags in the map */ - 0, 0, - 3 /* Extensions start */ -}; -asn_TYPE_descriptor_t asn_DEF_E2AP_PDU = { - "E2AP-PDU", - "E2AP-PDU", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, &asn_PER_type_E2AP_PDU_constr_1, CHOICE_constraint }, - asn_MBR_E2AP_PDU_1, - 3, /* Elements count */ - &asn_SPC_E2AP_PDU_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/E2AP-PDU.h b/e2sim/previous/ASN1c/E2AP-PDU.h deleted file mode 100644 index ca1765f..0000000 --- a/e2sim/previous/ASN1c/E2AP-PDU.h +++ /dev/null @@ -1,79 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Descriptions" - * found in "../../asnFiles/e2ap-v031.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E2AP_PDU_H_ -#define _E2AP_PDU_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "constr_CHOICE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum E2AP_PDU_PR { - E2AP_PDU_PR_NOTHING, /* No components present */ - E2AP_PDU_PR_initiatingMessage, - E2AP_PDU_PR_successfulOutcome, - E2AP_PDU_PR_unsuccessfulOutcome - /* Extensions may appear below */ - -} E2AP_PDU_PR; - -/* Forward declarations */ -struct InitiatingMessage; -struct SuccessfulOutcome; -struct UnsuccessfulOutcome; - -/* E2AP-PDU */ -typedef struct E2AP_PDU { - E2AP_PDU_PR present; - union E2AP_PDU_u { - struct InitiatingMessage *initiatingMessage; - struct SuccessfulOutcome *successfulOutcome; - struct UnsuccessfulOutcome *unsuccessfulOutcome; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E2AP_PDU_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E2AP_PDU; - -#ifdef __cplusplus -} -#endif - -#endif /* _E2AP_PDU_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E2SM-gNB-X2-actionDefinition.c b/e2sim/previous/ASN1c/E2SM-gNB-X2-actionDefinition.c deleted file mode 100644 index 136f424..0000000 --- a/e2sim/previous/ASN1c/E2SM-gNB-X2-actionDefinition.c +++ /dev/null @@ -1,154 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-gNB-X2-IEs" - * found in "../../asnFiles/e2sm-gNB-X2-release-1-v041.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E2SM-gNB-X2-actionDefinition.h" - -#include "ActionParameter-Item.h" -static int -memb_actionParameter_List_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - /* Determine the number of elements */ - size = _A_CSEQUENCE_FROM_VOID(sptr)->count; - - if((size >= 1 && size <= 255)) { - /* Perform validation of the inner elements */ - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_per_constraints_t asn_PER_type_actionParameter_List_constr_3 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 8, 8, 1, 255 } /* (SIZE(1..255)) */, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_actionParameter_List_constr_3 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 8, 8, 1, 255 } /* (SIZE(1..255)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_actionParameter_List_3[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ActionParameter_Item, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_actionParameter_List_tags_3[] = { - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_actionParameter_List_specs_3 = { - sizeof(struct E2SM_gNB_X2_actionDefinition__actionParameter_List), - offsetof(struct E2SM_gNB_X2_actionDefinition__actionParameter_List, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_actionParameter_List_3 = { - "actionParameter-List", - "actionParameter-List", - &asn_OP_SEQUENCE_OF, - asn_DEF_actionParameter_List_tags_3, - sizeof(asn_DEF_actionParameter_List_tags_3) - /sizeof(asn_DEF_actionParameter_List_tags_3[0]) - 1, /* 1 */ - asn_DEF_actionParameter_List_tags_3, /* Same as above */ - sizeof(asn_DEF_actionParameter_List_tags_3) - /sizeof(asn_DEF_actionParameter_List_tags_3[0]), /* 2 */ - { 0, &asn_PER_type_actionParameter_List_constr_3, SEQUENCE_OF_constraint }, - asn_MBR_actionParameter_List_3, - 1, /* Single element */ - &asn_SPC_actionParameter_List_specs_3 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_E2SM_gNB_X2_actionDefinition_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct E2SM_gNB_X2_actionDefinition, style_ID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Style_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "style-ID" - }, - { ATF_POINTER, 1, offsetof(struct E2SM_gNB_X2_actionDefinition, actionParameter_List), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - 0, - &asn_DEF_actionParameter_List_3, - 0, - { 0, &asn_PER_memb_actionParameter_List_constr_3, memb_actionParameter_List_constraint_1 }, - 0, 0, /* No default value */ - "actionParameter-List" - }, -}; -static const int asn_MAP_E2SM_gNB_X2_actionDefinition_oms_1[] = { 1 }; -static const ber_tlv_tag_t asn_DEF_E2SM_gNB_X2_actionDefinition_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E2SM_gNB_X2_actionDefinition_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* style-ID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* actionParameter-List */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_E2SM_gNB_X2_actionDefinition_specs_1 = { - sizeof(struct E2SM_gNB_X2_actionDefinition), - offsetof(struct E2SM_gNB_X2_actionDefinition, _asn_ctx), - asn_MAP_E2SM_gNB_X2_actionDefinition_tag2el_1, - 2, /* Count of tags in the map */ - asn_MAP_E2SM_gNB_X2_actionDefinition_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 2, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E2SM_gNB_X2_actionDefinition = { - "E2SM-gNB-X2-actionDefinition", - "E2SM-gNB-X2-actionDefinition", - &asn_OP_SEQUENCE, - asn_DEF_E2SM_gNB_X2_actionDefinition_tags_1, - sizeof(asn_DEF_E2SM_gNB_X2_actionDefinition_tags_1) - /sizeof(asn_DEF_E2SM_gNB_X2_actionDefinition_tags_1[0]), /* 1 */ - asn_DEF_E2SM_gNB_X2_actionDefinition_tags_1, /* Same as above */ - sizeof(asn_DEF_E2SM_gNB_X2_actionDefinition_tags_1) - /sizeof(asn_DEF_E2SM_gNB_X2_actionDefinition_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E2SM_gNB_X2_actionDefinition_1, - 2, /* Elements count */ - &asn_SPC_E2SM_gNB_X2_actionDefinition_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/E2SM-gNB-X2-actionDefinition.h b/e2sim/previous/ASN1c/E2SM-gNB-X2-actionDefinition.h deleted file mode 100644 index b4bd771..0000000 --- a/e2sim/previous/ASN1c/E2SM-gNB-X2-actionDefinition.h +++ /dev/null @@ -1,71 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-gNB-X2-IEs" - * found in "../../asnFiles/e2sm-gNB-X2-release-1-v041.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E2SM_gNB_X2_actionDefinition_H_ -#define _E2SM_gNB_X2_actionDefinition_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "Style-ID.h" -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ActionParameter_Item; - -/* E2SM-gNB-X2-actionDefinition */ -typedef struct E2SM_gNB_X2_actionDefinition { - Style_ID_t style_ID; - struct E2SM_gNB_X2_actionDefinition__actionParameter_List { - A_SEQUENCE_OF(struct ActionParameter_Item) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } *actionParameter_List; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E2SM_gNB_X2_actionDefinition_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E2SM_gNB_X2_actionDefinition; - -#ifdef __cplusplus -} -#endif - -#endif /* _E2SM_gNB_X2_actionDefinition_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E2SM-gNB-X2-callProcessID.c b/e2sim/previous/ASN1c/E2SM-gNB-X2-callProcessID.c deleted file mode 100644 index 77fcc30..0000000 --- a/e2sim/previous/ASN1c/E2SM-gNB-X2-callProcessID.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-gNB-X2-IEs" - * found in "../../asnFiles/e2sm-gNB-X2-release-1-v041.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E2SM-gNB-X2-callProcessID.h" - -static asn_TYPE_member_t asn_MBR_E2SM_gNB_X2_callProcessID_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct E2SM_gNB_X2_callProcessID, callProcess_ID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_CallProcess_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "callProcess-ID" - }, -}; -static const ber_tlv_tag_t asn_DEF_E2SM_gNB_X2_callProcessID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E2SM_gNB_X2_callProcessID_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* callProcess-ID */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_E2SM_gNB_X2_callProcessID_specs_1 = { - sizeof(struct E2SM_gNB_X2_callProcessID), - offsetof(struct E2SM_gNB_X2_callProcessID, _asn_ctx), - asn_MAP_E2SM_gNB_X2_callProcessID_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E2SM_gNB_X2_callProcessID = { - "E2SM-gNB-X2-callProcessID", - "E2SM-gNB-X2-callProcessID", - &asn_OP_SEQUENCE, - asn_DEF_E2SM_gNB_X2_callProcessID_tags_1, - sizeof(asn_DEF_E2SM_gNB_X2_callProcessID_tags_1) - /sizeof(asn_DEF_E2SM_gNB_X2_callProcessID_tags_1[0]), /* 1 */ - asn_DEF_E2SM_gNB_X2_callProcessID_tags_1, /* Same as above */ - sizeof(asn_DEF_E2SM_gNB_X2_callProcessID_tags_1) - /sizeof(asn_DEF_E2SM_gNB_X2_callProcessID_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E2SM_gNB_X2_callProcessID_1, - 1, /* Elements count */ - &asn_SPC_E2SM_gNB_X2_callProcessID_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/E2SM-gNB-X2-callProcessID.h b/e2sim/previous/ASN1c/E2SM-gNB-X2-callProcessID.h deleted file mode 100644 index 4dcc39a..0000000 --- a/e2sim/previous/ASN1c/E2SM-gNB-X2-callProcessID.h +++ /dev/null @@ -1,60 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-gNB-X2-IEs" - * found in "../../asnFiles/e2sm-gNB-X2-release-1-v041.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E2SM_gNB_X2_callProcessID_H_ -#define _E2SM_gNB_X2_callProcessID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "CallProcess-ID.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* E2SM-gNB-X2-callProcessID */ -typedef struct E2SM_gNB_X2_callProcessID { - CallProcess_ID_t callProcess_ID; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E2SM_gNB_X2_callProcessID_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E2SM_gNB_X2_callProcessID; - -#ifdef __cplusplus -} -#endif - -#endif /* _E2SM_gNB_X2_callProcessID_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E2SM-gNB-X2-controlHeader.c b/e2sim/previous/ASN1c/E2SM-gNB-X2-controlHeader.c deleted file mode 100644 index 8a9466a..0000000 --- a/e2sim/previous/ASN1c/E2SM-gNB-X2-controlHeader.c +++ /dev/null @@ -1,78 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-gNB-X2-IEs" - * found in "../../asnFiles/e2sm-gNB-X2-release-1-v041.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E2SM-gNB-X2-controlHeader.h" - -static asn_TYPE_member_t asn_MBR_E2SM_gNB_X2_controlHeader_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct E2SM_gNB_X2_controlHeader, interface_ID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_Interface_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "interface-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct E2SM_gNB_X2_controlHeader, interfaceDirection), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_InterfaceDirection, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "interfaceDirection" - }, -}; -static const ber_tlv_tag_t asn_DEF_E2SM_gNB_X2_controlHeader_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E2SM_gNB_X2_controlHeader_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* interface-ID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* interfaceDirection */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_E2SM_gNB_X2_controlHeader_specs_1 = { - sizeof(struct E2SM_gNB_X2_controlHeader), - offsetof(struct E2SM_gNB_X2_controlHeader, _asn_ctx), - asn_MAP_E2SM_gNB_X2_controlHeader_tag2el_1, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 2, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E2SM_gNB_X2_controlHeader = { - "E2SM-gNB-X2-controlHeader", - "E2SM-gNB-X2-controlHeader", - &asn_OP_SEQUENCE, - asn_DEF_E2SM_gNB_X2_controlHeader_tags_1, - sizeof(asn_DEF_E2SM_gNB_X2_controlHeader_tags_1) - /sizeof(asn_DEF_E2SM_gNB_X2_controlHeader_tags_1[0]), /* 1 */ - asn_DEF_E2SM_gNB_X2_controlHeader_tags_1, /* Same as above */ - sizeof(asn_DEF_E2SM_gNB_X2_controlHeader_tags_1) - /sizeof(asn_DEF_E2SM_gNB_X2_controlHeader_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E2SM_gNB_X2_controlHeader_1, - 2, /* Elements count */ - &asn_SPC_E2SM_gNB_X2_controlHeader_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/E2SM-gNB-X2-controlHeader.h b/e2sim/previous/ASN1c/E2SM-gNB-X2-controlHeader.h deleted file mode 100644 index 79c2cd7..0000000 --- a/e2sim/previous/ASN1c/E2SM-gNB-X2-controlHeader.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-gNB-X2-IEs" - * found in "../../asnFiles/e2sm-gNB-X2-release-1-v041.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E2SM_gNB_X2_controlHeader_H_ -#define _E2SM_gNB_X2_controlHeader_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "Interface-ID.h" -#include "InterfaceDirection.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* E2SM-gNB-X2-controlHeader */ -typedef struct E2SM_gNB_X2_controlHeader { - Interface_ID_t interface_ID; - InterfaceDirection_t interfaceDirection; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E2SM_gNB_X2_controlHeader_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E2SM_gNB_X2_controlHeader; - -#ifdef __cplusplus -} -#endif - -#endif /* _E2SM_gNB_X2_controlHeader_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E2SM-gNB-X2-controlMessage.c b/e2sim/previous/ASN1c/E2SM-gNB-X2-controlMessage.c deleted file mode 100644 index e6b0924..0000000 --- a/e2sim/previous/ASN1c/E2SM-gNB-X2-controlMessage.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-gNB-X2-IEs" - * found in "../../asnFiles/e2sm-gNB-X2-release-1-v041.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E2SM-gNB-X2-controlMessage.h" - -static asn_TYPE_member_t asn_MBR_E2SM_gNB_X2_controlMessage_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct E2SM_gNB_X2_controlMessage, interfaceMessage), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_InterfaceMessage, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "interfaceMessage" - }, -}; -static const ber_tlv_tag_t asn_DEF_E2SM_gNB_X2_controlMessage_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E2SM_gNB_X2_controlMessage_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* interfaceMessage */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_E2SM_gNB_X2_controlMessage_specs_1 = { - sizeof(struct E2SM_gNB_X2_controlMessage), - offsetof(struct E2SM_gNB_X2_controlMessage, _asn_ctx), - asn_MAP_E2SM_gNB_X2_controlMessage_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E2SM_gNB_X2_controlMessage = { - "E2SM-gNB-X2-controlMessage", - "E2SM-gNB-X2-controlMessage", - &asn_OP_SEQUENCE, - asn_DEF_E2SM_gNB_X2_controlMessage_tags_1, - sizeof(asn_DEF_E2SM_gNB_X2_controlMessage_tags_1) - /sizeof(asn_DEF_E2SM_gNB_X2_controlMessage_tags_1[0]), /* 1 */ - asn_DEF_E2SM_gNB_X2_controlMessage_tags_1, /* Same as above */ - sizeof(asn_DEF_E2SM_gNB_X2_controlMessage_tags_1) - /sizeof(asn_DEF_E2SM_gNB_X2_controlMessage_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E2SM_gNB_X2_controlMessage_1, - 1, /* Elements count */ - &asn_SPC_E2SM_gNB_X2_controlMessage_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/E2SM-gNB-X2-controlMessage.h b/e2sim/previous/ASN1c/E2SM-gNB-X2-controlMessage.h deleted file mode 100644 index 40b0f68..0000000 --- a/e2sim/previous/ASN1c/E2SM-gNB-X2-controlMessage.h +++ /dev/null @@ -1,60 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-gNB-X2-IEs" - * found in "../../asnFiles/e2sm-gNB-X2-release-1-v041.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E2SM_gNB_X2_controlMessage_H_ -#define _E2SM_gNB_X2_controlMessage_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "InterfaceMessage.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* E2SM-gNB-X2-controlMessage */ -typedef struct E2SM_gNB_X2_controlMessage { - InterfaceMessage_t interfaceMessage; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E2SM_gNB_X2_controlMessage_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E2SM_gNB_X2_controlMessage; - -#ifdef __cplusplus -} -#endif - -#endif /* _E2SM_gNB_X2_controlMessage_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E2SM-gNB-X2-eventTriggerDefinition.c b/e2sim/previous/ASN1c/E2SM-gNB-X2-eventTriggerDefinition.c deleted file mode 100644 index 39c4970..0000000 --- a/e2sim/previous/ASN1c/E2SM-gNB-X2-eventTriggerDefinition.c +++ /dev/null @@ -1,174 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-gNB-X2-IEs" - * found in "../../asnFiles/e2sm-gNB-X2-release-1-v041.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E2SM-gNB-X2-eventTriggerDefinition.h" - -#include "InterfaceProtocolIE-Item.h" -static int -memb_interfaceProtocolIE_List_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - /* Determine the number of elements */ - size = _A_CSEQUENCE_FROM_VOID(sptr)->count; - - if((size >= 1 && size <= 15)) { - /* Perform validation of the inner elements */ - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_per_constraints_t asn_PER_type_interfaceProtocolIE_List_constr_5 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 4, 4, 1, 15 } /* (SIZE(1..15)) */, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_interfaceProtocolIE_List_constr_5 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 4, 4, 1, 15 } /* (SIZE(1..15)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_interfaceProtocolIE_List_5[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_InterfaceProtocolIE_Item, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_interfaceProtocolIE_List_tags_5[] = { - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_interfaceProtocolIE_List_specs_5 = { - sizeof(struct E2SM_gNB_X2_eventTriggerDefinition__interfaceProtocolIE_List), - offsetof(struct E2SM_gNB_X2_eventTriggerDefinition__interfaceProtocolIE_List, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_interfaceProtocolIE_List_5 = { - "interfaceProtocolIE-List", - "interfaceProtocolIE-List", - &asn_OP_SEQUENCE_OF, - asn_DEF_interfaceProtocolIE_List_tags_5, - sizeof(asn_DEF_interfaceProtocolIE_List_tags_5) - /sizeof(asn_DEF_interfaceProtocolIE_List_tags_5[0]) - 1, /* 1 */ - asn_DEF_interfaceProtocolIE_List_tags_5, /* Same as above */ - sizeof(asn_DEF_interfaceProtocolIE_List_tags_5) - /sizeof(asn_DEF_interfaceProtocolIE_List_tags_5[0]), /* 2 */ - { 0, &asn_PER_type_interfaceProtocolIE_List_constr_5, SEQUENCE_OF_constraint }, - asn_MBR_interfaceProtocolIE_List_5, - 1, /* Single element */ - &asn_SPC_interfaceProtocolIE_List_specs_5 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_E2SM_gNB_X2_eventTriggerDefinition_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct E2SM_gNB_X2_eventTriggerDefinition, interface_ID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_Interface_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "interface-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct E2SM_gNB_X2_eventTriggerDefinition, interfaceDirection), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_InterfaceDirection, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "interfaceDirection" - }, - { ATF_NOFLAGS, 0, offsetof(struct E2SM_gNB_X2_eventTriggerDefinition, interfaceMessageType), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_InterfaceMessageType, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "interfaceMessageType" - }, - { ATF_POINTER, 1, offsetof(struct E2SM_gNB_X2_eventTriggerDefinition, interfaceProtocolIE_List), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - 0, - &asn_DEF_interfaceProtocolIE_List_5, - 0, - { 0, &asn_PER_memb_interfaceProtocolIE_List_constr_5, memb_interfaceProtocolIE_List_constraint_1 }, - 0, 0, /* No default value */ - "interfaceProtocolIE-List" - }, -}; -static const int asn_MAP_E2SM_gNB_X2_eventTriggerDefinition_oms_1[] = { 3 }; -static const ber_tlv_tag_t asn_DEF_E2SM_gNB_X2_eventTriggerDefinition_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E2SM_gNB_X2_eventTriggerDefinition_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* interface-ID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* interfaceDirection */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* interfaceMessageType */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* interfaceProtocolIE-List */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_E2SM_gNB_X2_eventTriggerDefinition_specs_1 = { - sizeof(struct E2SM_gNB_X2_eventTriggerDefinition), - offsetof(struct E2SM_gNB_X2_eventTriggerDefinition, _asn_ctx), - asn_MAP_E2SM_gNB_X2_eventTriggerDefinition_tag2el_1, - 4, /* Count of tags in the map */ - asn_MAP_E2SM_gNB_X2_eventTriggerDefinition_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 4, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E2SM_gNB_X2_eventTriggerDefinition = { - "E2SM-gNB-X2-eventTriggerDefinition", - "E2SM-gNB-X2-eventTriggerDefinition", - &asn_OP_SEQUENCE, - asn_DEF_E2SM_gNB_X2_eventTriggerDefinition_tags_1, - sizeof(asn_DEF_E2SM_gNB_X2_eventTriggerDefinition_tags_1) - /sizeof(asn_DEF_E2SM_gNB_X2_eventTriggerDefinition_tags_1[0]), /* 1 */ - asn_DEF_E2SM_gNB_X2_eventTriggerDefinition_tags_1, /* Same as above */ - sizeof(asn_DEF_E2SM_gNB_X2_eventTriggerDefinition_tags_1) - /sizeof(asn_DEF_E2SM_gNB_X2_eventTriggerDefinition_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E2SM_gNB_X2_eventTriggerDefinition_1, - 4, /* Elements count */ - &asn_SPC_E2SM_gNB_X2_eventTriggerDefinition_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/E2SM-gNB-X2-eventTriggerDefinition.h b/e2sim/previous/ASN1c/E2SM-gNB-X2-eventTriggerDefinition.h deleted file mode 100644 index 10f08c7..0000000 --- a/e2sim/previous/ASN1c/E2SM-gNB-X2-eventTriggerDefinition.h +++ /dev/null @@ -1,75 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-gNB-X2-IEs" - * found in "../../asnFiles/e2sm-gNB-X2-release-1-v041.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E2SM_gNB_X2_eventTriggerDefinition_H_ -#define _E2SM_gNB_X2_eventTriggerDefinition_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "Interface-ID.h" -#include "InterfaceDirection.h" -#include "InterfaceMessageType.h" -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct InterfaceProtocolIE_Item; - -/* E2SM-gNB-X2-eventTriggerDefinition */ -typedef struct E2SM_gNB_X2_eventTriggerDefinition { - Interface_ID_t interface_ID; - InterfaceDirection_t interfaceDirection; - InterfaceMessageType_t interfaceMessageType; - struct E2SM_gNB_X2_eventTriggerDefinition__interfaceProtocolIE_List { - A_SEQUENCE_OF(struct InterfaceProtocolIE_Item) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } *interfaceProtocolIE_List; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E2SM_gNB_X2_eventTriggerDefinition_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E2SM_gNB_X2_eventTriggerDefinition; - -#ifdef __cplusplus -} -#endif - -#endif /* _E2SM_gNB_X2_eventTriggerDefinition_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E2SM-gNB-X2-indicationHeader.c b/e2sim/previous/ASN1c/E2SM-gNB-X2-indicationHeader.c deleted file mode 100644 index e64114c..0000000 --- a/e2sim/previous/ASN1c/E2SM-gNB-X2-indicationHeader.c +++ /dev/null @@ -1,90 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-gNB-X2-IEs" - * found in "../../asnFiles/e2sm-gNB-X2-release-1-v041.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E2SM-gNB-X2-indicationHeader.h" - -static asn_TYPE_member_t asn_MBR_E2SM_gNB_X2_indicationHeader_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct E2SM_gNB_X2_indicationHeader, interface_ID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_Interface_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "interface-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct E2SM_gNB_X2_indicationHeader, interfaceDirection), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_InterfaceDirection, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "interfaceDirection" - }, - { ATF_POINTER, 1, offsetof(struct E2SM_gNB_X2_indicationHeader, timestamp), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_TimeStamp, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "timestamp" - }, -}; -static const int asn_MAP_E2SM_gNB_X2_indicationHeader_oms_1[] = { 2 }; -static const ber_tlv_tag_t asn_DEF_E2SM_gNB_X2_indicationHeader_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E2SM_gNB_X2_indicationHeader_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* interface-ID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* interfaceDirection */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* timestamp */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_E2SM_gNB_X2_indicationHeader_specs_1 = { - sizeof(struct E2SM_gNB_X2_indicationHeader), - offsetof(struct E2SM_gNB_X2_indicationHeader, _asn_ctx), - asn_MAP_E2SM_gNB_X2_indicationHeader_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_E2SM_gNB_X2_indicationHeader_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E2SM_gNB_X2_indicationHeader = { - "E2SM-gNB-X2-indicationHeader", - "E2SM-gNB-X2-indicationHeader", - &asn_OP_SEQUENCE, - asn_DEF_E2SM_gNB_X2_indicationHeader_tags_1, - sizeof(asn_DEF_E2SM_gNB_X2_indicationHeader_tags_1) - /sizeof(asn_DEF_E2SM_gNB_X2_indicationHeader_tags_1[0]), /* 1 */ - asn_DEF_E2SM_gNB_X2_indicationHeader_tags_1, /* Same as above */ - sizeof(asn_DEF_E2SM_gNB_X2_indicationHeader_tags_1) - /sizeof(asn_DEF_E2SM_gNB_X2_indicationHeader_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E2SM_gNB_X2_indicationHeader_1, - 3, /* Elements count */ - &asn_SPC_E2SM_gNB_X2_indicationHeader_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/E2SM-gNB-X2-indicationHeader.h b/e2sim/previous/ASN1c/E2SM-gNB-X2-indicationHeader.h deleted file mode 100644 index 80e9c49..0000000 --- a/e2sim/previous/ASN1c/E2SM-gNB-X2-indicationHeader.h +++ /dev/null @@ -1,64 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-gNB-X2-IEs" - * found in "../../asnFiles/e2sm-gNB-X2-release-1-v041.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E2SM_gNB_X2_indicationHeader_H_ -#define _E2SM_gNB_X2_indicationHeader_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "Interface-ID.h" -#include "InterfaceDirection.h" -#include "TimeStamp.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* E2SM-gNB-X2-indicationHeader */ -typedef struct E2SM_gNB_X2_indicationHeader { - Interface_ID_t interface_ID; - InterfaceDirection_t interfaceDirection; - TimeStamp_t *timestamp; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E2SM_gNB_X2_indicationHeader_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E2SM_gNB_X2_indicationHeader; - -#ifdef __cplusplus -} -#endif - -#endif /* _E2SM_gNB_X2_indicationHeader_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/E2SM-gNB-X2-indicationMessage.c b/e2sim/previous/ASN1c/E2SM-gNB-X2-indicationMessage.c deleted file mode 100644 index 70b5921..0000000 --- a/e2sim/previous/ASN1c/E2SM-gNB-X2-indicationMessage.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-gNB-X2-IEs" - * found in "../../asnFiles/e2sm-gNB-X2-release-1-v041.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "E2SM-gNB-X2-indicationMessage.h" - -static asn_TYPE_member_t asn_MBR_E2SM_gNB_X2_indicationMessage_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct E2SM_gNB_X2_indicationMessage, interfaceMessage), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_InterfaceMessage, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "interfaceMessage" - }, -}; -static const ber_tlv_tag_t asn_DEF_E2SM_gNB_X2_indicationMessage_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E2SM_gNB_X2_indicationMessage_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* interfaceMessage */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_E2SM_gNB_X2_indicationMessage_specs_1 = { - sizeof(struct E2SM_gNB_X2_indicationMessage), - offsetof(struct E2SM_gNB_X2_indicationMessage, _asn_ctx), - asn_MAP_E2SM_gNB_X2_indicationMessage_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E2SM_gNB_X2_indicationMessage = { - "E2SM-gNB-X2-indicationMessage", - "E2SM-gNB-X2-indicationMessage", - &asn_OP_SEQUENCE, - asn_DEF_E2SM_gNB_X2_indicationMessage_tags_1, - sizeof(asn_DEF_E2SM_gNB_X2_indicationMessage_tags_1) - /sizeof(asn_DEF_E2SM_gNB_X2_indicationMessage_tags_1[0]), /* 1 */ - asn_DEF_E2SM_gNB_X2_indicationMessage_tags_1, /* Same as above */ - sizeof(asn_DEF_E2SM_gNB_X2_indicationMessage_tags_1) - /sizeof(asn_DEF_E2SM_gNB_X2_indicationMessage_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E2SM_gNB_X2_indicationMessage_1, - 1, /* Elements count */ - &asn_SPC_E2SM_gNB_X2_indicationMessage_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/E2SM-gNB-X2-indicationMessage.h b/e2sim/previous/ASN1c/E2SM-gNB-X2-indicationMessage.h deleted file mode 100644 index e28aad1..0000000 --- a/e2sim/previous/ASN1c/E2SM-gNB-X2-indicationMessage.h +++ /dev/null @@ -1,60 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-gNB-X2-IEs" - * found in "../../asnFiles/e2sm-gNB-X2-release-1-v041.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _E2SM_gNB_X2_indicationMessage_H_ -#define _E2SM_gNB_X2_indicationMessage_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "InterfaceMessage.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* E2SM-gNB-X2-indicationMessage */ -typedef struct E2SM_gNB_X2_indicationMessage { - InterfaceMessage_t interfaceMessage; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E2SM_gNB_X2_indicationMessage_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E2SM_gNB_X2_indicationMessage; - -#ifdef __cplusplus -} -#endif - -#endif /* _E2SM_gNB_X2_indicationMessage_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/EARFCN.c b/e2sim/previous/ASN1c/EARFCN.c deleted file mode 100644 index 4ae1cb4..0000000 --- a/e2sim/previous/ASN1c/EARFCN.c +++ /dev/null @@ -1,79 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "EARFCN.h" - -int -EARFCN_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using NativeInteger, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_EARFCN_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_EARFCN_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_EARFCN = { - "EARFCN", - "EARFCN", - &asn_OP_NativeInteger, - asn_DEF_EARFCN_tags_1, - sizeof(asn_DEF_EARFCN_tags_1) - /sizeof(asn_DEF_EARFCN_tags_1[0]), /* 1 */ - asn_DEF_EARFCN_tags_1, /* Same as above */ - sizeof(asn_DEF_EARFCN_tags_1) - /sizeof(asn_DEF_EARFCN_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_EARFCN_constr_1, EARFCN_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/previous/ASN1c/EARFCN.h b/e2sim/previous/ASN1c/EARFCN.h deleted file mode 100644 index 49d6364..0000000 --- a/e2sim/previous/ASN1c/EARFCN.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _EARFCN_H_ -#define _EARFCN_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeInteger.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* EARFCN */ -typedef long EARFCN_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_EARFCN_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_EARFCN; -asn_struct_free_f EARFCN_free; -asn_struct_print_f EARFCN_print; -asn_constr_check_f EARFCN_constraint; -ber_type_decoder_f EARFCN_decode_ber; -der_type_encoder_f EARFCN_encode_der; -xer_type_decoder_f EARFCN_decode_xer; -xer_type_encoder_f EARFCN_encode_xer; -per_type_decoder_f EARFCN_decode_uper; -per_type_encoder_f EARFCN_encode_uper; -per_type_decoder_f EARFCN_decode_aper; -per_type_encoder_f EARFCN_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _EARFCN_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/EARFCNExtension.c b/e2sim/previous/ASN1c/EARFCNExtension.c deleted file mode 100644 index 939837d..0000000 --- a/e2sim/previous/ASN1c/EARFCNExtension.c +++ /dev/null @@ -1,79 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "EARFCNExtension.h" - -int -EARFCNExtension_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 65536 && value <= 262143)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using NativeInteger, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_EARFCNExtension_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 18, -1, 65536, 262143 } /* (65536..262143,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_EARFCNExtension_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_EARFCNExtension = { - "EARFCNExtension", - "EARFCNExtension", - &asn_OP_NativeInteger, - asn_DEF_EARFCNExtension_tags_1, - sizeof(asn_DEF_EARFCNExtension_tags_1) - /sizeof(asn_DEF_EARFCNExtension_tags_1[0]), /* 1 */ - asn_DEF_EARFCNExtension_tags_1, /* Same as above */ - sizeof(asn_DEF_EARFCNExtension_tags_1) - /sizeof(asn_DEF_EARFCNExtension_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_EARFCNExtension_constr_1, EARFCNExtension_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/previous/ASN1c/EARFCNExtension.h b/e2sim/previous/ASN1c/EARFCNExtension.h deleted file mode 100644 index b20aa0a..0000000 --- a/e2sim/previous/ASN1c/EARFCNExtension.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _EARFCNExtension_H_ -#define _EARFCNExtension_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeInteger.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* EARFCNExtension */ -typedef long EARFCNExtension_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_EARFCNExtension_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_EARFCNExtension; -asn_struct_free_f EARFCNExtension_free; -asn_struct_print_f EARFCNExtension_print; -asn_constr_check_f EARFCNExtension_constraint; -ber_type_decoder_f EARFCNExtension_decode_ber; -der_type_encoder_f EARFCNExtension_encode_der; -xer_type_decoder_f EARFCNExtension_decode_xer; -xer_type_encoder_f EARFCNExtension_encode_xer; -per_type_decoder_f EARFCNExtension_decode_uper; -per_type_encoder_f EARFCNExtension_encode_uper; -per_type_decoder_f EARFCNExtension_decode_aper; -per_type_encoder_f EARFCNExtension_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _EARFCNExtension_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/ECGI.c b/e2sim/previous/ASN1c/ECGI.c deleted file mode 100644 index b124560..0000000 --- a/e2sim/previous/ASN1c/ECGI.c +++ /dev/null @@ -1,91 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "ECGI.h" - -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_ECGI_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct ECGI, pLMN_Identity), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_PLMN_Identity, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "pLMN-Identity" - }, - { ATF_NOFLAGS, 0, offsetof(struct ECGI, eUTRANcellIdentifier), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_EUTRANCellIdentifier, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "eUTRANcellIdentifier" - }, - { ATF_POINTER, 1, offsetof(struct ECGI, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P134, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_ECGI_oms_1[] = { 2 }; -static const ber_tlv_tag_t asn_DEF_ECGI_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ECGI_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pLMN-Identity */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* eUTRANcellIdentifier */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ECGI_specs_1 = { - sizeof(struct ECGI), - offsetof(struct ECGI, _asn_ctx), - asn_MAP_ECGI_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_ECGI_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ECGI = { - "ECGI", - "ECGI", - &asn_OP_SEQUENCE, - asn_DEF_ECGI_tags_1, - sizeof(asn_DEF_ECGI_tags_1) - /sizeof(asn_DEF_ECGI_tags_1[0]), /* 1 */ - asn_DEF_ECGI_tags_1, /* Same as above */ - sizeof(asn_DEF_ECGI_tags_1) - /sizeof(asn_DEF_ECGI_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ECGI_1, - 3, /* Elements count */ - &asn_SPC_ECGI_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/ECGI.h b/e2sim/previous/ASN1c/ECGI.h deleted file mode 100644 index 570e1c7..0000000 --- a/e2sim/previous/ASN1c/ECGI.h +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _ECGI_H_ -#define _ECGI_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "PLMN-Identity.h" -#include "EUTRANCellIdentifier.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* ECGI */ -typedef struct ECGI { - PLMN_Identity_t pLMN_Identity; - EUTRANCellIdentifier_t eUTRANcellIdentifier; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ECGI_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ECGI; -extern asn_SEQUENCE_specifics_t asn_SPC_ECGI_specs_1; -extern asn_TYPE_member_t asn_MBR_ECGI_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _ECGI_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/EN-DC-ResourceConfiguration.c b/e2sim/previous/ASN1c/EN-DC-ResourceConfiguration.c deleted file mode 100644 index 976966d..0000000 --- a/e2sim/previous/ASN1c/EN-DC-ResourceConfiguration.c +++ /dev/null @@ -1,245 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "EN-DC-ResourceConfiguration.h" - -#include "ProtocolExtensionContainer.h" -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -static asn_per_constraints_t asn_PER_type_pDCPatSgNB_constr_2 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_type_mCGresources_constr_6 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_type_sCGresources_constr_10 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_pDCPatSgNB_value2enum_2[] = { - { 0, 7, "present" }, - { 1, 11, "not-present" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_pDCPatSgNB_enum2value_2[] = { - 1, /* not-present(1) */ - 0 /* present(0) */ - /* This list is extensible */ -}; -static const asn_INTEGER_specifics_t asn_SPC_pDCPatSgNB_specs_2 = { - asn_MAP_pDCPatSgNB_value2enum_2, /* "tag" => N; sorted by tag */ - asn_MAP_pDCPatSgNB_enum2value_2, /* N => "tag"; sorted by N */ - 2, /* Number of elements in the maps */ - 3, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_pDCPatSgNB_tags_2[] = { - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_pDCPatSgNB_2 = { - "pDCPatSgNB", - "pDCPatSgNB", - &asn_OP_NativeEnumerated, - asn_DEF_pDCPatSgNB_tags_2, - sizeof(asn_DEF_pDCPatSgNB_tags_2) - /sizeof(asn_DEF_pDCPatSgNB_tags_2[0]) - 1, /* 1 */ - asn_DEF_pDCPatSgNB_tags_2, /* Same as above */ - sizeof(asn_DEF_pDCPatSgNB_tags_2) - /sizeof(asn_DEF_pDCPatSgNB_tags_2[0]), /* 2 */ - { 0, &asn_PER_type_pDCPatSgNB_constr_2, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_pDCPatSgNB_specs_2 /* Additional specs */ -}; - -static const asn_INTEGER_enum_map_t asn_MAP_mCGresources_value2enum_6[] = { - { 0, 7, "present" }, - { 1, 11, "not-present" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_mCGresources_enum2value_6[] = { - 1, /* not-present(1) */ - 0 /* present(0) */ - /* This list is extensible */ -}; -static const asn_INTEGER_specifics_t asn_SPC_mCGresources_specs_6 = { - asn_MAP_mCGresources_value2enum_6, /* "tag" => N; sorted by tag */ - asn_MAP_mCGresources_enum2value_6, /* N => "tag"; sorted by N */ - 2, /* Number of elements in the maps */ - 3, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_mCGresources_tags_6[] = { - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_mCGresources_6 = { - "mCGresources", - "mCGresources", - &asn_OP_NativeEnumerated, - asn_DEF_mCGresources_tags_6, - sizeof(asn_DEF_mCGresources_tags_6) - /sizeof(asn_DEF_mCGresources_tags_6[0]) - 1, /* 1 */ - asn_DEF_mCGresources_tags_6, /* Same as above */ - sizeof(asn_DEF_mCGresources_tags_6) - /sizeof(asn_DEF_mCGresources_tags_6[0]), /* 2 */ - { 0, &asn_PER_type_mCGresources_constr_6, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_mCGresources_specs_6 /* Additional specs */ -}; - -static const asn_INTEGER_enum_map_t asn_MAP_sCGresources_value2enum_10[] = { - { 0, 7, "present" }, - { 1, 11, "not-present" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_sCGresources_enum2value_10[] = { - 1, /* not-present(1) */ - 0 /* present(0) */ - /* This list is extensible */ -}; -static const asn_INTEGER_specifics_t asn_SPC_sCGresources_specs_10 = { - asn_MAP_sCGresources_value2enum_10, /* "tag" => N; sorted by tag */ - asn_MAP_sCGresources_enum2value_10, /* N => "tag"; sorted by N */ - 2, /* Number of elements in the maps */ - 3, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_sCGresources_tags_10[] = { - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_sCGresources_10 = { - "sCGresources", - "sCGresources", - &asn_OP_NativeEnumerated, - asn_DEF_sCGresources_tags_10, - sizeof(asn_DEF_sCGresources_tags_10) - /sizeof(asn_DEF_sCGresources_tags_10[0]) - 1, /* 1 */ - asn_DEF_sCGresources_tags_10, /* Same as above */ - sizeof(asn_DEF_sCGresources_tags_10) - /sizeof(asn_DEF_sCGresources_tags_10[0]), /* 2 */ - { 0, &asn_PER_type_sCGresources_constr_10, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_sCGresources_specs_10 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_EN_DC_ResourceConfiguration_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct EN_DC_ResourceConfiguration, pDCPatSgNB), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_pDCPatSgNB_2, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "pDCPatSgNB" - }, - { ATF_NOFLAGS, 0, offsetof(struct EN_DC_ResourceConfiguration, mCGresources), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_mCGresources_6, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "mCGresources" - }, - { ATF_NOFLAGS, 0, offsetof(struct EN_DC_ResourceConfiguration, sCGresources), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_sCGresources_10, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "sCGresources" - }, - { ATF_POINTER, 1, offsetof(struct EN_DC_ResourceConfiguration, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P137, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_EN_DC_ResourceConfiguration_oms_1[] = { 3 }; -static const ber_tlv_tag_t asn_DEF_EN_DC_ResourceConfiguration_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_EN_DC_ResourceConfiguration_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pDCPatSgNB */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* mCGresources */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* sCGresources */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_EN_DC_ResourceConfiguration_specs_1 = { - sizeof(struct EN_DC_ResourceConfiguration), - offsetof(struct EN_DC_ResourceConfiguration, _asn_ctx), - asn_MAP_EN_DC_ResourceConfiguration_tag2el_1, - 4, /* Count of tags in the map */ - asn_MAP_EN_DC_ResourceConfiguration_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 4, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_EN_DC_ResourceConfiguration = { - "EN-DC-ResourceConfiguration", - "EN-DC-ResourceConfiguration", - &asn_OP_SEQUENCE, - asn_DEF_EN_DC_ResourceConfiguration_tags_1, - sizeof(asn_DEF_EN_DC_ResourceConfiguration_tags_1) - /sizeof(asn_DEF_EN_DC_ResourceConfiguration_tags_1[0]), /* 1 */ - asn_DEF_EN_DC_ResourceConfiguration_tags_1, /* Same as above */ - sizeof(asn_DEF_EN_DC_ResourceConfiguration_tags_1) - /sizeof(asn_DEF_EN_DC_ResourceConfiguration_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_EN_DC_ResourceConfiguration_1, - 4, /* Elements count */ - &asn_SPC_EN_DC_ResourceConfiguration_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/EN-DC-ResourceConfiguration.h b/e2sim/previous/ASN1c/EN-DC-ResourceConfiguration.h deleted file mode 100644 index c5fc3ae..0000000 --- a/e2sim/previous/ASN1c/EN-DC-ResourceConfiguration.h +++ /dev/null @@ -1,94 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _EN_DC_ResourceConfiguration_H_ -#define _EN_DC_ResourceConfiguration_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum EN_DC_ResourceConfiguration__pDCPatSgNB { - EN_DC_ResourceConfiguration__pDCPatSgNB_present = 0, - EN_DC_ResourceConfiguration__pDCPatSgNB_not_present = 1 - /* - * Enumeration is extensible - */ -} e_EN_DC_ResourceConfiguration__pDCPatSgNB; -typedef enum EN_DC_ResourceConfiguration__mCGresources { - EN_DC_ResourceConfiguration__mCGresources_present = 0, - EN_DC_ResourceConfiguration__mCGresources_not_present = 1 - /* - * Enumeration is extensible - */ -} e_EN_DC_ResourceConfiguration__mCGresources; -typedef enum EN_DC_ResourceConfiguration__sCGresources { - EN_DC_ResourceConfiguration__sCGresources_present = 0, - EN_DC_ResourceConfiguration__sCGresources_not_present = 1 - /* - * Enumeration is extensible - */ -} e_EN_DC_ResourceConfiguration__sCGresources; - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* EN-DC-ResourceConfiguration */ -typedef struct EN_DC_ResourceConfiguration { - long pDCPatSgNB; - long mCGresources; - long sCGresources; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} EN_DC_ResourceConfiguration_t; - -/* Implementation */ -/* extern asn_TYPE_descriptor_t asn_DEF_pDCPatSgNB_2; // (Use -fall-defs-global to expose) */ -/* extern asn_TYPE_descriptor_t asn_DEF_mCGresources_6; // (Use -fall-defs-global to expose) */ -/* extern asn_TYPE_descriptor_t asn_DEF_sCGresources_10; // (Use -fall-defs-global to expose) */ -extern asn_TYPE_descriptor_t asn_DEF_EN_DC_ResourceConfiguration; -extern asn_SEQUENCE_specifics_t asn_SPC_EN_DC_ResourceConfiguration_specs_1; -extern asn_TYPE_member_t asn_MBR_EN_DC_ResourceConfiguration_1[4]; - -#ifdef __cplusplus -} -#endif - -#endif /* _EN_DC_ResourceConfiguration_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/ENB-ID.c b/e2sim/previous/ASN1c/ENB-ID.c deleted file mode 100644 index 186f816..0000000 --- a/e2sim/previous/ASN1c/ENB-ID.c +++ /dev/null @@ -1,244 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "ENB-ID.h" - -static int -memb_macro_eNB_ID_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if(st->size > 0) { - /* Size in bits */ - size = 8 * st->size - (st->bits_unused & 0x07); - } else { - size = 0; - } - - if((size == 20)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_home_eNB_ID_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if(st->size > 0) { - /* Size in bits */ - size = 8 * st->size - (st->bits_unused & 0x07); - } else { - size = 0; - } - - if((size == 28)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_short_Macro_eNB_ID_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if(st->size > 0) { - /* Size in bits */ - size = 8 * st->size - (st->bits_unused & 0x07); - } else { - size = 0; - } - - if((size == 18)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_long_Macro_eNB_ID_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if(st->size > 0) { - /* Size in bits */ - size = 8 * st->size - (st->bits_unused & 0x07); - } else { - size = 0; - } - - if((size == 21)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_per_constraints_t asn_PER_memb_macro_eNB_ID_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 0, 0, 20, 20 } /* (SIZE(20..20)) */, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_home_eNB_ID_constr_3 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 0, 0, 28, 28 } /* (SIZE(28..28)) */, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_short_Macro_eNB_ID_constr_5 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 0, 0, 18, 18 } /* (SIZE(18..18)) */, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_long_Macro_eNB_ID_constr_6 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 0, 0, 21, 21 } /* (SIZE(21..21)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ENB_ID_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_ENB_ID_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct ENB_ID, choice.macro_eNB_ID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_BIT_STRING, - 0, - { 0, &asn_PER_memb_macro_eNB_ID_constr_2, memb_macro_eNB_ID_constraint_1 }, - 0, 0, /* No default value */ - "macro-eNB-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct ENB_ID, choice.home_eNB_ID), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_BIT_STRING, - 0, - { 0, &asn_PER_memb_home_eNB_ID_constr_3, memb_home_eNB_ID_constraint_1 }, - 0, 0, /* No default value */ - "home-eNB-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct ENB_ID, choice.short_Macro_eNB_ID), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_BIT_STRING, - 0, - { 0, &asn_PER_memb_short_Macro_eNB_ID_constr_5, memb_short_Macro_eNB_ID_constraint_1 }, - 0, 0, /* No default value */ - "short-Macro-eNB-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct ENB_ID, choice.long_Macro_eNB_ID), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_BIT_STRING, - 0, - { 0, &asn_PER_memb_long_Macro_eNB_ID_constr_6, memb_long_Macro_eNB_ID_constraint_1 }, - 0, 0, /* No default value */ - "long-Macro-eNB-ID" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_ENB_ID_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* macro-eNB-ID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* home-eNB-ID */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* short-Macro-eNB-ID */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* long-Macro-eNB-ID */ -}; -asn_CHOICE_specifics_t asn_SPC_ENB_ID_specs_1 = { - sizeof(struct ENB_ID), - offsetof(struct ENB_ID, _asn_ctx), - offsetof(struct ENB_ID, present), - sizeof(((struct ENB_ID *)0)->present), - asn_MAP_ENB_ID_tag2el_1, - 4, /* Count of tags in the map */ - 0, 0, - 2 /* Extensions start */ -}; -asn_TYPE_descriptor_t asn_DEF_ENB_ID = { - "ENB-ID", - "ENB-ID", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, &asn_PER_type_ENB_ID_constr_1, CHOICE_constraint }, - asn_MBR_ENB_ID_1, - 4, /* Elements count */ - &asn_SPC_ENB_ID_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/ENB-ID.h b/e2sim/previous/ASN1c/ENB-ID.h deleted file mode 100644 index d95a3e0..0000000 --- a/e2sim/previous/ASN1c/ENB-ID.h +++ /dev/null @@ -1,79 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _ENB_ID_H_ -#define _ENB_ID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "BIT_STRING.h" -#include "constr_CHOICE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum ENB_ID_PR { - ENB_ID_PR_NOTHING, /* No components present */ - ENB_ID_PR_macro_eNB_ID, - ENB_ID_PR_home_eNB_ID, - /* Extensions may appear below */ - ENB_ID_PR_short_Macro_eNB_ID, - ENB_ID_PR_long_Macro_eNB_ID -} ENB_ID_PR; - -/* ENB-ID */ -typedef struct ENB_ID { - ENB_ID_PR present; - union ENB_ID_u { - BIT_STRING_t macro_eNB_ID; - BIT_STRING_t home_eNB_ID; - /* - * This type is extensible, - * possible extensions are below. - */ - BIT_STRING_t short_Macro_eNB_ID; - BIT_STRING_t long_Macro_eNB_ID; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ENB_ID_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ENB_ID; -extern asn_CHOICE_specifics_t asn_SPC_ENB_ID_specs_1; -extern asn_TYPE_member_t asn_MBR_ENB_ID_1[4]; -extern asn_per_constraints_t asn_PER_type_ENB_ID_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _ENB_ID_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/ENBConfigurationUpdate.c b/e2sim/previous/ASN1c/ENBConfigurationUpdate.c deleted file mode 100644 index f8afc5a..0000000 --- a/e2sim/previous/ASN1c/ENBConfigurationUpdate.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "ENBConfigurationUpdate.h" - -asn_TYPE_member_t asn_MBR_ENBConfigurationUpdate_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct ENBConfigurationUpdate, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_119P28, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_ENBConfigurationUpdate_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ENBConfigurationUpdate_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ENBConfigurationUpdate_specs_1 = { - sizeof(struct ENBConfigurationUpdate), - offsetof(struct ENBConfigurationUpdate, _asn_ctx), - asn_MAP_ENBConfigurationUpdate_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ENBConfigurationUpdate = { - "ENBConfigurationUpdate", - "ENBConfigurationUpdate", - &asn_OP_SEQUENCE, - asn_DEF_ENBConfigurationUpdate_tags_1, - sizeof(asn_DEF_ENBConfigurationUpdate_tags_1) - /sizeof(asn_DEF_ENBConfigurationUpdate_tags_1[0]), /* 1 */ - asn_DEF_ENBConfigurationUpdate_tags_1, /* Same as above */ - sizeof(asn_DEF_ENBConfigurationUpdate_tags_1) - /sizeof(asn_DEF_ENBConfigurationUpdate_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ENBConfigurationUpdate_1, - 1, /* Elements count */ - &asn_SPC_ENBConfigurationUpdate_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/ENBConfigurationUpdate.h b/e2sim/previous/ASN1c/ENBConfigurationUpdate.h deleted file mode 100644 index 77d4564..0000000 --- a/e2sim/previous/ASN1c/ENBConfigurationUpdate.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _ENBConfigurationUpdate_H_ -#define _ENBConfigurationUpdate_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* ENBConfigurationUpdate */ -typedef struct ENBConfigurationUpdate { - ProtocolIE_Container_119P28_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ENBConfigurationUpdate_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ENBConfigurationUpdate; -extern asn_SEQUENCE_specifics_t asn_SPC_ENBConfigurationUpdate_specs_1; -extern asn_TYPE_member_t asn_MBR_ENBConfigurationUpdate_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _ENBConfigurationUpdate_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/ENBConfigurationUpdateAcknowledge.c b/e2sim/previous/ASN1c/ENBConfigurationUpdateAcknowledge.c deleted file mode 100644 index c914195..0000000 --- a/e2sim/previous/ASN1c/ENBConfigurationUpdateAcknowledge.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "ENBConfigurationUpdateAcknowledge.h" - -asn_TYPE_member_t asn_MBR_ENBConfigurationUpdateAcknowledge_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct ENBConfigurationUpdateAcknowledge, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_119P29, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_ENBConfigurationUpdateAcknowledge_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ENBConfigurationUpdateAcknowledge_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ENBConfigurationUpdateAcknowledge_specs_1 = { - sizeof(struct ENBConfigurationUpdateAcknowledge), - offsetof(struct ENBConfigurationUpdateAcknowledge, _asn_ctx), - asn_MAP_ENBConfigurationUpdateAcknowledge_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ENBConfigurationUpdateAcknowledge = { - "ENBConfigurationUpdateAcknowledge", - "ENBConfigurationUpdateAcknowledge", - &asn_OP_SEQUENCE, - asn_DEF_ENBConfigurationUpdateAcknowledge_tags_1, - sizeof(asn_DEF_ENBConfigurationUpdateAcknowledge_tags_1) - /sizeof(asn_DEF_ENBConfigurationUpdateAcknowledge_tags_1[0]), /* 1 */ - asn_DEF_ENBConfigurationUpdateAcknowledge_tags_1, /* Same as above */ - sizeof(asn_DEF_ENBConfigurationUpdateAcknowledge_tags_1) - /sizeof(asn_DEF_ENBConfigurationUpdateAcknowledge_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ENBConfigurationUpdateAcknowledge_1, - 1, /* Elements count */ - &asn_SPC_ENBConfigurationUpdateAcknowledge_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/ENBConfigurationUpdateAcknowledge.h b/e2sim/previous/ASN1c/ENBConfigurationUpdateAcknowledge.h deleted file mode 100644 index 13789da..0000000 --- a/e2sim/previous/ASN1c/ENBConfigurationUpdateAcknowledge.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _ENBConfigurationUpdateAcknowledge_H_ -#define _ENBConfigurationUpdateAcknowledge_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* ENBConfigurationUpdateAcknowledge */ -typedef struct ENBConfigurationUpdateAcknowledge { - ProtocolIE_Container_119P29_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ENBConfigurationUpdateAcknowledge_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ENBConfigurationUpdateAcknowledge; -extern asn_SEQUENCE_specifics_t asn_SPC_ENBConfigurationUpdateAcknowledge_specs_1; -extern asn_TYPE_member_t asn_MBR_ENBConfigurationUpdateAcknowledge_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _ENBConfigurationUpdateAcknowledge_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/ENBConfigurationUpdateFailure.c b/e2sim/previous/ASN1c/ENBConfigurationUpdateFailure.c deleted file mode 100644 index 90f7e4d..0000000 --- a/e2sim/previous/ASN1c/ENBConfigurationUpdateFailure.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "ENBConfigurationUpdateFailure.h" - -asn_TYPE_member_t asn_MBR_ENBConfigurationUpdateFailure_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct ENBConfigurationUpdateFailure, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_119P30, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_ENBConfigurationUpdateFailure_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ENBConfigurationUpdateFailure_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ENBConfigurationUpdateFailure_specs_1 = { - sizeof(struct ENBConfigurationUpdateFailure), - offsetof(struct ENBConfigurationUpdateFailure, _asn_ctx), - asn_MAP_ENBConfigurationUpdateFailure_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ENBConfigurationUpdateFailure = { - "ENBConfigurationUpdateFailure", - "ENBConfigurationUpdateFailure", - &asn_OP_SEQUENCE, - asn_DEF_ENBConfigurationUpdateFailure_tags_1, - sizeof(asn_DEF_ENBConfigurationUpdateFailure_tags_1) - /sizeof(asn_DEF_ENBConfigurationUpdateFailure_tags_1[0]), /* 1 */ - asn_DEF_ENBConfigurationUpdateFailure_tags_1, /* Same as above */ - sizeof(asn_DEF_ENBConfigurationUpdateFailure_tags_1) - /sizeof(asn_DEF_ENBConfigurationUpdateFailure_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ENBConfigurationUpdateFailure_1, - 1, /* Elements count */ - &asn_SPC_ENBConfigurationUpdateFailure_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/ENBConfigurationUpdateFailure.h b/e2sim/previous/ASN1c/ENBConfigurationUpdateFailure.h deleted file mode 100644 index 116da66..0000000 --- a/e2sim/previous/ASN1c/ENBConfigurationUpdateFailure.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _ENBConfigurationUpdateFailure_H_ -#define _ENBConfigurationUpdateFailure_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* ENBConfigurationUpdateFailure */ -typedef struct ENBConfigurationUpdateFailure { - ProtocolIE_Container_119P30_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ENBConfigurationUpdateFailure_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ENBConfigurationUpdateFailure; -extern asn_SEQUENCE_specifics_t asn_SPC_ENBConfigurationUpdateFailure_specs_1; -extern asn_TYPE_member_t asn_MBR_ENBConfigurationUpdateFailure_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _ENBConfigurationUpdateFailure_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/ENDCCellActivationFailure.c b/e2sim/previous/ASN1c/ENDCCellActivationFailure.c deleted file mode 100644 index d336ba8..0000000 --- a/e2sim/previous/ASN1c/ENDCCellActivationFailure.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "ENDCCellActivationFailure.h" - -static asn_TYPE_member_t asn_MBR_ENDCCellActivationFailure_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct ENDCCellActivationFailure, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_119P100, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_ENDCCellActivationFailure_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ENDCCellActivationFailure_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_ENDCCellActivationFailure_specs_1 = { - sizeof(struct ENDCCellActivationFailure), - offsetof(struct ENDCCellActivationFailure, _asn_ctx), - asn_MAP_ENDCCellActivationFailure_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ENDCCellActivationFailure = { - "ENDCCellActivationFailure", - "ENDCCellActivationFailure", - &asn_OP_SEQUENCE, - asn_DEF_ENDCCellActivationFailure_tags_1, - sizeof(asn_DEF_ENDCCellActivationFailure_tags_1) - /sizeof(asn_DEF_ENDCCellActivationFailure_tags_1[0]), /* 1 */ - asn_DEF_ENDCCellActivationFailure_tags_1, /* Same as above */ - sizeof(asn_DEF_ENDCCellActivationFailure_tags_1) - /sizeof(asn_DEF_ENDCCellActivationFailure_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ENDCCellActivationFailure_1, - 1, /* Elements count */ - &asn_SPC_ENDCCellActivationFailure_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/ENDCCellActivationFailure.h b/e2sim/previous/ASN1c/ENDCCellActivationFailure.h deleted file mode 100644 index 1388743..0000000 --- a/e2sim/previous/ASN1c/ENDCCellActivationFailure.h +++ /dev/null @@ -1,60 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _ENDCCellActivationFailure_H_ -#define _ENDCCellActivationFailure_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* ENDCCellActivationFailure */ -typedef struct ENDCCellActivationFailure { - ProtocolIE_Container_119P100_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ENDCCellActivationFailure_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ENDCCellActivationFailure; - -#ifdef __cplusplus -} -#endif - -#endif /* _ENDCCellActivationFailure_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/ENDCCellActivationRequest.c b/e2sim/previous/ASN1c/ENDCCellActivationRequest.c deleted file mode 100644 index 6aab46e..0000000 --- a/e2sim/previous/ASN1c/ENDCCellActivationRequest.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "ENDCCellActivationRequest.h" - -static asn_TYPE_member_t asn_MBR_ENDCCellActivationRequest_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct ENDCCellActivationRequest, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_119P98, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_ENDCCellActivationRequest_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ENDCCellActivationRequest_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_ENDCCellActivationRequest_specs_1 = { - sizeof(struct ENDCCellActivationRequest), - offsetof(struct ENDCCellActivationRequest, _asn_ctx), - asn_MAP_ENDCCellActivationRequest_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ENDCCellActivationRequest = { - "ENDCCellActivationRequest", - "ENDCCellActivationRequest", - &asn_OP_SEQUENCE, - asn_DEF_ENDCCellActivationRequest_tags_1, - sizeof(asn_DEF_ENDCCellActivationRequest_tags_1) - /sizeof(asn_DEF_ENDCCellActivationRequest_tags_1[0]), /* 1 */ - asn_DEF_ENDCCellActivationRequest_tags_1, /* Same as above */ - sizeof(asn_DEF_ENDCCellActivationRequest_tags_1) - /sizeof(asn_DEF_ENDCCellActivationRequest_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ENDCCellActivationRequest_1, - 1, /* Elements count */ - &asn_SPC_ENDCCellActivationRequest_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/ENDCCellActivationRequest.h b/e2sim/previous/ASN1c/ENDCCellActivationRequest.h deleted file mode 100644 index d8ec59d..0000000 --- a/e2sim/previous/ASN1c/ENDCCellActivationRequest.h +++ /dev/null @@ -1,60 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _ENDCCellActivationRequest_H_ -#define _ENDCCellActivationRequest_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* ENDCCellActivationRequest */ -typedef struct ENDCCellActivationRequest { - ProtocolIE_Container_119P98_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ENDCCellActivationRequest_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ENDCCellActivationRequest; - -#ifdef __cplusplus -} -#endif - -#endif /* _ENDCCellActivationRequest_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/ENDCCellActivationResponse.c b/e2sim/previous/ASN1c/ENDCCellActivationResponse.c deleted file mode 100644 index 49c3ed6..0000000 --- a/e2sim/previous/ASN1c/ENDCCellActivationResponse.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "ENDCCellActivationResponse.h" - -static asn_TYPE_member_t asn_MBR_ENDCCellActivationResponse_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct ENDCCellActivationResponse, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_119P99, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_ENDCCellActivationResponse_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ENDCCellActivationResponse_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_ENDCCellActivationResponse_specs_1 = { - sizeof(struct ENDCCellActivationResponse), - offsetof(struct ENDCCellActivationResponse, _asn_ctx), - asn_MAP_ENDCCellActivationResponse_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ENDCCellActivationResponse = { - "ENDCCellActivationResponse", - "ENDCCellActivationResponse", - &asn_OP_SEQUENCE, - asn_DEF_ENDCCellActivationResponse_tags_1, - sizeof(asn_DEF_ENDCCellActivationResponse_tags_1) - /sizeof(asn_DEF_ENDCCellActivationResponse_tags_1[0]), /* 1 */ - asn_DEF_ENDCCellActivationResponse_tags_1, /* Same as above */ - sizeof(asn_DEF_ENDCCellActivationResponse_tags_1) - /sizeof(asn_DEF_ENDCCellActivationResponse_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ENDCCellActivationResponse_1, - 1, /* Elements count */ - &asn_SPC_ENDCCellActivationResponse_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/ENDCCellActivationResponse.h b/e2sim/previous/ASN1c/ENDCCellActivationResponse.h deleted file mode 100644 index fd1239b..0000000 --- a/e2sim/previous/ASN1c/ENDCCellActivationResponse.h +++ /dev/null @@ -1,60 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _ENDCCellActivationResponse_H_ -#define _ENDCCellActivationResponse_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* ENDCCellActivationResponse */ -typedef struct ENDCCellActivationResponse { - ProtocolIE_Container_119P99_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ENDCCellActivationResponse_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ENDCCellActivationResponse; - -#ifdef __cplusplus -} -#endif - -#endif /* _ENDCCellActivationResponse_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/ENDCConfigurationUpdate.c b/e2sim/previous/ASN1c/ENDCConfigurationUpdate.c deleted file mode 100644 index 638672b..0000000 --- a/e2sim/previous/ASN1c/ENDCConfigurationUpdate.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "ENDCConfigurationUpdate.h" - -asn_TYPE_member_t asn_MBR_ENDCConfigurationUpdate_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct ENDCConfigurationUpdate, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_119P91, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_ENDCConfigurationUpdate_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ENDCConfigurationUpdate_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ENDCConfigurationUpdate_specs_1 = { - sizeof(struct ENDCConfigurationUpdate), - offsetof(struct ENDCConfigurationUpdate, _asn_ctx), - asn_MAP_ENDCConfigurationUpdate_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ENDCConfigurationUpdate = { - "ENDCConfigurationUpdate", - "ENDCConfigurationUpdate", - &asn_OP_SEQUENCE, - asn_DEF_ENDCConfigurationUpdate_tags_1, - sizeof(asn_DEF_ENDCConfigurationUpdate_tags_1) - /sizeof(asn_DEF_ENDCConfigurationUpdate_tags_1[0]), /* 1 */ - asn_DEF_ENDCConfigurationUpdate_tags_1, /* Same as above */ - sizeof(asn_DEF_ENDCConfigurationUpdate_tags_1) - /sizeof(asn_DEF_ENDCConfigurationUpdate_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ENDCConfigurationUpdate_1, - 1, /* Elements count */ - &asn_SPC_ENDCConfigurationUpdate_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/ENDCConfigurationUpdate.h b/e2sim/previous/ASN1c/ENDCConfigurationUpdate.h deleted file mode 100644 index f3bfeff..0000000 --- a/e2sim/previous/ASN1c/ENDCConfigurationUpdate.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _ENDCConfigurationUpdate_H_ -#define _ENDCConfigurationUpdate_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* ENDCConfigurationUpdate */ -typedef struct ENDCConfigurationUpdate { - ProtocolIE_Container_119P91_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ENDCConfigurationUpdate_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ENDCConfigurationUpdate; -extern asn_SEQUENCE_specifics_t asn_SPC_ENDCConfigurationUpdate_specs_1; -extern asn_TYPE_member_t asn_MBR_ENDCConfigurationUpdate_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _ENDCConfigurationUpdate_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/ENDCConfigurationUpdateAcknowledge.c b/e2sim/previous/ASN1c/ENDCConfigurationUpdateAcknowledge.c deleted file mode 100644 index 29f604f..0000000 --- a/e2sim/previous/ASN1c/ENDCConfigurationUpdateAcknowledge.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "ENDCConfigurationUpdateAcknowledge.h" - -asn_TYPE_member_t asn_MBR_ENDCConfigurationUpdateAcknowledge_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct ENDCConfigurationUpdateAcknowledge, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_119P94, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_ENDCConfigurationUpdateAcknowledge_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ENDCConfigurationUpdateAcknowledge_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ENDCConfigurationUpdateAcknowledge_specs_1 = { - sizeof(struct ENDCConfigurationUpdateAcknowledge), - offsetof(struct ENDCConfigurationUpdateAcknowledge, _asn_ctx), - asn_MAP_ENDCConfigurationUpdateAcknowledge_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ENDCConfigurationUpdateAcknowledge = { - "ENDCConfigurationUpdateAcknowledge", - "ENDCConfigurationUpdateAcknowledge", - &asn_OP_SEQUENCE, - asn_DEF_ENDCConfigurationUpdateAcknowledge_tags_1, - sizeof(asn_DEF_ENDCConfigurationUpdateAcknowledge_tags_1) - /sizeof(asn_DEF_ENDCConfigurationUpdateAcknowledge_tags_1[0]), /* 1 */ - asn_DEF_ENDCConfigurationUpdateAcknowledge_tags_1, /* Same as above */ - sizeof(asn_DEF_ENDCConfigurationUpdateAcknowledge_tags_1) - /sizeof(asn_DEF_ENDCConfigurationUpdateAcknowledge_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ENDCConfigurationUpdateAcknowledge_1, - 1, /* Elements count */ - &asn_SPC_ENDCConfigurationUpdateAcknowledge_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/ENDCConfigurationUpdateAcknowledge.h b/e2sim/previous/ASN1c/ENDCConfigurationUpdateAcknowledge.h deleted file mode 100644 index e336372..0000000 --- a/e2sim/previous/ASN1c/ENDCConfigurationUpdateAcknowledge.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _ENDCConfigurationUpdateAcknowledge_H_ -#define _ENDCConfigurationUpdateAcknowledge_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* ENDCConfigurationUpdateAcknowledge */ -typedef struct ENDCConfigurationUpdateAcknowledge { - ProtocolIE_Container_119P94_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ENDCConfigurationUpdateAcknowledge_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ENDCConfigurationUpdateAcknowledge; -extern asn_SEQUENCE_specifics_t asn_SPC_ENDCConfigurationUpdateAcknowledge_specs_1; -extern asn_TYPE_member_t asn_MBR_ENDCConfigurationUpdateAcknowledge_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _ENDCConfigurationUpdateAcknowledge_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/ENDCConfigurationUpdateFailure.c b/e2sim/previous/ASN1c/ENDCConfigurationUpdateFailure.c deleted file mode 100644 index 33207e2..0000000 --- a/e2sim/previous/ASN1c/ENDCConfigurationUpdateFailure.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "ENDCConfigurationUpdateFailure.h" - -asn_TYPE_member_t asn_MBR_ENDCConfigurationUpdateFailure_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct ENDCConfigurationUpdateFailure, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_119P97, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_ENDCConfigurationUpdateFailure_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ENDCConfigurationUpdateFailure_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ENDCConfigurationUpdateFailure_specs_1 = { - sizeof(struct ENDCConfigurationUpdateFailure), - offsetof(struct ENDCConfigurationUpdateFailure, _asn_ctx), - asn_MAP_ENDCConfigurationUpdateFailure_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ENDCConfigurationUpdateFailure = { - "ENDCConfigurationUpdateFailure", - "ENDCConfigurationUpdateFailure", - &asn_OP_SEQUENCE, - asn_DEF_ENDCConfigurationUpdateFailure_tags_1, - sizeof(asn_DEF_ENDCConfigurationUpdateFailure_tags_1) - /sizeof(asn_DEF_ENDCConfigurationUpdateFailure_tags_1[0]), /* 1 */ - asn_DEF_ENDCConfigurationUpdateFailure_tags_1, /* Same as above */ - sizeof(asn_DEF_ENDCConfigurationUpdateFailure_tags_1) - /sizeof(asn_DEF_ENDCConfigurationUpdateFailure_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ENDCConfigurationUpdateFailure_1, - 1, /* Elements count */ - &asn_SPC_ENDCConfigurationUpdateFailure_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/ENDCConfigurationUpdateFailure.h b/e2sim/previous/ASN1c/ENDCConfigurationUpdateFailure.h deleted file mode 100644 index 5f9fb4d..0000000 --- a/e2sim/previous/ASN1c/ENDCConfigurationUpdateFailure.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _ENDCConfigurationUpdateFailure_H_ -#define _ENDCConfigurationUpdateFailure_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* ENDCConfigurationUpdateFailure */ -typedef struct ENDCConfigurationUpdateFailure { - ProtocolIE_Container_119P97_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ENDCConfigurationUpdateFailure_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ENDCConfigurationUpdateFailure; -extern asn_SEQUENCE_specifics_t asn_SPC_ENDCConfigurationUpdateFailure_specs_1; -extern asn_TYPE_member_t asn_MBR_ENDCConfigurationUpdateFailure_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _ENDCConfigurationUpdateFailure_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/ENDCPartialResetConfirm.c b/e2sim/previous/ASN1c/ENDCPartialResetConfirm.c deleted file mode 100644 index b0c6e9e..0000000 --- a/e2sim/previous/ASN1c/ENDCPartialResetConfirm.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "ENDCPartialResetConfirm.h" - -static asn_TYPE_member_t asn_MBR_ENDCPartialResetConfirm_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct ENDCPartialResetConfirm, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_119P104, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_ENDCPartialResetConfirm_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ENDCPartialResetConfirm_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_ENDCPartialResetConfirm_specs_1 = { - sizeof(struct ENDCPartialResetConfirm), - offsetof(struct ENDCPartialResetConfirm, _asn_ctx), - asn_MAP_ENDCPartialResetConfirm_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ENDCPartialResetConfirm = { - "ENDCPartialResetConfirm", - "ENDCPartialResetConfirm", - &asn_OP_SEQUENCE, - asn_DEF_ENDCPartialResetConfirm_tags_1, - sizeof(asn_DEF_ENDCPartialResetConfirm_tags_1) - /sizeof(asn_DEF_ENDCPartialResetConfirm_tags_1[0]), /* 1 */ - asn_DEF_ENDCPartialResetConfirm_tags_1, /* Same as above */ - sizeof(asn_DEF_ENDCPartialResetConfirm_tags_1) - /sizeof(asn_DEF_ENDCPartialResetConfirm_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ENDCPartialResetConfirm_1, - 1, /* Elements count */ - &asn_SPC_ENDCPartialResetConfirm_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/ENDCPartialResetConfirm.h b/e2sim/previous/ASN1c/ENDCPartialResetConfirm.h deleted file mode 100644 index e913947..0000000 --- a/e2sim/previous/ASN1c/ENDCPartialResetConfirm.h +++ /dev/null @@ -1,60 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _ENDCPartialResetConfirm_H_ -#define _ENDCPartialResetConfirm_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* ENDCPartialResetConfirm */ -typedef struct ENDCPartialResetConfirm { - ProtocolIE_Container_119P104_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ENDCPartialResetConfirm_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ENDCPartialResetConfirm; - -#ifdef __cplusplus -} -#endif - -#endif /* _ENDCPartialResetConfirm_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/ENDCPartialResetRequired.c b/e2sim/previous/ASN1c/ENDCPartialResetRequired.c deleted file mode 100644 index 0115910..0000000 --- a/e2sim/previous/ASN1c/ENDCPartialResetRequired.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "ENDCPartialResetRequired.h" - -static asn_TYPE_member_t asn_MBR_ENDCPartialResetRequired_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct ENDCPartialResetRequired, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_119P103, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_ENDCPartialResetRequired_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ENDCPartialResetRequired_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_ENDCPartialResetRequired_specs_1 = { - sizeof(struct ENDCPartialResetRequired), - offsetof(struct ENDCPartialResetRequired, _asn_ctx), - asn_MAP_ENDCPartialResetRequired_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ENDCPartialResetRequired = { - "ENDCPartialResetRequired", - "ENDCPartialResetRequired", - &asn_OP_SEQUENCE, - asn_DEF_ENDCPartialResetRequired_tags_1, - sizeof(asn_DEF_ENDCPartialResetRequired_tags_1) - /sizeof(asn_DEF_ENDCPartialResetRequired_tags_1[0]), /* 1 */ - asn_DEF_ENDCPartialResetRequired_tags_1, /* Same as above */ - sizeof(asn_DEF_ENDCPartialResetRequired_tags_1) - /sizeof(asn_DEF_ENDCPartialResetRequired_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ENDCPartialResetRequired_1, - 1, /* Elements count */ - &asn_SPC_ENDCPartialResetRequired_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/ENDCPartialResetRequired.h b/e2sim/previous/ASN1c/ENDCPartialResetRequired.h deleted file mode 100644 index 982b9e2..0000000 --- a/e2sim/previous/ASN1c/ENDCPartialResetRequired.h +++ /dev/null @@ -1,60 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _ENDCPartialResetRequired_H_ -#define _ENDCPartialResetRequired_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* ENDCPartialResetRequired */ -typedef struct ENDCPartialResetRequired { - ProtocolIE_Container_119P103_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ENDCPartialResetRequired_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ENDCPartialResetRequired; - -#ifdef __cplusplus -} -#endif - -#endif /* _ENDCPartialResetRequired_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/ENDCX2RemovalFailure.c b/e2sim/previous/ASN1c/ENDCX2RemovalFailure.c deleted file mode 100644 index 7dfd4f6..0000000 --- a/e2sim/previous/ASN1c/ENDCX2RemovalFailure.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "ENDCX2RemovalFailure.h" - -static asn_TYPE_member_t asn_MBR_ENDCX2RemovalFailure_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct ENDCX2RemovalFailure, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_119P117, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_ENDCX2RemovalFailure_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ENDCX2RemovalFailure_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_ENDCX2RemovalFailure_specs_1 = { - sizeof(struct ENDCX2RemovalFailure), - offsetof(struct ENDCX2RemovalFailure, _asn_ctx), - asn_MAP_ENDCX2RemovalFailure_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ENDCX2RemovalFailure = { - "ENDCX2RemovalFailure", - "ENDCX2RemovalFailure", - &asn_OP_SEQUENCE, - asn_DEF_ENDCX2RemovalFailure_tags_1, - sizeof(asn_DEF_ENDCX2RemovalFailure_tags_1) - /sizeof(asn_DEF_ENDCX2RemovalFailure_tags_1[0]), /* 1 */ - asn_DEF_ENDCX2RemovalFailure_tags_1, /* Same as above */ - sizeof(asn_DEF_ENDCX2RemovalFailure_tags_1) - /sizeof(asn_DEF_ENDCX2RemovalFailure_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ENDCX2RemovalFailure_1, - 1, /* Elements count */ - &asn_SPC_ENDCX2RemovalFailure_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/ENDCX2RemovalFailure.h b/e2sim/previous/ASN1c/ENDCX2RemovalFailure.h deleted file mode 100644 index 20eb789..0000000 --- a/e2sim/previous/ASN1c/ENDCX2RemovalFailure.h +++ /dev/null @@ -1,60 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _ENDCX2RemovalFailure_H_ -#define _ENDCX2RemovalFailure_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* ENDCX2RemovalFailure */ -typedef struct ENDCX2RemovalFailure { - ProtocolIE_Container_119P117_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ENDCX2RemovalFailure_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ENDCX2RemovalFailure; - -#ifdef __cplusplus -} -#endif - -#endif /* _ENDCX2RemovalFailure_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/ENDCX2RemovalRequest.c b/e2sim/previous/ASN1c/ENDCX2RemovalRequest.c deleted file mode 100644 index bb27762..0000000 --- a/e2sim/previous/ASN1c/ENDCX2RemovalRequest.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "ENDCX2RemovalRequest.h" - -static asn_TYPE_member_t asn_MBR_ENDCX2RemovalRequest_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct ENDCX2RemovalRequest, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_119P111, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_ENDCX2RemovalRequest_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ENDCX2RemovalRequest_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_ENDCX2RemovalRequest_specs_1 = { - sizeof(struct ENDCX2RemovalRequest), - offsetof(struct ENDCX2RemovalRequest, _asn_ctx), - asn_MAP_ENDCX2RemovalRequest_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ENDCX2RemovalRequest = { - "ENDCX2RemovalRequest", - "ENDCX2RemovalRequest", - &asn_OP_SEQUENCE, - asn_DEF_ENDCX2RemovalRequest_tags_1, - sizeof(asn_DEF_ENDCX2RemovalRequest_tags_1) - /sizeof(asn_DEF_ENDCX2RemovalRequest_tags_1[0]), /* 1 */ - asn_DEF_ENDCX2RemovalRequest_tags_1, /* Same as above */ - sizeof(asn_DEF_ENDCX2RemovalRequest_tags_1) - /sizeof(asn_DEF_ENDCX2RemovalRequest_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ENDCX2RemovalRequest_1, - 1, /* Elements count */ - &asn_SPC_ENDCX2RemovalRequest_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/ENDCX2RemovalRequest.h b/e2sim/previous/ASN1c/ENDCX2RemovalRequest.h deleted file mode 100644 index 82cdc7f..0000000 --- a/e2sim/previous/ASN1c/ENDCX2RemovalRequest.h +++ /dev/null @@ -1,60 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _ENDCX2RemovalRequest_H_ -#define _ENDCX2RemovalRequest_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* ENDCX2RemovalRequest */ -typedef struct ENDCX2RemovalRequest { - ProtocolIE_Container_119P111_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ENDCX2RemovalRequest_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ENDCX2RemovalRequest; - -#ifdef __cplusplus -} -#endif - -#endif /* _ENDCX2RemovalRequest_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/ENDCX2RemovalResponse.c b/e2sim/previous/ASN1c/ENDCX2RemovalResponse.c deleted file mode 100644 index 6a088f5..0000000 --- a/e2sim/previous/ASN1c/ENDCX2RemovalResponse.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "ENDCX2RemovalResponse.h" - -static asn_TYPE_member_t asn_MBR_ENDCX2RemovalResponse_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct ENDCX2RemovalResponse, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_119P114, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_ENDCX2RemovalResponse_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ENDCX2RemovalResponse_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_ENDCX2RemovalResponse_specs_1 = { - sizeof(struct ENDCX2RemovalResponse), - offsetof(struct ENDCX2RemovalResponse, _asn_ctx), - asn_MAP_ENDCX2RemovalResponse_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ENDCX2RemovalResponse = { - "ENDCX2RemovalResponse", - "ENDCX2RemovalResponse", - &asn_OP_SEQUENCE, - asn_DEF_ENDCX2RemovalResponse_tags_1, - sizeof(asn_DEF_ENDCX2RemovalResponse_tags_1) - /sizeof(asn_DEF_ENDCX2RemovalResponse_tags_1[0]), /* 1 */ - asn_DEF_ENDCX2RemovalResponse_tags_1, /* Same as above */ - sizeof(asn_DEF_ENDCX2RemovalResponse_tags_1) - /sizeof(asn_DEF_ENDCX2RemovalResponse_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ENDCX2RemovalResponse_1, - 1, /* Elements count */ - &asn_SPC_ENDCX2RemovalResponse_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/ENDCX2RemovalResponse.h b/e2sim/previous/ASN1c/ENDCX2RemovalResponse.h deleted file mode 100644 index ecc9df5..0000000 --- a/e2sim/previous/ASN1c/ENDCX2RemovalResponse.h +++ /dev/null @@ -1,60 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _ENDCX2RemovalResponse_H_ -#define _ENDCX2RemovalResponse_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* ENDCX2RemovalResponse */ -typedef struct ENDCX2RemovalResponse { - ProtocolIE_Container_119P114_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ENDCX2RemovalResponse_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ENDCX2RemovalResponse; - -#ifdef __cplusplus -} -#endif - -#endif /* _ENDCX2RemovalResponse_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/ENDCX2SetupFailure.c b/e2sim/previous/ASN1c/ENDCX2SetupFailure.c deleted file mode 100644 index b12555f..0000000 --- a/e2sim/previous/ASN1c/ENDCX2SetupFailure.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "ENDCX2SetupFailure.h" - -asn_TYPE_member_t asn_MBR_ENDCX2SetupFailure_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct ENDCX2SetupFailure, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_119P90, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_ENDCX2SetupFailure_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ENDCX2SetupFailure_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ENDCX2SetupFailure_specs_1 = { - sizeof(struct ENDCX2SetupFailure), - offsetof(struct ENDCX2SetupFailure, _asn_ctx), - asn_MAP_ENDCX2SetupFailure_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ENDCX2SetupFailure = { - "ENDCX2SetupFailure", - "ENDCX2SetupFailure", - &asn_OP_SEQUENCE, - asn_DEF_ENDCX2SetupFailure_tags_1, - sizeof(asn_DEF_ENDCX2SetupFailure_tags_1) - /sizeof(asn_DEF_ENDCX2SetupFailure_tags_1[0]), /* 1 */ - asn_DEF_ENDCX2SetupFailure_tags_1, /* Same as above */ - sizeof(asn_DEF_ENDCX2SetupFailure_tags_1) - /sizeof(asn_DEF_ENDCX2SetupFailure_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ENDCX2SetupFailure_1, - 1, /* Elements count */ - &asn_SPC_ENDCX2SetupFailure_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/ENDCX2SetupFailure.h b/e2sim/previous/ASN1c/ENDCX2SetupFailure.h deleted file mode 100644 index 8ef320a..0000000 --- a/e2sim/previous/ASN1c/ENDCX2SetupFailure.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _ENDCX2SetupFailure_H_ -#define _ENDCX2SetupFailure_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* ENDCX2SetupFailure */ -typedef struct ENDCX2SetupFailure { - ProtocolIE_Container_119P90_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ENDCX2SetupFailure_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ENDCX2SetupFailure; -extern asn_SEQUENCE_specifics_t asn_SPC_ENDCX2SetupFailure_specs_1; -extern asn_TYPE_member_t asn_MBR_ENDCX2SetupFailure_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _ENDCX2SetupFailure_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/ENDCX2SetupRequest.c b/e2sim/previous/ASN1c/ENDCX2SetupRequest.c deleted file mode 100644 index 50bc7c1..0000000 --- a/e2sim/previous/ASN1c/ENDCX2SetupRequest.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "ENDCX2SetupRequest.h" - -asn_TYPE_member_t asn_MBR_ENDCX2SetupRequest_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct ENDCX2SetupRequest, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_119P84, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_ENDCX2SetupRequest_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ENDCX2SetupRequest_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ENDCX2SetupRequest_specs_1 = { - sizeof(struct ENDCX2SetupRequest), - offsetof(struct ENDCX2SetupRequest, _asn_ctx), - asn_MAP_ENDCX2SetupRequest_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ENDCX2SetupRequest = { - "ENDCX2SetupRequest", - "ENDCX2SetupRequest", - &asn_OP_SEQUENCE, - asn_DEF_ENDCX2SetupRequest_tags_1, - sizeof(asn_DEF_ENDCX2SetupRequest_tags_1) - /sizeof(asn_DEF_ENDCX2SetupRequest_tags_1[0]), /* 1 */ - asn_DEF_ENDCX2SetupRequest_tags_1, /* Same as above */ - sizeof(asn_DEF_ENDCX2SetupRequest_tags_1) - /sizeof(asn_DEF_ENDCX2SetupRequest_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ENDCX2SetupRequest_1, - 1, /* Elements count */ - &asn_SPC_ENDCX2SetupRequest_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/ENDCX2SetupRequest.h b/e2sim/previous/ASN1c/ENDCX2SetupRequest.h deleted file mode 100644 index bbd4cc6..0000000 --- a/e2sim/previous/ASN1c/ENDCX2SetupRequest.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _ENDCX2SetupRequest_H_ -#define _ENDCX2SetupRequest_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* ENDCX2SetupRequest */ -typedef struct ENDCX2SetupRequest { - ProtocolIE_Container_119P84_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ENDCX2SetupRequest_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ENDCX2SetupRequest; -extern asn_SEQUENCE_specifics_t asn_SPC_ENDCX2SetupRequest_specs_1; -extern asn_TYPE_member_t asn_MBR_ENDCX2SetupRequest_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _ENDCX2SetupRequest_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/ENDCX2SetupResponse.c b/e2sim/previous/ASN1c/ENDCX2SetupResponse.c deleted file mode 100644 index a74bc9c..0000000 --- a/e2sim/previous/ASN1c/ENDCX2SetupResponse.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "ENDCX2SetupResponse.h" - -asn_TYPE_member_t asn_MBR_ENDCX2SetupResponse_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct ENDCX2SetupResponse, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_119P87, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_ENDCX2SetupResponse_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ENDCX2SetupResponse_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ENDCX2SetupResponse_specs_1 = { - sizeof(struct ENDCX2SetupResponse), - offsetof(struct ENDCX2SetupResponse, _asn_ctx), - asn_MAP_ENDCX2SetupResponse_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ENDCX2SetupResponse = { - "ENDCX2SetupResponse", - "ENDCX2SetupResponse", - &asn_OP_SEQUENCE, - asn_DEF_ENDCX2SetupResponse_tags_1, - sizeof(asn_DEF_ENDCX2SetupResponse_tags_1) - /sizeof(asn_DEF_ENDCX2SetupResponse_tags_1[0]), /* 1 */ - asn_DEF_ENDCX2SetupResponse_tags_1, /* Same as above */ - sizeof(asn_DEF_ENDCX2SetupResponse_tags_1) - /sizeof(asn_DEF_ENDCX2SetupResponse_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ENDCX2SetupResponse_1, - 1, /* Elements count */ - &asn_SPC_ENDCX2SetupResponse_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/ENDCX2SetupResponse.h b/e2sim/previous/ASN1c/ENDCX2SetupResponse.h deleted file mode 100644 index bcf07e8..0000000 --- a/e2sim/previous/ASN1c/ENDCX2SetupResponse.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _ENDCX2SetupResponse_H_ -#define _ENDCX2SetupResponse_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* ENDCX2SetupResponse */ -typedef struct ENDCX2SetupResponse { - ProtocolIE_Container_119P87_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ENDCX2SetupResponse_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ENDCX2SetupResponse; -extern asn_SEQUENCE_specifics_t asn_SPC_ENDCX2SetupResponse_specs_1; -extern asn_TYPE_member_t asn_MBR_ENDCX2SetupResponse_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _ENDCX2SetupResponse_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/EPLMNs.c b/e2sim/previous/ASN1c/EPLMNs.c deleted file mode 100644 index 086e8ed..0000000 --- a/e2sim/previous/ASN1c/EPLMNs.c +++ /dev/null @@ -1,67 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "EPLMNs.h" - -asn_per_constraints_t asn_PER_type_EPLMNs_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 4, 4, 1, 15 } /* (SIZE(1..15)) */, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_EPLMNs_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), - 0, - &asn_DEF_PLMN_Identity, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_EPLMNs_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_EPLMNs_specs_1 = { - sizeof(struct EPLMNs), - offsetof(struct EPLMNs, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_EPLMNs = { - "EPLMNs", - "EPLMNs", - &asn_OP_SEQUENCE_OF, - asn_DEF_EPLMNs_tags_1, - sizeof(asn_DEF_EPLMNs_tags_1) - /sizeof(asn_DEF_EPLMNs_tags_1[0]), /* 1 */ - asn_DEF_EPLMNs_tags_1, /* Same as above */ - sizeof(asn_DEF_EPLMNs_tags_1) - /sizeof(asn_DEF_EPLMNs_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_EPLMNs_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_EPLMNs_1, - 1, /* Single element */ - &asn_SPC_EPLMNs_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/EPLMNs.h b/e2sim/previous/ASN1c/EPLMNs.h deleted file mode 100644 index 79002f1..0000000 --- a/e2sim/previous/ASN1c/EPLMNs.h +++ /dev/null @@ -1,60 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _EPLMNs_H_ -#define _EPLMNs_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "PLMN-Identity.h" -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* EPLMNs */ -typedef struct EPLMNs { - A_SEQUENCE_OF(PLMN_Identity_t) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} EPLMNs_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_EPLMNs; -extern asn_SET_OF_specifics_t asn_SPC_EPLMNs_specs_1; -extern asn_TYPE_member_t asn_MBR_EPLMNs_1[1]; -extern asn_per_constraints_t asn_PER_type_EPLMNs_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _EPLMNs_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/ERABActivityNotifyItem.c b/e2sim/previous/ASN1c/ERABActivityNotifyItem.c deleted file mode 100644 index 46d87d6..0000000 --- a/e2sim/previous/ASN1c/ERABActivityNotifyItem.c +++ /dev/null @@ -1,91 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "ERABActivityNotifyItem.h" - -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_ERABActivityNotifyItem_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct ERABActivityNotifyItem, e_RAB_ID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E_RAB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "e-RAB-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct ERABActivityNotifyItem, activityReport), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_UserPlaneTrafficActivityReport, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "activityReport" - }, - { ATF_POINTER, 1, offsetof(struct ERABActivityNotifyItem, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P138, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_ERABActivityNotifyItem_oms_1[] = { 2 }; -static const ber_tlv_tag_t asn_DEF_ERABActivityNotifyItem_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ERABActivityNotifyItem_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e-RAB-ID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* activityReport */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ERABActivityNotifyItem_specs_1 = { - sizeof(struct ERABActivityNotifyItem), - offsetof(struct ERABActivityNotifyItem, _asn_ctx), - asn_MAP_ERABActivityNotifyItem_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_ERABActivityNotifyItem_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ERABActivityNotifyItem = { - "ERABActivityNotifyItem", - "ERABActivityNotifyItem", - &asn_OP_SEQUENCE, - asn_DEF_ERABActivityNotifyItem_tags_1, - sizeof(asn_DEF_ERABActivityNotifyItem_tags_1) - /sizeof(asn_DEF_ERABActivityNotifyItem_tags_1[0]), /* 1 */ - asn_DEF_ERABActivityNotifyItem_tags_1, /* Same as above */ - sizeof(asn_DEF_ERABActivityNotifyItem_tags_1) - /sizeof(asn_DEF_ERABActivityNotifyItem_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ERABActivityNotifyItem_1, - 3, /* Elements count */ - &asn_SPC_ERABActivityNotifyItem_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/ERABActivityNotifyItem.h b/e2sim/previous/ASN1c/ERABActivityNotifyItem.h deleted file mode 100644 index 4938c84..0000000 --- a/e2sim/previous/ASN1c/ERABActivityNotifyItem.h +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _ERABActivityNotifyItem_H_ -#define _ERABActivityNotifyItem_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "E-RAB-ID.h" -#include "UserPlaneTrafficActivityReport.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* ERABActivityNotifyItem */ -typedef struct ERABActivityNotifyItem { - E_RAB_ID_t e_RAB_ID; - UserPlaneTrafficActivityReport_t activityReport; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ERABActivityNotifyItem_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ERABActivityNotifyItem; -extern asn_SEQUENCE_specifics_t asn_SPC_ERABActivityNotifyItem_specs_1; -extern asn_TYPE_member_t asn_MBR_ERABActivityNotifyItem_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _ERABActivityNotifyItem_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/ERABActivityNotifyItemList.c b/e2sim/previous/ASN1c/ERABActivityNotifyItemList.c deleted file mode 100644 index 87f0158..0000000 --- a/e2sim/previous/ASN1c/ERABActivityNotifyItemList.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "ERABActivityNotifyItemList.h" - -#include "ERABActivityNotifyItem.h" -asn_per_constraints_t asn_PER_type_ERABActivityNotifyItemList_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 9, 9, 0, 256 } /* (SIZE(0..256)) */, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_ERABActivityNotifyItemList_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ERABActivityNotifyItem, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ERABActivityNotifyItemList_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ERABActivityNotifyItemList_specs_1 = { - sizeof(struct ERABActivityNotifyItemList), - offsetof(struct ERABActivityNotifyItemList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ERABActivityNotifyItemList = { - "ERABActivityNotifyItemList", - "ERABActivityNotifyItemList", - &asn_OP_SEQUENCE_OF, - asn_DEF_ERABActivityNotifyItemList_tags_1, - sizeof(asn_DEF_ERABActivityNotifyItemList_tags_1) - /sizeof(asn_DEF_ERABActivityNotifyItemList_tags_1[0]), /* 1 */ - asn_DEF_ERABActivityNotifyItemList_tags_1, /* Same as above */ - sizeof(asn_DEF_ERABActivityNotifyItemList_tags_1) - /sizeof(asn_DEF_ERABActivityNotifyItemList_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_ERABActivityNotifyItemList_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_ERABActivityNotifyItemList_1, - 1, /* Single element */ - &asn_SPC_ERABActivityNotifyItemList_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/ERABActivityNotifyItemList.h b/e2sim/previous/ASN1c/ERABActivityNotifyItemList.h deleted file mode 100644 index b8ee029..0000000 --- a/e2sim/previous/ASN1c/ERABActivityNotifyItemList.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _ERABActivityNotifyItemList_H_ -#define _ERABActivityNotifyItemList_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ERABActivityNotifyItem; - -/* ERABActivityNotifyItemList */ -typedef struct ERABActivityNotifyItemList { - A_SEQUENCE_OF(struct ERABActivityNotifyItem) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ERABActivityNotifyItemList_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ERABActivityNotifyItemList; -extern asn_SET_OF_specifics_t asn_SPC_ERABActivityNotifyItemList_specs_1; -extern asn_TYPE_member_t asn_MBR_ERABActivityNotifyItemList_1[1]; -extern asn_per_constraints_t asn_PER_type_ERABActivityNotifyItemList_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _ERABActivityNotifyItemList_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/EUTRA-Mode-Info.c b/e2sim/previous/ASN1c/EUTRA-Mode-Info.c deleted file mode 100644 index 8bec217..0000000 --- a/e2sim/previous/ASN1c/EUTRA-Mode-Info.c +++ /dev/null @@ -1,82 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "EUTRA-Mode-Info.h" - -#include "FDD-Info.h" -#include "TDD-Info.h" -asn_per_constraints_t asn_PER_type_EUTRA_Mode_Info_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_EUTRA_Mode_Info_1[] = { - { ATF_POINTER, 0, offsetof(struct EUTRA_Mode_Info, choice.fDD), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_FDD_Info, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "fDD" - }, - { ATF_POINTER, 0, offsetof(struct EUTRA_Mode_Info, choice.tDD), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_TDD_Info, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "tDD" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_EUTRA_Mode_Info_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* fDD */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* tDD */ -}; -asn_CHOICE_specifics_t asn_SPC_EUTRA_Mode_Info_specs_1 = { - sizeof(struct EUTRA_Mode_Info), - offsetof(struct EUTRA_Mode_Info, _asn_ctx), - offsetof(struct EUTRA_Mode_Info, present), - sizeof(((struct EUTRA_Mode_Info *)0)->present), - asn_MAP_EUTRA_Mode_Info_tag2el_1, - 2, /* Count of tags in the map */ - 0, 0, - 2 /* Extensions start */ -}; -asn_TYPE_descriptor_t asn_DEF_EUTRA_Mode_Info = { - "EUTRA-Mode-Info", - "EUTRA-Mode-Info", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, &asn_PER_type_EUTRA_Mode_Info_constr_1, CHOICE_constraint }, - asn_MBR_EUTRA_Mode_Info_1, - 2, /* Elements count */ - &asn_SPC_EUTRA_Mode_Info_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/EUTRA-Mode-Info.h b/e2sim/previous/ASN1c/EUTRA-Mode-Info.h deleted file mode 100644 index c9ef0d7..0000000 --- a/e2sim/previous/ASN1c/EUTRA-Mode-Info.h +++ /dev/null @@ -1,79 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _EUTRA_Mode_Info_H_ -#define _EUTRA_Mode_Info_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "constr_CHOICE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum EUTRA_Mode_Info_PR { - EUTRA_Mode_Info_PR_NOTHING, /* No components present */ - EUTRA_Mode_Info_PR_fDD, - EUTRA_Mode_Info_PR_tDD - /* Extensions may appear below */ - -} EUTRA_Mode_Info_PR; - -/* Forward declarations */ -struct FDD_Info; -struct TDD_Info; - -/* EUTRA-Mode-Info */ -typedef struct EUTRA_Mode_Info { - EUTRA_Mode_Info_PR present; - union EUTRA_Mode_Info_u { - struct FDD_Info *fDD; - struct TDD_Info *tDD; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} EUTRA_Mode_Info_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_EUTRA_Mode_Info; -extern asn_CHOICE_specifics_t asn_SPC_EUTRA_Mode_Info_specs_1; -extern asn_TYPE_member_t asn_MBR_EUTRA_Mode_Info_1[2]; -extern asn_per_constraints_t asn_PER_type_EUTRA_Mode_Info_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _EUTRA_Mode_Info_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/EUTRANCellIdentifier.c b/e2sim/previous/ASN1c/EUTRANCellIdentifier.c deleted file mode 100644 index f5c5b9a..0000000 --- a/e2sim/previous/ASN1c/EUTRANCellIdentifier.c +++ /dev/null @@ -1,85 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "EUTRANCellIdentifier.h" - -int -EUTRANCellIdentifier_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if(st->size > 0) { - /* Size in bits */ - size = 8 * st->size - (st->bits_unused & 0x07); - } else { - size = 0; - } - - if((size == 28)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using BIT_STRING, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_EUTRANCellIdentifier_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 0, 0, 28, 28 } /* (SIZE(28..28)) */, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_EUTRANCellIdentifier_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_EUTRANCellIdentifier = { - "EUTRANCellIdentifier", - "EUTRANCellIdentifier", - &asn_OP_BIT_STRING, - asn_DEF_EUTRANCellIdentifier_tags_1, - sizeof(asn_DEF_EUTRANCellIdentifier_tags_1) - /sizeof(asn_DEF_EUTRANCellIdentifier_tags_1[0]), /* 1 */ - asn_DEF_EUTRANCellIdentifier_tags_1, /* Same as above */ - sizeof(asn_DEF_EUTRANCellIdentifier_tags_1) - /sizeof(asn_DEF_EUTRANCellIdentifier_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_EUTRANCellIdentifier_constr_1, EUTRANCellIdentifier_constraint }, - 0, 0, /* No members */ - &asn_SPC_BIT_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/EUTRANCellIdentifier.h b/e2sim/previous/ASN1c/EUTRANCellIdentifier.h deleted file mode 100644 index f6d226a..0000000 --- a/e2sim/previous/ASN1c/EUTRANCellIdentifier.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _EUTRANCellIdentifier_H_ -#define _EUTRANCellIdentifier_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "BIT_STRING.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* EUTRANCellIdentifier */ -typedef BIT_STRING_t EUTRANCellIdentifier_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_EUTRANCellIdentifier_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_EUTRANCellIdentifier; -asn_struct_free_f EUTRANCellIdentifier_free; -asn_struct_print_f EUTRANCellIdentifier_print; -asn_constr_check_f EUTRANCellIdentifier_constraint; -ber_type_decoder_f EUTRANCellIdentifier_decode_ber; -der_type_encoder_f EUTRANCellIdentifier_encode_der; -xer_type_decoder_f EUTRANCellIdentifier_decode_xer; -xer_type_encoder_f EUTRANCellIdentifier_encode_xer; -per_type_decoder_f EUTRANCellIdentifier_decode_uper; -per_type_encoder_f EUTRANCellIdentifier_encode_uper; -per_type_decoder_f EUTRANCellIdentifier_decode_aper; -per_type_encoder_f EUTRANCellIdentifier_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _EUTRANCellIdentifier_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/EUTRANRCellResourceCoordinationRequest.c b/e2sim/previous/ASN1c/EUTRANRCellResourceCoordinationRequest.c deleted file mode 100644 index 7fd053f..0000000 --- a/e2sim/previous/ASN1c/EUTRANRCellResourceCoordinationRequest.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "EUTRANRCellResourceCoordinationRequest.h" - -static asn_TYPE_member_t asn_MBR_EUTRANRCellResourceCoordinationRequest_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct EUTRANRCellResourceCoordinationRequest, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_119P105, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_EUTRANRCellResourceCoordinationRequest_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_EUTRANRCellResourceCoordinationRequest_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_EUTRANRCellResourceCoordinationRequest_specs_1 = { - sizeof(struct EUTRANRCellResourceCoordinationRequest), - offsetof(struct EUTRANRCellResourceCoordinationRequest, _asn_ctx), - asn_MAP_EUTRANRCellResourceCoordinationRequest_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_EUTRANRCellResourceCoordinationRequest = { - "EUTRANRCellResourceCoordinationRequest", - "EUTRANRCellResourceCoordinationRequest", - &asn_OP_SEQUENCE, - asn_DEF_EUTRANRCellResourceCoordinationRequest_tags_1, - sizeof(asn_DEF_EUTRANRCellResourceCoordinationRequest_tags_1) - /sizeof(asn_DEF_EUTRANRCellResourceCoordinationRequest_tags_1[0]), /* 1 */ - asn_DEF_EUTRANRCellResourceCoordinationRequest_tags_1, /* Same as above */ - sizeof(asn_DEF_EUTRANRCellResourceCoordinationRequest_tags_1) - /sizeof(asn_DEF_EUTRANRCellResourceCoordinationRequest_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_EUTRANRCellResourceCoordinationRequest_1, - 1, /* Elements count */ - &asn_SPC_EUTRANRCellResourceCoordinationRequest_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/EUTRANRCellResourceCoordinationRequest.h b/e2sim/previous/ASN1c/EUTRANRCellResourceCoordinationRequest.h deleted file mode 100644 index ea573a0..0000000 --- a/e2sim/previous/ASN1c/EUTRANRCellResourceCoordinationRequest.h +++ /dev/null @@ -1,60 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _EUTRANRCellResourceCoordinationRequest_H_ -#define _EUTRANRCellResourceCoordinationRequest_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* EUTRANRCellResourceCoordinationRequest */ -typedef struct EUTRANRCellResourceCoordinationRequest { - ProtocolIE_Container_119P105_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} EUTRANRCellResourceCoordinationRequest_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_EUTRANRCellResourceCoordinationRequest; - -#ifdef __cplusplus -} -#endif - -#endif /* _EUTRANRCellResourceCoordinationRequest_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/EUTRANRCellResourceCoordinationResponse.c b/e2sim/previous/ASN1c/EUTRANRCellResourceCoordinationResponse.c deleted file mode 100644 index e25fab7..0000000 --- a/e2sim/previous/ASN1c/EUTRANRCellResourceCoordinationResponse.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "EUTRANRCellResourceCoordinationResponse.h" - -static asn_TYPE_member_t asn_MBR_EUTRANRCellResourceCoordinationResponse_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct EUTRANRCellResourceCoordinationResponse, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_119P108, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_EUTRANRCellResourceCoordinationResponse_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_EUTRANRCellResourceCoordinationResponse_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_EUTRANRCellResourceCoordinationResponse_specs_1 = { - sizeof(struct EUTRANRCellResourceCoordinationResponse), - offsetof(struct EUTRANRCellResourceCoordinationResponse, _asn_ctx), - asn_MAP_EUTRANRCellResourceCoordinationResponse_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_EUTRANRCellResourceCoordinationResponse = { - "EUTRANRCellResourceCoordinationResponse", - "EUTRANRCellResourceCoordinationResponse", - &asn_OP_SEQUENCE, - asn_DEF_EUTRANRCellResourceCoordinationResponse_tags_1, - sizeof(asn_DEF_EUTRANRCellResourceCoordinationResponse_tags_1) - /sizeof(asn_DEF_EUTRANRCellResourceCoordinationResponse_tags_1[0]), /* 1 */ - asn_DEF_EUTRANRCellResourceCoordinationResponse_tags_1, /* Same as above */ - sizeof(asn_DEF_EUTRANRCellResourceCoordinationResponse_tags_1) - /sizeof(asn_DEF_EUTRANRCellResourceCoordinationResponse_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_EUTRANRCellResourceCoordinationResponse_1, - 1, /* Elements count */ - &asn_SPC_EUTRANRCellResourceCoordinationResponse_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/EUTRANRCellResourceCoordinationResponse.h b/e2sim/previous/ASN1c/EUTRANRCellResourceCoordinationResponse.h deleted file mode 100644 index a48d78f..0000000 --- a/e2sim/previous/ASN1c/EUTRANRCellResourceCoordinationResponse.h +++ /dev/null @@ -1,60 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _EUTRANRCellResourceCoordinationResponse_H_ -#define _EUTRANRCellResourceCoordinationResponse_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* EUTRANRCellResourceCoordinationResponse */ -typedef struct EUTRANRCellResourceCoordinationResponse { - ProtocolIE_Container_119P108_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} EUTRANRCellResourceCoordinationResponse_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_EUTRANRCellResourceCoordinationResponse; - -#ifdef __cplusplus -} -#endif - -#endif /* _EUTRANRCellResourceCoordinationResponse_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/EUTRANTraceID.c b/e2sim/previous/ASN1c/EUTRANTraceID.c deleted file mode 100644 index 1022471..0000000 --- a/e2sim/previous/ASN1c/EUTRANTraceID.c +++ /dev/null @@ -1,80 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "EUTRANTraceID.h" - -int -EUTRANTraceID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - size = st->size; - - if((size == 8)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using OCTET_STRING, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_EUTRANTraceID_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 0, 0, 8, 8 } /* (SIZE(8..8)) */, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_EUTRANTraceID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_EUTRANTraceID = { - "EUTRANTraceID", - "EUTRANTraceID", - &asn_OP_OCTET_STRING, - asn_DEF_EUTRANTraceID_tags_1, - sizeof(asn_DEF_EUTRANTraceID_tags_1) - /sizeof(asn_DEF_EUTRANTraceID_tags_1[0]), /* 1 */ - asn_DEF_EUTRANTraceID_tags_1, /* Same as above */ - sizeof(asn_DEF_EUTRANTraceID_tags_1) - /sizeof(asn_DEF_EUTRANTraceID_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_EUTRANTraceID_constr_1, EUTRANTraceID_constraint }, - 0, 0, /* No members */ - &asn_SPC_OCTET_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/EUTRANTraceID.h b/e2sim/previous/ASN1c/EUTRANTraceID.h deleted file mode 100644 index c012c96..0000000 --- a/e2sim/previous/ASN1c/EUTRANTraceID.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _EUTRANTraceID_H_ -#define _EUTRANTraceID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "OCTET_STRING.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* EUTRANTraceID */ -typedef OCTET_STRING_t EUTRANTraceID_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_EUTRANTraceID_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_EUTRANTraceID; -asn_struct_free_f EUTRANTraceID_free; -asn_struct_print_f EUTRANTraceID_print; -asn_constr_check_f EUTRANTraceID_constraint; -ber_type_decoder_f EUTRANTraceID_decode_ber; -der_type_encoder_f EUTRANTraceID_encode_der; -xer_type_decoder_f EUTRANTraceID_decode_xer; -xer_type_encoder_f EUTRANTraceID_encode_xer; -per_type_decoder_f EUTRANTraceID_decode_uper; -per_type_encoder_f EUTRANTraceID_encode_uper; -per_type_decoder_f EUTRANTraceID_decode_aper; -per_type_encoder_f EUTRANTraceID_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _EUTRANTraceID_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/EncryptionAlgorithms.c b/e2sim/previous/ASN1c/EncryptionAlgorithms.c deleted file mode 100644 index 4cf4c6d..0000000 --- a/e2sim/previous/ASN1c/EncryptionAlgorithms.c +++ /dev/null @@ -1,85 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "EncryptionAlgorithms.h" - -int -EncryptionAlgorithms_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if(st->size > 0) { - /* Size in bits */ - size = 8 * st->size - (st->bits_unused & 0x07); - } else { - size = 0; - } - - if((size == 16)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using BIT_STRING, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_EncryptionAlgorithms_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 16, 16 } /* (SIZE(16..16,...)) */, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_EncryptionAlgorithms_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_EncryptionAlgorithms = { - "EncryptionAlgorithms", - "EncryptionAlgorithms", - &asn_OP_BIT_STRING, - asn_DEF_EncryptionAlgorithms_tags_1, - sizeof(asn_DEF_EncryptionAlgorithms_tags_1) - /sizeof(asn_DEF_EncryptionAlgorithms_tags_1[0]), /* 1 */ - asn_DEF_EncryptionAlgorithms_tags_1, /* Same as above */ - sizeof(asn_DEF_EncryptionAlgorithms_tags_1) - /sizeof(asn_DEF_EncryptionAlgorithms_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_EncryptionAlgorithms_constr_1, EncryptionAlgorithms_constraint }, - 0, 0, /* No members */ - &asn_SPC_BIT_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/EncryptionAlgorithms.h b/e2sim/previous/ASN1c/EncryptionAlgorithms.h deleted file mode 100644 index ffe8f7d..0000000 --- a/e2sim/previous/ASN1c/EncryptionAlgorithms.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _EncryptionAlgorithms_H_ -#define _EncryptionAlgorithms_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "BIT_STRING.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* EncryptionAlgorithms */ -typedef BIT_STRING_t EncryptionAlgorithms_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_EncryptionAlgorithms_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_EncryptionAlgorithms; -asn_struct_free_f EncryptionAlgorithms_free; -asn_struct_print_f EncryptionAlgorithms_print; -asn_constr_check_f EncryptionAlgorithms_constraint; -ber_type_decoder_f EncryptionAlgorithms_decode_ber; -der_type_encoder_f EncryptionAlgorithms_encode_der; -xer_type_decoder_f EncryptionAlgorithms_decode_xer; -xer_type_encoder_f EncryptionAlgorithms_encode_xer; -per_type_decoder_f EncryptionAlgorithms_decode_uper; -per_type_encoder_f EncryptionAlgorithms_encode_uper; -per_type_decoder_f EncryptionAlgorithms_decode_aper; -per_type_encoder_f EncryptionAlgorithms_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _EncryptionAlgorithms_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/EnhancedRNTP.c b/e2sim/previous/ASN1c/EnhancedRNTP.c deleted file mode 100644 index 9911585..0000000 --- a/e2sim/previous/ASN1c/EnhancedRNTP.c +++ /dev/null @@ -1,138 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "EnhancedRNTP.h" - -#include "EnhancedRNTPStartTime.h" -#include "ProtocolExtensionContainer.h" -static int -memb_enhancedRNTPBitmap_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if(st->size > 0) { - /* Size in bits */ - size = 8 * st->size - (st->bits_unused & 0x07); - } else { - size = 0; - } - - if((size >= 12 && size <= 8800)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_per_constraints_t asn_PER_memb_enhancedRNTPBitmap_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED | APC_EXTENSIBLE, 14, 14, 12, 8800 } /* (SIZE(12..8800,...)) */, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_EnhancedRNTP_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct EnhancedRNTP, enhancedRNTPBitmap), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_BIT_STRING, - 0, - { 0, &asn_PER_memb_enhancedRNTPBitmap_constr_2, memb_enhancedRNTPBitmap_constraint_1 }, - 0, 0, /* No default value */ - "enhancedRNTPBitmap" - }, - { ATF_NOFLAGS, 0, offsetof(struct EnhancedRNTP, rNTP_High_Power_Threshold), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RNTP_Threshold, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "rNTP-High-Power-Threshold" - }, - { ATF_POINTER, 2, offsetof(struct EnhancedRNTP, enhancedRNTPStartTime), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_EnhancedRNTPStartTime, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "enhancedRNTPStartTime" - }, - { ATF_POINTER, 1, offsetof(struct EnhancedRNTP, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P135, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_EnhancedRNTP_oms_1[] = { 2, 3 }; -static const ber_tlv_tag_t asn_DEF_EnhancedRNTP_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_EnhancedRNTP_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* enhancedRNTPBitmap */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* rNTP-High-Power-Threshold */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* enhancedRNTPStartTime */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_EnhancedRNTP_specs_1 = { - sizeof(struct EnhancedRNTP), - offsetof(struct EnhancedRNTP, _asn_ctx), - asn_MAP_EnhancedRNTP_tag2el_1, - 4, /* Count of tags in the map */ - asn_MAP_EnhancedRNTP_oms_1, /* Optional members */ - 2, 0, /* Root/Additions */ - 4, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_EnhancedRNTP = { - "EnhancedRNTP", - "EnhancedRNTP", - &asn_OP_SEQUENCE, - asn_DEF_EnhancedRNTP_tags_1, - sizeof(asn_DEF_EnhancedRNTP_tags_1) - /sizeof(asn_DEF_EnhancedRNTP_tags_1[0]), /* 1 */ - asn_DEF_EnhancedRNTP_tags_1, /* Same as above */ - sizeof(asn_DEF_EnhancedRNTP_tags_1) - /sizeof(asn_DEF_EnhancedRNTP_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_EnhancedRNTP_1, - 4, /* Elements count */ - &asn_SPC_EnhancedRNTP_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/EnhancedRNTP.h b/e2sim/previous/ASN1c/EnhancedRNTP.h deleted file mode 100644 index 3380cc8..0000000 --- a/e2sim/previous/ASN1c/EnhancedRNTP.h +++ /dev/null @@ -1,70 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _EnhancedRNTP_H_ -#define _EnhancedRNTP_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "BIT_STRING.h" -#include "RNTP-Threshold.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct EnhancedRNTPStartTime; -struct ProtocolExtensionContainer; - -/* EnhancedRNTP */ -typedef struct EnhancedRNTP { - BIT_STRING_t enhancedRNTPBitmap; - RNTP_Threshold_t rNTP_High_Power_Threshold; - struct EnhancedRNTPStartTime *enhancedRNTPStartTime; /* OPTIONAL */ - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} EnhancedRNTP_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_EnhancedRNTP; -extern asn_SEQUENCE_specifics_t asn_SPC_EnhancedRNTP_specs_1; -extern asn_TYPE_member_t asn_MBR_EnhancedRNTP_1[4]; - -#ifdef __cplusplus -} -#endif - -#endif /* _EnhancedRNTP_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/EnhancedRNTPStartTime.c b/e2sim/previous/ASN1c/EnhancedRNTPStartTime.c deleted file mode 100644 index c6b0602..0000000 --- a/e2sim/previous/ASN1c/EnhancedRNTPStartTime.c +++ /dev/null @@ -1,151 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "EnhancedRNTPStartTime.h" - -#include "ProtocolExtensionContainer.h" -static int -memb_startSFN_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 1023)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_startSubframeNumber_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 9)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_per_constraints_t asn_PER_memb_startSFN_constr_2 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 10, 10, 0, 1023 } /* (0..1023,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_startSubframeNumber_constr_3 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 4, 4, 0, 9 } /* (0..9,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_EnhancedRNTPStartTime_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct EnhancedRNTPStartTime, startSFN), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { 0, &asn_PER_memb_startSFN_constr_2, memb_startSFN_constraint_1 }, - 0, 0, /* No default value */ - "startSFN" - }, - { ATF_NOFLAGS, 0, offsetof(struct EnhancedRNTPStartTime, startSubframeNumber), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { 0, &asn_PER_memb_startSubframeNumber_constr_3, memb_startSubframeNumber_constraint_1 }, - 0, 0, /* No default value */ - "startSubframeNumber" - }, - { ATF_POINTER, 1, offsetof(struct EnhancedRNTPStartTime, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P136, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_EnhancedRNTPStartTime_oms_1[] = { 2 }; -static const ber_tlv_tag_t asn_DEF_EnhancedRNTPStartTime_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_EnhancedRNTPStartTime_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* startSFN */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* startSubframeNumber */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_EnhancedRNTPStartTime_specs_1 = { - sizeof(struct EnhancedRNTPStartTime), - offsetof(struct EnhancedRNTPStartTime, _asn_ctx), - asn_MAP_EnhancedRNTPStartTime_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_EnhancedRNTPStartTime_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_EnhancedRNTPStartTime = { - "EnhancedRNTPStartTime", - "EnhancedRNTPStartTime", - &asn_OP_SEQUENCE, - asn_DEF_EnhancedRNTPStartTime_tags_1, - sizeof(asn_DEF_EnhancedRNTPStartTime_tags_1) - /sizeof(asn_DEF_EnhancedRNTPStartTime_tags_1[0]), /* 1 */ - asn_DEF_EnhancedRNTPStartTime_tags_1, /* Same as above */ - sizeof(asn_DEF_EnhancedRNTPStartTime_tags_1) - /sizeof(asn_DEF_EnhancedRNTPStartTime_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_EnhancedRNTPStartTime_1, - 3, /* Elements count */ - &asn_SPC_EnhancedRNTPStartTime_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/EnhancedRNTPStartTime.h b/e2sim/previous/ASN1c/EnhancedRNTPStartTime.h deleted file mode 100644 index ee8d6b8..0000000 --- a/e2sim/previous/ASN1c/EnhancedRNTPStartTime.h +++ /dev/null @@ -1,67 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _EnhancedRNTPStartTime_H_ -#define _EnhancedRNTPStartTime_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeInteger.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* EnhancedRNTPStartTime */ -typedef struct EnhancedRNTPStartTime { - long startSFN; - long startSubframeNumber; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} EnhancedRNTPStartTime_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_EnhancedRNTPStartTime; -extern asn_SEQUENCE_specifics_t asn_SPC_EnhancedRNTPStartTime_specs_1; -extern asn_TYPE_member_t asn_MBR_EnhancedRNTPStartTime_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _EnhancedRNTPStartTime_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/ErrorIndication.c b/e2sim/previous/ASN1c/ErrorIndication.c deleted file mode 100644 index 8c69bf3..0000000 --- a/e2sim/previous/ASN1c/ErrorIndication.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "ErrorIndication.h" - -asn_TYPE_member_t asn_MBR_ErrorIndication_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct ErrorIndication, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_119P21, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_ErrorIndication_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ErrorIndication_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ErrorIndication_specs_1 = { - sizeof(struct ErrorIndication), - offsetof(struct ErrorIndication, _asn_ctx), - asn_MAP_ErrorIndication_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ErrorIndication = { - "ErrorIndication", - "ErrorIndication", - &asn_OP_SEQUENCE, - asn_DEF_ErrorIndication_tags_1, - sizeof(asn_DEF_ErrorIndication_tags_1) - /sizeof(asn_DEF_ErrorIndication_tags_1[0]), /* 1 */ - asn_DEF_ErrorIndication_tags_1, /* Same as above */ - sizeof(asn_DEF_ErrorIndication_tags_1) - /sizeof(asn_DEF_ErrorIndication_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ErrorIndication_1, - 1, /* Elements count */ - &asn_SPC_ErrorIndication_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/ErrorIndication.h b/e2sim/previous/ASN1c/ErrorIndication.h deleted file mode 100644 index 71ce008..0000000 --- a/e2sim/previous/ASN1c/ErrorIndication.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _ErrorIndication_H_ -#define _ErrorIndication_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* ErrorIndication */ -typedef struct ErrorIndication { - ProtocolIE_Container_119P21_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ErrorIndication_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ErrorIndication; -extern asn_SEQUENCE_specifics_t asn_SPC_ErrorIndication_specs_1; -extern asn_TYPE_member_t asn_MBR_ErrorIndication_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _ErrorIndication_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/EventType.c b/e2sim/previous/ASN1c/EventType.c deleted file mode 100644 index d821e23..0000000 --- a/e2sim/previous/ASN1c/EventType.c +++ /dev/null @@ -1,71 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "EventType.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_EventType_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 0, 0 } /* (0..0,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_EventType_value2enum_1[] = { - { 0, 22, "change-of-serving-cell" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_EventType_enum2value_1[] = { - 0 /* change-of-serving-cell(0) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_EventType_specs_1 = { - asn_MAP_EventType_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_EventType_enum2value_1, /* N => "tag"; sorted by N */ - 1, /* Number of elements in the maps */ - 2, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_EventType_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_EventType = { - "EventType", - "EventType", - &asn_OP_NativeEnumerated, - asn_DEF_EventType_tags_1, - sizeof(asn_DEF_EventType_tags_1) - /sizeof(asn_DEF_EventType_tags_1[0]), /* 1 */ - asn_DEF_EventType_tags_1, /* Same as above */ - sizeof(asn_DEF_EventType_tags_1) - /sizeof(asn_DEF_EventType_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_EventType_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_EventType_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/EventType.h b/e2sim/previous/ASN1c/EventType.h deleted file mode 100644 index 565c2f3..0000000 --- a/e2sim/previous/ASN1c/EventType.h +++ /dev/null @@ -1,71 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _EventType_H_ -#define _EventType_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum EventType { - EventType_change_of_serving_cell = 0 - /* - * Enumeration is extensible - */ -} e_EventType; - -/* EventType */ -typedef long EventType_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_EventType_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_EventType; -extern const asn_INTEGER_specifics_t asn_SPC_EventType_specs_1; -asn_struct_free_f EventType_free; -asn_struct_print_f EventType_print; -asn_constr_check_f EventType_constraint; -ber_type_decoder_f EventType_decode_ber; -der_type_encoder_f EventType_encode_der; -xer_type_decoder_f EventType_decode_xer; -xer_type_encoder_f EventType_encode_xer; -per_type_decoder_f EventType_decode_uper; -per_type_encoder_f EventType_encode_uper; -per_type_decoder_f EventType_decode_aper; -per_type_encoder_f EventType_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _EventType_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/ExpectedActivityPeriod.c b/e2sim/previous/ASN1c/ExpectedActivityPeriod.c deleted file mode 100644 index be1d754..0000000 --- a/e2sim/previous/ASN1c/ExpectedActivityPeriod.c +++ /dev/null @@ -1,79 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "ExpectedActivityPeriod.h" - -int -ExpectedActivityPeriod_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if(((value >= 1 && value <= 30) || (value == 40) || (value == 50) || (value == 60) || (value == 80) || (value == 100) || (value == 120) || (value == 150) || (value >= 180 && value <= 181))) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using NativeInteger, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_ExpectedActivityPeriod_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 8, 8, 1, 181 } /* (1..181,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_ExpectedActivityPeriod_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ExpectedActivityPeriod = { - "ExpectedActivityPeriod", - "ExpectedActivityPeriod", - &asn_OP_NativeInteger, - asn_DEF_ExpectedActivityPeriod_tags_1, - sizeof(asn_DEF_ExpectedActivityPeriod_tags_1) - /sizeof(asn_DEF_ExpectedActivityPeriod_tags_1[0]), /* 1 */ - asn_DEF_ExpectedActivityPeriod_tags_1, /* Same as above */ - sizeof(asn_DEF_ExpectedActivityPeriod_tags_1) - /sizeof(asn_DEF_ExpectedActivityPeriod_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_ExpectedActivityPeriod_constr_1, ExpectedActivityPeriod_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/previous/ASN1c/ExpectedActivityPeriod.h b/e2sim/previous/ASN1c/ExpectedActivityPeriod.h deleted file mode 100644 index b13249f..0000000 --- a/e2sim/previous/ASN1c/ExpectedActivityPeriod.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _ExpectedActivityPeriod_H_ -#define _ExpectedActivityPeriod_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeInteger.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* ExpectedActivityPeriod */ -typedef long ExpectedActivityPeriod_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_ExpectedActivityPeriod_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_ExpectedActivityPeriod; -asn_struct_free_f ExpectedActivityPeriod_free; -asn_struct_print_f ExpectedActivityPeriod_print; -asn_constr_check_f ExpectedActivityPeriod_constraint; -ber_type_decoder_f ExpectedActivityPeriod_decode_ber; -der_type_encoder_f ExpectedActivityPeriod_encode_der; -xer_type_decoder_f ExpectedActivityPeriod_decode_xer; -xer_type_encoder_f ExpectedActivityPeriod_encode_xer; -per_type_decoder_f ExpectedActivityPeriod_decode_uper; -per_type_encoder_f ExpectedActivityPeriod_encode_uper; -per_type_decoder_f ExpectedActivityPeriod_decode_aper; -per_type_encoder_f ExpectedActivityPeriod_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _ExpectedActivityPeriod_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/ExpectedHOInterval.c b/e2sim/previous/ASN1c/ExpectedHOInterval.c deleted file mode 100644 index c66bc97..0000000 --- a/e2sim/previous/ASN1c/ExpectedHOInterval.c +++ /dev/null @@ -1,83 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "ExpectedHOInterval.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_ExpectedHOInterval_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 6 } /* (0..6,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_ExpectedHOInterval_value2enum_1[] = { - { 0, 5, "sec15" }, - { 1, 5, "sec30" }, - { 2, 5, "sec60" }, - { 3, 5, "sec90" }, - { 4, 6, "sec120" }, - { 5, 6, "sec180" }, - { 6, 9, "long-time" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_ExpectedHOInterval_enum2value_1[] = { - 6, /* long-time(6) */ - 4, /* sec120(4) */ - 0, /* sec15(0) */ - 5, /* sec180(5) */ - 1, /* sec30(1) */ - 2, /* sec60(2) */ - 3 /* sec90(3) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_ExpectedHOInterval_specs_1 = { - asn_MAP_ExpectedHOInterval_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_ExpectedHOInterval_enum2value_1, /* N => "tag"; sorted by N */ - 7, /* Number of elements in the maps */ - 8, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_ExpectedHOInterval_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ExpectedHOInterval = { - "ExpectedHOInterval", - "ExpectedHOInterval", - &asn_OP_NativeEnumerated, - asn_DEF_ExpectedHOInterval_tags_1, - sizeof(asn_DEF_ExpectedHOInterval_tags_1) - /sizeof(asn_DEF_ExpectedHOInterval_tags_1[0]), /* 1 */ - asn_DEF_ExpectedHOInterval_tags_1, /* Same as above */ - sizeof(asn_DEF_ExpectedHOInterval_tags_1) - /sizeof(asn_DEF_ExpectedHOInterval_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_ExpectedHOInterval_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_ExpectedHOInterval_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/ExpectedHOInterval.h b/e2sim/previous/ASN1c/ExpectedHOInterval.h deleted file mode 100644 index b02d8cd..0000000 --- a/e2sim/previous/ASN1c/ExpectedHOInterval.h +++ /dev/null @@ -1,77 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _ExpectedHOInterval_H_ -#define _ExpectedHOInterval_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum ExpectedHOInterval { - ExpectedHOInterval_sec15 = 0, - ExpectedHOInterval_sec30 = 1, - ExpectedHOInterval_sec60 = 2, - ExpectedHOInterval_sec90 = 3, - ExpectedHOInterval_sec120 = 4, - ExpectedHOInterval_sec180 = 5, - ExpectedHOInterval_long_time = 6 - /* - * Enumeration is extensible - */ -} e_ExpectedHOInterval; - -/* ExpectedHOInterval */ -typedef long ExpectedHOInterval_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_ExpectedHOInterval_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_ExpectedHOInterval; -extern const asn_INTEGER_specifics_t asn_SPC_ExpectedHOInterval_specs_1; -asn_struct_free_f ExpectedHOInterval_free; -asn_struct_print_f ExpectedHOInterval_print; -asn_constr_check_f ExpectedHOInterval_constraint; -ber_type_decoder_f ExpectedHOInterval_decode_ber; -der_type_encoder_f ExpectedHOInterval_encode_der; -xer_type_decoder_f ExpectedHOInterval_decode_xer; -xer_type_encoder_f ExpectedHOInterval_encode_xer; -per_type_decoder_f ExpectedHOInterval_decode_uper; -per_type_encoder_f ExpectedHOInterval_encode_uper; -per_type_decoder_f ExpectedHOInterval_decode_aper; -per_type_encoder_f ExpectedHOInterval_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _ExpectedHOInterval_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/ExpectedIdlePeriod.c b/e2sim/previous/ASN1c/ExpectedIdlePeriod.c deleted file mode 100644 index 9bc7391..0000000 --- a/e2sim/previous/ASN1c/ExpectedIdlePeriod.c +++ /dev/null @@ -1,79 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "ExpectedIdlePeriod.h" - -int -ExpectedIdlePeriod_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if(((value >= 1 && value <= 30) || (value == 40) || (value == 50) || (value == 60) || (value == 80) || (value == 100) || (value == 120) || (value == 150) || (value >= 180 && value <= 181))) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using NativeInteger, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_ExpectedIdlePeriod_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 8, 8, 1, 181 } /* (1..181,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_ExpectedIdlePeriod_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ExpectedIdlePeriod = { - "ExpectedIdlePeriod", - "ExpectedIdlePeriod", - &asn_OP_NativeInteger, - asn_DEF_ExpectedIdlePeriod_tags_1, - sizeof(asn_DEF_ExpectedIdlePeriod_tags_1) - /sizeof(asn_DEF_ExpectedIdlePeriod_tags_1[0]), /* 1 */ - asn_DEF_ExpectedIdlePeriod_tags_1, /* Same as above */ - sizeof(asn_DEF_ExpectedIdlePeriod_tags_1) - /sizeof(asn_DEF_ExpectedIdlePeriod_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_ExpectedIdlePeriod_constr_1, ExpectedIdlePeriod_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/previous/ASN1c/ExpectedIdlePeriod.h b/e2sim/previous/ASN1c/ExpectedIdlePeriod.h deleted file mode 100644 index 227d4e1..0000000 --- a/e2sim/previous/ASN1c/ExpectedIdlePeriod.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _ExpectedIdlePeriod_H_ -#define _ExpectedIdlePeriod_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeInteger.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* ExpectedIdlePeriod */ -typedef long ExpectedIdlePeriod_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_ExpectedIdlePeriod_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_ExpectedIdlePeriod; -asn_struct_free_f ExpectedIdlePeriod_free; -asn_struct_print_f ExpectedIdlePeriod_print; -asn_constr_check_f ExpectedIdlePeriod_constraint; -ber_type_decoder_f ExpectedIdlePeriod_decode_ber; -der_type_encoder_f ExpectedIdlePeriod_encode_der; -xer_type_decoder_f ExpectedIdlePeriod_decode_xer; -xer_type_encoder_f ExpectedIdlePeriod_encode_xer; -per_type_decoder_f ExpectedIdlePeriod_decode_uper; -per_type_encoder_f ExpectedIdlePeriod_encode_uper; -per_type_decoder_f ExpectedIdlePeriod_decode_aper; -per_type_encoder_f ExpectedIdlePeriod_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _ExpectedIdlePeriod_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/ExpectedUEActivityBehaviour.c b/e2sim/previous/ASN1c/ExpectedUEActivityBehaviour.c deleted file mode 100644 index e8f172d..0000000 --- a/e2sim/previous/ASN1c/ExpectedUEActivityBehaviour.c +++ /dev/null @@ -1,101 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "ExpectedUEActivityBehaviour.h" - -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_ExpectedUEActivityBehaviour_1[] = { - { ATF_POINTER, 4, offsetof(struct ExpectedUEActivityBehaviour, expectedActivityPeriod), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ExpectedActivityPeriod, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "expectedActivityPeriod" - }, - { ATF_POINTER, 3, offsetof(struct ExpectedUEActivityBehaviour, expectedIdlePeriod), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ExpectedIdlePeriod, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "expectedIdlePeriod" - }, - { ATF_POINTER, 2, offsetof(struct ExpectedUEActivityBehaviour, sourceofUEActivityBehaviourInformation), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_SourceOfUEActivityBehaviourInformation, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "sourceofUEActivityBehaviourInformation" - }, - { ATF_POINTER, 1, offsetof(struct ExpectedUEActivityBehaviour, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P143, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_ExpectedUEActivityBehaviour_oms_1[] = { 0, 1, 2, 3 }; -static const ber_tlv_tag_t asn_DEF_ExpectedUEActivityBehaviour_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ExpectedUEActivityBehaviour_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* expectedActivityPeriod */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* expectedIdlePeriod */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* sourceofUEActivityBehaviourInformation */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ExpectedUEActivityBehaviour_specs_1 = { - sizeof(struct ExpectedUEActivityBehaviour), - offsetof(struct ExpectedUEActivityBehaviour, _asn_ctx), - asn_MAP_ExpectedUEActivityBehaviour_tag2el_1, - 4, /* Count of tags in the map */ - asn_MAP_ExpectedUEActivityBehaviour_oms_1, /* Optional members */ - 4, 0, /* Root/Additions */ - 4, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ExpectedUEActivityBehaviour = { - "ExpectedUEActivityBehaviour", - "ExpectedUEActivityBehaviour", - &asn_OP_SEQUENCE, - asn_DEF_ExpectedUEActivityBehaviour_tags_1, - sizeof(asn_DEF_ExpectedUEActivityBehaviour_tags_1) - /sizeof(asn_DEF_ExpectedUEActivityBehaviour_tags_1[0]), /* 1 */ - asn_DEF_ExpectedUEActivityBehaviour_tags_1, /* Same as above */ - sizeof(asn_DEF_ExpectedUEActivityBehaviour_tags_1) - /sizeof(asn_DEF_ExpectedUEActivityBehaviour_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ExpectedUEActivityBehaviour_1, - 4, /* Elements count */ - &asn_SPC_ExpectedUEActivityBehaviour_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/ExpectedUEActivityBehaviour.h b/e2sim/previous/ASN1c/ExpectedUEActivityBehaviour.h deleted file mode 100644 index aeb46f4..0000000 --- a/e2sim/previous/ASN1c/ExpectedUEActivityBehaviour.h +++ /dev/null @@ -1,70 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _ExpectedUEActivityBehaviour_H_ -#define _ExpectedUEActivityBehaviour_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ExpectedActivityPeriod.h" -#include "ExpectedIdlePeriod.h" -#include "SourceOfUEActivityBehaviourInformation.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* ExpectedUEActivityBehaviour */ -typedef struct ExpectedUEActivityBehaviour { - ExpectedActivityPeriod_t *expectedActivityPeriod; /* OPTIONAL */ - ExpectedIdlePeriod_t *expectedIdlePeriod; /* OPTIONAL */ - SourceOfUEActivityBehaviourInformation_t *sourceofUEActivityBehaviourInformation; /* OPTIONAL */ - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ExpectedUEActivityBehaviour_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ExpectedUEActivityBehaviour; -extern asn_SEQUENCE_specifics_t asn_SPC_ExpectedUEActivityBehaviour_specs_1; -extern asn_TYPE_member_t asn_MBR_ExpectedUEActivityBehaviour_1[4]; - -#ifdef __cplusplus -} -#endif - -#endif /* _ExpectedUEActivityBehaviour_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/ExpectedUEBehaviour.c b/e2sim/previous/ASN1c/ExpectedUEBehaviour.c deleted file mode 100644 index 30d834e..0000000 --- a/e2sim/previous/ASN1c/ExpectedUEBehaviour.c +++ /dev/null @@ -1,92 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "ExpectedUEBehaviour.h" - -#include "ExpectedUEActivityBehaviour.h" -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_ExpectedUEBehaviour_1[] = { - { ATF_POINTER, 3, offsetof(struct ExpectedUEBehaviour, expectedActivity), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ExpectedUEActivityBehaviour, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "expectedActivity" - }, - { ATF_POINTER, 2, offsetof(struct ExpectedUEBehaviour, expectedHOInterval), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ExpectedHOInterval, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "expectedHOInterval" - }, - { ATF_POINTER, 1, offsetof(struct ExpectedUEBehaviour, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P142, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_ExpectedUEBehaviour_oms_1[] = { 0, 1, 2 }; -static const ber_tlv_tag_t asn_DEF_ExpectedUEBehaviour_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ExpectedUEBehaviour_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* expectedActivity */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* expectedHOInterval */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ExpectedUEBehaviour_specs_1 = { - sizeof(struct ExpectedUEBehaviour), - offsetof(struct ExpectedUEBehaviour, _asn_ctx), - asn_MAP_ExpectedUEBehaviour_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_ExpectedUEBehaviour_oms_1, /* Optional members */ - 3, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ExpectedUEBehaviour = { - "ExpectedUEBehaviour", - "ExpectedUEBehaviour", - &asn_OP_SEQUENCE, - asn_DEF_ExpectedUEBehaviour_tags_1, - sizeof(asn_DEF_ExpectedUEBehaviour_tags_1) - /sizeof(asn_DEF_ExpectedUEBehaviour_tags_1[0]), /* 1 */ - asn_DEF_ExpectedUEBehaviour_tags_1, /* Same as above */ - sizeof(asn_DEF_ExpectedUEBehaviour_tags_1) - /sizeof(asn_DEF_ExpectedUEBehaviour_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ExpectedUEBehaviour_1, - 3, /* Elements count */ - &asn_SPC_ExpectedUEBehaviour_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/ExpectedUEBehaviour.h b/e2sim/previous/ASN1c/ExpectedUEBehaviour.h deleted file mode 100644 index 62a41e1..0000000 --- a/e2sim/previous/ASN1c/ExpectedUEBehaviour.h +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _ExpectedUEBehaviour_H_ -#define _ExpectedUEBehaviour_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ExpectedHOInterval.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ExpectedUEActivityBehaviour; -struct ProtocolExtensionContainer; - -/* ExpectedUEBehaviour */ -typedef struct ExpectedUEBehaviour { - struct ExpectedUEActivityBehaviour *expectedActivity; /* OPTIONAL */ - ExpectedHOInterval_t *expectedHOInterval; /* OPTIONAL */ - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ExpectedUEBehaviour_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ExpectedUEBehaviour; -extern asn_SEQUENCE_specifics_t asn_SPC_ExpectedUEBehaviour_specs_1; -extern asn_TYPE_member_t asn_MBR_ExpectedUEBehaviour_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _ExpectedUEBehaviour_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/ExtendedBitRate.c b/e2sim/previous/ASN1c/ExtendedBitRate.c deleted file mode 100644 index 363767c..0000000 --- a/e2sim/previous/ASN1c/ExtendedBitRate.c +++ /dev/null @@ -1,85 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "ExtendedBitRate.h" - -int -ExtendedBitRate_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const INTEGER_t *st = (const INTEGER_t *)sptr; - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if(asn_INTEGER2long(st, &value)) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value too large (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if((value >= 10000000001 && value <= 4000000000000)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using INTEGER, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_ExtendedBitRate_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 42, -1, 10000000001, 4000000000000 } /* (10000000001..4000000000000,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_ExtendedBitRate_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ExtendedBitRate = { - "ExtendedBitRate", - "ExtendedBitRate", - &asn_OP_INTEGER, - asn_DEF_ExtendedBitRate_tags_1, - sizeof(asn_DEF_ExtendedBitRate_tags_1) - /sizeof(asn_DEF_ExtendedBitRate_tags_1[0]), /* 1 */ - asn_DEF_ExtendedBitRate_tags_1, /* Same as above */ - sizeof(asn_DEF_ExtendedBitRate_tags_1) - /sizeof(asn_DEF_ExtendedBitRate_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_ExtendedBitRate_constr_1, ExtendedBitRate_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/previous/ASN1c/ExtendedBitRate.h b/e2sim/previous/ASN1c/ExtendedBitRate.h deleted file mode 100644 index 8f5fe41..0000000 --- a/e2sim/previous/ASN1c/ExtendedBitRate.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _ExtendedBitRate_H_ -#define _ExtendedBitRate_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "INTEGER.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* ExtendedBitRate */ -typedef INTEGER_t ExtendedBitRate_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_ExtendedBitRate_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_ExtendedBitRate; -asn_struct_free_f ExtendedBitRate_free; -asn_struct_print_f ExtendedBitRate_print; -asn_constr_check_f ExtendedBitRate_constraint; -ber_type_decoder_f ExtendedBitRate_decode_ber; -der_type_encoder_f ExtendedBitRate_encode_der; -xer_type_decoder_f ExtendedBitRate_decode_xer; -xer_type_encoder_f ExtendedBitRate_encode_xer; -per_type_decoder_f ExtendedBitRate_decode_uper; -per_type_encoder_f ExtendedBitRate_encode_uper; -per_type_decoder_f ExtendedBitRate_decode_aper; -per_type_encoder_f ExtendedBitRate_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _ExtendedBitRate_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/ExtendedULInterferenceOverloadInfo.c b/e2sim/previous/ASN1c/ExtendedULInterferenceOverloadInfo.c deleted file mode 100644 index e014e5d..0000000 --- a/e2sim/previous/ASN1c/ExtendedULInterferenceOverloadInfo.c +++ /dev/null @@ -1,127 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "ExtendedULInterferenceOverloadInfo.h" - -#include "ProtocolExtensionContainer.h" -static int -memb_associatedSubframes_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if(st->size > 0) { - /* Size in bits */ - size = 8 * st->size - (st->bits_unused & 0x07); - } else { - size = 0; - } - - if((size == 5)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_per_constraints_t asn_PER_memb_associatedSubframes_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 0, 0, 5, 5 } /* (SIZE(5..5)) */, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_ExtendedULInterferenceOverloadInfo_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct ExtendedULInterferenceOverloadInfo, associatedSubframes), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_BIT_STRING, - 0, - { 0, &asn_PER_memb_associatedSubframes_constr_2, memb_associatedSubframes_constraint_1 }, - 0, 0, /* No default value */ - "associatedSubframes" - }, - { ATF_NOFLAGS, 0, offsetof(struct ExtendedULInterferenceOverloadInfo, extended_ul_InterferenceOverloadIndication), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_UL_InterferenceOverloadIndication, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "extended-ul-InterferenceOverloadIndication" - }, - { ATF_POINTER, 1, offsetof(struct ExtendedULInterferenceOverloadInfo, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P144, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_ExtendedULInterferenceOverloadInfo_oms_1[] = { 2 }; -static const ber_tlv_tag_t asn_DEF_ExtendedULInterferenceOverloadInfo_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ExtendedULInterferenceOverloadInfo_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* associatedSubframes */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* extended-ul-InterferenceOverloadIndication */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ExtendedULInterferenceOverloadInfo_specs_1 = { - sizeof(struct ExtendedULInterferenceOverloadInfo), - offsetof(struct ExtendedULInterferenceOverloadInfo, _asn_ctx), - asn_MAP_ExtendedULInterferenceOverloadInfo_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_ExtendedULInterferenceOverloadInfo_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ExtendedULInterferenceOverloadInfo = { - "ExtendedULInterferenceOverloadInfo", - "ExtendedULInterferenceOverloadInfo", - &asn_OP_SEQUENCE, - asn_DEF_ExtendedULInterferenceOverloadInfo_tags_1, - sizeof(asn_DEF_ExtendedULInterferenceOverloadInfo_tags_1) - /sizeof(asn_DEF_ExtendedULInterferenceOverloadInfo_tags_1[0]), /* 1 */ - asn_DEF_ExtendedULInterferenceOverloadInfo_tags_1, /* Same as above */ - sizeof(asn_DEF_ExtendedULInterferenceOverloadInfo_tags_1) - /sizeof(asn_DEF_ExtendedULInterferenceOverloadInfo_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ExtendedULInterferenceOverloadInfo_1, - 3, /* Elements count */ - &asn_SPC_ExtendedULInterferenceOverloadInfo_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/ExtendedULInterferenceOverloadInfo.h b/e2sim/previous/ASN1c/ExtendedULInterferenceOverloadInfo.h deleted file mode 100644 index 5d20778..0000000 --- a/e2sim/previous/ASN1c/ExtendedULInterferenceOverloadInfo.h +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _ExtendedULInterferenceOverloadInfo_H_ -#define _ExtendedULInterferenceOverloadInfo_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "BIT_STRING.h" -#include "UL-InterferenceOverloadIndication.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* ExtendedULInterferenceOverloadInfo */ -typedef struct ExtendedULInterferenceOverloadInfo { - BIT_STRING_t associatedSubframes; - UL_InterferenceOverloadIndication_t extended_ul_InterferenceOverloadIndication; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ExtendedULInterferenceOverloadInfo_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ExtendedULInterferenceOverloadInfo; -extern asn_SEQUENCE_specifics_t asn_SPC_ExtendedULInterferenceOverloadInfo_specs_1; -extern asn_TYPE_member_t asn_MBR_ExtendedULInterferenceOverloadInfo_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _ExtendedULInterferenceOverloadInfo_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/FDD-Info.c b/e2sim/previous/ASN1c/FDD-Info.c deleted file mode 100644 index c1e63d8..0000000 --- a/e2sim/previous/ASN1c/FDD-Info.c +++ /dev/null @@ -1,111 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "FDD-Info.h" - -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_FDD_Info_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct FDD_Info, uL_EARFCN), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_EARFCN, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "uL-EARFCN" - }, - { ATF_NOFLAGS, 0, offsetof(struct FDD_Info, dL_EARFCN), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_EARFCN, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "dL-EARFCN" - }, - { ATF_NOFLAGS, 0, offsetof(struct FDD_Info, uL_Transmission_Bandwidth), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Transmission_Bandwidth, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "uL-Transmission-Bandwidth" - }, - { ATF_NOFLAGS, 0, offsetof(struct FDD_Info, dL_Transmission_Bandwidth), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Transmission_Bandwidth, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "dL-Transmission-Bandwidth" - }, - { ATF_POINTER, 1, offsetof(struct FDD_Info, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (4 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P145, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_FDD_Info_oms_1[] = { 4 }; -static const ber_tlv_tag_t asn_DEF_FDD_Info_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_FDD_Info_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* uL-EARFCN */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* dL-EARFCN */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* uL-Transmission-Bandwidth */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* dL-Transmission-Bandwidth */ - { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_FDD_Info_specs_1 = { - sizeof(struct FDD_Info), - offsetof(struct FDD_Info, _asn_ctx), - asn_MAP_FDD_Info_tag2el_1, - 5, /* Count of tags in the map */ - asn_MAP_FDD_Info_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 5, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_FDD_Info = { - "FDD-Info", - "FDD-Info", - &asn_OP_SEQUENCE, - asn_DEF_FDD_Info_tags_1, - sizeof(asn_DEF_FDD_Info_tags_1) - /sizeof(asn_DEF_FDD_Info_tags_1[0]), /* 1 */ - asn_DEF_FDD_Info_tags_1, /* Same as above */ - sizeof(asn_DEF_FDD_Info_tags_1) - /sizeof(asn_DEF_FDD_Info_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_FDD_Info_1, - 5, /* Elements count */ - &asn_SPC_FDD_Info_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/FDD-Info.h b/e2sim/previous/ASN1c/FDD-Info.h deleted file mode 100644 index 7da4be8..0000000 --- a/e2sim/previous/ASN1c/FDD-Info.h +++ /dev/null @@ -1,70 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _FDD_Info_H_ -#define _FDD_Info_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "EARFCN.h" -#include "Transmission-Bandwidth.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* FDD-Info */ -typedef struct FDD_Info { - EARFCN_t uL_EARFCN; - EARFCN_t dL_EARFCN; - Transmission_Bandwidth_t uL_Transmission_Bandwidth; - Transmission_Bandwidth_t dL_Transmission_Bandwidth; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} FDD_Info_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_FDD_Info; -extern asn_SEQUENCE_specifics_t asn_SPC_FDD_Info_specs_1; -extern asn_TYPE_member_t asn_MBR_FDD_Info_1[5]; - -#ifdef __cplusplus -} -#endif - -#endif /* _FDD_Info_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/FDD-InfoNeighbourServedNRCell-Information.c b/e2sim/previous/ASN1c/FDD-InfoNeighbourServedNRCell-Information.c deleted file mode 100644 index 36a4504..0000000 --- a/e2sim/previous/ASN1c/FDD-InfoNeighbourServedNRCell-Information.c +++ /dev/null @@ -1,91 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "FDD-InfoNeighbourServedNRCell-Information.h" - -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_FDD_InfoNeighbourServedNRCell_Information_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct FDD_InfoNeighbourServedNRCell_Information, ul_NRFreqInfo), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NRFreqInfo, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ul-NRFreqInfo" - }, - { ATF_NOFLAGS, 0, offsetof(struct FDD_InfoNeighbourServedNRCell_Information, dl_NRFreqInfo), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NRFreqInfo, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "dl-NRFreqInfo" - }, - { ATF_POINTER, 1, offsetof(struct FDD_InfoNeighbourServedNRCell_Information, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P94, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_FDD_InfoNeighbourServedNRCell_Information_oms_1[] = { 2 }; -static const ber_tlv_tag_t asn_DEF_FDD_InfoNeighbourServedNRCell_Information_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_FDD_InfoNeighbourServedNRCell_Information_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ul-NRFreqInfo */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* dl-NRFreqInfo */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_FDD_InfoNeighbourServedNRCell_Information_specs_1 = { - sizeof(struct FDD_InfoNeighbourServedNRCell_Information), - offsetof(struct FDD_InfoNeighbourServedNRCell_Information, _asn_ctx), - asn_MAP_FDD_InfoNeighbourServedNRCell_Information_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_FDD_InfoNeighbourServedNRCell_Information_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_FDD_InfoNeighbourServedNRCell_Information = { - "FDD-InfoNeighbourServedNRCell-Information", - "FDD-InfoNeighbourServedNRCell-Information", - &asn_OP_SEQUENCE, - asn_DEF_FDD_InfoNeighbourServedNRCell_Information_tags_1, - sizeof(asn_DEF_FDD_InfoNeighbourServedNRCell_Information_tags_1) - /sizeof(asn_DEF_FDD_InfoNeighbourServedNRCell_Information_tags_1[0]), /* 1 */ - asn_DEF_FDD_InfoNeighbourServedNRCell_Information_tags_1, /* Same as above */ - sizeof(asn_DEF_FDD_InfoNeighbourServedNRCell_Information_tags_1) - /sizeof(asn_DEF_FDD_InfoNeighbourServedNRCell_Information_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_FDD_InfoNeighbourServedNRCell_Information_1, - 3, /* Elements count */ - &asn_SPC_FDD_InfoNeighbourServedNRCell_Information_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/FDD-InfoNeighbourServedNRCell-Information.h b/e2sim/previous/ASN1c/FDD-InfoNeighbourServedNRCell-Information.h deleted file mode 100644 index 10d1be7..0000000 --- a/e2sim/previous/ASN1c/FDD-InfoNeighbourServedNRCell-Information.h +++ /dev/null @@ -1,67 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _FDD_InfoNeighbourServedNRCell_Information_H_ -#define _FDD_InfoNeighbourServedNRCell_Information_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NRFreqInfo.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* FDD-InfoNeighbourServedNRCell-Information */ -typedef struct FDD_InfoNeighbourServedNRCell_Information { - NRFreqInfo_t ul_NRFreqInfo; - NRFreqInfo_t dl_NRFreqInfo; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} FDD_InfoNeighbourServedNRCell_Information_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_FDD_InfoNeighbourServedNRCell_Information; -extern asn_SEQUENCE_specifics_t asn_SPC_FDD_InfoNeighbourServedNRCell_Information_specs_1; -extern asn_TYPE_member_t asn_MBR_FDD_InfoNeighbourServedNRCell_Information_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _FDD_InfoNeighbourServedNRCell_Information_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/FDD-InfoServedNRCell-Information.c b/e2sim/previous/ASN1c/FDD-InfoServedNRCell-Information.c deleted file mode 100644 index b2a3158..0000000 --- a/e2sim/previous/ASN1c/FDD-InfoServedNRCell-Information.c +++ /dev/null @@ -1,111 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "FDD-InfoServedNRCell-Information.h" - -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_FDD_InfoServedNRCell_Information_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct FDD_InfoServedNRCell_Information, ul_NRFreqInfo), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NRFreqInfo, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ul-NRFreqInfo" - }, - { ATF_NOFLAGS, 0, offsetof(struct FDD_InfoServedNRCell_Information, dl_NRFreqInfo), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NRFreqInfo, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "dl-NRFreqInfo" - }, - { ATF_NOFLAGS, 0, offsetof(struct FDD_InfoServedNRCell_Information, ul_NR_TxBW), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NR_TxBW, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ul-NR-TxBW" - }, - { ATF_NOFLAGS, 0, offsetof(struct FDD_InfoServedNRCell_Information, dl_NR_TxBW), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NR_TxBW, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "dl-NR-TxBW" - }, - { ATF_POINTER, 1, offsetof(struct FDD_InfoServedNRCell_Information, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (4 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P93, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_FDD_InfoServedNRCell_Information_oms_1[] = { 4 }; -static const ber_tlv_tag_t asn_DEF_FDD_InfoServedNRCell_Information_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_FDD_InfoServedNRCell_Information_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ul-NRFreqInfo */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* dl-NRFreqInfo */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* ul-NR-TxBW */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* dl-NR-TxBW */ - { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_FDD_InfoServedNRCell_Information_specs_1 = { - sizeof(struct FDD_InfoServedNRCell_Information), - offsetof(struct FDD_InfoServedNRCell_Information, _asn_ctx), - asn_MAP_FDD_InfoServedNRCell_Information_tag2el_1, - 5, /* Count of tags in the map */ - asn_MAP_FDD_InfoServedNRCell_Information_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 5, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_FDD_InfoServedNRCell_Information = { - "FDD-InfoServedNRCell-Information", - "FDD-InfoServedNRCell-Information", - &asn_OP_SEQUENCE, - asn_DEF_FDD_InfoServedNRCell_Information_tags_1, - sizeof(asn_DEF_FDD_InfoServedNRCell_Information_tags_1) - /sizeof(asn_DEF_FDD_InfoServedNRCell_Information_tags_1[0]), /* 1 */ - asn_DEF_FDD_InfoServedNRCell_Information_tags_1, /* Same as above */ - sizeof(asn_DEF_FDD_InfoServedNRCell_Information_tags_1) - /sizeof(asn_DEF_FDD_InfoServedNRCell_Information_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_FDD_InfoServedNRCell_Information_1, - 5, /* Elements count */ - &asn_SPC_FDD_InfoServedNRCell_Information_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/FDD-InfoServedNRCell-Information.h b/e2sim/previous/ASN1c/FDD-InfoServedNRCell-Information.h deleted file mode 100644 index 4cf79d8..0000000 --- a/e2sim/previous/ASN1c/FDD-InfoServedNRCell-Information.h +++ /dev/null @@ -1,70 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _FDD_InfoServedNRCell_Information_H_ -#define _FDD_InfoServedNRCell_Information_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NRFreqInfo.h" -#include "NR-TxBW.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* FDD-InfoServedNRCell-Information */ -typedef struct FDD_InfoServedNRCell_Information { - NRFreqInfo_t ul_NRFreqInfo; - NRFreqInfo_t dl_NRFreqInfo; - NR_TxBW_t ul_NR_TxBW; - NR_TxBW_t dl_NR_TxBW; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} FDD_InfoServedNRCell_Information_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_FDD_InfoServedNRCell_Information; -extern asn_SEQUENCE_specifics_t asn_SPC_FDD_InfoServedNRCell_Information_specs_1; -extern asn_TYPE_member_t asn_MBR_FDD_InfoServedNRCell_Information_1[5]; - -#ifdef __cplusplus -} -#endif - -#endif /* _FDD_InfoServedNRCell_Information_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/FiveGS-TAC.c b/e2sim/previous/ASN1c/FiveGS-TAC.c deleted file mode 100644 index 1aab4b5..0000000 --- a/e2sim/previous/ASN1c/FiveGS-TAC.c +++ /dev/null @@ -1,80 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "FiveGS-TAC.h" - -int -FiveGS_TAC_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - size = st->size; - - if((size == 3)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using OCTET_STRING, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_FiveGS_TAC_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 0, 0, 3, 3 } /* (SIZE(3..3)) */, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_FiveGS_TAC_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_FiveGS_TAC = { - "FiveGS-TAC", - "FiveGS-TAC", - &asn_OP_OCTET_STRING, - asn_DEF_FiveGS_TAC_tags_1, - sizeof(asn_DEF_FiveGS_TAC_tags_1) - /sizeof(asn_DEF_FiveGS_TAC_tags_1[0]), /* 1 */ - asn_DEF_FiveGS_TAC_tags_1, /* Same as above */ - sizeof(asn_DEF_FiveGS_TAC_tags_1) - /sizeof(asn_DEF_FiveGS_TAC_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_FiveGS_TAC_constr_1, FiveGS_TAC_constraint }, - 0, 0, /* No members */ - &asn_SPC_OCTET_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/FiveGS-TAC.h b/e2sim/previous/ASN1c/FiveGS-TAC.h deleted file mode 100644 index 4047798..0000000 --- a/e2sim/previous/ASN1c/FiveGS-TAC.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _FiveGS_TAC_H_ -#define _FiveGS_TAC_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "OCTET_STRING.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* FiveGS-TAC */ -typedef OCTET_STRING_t FiveGS_TAC_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_FiveGS_TAC_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_FiveGS_TAC; -asn_struct_free_f FiveGS_TAC_free; -asn_struct_print_f FiveGS_TAC_print; -asn_constr_check_f FiveGS_TAC_constraint; -ber_type_decoder_f FiveGS_TAC_decode_ber; -der_type_encoder_f FiveGS_TAC_encode_der; -xer_type_decoder_f FiveGS_TAC_decode_xer; -xer_type_encoder_f FiveGS_TAC_encode_xer; -per_type_decoder_f FiveGS_TAC_decode_uper; -per_type_encoder_f FiveGS_TAC_encode_uper; -per_type_decoder_f FiveGS_TAC_decode_aper; -per_type_encoder_f FiveGS_TAC_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _FiveGS_TAC_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/ForbiddenInterRATs.c b/e2sim/previous/ASN1c/ForbiddenInterRATs.c deleted file mode 100644 index 6daa5b6..0000000 --- a/e2sim/previous/ASN1c/ForbiddenInterRATs.c +++ /dev/null @@ -1,81 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "ForbiddenInterRATs.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_ForbiddenInterRATs_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 3 } /* (0..3,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_ForbiddenInterRATs_value2enum_1[] = { - { 0, 3, "all" }, - { 1, 5, "geran" }, - { 2, 5, "utran" }, - { 3, 8, "cdma2000" }, - { 4, 13, "geranandutran" }, - { 5, 16, "cdma2000andutran" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_ForbiddenInterRATs_enum2value_1[] = { - 0, /* all(0) */ - 3, /* cdma2000(3) */ - 5, /* cdma2000andutran(5) */ - 1, /* geran(1) */ - 4, /* geranandutran(4) */ - 2 /* utran(2) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_ForbiddenInterRATs_specs_1 = { - asn_MAP_ForbiddenInterRATs_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_ForbiddenInterRATs_enum2value_1, /* N => "tag"; sorted by N */ - 6, /* Number of elements in the maps */ - 5, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_ForbiddenInterRATs_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ForbiddenInterRATs = { - "ForbiddenInterRATs", - "ForbiddenInterRATs", - &asn_OP_NativeEnumerated, - asn_DEF_ForbiddenInterRATs_tags_1, - sizeof(asn_DEF_ForbiddenInterRATs_tags_1) - /sizeof(asn_DEF_ForbiddenInterRATs_tags_1[0]), /* 1 */ - asn_DEF_ForbiddenInterRATs_tags_1, /* Same as above */ - sizeof(asn_DEF_ForbiddenInterRATs_tags_1) - /sizeof(asn_DEF_ForbiddenInterRATs_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_ForbiddenInterRATs_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_ForbiddenInterRATs_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/ForbiddenInterRATs.h b/e2sim/previous/ASN1c/ForbiddenInterRATs.h deleted file mode 100644 index de1572a..0000000 --- a/e2sim/previous/ASN1c/ForbiddenInterRATs.h +++ /dev/null @@ -1,76 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _ForbiddenInterRATs_H_ -#define _ForbiddenInterRATs_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum ForbiddenInterRATs { - ForbiddenInterRATs_all = 0, - ForbiddenInterRATs_geran = 1, - ForbiddenInterRATs_utran = 2, - ForbiddenInterRATs_cdma2000 = 3, - /* - * Enumeration is extensible - */ - ForbiddenInterRATs_geranandutran = 4, - ForbiddenInterRATs_cdma2000andutran = 5 -} e_ForbiddenInterRATs; - -/* ForbiddenInterRATs */ -typedef long ForbiddenInterRATs_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_ForbiddenInterRATs_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_ForbiddenInterRATs; -extern const asn_INTEGER_specifics_t asn_SPC_ForbiddenInterRATs_specs_1; -asn_struct_free_f ForbiddenInterRATs_free; -asn_struct_print_f ForbiddenInterRATs_print; -asn_constr_check_f ForbiddenInterRATs_constraint; -ber_type_decoder_f ForbiddenInterRATs_decode_ber; -der_type_encoder_f ForbiddenInterRATs_encode_der; -xer_type_decoder_f ForbiddenInterRATs_decode_xer; -xer_type_encoder_f ForbiddenInterRATs_encode_xer; -per_type_decoder_f ForbiddenInterRATs_decode_uper; -per_type_encoder_f ForbiddenInterRATs_encode_uper; -per_type_decoder_f ForbiddenInterRATs_decode_aper; -per_type_encoder_f ForbiddenInterRATs_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _ForbiddenInterRATs_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/ForbiddenLACs.c b/e2sim/previous/ASN1c/ForbiddenLACs.c deleted file mode 100644 index 169e170..0000000 --- a/e2sim/previous/ASN1c/ForbiddenLACs.c +++ /dev/null @@ -1,67 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "ForbiddenLACs.h" - -asn_per_constraints_t asn_PER_type_ForbiddenLACs_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 12, 12, 1, 4096 } /* (SIZE(1..4096)) */, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_ForbiddenLACs_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), - 0, - &asn_DEF_LAC, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ForbiddenLACs_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ForbiddenLACs_specs_1 = { - sizeof(struct ForbiddenLACs), - offsetof(struct ForbiddenLACs, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ForbiddenLACs = { - "ForbiddenLACs", - "ForbiddenLACs", - &asn_OP_SEQUENCE_OF, - asn_DEF_ForbiddenLACs_tags_1, - sizeof(asn_DEF_ForbiddenLACs_tags_1) - /sizeof(asn_DEF_ForbiddenLACs_tags_1[0]), /* 1 */ - asn_DEF_ForbiddenLACs_tags_1, /* Same as above */ - sizeof(asn_DEF_ForbiddenLACs_tags_1) - /sizeof(asn_DEF_ForbiddenLACs_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_ForbiddenLACs_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_ForbiddenLACs_1, - 1, /* Single element */ - &asn_SPC_ForbiddenLACs_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/ForbiddenLACs.h b/e2sim/previous/ASN1c/ForbiddenLACs.h deleted file mode 100644 index f736fd5..0000000 --- a/e2sim/previous/ASN1c/ForbiddenLACs.h +++ /dev/null @@ -1,60 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _ForbiddenLACs_H_ -#define _ForbiddenLACs_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "LAC.h" -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* ForbiddenLACs */ -typedef struct ForbiddenLACs { - A_SEQUENCE_OF(LAC_t) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ForbiddenLACs_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ForbiddenLACs; -extern asn_SET_OF_specifics_t asn_SPC_ForbiddenLACs_specs_1; -extern asn_TYPE_member_t asn_MBR_ForbiddenLACs_1[1]; -extern asn_per_constraints_t asn_PER_type_ForbiddenLACs_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _ForbiddenLACs_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/ForbiddenLAs-Item.c b/e2sim/previous/ASN1c/ForbiddenLAs-Item.c deleted file mode 100644 index d3c0d89..0000000 --- a/e2sim/previous/ASN1c/ForbiddenLAs-Item.c +++ /dev/null @@ -1,91 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "ForbiddenLAs-Item.h" - -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_ForbiddenLAs_Item_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct ForbiddenLAs_Item, pLMN_Identity), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_PLMN_Identity, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "pLMN-Identity" - }, - { ATF_NOFLAGS, 0, offsetof(struct ForbiddenLAs_Item, forbiddenLACs), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ForbiddenLACs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "forbiddenLACs" - }, - { ATF_POINTER, 1, offsetof(struct ForbiddenLAs_Item, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P147, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_ForbiddenLAs_Item_oms_1[] = { 2 }; -static const ber_tlv_tag_t asn_DEF_ForbiddenLAs_Item_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ForbiddenLAs_Item_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pLMN-Identity */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* forbiddenLACs */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ForbiddenLAs_Item_specs_1 = { - sizeof(struct ForbiddenLAs_Item), - offsetof(struct ForbiddenLAs_Item, _asn_ctx), - asn_MAP_ForbiddenLAs_Item_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_ForbiddenLAs_Item_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ForbiddenLAs_Item = { - "ForbiddenLAs-Item", - "ForbiddenLAs-Item", - &asn_OP_SEQUENCE, - asn_DEF_ForbiddenLAs_Item_tags_1, - sizeof(asn_DEF_ForbiddenLAs_Item_tags_1) - /sizeof(asn_DEF_ForbiddenLAs_Item_tags_1[0]), /* 1 */ - asn_DEF_ForbiddenLAs_Item_tags_1, /* Same as above */ - sizeof(asn_DEF_ForbiddenLAs_Item_tags_1) - /sizeof(asn_DEF_ForbiddenLAs_Item_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ForbiddenLAs_Item_1, - 3, /* Elements count */ - &asn_SPC_ForbiddenLAs_Item_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/ForbiddenLAs-Item.h b/e2sim/previous/ASN1c/ForbiddenLAs-Item.h deleted file mode 100644 index 45a0eb4..0000000 --- a/e2sim/previous/ASN1c/ForbiddenLAs-Item.h +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _ForbiddenLAs_Item_H_ -#define _ForbiddenLAs_Item_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "PLMN-Identity.h" -#include "ForbiddenLACs.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* ForbiddenLAs-Item */ -typedef struct ForbiddenLAs_Item { - PLMN_Identity_t pLMN_Identity; - ForbiddenLACs_t forbiddenLACs; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ForbiddenLAs_Item_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ForbiddenLAs_Item; -extern asn_SEQUENCE_specifics_t asn_SPC_ForbiddenLAs_Item_specs_1; -extern asn_TYPE_member_t asn_MBR_ForbiddenLAs_Item_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _ForbiddenLAs_Item_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/ForbiddenLAs.c b/e2sim/previous/ASN1c/ForbiddenLAs.c deleted file mode 100644 index 4257704..0000000 --- a/e2sim/previous/ASN1c/ForbiddenLAs.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "ForbiddenLAs.h" - -#include "ForbiddenLAs-Item.h" -asn_per_constraints_t asn_PER_type_ForbiddenLAs_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 4, 4, 1, 16 } /* (SIZE(1..16)) */, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_ForbiddenLAs_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ForbiddenLAs_Item, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ForbiddenLAs_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ForbiddenLAs_specs_1 = { - sizeof(struct ForbiddenLAs), - offsetof(struct ForbiddenLAs, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ForbiddenLAs = { - "ForbiddenLAs", - "ForbiddenLAs", - &asn_OP_SEQUENCE_OF, - asn_DEF_ForbiddenLAs_tags_1, - sizeof(asn_DEF_ForbiddenLAs_tags_1) - /sizeof(asn_DEF_ForbiddenLAs_tags_1[0]), /* 1 */ - asn_DEF_ForbiddenLAs_tags_1, /* Same as above */ - sizeof(asn_DEF_ForbiddenLAs_tags_1) - /sizeof(asn_DEF_ForbiddenLAs_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_ForbiddenLAs_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_ForbiddenLAs_1, - 1, /* Single element */ - &asn_SPC_ForbiddenLAs_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/ForbiddenLAs.h b/e2sim/previous/ASN1c/ForbiddenLAs.h deleted file mode 100644 index 4381cae..0000000 --- a/e2sim/previous/ASN1c/ForbiddenLAs.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _ForbiddenLAs_H_ -#define _ForbiddenLAs_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ForbiddenLAs_Item; - -/* ForbiddenLAs */ -typedef struct ForbiddenLAs { - A_SEQUENCE_OF(struct ForbiddenLAs_Item) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ForbiddenLAs_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ForbiddenLAs; -extern asn_SET_OF_specifics_t asn_SPC_ForbiddenLAs_specs_1; -extern asn_TYPE_member_t asn_MBR_ForbiddenLAs_1[1]; -extern asn_per_constraints_t asn_PER_type_ForbiddenLAs_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _ForbiddenLAs_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/ForbiddenTACs.c b/e2sim/previous/ASN1c/ForbiddenTACs.c deleted file mode 100644 index 6bda2f0..0000000 --- a/e2sim/previous/ASN1c/ForbiddenTACs.c +++ /dev/null @@ -1,67 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "ForbiddenTACs.h" - -asn_per_constraints_t asn_PER_type_ForbiddenTACs_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 12, 12, 1, 4096 } /* (SIZE(1..4096)) */, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_ForbiddenTACs_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), - 0, - &asn_DEF_TAC, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ForbiddenTACs_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ForbiddenTACs_specs_1 = { - sizeof(struct ForbiddenTACs), - offsetof(struct ForbiddenTACs, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ForbiddenTACs = { - "ForbiddenTACs", - "ForbiddenTACs", - &asn_OP_SEQUENCE_OF, - asn_DEF_ForbiddenTACs_tags_1, - sizeof(asn_DEF_ForbiddenTACs_tags_1) - /sizeof(asn_DEF_ForbiddenTACs_tags_1[0]), /* 1 */ - asn_DEF_ForbiddenTACs_tags_1, /* Same as above */ - sizeof(asn_DEF_ForbiddenTACs_tags_1) - /sizeof(asn_DEF_ForbiddenTACs_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_ForbiddenTACs_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_ForbiddenTACs_1, - 1, /* Single element */ - &asn_SPC_ForbiddenTACs_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/ForbiddenTACs.h b/e2sim/previous/ASN1c/ForbiddenTACs.h deleted file mode 100644 index ed844bb..0000000 --- a/e2sim/previous/ASN1c/ForbiddenTACs.h +++ /dev/null @@ -1,60 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _ForbiddenTACs_H_ -#define _ForbiddenTACs_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "TAC.h" -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* ForbiddenTACs */ -typedef struct ForbiddenTACs { - A_SEQUENCE_OF(TAC_t) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ForbiddenTACs_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ForbiddenTACs; -extern asn_SET_OF_specifics_t asn_SPC_ForbiddenTACs_specs_1; -extern asn_TYPE_member_t asn_MBR_ForbiddenTACs_1[1]; -extern asn_per_constraints_t asn_PER_type_ForbiddenTACs_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _ForbiddenTACs_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/ForbiddenTAs-Item.c b/e2sim/previous/ASN1c/ForbiddenTAs-Item.c deleted file mode 100644 index 3d3379d..0000000 --- a/e2sim/previous/ASN1c/ForbiddenTAs-Item.c +++ /dev/null @@ -1,91 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "ForbiddenTAs-Item.h" - -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_ForbiddenTAs_Item_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct ForbiddenTAs_Item, pLMN_Identity), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_PLMN_Identity, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "pLMN-Identity" - }, - { ATF_NOFLAGS, 0, offsetof(struct ForbiddenTAs_Item, forbiddenTACs), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ForbiddenTACs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "forbiddenTACs" - }, - { ATF_POINTER, 1, offsetof(struct ForbiddenTAs_Item, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P146, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_ForbiddenTAs_Item_oms_1[] = { 2 }; -static const ber_tlv_tag_t asn_DEF_ForbiddenTAs_Item_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ForbiddenTAs_Item_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pLMN-Identity */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* forbiddenTACs */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ForbiddenTAs_Item_specs_1 = { - sizeof(struct ForbiddenTAs_Item), - offsetof(struct ForbiddenTAs_Item, _asn_ctx), - asn_MAP_ForbiddenTAs_Item_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_ForbiddenTAs_Item_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ForbiddenTAs_Item = { - "ForbiddenTAs-Item", - "ForbiddenTAs-Item", - &asn_OP_SEQUENCE, - asn_DEF_ForbiddenTAs_Item_tags_1, - sizeof(asn_DEF_ForbiddenTAs_Item_tags_1) - /sizeof(asn_DEF_ForbiddenTAs_Item_tags_1[0]), /* 1 */ - asn_DEF_ForbiddenTAs_Item_tags_1, /* Same as above */ - sizeof(asn_DEF_ForbiddenTAs_Item_tags_1) - /sizeof(asn_DEF_ForbiddenTAs_Item_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ForbiddenTAs_Item_1, - 3, /* Elements count */ - &asn_SPC_ForbiddenTAs_Item_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/ForbiddenTAs-Item.h b/e2sim/previous/ASN1c/ForbiddenTAs-Item.h deleted file mode 100644 index 81b912b..0000000 --- a/e2sim/previous/ASN1c/ForbiddenTAs-Item.h +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _ForbiddenTAs_Item_H_ -#define _ForbiddenTAs_Item_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "PLMN-Identity.h" -#include "ForbiddenTACs.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* ForbiddenTAs-Item */ -typedef struct ForbiddenTAs_Item { - PLMN_Identity_t pLMN_Identity; - ForbiddenTACs_t forbiddenTACs; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ForbiddenTAs_Item_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ForbiddenTAs_Item; -extern asn_SEQUENCE_specifics_t asn_SPC_ForbiddenTAs_Item_specs_1; -extern asn_TYPE_member_t asn_MBR_ForbiddenTAs_Item_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _ForbiddenTAs_Item_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/ForbiddenTAs.c b/e2sim/previous/ASN1c/ForbiddenTAs.c deleted file mode 100644 index 382698d..0000000 --- a/e2sim/previous/ASN1c/ForbiddenTAs.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "ForbiddenTAs.h" - -#include "ForbiddenTAs-Item.h" -asn_per_constraints_t asn_PER_type_ForbiddenTAs_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 4, 4, 1, 16 } /* (SIZE(1..16)) */, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_ForbiddenTAs_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ForbiddenTAs_Item, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ForbiddenTAs_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ForbiddenTAs_specs_1 = { - sizeof(struct ForbiddenTAs), - offsetof(struct ForbiddenTAs, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ForbiddenTAs = { - "ForbiddenTAs", - "ForbiddenTAs", - &asn_OP_SEQUENCE_OF, - asn_DEF_ForbiddenTAs_tags_1, - sizeof(asn_DEF_ForbiddenTAs_tags_1) - /sizeof(asn_DEF_ForbiddenTAs_tags_1[0]), /* 1 */ - asn_DEF_ForbiddenTAs_tags_1, /* Same as above */ - sizeof(asn_DEF_ForbiddenTAs_tags_1) - /sizeof(asn_DEF_ForbiddenTAs_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_ForbiddenTAs_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_ForbiddenTAs_1, - 1, /* Single element */ - &asn_SPC_ForbiddenTAs_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/ForbiddenTAs.h b/e2sim/previous/ASN1c/ForbiddenTAs.h deleted file mode 100644 index a60d37a..0000000 --- a/e2sim/previous/ASN1c/ForbiddenTAs.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _ForbiddenTAs_H_ -#define _ForbiddenTAs_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ForbiddenTAs_Item; - -/* ForbiddenTAs */ -typedef struct ForbiddenTAs { - A_SEQUENCE_OF(struct ForbiddenTAs_Item) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ForbiddenTAs_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ForbiddenTAs; -extern asn_SET_OF_specifics_t asn_SPC_ForbiddenTAs_specs_1; -extern asn_TYPE_member_t asn_MBR_ForbiddenTAs_1[1]; -extern asn_per_constraints_t asn_PER_type_ForbiddenTAs_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _ForbiddenTAs_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/Fourframes.c b/e2sim/previous/ASN1c/Fourframes.c deleted file mode 100644 index 0fa474b..0000000 --- a/e2sim/previous/ASN1c/Fourframes.c +++ /dev/null @@ -1,85 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "Fourframes.h" - -int -Fourframes_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if(st->size > 0) { - /* Size in bits */ - size = 8 * st->size - (st->bits_unused & 0x07); - } else { - size = 0; - } - - if((size == 24)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using BIT_STRING, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_Fourframes_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 0, 0, 24, 24 } /* (SIZE(24..24)) */, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_Fourframes_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_Fourframes = { - "Fourframes", - "Fourframes", - &asn_OP_BIT_STRING, - asn_DEF_Fourframes_tags_1, - sizeof(asn_DEF_Fourframes_tags_1) - /sizeof(asn_DEF_Fourframes_tags_1[0]), /* 1 */ - asn_DEF_Fourframes_tags_1, /* Same as above */ - sizeof(asn_DEF_Fourframes_tags_1) - /sizeof(asn_DEF_Fourframes_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_Fourframes_constr_1, Fourframes_constraint }, - 0, 0, /* No members */ - &asn_SPC_BIT_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/Fourframes.h b/e2sim/previous/ASN1c/Fourframes.h deleted file mode 100644 index 21a28c1..0000000 --- a/e2sim/previous/ASN1c/Fourframes.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _Fourframes_H_ -#define _Fourframes_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "BIT_STRING.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Fourframes */ -typedef BIT_STRING_t Fourframes_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_Fourframes_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_Fourframes; -asn_struct_free_f Fourframes_free; -asn_struct_print_f Fourframes_print; -asn_constr_check_f Fourframes_constraint; -ber_type_decoder_f Fourframes_decode_ber; -der_type_encoder_f Fourframes_encode_der; -xer_type_decoder_f Fourframes_decode_xer; -xer_type_encoder_f Fourframes_encode_xer; -per_type_decoder_f Fourframes_decode_uper; -per_type_encoder_f Fourframes_encode_uper; -per_type_decoder_f Fourframes_decode_aper; -per_type_encoder_f Fourframes_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _Fourframes_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/FreqBandIndicator.c b/e2sim/previous/ASN1c/FreqBandIndicator.c deleted file mode 100644 index aa74a3f..0000000 --- a/e2sim/previous/ASN1c/FreqBandIndicator.c +++ /dev/null @@ -1,79 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "FreqBandIndicator.h" - -int -FreqBandIndicator_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 1 && value <= 256)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using NativeInteger, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_FreqBandIndicator_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 8, 8, 1, 256 } /* (1..256,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_FreqBandIndicator_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_FreqBandIndicator = { - "FreqBandIndicator", - "FreqBandIndicator", - &asn_OP_NativeInteger, - asn_DEF_FreqBandIndicator_tags_1, - sizeof(asn_DEF_FreqBandIndicator_tags_1) - /sizeof(asn_DEF_FreqBandIndicator_tags_1[0]), /* 1 */ - asn_DEF_FreqBandIndicator_tags_1, /* Same as above */ - sizeof(asn_DEF_FreqBandIndicator_tags_1) - /sizeof(asn_DEF_FreqBandIndicator_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_FreqBandIndicator_constr_1, FreqBandIndicator_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/previous/ASN1c/FreqBandIndicator.h b/e2sim/previous/ASN1c/FreqBandIndicator.h deleted file mode 100644 index 8f01f3f..0000000 --- a/e2sim/previous/ASN1c/FreqBandIndicator.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _FreqBandIndicator_H_ -#define _FreqBandIndicator_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeInteger.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* FreqBandIndicator */ -typedef long FreqBandIndicator_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_FreqBandIndicator_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_FreqBandIndicator; -asn_struct_free_f FreqBandIndicator_free; -asn_struct_print_f FreqBandIndicator_print; -asn_constr_check_f FreqBandIndicator_constraint; -ber_type_decoder_f FreqBandIndicator_decode_ber; -der_type_encoder_f FreqBandIndicator_encode_der; -xer_type_decoder_f FreqBandIndicator_decode_xer; -xer_type_encoder_f FreqBandIndicator_encode_xer; -per_type_decoder_f FreqBandIndicator_decode_uper; -per_type_encoder_f FreqBandIndicator_encode_uper; -per_type_decoder_f FreqBandIndicator_decode_aper; -per_type_encoder_f FreqBandIndicator_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _FreqBandIndicator_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/FreqBandIndicatorPriority.c b/e2sim/previous/ASN1c/FreqBandIndicatorPriority.c deleted file mode 100644 index 21e31e3..0000000 --- a/e2sim/previous/ASN1c/FreqBandIndicatorPriority.c +++ /dev/null @@ -1,73 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "FreqBandIndicatorPriority.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_FreqBandIndicatorPriority_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_FreqBandIndicatorPriority_value2enum_1[] = { - { 0, 15, "not-broadcasted" }, - { 1, 11, "broadcasted" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_FreqBandIndicatorPriority_enum2value_1[] = { - 1, /* broadcasted(1) */ - 0 /* not-broadcasted(0) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_FreqBandIndicatorPriority_specs_1 = { - asn_MAP_FreqBandIndicatorPriority_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_FreqBandIndicatorPriority_enum2value_1, /* N => "tag"; sorted by N */ - 2, /* Number of elements in the maps */ - 3, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_FreqBandIndicatorPriority_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_FreqBandIndicatorPriority = { - "FreqBandIndicatorPriority", - "FreqBandIndicatorPriority", - &asn_OP_NativeEnumerated, - asn_DEF_FreqBandIndicatorPriority_tags_1, - sizeof(asn_DEF_FreqBandIndicatorPriority_tags_1) - /sizeof(asn_DEF_FreqBandIndicatorPriority_tags_1[0]), /* 1 */ - asn_DEF_FreqBandIndicatorPriority_tags_1, /* Same as above */ - sizeof(asn_DEF_FreqBandIndicatorPriority_tags_1) - /sizeof(asn_DEF_FreqBandIndicatorPriority_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_FreqBandIndicatorPriority_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_FreqBandIndicatorPriority_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/FreqBandIndicatorPriority.h b/e2sim/previous/ASN1c/FreqBandIndicatorPriority.h deleted file mode 100644 index 5314d67..0000000 --- a/e2sim/previous/ASN1c/FreqBandIndicatorPriority.h +++ /dev/null @@ -1,72 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _FreqBandIndicatorPriority_H_ -#define _FreqBandIndicatorPriority_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum FreqBandIndicatorPriority { - FreqBandIndicatorPriority_not_broadcasted = 0, - FreqBandIndicatorPriority_broadcasted = 1 - /* - * Enumeration is extensible - */ -} e_FreqBandIndicatorPriority; - -/* FreqBandIndicatorPriority */ -typedef long FreqBandIndicatorPriority_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_FreqBandIndicatorPriority_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_FreqBandIndicatorPriority; -extern const asn_INTEGER_specifics_t asn_SPC_FreqBandIndicatorPriority_specs_1; -asn_struct_free_f FreqBandIndicatorPriority_free; -asn_struct_print_f FreqBandIndicatorPriority_print; -asn_constr_check_f FreqBandIndicatorPriority_constraint; -ber_type_decoder_f FreqBandIndicatorPriority_decode_ber; -der_type_encoder_f FreqBandIndicatorPriority_encode_der; -xer_type_decoder_f FreqBandIndicatorPriority_decode_xer; -xer_type_encoder_f FreqBandIndicatorPriority_encode_xer; -per_type_decoder_f FreqBandIndicatorPriority_decode_uper; -per_type_encoder_f FreqBandIndicatorPriority_encode_uper; -per_type_decoder_f FreqBandIndicatorPriority_decode_aper; -per_type_encoder_f FreqBandIndicatorPriority_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _FreqBandIndicatorPriority_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/FreqBandNrItem.c b/e2sim/previous/ASN1c/FreqBandNrItem.c deleted file mode 100644 index 4f9c1db..0000000 --- a/e2sim/previous/ASN1c/FreqBandNrItem.c +++ /dev/null @@ -1,195 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "FreqBandNrItem.h" - -#include "ProtocolExtensionContainer.h" -#include "SupportedSULFreqBandItem.h" -static int -memb_freqBandIndicatorNr_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 1 && value <= 1024)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_supportedSULBandList_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - /* Determine the number of elements */ - size = _A_CSEQUENCE_FROM_VOID(sptr)->count; - - if((size <= 32)) { - /* Perform validation of the inner elements */ - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_per_constraints_t asn_PER_type_supportedSULBandList_constr_3 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 6, 6, 0, 32 } /* (SIZE(0..32)) */, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_freqBandIndicatorNr_constr_2 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 10, 10, 1, 1024 } /* (1..1024,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_supportedSULBandList_constr_3 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 6, 6, 0, 32 } /* (SIZE(0..32)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_supportedSULBandList_3[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_SupportedSULFreqBandItem, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_supportedSULBandList_tags_3[] = { - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_supportedSULBandList_specs_3 = { - sizeof(struct FreqBandNrItem__supportedSULBandList), - offsetof(struct FreqBandNrItem__supportedSULBandList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_supportedSULBandList_3 = { - "supportedSULBandList", - "supportedSULBandList", - &asn_OP_SEQUENCE_OF, - asn_DEF_supportedSULBandList_tags_3, - sizeof(asn_DEF_supportedSULBandList_tags_3) - /sizeof(asn_DEF_supportedSULBandList_tags_3[0]) - 1, /* 1 */ - asn_DEF_supportedSULBandList_tags_3, /* Same as above */ - sizeof(asn_DEF_supportedSULBandList_tags_3) - /sizeof(asn_DEF_supportedSULBandList_tags_3[0]), /* 2 */ - { 0, &asn_PER_type_supportedSULBandList_constr_3, SEQUENCE_OF_constraint }, - asn_MBR_supportedSULBandList_3, - 1, /* Single element */ - &asn_SPC_supportedSULBandList_specs_3 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_FreqBandNrItem_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct FreqBandNrItem, freqBandIndicatorNr), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { 0, &asn_PER_memb_freqBandIndicatorNr_constr_2, memb_freqBandIndicatorNr_constraint_1 }, - 0, 0, /* No default value */ - "freqBandIndicatorNr" - }, - { ATF_NOFLAGS, 0, offsetof(struct FreqBandNrItem, supportedSULBandList), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - 0, - &asn_DEF_supportedSULBandList_3, - 0, - { 0, &asn_PER_memb_supportedSULBandList_constr_3, memb_supportedSULBandList_constraint_1 }, - 0, 0, /* No default value */ - "supportedSULBandList" - }, - { ATF_POINTER, 1, offsetof(struct FreqBandNrItem, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P148, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_FreqBandNrItem_oms_1[] = { 2 }; -static const ber_tlv_tag_t asn_DEF_FreqBandNrItem_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_FreqBandNrItem_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* freqBandIndicatorNr */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* supportedSULBandList */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_FreqBandNrItem_specs_1 = { - sizeof(struct FreqBandNrItem), - offsetof(struct FreqBandNrItem, _asn_ctx), - asn_MAP_FreqBandNrItem_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_FreqBandNrItem_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_FreqBandNrItem = { - "FreqBandNrItem", - "FreqBandNrItem", - &asn_OP_SEQUENCE, - asn_DEF_FreqBandNrItem_tags_1, - sizeof(asn_DEF_FreqBandNrItem_tags_1) - /sizeof(asn_DEF_FreqBandNrItem_tags_1[0]), /* 1 */ - asn_DEF_FreqBandNrItem_tags_1, /* Same as above */ - sizeof(asn_DEF_FreqBandNrItem_tags_1) - /sizeof(asn_DEF_FreqBandNrItem_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_FreqBandNrItem_1, - 3, /* Elements count */ - &asn_SPC_FreqBandNrItem_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/FreqBandNrItem.h b/e2sim/previous/ASN1c/FreqBandNrItem.h deleted file mode 100644 index b095d40..0000000 --- a/e2sim/previous/ASN1c/FreqBandNrItem.h +++ /dev/null @@ -1,75 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _FreqBandNrItem_H_ -#define _FreqBandNrItem_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeInteger.h" -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; -struct SupportedSULFreqBandItem; - -/* FreqBandNrItem */ -typedef struct FreqBandNrItem { - long freqBandIndicatorNr; - struct FreqBandNrItem__supportedSULBandList { - A_SEQUENCE_OF(struct SupportedSULFreqBandItem) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } supportedSULBandList; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} FreqBandNrItem_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_FreqBandNrItem; -extern asn_SEQUENCE_specifics_t asn_SPC_FreqBandNrItem_specs_1; -extern asn_TYPE_member_t asn_MBR_FreqBandNrItem_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _FreqBandNrItem_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/GBR-QosInformation.c b/e2sim/previous/ASN1c/GBR-QosInformation.c deleted file mode 100644 index 58c218f..0000000 --- a/e2sim/previous/ASN1c/GBR-QosInformation.c +++ /dev/null @@ -1,111 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "GBR-QosInformation.h" - -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_GBR_QosInformation_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct GBR_QosInformation, e_RAB_MaximumBitrateDL), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_BitRate, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "e-RAB-MaximumBitrateDL" - }, - { ATF_NOFLAGS, 0, offsetof(struct GBR_QosInformation, e_RAB_MaximumBitrateUL), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_BitRate, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "e-RAB-MaximumBitrateUL" - }, - { ATF_NOFLAGS, 0, offsetof(struct GBR_QosInformation, e_RAB_GuaranteedBitrateDL), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_BitRate, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "e-RAB-GuaranteedBitrateDL" - }, - { ATF_NOFLAGS, 0, offsetof(struct GBR_QosInformation, e_RAB_GuaranteedBitrateUL), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_BitRate, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "e-RAB-GuaranteedBitrateUL" - }, - { ATF_POINTER, 1, offsetof(struct GBR_QosInformation, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (4 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P149, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_GBR_QosInformation_oms_1[] = { 4 }; -static const ber_tlv_tag_t asn_DEF_GBR_QosInformation_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_GBR_QosInformation_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e-RAB-MaximumBitrateDL */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* e-RAB-MaximumBitrateUL */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* e-RAB-GuaranteedBitrateDL */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* e-RAB-GuaranteedBitrateUL */ - { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_GBR_QosInformation_specs_1 = { - sizeof(struct GBR_QosInformation), - offsetof(struct GBR_QosInformation, _asn_ctx), - asn_MAP_GBR_QosInformation_tag2el_1, - 5, /* Count of tags in the map */ - asn_MAP_GBR_QosInformation_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 5, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_GBR_QosInformation = { - "GBR-QosInformation", - "GBR-QosInformation", - &asn_OP_SEQUENCE, - asn_DEF_GBR_QosInformation_tags_1, - sizeof(asn_DEF_GBR_QosInformation_tags_1) - /sizeof(asn_DEF_GBR_QosInformation_tags_1[0]), /* 1 */ - asn_DEF_GBR_QosInformation_tags_1, /* Same as above */ - sizeof(asn_DEF_GBR_QosInformation_tags_1) - /sizeof(asn_DEF_GBR_QosInformation_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_GBR_QosInformation_1, - 5, /* Elements count */ - &asn_SPC_GBR_QosInformation_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/GBR-QosInformation.h b/e2sim/previous/ASN1c/GBR-QosInformation.h deleted file mode 100644 index c8c3df1..0000000 --- a/e2sim/previous/ASN1c/GBR-QosInformation.h +++ /dev/null @@ -1,69 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _GBR_QosInformation_H_ -#define _GBR_QosInformation_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "BitRate.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* GBR-QosInformation */ -typedef struct GBR_QosInformation { - BitRate_t e_RAB_MaximumBitrateDL; - BitRate_t e_RAB_MaximumBitrateUL; - BitRate_t e_RAB_GuaranteedBitrateDL; - BitRate_t e_RAB_GuaranteedBitrateUL; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} GBR_QosInformation_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_GBR_QosInformation; -extern asn_SEQUENCE_specifics_t asn_SPC_GBR_QosInformation_specs_1; -extern asn_TYPE_member_t asn_MBR_GBR_QosInformation_1[5]; - -#ifdef __cplusplus -} -#endif - -#endif /* _GBR_QosInformation_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/GNB-ID.c b/e2sim/previous/ASN1c/GNB-ID.c deleted file mode 100644 index 4d03567..0000000 --- a/e2sim/previous/ASN1c/GNB-ID.c +++ /dev/null @@ -1,106 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "GNB-ID.h" - -static int -memb_gNB_ID_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if(st->size > 0) { - /* Size in bits */ - size = 8 * st->size - (st->bits_unused & 0x07); - } else { - size = 0; - } - - if((size >= 22 && size <= 32)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_per_constraints_t asn_PER_memb_gNB_ID_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 4, 4, 22, 32 } /* (SIZE(22..32)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_GNB_ID_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 0, 0 } /* (0..0,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_GNB_ID_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct GNB_ID, choice.gNB_ID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_BIT_STRING, - 0, - { 0, &asn_PER_memb_gNB_ID_constr_2, memb_gNB_ID_constraint_1 }, - 0, 0, /* No default value */ - "gNB-ID" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_GNB_ID_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* gNB-ID */ -}; -asn_CHOICE_specifics_t asn_SPC_GNB_ID_specs_1 = { - sizeof(struct GNB_ID), - offsetof(struct GNB_ID, _asn_ctx), - offsetof(struct GNB_ID, present), - sizeof(((struct GNB_ID *)0)->present), - asn_MAP_GNB_ID_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, - 1 /* Extensions start */ -}; -asn_TYPE_descriptor_t asn_DEF_GNB_ID = { - "GNB-ID", - "GNB-ID", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, &asn_PER_type_GNB_ID_constr_1, CHOICE_constraint }, - asn_MBR_GNB_ID_1, - 1, /* Elements count */ - &asn_SPC_GNB_ID_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/GNB-ID.h b/e2sim/previous/ASN1c/GNB-ID.h deleted file mode 100644 index 2371e04..0000000 --- a/e2sim/previous/ASN1c/GNB-ID.h +++ /dev/null @@ -1,74 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _GNB_ID_H_ -#define _GNB_ID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "BIT_STRING.h" -#include "constr_CHOICE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum GNB_ID_PR { - GNB_ID_PR_NOTHING, /* No components present */ - GNB_ID_PR_gNB_ID - /* Extensions may appear below */ - -} GNB_ID_PR; - -/* GNB-ID */ -typedef struct GNB_ID { - GNB_ID_PR present; - union GNB_ID_u { - BIT_STRING_t gNB_ID; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} GNB_ID_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_GNB_ID; -extern asn_CHOICE_specifics_t asn_SPC_GNB_ID_specs_1; -extern asn_TYPE_member_t asn_MBR_GNB_ID_1[1]; -extern asn_per_constraints_t asn_PER_type_GNB_ID_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _GNB_ID_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/GNBOverloadInformation.c b/e2sim/previous/ASN1c/GNBOverloadInformation.c deleted file mode 100644 index ad8f380..0000000 --- a/e2sim/previous/ASN1c/GNBOverloadInformation.c +++ /dev/null @@ -1,73 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "GNBOverloadInformation.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_GNBOverloadInformation_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_GNBOverloadInformation_value2enum_1[] = { - { 0, 10, "overloaded" }, - { 1, 14, "not-overloaded" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_GNBOverloadInformation_enum2value_1[] = { - 1, /* not-overloaded(1) */ - 0 /* overloaded(0) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_GNBOverloadInformation_specs_1 = { - asn_MAP_GNBOverloadInformation_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_GNBOverloadInformation_enum2value_1, /* N => "tag"; sorted by N */ - 2, /* Number of elements in the maps */ - 3, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_GNBOverloadInformation_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_GNBOverloadInformation = { - "GNBOverloadInformation", - "GNBOverloadInformation", - &asn_OP_NativeEnumerated, - asn_DEF_GNBOverloadInformation_tags_1, - sizeof(asn_DEF_GNBOverloadInformation_tags_1) - /sizeof(asn_DEF_GNBOverloadInformation_tags_1[0]), /* 1 */ - asn_DEF_GNBOverloadInformation_tags_1, /* Same as above */ - sizeof(asn_DEF_GNBOverloadInformation_tags_1) - /sizeof(asn_DEF_GNBOverloadInformation_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_GNBOverloadInformation_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_GNBOverloadInformation_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/GNBOverloadInformation.h b/e2sim/previous/ASN1c/GNBOverloadInformation.h deleted file mode 100644 index bd1597c..0000000 --- a/e2sim/previous/ASN1c/GNBOverloadInformation.h +++ /dev/null @@ -1,72 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _GNBOverloadInformation_H_ -#define _GNBOverloadInformation_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum GNBOverloadInformation { - GNBOverloadInformation_overloaded = 0, - GNBOverloadInformation_not_overloaded = 1 - /* - * Enumeration is extensible - */ -} e_GNBOverloadInformation; - -/* GNBOverloadInformation */ -typedef long GNBOverloadInformation_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_GNBOverloadInformation_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_GNBOverloadInformation; -extern const asn_INTEGER_specifics_t asn_SPC_GNBOverloadInformation_specs_1; -asn_struct_free_f GNBOverloadInformation_free; -asn_struct_print_f GNBOverloadInformation_print; -asn_constr_check_f GNBOverloadInformation_constraint; -ber_type_decoder_f GNBOverloadInformation_decode_ber; -der_type_encoder_f GNBOverloadInformation_encode_der; -xer_type_decoder_f GNBOverloadInformation_decode_xer; -xer_type_encoder_f GNBOverloadInformation_encode_xer; -per_type_decoder_f GNBOverloadInformation_decode_uper; -per_type_encoder_f GNBOverloadInformation_encode_uper; -per_type_decoder_f GNBOverloadInformation_decode_aper; -per_type_encoder_f GNBOverloadInformation_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _GNBOverloadInformation_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/GNBStatusIndication.c b/e2sim/previous/ASN1c/GNBStatusIndication.c deleted file mode 100644 index 50e449b..0000000 --- a/e2sim/previous/ASN1c/GNBStatusIndication.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "GNBStatusIndication.h" - -asn_TYPE_member_t asn_MBR_GNBStatusIndication_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct GNBStatusIndication, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_119P119, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_GNBStatusIndication_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_GNBStatusIndication_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_GNBStatusIndication_specs_1 = { - sizeof(struct GNBStatusIndication), - offsetof(struct GNBStatusIndication, _asn_ctx), - asn_MAP_GNBStatusIndication_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_GNBStatusIndication = { - "GNBStatusIndication", - "GNBStatusIndication", - &asn_OP_SEQUENCE, - asn_DEF_GNBStatusIndication_tags_1, - sizeof(asn_DEF_GNBStatusIndication_tags_1) - /sizeof(asn_DEF_GNBStatusIndication_tags_1[0]), /* 1 */ - asn_DEF_GNBStatusIndication_tags_1, /* Same as above */ - sizeof(asn_DEF_GNBStatusIndication_tags_1) - /sizeof(asn_DEF_GNBStatusIndication_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_GNBStatusIndication_1, - 1, /* Elements count */ - &asn_SPC_GNBStatusIndication_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/GNBStatusIndication.h b/e2sim/previous/ASN1c/GNBStatusIndication.h deleted file mode 100644 index cea74b5..0000000 --- a/e2sim/previous/ASN1c/GNBStatusIndication.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _GNBStatusIndication_H_ -#define _GNBStatusIndication_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* GNBStatusIndication */ -typedef struct GNBStatusIndication { - ProtocolIE_Container_119P119_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} GNBStatusIndication_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_GNBStatusIndication; -extern asn_SEQUENCE_specifics_t asn_SPC_GNBStatusIndication_specs_1; -extern asn_TYPE_member_t asn_MBR_GNBStatusIndication_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _GNBStatusIndication_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/GTP-TEI.c b/e2sim/previous/ASN1c/GTP-TEI.c deleted file mode 100644 index 45b2ff4..0000000 --- a/e2sim/previous/ASN1c/GTP-TEI.c +++ /dev/null @@ -1,80 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "GTP-TEI.h" - -int -GTP_TEI_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - size = st->size; - - if((size == 4)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using OCTET_STRING, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_GTP_TEI_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 0, 0, 4, 4 } /* (SIZE(4..4)) */, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_GTP_TEI_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_GTP_TEI = { - "GTP-TEI", - "GTP-TEI", - &asn_OP_OCTET_STRING, - asn_DEF_GTP_TEI_tags_1, - sizeof(asn_DEF_GTP_TEI_tags_1) - /sizeof(asn_DEF_GTP_TEI_tags_1[0]), /* 1 */ - asn_DEF_GTP_TEI_tags_1, /* Same as above */ - sizeof(asn_DEF_GTP_TEI_tags_1) - /sizeof(asn_DEF_GTP_TEI_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_GTP_TEI_constr_1, GTP_TEI_constraint }, - 0, 0, /* No members */ - &asn_SPC_OCTET_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/GTP-TEI.h b/e2sim/previous/ASN1c/GTP-TEI.h deleted file mode 100644 index 319552a..0000000 --- a/e2sim/previous/ASN1c/GTP-TEI.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _GTP_TEI_H_ -#define _GTP_TEI_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "OCTET_STRING.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* GTP-TEI */ -typedef OCTET_STRING_t GTP_TEI_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_GTP_TEI_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_GTP_TEI; -asn_struct_free_f GTP_TEI_free; -asn_struct_print_f GTP_TEI_print; -asn_constr_check_f GTP_TEI_constraint; -ber_type_decoder_f GTP_TEI_decode_ber; -der_type_encoder_f GTP_TEI_encode_der; -xer_type_decoder_f GTP_TEI_decode_xer; -xer_type_encoder_f GTP_TEI_encode_xer; -per_type_decoder_f GTP_TEI_decode_uper; -per_type_encoder_f GTP_TEI_encode_uper; -per_type_decoder_f GTP_TEI_decode_aper; -per_type_encoder_f GTP_TEI_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _GTP_TEI_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/GTPtunnelEndpoint.c b/e2sim/previous/ASN1c/GTPtunnelEndpoint.c deleted file mode 100644 index 989bb22..0000000 --- a/e2sim/previous/ASN1c/GTPtunnelEndpoint.c +++ /dev/null @@ -1,91 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "GTPtunnelEndpoint.h" - -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_GTPtunnelEndpoint_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct GTPtunnelEndpoint, transportLayerAddress), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_TransportLayerAddress, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "transportLayerAddress" - }, - { ATF_NOFLAGS, 0, offsetof(struct GTPtunnelEndpoint, gTP_TEID), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GTP_TEI, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "gTP-TEID" - }, - { ATF_POINTER, 1, offsetof(struct GTPtunnelEndpoint, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P152, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_GTPtunnelEndpoint_oms_1[] = { 2 }; -static const ber_tlv_tag_t asn_DEF_GTPtunnelEndpoint_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_GTPtunnelEndpoint_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* transportLayerAddress */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* gTP-TEID */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_GTPtunnelEndpoint_specs_1 = { - sizeof(struct GTPtunnelEndpoint), - offsetof(struct GTPtunnelEndpoint, _asn_ctx), - asn_MAP_GTPtunnelEndpoint_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_GTPtunnelEndpoint_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_GTPtunnelEndpoint = { - "GTPtunnelEndpoint", - "GTPtunnelEndpoint", - &asn_OP_SEQUENCE, - asn_DEF_GTPtunnelEndpoint_tags_1, - sizeof(asn_DEF_GTPtunnelEndpoint_tags_1) - /sizeof(asn_DEF_GTPtunnelEndpoint_tags_1[0]), /* 1 */ - asn_DEF_GTPtunnelEndpoint_tags_1, /* Same as above */ - sizeof(asn_DEF_GTPtunnelEndpoint_tags_1) - /sizeof(asn_DEF_GTPtunnelEndpoint_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_GTPtunnelEndpoint_1, - 3, /* Elements count */ - &asn_SPC_GTPtunnelEndpoint_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/GTPtunnelEndpoint.h b/e2sim/previous/ASN1c/GTPtunnelEndpoint.h deleted file mode 100644 index 98e5520..0000000 --- a/e2sim/previous/ASN1c/GTPtunnelEndpoint.h +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _GTPtunnelEndpoint_H_ -#define _GTPtunnelEndpoint_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "TransportLayerAddress.h" -#include "GTP-TEI.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* GTPtunnelEndpoint */ -typedef struct GTPtunnelEndpoint { - TransportLayerAddress_t transportLayerAddress; - GTP_TEI_t gTP_TEID; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} GTPtunnelEndpoint_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_GTPtunnelEndpoint; -extern asn_SEQUENCE_specifics_t asn_SPC_GTPtunnelEndpoint_specs_1; -extern asn_TYPE_member_t asn_MBR_GTPtunnelEndpoint_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _GTPtunnelEndpoint_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/GU-Group-ID.c b/e2sim/previous/ASN1c/GU-Group-ID.c deleted file mode 100644 index 2b8c036..0000000 --- a/e2sim/previous/ASN1c/GU-Group-ID.c +++ /dev/null @@ -1,91 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "GU-Group-ID.h" - -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_GU_Group_ID_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct GU_Group_ID, pLMN_Identity), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_PLMN_Identity, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "pLMN-Identity" - }, - { ATF_NOFLAGS, 0, offsetof(struct GU_Group_ID, mME_Group_ID), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_MME_Group_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "mME-Group-ID" - }, - { ATF_POINTER, 1, offsetof(struct GU_Group_ID, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P153, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_GU_Group_ID_oms_1[] = { 2 }; -static const ber_tlv_tag_t asn_DEF_GU_Group_ID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_GU_Group_ID_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pLMN-Identity */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* mME-Group-ID */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_GU_Group_ID_specs_1 = { - sizeof(struct GU_Group_ID), - offsetof(struct GU_Group_ID, _asn_ctx), - asn_MAP_GU_Group_ID_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_GU_Group_ID_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_GU_Group_ID = { - "GU-Group-ID", - "GU-Group-ID", - &asn_OP_SEQUENCE, - asn_DEF_GU_Group_ID_tags_1, - sizeof(asn_DEF_GU_Group_ID_tags_1) - /sizeof(asn_DEF_GU_Group_ID_tags_1[0]), /* 1 */ - asn_DEF_GU_Group_ID_tags_1, /* Same as above */ - sizeof(asn_DEF_GU_Group_ID_tags_1) - /sizeof(asn_DEF_GU_Group_ID_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_GU_Group_ID_1, - 3, /* Elements count */ - &asn_SPC_GU_Group_ID_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/GU-Group-ID.h b/e2sim/previous/ASN1c/GU-Group-ID.h deleted file mode 100644 index 0f9d44d..0000000 --- a/e2sim/previous/ASN1c/GU-Group-ID.h +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _GU_Group_ID_H_ -#define _GU_Group_ID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "PLMN-Identity.h" -#include "MME-Group-ID.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* GU-Group-ID */ -typedef struct GU_Group_ID { - PLMN_Identity_t pLMN_Identity; - MME_Group_ID_t mME_Group_ID; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} GU_Group_ID_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_GU_Group_ID; -extern asn_SEQUENCE_specifics_t asn_SPC_GU_Group_ID_specs_1; -extern asn_TYPE_member_t asn_MBR_GU_Group_ID_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _GU_Group_ID_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/GUGroupIDList.c b/e2sim/previous/ASN1c/GUGroupIDList.c deleted file mode 100644 index ecf7724..0000000 --- a/e2sim/previous/ASN1c/GUGroupIDList.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "GUGroupIDList.h" - -#include "GU-Group-ID.h" -asn_per_constraints_t asn_PER_type_GUGroupIDList_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 4, 4, 1, 16 } /* (SIZE(1..16)) */, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_GUGroupIDList_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_GU_Group_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_GUGroupIDList_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_GUGroupIDList_specs_1 = { - sizeof(struct GUGroupIDList), - offsetof(struct GUGroupIDList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_GUGroupIDList = { - "GUGroupIDList", - "GUGroupIDList", - &asn_OP_SEQUENCE_OF, - asn_DEF_GUGroupIDList_tags_1, - sizeof(asn_DEF_GUGroupIDList_tags_1) - /sizeof(asn_DEF_GUGroupIDList_tags_1[0]), /* 1 */ - asn_DEF_GUGroupIDList_tags_1, /* Same as above */ - sizeof(asn_DEF_GUGroupIDList_tags_1) - /sizeof(asn_DEF_GUGroupIDList_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_GUGroupIDList_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_GUGroupIDList_1, - 1, /* Single element */ - &asn_SPC_GUGroupIDList_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/GUGroupIDList.h b/e2sim/previous/ASN1c/GUGroupIDList.h deleted file mode 100644 index 14066aa..0000000 --- a/e2sim/previous/ASN1c/GUGroupIDList.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _GUGroupIDList_H_ -#define _GUGroupIDList_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct GU_Group_ID; - -/* GUGroupIDList */ -typedef struct GUGroupIDList { - A_SEQUENCE_OF(struct GU_Group_ID) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} GUGroupIDList_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_GUGroupIDList; -extern asn_SET_OF_specifics_t asn_SPC_GUGroupIDList_specs_1; -extern asn_TYPE_member_t asn_MBR_GUGroupIDList_1[1]; -extern asn_per_constraints_t asn_PER_type_GUGroupIDList_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _GUGroupIDList_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/GUMMEI.c b/e2sim/previous/ASN1c/GUMMEI.c deleted file mode 100644 index dc2aa0a..0000000 --- a/e2sim/previous/ASN1c/GUMMEI.c +++ /dev/null @@ -1,91 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "GUMMEI.h" - -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_GUMMEI_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct GUMMEI, gU_Group_ID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GU_Group_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "gU-Group-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct GUMMEI, mME_Code), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_MME_Code, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "mME-Code" - }, - { ATF_POINTER, 1, offsetof(struct GUMMEI, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P154, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_GUMMEI_oms_1[] = { 2 }; -static const ber_tlv_tag_t asn_DEF_GUMMEI_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_GUMMEI_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* gU-Group-ID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* mME-Code */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_GUMMEI_specs_1 = { - sizeof(struct GUMMEI), - offsetof(struct GUMMEI, _asn_ctx), - asn_MAP_GUMMEI_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_GUMMEI_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_GUMMEI = { - "GUMMEI", - "GUMMEI", - &asn_OP_SEQUENCE, - asn_DEF_GUMMEI_tags_1, - sizeof(asn_DEF_GUMMEI_tags_1) - /sizeof(asn_DEF_GUMMEI_tags_1[0]), /* 1 */ - asn_DEF_GUMMEI_tags_1, /* Same as above */ - sizeof(asn_DEF_GUMMEI_tags_1) - /sizeof(asn_DEF_GUMMEI_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_GUMMEI_1, - 3, /* Elements count */ - &asn_SPC_GUMMEI_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/GUMMEI.h b/e2sim/previous/ASN1c/GUMMEI.h deleted file mode 100644 index 9b9ac44..0000000 --- a/e2sim/previous/ASN1c/GUMMEI.h +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _GUMMEI_H_ -#define _GUMMEI_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "GU-Group-ID.h" -#include "MME-Code.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* GUMMEI */ -typedef struct GUMMEI { - GU_Group_ID_t gU_Group_ID; - MME_Code_t mME_Code; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} GUMMEI_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_GUMMEI; -extern asn_SEQUENCE_specifics_t asn_SPC_GUMMEI_specs_1; -extern asn_TYPE_member_t asn_MBR_GUMMEI_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _GUMMEI_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/GlobalENB-ID.c b/e2sim/previous/ASN1c/GlobalENB-ID.c deleted file mode 100644 index 4d042fc..0000000 --- a/e2sim/previous/ASN1c/GlobalENB-ID.c +++ /dev/null @@ -1,91 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "GlobalENB-ID.h" - -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_GlobalENB_ID_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct GlobalENB_ID, pLMN_Identity), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_PLMN_Identity, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "pLMN-Identity" - }, - { ATF_NOFLAGS, 0, offsetof(struct GlobalENB_ID, eNB_ID), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_ENB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "eNB-ID" - }, - { ATF_POINTER, 1, offsetof(struct GlobalENB_ID, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P150, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_GlobalENB_ID_oms_1[] = { 2 }; -static const ber_tlv_tag_t asn_DEF_GlobalENB_ID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_GlobalENB_ID_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pLMN-Identity */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* eNB-ID */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_GlobalENB_ID_specs_1 = { - sizeof(struct GlobalENB_ID), - offsetof(struct GlobalENB_ID, _asn_ctx), - asn_MAP_GlobalENB_ID_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_GlobalENB_ID_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_GlobalENB_ID = { - "GlobalENB-ID", - "GlobalENB-ID", - &asn_OP_SEQUENCE, - asn_DEF_GlobalENB_ID_tags_1, - sizeof(asn_DEF_GlobalENB_ID_tags_1) - /sizeof(asn_DEF_GlobalENB_ID_tags_1[0]), /* 1 */ - asn_DEF_GlobalENB_ID_tags_1, /* Same as above */ - sizeof(asn_DEF_GlobalENB_ID_tags_1) - /sizeof(asn_DEF_GlobalENB_ID_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_GlobalENB_ID_1, - 3, /* Elements count */ - &asn_SPC_GlobalENB_ID_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/GlobalENB-ID.h b/e2sim/previous/ASN1c/GlobalENB-ID.h deleted file mode 100644 index 2782e11..0000000 --- a/e2sim/previous/ASN1c/GlobalENB-ID.h +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _GlobalENB_ID_H_ -#define _GlobalENB_ID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "PLMN-Identity.h" -#include "ENB-ID.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* GlobalENB-ID */ -typedef struct GlobalENB_ID { - PLMN_Identity_t pLMN_Identity; - ENB_ID_t eNB_ID; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} GlobalENB_ID_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_GlobalENB_ID; -extern asn_SEQUENCE_specifics_t asn_SPC_GlobalENB_ID_specs_1; -extern asn_TYPE_member_t asn_MBR_GlobalENB_ID_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _GlobalENB_ID_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/GlobalGNB-ID.c b/e2sim/previous/ASN1c/GlobalGNB-ID.c deleted file mode 100644 index c8a4a16..0000000 --- a/e2sim/previous/ASN1c/GlobalGNB-ID.c +++ /dev/null @@ -1,91 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "GlobalGNB-ID.h" - -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_GlobalGNB_ID_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct GlobalGNB_ID, pLMN_Identity), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_PLMN_Identity, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "pLMN-Identity" - }, - { ATF_NOFLAGS, 0, offsetof(struct GlobalGNB_ID, gNB_ID), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_GNB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "gNB-ID" - }, - { ATF_POINTER, 1, offsetof(struct GlobalGNB_ID, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P151, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_GlobalGNB_ID_oms_1[] = { 2 }; -static const ber_tlv_tag_t asn_DEF_GlobalGNB_ID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_GlobalGNB_ID_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pLMN-Identity */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* gNB-ID */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_GlobalGNB_ID_specs_1 = { - sizeof(struct GlobalGNB_ID), - offsetof(struct GlobalGNB_ID, _asn_ctx), - asn_MAP_GlobalGNB_ID_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_GlobalGNB_ID_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_GlobalGNB_ID = { - "GlobalGNB-ID", - "GlobalGNB-ID", - &asn_OP_SEQUENCE, - asn_DEF_GlobalGNB_ID_tags_1, - sizeof(asn_DEF_GlobalGNB_ID_tags_1) - /sizeof(asn_DEF_GlobalGNB_ID_tags_1[0]), /* 1 */ - asn_DEF_GlobalGNB_ID_tags_1, /* Same as above */ - sizeof(asn_DEF_GlobalGNB_ID_tags_1) - /sizeof(asn_DEF_GlobalGNB_ID_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_GlobalGNB_ID_1, - 3, /* Elements count */ - &asn_SPC_GlobalGNB_ID_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/GlobalGNB-ID.h b/e2sim/previous/ASN1c/GlobalGNB-ID.h deleted file mode 100644 index ee99c5c..0000000 --- a/e2sim/previous/ASN1c/GlobalGNB-ID.h +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _GlobalGNB_ID_H_ -#define _GlobalGNB_ID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "PLMN-Identity.h" -#include "GNB-ID.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* GlobalGNB-ID */ -typedef struct GlobalGNB_ID { - PLMN_Identity_t pLMN_Identity; - GNB_ID_t gNB_ID; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} GlobalGNB_ID_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_GlobalGNB_ID; -extern asn_SEQUENCE_specifics_t asn_SPC_GlobalGNB_ID_specs_1; -extern asn_TYPE_member_t asn_MBR_GlobalGNB_ID_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _GlobalGNB_ID_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/HFN.c b/e2sim/previous/ASN1c/HFN.c deleted file mode 100644 index cf6845a..0000000 --- a/e2sim/previous/ASN1c/HFN.c +++ /dev/null @@ -1,79 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "HFN.h" - -int -HFN_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 1048575)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using NativeInteger, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_HFN_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED, 20, -1, 0, 1048575 } /* (0..1048575) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_HFN_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_HFN = { - "HFN", - "HFN", - &asn_OP_NativeInteger, - asn_DEF_HFN_tags_1, - sizeof(asn_DEF_HFN_tags_1) - /sizeof(asn_DEF_HFN_tags_1[0]), /* 1 */ - asn_DEF_HFN_tags_1, /* Same as above */ - sizeof(asn_DEF_HFN_tags_1) - /sizeof(asn_DEF_HFN_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_HFN_constr_1, HFN_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/previous/ASN1c/HFN.h b/e2sim/previous/ASN1c/HFN.h deleted file mode 100644 index 81d1abe..0000000 --- a/e2sim/previous/ASN1c/HFN.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _HFN_H_ -#define _HFN_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeInteger.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* HFN */ -typedef long HFN_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_HFN_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_HFN; -asn_struct_free_f HFN_free; -asn_struct_print_f HFN_print; -asn_constr_check_f HFN_constraint; -ber_type_decoder_f HFN_decode_ber; -der_type_encoder_f HFN_encode_der; -xer_type_decoder_f HFN_decode_xer; -xer_type_encoder_f HFN_encode_xer; -per_type_decoder_f HFN_decode_uper; -per_type_encoder_f HFN_encode_uper; -per_type_decoder_f HFN_decode_aper; -per_type_encoder_f HFN_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _HFN_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/HFNModified.c b/e2sim/previous/ASN1c/HFNModified.c deleted file mode 100644 index f4db021..0000000 --- a/e2sim/previous/ASN1c/HFNModified.c +++ /dev/null @@ -1,79 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "HFNModified.h" - -int -HFNModified_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 131071)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using NativeInteger, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_HFNModified_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED, 17, -1, 0, 131071 } /* (0..131071) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_HFNModified_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_HFNModified = { - "HFNModified", - "HFNModified", - &asn_OP_NativeInteger, - asn_DEF_HFNModified_tags_1, - sizeof(asn_DEF_HFNModified_tags_1) - /sizeof(asn_DEF_HFNModified_tags_1[0]), /* 1 */ - asn_DEF_HFNModified_tags_1, /* Same as above */ - sizeof(asn_DEF_HFNModified_tags_1) - /sizeof(asn_DEF_HFNModified_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_HFNModified_constr_1, HFNModified_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/previous/ASN1c/HFNModified.h b/e2sim/previous/ASN1c/HFNModified.h deleted file mode 100644 index 68182f1..0000000 --- a/e2sim/previous/ASN1c/HFNModified.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _HFNModified_H_ -#define _HFNModified_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeInteger.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* HFNModified */ -typedef long HFNModified_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_HFNModified_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_HFNModified; -asn_struct_free_f HFNModified_free; -asn_struct_print_f HFNModified_print; -asn_constr_check_f HFNModified_constraint; -ber_type_decoder_f HFNModified_decode_ber; -der_type_encoder_f HFNModified_encode_der; -xer_type_decoder_f HFNModified_decode_xer; -xer_type_encoder_f HFNModified_encode_xer; -per_type_decoder_f HFNModified_decode_uper; -per_type_encoder_f HFNModified_encode_uper; -per_type_decoder_f HFNModified_decode_aper; -per_type_encoder_f HFNModified_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _HFNModified_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/HFNforPDCP-SNlength18.c b/e2sim/previous/ASN1c/HFNforPDCP-SNlength18.c deleted file mode 100644 index 5e6a619..0000000 --- a/e2sim/previous/ASN1c/HFNforPDCP-SNlength18.c +++ /dev/null @@ -1,79 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "HFNforPDCP-SNlength18.h" - -int -HFNforPDCP_SNlength18_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 16383)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using NativeInteger, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_HFNforPDCP_SNlength18_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED, 14, 14, 0, 16383 } /* (0..16383) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_HFNforPDCP_SNlength18_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_HFNforPDCP_SNlength18 = { - "HFNforPDCP-SNlength18", - "HFNforPDCP-SNlength18", - &asn_OP_NativeInteger, - asn_DEF_HFNforPDCP_SNlength18_tags_1, - sizeof(asn_DEF_HFNforPDCP_SNlength18_tags_1) - /sizeof(asn_DEF_HFNforPDCP_SNlength18_tags_1[0]), /* 1 */ - asn_DEF_HFNforPDCP_SNlength18_tags_1, /* Same as above */ - sizeof(asn_DEF_HFNforPDCP_SNlength18_tags_1) - /sizeof(asn_DEF_HFNforPDCP_SNlength18_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_HFNforPDCP_SNlength18_constr_1, HFNforPDCP_SNlength18_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/previous/ASN1c/HFNforPDCP-SNlength18.h b/e2sim/previous/ASN1c/HFNforPDCP-SNlength18.h deleted file mode 100644 index 76aee4c..0000000 --- a/e2sim/previous/ASN1c/HFNforPDCP-SNlength18.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _HFNforPDCP_SNlength18_H_ -#define _HFNforPDCP_SNlength18_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeInteger.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* HFNforPDCP-SNlength18 */ -typedef long HFNforPDCP_SNlength18_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_HFNforPDCP_SNlength18_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_HFNforPDCP_SNlength18; -asn_struct_free_f HFNforPDCP_SNlength18_free; -asn_struct_print_f HFNforPDCP_SNlength18_print; -asn_constr_check_f HFNforPDCP_SNlength18_constraint; -ber_type_decoder_f HFNforPDCP_SNlength18_decode_ber; -der_type_encoder_f HFNforPDCP_SNlength18_encode_der; -xer_type_decoder_f HFNforPDCP_SNlength18_decode_xer; -xer_type_encoder_f HFNforPDCP_SNlength18_encode_xer; -per_type_decoder_f HFNforPDCP_SNlength18_decode_uper; -per_type_encoder_f HFNforPDCP_SNlength18_encode_uper; -per_type_decoder_f HFNforPDCP_SNlength18_decode_aper; -per_type_encoder_f HFNforPDCP_SNlength18_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _HFNforPDCP_SNlength18_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/HWLoadIndicator.c b/e2sim/previous/ASN1c/HWLoadIndicator.c deleted file mode 100644 index 25dca7c..0000000 --- a/e2sim/previous/ASN1c/HWLoadIndicator.c +++ /dev/null @@ -1,91 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "HWLoadIndicator.h" - -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_HWLoadIndicator_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct HWLoadIndicator, dLHWLoadIndicator), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_LoadIndicator, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "dLHWLoadIndicator" - }, - { ATF_NOFLAGS, 0, offsetof(struct HWLoadIndicator, uLHWLoadIndicator), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_LoadIndicator, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "uLHWLoadIndicator" - }, - { ATF_POINTER, 1, offsetof(struct HWLoadIndicator, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P156, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_HWLoadIndicator_oms_1[] = { 2 }; -static const ber_tlv_tag_t asn_DEF_HWLoadIndicator_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_HWLoadIndicator_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* dLHWLoadIndicator */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* uLHWLoadIndicator */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_HWLoadIndicator_specs_1 = { - sizeof(struct HWLoadIndicator), - offsetof(struct HWLoadIndicator, _asn_ctx), - asn_MAP_HWLoadIndicator_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_HWLoadIndicator_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_HWLoadIndicator = { - "HWLoadIndicator", - "HWLoadIndicator", - &asn_OP_SEQUENCE, - asn_DEF_HWLoadIndicator_tags_1, - sizeof(asn_DEF_HWLoadIndicator_tags_1) - /sizeof(asn_DEF_HWLoadIndicator_tags_1[0]), /* 1 */ - asn_DEF_HWLoadIndicator_tags_1, /* Same as above */ - sizeof(asn_DEF_HWLoadIndicator_tags_1) - /sizeof(asn_DEF_HWLoadIndicator_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_HWLoadIndicator_1, - 3, /* Elements count */ - &asn_SPC_HWLoadIndicator_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/HWLoadIndicator.h b/e2sim/previous/ASN1c/HWLoadIndicator.h deleted file mode 100644 index bb818b0..0000000 --- a/e2sim/previous/ASN1c/HWLoadIndicator.h +++ /dev/null @@ -1,67 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _HWLoadIndicator_H_ -#define _HWLoadIndicator_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "LoadIndicator.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* HWLoadIndicator */ -typedef struct HWLoadIndicator { - LoadIndicator_t dLHWLoadIndicator; - LoadIndicator_t uLHWLoadIndicator; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} HWLoadIndicator_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_HWLoadIndicator; -extern asn_SEQUENCE_specifics_t asn_SPC_HWLoadIndicator_specs_1; -extern asn_TYPE_member_t asn_MBR_HWLoadIndicator_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _HWLoadIndicator_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/HandoverCancel.c b/e2sim/previous/ASN1c/HandoverCancel.c deleted file mode 100644 index 0f7d23b..0000000 --- a/e2sim/previous/ASN1c/HandoverCancel.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "HandoverCancel.h" - -static asn_TYPE_member_t asn_MBR_HandoverCancel_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct HandoverCancel, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_119P20, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_HandoverCancel_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_HandoverCancel_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_HandoverCancel_specs_1 = { - sizeof(struct HandoverCancel), - offsetof(struct HandoverCancel, _asn_ctx), - asn_MAP_HandoverCancel_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_HandoverCancel = { - "HandoverCancel", - "HandoverCancel", - &asn_OP_SEQUENCE, - asn_DEF_HandoverCancel_tags_1, - sizeof(asn_DEF_HandoverCancel_tags_1) - /sizeof(asn_DEF_HandoverCancel_tags_1[0]), /* 1 */ - asn_DEF_HandoverCancel_tags_1, /* Same as above */ - sizeof(asn_DEF_HandoverCancel_tags_1) - /sizeof(asn_DEF_HandoverCancel_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_HandoverCancel_1, - 1, /* Elements count */ - &asn_SPC_HandoverCancel_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/HandoverCancel.h b/e2sim/previous/ASN1c/HandoverCancel.h deleted file mode 100644 index 294a4dc..0000000 --- a/e2sim/previous/ASN1c/HandoverCancel.h +++ /dev/null @@ -1,60 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _HandoverCancel_H_ -#define _HandoverCancel_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* HandoverCancel */ -typedef struct HandoverCancel { - ProtocolIE_Container_119P20_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} HandoverCancel_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_HandoverCancel; - -#ifdef __cplusplus -} -#endif - -#endif /* _HandoverCancel_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/HandoverPreparationFailure.c b/e2sim/previous/ASN1c/HandoverPreparationFailure.c deleted file mode 100644 index f8b0ea7..0000000 --- a/e2sim/previous/ASN1c/HandoverPreparationFailure.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "HandoverPreparationFailure.h" - -static asn_TYPE_member_t asn_MBR_HandoverPreparationFailure_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct HandoverPreparationFailure, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_119P16, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_HandoverPreparationFailure_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_HandoverPreparationFailure_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_HandoverPreparationFailure_specs_1 = { - sizeof(struct HandoverPreparationFailure), - offsetof(struct HandoverPreparationFailure, _asn_ctx), - asn_MAP_HandoverPreparationFailure_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_HandoverPreparationFailure = { - "HandoverPreparationFailure", - "HandoverPreparationFailure", - &asn_OP_SEQUENCE, - asn_DEF_HandoverPreparationFailure_tags_1, - sizeof(asn_DEF_HandoverPreparationFailure_tags_1) - /sizeof(asn_DEF_HandoverPreparationFailure_tags_1[0]), /* 1 */ - asn_DEF_HandoverPreparationFailure_tags_1, /* Same as above */ - sizeof(asn_DEF_HandoverPreparationFailure_tags_1) - /sizeof(asn_DEF_HandoverPreparationFailure_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_HandoverPreparationFailure_1, - 1, /* Elements count */ - &asn_SPC_HandoverPreparationFailure_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/HandoverPreparationFailure.h b/e2sim/previous/ASN1c/HandoverPreparationFailure.h deleted file mode 100644 index f8f6c1f..0000000 --- a/e2sim/previous/ASN1c/HandoverPreparationFailure.h +++ /dev/null @@ -1,60 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _HandoverPreparationFailure_H_ -#define _HandoverPreparationFailure_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* HandoverPreparationFailure */ -typedef struct HandoverPreparationFailure { - ProtocolIE_Container_119P16_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} HandoverPreparationFailure_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_HandoverPreparationFailure; - -#ifdef __cplusplus -} -#endif - -#endif /* _HandoverPreparationFailure_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/HandoverReport.c b/e2sim/previous/ASN1c/HandoverReport.c deleted file mode 100644 index fefa47c..0000000 --- a/e2sim/previous/ASN1c/HandoverReport.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "HandoverReport.h" - -static asn_TYPE_member_t asn_MBR_HandoverReport_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct HandoverReport, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_119P17, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_HandoverReport_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_HandoverReport_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_HandoverReport_specs_1 = { - sizeof(struct HandoverReport), - offsetof(struct HandoverReport, _asn_ctx), - asn_MAP_HandoverReport_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_HandoverReport = { - "HandoverReport", - "HandoverReport", - &asn_OP_SEQUENCE, - asn_DEF_HandoverReport_tags_1, - sizeof(asn_DEF_HandoverReport_tags_1) - /sizeof(asn_DEF_HandoverReport_tags_1[0]), /* 1 */ - asn_DEF_HandoverReport_tags_1, /* Same as above */ - sizeof(asn_DEF_HandoverReport_tags_1) - /sizeof(asn_DEF_HandoverReport_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_HandoverReport_1, - 1, /* Elements count */ - &asn_SPC_HandoverReport_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/HandoverReport.h b/e2sim/previous/ASN1c/HandoverReport.h deleted file mode 100644 index 32aad87..0000000 --- a/e2sim/previous/ASN1c/HandoverReport.h +++ /dev/null @@ -1,60 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _HandoverReport_H_ -#define _HandoverReport_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* HandoverReport */ -typedef struct HandoverReport { - ProtocolIE_Container_119P17_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} HandoverReport_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_HandoverReport; - -#ifdef __cplusplus -} -#endif - -#endif /* _HandoverReport_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/HandoverReportType.c b/e2sim/previous/ASN1c/HandoverReportType.c deleted file mode 100644 index 123dd54..0000000 --- a/e2sim/previous/ASN1c/HandoverReportType.c +++ /dev/null @@ -1,75 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "HandoverReportType.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_HandoverReportType_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_HandoverReportType_value2enum_1[] = { - { 0, 10, "hoTooEarly" }, - { 1, 13, "hoToWrongCell" }, - { 2, 16, "interRATpingpong" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_HandoverReportType_enum2value_1[] = { - 1, /* hoToWrongCell(1) */ - 0, /* hoTooEarly(0) */ - 2 /* interRATpingpong(2) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_HandoverReportType_specs_1 = { - asn_MAP_HandoverReportType_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_HandoverReportType_enum2value_1, /* N => "tag"; sorted by N */ - 3, /* Number of elements in the maps */ - 3, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_HandoverReportType_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_HandoverReportType = { - "HandoverReportType", - "HandoverReportType", - &asn_OP_NativeEnumerated, - asn_DEF_HandoverReportType_tags_1, - sizeof(asn_DEF_HandoverReportType_tags_1) - /sizeof(asn_DEF_HandoverReportType_tags_1[0]), /* 1 */ - asn_DEF_HandoverReportType_tags_1, /* Same as above */ - sizeof(asn_DEF_HandoverReportType_tags_1) - /sizeof(asn_DEF_HandoverReportType_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_HandoverReportType_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_HandoverReportType_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/HandoverReportType.h b/e2sim/previous/ASN1c/HandoverReportType.h deleted file mode 100644 index 6784a7b..0000000 --- a/e2sim/previous/ASN1c/HandoverReportType.h +++ /dev/null @@ -1,73 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _HandoverReportType_H_ -#define _HandoverReportType_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum HandoverReportType { - HandoverReportType_hoTooEarly = 0, - HandoverReportType_hoToWrongCell = 1, - /* - * Enumeration is extensible - */ - HandoverReportType_interRATpingpong = 2 -} e_HandoverReportType; - -/* HandoverReportType */ -typedef long HandoverReportType_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_HandoverReportType_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_HandoverReportType; -extern const asn_INTEGER_specifics_t asn_SPC_HandoverReportType_specs_1; -asn_struct_free_f HandoverReportType_free; -asn_struct_print_f HandoverReportType_print; -asn_constr_check_f HandoverReportType_constraint; -ber_type_decoder_f HandoverReportType_decode_ber; -der_type_encoder_f HandoverReportType_encode_der; -xer_type_decoder_f HandoverReportType_decode_xer; -xer_type_encoder_f HandoverReportType_encode_xer; -per_type_decoder_f HandoverReportType_decode_uper; -per_type_encoder_f HandoverReportType_encode_uper; -per_type_decoder_f HandoverReportType_decode_aper; -per_type_encoder_f HandoverReportType_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _HandoverReportType_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/HandoverRequest.c b/e2sim/previous/ASN1c/HandoverRequest.c deleted file mode 100644 index 95fe244..0000000 --- a/e2sim/previous/ASN1c/HandoverRequest.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "HandoverRequest.h" - -static asn_TYPE_member_t asn_MBR_HandoverRequest_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct HandoverRequest, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_119P14, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_HandoverRequest_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_HandoverRequest_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_HandoverRequest_specs_1 = { - sizeof(struct HandoverRequest), - offsetof(struct HandoverRequest, _asn_ctx), - asn_MAP_HandoverRequest_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_HandoverRequest = { - "HandoverRequest", - "HandoverRequest", - &asn_OP_SEQUENCE, - asn_DEF_HandoverRequest_tags_1, - sizeof(asn_DEF_HandoverRequest_tags_1) - /sizeof(asn_DEF_HandoverRequest_tags_1[0]), /* 1 */ - asn_DEF_HandoverRequest_tags_1, /* Same as above */ - sizeof(asn_DEF_HandoverRequest_tags_1) - /sizeof(asn_DEF_HandoverRequest_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_HandoverRequest_1, - 1, /* Elements count */ - &asn_SPC_HandoverRequest_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/HandoverRequest.h b/e2sim/previous/ASN1c/HandoverRequest.h deleted file mode 100644 index 1fab6c1..0000000 --- a/e2sim/previous/ASN1c/HandoverRequest.h +++ /dev/null @@ -1,60 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _HandoverRequest_H_ -#define _HandoverRequest_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* HandoverRequest */ -typedef struct HandoverRequest { - ProtocolIE_Container_119P14_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} HandoverRequest_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_HandoverRequest; - -#ifdef __cplusplus -} -#endif - -#endif /* _HandoverRequest_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/HandoverRequestAcknowledge.c b/e2sim/previous/ASN1c/HandoverRequestAcknowledge.c deleted file mode 100644 index 52dba8b..0000000 --- a/e2sim/previous/ASN1c/HandoverRequestAcknowledge.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "HandoverRequestAcknowledge.h" - -static asn_TYPE_member_t asn_MBR_HandoverRequestAcknowledge_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct HandoverRequestAcknowledge, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_119P15, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_HandoverRequestAcknowledge_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_HandoverRequestAcknowledge_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_HandoverRequestAcknowledge_specs_1 = { - sizeof(struct HandoverRequestAcknowledge), - offsetof(struct HandoverRequestAcknowledge, _asn_ctx), - asn_MAP_HandoverRequestAcknowledge_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_HandoverRequestAcknowledge = { - "HandoverRequestAcknowledge", - "HandoverRequestAcknowledge", - &asn_OP_SEQUENCE, - asn_DEF_HandoverRequestAcknowledge_tags_1, - sizeof(asn_DEF_HandoverRequestAcknowledge_tags_1) - /sizeof(asn_DEF_HandoverRequestAcknowledge_tags_1[0]), /* 1 */ - asn_DEF_HandoverRequestAcknowledge_tags_1, /* Same as above */ - sizeof(asn_DEF_HandoverRequestAcknowledge_tags_1) - /sizeof(asn_DEF_HandoverRequestAcknowledge_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_HandoverRequestAcknowledge_1, - 1, /* Elements count */ - &asn_SPC_HandoverRequestAcknowledge_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/HandoverRequestAcknowledge.h b/e2sim/previous/ASN1c/HandoverRequestAcknowledge.h deleted file mode 100644 index f5bc0f6..0000000 --- a/e2sim/previous/ASN1c/HandoverRequestAcknowledge.h +++ /dev/null @@ -1,60 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _HandoverRequestAcknowledge_H_ -#define _HandoverRequestAcknowledge_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* HandoverRequestAcknowledge */ -typedef struct HandoverRequestAcknowledge { - ProtocolIE_Container_119P15_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} HandoverRequestAcknowledge_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_HandoverRequestAcknowledge; - -#ifdef __cplusplus -} -#endif - -#endif /* _HandoverRequestAcknowledge_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/HandoverRestrictionList.c b/e2sim/previous/ASN1c/HandoverRestrictionList.c deleted file mode 100644 index fe2a0d3..0000000 --- a/e2sim/previous/ASN1c/HandoverRestrictionList.c +++ /dev/null @@ -1,124 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "HandoverRestrictionList.h" - -#include "EPLMNs.h" -#include "ForbiddenTAs.h" -#include "ForbiddenLAs.h" -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_HandoverRestrictionList_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct HandoverRestrictionList, servingPLMN), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_PLMN_Identity, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "servingPLMN" - }, - { ATF_POINTER, 5, offsetof(struct HandoverRestrictionList, equivalentPLMNs), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_EPLMNs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "equivalentPLMNs" - }, - { ATF_POINTER, 4, offsetof(struct HandoverRestrictionList, forbiddenTAs), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ForbiddenTAs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "forbiddenTAs" - }, - { ATF_POINTER, 3, offsetof(struct HandoverRestrictionList, forbiddenLAs), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ForbiddenLAs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "forbiddenLAs" - }, - { ATF_POINTER, 2, offsetof(struct HandoverRestrictionList, forbiddenInterRATs), - (ASN_TAG_CLASS_CONTEXT | (4 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ForbiddenInterRATs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "forbiddenInterRATs" - }, - { ATF_POINTER, 1, offsetof(struct HandoverRestrictionList, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (5 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P155, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_HandoverRestrictionList_oms_1[] = { 1, 2, 3, 4, 5 }; -static const ber_tlv_tag_t asn_DEF_HandoverRestrictionList_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_HandoverRestrictionList_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* servingPLMN */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* equivalentPLMNs */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* forbiddenTAs */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* forbiddenLAs */ - { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* forbiddenInterRATs */ - { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_HandoverRestrictionList_specs_1 = { - sizeof(struct HandoverRestrictionList), - offsetof(struct HandoverRestrictionList, _asn_ctx), - asn_MAP_HandoverRestrictionList_tag2el_1, - 6, /* Count of tags in the map */ - asn_MAP_HandoverRestrictionList_oms_1, /* Optional members */ - 5, 0, /* Root/Additions */ - 6, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_HandoverRestrictionList = { - "HandoverRestrictionList", - "HandoverRestrictionList", - &asn_OP_SEQUENCE, - asn_DEF_HandoverRestrictionList_tags_1, - sizeof(asn_DEF_HandoverRestrictionList_tags_1) - /sizeof(asn_DEF_HandoverRestrictionList_tags_1[0]), /* 1 */ - asn_DEF_HandoverRestrictionList_tags_1, /* Same as above */ - sizeof(asn_DEF_HandoverRestrictionList_tags_1) - /sizeof(asn_DEF_HandoverRestrictionList_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_HandoverRestrictionList_1, - 6, /* Elements count */ - &asn_SPC_HandoverRestrictionList_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/HandoverRestrictionList.h b/e2sim/previous/ASN1c/HandoverRestrictionList.h deleted file mode 100644 index 176bf42..0000000 --- a/e2sim/previous/ASN1c/HandoverRestrictionList.h +++ /dev/null @@ -1,74 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _HandoverRestrictionList_H_ -#define _HandoverRestrictionList_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "PLMN-Identity.h" -#include "ForbiddenInterRATs.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct EPLMNs; -struct ForbiddenTAs; -struct ForbiddenLAs; -struct ProtocolExtensionContainer; - -/* HandoverRestrictionList */ -typedef struct HandoverRestrictionList { - PLMN_Identity_t servingPLMN; - struct EPLMNs *equivalentPLMNs; /* OPTIONAL */ - struct ForbiddenTAs *forbiddenTAs; /* OPTIONAL */ - struct ForbiddenLAs *forbiddenLAs; /* OPTIONAL */ - ForbiddenInterRATs_t *forbiddenInterRATs; /* OPTIONAL */ - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} HandoverRestrictionList_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_HandoverRestrictionList; -extern asn_SEQUENCE_specifics_t asn_SPC_HandoverRestrictionList_specs_1; -extern asn_TYPE_member_t asn_MBR_HandoverRestrictionList_1[6]; - -#ifdef __cplusplus -} -#endif - -#endif /* _HandoverRestrictionList_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/INTEGER.c b/e2sim/previous/ASN1c/INTEGER.c deleted file mode 100644 index daf7345..0000000 --- a/e2sim/previous/ASN1c/INTEGER.c +++ /dev/null @@ -1,1753 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/*- - * Copyright (c) 2003-2014 Lev Walkin . - * All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include /* Encoder and decoder of a primitive type */ -#include - -/* - * INTEGER basic type description. - */ -static const ber_tlv_tag_t asn_DEF_INTEGER_tags[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_operation_t asn_OP_INTEGER = { - INTEGER_free, - INTEGER_print, - INTEGER_compare, - ber_decode_primitive, - INTEGER_encode_der, - INTEGER_decode_xer, - INTEGER_encode_xer, -#ifdef ASN_DISABLE_OER_SUPPORT - 0, - 0, -#else - INTEGER_decode_oer, /* OER decoder */ - INTEGER_encode_oer, /* Canonical OER encoder */ -#endif /* ASN_DISABLE_OER_SUPPORT */ -#ifdef ASN_DISABLE_PER_SUPPORT - 0, - 0, - 0, - 0, -#else - INTEGER_decode_uper, /* Unaligned PER decoder */ - INTEGER_encode_uper, /* Unaligned PER encoder */ - INTEGER_decode_aper, /* Aligned PER decoder */ - INTEGER_encode_aper, /* Aligned PER encoder */ -#endif /* ASN_DISABLE_PER_SUPPORT */ - INTEGER_random_fill, - 0 /* Use generic outmost tag fetcher */ -}; -asn_TYPE_descriptor_t asn_DEF_INTEGER = { - "INTEGER", - "INTEGER", - &asn_OP_INTEGER, - asn_DEF_INTEGER_tags, - sizeof(asn_DEF_INTEGER_tags) / sizeof(asn_DEF_INTEGER_tags[0]), - asn_DEF_INTEGER_tags, /* Same as above */ - sizeof(asn_DEF_INTEGER_tags) / sizeof(asn_DEF_INTEGER_tags[0]), - { 0, 0, asn_generic_no_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - -/* - * Encode INTEGER type using DER. - */ -asn_enc_rval_t -INTEGER_encode_der(const asn_TYPE_descriptor_t *td, const void *sptr, - int tag_mode, ber_tlv_tag_t tag, asn_app_consume_bytes_f *cb, - void *app_key) { - const INTEGER_t *st = (const INTEGER_t *)sptr; - asn_enc_rval_t rval; - INTEGER_t effective_integer; - - ASN_DEBUG("%s %s as INTEGER (tm=%d)", - cb?"Encoding":"Estimating", td->name, tag_mode); - - /* - * Canonicalize integer in the buffer. - * (Remove too long sign extension, remove some first 0x00 bytes) - */ - if(st->buf) { - uint8_t *buf = st->buf; - uint8_t *end1 = buf + st->size - 1; - int shift; - - /* Compute the number of superfluous leading bytes */ - for(; buf < end1; buf++) { - /* - * If the contents octets of an integer value encoding - * consist of more than one octet, then the bits of the - * first octet and bit 8 of the second octet: - * a) shall not all be ones; and - * b) shall not all be zero. - */ - switch(*buf) { - case 0x00: if((buf[1] & 0x80) == 0) - continue; - break; - case 0xff: if((buf[1] & 0x80)) - continue; - break; - } - break; - } - - /* Remove leading superfluous bytes from the integer */ - shift = buf - st->buf; - if(shift) { - union { - const uint8_t *c_buf; - uint8_t *nc_buf; - } unconst; - unconst.c_buf = st->buf; - effective_integer.buf = unconst.nc_buf + shift; - effective_integer.size = st->size - shift; - - st = &effective_integer; - } - } - - rval = der_encode_primitive(td, st, tag_mode, tag, cb, app_key); - if(rval.structure_ptr == &effective_integer) { - rval.structure_ptr = sptr; - } - return rval; -} - -static const asn_INTEGER_enum_map_t *INTEGER_map_enum2value( - const asn_INTEGER_specifics_t *specs, const char *lstart, - const char *lstop); - -/* - * INTEGER specific human-readable output. - */ -static ssize_t -INTEGER__dump(const asn_TYPE_descriptor_t *td, const INTEGER_t *st, asn_app_consume_bytes_f *cb, void *app_key, int plainOrXER) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - char scratch[32]; - uint8_t *buf = st->buf; - uint8_t *buf_end = st->buf + st->size; - intmax_t value; - ssize_t wrote = 0; - char *p; - int ret; - - if(specs && specs->field_unsigned) - ret = asn_INTEGER2umax(st, (uintmax_t *)&value); - else - ret = asn_INTEGER2imax(st, &value); - - /* Simple case: the integer size is small */ - if(ret == 0) { - const asn_INTEGER_enum_map_t *el; - el = (value >= 0 || !specs || !specs->field_unsigned) - ? INTEGER_map_value2enum(specs, value) : 0; - if(el) { - if(plainOrXER == 0) - return asn__format_to_callback(cb, app_key, - "%" ASN_PRIdMAX " (%s)", value, el->enum_name); - else - return asn__format_to_callback(cb, app_key, - "<%s/>", el->enum_name); - } else if(plainOrXER && specs && specs->strict_enumeration) { - ASN_DEBUG("ASN.1 forbids dealing with " - "unknown value of ENUMERATED type"); - errno = EPERM; - return -1; - } else { - return asn__format_to_callback(cb, app_key, - (specs && specs->field_unsigned) - ? "%" ASN_PRIuMAX - : "%" ASN_PRIdMAX, - value); - } - } else if(plainOrXER && specs && specs->strict_enumeration) { - /* - * Here and earlier, we cannot encode the ENUMERATED values - * if there is no corresponding identifier. - */ - ASN_DEBUG("ASN.1 forbids dealing with " - "unknown value of ENUMERATED type"); - errno = EPERM; - return -1; - } - - /* Output in the long xx:yy:zz... format */ - /* TODO: replace with generic algorithm (Knuth TAOCP Vol 2, 4.3.1) */ - for(p = scratch; buf < buf_end; buf++) { - const char * const h2c = "0123456789ABCDEF"; - if((p - scratch) >= (ssize_t)(sizeof(scratch) - 4)) { - /* Flush buffer */ - if(cb(scratch, p - scratch, app_key) < 0) - return -1; - wrote += p - scratch; - p = scratch; - } - *p++ = h2c[*buf >> 4]; - *p++ = h2c[*buf & 0x0F]; - *p++ = 0x3a; /* ":" */ - } - if(p != scratch) - p--; /* Remove the last ":" */ - - wrote += p - scratch; - return (cb(scratch, p - scratch, app_key) < 0) ? -1 : wrote; -} - -/* - * INTEGER specific human-readable output. - */ -int -INTEGER_print(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, - asn_app_consume_bytes_f *cb, void *app_key) { - const INTEGER_t *st = (const INTEGER_t *)sptr; - ssize_t ret; - - (void)ilevel; - - if(!st || !st->buf) - ret = cb("", 8, app_key); - else - ret = INTEGER__dump(td, st, cb, app_key, 0); - - return (ret < 0) ? -1 : 0; -} - -struct e2v_key { - const char *start; - const char *stop; - const asn_INTEGER_enum_map_t *vemap; - const unsigned int *evmap; -}; -static int -INTEGER__compar_enum2value(const void *kp, const void *am) { - const struct e2v_key *key = (const struct e2v_key *)kp; - const asn_INTEGER_enum_map_t *el = (const asn_INTEGER_enum_map_t *)am; - const char *ptr, *end, *name; - - /* Remap the element (sort by different criterion) */ - el = key->vemap + key->evmap[el - key->vemap]; - - /* Compare strings */ - for(ptr = key->start, end = key->stop, name = el->enum_name; - ptr < end; ptr++, name++) { - if(*ptr != *name || !*name) - return *(const unsigned char *)ptr - - *(const unsigned char *)name; - } - return name[0] ? -1 : 0; -} - -static const asn_INTEGER_enum_map_t * -INTEGER_map_enum2value(const asn_INTEGER_specifics_t *specs, const char *lstart, - const char *lstop) { - const asn_INTEGER_enum_map_t *el_found; - int count = specs ? specs->map_count : 0; - struct e2v_key key; - const char *lp; - - if(!count) return NULL; - - /* Guaranteed: assert(lstart < lstop); */ - /* Figure out the tag name */ - for(lstart++, lp = lstart; lp < lstop; lp++) { - switch(*lp) { - case 9: case 10: case 11: case 12: case 13: case 32: /* WSP */ - case 0x2f: /* '/' */ case 0x3e: /* '>' */ - break; - default: - continue; - } - break; - } - if(lp == lstop) return NULL; /* No tag found */ - lstop = lp; - - key.start = lstart; - key.stop = lstop; - key.vemap = specs->value2enum; - key.evmap = specs->enum2value; - el_found = (asn_INTEGER_enum_map_t *)bsearch(&key, - specs->value2enum, count, sizeof(specs->value2enum[0]), - INTEGER__compar_enum2value); - if(el_found) { - /* Remap enum2value into value2enum */ - el_found = key.vemap + key.evmap[el_found - key.vemap]; - } - return el_found; -} - -static int -INTEGER__compar_value2enum(const void *kp, const void *am) { - long a = *(const long *)kp; - const asn_INTEGER_enum_map_t *el = (const asn_INTEGER_enum_map_t *)am; - long b = el->nat_value; - if(a < b) return -1; - else if(a == b) return 0; - else return 1; -} - -const asn_INTEGER_enum_map_t * -INTEGER_map_value2enum(const asn_INTEGER_specifics_t *specs, long value) { - int count = specs ? specs->map_count : 0; - if(!count) return 0; - return (asn_INTEGER_enum_map_t *)bsearch(&value, specs->value2enum, - count, sizeof(specs->value2enum[0]), - INTEGER__compar_value2enum); -} - -static int -INTEGER_st_prealloc(INTEGER_t *st, int min_size) { - void *p = MALLOC(min_size + 1); - if(p) { - void *b = st->buf; - st->size = 0; - st->buf = p; - FREEMEM(b); - return 0; - } else { - return -1; - } -} - -/* - * Decode the chunk of XML text encoding INTEGER. - */ -static enum xer_pbd_rval -INTEGER__xer_body_decode(const asn_TYPE_descriptor_t *td, void *sptr, - const void *chunk_buf, size_t chunk_size) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - INTEGER_t *st = (INTEGER_t *)sptr; - intmax_t dec_value; - intmax_t hex_value = 0; - const char *lp; - const char *lstart = (const char *)chunk_buf; - const char *lstop = lstart + chunk_size; - enum { - ST_LEADSPACE, - ST_SKIPSPHEX, - ST_WAITDIGITS, - ST_DIGITS, - ST_DIGITS_TRAILSPACE, - ST_HEXDIGIT1, - ST_HEXDIGIT2, - ST_HEXDIGITS_TRAILSPACE, - ST_HEXCOLON, - ST_END_ENUM, - ST_UNEXPECTED - } state = ST_LEADSPACE; - const char *dec_value_start = 0; /* INVARIANT: always !0 in ST_DIGITS */ - const char *dec_value_end = 0; - - if(chunk_size) - ASN_DEBUG("INTEGER body %ld 0x%2x..0x%2x", - (long)chunk_size, *lstart, lstop[-1]); - - if(INTEGER_st_prealloc(st, (chunk_size/3) + 1)) - return XPBD_SYSTEM_FAILURE; - - /* - * We may have received a tag here. It will be processed inline. - * Use strtoul()-like code and serialize the result. - */ - for(lp = lstart; lp < lstop; lp++) { - int lv = *lp; - switch(lv) { - case 0x09: case 0x0a: case 0x0d: case 0x20: - switch(state) { - case ST_LEADSPACE: - case ST_DIGITS_TRAILSPACE: - case ST_HEXDIGITS_TRAILSPACE: - case ST_SKIPSPHEX: - continue; - case ST_DIGITS: - dec_value_end = lp; - state = ST_DIGITS_TRAILSPACE; - continue; - case ST_HEXCOLON: - state = ST_HEXDIGITS_TRAILSPACE; - continue; - default: - break; - } - break; - case 0x2d: /* '-' */ - if(state == ST_LEADSPACE) { - dec_value = 0; - dec_value_start = lp; - state = ST_WAITDIGITS; - continue; - } - break; - case 0x2b: /* '+' */ - if(state == ST_LEADSPACE) { - dec_value = 0; - dec_value_start = lp; - state = ST_WAITDIGITS; - continue; - } - break; - case 0x30: case 0x31: case 0x32: case 0x33: case 0x34: - case 0x35: case 0x36: case 0x37: case 0x38: case 0x39: - switch(state) { - case ST_DIGITS: continue; - case ST_SKIPSPHEX: /* Fall through */ - case ST_HEXDIGIT1: - hex_value = (lv - 0x30) << 4; - state = ST_HEXDIGIT2; - continue; - case ST_HEXDIGIT2: - hex_value += (lv - 0x30); - state = ST_HEXCOLON; - st->buf[st->size++] = (uint8_t)hex_value; - continue; - case ST_HEXCOLON: - return XPBD_BROKEN_ENCODING; - case ST_LEADSPACE: - dec_value = 0; - dec_value_start = lp; - /* FALL THROUGH */ - case ST_WAITDIGITS: - state = ST_DIGITS; - continue; - default: - break; - } - break; - case 0x3c: /* '<', start of XML encoded enumeration */ - if(state == ST_LEADSPACE) { - const asn_INTEGER_enum_map_t *el; - el = INTEGER_map_enum2value( - (const asn_INTEGER_specifics_t *) - td->specifics, lstart, lstop); - if(el) { - ASN_DEBUG("Found \"%s\" => %ld", - el->enum_name, el->nat_value); - dec_value = el->nat_value; - state = ST_END_ENUM; - lp = lstop - 1; - continue; - } - ASN_DEBUG("Unknown identifier for INTEGER"); - } - return XPBD_BROKEN_ENCODING; - case 0x3a: /* ':' */ - if(state == ST_HEXCOLON) { - /* This colon is expected */ - state = ST_HEXDIGIT1; - continue; - } else if(state == ST_DIGITS) { - /* The colon here means that we have - * decoded the first two hexadecimal - * places as a decimal value. - * Switch decoding mode. */ - ASN_DEBUG("INTEGER re-evaluate as hex form"); - state = ST_SKIPSPHEX; - dec_value_start = 0; - lp = lstart - 1; - continue; - } else { - ASN_DEBUG("state %d at %ld", state, (long)(lp - lstart)); - break; - } - /* [A-Fa-f] */ - case 0x41:case 0x42:case 0x43:case 0x44:case 0x45:case 0x46: - case 0x61:case 0x62:case 0x63:case 0x64:case 0x65:case 0x66: - switch(state) { - case ST_SKIPSPHEX: - case ST_LEADSPACE: /* Fall through */ - case ST_HEXDIGIT1: - hex_value = lv - ((lv < 0x61) ? 0x41 : 0x61); - hex_value += 10; - hex_value <<= 4; - state = ST_HEXDIGIT2; - continue; - case ST_HEXDIGIT2: - hex_value += lv - ((lv < 0x61) ? 0x41 : 0x61); - hex_value += 10; - st->buf[st->size++] = (uint8_t)hex_value; - state = ST_HEXCOLON; - continue; - case ST_DIGITS: - ASN_DEBUG("INTEGER re-evaluate as hex form"); - state = ST_SKIPSPHEX; - dec_value_start = 0; - lp = lstart - 1; - continue; - default: - break; - } - break; - } - - /* Found extra non-numeric stuff */ - ASN_DEBUG("INTEGER :: Found non-numeric 0x%2x at %ld", - lv, (long)(lp - lstart)); - state = ST_UNEXPECTED; - break; - } - - switch(state) { - case ST_END_ENUM: - /* Got a complete and valid enumeration encoded as a tag. */ - break; - case ST_DIGITS: - dec_value_end = lstop; - /* FALL THROUGH */ - case ST_DIGITS_TRAILSPACE: - /* The last symbol encountered was a digit. */ - switch(asn_strtoimax_lim(dec_value_start, &dec_value_end, &dec_value)) { - case ASN_STRTOX_OK: - if(specs && specs->field_unsigned && (uintmax_t) dec_value <= ULONG_MAX) { - break; - } else if(dec_value >= LONG_MIN && dec_value <= LONG_MAX) { - break; - } else { - /* - * We model INTEGER on long for XER, - * to avoid rewriting all the tests at once. - */ - ASN_DEBUG("INTEGER exceeds long range"); - } - /* Fall through */ - case ASN_STRTOX_ERROR_RANGE: - ASN_DEBUG("INTEGER decode %s hit range limit", td->name); - return XPBD_DECODER_LIMIT; - case ASN_STRTOX_ERROR_INVAL: - case ASN_STRTOX_EXPECT_MORE: - case ASN_STRTOX_EXTRA_DATA: - return XPBD_BROKEN_ENCODING; - } - break; - case ST_HEXCOLON: - case ST_HEXDIGITS_TRAILSPACE: - st->buf[st->size] = 0; /* Just in case termination */ - return XPBD_BODY_CONSUMED; - case ST_HEXDIGIT1: - case ST_HEXDIGIT2: - case ST_SKIPSPHEX: - return XPBD_BROKEN_ENCODING; - case ST_LEADSPACE: - /* Content not found */ - return XPBD_NOT_BODY_IGNORE; - case ST_WAITDIGITS: - case ST_UNEXPECTED: - ASN_DEBUG("INTEGER: No useful digits (state %d)", state); - return XPBD_BROKEN_ENCODING; /* No digits */ - } - - /* - * Convert the result of parsing of enumeration or a straight - * decimal value into a BER representation. - */ - if(asn_imax2INTEGER(st, dec_value)) { - ASN_DEBUG("INTEGER decode %s conversion failed", td->name); - return XPBD_SYSTEM_FAILURE; - } - - return XPBD_BODY_CONSUMED; -} - -asn_dec_rval_t -INTEGER_decode_xer(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **sptr, - const char *opt_mname, const void *buf_ptr, size_t size) { - return xer_decode_primitive(opt_codec_ctx, td, - sptr, sizeof(INTEGER_t), opt_mname, - buf_ptr, size, INTEGER__xer_body_decode); -} - -asn_enc_rval_t -INTEGER_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, - int ilevel, enum xer_encoder_flags_e flags, - asn_app_consume_bytes_f *cb, void *app_key) { - const INTEGER_t *st = (const INTEGER_t *)sptr; - asn_enc_rval_t er = {0,0,0}; - - (void)ilevel; - (void)flags; - - if(!st || !st->buf) - ASN__ENCODE_FAILED; - - er.encoded = INTEGER__dump(td, st, cb, app_key, 1); - if(er.encoded < 0) ASN__ENCODE_FAILED; - - ASN__ENCODED_OK(er); -} - -#ifndef ASN_DISABLE_PER_SUPPORT - -asn_dec_rval_t -INTEGER_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, - asn_per_data_t *pd) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - asn_dec_rval_t rval = { RC_OK, 0 }; - INTEGER_t *st = (INTEGER_t *)*sptr; - const asn_per_constraint_t *ct; - int repeat; - - (void)opt_codec_ctx; - - if(!st) { - st = (INTEGER_t *)(*sptr = CALLOC(1, sizeof(*st))); - if(!st) ASN__DECODE_FAILED; - } - - if(!constraints) constraints = td->encoding_constraints.per_constraints; - ct = constraints ? &constraints->value : 0; - - if(ct && ct->flags & APC_EXTENSIBLE) { - int inext = per_get_few_bits(pd, 1); - if(inext < 0) ASN__DECODE_STARVED; - if(inext) ct = 0; - } - - FREEMEM(st->buf); - st->buf = 0; - st->size = 0; - if(ct) { - if(ct->flags & APC_SEMI_CONSTRAINED) { - st->buf = (uint8_t *)CALLOC(1, 2); - if(!st->buf) ASN__DECODE_FAILED; - st->size = 1; - } else if(ct->flags & APC_CONSTRAINED && ct->range_bits >= 0) { - size_t size = (ct->range_bits + 7) >> 3; - st->buf = (uint8_t *)MALLOC(1 + size + 1); - if(!st->buf) ASN__DECODE_FAILED; - st->size = size; - } - } - - /* X.691-2008/11, #13.2.2, constrained whole number */ - if(ct && ct->flags != APC_UNCONSTRAINED) { - /* #11.5.6 */ - ASN_DEBUG("Integer with range %d bits", ct->range_bits); - if(ct->range_bits >= 0) { - if((size_t)ct->range_bits > 8 * sizeof(unsigned long)) - ASN__DECODE_FAILED; - - if(specs && specs->field_unsigned) { - unsigned long uvalue = 0; - if(uper_get_constrained_whole_number(pd, - &uvalue, ct->range_bits)) - ASN__DECODE_STARVED; - ASN_DEBUG("Got value %lu + low %ld", - uvalue, ct->lower_bound); - uvalue += ct->lower_bound; - if(asn_ulong2INTEGER(st, uvalue)) - ASN__DECODE_FAILED; - } else { - unsigned long uvalue = 0; - long svalue; - if(uper_get_constrained_whole_number(pd, - &uvalue, ct->range_bits)) - ASN__DECODE_STARVED; - ASN_DEBUG("Got value %lu + low %ld", - uvalue, ct->lower_bound); - if(per_long_range_unrebase(uvalue, ct->lower_bound, - ct->upper_bound, &svalue) - || asn_long2INTEGER(st, svalue)) { - ASN__DECODE_FAILED; - } - } - return rval; - } - } else { - ASN_DEBUG("Decoding unconstrained integer %s", td->name); - } - - /* X.691, #12.2.3, #12.2.4 */ - do { - ssize_t len = 0; - void *p = NULL; - int ret = 0; - - /* Get the PER length */ - len = uper_get_length(pd, -1, 0, &repeat); - if(len < 0) ASN__DECODE_STARVED; - - p = REALLOC(st->buf, st->size + len + 1); - if(!p) ASN__DECODE_FAILED; - st->buf = (uint8_t *)p; - - ret = per_get_many_bits(pd, &st->buf[st->size], 0, 8 * len); - if(ret < 0) ASN__DECODE_STARVED; - st->size += len; - } while(repeat); - st->buf[st->size] = 0; /* JIC */ - - /* #12.2.3 */ - if(ct && ct->lower_bound) { - /* - * TODO: replace by in-place arithmetics. - */ - long value = 0; - if(asn_INTEGER2long(st, &value)) - ASN__DECODE_FAILED; - if(asn_imax2INTEGER(st, value + ct->lower_bound)) - ASN__DECODE_FAILED; - } - - return rval; -} - -asn_enc_rval_t -INTEGER_encode_uper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, const void *sptr, - asn_per_outp_t *po) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - asn_enc_rval_t er = {0,0,0}; - const INTEGER_t *st = (const INTEGER_t *)sptr; - const uint8_t *buf; - const uint8_t *end; - const asn_per_constraint_t *ct; - long value = 0; - - if(!st || st->size == 0) ASN__ENCODE_FAILED; - - if(!constraints) constraints = td->encoding_constraints.per_constraints; - ct = constraints ? &constraints->value : 0; - - er.encoded = 0; - - if(ct) { - int inext = 0; - if(specs && specs->field_unsigned) { - unsigned long uval; - if(asn_INTEGER2ulong(st, &uval)) - ASN__ENCODE_FAILED; - /* Check proper range */ - if(ct->flags & APC_SEMI_CONSTRAINED) { - if(uval < (unsigned long)ct->lower_bound) - inext = 1; - } else if(ct->range_bits >= 0) { - if(uval < (unsigned long)ct->lower_bound - || uval > (unsigned long)ct->upper_bound) - inext = 1; - } - ASN_DEBUG("Value %lu (%02x/%" ASN_PRI_SIZE ") lb %lu ub %lu %s", - uval, st->buf[0], st->size, - ct->lower_bound, ct->upper_bound, - inext ? "ext" : "fix"); - value = uval; - } else { - if(asn_INTEGER2long(st, &value)) - ASN__ENCODE_FAILED; - /* Check proper range */ - if(ct->flags & APC_SEMI_CONSTRAINED) { - if(value < ct->lower_bound) - inext = 1; - } else if(ct->range_bits >= 0) { - if(value < ct->lower_bound - || value > ct->upper_bound) - inext = 1; - } - ASN_DEBUG("Value %ld (%02x/%" ASN_PRI_SIZE ") lb %ld ub %ld %s", - value, st->buf[0], st->size, - ct->lower_bound, ct->upper_bound, - inext ? "ext" : "fix"); - } - if(ct->flags & APC_EXTENSIBLE) { - if(per_put_few_bits(po, inext, 1)) - ASN__ENCODE_FAILED; - if(inext) ct = 0; - } else if(inext) { - ASN__ENCODE_FAILED; - } - } - - - /* X.691-11/2008, #13.2.2, test if constrained whole number */ - if(ct && ct->range_bits >= 0) { - unsigned long v; - /* #11.5.6 -> #11.3 */ - ASN_DEBUG("Encoding integer %ld (%lu) with range %d bits", - value, value - ct->lower_bound, ct->range_bits); - if(specs && specs->field_unsigned) { - if ( ((unsigned long)ct->lower_bound > (unsigned long)(ct->upper_bound) - || ((unsigned long)value < (unsigned long)ct->lower_bound)) - || ((unsigned long)value > (unsigned long)ct->upper_bound) - ) { - ASN_DEBUG("Value %lu to-be-encoded is outside the bounds [%lu, %lu]!", - value, ct->lower_bound, ct->upper_bound); - ASN__ENCODE_FAILED; - } - v = (unsigned long)value - (unsigned long)ct->lower_bound; - } else { - if(per_long_range_rebase(value, ct->lower_bound, ct->upper_bound, &v)) { - ASN__ENCODE_FAILED; - } - } - if(uper_put_constrained_whole_number_u(po, v, ct->range_bits)) - ASN__ENCODE_FAILED; - ASN__ENCODED_OK(er); - } - - if(ct && ct->lower_bound) { - ASN_DEBUG("Adjust lower bound to %ld", ct->lower_bound); - /* TODO: adjust lower bound */ - ASN__ENCODE_FAILED; - } - - for(buf = st->buf, end = st->buf + st->size; buf < end;) { - int need_eom = 0; - ssize_t mayEncode = uper_put_length(po, end - buf, &need_eom); - if(mayEncode < 0) - ASN__ENCODE_FAILED; - if(per_put_many_bits(po, buf, 8 * mayEncode)) - ASN__ENCODE_FAILED; - buf += mayEncode; - if(need_eom && uper_put_length(po, 0, 0)) ASN__ENCODE_FAILED; - } - - ASN__ENCODED_OK(er); -} - -asn_dec_rval_t -INTEGER_decode_aper(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, asn_per_data_t *pd) { - const asn_INTEGER_specifics_t *specs = (const asn_INTEGER_specifics_t *)td->specifics; - asn_dec_rval_t rval = { RC_OK, 0 }; - INTEGER_t *st = (INTEGER_t *)*sptr; - const asn_per_constraint_t *ct; - int repeat; - - (void)opt_codec_ctx; - - if(!st) { - st = (INTEGER_t *)(*sptr = CALLOC(1, sizeof(*st))); - if(!st) ASN__DECODE_FAILED; - } - - if(!constraints) constraints = td->encoding_constraints.per_constraints; - ct = constraints ? &constraints->value : 0; - - if(ct && ct->flags & APC_EXTENSIBLE) { - int inext = per_get_few_bits(pd, 1); - if(inext < 0) ASN__DECODE_STARVED; - if(inext) ct = 0; - } - - FREEMEM(st->buf); - st->buf = 0; - st->size = 0; - if(ct) { - if(ct->flags & APC_SEMI_CONSTRAINED) { - st->buf = (uint8_t *)CALLOC(1, 2); - if(!st->buf) ASN__DECODE_FAILED; - st->size = 1; - } else if(ct->flags & APC_CONSTRAINED && ct->range_bits >= 0) { - size_t size = (ct->range_bits + 7) >> 3; - st->buf = (uint8_t *)MALLOC(1 + size + 1); - if(!st->buf) ASN__DECODE_FAILED; - st->size = size; - } - } - - /* X.691, #12.2.2 */ - if(ct && ct->flags != APC_UNCONSTRAINED) { - /* #10.5.6 */ - ASN_DEBUG("Integer with range %d bits", ct->range_bits); - if(ct->range_bits >= 0) { - if (ct->range_bits > 16) { - int max_range_bytes = (ct->range_bits >> 3) + - (((ct->range_bits % 8) > 0) ? 1 : 0); - int length = 0, i; - long value = 0; - - for (i = 1; ; i++) { - int upper = 1 << i; - if (upper >= max_range_bytes) - break; - } - ASN_DEBUG("Can encode %d (%d bytes) in %d bits", ct->range_bits, - max_range_bytes, i); - - if ((length = per_get_few_bits(pd, i)) < 0) - ASN__DECODE_FAILED; - - /* X.691 #12.2.6 length determinant + lb (1) */ - length += 1; - ASN_DEBUG("Got length %d", length); - if (aper_get_align(pd) != 0) - ASN__DECODE_FAILED; - while (length--) { - int buf = per_get_few_bits(pd, 8); - if (buf < 0) - ASN__DECODE_FAILED; - value += (((long)buf) << (8 * length)); - } - - value += ct->lower_bound; - if((specs && specs->field_unsigned) - ? asn_uint642INTEGER(st, (unsigned long)value) - : asn_int642INTEGER(st, value)) - ASN__DECODE_FAILED; - ASN_DEBUG("Got value %ld + low %ld", - value, ct->lower_bound); - } else { - long value = 0; - if (ct->range_bits < 8) { - value = per_get_few_bits(pd, ct->range_bits); - if(value < 0) ASN__DECODE_STARVED; - } else if (ct->range_bits == 8) { - if (aper_get_align(pd) < 0) - ASN__DECODE_FAILED; - value = per_get_few_bits(pd, ct->range_bits); - if(value < 0) ASN__DECODE_STARVED; - } else { - /* Align */ - if (aper_get_align(pd) < 0) - ASN__DECODE_FAILED; - value = per_get_few_bits(pd, 16); - if(value < 0) ASN__DECODE_STARVED; - } - value += ct->lower_bound; - if((specs && specs->field_unsigned) - ? asn_ulong2INTEGER(st, value) - : asn_long2INTEGER(st, value)) - ASN__DECODE_FAILED; - ASN_DEBUG("Got value %ld + low %ld", - value, ct->lower_bound); - } - return rval; - } else { - ASN__DECODE_FAILED; - } - } else { - ASN_DEBUG("Decoding unconstrained integer %s", td->name); - } - - /* X.691, #12.2.3, #12.2.4 */ - do { - ssize_t len; - void *p; - int ret; - - /* Get the PER length */ - len = aper_get_length(pd, -1, -1, &repeat); - if(len < 0) ASN__DECODE_STARVED; - - p = REALLOC(st->buf, st->size + len + 1); - if(!p) ASN__DECODE_FAILED; - st->buf = (uint8_t *)p; - - ret = per_get_many_bits(pd, &st->buf[st->size], 0, 8 * len); - if(ret < 0) ASN__DECODE_STARVED; - st->size += len; - } while(repeat); - st->buf[st->size] = 0; /* JIC */ - - /* #12.2.3 */ - if(ct && ct->lower_bound) { - /* - * TODO: replace by in-place arithmetics. - */ - long value; - if(asn_INTEGER2long(st, &value)) - ASN__DECODE_FAILED; - if(asn_long2INTEGER(st, value + ct->lower_bound)) - ASN__DECODE_FAILED; - } - - return rval; -} - -asn_enc_rval_t -INTEGER_encode_aper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_per_outp_t *po) { - const asn_INTEGER_specifics_t *specs = (const asn_INTEGER_specifics_t *)td->specifics; - asn_enc_rval_t er = {0,0,0}; - const INTEGER_t *st = (const INTEGER_t *)sptr; - const uint8_t *buf; - const uint8_t *end; - const asn_per_constraint_t *ct; - long value = 0; - - if(!st || st->size == 0) ASN__ENCODE_FAILED; - - if(!constraints) constraints = td->encoding_constraints.per_constraints; - ct = constraints ? &constraints->value : 0; - - er.encoded = 0; - - if(ct) { - int inext = 0; - if(specs && specs->field_unsigned) { - unsigned long uval; - if(asn_INTEGER2ulong(st, &uval)) - ASN__ENCODE_FAILED; - /* Check proper range */ - if(ct->flags & APC_SEMI_CONSTRAINED) { - if(uval < (unsigned long)ct->lower_bound) - inext = 1; - } else if(ct->range_bits >= 0) { - if(uval < (unsigned long)ct->lower_bound - || uval > (unsigned long)ct->upper_bound) - inext = 1; - } - ASN_DEBUG("Value %lu (%02x/%lu) lb %ld ub %ld %s", - uval, st->buf[0], st->size, - ct->lower_bound, ct->upper_bound, - inext ? "ext" : "fix"); - value = uval; - } else { - if(asn_INTEGER2long(st, &value)) ASN__ENCODE_FAILED; - /* Check proper range */ - if(ct->flags & APC_SEMI_CONSTRAINED) { - if(value < ct->lower_bound) - inext = 1; - } else if(ct->range_bits >= 0) { - if(value < ct->lower_bound - || value > ct->upper_bound) - inext = 1; - } - ASN_DEBUG("Value %lu (%02x/%lu) lb %ld ub %ld %s", - value, st->buf[0], st->size, - ct->lower_bound, ct->upper_bound, - inext ? "ext" : "fix"); - } - if(ct->flags & APC_EXTENSIBLE) { - if(per_put_few_bits(po, inext, 1)) - ASN__ENCODE_FAILED; - if(inext) ct = 0; - } else if(inext) { - ASN__ENCODE_FAILED; - } - } - - /* X.691, #12.2.2 */ - if(ct && ct->range_bits >= 0) { - unsigned long v; - - /* #10.5.6 */ - ASN_DEBUG("Encoding integer %ld (%lu) with range %d bits", - value, value - ct->lower_bound, ct->range_bits); - - v = value - ct->lower_bound; - - /* #12 <= 8 -> alignment ? */ - if (ct->range_bits < 8) { - if(per_put_few_bits(po, 0x00 | v, ct->range_bits)) - ASN__ENCODE_FAILED; - } else if (ct->range_bits == 8) { - if(aper_put_align(po) < 0) - ASN__ENCODE_FAILED; - if(per_put_few_bits(po, 0x00 | v, ct->range_bits)) - ASN__ENCODE_FAILED; - } else if (ct->range_bits <= 16) { - /* Consume the bytes to align on octet */ - if(aper_put_align(po) < 0) - ASN__ENCODE_FAILED; - if(per_put_few_bits(po, 0x0000 | v, - 16)) - ASN__ENCODE_FAILED; - } else { - /* TODO: extend to >64 bits */ - int64_t v64 = v; - int i, j; - int max_range_bytes = (ct->range_bits >> 3) + - (((ct->range_bits % 8) > 0) ? 1 : 0); - - for (i = 1; ; i++) { - int upper = 1 << i; - if (upper >= max_range_bytes) - break; - } - - for (j = sizeof(int64_t) -1; j != 0; j--) { - int64_t val; - val = v64 >> (j * 8); - if (val != 0) - break; - } - - /* Putting length in the minimum number of bits ex: 5 = 3bits */ - if (per_put_few_bits(po, j, i)) - ASN__ENCODE_FAILED; - - /* Consume the bits to align on octet */ - if (aper_put_align(po) < 0) - ASN__ENCODE_FAILED; - /* Put the value */ - for (i = 0; i <= j; i++) { - if(per_put_few_bits(po, (v64 >> (8 * (j - i))) & 0xff, 8)) - ASN__ENCODE_FAILED; - } - } - ASN__ENCODED_OK(er); - } - - if(ct && ct->lower_bound) { - ASN_DEBUG("Adjust lower bound to %ld", ct->lower_bound); - /* TODO: adjust lower bound */ - ASN__ENCODE_FAILED; - } - - for(buf = st->buf, end = st->buf + st->size; buf < end;) { - ssize_t mayEncode = aper_put_length(po, -1, end - buf); - if(mayEncode < 0) - ASN__ENCODE_FAILED; - if(per_put_many_bits(po, buf, 8 * mayEncode)) - ASN__ENCODE_FAILED; - buf += mayEncode; - } - - ASN__ENCODED_OK(er); -} - -#endif /* ASN_DISABLE_PER_SUPPORT */ - -static intmax_t -asn__integer_convert(const uint8_t *b, const uint8_t *end) { - uintmax_t value; - - /* Perform the sign initialization */ - /* Actually value = -(*b >> 7); gains nothing, yet unreadable! */ - if((*b >> 7)) { - value = (uintmax_t)(-1); - } else { - value = 0; - } - - /* Conversion engine */ - for(; b < end; b++) { - value = (value << 8) | *b; - } - - return value; -} - -int -asn_INTEGER2imax(const INTEGER_t *iptr, intmax_t *lptr) { - uint8_t *b, *end; - size_t size; - - /* Sanity checking */ - if(!iptr || !iptr->buf || !lptr) { - errno = EINVAL; - return -1; - } - - /* Cache the begin/end of the buffer */ - b = iptr->buf; /* Start of the INTEGER buffer */ - size = iptr->size; - end = b + size; /* Where to stop */ - - if(size > sizeof(intmax_t)) { - uint8_t *end1 = end - 1; - /* - * Slightly more advanced processing, - * able to process INTEGERs with >sizeof(intmax_t) bytes - * when the actual value is small, e.g. for intmax_t == int32_t - * (0x0000000000abcdef INTEGER would yield a fine 0x00abcdef int32_t) - */ - /* Skip out the insignificant leading bytes */ - for(; b < end1; b++) { - switch(*b) { - case 0x00: if((b[1] & 0x80) == 0) continue; break; - case 0xff: if((b[1] & 0x80) != 0) continue; break; - } - break; - } - - size = end - b; - if(size > sizeof(intmax_t)) { - /* Still cannot fit the sizeof(intmax_t) */ - errno = ERANGE; - return -1; - } - } - - /* Shortcut processing of a corner case */ - if(end == b) { - *lptr = 0; - return 0; - } - - *lptr = asn__integer_convert(b, end); - return 0; -} - -/* FIXME: negative INTEGER values are silently interpreted as large unsigned ones. */ -int -asn_INTEGER2umax(const INTEGER_t *iptr, uintmax_t *lptr) { - uint8_t *b, *end; - uintmax_t value; - size_t size; - - if(!iptr || !iptr->buf || !lptr) { - errno = EINVAL; - return -1; - } - - b = iptr->buf; - size = iptr->size; - end = b + size; - - /* If all extra leading bytes are zeroes, ignore them */ - for(; size > sizeof(value); b++, size--) { - if(*b) { - /* Value won't fit into uintmax_t */ - errno = ERANGE; - return -1; - } - } - - /* Conversion engine */ - for(value = 0; b < end; b++) - value = (value << 8) | *b; - - *lptr = value; - return 0; -} - -int -asn_umax2INTEGER(INTEGER_t *st, uintmax_t value) { - uint8_t *buf; - uint8_t *end; - uint8_t *b; - int shr; - - if(value <= ((~(uintmax_t)0) >> 1)) { - return asn_imax2INTEGER(st, value); - } - - buf = (uint8_t *)MALLOC(1 + sizeof(value)); - if(!buf) return -1; - - end = buf + (sizeof(value) + 1); - buf[0] = 0; /* INTEGERs are signed. 0-byte indicates positive. */ - for(b = buf + 1, shr = (sizeof(value) - 1) * 8; b < end; shr -= 8, b++) - *b = (uint8_t)(value >> shr); - - if(st->buf) FREEMEM(st->buf); - st->buf = buf; - st->size = 1 + sizeof(value); - - return 0; -} - -int -asn_imax2INTEGER(INTEGER_t *st, intmax_t value) { - uint8_t *buf, *bp; - uint8_t *p; - uint8_t *pstart; - uint8_t *pend1; - int littleEndian = 1; /* Run-time detection */ - int add; - - if(!st) { - errno = EINVAL; - return -1; - } - - buf = (uint8_t *)(long *)MALLOC(sizeof(value)); - if(!buf) return -1; - - if(*(char *)&littleEndian) { - pstart = (uint8_t *)&value + sizeof(value) - 1; - pend1 = (uint8_t *)&value; - add = -1; - } else { - pstart = (uint8_t *)&value; - pend1 = pstart + sizeof(value) - 1; - add = 1; - } - - /* - * If the contents octet consists of more than one octet, - * then bits of the first octet and bit 8 of the second octet: - * a) shall not all be ones; and - * b) shall not all be zero. - */ - for(p = pstart; p != pend1; p += add) { - switch(*p) { - case 0x00: if((*(p+add) & 0x80) == 0) - continue; - break; - case 0xff: if((*(p+add) & 0x80)) - continue; - break; - } - break; - } - /* Copy the integer body */ - for(bp = buf, pend1 += add; p != pend1; p += add) - *bp++ = *p; - - if(st->buf) FREEMEM(st->buf); - st->buf = buf; - st->size = bp - buf; - - return 0; -} - -int -asn_INTEGER2long(const INTEGER_t *iptr, long *l) { - intmax_t v; - if(asn_INTEGER2imax(iptr, &v) == 0) { - if(v < LONG_MIN || v > LONG_MAX) { - errno = ERANGE; - return -1; - } - *l = v; - return 0; - } else { - return -1; - } -} - -int -asn_INTEGER2ulong(const INTEGER_t *iptr, unsigned long *l) { - uintmax_t v; - if(asn_INTEGER2umax(iptr, &v) == 0) { - if(v > ULONG_MAX) { - errno = ERANGE; - return -1; - } - *l = v; - return 0; - } else { - return -1; - } -} - -int -asn_long2INTEGER(INTEGER_t *st, long value) { - return asn_imax2INTEGER(st, value); -} - -int -asn_ulong2INTEGER(INTEGER_t *st, unsigned long value) { - return asn_imax2INTEGER(st, value); -} - - -int -asn_uint642INTEGER(INTEGER_t *st, uint64_t value) { - uint8_t *buf; - uint8_t *end; - uint8_t *b; - int shr; - - if(value <= INT64_MAX) - return asn_int642INTEGER(st, value); - - buf = (uint8_t *)MALLOC(1 + sizeof(value)); - if(!buf) return -1; - - end = buf + (sizeof(value) + 1); - buf[0] = 0; - for(b = buf + 1, shr = (sizeof(value)-1)*8; b < end; shr -= 8, b++) - *b = (uint8_t)(value >> shr); - - if(st->buf) FREEMEM(st->buf); - st->buf = buf; - st->size = 1 + sizeof(value); - - return 0; -} - -int -asn_int642INTEGER(INTEGER_t *st, int64_t value) { - uint8_t *buf, *bp; - uint8_t *p; - uint8_t *pstart; - uint8_t *pend1; - int littleEndian = 1; /* Run-time detection */ - int add; - - if(!st) { - errno = EINVAL; - return -1; - } - - buf = (uint8_t *)MALLOC(sizeof(value)); - if(!buf) return -1; - - if(*(char *)&littleEndian) { - pstart = (uint8_t *)&value + sizeof(value) - 1; - pend1 = (uint8_t *)&value; - add = -1; - } else { - pstart = (uint8_t *)&value; - pend1 = pstart + sizeof(value) - 1; - add = 1; - } - - /* - * If the contents octet consists of more than one octet, - * then bits of the first octet and bit 8 of the second octet: - * a) shall not all be ones; and - * b) shall not all be zero. - */ - for(p = pstart; p != pend1; p += add) { - switch(*p) { - case 0x00: if((*(p+add) & 0x80) == 0) - continue; - break; - case 0xff: if((*(p+add) & 0x80)) - continue; - break; - } - break; - } - /* Copy the integer body */ - for(pstart = p, bp = buf, pend1 += add; p != pend1; p += add) - *bp++ = *p; - - if(st->buf) FREEMEM(st->buf); - st->buf = buf; - st->size = bp - buf; - - return 0; -} - -/* - * Parse the number in the given string until the given *end position, - * returning the position after the last parsed character back using the - * same (*end) pointer. - * WARNING: This behavior is different from the standard strtol/strtoimax(3). - */ -enum asn_strtox_result_e -asn_strtoimax_lim(const char *str, const char **end, intmax_t *intp) { - int sign = 1; - intmax_t value; - -#define ASN1_INTMAX_MAX ((~(uintmax_t)0) >> 1) - const intmax_t upper_boundary = ASN1_INTMAX_MAX / 10; - intmax_t last_digit_max = ASN1_INTMAX_MAX % 10; -#undef ASN1_INTMAX_MAX - - if(str >= *end) return ASN_STRTOX_ERROR_INVAL; - - switch(*str) { - case '-': - last_digit_max++; - sign = -1; - /* FALL THROUGH */ - case '+': - str++; - if(str >= *end) { - *end = str; - return ASN_STRTOX_EXPECT_MORE; - } - } - - for(value = 0; str < (*end); str++) { - switch(*str) { - case 0x30: case 0x31: case 0x32: case 0x33: case 0x34: - case 0x35: case 0x36: case 0x37: case 0x38: case 0x39: { - int d = *str - '0'; - if(value < upper_boundary) { - value = value * 10 + d; - } else if(value == upper_boundary) { - if(d <= last_digit_max) { - if(sign > 0) { - value = value * 10 + d; - } else { - sign = 1; - value = -value * 10 - d; - } - } else { - *end = str; - return ASN_STRTOX_ERROR_RANGE; - } - } else { - *end = str; - return ASN_STRTOX_ERROR_RANGE; - } - } - continue; - default: - *end = str; - *intp = sign * value; - return ASN_STRTOX_EXTRA_DATA; - } - } - - *end = str; - *intp = sign * value; - return ASN_STRTOX_OK; -} - -/* - * Parse the number in the given string until the given *end position, - * returning the position after the last parsed character back using the - * same (*end) pointer. - * WARNING: This behavior is different from the standard strtoul/strtoumax(3). - */ -enum asn_strtox_result_e -asn_strtoumax_lim(const char *str, const char **end, uintmax_t *uintp) { - uintmax_t value; - -#define ASN1_UINTMAX_MAX ((~(uintmax_t)0)) - const uintmax_t upper_boundary = ASN1_UINTMAX_MAX / 10; - uintmax_t last_digit_max = ASN1_UINTMAX_MAX % 10; -#undef ASN1_UINTMAX_MAX - - if(str >= *end) return ASN_STRTOX_ERROR_INVAL; - - switch(*str) { - case '-': - return ASN_STRTOX_ERROR_INVAL; - case '+': - str++; - if(str >= *end) { - *end = str; - return ASN_STRTOX_EXPECT_MORE; - } - } - - for(value = 0; str < (*end); str++) { - switch(*str) { - case 0x30: case 0x31: case 0x32: case 0x33: case 0x34: - case 0x35: case 0x36: case 0x37: case 0x38: case 0x39: { - unsigned int d = *str - '0'; - if(value < upper_boundary) { - value = value * 10 + d; - } else if(value == upper_boundary) { - if(d <= last_digit_max) { - value = value * 10 + d; - } else { - *end = str; - return ASN_STRTOX_ERROR_RANGE; - } - } else { - *end = str; - return ASN_STRTOX_ERROR_RANGE; - } - } - continue; - default: - *end = str; - *uintp = value; - return ASN_STRTOX_EXTRA_DATA; - } - } - - *end = str; - *uintp = value; - return ASN_STRTOX_OK; -} - -enum asn_strtox_result_e -asn_strtol_lim(const char *str, const char **end, long *lp) { - intmax_t value; - switch(asn_strtoimax_lim(str, end, &value)) { - case ASN_STRTOX_ERROR_RANGE: - return ASN_STRTOX_ERROR_RANGE; - case ASN_STRTOX_ERROR_INVAL: - return ASN_STRTOX_ERROR_INVAL; - case ASN_STRTOX_EXPECT_MORE: - return ASN_STRTOX_EXPECT_MORE; - case ASN_STRTOX_OK: - if(value >= LONG_MIN && value <= LONG_MAX) { - *lp = value; - return ASN_STRTOX_OK; - } else { - return ASN_STRTOX_ERROR_RANGE; - } - case ASN_STRTOX_EXTRA_DATA: - if(value >= LONG_MIN && value <= LONG_MAX) { - *lp = value; - return ASN_STRTOX_EXTRA_DATA; - } else { - return ASN_STRTOX_ERROR_RANGE; - } - } - - assert(!"Unreachable"); - return ASN_STRTOX_ERROR_INVAL; -} - -enum asn_strtox_result_e -asn_strtoul_lim(const char *str, const char **end, unsigned long *ulp) { - uintmax_t value; - switch(asn_strtoumax_lim(str, end, &value)) { - case ASN_STRTOX_ERROR_RANGE: - return ASN_STRTOX_ERROR_RANGE; - case ASN_STRTOX_ERROR_INVAL: - return ASN_STRTOX_ERROR_INVAL; - case ASN_STRTOX_EXPECT_MORE: - return ASN_STRTOX_EXPECT_MORE; - case ASN_STRTOX_OK: - if(value <= ULONG_MAX) { - *ulp = value; - return ASN_STRTOX_OK; - } else { - return ASN_STRTOX_ERROR_RANGE; - } - case ASN_STRTOX_EXTRA_DATA: - if(value <= ULONG_MAX) { - *ulp = value; - return ASN_STRTOX_EXTRA_DATA; - } else { - return ASN_STRTOX_ERROR_RANGE; - } - } - - assert(!"Unreachable"); - return ASN_STRTOX_ERROR_INVAL; -} - -int -INTEGER_compare(const asn_TYPE_descriptor_t *td, const void *aptr, - const void *bptr) { - const INTEGER_t *a = aptr; - const INTEGER_t *b = bptr; - - (void)td; - - if(a && b) { - if(a->size && b->size) { - int sign_a = (a->buf[0] & 0x80) ? -1 : 1; - int sign_b = (b->buf[0] & 0x80) ? -1 : 1; - - if(sign_a < sign_b) return -1; - if(sign_a > sign_b) return 1; - - /* The shortest integer wins, unless comparing negatives */ - if(a->size < b->size) { - return -1 * sign_a; - } else if(a->size > b->size) { - return 1 * sign_b; - } - - return sign_a * memcmp(a->buf, b->buf, a->size); - } else if(a->size) { - int sign = (a->buf[0] & 0x80) ? -1 : 1; - return (1) * sign; - } else if(b->size) { - int sign = (a->buf[0] & 0x80) ? -1 : 1; - return (-1) * sign; - } else { - return 0; - } - } else if(!a && !b) { - return 0; - } else if(!a) { - return -1; - } else { - return 1; - } - -} - -asn_random_fill_result_t -INTEGER_random_fill(const asn_TYPE_descriptor_t *td, void **sptr, - const asn_encoding_constraints_t *constraints, - size_t max_length) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - asn_random_fill_result_t result_ok = {ARFILL_OK, 1}; - asn_random_fill_result_t result_failed = {ARFILL_FAILED, 0}; - asn_random_fill_result_t result_skipped = {ARFILL_SKIPPED, 0}; - INTEGER_t *st = *sptr; - const asn_INTEGER_enum_map_t *emap; - size_t emap_len; - intmax_t value; - int find_inside_map; - - if(max_length == 0) return result_skipped; - - if(st == NULL) { - st = (INTEGER_t *)CALLOC(1, sizeof(*st)); - if(st == NULL) { - return result_failed; - } - } - - if(specs) { - emap = specs->value2enum; - emap_len = specs->map_count; - if(specs->strict_enumeration) { - find_inside_map = emap_len > 0; - } else { - find_inside_map = emap_len ? asn_random_between(0, 1) : 0; - } - } else { - emap = 0; - emap_len = 0; - find_inside_map = 0; - } - - if(find_inside_map) { - assert(emap_len > 0); - value = emap[asn_random_between(0, emap_len - 1)].nat_value; - } else { - const asn_per_constraints_t *ct; - - static const long variants[] = { - -65536, -65535, -65534, -32769, -32768, -32767, -16385, -16384, - -16383, -257, -256, -255, -254, -129, -128, -127, - -126, -1, 0, 1, 126, 127, 128, 129, - 254, 255, 256, 257, 16383, 16384, 16385, 32767, - 32768, 32769, 65534, 65535, 65536, 65537}; - if(specs && specs->field_unsigned) { - assert(variants[18] == 0); - value = variants[asn_random_between( - 18, sizeof(variants) / sizeof(variants[0]) - 1)]; - } else { - value = variants[asn_random_between( - 0, sizeof(variants) / sizeof(variants[0]) - 1)]; - } - - if(!constraints) constraints = &td->encoding_constraints; - ct = constraints ? constraints->per_constraints : 0; - if(ct && (ct->value.flags & APC_CONSTRAINED)) { - if(value < ct->value.lower_bound || value > ct->value.upper_bound) { - value = asn_random_between(ct->value.lower_bound, - ct->value.upper_bound); - } - } - } - - if(asn_imax2INTEGER(st, value)) { - if(st == *sptr) { - ASN_STRUCT_RESET(*td, st); - } else { - ASN_STRUCT_FREE(*td, st); - } - return result_failed; - } else { - *sptr = st; - result_ok.length = st->size; - return result_ok; - } -} diff --git a/e2sim/previous/ASN1c/INTEGER.h b/e2sim/previous/ASN1c/INTEGER.h deleted file mode 100644 index b2a1eac..0000000 --- a/e2sim/previous/ASN1c/INTEGER.h +++ /dev/null @@ -1,126 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/*- - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef _INTEGER_H_ -#define _INTEGER_H_ - -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -typedef ASN__PRIMITIVE_TYPE_t INTEGER_t; - -extern asn_TYPE_descriptor_t asn_DEF_INTEGER; -extern asn_TYPE_operation_t asn_OP_INTEGER; - -/* Map with to integer value association */ -typedef struct asn_INTEGER_enum_map_s { - long nat_value; /* associated native integer value */ - size_t enum_len; /* strlen("tag") */ - const char *enum_name; /* "tag" */ -} asn_INTEGER_enum_map_t; - -/* This type describes an enumeration for INTEGER and ENUMERATED types */ -typedef struct asn_INTEGER_specifics_s { - const asn_INTEGER_enum_map_t *value2enum; /* N -> "tag"; sorted by N */ - const unsigned int *enum2value; /* "tag" => N; sorted by tag */ - int map_count; /* Elements in either map */ - int extension; /* This map is extensible */ - int strict_enumeration; /* Enumeration set is fixed */ - int field_width; /* Size of native integer */ - int field_unsigned; /* Signed=0, unsigned=1 */ -} asn_INTEGER_specifics_t; - -#define INTEGER_free ASN__PRIMITIVE_TYPE_free -#define INTEGER_decode_ber ber_decode_primitive -#define INTEGER_constraint asn_generic_no_constraint -asn_struct_print_f INTEGER_print; -asn_struct_compare_f INTEGER_compare; -der_type_encoder_f INTEGER_encode_der; -xer_type_decoder_f INTEGER_decode_xer; -xer_type_encoder_f INTEGER_encode_xer; -oer_type_decoder_f INTEGER_decode_oer; -oer_type_encoder_f INTEGER_encode_oer; -per_type_decoder_f INTEGER_decode_uper; -per_type_encoder_f INTEGER_encode_uper; -per_type_decoder_f INTEGER_decode_aper; -per_type_encoder_f INTEGER_encode_aper; -asn_random_fill_f INTEGER_random_fill; - -/*********************************** - * Some handy conversion routines. * - ***********************************/ - -/* - * Natiwe size-independent conversion of native integers to/from INTEGER. - * (l_size) is in bytes. - * Returns 0 if it was possible to convert, -1 otherwise. - * -1/EINVAL: Mandatory argument missing - * -1/ERANGE: Value encoded is out of range for long representation - * -1/ENOMEM: Memory allocation failed (in asn_*2INTEGER()). - */ -int asn_INTEGER2imax(const INTEGER_t *i, intmax_t *l); -int asn_INTEGER2umax(const INTEGER_t *i, uintmax_t *l); -int asn_imax2INTEGER(INTEGER_t *i, intmax_t l); -int asn_umax2INTEGER(INTEGER_t *i, uintmax_t l); - -/* - * Size-specific conversion helpers. - */ -int asn_INTEGER2long(const INTEGER_t *i, long *l); -int asn_INTEGER2ulong(const INTEGER_t *i, unsigned long *l); -int asn_long2INTEGER(INTEGER_t *i, long l); -int asn_ulong2INTEGER(INTEGER_t *i, unsigned long l); -int asn_int642INTEGER(INTEGER_t *i, int64_t l); -int asn_uint642INTEGER(INTEGER_t *i, uint64_t l); - -/* A version of strtol/strtoimax(3) with nicer error reporting. */ -enum asn_strtox_result_e { - ASN_STRTOX_ERROR_RANGE = -3, /* Input outside of supported numeric range */ - ASN_STRTOX_ERROR_INVAL = -2, /* Invalid data encountered (e.g., "+-") */ - ASN_STRTOX_EXPECT_MORE = -1, /* More data expected (e.g. "+") */ - ASN_STRTOX_OK = 0, /* Conversion succeded, number ends at (*end) */ - ASN_STRTOX_EXTRA_DATA = 1 /* Conversion succeded, but the string has extra stuff */ -}; -enum asn_strtox_result_e asn_strtol_lim(const char *str, const char **end, - long *l); -enum asn_strtox_result_e asn_strtoul_lim(const char *str, const char **end, - unsigned long *l); -enum asn_strtox_result_e asn_strtoimax_lim(const char *str, const char **end, - intmax_t *l); -enum asn_strtox_result_e asn_strtoumax_lim(const char *str, const char **end, - uintmax_t *l); - -/* - * Convert the integer value into the corresponding enumeration map entry. - */ -const asn_INTEGER_enum_map_t *INTEGER_map_value2enum( - const asn_INTEGER_specifics_t *specs, long value); - -#ifdef __cplusplus -} -#endif - -#endif /* _INTEGER_H_ */ diff --git a/e2sim/previous/ASN1c/InitiatingMessage.c b/e2sim/previous/ASN1c/InitiatingMessage.c deleted file mode 100644 index 1e9c6e0..0000000 --- a/e2sim/previous/ASN1c/InitiatingMessage.c +++ /dev/null @@ -1,526 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Descriptions" - * found in "../../asnFiles/e2ap-v031.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "InitiatingMessage.h" - -static const long asn_VAL_1_id_ricSubscription = 201; -static const long asn_VAL_1_reject = 0; -static const long asn_VAL_2_id_ricSubscriptionDelete = 202; -static const long asn_VAL_2_reject = 0; -static const long asn_VAL_3_id_ricServiceUpdate = 203; -static const long asn_VAL_3_reject = 0; -static const long asn_VAL_4_id_ricControl = 204; -static const long asn_VAL_4_reject = 0; -static const long asn_VAL_5_id_x2Setup = 6; -static const long asn_VAL_5_reject = 0; -static const long asn_VAL_6_id_endcX2Setup = 36; -static const long asn_VAL_6_reject = 0; -static const long asn_VAL_7_id_resourceStatusReportingInitiation = 9; -static const long asn_VAL_7_reject = 0; -static const long asn_VAL_8_id_eNBConfigurationUpdate = 8; -static const long asn_VAL_8_reject = 0; -static const long asn_VAL_9_id_endcConfigurationUpdate = 37; -static const long asn_VAL_9_reject = 0; -static const long asn_VAL_10_id_reset = 7; -static const long asn_VAL_10_reject = 0; -static const long asn_VAL_11_id_ricIndication = 205; -static const long asn_VAL_11_ignore = 1; -static const long asn_VAL_12_id_ricServiceQuery = 206; -static const long asn_VAL_12_ignore = 1; -static const long asn_VAL_13_id_loadIndication = 2; -static const long asn_VAL_13_ignore = 1; -static const long asn_VAL_14_id_gNBStatusIndication = 45; -static const long asn_VAL_14_ignore = 1; -static const long asn_VAL_15_id_resourceStatusReporting = 10; -static const long asn_VAL_15_ignore = 1; -static const long asn_VAL_16_id_errorIndication = 3; -static const long asn_VAL_16_ignore = 1; -static const asn_ioc_cell_t asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1_rows[] = { - { "&InitiatingMessage", aioc__type, &asn_DEF_RICsubscriptionRequest }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionResponse }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_1_id_ricSubscription }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_1_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_RICsubscriptionDeleteRequest }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionDeleteResponse }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionDeleteFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_2_id_ricSubscriptionDelete }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_2_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_RICserviceUpdate }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_RICserviceUpdateAcknowledge }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RICserviceUpdateFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_3_id_ricServiceUpdate }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_3_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_RICcontrolRequest }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_RICcontrolAcknowledge }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RICcontrolFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_4_id_ricControl }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_4_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_X2SetupRequest }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_X2SetupResponse }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_X2SetupFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_5_id_x2Setup }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_5_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_ENDCX2SetupRequest }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_ENDCX2SetupResponse }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_ENDCX2SetupFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_6_id_endcX2Setup }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_6_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_ResourceStatusRequest }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_ResourceStatusResponse }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_ResourceStatusFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_7_id_resourceStatusReportingInitiation }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_7_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_ENBConfigurationUpdate }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_ENBConfigurationUpdateAcknowledge }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_ENBConfigurationUpdateFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_8_id_eNBConfigurationUpdate }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_8_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_ENDCConfigurationUpdate }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_ENDCConfigurationUpdateAcknowledge }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_ENDCConfigurationUpdateFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_9_id_endcConfigurationUpdate }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_9_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_ResetRequest }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_ResetResponse }, - { "&UnsuccessfulOutcome", }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_10_id_reset }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_10_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_RICindication }, - { "&SuccessfulOutcome", }, - { "&UnsuccessfulOutcome", }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_11_id_ricIndication }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_11_ignore }, - { "&InitiatingMessage", aioc__type, &asn_DEF_RICserviceQuery }, - { "&SuccessfulOutcome", }, - { "&UnsuccessfulOutcome", }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_12_id_ricServiceQuery }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_12_ignore }, - { "&InitiatingMessage", aioc__type, &asn_DEF_LoadInformation }, - { "&SuccessfulOutcome", }, - { "&UnsuccessfulOutcome", }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_13_id_loadIndication }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_13_ignore }, - { "&InitiatingMessage", aioc__type, &asn_DEF_GNBStatusIndication }, - { "&SuccessfulOutcome", }, - { "&UnsuccessfulOutcome", }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_14_id_gNBStatusIndication }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_14_ignore }, - { "&InitiatingMessage", aioc__type, &asn_DEF_ResourceStatusUpdate }, - { "&SuccessfulOutcome", }, - { "&UnsuccessfulOutcome", }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_15_id_resourceStatusReporting }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_15_ignore }, - { "&InitiatingMessage", aioc__type, &asn_DEF_ErrorIndication }, - { "&SuccessfulOutcome", }, - { "&UnsuccessfulOutcome", }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_16_id_errorIndication }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_16_ignore } -}; -static const asn_ioc_set_t asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1[] = { - { 16, 5, asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1_rows } -}; -static int -memb_procedureCode_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 255)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_InitiatingMessage_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1; - size_t constraining_column = 3; /* &procedureCode */ - size_t for_column = 4; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct InitiatingMessage, procedureCode)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_InitiatingMessage_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1; - size_t constraining_column = 3; /* &procedureCode */ - size_t for_column = 0; /* &InitiatingMessage */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct InitiatingMessage, procedureCode)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_per_constraints_t asn_PER_memb_procedureCode_constr_2 CC_NOTUSED = { - { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_3 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_4 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_value_4[] = { - { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.RICsubscriptionRequest), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICsubscriptionRequest, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICsubscriptionRequest" - }, - { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.RICsubscriptionDeleteRequest), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICsubscriptionDeleteRequest, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICsubscriptionDeleteRequest" - }, - { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.RICserviceUpdate), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICserviceUpdate, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICserviceUpdate" - }, - { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.RICcontrolRequest), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICcontrolRequest, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICcontrolRequest" - }, - { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.X2SetupRequest), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_X2SetupRequest, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "X2SetupRequest" - }, - { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.ENDCX2SetupRequest), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ENDCX2SetupRequest, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ENDCX2SetupRequest" - }, - { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.ResourceStatusRequest), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ResourceStatusRequest, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ResourceStatusRequest" - }, - { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.ENBConfigurationUpdate), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ENBConfigurationUpdate, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ENBConfigurationUpdate" - }, - { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.ENDCConfigurationUpdate), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ENDCConfigurationUpdate, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ENDCConfigurationUpdate" - }, - { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.ResetRequest), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ResetRequest, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ResetRequest" - }, - { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.RICindication), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICindication, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICindication" - }, - { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.RICserviceQuery), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICserviceQuery, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICserviceQuery" - }, - { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.LoadInformation), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_LoadInformation, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "LoadInformation" - }, - { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.GNBStatusIndication), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_GNBStatusIndication, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "GNBStatusIndication" - }, - { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.ResourceStatusUpdate), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ResourceStatusUpdate, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ResourceStatusUpdate" - }, - { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.ErrorIndication), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ErrorIndication, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ErrorIndication" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_4[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 15 }, /* RICsubscriptionRequest */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 14 }, /* RICsubscriptionDeleteRequest */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -2, 13 }, /* RICserviceUpdate */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -3, 12 }, /* RICcontrolRequest */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, -4, 11 }, /* X2SetupRequest */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 5, -5, 10 }, /* ENDCX2SetupRequest */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 6, -6, 9 }, /* ResourceStatusRequest */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 7, -7, 8 }, /* ENBConfigurationUpdate */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 8, -8, 7 }, /* ENDCConfigurationUpdate */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 9, -9, 6 }, /* ResetRequest */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 10, -10, 5 }, /* RICindication */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 11, -11, 4 }, /* RICserviceQuery */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 12, -12, 3 }, /* LoadInformation */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 13, -13, 2 }, /* GNBStatusIndication */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 14, -14, 1 }, /* ResourceStatusUpdate */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 15, -15, 0 } /* ErrorIndication */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_4 = { - sizeof(struct InitiatingMessage__value), - offsetof(struct InitiatingMessage__value, _asn_ctx), - offsetof(struct InitiatingMessage__value, present), - sizeof(((struct InitiatingMessage__value *)0)->present), - asn_MAP_value_tag2el_4, - 16, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_4 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_4, - 16, /* Elements count */ - &asn_SPC_value_specs_4 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_InitiatingMessage_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage, procedureCode), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProcedureCode, - 0, - { 0, &asn_PER_memb_procedureCode_constr_2, memb_procedureCode_constraint_1 }, - 0, 0, /* No default value */ - "procedureCode" - }, - { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_InitiatingMessage_criticality_type, - { 0, &asn_PER_memb_criticality_constr_3, memb_criticality_constraint_1 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_4, - select_InitiatingMessage_value_type, - { 0, &asn_PER_memb_value_constr_4, memb_value_constraint_1 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_InitiatingMessage_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_InitiatingMessage_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* procedureCode */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_InitiatingMessage_specs_1 = { - sizeof(struct InitiatingMessage), - offsetof(struct InitiatingMessage, _asn_ctx), - asn_MAP_InitiatingMessage_tag2el_1, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_InitiatingMessage = { - "InitiatingMessage", - "InitiatingMessage", - &asn_OP_SEQUENCE, - asn_DEF_InitiatingMessage_tags_1, - sizeof(asn_DEF_InitiatingMessage_tags_1) - /sizeof(asn_DEF_InitiatingMessage_tags_1[0]), /* 1 */ - asn_DEF_InitiatingMessage_tags_1, /* Same as above */ - sizeof(asn_DEF_InitiatingMessage_tags_1) - /sizeof(asn_DEF_InitiatingMessage_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_InitiatingMessage_1, - 3, /* Elements count */ - &asn_SPC_InitiatingMessage_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/InitiatingMessage.h b/e2sim/previous/ASN1c/InitiatingMessage.h deleted file mode 100644 index 4d9cf55..0000000 --- a/e2sim/previous/ASN1c/InitiatingMessage.h +++ /dev/null @@ -1,144 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Descriptions" - * found in "../../asnFiles/e2ap-v031.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _InitiatingMessage_H_ -#define _InitiatingMessage_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProcedureCode.h" -#include "Criticality.h" -#include "ANY.h" -#include "asn_ioc.h" -#include "RICsubscriptionRequest.h" -#include "RICsubscriptionResponse.h" -#include "RICsubscriptionFailure.h" -#include "RICsubscriptionDeleteRequest.h" -#include "RICsubscriptionDeleteResponse.h" -#include "RICsubscriptionDeleteFailure.h" -#include "RICserviceUpdate.h" -#include "RICserviceUpdateAcknowledge.h" -#include "RICserviceUpdateFailure.h" -#include "RICcontrolRequest.h" -#include "RICcontrolAcknowledge.h" -#include "RICcontrolFailure.h" -#include "X2SetupRequest.h" -#include "X2SetupResponse.h" -#include "X2SetupFailure.h" -#include "ENDCX2SetupRequest.h" -#include "ENDCX2SetupResponse.h" -#include "ENDCX2SetupFailure.h" -#include "ResourceStatusRequest.h" -#include "ResourceStatusResponse.h" -#include "ResourceStatusFailure.h" -#include "ENBConfigurationUpdate.h" -#include "ENBConfigurationUpdateAcknowledge.h" -#include "ENBConfigurationUpdateFailure.h" -#include "ENDCConfigurationUpdate.h" -#include "ENDCConfigurationUpdateAcknowledge.h" -#include "ENDCConfigurationUpdateFailure.h" -#include "ResetRequest.h" -#include "ResetResponse.h" -#include "RICindication.h" -#include "RICserviceQuery.h" -#include "LoadInformation.h" -#include "GNBStatusIndication.h" -#include "ResourceStatusUpdate.h" -#include "ErrorIndication.h" -#include "OPEN_TYPE.h" -#include "constr_CHOICE.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum InitiatingMessage__value_PR { - InitiatingMessage__value_PR_NOTHING, /* No components present */ - InitiatingMessage__value_PR_RICsubscriptionRequest, - InitiatingMessage__value_PR_RICsubscriptionDeleteRequest, - InitiatingMessage__value_PR_RICserviceUpdate, - InitiatingMessage__value_PR_RICcontrolRequest, - InitiatingMessage__value_PR_X2SetupRequest, - InitiatingMessage__value_PR_ENDCX2SetupRequest, - InitiatingMessage__value_PR_ResourceStatusRequest, - InitiatingMessage__value_PR_ENBConfigurationUpdate, - InitiatingMessage__value_PR_ENDCConfigurationUpdate, - InitiatingMessage__value_PR_ResetRequest, - InitiatingMessage__value_PR_RICindication, - InitiatingMessage__value_PR_RICserviceQuery, - InitiatingMessage__value_PR_LoadInformation, - InitiatingMessage__value_PR_GNBStatusIndication, - InitiatingMessage__value_PR_ResourceStatusUpdate, - InitiatingMessage__value_PR_ErrorIndication -} InitiatingMessage__value_PR; - -/* InitiatingMessage */ -typedef struct InitiatingMessage { - ProcedureCode_t procedureCode; - Criticality_t criticality; - struct InitiatingMessage__value { - InitiatingMessage__value_PR present; - union InitiatingMessage__value_u { - RICsubscriptionRequest_t RICsubscriptionRequest; - RICsubscriptionDeleteRequest_t RICsubscriptionDeleteRequest; - RICserviceUpdate_t RICserviceUpdate; - RICcontrolRequest_t RICcontrolRequest; - X2SetupRequest_t X2SetupRequest; - ENDCX2SetupRequest_t ENDCX2SetupRequest; - ResourceStatusRequest_t ResourceStatusRequest; - ENBConfigurationUpdate_t ENBConfigurationUpdate; - ENDCConfigurationUpdate_t ENDCConfigurationUpdate; - ResetRequest_t ResetRequest; - RICindication_t RICindication; - RICserviceQuery_t RICserviceQuery; - LoadInformation_t LoadInformation; - GNBStatusIndication_t GNBStatusIndication; - ResourceStatusUpdate_t ResourceStatusUpdate; - ErrorIndication_t ErrorIndication; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} InitiatingMessage_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_InitiatingMessage; -extern asn_SEQUENCE_specifics_t asn_SPC_InitiatingMessage_specs_1; -extern asn_TYPE_member_t asn_MBR_InitiatingMessage_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _InitiatingMessage_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/InitiatingNodeType-EndcConfigUpdate.c b/e2sim/previous/ASN1c/InitiatingNodeType-EndcConfigUpdate.c deleted file mode 100644 index 6e947b3..0000000 --- a/e2sim/previous/ASN1c/InitiatingNodeType-EndcConfigUpdate.c +++ /dev/null @@ -1,81 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "InitiatingNodeType-EndcConfigUpdate.h" - -#include "ProtocolIE-Container.h" -static asn_per_constraints_t asn_PER_type_InitiatingNodeType_EndcConfigUpdate_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_InitiatingNodeType_EndcConfigUpdate_1[] = { - { ATF_POINTER, 0, offsetof(struct InitiatingNodeType_EndcConfigUpdate, choice.init_eNB), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_119P92, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "init-eNB" - }, - { ATF_POINTER, 0, offsetof(struct InitiatingNodeType_EndcConfigUpdate, choice.init_en_gNB), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_119P93, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "init-en-gNB" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_InitiatingNodeType_EndcConfigUpdate_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* init-eNB */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* init-en-gNB */ -}; -static asn_CHOICE_specifics_t asn_SPC_InitiatingNodeType_EndcConfigUpdate_specs_1 = { - sizeof(struct InitiatingNodeType_EndcConfigUpdate), - offsetof(struct InitiatingNodeType_EndcConfigUpdate, _asn_ctx), - offsetof(struct InitiatingNodeType_EndcConfigUpdate, present), - sizeof(((struct InitiatingNodeType_EndcConfigUpdate *)0)->present), - asn_MAP_InitiatingNodeType_EndcConfigUpdate_tag2el_1, - 2, /* Count of tags in the map */ - 0, 0, - 2 /* Extensions start */ -}; -asn_TYPE_descriptor_t asn_DEF_InitiatingNodeType_EndcConfigUpdate = { - "InitiatingNodeType-EndcConfigUpdate", - "InitiatingNodeType-EndcConfigUpdate", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, &asn_PER_type_InitiatingNodeType_EndcConfigUpdate_constr_1, CHOICE_constraint }, - asn_MBR_InitiatingNodeType_EndcConfigUpdate_1, - 2, /* Elements count */ - &asn_SPC_InitiatingNodeType_EndcConfigUpdate_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/InitiatingNodeType-EndcConfigUpdate.h b/e2sim/previous/ASN1c/InitiatingNodeType-EndcConfigUpdate.h deleted file mode 100644 index ff62a67..0000000 --- a/e2sim/previous/ASN1c/InitiatingNodeType-EndcConfigUpdate.h +++ /dev/null @@ -1,75 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _InitiatingNodeType_EndcConfigUpdate_H_ -#define _InitiatingNodeType_EndcConfigUpdate_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "constr_CHOICE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum InitiatingNodeType_EndcConfigUpdate_PR { - InitiatingNodeType_EndcConfigUpdate_PR_NOTHING, /* No components present */ - InitiatingNodeType_EndcConfigUpdate_PR_init_eNB, - InitiatingNodeType_EndcConfigUpdate_PR_init_en_gNB - /* Extensions may appear below */ - -} InitiatingNodeType_EndcConfigUpdate_PR; - -/* Forward declarations */ -struct ProtocolIE_Container; - -/* InitiatingNodeType-EndcConfigUpdate */ -typedef struct InitiatingNodeType_EndcConfigUpdate { - InitiatingNodeType_EndcConfigUpdate_PR present; - union InitiatingNodeType_EndcConfigUpdate_u { - struct ProtocolIE_Container *init_eNB; - struct ProtocolIE_Container *init_en_gNB; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} InitiatingNodeType_EndcConfigUpdate_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_InitiatingNodeType_EndcConfigUpdate; - -#ifdef __cplusplus -} -#endif - -#endif /* _InitiatingNodeType_EndcConfigUpdate_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/InitiatingNodeType-EndcX2Removal.c b/e2sim/previous/ASN1c/InitiatingNodeType-EndcX2Removal.c deleted file mode 100644 index f8c3e68..0000000 --- a/e2sim/previous/ASN1c/InitiatingNodeType-EndcX2Removal.c +++ /dev/null @@ -1,81 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "InitiatingNodeType-EndcX2Removal.h" - -#include "ProtocolIE-Container.h" -static asn_per_constraints_t asn_PER_type_InitiatingNodeType_EndcX2Removal_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_InitiatingNodeType_EndcX2Removal_1[] = { - { ATF_POINTER, 0, offsetof(struct InitiatingNodeType_EndcX2Removal, choice.init_eNB), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_119P112, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "init-eNB" - }, - { ATF_POINTER, 0, offsetof(struct InitiatingNodeType_EndcX2Removal, choice.init_en_gNB), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_119P113, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "init-en-gNB" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_InitiatingNodeType_EndcX2Removal_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* init-eNB */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* init-en-gNB */ -}; -static asn_CHOICE_specifics_t asn_SPC_InitiatingNodeType_EndcX2Removal_specs_1 = { - sizeof(struct InitiatingNodeType_EndcX2Removal), - offsetof(struct InitiatingNodeType_EndcX2Removal, _asn_ctx), - offsetof(struct InitiatingNodeType_EndcX2Removal, present), - sizeof(((struct InitiatingNodeType_EndcX2Removal *)0)->present), - asn_MAP_InitiatingNodeType_EndcX2Removal_tag2el_1, - 2, /* Count of tags in the map */ - 0, 0, - 2 /* Extensions start */ -}; -asn_TYPE_descriptor_t asn_DEF_InitiatingNodeType_EndcX2Removal = { - "InitiatingNodeType-EndcX2Removal", - "InitiatingNodeType-EndcX2Removal", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, &asn_PER_type_InitiatingNodeType_EndcX2Removal_constr_1, CHOICE_constraint }, - asn_MBR_InitiatingNodeType_EndcX2Removal_1, - 2, /* Elements count */ - &asn_SPC_InitiatingNodeType_EndcX2Removal_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/InitiatingNodeType-EndcX2Removal.h b/e2sim/previous/ASN1c/InitiatingNodeType-EndcX2Removal.h deleted file mode 100644 index d6b9b8d..0000000 --- a/e2sim/previous/ASN1c/InitiatingNodeType-EndcX2Removal.h +++ /dev/null @@ -1,75 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _InitiatingNodeType_EndcX2Removal_H_ -#define _InitiatingNodeType_EndcX2Removal_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "constr_CHOICE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum InitiatingNodeType_EndcX2Removal_PR { - InitiatingNodeType_EndcX2Removal_PR_NOTHING, /* No components present */ - InitiatingNodeType_EndcX2Removal_PR_init_eNB, - InitiatingNodeType_EndcX2Removal_PR_init_en_gNB - /* Extensions may appear below */ - -} InitiatingNodeType_EndcX2Removal_PR; - -/* Forward declarations */ -struct ProtocolIE_Container; - -/* InitiatingNodeType-EndcX2Removal */ -typedef struct InitiatingNodeType_EndcX2Removal { - InitiatingNodeType_EndcX2Removal_PR present; - union InitiatingNodeType_EndcX2Removal_u { - struct ProtocolIE_Container *init_eNB; - struct ProtocolIE_Container *init_en_gNB; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} InitiatingNodeType_EndcX2Removal_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_InitiatingNodeType_EndcX2Removal; - -#ifdef __cplusplus -} -#endif - -#endif /* _InitiatingNodeType_EndcX2Removal_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/InitiatingNodeType-EndcX2Setup.c b/e2sim/previous/ASN1c/InitiatingNodeType-EndcX2Setup.c deleted file mode 100644 index f3298ae..0000000 --- a/e2sim/previous/ASN1c/InitiatingNodeType-EndcX2Setup.c +++ /dev/null @@ -1,81 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "InitiatingNodeType-EndcX2Setup.h" - -#include "ProtocolIE-Container.h" -static asn_per_constraints_t asn_PER_type_InitiatingNodeType_EndcX2Setup_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_InitiatingNodeType_EndcX2Setup_1[] = { - { ATF_POINTER, 0, offsetof(struct InitiatingNodeType_EndcX2Setup, choice.init_eNB), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_119P85, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "init-eNB" - }, - { ATF_POINTER, 0, offsetof(struct InitiatingNodeType_EndcX2Setup, choice.init_en_gNB), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_119P86, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "init-en-gNB" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_InitiatingNodeType_EndcX2Setup_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* init-eNB */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* init-en-gNB */ -}; -static asn_CHOICE_specifics_t asn_SPC_InitiatingNodeType_EndcX2Setup_specs_1 = { - sizeof(struct InitiatingNodeType_EndcX2Setup), - offsetof(struct InitiatingNodeType_EndcX2Setup, _asn_ctx), - offsetof(struct InitiatingNodeType_EndcX2Setup, present), - sizeof(((struct InitiatingNodeType_EndcX2Setup *)0)->present), - asn_MAP_InitiatingNodeType_EndcX2Setup_tag2el_1, - 2, /* Count of tags in the map */ - 0, 0, - 2 /* Extensions start */ -}; -asn_TYPE_descriptor_t asn_DEF_InitiatingNodeType_EndcX2Setup = { - "InitiatingNodeType-EndcX2Setup", - "InitiatingNodeType-EndcX2Setup", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, &asn_PER_type_InitiatingNodeType_EndcX2Setup_constr_1, CHOICE_constraint }, - asn_MBR_InitiatingNodeType_EndcX2Setup_1, - 2, /* Elements count */ - &asn_SPC_InitiatingNodeType_EndcX2Setup_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/InitiatingNodeType-EndcX2Setup.h b/e2sim/previous/ASN1c/InitiatingNodeType-EndcX2Setup.h deleted file mode 100644 index a4fecc2..0000000 --- a/e2sim/previous/ASN1c/InitiatingNodeType-EndcX2Setup.h +++ /dev/null @@ -1,75 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _InitiatingNodeType_EndcX2Setup_H_ -#define _InitiatingNodeType_EndcX2Setup_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "constr_CHOICE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum InitiatingNodeType_EndcX2Setup_PR { - InitiatingNodeType_EndcX2Setup_PR_NOTHING, /* No components present */ - InitiatingNodeType_EndcX2Setup_PR_init_eNB, - InitiatingNodeType_EndcX2Setup_PR_init_en_gNB - /* Extensions may appear below */ - -} InitiatingNodeType_EndcX2Setup_PR; - -/* Forward declarations */ -struct ProtocolIE_Container; - -/* InitiatingNodeType-EndcX2Setup */ -typedef struct InitiatingNodeType_EndcX2Setup { - InitiatingNodeType_EndcX2Setup_PR present; - union InitiatingNodeType_EndcX2Setup_u { - struct ProtocolIE_Container *init_eNB; - struct ProtocolIE_Container *init_en_gNB; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} InitiatingNodeType_EndcX2Setup_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_InitiatingNodeType_EndcX2Setup; - -#ifdef __cplusplus -} -#endif - -#endif /* _InitiatingNodeType_EndcX2Setup_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/InitiatingNodeType-EutranrCellResourceCoordination.c b/e2sim/previous/ASN1c/InitiatingNodeType-EutranrCellResourceCoordination.c deleted file mode 100644 index a4230c9..0000000 --- a/e2sim/previous/ASN1c/InitiatingNodeType-EutranrCellResourceCoordination.c +++ /dev/null @@ -1,81 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "InitiatingNodeType-EutranrCellResourceCoordination.h" - -#include "ProtocolIE-Container.h" -static asn_per_constraints_t asn_PER_type_InitiatingNodeType_EutranrCellResourceCoordination_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_InitiatingNodeType_EutranrCellResourceCoordination_1[] = { - { ATF_POINTER, 0, offsetof(struct InitiatingNodeType_EutranrCellResourceCoordination, choice.initiate_eNB), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_119P106, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "initiate-eNB" - }, - { ATF_POINTER, 0, offsetof(struct InitiatingNodeType_EutranrCellResourceCoordination, choice.initiate_en_gNB), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_119P107, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "initiate-en-gNB" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_InitiatingNodeType_EutranrCellResourceCoordination_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* initiate-eNB */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* initiate-en-gNB */ -}; -static asn_CHOICE_specifics_t asn_SPC_InitiatingNodeType_EutranrCellResourceCoordination_specs_1 = { - sizeof(struct InitiatingNodeType_EutranrCellResourceCoordination), - offsetof(struct InitiatingNodeType_EutranrCellResourceCoordination, _asn_ctx), - offsetof(struct InitiatingNodeType_EutranrCellResourceCoordination, present), - sizeof(((struct InitiatingNodeType_EutranrCellResourceCoordination *)0)->present), - asn_MAP_InitiatingNodeType_EutranrCellResourceCoordination_tag2el_1, - 2, /* Count of tags in the map */ - 0, 0, - 2 /* Extensions start */ -}; -asn_TYPE_descriptor_t asn_DEF_InitiatingNodeType_EutranrCellResourceCoordination = { - "InitiatingNodeType-EutranrCellResourceCoordination", - "InitiatingNodeType-EutranrCellResourceCoordination", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, &asn_PER_type_InitiatingNodeType_EutranrCellResourceCoordination_constr_1, CHOICE_constraint }, - asn_MBR_InitiatingNodeType_EutranrCellResourceCoordination_1, - 2, /* Elements count */ - &asn_SPC_InitiatingNodeType_EutranrCellResourceCoordination_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/InitiatingNodeType-EutranrCellResourceCoordination.h b/e2sim/previous/ASN1c/InitiatingNodeType-EutranrCellResourceCoordination.h deleted file mode 100644 index 8b8d665..0000000 --- a/e2sim/previous/ASN1c/InitiatingNodeType-EutranrCellResourceCoordination.h +++ /dev/null @@ -1,75 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _InitiatingNodeType_EutranrCellResourceCoordination_H_ -#define _InitiatingNodeType_EutranrCellResourceCoordination_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "constr_CHOICE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum InitiatingNodeType_EutranrCellResourceCoordination_PR { - InitiatingNodeType_EutranrCellResourceCoordination_PR_NOTHING, /* No components present */ - InitiatingNodeType_EutranrCellResourceCoordination_PR_initiate_eNB, - InitiatingNodeType_EutranrCellResourceCoordination_PR_initiate_en_gNB - /* Extensions may appear below */ - -} InitiatingNodeType_EutranrCellResourceCoordination_PR; - -/* Forward declarations */ -struct ProtocolIE_Container; - -/* InitiatingNodeType-EutranrCellResourceCoordination */ -typedef struct InitiatingNodeType_EutranrCellResourceCoordination { - InitiatingNodeType_EutranrCellResourceCoordination_PR present; - union InitiatingNodeType_EutranrCellResourceCoordination_u { - struct ProtocolIE_Container *initiate_eNB; - struct ProtocolIE_Container *initiate_en_gNB; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} InitiatingNodeType_EutranrCellResourceCoordination_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_InitiatingNodeType_EutranrCellResourceCoordination; - -#ifdef __cplusplus -} -#endif - -#endif /* _InitiatingNodeType_EutranrCellResourceCoordination_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/IntegrityProtectionAlgorithms.c b/e2sim/previous/ASN1c/IntegrityProtectionAlgorithms.c deleted file mode 100644 index a48d886..0000000 --- a/e2sim/previous/ASN1c/IntegrityProtectionAlgorithms.c +++ /dev/null @@ -1,85 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "IntegrityProtectionAlgorithms.h" - -int -IntegrityProtectionAlgorithms_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if(st->size > 0) { - /* Size in bits */ - size = 8 * st->size - (st->bits_unused & 0x07); - } else { - size = 0; - } - - if((size == 16)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using BIT_STRING, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_IntegrityProtectionAlgorithms_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 16, 16 } /* (SIZE(16..16,...)) */, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_IntegrityProtectionAlgorithms_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_IntegrityProtectionAlgorithms = { - "IntegrityProtectionAlgorithms", - "IntegrityProtectionAlgorithms", - &asn_OP_BIT_STRING, - asn_DEF_IntegrityProtectionAlgorithms_tags_1, - sizeof(asn_DEF_IntegrityProtectionAlgorithms_tags_1) - /sizeof(asn_DEF_IntegrityProtectionAlgorithms_tags_1[0]), /* 1 */ - asn_DEF_IntegrityProtectionAlgorithms_tags_1, /* Same as above */ - sizeof(asn_DEF_IntegrityProtectionAlgorithms_tags_1) - /sizeof(asn_DEF_IntegrityProtectionAlgorithms_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_IntegrityProtectionAlgorithms_constr_1, IntegrityProtectionAlgorithms_constraint }, - 0, 0, /* No members */ - &asn_SPC_BIT_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/IntegrityProtectionAlgorithms.h b/e2sim/previous/ASN1c/IntegrityProtectionAlgorithms.h deleted file mode 100644 index ddcae11..0000000 --- a/e2sim/previous/ASN1c/IntegrityProtectionAlgorithms.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _IntegrityProtectionAlgorithms_H_ -#define _IntegrityProtectionAlgorithms_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "BIT_STRING.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* IntegrityProtectionAlgorithms */ -typedef BIT_STRING_t IntegrityProtectionAlgorithms_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_IntegrityProtectionAlgorithms_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_IntegrityProtectionAlgorithms; -asn_struct_free_f IntegrityProtectionAlgorithms_free; -asn_struct_print_f IntegrityProtectionAlgorithms_print; -asn_constr_check_f IntegrityProtectionAlgorithms_constraint; -ber_type_decoder_f IntegrityProtectionAlgorithms_decode_ber; -der_type_encoder_f IntegrityProtectionAlgorithms_encode_der; -xer_type_decoder_f IntegrityProtectionAlgorithms_decode_xer; -xer_type_encoder_f IntegrityProtectionAlgorithms_encode_xer; -per_type_decoder_f IntegrityProtectionAlgorithms_decode_uper; -per_type_encoder_f IntegrityProtectionAlgorithms_encode_uper; -per_type_decoder_f IntegrityProtectionAlgorithms_decode_aper; -per_type_encoder_f IntegrityProtectionAlgorithms_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _IntegrityProtectionAlgorithms_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/Interface-ID.c b/e2sim/previous/ASN1c/Interface-ID.c deleted file mode 100644 index 8a35c7e..0000000 --- a/e2sim/previous/ASN1c/Interface-ID.c +++ /dev/null @@ -1,82 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-gNB-X2-IEs" - * found in "../../asnFiles/e2sm-gNB-X2-release-1-v041.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "Interface-ID.h" - -#include "GlobalENB-ID.h" -#include "GlobalGNB-ID.h" -asn_per_constraints_t asn_PER_type_Interface_ID_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_Interface_ID_1[] = { - { ATF_POINTER, 0, offsetof(struct Interface_ID, choice.global_eNB_ID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GlobalENB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "global-eNB-ID" - }, - { ATF_POINTER, 0, offsetof(struct Interface_ID, choice.global_gNB_ID), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GlobalGNB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "global-gNB-ID" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_Interface_ID_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* global-eNB-ID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* global-gNB-ID */ -}; -asn_CHOICE_specifics_t asn_SPC_Interface_ID_specs_1 = { - sizeof(struct Interface_ID), - offsetof(struct Interface_ID, _asn_ctx), - offsetof(struct Interface_ID, present), - sizeof(((struct Interface_ID *)0)->present), - asn_MAP_Interface_ID_tag2el_1, - 2, /* Count of tags in the map */ - 0, 0, - 2 /* Extensions start */ -}; -asn_TYPE_descriptor_t asn_DEF_Interface_ID = { - "Interface-ID", - "Interface-ID", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, &asn_PER_type_Interface_ID_constr_1, CHOICE_constraint }, - asn_MBR_Interface_ID_1, - 2, /* Elements count */ - &asn_SPC_Interface_ID_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/Interface-ID.h b/e2sim/previous/ASN1c/Interface-ID.h deleted file mode 100644 index 9104c46..0000000 --- a/e2sim/previous/ASN1c/Interface-ID.h +++ /dev/null @@ -1,79 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-gNB-X2-IEs" - * found in "../../asnFiles/e2sm-gNB-X2-release-1-v041.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _Interface_ID_H_ -#define _Interface_ID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "constr_CHOICE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum Interface_ID_PR { - Interface_ID_PR_NOTHING, /* No components present */ - Interface_ID_PR_global_eNB_ID, - Interface_ID_PR_global_gNB_ID - /* Extensions may appear below */ - -} Interface_ID_PR; - -/* Forward declarations */ -struct GlobalENB_ID; -struct GlobalGNB_ID; - -/* Interface-ID */ -typedef struct Interface_ID { - Interface_ID_PR present; - union Interface_ID_u { - struct GlobalENB_ID *global_eNB_ID; - struct GlobalGNB_ID *global_gNB_ID; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} Interface_ID_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_Interface_ID; -extern asn_CHOICE_specifics_t asn_SPC_Interface_ID_specs_1; -extern asn_TYPE_member_t asn_MBR_Interface_ID_1[2]; -extern asn_per_constraints_t asn_PER_type_Interface_ID_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _Interface_ID_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/InterfaceDirection.c b/e2sim/previous/ASN1c/InterfaceDirection.c deleted file mode 100644 index 901c182..0000000 --- a/e2sim/previous/ASN1c/InterfaceDirection.c +++ /dev/null @@ -1,73 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-gNB-X2-IEs" - * found in "../../asnFiles/e2sm-gNB-X2-release-1-v041.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "InterfaceDirection.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_InterfaceDirection_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_InterfaceDirection_value2enum_1[] = { - { 0, 8, "incoming" }, - { 1, 8, "outgoing" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_InterfaceDirection_enum2value_1[] = { - 0, /* incoming(0) */ - 1 /* outgoing(1) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_InterfaceDirection_specs_1 = { - asn_MAP_InterfaceDirection_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_InterfaceDirection_enum2value_1, /* N => "tag"; sorted by N */ - 2, /* Number of elements in the maps */ - 3, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_InterfaceDirection_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_InterfaceDirection = { - "InterfaceDirection", - "InterfaceDirection", - &asn_OP_NativeEnumerated, - asn_DEF_InterfaceDirection_tags_1, - sizeof(asn_DEF_InterfaceDirection_tags_1) - /sizeof(asn_DEF_InterfaceDirection_tags_1[0]), /* 1 */ - asn_DEF_InterfaceDirection_tags_1, /* Same as above */ - sizeof(asn_DEF_InterfaceDirection_tags_1) - /sizeof(asn_DEF_InterfaceDirection_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_InterfaceDirection_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_InterfaceDirection_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/InterfaceDirection.h b/e2sim/previous/ASN1c/InterfaceDirection.h deleted file mode 100644 index 07d42b1..0000000 --- a/e2sim/previous/ASN1c/InterfaceDirection.h +++ /dev/null @@ -1,72 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-gNB-X2-IEs" - * found in "../../asnFiles/e2sm-gNB-X2-release-1-v041.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _InterfaceDirection_H_ -#define _InterfaceDirection_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum InterfaceDirection { - InterfaceDirection_incoming = 0, - InterfaceDirection_outgoing = 1 - /* - * Enumeration is extensible - */ -} e_InterfaceDirection; - -/* InterfaceDirection */ -typedef long InterfaceDirection_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_InterfaceDirection_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_InterfaceDirection; -extern const asn_INTEGER_specifics_t asn_SPC_InterfaceDirection_specs_1; -asn_struct_free_f InterfaceDirection_free; -asn_struct_print_f InterfaceDirection_print; -asn_constr_check_f InterfaceDirection_constraint; -ber_type_decoder_f InterfaceDirection_decode_ber; -der_type_encoder_f InterfaceDirection_encode_der; -xer_type_decoder_f InterfaceDirection_decode_xer; -xer_type_encoder_f InterfaceDirection_encode_xer; -per_type_decoder_f InterfaceDirection_decode_uper; -per_type_encoder_f InterfaceDirection_encode_uper; -per_type_decoder_f InterfaceDirection_decode_aper; -per_type_encoder_f InterfaceDirection_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _InterfaceDirection_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/InterfaceMessage.c b/e2sim/previous/ASN1c/InterfaceMessage.c deleted file mode 100644 index 245749a..0000000 --- a/e2sim/previous/ASN1c/InterfaceMessage.c +++ /dev/null @@ -1,49 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-gNB-X2-IEs" - * found in "../../asnFiles/e2sm-gNB-X2-release-1-v041.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "InterfaceMessage.h" - -/* - * This type is implemented using OCTET_STRING, - * so here we adjust the DEF accordingly. - */ -static const ber_tlv_tag_t asn_DEF_InterfaceMessage_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_InterfaceMessage = { - "InterfaceMessage", - "InterfaceMessage", - &asn_OP_OCTET_STRING, - asn_DEF_InterfaceMessage_tags_1, - sizeof(asn_DEF_InterfaceMessage_tags_1) - /sizeof(asn_DEF_InterfaceMessage_tags_1[0]), /* 1 */ - asn_DEF_InterfaceMessage_tags_1, /* Same as above */ - sizeof(asn_DEF_InterfaceMessage_tags_1) - /sizeof(asn_DEF_InterfaceMessage_tags_1[0]), /* 1 */ - { 0, 0, OCTET_STRING_constraint }, - 0, 0, /* No members */ - &asn_SPC_OCTET_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/InterfaceMessage.h b/e2sim/previous/ASN1c/InterfaceMessage.h deleted file mode 100644 index faba3e2..0000000 --- a/e2sim/previous/ASN1c/InterfaceMessage.h +++ /dev/null @@ -1,61 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-gNB-X2-IEs" - * found in "../../asnFiles/e2sm-gNB-X2-release-1-v041.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _InterfaceMessage_H_ -#define _InterfaceMessage_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "OCTET_STRING.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* InterfaceMessage */ -typedef OCTET_STRING_t InterfaceMessage_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_InterfaceMessage; -asn_struct_free_f InterfaceMessage_free; -asn_struct_print_f InterfaceMessage_print; -asn_constr_check_f InterfaceMessage_constraint; -ber_type_decoder_f InterfaceMessage_decode_ber; -der_type_encoder_f InterfaceMessage_encode_der; -xer_type_decoder_f InterfaceMessage_decode_xer; -xer_type_encoder_f InterfaceMessage_encode_xer; -per_type_decoder_f InterfaceMessage_decode_uper; -per_type_encoder_f InterfaceMessage_encode_uper; -per_type_decoder_f InterfaceMessage_decode_aper; -per_type_encoder_f InterfaceMessage_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _InterfaceMessage_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/InterfaceMessageType.c b/e2sim/previous/ASN1c/InterfaceMessageType.c deleted file mode 100644 index bf50893..0000000 --- a/e2sim/previous/ASN1c/InterfaceMessageType.c +++ /dev/null @@ -1,78 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-gNB-X2-IEs" - * found in "../../asnFiles/e2sm-gNB-X2-release-1-v041.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "InterfaceMessageType.h" - -asn_TYPE_member_t asn_MBR_InterfaceMessageType_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct InterfaceMessageType, procedureCode), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProcedureCode, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "procedureCode" - }, - { ATF_NOFLAGS, 0, offsetof(struct InterfaceMessageType, typeOfMessage), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_TypeOfMessage, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "typeOfMessage" - }, -}; -static const ber_tlv_tag_t asn_DEF_InterfaceMessageType_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_InterfaceMessageType_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* procedureCode */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* typeOfMessage */ -}; -asn_SEQUENCE_specifics_t asn_SPC_InterfaceMessageType_specs_1 = { - sizeof(struct InterfaceMessageType), - offsetof(struct InterfaceMessageType, _asn_ctx), - asn_MAP_InterfaceMessageType_tag2el_1, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 2, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_InterfaceMessageType = { - "InterfaceMessageType", - "InterfaceMessageType", - &asn_OP_SEQUENCE, - asn_DEF_InterfaceMessageType_tags_1, - sizeof(asn_DEF_InterfaceMessageType_tags_1) - /sizeof(asn_DEF_InterfaceMessageType_tags_1[0]), /* 1 */ - asn_DEF_InterfaceMessageType_tags_1, /* Same as above */ - sizeof(asn_DEF_InterfaceMessageType_tags_1) - /sizeof(asn_DEF_InterfaceMessageType_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_InterfaceMessageType_1, - 2, /* Elements count */ - &asn_SPC_InterfaceMessageType_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/InterfaceMessageType.h b/e2sim/previous/ASN1c/InterfaceMessageType.h deleted file mode 100644 index 628ec4d..0000000 --- a/e2sim/previous/ASN1c/InterfaceMessageType.h +++ /dev/null @@ -1,64 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-gNB-X2-IEs" - * found in "../../asnFiles/e2sm-gNB-X2-release-1-v041.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _InterfaceMessageType_H_ -#define _InterfaceMessageType_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProcedureCode.h" -#include "TypeOfMessage.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* InterfaceMessageType */ -typedef struct InterfaceMessageType { - ProcedureCode_t procedureCode; - TypeOfMessage_t typeOfMessage; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} InterfaceMessageType_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_InterfaceMessageType; -extern asn_SEQUENCE_specifics_t asn_SPC_InterfaceMessageType_specs_1; -extern asn_TYPE_member_t asn_MBR_InterfaceMessageType_1[2]; - -#ifdef __cplusplus -} -#endif - -#endif /* _InterfaceMessageType_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/InterfaceProtocolIE-ID.c b/e2sim/previous/ASN1c/InterfaceProtocolIE-ID.c deleted file mode 100644 index 4e9aa7b..0000000 --- a/e2sim/previous/ASN1c/InterfaceProtocolIE-ID.c +++ /dev/null @@ -1,79 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-gNB-X2-IEs" - * found in "../../asnFiles/e2sm-gNB-X2-release-1-v041.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "InterfaceProtocolIE-ID.h" - -int -InterfaceProtocolIE_ID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using ProtocolIE_ID, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_InterfaceProtocolIE_ID_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_InterfaceProtocolIE_ID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_InterfaceProtocolIE_ID = { - "InterfaceProtocolIE-ID", - "InterfaceProtocolIE-ID", - &asn_OP_NativeInteger, - asn_DEF_InterfaceProtocolIE_ID_tags_1, - sizeof(asn_DEF_InterfaceProtocolIE_ID_tags_1) - /sizeof(asn_DEF_InterfaceProtocolIE_ID_tags_1[0]), /* 1 */ - asn_DEF_InterfaceProtocolIE_ID_tags_1, /* Same as above */ - sizeof(asn_DEF_InterfaceProtocolIE_ID_tags_1) - /sizeof(asn_DEF_InterfaceProtocolIE_ID_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_InterfaceProtocolIE_ID_constr_1, InterfaceProtocolIE_ID_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/previous/ASN1c/InterfaceProtocolIE-ID.h b/e2sim/previous/ASN1c/InterfaceProtocolIE-ID.h deleted file mode 100644 index c2054f5..0000000 --- a/e2sim/previous/ASN1c/InterfaceProtocolIE-ID.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-gNB-X2-IEs" - * found in "../../asnFiles/e2sm-gNB-X2-release-1-v041.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _InterfaceProtocolIE_ID_H_ -#define _InterfaceProtocolIE_ID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-ID.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* InterfaceProtocolIE-ID */ -typedef ProtocolIE_ID_t InterfaceProtocolIE_ID_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_InterfaceProtocolIE_ID_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_InterfaceProtocolIE_ID; -asn_struct_free_f InterfaceProtocolIE_ID_free; -asn_struct_print_f InterfaceProtocolIE_ID_print; -asn_constr_check_f InterfaceProtocolIE_ID_constraint; -ber_type_decoder_f InterfaceProtocolIE_ID_decode_ber; -der_type_encoder_f InterfaceProtocolIE_ID_encode_der; -xer_type_decoder_f InterfaceProtocolIE_ID_decode_xer; -xer_type_encoder_f InterfaceProtocolIE_ID_encode_xer; -per_type_decoder_f InterfaceProtocolIE_ID_decode_uper; -per_type_encoder_f InterfaceProtocolIE_ID_encode_uper; -per_type_decoder_f InterfaceProtocolIE_ID_decode_aper; -per_type_encoder_f InterfaceProtocolIE_ID_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _InterfaceProtocolIE_ID_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/InterfaceProtocolIE-Item.c b/e2sim/previous/ASN1c/InterfaceProtocolIE-Item.c deleted file mode 100644 index 3da4baf..0000000 --- a/e2sim/previous/ASN1c/InterfaceProtocolIE-Item.c +++ /dev/null @@ -1,88 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-gNB-X2-IEs" - * found in "../../asnFiles/e2sm-gNB-X2-release-1-v041.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "InterfaceProtocolIE-Item.h" - -asn_TYPE_member_t asn_MBR_InterfaceProtocolIE_Item_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct InterfaceProtocolIE_Item, interfaceProtocolIE_ID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_InterfaceProtocolIE_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "interfaceProtocolIE-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct InterfaceProtocolIE_Item, interfaceProtocolIE_Test), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_InterfaceProtocolIE_Test, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "interfaceProtocolIE-Test" - }, - { ATF_NOFLAGS, 0, offsetof(struct InterfaceProtocolIE_Item, interfaceProtocolIE_Value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_InterfaceProtocolIE_Value, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "interfaceProtocolIE-Value" - }, -}; -static const ber_tlv_tag_t asn_DEF_InterfaceProtocolIE_Item_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_InterfaceProtocolIE_Item_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* interfaceProtocolIE-ID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* interfaceProtocolIE-Test */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* interfaceProtocolIE-Value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_InterfaceProtocolIE_Item_specs_1 = { - sizeof(struct InterfaceProtocolIE_Item), - offsetof(struct InterfaceProtocolIE_Item, _asn_ctx), - asn_MAP_InterfaceProtocolIE_Item_tag2el_1, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_InterfaceProtocolIE_Item = { - "InterfaceProtocolIE-Item", - "InterfaceProtocolIE-Item", - &asn_OP_SEQUENCE, - asn_DEF_InterfaceProtocolIE_Item_tags_1, - sizeof(asn_DEF_InterfaceProtocolIE_Item_tags_1) - /sizeof(asn_DEF_InterfaceProtocolIE_Item_tags_1[0]), /* 1 */ - asn_DEF_InterfaceProtocolIE_Item_tags_1, /* Same as above */ - sizeof(asn_DEF_InterfaceProtocolIE_Item_tags_1) - /sizeof(asn_DEF_InterfaceProtocolIE_Item_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_InterfaceProtocolIE_Item_1, - 3, /* Elements count */ - &asn_SPC_InterfaceProtocolIE_Item_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/InterfaceProtocolIE-Item.h b/e2sim/previous/ASN1c/InterfaceProtocolIE-Item.h deleted file mode 100644 index 556d666..0000000 --- a/e2sim/previous/ASN1c/InterfaceProtocolIE-Item.h +++ /dev/null @@ -1,66 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-gNB-X2-IEs" - * found in "../../asnFiles/e2sm-gNB-X2-release-1-v041.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _InterfaceProtocolIE_Item_H_ -#define _InterfaceProtocolIE_Item_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "InterfaceProtocolIE-ID.h" -#include "InterfaceProtocolIE-Test.h" -#include "InterfaceProtocolIE-Value.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* InterfaceProtocolIE-Item */ -typedef struct InterfaceProtocolIE_Item { - InterfaceProtocolIE_ID_t interfaceProtocolIE_ID; - InterfaceProtocolIE_Test_t interfaceProtocolIE_Test; - InterfaceProtocolIE_Value_t interfaceProtocolIE_Value; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} InterfaceProtocolIE_Item_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_InterfaceProtocolIE_Item; -extern asn_SEQUENCE_specifics_t asn_SPC_InterfaceProtocolIE_Item_specs_1; -extern asn_TYPE_member_t asn_MBR_InterfaceProtocolIE_Item_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _InterfaceProtocolIE_Item_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/InterfaceProtocolIE-Test.c b/e2sim/previous/ASN1c/InterfaceProtocolIE-Test.c deleted file mode 100644 index 138244b..0000000 --- a/e2sim/previous/ASN1c/InterfaceProtocolIE-Test.c +++ /dev/null @@ -1,79 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-gNB-X2-IEs" - * found in "../../asnFiles/e2sm-gNB-X2-release-1-v041.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "InterfaceProtocolIE-Test.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_InterfaceProtocolIE_Test_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 4 } /* (0..4,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_InterfaceProtocolIE_Test_value2enum_1[] = { - { 0, 5, "equal" }, - { 1, 11, "greaterthan" }, - { 2, 8, "lessthan" }, - { 3, 8, "contains" }, - { 4, 7, "present" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_InterfaceProtocolIE_Test_enum2value_1[] = { - 3, /* contains(3) */ - 0, /* equal(0) */ - 1, /* greaterthan(1) */ - 2, /* lessthan(2) */ - 4 /* present(4) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_InterfaceProtocolIE_Test_specs_1 = { - asn_MAP_InterfaceProtocolIE_Test_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_InterfaceProtocolIE_Test_enum2value_1, /* N => "tag"; sorted by N */ - 5, /* Number of elements in the maps */ - 6, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_InterfaceProtocolIE_Test_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_InterfaceProtocolIE_Test = { - "InterfaceProtocolIE-Test", - "InterfaceProtocolIE-Test", - &asn_OP_NativeEnumerated, - asn_DEF_InterfaceProtocolIE_Test_tags_1, - sizeof(asn_DEF_InterfaceProtocolIE_Test_tags_1) - /sizeof(asn_DEF_InterfaceProtocolIE_Test_tags_1[0]), /* 1 */ - asn_DEF_InterfaceProtocolIE_Test_tags_1, /* Same as above */ - sizeof(asn_DEF_InterfaceProtocolIE_Test_tags_1) - /sizeof(asn_DEF_InterfaceProtocolIE_Test_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_InterfaceProtocolIE_Test_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_InterfaceProtocolIE_Test_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/InterfaceProtocolIE-Test.h b/e2sim/previous/ASN1c/InterfaceProtocolIE-Test.h deleted file mode 100644 index 8618276..0000000 --- a/e2sim/previous/ASN1c/InterfaceProtocolIE-Test.h +++ /dev/null @@ -1,75 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-gNB-X2-IEs" - * found in "../../asnFiles/e2sm-gNB-X2-release-1-v041.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _InterfaceProtocolIE_Test_H_ -#define _InterfaceProtocolIE_Test_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum InterfaceProtocolIE_Test { - InterfaceProtocolIE_Test_equal = 0, - InterfaceProtocolIE_Test_greaterthan = 1, - InterfaceProtocolIE_Test_lessthan = 2, - InterfaceProtocolIE_Test_contains = 3, - InterfaceProtocolIE_Test_present = 4 - /* - * Enumeration is extensible - */ -} e_InterfaceProtocolIE_Test; - -/* InterfaceProtocolIE-Test */ -typedef long InterfaceProtocolIE_Test_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_InterfaceProtocolIE_Test_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_InterfaceProtocolIE_Test; -extern const asn_INTEGER_specifics_t asn_SPC_InterfaceProtocolIE_Test_specs_1; -asn_struct_free_f InterfaceProtocolIE_Test_free; -asn_struct_print_f InterfaceProtocolIE_Test_print; -asn_constr_check_f InterfaceProtocolIE_Test_constraint; -ber_type_decoder_f InterfaceProtocolIE_Test_decode_ber; -der_type_encoder_f InterfaceProtocolIE_Test_encode_der; -xer_type_decoder_f InterfaceProtocolIE_Test_decode_xer; -xer_type_encoder_f InterfaceProtocolIE_Test_encode_xer; -per_type_decoder_f InterfaceProtocolIE_Test_decode_uper; -per_type_encoder_f InterfaceProtocolIE_Test_encode_uper; -per_type_decoder_f InterfaceProtocolIE_Test_decode_aper; -per_type_encoder_f InterfaceProtocolIE_Test_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _InterfaceProtocolIE_Test_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/InterfaceProtocolIE-Value.c b/e2sim/previous/ASN1c/InterfaceProtocolIE-Value.c deleted file mode 100644 index 5fc2293..0000000 --- a/e2sim/previous/ASN1c/InterfaceProtocolIE-Value.c +++ /dev/null @@ -1,110 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-gNB-X2-IEs" - * found in "../../asnFiles/e2sm-gNB-X2-release-1-v041.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "InterfaceProtocolIE-Value.h" - -asn_per_constraints_t asn_PER_type_InterfaceProtocolIE_Value_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 4 } /* (0..4,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_InterfaceProtocolIE_Value_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct InterfaceProtocolIE_Value, choice.valueInt), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "valueInt" - }, - { ATF_NOFLAGS, 0, offsetof(struct InterfaceProtocolIE_Value, choice.valueEnum), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "valueEnum" - }, - { ATF_NOFLAGS, 0, offsetof(struct InterfaceProtocolIE_Value, choice.valueBool), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_BOOLEAN, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "valueBool" - }, - { ATF_NOFLAGS, 0, offsetof(struct InterfaceProtocolIE_Value, choice.valueBitS), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_BIT_STRING, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "valueBitS" - }, - { ATF_NOFLAGS, 0, offsetof(struct InterfaceProtocolIE_Value, choice.valueOctS), - (ASN_TAG_CLASS_CONTEXT | (4 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_OCTET_STRING, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "valueOctS" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_InterfaceProtocolIE_Value_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* valueInt */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* valueEnum */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* valueBool */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* valueBitS */ - { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* valueOctS */ -}; -asn_CHOICE_specifics_t asn_SPC_InterfaceProtocolIE_Value_specs_1 = { - sizeof(struct InterfaceProtocolIE_Value), - offsetof(struct InterfaceProtocolIE_Value, _asn_ctx), - offsetof(struct InterfaceProtocolIE_Value, present), - sizeof(((struct InterfaceProtocolIE_Value *)0)->present), - asn_MAP_InterfaceProtocolIE_Value_tag2el_1, - 5, /* Count of tags in the map */ - 0, 0, - 5 /* Extensions start */ -}; -asn_TYPE_descriptor_t asn_DEF_InterfaceProtocolIE_Value = { - "InterfaceProtocolIE-Value", - "InterfaceProtocolIE-Value", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, &asn_PER_type_InterfaceProtocolIE_Value_constr_1, CHOICE_constraint }, - asn_MBR_InterfaceProtocolIE_Value_1, - 5, /* Elements count */ - &asn_SPC_InterfaceProtocolIE_Value_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/InterfaceProtocolIE-Value.h b/e2sim/previous/ASN1c/InterfaceProtocolIE-Value.h deleted file mode 100644 index b2ffe8b..0000000 --- a/e2sim/previous/ASN1c/InterfaceProtocolIE-Value.h +++ /dev/null @@ -1,85 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-gNB-X2-IEs" - * found in "../../asnFiles/e2sm-gNB-X2-release-1-v041.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _InterfaceProtocolIE_Value_H_ -#define _InterfaceProtocolIE_Value_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeInteger.h" -#include "BOOLEAN.h" -#include "BIT_STRING.h" -#include "OCTET_STRING.h" -#include "constr_CHOICE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum InterfaceProtocolIE_Value_PR { - InterfaceProtocolIE_Value_PR_NOTHING, /* No components present */ - InterfaceProtocolIE_Value_PR_valueInt, - InterfaceProtocolIE_Value_PR_valueEnum, - InterfaceProtocolIE_Value_PR_valueBool, - InterfaceProtocolIE_Value_PR_valueBitS, - InterfaceProtocolIE_Value_PR_valueOctS - /* Extensions may appear below */ - -} InterfaceProtocolIE_Value_PR; - -/* InterfaceProtocolIE-Value */ -typedef struct InterfaceProtocolIE_Value { - InterfaceProtocolIE_Value_PR present; - union InterfaceProtocolIE_Value_u { - long valueInt; - long valueEnum; - BOOLEAN_t valueBool; - BIT_STRING_t valueBitS; - OCTET_STRING_t valueOctS; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} InterfaceProtocolIE_Value_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_InterfaceProtocolIE_Value; -extern asn_CHOICE_specifics_t asn_SPC_InterfaceProtocolIE_Value_specs_1; -extern asn_TYPE_member_t asn_MBR_InterfaceProtocolIE_Value_1[5]; -extern asn_per_constraints_t asn_PER_type_InterfaceProtocolIE_Value_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _InterfaceProtocolIE_Value_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/InterfacesToTrace.c b/e2sim/previous/ASN1c/InterfacesToTrace.c deleted file mode 100644 index cee74d2..0000000 --- a/e2sim/previous/ASN1c/InterfacesToTrace.c +++ /dev/null @@ -1,85 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "InterfacesToTrace.h" - -int -InterfacesToTrace_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if(st->size > 0) { - /* Size in bits */ - size = 8 * st->size - (st->bits_unused & 0x07); - } else { - size = 0; - } - - if((size == 8)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using BIT_STRING, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_InterfacesToTrace_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 0, 0, 8, 8 } /* (SIZE(8..8)) */, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_InterfacesToTrace_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_InterfacesToTrace = { - "InterfacesToTrace", - "InterfacesToTrace", - &asn_OP_BIT_STRING, - asn_DEF_InterfacesToTrace_tags_1, - sizeof(asn_DEF_InterfacesToTrace_tags_1) - /sizeof(asn_DEF_InterfacesToTrace_tags_1[0]), /* 1 */ - asn_DEF_InterfacesToTrace_tags_1, /* Same as above */ - sizeof(asn_DEF_InterfacesToTrace_tags_1) - /sizeof(asn_DEF_InterfacesToTrace_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_InterfacesToTrace_constr_1, InterfacesToTrace_constraint }, - 0, 0, /* No members */ - &asn_SPC_BIT_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/InterfacesToTrace.h b/e2sim/previous/ASN1c/InterfacesToTrace.h deleted file mode 100644 index 1f4b5e7..0000000 --- a/e2sim/previous/ASN1c/InterfacesToTrace.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _InterfacesToTrace_H_ -#define _InterfacesToTrace_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "BIT_STRING.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* InterfacesToTrace */ -typedef BIT_STRING_t InterfacesToTrace_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_InterfacesToTrace_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_InterfacesToTrace; -asn_struct_free_f InterfacesToTrace_free; -asn_struct_print_f InterfacesToTrace_print; -asn_constr_check_f InterfacesToTrace_constraint; -ber_type_decoder_f InterfacesToTrace_decode_ber; -der_type_encoder_f InterfacesToTrace_encode_der; -xer_type_decoder_f InterfacesToTrace_decode_xer; -xer_type_encoder_f InterfacesToTrace_encode_xer; -per_type_decoder_f InterfacesToTrace_decode_uper; -per_type_encoder_f InterfacesToTrace_encode_uper; -per_type_decoder_f InterfacesToTrace_decode_aper; -per_type_encoder_f InterfacesToTrace_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _InterfacesToTrace_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/InvokeIndication.c b/e2sim/previous/ASN1c/InvokeIndication.c deleted file mode 100644 index 9e8d0b4..0000000 --- a/e2sim/previous/ASN1c/InvokeIndication.c +++ /dev/null @@ -1,75 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "InvokeIndication.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_InvokeIndication_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 0, 0 } /* (0..0,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_InvokeIndication_value2enum_1[] = { - { 0, 15, "abs-information" }, - { 1, 23, "naics-information-start" }, - { 2, 22, "naics-information-stop" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_InvokeIndication_enum2value_1[] = { - 0, /* abs-information(0) */ - 1, /* naics-information-start(1) */ - 2 /* naics-information-stop(2) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_InvokeIndication_specs_1 = { - asn_MAP_InvokeIndication_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_InvokeIndication_enum2value_1, /* N => "tag"; sorted by N */ - 3, /* Number of elements in the maps */ - 2, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_InvokeIndication_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_InvokeIndication = { - "InvokeIndication", - "InvokeIndication", - &asn_OP_NativeEnumerated, - asn_DEF_InvokeIndication_tags_1, - sizeof(asn_DEF_InvokeIndication_tags_1) - /sizeof(asn_DEF_InvokeIndication_tags_1[0]), /* 1 */ - asn_DEF_InvokeIndication_tags_1, /* Same as above */ - sizeof(asn_DEF_InvokeIndication_tags_1) - /sizeof(asn_DEF_InvokeIndication_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_InvokeIndication_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_InvokeIndication_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/InvokeIndication.h b/e2sim/previous/ASN1c/InvokeIndication.h deleted file mode 100644 index f3aac49..0000000 --- a/e2sim/previous/ASN1c/InvokeIndication.h +++ /dev/null @@ -1,73 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _InvokeIndication_H_ -#define _InvokeIndication_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum InvokeIndication { - InvokeIndication_abs_information = 0, - /* - * Enumeration is extensible - */ - InvokeIndication_naics_information_start = 1, - InvokeIndication_naics_information_stop = 2 -} e_InvokeIndication; - -/* InvokeIndication */ -typedef long InvokeIndication_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_InvokeIndication_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_InvokeIndication; -extern const asn_INTEGER_specifics_t asn_SPC_InvokeIndication_specs_1; -asn_struct_free_f InvokeIndication_free; -asn_struct_print_f InvokeIndication_print; -asn_constr_check_f InvokeIndication_constraint; -ber_type_decoder_f InvokeIndication_decode_ber; -der_type_encoder_f InvokeIndication_encode_der; -xer_type_decoder_f InvokeIndication_decode_xer; -xer_type_encoder_f InvokeIndication_encode_xer; -per_type_decoder_f InvokeIndication_decode_uper; -per_type_encoder_f InvokeIndication_encode_uper; -per_type_decoder_f InvokeIndication_decode_aper; -per_type_encoder_f InvokeIndication_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _InvokeIndication_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/Key-eNodeB-Star.c b/e2sim/previous/ASN1c/Key-eNodeB-Star.c deleted file mode 100644 index 8960c8e..0000000 --- a/e2sim/previous/ASN1c/Key-eNodeB-Star.c +++ /dev/null @@ -1,85 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "Key-eNodeB-Star.h" - -int -Key_eNodeB_Star_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if(st->size > 0) { - /* Size in bits */ - size = 8 * st->size - (st->bits_unused & 0x07); - } else { - size = 0; - } - - if((size == 256)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using BIT_STRING, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_Key_eNodeB_Star_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 0, 0, 256, 256 } /* (SIZE(256..256)) */, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_Key_eNodeB_Star_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_Key_eNodeB_Star = { - "Key-eNodeB-Star", - "Key-eNodeB-Star", - &asn_OP_BIT_STRING, - asn_DEF_Key_eNodeB_Star_tags_1, - sizeof(asn_DEF_Key_eNodeB_Star_tags_1) - /sizeof(asn_DEF_Key_eNodeB_Star_tags_1[0]), /* 1 */ - asn_DEF_Key_eNodeB_Star_tags_1, /* Same as above */ - sizeof(asn_DEF_Key_eNodeB_Star_tags_1) - /sizeof(asn_DEF_Key_eNodeB_Star_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_Key_eNodeB_Star_constr_1, Key_eNodeB_Star_constraint }, - 0, 0, /* No members */ - &asn_SPC_BIT_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/Key-eNodeB-Star.h b/e2sim/previous/ASN1c/Key-eNodeB-Star.h deleted file mode 100644 index bca1cc0..0000000 --- a/e2sim/previous/ASN1c/Key-eNodeB-Star.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _Key_eNodeB_Star_H_ -#define _Key_eNodeB_Star_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "BIT_STRING.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Key-eNodeB-Star */ -typedef BIT_STRING_t Key_eNodeB_Star_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_Key_eNodeB_Star_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_Key_eNodeB_Star; -asn_struct_free_f Key_eNodeB_Star_free; -asn_struct_print_f Key_eNodeB_Star_print; -asn_constr_check_f Key_eNodeB_Star_constraint; -ber_type_decoder_f Key_eNodeB_Star_decode_ber; -der_type_encoder_f Key_eNodeB_Star_encode_der; -xer_type_decoder_f Key_eNodeB_Star_decode_xer; -xer_type_encoder_f Key_eNodeB_Star_encode_xer; -per_type_decoder_f Key_eNodeB_Star_decode_uper; -per_type_encoder_f Key_eNodeB_Star_encode_uper; -per_type_decoder_f Key_eNodeB_Star_decode_aper; -per_type_encoder_f Key_eNodeB_Star_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _Key_eNodeB_Star_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/LAC.c b/e2sim/previous/ASN1c/LAC.c deleted file mode 100644 index ade34e7..0000000 --- a/e2sim/previous/ASN1c/LAC.c +++ /dev/null @@ -1,80 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "LAC.h" - -int -LAC_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - size = st->size; - - if((size == 2)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using OCTET_STRING, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_LAC_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 0, 0, 2, 2 } /* (SIZE(2..2)) */, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_LAC_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_LAC = { - "LAC", - "LAC", - &asn_OP_OCTET_STRING, - asn_DEF_LAC_tags_1, - sizeof(asn_DEF_LAC_tags_1) - /sizeof(asn_DEF_LAC_tags_1[0]), /* 1 */ - asn_DEF_LAC_tags_1, /* Same as above */ - sizeof(asn_DEF_LAC_tags_1) - /sizeof(asn_DEF_LAC_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_LAC_constr_1, LAC_constraint }, - 0, 0, /* No members */ - &asn_SPC_OCTET_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/LAC.h b/e2sim/previous/ASN1c/LAC.h deleted file mode 100644 index a1fecba..0000000 --- a/e2sim/previous/ASN1c/LAC.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _LAC_H_ -#define _LAC_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "OCTET_STRING.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* LAC */ -typedef OCTET_STRING_t LAC_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_LAC_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_LAC; -asn_struct_free_f LAC_free; -asn_struct_print_f LAC_print; -asn_constr_check_f LAC_constraint; -ber_type_decoder_f LAC_decode_ber; -der_type_encoder_f LAC_encode_der; -xer_type_decoder_f LAC_decode_xer; -xer_type_encoder_f LAC_encode_xer; -per_type_decoder_f LAC_decode_uper; -per_type_encoder_f LAC_encode_uper; -per_type_decoder_f LAC_decode_aper; -per_type_encoder_f LAC_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _LAC_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/LCID.c b/e2sim/previous/ASN1c/LCID.c deleted file mode 100644 index 412b127..0000000 --- a/e2sim/previous/ASN1c/LCID.c +++ /dev/null @@ -1,79 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "LCID.h" - -int -LCID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 1 && value <= 32)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using NativeInteger, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_LCID_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 5, 5, 1, 32 } /* (1..32,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_LCID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_LCID = { - "LCID", - "LCID", - &asn_OP_NativeInteger, - asn_DEF_LCID_tags_1, - sizeof(asn_DEF_LCID_tags_1) - /sizeof(asn_DEF_LCID_tags_1[0]), /* 1 */ - asn_DEF_LCID_tags_1, /* Same as above */ - sizeof(asn_DEF_LCID_tags_1) - /sizeof(asn_DEF_LCID_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_LCID_constr_1, LCID_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/previous/ASN1c/LCID.h b/e2sim/previous/ASN1c/LCID.h deleted file mode 100644 index 00b43e8..0000000 --- a/e2sim/previous/ASN1c/LCID.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _LCID_H_ -#define _LCID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeInteger.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* LCID */ -typedef long LCID_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_LCID_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_LCID; -asn_struct_free_f LCID_free; -asn_struct_print_f LCID_print; -asn_constr_check_f LCID_constraint; -ber_type_decoder_f LCID_decode_ber; -der_type_encoder_f LCID_encode_der; -xer_type_decoder_f LCID_decode_xer; -xer_type_encoder_f LCID_encode_xer; -per_type_decoder_f LCID_decode_uper; -per_type_encoder_f LCID_encode_uper; -per_type_decoder_f LCID_decode_aper; -per_type_encoder_f LCID_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _LCID_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/LHN-ID.c b/e2sim/previous/ASN1c/LHN-ID.c deleted file mode 100644 index 92aa3d7..0000000 --- a/e2sim/previous/ASN1c/LHN-ID.c +++ /dev/null @@ -1,80 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "LHN-ID.h" - -int -LHN_ID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - size = st->size; - - if((size >= 32 && size <= 256)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using OCTET_STRING, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_LHN_ID_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 8, 8, 32, 256 } /* (SIZE(32..256)) */, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_LHN_ID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_LHN_ID = { - "LHN-ID", - "LHN-ID", - &asn_OP_OCTET_STRING, - asn_DEF_LHN_ID_tags_1, - sizeof(asn_DEF_LHN_ID_tags_1) - /sizeof(asn_DEF_LHN_ID_tags_1[0]), /* 1 */ - asn_DEF_LHN_ID_tags_1, /* Same as above */ - sizeof(asn_DEF_LHN_ID_tags_1) - /sizeof(asn_DEF_LHN_ID_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_LHN_ID_constr_1, LHN_ID_constraint }, - 0, 0, /* No members */ - &asn_SPC_OCTET_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/LHN-ID.h b/e2sim/previous/ASN1c/LHN-ID.h deleted file mode 100644 index 3f32bbe..0000000 --- a/e2sim/previous/ASN1c/LHN-ID.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _LHN_ID_H_ -#define _LHN_ID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "OCTET_STRING.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* LHN-ID */ -typedef OCTET_STRING_t LHN_ID_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_LHN_ID_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_LHN_ID; -asn_struct_free_f LHN_ID_free; -asn_struct_print_f LHN_ID_print; -asn_constr_check_f LHN_ID_constraint; -ber_type_decoder_f LHN_ID_decode_ber; -der_type_encoder_f LHN_ID_encode_der; -xer_type_decoder_f LHN_ID_decode_xer; -xer_type_encoder_f LHN_ID_encode_xer; -per_type_decoder_f LHN_ID_decode_uper; -per_type_encoder_f LHN_ID_encode_uper; -per_type_decoder_f LHN_ID_decode_aper; -per_type_encoder_f LHN_ID_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _LHN_ID_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/LastVisitedCell-Item.c b/e2sim/previous/ASN1c/LastVisitedCell-Item.c deleted file mode 100644 index fcb9e8c..0000000 --- a/e2sim/previous/ASN1c/LastVisitedCell-Item.c +++ /dev/null @@ -1,102 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "LastVisitedCell-Item.h" - -#include "LastVisitedEUTRANCellInformation.h" -#include "LastVisitedGERANCellInformation.h" -asn_per_constraints_t asn_PER_type_LastVisitedCell_Item_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 2 } /* (0..2,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_LastVisitedCell_Item_1[] = { - { ATF_POINTER, 0, offsetof(struct LastVisitedCell_Item, choice.e_UTRAN_Cell), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_LastVisitedEUTRANCellInformation, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "e-UTRAN-Cell" - }, - { ATF_NOFLAGS, 0, offsetof(struct LastVisitedCell_Item, choice.uTRAN_Cell), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_LastVisitedUTRANCellInformation, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "uTRAN-Cell" - }, - { ATF_POINTER, 0, offsetof(struct LastVisitedCell_Item, choice.gERAN_Cell), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_LastVisitedGERANCellInformation, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "gERAN-Cell" - }, - { ATF_NOFLAGS, 0, offsetof(struct LastVisitedCell_Item, choice.nG_RAN_Cell), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_LastVisitedNGRANCellInformation, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "nG-RAN-Cell" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_LastVisitedCell_Item_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e-UTRAN-Cell */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* uTRAN-Cell */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* gERAN-Cell */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* nG-RAN-Cell */ -}; -asn_CHOICE_specifics_t asn_SPC_LastVisitedCell_Item_specs_1 = { - sizeof(struct LastVisitedCell_Item), - offsetof(struct LastVisitedCell_Item, _asn_ctx), - offsetof(struct LastVisitedCell_Item, present), - sizeof(((struct LastVisitedCell_Item *)0)->present), - asn_MAP_LastVisitedCell_Item_tag2el_1, - 4, /* Count of tags in the map */ - 0, 0, - 3 /* Extensions start */ -}; -asn_TYPE_descriptor_t asn_DEF_LastVisitedCell_Item = { - "LastVisitedCell-Item", - "LastVisitedCell-Item", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, &asn_PER_type_LastVisitedCell_Item_constr_1, CHOICE_constraint }, - asn_MBR_LastVisitedCell_Item_1, - 4, /* Elements count */ - &asn_SPC_LastVisitedCell_Item_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/LastVisitedCell-Item.h b/e2sim/previous/ASN1c/LastVisitedCell-Item.h deleted file mode 100644 index 33b2f02..0000000 --- a/e2sim/previous/ASN1c/LastVisitedCell-Item.h +++ /dev/null @@ -1,84 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _LastVisitedCell_Item_H_ -#define _LastVisitedCell_Item_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "LastVisitedUTRANCellInformation.h" -#include "LastVisitedNGRANCellInformation.h" -#include "constr_CHOICE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum LastVisitedCell_Item_PR { - LastVisitedCell_Item_PR_NOTHING, /* No components present */ - LastVisitedCell_Item_PR_e_UTRAN_Cell, - LastVisitedCell_Item_PR_uTRAN_Cell, - LastVisitedCell_Item_PR_gERAN_Cell, - /* Extensions may appear below */ - LastVisitedCell_Item_PR_nG_RAN_Cell -} LastVisitedCell_Item_PR; - -/* Forward declarations */ -struct LastVisitedEUTRANCellInformation; -struct LastVisitedGERANCellInformation; - -/* LastVisitedCell-Item */ -typedef struct LastVisitedCell_Item { - LastVisitedCell_Item_PR present; - union LastVisitedCell_Item_u { - struct LastVisitedEUTRANCellInformation *e_UTRAN_Cell; - LastVisitedUTRANCellInformation_t uTRAN_Cell; - struct LastVisitedGERANCellInformation *gERAN_Cell; - /* - * This type is extensible, - * possible extensions are below. - */ - LastVisitedNGRANCellInformation_t nG_RAN_Cell; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} LastVisitedCell_Item_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_LastVisitedCell_Item; -extern asn_CHOICE_specifics_t asn_SPC_LastVisitedCell_Item_specs_1; -extern asn_TYPE_member_t asn_MBR_LastVisitedCell_Item_1[4]; -extern asn_per_constraints_t asn_PER_type_LastVisitedCell_Item_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _LastVisitedCell_Item_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/LastVisitedEUTRANCellInformation.c b/e2sim/previous/ASN1c/LastVisitedEUTRANCellInformation.c deleted file mode 100644 index 8cb017d..0000000 --- a/e2sim/previous/ASN1c/LastVisitedEUTRANCellInformation.c +++ /dev/null @@ -1,101 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "LastVisitedEUTRANCellInformation.h" - -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_LastVisitedEUTRANCellInformation_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct LastVisitedEUTRANCellInformation, global_Cell_ID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ECGI, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "global-Cell-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct LastVisitedEUTRANCellInformation, cellType), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_CellType, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "cellType" - }, - { ATF_NOFLAGS, 0, offsetof(struct LastVisitedEUTRANCellInformation, time_UE_StayedInCell), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Time_UE_StayedInCell, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "time-UE-StayedInCell" - }, - { ATF_POINTER, 1, offsetof(struct LastVisitedEUTRANCellInformation, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P157, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_LastVisitedEUTRANCellInformation_oms_1[] = { 3 }; -static const ber_tlv_tag_t asn_DEF_LastVisitedEUTRANCellInformation_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_LastVisitedEUTRANCellInformation_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* global-Cell-ID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* cellType */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* time-UE-StayedInCell */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_LastVisitedEUTRANCellInformation_specs_1 = { - sizeof(struct LastVisitedEUTRANCellInformation), - offsetof(struct LastVisitedEUTRANCellInformation, _asn_ctx), - asn_MAP_LastVisitedEUTRANCellInformation_tag2el_1, - 4, /* Count of tags in the map */ - asn_MAP_LastVisitedEUTRANCellInformation_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 4, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_LastVisitedEUTRANCellInformation = { - "LastVisitedEUTRANCellInformation", - "LastVisitedEUTRANCellInformation", - &asn_OP_SEQUENCE, - asn_DEF_LastVisitedEUTRANCellInformation_tags_1, - sizeof(asn_DEF_LastVisitedEUTRANCellInformation_tags_1) - /sizeof(asn_DEF_LastVisitedEUTRANCellInformation_tags_1[0]), /* 1 */ - asn_DEF_LastVisitedEUTRANCellInformation_tags_1, /* Same as above */ - sizeof(asn_DEF_LastVisitedEUTRANCellInformation_tags_1) - /sizeof(asn_DEF_LastVisitedEUTRANCellInformation_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_LastVisitedEUTRANCellInformation_1, - 4, /* Elements count */ - &asn_SPC_LastVisitedEUTRANCellInformation_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/LastVisitedEUTRANCellInformation.h b/e2sim/previous/ASN1c/LastVisitedEUTRANCellInformation.h deleted file mode 100644 index 33db1e4..0000000 --- a/e2sim/previous/ASN1c/LastVisitedEUTRANCellInformation.h +++ /dev/null @@ -1,70 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _LastVisitedEUTRANCellInformation_H_ -#define _LastVisitedEUTRANCellInformation_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ECGI.h" -#include "CellType.h" -#include "Time-UE-StayedInCell.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* LastVisitedEUTRANCellInformation */ -typedef struct LastVisitedEUTRANCellInformation { - ECGI_t global_Cell_ID; - CellType_t cellType; - Time_UE_StayedInCell_t time_UE_StayedInCell; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} LastVisitedEUTRANCellInformation_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_LastVisitedEUTRANCellInformation; -extern asn_SEQUENCE_specifics_t asn_SPC_LastVisitedEUTRANCellInformation_specs_1; -extern asn_TYPE_member_t asn_MBR_LastVisitedEUTRANCellInformation_1[4]; - -#ifdef __cplusplus -} -#endif - -#endif /* _LastVisitedEUTRANCellInformation_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/LastVisitedGERANCellInformation.c b/e2sim/previous/ASN1c/LastVisitedGERANCellInformation.c deleted file mode 100644 index 8d0e09b..0000000 --- a/e2sim/previous/ASN1c/LastVisitedGERANCellInformation.c +++ /dev/null @@ -1,70 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "LastVisitedGERANCellInformation.h" - -asn_per_constraints_t asn_PER_type_LastVisitedGERANCellInformation_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 0, 0 } /* (0..0,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_LastVisitedGERANCellInformation_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct LastVisitedGERANCellInformation, choice.undefined), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NULL, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "undefined" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_LastVisitedGERANCellInformation_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* undefined */ -}; -asn_CHOICE_specifics_t asn_SPC_LastVisitedGERANCellInformation_specs_1 = { - sizeof(struct LastVisitedGERANCellInformation), - offsetof(struct LastVisitedGERANCellInformation, _asn_ctx), - offsetof(struct LastVisitedGERANCellInformation, present), - sizeof(((struct LastVisitedGERANCellInformation *)0)->present), - asn_MAP_LastVisitedGERANCellInformation_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, - 1 /* Extensions start */ -}; -asn_TYPE_descriptor_t asn_DEF_LastVisitedGERANCellInformation = { - "LastVisitedGERANCellInformation", - "LastVisitedGERANCellInformation", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, &asn_PER_type_LastVisitedGERANCellInformation_constr_1, CHOICE_constraint }, - asn_MBR_LastVisitedGERANCellInformation_1, - 1, /* Elements count */ - &asn_SPC_LastVisitedGERANCellInformation_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/LastVisitedGERANCellInformation.h b/e2sim/previous/ASN1c/LastVisitedGERANCellInformation.h deleted file mode 100644 index 21fc9a1..0000000 --- a/e2sim/previous/ASN1c/LastVisitedGERANCellInformation.h +++ /dev/null @@ -1,74 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _LastVisitedGERANCellInformation_H_ -#define _LastVisitedGERANCellInformation_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NULL.h" -#include "constr_CHOICE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum LastVisitedGERANCellInformation_PR { - LastVisitedGERANCellInformation_PR_NOTHING, /* No components present */ - LastVisitedGERANCellInformation_PR_undefined - /* Extensions may appear below */ - -} LastVisitedGERANCellInformation_PR; - -/* LastVisitedGERANCellInformation */ -typedef struct LastVisitedGERANCellInformation { - LastVisitedGERANCellInformation_PR present; - union LastVisitedGERANCellInformation_u { - NULL_t undefined; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} LastVisitedGERANCellInformation_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_LastVisitedGERANCellInformation; -extern asn_CHOICE_specifics_t asn_SPC_LastVisitedGERANCellInformation_specs_1; -extern asn_TYPE_member_t asn_MBR_LastVisitedGERANCellInformation_1[1]; -extern asn_per_constraints_t asn_PER_type_LastVisitedGERANCellInformation_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _LastVisitedGERANCellInformation_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/LastVisitedNGRANCellInformation.c b/e2sim/previous/ASN1c/LastVisitedNGRANCellInformation.c deleted file mode 100644 index e0e480f..0000000 --- a/e2sim/previous/ASN1c/LastVisitedNGRANCellInformation.c +++ /dev/null @@ -1,49 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "LastVisitedNGRANCellInformation.h" - -/* - * This type is implemented using OCTET_STRING, - * so here we adjust the DEF accordingly. - */ -static const ber_tlv_tag_t asn_DEF_LastVisitedNGRANCellInformation_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_LastVisitedNGRANCellInformation = { - "LastVisitedNGRANCellInformation", - "LastVisitedNGRANCellInformation", - &asn_OP_OCTET_STRING, - asn_DEF_LastVisitedNGRANCellInformation_tags_1, - sizeof(asn_DEF_LastVisitedNGRANCellInformation_tags_1) - /sizeof(asn_DEF_LastVisitedNGRANCellInformation_tags_1[0]), /* 1 */ - asn_DEF_LastVisitedNGRANCellInformation_tags_1, /* Same as above */ - sizeof(asn_DEF_LastVisitedNGRANCellInformation_tags_1) - /sizeof(asn_DEF_LastVisitedNGRANCellInformation_tags_1[0]), /* 1 */ - { 0, 0, OCTET_STRING_constraint }, - 0, 0, /* No members */ - &asn_SPC_OCTET_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/LastVisitedNGRANCellInformation.h b/e2sim/previous/ASN1c/LastVisitedNGRANCellInformation.h deleted file mode 100644 index 8e93c0f..0000000 --- a/e2sim/previous/ASN1c/LastVisitedNGRANCellInformation.h +++ /dev/null @@ -1,61 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _LastVisitedNGRANCellInformation_H_ -#define _LastVisitedNGRANCellInformation_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "OCTET_STRING.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* LastVisitedNGRANCellInformation */ -typedef OCTET_STRING_t LastVisitedNGRANCellInformation_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_LastVisitedNGRANCellInformation; -asn_struct_free_f LastVisitedNGRANCellInformation_free; -asn_struct_print_f LastVisitedNGRANCellInformation_print; -asn_constr_check_f LastVisitedNGRANCellInformation_constraint; -ber_type_decoder_f LastVisitedNGRANCellInformation_decode_ber; -der_type_encoder_f LastVisitedNGRANCellInformation_encode_der; -xer_type_decoder_f LastVisitedNGRANCellInformation_decode_xer; -xer_type_encoder_f LastVisitedNGRANCellInformation_encode_xer; -per_type_decoder_f LastVisitedNGRANCellInformation_decode_uper; -per_type_encoder_f LastVisitedNGRANCellInformation_encode_uper; -per_type_decoder_f LastVisitedNGRANCellInformation_decode_aper; -per_type_encoder_f LastVisitedNGRANCellInformation_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _LastVisitedNGRANCellInformation_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/LastVisitedUTRANCellInformation.c b/e2sim/previous/ASN1c/LastVisitedUTRANCellInformation.c deleted file mode 100644 index 1133af0..0000000 --- a/e2sim/previous/ASN1c/LastVisitedUTRANCellInformation.c +++ /dev/null @@ -1,49 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "LastVisitedUTRANCellInformation.h" - -/* - * This type is implemented using OCTET_STRING, - * so here we adjust the DEF accordingly. - */ -static const ber_tlv_tag_t asn_DEF_LastVisitedUTRANCellInformation_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_LastVisitedUTRANCellInformation = { - "LastVisitedUTRANCellInformation", - "LastVisitedUTRANCellInformation", - &asn_OP_OCTET_STRING, - asn_DEF_LastVisitedUTRANCellInformation_tags_1, - sizeof(asn_DEF_LastVisitedUTRANCellInformation_tags_1) - /sizeof(asn_DEF_LastVisitedUTRANCellInformation_tags_1[0]), /* 1 */ - asn_DEF_LastVisitedUTRANCellInformation_tags_1, /* Same as above */ - sizeof(asn_DEF_LastVisitedUTRANCellInformation_tags_1) - /sizeof(asn_DEF_LastVisitedUTRANCellInformation_tags_1[0]), /* 1 */ - { 0, 0, OCTET_STRING_constraint }, - 0, 0, /* No members */ - &asn_SPC_OCTET_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/LastVisitedUTRANCellInformation.h b/e2sim/previous/ASN1c/LastVisitedUTRANCellInformation.h deleted file mode 100644 index f7d8bd9..0000000 --- a/e2sim/previous/ASN1c/LastVisitedUTRANCellInformation.h +++ /dev/null @@ -1,61 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _LastVisitedUTRANCellInformation_H_ -#define _LastVisitedUTRANCellInformation_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "OCTET_STRING.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* LastVisitedUTRANCellInformation */ -typedef OCTET_STRING_t LastVisitedUTRANCellInformation_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_LastVisitedUTRANCellInformation; -asn_struct_free_f LastVisitedUTRANCellInformation_free; -asn_struct_print_f LastVisitedUTRANCellInformation_print; -asn_constr_check_f LastVisitedUTRANCellInformation_constraint; -ber_type_decoder_f LastVisitedUTRANCellInformation_decode_ber; -der_type_encoder_f LastVisitedUTRANCellInformation_encode_der; -xer_type_decoder_f LastVisitedUTRANCellInformation_decode_xer; -xer_type_encoder_f LastVisitedUTRANCellInformation_encode_xer; -per_type_decoder_f LastVisitedUTRANCellInformation_decode_uper; -per_type_encoder_f LastVisitedUTRANCellInformation_encode_uper; -per_type_decoder_f LastVisitedUTRANCellInformation_decode_aper; -per_type_encoder_f LastVisitedUTRANCellInformation_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _LastVisitedUTRANCellInformation_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/Limited-list.c b/e2sim/previous/ASN1c/Limited-list.c deleted file mode 100644 index b28f083..0000000 --- a/e2sim/previous/ASN1c/Limited-list.c +++ /dev/null @@ -1,122 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "Limited-list.h" - -#include "ProtocolExtensionContainer.h" -asn_per_constraints_t asn_PER_type_Limited_list_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 14, 14, 1, 16384 } /* (SIZE(1..16384)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_Member_2[] = { - { ATF_NOFLAGS, 0, offsetof(struct Limited_list__Member, nrCellID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NRCGI, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "nrCellID" - }, - { ATF_POINTER, 1, offsetof(struct Limited_list__Member, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P98, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_Member_oms_2[] = { 1 }; -static const ber_tlv_tag_t asn_DEF_Member_tags_2[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_Member_tag2el_2[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nrCellID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_Member_specs_2 = { - sizeof(struct Limited_list__Member), - offsetof(struct Limited_list__Member, _asn_ctx), - asn_MAP_Member_tag2el_2, - 2, /* Count of tags in the map */ - asn_MAP_Member_oms_2, /* Optional members */ - 1, 0, /* Root/Additions */ - 2, /* First extension addition */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_Member_2 = { - "SEQUENCE", - "SEQUENCE", - &asn_OP_SEQUENCE, - asn_DEF_Member_tags_2, - sizeof(asn_DEF_Member_tags_2) - /sizeof(asn_DEF_Member_tags_2[0]), /* 1 */ - asn_DEF_Member_tags_2, /* Same as above */ - sizeof(asn_DEF_Member_tags_2) - /sizeof(asn_DEF_Member_tags_2[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_Member_2, - 2, /* Elements count */ - &asn_SPC_Member_specs_2 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_Limited_list_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_Member_2, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_Limited_list_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_Limited_list_specs_1 = { - sizeof(struct Limited_list), - offsetof(struct Limited_list, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_Limited_list = { - "Limited-list", - "Limited-list", - &asn_OP_SEQUENCE_OF, - asn_DEF_Limited_list_tags_1, - sizeof(asn_DEF_Limited_list_tags_1) - /sizeof(asn_DEF_Limited_list_tags_1[0]), /* 1 */ - asn_DEF_Limited_list_tags_1, /* Same as above */ - sizeof(asn_DEF_Limited_list_tags_1) - /sizeof(asn_DEF_Limited_list_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_Limited_list_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_Limited_list_1, - 1, /* Single element */ - &asn_SPC_Limited_list_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/Limited-list.h b/e2sim/previous/ASN1c/Limited-list.h deleted file mode 100644 index c861862..0000000 --- a/e2sim/previous/ASN1c/Limited-list.h +++ /dev/null @@ -1,77 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _Limited_list_H_ -#define _Limited_list_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "NRCGI.h" -#include "constr_SEQUENCE.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* Forward definitions */ -typedef struct Limited_list__Member { - NRCGI_t nrCellID; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} Limited_list__Member; - -/* Limited-list */ -typedef struct Limited_list { - A_SEQUENCE_OF(Limited_list__Member) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} Limited_list_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_Limited_list; -extern asn_SET_OF_specifics_t asn_SPC_Limited_list_specs_1; -extern asn_TYPE_member_t asn_MBR_Limited_list_1[1]; -extern asn_per_constraints_t asn_PER_type_Limited_list_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _Limited_list_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/Links-to-log.c b/e2sim/previous/ASN1c/Links-to-log.c deleted file mode 100644 index c5d90b7..0000000 --- a/e2sim/previous/ASN1c/Links-to-log.c +++ /dev/null @@ -1,75 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "Links-to-log.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_Links_to_log_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 2 } /* (0..2,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_Links_to_log_value2enum_1[] = { - { 0, 6, "uplink" }, - { 1, 8, "downlink" }, - { 2, 24, "both-uplink-and-downlink" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_Links_to_log_enum2value_1[] = { - 2, /* both-uplink-and-downlink(2) */ - 1, /* downlink(1) */ - 0 /* uplink(0) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_Links_to_log_specs_1 = { - asn_MAP_Links_to_log_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_Links_to_log_enum2value_1, /* N => "tag"; sorted by N */ - 3, /* Number of elements in the maps */ - 4, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_Links_to_log_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_Links_to_log = { - "Links-to-log", - "Links-to-log", - &asn_OP_NativeEnumerated, - asn_DEF_Links_to_log_tags_1, - sizeof(asn_DEF_Links_to_log_tags_1) - /sizeof(asn_DEF_Links_to_log_tags_1[0]), /* 1 */ - asn_DEF_Links_to_log_tags_1, /* Same as above */ - sizeof(asn_DEF_Links_to_log_tags_1) - /sizeof(asn_DEF_Links_to_log_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_Links_to_log_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_Links_to_log_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/Links-to-log.h b/e2sim/previous/ASN1c/Links-to-log.h deleted file mode 100644 index 41556c8..0000000 --- a/e2sim/previous/ASN1c/Links-to-log.h +++ /dev/null @@ -1,73 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _Links_to_log_H_ -#define _Links_to_log_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum Links_to_log { - Links_to_log_uplink = 0, - Links_to_log_downlink = 1, - Links_to_log_both_uplink_and_downlink = 2 - /* - * Enumeration is extensible - */ -} e_Links_to_log; - -/* Links-to-log */ -typedef long Links_to_log_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_Links_to_log_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_Links_to_log; -extern const asn_INTEGER_specifics_t asn_SPC_Links_to_log_specs_1; -asn_struct_free_f Links_to_log_free; -asn_struct_print_f Links_to_log_print; -asn_constr_check_f Links_to_log_constraint; -ber_type_decoder_f Links_to_log_decode_ber; -der_type_encoder_f Links_to_log_encode_der; -xer_type_decoder_f Links_to_log_decode_xer; -xer_type_encoder_f Links_to_log_encode_xer; -per_type_decoder_f Links_to_log_decode_uper; -per_type_encoder_f Links_to_log_encode_uper; -per_type_decoder_f Links_to_log_decode_aper; -per_type_encoder_f Links_to_log_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _Links_to_log_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/ListofEUTRACellsinEUTRACoordinationReq.c b/e2sim/previous/ASN1c/ListofEUTRACellsinEUTRACoordinationReq.c deleted file mode 100644 index 782ff17..0000000 --- a/e2sim/previous/ASN1c/ListofEUTRACellsinEUTRACoordinationReq.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "ListofEUTRACellsinEUTRACoordinationReq.h" - -#include "ECGI.h" -static asn_per_constraints_t asn_PER_type_ListofEUTRACellsinEUTRACoordinationReq_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 9, 9, 0, 256 } /* (SIZE(0..256)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_ListofEUTRACellsinEUTRACoordinationReq_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ECGI, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ListofEUTRACellsinEUTRACoordinationReq_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_ListofEUTRACellsinEUTRACoordinationReq_specs_1 = { - sizeof(struct ListofEUTRACellsinEUTRACoordinationReq), - offsetof(struct ListofEUTRACellsinEUTRACoordinationReq, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ListofEUTRACellsinEUTRACoordinationReq = { - "ListofEUTRACellsinEUTRACoordinationReq", - "ListofEUTRACellsinEUTRACoordinationReq", - &asn_OP_SEQUENCE_OF, - asn_DEF_ListofEUTRACellsinEUTRACoordinationReq_tags_1, - sizeof(asn_DEF_ListofEUTRACellsinEUTRACoordinationReq_tags_1) - /sizeof(asn_DEF_ListofEUTRACellsinEUTRACoordinationReq_tags_1[0]), /* 1 */ - asn_DEF_ListofEUTRACellsinEUTRACoordinationReq_tags_1, /* Same as above */ - sizeof(asn_DEF_ListofEUTRACellsinEUTRACoordinationReq_tags_1) - /sizeof(asn_DEF_ListofEUTRACellsinEUTRACoordinationReq_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_ListofEUTRACellsinEUTRACoordinationReq_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_ListofEUTRACellsinEUTRACoordinationReq_1, - 1, /* Single element */ - &asn_SPC_ListofEUTRACellsinEUTRACoordinationReq_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/ListofEUTRACellsinEUTRACoordinationReq.h b/e2sim/previous/ASN1c/ListofEUTRACellsinEUTRACoordinationReq.h deleted file mode 100644 index c33db8d..0000000 --- a/e2sim/previous/ASN1c/ListofEUTRACellsinEUTRACoordinationReq.h +++ /dev/null @@ -1,59 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _ListofEUTRACellsinEUTRACoordinationReq_H_ -#define _ListofEUTRACellsinEUTRACoordinationReq_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ECGI; - -/* ListofEUTRACellsinEUTRACoordinationReq */ -typedef struct ListofEUTRACellsinEUTRACoordinationReq { - A_SEQUENCE_OF(struct ECGI) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ListofEUTRACellsinEUTRACoordinationReq_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ListofEUTRACellsinEUTRACoordinationReq; - -#ifdef __cplusplus -} -#endif - -#endif /* _ListofEUTRACellsinEUTRACoordinationReq_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/ListofEUTRACellsinEUTRACoordinationResp.c b/e2sim/previous/ASN1c/ListofEUTRACellsinEUTRACoordinationResp.c deleted file mode 100644 index b7fc39d..0000000 --- a/e2sim/previous/ASN1c/ListofEUTRACellsinEUTRACoordinationResp.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "ListofEUTRACellsinEUTRACoordinationResp.h" - -#include "ECGI.h" -static asn_per_constraints_t asn_PER_type_ListofEUTRACellsinEUTRACoordinationResp_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 9, 9, 0, 256 } /* (SIZE(0..256)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_ListofEUTRACellsinEUTRACoordinationResp_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ECGI, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ListofEUTRACellsinEUTRACoordinationResp_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_ListofEUTRACellsinEUTRACoordinationResp_specs_1 = { - sizeof(struct ListofEUTRACellsinEUTRACoordinationResp), - offsetof(struct ListofEUTRACellsinEUTRACoordinationResp, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ListofEUTRACellsinEUTRACoordinationResp = { - "ListofEUTRACellsinEUTRACoordinationResp", - "ListofEUTRACellsinEUTRACoordinationResp", - &asn_OP_SEQUENCE_OF, - asn_DEF_ListofEUTRACellsinEUTRACoordinationResp_tags_1, - sizeof(asn_DEF_ListofEUTRACellsinEUTRACoordinationResp_tags_1) - /sizeof(asn_DEF_ListofEUTRACellsinEUTRACoordinationResp_tags_1[0]), /* 1 */ - asn_DEF_ListofEUTRACellsinEUTRACoordinationResp_tags_1, /* Same as above */ - sizeof(asn_DEF_ListofEUTRACellsinEUTRACoordinationResp_tags_1) - /sizeof(asn_DEF_ListofEUTRACellsinEUTRACoordinationResp_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_ListofEUTRACellsinEUTRACoordinationResp_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_ListofEUTRACellsinEUTRACoordinationResp_1, - 1, /* Single element */ - &asn_SPC_ListofEUTRACellsinEUTRACoordinationResp_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/ListofEUTRACellsinEUTRACoordinationResp.h b/e2sim/previous/ASN1c/ListofEUTRACellsinEUTRACoordinationResp.h deleted file mode 100644 index 5af4ce9..0000000 --- a/e2sim/previous/ASN1c/ListofEUTRACellsinEUTRACoordinationResp.h +++ /dev/null @@ -1,59 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _ListofEUTRACellsinEUTRACoordinationResp_H_ -#define _ListofEUTRACellsinEUTRACoordinationResp_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ECGI; - -/* ListofEUTRACellsinEUTRACoordinationResp */ -typedef struct ListofEUTRACellsinEUTRACoordinationResp { - A_SEQUENCE_OF(struct ECGI) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ListofEUTRACellsinEUTRACoordinationResp_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ListofEUTRACellsinEUTRACoordinationResp; - -#ifdef __cplusplus -} -#endif - -#endif /* _ListofEUTRACellsinEUTRACoordinationResp_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/ListofEUTRACellsinNRCoordinationReq.c b/e2sim/previous/ASN1c/ListofEUTRACellsinNRCoordinationReq.c deleted file mode 100644 index 6172ef6..0000000 --- a/e2sim/previous/ASN1c/ListofEUTRACellsinNRCoordinationReq.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "ListofEUTRACellsinNRCoordinationReq.h" - -#include "ECGI.h" -static asn_per_constraints_t asn_PER_type_ListofEUTRACellsinNRCoordinationReq_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 8, 8, 1, 256 } /* (SIZE(1..256)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_ListofEUTRACellsinNRCoordinationReq_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ECGI, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ListofEUTRACellsinNRCoordinationReq_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_ListofEUTRACellsinNRCoordinationReq_specs_1 = { - sizeof(struct ListofEUTRACellsinNRCoordinationReq), - offsetof(struct ListofEUTRACellsinNRCoordinationReq, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ListofEUTRACellsinNRCoordinationReq = { - "ListofEUTRACellsinNRCoordinationReq", - "ListofEUTRACellsinNRCoordinationReq", - &asn_OP_SEQUENCE_OF, - asn_DEF_ListofEUTRACellsinNRCoordinationReq_tags_1, - sizeof(asn_DEF_ListofEUTRACellsinNRCoordinationReq_tags_1) - /sizeof(asn_DEF_ListofEUTRACellsinNRCoordinationReq_tags_1[0]), /* 1 */ - asn_DEF_ListofEUTRACellsinNRCoordinationReq_tags_1, /* Same as above */ - sizeof(asn_DEF_ListofEUTRACellsinNRCoordinationReq_tags_1) - /sizeof(asn_DEF_ListofEUTRACellsinNRCoordinationReq_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_ListofEUTRACellsinNRCoordinationReq_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_ListofEUTRACellsinNRCoordinationReq_1, - 1, /* Single element */ - &asn_SPC_ListofEUTRACellsinNRCoordinationReq_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/ListofEUTRACellsinNRCoordinationReq.h b/e2sim/previous/ASN1c/ListofEUTRACellsinNRCoordinationReq.h deleted file mode 100644 index 4d85c13..0000000 --- a/e2sim/previous/ASN1c/ListofEUTRACellsinNRCoordinationReq.h +++ /dev/null @@ -1,59 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _ListofEUTRACellsinNRCoordinationReq_H_ -#define _ListofEUTRACellsinNRCoordinationReq_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ECGI; - -/* ListofEUTRACellsinNRCoordinationReq */ -typedef struct ListofEUTRACellsinNRCoordinationReq { - A_SEQUENCE_OF(struct ECGI) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ListofEUTRACellsinNRCoordinationReq_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ListofEUTRACellsinNRCoordinationReq; - -#ifdef __cplusplus -} -#endif - -#endif /* _ListofEUTRACellsinNRCoordinationReq_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/ListofNRCellsinNRCoordinationReq.c b/e2sim/previous/ASN1c/ListofNRCellsinNRCoordinationReq.c deleted file mode 100644 index e40af6b..0000000 --- a/e2sim/previous/ASN1c/ListofNRCellsinNRCoordinationReq.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "ListofNRCellsinNRCoordinationReq.h" - -#include "NRCGI.h" -static asn_per_constraints_t asn_PER_type_ListofNRCellsinNRCoordinationReq_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 7, 7, 0, 64 } /* (SIZE(0..64)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_ListofNRCellsinNRCoordinationReq_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_NRCGI, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ListofNRCellsinNRCoordinationReq_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_ListofNRCellsinNRCoordinationReq_specs_1 = { - sizeof(struct ListofNRCellsinNRCoordinationReq), - offsetof(struct ListofNRCellsinNRCoordinationReq, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ListofNRCellsinNRCoordinationReq = { - "ListofNRCellsinNRCoordinationReq", - "ListofNRCellsinNRCoordinationReq", - &asn_OP_SEQUENCE_OF, - asn_DEF_ListofNRCellsinNRCoordinationReq_tags_1, - sizeof(asn_DEF_ListofNRCellsinNRCoordinationReq_tags_1) - /sizeof(asn_DEF_ListofNRCellsinNRCoordinationReq_tags_1[0]), /* 1 */ - asn_DEF_ListofNRCellsinNRCoordinationReq_tags_1, /* Same as above */ - sizeof(asn_DEF_ListofNRCellsinNRCoordinationReq_tags_1) - /sizeof(asn_DEF_ListofNRCellsinNRCoordinationReq_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_ListofNRCellsinNRCoordinationReq_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_ListofNRCellsinNRCoordinationReq_1, - 1, /* Single element */ - &asn_SPC_ListofNRCellsinNRCoordinationReq_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/ListofNRCellsinNRCoordinationReq.h b/e2sim/previous/ASN1c/ListofNRCellsinNRCoordinationReq.h deleted file mode 100644 index d8fb324..0000000 --- a/e2sim/previous/ASN1c/ListofNRCellsinNRCoordinationReq.h +++ /dev/null @@ -1,59 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _ListofNRCellsinNRCoordinationReq_H_ -#define _ListofNRCellsinNRCoordinationReq_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct NRCGI; - -/* ListofNRCellsinNRCoordinationReq */ -typedef struct ListofNRCellsinNRCoordinationReq { - A_SEQUENCE_OF(struct NRCGI) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ListofNRCellsinNRCoordinationReq_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ListofNRCellsinNRCoordinationReq; - -#ifdef __cplusplus -} -#endif - -#endif /* _ListofNRCellsinNRCoordinationReq_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/ListofNRCellsinNRCoordinationResp.c b/e2sim/previous/ASN1c/ListofNRCellsinNRCoordinationResp.c deleted file mode 100644 index f3b0e80..0000000 --- a/e2sim/previous/ASN1c/ListofNRCellsinNRCoordinationResp.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "ListofNRCellsinNRCoordinationResp.h" - -#include "NRCGI.h" -static asn_per_constraints_t asn_PER_type_ListofNRCellsinNRCoordinationResp_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 7, 7, 0, 64 } /* (SIZE(0..64)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_ListofNRCellsinNRCoordinationResp_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_NRCGI, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ListofNRCellsinNRCoordinationResp_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_ListofNRCellsinNRCoordinationResp_specs_1 = { - sizeof(struct ListofNRCellsinNRCoordinationResp), - offsetof(struct ListofNRCellsinNRCoordinationResp, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ListofNRCellsinNRCoordinationResp = { - "ListofNRCellsinNRCoordinationResp", - "ListofNRCellsinNRCoordinationResp", - &asn_OP_SEQUENCE_OF, - asn_DEF_ListofNRCellsinNRCoordinationResp_tags_1, - sizeof(asn_DEF_ListofNRCellsinNRCoordinationResp_tags_1) - /sizeof(asn_DEF_ListofNRCellsinNRCoordinationResp_tags_1[0]), /* 1 */ - asn_DEF_ListofNRCellsinNRCoordinationResp_tags_1, /* Same as above */ - sizeof(asn_DEF_ListofNRCellsinNRCoordinationResp_tags_1) - /sizeof(asn_DEF_ListofNRCellsinNRCoordinationResp_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_ListofNRCellsinNRCoordinationResp_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_ListofNRCellsinNRCoordinationResp_1, - 1, /* Single element */ - &asn_SPC_ListofNRCellsinNRCoordinationResp_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/ListofNRCellsinNRCoordinationResp.h b/e2sim/previous/ASN1c/ListofNRCellsinNRCoordinationResp.h deleted file mode 100644 index 706416d..0000000 --- a/e2sim/previous/ASN1c/ListofNRCellsinNRCoordinationResp.h +++ /dev/null @@ -1,59 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _ListofNRCellsinNRCoordinationResp_H_ -#define _ListofNRCellsinNRCoordinationResp_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct NRCGI; - -/* ListofNRCellsinNRCoordinationResp */ -typedef struct ListofNRCellsinNRCoordinationResp { - A_SEQUENCE_OF(struct NRCGI) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ListofNRCellsinNRCoordinationResp_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ListofNRCellsinNRCoordinationResp; - -#ifdef __cplusplus -} -#endif - -#endif /* _ListofNRCellsinNRCoordinationResp_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/LoadIndicator.c b/e2sim/previous/ASN1c/LoadIndicator.c deleted file mode 100644 index b72b05a..0000000 --- a/e2sim/previous/ASN1c/LoadIndicator.c +++ /dev/null @@ -1,77 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "LoadIndicator.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_LoadIndicator_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 3 } /* (0..3,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_LoadIndicator_value2enum_1[] = { - { 0, 7, "lowLoad" }, - { 1, 10, "mediumLoad" }, - { 2, 8, "highLoad" }, - { 3, 8, "overLoad" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_LoadIndicator_enum2value_1[] = { - 2, /* highLoad(2) */ - 0, /* lowLoad(0) */ - 1, /* mediumLoad(1) */ - 3 /* overLoad(3) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_LoadIndicator_specs_1 = { - asn_MAP_LoadIndicator_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_LoadIndicator_enum2value_1, /* N => "tag"; sorted by N */ - 4, /* Number of elements in the maps */ - 5, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_LoadIndicator_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_LoadIndicator = { - "LoadIndicator", - "LoadIndicator", - &asn_OP_NativeEnumerated, - asn_DEF_LoadIndicator_tags_1, - sizeof(asn_DEF_LoadIndicator_tags_1) - /sizeof(asn_DEF_LoadIndicator_tags_1[0]), /* 1 */ - asn_DEF_LoadIndicator_tags_1, /* Same as above */ - sizeof(asn_DEF_LoadIndicator_tags_1) - /sizeof(asn_DEF_LoadIndicator_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_LoadIndicator_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_LoadIndicator_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/LoadIndicator.h b/e2sim/previous/ASN1c/LoadIndicator.h deleted file mode 100644 index 0bd0673..0000000 --- a/e2sim/previous/ASN1c/LoadIndicator.h +++ /dev/null @@ -1,74 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _LoadIndicator_H_ -#define _LoadIndicator_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum LoadIndicator { - LoadIndicator_lowLoad = 0, - LoadIndicator_mediumLoad = 1, - LoadIndicator_highLoad = 2, - LoadIndicator_overLoad = 3 - /* - * Enumeration is extensible - */ -} e_LoadIndicator; - -/* LoadIndicator */ -typedef long LoadIndicator_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_LoadIndicator_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_LoadIndicator; -extern const asn_INTEGER_specifics_t asn_SPC_LoadIndicator_specs_1; -asn_struct_free_f LoadIndicator_free; -asn_struct_print_f LoadIndicator_print; -asn_constr_check_f LoadIndicator_constraint; -ber_type_decoder_f LoadIndicator_decode_ber; -der_type_encoder_f LoadIndicator_encode_der; -xer_type_decoder_f LoadIndicator_decode_xer; -xer_type_encoder_f LoadIndicator_encode_xer; -per_type_decoder_f LoadIndicator_decode_uper; -per_type_encoder_f LoadIndicator_encode_uper; -per_type_decoder_f LoadIndicator_decode_aper; -per_type_encoder_f LoadIndicator_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _LoadIndicator_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/LoadInformation.c b/e2sim/previous/ASN1c/LoadInformation.c deleted file mode 100644 index da01046..0000000 --- a/e2sim/previous/ASN1c/LoadInformation.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "LoadInformation.h" - -asn_TYPE_member_t asn_MBR_LoadInformation_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct LoadInformation, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_119P27, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_LoadInformation_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_LoadInformation_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_LoadInformation_specs_1 = { - sizeof(struct LoadInformation), - offsetof(struct LoadInformation, _asn_ctx), - asn_MAP_LoadInformation_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_LoadInformation = { - "LoadInformation", - "LoadInformation", - &asn_OP_SEQUENCE, - asn_DEF_LoadInformation_tags_1, - sizeof(asn_DEF_LoadInformation_tags_1) - /sizeof(asn_DEF_LoadInformation_tags_1[0]), /* 1 */ - asn_DEF_LoadInformation_tags_1, /* Same as above */ - sizeof(asn_DEF_LoadInformation_tags_1) - /sizeof(asn_DEF_LoadInformation_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_LoadInformation_1, - 1, /* Elements count */ - &asn_SPC_LoadInformation_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/LoadInformation.h b/e2sim/previous/ASN1c/LoadInformation.h deleted file mode 100644 index 691c7a0..0000000 --- a/e2sim/previous/ASN1c/LoadInformation.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _LoadInformation_H_ -#define _LoadInformation_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* LoadInformation */ -typedef struct LoadInformation { - ProtocolIE_Container_119P27_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} LoadInformation_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_LoadInformation; -extern asn_SEQUENCE_specifics_t asn_SPC_LoadInformation_specs_1; -extern asn_TYPE_member_t asn_MBR_LoadInformation_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _LoadInformation_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/LocationReportingInformation.c b/e2sim/previous/ASN1c/LocationReportingInformation.c deleted file mode 100644 index e8f2a19..0000000 --- a/e2sim/previous/ASN1c/LocationReportingInformation.c +++ /dev/null @@ -1,91 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "LocationReportingInformation.h" - -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_LocationReportingInformation_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct LocationReportingInformation, eventType), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_EventType, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "eventType" - }, - { ATF_NOFLAGS, 0, offsetof(struct LocationReportingInformation, reportArea), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ReportArea, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "reportArea" - }, - { ATF_POINTER, 1, offsetof(struct LocationReportingInformation, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P158, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_LocationReportingInformation_oms_1[] = { 2 }; -static const ber_tlv_tag_t asn_DEF_LocationReportingInformation_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_LocationReportingInformation_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* eventType */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* reportArea */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_LocationReportingInformation_specs_1 = { - sizeof(struct LocationReportingInformation), - offsetof(struct LocationReportingInformation, _asn_ctx), - asn_MAP_LocationReportingInformation_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_LocationReportingInformation_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_LocationReportingInformation = { - "LocationReportingInformation", - "LocationReportingInformation", - &asn_OP_SEQUENCE, - asn_DEF_LocationReportingInformation_tags_1, - sizeof(asn_DEF_LocationReportingInformation_tags_1) - /sizeof(asn_DEF_LocationReportingInformation_tags_1[0]), /* 1 */ - asn_DEF_LocationReportingInformation_tags_1, /* Same as above */ - sizeof(asn_DEF_LocationReportingInformation_tags_1) - /sizeof(asn_DEF_LocationReportingInformation_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_LocationReportingInformation_1, - 3, /* Elements count */ - &asn_SPC_LocationReportingInformation_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/LocationReportingInformation.h b/e2sim/previous/ASN1c/LocationReportingInformation.h deleted file mode 100644 index 9b3ba49..0000000 --- a/e2sim/previous/ASN1c/LocationReportingInformation.h +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _LocationReportingInformation_H_ -#define _LocationReportingInformation_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "EventType.h" -#include "ReportArea.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* LocationReportingInformation */ -typedef struct LocationReportingInformation { - EventType_t eventType; - ReportArea_t reportArea; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} LocationReportingInformation_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_LocationReportingInformation; -extern asn_SEQUENCE_specifics_t asn_SPC_LocationReportingInformation_specs_1; -extern asn_TYPE_member_t asn_MBR_LocationReportingInformation_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _LocationReportingInformation_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/M1PeriodicReporting.c b/e2sim/previous/ASN1c/M1PeriodicReporting.c deleted file mode 100644 index 999fc19..0000000 --- a/e2sim/previous/ASN1c/M1PeriodicReporting.c +++ /dev/null @@ -1,91 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "M1PeriodicReporting.h" - -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_M1PeriodicReporting_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct M1PeriodicReporting, reportInterval), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ReportIntervalMDT, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "reportInterval" - }, - { ATF_NOFLAGS, 0, offsetof(struct M1PeriodicReporting, reportAmount), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ReportAmountMDT, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "reportAmount" - }, - { ATF_POINTER, 1, offsetof(struct M1PeriodicReporting, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P159, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_M1PeriodicReporting_oms_1[] = { 2 }; -static const ber_tlv_tag_t asn_DEF_M1PeriodicReporting_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_M1PeriodicReporting_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* reportInterval */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* reportAmount */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_M1PeriodicReporting_specs_1 = { - sizeof(struct M1PeriodicReporting), - offsetof(struct M1PeriodicReporting, _asn_ctx), - asn_MAP_M1PeriodicReporting_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_M1PeriodicReporting_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_M1PeriodicReporting = { - "M1PeriodicReporting", - "M1PeriodicReporting", - &asn_OP_SEQUENCE, - asn_DEF_M1PeriodicReporting_tags_1, - sizeof(asn_DEF_M1PeriodicReporting_tags_1) - /sizeof(asn_DEF_M1PeriodicReporting_tags_1[0]), /* 1 */ - asn_DEF_M1PeriodicReporting_tags_1, /* Same as above */ - sizeof(asn_DEF_M1PeriodicReporting_tags_1) - /sizeof(asn_DEF_M1PeriodicReporting_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_M1PeriodicReporting_1, - 3, /* Elements count */ - &asn_SPC_M1PeriodicReporting_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/M1PeriodicReporting.h b/e2sim/previous/ASN1c/M1PeriodicReporting.h deleted file mode 100644 index ababa9c..0000000 --- a/e2sim/previous/ASN1c/M1PeriodicReporting.h +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _M1PeriodicReporting_H_ -#define _M1PeriodicReporting_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ReportIntervalMDT.h" -#include "ReportAmountMDT.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* M1PeriodicReporting */ -typedef struct M1PeriodicReporting { - ReportIntervalMDT_t reportInterval; - ReportAmountMDT_t reportAmount; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} M1PeriodicReporting_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_M1PeriodicReporting; -extern asn_SEQUENCE_specifics_t asn_SPC_M1PeriodicReporting_specs_1; -extern asn_TYPE_member_t asn_MBR_M1PeriodicReporting_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _M1PeriodicReporting_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/M1ReportingTrigger.c b/e2sim/previous/ASN1c/M1ReportingTrigger.c deleted file mode 100644 index feaa6b2..0000000 --- a/e2sim/previous/ASN1c/M1ReportingTrigger.c +++ /dev/null @@ -1,75 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "M1ReportingTrigger.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_M1ReportingTrigger_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_M1ReportingTrigger_value2enum_1[] = { - { 0, 8, "periodic" }, - { 1, 16, "a2eventtriggered" }, - { 2, 25, "a2eventtriggered-periodic" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_M1ReportingTrigger_enum2value_1[] = { - 1, /* a2eventtriggered(1) */ - 2, /* a2eventtriggered-periodic(2) */ - 0 /* periodic(0) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_M1ReportingTrigger_specs_1 = { - asn_MAP_M1ReportingTrigger_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_M1ReportingTrigger_enum2value_1, /* N => "tag"; sorted by N */ - 3, /* Number of elements in the maps */ - 3, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_M1ReportingTrigger_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_M1ReportingTrigger = { - "M1ReportingTrigger", - "M1ReportingTrigger", - &asn_OP_NativeEnumerated, - asn_DEF_M1ReportingTrigger_tags_1, - sizeof(asn_DEF_M1ReportingTrigger_tags_1) - /sizeof(asn_DEF_M1ReportingTrigger_tags_1[0]), /* 1 */ - asn_DEF_M1ReportingTrigger_tags_1, /* Same as above */ - sizeof(asn_DEF_M1ReportingTrigger_tags_1) - /sizeof(asn_DEF_M1ReportingTrigger_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_M1ReportingTrigger_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_M1ReportingTrigger_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/M1ReportingTrigger.h b/e2sim/previous/ASN1c/M1ReportingTrigger.h deleted file mode 100644 index 0a77453..0000000 --- a/e2sim/previous/ASN1c/M1ReportingTrigger.h +++ /dev/null @@ -1,73 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _M1ReportingTrigger_H_ -#define _M1ReportingTrigger_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum M1ReportingTrigger { - M1ReportingTrigger_periodic = 0, - M1ReportingTrigger_a2eventtriggered = 1, - /* - * Enumeration is extensible - */ - M1ReportingTrigger_a2eventtriggered_periodic = 2 -} e_M1ReportingTrigger; - -/* M1ReportingTrigger */ -typedef long M1ReportingTrigger_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_M1ReportingTrigger_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_M1ReportingTrigger; -extern const asn_INTEGER_specifics_t asn_SPC_M1ReportingTrigger_specs_1; -asn_struct_free_f M1ReportingTrigger_free; -asn_struct_print_f M1ReportingTrigger_print; -asn_constr_check_f M1ReportingTrigger_constraint; -ber_type_decoder_f M1ReportingTrigger_decode_ber; -der_type_encoder_f M1ReportingTrigger_encode_der; -xer_type_decoder_f M1ReportingTrigger_decode_xer; -xer_type_encoder_f M1ReportingTrigger_encode_xer; -per_type_decoder_f M1ReportingTrigger_decode_uper; -per_type_encoder_f M1ReportingTrigger_encode_uper; -per_type_decoder_f M1ReportingTrigger_decode_aper; -per_type_encoder_f M1ReportingTrigger_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _M1ReportingTrigger_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/M1ThresholdEventA2.c b/e2sim/previous/ASN1c/M1ThresholdEventA2.c deleted file mode 100644 index 8036408..0000000 --- a/e2sim/previous/ASN1c/M1ThresholdEventA2.c +++ /dev/null @@ -1,81 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "M1ThresholdEventA2.h" - -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_M1ThresholdEventA2_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct M1ThresholdEventA2, measurementThreshold), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_MeasurementThresholdA2, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "measurementThreshold" - }, - { ATF_POINTER, 1, offsetof(struct M1ThresholdEventA2, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P160, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_M1ThresholdEventA2_oms_1[] = { 1 }; -static const ber_tlv_tag_t asn_DEF_M1ThresholdEventA2_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_M1ThresholdEventA2_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* measurementThreshold */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_M1ThresholdEventA2_specs_1 = { - sizeof(struct M1ThresholdEventA2), - offsetof(struct M1ThresholdEventA2, _asn_ctx), - asn_MAP_M1ThresholdEventA2_tag2el_1, - 2, /* Count of tags in the map */ - asn_MAP_M1ThresholdEventA2_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 2, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_M1ThresholdEventA2 = { - "M1ThresholdEventA2", - "M1ThresholdEventA2", - &asn_OP_SEQUENCE, - asn_DEF_M1ThresholdEventA2_tags_1, - sizeof(asn_DEF_M1ThresholdEventA2_tags_1) - /sizeof(asn_DEF_M1ThresholdEventA2_tags_1[0]), /* 1 */ - asn_DEF_M1ThresholdEventA2_tags_1, /* Same as above */ - sizeof(asn_DEF_M1ThresholdEventA2_tags_1) - /sizeof(asn_DEF_M1ThresholdEventA2_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_M1ThresholdEventA2_1, - 2, /* Elements count */ - &asn_SPC_M1ThresholdEventA2_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/M1ThresholdEventA2.h b/e2sim/previous/ASN1c/M1ThresholdEventA2.h deleted file mode 100644 index 8f9c904..0000000 --- a/e2sim/previous/ASN1c/M1ThresholdEventA2.h +++ /dev/null @@ -1,66 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _M1ThresholdEventA2_H_ -#define _M1ThresholdEventA2_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "MeasurementThresholdA2.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* M1ThresholdEventA2 */ -typedef struct M1ThresholdEventA2 { - MeasurementThresholdA2_t measurementThreshold; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} M1ThresholdEventA2_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_M1ThresholdEventA2; -extern asn_SEQUENCE_specifics_t asn_SPC_M1ThresholdEventA2_specs_1; -extern asn_TYPE_member_t asn_MBR_M1ThresholdEventA2_1[2]; - -#ifdef __cplusplus -} -#endif - -#endif /* _M1ThresholdEventA2_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/M3Configuration.c b/e2sim/previous/ASN1c/M3Configuration.c deleted file mode 100644 index 9819dbe..0000000 --- a/e2sim/previous/ASN1c/M3Configuration.c +++ /dev/null @@ -1,81 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "M3Configuration.h" - -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_M3Configuration_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct M3Configuration, m3period), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_M3period, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "m3period" - }, - { ATF_POINTER, 1, offsetof(struct M3Configuration, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P161, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_M3Configuration_oms_1[] = { 1 }; -static const ber_tlv_tag_t asn_DEF_M3Configuration_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_M3Configuration_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* m3period */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_M3Configuration_specs_1 = { - sizeof(struct M3Configuration), - offsetof(struct M3Configuration, _asn_ctx), - asn_MAP_M3Configuration_tag2el_1, - 2, /* Count of tags in the map */ - asn_MAP_M3Configuration_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 2, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_M3Configuration = { - "M3Configuration", - "M3Configuration", - &asn_OP_SEQUENCE, - asn_DEF_M3Configuration_tags_1, - sizeof(asn_DEF_M3Configuration_tags_1) - /sizeof(asn_DEF_M3Configuration_tags_1[0]), /* 1 */ - asn_DEF_M3Configuration_tags_1, /* Same as above */ - sizeof(asn_DEF_M3Configuration_tags_1) - /sizeof(asn_DEF_M3Configuration_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_M3Configuration_1, - 2, /* Elements count */ - &asn_SPC_M3Configuration_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/M3Configuration.h b/e2sim/previous/ASN1c/M3Configuration.h deleted file mode 100644 index 0487171..0000000 --- a/e2sim/previous/ASN1c/M3Configuration.h +++ /dev/null @@ -1,66 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _M3Configuration_H_ -#define _M3Configuration_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "M3period.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* M3Configuration */ -typedef struct M3Configuration { - M3period_t m3period; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} M3Configuration_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_M3Configuration; -extern asn_SEQUENCE_specifics_t asn_SPC_M3Configuration_specs_1; -extern asn_TYPE_member_t asn_MBR_M3Configuration_1[2]; - -#ifdef __cplusplus -} -#endif - -#endif /* _M3Configuration_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/M3period.c b/e2sim/previous/ASN1c/M3period.c deleted file mode 100644 index 4e081da..0000000 --- a/e2sim/previous/ASN1c/M3period.c +++ /dev/null @@ -1,75 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "M3period.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_M3period_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 2 } /* (0..2,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_M3period_value2enum_1[] = { - { 0, 5, "ms100" }, - { 1, 6, "ms1000" }, - { 2, 7, "ms10000" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_M3period_enum2value_1[] = { - 0, /* ms100(0) */ - 1, /* ms1000(1) */ - 2 /* ms10000(2) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_M3period_specs_1 = { - asn_MAP_M3period_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_M3period_enum2value_1, /* N => "tag"; sorted by N */ - 3, /* Number of elements in the maps */ - 4, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_M3period_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_M3period = { - "M3period", - "M3period", - &asn_OP_NativeEnumerated, - asn_DEF_M3period_tags_1, - sizeof(asn_DEF_M3period_tags_1) - /sizeof(asn_DEF_M3period_tags_1[0]), /* 1 */ - asn_DEF_M3period_tags_1, /* Same as above */ - sizeof(asn_DEF_M3period_tags_1) - /sizeof(asn_DEF_M3period_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_M3period_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_M3period_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/M3period.h b/e2sim/previous/ASN1c/M3period.h deleted file mode 100644 index 7b27f14..0000000 --- a/e2sim/previous/ASN1c/M3period.h +++ /dev/null @@ -1,73 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _M3period_H_ -#define _M3period_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum M3period { - M3period_ms100 = 0, - M3period_ms1000 = 1, - M3period_ms10000 = 2 - /* - * Enumeration is extensible - */ -} e_M3period; - -/* M3period */ -typedef long M3period_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_M3period_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_M3period; -extern const asn_INTEGER_specifics_t asn_SPC_M3period_specs_1; -asn_struct_free_f M3period_free; -asn_struct_print_f M3period_print; -asn_constr_check_f M3period_constraint; -ber_type_decoder_f M3period_decode_ber; -der_type_encoder_f M3period_encode_der; -xer_type_decoder_f M3period_decode_xer; -xer_type_encoder_f M3period_encode_xer; -per_type_decoder_f M3period_decode_uper; -per_type_encoder_f M3period_encode_uper; -per_type_decoder_f M3period_decode_aper; -per_type_encoder_f M3period_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _M3period_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/M4Configuration.c b/e2sim/previous/ASN1c/M4Configuration.c deleted file mode 100644 index 5d9ddf4..0000000 --- a/e2sim/previous/ASN1c/M4Configuration.c +++ /dev/null @@ -1,91 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "M4Configuration.h" - -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_M4Configuration_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct M4Configuration, m4period), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_M4period, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "m4period" - }, - { ATF_NOFLAGS, 0, offsetof(struct M4Configuration, m4_links_to_log), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Links_to_log, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "m4-links-to-log" - }, - { ATF_POINTER, 1, offsetof(struct M4Configuration, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P162, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_M4Configuration_oms_1[] = { 2 }; -static const ber_tlv_tag_t asn_DEF_M4Configuration_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_M4Configuration_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* m4period */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* m4-links-to-log */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_M4Configuration_specs_1 = { - sizeof(struct M4Configuration), - offsetof(struct M4Configuration, _asn_ctx), - asn_MAP_M4Configuration_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_M4Configuration_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_M4Configuration = { - "M4Configuration", - "M4Configuration", - &asn_OP_SEQUENCE, - asn_DEF_M4Configuration_tags_1, - sizeof(asn_DEF_M4Configuration_tags_1) - /sizeof(asn_DEF_M4Configuration_tags_1[0]), /* 1 */ - asn_DEF_M4Configuration_tags_1, /* Same as above */ - sizeof(asn_DEF_M4Configuration_tags_1) - /sizeof(asn_DEF_M4Configuration_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_M4Configuration_1, - 3, /* Elements count */ - &asn_SPC_M4Configuration_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/M4Configuration.h b/e2sim/previous/ASN1c/M4Configuration.h deleted file mode 100644 index 7b354e2..0000000 --- a/e2sim/previous/ASN1c/M4Configuration.h +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _M4Configuration_H_ -#define _M4Configuration_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "M4period.h" -#include "Links-to-log.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* M4Configuration */ -typedef struct M4Configuration { - M4period_t m4period; - Links_to_log_t m4_links_to_log; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} M4Configuration_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_M4Configuration; -extern asn_SEQUENCE_specifics_t asn_SPC_M4Configuration_specs_1; -extern asn_TYPE_member_t asn_MBR_M4Configuration_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _M4Configuration_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/M4period.c b/e2sim/previous/ASN1c/M4period.c deleted file mode 100644 index 14ee261..0000000 --- a/e2sim/previous/ASN1c/M4period.c +++ /dev/null @@ -1,79 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "M4period.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_M4period_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 4 } /* (0..4,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_M4period_value2enum_1[] = { - { 0, 6, "ms1024" }, - { 1, 6, "ms2048" }, - { 2, 6, "ms5120" }, - { 3, 7, "ms10240" }, - { 4, 4, "min1" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_M4period_enum2value_1[] = { - 4, /* min1(4) */ - 0, /* ms1024(0) */ - 3, /* ms10240(3) */ - 1, /* ms2048(1) */ - 2 /* ms5120(2) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_M4period_specs_1 = { - asn_MAP_M4period_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_M4period_enum2value_1, /* N => "tag"; sorted by N */ - 5, /* Number of elements in the maps */ - 6, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_M4period_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_M4period = { - "M4period", - "M4period", - &asn_OP_NativeEnumerated, - asn_DEF_M4period_tags_1, - sizeof(asn_DEF_M4period_tags_1) - /sizeof(asn_DEF_M4period_tags_1[0]), /* 1 */ - asn_DEF_M4period_tags_1, /* Same as above */ - sizeof(asn_DEF_M4period_tags_1) - /sizeof(asn_DEF_M4period_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_M4period_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_M4period_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/M4period.h b/e2sim/previous/ASN1c/M4period.h deleted file mode 100644 index 2f83692..0000000 --- a/e2sim/previous/ASN1c/M4period.h +++ /dev/null @@ -1,75 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _M4period_H_ -#define _M4period_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum M4period { - M4period_ms1024 = 0, - M4period_ms2048 = 1, - M4period_ms5120 = 2, - M4period_ms10240 = 3, - M4period_min1 = 4 - /* - * Enumeration is extensible - */ -} e_M4period; - -/* M4period */ -typedef long M4period_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_M4period_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_M4period; -extern const asn_INTEGER_specifics_t asn_SPC_M4period_specs_1; -asn_struct_free_f M4period_free; -asn_struct_print_f M4period_print; -asn_constr_check_f M4period_constraint; -ber_type_decoder_f M4period_decode_ber; -der_type_encoder_f M4period_encode_der; -xer_type_decoder_f M4period_decode_xer; -xer_type_encoder_f M4period_encode_xer; -per_type_decoder_f M4period_decode_uper; -per_type_encoder_f M4period_encode_uper; -per_type_decoder_f M4period_decode_aper; -per_type_encoder_f M4period_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _M4period_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/M5Configuration.c b/e2sim/previous/ASN1c/M5Configuration.c deleted file mode 100644 index 0d444b3..0000000 --- a/e2sim/previous/ASN1c/M5Configuration.c +++ /dev/null @@ -1,91 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "M5Configuration.h" - -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_M5Configuration_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct M5Configuration, m5period), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_M5period, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "m5period" - }, - { ATF_NOFLAGS, 0, offsetof(struct M5Configuration, m5_links_to_log), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Links_to_log, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "m5-links-to-log" - }, - { ATF_POINTER, 1, offsetof(struct M5Configuration, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P163, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_M5Configuration_oms_1[] = { 2 }; -static const ber_tlv_tag_t asn_DEF_M5Configuration_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_M5Configuration_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* m5period */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* m5-links-to-log */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_M5Configuration_specs_1 = { - sizeof(struct M5Configuration), - offsetof(struct M5Configuration, _asn_ctx), - asn_MAP_M5Configuration_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_M5Configuration_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_M5Configuration = { - "M5Configuration", - "M5Configuration", - &asn_OP_SEQUENCE, - asn_DEF_M5Configuration_tags_1, - sizeof(asn_DEF_M5Configuration_tags_1) - /sizeof(asn_DEF_M5Configuration_tags_1[0]), /* 1 */ - asn_DEF_M5Configuration_tags_1, /* Same as above */ - sizeof(asn_DEF_M5Configuration_tags_1) - /sizeof(asn_DEF_M5Configuration_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_M5Configuration_1, - 3, /* Elements count */ - &asn_SPC_M5Configuration_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/M5Configuration.h b/e2sim/previous/ASN1c/M5Configuration.h deleted file mode 100644 index 1f52bf5..0000000 --- a/e2sim/previous/ASN1c/M5Configuration.h +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _M5Configuration_H_ -#define _M5Configuration_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "M5period.h" -#include "Links-to-log.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* M5Configuration */ -typedef struct M5Configuration { - M5period_t m5period; - Links_to_log_t m5_links_to_log; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} M5Configuration_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_M5Configuration; -extern asn_SEQUENCE_specifics_t asn_SPC_M5Configuration_specs_1; -extern asn_TYPE_member_t asn_MBR_M5Configuration_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _M5Configuration_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/M5period.c b/e2sim/previous/ASN1c/M5period.c deleted file mode 100644 index 37a6c07..0000000 --- a/e2sim/previous/ASN1c/M5period.c +++ /dev/null @@ -1,79 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "M5period.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_M5period_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 4 } /* (0..4,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_M5period_value2enum_1[] = { - { 0, 6, "ms1024" }, - { 1, 6, "ms2048" }, - { 2, 6, "ms5120" }, - { 3, 7, "ms10240" }, - { 4, 4, "min1" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_M5period_enum2value_1[] = { - 4, /* min1(4) */ - 0, /* ms1024(0) */ - 3, /* ms10240(3) */ - 1, /* ms2048(1) */ - 2 /* ms5120(2) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_M5period_specs_1 = { - asn_MAP_M5period_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_M5period_enum2value_1, /* N => "tag"; sorted by N */ - 5, /* Number of elements in the maps */ - 6, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_M5period_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_M5period = { - "M5period", - "M5period", - &asn_OP_NativeEnumerated, - asn_DEF_M5period_tags_1, - sizeof(asn_DEF_M5period_tags_1) - /sizeof(asn_DEF_M5period_tags_1[0]), /* 1 */ - asn_DEF_M5period_tags_1, /* Same as above */ - sizeof(asn_DEF_M5period_tags_1) - /sizeof(asn_DEF_M5period_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_M5period_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_M5period_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/M5period.h b/e2sim/previous/ASN1c/M5period.h deleted file mode 100644 index 8c13389..0000000 --- a/e2sim/previous/ASN1c/M5period.h +++ /dev/null @@ -1,75 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _M5period_H_ -#define _M5period_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum M5period { - M5period_ms1024 = 0, - M5period_ms2048 = 1, - M5period_ms5120 = 2, - M5period_ms10240 = 3, - M5period_min1 = 4 - /* - * Enumeration is extensible - */ -} e_M5period; - -/* M5period */ -typedef long M5period_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_M5period_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_M5period; -extern const asn_INTEGER_specifics_t asn_SPC_M5period_specs_1; -asn_struct_free_f M5period_free; -asn_struct_print_f M5period_print; -asn_constr_check_f M5period_constraint; -ber_type_decoder_f M5period_decode_ber; -der_type_encoder_f M5period_encode_der; -xer_type_decoder_f M5period_decode_xer; -xer_type_encoder_f M5period_encode_xer; -per_type_decoder_f M5period_decode_uper; -per_type_encoder_f M5period_encode_uper; -per_type_decoder_f M5period_decode_aper; -per_type_encoder_f M5period_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _M5period_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/M6Configuration.c b/e2sim/previous/ASN1c/M6Configuration.c deleted file mode 100644 index 51853a8..0000000 --- a/e2sim/previous/ASN1c/M6Configuration.c +++ /dev/null @@ -1,101 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "M6Configuration.h" - -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_M6Configuration_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct M6Configuration, m6report_interval), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_M6report_interval, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "m6report-interval" - }, - { ATF_POINTER, 1, offsetof(struct M6Configuration, m6delay_threshold), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_M6delay_threshold, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "m6delay-threshold" - }, - { ATF_NOFLAGS, 0, offsetof(struct M6Configuration, m6_links_to_log), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Links_to_log, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "m6-links-to-log" - }, - { ATF_POINTER, 1, offsetof(struct M6Configuration, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P164, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_M6Configuration_oms_1[] = { 1, 3 }; -static const ber_tlv_tag_t asn_DEF_M6Configuration_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_M6Configuration_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* m6report-interval */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* m6delay-threshold */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* m6-links-to-log */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_M6Configuration_specs_1 = { - sizeof(struct M6Configuration), - offsetof(struct M6Configuration, _asn_ctx), - asn_MAP_M6Configuration_tag2el_1, - 4, /* Count of tags in the map */ - asn_MAP_M6Configuration_oms_1, /* Optional members */ - 2, 0, /* Root/Additions */ - 4, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_M6Configuration = { - "M6Configuration", - "M6Configuration", - &asn_OP_SEQUENCE, - asn_DEF_M6Configuration_tags_1, - sizeof(asn_DEF_M6Configuration_tags_1) - /sizeof(asn_DEF_M6Configuration_tags_1[0]), /* 1 */ - asn_DEF_M6Configuration_tags_1, /* Same as above */ - sizeof(asn_DEF_M6Configuration_tags_1) - /sizeof(asn_DEF_M6Configuration_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_M6Configuration_1, - 4, /* Elements count */ - &asn_SPC_M6Configuration_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/M6Configuration.h b/e2sim/previous/ASN1c/M6Configuration.h deleted file mode 100644 index ca3161e..0000000 --- a/e2sim/previous/ASN1c/M6Configuration.h +++ /dev/null @@ -1,70 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _M6Configuration_H_ -#define _M6Configuration_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "M6report-interval.h" -#include "M6delay-threshold.h" -#include "Links-to-log.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* M6Configuration */ -typedef struct M6Configuration { - M6report_interval_t m6report_interval; - M6delay_threshold_t *m6delay_threshold; /* OPTIONAL */ - Links_to_log_t m6_links_to_log; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} M6Configuration_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_M6Configuration; -extern asn_SEQUENCE_specifics_t asn_SPC_M6Configuration_specs_1; -extern asn_TYPE_member_t asn_MBR_M6Configuration_1[4]; - -#ifdef __cplusplus -} -#endif - -#endif /* _M6Configuration_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/M6delay-threshold.c b/e2sim/previous/ASN1c/M6delay-threshold.c deleted file mode 100644 index bca61f2..0000000 --- a/e2sim/previous/ASN1c/M6delay-threshold.c +++ /dev/null @@ -1,93 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "M6delay-threshold.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_M6delay_threshold_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 4, 4, 0, 11 } /* (0..11,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_M6delay_threshold_value2enum_1[] = { - { 0, 4, "ms30" }, - { 1, 4, "ms40" }, - { 2, 4, "ms50" }, - { 3, 4, "ms60" }, - { 4, 4, "ms70" }, - { 5, 4, "ms80" }, - { 6, 4, "ms90" }, - { 7, 5, "ms100" }, - { 8, 5, "ms150" }, - { 9, 5, "ms300" }, - { 10, 5, "ms500" }, - { 11, 5, "ms750" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_M6delay_threshold_enum2value_1[] = { - 7, /* ms100(7) */ - 8, /* ms150(8) */ - 0, /* ms30(0) */ - 9, /* ms300(9) */ - 1, /* ms40(1) */ - 2, /* ms50(2) */ - 10, /* ms500(10) */ - 3, /* ms60(3) */ - 4, /* ms70(4) */ - 11, /* ms750(11) */ - 5, /* ms80(5) */ - 6 /* ms90(6) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_M6delay_threshold_specs_1 = { - asn_MAP_M6delay_threshold_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_M6delay_threshold_enum2value_1, /* N => "tag"; sorted by N */ - 12, /* Number of elements in the maps */ - 13, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_M6delay_threshold_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_M6delay_threshold = { - "M6delay-threshold", - "M6delay-threshold", - &asn_OP_NativeEnumerated, - asn_DEF_M6delay_threshold_tags_1, - sizeof(asn_DEF_M6delay_threshold_tags_1) - /sizeof(asn_DEF_M6delay_threshold_tags_1[0]), /* 1 */ - asn_DEF_M6delay_threshold_tags_1, /* Same as above */ - sizeof(asn_DEF_M6delay_threshold_tags_1) - /sizeof(asn_DEF_M6delay_threshold_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_M6delay_threshold_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_M6delay_threshold_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/M6delay-threshold.h b/e2sim/previous/ASN1c/M6delay-threshold.h deleted file mode 100644 index 7cfc86b..0000000 --- a/e2sim/previous/ASN1c/M6delay-threshold.h +++ /dev/null @@ -1,82 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _M6delay_threshold_H_ -#define _M6delay_threshold_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum M6delay_threshold { - M6delay_threshold_ms30 = 0, - M6delay_threshold_ms40 = 1, - M6delay_threshold_ms50 = 2, - M6delay_threshold_ms60 = 3, - M6delay_threshold_ms70 = 4, - M6delay_threshold_ms80 = 5, - M6delay_threshold_ms90 = 6, - M6delay_threshold_ms100 = 7, - M6delay_threshold_ms150 = 8, - M6delay_threshold_ms300 = 9, - M6delay_threshold_ms500 = 10, - M6delay_threshold_ms750 = 11 - /* - * Enumeration is extensible - */ -} e_M6delay_threshold; - -/* M6delay-threshold */ -typedef long M6delay_threshold_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_M6delay_threshold_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_M6delay_threshold; -extern const asn_INTEGER_specifics_t asn_SPC_M6delay_threshold_specs_1; -asn_struct_free_f M6delay_threshold_free; -asn_struct_print_f M6delay_threshold_print; -asn_constr_check_f M6delay_threshold_constraint; -ber_type_decoder_f M6delay_threshold_decode_ber; -der_type_encoder_f M6delay_threshold_encode_der; -xer_type_decoder_f M6delay_threshold_decode_xer; -xer_type_encoder_f M6delay_threshold_encode_xer; -per_type_decoder_f M6delay_threshold_decode_uper; -per_type_encoder_f M6delay_threshold_encode_uper; -per_type_decoder_f M6delay_threshold_decode_aper; -per_type_encoder_f M6delay_threshold_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _M6delay_threshold_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/M6report-interval.c b/e2sim/previous/ASN1c/M6report-interval.c deleted file mode 100644 index e4aacba..0000000 --- a/e2sim/previous/ASN1c/M6report-interval.c +++ /dev/null @@ -1,77 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "M6report-interval.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_M6report_interval_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 3 } /* (0..3,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_M6report_interval_value2enum_1[] = { - { 0, 6, "ms1024" }, - { 1, 6, "ms2048" }, - { 2, 6, "ms5120" }, - { 3, 7, "ms10240" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_M6report_interval_enum2value_1[] = { - 0, /* ms1024(0) */ - 3, /* ms10240(3) */ - 1, /* ms2048(1) */ - 2 /* ms5120(2) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_M6report_interval_specs_1 = { - asn_MAP_M6report_interval_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_M6report_interval_enum2value_1, /* N => "tag"; sorted by N */ - 4, /* Number of elements in the maps */ - 5, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_M6report_interval_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_M6report_interval = { - "M6report-interval", - "M6report-interval", - &asn_OP_NativeEnumerated, - asn_DEF_M6report_interval_tags_1, - sizeof(asn_DEF_M6report_interval_tags_1) - /sizeof(asn_DEF_M6report_interval_tags_1[0]), /* 1 */ - asn_DEF_M6report_interval_tags_1, /* Same as above */ - sizeof(asn_DEF_M6report_interval_tags_1) - /sizeof(asn_DEF_M6report_interval_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_M6report_interval_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_M6report_interval_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/M6report-interval.h b/e2sim/previous/ASN1c/M6report-interval.h deleted file mode 100644 index 7e4e908..0000000 --- a/e2sim/previous/ASN1c/M6report-interval.h +++ /dev/null @@ -1,74 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _M6report_interval_H_ -#define _M6report_interval_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum M6report_interval { - M6report_interval_ms1024 = 0, - M6report_interval_ms2048 = 1, - M6report_interval_ms5120 = 2, - M6report_interval_ms10240 = 3 - /* - * Enumeration is extensible - */ -} e_M6report_interval; - -/* M6report-interval */ -typedef long M6report_interval_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_M6report_interval_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_M6report_interval; -extern const asn_INTEGER_specifics_t asn_SPC_M6report_interval_specs_1; -asn_struct_free_f M6report_interval_free; -asn_struct_print_f M6report_interval_print; -asn_constr_check_f M6report_interval_constraint; -ber_type_decoder_f M6report_interval_decode_ber; -der_type_encoder_f M6report_interval_encode_der; -xer_type_decoder_f M6report_interval_decode_xer; -xer_type_encoder_f M6report_interval_encode_xer; -per_type_decoder_f M6report_interval_decode_uper; -per_type_encoder_f M6report_interval_encode_uper; -per_type_decoder_f M6report_interval_decode_aper; -per_type_encoder_f M6report_interval_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _M6report_interval_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/M7Configuration.c b/e2sim/previous/ASN1c/M7Configuration.c deleted file mode 100644 index b408998..0000000 --- a/e2sim/previous/ASN1c/M7Configuration.c +++ /dev/null @@ -1,91 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "M7Configuration.h" - -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_M7Configuration_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct M7Configuration, m7period), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_M7period, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "m7period" - }, - { ATF_NOFLAGS, 0, offsetof(struct M7Configuration, m7_links_to_log), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Links_to_log, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "m7-links-to-log" - }, - { ATF_POINTER, 1, offsetof(struct M7Configuration, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P165, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_M7Configuration_oms_1[] = { 2 }; -static const ber_tlv_tag_t asn_DEF_M7Configuration_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_M7Configuration_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* m7period */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* m7-links-to-log */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_M7Configuration_specs_1 = { - sizeof(struct M7Configuration), - offsetof(struct M7Configuration, _asn_ctx), - asn_MAP_M7Configuration_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_M7Configuration_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_M7Configuration = { - "M7Configuration", - "M7Configuration", - &asn_OP_SEQUENCE, - asn_DEF_M7Configuration_tags_1, - sizeof(asn_DEF_M7Configuration_tags_1) - /sizeof(asn_DEF_M7Configuration_tags_1[0]), /* 1 */ - asn_DEF_M7Configuration_tags_1, /* Same as above */ - sizeof(asn_DEF_M7Configuration_tags_1) - /sizeof(asn_DEF_M7Configuration_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_M7Configuration_1, - 3, /* Elements count */ - &asn_SPC_M7Configuration_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/M7Configuration.h b/e2sim/previous/ASN1c/M7Configuration.h deleted file mode 100644 index 23afc53..0000000 --- a/e2sim/previous/ASN1c/M7Configuration.h +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _M7Configuration_H_ -#define _M7Configuration_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "M7period.h" -#include "Links-to-log.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* M7Configuration */ -typedef struct M7Configuration { - M7period_t m7period; - Links_to_log_t m7_links_to_log; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} M7Configuration_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_M7Configuration; -extern asn_SEQUENCE_specifics_t asn_SPC_M7Configuration_specs_1; -extern asn_TYPE_member_t asn_MBR_M7Configuration_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _M7Configuration_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/M7period.c b/e2sim/previous/ASN1c/M7period.c deleted file mode 100644 index 157a47f..0000000 --- a/e2sim/previous/ASN1c/M7period.c +++ /dev/null @@ -1,79 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "M7period.h" - -int -M7period_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 1 && value <= 60)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using NativeInteger, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_M7period_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 6, 6, 1, 60 } /* (1..60,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_M7period_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_M7period = { - "M7period", - "M7period", - &asn_OP_NativeInteger, - asn_DEF_M7period_tags_1, - sizeof(asn_DEF_M7period_tags_1) - /sizeof(asn_DEF_M7period_tags_1[0]), /* 1 */ - asn_DEF_M7period_tags_1, /* Same as above */ - sizeof(asn_DEF_M7period_tags_1) - /sizeof(asn_DEF_M7period_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_M7period_constr_1, M7period_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/previous/ASN1c/M7period.h b/e2sim/previous/ASN1c/M7period.h deleted file mode 100644 index 2aa3055..0000000 --- a/e2sim/previous/ASN1c/M7period.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _M7period_H_ -#define _M7period_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeInteger.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* M7period */ -typedef long M7period_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_M7period_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_M7period; -asn_struct_free_f M7period_free; -asn_struct_print_f M7period_print; -asn_constr_check_f M7period_constraint; -ber_type_decoder_f M7period_decode_ber; -der_type_encoder_f M7period_encode_der; -xer_type_decoder_f M7period_decode_xer; -xer_type_encoder_f M7period_encode_xer; -per_type_decoder_f M7period_decode_uper; -per_type_encoder_f M7period_encode_uper; -per_type_decoder_f M7period_decode_aper; -per_type_encoder_f M7period_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _M7period_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/MBMS-Service-Area-Identity-List.c b/e2sim/previous/ASN1c/MBMS-Service-Area-Identity-List.c deleted file mode 100644 index f0d809a..0000000 --- a/e2sim/previous/ASN1c/MBMS-Service-Area-Identity-List.c +++ /dev/null @@ -1,67 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "MBMS-Service-Area-Identity-List.h" - -asn_per_constraints_t asn_PER_type_MBMS_Service_Area_Identity_List_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 8, 8, 1, 256 } /* (SIZE(1..256)) */, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_MBMS_Service_Area_Identity_List_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), - 0, - &asn_DEF_MBMS_Service_Area_Identity, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_MBMS_Service_Area_Identity_List_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_MBMS_Service_Area_Identity_List_specs_1 = { - sizeof(struct MBMS_Service_Area_Identity_List), - offsetof(struct MBMS_Service_Area_Identity_List, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_MBMS_Service_Area_Identity_List = { - "MBMS-Service-Area-Identity-List", - "MBMS-Service-Area-Identity-List", - &asn_OP_SEQUENCE_OF, - asn_DEF_MBMS_Service_Area_Identity_List_tags_1, - sizeof(asn_DEF_MBMS_Service_Area_Identity_List_tags_1) - /sizeof(asn_DEF_MBMS_Service_Area_Identity_List_tags_1[0]), /* 1 */ - asn_DEF_MBMS_Service_Area_Identity_List_tags_1, /* Same as above */ - sizeof(asn_DEF_MBMS_Service_Area_Identity_List_tags_1) - /sizeof(asn_DEF_MBMS_Service_Area_Identity_List_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_MBMS_Service_Area_Identity_List_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_MBMS_Service_Area_Identity_List_1, - 1, /* Single element */ - &asn_SPC_MBMS_Service_Area_Identity_List_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/MBMS-Service-Area-Identity-List.h b/e2sim/previous/ASN1c/MBMS-Service-Area-Identity-List.h deleted file mode 100644 index a902266..0000000 --- a/e2sim/previous/ASN1c/MBMS-Service-Area-Identity-List.h +++ /dev/null @@ -1,60 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _MBMS_Service_Area_Identity_List_H_ -#define _MBMS_Service_Area_Identity_List_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "MBMS-Service-Area-Identity.h" -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* MBMS-Service-Area-Identity-List */ -typedef struct MBMS_Service_Area_Identity_List { - A_SEQUENCE_OF(MBMS_Service_Area_Identity_t) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} MBMS_Service_Area_Identity_List_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_MBMS_Service_Area_Identity_List; -extern asn_SET_OF_specifics_t asn_SPC_MBMS_Service_Area_Identity_List_specs_1; -extern asn_TYPE_member_t asn_MBR_MBMS_Service_Area_Identity_List_1[1]; -extern asn_per_constraints_t asn_PER_type_MBMS_Service_Area_Identity_List_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _MBMS_Service_Area_Identity_List_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/MBMS-Service-Area-Identity.c b/e2sim/previous/ASN1c/MBMS-Service-Area-Identity.c deleted file mode 100644 index ea0ac52..0000000 --- a/e2sim/previous/ASN1c/MBMS-Service-Area-Identity.c +++ /dev/null @@ -1,80 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "MBMS-Service-Area-Identity.h" - -int -MBMS_Service_Area_Identity_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - size = st->size; - - if((size == 2)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using OCTET_STRING, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_MBMS_Service_Area_Identity_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 0, 0, 2, 2 } /* (SIZE(2..2)) */, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_MBMS_Service_Area_Identity_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_MBMS_Service_Area_Identity = { - "MBMS-Service-Area-Identity", - "MBMS-Service-Area-Identity", - &asn_OP_OCTET_STRING, - asn_DEF_MBMS_Service_Area_Identity_tags_1, - sizeof(asn_DEF_MBMS_Service_Area_Identity_tags_1) - /sizeof(asn_DEF_MBMS_Service_Area_Identity_tags_1[0]), /* 1 */ - asn_DEF_MBMS_Service_Area_Identity_tags_1, /* Same as above */ - sizeof(asn_DEF_MBMS_Service_Area_Identity_tags_1) - /sizeof(asn_DEF_MBMS_Service_Area_Identity_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_MBMS_Service_Area_Identity_constr_1, MBMS_Service_Area_Identity_constraint }, - 0, 0, /* No members */ - &asn_SPC_OCTET_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/MBMS-Service-Area-Identity.h b/e2sim/previous/ASN1c/MBMS-Service-Area-Identity.h deleted file mode 100644 index c2b3aa0..0000000 --- a/e2sim/previous/ASN1c/MBMS-Service-Area-Identity.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _MBMS_Service_Area_Identity_H_ -#define _MBMS_Service_Area_Identity_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "OCTET_STRING.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* MBMS-Service-Area-Identity */ -typedef OCTET_STRING_t MBMS_Service_Area_Identity_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_MBMS_Service_Area_Identity_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_MBMS_Service_Area_Identity; -asn_struct_free_f MBMS_Service_Area_Identity_free; -asn_struct_print_f MBMS_Service_Area_Identity_print; -asn_constr_check_f MBMS_Service_Area_Identity_constraint; -ber_type_decoder_f MBMS_Service_Area_Identity_decode_ber; -der_type_encoder_f MBMS_Service_Area_Identity_encode_der; -xer_type_decoder_f MBMS_Service_Area_Identity_decode_xer; -xer_type_encoder_f MBMS_Service_Area_Identity_encode_xer; -per_type_decoder_f MBMS_Service_Area_Identity_decode_uper; -per_type_encoder_f MBMS_Service_Area_Identity_encode_uper; -per_type_decoder_f MBMS_Service_Area_Identity_decode_aper; -per_type_encoder_f MBMS_Service_Area_Identity_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _MBMS_Service_Area_Identity_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/MBSFN-Subframe-Info.c b/e2sim/previous/ASN1c/MBSFN-Subframe-Info.c deleted file mode 100644 index fb6feb8..0000000 --- a/e2sim/previous/ASN1c/MBSFN-Subframe-Info.c +++ /dev/null @@ -1,101 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "MBSFN-Subframe-Info.h" - -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_MBSFN_Subframe_Info_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct MBSFN_Subframe_Info, radioframeAllocationPeriod), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RadioframeAllocationPeriod, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "radioframeAllocationPeriod" - }, - { ATF_NOFLAGS, 0, offsetof(struct MBSFN_Subframe_Info, radioframeAllocationOffset), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RadioframeAllocationOffset, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "radioframeAllocationOffset" - }, - { ATF_NOFLAGS, 0, offsetof(struct MBSFN_Subframe_Info, subframeAllocation), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_SubframeAllocation, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "subframeAllocation" - }, - { ATF_POINTER, 1, offsetof(struct MBSFN_Subframe_Info, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P168, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_MBSFN_Subframe_Info_oms_1[] = { 3 }; -static const ber_tlv_tag_t asn_DEF_MBSFN_Subframe_Info_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_MBSFN_Subframe_Info_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* radioframeAllocationPeriod */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* radioframeAllocationOffset */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* subframeAllocation */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_MBSFN_Subframe_Info_specs_1 = { - sizeof(struct MBSFN_Subframe_Info), - offsetof(struct MBSFN_Subframe_Info, _asn_ctx), - asn_MAP_MBSFN_Subframe_Info_tag2el_1, - 4, /* Count of tags in the map */ - asn_MAP_MBSFN_Subframe_Info_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 4, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_MBSFN_Subframe_Info = { - "MBSFN-Subframe-Info", - "MBSFN-Subframe-Info", - &asn_OP_SEQUENCE, - asn_DEF_MBSFN_Subframe_Info_tags_1, - sizeof(asn_DEF_MBSFN_Subframe_Info_tags_1) - /sizeof(asn_DEF_MBSFN_Subframe_Info_tags_1[0]), /* 1 */ - asn_DEF_MBSFN_Subframe_Info_tags_1, /* Same as above */ - sizeof(asn_DEF_MBSFN_Subframe_Info_tags_1) - /sizeof(asn_DEF_MBSFN_Subframe_Info_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_MBSFN_Subframe_Info_1, - 4, /* Elements count */ - &asn_SPC_MBSFN_Subframe_Info_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/MBSFN-Subframe-Info.h b/e2sim/previous/ASN1c/MBSFN-Subframe-Info.h deleted file mode 100644 index efabe57..0000000 --- a/e2sim/previous/ASN1c/MBSFN-Subframe-Info.h +++ /dev/null @@ -1,70 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _MBSFN_Subframe_Info_H_ -#define _MBSFN_Subframe_Info_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "RadioframeAllocationPeriod.h" -#include "RadioframeAllocationOffset.h" -#include "SubframeAllocation.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* MBSFN-Subframe-Info */ -typedef struct MBSFN_Subframe_Info { - RadioframeAllocationPeriod_t radioframeAllocationPeriod; - RadioframeAllocationOffset_t radioframeAllocationOffset; - SubframeAllocation_t subframeAllocation; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} MBSFN_Subframe_Info_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_MBSFN_Subframe_Info; -extern asn_SEQUENCE_specifics_t asn_SPC_MBSFN_Subframe_Info_specs_1; -extern asn_TYPE_member_t asn_MBR_MBSFN_Subframe_Info_1[4]; - -#ifdef __cplusplus -} -#endif - -#endif /* _MBSFN_Subframe_Info_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/MBSFN-Subframe-Infolist.c b/e2sim/previous/ASN1c/MBSFN-Subframe-Infolist.c deleted file mode 100644 index 73ec9b3..0000000 --- a/e2sim/previous/ASN1c/MBSFN-Subframe-Infolist.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "MBSFN-Subframe-Infolist.h" - -#include "MBSFN-Subframe-Info.h" -asn_per_constraints_t asn_PER_type_MBSFN_Subframe_Infolist_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 3, 3, 1, 8 } /* (SIZE(1..8)) */, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_MBSFN_Subframe_Infolist_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_MBSFN_Subframe_Info, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_MBSFN_Subframe_Infolist_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_MBSFN_Subframe_Infolist_specs_1 = { - sizeof(struct MBSFN_Subframe_Infolist), - offsetof(struct MBSFN_Subframe_Infolist, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_MBSFN_Subframe_Infolist = { - "MBSFN-Subframe-Infolist", - "MBSFN-Subframe-Infolist", - &asn_OP_SEQUENCE_OF, - asn_DEF_MBSFN_Subframe_Infolist_tags_1, - sizeof(asn_DEF_MBSFN_Subframe_Infolist_tags_1) - /sizeof(asn_DEF_MBSFN_Subframe_Infolist_tags_1[0]), /* 1 */ - asn_DEF_MBSFN_Subframe_Infolist_tags_1, /* Same as above */ - sizeof(asn_DEF_MBSFN_Subframe_Infolist_tags_1) - /sizeof(asn_DEF_MBSFN_Subframe_Infolist_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_MBSFN_Subframe_Infolist_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_MBSFN_Subframe_Infolist_1, - 1, /* Single element */ - &asn_SPC_MBSFN_Subframe_Infolist_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/MBSFN-Subframe-Infolist.h b/e2sim/previous/ASN1c/MBSFN-Subframe-Infolist.h deleted file mode 100644 index 0071d2a..0000000 --- a/e2sim/previous/ASN1c/MBSFN-Subframe-Infolist.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _MBSFN_Subframe_Infolist_H_ -#define _MBSFN_Subframe_Infolist_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct MBSFN_Subframe_Info; - -/* MBSFN-Subframe-Infolist */ -typedef struct MBSFN_Subframe_Infolist { - A_SEQUENCE_OF(struct MBSFN_Subframe_Info) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} MBSFN_Subframe_Infolist_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_MBSFN_Subframe_Infolist; -extern asn_SET_OF_specifics_t asn_SPC_MBSFN_Subframe_Infolist_specs_1; -extern asn_TYPE_member_t asn_MBR_MBSFN_Subframe_Infolist_1[1]; -extern asn_per_constraints_t asn_PER_type_MBSFN_Subframe_Infolist_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _MBSFN_Subframe_Infolist_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/MDT-Activation.c b/e2sim/previous/ASN1c/MDT-Activation.c deleted file mode 100644 index b010e8d..0000000 --- a/e2sim/previous/ASN1c/MDT-Activation.c +++ /dev/null @@ -1,73 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "MDT-Activation.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_MDT_Activation_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_MDT_Activation_value2enum_1[] = { - { 0, 18, "immediate-MDT-only" }, - { 1, 23, "immediate-MDT-and-Trace" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_MDT_Activation_enum2value_1[] = { - 1, /* immediate-MDT-and-Trace(1) */ - 0 /* immediate-MDT-only(0) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_MDT_Activation_specs_1 = { - asn_MAP_MDT_Activation_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_MDT_Activation_enum2value_1, /* N => "tag"; sorted by N */ - 2, /* Number of elements in the maps */ - 3, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_MDT_Activation_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_MDT_Activation = { - "MDT-Activation", - "MDT-Activation", - &asn_OP_NativeEnumerated, - asn_DEF_MDT_Activation_tags_1, - sizeof(asn_DEF_MDT_Activation_tags_1) - /sizeof(asn_DEF_MDT_Activation_tags_1[0]), /* 1 */ - asn_DEF_MDT_Activation_tags_1, /* Same as above */ - sizeof(asn_DEF_MDT_Activation_tags_1) - /sizeof(asn_DEF_MDT_Activation_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_MDT_Activation_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_MDT_Activation_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/MDT-Activation.h b/e2sim/previous/ASN1c/MDT-Activation.h deleted file mode 100644 index f33682e..0000000 --- a/e2sim/previous/ASN1c/MDT-Activation.h +++ /dev/null @@ -1,72 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _MDT_Activation_H_ -#define _MDT_Activation_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum MDT_Activation { - MDT_Activation_immediate_MDT_only = 0, - MDT_Activation_immediate_MDT_and_Trace = 1 - /* - * Enumeration is extensible - */ -} e_MDT_Activation; - -/* MDT-Activation */ -typedef long MDT_Activation_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_MDT_Activation_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_MDT_Activation; -extern const asn_INTEGER_specifics_t asn_SPC_MDT_Activation_specs_1; -asn_struct_free_f MDT_Activation_free; -asn_struct_print_f MDT_Activation_print; -asn_constr_check_f MDT_Activation_constraint; -ber_type_decoder_f MDT_Activation_decode_ber; -der_type_encoder_f MDT_Activation_encode_der; -xer_type_decoder_f MDT_Activation_decode_xer; -xer_type_encoder_f MDT_Activation_encode_xer; -per_type_decoder_f MDT_Activation_decode_uper; -per_type_encoder_f MDT_Activation_encode_uper; -per_type_decoder_f MDT_Activation_decode_aper; -per_type_encoder_f MDT_Activation_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _MDT_Activation_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/MDT-Configuration.c b/e2sim/previous/ASN1c/MDT-Configuration.c deleted file mode 100644 index ec03371..0000000 --- a/e2sim/previous/ASN1c/MDT-Configuration.c +++ /dev/null @@ -1,133 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "MDT-Configuration.h" - -#include "M1ThresholdEventA2.h" -#include "M1PeriodicReporting.h" -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_MDT_Configuration_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct MDT_Configuration, mdt_Activation), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_MDT_Activation, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "mdt-Activation" - }, - { ATF_NOFLAGS, 0, offsetof(struct MDT_Configuration, areaScopeOfMDT), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_AreaScopeOfMDT, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "areaScopeOfMDT" - }, - { ATF_NOFLAGS, 0, offsetof(struct MDT_Configuration, measurementsToActivate), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_MeasurementsToActivate, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "measurementsToActivate" - }, - { ATF_NOFLAGS, 0, offsetof(struct MDT_Configuration, m1reportingTrigger), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_M1ReportingTrigger, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "m1reportingTrigger" - }, - { ATF_POINTER, 3, offsetof(struct MDT_Configuration, m1thresholdeventA2), - (ASN_TAG_CLASS_CONTEXT | (4 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_M1ThresholdEventA2, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "m1thresholdeventA2" - }, - { ATF_POINTER, 2, offsetof(struct MDT_Configuration, m1periodicReporting), - (ASN_TAG_CLASS_CONTEXT | (5 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_M1PeriodicReporting, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "m1periodicReporting" - }, - { ATF_POINTER, 1, offsetof(struct MDT_Configuration, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (6 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P166, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_MDT_Configuration_oms_1[] = { 4, 5, 6 }; -static const ber_tlv_tag_t asn_DEF_MDT_Configuration_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_MDT_Configuration_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* mdt-Activation */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* areaScopeOfMDT */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* measurementsToActivate */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* m1reportingTrigger */ - { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* m1thresholdeventA2 */ - { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* m1periodicReporting */ - { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_MDT_Configuration_specs_1 = { - sizeof(struct MDT_Configuration), - offsetof(struct MDT_Configuration, _asn_ctx), - asn_MAP_MDT_Configuration_tag2el_1, - 7, /* Count of tags in the map */ - asn_MAP_MDT_Configuration_oms_1, /* Optional members */ - 3, 0, /* Root/Additions */ - 7, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_MDT_Configuration = { - "MDT-Configuration", - "MDT-Configuration", - &asn_OP_SEQUENCE, - asn_DEF_MDT_Configuration_tags_1, - sizeof(asn_DEF_MDT_Configuration_tags_1) - /sizeof(asn_DEF_MDT_Configuration_tags_1[0]), /* 1 */ - asn_DEF_MDT_Configuration_tags_1, /* Same as above */ - sizeof(asn_DEF_MDT_Configuration_tags_1) - /sizeof(asn_DEF_MDT_Configuration_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_MDT_Configuration_1, - 7, /* Elements count */ - &asn_SPC_MDT_Configuration_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/MDT-Configuration.h b/e2sim/previous/ASN1c/MDT-Configuration.h deleted file mode 100644 index 59b7551..0000000 --- a/e2sim/previous/ASN1c/MDT-Configuration.h +++ /dev/null @@ -1,76 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _MDT_Configuration_H_ -#define _MDT_Configuration_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "MDT-Activation.h" -#include "AreaScopeOfMDT.h" -#include "MeasurementsToActivate.h" -#include "M1ReportingTrigger.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct M1ThresholdEventA2; -struct M1PeriodicReporting; -struct ProtocolExtensionContainer; - -/* MDT-Configuration */ -typedef struct MDT_Configuration { - MDT_Activation_t mdt_Activation; - AreaScopeOfMDT_t areaScopeOfMDT; - MeasurementsToActivate_t measurementsToActivate; - M1ReportingTrigger_t m1reportingTrigger; - struct M1ThresholdEventA2 *m1thresholdeventA2; /* OPTIONAL */ - struct M1PeriodicReporting *m1periodicReporting; /* OPTIONAL */ - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} MDT_Configuration_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_MDT_Configuration; -extern asn_SEQUENCE_specifics_t asn_SPC_MDT_Configuration_specs_1; -extern asn_TYPE_member_t asn_MBR_MDT_Configuration_1[7]; - -#ifdef __cplusplus -} -#endif - -#endif /* _MDT_Configuration_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/MDT-Location-Info.c b/e2sim/previous/ASN1c/MDT-Location-Info.c deleted file mode 100644 index 1b0431c..0000000 --- a/e2sim/previous/ASN1c/MDT-Location-Info.c +++ /dev/null @@ -1,85 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "MDT-Location-Info.h" - -int -MDT_Location_Info_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if(st->size > 0) { - /* Size in bits */ - size = 8 * st->size - (st->bits_unused & 0x07); - } else { - size = 0; - } - - if((size == 8)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using BIT_STRING, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_MDT_Location_Info_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 0, 0, 8, 8 } /* (SIZE(8..8)) */, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_MDT_Location_Info_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_MDT_Location_Info = { - "MDT-Location-Info", - "MDT-Location-Info", - &asn_OP_BIT_STRING, - asn_DEF_MDT_Location_Info_tags_1, - sizeof(asn_DEF_MDT_Location_Info_tags_1) - /sizeof(asn_DEF_MDT_Location_Info_tags_1[0]), /* 1 */ - asn_DEF_MDT_Location_Info_tags_1, /* Same as above */ - sizeof(asn_DEF_MDT_Location_Info_tags_1) - /sizeof(asn_DEF_MDT_Location_Info_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_MDT_Location_Info_constr_1, MDT_Location_Info_constraint }, - 0, 0, /* No members */ - &asn_SPC_BIT_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/MDT-Location-Info.h b/e2sim/previous/ASN1c/MDT-Location-Info.h deleted file mode 100644 index 87f410d..0000000 --- a/e2sim/previous/ASN1c/MDT-Location-Info.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _MDT_Location_Info_H_ -#define _MDT_Location_Info_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "BIT_STRING.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* MDT-Location-Info */ -typedef BIT_STRING_t MDT_Location_Info_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_MDT_Location_Info_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_MDT_Location_Info; -asn_struct_free_f MDT_Location_Info_free; -asn_struct_print_f MDT_Location_Info_print; -asn_constr_check_f MDT_Location_Info_constraint; -ber_type_decoder_f MDT_Location_Info_decode_ber; -der_type_encoder_f MDT_Location_Info_encode_der; -xer_type_decoder_f MDT_Location_Info_decode_xer; -xer_type_encoder_f MDT_Location_Info_encode_xer; -per_type_decoder_f MDT_Location_Info_decode_uper; -per_type_encoder_f MDT_Location_Info_encode_uper; -per_type_decoder_f MDT_Location_Info_decode_aper; -per_type_encoder_f MDT_Location_Info_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _MDT_Location_Info_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/MDTPLMNList.c b/e2sim/previous/ASN1c/MDTPLMNList.c deleted file mode 100644 index 33d13f1..0000000 --- a/e2sim/previous/ASN1c/MDTPLMNList.c +++ /dev/null @@ -1,67 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "MDTPLMNList.h" - -asn_per_constraints_t asn_PER_type_MDTPLMNList_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 4, 4, 1, 16 } /* (SIZE(1..16)) */, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_MDTPLMNList_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), - 0, - &asn_DEF_PLMN_Identity, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_MDTPLMNList_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_MDTPLMNList_specs_1 = { - sizeof(struct MDTPLMNList), - offsetof(struct MDTPLMNList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_MDTPLMNList = { - "MDTPLMNList", - "MDTPLMNList", - &asn_OP_SEQUENCE_OF, - asn_DEF_MDTPLMNList_tags_1, - sizeof(asn_DEF_MDTPLMNList_tags_1) - /sizeof(asn_DEF_MDTPLMNList_tags_1[0]), /* 1 */ - asn_DEF_MDTPLMNList_tags_1, /* Same as above */ - sizeof(asn_DEF_MDTPLMNList_tags_1) - /sizeof(asn_DEF_MDTPLMNList_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_MDTPLMNList_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_MDTPLMNList_1, - 1, /* Single element */ - &asn_SPC_MDTPLMNList_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/MDTPLMNList.h b/e2sim/previous/ASN1c/MDTPLMNList.h deleted file mode 100644 index 2b5d0b7..0000000 --- a/e2sim/previous/ASN1c/MDTPLMNList.h +++ /dev/null @@ -1,60 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _MDTPLMNList_H_ -#define _MDTPLMNList_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "PLMN-Identity.h" -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* MDTPLMNList */ -typedef struct MDTPLMNList { - A_SEQUENCE_OF(PLMN_Identity_t) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} MDTPLMNList_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_MDTPLMNList; -extern asn_SET_OF_specifics_t asn_SPC_MDTPLMNList_specs_1; -extern asn_TYPE_member_t asn_MBR_MDTPLMNList_1[1]; -extern asn_per_constraints_t asn_PER_type_MDTPLMNList_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _MDTPLMNList_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/MME-Code.c b/e2sim/previous/ASN1c/MME-Code.c deleted file mode 100644 index fb9f1de..0000000 --- a/e2sim/previous/ASN1c/MME-Code.c +++ /dev/null @@ -1,80 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "MME-Code.h" - -int -MME_Code_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - size = st->size; - - if((size == 1)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using OCTET_STRING, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_MME_Code_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 0, 0, 1, 1 } /* (SIZE(1..1)) */, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_MME_Code_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_MME_Code = { - "MME-Code", - "MME-Code", - &asn_OP_OCTET_STRING, - asn_DEF_MME_Code_tags_1, - sizeof(asn_DEF_MME_Code_tags_1) - /sizeof(asn_DEF_MME_Code_tags_1[0]), /* 1 */ - asn_DEF_MME_Code_tags_1, /* Same as above */ - sizeof(asn_DEF_MME_Code_tags_1) - /sizeof(asn_DEF_MME_Code_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_MME_Code_constr_1, MME_Code_constraint }, - 0, 0, /* No members */ - &asn_SPC_OCTET_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/MME-Code.h b/e2sim/previous/ASN1c/MME-Code.h deleted file mode 100644 index 9c161e4..0000000 --- a/e2sim/previous/ASN1c/MME-Code.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _MME_Code_H_ -#define _MME_Code_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "OCTET_STRING.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* MME-Code */ -typedef OCTET_STRING_t MME_Code_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_MME_Code_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_MME_Code; -asn_struct_free_f MME_Code_free; -asn_struct_print_f MME_Code_print; -asn_constr_check_f MME_Code_constraint; -ber_type_decoder_f MME_Code_decode_ber; -der_type_encoder_f MME_Code_encode_der; -xer_type_decoder_f MME_Code_decode_xer; -xer_type_encoder_f MME_Code_encode_xer; -per_type_decoder_f MME_Code_decode_uper; -per_type_encoder_f MME_Code_encode_uper; -per_type_decoder_f MME_Code_decode_aper; -per_type_encoder_f MME_Code_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _MME_Code_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/MME-Group-ID.c b/e2sim/previous/ASN1c/MME-Group-ID.c deleted file mode 100644 index a25836b..0000000 --- a/e2sim/previous/ASN1c/MME-Group-ID.c +++ /dev/null @@ -1,80 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "MME-Group-ID.h" - -int -MME_Group_ID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - size = st->size; - - if((size == 2)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using OCTET_STRING, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_MME_Group_ID_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 0, 0, 2, 2 } /* (SIZE(2..2)) */, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_MME_Group_ID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_MME_Group_ID = { - "MME-Group-ID", - "MME-Group-ID", - &asn_OP_OCTET_STRING, - asn_DEF_MME_Group_ID_tags_1, - sizeof(asn_DEF_MME_Group_ID_tags_1) - /sizeof(asn_DEF_MME_Group_ID_tags_1[0]), /* 1 */ - asn_DEF_MME_Group_ID_tags_1, /* Same as above */ - sizeof(asn_DEF_MME_Group_ID_tags_1) - /sizeof(asn_DEF_MME_Group_ID_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_MME_Group_ID_constr_1, MME_Group_ID_constraint }, - 0, 0, /* No members */ - &asn_SPC_OCTET_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/MME-Group-ID.h b/e2sim/previous/ASN1c/MME-Group-ID.h deleted file mode 100644 index 5b83ef5..0000000 --- a/e2sim/previous/ASN1c/MME-Group-ID.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _MME_Group_ID_H_ -#define _MME_Group_ID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "OCTET_STRING.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* MME-Group-ID */ -typedef OCTET_STRING_t MME_Group_ID_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_MME_Group_ID_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_MME_Group_ID; -asn_struct_free_f MME_Group_ID_free; -asn_struct_print_f MME_Group_ID_print; -asn_constr_check_f MME_Group_ID_constraint; -ber_type_decoder_f MME_Group_ID_decode_ber; -der_type_encoder_f MME_Group_ID_encode_der; -xer_type_decoder_f MME_Group_ID_decode_xer; -xer_type_encoder_f MME_Group_ID_encode_xer; -per_type_decoder_f MME_Group_ID_decode_uper; -per_type_encoder_f MME_Group_ID_encode_uper; -per_type_decoder_f MME_Group_ID_decode_aper; -per_type_encoder_f MME_Group_ID_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _MME_Group_ID_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/MakeBeforeBreakIndicator.c b/e2sim/previous/ASN1c/MakeBeforeBreakIndicator.c deleted file mode 100644 index 5da239c..0000000 --- a/e2sim/previous/ASN1c/MakeBeforeBreakIndicator.c +++ /dev/null @@ -1,71 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "MakeBeforeBreakIndicator.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_MakeBeforeBreakIndicator_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 0, 0 } /* (0..0,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_MakeBeforeBreakIndicator_value2enum_1[] = { - { 0, 4, "true" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_MakeBeforeBreakIndicator_enum2value_1[] = { - 0 /* true(0) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_MakeBeforeBreakIndicator_specs_1 = { - asn_MAP_MakeBeforeBreakIndicator_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_MakeBeforeBreakIndicator_enum2value_1, /* N => "tag"; sorted by N */ - 1, /* Number of elements in the maps */ - 2, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_MakeBeforeBreakIndicator_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_MakeBeforeBreakIndicator = { - "MakeBeforeBreakIndicator", - "MakeBeforeBreakIndicator", - &asn_OP_NativeEnumerated, - asn_DEF_MakeBeforeBreakIndicator_tags_1, - sizeof(asn_DEF_MakeBeforeBreakIndicator_tags_1) - /sizeof(asn_DEF_MakeBeforeBreakIndicator_tags_1[0]), /* 1 */ - asn_DEF_MakeBeforeBreakIndicator_tags_1, /* Same as above */ - sizeof(asn_DEF_MakeBeforeBreakIndicator_tags_1) - /sizeof(asn_DEF_MakeBeforeBreakIndicator_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_MakeBeforeBreakIndicator_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_MakeBeforeBreakIndicator_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/MakeBeforeBreakIndicator.h b/e2sim/previous/ASN1c/MakeBeforeBreakIndicator.h deleted file mode 100644 index 3bdf136..0000000 --- a/e2sim/previous/ASN1c/MakeBeforeBreakIndicator.h +++ /dev/null @@ -1,71 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _MakeBeforeBreakIndicator_H_ -#define _MakeBeforeBreakIndicator_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum MakeBeforeBreakIndicator { - MakeBeforeBreakIndicator_true = 0 - /* - * Enumeration is extensible - */ -} e_MakeBeforeBreakIndicator; - -/* MakeBeforeBreakIndicator */ -typedef long MakeBeforeBreakIndicator_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_MakeBeforeBreakIndicator_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_MakeBeforeBreakIndicator; -extern const asn_INTEGER_specifics_t asn_SPC_MakeBeforeBreakIndicator_specs_1; -asn_struct_free_f MakeBeforeBreakIndicator_free; -asn_struct_print_f MakeBeforeBreakIndicator_print; -asn_constr_check_f MakeBeforeBreakIndicator_constraint; -ber_type_decoder_f MakeBeforeBreakIndicator_decode_ber; -der_type_encoder_f MakeBeforeBreakIndicator_encode_der; -xer_type_decoder_f MakeBeforeBreakIndicator_decode_xer; -xer_type_encoder_f MakeBeforeBreakIndicator_encode_xer; -per_type_decoder_f MakeBeforeBreakIndicator_decode_uper; -per_type_encoder_f MakeBeforeBreakIndicator_encode_uper; -per_type_decoder_f MakeBeforeBreakIndicator_decode_aper; -per_type_encoder_f MakeBeforeBreakIndicator_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _MakeBeforeBreakIndicator_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/Makefile.am.asn1convert b/e2sim/previous/ASN1c/Makefile.am.asn1convert deleted file mode 100644 index 68ee114..0000000 --- a/e2sim/previous/ASN1c/Makefile.am.asn1convert +++ /dev/null @@ -1,31 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ -include ./Makefile.am.libasncodec - -bin_PROGRAMS += asn1convert -asn1convert_CFLAGS = $(ASN_MODULE_CFLAGS) -DASN_PDU_COLLECTION -asn1convert_CPPFLAGS = -I$(top_srcdir)/./ -asn1convert_LDADD = libasncodec.la -asn1convert_SOURCES = \ - ./converter-example.c\ - ./pdu_collection.c -regen: regenerate-from-asn1-source - -regenerate-from-asn1-source: - asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D. ../../asnFiles/e2ap-v031.asn ../../asnFiles/X2AP-PDU-Contents.asn ../../asnFiles/X2AP-Constants.asn ../../asnFiles/X2AP-Containers.asn ../../asnFiles/X2AP-IEs.asn ../../asnFiles/X2AP-CommonDataTypes.asn ../../asnFiles/e2sm-gNB-X2-release-1-v041.asn - diff --git a/e2sim/previous/ASN1c/Makefile.am.libasncodec b/e2sim/previous/ASN1c/Makefile.am.libasncodec deleted file mode 100644 index 0555e3d..0000000 --- a/e2sim/previous/ASN1c/Makefile.am.libasncodec +++ /dev/null @@ -1,1592 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ -ASN_MODULE_SRCS= \ - ./E2AP-PDU.c \ - ./InitiatingMessage.c \ - ./SuccessfulOutcome.c \ - ./UnsuccessfulOutcome.c \ - ./RICsubscriptionRequest.c \ - ./RICsubscription.c \ - ./RICactions-ToBeSetup-List.c \ - ./RICaction-ToBeSetup-Item.c \ - ./RICsubscriptionResponse.c \ - ./RICaction-Admitted-List.c \ - ./RICaction-Admitted-Item.c \ - ./RICaction-NotAdmitted-List.c \ - ./RICaction-NotAdmitted-Item.c \ - ./RICsubscriptionFailure.c \ - ./RICsubscriptionDeleteRequest.c \ - ./RICsubscriptionDeleteResponse.c \ - ./RICsubscriptionDeleteFailure.c \ - ./RICindication.c \ - ./RICcontrolRequest.c \ - ./RICcontrolAcknowledge.c \ - ./RICcontrolFailure.c \ - ./RICserviceUpdate.c \ - ./RANfunctions-List.c \ - ./RANfunction-Item.c \ - ./RANfunctionsID-List.c \ - ./RANfunctionID-Item.c \ - ./RICserviceUpdateAcknowledge.c \ - ./RANfunctionsIDcause-List.c \ - ./RANfunctionIDcause-Item.c \ - ./RICserviceUpdateFailure.c \ - ./RICserviceQuery.c \ - ./CauseRIC.c \ - ./RANfunctionDefinition.c \ - ./RANfunctionID.c \ - ./RICactionDefinition.c \ - ./RICactionID.c \ - ./RICactionType.c \ - ./RICcallProcessID.c \ - ./RICcause.c \ - ./RICcontrolAckRequest.c \ - ./RICcontrolHeader.c \ - ./RICcontrolMessage.c \ - ./RICcontrolStatus.c \ - ./RICeventTriggerDefinition.c \ - ./RICindicationHeader.c \ - ./RICindicationMessage.c \ - ./RICindicationSN.c \ - ./RICindicationType.c \ - ./RICrequestID.c \ - ./RICsubsequentAction.c \ - ./RICsubsequentActionType.c \ - ./RICtimeToWait.c \ - ./HandoverRequest.c \ - ./UE-ContextInformation.c \ - ./E-RABs-ToBeSetup-List.c \ - ./E-RABs-ToBeSetup-Item.c \ - ./MobilityInformation.c \ - ./UE-ContextReferenceAtSeNB.c \ - ./UE-ContextReferenceAtWT.c \ - ./UE-ContextReferenceAtSgNB.c \ - ./HandoverRequestAcknowledge.c \ - ./E-RABs-Admitted-List.c \ - ./E-RABs-Admitted-Item.c \ - ./HandoverPreparationFailure.c \ - ./HandoverReport.c \ - ./SNStatusTransfer.c \ - ./E-RABs-SubjectToStatusTransfer-List.c \ - ./E-RABs-SubjectToStatusTransfer-Item.c \ - ./UEContextRelease.c \ - ./HandoverCancel.c \ - ./ErrorIndication.c \ - ./ResetRequest.c \ - ./ResetResponse.c \ - ./X2SetupRequest.c \ - ./X2SetupResponse.c \ - ./X2SetupFailure.c \ - ./LoadInformation.c \ - ./CellInformation-List.c \ - ./CellInformation-Item.c \ - ./ENBConfigurationUpdate.c \ - ./ServedCellsToModify.c \ - ./ServedCellsToModify-Item.c \ - ./Old-ECGIs.c \ - ./ENBConfigurationUpdateAcknowledge.c \ - ./ENBConfigurationUpdateFailure.c \ - ./ResourceStatusRequest.c \ - ./CellToReport-List.c \ - ./CellToReport-Item.c \ - ./ReportingPeriodicity.c \ - ./PartialSuccessIndicator.c \ - ./ResourceStatusResponse.c \ - ./MeasurementInitiationResult-List.c \ - ./MeasurementInitiationResult-Item.c \ - ./MeasurementFailureCause-List.c \ - ./MeasurementFailureCause-Item.c \ - ./ResourceStatusFailure.c \ - ./CompleteFailureCauseInformation-List.c \ - ./CompleteFailureCauseInformation-Item.c \ - ./ResourceStatusUpdate.c \ - ./CellMeasurementResult-List.c \ - ./CellMeasurementResult-Item.c \ - ./PrivateMessage.c \ - ./MobilityChangeRequest.c \ - ./MobilityChangeAcknowledge.c \ - ./MobilityChangeFailure.c \ - ./RLFIndication.c \ - ./CellActivationRequest.c \ - ./ServedCellsToActivate.c \ - ./ServedCellsToActivate-Item.c \ - ./CellActivationResponse.c \ - ./ActivatedCellList.c \ - ./ActivatedCellList-Item.c \ - ./CellActivationFailure.c \ - ./X2Release.c \ - ./X2APMessageTransfer.c \ - ./RNL-Header.c \ - ./X2AP-Message.c \ - ./SeNBAdditionRequest.c \ - ./E-RABs-ToBeAdded-List.c \ - ./E-RABs-ToBeAdded-Item.c \ - ./E-RABs-ToBeAdded-Item-SCG-Bearer.c \ - ./E-RABs-ToBeAdded-Item-Split-Bearer.c \ - ./SeNBAdditionRequestAcknowledge.c \ - ./E-RABs-Admitted-ToBeAdded-List.c \ - ./E-RABs-Admitted-ToBeAdded-Item.c \ - ./E-RABs-Admitted-ToBeAdded-Item-SCG-Bearer.c \ - ./E-RABs-Admitted-ToBeAdded-Item-Split-Bearer.c \ - ./SeNBAdditionRequestReject.c \ - ./SeNBReconfigurationComplete.c \ - ./ResponseInformationSeNBReconfComp.c \ - ./ResponseInformationSeNBReconfComp-SuccessItem.c \ - ./ResponseInformationSeNBReconfComp-RejectByMeNBItem.c \ - ./SeNBModificationRequest.c \ - ./UE-ContextInformationSeNBModReq.c \ - ./E-RABs-ToBeAdded-List-ModReq.c \ - ./E-RABs-ToBeAdded-ModReqItem.c \ - ./E-RABs-ToBeAdded-ModReqItem-SCG-Bearer.c \ - ./E-RABs-ToBeAdded-ModReqItem-Split-Bearer.c \ - ./E-RABs-ToBeModified-List-ModReq.c \ - ./E-RABs-ToBeModified-ModReqItem.c \ - ./E-RABs-ToBeModified-ModReqItem-SCG-Bearer.c \ - ./E-RABs-ToBeModified-ModReqItem-Split-Bearer.c \ - ./E-RABs-ToBeReleased-List-ModReq.c \ - ./E-RABs-ToBeReleased-ModReqItem.c \ - ./E-RABs-ToBeReleased-ModReqItem-SCG-Bearer.c \ - ./E-RABs-ToBeReleased-ModReqItem-Split-Bearer.c \ - ./SeNBModificationRequestAcknowledge.c \ - ./E-RABs-Admitted-ToBeAdded-ModAckList.c \ - ./E-RABs-Admitted-ToBeAdded-ModAckItem.c \ - ./E-RABs-Admitted-ToBeAdded-ModAckItem-SCG-Bearer.c \ - ./E-RABs-Admitted-ToBeAdded-ModAckItem-Split-Bearer.c \ - ./E-RABs-Admitted-ToBeModified-ModAckList.c \ - ./E-RABs-Admitted-ToBeModified-ModAckItem.c \ - ./E-RABs-Admitted-ToBeModified-ModAckItem-SCG-Bearer.c \ - ./E-RABs-Admitted-ToBeModified-ModAckItem-Split-Bearer.c \ - ./E-RABs-Admitted-ToBeReleased-ModAckList.c \ - ./E-RABs-Admitted-ToReleased-ModAckItem.c \ - ./E-RABs-Admitted-ToBeReleased-ModAckItem-SCG-Bearer.c \ - ./E-RABs-Admitted-ToBeReleased-ModAckItem-Split-Bearer.c \ - ./SeNBModificationRequestReject.c \ - ./SeNBModificationRequired.c \ - ./E-RABs-ToBeReleased-ModReqd.c \ - ./E-RABs-ToBeReleased-ModReqdItem.c \ - ./SeNBModificationConfirm.c \ - ./SeNBModificationRefuse.c \ - ./SeNBReleaseRequest.c \ - ./E-RABs-ToBeReleased-List-RelReq.c \ - ./E-RABs-ToBeReleased-RelReqItem.c \ - ./E-RABs-ToBeReleased-RelReqItem-SCG-Bearer.c \ - ./E-RABs-ToBeReleased-RelReqItem-Split-Bearer.c \ - ./SeNBReleaseRequired.c \ - ./SeNBReleaseConfirm.c \ - ./E-RABs-ToBeReleased-List-RelConf.c \ - ./E-RABs-ToBeReleased-RelConfItem.c \ - ./E-RABs-ToBeReleased-RelConfItem-SCG-Bearer.c \ - ./E-RABs-ToBeReleased-RelConfItem-Split-Bearer.c \ - ./SeNBCounterCheckRequest.c \ - ./E-RABs-SubjectToCounterCheck-List.c \ - ./E-RABs-SubjectToCounterCheckItem.c \ - ./X2RemovalRequest.c \ - ./X2RemovalResponse.c \ - ./X2RemovalFailure.c \ - ./RetrieveUEContextRequest.c \ - ./RetrieveUEContextResponse.c \ - ./UE-ContextInformationRetrieve.c \ - ./E-RABs-ToBeSetup-ListRetrieve.c \ - ./E-RABs-ToBeSetupRetrieve-Item.c \ - ./RetrieveUEContextFailure.c \ - ./SgNBAdditionRequest.c \ - ./E-RABs-ToBeAdded-SgNBAddReqList.c \ - ./E-RABs-ToBeAdded-SgNBAddReq-Item.c \ - ./E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPpresent.c \ - ./E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPnotpresent.c \ - ./SgNBAdditionRequestAcknowledge.c \ - ./E-RABs-Admitted-ToBeAdded-SgNBAddReqAckList.c \ - ./E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item.c \ - ./E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPpresent.c \ - ./E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPnotpresent.c \ - ./SgNBAdditionRequestReject.c \ - ./SgNBReconfigurationComplete.c \ - ./ResponseInformationSgNBReconfComp.c \ - ./ResponseInformationSgNBReconfComp-SuccessItem.c \ - ./ResponseInformationSgNBReconfComp-RejectByMeNBItem.c \ - ./SgNBModificationRequest.c \ - ./UE-ContextInformation-SgNBModReq.c \ - ./E-RABs-ToBeAdded-SgNBModReq-List.c \ - ./E-RABs-ToBeAdded-SgNBModReq-Item.c \ - ./E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPpresent.c \ - ./E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPnotpresent.c \ - ./E-RABs-ToBeModified-SgNBModReq-List.c \ - ./E-RABs-ToBeModified-SgNBModReq-Item.c \ - ./E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPpresent.c \ - ./E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPnotpresent.c \ - ./E-RABs-ToBeReleased-SgNBModReq-List.c \ - ./E-RABs-ToBeReleased-SgNBModReq-Item.c \ - ./E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPpresent.c \ - ./E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPnotpresent.c \ - ./SgNBModificationRequestAcknowledge.c \ - ./E-RABs-Admitted-ToBeAdded-SgNBModAckList.c \ - ./E-RABs-Admitted-ToBeAdded-SgNBModAck-Item.c \ - ./E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPpresent.c \ - ./E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPnotpresent.c \ - ./E-RABs-Admitted-ToBeModified-SgNBModAckList.c \ - ./E-RABs-Admitted-ToBeModified-SgNBModAck-Item.c \ - ./E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPpresent.c \ - ./E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPnotpresent.c \ - ./E-RABs-Admitted-ToBeReleased-SgNBModAckList.c \ - ./E-RABs-Admitted-ToReleased-SgNBModAck-Item.c \ - ./E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPpresent.c \ - ./E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPnotpresent.c \ - ./SgNBModificationRequestReject.c \ - ./SgNBModificationRequired.c \ - ./E-RABs-ToBeReleased-SgNBModReqdList.c \ - ./E-RABs-ToBeReleased-SgNBModReqd-Item.c \ - ./E-RABs-ToBeModified-SgNBModReqdList.c \ - ./E-RABs-ToBeModified-SgNBModReqd-Item.c \ - ./E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPpresent.c \ - ./E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPnotpresent.c \ - ./SgNBModificationConfirm.c \ - ./E-RABs-AdmittedToBeModified-SgNBModConfList.c \ - ./E-RABs-AdmittedToBeModified-SgNBModConf-Item.c \ - ./E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPpresent.c \ - ./E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPnotpresent.c \ - ./SgNBModificationRefuse.c \ - ./SgNBReleaseRequest.c \ - ./E-RABs-ToBeReleased-SgNBRelReqList.c \ - ./E-RABs-ToBeReleased-SgNBRelReq-Item.c \ - ./E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPpresent.c \ - ./E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPnotpresent.c \ - ./SgNBReleaseRequestAcknowledge.c \ - ./E-RABs-Admitted-ToBeReleased-SgNBRelReqAckList.c \ - ./E-RABs-Admitted-ToBeReleased-SgNBRelReqAck-Item.c \ - ./SgNBReleaseRequestReject.c \ - ./SgNBReleaseRequired.c \ - ./E-RABs-ToBeReleased-SgNBRelReqdList.c \ - ./E-RABs-ToBeReleased-SgNBRelReqd-Item.c \ - ./SgNBReleaseConfirm.c \ - ./E-RABs-ToBeReleased-SgNBRelConfList.c \ - ./E-RABs-ToBeReleased-SgNBRelConf-Item.c \ - ./E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPpresent.c \ - ./E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPnotpresent.c \ - ./SgNBCounterCheckRequest.c \ - ./E-RABs-SubjectToSgNBCounterCheck-List.c \ - ./E-RABs-SubjectToSgNBCounterCheck-Item.c \ - ./SgNBChangeRequired.c \ - ./SgNBChangeConfirm.c \ - ./E-RABs-ToBeReleased-SgNBChaConfList.c \ - ./E-RABs-ToBeReleased-SgNBChaConf-Item.c \ - ./E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPpresent.c \ - ./E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPnotpresent.c \ - ./RRCTransfer.c \ - ./SgNBChangeRefuse.c \ - ./ENDCX2SetupRequest.c \ - ./InitiatingNodeType-EndcX2Setup.c \ - ./ServedEUTRAcellsENDCX2ManagementList.c \ - ./ServedNRcellsENDCX2ManagementList.c \ - ./ServedNRCell-Information.c \ - ./FDD-InfoServedNRCell-Information.c \ - ./FDD-InfoNeighbourServedNRCell-Information.c \ - ./TDD-InfoServedNRCell-Information.c \ - ./TDD-InfoNeighbourServedNRCell-Information.c \ - ./NRNeighbour-Information.c \ - ./CellAssistanceInformation.c \ - ./Limited-list.c \ - ./ENDCX2SetupResponse.c \ - ./RespondingNodeType-EndcX2Setup.c \ - ./ENDCX2SetupFailure.c \ - ./ENDCConfigurationUpdate.c \ - ./InitiatingNodeType-EndcConfigUpdate.c \ - ./ServedEUTRAcellsToModifyListENDCConfUpd.c \ - ./ServedEUTRAcellsToDeleteListENDCConfUpd.c \ - ./ServedNRcellsToModifyENDCConfUpdList.c \ - ./ServedNRCellsToModify-Item.c \ - ./ServedNRcellsToDeleteENDCConfUpdList.c \ - ./ENDCConfigurationUpdateAcknowledge.c \ - ./RespondingNodeType-EndcConfigUpdate.c \ - ./ENDCConfigurationUpdateFailure.c \ - ./ENDCCellActivationRequest.c \ - ./ServedNRCellsToActivate.c \ - ./ServedNRCellsToActivate-Item.c \ - ./ENDCCellActivationResponse.c \ - ./ActivatedNRCellList.c \ - ./ActivatedNRCellList-Item.c \ - ./ENDCCellActivationFailure.c \ - ./SecondaryRATDataUsageReport.c \ - ./SgNBActivityNotification.c \ - ./ENDCPartialResetRequired.c \ - ./ENDCPartialResetConfirm.c \ - ./EUTRANRCellResourceCoordinationRequest.c \ - ./InitiatingNodeType-EutranrCellResourceCoordination.c \ - ./ListofEUTRACellsinEUTRACoordinationReq.c \ - ./ListofEUTRACellsinNRCoordinationReq.c \ - ./ListofNRCellsinNRCoordinationReq.c \ - ./EUTRANRCellResourceCoordinationResponse.c \ - ./RespondingNodeType-EutranrCellResourceCoordination.c \ - ./ListofEUTRACellsinEUTRACoordinationResp.c \ - ./ListofNRCellsinNRCoordinationResp.c \ - ./ENDCX2RemovalRequest.c \ - ./InitiatingNodeType-EndcX2Removal.c \ - ./ENDCX2RemovalResponse.c \ - ./RespondingNodeType-EndcX2Removal.c \ - ./ENDCX2RemovalFailure.c \ - ./DataForwardingAddressIndication.c \ - ./E-RABs-DataForwardingAddress-List.c \ - ./E-RABs-DataForwardingAddress-Item.c \ - ./GNBStatusIndication.c \ - ./ProtocolIE-Container.c \ - ./ProtocolIE-Single-Container.c \ - ./ProtocolIE-Field.c \ - ./ProtocolIE-ContainerPair.c \ - ./ProtocolIE-FieldPair.c \ - ./ProtocolIE-ContainerList.c \ - ./ProtocolIE-ContainerPairList.c \ - ./ProtocolExtensionContainer.c \ - ./ProtocolExtensionField.c \ - ./PrivateIE-Container.c \ - ./PrivateIE-Field.c \ - ./ABSInformation.c \ - ./ABSInformationFDD.c \ - ./ABSInformationTDD.c \ - ./ABS-Status.c \ - ./ActivationID.c \ - ./AdditionalSpecialSubframe-Info.c \ - ./AdditionalSpecialSubframePatterns.c \ - ./AdditionalSpecialSubframeExtension-Info.c \ - ./AdditionalSpecialSubframePatternsExtension.c \ - ./AerialUEsubscriptionInformation.c \ - ./AllocationAndRetentionPriority.c \ - ./AreaScopeOfMDT.c \ - ./AreaScopeOfQMC.c \ - ./AS-SecurityInformation.c \ - ./BandwidthReducedSI.c \ - ./BearerType.c \ - ./BenefitMetric.c \ - ./BitRate.c \ - ./BroadcastPLMNs-Item.c \ - ./BluetoothMeasurementConfiguration.c \ - ./BluetoothMeasConfigNameList.c \ - ./BluetoothMeasConfig.c \ - ./BluetoothName.c \ - ./CapacityValue.c \ - ./Cause.c \ - ./CauseMisc.c \ - ./CauseProtocol.c \ - ./CauseRadioNetwork.c \ - ./CauseTransport.c \ - ./CellBasedMDT.c \ - ./CellBasedQMC.c \ - ./CellCapacityClassValue.c \ - ./CellDeploymentStatusIndicator.c \ - ./CellIdListforMDT.c \ - ./CellIdListforQMC.c \ - ./CellReplacingInfo.c \ - ./CellReportingIndicator.c \ - ./Cell-Size.c \ - ./CellType.c \ - ./CNTypeRestrictions.c \ - ./CNTypeRestrictionsItem.c \ - ./CoMPHypothesisSet.c \ - ./CoMPHypothesisSetItem.c \ - ./CoMPInformation.c \ - ./CoMPInformationItem.c \ - ./CoMPInformationStartTime.c \ - ./CompositeAvailableCapacity.c \ - ./CompositeAvailableCapacityGroup.c \ - ./Correlation-ID.c \ - ./COUNTvalue.c \ - ./COUNTValueExtended.c \ - ./COUNTvaluePDCP-SNlength18.c \ - ./CoverageModificationList.c \ - ./CoverageModification-Item.c \ - ./CriticalityDiagnostics.c \ - ./CriticalityDiagnostics-IE-List.c \ - ./CRNTI.c \ - ./CSGMembershipStatus.c \ - ./CSG-Id.c \ - ./CSIReportList.c \ - ./CSIReportPerCSIProcess.c \ - ./CSIReportPerCSIProcessItem.c \ - ./CyclicPrefixDL.c \ - ./CyclicPrefixUL.c \ - ./DataTrafficResources.c \ - ./DataTrafficResourceIndication.c \ - ./DeactivationIndication.c \ - ./DeliveryStatus.c \ - ./DL-ABS-status.c \ - ./DL-Forwarding.c \ - ./DL-GBR-PRB-usage.c \ - ./DL-non-GBR-PRB-usage.c \ - ./DLResourceBitmapULandDLSharing.c \ - ./DLResourcesULandDLSharing.c \ - ./DL-scheduling-PDCCH-CCE-usage.c \ - ./DL-Total-PRB-usage.c \ - ./DRB-ID.c \ - ./DuplicationActivation.c \ - ./DynamicDLTransmissionInformation.c \ - ./DynamicNAICSInformation.c \ - ./EARFCN.c \ - ./EARFCNExtension.c \ - ./ECGI.c \ - ./EnhancedRNTP.c \ - ./EnhancedRNTPStartTime.c \ - ./ENB-ID.c \ - ./EncryptionAlgorithms.c \ - ./EN-DC-ResourceConfiguration.c \ - ./EPLMNs.c \ - ./ERABActivityNotifyItemList.c \ - ./ERABActivityNotifyItem.c \ - ./E-RAB-ID.c \ - ./E-RAB-Level-QoS-Parameters.c \ - ./E-RAB-List.c \ - ./E-RAB-Item.c \ - ./E-RABUsageReportList.c \ - ./E-RABUsageReport-Item.c \ - ./EUTRA-Mode-Info.c \ - ./EUTRANCellIdentifier.c \ - ./EUTRANTraceID.c \ - ./EventType.c \ - ./ExpectedUEBehaviour.c \ - ./ExpectedUEActivityBehaviour.c \ - ./ExpectedActivityPeriod.c \ - ./ExpectedIdlePeriod.c \ - ./ExpectedHOInterval.c \ - ./ExtendedULInterferenceOverloadInfo.c \ - ./ExtendedBitRate.c \ - ./FDD-Info.c \ - ./ForbiddenInterRATs.c \ - ./ForbiddenTAs.c \ - ./ForbiddenTAs-Item.c \ - ./ForbiddenTACs.c \ - ./ForbiddenLAs.c \ - ./ForbiddenLAs-Item.c \ - ./ForbiddenLACs.c \ - ./Fourframes.c \ - ./FreqBandIndicator.c \ - ./FreqBandIndicatorPriority.c \ - ./FreqBandNrItem.c \ - ./GBR-QosInformation.c \ - ./GlobalENB-ID.c \ - ./GlobalGNB-ID.c \ - ./GNBOverloadInformation.c \ - ./GTPtunnelEndpoint.c \ - ./GTP-TEI.c \ - ./GUGroupIDList.c \ - ./GU-Group-ID.c \ - ./GUMMEI.c \ - ./GNB-ID.c \ - ./HandoverReportType.c \ - ./HandoverRestrictionList.c \ - ./HFN.c \ - ./HFNModified.c \ - ./HFNforPDCP-SNlength18.c \ - ./HWLoadIndicator.c \ - ./IntegrityProtectionAlgorithms.c \ - ./InterfacesToTrace.c \ - ./InvokeIndication.c \ - ./Key-eNodeB-Star.c \ - ./LAC.c \ - ./LastVisitedCell-Item.c \ - ./LastVisitedEUTRANCellInformation.c \ - ./LastVisitedGERANCellInformation.c \ - ./LastVisitedNGRANCellInformation.c \ - ./LastVisitedUTRANCellInformation.c \ - ./LCID.c \ - ./LHN-ID.c \ - ./Links-to-log.c \ - ./LoadIndicator.c \ - ./LocationReportingInformation.c \ - ./M1PeriodicReporting.c \ - ./M1ReportingTrigger.c \ - ./M1ThresholdEventA2.c \ - ./M3Configuration.c \ - ./M3period.c \ - ./M4Configuration.c \ - ./M4period.c \ - ./M5Configuration.c \ - ./M5period.c \ - ./M6Configuration.c \ - ./M6report-interval.c \ - ./M6delay-threshold.c \ - ./M7Configuration.c \ - ./M7period.c \ - ./MakeBeforeBreakIndicator.c \ - ./ManagementBasedMDTallowed.c \ - ./Masked-IMEISV.c \ - ./MDT-Activation.c \ - ./MDT-Configuration.c \ - ./MDTPLMNList.c \ - ./MDT-Location-Info.c \ - ./Measurement-ID.c \ - ./MeasurementsToActivate.c \ - ./MeasurementThresholdA2.c \ - ./MeNBCoordinationAssistanceInformation.c \ - ./MeNBResourceCoordinationInformation.c \ - ./MeNBtoSeNBContainer.c \ - ./MME-Group-ID.c \ - ./MME-Code.c \ - ./MBMS-Service-Area-Identity-List.c \ - ./MBMS-Service-Area-Identity.c \ - ./MBSFN-Subframe-Infolist.c \ - ./MBSFN-Subframe-Info.c \ - ./MobilityParametersModificationRange.c \ - ./MobilityParametersInformation.c \ - ./MultibandInfoList.c \ - ./BandInfo.c \ - ./MeNBtoSgNBContainer.c \ - ./SplitSRBs.c \ - ./SplitSRB.c \ - ./UENRMeasurement.c \ - ./Neighbour-Information.c \ - ./NextHopChainingCount.c \ - ./NewDRBIDrequest.c \ - ./Number-of-Antennaports.c \ - ./NRFreqInfo.c \ - ./NRCellIdentifier.c \ - ./NRCGI.c \ - ./NRPCI.c \ - ./NRrestrictioninEPSasSecondaryRAT.c \ - ./NRrestrictionin5GS.c \ - ./NRencryptionAlgorithms.c \ - ./NRintegrityProtectionAlgorithms.c \ - ./NR-TxBW.c \ - ./NRNRB.c \ - ./NRSCS.c \ - ./NRS-NSSS-PowerOffset.c \ - ./FiveGS-TAC.c \ - ./NRUESecurityCapabilities.c \ - ./NSSS-NumOccasionDifferentPrecoder.c \ - ./OffsetOfNbiotChannelNumberToEARFCN.c \ - ./Oneframe.c \ - ./Packet-LossRate.c \ - ./PA-Values.c \ - ./PDCPChangeIndication.c \ - ./PDCP-SN.c \ - ./PDCP-SNExtended.c \ - ./PDCP-SNlength18.c \ - ./PDCPSnLength.c \ - ./PCI.c \ - ./PLMN-Identity.c \ - ./Port-Number.c \ - ./PRACH-Configuration.c \ - ./PLMNAreaBasedQMC.c \ - ./PLMNListforQMC.c \ - ./Pre-emptionCapability.c \ - ./Pre-emptionVulnerability.c \ - ./PriorityLevel.c \ - ./ProSeAuthorized.c \ - ./ProSeDirectDiscovery.c \ - ./ProSeDirectCommunication.c \ - ./ProSeUEtoNetworkRelaying.c \ - ./ProtectedEUTRAResourceIndication.c \ - ./ProtectedFootprintTimePattern.c \ - ./ProtectedResourceList.c \ - ./ProtectedResourceList-Item.c \ - ./QCI.c \ - ./RadioframeAllocationOffset.c \ - ./RadioframeAllocationPeriod.c \ - ./RadioResourceStatus.c \ - ./ReceiveStatusofULPDCPSDUs.c \ - ./ReceiveStatusOfULPDCPSDUsExtended.c \ - ./ReceiveStatusOfULPDCPSDUsPDCP-SNlength18.c \ - ./Reestablishment-Indication.c \ - ./Registration-Request.c \ - ./RelativeNarrowbandTxPower.c \ - ./ReplacingCellsList.c \ - ./ReplacingCellsList-Item.c \ - ./ReportAmountMDT.c \ - ./ReportArea.c \ - ./ReportCharacteristics.c \ - ./ReportingPeriodicityCSIR.c \ - ./ReportingPeriodicityRSRPMR.c \ - ./ReportIntervalMDT.c \ - ./ReservedSubframePattern.c \ - ./ResourceType.c \ - ./ResumeID.c \ - ./RLCMode.c \ - ./RLC-Status.c \ - ./RNTP-Threshold.c \ - ./RRC-Config-Ind.c \ - ./RRC-Context.c \ - ./RRCConnReestabIndicator.c \ - ./RRCConnSetupIndicator.c \ - ./RSRPMeasurementResult.c \ - ./RSRPMRList.c \ - ./RRCContainer.c \ - ./S1TNLLoadIndicator.c \ - ./SCGChangeIndication.c \ - ./SecondaryRATUsageReportList.c \ - ./SecondaryRATUsageReport-Item.c \ - ./SeNBSecurityKey.c \ - ./SeNBtoMeNBContainer.c \ - ./ServedCells.c \ - ./ServedCell-Information.c \ - ./ServiceType.c \ - ./SgNBCoordinationAssistanceInformation.c \ - ./SgNBResourceCoordinationInformation.c \ - ./SgNB-UE-X2AP-ID.c \ - ./SIPTOBearerDeactivationIndication.c \ - ./SharedResourceType.c \ - ./ShortMAC-I.c \ - ./SGNB-Addition-Trigger-Ind.c \ - ./SourceOfUEActivityBehaviourInformation.c \ - ./SpecialSubframe-Info.c \ - ./SpecialSubframePatterns.c \ - ./SpectrumSharingGroupID.c \ - ./SubbandCQI.c \ - ./Subscription-Based-UE-DifferentiationInfo.c \ - ./ScheduledCommunicationTime.c \ - ./SRVCCOperationPossible.c \ - ./SubbandCQICodeword0.c \ - ./SubbandCQICodeword1.c \ - ./SubbandCQIList.c \ - ./SubbandCQIItem.c \ - ./SubbandSize.c \ - ./SubscriberProfileIDforRFP.c \ - ./SubframeAllocation.c \ - ./SubframeAssignment.c \ - ./SubframeType.c \ - ./SgNBSecurityKey.c \ - ./SgNBtoMeNBContainer.c \ - ./SRBType.c \ - ./SCGConfigurationQuery.c \ - ./SULInformation.c \ - ./SupportedSULFreqBandItem.c \ - ./TABasedMDT.c \ - ./TAC.c \ - ./TAIBasedMDT.c \ - ./TAIListforMDT.c \ - ./TAI-Item.c \ - ./TAListforMDT.c \ - ./TABasedQMC.c \ - ./TAListforQMC.c \ - ./TAIBasedQMC.c \ - ./TAIListforQMC.c \ - ./TargetCellInUTRAN.c \ - ./TargeteNBtoSource-eNBTransparentContainer.c \ - ./TDD-Info.c \ - ./Threshold-RSRP.c \ - ./Threshold-RSRQ.c \ - ./TimeToWait.c \ - ./Time-UE-StayedInCell.c \ - ./Time-UE-StayedInCell-EnhancedGranularity.c \ - ./TraceActivation.c \ - ./TraceCollectionEntityIPAddress.c \ - ./TraceDepth.c \ - ./Transmission-Bandwidth.c \ - ./TransportLayerAddress.c \ - ./TunnelInformation.c \ - ./TypeOfError.c \ - ./UEAggregateMaximumBitRate.c \ - ./UEAppLayerMeasConfig.c \ - ./UE-ContextKeptIndicator.c \ - ./UEID.c \ - ./UE-HistoryInformation.c \ - ./UE-HistoryInformationFromTheUE.c \ - ./UE-S1AP-ID.c \ - ./UE-X2AP-ID.c \ - ./UE-X2AP-ID-Extension.c \ - ./UE-RLF-Report-Container.c \ - ./UE-RLF-Report-Container-for-extended-bands.c \ - ./UESecurityCapabilities.c \ - ./UESidelinkAggregateMaximumBitRate.c \ - ./UEsToBeResetList.c \ - ./UEsToBeResetList-Item.c \ - ./ULandDLSharing.c \ - ./ULConfiguration.c \ - ./UL-UE-Configuration.c \ - ./UL-GBR-PRB-usage.c \ - ./UL-HighInterferenceIndicationInfo.c \ - ./UL-HighInterferenceIndicationInfo-Item.c \ - ./UL-HighInterferenceIndication.c \ - ./UL-InterferenceOverloadIndication.c \ - ./UL-InterferenceOverloadIndication-Item.c \ - ./UL-non-GBR-PRB-usage.c \ - ./ULOnlySharing.c \ - ./ULResourceBitmapULandDLSharing.c \ - ./ULResourcesULandDLSharing.c \ - ./UL-scheduling-PDCCH-CCE-usage.c \ - ./UL-Total-PRB-usage.c \ - ./UsableABSInformation.c \ - ./UsableABSInformationFDD.c \ - ./UsableABSInformationTDD.c \ - ./UserPlaneTrafficActivityReport.c \ - ./V2XServicesAuthorized.c \ - ./VehicleUE.c \ - ./PedestrianUE.c \ - ./WidebandCQI.c \ - ./WidebandCQICodeword1.c \ - ./WLANMeasurementConfiguration.c \ - ./WLANMeasConfigNameList.c \ - ./WLANMeasConfig.c \ - ./WLANName.c \ - ./WTID.c \ - ./WTID-Type1.c \ - ./WTID-Long-Type2.c \ - ./WT-UE-XwAP-ID.c \ - ./X2BenefitValue.c \ - ./Criticality.c \ - ./Presence.c \ - ./PrivateIE-ID.c \ - ./ProcedureCode.c \ - ./ProtocolIE-ID.c \ - ./TriggeringMessage.c \ - ./E2SM-gNB-X2-eventTriggerDefinition.c \ - ./E2SM-gNB-X2-actionDefinition.c \ - ./E2SM-gNB-X2-indicationHeader.c \ - ./E2SM-gNB-X2-indicationMessage.c \ - ./E2SM-gNB-X2-callProcessID.c \ - ./E2SM-gNB-X2-controlHeader.c \ - ./E2SM-gNB-X2-controlMessage.c \ - ./ActionParameter-Item.c \ - ./ActionParameter-ID.c \ - ./ActionParameter-Value.c \ - ./CallProcess-ID.c \ - ./Interface-ID.c \ - ./InterfaceDirection.c \ - ./InterfaceMessage.c \ - ./InterfaceMessageType.c \ - ./TypeOfMessage.c \ - ./InterfaceProtocolIE-Item.c \ - ./InterfaceProtocolIE-ID.c \ - ./InterfaceProtocolIE-Test.c \ - ./InterfaceProtocolIE-Value.c \ - ./Style-ID.c \ - ./TimeStamp.c - -ASN_MODULE_HDRS= \ - ./E2AP-PDU.h \ - ./InitiatingMessage.h \ - ./SuccessfulOutcome.h \ - ./UnsuccessfulOutcome.h \ - ./RICsubscriptionRequest.h \ - ./RICsubscription.h \ - ./RICactions-ToBeSetup-List.h \ - ./RICaction-ToBeSetup-Item.h \ - ./RICsubscriptionResponse.h \ - ./RICaction-Admitted-List.h \ - ./RICaction-Admitted-Item.h \ - ./RICaction-NotAdmitted-List.h \ - ./RICaction-NotAdmitted-Item.h \ - ./RICsubscriptionFailure.h \ - ./RICsubscriptionDeleteRequest.h \ - ./RICsubscriptionDeleteResponse.h \ - ./RICsubscriptionDeleteFailure.h \ - ./RICindication.h \ - ./RICcontrolRequest.h \ - ./RICcontrolAcknowledge.h \ - ./RICcontrolFailure.h \ - ./RICserviceUpdate.h \ - ./RANfunctions-List.h \ - ./RANfunction-Item.h \ - ./RANfunctionsID-List.h \ - ./RANfunctionID-Item.h \ - ./RICserviceUpdateAcknowledge.h \ - ./RANfunctionsIDcause-List.h \ - ./RANfunctionIDcause-Item.h \ - ./RICserviceUpdateFailure.h \ - ./RICserviceQuery.h \ - ./CauseRIC.h \ - ./RANfunctionDefinition.h \ - ./RANfunctionID.h \ - ./RICactionDefinition.h \ - ./RICactionID.h \ - ./RICactionType.h \ - ./RICcallProcessID.h \ - ./RICcause.h \ - ./RICcontrolAckRequest.h \ - ./RICcontrolHeader.h \ - ./RICcontrolMessage.h \ - ./RICcontrolStatus.h \ - ./RICeventTriggerDefinition.h \ - ./RICindicationHeader.h \ - ./RICindicationMessage.h \ - ./RICindicationSN.h \ - ./RICindicationType.h \ - ./RICrequestID.h \ - ./RICsubsequentAction.h \ - ./RICsubsequentActionType.h \ - ./RICtimeToWait.h \ - ./HandoverRequest.h \ - ./UE-ContextInformation.h \ - ./E-RABs-ToBeSetup-List.h \ - ./E-RABs-ToBeSetup-Item.h \ - ./MobilityInformation.h \ - ./UE-ContextReferenceAtSeNB.h \ - ./UE-ContextReferenceAtWT.h \ - ./UE-ContextReferenceAtSgNB.h \ - ./HandoverRequestAcknowledge.h \ - ./E-RABs-Admitted-List.h \ - ./E-RABs-Admitted-Item.h \ - ./HandoverPreparationFailure.h \ - ./HandoverReport.h \ - ./SNStatusTransfer.h \ - ./E-RABs-SubjectToStatusTransfer-List.h \ - ./E-RABs-SubjectToStatusTransfer-Item.h \ - ./UEContextRelease.h \ - ./HandoverCancel.h \ - ./ErrorIndication.h \ - ./ResetRequest.h \ - ./ResetResponse.h \ - ./X2SetupRequest.h \ - ./X2SetupResponse.h \ - ./X2SetupFailure.h \ - ./LoadInformation.h \ - ./CellInformation-List.h \ - ./CellInformation-Item.h \ - ./ENBConfigurationUpdate.h \ - ./ServedCellsToModify.h \ - ./ServedCellsToModify-Item.h \ - ./Old-ECGIs.h \ - ./ENBConfigurationUpdateAcknowledge.h \ - ./ENBConfigurationUpdateFailure.h \ - ./ResourceStatusRequest.h \ - ./CellToReport-List.h \ - ./CellToReport-Item.h \ - ./ReportingPeriodicity.h \ - ./PartialSuccessIndicator.h \ - ./ResourceStatusResponse.h \ - ./MeasurementInitiationResult-List.h \ - ./MeasurementInitiationResult-Item.h \ - ./MeasurementFailureCause-List.h \ - ./MeasurementFailureCause-Item.h \ - ./ResourceStatusFailure.h \ - ./CompleteFailureCauseInformation-List.h \ - ./CompleteFailureCauseInformation-Item.h \ - ./ResourceStatusUpdate.h \ - ./CellMeasurementResult-List.h \ - ./CellMeasurementResult-Item.h \ - ./PrivateMessage.h \ - ./MobilityChangeRequest.h \ - ./MobilityChangeAcknowledge.h \ - ./MobilityChangeFailure.h \ - ./RLFIndication.h \ - ./CellActivationRequest.h \ - ./ServedCellsToActivate.h \ - ./ServedCellsToActivate-Item.h \ - ./CellActivationResponse.h \ - ./ActivatedCellList.h \ - ./ActivatedCellList-Item.h \ - ./CellActivationFailure.h \ - ./X2Release.h \ - ./X2APMessageTransfer.h \ - ./RNL-Header.h \ - ./X2AP-Message.h \ - ./SeNBAdditionRequest.h \ - ./E-RABs-ToBeAdded-List.h \ - ./E-RABs-ToBeAdded-Item.h \ - ./E-RABs-ToBeAdded-Item-SCG-Bearer.h \ - ./E-RABs-ToBeAdded-Item-Split-Bearer.h \ - ./SeNBAdditionRequestAcknowledge.h \ - ./E-RABs-Admitted-ToBeAdded-List.h \ - ./E-RABs-Admitted-ToBeAdded-Item.h \ - ./E-RABs-Admitted-ToBeAdded-Item-SCG-Bearer.h \ - ./E-RABs-Admitted-ToBeAdded-Item-Split-Bearer.h \ - ./SeNBAdditionRequestReject.h \ - ./SeNBReconfigurationComplete.h \ - ./ResponseInformationSeNBReconfComp.h \ - ./ResponseInformationSeNBReconfComp-SuccessItem.h \ - ./ResponseInformationSeNBReconfComp-RejectByMeNBItem.h \ - ./SeNBModificationRequest.h \ - ./UE-ContextInformationSeNBModReq.h \ - ./E-RABs-ToBeAdded-List-ModReq.h \ - ./E-RABs-ToBeAdded-ModReqItem.h \ - ./E-RABs-ToBeAdded-ModReqItem-SCG-Bearer.h \ - ./E-RABs-ToBeAdded-ModReqItem-Split-Bearer.h \ - ./E-RABs-ToBeModified-List-ModReq.h \ - ./E-RABs-ToBeModified-ModReqItem.h \ - ./E-RABs-ToBeModified-ModReqItem-SCG-Bearer.h \ - ./E-RABs-ToBeModified-ModReqItem-Split-Bearer.h \ - ./E-RABs-ToBeReleased-List-ModReq.h \ - ./E-RABs-ToBeReleased-ModReqItem.h \ - ./E-RABs-ToBeReleased-ModReqItem-SCG-Bearer.h \ - ./E-RABs-ToBeReleased-ModReqItem-Split-Bearer.h \ - ./SeNBModificationRequestAcknowledge.h \ - ./E-RABs-Admitted-ToBeAdded-ModAckList.h \ - ./E-RABs-Admitted-ToBeAdded-ModAckItem.h \ - ./E-RABs-Admitted-ToBeAdded-ModAckItem-SCG-Bearer.h \ - ./E-RABs-Admitted-ToBeAdded-ModAckItem-Split-Bearer.h \ - ./E-RABs-Admitted-ToBeModified-ModAckList.h \ - ./E-RABs-Admitted-ToBeModified-ModAckItem.h \ - ./E-RABs-Admitted-ToBeModified-ModAckItem-SCG-Bearer.h \ - ./E-RABs-Admitted-ToBeModified-ModAckItem-Split-Bearer.h \ - ./E-RABs-Admitted-ToBeReleased-ModAckList.h \ - ./E-RABs-Admitted-ToReleased-ModAckItem.h \ - ./E-RABs-Admitted-ToBeReleased-ModAckItem-SCG-Bearer.h \ - ./E-RABs-Admitted-ToBeReleased-ModAckItem-Split-Bearer.h \ - ./SeNBModificationRequestReject.h \ - ./SeNBModificationRequired.h \ - ./E-RABs-ToBeReleased-ModReqd.h \ - ./E-RABs-ToBeReleased-ModReqdItem.h \ - ./SeNBModificationConfirm.h \ - ./SeNBModificationRefuse.h \ - ./SeNBReleaseRequest.h \ - ./E-RABs-ToBeReleased-List-RelReq.h \ - ./E-RABs-ToBeReleased-RelReqItem.h \ - ./E-RABs-ToBeReleased-RelReqItem-SCG-Bearer.h \ - ./E-RABs-ToBeReleased-RelReqItem-Split-Bearer.h \ - ./SeNBReleaseRequired.h \ - ./SeNBReleaseConfirm.h \ - ./E-RABs-ToBeReleased-List-RelConf.h \ - ./E-RABs-ToBeReleased-RelConfItem.h \ - ./E-RABs-ToBeReleased-RelConfItem-SCG-Bearer.h \ - ./E-RABs-ToBeReleased-RelConfItem-Split-Bearer.h \ - ./SeNBCounterCheckRequest.h \ - ./E-RABs-SubjectToCounterCheck-List.h \ - ./E-RABs-SubjectToCounterCheckItem.h \ - ./X2RemovalRequest.h \ - ./X2RemovalResponse.h \ - ./X2RemovalFailure.h \ - ./RetrieveUEContextRequest.h \ - ./RetrieveUEContextResponse.h \ - ./UE-ContextInformationRetrieve.h \ - ./E-RABs-ToBeSetup-ListRetrieve.h \ - ./E-RABs-ToBeSetupRetrieve-Item.h \ - ./RetrieveUEContextFailure.h \ - ./SgNBAdditionRequest.h \ - ./E-RABs-ToBeAdded-SgNBAddReqList.h \ - ./E-RABs-ToBeAdded-SgNBAddReq-Item.h \ - ./E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPpresent.h \ - ./E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPnotpresent.h \ - ./SgNBAdditionRequestAcknowledge.h \ - ./E-RABs-Admitted-ToBeAdded-SgNBAddReqAckList.h \ - ./E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item.h \ - ./E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPpresent.h \ - ./E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPnotpresent.h \ - ./SgNBAdditionRequestReject.h \ - ./SgNBReconfigurationComplete.h \ - ./ResponseInformationSgNBReconfComp.h \ - ./ResponseInformationSgNBReconfComp-SuccessItem.h \ - ./ResponseInformationSgNBReconfComp-RejectByMeNBItem.h \ - ./SgNBModificationRequest.h \ - ./UE-ContextInformation-SgNBModReq.h \ - ./E-RABs-ToBeAdded-SgNBModReq-List.h \ - ./E-RABs-ToBeAdded-SgNBModReq-Item.h \ - ./E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPpresent.h \ - ./E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPnotpresent.h \ - ./E-RABs-ToBeModified-SgNBModReq-List.h \ - ./E-RABs-ToBeModified-SgNBModReq-Item.h \ - ./E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPpresent.h \ - ./E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPnotpresent.h \ - ./E-RABs-ToBeReleased-SgNBModReq-List.h \ - ./E-RABs-ToBeReleased-SgNBModReq-Item.h \ - ./E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPpresent.h \ - ./E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPnotpresent.h \ - ./SgNBModificationRequestAcknowledge.h \ - ./E-RABs-Admitted-ToBeAdded-SgNBModAckList.h \ - ./E-RABs-Admitted-ToBeAdded-SgNBModAck-Item.h \ - ./E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPpresent.h \ - ./E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPnotpresent.h \ - ./E-RABs-Admitted-ToBeModified-SgNBModAckList.h \ - ./E-RABs-Admitted-ToBeModified-SgNBModAck-Item.h \ - ./E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPpresent.h \ - ./E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPnotpresent.h \ - ./E-RABs-Admitted-ToBeReleased-SgNBModAckList.h \ - ./E-RABs-Admitted-ToReleased-SgNBModAck-Item.h \ - ./E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPpresent.h \ - ./E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPnotpresent.h \ - ./SgNBModificationRequestReject.h \ - ./SgNBModificationRequired.h \ - ./E-RABs-ToBeReleased-SgNBModReqdList.h \ - ./E-RABs-ToBeReleased-SgNBModReqd-Item.h \ - ./E-RABs-ToBeModified-SgNBModReqdList.h \ - ./E-RABs-ToBeModified-SgNBModReqd-Item.h \ - ./E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPpresent.h \ - ./E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPnotpresent.h \ - ./SgNBModificationConfirm.h \ - ./E-RABs-AdmittedToBeModified-SgNBModConfList.h \ - ./E-RABs-AdmittedToBeModified-SgNBModConf-Item.h \ - ./E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPpresent.h \ - ./E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPnotpresent.h \ - ./SgNBModificationRefuse.h \ - ./SgNBReleaseRequest.h \ - ./E-RABs-ToBeReleased-SgNBRelReqList.h \ - ./E-RABs-ToBeReleased-SgNBRelReq-Item.h \ - ./E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPpresent.h \ - ./E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPnotpresent.h \ - ./SgNBReleaseRequestAcknowledge.h \ - ./E-RABs-Admitted-ToBeReleased-SgNBRelReqAckList.h \ - ./E-RABs-Admitted-ToBeReleased-SgNBRelReqAck-Item.h \ - ./SgNBReleaseRequestReject.h \ - ./SgNBReleaseRequired.h \ - ./E-RABs-ToBeReleased-SgNBRelReqdList.h \ - ./E-RABs-ToBeReleased-SgNBRelReqd-Item.h \ - ./SgNBReleaseConfirm.h \ - ./E-RABs-ToBeReleased-SgNBRelConfList.h \ - ./E-RABs-ToBeReleased-SgNBRelConf-Item.h \ - ./E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPpresent.h \ - ./E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPnotpresent.h \ - ./SgNBCounterCheckRequest.h \ - ./E-RABs-SubjectToSgNBCounterCheck-List.h \ - ./E-RABs-SubjectToSgNBCounterCheck-Item.h \ - ./SgNBChangeRequired.h \ - ./SgNBChangeConfirm.h \ - ./E-RABs-ToBeReleased-SgNBChaConfList.h \ - ./E-RABs-ToBeReleased-SgNBChaConf-Item.h \ - ./E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPpresent.h \ - ./E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPnotpresent.h \ - ./RRCTransfer.h \ - ./SgNBChangeRefuse.h \ - ./ENDCX2SetupRequest.h \ - ./InitiatingNodeType-EndcX2Setup.h \ - ./ServedEUTRAcellsENDCX2ManagementList.h \ - ./ServedNRcellsENDCX2ManagementList.h \ - ./ServedNRCell-Information.h \ - ./FDD-InfoServedNRCell-Information.h \ - ./FDD-InfoNeighbourServedNRCell-Information.h \ - ./TDD-InfoServedNRCell-Information.h \ - ./TDD-InfoNeighbourServedNRCell-Information.h \ - ./NRNeighbour-Information.h \ - ./CellAssistanceInformation.h \ - ./Limited-list.h \ - ./ENDCX2SetupResponse.h \ - ./RespondingNodeType-EndcX2Setup.h \ - ./ENDCX2SetupFailure.h \ - ./ENDCConfigurationUpdate.h \ - ./InitiatingNodeType-EndcConfigUpdate.h \ - ./ServedEUTRAcellsToModifyListENDCConfUpd.h \ - ./ServedEUTRAcellsToDeleteListENDCConfUpd.h \ - ./ServedNRcellsToModifyENDCConfUpdList.h \ - ./ServedNRCellsToModify-Item.h \ - ./ServedNRcellsToDeleteENDCConfUpdList.h \ - ./ENDCConfigurationUpdateAcknowledge.h \ - ./RespondingNodeType-EndcConfigUpdate.h \ - ./ENDCConfigurationUpdateFailure.h \ - ./ENDCCellActivationRequest.h \ - ./ServedNRCellsToActivate.h \ - ./ServedNRCellsToActivate-Item.h \ - ./ENDCCellActivationResponse.h \ - ./ActivatedNRCellList.h \ - ./ActivatedNRCellList-Item.h \ - ./ENDCCellActivationFailure.h \ - ./SecondaryRATDataUsageReport.h \ - ./SgNBActivityNotification.h \ - ./ENDCPartialResetRequired.h \ - ./ENDCPartialResetConfirm.h \ - ./EUTRANRCellResourceCoordinationRequest.h \ - ./InitiatingNodeType-EutranrCellResourceCoordination.h \ - ./ListofEUTRACellsinEUTRACoordinationReq.h \ - ./ListofEUTRACellsinNRCoordinationReq.h \ - ./ListofNRCellsinNRCoordinationReq.h \ - ./EUTRANRCellResourceCoordinationResponse.h \ - ./RespondingNodeType-EutranrCellResourceCoordination.h \ - ./ListofEUTRACellsinEUTRACoordinationResp.h \ - ./ListofNRCellsinNRCoordinationResp.h \ - ./ENDCX2RemovalRequest.h \ - ./InitiatingNodeType-EndcX2Removal.h \ - ./ENDCX2RemovalResponse.h \ - ./RespondingNodeType-EndcX2Removal.h \ - ./ENDCX2RemovalFailure.h \ - ./DataForwardingAddressIndication.h \ - ./E-RABs-DataForwardingAddress-List.h \ - ./E-RABs-DataForwardingAddress-Item.h \ - ./GNBStatusIndication.h \ - ./ProtocolIE-Container.h \ - ./ProtocolIE-Single-Container.h \ - ./ProtocolIE-Field.h \ - ./ProtocolIE-ContainerPair.h \ - ./ProtocolIE-FieldPair.h \ - ./ProtocolIE-ContainerList.h \ - ./ProtocolIE-ContainerPairList.h \ - ./ProtocolExtensionContainer.h \ - ./ProtocolExtensionField.h \ - ./PrivateIE-Container.h \ - ./PrivateIE-Field.h \ - ./ABSInformation.h \ - ./ABSInformationFDD.h \ - ./ABSInformationTDD.h \ - ./ABS-Status.h \ - ./ActivationID.h \ - ./AdditionalSpecialSubframe-Info.h \ - ./AdditionalSpecialSubframePatterns.h \ - ./AdditionalSpecialSubframeExtension-Info.h \ - ./AdditionalSpecialSubframePatternsExtension.h \ - ./AerialUEsubscriptionInformation.h \ - ./AllocationAndRetentionPriority.h \ - ./AreaScopeOfMDT.h \ - ./AreaScopeOfQMC.h \ - ./AS-SecurityInformation.h \ - ./BandwidthReducedSI.h \ - ./BearerType.h \ - ./BenefitMetric.h \ - ./BitRate.h \ - ./BroadcastPLMNs-Item.h \ - ./BluetoothMeasurementConfiguration.h \ - ./BluetoothMeasConfigNameList.h \ - ./BluetoothMeasConfig.h \ - ./BluetoothName.h \ - ./CapacityValue.h \ - ./Cause.h \ - ./CauseMisc.h \ - ./CauseProtocol.h \ - ./CauseRadioNetwork.h \ - ./CauseTransport.h \ - ./CellBasedMDT.h \ - ./CellBasedQMC.h \ - ./CellCapacityClassValue.h \ - ./CellDeploymentStatusIndicator.h \ - ./CellIdListforMDT.h \ - ./CellIdListforQMC.h \ - ./CellReplacingInfo.h \ - ./CellReportingIndicator.h \ - ./Cell-Size.h \ - ./CellType.h \ - ./CNTypeRestrictions.h \ - ./CNTypeRestrictionsItem.h \ - ./CoMPHypothesisSet.h \ - ./CoMPHypothesisSetItem.h \ - ./CoMPInformation.h \ - ./CoMPInformationItem.h \ - ./CoMPInformationStartTime.h \ - ./CompositeAvailableCapacity.h \ - ./CompositeAvailableCapacityGroup.h \ - ./Correlation-ID.h \ - ./COUNTvalue.h \ - ./COUNTValueExtended.h \ - ./COUNTvaluePDCP-SNlength18.h \ - ./CoverageModificationList.h \ - ./CoverageModification-Item.h \ - ./CriticalityDiagnostics.h \ - ./CriticalityDiagnostics-IE-List.h \ - ./CRNTI.h \ - ./CSGMembershipStatus.h \ - ./CSG-Id.h \ - ./CSIReportList.h \ - ./CSIReportPerCSIProcess.h \ - ./CSIReportPerCSIProcessItem.h \ - ./CyclicPrefixDL.h \ - ./CyclicPrefixUL.h \ - ./DataTrafficResources.h \ - ./DataTrafficResourceIndication.h \ - ./DeactivationIndication.h \ - ./DeliveryStatus.h \ - ./DL-ABS-status.h \ - ./DL-Forwarding.h \ - ./DL-GBR-PRB-usage.h \ - ./DL-non-GBR-PRB-usage.h \ - ./DLResourceBitmapULandDLSharing.h \ - ./DLResourcesULandDLSharing.h \ - ./DL-scheduling-PDCCH-CCE-usage.h \ - ./DL-Total-PRB-usage.h \ - ./DRB-ID.h \ - ./DuplicationActivation.h \ - ./DynamicDLTransmissionInformation.h \ - ./DynamicNAICSInformation.h \ - ./EARFCN.h \ - ./EARFCNExtension.h \ - ./ECGI.h \ - ./EnhancedRNTP.h \ - ./EnhancedRNTPStartTime.h \ - ./ENB-ID.h \ - ./EncryptionAlgorithms.h \ - ./EN-DC-ResourceConfiguration.h \ - ./EPLMNs.h \ - ./ERABActivityNotifyItemList.h \ - ./ERABActivityNotifyItem.h \ - ./E-RAB-ID.h \ - ./E-RAB-Level-QoS-Parameters.h \ - ./E-RAB-List.h \ - ./E-RAB-Item.h \ - ./E-RABUsageReportList.h \ - ./E-RABUsageReport-Item.h \ - ./EUTRA-Mode-Info.h \ - ./EUTRANCellIdentifier.h \ - ./EUTRANTraceID.h \ - ./EventType.h \ - ./ExpectedUEBehaviour.h \ - ./ExpectedUEActivityBehaviour.h \ - ./ExpectedActivityPeriod.h \ - ./ExpectedIdlePeriod.h \ - ./ExpectedHOInterval.h \ - ./ExtendedULInterferenceOverloadInfo.h \ - ./ExtendedBitRate.h \ - ./FDD-Info.h \ - ./ForbiddenInterRATs.h \ - ./ForbiddenTAs.h \ - ./ForbiddenTAs-Item.h \ - ./ForbiddenTACs.h \ - ./ForbiddenLAs.h \ - ./ForbiddenLAs-Item.h \ - ./ForbiddenLACs.h \ - ./Fourframes.h \ - ./FreqBandIndicator.h \ - ./FreqBandIndicatorPriority.h \ - ./FreqBandNrItem.h \ - ./GBR-QosInformation.h \ - ./GlobalENB-ID.h \ - ./GlobalGNB-ID.h \ - ./GNBOverloadInformation.h \ - ./GTPtunnelEndpoint.h \ - ./GTP-TEI.h \ - ./GUGroupIDList.h \ - ./GU-Group-ID.h \ - ./GUMMEI.h \ - ./GNB-ID.h \ - ./HandoverReportType.h \ - ./HandoverRestrictionList.h \ - ./HFN.h \ - ./HFNModified.h \ - ./HFNforPDCP-SNlength18.h \ - ./HWLoadIndicator.h \ - ./IntegrityProtectionAlgorithms.h \ - ./InterfacesToTrace.h \ - ./InvokeIndication.h \ - ./Key-eNodeB-Star.h \ - ./LAC.h \ - ./LastVisitedCell-Item.h \ - ./LastVisitedEUTRANCellInformation.h \ - ./LastVisitedGERANCellInformation.h \ - ./LastVisitedNGRANCellInformation.h \ - ./LastVisitedUTRANCellInformation.h \ - ./LCID.h \ - ./LHN-ID.h \ - ./Links-to-log.h \ - ./LoadIndicator.h \ - ./LocationReportingInformation.h \ - ./M1PeriodicReporting.h \ - ./M1ReportingTrigger.h \ - ./M1ThresholdEventA2.h \ - ./M3Configuration.h \ - ./M3period.h \ - ./M4Configuration.h \ - ./M4period.h \ - ./M5Configuration.h \ - ./M5period.h \ - ./M6Configuration.h \ - ./M6report-interval.h \ - ./M6delay-threshold.h \ - ./M7Configuration.h \ - ./M7period.h \ - ./MakeBeforeBreakIndicator.h \ - ./ManagementBasedMDTallowed.h \ - ./Masked-IMEISV.h \ - ./MDT-Activation.h \ - ./MDT-Configuration.h \ - ./MDTPLMNList.h \ - ./MDT-Location-Info.h \ - ./Measurement-ID.h \ - ./MeasurementsToActivate.h \ - ./MeasurementThresholdA2.h \ - ./MeNBCoordinationAssistanceInformation.h \ - ./MeNBResourceCoordinationInformation.h \ - ./MeNBtoSeNBContainer.h \ - ./MME-Group-ID.h \ - ./MME-Code.h \ - ./MBMS-Service-Area-Identity-List.h \ - ./MBMS-Service-Area-Identity.h \ - ./MBSFN-Subframe-Infolist.h \ - ./MBSFN-Subframe-Info.h \ - ./MobilityParametersModificationRange.h \ - ./MobilityParametersInformation.h \ - ./MultibandInfoList.h \ - ./BandInfo.h \ - ./MeNBtoSgNBContainer.h \ - ./SplitSRBs.h \ - ./SplitSRB.h \ - ./UENRMeasurement.h \ - ./Neighbour-Information.h \ - ./NextHopChainingCount.h \ - ./NewDRBIDrequest.h \ - ./Number-of-Antennaports.h \ - ./NRFreqInfo.h \ - ./NRCellIdentifier.h \ - ./NRCGI.h \ - ./NRPCI.h \ - ./NRrestrictioninEPSasSecondaryRAT.h \ - ./NRrestrictionin5GS.h \ - ./NRencryptionAlgorithms.h \ - ./NRintegrityProtectionAlgorithms.h \ - ./NR-TxBW.h \ - ./NRNRB.h \ - ./NRSCS.h \ - ./NRS-NSSS-PowerOffset.h \ - ./FiveGS-TAC.h \ - ./NRUESecurityCapabilities.h \ - ./NSSS-NumOccasionDifferentPrecoder.h \ - ./OffsetOfNbiotChannelNumberToEARFCN.h \ - ./Oneframe.h \ - ./Packet-LossRate.h \ - ./PA-Values.h \ - ./PDCPChangeIndication.h \ - ./PDCP-SN.h \ - ./PDCP-SNExtended.h \ - ./PDCP-SNlength18.h \ - ./PDCPSnLength.h \ - ./PCI.h \ - ./PLMN-Identity.h \ - ./Port-Number.h \ - ./PRACH-Configuration.h \ - ./PLMNAreaBasedQMC.h \ - ./PLMNListforQMC.h \ - ./Pre-emptionCapability.h \ - ./Pre-emptionVulnerability.h \ - ./PriorityLevel.h \ - ./ProSeAuthorized.h \ - ./ProSeDirectDiscovery.h \ - ./ProSeDirectCommunication.h \ - ./ProSeUEtoNetworkRelaying.h \ - ./ProtectedEUTRAResourceIndication.h \ - ./ProtectedFootprintTimePattern.h \ - ./ProtectedResourceList.h \ - ./ProtectedResourceList-Item.h \ - ./QCI.h \ - ./RadioframeAllocationOffset.h \ - ./RadioframeAllocationPeriod.h \ - ./RadioResourceStatus.h \ - ./ReceiveStatusofULPDCPSDUs.h \ - ./ReceiveStatusOfULPDCPSDUsExtended.h \ - ./ReceiveStatusOfULPDCPSDUsPDCP-SNlength18.h \ - ./Reestablishment-Indication.h \ - ./Registration-Request.h \ - ./RelativeNarrowbandTxPower.h \ - ./ReplacingCellsList.h \ - ./ReplacingCellsList-Item.h \ - ./ReportAmountMDT.h \ - ./ReportArea.h \ - ./ReportCharacteristics.h \ - ./ReportingPeriodicityCSIR.h \ - ./ReportingPeriodicityRSRPMR.h \ - ./ReportIntervalMDT.h \ - ./ReservedSubframePattern.h \ - ./ResourceType.h \ - ./ResumeID.h \ - ./RLCMode.h \ - ./RLC-Status.h \ - ./RNTP-Threshold.h \ - ./RRC-Config-Ind.h \ - ./RRC-Context.h \ - ./RRCConnReestabIndicator.h \ - ./RRCConnSetupIndicator.h \ - ./RSRPMeasurementResult.h \ - ./RSRPMRList.h \ - ./RRCContainer.h \ - ./S1TNLLoadIndicator.h \ - ./SCGChangeIndication.h \ - ./SecondaryRATUsageReportList.h \ - ./SecondaryRATUsageReport-Item.h \ - ./SeNBSecurityKey.h \ - ./SeNBtoMeNBContainer.h \ - ./ServedCells.h \ - ./ServedCell-Information.h \ - ./ServiceType.h \ - ./SgNBCoordinationAssistanceInformation.h \ - ./SgNBResourceCoordinationInformation.h \ - ./SgNB-UE-X2AP-ID.h \ - ./SIPTOBearerDeactivationIndication.h \ - ./SharedResourceType.h \ - ./ShortMAC-I.h \ - ./SGNB-Addition-Trigger-Ind.h \ - ./SourceOfUEActivityBehaviourInformation.h \ - ./SpecialSubframe-Info.h \ - ./SpecialSubframePatterns.h \ - ./SpectrumSharingGroupID.h \ - ./SubbandCQI.h \ - ./Subscription-Based-UE-DifferentiationInfo.h \ - ./ScheduledCommunicationTime.h \ - ./SRVCCOperationPossible.h \ - ./SubbandCQICodeword0.h \ - ./SubbandCQICodeword1.h \ - ./SubbandCQIList.h \ - ./SubbandCQIItem.h \ - ./SubbandSize.h \ - ./SubscriberProfileIDforRFP.h \ - ./SubframeAllocation.h \ - ./SubframeAssignment.h \ - ./SubframeType.h \ - ./SgNBSecurityKey.h \ - ./SgNBtoMeNBContainer.h \ - ./SRBType.h \ - ./SCGConfigurationQuery.h \ - ./SULInformation.h \ - ./SupportedSULFreqBandItem.h \ - ./TABasedMDT.h \ - ./TAC.h \ - ./TAIBasedMDT.h \ - ./TAIListforMDT.h \ - ./TAI-Item.h \ - ./TAListforMDT.h \ - ./TABasedQMC.h \ - ./TAListforQMC.h \ - ./TAIBasedQMC.h \ - ./TAIListforQMC.h \ - ./TargetCellInUTRAN.h \ - ./TargeteNBtoSource-eNBTransparentContainer.h \ - ./TDD-Info.h \ - ./Threshold-RSRP.h \ - ./Threshold-RSRQ.h \ - ./TimeToWait.h \ - ./Time-UE-StayedInCell.h \ - ./Time-UE-StayedInCell-EnhancedGranularity.h \ - ./TraceActivation.h \ - ./TraceCollectionEntityIPAddress.h \ - ./TraceDepth.h \ - ./Transmission-Bandwidth.h \ - ./TransportLayerAddress.h \ - ./TunnelInformation.h \ - ./TypeOfError.h \ - ./UEAggregateMaximumBitRate.h \ - ./UEAppLayerMeasConfig.h \ - ./UE-ContextKeptIndicator.h \ - ./UEID.h \ - ./UE-HistoryInformation.h \ - ./UE-HistoryInformationFromTheUE.h \ - ./UE-S1AP-ID.h \ - ./UE-X2AP-ID.h \ - ./UE-X2AP-ID-Extension.h \ - ./UE-RLF-Report-Container.h \ - ./UE-RLF-Report-Container-for-extended-bands.h \ - ./UESecurityCapabilities.h \ - ./UESidelinkAggregateMaximumBitRate.h \ - ./UEsToBeResetList.h \ - ./UEsToBeResetList-Item.h \ - ./ULandDLSharing.h \ - ./ULConfiguration.h \ - ./UL-UE-Configuration.h \ - ./UL-GBR-PRB-usage.h \ - ./UL-HighInterferenceIndicationInfo.h \ - ./UL-HighInterferenceIndicationInfo-Item.h \ - ./UL-HighInterferenceIndication.h \ - ./UL-InterferenceOverloadIndication.h \ - ./UL-InterferenceOverloadIndication-Item.h \ - ./UL-non-GBR-PRB-usage.h \ - ./ULOnlySharing.h \ - ./ULResourceBitmapULandDLSharing.h \ - ./ULResourcesULandDLSharing.h \ - ./UL-scheduling-PDCCH-CCE-usage.h \ - ./UL-Total-PRB-usage.h \ - ./UsableABSInformation.h \ - ./UsableABSInformationFDD.h \ - ./UsableABSInformationTDD.h \ - ./UserPlaneTrafficActivityReport.h \ - ./V2XServicesAuthorized.h \ - ./VehicleUE.h \ - ./PedestrianUE.h \ - ./WidebandCQI.h \ - ./WidebandCQICodeword1.h \ - ./WLANMeasurementConfiguration.h \ - ./WLANMeasConfigNameList.h \ - ./WLANMeasConfig.h \ - ./WLANName.h \ - ./WTID.h \ - ./WTID-Type1.h \ - ./WTID-Long-Type2.h \ - ./WT-UE-XwAP-ID.h \ - ./X2BenefitValue.h \ - ./Criticality.h \ - ./Presence.h \ - ./PrivateIE-ID.h \ - ./ProcedureCode.h \ - ./ProtocolIE-ID.h \ - ./TriggeringMessage.h \ - ./E2SM-gNB-X2-eventTriggerDefinition.h \ - ./E2SM-gNB-X2-actionDefinition.h \ - ./E2SM-gNB-X2-indicationHeader.h \ - ./E2SM-gNB-X2-indicationMessage.h \ - ./E2SM-gNB-X2-callProcessID.h \ - ./E2SM-gNB-X2-controlHeader.h \ - ./E2SM-gNB-X2-controlMessage.h \ - ./ActionParameter-Item.h \ - ./ActionParameter-ID.h \ - ./ActionParameter-Value.h \ - ./CallProcess-ID.h \ - ./Interface-ID.h \ - ./InterfaceDirection.h \ - ./InterfaceMessage.h \ - ./InterfaceMessageType.h \ - ./TypeOfMessage.h \ - ./InterfaceProtocolIE-Item.h \ - ./InterfaceProtocolIE-ID.h \ - ./InterfaceProtocolIE-Test.h \ - ./InterfaceProtocolIE-Value.h \ - ./Style-ID.h \ - ./TimeStamp.h - -ASN_MODULE_HDRS+=./ANY.h -ASN_MODULE_SRCS+=./ANY.c -ASN_MODULE_HDRS+=./OCTET_STRING.h -ASN_MODULE_HDRS+=./OPEN_TYPE.h -ASN_MODULE_SRCS+=./OPEN_TYPE.c -ASN_MODULE_HDRS+=./constr_CHOICE.h -ASN_MODULE_HDRS+=./BOOLEAN.h -ASN_MODULE_SRCS+=./BOOLEAN.c -ASN_MODULE_HDRS+=./INTEGER.h -ASN_MODULE_SRCS+=./INTEGER.c -ASN_MODULE_HDRS+=./NULL.h -ASN_MODULE_SRCS+=./NULL.c -ASN_MODULE_HDRS+=./NativeEnumerated.h -ASN_MODULE_SRCS+=./NativeEnumerated.c -ASN_MODULE_HDRS+=./NativeInteger.h -ASN_MODULE_SRCS+=./NativeInteger.c -ASN_MODULE_HDRS+=./OBJECT_IDENTIFIER.h -ASN_MODULE_SRCS+=./OBJECT_IDENTIFIER.c -ASN_MODULE_HDRS+=./PrintableString.h -ASN_MODULE_SRCS+=./PrintableString.c -ASN_MODULE_HDRS+=./asn_SEQUENCE_OF.h -ASN_MODULE_SRCS+=./asn_SEQUENCE_OF.c -ASN_MODULE_HDRS+=./asn_SET_OF.h -ASN_MODULE_SRCS+=./asn_SET_OF.c -ASN_MODULE_SRCS+=./constr_CHOICE.c -ASN_MODULE_HDRS+=./constr_SEQUENCE.h -ASN_MODULE_SRCS+=./constr_SEQUENCE.c -ASN_MODULE_HDRS+=./constr_SEQUENCE_OF.h -ASN_MODULE_SRCS+=./constr_SEQUENCE_OF.c -ASN_MODULE_HDRS+=./constr_SET_OF.h -ASN_MODULE_SRCS+=./constr_SET_OF.c -ASN_MODULE_HDRS+=./asn_application.h -ASN_MODULE_SRCS+=./asn_application.c -ASN_MODULE_HDRS+=./asn_ioc.h -ASN_MODULE_HDRS+=./asn_system.h -ASN_MODULE_HDRS+=./asn_codecs.h -ASN_MODULE_HDRS+=./asn_internal.h -ASN_MODULE_SRCS+=./asn_internal.c -ASN_MODULE_HDRS+=./asn_random_fill.h -ASN_MODULE_SRCS+=./asn_random_fill.c -ASN_MODULE_HDRS+=./asn_bit_data.h -ASN_MODULE_SRCS+=./asn_bit_data.c -ASN_MODULE_SRCS+=./OCTET_STRING.c -ASN_MODULE_HDRS+=./BIT_STRING.h -ASN_MODULE_SRCS+=./BIT_STRING.c -ASN_MODULE_SRCS+=./asn_codecs_prim.c -ASN_MODULE_HDRS+=./asn_codecs_prim.h -ASN_MODULE_HDRS+=./ber_tlv_length.h -ASN_MODULE_SRCS+=./ber_tlv_length.c -ASN_MODULE_HDRS+=./ber_tlv_tag.h -ASN_MODULE_SRCS+=./ber_tlv_tag.c -ASN_MODULE_HDRS+=./ber_decoder.h -ASN_MODULE_SRCS+=./ber_decoder.c -ASN_MODULE_HDRS+=./der_encoder.h -ASN_MODULE_SRCS+=./der_encoder.c -ASN_MODULE_HDRS+=./constr_TYPE.h -ASN_MODULE_SRCS+=./constr_TYPE.c -ASN_MODULE_HDRS+=./constraints.h -ASN_MODULE_SRCS+=./constraints.c -ASN_MODULE_HDRS+=./xer_support.h -ASN_MODULE_SRCS+=./xer_support.c -ASN_MODULE_HDRS+=./xer_decoder.h -ASN_MODULE_SRCS+=./xer_decoder.c -ASN_MODULE_HDRS+=./xer_encoder.h -ASN_MODULE_SRCS+=./xer_encoder.c -ASN_MODULE_HDRS+=./per_support.h -ASN_MODULE_SRCS+=./per_support.c -ASN_MODULE_HDRS+=./per_decoder.h -ASN_MODULE_SRCS+=./per_decoder.c -ASN_MODULE_HDRS+=./per_encoder.h -ASN_MODULE_SRCS+=./per_encoder.c -ASN_MODULE_HDRS+=./per_opentype.h -ASN_MODULE_SRCS+=./per_opentype.c - -ASN_MODULE_CFLAGS=-DASN_DISABLE_OER_SUPPORT - -lib_LTLIBRARIES+=libasncodec.la -libasncodec_la_SOURCES=$(ASN_MODULE_SRCS) $(ASN_MODULE_HDRS) -libasncodec_la_CPPFLAGS=-I$(top_srcdir)/./ -libasncodec_la_CFLAGS=$(ASN_MODULE_CFLAGS) -libasncodec_la_LDFLAGS=-lm diff --git a/e2sim/previous/ASN1c/ManagementBasedMDTallowed.c b/e2sim/previous/ASN1c/ManagementBasedMDTallowed.c deleted file mode 100644 index c8912f3..0000000 --- a/e2sim/previous/ASN1c/ManagementBasedMDTallowed.c +++ /dev/null @@ -1,71 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "ManagementBasedMDTallowed.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_ManagementBasedMDTallowed_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 0, 0 } /* (0..0,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_ManagementBasedMDTallowed_value2enum_1[] = { - { 0, 7, "allowed" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_ManagementBasedMDTallowed_enum2value_1[] = { - 0 /* allowed(0) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_ManagementBasedMDTallowed_specs_1 = { - asn_MAP_ManagementBasedMDTallowed_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_ManagementBasedMDTallowed_enum2value_1, /* N => "tag"; sorted by N */ - 1, /* Number of elements in the maps */ - 2, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_ManagementBasedMDTallowed_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ManagementBasedMDTallowed = { - "ManagementBasedMDTallowed", - "ManagementBasedMDTallowed", - &asn_OP_NativeEnumerated, - asn_DEF_ManagementBasedMDTallowed_tags_1, - sizeof(asn_DEF_ManagementBasedMDTallowed_tags_1) - /sizeof(asn_DEF_ManagementBasedMDTallowed_tags_1[0]), /* 1 */ - asn_DEF_ManagementBasedMDTallowed_tags_1, /* Same as above */ - sizeof(asn_DEF_ManagementBasedMDTallowed_tags_1) - /sizeof(asn_DEF_ManagementBasedMDTallowed_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_ManagementBasedMDTallowed_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_ManagementBasedMDTallowed_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/ManagementBasedMDTallowed.h b/e2sim/previous/ASN1c/ManagementBasedMDTallowed.h deleted file mode 100644 index 6a74a1e..0000000 --- a/e2sim/previous/ASN1c/ManagementBasedMDTallowed.h +++ /dev/null @@ -1,71 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _ManagementBasedMDTallowed_H_ -#define _ManagementBasedMDTallowed_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum ManagementBasedMDTallowed { - ManagementBasedMDTallowed_allowed = 0 - /* - * Enumeration is extensible - */ -} e_ManagementBasedMDTallowed; - -/* ManagementBasedMDTallowed */ -typedef long ManagementBasedMDTallowed_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_ManagementBasedMDTallowed_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_ManagementBasedMDTallowed; -extern const asn_INTEGER_specifics_t asn_SPC_ManagementBasedMDTallowed_specs_1; -asn_struct_free_f ManagementBasedMDTallowed_free; -asn_struct_print_f ManagementBasedMDTallowed_print; -asn_constr_check_f ManagementBasedMDTallowed_constraint; -ber_type_decoder_f ManagementBasedMDTallowed_decode_ber; -der_type_encoder_f ManagementBasedMDTallowed_encode_der; -xer_type_decoder_f ManagementBasedMDTallowed_decode_xer; -xer_type_encoder_f ManagementBasedMDTallowed_encode_xer; -per_type_decoder_f ManagementBasedMDTallowed_decode_uper; -per_type_encoder_f ManagementBasedMDTallowed_encode_uper; -per_type_decoder_f ManagementBasedMDTallowed_decode_aper; -per_type_encoder_f ManagementBasedMDTallowed_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _ManagementBasedMDTallowed_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/Masked-IMEISV.c b/e2sim/previous/ASN1c/Masked-IMEISV.c deleted file mode 100644 index 6e1175c..0000000 --- a/e2sim/previous/ASN1c/Masked-IMEISV.c +++ /dev/null @@ -1,85 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "Masked-IMEISV.h" - -int -Masked_IMEISV_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if(st->size > 0) { - /* Size in bits */ - size = 8 * st->size - (st->bits_unused & 0x07); - } else { - size = 0; - } - - if((size == 64)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using BIT_STRING, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_Masked_IMEISV_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 0, 0, 64, 64 } /* (SIZE(64..64)) */, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_Masked_IMEISV_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_Masked_IMEISV = { - "Masked-IMEISV", - "Masked-IMEISV", - &asn_OP_BIT_STRING, - asn_DEF_Masked_IMEISV_tags_1, - sizeof(asn_DEF_Masked_IMEISV_tags_1) - /sizeof(asn_DEF_Masked_IMEISV_tags_1[0]), /* 1 */ - asn_DEF_Masked_IMEISV_tags_1, /* Same as above */ - sizeof(asn_DEF_Masked_IMEISV_tags_1) - /sizeof(asn_DEF_Masked_IMEISV_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_Masked_IMEISV_constr_1, Masked_IMEISV_constraint }, - 0, 0, /* No members */ - &asn_SPC_BIT_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/Masked-IMEISV.h b/e2sim/previous/ASN1c/Masked-IMEISV.h deleted file mode 100644 index 9825386..0000000 --- a/e2sim/previous/ASN1c/Masked-IMEISV.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _Masked_IMEISV_H_ -#define _Masked_IMEISV_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "BIT_STRING.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Masked-IMEISV */ -typedef BIT_STRING_t Masked_IMEISV_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_Masked_IMEISV_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_Masked_IMEISV; -asn_struct_free_f Masked_IMEISV_free; -asn_struct_print_f Masked_IMEISV_print; -asn_constr_check_f Masked_IMEISV_constraint; -ber_type_decoder_f Masked_IMEISV_decode_ber; -der_type_encoder_f Masked_IMEISV_encode_der; -xer_type_decoder_f Masked_IMEISV_decode_xer; -xer_type_encoder_f Masked_IMEISV_encode_xer; -per_type_decoder_f Masked_IMEISV_decode_uper; -per_type_encoder_f Masked_IMEISV_encode_uper; -per_type_decoder_f Masked_IMEISV_decode_aper; -per_type_encoder_f Masked_IMEISV_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _Masked_IMEISV_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/MeNBCoordinationAssistanceInformation.c b/e2sim/previous/ASN1c/MeNBCoordinationAssistanceInformation.c deleted file mode 100644 index bf040a4..0000000 --- a/e2sim/previous/ASN1c/MeNBCoordinationAssistanceInformation.c +++ /dev/null @@ -1,71 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "MeNBCoordinationAssistanceInformation.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_MeNBCoordinationAssistanceInformation_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 0, 0 } /* (0..0,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_MeNBCoordinationAssistanceInformation_value2enum_1[] = { - { 0, 25, "coordination-not-required" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_MeNBCoordinationAssistanceInformation_enum2value_1[] = { - 0 /* coordination-not-required(0) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_MeNBCoordinationAssistanceInformation_specs_1 = { - asn_MAP_MeNBCoordinationAssistanceInformation_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_MeNBCoordinationAssistanceInformation_enum2value_1, /* N => "tag"; sorted by N */ - 1, /* Number of elements in the maps */ - 2, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_MeNBCoordinationAssistanceInformation_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_MeNBCoordinationAssistanceInformation = { - "MeNBCoordinationAssistanceInformation", - "MeNBCoordinationAssistanceInformation", - &asn_OP_NativeEnumerated, - asn_DEF_MeNBCoordinationAssistanceInformation_tags_1, - sizeof(asn_DEF_MeNBCoordinationAssistanceInformation_tags_1) - /sizeof(asn_DEF_MeNBCoordinationAssistanceInformation_tags_1[0]), /* 1 */ - asn_DEF_MeNBCoordinationAssistanceInformation_tags_1, /* Same as above */ - sizeof(asn_DEF_MeNBCoordinationAssistanceInformation_tags_1) - /sizeof(asn_DEF_MeNBCoordinationAssistanceInformation_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_MeNBCoordinationAssistanceInformation_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_MeNBCoordinationAssistanceInformation_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/MeNBCoordinationAssistanceInformation.h b/e2sim/previous/ASN1c/MeNBCoordinationAssistanceInformation.h deleted file mode 100644 index 691ca11..0000000 --- a/e2sim/previous/ASN1c/MeNBCoordinationAssistanceInformation.h +++ /dev/null @@ -1,71 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _MeNBCoordinationAssistanceInformation_H_ -#define _MeNBCoordinationAssistanceInformation_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum MeNBCoordinationAssistanceInformation { - MeNBCoordinationAssistanceInformation_coordination_not_required = 0 - /* - * Enumeration is extensible - */ -} e_MeNBCoordinationAssistanceInformation; - -/* MeNBCoordinationAssistanceInformation */ -typedef long MeNBCoordinationAssistanceInformation_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_MeNBCoordinationAssistanceInformation_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_MeNBCoordinationAssistanceInformation; -extern const asn_INTEGER_specifics_t asn_SPC_MeNBCoordinationAssistanceInformation_specs_1; -asn_struct_free_f MeNBCoordinationAssistanceInformation_free; -asn_struct_print_f MeNBCoordinationAssistanceInformation_print; -asn_constr_check_f MeNBCoordinationAssistanceInformation_constraint; -ber_type_decoder_f MeNBCoordinationAssistanceInformation_decode_ber; -der_type_encoder_f MeNBCoordinationAssistanceInformation_encode_der; -xer_type_decoder_f MeNBCoordinationAssistanceInformation_decode_xer; -xer_type_encoder_f MeNBCoordinationAssistanceInformation_encode_xer; -per_type_decoder_f MeNBCoordinationAssistanceInformation_decode_uper; -per_type_encoder_f MeNBCoordinationAssistanceInformation_encode_uper; -per_type_decoder_f MeNBCoordinationAssistanceInformation_decode_aper; -per_type_encoder_f MeNBCoordinationAssistanceInformation_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _MeNBCoordinationAssistanceInformation_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/MeNBResourceCoordinationInformation.c b/e2sim/previous/ASN1c/MeNBResourceCoordinationInformation.c deleted file mode 100644 index a889c89..0000000 --- a/e2sim/previous/ASN1c/MeNBResourceCoordinationInformation.c +++ /dev/null @@ -1,173 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "MeNBResourceCoordinationInformation.h" - -#include "ProtocolExtensionContainer.h" -static int -memb_uLCoordinationInformation_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if(st->size > 0) { - /* Size in bits */ - size = 8 * st->size - (st->bits_unused & 0x07); - } else { - size = 0; - } - - if((size >= 6 && size <= 4400)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_dLCoordinationInformation_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if(st->size > 0) { - /* Size in bits */ - size = 8 * st->size - (st->bits_unused & 0x07); - } else { - size = 0; - } - - if((size >= 6 && size <= 4400)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_per_constraints_t asn_PER_memb_uLCoordinationInformation_constr_3 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED | APC_EXTENSIBLE, 13, 13, 6, 4400 } /* (SIZE(6..4400,...)) */, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_dLCoordinationInformation_constr_4 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED | APC_EXTENSIBLE, 13, 13, 6, 4400 } /* (SIZE(6..4400,...)) */, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_MeNBResourceCoordinationInformation_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct MeNBResourceCoordinationInformation, eUTRA_Cell_ID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ECGI, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "eUTRA-Cell-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct MeNBResourceCoordinationInformation, uLCoordinationInformation), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_BIT_STRING, - 0, - { 0, &asn_PER_memb_uLCoordinationInformation_constr_3, memb_uLCoordinationInformation_constraint_1 }, - 0, 0, /* No default value */ - "uLCoordinationInformation" - }, - { ATF_POINTER, 2, offsetof(struct MeNBResourceCoordinationInformation, dLCoordinationInformation), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_BIT_STRING, - 0, - { 0, &asn_PER_memb_dLCoordinationInformation_constr_4, memb_dLCoordinationInformation_constraint_1 }, - 0, 0, /* No default value */ - "dLCoordinationInformation" - }, - { ATF_POINTER, 1, offsetof(struct MeNBResourceCoordinationInformation, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P167, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_MeNBResourceCoordinationInformation_oms_1[] = { 2, 3 }; -static const ber_tlv_tag_t asn_DEF_MeNBResourceCoordinationInformation_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_MeNBResourceCoordinationInformation_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* eUTRA-Cell-ID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* uLCoordinationInformation */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* dLCoordinationInformation */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_MeNBResourceCoordinationInformation_specs_1 = { - sizeof(struct MeNBResourceCoordinationInformation), - offsetof(struct MeNBResourceCoordinationInformation, _asn_ctx), - asn_MAP_MeNBResourceCoordinationInformation_tag2el_1, - 4, /* Count of tags in the map */ - asn_MAP_MeNBResourceCoordinationInformation_oms_1, /* Optional members */ - 2, 0, /* Root/Additions */ - 4, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_MeNBResourceCoordinationInformation = { - "MeNBResourceCoordinationInformation", - "MeNBResourceCoordinationInformation", - &asn_OP_SEQUENCE, - asn_DEF_MeNBResourceCoordinationInformation_tags_1, - sizeof(asn_DEF_MeNBResourceCoordinationInformation_tags_1) - /sizeof(asn_DEF_MeNBResourceCoordinationInformation_tags_1[0]), /* 1 */ - asn_DEF_MeNBResourceCoordinationInformation_tags_1, /* Same as above */ - sizeof(asn_DEF_MeNBResourceCoordinationInformation_tags_1) - /sizeof(asn_DEF_MeNBResourceCoordinationInformation_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_MeNBResourceCoordinationInformation_1, - 4, /* Elements count */ - &asn_SPC_MeNBResourceCoordinationInformation_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/MeNBResourceCoordinationInformation.h b/e2sim/previous/ASN1c/MeNBResourceCoordinationInformation.h deleted file mode 100644 index 6558fcd..0000000 --- a/e2sim/previous/ASN1c/MeNBResourceCoordinationInformation.h +++ /dev/null @@ -1,69 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _MeNBResourceCoordinationInformation_H_ -#define _MeNBResourceCoordinationInformation_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ECGI.h" -#include "BIT_STRING.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* MeNBResourceCoordinationInformation */ -typedef struct MeNBResourceCoordinationInformation { - ECGI_t eUTRA_Cell_ID; - BIT_STRING_t uLCoordinationInformation; - BIT_STRING_t *dLCoordinationInformation; /* OPTIONAL */ - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} MeNBResourceCoordinationInformation_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_MeNBResourceCoordinationInformation; -extern asn_SEQUENCE_specifics_t asn_SPC_MeNBResourceCoordinationInformation_specs_1; -extern asn_TYPE_member_t asn_MBR_MeNBResourceCoordinationInformation_1[4]; - -#ifdef __cplusplus -} -#endif - -#endif /* _MeNBResourceCoordinationInformation_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/MeNBtoSeNBContainer.c b/e2sim/previous/ASN1c/MeNBtoSeNBContainer.c deleted file mode 100644 index 0386f58..0000000 --- a/e2sim/previous/ASN1c/MeNBtoSeNBContainer.c +++ /dev/null @@ -1,49 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "MeNBtoSeNBContainer.h" - -/* - * This type is implemented using OCTET_STRING, - * so here we adjust the DEF accordingly. - */ -static const ber_tlv_tag_t asn_DEF_MeNBtoSeNBContainer_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_MeNBtoSeNBContainer = { - "MeNBtoSeNBContainer", - "MeNBtoSeNBContainer", - &asn_OP_OCTET_STRING, - asn_DEF_MeNBtoSeNBContainer_tags_1, - sizeof(asn_DEF_MeNBtoSeNBContainer_tags_1) - /sizeof(asn_DEF_MeNBtoSeNBContainer_tags_1[0]), /* 1 */ - asn_DEF_MeNBtoSeNBContainer_tags_1, /* Same as above */ - sizeof(asn_DEF_MeNBtoSeNBContainer_tags_1) - /sizeof(asn_DEF_MeNBtoSeNBContainer_tags_1[0]), /* 1 */ - { 0, 0, OCTET_STRING_constraint }, - 0, 0, /* No members */ - &asn_SPC_OCTET_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/MeNBtoSeNBContainer.h b/e2sim/previous/ASN1c/MeNBtoSeNBContainer.h deleted file mode 100644 index e676644..0000000 --- a/e2sim/previous/ASN1c/MeNBtoSeNBContainer.h +++ /dev/null @@ -1,61 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _MeNBtoSeNBContainer_H_ -#define _MeNBtoSeNBContainer_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "OCTET_STRING.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* MeNBtoSeNBContainer */ -typedef OCTET_STRING_t MeNBtoSeNBContainer_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_MeNBtoSeNBContainer; -asn_struct_free_f MeNBtoSeNBContainer_free; -asn_struct_print_f MeNBtoSeNBContainer_print; -asn_constr_check_f MeNBtoSeNBContainer_constraint; -ber_type_decoder_f MeNBtoSeNBContainer_decode_ber; -der_type_encoder_f MeNBtoSeNBContainer_encode_der; -xer_type_decoder_f MeNBtoSeNBContainer_decode_xer; -xer_type_encoder_f MeNBtoSeNBContainer_encode_xer; -per_type_decoder_f MeNBtoSeNBContainer_decode_uper; -per_type_encoder_f MeNBtoSeNBContainer_encode_uper; -per_type_decoder_f MeNBtoSeNBContainer_decode_aper; -per_type_encoder_f MeNBtoSeNBContainer_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _MeNBtoSeNBContainer_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/MeNBtoSgNBContainer.c b/e2sim/previous/ASN1c/MeNBtoSgNBContainer.c deleted file mode 100644 index de426f4..0000000 --- a/e2sim/previous/ASN1c/MeNBtoSgNBContainer.c +++ /dev/null @@ -1,49 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "MeNBtoSgNBContainer.h" - -/* - * This type is implemented using OCTET_STRING, - * so here we adjust the DEF accordingly. - */ -static const ber_tlv_tag_t asn_DEF_MeNBtoSgNBContainer_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_MeNBtoSgNBContainer = { - "MeNBtoSgNBContainer", - "MeNBtoSgNBContainer", - &asn_OP_OCTET_STRING, - asn_DEF_MeNBtoSgNBContainer_tags_1, - sizeof(asn_DEF_MeNBtoSgNBContainer_tags_1) - /sizeof(asn_DEF_MeNBtoSgNBContainer_tags_1[0]), /* 1 */ - asn_DEF_MeNBtoSgNBContainer_tags_1, /* Same as above */ - sizeof(asn_DEF_MeNBtoSgNBContainer_tags_1) - /sizeof(asn_DEF_MeNBtoSgNBContainer_tags_1[0]), /* 1 */ - { 0, 0, OCTET_STRING_constraint }, - 0, 0, /* No members */ - &asn_SPC_OCTET_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/MeNBtoSgNBContainer.h b/e2sim/previous/ASN1c/MeNBtoSgNBContainer.h deleted file mode 100644 index 385e081..0000000 --- a/e2sim/previous/ASN1c/MeNBtoSgNBContainer.h +++ /dev/null @@ -1,61 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _MeNBtoSgNBContainer_H_ -#define _MeNBtoSgNBContainer_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "OCTET_STRING.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* MeNBtoSgNBContainer */ -typedef OCTET_STRING_t MeNBtoSgNBContainer_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_MeNBtoSgNBContainer; -asn_struct_free_f MeNBtoSgNBContainer_free; -asn_struct_print_f MeNBtoSgNBContainer_print; -asn_constr_check_f MeNBtoSgNBContainer_constraint; -ber_type_decoder_f MeNBtoSgNBContainer_decode_ber; -der_type_encoder_f MeNBtoSgNBContainer_encode_der; -xer_type_decoder_f MeNBtoSgNBContainer_decode_xer; -xer_type_encoder_f MeNBtoSgNBContainer_encode_xer; -per_type_decoder_f MeNBtoSgNBContainer_decode_uper; -per_type_encoder_f MeNBtoSgNBContainer_encode_uper; -per_type_decoder_f MeNBtoSgNBContainer_decode_aper; -per_type_encoder_f MeNBtoSgNBContainer_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _MeNBtoSgNBContainer_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/Measurement-ID.c b/e2sim/previous/ASN1c/Measurement-ID.c deleted file mode 100644 index c61c5a9..0000000 --- a/e2sim/previous/ASN1c/Measurement-ID.c +++ /dev/null @@ -1,79 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "Measurement-ID.h" - -int -Measurement_ID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 1 && value <= 4095)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using NativeInteger, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_Measurement_ID_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 12, 12, 1, 4095 } /* (1..4095,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_Measurement_ID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_Measurement_ID = { - "Measurement-ID", - "Measurement-ID", - &asn_OP_NativeInteger, - asn_DEF_Measurement_ID_tags_1, - sizeof(asn_DEF_Measurement_ID_tags_1) - /sizeof(asn_DEF_Measurement_ID_tags_1[0]), /* 1 */ - asn_DEF_Measurement_ID_tags_1, /* Same as above */ - sizeof(asn_DEF_Measurement_ID_tags_1) - /sizeof(asn_DEF_Measurement_ID_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_Measurement_ID_constr_1, Measurement_ID_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/previous/ASN1c/Measurement-ID.h b/e2sim/previous/ASN1c/Measurement-ID.h deleted file mode 100644 index 8b3f406..0000000 --- a/e2sim/previous/ASN1c/Measurement-ID.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _Measurement_ID_H_ -#define _Measurement_ID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeInteger.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Measurement-ID */ -typedef long Measurement_ID_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_Measurement_ID_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_Measurement_ID; -asn_struct_free_f Measurement_ID_free; -asn_struct_print_f Measurement_ID_print; -asn_constr_check_f Measurement_ID_constraint; -ber_type_decoder_f Measurement_ID_decode_ber; -der_type_encoder_f Measurement_ID_encode_der; -xer_type_decoder_f Measurement_ID_decode_xer; -xer_type_encoder_f Measurement_ID_encode_xer; -per_type_decoder_f Measurement_ID_decode_uper; -per_type_encoder_f Measurement_ID_encode_uper; -per_type_decoder_f Measurement_ID_decode_aper; -per_type_encoder_f Measurement_ID_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _Measurement_ID_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/MeasurementFailureCause-Item.c b/e2sim/previous/ASN1c/MeasurementFailureCause-Item.c deleted file mode 100644 index 8d09549..0000000 --- a/e2sim/previous/ASN1c/MeasurementFailureCause-Item.c +++ /dev/null @@ -1,91 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "MeasurementFailureCause-Item.h" - -#include "ProtocolExtensionContainer.h" -static asn_TYPE_member_t asn_MBR_MeasurementFailureCause_Item_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct MeasurementFailureCause_Item, measurementFailedReportCharacteristics), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ReportCharacteristics, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "measurementFailedReportCharacteristics" - }, - { ATF_NOFLAGS, 0, offsetof(struct MeasurementFailureCause_Item, cause), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_Cause, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "cause" - }, - { ATF_POINTER, 1, offsetof(struct MeasurementFailureCause_Item, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P11, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_MeasurementFailureCause_Item_oms_1[] = { 2 }; -static const ber_tlv_tag_t asn_DEF_MeasurementFailureCause_Item_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_MeasurementFailureCause_Item_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* measurementFailedReportCharacteristics */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* cause */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_MeasurementFailureCause_Item_specs_1 = { - sizeof(struct MeasurementFailureCause_Item), - offsetof(struct MeasurementFailureCause_Item, _asn_ctx), - asn_MAP_MeasurementFailureCause_Item_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_MeasurementFailureCause_Item_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_MeasurementFailureCause_Item = { - "MeasurementFailureCause-Item", - "MeasurementFailureCause-Item", - &asn_OP_SEQUENCE, - asn_DEF_MeasurementFailureCause_Item_tags_1, - sizeof(asn_DEF_MeasurementFailureCause_Item_tags_1) - /sizeof(asn_DEF_MeasurementFailureCause_Item_tags_1[0]), /* 1 */ - asn_DEF_MeasurementFailureCause_Item_tags_1, /* Same as above */ - sizeof(asn_DEF_MeasurementFailureCause_Item_tags_1) - /sizeof(asn_DEF_MeasurementFailureCause_Item_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_MeasurementFailureCause_Item_1, - 3, /* Elements count */ - &asn_SPC_MeasurementFailureCause_Item_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/MeasurementFailureCause-Item.h b/e2sim/previous/ASN1c/MeasurementFailureCause-Item.h deleted file mode 100644 index 81254d7..0000000 --- a/e2sim/previous/ASN1c/MeasurementFailureCause-Item.h +++ /dev/null @@ -1,66 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _MeasurementFailureCause_Item_H_ -#define _MeasurementFailureCause_Item_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ReportCharacteristics.h" -#include "Cause.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* MeasurementFailureCause-Item */ -typedef struct MeasurementFailureCause_Item { - ReportCharacteristics_t measurementFailedReportCharacteristics; - Cause_t cause; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} MeasurementFailureCause_Item_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_MeasurementFailureCause_Item; - -#ifdef __cplusplus -} -#endif - -#endif /* _MeasurementFailureCause_Item_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/MeasurementFailureCause-List.c b/e2sim/previous/ASN1c/MeasurementFailureCause-List.c deleted file mode 100644 index d526f84..0000000 --- a/e2sim/previous/ASN1c/MeasurementFailureCause-List.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "MeasurementFailureCause-List.h" - -#include "ProtocolIE-Single-Container.h" -asn_per_constraints_t asn_PER_type_MeasurementFailureCause_List_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_MeasurementFailureCause_List_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ProtocolIE_Single_Container_122P12, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_MeasurementFailureCause_List_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_MeasurementFailureCause_List_specs_1 = { - sizeof(struct MeasurementFailureCause_List), - offsetof(struct MeasurementFailureCause_List, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_MeasurementFailureCause_List = { - "MeasurementFailureCause-List", - "MeasurementFailureCause-List", - &asn_OP_SEQUENCE_OF, - asn_DEF_MeasurementFailureCause_List_tags_1, - sizeof(asn_DEF_MeasurementFailureCause_List_tags_1) - /sizeof(asn_DEF_MeasurementFailureCause_List_tags_1[0]), /* 1 */ - asn_DEF_MeasurementFailureCause_List_tags_1, /* Same as above */ - sizeof(asn_DEF_MeasurementFailureCause_List_tags_1) - /sizeof(asn_DEF_MeasurementFailureCause_List_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_MeasurementFailureCause_List_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_MeasurementFailureCause_List_1, - 1, /* Single element */ - &asn_SPC_MeasurementFailureCause_List_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/MeasurementFailureCause-List.h b/e2sim/previous/ASN1c/MeasurementFailureCause-List.h deleted file mode 100644 index ea46b5a..0000000 --- a/e2sim/previous/ASN1c/MeasurementFailureCause-List.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _MeasurementFailureCause_List_H_ -#define _MeasurementFailureCause_List_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolIE_Single_Container; - -/* MeasurementFailureCause-List */ -typedef struct MeasurementFailureCause_List { - A_SEQUENCE_OF(struct ProtocolIE_Single_Container) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} MeasurementFailureCause_List_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_MeasurementFailureCause_List; -extern asn_SET_OF_specifics_t asn_SPC_MeasurementFailureCause_List_specs_1; -extern asn_TYPE_member_t asn_MBR_MeasurementFailureCause_List_1[1]; -extern asn_per_constraints_t asn_PER_type_MeasurementFailureCause_List_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _MeasurementFailureCause_List_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/MeasurementInitiationResult-Item.c b/e2sim/previous/ASN1c/MeasurementInitiationResult-Item.c deleted file mode 100644 index f76eecb..0000000 --- a/e2sim/previous/ASN1c/MeasurementInitiationResult-Item.c +++ /dev/null @@ -1,92 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "MeasurementInitiationResult-Item.h" - -#include "MeasurementFailureCause-List.h" -#include "ProtocolExtensionContainer.h" -static asn_TYPE_member_t asn_MBR_MeasurementInitiationResult_Item_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct MeasurementInitiationResult_Item, cell_ID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ECGI, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "cell-ID" - }, - { ATF_POINTER, 2, offsetof(struct MeasurementInitiationResult_Item, measurementFailureCause_List), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_MeasurementFailureCause_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "measurementFailureCause-List" - }, - { ATF_POINTER, 1, offsetof(struct MeasurementInitiationResult_Item, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P10, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_MeasurementInitiationResult_Item_oms_1[] = { 1, 2 }; -static const ber_tlv_tag_t asn_DEF_MeasurementInitiationResult_Item_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_MeasurementInitiationResult_Item_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* cell-ID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* measurementFailureCause-List */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_MeasurementInitiationResult_Item_specs_1 = { - sizeof(struct MeasurementInitiationResult_Item), - offsetof(struct MeasurementInitiationResult_Item, _asn_ctx), - asn_MAP_MeasurementInitiationResult_Item_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_MeasurementInitiationResult_Item_oms_1, /* Optional members */ - 2, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_MeasurementInitiationResult_Item = { - "MeasurementInitiationResult-Item", - "MeasurementInitiationResult-Item", - &asn_OP_SEQUENCE, - asn_DEF_MeasurementInitiationResult_Item_tags_1, - sizeof(asn_DEF_MeasurementInitiationResult_Item_tags_1) - /sizeof(asn_DEF_MeasurementInitiationResult_Item_tags_1[0]), /* 1 */ - asn_DEF_MeasurementInitiationResult_Item_tags_1, /* Same as above */ - sizeof(asn_DEF_MeasurementInitiationResult_Item_tags_1) - /sizeof(asn_DEF_MeasurementInitiationResult_Item_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_MeasurementInitiationResult_Item_1, - 3, /* Elements count */ - &asn_SPC_MeasurementInitiationResult_Item_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/MeasurementInitiationResult-Item.h b/e2sim/previous/ASN1c/MeasurementInitiationResult-Item.h deleted file mode 100644 index 99be8ae..0000000 --- a/e2sim/previous/ASN1c/MeasurementInitiationResult-Item.h +++ /dev/null @@ -1,66 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _MeasurementInitiationResult_Item_H_ -#define _MeasurementInitiationResult_Item_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ECGI.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct MeasurementFailureCause_List; -struct ProtocolExtensionContainer; - -/* MeasurementInitiationResult-Item */ -typedef struct MeasurementInitiationResult_Item { - ECGI_t cell_ID; - struct MeasurementFailureCause_List *measurementFailureCause_List; /* OPTIONAL */ - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} MeasurementInitiationResult_Item_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_MeasurementInitiationResult_Item; - -#ifdef __cplusplus -} -#endif - -#endif /* _MeasurementInitiationResult_Item_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/MeasurementInitiationResult-List.c b/e2sim/previous/ASN1c/MeasurementInitiationResult-List.c deleted file mode 100644 index 09d4784..0000000 --- a/e2sim/previous/ASN1c/MeasurementInitiationResult-List.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "MeasurementInitiationResult-List.h" - -#include "ProtocolIE-Single-Container.h" -static asn_per_constraints_t asn_PER_type_MeasurementInitiationResult_List_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 8, 8, 1, 256 } /* (SIZE(1..256)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_MeasurementInitiationResult_List_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ProtocolIE_Single_Container_122P11, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_MeasurementInitiationResult_List_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_MeasurementInitiationResult_List_specs_1 = { - sizeof(struct MeasurementInitiationResult_List), - offsetof(struct MeasurementInitiationResult_List, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_MeasurementInitiationResult_List = { - "MeasurementInitiationResult-List", - "MeasurementInitiationResult-List", - &asn_OP_SEQUENCE_OF, - asn_DEF_MeasurementInitiationResult_List_tags_1, - sizeof(asn_DEF_MeasurementInitiationResult_List_tags_1) - /sizeof(asn_DEF_MeasurementInitiationResult_List_tags_1[0]), /* 1 */ - asn_DEF_MeasurementInitiationResult_List_tags_1, /* Same as above */ - sizeof(asn_DEF_MeasurementInitiationResult_List_tags_1) - /sizeof(asn_DEF_MeasurementInitiationResult_List_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_MeasurementInitiationResult_List_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_MeasurementInitiationResult_List_1, - 1, /* Single element */ - &asn_SPC_MeasurementInitiationResult_List_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/MeasurementInitiationResult-List.h b/e2sim/previous/ASN1c/MeasurementInitiationResult-List.h deleted file mode 100644 index a869c1f..0000000 --- a/e2sim/previous/ASN1c/MeasurementInitiationResult-List.h +++ /dev/null @@ -1,59 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _MeasurementInitiationResult_List_H_ -#define _MeasurementInitiationResult_List_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolIE_Single_Container; - -/* MeasurementInitiationResult-List */ -typedef struct MeasurementInitiationResult_List { - A_SEQUENCE_OF(struct ProtocolIE_Single_Container) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} MeasurementInitiationResult_List_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_MeasurementInitiationResult_List; - -#ifdef __cplusplus -} -#endif - -#endif /* _MeasurementInitiationResult_List_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/MeasurementThresholdA2.c b/e2sim/previous/ASN1c/MeasurementThresholdA2.c deleted file mode 100644 index 2794b68..0000000 --- a/e2sim/previous/ASN1c/MeasurementThresholdA2.c +++ /dev/null @@ -1,80 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "MeasurementThresholdA2.h" - -asn_per_constraints_t asn_PER_type_MeasurementThresholdA2_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_MeasurementThresholdA2_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct MeasurementThresholdA2, choice.threshold_RSRP), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Threshold_RSRP, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "threshold-RSRP" - }, - { ATF_NOFLAGS, 0, offsetof(struct MeasurementThresholdA2, choice.threshold_RSRQ), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Threshold_RSRQ, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "threshold-RSRQ" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_MeasurementThresholdA2_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* threshold-RSRP */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* threshold-RSRQ */ -}; -asn_CHOICE_specifics_t asn_SPC_MeasurementThresholdA2_specs_1 = { - sizeof(struct MeasurementThresholdA2), - offsetof(struct MeasurementThresholdA2, _asn_ctx), - offsetof(struct MeasurementThresholdA2, present), - sizeof(((struct MeasurementThresholdA2 *)0)->present), - asn_MAP_MeasurementThresholdA2_tag2el_1, - 2, /* Count of tags in the map */ - 0, 0, - 2 /* Extensions start */ -}; -asn_TYPE_descriptor_t asn_DEF_MeasurementThresholdA2 = { - "MeasurementThresholdA2", - "MeasurementThresholdA2", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, &asn_PER_type_MeasurementThresholdA2_constr_1, CHOICE_constraint }, - asn_MBR_MeasurementThresholdA2_1, - 2, /* Elements count */ - &asn_SPC_MeasurementThresholdA2_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/MeasurementThresholdA2.h b/e2sim/previous/ASN1c/MeasurementThresholdA2.h deleted file mode 100644 index f08dcb1..0000000 --- a/e2sim/previous/ASN1c/MeasurementThresholdA2.h +++ /dev/null @@ -1,77 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _MeasurementThresholdA2_H_ -#define _MeasurementThresholdA2_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "Threshold-RSRP.h" -#include "Threshold-RSRQ.h" -#include "constr_CHOICE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum MeasurementThresholdA2_PR { - MeasurementThresholdA2_PR_NOTHING, /* No components present */ - MeasurementThresholdA2_PR_threshold_RSRP, - MeasurementThresholdA2_PR_threshold_RSRQ - /* Extensions may appear below */ - -} MeasurementThresholdA2_PR; - -/* MeasurementThresholdA2 */ -typedef struct MeasurementThresholdA2 { - MeasurementThresholdA2_PR present; - union MeasurementThresholdA2_u { - Threshold_RSRP_t threshold_RSRP; - Threshold_RSRQ_t threshold_RSRQ; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} MeasurementThresholdA2_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_MeasurementThresholdA2; -extern asn_CHOICE_specifics_t asn_SPC_MeasurementThresholdA2_specs_1; -extern asn_TYPE_member_t asn_MBR_MeasurementThresholdA2_1[2]; -extern asn_per_constraints_t asn_PER_type_MeasurementThresholdA2_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _MeasurementThresholdA2_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/MeasurementsToActivate.c b/e2sim/previous/ASN1c/MeasurementsToActivate.c deleted file mode 100644 index 100430c..0000000 --- a/e2sim/previous/ASN1c/MeasurementsToActivate.c +++ /dev/null @@ -1,85 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "MeasurementsToActivate.h" - -int -MeasurementsToActivate_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if(st->size > 0) { - /* Size in bits */ - size = 8 * st->size - (st->bits_unused & 0x07); - } else { - size = 0; - } - - if((size == 8)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using BIT_STRING, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_MeasurementsToActivate_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 0, 0, 8, 8 } /* (SIZE(8..8)) */, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_MeasurementsToActivate_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_MeasurementsToActivate = { - "MeasurementsToActivate", - "MeasurementsToActivate", - &asn_OP_BIT_STRING, - asn_DEF_MeasurementsToActivate_tags_1, - sizeof(asn_DEF_MeasurementsToActivate_tags_1) - /sizeof(asn_DEF_MeasurementsToActivate_tags_1[0]), /* 1 */ - asn_DEF_MeasurementsToActivate_tags_1, /* Same as above */ - sizeof(asn_DEF_MeasurementsToActivate_tags_1) - /sizeof(asn_DEF_MeasurementsToActivate_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_MeasurementsToActivate_constr_1, MeasurementsToActivate_constraint }, - 0, 0, /* No members */ - &asn_SPC_BIT_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/MeasurementsToActivate.h b/e2sim/previous/ASN1c/MeasurementsToActivate.h deleted file mode 100644 index 60abfc7..0000000 --- a/e2sim/previous/ASN1c/MeasurementsToActivate.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _MeasurementsToActivate_H_ -#define _MeasurementsToActivate_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "BIT_STRING.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* MeasurementsToActivate */ -typedef BIT_STRING_t MeasurementsToActivate_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_MeasurementsToActivate_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_MeasurementsToActivate; -asn_struct_free_f MeasurementsToActivate_free; -asn_struct_print_f MeasurementsToActivate_print; -asn_constr_check_f MeasurementsToActivate_constraint; -ber_type_decoder_f MeasurementsToActivate_decode_ber; -der_type_encoder_f MeasurementsToActivate_encode_der; -xer_type_decoder_f MeasurementsToActivate_decode_xer; -xer_type_encoder_f MeasurementsToActivate_encode_xer; -per_type_decoder_f MeasurementsToActivate_decode_uper; -per_type_encoder_f MeasurementsToActivate_encode_uper; -per_type_decoder_f MeasurementsToActivate_decode_aper; -per_type_encoder_f MeasurementsToActivate_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _MeasurementsToActivate_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/MobilityChangeAcknowledge.c b/e2sim/previous/ASN1c/MobilityChangeAcknowledge.c deleted file mode 100644 index ffca014..0000000 --- a/e2sim/previous/ASN1c/MobilityChangeAcknowledge.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "MobilityChangeAcknowledge.h" - -static asn_TYPE_member_t asn_MBR_MobilityChangeAcknowledge_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct MobilityChangeAcknowledge, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_119P36, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_MobilityChangeAcknowledge_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_MobilityChangeAcknowledge_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_MobilityChangeAcknowledge_specs_1 = { - sizeof(struct MobilityChangeAcknowledge), - offsetof(struct MobilityChangeAcknowledge, _asn_ctx), - asn_MAP_MobilityChangeAcknowledge_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_MobilityChangeAcknowledge = { - "MobilityChangeAcknowledge", - "MobilityChangeAcknowledge", - &asn_OP_SEQUENCE, - asn_DEF_MobilityChangeAcknowledge_tags_1, - sizeof(asn_DEF_MobilityChangeAcknowledge_tags_1) - /sizeof(asn_DEF_MobilityChangeAcknowledge_tags_1[0]), /* 1 */ - asn_DEF_MobilityChangeAcknowledge_tags_1, /* Same as above */ - sizeof(asn_DEF_MobilityChangeAcknowledge_tags_1) - /sizeof(asn_DEF_MobilityChangeAcknowledge_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_MobilityChangeAcknowledge_1, - 1, /* Elements count */ - &asn_SPC_MobilityChangeAcknowledge_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/MobilityChangeAcknowledge.h b/e2sim/previous/ASN1c/MobilityChangeAcknowledge.h deleted file mode 100644 index 2e4c939..0000000 --- a/e2sim/previous/ASN1c/MobilityChangeAcknowledge.h +++ /dev/null @@ -1,60 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _MobilityChangeAcknowledge_H_ -#define _MobilityChangeAcknowledge_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* MobilityChangeAcknowledge */ -typedef struct MobilityChangeAcknowledge { - ProtocolIE_Container_119P36_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} MobilityChangeAcknowledge_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_MobilityChangeAcknowledge; - -#ifdef __cplusplus -} -#endif - -#endif /* _MobilityChangeAcknowledge_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/MobilityChangeFailure.c b/e2sim/previous/ASN1c/MobilityChangeFailure.c deleted file mode 100644 index b9ec94f..0000000 --- a/e2sim/previous/ASN1c/MobilityChangeFailure.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "MobilityChangeFailure.h" - -static asn_TYPE_member_t asn_MBR_MobilityChangeFailure_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct MobilityChangeFailure, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_119P37, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_MobilityChangeFailure_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_MobilityChangeFailure_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_MobilityChangeFailure_specs_1 = { - sizeof(struct MobilityChangeFailure), - offsetof(struct MobilityChangeFailure, _asn_ctx), - asn_MAP_MobilityChangeFailure_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_MobilityChangeFailure = { - "MobilityChangeFailure", - "MobilityChangeFailure", - &asn_OP_SEQUENCE, - asn_DEF_MobilityChangeFailure_tags_1, - sizeof(asn_DEF_MobilityChangeFailure_tags_1) - /sizeof(asn_DEF_MobilityChangeFailure_tags_1[0]), /* 1 */ - asn_DEF_MobilityChangeFailure_tags_1, /* Same as above */ - sizeof(asn_DEF_MobilityChangeFailure_tags_1) - /sizeof(asn_DEF_MobilityChangeFailure_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_MobilityChangeFailure_1, - 1, /* Elements count */ - &asn_SPC_MobilityChangeFailure_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/MobilityChangeFailure.h b/e2sim/previous/ASN1c/MobilityChangeFailure.h deleted file mode 100644 index dd0b35d..0000000 --- a/e2sim/previous/ASN1c/MobilityChangeFailure.h +++ /dev/null @@ -1,60 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _MobilityChangeFailure_H_ -#define _MobilityChangeFailure_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* MobilityChangeFailure */ -typedef struct MobilityChangeFailure { - ProtocolIE_Container_119P37_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} MobilityChangeFailure_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_MobilityChangeFailure; - -#ifdef __cplusplus -} -#endif - -#endif /* _MobilityChangeFailure_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/MobilityChangeRequest.c b/e2sim/previous/ASN1c/MobilityChangeRequest.c deleted file mode 100644 index 332af8b..0000000 --- a/e2sim/previous/ASN1c/MobilityChangeRequest.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "MobilityChangeRequest.h" - -static asn_TYPE_member_t asn_MBR_MobilityChangeRequest_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct MobilityChangeRequest, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_119P35, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_MobilityChangeRequest_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_MobilityChangeRequest_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_MobilityChangeRequest_specs_1 = { - sizeof(struct MobilityChangeRequest), - offsetof(struct MobilityChangeRequest, _asn_ctx), - asn_MAP_MobilityChangeRequest_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_MobilityChangeRequest = { - "MobilityChangeRequest", - "MobilityChangeRequest", - &asn_OP_SEQUENCE, - asn_DEF_MobilityChangeRequest_tags_1, - sizeof(asn_DEF_MobilityChangeRequest_tags_1) - /sizeof(asn_DEF_MobilityChangeRequest_tags_1[0]), /* 1 */ - asn_DEF_MobilityChangeRequest_tags_1, /* Same as above */ - sizeof(asn_DEF_MobilityChangeRequest_tags_1) - /sizeof(asn_DEF_MobilityChangeRequest_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_MobilityChangeRequest_1, - 1, /* Elements count */ - &asn_SPC_MobilityChangeRequest_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/MobilityChangeRequest.h b/e2sim/previous/ASN1c/MobilityChangeRequest.h deleted file mode 100644 index 55bfe4a..0000000 --- a/e2sim/previous/ASN1c/MobilityChangeRequest.h +++ /dev/null @@ -1,60 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _MobilityChangeRequest_H_ -#define _MobilityChangeRequest_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* MobilityChangeRequest */ -typedef struct MobilityChangeRequest { - ProtocolIE_Container_119P35_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} MobilityChangeRequest_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_MobilityChangeRequest; - -#ifdef __cplusplus -} -#endif - -#endif /* _MobilityChangeRequest_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/MobilityInformation.c b/e2sim/previous/ASN1c/MobilityInformation.c deleted file mode 100644 index 467c64e..0000000 --- a/e2sim/previous/ASN1c/MobilityInformation.c +++ /dev/null @@ -1,85 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "MobilityInformation.h" - -int -MobilityInformation_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if(st->size > 0) { - /* Size in bits */ - size = 8 * st->size - (st->bits_unused & 0x07); - } else { - size = 0; - } - - if((size == 32)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using BIT_STRING, - * so here we adjust the DEF accordingly. - */ -static asn_per_constraints_t asn_PER_type_MobilityInformation_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 0, 0, 32, 32 } /* (SIZE(32..32)) */, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_MobilityInformation_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_MobilityInformation = { - "MobilityInformation", - "MobilityInformation", - &asn_OP_BIT_STRING, - asn_DEF_MobilityInformation_tags_1, - sizeof(asn_DEF_MobilityInformation_tags_1) - /sizeof(asn_DEF_MobilityInformation_tags_1[0]), /* 1 */ - asn_DEF_MobilityInformation_tags_1, /* Same as above */ - sizeof(asn_DEF_MobilityInformation_tags_1) - /sizeof(asn_DEF_MobilityInformation_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_MobilityInformation_constr_1, MobilityInformation_constraint }, - 0, 0, /* No members */ - &asn_SPC_BIT_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/MobilityInformation.h b/e2sim/previous/ASN1c/MobilityInformation.h deleted file mode 100644 index aa34799..0000000 --- a/e2sim/previous/ASN1c/MobilityInformation.h +++ /dev/null @@ -1,61 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _MobilityInformation_H_ -#define _MobilityInformation_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "BIT_STRING.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* MobilityInformation */ -typedef BIT_STRING_t MobilityInformation_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_MobilityInformation; -asn_struct_free_f MobilityInformation_free; -asn_struct_print_f MobilityInformation_print; -asn_constr_check_f MobilityInformation_constraint; -ber_type_decoder_f MobilityInformation_decode_ber; -der_type_encoder_f MobilityInformation_encode_der; -xer_type_decoder_f MobilityInformation_decode_xer; -xer_type_encoder_f MobilityInformation_encode_xer; -per_type_decoder_f MobilityInformation_decode_uper; -per_type_encoder_f MobilityInformation_encode_uper; -per_type_decoder_f MobilityInformation_decode_aper; -per_type_encoder_f MobilityInformation_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _MobilityInformation_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/MobilityParametersInformation.c b/e2sim/previous/ASN1c/MobilityParametersInformation.c deleted file mode 100644 index 57f65e2..0000000 --- a/e2sim/previous/ASN1c/MobilityParametersInformation.c +++ /dev/null @@ -1,98 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "MobilityParametersInformation.h" - -static int -memb_handoverTriggerChange_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= -20 && value <= 20)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_per_constraints_t asn_PER_memb_handoverTriggerChange_constr_2 CC_NOTUSED = { - { APC_CONSTRAINED, 6, 6, -20, 20 } /* (-20..20) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_MobilityParametersInformation_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct MobilityParametersInformation, handoverTriggerChange), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { 0, &asn_PER_memb_handoverTriggerChange_constr_2, memb_handoverTriggerChange_constraint_1 }, - 0, 0, /* No default value */ - "handoverTriggerChange" - }, -}; -static const ber_tlv_tag_t asn_DEF_MobilityParametersInformation_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_MobilityParametersInformation_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* handoverTriggerChange */ -}; -asn_SEQUENCE_specifics_t asn_SPC_MobilityParametersInformation_specs_1 = { - sizeof(struct MobilityParametersInformation), - offsetof(struct MobilityParametersInformation, _asn_ctx), - asn_MAP_MobilityParametersInformation_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_MobilityParametersInformation = { - "MobilityParametersInformation", - "MobilityParametersInformation", - &asn_OP_SEQUENCE, - asn_DEF_MobilityParametersInformation_tags_1, - sizeof(asn_DEF_MobilityParametersInformation_tags_1) - /sizeof(asn_DEF_MobilityParametersInformation_tags_1[0]), /* 1 */ - asn_DEF_MobilityParametersInformation_tags_1, /* Same as above */ - sizeof(asn_DEF_MobilityParametersInformation_tags_1) - /sizeof(asn_DEF_MobilityParametersInformation_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_MobilityParametersInformation_1, - 1, /* Elements count */ - &asn_SPC_MobilityParametersInformation_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/MobilityParametersInformation.h b/e2sim/previous/ASN1c/MobilityParametersInformation.h deleted file mode 100644 index 9d8450d..0000000 --- a/e2sim/previous/ASN1c/MobilityParametersInformation.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _MobilityParametersInformation_H_ -#define _MobilityParametersInformation_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeInteger.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* MobilityParametersInformation */ -typedef struct MobilityParametersInformation { - long handoverTriggerChange; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} MobilityParametersInformation_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_MobilityParametersInformation; -extern asn_SEQUENCE_specifics_t asn_SPC_MobilityParametersInformation_specs_1; -extern asn_TYPE_member_t asn_MBR_MobilityParametersInformation_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _MobilityParametersInformation_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/MobilityParametersModificationRange.c b/e2sim/previous/ASN1c/MobilityParametersModificationRange.c deleted file mode 100644 index 0699106..0000000 --- a/e2sim/previous/ASN1c/MobilityParametersModificationRange.c +++ /dev/null @@ -1,138 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "MobilityParametersModificationRange.h" - -static int -memb_handoverTriggerChangeLowerLimit_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= -20 && value <= 20)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_handoverTriggerChangeUpperLimit_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= -20 && value <= 20)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_per_constraints_t asn_PER_memb_handoverTriggerChangeLowerLimit_constr_2 CC_NOTUSED = { - { APC_CONSTRAINED, 6, 6, -20, 20 } /* (-20..20) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_handoverTriggerChangeUpperLimit_constr_3 CC_NOTUSED = { - { APC_CONSTRAINED, 6, 6, -20, 20 } /* (-20..20) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_MobilityParametersModificationRange_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct MobilityParametersModificationRange, handoverTriggerChangeLowerLimit), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { 0, &asn_PER_memb_handoverTriggerChangeLowerLimit_constr_2, memb_handoverTriggerChangeLowerLimit_constraint_1 }, - 0, 0, /* No default value */ - "handoverTriggerChangeLowerLimit" - }, - { ATF_NOFLAGS, 0, offsetof(struct MobilityParametersModificationRange, handoverTriggerChangeUpperLimit), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { 0, &asn_PER_memb_handoverTriggerChangeUpperLimit_constr_3, memb_handoverTriggerChangeUpperLimit_constraint_1 }, - 0, 0, /* No default value */ - "handoverTriggerChangeUpperLimit" - }, -}; -static const ber_tlv_tag_t asn_DEF_MobilityParametersModificationRange_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_MobilityParametersModificationRange_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* handoverTriggerChangeLowerLimit */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* handoverTriggerChangeUpperLimit */ -}; -asn_SEQUENCE_specifics_t asn_SPC_MobilityParametersModificationRange_specs_1 = { - sizeof(struct MobilityParametersModificationRange), - offsetof(struct MobilityParametersModificationRange, _asn_ctx), - asn_MAP_MobilityParametersModificationRange_tag2el_1, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 2, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_MobilityParametersModificationRange = { - "MobilityParametersModificationRange", - "MobilityParametersModificationRange", - &asn_OP_SEQUENCE, - asn_DEF_MobilityParametersModificationRange_tags_1, - sizeof(asn_DEF_MobilityParametersModificationRange_tags_1) - /sizeof(asn_DEF_MobilityParametersModificationRange_tags_1[0]), /* 1 */ - asn_DEF_MobilityParametersModificationRange_tags_1, /* Same as above */ - sizeof(asn_DEF_MobilityParametersModificationRange_tags_1) - /sizeof(asn_DEF_MobilityParametersModificationRange_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_MobilityParametersModificationRange_1, - 2, /* Elements count */ - &asn_SPC_MobilityParametersModificationRange_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/MobilityParametersModificationRange.h b/e2sim/previous/ASN1c/MobilityParametersModificationRange.h deleted file mode 100644 index daa61f6..0000000 --- a/e2sim/previous/ASN1c/MobilityParametersModificationRange.h +++ /dev/null @@ -1,63 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _MobilityParametersModificationRange_H_ -#define _MobilityParametersModificationRange_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeInteger.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* MobilityParametersModificationRange */ -typedef struct MobilityParametersModificationRange { - long handoverTriggerChangeLowerLimit; - long handoverTriggerChangeUpperLimit; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} MobilityParametersModificationRange_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_MobilityParametersModificationRange; -extern asn_SEQUENCE_specifics_t asn_SPC_MobilityParametersModificationRange_specs_1; -extern asn_TYPE_member_t asn_MBR_MobilityParametersModificationRange_1[2]; - -#ifdef __cplusplus -} -#endif - -#endif /* _MobilityParametersModificationRange_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/MultibandInfoList.c b/e2sim/previous/ASN1c/MultibandInfoList.c deleted file mode 100644 index 88954e3..0000000 --- a/e2sim/previous/ASN1c/MultibandInfoList.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "MultibandInfoList.h" - -#include "BandInfo.h" -asn_per_constraints_t asn_PER_type_MultibandInfoList_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 4, 4, 1, 16 } /* (SIZE(1..16)) */, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_MultibandInfoList_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_BandInfo, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_MultibandInfoList_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_MultibandInfoList_specs_1 = { - sizeof(struct MultibandInfoList), - offsetof(struct MultibandInfoList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_MultibandInfoList = { - "MultibandInfoList", - "MultibandInfoList", - &asn_OP_SEQUENCE_OF, - asn_DEF_MultibandInfoList_tags_1, - sizeof(asn_DEF_MultibandInfoList_tags_1) - /sizeof(asn_DEF_MultibandInfoList_tags_1[0]), /* 1 */ - asn_DEF_MultibandInfoList_tags_1, /* Same as above */ - sizeof(asn_DEF_MultibandInfoList_tags_1) - /sizeof(asn_DEF_MultibandInfoList_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_MultibandInfoList_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_MultibandInfoList_1, - 1, /* Single element */ - &asn_SPC_MultibandInfoList_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/MultibandInfoList.h b/e2sim/previous/ASN1c/MultibandInfoList.h deleted file mode 100644 index 37d794c..0000000 --- a/e2sim/previous/ASN1c/MultibandInfoList.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _MultibandInfoList_H_ -#define _MultibandInfoList_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct BandInfo; - -/* MultibandInfoList */ -typedef struct MultibandInfoList { - A_SEQUENCE_OF(struct BandInfo) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} MultibandInfoList_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_MultibandInfoList; -extern asn_SET_OF_specifics_t asn_SPC_MultibandInfoList_specs_1; -extern asn_TYPE_member_t asn_MBR_MultibandInfoList_1[1]; -extern asn_per_constraints_t asn_PER_type_MultibandInfoList_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _MultibandInfoList_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/NR-TxBW.c b/e2sim/previous/ASN1c/NR-TxBW.c deleted file mode 100644 index 35cb3b0..0000000 --- a/e2sim/previous/ASN1c/NR-TxBW.c +++ /dev/null @@ -1,91 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "NR-TxBW.h" - -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_NR_TxBW_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct NR_TxBW, nRSCS), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NRSCS, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "nRSCS" - }, - { ATF_NOFLAGS, 0, offsetof(struct NR_TxBW, nRNRB), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NRNRB, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "nRNRB" - }, - { ATF_POINTER, 1, offsetof(struct NR_TxBW, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P175, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_NR_TxBW_oms_1[] = { 2 }; -static const ber_tlv_tag_t asn_DEF_NR_TxBW_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_NR_TxBW_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nRSCS */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* nRNRB */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_NR_TxBW_specs_1 = { - sizeof(struct NR_TxBW), - offsetof(struct NR_TxBW, _asn_ctx), - asn_MAP_NR_TxBW_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_NR_TxBW_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_NR_TxBW = { - "NR-TxBW", - "NR-TxBW", - &asn_OP_SEQUENCE, - asn_DEF_NR_TxBW_tags_1, - sizeof(asn_DEF_NR_TxBW_tags_1) - /sizeof(asn_DEF_NR_TxBW_tags_1[0]), /* 1 */ - asn_DEF_NR_TxBW_tags_1, /* Same as above */ - sizeof(asn_DEF_NR_TxBW_tags_1) - /sizeof(asn_DEF_NR_TxBW_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_NR_TxBW_1, - 3, /* Elements count */ - &asn_SPC_NR_TxBW_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/NR-TxBW.h b/e2sim/previous/ASN1c/NR-TxBW.h deleted file mode 100644 index a08aeb5..0000000 --- a/e2sim/previous/ASN1c/NR-TxBW.h +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _NR_TxBW_H_ -#define _NR_TxBW_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NRSCS.h" -#include "NRNRB.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* NR-TxBW */ -typedef struct NR_TxBW { - NRSCS_t nRSCS; - NRNRB_t nRNRB; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} NR_TxBW_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_NR_TxBW; -extern asn_SEQUENCE_specifics_t asn_SPC_NR_TxBW_specs_1; -extern asn_TYPE_member_t asn_MBR_NR_TxBW_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _NR_TxBW_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/NRCGI.c b/e2sim/previous/ASN1c/NRCGI.c deleted file mode 100644 index fd5b88d..0000000 --- a/e2sim/previous/ASN1c/NRCGI.c +++ /dev/null @@ -1,91 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "NRCGI.h" - -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_NRCGI_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct NRCGI, pLMN_Identity), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_PLMN_Identity, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "pLMN-Identity" - }, - { ATF_NOFLAGS, 0, offsetof(struct NRCGI, nRcellIdentifier), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NRCellIdentifier, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "nRcellIdentifier" - }, - { ATF_POINTER, 1, offsetof(struct NRCGI, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P174, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_NRCGI_oms_1[] = { 2 }; -static const ber_tlv_tag_t asn_DEF_NRCGI_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_NRCGI_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pLMN-Identity */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* nRcellIdentifier */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_NRCGI_specs_1 = { - sizeof(struct NRCGI), - offsetof(struct NRCGI, _asn_ctx), - asn_MAP_NRCGI_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_NRCGI_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_NRCGI = { - "NRCGI", - "NRCGI", - &asn_OP_SEQUENCE, - asn_DEF_NRCGI_tags_1, - sizeof(asn_DEF_NRCGI_tags_1) - /sizeof(asn_DEF_NRCGI_tags_1[0]), /* 1 */ - asn_DEF_NRCGI_tags_1, /* Same as above */ - sizeof(asn_DEF_NRCGI_tags_1) - /sizeof(asn_DEF_NRCGI_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_NRCGI_1, - 3, /* Elements count */ - &asn_SPC_NRCGI_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/NRCGI.h b/e2sim/previous/ASN1c/NRCGI.h deleted file mode 100644 index 6bafbfc..0000000 --- a/e2sim/previous/ASN1c/NRCGI.h +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _NRCGI_H_ -#define _NRCGI_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "PLMN-Identity.h" -#include "NRCellIdentifier.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* NRCGI */ -typedef struct NRCGI { - PLMN_Identity_t pLMN_Identity; - NRCellIdentifier_t nRcellIdentifier; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} NRCGI_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_NRCGI; -extern asn_SEQUENCE_specifics_t asn_SPC_NRCGI_specs_1; -extern asn_TYPE_member_t asn_MBR_NRCGI_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _NRCGI_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/NRCellIdentifier.c b/e2sim/previous/ASN1c/NRCellIdentifier.c deleted file mode 100644 index 3147ba2..0000000 --- a/e2sim/previous/ASN1c/NRCellIdentifier.c +++ /dev/null @@ -1,85 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "NRCellIdentifier.h" - -int -NRCellIdentifier_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if(st->size > 0) { - /* Size in bits */ - size = 8 * st->size - (st->bits_unused & 0x07); - } else { - size = 0; - } - - if((size == 36)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using BIT_STRING, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_NRCellIdentifier_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 0, 0, 36, 36 } /* (SIZE(36..36)) */, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_NRCellIdentifier_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_NRCellIdentifier = { - "NRCellIdentifier", - "NRCellIdentifier", - &asn_OP_BIT_STRING, - asn_DEF_NRCellIdentifier_tags_1, - sizeof(asn_DEF_NRCellIdentifier_tags_1) - /sizeof(asn_DEF_NRCellIdentifier_tags_1[0]), /* 1 */ - asn_DEF_NRCellIdentifier_tags_1, /* Same as above */ - sizeof(asn_DEF_NRCellIdentifier_tags_1) - /sizeof(asn_DEF_NRCellIdentifier_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_NRCellIdentifier_constr_1, NRCellIdentifier_constraint }, - 0, 0, /* No members */ - &asn_SPC_BIT_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/NRCellIdentifier.h b/e2sim/previous/ASN1c/NRCellIdentifier.h deleted file mode 100644 index fd1b24d..0000000 --- a/e2sim/previous/ASN1c/NRCellIdentifier.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _NRCellIdentifier_H_ -#define _NRCellIdentifier_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "BIT_STRING.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* NRCellIdentifier */ -typedef BIT_STRING_t NRCellIdentifier_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_NRCellIdentifier_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_NRCellIdentifier; -asn_struct_free_f NRCellIdentifier_free; -asn_struct_print_f NRCellIdentifier_print; -asn_constr_check_f NRCellIdentifier_constraint; -ber_type_decoder_f NRCellIdentifier_decode_ber; -der_type_encoder_f NRCellIdentifier_encode_der; -xer_type_decoder_f NRCellIdentifier_decode_xer; -xer_type_encoder_f NRCellIdentifier_encode_xer; -per_type_decoder_f NRCellIdentifier_decode_uper; -per_type_encoder_f NRCellIdentifier_encode_uper; -per_type_decoder_f NRCellIdentifier_decode_aper; -per_type_encoder_f NRCellIdentifier_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _NRCellIdentifier_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/NRFreqInfo.c b/e2sim/previous/ASN1c/NRFreqInfo.c deleted file mode 100644 index b75d9be..0000000 --- a/e2sim/previous/ASN1c/NRFreqInfo.c +++ /dev/null @@ -1,206 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "NRFreqInfo.h" - -#include "SULInformation.h" -#include "ProtocolExtensionContainer.h" -#include "FreqBandNrItem.h" -static int -memb_nRARFCN_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 3279165)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_freqBandListNr_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - /* Determine the number of elements */ - size = _A_CSEQUENCE_FROM_VOID(sptr)->count; - - if((size >= 1 && size <= 32)) { - /* Perform validation of the inner elements */ - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_per_constraints_t asn_PER_type_freqBandListNr_constr_3 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_nRARFCN_constr_2 CC_NOTUSED = { - { APC_CONSTRAINED, 22, -1, 0, 3279165 } /* (0..3279165) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_freqBandListNr_constr_3 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_freqBandListNr_3[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_FreqBandNrItem, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_freqBandListNr_tags_3[] = { - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_freqBandListNr_specs_3 = { - sizeof(struct NRFreqInfo__freqBandListNr), - offsetof(struct NRFreqInfo__freqBandListNr, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_freqBandListNr_3 = { - "freqBandListNr", - "freqBandListNr", - &asn_OP_SEQUENCE_OF, - asn_DEF_freqBandListNr_tags_3, - sizeof(asn_DEF_freqBandListNr_tags_3) - /sizeof(asn_DEF_freqBandListNr_tags_3[0]) - 1, /* 1 */ - asn_DEF_freqBandListNr_tags_3, /* Same as above */ - sizeof(asn_DEF_freqBandListNr_tags_3) - /sizeof(asn_DEF_freqBandListNr_tags_3[0]), /* 2 */ - { 0, &asn_PER_type_freqBandListNr_constr_3, SEQUENCE_OF_constraint }, - asn_MBR_freqBandListNr_3, - 1, /* Single element */ - &asn_SPC_freqBandListNr_specs_3 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_NRFreqInfo_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct NRFreqInfo, nRARFCN), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { 0, &asn_PER_memb_nRARFCN_constr_2, memb_nRARFCN_constraint_1 }, - 0, 0, /* No default value */ - "nRARFCN" - }, - { ATF_NOFLAGS, 0, offsetof(struct NRFreqInfo, freqBandListNr), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - 0, - &asn_DEF_freqBandListNr_3, - 0, - { 0, &asn_PER_memb_freqBandListNr_constr_3, memb_freqBandListNr_constraint_1 }, - 0, 0, /* No default value */ - "freqBandListNr" - }, - { ATF_POINTER, 2, offsetof(struct NRFreqInfo, sULInformation), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_SULInformation, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "sULInformation" - }, - { ATF_POINTER, 1, offsetof(struct NRFreqInfo, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P173, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_NRFreqInfo_oms_1[] = { 2, 3 }; -static const ber_tlv_tag_t asn_DEF_NRFreqInfo_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_NRFreqInfo_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nRARFCN */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* freqBandListNr */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* sULInformation */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_NRFreqInfo_specs_1 = { - sizeof(struct NRFreqInfo), - offsetof(struct NRFreqInfo, _asn_ctx), - asn_MAP_NRFreqInfo_tag2el_1, - 4, /* Count of tags in the map */ - asn_MAP_NRFreqInfo_oms_1, /* Optional members */ - 2, 0, /* Root/Additions */ - 4, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_NRFreqInfo = { - "NRFreqInfo", - "NRFreqInfo", - &asn_OP_SEQUENCE, - asn_DEF_NRFreqInfo_tags_1, - sizeof(asn_DEF_NRFreqInfo_tags_1) - /sizeof(asn_DEF_NRFreqInfo_tags_1[0]), /* 1 */ - asn_DEF_NRFreqInfo_tags_1, /* Same as above */ - sizeof(asn_DEF_NRFreqInfo_tags_1) - /sizeof(asn_DEF_NRFreqInfo_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_NRFreqInfo_1, - 4, /* Elements count */ - &asn_SPC_NRFreqInfo_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/NRFreqInfo.h b/e2sim/previous/ASN1c/NRFreqInfo.h deleted file mode 100644 index 8f674c2..0000000 --- a/e2sim/previous/ASN1c/NRFreqInfo.h +++ /dev/null @@ -1,77 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _NRFreqInfo_H_ -#define _NRFreqInfo_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeInteger.h" -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct SULInformation; -struct ProtocolExtensionContainer; -struct FreqBandNrItem; - -/* NRFreqInfo */ -typedef struct NRFreqInfo { - long nRARFCN; - struct NRFreqInfo__freqBandListNr { - A_SEQUENCE_OF(struct FreqBandNrItem) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } freqBandListNr; - struct SULInformation *sULInformation; /* OPTIONAL */ - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} NRFreqInfo_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_NRFreqInfo; -extern asn_SEQUENCE_specifics_t asn_SPC_NRFreqInfo_specs_1; -extern asn_TYPE_member_t asn_MBR_NRFreqInfo_1[4]; - -#ifdef __cplusplus -} -#endif - -#endif /* _NRFreqInfo_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/NRNRB.c b/e2sim/previous/ASN1c/NRNRB.c deleted file mode 100644 index 9afe201..0000000 --- a/e2sim/previous/ASN1c/NRNRB.c +++ /dev/null @@ -1,127 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "NRNRB.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_NRNRB_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 5, 5, 0, 28 } /* (0..28,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_NRNRB_value2enum_1[] = { - { 0, 5, "nrb11" }, - { 1, 5, "nrb18" }, - { 2, 5, "nrb24" }, - { 3, 5, "nrb25" }, - { 4, 5, "nrb31" }, - { 5, 5, "nrb32" }, - { 6, 5, "nrb38" }, - { 7, 5, "nrb51" }, - { 8, 5, "nrb52" }, - { 9, 5, "nrb65" }, - { 10, 5, "nrb66" }, - { 11, 5, "nrb78" }, - { 12, 5, "nrb79" }, - { 13, 5, "nrb93" }, - { 14, 6, "nrb106" }, - { 15, 6, "nrb107" }, - { 16, 6, "nrb121" }, - { 17, 6, "nrb132" }, - { 18, 6, "nrb133" }, - { 19, 6, "nrb135" }, - { 20, 6, "nrb160" }, - { 21, 6, "nrb162" }, - { 22, 6, "nrb189" }, - { 23, 6, "nrb216" }, - { 24, 6, "nrb217" }, - { 25, 6, "nrb245" }, - { 26, 6, "nrb264" }, - { 27, 6, "nrb270" }, - { 28, 6, "nrb273" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_NRNRB_enum2value_1[] = { - 14, /* nrb106(14) */ - 15, /* nrb107(15) */ - 0, /* nrb11(0) */ - 16, /* nrb121(16) */ - 17, /* nrb132(17) */ - 18, /* nrb133(18) */ - 19, /* nrb135(19) */ - 20, /* nrb160(20) */ - 21, /* nrb162(21) */ - 1, /* nrb18(1) */ - 22, /* nrb189(22) */ - 23, /* nrb216(23) */ - 24, /* nrb217(24) */ - 2, /* nrb24(2) */ - 25, /* nrb245(25) */ - 3, /* nrb25(3) */ - 26, /* nrb264(26) */ - 27, /* nrb270(27) */ - 28, /* nrb273(28) */ - 4, /* nrb31(4) */ - 5, /* nrb32(5) */ - 6, /* nrb38(6) */ - 7, /* nrb51(7) */ - 8, /* nrb52(8) */ - 9, /* nrb65(9) */ - 10, /* nrb66(10) */ - 11, /* nrb78(11) */ - 12, /* nrb79(12) */ - 13 /* nrb93(13) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_NRNRB_specs_1 = { - asn_MAP_NRNRB_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_NRNRB_enum2value_1, /* N => "tag"; sorted by N */ - 29, /* Number of elements in the maps */ - 30, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_NRNRB_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_NRNRB = { - "NRNRB", - "NRNRB", - &asn_OP_NativeEnumerated, - asn_DEF_NRNRB_tags_1, - sizeof(asn_DEF_NRNRB_tags_1) - /sizeof(asn_DEF_NRNRB_tags_1[0]), /* 1 */ - asn_DEF_NRNRB_tags_1, /* Same as above */ - sizeof(asn_DEF_NRNRB_tags_1) - /sizeof(asn_DEF_NRNRB_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_NRNRB_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_NRNRB_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/NRNRB.h b/e2sim/previous/ASN1c/NRNRB.h deleted file mode 100644 index cdd541b..0000000 --- a/e2sim/previous/ASN1c/NRNRB.h +++ /dev/null @@ -1,99 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _NRNRB_H_ -#define _NRNRB_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum NRNRB { - NRNRB_nrb11 = 0, - NRNRB_nrb18 = 1, - NRNRB_nrb24 = 2, - NRNRB_nrb25 = 3, - NRNRB_nrb31 = 4, - NRNRB_nrb32 = 5, - NRNRB_nrb38 = 6, - NRNRB_nrb51 = 7, - NRNRB_nrb52 = 8, - NRNRB_nrb65 = 9, - NRNRB_nrb66 = 10, - NRNRB_nrb78 = 11, - NRNRB_nrb79 = 12, - NRNRB_nrb93 = 13, - NRNRB_nrb106 = 14, - NRNRB_nrb107 = 15, - NRNRB_nrb121 = 16, - NRNRB_nrb132 = 17, - NRNRB_nrb133 = 18, - NRNRB_nrb135 = 19, - NRNRB_nrb160 = 20, - NRNRB_nrb162 = 21, - NRNRB_nrb189 = 22, - NRNRB_nrb216 = 23, - NRNRB_nrb217 = 24, - NRNRB_nrb245 = 25, - NRNRB_nrb264 = 26, - NRNRB_nrb270 = 27, - NRNRB_nrb273 = 28 - /* - * Enumeration is extensible - */ -} e_NRNRB; - -/* NRNRB */ -typedef long NRNRB_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_NRNRB_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_NRNRB; -extern const asn_INTEGER_specifics_t asn_SPC_NRNRB_specs_1; -asn_struct_free_f NRNRB_free; -asn_struct_print_f NRNRB_print; -asn_constr_check_f NRNRB_constraint; -ber_type_decoder_f NRNRB_decode_ber; -der_type_encoder_f NRNRB_encode_der; -xer_type_decoder_f NRNRB_decode_xer; -xer_type_encoder_f NRNRB_encode_xer; -per_type_decoder_f NRNRB_decode_uper; -per_type_encoder_f NRNRB_encode_uper; -per_type_decoder_f NRNRB_decode_aper; -per_type_encoder_f NRNRB_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _NRNRB_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/NRNeighbour-Information.c b/e2sim/previous/ASN1c/NRNeighbour-Information.c deleted file mode 100644 index 875f4ca..0000000 --- a/e2sim/previous/ASN1c/NRNeighbour-Information.c +++ /dev/null @@ -1,228 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "NRNeighbour-Information.h" - -#include "ProtocolExtensionContainer.h" -#include "FDD-InfoNeighbourServedNRCell-Information.h" -#include "TDD-InfoNeighbourServedNRCell-Information.h" -static asn_per_constraints_t asn_PER_type_nRNeighbourModeInfo_constr_8 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_NRNeighbour_Information_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 10, 10, 1, 1024 } /* (SIZE(1..1024)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_nRNeighbourModeInfo_8[] = { - { ATF_POINTER, 0, offsetof(struct NRNeighbour_Information__Member__nRNeighbourModeInfo, choice.fdd), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_FDD_InfoNeighbourServedNRCell_Information, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "fdd" - }, - { ATF_POINTER, 0, offsetof(struct NRNeighbour_Information__Member__nRNeighbourModeInfo, choice.tdd), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_TDD_InfoNeighbourServedNRCell_Information, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "tdd" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_nRNeighbourModeInfo_tag2el_8[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* fdd */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* tdd */ -}; -static asn_CHOICE_specifics_t asn_SPC_nRNeighbourModeInfo_specs_8 = { - sizeof(struct NRNeighbour_Information__Member__nRNeighbourModeInfo), - offsetof(struct NRNeighbour_Information__Member__nRNeighbourModeInfo, _asn_ctx), - offsetof(struct NRNeighbour_Information__Member__nRNeighbourModeInfo, present), - sizeof(((struct NRNeighbour_Information__Member__nRNeighbourModeInfo *)0)->present), - asn_MAP_nRNeighbourModeInfo_tag2el_8, - 2, /* Count of tags in the map */ - 0, 0, - 2 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_nRNeighbourModeInfo_8 = { - "nRNeighbourModeInfo", - "nRNeighbourModeInfo", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, &asn_PER_type_nRNeighbourModeInfo_constr_8, CHOICE_constraint }, - asn_MBR_nRNeighbourModeInfo_8, - 2, /* Elements count */ - &asn_SPC_nRNeighbourModeInfo_specs_8 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_Member_2[] = { - { ATF_NOFLAGS, 0, offsetof(struct NRNeighbour_Information__Member, nrpCI), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NRPCI, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "nrpCI" - }, - { ATF_NOFLAGS, 0, offsetof(struct NRNeighbour_Information__Member, nrCellID), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NRCGI, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "nrCellID" - }, - { ATF_POINTER, 2, offsetof(struct NRNeighbour_Information__Member, fiveGS_TAC), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_FiveGS_TAC, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "fiveGS-TAC" - }, - { ATF_POINTER, 1, offsetof(struct NRNeighbour_Information__Member, configured_TAC), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_TAC, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "configured-TAC" - }, - { ATF_NOFLAGS, 0, offsetof(struct NRNeighbour_Information__Member, measurementTimingConfiguration), - (ASN_TAG_CLASS_CONTEXT | (4 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_OCTET_STRING, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "measurementTimingConfiguration" - }, - { ATF_NOFLAGS, 0, offsetof(struct NRNeighbour_Information__Member, nRNeighbourModeInfo), - (ASN_TAG_CLASS_CONTEXT | (5 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_nRNeighbourModeInfo_8, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "nRNeighbourModeInfo" - }, - { ATF_POINTER, 1, offsetof(struct NRNeighbour_Information__Member, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (6 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P97, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_Member_oms_2[] = { 2, 3, 6 }; -static const ber_tlv_tag_t asn_DEF_Member_tags_2[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_Member_tag2el_2[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nrpCI */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* nrCellID */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* fiveGS-TAC */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* configured-TAC */ - { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* measurementTimingConfiguration */ - { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* nRNeighbourModeInfo */ - { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 } /* iE-Extensions */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_Member_specs_2 = { - sizeof(struct NRNeighbour_Information__Member), - offsetof(struct NRNeighbour_Information__Member, _asn_ctx), - asn_MAP_Member_tag2el_2, - 7, /* Count of tags in the map */ - asn_MAP_Member_oms_2, /* Optional members */ - 3, 0, /* Root/Additions */ - 7, /* First extension addition */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_Member_2 = { - "SEQUENCE", - "SEQUENCE", - &asn_OP_SEQUENCE, - asn_DEF_Member_tags_2, - sizeof(asn_DEF_Member_tags_2) - /sizeof(asn_DEF_Member_tags_2[0]), /* 1 */ - asn_DEF_Member_tags_2, /* Same as above */ - sizeof(asn_DEF_Member_tags_2) - /sizeof(asn_DEF_Member_tags_2[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_Member_2, - 7, /* Elements count */ - &asn_SPC_Member_specs_2 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_NRNeighbour_Information_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_Member_2, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_NRNeighbour_Information_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_NRNeighbour_Information_specs_1 = { - sizeof(struct NRNeighbour_Information), - offsetof(struct NRNeighbour_Information, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_NRNeighbour_Information = { - "NRNeighbour-Information", - "NRNeighbour-Information", - &asn_OP_SEQUENCE_OF, - asn_DEF_NRNeighbour_Information_tags_1, - sizeof(asn_DEF_NRNeighbour_Information_tags_1) - /sizeof(asn_DEF_NRNeighbour_Information_tags_1[0]), /* 1 */ - asn_DEF_NRNeighbour_Information_tags_1, /* Same as above */ - sizeof(asn_DEF_NRNeighbour_Information_tags_1) - /sizeof(asn_DEF_NRNeighbour_Information_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_NRNeighbour_Information_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_NRNeighbour_Information_1, - 1, /* Single element */ - &asn_SPC_NRNeighbour_Information_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/NRNeighbour-Information.h b/e2sim/previous/ASN1c/NRNeighbour-Information.h deleted file mode 100644 index 6a9051b..0000000 --- a/e2sim/previous/ASN1c/NRNeighbour-Information.h +++ /dev/null @@ -1,111 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _NRNeighbour_Information_H_ -#define _NRNeighbour_Information_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "NRPCI.h" -#include "NRCGI.h" -#include "FiveGS-TAC.h" -#include "TAC.h" -#include "OCTET_STRING.h" -#include "constr_CHOICE.h" -#include "constr_SEQUENCE.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum NRNeighbour_Information__Member__nRNeighbourModeInfo_PR { - NRNeighbour_Information__Member__nRNeighbourModeInfo_PR_NOTHING, /* No components present */ - NRNeighbour_Information__Member__nRNeighbourModeInfo_PR_fdd, - NRNeighbour_Information__Member__nRNeighbourModeInfo_PR_tdd - /* Extensions may appear below */ - -} NRNeighbour_Information__Member__nRNeighbourModeInfo_PR; - -/* Forward declarations */ -struct ProtocolExtensionContainer; -struct FDD_InfoNeighbourServedNRCell_Information; -struct TDD_InfoNeighbourServedNRCell_Information; - -/* Forward definitions */ -typedef struct NRNeighbour_Information__Member { - NRPCI_t nrpCI; - NRCGI_t nrCellID; - FiveGS_TAC_t *fiveGS_TAC; /* OPTIONAL */ - TAC_t *configured_TAC; /* OPTIONAL */ - OCTET_STRING_t measurementTimingConfiguration; - struct NRNeighbour_Information__Member__nRNeighbourModeInfo { - NRNeighbour_Information__Member__nRNeighbourModeInfo_PR present; - union NRNeighbour_Information__Member__nRNeighbourModeInfo_u { - struct FDD_InfoNeighbourServedNRCell_Information *fdd; - struct TDD_InfoNeighbourServedNRCell_Information *tdd; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } nRNeighbourModeInfo; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} NRNeighbour_Information__Member; - -/* NRNeighbour-Information */ -typedef struct NRNeighbour_Information { - A_SEQUENCE_OF(NRNeighbour_Information__Member) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} NRNeighbour_Information_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_NRNeighbour_Information; -extern asn_SET_OF_specifics_t asn_SPC_NRNeighbour_Information_specs_1; -extern asn_TYPE_member_t asn_MBR_NRNeighbour_Information_1[1]; -extern asn_per_constraints_t asn_PER_type_NRNeighbour_Information_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _NRNeighbour_Information_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/NRPCI.c b/e2sim/previous/ASN1c/NRPCI.c deleted file mode 100644 index b7c0229..0000000 --- a/e2sim/previous/ASN1c/NRPCI.c +++ /dev/null @@ -1,79 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "NRPCI.h" - -int -NRPCI_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 1007)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using NativeInteger, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_NRPCI_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED, 10, 10, 0, 1007 } /* (0..1007) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_NRPCI_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_NRPCI = { - "NRPCI", - "NRPCI", - &asn_OP_NativeInteger, - asn_DEF_NRPCI_tags_1, - sizeof(asn_DEF_NRPCI_tags_1) - /sizeof(asn_DEF_NRPCI_tags_1[0]), /* 1 */ - asn_DEF_NRPCI_tags_1, /* Same as above */ - sizeof(asn_DEF_NRPCI_tags_1) - /sizeof(asn_DEF_NRPCI_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_NRPCI_constr_1, NRPCI_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/previous/ASN1c/NRPCI.h b/e2sim/previous/ASN1c/NRPCI.h deleted file mode 100644 index 0058372..0000000 --- a/e2sim/previous/ASN1c/NRPCI.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _NRPCI_H_ -#define _NRPCI_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeInteger.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* NRPCI */ -typedef long NRPCI_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_NRPCI_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_NRPCI; -asn_struct_free_f NRPCI_free; -asn_struct_print_f NRPCI_print; -asn_constr_check_f NRPCI_constraint; -ber_type_decoder_f NRPCI_decode_ber; -der_type_encoder_f NRPCI_encode_der; -xer_type_decoder_f NRPCI_decode_xer; -xer_type_encoder_f NRPCI_encode_xer; -per_type_decoder_f NRPCI_decode_uper; -per_type_encoder_f NRPCI_encode_uper; -per_type_decoder_f NRPCI_decode_aper; -per_type_encoder_f NRPCI_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _NRPCI_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/NRS-NSSS-PowerOffset.c b/e2sim/previous/ASN1c/NRS-NSSS-PowerOffset.c deleted file mode 100644 index 1b40408..0000000 --- a/e2sim/previous/ASN1c/NRS-NSSS-PowerOffset.c +++ /dev/null @@ -1,75 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "NRS-NSSS-PowerOffset.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_NRS_NSSS_PowerOffset_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 2 } /* (0..2,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_NRS_NSSS_PowerOffset_value2enum_1[] = { - { 0, 10, "minusThree" }, - { 1, 4, "zero" }, - { 2, 5, "three" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_NRS_NSSS_PowerOffset_enum2value_1[] = { - 0, /* minusThree(0) */ - 2, /* three(2) */ - 1 /* zero(1) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_NRS_NSSS_PowerOffset_specs_1 = { - asn_MAP_NRS_NSSS_PowerOffset_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_NRS_NSSS_PowerOffset_enum2value_1, /* N => "tag"; sorted by N */ - 3, /* Number of elements in the maps */ - 4, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_NRS_NSSS_PowerOffset_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_NRS_NSSS_PowerOffset = { - "NRS-NSSS-PowerOffset", - "NRS-NSSS-PowerOffset", - &asn_OP_NativeEnumerated, - asn_DEF_NRS_NSSS_PowerOffset_tags_1, - sizeof(asn_DEF_NRS_NSSS_PowerOffset_tags_1) - /sizeof(asn_DEF_NRS_NSSS_PowerOffset_tags_1[0]), /* 1 */ - asn_DEF_NRS_NSSS_PowerOffset_tags_1, /* Same as above */ - sizeof(asn_DEF_NRS_NSSS_PowerOffset_tags_1) - /sizeof(asn_DEF_NRS_NSSS_PowerOffset_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_NRS_NSSS_PowerOffset_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_NRS_NSSS_PowerOffset_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/NRS-NSSS-PowerOffset.h b/e2sim/previous/ASN1c/NRS-NSSS-PowerOffset.h deleted file mode 100644 index 9e2f7ca..0000000 --- a/e2sim/previous/ASN1c/NRS-NSSS-PowerOffset.h +++ /dev/null @@ -1,73 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _NRS_NSSS_PowerOffset_H_ -#define _NRS_NSSS_PowerOffset_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum NRS_NSSS_PowerOffset { - NRS_NSSS_PowerOffset_minusThree = 0, - NRS_NSSS_PowerOffset_zero = 1, - NRS_NSSS_PowerOffset_three = 2 - /* - * Enumeration is extensible - */ -} e_NRS_NSSS_PowerOffset; - -/* NRS-NSSS-PowerOffset */ -typedef long NRS_NSSS_PowerOffset_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_NRS_NSSS_PowerOffset_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_NRS_NSSS_PowerOffset; -extern const asn_INTEGER_specifics_t asn_SPC_NRS_NSSS_PowerOffset_specs_1; -asn_struct_free_f NRS_NSSS_PowerOffset_free; -asn_struct_print_f NRS_NSSS_PowerOffset_print; -asn_constr_check_f NRS_NSSS_PowerOffset_constraint; -ber_type_decoder_f NRS_NSSS_PowerOffset_decode_ber; -der_type_encoder_f NRS_NSSS_PowerOffset_encode_der; -xer_type_decoder_f NRS_NSSS_PowerOffset_decode_xer; -xer_type_encoder_f NRS_NSSS_PowerOffset_encode_xer; -per_type_decoder_f NRS_NSSS_PowerOffset_decode_uper; -per_type_encoder_f NRS_NSSS_PowerOffset_encode_uper; -per_type_decoder_f NRS_NSSS_PowerOffset_decode_aper; -per_type_encoder_f NRS_NSSS_PowerOffset_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _NRS_NSSS_PowerOffset_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/NRSCS.c b/e2sim/previous/ASN1c/NRSCS.c deleted file mode 100644 index c22aea1..0000000 --- a/e2sim/previous/ASN1c/NRSCS.c +++ /dev/null @@ -1,77 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "NRSCS.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_NRSCS_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 3 } /* (0..3,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_NRSCS_value2enum_1[] = { - { 0, 5, "scs15" }, - { 1, 5, "scs30" }, - { 2, 5, "scs60" }, - { 3, 6, "scs120" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_NRSCS_enum2value_1[] = { - 3, /* scs120(3) */ - 0, /* scs15(0) */ - 1, /* scs30(1) */ - 2 /* scs60(2) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_NRSCS_specs_1 = { - asn_MAP_NRSCS_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_NRSCS_enum2value_1, /* N => "tag"; sorted by N */ - 4, /* Number of elements in the maps */ - 5, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_NRSCS_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_NRSCS = { - "NRSCS", - "NRSCS", - &asn_OP_NativeEnumerated, - asn_DEF_NRSCS_tags_1, - sizeof(asn_DEF_NRSCS_tags_1) - /sizeof(asn_DEF_NRSCS_tags_1[0]), /* 1 */ - asn_DEF_NRSCS_tags_1, /* Same as above */ - sizeof(asn_DEF_NRSCS_tags_1) - /sizeof(asn_DEF_NRSCS_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_NRSCS_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_NRSCS_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/NRSCS.h b/e2sim/previous/ASN1c/NRSCS.h deleted file mode 100644 index ed4aea4..0000000 --- a/e2sim/previous/ASN1c/NRSCS.h +++ /dev/null @@ -1,74 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _NRSCS_H_ -#define _NRSCS_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum NRSCS { - NRSCS_scs15 = 0, - NRSCS_scs30 = 1, - NRSCS_scs60 = 2, - NRSCS_scs120 = 3 - /* - * Enumeration is extensible - */ -} e_NRSCS; - -/* NRSCS */ -typedef long NRSCS_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_NRSCS_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_NRSCS; -extern const asn_INTEGER_specifics_t asn_SPC_NRSCS_specs_1; -asn_struct_free_f NRSCS_free; -asn_struct_print_f NRSCS_print; -asn_constr_check_f NRSCS_constraint; -ber_type_decoder_f NRSCS_decode_ber; -der_type_encoder_f NRSCS_encode_der; -xer_type_decoder_f NRSCS_decode_xer; -xer_type_encoder_f NRSCS_encode_xer; -per_type_decoder_f NRSCS_decode_uper; -per_type_encoder_f NRSCS_encode_uper; -per_type_decoder_f NRSCS_decode_aper; -per_type_encoder_f NRSCS_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _NRSCS_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/NRUESecurityCapabilities.c b/e2sim/previous/ASN1c/NRUESecurityCapabilities.c deleted file mode 100644 index 587fe22..0000000 --- a/e2sim/previous/ASN1c/NRUESecurityCapabilities.c +++ /dev/null @@ -1,91 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "NRUESecurityCapabilities.h" - -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_NRUESecurityCapabilities_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct NRUESecurityCapabilities, nRencryptionAlgorithms), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NRencryptionAlgorithms, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "nRencryptionAlgorithms" - }, - { ATF_NOFLAGS, 0, offsetof(struct NRUESecurityCapabilities, nRintegrityProtectionAlgorithms), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NRintegrityProtectionAlgorithms, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "nRintegrityProtectionAlgorithms" - }, - { ATF_POINTER, 1, offsetof(struct NRUESecurityCapabilities, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P176, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_NRUESecurityCapabilities_oms_1[] = { 2 }; -static const ber_tlv_tag_t asn_DEF_NRUESecurityCapabilities_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_NRUESecurityCapabilities_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nRencryptionAlgorithms */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* nRintegrityProtectionAlgorithms */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_NRUESecurityCapabilities_specs_1 = { - sizeof(struct NRUESecurityCapabilities), - offsetof(struct NRUESecurityCapabilities, _asn_ctx), - asn_MAP_NRUESecurityCapabilities_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_NRUESecurityCapabilities_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_NRUESecurityCapabilities = { - "NRUESecurityCapabilities", - "NRUESecurityCapabilities", - &asn_OP_SEQUENCE, - asn_DEF_NRUESecurityCapabilities_tags_1, - sizeof(asn_DEF_NRUESecurityCapabilities_tags_1) - /sizeof(asn_DEF_NRUESecurityCapabilities_tags_1[0]), /* 1 */ - asn_DEF_NRUESecurityCapabilities_tags_1, /* Same as above */ - sizeof(asn_DEF_NRUESecurityCapabilities_tags_1) - /sizeof(asn_DEF_NRUESecurityCapabilities_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_NRUESecurityCapabilities_1, - 3, /* Elements count */ - &asn_SPC_NRUESecurityCapabilities_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/NRUESecurityCapabilities.h b/e2sim/previous/ASN1c/NRUESecurityCapabilities.h deleted file mode 100644 index 7f75083..0000000 --- a/e2sim/previous/ASN1c/NRUESecurityCapabilities.h +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _NRUESecurityCapabilities_H_ -#define _NRUESecurityCapabilities_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NRencryptionAlgorithms.h" -#include "NRintegrityProtectionAlgorithms.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* NRUESecurityCapabilities */ -typedef struct NRUESecurityCapabilities { - NRencryptionAlgorithms_t nRencryptionAlgorithms; - NRintegrityProtectionAlgorithms_t nRintegrityProtectionAlgorithms; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} NRUESecurityCapabilities_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_NRUESecurityCapabilities; -extern asn_SEQUENCE_specifics_t asn_SPC_NRUESecurityCapabilities_specs_1; -extern asn_TYPE_member_t asn_MBR_NRUESecurityCapabilities_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _NRUESecurityCapabilities_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/NRencryptionAlgorithms.c b/e2sim/previous/ASN1c/NRencryptionAlgorithms.c deleted file mode 100644 index 84406bd..0000000 --- a/e2sim/previous/ASN1c/NRencryptionAlgorithms.c +++ /dev/null @@ -1,85 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "NRencryptionAlgorithms.h" - -int -NRencryptionAlgorithms_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if(st->size > 0) { - /* Size in bits */ - size = 8 * st->size - (st->bits_unused & 0x07); - } else { - size = 0; - } - - if((size == 16)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using BIT_STRING, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_NRencryptionAlgorithms_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 16, 16 } /* (SIZE(16..16,...)) */, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_NRencryptionAlgorithms_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_NRencryptionAlgorithms = { - "NRencryptionAlgorithms", - "NRencryptionAlgorithms", - &asn_OP_BIT_STRING, - asn_DEF_NRencryptionAlgorithms_tags_1, - sizeof(asn_DEF_NRencryptionAlgorithms_tags_1) - /sizeof(asn_DEF_NRencryptionAlgorithms_tags_1[0]), /* 1 */ - asn_DEF_NRencryptionAlgorithms_tags_1, /* Same as above */ - sizeof(asn_DEF_NRencryptionAlgorithms_tags_1) - /sizeof(asn_DEF_NRencryptionAlgorithms_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_NRencryptionAlgorithms_constr_1, NRencryptionAlgorithms_constraint }, - 0, 0, /* No members */ - &asn_SPC_BIT_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/NRencryptionAlgorithms.h b/e2sim/previous/ASN1c/NRencryptionAlgorithms.h deleted file mode 100644 index 946bdc2..0000000 --- a/e2sim/previous/ASN1c/NRencryptionAlgorithms.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _NRencryptionAlgorithms_H_ -#define _NRencryptionAlgorithms_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "BIT_STRING.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* NRencryptionAlgorithms */ -typedef BIT_STRING_t NRencryptionAlgorithms_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_NRencryptionAlgorithms_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_NRencryptionAlgorithms; -asn_struct_free_f NRencryptionAlgorithms_free; -asn_struct_print_f NRencryptionAlgorithms_print; -asn_constr_check_f NRencryptionAlgorithms_constraint; -ber_type_decoder_f NRencryptionAlgorithms_decode_ber; -der_type_encoder_f NRencryptionAlgorithms_encode_der; -xer_type_decoder_f NRencryptionAlgorithms_decode_xer; -xer_type_encoder_f NRencryptionAlgorithms_encode_xer; -per_type_decoder_f NRencryptionAlgorithms_decode_uper; -per_type_encoder_f NRencryptionAlgorithms_encode_uper; -per_type_decoder_f NRencryptionAlgorithms_decode_aper; -per_type_encoder_f NRencryptionAlgorithms_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _NRencryptionAlgorithms_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/NRintegrityProtectionAlgorithms.c b/e2sim/previous/ASN1c/NRintegrityProtectionAlgorithms.c deleted file mode 100644 index 19cb9e6..0000000 --- a/e2sim/previous/ASN1c/NRintegrityProtectionAlgorithms.c +++ /dev/null @@ -1,85 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "NRintegrityProtectionAlgorithms.h" - -int -NRintegrityProtectionAlgorithms_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if(st->size > 0) { - /* Size in bits */ - size = 8 * st->size - (st->bits_unused & 0x07); - } else { - size = 0; - } - - if((size == 16)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using BIT_STRING, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_NRintegrityProtectionAlgorithms_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 16, 16 } /* (SIZE(16..16,...)) */, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_NRintegrityProtectionAlgorithms_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_NRintegrityProtectionAlgorithms = { - "NRintegrityProtectionAlgorithms", - "NRintegrityProtectionAlgorithms", - &asn_OP_BIT_STRING, - asn_DEF_NRintegrityProtectionAlgorithms_tags_1, - sizeof(asn_DEF_NRintegrityProtectionAlgorithms_tags_1) - /sizeof(asn_DEF_NRintegrityProtectionAlgorithms_tags_1[0]), /* 1 */ - asn_DEF_NRintegrityProtectionAlgorithms_tags_1, /* Same as above */ - sizeof(asn_DEF_NRintegrityProtectionAlgorithms_tags_1) - /sizeof(asn_DEF_NRintegrityProtectionAlgorithms_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_NRintegrityProtectionAlgorithms_constr_1, NRintegrityProtectionAlgorithms_constraint }, - 0, 0, /* No members */ - &asn_SPC_BIT_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/NRintegrityProtectionAlgorithms.h b/e2sim/previous/ASN1c/NRintegrityProtectionAlgorithms.h deleted file mode 100644 index 7d65014..0000000 --- a/e2sim/previous/ASN1c/NRintegrityProtectionAlgorithms.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _NRintegrityProtectionAlgorithms_H_ -#define _NRintegrityProtectionAlgorithms_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "BIT_STRING.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* NRintegrityProtectionAlgorithms */ -typedef BIT_STRING_t NRintegrityProtectionAlgorithms_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_NRintegrityProtectionAlgorithms_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_NRintegrityProtectionAlgorithms; -asn_struct_free_f NRintegrityProtectionAlgorithms_free; -asn_struct_print_f NRintegrityProtectionAlgorithms_print; -asn_constr_check_f NRintegrityProtectionAlgorithms_constraint; -ber_type_decoder_f NRintegrityProtectionAlgorithms_decode_ber; -der_type_encoder_f NRintegrityProtectionAlgorithms_encode_der; -xer_type_decoder_f NRintegrityProtectionAlgorithms_decode_xer; -xer_type_encoder_f NRintegrityProtectionAlgorithms_encode_xer; -per_type_decoder_f NRintegrityProtectionAlgorithms_decode_uper; -per_type_encoder_f NRintegrityProtectionAlgorithms_encode_uper; -per_type_decoder_f NRintegrityProtectionAlgorithms_decode_aper; -per_type_encoder_f NRintegrityProtectionAlgorithms_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _NRintegrityProtectionAlgorithms_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/NRrestrictionin5GS.c b/e2sim/previous/ASN1c/NRrestrictionin5GS.c deleted file mode 100644 index f56e1e7..0000000 --- a/e2sim/previous/ASN1c/NRrestrictionin5GS.c +++ /dev/null @@ -1,71 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "NRrestrictionin5GS.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_NRrestrictionin5GS_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 0, 0 } /* (0..0,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_NRrestrictionin5GS_value2enum_1[] = { - { 0, 17, "nRrestrictedin5GS" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_NRrestrictionin5GS_enum2value_1[] = { - 0 /* nRrestrictedin5GS(0) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_NRrestrictionin5GS_specs_1 = { - asn_MAP_NRrestrictionin5GS_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_NRrestrictionin5GS_enum2value_1, /* N => "tag"; sorted by N */ - 1, /* Number of elements in the maps */ - 2, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_NRrestrictionin5GS_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_NRrestrictionin5GS = { - "NRrestrictionin5GS", - "NRrestrictionin5GS", - &asn_OP_NativeEnumerated, - asn_DEF_NRrestrictionin5GS_tags_1, - sizeof(asn_DEF_NRrestrictionin5GS_tags_1) - /sizeof(asn_DEF_NRrestrictionin5GS_tags_1[0]), /* 1 */ - asn_DEF_NRrestrictionin5GS_tags_1, /* Same as above */ - sizeof(asn_DEF_NRrestrictionin5GS_tags_1) - /sizeof(asn_DEF_NRrestrictionin5GS_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_NRrestrictionin5GS_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_NRrestrictionin5GS_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/NRrestrictionin5GS.h b/e2sim/previous/ASN1c/NRrestrictionin5GS.h deleted file mode 100644 index 779b2cb..0000000 --- a/e2sim/previous/ASN1c/NRrestrictionin5GS.h +++ /dev/null @@ -1,71 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _NRrestrictionin5GS_H_ -#define _NRrestrictionin5GS_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum NRrestrictionin5GS { - NRrestrictionin5GS_nRrestrictedin5GS = 0 - /* - * Enumeration is extensible - */ -} e_NRrestrictionin5GS; - -/* NRrestrictionin5GS */ -typedef long NRrestrictionin5GS_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_NRrestrictionin5GS_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_NRrestrictionin5GS; -extern const asn_INTEGER_specifics_t asn_SPC_NRrestrictionin5GS_specs_1; -asn_struct_free_f NRrestrictionin5GS_free; -asn_struct_print_f NRrestrictionin5GS_print; -asn_constr_check_f NRrestrictionin5GS_constraint; -ber_type_decoder_f NRrestrictionin5GS_decode_ber; -der_type_encoder_f NRrestrictionin5GS_encode_der; -xer_type_decoder_f NRrestrictionin5GS_decode_xer; -xer_type_encoder_f NRrestrictionin5GS_encode_xer; -per_type_decoder_f NRrestrictionin5GS_decode_uper; -per_type_encoder_f NRrestrictionin5GS_encode_uper; -per_type_decoder_f NRrestrictionin5GS_decode_aper; -per_type_encoder_f NRrestrictionin5GS_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _NRrestrictionin5GS_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/NRrestrictioninEPSasSecondaryRAT.c b/e2sim/previous/ASN1c/NRrestrictioninEPSasSecondaryRAT.c deleted file mode 100644 index a13c070..0000000 --- a/e2sim/previous/ASN1c/NRrestrictioninEPSasSecondaryRAT.c +++ /dev/null @@ -1,71 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "NRrestrictioninEPSasSecondaryRAT.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_NRrestrictioninEPSasSecondaryRAT_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 0, 0 } /* (0..0,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_NRrestrictioninEPSasSecondaryRAT_value2enum_1[] = { - { 0, 31, "nRrestrictedinEPSasSecondaryRAT" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_NRrestrictioninEPSasSecondaryRAT_enum2value_1[] = { - 0 /* nRrestrictedinEPSasSecondaryRAT(0) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_NRrestrictioninEPSasSecondaryRAT_specs_1 = { - asn_MAP_NRrestrictioninEPSasSecondaryRAT_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_NRrestrictioninEPSasSecondaryRAT_enum2value_1, /* N => "tag"; sorted by N */ - 1, /* Number of elements in the maps */ - 2, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_NRrestrictioninEPSasSecondaryRAT_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_NRrestrictioninEPSasSecondaryRAT = { - "NRrestrictioninEPSasSecondaryRAT", - "NRrestrictioninEPSasSecondaryRAT", - &asn_OP_NativeEnumerated, - asn_DEF_NRrestrictioninEPSasSecondaryRAT_tags_1, - sizeof(asn_DEF_NRrestrictioninEPSasSecondaryRAT_tags_1) - /sizeof(asn_DEF_NRrestrictioninEPSasSecondaryRAT_tags_1[0]), /* 1 */ - asn_DEF_NRrestrictioninEPSasSecondaryRAT_tags_1, /* Same as above */ - sizeof(asn_DEF_NRrestrictioninEPSasSecondaryRAT_tags_1) - /sizeof(asn_DEF_NRrestrictioninEPSasSecondaryRAT_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_NRrestrictioninEPSasSecondaryRAT_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_NRrestrictioninEPSasSecondaryRAT_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/NRrestrictioninEPSasSecondaryRAT.h b/e2sim/previous/ASN1c/NRrestrictioninEPSasSecondaryRAT.h deleted file mode 100644 index 5030ec2..0000000 --- a/e2sim/previous/ASN1c/NRrestrictioninEPSasSecondaryRAT.h +++ /dev/null @@ -1,71 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _NRrestrictioninEPSasSecondaryRAT_H_ -#define _NRrestrictioninEPSasSecondaryRAT_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum NRrestrictioninEPSasSecondaryRAT { - NRrestrictioninEPSasSecondaryRAT_nRrestrictedinEPSasSecondaryRAT = 0 - /* - * Enumeration is extensible - */ -} e_NRrestrictioninEPSasSecondaryRAT; - -/* NRrestrictioninEPSasSecondaryRAT */ -typedef long NRrestrictioninEPSasSecondaryRAT_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_NRrestrictioninEPSasSecondaryRAT_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_NRrestrictioninEPSasSecondaryRAT; -extern const asn_INTEGER_specifics_t asn_SPC_NRrestrictioninEPSasSecondaryRAT_specs_1; -asn_struct_free_f NRrestrictioninEPSasSecondaryRAT_free; -asn_struct_print_f NRrestrictioninEPSasSecondaryRAT_print; -asn_constr_check_f NRrestrictioninEPSasSecondaryRAT_constraint; -ber_type_decoder_f NRrestrictioninEPSasSecondaryRAT_decode_ber; -der_type_encoder_f NRrestrictioninEPSasSecondaryRAT_encode_der; -xer_type_decoder_f NRrestrictioninEPSasSecondaryRAT_decode_xer; -xer_type_encoder_f NRrestrictioninEPSasSecondaryRAT_encode_xer; -per_type_decoder_f NRrestrictioninEPSasSecondaryRAT_decode_uper; -per_type_encoder_f NRrestrictioninEPSasSecondaryRAT_encode_uper; -per_type_decoder_f NRrestrictioninEPSasSecondaryRAT_decode_aper; -per_type_encoder_f NRrestrictioninEPSasSecondaryRAT_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _NRrestrictioninEPSasSecondaryRAT_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/NSSS-NumOccasionDifferentPrecoder.c b/e2sim/previous/ASN1c/NSSS-NumOccasionDifferentPrecoder.c deleted file mode 100644 index f4f76a3..0000000 --- a/e2sim/previous/ASN1c/NSSS-NumOccasionDifferentPrecoder.c +++ /dev/null @@ -1,75 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "NSSS-NumOccasionDifferentPrecoder.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_NSSS_NumOccasionDifferentPrecoder_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 2 } /* (0..2,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_NSSS_NumOccasionDifferentPrecoder_value2enum_1[] = { - { 0, 3, "two" }, - { 1, 4, "four" }, - { 2, 5, "eight" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_NSSS_NumOccasionDifferentPrecoder_enum2value_1[] = { - 2, /* eight(2) */ - 1, /* four(1) */ - 0 /* two(0) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_NSSS_NumOccasionDifferentPrecoder_specs_1 = { - asn_MAP_NSSS_NumOccasionDifferentPrecoder_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_NSSS_NumOccasionDifferentPrecoder_enum2value_1, /* N => "tag"; sorted by N */ - 3, /* Number of elements in the maps */ - 4, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_NSSS_NumOccasionDifferentPrecoder_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_NSSS_NumOccasionDifferentPrecoder = { - "NSSS-NumOccasionDifferentPrecoder", - "NSSS-NumOccasionDifferentPrecoder", - &asn_OP_NativeEnumerated, - asn_DEF_NSSS_NumOccasionDifferentPrecoder_tags_1, - sizeof(asn_DEF_NSSS_NumOccasionDifferentPrecoder_tags_1) - /sizeof(asn_DEF_NSSS_NumOccasionDifferentPrecoder_tags_1[0]), /* 1 */ - asn_DEF_NSSS_NumOccasionDifferentPrecoder_tags_1, /* Same as above */ - sizeof(asn_DEF_NSSS_NumOccasionDifferentPrecoder_tags_1) - /sizeof(asn_DEF_NSSS_NumOccasionDifferentPrecoder_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_NSSS_NumOccasionDifferentPrecoder_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_NSSS_NumOccasionDifferentPrecoder_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/NSSS-NumOccasionDifferentPrecoder.h b/e2sim/previous/ASN1c/NSSS-NumOccasionDifferentPrecoder.h deleted file mode 100644 index 92f41d8..0000000 --- a/e2sim/previous/ASN1c/NSSS-NumOccasionDifferentPrecoder.h +++ /dev/null @@ -1,73 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _NSSS_NumOccasionDifferentPrecoder_H_ -#define _NSSS_NumOccasionDifferentPrecoder_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum NSSS_NumOccasionDifferentPrecoder { - NSSS_NumOccasionDifferentPrecoder_two = 0, - NSSS_NumOccasionDifferentPrecoder_four = 1, - NSSS_NumOccasionDifferentPrecoder_eight = 2 - /* - * Enumeration is extensible - */ -} e_NSSS_NumOccasionDifferentPrecoder; - -/* NSSS-NumOccasionDifferentPrecoder */ -typedef long NSSS_NumOccasionDifferentPrecoder_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_NSSS_NumOccasionDifferentPrecoder_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_NSSS_NumOccasionDifferentPrecoder; -extern const asn_INTEGER_specifics_t asn_SPC_NSSS_NumOccasionDifferentPrecoder_specs_1; -asn_struct_free_f NSSS_NumOccasionDifferentPrecoder_free; -asn_struct_print_f NSSS_NumOccasionDifferentPrecoder_print; -asn_constr_check_f NSSS_NumOccasionDifferentPrecoder_constraint; -ber_type_decoder_f NSSS_NumOccasionDifferentPrecoder_decode_ber; -der_type_encoder_f NSSS_NumOccasionDifferentPrecoder_encode_der; -xer_type_decoder_f NSSS_NumOccasionDifferentPrecoder_decode_xer; -xer_type_encoder_f NSSS_NumOccasionDifferentPrecoder_encode_xer; -per_type_decoder_f NSSS_NumOccasionDifferentPrecoder_decode_uper; -per_type_encoder_f NSSS_NumOccasionDifferentPrecoder_encode_uper; -per_type_decoder_f NSSS_NumOccasionDifferentPrecoder_decode_aper; -per_type_encoder_f NSSS_NumOccasionDifferentPrecoder_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _NSSS_NumOccasionDifferentPrecoder_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/NULL.c b/e2sim/previous/ASN1c/NULL.c deleted file mode 100644 index ca1a899..0000000 --- a/e2sim/previous/ASN1c/NULL.c +++ /dev/null @@ -1,317 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/*- - * Copyright (c) 2003, 2005 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include -#include /* Implemented in terms of BOOLEAN type */ - -/* - * NULL basic type description. - */ -static const ber_tlv_tag_t asn_DEF_NULL_tags[] = { - (ASN_TAG_CLASS_UNIVERSAL | (5 << 2)) -}; -asn_TYPE_operation_t asn_OP_NULL = { - BOOLEAN_free, - NULL_print, - NULL_compare, - BOOLEAN_decode_ber, /* Implemented in terms of BOOLEAN */ - NULL_encode_der, /* Special handling of DER encoding */ - NULL_decode_xer, - NULL_encode_xer, -#ifdef ASN_DISABLE_OER_SUPPORT - 0, - 0, -#else - NULL_decode_oer, - NULL_encode_oer, -#endif /* ASN_DISABLE_OER_SUPPORT */ -#ifdef ASN_DISABLE_PER_SUPPORT - 0, - 0, - 0, - 0, -#else - NULL_decode_uper, /* Unaligned PER decoder */ - NULL_encode_uper, /* Unaligned PER encoder */ - NULL_decode_aper, /* Aligned PER decoder */ - NULL_encode_aper, /* Aligned PER encoder */ -#endif /* ASN_DISABLE_PER_SUPPORT */ - NULL_random_fill, - 0 /* Use generic outmost tag fetcher */ -}; -asn_TYPE_descriptor_t asn_DEF_NULL = { - "NULL", - "NULL", - &asn_OP_NULL, - asn_DEF_NULL_tags, - sizeof(asn_DEF_NULL_tags) / sizeof(asn_DEF_NULL_tags[0]), - asn_DEF_NULL_tags, /* Same as above */ - sizeof(asn_DEF_NULL_tags) / sizeof(asn_DEF_NULL_tags[0]), - { 0, 0, asn_generic_no_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - -asn_enc_rval_t -NULL_encode_der(const asn_TYPE_descriptor_t *td, const void *ptr, int tag_mode, - ber_tlv_tag_t tag, asn_app_consume_bytes_f *cb, void *app_key) { - asn_enc_rval_t erval = {0,0,0}; - - erval.encoded = der_write_tags(td, 0, tag_mode, 0, tag, cb, app_key); - if(erval.encoded == -1) { - erval.failed_type = td; - erval.structure_ptr = ptr; - } - - ASN__ENCODED_OK(erval); -} - -asn_enc_rval_t -NULL_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, - enum xer_encoder_flags_e flags, asn_app_consume_bytes_f *cb, - void *app_key) { - asn_enc_rval_t er = {0,0,0}; - - (void)td; - (void)sptr; - (void)ilevel; - (void)flags; - (void)cb; - (void)app_key; - - /* XMLNullValue is empty */ - er.encoded = 0; - ASN__ENCODED_OK(er); -} - - -static enum xer_pbd_rval -NULL__xer_body_decode(const asn_TYPE_descriptor_t *td, void *sptr, - const void *chunk_buf, size_t chunk_size) { - (void)td; - (void)sptr; - (void)chunk_buf; /* Going to be empty according to the rules below. */ - - /* - * There must be no content in self-terminating tag. - */ - if(chunk_size) - return XPBD_BROKEN_ENCODING; - else - return XPBD_BODY_CONSUMED; -} - -asn_dec_rval_t -NULL_decode_xer(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **sptr, - const char *opt_mname, const void *buf_ptr, size_t size) { - return xer_decode_primitive(opt_codec_ctx, td, - sptr, sizeof(NULL_t), opt_mname, buf_ptr, size, - NULL__xer_body_decode); -} - -int -NULL_compare(const asn_TYPE_descriptor_t *td, const void *a, const void *b) { - (void)td; - (void)a; - (void)b; - return 0; -} - -int -NULL_print(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, - asn_app_consume_bytes_f *cb, void *app_key) { - (void)td; /* Unused argument */ - (void)ilevel; /* Unused argument */ - - if(sptr) { - return (cb("", 9, app_key) < 0) ? -1 : 0; - } else { - return (cb("", 8, app_key) < 0) ? -1 : 0; - } -} - -#ifndef ASN_DISABLE_OER_SUPPORT - -asn_dec_rval_t -NULL_decode_oer(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_oer_constraints_t *constraints, void **sptr, - const void *ptr, size_t size) { - asn_dec_rval_t rv = {RC_OK, 0}; - (void)opt_codec_ctx; - (void)td; - (void)constraints; - (void)ptr; - (void)size; - - if(!*sptr) { - *sptr = MALLOC(sizeof(NULL_t)); - if(*sptr) { - *(NULL_t *)*sptr = 0; - } else { - ASN__DECODE_FAILED; - } - } - - return rv; -} - -asn_enc_rval_t -NULL_encode_oer(const asn_TYPE_descriptor_t *td, - const asn_oer_constraints_t *constraints, const void *sptr, - asn_app_consume_bytes_f *cb, void *app_key) { - asn_enc_rval_t er = {0,0,0}; - - (void)td; - (void)sptr; - (void)constraints; - (void)cb; - (void)app_key; - - er.encoded = 0; /* Encoding in 0 bytes. */ - - ASN__ENCODED_OK(er); -} - -#endif /* ASN_DISABLE_OER_SUPPORT */ - -#ifndef ASN_DISABLE_PER_SUPPORT - -asn_dec_rval_t -NULL_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, - asn_per_data_t *pd) { - asn_dec_rval_t rv; - - (void)opt_codec_ctx; - (void)td; - (void)constraints; - (void)pd; - - if(!*sptr) { - *sptr = MALLOC(sizeof(NULL_t)); - if(*sptr) { - *(NULL_t *)*sptr = 0; - } else { - ASN__DECODE_FAILED; - } - } - - /* - * NULL type does not have content octets. - */ - - rv.code = RC_OK; - rv.consumed = 0; - return rv; -} - -asn_enc_rval_t -NULL_encode_uper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, const void *sptr, - asn_per_outp_t *po) { - asn_enc_rval_t er = {0,0,0}; - - (void)td; - (void)constraints; - (void)sptr; - (void)po; - - er.encoded = 0; - ASN__ENCODED_OK(er); -} - -asn_dec_rval_t -NULL_decode_aper(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, asn_per_data_t *pd) { - asn_dec_rval_t rv = {RC_OK, 0}; - - (void)opt_codec_ctx; - (void)td; - (void)constraints; - (void)pd; - - if(!*sptr) { - *sptr = MALLOC(sizeof(NULL_t)); - if(*sptr) { - *(NULL_t *)*sptr = 0; - } else { - ASN__DECODE_FAILED; - } - } - - /* - * NULL type does not have content octets. - */ - - rv.code = RC_OK; - rv.consumed = 0; - return rv; -} - - -asn_enc_rval_t -NULL_encode_aper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_per_outp_t *po) { - asn_enc_rval_t er = {0,0,0}; - - (void)td; - (void)constraints; - (void)sptr; - (void)po; - - er.encoded = 0; - ASN__ENCODED_OK(er); -} - -#endif /* ASN_DISABLE_PER_SUPPORT */ - -asn_random_fill_result_t -NULL_random_fill(const asn_TYPE_descriptor_t *td, void **sptr, - const asn_encoding_constraints_t *constr, - size_t max_length) { - asn_random_fill_result_t result_ok = {ARFILL_OK, 1}; - asn_random_fill_result_t result_failed = {ARFILL_FAILED, 0}; - asn_random_fill_result_t result_skipped = {ARFILL_SKIPPED, 0}; - NULL_t *st = *sptr; - - (void)td; - (void)constr; - - if(max_length == 0) return result_skipped; - - if(st == NULL) { - st = (NULL_t *)(*sptr = CALLOC(1, sizeof(*st))); - if(st == NULL) { - return result_failed; - } - } - - return result_ok; -} - diff --git a/e2sim/previous/ASN1c/NULL.h b/e2sim/previous/ASN1c/NULL.h deleted file mode 100644 index d26a3ee..0000000 --- a/e2sim/previous/ASN1c/NULL.h +++ /dev/null @@ -1,63 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/*- - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef ASN_TYPE_NULL_H -#define ASN_TYPE_NULL_H - -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * The value of the NULL type is meaningless: see BOOLEAN if you want to - * carry true/false semantics. - */ -typedef int NULL_t; - -extern asn_TYPE_descriptor_t asn_DEF_NULL; -extern asn_TYPE_operation_t asn_OP_NULL; - -asn_struct_print_f NULL_print; -asn_struct_compare_f NULL_compare; -der_type_encoder_f NULL_encode_der; -xer_type_decoder_f NULL_decode_xer; -xer_type_encoder_f NULL_encode_xer; -oer_type_decoder_f NULL_decode_oer; -oer_type_encoder_f NULL_encode_oer; -per_type_decoder_f NULL_decode_uper; -per_type_encoder_f NULL_encode_uper; -per_type_decoder_f NULL_decode_aper; -per_type_encoder_f NULL_encode_aper; -asn_random_fill_f NULL_random_fill; - -#define NULL_free BOOLEAN_free -#define NULL_decode_ber BOOLEAN_decode_ber -#define NULL_constraint asn_generic_no_constraint - -#ifdef __cplusplus -} -#endif - -#endif /* NULL_H */ diff --git a/e2sim/previous/ASN1c/NativeEnumerated.c b/e2sim/previous/ASN1c/NativeEnumerated.c deleted file mode 100644 index 16ffd68..0000000 --- a/e2sim/previous/ASN1c/NativeEnumerated.c +++ /dev/null @@ -1,385 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/*- - * Copyright (c) 2004, 2007 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -/* - * Read the NativeInteger.h for the explanation wrt. differences between - * INTEGER and NativeInteger. - * Basically, both are decoders and encoders of ASN.1 INTEGER type, but this - * implementation deals with the standard (machine-specific) representation - * of them instead of using the platform-independent buffer. - */ -#include -#include - -/* - * NativeEnumerated basic type description. - */ -static const ber_tlv_tag_t asn_DEF_NativeEnumerated_tags[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_operation_t asn_OP_NativeEnumerated = { - NativeInteger_free, - NativeInteger_print, - NativeInteger_compare, - NativeInteger_decode_ber, - NativeInteger_encode_der, - NativeInteger_decode_xer, - NativeEnumerated_encode_xer, -#ifdef ASN_DISABLE_OER_SUPPORT - 0, - 0, -#else - NativeEnumerated_decode_oer, - NativeEnumerated_encode_oer, -#endif /* ASN_DISABLE_OER_SUPPORT */ -#ifdef ASN_DISABLE_PER_SUPPORT - 0, - 0, - 0, - 0, -#else - NativeEnumerated_decode_uper, - NativeEnumerated_encode_uper, - NativeEnumerated_decode_aper, - NativeEnumerated_encode_aper, -#endif /* ASN_DISABLE_PER_SUPPORT */ - NativeEnumerated_random_fill, - 0 /* Use generic outmost tag fetcher */ -}; -asn_TYPE_descriptor_t asn_DEF_NativeEnumerated = { - "ENUMERATED", /* The ASN.1 type is still ENUMERATED */ - "ENUMERATED", - &asn_OP_NativeEnumerated, - asn_DEF_NativeEnumerated_tags, - sizeof(asn_DEF_NativeEnumerated_tags) / sizeof(asn_DEF_NativeEnumerated_tags[0]), - asn_DEF_NativeEnumerated_tags, /* Same as above */ - sizeof(asn_DEF_NativeEnumerated_tags) / sizeof(asn_DEF_NativeEnumerated_tags[0]), - { 0, 0, asn_generic_no_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - -asn_enc_rval_t -NativeEnumerated_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, - int ilevel, enum xer_encoder_flags_e flags, - asn_app_consume_bytes_f *cb, void *app_key) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - asn_enc_rval_t er = {0,0,0}; - const long *native = (const long *)sptr; - const asn_INTEGER_enum_map_t *el; - - (void)ilevel; - (void)flags; - - if(!native) ASN__ENCODE_FAILED; - - el = INTEGER_map_value2enum(specs, *native); - if(el) { - er.encoded = - asn__format_to_callback(cb, app_key, "<%s/>", el->enum_name); - if(er.encoded < 0) ASN__ENCODE_FAILED; - ASN__ENCODED_OK(er); - } else { - ASN_DEBUG( - "ASN.1 forbids dealing with " - "unknown value of ENUMERATED type"); - ASN__ENCODE_FAILED; - } -} - -asn_dec_rval_t -NativeEnumerated_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - void **sptr, asn_per_data_t *pd) { - const asn_INTEGER_specifics_t *specs = td->specifics; - asn_dec_rval_t rval = { RC_OK, 0 }; - long *native = (long *)*sptr; - const asn_per_constraint_t *ct = NULL; // BMC - long value; - - (void)opt_codec_ctx; - - if(constraints) ct = &constraints->value; - else if(td->encoding_constraints.per_constraints) - ct = &td->encoding_constraints.per_constraints->value; - else ASN__DECODE_FAILED; /* Mandatory! */ - if(!specs) ASN__DECODE_FAILED; - - if(!native) { - native = (long *)(*sptr = CALLOC(1, sizeof(*native))); - if(!native) ASN__DECODE_FAILED; - } - - ASN_DEBUG("Decoding %s as NativeEnumerated", td->name); - - if(ct && ct->flags & APC_EXTENSIBLE) { // BMC - int inext = per_get_few_bits(pd, 1); - if(inext < 0) ASN__DECODE_STARVED; - if(inext) ct = 0; - } - - if(ct && ct->range_bits >= 0) { - value = per_get_few_bits(pd, ct->range_bits); - if(value < 0) ASN__DECODE_STARVED; - if(value >= (specs->extension - ? specs->extension - 1 : specs->map_count)) - ASN__DECODE_FAILED; - } else { - if(!specs->extension) - ASN__DECODE_FAILED; - /* - * X.691, #10.6: normally small non-negative whole number; - */ - value = uper_get_nsnnwn(pd); - if(value < 0) ASN__DECODE_STARVED; - value += specs->extension - 1; - if(value >= specs->map_count) - ASN__DECODE_FAILED; - } - - *native = specs->value2enum[value].nat_value; - ASN_DEBUG("Decoded %s = %ld", td->name, *native); - - return rval; -} - -static int -NativeEnumerated__compar_value2enum(const void *ap, const void *bp) { - const asn_INTEGER_enum_map_t *a = ap; - const asn_INTEGER_enum_map_t *b = bp; - if(a->nat_value == b->nat_value) - return 0; - if(a->nat_value < b->nat_value) - return -1; - return 1; -} - -asn_enc_rval_t -NativeEnumerated_encode_uper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_per_outp_t *po) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - asn_enc_rval_t er = {0,0,0}; - long native, value; - const asn_per_constraint_t *ct = NULL; // BMC - int inext = 0; - asn_INTEGER_enum_map_t key; - const asn_INTEGER_enum_map_t *kf; - - if(!sptr) ASN__ENCODE_FAILED; - if(!specs) ASN__ENCODE_FAILED; - - if(constraints) ct = &constraints->value; - else if(td->encoding_constraints.per_constraints) - ct = &td->encoding_constraints.per_constraints->value; - else ASN__ENCODE_FAILED; /* Mandatory! */ - - ASN_DEBUG("Encoding %s as NativeEnumerated", td->name); - - er.encoded = 0; - - native = *(const long *)sptr; - - key.nat_value = native; - kf = bsearch(&key, specs->value2enum, specs->map_count, - sizeof(key), NativeEnumerated__compar_value2enum); - if(!kf) { - ASN_DEBUG("No element corresponds to %ld", native); - ASN__ENCODE_FAILED; - } - value = kf - specs->value2enum; - - if(ct && ct->range_bits >= 0) { // BMC - int cmpWith = specs->extension - ? specs->extension - 1 : specs->map_count; - if(value >= cmpWith) - inext = 1; - } - if(ct && ct->flags & APC_EXTENSIBLE) { // BMC - if(per_put_few_bits(po, inext, 1)) - ASN__ENCODE_FAILED; - if(inext) ct = 0; - } else if(inext) { - ASN__ENCODE_FAILED; - } - - if(ct && ct->range_bits >= 0) { - if(per_put_few_bits(po, value, ct->range_bits)) - ASN__ENCODE_FAILED; - ASN__ENCODED_OK(er); - } - - if(!specs->extension) - ASN__ENCODE_FAILED; - - /* - * X.691, #10.6: normally small non-negative whole number; - */ - ASN_DEBUG("value = %ld, ext = %d, inext = %d, res = %ld", - value, specs->extension, inext, - value - (inext ? (specs->extension - 1) : 0)); - if(uper_put_nsnnwn(po, value - (inext ? (specs->extension - 1) : 0))) - ASN__ENCODE_FAILED; - - ASN__ENCODED_OK(er); -} - -asn_dec_rval_t -NativeEnumerated_decode_aper(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - void **sptr, asn_per_data_t *pd) { - const asn_INTEGER_specifics_t *specs = (const asn_INTEGER_specifics_t *)td->specifics; - asn_dec_rval_t rval = { RC_OK, 0 }; - long *native = (long *)*sptr; - const asn_per_constraint_t *ct = NULL; // BMC - long value; - - (void)opt_codec_ctx; - - if(constraints) ct = &constraints->value; - else if(td->encoding_constraints.per_constraints) - ct = &td->encoding_constraints.per_constraints->value; - else ASN__DECODE_FAILED; /* Mandatory! */ - if(!specs) ASN__DECODE_FAILED; - - if(!native) { - native = (long *)(*sptr = CALLOC(1, sizeof(*native))); - if(!native) ASN__DECODE_FAILED; - } - - ASN_DEBUG("Decoding %s as NativeEnumerated", td->name); - - if(ct && ct->flags & APC_EXTENSIBLE) { // BMC - int inext = per_get_few_bits(pd, 1); - if(inext < 0) ASN__DECODE_STARVED; - if(inext) ct = 0; - } - - /* Deal with APER padding */ - if(ct && ct->upper_bound >= 255) { - int padding = 0; - padding = (8 - (pd->moved % 8)) % 8; - ASN_DEBUG("For NativeEnumerated %s,offset= %lu Padding bits = %d", td->name, pd->moved, padding); - ASN_DEBUG("For NativeEnumerated %s, upper bound = %lu", td->name, ct->upper_bound); - if(padding > 0) - per_get_few_bits(pd, padding); - } - - if(ct && ct->range_bits >= 0) { - value = per_get_few_bits(pd, ct->range_bits); - if(value < 0) ASN__DECODE_STARVED; - if(value >= (specs->extension - ? specs->extension - 1 : specs->map_count)) - ASN__DECODE_FAILED; - } else { - if(!specs->extension) - ASN__DECODE_FAILED; - /* - * X.691, #10.6: normally small non-negative whole number; - */ - value = uper_get_nsnnwn(pd); - if(value < 0) ASN__DECODE_STARVED; - value += specs->extension - 1; - if(value >= specs->map_count) - ASN__DECODE_FAILED; - } - - *native = specs->value2enum[value].nat_value; - ASN_DEBUG("Decoded %s = %ld", td->name, *native); - - return rval; -} - -asn_enc_rval_t -NativeEnumerated_encode_aper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_per_outp_t *po) { - const asn_INTEGER_specifics_t *specs = (const asn_INTEGER_specifics_t *)td->specifics; - asn_enc_rval_t er = {0,0,0}; - long native, value; - const asn_per_constraint_t *ct = NULL; // BMC - int inext = 0; - asn_INTEGER_enum_map_t key; - asn_INTEGER_enum_map_t *kf; - - if(!sptr) ASN__ENCODE_FAILED; - if(!specs) ASN__ENCODE_FAILED; - - if(constraints) ct = &constraints->value; - else if(td->encoding_constraints.per_constraints) - ct = &td->encoding_constraints.per_constraints->value; - else ASN__ENCODE_FAILED; /* Mandatory! */ - - ASN_DEBUG("Encoding %s as NativeEnumerated", td->name); - - er.encoded = 0; - - native = *(const long *)sptr; - if(native < 0) ASN__ENCODE_FAILED; - - key.nat_value = native; - kf = bsearch(&key, specs->value2enum, specs->map_count, - sizeof(key), NativeEnumerated__compar_value2enum); - if(!kf) { - ASN_DEBUG("No element corresponds to %ld", native); - ASN__ENCODE_FAILED; - } - value = kf - specs->value2enum; - - if(ct && ct->range_bits >= 0) { // BMC - int cmpWith = specs->extension - ? specs->extension - 1 : specs->map_count; - if(value >= cmpWith) - inext = 1; - } - if(ct && ct->flags & APC_EXTENSIBLE) { // BMC - if(per_put_few_bits(po, inext, 1)) - ASN__ENCODE_FAILED; - if(inext) ct = 0; - } else if(inext) { - ASN__ENCODE_FAILED; - } - - if(ct && ct->range_bits >= 0) { - if(per_put_few_bits(po, value, ct->range_bits)) - ASN__ENCODE_FAILED; - ASN__ENCODED_OK(er); - } - - if(!specs->extension) - ASN__ENCODE_FAILED; - - /* - * X.691, #10.6: normally small non-negative whole number; - */ - ASN_DEBUG("value = %ld, ext = %d, inext = %d, res = %ld", - value, specs->extension, inext, - value - (inext ? (specs->extension - 1) : 0)); - if(uper_put_nsnnwn(po, value - (inext ? (specs->extension - 1) : 0))) - ASN__ENCODE_FAILED; - - ASN__ENCODED_OK(er); -} diff --git a/e2sim/previous/ASN1c/NativeEnumerated.h b/e2sim/previous/ASN1c/NativeEnumerated.h deleted file mode 100644 index 39ca81f..0000000 --- a/e2sim/previous/ASN1c/NativeEnumerated.h +++ /dev/null @@ -1,63 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -/* - * This type differs from the standard ENUMERATED in that it is modelled using - * the fixed machine type (long, int, short), so it can hold only values of - * limited length. There is no type (i.e., NativeEnumerated_t, any integer type - * will do). - * This type may be used when integer range is limited by subtype constraints. - */ -#ifndef _NativeEnumerated_H_ -#define _NativeEnumerated_H_ - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -extern asn_TYPE_descriptor_t asn_DEF_NativeEnumerated; -extern asn_TYPE_operation_t asn_OP_NativeEnumerated; - -xer_type_encoder_f NativeEnumerated_encode_xer; -oer_type_decoder_f NativeEnumerated_decode_oer; -oer_type_encoder_f NativeEnumerated_encode_oer; -per_type_decoder_f NativeEnumerated_decode_uper; -per_type_encoder_f NativeEnumerated_encode_uper; -per_type_decoder_f NativeEnumerated_decode_aper; -per_type_encoder_f NativeEnumerated_encode_aper; - -#define NativeEnumerated_free NativeInteger_free -#define NativeEnumerated_print NativeInteger_print -#define NativeEnumerated_compare NativeInteger_compare -#define NativeEnumerated_random_fill NativeInteger_random_fill -#define NativeEnumerated_constraint asn_generic_no_constraint -#define NativeEnumerated_decode_ber NativeInteger_decode_ber -#define NativeEnumerated_encode_der NativeInteger_encode_der -#define NativeEnumerated_decode_xer NativeInteger_decode_xer - -#ifdef __cplusplus -} -#endif - -#endif /* _NativeEnumerated_H_ */ diff --git a/e2sim/previous/ASN1c/NativeInteger.c b/e2sim/previous/ASN1c/NativeInteger.c deleted file mode 100644 index 17ca0a3..0000000 --- a/e2sim/previous/ASN1c/NativeInteger.c +++ /dev/null @@ -1,568 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/*- - * Copyright (c) 2004, 2005, 2006 Lev Walkin . - * All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -/* - * Read the NativeInteger.h for the explanation wrt. differences between - * INTEGER and NativeInteger. - * Basically, both are decoders and encoders of ASN.1 INTEGER type, but this - * implementation deals with the standard (machine-specific) representation - * of them instead of using the platform-independent buffer. - */ -#include -#include - -/* - * NativeInteger basic type description. - */ -static const ber_tlv_tag_t asn_DEF_NativeInteger_tags[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_operation_t asn_OP_NativeInteger = { - NativeInteger_free, - NativeInteger_print, - NativeInteger_compare, - NativeInteger_decode_ber, - NativeInteger_encode_der, - NativeInteger_decode_xer, - NativeInteger_encode_xer, -#ifdef ASN_DISABLE_OER_SUPPORT - 0, - 0, -#else - NativeInteger_decode_oer, /* OER decoder */ - NativeInteger_encode_oer, /* Canonical OER encoder */ -#endif /* ASN_DISABLE_OER_SUPPORT */ -#ifdef ASN_DISABLE_PER_SUPPORT - 0, - 0, - 0, - 0, -#else - NativeInteger_decode_uper, /* Unaligned PER decoder */ - NativeInteger_encode_uper, /* Unaligned PER encoder */ - NativeInteger_decode_aper, /* Aligned PER decoder */ - NativeInteger_encode_aper, /* Aligned PER encoder */ -#endif /* ASN_DISABLE_PER_SUPPORT */ - NativeInteger_random_fill, - 0 /* Use generic outmost tag fetcher */ -}; -asn_TYPE_descriptor_t asn_DEF_NativeInteger = { - "INTEGER", /* The ASN.1 type is still INTEGER */ - "INTEGER", - &asn_OP_NativeInteger, - asn_DEF_NativeInteger_tags, - sizeof(asn_DEF_NativeInteger_tags) / sizeof(asn_DEF_NativeInteger_tags[0]), - asn_DEF_NativeInteger_tags, /* Same as above */ - sizeof(asn_DEF_NativeInteger_tags) / sizeof(asn_DEF_NativeInteger_tags[0]), - { 0, 0, asn_generic_no_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - -/* - * Decode INTEGER type. - */ -asn_dec_rval_t -NativeInteger_decode_ber(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **nint_ptr, - const void *buf_ptr, size_t size, int tag_mode) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - long *native = (long *)*nint_ptr; - asn_dec_rval_t rval; - ber_tlv_len_t length; - - /* - * If the structure is not there, allocate it. - */ - if(native == NULL) { - native = (long *)(*nint_ptr = CALLOC(1, sizeof(*native))); - if(native == NULL) { - rval.code = RC_FAIL; - rval.consumed = 0; - return rval; - } - } - - ASN_DEBUG("Decoding %s as INTEGER (tm=%d)", - td->name, tag_mode); - - /* - * Check tags. - */ - rval = ber_check_tags(opt_codec_ctx, td, 0, buf_ptr, size, - tag_mode, 0, &length, 0); - if(rval.code != RC_OK) - return rval; - - ASN_DEBUG("%s length is %d bytes", td->name, (int)length); - - /* - * Make sure we have this length. - */ - buf_ptr = ((const char *)buf_ptr) + rval.consumed; - size -= rval.consumed; - if(length > (ber_tlv_len_t)size) { - rval.code = RC_WMORE; - rval.consumed = 0; - return rval; - } - - /* - * ASN.1 encoded INTEGER: buf_ptr, length - * Fill the native, at the same time checking for overflow. - * If overflow occured, return with RC_FAIL. - */ - { - INTEGER_t tmp; - union { - const void *constbuf; - void *nonconstbuf; - } unconst_buf; - long l; - - unconst_buf.constbuf = buf_ptr; - tmp.buf = (uint8_t *)unconst_buf.nonconstbuf; - tmp.size = length; - - if((specs&&specs->field_unsigned) - ? asn_INTEGER2ulong(&tmp, (unsigned long *)&l) /* sic */ - : asn_INTEGER2long(&tmp, &l)) { - rval.code = RC_FAIL; - rval.consumed = 0; - return rval; - } - - *native = l; - } - - rval.code = RC_OK; - rval.consumed += length; - - ASN_DEBUG("Took %ld/%ld bytes to encode %s (%ld)", - (long)rval.consumed, (long)length, td->name, (long)*native); - - return rval; -} - -/* - * Encode the NativeInteger using the standard INTEGER type DER encoder. - */ -asn_enc_rval_t -NativeInteger_encode_der(const asn_TYPE_descriptor_t *sd, const void *ptr, - int tag_mode, ber_tlv_tag_t tag, - asn_app_consume_bytes_f *cb, void *app_key) { - unsigned long native = *(const unsigned long *)ptr; /* Disable sign ext. */ - asn_enc_rval_t erval = {0,0,0}; - INTEGER_t tmp; - -#ifdef WORDS_BIGENDIAN /* Opportunistic optimization */ - - tmp.buf = (uint8_t *)&native; - tmp.size = sizeof(native); - -#else /* Works even if WORDS_BIGENDIAN is not set where should've been */ - uint8_t buf[sizeof(native)]; - uint8_t *p; - - /* Prepare a fake INTEGER */ - for(p = buf + sizeof(buf) - 1; p >= buf; p--, native >>= 8) - *p = (uint8_t)native; - - tmp.buf = buf; - tmp.size = sizeof(buf); -#endif /* WORDS_BIGENDIAN */ - - /* Encode fake INTEGER */ - erval = INTEGER_encode_der(sd, &tmp, tag_mode, tag, cb, app_key); - if(erval.structure_ptr == &tmp) { - erval.structure_ptr = ptr; - } - return erval; -} - -/* - * Decode the chunk of XML text encoding INTEGER. - */ -asn_dec_rval_t -NativeInteger_decode_xer(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **sptr, - const char *opt_mname, const void *buf_ptr, - size_t size) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - asn_dec_rval_t rval; - INTEGER_t st; - void *st_ptr = (void *)&st; - long *native = (long *)*sptr; - - if(!native) { - native = (long *)(*sptr = CALLOC(1, sizeof(*native))); - if(!native) ASN__DECODE_FAILED; - } - - memset(&st, 0, sizeof(st)); - rval = INTEGER_decode_xer(opt_codec_ctx, td, &st_ptr, - opt_mname, buf_ptr, size); - if(rval.code == RC_OK) { - long l; - if((specs&&specs->field_unsigned) - ? asn_INTEGER2ulong(&st, (unsigned long *)&l) /* sic */ - : asn_INTEGER2long(&st, &l)) { - rval.code = RC_FAIL; - rval.consumed = 0; - } else { - *native = l; - } - } else { - /* - * Cannot restart from the middle; - * there is no place to save state in the native type. - * Request a continuation from the very beginning. - */ - rval.consumed = 0; - } - ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_INTEGER, &st); - return rval; -} - - -asn_enc_rval_t -NativeInteger_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, - int ilevel, enum xer_encoder_flags_e flags, - asn_app_consume_bytes_f *cb, void *app_key) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - char scratch[32]; /* Enough for 64-bit int */ - asn_enc_rval_t er = {0,0,0}; - const long *native = (const long *)sptr; - - (void)ilevel; - (void)flags; - - if(!native) ASN__ENCODE_FAILED; - - er.encoded = snprintf(scratch, sizeof(scratch), - (specs && specs->field_unsigned) - ? "%lu" : "%ld", *native); - if(er.encoded <= 0 || (size_t)er.encoded >= sizeof(scratch) - || cb(scratch, er.encoded, app_key) < 0) - ASN__ENCODE_FAILED; - - ASN__ENCODED_OK(er); -} - -#ifndef ASN_DISABLE_PER_SUPPORT - -asn_dec_rval_t -NativeInteger_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, - asn_per_data_t *pd) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - asn_dec_rval_t rval; - long *native = (long *)*sptr; - INTEGER_t tmpint; - void *tmpintptr = &tmpint; - - (void)opt_codec_ctx; - ASN_DEBUG("Decoding NativeInteger %s (UPER)", td->name); - - if(!native) { - native = (long *)(*sptr = CALLOC(1, sizeof(*native))); - if(!native) ASN__DECODE_FAILED; - } - - memset(&tmpint, 0, sizeof tmpint); - rval = INTEGER_decode_uper(opt_codec_ctx, td, constraints, - &tmpintptr, pd); - if(rval.code == RC_OK) { - if((specs&&specs->field_unsigned) - ? asn_INTEGER2ulong(&tmpint, (unsigned long *)native) - : asn_INTEGER2long(&tmpint, native)) - rval.code = RC_FAIL; - else - ASN_DEBUG("NativeInteger %s got value %ld", - td->name, *native); - } - ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_INTEGER, &tmpint); - - return rval; -} - -asn_enc_rval_t -NativeInteger_encode_uper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_per_outp_t *po) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - asn_enc_rval_t er = {0,0,0}; - long native; - INTEGER_t tmpint; - - if(!sptr) ASN__ENCODE_FAILED; - - native = *(const long *)sptr; - - ASN_DEBUG("Encoding NativeInteger %s %ld (UPER)", td->name, native); - - memset(&tmpint, 0, sizeof(tmpint)); - if((specs&&specs->field_unsigned) - ? asn_ulong2INTEGER(&tmpint, native) - : asn_long2INTEGER(&tmpint, native)) - ASN__ENCODE_FAILED; - er = INTEGER_encode_uper(td, constraints, &tmpint, po); - ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_INTEGER, &tmpint); - return er; -} - -asn_dec_rval_t -NativeInteger_decode_aper(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, asn_per_data_t *pd) { - - const asn_INTEGER_specifics_t *specs = (const asn_INTEGER_specifics_t *)td->specifics; - asn_dec_rval_t rval; - long *native = (long *)*sptr; - INTEGER_t tmpint; - void *tmpintptr = &tmpint; - - (void)opt_codec_ctx; - ASN_DEBUG("Decoding NativeInteger %s (APER)", td->name); - - if(!native) { - native = (long *)(*sptr = CALLOC(1, sizeof(*native))); - if(!native) ASN__DECODE_FAILED; - } - - memset(&tmpint, 0, sizeof tmpint); - rval = INTEGER_decode_aper(opt_codec_ctx, td, constraints, - &tmpintptr, pd); - if(rval.code == RC_OK) { - if((specs&&specs->field_unsigned) - ? asn_INTEGER2ulong(&tmpint, (unsigned long *)native) - : asn_INTEGER2long(&tmpint, native)) - rval.code = RC_FAIL; - else - ASN_DEBUG("NativeInteger %s got value %ld", - td->name, *native); - } - ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_INTEGER, &tmpint); - - return rval; -} - -asn_enc_rval_t -NativeInteger_encode_aper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_per_outp_t *po) { - - const asn_INTEGER_specifics_t *specs = (const asn_INTEGER_specifics_t *)td->specifics; - asn_enc_rval_t er = {0,0,0}; - long native; - INTEGER_t tmpint; - - if(!sptr) ASN__ENCODE_FAILED; - - native = *(const long *)sptr; - - ASN_DEBUG("Encoding NativeInteger %s %ld (APER)", td->name, native); - - memset(&tmpint, 0, sizeof(tmpint)); - if((specs&&specs->field_unsigned) - ? asn_ulong2INTEGER(&tmpint, (unsigned long)native) - : asn_long2INTEGER(&tmpint, native)) - ASN__ENCODE_FAILED; - er = INTEGER_encode_aper(td, constraints, &tmpint, po); - ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_INTEGER, &tmpint); - return er; -} - -#endif /* ASN_DISABLE_PER_SUPPORT */ - -/* - * INTEGER specific human-readable output. - */ -int -NativeInteger_print(const asn_TYPE_descriptor_t *td, const void *sptr, - int ilevel, asn_app_consume_bytes_f *cb, void *app_key) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - const long *native = (const long *)sptr; - char scratch[32]; /* Enough for 64-bit int */ - int ret; - - (void)td; /* Unused argument */ - (void)ilevel; /* Unused argument */ - - if(native) { - long value = *native; - ret = snprintf(scratch, sizeof(scratch), - (specs && specs->field_unsigned) ? "%lu" : "%ld", value); - assert(ret > 0 && (size_t)ret < sizeof(scratch)); - if(cb(scratch, ret, app_key) < 0) return -1; - if(specs && (value >= 0 || !specs->field_unsigned)) { - const asn_INTEGER_enum_map_t *el = - INTEGER_map_value2enum(specs, value); - if(el) { - if(cb(" (", 2, app_key) < 0) return -1; - if(cb(el->enum_name, el->enum_len, app_key) < 0) return -1; - if(cb(")", 1, app_key) < 0) return -1; - } - } - return 0; - } else { - return (cb("", 8, app_key) < 0) ? -1 : 0; - } -} - -void -NativeInteger_free(const asn_TYPE_descriptor_t *td, void *ptr, - enum asn_struct_free_method method) { - if(!td || !ptr) - return; - - ASN_DEBUG("Freeing %s as INTEGER (%d, %p, Native)", - td->name, method, ptr); - - switch(method) { - case ASFM_FREE_EVERYTHING: - FREEMEM(ptr); - break; - case ASFM_FREE_UNDERLYING: - break; - case ASFM_FREE_UNDERLYING_AND_RESET: - memset(ptr, 0, sizeof(long)); - break; - } -} - -int -NativeInteger_compare(const asn_TYPE_descriptor_t *td, const void *aptr, const void *bptr) { - (void)td; - - if(aptr && bptr) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - if(specs && specs->field_unsigned) { - const unsigned long *a = aptr; - const unsigned long *b = bptr; - if(*a < *b) { - return -1; - } else if(*a > *b) { - return 1; - } else { - return 0; - } - } else { - const long *a = aptr; - const long *b = bptr; - if(*a < *b) { - return -1; - } else if(*a > *b) { - return 1; - } else { - return 0; - } - } - } else if(!aptr) { - return -1; - } else { - return 1; - } -} - -asn_random_fill_result_t -NativeInteger_random_fill(const asn_TYPE_descriptor_t *td, void **sptr, - const asn_encoding_constraints_t *constraints, - size_t max_length) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - asn_random_fill_result_t result_ok = {ARFILL_OK, 1}; - asn_random_fill_result_t result_failed = {ARFILL_FAILED, 0}; - asn_random_fill_result_t result_skipped = {ARFILL_SKIPPED, 0}; - long *st = *sptr; - const asn_INTEGER_enum_map_t *emap; - size_t emap_len; - intmax_t value; - int find_inside_map; - - if(max_length == 0) return result_skipped; - - if(st == NULL) { - st = (long *)CALLOC(1, sizeof(*st)); - if(st == NULL) { - return result_failed; - } - } - - if(specs) { - emap = specs->value2enum; - emap_len = specs->map_count; - if(specs->strict_enumeration) { - find_inside_map = emap_len > 0; - } else { - find_inside_map = emap_len ? asn_random_between(0, 1) : 0; - } - } else { - emap = 0; - emap_len = 0; - find_inside_map = 0; - } - - if(find_inside_map) { - assert(emap_len > 0); - value = emap[asn_random_between(0, emap_len - 1)].nat_value; - } else { - const asn_per_constraints_t *ct; - - static const long variants[] = { - -65536, -65535, -65534, -32769, -32768, -32767, -16385, -16384, - -16383, -257, -256, -255, -254, -129, -128, -127, - -126, -1, 0, 1, 126, 127, 128, 129, - 254, 255, 256, 257, 16383, 16384, 16385, 32767, - 32768, 32769, 65534, 65535, 65536, 65537}; - if(specs && specs->field_unsigned) { - assert(variants[18] == 0); - value = variants[asn_random_between( - 18, sizeof(variants) / sizeof(variants[0]) - 1)]; - } else { - value = variants[asn_random_between( - 0, sizeof(variants) / sizeof(variants[0]) - 1)]; - } - - if(!constraints) constraints = &td->encoding_constraints; - ct = constraints ? constraints->per_constraints : 0; - if(ct && (ct->value.flags & APC_CONSTRAINED)) { - if(value < ct->value.lower_bound || value > ct->value.upper_bound) { - value = asn_random_between(ct->value.lower_bound, - ct->value.upper_bound); - } - } - } - - *sptr = st; - *st = value; - return result_ok; -} diff --git a/e2sim/previous/ASN1c/NativeInteger.h b/e2sim/previous/ASN1c/NativeInteger.h deleted file mode 100644 index 8666f33..0000000 --- a/e2sim/previous/ASN1c/NativeInteger.h +++ /dev/null @@ -1,64 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/*- - * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -/* - * This type differs from the standard INTEGER in that it is modelled using - * the fixed machine type (long, int, short), so it can hold only values of - * limited length. There is no type (i.e., NativeInteger_t, any integer type - * will do). - * This type may be used when integer range is limited by subtype constraints. - */ -#ifndef _NativeInteger_H_ -#define _NativeInteger_H_ - -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -extern asn_TYPE_descriptor_t asn_DEF_NativeInteger; -extern asn_TYPE_operation_t asn_OP_NativeInteger; - -asn_struct_free_f NativeInteger_free; -asn_struct_print_f NativeInteger_print; -asn_struct_compare_f NativeInteger_compare; -ber_type_decoder_f NativeInteger_decode_ber; -der_type_encoder_f NativeInteger_encode_der; -xer_type_decoder_f NativeInteger_decode_xer; -xer_type_encoder_f NativeInteger_encode_xer; -oer_type_decoder_f NativeInteger_decode_oer; -oer_type_encoder_f NativeInteger_encode_oer; -per_type_decoder_f NativeInteger_decode_uper; -per_type_encoder_f NativeInteger_encode_uper; -per_type_decoder_f NativeInteger_decode_aper; -per_type_encoder_f NativeInteger_encode_aper; -asn_random_fill_f NativeInteger_random_fill; - -#define NativeInteger_constraint asn_generic_no_constraint - -#ifdef __cplusplus -} -#endif - -#endif /* _NativeInteger_H_ */ diff --git a/e2sim/previous/ASN1c/Neighbour-Information.c b/e2sim/previous/ASN1c/Neighbour-Information.c deleted file mode 100644 index 7aee8d0..0000000 --- a/e2sim/previous/ASN1c/Neighbour-Information.c +++ /dev/null @@ -1,142 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "Neighbour-Information.h" - -#include "ProtocolExtensionContainer.h" -asn_per_constraints_t asn_PER_type_Neighbour_Information_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 10, 10, 0, 512 } /* (SIZE(0..512)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_Member_2[] = { - { ATF_NOFLAGS, 0, offsetof(struct Neighbour_Information__Member, eCGI), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ECGI, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "eCGI" - }, - { ATF_NOFLAGS, 0, offsetof(struct Neighbour_Information__Member, pCI), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_PCI, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "pCI" - }, - { ATF_NOFLAGS, 0, offsetof(struct Neighbour_Information__Member, eARFCN), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_EARFCN, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "eARFCN" - }, - { ATF_POINTER, 1, offsetof(struct Neighbour_Information__Member, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P172, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_Member_oms_2[] = { 3 }; -static const ber_tlv_tag_t asn_DEF_Member_tags_2[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_Member_tag2el_2[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* eCGI */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* pCI */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* eARFCN */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_Member_specs_2 = { - sizeof(struct Neighbour_Information__Member), - offsetof(struct Neighbour_Information__Member, _asn_ctx), - asn_MAP_Member_tag2el_2, - 4, /* Count of tags in the map */ - asn_MAP_Member_oms_2, /* Optional members */ - 1, 0, /* Root/Additions */ - 4, /* First extension addition */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_Member_2 = { - "SEQUENCE", - "SEQUENCE", - &asn_OP_SEQUENCE, - asn_DEF_Member_tags_2, - sizeof(asn_DEF_Member_tags_2) - /sizeof(asn_DEF_Member_tags_2[0]), /* 1 */ - asn_DEF_Member_tags_2, /* Same as above */ - sizeof(asn_DEF_Member_tags_2) - /sizeof(asn_DEF_Member_tags_2[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_Member_2, - 4, /* Elements count */ - &asn_SPC_Member_specs_2 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_Neighbour_Information_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_Member_2, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_Neighbour_Information_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_Neighbour_Information_specs_1 = { - sizeof(struct Neighbour_Information), - offsetof(struct Neighbour_Information, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_Neighbour_Information = { - "Neighbour-Information", - "Neighbour-Information", - &asn_OP_SEQUENCE_OF, - asn_DEF_Neighbour_Information_tags_1, - sizeof(asn_DEF_Neighbour_Information_tags_1) - /sizeof(asn_DEF_Neighbour_Information_tags_1[0]), /* 1 */ - asn_DEF_Neighbour_Information_tags_1, /* Same as above */ - sizeof(asn_DEF_Neighbour_Information_tags_1) - /sizeof(asn_DEF_Neighbour_Information_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_Neighbour_Information_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_Neighbour_Information_1, - 1, /* Single element */ - &asn_SPC_Neighbour_Information_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/Neighbour-Information.h b/e2sim/previous/ASN1c/Neighbour-Information.h deleted file mode 100644 index 295e149..0000000 --- a/e2sim/previous/ASN1c/Neighbour-Information.h +++ /dev/null @@ -1,81 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _Neighbour_Information_H_ -#define _Neighbour_Information_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "ECGI.h" -#include "PCI.h" -#include "EARFCN.h" -#include "constr_SEQUENCE.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* Forward definitions */ -typedef struct Neighbour_Information__Member { - ECGI_t eCGI; - PCI_t pCI; - EARFCN_t eARFCN; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} Neighbour_Information__Member; - -/* Neighbour-Information */ -typedef struct Neighbour_Information { - A_SEQUENCE_OF(Neighbour_Information__Member) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} Neighbour_Information_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_Neighbour_Information; -extern asn_SET_OF_specifics_t asn_SPC_Neighbour_Information_specs_1; -extern asn_TYPE_member_t asn_MBR_Neighbour_Information_1[1]; -extern asn_per_constraints_t asn_PER_type_Neighbour_Information_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _Neighbour_Information_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/NewDRBIDrequest.c b/e2sim/previous/ASN1c/NewDRBIDrequest.c deleted file mode 100644 index 34be7fa..0000000 --- a/e2sim/previous/ASN1c/NewDRBIDrequest.c +++ /dev/null @@ -1,71 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "NewDRBIDrequest.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_NewDRBIDrequest_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 0, 0 } /* (0..0,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_NewDRBIDrequest_value2enum_1[] = { - { 0, 4, "true" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_NewDRBIDrequest_enum2value_1[] = { - 0 /* true(0) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_NewDRBIDrequest_specs_1 = { - asn_MAP_NewDRBIDrequest_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_NewDRBIDrequest_enum2value_1, /* N => "tag"; sorted by N */ - 1, /* Number of elements in the maps */ - 2, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_NewDRBIDrequest_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_NewDRBIDrequest = { - "NewDRBIDrequest", - "NewDRBIDrequest", - &asn_OP_NativeEnumerated, - asn_DEF_NewDRBIDrequest_tags_1, - sizeof(asn_DEF_NewDRBIDrequest_tags_1) - /sizeof(asn_DEF_NewDRBIDrequest_tags_1[0]), /* 1 */ - asn_DEF_NewDRBIDrequest_tags_1, /* Same as above */ - sizeof(asn_DEF_NewDRBIDrequest_tags_1) - /sizeof(asn_DEF_NewDRBIDrequest_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_NewDRBIDrequest_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_NewDRBIDrequest_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/NewDRBIDrequest.h b/e2sim/previous/ASN1c/NewDRBIDrequest.h deleted file mode 100644 index 871c0ed..0000000 --- a/e2sim/previous/ASN1c/NewDRBIDrequest.h +++ /dev/null @@ -1,71 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _NewDRBIDrequest_H_ -#define _NewDRBIDrequest_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum NewDRBIDrequest { - NewDRBIDrequest_true = 0 - /* - * Enumeration is extensible - */ -} e_NewDRBIDrequest; - -/* NewDRBIDrequest */ -typedef long NewDRBIDrequest_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_NewDRBIDrequest_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_NewDRBIDrequest; -extern const asn_INTEGER_specifics_t asn_SPC_NewDRBIDrequest_specs_1; -asn_struct_free_f NewDRBIDrequest_free; -asn_struct_print_f NewDRBIDrequest_print; -asn_constr_check_f NewDRBIDrequest_constraint; -ber_type_decoder_f NewDRBIDrequest_decode_ber; -der_type_encoder_f NewDRBIDrequest_encode_der; -xer_type_decoder_f NewDRBIDrequest_decode_xer; -xer_type_encoder_f NewDRBIDrequest_encode_xer; -per_type_decoder_f NewDRBIDrequest_decode_uper; -per_type_encoder_f NewDRBIDrequest_encode_uper; -per_type_decoder_f NewDRBIDrequest_decode_aper; -per_type_encoder_f NewDRBIDrequest_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _NewDRBIDrequest_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/NextHopChainingCount.c b/e2sim/previous/ASN1c/NextHopChainingCount.c deleted file mode 100644 index d8dcd68..0000000 --- a/e2sim/previous/ASN1c/NextHopChainingCount.c +++ /dev/null @@ -1,79 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "NextHopChainingCount.h" - -int -NextHopChainingCount_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 7)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using NativeInteger, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_NextHopChainingCount_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED, 3, 3, 0, 7 } /* (0..7) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_NextHopChainingCount_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_NextHopChainingCount = { - "NextHopChainingCount", - "NextHopChainingCount", - &asn_OP_NativeInteger, - asn_DEF_NextHopChainingCount_tags_1, - sizeof(asn_DEF_NextHopChainingCount_tags_1) - /sizeof(asn_DEF_NextHopChainingCount_tags_1[0]), /* 1 */ - asn_DEF_NextHopChainingCount_tags_1, /* Same as above */ - sizeof(asn_DEF_NextHopChainingCount_tags_1) - /sizeof(asn_DEF_NextHopChainingCount_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_NextHopChainingCount_constr_1, NextHopChainingCount_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/previous/ASN1c/NextHopChainingCount.h b/e2sim/previous/ASN1c/NextHopChainingCount.h deleted file mode 100644 index 545f835..0000000 --- a/e2sim/previous/ASN1c/NextHopChainingCount.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _NextHopChainingCount_H_ -#define _NextHopChainingCount_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeInteger.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* NextHopChainingCount */ -typedef long NextHopChainingCount_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_NextHopChainingCount_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_NextHopChainingCount; -asn_struct_free_f NextHopChainingCount_free; -asn_struct_print_f NextHopChainingCount_print; -asn_constr_check_f NextHopChainingCount_constraint; -ber_type_decoder_f NextHopChainingCount_decode_ber; -der_type_encoder_f NextHopChainingCount_encode_der; -xer_type_decoder_f NextHopChainingCount_decode_xer; -xer_type_encoder_f NextHopChainingCount_encode_xer; -per_type_decoder_f NextHopChainingCount_decode_uper; -per_type_encoder_f NextHopChainingCount_encode_uper; -per_type_decoder_f NextHopChainingCount_decode_aper; -per_type_encoder_f NextHopChainingCount_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _NextHopChainingCount_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/Number-of-Antennaports.c b/e2sim/previous/ASN1c/Number-of-Antennaports.c deleted file mode 100644 index a59cb79..0000000 --- a/e2sim/previous/ASN1c/Number-of-Antennaports.c +++ /dev/null @@ -1,75 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "Number-of-Antennaports.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_Number_of_Antennaports_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 2 } /* (0..2,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_Number_of_Antennaports_value2enum_1[] = { - { 0, 3, "an1" }, - { 1, 3, "an2" }, - { 2, 3, "an4" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_Number_of_Antennaports_enum2value_1[] = { - 0, /* an1(0) */ - 1, /* an2(1) */ - 2 /* an4(2) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_Number_of_Antennaports_specs_1 = { - asn_MAP_Number_of_Antennaports_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_Number_of_Antennaports_enum2value_1, /* N => "tag"; sorted by N */ - 3, /* Number of elements in the maps */ - 4, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_Number_of_Antennaports_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_Number_of_Antennaports = { - "Number-of-Antennaports", - "Number-of-Antennaports", - &asn_OP_NativeEnumerated, - asn_DEF_Number_of_Antennaports_tags_1, - sizeof(asn_DEF_Number_of_Antennaports_tags_1) - /sizeof(asn_DEF_Number_of_Antennaports_tags_1[0]), /* 1 */ - asn_DEF_Number_of_Antennaports_tags_1, /* Same as above */ - sizeof(asn_DEF_Number_of_Antennaports_tags_1) - /sizeof(asn_DEF_Number_of_Antennaports_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_Number_of_Antennaports_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_Number_of_Antennaports_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/Number-of-Antennaports.h b/e2sim/previous/ASN1c/Number-of-Antennaports.h deleted file mode 100644 index 31e39eb..0000000 --- a/e2sim/previous/ASN1c/Number-of-Antennaports.h +++ /dev/null @@ -1,73 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _Number_of_Antennaports_H_ -#define _Number_of_Antennaports_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum Number_of_Antennaports { - Number_of_Antennaports_an1 = 0, - Number_of_Antennaports_an2 = 1, - Number_of_Antennaports_an4 = 2 - /* - * Enumeration is extensible - */ -} e_Number_of_Antennaports; - -/* Number-of-Antennaports */ -typedef long Number_of_Antennaports_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_Number_of_Antennaports_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_Number_of_Antennaports; -extern const asn_INTEGER_specifics_t asn_SPC_Number_of_Antennaports_specs_1; -asn_struct_free_f Number_of_Antennaports_free; -asn_struct_print_f Number_of_Antennaports_print; -asn_constr_check_f Number_of_Antennaports_constraint; -ber_type_decoder_f Number_of_Antennaports_decode_ber; -der_type_encoder_f Number_of_Antennaports_encode_der; -xer_type_decoder_f Number_of_Antennaports_decode_xer; -xer_type_encoder_f Number_of_Antennaports_encode_xer; -per_type_decoder_f Number_of_Antennaports_decode_uper; -per_type_encoder_f Number_of_Antennaports_encode_uper; -per_type_decoder_f Number_of_Antennaports_decode_aper; -per_type_encoder_f Number_of_Antennaports_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _Number_of_Antennaports_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/OBJECT_IDENTIFIER.c b/e2sim/previous/ASN1c/OBJECT_IDENTIFIER.c deleted file mode 100644 index 44a3b17..0000000 --- a/e2sim/previous/ASN1c/OBJECT_IDENTIFIER.c +++ /dev/null @@ -1,674 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/*- - * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include -#include -#include /* for CHAR_BIT */ -#include - -/* - * OBJECT IDENTIFIER basic type description. - */ -static const ber_tlv_tag_t asn_DEF_OBJECT_IDENTIFIER_tags[] = { - (ASN_TAG_CLASS_UNIVERSAL | (6 << 2)) -}; -asn_TYPE_operation_t asn_OP_OBJECT_IDENTIFIER = { - ASN__PRIMITIVE_TYPE_free, - OBJECT_IDENTIFIER_print, - OCTET_STRING_compare, /* Implemented in terms of a string comparison */ - ber_decode_primitive, - der_encode_primitive, - OBJECT_IDENTIFIER_decode_xer, - OBJECT_IDENTIFIER_encode_xer, -#ifdef ASN_DISABLE_OER_SUPPORT - 0, - 0, -#else - OBJECT_IDENTIFIER_decode_oer, - OBJECT_IDENTIFIER_encode_oer, -#endif /* ASN_DISABLE_OER_SUPPORT */ -#ifdef ASN_DISABLE_PER_SUPPORT - 0, - 0, - 0, - 0, -#else - OCTET_STRING_decode_uper, - OCTET_STRING_encode_uper, - OCTET_STRING_decode_aper, - OCTET_STRING_encode_aper, -#endif /* ASN_DISABLE_PER_SUPPORT */ - OBJECT_IDENTIFIER_random_fill, - 0 /* Use generic outmost tag fetcher */ -}; -asn_TYPE_descriptor_t asn_DEF_OBJECT_IDENTIFIER = { - "OBJECT IDENTIFIER", - "OBJECT_IDENTIFIER", - &asn_OP_OBJECT_IDENTIFIER, - asn_DEF_OBJECT_IDENTIFIER_tags, - sizeof(asn_DEF_OBJECT_IDENTIFIER_tags) - / sizeof(asn_DEF_OBJECT_IDENTIFIER_tags[0]), - asn_DEF_OBJECT_IDENTIFIER_tags, /* Same as above */ - sizeof(asn_DEF_OBJECT_IDENTIFIER_tags) - / sizeof(asn_DEF_OBJECT_IDENTIFIER_tags[0]), - { 0, 0, OBJECT_IDENTIFIER_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - -int -OBJECT_IDENTIFIER_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, - void *app_key) { - const OBJECT_IDENTIFIER_t *st = (const OBJECT_IDENTIFIER_t *)sptr; - - if(st && st->buf) { - if(st->size < 1) { - ASN__CTFAIL(app_key, td, sptr, - "%s: at least one numerical value " - "expected (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - return 0; -} - -static ssize_t -OBJECT_IDENTIFIER_get_first_arcs(const uint8_t *arcbuf, size_t arcbuf_len, - asn_oid_arc_t *arc0, asn_oid_arc_t *arc1) { - asn_oid_arc_t value; - - ssize_t rd = OBJECT_IDENTIFIER_get_single_arc(arcbuf, arcbuf_len, &value); - if(rd <= 0) return rd; - - if(value >= 80) { - *arc0 = 2; - *arc1 = value - 80; - } else if(value >= 40) { - *arc0 = 1; - *arc1 = value - 40; - } else { - *arc0 = 0; - *arc1 = value; - } - - return rd; -} - -ssize_t -OBJECT_IDENTIFIER_get_single_arc(const uint8_t *arcbuf, size_t arcbuf_len, - asn_oid_arc_t *ret_value) { - const uint8_t *b = arcbuf; - const uint8_t *arcend = arcbuf + arcbuf_len; /* End of arc */ - - if(arcbuf == arcend) { - return 0; - } else { - asn_oid_arc_t accum; - asn_oid_arc_t upper_limit = (ASN_OID_ARC_MAX >> 7); - /* When the value reaches "upper_limit", it can take */ - /* at most one more digit. If it exceeds "upper_limit" */ - /* but there are more digits - it's an Overflow condition */ - /* Gather all bits into the accumulator */ - for(accum = 0; b < arcend; b++) { - accum = (accum << 7) | (*b & ~0x80); - if((*b & 0x80) == 0) { // no more digits - if(accum <= ASN_OID_ARC_MAX) { - *ret_value = accum; - return 1 + (b - arcbuf); - } else { - errno = ERANGE; /* Overflow */ - return -1; - } - } else { // to make sure we aren't wrapping around - if(accum > upper_limit) { - errno = ERANGE; /* Overflow */ - return -1; - } - } - } - errno = EINVAL; - return -1; - } - -} - -static ssize_t -OBJECT_IDENTIFIER__dump_body(const OBJECT_IDENTIFIER_t *st, - asn_app_consume_bytes_f *cb, void *app_key) { - char scratch[32]; - asn_oid_arc_t arc0, arc1; - size_t produced = 0; - size_t off = 0; - ssize_t rd; - int ret; - - rd = OBJECT_IDENTIFIER_get_first_arcs(st->buf, st->size, &arc0, &arc1); - if(rd <= 0) { - return -1; - } - - ret = snprintf(scratch, sizeof(scratch), "%"PRIu32".%"PRIu32, arc0, arc1); - if(ret >= (ssize_t)sizeof(scratch)) { - return -1; - } - produced += ret; - if(cb(scratch, ret, app_key) < 0) - return -1; - - for(off = rd; ; ) { - asn_oid_arc_t arc; - rd = OBJECT_IDENTIFIER_get_single_arc(st->buf + off, st->size - off, - &arc); - if(rd < 0) { - return -1; - } else if(rd == 0) { - /* No more arcs. */ - break; - } else { - off += rd; - assert(off <= st->size); - ret = snprintf(scratch, sizeof(scratch), ".%" PRIu32, arc); - if(ret >= (ssize_t)sizeof(scratch)) { - return -1; - } - produced += ret; - if(cb(scratch, ret, app_key) < 0) return -1; - } - } - - if(off != st->size) { - ASN_DEBUG("Could not scan to the end of Object Identifier"); - return -1; - } - - return produced; -} - -static enum xer_pbd_rval -OBJECT_IDENTIFIER__xer_body_decode(const asn_TYPE_descriptor_t *td, void *sptr, - const void *chunk_buf, size_t chunk_size) { - OBJECT_IDENTIFIER_t *st = (OBJECT_IDENTIFIER_t *)sptr; - const char *chunk_end = (const char *)chunk_buf + chunk_size; - const char *endptr; - asn_oid_arc_t s_arcs[10]; - asn_oid_arc_t *arcs = s_arcs; - ssize_t num_arcs; - ssize_t ret; - - (void)td; - - num_arcs = OBJECT_IDENTIFIER_parse_arcs( - (const char *)chunk_buf, chunk_size, arcs, - sizeof(s_arcs) / sizeof(s_arcs[0]), &endptr); - if(num_arcs < 0) { - /* Expecting more than zero arcs */ - return XPBD_BROKEN_ENCODING; - } else if(num_arcs == 0) { - return XPBD_NOT_BODY_IGNORE; - } - assert(endptr == chunk_end); - - if((size_t)num_arcs > sizeof(s_arcs)/sizeof(s_arcs[0])) { - arcs = (asn_oid_arc_t *)MALLOC(num_arcs * sizeof(asn_oid_arc_t)); - if(!arcs) return XPBD_SYSTEM_FAILURE; - ret = OBJECT_IDENTIFIER_parse_arcs((const char *)chunk_buf, chunk_size, - arcs, num_arcs, &endptr); - if(ret != num_arcs) - return XPBD_SYSTEM_FAILURE; /* assert?.. */ - } - - /* - * Convert arcs into BER representation. - */ - ret = OBJECT_IDENTIFIER_set_arcs(st, arcs, num_arcs); - if(arcs != s_arcs) FREEMEM(arcs); - - return ret ? XPBD_SYSTEM_FAILURE : XPBD_BODY_CONSUMED; -} - -asn_dec_rval_t -OBJECT_IDENTIFIER_decode_xer(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **sptr, - const char *opt_mname, const void *buf_ptr, - size_t size) { - return xer_decode_primitive(opt_codec_ctx, td, - sptr, sizeof(OBJECT_IDENTIFIER_t), opt_mname, - buf_ptr, size, OBJECT_IDENTIFIER__xer_body_decode); -} - -asn_enc_rval_t -OBJECT_IDENTIFIER_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, - int ilevel, enum xer_encoder_flags_e flags, - asn_app_consume_bytes_f *cb, void *app_key) { - const OBJECT_IDENTIFIER_t *st = (const OBJECT_IDENTIFIER_t *)sptr; - asn_enc_rval_t er = {0,0,0}; - - (void)ilevel; - (void)flags; - - if(!st || !st->buf) { - ASN__ENCODE_FAILED; - } - - er.encoded = OBJECT_IDENTIFIER__dump_body(st, cb, app_key); - if(er.encoded < 0) ASN__ENCODE_FAILED; - - ASN__ENCODED_OK(er); -} - -int -OBJECT_IDENTIFIER_print(const asn_TYPE_descriptor_t *td, const void *sptr, - int ilevel, asn_app_consume_bytes_f *cb, - void *app_key) { - const OBJECT_IDENTIFIER_t *st = (const OBJECT_IDENTIFIER_t *)sptr; - - (void)td; /* Unused argument */ - (void)ilevel; /* Unused argument */ - - if(!st || !st->buf) - return (cb("", 8, app_key) < 0) ? -1 : 0; - - /* Dump preamble */ - if(cb("{ ", 2, app_key) < 0) - return -1; - - if(OBJECT_IDENTIFIER__dump_body(st, cb, app_key) < 0) { - return -1; - } - - return (cb(" }", 2, app_key) < 0) ? -1 : 0; -} - -ssize_t -OBJECT_IDENTIFIER_get_arcs(const OBJECT_IDENTIFIER_t *st, asn_oid_arc_t *arcs, - size_t arc_slots) { - asn_oid_arc_t arc0, arc1; - size_t num_arcs = 0; - size_t off; - ssize_t rd; - - if(!st || !st->buf) { - errno = EINVAL; - return -1; - } - - rd = OBJECT_IDENTIFIER_get_first_arcs(st->buf, st->size, &arc0, &arc1); - if(rd <= 0) { - return -1; - } - num_arcs = 2; - switch(arc_slots) { - default: - case 2: - arcs[1] = arc1; - /* Fall through */ - case 1: - arcs[0] = arc0; - /* Fall through */ - case 0: - break; - } - - for(off = rd; ; ) { - asn_oid_arc_t arc; - rd = OBJECT_IDENTIFIER_get_single_arc(st->buf + off, st->size - off, - &arc); - if(rd < 0) { - return -1; - } else if(rd == 0) { - /* No more arcs. */ - break; - } else { - off += rd; - if(num_arcs < arc_slots) { - arcs[num_arcs] = arc; - } - num_arcs++; - } - } - - if(off != st->size) { - return -1; - } - - return num_arcs; -} - - -/* - * Save the single value as an object identifier arc. - */ -ssize_t -OBJECT_IDENTIFIER_set_single_arc(uint8_t *arcbuf, size_t arcbuf_len, - asn_oid_arc_t value) { - /* - * The following conditions must hold: - * assert(arcbuf); - */ - uint8_t scratch[((sizeof(value) * CHAR_BIT + 6) / 7)]; - uint8_t *scratch_end = &scratch[sizeof(scratch)-1]; - uint8_t *b; - size_t result_len; - uint8_t mask; - - for(b = scratch_end, mask = 0; ; mask = 0x80, b--) { - *b = mask | (value & 0x7f); - value >>= 7; - if(!value) { - break; - } - } - - result_len = (scratch_end - b) + 1; - - if(result_len > arcbuf_len) { - return -1; - } - - memcpy(arcbuf, b, result_len); - - return result_len; -} - -int -OBJECT_IDENTIFIER_set_arcs(OBJECT_IDENTIFIER_t *st, const asn_oid_arc_t *arcs, - size_t arc_slots) { - uint8_t *buf; - uint8_t *bp; - ssize_t wrote; - asn_oid_arc_t arc0; - asn_oid_arc_t arc1; - size_t size; - size_t i; - - if(!st || !arcs || arc_slots < 2) { - errno = EINVAL; - return -1; - } - - arc0 = arcs[0]; - arc1 = arcs[1]; - - if(arc0 <= 1) { - if(arc1 >= 40) { - /* 8.19.4: At most 39 subsequent values (including 0) */ - errno = ERANGE; - return -1; - } - } else if(arc0 == 2) { - if(arc1 > ASN_OID_ARC_MAX - 80) { - errno = ERANGE; - return -1; - } - } else if(arc0 > 2) { - /* 8.19.4: Only three values are allocated from the root node */ - errno = ERANGE; - return -1; - } - - /* - * After above tests it is known that the value of arc0 is completely - * trustworthy (0..2). However, the arc1's value is still meaningless. - */ - - /* - * Roughly estimate the maximum size necessary to encode these arcs. - * This estimation implicitly takes in account the following facts, - * that cancel each other: - * * the first two arcs are encoded in a single value. - * * the first value may require more space (+1 byte) - * * the value of the first arc which is in range (0..2) - */ - size = ((sizeof(asn_oid_arc_t) * CHAR_BIT + 6) / 7) * arc_slots; - bp = buf = (uint8_t *)MALLOC(size + 1); - if(!buf) { - /* ENOMEM */ - return -1; - } - - wrote = OBJECT_IDENTIFIER_set_single_arc(bp, size, arc0 * 40 + arc1); - if(wrote <= 0) { - FREEMEM(buf); - return -1; - } - assert((size_t)wrote <= size); - bp += wrote; - size -= wrote; - - for(i = 2; i < arc_slots; i++) { - wrote = OBJECT_IDENTIFIER_set_single_arc(bp, size, arcs[i]); - if(wrote <= 0) { - FREEMEM(buf); - return -1; - } - assert((size_t)wrote <= size); - bp += wrote; - size -= wrote; - } - - /* - * Replace buffer. - */ - st->size = bp - buf; - bp = st->buf; - st->buf = buf; - st->buf[st->size] = '\0'; - if(bp) FREEMEM(bp); - - return 0; -} - -ssize_t -OBJECT_IDENTIFIER_parse_arcs(const char *oid_text, ssize_t oid_txt_length, - asn_oid_arc_t *arcs, size_t arcs_count, - const char **opt_oid_text_end) { - size_t num_arcs = 0; - const char *oid_end; - enum { - ST_LEADSPACE, - ST_TAILSPACE, - ST_AFTERVALUE, /* Next character ought to be '.' or a space */ - ST_WAITDIGITS /* Next character is expected to be a digit */ - } state = ST_LEADSPACE; - - if(!oid_text || oid_txt_length < -1 || (arcs_count && !arcs)) { - if(opt_oid_text_end) *opt_oid_text_end = oid_text; - errno = EINVAL; - return -1; - } - - if(oid_txt_length == -1) - oid_txt_length = strlen(oid_text); - -#define _OID_CAPTURE_ARC(oid_text, oid_end) \ - do { \ - const char *endp = oid_end; \ - unsigned long value; \ - switch(asn_strtoul_lim(oid_text, &endp, &value)) { \ - case ASN_STRTOX_EXTRA_DATA: \ - case ASN_STRTOX_OK: \ - if(value <= ASN_OID_ARC_MAX) { \ - if(num_arcs < arcs_count) arcs[num_arcs] = value; \ - num_arcs++; \ - oid_text = endp - 1; \ - break; \ - } \ - /* Fall through */ \ - case ASN_STRTOX_ERROR_RANGE: \ - if(opt_oid_text_end) *opt_oid_text_end = oid_text; \ - errno = ERANGE; \ - return -1; \ - case ASN_STRTOX_ERROR_INVAL: \ - case ASN_STRTOX_EXPECT_MORE: \ - if(opt_oid_text_end) *opt_oid_text_end = oid_text; \ - errno = EINVAL; \ - return -1; \ - } \ - } while(0) - - for(oid_end = oid_text + oid_txt_length; oid_text broken OID */ - return -1; - case ST_LEADSPACE: - case ST_WAITDIGITS: - _OID_CAPTURE_ARC(oid_text, oid_end); - state = ST_AFTERVALUE; - continue; - } - break; - default: - /* Unexpected symbols */ - state = ST_WAITDIGITS; - break; - } /* switch() */ - break; - } /* for() */ - - - if(opt_oid_text_end) *opt_oid_text_end = oid_text; - - /* Finalize last arc */ - switch(state) { - case ST_LEADSPACE: - return 0; /* No OID found in input data */ - case ST_WAITDIGITS: - errno = EINVAL; /* Broken OID */ - return -1; - case ST_AFTERVALUE: - case ST_TAILSPACE: - return num_arcs; - } - - errno = EINVAL; /* Broken OID */ - return -1; -} - -/* - * Generate values from the list of interesting values, or just a random - * value up to the upper limit. - */ -static asn_oid_arc_t -OBJECT_IDENTIFIER__biased_random_arc(asn_oid_arc_t upper_bound) { - const asn_oid_arc_t values[] = {0, 1, 127, 128, 129, 254, 255, 256}; - size_t idx; - - switch(asn_random_between(0, 2)) { - case 0: - idx = asn_random_between(0, sizeof(values) / sizeof(values[0]) - 1); - if(values[idx] < upper_bound) { - return values[idx]; - } - /* Fall through */ - case 1: - return asn_random_between(0, upper_bound); - case 2: - default: - return upper_bound; - } -} - -asn_random_fill_result_t -OBJECT_IDENTIFIER_random_fill(const asn_TYPE_descriptor_t *td, void **sptr, - const asn_encoding_constraints_t *constraints, - size_t max_length) { - asn_random_fill_result_t result_ok = {ARFILL_OK, 1}; - asn_random_fill_result_t result_failed = {ARFILL_FAILED, 0}; - asn_random_fill_result_t result_skipped = {ARFILL_SKIPPED, 0}; - OBJECT_IDENTIFIER_t *st; - asn_oid_arc_t arcs[5]; - size_t arcs_len = asn_random_between(2, 5); - size_t i; - - (void)constraints; - - if(max_length < arcs_len) return result_skipped; - - if(*sptr) { - st = *sptr; - } else { - st = CALLOC(1, sizeof(*st)); - } - - arcs[0] = asn_random_between(0, 2); - arcs[1] = OBJECT_IDENTIFIER__biased_random_arc( - arcs[0] <= 1 ? 39 : (ASN_OID_ARC_MAX - 80)); - for(i = 2; i < arcs_len; i++) { - arcs[i] = OBJECT_IDENTIFIER__biased_random_arc(ASN_OID_ARC_MAX); - } - - if(OBJECT_IDENTIFIER_set_arcs(st, arcs, arcs_len)) { - if(st != *sptr) { - ASN_STRUCT_FREE(*td, st); - } - return result_failed; - } - - *sptr = st; - - result_ok.length = st->size; - return result_ok; -} diff --git a/e2sim/previous/ASN1c/OBJECT_IDENTIFIER.h b/e2sim/previous/ASN1c/OBJECT_IDENTIFIER.h deleted file mode 100644 index da31d68..0000000 --- a/e2sim/previous/ASN1c/OBJECT_IDENTIFIER.h +++ /dev/null @@ -1,174 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef _OBJECT_IDENTIFIER_H_ -#define _OBJECT_IDENTIFIER_H_ - -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -typedef uint32_t asn_oid_arc_t; -#define ASN_OID_ARC_MAX (~((asn_oid_arc_t)0)) - -typedef ASN__PRIMITIVE_TYPE_t OBJECT_IDENTIFIER_t; - -extern asn_TYPE_descriptor_t asn_DEF_OBJECT_IDENTIFIER; -extern asn_TYPE_operation_t asn_OP_OBJECT_IDENTIFIER; - -asn_struct_print_f OBJECT_IDENTIFIER_print; -asn_constr_check_f OBJECT_IDENTIFIER_constraint; -der_type_encoder_f OBJECT_IDENTIFIER_encode_der; -xer_type_decoder_f OBJECT_IDENTIFIER_decode_xer; -xer_type_encoder_f OBJECT_IDENTIFIER_encode_xer; -asn_random_fill_f OBJECT_IDENTIFIER_random_fill; - -#define OBJECT_IDENTIFIER_free ASN__PRIMITIVE_TYPE_free -#define OBJECT_IDENTIFIER_compare OCTET_STRING_compare -#define OBJECT_IDENTIFIER_decode_ber ber_decode_primitive -#define OBJECT_IDENTIFIER_encode_der der_encode_primitive -#define OBJECT_IDENTIFIER_decode_oer oer_decode_primitive -#define OBJECT_IDENTIFIER_encode_oer oer_encode_primitive -#define OBJECT_IDENTIFIER_decode_uper OCTET_STRING_decode_uper -#define OBJECT_IDENTIFIER_encode_uper OCTET_STRING_encode_uper -#define OBJECT_IDENTIFIER_decode_aper OCTET_STRING_decode_aper -#define OBJECT_IDENTIFIER_encode_aper OCTET_STRING_encode_aper - -/********************************** - * Some handy conversion routines * - **********************************/ - -/* - * This function fills an (arcs) array with OBJECT IDENTIFIER arcs - * up to specified (arc_slots) elements. - * - * EXAMPLE: - * void print_arcs(OBJECT_IDENTIFIER_t *oid) { - * asn_oid_arc_t fixed_arcs[10]; // Try with fixed space first - * asn_oid_arc_t *arcs = fixed_arcs; - * size_t arc_slots = sizeof(fixed_arcs)/sizeof(fixed_arcs[0]); // 10 - * ssize_t count; // Real number of arcs. - * int i; - * - * count = OBJECT_IDENTIFIER_get_arcs(oid, arcs, arc_slots); - * // If necessary, reallocate arcs array and try again. - * if(count > arc_slots) { - * arc_slots = count; - * arcs = malloc(sizeof(asn_oid_arc_t) * arc_slots); - * if(!arcs) return; - * count = OBJECT_IDENTIFIER_get_arcs(oid, arcs, arc_slots); - * assert(count == arc_slots); - * } - * - * // Print the contents of the arcs array. - * for(i = 0; i < count; i++) - * printf("%"PRIu32"\n", arcs[i]); - * - * // Avoid memory leak. - * if(arcs != fixed_arcs) free(arcs); - * } - * - * RETURN VALUES: - * -1/EINVAL: Invalid arguments (oid is missing) - * -1/ERANGE: One or more arcs have value out of array cell type range. - * >=0: Number of arcs contained in the OBJECT IDENTIFIER - * - * WARNING: The function always returns the actual number of arcs, - * even if there is no sufficient (arc_slots) provided. - */ -ssize_t OBJECT_IDENTIFIER_get_arcs(const OBJECT_IDENTIFIER_t *oid, - asn_oid_arc_t *arcs, size_t arc_slots); - -/* - * This functions initializes the OBJECT IDENTIFIER object with - * the given set of arcs. - * The minimum of two arcs must be present; some restrictions apply. - * RETURN VALUES: - * -1/EINVAL: Invalid arguments - * -1/ERANGE: The first two arcs do not conform to ASN.1 restrictions. - * -1/ENOMEM: Memory allocation failed - * 0: The object was initialized with new arcs. - */ -int OBJECT_IDENTIFIER_set_arcs(OBJECT_IDENTIFIER_t *oid, - const asn_oid_arc_t *arcs, size_t arcs_count); - - -/* - * Parse the OBJECT IDENTIFIER textual representation ("1.3.6.1.4.1.9363"). - * No arc can exceed the (0..ASN_OID_ARC_MAX, which is the same as UINT32_MAX). - * This function is not specific to OBJECT IDENTIFIER, it may be used to parse - * the RELATIVE-OID data, or any other data consisting of dot-separated - * series of numeric values. - * - * If (oid_txt_length == -1), the strlen() will be invoked to determine the - * size of the (oid_text) string. - * - * After return, the optional (opt_oid_text_end) is set to the character after - * the last parsed one. (opt_oid_text_end) is never less than (oid_text). - * - * RETURN VALUES: - * -1: Parse error. - * >= 0: Number of arcs contained in the OBJECT IDENTIFIER. - * - * WARNING: The function always returns the real number of arcs, - * even if there is no sufficient (arc_slots) provided. - * This is useful for (arc_slots) value estimation. - */ -ssize_t OBJECT_IDENTIFIER_parse_arcs(const char *oid_text, - ssize_t oid_txt_length, - asn_oid_arc_t *arcs, size_t arcs_count, - const char **opt_oid_text_end); - -/* - * Internal functions. - * Used by RELATIVE-OID implementation in particular. - */ - -/* - * Retrieve a single arc of size from the (arcbuf) buffer. - * RETURN VALUES: - * -1: Failed to retrieve the value from the (arcbuf). - * >0: Number of bytes consumed from the (arcbuf), <= (arcbuf_len). - */ -ssize_t OBJECT_IDENTIFIER_get_single_arc(const uint8_t *arcbuf, - size_t arcbuf_len, - asn_oid_arc_t *ret_value); - -/* - * Write the unterminated arc value into the (arcbuf) which has the size at - * least (arcbuf_len). - * RETURN VALUES: - * -1: (arcbuf_len) size is not sufficient to write the value. - * : Number of bytes appended to the arcbuf (<= arcbuf_len). - */ -ssize_t OBJECT_IDENTIFIER_set_single_arc(uint8_t *arcbuf, size_t arcbuf_len, - asn_oid_arc_t arc_value); - -#ifdef __cplusplus -} -#endif - -#endif /* _OBJECT_IDENTIFIER_H_ */ diff --git a/e2sim/previous/ASN1c/OCTET_STRING.c b/e2sim/previous/ASN1c/OCTET_STRING.c deleted file mode 100644 index a805e77..0000000 --- a/e2sim/previous/ASN1c/OCTET_STRING.c +++ /dev/null @@ -1,2427 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/*- - * Copyright (c) 2003-2017 Lev Walkin . - * All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include /* for .bits_unused member */ -#include - -/* - * OCTET STRING basic type description. - */ -static const ber_tlv_tag_t asn_DEF_OCTET_STRING_tags[] = { - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) -}; -asn_OCTET_STRING_specifics_t asn_SPC_OCTET_STRING_specs = { - sizeof(OCTET_STRING_t), - offsetof(OCTET_STRING_t, _asn_ctx), - ASN_OSUBV_STR -}; - -asn_TYPE_operation_t asn_OP_OCTET_STRING = { - OCTET_STRING_free, - OCTET_STRING_print, /* OCTET STRING generally means a non-ascii sequence */ - OCTET_STRING_compare, - OCTET_STRING_decode_ber, - OCTET_STRING_encode_der, - OCTET_STRING_decode_xer_hex, - OCTET_STRING_encode_xer, -#ifdef ASN_DISABLE_OER_SUPPORT - 0, - 0, -#else - OCTET_STRING_decode_oer, - OCTET_STRING_encode_oer, -#endif /* ASN_DISABLE_OER_SUPPORT */ -#ifdef ASN_DISABLE_PER_SUPPORT - 0, - 0, - 0, - 0, -#else - OCTET_STRING_decode_uper, /* Unaligned PER decoder */ - OCTET_STRING_encode_uper, /* Unaligned PER encoder */ - OCTET_STRING_decode_aper, /* Aligned PER decoder */ - OCTET_STRING_encode_aper, /* Aligned PER encoder */ -#endif /* ASN_DISABLE_PER_SUPPORT */ - OCTET_STRING_random_fill, - 0 /* Use generic outmost tag fetcher */ -}; -asn_TYPE_descriptor_t asn_DEF_OCTET_STRING = { - "OCTET STRING", /* Canonical name */ - "OCTET_STRING", /* XML tag name */ - &asn_OP_OCTET_STRING, - asn_DEF_OCTET_STRING_tags, - sizeof(asn_DEF_OCTET_STRING_tags) - / sizeof(asn_DEF_OCTET_STRING_tags[0]), - asn_DEF_OCTET_STRING_tags, /* Same as above */ - sizeof(asn_DEF_OCTET_STRING_tags) - / sizeof(asn_DEF_OCTET_STRING_tags[0]), - { 0, 0, asn_generic_no_constraint }, - 0, 0, /* No members */ - &asn_SPC_OCTET_STRING_specs -}; - -#undef _CH_PHASE -#undef NEXT_PHASE -#undef PREV_PHASE -#define _CH_PHASE(ctx, inc) do { \ - if(ctx->phase == 0) \ - ctx->context = 0; \ - ctx->phase += inc; \ - } while(0) -#define NEXT_PHASE(ctx) _CH_PHASE(ctx, +1) -#define PREV_PHASE(ctx) _CH_PHASE(ctx, -1) - -#undef ADVANCE -#define ADVANCE(num_bytes) do { \ - size_t num = (num_bytes); \ - buf_ptr = ((const char *)buf_ptr) + num; \ - size -= num; \ - consumed_myself += num; \ - } while(0) - -#undef RETURN -#define RETURN(_code) do { \ - asn_dec_rval_t tmprval; \ - tmprval.code = _code; \ - tmprval.consumed = consumed_myself; \ - return tmprval; \ - } while(0) - -#undef APPEND -#define APPEND(bufptr, bufsize) do { \ - size_t _bs = (bufsize); /* Append size */ \ - size_t _ns = ctx->context; /* Allocated now */ \ - size_t _es = st->size + _bs; /* Expected size */ \ - /* int is really a typeof(st->size): */ \ - if((int)_es < 0) RETURN(RC_FAIL); \ - if(_ns <= _es) { \ - void *ptr; \ - /* Be nice and round to the memory allocator */ \ - do { _ns = _ns ? _ns << 1 : 16; } \ - while(_ns <= _es); \ - /* int is really a typeof(st->size): */ \ - if((int)_ns < 0) RETURN(RC_FAIL); \ - ptr = REALLOC(st->buf, _ns); \ - if(ptr) { \ - st->buf = (uint8_t *)ptr; \ - ctx->context = _ns; \ - } else { \ - RETURN(RC_FAIL); \ - } \ - ASN_DEBUG("Reallocating into %ld", (long)_ns); \ - } \ - memcpy(st->buf + st->size, bufptr, _bs); \ - /* Convenient nul-termination */ \ - st->buf[_es] = '\0'; \ - st->size = _es; \ - } while(0) - -/* - * The main reason why ASN.1 is still alive is that too much time and effort - * is necessary for learning it more or less adequately, thus creating a gut - * necessity to demonstrate that aquired skill everywhere afterwards. - * No, I am not going to explain what the following stuff is. - */ -struct _stack_el { - ber_tlv_len_t left; /* What's left to read (or -1) */ - ber_tlv_len_t got; /* What was actually processed */ - unsigned cont_level; /* Depth of subcontainment */ - int want_nulls; /* Want null "end of content" octets? */ - int bits_chopped; /* Flag in BIT STRING mode */ - ber_tlv_tag_t tag; /* For debugging purposes */ - struct _stack_el *prev; - struct _stack_el *next; -}; -struct _stack { - struct _stack_el *tail; - struct _stack_el *cur_ptr; -}; - -static struct _stack_el * -OS__add_stack_el(struct _stack *st) { - struct _stack_el *nel; - - /* - * Reuse the old stack frame or allocate a new one. - */ - if(st->cur_ptr && st->cur_ptr->next) { - nel = st->cur_ptr->next; - nel->bits_chopped = 0; - nel->got = 0; - /* Retain the nel->cont_level, it's correct. */ - } else { - nel = (struct _stack_el *)CALLOC(1, sizeof(struct _stack_el)); - if(nel == NULL) - return NULL; - - if(st->tail) { - /* Increase a subcontainment depth */ - nel->cont_level = st->tail->cont_level + 1; - st->tail->next = nel; - } - nel->prev = st->tail; - st->tail = nel; - } - - st->cur_ptr = nel; - - return nel; -} - -static struct _stack * -_new_stack(void) { - return (struct _stack *)CALLOC(1, sizeof(struct _stack)); -} - -/* - * Decode OCTET STRING type. - */ -asn_dec_rval_t -OCTET_STRING_decode_ber(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **sptr, - const void *buf_ptr, size_t size, int tag_mode) { - const asn_OCTET_STRING_specifics_t *specs = td->specifics - ? (const asn_OCTET_STRING_specifics_t *)td->specifics - : &asn_SPC_OCTET_STRING_specs; - BIT_STRING_t *st = (BIT_STRING_t *)*sptr; - asn_dec_rval_t rval; - asn_struct_ctx_t *ctx; - ssize_t consumed_myself = 0; - struct _stack *stck; /* Expectations stack structure */ - struct _stack_el *sel = 0; /* Stack element */ - int tlv_constr; - enum asn_OS_Subvariant type_variant = specs->subvariant; - - ASN_DEBUG("Decoding %s as %s (frame %ld)", - td->name, - (type_variant == ASN_OSUBV_STR) ? - "OCTET STRING" : "OS-SpecialCase", - (long)size); - - /* - * Create the string if does not exist. - */ - if(st == NULL) { - st = (BIT_STRING_t *)(*sptr = CALLOC(1, specs->struct_size)); - if(st == NULL) RETURN(RC_FAIL); - } - - /* Restore parsing context */ - ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset); - - switch(ctx->phase) { - case 0: - /* - * Check tags. - */ - rval = ber_check_tags(opt_codec_ctx, td, ctx, - buf_ptr, size, tag_mode, -1, - &ctx->left, &tlv_constr); - if(rval.code != RC_OK) - return rval; - - if(tlv_constr) { - /* - * Complex operation, requires stack of expectations. - */ - ctx->ptr = _new_stack(); - if(!ctx->ptr) { - RETURN(RC_FAIL); - } - } else { - /* - * Jump into stackless primitive decoding. - */ - _CH_PHASE(ctx, 3); - if(type_variant == ASN_OSUBV_ANY && tag_mode != 1) - APPEND(buf_ptr, rval.consumed); - ADVANCE(rval.consumed); - goto phase3; - } - - NEXT_PHASE(ctx); - /* Fall through */ - case 1: - phase1: - /* - * Fill the stack with expectations. - */ - stck = (struct _stack *)ctx->ptr; - sel = stck->cur_ptr; - do { - ber_tlv_tag_t tlv_tag; - ber_tlv_len_t tlv_len; - ber_tlv_tag_t expected_tag; - ssize_t tl, ll, tlvl; - /* This one works even if (sel->left == -1) */ - size_t Left = ((!sel||(size_t)sel->left >= size) - ?size:(size_t)sel->left); - - - ASN_DEBUG("%p, s->l=%ld, s->wn=%ld, s->g=%ld\n", (void *)sel, - (long)(sel?sel->left:0), - (long)(sel?sel->want_nulls:0), - (long)(sel?sel->got:0) - ); - if(sel && sel->left <= 0 && sel->want_nulls == 0) { - if(sel->prev) { - struct _stack_el *prev = sel->prev; - if(prev->left != -1) { - if(prev->left < sel->got) - RETURN(RC_FAIL); - prev->left -= sel->got; - } - prev->got += sel->got; - sel = stck->cur_ptr = prev; - if(!sel) break; - tlv_constr = 1; - continue; - } else { - sel = stck->cur_ptr = 0; - break; /* Nothing to wait */ - } - } - - tl = ber_fetch_tag(buf_ptr, Left, &tlv_tag); - ASN_DEBUG("fetch tag(size=%ld,L=%ld), %sstack, left=%ld, wn=%ld, tl=%ld", - (long)size, (long)Left, sel?"":"!", - (long)(sel?sel->left:0), - (long)(sel?sel->want_nulls:0), - (long)tl); - switch(tl) { - case -1: RETURN(RC_FAIL); - case 0: RETURN(RC_WMORE); - } - - tlv_constr = BER_TLV_CONSTRUCTED(buf_ptr); - - ll = ber_fetch_length(tlv_constr, - (const char *)buf_ptr + tl,Left - tl,&tlv_len); - ASN_DEBUG("Got tag=%s, tc=%d, left=%ld, tl=%ld, len=%ld, ll=%ld", - ber_tlv_tag_string(tlv_tag), tlv_constr, - (long)Left, (long)tl, (long)tlv_len, (long)ll); - switch(ll) { - case -1: RETURN(RC_FAIL); - case 0: RETURN(RC_WMORE); - } - - if(sel && sel->want_nulls - && ((const uint8_t *)buf_ptr)[0] == 0 - && ((const uint8_t *)buf_ptr)[1] == 0) - { - - ASN_DEBUG("Eat EOC; wn=%d--", sel->want_nulls); - - if(type_variant == ASN_OSUBV_ANY - && (tag_mode != 1 || sel->cont_level)) - APPEND("\0\0", 2); - - ADVANCE(2); - sel->got += 2; - if(sel->left != -1) { - sel->left -= 2; /* assert(sel->left >= 2) */ - } - - sel->want_nulls--; - if(sel->want_nulls == 0) { - /* Move to the next expectation */ - sel->left = 0; - tlv_constr = 1; - } - - continue; - } - - /* - * Set up expected tags, - * depending on ASN.1 type being decoded. - */ - switch(type_variant) { - case ASN_OSUBV_BIT: - /* X.690: 8.6.4.1, NOTE 2 */ - /* Fall through */ - case ASN_OSUBV_STR: - default: - if(sel) { - unsigned level = sel->cont_level; - if(level < td->all_tags_count) { - expected_tag = td->all_tags[level]; - break; - } else if(td->all_tags_count) { - expected_tag = td->all_tags - [td->all_tags_count - 1]; - break; - } - /* else, Fall through */ - } - /* Fall through */ - case ASN_OSUBV_ANY: - expected_tag = tlv_tag; - break; - } - - - if(tlv_tag != expected_tag) { - char buf[2][32]; - ber_tlv_tag_snprint(tlv_tag, - buf[0], sizeof(buf[0])); - ber_tlv_tag_snprint(td->tags[td->tags_count-1], - buf[1], sizeof(buf[1])); - ASN_DEBUG("Tag does not match expectation: %s != %s", - buf[0], buf[1]); - RETURN(RC_FAIL); - } - - tlvl = tl + ll; /* Combined length of T and L encoding */ - if((tlv_len + tlvl) < 0) { - /* tlv_len value is too big */ - ASN_DEBUG("TLV encoding + length (%ld) is too big", - (long)tlv_len); - RETURN(RC_FAIL); - } - - /* - * Append a new expectation. - */ - sel = OS__add_stack_el(stck); - if(!sel) RETURN(RC_FAIL); - - sel->tag = tlv_tag; - - sel->want_nulls = (tlv_len==-1); - if(sel->prev && sel->prev->left != -1) { - /* Check that the parent frame is big enough */ - if(sel->prev->left < tlvl + (tlv_len==-1?0:tlv_len)) - RETURN(RC_FAIL); - if(tlv_len == -1) - sel->left = sel->prev->left - tlvl; - else - sel->left = tlv_len; - } else { - sel->left = tlv_len; - } - if(type_variant == ASN_OSUBV_ANY - && (tag_mode != 1 || sel->cont_level)) - APPEND(buf_ptr, tlvl); - sel->got += tlvl; - ADVANCE(tlvl); - - ASN_DEBUG("+EXPECT2 got=%ld left=%ld, wn=%d, clvl=%u", - (long)sel->got, (long)sel->left, - sel->want_nulls, sel->cont_level); - - } while(tlv_constr); - if(sel == NULL) { - /* Finished operation, "phase out" */ - ASN_DEBUG("Phase out"); - _CH_PHASE(ctx, +3); - break; - } - - NEXT_PHASE(ctx); - /* Fall through */ - case 2: - stck = (struct _stack *)ctx->ptr; - sel = stck->cur_ptr; - ASN_DEBUG("Phase 2: Need %ld bytes, size=%ld, alrg=%ld, wn=%d", - (long)sel->left, (long)size, (long)sel->got, - sel->want_nulls); - { - ber_tlv_len_t len; - - assert(sel->left >= 0); - - len = ((ber_tlv_len_t)size < sel->left) - ? (ber_tlv_len_t)size : sel->left; - if(len > 0) { - if(type_variant == ASN_OSUBV_BIT - && sel->bits_chopped == 0) { - /* Put the unused-bits-octet away */ - st->bits_unused = *(const uint8_t *)buf_ptr; - APPEND(((const char *)buf_ptr+1), (len - 1)); - sel->bits_chopped = 1; - } else { - APPEND(buf_ptr, len); - } - ADVANCE(len); - sel->left -= len; - sel->got += len; - } - - if(sel->left) { - ASN_DEBUG("OS left %ld, size = %ld, wn=%d\n", - (long)sel->left, (long)size, sel->want_nulls); - RETURN(RC_WMORE); - } - - PREV_PHASE(ctx); - goto phase1; - } - break; - case 3: - phase3: - /* - * Primitive form, no stack required. - */ - assert(ctx->left >= 0); - - if(size < (size_t)ctx->left) { - if(!size) RETURN(RC_WMORE); - if(type_variant == ASN_OSUBV_BIT && !ctx->context) { - st->bits_unused = *(const uint8_t *)buf_ptr; - ctx->left--; - ADVANCE(1); - } - APPEND(buf_ptr, size); - assert(ctx->context > 0); - ctx->left -= size; - ADVANCE(size); - RETURN(RC_WMORE); - } else { - if(type_variant == ASN_OSUBV_BIT - && !ctx->context && ctx->left) { - st->bits_unused = *(const uint8_t *)buf_ptr; - ctx->left--; - ADVANCE(1); - } - APPEND(buf_ptr, ctx->left); - ADVANCE(ctx->left); - ctx->left = 0; - - NEXT_PHASE(ctx); - } - break; - } - - if(sel) { - ASN_DEBUG("3sel p=%p, wn=%d, l=%ld, g=%ld, size=%ld", - (void *)sel->prev, sel->want_nulls, - (long)sel->left, (long)sel->got, (long)size); - if(sel->prev || sel->want_nulls > 1 || sel->left > 0) { - RETURN(RC_WMORE); - } - } - - /* - * BIT STRING-specific processing. - */ - if(type_variant == ASN_OSUBV_BIT) { - if(st->size) { - if(st->bits_unused < 0 || st->bits_unused > 7) { - RETURN(RC_FAIL); - } - /* Finalize BIT STRING: zero out unused bits. */ - st->buf[st->size-1] &= 0xff << st->bits_unused; - } else { - if(st->bits_unused) { - RETURN(RC_FAIL); - } - } - } - - ASN_DEBUG("Took %ld bytes to encode %s: [%s]:%ld", - (long)consumed_myself, td->name, - (type_variant == ASN_OSUBV_STR) ? (char *)st->buf : "", - (long)st->size); - - - RETURN(RC_OK); -} - -/* - * Encode OCTET STRING type using DER. - */ -asn_enc_rval_t -OCTET_STRING_encode_der(const asn_TYPE_descriptor_t *td, const void *sptr, - int tag_mode, ber_tlv_tag_t tag, - asn_app_consume_bytes_f *cb, void *app_key) { - asn_enc_rval_t er = { 0, 0, 0 }; - const asn_OCTET_STRING_specifics_t *specs = td->specifics - ? (const asn_OCTET_STRING_specifics_t *)td->specifics - : &asn_SPC_OCTET_STRING_specs; - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - enum asn_OS_Subvariant type_variant = specs->subvariant; - int fix_last_byte = 0; - - ASN_DEBUG("%s %s as OCTET STRING", - cb?"Estimating":"Encoding", td->name); - - /* - * Write tags. - */ - if(type_variant != ASN_OSUBV_ANY || tag_mode == 1) { - er.encoded = der_write_tags(td, - (type_variant == ASN_OSUBV_BIT) + st->size, - tag_mode, type_variant == ASN_OSUBV_ANY, tag, - cb, app_key); - if(er.encoded == -1) { - er.failed_type = td; - er.structure_ptr = sptr; - return er; - } - } else { - /* Disallow: [] IMPLICIT ANY */ - assert(type_variant != ASN_OSUBV_ANY || tag_mode != -1); - er.encoded = 0; - } - - if(!cb) { - er.encoded += (type_variant == ASN_OSUBV_BIT) + st->size; - ASN__ENCODED_OK(er); - } - - /* - * Prepare to deal with the last octet of BIT STRING. - */ - if(type_variant == ASN_OSUBV_BIT) { - uint8_t b = st->bits_unused & 0x07; - if(b && st->size) fix_last_byte = 1; - ASN__CALLBACK(&b, 1); - } - - /* Invoke callback for the main part of the buffer */ - ASN__CALLBACK(st->buf, st->size - fix_last_byte); - - /* The last octet should be stripped off the unused bits */ - if(fix_last_byte) { - uint8_t b = st->buf[st->size-1] & (0xff << st->bits_unused); - ASN__CALLBACK(&b, 1); - } - - ASN__ENCODED_OK(er); -cb_failed: - ASN__ENCODE_FAILED; -} - -asn_enc_rval_t -OCTET_STRING_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, - int ilevel, enum xer_encoder_flags_e flags, - asn_app_consume_bytes_f *cb, void *app_key) { - const char * const h2c = "0123456789ABCDEF"; - const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; - asn_enc_rval_t er = { 0, 0, 0 }; - char scratch[16 * 3 + 4]; - char *p = scratch; - uint8_t *buf; - uint8_t *end; - size_t i; - - if(!st || (!st->buf && st->size)) - ASN__ENCODE_FAILED; - - er.encoded = 0; - - /* - * Dump the contents of the buffer in hexadecimal. - */ - buf = st->buf; - end = buf + st->size; - if(flags & XER_F_CANONICAL) { - char *scend = scratch + (sizeof(scratch) - 2); - for(; buf < end; buf++) { - if(p >= scend) { - ASN__CALLBACK(scratch, p - scratch); - p = scratch; - } - *p++ = h2c[(*buf >> 4) & 0x0F]; - *p++ = h2c[*buf & 0x0F]; - } - - ASN__CALLBACK(scratch, p-scratch); /* Dump the rest */ - } else { - for(i = 0; buf < end; buf++, i++) { - if(!(i % 16) && (i || st->size > 16)) { - ASN__CALLBACK(scratch, p-scratch); - p = scratch; - ASN__TEXT_INDENT(1, ilevel); - } - *p++ = h2c[(*buf >> 4) & 0x0F]; - *p++ = h2c[*buf & 0x0F]; - *p++ = 0x20; - } - if(p - scratch) { - p--; /* Remove the tail space */ - ASN__CALLBACK(scratch, p-scratch); /* Dump the rest */ - if(st->size > 16) - ASN__TEXT_INDENT(1, ilevel-1); - } - } - - ASN__ENCODED_OK(er); -cb_failed: - ASN__ENCODE_FAILED; -} - -static const struct OCTET_STRING__xer_escape_table_s { - const char *string; - int size; -} OCTET_STRING__xer_escape_table[] = { -#define OSXET(s) { s, sizeof(s) - 1 } - OSXET("\074\156\165\154\057\076"), /* */ - OSXET("\074\163\157\150\057\076"), /* */ - OSXET("\074\163\164\170\057\076"), /* */ - OSXET("\074\145\164\170\057\076"), /* */ - OSXET("\074\145\157\164\057\076"), /* */ - OSXET("\074\145\156\161\057\076"), /* */ - OSXET("\074\141\143\153\057\076"), /* */ - OSXET("\074\142\145\154\057\076"), /* */ - OSXET("\074\142\163\057\076"), /* */ - OSXET("\011"), /* \t */ - OSXET("\012"), /* \n */ - OSXET("\074\166\164\057\076"), /* */ - OSXET("\074\146\146\057\076"), /* */ - OSXET("\015"), /* \r */ - OSXET("\074\163\157\057\076"), /* */ - OSXET("\074\163\151\057\076"), /* */ - OSXET("\074\144\154\145\057\076"), /* */ - OSXET("\074\144\143\061\057\076"), /* */ - OSXET("\074\144\143\062\057\076"), /* */ - OSXET("\074\144\143\063\057\076"), /* */ - OSXET("\074\144\143\064\057\076"), /* */ - OSXET("\074\156\141\153\057\076"), /* */ - OSXET("\074\163\171\156\057\076"), /* */ - OSXET("\074\145\164\142\057\076"), /* */ - OSXET("\074\143\141\156\057\076"), /* */ - OSXET("\074\145\155\057\076"), /* */ - OSXET("\074\163\165\142\057\076"), /* */ - OSXET("\074\145\163\143\057\076"), /* */ - OSXET("\074\151\163\064\057\076"), /* */ - OSXET("\074\151\163\063\057\076"), /* */ - OSXET("\074\151\163\062\057\076"), /* */ - OSXET("\074\151\163\061\057\076"), /* */ - { 0, 0 }, /* " " */ - { 0, 0 }, /* ! */ - { 0, 0 }, /* \" */ - { 0, 0 }, /* # */ - { 0, 0 }, /* $ */ - { 0, 0 }, /* % */ - OSXET("\046\141\155\160\073"), /* & */ - { 0, 0 }, /* ' */ - {0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0}, /* ()*+,-./ */ - {0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0}, /* 01234567 */ - {0,0},{0,0},{0,0},{0,0}, /* 89:; */ - OSXET("\046\154\164\073"), /* < */ - { 0, 0 }, /* = */ - OSXET("\046\147\164\073"), /* > */ -}; - -static int -OS__check_escaped_control_char(const void *buf, int size) { - size_t i; - /* - * Inefficient algorithm which translates the escape sequences - * defined above into characters. Returns -1 if not found. - * TODO: replace by a faster algorithm (bsearch(), hash or - * nested table lookups). - */ - for(i = 0; i < 32 /* Don't spend time on the bottom half */; i++) { - const struct OCTET_STRING__xer_escape_table_s *el; - el = &OCTET_STRING__xer_escape_table[i]; - if(el->size == size && memcmp(buf, el->string, size) == 0) - return i; - } - return -1; -} - -static int -OCTET_STRING__handle_control_chars(void *struct_ptr, const void *chunk_buf, size_t chunk_size) { - /* - * This might be one of the escape sequences - * for control characters. Check it out. - * #11.15.5 - */ - int control_char = OS__check_escaped_control_char(chunk_buf,chunk_size); - if(control_char >= 0) { - OCTET_STRING_t *st = (OCTET_STRING_t *)struct_ptr; - void *p = REALLOC(st->buf, st->size + 2); - if(p) { - st->buf = (uint8_t *)p; - st->buf[st->size++] = control_char; - st->buf[st->size] = '\0'; /* nul-termination */ - return 0; - } - } - - return -1; /* No, it's not */ -} - -asn_enc_rval_t -OCTET_STRING_encode_xer_utf8(const asn_TYPE_descriptor_t *td, const void *sptr, - int ilevel, enum xer_encoder_flags_e flags, - asn_app_consume_bytes_f *cb, void *app_key) { - const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; - asn_enc_rval_t er = { 0, 0, 0 }; - uint8_t *buf, *end; - uint8_t *ss; /* Sequence start */ - ssize_t encoded_len = 0; - - (void)ilevel; /* Unused argument */ - (void)flags; /* Unused argument */ - - if(!st || (!st->buf && st->size)) - ASN__ENCODE_FAILED; - - buf = st->buf; - end = buf + st->size; - for(ss = buf; buf < end; buf++) { - unsigned int ch = *buf; - int s_len; /* Special encoding sequence length */ - - /* - * Escape certain characters: X.680/11.15 - */ - if(ch < sizeof(OCTET_STRING__xer_escape_table) - /sizeof(OCTET_STRING__xer_escape_table[0]) - && (s_len = OCTET_STRING__xer_escape_table[ch].size)) { - if(((buf - ss) && cb(ss, buf - ss, app_key) < 0) - || cb(OCTET_STRING__xer_escape_table[ch].string, s_len, - app_key) < 0) - ASN__ENCODE_FAILED; - encoded_len += (buf - ss) + s_len; - ss = buf + 1; - } - } - - encoded_len += (buf - ss); - if((buf - ss) && cb(ss, buf - ss, app_key) < 0) - ASN__ENCODE_FAILED; - - er.encoded = encoded_len; - ASN__ENCODED_OK(er); -} - -/* - * Convert from hexadecimal format (cstring): "AB CD EF" - */ -static ssize_t OCTET_STRING__convert_hexadecimal(void *sptr, const void *chunk_buf, size_t chunk_size, int have_more) { - OCTET_STRING_t *st = (OCTET_STRING_t *)sptr; - const char *chunk_stop = (const char *)chunk_buf; - const char *p = chunk_stop; - const char *pend = p + chunk_size; - unsigned int clv = 0; - int half = 0; /* Half bit */ - uint8_t *buf; - - /* Reallocate buffer according to high cap estimation */ - size_t new_size = st->size + (chunk_size + 1) / 2; - void *nptr = REALLOC(st->buf, new_size + 1); - if(!nptr) return -1; - st->buf = (uint8_t *)nptr; - buf = st->buf + st->size; - - /* - * If something like " a b c " appears here, the " a b":3 will be - * converted, and the rest skipped. That is, unless buf_size is greater - * than chunk_size, then it'll be equivalent to "ABC0". - */ - for(; p < pend; p++) { - int ch = *(const unsigned char *)p; - switch(ch) { - case 0x09: case 0x0a: case 0x0c: case 0x0d: - case 0x20: - /* Ignore whitespace */ - continue; - case 0x30: case 0x31: case 0x32: case 0x33: case 0x34: /*01234*/ - case 0x35: case 0x36: case 0x37: case 0x38: case 0x39: /*56789*/ - clv = (clv << 4) + (ch - 0x30); - break; - case 0x41: case 0x42: case 0x43: /* ABC */ - case 0x44: case 0x45: case 0x46: /* DEF */ - clv = (clv << 4) + (ch - 0x41 + 10); - break; - case 0x61: case 0x62: case 0x63: /* abc */ - case 0x64: case 0x65: case 0x66: /* def */ - clv = (clv << 4) + (ch - 0x61 + 10); - break; - default: - *buf = 0; /* JIC */ - return -1; - } - if(half++) { - half = 0; - *buf++ = clv; - chunk_stop = p + 1; - } - } - - /* - * Check partial decoding. - */ - if(half) { - if(have_more) { - /* - * Partial specification is fine, - * because no more more PXER_TEXT data is available. - */ - *buf++ = clv << 4; - chunk_stop = p; - } - } else { - chunk_stop = p; - } - - st->size = buf - st->buf; /* Adjust the buffer size */ - assert(st->size <= new_size); - st->buf[st->size] = 0; /* Courtesy termination */ - - return (chunk_stop - (const char *)chunk_buf); /* Converted size */ -} - -/* - * Convert from binary format: "00101011101" - */ -static ssize_t OCTET_STRING__convert_binary(void *sptr, const void *chunk_buf, size_t chunk_size, int have_more) { - BIT_STRING_t *st = (BIT_STRING_t *)sptr; - const char *p = (const char *)chunk_buf; - const char *pend = p + chunk_size; - int bits_unused = st->bits_unused & 0x7; - uint8_t *buf; - - /* Reallocate buffer according to high cap estimation */ - size_t new_size = st->size + (chunk_size + 7) / 8; - void *nptr = REALLOC(st->buf, new_size + 1); - if(!nptr) return -1; - st->buf = (uint8_t *)nptr; - buf = st->buf + st->size; - - (void)have_more; - - if(bits_unused == 0) - bits_unused = 8; - else if(st->size) - buf--; - - /* - * Convert series of 0 and 1 into the octet string. - */ - for(; p < pend; p++) { - int ch = *(const unsigned char *)p; - switch(ch) { - case 0x09: case 0x0a: case 0x0c: case 0x0d: - case 0x20: - /* Ignore whitespace */ - break; - case 0x30: - case 0x31: - if(bits_unused-- <= 0) { - *++buf = 0; /* Clean the cell */ - bits_unused = 7; - } - *buf |= (ch&1) << bits_unused; - break; - default: - st->bits_unused = bits_unused; - return -1; - } - } - - if(bits_unused == 8) { - st->size = buf - st->buf; - st->bits_unused = 0; - } else { - st->size = buf - st->buf + 1; - st->bits_unused = bits_unused; - } - - assert(st->size <= new_size); - st->buf[st->size] = 0; /* Courtesy termination */ - - return chunk_size; /* Converted in full */ -} - -/* - * Something like strtod(), but with stricter rules. - */ -static int -OS__strtoent(int base, const char *buf, const char *end, int32_t *ret_value) { - const int32_t last_unicode_codepoint = 0x10ffff; - int32_t val = 0; - const char *p; - - for(p = buf; p < end; p++) { - int ch = *p; - - switch(ch) { - case 0x30: case 0x31: case 0x32: case 0x33: case 0x34: /*01234*/ - case 0x35: case 0x36: case 0x37: case 0x38: case 0x39: /*56789*/ - val = val * base + (ch - 0x30); - break; - case 0x41: case 0x42: case 0x43: /* ABC */ - case 0x44: case 0x45: case 0x46: /* DEF */ - val = val * base + (ch - 0x41 + 10); - break; - case 0x61: case 0x62: case 0x63: /* abc */ - case 0x64: case 0x65: case 0x66: /* def */ - val = val * base + (ch - 0x61 + 10); - break; - case 0x3b: /* ';' */ - *ret_value = val; - return (p - buf) + 1; - default: - return -1; /* Character set error */ - } - - /* Value exceeds the Unicode range. */ - if(val > last_unicode_codepoint) { - return -1; - } - } - - *ret_value = -1; - return (p - buf); -} - -/* - * Convert from the plain UTF-8 format, expanding entity references: "2 < 3" - */ -static ssize_t -OCTET_STRING__convert_entrefs(void *sptr, const void *chunk_buf, - size_t chunk_size, int have_more) { - OCTET_STRING_t *st = (OCTET_STRING_t *)sptr; - const char *p = (const char *)chunk_buf; - const char *pend = p + chunk_size; - uint8_t *buf; - - /* Reallocate buffer */ - size_t new_size = st->size + chunk_size; - void *nptr = REALLOC(st->buf, new_size + 1); - if(!nptr) return -1; - st->buf = (uint8_t *)nptr; - buf = st->buf + st->size; - - /* - * Convert series of 0 and 1 into the octet string. - */ - for(; p < pend; p++) { - int ch = *(const unsigned char *)p; - int len; /* Length of the rest of the chunk */ - - if(ch != 0x26 /* '&' */) { - *buf++ = ch; - continue; /* That was easy... */ - } - - /* - * Process entity reference. - */ - len = chunk_size - (p - (const char *)chunk_buf); - if(len == 1 /* "&" */) goto want_more; - if(p[1] == 0x23 /* '#' */) { - const char *pval; /* Pointer to start of digits */ - int32_t val = 0; /* Entity reference value */ - int base; - - if(len == 2 /* "&#" */) goto want_more; - if(p[2] == 0x78 /* 'x' */) - pval = p + 3, base = 16; - else - pval = p + 2, base = 10; - len = OS__strtoent(base, pval, p + len, &val); - if(len == -1) { - /* Invalid charset. Just copy verbatim. */ - *buf++ = ch; - continue; - } - if(!len || pval[len-1] != 0x3b) goto want_more; - assert(val > 0); - p += (pval - p) + len - 1; /* Advance past entref */ - - if(val < 0x80) { - *buf++ = (char)val; - } else if(val < 0x800) { - *buf++ = 0xc0 | ((val >> 6)); - *buf++ = 0x80 | ((val & 0x3f)); - } else if(val < 0x10000) { - *buf++ = 0xe0 | ((val >> 12)); - *buf++ = 0x80 | ((val >> 6) & 0x3f); - *buf++ = 0x80 | ((val & 0x3f)); - } else if(val < 0x200000) { - *buf++ = 0xf0 | ((val >> 18)); - *buf++ = 0x80 | ((val >> 12) & 0x3f); - *buf++ = 0x80 | ((val >> 6) & 0x3f); - *buf++ = 0x80 | ((val & 0x3f)); - } else if(val < 0x4000000) { - *buf++ = 0xf8 | ((val >> 24)); - *buf++ = 0x80 | ((val >> 18) & 0x3f); - *buf++ = 0x80 | ((val >> 12) & 0x3f); - *buf++ = 0x80 | ((val >> 6) & 0x3f); - *buf++ = 0x80 | ((val & 0x3f)); - } else { - *buf++ = 0xfc | ((val >> 30) & 0x1); - *buf++ = 0x80 | ((val >> 24) & 0x3f); - *buf++ = 0x80 | ((val >> 18) & 0x3f); - *buf++ = 0x80 | ((val >> 12) & 0x3f); - *buf++ = 0x80 | ((val >> 6) & 0x3f); - *buf++ = 0x80 | ((val & 0x3f)); - } - } else { - /* - * Ugly, limited parsing of & > < - */ - char *sc = (char *)memchr(p, 0x3b, len > 5 ? 5 : len); - if(!sc) goto want_more; - if((sc - p) == 4 - && p[1] == 0x61 /* 'a' */ - && p[2] == 0x6d /* 'm' */ - && p[3] == 0x70 /* 'p' */) { - *buf++ = 0x26; - p = sc; - continue; - } - if((sc - p) == 3) { - if(p[1] == 0x6c) { - *buf = 0x3c; /* '<' */ - } else if(p[1] == 0x67) { - *buf = 0x3e; /* '>' */ - } else { - /* Unsupported entity reference */ - *buf++ = ch; - continue; - } - if(p[2] != 0x74) { - /* Unsupported entity reference */ - *buf++ = ch; - continue; - } - buf++; - p = sc; - continue; - } - /* Unsupported entity reference */ - *buf++ = ch; - } - - continue; - want_more: - if(have_more) { - /* - * We know that no more data (of the same type) - * is coming. Copy the rest verbatim. - */ - *buf++ = ch; - continue; - } - chunk_size = (p - (const char *)chunk_buf); - /* Processing stalled: need more data */ - break; - } - - st->size = buf - st->buf; - assert(st->size <= new_size); - st->buf[st->size] = 0; /* Courtesy termination */ - - return chunk_size; /* Converted in full */ -} - -/* - * Decode OCTET STRING from the XML element's body. - */ -static asn_dec_rval_t -OCTET_STRING__decode_xer( - const asn_codec_ctx_t *opt_codec_ctx, const asn_TYPE_descriptor_t *td, - void **sptr, const char *opt_mname, const void *buf_ptr, size_t size, - int (*opt_unexpected_tag_decoder)(void *struct_ptr, const void *chunk_buf, - size_t chunk_size), - ssize_t (*body_receiver)(void *struct_ptr, const void *chunk_buf, - size_t chunk_size, int have_more)) { - OCTET_STRING_t *st = (OCTET_STRING_t *)*sptr; - const asn_OCTET_STRING_specifics_t *specs = td->specifics - ? (const asn_OCTET_STRING_specifics_t *)td->specifics - : &asn_SPC_OCTET_STRING_specs; - const char *xml_tag = opt_mname ? opt_mname : td->xml_tag; - asn_struct_ctx_t *ctx; /* Per-structure parser context */ - asn_dec_rval_t rval; /* Return value from the decoder */ - int st_allocated; - - /* - * Create the string if does not exist. - */ - if(!st) { - st = (OCTET_STRING_t *)CALLOC(1, specs->struct_size); - *sptr = (void *)st; - if(!st) goto sta_failed; - st_allocated = 1; - } else { - st_allocated = 0; - } - if(!st->buf) { - /* This is separate from above section */ - st->buf = (uint8_t *)CALLOC(1, 1); - if(!st->buf) { - if(st_allocated) { - *sptr = 0; - goto stb_failed; - } else { - goto sta_failed; - } - } - } - - /* Restore parsing context */ - ctx = (asn_struct_ctx_t *)(((char *)*sptr) + specs->ctx_offset); - - return xer_decode_general(opt_codec_ctx, ctx, *sptr, xml_tag, - buf_ptr, size, opt_unexpected_tag_decoder, body_receiver); - -stb_failed: - FREEMEM(st); -sta_failed: - rval.code = RC_FAIL; - rval.consumed = 0; - return rval; -} - -/* - * Decode OCTET STRING from the hexadecimal data. - */ -asn_dec_rval_t -OCTET_STRING_decode_xer_hex(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **sptr, - const char *opt_mname, const void *buf_ptr, - size_t size) { - return OCTET_STRING__decode_xer(opt_codec_ctx, td, sptr, opt_mname, - buf_ptr, size, 0, OCTET_STRING__convert_hexadecimal); -} - -/* - * Decode OCTET STRING from the binary (0/1) data. - */ -asn_dec_rval_t -OCTET_STRING_decode_xer_binary(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **sptr, - const char *opt_mname, const void *buf_ptr, - size_t size) { - return OCTET_STRING__decode_xer(opt_codec_ctx, td, sptr, opt_mname, - buf_ptr, size, 0, OCTET_STRING__convert_binary); -} - -/* - * Decode OCTET STRING from the string (ASCII/UTF-8) data. - */ -asn_dec_rval_t -OCTET_STRING_decode_xer_utf8(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **sptr, - const char *opt_mname, const void *buf_ptr, - size_t size) { - return OCTET_STRING__decode_xer(opt_codec_ctx, td, sptr, opt_mname, - buf_ptr, size, - OCTET_STRING__handle_control_chars, - OCTET_STRING__convert_entrefs); -} - -#ifndef ASN_DISABLE_PER_SUPPORT - -static int -OCTET_STRING_per_get_characters(asn_per_data_t *po, uint8_t *buf, - size_t units, unsigned int bpc, unsigned int unit_bits, - long lb, long ub, const asn_per_constraints_t *pc) { - uint8_t *end = buf + units * bpc; - - ASN_DEBUG("Expanding %d characters into (%ld..%ld):%d", - (int)units, lb, ub, unit_bits); - - /* X.691: 27.5.4 */ - if((unsigned long)ub <= ((unsigned long)2 << (unit_bits - 1))) { - /* Decode without translation */ - lb = 0; - } else if(pc && pc->code2value) { - if(unit_bits > 16) - return 1; /* FATAL: can't have constrained - * UniversalString with more than - * 16 million code points */ - for(; buf < end; buf += bpc) { - int value; - int code = per_get_few_bits(po, unit_bits); - if(code < 0) return -1; /* WMORE */ - value = pc->code2value(code); - if(value < 0) { - ASN_DEBUG("Code %d (0x%02x) is" - " not in map (%ld..%ld)", - code, code, lb, ub); - return 1; /* FATAL */ - } - switch(bpc) { - case 1: *buf = value; break; - case 2: buf[0] = value >> 8; buf[1] = value; break; - case 4: buf[0] = value >> 24; buf[1] = value >> 16; - buf[2] = value >> 8; buf[3] = value; break; - } - } - return 0; - } - - /* Shortcut the no-op copying to the aligned structure */ - if(lb == 0 && (unit_bits == 8 * bpc)) { - return per_get_many_bits(po, buf, 0, unit_bits * units); - } - - for(; buf < end; buf += bpc) { - int32_t code = per_get_few_bits(po, unit_bits); - int32_t ch = code + lb; - if(code < 0) return -1; /* WMORE */ - if(ch > ub) { - ASN_DEBUG("Code %d is out of range (%ld..%ld)", - ch, lb, ub); - return 1; /* FATAL */ - } - switch(bpc) { - case 1: *buf = ch; break; - case 2: buf[0] = ch >> 8; buf[1] = ch; break; - case 4: buf[0] = ch >> 24; buf[1] = ch >> 16; - buf[2] = ch >> 8; buf[3] = ch; break; - } - } - - return 0; -} - -static int -OCTET_STRING_per_put_characters(asn_per_outp_t *po, const uint8_t *buf, - size_t units, unsigned int bpc, unsigned int unit_bits, - long lb, long ub, const asn_per_constraints_t *pc) { - const uint8_t *end = buf + units * bpc; - - ASN_DEBUG("Squeezing %d characters into (%ld..%ld):%d (%d bpc)", - (int)units, lb, ub, unit_bits, bpc); - - /* X.691: 27.5.4 */ - if((unsigned long)ub <= ((unsigned long)2 << (unit_bits - 1))) { - /* Encode as is */ - lb = 0; - } else if(pc && pc->value2code) { - for(; buf < end; buf += bpc) { - int code; - uint32_t value; - switch(bpc) { - case 1: value = *(const uint8_t *)buf; break; - case 2: value = (buf[0] << 8) | buf[1]; break; - case 4: value = (buf[0] << 24) | (buf[1] << 16) - | (buf[2] << 8) | buf[3]; break; - default: return -1; - } - code = pc->value2code(value); - if(code < 0) { - ASN_DEBUG("Character %d (0x%02x) is" - " not in map (%ld..%ld)", - *buf, *buf, lb, ub); - return -1; - } - if(per_put_few_bits(po, code, unit_bits)) - return -1; - } - } - - /* Shortcut the no-op copying to the aligned structure */ - if(lb == 0 && (unit_bits == 8 * bpc)) { - return per_put_many_bits(po, buf, unit_bits * units); - } - - for(ub -= lb; buf < end; buf += bpc) { - int ch; - uint32_t value; - switch(bpc) { - case 1: - value = *(const uint8_t *)buf; - break; - case 2: - value = (buf[0] << 8) | buf[1]; - break; - case 4: - value = (buf[0] << 24) | (buf[1] << 16) | (buf[2] << 8) | buf[3]; - break; - default: - return -1; - } - ch = value - lb; - if(ch < 0 || ch > ub) { - ASN_DEBUG("Character %d (0x%02x) is out of range (%ld..%ld)", *buf, - value, lb, ub + lb); - return -1; - } - if(per_put_few_bits(po, ch, unit_bits)) return -1; - } - - return 0; -} - -static asn_per_constraints_t asn_DEF_OCTET_STRING_constraints = { - { APC_CONSTRAINED, 8, 8, 0, 255 }, - { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 }, - 0, 0 -}; - -asn_dec_rval_t -OCTET_STRING_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, - asn_per_data_t *pd) { - const asn_OCTET_STRING_specifics_t *specs = td->specifics - ? (const asn_OCTET_STRING_specifics_t *)td->specifics - : &asn_SPC_OCTET_STRING_specs; - const asn_per_constraints_t *pc = - constraints ? constraints : td->encoding_constraints.per_constraints; - const asn_per_constraint_t *cval; - const asn_per_constraint_t *csiz; - asn_dec_rval_t rval = { RC_OK, 0 }; - OCTET_STRING_t *st = (OCTET_STRING_t *)*sptr; - ssize_t consumed_myself = 0; - int repeat; - enum { - OS__BPC_CHAR = 1, - OS__BPC_U16 = 2, - OS__BPC_U32 = 4 - } bpc; /* Bytes per character */ - unsigned int unit_bits; - unsigned int canonical_unit_bits; - - (void)opt_codec_ctx; - - if(pc) { - cval = &pc->value; - csiz = &pc->size; - } else { - cval = &asn_DEF_OCTET_STRING_constraints.value; - csiz = &asn_DEF_OCTET_STRING_constraints.size; - } - - switch(specs->subvariant) { - default: - case ASN_OSUBV_ANY: - case ASN_OSUBV_BIT: - ASN_DEBUG("Unrecognized subvariant %d", specs->subvariant); - RETURN(RC_FAIL); - break; - case ASN_OSUBV_STR: - canonical_unit_bits = unit_bits = 8; - if(cval->flags & APC_CONSTRAINED) - unit_bits = cval->range_bits; - bpc = OS__BPC_CHAR; - break; - case ASN_OSUBV_U16: - canonical_unit_bits = unit_bits = 16; - if(cval->flags & APC_CONSTRAINED) - unit_bits = cval->range_bits; - bpc = OS__BPC_U16; - break; - case ASN_OSUBV_U32: - canonical_unit_bits = unit_bits = 32; - if(cval->flags & APC_CONSTRAINED) - unit_bits = cval->range_bits; - bpc = OS__BPC_U32; - break; - } - - /* - * Allocate the string. - */ - if(!st) { - st = (OCTET_STRING_t *)(*sptr = CALLOC(1, specs->struct_size)); - if(!st) RETURN(RC_FAIL); - } - - ASN_DEBUG("PER Decoding %s size %ld .. %ld bits %d", - csiz->flags & APC_EXTENSIBLE ? "extensible" : "non-extensible", - csiz->lower_bound, csiz->upper_bound, csiz->effective_bits); - - if(csiz->flags & APC_EXTENSIBLE) { - int inext = per_get_few_bits(pd, 1); - if(inext < 0) RETURN(RC_WMORE); - if(inext) { - csiz = &asn_DEF_OCTET_STRING_constraints.size; - unit_bits = canonical_unit_bits; - } - } - - if(csiz->effective_bits >= 0) { - FREEMEM(st->buf); - if(bpc) { - st->size = csiz->upper_bound * bpc; - } else { - st->size = (csiz->upper_bound + 7) >> 3; - } - st->buf = (uint8_t *)MALLOC(st->size + 1); - if(!st->buf) { st->size = 0; RETURN(RC_FAIL); } - } - - /* X.691, #16.5: zero-length encoding */ - /* X.691, #16.6: short fixed length encoding (up to 2 octets) */ - /* X.691, #16.7: long fixed length encoding (up to 64K octets) */ - if(csiz->effective_bits == 0) { - int ret; - if(bpc) { - ASN_DEBUG("Encoding OCTET STRING size %ld", - csiz->upper_bound); - ret = OCTET_STRING_per_get_characters(pd, st->buf, - csiz->upper_bound, bpc, unit_bits, - cval->lower_bound, cval->upper_bound, pc); - if(ret > 0) RETURN(RC_FAIL); - } else { - ASN_DEBUG("Encoding BIT STRING size %ld", - csiz->upper_bound); - ret = per_get_many_bits(pd, st->buf, 0, - unit_bits * csiz->upper_bound); - } - if(ret < 0) RETURN(RC_WMORE); - consumed_myself += unit_bits * csiz->upper_bound; - st->buf[st->size] = 0; - RETURN(RC_OK); - } - - st->size = 0; - do { - ssize_t raw_len; - ssize_t len_bytes; - void *p; - int ret; - - /* Get the PER length */ - raw_len = uper_get_length(pd, csiz->effective_bits, csiz->lower_bound, - &repeat); - if(raw_len < 0) RETURN(RC_WMORE); - if(raw_len == 0 && st->buf) break; - - ASN_DEBUG("Got PER length eb %ld, len %ld, %s (%s)", - (long)csiz->effective_bits, (long)raw_len, - repeat ? "repeat" : "once", td->name); - len_bytes = raw_len * bpc; - p = REALLOC(st->buf, st->size + len_bytes + 1); - if(!p) RETURN(RC_FAIL); - st->buf = (uint8_t *)p; - - ret = OCTET_STRING_per_get_characters(pd, &st->buf[st->size], raw_len, - bpc, unit_bits, cval->lower_bound, - cval->upper_bound, pc); - if(ret > 0) RETURN(RC_FAIL); - if(ret < 0) RETURN(RC_WMORE); - st->size += len_bytes; - } while(repeat); - st->buf[st->size] = 0; /* nul-terminate */ - - return rval; -} - -asn_enc_rval_t -OCTET_STRING_encode_uper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_per_outp_t *po) { - const asn_OCTET_STRING_specifics_t *specs = td->specifics - ? (const asn_OCTET_STRING_specifics_t *)td->specifics - : &asn_SPC_OCTET_STRING_specs; - const asn_per_constraints_t *pc = constraints ? constraints - : td->encoding_constraints.per_constraints; - const asn_per_constraint_t *cval; - const asn_per_constraint_t *csiz; - const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; - asn_enc_rval_t er = { 0, 0, 0 }; - int inext = 0; /* Lies not within extension root */ - unsigned int unit_bits; - unsigned int canonical_unit_bits; - size_t size_in_units; - const uint8_t *buf; - int ret; - enum { - OS__BPC_CHAR = 1, - OS__BPC_U16 = 2, - OS__BPC_U32 = 4 - } bpc; /* Bytes per character */ - int ct_extensible; - - if(!st || (!st->buf && st->size)) - ASN__ENCODE_FAILED; - - if(pc) { - cval = &pc->value; - csiz = &pc->size; - } else { - cval = &asn_DEF_OCTET_STRING_constraints.value; - csiz = &asn_DEF_OCTET_STRING_constraints.size; - } - ct_extensible = csiz->flags & APC_EXTENSIBLE; - - switch(specs->subvariant) { - default: - case ASN_OSUBV_ANY: - case ASN_OSUBV_BIT: - ASN__ENCODE_FAILED; - case ASN_OSUBV_STR: - canonical_unit_bits = unit_bits = 8; - if(cval->flags & APC_CONSTRAINED) - unit_bits = cval->range_bits; - bpc = OS__BPC_CHAR; - size_in_units = st->size; - break; - case ASN_OSUBV_U16: - canonical_unit_bits = unit_bits = 16; - if(cval->flags & APC_CONSTRAINED) - unit_bits = cval->range_bits; - bpc = OS__BPC_U16; - size_in_units = st->size >> 1; - if(st->size & 1) { - ASN_DEBUG("%s string size is not modulo 2", td->name); - ASN__ENCODE_FAILED; - } - break; - case ASN_OSUBV_U32: - canonical_unit_bits = unit_bits = 32; - if(cval->flags & APC_CONSTRAINED) - unit_bits = cval->range_bits; - bpc = OS__BPC_U32; - size_in_units = st->size >> 2; - if(st->size & 3) { - ASN_DEBUG("%s string size is not modulo 4", td->name); - ASN__ENCODE_FAILED; - } - break; - } - - ASN_DEBUG("Encoding %s into %" ASN_PRI_SIZE " units of %d bits" - " (%ld..%ld, effective %d)%s", - td->name, size_in_units, unit_bits, - csiz->lower_bound, csiz->upper_bound, - csiz->effective_bits, ct_extensible ? " EXT" : ""); - - /* Figure out whether size lies within PER visible constraint */ - - if(csiz->effective_bits >= 0) { - if((ssize_t)size_in_units < csiz->lower_bound - || (ssize_t)size_in_units > csiz->upper_bound) { - if(ct_extensible) { - csiz = &asn_DEF_OCTET_STRING_constraints.size; - unit_bits = canonical_unit_bits; - inext = 1; - } else { - ASN__ENCODE_FAILED; - } - } - } else { - inext = 0; - } - - if(ct_extensible) { - /* Declare whether length is [not] within extension root */ - if(per_put_few_bits(po, inext, 1)) - ASN__ENCODE_FAILED; - } - - if(csiz->effective_bits >= 0 && !inext) { - ASN_DEBUG("Encoding %" ASN_PRI_SIZE " bytes (%ld), length in %d bits", st->size, - size_in_units - csiz->lower_bound, csiz->effective_bits); - ret = per_put_few_bits(po, size_in_units - csiz->lower_bound, - csiz->effective_bits); - if(ret) ASN__ENCODE_FAILED; - ret = OCTET_STRING_per_put_characters(po, st->buf, size_in_units, bpc, - unit_bits, cval->lower_bound, - cval->upper_bound, pc); - if(ret) ASN__ENCODE_FAILED; - ASN__ENCODED_OK(er); - } - - ASN_DEBUG("Encoding %" ASN_PRI_SIZE " bytes", st->size); - - buf = st->buf; - ASN_DEBUG("Encoding %" ASN_PRI_SIZE " in units", size_in_units); - do { - int need_eom = 0; - ssize_t may_save = uper_put_length(po, size_in_units, &need_eom); - if(may_save < 0) ASN__ENCODE_FAILED; - - ASN_DEBUG("Encoding %" ASN_PRI_SSIZE " of %" ASN_PRI_SIZE "%s", may_save, size_in_units, - need_eom ? ",+EOM" : ""); - - ret = OCTET_STRING_per_put_characters(po, buf, may_save, bpc, unit_bits, - cval->lower_bound, - cval->upper_bound, pc); - if(ret) ASN__ENCODE_FAILED; - - buf += may_save * bpc; - size_in_units -= may_save; - assert(!(may_save & 0x07) || !size_in_units); - if(need_eom && uper_put_length(po, 0, 0)) - ASN__ENCODE_FAILED; /* End of Message length */ - } while(size_in_units); - - ASN__ENCODED_OK(er); -} - -asn_dec_rval_t -OCTET_STRING_decode_aper(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - void **sptr, asn_per_data_t *pd) { - - const asn_OCTET_STRING_specifics_t *specs = td->specifics - ? (const asn_OCTET_STRING_specifics_t *)td->specifics - : &asn_SPC_OCTET_STRING_specs; - const asn_per_constraints_t *pc = constraints ? constraints - : td->encoding_constraints.per_constraints; - const asn_per_constraint_t *cval; - const asn_per_constraint_t *csiz; - asn_dec_rval_t rval = { RC_OK, 0 }; - BIT_STRING_t *st = (BIT_STRING_t *)*sptr; - ssize_t consumed_myself = 0; - int repeat; - enum { - OS__BPC_BIT = 0, - OS__BPC_CHAR = 1, - OS__BPC_U16 = 2, - OS__BPC_U32 = 4 - } bpc; /* Bytes per character */ - unsigned int unit_bits; - unsigned int canonical_unit_bits; - - (void)opt_codec_ctx; - - if(pc) { - cval = &pc->value; - csiz = &pc->size; - } else { - cval = &asn_DEF_OCTET_STRING_constraints.value; - csiz = &asn_DEF_OCTET_STRING_constraints.size; - } - - switch(specs->subvariant) { - default: -/* case ASN_OSUBV_ANY: - ASN_DEBUG("Unrecognized subvariant %d", specs->subvariant); - RETURN(RC_FAIL); -*/ - case ASN_OSUBV_BIT: - canonical_unit_bits = unit_bits = 1; - bpc = OS__BPC_BIT; - break; - case ASN_OSUBV_ANY: - case ASN_OSUBV_STR: - canonical_unit_bits = unit_bits = 8; -/* if(cval->flags & APC_CONSTRAINED) - unit_bits = cval->range_bits; -*/ - bpc = OS__BPC_CHAR; - break; - case ASN_OSUBV_U16: - canonical_unit_bits = unit_bits = 16; - if(cval->flags & APC_CONSTRAINED) - unit_bits = cval->range_bits; - bpc = OS__BPC_U16; - break; - case ASN_OSUBV_U32: - canonical_unit_bits = unit_bits = 32; - if(cval->flags & APC_CONSTRAINED) - unit_bits = cval->range_bits; - bpc = OS__BPC_U32; - break; - } - - /* - * Allocate the string. - */ - if(!st) { - st = (BIT_STRING_t *)(*sptr = CALLOC(1, specs->struct_size)); - if(!st) RETURN(RC_FAIL); - } - - ASN_DEBUG("PER Decoding %s size %ld .. %ld bits %d", - csiz->flags & APC_EXTENSIBLE ? "extensible" : "non-extensible", - csiz->lower_bound, csiz->upper_bound, csiz->effective_bits); - - if(csiz->flags & APC_EXTENSIBLE) { - int inext = per_get_few_bits(pd, 1); - if(inext < 0) RETURN(RC_WMORE); - if(inext) { - csiz = &asn_DEF_OCTET_STRING_constraints.size; - cval = &asn_DEF_OCTET_STRING_constraints.value; - unit_bits = canonical_unit_bits; - } - } - - if(csiz->effective_bits >= 0) { - FREEMEM(st->buf); - if(bpc) { - st->size = csiz->upper_bound * bpc; - } else { - st->size = (csiz->upper_bound + 7) >> 3; - } - st->buf = (uint8_t *)MALLOC(st->size + 1); - if(!st->buf) { st->size = 0; RETURN(RC_FAIL); } - } - - /* X.691, #16.5: zero-length encoding */ - /* X.691, #16.6: short fixed length encoding (up to 2 octets) */ - /* X.691, #16.7: long fixed length encoding (up to 64K octets) */ - if(csiz->effective_bits == 0) { - int ret; - if (st->size > 2) { /* X.691 #16 NOTE 1 */ - if (aper_get_align(pd) < 0) - RETURN(RC_FAIL); - } - if(bpc) { - ASN_DEBUG("Decoding OCTET STRING size %ld", - csiz->upper_bound); - ret = OCTET_STRING_per_get_characters(pd, st->buf, - csiz->upper_bound, bpc, unit_bits, - cval->lower_bound, cval->upper_bound, pc); - if(ret > 0) RETURN(RC_FAIL); - } else { - ASN_DEBUG("Decoding BIT STRING size %ld", - csiz->upper_bound); - ret = per_get_many_bits(pd, st->buf, 0, - unit_bits * csiz->upper_bound); - } - if(ret < 0) RETURN(RC_WMORE); - consumed_myself += unit_bits * csiz->upper_bound; - st->buf[st->size] = 0; - if(bpc == 0) { - int ubs = (csiz->upper_bound & 0x7); - st->bits_unused = ubs ? 8 - ubs : 0; - } - RETURN(RC_OK); - } - - st->size = 0; - do { - ssize_t raw_len; - ssize_t len_bytes; - ssize_t len_bits; - void *p; - int ret; - - /* Get the PER length */ - if (csiz->upper_bound - csiz->lower_bound == 0) - /* Indefinite length case */ - raw_len = aper_get_length(pd, -1, csiz->effective_bits, &repeat); - else - raw_len = aper_get_length(pd, csiz->upper_bound - csiz->lower_bound + 1, csiz->effective_bits, &repeat); - repeat = 0; - if(raw_len < 0) RETURN(RC_WMORE); - raw_len += csiz->lower_bound; - - ASN_DEBUG("Got PER length eb %ld, len %ld, %s (%s)", - (long)csiz->effective_bits, (long)raw_len, - repeat ? "repeat" : "once", td->name); - - if (raw_len > 2) { /* X.691 #16 NOTE 1 */ - if (aper_get_align(pd) < 0) - RETURN(RC_FAIL); - } - - if(bpc) { - len_bytes = raw_len * bpc; - len_bits = len_bytes * unit_bits; - } else { - len_bits = raw_len; - len_bytes = (len_bits + 7) >> 3; - if(len_bits & 0x7) - st->bits_unused = 8 - (len_bits & 0x7); - /* len_bits be multiple of 16K if repeat is set */ - } - p = REALLOC(st->buf, st->size + len_bytes + 1); - if(!p) RETURN(RC_FAIL); - st->buf = (uint8_t *)p; - - if(bpc) { - ret = OCTET_STRING_per_get_characters(pd, - &st->buf[st->size], raw_len, bpc, unit_bits, - cval->lower_bound, cval->upper_bound, pc); - if(ret > 0) RETURN(RC_FAIL); - } else { - ret = per_get_many_bits(pd, &st->buf[st->size], - 0, len_bits); - } - if(ret < 0) RETURN(RC_WMORE); - st->size += len_bytes; - } while(repeat); - st->buf[st->size] = 0; /* nul-terminate */ - - return rval; -} - -asn_enc_rval_t -OCTET_STRING_encode_aper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_per_outp_t *po) { - - const asn_OCTET_STRING_specifics_t *specs = td->specifics - ? (const asn_OCTET_STRING_specifics_t *)td->specifics - : &asn_SPC_OCTET_STRING_specs; - const asn_per_constraints_t *pc = constraints ? constraints - : td->encoding_constraints.per_constraints; - const asn_per_constraint_t *cval; - const asn_per_constraint_t *csiz; - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - asn_enc_rval_t er = { 0, 0, 0 }; - int inext = 0; /* Lies not within extension root */ - unsigned int unit_bits; - unsigned int canonical_unit_bits; - unsigned int sizeinunits; - const uint8_t *buf; - int ret; - enum { - OS__BPC_BIT = 0, - OS__BPC_CHAR = 1, - OS__BPC_U16 = 2, - OS__BPC_U32 = 4 - } bpc; /* Bytes per character */ - int ct_extensible; - - if(!st || (!st->buf && st->size)) - ASN__ENCODE_FAILED; - - if(pc) { - cval = &pc->value; - csiz = &pc->size; - } else { - cval = &asn_DEF_OCTET_STRING_constraints.value; - csiz = &asn_DEF_OCTET_STRING_constraints.size; - } - ct_extensible = csiz->flags & APC_EXTENSIBLE; - - switch(specs->subvariant) { - default: - /* case ASN_OSUBV_ANY: - ASN__ENCODE_FAILED; - */ - case ASN_OSUBV_BIT: - canonical_unit_bits = unit_bits = 1; - bpc = OS__BPC_BIT; - sizeinunits = st->size * 8 - (st->bits_unused & 0x07); - ASN_DEBUG("BIT STRING of %d bytes", - sizeinunits); - break; - case ASN_OSUBV_ANY: - case ASN_OSUBV_STR: - canonical_unit_bits = unit_bits = 8; -/* if(cval->flags & APC_CONSTRAINED) - unit_bits = 8; -*/ - bpc = OS__BPC_CHAR; - sizeinunits = st->size; - break; - case ASN_OSUBV_U16: - canonical_unit_bits = unit_bits = 16; - if(cval->flags & APC_CONSTRAINED) - unit_bits = cval->range_bits; - bpc = OS__BPC_U16; - sizeinunits = st->size / 2; - break; - case ASN_OSUBV_U32: - canonical_unit_bits = unit_bits = 32; - if(cval->flags & APC_CONSTRAINED) - unit_bits = cval->range_bits; - bpc = OS__BPC_U32; - sizeinunits = st->size / 4; - break; - } - - ASN_DEBUG("Encoding %s into %d units of %d bits" - " (%ld..%ld, effective %d)%s", - td->name, sizeinunits, unit_bits, - csiz->lower_bound, csiz->upper_bound, - csiz->effective_bits, ct_extensible ? " EXT" : ""); - - /* Figure out wheter size lies within PER visible constraint */ - - if(csiz->effective_bits >= 0) { - if((int)sizeinunits < csiz->lower_bound - || (int)sizeinunits > csiz->upper_bound) { - if(ct_extensible) { - cval = &asn_DEF_OCTET_STRING_constraints.value; - csiz = &asn_DEF_OCTET_STRING_constraints.size; - unit_bits = canonical_unit_bits; - inext = 1; - } else - ASN__ENCODE_FAILED; - } - } else { - inext = 0; - } - - - if(ct_extensible) { - /* Declare whether length is [not] within extension root */ - if(per_put_few_bits(po, inext, 1)) - ASN__ENCODE_FAILED; - } - - /* X.691, #16.5: zero-length encoding */ - /* X.691, #16.6: short fixed length encoding (up to 2 octets) */ - /* X.691, #16.7: long fixed length encoding (up to 64K octets) */ - if(csiz->effective_bits >= 0) { - ASN_DEBUG("Encoding %lu bytes (%ld), length in %d bits", - st->size, sizeinunits - csiz->lower_bound, - csiz->effective_bits); - if (csiz->effective_bits > 0) { - ret = aper_put_length(po, csiz->upper_bound - csiz->lower_bound + 1, sizeinunits - csiz->lower_bound); - if(ret) ASN__ENCODE_FAILED; - } - if (st->size > 2) { /* X.691 #16 NOTE 1 */ - if (aper_put_align(po) < 0) - ASN__ENCODE_FAILED; - } - if(bpc) { - ret = OCTET_STRING_per_put_characters(po, st->buf, - sizeinunits, bpc, unit_bits, - cval->lower_bound, cval->upper_bound, pc); - } else { - ret = per_put_many_bits(po, st->buf, - sizeinunits * unit_bits); - } - if(ret) ASN__ENCODE_FAILED; - ASN__ENCODED_OK(er); - } - - ASN_DEBUG("Encoding %lu bytes", st->size); - - if(sizeinunits == 0) { - if(aper_put_length(po, -1, 0)) - ASN__ENCODE_FAILED; - ASN__ENCODED_OK(er); - } - - buf = st->buf; - while(sizeinunits) { - ssize_t maySave = aper_put_length(po, -1, sizeinunits); - - if(maySave < 0) ASN__ENCODE_FAILED; - - ASN_DEBUG("Encoding %ld of %ld", - (long)maySave, (long)sizeinunits); - - if(bpc) { - ret = OCTET_STRING_per_put_characters(po, buf, - maySave, bpc, unit_bits, - cval->lower_bound, cval->upper_bound, pc); - } else { - ret = per_put_many_bits(po, buf, maySave * unit_bits); - } - if(ret) ASN__ENCODE_FAILED; - - if(bpc) - buf += maySave * bpc; - else - buf += maySave >> 3; - sizeinunits -= maySave; - assert(!(maySave & 0x07) || !sizeinunits); - } - - ASN__ENCODED_OK(er); -} - -#endif /* ASN_DISABLE_PER_SUPPORT */ - -int -OCTET_STRING_print(const asn_TYPE_descriptor_t *td, const void *sptr, - int ilevel, asn_app_consume_bytes_f *cb, void *app_key) { - const char * const h2c = "0123456789ABCDEF"; - const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; - char scratch[16 * 3 + 4]; - char *p = scratch; - uint8_t *buf; - uint8_t *end; - size_t i; - - (void)td; /* Unused argument */ - - if(!st || (!st->buf && st->size)) - return (cb("", 8, app_key) < 0) ? -1 : 0; - - /* - * Dump the contents of the buffer in hexadecimal. - */ - buf = st->buf; - end = buf + st->size; - for(i = 0; buf < end; buf++, i++) { - if(!(i % 16) && (i || st->size > 16)) { - if(cb(scratch, p - scratch, app_key) < 0) - return -1; - _i_INDENT(1); - p = scratch; - } - *p++ = h2c[(*buf >> 4) & 0x0F]; - *p++ = h2c[*buf & 0x0F]; - *p++ = 0x20; - } - - if(p > scratch) { - p--; /* Remove the tail space */ - if(cb(scratch, p - scratch, app_key) < 0) - return -1; - } - - return 0; -} - -int -OCTET_STRING_print_utf8(const asn_TYPE_descriptor_t *td, const void *sptr, - int ilevel, asn_app_consume_bytes_f *cb, - void *app_key) { - const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; - - (void)td; /* Unused argument */ - (void)ilevel; /* Unused argument */ - - if(st && (st->buf || !st->size)) { - return (cb(st->buf, st->size, app_key) < 0) ? -1 : 0; - } else { - return (cb("", 8, app_key) < 0) ? -1 : 0; - } -} - -void -OCTET_STRING_free(const asn_TYPE_descriptor_t *td, void *sptr, - enum asn_struct_free_method method) { - OCTET_STRING_t *st = (OCTET_STRING_t *)sptr; - const asn_OCTET_STRING_specifics_t *specs; - asn_struct_ctx_t *ctx; - struct _stack *stck; - - if(!td || !st) - return; - - specs = td->specifics - ? (const asn_OCTET_STRING_specifics_t *)td->specifics - : &asn_SPC_OCTET_STRING_specs; - ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset); - - ASN_DEBUG("Freeing %s as OCTET STRING", td->name); - - if(st->buf) { - FREEMEM(st->buf); - st->buf = 0; - } - - /* - * Remove decode-time stack. - */ - stck = (struct _stack *)ctx->ptr; - if(stck) { - while(stck->tail) { - struct _stack_el *sel = stck->tail; - stck->tail = sel->prev; - FREEMEM(sel); - } - FREEMEM(stck); - } - - switch(method) { - case ASFM_FREE_EVERYTHING: - FREEMEM(sptr); - break; - case ASFM_FREE_UNDERLYING: - break; - case ASFM_FREE_UNDERLYING_AND_RESET: - memset(sptr, 0, - td->specifics - ? ((const asn_OCTET_STRING_specifics_t *)(td->specifics)) - ->struct_size - : sizeof(OCTET_STRING_t)); - break; - } -} - -/* - * Conversion routines. - */ -int -OCTET_STRING_fromBuf(OCTET_STRING_t *st, const char *str, int len) { - void *buf; - - if(st == 0 || (str == 0 && len)) { - errno = EINVAL; - return -1; - } - - /* - * Clear the OCTET STRING. - */ - if(str == NULL) { - FREEMEM(st->buf); - st->buf = 0; - st->size = 0; - return 0; - } - - /* Determine the original string size, if not explicitly given */ - if(len < 0) - len = strlen(str); - - /* Allocate and fill the memory */ - buf = MALLOC(len + 1); - if(buf == NULL) - return -1; - - memcpy(buf, str, len); - ((uint8_t *)buf)[len] = '\0'; /* Couldn't use memcpy(len+1)! */ - FREEMEM(st->buf); - st->buf = (uint8_t *)buf; - st->size = len; - - return 0; -} - -OCTET_STRING_t * -OCTET_STRING_new_fromBuf(const asn_TYPE_descriptor_t *td, const char *str, - int len) { - const asn_OCTET_STRING_specifics_t *specs = - td->specifics ? (const asn_OCTET_STRING_specifics_t *)td->specifics - : &asn_SPC_OCTET_STRING_specs; - OCTET_STRING_t *st; - - st = (OCTET_STRING_t *)CALLOC(1, specs->struct_size); - if(st && str && OCTET_STRING_fromBuf(st, str, len)) { - FREEMEM(st); - st = NULL; - } - - return st; -} - -/* - * Lexicographically compare the common prefix of both strings, - * and if it is the same return -1 for the smallest string. - */ -int -OCTET_STRING_compare(const asn_TYPE_descriptor_t *td, const void *aptr, - const void *bptr) { - const asn_OCTET_STRING_specifics_t *specs = td->specifics; - const OCTET_STRING_t *a = aptr; - const OCTET_STRING_t *b = bptr; - - assert(!specs || specs->subvariant != ASN_OSUBV_BIT); - - if(a && b) { - size_t common_prefix_size = a->size <= b->size ? a->size : b->size; - int ret = memcmp(a->buf, b->buf, common_prefix_size); - if(ret == 0) { - /* Figure out which string with equal prefixes is longer. */ - if(a->size < b->size) { - return -1; - } else if(a->size > b->size) { - return 1; - } else { - return 0; - } - } else { - return ret < 0 ? -1 : 1; - } - } else if(!a && !b) { - return 0; - } else if(!a) { - return -1; - } else { - return 1; - } - -} - -/* - * Biased function for randomizing character values around their limits. - */ -static uint32_t -OCTET_STRING__random_char(unsigned long lb, unsigned long ub) { - assert(lb <= ub); - switch(asn_random_between(0, 16)) { - case 0: - if(lb < ub) return lb + 1; - /* Fall through */ - case 1: - return lb; - case 2: - if(lb < ub) return ub - 1; - /* Fall through */ - case 3: - return ub; - default: - return asn_random_between(lb, ub); - } -} - - -size_t -OCTET_STRING_random_length_constrained( - const asn_TYPE_descriptor_t *td, - const asn_encoding_constraints_t *constraints, size_t max_length) { - const unsigned lengths[] = {0, 1, 2, 3, 4, 8, - 126, 127, 128, 16383, 16384, 16385, - 65534, 65535, 65536, 65537}; - size_t rnd_len; - - /* Figure out how far we should go */ - rnd_len = lengths[asn_random_between( - 0, sizeof(lengths) / sizeof(lengths[0]) - 1)]; - - if(!constraints || !constraints->per_constraints) - constraints = &td->encoding_constraints; - if(constraints->per_constraints) { - const asn_per_constraint_t *pc = &constraints->per_constraints->size; - if(pc->flags & APC_CONSTRAINED) { - long suggested_upper_bound = pc->upper_bound < (ssize_t)max_length - ? pc->upper_bound - : (ssize_t)max_length; - if(max_length <= (size_t)pc->lower_bound) { - return pc->lower_bound; - } - if(pc->flags & APC_EXTENSIBLE) { - switch(asn_random_between(0, 5)) { - case 0: - if(pc->lower_bound > 0) { - rnd_len = pc->lower_bound - 1; - break; - } - /* Fall through */ - case 1: - rnd_len = pc->upper_bound + 1; - break; - case 2: - /* Keep rnd_len from the table */ - if(rnd_len <= max_length) { - break; - } - /* Fall through */ - default: - rnd_len = asn_random_between(pc->lower_bound, - suggested_upper_bound); - } - } else { - rnd_len = - asn_random_between(pc->lower_bound, suggested_upper_bound); - } - } else { - rnd_len = asn_random_between(0, max_length); - } - } else if(rnd_len > max_length) { - rnd_len = asn_random_between(0, max_length); - } - - return rnd_len; -} - -asn_random_fill_result_t -OCTET_STRING_random_fill(const asn_TYPE_descriptor_t *td, void **sptr, - const asn_encoding_constraints_t *constraints, - size_t max_length) { - const asn_OCTET_STRING_specifics_t *specs = td->specifics - ? (const asn_OCTET_STRING_specifics_t *)td->specifics - : &asn_SPC_OCTET_STRING_specs; - asn_random_fill_result_t result_ok = {ARFILL_OK, 1}; - asn_random_fill_result_t result_failed = {ARFILL_FAILED, 0}; - asn_random_fill_result_t result_skipped = {ARFILL_SKIPPED, 0}; - unsigned int unit_bytes = 1; - unsigned long clb = 0; /* Lower bound on char */ - unsigned long cub = 255; /* Higher bound on char value */ - uint8_t *buf; - uint8_t *bend; - uint8_t *b; - size_t rnd_len; - OCTET_STRING_t *st; - - if(max_length == 0 && !*sptr) return result_skipped; - - switch(specs->subvariant) { - default: - case ASN_OSUBV_ANY: - return result_failed; - case ASN_OSUBV_BIT: - /* Handled by BIT_STRING itself. */ - return result_failed; - case ASN_OSUBV_STR: - unit_bytes = 1; - clb = 0; - cub = 255; - break; - case ASN_OSUBV_U16: - unit_bytes = 2; - clb = 0; - cub = 65535; - break; - case ASN_OSUBV_U32: - unit_bytes = 4; - clb = 0; - cub = 0x10FFFF; - break; - } - - if(!constraints || !constraints->per_constraints) - constraints = &td->encoding_constraints; - if(constraints->per_constraints) { - const asn_per_constraint_t *pc = &constraints->per_constraints->value; - if(pc->flags & APC_SEMI_CONSTRAINED) { - clb = pc->lower_bound; - } else if(pc->flags & APC_CONSTRAINED) { - clb = pc->lower_bound; - cub = pc->upper_bound; - } - } - - rnd_len = - OCTET_STRING_random_length_constrained(td, constraints, max_length); - - buf = CALLOC(unit_bytes, rnd_len + 1); - if(!buf) return result_failed; - - bend = &buf[unit_bytes * rnd_len]; - - switch(unit_bytes) { - case 1: - for(b = buf; b < bend; b += unit_bytes) { - *(uint8_t *)b = OCTET_STRING__random_char(clb, cub); - } - *(uint8_t *)b = 0; - break; - case 2: - for(b = buf; b < bend; b += unit_bytes) { - uint32_t code = OCTET_STRING__random_char(clb, cub); - b[0] = code >> 8; - b[1] = code; - } - *(uint16_t *)b = 0; - break; - case 4: - for(b = buf; b < bend; b += unit_bytes) { - uint32_t code = OCTET_STRING__random_char(clb, cub); - b[0] = code >> 24; - b[1] = code >> 16; - b[2] = code >> 8; - b[3] = code; - } - *(uint32_t *)b = 0; - break; - } - - if(*sptr) { - st = *sptr; - FREEMEM(st->buf); - } else { - st = (OCTET_STRING_t *)(*sptr = CALLOC(1, specs->struct_size)); - if(!st) { - FREEMEM(buf); - return result_failed; - } - } - - st->buf = buf; - st->size = unit_bytes * rnd_len; - - result_ok.length = st->size; - return result_ok; -} diff --git a/e2sim/previous/ASN1c/OCTET_STRING.h b/e2sim/previous/ASN1c/OCTET_STRING.h deleted file mode 100644 index d3ca46e..0000000 --- a/e2sim/previous/ASN1c/OCTET_STRING.h +++ /dev/null @@ -1,120 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/*- - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef _OCTET_STRING_H_ -#define _OCTET_STRING_H_ - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct OCTET_STRING { - uint8_t *buf; /* Buffer with consecutive OCTET_STRING bits */ - size_t size; /* Size of the buffer */ - - asn_struct_ctx_t _asn_ctx; /* Parsing across buffer boundaries */ -} OCTET_STRING_t; - -extern asn_TYPE_descriptor_t asn_DEF_OCTET_STRING; -extern asn_TYPE_operation_t asn_OP_OCTET_STRING; - -asn_struct_free_f OCTET_STRING_free; -asn_struct_print_f OCTET_STRING_print; -asn_struct_print_f OCTET_STRING_print_utf8; -asn_struct_compare_f OCTET_STRING_compare; -ber_type_decoder_f OCTET_STRING_decode_ber; -der_type_encoder_f OCTET_STRING_encode_der; -xer_type_decoder_f OCTET_STRING_decode_xer_hex; /* Hexadecimal */ -xer_type_decoder_f OCTET_STRING_decode_xer_binary; /* 01010111010 */ -xer_type_decoder_f OCTET_STRING_decode_xer_utf8; /* ASCII/UTF-8 */ -xer_type_encoder_f OCTET_STRING_encode_xer; -xer_type_encoder_f OCTET_STRING_encode_xer_utf8; -oer_type_decoder_f OCTET_STRING_decode_oer; -oer_type_encoder_f OCTET_STRING_encode_oer; -per_type_decoder_f OCTET_STRING_decode_uper; -per_type_encoder_f OCTET_STRING_encode_uper; -per_type_decoder_f OCTET_STRING_decode_aper; -per_type_encoder_f OCTET_STRING_encode_aper; -asn_random_fill_f OCTET_STRING_random_fill; - -#define OCTET_STRING_constraint asn_generic_no_constraint -#define OCTET_STRING_decode_xer OCTET_STRING_decode_xer_hex - -/****************************** - * Handy conversion routines. * - ******************************/ - -/* - * This function clears the previous value of the OCTET STRING (if any) - * and then allocates a new memory with the specified content (str/size). - * If size = -1, the size of the original string will be determined - * using strlen(str). - * If str equals to NULL, the function will silently clear the - * current contents of the OCTET STRING. - * Returns 0 if it was possible to perform operation, -1 otherwise. - */ -int OCTET_STRING_fromBuf(OCTET_STRING_t *s, const char *str, int size); - -/* Handy conversion from the C string into the OCTET STRING. */ -#define OCTET_STRING_fromString(s, str) OCTET_STRING_fromBuf(s, str, -1) - -/* - * Allocate and fill the new OCTET STRING and return a pointer to the newly - * allocated object. NULL is permitted in str: the function will just allocate - * empty OCTET STRING. - */ -OCTET_STRING_t *OCTET_STRING_new_fromBuf(const asn_TYPE_descriptor_t *td, - const char *str, int size); - -/**************************** - * Internally useful stuff. * - ****************************/ - -typedef struct asn_OCTET_STRING_specifics_s { - /* - * Target structure description. - */ - unsigned struct_size; /* Size of the structure */ - unsigned ctx_offset; /* Offset of the asn_struct_ctx_t member */ - - enum asn_OS_Subvariant { - ASN_OSUBV_ANY, /* The open type (ANY) */ - ASN_OSUBV_BIT, /* BIT STRING */ - ASN_OSUBV_STR, /* String types, not {BMP,Universal}String */ - ASN_OSUBV_U16, /* 16-bit character (BMPString) */ - ASN_OSUBV_U32 /* 32-bit character (UniversalString) */ - } subvariant; -} asn_OCTET_STRING_specifics_t; - -extern asn_OCTET_STRING_specifics_t asn_SPC_OCTET_STRING_specs; - -size_t OCTET_STRING_random_length_constrained( - const asn_TYPE_descriptor_t *, const asn_encoding_constraints_t *, - size_t max_length); - -#ifdef __cplusplus -} -#endif - -#endif /* _OCTET_STRING_H_ */ diff --git a/e2sim/previous/ASN1c/OPEN_TYPE.c b/e2sim/previous/ASN1c/OPEN_TYPE.c deleted file mode 100644 index c569c32..0000000 --- a/e2sim/previous/ASN1c/OPEN_TYPE.c +++ /dev/null @@ -1,527 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Copyright (c) 2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include -#include -#include - -asn_TYPE_operation_t asn_OP_OPEN_TYPE = { - OPEN_TYPE_free, - OPEN_TYPE_print, - OPEN_TYPE_compare, - OPEN_TYPE_decode_ber, - OPEN_TYPE_encode_der, - OPEN_TYPE_decode_xer, - OPEN_TYPE_encode_xer, -#ifdef ASN_DISABLE_OER_SUPPORT - 0, 0, /* No OER support, use "-gen-OER" to enable */ -#else - OPEN_TYPE_decode_oer, - OPEN_TYPE_encode_oer, -#endif -#ifdef ASN_DISABLE_PER_SUPPORT - 0, 0, 0, 0, -#else - OPEN_TYPE_decode_uper, - OPEN_TYPE_encode_uper, - OPEN_TYPE_decode_aper, - OPEN_TYPE_encode_aper, -#endif - 0, /* Random fill is not supported for open type */ - 0 /* Use generic outmost tag fetcher */ -}; - -#undef ADVANCE -#define ADVANCE(num_bytes) \ - do { \ - size_t num = num_bytes; \ - ptr = ((const char *)ptr) + num; \ - size -= num; \ - consumed_myself += num; \ - } while(0) - -asn_dec_rval_t -OPEN_TYPE_ber_get(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void *sptr, - const asn_TYPE_member_t *elm, const void *ptr, size_t size) { - size_t consumed_myself = 0; - asn_type_selector_result_t selected; - void *memb_ptr; /* Pointer to the member */ - void **memb_ptr2; /* Pointer to that pointer */ - void *inner_value; - asn_dec_rval_t rv; - - if(!(elm->flags & ATF_OPEN_TYPE)) { - ASN__DECODE_FAILED; - } - - if(!elm->type_selector) { - ASN_DEBUG("Type selector is not defined for Open Type %s->%s->%s", - td->name, elm->name, elm->type->name); - ASN__DECODE_FAILED; - } - - selected = elm->type_selector(td, sptr); - if(!selected.presence_index) { - ASN__DECODE_FAILED; - } - - /* Fetch the pointer to this member */ - if(elm->flags & ATF_POINTER) { - memb_ptr2 = (void **)((char *)sptr + elm->memb_offset); - } else { - memb_ptr = (char *)sptr + elm->memb_offset; - memb_ptr2 = &memb_ptr; - } - if(*memb_ptr2 != NULL) { - /* Make sure we reset the structure first before encoding */ - if(CHOICE_variant_set_presence(elm->type, *memb_ptr2, 0) != 0) { - ASN__DECODE_FAILED; - } - } - - inner_value = - (char *)*memb_ptr2 - + elm->type->elements[selected.presence_index - 1].memb_offset; - - ASN_DEBUG("presence %d\n", selected.presence_index); - - rv = selected.type_descriptor->op->ber_decoder( - opt_codec_ctx, selected.type_descriptor, &inner_value, ptr, size, - elm->tag_mode); - ADVANCE(rv.consumed); - rv.consumed = 0; - switch(rv.code) { - case RC_OK: - if(CHOICE_variant_set_presence(elm->type, *memb_ptr2, - selected.presence_index) - == 0) { - rv.code = RC_OK; - rv.consumed = consumed_myself; - return rv; - } else { - /* Oh, now a full-blown failure failure */ - } - /* Fall through */ - case RC_FAIL: - rv.consumed = consumed_myself; - /* Fall through */ - case RC_WMORE: - break; - } - - if(*memb_ptr2) { - if(elm->flags & ATF_POINTER) { - ASN_STRUCT_FREE(*selected.type_descriptor, inner_value); - *memb_ptr2 = NULL; - } else { - ASN_STRUCT_RESET(*selected.type_descriptor, - inner_value); - } - } - return rv; -} - -asn_dec_rval_t -OPEN_TYPE_xer_get(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void *sptr, - const asn_TYPE_member_t *elm, const void *ptr, size_t size) { - size_t consumed_myself = 0; - asn_type_selector_result_t selected; - void *memb_ptr; /* Pointer to the member */ - void **memb_ptr2; /* Pointer to that pointer */ - void *inner_value; - asn_dec_rval_t rv; - - int xer_context = 0; - ssize_t ch_size; - pxer_chunk_type_e ch_type; - - if(!(elm->flags & ATF_OPEN_TYPE)) { - ASN__DECODE_FAILED; - } - - if(!elm->type_selector) { - ASN_DEBUG("Type selector is not defined for Open Type %s->%s->%s", - td->name, elm->name, elm->type->name); - ASN__DECODE_FAILED; - } - - selected = elm->type_selector(td, sptr); - if(!selected.presence_index) { - ASN__DECODE_FAILED; - } - - /* Fetch the pointer to this member */ - assert(elm->flags == ATF_OPEN_TYPE); - if(elm->flags & ATF_POINTER) { - memb_ptr2 = (void **)((char *)sptr + elm->memb_offset); - } else { - memb_ptr = (char *)sptr + elm->memb_offset; - memb_ptr2 = &memb_ptr; - } - if(*memb_ptr2 != NULL) { - /* Make sure we reset the structure first before encoding */ - if(CHOICE_variant_set_presence(elm->type, *memb_ptr2, 0) - != 0) { - ASN__DECODE_FAILED; - } - } - - /* - * Confirm wrapper. - */ - for(;;) { - ch_size = xer_next_token(&xer_context, ptr, size, &ch_type); - if(ch_size < 0) { - ASN__DECODE_FAILED; - } else { - switch(ch_type) { - case PXER_WMORE: - ASN__DECODE_STARVED; - case PXER_COMMENT: - case PXER_TEXT: - ADVANCE(ch_size); - continue; - case PXER_TAG: - break; - } - break; - } - } - - /* - * Wrapper value confirmed. - */ - switch(xer_check_tag(ptr, ch_size, elm->name)) { - case XCT_OPENING: - ADVANCE(ch_size); - break; - case XCT_BROKEN: - default: - ASN__DECODE_FAILED; - } - - inner_value = - (char *)*memb_ptr2 - + elm->type->elements[selected.presence_index - 1].memb_offset; - - rv = selected.type_descriptor->op->xer_decoder( - opt_codec_ctx, selected.type_descriptor, &inner_value, NULL, ptr, size); - ADVANCE(rv.consumed); - rv.consumed = 0; - switch(rv.code) { - case RC_OK: - if(CHOICE_variant_set_presence(elm->type, *memb_ptr2, - selected.presence_index) - == 0) { - break; - } else { - rv.code = RC_FAIL; - } - /* Fall through */ - case RC_FAIL: - /* Point to a best position where failure occurred */ - rv.consumed = consumed_myself; - /* Fall through */ - case RC_WMORE: - /* Wrt. rv.consumed==0: - * In case a genuine RC_WMORE, the whole Open Type decoding - * will have to be restarted. - */ - if(*memb_ptr2) { - if(elm->flags & ATF_POINTER) { - ASN_STRUCT_FREE(*selected.type_descriptor, inner_value); - *memb_ptr2 = NULL; - } else { - ASN_STRUCT_RESET(*selected.type_descriptor, - inner_value); - } - } - return rv; - } - - /* - * Finalize wrapper. - */ - for(;;) { - ch_size = xer_next_token(&xer_context, ptr, size, &ch_type); - if(ch_size < 0) { - ASN__DECODE_FAILED; - } else { - switch(ch_type) { - case PXER_WMORE: - ASN__DECODE_STARVED; - case PXER_COMMENT: - case PXER_TEXT: - ADVANCE(ch_size); - continue; - case PXER_TAG: - break; - } - break; - } - } - - /* - * Wrapper value confirmed. - */ - switch(xer_check_tag(ptr, ch_size, elm->name)) { - case XCT_CLOSING: - ADVANCE(ch_size); - break; - case XCT_BROKEN: - default: - ASN__DECODE_FAILED; - } - - rv.consumed += consumed_myself; - - return rv; -} - - -#ifndef ASN_DISABLE_PER_SUPPORT - -asn_dec_rval_t -OPEN_TYPE_uper_get(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void *sptr, - const asn_TYPE_member_t *elm, asn_per_data_t *pd) { - asn_type_selector_result_t selected; - void *memb_ptr; /* Pointer to the member */ - void **memb_ptr2; /* Pointer to that pointer */ - void *inner_value; - asn_dec_rval_t rv; - - if(!(elm->flags & ATF_OPEN_TYPE)) { - ASN__DECODE_FAILED; - } - - if(!elm->type_selector) { - ASN_DEBUG("Type selector is not defined for Open Type %s->%s->%s", - td->name, elm->name, elm->type->name); - ASN__DECODE_FAILED; - } - - selected = elm->type_selector(td, sptr); - if(!selected.presence_index) { - ASN__DECODE_FAILED; - } - - /* Fetch the pointer to this member */ - assert(elm->flags == ATF_OPEN_TYPE); - if(elm->flags & ATF_POINTER) { - memb_ptr2 = (void **)((char *)sptr + elm->memb_offset); - } else { - memb_ptr = (char *)sptr + elm->memb_offset; - memb_ptr2 = &memb_ptr; - } - if(*memb_ptr2 != NULL) { - /* Make sure we reset the structure first before encoding */ - if(CHOICE_variant_set_presence(elm->type, *memb_ptr2, 0) - != 0) { - ASN__DECODE_FAILED; - } - } - - inner_value = - (char *)*memb_ptr2 - + elm->type->elements[selected.presence_index - 1].memb_offset; - - rv = uper_open_type_get(opt_codec_ctx, selected.type_descriptor, NULL, - &inner_value, pd); - switch(rv.code) { - case RC_OK: - if(CHOICE_variant_set_presence(elm->type, *memb_ptr2, - selected.presence_index) - == 0) { - break; - } else { - rv.code = RC_FAIL; - } - /* Fall through */ - case RC_WMORE: - case RC_FAIL: - if(*memb_ptr2) { - if(elm->flags & ATF_POINTER) { - ASN_STRUCT_FREE(*selected.type_descriptor, inner_value); - *memb_ptr2 = NULL; - } else { - ASN_STRUCT_RESET(*selected.type_descriptor, - inner_value); - } - } - } - return rv; -} - -asn_enc_rval_t -OPEN_TYPE_encode_uper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_per_outp_t *po) { - const void *memb_ptr; /* Pointer to the member */ - asn_TYPE_member_t *elm; /* CHOICE's element */ - asn_enc_rval_t er = {0,0,0}; - unsigned present; - - (void)constraints; - - present = CHOICE_variant_get_presence(td, sptr); - if(present == 0 || present > td->elements_count) { - ASN__ENCODE_FAILED; - } else { - present--; - } - - ASN_DEBUG("Encoding %s OPEN TYPE element %d", td->name, present); - - elm = &td->elements[present]; - if(elm->flags & ATF_POINTER) { - /* Member is a pointer to another structure */ - memb_ptr = - *(const void *const *)((const char *)sptr + elm->memb_offset); - if(!memb_ptr) ASN__ENCODE_FAILED; - } else { - memb_ptr = (const char *)sptr + elm->memb_offset; - } - - if(uper_open_type_put(elm->type, NULL, memb_ptr, po) < 0) { - ASN__ENCODE_FAILED; - } - - er.encoded = 0; - ASN__ENCODED_OK(er); -} - -asn_dec_rval_t -OPEN_TYPE_aper_get(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void *sptr, - const asn_TYPE_member_t *elm, asn_per_data_t *pd) { - asn_type_selector_result_t selected; - void *memb_ptr; /* Pointer to the member */ - void **memb_ptr2; /* Pointer to that pointer */ - void *inner_value; - asn_dec_rval_t rv; - - if(!(elm->flags & ATF_OPEN_TYPE)) { - ASN__DECODE_FAILED; - } - - if(!elm->type_selector) { - ASN_DEBUG("Type selector is not defined for Open Type %s->%s->%s", - td->name, elm->name, elm->type->name); - ASN__DECODE_FAILED; - } - - selected = elm->type_selector(td, sptr); - if(!selected.presence_index) { - ASN__DECODE_FAILED; - } - - /* Fetch the pointer to this member */ - assert(elm->flags == ATF_OPEN_TYPE); - if(elm->flags & ATF_POINTER) { - memb_ptr2 = (void **)((char *)sptr + elm->memb_offset); - } else { - memb_ptr = (char *)sptr + elm->memb_offset; - memb_ptr2 = &memb_ptr; - } - if(*memb_ptr2 != NULL) { - /* Make sure we reset the structure first before encoding */ - if(CHOICE_variant_set_presence(elm->type, *memb_ptr2, 0) - != 0) { - ASN__DECODE_FAILED; - } - } - - inner_value = - (char *)*memb_ptr2 - + elm->type->elements[selected.presence_index - 1].memb_offset; - - rv = aper_open_type_get(opt_codec_ctx, selected.type_descriptor, NULL, - &inner_value, pd); - switch(rv.code) { - case RC_OK: - if(CHOICE_variant_set_presence(elm->type, *memb_ptr2, - selected.presence_index) - == 0) { - break; - } else { - rv.code = RC_FAIL; - } - /* Fall through */ - case RC_WMORE: - case RC_FAIL: - if(*memb_ptr2) { - if(elm->flags & ATF_POINTER) { - ASN_STRUCT_FREE(*selected.type_descriptor, inner_value); - *memb_ptr2 = NULL; - } else { - ASN_STRUCT_RESET(*selected.type_descriptor, - inner_value); - } - } - } - return rv; -} - -asn_enc_rval_t -OPEN_TYPE_encode_aper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_per_outp_t *po) { - const void *memb_ptr; /* Pointer to the member */ - asn_TYPE_member_t *elm; /* CHOICE's element */ - asn_enc_rval_t er = {0,0,0}; - unsigned present; - - (void)constraints; - - present = CHOICE_variant_get_presence(td, sptr); - if(present == 0 || present > td->elements_count) { - ASN__ENCODE_FAILED; - } else { - present--; - } - - ASN_DEBUG("Encoding %s OPEN TYPE element %d", td->name, present); - - elm = &td->elements[present]; - if(elm->flags & ATF_POINTER) { - /* Member is a pointer to another structure */ - memb_ptr = - *(const void *const *)((const char *)sptr + elm->memb_offset); - if(!memb_ptr) ASN__ENCODE_FAILED; - } else { - memb_ptr = (const char *)sptr + elm->memb_offset; - } - - if(aper_open_type_put(elm->type, NULL, memb_ptr, po) < 0) { - ASN__ENCODE_FAILED; - } - - er.encoded = 0; - ASN__ENCODED_OK(er); -} - -#endif /* ASN_DISABLE_PER_SUPPORT */ diff --git a/e2sim/previous/ASN1c/OPEN_TYPE.h b/e2sim/previous/ASN1c/OPEN_TYPE.h deleted file mode 100644 index 4a8b4e0..0000000 --- a/e2sim/previous/ASN1c/OPEN_TYPE.h +++ /dev/null @@ -1,95 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/*- - * Copyright (c) 2017-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef ASN_OPEN_TYPE_H -#define ASN_OPEN_TYPE_H - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -#define OPEN_TYPE_free CHOICE_free -#define OPEN_TYPE_print CHOICE_print -#define OPEN_TYPE_compare CHOICE_compare -#define OPEN_TYPE_constraint CHOICE_constraint -#define OPEN_TYPE_decode_ber NULL -#define OPEN_TYPE_encode_der CHOICE_encode_der -#define OPEN_TYPE_decode_xer NULL -#define OPEN_TYPE_encode_xer CHOICE_encode_xer -#define OPEN_TYPE_decode_oer NULL -#define OPEN_TYPE_encode_oer CHOICE_encode_oer -#define OPEN_TYPE_decode_uper NULL -#define OPEN_TYPE_decode_aper NULL - -extern asn_TYPE_operation_t asn_OP_OPEN_TYPE; - -/* - * Decode an Open Type which is potentially constraiend - * by the other members of the parent structure. - */ -asn_dec_rval_t OPEN_TYPE_ber_get(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *parent_type, - void *parent_structure, - const asn_TYPE_member_t *element, - const void *ptr, size_t size); - -asn_dec_rval_t OPEN_TYPE_xer_get(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *parent_type, - void *parent_structure, - const asn_TYPE_member_t *element, - const void *ptr, size_t size); - -asn_dec_rval_t OPEN_TYPE_oer_get(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *parent_type, - void *parent_structure, - asn_TYPE_member_t *element, const void *ptr, - size_t size); - -asn_dec_rval_t OPEN_TYPE_uper_get(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *parent_type, - void *parent_structure, - const asn_TYPE_member_t *element, - asn_per_data_t *pd); - -asn_dec_rval_t OPEN_TYPE_aper_get(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *parent_type, - void *parent_structure, - const asn_TYPE_member_t *element, - asn_per_data_t *pd); - -asn_enc_rval_t OPEN_TYPE_encode_uper( - const asn_TYPE_descriptor_t *type_descriptor, - const asn_per_constraints_t *constraints, const void *struct_ptr, - asn_per_outp_t *per_output); - -asn_enc_rval_t OPEN_TYPE_encode_aper( - const asn_TYPE_descriptor_t *type_descriptor, - const asn_per_constraints_t *constraints, const void *struct_ptr, - asn_per_outp_t *per_output); - -#ifdef __cplusplus -} -#endif - -#endif /* ASN_OPEN_TYPE_H */ diff --git a/e2sim/previous/ASN1c/OffsetOfNbiotChannelNumberToEARFCN.c b/e2sim/previous/ASN1c/OffsetOfNbiotChannelNumberToEARFCN.c deleted file mode 100644 index dd3c180..0000000 --- a/e2sim/previous/ASN1c/OffsetOfNbiotChannelNumberToEARFCN.c +++ /dev/null @@ -1,111 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "OffsetOfNbiotChannelNumberToEARFCN.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_OffsetOfNbiotChannelNumberToEARFCN_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 5, 5, 0, 20 } /* (0..20,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_OffsetOfNbiotChannelNumberToEARFCN_value2enum_1[] = { - { 0, 8, "minusTen" }, - { 1, 9, "minusNine" }, - { 2, 10, "minusEight" }, - { 3, 10, "minusSeven" }, - { 4, 8, "minusSix" }, - { 5, 9, "minusFive" }, - { 6, 9, "minusFour" }, - { 7, 10, "minusThree" }, - { 8, 8, "minusTwo" }, - { 9, 8, "minusOne" }, - { 10, 16, "minusZeroDotFive" }, - { 11, 4, "zero" }, - { 12, 3, "one" }, - { 13, 3, "two" }, - { 14, 5, "three" }, - { 15, 4, "four" }, - { 16, 4, "five" }, - { 17, 3, "six" }, - { 18, 5, "seven" }, - { 19, 5, "eight" }, - { 20, 4, "nine" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_OffsetOfNbiotChannelNumberToEARFCN_enum2value_1[] = { - 19, /* eight(19) */ - 16, /* five(16) */ - 15, /* four(15) */ - 2, /* minusEight(2) */ - 5, /* minusFive(5) */ - 6, /* minusFour(6) */ - 1, /* minusNine(1) */ - 9, /* minusOne(9) */ - 3, /* minusSeven(3) */ - 4, /* minusSix(4) */ - 0, /* minusTen(0) */ - 7, /* minusThree(7) */ - 8, /* minusTwo(8) */ - 10, /* minusZeroDotFive(10) */ - 20, /* nine(20) */ - 12, /* one(12) */ - 18, /* seven(18) */ - 17, /* six(17) */ - 14, /* three(14) */ - 13, /* two(13) */ - 11 /* zero(11) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_OffsetOfNbiotChannelNumberToEARFCN_specs_1 = { - asn_MAP_OffsetOfNbiotChannelNumberToEARFCN_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_OffsetOfNbiotChannelNumberToEARFCN_enum2value_1, /* N => "tag"; sorted by N */ - 21, /* Number of elements in the maps */ - 22, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_OffsetOfNbiotChannelNumberToEARFCN_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_OffsetOfNbiotChannelNumberToEARFCN = { - "OffsetOfNbiotChannelNumberToEARFCN", - "OffsetOfNbiotChannelNumberToEARFCN", - &asn_OP_NativeEnumerated, - asn_DEF_OffsetOfNbiotChannelNumberToEARFCN_tags_1, - sizeof(asn_DEF_OffsetOfNbiotChannelNumberToEARFCN_tags_1) - /sizeof(asn_DEF_OffsetOfNbiotChannelNumberToEARFCN_tags_1[0]), /* 1 */ - asn_DEF_OffsetOfNbiotChannelNumberToEARFCN_tags_1, /* Same as above */ - sizeof(asn_DEF_OffsetOfNbiotChannelNumberToEARFCN_tags_1) - /sizeof(asn_DEF_OffsetOfNbiotChannelNumberToEARFCN_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_OffsetOfNbiotChannelNumberToEARFCN_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_OffsetOfNbiotChannelNumberToEARFCN_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/OffsetOfNbiotChannelNumberToEARFCN.h b/e2sim/previous/ASN1c/OffsetOfNbiotChannelNumberToEARFCN.h deleted file mode 100644 index e374aea..0000000 --- a/e2sim/previous/ASN1c/OffsetOfNbiotChannelNumberToEARFCN.h +++ /dev/null @@ -1,91 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _OffsetOfNbiotChannelNumberToEARFCN_H_ -#define _OffsetOfNbiotChannelNumberToEARFCN_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum OffsetOfNbiotChannelNumberToEARFCN { - OffsetOfNbiotChannelNumberToEARFCN_minusTen = 0, - OffsetOfNbiotChannelNumberToEARFCN_minusNine = 1, - OffsetOfNbiotChannelNumberToEARFCN_minusEight = 2, - OffsetOfNbiotChannelNumberToEARFCN_minusSeven = 3, - OffsetOfNbiotChannelNumberToEARFCN_minusSix = 4, - OffsetOfNbiotChannelNumberToEARFCN_minusFive = 5, - OffsetOfNbiotChannelNumberToEARFCN_minusFour = 6, - OffsetOfNbiotChannelNumberToEARFCN_minusThree = 7, - OffsetOfNbiotChannelNumberToEARFCN_minusTwo = 8, - OffsetOfNbiotChannelNumberToEARFCN_minusOne = 9, - OffsetOfNbiotChannelNumberToEARFCN_minusZeroDotFive = 10, - OffsetOfNbiotChannelNumberToEARFCN_zero = 11, - OffsetOfNbiotChannelNumberToEARFCN_one = 12, - OffsetOfNbiotChannelNumberToEARFCN_two = 13, - OffsetOfNbiotChannelNumberToEARFCN_three = 14, - OffsetOfNbiotChannelNumberToEARFCN_four = 15, - OffsetOfNbiotChannelNumberToEARFCN_five = 16, - OffsetOfNbiotChannelNumberToEARFCN_six = 17, - OffsetOfNbiotChannelNumberToEARFCN_seven = 18, - OffsetOfNbiotChannelNumberToEARFCN_eight = 19, - OffsetOfNbiotChannelNumberToEARFCN_nine = 20 - /* - * Enumeration is extensible - */ -} e_OffsetOfNbiotChannelNumberToEARFCN; - -/* OffsetOfNbiotChannelNumberToEARFCN */ -typedef long OffsetOfNbiotChannelNumberToEARFCN_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_OffsetOfNbiotChannelNumberToEARFCN_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_OffsetOfNbiotChannelNumberToEARFCN; -extern const asn_INTEGER_specifics_t asn_SPC_OffsetOfNbiotChannelNumberToEARFCN_specs_1; -asn_struct_free_f OffsetOfNbiotChannelNumberToEARFCN_free; -asn_struct_print_f OffsetOfNbiotChannelNumberToEARFCN_print; -asn_constr_check_f OffsetOfNbiotChannelNumberToEARFCN_constraint; -ber_type_decoder_f OffsetOfNbiotChannelNumberToEARFCN_decode_ber; -der_type_encoder_f OffsetOfNbiotChannelNumberToEARFCN_encode_der; -xer_type_decoder_f OffsetOfNbiotChannelNumberToEARFCN_decode_xer; -xer_type_encoder_f OffsetOfNbiotChannelNumberToEARFCN_encode_xer; -per_type_decoder_f OffsetOfNbiotChannelNumberToEARFCN_decode_uper; -per_type_encoder_f OffsetOfNbiotChannelNumberToEARFCN_encode_uper; -per_type_decoder_f OffsetOfNbiotChannelNumberToEARFCN_decode_aper; -per_type_encoder_f OffsetOfNbiotChannelNumberToEARFCN_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _OffsetOfNbiotChannelNumberToEARFCN_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/Old-ECGIs.c b/e2sim/previous/ASN1c/Old-ECGIs.c deleted file mode 100644 index 216d390..0000000 --- a/e2sim/previous/ASN1c/Old-ECGIs.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "Old-ECGIs.h" - -#include "ECGI.h" -static asn_per_constraints_t asn_PER_type_Old_ECGIs_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 8, 8, 1, 256 } /* (SIZE(1..256)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_Old_ECGIs_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ECGI, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_Old_ECGIs_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_Old_ECGIs_specs_1 = { - sizeof(struct Old_ECGIs), - offsetof(struct Old_ECGIs, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_Old_ECGIs = { - "Old-ECGIs", - "Old-ECGIs", - &asn_OP_SEQUENCE_OF, - asn_DEF_Old_ECGIs_tags_1, - sizeof(asn_DEF_Old_ECGIs_tags_1) - /sizeof(asn_DEF_Old_ECGIs_tags_1[0]), /* 1 */ - asn_DEF_Old_ECGIs_tags_1, /* Same as above */ - sizeof(asn_DEF_Old_ECGIs_tags_1) - /sizeof(asn_DEF_Old_ECGIs_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_Old_ECGIs_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_Old_ECGIs_1, - 1, /* Single element */ - &asn_SPC_Old_ECGIs_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/Old-ECGIs.h b/e2sim/previous/ASN1c/Old-ECGIs.h deleted file mode 100644 index cb4b327..0000000 --- a/e2sim/previous/ASN1c/Old-ECGIs.h +++ /dev/null @@ -1,59 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _Old_ECGIs_H_ -#define _Old_ECGIs_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ECGI; - -/* Old-ECGIs */ -typedef struct Old_ECGIs { - A_SEQUENCE_OF(struct ECGI) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} Old_ECGIs_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_Old_ECGIs; - -#ifdef __cplusplus -} -#endif - -#endif /* _Old_ECGIs_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/Oneframe.c b/e2sim/previous/ASN1c/Oneframe.c deleted file mode 100644 index ce00f55..0000000 --- a/e2sim/previous/ASN1c/Oneframe.c +++ /dev/null @@ -1,85 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "Oneframe.h" - -int -Oneframe_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if(st->size > 0) { - /* Size in bits */ - size = 8 * st->size - (st->bits_unused & 0x07); - } else { - size = 0; - } - - if((size == 6)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using BIT_STRING, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_Oneframe_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 0, 0, 6, 6 } /* (SIZE(6..6)) */, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_Oneframe_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_Oneframe = { - "Oneframe", - "Oneframe", - &asn_OP_BIT_STRING, - asn_DEF_Oneframe_tags_1, - sizeof(asn_DEF_Oneframe_tags_1) - /sizeof(asn_DEF_Oneframe_tags_1[0]), /* 1 */ - asn_DEF_Oneframe_tags_1, /* Same as above */ - sizeof(asn_DEF_Oneframe_tags_1) - /sizeof(asn_DEF_Oneframe_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_Oneframe_constr_1, Oneframe_constraint }, - 0, 0, /* No members */ - &asn_SPC_BIT_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/Oneframe.h b/e2sim/previous/ASN1c/Oneframe.h deleted file mode 100644 index e18bf75..0000000 --- a/e2sim/previous/ASN1c/Oneframe.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _Oneframe_H_ -#define _Oneframe_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "BIT_STRING.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Oneframe */ -typedef BIT_STRING_t Oneframe_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_Oneframe_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_Oneframe; -asn_struct_free_f Oneframe_free; -asn_struct_print_f Oneframe_print; -asn_constr_check_f Oneframe_constraint; -ber_type_decoder_f Oneframe_decode_ber; -der_type_encoder_f Oneframe_encode_der; -xer_type_decoder_f Oneframe_decode_xer; -xer_type_encoder_f Oneframe_encode_xer; -per_type_decoder_f Oneframe_decode_uper; -per_type_encoder_f Oneframe_encode_uper; -per_type_decoder_f Oneframe_decode_aper; -per_type_encoder_f Oneframe_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _Oneframe_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/PA-Values.c b/e2sim/previous/ASN1c/PA-Values.c deleted file mode 100644 index 898ff52..0000000 --- a/e2sim/previous/ASN1c/PA-Values.c +++ /dev/null @@ -1,85 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "PA-Values.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_PA_Values_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 7 } /* (0..7,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_PA_Values_value2enum_1[] = { - { 0, 4, "dB-6" }, - { 1, 9, "dB-4dot77" }, - { 2, 4, "dB-3" }, - { 3, 9, "dB-1dot77" }, - { 4, 3, "dB0" }, - { 5, 3, "dB1" }, - { 6, 3, "dB2" }, - { 7, 3, "dB3" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_PA_Values_enum2value_1[] = { - 3, /* dB-1dot77(3) */ - 2, /* dB-3(2) */ - 1, /* dB-4dot77(1) */ - 0, /* dB-6(0) */ - 4, /* dB0(4) */ - 5, /* dB1(5) */ - 6, /* dB2(6) */ - 7 /* dB3(7) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_PA_Values_specs_1 = { - asn_MAP_PA_Values_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_PA_Values_enum2value_1, /* N => "tag"; sorted by N */ - 8, /* Number of elements in the maps */ - 9, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_PA_Values_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_PA_Values = { - "PA-Values", - "PA-Values", - &asn_OP_NativeEnumerated, - asn_DEF_PA_Values_tags_1, - sizeof(asn_DEF_PA_Values_tags_1) - /sizeof(asn_DEF_PA_Values_tags_1[0]), /* 1 */ - asn_DEF_PA_Values_tags_1, /* Same as above */ - sizeof(asn_DEF_PA_Values_tags_1) - /sizeof(asn_DEF_PA_Values_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_PA_Values_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_PA_Values_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/PA-Values.h b/e2sim/previous/ASN1c/PA-Values.h deleted file mode 100644 index 1ed3e92..0000000 --- a/e2sim/previous/ASN1c/PA-Values.h +++ /dev/null @@ -1,78 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _PA_Values_H_ -#define _PA_Values_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum PA_Values { - PA_Values_dB_6 = 0, - PA_Values_dB_4dot77 = 1, - PA_Values_dB_3 = 2, - PA_Values_dB_1dot77 = 3, - PA_Values_dB0 = 4, - PA_Values_dB1 = 5, - PA_Values_dB2 = 6, - PA_Values_dB3 = 7 - /* - * Enumeration is extensible - */ -} e_PA_Values; - -/* PA-Values */ -typedef long PA_Values_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_PA_Values_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_PA_Values; -extern const asn_INTEGER_specifics_t asn_SPC_PA_Values_specs_1; -asn_struct_free_f PA_Values_free; -asn_struct_print_f PA_Values_print; -asn_constr_check_f PA_Values_constraint; -ber_type_decoder_f PA_Values_decode_ber; -der_type_encoder_f PA_Values_encode_der; -xer_type_decoder_f PA_Values_decode_xer; -xer_type_encoder_f PA_Values_encode_xer; -per_type_decoder_f PA_Values_decode_uper; -per_type_encoder_f PA_Values_encode_uper; -per_type_decoder_f PA_Values_decode_aper; -per_type_encoder_f PA_Values_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _PA_Values_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/PCI.c b/e2sim/previous/ASN1c/PCI.c deleted file mode 100644 index 2a795fc..0000000 --- a/e2sim/previous/ASN1c/PCI.c +++ /dev/null @@ -1,79 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "PCI.h" - -int -PCI_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 503)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using NativeInteger, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_PCI_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 9, 9, 0, 503 } /* (0..503,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_PCI_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_PCI = { - "PCI", - "PCI", - &asn_OP_NativeInteger, - asn_DEF_PCI_tags_1, - sizeof(asn_DEF_PCI_tags_1) - /sizeof(asn_DEF_PCI_tags_1[0]), /* 1 */ - asn_DEF_PCI_tags_1, /* Same as above */ - sizeof(asn_DEF_PCI_tags_1) - /sizeof(asn_DEF_PCI_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_PCI_constr_1, PCI_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/previous/ASN1c/PCI.h b/e2sim/previous/ASN1c/PCI.h deleted file mode 100644 index 49a0338..0000000 --- a/e2sim/previous/ASN1c/PCI.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _PCI_H_ -#define _PCI_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeInteger.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* PCI */ -typedef long PCI_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_PCI_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_PCI; -asn_struct_free_f PCI_free; -asn_struct_print_f PCI_print; -asn_constr_check_f PCI_constraint; -ber_type_decoder_f PCI_decode_ber; -der_type_encoder_f PCI_encode_der; -xer_type_decoder_f PCI_decode_xer; -xer_type_encoder_f PCI_encode_xer; -per_type_decoder_f PCI_decode_uper; -per_type_encoder_f PCI_encode_uper; -per_type_decoder_f PCI_decode_aper; -per_type_encoder_f PCI_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _PCI_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/PDCP-SN.c b/e2sim/previous/ASN1c/PDCP-SN.c deleted file mode 100644 index 543a808..0000000 --- a/e2sim/previous/ASN1c/PDCP-SN.c +++ /dev/null @@ -1,79 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "PDCP-SN.h" - -int -PDCP_SN_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 4095)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using NativeInteger, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_PDCP_SN_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED, 12, 12, 0, 4095 } /* (0..4095) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_PDCP_SN_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_PDCP_SN = { - "PDCP-SN", - "PDCP-SN", - &asn_OP_NativeInteger, - asn_DEF_PDCP_SN_tags_1, - sizeof(asn_DEF_PDCP_SN_tags_1) - /sizeof(asn_DEF_PDCP_SN_tags_1[0]), /* 1 */ - asn_DEF_PDCP_SN_tags_1, /* Same as above */ - sizeof(asn_DEF_PDCP_SN_tags_1) - /sizeof(asn_DEF_PDCP_SN_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_PDCP_SN_constr_1, PDCP_SN_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/previous/ASN1c/PDCP-SN.h b/e2sim/previous/ASN1c/PDCP-SN.h deleted file mode 100644 index 3033062..0000000 --- a/e2sim/previous/ASN1c/PDCP-SN.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _PDCP_SN_H_ -#define _PDCP_SN_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeInteger.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* PDCP-SN */ -typedef long PDCP_SN_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_PDCP_SN_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_PDCP_SN; -asn_struct_free_f PDCP_SN_free; -asn_struct_print_f PDCP_SN_print; -asn_constr_check_f PDCP_SN_constraint; -ber_type_decoder_f PDCP_SN_decode_ber; -der_type_encoder_f PDCP_SN_encode_der; -xer_type_decoder_f PDCP_SN_decode_xer; -xer_type_encoder_f PDCP_SN_encode_xer; -per_type_decoder_f PDCP_SN_decode_uper; -per_type_encoder_f PDCP_SN_encode_uper; -per_type_decoder_f PDCP_SN_decode_aper; -per_type_encoder_f PDCP_SN_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _PDCP_SN_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/PDCP-SNExtended.c b/e2sim/previous/ASN1c/PDCP-SNExtended.c deleted file mode 100644 index e7ebbf3..0000000 --- a/e2sim/previous/ASN1c/PDCP-SNExtended.c +++ /dev/null @@ -1,79 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "PDCP-SNExtended.h" - -int -PDCP_SNExtended_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 32767)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using NativeInteger, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_PDCP_SNExtended_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED, 15, 15, 0, 32767 } /* (0..32767) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_PDCP_SNExtended_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_PDCP_SNExtended = { - "PDCP-SNExtended", - "PDCP-SNExtended", - &asn_OP_NativeInteger, - asn_DEF_PDCP_SNExtended_tags_1, - sizeof(asn_DEF_PDCP_SNExtended_tags_1) - /sizeof(asn_DEF_PDCP_SNExtended_tags_1[0]), /* 1 */ - asn_DEF_PDCP_SNExtended_tags_1, /* Same as above */ - sizeof(asn_DEF_PDCP_SNExtended_tags_1) - /sizeof(asn_DEF_PDCP_SNExtended_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_PDCP_SNExtended_constr_1, PDCP_SNExtended_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/previous/ASN1c/PDCP-SNExtended.h b/e2sim/previous/ASN1c/PDCP-SNExtended.h deleted file mode 100644 index 3188be1..0000000 --- a/e2sim/previous/ASN1c/PDCP-SNExtended.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _PDCP_SNExtended_H_ -#define _PDCP_SNExtended_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeInteger.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* PDCP-SNExtended */ -typedef long PDCP_SNExtended_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_PDCP_SNExtended_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_PDCP_SNExtended; -asn_struct_free_f PDCP_SNExtended_free; -asn_struct_print_f PDCP_SNExtended_print; -asn_constr_check_f PDCP_SNExtended_constraint; -ber_type_decoder_f PDCP_SNExtended_decode_ber; -der_type_encoder_f PDCP_SNExtended_encode_der; -xer_type_decoder_f PDCP_SNExtended_decode_xer; -xer_type_encoder_f PDCP_SNExtended_encode_xer; -per_type_decoder_f PDCP_SNExtended_decode_uper; -per_type_encoder_f PDCP_SNExtended_encode_uper; -per_type_decoder_f PDCP_SNExtended_decode_aper; -per_type_encoder_f PDCP_SNExtended_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _PDCP_SNExtended_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/PDCP-SNlength18.c b/e2sim/previous/ASN1c/PDCP-SNlength18.c deleted file mode 100644 index f7a2f98..0000000 --- a/e2sim/previous/ASN1c/PDCP-SNlength18.c +++ /dev/null @@ -1,79 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "PDCP-SNlength18.h" - -int -PDCP_SNlength18_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 262143)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using NativeInteger, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_PDCP_SNlength18_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED, 18, -1, 0, 262143 } /* (0..262143) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_PDCP_SNlength18_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_PDCP_SNlength18 = { - "PDCP-SNlength18", - "PDCP-SNlength18", - &asn_OP_NativeInteger, - asn_DEF_PDCP_SNlength18_tags_1, - sizeof(asn_DEF_PDCP_SNlength18_tags_1) - /sizeof(asn_DEF_PDCP_SNlength18_tags_1[0]), /* 1 */ - asn_DEF_PDCP_SNlength18_tags_1, /* Same as above */ - sizeof(asn_DEF_PDCP_SNlength18_tags_1) - /sizeof(asn_DEF_PDCP_SNlength18_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_PDCP_SNlength18_constr_1, PDCP_SNlength18_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/previous/ASN1c/PDCP-SNlength18.h b/e2sim/previous/ASN1c/PDCP-SNlength18.h deleted file mode 100644 index 901aca4..0000000 --- a/e2sim/previous/ASN1c/PDCP-SNlength18.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _PDCP_SNlength18_H_ -#define _PDCP_SNlength18_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeInteger.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* PDCP-SNlength18 */ -typedef long PDCP_SNlength18_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_PDCP_SNlength18_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_PDCP_SNlength18; -asn_struct_free_f PDCP_SNlength18_free; -asn_struct_print_f PDCP_SNlength18_print; -asn_constr_check_f PDCP_SNlength18_constraint; -ber_type_decoder_f PDCP_SNlength18_decode_ber; -der_type_encoder_f PDCP_SNlength18_encode_der; -xer_type_decoder_f PDCP_SNlength18_decode_xer; -xer_type_encoder_f PDCP_SNlength18_encode_xer; -per_type_decoder_f PDCP_SNlength18_decode_uper; -per_type_encoder_f PDCP_SNlength18_encode_uper; -per_type_decoder_f PDCP_SNlength18_decode_aper; -per_type_encoder_f PDCP_SNlength18_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _PDCP_SNlength18_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/PDCPChangeIndication.c b/e2sim/previous/ASN1c/PDCPChangeIndication.c deleted file mode 100644 index ea96721..0000000 --- a/e2sim/previous/ASN1c/PDCPChangeIndication.c +++ /dev/null @@ -1,73 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "PDCPChangeIndication.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_PDCPChangeIndication_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_PDCPChangeIndication_value2enum_1[] = { - { 0, 22, "s-KgNB-update-required" }, - { 1, 27, "pDCP-data-recovery-required" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_PDCPChangeIndication_enum2value_1[] = { - 1, /* pDCP-data-recovery-required(1) */ - 0 /* s-KgNB-update-required(0) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_PDCPChangeIndication_specs_1 = { - asn_MAP_PDCPChangeIndication_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_PDCPChangeIndication_enum2value_1, /* N => "tag"; sorted by N */ - 2, /* Number of elements in the maps */ - 3, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_PDCPChangeIndication_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_PDCPChangeIndication = { - "PDCPChangeIndication", - "PDCPChangeIndication", - &asn_OP_NativeEnumerated, - asn_DEF_PDCPChangeIndication_tags_1, - sizeof(asn_DEF_PDCPChangeIndication_tags_1) - /sizeof(asn_DEF_PDCPChangeIndication_tags_1[0]), /* 1 */ - asn_DEF_PDCPChangeIndication_tags_1, /* Same as above */ - sizeof(asn_DEF_PDCPChangeIndication_tags_1) - /sizeof(asn_DEF_PDCPChangeIndication_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_PDCPChangeIndication_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_PDCPChangeIndication_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/PDCPChangeIndication.h b/e2sim/previous/ASN1c/PDCPChangeIndication.h deleted file mode 100644 index 3c8b18b..0000000 --- a/e2sim/previous/ASN1c/PDCPChangeIndication.h +++ /dev/null @@ -1,72 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _PDCPChangeIndication_H_ -#define _PDCPChangeIndication_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum PDCPChangeIndication { - PDCPChangeIndication_s_KgNB_update_required = 0, - PDCPChangeIndication_pDCP_data_recovery_required = 1 - /* - * Enumeration is extensible - */ -} e_PDCPChangeIndication; - -/* PDCPChangeIndication */ -typedef long PDCPChangeIndication_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_PDCPChangeIndication_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_PDCPChangeIndication; -extern const asn_INTEGER_specifics_t asn_SPC_PDCPChangeIndication_specs_1; -asn_struct_free_f PDCPChangeIndication_free; -asn_struct_print_f PDCPChangeIndication_print; -asn_constr_check_f PDCPChangeIndication_constraint; -ber_type_decoder_f PDCPChangeIndication_decode_ber; -der_type_encoder_f PDCPChangeIndication_encode_der; -xer_type_decoder_f PDCPChangeIndication_decode_xer; -xer_type_encoder_f PDCPChangeIndication_encode_xer; -per_type_decoder_f PDCPChangeIndication_decode_uper; -per_type_encoder_f PDCPChangeIndication_encode_uper; -per_type_decoder_f PDCPChangeIndication_decode_aper; -per_type_encoder_f PDCPChangeIndication_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _PDCPChangeIndication_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/PDCPSnLength.c b/e2sim/previous/ASN1c/PDCPSnLength.c deleted file mode 100644 index 7042f83..0000000 --- a/e2sim/previous/ASN1c/PDCPSnLength.c +++ /dev/null @@ -1,73 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "PDCPSnLength.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_PDCPSnLength_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_PDCPSnLength_value2enum_1[] = { - { 0, 11, "twelve-bits" }, - { 1, 13, "eighteen-bits" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_PDCPSnLength_enum2value_1[] = { - 1, /* eighteen-bits(1) */ - 0 /* twelve-bits(0) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_PDCPSnLength_specs_1 = { - asn_MAP_PDCPSnLength_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_PDCPSnLength_enum2value_1, /* N => "tag"; sorted by N */ - 2, /* Number of elements in the maps */ - 3, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_PDCPSnLength_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_PDCPSnLength = { - "PDCPSnLength", - "PDCPSnLength", - &asn_OP_NativeEnumerated, - asn_DEF_PDCPSnLength_tags_1, - sizeof(asn_DEF_PDCPSnLength_tags_1) - /sizeof(asn_DEF_PDCPSnLength_tags_1[0]), /* 1 */ - asn_DEF_PDCPSnLength_tags_1, /* Same as above */ - sizeof(asn_DEF_PDCPSnLength_tags_1) - /sizeof(asn_DEF_PDCPSnLength_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_PDCPSnLength_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_PDCPSnLength_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/PDCPSnLength.h b/e2sim/previous/ASN1c/PDCPSnLength.h deleted file mode 100644 index f075e9f..0000000 --- a/e2sim/previous/ASN1c/PDCPSnLength.h +++ /dev/null @@ -1,72 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _PDCPSnLength_H_ -#define _PDCPSnLength_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum PDCPSnLength { - PDCPSnLength_twelve_bits = 0, - PDCPSnLength_eighteen_bits = 1 - /* - * Enumeration is extensible - */ -} e_PDCPSnLength; - -/* PDCPSnLength */ -typedef long PDCPSnLength_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_PDCPSnLength_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_PDCPSnLength; -extern const asn_INTEGER_specifics_t asn_SPC_PDCPSnLength_specs_1; -asn_struct_free_f PDCPSnLength_free; -asn_struct_print_f PDCPSnLength_print; -asn_constr_check_f PDCPSnLength_constraint; -ber_type_decoder_f PDCPSnLength_decode_ber; -der_type_encoder_f PDCPSnLength_encode_der; -xer_type_decoder_f PDCPSnLength_decode_xer; -xer_type_encoder_f PDCPSnLength_encode_xer; -per_type_decoder_f PDCPSnLength_decode_uper; -per_type_encoder_f PDCPSnLength_encode_uper; -per_type_decoder_f PDCPSnLength_decode_aper; -per_type_encoder_f PDCPSnLength_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _PDCPSnLength_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/PLMN-Identity.c b/e2sim/previous/ASN1c/PLMN-Identity.c deleted file mode 100644 index acb3a54..0000000 --- a/e2sim/previous/ASN1c/PLMN-Identity.c +++ /dev/null @@ -1,80 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "PLMN-Identity.h" - -int -PLMN_Identity_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - size = st->size; - - if((size == 3)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using OCTET_STRING, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_PLMN_Identity_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 0, 0, 3, 3 } /* (SIZE(3..3)) */, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_PLMN_Identity_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_PLMN_Identity = { - "PLMN-Identity", - "PLMN-Identity", - &asn_OP_OCTET_STRING, - asn_DEF_PLMN_Identity_tags_1, - sizeof(asn_DEF_PLMN_Identity_tags_1) - /sizeof(asn_DEF_PLMN_Identity_tags_1[0]), /* 1 */ - asn_DEF_PLMN_Identity_tags_1, /* Same as above */ - sizeof(asn_DEF_PLMN_Identity_tags_1) - /sizeof(asn_DEF_PLMN_Identity_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_PLMN_Identity_constr_1, PLMN_Identity_constraint }, - 0, 0, /* No members */ - &asn_SPC_OCTET_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/PLMN-Identity.h b/e2sim/previous/ASN1c/PLMN-Identity.h deleted file mode 100644 index d7417d5..0000000 --- a/e2sim/previous/ASN1c/PLMN-Identity.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _PLMN_Identity_H_ -#define _PLMN_Identity_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "OCTET_STRING.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* PLMN-Identity */ -typedef OCTET_STRING_t PLMN_Identity_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_PLMN_Identity_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_PLMN_Identity; -asn_struct_free_f PLMN_Identity_free; -asn_struct_print_f PLMN_Identity_print; -asn_constr_check_f PLMN_Identity_constraint; -ber_type_decoder_f PLMN_Identity_decode_ber; -der_type_encoder_f PLMN_Identity_encode_der; -xer_type_decoder_f PLMN_Identity_decode_xer; -xer_type_encoder_f PLMN_Identity_encode_xer; -per_type_decoder_f PLMN_Identity_decode_uper; -per_type_encoder_f PLMN_Identity_encode_uper; -per_type_decoder_f PLMN_Identity_decode_aper; -per_type_encoder_f PLMN_Identity_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _PLMN_Identity_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/PLMNAreaBasedQMC.c b/e2sim/previous/ASN1c/PLMNAreaBasedQMC.c deleted file mode 100644 index ef25747..0000000 --- a/e2sim/previous/ASN1c/PLMNAreaBasedQMC.c +++ /dev/null @@ -1,81 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "PLMNAreaBasedQMC.h" - -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_PLMNAreaBasedQMC_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct PLMNAreaBasedQMC, plmnListforQMC), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_PLMNListforQMC, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "plmnListforQMC" - }, - { ATF_POINTER, 1, offsetof(struct PLMNAreaBasedQMC, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P178, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_PLMNAreaBasedQMC_oms_1[] = { 1 }; -static const ber_tlv_tag_t asn_DEF_PLMNAreaBasedQMC_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_PLMNAreaBasedQMC_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* plmnListforQMC */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_PLMNAreaBasedQMC_specs_1 = { - sizeof(struct PLMNAreaBasedQMC), - offsetof(struct PLMNAreaBasedQMC, _asn_ctx), - asn_MAP_PLMNAreaBasedQMC_tag2el_1, - 2, /* Count of tags in the map */ - asn_MAP_PLMNAreaBasedQMC_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 2, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_PLMNAreaBasedQMC = { - "PLMNAreaBasedQMC", - "PLMNAreaBasedQMC", - &asn_OP_SEQUENCE, - asn_DEF_PLMNAreaBasedQMC_tags_1, - sizeof(asn_DEF_PLMNAreaBasedQMC_tags_1) - /sizeof(asn_DEF_PLMNAreaBasedQMC_tags_1[0]), /* 1 */ - asn_DEF_PLMNAreaBasedQMC_tags_1, /* Same as above */ - sizeof(asn_DEF_PLMNAreaBasedQMC_tags_1) - /sizeof(asn_DEF_PLMNAreaBasedQMC_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_PLMNAreaBasedQMC_1, - 2, /* Elements count */ - &asn_SPC_PLMNAreaBasedQMC_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/PLMNAreaBasedQMC.h b/e2sim/previous/ASN1c/PLMNAreaBasedQMC.h deleted file mode 100644 index 464dfa8..0000000 --- a/e2sim/previous/ASN1c/PLMNAreaBasedQMC.h +++ /dev/null @@ -1,66 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _PLMNAreaBasedQMC_H_ -#define _PLMNAreaBasedQMC_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "PLMNListforQMC.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* PLMNAreaBasedQMC */ -typedef struct PLMNAreaBasedQMC { - PLMNListforQMC_t plmnListforQMC; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} PLMNAreaBasedQMC_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_PLMNAreaBasedQMC; -extern asn_SEQUENCE_specifics_t asn_SPC_PLMNAreaBasedQMC_specs_1; -extern asn_TYPE_member_t asn_MBR_PLMNAreaBasedQMC_1[2]; - -#ifdef __cplusplus -} -#endif - -#endif /* _PLMNAreaBasedQMC_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/PLMNListforQMC.c b/e2sim/previous/ASN1c/PLMNListforQMC.c deleted file mode 100644 index 6a86bdb..0000000 --- a/e2sim/previous/ASN1c/PLMNListforQMC.c +++ /dev/null @@ -1,67 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "PLMNListforQMC.h" - -asn_per_constraints_t asn_PER_type_PLMNListforQMC_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 4, 4, 1, 16 } /* (SIZE(1..16)) */, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_PLMNListforQMC_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), - 0, - &asn_DEF_PLMN_Identity, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_PLMNListforQMC_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_PLMNListforQMC_specs_1 = { - sizeof(struct PLMNListforQMC), - offsetof(struct PLMNListforQMC, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_PLMNListforQMC = { - "PLMNListforQMC", - "PLMNListforQMC", - &asn_OP_SEQUENCE_OF, - asn_DEF_PLMNListforQMC_tags_1, - sizeof(asn_DEF_PLMNListforQMC_tags_1) - /sizeof(asn_DEF_PLMNListforQMC_tags_1[0]), /* 1 */ - asn_DEF_PLMNListforQMC_tags_1, /* Same as above */ - sizeof(asn_DEF_PLMNListforQMC_tags_1) - /sizeof(asn_DEF_PLMNListforQMC_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_PLMNListforQMC_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_PLMNListforQMC_1, - 1, /* Single element */ - &asn_SPC_PLMNListforQMC_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/PLMNListforQMC.h b/e2sim/previous/ASN1c/PLMNListforQMC.h deleted file mode 100644 index f1b7dc2..0000000 --- a/e2sim/previous/ASN1c/PLMNListforQMC.h +++ /dev/null @@ -1,60 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _PLMNListforQMC_H_ -#define _PLMNListforQMC_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "PLMN-Identity.h" -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* PLMNListforQMC */ -typedef struct PLMNListforQMC { - A_SEQUENCE_OF(PLMN_Identity_t) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} PLMNListforQMC_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_PLMNListforQMC; -extern asn_SET_OF_specifics_t asn_SPC_PLMNListforQMC_specs_1; -extern asn_TYPE_member_t asn_MBR_PLMNListforQMC_1[1]; -extern asn_per_constraints_t asn_PER_type_PLMNListforQMC_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _PLMNListforQMC_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/PRACH-Configuration.c b/e2sim/previous/ASN1c/PRACH-Configuration.c deleted file mode 100644 index 2827357..0000000 --- a/e2sim/previous/ASN1c/PRACH-Configuration.c +++ /dev/null @@ -1,241 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "PRACH-Configuration.h" - -#include "ProtocolExtensionContainer.h" -static int -memb_rootSequenceIndex_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 837)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_zeroCorrelationIndex_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 15)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_prach_FreqOffset_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 94)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_prach_ConfigIndex_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 63)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_per_constraints_t asn_PER_memb_rootSequenceIndex_constr_2 CC_NOTUSED = { - { APC_CONSTRAINED, 10, 10, 0, 837 } /* (0..837) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_zeroCorrelationIndex_constr_3 CC_NOTUSED = { - { APC_CONSTRAINED, 4, 4, 0, 15 } /* (0..15) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_prach_FreqOffset_constr_5 CC_NOTUSED = { - { APC_CONSTRAINED, 7, 7, 0, 94 } /* (0..94) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_prach_ConfigIndex_constr_6 CC_NOTUSED = { - { APC_CONSTRAINED, 6, 6, 0, 63 } /* (0..63) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_PRACH_Configuration_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct PRACH_Configuration, rootSequenceIndex), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { 0, &asn_PER_memb_rootSequenceIndex_constr_2, memb_rootSequenceIndex_constraint_1 }, - 0, 0, /* No default value */ - "rootSequenceIndex" - }, - { ATF_NOFLAGS, 0, offsetof(struct PRACH_Configuration, zeroCorrelationIndex), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { 0, &asn_PER_memb_zeroCorrelationIndex_constr_3, memb_zeroCorrelationIndex_constraint_1 }, - 0, 0, /* No default value */ - "zeroCorrelationIndex" - }, - { ATF_NOFLAGS, 0, offsetof(struct PRACH_Configuration, highSpeedFlag), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_BOOLEAN, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "highSpeedFlag" - }, - { ATF_NOFLAGS, 0, offsetof(struct PRACH_Configuration, prach_FreqOffset), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { 0, &asn_PER_memb_prach_FreqOffset_constr_5, memb_prach_FreqOffset_constraint_1 }, - 0, 0, /* No default value */ - "prach-FreqOffset" - }, - { ATF_POINTER, 2, offsetof(struct PRACH_Configuration, prach_ConfigIndex), - (ASN_TAG_CLASS_CONTEXT | (4 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { 0, &asn_PER_memb_prach_ConfigIndex_constr_6, memb_prach_ConfigIndex_constraint_1 }, - 0, 0, /* No default value */ - "prach-ConfigIndex" - }, - { ATF_POINTER, 1, offsetof(struct PRACH_Configuration, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (5 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P177, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_PRACH_Configuration_oms_1[] = { 4, 5 }; -static const ber_tlv_tag_t asn_DEF_PRACH_Configuration_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_PRACH_Configuration_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* rootSequenceIndex */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* zeroCorrelationIndex */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* highSpeedFlag */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* prach-FreqOffset */ - { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* prach-ConfigIndex */ - { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_PRACH_Configuration_specs_1 = { - sizeof(struct PRACH_Configuration), - offsetof(struct PRACH_Configuration, _asn_ctx), - asn_MAP_PRACH_Configuration_tag2el_1, - 6, /* Count of tags in the map */ - asn_MAP_PRACH_Configuration_oms_1, /* Optional members */ - 2, 0, /* Root/Additions */ - 6, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_PRACH_Configuration = { - "PRACH-Configuration", - "PRACH-Configuration", - &asn_OP_SEQUENCE, - asn_DEF_PRACH_Configuration_tags_1, - sizeof(asn_DEF_PRACH_Configuration_tags_1) - /sizeof(asn_DEF_PRACH_Configuration_tags_1[0]), /* 1 */ - asn_DEF_PRACH_Configuration_tags_1, /* Same as above */ - sizeof(asn_DEF_PRACH_Configuration_tags_1) - /sizeof(asn_DEF_PRACH_Configuration_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_PRACH_Configuration_1, - 6, /* Elements count */ - &asn_SPC_PRACH_Configuration_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/PRACH-Configuration.h b/e2sim/previous/ASN1c/PRACH-Configuration.h deleted file mode 100644 index 8a97c5b..0000000 --- a/e2sim/previous/ASN1c/PRACH-Configuration.h +++ /dev/null @@ -1,71 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _PRACH_Configuration_H_ -#define _PRACH_Configuration_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeInteger.h" -#include "BOOLEAN.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* PRACH-Configuration */ -typedef struct PRACH_Configuration { - long rootSequenceIndex; - long zeroCorrelationIndex; - BOOLEAN_t highSpeedFlag; - long prach_FreqOffset; - long *prach_ConfigIndex; /* OPTIONAL */ - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} PRACH_Configuration_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_PRACH_Configuration; -extern asn_SEQUENCE_specifics_t asn_SPC_PRACH_Configuration_specs_1; -extern asn_TYPE_member_t asn_MBR_PRACH_Configuration_1[6]; - -#ifdef __cplusplus -} -#endif - -#endif /* _PRACH_Configuration_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/Packet-LossRate.c b/e2sim/previous/ASN1c/Packet-LossRate.c deleted file mode 100644 index 29df7c6..0000000 --- a/e2sim/previous/ASN1c/Packet-LossRate.c +++ /dev/null @@ -1,79 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "Packet-LossRate.h" - -int -Packet_LossRate_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 1000)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using NativeInteger, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_Packet_LossRate_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED, 10, 10, 0, 1000 } /* (0..1000) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_Packet_LossRate_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_Packet_LossRate = { - "Packet-LossRate", - "Packet-LossRate", - &asn_OP_NativeInteger, - asn_DEF_Packet_LossRate_tags_1, - sizeof(asn_DEF_Packet_LossRate_tags_1) - /sizeof(asn_DEF_Packet_LossRate_tags_1[0]), /* 1 */ - asn_DEF_Packet_LossRate_tags_1, /* Same as above */ - sizeof(asn_DEF_Packet_LossRate_tags_1) - /sizeof(asn_DEF_Packet_LossRate_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_Packet_LossRate_constr_1, Packet_LossRate_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/previous/ASN1c/Packet-LossRate.h b/e2sim/previous/ASN1c/Packet-LossRate.h deleted file mode 100644 index 626a8f7..0000000 --- a/e2sim/previous/ASN1c/Packet-LossRate.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _Packet_LossRate_H_ -#define _Packet_LossRate_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeInteger.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Packet-LossRate */ -typedef long Packet_LossRate_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_Packet_LossRate_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_Packet_LossRate; -asn_struct_free_f Packet_LossRate_free; -asn_struct_print_f Packet_LossRate_print; -asn_constr_check_f Packet_LossRate_constraint; -ber_type_decoder_f Packet_LossRate_decode_ber; -der_type_encoder_f Packet_LossRate_encode_der; -xer_type_decoder_f Packet_LossRate_decode_xer; -xer_type_encoder_f Packet_LossRate_encode_xer; -per_type_decoder_f Packet_LossRate_decode_uper; -per_type_encoder_f Packet_LossRate_encode_uper; -per_type_decoder_f Packet_LossRate_decode_aper; -per_type_encoder_f Packet_LossRate_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _Packet_LossRate_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/PartialSuccessIndicator.c b/e2sim/previous/ASN1c/PartialSuccessIndicator.c deleted file mode 100644 index 251c85f..0000000 --- a/e2sim/previous/ASN1c/PartialSuccessIndicator.c +++ /dev/null @@ -1,71 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "PartialSuccessIndicator.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -static asn_per_constraints_t asn_PER_type_PartialSuccessIndicator_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 0, 0 } /* (0..0,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_PartialSuccessIndicator_value2enum_1[] = { - { 0, 23, "partial-success-allowed" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_PartialSuccessIndicator_enum2value_1[] = { - 0 /* partial-success-allowed(0) */ - /* This list is extensible */ -}; -static const asn_INTEGER_specifics_t asn_SPC_PartialSuccessIndicator_specs_1 = { - asn_MAP_PartialSuccessIndicator_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_PartialSuccessIndicator_enum2value_1, /* N => "tag"; sorted by N */ - 1, /* Number of elements in the maps */ - 2, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_PartialSuccessIndicator_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_PartialSuccessIndicator = { - "PartialSuccessIndicator", - "PartialSuccessIndicator", - &asn_OP_NativeEnumerated, - asn_DEF_PartialSuccessIndicator_tags_1, - sizeof(asn_DEF_PartialSuccessIndicator_tags_1) - /sizeof(asn_DEF_PartialSuccessIndicator_tags_1[0]), /* 1 */ - asn_DEF_PartialSuccessIndicator_tags_1, /* Same as above */ - sizeof(asn_DEF_PartialSuccessIndicator_tags_1) - /sizeof(asn_DEF_PartialSuccessIndicator_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_PartialSuccessIndicator_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_PartialSuccessIndicator_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/PartialSuccessIndicator.h b/e2sim/previous/ASN1c/PartialSuccessIndicator.h deleted file mode 100644 index fd15c1f..0000000 --- a/e2sim/previous/ASN1c/PartialSuccessIndicator.h +++ /dev/null @@ -1,69 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _PartialSuccessIndicator_H_ -#define _PartialSuccessIndicator_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum PartialSuccessIndicator { - PartialSuccessIndicator_partial_success_allowed = 0 - /* - * Enumeration is extensible - */ -} e_PartialSuccessIndicator; - -/* PartialSuccessIndicator */ -typedef long PartialSuccessIndicator_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_PartialSuccessIndicator; -asn_struct_free_f PartialSuccessIndicator_free; -asn_struct_print_f PartialSuccessIndicator_print; -asn_constr_check_f PartialSuccessIndicator_constraint; -ber_type_decoder_f PartialSuccessIndicator_decode_ber; -der_type_encoder_f PartialSuccessIndicator_encode_der; -xer_type_decoder_f PartialSuccessIndicator_decode_xer; -xer_type_encoder_f PartialSuccessIndicator_encode_xer; -per_type_decoder_f PartialSuccessIndicator_decode_uper; -per_type_encoder_f PartialSuccessIndicator_encode_uper; -per_type_decoder_f PartialSuccessIndicator_decode_aper; -per_type_encoder_f PartialSuccessIndicator_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _PartialSuccessIndicator_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/PedestrianUE.c b/e2sim/previous/ASN1c/PedestrianUE.c deleted file mode 100644 index dd20eea..0000000 --- a/e2sim/previous/ASN1c/PedestrianUE.c +++ /dev/null @@ -1,73 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "PedestrianUE.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_PedestrianUE_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_PedestrianUE_value2enum_1[] = { - { 0, 10, "authorized" }, - { 1, 14, "not-authorized" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_PedestrianUE_enum2value_1[] = { - 0, /* authorized(0) */ - 1 /* not-authorized(1) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_PedestrianUE_specs_1 = { - asn_MAP_PedestrianUE_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_PedestrianUE_enum2value_1, /* N => "tag"; sorted by N */ - 2, /* Number of elements in the maps */ - 3, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_PedestrianUE_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_PedestrianUE = { - "PedestrianUE", - "PedestrianUE", - &asn_OP_NativeEnumerated, - asn_DEF_PedestrianUE_tags_1, - sizeof(asn_DEF_PedestrianUE_tags_1) - /sizeof(asn_DEF_PedestrianUE_tags_1[0]), /* 1 */ - asn_DEF_PedestrianUE_tags_1, /* Same as above */ - sizeof(asn_DEF_PedestrianUE_tags_1) - /sizeof(asn_DEF_PedestrianUE_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_PedestrianUE_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_PedestrianUE_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/PedestrianUE.h b/e2sim/previous/ASN1c/PedestrianUE.h deleted file mode 100644 index c579324..0000000 --- a/e2sim/previous/ASN1c/PedestrianUE.h +++ /dev/null @@ -1,72 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _PedestrianUE_H_ -#define _PedestrianUE_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum PedestrianUE { - PedestrianUE_authorized = 0, - PedestrianUE_not_authorized = 1 - /* - * Enumeration is extensible - */ -} e_PedestrianUE; - -/* PedestrianUE */ -typedef long PedestrianUE_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_PedestrianUE_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_PedestrianUE; -extern const asn_INTEGER_specifics_t asn_SPC_PedestrianUE_specs_1; -asn_struct_free_f PedestrianUE_free; -asn_struct_print_f PedestrianUE_print; -asn_constr_check_f PedestrianUE_constraint; -ber_type_decoder_f PedestrianUE_decode_ber; -der_type_encoder_f PedestrianUE_encode_der; -xer_type_decoder_f PedestrianUE_decode_xer; -xer_type_encoder_f PedestrianUE_encode_xer; -per_type_decoder_f PedestrianUE_decode_uper; -per_type_encoder_f PedestrianUE_encode_uper; -per_type_decoder_f PedestrianUE_decode_aper; -per_type_encoder_f PedestrianUE_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _PedestrianUE_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/Port-Number.c b/e2sim/previous/ASN1c/Port-Number.c deleted file mode 100644 index e8a49fa..0000000 --- a/e2sim/previous/ASN1c/Port-Number.c +++ /dev/null @@ -1,80 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "Port-Number.h" - -int -Port_Number_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - size = st->size; - - if((size == 2)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using OCTET_STRING, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_Port_Number_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 0, 0, 2, 2 } /* (SIZE(2..2)) */, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_Port_Number_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_Port_Number = { - "Port-Number", - "Port-Number", - &asn_OP_OCTET_STRING, - asn_DEF_Port_Number_tags_1, - sizeof(asn_DEF_Port_Number_tags_1) - /sizeof(asn_DEF_Port_Number_tags_1[0]), /* 1 */ - asn_DEF_Port_Number_tags_1, /* Same as above */ - sizeof(asn_DEF_Port_Number_tags_1) - /sizeof(asn_DEF_Port_Number_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_Port_Number_constr_1, Port_Number_constraint }, - 0, 0, /* No members */ - &asn_SPC_OCTET_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/Port-Number.h b/e2sim/previous/ASN1c/Port-Number.h deleted file mode 100644 index 39fe801..0000000 --- a/e2sim/previous/ASN1c/Port-Number.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _Port_Number_H_ -#define _Port_Number_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "OCTET_STRING.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Port-Number */ -typedef OCTET_STRING_t Port_Number_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_Port_Number_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_Port_Number; -asn_struct_free_f Port_Number_free; -asn_struct_print_f Port_Number_print; -asn_constr_check_f Port_Number_constraint; -ber_type_decoder_f Port_Number_decode_ber; -der_type_encoder_f Port_Number_encode_der; -xer_type_decoder_f Port_Number_decode_xer; -xer_type_encoder_f Port_Number_encode_xer; -per_type_decoder_f Port_Number_decode_uper; -per_type_encoder_f Port_Number_encode_uper; -per_type_decoder_f Port_Number_decode_aper; -per_type_encoder_f Port_Number_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _Port_Number_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/Pre-emptionCapability.c b/e2sim/previous/ASN1c/Pre-emptionCapability.c deleted file mode 100644 index 16ac6af..0000000 --- a/e2sim/previous/ASN1c/Pre-emptionCapability.c +++ /dev/null @@ -1,71 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "Pre-emptionCapability.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_Pre_emptionCapability_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_Pre_emptionCapability_value2enum_1[] = { - { 0, 29, "shall-not-trigger-pre-emption" }, - { 1, 23, "may-trigger-pre-emption" } -}; -static const unsigned int asn_MAP_Pre_emptionCapability_enum2value_1[] = { - 1, /* may-trigger-pre-emption(1) */ - 0 /* shall-not-trigger-pre-emption(0) */ -}; -const asn_INTEGER_specifics_t asn_SPC_Pre_emptionCapability_specs_1 = { - asn_MAP_Pre_emptionCapability_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_Pre_emptionCapability_enum2value_1, /* N => "tag"; sorted by N */ - 2, /* Number of elements in the maps */ - 0, /* Enumeration is not extensible */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_Pre_emptionCapability_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_Pre_emptionCapability = { - "Pre-emptionCapability", - "Pre-emptionCapability", - &asn_OP_NativeEnumerated, - asn_DEF_Pre_emptionCapability_tags_1, - sizeof(asn_DEF_Pre_emptionCapability_tags_1) - /sizeof(asn_DEF_Pre_emptionCapability_tags_1[0]), /* 1 */ - asn_DEF_Pre_emptionCapability_tags_1, /* Same as above */ - sizeof(asn_DEF_Pre_emptionCapability_tags_1) - /sizeof(asn_DEF_Pre_emptionCapability_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_Pre_emptionCapability_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_Pre_emptionCapability_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/Pre-emptionCapability.h b/e2sim/previous/ASN1c/Pre-emptionCapability.h deleted file mode 100644 index 798eb21..0000000 --- a/e2sim/previous/ASN1c/Pre-emptionCapability.h +++ /dev/null @@ -1,69 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _Pre_emptionCapability_H_ -#define _Pre_emptionCapability_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum Pre_emptionCapability { - Pre_emptionCapability_shall_not_trigger_pre_emption = 0, - Pre_emptionCapability_may_trigger_pre_emption = 1 -} e_Pre_emptionCapability; - -/* Pre-emptionCapability */ -typedef long Pre_emptionCapability_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_Pre_emptionCapability_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_Pre_emptionCapability; -extern const asn_INTEGER_specifics_t asn_SPC_Pre_emptionCapability_specs_1; -asn_struct_free_f Pre_emptionCapability_free; -asn_struct_print_f Pre_emptionCapability_print; -asn_constr_check_f Pre_emptionCapability_constraint; -ber_type_decoder_f Pre_emptionCapability_decode_ber; -der_type_encoder_f Pre_emptionCapability_encode_der; -xer_type_decoder_f Pre_emptionCapability_decode_xer; -xer_type_encoder_f Pre_emptionCapability_encode_xer; -per_type_decoder_f Pre_emptionCapability_decode_uper; -per_type_encoder_f Pre_emptionCapability_encode_uper; -per_type_decoder_f Pre_emptionCapability_decode_aper; -per_type_encoder_f Pre_emptionCapability_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _Pre_emptionCapability_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/Pre-emptionVulnerability.c b/e2sim/previous/ASN1c/Pre-emptionVulnerability.c deleted file mode 100644 index 2b94826..0000000 --- a/e2sim/previous/ASN1c/Pre-emptionVulnerability.c +++ /dev/null @@ -1,71 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "Pre-emptionVulnerability.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_Pre_emptionVulnerability_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_Pre_emptionVulnerability_value2enum_1[] = { - { 0, 16, "not-pre-emptable" }, - { 1, 12, "pre-emptable" } -}; -static const unsigned int asn_MAP_Pre_emptionVulnerability_enum2value_1[] = { - 0, /* not-pre-emptable(0) */ - 1 /* pre-emptable(1) */ -}; -const asn_INTEGER_specifics_t asn_SPC_Pre_emptionVulnerability_specs_1 = { - asn_MAP_Pre_emptionVulnerability_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_Pre_emptionVulnerability_enum2value_1, /* N => "tag"; sorted by N */ - 2, /* Number of elements in the maps */ - 0, /* Enumeration is not extensible */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_Pre_emptionVulnerability_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_Pre_emptionVulnerability = { - "Pre-emptionVulnerability", - "Pre-emptionVulnerability", - &asn_OP_NativeEnumerated, - asn_DEF_Pre_emptionVulnerability_tags_1, - sizeof(asn_DEF_Pre_emptionVulnerability_tags_1) - /sizeof(asn_DEF_Pre_emptionVulnerability_tags_1[0]), /* 1 */ - asn_DEF_Pre_emptionVulnerability_tags_1, /* Same as above */ - sizeof(asn_DEF_Pre_emptionVulnerability_tags_1) - /sizeof(asn_DEF_Pre_emptionVulnerability_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_Pre_emptionVulnerability_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_Pre_emptionVulnerability_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/Pre-emptionVulnerability.h b/e2sim/previous/ASN1c/Pre-emptionVulnerability.h deleted file mode 100644 index 94b648a..0000000 --- a/e2sim/previous/ASN1c/Pre-emptionVulnerability.h +++ /dev/null @@ -1,69 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _Pre_emptionVulnerability_H_ -#define _Pre_emptionVulnerability_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum Pre_emptionVulnerability { - Pre_emptionVulnerability_not_pre_emptable = 0, - Pre_emptionVulnerability_pre_emptable = 1 -} e_Pre_emptionVulnerability; - -/* Pre-emptionVulnerability */ -typedef long Pre_emptionVulnerability_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_Pre_emptionVulnerability_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_Pre_emptionVulnerability; -extern const asn_INTEGER_specifics_t asn_SPC_Pre_emptionVulnerability_specs_1; -asn_struct_free_f Pre_emptionVulnerability_free; -asn_struct_print_f Pre_emptionVulnerability_print; -asn_constr_check_f Pre_emptionVulnerability_constraint; -ber_type_decoder_f Pre_emptionVulnerability_decode_ber; -der_type_encoder_f Pre_emptionVulnerability_encode_der; -xer_type_decoder_f Pre_emptionVulnerability_decode_xer; -xer_type_encoder_f Pre_emptionVulnerability_encode_xer; -per_type_decoder_f Pre_emptionVulnerability_decode_uper; -per_type_encoder_f Pre_emptionVulnerability_encode_uper; -per_type_decoder_f Pre_emptionVulnerability_decode_aper; -per_type_encoder_f Pre_emptionVulnerability_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _Pre_emptionVulnerability_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/Presence.c b/e2sim/previous/ASN1c/Presence.c deleted file mode 100644 index bf500d4..0000000 --- a/e2sim/previous/ASN1c/Presence.c +++ /dev/null @@ -1,73 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-CommonDataTypes" - * found in "../../asnFiles/X2AP-CommonDataTypes.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "Presence.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_Presence_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_Presence_value2enum_1[] = { - { 0, 8, "optional" }, - { 1, 11, "conditional" }, - { 2, 9, "mandatory" } -}; -static const unsigned int asn_MAP_Presence_enum2value_1[] = { - 1, /* conditional(1) */ - 2, /* mandatory(2) */ - 0 /* optional(0) */ -}; -const asn_INTEGER_specifics_t asn_SPC_Presence_specs_1 = { - asn_MAP_Presence_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_Presence_enum2value_1, /* N => "tag"; sorted by N */ - 3, /* Number of elements in the maps */ - 0, /* Enumeration is not extensible */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_Presence_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_Presence = { - "Presence", - "Presence", - &asn_OP_NativeEnumerated, - asn_DEF_Presence_tags_1, - sizeof(asn_DEF_Presence_tags_1) - /sizeof(asn_DEF_Presence_tags_1[0]), /* 1 */ - asn_DEF_Presence_tags_1, /* Same as above */ - sizeof(asn_DEF_Presence_tags_1) - /sizeof(asn_DEF_Presence_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_Presence_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_Presence_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/Presence.h b/e2sim/previous/ASN1c/Presence.h deleted file mode 100644 index 283238d..0000000 --- a/e2sim/previous/ASN1c/Presence.h +++ /dev/null @@ -1,70 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-CommonDataTypes" - * found in "../../asnFiles/X2AP-CommonDataTypes.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _Presence_H_ -#define _Presence_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum Presence { - Presence_optional = 0, - Presence_conditional = 1, - Presence_mandatory = 2 -} e_Presence; - -/* Presence */ -typedef long Presence_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_Presence_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_Presence; -extern const asn_INTEGER_specifics_t asn_SPC_Presence_specs_1; -asn_struct_free_f Presence_free; -asn_struct_print_f Presence_print; -asn_constr_check_f Presence_constraint; -ber_type_decoder_f Presence_decode_ber; -der_type_encoder_f Presence_encode_der; -xer_type_decoder_f Presence_decode_xer; -xer_type_encoder_f Presence_encode_xer; -per_type_decoder_f Presence_decode_uper; -per_type_encoder_f Presence_encode_uper; -per_type_decoder_f Presence_decode_aper; -per_type_encoder_f Presence_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _Presence_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/PrintableString.c b/e2sim/previous/ASN1c/PrintableString.c deleted file mode 100644 index 065bc8b..0000000 --- a/e2sim/previous/ASN1c/PrintableString.c +++ /dev/null @@ -1,148 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/*- - * Copyright (c) 2003, 2004, 2006 Lev Walkin . - * All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include - -/* - * ASN.1:1984 (X.409) - */ -static const int _PrintableString_alphabet[256] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */ - 1, 0, 0, 0, 0, 0, 0, 2, 3, 4, 0, 5, 6, 7, 8, 9, /* . '() +,-./ */ -10,11,12,13,14,15,16,17,18,19,20, 0, 0,21, 0,22, /* 0123456789: = ? */ - 0,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37, /* ABCDEFGHIJKLMNO */ -38,39,40,41,42,43,44,45,46,47,48, 0, 0, 0, 0, 0, /* PQRSTUVWXYZ */ - 0,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63, /* abcdefghijklmno */ -64,65,66,67,68,69,70,71,72,73,74, 0, 0, 0, 0, 0, /* pqrstuvwxyz */ -}; -static const int _PrintableString_code2value[74] = { -32,39,40,41,43,44,45,46,47,48,49,50,51,52,53,54, -55,56,57,58,61,63,65,66,67,68,69,70,71,72,73,74, -75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90, -97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112, -113,114,115,116,117,118,119,120,121,122}; - -/* - * PrintableString basic type description. - */ -static const ber_tlv_tag_t asn_DEF_PrintableString_tags[] = { - (ASN_TAG_CLASS_UNIVERSAL | (19 << 2)), /* [UNIVERSAL 19] IMPLICIT ...*/ - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) /* ... OCTET STRING */ -}; -static int asn_DEF_PrintableString_v2c(unsigned int value) { - return _PrintableString_alphabet[value > 255 ? 0 : value] - 1; -} -static int asn_DEF_PrintableString_c2v(unsigned int code) { - if(code < 74) - return _PrintableString_code2value[code]; - return -1; -} -static asn_per_constraints_t asn_DEF_PrintableString_per_constraints = { - { APC_CONSTRAINED, 4, 4, 0x20, 0x39 }, /* Value */ - { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 }, /* Size */ - asn_DEF_PrintableString_v2c, - asn_DEF_PrintableString_c2v -}; -asn_TYPE_operation_t asn_OP_PrintableString = { - OCTET_STRING_free, - OCTET_STRING_print_utf8, /* ASCII subset */ - OCTET_STRING_compare, - OCTET_STRING_decode_ber, /* Implemented in terms of OCTET STRING */ - OCTET_STRING_encode_der, - OCTET_STRING_decode_xer_utf8, - OCTET_STRING_encode_xer_utf8, -#ifdef ASN_DISABLE_OER_SUPPORT - 0, - 0, -#else - OCTET_STRING_decode_oer, - OCTET_STRING_encode_oer, -#endif /* ASN_DISABLE_OER_SUPPORT */ -#ifdef ASN_DISABLE_PER_SUPPORT - 0, - 0, - 0, - 0, -#else - OCTET_STRING_decode_uper, - OCTET_STRING_encode_uper, - OCTET_STRING_decode_aper, - OCTET_STRING_encode_aper, -#endif /* ASN_DISABLE_PER_SUPPORT */ - OCTET_STRING_random_fill, - 0 /* Use generic outmost tag fetcher */ -}; -asn_TYPE_descriptor_t asn_DEF_PrintableString = { - "PrintableString", - "PrintableString", - &asn_OP_PrintableString, - asn_DEF_PrintableString_tags, - sizeof(asn_DEF_PrintableString_tags) - / sizeof(asn_DEF_PrintableString_tags[0]) - 1, - asn_DEF_PrintableString_tags, - sizeof(asn_DEF_PrintableString_tags) - / sizeof(asn_DEF_PrintableString_tags[0]), - { 0, &asn_DEF_PrintableString_per_constraints, PrintableString_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - - -int -PrintableString_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, - void *app_key) { - const PrintableString_t *st = (const PrintableString_t *)sptr; - - if(st && st->buf) { - uint8_t *buf = st->buf; - uint8_t *end = buf + st->size; - - /* - * Check the alphabet of the PrintableString. - * ASN.1:1984 (X.409) - */ - for(; buf < end; buf++) { - if(!_PrintableString_alphabet[*buf]) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value byte %ld (%d) " - "not in PrintableString alphabet " - "(%s:%d)", - td->name, - (long)((buf - st->buf) + 1), - *buf, - __FILE__, __LINE__); - return -1; - } - } - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - return 0; -} diff --git a/e2sim/previous/ASN1c/PrintableString.h b/e2sim/previous/ASN1c/PrintableString.h deleted file mode 100644 index a8dd2a7..0000000 --- a/e2sim/previous/ASN1c/PrintableString.h +++ /dev/null @@ -1,55 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/*- - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef _PrintableString_H_ -#define _PrintableString_H_ - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -typedef OCTET_STRING_t PrintableString_t; /* Implemented via OCTET STRING */ - -extern asn_TYPE_descriptor_t asn_DEF_PrintableString; -extern asn_TYPE_operation_t asn_OP_PrintableString; - -asn_constr_check_f PrintableString_constraint; - -#define PrintableString_free OCTET_STRING_free -#define PrintableString_print OCTET_STRING_print_utf8 -#define PrintableString_compare OCTET_STRING_compare -#define PrintableString_decode_ber OCTET_STRING_decode_ber -#define PrintableString_encode_der OCTET_STRING_encode_der -#define PrintableString_decode_xer OCTET_STRING_decode_xer_utf8 -#define PrintableString_encode_xer OCTET_STRING_encode_xer_utf8 -#define PrintableString_decode_uper OCTET_STRING_decode_uper -#define PrintableString_encode_uper OCTET_STRING_encode_uper -#define PrintableString_decode_aper OCTET_STRING_decode_aper -#define PrintableString_encode_aper OCTET_STRING_encode_aper - -#ifdef __cplusplus -} -#endif - -#endif /* _PrintableString_H_ */ diff --git a/e2sim/previous/ASN1c/PriorityLevel.c b/e2sim/previous/ASN1c/PriorityLevel.c deleted file mode 100644 index aa0d47c..0000000 --- a/e2sim/previous/ASN1c/PriorityLevel.c +++ /dev/null @@ -1,79 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "PriorityLevel.h" - -int -PriorityLevel_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 15)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using NativeInteger, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_PriorityLevel_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED, 4, 4, 0, 15 } /* (0..15) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_PriorityLevel_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_PriorityLevel = { - "PriorityLevel", - "PriorityLevel", - &asn_OP_NativeInteger, - asn_DEF_PriorityLevel_tags_1, - sizeof(asn_DEF_PriorityLevel_tags_1) - /sizeof(asn_DEF_PriorityLevel_tags_1[0]), /* 1 */ - asn_DEF_PriorityLevel_tags_1, /* Same as above */ - sizeof(asn_DEF_PriorityLevel_tags_1) - /sizeof(asn_DEF_PriorityLevel_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_PriorityLevel_constr_1, PriorityLevel_constraint }, - 0, 0, /* Defined elsewhere */ - 0 /* No specifics */ -}; - diff --git a/e2sim/previous/ASN1c/PriorityLevel.h b/e2sim/previous/ASN1c/PriorityLevel.h deleted file mode 100644 index 70f6c58..0000000 --- a/e2sim/previous/ASN1c/PriorityLevel.h +++ /dev/null @@ -1,70 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _PriorityLevel_H_ -#define _PriorityLevel_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeInteger.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum PriorityLevel { - PriorityLevel_spare = 0, - PriorityLevel_highest = 1, - PriorityLevel_lowest = 14, - PriorityLevel_no_priority = 15 -} e_PriorityLevel; - -/* PriorityLevel */ -typedef long PriorityLevel_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_PriorityLevel_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_PriorityLevel; -asn_struct_free_f PriorityLevel_free; -asn_struct_print_f PriorityLevel_print; -asn_constr_check_f PriorityLevel_constraint; -ber_type_decoder_f PriorityLevel_decode_ber; -der_type_encoder_f PriorityLevel_encode_der; -xer_type_decoder_f PriorityLevel_decode_xer; -xer_type_encoder_f PriorityLevel_encode_xer; -per_type_decoder_f PriorityLevel_decode_uper; -per_type_encoder_f PriorityLevel_encode_uper; -per_type_decoder_f PriorityLevel_decode_aper; -per_type_encoder_f PriorityLevel_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _PriorityLevel_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/PrivateIE-Container.c b/e2sim/previous/ASN1c/PrivateIE-Container.c deleted file mode 100644 index 2323d10..0000000 --- a/e2sim/previous/ASN1c/PrivateIE-Container.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-Containers" - * found in "../../asnFiles/X2AP-Containers.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "PrivateIE-Container.h" - -#include "PrivateIE-Field.h" -asn_per_constraints_t asn_PER_type_PrivateIE_Container_186P0_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_PrivateIE_Container_186P0_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_PrivateMessage_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_PrivateIE_Container_186P0_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_PrivateIE_Container_186P0_specs_1 = { - sizeof(struct PrivateIE_Container_186P0), - offsetof(struct PrivateIE_Container_186P0, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_PrivateIE_Container_186P0 = { - "PrivateIE-Container", - "PrivateIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_PrivateIE_Container_186P0_tags_1, - sizeof(asn_DEF_PrivateIE_Container_186P0_tags_1) - /sizeof(asn_DEF_PrivateIE_Container_186P0_tags_1[0]), /* 1 */ - asn_DEF_PrivateIE_Container_186P0_tags_1, /* Same as above */ - sizeof(asn_DEF_PrivateIE_Container_186P0_tags_1) - /sizeof(asn_DEF_PrivateIE_Container_186P0_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_PrivateIE_Container_186P0_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_PrivateIE_Container_186P0_1, - 1, /* Single element */ - &asn_SPC_PrivateIE_Container_186P0_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/PrivateIE-Container.h b/e2sim/previous/ASN1c/PrivateIE-Container.h deleted file mode 100644 index eb393f0..0000000 --- a/e2sim/previous/ASN1c/PrivateIE-Container.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-Containers" - * found in "../../asnFiles/X2AP-Containers.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _PrivateIE_Container_H_ -#define _PrivateIE_Container_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct PrivateMessage_IEs; - -/* PrivateIE-Container */ -typedef struct PrivateIE_Container_186P0 { - A_SEQUENCE_OF(struct PrivateMessage_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} PrivateIE_Container_186P0_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_PrivateIE_Container_186P0; -extern asn_SET_OF_specifics_t asn_SPC_PrivateIE_Container_186P0_specs_1; -extern asn_TYPE_member_t asn_MBR_PrivateIE_Container_186P0_1[1]; -extern asn_per_constraints_t asn_PER_type_PrivateIE_Container_186P0_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _PrivateIE_Container_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/PrivateIE-Field.c b/e2sim/previous/ASN1c/PrivateIE-Field.c deleted file mode 100644 index 60c7f79..0000000 --- a/e2sim/previous/ASN1c/PrivateIE-Field.c +++ /dev/null @@ -1,184 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-Containers" - * found in "../../asnFiles/X2AP-Containers.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "PrivateIE-Field.h" - -static int -memb_id_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_criticality_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_value_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_per_constraints_t asn_PER_memb_id_constr_2 CC_NOTUSED = { - { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_3 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_4 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_4 = { - sizeof(struct PrivateMessage_IEs__value), - offsetof(struct PrivateMessage_IEs__value, _asn_ctx), - offsetof(struct PrivateMessage_IEs__value, present), - sizeof(((struct PrivateMessage_IEs__value *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_4 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_value_specs_4 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_PrivateMessage_IEs_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct PrivateMessage_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_PrivateIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_2, memb_id_constraint_1 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct PrivateMessage_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_3, memb_criticality_constraint_1 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct PrivateMessage_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_4, - 0, - { 0, &asn_PER_memb_value_constr_4, memb_value_constraint_1 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_PrivateMessage_IEs_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_PrivateMessage_IEs_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_PrivateMessage_IEs_specs_1 = { - sizeof(struct PrivateMessage_IEs), - offsetof(struct PrivateMessage_IEs, _asn_ctx), - asn_MAP_PrivateMessage_IEs_tag2el_1, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_PrivateMessage_IEs = { - "PrivateMessage-IEs", - "PrivateMessage-IEs", - &asn_OP_SEQUENCE, - asn_DEF_PrivateMessage_IEs_tags_1, - sizeof(asn_DEF_PrivateMessage_IEs_tags_1) - /sizeof(asn_DEF_PrivateMessage_IEs_tags_1[0]), /* 1 */ - asn_DEF_PrivateMessage_IEs_tags_1, /* Same as above */ - sizeof(asn_DEF_PrivateMessage_IEs_tags_1) - /sizeof(asn_DEF_PrivateMessage_IEs_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_PrivateMessage_IEs_1, - 3, /* Elements count */ - &asn_SPC_PrivateMessage_IEs_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/PrivateIE-Field.h b/e2sim/previous/ASN1c/PrivateIE-Field.h deleted file mode 100644 index 474cdc1..0000000 --- a/e2sim/previous/ASN1c/PrivateIE-Field.h +++ /dev/null @@ -1,78 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-Containers" - * found in "../../asnFiles/X2AP-Containers.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _PrivateIE_Field_H_ -#define _PrivateIE_Field_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "PrivateIE-ID.h" -#include "Criticality.h" -#include "ANY.h" -#include "asn_ioc.h" -#include "OPEN_TYPE.h" -#include "constr_CHOICE.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum PrivateMessage_IEs__value_PR { - PrivateMessage_IEs__value_PR_NOTHING /* No components present */ - -} PrivateMessage_IEs__value_PR; - -/* PrivateIE-Field */ -typedef struct PrivateMessage_IEs { - PrivateIE_ID_t id; - Criticality_t criticality; - struct PrivateMessage_IEs__value { - PrivateMessage_IEs__value_PR present; - union PrivateMessage_IEs__value_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} PrivateMessage_IEs_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_PrivateMessage_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_PrivateMessage_IEs_specs_1; -extern asn_TYPE_member_t asn_MBR_PrivateMessage_IEs_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _PrivateIE_Field_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/PrivateIE-ID.c b/e2sim/previous/ASN1c/PrivateIE-ID.c deleted file mode 100644 index 824cd6d..0000000 --- a/e2sim/previous/ASN1c/PrivateIE-ID.c +++ /dev/null @@ -1,110 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-CommonDataTypes" - * found in "../../asnFiles/X2AP-CommonDataTypes.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "PrivateIE-ID.h" - -static int -memb_local_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_per_constraints_t asn_PER_memb_local_constr_2 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_PrivateIE_ID_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_PrivateIE_ID_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct PrivateIE_ID, choice.local), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { 0, &asn_PER_memb_local_constr_2, memb_local_constraint_1 }, - 0, 0, /* No default value */ - "local" - }, - { ATF_NOFLAGS, 0, offsetof(struct PrivateIE_ID, choice.global), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_OBJECT_IDENTIFIER, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "global" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_PrivateIE_ID_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* local */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* global */ -}; -asn_CHOICE_specifics_t asn_SPC_PrivateIE_ID_specs_1 = { - sizeof(struct PrivateIE_ID), - offsetof(struct PrivateIE_ID, _asn_ctx), - offsetof(struct PrivateIE_ID, present), - sizeof(((struct PrivateIE_ID *)0)->present), - asn_MAP_PrivateIE_ID_tag2el_1, - 2, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -asn_TYPE_descriptor_t asn_DEF_PrivateIE_ID = { - "PrivateIE-ID", - "PrivateIE-ID", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, &asn_PER_type_PrivateIE_ID_constr_1, CHOICE_constraint }, - asn_MBR_PrivateIE_ID_1, - 2, /* Elements count */ - &asn_SPC_PrivateIE_ID_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/PrivateIE-ID.h b/e2sim/previous/ASN1c/PrivateIE-ID.h deleted file mode 100644 index 50a6fd9..0000000 --- a/e2sim/previous/ASN1c/PrivateIE-ID.h +++ /dev/null @@ -1,71 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-CommonDataTypes" - * found in "../../asnFiles/X2AP-CommonDataTypes.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _PrivateIE_ID_H_ -#define _PrivateIE_ID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeInteger.h" -#include "OBJECT_IDENTIFIER.h" -#include "constr_CHOICE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum PrivateIE_ID_PR { - PrivateIE_ID_PR_NOTHING, /* No components present */ - PrivateIE_ID_PR_local, - PrivateIE_ID_PR_global -} PrivateIE_ID_PR; - -/* PrivateIE-ID */ -typedef struct PrivateIE_ID { - PrivateIE_ID_PR present; - union PrivateIE_ID_u { - long local; - OBJECT_IDENTIFIER_t global; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} PrivateIE_ID_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_PrivateIE_ID; -extern asn_CHOICE_specifics_t asn_SPC_PrivateIE_ID_specs_1; -extern asn_TYPE_member_t asn_MBR_PrivateIE_ID_1[2]; -extern asn_per_constraints_t asn_PER_type_PrivateIE_ID_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _PrivateIE_ID_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/PrivateMessage.c b/e2sim/previous/ASN1c/PrivateMessage.c deleted file mode 100644 index f6fc704..0000000 --- a/e2sim/previous/ASN1c/PrivateMessage.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "PrivateMessage.h" - -static asn_TYPE_member_t asn_MBR_PrivateMessage_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct PrivateMessage, privateIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_PrivateIE_Container_186P0, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "privateIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_PrivateMessage_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_PrivateMessage_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* privateIEs */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_PrivateMessage_specs_1 = { - sizeof(struct PrivateMessage), - offsetof(struct PrivateMessage, _asn_ctx), - asn_MAP_PrivateMessage_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_PrivateMessage = { - "PrivateMessage", - "PrivateMessage", - &asn_OP_SEQUENCE, - asn_DEF_PrivateMessage_tags_1, - sizeof(asn_DEF_PrivateMessage_tags_1) - /sizeof(asn_DEF_PrivateMessage_tags_1[0]), /* 1 */ - asn_DEF_PrivateMessage_tags_1, /* Same as above */ - sizeof(asn_DEF_PrivateMessage_tags_1) - /sizeof(asn_DEF_PrivateMessage_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_PrivateMessage_1, - 1, /* Elements count */ - &asn_SPC_PrivateMessage_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/PrivateMessage.h b/e2sim/previous/ASN1c/PrivateMessage.h deleted file mode 100644 index 1f3ee5b..0000000 --- a/e2sim/previous/ASN1c/PrivateMessage.h +++ /dev/null @@ -1,60 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _PrivateMessage_H_ -#define _PrivateMessage_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "PrivateIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* PrivateMessage */ -typedef struct PrivateMessage { - PrivateIE_Container_186P0_t privateIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} PrivateMessage_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_PrivateMessage; - -#ifdef __cplusplus -} -#endif - -#endif /* _PrivateMessage_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/ProSeAuthorized.c b/e2sim/previous/ASN1c/ProSeAuthorized.c deleted file mode 100644 index bbebc77..0000000 --- a/e2sim/previous/ASN1c/ProSeAuthorized.c +++ /dev/null @@ -1,91 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "ProSeAuthorized.h" - -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_ProSeAuthorized_1[] = { - { ATF_POINTER, 3, offsetof(struct ProSeAuthorized, proSeDirectDiscovery), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProSeDirectDiscovery, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "proSeDirectDiscovery" - }, - { ATF_POINTER, 2, offsetof(struct ProSeAuthorized, proSeDirectCommunication), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProSeDirectCommunication, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "proSeDirectCommunication" - }, - { ATF_POINTER, 1, offsetof(struct ProSeAuthorized, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P179, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_ProSeAuthorized_oms_1[] = { 0, 1, 2 }; -static const ber_tlv_tag_t asn_DEF_ProSeAuthorized_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ProSeAuthorized_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* proSeDirectDiscovery */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* proSeDirectCommunication */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ProSeAuthorized_specs_1 = { - sizeof(struct ProSeAuthorized), - offsetof(struct ProSeAuthorized, _asn_ctx), - asn_MAP_ProSeAuthorized_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_ProSeAuthorized_oms_1, /* Optional members */ - 3, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ProSeAuthorized = { - "ProSeAuthorized", - "ProSeAuthorized", - &asn_OP_SEQUENCE, - asn_DEF_ProSeAuthorized_tags_1, - sizeof(asn_DEF_ProSeAuthorized_tags_1) - /sizeof(asn_DEF_ProSeAuthorized_tags_1[0]), /* 1 */ - asn_DEF_ProSeAuthorized_tags_1, /* Same as above */ - sizeof(asn_DEF_ProSeAuthorized_tags_1) - /sizeof(asn_DEF_ProSeAuthorized_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ProSeAuthorized_1, - 3, /* Elements count */ - &asn_SPC_ProSeAuthorized_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/ProSeAuthorized.h b/e2sim/previous/ASN1c/ProSeAuthorized.h deleted file mode 100644 index 0a36579..0000000 --- a/e2sim/previous/ASN1c/ProSeAuthorized.h +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _ProSeAuthorized_H_ -#define _ProSeAuthorized_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProSeDirectDiscovery.h" -#include "ProSeDirectCommunication.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* ProSeAuthorized */ -typedef struct ProSeAuthorized { - ProSeDirectDiscovery_t *proSeDirectDiscovery; /* OPTIONAL */ - ProSeDirectCommunication_t *proSeDirectCommunication; /* OPTIONAL */ - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProSeAuthorized_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ProSeAuthorized; -extern asn_SEQUENCE_specifics_t asn_SPC_ProSeAuthorized_specs_1; -extern asn_TYPE_member_t asn_MBR_ProSeAuthorized_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _ProSeAuthorized_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/ProSeDirectCommunication.c b/e2sim/previous/ASN1c/ProSeDirectCommunication.c deleted file mode 100644 index 7eba5a3..0000000 --- a/e2sim/previous/ASN1c/ProSeDirectCommunication.c +++ /dev/null @@ -1,73 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "ProSeDirectCommunication.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_ProSeDirectCommunication_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_ProSeDirectCommunication_value2enum_1[] = { - { 0, 10, "authorized" }, - { 1, 14, "not-authorized" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_ProSeDirectCommunication_enum2value_1[] = { - 0, /* authorized(0) */ - 1 /* not-authorized(1) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_ProSeDirectCommunication_specs_1 = { - asn_MAP_ProSeDirectCommunication_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_ProSeDirectCommunication_enum2value_1, /* N => "tag"; sorted by N */ - 2, /* Number of elements in the maps */ - 3, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_ProSeDirectCommunication_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ProSeDirectCommunication = { - "ProSeDirectCommunication", - "ProSeDirectCommunication", - &asn_OP_NativeEnumerated, - asn_DEF_ProSeDirectCommunication_tags_1, - sizeof(asn_DEF_ProSeDirectCommunication_tags_1) - /sizeof(asn_DEF_ProSeDirectCommunication_tags_1[0]), /* 1 */ - asn_DEF_ProSeDirectCommunication_tags_1, /* Same as above */ - sizeof(asn_DEF_ProSeDirectCommunication_tags_1) - /sizeof(asn_DEF_ProSeDirectCommunication_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_ProSeDirectCommunication_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_ProSeDirectCommunication_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/ProSeDirectCommunication.h b/e2sim/previous/ASN1c/ProSeDirectCommunication.h deleted file mode 100644 index 5528268..0000000 --- a/e2sim/previous/ASN1c/ProSeDirectCommunication.h +++ /dev/null @@ -1,72 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _ProSeDirectCommunication_H_ -#define _ProSeDirectCommunication_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum ProSeDirectCommunication { - ProSeDirectCommunication_authorized = 0, - ProSeDirectCommunication_not_authorized = 1 - /* - * Enumeration is extensible - */ -} e_ProSeDirectCommunication; - -/* ProSeDirectCommunication */ -typedef long ProSeDirectCommunication_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_ProSeDirectCommunication_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_ProSeDirectCommunication; -extern const asn_INTEGER_specifics_t asn_SPC_ProSeDirectCommunication_specs_1; -asn_struct_free_f ProSeDirectCommunication_free; -asn_struct_print_f ProSeDirectCommunication_print; -asn_constr_check_f ProSeDirectCommunication_constraint; -ber_type_decoder_f ProSeDirectCommunication_decode_ber; -der_type_encoder_f ProSeDirectCommunication_encode_der; -xer_type_decoder_f ProSeDirectCommunication_decode_xer; -xer_type_encoder_f ProSeDirectCommunication_encode_xer; -per_type_decoder_f ProSeDirectCommunication_decode_uper; -per_type_encoder_f ProSeDirectCommunication_encode_uper; -per_type_decoder_f ProSeDirectCommunication_decode_aper; -per_type_encoder_f ProSeDirectCommunication_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _ProSeDirectCommunication_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/ProSeDirectDiscovery.c b/e2sim/previous/ASN1c/ProSeDirectDiscovery.c deleted file mode 100644 index df2f637..0000000 --- a/e2sim/previous/ASN1c/ProSeDirectDiscovery.c +++ /dev/null @@ -1,73 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "ProSeDirectDiscovery.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_ProSeDirectDiscovery_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_ProSeDirectDiscovery_value2enum_1[] = { - { 0, 10, "authorized" }, - { 1, 14, "not-authorized" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_ProSeDirectDiscovery_enum2value_1[] = { - 0, /* authorized(0) */ - 1 /* not-authorized(1) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_ProSeDirectDiscovery_specs_1 = { - asn_MAP_ProSeDirectDiscovery_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_ProSeDirectDiscovery_enum2value_1, /* N => "tag"; sorted by N */ - 2, /* Number of elements in the maps */ - 3, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_ProSeDirectDiscovery_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ProSeDirectDiscovery = { - "ProSeDirectDiscovery", - "ProSeDirectDiscovery", - &asn_OP_NativeEnumerated, - asn_DEF_ProSeDirectDiscovery_tags_1, - sizeof(asn_DEF_ProSeDirectDiscovery_tags_1) - /sizeof(asn_DEF_ProSeDirectDiscovery_tags_1[0]), /* 1 */ - asn_DEF_ProSeDirectDiscovery_tags_1, /* Same as above */ - sizeof(asn_DEF_ProSeDirectDiscovery_tags_1) - /sizeof(asn_DEF_ProSeDirectDiscovery_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_ProSeDirectDiscovery_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_ProSeDirectDiscovery_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/ProSeDirectDiscovery.h b/e2sim/previous/ASN1c/ProSeDirectDiscovery.h deleted file mode 100644 index 6fc10b3..0000000 --- a/e2sim/previous/ASN1c/ProSeDirectDiscovery.h +++ /dev/null @@ -1,72 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _ProSeDirectDiscovery_H_ -#define _ProSeDirectDiscovery_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum ProSeDirectDiscovery { - ProSeDirectDiscovery_authorized = 0, - ProSeDirectDiscovery_not_authorized = 1 - /* - * Enumeration is extensible - */ -} e_ProSeDirectDiscovery; - -/* ProSeDirectDiscovery */ -typedef long ProSeDirectDiscovery_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_ProSeDirectDiscovery_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_ProSeDirectDiscovery; -extern const asn_INTEGER_specifics_t asn_SPC_ProSeDirectDiscovery_specs_1; -asn_struct_free_f ProSeDirectDiscovery_free; -asn_struct_print_f ProSeDirectDiscovery_print; -asn_constr_check_f ProSeDirectDiscovery_constraint; -ber_type_decoder_f ProSeDirectDiscovery_decode_ber; -der_type_encoder_f ProSeDirectDiscovery_encode_der; -xer_type_decoder_f ProSeDirectDiscovery_decode_xer; -xer_type_encoder_f ProSeDirectDiscovery_encode_xer; -per_type_decoder_f ProSeDirectDiscovery_decode_uper; -per_type_encoder_f ProSeDirectDiscovery_encode_uper; -per_type_decoder_f ProSeDirectDiscovery_decode_aper; -per_type_encoder_f ProSeDirectDiscovery_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _ProSeDirectDiscovery_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/ProSeUEtoNetworkRelaying.c b/e2sim/previous/ASN1c/ProSeUEtoNetworkRelaying.c deleted file mode 100644 index d19fcb4..0000000 --- a/e2sim/previous/ASN1c/ProSeUEtoNetworkRelaying.c +++ /dev/null @@ -1,73 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "ProSeUEtoNetworkRelaying.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_ProSeUEtoNetworkRelaying_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_ProSeUEtoNetworkRelaying_value2enum_1[] = { - { 0, 10, "authorized" }, - { 1, 14, "not-authorized" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_ProSeUEtoNetworkRelaying_enum2value_1[] = { - 0, /* authorized(0) */ - 1 /* not-authorized(1) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_ProSeUEtoNetworkRelaying_specs_1 = { - asn_MAP_ProSeUEtoNetworkRelaying_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_ProSeUEtoNetworkRelaying_enum2value_1, /* N => "tag"; sorted by N */ - 2, /* Number of elements in the maps */ - 3, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_ProSeUEtoNetworkRelaying_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ProSeUEtoNetworkRelaying = { - "ProSeUEtoNetworkRelaying", - "ProSeUEtoNetworkRelaying", - &asn_OP_NativeEnumerated, - asn_DEF_ProSeUEtoNetworkRelaying_tags_1, - sizeof(asn_DEF_ProSeUEtoNetworkRelaying_tags_1) - /sizeof(asn_DEF_ProSeUEtoNetworkRelaying_tags_1[0]), /* 1 */ - asn_DEF_ProSeUEtoNetworkRelaying_tags_1, /* Same as above */ - sizeof(asn_DEF_ProSeUEtoNetworkRelaying_tags_1) - /sizeof(asn_DEF_ProSeUEtoNetworkRelaying_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_ProSeUEtoNetworkRelaying_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_ProSeUEtoNetworkRelaying_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/ProSeUEtoNetworkRelaying.h b/e2sim/previous/ASN1c/ProSeUEtoNetworkRelaying.h deleted file mode 100644 index d8c8c99..0000000 --- a/e2sim/previous/ASN1c/ProSeUEtoNetworkRelaying.h +++ /dev/null @@ -1,72 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _ProSeUEtoNetworkRelaying_H_ -#define _ProSeUEtoNetworkRelaying_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum ProSeUEtoNetworkRelaying { - ProSeUEtoNetworkRelaying_authorized = 0, - ProSeUEtoNetworkRelaying_not_authorized = 1 - /* - * Enumeration is extensible - */ -} e_ProSeUEtoNetworkRelaying; - -/* ProSeUEtoNetworkRelaying */ -typedef long ProSeUEtoNetworkRelaying_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_ProSeUEtoNetworkRelaying_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_ProSeUEtoNetworkRelaying; -extern const asn_INTEGER_specifics_t asn_SPC_ProSeUEtoNetworkRelaying_specs_1; -asn_struct_free_f ProSeUEtoNetworkRelaying_free; -asn_struct_print_f ProSeUEtoNetworkRelaying_print; -asn_constr_check_f ProSeUEtoNetworkRelaying_constraint; -ber_type_decoder_f ProSeUEtoNetworkRelaying_decode_ber; -der_type_encoder_f ProSeUEtoNetworkRelaying_encode_der; -xer_type_decoder_f ProSeUEtoNetworkRelaying_decode_xer; -xer_type_encoder_f ProSeUEtoNetworkRelaying_encode_xer; -per_type_decoder_f ProSeUEtoNetworkRelaying_decode_uper; -per_type_encoder_f ProSeUEtoNetworkRelaying_encode_uper; -per_type_decoder_f ProSeUEtoNetworkRelaying_decode_aper; -per_type_encoder_f ProSeUEtoNetworkRelaying_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _ProSeUEtoNetworkRelaying_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/ProcedureCode.c b/e2sim/previous/ASN1c/ProcedureCode.c deleted file mode 100644 index eaa0aa3..0000000 --- a/e2sim/previous/ASN1c/ProcedureCode.c +++ /dev/null @@ -1,79 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-CommonDataTypes" - * found in "../../asnFiles/X2AP-CommonDataTypes.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "ProcedureCode.h" - -int -ProcedureCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 255)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using NativeInteger, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_ProcedureCode_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_ProcedureCode_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ProcedureCode = { - "ProcedureCode", - "ProcedureCode", - &asn_OP_NativeInteger, - asn_DEF_ProcedureCode_tags_1, - sizeof(asn_DEF_ProcedureCode_tags_1) - /sizeof(asn_DEF_ProcedureCode_tags_1[0]), /* 1 */ - asn_DEF_ProcedureCode_tags_1, /* Same as above */ - sizeof(asn_DEF_ProcedureCode_tags_1) - /sizeof(asn_DEF_ProcedureCode_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_ProcedureCode_constr_1, ProcedureCode_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/previous/ASN1c/ProcedureCode.h b/e2sim/previous/ASN1c/ProcedureCode.h deleted file mode 100644 index 63a7c81..0000000 --- a/e2sim/previous/ASN1c/ProcedureCode.h +++ /dev/null @@ -1,114 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-CommonDataTypes" - * found in "../../asnFiles/X2AP-CommonDataTypes.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _ProcedureCode_H_ -#define _ProcedureCode_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeInteger.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* ProcedureCode */ -typedef long ProcedureCode_t; - -/* Implementation */ -#define ProcedureCode_id_ricSubscription ((ProcedureCode_t)201) -#define ProcedureCode_id_ricSubscriptionDelete ((ProcedureCode_t)202) -#define ProcedureCode_id_ricServiceUpdate ((ProcedureCode_t)203) -#define ProcedureCode_id_ricControl ((ProcedureCode_t)204) -#define ProcedureCode_id_ricIndication ((ProcedureCode_t)205) -#define ProcedureCode_id_ricServiceQuery ((ProcedureCode_t)206) -#define ProcedureCode_id_handoverPreparation ((ProcedureCode_t)0) -#define ProcedureCode_id_handoverCancel ((ProcedureCode_t)1) -#define ProcedureCode_id_loadIndication ((ProcedureCode_t)2) -#define ProcedureCode_id_errorIndication ((ProcedureCode_t)3) -#define ProcedureCode_id_snStatusTransfer ((ProcedureCode_t)4) -#define ProcedureCode_id_uEContextRelease ((ProcedureCode_t)5) -#define ProcedureCode_id_x2Setup ((ProcedureCode_t)6) -#define ProcedureCode_id_reset ((ProcedureCode_t)7) -#define ProcedureCode_id_eNBConfigurationUpdate ((ProcedureCode_t)8) -#define ProcedureCode_id_resourceStatusReportingInitiation ((ProcedureCode_t)9) -#define ProcedureCode_id_resourceStatusReporting ((ProcedureCode_t)10) -#define ProcedureCode_id_privateMessage ((ProcedureCode_t)11) -#define ProcedureCode_id_mobilitySettingsChange ((ProcedureCode_t)12) -#define ProcedureCode_id_rLFIndication ((ProcedureCode_t)13) -#define ProcedureCode_id_handoverReport ((ProcedureCode_t)14) -#define ProcedureCode_id_cellActivation ((ProcedureCode_t)15) -#define ProcedureCode_id_x2Release ((ProcedureCode_t)16) -#define ProcedureCode_id_x2APMessageTransfer ((ProcedureCode_t)17) -#define ProcedureCode_id_x2Removal ((ProcedureCode_t)18) -#define ProcedureCode_id_seNBAdditionPreparation ((ProcedureCode_t)19) -#define ProcedureCode_id_seNBReconfigurationCompletion ((ProcedureCode_t)20) -#define ProcedureCode_id_meNBinitiatedSeNBModificationPreparation ((ProcedureCode_t)21) -#define ProcedureCode_id_seNBinitiatedSeNBModification ((ProcedureCode_t)22) -#define ProcedureCode_id_meNBinitiatedSeNBRelease ((ProcedureCode_t)23) -#define ProcedureCode_id_seNBinitiatedSeNBRelease ((ProcedureCode_t)24) -#define ProcedureCode_id_seNBCounterCheck ((ProcedureCode_t)25) -#define ProcedureCode_id_retrieveUEContext ((ProcedureCode_t)26) -#define ProcedureCode_id_sgNBAdditionPreparation ((ProcedureCode_t)27) -#define ProcedureCode_id_sgNBReconfigurationCompletion ((ProcedureCode_t)28) -#define ProcedureCode_id_meNBinitiatedSgNBModificationPreparation ((ProcedureCode_t)29) -#define ProcedureCode_id_sgNBinitiatedSgNBModification ((ProcedureCode_t)30) -#define ProcedureCode_id_meNBinitiatedSgNBRelease ((ProcedureCode_t)31) -#define ProcedureCode_id_sgNBinitiatedSgNBRelease ((ProcedureCode_t)32) -#define ProcedureCode_id_sgNBCounterCheck ((ProcedureCode_t)33) -#define ProcedureCode_id_sgNBChange ((ProcedureCode_t)34) -#define ProcedureCode_id_rRCTransfer ((ProcedureCode_t)35) -#define ProcedureCode_id_endcX2Setup ((ProcedureCode_t)36) -#define ProcedureCode_id_endcConfigurationUpdate ((ProcedureCode_t)37) -#define ProcedureCode_id_secondaryRATDataUsageReport ((ProcedureCode_t)38) -#define ProcedureCode_id_endcCellActivation ((ProcedureCode_t)39) -#define ProcedureCode_id_endcPartialReset ((ProcedureCode_t)40) -#define ProcedureCode_id_eUTRANRCellResourceCoordination ((ProcedureCode_t)41) -#define ProcedureCode_id_SgNBActivityNotification ((ProcedureCode_t)42) -#define ProcedureCode_id_endcX2Removal ((ProcedureCode_t)43) -#define ProcedureCode_id_dataForwardingAddressIndication ((ProcedureCode_t)44) -#define ProcedureCode_id_gNBStatusIndication ((ProcedureCode_t)45) -extern asn_per_constraints_t asn_PER_type_ProcedureCode_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_ProcedureCode; -asn_struct_free_f ProcedureCode_free; -asn_struct_print_f ProcedureCode_print; -asn_constr_check_f ProcedureCode_constraint; -ber_type_decoder_f ProcedureCode_decode_ber; -der_type_encoder_f ProcedureCode_encode_der; -xer_type_decoder_f ProcedureCode_decode_xer; -xer_type_encoder_f ProcedureCode_encode_xer; -per_type_decoder_f ProcedureCode_decode_uper; -per_type_encoder_f ProcedureCode_encode_uper; -per_type_decoder_f ProcedureCode_decode_aper; -per_type_encoder_f ProcedureCode_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _ProcedureCode_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/ProtectedEUTRAResourceIndication.c b/e2sim/previous/ASN1c/ProtectedEUTRAResourceIndication.c deleted file mode 100644 index 15f23c8..0000000 --- a/e2sim/previous/ASN1c/ProtectedEUTRAResourceIndication.c +++ /dev/null @@ -1,201 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "ProtectedEUTRAResourceIndication.h" - -#include "ProtocolExtensionContainer.h" -static int -memb_activationSFN_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 1023)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_mBSFNControlRegionLength_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 3)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_pDCCHRegionLength_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 1 && value <= 3)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_per_constraints_t asn_PER_memb_activationSFN_constr_2 CC_NOTUSED = { - { APC_CONSTRAINED, 10, 10, 0, 1023 } /* (0..1023) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_mBSFNControlRegionLength_constr_4 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 3 } /* (0..3) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_pDCCHRegionLength_constr_5 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 1, 3 } /* (1..3) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_ProtectedEUTRAResourceIndication_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct ProtectedEUTRAResourceIndication, activationSFN), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { 0, &asn_PER_memb_activationSFN_constr_2, memb_activationSFN_constraint_1 }, - 0, 0, /* No default value */ - "activationSFN" - }, - { ATF_NOFLAGS, 0, offsetof(struct ProtectedEUTRAResourceIndication, protectedResourceList), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtectedResourceList, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protectedResourceList" - }, - { ATF_POINTER, 3, offsetof(struct ProtectedEUTRAResourceIndication, mBSFNControlRegionLength), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { 0, &asn_PER_memb_mBSFNControlRegionLength_constr_4, memb_mBSFNControlRegionLength_constraint_1 }, - 0, 0, /* No default value */ - "mBSFNControlRegionLength" - }, - { ATF_POINTER, 2, offsetof(struct ProtectedEUTRAResourceIndication, pDCCHRegionLength), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { 0, &asn_PER_memb_pDCCHRegionLength_constr_5, memb_pDCCHRegionLength_constraint_1 }, - 0, 0, /* No default value */ - "pDCCHRegionLength" - }, - { ATF_POINTER, 1, offsetof(struct ProtectedEUTRAResourceIndication, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (4 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P180, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_ProtectedEUTRAResourceIndication_oms_1[] = { 2, 3, 4 }; -static const ber_tlv_tag_t asn_DEF_ProtectedEUTRAResourceIndication_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ProtectedEUTRAResourceIndication_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* activationSFN */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* protectedResourceList */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* mBSFNControlRegionLength */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* pDCCHRegionLength */ - { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ProtectedEUTRAResourceIndication_specs_1 = { - sizeof(struct ProtectedEUTRAResourceIndication), - offsetof(struct ProtectedEUTRAResourceIndication, _asn_ctx), - asn_MAP_ProtectedEUTRAResourceIndication_tag2el_1, - 5, /* Count of tags in the map */ - asn_MAP_ProtectedEUTRAResourceIndication_oms_1, /* Optional members */ - 3, 0, /* Root/Additions */ - 5, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtectedEUTRAResourceIndication = { - "ProtectedEUTRAResourceIndication", - "ProtectedEUTRAResourceIndication", - &asn_OP_SEQUENCE, - asn_DEF_ProtectedEUTRAResourceIndication_tags_1, - sizeof(asn_DEF_ProtectedEUTRAResourceIndication_tags_1) - /sizeof(asn_DEF_ProtectedEUTRAResourceIndication_tags_1[0]), /* 1 */ - asn_DEF_ProtectedEUTRAResourceIndication_tags_1, /* Same as above */ - sizeof(asn_DEF_ProtectedEUTRAResourceIndication_tags_1) - /sizeof(asn_DEF_ProtectedEUTRAResourceIndication_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ProtectedEUTRAResourceIndication_1, - 5, /* Elements count */ - &asn_SPC_ProtectedEUTRAResourceIndication_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/ProtectedEUTRAResourceIndication.h b/e2sim/previous/ASN1c/ProtectedEUTRAResourceIndication.h deleted file mode 100644 index f3679cc..0000000 --- a/e2sim/previous/ASN1c/ProtectedEUTRAResourceIndication.h +++ /dev/null @@ -1,70 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _ProtectedEUTRAResourceIndication_H_ -#define _ProtectedEUTRAResourceIndication_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeInteger.h" -#include "ProtectedResourceList.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* ProtectedEUTRAResourceIndication */ -typedef struct ProtectedEUTRAResourceIndication { - long activationSFN; - ProtectedResourceList_t protectedResourceList; - long *mBSFNControlRegionLength; /* OPTIONAL */ - long *pDCCHRegionLength; /* OPTIONAL */ - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtectedEUTRAResourceIndication_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ProtectedEUTRAResourceIndication; -extern asn_SEQUENCE_specifics_t asn_SPC_ProtectedEUTRAResourceIndication_specs_1; -extern asn_TYPE_member_t asn_MBR_ProtectedEUTRAResourceIndication_1[5]; - -#ifdef __cplusplus -} -#endif - -#endif /* _ProtectedEUTRAResourceIndication_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/ProtectedFootprintTimePattern.c b/e2sim/previous/ASN1c/ProtectedFootprintTimePattern.c deleted file mode 100644 index 4eb1295..0000000 --- a/e2sim/previous/ASN1c/ProtectedFootprintTimePattern.c +++ /dev/null @@ -1,151 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "ProtectedFootprintTimePattern.h" - -#include "ProtocolExtensionContainer.h" -static int -memb_protectedFootprintTimePeriodicity_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 1 && value <= 320)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_protectedFootprintStartTime_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 1 && value <= 20)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_per_constraints_t asn_PER_memb_protectedFootprintTimePeriodicity_constr_2 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 9, 9, 1, 320 } /* (1..320,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_protectedFootprintStartTime_constr_3 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 5, 5, 1, 20 } /* (1..20,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_ProtectedFootprintTimePattern_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct ProtectedFootprintTimePattern, protectedFootprintTimePeriodicity), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { 0, &asn_PER_memb_protectedFootprintTimePeriodicity_constr_2, memb_protectedFootprintTimePeriodicity_constraint_1 }, - 0, 0, /* No default value */ - "protectedFootprintTimePeriodicity" - }, - { ATF_NOFLAGS, 0, offsetof(struct ProtectedFootprintTimePattern, protectedFootprintStartTime), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { 0, &asn_PER_memb_protectedFootprintStartTime_constr_3, memb_protectedFootprintStartTime_constraint_1 }, - 0, 0, /* No default value */ - "protectedFootprintStartTime" - }, - { ATF_POINTER, 1, offsetof(struct ProtectedFootprintTimePattern, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P181, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_ProtectedFootprintTimePattern_oms_1[] = { 2 }; -static const ber_tlv_tag_t asn_DEF_ProtectedFootprintTimePattern_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ProtectedFootprintTimePattern_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* protectedFootprintTimePeriodicity */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* protectedFootprintStartTime */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ProtectedFootprintTimePattern_specs_1 = { - sizeof(struct ProtectedFootprintTimePattern), - offsetof(struct ProtectedFootprintTimePattern, _asn_ctx), - asn_MAP_ProtectedFootprintTimePattern_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_ProtectedFootprintTimePattern_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtectedFootprintTimePattern = { - "ProtectedFootprintTimePattern", - "ProtectedFootprintTimePattern", - &asn_OP_SEQUENCE, - asn_DEF_ProtectedFootprintTimePattern_tags_1, - sizeof(asn_DEF_ProtectedFootprintTimePattern_tags_1) - /sizeof(asn_DEF_ProtectedFootprintTimePattern_tags_1[0]), /* 1 */ - asn_DEF_ProtectedFootprintTimePattern_tags_1, /* Same as above */ - sizeof(asn_DEF_ProtectedFootprintTimePattern_tags_1) - /sizeof(asn_DEF_ProtectedFootprintTimePattern_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ProtectedFootprintTimePattern_1, - 3, /* Elements count */ - &asn_SPC_ProtectedFootprintTimePattern_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/ProtectedFootprintTimePattern.h b/e2sim/previous/ASN1c/ProtectedFootprintTimePattern.h deleted file mode 100644 index 447cc25..0000000 --- a/e2sim/previous/ASN1c/ProtectedFootprintTimePattern.h +++ /dev/null @@ -1,67 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _ProtectedFootprintTimePattern_H_ -#define _ProtectedFootprintTimePattern_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeInteger.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* ProtectedFootprintTimePattern */ -typedef struct ProtectedFootprintTimePattern { - long protectedFootprintTimePeriodicity; - long protectedFootprintStartTime; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtectedFootprintTimePattern_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ProtectedFootprintTimePattern; -extern asn_SEQUENCE_specifics_t asn_SPC_ProtectedFootprintTimePattern_specs_1; -extern asn_TYPE_member_t asn_MBR_ProtectedFootprintTimePattern_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _ProtectedFootprintTimePattern_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/ProtectedResourceList-Item.c b/e2sim/previous/ASN1c/ProtectedResourceList-Item.c deleted file mode 100644 index 4d6a644..0000000 --- a/e2sim/previous/ASN1c/ProtectedResourceList-Item.c +++ /dev/null @@ -1,183 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "ProtectedResourceList-Item.h" - -#include "ProtocolExtensionContainer.h" -static int -memb_intraPRBProtectedResourceFootprint_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if(st->size > 0) { - /* Size in bits */ - size = 8 * st->size - (st->bits_unused & 0x07); - } else { - size = 0; - } - - if((size == 84)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_protectedFootprintFrequencyPattern_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if(st->size > 0) { - /* Size in bits */ - size = 8 * st->size - (st->bits_unused & 0x07); - } else { - size = 0; - } - - if((size >= 6 && size <= 110)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_per_constraints_t asn_PER_memb_intraPRBProtectedResourceFootprint_constr_3 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 84, 84 } /* (SIZE(84..84,...)) */, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_protectedFootprintFrequencyPattern_constr_4 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED | APC_EXTENSIBLE, 7, 7, 6, 110 } /* (SIZE(6..110,...)) */, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_ProtectedResourceList_Item_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct ProtectedResourceList_Item, resourceType), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ResourceType, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "resourceType" - }, - { ATF_NOFLAGS, 0, offsetof(struct ProtectedResourceList_Item, intraPRBProtectedResourceFootprint), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_BIT_STRING, - 0, - { 0, &asn_PER_memb_intraPRBProtectedResourceFootprint_constr_3, memb_intraPRBProtectedResourceFootprint_constraint_1 }, - 0, 0, /* No default value */ - "intraPRBProtectedResourceFootprint" - }, - { ATF_NOFLAGS, 0, offsetof(struct ProtectedResourceList_Item, protectedFootprintFrequencyPattern), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_BIT_STRING, - 0, - { 0, &asn_PER_memb_protectedFootprintFrequencyPattern_constr_4, memb_protectedFootprintFrequencyPattern_constraint_1 }, - 0, 0, /* No default value */ - "protectedFootprintFrequencyPattern" - }, - { ATF_NOFLAGS, 0, offsetof(struct ProtectedResourceList_Item, protectedFootprintTimePattern), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtectedFootprintTimePattern, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protectedFootprintTimePattern" - }, - { ATF_POINTER, 1, offsetof(struct ProtectedResourceList_Item, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (4 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P182, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_ProtectedResourceList_Item_oms_1[] = { 4 }; -static const ber_tlv_tag_t asn_DEF_ProtectedResourceList_Item_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ProtectedResourceList_Item_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* resourceType */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* intraPRBProtectedResourceFootprint */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* protectedFootprintFrequencyPattern */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* protectedFootprintTimePattern */ - { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ProtectedResourceList_Item_specs_1 = { - sizeof(struct ProtectedResourceList_Item), - offsetof(struct ProtectedResourceList_Item, _asn_ctx), - asn_MAP_ProtectedResourceList_Item_tag2el_1, - 5, /* Count of tags in the map */ - asn_MAP_ProtectedResourceList_Item_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 5, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtectedResourceList_Item = { - "ProtectedResourceList-Item", - "ProtectedResourceList-Item", - &asn_OP_SEQUENCE, - asn_DEF_ProtectedResourceList_Item_tags_1, - sizeof(asn_DEF_ProtectedResourceList_Item_tags_1) - /sizeof(asn_DEF_ProtectedResourceList_Item_tags_1[0]), /* 1 */ - asn_DEF_ProtectedResourceList_Item_tags_1, /* Same as above */ - sizeof(asn_DEF_ProtectedResourceList_Item_tags_1) - /sizeof(asn_DEF_ProtectedResourceList_Item_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ProtectedResourceList_Item_1, - 5, /* Elements count */ - &asn_SPC_ProtectedResourceList_Item_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/ProtectedResourceList-Item.h b/e2sim/previous/ASN1c/ProtectedResourceList-Item.h deleted file mode 100644 index 7732467..0000000 --- a/e2sim/previous/ASN1c/ProtectedResourceList-Item.h +++ /dev/null @@ -1,71 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _ProtectedResourceList_Item_H_ -#define _ProtectedResourceList_Item_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ResourceType.h" -#include "BIT_STRING.h" -#include "ProtectedFootprintTimePattern.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* ProtectedResourceList-Item */ -typedef struct ProtectedResourceList_Item { - ResourceType_t resourceType; - BIT_STRING_t intraPRBProtectedResourceFootprint; - BIT_STRING_t protectedFootprintFrequencyPattern; - ProtectedFootprintTimePattern_t protectedFootprintTimePattern; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtectedResourceList_Item_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ProtectedResourceList_Item; -extern asn_SEQUENCE_specifics_t asn_SPC_ProtectedResourceList_Item_specs_1; -extern asn_TYPE_member_t asn_MBR_ProtectedResourceList_Item_1[5]; - -#ifdef __cplusplus -} -#endif - -#endif /* _ProtectedResourceList_Item_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/ProtectedResourceList.c b/e2sim/previous/ASN1c/ProtectedResourceList.c deleted file mode 100644 index 9521e19..0000000 --- a/e2sim/previous/ASN1c/ProtectedResourceList.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "ProtectedResourceList.h" - -#include "ProtectedResourceList-Item.h" -asn_per_constraints_t asn_PER_type_ProtectedResourceList_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 4, 4, 1, 16 } /* (SIZE(1..16)) */, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_ProtectedResourceList_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ProtectedResourceList_Item, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtectedResourceList_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtectedResourceList_specs_1 = { - sizeof(struct ProtectedResourceList), - offsetof(struct ProtectedResourceList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtectedResourceList = { - "ProtectedResourceList", - "ProtectedResourceList", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtectedResourceList_tags_1, - sizeof(asn_DEF_ProtectedResourceList_tags_1) - /sizeof(asn_DEF_ProtectedResourceList_tags_1[0]), /* 1 */ - asn_DEF_ProtectedResourceList_tags_1, /* Same as above */ - sizeof(asn_DEF_ProtectedResourceList_tags_1) - /sizeof(asn_DEF_ProtectedResourceList_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_ProtectedResourceList_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_ProtectedResourceList_1, - 1, /* Single element */ - &asn_SPC_ProtectedResourceList_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/ProtectedResourceList.h b/e2sim/previous/ASN1c/ProtectedResourceList.h deleted file mode 100644 index 7bd9811..0000000 --- a/e2sim/previous/ASN1c/ProtectedResourceList.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _ProtectedResourceList_H_ -#define _ProtectedResourceList_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtectedResourceList_Item; - -/* ProtectedResourceList */ -typedef struct ProtectedResourceList { - A_SEQUENCE_OF(struct ProtectedResourceList_Item) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtectedResourceList_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ProtectedResourceList; -extern asn_SET_OF_specifics_t asn_SPC_ProtectedResourceList_specs_1; -extern asn_TYPE_member_t asn_MBR_ProtectedResourceList_1[1]; -extern asn_per_constraints_t asn_PER_type_ProtectedResourceList_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _ProtectedResourceList_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/ProtocolExtensionContainer.c b/e2sim/previous/ASN1c/ProtocolExtensionContainer.c deleted file mode 100644 index d0a5147..0000000 --- a/e2sim/previous/ASN1c/ProtocolExtensionContainer.c +++ /dev/null @@ -1,8948 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-Containers" - * found in "../../asnFiles/X2AP-Containers.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "ProtocolExtensionContainer.h" - -#include "ProtocolExtensionField.h" -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P0_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P1_constr_3 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P2_constr_5 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P3_constr_7 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P4_constr_9 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P5_constr_11 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P6_constr_13 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P7_constr_15 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P8_constr_17 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P9_constr_19 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P10_constr_21 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P11_constr_23 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P12_constr_25 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P13_constr_27 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P14_constr_29 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P15_constr_31 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P16_constr_33 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P17_constr_35 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P18_constr_37 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P19_constr_39 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P20_constr_41 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P21_constr_43 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P22_constr_45 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P23_constr_47 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P24_constr_49 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P25_constr_51 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P26_constr_53 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P27_constr_55 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P28_constr_57 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P29_constr_59 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P30_constr_61 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P31_constr_63 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P32_constr_65 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P33_constr_67 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P34_constr_69 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P35_constr_71 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P36_constr_73 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P37_constr_75 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P38_constr_77 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P39_constr_79 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P40_constr_81 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P41_constr_83 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P42_constr_85 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P43_constr_87 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P44_constr_89 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P45_constr_91 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P46_constr_93 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P47_constr_95 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P48_constr_97 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P49_constr_99 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P50_constr_101 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P51_constr_103 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P52_constr_105 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P53_constr_107 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P54_constr_109 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P55_constr_111 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P56_constr_113 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P57_constr_115 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P58_constr_117 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P59_constr_119 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P60_constr_121 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P61_constr_123 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P62_constr_125 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P63_constr_127 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P64_constr_129 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P65_constr_131 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P66_constr_133 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P67_constr_135 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P68_constr_137 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P69_constr_139 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P70_constr_141 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P71_constr_143 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P72_constr_145 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P73_constr_147 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P74_constr_149 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P75_constr_151 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P76_constr_153 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P77_constr_155 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P78_constr_157 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P79_constr_159 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P80_constr_161 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P81_constr_163 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P82_constr_165 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P83_constr_167 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P84_constr_169 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P85_constr_171 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P86_constr_173 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P87_constr_175 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P88_constr_177 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P89_constr_179 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P90_constr_181 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P91_constr_183 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P92_constr_185 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P93_constr_187 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P94_constr_189 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P95_constr_191 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P96_constr_193 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P97_constr_195 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P98_constr_197 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P99_constr_199 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P100_constr_201 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P101_constr_203 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P102_constr_205 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P103_constr_207 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P104_constr_209 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P105_constr_211 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P106_constr_213 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P107_constr_215 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P108_constr_217 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P109_constr_219 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P110_constr_221 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P111_constr_223 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P112_constr_225 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P113_constr_227 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P114_constr_229 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P115_constr_231 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P116_constr_233 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P117_constr_235 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P118_constr_237 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P119_constr_239 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P120_constr_241 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P121_constr_243 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P122_constr_245 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P123_constr_247 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P124_constr_249 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P125_constr_251 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P126_constr_253 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P127_constr_255 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P128_constr_257 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P129_constr_259 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P130_constr_261 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P131_constr_263 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P132_constr_265 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P133_constr_267 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P134_constr_269 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P135_constr_271 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P136_constr_273 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P137_constr_275 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P138_constr_277 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P139_constr_279 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P140_constr_281 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P141_constr_283 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P142_constr_285 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P143_constr_287 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P144_constr_289 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P145_constr_291 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P146_constr_293 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P147_constr_295 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P148_constr_297 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P149_constr_299 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P150_constr_301 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P151_constr_303 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P152_constr_305 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P153_constr_307 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P154_constr_309 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P155_constr_311 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P156_constr_313 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P157_constr_315 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P158_constr_317 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P159_constr_319 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P160_constr_321 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P161_constr_323 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P162_constr_325 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P163_constr_327 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P164_constr_329 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P165_constr_331 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P166_constr_333 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P167_constr_335 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P168_constr_337 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P169_constr_339 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P170_constr_341 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P171_constr_343 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P172_constr_345 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P173_constr_347 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P174_constr_349 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P175_constr_351 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P176_constr_353 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P177_constr_355 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P178_constr_357 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P179_constr_359 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P180_constr_361 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P181_constr_363 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P182_constr_365 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P183_constr_367 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P184_constr_369 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P185_constr_371 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P186_constr_373 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P187_constr_375 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P188_constr_377 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P189_constr_379 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P190_constr_381 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P191_constr_383 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P192_constr_385 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P193_constr_387 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P194_constr_389 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P195_constr_391 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P196_constr_393 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P197_constr_395 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P198_constr_397 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P199_constr_399 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P200_constr_401 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P201_constr_403 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P202_constr_405 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P203_constr_407 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P204_constr_409 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P205_constr_411 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P206_constr_413 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P207_constr_415 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P208_constr_417 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P209_constr_419 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P210_constr_421 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P211_constr_423 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P212_constr_425 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P213_constr_427 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P214_constr_429 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P215_constr_431 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P216_constr_433 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P217_constr_435 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P218_constr_437 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P219_constr_439 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P220_constr_441 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P221_constr_443 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P222_constr_445 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P0_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_UE_ContextInformation_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P0_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P0_specs_1 = { - sizeof(struct ProtocolExtensionContainer_170P0), - offsetof(struct ProtocolExtensionContainer_170P0, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P0 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P0_tags_1, - sizeof(asn_DEF_ProtocolExtensionContainer_170P0_tags_1) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P0_tags_1[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P0_tags_1, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P0_tags_1) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P0_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P0_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P0_1, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P0_specs_1 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P1_3[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RABs_ToBeSetup_ItemExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P1_tags_3[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P1_specs_3 = { - sizeof(struct ProtocolExtensionContainer_170P1), - offsetof(struct ProtocolExtensionContainer_170P1, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P1 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P1_tags_3, - sizeof(asn_DEF_ProtocolExtensionContainer_170P1_tags_3) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P1_tags_3[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P1_tags_3, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P1_tags_3) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P1_tags_3[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P1_constr_3, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P1_3, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P1_specs_3 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P2_5[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_UE_ContextReferenceAtSeNB_ItemExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P2_tags_5[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P2_specs_5 = { - sizeof(struct ProtocolExtensionContainer_170P2), - offsetof(struct ProtocolExtensionContainer_170P2, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P2 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P2_tags_5, - sizeof(asn_DEF_ProtocolExtensionContainer_170P2_tags_5) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P2_tags_5[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P2_tags_5, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P2_tags_5) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P2_tags_5[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P2_constr_5, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P2_5, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P2_specs_5 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P3_7[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_UE_ContextReferenceAtWT_ItemExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P3_tags_7[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P3_specs_7 = { - sizeof(struct ProtocolExtensionContainer_170P3), - offsetof(struct ProtocolExtensionContainer_170P3, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P3 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P3_tags_7, - sizeof(asn_DEF_ProtocolExtensionContainer_170P3_tags_7) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P3_tags_7[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P3_tags_7, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P3_tags_7) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P3_tags_7[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P3_constr_7, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P3_7, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P3_specs_7 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P4_9[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_UE_ContextReferenceAtSgNB_ItemExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P4_tags_9[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P4_specs_9 = { - sizeof(struct ProtocolExtensionContainer_170P4), - offsetof(struct ProtocolExtensionContainer_170P4, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P4 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P4_tags_9, - sizeof(asn_DEF_ProtocolExtensionContainer_170P4_tags_9) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P4_tags_9[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P4_tags_9, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P4_tags_9) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P4_tags_9[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P4_constr_9, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P4_9, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P4_specs_9 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P5_11[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RABs_Admitted_Item_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P5_tags_11[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P5_specs_11 = { - sizeof(struct ProtocolExtensionContainer_170P5), - offsetof(struct ProtocolExtensionContainer_170P5, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P5 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P5_tags_11, - sizeof(asn_DEF_ProtocolExtensionContainer_170P5_tags_11) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P5_tags_11[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P5_tags_11, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P5_tags_11) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P5_tags_11[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P5_constr_11, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P5_11, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P5_specs_11 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P6_13[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RABs_SubjectToStatusTransfer_ItemExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P6_tags_13[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P6_specs_13 = { - sizeof(struct ProtocolExtensionContainer_170P6), - offsetof(struct ProtocolExtensionContainer_170P6, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P6 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P6_tags_13, - sizeof(asn_DEF_ProtocolExtensionContainer_170P6_tags_13) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P6_tags_13[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P6_tags_13, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P6_tags_13) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P6_tags_13[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P6_constr_13, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P6_13, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P6_specs_13 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P7_15[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CellInformation_Item_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P7_tags_15[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P7_specs_15 = { - sizeof(struct ProtocolExtensionContainer_170P7), - offsetof(struct ProtocolExtensionContainer_170P7, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P7 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P7_tags_15, - sizeof(asn_DEF_ProtocolExtensionContainer_170P7_tags_15) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P7_tags_15[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P7_tags_15, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P7_tags_15) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P7_tags_15[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P7_constr_15, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P7_15, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P7_specs_15 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P8_17[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ServedCellsToModify_Item_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P8_tags_17[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P8_specs_17 = { - sizeof(struct ProtocolExtensionContainer_170P8), - offsetof(struct ProtocolExtensionContainer_170P8, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P8 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P8_tags_17, - sizeof(asn_DEF_ProtocolExtensionContainer_170P8_tags_17) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P8_tags_17[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P8_tags_17, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P8_tags_17) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P8_tags_17[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P8_constr_17, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P8_17, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P8_specs_17 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P9_19[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CellToReport_Item_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P9_tags_19[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P9_specs_19 = { - sizeof(struct ProtocolExtensionContainer_170P9), - offsetof(struct ProtocolExtensionContainer_170P9, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P9 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P9_tags_19, - sizeof(asn_DEF_ProtocolExtensionContainer_170P9_tags_19) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P9_tags_19[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P9_tags_19, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P9_tags_19) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P9_tags_19[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P9_constr_19, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P9_19, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P9_specs_19 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P10_21[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_MeasurementInitiationResult_Item_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P10_tags_21[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P10_specs_21 = { - sizeof(struct ProtocolExtensionContainer_170P10), - offsetof(struct ProtocolExtensionContainer_170P10, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P10 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P10_tags_21, - sizeof(asn_DEF_ProtocolExtensionContainer_170P10_tags_21) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P10_tags_21[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P10_tags_21, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P10_tags_21) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P10_tags_21[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P10_constr_21, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P10_21, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P10_specs_21 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P11_23[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_MeasurementFailureCause_Item_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P11_tags_23[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P11_specs_23 = { - sizeof(struct ProtocolExtensionContainer_170P11), - offsetof(struct ProtocolExtensionContainer_170P11, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P11 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P11_tags_23, - sizeof(asn_DEF_ProtocolExtensionContainer_170P11_tags_23) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P11_tags_23[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P11_tags_23, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P11_tags_23) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P11_tags_23[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P11_constr_23, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P11_23, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P11_specs_23 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P12_25[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CompleteFailureCauseInformation_Item_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P12_tags_25[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P12_specs_25 = { - sizeof(struct ProtocolExtensionContainer_170P12), - offsetof(struct ProtocolExtensionContainer_170P12, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P12 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P12_tags_25, - sizeof(asn_DEF_ProtocolExtensionContainer_170P12_tags_25) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P12_tags_25[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P12_tags_25, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P12_tags_25) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P12_tags_25[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P12_constr_25, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P12_25, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P12_specs_25 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P13_27[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CellMeasurementResult_Item_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P13_tags_27[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P13_specs_27 = { - sizeof(struct ProtocolExtensionContainer_170P13), - offsetof(struct ProtocolExtensionContainer_170P13, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P13 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P13_tags_27, - sizeof(asn_DEF_ProtocolExtensionContainer_170P13_tags_27) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P13_tags_27[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P13_tags_27, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P13_tags_27) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P13_tags_27[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P13_constr_27, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P13_27, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P13_specs_27 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P14_29[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ServedCellsToActivate_Item_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P14_tags_29[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P14_specs_29 = { - sizeof(struct ProtocolExtensionContainer_170P14), - offsetof(struct ProtocolExtensionContainer_170P14, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P14 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P14_tags_29, - sizeof(asn_DEF_ProtocolExtensionContainer_170P14_tags_29) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P14_tags_29[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P14_tags_29, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P14_tags_29) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P14_tags_29[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P14_constr_29, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P14_29, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P14_specs_29 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P15_31[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ActivatedCellList_Item_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P15_tags_31[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P15_specs_31 = { - sizeof(struct ProtocolExtensionContainer_170P15), - offsetof(struct ProtocolExtensionContainer_170P15, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P15 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P15_tags_31, - sizeof(asn_DEF_ProtocolExtensionContainer_170P15_tags_31) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P15_tags_31[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P15_tags_31, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P15_tags_31) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P15_tags_31[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P15_constr_31, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P15_31, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P15_specs_31 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P16_33[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RNL_Header_Item_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P16_tags_33[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P16_specs_33 = { - sizeof(struct ProtocolExtensionContainer_170P16), - offsetof(struct ProtocolExtensionContainer_170P16, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P16 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P16_tags_33, - sizeof(asn_DEF_ProtocolExtensionContainer_170P16_tags_33) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P16_tags_33[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P16_tags_33, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P16_tags_33) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P16_tags_33[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P16_constr_33, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P16_33, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P16_specs_33 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P17_35[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RABs_ToBeAdded_Item_SCG_BearerExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P17_tags_35[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P17_specs_35 = { - sizeof(struct ProtocolExtensionContainer_170P17), - offsetof(struct ProtocolExtensionContainer_170P17, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P17 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P17_tags_35, - sizeof(asn_DEF_ProtocolExtensionContainer_170P17_tags_35) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P17_tags_35[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P17_tags_35, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P17_tags_35) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P17_tags_35[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P17_constr_35, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P17_35, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P17_specs_35 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P18_37[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RABs_ToBeAdded_Item_Split_BearerExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P18_tags_37[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P18_specs_37 = { - sizeof(struct ProtocolExtensionContainer_170P18), - offsetof(struct ProtocolExtensionContainer_170P18, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P18 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P18_tags_37, - sizeof(asn_DEF_ProtocolExtensionContainer_170P18_tags_37) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P18_tags_37[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P18_tags_37, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P18_tags_37) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P18_tags_37[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P18_constr_37, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P18_37, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P18_specs_37 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P19_39[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RABs_Admitted_ToBeAdded_Item_SCG_BearerExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P19_tags_39[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P19_specs_39 = { - sizeof(struct ProtocolExtensionContainer_170P19), - offsetof(struct ProtocolExtensionContainer_170P19, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P19 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P19_tags_39, - sizeof(asn_DEF_ProtocolExtensionContainer_170P19_tags_39) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P19_tags_39[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P19_tags_39, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P19_tags_39) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P19_tags_39[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P19_constr_39, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P19_39, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P19_specs_39 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P20_41[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RABs_Admitted_ToBeAdded_Item_Split_BearerExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P20_tags_41[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P20_specs_41 = { - sizeof(struct ProtocolExtensionContainer_170P20), - offsetof(struct ProtocolExtensionContainer_170P20, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P20 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P20_tags_41, - sizeof(asn_DEF_ProtocolExtensionContainer_170P20_tags_41) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P20_tags_41[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P20_tags_41, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P20_tags_41) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P20_tags_41[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P20_constr_41, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P20_41, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P20_specs_41 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P21_43[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ResponseInformationSeNBReconfComp_SuccessItemExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P21_tags_43[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P21_specs_43 = { - sizeof(struct ProtocolExtensionContainer_170P21), - offsetof(struct ProtocolExtensionContainer_170P21, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P21 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P21_tags_43, - sizeof(asn_DEF_ProtocolExtensionContainer_170P21_tags_43) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P21_tags_43[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P21_tags_43, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P21_tags_43) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P21_tags_43[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P21_constr_43, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P21_43, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P21_specs_43 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P22_45[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ResponseInformationSeNBReconfComp_RejectByMeNBItemExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P22_tags_45[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P22_specs_45 = { - sizeof(struct ProtocolExtensionContainer_170P22), - offsetof(struct ProtocolExtensionContainer_170P22, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P22 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P22_tags_45, - sizeof(asn_DEF_ProtocolExtensionContainer_170P22_tags_45) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P22_tags_45[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P22_tags_45, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P22_tags_45) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P22_tags_45[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P22_constr_45, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P22_45, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P22_specs_45 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P23_47[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_UE_ContextInformationSeNBModReqExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P23_tags_47[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P23_specs_47 = { - sizeof(struct ProtocolExtensionContainer_170P23), - offsetof(struct ProtocolExtensionContainer_170P23, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P23 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P23_tags_47, - sizeof(asn_DEF_ProtocolExtensionContainer_170P23_tags_47) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P23_tags_47[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P23_tags_47, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P23_tags_47) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P23_tags_47[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P23_constr_47, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P23_47, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P23_specs_47 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P24_49[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RABs_ToBeAdded_ModReqItem_SCG_BearerExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P24_tags_49[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P24_specs_49 = { - sizeof(struct ProtocolExtensionContainer_170P24), - offsetof(struct ProtocolExtensionContainer_170P24, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P24 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P24_tags_49, - sizeof(asn_DEF_ProtocolExtensionContainer_170P24_tags_49) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P24_tags_49[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P24_tags_49, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P24_tags_49) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P24_tags_49[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P24_constr_49, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P24_49, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P24_specs_49 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P25_51[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RABs_ToBeAdded_ModReqItem_Split_BearerExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P25_tags_51[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P25_specs_51 = { - sizeof(struct ProtocolExtensionContainer_170P25), - offsetof(struct ProtocolExtensionContainer_170P25, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P25 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P25_tags_51, - sizeof(asn_DEF_ProtocolExtensionContainer_170P25_tags_51) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P25_tags_51[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P25_tags_51, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P25_tags_51) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P25_tags_51[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P25_constr_51, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P25_51, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P25_specs_51 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P26_53[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RABs_ToBeModified_ModReqItem_SCG_BearerExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P26_tags_53[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P26_specs_53 = { - sizeof(struct ProtocolExtensionContainer_170P26), - offsetof(struct ProtocolExtensionContainer_170P26, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P26 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P26_tags_53, - sizeof(asn_DEF_ProtocolExtensionContainer_170P26_tags_53) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P26_tags_53[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P26_tags_53, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P26_tags_53) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P26_tags_53[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P26_constr_53, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P26_53, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P26_specs_53 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P27_55[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RABs_ToBeModified_ModReqItem_Split_BearerExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P27_tags_55[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P27_specs_55 = { - sizeof(struct ProtocolExtensionContainer_170P27), - offsetof(struct ProtocolExtensionContainer_170P27, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P27 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P27_tags_55, - sizeof(asn_DEF_ProtocolExtensionContainer_170P27_tags_55) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P27_tags_55[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P27_tags_55, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P27_tags_55) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P27_tags_55[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P27_constr_55, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P27_55, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P27_specs_55 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P28_57[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RABs_ToBeReleased_ModReqItem_SCG_BearerExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P28_tags_57[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P28_specs_57 = { - sizeof(struct ProtocolExtensionContainer_170P28), - offsetof(struct ProtocolExtensionContainer_170P28, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P28 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P28_tags_57, - sizeof(asn_DEF_ProtocolExtensionContainer_170P28_tags_57) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P28_tags_57[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P28_tags_57, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P28_tags_57) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P28_tags_57[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P28_constr_57, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P28_57, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P28_specs_57 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P29_59[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RABs_ToBeReleased_ModReqItem_Split_BearerExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P29_tags_59[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P29_specs_59 = { - sizeof(struct ProtocolExtensionContainer_170P29), - offsetof(struct ProtocolExtensionContainer_170P29, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P29 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P29_tags_59, - sizeof(asn_DEF_ProtocolExtensionContainer_170P29_tags_59) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P29_tags_59[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P29_tags_59, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P29_tags_59) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P29_tags_59[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P29_constr_59, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P29_59, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P29_specs_59 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P30_61[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_BearerExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P30_tags_61[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P30_specs_61 = { - sizeof(struct ProtocolExtensionContainer_170P30), - offsetof(struct ProtocolExtensionContainer_170P30, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P30 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P30_tags_61, - sizeof(asn_DEF_ProtocolExtensionContainer_170P30_tags_61) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P30_tags_61[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P30_tags_61, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P30_tags_61) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P30_tags_61[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P30_constr_61, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P30_61, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P30_specs_61 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P31_63[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckItem_Split_BearerExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P31_tags_63[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P31_specs_63 = { - sizeof(struct ProtocolExtensionContainer_170P31), - offsetof(struct ProtocolExtensionContainer_170P31, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P31 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P31_tags_63, - sizeof(asn_DEF_ProtocolExtensionContainer_170P31_tags_63) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P31_tags_63[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P31_tags_63, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P31_tags_63) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P31_tags_63[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P31_constr_63, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P31_63, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P31_specs_63 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P32_65[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RABs_Admitted_ToBeModified_ModAckItem_SCG_BearerExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P32_tags_65[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P32_specs_65 = { - sizeof(struct ProtocolExtensionContainer_170P32), - offsetof(struct ProtocolExtensionContainer_170P32, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P32 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P32_tags_65, - sizeof(asn_DEF_ProtocolExtensionContainer_170P32_tags_65) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P32_tags_65[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P32_tags_65, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P32_tags_65) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P32_tags_65[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P32_constr_65, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P32_65, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P32_specs_65 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P33_67[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RABs_Admitted_ToBeModified_ModAckItem_Split_BearerExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P33_tags_67[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P33_specs_67 = { - sizeof(struct ProtocolExtensionContainer_170P33), - offsetof(struct ProtocolExtensionContainer_170P33, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P33 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P33_tags_67, - sizeof(asn_DEF_ProtocolExtensionContainer_170P33_tags_67) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P33_tags_67[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P33_tags_67, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P33_tags_67) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P33_tags_67[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P33_constr_67, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P33_67, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P33_specs_67 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P34_69[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_BearerExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P34_tags_69[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P34_specs_69 = { - sizeof(struct ProtocolExtensionContainer_170P34), - offsetof(struct ProtocolExtensionContainer_170P34, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P34 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P34_tags_69, - sizeof(asn_DEF_ProtocolExtensionContainer_170P34_tags_69) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P34_tags_69[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P34_tags_69, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P34_tags_69) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P34_tags_69[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P34_constr_69, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P34_69, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P34_specs_69 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P35_71[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RABs_Admitted_ToBeReleased_ModAckItem_Split_BearerExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P35_tags_71[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P35_specs_71 = { - sizeof(struct ProtocolExtensionContainer_170P35), - offsetof(struct ProtocolExtensionContainer_170P35, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P35 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P35_tags_71, - sizeof(asn_DEF_ProtocolExtensionContainer_170P35_tags_71) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P35_tags_71[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P35_tags_71, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P35_tags_71) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P35_tags_71[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P35_constr_71, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P35_71, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P35_specs_71 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P36_73[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RABs_ToBeReleased_ModReqdItemExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P36_tags_73[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P36_specs_73 = { - sizeof(struct ProtocolExtensionContainer_170P36), - offsetof(struct ProtocolExtensionContainer_170P36, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P36 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P36_tags_73, - sizeof(asn_DEF_ProtocolExtensionContainer_170P36_tags_73) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P36_tags_73[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P36_tags_73, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P36_tags_73) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P36_tags_73[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P36_constr_73, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P36_73, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P36_specs_73 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P37_75[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RABs_ToBeReleased_RelReqItem_SCG_BearerExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P37_tags_75[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P37_specs_75 = { - sizeof(struct ProtocolExtensionContainer_170P37), - offsetof(struct ProtocolExtensionContainer_170P37, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P37 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P37_tags_75, - sizeof(asn_DEF_ProtocolExtensionContainer_170P37_tags_75) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P37_tags_75[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P37_tags_75, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P37_tags_75) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P37_tags_75[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P37_constr_75, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P37_75, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P37_specs_75 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P38_77[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RABs_ToBeReleased_RelReqItem_Split_BearerExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P38_tags_77[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P38_specs_77 = { - sizeof(struct ProtocolExtensionContainer_170P38), - offsetof(struct ProtocolExtensionContainer_170P38, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P38 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P38_tags_77, - sizeof(asn_DEF_ProtocolExtensionContainer_170P38_tags_77) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P38_tags_77[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P38_tags_77, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P38_tags_77) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P38_tags_77[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P38_constr_77, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P38_77, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P38_specs_77 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P39_79[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RABs_ToBeReleased_RelConfItem_SCG_BearerExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P39_tags_79[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P39_specs_79 = { - sizeof(struct ProtocolExtensionContainer_170P39), - offsetof(struct ProtocolExtensionContainer_170P39, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P39 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P39_tags_79, - sizeof(asn_DEF_ProtocolExtensionContainer_170P39_tags_79) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P39_tags_79[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P39_tags_79, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P39_tags_79) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P39_tags_79[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P39_constr_79, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P39_79, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P39_specs_79 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P40_81[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RABs_ToBeReleased_RelConfItem_Split_BearerExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P40_tags_81[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P40_specs_81 = { - sizeof(struct ProtocolExtensionContainer_170P40), - offsetof(struct ProtocolExtensionContainer_170P40, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P40 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P40_tags_81, - sizeof(asn_DEF_ProtocolExtensionContainer_170P40_tags_81) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P40_tags_81[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P40_tags_81, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P40_tags_81) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P40_tags_81[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P40_constr_81, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P40_81, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P40_specs_81 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P41_83[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RABs_SubjectToCounterCheckItemExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P41_tags_83[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P41_specs_83 = { - sizeof(struct ProtocolExtensionContainer_170P41), - offsetof(struct ProtocolExtensionContainer_170P41, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P41 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P41_tags_83, - sizeof(asn_DEF_ProtocolExtensionContainer_170P41_tags_83) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P41_tags_83[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P41_tags_83, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P41_tags_83) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P41_tags_83[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P41_constr_83, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P41_83, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P41_specs_83 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P42_85[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_UE_ContextInformationRetrieve_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P42_tags_85[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P42_specs_85 = { - sizeof(struct ProtocolExtensionContainer_170P42), - offsetof(struct ProtocolExtensionContainer_170P42, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P42 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P42_tags_85, - sizeof(asn_DEF_ProtocolExtensionContainer_170P42_tags_85) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P42_tags_85[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P42_tags_85, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P42_tags_85) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P42_tags_85[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P42_constr_85, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P42_85, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P42_specs_85 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P43_87[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RABs_ToBeSetupRetrieve_ItemExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P43_tags_87[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P43_specs_87 = { - sizeof(struct ProtocolExtensionContainer_170P43), - offsetof(struct ProtocolExtensionContainer_170P43, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P43 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P43_tags_87, - sizeof(asn_DEF_ProtocolExtensionContainer_170P43_tags_87) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P43_tags_87[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P43_tags_87, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P43_tags_87) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P43_tags_87[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P43_constr_87, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P43_87, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P43_specs_87 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P44_89[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_ItemExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P44_tags_89[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P44_specs_89 = { - sizeof(struct ProtocolExtensionContainer_170P44), - offsetof(struct ProtocolExtensionContainer_170P44, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P44 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P44_tags_89, - sizeof(asn_DEF_ProtocolExtensionContainer_170P44_tags_89) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P44_tags_89[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P44_tags_89, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P44_tags_89) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P44_tags_89[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P44_constr_89, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P44_89, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P44_specs_89 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P45_91[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresentExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P45_tags_91[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P45_specs_91 = { - sizeof(struct ProtocolExtensionContainer_170P45), - offsetof(struct ProtocolExtensionContainer_170P45, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P45 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P45_tags_91, - sizeof(asn_DEF_ProtocolExtensionContainer_170P45_tags_91) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P45_tags_91[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P45_tags_91, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P45_tags_91) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P45_tags_91[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P45_constr_91, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P45_91, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P45_specs_91 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P46_93[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresentExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P46_tags_93[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P46_specs_93 = { - sizeof(struct ProtocolExtensionContainer_170P46), - offsetof(struct ProtocolExtensionContainer_170P46, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P46 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P46_tags_93, - sizeof(asn_DEF_ProtocolExtensionContainer_170P46_tags_93) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P46_tags_93[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P46_tags_93, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P46_tags_93) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P46_tags_93[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P46_constr_93, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P46_93, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P46_specs_93 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P47_95[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RABs_ToBeAdded_SgNBAddReqAck_ItemExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P47_tags_95[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P47_specs_95 = { - sizeof(struct ProtocolExtensionContainer_170P47), - offsetof(struct ProtocolExtensionContainer_170P47, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P47 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P47_tags_95, - sizeof(asn_DEF_ProtocolExtensionContainer_170P47_tags_95) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P47_tags_95[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P47_tags_95, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P47_tags_95) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P47_tags_95[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P47_constr_95, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P47_95, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P47_specs_95 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P48_97[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresentExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P48_tags_97[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P48_specs_97 = { - sizeof(struct ProtocolExtensionContainer_170P48), - offsetof(struct ProtocolExtensionContainer_170P48, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P48 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P48_tags_97, - sizeof(asn_DEF_ProtocolExtensionContainer_170P48_tags_97) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P48_tags_97[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P48_tags_97, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P48_tags_97) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P48_tags_97[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P48_constr_97, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P48_97, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P48_specs_97 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P49_99[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresentExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P49_tags_99[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P49_specs_99 = { - sizeof(struct ProtocolExtensionContainer_170P49), - offsetof(struct ProtocolExtensionContainer_170P49, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P49 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P49_tags_99, - sizeof(asn_DEF_ProtocolExtensionContainer_170P49_tags_99) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P49_tags_99[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P49_tags_99, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P49_tags_99) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P49_tags_99[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P49_constr_99, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P49_99, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P49_specs_99 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P50_101[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ResponseInformationSgNBReconfComp_SuccessItemExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P50_tags_101[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P50_specs_101 = { - sizeof(struct ProtocolExtensionContainer_170P50), - offsetof(struct ProtocolExtensionContainer_170P50, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P50 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P50_tags_101, - sizeof(asn_DEF_ProtocolExtensionContainer_170P50_tags_101) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P50_tags_101[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P50_tags_101, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P50_tags_101) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P50_tags_101[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P50_constr_101, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P50_101, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P50_specs_101 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P51_103[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ResponseInformationSgNBReconfComp_RejectByMeNBItemExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P51_tags_103[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P51_specs_103 = { - sizeof(struct ProtocolExtensionContainer_170P51), - offsetof(struct ProtocolExtensionContainer_170P51, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P51 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P51_tags_103, - sizeof(asn_DEF_ProtocolExtensionContainer_170P51_tags_103) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P51_tags_103[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P51_tags_103, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P51_tags_103) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P51_tags_103[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P51_constr_103, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P51_103, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P51_specs_103 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P52_105[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_UE_ContextInformationSgNBModReqExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P52_tags_105[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P52_specs_105 = { - sizeof(struct ProtocolExtensionContainer_170P52), - offsetof(struct ProtocolExtensionContainer_170P52, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P52 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P52_tags_105, - sizeof(asn_DEF_ProtocolExtensionContainer_170P52_tags_105) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P52_tags_105[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P52_tags_105, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P52_tags_105) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P52_tags_105[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P52_constr_105, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P52_105, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P52_specs_105 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P53_107[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RABs_ToBeAdded_SgNBModReq_ItemExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P53_tags_107[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P53_specs_107 = { - sizeof(struct ProtocolExtensionContainer_170P53), - offsetof(struct ProtocolExtensionContainer_170P53, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P53 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P53_tags_107, - sizeof(asn_DEF_ProtocolExtensionContainer_170P53_tags_107) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P53_tags_107[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P53_tags_107, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P53_tags_107) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P53_tags_107[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P53_constr_107, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P53_107, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P53_specs_107 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P54_109[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresentExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P54_tags_109[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P54_specs_109 = { - sizeof(struct ProtocolExtensionContainer_170P54), - offsetof(struct ProtocolExtensionContainer_170P54, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P54 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P54_tags_109, - sizeof(asn_DEF_ProtocolExtensionContainer_170P54_tags_109) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P54_tags_109[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P54_tags_109, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P54_tags_109) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P54_tags_109[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P54_constr_109, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P54_109, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P54_specs_109 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P55_111[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P55_tags_111[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P55_specs_111 = { - sizeof(struct ProtocolExtensionContainer_170P55), - offsetof(struct ProtocolExtensionContainer_170P55, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P55 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P55_tags_111, - sizeof(asn_DEF_ProtocolExtensionContainer_170P55_tags_111) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P55_tags_111[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P55_tags_111, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P55_tags_111) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P55_tags_111[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P55_constr_111, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P55_111, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P55_specs_111 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P56_113[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RABs_ToBeModified_SgNBModReq_ItemExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P56_tags_113[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P56_specs_113 = { - sizeof(struct ProtocolExtensionContainer_170P56), - offsetof(struct ProtocolExtensionContainer_170P56, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P56 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P56_tags_113, - sizeof(asn_DEF_ProtocolExtensionContainer_170P56_tags_113) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P56_tags_113[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P56_tags_113, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P56_tags_113) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P56_tags_113[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P56_constr_113, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P56_113, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P56_specs_113 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P57_115[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresentExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P57_tags_115[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P57_specs_115 = { - sizeof(struct ProtocolExtensionContainer_170P57), - offsetof(struct ProtocolExtensionContainer_170P57, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P57 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P57_tags_115, - sizeof(asn_DEF_ProtocolExtensionContainer_170P57_tags_115) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P57_tags_115[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P57_tags_115, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P57_tags_115) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P57_tags_115[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P57_constr_115, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P57_115, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P57_specs_115 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P58_117[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P58_tags_117[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P58_specs_117 = { - sizeof(struct ProtocolExtensionContainer_170P58), - offsetof(struct ProtocolExtensionContainer_170P58, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P58 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P58_tags_117, - sizeof(asn_DEF_ProtocolExtensionContainer_170P58_tags_117) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P58_tags_117[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P58_tags_117, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P58_tags_117) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P58_tags_117[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P58_constr_117, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P58_117, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P58_specs_117 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P59_119[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RABs_ToBeReleased_SgNBModReq_ItemExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P59_tags_119[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P59_specs_119 = { - sizeof(struct ProtocolExtensionContainer_170P59), - offsetof(struct ProtocolExtensionContainer_170P59, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P59 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P59_tags_119, - sizeof(asn_DEF_ProtocolExtensionContainer_170P59_tags_119) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P59_tags_119[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P59_tags_119, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P59_tags_119) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P59_tags_119[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P59_constr_119, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P59_119, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P59_specs_119 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P60_121[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresentExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P60_tags_121[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P60_specs_121 = { - sizeof(struct ProtocolExtensionContainer_170P60), - offsetof(struct ProtocolExtensionContainer_170P60, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P60 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P60_tags_121, - sizeof(asn_DEF_ProtocolExtensionContainer_170P60_tags_121) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P60_tags_121[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P60_tags_121, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P60_tags_121) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P60_tags_121[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P60_constr_121, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P60_121, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P60_specs_121 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P61_123[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P61_tags_123[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P61_specs_123 = { - sizeof(struct ProtocolExtensionContainer_170P61), - offsetof(struct ProtocolExtensionContainer_170P61, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P61 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P61_tags_123, - sizeof(asn_DEF_ProtocolExtensionContainer_170P61_tags_123) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P61_tags_123[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P61_tags_123, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P61_tags_123) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P61_tags_123[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P61_constr_123, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P61_123, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P61_specs_123 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P62_125[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P62_tags_125[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P62_specs_125 = { - sizeof(struct ProtocolExtensionContainer_170P62), - offsetof(struct ProtocolExtensionContainer_170P62, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P62 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P62_tags_125, - sizeof(asn_DEF_ProtocolExtensionContainer_170P62_tags_125) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P62_tags_125[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P62_tags_125, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P62_tags_125) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P62_tags_125[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P62_constr_125, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P62_125, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P62_specs_125 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P63_127[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresentExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P63_tags_127[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P63_specs_127 = { - sizeof(struct ProtocolExtensionContainer_170P63), - offsetof(struct ProtocolExtensionContainer_170P63, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P63 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P63_tags_127, - sizeof(asn_DEF_ProtocolExtensionContainer_170P63_tags_127) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P63_tags_127[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P63_tags_127, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P63_tags_127) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P63_tags_127[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P63_constr_127, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P63_127, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P63_specs_127 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P64_129[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P64_tags_129[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P64_specs_129 = { - sizeof(struct ProtocolExtensionContainer_170P64), - offsetof(struct ProtocolExtensionContainer_170P64, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P64 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P64_tags_129, - sizeof(asn_DEF_ProtocolExtensionContainer_170P64_tags_129) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P64_tags_129[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P64_tags_129, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P64_tags_129) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P64_tags_129[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P64_constr_129, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P64_129, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P64_specs_129 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P65_131[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RABs_ToBeAdded_SgNBModAck_ItemExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P65_tags_131[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P65_specs_131 = { - sizeof(struct ProtocolExtensionContainer_170P65), - offsetof(struct ProtocolExtensionContainer_170P65, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P65 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P65_tags_131, - sizeof(asn_DEF_ProtocolExtensionContainer_170P65_tags_131) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P65_tags_131[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P65_tags_131, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P65_tags_131) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P65_tags_131[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P65_constr_131, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P65_131, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P65_specs_131 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P66_133[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresentExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P66_tags_133[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P66_specs_133 = { - sizeof(struct ProtocolExtensionContainer_170P66), - offsetof(struct ProtocolExtensionContainer_170P66, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P66 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P66_tags_133, - sizeof(asn_DEF_ProtocolExtensionContainer_170P66_tags_133) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P66_tags_133[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P66_tags_133, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P66_tags_133) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P66_tags_133[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P66_constr_133, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P66_133, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P66_specs_133 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P67_135[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P67_tags_135[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P67_specs_135 = { - sizeof(struct ProtocolExtensionContainer_170P67), - offsetof(struct ProtocolExtensionContainer_170P67, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P67 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P67_tags_135, - sizeof(asn_DEF_ProtocolExtensionContainer_170P67_tags_135) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P67_tags_135[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P67_tags_135, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P67_tags_135) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P67_tags_135[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P67_constr_135, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P67_135, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P67_specs_135 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P68_137[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RABs_ToBeReleased_SgNBModAck_ItemExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P68_tags_137[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P68_specs_137 = { - sizeof(struct ProtocolExtensionContainer_170P68), - offsetof(struct ProtocolExtensionContainer_170P68, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P68 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P68_tags_137, - sizeof(asn_DEF_ProtocolExtensionContainer_170P68_tags_137) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P68_tags_137[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P68_tags_137, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P68_tags_137) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P68_tags_137[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P68_constr_137, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P68_137, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P68_specs_137 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P69_139[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresentExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P69_tags_139[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P69_specs_139 = { - sizeof(struct ProtocolExtensionContainer_170P69), - offsetof(struct ProtocolExtensionContainer_170P69, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P69 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P69_tags_139, - sizeof(asn_DEF_ProtocolExtensionContainer_170P69_tags_139) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P69_tags_139[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P69_tags_139, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P69_tags_139) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P69_tags_139[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P69_constr_139, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P69_139, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P69_specs_139 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P70_141[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P70_tags_141[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P70_specs_141 = { - sizeof(struct ProtocolExtensionContainer_170P70), - offsetof(struct ProtocolExtensionContainer_170P70, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P70 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P70_tags_141, - sizeof(asn_DEF_ProtocolExtensionContainer_170P70_tags_141) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P70_tags_141[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P70_tags_141, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P70_tags_141) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P70_tags_141[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P70_constr_141, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P70_141, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P70_specs_141 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P71_143[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RABs_ToBeReleased_SgNBModReqd_ItemExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P71_tags_143[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P71_specs_143 = { - sizeof(struct ProtocolExtensionContainer_170P71), - offsetof(struct ProtocolExtensionContainer_170P71, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P71 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P71_tags_143, - sizeof(asn_DEF_ProtocolExtensionContainer_170P71_tags_143) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P71_tags_143[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P71_tags_143, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P71_tags_143) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P71_tags_143[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P71_constr_143, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P71_143, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P71_specs_143 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P72_145[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RABs_ToBeModified_SgNBModReqd_ItemExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P72_tags_145[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P72_specs_145 = { - sizeof(struct ProtocolExtensionContainer_170P72), - offsetof(struct ProtocolExtensionContainer_170P72, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P72 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P72_tags_145, - sizeof(asn_DEF_ProtocolExtensionContainer_170P72_tags_145) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P72_tags_145[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P72_tags_145, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P72_tags_145) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P72_tags_145[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P72_constr_145, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P72_145, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P72_specs_145 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P73_147[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresentExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P73_tags_147[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P73_specs_147 = { - sizeof(struct ProtocolExtensionContainer_170P73), - offsetof(struct ProtocolExtensionContainer_170P73, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P73 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P73_tags_147, - sizeof(asn_DEF_ProtocolExtensionContainer_170P73_tags_147) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P73_tags_147[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P73_tags_147, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P73_tags_147) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P73_tags_147[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P73_constr_147, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P73_147, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P73_specs_147 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P74_149[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresentExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P74_tags_149[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P74_specs_149 = { - sizeof(struct ProtocolExtensionContainer_170P74), - offsetof(struct ProtocolExtensionContainer_170P74, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P74 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P74_tags_149, - sizeof(asn_DEF_ProtocolExtensionContainer_170P74_tags_149) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P74_tags_149[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P74_tags_149, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P74_tags_149) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P74_tags_149[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P74_constr_149, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P74_149, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P74_specs_149 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P75_151[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_ItemExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P75_tags_151[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P75_specs_151 = { - sizeof(struct ProtocolExtensionContainer_170P75), - offsetof(struct ProtocolExtensionContainer_170P75, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P75 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P75_tags_151, - sizeof(asn_DEF_ProtocolExtensionContainer_170P75_tags_151) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P75_tags_151[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P75_tags_151, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P75_tags_151) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P75_tags_151[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P75_constr_151, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P75_151, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P75_specs_151 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P76_153[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresentExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P76_tags_153[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P76_specs_153 = { - sizeof(struct ProtocolExtensionContainer_170P76), - offsetof(struct ProtocolExtensionContainer_170P76, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P76 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P76_tags_153, - sizeof(asn_DEF_ProtocolExtensionContainer_170P76_tags_153) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P76_tags_153[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P76_tags_153, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P76_tags_153) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P76_tags_153[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P76_constr_153, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P76_153, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P76_specs_153 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P77_155[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresentExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P77_tags_155[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P77_specs_155 = { - sizeof(struct ProtocolExtensionContainer_170P77), - offsetof(struct ProtocolExtensionContainer_170P77, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P77 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P77_tags_155, - sizeof(asn_DEF_ProtocolExtensionContainer_170P77_tags_155) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P77_tags_155[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P77_tags_155, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P77_tags_155) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P77_tags_155[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P77_constr_155, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P77_155, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P77_specs_155 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P78_157[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_ItemExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P78_tags_157[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P78_specs_157 = { - sizeof(struct ProtocolExtensionContainer_170P78), - offsetof(struct ProtocolExtensionContainer_170P78, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P78 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P78_tags_157, - sizeof(asn_DEF_ProtocolExtensionContainer_170P78_tags_157) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P78_tags_157[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P78_tags_157, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P78_tags_157) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P78_tags_157[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P78_constr_157, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P78_157, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P78_specs_157 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P79_159[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresentExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P79_tags_159[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P79_specs_159 = { - sizeof(struct ProtocolExtensionContainer_170P79), - offsetof(struct ProtocolExtensionContainer_170P79, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P79 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P79_tags_159, - sizeof(asn_DEF_ProtocolExtensionContainer_170P79_tags_159) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P79_tags_159[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P79_tags_159, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P79_tags_159) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P79_tags_159[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P79_constr_159, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P79_159, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P79_specs_159 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P80_161[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresentExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P80_tags_161[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P80_specs_161 = { - sizeof(struct ProtocolExtensionContainer_170P80), - offsetof(struct ProtocolExtensionContainer_170P80, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P80 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P80_tags_161, - sizeof(asn_DEF_ProtocolExtensionContainer_170P80_tags_161) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P80_tags_161[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P80_tags_161, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P80_tags_161) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P80_tags_161[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P80_constr_161, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P80_161, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P80_specs_161 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P81_163[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P81_tags_163[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P81_specs_163 = { - sizeof(struct ProtocolExtensionContainer_170P81), - offsetof(struct ProtocolExtensionContainer_170P81, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P81 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P81_tags_163, - sizeof(asn_DEF_ProtocolExtensionContainer_170P81_tags_163) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P81_tags_163[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P81_tags_163, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P81_tags_163) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P81_tags_163[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P81_constr_163, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P81_163, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P81_specs_163 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P82_165[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RABs_ToBeReleased_SgNBRelReqd_ItemExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P82_tags_165[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P82_specs_165 = { - sizeof(struct ProtocolExtensionContainer_170P82), - offsetof(struct ProtocolExtensionContainer_170P82, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P82 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P82_tags_165, - sizeof(asn_DEF_ProtocolExtensionContainer_170P82_tags_165) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P82_tags_165[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P82_tags_165, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P82_tags_165) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P82_tags_165[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P82_constr_165, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P82_165, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P82_specs_165 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P83_167[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_ItemExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P83_tags_167[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P83_specs_167 = { - sizeof(struct ProtocolExtensionContainer_170P83), - offsetof(struct ProtocolExtensionContainer_170P83, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P83 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P83_tags_167, - sizeof(asn_DEF_ProtocolExtensionContainer_170P83_tags_167) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P83_tags_167[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P83_tags_167, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P83_tags_167) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P83_tags_167[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P83_constr_167, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P83_167, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P83_specs_167 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P84_169[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresentExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P84_tags_169[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P84_specs_169 = { - sizeof(struct ProtocolExtensionContainer_170P84), - offsetof(struct ProtocolExtensionContainer_170P84, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P84 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P84_tags_169, - sizeof(asn_DEF_ProtocolExtensionContainer_170P84_tags_169) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P84_tags_169[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P84_tags_169, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P84_tags_169) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P84_tags_169[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P84_constr_169, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P84_169, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P84_specs_169 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P85_171[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresentExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P85_tags_171[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P85_specs_171 = { - sizeof(struct ProtocolExtensionContainer_170P85), - offsetof(struct ProtocolExtensionContainer_170P85, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P85 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P85_tags_171, - sizeof(asn_DEF_ProtocolExtensionContainer_170P85_tags_171) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P85_tags_171[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P85_tags_171, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P85_tags_171) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P85_tags_171[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P85_constr_171, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P85_171, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P85_specs_171 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P86_173[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RABs_SubjectToSgNBCounterCheck_ItemExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P86_tags_173[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P86_specs_173 = { - sizeof(struct ProtocolExtensionContainer_170P86), - offsetof(struct ProtocolExtensionContainer_170P86, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P86 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P86_tags_173, - sizeof(asn_DEF_ProtocolExtensionContainer_170P86_tags_173) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P86_tags_173[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P86_tags_173, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P86_tags_173) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P86_tags_173[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P86_constr_173, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P86_173, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P86_specs_173 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P87_175[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_ItemExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P87_tags_175[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P87_specs_175 = { - sizeof(struct ProtocolExtensionContainer_170P87), - offsetof(struct ProtocolExtensionContainer_170P87, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P87 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P87_tags_175, - sizeof(asn_DEF_ProtocolExtensionContainer_170P87_tags_175) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P87_tags_175[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P87_tags_175, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P87_tags_175) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P87_tags_175[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P87_constr_175, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P87_175, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P87_specs_175 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P88_177[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresentExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P88_tags_177[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P88_specs_177 = { - sizeof(struct ProtocolExtensionContainer_170P88), - offsetof(struct ProtocolExtensionContainer_170P88, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P88 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P88_tags_177, - sizeof(asn_DEF_ProtocolExtensionContainer_170P88_tags_177) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P88_tags_177[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P88_tags_177, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P88_tags_177) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P88_tags_177[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P88_constr_177, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P88_177, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P88_specs_177 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P89_179[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresentExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P89_tags_179[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P89_specs_179 = { - sizeof(struct ProtocolExtensionContainer_170P89), - offsetof(struct ProtocolExtensionContainer_170P89, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P89 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P89_tags_179, - sizeof(asn_DEF_ProtocolExtensionContainer_170P89_tags_179) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P89_tags_179[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P89_tags_179, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P89_tags_179) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P89_tags_179[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P89_constr_179, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P89_179, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P89_specs_179 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P90_181[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ServedEUTRAcellsENDCX2Management_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P90_tags_181[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P90_specs_181 = { - sizeof(struct ProtocolExtensionContainer_170P90), - offsetof(struct ProtocolExtensionContainer_170P90, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P90 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P90_tags_181, - sizeof(asn_DEF_ProtocolExtensionContainer_170P90_tags_181) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P90_tags_181[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P90_tags_181, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P90_tags_181) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P90_tags_181[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P90_constr_181, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P90_181, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P90_specs_181 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P91_183[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_En_gNBServedCells_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P91_tags_183[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P91_specs_183 = { - sizeof(struct ProtocolExtensionContainer_170P91), - offsetof(struct ProtocolExtensionContainer_170P91, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P91 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P91_tags_183, - sizeof(asn_DEF_ProtocolExtensionContainer_170P91_tags_183) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P91_tags_183[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P91_tags_183, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P91_tags_183) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P91_tags_183[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P91_constr_183, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P91_183, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P91_specs_183 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P92_185[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ServedNRCell_Information_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P92_tags_185[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P92_specs_185 = { - sizeof(struct ProtocolExtensionContainer_170P92), - offsetof(struct ProtocolExtensionContainer_170P92, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P92 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P92_tags_185, - sizeof(asn_DEF_ProtocolExtensionContainer_170P92_tags_185) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P92_tags_185[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P92_tags_185, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P92_tags_185) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P92_tags_185[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P92_constr_185, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P92_185, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P92_specs_185 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P93_187[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_FDD_InfoServedNRCell_Information_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P93_tags_187[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P93_specs_187 = { - sizeof(struct ProtocolExtensionContainer_170P93), - offsetof(struct ProtocolExtensionContainer_170P93, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P93 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P93_tags_187, - sizeof(asn_DEF_ProtocolExtensionContainer_170P93_tags_187) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P93_tags_187[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P93_tags_187, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P93_tags_187) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P93_tags_187[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P93_constr_187, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P93_187, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P93_specs_187 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P94_189[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_FDD_InfoNeighbourServedNRCell_Information_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P94_tags_189[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P94_specs_189 = { - sizeof(struct ProtocolExtensionContainer_170P94), - offsetof(struct ProtocolExtensionContainer_170P94, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P94 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P94_tags_189, - sizeof(asn_DEF_ProtocolExtensionContainer_170P94_tags_189) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P94_tags_189[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P94_tags_189, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P94_tags_189) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P94_tags_189[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P94_constr_189, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P94_189, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P94_specs_189 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P95_191[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_TDD_InfoServedNRCell_Information_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P95_tags_191[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P95_specs_191 = { - sizeof(struct ProtocolExtensionContainer_170P95), - offsetof(struct ProtocolExtensionContainer_170P95, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P95 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P95_tags_191, - sizeof(asn_DEF_ProtocolExtensionContainer_170P95_tags_191) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P95_tags_191[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P95_tags_191, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P95_tags_191) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P95_tags_191[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P95_constr_191, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P95_191, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P95_specs_191 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P96_193[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_TDD_InfoNeighbourServedNRCell_Information_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P96_tags_193[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P96_specs_193 = { - sizeof(struct ProtocolExtensionContainer_170P96), - offsetof(struct ProtocolExtensionContainer_170P96, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P96 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P96_tags_193, - sizeof(asn_DEF_ProtocolExtensionContainer_170P96_tags_193) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P96_tags_193[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P96_tags_193, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P96_tags_193) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P96_tags_193[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P96_constr_193, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P96_193, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P96_specs_193 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P97_195[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_NRNeighbour_Information_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P97_tags_195[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P97_specs_195 = { - sizeof(struct ProtocolExtensionContainer_170P97), - offsetof(struct ProtocolExtensionContainer_170P97, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P97 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P97_tags_195, - sizeof(asn_DEF_ProtocolExtensionContainer_170P97_tags_195) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P97_tags_195[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P97_tags_195, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P97_tags_195) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P97_tags_195[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P97_constr_195, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P97_195, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P97_specs_195 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P98_197[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_Limited_list_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P98_tags_197[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P98_specs_197 = { - sizeof(struct ProtocolExtensionContainer_170P98), - offsetof(struct ProtocolExtensionContainer_170P98, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P98 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P98_tags_197, - sizeof(asn_DEF_ProtocolExtensionContainer_170P98_tags_197) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P98_tags_197[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P98_tags_197, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P98_tags_197) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P98_tags_197[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P98_constr_197, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P98_197, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P98_specs_197 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P99_199[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ServedEUTRAcellsToModifyListENDCConfUpd_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P99_tags_199[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P99_specs_199 = { - sizeof(struct ProtocolExtensionContainer_170P99), - offsetof(struct ProtocolExtensionContainer_170P99, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P99 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P99_tags_199, - sizeof(asn_DEF_ProtocolExtensionContainer_170P99_tags_199) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P99_tags_199[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P99_tags_199, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P99_tags_199) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P99_tags_199[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P99_constr_199, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P99_199, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P99_specs_199 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P100_201[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ServedNRCellsToModify_Item_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P100_tags_201[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P100_specs_201 = { - sizeof(struct ProtocolExtensionContainer_170P100), - offsetof(struct ProtocolExtensionContainer_170P100, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P100 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P100_tags_201, - sizeof(asn_DEF_ProtocolExtensionContainer_170P100_tags_201) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P100_tags_201[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P100_tags_201, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P100_tags_201) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P100_tags_201[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P100_constr_201, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P100_201, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P100_specs_201 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P101_203[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ServedNRCellsToActivate_Item_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P101_tags_203[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P101_specs_203 = { - sizeof(struct ProtocolExtensionContainer_170P101), - offsetof(struct ProtocolExtensionContainer_170P101, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P101 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P101_tags_203, - sizeof(asn_DEF_ProtocolExtensionContainer_170P101_tags_203) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P101_tags_203[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P101_tags_203, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P101_tags_203) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P101_tags_203[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P101_constr_203, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P101_203, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P101_specs_203 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P102_205[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ActivatedNRCellList_Item_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P102_tags_205[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P102_specs_205 = { - sizeof(struct ProtocolExtensionContainer_170P102), - offsetof(struct ProtocolExtensionContainer_170P102, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P102 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P102_tags_205, - sizeof(asn_DEF_ProtocolExtensionContainer_170P102_tags_205) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P102_tags_205[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P102_tags_205, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P102_tags_205) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P102_tags_205[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P102_constr_205, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P102_205, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P102_specs_205 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P103_207[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RABs_DataForwardingAddress_ItemExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P103_tags_207[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P103_specs_207 = { - sizeof(struct ProtocolExtensionContainer_170P103), - offsetof(struct ProtocolExtensionContainer_170P103, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P103 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P103_tags_207, - sizeof(asn_DEF_ProtocolExtensionContainer_170P103_tags_207) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P103_tags_207[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P103_tags_207, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P103_tags_207) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P103_tags_207[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P103_constr_207, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P103_207, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P103_specs_207 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P104_209[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ABSInformationFDD_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P104_tags_209[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P104_specs_209 = { - sizeof(struct ProtocolExtensionContainer_170P104), - offsetof(struct ProtocolExtensionContainer_170P104, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P104 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P104_tags_209, - sizeof(asn_DEF_ProtocolExtensionContainer_170P104_tags_209) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P104_tags_209[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P104_tags_209, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P104_tags_209) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P104_tags_209[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P104_constr_209, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P104_209, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P104_specs_209 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P105_211[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ABSInformationTDD_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P105_tags_211[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P105_specs_211 = { - sizeof(struct ProtocolExtensionContainer_170P105), - offsetof(struct ProtocolExtensionContainer_170P105, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P105 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P105_tags_211, - sizeof(asn_DEF_ProtocolExtensionContainer_170P105_tags_211) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P105_tags_211[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P105_tags_211, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P105_tags_211) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P105_tags_211[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P105_constr_211, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P105_211, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P105_specs_211 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P106_213[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ABS_Status_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P106_tags_213[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P106_specs_213 = { - sizeof(struct ProtocolExtensionContainer_170P106), - offsetof(struct ProtocolExtensionContainer_170P106, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P106 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P106_tags_213, - sizeof(asn_DEF_ProtocolExtensionContainer_170P106_tags_213) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P106_tags_213[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P106_tags_213, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P106_tags_213) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P106_tags_213[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P106_constr_213, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P106_213, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P106_specs_213 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P107_215[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_AdditionalSpecialSubframe_Info_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P107_tags_215[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P107_specs_215 = { - sizeof(struct ProtocolExtensionContainer_170P107), - offsetof(struct ProtocolExtensionContainer_170P107, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P107 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P107_tags_215, - sizeof(asn_DEF_ProtocolExtensionContainer_170P107_tags_215) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P107_tags_215[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P107_tags_215, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P107_tags_215) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P107_tags_215[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P107_constr_215, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P107_215, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P107_specs_215 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P108_217[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_AdditionalSpecialSubframeExtension_Info_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P108_tags_217[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P108_specs_217 = { - sizeof(struct ProtocolExtensionContainer_170P108), - offsetof(struct ProtocolExtensionContainer_170P108, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P108 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P108_tags_217, - sizeof(asn_DEF_ProtocolExtensionContainer_170P108_tags_217) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P108_tags_217[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P108_tags_217, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P108_tags_217) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P108_tags_217[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P108_constr_217, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P108_217, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P108_specs_217 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P109_219[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_AllocationAndRetentionPriority_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P109_tags_219[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P109_specs_219 = { - sizeof(struct ProtocolExtensionContainer_170P109), - offsetof(struct ProtocolExtensionContainer_170P109, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P109 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P109_tags_219, - sizeof(asn_DEF_ProtocolExtensionContainer_170P109_tags_219) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P109_tags_219[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P109_tags_219, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P109_tags_219) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P109_tags_219[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P109_constr_219, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P109_219, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P109_specs_219 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P110_221[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_AS_SecurityInformation_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P110_tags_221[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P110_specs_221 = { - sizeof(struct ProtocolExtensionContainer_170P110), - offsetof(struct ProtocolExtensionContainer_170P110, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P110 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P110_tags_221, - sizeof(asn_DEF_ProtocolExtensionContainer_170P110_tags_221) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P110_tags_221[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P110_tags_221, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P110_tags_221) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P110_tags_221[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P110_constr_221, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P110_221, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P110_specs_221 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P111_223[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_BluetoothMeasurementConfiguration_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P111_tags_223[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P111_specs_223 = { - sizeof(struct ProtocolExtensionContainer_170P111), - offsetof(struct ProtocolExtensionContainer_170P111, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P111 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P111_tags_223, - sizeof(asn_DEF_ProtocolExtensionContainer_170P111_tags_223) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P111_tags_223[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P111_tags_223, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P111_tags_223) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P111_tags_223[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P111_constr_223, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P111_223, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P111_specs_223 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P112_225[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CellBasedMDT_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P112_tags_225[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P112_specs_225 = { - sizeof(struct ProtocolExtensionContainer_170P112), - offsetof(struct ProtocolExtensionContainer_170P112, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P112 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P112_tags_225, - sizeof(asn_DEF_ProtocolExtensionContainer_170P112_tags_225) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P112_tags_225[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P112_tags_225, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P112_tags_225) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P112_tags_225[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P112_constr_225, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P112_225, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P112_specs_225 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P113_227[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CellBasedQMC_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P113_tags_227[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P113_specs_227 = { - sizeof(struct ProtocolExtensionContainer_170P113), - offsetof(struct ProtocolExtensionContainer_170P113, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P113 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P113_tags_227, - sizeof(asn_DEF_ProtocolExtensionContainer_170P113_tags_227) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P113_tags_227[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P113_tags_227, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P113_tags_227) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P113_tags_227[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P113_constr_227, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P113_227, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P113_specs_227 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P114_229[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CellReplacingInfo_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P114_tags_229[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P114_specs_229 = { - sizeof(struct ProtocolExtensionContainer_170P114), - offsetof(struct ProtocolExtensionContainer_170P114, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P114 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P114_tags_229, - sizeof(asn_DEF_ProtocolExtensionContainer_170P114_tags_229) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P114_tags_229[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P114_tags_229, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P114_tags_229) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P114_tags_229[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P114_constr_229, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P114_229, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P114_specs_229 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P115_231[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CellType_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P115_tags_231[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P115_specs_231 = { - sizeof(struct ProtocolExtensionContainer_170P115), - offsetof(struct ProtocolExtensionContainer_170P115, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P115 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P115_tags_231, - sizeof(asn_DEF_ProtocolExtensionContainer_170P115_tags_231) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P115_tags_231[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P115_tags_231, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P115_tags_231) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P115_tags_231[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P115_constr_231, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P115_231, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P115_specs_231 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P116_233[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CNTypeRestrictionsItem_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P116_tags_233[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P116_specs_233 = { - sizeof(struct ProtocolExtensionContainer_170P116), - offsetof(struct ProtocolExtensionContainer_170P116, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P116 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P116_tags_233, - sizeof(asn_DEF_ProtocolExtensionContainer_170P116_tags_233) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P116_tags_233[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P116_tags_233, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P116_tags_233) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P116_tags_233[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P116_constr_233, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P116_233, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P116_specs_233 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P117_235[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CoMPHypothesisSetItem_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P117_tags_235[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P117_specs_235 = { - sizeof(struct ProtocolExtensionContainer_170P117), - offsetof(struct ProtocolExtensionContainer_170P117, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P117 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P117_tags_235, - sizeof(asn_DEF_ProtocolExtensionContainer_170P117_tags_235) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P117_tags_235[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P117_tags_235, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P117_tags_235) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P117_tags_235[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P117_constr_235, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P117_235, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P117_specs_235 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P118_237[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CoMPInformation_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P118_tags_237[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P118_specs_237 = { - sizeof(struct ProtocolExtensionContainer_170P118), - offsetof(struct ProtocolExtensionContainer_170P118, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P118 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P118_tags_237, - sizeof(asn_DEF_ProtocolExtensionContainer_170P118_tags_237) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P118_tags_237[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P118_tags_237, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P118_tags_237) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P118_tags_237[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P118_constr_237, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P118_237, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P118_specs_237 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P119_239[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CoMPInformationItem_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P119_tags_239[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P119_specs_239 = { - sizeof(struct ProtocolExtensionContainer_170P119), - offsetof(struct ProtocolExtensionContainer_170P119, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P119 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P119_tags_239, - sizeof(asn_DEF_ProtocolExtensionContainer_170P119_tags_239) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P119_tags_239[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P119_tags_239, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P119_tags_239) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P119_tags_239[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P119_constr_239, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P119_239, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P119_specs_239 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P120_241[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CoMPInformationStartTime_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P120_tags_241[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P120_specs_241 = { - sizeof(struct ProtocolExtensionContainer_170P120), - offsetof(struct ProtocolExtensionContainer_170P120, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P120 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P120_tags_241, - sizeof(asn_DEF_ProtocolExtensionContainer_170P120_tags_241) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P120_tags_241[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P120_tags_241, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P120_tags_241) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P120_tags_241[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P120_constr_241, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P120_241, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P120_specs_241 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P121_243[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CompositeAvailableCapacity_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P121_tags_243[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P121_specs_243 = { - sizeof(struct ProtocolExtensionContainer_170P121), - offsetof(struct ProtocolExtensionContainer_170P121, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P121 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P121_tags_243, - sizeof(asn_DEF_ProtocolExtensionContainer_170P121_tags_243) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P121_tags_243[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P121_tags_243, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P121_tags_243) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P121_tags_243[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P121_constr_243, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P121_243, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P121_specs_243 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P122_245[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CompositeAvailableCapacityGroup_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P122_tags_245[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P122_specs_245 = { - sizeof(struct ProtocolExtensionContainer_170P122), - offsetof(struct ProtocolExtensionContainer_170P122, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P122 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P122_tags_245, - sizeof(asn_DEF_ProtocolExtensionContainer_170P122_tags_245) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P122_tags_245[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P122_tags_245, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P122_tags_245) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P122_tags_245[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P122_constr_245, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P122_245, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P122_specs_245 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P123_247[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_COUNTvalue_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P123_tags_247[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P123_specs_247 = { - sizeof(struct ProtocolExtensionContainer_170P123), - offsetof(struct ProtocolExtensionContainer_170P123, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P123 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P123_tags_247, - sizeof(asn_DEF_ProtocolExtensionContainer_170P123_tags_247) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P123_tags_247[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P123_tags_247, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P123_tags_247) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P123_tags_247[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P123_constr_247, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P123_247, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P123_specs_247 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P124_249[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_COUNTValueExtended_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P124_tags_249[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P124_specs_249 = { - sizeof(struct ProtocolExtensionContainer_170P124), - offsetof(struct ProtocolExtensionContainer_170P124, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P124 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P124_tags_249, - sizeof(asn_DEF_ProtocolExtensionContainer_170P124_tags_249) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P124_tags_249[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P124_tags_249, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P124_tags_249) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P124_tags_249[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P124_constr_249, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P124_249, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P124_specs_249 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P125_251[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_COUNTvaluePDCP_SNlength18_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P125_tags_251[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P125_specs_251 = { - sizeof(struct ProtocolExtensionContainer_170P125), - offsetof(struct ProtocolExtensionContainer_170P125, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P125 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P125_tags_251, - sizeof(asn_DEF_ProtocolExtensionContainer_170P125_tags_251) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P125_tags_251[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P125_tags_251, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P125_tags_251) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P125_tags_251[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P125_constr_251, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P125_251, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P125_specs_251 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P126_253[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CriticalityDiagnostics_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P126_tags_253[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P126_specs_253 = { - sizeof(struct ProtocolExtensionContainer_170P126), - offsetof(struct ProtocolExtensionContainer_170P126, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P126 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P126_tags_253, - sizeof(asn_DEF_ProtocolExtensionContainer_170P126_tags_253) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P126_tags_253[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P126_tags_253, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P126_tags_253) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P126_tags_253[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P126_constr_253, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P126_253, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P126_specs_253 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P127_255[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CriticalityDiagnostics_IE_List_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P127_tags_255[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P127_specs_255 = { - sizeof(struct ProtocolExtensionContainer_170P127), - offsetof(struct ProtocolExtensionContainer_170P127, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P127 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P127_tags_255, - sizeof(asn_DEF_ProtocolExtensionContainer_170P127_tags_255) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P127_tags_255[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P127_tags_255, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P127_tags_255) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P127_tags_255[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P127_constr_255, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P127_255, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P127_specs_255 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P128_257[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CSIReportList_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P128_tags_257[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P128_specs_257 = { - sizeof(struct ProtocolExtensionContainer_170P128), - offsetof(struct ProtocolExtensionContainer_170P128, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P128 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P128_tags_257, - sizeof(asn_DEF_ProtocolExtensionContainer_170P128_tags_257) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P128_tags_257[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P128_tags_257, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P128_tags_257) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P128_tags_257[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P128_constr_257, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P128_257, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P128_specs_257 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P129_259[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CSIReportPerCSIProcess_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P129_tags_259[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P129_specs_259 = { - sizeof(struct ProtocolExtensionContainer_170P129), - offsetof(struct ProtocolExtensionContainer_170P129, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P129 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P129_tags_259, - sizeof(asn_DEF_ProtocolExtensionContainer_170P129_tags_259) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P129_tags_259[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P129_tags_259, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P129_tags_259) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P129_tags_259[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P129_constr_259, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P129_259, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P129_specs_259 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P130_261[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CSIReportPerCSIProcessItem_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P130_tags_261[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P130_specs_261 = { - sizeof(struct ProtocolExtensionContainer_170P130), - offsetof(struct ProtocolExtensionContainer_170P130, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P130 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P130_tags_261, - sizeof(asn_DEF_ProtocolExtensionContainer_170P130_tags_261) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P130_tags_261[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P130_tags_261, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P130_tags_261) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P130_tags_261[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P130_constr_261, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P130_261, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P130_specs_261 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P131_263[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_DataTrafficResourceIndication_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P131_tags_263[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P131_specs_263 = { - sizeof(struct ProtocolExtensionContainer_170P131), - offsetof(struct ProtocolExtensionContainer_170P131, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P131 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P131_tags_263, - sizeof(asn_DEF_ProtocolExtensionContainer_170P131_tags_263) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P131_tags_263[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P131_tags_263, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P131_tags_263) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P131_tags_263[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P131_constr_263, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P131_263, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P131_specs_263 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P132_265[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_DeliveryStatus_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P132_tags_265[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P132_specs_265 = { - sizeof(struct ProtocolExtensionContainer_170P132), - offsetof(struct ProtocolExtensionContainer_170P132, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P132 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P132_tags_265, - sizeof(asn_DEF_ProtocolExtensionContainer_170P132_tags_265) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P132_tags_265[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P132_tags_265, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P132_tags_265) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P132_tags_265[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P132_constr_265, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P132_265, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P132_specs_265 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P133_267[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_DynamicNAICSInformation_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P133_tags_267[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P133_specs_267 = { - sizeof(struct ProtocolExtensionContainer_170P133), - offsetof(struct ProtocolExtensionContainer_170P133, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P133 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P133_tags_267, - sizeof(asn_DEF_ProtocolExtensionContainer_170P133_tags_267) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P133_tags_267[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P133_tags_267, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P133_tags_267) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P133_tags_267[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P133_constr_267, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P133_267, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P133_specs_267 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P134_269[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ECGI_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P134_tags_269[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P134_specs_269 = { - sizeof(struct ProtocolExtensionContainer_170P134), - offsetof(struct ProtocolExtensionContainer_170P134, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P134 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P134_tags_269, - sizeof(asn_DEF_ProtocolExtensionContainer_170P134_tags_269) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P134_tags_269[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P134_tags_269, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P134_tags_269) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P134_tags_269[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P134_constr_269, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P134_269, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P134_specs_269 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P135_271[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_EnhancedRNTP_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P135_tags_271[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P135_specs_271 = { - sizeof(struct ProtocolExtensionContainer_170P135), - offsetof(struct ProtocolExtensionContainer_170P135, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P135 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P135_tags_271, - sizeof(asn_DEF_ProtocolExtensionContainer_170P135_tags_271) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P135_tags_271[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P135_tags_271, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P135_tags_271) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P135_tags_271[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P135_constr_271, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P135_271, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P135_specs_271 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P136_273[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_EnhancedRNTPStartTime_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P136_tags_273[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P136_specs_273 = { - sizeof(struct ProtocolExtensionContainer_170P136), - offsetof(struct ProtocolExtensionContainer_170P136, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P136 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P136_tags_273, - sizeof(asn_DEF_ProtocolExtensionContainer_170P136_tags_273) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P136_tags_273[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P136_tags_273, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P136_tags_273) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P136_tags_273[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P136_constr_273, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P136_273, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P136_specs_273 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P137_275[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_EN_DC_ResourceConfigurationExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P137_tags_275[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P137_specs_275 = { - sizeof(struct ProtocolExtensionContainer_170P137), - offsetof(struct ProtocolExtensionContainer_170P137, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P137 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P137_tags_275, - sizeof(asn_DEF_ProtocolExtensionContainer_170P137_tags_275) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P137_tags_275[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P137_tags_275, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P137_tags_275) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P137_tags_275[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P137_constr_275, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P137_275, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P137_specs_275 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P138_277[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ERABActivityNotifyItem_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P138_tags_277[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P138_specs_277 = { - sizeof(struct ProtocolExtensionContainer_170P138), - offsetof(struct ProtocolExtensionContainer_170P138, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P138 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P138_tags_277, - sizeof(asn_DEF_ProtocolExtensionContainer_170P138_tags_277) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P138_tags_277[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P138_tags_277, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P138_tags_277) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P138_tags_277[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P138_constr_277, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P138_277, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P138_specs_277 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P139_279[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RAB_Level_QoS_Parameters_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P139_tags_279[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P139_specs_279 = { - sizeof(struct ProtocolExtensionContainer_170P139), - offsetof(struct ProtocolExtensionContainer_170P139, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P139 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P139_tags_279, - sizeof(asn_DEF_ProtocolExtensionContainer_170P139_tags_279) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P139_tags_279[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P139_tags_279, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P139_tags_279) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P139_tags_279[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P139_constr_279, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P139_279, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P139_specs_279 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P140_281[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RAB_Item_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P140_tags_281[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P140_specs_281 = { - sizeof(struct ProtocolExtensionContainer_170P140), - offsetof(struct ProtocolExtensionContainer_170P140, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P140 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P140_tags_281, - sizeof(asn_DEF_ProtocolExtensionContainer_170P140_tags_281) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P140_tags_281[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P140_tags_281, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P140_tags_281) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P140_tags_281[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P140_constr_281, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P140_281, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P140_specs_281 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P141_283[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RABUsageReport_Item_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P141_tags_283[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P141_specs_283 = { - sizeof(struct ProtocolExtensionContainer_170P141), - offsetof(struct ProtocolExtensionContainer_170P141, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P141 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P141_tags_283, - sizeof(asn_DEF_ProtocolExtensionContainer_170P141_tags_283) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P141_tags_283[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P141_tags_283, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P141_tags_283) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P141_tags_283[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P141_constr_283, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P141_283, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P141_specs_283 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P142_285[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ExpectedUEBehaviour_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P142_tags_285[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P142_specs_285 = { - sizeof(struct ProtocolExtensionContainer_170P142), - offsetof(struct ProtocolExtensionContainer_170P142, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P142 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P142_tags_285, - sizeof(asn_DEF_ProtocolExtensionContainer_170P142_tags_285) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P142_tags_285[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P142_tags_285, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P142_tags_285) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P142_tags_285[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P142_constr_285, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P142_285, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P142_specs_285 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P143_287[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ExpectedUEActivityBehaviour_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P143_tags_287[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P143_specs_287 = { - sizeof(struct ProtocolExtensionContainer_170P143), - offsetof(struct ProtocolExtensionContainer_170P143, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P143 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P143_tags_287, - sizeof(asn_DEF_ProtocolExtensionContainer_170P143_tags_287) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P143_tags_287[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P143_tags_287, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P143_tags_287) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P143_tags_287[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P143_constr_287, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P143_287, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P143_specs_287 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P144_289[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ExtendedULInterferenceOverloadInfo_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P144_tags_289[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P144_specs_289 = { - sizeof(struct ProtocolExtensionContainer_170P144), - offsetof(struct ProtocolExtensionContainer_170P144, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P144 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P144_tags_289, - sizeof(asn_DEF_ProtocolExtensionContainer_170P144_tags_289) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P144_tags_289[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P144_tags_289, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P144_tags_289) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P144_tags_289[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P144_constr_289, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P144_289, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P144_specs_289 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P145_291[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_FDD_Info_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P145_tags_291[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P145_specs_291 = { - sizeof(struct ProtocolExtensionContainer_170P145), - offsetof(struct ProtocolExtensionContainer_170P145, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P145 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P145_tags_291, - sizeof(asn_DEF_ProtocolExtensionContainer_170P145_tags_291) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P145_tags_291[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P145_tags_291, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P145_tags_291) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P145_tags_291[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P145_constr_291, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P145_291, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P145_specs_291 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P146_293[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ForbiddenTAs_Item_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P146_tags_293[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P146_specs_293 = { - sizeof(struct ProtocolExtensionContainer_170P146), - offsetof(struct ProtocolExtensionContainer_170P146, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P146 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P146_tags_293, - sizeof(asn_DEF_ProtocolExtensionContainer_170P146_tags_293) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P146_tags_293[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P146_tags_293, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P146_tags_293) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P146_tags_293[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P146_constr_293, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P146_293, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P146_specs_293 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P147_295[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ForbiddenLAs_Item_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P147_tags_295[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P147_specs_295 = { - sizeof(struct ProtocolExtensionContainer_170P147), - offsetof(struct ProtocolExtensionContainer_170P147, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P147 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P147_tags_295, - sizeof(asn_DEF_ProtocolExtensionContainer_170P147_tags_295) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P147_tags_295[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P147_tags_295, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P147_tags_295) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P147_tags_295[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P147_constr_295, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P147_295, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P147_specs_295 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P148_297[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_FreqBandNrItem_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P148_tags_297[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P148_specs_297 = { - sizeof(struct ProtocolExtensionContainer_170P148), - offsetof(struct ProtocolExtensionContainer_170P148, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P148 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P148_tags_297, - sizeof(asn_DEF_ProtocolExtensionContainer_170P148_tags_297) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P148_tags_297[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P148_tags_297, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P148_tags_297) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P148_tags_297[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P148_constr_297, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P148_297, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P148_specs_297 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P149_299[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_GBR_QosInformation_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P149_tags_299[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P149_specs_299 = { - sizeof(struct ProtocolExtensionContainer_170P149), - offsetof(struct ProtocolExtensionContainer_170P149, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P149 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P149_tags_299, - sizeof(asn_DEF_ProtocolExtensionContainer_170P149_tags_299) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P149_tags_299[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P149_tags_299, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P149_tags_299) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P149_tags_299[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P149_constr_299, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P149_299, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P149_specs_299 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P150_301[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_GlobalENB_ID_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P150_tags_301[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P150_specs_301 = { - sizeof(struct ProtocolExtensionContainer_170P150), - offsetof(struct ProtocolExtensionContainer_170P150, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P150 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P150_tags_301, - sizeof(asn_DEF_ProtocolExtensionContainer_170P150_tags_301) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P150_tags_301[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P150_tags_301, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P150_tags_301) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P150_tags_301[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P150_constr_301, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P150_301, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P150_specs_301 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P151_303[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_GlobalGNB_ID_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P151_tags_303[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P151_specs_303 = { - sizeof(struct ProtocolExtensionContainer_170P151), - offsetof(struct ProtocolExtensionContainer_170P151, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P151 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P151_tags_303, - sizeof(asn_DEF_ProtocolExtensionContainer_170P151_tags_303) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P151_tags_303[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P151_tags_303, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P151_tags_303) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P151_tags_303[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P151_constr_303, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P151_303, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P151_specs_303 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P152_305[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_GTPtunnelEndpoint_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P152_tags_305[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P152_specs_305 = { - sizeof(struct ProtocolExtensionContainer_170P152), - offsetof(struct ProtocolExtensionContainer_170P152, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P152 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P152_tags_305, - sizeof(asn_DEF_ProtocolExtensionContainer_170P152_tags_305) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P152_tags_305[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P152_tags_305, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P152_tags_305) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P152_tags_305[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P152_constr_305, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P152_305, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P152_specs_305 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P153_307[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_GU_Group_ID_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P153_tags_307[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P153_specs_307 = { - sizeof(struct ProtocolExtensionContainer_170P153), - offsetof(struct ProtocolExtensionContainer_170P153, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P153 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P153_tags_307, - sizeof(asn_DEF_ProtocolExtensionContainer_170P153_tags_307) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P153_tags_307[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P153_tags_307, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P153_tags_307) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P153_tags_307[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P153_constr_307, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P153_307, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P153_specs_307 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P154_309[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_GUMMEI_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P154_tags_309[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P154_specs_309 = { - sizeof(struct ProtocolExtensionContainer_170P154), - offsetof(struct ProtocolExtensionContainer_170P154, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P154 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P154_tags_309, - sizeof(asn_DEF_ProtocolExtensionContainer_170P154_tags_309) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P154_tags_309[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P154_tags_309, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P154_tags_309) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P154_tags_309[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P154_constr_309, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P154_309, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P154_specs_309 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P155_311[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_HandoverRestrictionList_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P155_tags_311[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P155_specs_311 = { - sizeof(struct ProtocolExtensionContainer_170P155), - offsetof(struct ProtocolExtensionContainer_170P155, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P155 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P155_tags_311, - sizeof(asn_DEF_ProtocolExtensionContainer_170P155_tags_311) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P155_tags_311[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P155_tags_311, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P155_tags_311) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P155_tags_311[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P155_constr_311, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P155_311, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P155_specs_311 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P156_313[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_HWLoadIndicator_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P156_tags_313[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P156_specs_313 = { - sizeof(struct ProtocolExtensionContainer_170P156), - offsetof(struct ProtocolExtensionContainer_170P156, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P156 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P156_tags_313, - sizeof(asn_DEF_ProtocolExtensionContainer_170P156_tags_313) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P156_tags_313[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P156_tags_313, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P156_tags_313) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P156_tags_313[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P156_constr_313, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P156_313, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P156_specs_313 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P157_315[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_LastVisitedEUTRANCellInformation_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P157_tags_315[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P157_specs_315 = { - sizeof(struct ProtocolExtensionContainer_170P157), - offsetof(struct ProtocolExtensionContainer_170P157, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P157 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P157_tags_315, - sizeof(asn_DEF_ProtocolExtensionContainer_170P157_tags_315) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P157_tags_315[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P157_tags_315, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P157_tags_315) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P157_tags_315[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P157_constr_315, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P157_315, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P157_specs_315 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P158_317[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_LocationReportingInformation_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P158_tags_317[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P158_specs_317 = { - sizeof(struct ProtocolExtensionContainer_170P158), - offsetof(struct ProtocolExtensionContainer_170P158, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P158 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P158_tags_317, - sizeof(asn_DEF_ProtocolExtensionContainer_170P158_tags_317) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P158_tags_317[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P158_tags_317, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P158_tags_317) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P158_tags_317[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P158_constr_317, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P158_317, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P158_specs_317 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P159_319[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_M1PeriodicReporting_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P159_tags_319[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P159_specs_319 = { - sizeof(struct ProtocolExtensionContainer_170P159), - offsetof(struct ProtocolExtensionContainer_170P159, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P159 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P159_tags_319, - sizeof(asn_DEF_ProtocolExtensionContainer_170P159_tags_319) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P159_tags_319[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P159_tags_319, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P159_tags_319) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P159_tags_319[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P159_constr_319, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P159_319, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P159_specs_319 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P160_321[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_M1ThresholdEventA2_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P160_tags_321[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P160_specs_321 = { - sizeof(struct ProtocolExtensionContainer_170P160), - offsetof(struct ProtocolExtensionContainer_170P160, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P160 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P160_tags_321, - sizeof(asn_DEF_ProtocolExtensionContainer_170P160_tags_321) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P160_tags_321[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P160_tags_321, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P160_tags_321) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P160_tags_321[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P160_constr_321, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P160_321, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P160_specs_321 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P161_323[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_M3Configuration_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P161_tags_323[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P161_specs_323 = { - sizeof(struct ProtocolExtensionContainer_170P161), - offsetof(struct ProtocolExtensionContainer_170P161, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P161 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P161_tags_323, - sizeof(asn_DEF_ProtocolExtensionContainer_170P161_tags_323) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P161_tags_323[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P161_tags_323, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P161_tags_323) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P161_tags_323[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P161_constr_323, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P161_323, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P161_specs_323 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P162_325[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_M4Configuration_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P162_tags_325[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P162_specs_325 = { - sizeof(struct ProtocolExtensionContainer_170P162), - offsetof(struct ProtocolExtensionContainer_170P162, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P162 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P162_tags_325, - sizeof(asn_DEF_ProtocolExtensionContainer_170P162_tags_325) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P162_tags_325[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P162_tags_325, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P162_tags_325) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P162_tags_325[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P162_constr_325, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P162_325, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P162_specs_325 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P163_327[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_M5Configuration_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P163_tags_327[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P163_specs_327 = { - sizeof(struct ProtocolExtensionContainer_170P163), - offsetof(struct ProtocolExtensionContainer_170P163, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P163 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P163_tags_327, - sizeof(asn_DEF_ProtocolExtensionContainer_170P163_tags_327) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P163_tags_327[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P163_tags_327, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P163_tags_327) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P163_tags_327[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P163_constr_327, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P163_327, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P163_specs_327 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P164_329[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_M6Configuration_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P164_tags_329[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P164_specs_329 = { - sizeof(struct ProtocolExtensionContainer_170P164), - offsetof(struct ProtocolExtensionContainer_170P164, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P164 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P164_tags_329, - sizeof(asn_DEF_ProtocolExtensionContainer_170P164_tags_329) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P164_tags_329[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P164_tags_329, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P164_tags_329) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P164_tags_329[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P164_constr_329, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P164_329, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P164_specs_329 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P165_331[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_M7Configuration_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P165_tags_331[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P165_specs_331 = { - sizeof(struct ProtocolExtensionContainer_170P165), - offsetof(struct ProtocolExtensionContainer_170P165, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P165 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P165_tags_331, - sizeof(asn_DEF_ProtocolExtensionContainer_170P165_tags_331) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P165_tags_331[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P165_tags_331, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P165_tags_331) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P165_tags_331[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P165_constr_331, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P165_331, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P165_specs_331 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P166_333[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_MDT_Configuration_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P166_tags_333[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P166_specs_333 = { - sizeof(struct ProtocolExtensionContainer_170P166), - offsetof(struct ProtocolExtensionContainer_170P166, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P166 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P166_tags_333, - sizeof(asn_DEF_ProtocolExtensionContainer_170P166_tags_333) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P166_tags_333[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P166_tags_333, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P166_tags_333) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P166_tags_333[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P166_constr_333, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P166_333, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P166_specs_333 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P167_335[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_MeNBResourceCoordinationInformationExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P167_tags_335[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P167_specs_335 = { - sizeof(struct ProtocolExtensionContainer_170P167), - offsetof(struct ProtocolExtensionContainer_170P167, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P167 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P167_tags_335, - sizeof(asn_DEF_ProtocolExtensionContainer_170P167_tags_335) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P167_tags_335[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P167_tags_335, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P167_tags_335) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P167_tags_335[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P167_constr_335, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P167_335, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P167_specs_335 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P168_337[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_MBSFN_Subframe_Info_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P168_tags_337[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P168_specs_337 = { - sizeof(struct ProtocolExtensionContainer_170P168), - offsetof(struct ProtocolExtensionContainer_170P168, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P168 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P168_tags_337, - sizeof(asn_DEF_ProtocolExtensionContainer_170P168_tags_337) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P168_tags_337[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P168_tags_337, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P168_tags_337) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P168_tags_337[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P168_constr_337, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P168_337, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P168_specs_337 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P169_339[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_BandInfo_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P169_tags_339[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P169_specs_339 = { - sizeof(struct ProtocolExtensionContainer_170P169), - offsetof(struct ProtocolExtensionContainer_170P169, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P169 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P169_tags_339, - sizeof(asn_DEF_ProtocolExtensionContainer_170P169_tags_339) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P169_tags_339[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P169_tags_339, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P169_tags_339) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P169_tags_339[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P169_constr_339, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P169_339, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P169_specs_339 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P170_341[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_SplitSRB_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P170_tags_341[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P170_specs_341 = { - sizeof(struct ProtocolExtensionContainer_170P170), - offsetof(struct ProtocolExtensionContainer_170P170, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P170 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P170_tags_341, - sizeof(asn_DEF_ProtocolExtensionContainer_170P170_tags_341) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P170_tags_341[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P170_tags_341, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P170_tags_341) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P170_tags_341[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P170_constr_341, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P170_341, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P170_specs_341 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P171_343[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_UENRMeasurement_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P171_tags_343[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P171_specs_343 = { - sizeof(struct ProtocolExtensionContainer_170P171), - offsetof(struct ProtocolExtensionContainer_170P171, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P171 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P171_tags_343, - sizeof(asn_DEF_ProtocolExtensionContainer_170P171_tags_343) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P171_tags_343[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P171_tags_343, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P171_tags_343) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P171_tags_343[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P171_constr_343, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P171_343, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P171_specs_343 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P172_345[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_Neighbour_Information_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P172_tags_345[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P172_specs_345 = { - sizeof(struct ProtocolExtensionContainer_170P172), - offsetof(struct ProtocolExtensionContainer_170P172, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P172 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P172_tags_345, - sizeof(asn_DEF_ProtocolExtensionContainer_170P172_tags_345) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P172_tags_345[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P172_tags_345, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P172_tags_345) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P172_tags_345[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P172_constr_345, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P172_345, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P172_specs_345 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P173_347[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_NRFreqInfo_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P173_tags_347[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P173_specs_347 = { - sizeof(struct ProtocolExtensionContainer_170P173), - offsetof(struct ProtocolExtensionContainer_170P173, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P173 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P173_tags_347, - sizeof(asn_DEF_ProtocolExtensionContainer_170P173_tags_347) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P173_tags_347[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P173_tags_347, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P173_tags_347) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P173_tags_347[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P173_constr_347, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P173_347, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P173_specs_347 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P174_349[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_NRCGI_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P174_tags_349[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P174_specs_349 = { - sizeof(struct ProtocolExtensionContainer_170P174), - offsetof(struct ProtocolExtensionContainer_170P174, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P174 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P174_tags_349, - sizeof(asn_DEF_ProtocolExtensionContainer_170P174_tags_349) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P174_tags_349[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P174_tags_349, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P174_tags_349) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P174_tags_349[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P174_constr_349, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P174_349, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P174_specs_349 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P175_351[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_NR_TxBW_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P175_tags_351[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P175_specs_351 = { - sizeof(struct ProtocolExtensionContainer_170P175), - offsetof(struct ProtocolExtensionContainer_170P175, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P175 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P175_tags_351, - sizeof(asn_DEF_ProtocolExtensionContainer_170P175_tags_351) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P175_tags_351[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P175_tags_351, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P175_tags_351) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P175_tags_351[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P175_constr_351, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P175_351, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P175_specs_351 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P176_353[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_NRUESecurityCapabilities_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P176_tags_353[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P176_specs_353 = { - sizeof(struct ProtocolExtensionContainer_170P176), - offsetof(struct ProtocolExtensionContainer_170P176, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P176 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P176_tags_353, - sizeof(asn_DEF_ProtocolExtensionContainer_170P176_tags_353) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P176_tags_353[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P176_tags_353, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P176_tags_353) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P176_tags_353[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P176_constr_353, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P176_353, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P176_specs_353 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P177_355[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_PRACH_Configuration_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P177_tags_355[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P177_specs_355 = { - sizeof(struct ProtocolExtensionContainer_170P177), - offsetof(struct ProtocolExtensionContainer_170P177, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P177 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P177_tags_355, - sizeof(asn_DEF_ProtocolExtensionContainer_170P177_tags_355) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P177_tags_355[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P177_tags_355, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P177_tags_355) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P177_tags_355[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P177_constr_355, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P177_355, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P177_specs_355 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P178_357[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_PLMNAreaBasedQMC_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P178_tags_357[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P178_specs_357 = { - sizeof(struct ProtocolExtensionContainer_170P178), - offsetof(struct ProtocolExtensionContainer_170P178, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P178 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P178_tags_357, - sizeof(asn_DEF_ProtocolExtensionContainer_170P178_tags_357) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P178_tags_357[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P178_tags_357, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P178_tags_357) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P178_tags_357[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P178_constr_357, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P178_357, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P178_specs_357 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P179_359[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ProSeAuthorized_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P179_tags_359[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P179_specs_359 = { - sizeof(struct ProtocolExtensionContainer_170P179), - offsetof(struct ProtocolExtensionContainer_170P179, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P179 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P179_tags_359, - sizeof(asn_DEF_ProtocolExtensionContainer_170P179_tags_359) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P179_tags_359[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P179_tags_359, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P179_tags_359) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P179_tags_359[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P179_constr_359, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P179_359, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P179_specs_359 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P180_361[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ProtectedEUTRAResourceIndication_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P180_tags_361[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P180_specs_361 = { - sizeof(struct ProtocolExtensionContainer_170P180), - offsetof(struct ProtocolExtensionContainer_170P180, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P180 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P180_tags_361, - sizeof(asn_DEF_ProtocolExtensionContainer_170P180_tags_361) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P180_tags_361[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P180_tags_361, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P180_tags_361) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P180_tags_361[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P180_constr_361, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P180_361, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P180_specs_361 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P181_363[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ProtectedFootprintTimePattern_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P181_tags_363[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P181_specs_363 = { - sizeof(struct ProtocolExtensionContainer_170P181), - offsetof(struct ProtocolExtensionContainer_170P181, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P181 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P181_tags_363, - sizeof(asn_DEF_ProtocolExtensionContainer_170P181_tags_363) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P181_tags_363[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P181_tags_363, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P181_tags_363) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P181_tags_363[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P181_constr_363, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P181_363, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P181_specs_363 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P182_365[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ProtectedResourceList_Item_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P182_tags_365[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P182_specs_365 = { - sizeof(struct ProtocolExtensionContainer_170P182), - offsetof(struct ProtocolExtensionContainer_170P182, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P182 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P182_tags_365, - sizeof(asn_DEF_ProtocolExtensionContainer_170P182_tags_365) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P182_tags_365[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P182_tags_365, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P182_tags_365) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P182_tags_365[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P182_constr_365, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P182_365, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P182_specs_365 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P183_367[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RadioResourceStatus_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P183_tags_367[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P183_specs_367 = { - sizeof(struct ProtocolExtensionContainer_170P183), - offsetof(struct ProtocolExtensionContainer_170P183, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P183 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P183_tags_367, - sizeof(asn_DEF_ProtocolExtensionContainer_170P183_tags_367) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P183_tags_367[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P183_tags_367, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P183_tags_367) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P183_tags_367[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P183_constr_367, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P183_367, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P183_specs_367 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P184_369[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RelativeNarrowbandTxPower_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P184_tags_369[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P184_specs_369 = { - sizeof(struct ProtocolExtensionContainer_170P184), - offsetof(struct ProtocolExtensionContainer_170P184, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P184 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P184_tags_369, - sizeof(asn_DEF_ProtocolExtensionContainer_170P184_tags_369) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P184_tags_369[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P184_tags_369, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P184_tags_369) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P184_tags_369[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P184_constr_369, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P184_369, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P184_specs_369 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P185_371[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ReservedSubframePattern_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P185_tags_371[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P185_specs_371 = { - sizeof(struct ProtocolExtensionContainer_170P185), - offsetof(struct ProtocolExtensionContainer_170P185, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P185 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P185_tags_371, - sizeof(asn_DEF_ProtocolExtensionContainer_170P185_tags_371) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P185_tags_371[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P185_tags_371, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P185_tags_371) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P185_tags_371[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P185_constr_371, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P185_371, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P185_specs_371 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P186_373[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RLC_Status_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P186_tags_373[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P186_specs_373 = { - sizeof(struct ProtocolExtensionContainer_170P186), - offsetof(struct ProtocolExtensionContainer_170P186, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P186 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P186_tags_373, - sizeof(asn_DEF_ProtocolExtensionContainer_170P186_tags_373) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P186_tags_373[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P186_tags_373, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P186_tags_373) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P186_tags_373[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P186_constr_373, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P186_373, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P186_specs_373 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P187_375[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RSRPMeasurementResult_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P187_tags_375[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P187_specs_375 = { - sizeof(struct ProtocolExtensionContainer_170P187), - offsetof(struct ProtocolExtensionContainer_170P187, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P187 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P187_tags_375, - sizeof(asn_DEF_ProtocolExtensionContainer_170P187_tags_375) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P187_tags_375[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P187_tags_375, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P187_tags_375) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P187_tags_375[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P187_constr_375, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P187_375, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P187_specs_375 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P188_377[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RSRPMRList_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P188_tags_377[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P188_specs_377 = { - sizeof(struct ProtocolExtensionContainer_170P188), - offsetof(struct ProtocolExtensionContainer_170P188, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P188 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P188_tags_377, - sizeof(asn_DEF_ProtocolExtensionContainer_170P188_tags_377) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P188_tags_377[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P188_tags_377, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P188_tags_377) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P188_tags_377[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P188_constr_377, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P188_377, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P188_specs_377 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P189_379[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_S1TNLLoadIndicator_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P189_tags_379[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P189_specs_379 = { - sizeof(struct ProtocolExtensionContainer_170P189), - offsetof(struct ProtocolExtensionContainer_170P189, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P189 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P189_tags_379, - sizeof(asn_DEF_ProtocolExtensionContainer_170P189_tags_379) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P189_tags_379[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P189_tags_379, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P189_tags_379) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P189_tags_379[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P189_constr_379, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P189_379, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P189_specs_379 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P190_381[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_SecondaryRATUsageReport_Item_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P190_tags_381[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P190_specs_381 = { - sizeof(struct ProtocolExtensionContainer_170P190), - offsetof(struct ProtocolExtensionContainer_170P190, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P190 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P190_tags_381, - sizeof(asn_DEF_ProtocolExtensionContainer_170P190_tags_381) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P190_tags_381[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P190_tags_381, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P190_tags_381) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P190_tags_381[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P190_constr_381, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P190_381, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P190_specs_381 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P191_383[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ServedCell_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P191_tags_383[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P191_specs_383 = { - sizeof(struct ProtocolExtensionContainer_170P191), - offsetof(struct ProtocolExtensionContainer_170P191, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P191 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P191_tags_383, - sizeof(asn_DEF_ProtocolExtensionContainer_170P191_tags_383) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P191_tags_383[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P191_tags_383, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P191_tags_383) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P191_tags_383[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P191_constr_383, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P191_383, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P191_specs_383 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P192_385[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ServedCell_Information_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P192_tags_385[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P192_specs_385 = { - sizeof(struct ProtocolExtensionContainer_170P192), - offsetof(struct ProtocolExtensionContainer_170P192, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P192 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P192_tags_385, - sizeof(asn_DEF_ProtocolExtensionContainer_170P192_tags_385) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P192_tags_385[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P192_tags_385, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P192_tags_385) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P192_tags_385[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P192_constr_385, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P192_385, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P192_specs_385 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P193_387[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_SgNBResourceCoordinationInformationExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P193_tags_387[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P193_specs_387 = { - sizeof(struct ProtocolExtensionContainer_170P193), - offsetof(struct ProtocolExtensionContainer_170P193, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P193 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P193_tags_387, - sizeof(asn_DEF_ProtocolExtensionContainer_170P193_tags_387) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P193_tags_387[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P193_tags_387, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P193_tags_387) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P193_tags_387[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P193_constr_387, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P193_387, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P193_specs_387 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P194_389[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_SpecialSubframe_Info_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P194_tags_389[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P194_specs_389 = { - sizeof(struct ProtocolExtensionContainer_170P194), - offsetof(struct ProtocolExtensionContainer_170P194, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P194 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P194_tags_389, - sizeof(asn_DEF_ProtocolExtensionContainer_170P194_tags_389) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P194_tags_389[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P194_tags_389, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P194_tags_389) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P194_tags_389[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P194_constr_389, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P194_389, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P194_specs_389 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P195_391[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_SubbandCQI_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P195_tags_391[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P195_specs_391 = { - sizeof(struct ProtocolExtensionContainer_170P195), - offsetof(struct ProtocolExtensionContainer_170P195, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P195 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P195_tags_391, - sizeof(asn_DEF_ProtocolExtensionContainer_170P195_tags_391) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P195_tags_391[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P195_tags_391, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P195_tags_391) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P195_tags_391[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P195_constr_391, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P195_391, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P195_specs_391 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P196_393[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_Subscription_Based_UE_DifferentiationInfo_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P196_tags_393[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P196_specs_393 = { - sizeof(struct ProtocolExtensionContainer_170P196), - offsetof(struct ProtocolExtensionContainer_170P196, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P196 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P196_tags_393, - sizeof(asn_DEF_ProtocolExtensionContainer_170P196_tags_393) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P196_tags_393[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P196_tags_393, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P196_tags_393) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P196_tags_393[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P196_constr_393, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P196_393, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P196_specs_393 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P197_395[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ScheduledCommunicationTime_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P197_tags_395[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P197_specs_395 = { - sizeof(struct ProtocolExtensionContainer_170P197), - offsetof(struct ProtocolExtensionContainer_170P197, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P197 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P197_tags_395, - sizeof(asn_DEF_ProtocolExtensionContainer_170P197_tags_395) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P197_tags_395[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P197_tags_395, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P197_tags_395) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P197_tags_395[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P197_constr_395, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P197_395, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P197_specs_395 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P198_397[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_SubbandCQIItem_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P198_tags_397[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P198_specs_397 = { - sizeof(struct ProtocolExtensionContainer_170P198), - offsetof(struct ProtocolExtensionContainer_170P198, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P198 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P198_tags_397, - sizeof(asn_DEF_ProtocolExtensionContainer_170P198_tags_397) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P198_tags_397[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P198_tags_397, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P198_tags_397) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P198_tags_397[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P198_constr_397, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P198_397, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P198_specs_397 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P199_399[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_SULInformation_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P199_tags_399[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P199_specs_399 = { - sizeof(struct ProtocolExtensionContainer_170P199), - offsetof(struct ProtocolExtensionContainer_170P199, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P199 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P199_tags_399, - sizeof(asn_DEF_ProtocolExtensionContainer_170P199_tags_399) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P199_tags_399[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P199_tags_399, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P199_tags_399) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P199_tags_399[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P199_constr_399, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P199_399, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P199_specs_399 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P200_401[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_SupportedSULFreqBandItem_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P200_tags_401[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P200_specs_401 = { - sizeof(struct ProtocolExtensionContainer_170P200), - offsetof(struct ProtocolExtensionContainer_170P200, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P200 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P200_tags_401, - sizeof(asn_DEF_ProtocolExtensionContainer_170P200_tags_401) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P200_tags_401[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P200_tags_401, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P200_tags_401) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P200_tags_401[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P200_constr_401, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P200_401, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P200_specs_401 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P201_403[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_TABasedMDT_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P201_tags_403[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P201_specs_403 = { - sizeof(struct ProtocolExtensionContainer_170P201), - offsetof(struct ProtocolExtensionContainer_170P201, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P201 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P201_tags_403, - sizeof(asn_DEF_ProtocolExtensionContainer_170P201_tags_403) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P201_tags_403[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P201_tags_403, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P201_tags_403) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P201_tags_403[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P201_constr_403, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P201_403, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P201_specs_403 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P202_405[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_TAIBasedMDT_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P202_tags_405[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P202_specs_405 = { - sizeof(struct ProtocolExtensionContainer_170P202), - offsetof(struct ProtocolExtensionContainer_170P202, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P202 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P202_tags_405, - sizeof(asn_DEF_ProtocolExtensionContainer_170P202_tags_405) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P202_tags_405[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P202_tags_405, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P202_tags_405) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P202_tags_405[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P202_constr_405, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P202_405, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P202_specs_405 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P203_407[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_TAI_Item_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P203_tags_407[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P203_specs_407 = { - sizeof(struct ProtocolExtensionContainer_170P203), - offsetof(struct ProtocolExtensionContainer_170P203, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P203 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P203_tags_407, - sizeof(asn_DEF_ProtocolExtensionContainer_170P203_tags_407) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P203_tags_407[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P203_tags_407, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P203_tags_407) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P203_tags_407[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P203_constr_407, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P203_407, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P203_specs_407 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P204_409[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_TABasedQMC_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P204_tags_409[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P204_specs_409 = { - sizeof(struct ProtocolExtensionContainer_170P204), - offsetof(struct ProtocolExtensionContainer_170P204, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P204 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P204_tags_409, - sizeof(asn_DEF_ProtocolExtensionContainer_170P204_tags_409) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P204_tags_409[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P204_tags_409, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P204_tags_409) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P204_tags_409[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P204_constr_409, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P204_409, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P204_specs_409 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P205_411[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_TAIBasedQMC_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P205_tags_411[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P205_specs_411 = { - sizeof(struct ProtocolExtensionContainer_170P205), - offsetof(struct ProtocolExtensionContainer_170P205, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P205 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P205_tags_411, - sizeof(asn_DEF_ProtocolExtensionContainer_170P205_tags_411) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P205_tags_411[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P205_tags_411, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P205_tags_411) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P205_tags_411[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P205_constr_411, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P205_411, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P205_specs_411 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P206_413[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_TDD_Info_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P206_tags_413[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P206_specs_413 = { - sizeof(struct ProtocolExtensionContainer_170P206), - offsetof(struct ProtocolExtensionContainer_170P206, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P206 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P206_tags_413, - sizeof(asn_DEF_ProtocolExtensionContainer_170P206_tags_413) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P206_tags_413[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P206_tags_413, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P206_tags_413) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P206_tags_413[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P206_constr_413, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P206_413, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P206_specs_413 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P207_415[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_TraceActivation_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P207_tags_415[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P207_specs_415 = { - sizeof(struct ProtocolExtensionContainer_170P207), - offsetof(struct ProtocolExtensionContainer_170P207, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P207 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P207_tags_415, - sizeof(asn_DEF_ProtocolExtensionContainer_170P207_tags_415) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P207_tags_415[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P207_tags_415, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P207_tags_415) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P207_tags_415[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P207_constr_415, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P207_415, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P207_specs_415 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P208_417[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_Tunnel_Information_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P208_tags_417[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P208_specs_417 = { - sizeof(struct ProtocolExtensionContainer_170P208), - offsetof(struct ProtocolExtensionContainer_170P208, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P208 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P208_tags_417, - sizeof(asn_DEF_ProtocolExtensionContainer_170P208_tags_417) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P208_tags_417[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P208_tags_417, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P208_tags_417) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P208_tags_417[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P208_constr_417, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P208_417, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P208_specs_417 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P209_419[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_UEAggregate_MaximumBitrate_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P209_tags_419[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P209_specs_419 = { - sizeof(struct ProtocolExtensionContainer_170P209), - offsetof(struct ProtocolExtensionContainer_170P209, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P209 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P209_tags_419, - sizeof(asn_DEF_ProtocolExtensionContainer_170P209_tags_419) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P209_tags_419[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P209_tags_419, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P209_tags_419) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P209_tags_419[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P209_constr_419, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P209_419, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P209_specs_419 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P210_421[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_UEAppLayerMeasConfig_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P210_tags_421[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P210_specs_421 = { - sizeof(struct ProtocolExtensionContainer_170P210), - offsetof(struct ProtocolExtensionContainer_170P210, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P210 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P210_tags_421, - sizeof(asn_DEF_ProtocolExtensionContainer_170P210_tags_421) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P210_tags_421[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P210_tags_421, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P210_tags_421) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P210_tags_421[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P210_constr_421, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P210_421, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P210_specs_421 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P211_423[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_UESecurityCapabilities_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P211_tags_423[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P211_specs_423 = { - sizeof(struct ProtocolExtensionContainer_170P211), - offsetof(struct ProtocolExtensionContainer_170P211, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P211 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P211_tags_423, - sizeof(asn_DEF_ProtocolExtensionContainer_170P211_tags_423) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P211_tags_423[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P211_tags_423, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P211_tags_423) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P211_tags_423[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P211_constr_423, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P211_423, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P211_specs_423 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P212_425[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_UE_Sidelink_Aggregate_MaximumBitRate_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P212_tags_425[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P212_specs_425 = { - sizeof(struct ProtocolExtensionContainer_170P212), - offsetof(struct ProtocolExtensionContainer_170P212, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P212 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P212_tags_425, - sizeof(asn_DEF_ProtocolExtensionContainer_170P212_tags_425) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P212_tags_425[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P212_tags_425, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P212_tags_425) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P212_tags_425[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P212_constr_425, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P212_425, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P212_specs_425 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P213_427[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_UEsToBeResetList_Item_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P213_tags_427[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P213_specs_427 = { - sizeof(struct ProtocolExtensionContainer_170P213), - offsetof(struct ProtocolExtensionContainer_170P213, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P213 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P213_tags_427, - sizeof(asn_DEF_ProtocolExtensionContainer_170P213_tags_427) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P213_tags_427[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P213_tags_427, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P213_tags_427) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P213_tags_427[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P213_constr_427, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P213_427, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P213_specs_427 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P214_429[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ULandDLSharing_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P214_tags_429[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P214_specs_429 = { - sizeof(struct ProtocolExtensionContainer_170P214), - offsetof(struct ProtocolExtensionContainer_170P214, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P214 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P214_tags_429, - sizeof(asn_DEF_ProtocolExtensionContainer_170P214_tags_429) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P214_tags_429[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P214_tags_429, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P214_tags_429) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P214_tags_429[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P214_constr_429, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P214_429, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P214_specs_429 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P215_431[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ULConfiguration_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P215_tags_431[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P215_specs_431 = { - sizeof(struct ProtocolExtensionContainer_170P215), - offsetof(struct ProtocolExtensionContainer_170P215, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P215 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P215_tags_431, - sizeof(asn_DEF_ProtocolExtensionContainer_170P215_tags_431) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P215_tags_431[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P215_tags_431, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P215_tags_431) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P215_tags_431[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P215_constr_431, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P215_431, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P215_specs_431 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P216_433[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_UL_HighInterferenceIndicationInfo_Item_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P216_tags_433[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P216_specs_433 = { - sizeof(struct ProtocolExtensionContainer_170P216), - offsetof(struct ProtocolExtensionContainer_170P216, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P216 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P216_tags_433, - sizeof(asn_DEF_ProtocolExtensionContainer_170P216_tags_433) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P216_tags_433[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P216_tags_433, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P216_tags_433) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P216_tags_433[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P216_constr_433, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P216_433, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P216_specs_433 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P217_435[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ULOnlySharing_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P217_tags_435[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P217_specs_435 = { - sizeof(struct ProtocolExtensionContainer_170P217), - offsetof(struct ProtocolExtensionContainer_170P217, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P217 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P217_tags_435, - sizeof(asn_DEF_ProtocolExtensionContainer_170P217_tags_435) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P217_tags_435[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P217_tags_435, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P217_tags_435) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P217_tags_435[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P217_constr_435, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P217_435, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P217_specs_435 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P218_437[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_UsableABSInformationFDD_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P218_tags_437[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P218_specs_437 = { - sizeof(struct ProtocolExtensionContainer_170P218), - offsetof(struct ProtocolExtensionContainer_170P218, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P218 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P218_tags_437, - sizeof(asn_DEF_ProtocolExtensionContainer_170P218_tags_437) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P218_tags_437[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P218_tags_437, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P218_tags_437) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P218_tags_437[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P218_constr_437, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P218_437, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P218_specs_437 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P219_439[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_UsableABSInformationTDD_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P219_tags_439[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P219_specs_439 = { - sizeof(struct ProtocolExtensionContainer_170P219), - offsetof(struct ProtocolExtensionContainer_170P219, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P219 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P219_tags_439, - sizeof(asn_DEF_ProtocolExtensionContainer_170P219_tags_439) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P219_tags_439[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P219_tags_439, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P219_tags_439) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P219_tags_439[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P219_constr_439, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P219_439, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P219_specs_439 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P220_441[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_V2XServicesAuthorized_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P220_tags_441[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P220_specs_441 = { - sizeof(struct ProtocolExtensionContainer_170P220), - offsetof(struct ProtocolExtensionContainer_170P220, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P220 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P220_tags_441, - sizeof(asn_DEF_ProtocolExtensionContainer_170P220_tags_441) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P220_tags_441[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P220_tags_441, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P220_tags_441) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P220_tags_441[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P220_constr_441, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P220_441, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P220_specs_441 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P221_443[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_WidebandCQI_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P221_tags_443[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P221_specs_443 = { - sizeof(struct ProtocolExtensionContainer_170P221), - offsetof(struct ProtocolExtensionContainer_170P221, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P221 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P221_tags_443, - sizeof(asn_DEF_ProtocolExtensionContainer_170P221_tags_443) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P221_tags_443[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P221_tags_443, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P221_tags_443) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P221_tags_443[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P221_constr_443, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P221_443, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P221_specs_443 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P222_445[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_WLANMeasurementConfiguration_ExtIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_170P222_tags_445[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P222_specs_445 = { - sizeof(struct ProtocolExtensionContainer_170P222), - offsetof(struct ProtocolExtensionContainer_170P222, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P222 = { - "ProtocolExtensionContainer", - "ProtocolExtensionContainer", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolExtensionContainer_170P222_tags_445, - sizeof(asn_DEF_ProtocolExtensionContainer_170P222_tags_445) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P222_tags_445[0]), /* 1 */ - asn_DEF_ProtocolExtensionContainer_170P222_tags_445, /* Same as above */ - sizeof(asn_DEF_ProtocolExtensionContainer_170P222_tags_445) - /sizeof(asn_DEF_ProtocolExtensionContainer_170P222_tags_445[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolExtensionContainer_170P222_constr_445, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolExtensionContainer_170P222_445, - 1, /* Single element */ - &asn_SPC_ProtocolExtensionContainer_170P222_specs_445 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/ProtocolExtensionContainer.h b/e2sim/previous/ASN1c/ProtocolExtensionContainer.h deleted file mode 100644 index daf9d14..0000000 --- a/e2sim/previous/ASN1c/ProtocolExtensionContainer.h +++ /dev/null @@ -1,2504 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-Containers" - * found in "../../asnFiles/X2AP-Containers.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _ProtocolExtensionContainer_H_ -#define _ProtocolExtensionContainer_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct UE_ContextInformation_ExtIEs; -struct E_RABs_ToBeSetup_ItemExtIEs; -struct UE_ContextReferenceAtSeNB_ItemExtIEs; -struct UE_ContextReferenceAtWT_ItemExtIEs; -struct UE_ContextReferenceAtSgNB_ItemExtIEs; -struct E_RABs_Admitted_Item_ExtIEs; -struct E_RABs_SubjectToStatusTransfer_ItemExtIEs; -struct CellInformation_Item_ExtIEs; -struct ServedCellsToModify_Item_ExtIEs; -struct CellToReport_Item_ExtIEs; -struct MeasurementInitiationResult_Item_ExtIEs; -struct MeasurementFailureCause_Item_ExtIEs; -struct CompleteFailureCauseInformation_Item_ExtIEs; -struct CellMeasurementResult_Item_ExtIEs; -struct ServedCellsToActivate_Item_ExtIEs; -struct ActivatedCellList_Item_ExtIEs; -struct RNL_Header_Item_ExtIEs; -struct E_RABs_ToBeAdded_Item_SCG_BearerExtIEs; -struct E_RABs_ToBeAdded_Item_Split_BearerExtIEs; -struct E_RABs_Admitted_ToBeAdded_Item_SCG_BearerExtIEs; -struct E_RABs_Admitted_ToBeAdded_Item_Split_BearerExtIEs; -struct ResponseInformationSeNBReconfComp_SuccessItemExtIEs; -struct ResponseInformationSeNBReconfComp_RejectByMeNBItemExtIEs; -struct UE_ContextInformationSeNBModReqExtIEs; -struct E_RABs_ToBeAdded_ModReqItem_SCG_BearerExtIEs; -struct E_RABs_ToBeAdded_ModReqItem_Split_BearerExtIEs; -struct E_RABs_ToBeModified_ModReqItem_SCG_BearerExtIEs; -struct E_RABs_ToBeModified_ModReqItem_Split_BearerExtIEs; -struct E_RABs_ToBeReleased_ModReqItem_SCG_BearerExtIEs; -struct E_RABs_ToBeReleased_ModReqItem_Split_BearerExtIEs; -struct E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_BearerExtIEs; -struct E_RABs_Admitted_ToBeAdded_ModAckItem_Split_BearerExtIEs; -struct E_RABs_Admitted_ToBeModified_ModAckItem_SCG_BearerExtIEs; -struct E_RABs_Admitted_ToBeModified_ModAckItem_Split_BearerExtIEs; -struct E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_BearerExtIEs; -struct E_RABs_Admitted_ToBeReleased_ModAckItem_Split_BearerExtIEs; -struct E_RABs_ToBeReleased_ModReqdItemExtIEs; -struct E_RABs_ToBeReleased_RelReqItem_SCG_BearerExtIEs; -struct E_RABs_ToBeReleased_RelReqItem_Split_BearerExtIEs; -struct E_RABs_ToBeReleased_RelConfItem_SCG_BearerExtIEs; -struct E_RABs_ToBeReleased_RelConfItem_Split_BearerExtIEs; -struct E_RABs_SubjectToCounterCheckItemExtIEs; -struct UE_ContextInformationRetrieve_ExtIEs; -struct E_RABs_ToBeSetupRetrieve_ItemExtIEs; -struct E_RABs_ToBeAdded_SgNBAddReq_ItemExtIEs; -struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresentExtIEs; -struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresentExtIEs; -struct E_RABs_ToBeAdded_SgNBAddReqAck_ItemExtIEs; -struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresentExtIEs; -struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresentExtIEs; -struct ResponseInformationSgNBReconfComp_SuccessItemExtIEs; -struct ResponseInformationSgNBReconfComp_RejectByMeNBItemExtIEs; -struct UE_ContextInformationSgNBModReqExtIEs; -struct E_RABs_ToBeAdded_SgNBModReq_ItemExtIEs; -struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresentExtIEs; -struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs; -struct E_RABs_ToBeModified_SgNBModReq_ItemExtIEs; -struct E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresentExtIEs; -struct E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs; -struct E_RABs_ToBeReleased_SgNBModReq_ItemExtIEs; -struct E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresentExtIEs; -struct E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs; -struct E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemExtIEs; -struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresentExtIEs; -struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs; -struct E_RABs_ToBeAdded_SgNBModAck_ItemExtIEs; -struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresentExtIEs; -struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs; -struct E_RABs_ToBeReleased_SgNBModAck_ItemExtIEs; -struct E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresentExtIEs; -struct E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs; -struct E_RABs_ToBeReleased_SgNBModReqd_ItemExtIEs; -struct E_RABs_ToBeModified_SgNBModReqd_ItemExtIEs; -struct E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresentExtIEs; -struct E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresentExtIEs; -struct E_RABs_AdmittedToBeModified_SgNBModConf_ItemExtIEs; -struct E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresentExtIEs; -struct E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresentExtIEs; -struct E_RABs_ToBeReleased_SgNBRelReq_ItemExtIEs; -struct E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresentExtIEs; -struct E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresentExtIEs; -struct E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemExtIEs; -struct E_RABs_ToBeReleased_SgNBRelReqd_ItemExtIEs; -struct E_RABs_ToBeReleased_SgNBRelConf_ItemExtIEs; -struct E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresentExtIEs; -struct E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresentExtIEs; -struct E_RABs_SubjectToSgNBCounterCheck_ItemExtIEs; -struct E_RABs_ToBeReleased_SgNBChaConf_ItemExtIEs; -struct E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresentExtIEs; -struct E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresentExtIEs; -struct ServedEUTRAcellsENDCX2Management_ExtIEs; -struct En_gNBServedCells_ExtIEs; -struct ServedNRCell_Information_ExtIEs; -struct FDD_InfoServedNRCell_Information_ExtIEs; -struct FDD_InfoNeighbourServedNRCell_Information_ExtIEs; -struct TDD_InfoServedNRCell_Information_ExtIEs; -struct TDD_InfoNeighbourServedNRCell_Information_ExtIEs; -struct NRNeighbour_Information_ExtIEs; -struct Limited_list_ExtIEs; -struct ServedEUTRAcellsToModifyListENDCConfUpd_ExtIEs; -struct ServedNRCellsToModify_Item_ExtIEs; -struct ServedNRCellsToActivate_Item_ExtIEs; -struct ActivatedNRCellList_Item_ExtIEs; -struct E_RABs_DataForwardingAddress_ItemExtIEs; -struct ABSInformationFDD_ExtIEs; -struct ABSInformationTDD_ExtIEs; -struct ABS_Status_ExtIEs; -struct AdditionalSpecialSubframe_Info_ExtIEs; -struct AdditionalSpecialSubframeExtension_Info_ExtIEs; -struct AllocationAndRetentionPriority_ExtIEs; -struct AS_SecurityInformation_ExtIEs; -struct BluetoothMeasurementConfiguration_ExtIEs; -struct CellBasedMDT_ExtIEs; -struct CellBasedQMC_ExtIEs; -struct CellReplacingInfo_ExtIEs; -struct CellType_ExtIEs; -struct CNTypeRestrictionsItem_ExtIEs; -struct CoMPHypothesisSetItem_ExtIEs; -struct CoMPInformation_ExtIEs; -struct CoMPInformationItem_ExtIEs; -struct CoMPInformationStartTime_ExtIEs; -struct CompositeAvailableCapacity_ExtIEs; -struct CompositeAvailableCapacityGroup_ExtIEs; -struct COUNTvalue_ExtIEs; -struct COUNTValueExtended_ExtIEs; -struct COUNTvaluePDCP_SNlength18_ExtIEs; -struct CriticalityDiagnostics_ExtIEs; -struct CriticalityDiagnostics_IE_List_ExtIEs; -struct CSIReportList_ExtIEs; -struct CSIReportPerCSIProcess_ExtIEs; -struct CSIReportPerCSIProcessItem_ExtIEs; -struct DataTrafficResourceIndication_ExtIEs; -struct DeliveryStatus_ExtIEs; -struct DynamicNAICSInformation_ExtIEs; -struct ECGI_ExtIEs; -struct EnhancedRNTP_ExtIEs; -struct EnhancedRNTPStartTime_ExtIEs; -struct EN_DC_ResourceConfigurationExtIEs; -struct ERABActivityNotifyItem_ExtIEs; -struct E_RAB_Level_QoS_Parameters_ExtIEs; -struct E_RAB_Item_ExtIEs; -struct E_RABUsageReport_Item_ExtIEs; -struct ExpectedUEBehaviour_ExtIEs; -struct ExpectedUEActivityBehaviour_ExtIEs; -struct ExtendedULInterferenceOverloadInfo_ExtIEs; -struct FDD_Info_ExtIEs; -struct ForbiddenTAs_Item_ExtIEs; -struct ForbiddenLAs_Item_ExtIEs; -struct FreqBandNrItem_ExtIEs; -struct GBR_QosInformation_ExtIEs; -struct GlobalENB_ID_ExtIEs; -struct GlobalGNB_ID_ExtIEs; -struct GTPtunnelEndpoint_ExtIEs; -struct GU_Group_ID_ExtIEs; -struct GUMMEI_ExtIEs; -struct HandoverRestrictionList_ExtIEs; -struct HWLoadIndicator_ExtIEs; -struct LastVisitedEUTRANCellInformation_ExtIEs; -struct LocationReportingInformation_ExtIEs; -struct M1PeriodicReporting_ExtIEs; -struct M1ThresholdEventA2_ExtIEs; -struct M3Configuration_ExtIEs; -struct M4Configuration_ExtIEs; -struct M5Configuration_ExtIEs; -struct M6Configuration_ExtIEs; -struct M7Configuration_ExtIEs; -struct MDT_Configuration_ExtIEs; -struct MeNBResourceCoordinationInformationExtIEs; -struct MBSFN_Subframe_Info_ExtIEs; -struct BandInfo_ExtIEs; -struct SplitSRB_ExtIEs; -struct UENRMeasurement_ExtIEs; -struct Neighbour_Information_ExtIEs; -struct NRFreqInfo_ExtIEs; -struct NRCGI_ExtIEs; -struct NR_TxBW_ExtIEs; -struct NRUESecurityCapabilities_ExtIEs; -struct PRACH_Configuration_ExtIEs; -struct PLMNAreaBasedQMC_ExtIEs; -struct ProSeAuthorized_ExtIEs; -struct ProtectedEUTRAResourceIndication_ExtIEs; -struct ProtectedFootprintTimePattern_ExtIEs; -struct ProtectedResourceList_Item_ExtIEs; -struct RadioResourceStatus_ExtIEs; -struct RelativeNarrowbandTxPower_ExtIEs; -struct ReservedSubframePattern_ExtIEs; -struct RLC_Status_ExtIEs; -struct RSRPMeasurementResult_ExtIEs; -struct RSRPMRList_ExtIEs; -struct S1TNLLoadIndicator_ExtIEs; -struct SecondaryRATUsageReport_Item_ExtIEs; -struct ServedCell_ExtIEs; -struct ServedCell_Information_ExtIEs; -struct SgNBResourceCoordinationInformationExtIEs; -struct SpecialSubframe_Info_ExtIEs; -struct SubbandCQI_ExtIEs; -struct Subscription_Based_UE_DifferentiationInfo_ExtIEs; -struct ScheduledCommunicationTime_ExtIEs; -struct SubbandCQIItem_ExtIEs; -struct SULInformation_ExtIEs; -struct SupportedSULFreqBandItem_ExtIEs; -struct TABasedMDT_ExtIEs; -struct TAIBasedMDT_ExtIEs; -struct TAI_Item_ExtIEs; -struct TABasedQMC_ExtIEs; -struct TAIBasedQMC_ExtIEs; -struct TDD_Info_ExtIEs; -struct TraceActivation_ExtIEs; -struct Tunnel_Information_ExtIEs; -struct UEAggregate_MaximumBitrate_ExtIEs; -struct UEAppLayerMeasConfig_ExtIEs; -struct UESecurityCapabilities_ExtIEs; -struct UE_Sidelink_Aggregate_MaximumBitRate_ExtIEs; -struct UEsToBeResetList_Item_ExtIEs; -struct ULandDLSharing_ExtIEs; -struct ULConfiguration_ExtIEs; -struct UL_HighInterferenceIndicationInfo_Item_ExtIEs; -struct ULOnlySharing_ExtIEs; -struct UsableABSInformationFDD_ExtIEs; -struct UsableABSInformationTDD_ExtIEs; -struct V2XServicesAuthorized_ExtIEs; -struct WidebandCQI_ExtIEs; -struct WLANMeasurementConfiguration_ExtIEs; - -/* ProtocolExtensionContainer */ -typedef struct ProtocolExtensionContainer_170P0 { - A_SEQUENCE_OF(struct UE_ContextInformation_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P0_t; -typedef struct ProtocolExtensionContainer_170P1 { - A_SEQUENCE_OF(struct E_RABs_ToBeSetup_ItemExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P1_t; -typedef struct ProtocolExtensionContainer_170P2 { - A_SEQUENCE_OF(struct UE_ContextReferenceAtSeNB_ItemExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P2_t; -typedef struct ProtocolExtensionContainer_170P3 { - A_SEQUENCE_OF(struct UE_ContextReferenceAtWT_ItemExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P3_t; -typedef struct ProtocolExtensionContainer_170P4 { - A_SEQUENCE_OF(struct UE_ContextReferenceAtSgNB_ItemExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P4_t; -typedef struct ProtocolExtensionContainer_170P5 { - A_SEQUENCE_OF(struct E_RABs_Admitted_Item_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P5_t; -typedef struct ProtocolExtensionContainer_170P6 { - A_SEQUENCE_OF(struct E_RABs_SubjectToStatusTransfer_ItemExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P6_t; -typedef struct ProtocolExtensionContainer_170P7 { - A_SEQUENCE_OF(struct CellInformation_Item_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P7_t; -typedef struct ProtocolExtensionContainer_170P8 { - A_SEQUENCE_OF(struct ServedCellsToModify_Item_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P8_t; -typedef struct ProtocolExtensionContainer_170P9 { - A_SEQUENCE_OF(struct CellToReport_Item_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P9_t; -typedef struct ProtocolExtensionContainer_170P10 { - A_SEQUENCE_OF(struct MeasurementInitiationResult_Item_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P10_t; -typedef struct ProtocolExtensionContainer_170P11 { - A_SEQUENCE_OF(struct MeasurementFailureCause_Item_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P11_t; -typedef struct ProtocolExtensionContainer_170P12 { - A_SEQUENCE_OF(struct CompleteFailureCauseInformation_Item_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P12_t; -typedef struct ProtocolExtensionContainer_170P13 { - A_SEQUENCE_OF(struct CellMeasurementResult_Item_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P13_t; -typedef struct ProtocolExtensionContainer_170P14 { - A_SEQUENCE_OF(struct ServedCellsToActivate_Item_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P14_t; -typedef struct ProtocolExtensionContainer_170P15 { - A_SEQUENCE_OF(struct ActivatedCellList_Item_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P15_t; -typedef struct ProtocolExtensionContainer_170P16 { - A_SEQUENCE_OF(struct RNL_Header_Item_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P16_t; -typedef struct ProtocolExtensionContainer_170P17 { - A_SEQUENCE_OF(struct E_RABs_ToBeAdded_Item_SCG_BearerExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P17_t; -typedef struct ProtocolExtensionContainer_170P18 { - A_SEQUENCE_OF(struct E_RABs_ToBeAdded_Item_Split_BearerExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P18_t; -typedef struct ProtocolExtensionContainer_170P19 { - A_SEQUENCE_OF(struct E_RABs_Admitted_ToBeAdded_Item_SCG_BearerExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P19_t; -typedef struct ProtocolExtensionContainer_170P20 { - A_SEQUENCE_OF(struct E_RABs_Admitted_ToBeAdded_Item_Split_BearerExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P20_t; -typedef struct ProtocolExtensionContainer_170P21 { - A_SEQUENCE_OF(struct ResponseInformationSeNBReconfComp_SuccessItemExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P21_t; -typedef struct ProtocolExtensionContainer_170P22 { - A_SEQUENCE_OF(struct ResponseInformationSeNBReconfComp_RejectByMeNBItemExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P22_t; -typedef struct ProtocolExtensionContainer_170P23 { - A_SEQUENCE_OF(struct UE_ContextInformationSeNBModReqExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P23_t; -typedef struct ProtocolExtensionContainer_170P24 { - A_SEQUENCE_OF(struct E_RABs_ToBeAdded_ModReqItem_SCG_BearerExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P24_t; -typedef struct ProtocolExtensionContainer_170P25 { - A_SEQUENCE_OF(struct E_RABs_ToBeAdded_ModReqItem_Split_BearerExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P25_t; -typedef struct ProtocolExtensionContainer_170P26 { - A_SEQUENCE_OF(struct E_RABs_ToBeModified_ModReqItem_SCG_BearerExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P26_t; -typedef struct ProtocolExtensionContainer_170P27 { - A_SEQUENCE_OF(struct E_RABs_ToBeModified_ModReqItem_Split_BearerExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P27_t; -typedef struct ProtocolExtensionContainer_170P28 { - A_SEQUENCE_OF(struct E_RABs_ToBeReleased_ModReqItem_SCG_BearerExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P28_t; -typedef struct ProtocolExtensionContainer_170P29 { - A_SEQUENCE_OF(struct E_RABs_ToBeReleased_ModReqItem_Split_BearerExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P29_t; -typedef struct ProtocolExtensionContainer_170P30 { - A_SEQUENCE_OF(struct E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_BearerExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P30_t; -typedef struct ProtocolExtensionContainer_170P31 { - A_SEQUENCE_OF(struct E_RABs_Admitted_ToBeAdded_ModAckItem_Split_BearerExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P31_t; -typedef struct ProtocolExtensionContainer_170P32 { - A_SEQUENCE_OF(struct E_RABs_Admitted_ToBeModified_ModAckItem_SCG_BearerExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P32_t; -typedef struct ProtocolExtensionContainer_170P33 { - A_SEQUENCE_OF(struct E_RABs_Admitted_ToBeModified_ModAckItem_Split_BearerExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P33_t; -typedef struct ProtocolExtensionContainer_170P34 { - A_SEQUENCE_OF(struct E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_BearerExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P34_t; -typedef struct ProtocolExtensionContainer_170P35 { - A_SEQUENCE_OF(struct E_RABs_Admitted_ToBeReleased_ModAckItem_Split_BearerExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P35_t; -typedef struct ProtocolExtensionContainer_170P36 { - A_SEQUENCE_OF(struct E_RABs_ToBeReleased_ModReqdItemExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P36_t; -typedef struct ProtocolExtensionContainer_170P37 { - A_SEQUENCE_OF(struct E_RABs_ToBeReleased_RelReqItem_SCG_BearerExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P37_t; -typedef struct ProtocolExtensionContainer_170P38 { - A_SEQUENCE_OF(struct E_RABs_ToBeReleased_RelReqItem_Split_BearerExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P38_t; -typedef struct ProtocolExtensionContainer_170P39 { - A_SEQUENCE_OF(struct E_RABs_ToBeReleased_RelConfItem_SCG_BearerExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P39_t; -typedef struct ProtocolExtensionContainer_170P40 { - A_SEQUENCE_OF(struct E_RABs_ToBeReleased_RelConfItem_Split_BearerExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P40_t; -typedef struct ProtocolExtensionContainer_170P41 { - A_SEQUENCE_OF(struct E_RABs_SubjectToCounterCheckItemExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P41_t; -typedef struct ProtocolExtensionContainer_170P42 { - A_SEQUENCE_OF(struct UE_ContextInformationRetrieve_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P42_t; -typedef struct ProtocolExtensionContainer_170P43 { - A_SEQUENCE_OF(struct E_RABs_ToBeSetupRetrieve_ItemExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P43_t; -typedef struct ProtocolExtensionContainer_170P44 { - A_SEQUENCE_OF(struct E_RABs_ToBeAdded_SgNBAddReq_ItemExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P44_t; -typedef struct ProtocolExtensionContainer_170P45 { - A_SEQUENCE_OF(struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresentExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P45_t; -typedef struct ProtocolExtensionContainer_170P46 { - A_SEQUENCE_OF(struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresentExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P46_t; -typedef struct ProtocolExtensionContainer_170P47 { - A_SEQUENCE_OF(struct E_RABs_ToBeAdded_SgNBAddReqAck_ItemExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P47_t; -typedef struct ProtocolExtensionContainer_170P48 { - A_SEQUENCE_OF(struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresentExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P48_t; -typedef struct ProtocolExtensionContainer_170P49 { - A_SEQUENCE_OF(struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresentExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P49_t; -typedef struct ProtocolExtensionContainer_170P50 { - A_SEQUENCE_OF(struct ResponseInformationSgNBReconfComp_SuccessItemExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P50_t; -typedef struct ProtocolExtensionContainer_170P51 { - A_SEQUENCE_OF(struct ResponseInformationSgNBReconfComp_RejectByMeNBItemExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P51_t; -typedef struct ProtocolExtensionContainer_170P52 { - A_SEQUENCE_OF(struct UE_ContextInformationSgNBModReqExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P52_t; -typedef struct ProtocolExtensionContainer_170P53 { - A_SEQUENCE_OF(struct E_RABs_ToBeAdded_SgNBModReq_ItemExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P53_t; -typedef struct ProtocolExtensionContainer_170P54 { - A_SEQUENCE_OF(struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresentExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P54_t; -typedef struct ProtocolExtensionContainer_170P55 { - A_SEQUENCE_OF(struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P55_t; -typedef struct ProtocolExtensionContainer_170P56 { - A_SEQUENCE_OF(struct E_RABs_ToBeModified_SgNBModReq_ItemExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P56_t; -typedef struct ProtocolExtensionContainer_170P57 { - A_SEQUENCE_OF(struct E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresentExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P57_t; -typedef struct ProtocolExtensionContainer_170P58 { - A_SEQUENCE_OF(struct E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P58_t; -typedef struct ProtocolExtensionContainer_170P59 { - A_SEQUENCE_OF(struct E_RABs_ToBeReleased_SgNBModReq_ItemExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P59_t; -typedef struct ProtocolExtensionContainer_170P60 { - A_SEQUENCE_OF(struct E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresentExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P60_t; -typedef struct ProtocolExtensionContainer_170P61 { - A_SEQUENCE_OF(struct E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P61_t; -typedef struct ProtocolExtensionContainer_170P62 { - A_SEQUENCE_OF(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P62_t; -typedef struct ProtocolExtensionContainer_170P63 { - A_SEQUENCE_OF(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresentExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P63_t; -typedef struct ProtocolExtensionContainer_170P64 { - A_SEQUENCE_OF(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P64_t; -typedef struct ProtocolExtensionContainer_170P65 { - A_SEQUENCE_OF(struct E_RABs_ToBeAdded_SgNBModAck_ItemExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P65_t; -typedef struct ProtocolExtensionContainer_170P66 { - A_SEQUENCE_OF(struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresentExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P66_t; -typedef struct ProtocolExtensionContainer_170P67 { - A_SEQUENCE_OF(struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P67_t; -typedef struct ProtocolExtensionContainer_170P68 { - A_SEQUENCE_OF(struct E_RABs_ToBeReleased_SgNBModAck_ItemExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P68_t; -typedef struct ProtocolExtensionContainer_170P69 { - A_SEQUENCE_OF(struct E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresentExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P69_t; -typedef struct ProtocolExtensionContainer_170P70 { - A_SEQUENCE_OF(struct E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P70_t; -typedef struct ProtocolExtensionContainer_170P71 { - A_SEQUENCE_OF(struct E_RABs_ToBeReleased_SgNBModReqd_ItemExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P71_t; -typedef struct ProtocolExtensionContainer_170P72 { - A_SEQUENCE_OF(struct E_RABs_ToBeModified_SgNBModReqd_ItemExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P72_t; -typedef struct ProtocolExtensionContainer_170P73 { - A_SEQUENCE_OF(struct E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresentExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P73_t; -typedef struct ProtocolExtensionContainer_170P74 { - A_SEQUENCE_OF(struct E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresentExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P74_t; -typedef struct ProtocolExtensionContainer_170P75 { - A_SEQUENCE_OF(struct E_RABs_AdmittedToBeModified_SgNBModConf_ItemExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P75_t; -typedef struct ProtocolExtensionContainer_170P76 { - A_SEQUENCE_OF(struct E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresentExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P76_t; -typedef struct ProtocolExtensionContainer_170P77 { - A_SEQUENCE_OF(struct E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresentExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P77_t; -typedef struct ProtocolExtensionContainer_170P78 { - A_SEQUENCE_OF(struct E_RABs_ToBeReleased_SgNBRelReq_ItemExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P78_t; -typedef struct ProtocolExtensionContainer_170P79 { - A_SEQUENCE_OF(struct E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresentExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P79_t; -typedef struct ProtocolExtensionContainer_170P80 { - A_SEQUENCE_OF(struct E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresentExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P80_t; -typedef struct ProtocolExtensionContainer_170P81 { - A_SEQUENCE_OF(struct E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P81_t; -typedef struct ProtocolExtensionContainer_170P82 { - A_SEQUENCE_OF(struct E_RABs_ToBeReleased_SgNBRelReqd_ItemExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P82_t; -typedef struct ProtocolExtensionContainer_170P83 { - A_SEQUENCE_OF(struct E_RABs_ToBeReleased_SgNBRelConf_ItemExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P83_t; -typedef struct ProtocolExtensionContainer_170P84 { - A_SEQUENCE_OF(struct E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresentExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P84_t; -typedef struct ProtocolExtensionContainer_170P85 { - A_SEQUENCE_OF(struct E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresentExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P85_t; -typedef struct ProtocolExtensionContainer_170P86 { - A_SEQUENCE_OF(struct E_RABs_SubjectToSgNBCounterCheck_ItemExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P86_t; -typedef struct ProtocolExtensionContainer_170P87 { - A_SEQUENCE_OF(struct E_RABs_ToBeReleased_SgNBChaConf_ItemExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P87_t; -typedef struct ProtocolExtensionContainer_170P88 { - A_SEQUENCE_OF(struct E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresentExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P88_t; -typedef struct ProtocolExtensionContainer_170P89 { - A_SEQUENCE_OF(struct E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresentExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P89_t; -typedef struct ProtocolExtensionContainer_170P90 { - A_SEQUENCE_OF(struct ServedEUTRAcellsENDCX2Management_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P90_t; -typedef struct ProtocolExtensionContainer_170P91 { - A_SEQUENCE_OF(struct En_gNBServedCells_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P91_t; -typedef struct ProtocolExtensionContainer_170P92 { - A_SEQUENCE_OF(struct ServedNRCell_Information_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P92_t; -typedef struct ProtocolExtensionContainer_170P93 { - A_SEQUENCE_OF(struct FDD_InfoServedNRCell_Information_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P93_t; -typedef struct ProtocolExtensionContainer_170P94 { - A_SEQUENCE_OF(struct FDD_InfoNeighbourServedNRCell_Information_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P94_t; -typedef struct ProtocolExtensionContainer_170P95 { - A_SEQUENCE_OF(struct TDD_InfoServedNRCell_Information_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P95_t; -typedef struct ProtocolExtensionContainer_170P96 { - A_SEQUENCE_OF(struct TDD_InfoNeighbourServedNRCell_Information_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P96_t; -typedef struct ProtocolExtensionContainer_170P97 { - A_SEQUENCE_OF(struct NRNeighbour_Information_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P97_t; -typedef struct ProtocolExtensionContainer_170P98 { - A_SEQUENCE_OF(struct Limited_list_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P98_t; -typedef struct ProtocolExtensionContainer_170P99 { - A_SEQUENCE_OF(struct ServedEUTRAcellsToModifyListENDCConfUpd_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P99_t; -typedef struct ProtocolExtensionContainer_170P100 { - A_SEQUENCE_OF(struct ServedNRCellsToModify_Item_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P100_t; -typedef struct ProtocolExtensionContainer_170P101 { - A_SEQUENCE_OF(struct ServedNRCellsToActivate_Item_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P101_t; -typedef struct ProtocolExtensionContainer_170P102 { - A_SEQUENCE_OF(struct ActivatedNRCellList_Item_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P102_t; -typedef struct ProtocolExtensionContainer_170P103 { - A_SEQUENCE_OF(struct E_RABs_DataForwardingAddress_ItemExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P103_t; -typedef struct ProtocolExtensionContainer_170P104 { - A_SEQUENCE_OF(struct ABSInformationFDD_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P104_t; -typedef struct ProtocolExtensionContainer_170P105 { - A_SEQUENCE_OF(struct ABSInformationTDD_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P105_t; -typedef struct ProtocolExtensionContainer_170P106 { - A_SEQUENCE_OF(struct ABS_Status_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P106_t; -typedef struct ProtocolExtensionContainer_170P107 { - A_SEQUENCE_OF(struct AdditionalSpecialSubframe_Info_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P107_t; -typedef struct ProtocolExtensionContainer_170P108 { - A_SEQUENCE_OF(struct AdditionalSpecialSubframeExtension_Info_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P108_t; -typedef struct ProtocolExtensionContainer_170P109 { - A_SEQUENCE_OF(struct AllocationAndRetentionPriority_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P109_t; -typedef struct ProtocolExtensionContainer_170P110 { - A_SEQUENCE_OF(struct AS_SecurityInformation_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P110_t; -typedef struct ProtocolExtensionContainer_170P111 { - A_SEQUENCE_OF(struct BluetoothMeasurementConfiguration_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P111_t; -typedef struct ProtocolExtensionContainer_170P112 { - A_SEQUENCE_OF(struct CellBasedMDT_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P112_t; -typedef struct ProtocolExtensionContainer_170P113 { - A_SEQUENCE_OF(struct CellBasedQMC_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P113_t; -typedef struct ProtocolExtensionContainer_170P114 { - A_SEQUENCE_OF(struct CellReplacingInfo_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P114_t; -typedef struct ProtocolExtensionContainer_170P115 { - A_SEQUENCE_OF(struct CellType_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P115_t; -typedef struct ProtocolExtensionContainer_170P116 { - A_SEQUENCE_OF(struct CNTypeRestrictionsItem_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P116_t; -typedef struct ProtocolExtensionContainer_170P117 { - A_SEQUENCE_OF(struct CoMPHypothesisSetItem_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P117_t; -typedef struct ProtocolExtensionContainer_170P118 { - A_SEQUENCE_OF(struct CoMPInformation_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P118_t; -typedef struct ProtocolExtensionContainer_170P119 { - A_SEQUENCE_OF(struct CoMPInformationItem_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P119_t; -typedef struct ProtocolExtensionContainer_170P120 { - A_SEQUENCE_OF(struct CoMPInformationStartTime_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P120_t; -typedef struct ProtocolExtensionContainer_170P121 { - A_SEQUENCE_OF(struct CompositeAvailableCapacity_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P121_t; -typedef struct ProtocolExtensionContainer_170P122 { - A_SEQUENCE_OF(struct CompositeAvailableCapacityGroup_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P122_t; -typedef struct ProtocolExtensionContainer_170P123 { - A_SEQUENCE_OF(struct COUNTvalue_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P123_t; -typedef struct ProtocolExtensionContainer_170P124 { - A_SEQUENCE_OF(struct COUNTValueExtended_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P124_t; -typedef struct ProtocolExtensionContainer_170P125 { - A_SEQUENCE_OF(struct COUNTvaluePDCP_SNlength18_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P125_t; -typedef struct ProtocolExtensionContainer_170P126 { - A_SEQUENCE_OF(struct CriticalityDiagnostics_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P126_t; -typedef struct ProtocolExtensionContainer_170P127 { - A_SEQUENCE_OF(struct CriticalityDiagnostics_IE_List_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P127_t; -typedef struct ProtocolExtensionContainer_170P128 { - A_SEQUENCE_OF(struct CSIReportList_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P128_t; -typedef struct ProtocolExtensionContainer_170P129 { - A_SEQUENCE_OF(struct CSIReportPerCSIProcess_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P129_t; -typedef struct ProtocolExtensionContainer_170P130 { - A_SEQUENCE_OF(struct CSIReportPerCSIProcessItem_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P130_t; -typedef struct ProtocolExtensionContainer_170P131 { - A_SEQUENCE_OF(struct DataTrafficResourceIndication_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P131_t; -typedef struct ProtocolExtensionContainer_170P132 { - A_SEQUENCE_OF(struct DeliveryStatus_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P132_t; -typedef struct ProtocolExtensionContainer_170P133 { - A_SEQUENCE_OF(struct DynamicNAICSInformation_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P133_t; -typedef struct ProtocolExtensionContainer_170P134 { - A_SEQUENCE_OF(struct ECGI_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P134_t; -typedef struct ProtocolExtensionContainer_170P135 { - A_SEQUENCE_OF(struct EnhancedRNTP_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P135_t; -typedef struct ProtocolExtensionContainer_170P136 { - A_SEQUENCE_OF(struct EnhancedRNTPStartTime_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P136_t; -typedef struct ProtocolExtensionContainer_170P137 { - A_SEQUENCE_OF(struct EN_DC_ResourceConfigurationExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P137_t; -typedef struct ProtocolExtensionContainer_170P138 { - A_SEQUENCE_OF(struct ERABActivityNotifyItem_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P138_t; -typedef struct ProtocolExtensionContainer_170P139 { - A_SEQUENCE_OF(struct E_RAB_Level_QoS_Parameters_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P139_t; -typedef struct ProtocolExtensionContainer_170P140 { - A_SEQUENCE_OF(struct E_RAB_Item_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P140_t; -typedef struct ProtocolExtensionContainer_170P141 { - A_SEQUENCE_OF(struct E_RABUsageReport_Item_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P141_t; -typedef struct ProtocolExtensionContainer_170P142 { - A_SEQUENCE_OF(struct ExpectedUEBehaviour_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P142_t; -typedef struct ProtocolExtensionContainer_170P143 { - A_SEQUENCE_OF(struct ExpectedUEActivityBehaviour_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P143_t; -typedef struct ProtocolExtensionContainer_170P144 { - A_SEQUENCE_OF(struct ExtendedULInterferenceOverloadInfo_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P144_t; -typedef struct ProtocolExtensionContainer_170P145 { - A_SEQUENCE_OF(struct FDD_Info_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P145_t; -typedef struct ProtocolExtensionContainer_170P146 { - A_SEQUENCE_OF(struct ForbiddenTAs_Item_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P146_t; -typedef struct ProtocolExtensionContainer_170P147 { - A_SEQUENCE_OF(struct ForbiddenLAs_Item_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P147_t; -typedef struct ProtocolExtensionContainer_170P148 { - A_SEQUENCE_OF(struct FreqBandNrItem_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P148_t; -typedef struct ProtocolExtensionContainer_170P149 { - A_SEQUENCE_OF(struct GBR_QosInformation_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P149_t; -typedef struct ProtocolExtensionContainer_170P150 { - A_SEQUENCE_OF(struct GlobalENB_ID_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P150_t; -typedef struct ProtocolExtensionContainer_170P151 { - A_SEQUENCE_OF(struct GlobalGNB_ID_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P151_t; -typedef struct ProtocolExtensionContainer_170P152 { - A_SEQUENCE_OF(struct GTPtunnelEndpoint_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P152_t; -typedef struct ProtocolExtensionContainer_170P153 { - A_SEQUENCE_OF(struct GU_Group_ID_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P153_t; -typedef struct ProtocolExtensionContainer_170P154 { - A_SEQUENCE_OF(struct GUMMEI_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P154_t; -typedef struct ProtocolExtensionContainer_170P155 { - A_SEQUENCE_OF(struct HandoverRestrictionList_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P155_t; -typedef struct ProtocolExtensionContainer_170P156 { - A_SEQUENCE_OF(struct HWLoadIndicator_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P156_t; -typedef struct ProtocolExtensionContainer_170P157 { - A_SEQUENCE_OF(struct LastVisitedEUTRANCellInformation_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P157_t; -typedef struct ProtocolExtensionContainer_170P158 { - A_SEQUENCE_OF(struct LocationReportingInformation_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P158_t; -typedef struct ProtocolExtensionContainer_170P159 { - A_SEQUENCE_OF(struct M1PeriodicReporting_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P159_t; -typedef struct ProtocolExtensionContainer_170P160 { - A_SEQUENCE_OF(struct M1ThresholdEventA2_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P160_t; -typedef struct ProtocolExtensionContainer_170P161 { - A_SEQUENCE_OF(struct M3Configuration_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P161_t; -typedef struct ProtocolExtensionContainer_170P162 { - A_SEQUENCE_OF(struct M4Configuration_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P162_t; -typedef struct ProtocolExtensionContainer_170P163 { - A_SEQUENCE_OF(struct M5Configuration_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P163_t; -typedef struct ProtocolExtensionContainer_170P164 { - A_SEQUENCE_OF(struct M6Configuration_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P164_t; -typedef struct ProtocolExtensionContainer_170P165 { - A_SEQUENCE_OF(struct M7Configuration_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P165_t; -typedef struct ProtocolExtensionContainer_170P166 { - A_SEQUENCE_OF(struct MDT_Configuration_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P166_t; -typedef struct ProtocolExtensionContainer_170P167 { - A_SEQUENCE_OF(struct MeNBResourceCoordinationInformationExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P167_t; -typedef struct ProtocolExtensionContainer_170P168 { - A_SEQUENCE_OF(struct MBSFN_Subframe_Info_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P168_t; -typedef struct ProtocolExtensionContainer_170P169 { - A_SEQUENCE_OF(struct BandInfo_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P169_t; -typedef struct ProtocolExtensionContainer_170P170 { - A_SEQUENCE_OF(struct SplitSRB_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P170_t; -typedef struct ProtocolExtensionContainer_170P171 { - A_SEQUENCE_OF(struct UENRMeasurement_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P171_t; -typedef struct ProtocolExtensionContainer_170P172 { - A_SEQUENCE_OF(struct Neighbour_Information_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P172_t; -typedef struct ProtocolExtensionContainer_170P173 { - A_SEQUENCE_OF(struct NRFreqInfo_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P173_t; -typedef struct ProtocolExtensionContainer_170P174 { - A_SEQUENCE_OF(struct NRCGI_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P174_t; -typedef struct ProtocolExtensionContainer_170P175 { - A_SEQUENCE_OF(struct NR_TxBW_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P175_t; -typedef struct ProtocolExtensionContainer_170P176 { - A_SEQUENCE_OF(struct NRUESecurityCapabilities_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P176_t; -typedef struct ProtocolExtensionContainer_170P177 { - A_SEQUENCE_OF(struct PRACH_Configuration_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P177_t; -typedef struct ProtocolExtensionContainer_170P178 { - A_SEQUENCE_OF(struct PLMNAreaBasedQMC_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P178_t; -typedef struct ProtocolExtensionContainer_170P179 { - A_SEQUENCE_OF(struct ProSeAuthorized_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P179_t; -typedef struct ProtocolExtensionContainer_170P180 { - A_SEQUENCE_OF(struct ProtectedEUTRAResourceIndication_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P180_t; -typedef struct ProtocolExtensionContainer_170P181 { - A_SEQUENCE_OF(struct ProtectedFootprintTimePattern_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P181_t; -typedef struct ProtocolExtensionContainer_170P182 { - A_SEQUENCE_OF(struct ProtectedResourceList_Item_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P182_t; -typedef struct ProtocolExtensionContainer_170P183 { - A_SEQUENCE_OF(struct RadioResourceStatus_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P183_t; -typedef struct ProtocolExtensionContainer_170P184 { - A_SEQUENCE_OF(struct RelativeNarrowbandTxPower_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P184_t; -typedef struct ProtocolExtensionContainer_170P185 { - A_SEQUENCE_OF(struct ReservedSubframePattern_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P185_t; -typedef struct ProtocolExtensionContainer_170P186 { - A_SEQUENCE_OF(struct RLC_Status_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P186_t; -typedef struct ProtocolExtensionContainer_170P187 { - A_SEQUENCE_OF(struct RSRPMeasurementResult_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P187_t; -typedef struct ProtocolExtensionContainer_170P188 { - A_SEQUENCE_OF(struct RSRPMRList_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P188_t; -typedef struct ProtocolExtensionContainer_170P189 { - A_SEQUENCE_OF(struct S1TNLLoadIndicator_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P189_t; -typedef struct ProtocolExtensionContainer_170P190 { - A_SEQUENCE_OF(struct SecondaryRATUsageReport_Item_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P190_t; -typedef struct ProtocolExtensionContainer_170P191 { - A_SEQUENCE_OF(struct ServedCell_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P191_t; -typedef struct ProtocolExtensionContainer_170P192 { - A_SEQUENCE_OF(struct ServedCell_Information_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P192_t; -typedef struct ProtocolExtensionContainer_170P193 { - A_SEQUENCE_OF(struct SgNBResourceCoordinationInformationExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P193_t; -typedef struct ProtocolExtensionContainer_170P194 { - A_SEQUENCE_OF(struct SpecialSubframe_Info_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P194_t; -typedef struct ProtocolExtensionContainer_170P195 { - A_SEQUENCE_OF(struct SubbandCQI_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P195_t; -typedef struct ProtocolExtensionContainer_170P196 { - A_SEQUENCE_OF(struct Subscription_Based_UE_DifferentiationInfo_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P196_t; -typedef struct ProtocolExtensionContainer_170P197 { - A_SEQUENCE_OF(struct ScheduledCommunicationTime_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P197_t; -typedef struct ProtocolExtensionContainer_170P198 { - A_SEQUENCE_OF(struct SubbandCQIItem_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P198_t; -typedef struct ProtocolExtensionContainer_170P199 { - A_SEQUENCE_OF(struct SULInformation_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P199_t; -typedef struct ProtocolExtensionContainer_170P200 { - A_SEQUENCE_OF(struct SupportedSULFreqBandItem_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P200_t; -typedef struct ProtocolExtensionContainer_170P201 { - A_SEQUENCE_OF(struct TABasedMDT_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P201_t; -typedef struct ProtocolExtensionContainer_170P202 { - A_SEQUENCE_OF(struct TAIBasedMDT_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P202_t; -typedef struct ProtocolExtensionContainer_170P203 { - A_SEQUENCE_OF(struct TAI_Item_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P203_t; -typedef struct ProtocolExtensionContainer_170P204 { - A_SEQUENCE_OF(struct TABasedQMC_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P204_t; -typedef struct ProtocolExtensionContainer_170P205 { - A_SEQUENCE_OF(struct TAIBasedQMC_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P205_t; -typedef struct ProtocolExtensionContainer_170P206 { - A_SEQUENCE_OF(struct TDD_Info_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P206_t; -typedef struct ProtocolExtensionContainer_170P207 { - A_SEQUENCE_OF(struct TraceActivation_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P207_t; -typedef struct ProtocolExtensionContainer_170P208 { - A_SEQUENCE_OF(struct Tunnel_Information_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P208_t; -typedef struct ProtocolExtensionContainer_170P209 { - A_SEQUENCE_OF(struct UEAggregate_MaximumBitrate_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P209_t; -typedef struct ProtocolExtensionContainer_170P210 { - A_SEQUENCE_OF(struct UEAppLayerMeasConfig_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P210_t; -typedef struct ProtocolExtensionContainer_170P211 { - A_SEQUENCE_OF(struct UESecurityCapabilities_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P211_t; -typedef struct ProtocolExtensionContainer_170P212 { - A_SEQUENCE_OF(struct UE_Sidelink_Aggregate_MaximumBitRate_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P212_t; -typedef struct ProtocolExtensionContainer_170P213 { - A_SEQUENCE_OF(struct UEsToBeResetList_Item_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P213_t; -typedef struct ProtocolExtensionContainer_170P214 { - A_SEQUENCE_OF(struct ULandDLSharing_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P214_t; -typedef struct ProtocolExtensionContainer_170P215 { - A_SEQUENCE_OF(struct ULConfiguration_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P215_t; -typedef struct ProtocolExtensionContainer_170P216 { - A_SEQUENCE_OF(struct UL_HighInterferenceIndicationInfo_Item_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P216_t; -typedef struct ProtocolExtensionContainer_170P217 { - A_SEQUENCE_OF(struct ULOnlySharing_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P217_t; -typedef struct ProtocolExtensionContainer_170P218 { - A_SEQUENCE_OF(struct UsableABSInformationFDD_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P218_t; -typedef struct ProtocolExtensionContainer_170P219 { - A_SEQUENCE_OF(struct UsableABSInformationTDD_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P219_t; -typedef struct ProtocolExtensionContainer_170P220 { - A_SEQUENCE_OF(struct V2XServicesAuthorized_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P220_t; -typedef struct ProtocolExtensionContainer_170P221 { - A_SEQUENCE_OF(struct WidebandCQI_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P221_t; -typedef struct ProtocolExtensionContainer_170P222 { - A_SEQUENCE_OF(struct WLANMeasurementConfiguration_ExtIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolExtensionContainer_170P222_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P0; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P0_specs_1; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P0_1[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P0_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P1; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P1_specs_3; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P1_3[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P1_constr_3; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P2; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P2_specs_5; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P2_5[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P2_constr_5; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P3; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P3_specs_7; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P3_7[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P3_constr_7; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P4; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P4_specs_9; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P4_9[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P4_constr_9; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P5; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P5_specs_11; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P5_11[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P5_constr_11; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P6; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P6_specs_13; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P6_13[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P6_constr_13; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P7; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P7_specs_15; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P7_15[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P7_constr_15; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P8; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P8_specs_17; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P8_17[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P8_constr_17; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P9; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P9_specs_19; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P9_19[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P9_constr_19; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P10; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P10_specs_21; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P10_21[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P10_constr_21; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P11; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P11_specs_23; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P11_23[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P11_constr_23; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P12; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P12_specs_25; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P12_25[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P12_constr_25; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P13; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P13_specs_27; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P13_27[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P13_constr_27; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P14; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P14_specs_29; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P14_29[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P14_constr_29; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P15; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P15_specs_31; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P15_31[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P15_constr_31; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P16; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P16_specs_33; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P16_33[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P16_constr_33; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P17; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P17_specs_35; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P17_35[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P17_constr_35; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P18; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P18_specs_37; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P18_37[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P18_constr_37; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P19; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P19_specs_39; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P19_39[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P19_constr_39; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P20; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P20_specs_41; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P20_41[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P20_constr_41; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P21; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P21_specs_43; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P21_43[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P21_constr_43; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P22; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P22_specs_45; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P22_45[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P22_constr_45; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P23; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P23_specs_47; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P23_47[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P23_constr_47; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P24; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P24_specs_49; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P24_49[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P24_constr_49; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P25; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P25_specs_51; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P25_51[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P25_constr_51; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P26; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P26_specs_53; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P26_53[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P26_constr_53; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P27; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P27_specs_55; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P27_55[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P27_constr_55; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P28; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P28_specs_57; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P28_57[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P28_constr_57; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P29; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P29_specs_59; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P29_59[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P29_constr_59; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P30; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P30_specs_61; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P30_61[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P30_constr_61; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P31; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P31_specs_63; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P31_63[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P31_constr_63; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P32; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P32_specs_65; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P32_65[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P32_constr_65; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P33; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P33_specs_67; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P33_67[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P33_constr_67; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P34; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P34_specs_69; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P34_69[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P34_constr_69; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P35; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P35_specs_71; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P35_71[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P35_constr_71; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P36; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P36_specs_73; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P36_73[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P36_constr_73; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P37; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P37_specs_75; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P37_75[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P37_constr_75; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P38; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P38_specs_77; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P38_77[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P38_constr_77; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P39; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P39_specs_79; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P39_79[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P39_constr_79; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P40; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P40_specs_81; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P40_81[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P40_constr_81; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P41; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P41_specs_83; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P41_83[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P41_constr_83; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P42; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P42_specs_85; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P42_85[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P42_constr_85; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P43; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P43_specs_87; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P43_87[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P43_constr_87; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P44; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P44_specs_89; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P44_89[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P44_constr_89; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P45; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P45_specs_91; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P45_91[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P45_constr_91; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P46; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P46_specs_93; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P46_93[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P46_constr_93; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P47; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P47_specs_95; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P47_95[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P47_constr_95; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P48; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P48_specs_97; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P48_97[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P48_constr_97; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P49; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P49_specs_99; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P49_99[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P49_constr_99; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P50; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P50_specs_101; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P50_101[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P50_constr_101; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P51; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P51_specs_103; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P51_103[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P51_constr_103; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P52; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P52_specs_105; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P52_105[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P52_constr_105; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P53; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P53_specs_107; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P53_107[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P53_constr_107; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P54; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P54_specs_109; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P54_109[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P54_constr_109; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P55; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P55_specs_111; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P55_111[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P55_constr_111; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P56; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P56_specs_113; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P56_113[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P56_constr_113; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P57; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P57_specs_115; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P57_115[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P57_constr_115; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P58; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P58_specs_117; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P58_117[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P58_constr_117; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P59; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P59_specs_119; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P59_119[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P59_constr_119; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P60; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P60_specs_121; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P60_121[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P60_constr_121; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P61; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P61_specs_123; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P61_123[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P61_constr_123; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P62; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P62_specs_125; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P62_125[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P62_constr_125; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P63; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P63_specs_127; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P63_127[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P63_constr_127; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P64; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P64_specs_129; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P64_129[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P64_constr_129; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P65; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P65_specs_131; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P65_131[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P65_constr_131; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P66; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P66_specs_133; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P66_133[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P66_constr_133; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P67; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P67_specs_135; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P67_135[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P67_constr_135; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P68; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P68_specs_137; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P68_137[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P68_constr_137; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P69; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P69_specs_139; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P69_139[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P69_constr_139; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P70; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P70_specs_141; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P70_141[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P70_constr_141; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P71; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P71_specs_143; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P71_143[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P71_constr_143; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P72; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P72_specs_145; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P72_145[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P72_constr_145; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P73; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P73_specs_147; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P73_147[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P73_constr_147; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P74; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P74_specs_149; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P74_149[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P74_constr_149; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P75; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P75_specs_151; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P75_151[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P75_constr_151; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P76; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P76_specs_153; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P76_153[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P76_constr_153; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P77; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P77_specs_155; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P77_155[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P77_constr_155; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P78; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P78_specs_157; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P78_157[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P78_constr_157; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P79; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P79_specs_159; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P79_159[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P79_constr_159; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P80; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P80_specs_161; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P80_161[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P80_constr_161; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P81; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P81_specs_163; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P81_163[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P81_constr_163; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P82; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P82_specs_165; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P82_165[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P82_constr_165; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P83; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P83_specs_167; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P83_167[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P83_constr_167; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P84; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P84_specs_169; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P84_169[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P84_constr_169; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P85; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P85_specs_171; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P85_171[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P85_constr_171; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P86; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P86_specs_173; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P86_173[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P86_constr_173; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P87; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P87_specs_175; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P87_175[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P87_constr_175; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P88; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P88_specs_177; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P88_177[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P88_constr_177; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P89; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P89_specs_179; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P89_179[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P89_constr_179; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P90; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P90_specs_181; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P90_181[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P90_constr_181; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P91; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P91_specs_183; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P91_183[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P91_constr_183; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P92; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P92_specs_185; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P92_185[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P92_constr_185; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P93; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P93_specs_187; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P93_187[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P93_constr_187; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P94; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P94_specs_189; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P94_189[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P94_constr_189; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P95; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P95_specs_191; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P95_191[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P95_constr_191; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P96; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P96_specs_193; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P96_193[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P96_constr_193; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P97; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P97_specs_195; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P97_195[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P97_constr_195; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P98; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P98_specs_197; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P98_197[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P98_constr_197; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P99; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P99_specs_199; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P99_199[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P99_constr_199; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P100; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P100_specs_201; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P100_201[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P100_constr_201; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P101; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P101_specs_203; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P101_203[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P101_constr_203; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P102; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P102_specs_205; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P102_205[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P102_constr_205; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P103; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P103_specs_207; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P103_207[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P103_constr_207; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P104; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P104_specs_209; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P104_209[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P104_constr_209; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P105; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P105_specs_211; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P105_211[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P105_constr_211; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P106; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P106_specs_213; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P106_213[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P106_constr_213; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P107; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P107_specs_215; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P107_215[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P107_constr_215; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P108; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P108_specs_217; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P108_217[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P108_constr_217; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P109; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P109_specs_219; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P109_219[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P109_constr_219; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P110; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P110_specs_221; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P110_221[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P110_constr_221; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P111; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P111_specs_223; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P111_223[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P111_constr_223; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P112; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P112_specs_225; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P112_225[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P112_constr_225; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P113; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P113_specs_227; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P113_227[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P113_constr_227; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P114; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P114_specs_229; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P114_229[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P114_constr_229; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P115; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P115_specs_231; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P115_231[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P115_constr_231; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P116; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P116_specs_233; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P116_233[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P116_constr_233; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P117; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P117_specs_235; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P117_235[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P117_constr_235; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P118; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P118_specs_237; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P118_237[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P118_constr_237; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P119; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P119_specs_239; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P119_239[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P119_constr_239; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P120; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P120_specs_241; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P120_241[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P120_constr_241; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P121; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P121_specs_243; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P121_243[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P121_constr_243; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P122; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P122_specs_245; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P122_245[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P122_constr_245; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P123; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P123_specs_247; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P123_247[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P123_constr_247; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P124; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P124_specs_249; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P124_249[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P124_constr_249; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P125; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P125_specs_251; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P125_251[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P125_constr_251; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P126; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P126_specs_253; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P126_253[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P126_constr_253; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P127; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P127_specs_255; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P127_255[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P127_constr_255; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P128; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P128_specs_257; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P128_257[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P128_constr_257; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P129; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P129_specs_259; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P129_259[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P129_constr_259; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P130; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P130_specs_261; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P130_261[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P130_constr_261; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P131; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P131_specs_263; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P131_263[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P131_constr_263; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P132; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P132_specs_265; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P132_265[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P132_constr_265; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P133; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P133_specs_267; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P133_267[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P133_constr_267; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P134; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P134_specs_269; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P134_269[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P134_constr_269; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P135; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P135_specs_271; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P135_271[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P135_constr_271; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P136; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P136_specs_273; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P136_273[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P136_constr_273; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P137; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P137_specs_275; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P137_275[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P137_constr_275; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P138; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P138_specs_277; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P138_277[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P138_constr_277; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P139; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P139_specs_279; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P139_279[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P139_constr_279; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P140; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P140_specs_281; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P140_281[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P140_constr_281; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P141; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P141_specs_283; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P141_283[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P141_constr_283; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P142; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P142_specs_285; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P142_285[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P142_constr_285; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P143; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P143_specs_287; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P143_287[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P143_constr_287; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P144; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P144_specs_289; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P144_289[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P144_constr_289; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P145; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P145_specs_291; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P145_291[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P145_constr_291; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P146; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P146_specs_293; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P146_293[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P146_constr_293; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P147; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P147_specs_295; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P147_295[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P147_constr_295; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P148; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P148_specs_297; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P148_297[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P148_constr_297; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P149; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P149_specs_299; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P149_299[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P149_constr_299; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P150; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P150_specs_301; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P150_301[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P150_constr_301; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P151; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P151_specs_303; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P151_303[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P151_constr_303; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P152; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P152_specs_305; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P152_305[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P152_constr_305; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P153; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P153_specs_307; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P153_307[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P153_constr_307; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P154; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P154_specs_309; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P154_309[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P154_constr_309; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P155; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P155_specs_311; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P155_311[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P155_constr_311; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P156; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P156_specs_313; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P156_313[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P156_constr_313; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P157; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P157_specs_315; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P157_315[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P157_constr_315; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P158; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P158_specs_317; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P158_317[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P158_constr_317; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P159; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P159_specs_319; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P159_319[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P159_constr_319; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P160; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P160_specs_321; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P160_321[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P160_constr_321; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P161; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P161_specs_323; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P161_323[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P161_constr_323; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P162; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P162_specs_325; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P162_325[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P162_constr_325; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P163; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P163_specs_327; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P163_327[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P163_constr_327; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P164; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P164_specs_329; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P164_329[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P164_constr_329; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P165; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P165_specs_331; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P165_331[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P165_constr_331; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P166; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P166_specs_333; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P166_333[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P166_constr_333; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P167; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P167_specs_335; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P167_335[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P167_constr_335; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P168; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P168_specs_337; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P168_337[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P168_constr_337; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P169; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P169_specs_339; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P169_339[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P169_constr_339; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P170; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P170_specs_341; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P170_341[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P170_constr_341; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P171; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P171_specs_343; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P171_343[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P171_constr_343; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P172; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P172_specs_345; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P172_345[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P172_constr_345; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P173; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P173_specs_347; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P173_347[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P173_constr_347; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P174; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P174_specs_349; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P174_349[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P174_constr_349; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P175; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P175_specs_351; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P175_351[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P175_constr_351; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P176; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P176_specs_353; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P176_353[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P176_constr_353; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P177; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P177_specs_355; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P177_355[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P177_constr_355; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P178; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P178_specs_357; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P178_357[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P178_constr_357; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P179; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P179_specs_359; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P179_359[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P179_constr_359; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P180; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P180_specs_361; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P180_361[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P180_constr_361; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P181; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P181_specs_363; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P181_363[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P181_constr_363; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P182; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P182_specs_365; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P182_365[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P182_constr_365; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P183; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P183_specs_367; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P183_367[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P183_constr_367; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P184; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P184_specs_369; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P184_369[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P184_constr_369; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P185; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P185_specs_371; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P185_371[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P185_constr_371; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P186; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P186_specs_373; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P186_373[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P186_constr_373; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P187; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P187_specs_375; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P187_375[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P187_constr_375; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P188; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P188_specs_377; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P188_377[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P188_constr_377; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P189; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P189_specs_379; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P189_379[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P189_constr_379; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P190; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P190_specs_381; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P190_381[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P190_constr_381; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P191; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P191_specs_383; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P191_383[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P191_constr_383; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P192; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P192_specs_385; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P192_385[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P192_constr_385; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P193; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P193_specs_387; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P193_387[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P193_constr_387; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P194; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P194_specs_389; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P194_389[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P194_constr_389; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P195; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P195_specs_391; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P195_391[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P195_constr_391; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P196; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P196_specs_393; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P196_393[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P196_constr_393; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P197; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P197_specs_395; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P197_395[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P197_constr_395; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P198; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P198_specs_397; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P198_397[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P198_constr_397; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P199; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P199_specs_399; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P199_399[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P199_constr_399; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P200; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P200_specs_401; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P200_401[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P200_constr_401; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P201; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P201_specs_403; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P201_403[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P201_constr_403; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P202; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P202_specs_405; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P202_405[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P202_constr_405; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P203; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P203_specs_407; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P203_407[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P203_constr_407; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P204; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P204_specs_409; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P204_409[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P204_constr_409; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P205; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P205_specs_411; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P205_411[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P205_constr_411; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P206; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P206_specs_413; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P206_413[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P206_constr_413; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P207; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P207_specs_415; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P207_415[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P207_constr_415; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P208; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P208_specs_417; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P208_417[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P208_constr_417; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P209; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P209_specs_419; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P209_419[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P209_constr_419; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P210; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P210_specs_421; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P210_421[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P210_constr_421; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P211; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P211_specs_423; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P211_423[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P211_constr_423; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P212; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P212_specs_425; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P212_425[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P212_constr_425; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P213; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P213_specs_427; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P213_427[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P213_constr_427; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P214; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P214_specs_429; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P214_429[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P214_constr_429; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P215; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P215_specs_431; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P215_431[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P215_constr_431; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P216; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P216_specs_433; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P216_433[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P216_constr_433; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P217; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P217_specs_435; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P217_435[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P217_constr_435; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P218; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P218_specs_437; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P218_437[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P218_constr_437; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P219; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P219_specs_439; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P219_439[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P219_constr_439; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P220; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P220_specs_441; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P220_441[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P220_constr_441; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P221; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P221_specs_443; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P221_443[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P221_constr_443; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_170P222; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_170P222_specs_445; -extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_170P222_445[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_170P222_constr_445; - -#ifdef __cplusplus -} -#endif - -#endif /* _ProtocolExtensionContainer_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/ProtocolExtensionField.c b/e2sim/previous/ASN1c/ProtocolExtensionField.c deleted file mode 100644 index 1646b37..0000000 --- a/e2sim/previous/ASN1c/ProtocolExtensionField.c +++ /dev/null @@ -1,40927 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-Containers" - * found in "../../asnFiles/X2AP-Containers.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "ProtocolExtensionField.h" - -static const long asn_VAL_1_id_ManagementBasedMDTallowed = 74; -static const long asn_VAL_1_ignore = 1; -static const long asn_VAL_1_optional = 0; -static const long asn_VAL_2_id_ManagementBasedMDTPLMNList = 89; -static const long asn_VAL_2_ignore = 1; -static const long asn_VAL_2_optional = 0; -static const long asn_VAL_3_id_UESidelinkAggregateMaximumBitRate = 184; -static const long asn_VAL_3_ignore = 1; -static const long asn_VAL_3_optional = 0; -static const asn_ioc_cell_t asn_IOS_UE_ContextInformation_ExtIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_1_id_ManagementBasedMDTallowed }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_1_ignore }, - { "&Extension", aioc__type, &asn_DEF_ManagementBasedMDTallowed }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_1_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_2_id_ManagementBasedMDTPLMNList }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_2_ignore }, - { "&Extension", aioc__type, &asn_DEF_MDTPLMNList }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_2_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_3_id_UESidelinkAggregateMaximumBitRate }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_3_ignore }, - { "&Extension", aioc__type, &asn_DEF_UESidelinkAggregateMaximumBitRate }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_3_optional } -}; -static const asn_ioc_set_t asn_IOS_UE_ContextInformation_ExtIEs_1[] = { - { 3, 4, asn_IOS_UE_ContextInformation_ExtIEs_1_rows } -}; -static const long asn_VAL_4_id_BearerType = 171; -static const long asn_VAL_4_reject = 0; -static const long asn_VAL_4_optional = 0; -static const asn_ioc_cell_t asn_IOS_E_RABs_ToBeSetup_ItemExtIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_4_id_BearerType }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_4_reject }, - { "&Extension", aioc__type, &asn_DEF_BearerType }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_4_optional } -}; -static const asn_ioc_set_t asn_IOS_E_RABs_ToBeSetup_ItemExtIEs_1[] = { - { 1, 4, asn_IOS_E_RABs_ToBeSetup_ItemExtIEs_1_rows } -}; -static const long asn_VAL_5_id_ReceiveStatusOfULPDCPSDUsExtended = 91; -static const long asn_VAL_5_ignore = 1; -static const long asn_VAL_5_optional = 0; -static const long asn_VAL_6_id_ULCOUNTValueExtended = 92; -static const long asn_VAL_6_ignore = 1; -static const long asn_VAL_6_optional = 0; -static const long asn_VAL_7_id_DLCOUNTValueExtended = 93; -static const long asn_VAL_7_ignore = 1; -static const long asn_VAL_7_optional = 0; -static const long asn_VAL_8_id_ReceiveStatusOfULPDCPSDUsPDCP_SNlength18 = 150; -static const long asn_VAL_8_ignore = 1; -static const long asn_VAL_8_optional = 0; -static const long asn_VAL_9_id_ULCOUNTValuePDCP_SNlength18 = 151; -static const long asn_VAL_9_ignore = 1; -static const long asn_VAL_9_optional = 0; -static const long asn_VAL_10_id_DLCOUNTValuePDCP_SNlength18 = 152; -static const long asn_VAL_10_ignore = 1; -static const long asn_VAL_10_optional = 0; -static const asn_ioc_cell_t asn_IOS_E_RABs_SubjectToStatusTransfer_ItemExtIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_5_id_ReceiveStatusOfULPDCPSDUsExtended }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_5_ignore }, - { "&Extension", aioc__type, &asn_DEF_ReceiveStatusOfULPDCPSDUsExtended }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_5_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_6_id_ULCOUNTValueExtended }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_6_ignore }, - { "&Extension", aioc__type, &asn_DEF_COUNTValueExtended }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_6_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_7_id_DLCOUNTValueExtended }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_7_ignore }, - { "&Extension", aioc__type, &asn_DEF_COUNTValueExtended }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_7_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_8_id_ReceiveStatusOfULPDCPSDUsPDCP_SNlength18 }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_8_ignore }, - { "&Extension", aioc__type, &asn_DEF_ReceiveStatusOfULPDCPSDUsPDCP_SNlength18 }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_8_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_9_id_ULCOUNTValuePDCP_SNlength18 }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_9_ignore }, - { "&Extension", aioc__type, &asn_DEF_COUNTvaluePDCP_SNlength18 }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_9_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_10_id_DLCOUNTValuePDCP_SNlength18 }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_10_ignore }, - { "&Extension", aioc__type, &asn_DEF_COUNTvaluePDCP_SNlength18 }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_10_optional } -}; -static const asn_ioc_set_t asn_IOS_E_RABs_SubjectToStatusTransfer_ItemExtIEs_1[] = { - { 6, 4, asn_IOS_E_RABs_SubjectToStatusTransfer_ItemExtIEs_1_rows } -}; -static const long asn_VAL_11_id_ABSInformation = 61; -static const long asn_VAL_11_ignore = 1; -static const long asn_VAL_11_optional = 0; -static const long asn_VAL_12_id_InvokeIndication = 62; -static const long asn_VAL_12_ignore = 1; -static const long asn_VAL_12_optional = 0; -static const long asn_VAL_13_id_IntendedULDLConfiguration = 99; -static const long asn_VAL_13_ignore = 1; -static const long asn_VAL_13_optional = 0; -static const long asn_VAL_14_id_ExtendedULInterferenceOverloadInfo = 100; -static const long asn_VAL_14_ignore = 1; -static const long asn_VAL_14_optional = 0; -static const long asn_VAL_15_id_CoMPInformation = 108; -static const long asn_VAL_15_ignore = 1; -static const long asn_VAL_15_optional = 0; -static const long asn_VAL_16_id_DynamicDLTransmissionInformation = 106; -static const long asn_VAL_16_ignore = 1; -static const long asn_VAL_16_optional = 0; -static const asn_ioc_cell_t asn_IOS_CellInformation_Item_ExtIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_11_id_ABSInformation }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_11_ignore }, - { "&Extension", aioc__type, &asn_DEF_ABSInformation }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_11_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_12_id_InvokeIndication }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_12_ignore }, - { "&Extension", aioc__type, &asn_DEF_InvokeIndication }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_12_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_13_id_IntendedULDLConfiguration }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_13_ignore }, - { "&Extension", aioc__type, &asn_DEF_SubframeAssignment }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_13_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_14_id_ExtendedULInterferenceOverloadInfo }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_14_ignore }, - { "&Extension", aioc__type, &asn_DEF_ExtendedULInterferenceOverloadInfo }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_14_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_15_id_CoMPInformation }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_15_ignore }, - { "&Extension", aioc__type, &asn_DEF_CoMPInformation }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_15_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_16_id_DynamicDLTransmissionInformation }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_16_ignore }, - { "&Extension", aioc__type, &asn_DEF_DynamicDLTransmissionInformation }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_16_optional } -}; -static const asn_ioc_set_t asn_IOS_CellInformation_Item_ExtIEs_1[] = { - { 6, 4, asn_IOS_CellInformation_Item_ExtIEs_1_rows } -}; -static const long asn_VAL_17_id_DeactivationIndication = 59; -static const long asn_VAL_17_ignore = 1; -static const long asn_VAL_17_optional = 0; -static const asn_ioc_cell_t asn_IOS_ServedCellsToModify_Item_ExtIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_17_id_DeactivationIndication }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_17_ignore }, - { "&Extension", aioc__type, &asn_DEF_DeactivationIndication }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_17_optional } -}; -static const asn_ioc_set_t asn_IOS_ServedCellsToModify_Item_ExtIEs_1[] = { - { 1, 4, asn_IOS_ServedCellsToModify_Item_ExtIEs_1_rows } -}; -static const long asn_VAL_18_id_CompositeAvailableCapacityGroup = 42; -static const long asn_VAL_18_ignore = 1; -static const long asn_VAL_18_optional = 0; -static const long asn_VAL_19_id_ABS_Status = 63; -static const long asn_VAL_19_ignore = 1; -static const long asn_VAL_19_optional = 0; -static const long asn_VAL_20_id_RSRPMRList = 110; -static const long asn_VAL_20_ignore = 1; -static const long asn_VAL_20_optional = 0; -static const long asn_VAL_21_id_CSIReportList = 146; -static const long asn_VAL_21_ignore = 1; -static const long asn_VAL_21_optional = 0; -static const long asn_VAL_22_id_CellReportingIndicator = 170; -static const long asn_VAL_22_ignore = 1; -static const long asn_VAL_22_optional = 0; -static const asn_ioc_cell_t asn_IOS_CellMeasurementResult_Item_ExtIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_18_id_CompositeAvailableCapacityGroup }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_18_ignore }, - { "&Extension", aioc__type, &asn_DEF_CompositeAvailableCapacityGroup }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_18_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_19_id_ABS_Status }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_19_ignore }, - { "&Extension", aioc__type, &asn_DEF_ABS_Status }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_19_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_20_id_RSRPMRList }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_20_ignore }, - { "&Extension", aioc__type, &asn_DEF_RSRPMRList }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_20_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_21_id_CSIReportList }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_21_ignore }, - { "&Extension", aioc__type, &asn_DEF_CSIReportList }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_21_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_22_id_CellReportingIndicator }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_22_ignore }, - { "&Extension", aioc__type, &asn_DEF_CellReportingIndicator }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_22_optional } -}; -static const asn_ioc_set_t asn_IOS_CellMeasurementResult_Item_ExtIEs_1[] = { - { 5, 4, asn_IOS_CellMeasurementResult_Item_ExtIEs_1_rows } -}; -static const long asn_VAL_23_id_Correlation_ID = 166; -static const long asn_VAL_23_ignore = 1; -static const long asn_VAL_23_optional = 0; -static const long asn_VAL_24_id_SIPTO_Correlation_ID = 167; -static const long asn_VAL_24_ignore = 1; -static const long asn_VAL_24_optional = 0; -static const asn_ioc_cell_t asn_IOS_E_RABs_ToBeAdded_Item_SCG_BearerExtIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_23_id_Correlation_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_23_ignore }, - { "&Extension", aioc__type, &asn_DEF_Correlation_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_23_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_24_id_SIPTO_Correlation_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_24_ignore }, - { "&Extension", aioc__type, &asn_DEF_Correlation_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_24_optional } -}; -static const asn_ioc_set_t asn_IOS_E_RABs_ToBeAdded_Item_SCG_BearerExtIEs_1[] = { - { 2, 4, asn_IOS_E_RABs_ToBeAdded_Item_SCG_BearerExtIEs_1_rows } -}; -static const long asn_VAL_25_id_Correlation_ID = 166; -static const long asn_VAL_25_ignore = 1; -static const long asn_VAL_25_optional = 0; -static const long asn_VAL_26_id_SIPTO_Correlation_ID = 167; -static const long asn_VAL_26_ignore = 1; -static const long asn_VAL_26_optional = 0; -static const asn_ioc_cell_t asn_IOS_E_RABs_ToBeAdded_ModReqItem_SCG_BearerExtIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_25_id_Correlation_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_25_ignore }, - { "&Extension", aioc__type, &asn_DEF_Correlation_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_25_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_26_id_SIPTO_Correlation_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_26_ignore }, - { "&Extension", aioc__type, &asn_DEF_Correlation_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_26_optional } -}; -static const asn_ioc_set_t asn_IOS_E_RABs_ToBeAdded_ModReqItem_SCG_BearerExtIEs_1[] = { - { 2, 4, asn_IOS_E_RABs_ToBeAdded_ModReqItem_SCG_BearerExtIEs_1_rows } -}; -static const long asn_VAL_27_id_UESidelinkAggregateMaximumBitRate = 184; -static const long asn_VAL_27_ignore = 1; -static const long asn_VAL_27_optional = 0; -static const asn_ioc_cell_t asn_IOS_UE_ContextInformationRetrieve_ExtIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_27_id_UESidelinkAggregateMaximumBitRate }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_27_ignore }, - { "&Extension", aioc__type, &asn_DEF_UESidelinkAggregateMaximumBitRate }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_27_optional } -}; -static const asn_ioc_set_t asn_IOS_UE_ContextInformationRetrieve_ExtIEs_1[] = { - { 1, 4, asn_IOS_UE_ContextInformationRetrieve_ExtIEs_1_rows } -}; -static const long asn_VAL_28_id_uL_GTPtunnelEndpoint = 185; -static const long asn_VAL_28_reject = 0; -static const long asn_VAL_28_mandatory = 2; -static const long asn_VAL_29_id_dL_Forwarding = 306; -static const long asn_VAL_29_ignore = 1; -static const long asn_VAL_29_optional = 0; -static const asn_ioc_cell_t asn_IOS_E_RABs_ToBeSetupRetrieve_ItemExtIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_28_id_uL_GTPtunnelEndpoint }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_28_reject }, - { "&Extension", aioc__type, &asn_DEF_GTPtunnelEndpoint }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_28_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_29_id_dL_Forwarding }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_29_ignore }, - { "&Extension", aioc__type, &asn_DEF_DL_Forwarding }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_29_optional } -}; -static const asn_ioc_set_t asn_IOS_E_RABs_ToBeSetupRetrieve_ItemExtIEs_1[] = { - { 2, 4, asn_IOS_E_RABs_ToBeSetupRetrieve_ItemExtIEs_1_rows } -}; -static const long asn_VAL_30_id_RLCMode_transferred = 317; -static const long asn_VAL_30_ignore = 1; -static const long asn_VAL_30_optional = 0; -static const asn_ioc_cell_t asn_IOS_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresentExtIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_30_id_RLCMode_transferred }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_30_ignore }, - { "&Extension", aioc__type, &asn_DEF_RLCMode }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_30_optional } -}; -static const asn_ioc_set_t asn_IOS_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresentExtIEs_1[] = { - { 1, 4, asn_IOS_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresentExtIEs_1_rows } -}; -static const long asn_VAL_31_id_uLpDCPSnLength = 302; -static const long asn_VAL_31_ignore = 1; -static const long asn_VAL_31_optional = 0; -static const long asn_VAL_32_id_dLPDCPSnLength = 311; -static const long asn_VAL_32_ignore = 1; -static const long asn_VAL_32_optional = 0; -static const long asn_VAL_33_id_duplicationActivation = 315; -static const long asn_VAL_33_ignore = 1; -static const long asn_VAL_33_optional = 0; -static const asn_ioc_cell_t asn_IOS_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresentExtIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_31_id_uLpDCPSnLength }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_31_ignore }, - { "&Extension", aioc__type, &asn_DEF_PDCPSnLength }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_31_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_32_id_dLPDCPSnLength }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_32_ignore }, - { "&Extension", aioc__type, &asn_DEF_PDCPSnLength }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_32_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_33_id_duplicationActivation }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_33_ignore }, - { "&Extension", aioc__type, &asn_DEF_DuplicationActivation }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_33_optional } -}; -static const asn_ioc_set_t asn_IOS_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresentExtIEs_1[] = { - { 3, 4, asn_IOS_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresentExtIEs_1_rows } -}; -static const long asn_VAL_34_id_uLpDCPSnLength = 302; -static const long asn_VAL_34_ignore = 1; -static const long asn_VAL_34_optional = 0; -static const long asn_VAL_35_id_dLPDCPSnLength = 311; -static const long asn_VAL_35_ignore = 1; -static const long asn_VAL_35_optional = 0; -static const asn_ioc_cell_t asn_IOS_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresentExtIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_34_id_uLpDCPSnLength }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_34_ignore }, - { "&Extension", aioc__type, &asn_DEF_PDCPSnLength }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_34_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_35_id_dLPDCPSnLength }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_35_ignore }, - { "&Extension", aioc__type, &asn_DEF_PDCPSnLength }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_35_optional } -}; -static const asn_ioc_set_t asn_IOS_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresentExtIEs_1[] = { - { 2, 4, asn_IOS_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresentExtIEs_1_rows } -}; -static const long asn_VAL_36_id_lCID = 314; -static const long asn_VAL_36_ignore = 1; -static const long asn_VAL_36_optional = 0; -static const asn_ioc_cell_t asn_IOS_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresentExtIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_36_id_lCID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_36_ignore }, - { "&Extension", aioc__type, &asn_DEF_LCID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_36_optional } -}; -static const asn_ioc_set_t asn_IOS_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresentExtIEs_1[] = { - { 1, 4, asn_IOS_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresentExtIEs_1_rows } -}; -static const long asn_VAL_37_id_SubscriberProfileIDforRFP = 275; -static const long asn_VAL_37_ignore = 1; -static const long asn_VAL_37_optional = 0; -static const asn_ioc_cell_t asn_IOS_UE_ContextInformationSgNBModReqExtIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_37_id_SubscriberProfileIDforRFP }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_37_ignore }, - { "&Extension", aioc__type, &asn_DEF_SubscriberProfileIDforRFP }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_37_optional } -}; -static const asn_ioc_set_t asn_IOS_UE_ContextInformationSgNBModReqExtIEs_1[] = { - { 1, 4, asn_IOS_UE_ContextInformationSgNBModReqExtIEs_1_rows } -}; -static const long asn_VAL_38_id_RLCMode_transferred = 317; -static const long asn_VAL_38_ignore = 1; -static const long asn_VAL_38_optional = 0; -static const asn_ioc_cell_t asn_IOS_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresentExtIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_38_id_RLCMode_transferred }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_38_ignore }, - { "&Extension", aioc__type, &asn_DEF_RLCMode }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_38_optional } -}; -static const asn_ioc_set_t asn_IOS_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresentExtIEs_1[] = { - { 1, 4, asn_IOS_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresentExtIEs_1_rows } -}; -static const long asn_VAL_39_id_uLpDCPSnLength = 302; -static const long asn_VAL_39_ignore = 1; -static const long asn_VAL_39_optional = 0; -static const long asn_VAL_40_id_dLPDCPSnLength = 311; -static const long asn_VAL_40_ignore = 1; -static const long asn_VAL_40_optional = 0; -static const long asn_VAL_41_id_duplicationActivation = 315; -static const long asn_VAL_41_ignore = 1; -static const long asn_VAL_41_optional = 0; -static const asn_ioc_cell_t asn_IOS_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_39_id_uLpDCPSnLength }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_39_ignore }, - { "&Extension", aioc__type, &asn_DEF_PDCPSnLength }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_39_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_40_id_dLPDCPSnLength }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_40_ignore }, - { "&Extension", aioc__type, &asn_DEF_PDCPSnLength }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_40_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_41_id_duplicationActivation }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_41_ignore }, - { "&Extension", aioc__type, &asn_DEF_DuplicationActivation }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_41_optional } -}; -static const asn_ioc_set_t asn_IOS_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_1[] = { - { 3, 4, asn_IOS_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_1_rows } -}; -static const long asn_VAL_42_id_RLC_Status = 300; -static const long asn_VAL_42_ignore = 1; -static const long asn_VAL_42_optional = 0; -static const asn_ioc_cell_t asn_IOS_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresentExtIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_42_id_RLC_Status }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_42_ignore }, - { "&Extension", aioc__type, &asn_DEF_RLC_Status }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_42_optional } -}; -static const asn_ioc_set_t asn_IOS_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresentExtIEs_1[] = { - { 1, 4, asn_IOS_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresentExtIEs_1_rows } -}; -static const long asn_VAL_43_id_uLpDCPSnLength = 302; -static const long asn_VAL_43_ignore = 1; -static const long asn_VAL_43_optional = 0; -static const long asn_VAL_44_id_dLPDCPSnLength = 311; -static const long asn_VAL_44_ignore = 1; -static const long asn_VAL_44_optional = 0; -static const long asn_VAL_45_id_secondarymeNBULGTPTEIDatPDCP = 313; -static const long asn_VAL_45_ignore = 1; -static const long asn_VAL_45_optional = 0; -static const asn_ioc_cell_t asn_IOS_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_43_id_uLpDCPSnLength }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_43_ignore }, - { "&Extension", aioc__type, &asn_DEF_PDCPSnLength }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_43_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_44_id_dLPDCPSnLength }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_44_ignore }, - { "&Extension", aioc__type, &asn_DEF_PDCPSnLength }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_44_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_45_id_secondarymeNBULGTPTEIDatPDCP }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_45_ignore }, - { "&Extension", aioc__type, &asn_DEF_GTPtunnelEndpoint }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_45_optional } -}; -static const asn_ioc_set_t asn_IOS_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_1[] = { - { 3, 4, asn_IOS_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_1_rows } -}; -static const long asn_VAL_46_id_uLpDCPSnLength = 302; -static const long asn_VAL_46_ignore = 1; -static const long asn_VAL_46_optional = 0; -static const long asn_VAL_47_id_dLPDCPSnLength = 311; -static const long asn_VAL_47_ignore = 1; -static const long asn_VAL_47_optional = 0; -static const asn_ioc_cell_t asn_IOS_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresentExtIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_46_id_uLpDCPSnLength }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_46_ignore }, - { "&Extension", aioc__type, &asn_DEF_PDCPSnLength }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_46_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_47_id_dLPDCPSnLength }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_47_ignore }, - { "&Extension", aioc__type, &asn_DEF_PDCPSnLength }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_47_optional } -}; -static const asn_ioc_set_t asn_IOS_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresentExtIEs_1[] = { - { 2, 4, asn_IOS_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresentExtIEs_1_rows } -}; -static const long asn_VAL_48_id_lCID = 314; -static const long asn_VAL_48_ignore = 1; -static const long asn_VAL_48_optional = 0; -static const asn_ioc_cell_t asn_IOS_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_48_id_lCID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_48_ignore }, - { "&Extension", aioc__type, &asn_DEF_LCID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_48_optional } -}; -static const asn_ioc_set_t asn_IOS_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_1[] = { - { 1, 4, asn_IOS_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_1_rows } -}; -static const long asn_VAL_49_id_uLpDCPSnLength = 302; -static const long asn_VAL_49_ignore = 1; -static const long asn_VAL_49_optional = 0; -static const long asn_VAL_50_id_dLPDCPSnLength = 311; -static const long asn_VAL_50_ignore = 1; -static const long asn_VAL_50_optional = 0; -static const asn_ioc_cell_t asn_IOS_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresentExtIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_49_id_uLpDCPSnLength }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_49_ignore }, - { "&Extension", aioc__type, &asn_DEF_PDCPSnLength }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_49_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_50_id_dLPDCPSnLength }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_50_ignore }, - { "&Extension", aioc__type, &asn_DEF_PDCPSnLength }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_50_optional } -}; -static const asn_ioc_set_t asn_IOS_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresentExtIEs_1[] = { - { 2, 4, asn_IOS_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresentExtIEs_1_rows } -}; -static const long asn_VAL_51_id_secondarysgNBDLGTPTEIDatPDCP = 312; -static const long asn_VAL_51_ignore = 1; -static const long asn_VAL_51_optional = 0; -static const long asn_VAL_52_id_RLC_Status = 300; -static const long asn_VAL_52_ignore = 1; -static const long asn_VAL_52_optional = 0; -static const asn_ioc_cell_t asn_IOS_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_51_id_secondarysgNBDLGTPTEIDatPDCP }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_51_ignore }, - { "&Extension", aioc__type, &asn_DEF_GTPtunnelEndpoint }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_51_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_52_id_RLC_Status }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_52_ignore }, - { "&Extension", aioc__type, &asn_DEF_RLC_Status }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_52_optional } -}; -static const asn_ioc_set_t asn_IOS_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_1[] = { - { 2, 4, asn_IOS_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_1_rows } -}; -static const long asn_VAL_53_id_RLCMode_transferred = 317; -static const long asn_VAL_53_ignore = 1; -static const long asn_VAL_53_optional = 0; -static const asn_ioc_cell_t asn_IOS_E_RABs_ToBeReleased_SgNBModReqd_ItemExtIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_53_id_RLCMode_transferred }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_53_ignore }, - { "&Extension", aioc__type, &asn_DEF_RLCMode }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_53_optional } -}; -static const asn_ioc_set_t asn_IOS_E_RABs_ToBeReleased_SgNBModReqd_ItemExtIEs_1[] = { - { 1, 4, asn_IOS_E_RABs_ToBeReleased_SgNBModReqd_ItemExtIEs_1_rows } -}; -static const long asn_VAL_54_id_uLpDCPSnLength = 302; -static const long asn_VAL_54_ignore = 1; -static const long asn_VAL_54_optional = 0; -static const long asn_VAL_55_id_dLPDCPSnLength = 311; -static const long asn_VAL_55_ignore = 1; -static const long asn_VAL_55_optional = 0; -static const long asn_VAL_56_id_new_drb_ID_req = 325; -static const long asn_VAL_56_ignore = 1; -static const long asn_VAL_56_optional = 0; -static const asn_ioc_cell_t asn_IOS_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresentExtIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_54_id_uLpDCPSnLength }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_54_ignore }, - { "&Extension", aioc__type, &asn_DEF_PDCPSnLength }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_54_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_55_id_dLPDCPSnLength }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_55_ignore }, - { "&Extension", aioc__type, &asn_DEF_PDCPSnLength }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_55_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_56_id_new_drb_ID_req }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_56_ignore }, - { "&Extension", aioc__type, &asn_DEF_NewDRBIDrequest }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_56_optional } -}; -static const asn_ioc_set_t asn_IOS_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresentExtIEs_1[] = { - { 3, 4, asn_IOS_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresentExtIEs_1_rows } -}; -static const long asn_VAL_57_id_RLC_Status = 300; -static const long asn_VAL_57_ignore = 1; -static const long asn_VAL_57_optional = 0; -static const long asn_VAL_58_id_lCID = 314; -static const long asn_VAL_58_ignore = 1; -static const long asn_VAL_58_optional = 0; -static const asn_ioc_cell_t asn_IOS_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresentExtIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_57_id_RLC_Status }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_57_ignore }, - { "&Extension", aioc__type, &asn_DEF_RLC_Status }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_57_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_58_id_lCID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_58_ignore }, - { "&Extension", aioc__type, &asn_DEF_LCID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_58_optional } -}; -static const asn_ioc_set_t asn_IOS_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresentExtIEs_1[] = { - { 2, 4, asn_IOS_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresentExtIEs_1_rows } -}; -static const long asn_VAL_59_id_uLpDCPSnLength = 302; -static const long asn_VAL_59_ignore = 1; -static const long asn_VAL_59_optional = 0; -static const long asn_VAL_60_id_dLPDCPSnLength = 311; -static const long asn_VAL_60_ignore = 1; -static const long asn_VAL_60_optional = 0; -static const asn_ioc_cell_t asn_IOS_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresentExtIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_59_id_uLpDCPSnLength }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_59_ignore }, - { "&Extension", aioc__type, &asn_DEF_PDCPSnLength }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_59_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_60_id_dLPDCPSnLength }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_60_ignore }, - { "&Extension", aioc__type, &asn_DEF_PDCPSnLength }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_60_optional } -}; -static const asn_ioc_set_t asn_IOS_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresentExtIEs_1[] = { - { 2, 4, asn_IOS_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresentExtIEs_1_rows } -}; -static const long asn_VAL_61_id_DownlinkPacketLossRate = 273; -static const long asn_VAL_61_ignore = 1; -static const long asn_VAL_61_optional = 0; -static const long asn_VAL_62_id_UplinkPacketLossRate = 274; -static const long asn_VAL_62_ignore = 1; -static const long asn_VAL_62_optional = 0; -static const asn_ioc_cell_t asn_IOS_E_RAB_Level_QoS_Parameters_ExtIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_61_id_DownlinkPacketLossRate }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_61_ignore }, - { "&Extension", aioc__type, &asn_DEF_Packet_LossRate }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_61_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_62_id_UplinkPacketLossRate }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_62_ignore }, - { "&Extension", aioc__type, &asn_DEF_Packet_LossRate }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_62_optional } -}; -static const asn_ioc_set_t asn_IOS_E_RAB_Level_QoS_Parameters_ExtIEs_1[] = { - { 2, 4, asn_IOS_E_RAB_Level_QoS_Parameters_ExtIEs_1_rows } -}; -static const long asn_VAL_63_id_UL_EARFCNExtension = 95; -static const long asn_VAL_63_reject = 0; -static const long asn_VAL_63_optional = 0; -static const long asn_VAL_64_id_DL_EARFCNExtension = 96; -static const long asn_VAL_64_reject = 0; -static const long asn_VAL_64_optional = 0; -static const long asn_VAL_65_id_OffsetOfNbiotChannelNumberToDL_EARFCN = 177; -static const long asn_VAL_65_reject = 0; -static const long asn_VAL_65_optional = 0; -static const long asn_VAL_66_id_OffsetOfNbiotChannelNumberToUL_EARFCN = 178; -static const long asn_VAL_66_reject = 0; -static const long asn_VAL_66_optional = 0; -static const long asn_VAL_67_id_NRS_NSSS_PowerOffset = 282; -static const long asn_VAL_67_ignore = 1; -static const long asn_VAL_67_optional = 0; -static const long asn_VAL_68_id_NSSS_NumOccasionDifferentPrecoder = 283; -static const long asn_VAL_68_ignore = 1; -static const long asn_VAL_68_optional = 0; -static const asn_ioc_cell_t asn_IOS_FDD_Info_ExtIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_63_id_UL_EARFCNExtension }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_63_reject }, - { "&Extension", aioc__type, &asn_DEF_EARFCNExtension }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_63_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_64_id_DL_EARFCNExtension }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_64_reject }, - { "&Extension", aioc__type, &asn_DEF_EARFCNExtension }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_64_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_65_id_OffsetOfNbiotChannelNumberToDL_EARFCN }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_65_reject }, - { "&Extension", aioc__type, &asn_DEF_OffsetOfNbiotChannelNumberToEARFCN }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_65_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_66_id_OffsetOfNbiotChannelNumberToUL_EARFCN }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_66_reject }, - { "&Extension", aioc__type, &asn_DEF_OffsetOfNbiotChannelNumberToEARFCN }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_66_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_67_id_NRS_NSSS_PowerOffset }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_67_ignore }, - { "&Extension", aioc__type, &asn_DEF_NRS_NSSS_PowerOffset }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_67_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_68_id_NSSS_NumOccasionDifferentPrecoder }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_68_ignore }, - { "&Extension", aioc__type, &asn_DEF_NSSS_NumOccasionDifferentPrecoder }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_68_optional } -}; -static const asn_ioc_set_t asn_IOS_FDD_Info_ExtIEs_1[] = { - { 6, 4, asn_IOS_FDD_Info_ExtIEs_1_rows } -}; -static const long asn_VAL_69_id_extended_e_RAB_MaximumBitrateDL = 196; -static const long asn_VAL_69_ignore = 1; -static const long asn_VAL_69_optional = 0; -static const long asn_VAL_70_id_extended_e_RAB_MaximumBitrateUL = 197; -static const long asn_VAL_70_ignore = 1; -static const long asn_VAL_70_optional = 0; -static const long asn_VAL_71_id_extended_e_RAB_GuaranteedBitrateDL = 198; -static const long asn_VAL_71_ignore = 1; -static const long asn_VAL_71_optional = 0; -static const long asn_VAL_72_id_extended_e_RAB_GuaranteedBitrateUL = 199; -static const long asn_VAL_72_ignore = 1; -static const long asn_VAL_72_optional = 0; -static const asn_ioc_cell_t asn_IOS_GBR_QosInformation_ExtIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_69_id_extended_e_RAB_MaximumBitrateDL }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_69_ignore }, - { "&Extension", aioc__type, &asn_DEF_ExtendedBitRate }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_69_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_70_id_extended_e_RAB_MaximumBitrateUL }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_70_ignore }, - { "&Extension", aioc__type, &asn_DEF_ExtendedBitRate }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_70_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_71_id_extended_e_RAB_GuaranteedBitrateDL }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_71_ignore }, - { "&Extension", aioc__type, &asn_DEF_ExtendedBitRate }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_71_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_72_id_extended_e_RAB_GuaranteedBitrateUL }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_72_ignore }, - { "&Extension", aioc__type, &asn_DEF_ExtendedBitRate }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_72_optional } -}; -static const asn_ioc_set_t asn_IOS_GBR_QosInformation_ExtIEs_1[] = { - { 4, 4, asn_IOS_GBR_QosInformation_ExtIEs_1_rows } -}; -static const long asn_VAL_73_id_NRrestrictioninEPSasSecondaryRAT = 202; -static const long asn_VAL_73_ignore = 1; -static const long asn_VAL_73_optional = 0; -static const long asn_VAL_74_id_CNTypeRestrictions = 301; -static const long asn_VAL_74_ignore = 1; -static const long asn_VAL_74_optional = 0; -static const long asn_VAL_75_id_NRrestrictionin5GS = 305; -static const long asn_VAL_75_ignore = 1; -static const long asn_VAL_75_optional = 0; -static const asn_ioc_cell_t asn_IOS_HandoverRestrictionList_ExtIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_73_id_NRrestrictioninEPSasSecondaryRAT }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_73_ignore }, - { "&Extension", aioc__type, &asn_DEF_NRrestrictioninEPSasSecondaryRAT }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_73_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_74_id_CNTypeRestrictions }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_74_ignore }, - { "&Extension", aioc__type, &asn_DEF_CNTypeRestrictions }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_74_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_75_id_NRrestrictionin5GS }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_75_ignore }, - { "&Extension", aioc__type, &asn_DEF_NRrestrictionin5GS }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_75_optional } -}; -static const asn_ioc_set_t asn_IOS_HandoverRestrictionList_ExtIEs_1[] = { - { 3, 4, asn_IOS_HandoverRestrictionList_ExtIEs_1_rows } -}; -static const long asn_VAL_76_id_Time_UE_StayedInCell_EnhancedGranularity = 77; -static const long asn_VAL_76_ignore = 1; -static const long asn_VAL_76_optional = 0; -static const long asn_VAL_77_id_HO_cause = 80; -static const long asn_VAL_77_ignore = 1; -static const long asn_VAL_77_optional = 0; -static const asn_ioc_cell_t asn_IOS_LastVisitedEUTRANCellInformation_ExtIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_76_id_Time_UE_StayedInCell_EnhancedGranularity }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_76_ignore }, - { "&Extension", aioc__type, &asn_DEF_Time_UE_StayedInCell_EnhancedGranularity }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_76_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_77_id_HO_cause }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_77_ignore }, - { "&Extension", aioc__type, &asn_DEF_Cause }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_77_optional } -}; -static const asn_ioc_set_t asn_IOS_LastVisitedEUTRANCellInformation_ExtIEs_1[] = { - { 2, 4, asn_IOS_LastVisitedEUTRANCellInformation_ExtIEs_1_rows } -}; -static const long asn_VAL_78_id_M3Configuration = 85; -static const long asn_VAL_78_ignore = 1; -static const long asn_VAL_78_conditional = 1; -static const long asn_VAL_79_id_M4Configuration = 86; -static const long asn_VAL_79_ignore = 1; -static const long asn_VAL_79_conditional = 1; -static const long asn_VAL_80_id_M5Configuration = 87; -static const long asn_VAL_80_ignore = 1; -static const long asn_VAL_80_conditional = 1; -static const long asn_VAL_81_id_MDT_Location_Info = 88; -static const long asn_VAL_81_ignore = 1; -static const long asn_VAL_81_optional = 0; -static const long asn_VAL_82_id_SignallingBasedMDTPLMNList = 90; -static const long asn_VAL_82_ignore = 1; -static const long asn_VAL_82_optional = 0; -static const long asn_VAL_83_id_M6Configuration = 161; -static const long asn_VAL_83_ignore = 1; -static const long asn_VAL_83_conditional = 1; -static const long asn_VAL_84_id_M7Configuration = 162; -static const long asn_VAL_84_ignore = 1; -static const long asn_VAL_84_conditional = 1; -static const long asn_VAL_85_id_BluetoothMeasurementConfiguration = 303; -static const long asn_VAL_85_ignore = 1; -static const long asn_VAL_85_optional = 0; -static const long asn_VAL_86_id_WLANMeasurementConfiguration = 304; -static const long asn_VAL_86_ignore = 1; -static const long asn_VAL_86_optional = 0; -static const asn_ioc_cell_t asn_IOS_MDT_Configuration_ExtIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_78_id_M3Configuration }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_78_ignore }, - { "&Extension", aioc__type, &asn_DEF_M3Configuration }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_78_conditional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_79_id_M4Configuration }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_79_ignore }, - { "&Extension", aioc__type, &asn_DEF_M4Configuration }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_79_conditional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_80_id_M5Configuration }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_80_ignore }, - { "&Extension", aioc__type, &asn_DEF_M5Configuration }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_80_conditional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_81_id_MDT_Location_Info }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_81_ignore }, - { "&Extension", aioc__type, &asn_DEF_MDT_Location_Info }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_81_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_82_id_SignallingBasedMDTPLMNList }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_82_ignore }, - { "&Extension", aioc__type, &asn_DEF_MDTPLMNList }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_82_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_83_id_M6Configuration }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_83_ignore }, - { "&Extension", aioc__type, &asn_DEF_M6Configuration }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_83_conditional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_84_id_M7Configuration }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_84_ignore }, - { "&Extension", aioc__type, &asn_DEF_M7Configuration }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_84_conditional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_85_id_BluetoothMeasurementConfiguration }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_85_ignore }, - { "&Extension", aioc__type, &asn_DEF_BluetoothMeasurementConfiguration }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_85_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_86_id_WLANMeasurementConfiguration }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_86_ignore }, - { "&Extension", aioc__type, &asn_DEF_WLANMeasurementConfiguration }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_86_optional } -}; -static const asn_ioc_set_t asn_IOS_MDT_Configuration_ExtIEs_1[] = { - { 9, 4, asn_IOS_MDT_Configuration_ExtIEs_1_rows } -}; -static const long asn_VAL_87_id_NRCGI = 322; -static const long asn_VAL_87_ignore = 1; -static const long asn_VAL_87_optional = 0; -static const long asn_VAL_88_id_MeNBCoordinationAssistanceInformation = 323; -static const long asn_VAL_88_reject = 0; -static const long asn_VAL_88_optional = 0; -static const asn_ioc_cell_t asn_IOS_MeNBResourceCoordinationInformationExtIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_87_id_NRCGI }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_87_ignore }, - { "&Extension", aioc__type, &asn_DEF_NRCGI }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_87_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_88_id_MeNBCoordinationAssistanceInformation }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_88_reject }, - { "&Extension", aioc__type, &asn_DEF_MeNBCoordinationAssistanceInformation }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_88_optional } -}; -static const asn_ioc_set_t asn_IOS_MeNBResourceCoordinationInformationExtIEs_1[] = { - { 2, 4, asn_IOS_MeNBResourceCoordinationInformationExtIEs_1_rows } -}; -static const long asn_VAL_89_id_NeighbourTAC = 76; -static const long asn_VAL_89_ignore = 1; -static const long asn_VAL_89_optional = 0; -static const long asn_VAL_90_id_eARFCNExtension = 94; -static const long asn_VAL_90_reject = 0; -static const long asn_VAL_90_optional = 0; -static const asn_ioc_cell_t asn_IOS_Neighbour_Information_ExtIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_89_id_NeighbourTAC }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_89_ignore }, - { "&Extension", aioc__type, &asn_DEF_TAC }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_89_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_90_id_eARFCNExtension }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_90_reject }, - { "&Extension", aioc__type, &asn_DEF_EARFCNExtension }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_90_optional } -}; -static const asn_ioc_set_t asn_IOS_Neighbour_Information_ExtIEs_1[] = { - { 2, 4, asn_IOS_Neighbour_Information_ExtIEs_1_rows } -}; -static const long asn_VAL_91_id_ProSeUEtoNetworkRelaying = 149; -static const long asn_VAL_91_ignore = 1; -static const long asn_VAL_91_optional = 0; -static const asn_ioc_cell_t asn_IOS_ProSeAuthorized_ExtIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_91_id_ProSeUEtoNetworkRelaying }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_91_ignore }, - { "&Extension", aioc__type, &asn_DEF_ProSeUEtoNetworkRelaying }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_91_optional } -}; -static const asn_ioc_set_t asn_IOS_ProSeAuthorized_ExtIEs_1[] = { - { 1, 4, asn_IOS_ProSeAuthorized_ExtIEs_1_rows } -}; -static const long asn_VAL_92_id_DL_scheduling_PDCCH_CCE_usage = 193; -static const long asn_VAL_92_ignore = 1; -static const long asn_VAL_92_optional = 0; -static const long asn_VAL_93_id_UL_scheduling_PDCCH_CCE_usage = 194; -static const long asn_VAL_93_ignore = 1; -static const long asn_VAL_93_optional = 0; -static const asn_ioc_cell_t asn_IOS_RadioResourceStatus_ExtIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_92_id_DL_scheduling_PDCCH_CCE_usage }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_92_ignore }, - { "&Extension", aioc__type, &asn_DEF_DL_scheduling_PDCCH_CCE_usage }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_92_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_93_id_UL_scheduling_PDCCH_CCE_usage }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_93_ignore }, - { "&Extension", aioc__type, &asn_DEF_UL_scheduling_PDCCH_CCE_usage }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_93_optional } -}; -static const asn_ioc_set_t asn_IOS_RadioResourceStatus_ExtIEs_1[] = { - { 2, 4, asn_IOS_RadioResourceStatus_ExtIEs_1_rows } -}; -static const long asn_VAL_94_id_enhancedRNTP = 148; -static const long asn_VAL_94_ignore = 1; -static const long asn_VAL_94_optional = 0; -static const asn_ioc_cell_t asn_IOS_RelativeNarrowbandTxPower_ExtIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_94_id_enhancedRNTP }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_94_ignore }, - { "&Extension", aioc__type, &asn_DEF_EnhancedRNTP }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_94_optional } -}; -static const asn_ioc_set_t asn_IOS_RelativeNarrowbandTxPower_ExtIEs_1[] = { - { 1, 4, asn_IOS_RelativeNarrowbandTxPower_ExtIEs_1_rows } -}; -static const long asn_VAL_95_id_UEID = 147; -static const long asn_VAL_95_ignore = 1; -static const long asn_VAL_95_optional = 0; -static const asn_ioc_cell_t asn_IOS_RSRPMRList_ExtIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_95_id_UEID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_95_ignore }, - { "&Extension", aioc__type, &asn_DEF_UEID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_95_optional } -}; -static const asn_ioc_set_t asn_IOS_RSRPMRList_ExtIEs_1[] = { - { 1, 4, asn_IOS_RSRPMRList_ExtIEs_1_rows } -}; -static const long asn_VAL_96_id_Number_of_Antennaports = 41; -static const long asn_VAL_96_ignore = 1; -static const long asn_VAL_96_optional = 0; -static const long asn_VAL_97_id_PRACH_Configuration = 55; -static const long asn_VAL_97_ignore = 1; -static const long asn_VAL_97_optional = 0; -static const long asn_VAL_98_id_MBSFN_Subframe_Info = 56; -static const long asn_VAL_98_ignore = 1; -static const long asn_VAL_98_optional = 0; -static const long asn_VAL_99_id_CSG_Id = 70; -static const long asn_VAL_99_ignore = 1; -static const long asn_VAL_99_optional = 0; -static const long asn_VAL_100_id_MBMS_Service_Area_List = 79; -static const long asn_VAL_100_ignore = 1; -static const long asn_VAL_100_optional = 0; -static const long asn_VAL_101_id_MultibandInfoList = 84; -static const long asn_VAL_101_ignore = 1; -static const long asn_VAL_101_optional = 0; -static const long asn_VAL_102_id_FreqBandIndicatorPriority = 160; -static const long asn_VAL_102_ignore = 1; -static const long asn_VAL_102_optional = 0; -static const long asn_VAL_103_id_BandwidthReducedSI = 180; -static const long asn_VAL_103_ignore = 1; -static const long asn_VAL_103_optional = 0; -static const long asn_VAL_104_id_ProtectedEUTRAResourceIndication = 284; -static const long asn_VAL_104_ignore = 1; -static const long asn_VAL_104_optional = 0; -static const asn_ioc_cell_t asn_IOS_ServedCell_Information_ExtIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_96_id_Number_of_Antennaports }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_96_ignore }, - { "&Extension", aioc__type, &asn_DEF_Number_of_Antennaports }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_96_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_97_id_PRACH_Configuration }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_97_ignore }, - { "&Extension", aioc__type, &asn_DEF_PRACH_Configuration }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_97_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_98_id_MBSFN_Subframe_Info }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_98_ignore }, - { "&Extension", aioc__type, &asn_DEF_MBSFN_Subframe_Infolist }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_98_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_99_id_CSG_Id }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_99_ignore }, - { "&Extension", aioc__type, &asn_DEF_CSG_Id }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_99_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_100_id_MBMS_Service_Area_List }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_100_ignore }, - { "&Extension", aioc__type, &asn_DEF_MBMS_Service_Area_Identity_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_100_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_101_id_MultibandInfoList }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_101_ignore }, - { "&Extension", aioc__type, &asn_DEF_MultibandInfoList }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_101_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_102_id_FreqBandIndicatorPriority }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_102_ignore }, - { "&Extension", aioc__type, &asn_DEF_FreqBandIndicatorPriority }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_102_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_103_id_BandwidthReducedSI }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_103_ignore }, - { "&Extension", aioc__type, &asn_DEF_BandwidthReducedSI }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_103_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_104_id_ProtectedEUTRAResourceIndication }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_104_ignore }, - { "&Extension", aioc__type, &asn_DEF_ProtectedEUTRAResourceIndication }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_104_optional } -}; -static const asn_ioc_set_t asn_IOS_ServedCell_Information_ExtIEs_1[] = { - { 9, 4, asn_IOS_ServedCell_Information_ExtIEs_1_rows } -}; -static const long asn_VAL_105_id_ECGI = 316; -static const long asn_VAL_105_ignore = 1; -static const long asn_VAL_105_optional = 0; -static const long asn_VAL_106_id_SgNBCoordinationAssistanceInformation = 324; -static const long asn_VAL_106_reject = 0; -static const long asn_VAL_106_optional = 0; -static const asn_ioc_cell_t asn_IOS_SgNBResourceCoordinationInformationExtIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_105_id_ECGI }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_105_ignore }, - { "&Extension", aioc__type, &asn_DEF_ECGI }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_105_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_106_id_SgNBCoordinationAssistanceInformation }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_106_reject }, - { "&Extension", aioc__type, &asn_DEF_SgNBCoordinationAssistanceInformation }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_106_optional } -}; -static const asn_ioc_set_t asn_IOS_SgNBResourceCoordinationInformationExtIEs_1[] = { - { 2, 4, asn_IOS_SgNBResourceCoordinationInformationExtIEs_1_rows } -}; -static const long asn_VAL_107_id_AdditionalSpecialSubframe_Info = 97; -static const long asn_VAL_107_ignore = 1; -static const long asn_VAL_107_optional = 0; -static const long asn_VAL_108_id_eARFCNExtension = 94; -static const long asn_VAL_108_reject = 0; -static const long asn_VAL_108_optional = 0; -static const long asn_VAL_109_id_AdditionalSpecialSubframeExtension_Info = 179; -static const long asn_VAL_109_ignore = 1; -static const long asn_VAL_109_optional = 0; -static const asn_ioc_cell_t asn_IOS_TDD_Info_ExtIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_107_id_AdditionalSpecialSubframe_Info }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_107_ignore }, - { "&Extension", aioc__type, &asn_DEF_AdditionalSpecialSubframe_Info }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_107_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_108_id_eARFCNExtension }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_108_reject }, - { "&Extension", aioc__type, &asn_DEF_EARFCNExtension }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_108_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_109_id_AdditionalSpecialSubframeExtension_Info }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_109_ignore }, - { "&Extension", aioc__type, &asn_DEF_AdditionalSpecialSubframeExtension_Info }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_109_optional } -}; -static const asn_ioc_set_t asn_IOS_TDD_Info_ExtIEs_1[] = { - { 3, 4, asn_IOS_TDD_Info_ExtIEs_1_rows } -}; -static const long asn_VAL_110_id_MDTConfiguration = 72; -static const long asn_VAL_110_ignore = 1; -static const long asn_VAL_110_optional = 0; -static const long asn_VAL_111_id_UEAppLayerMeasConfig = 195; -static const long asn_VAL_111_ignore = 1; -static const long asn_VAL_111_optional = 0; -static const asn_ioc_cell_t asn_IOS_TraceActivation_ExtIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_110_id_MDTConfiguration }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_110_ignore }, - { "&Extension", aioc__type, &asn_DEF_MDT_Configuration }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_110_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_111_id_UEAppLayerMeasConfig }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_111_ignore }, - { "&Extension", aioc__type, &asn_DEF_UEAppLayerMeasConfig }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_111_optional } -}; -static const asn_ioc_set_t asn_IOS_TraceActivation_ExtIEs_1[] = { - { 2, 4, asn_IOS_TraceActivation_ExtIEs_1_rows } -}; -static const long asn_VAL_112_id_extended_uEaggregateMaximumBitRateDownlink = 200; -static const long asn_VAL_112_ignore = 1; -static const long asn_VAL_112_optional = 0; -static const long asn_VAL_113_id_extended_uEaggregateMaximumBitRateUplink = 201; -static const long asn_VAL_113_ignore = 1; -static const long asn_VAL_113_optional = 0; -static const asn_ioc_cell_t asn_IOS_UEAggregate_MaximumBitrate_ExtIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_112_id_extended_uEaggregateMaximumBitRateDownlink }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_112_ignore }, - { "&Extension", aioc__type, &asn_DEF_ExtendedBitRate }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_112_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_113_id_extended_uEaggregateMaximumBitRateUplink }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_113_ignore }, - { "&Extension", aioc__type, &asn_DEF_ExtendedBitRate }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_113_optional } -}; -static const asn_ioc_set_t asn_IOS_UEAggregate_MaximumBitrate_ExtIEs_1[] = { - { 2, 4, asn_IOS_UEAggregate_MaximumBitrate_ExtIEs_1_rows } -}; -static const long asn_VAL_114_id_serviceType = 276; -static const long asn_VAL_114_ignore = 1; -static const long asn_VAL_114_optional = 0; -static const asn_ioc_cell_t asn_IOS_UEAppLayerMeasConfig_ExtIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_114_id_serviceType }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_114_ignore }, - { "&Extension", aioc__type, &asn_DEF_ServiceType }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_114_optional } -}; -static const asn_ioc_set_t asn_IOS_UEAppLayerMeasConfig_ExtIEs_1[] = { - { 1, 4, asn_IOS_UEAppLayerMeasConfig_ExtIEs_1_rows } -}; -static int -memb_id_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_UE_ContextInformation_ExtIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_UE_ContextInformation_ExtIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct UE_ContextInformation_ExtIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_UE_ContextInformation_ExtIEs_extensionValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_UE_ContextInformation_ExtIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Extension */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct UE_ContextInformation_ExtIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_extensionValue_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_5(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_E_RABs_ToBeSetup_ItemExtIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeSetup_ItemExtIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeSetup_ItemExtIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_5(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_E_RABs_ToBeSetup_ItemExtIEs_extensionValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeSetup_ItemExtIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Extension */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeSetup_ItemExtIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_extensionValue_constraint_5(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_9(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_9(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_9(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_13(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_13(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_13(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_17(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_17(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_17(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_21(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_21(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_21(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_25(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_E_RABs_SubjectToStatusTransfer_ItemExtIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E_RABs_SubjectToStatusTransfer_ItemExtIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_SubjectToStatusTransfer_ItemExtIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_25(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_E_RABs_SubjectToStatusTransfer_ItemExtIEs_extensionValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E_RABs_SubjectToStatusTransfer_ItemExtIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Extension */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_SubjectToStatusTransfer_ItemExtIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_extensionValue_constraint_25(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_29(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_CellInformation_Item_ExtIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_CellInformation_Item_ExtIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct CellInformation_Item_ExtIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_29(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_CellInformation_Item_ExtIEs_extensionValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_CellInformation_Item_ExtIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Extension */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct CellInformation_Item_ExtIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_extensionValue_constraint_29(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_33(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_ServedCellsToModify_Item_ExtIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_ServedCellsToModify_Item_ExtIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ServedCellsToModify_Item_ExtIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_33(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_ServedCellsToModify_Item_ExtIEs_extensionValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_ServedCellsToModify_Item_ExtIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Extension */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ServedCellsToModify_Item_ExtIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_extensionValue_constraint_33(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_37(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_37(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_37(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_41(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_41(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_41(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_45(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_45(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_45(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_49(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_49(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_49(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_53(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_CellMeasurementResult_Item_ExtIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_CellMeasurementResult_Item_ExtIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct CellMeasurementResult_Item_ExtIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_53(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_CellMeasurementResult_Item_ExtIEs_extensionValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_CellMeasurementResult_Item_ExtIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Extension */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct CellMeasurementResult_Item_ExtIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_extensionValue_constraint_53(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_57(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_57(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_57(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_61(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_61(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_61(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_65(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_65(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_65(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_69(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_E_RABs_ToBeAdded_Item_SCG_BearerExtIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeAdded_Item_SCG_BearerExtIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeAdded_Item_SCG_BearerExtIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_69(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_E_RABs_ToBeAdded_Item_SCG_BearerExtIEs_extensionValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeAdded_Item_SCG_BearerExtIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Extension */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeAdded_Item_SCG_BearerExtIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_extensionValue_constraint_69(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_73(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_73(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_73(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_77(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_77(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_77(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_81(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_81(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_81(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_85(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_85(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_85(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_89(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_89(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_89(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_93(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_93(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_93(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_97(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_E_RABs_ToBeAdded_ModReqItem_SCG_BearerExtIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeAdded_ModReqItem_SCG_BearerExtIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeAdded_ModReqItem_SCG_BearerExtIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_97(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_E_RABs_ToBeAdded_ModReqItem_SCG_BearerExtIEs_extensionValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeAdded_ModReqItem_SCG_BearerExtIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Extension */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeAdded_ModReqItem_SCG_BearerExtIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_extensionValue_constraint_97(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_101(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_101(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_101(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_105(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_105(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_105(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_109(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_109(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_109(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_113(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_113(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_113(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_117(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_117(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_117(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_121(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_121(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_121(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_125(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_125(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_125(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_129(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_129(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_129(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_133(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_133(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_133(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_137(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_137(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_137(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_141(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_141(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_141(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_145(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_145(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_145(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_149(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_149(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_149(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_153(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_153(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_153(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_157(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_157(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_157(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_161(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_161(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_161(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_165(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_165(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_165(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_169(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_UE_ContextInformationRetrieve_ExtIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_UE_ContextInformationRetrieve_ExtIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct UE_ContextInformationRetrieve_ExtIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_169(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_UE_ContextInformationRetrieve_ExtIEs_extensionValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_UE_ContextInformationRetrieve_ExtIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Extension */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct UE_ContextInformationRetrieve_ExtIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_extensionValue_constraint_169(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_173(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_E_RABs_ToBeSetupRetrieve_ItemExtIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeSetupRetrieve_ItemExtIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeSetupRetrieve_ItemExtIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_173(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_E_RABs_ToBeSetupRetrieve_ItemExtIEs_extensionValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeSetupRetrieve_ItemExtIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Extension */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeSetupRetrieve_ItemExtIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_extensionValue_constraint_173(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_177(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_177(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_177(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_181(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresentExtIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresentExtIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresentExtIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_181(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresentExtIEs_extensionValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresentExtIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Extension */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresentExtIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_extensionValue_constraint_181(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_185(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresentExtIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresentExtIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresentExtIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_185(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresentExtIEs_extensionValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresentExtIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Extension */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresentExtIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_extensionValue_constraint_185(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_189(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_189(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_189(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_193(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresentExtIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresentExtIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresentExtIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_193(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresentExtIEs_extensionValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresentExtIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Extension */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresentExtIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_extensionValue_constraint_193(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_197(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresentExtIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresentExtIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresentExtIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_197(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresentExtIEs_extensionValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresentExtIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Extension */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresentExtIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_extensionValue_constraint_197(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_201(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_201(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_201(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_205(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_205(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_205(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_209(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_UE_ContextInformationSgNBModReqExtIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_UE_ContextInformationSgNBModReqExtIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct UE_ContextInformationSgNBModReqExtIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_209(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_UE_ContextInformationSgNBModReqExtIEs_extensionValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_UE_ContextInformationSgNBModReqExtIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Extension */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct UE_ContextInformationSgNBModReqExtIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_extensionValue_constraint_209(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_213(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_213(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_213(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_217(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresentExtIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresentExtIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresentExtIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_217(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresentExtIEs_extensionValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresentExtIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Extension */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresentExtIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_extensionValue_constraint_217(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_221(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_221(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_extensionValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Extension */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_extensionValue_constraint_221(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_225(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_225(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_225(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_229(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresentExtIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresentExtIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresentExtIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_229(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresentExtIEs_extensionValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresentExtIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Extension */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresentExtIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_extensionValue_constraint_229(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_233(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_233(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_extensionValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Extension */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_extensionValue_constraint_233(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_237(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_237(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_237(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_241(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_241(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_241(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_245(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_245(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_245(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_249(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_249(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_249(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_253(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresentExtIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresentExtIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresentExtIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_253(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresentExtIEs_extensionValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresentExtIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Extension */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresentExtIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_extensionValue_constraint_253(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_257(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_257(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_extensionValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Extension */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_extensionValue_constraint_257(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_261(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_261(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_261(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_265(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresentExtIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresentExtIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresentExtIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_265(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresentExtIEs_extensionValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresentExtIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Extension */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresentExtIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_extensionValue_constraint_265(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_269(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_269(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_extensionValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Extension */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_extensionValue_constraint_269(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_273(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_273(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_273(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_277(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_277(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_277(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_281(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_281(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_281(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_285(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_E_RABs_ToBeReleased_SgNBModReqd_ItemExtIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeReleased_SgNBModReqd_ItemExtIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeReleased_SgNBModReqd_ItemExtIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_285(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_E_RABs_ToBeReleased_SgNBModReqd_ItemExtIEs_extensionValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeReleased_SgNBModReqd_ItemExtIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Extension */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeReleased_SgNBModReqd_ItemExtIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_extensionValue_constraint_285(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_289(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_289(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_289(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_293(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresentExtIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresentExtIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresentExtIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_293(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresentExtIEs_extensionValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresentExtIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Extension */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresentExtIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_extensionValue_constraint_293(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_297(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresentExtIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresentExtIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresentExtIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_297(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresentExtIEs_extensionValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresentExtIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Extension */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresentExtIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_extensionValue_constraint_297(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_301(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_301(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_301(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_305(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_305(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_305(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_309(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresentExtIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresentExtIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresentExtIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_309(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresentExtIEs_extensionValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresentExtIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Extension */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresentExtIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_extensionValue_constraint_309(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_313(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_313(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_313(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_317(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_317(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_317(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_321(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_321(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_321(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_325(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_325(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_325(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_329(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_329(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_329(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_333(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_333(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_333(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_337(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_337(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_337(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_341(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_341(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_341(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_345(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_345(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_345(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_349(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_349(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_349(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_353(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_353(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_353(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_357(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_357(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_357(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_361(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_361(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_361(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_365(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_365(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_365(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_369(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_369(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_369(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_373(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_373(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_373(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_377(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_377(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_377(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_381(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_381(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_381(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_385(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_385(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_385(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_389(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_389(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_389(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_393(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_393(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_393(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_397(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_397(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_397(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_401(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_401(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_401(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_405(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_405(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_405(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_409(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_409(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_409(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_413(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_413(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_413(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_417(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_417(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_417(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_421(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_421(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_421(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_425(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_425(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_425(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_429(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_429(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_429(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_433(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_433(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_433(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_437(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_437(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_437(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_441(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_441(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_441(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_445(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_445(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_445(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_449(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_449(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_449(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_453(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_453(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_453(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_457(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_457(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_457(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_461(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_461(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_461(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_465(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_465(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_465(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_469(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_469(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_469(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_473(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_473(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_473(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_477(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_477(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_477(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_481(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_481(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_481(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_485(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_485(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_485(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_489(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_489(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_489(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_493(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_493(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_493(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_497(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_497(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_497(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_501(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_501(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_501(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_505(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_505(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_505(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_509(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_509(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_509(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_513(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_513(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_513(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_517(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_517(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_517(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_521(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_521(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_521(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_525(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_525(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_525(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_529(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_529(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_529(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_533(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_533(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_533(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_537(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_537(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_537(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_541(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_541(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_541(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_545(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_545(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_545(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_549(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_549(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_549(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_553(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_553(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_553(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_557(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_E_RAB_Level_QoS_Parameters_ExtIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E_RAB_Level_QoS_Parameters_ExtIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RAB_Level_QoS_Parameters_ExtIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_557(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_E_RAB_Level_QoS_Parameters_ExtIEs_extensionValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E_RAB_Level_QoS_Parameters_ExtIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Extension */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RAB_Level_QoS_Parameters_ExtIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_extensionValue_constraint_557(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_561(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_561(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_561(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_565(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_565(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_565(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_569(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_569(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_569(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_573(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_573(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_573(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_577(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_577(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_577(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_581(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_FDD_Info_ExtIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_FDD_Info_ExtIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct FDD_Info_ExtIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_581(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_FDD_Info_ExtIEs_extensionValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_FDD_Info_ExtIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Extension */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct FDD_Info_ExtIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_extensionValue_constraint_581(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_585(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_585(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_585(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_589(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_589(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_589(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_593(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_593(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_593(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_597(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_GBR_QosInformation_ExtIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_GBR_QosInformation_ExtIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct GBR_QosInformation_ExtIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_597(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_GBR_QosInformation_ExtIEs_extensionValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_GBR_QosInformation_ExtIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Extension */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct GBR_QosInformation_ExtIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_extensionValue_constraint_597(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_601(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_601(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_601(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_605(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_605(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_605(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_609(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_609(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_609(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_613(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_613(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_613(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_617(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_617(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_617(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_621(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_HandoverRestrictionList_ExtIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_HandoverRestrictionList_ExtIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct HandoverRestrictionList_ExtIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_621(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_HandoverRestrictionList_ExtIEs_extensionValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_HandoverRestrictionList_ExtIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Extension */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct HandoverRestrictionList_ExtIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_extensionValue_constraint_621(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_625(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_625(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_625(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_629(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_LastVisitedEUTRANCellInformation_ExtIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_LastVisitedEUTRANCellInformation_ExtIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct LastVisitedEUTRANCellInformation_ExtIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_629(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_LastVisitedEUTRANCellInformation_ExtIEs_extensionValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_LastVisitedEUTRANCellInformation_ExtIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Extension */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct LastVisitedEUTRANCellInformation_ExtIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_extensionValue_constraint_629(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_633(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_633(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_633(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_637(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_637(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_637(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_641(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_641(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_641(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_645(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_645(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_645(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_649(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_649(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_649(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_653(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_653(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_653(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_657(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_657(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_657(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_661(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_661(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_661(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_665(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_MDT_Configuration_ExtIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_MDT_Configuration_ExtIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct MDT_Configuration_ExtIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_665(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_MDT_Configuration_ExtIEs_extensionValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_MDT_Configuration_ExtIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Extension */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct MDT_Configuration_ExtIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_extensionValue_constraint_665(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_669(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_MeNBResourceCoordinationInformationExtIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_MeNBResourceCoordinationInformationExtIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct MeNBResourceCoordinationInformationExtIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_669(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_MeNBResourceCoordinationInformationExtIEs_extensionValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_MeNBResourceCoordinationInformationExtIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Extension */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct MeNBResourceCoordinationInformationExtIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_extensionValue_constraint_669(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_673(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_673(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_673(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_677(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_677(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_677(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_681(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_681(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_681(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_685(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_685(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_685(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_689(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_Neighbour_Information_ExtIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_Neighbour_Information_ExtIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Neighbour_Information_ExtIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_689(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_Neighbour_Information_ExtIEs_extensionValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_Neighbour_Information_ExtIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Extension */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Neighbour_Information_ExtIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_extensionValue_constraint_689(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_693(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_693(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_693(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_697(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_697(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_697(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_701(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_701(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_701(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_705(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_705(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_705(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_709(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_709(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_709(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_713(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_713(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_713(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_717(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_ProSeAuthorized_ExtIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_ProSeAuthorized_ExtIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ProSeAuthorized_ExtIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_717(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_ProSeAuthorized_ExtIEs_extensionValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_ProSeAuthorized_ExtIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Extension */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ProSeAuthorized_ExtIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_extensionValue_constraint_717(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_721(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_721(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_721(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_725(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_725(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_725(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_729(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_729(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_729(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_733(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_RadioResourceStatus_ExtIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RadioResourceStatus_ExtIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RadioResourceStatus_ExtIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_733(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_RadioResourceStatus_ExtIEs_extensionValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RadioResourceStatus_ExtIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Extension */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RadioResourceStatus_ExtIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_extensionValue_constraint_733(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_737(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_RelativeNarrowbandTxPower_ExtIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RelativeNarrowbandTxPower_ExtIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RelativeNarrowbandTxPower_ExtIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_737(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_RelativeNarrowbandTxPower_ExtIEs_extensionValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RelativeNarrowbandTxPower_ExtIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Extension */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RelativeNarrowbandTxPower_ExtIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_extensionValue_constraint_737(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_741(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_741(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_741(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_745(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_745(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_745(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_749(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_749(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_749(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_753(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_RSRPMRList_ExtIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RSRPMRList_ExtIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RSRPMRList_ExtIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_753(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_RSRPMRList_ExtIEs_extensionValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RSRPMRList_ExtIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Extension */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RSRPMRList_ExtIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_extensionValue_constraint_753(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_757(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_757(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_757(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_761(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_761(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_761(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_765(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_765(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_765(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_769(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_ServedCell_Information_ExtIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_ServedCell_Information_ExtIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ServedCell_Information_ExtIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_769(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_ServedCell_Information_ExtIEs_extensionValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_ServedCell_Information_ExtIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Extension */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ServedCell_Information_ExtIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_extensionValue_constraint_769(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_773(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_SgNBResourceCoordinationInformationExtIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_SgNBResourceCoordinationInformationExtIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SgNBResourceCoordinationInformationExtIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_773(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_SgNBResourceCoordinationInformationExtIEs_extensionValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_SgNBResourceCoordinationInformationExtIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Extension */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SgNBResourceCoordinationInformationExtIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_extensionValue_constraint_773(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_777(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_777(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_777(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_781(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_781(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_781(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_785(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_785(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_785(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_789(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_789(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_789(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_793(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_793(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_793(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_797(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_797(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_797(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_801(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_801(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_801(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_805(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_805(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_805(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_809(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_809(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_809(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_813(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_813(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_813(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_817(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_817(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_817(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_821(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_821(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_821(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_825(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_TDD_Info_ExtIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_TDD_Info_ExtIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct TDD_Info_ExtIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_825(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_TDD_Info_ExtIEs_extensionValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_TDD_Info_ExtIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Extension */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct TDD_Info_ExtIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_extensionValue_constraint_825(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_829(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_TraceActivation_ExtIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_TraceActivation_ExtIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct TraceActivation_ExtIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_829(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_TraceActivation_ExtIEs_extensionValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_TraceActivation_ExtIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Extension */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct TraceActivation_ExtIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_extensionValue_constraint_829(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_833(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_833(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_833(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_837(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_UEAggregate_MaximumBitrate_ExtIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_UEAggregate_MaximumBitrate_ExtIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct UEAggregate_MaximumBitrate_ExtIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_837(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_UEAggregate_MaximumBitrate_ExtIEs_extensionValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_UEAggregate_MaximumBitrate_ExtIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Extension */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct UEAggregate_MaximumBitrate_ExtIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_extensionValue_constraint_837(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_841(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_UEAppLayerMeasConfig_ExtIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_UEAppLayerMeasConfig_ExtIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct UEAppLayerMeasConfig_ExtIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_841(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_UEAppLayerMeasConfig_ExtIEs_extensionValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_UEAppLayerMeasConfig_ExtIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Extension */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct UEAppLayerMeasConfig_ExtIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_extensionValue_constraint_841(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_845(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_845(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_845(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_849(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_849(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_849(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_853(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_853(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_853(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_857(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_857(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_857(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_861(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_861(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_861(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_865(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_865(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_865(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_869(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_869(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_869(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_873(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_873(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_873(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_877(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_877(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_877(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_881(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_881(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_881(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_885(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_885(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_885(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_889(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_889(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_extensionValue_constraint_889(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_per_constraints_t asn_PER_memb_id_constr_2 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_3 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_4 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_6 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_7 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_8 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_10 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_11 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_12 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_14 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_15 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_16 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_18 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_19 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_20 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_22 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_23 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_24 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_26 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_27 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_28 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_30 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_31 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_32 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_34 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_35 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_36 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_38 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_39 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_40 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_42 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_43 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_44 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_46 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_47 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_48 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_50 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_51 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_52 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_54 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_55 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_56 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_58 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_59 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_60 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_62 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_63 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_64 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_66 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_67 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_68 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_70 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_71 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_72 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_74 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_75 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_76 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_78 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_79 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_80 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_82 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_83 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_84 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_86 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_87 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_88 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_90 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_91 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_92 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_94 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_95 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_96 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_98 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_99 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_100 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_102 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_103 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_104 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_106 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_107 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_108 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_110 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_111 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_112 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_114 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_115 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_116 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_118 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_119 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_120 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_122 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_123 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_124 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_126 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_127 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_128 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_130 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_131 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_132 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_134 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_135 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_136 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_138 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_139 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_140 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_142 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_143 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_144 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_146 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_147 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_148 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_150 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_151 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_152 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_154 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_155 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_156 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_158 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_159 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_160 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_162 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_163 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_164 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_166 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_167 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_168 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_170 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_171 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_172 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_174 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_175 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_176 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_178 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_179 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_180 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_182 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_183 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_184 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_186 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_187 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_188 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_190 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_191 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_192 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_194 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_195 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_196 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_198 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_199 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_200 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_202 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_203 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_204 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_206 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_207 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_208 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_210 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_211 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_212 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_214 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_215 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_216 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_218 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_219 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_220 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_222 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_223 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_224 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_226 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_227 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_228 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_230 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_231 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_232 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_234 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_235 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_236 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_238 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_239 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_240 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_242 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_243 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_244 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_246 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_247 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_248 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_250 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_251 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_252 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_254 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_255 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_256 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_258 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_259 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_260 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_262 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_263 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_264 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_266 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_267 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_268 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_270 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_271 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_272 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_274 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_275 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_276 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_278 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_279 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_280 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_282 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_283 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_284 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_286 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_287 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_288 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_290 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_291 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_292 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_294 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_295 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_296 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_298 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_299 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_300 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_302 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_303 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_304 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_306 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_307 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_308 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_310 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_311 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_312 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_314 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_315 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_316 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_318 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_319 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_320 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_322 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_323 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_324 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_326 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_327 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_328 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_330 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_331 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_332 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_334 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_335 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_336 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_338 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_339 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_340 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_342 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_343 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_344 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_346 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_347 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_348 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_350 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_351 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_352 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_354 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_355 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_356 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_358 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_359 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_360 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_362 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_363 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_364 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_366 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_367 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_368 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_370 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_371 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_372 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_374 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_375 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_376 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_378 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_379 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_380 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_382 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_383 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_384 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_386 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_387 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_388 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_390 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_391 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_392 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_394 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_395 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_396 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_398 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_399 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_400 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_402 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_403 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_404 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_406 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_407 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_408 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_410 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_411 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_412 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_414 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_415 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_416 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_418 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_419 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_420 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_422 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_423 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_424 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_426 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_427 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_428 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_430 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_431 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_432 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_434 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_435 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_436 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_438 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_439 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_440 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_442 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_443 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_444 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_446 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_447 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_448 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_450 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_451 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_452 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_454 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_455 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_456 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_458 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_459 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_460 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_462 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_463 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_464 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_466 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_467 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_468 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_470 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_471 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_472 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_474 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_475 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_476 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_478 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_479 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_480 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_482 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_483 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_484 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_486 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_487 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_488 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_490 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_491 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_492 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_494 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_495 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_496 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_498 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_499 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_500 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_502 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_503 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_504 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_506 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_507 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_508 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_510 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_511 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_512 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_514 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_515 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_516 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_518 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_519 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_520 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_522 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_523 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_524 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_526 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_527 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_528 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_530 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_531 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_532 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_534 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_535 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_536 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_538 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_539 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_540 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_542 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_543 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_544 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_546 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_547 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_548 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_550 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_551 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_552 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_554 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_555 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_556 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_558 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_559 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_560 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_562 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_563 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_564 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_566 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_567 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_568 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_570 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_571 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_572 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_574 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_575 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_576 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_578 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_579 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_580 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_582 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_583 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_584 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_586 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_587 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_588 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_590 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_591 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_592 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_594 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_595 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_596 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_598 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_599 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_600 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_602 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_603 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_604 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_606 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_607 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_608 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_610 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_611 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_612 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_614 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_615 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_616 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_618 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_619 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_620 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_622 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_623 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_624 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_626 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_627 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_628 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_630 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_631 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_632 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_634 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_635 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_636 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_638 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_639 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_640 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_642 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_643 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_644 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_646 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_647 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_648 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_650 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_651 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_652 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_654 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_655 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_656 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_658 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_659 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_660 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_662 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_663 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_664 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_666 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_667 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_668 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_670 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_671 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_672 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_674 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_675 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_676 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_678 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_679 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_680 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_682 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_683 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_684 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_686 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_687 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_688 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_690 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_691 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_692 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_694 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_695 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_696 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_698 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_699 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_700 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_702 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_703 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_704 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_706 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_707 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_708 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_710 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_711 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_712 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_714 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_715 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_716 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_718 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_719 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_720 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_722 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_723 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_724 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_726 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_727 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_728 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_730 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_731 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_732 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_734 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_735 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_736 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_738 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_739 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_740 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_742 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_743 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_744 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_746 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_747 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_748 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_750 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_751 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_752 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_754 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_755 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_756 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_758 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_759 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_760 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_762 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_763 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_764 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_766 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_767 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_768 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_770 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_771 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_772 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_774 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_775 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_776 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_778 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_779 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_780 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_782 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_783 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_784 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_786 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_787 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_788 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_790 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_791 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_792 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_794 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_795 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_796 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_798 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_799 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_800 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_802 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_803 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_804 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_806 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_807 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_808 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_810 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_811 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_812 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_814 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_815 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_816 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_818 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_819 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_820 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_822 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_823 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_824 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_826 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_827 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_828 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_830 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_831 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_832 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_834 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_835 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_836 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_838 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_839 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_840 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_842 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_843 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_844 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_846 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_847 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_848 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_850 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_851 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_852 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_854 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_855 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_856 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_858 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_859 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_860 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_862 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_863 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_864 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_866 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_867 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_868 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_870 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_871 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_872 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_874 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_875 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_876 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_878 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_879 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_880 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_882 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_883 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_884 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_886 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_887 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_888 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_890 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_891 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_extensionValue_constr_892 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_extensionValue_4[] = { - { ATF_NOFLAGS, 0, offsetof(struct UE_ContextInformation_ExtIEs__extensionValue, choice.ManagementBasedMDTallowed), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_ManagementBasedMDTallowed, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ManagementBasedMDTallowed" - }, - { ATF_NOFLAGS, 0, offsetof(struct UE_ContextInformation_ExtIEs__extensionValue, choice.MDTPLMNList), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_MDTPLMNList, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "MDTPLMNList" - }, - { ATF_NOFLAGS, 0, offsetof(struct UE_ContextInformation_ExtIEs__extensionValue, choice.UESidelinkAggregateMaximumBitRate), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_UESidelinkAggregateMaximumBitRate, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "UESidelinkAggregateMaximumBitRate" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_extensionValue_tag2el_4[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 0, 0, 0 }, /* ManagementBasedMDTallowed */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 1 }, /* MDTPLMNList */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -1, 0 } /* UESidelinkAggregateMaximumBitRate */ -}; -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_4 = { - sizeof(struct UE_ContextInformation_ExtIEs__extensionValue), - offsetof(struct UE_ContextInformation_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct UE_ContextInformation_ExtIEs__extensionValue, present), - sizeof(((struct UE_ContextInformation_ExtIEs__extensionValue *)0)->present), - asn_MAP_extensionValue_tag2el_4, - 3, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_4 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_extensionValue_4, - 3, /* Elements count */ - &asn_SPC_extensionValue_specs_4 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_UE_ContextInformation_ExtIEs_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct UE_ContextInformation_ExtIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_2, memb_id_constraint_1 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct UE_ContextInformation_ExtIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_UE_ContextInformation_ExtIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_3, memb_criticality_constraint_1 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct UE_ContextInformation_ExtIEs, extensionValue), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_extensionValue_4, - select_UE_ContextInformation_ExtIEs_extensionValue_type, - { 0, &asn_PER_memb_extensionValue_constr_4, memb_extensionValue_constraint_1 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_UE_ContextInformation_ExtIEs_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_UE_ContextInformation_ExtIEs_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* extensionValue */ -}; -asn_SEQUENCE_specifics_t asn_SPC_UE_ContextInformation_ExtIEs_specs_1 = { - sizeof(struct UE_ContextInformation_ExtIEs), - offsetof(struct UE_ContextInformation_ExtIEs, _asn_ctx), - asn_MAP_UE_ContextInformation_ExtIEs_tag2el_1, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_UE_ContextInformation_ExtIEs = { - "UE-ContextInformation-ExtIEs", - "UE-ContextInformation-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_UE_ContextInformation_ExtIEs_tags_1, - sizeof(asn_DEF_UE_ContextInformation_ExtIEs_tags_1) - /sizeof(asn_DEF_UE_ContextInformation_ExtIEs_tags_1[0]), /* 1 */ - asn_DEF_UE_ContextInformation_ExtIEs_tags_1, /* Same as above */ - sizeof(asn_DEF_UE_ContextInformation_ExtIEs_tags_1) - /sizeof(asn_DEF_UE_ContextInformation_ExtIEs_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_UE_ContextInformation_ExtIEs_1, - 3, /* Elements count */ - &asn_SPC_UE_ContextInformation_ExtIEs_specs_1 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_extensionValue_8[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeSetup_ItemExtIEs__extensionValue, choice.BearerType), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_BearerType, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "BearerType" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_extensionValue_tag2el_8[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 0, 0, 0 } /* BearerType */ -}; -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_8 = { - sizeof(struct E_RABs_ToBeSetup_ItemExtIEs__extensionValue), - offsetof(struct E_RABs_ToBeSetup_ItemExtIEs__extensionValue, _asn_ctx), - offsetof(struct E_RABs_ToBeSetup_ItemExtIEs__extensionValue, present), - sizeof(((struct E_RABs_ToBeSetup_ItemExtIEs__extensionValue *)0)->present), - asn_MAP_extensionValue_tag2el_8, - 1, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_8 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_extensionValue_8, - 1, /* Elements count */ - &asn_SPC_extensionValue_specs_8 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E_RABs_ToBeSetup_ItemExtIEs_5[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeSetup_ItemExtIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_6, memb_id_constraint_5 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeSetup_ItemExtIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_E_RABs_ToBeSetup_ItemExtIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_7, memb_criticality_constraint_5 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeSetup_ItemExtIEs, extensionValue), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_extensionValue_8, - select_E_RABs_ToBeSetup_ItemExtIEs_extensionValue_type, - { 0, &asn_PER_memb_extensionValue_constr_8, memb_extensionValue_constraint_5 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeSetup_ItemExtIEs_tags_5[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeSetup_ItemExtIEs_tag2el_5[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* extensionValue */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeSetup_ItemExtIEs_specs_5 = { - sizeof(struct E_RABs_ToBeSetup_ItemExtIEs), - offsetof(struct E_RABs_ToBeSetup_ItemExtIEs, _asn_ctx), - asn_MAP_E_RABs_ToBeSetup_ItemExtIEs_tag2el_5, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeSetup_ItemExtIEs = { - "E-RABs-ToBeSetup-ItemExtIEs", - "E-RABs-ToBeSetup-ItemExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_ToBeSetup_ItemExtIEs_tags_5, - sizeof(asn_DEF_E_RABs_ToBeSetup_ItemExtIEs_tags_5) - /sizeof(asn_DEF_E_RABs_ToBeSetup_ItemExtIEs_tags_5[0]), /* 1 */ - asn_DEF_E_RABs_ToBeSetup_ItemExtIEs_tags_5, /* Same as above */ - sizeof(asn_DEF_E_RABs_ToBeSetup_ItemExtIEs_tags_5) - /sizeof(asn_DEF_E_RABs_ToBeSetup_ItemExtIEs_tags_5[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_ToBeSetup_ItemExtIEs_5, - 3, /* Elements count */ - &asn_SPC_E_RABs_ToBeSetup_ItemExtIEs_specs_5 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_12 = { - sizeof(struct UE_ContextReferenceAtSeNB_ItemExtIEs__extensionValue), - offsetof(struct UE_ContextReferenceAtSeNB_ItemExtIEs__extensionValue, _asn_ctx), - offsetof(struct UE_ContextReferenceAtSeNB_ItemExtIEs__extensionValue, present), - sizeof(((struct UE_ContextReferenceAtSeNB_ItemExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_12 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_12 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_UE_ContextReferenceAtSeNB_ItemExtIEs_9[] = { - { ATF_NOFLAGS, 0, offsetof(struct UE_ContextReferenceAtSeNB_ItemExtIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_10, memb_id_constraint_9 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct UE_ContextReferenceAtSeNB_ItemExtIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_11, memb_criticality_constraint_9 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct UE_ContextReferenceAtSeNB_ItemExtIEs, extensionValue), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_extensionValue_12, - 0, - { 0, &asn_PER_memb_extensionValue_constr_12, memb_extensionValue_constraint_9 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_UE_ContextReferenceAtSeNB_ItemExtIEs_tags_9[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_UE_ContextReferenceAtSeNB_ItemExtIEs_tag2el_9[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* extensionValue */ -}; -asn_SEQUENCE_specifics_t asn_SPC_UE_ContextReferenceAtSeNB_ItemExtIEs_specs_9 = { - sizeof(struct UE_ContextReferenceAtSeNB_ItemExtIEs), - offsetof(struct UE_ContextReferenceAtSeNB_ItemExtIEs, _asn_ctx), - asn_MAP_UE_ContextReferenceAtSeNB_ItemExtIEs_tag2el_9, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_UE_ContextReferenceAtSeNB_ItemExtIEs = { - "UE-ContextReferenceAtSeNB-ItemExtIEs", - "UE-ContextReferenceAtSeNB-ItemExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_UE_ContextReferenceAtSeNB_ItemExtIEs_tags_9, - sizeof(asn_DEF_UE_ContextReferenceAtSeNB_ItemExtIEs_tags_9) - /sizeof(asn_DEF_UE_ContextReferenceAtSeNB_ItemExtIEs_tags_9[0]), /* 1 */ - asn_DEF_UE_ContextReferenceAtSeNB_ItemExtIEs_tags_9, /* Same as above */ - sizeof(asn_DEF_UE_ContextReferenceAtSeNB_ItemExtIEs_tags_9) - /sizeof(asn_DEF_UE_ContextReferenceAtSeNB_ItemExtIEs_tags_9[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_UE_ContextReferenceAtSeNB_ItemExtIEs_9, - 3, /* Elements count */ - &asn_SPC_UE_ContextReferenceAtSeNB_ItemExtIEs_specs_9 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_16 = { - sizeof(struct UE_ContextReferenceAtWT_ItemExtIEs__extensionValue), - offsetof(struct UE_ContextReferenceAtWT_ItemExtIEs__extensionValue, _asn_ctx), - offsetof(struct UE_ContextReferenceAtWT_ItemExtIEs__extensionValue, present), - sizeof(((struct UE_ContextReferenceAtWT_ItemExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_16 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_16 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_UE_ContextReferenceAtWT_ItemExtIEs_13[] = { - { ATF_NOFLAGS, 0, offsetof(struct UE_ContextReferenceAtWT_ItemExtIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_14, memb_id_constraint_13 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct UE_ContextReferenceAtWT_ItemExtIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_15, memb_criticality_constraint_13 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct UE_ContextReferenceAtWT_ItemExtIEs, extensionValue), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_extensionValue_16, - 0, - { 0, &asn_PER_memb_extensionValue_constr_16, memb_extensionValue_constraint_13 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_UE_ContextReferenceAtWT_ItemExtIEs_tags_13[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_UE_ContextReferenceAtWT_ItemExtIEs_tag2el_13[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* extensionValue */ -}; -asn_SEQUENCE_specifics_t asn_SPC_UE_ContextReferenceAtWT_ItemExtIEs_specs_13 = { - sizeof(struct UE_ContextReferenceAtWT_ItemExtIEs), - offsetof(struct UE_ContextReferenceAtWT_ItemExtIEs, _asn_ctx), - asn_MAP_UE_ContextReferenceAtWT_ItemExtIEs_tag2el_13, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_UE_ContextReferenceAtWT_ItemExtIEs = { - "UE-ContextReferenceAtWT-ItemExtIEs", - "UE-ContextReferenceAtWT-ItemExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_UE_ContextReferenceAtWT_ItemExtIEs_tags_13, - sizeof(asn_DEF_UE_ContextReferenceAtWT_ItemExtIEs_tags_13) - /sizeof(asn_DEF_UE_ContextReferenceAtWT_ItemExtIEs_tags_13[0]), /* 1 */ - asn_DEF_UE_ContextReferenceAtWT_ItemExtIEs_tags_13, /* Same as above */ - sizeof(asn_DEF_UE_ContextReferenceAtWT_ItemExtIEs_tags_13) - /sizeof(asn_DEF_UE_ContextReferenceAtWT_ItemExtIEs_tags_13[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_UE_ContextReferenceAtWT_ItemExtIEs_13, - 3, /* Elements count */ - &asn_SPC_UE_ContextReferenceAtWT_ItemExtIEs_specs_13 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_20 = { - sizeof(struct UE_ContextReferenceAtSgNB_ItemExtIEs__extensionValue), - offsetof(struct UE_ContextReferenceAtSgNB_ItemExtIEs__extensionValue, _asn_ctx), - offsetof(struct UE_ContextReferenceAtSgNB_ItemExtIEs__extensionValue, present), - sizeof(((struct UE_ContextReferenceAtSgNB_ItemExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_20 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_20 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_UE_ContextReferenceAtSgNB_ItemExtIEs_17[] = { - { ATF_NOFLAGS, 0, offsetof(struct UE_ContextReferenceAtSgNB_ItemExtIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_18, memb_id_constraint_17 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct UE_ContextReferenceAtSgNB_ItemExtIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_19, memb_criticality_constraint_17 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct UE_ContextReferenceAtSgNB_ItemExtIEs, extensionValue), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_extensionValue_20, - 0, - { 0, &asn_PER_memb_extensionValue_constr_20, memb_extensionValue_constraint_17 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_UE_ContextReferenceAtSgNB_ItemExtIEs_tags_17[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_UE_ContextReferenceAtSgNB_ItemExtIEs_tag2el_17[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* extensionValue */ -}; -asn_SEQUENCE_specifics_t asn_SPC_UE_ContextReferenceAtSgNB_ItemExtIEs_specs_17 = { - sizeof(struct UE_ContextReferenceAtSgNB_ItemExtIEs), - offsetof(struct UE_ContextReferenceAtSgNB_ItemExtIEs, _asn_ctx), - asn_MAP_UE_ContextReferenceAtSgNB_ItemExtIEs_tag2el_17, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_UE_ContextReferenceAtSgNB_ItemExtIEs = { - "UE-ContextReferenceAtSgNB-ItemExtIEs", - "UE-ContextReferenceAtSgNB-ItemExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_UE_ContextReferenceAtSgNB_ItemExtIEs_tags_17, - sizeof(asn_DEF_UE_ContextReferenceAtSgNB_ItemExtIEs_tags_17) - /sizeof(asn_DEF_UE_ContextReferenceAtSgNB_ItemExtIEs_tags_17[0]), /* 1 */ - asn_DEF_UE_ContextReferenceAtSgNB_ItemExtIEs_tags_17, /* Same as above */ - sizeof(asn_DEF_UE_ContextReferenceAtSgNB_ItemExtIEs_tags_17) - /sizeof(asn_DEF_UE_ContextReferenceAtSgNB_ItemExtIEs_tags_17[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_UE_ContextReferenceAtSgNB_ItemExtIEs_17, - 3, /* Elements count */ - &asn_SPC_UE_ContextReferenceAtSgNB_ItemExtIEs_specs_17 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_24 = { - sizeof(struct E_RABs_Admitted_Item_ExtIEs__extensionValue), - offsetof(struct E_RABs_Admitted_Item_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct E_RABs_Admitted_Item_ExtIEs__extensionValue, present), - sizeof(((struct E_RABs_Admitted_Item_ExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_24 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_24 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E_RABs_Admitted_Item_ExtIEs_21[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_Item_ExtIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_22, memb_id_constraint_21 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_Item_ExtIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_23, memb_criticality_constraint_21 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_Item_ExtIEs, extensionValue), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_extensionValue_24, - 0, - { 0, &asn_PER_memb_extensionValue_constr_24, memb_extensionValue_constraint_21 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_Admitted_Item_ExtIEs_tags_21[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_Admitted_Item_ExtIEs_tag2el_21[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* extensionValue */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_Item_ExtIEs_specs_21 = { - sizeof(struct E_RABs_Admitted_Item_ExtIEs), - offsetof(struct E_RABs_Admitted_Item_ExtIEs, _asn_ctx), - asn_MAP_E_RABs_Admitted_Item_ExtIEs_tag2el_21, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_Item_ExtIEs = { - "E-RABs-Admitted-Item-ExtIEs", - "E-RABs-Admitted-Item-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_Admitted_Item_ExtIEs_tags_21, - sizeof(asn_DEF_E_RABs_Admitted_Item_ExtIEs_tags_21) - /sizeof(asn_DEF_E_RABs_Admitted_Item_ExtIEs_tags_21[0]), /* 1 */ - asn_DEF_E_RABs_Admitted_Item_ExtIEs_tags_21, /* Same as above */ - sizeof(asn_DEF_E_RABs_Admitted_Item_ExtIEs_tags_21) - /sizeof(asn_DEF_E_RABs_Admitted_Item_ExtIEs_tags_21[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_Admitted_Item_ExtIEs_21, - 3, /* Elements count */ - &asn_SPC_E_RABs_Admitted_Item_ExtIEs_specs_21 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_extensionValue_28[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_SubjectToStatusTransfer_ItemExtIEs__extensionValue, choice.ReceiveStatusOfULPDCPSDUsExtended), - (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), - 0, - &asn_DEF_ReceiveStatusOfULPDCPSDUsExtended, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ReceiveStatusOfULPDCPSDUsExtended" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_SubjectToStatusTransfer_ItemExtIEs__extensionValue, choice.COUNTValueExtended), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_COUNTValueExtended, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "COUNTValueExtended" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_SubjectToStatusTransfer_ItemExtIEs__extensionValue, choice.ReceiveStatusOfULPDCPSDUsPDCP_SNlength18), - (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), - 0, - &asn_DEF_ReceiveStatusOfULPDCPSDUsPDCP_SNlength18, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ReceiveStatusOfULPDCPSDUsPDCP-SNlength18" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_SubjectToStatusTransfer_ItemExtIEs__extensionValue, choice.COUNTvaluePDCP_SNlength18), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_COUNTvaluePDCP_SNlength18, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "COUNTvaluePDCP-SNlength18" - }, -}; -static const unsigned asn_MAP_extensionValue_to_canonical_28[] = { 0, 2, 1, 3 }; -static const unsigned asn_MAP_extensionValue_from_canonical_28[] = { 0, 2, 1, 3 }; -static const asn_TYPE_tag2member_t asn_MAP_extensionValue_tag2el_28[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), 0, 0, 1 }, /* ReceiveStatusOfULPDCPSDUsExtended */ - { (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), 2, -1, 0 }, /* ReceiveStatusOfULPDCPSDUsPDCP-SNlength18 */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 1 }, /* COUNTValueExtended */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -1, 0 } /* COUNTvaluePDCP-SNlength18 */ -}; -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_28 = { - sizeof(struct E_RABs_SubjectToStatusTransfer_ItemExtIEs__extensionValue), - offsetof(struct E_RABs_SubjectToStatusTransfer_ItemExtIEs__extensionValue, _asn_ctx), - offsetof(struct E_RABs_SubjectToStatusTransfer_ItemExtIEs__extensionValue, present), - sizeof(((struct E_RABs_SubjectToStatusTransfer_ItemExtIEs__extensionValue *)0)->present), - asn_MAP_extensionValue_tag2el_28, - 4, /* Count of tags in the map */ - asn_MAP_extensionValue_to_canonical_28, - asn_MAP_extensionValue_from_canonical_28, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_28 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_extensionValue_28, - 4, /* Elements count */ - &asn_SPC_extensionValue_specs_28 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E_RABs_SubjectToStatusTransfer_ItemExtIEs_25[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_SubjectToStatusTransfer_ItemExtIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_26, memb_id_constraint_25 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_SubjectToStatusTransfer_ItemExtIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_E_RABs_SubjectToStatusTransfer_ItemExtIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_27, memb_criticality_constraint_25 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_SubjectToStatusTransfer_ItemExtIEs, extensionValue), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_extensionValue_28, - select_E_RABs_SubjectToStatusTransfer_ItemExtIEs_extensionValue_type, - { 0, &asn_PER_memb_extensionValue_constr_28, memb_extensionValue_constraint_25 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_SubjectToStatusTransfer_ItemExtIEs_tags_25[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_SubjectToStatusTransfer_ItemExtIEs_tag2el_25[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* extensionValue */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_SubjectToStatusTransfer_ItemExtIEs_specs_25 = { - sizeof(struct E_RABs_SubjectToStatusTransfer_ItemExtIEs), - offsetof(struct E_RABs_SubjectToStatusTransfer_ItemExtIEs, _asn_ctx), - asn_MAP_E_RABs_SubjectToStatusTransfer_ItemExtIEs_tag2el_25, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_SubjectToStatusTransfer_ItemExtIEs = { - "E-RABs-SubjectToStatusTransfer-ItemExtIEs", - "E-RABs-SubjectToStatusTransfer-ItemExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_SubjectToStatusTransfer_ItemExtIEs_tags_25, - sizeof(asn_DEF_E_RABs_SubjectToStatusTransfer_ItemExtIEs_tags_25) - /sizeof(asn_DEF_E_RABs_SubjectToStatusTransfer_ItemExtIEs_tags_25[0]), /* 1 */ - asn_DEF_E_RABs_SubjectToStatusTransfer_ItemExtIEs_tags_25, /* Same as above */ - sizeof(asn_DEF_E_RABs_SubjectToStatusTransfer_ItemExtIEs_tags_25) - /sizeof(asn_DEF_E_RABs_SubjectToStatusTransfer_ItemExtIEs_tags_25[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_SubjectToStatusTransfer_ItemExtIEs_25, - 3, /* Elements count */ - &asn_SPC_E_RABs_SubjectToStatusTransfer_ItemExtIEs_specs_25 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_extensionValue_32[] = { - { ATF_NOFLAGS, 0, offsetof(struct CellInformation_Item_ExtIEs__extensionValue, choice.ABSInformation), - -1 /* Ambiguous tag (CHOICE?) */, - 0, - &asn_DEF_ABSInformation, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ABSInformation" - }, - { ATF_NOFLAGS, 0, offsetof(struct CellInformation_Item_ExtIEs__extensionValue, choice.InvokeIndication), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_InvokeIndication, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "InvokeIndication" - }, - { ATF_NOFLAGS, 0, offsetof(struct CellInformation_Item_ExtIEs__extensionValue, choice.SubframeAssignment), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_SubframeAssignment, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "SubframeAssignment" - }, - { ATF_NOFLAGS, 0, offsetof(struct CellInformation_Item_ExtIEs__extensionValue, choice.ExtendedULInterferenceOverloadInfo), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ExtendedULInterferenceOverloadInfo, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ExtendedULInterferenceOverloadInfo" - }, - { ATF_NOFLAGS, 0, offsetof(struct CellInformation_Item_ExtIEs__extensionValue, choice.CoMPInformation), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CoMPInformation, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "CoMPInformation" - }, - { ATF_NOFLAGS, 0, offsetof(struct CellInformation_Item_ExtIEs__extensionValue, choice.DynamicDLTransmissionInformation), - -1 /* Ambiguous tag (CHOICE?) */, - 0, - &asn_DEF_DynamicDLTransmissionInformation, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "DynamicDLTransmissionInformation" - }, -}; -static const unsigned asn_MAP_extensionValue_to_canonical_32[] = { 1, 2, 3, 4, 0, 5 }; -static const unsigned asn_MAP_extensionValue_from_canonical_32[] = { 4, 0, 1, 2, 3, 5 }; -static const asn_TYPE_tag2member_t asn_MAP_extensionValue_tag2el_32[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 1 }, /* InvokeIndication */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 2, -1, 0 }, /* SubframeAssignment */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, 0, 1 }, /* ExtendedULInterferenceOverloadInfo */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, -1, 0 }, /* CoMPInformation */ - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 1 }, /* fdd */ - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 5, -1, 0 }, /* naics-active */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 0, 0, 1 }, /* tdd */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 5, -1, 0 }, /* naics-inactive */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 0, 0, 0 } /* abs-inactive */ -}; -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_32 = { - sizeof(struct CellInformation_Item_ExtIEs__extensionValue), - offsetof(struct CellInformation_Item_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct CellInformation_Item_ExtIEs__extensionValue, present), - sizeof(((struct CellInformation_Item_ExtIEs__extensionValue *)0)->present), - asn_MAP_extensionValue_tag2el_32, - 9, /* Count of tags in the map */ - asn_MAP_extensionValue_to_canonical_32, - asn_MAP_extensionValue_from_canonical_32, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_32 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_extensionValue_32, - 6, /* Elements count */ - &asn_SPC_extensionValue_specs_32 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_CellInformation_Item_ExtIEs_29[] = { - { ATF_NOFLAGS, 0, offsetof(struct CellInformation_Item_ExtIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_30, memb_id_constraint_29 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct CellInformation_Item_ExtIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_CellInformation_Item_ExtIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_31, memb_criticality_constraint_29 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct CellInformation_Item_ExtIEs, extensionValue), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_extensionValue_32, - select_CellInformation_Item_ExtIEs_extensionValue_type, - { 0, &asn_PER_memb_extensionValue_constr_32, memb_extensionValue_constraint_29 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_CellInformation_Item_ExtIEs_tags_29[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_CellInformation_Item_ExtIEs_tag2el_29[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* extensionValue */ -}; -asn_SEQUENCE_specifics_t asn_SPC_CellInformation_Item_ExtIEs_specs_29 = { - sizeof(struct CellInformation_Item_ExtIEs), - offsetof(struct CellInformation_Item_ExtIEs, _asn_ctx), - asn_MAP_CellInformation_Item_ExtIEs_tag2el_29, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_CellInformation_Item_ExtIEs = { - "CellInformation-Item-ExtIEs", - "CellInformation-Item-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_CellInformation_Item_ExtIEs_tags_29, - sizeof(asn_DEF_CellInformation_Item_ExtIEs_tags_29) - /sizeof(asn_DEF_CellInformation_Item_ExtIEs_tags_29[0]), /* 1 */ - asn_DEF_CellInformation_Item_ExtIEs_tags_29, /* Same as above */ - sizeof(asn_DEF_CellInformation_Item_ExtIEs_tags_29) - /sizeof(asn_DEF_CellInformation_Item_ExtIEs_tags_29[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_CellInformation_Item_ExtIEs_29, - 3, /* Elements count */ - &asn_SPC_CellInformation_Item_ExtIEs_specs_29 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_extensionValue_36[] = { - { ATF_NOFLAGS, 0, offsetof(struct ServedCellsToModify_Item_ExtIEs__extensionValue, choice.DeactivationIndication), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_DeactivationIndication, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "DeactivationIndication" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_extensionValue_tag2el_36[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 0, 0, 0 } /* DeactivationIndication */ -}; -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_36 = { - sizeof(struct ServedCellsToModify_Item_ExtIEs__extensionValue), - offsetof(struct ServedCellsToModify_Item_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct ServedCellsToModify_Item_ExtIEs__extensionValue, present), - sizeof(((struct ServedCellsToModify_Item_ExtIEs__extensionValue *)0)->present), - asn_MAP_extensionValue_tag2el_36, - 1, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_36 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_extensionValue_36, - 1, /* Elements count */ - &asn_SPC_extensionValue_specs_36 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ServedCellsToModify_Item_ExtIEs_33[] = { - { ATF_NOFLAGS, 0, offsetof(struct ServedCellsToModify_Item_ExtIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_34, memb_id_constraint_33 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct ServedCellsToModify_Item_ExtIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_ServedCellsToModify_Item_ExtIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_35, memb_criticality_constraint_33 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ServedCellsToModify_Item_ExtIEs, extensionValue), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_extensionValue_36, - select_ServedCellsToModify_Item_ExtIEs_extensionValue_type, - { 0, &asn_PER_memb_extensionValue_constr_36, memb_extensionValue_constraint_33 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_ServedCellsToModify_Item_ExtIEs_tags_33[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ServedCellsToModify_Item_ExtIEs_tag2el_33[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* extensionValue */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ServedCellsToModify_Item_ExtIEs_specs_33 = { - sizeof(struct ServedCellsToModify_Item_ExtIEs), - offsetof(struct ServedCellsToModify_Item_ExtIEs, _asn_ctx), - asn_MAP_ServedCellsToModify_Item_ExtIEs_tag2el_33, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ServedCellsToModify_Item_ExtIEs = { - "ServedCellsToModify-Item-ExtIEs", - "ServedCellsToModify-Item-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_ServedCellsToModify_Item_ExtIEs_tags_33, - sizeof(asn_DEF_ServedCellsToModify_Item_ExtIEs_tags_33) - /sizeof(asn_DEF_ServedCellsToModify_Item_ExtIEs_tags_33[0]), /* 1 */ - asn_DEF_ServedCellsToModify_Item_ExtIEs_tags_33, /* Same as above */ - sizeof(asn_DEF_ServedCellsToModify_Item_ExtIEs_tags_33) - /sizeof(asn_DEF_ServedCellsToModify_Item_ExtIEs_tags_33[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ServedCellsToModify_Item_ExtIEs_33, - 3, /* Elements count */ - &asn_SPC_ServedCellsToModify_Item_ExtIEs_specs_33 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_40 = { - sizeof(struct CellToReport_Item_ExtIEs__extensionValue), - offsetof(struct CellToReport_Item_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct CellToReport_Item_ExtIEs__extensionValue, present), - sizeof(((struct CellToReport_Item_ExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_40 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_40 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_CellToReport_Item_ExtIEs_37[] = { - { ATF_NOFLAGS, 0, offsetof(struct CellToReport_Item_ExtIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_38, memb_id_constraint_37 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct CellToReport_Item_ExtIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_39, memb_criticality_constraint_37 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct CellToReport_Item_ExtIEs, extensionValue), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_extensionValue_40, - 0, - { 0, &asn_PER_memb_extensionValue_constr_40, memb_extensionValue_constraint_37 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_CellToReport_Item_ExtIEs_tags_37[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_CellToReport_Item_ExtIEs_tag2el_37[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* extensionValue */ -}; -asn_SEQUENCE_specifics_t asn_SPC_CellToReport_Item_ExtIEs_specs_37 = { - sizeof(struct CellToReport_Item_ExtIEs), - offsetof(struct CellToReport_Item_ExtIEs, _asn_ctx), - asn_MAP_CellToReport_Item_ExtIEs_tag2el_37, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_CellToReport_Item_ExtIEs = { - "CellToReport-Item-ExtIEs", - "CellToReport-Item-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_CellToReport_Item_ExtIEs_tags_37, - sizeof(asn_DEF_CellToReport_Item_ExtIEs_tags_37) - /sizeof(asn_DEF_CellToReport_Item_ExtIEs_tags_37[0]), /* 1 */ - asn_DEF_CellToReport_Item_ExtIEs_tags_37, /* Same as above */ - sizeof(asn_DEF_CellToReport_Item_ExtIEs_tags_37) - /sizeof(asn_DEF_CellToReport_Item_ExtIEs_tags_37[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_CellToReport_Item_ExtIEs_37, - 3, /* Elements count */ - &asn_SPC_CellToReport_Item_ExtIEs_specs_37 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_44 = { - sizeof(struct MeasurementInitiationResult_Item_ExtIEs__extensionValue), - offsetof(struct MeasurementInitiationResult_Item_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct MeasurementInitiationResult_Item_ExtIEs__extensionValue, present), - sizeof(((struct MeasurementInitiationResult_Item_ExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_44 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_44 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_MeasurementInitiationResult_Item_ExtIEs_41[] = { - { ATF_NOFLAGS, 0, offsetof(struct MeasurementInitiationResult_Item_ExtIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_42, memb_id_constraint_41 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct MeasurementInitiationResult_Item_ExtIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_43, memb_criticality_constraint_41 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct MeasurementInitiationResult_Item_ExtIEs, extensionValue), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_extensionValue_44, - 0, - { 0, &asn_PER_memb_extensionValue_constr_44, memb_extensionValue_constraint_41 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_MeasurementInitiationResult_Item_ExtIEs_tags_41[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_MeasurementInitiationResult_Item_ExtIEs_tag2el_41[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* extensionValue */ -}; -asn_SEQUENCE_specifics_t asn_SPC_MeasurementInitiationResult_Item_ExtIEs_specs_41 = { - sizeof(struct MeasurementInitiationResult_Item_ExtIEs), - offsetof(struct MeasurementInitiationResult_Item_ExtIEs, _asn_ctx), - asn_MAP_MeasurementInitiationResult_Item_ExtIEs_tag2el_41, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_MeasurementInitiationResult_Item_ExtIEs = { - "MeasurementInitiationResult-Item-ExtIEs", - "MeasurementInitiationResult-Item-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_MeasurementInitiationResult_Item_ExtIEs_tags_41, - sizeof(asn_DEF_MeasurementInitiationResult_Item_ExtIEs_tags_41) - /sizeof(asn_DEF_MeasurementInitiationResult_Item_ExtIEs_tags_41[0]), /* 1 */ - asn_DEF_MeasurementInitiationResult_Item_ExtIEs_tags_41, /* Same as above */ - sizeof(asn_DEF_MeasurementInitiationResult_Item_ExtIEs_tags_41) - /sizeof(asn_DEF_MeasurementInitiationResult_Item_ExtIEs_tags_41[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_MeasurementInitiationResult_Item_ExtIEs_41, - 3, /* Elements count */ - &asn_SPC_MeasurementInitiationResult_Item_ExtIEs_specs_41 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_48 = { - sizeof(struct MeasurementFailureCause_Item_ExtIEs__extensionValue), - offsetof(struct MeasurementFailureCause_Item_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct MeasurementFailureCause_Item_ExtIEs__extensionValue, present), - sizeof(((struct MeasurementFailureCause_Item_ExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_48 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_48 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_MeasurementFailureCause_Item_ExtIEs_45[] = { - { ATF_NOFLAGS, 0, offsetof(struct MeasurementFailureCause_Item_ExtIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_46, memb_id_constraint_45 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct MeasurementFailureCause_Item_ExtIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_47, memb_criticality_constraint_45 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct MeasurementFailureCause_Item_ExtIEs, extensionValue), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_extensionValue_48, - 0, - { 0, &asn_PER_memb_extensionValue_constr_48, memb_extensionValue_constraint_45 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_MeasurementFailureCause_Item_ExtIEs_tags_45[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_MeasurementFailureCause_Item_ExtIEs_tag2el_45[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* extensionValue */ -}; -asn_SEQUENCE_specifics_t asn_SPC_MeasurementFailureCause_Item_ExtIEs_specs_45 = { - sizeof(struct MeasurementFailureCause_Item_ExtIEs), - offsetof(struct MeasurementFailureCause_Item_ExtIEs, _asn_ctx), - asn_MAP_MeasurementFailureCause_Item_ExtIEs_tag2el_45, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_MeasurementFailureCause_Item_ExtIEs = { - "MeasurementFailureCause-Item-ExtIEs", - "MeasurementFailureCause-Item-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_MeasurementFailureCause_Item_ExtIEs_tags_45, - sizeof(asn_DEF_MeasurementFailureCause_Item_ExtIEs_tags_45) - /sizeof(asn_DEF_MeasurementFailureCause_Item_ExtIEs_tags_45[0]), /* 1 */ - asn_DEF_MeasurementFailureCause_Item_ExtIEs_tags_45, /* Same as above */ - sizeof(asn_DEF_MeasurementFailureCause_Item_ExtIEs_tags_45) - /sizeof(asn_DEF_MeasurementFailureCause_Item_ExtIEs_tags_45[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_MeasurementFailureCause_Item_ExtIEs_45, - 3, /* Elements count */ - &asn_SPC_MeasurementFailureCause_Item_ExtIEs_specs_45 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_52 = { - sizeof(struct CompleteFailureCauseInformation_Item_ExtIEs__extensionValue), - offsetof(struct CompleteFailureCauseInformation_Item_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct CompleteFailureCauseInformation_Item_ExtIEs__extensionValue, present), - sizeof(((struct CompleteFailureCauseInformation_Item_ExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_52 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_52 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_CompleteFailureCauseInformation_Item_ExtIEs_49[] = { - { ATF_NOFLAGS, 0, offsetof(struct CompleteFailureCauseInformation_Item_ExtIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_50, memb_id_constraint_49 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct CompleteFailureCauseInformation_Item_ExtIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_51, memb_criticality_constraint_49 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct CompleteFailureCauseInformation_Item_ExtIEs, extensionValue), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_extensionValue_52, - 0, - { 0, &asn_PER_memb_extensionValue_constr_52, memb_extensionValue_constraint_49 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_CompleteFailureCauseInformation_Item_ExtIEs_tags_49[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_CompleteFailureCauseInformation_Item_ExtIEs_tag2el_49[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* extensionValue */ -}; -asn_SEQUENCE_specifics_t asn_SPC_CompleteFailureCauseInformation_Item_ExtIEs_specs_49 = { - sizeof(struct CompleteFailureCauseInformation_Item_ExtIEs), - offsetof(struct CompleteFailureCauseInformation_Item_ExtIEs, _asn_ctx), - asn_MAP_CompleteFailureCauseInformation_Item_ExtIEs_tag2el_49, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_CompleteFailureCauseInformation_Item_ExtIEs = { - "CompleteFailureCauseInformation-Item-ExtIEs", - "CompleteFailureCauseInformation-Item-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_CompleteFailureCauseInformation_Item_ExtIEs_tags_49, - sizeof(asn_DEF_CompleteFailureCauseInformation_Item_ExtIEs_tags_49) - /sizeof(asn_DEF_CompleteFailureCauseInformation_Item_ExtIEs_tags_49[0]), /* 1 */ - asn_DEF_CompleteFailureCauseInformation_Item_ExtIEs_tags_49, /* Same as above */ - sizeof(asn_DEF_CompleteFailureCauseInformation_Item_ExtIEs_tags_49) - /sizeof(asn_DEF_CompleteFailureCauseInformation_Item_ExtIEs_tags_49[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_CompleteFailureCauseInformation_Item_ExtIEs_49, - 3, /* Elements count */ - &asn_SPC_CompleteFailureCauseInformation_Item_ExtIEs_specs_49 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_extensionValue_56[] = { - { ATF_NOFLAGS, 0, offsetof(struct CellMeasurementResult_Item_ExtIEs__extensionValue, choice.CompositeAvailableCapacityGroup), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CompositeAvailableCapacityGroup, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "CompositeAvailableCapacityGroup" - }, - { ATF_NOFLAGS, 0, offsetof(struct CellMeasurementResult_Item_ExtIEs__extensionValue, choice.ABS_Status), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ABS_Status, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ABS-Status" - }, - { ATF_NOFLAGS, 0, offsetof(struct CellMeasurementResult_Item_ExtIEs__extensionValue, choice.RSRPMRList), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RSRPMRList, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RSRPMRList" - }, - { ATF_NOFLAGS, 0, offsetof(struct CellMeasurementResult_Item_ExtIEs__extensionValue, choice.CSIReportList), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CSIReportList, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "CSIReportList" - }, - { ATF_NOFLAGS, 0, offsetof(struct CellMeasurementResult_Item_ExtIEs__extensionValue, choice.CellReportingIndicator), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_CellReportingIndicator, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "CellReportingIndicator" - }, -}; -static const unsigned asn_MAP_extensionValue_to_canonical_56[] = { 4, 0, 1, 2, 3 }; -static const unsigned asn_MAP_extensionValue_from_canonical_56[] = { 1, 2, 3, 4, 0 }; -static const asn_TYPE_tag2member_t asn_MAP_extensionValue_tag2el_56[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 4, 0, 0 }, /* CellReportingIndicator */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 3 }, /* CompositeAvailableCapacityGroup */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 2 }, /* ABS-Status */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -2, 1 }, /* RSRPMRList */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -3, 0 } /* CSIReportList */ -}; -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_56 = { - sizeof(struct CellMeasurementResult_Item_ExtIEs__extensionValue), - offsetof(struct CellMeasurementResult_Item_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct CellMeasurementResult_Item_ExtIEs__extensionValue, present), - sizeof(((struct CellMeasurementResult_Item_ExtIEs__extensionValue *)0)->present), - asn_MAP_extensionValue_tag2el_56, - 5, /* Count of tags in the map */ - asn_MAP_extensionValue_to_canonical_56, - asn_MAP_extensionValue_from_canonical_56, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_56 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_extensionValue_56, - 5, /* Elements count */ - &asn_SPC_extensionValue_specs_56 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_CellMeasurementResult_Item_ExtIEs_53[] = { - { ATF_NOFLAGS, 0, offsetof(struct CellMeasurementResult_Item_ExtIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_54, memb_id_constraint_53 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct CellMeasurementResult_Item_ExtIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_CellMeasurementResult_Item_ExtIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_55, memb_criticality_constraint_53 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct CellMeasurementResult_Item_ExtIEs, extensionValue), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_extensionValue_56, - select_CellMeasurementResult_Item_ExtIEs_extensionValue_type, - { 0, &asn_PER_memb_extensionValue_constr_56, memb_extensionValue_constraint_53 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_CellMeasurementResult_Item_ExtIEs_tags_53[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_CellMeasurementResult_Item_ExtIEs_tag2el_53[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* extensionValue */ -}; -asn_SEQUENCE_specifics_t asn_SPC_CellMeasurementResult_Item_ExtIEs_specs_53 = { - sizeof(struct CellMeasurementResult_Item_ExtIEs), - offsetof(struct CellMeasurementResult_Item_ExtIEs, _asn_ctx), - asn_MAP_CellMeasurementResult_Item_ExtIEs_tag2el_53, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_CellMeasurementResult_Item_ExtIEs = { - "CellMeasurementResult-Item-ExtIEs", - "CellMeasurementResult-Item-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_CellMeasurementResult_Item_ExtIEs_tags_53, - sizeof(asn_DEF_CellMeasurementResult_Item_ExtIEs_tags_53) - /sizeof(asn_DEF_CellMeasurementResult_Item_ExtIEs_tags_53[0]), /* 1 */ - asn_DEF_CellMeasurementResult_Item_ExtIEs_tags_53, /* Same as above */ - sizeof(asn_DEF_CellMeasurementResult_Item_ExtIEs_tags_53) - /sizeof(asn_DEF_CellMeasurementResult_Item_ExtIEs_tags_53[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_CellMeasurementResult_Item_ExtIEs_53, - 3, /* Elements count */ - &asn_SPC_CellMeasurementResult_Item_ExtIEs_specs_53 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_60 = { - sizeof(struct ServedCellsToActivate_Item_ExtIEs__extensionValue), - offsetof(struct ServedCellsToActivate_Item_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct ServedCellsToActivate_Item_ExtIEs__extensionValue, present), - sizeof(((struct ServedCellsToActivate_Item_ExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_60 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_60 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ServedCellsToActivate_Item_ExtIEs_57[] = { - { ATF_NOFLAGS, 0, offsetof(struct ServedCellsToActivate_Item_ExtIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_58, memb_id_constraint_57 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct ServedCellsToActivate_Item_ExtIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_59, memb_criticality_constraint_57 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ServedCellsToActivate_Item_ExtIEs, extensionValue), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_extensionValue_60, - 0, - { 0, &asn_PER_memb_extensionValue_constr_60, memb_extensionValue_constraint_57 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_ServedCellsToActivate_Item_ExtIEs_tags_57[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ServedCellsToActivate_Item_ExtIEs_tag2el_57[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* extensionValue */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ServedCellsToActivate_Item_ExtIEs_specs_57 = { - sizeof(struct ServedCellsToActivate_Item_ExtIEs), - offsetof(struct ServedCellsToActivate_Item_ExtIEs, _asn_ctx), - asn_MAP_ServedCellsToActivate_Item_ExtIEs_tag2el_57, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ServedCellsToActivate_Item_ExtIEs = { - "ServedCellsToActivate-Item-ExtIEs", - "ServedCellsToActivate-Item-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_ServedCellsToActivate_Item_ExtIEs_tags_57, - sizeof(asn_DEF_ServedCellsToActivate_Item_ExtIEs_tags_57) - /sizeof(asn_DEF_ServedCellsToActivate_Item_ExtIEs_tags_57[0]), /* 1 */ - asn_DEF_ServedCellsToActivate_Item_ExtIEs_tags_57, /* Same as above */ - sizeof(asn_DEF_ServedCellsToActivate_Item_ExtIEs_tags_57) - /sizeof(asn_DEF_ServedCellsToActivate_Item_ExtIEs_tags_57[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ServedCellsToActivate_Item_ExtIEs_57, - 3, /* Elements count */ - &asn_SPC_ServedCellsToActivate_Item_ExtIEs_specs_57 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_64 = { - sizeof(struct ActivatedCellList_Item_ExtIEs__extensionValue), - offsetof(struct ActivatedCellList_Item_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct ActivatedCellList_Item_ExtIEs__extensionValue, present), - sizeof(((struct ActivatedCellList_Item_ExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_64 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_64 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ActivatedCellList_Item_ExtIEs_61[] = { - { ATF_NOFLAGS, 0, offsetof(struct ActivatedCellList_Item_ExtIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_62, memb_id_constraint_61 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct ActivatedCellList_Item_ExtIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_63, memb_criticality_constraint_61 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ActivatedCellList_Item_ExtIEs, extensionValue), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_extensionValue_64, - 0, - { 0, &asn_PER_memb_extensionValue_constr_64, memb_extensionValue_constraint_61 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_ActivatedCellList_Item_ExtIEs_tags_61[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ActivatedCellList_Item_ExtIEs_tag2el_61[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* extensionValue */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ActivatedCellList_Item_ExtIEs_specs_61 = { - sizeof(struct ActivatedCellList_Item_ExtIEs), - offsetof(struct ActivatedCellList_Item_ExtIEs, _asn_ctx), - asn_MAP_ActivatedCellList_Item_ExtIEs_tag2el_61, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ActivatedCellList_Item_ExtIEs = { - "ActivatedCellList-Item-ExtIEs", - "ActivatedCellList-Item-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_ActivatedCellList_Item_ExtIEs_tags_61, - sizeof(asn_DEF_ActivatedCellList_Item_ExtIEs_tags_61) - /sizeof(asn_DEF_ActivatedCellList_Item_ExtIEs_tags_61[0]), /* 1 */ - asn_DEF_ActivatedCellList_Item_ExtIEs_tags_61, /* Same as above */ - sizeof(asn_DEF_ActivatedCellList_Item_ExtIEs_tags_61) - /sizeof(asn_DEF_ActivatedCellList_Item_ExtIEs_tags_61[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ActivatedCellList_Item_ExtIEs_61, - 3, /* Elements count */ - &asn_SPC_ActivatedCellList_Item_ExtIEs_specs_61 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_68 = { - sizeof(struct RNL_Header_Item_ExtIEs__extensionValue), - offsetof(struct RNL_Header_Item_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct RNL_Header_Item_ExtIEs__extensionValue, present), - sizeof(((struct RNL_Header_Item_ExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_68 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_68 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_RNL_Header_Item_ExtIEs_65[] = { - { ATF_NOFLAGS, 0, offsetof(struct RNL_Header_Item_ExtIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_66, memb_id_constraint_65 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct RNL_Header_Item_ExtIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_67, memb_criticality_constraint_65 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RNL_Header_Item_ExtIEs, extensionValue), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_extensionValue_68, - 0, - { 0, &asn_PER_memb_extensionValue_constr_68, memb_extensionValue_constraint_65 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_RNL_Header_Item_ExtIEs_tags_65[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RNL_Header_Item_ExtIEs_tag2el_65[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* extensionValue */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RNL_Header_Item_ExtIEs_specs_65 = { - sizeof(struct RNL_Header_Item_ExtIEs), - offsetof(struct RNL_Header_Item_ExtIEs, _asn_ctx), - asn_MAP_RNL_Header_Item_ExtIEs_tag2el_65, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RNL_Header_Item_ExtIEs = { - "RNL-Header-Item-ExtIEs", - "RNL-Header-Item-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_RNL_Header_Item_ExtIEs_tags_65, - sizeof(asn_DEF_RNL_Header_Item_ExtIEs_tags_65) - /sizeof(asn_DEF_RNL_Header_Item_ExtIEs_tags_65[0]), /* 1 */ - asn_DEF_RNL_Header_Item_ExtIEs_tags_65, /* Same as above */ - sizeof(asn_DEF_RNL_Header_Item_ExtIEs_tags_65) - /sizeof(asn_DEF_RNL_Header_Item_ExtIEs_tags_65[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RNL_Header_Item_ExtIEs_65, - 3, /* Elements count */ - &asn_SPC_RNL_Header_Item_ExtIEs_specs_65 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_extensionValue_72[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_Item_SCG_BearerExtIEs__extensionValue, choice.Correlation_ID), - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), - 0, - &asn_DEF_Correlation_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "Correlation-ID" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_extensionValue_tag2el_72[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 0, 0, 0 } /* Correlation-ID */ -}; -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_72 = { - sizeof(struct E_RABs_ToBeAdded_Item_SCG_BearerExtIEs__extensionValue), - offsetof(struct E_RABs_ToBeAdded_Item_SCG_BearerExtIEs__extensionValue, _asn_ctx), - offsetof(struct E_RABs_ToBeAdded_Item_SCG_BearerExtIEs__extensionValue, present), - sizeof(((struct E_RABs_ToBeAdded_Item_SCG_BearerExtIEs__extensionValue *)0)->present), - asn_MAP_extensionValue_tag2el_72, - 1, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_72 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_extensionValue_72, - 1, /* Elements count */ - &asn_SPC_extensionValue_specs_72 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E_RABs_ToBeAdded_Item_SCG_BearerExtIEs_69[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_Item_SCG_BearerExtIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_70, memb_id_constraint_69 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_Item_SCG_BearerExtIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_E_RABs_ToBeAdded_Item_SCG_BearerExtIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_71, memb_criticality_constraint_69 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_Item_SCG_BearerExtIEs, extensionValue), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_extensionValue_72, - select_E_RABs_ToBeAdded_Item_SCG_BearerExtIEs_extensionValue_type, - { 0, &asn_PER_memb_extensionValue_constr_72, memb_extensionValue_constraint_69 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeAdded_Item_SCG_BearerExtIEs_tags_69[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeAdded_Item_SCG_BearerExtIEs_tag2el_69[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* extensionValue */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeAdded_Item_SCG_BearerExtIEs_specs_69 = { - sizeof(struct E_RABs_ToBeAdded_Item_SCG_BearerExtIEs), - offsetof(struct E_RABs_ToBeAdded_Item_SCG_BearerExtIEs, _asn_ctx), - asn_MAP_E_RABs_ToBeAdded_Item_SCG_BearerExtIEs_tag2el_69, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_Item_SCG_BearerExtIEs = { - "E-RABs-ToBeAdded-Item-SCG-BearerExtIEs", - "E-RABs-ToBeAdded-Item-SCG-BearerExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_ToBeAdded_Item_SCG_BearerExtIEs_tags_69, - sizeof(asn_DEF_E_RABs_ToBeAdded_Item_SCG_BearerExtIEs_tags_69) - /sizeof(asn_DEF_E_RABs_ToBeAdded_Item_SCG_BearerExtIEs_tags_69[0]), /* 1 */ - asn_DEF_E_RABs_ToBeAdded_Item_SCG_BearerExtIEs_tags_69, /* Same as above */ - sizeof(asn_DEF_E_RABs_ToBeAdded_Item_SCG_BearerExtIEs_tags_69) - /sizeof(asn_DEF_E_RABs_ToBeAdded_Item_SCG_BearerExtIEs_tags_69[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_ToBeAdded_Item_SCG_BearerExtIEs_69, - 3, /* Elements count */ - &asn_SPC_E_RABs_ToBeAdded_Item_SCG_BearerExtIEs_specs_69 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_76 = { - sizeof(struct E_RABs_ToBeAdded_Item_Split_BearerExtIEs__extensionValue), - offsetof(struct E_RABs_ToBeAdded_Item_Split_BearerExtIEs__extensionValue, _asn_ctx), - offsetof(struct E_RABs_ToBeAdded_Item_Split_BearerExtIEs__extensionValue, present), - sizeof(((struct E_RABs_ToBeAdded_Item_Split_BearerExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_76 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_76 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E_RABs_ToBeAdded_Item_Split_BearerExtIEs_73[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_Item_Split_BearerExtIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_74, memb_id_constraint_73 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_Item_Split_BearerExtIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_75, memb_criticality_constraint_73 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_Item_Split_BearerExtIEs, extensionValue), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_extensionValue_76, - 0, - { 0, &asn_PER_memb_extensionValue_constr_76, memb_extensionValue_constraint_73 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeAdded_Item_Split_BearerExtIEs_tags_73[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeAdded_Item_Split_BearerExtIEs_tag2el_73[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* extensionValue */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeAdded_Item_Split_BearerExtIEs_specs_73 = { - sizeof(struct E_RABs_ToBeAdded_Item_Split_BearerExtIEs), - offsetof(struct E_RABs_ToBeAdded_Item_Split_BearerExtIEs, _asn_ctx), - asn_MAP_E_RABs_ToBeAdded_Item_Split_BearerExtIEs_tag2el_73, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_Item_Split_BearerExtIEs = { - "E-RABs-ToBeAdded-Item-Split-BearerExtIEs", - "E-RABs-ToBeAdded-Item-Split-BearerExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_ToBeAdded_Item_Split_BearerExtIEs_tags_73, - sizeof(asn_DEF_E_RABs_ToBeAdded_Item_Split_BearerExtIEs_tags_73) - /sizeof(asn_DEF_E_RABs_ToBeAdded_Item_Split_BearerExtIEs_tags_73[0]), /* 1 */ - asn_DEF_E_RABs_ToBeAdded_Item_Split_BearerExtIEs_tags_73, /* Same as above */ - sizeof(asn_DEF_E_RABs_ToBeAdded_Item_Split_BearerExtIEs_tags_73) - /sizeof(asn_DEF_E_RABs_ToBeAdded_Item_Split_BearerExtIEs_tags_73[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_ToBeAdded_Item_Split_BearerExtIEs_73, - 3, /* Elements count */ - &asn_SPC_E_RABs_ToBeAdded_Item_Split_BearerExtIEs_specs_73 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_80 = { - sizeof(struct E_RABs_Admitted_ToBeAdded_Item_SCG_BearerExtIEs__extensionValue), - offsetof(struct E_RABs_Admitted_ToBeAdded_Item_SCG_BearerExtIEs__extensionValue, _asn_ctx), - offsetof(struct E_RABs_Admitted_ToBeAdded_Item_SCG_BearerExtIEs__extensionValue, present), - sizeof(((struct E_RABs_Admitted_ToBeAdded_Item_SCG_BearerExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_80 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_80 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeAdded_Item_SCG_BearerExtIEs_77[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_Item_SCG_BearerExtIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_78, memb_id_constraint_77 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_Item_SCG_BearerExtIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_79, memb_criticality_constraint_77 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_Item_SCG_BearerExtIEs, extensionValue), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_extensionValue_80, - 0, - { 0, &asn_PER_memb_extensionValue_constr_80, memb_extensionValue_constraint_77 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_Admitted_ToBeAdded_Item_SCG_BearerExtIEs_tags_77[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_Admitted_ToBeAdded_Item_SCG_BearerExtIEs_tag2el_77[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* extensionValue */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeAdded_Item_SCG_BearerExtIEs_specs_77 = { - sizeof(struct E_RABs_Admitted_ToBeAdded_Item_SCG_BearerExtIEs), - offsetof(struct E_RABs_Admitted_ToBeAdded_Item_SCG_BearerExtIEs, _asn_ctx), - asn_MAP_E_RABs_Admitted_ToBeAdded_Item_SCG_BearerExtIEs_tag2el_77, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeAdded_Item_SCG_BearerExtIEs = { - "E-RABs-Admitted-ToBeAdded-Item-SCG-BearerExtIEs", - "E-RABs-Admitted-ToBeAdded-Item-SCG-BearerExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_Admitted_ToBeAdded_Item_SCG_BearerExtIEs_tags_77, - sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_Item_SCG_BearerExtIEs_tags_77) - /sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_Item_SCG_BearerExtIEs_tags_77[0]), /* 1 */ - asn_DEF_E_RABs_Admitted_ToBeAdded_Item_SCG_BearerExtIEs_tags_77, /* Same as above */ - sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_Item_SCG_BearerExtIEs_tags_77) - /sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_Item_SCG_BearerExtIEs_tags_77[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_Admitted_ToBeAdded_Item_SCG_BearerExtIEs_77, - 3, /* Elements count */ - &asn_SPC_E_RABs_Admitted_ToBeAdded_Item_SCG_BearerExtIEs_specs_77 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_84 = { - sizeof(struct E_RABs_Admitted_ToBeAdded_Item_Split_BearerExtIEs__extensionValue), - offsetof(struct E_RABs_Admitted_ToBeAdded_Item_Split_BearerExtIEs__extensionValue, _asn_ctx), - offsetof(struct E_RABs_Admitted_ToBeAdded_Item_Split_BearerExtIEs__extensionValue, present), - sizeof(((struct E_RABs_Admitted_ToBeAdded_Item_Split_BearerExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_84 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_84 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeAdded_Item_Split_BearerExtIEs_81[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_Item_Split_BearerExtIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_82, memb_id_constraint_81 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_Item_Split_BearerExtIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_83, memb_criticality_constraint_81 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_Item_Split_BearerExtIEs, extensionValue), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_extensionValue_84, - 0, - { 0, &asn_PER_memb_extensionValue_constr_84, memb_extensionValue_constraint_81 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_Admitted_ToBeAdded_Item_Split_BearerExtIEs_tags_81[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_Admitted_ToBeAdded_Item_Split_BearerExtIEs_tag2el_81[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* extensionValue */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeAdded_Item_Split_BearerExtIEs_specs_81 = { - sizeof(struct E_RABs_Admitted_ToBeAdded_Item_Split_BearerExtIEs), - offsetof(struct E_RABs_Admitted_ToBeAdded_Item_Split_BearerExtIEs, _asn_ctx), - asn_MAP_E_RABs_Admitted_ToBeAdded_Item_Split_BearerExtIEs_tag2el_81, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeAdded_Item_Split_BearerExtIEs = { - "E-RABs-Admitted-ToBeAdded-Item-Split-BearerExtIEs", - "E-RABs-Admitted-ToBeAdded-Item-Split-BearerExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_Admitted_ToBeAdded_Item_Split_BearerExtIEs_tags_81, - sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_Item_Split_BearerExtIEs_tags_81) - /sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_Item_Split_BearerExtIEs_tags_81[0]), /* 1 */ - asn_DEF_E_RABs_Admitted_ToBeAdded_Item_Split_BearerExtIEs_tags_81, /* Same as above */ - sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_Item_Split_BearerExtIEs_tags_81) - /sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_Item_Split_BearerExtIEs_tags_81[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_Admitted_ToBeAdded_Item_Split_BearerExtIEs_81, - 3, /* Elements count */ - &asn_SPC_E_RABs_Admitted_ToBeAdded_Item_Split_BearerExtIEs_specs_81 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_88 = { - sizeof(struct ResponseInformationSeNBReconfComp_SuccessItemExtIEs__extensionValue), - offsetof(struct ResponseInformationSeNBReconfComp_SuccessItemExtIEs__extensionValue, _asn_ctx), - offsetof(struct ResponseInformationSeNBReconfComp_SuccessItemExtIEs__extensionValue, present), - sizeof(((struct ResponseInformationSeNBReconfComp_SuccessItemExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_88 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_88 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ResponseInformationSeNBReconfComp_SuccessItemExtIEs_85[] = { - { ATF_NOFLAGS, 0, offsetof(struct ResponseInformationSeNBReconfComp_SuccessItemExtIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_86, memb_id_constraint_85 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct ResponseInformationSeNBReconfComp_SuccessItemExtIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_87, memb_criticality_constraint_85 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ResponseInformationSeNBReconfComp_SuccessItemExtIEs, extensionValue), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_extensionValue_88, - 0, - { 0, &asn_PER_memb_extensionValue_constr_88, memb_extensionValue_constraint_85 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_ResponseInformationSeNBReconfComp_SuccessItemExtIEs_tags_85[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ResponseInformationSeNBReconfComp_SuccessItemExtIEs_tag2el_85[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* extensionValue */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ResponseInformationSeNBReconfComp_SuccessItemExtIEs_specs_85 = { - sizeof(struct ResponseInformationSeNBReconfComp_SuccessItemExtIEs), - offsetof(struct ResponseInformationSeNBReconfComp_SuccessItemExtIEs, _asn_ctx), - asn_MAP_ResponseInformationSeNBReconfComp_SuccessItemExtIEs_tag2el_85, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ResponseInformationSeNBReconfComp_SuccessItemExtIEs = { - "ResponseInformationSeNBReconfComp-SuccessItemExtIEs", - "ResponseInformationSeNBReconfComp-SuccessItemExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_ResponseInformationSeNBReconfComp_SuccessItemExtIEs_tags_85, - sizeof(asn_DEF_ResponseInformationSeNBReconfComp_SuccessItemExtIEs_tags_85) - /sizeof(asn_DEF_ResponseInformationSeNBReconfComp_SuccessItemExtIEs_tags_85[0]), /* 1 */ - asn_DEF_ResponseInformationSeNBReconfComp_SuccessItemExtIEs_tags_85, /* Same as above */ - sizeof(asn_DEF_ResponseInformationSeNBReconfComp_SuccessItemExtIEs_tags_85) - /sizeof(asn_DEF_ResponseInformationSeNBReconfComp_SuccessItemExtIEs_tags_85[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ResponseInformationSeNBReconfComp_SuccessItemExtIEs_85, - 3, /* Elements count */ - &asn_SPC_ResponseInformationSeNBReconfComp_SuccessItemExtIEs_specs_85 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_92 = { - sizeof(struct ResponseInformationSeNBReconfComp_RejectByMeNBItemExtIEs__extensionValue), - offsetof(struct ResponseInformationSeNBReconfComp_RejectByMeNBItemExtIEs__extensionValue, _asn_ctx), - offsetof(struct ResponseInformationSeNBReconfComp_RejectByMeNBItemExtIEs__extensionValue, present), - sizeof(((struct ResponseInformationSeNBReconfComp_RejectByMeNBItemExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_92 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_92 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ResponseInformationSeNBReconfComp_RejectByMeNBItemExtIEs_89[] = { - { ATF_NOFLAGS, 0, offsetof(struct ResponseInformationSeNBReconfComp_RejectByMeNBItemExtIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_90, memb_id_constraint_89 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct ResponseInformationSeNBReconfComp_RejectByMeNBItemExtIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_91, memb_criticality_constraint_89 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ResponseInformationSeNBReconfComp_RejectByMeNBItemExtIEs, extensionValue), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_extensionValue_92, - 0, - { 0, &asn_PER_memb_extensionValue_constr_92, memb_extensionValue_constraint_89 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_ResponseInformationSeNBReconfComp_RejectByMeNBItemExtIEs_tags_89[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ResponseInformationSeNBReconfComp_RejectByMeNBItemExtIEs_tag2el_89[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* extensionValue */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ResponseInformationSeNBReconfComp_RejectByMeNBItemExtIEs_specs_89 = { - sizeof(struct ResponseInformationSeNBReconfComp_RejectByMeNBItemExtIEs), - offsetof(struct ResponseInformationSeNBReconfComp_RejectByMeNBItemExtIEs, _asn_ctx), - asn_MAP_ResponseInformationSeNBReconfComp_RejectByMeNBItemExtIEs_tag2el_89, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ResponseInformationSeNBReconfComp_RejectByMeNBItemExtIEs = { - "ResponseInformationSeNBReconfComp-RejectByMeNBItemExtIEs", - "ResponseInformationSeNBReconfComp-RejectByMeNBItemExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_ResponseInformationSeNBReconfComp_RejectByMeNBItemExtIEs_tags_89, - sizeof(asn_DEF_ResponseInformationSeNBReconfComp_RejectByMeNBItemExtIEs_tags_89) - /sizeof(asn_DEF_ResponseInformationSeNBReconfComp_RejectByMeNBItemExtIEs_tags_89[0]), /* 1 */ - asn_DEF_ResponseInformationSeNBReconfComp_RejectByMeNBItemExtIEs_tags_89, /* Same as above */ - sizeof(asn_DEF_ResponseInformationSeNBReconfComp_RejectByMeNBItemExtIEs_tags_89) - /sizeof(asn_DEF_ResponseInformationSeNBReconfComp_RejectByMeNBItemExtIEs_tags_89[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ResponseInformationSeNBReconfComp_RejectByMeNBItemExtIEs_89, - 3, /* Elements count */ - &asn_SPC_ResponseInformationSeNBReconfComp_RejectByMeNBItemExtIEs_specs_89 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_96 = { - sizeof(struct UE_ContextInformationSeNBModReqExtIEs__extensionValue), - offsetof(struct UE_ContextInformationSeNBModReqExtIEs__extensionValue, _asn_ctx), - offsetof(struct UE_ContextInformationSeNBModReqExtIEs__extensionValue, present), - sizeof(((struct UE_ContextInformationSeNBModReqExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_96 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_96 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_UE_ContextInformationSeNBModReqExtIEs_93[] = { - { ATF_NOFLAGS, 0, offsetof(struct UE_ContextInformationSeNBModReqExtIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_94, memb_id_constraint_93 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct UE_ContextInformationSeNBModReqExtIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_95, memb_criticality_constraint_93 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct UE_ContextInformationSeNBModReqExtIEs, extensionValue), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_extensionValue_96, - 0, - { 0, &asn_PER_memb_extensionValue_constr_96, memb_extensionValue_constraint_93 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_UE_ContextInformationSeNBModReqExtIEs_tags_93[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_UE_ContextInformationSeNBModReqExtIEs_tag2el_93[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* extensionValue */ -}; -asn_SEQUENCE_specifics_t asn_SPC_UE_ContextInformationSeNBModReqExtIEs_specs_93 = { - sizeof(struct UE_ContextInformationSeNBModReqExtIEs), - offsetof(struct UE_ContextInformationSeNBModReqExtIEs, _asn_ctx), - asn_MAP_UE_ContextInformationSeNBModReqExtIEs_tag2el_93, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_UE_ContextInformationSeNBModReqExtIEs = { - "UE-ContextInformationSeNBModReqExtIEs", - "UE-ContextInformationSeNBModReqExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_UE_ContextInformationSeNBModReqExtIEs_tags_93, - sizeof(asn_DEF_UE_ContextInformationSeNBModReqExtIEs_tags_93) - /sizeof(asn_DEF_UE_ContextInformationSeNBModReqExtIEs_tags_93[0]), /* 1 */ - asn_DEF_UE_ContextInformationSeNBModReqExtIEs_tags_93, /* Same as above */ - sizeof(asn_DEF_UE_ContextInformationSeNBModReqExtIEs_tags_93) - /sizeof(asn_DEF_UE_ContextInformationSeNBModReqExtIEs_tags_93[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_UE_ContextInformationSeNBModReqExtIEs_93, - 3, /* Elements count */ - &asn_SPC_UE_ContextInformationSeNBModReqExtIEs_specs_93 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_extensionValue_100[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_ModReqItem_SCG_BearerExtIEs__extensionValue, choice.Correlation_ID), - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), - 0, - &asn_DEF_Correlation_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "Correlation-ID" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_extensionValue_tag2el_100[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 0, 0, 0 } /* Correlation-ID */ -}; -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_100 = { - sizeof(struct E_RABs_ToBeAdded_ModReqItem_SCG_BearerExtIEs__extensionValue), - offsetof(struct E_RABs_ToBeAdded_ModReqItem_SCG_BearerExtIEs__extensionValue, _asn_ctx), - offsetof(struct E_RABs_ToBeAdded_ModReqItem_SCG_BearerExtIEs__extensionValue, present), - sizeof(((struct E_RABs_ToBeAdded_ModReqItem_SCG_BearerExtIEs__extensionValue *)0)->present), - asn_MAP_extensionValue_tag2el_100, - 1, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_100 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_extensionValue_100, - 1, /* Elements count */ - &asn_SPC_extensionValue_specs_100 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E_RABs_ToBeAdded_ModReqItem_SCG_BearerExtIEs_97[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_ModReqItem_SCG_BearerExtIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_98, memb_id_constraint_97 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_ModReqItem_SCG_BearerExtIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_E_RABs_ToBeAdded_ModReqItem_SCG_BearerExtIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_99, memb_criticality_constraint_97 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_ModReqItem_SCG_BearerExtIEs, extensionValue), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_extensionValue_100, - select_E_RABs_ToBeAdded_ModReqItem_SCG_BearerExtIEs_extensionValue_type, - { 0, &asn_PER_memb_extensionValue_constr_100, memb_extensionValue_constraint_97 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeAdded_ModReqItem_SCG_BearerExtIEs_tags_97[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeAdded_ModReqItem_SCG_BearerExtIEs_tag2el_97[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* extensionValue */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeAdded_ModReqItem_SCG_BearerExtIEs_specs_97 = { - sizeof(struct E_RABs_ToBeAdded_ModReqItem_SCG_BearerExtIEs), - offsetof(struct E_RABs_ToBeAdded_ModReqItem_SCG_BearerExtIEs, _asn_ctx), - asn_MAP_E_RABs_ToBeAdded_ModReqItem_SCG_BearerExtIEs_tag2el_97, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_ModReqItem_SCG_BearerExtIEs = { - "E-RABs-ToBeAdded-ModReqItem-SCG-BearerExtIEs", - "E-RABs-ToBeAdded-ModReqItem-SCG-BearerExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_ToBeAdded_ModReqItem_SCG_BearerExtIEs_tags_97, - sizeof(asn_DEF_E_RABs_ToBeAdded_ModReqItem_SCG_BearerExtIEs_tags_97) - /sizeof(asn_DEF_E_RABs_ToBeAdded_ModReqItem_SCG_BearerExtIEs_tags_97[0]), /* 1 */ - asn_DEF_E_RABs_ToBeAdded_ModReqItem_SCG_BearerExtIEs_tags_97, /* Same as above */ - sizeof(asn_DEF_E_RABs_ToBeAdded_ModReqItem_SCG_BearerExtIEs_tags_97) - /sizeof(asn_DEF_E_RABs_ToBeAdded_ModReqItem_SCG_BearerExtIEs_tags_97[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_ToBeAdded_ModReqItem_SCG_BearerExtIEs_97, - 3, /* Elements count */ - &asn_SPC_E_RABs_ToBeAdded_ModReqItem_SCG_BearerExtIEs_specs_97 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_104 = { - sizeof(struct E_RABs_ToBeAdded_ModReqItem_Split_BearerExtIEs__extensionValue), - offsetof(struct E_RABs_ToBeAdded_ModReqItem_Split_BearerExtIEs__extensionValue, _asn_ctx), - offsetof(struct E_RABs_ToBeAdded_ModReqItem_Split_BearerExtIEs__extensionValue, present), - sizeof(((struct E_RABs_ToBeAdded_ModReqItem_Split_BearerExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_104 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_104 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E_RABs_ToBeAdded_ModReqItem_Split_BearerExtIEs_101[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_ModReqItem_Split_BearerExtIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_102, memb_id_constraint_101 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_ModReqItem_Split_BearerExtIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_103, memb_criticality_constraint_101 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_ModReqItem_Split_BearerExtIEs, extensionValue), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_extensionValue_104, - 0, - { 0, &asn_PER_memb_extensionValue_constr_104, memb_extensionValue_constraint_101 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeAdded_ModReqItem_Split_BearerExtIEs_tags_101[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeAdded_ModReqItem_Split_BearerExtIEs_tag2el_101[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* extensionValue */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeAdded_ModReqItem_Split_BearerExtIEs_specs_101 = { - sizeof(struct E_RABs_ToBeAdded_ModReqItem_Split_BearerExtIEs), - offsetof(struct E_RABs_ToBeAdded_ModReqItem_Split_BearerExtIEs, _asn_ctx), - asn_MAP_E_RABs_ToBeAdded_ModReqItem_Split_BearerExtIEs_tag2el_101, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_ModReqItem_Split_BearerExtIEs = { - "E-RABs-ToBeAdded-ModReqItem-Split-BearerExtIEs", - "E-RABs-ToBeAdded-ModReqItem-Split-BearerExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_ToBeAdded_ModReqItem_Split_BearerExtIEs_tags_101, - sizeof(asn_DEF_E_RABs_ToBeAdded_ModReqItem_Split_BearerExtIEs_tags_101) - /sizeof(asn_DEF_E_RABs_ToBeAdded_ModReqItem_Split_BearerExtIEs_tags_101[0]), /* 1 */ - asn_DEF_E_RABs_ToBeAdded_ModReqItem_Split_BearerExtIEs_tags_101, /* Same as above */ - sizeof(asn_DEF_E_RABs_ToBeAdded_ModReqItem_Split_BearerExtIEs_tags_101) - /sizeof(asn_DEF_E_RABs_ToBeAdded_ModReqItem_Split_BearerExtIEs_tags_101[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_ToBeAdded_ModReqItem_Split_BearerExtIEs_101, - 3, /* Elements count */ - &asn_SPC_E_RABs_ToBeAdded_ModReqItem_Split_BearerExtIEs_specs_101 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_108 = { - sizeof(struct E_RABs_ToBeModified_ModReqItem_SCG_BearerExtIEs__extensionValue), - offsetof(struct E_RABs_ToBeModified_ModReqItem_SCG_BearerExtIEs__extensionValue, _asn_ctx), - offsetof(struct E_RABs_ToBeModified_ModReqItem_SCG_BearerExtIEs__extensionValue, present), - sizeof(((struct E_RABs_ToBeModified_ModReqItem_SCG_BearerExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_108 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_108 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E_RABs_ToBeModified_ModReqItem_SCG_BearerExtIEs_105[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeModified_ModReqItem_SCG_BearerExtIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_106, memb_id_constraint_105 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeModified_ModReqItem_SCG_BearerExtIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_107, memb_criticality_constraint_105 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeModified_ModReqItem_SCG_BearerExtIEs, extensionValue), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_extensionValue_108, - 0, - { 0, &asn_PER_memb_extensionValue_constr_108, memb_extensionValue_constraint_105 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeModified_ModReqItem_SCG_BearerExtIEs_tags_105[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeModified_ModReqItem_SCG_BearerExtIEs_tag2el_105[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* extensionValue */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeModified_ModReqItem_SCG_BearerExtIEs_specs_105 = { - sizeof(struct E_RABs_ToBeModified_ModReqItem_SCG_BearerExtIEs), - offsetof(struct E_RABs_ToBeModified_ModReqItem_SCG_BearerExtIEs, _asn_ctx), - asn_MAP_E_RABs_ToBeModified_ModReqItem_SCG_BearerExtIEs_tag2el_105, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeModified_ModReqItem_SCG_BearerExtIEs = { - "E-RABs-ToBeModified-ModReqItem-SCG-BearerExtIEs", - "E-RABs-ToBeModified-ModReqItem-SCG-BearerExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_ToBeModified_ModReqItem_SCG_BearerExtIEs_tags_105, - sizeof(asn_DEF_E_RABs_ToBeModified_ModReqItem_SCG_BearerExtIEs_tags_105) - /sizeof(asn_DEF_E_RABs_ToBeModified_ModReqItem_SCG_BearerExtIEs_tags_105[0]), /* 1 */ - asn_DEF_E_RABs_ToBeModified_ModReqItem_SCG_BearerExtIEs_tags_105, /* Same as above */ - sizeof(asn_DEF_E_RABs_ToBeModified_ModReqItem_SCG_BearerExtIEs_tags_105) - /sizeof(asn_DEF_E_RABs_ToBeModified_ModReqItem_SCG_BearerExtIEs_tags_105[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_ToBeModified_ModReqItem_SCG_BearerExtIEs_105, - 3, /* Elements count */ - &asn_SPC_E_RABs_ToBeModified_ModReqItem_SCG_BearerExtIEs_specs_105 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_112 = { - sizeof(struct E_RABs_ToBeModified_ModReqItem_Split_BearerExtIEs__extensionValue), - offsetof(struct E_RABs_ToBeModified_ModReqItem_Split_BearerExtIEs__extensionValue, _asn_ctx), - offsetof(struct E_RABs_ToBeModified_ModReqItem_Split_BearerExtIEs__extensionValue, present), - sizeof(((struct E_RABs_ToBeModified_ModReqItem_Split_BearerExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_112 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_112 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E_RABs_ToBeModified_ModReqItem_Split_BearerExtIEs_109[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeModified_ModReqItem_Split_BearerExtIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_110, memb_id_constraint_109 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeModified_ModReqItem_Split_BearerExtIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_111, memb_criticality_constraint_109 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeModified_ModReqItem_Split_BearerExtIEs, extensionValue), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_extensionValue_112, - 0, - { 0, &asn_PER_memb_extensionValue_constr_112, memb_extensionValue_constraint_109 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeModified_ModReqItem_Split_BearerExtIEs_tags_109[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeModified_ModReqItem_Split_BearerExtIEs_tag2el_109[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* extensionValue */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeModified_ModReqItem_Split_BearerExtIEs_specs_109 = { - sizeof(struct E_RABs_ToBeModified_ModReqItem_Split_BearerExtIEs), - offsetof(struct E_RABs_ToBeModified_ModReqItem_Split_BearerExtIEs, _asn_ctx), - asn_MAP_E_RABs_ToBeModified_ModReqItem_Split_BearerExtIEs_tag2el_109, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeModified_ModReqItem_Split_BearerExtIEs = { - "E-RABs-ToBeModified-ModReqItem-Split-BearerExtIEs", - "E-RABs-ToBeModified-ModReqItem-Split-BearerExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_ToBeModified_ModReqItem_Split_BearerExtIEs_tags_109, - sizeof(asn_DEF_E_RABs_ToBeModified_ModReqItem_Split_BearerExtIEs_tags_109) - /sizeof(asn_DEF_E_RABs_ToBeModified_ModReqItem_Split_BearerExtIEs_tags_109[0]), /* 1 */ - asn_DEF_E_RABs_ToBeModified_ModReqItem_Split_BearerExtIEs_tags_109, /* Same as above */ - sizeof(asn_DEF_E_RABs_ToBeModified_ModReqItem_Split_BearerExtIEs_tags_109) - /sizeof(asn_DEF_E_RABs_ToBeModified_ModReqItem_Split_BearerExtIEs_tags_109[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_ToBeModified_ModReqItem_Split_BearerExtIEs_109, - 3, /* Elements count */ - &asn_SPC_E_RABs_ToBeModified_ModReqItem_Split_BearerExtIEs_specs_109 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_116 = { - sizeof(struct E_RABs_ToBeReleased_ModReqItem_SCG_BearerExtIEs__extensionValue), - offsetof(struct E_RABs_ToBeReleased_ModReqItem_SCG_BearerExtIEs__extensionValue, _asn_ctx), - offsetof(struct E_RABs_ToBeReleased_ModReqItem_SCG_BearerExtIEs__extensionValue, present), - sizeof(((struct E_RABs_ToBeReleased_ModReqItem_SCG_BearerExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_116 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_116 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_ModReqItem_SCG_BearerExtIEs_113[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_ModReqItem_SCG_BearerExtIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_114, memb_id_constraint_113 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_ModReqItem_SCG_BearerExtIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_115, memb_criticality_constraint_113 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_ModReqItem_SCG_BearerExtIEs, extensionValue), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_extensionValue_116, - 0, - { 0, &asn_PER_memb_extensionValue_constr_116, memb_extensionValue_constraint_113 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeReleased_ModReqItem_SCG_BearerExtIEs_tags_113[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeReleased_ModReqItem_SCG_BearerExtIEs_tag2el_113[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* extensionValue */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_ModReqItem_SCG_BearerExtIEs_specs_113 = { - sizeof(struct E_RABs_ToBeReleased_ModReqItem_SCG_BearerExtIEs), - offsetof(struct E_RABs_ToBeReleased_ModReqItem_SCG_BearerExtIEs, _asn_ctx), - asn_MAP_E_RABs_ToBeReleased_ModReqItem_SCG_BearerExtIEs_tag2el_113, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_ModReqItem_SCG_BearerExtIEs = { - "E-RABs-ToBeReleased-ModReqItem-SCG-BearerExtIEs", - "E-RABs-ToBeReleased-ModReqItem-SCG-BearerExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_ToBeReleased_ModReqItem_SCG_BearerExtIEs_tags_113, - sizeof(asn_DEF_E_RABs_ToBeReleased_ModReqItem_SCG_BearerExtIEs_tags_113) - /sizeof(asn_DEF_E_RABs_ToBeReleased_ModReqItem_SCG_BearerExtIEs_tags_113[0]), /* 1 */ - asn_DEF_E_RABs_ToBeReleased_ModReqItem_SCG_BearerExtIEs_tags_113, /* Same as above */ - sizeof(asn_DEF_E_RABs_ToBeReleased_ModReqItem_SCG_BearerExtIEs_tags_113) - /sizeof(asn_DEF_E_RABs_ToBeReleased_ModReqItem_SCG_BearerExtIEs_tags_113[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_ToBeReleased_ModReqItem_SCG_BearerExtIEs_113, - 3, /* Elements count */ - &asn_SPC_E_RABs_ToBeReleased_ModReqItem_SCG_BearerExtIEs_specs_113 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_120 = { - sizeof(struct E_RABs_ToBeReleased_ModReqItem_Split_BearerExtIEs__extensionValue), - offsetof(struct E_RABs_ToBeReleased_ModReqItem_Split_BearerExtIEs__extensionValue, _asn_ctx), - offsetof(struct E_RABs_ToBeReleased_ModReqItem_Split_BearerExtIEs__extensionValue, present), - sizeof(((struct E_RABs_ToBeReleased_ModReqItem_Split_BearerExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_120 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_120 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_ModReqItem_Split_BearerExtIEs_117[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_ModReqItem_Split_BearerExtIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_118, memb_id_constraint_117 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_ModReqItem_Split_BearerExtIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_119, memb_criticality_constraint_117 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_ModReqItem_Split_BearerExtIEs, extensionValue), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_extensionValue_120, - 0, - { 0, &asn_PER_memb_extensionValue_constr_120, memb_extensionValue_constraint_117 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeReleased_ModReqItem_Split_BearerExtIEs_tags_117[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeReleased_ModReqItem_Split_BearerExtIEs_tag2el_117[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* extensionValue */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_ModReqItem_Split_BearerExtIEs_specs_117 = { - sizeof(struct E_RABs_ToBeReleased_ModReqItem_Split_BearerExtIEs), - offsetof(struct E_RABs_ToBeReleased_ModReqItem_Split_BearerExtIEs, _asn_ctx), - asn_MAP_E_RABs_ToBeReleased_ModReqItem_Split_BearerExtIEs_tag2el_117, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_ModReqItem_Split_BearerExtIEs = { - "E-RABs-ToBeReleased-ModReqItem-Split-BearerExtIEs", - "E-RABs-ToBeReleased-ModReqItem-Split-BearerExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_ToBeReleased_ModReqItem_Split_BearerExtIEs_tags_117, - sizeof(asn_DEF_E_RABs_ToBeReleased_ModReqItem_Split_BearerExtIEs_tags_117) - /sizeof(asn_DEF_E_RABs_ToBeReleased_ModReqItem_Split_BearerExtIEs_tags_117[0]), /* 1 */ - asn_DEF_E_RABs_ToBeReleased_ModReqItem_Split_BearerExtIEs_tags_117, /* Same as above */ - sizeof(asn_DEF_E_RABs_ToBeReleased_ModReqItem_Split_BearerExtIEs_tags_117) - /sizeof(asn_DEF_E_RABs_ToBeReleased_ModReqItem_Split_BearerExtIEs_tags_117[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_ToBeReleased_ModReqItem_Split_BearerExtIEs_117, - 3, /* Elements count */ - &asn_SPC_E_RABs_ToBeReleased_ModReqItem_Split_BearerExtIEs_specs_117 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_124 = { - sizeof(struct E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_BearerExtIEs__extensionValue), - offsetof(struct E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_BearerExtIEs__extensionValue, _asn_ctx), - offsetof(struct E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_BearerExtIEs__extensionValue, present), - sizeof(((struct E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_BearerExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_124 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_124 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_BearerExtIEs_121[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_BearerExtIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_122, memb_id_constraint_121 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_BearerExtIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_123, memb_criticality_constraint_121 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_BearerExtIEs, extensionValue), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_extensionValue_124, - 0, - { 0, &asn_PER_memb_extensionValue_constr_124, memb_extensionValue_constraint_121 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_BearerExtIEs_tags_121[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_BearerExtIEs_tag2el_121[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* extensionValue */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_BearerExtIEs_specs_121 = { - sizeof(struct E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_BearerExtIEs), - offsetof(struct E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_BearerExtIEs, _asn_ctx), - asn_MAP_E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_BearerExtIEs_tag2el_121, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_BearerExtIEs = { - "E-RABs-Admitted-ToBeAdded-ModAckItem-SCG-BearerExtIEs", - "E-RABs-Admitted-ToBeAdded-ModAckItem-SCG-BearerExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_BearerExtIEs_tags_121, - sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_BearerExtIEs_tags_121) - /sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_BearerExtIEs_tags_121[0]), /* 1 */ - asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_BearerExtIEs_tags_121, /* Same as above */ - sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_BearerExtIEs_tags_121) - /sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_BearerExtIEs_tags_121[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_BearerExtIEs_121, - 3, /* Elements count */ - &asn_SPC_E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_BearerExtIEs_specs_121 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_128 = { - sizeof(struct E_RABs_Admitted_ToBeAdded_ModAckItem_Split_BearerExtIEs__extensionValue), - offsetof(struct E_RABs_Admitted_ToBeAdded_ModAckItem_Split_BearerExtIEs__extensionValue, _asn_ctx), - offsetof(struct E_RABs_Admitted_ToBeAdded_ModAckItem_Split_BearerExtIEs__extensionValue, present), - sizeof(((struct E_RABs_Admitted_ToBeAdded_ModAckItem_Split_BearerExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_128 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_128 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeAdded_ModAckItem_Split_BearerExtIEs_125[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_ModAckItem_Split_BearerExtIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_126, memb_id_constraint_125 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_ModAckItem_Split_BearerExtIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_127, memb_criticality_constraint_125 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_ModAckItem_Split_BearerExtIEs, extensionValue), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_extensionValue_128, - 0, - { 0, &asn_PER_memb_extensionValue_constr_128, memb_extensionValue_constraint_125 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckItem_Split_BearerExtIEs_tags_125[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_Admitted_ToBeAdded_ModAckItem_Split_BearerExtIEs_tag2el_125[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* extensionValue */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeAdded_ModAckItem_Split_BearerExtIEs_specs_125 = { - sizeof(struct E_RABs_Admitted_ToBeAdded_ModAckItem_Split_BearerExtIEs), - offsetof(struct E_RABs_Admitted_ToBeAdded_ModAckItem_Split_BearerExtIEs, _asn_ctx), - asn_MAP_E_RABs_Admitted_ToBeAdded_ModAckItem_Split_BearerExtIEs_tag2el_125, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckItem_Split_BearerExtIEs = { - "E-RABs-Admitted-ToBeAdded-ModAckItem-Split-BearerExtIEs", - "E-RABs-Admitted-ToBeAdded-ModAckItem-Split-BearerExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckItem_Split_BearerExtIEs_tags_125, - sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckItem_Split_BearerExtIEs_tags_125) - /sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckItem_Split_BearerExtIEs_tags_125[0]), /* 1 */ - asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckItem_Split_BearerExtIEs_tags_125, /* Same as above */ - sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckItem_Split_BearerExtIEs_tags_125) - /sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckItem_Split_BearerExtIEs_tags_125[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_Admitted_ToBeAdded_ModAckItem_Split_BearerExtIEs_125, - 3, /* Elements count */ - &asn_SPC_E_RABs_Admitted_ToBeAdded_ModAckItem_Split_BearerExtIEs_specs_125 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_132 = { - sizeof(struct E_RABs_Admitted_ToBeModified_ModAckItem_SCG_BearerExtIEs__extensionValue), - offsetof(struct E_RABs_Admitted_ToBeModified_ModAckItem_SCG_BearerExtIEs__extensionValue, _asn_ctx), - offsetof(struct E_RABs_Admitted_ToBeModified_ModAckItem_SCG_BearerExtIEs__extensionValue, present), - sizeof(((struct E_RABs_Admitted_ToBeModified_ModAckItem_SCG_BearerExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_132 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_132 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeModified_ModAckItem_SCG_BearerExtIEs_129[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeModified_ModAckItem_SCG_BearerExtIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_130, memb_id_constraint_129 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeModified_ModAckItem_SCG_BearerExtIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_131, memb_criticality_constraint_129 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeModified_ModAckItem_SCG_BearerExtIEs, extensionValue), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_extensionValue_132, - 0, - { 0, &asn_PER_memb_extensionValue_constr_132, memb_extensionValue_constraint_129 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_Admitted_ToBeModified_ModAckItem_SCG_BearerExtIEs_tags_129[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_Admitted_ToBeModified_ModAckItem_SCG_BearerExtIEs_tag2el_129[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* extensionValue */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeModified_ModAckItem_SCG_BearerExtIEs_specs_129 = { - sizeof(struct E_RABs_Admitted_ToBeModified_ModAckItem_SCG_BearerExtIEs), - offsetof(struct E_RABs_Admitted_ToBeModified_ModAckItem_SCG_BearerExtIEs, _asn_ctx), - asn_MAP_E_RABs_Admitted_ToBeModified_ModAckItem_SCG_BearerExtIEs_tag2el_129, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeModified_ModAckItem_SCG_BearerExtIEs = { - "E-RABs-Admitted-ToBeModified-ModAckItem-SCG-BearerExtIEs", - "E-RABs-Admitted-ToBeModified-ModAckItem-SCG-BearerExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_Admitted_ToBeModified_ModAckItem_SCG_BearerExtIEs_tags_129, - sizeof(asn_DEF_E_RABs_Admitted_ToBeModified_ModAckItem_SCG_BearerExtIEs_tags_129) - /sizeof(asn_DEF_E_RABs_Admitted_ToBeModified_ModAckItem_SCG_BearerExtIEs_tags_129[0]), /* 1 */ - asn_DEF_E_RABs_Admitted_ToBeModified_ModAckItem_SCG_BearerExtIEs_tags_129, /* Same as above */ - sizeof(asn_DEF_E_RABs_Admitted_ToBeModified_ModAckItem_SCG_BearerExtIEs_tags_129) - /sizeof(asn_DEF_E_RABs_Admitted_ToBeModified_ModAckItem_SCG_BearerExtIEs_tags_129[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_Admitted_ToBeModified_ModAckItem_SCG_BearerExtIEs_129, - 3, /* Elements count */ - &asn_SPC_E_RABs_Admitted_ToBeModified_ModAckItem_SCG_BearerExtIEs_specs_129 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_136 = { - sizeof(struct E_RABs_Admitted_ToBeModified_ModAckItem_Split_BearerExtIEs__extensionValue), - offsetof(struct E_RABs_Admitted_ToBeModified_ModAckItem_Split_BearerExtIEs__extensionValue, _asn_ctx), - offsetof(struct E_RABs_Admitted_ToBeModified_ModAckItem_Split_BearerExtIEs__extensionValue, present), - sizeof(((struct E_RABs_Admitted_ToBeModified_ModAckItem_Split_BearerExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_136 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_136 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeModified_ModAckItem_Split_BearerExtIEs_133[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeModified_ModAckItem_Split_BearerExtIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_134, memb_id_constraint_133 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeModified_ModAckItem_Split_BearerExtIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_135, memb_criticality_constraint_133 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeModified_ModAckItem_Split_BearerExtIEs, extensionValue), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_extensionValue_136, - 0, - { 0, &asn_PER_memb_extensionValue_constr_136, memb_extensionValue_constraint_133 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_Admitted_ToBeModified_ModAckItem_Split_BearerExtIEs_tags_133[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_Admitted_ToBeModified_ModAckItem_Split_BearerExtIEs_tag2el_133[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* extensionValue */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeModified_ModAckItem_Split_BearerExtIEs_specs_133 = { - sizeof(struct E_RABs_Admitted_ToBeModified_ModAckItem_Split_BearerExtIEs), - offsetof(struct E_RABs_Admitted_ToBeModified_ModAckItem_Split_BearerExtIEs, _asn_ctx), - asn_MAP_E_RABs_Admitted_ToBeModified_ModAckItem_Split_BearerExtIEs_tag2el_133, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeModified_ModAckItem_Split_BearerExtIEs = { - "E-RABs-Admitted-ToBeModified-ModAckItem-Split-BearerExtIEs", - "E-RABs-Admitted-ToBeModified-ModAckItem-Split-BearerExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_Admitted_ToBeModified_ModAckItem_Split_BearerExtIEs_tags_133, - sizeof(asn_DEF_E_RABs_Admitted_ToBeModified_ModAckItem_Split_BearerExtIEs_tags_133) - /sizeof(asn_DEF_E_RABs_Admitted_ToBeModified_ModAckItem_Split_BearerExtIEs_tags_133[0]), /* 1 */ - asn_DEF_E_RABs_Admitted_ToBeModified_ModAckItem_Split_BearerExtIEs_tags_133, /* Same as above */ - sizeof(asn_DEF_E_RABs_Admitted_ToBeModified_ModAckItem_Split_BearerExtIEs_tags_133) - /sizeof(asn_DEF_E_RABs_Admitted_ToBeModified_ModAckItem_Split_BearerExtIEs_tags_133[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_Admitted_ToBeModified_ModAckItem_Split_BearerExtIEs_133, - 3, /* Elements count */ - &asn_SPC_E_RABs_Admitted_ToBeModified_ModAckItem_Split_BearerExtIEs_specs_133 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_140 = { - sizeof(struct E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_BearerExtIEs__extensionValue), - offsetof(struct E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_BearerExtIEs__extensionValue, _asn_ctx), - offsetof(struct E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_BearerExtIEs__extensionValue, present), - sizeof(((struct E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_BearerExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_140 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_140 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_BearerExtIEs_137[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_BearerExtIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_138, memb_id_constraint_137 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_BearerExtIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_139, memb_criticality_constraint_137 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_BearerExtIEs, extensionValue), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_extensionValue_140, - 0, - { 0, &asn_PER_memb_extensionValue_constr_140, memb_extensionValue_constraint_137 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_BearerExtIEs_tags_137[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_BearerExtIEs_tag2el_137[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* extensionValue */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_BearerExtIEs_specs_137 = { - sizeof(struct E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_BearerExtIEs), - offsetof(struct E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_BearerExtIEs, _asn_ctx), - asn_MAP_E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_BearerExtIEs_tag2el_137, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_BearerExtIEs = { - "E-RABs-Admitted-ToBeReleased-ModAckItem-SCG-BearerExtIEs", - "E-RABs-Admitted-ToBeReleased-ModAckItem-SCG-BearerExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_BearerExtIEs_tags_137, - sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_BearerExtIEs_tags_137) - /sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_BearerExtIEs_tags_137[0]), /* 1 */ - asn_DEF_E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_BearerExtIEs_tags_137, /* Same as above */ - sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_BearerExtIEs_tags_137) - /sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_BearerExtIEs_tags_137[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_BearerExtIEs_137, - 3, /* Elements count */ - &asn_SPC_E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_BearerExtIEs_specs_137 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_144 = { - sizeof(struct E_RABs_Admitted_ToBeReleased_ModAckItem_Split_BearerExtIEs__extensionValue), - offsetof(struct E_RABs_Admitted_ToBeReleased_ModAckItem_Split_BearerExtIEs__extensionValue, _asn_ctx), - offsetof(struct E_RABs_Admitted_ToBeReleased_ModAckItem_Split_BearerExtIEs__extensionValue, present), - sizeof(((struct E_RABs_Admitted_ToBeReleased_ModAckItem_Split_BearerExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_144 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_144 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeReleased_ModAckItem_Split_BearerExtIEs_141[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeReleased_ModAckItem_Split_BearerExtIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_142, memb_id_constraint_141 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeReleased_ModAckItem_Split_BearerExtIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_143, memb_criticality_constraint_141 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeReleased_ModAckItem_Split_BearerExtIEs, extensionValue), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_extensionValue_144, - 0, - { 0, &asn_PER_memb_extensionValue_constr_144, memb_extensionValue_constraint_141 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_Admitted_ToBeReleased_ModAckItem_Split_BearerExtIEs_tags_141[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_Admitted_ToBeReleased_ModAckItem_Split_BearerExtIEs_tag2el_141[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* extensionValue */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeReleased_ModAckItem_Split_BearerExtIEs_specs_141 = { - sizeof(struct E_RABs_Admitted_ToBeReleased_ModAckItem_Split_BearerExtIEs), - offsetof(struct E_RABs_Admitted_ToBeReleased_ModAckItem_Split_BearerExtIEs, _asn_ctx), - asn_MAP_E_RABs_Admitted_ToBeReleased_ModAckItem_Split_BearerExtIEs_tag2el_141, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeReleased_ModAckItem_Split_BearerExtIEs = { - "E-RABs-Admitted-ToBeReleased-ModAckItem-Split-BearerExtIEs", - "E-RABs-Admitted-ToBeReleased-ModAckItem-Split-BearerExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_Admitted_ToBeReleased_ModAckItem_Split_BearerExtIEs_tags_141, - sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_ModAckItem_Split_BearerExtIEs_tags_141) - /sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_ModAckItem_Split_BearerExtIEs_tags_141[0]), /* 1 */ - asn_DEF_E_RABs_Admitted_ToBeReleased_ModAckItem_Split_BearerExtIEs_tags_141, /* Same as above */ - sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_ModAckItem_Split_BearerExtIEs_tags_141) - /sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_ModAckItem_Split_BearerExtIEs_tags_141[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_Admitted_ToBeReleased_ModAckItem_Split_BearerExtIEs_141, - 3, /* Elements count */ - &asn_SPC_E_RABs_Admitted_ToBeReleased_ModAckItem_Split_BearerExtIEs_specs_141 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_148 = { - sizeof(struct E_RABs_ToBeReleased_ModReqdItemExtIEs__extensionValue), - offsetof(struct E_RABs_ToBeReleased_ModReqdItemExtIEs__extensionValue, _asn_ctx), - offsetof(struct E_RABs_ToBeReleased_ModReqdItemExtIEs__extensionValue, present), - sizeof(((struct E_RABs_ToBeReleased_ModReqdItemExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_148 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_148 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_ModReqdItemExtIEs_145[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_ModReqdItemExtIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_146, memb_id_constraint_145 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_ModReqdItemExtIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_147, memb_criticality_constraint_145 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_ModReqdItemExtIEs, extensionValue), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_extensionValue_148, - 0, - { 0, &asn_PER_memb_extensionValue_constr_148, memb_extensionValue_constraint_145 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeReleased_ModReqdItemExtIEs_tags_145[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeReleased_ModReqdItemExtIEs_tag2el_145[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* extensionValue */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_ModReqdItemExtIEs_specs_145 = { - sizeof(struct E_RABs_ToBeReleased_ModReqdItemExtIEs), - offsetof(struct E_RABs_ToBeReleased_ModReqdItemExtIEs, _asn_ctx), - asn_MAP_E_RABs_ToBeReleased_ModReqdItemExtIEs_tag2el_145, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_ModReqdItemExtIEs = { - "E-RABs-ToBeReleased-ModReqdItemExtIEs", - "E-RABs-ToBeReleased-ModReqdItemExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_ToBeReleased_ModReqdItemExtIEs_tags_145, - sizeof(asn_DEF_E_RABs_ToBeReleased_ModReqdItemExtIEs_tags_145) - /sizeof(asn_DEF_E_RABs_ToBeReleased_ModReqdItemExtIEs_tags_145[0]), /* 1 */ - asn_DEF_E_RABs_ToBeReleased_ModReqdItemExtIEs_tags_145, /* Same as above */ - sizeof(asn_DEF_E_RABs_ToBeReleased_ModReqdItemExtIEs_tags_145) - /sizeof(asn_DEF_E_RABs_ToBeReleased_ModReqdItemExtIEs_tags_145[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_ToBeReleased_ModReqdItemExtIEs_145, - 3, /* Elements count */ - &asn_SPC_E_RABs_ToBeReleased_ModReqdItemExtIEs_specs_145 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_152 = { - sizeof(struct E_RABs_ToBeReleased_RelReqItem_SCG_BearerExtIEs__extensionValue), - offsetof(struct E_RABs_ToBeReleased_RelReqItem_SCG_BearerExtIEs__extensionValue, _asn_ctx), - offsetof(struct E_RABs_ToBeReleased_RelReqItem_SCG_BearerExtIEs__extensionValue, present), - sizeof(((struct E_RABs_ToBeReleased_RelReqItem_SCG_BearerExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_152 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_152 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_RelReqItem_SCG_BearerExtIEs_149[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_RelReqItem_SCG_BearerExtIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_150, memb_id_constraint_149 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_RelReqItem_SCG_BearerExtIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_151, memb_criticality_constraint_149 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_RelReqItem_SCG_BearerExtIEs, extensionValue), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_extensionValue_152, - 0, - { 0, &asn_PER_memb_extensionValue_constr_152, memb_extensionValue_constraint_149 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeReleased_RelReqItem_SCG_BearerExtIEs_tags_149[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeReleased_RelReqItem_SCG_BearerExtIEs_tag2el_149[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* extensionValue */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_RelReqItem_SCG_BearerExtIEs_specs_149 = { - sizeof(struct E_RABs_ToBeReleased_RelReqItem_SCG_BearerExtIEs), - offsetof(struct E_RABs_ToBeReleased_RelReqItem_SCG_BearerExtIEs, _asn_ctx), - asn_MAP_E_RABs_ToBeReleased_RelReqItem_SCG_BearerExtIEs_tag2el_149, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_RelReqItem_SCG_BearerExtIEs = { - "E-RABs-ToBeReleased-RelReqItem-SCG-BearerExtIEs", - "E-RABs-ToBeReleased-RelReqItem-SCG-BearerExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_ToBeReleased_RelReqItem_SCG_BearerExtIEs_tags_149, - sizeof(asn_DEF_E_RABs_ToBeReleased_RelReqItem_SCG_BearerExtIEs_tags_149) - /sizeof(asn_DEF_E_RABs_ToBeReleased_RelReqItem_SCG_BearerExtIEs_tags_149[0]), /* 1 */ - asn_DEF_E_RABs_ToBeReleased_RelReqItem_SCG_BearerExtIEs_tags_149, /* Same as above */ - sizeof(asn_DEF_E_RABs_ToBeReleased_RelReqItem_SCG_BearerExtIEs_tags_149) - /sizeof(asn_DEF_E_RABs_ToBeReleased_RelReqItem_SCG_BearerExtIEs_tags_149[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_ToBeReleased_RelReqItem_SCG_BearerExtIEs_149, - 3, /* Elements count */ - &asn_SPC_E_RABs_ToBeReleased_RelReqItem_SCG_BearerExtIEs_specs_149 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_156 = { - sizeof(struct E_RABs_ToBeReleased_RelReqItem_Split_BearerExtIEs__extensionValue), - offsetof(struct E_RABs_ToBeReleased_RelReqItem_Split_BearerExtIEs__extensionValue, _asn_ctx), - offsetof(struct E_RABs_ToBeReleased_RelReqItem_Split_BearerExtIEs__extensionValue, present), - sizeof(((struct E_RABs_ToBeReleased_RelReqItem_Split_BearerExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_156 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_156 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_RelReqItem_Split_BearerExtIEs_153[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_RelReqItem_Split_BearerExtIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_154, memb_id_constraint_153 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_RelReqItem_Split_BearerExtIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_155, memb_criticality_constraint_153 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_RelReqItem_Split_BearerExtIEs, extensionValue), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_extensionValue_156, - 0, - { 0, &asn_PER_memb_extensionValue_constr_156, memb_extensionValue_constraint_153 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeReleased_RelReqItem_Split_BearerExtIEs_tags_153[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeReleased_RelReqItem_Split_BearerExtIEs_tag2el_153[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* extensionValue */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_RelReqItem_Split_BearerExtIEs_specs_153 = { - sizeof(struct E_RABs_ToBeReleased_RelReqItem_Split_BearerExtIEs), - offsetof(struct E_RABs_ToBeReleased_RelReqItem_Split_BearerExtIEs, _asn_ctx), - asn_MAP_E_RABs_ToBeReleased_RelReqItem_Split_BearerExtIEs_tag2el_153, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_RelReqItem_Split_BearerExtIEs = { - "E-RABs-ToBeReleased-RelReqItem-Split-BearerExtIEs", - "E-RABs-ToBeReleased-RelReqItem-Split-BearerExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_ToBeReleased_RelReqItem_Split_BearerExtIEs_tags_153, - sizeof(asn_DEF_E_RABs_ToBeReleased_RelReqItem_Split_BearerExtIEs_tags_153) - /sizeof(asn_DEF_E_RABs_ToBeReleased_RelReqItem_Split_BearerExtIEs_tags_153[0]), /* 1 */ - asn_DEF_E_RABs_ToBeReleased_RelReqItem_Split_BearerExtIEs_tags_153, /* Same as above */ - sizeof(asn_DEF_E_RABs_ToBeReleased_RelReqItem_Split_BearerExtIEs_tags_153) - /sizeof(asn_DEF_E_RABs_ToBeReleased_RelReqItem_Split_BearerExtIEs_tags_153[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_ToBeReleased_RelReqItem_Split_BearerExtIEs_153, - 3, /* Elements count */ - &asn_SPC_E_RABs_ToBeReleased_RelReqItem_Split_BearerExtIEs_specs_153 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_160 = { - sizeof(struct E_RABs_ToBeReleased_RelConfItem_SCG_BearerExtIEs__extensionValue), - offsetof(struct E_RABs_ToBeReleased_RelConfItem_SCG_BearerExtIEs__extensionValue, _asn_ctx), - offsetof(struct E_RABs_ToBeReleased_RelConfItem_SCG_BearerExtIEs__extensionValue, present), - sizeof(((struct E_RABs_ToBeReleased_RelConfItem_SCG_BearerExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_160 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_160 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_RelConfItem_SCG_BearerExtIEs_157[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_RelConfItem_SCG_BearerExtIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_158, memb_id_constraint_157 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_RelConfItem_SCG_BearerExtIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_159, memb_criticality_constraint_157 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_RelConfItem_SCG_BearerExtIEs, extensionValue), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_extensionValue_160, - 0, - { 0, &asn_PER_memb_extensionValue_constr_160, memb_extensionValue_constraint_157 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeReleased_RelConfItem_SCG_BearerExtIEs_tags_157[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeReleased_RelConfItem_SCG_BearerExtIEs_tag2el_157[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* extensionValue */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_RelConfItem_SCG_BearerExtIEs_specs_157 = { - sizeof(struct E_RABs_ToBeReleased_RelConfItem_SCG_BearerExtIEs), - offsetof(struct E_RABs_ToBeReleased_RelConfItem_SCG_BearerExtIEs, _asn_ctx), - asn_MAP_E_RABs_ToBeReleased_RelConfItem_SCG_BearerExtIEs_tag2el_157, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_RelConfItem_SCG_BearerExtIEs = { - "E-RABs-ToBeReleased-RelConfItem-SCG-BearerExtIEs", - "E-RABs-ToBeReleased-RelConfItem-SCG-BearerExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_ToBeReleased_RelConfItem_SCG_BearerExtIEs_tags_157, - sizeof(asn_DEF_E_RABs_ToBeReleased_RelConfItem_SCG_BearerExtIEs_tags_157) - /sizeof(asn_DEF_E_RABs_ToBeReleased_RelConfItem_SCG_BearerExtIEs_tags_157[0]), /* 1 */ - asn_DEF_E_RABs_ToBeReleased_RelConfItem_SCG_BearerExtIEs_tags_157, /* Same as above */ - sizeof(asn_DEF_E_RABs_ToBeReleased_RelConfItem_SCG_BearerExtIEs_tags_157) - /sizeof(asn_DEF_E_RABs_ToBeReleased_RelConfItem_SCG_BearerExtIEs_tags_157[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_ToBeReleased_RelConfItem_SCG_BearerExtIEs_157, - 3, /* Elements count */ - &asn_SPC_E_RABs_ToBeReleased_RelConfItem_SCG_BearerExtIEs_specs_157 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_164 = { - sizeof(struct E_RABs_ToBeReleased_RelConfItem_Split_BearerExtIEs__extensionValue), - offsetof(struct E_RABs_ToBeReleased_RelConfItem_Split_BearerExtIEs__extensionValue, _asn_ctx), - offsetof(struct E_RABs_ToBeReleased_RelConfItem_Split_BearerExtIEs__extensionValue, present), - sizeof(((struct E_RABs_ToBeReleased_RelConfItem_Split_BearerExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_164 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_164 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_RelConfItem_Split_BearerExtIEs_161[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_RelConfItem_Split_BearerExtIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_162, memb_id_constraint_161 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_RelConfItem_Split_BearerExtIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_163, memb_criticality_constraint_161 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_RelConfItem_Split_BearerExtIEs, extensionValue), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_extensionValue_164, - 0, - { 0, &asn_PER_memb_extensionValue_constr_164, memb_extensionValue_constraint_161 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeReleased_RelConfItem_Split_BearerExtIEs_tags_161[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeReleased_RelConfItem_Split_BearerExtIEs_tag2el_161[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* extensionValue */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_RelConfItem_Split_BearerExtIEs_specs_161 = { - sizeof(struct E_RABs_ToBeReleased_RelConfItem_Split_BearerExtIEs), - offsetof(struct E_RABs_ToBeReleased_RelConfItem_Split_BearerExtIEs, _asn_ctx), - asn_MAP_E_RABs_ToBeReleased_RelConfItem_Split_BearerExtIEs_tag2el_161, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_RelConfItem_Split_BearerExtIEs = { - "E-RABs-ToBeReleased-RelConfItem-Split-BearerExtIEs", - "E-RABs-ToBeReleased-RelConfItem-Split-BearerExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_ToBeReleased_RelConfItem_Split_BearerExtIEs_tags_161, - sizeof(asn_DEF_E_RABs_ToBeReleased_RelConfItem_Split_BearerExtIEs_tags_161) - /sizeof(asn_DEF_E_RABs_ToBeReleased_RelConfItem_Split_BearerExtIEs_tags_161[0]), /* 1 */ - asn_DEF_E_RABs_ToBeReleased_RelConfItem_Split_BearerExtIEs_tags_161, /* Same as above */ - sizeof(asn_DEF_E_RABs_ToBeReleased_RelConfItem_Split_BearerExtIEs_tags_161) - /sizeof(asn_DEF_E_RABs_ToBeReleased_RelConfItem_Split_BearerExtIEs_tags_161[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_ToBeReleased_RelConfItem_Split_BearerExtIEs_161, - 3, /* Elements count */ - &asn_SPC_E_RABs_ToBeReleased_RelConfItem_Split_BearerExtIEs_specs_161 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_168 = { - sizeof(struct E_RABs_SubjectToCounterCheckItemExtIEs__extensionValue), - offsetof(struct E_RABs_SubjectToCounterCheckItemExtIEs__extensionValue, _asn_ctx), - offsetof(struct E_RABs_SubjectToCounterCheckItemExtIEs__extensionValue, present), - sizeof(((struct E_RABs_SubjectToCounterCheckItemExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_168 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_168 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E_RABs_SubjectToCounterCheckItemExtIEs_165[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_SubjectToCounterCheckItemExtIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_166, memb_id_constraint_165 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_SubjectToCounterCheckItemExtIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_167, memb_criticality_constraint_165 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_SubjectToCounterCheckItemExtIEs, extensionValue), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_extensionValue_168, - 0, - { 0, &asn_PER_memb_extensionValue_constr_168, memb_extensionValue_constraint_165 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_SubjectToCounterCheckItemExtIEs_tags_165[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_SubjectToCounterCheckItemExtIEs_tag2el_165[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* extensionValue */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_SubjectToCounterCheckItemExtIEs_specs_165 = { - sizeof(struct E_RABs_SubjectToCounterCheckItemExtIEs), - offsetof(struct E_RABs_SubjectToCounterCheckItemExtIEs, _asn_ctx), - asn_MAP_E_RABs_SubjectToCounterCheckItemExtIEs_tag2el_165, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_SubjectToCounterCheckItemExtIEs = { - "E-RABs-SubjectToCounterCheckItemExtIEs", - "E-RABs-SubjectToCounterCheckItemExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_SubjectToCounterCheckItemExtIEs_tags_165, - sizeof(asn_DEF_E_RABs_SubjectToCounterCheckItemExtIEs_tags_165) - /sizeof(asn_DEF_E_RABs_SubjectToCounterCheckItemExtIEs_tags_165[0]), /* 1 */ - asn_DEF_E_RABs_SubjectToCounterCheckItemExtIEs_tags_165, /* Same as above */ - sizeof(asn_DEF_E_RABs_SubjectToCounterCheckItemExtIEs_tags_165) - /sizeof(asn_DEF_E_RABs_SubjectToCounterCheckItemExtIEs_tags_165[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_SubjectToCounterCheckItemExtIEs_165, - 3, /* Elements count */ - &asn_SPC_E_RABs_SubjectToCounterCheckItemExtIEs_specs_165 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_extensionValue_172[] = { - { ATF_NOFLAGS, 0, offsetof(struct UE_ContextInformationRetrieve_ExtIEs__extensionValue, choice.UESidelinkAggregateMaximumBitRate), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_UESidelinkAggregateMaximumBitRate, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "UESidelinkAggregateMaximumBitRate" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_extensionValue_tag2el_172[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* UESidelinkAggregateMaximumBitRate */ -}; -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_172 = { - sizeof(struct UE_ContextInformationRetrieve_ExtIEs__extensionValue), - offsetof(struct UE_ContextInformationRetrieve_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct UE_ContextInformationRetrieve_ExtIEs__extensionValue, present), - sizeof(((struct UE_ContextInformationRetrieve_ExtIEs__extensionValue *)0)->present), - asn_MAP_extensionValue_tag2el_172, - 1, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_172 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_extensionValue_172, - 1, /* Elements count */ - &asn_SPC_extensionValue_specs_172 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_UE_ContextInformationRetrieve_ExtIEs_169[] = { - { ATF_NOFLAGS, 0, offsetof(struct UE_ContextInformationRetrieve_ExtIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_170, memb_id_constraint_169 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct UE_ContextInformationRetrieve_ExtIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_UE_ContextInformationRetrieve_ExtIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_171, memb_criticality_constraint_169 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct UE_ContextInformationRetrieve_ExtIEs, extensionValue), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_extensionValue_172, - select_UE_ContextInformationRetrieve_ExtIEs_extensionValue_type, - { 0, &asn_PER_memb_extensionValue_constr_172, memb_extensionValue_constraint_169 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_UE_ContextInformationRetrieve_ExtIEs_tags_169[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_UE_ContextInformationRetrieve_ExtIEs_tag2el_169[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* extensionValue */ -}; -asn_SEQUENCE_specifics_t asn_SPC_UE_ContextInformationRetrieve_ExtIEs_specs_169 = { - sizeof(struct UE_ContextInformationRetrieve_ExtIEs), - offsetof(struct UE_ContextInformationRetrieve_ExtIEs, _asn_ctx), - asn_MAP_UE_ContextInformationRetrieve_ExtIEs_tag2el_169, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_UE_ContextInformationRetrieve_ExtIEs = { - "UE-ContextInformationRetrieve-ExtIEs", - "UE-ContextInformationRetrieve-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_UE_ContextInformationRetrieve_ExtIEs_tags_169, - sizeof(asn_DEF_UE_ContextInformationRetrieve_ExtIEs_tags_169) - /sizeof(asn_DEF_UE_ContextInformationRetrieve_ExtIEs_tags_169[0]), /* 1 */ - asn_DEF_UE_ContextInformationRetrieve_ExtIEs_tags_169, /* Same as above */ - sizeof(asn_DEF_UE_ContextInformationRetrieve_ExtIEs_tags_169) - /sizeof(asn_DEF_UE_ContextInformationRetrieve_ExtIEs_tags_169[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_UE_ContextInformationRetrieve_ExtIEs_169, - 3, /* Elements count */ - &asn_SPC_UE_ContextInformationRetrieve_ExtIEs_specs_169 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_extensionValue_176[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeSetupRetrieve_ItemExtIEs__extensionValue, choice.GTPtunnelEndpoint), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_GTPtunnelEndpoint, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "GTPtunnelEndpoint" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeSetupRetrieve_ItemExtIEs__extensionValue, choice.DL_Forwarding), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_DL_Forwarding, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "DL-Forwarding" - }, -}; -static const unsigned asn_MAP_extensionValue_to_canonical_176[] = { 1, 0 }; -static const unsigned asn_MAP_extensionValue_from_canonical_176[] = { 1, 0 }; -static const asn_TYPE_tag2member_t asn_MAP_extensionValue_tag2el_176[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 }, /* DL-Forwarding */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* GTPtunnelEndpoint */ -}; -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_176 = { - sizeof(struct E_RABs_ToBeSetupRetrieve_ItemExtIEs__extensionValue), - offsetof(struct E_RABs_ToBeSetupRetrieve_ItemExtIEs__extensionValue, _asn_ctx), - offsetof(struct E_RABs_ToBeSetupRetrieve_ItemExtIEs__extensionValue, present), - sizeof(((struct E_RABs_ToBeSetupRetrieve_ItemExtIEs__extensionValue *)0)->present), - asn_MAP_extensionValue_tag2el_176, - 2, /* Count of tags in the map */ - asn_MAP_extensionValue_to_canonical_176, - asn_MAP_extensionValue_from_canonical_176, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_176 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_extensionValue_176, - 2, /* Elements count */ - &asn_SPC_extensionValue_specs_176 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E_RABs_ToBeSetupRetrieve_ItemExtIEs_173[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeSetupRetrieve_ItemExtIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_174, memb_id_constraint_173 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeSetupRetrieve_ItemExtIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_E_RABs_ToBeSetupRetrieve_ItemExtIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_175, memb_criticality_constraint_173 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeSetupRetrieve_ItemExtIEs, extensionValue), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_extensionValue_176, - select_E_RABs_ToBeSetupRetrieve_ItemExtIEs_extensionValue_type, - { 0, &asn_PER_memb_extensionValue_constr_176, memb_extensionValue_constraint_173 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeSetupRetrieve_ItemExtIEs_tags_173[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeSetupRetrieve_ItemExtIEs_tag2el_173[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* extensionValue */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeSetupRetrieve_ItemExtIEs_specs_173 = { - sizeof(struct E_RABs_ToBeSetupRetrieve_ItemExtIEs), - offsetof(struct E_RABs_ToBeSetupRetrieve_ItemExtIEs, _asn_ctx), - asn_MAP_E_RABs_ToBeSetupRetrieve_ItemExtIEs_tag2el_173, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeSetupRetrieve_ItemExtIEs = { - "E-RABs-ToBeSetupRetrieve-ItemExtIEs", - "E-RABs-ToBeSetupRetrieve-ItemExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_ToBeSetupRetrieve_ItemExtIEs_tags_173, - sizeof(asn_DEF_E_RABs_ToBeSetupRetrieve_ItemExtIEs_tags_173) - /sizeof(asn_DEF_E_RABs_ToBeSetupRetrieve_ItemExtIEs_tags_173[0]), /* 1 */ - asn_DEF_E_RABs_ToBeSetupRetrieve_ItemExtIEs_tags_173, /* Same as above */ - sizeof(asn_DEF_E_RABs_ToBeSetupRetrieve_ItemExtIEs_tags_173) - /sizeof(asn_DEF_E_RABs_ToBeSetupRetrieve_ItemExtIEs_tags_173[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_ToBeSetupRetrieve_ItemExtIEs_173, - 3, /* Elements count */ - &asn_SPC_E_RABs_ToBeSetupRetrieve_ItemExtIEs_specs_173 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_180 = { - sizeof(struct E_RABs_ToBeAdded_SgNBAddReq_ItemExtIEs__extensionValue), - offsetof(struct E_RABs_ToBeAdded_SgNBAddReq_ItemExtIEs__extensionValue, _asn_ctx), - offsetof(struct E_RABs_ToBeAdded_SgNBAddReq_ItemExtIEs__extensionValue, present), - sizeof(((struct E_RABs_ToBeAdded_SgNBAddReq_ItemExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_180 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_180 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E_RABs_ToBeAdded_SgNBAddReq_ItemExtIEs_177[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_SgNBAddReq_ItemExtIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_178, memb_id_constraint_177 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_SgNBAddReq_ItemExtIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_179, memb_criticality_constraint_177 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_SgNBAddReq_ItemExtIEs, extensionValue), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_extensionValue_180, - 0, - { 0, &asn_PER_memb_extensionValue_constr_180, memb_extensionValue_constraint_177 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_ItemExtIEs_tags_177[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeAdded_SgNBAddReq_ItemExtIEs_tag2el_177[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* extensionValue */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeAdded_SgNBAddReq_ItemExtIEs_specs_177 = { - sizeof(struct E_RABs_ToBeAdded_SgNBAddReq_ItemExtIEs), - offsetof(struct E_RABs_ToBeAdded_SgNBAddReq_ItemExtIEs, _asn_ctx), - asn_MAP_E_RABs_ToBeAdded_SgNBAddReq_ItemExtIEs_tag2el_177, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_ItemExtIEs = { - "E-RABs-ToBeAdded-SgNBAddReq-ItemExtIEs", - "E-RABs-ToBeAdded-SgNBAddReq-ItemExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_ItemExtIEs_tags_177, - sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_ItemExtIEs_tags_177) - /sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_ItemExtIEs_tags_177[0]), /* 1 */ - asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_ItemExtIEs_tags_177, /* Same as above */ - sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_ItemExtIEs_tags_177) - /sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_ItemExtIEs_tags_177[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_ToBeAdded_SgNBAddReq_ItemExtIEs_177, - 3, /* Elements count */ - &asn_SPC_E_RABs_ToBeAdded_SgNBAddReq_ItemExtIEs_specs_177 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_extensionValue_184[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresentExtIEs__extensionValue, choice.RLCMode), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_RLCMode, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RLCMode" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_extensionValue_tag2el_184[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 0, 0, 0 } /* RLCMode */ -}; -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_184 = { - sizeof(struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresentExtIEs__extensionValue), - offsetof(struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresentExtIEs__extensionValue, _asn_ctx), - offsetof(struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresentExtIEs__extensionValue, present), - sizeof(((struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresentExtIEs__extensionValue *)0)->present), - asn_MAP_extensionValue_tag2el_184, - 1, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_184 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_extensionValue_184, - 1, /* Elements count */ - &asn_SPC_extensionValue_specs_184 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresentExtIEs_181[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresentExtIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_182, memb_id_constraint_181 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresentExtIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresentExtIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_183, memb_criticality_constraint_181 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresentExtIEs, extensionValue), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_extensionValue_184, - select_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresentExtIEs_extensionValue_type, - { 0, &asn_PER_memb_extensionValue_constr_184, memb_extensionValue_constraint_181 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresentExtIEs_tags_181[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresentExtIEs_tag2el_181[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* extensionValue */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresentExtIEs_specs_181 = { - sizeof(struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresentExtIEs), - offsetof(struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresentExtIEs, _asn_ctx), - asn_MAP_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresentExtIEs_tag2el_181, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresentExtIEs = { - "E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPpresentExtIEs", - "E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPpresentExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresentExtIEs_tags_181, - sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresentExtIEs_tags_181) - /sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresentExtIEs_tags_181[0]), /* 1 */ - asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresentExtIEs_tags_181, /* Same as above */ - sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresentExtIEs_tags_181) - /sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresentExtIEs_tags_181[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresentExtIEs_181, - 3, /* Elements count */ - &asn_SPC_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresentExtIEs_specs_181 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_extensionValue_188[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue, choice.PDCPSnLength), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_PDCPSnLength, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "PDCPSnLength" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue, choice.DuplicationActivation), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_DuplicationActivation, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "DuplicationActivation" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_extensionValue_tag2el_188[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 0, 0, 1 }, /* PDCPSnLength */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, -1, 0 } /* DuplicationActivation */ -}; -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_188 = { - sizeof(struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue), - offsetof(struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue, _asn_ctx), - offsetof(struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue, present), - sizeof(((struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue *)0)->present), - asn_MAP_extensionValue_tag2el_188, - 2, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_188 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_extensionValue_188, - 2, /* Elements count */ - &asn_SPC_extensionValue_specs_188 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresentExtIEs_185[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresentExtIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_186, memb_id_constraint_185 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresentExtIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresentExtIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_187, memb_criticality_constraint_185 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresentExtIEs, extensionValue), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_extensionValue_188, - select_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresentExtIEs_extensionValue_type, - { 0, &asn_PER_memb_extensionValue_constr_188, memb_extensionValue_constraint_185 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresentExtIEs_tags_185[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresentExtIEs_tag2el_185[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* extensionValue */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresentExtIEs_specs_185 = { - sizeof(struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresentExtIEs), - offsetof(struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresentExtIEs, _asn_ctx), - asn_MAP_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresentExtIEs_tag2el_185, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresentExtIEs = { - "E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPnotpresentExtIEs", - "E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPnotpresentExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresentExtIEs_tags_185, - sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresentExtIEs_tags_185) - /sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresentExtIEs_tags_185[0]), /* 1 */ - asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresentExtIEs_tags_185, /* Same as above */ - sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresentExtIEs_tags_185) - /sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresentExtIEs_tags_185[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresentExtIEs_185, - 3, /* Elements count */ - &asn_SPC_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresentExtIEs_specs_185 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_192 = { - sizeof(struct E_RABs_ToBeAdded_SgNBAddReqAck_ItemExtIEs__extensionValue), - offsetof(struct E_RABs_ToBeAdded_SgNBAddReqAck_ItemExtIEs__extensionValue, _asn_ctx), - offsetof(struct E_RABs_ToBeAdded_SgNBAddReqAck_ItemExtIEs__extensionValue, present), - sizeof(((struct E_RABs_ToBeAdded_SgNBAddReqAck_ItemExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_192 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_192 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E_RABs_ToBeAdded_SgNBAddReqAck_ItemExtIEs_189[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_SgNBAddReqAck_ItemExtIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_190, memb_id_constraint_189 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_SgNBAddReqAck_ItemExtIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_191, memb_criticality_constraint_189 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_SgNBAddReqAck_ItemExtIEs, extensionValue), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_extensionValue_192, - 0, - { 0, &asn_PER_memb_extensionValue_constr_192, memb_extensionValue_constraint_189 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeAdded_SgNBAddReqAck_ItemExtIEs_tags_189[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeAdded_SgNBAddReqAck_ItemExtIEs_tag2el_189[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* extensionValue */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeAdded_SgNBAddReqAck_ItemExtIEs_specs_189 = { - sizeof(struct E_RABs_ToBeAdded_SgNBAddReqAck_ItemExtIEs), - offsetof(struct E_RABs_ToBeAdded_SgNBAddReqAck_ItemExtIEs, _asn_ctx), - asn_MAP_E_RABs_ToBeAdded_SgNBAddReqAck_ItemExtIEs_tag2el_189, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_SgNBAddReqAck_ItemExtIEs = { - "E-RABs-ToBeAdded-SgNBAddReqAck-ItemExtIEs", - "E-RABs-ToBeAdded-SgNBAddReqAck-ItemExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_ToBeAdded_SgNBAddReqAck_ItemExtIEs_tags_189, - sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBAddReqAck_ItemExtIEs_tags_189) - /sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBAddReqAck_ItemExtIEs_tags_189[0]), /* 1 */ - asn_DEF_E_RABs_ToBeAdded_SgNBAddReqAck_ItemExtIEs_tags_189, /* Same as above */ - sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBAddReqAck_ItemExtIEs_tags_189) - /sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBAddReqAck_ItemExtIEs_tags_189[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_ToBeAdded_SgNBAddReqAck_ItemExtIEs_189, - 3, /* Elements count */ - &asn_SPC_E_RABs_ToBeAdded_SgNBAddReqAck_ItemExtIEs_specs_189 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_extensionValue_196[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresentExtIEs__extensionValue, choice.PDCPSnLength), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_PDCPSnLength, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "PDCPSnLength" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_extensionValue_tag2el_196[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 0, 0, 0 } /* PDCPSnLength */ -}; -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_196 = { - sizeof(struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresentExtIEs__extensionValue), - offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresentExtIEs__extensionValue, _asn_ctx), - offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresentExtIEs__extensionValue, present), - sizeof(((struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresentExtIEs__extensionValue *)0)->present), - asn_MAP_extensionValue_tag2el_196, - 1, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_196 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_extensionValue_196, - 1, /* Elements count */ - &asn_SPC_extensionValue_specs_196 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresentExtIEs_193[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresentExtIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_194, memb_id_constraint_193 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresentExtIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresentExtIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_195, memb_criticality_constraint_193 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresentExtIEs, extensionValue), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_extensionValue_196, - select_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresentExtIEs_extensionValue_type, - { 0, &asn_PER_memb_extensionValue_constr_196, memb_extensionValue_constraint_193 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresentExtIEs_tags_193[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresentExtIEs_tag2el_193[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* extensionValue */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresentExtIEs_specs_193 = { - sizeof(struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresentExtIEs), - offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresentExtIEs, _asn_ctx), - asn_MAP_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresentExtIEs_tag2el_193, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresentExtIEs = { - "E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPpresentExtIEs", - "E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPpresentExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresentExtIEs_tags_193, - sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresentExtIEs_tags_193) - /sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresentExtIEs_tags_193[0]), /* 1 */ - asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresentExtIEs_tags_193, /* Same as above */ - sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresentExtIEs_tags_193) - /sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresentExtIEs_tags_193[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresentExtIEs_193, - 3, /* Elements count */ - &asn_SPC_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresentExtIEs_specs_193 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_extensionValue_200[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresentExtIEs__extensionValue, choice.LCID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_LCID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "LCID" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_extensionValue_tag2el_200[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 } /* LCID */ -}; -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_200 = { - sizeof(struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresentExtIEs__extensionValue), - offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresentExtIEs__extensionValue, _asn_ctx), - offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresentExtIEs__extensionValue, present), - sizeof(((struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresentExtIEs__extensionValue *)0)->present), - asn_MAP_extensionValue_tag2el_200, - 1, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_200 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_extensionValue_200, - 1, /* Elements count */ - &asn_SPC_extensionValue_specs_200 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresentExtIEs_197[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresentExtIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_198, memb_id_constraint_197 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresentExtIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresentExtIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_199, memb_criticality_constraint_197 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresentExtIEs, extensionValue), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_extensionValue_200, - select_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresentExtIEs_extensionValue_type, - { 0, &asn_PER_memb_extensionValue_constr_200, memb_extensionValue_constraint_197 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresentExtIEs_tags_197[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresentExtIEs_tag2el_197[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* extensionValue */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresentExtIEs_specs_197 = { - sizeof(struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresentExtIEs), - offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresentExtIEs, _asn_ctx), - asn_MAP_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresentExtIEs_tag2el_197, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresentExtIEs = { - "E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPnotpresentExtIEs", - "E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPnotpresentExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresentExtIEs_tags_197, - sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresentExtIEs_tags_197) - /sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresentExtIEs_tags_197[0]), /* 1 */ - asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresentExtIEs_tags_197, /* Same as above */ - sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresentExtIEs_tags_197) - /sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresentExtIEs_tags_197[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresentExtIEs_197, - 3, /* Elements count */ - &asn_SPC_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresentExtIEs_specs_197 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_204 = { - sizeof(struct ResponseInformationSgNBReconfComp_SuccessItemExtIEs__extensionValue), - offsetof(struct ResponseInformationSgNBReconfComp_SuccessItemExtIEs__extensionValue, _asn_ctx), - offsetof(struct ResponseInformationSgNBReconfComp_SuccessItemExtIEs__extensionValue, present), - sizeof(((struct ResponseInformationSgNBReconfComp_SuccessItemExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_204 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_204 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ResponseInformationSgNBReconfComp_SuccessItemExtIEs_201[] = { - { ATF_NOFLAGS, 0, offsetof(struct ResponseInformationSgNBReconfComp_SuccessItemExtIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_202, memb_id_constraint_201 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct ResponseInformationSgNBReconfComp_SuccessItemExtIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_203, memb_criticality_constraint_201 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ResponseInformationSgNBReconfComp_SuccessItemExtIEs, extensionValue), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_extensionValue_204, - 0, - { 0, &asn_PER_memb_extensionValue_constr_204, memb_extensionValue_constraint_201 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_ResponseInformationSgNBReconfComp_SuccessItemExtIEs_tags_201[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ResponseInformationSgNBReconfComp_SuccessItemExtIEs_tag2el_201[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* extensionValue */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ResponseInformationSgNBReconfComp_SuccessItemExtIEs_specs_201 = { - sizeof(struct ResponseInformationSgNBReconfComp_SuccessItemExtIEs), - offsetof(struct ResponseInformationSgNBReconfComp_SuccessItemExtIEs, _asn_ctx), - asn_MAP_ResponseInformationSgNBReconfComp_SuccessItemExtIEs_tag2el_201, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ResponseInformationSgNBReconfComp_SuccessItemExtIEs = { - "ResponseInformationSgNBReconfComp-SuccessItemExtIEs", - "ResponseInformationSgNBReconfComp-SuccessItemExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_ResponseInformationSgNBReconfComp_SuccessItemExtIEs_tags_201, - sizeof(asn_DEF_ResponseInformationSgNBReconfComp_SuccessItemExtIEs_tags_201) - /sizeof(asn_DEF_ResponseInformationSgNBReconfComp_SuccessItemExtIEs_tags_201[0]), /* 1 */ - asn_DEF_ResponseInformationSgNBReconfComp_SuccessItemExtIEs_tags_201, /* Same as above */ - sizeof(asn_DEF_ResponseInformationSgNBReconfComp_SuccessItemExtIEs_tags_201) - /sizeof(asn_DEF_ResponseInformationSgNBReconfComp_SuccessItemExtIEs_tags_201[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ResponseInformationSgNBReconfComp_SuccessItemExtIEs_201, - 3, /* Elements count */ - &asn_SPC_ResponseInformationSgNBReconfComp_SuccessItemExtIEs_specs_201 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_208 = { - sizeof(struct ResponseInformationSgNBReconfComp_RejectByMeNBItemExtIEs__extensionValue), - offsetof(struct ResponseInformationSgNBReconfComp_RejectByMeNBItemExtIEs__extensionValue, _asn_ctx), - offsetof(struct ResponseInformationSgNBReconfComp_RejectByMeNBItemExtIEs__extensionValue, present), - sizeof(((struct ResponseInformationSgNBReconfComp_RejectByMeNBItemExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_208 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_208 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ResponseInformationSgNBReconfComp_RejectByMeNBItemExtIEs_205[] = { - { ATF_NOFLAGS, 0, offsetof(struct ResponseInformationSgNBReconfComp_RejectByMeNBItemExtIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_206, memb_id_constraint_205 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct ResponseInformationSgNBReconfComp_RejectByMeNBItemExtIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_207, memb_criticality_constraint_205 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ResponseInformationSgNBReconfComp_RejectByMeNBItemExtIEs, extensionValue), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_extensionValue_208, - 0, - { 0, &asn_PER_memb_extensionValue_constr_208, memb_extensionValue_constraint_205 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_ResponseInformationSgNBReconfComp_RejectByMeNBItemExtIEs_tags_205[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ResponseInformationSgNBReconfComp_RejectByMeNBItemExtIEs_tag2el_205[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* extensionValue */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ResponseInformationSgNBReconfComp_RejectByMeNBItemExtIEs_specs_205 = { - sizeof(struct ResponseInformationSgNBReconfComp_RejectByMeNBItemExtIEs), - offsetof(struct ResponseInformationSgNBReconfComp_RejectByMeNBItemExtIEs, _asn_ctx), - asn_MAP_ResponseInformationSgNBReconfComp_RejectByMeNBItemExtIEs_tag2el_205, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ResponseInformationSgNBReconfComp_RejectByMeNBItemExtIEs = { - "ResponseInformationSgNBReconfComp-RejectByMeNBItemExtIEs", - "ResponseInformationSgNBReconfComp-RejectByMeNBItemExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_ResponseInformationSgNBReconfComp_RejectByMeNBItemExtIEs_tags_205, - sizeof(asn_DEF_ResponseInformationSgNBReconfComp_RejectByMeNBItemExtIEs_tags_205) - /sizeof(asn_DEF_ResponseInformationSgNBReconfComp_RejectByMeNBItemExtIEs_tags_205[0]), /* 1 */ - asn_DEF_ResponseInformationSgNBReconfComp_RejectByMeNBItemExtIEs_tags_205, /* Same as above */ - sizeof(asn_DEF_ResponseInformationSgNBReconfComp_RejectByMeNBItemExtIEs_tags_205) - /sizeof(asn_DEF_ResponseInformationSgNBReconfComp_RejectByMeNBItemExtIEs_tags_205[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ResponseInformationSgNBReconfComp_RejectByMeNBItemExtIEs_205, - 3, /* Elements count */ - &asn_SPC_ResponseInformationSgNBReconfComp_RejectByMeNBItemExtIEs_specs_205 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_extensionValue_212[] = { - { ATF_NOFLAGS, 0, offsetof(struct UE_ContextInformationSgNBModReqExtIEs__extensionValue, choice.SubscriberProfileIDforRFP), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_SubscriberProfileIDforRFP, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "SubscriberProfileIDforRFP" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_extensionValue_tag2el_212[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 } /* SubscriberProfileIDforRFP */ -}; -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_212 = { - sizeof(struct UE_ContextInformationSgNBModReqExtIEs__extensionValue), - offsetof(struct UE_ContextInformationSgNBModReqExtIEs__extensionValue, _asn_ctx), - offsetof(struct UE_ContextInformationSgNBModReqExtIEs__extensionValue, present), - sizeof(((struct UE_ContextInformationSgNBModReqExtIEs__extensionValue *)0)->present), - asn_MAP_extensionValue_tag2el_212, - 1, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_212 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_extensionValue_212, - 1, /* Elements count */ - &asn_SPC_extensionValue_specs_212 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_UE_ContextInformationSgNBModReqExtIEs_209[] = { - { ATF_NOFLAGS, 0, offsetof(struct UE_ContextInformationSgNBModReqExtIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_210, memb_id_constraint_209 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct UE_ContextInformationSgNBModReqExtIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_UE_ContextInformationSgNBModReqExtIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_211, memb_criticality_constraint_209 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct UE_ContextInformationSgNBModReqExtIEs, extensionValue), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_extensionValue_212, - select_UE_ContextInformationSgNBModReqExtIEs_extensionValue_type, - { 0, &asn_PER_memb_extensionValue_constr_212, memb_extensionValue_constraint_209 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_UE_ContextInformationSgNBModReqExtIEs_tags_209[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_UE_ContextInformationSgNBModReqExtIEs_tag2el_209[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* extensionValue */ -}; -asn_SEQUENCE_specifics_t asn_SPC_UE_ContextInformationSgNBModReqExtIEs_specs_209 = { - sizeof(struct UE_ContextInformationSgNBModReqExtIEs), - offsetof(struct UE_ContextInformationSgNBModReqExtIEs, _asn_ctx), - asn_MAP_UE_ContextInformationSgNBModReqExtIEs_tag2el_209, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_UE_ContextInformationSgNBModReqExtIEs = { - "UE-ContextInformationSgNBModReqExtIEs", - "UE-ContextInformationSgNBModReqExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_UE_ContextInformationSgNBModReqExtIEs_tags_209, - sizeof(asn_DEF_UE_ContextInformationSgNBModReqExtIEs_tags_209) - /sizeof(asn_DEF_UE_ContextInformationSgNBModReqExtIEs_tags_209[0]), /* 1 */ - asn_DEF_UE_ContextInformationSgNBModReqExtIEs_tags_209, /* Same as above */ - sizeof(asn_DEF_UE_ContextInformationSgNBModReqExtIEs_tags_209) - /sizeof(asn_DEF_UE_ContextInformationSgNBModReqExtIEs_tags_209[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_UE_ContextInformationSgNBModReqExtIEs_209, - 3, /* Elements count */ - &asn_SPC_UE_ContextInformationSgNBModReqExtIEs_specs_209 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_216 = { - sizeof(struct E_RABs_ToBeAdded_SgNBModReq_ItemExtIEs__extensionValue), - offsetof(struct E_RABs_ToBeAdded_SgNBModReq_ItemExtIEs__extensionValue, _asn_ctx), - offsetof(struct E_RABs_ToBeAdded_SgNBModReq_ItemExtIEs__extensionValue, present), - sizeof(((struct E_RABs_ToBeAdded_SgNBModReq_ItemExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_216 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_216 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E_RABs_ToBeAdded_SgNBModReq_ItemExtIEs_213[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_SgNBModReq_ItemExtIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_214, memb_id_constraint_213 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_SgNBModReq_ItemExtIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_215, memb_criticality_constraint_213 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_SgNBModReq_ItemExtIEs, extensionValue), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_extensionValue_216, - 0, - { 0, &asn_PER_memb_extensionValue_constr_216, memb_extensionValue_constraint_213 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeAdded_SgNBModReq_ItemExtIEs_tags_213[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeAdded_SgNBModReq_ItemExtIEs_tag2el_213[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* extensionValue */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeAdded_SgNBModReq_ItemExtIEs_specs_213 = { - sizeof(struct E_RABs_ToBeAdded_SgNBModReq_ItemExtIEs), - offsetof(struct E_RABs_ToBeAdded_SgNBModReq_ItemExtIEs, _asn_ctx), - asn_MAP_E_RABs_ToBeAdded_SgNBModReq_ItemExtIEs_tag2el_213, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_SgNBModReq_ItemExtIEs = { - "E-RABs-ToBeAdded-SgNBModReq-ItemExtIEs", - "E-RABs-ToBeAdded-SgNBModReq-ItemExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_ToBeAdded_SgNBModReq_ItemExtIEs_tags_213, - sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBModReq_ItemExtIEs_tags_213) - /sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBModReq_ItemExtIEs_tags_213[0]), /* 1 */ - asn_DEF_E_RABs_ToBeAdded_SgNBModReq_ItemExtIEs_tags_213, /* Same as above */ - sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBModReq_ItemExtIEs_tags_213) - /sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBModReq_ItemExtIEs_tags_213[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_ToBeAdded_SgNBModReq_ItemExtIEs_213, - 3, /* Elements count */ - &asn_SPC_E_RABs_ToBeAdded_SgNBModReq_ItemExtIEs_specs_213 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_extensionValue_220[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresentExtIEs__extensionValue, choice.RLCMode), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_RLCMode, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RLCMode" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_extensionValue_tag2el_220[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 0, 0, 0 } /* RLCMode */ -}; -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_220 = { - sizeof(struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresentExtIEs__extensionValue), - offsetof(struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresentExtIEs__extensionValue, _asn_ctx), - offsetof(struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresentExtIEs__extensionValue, present), - sizeof(((struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresentExtIEs__extensionValue *)0)->present), - asn_MAP_extensionValue_tag2el_220, - 1, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_220 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_extensionValue_220, - 1, /* Elements count */ - &asn_SPC_extensionValue_specs_220 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresentExtIEs_217[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresentExtIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_218, memb_id_constraint_217 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresentExtIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresentExtIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_219, memb_criticality_constraint_217 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresentExtIEs, extensionValue), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_extensionValue_220, - select_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresentExtIEs_extensionValue_type, - { 0, &asn_PER_memb_extensionValue_constr_220, memb_extensionValue_constraint_217 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresentExtIEs_tags_217[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresentExtIEs_tag2el_217[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* extensionValue */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresentExtIEs_specs_217 = { - sizeof(struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresentExtIEs), - offsetof(struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresentExtIEs, _asn_ctx), - asn_MAP_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresentExtIEs_tag2el_217, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresentExtIEs = { - "E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPpresentExtIEs", - "E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPpresentExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresentExtIEs_tags_217, - sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresentExtIEs_tags_217) - /sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresentExtIEs_tags_217[0]), /* 1 */ - asn_DEF_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresentExtIEs_tags_217, /* Same as above */ - sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresentExtIEs_tags_217) - /sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresentExtIEs_tags_217[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresentExtIEs_217, - 3, /* Elements count */ - &asn_SPC_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresentExtIEs_specs_217 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_extensionValue_224[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue, choice.PDCPSnLength), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_PDCPSnLength, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "PDCPSnLength" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue, choice.DuplicationActivation), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_DuplicationActivation, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "DuplicationActivation" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_extensionValue_tag2el_224[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 0, 0, 1 }, /* PDCPSnLength */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, -1, 0 } /* DuplicationActivation */ -}; -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_224 = { - sizeof(struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue), - offsetof(struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue, _asn_ctx), - offsetof(struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue, present), - sizeof(((struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue *)0)->present), - asn_MAP_extensionValue_tag2el_224, - 2, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_224 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_extensionValue_224, - 2, /* Elements count */ - &asn_SPC_extensionValue_specs_224 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_221[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_222, memb_id_constraint_221 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_223, memb_criticality_constraint_221 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs, extensionValue), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_extensionValue_224, - select_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_extensionValue_type, - { 0, &asn_PER_memb_extensionValue_constr_224, memb_extensionValue_constraint_221 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_tags_221[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_tag2el_221[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* extensionValue */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_specs_221 = { - sizeof(struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs), - offsetof(struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs, _asn_ctx), - asn_MAP_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_tag2el_221, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs = { - "E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPnotpresentExtIEs", - "E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPnotpresentExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_tags_221, - sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_tags_221) - /sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_tags_221[0]), /* 1 */ - asn_DEF_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_tags_221, /* Same as above */ - sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_tags_221) - /sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_tags_221[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_221, - 3, /* Elements count */ - &asn_SPC_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_specs_221 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_228 = { - sizeof(struct E_RABs_ToBeModified_SgNBModReq_ItemExtIEs__extensionValue), - offsetof(struct E_RABs_ToBeModified_SgNBModReq_ItemExtIEs__extensionValue, _asn_ctx), - offsetof(struct E_RABs_ToBeModified_SgNBModReq_ItemExtIEs__extensionValue, present), - sizeof(((struct E_RABs_ToBeModified_SgNBModReq_ItemExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_228 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_228 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E_RABs_ToBeModified_SgNBModReq_ItemExtIEs_225[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeModified_SgNBModReq_ItemExtIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_226, memb_id_constraint_225 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeModified_SgNBModReq_ItemExtIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_227, memb_criticality_constraint_225 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeModified_SgNBModReq_ItemExtIEs, extensionValue), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_extensionValue_228, - 0, - { 0, &asn_PER_memb_extensionValue_constr_228, memb_extensionValue_constraint_225 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeModified_SgNBModReq_ItemExtIEs_tags_225[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeModified_SgNBModReq_ItemExtIEs_tag2el_225[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* extensionValue */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeModified_SgNBModReq_ItemExtIEs_specs_225 = { - sizeof(struct E_RABs_ToBeModified_SgNBModReq_ItemExtIEs), - offsetof(struct E_RABs_ToBeModified_SgNBModReq_ItemExtIEs, _asn_ctx), - asn_MAP_E_RABs_ToBeModified_SgNBModReq_ItemExtIEs_tag2el_225, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeModified_SgNBModReq_ItemExtIEs = { - "E-RABs-ToBeModified-SgNBModReq-ItemExtIEs", - "E-RABs-ToBeModified-SgNBModReq-ItemExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_ToBeModified_SgNBModReq_ItemExtIEs_tags_225, - sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReq_ItemExtIEs_tags_225) - /sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReq_ItemExtIEs_tags_225[0]), /* 1 */ - asn_DEF_E_RABs_ToBeModified_SgNBModReq_ItemExtIEs_tags_225, /* Same as above */ - sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReq_ItemExtIEs_tags_225) - /sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReq_ItemExtIEs_tags_225[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_ToBeModified_SgNBModReq_ItemExtIEs_225, - 3, /* Elements count */ - &asn_SPC_E_RABs_ToBeModified_SgNBModReq_ItemExtIEs_specs_225 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_extensionValue_232[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresentExtIEs__extensionValue, choice.RLC_Status), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RLC_Status, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RLC-Status" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_extensionValue_tag2el_232[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RLC-Status */ -}; -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_232 = { - sizeof(struct E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresentExtIEs__extensionValue), - offsetof(struct E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresentExtIEs__extensionValue, _asn_ctx), - offsetof(struct E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresentExtIEs__extensionValue, present), - sizeof(((struct E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresentExtIEs__extensionValue *)0)->present), - asn_MAP_extensionValue_tag2el_232, - 1, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_232 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_extensionValue_232, - 1, /* Elements count */ - &asn_SPC_extensionValue_specs_232 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresentExtIEs_229[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresentExtIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_230, memb_id_constraint_229 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresentExtIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresentExtIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_231, memb_criticality_constraint_229 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresentExtIEs, extensionValue), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_extensionValue_232, - select_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresentExtIEs_extensionValue_type, - { 0, &asn_PER_memb_extensionValue_constr_232, memb_extensionValue_constraint_229 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresentExtIEs_tags_229[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresentExtIEs_tag2el_229[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* extensionValue */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresentExtIEs_specs_229 = { - sizeof(struct E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresentExtIEs), - offsetof(struct E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresentExtIEs, _asn_ctx), - asn_MAP_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresentExtIEs_tag2el_229, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresentExtIEs = { - "E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPpresentExtIEs", - "E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPpresentExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresentExtIEs_tags_229, - sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresentExtIEs_tags_229) - /sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresentExtIEs_tags_229[0]), /* 1 */ - asn_DEF_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresentExtIEs_tags_229, /* Same as above */ - sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresentExtIEs_tags_229) - /sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresentExtIEs_tags_229[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresentExtIEs_229, - 3, /* Elements count */ - &asn_SPC_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresentExtIEs_specs_229 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_extensionValue_236[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue, choice.PDCPSnLength), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_PDCPSnLength, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "PDCPSnLength" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue, choice.GTPtunnelEndpoint), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_GTPtunnelEndpoint, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "GTPtunnelEndpoint" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_extensionValue_tag2el_236[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 0, 0, 0 }, /* PDCPSnLength */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 0 } /* GTPtunnelEndpoint */ -}; -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_236 = { - sizeof(struct E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue), - offsetof(struct E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue, _asn_ctx), - offsetof(struct E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue, present), - sizeof(((struct E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue *)0)->present), - asn_MAP_extensionValue_tag2el_236, - 2, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_236 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_extensionValue_236, - 2, /* Elements count */ - &asn_SPC_extensionValue_specs_236 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_233[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_234, memb_id_constraint_233 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_235, memb_criticality_constraint_233 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs, extensionValue), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_extensionValue_236, - select_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_extensionValue_type, - { 0, &asn_PER_memb_extensionValue_constr_236, memb_extensionValue_constraint_233 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_tags_233[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_tag2el_233[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* extensionValue */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_specs_233 = { - sizeof(struct E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs), - offsetof(struct E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs, _asn_ctx), - asn_MAP_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_tag2el_233, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs = { - "E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPnotpresentExtIEs", - "E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPnotpresentExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_tags_233, - sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_tags_233) - /sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_tags_233[0]), /* 1 */ - asn_DEF_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_tags_233, /* Same as above */ - sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_tags_233) - /sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_tags_233[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_233, - 3, /* Elements count */ - &asn_SPC_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_specs_233 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_240 = { - sizeof(struct E_RABs_ToBeReleased_SgNBModReq_ItemExtIEs__extensionValue), - offsetof(struct E_RABs_ToBeReleased_SgNBModReq_ItemExtIEs__extensionValue, _asn_ctx), - offsetof(struct E_RABs_ToBeReleased_SgNBModReq_ItemExtIEs__extensionValue, present), - sizeof(((struct E_RABs_ToBeReleased_SgNBModReq_ItemExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_240 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_240 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBModReq_ItemExtIEs_237[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBModReq_ItemExtIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_238, memb_id_constraint_237 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBModReq_ItemExtIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_239, memb_criticality_constraint_237 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBModReq_ItemExtIEs, extensionValue), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_extensionValue_240, - 0, - { 0, &asn_PER_memb_extensionValue_constr_240, memb_extensionValue_constraint_237 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeReleased_SgNBModReq_ItemExtIEs_tags_237[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeReleased_SgNBModReq_ItemExtIEs_tag2el_237[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* extensionValue */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBModReq_ItemExtIEs_specs_237 = { - sizeof(struct E_RABs_ToBeReleased_SgNBModReq_ItemExtIEs), - offsetof(struct E_RABs_ToBeReleased_SgNBModReq_ItemExtIEs, _asn_ctx), - asn_MAP_E_RABs_ToBeReleased_SgNBModReq_ItemExtIEs_tag2el_237, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBModReq_ItemExtIEs = { - "E-RABs-ToBeReleased-SgNBModReq-ItemExtIEs", - "E-RABs-ToBeReleased-SgNBModReq-ItemExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_ToBeReleased_SgNBModReq_ItemExtIEs_tags_237, - sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBModReq_ItemExtIEs_tags_237) - /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBModReq_ItemExtIEs_tags_237[0]), /* 1 */ - asn_DEF_E_RABs_ToBeReleased_SgNBModReq_ItemExtIEs_tags_237, /* Same as above */ - sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBModReq_ItemExtIEs_tags_237) - /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBModReq_ItemExtIEs_tags_237[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_ToBeReleased_SgNBModReq_ItemExtIEs_237, - 3, /* Elements count */ - &asn_SPC_E_RABs_ToBeReleased_SgNBModReq_ItemExtIEs_specs_237 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_244 = { - sizeof(struct E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresentExtIEs__extensionValue), - offsetof(struct E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresentExtIEs__extensionValue, _asn_ctx), - offsetof(struct E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresentExtIEs__extensionValue, present), - sizeof(((struct E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresentExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_244 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_244 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresentExtIEs_241[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresentExtIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_242, memb_id_constraint_241 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresentExtIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_243, memb_criticality_constraint_241 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresentExtIEs, extensionValue), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_extensionValue_244, - 0, - { 0, &asn_PER_memb_extensionValue_constr_244, memb_extensionValue_constraint_241 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresentExtIEs_tags_241[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresentExtIEs_tag2el_241[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* extensionValue */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresentExtIEs_specs_241 = { - sizeof(struct E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresentExtIEs), - offsetof(struct E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresentExtIEs, _asn_ctx), - asn_MAP_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresentExtIEs_tag2el_241, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresentExtIEs = { - "E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPpresentExtIEs", - "E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPpresentExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresentExtIEs_tags_241, - sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresentExtIEs_tags_241) - /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresentExtIEs_tags_241[0]), /* 1 */ - asn_DEF_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresentExtIEs_tags_241, /* Same as above */ - sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresentExtIEs_tags_241) - /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresentExtIEs_tags_241[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresentExtIEs_241, - 3, /* Elements count */ - &asn_SPC_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresentExtIEs_specs_241 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_248 = { - sizeof(struct E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue), - offsetof(struct E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue, _asn_ctx), - offsetof(struct E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue, present), - sizeof(((struct E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_248 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_248 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_245[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_246, memb_id_constraint_245 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_247, memb_criticality_constraint_245 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs, extensionValue), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_extensionValue_248, - 0, - { 0, &asn_PER_memb_extensionValue_constr_248, memb_extensionValue_constraint_245 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_tags_245[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_tag2el_245[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* extensionValue */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_specs_245 = { - sizeof(struct E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs), - offsetof(struct E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs, _asn_ctx), - asn_MAP_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_tag2el_245, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs = { - "E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPnotpresentExtIEs", - "E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPnotpresentExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_tags_245, - sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_tags_245) - /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_tags_245[0]), /* 1 */ - asn_DEF_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_tags_245, /* Same as above */ - sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_tags_245) - /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_tags_245[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_245, - 3, /* Elements count */ - &asn_SPC_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_specs_245 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_252 = { - sizeof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemExtIEs__extensionValue), - offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemExtIEs__extensionValue, _asn_ctx), - offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemExtIEs__extensionValue, present), - sizeof(((struct E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_252 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_252 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemExtIEs_249[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemExtIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_250, memb_id_constraint_249 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemExtIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_251, memb_criticality_constraint_249 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemExtIEs, extensionValue), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_extensionValue_252, - 0, - { 0, &asn_PER_memb_extensionValue_constr_252, memb_extensionValue_constraint_249 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemExtIEs_tags_249[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemExtIEs_tag2el_249[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* extensionValue */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemExtIEs_specs_249 = { - sizeof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemExtIEs), - offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemExtIEs, _asn_ctx), - asn_MAP_E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemExtIEs_tag2el_249, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemExtIEs = { - "E-RABs-Admitted-ToBeAdded-SgNBModAck-ItemExtIEs", - "E-RABs-Admitted-ToBeAdded-SgNBModAck-ItemExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemExtIEs_tags_249, - sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemExtIEs_tags_249) - /sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemExtIEs_tags_249[0]), /* 1 */ - asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemExtIEs_tags_249, /* Same as above */ - sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemExtIEs_tags_249) - /sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemExtIEs_tags_249[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemExtIEs_249, - 3, /* Elements count */ - &asn_SPC_E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemExtIEs_specs_249 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_extensionValue_256[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresentExtIEs__extensionValue, choice.PDCPSnLength), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_PDCPSnLength, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "PDCPSnLength" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_extensionValue_tag2el_256[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 0, 0, 0 } /* PDCPSnLength */ -}; -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_256 = { - sizeof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresentExtIEs__extensionValue), - offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresentExtIEs__extensionValue, _asn_ctx), - offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresentExtIEs__extensionValue, present), - sizeof(((struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresentExtIEs__extensionValue *)0)->present), - asn_MAP_extensionValue_tag2el_256, - 1, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_256 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_extensionValue_256, - 1, /* Elements count */ - &asn_SPC_extensionValue_specs_256 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresentExtIEs_253[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresentExtIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_254, memb_id_constraint_253 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresentExtIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresentExtIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_255, memb_criticality_constraint_253 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresentExtIEs, extensionValue), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_extensionValue_256, - select_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresentExtIEs_extensionValue_type, - { 0, &asn_PER_memb_extensionValue_constr_256, memb_extensionValue_constraint_253 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresentExtIEs_tags_253[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresentExtIEs_tag2el_253[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* extensionValue */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresentExtIEs_specs_253 = { - sizeof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresentExtIEs), - offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresentExtIEs, _asn_ctx), - asn_MAP_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresentExtIEs_tag2el_253, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresentExtIEs = { - "E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPpresentExtIEs", - "E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPpresentExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresentExtIEs_tags_253, - sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresentExtIEs_tags_253) - /sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresentExtIEs_tags_253[0]), /* 1 */ - asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresentExtIEs_tags_253, /* Same as above */ - sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresentExtIEs_tags_253) - /sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresentExtIEs_tags_253[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresentExtIEs_253, - 3, /* Elements count */ - &asn_SPC_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresentExtIEs_specs_253 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_extensionValue_260[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs__extensionValue, choice.LCID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_LCID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "LCID" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_extensionValue_tag2el_260[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 } /* LCID */ -}; -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_260 = { - sizeof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs__extensionValue), - offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs__extensionValue, _asn_ctx), - offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs__extensionValue, present), - sizeof(((struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs__extensionValue *)0)->present), - asn_MAP_extensionValue_tag2el_260, - 1, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_260 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_extensionValue_260, - 1, /* Elements count */ - &asn_SPC_extensionValue_specs_260 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_257[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_258, memb_id_constraint_257 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_259, memb_criticality_constraint_257 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs, extensionValue), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_extensionValue_260, - select_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_extensionValue_type, - { 0, &asn_PER_memb_extensionValue_constr_260, memb_extensionValue_constraint_257 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_tags_257[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_tag2el_257[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* extensionValue */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_specs_257 = { - sizeof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs), - offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs, _asn_ctx), - asn_MAP_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_tag2el_257, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs = { - "E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPnotpresentExtIEs", - "E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPnotpresentExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_tags_257, - sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_tags_257) - /sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_tags_257[0]), /* 1 */ - asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_tags_257, /* Same as above */ - sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_tags_257) - /sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_tags_257[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_257, - 3, /* Elements count */ - &asn_SPC_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_specs_257 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_264 = { - sizeof(struct E_RABs_ToBeAdded_SgNBModAck_ItemExtIEs__extensionValue), - offsetof(struct E_RABs_ToBeAdded_SgNBModAck_ItemExtIEs__extensionValue, _asn_ctx), - offsetof(struct E_RABs_ToBeAdded_SgNBModAck_ItemExtIEs__extensionValue, present), - sizeof(((struct E_RABs_ToBeAdded_SgNBModAck_ItemExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_264 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_264 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E_RABs_ToBeAdded_SgNBModAck_ItemExtIEs_261[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_SgNBModAck_ItemExtIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_262, memb_id_constraint_261 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_SgNBModAck_ItemExtIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_263, memb_criticality_constraint_261 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_SgNBModAck_ItemExtIEs, extensionValue), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_extensionValue_264, - 0, - { 0, &asn_PER_memb_extensionValue_constr_264, memb_extensionValue_constraint_261 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeAdded_SgNBModAck_ItemExtIEs_tags_261[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeAdded_SgNBModAck_ItemExtIEs_tag2el_261[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* extensionValue */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeAdded_SgNBModAck_ItemExtIEs_specs_261 = { - sizeof(struct E_RABs_ToBeAdded_SgNBModAck_ItemExtIEs), - offsetof(struct E_RABs_ToBeAdded_SgNBModAck_ItemExtIEs, _asn_ctx), - asn_MAP_E_RABs_ToBeAdded_SgNBModAck_ItemExtIEs_tag2el_261, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_SgNBModAck_ItemExtIEs = { - "E-RABs-ToBeAdded-SgNBModAck-ItemExtIEs", - "E-RABs-ToBeAdded-SgNBModAck-ItemExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_ToBeAdded_SgNBModAck_ItemExtIEs_tags_261, - sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBModAck_ItemExtIEs_tags_261) - /sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBModAck_ItemExtIEs_tags_261[0]), /* 1 */ - asn_DEF_E_RABs_ToBeAdded_SgNBModAck_ItemExtIEs_tags_261, /* Same as above */ - sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBModAck_ItemExtIEs_tags_261) - /sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBModAck_ItemExtIEs_tags_261[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_ToBeAdded_SgNBModAck_ItemExtIEs_261, - 3, /* Elements count */ - &asn_SPC_E_RABs_ToBeAdded_SgNBModAck_ItemExtIEs_specs_261 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_extensionValue_268[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresentExtIEs__extensionValue, choice.PDCPSnLength), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_PDCPSnLength, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "PDCPSnLength" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_extensionValue_tag2el_268[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 0, 0, 0 } /* PDCPSnLength */ -}; -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_268 = { - sizeof(struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresentExtIEs__extensionValue), - offsetof(struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresentExtIEs__extensionValue, _asn_ctx), - offsetof(struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresentExtIEs__extensionValue, present), - sizeof(((struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresentExtIEs__extensionValue *)0)->present), - asn_MAP_extensionValue_tag2el_268, - 1, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_268 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_extensionValue_268, - 1, /* Elements count */ - &asn_SPC_extensionValue_specs_268 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresentExtIEs_265[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresentExtIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_266, memb_id_constraint_265 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresentExtIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresentExtIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_267, memb_criticality_constraint_265 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresentExtIEs, extensionValue), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_extensionValue_268, - select_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresentExtIEs_extensionValue_type, - { 0, &asn_PER_memb_extensionValue_constr_268, memb_extensionValue_constraint_265 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresentExtIEs_tags_265[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresentExtIEs_tag2el_265[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* extensionValue */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresentExtIEs_specs_265 = { - sizeof(struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresentExtIEs), - offsetof(struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresentExtIEs, _asn_ctx), - asn_MAP_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresentExtIEs_tag2el_265, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresentExtIEs = { - "E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPpresentExtIEs", - "E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPpresentExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresentExtIEs_tags_265, - sizeof(asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresentExtIEs_tags_265) - /sizeof(asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresentExtIEs_tags_265[0]), /* 1 */ - asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresentExtIEs_tags_265, /* Same as above */ - sizeof(asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresentExtIEs_tags_265) - /sizeof(asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresentExtIEs_tags_265[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresentExtIEs_265, - 3, /* Elements count */ - &asn_SPC_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresentExtIEs_specs_265 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_extensionValue_272[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs__extensionValue, choice.GTPtunnelEndpoint), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_GTPtunnelEndpoint, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "GTPtunnelEndpoint" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs__extensionValue, choice.RLC_Status), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RLC_Status, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RLC-Status" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_extensionValue_tag2el_272[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 1 }, /* GTPtunnelEndpoint */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 0 } /* RLC-Status */ -}; -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_272 = { - sizeof(struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs__extensionValue), - offsetof(struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs__extensionValue, _asn_ctx), - offsetof(struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs__extensionValue, present), - sizeof(((struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs__extensionValue *)0)->present), - asn_MAP_extensionValue_tag2el_272, - 2, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_272 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_extensionValue_272, - 2, /* Elements count */ - &asn_SPC_extensionValue_specs_272 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_269[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_270, memb_id_constraint_269 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_271, memb_criticality_constraint_269 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs, extensionValue), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_extensionValue_272, - select_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_extensionValue_type, - { 0, &asn_PER_memb_extensionValue_constr_272, memb_extensionValue_constraint_269 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_tags_269[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_tag2el_269[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* extensionValue */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_specs_269 = { - sizeof(struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs), - offsetof(struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs, _asn_ctx), - asn_MAP_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_tag2el_269, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs = { - "E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPnotpresentExtIEs", - "E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPnotpresentExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_tags_269, - sizeof(asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_tags_269) - /sizeof(asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_tags_269[0]), /* 1 */ - asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_tags_269, /* Same as above */ - sizeof(asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_tags_269) - /sizeof(asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_tags_269[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_269, - 3, /* Elements count */ - &asn_SPC_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_specs_269 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_276 = { - sizeof(struct E_RABs_ToBeReleased_SgNBModAck_ItemExtIEs__extensionValue), - offsetof(struct E_RABs_ToBeReleased_SgNBModAck_ItemExtIEs__extensionValue, _asn_ctx), - offsetof(struct E_RABs_ToBeReleased_SgNBModAck_ItemExtIEs__extensionValue, present), - sizeof(((struct E_RABs_ToBeReleased_SgNBModAck_ItemExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_276 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_276 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBModAck_ItemExtIEs_273[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBModAck_ItemExtIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_274, memb_id_constraint_273 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBModAck_ItemExtIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_275, memb_criticality_constraint_273 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBModAck_ItemExtIEs, extensionValue), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_extensionValue_276, - 0, - { 0, &asn_PER_memb_extensionValue_constr_276, memb_extensionValue_constraint_273 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeReleased_SgNBModAck_ItemExtIEs_tags_273[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeReleased_SgNBModAck_ItemExtIEs_tag2el_273[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* extensionValue */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBModAck_ItemExtIEs_specs_273 = { - sizeof(struct E_RABs_ToBeReleased_SgNBModAck_ItemExtIEs), - offsetof(struct E_RABs_ToBeReleased_SgNBModAck_ItemExtIEs, _asn_ctx), - asn_MAP_E_RABs_ToBeReleased_SgNBModAck_ItemExtIEs_tag2el_273, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBModAck_ItemExtIEs = { - "E-RABs-ToBeReleased-SgNBModAck-ItemExtIEs", - "E-RABs-ToBeReleased-SgNBModAck-ItemExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_ToBeReleased_SgNBModAck_ItemExtIEs_tags_273, - sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBModAck_ItemExtIEs_tags_273) - /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBModAck_ItemExtIEs_tags_273[0]), /* 1 */ - asn_DEF_E_RABs_ToBeReleased_SgNBModAck_ItemExtIEs_tags_273, /* Same as above */ - sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBModAck_ItemExtIEs_tags_273) - /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBModAck_ItemExtIEs_tags_273[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_ToBeReleased_SgNBModAck_ItemExtIEs_273, - 3, /* Elements count */ - &asn_SPC_E_RABs_ToBeReleased_SgNBModAck_ItemExtIEs_specs_273 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_280 = { - sizeof(struct E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresentExtIEs__extensionValue), - offsetof(struct E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresentExtIEs__extensionValue, _asn_ctx), - offsetof(struct E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresentExtIEs__extensionValue, present), - sizeof(((struct E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresentExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_280 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_280 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresentExtIEs_277[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresentExtIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_278, memb_id_constraint_277 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresentExtIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_279, memb_criticality_constraint_277 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresentExtIEs, extensionValue), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_extensionValue_280, - 0, - { 0, &asn_PER_memb_extensionValue_constr_280, memb_extensionValue_constraint_277 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresentExtIEs_tags_277[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresentExtIEs_tag2el_277[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* extensionValue */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresentExtIEs_specs_277 = { - sizeof(struct E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresentExtIEs), - offsetof(struct E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresentExtIEs, _asn_ctx), - asn_MAP_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresentExtIEs_tag2el_277, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresentExtIEs = { - "E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPpresentExtIEs", - "E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPpresentExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresentExtIEs_tags_277, - sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresentExtIEs_tags_277) - /sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresentExtIEs_tags_277[0]), /* 1 */ - asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresentExtIEs_tags_277, /* Same as above */ - sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresentExtIEs_tags_277) - /sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresentExtIEs_tags_277[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresentExtIEs_277, - 3, /* Elements count */ - &asn_SPC_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresentExtIEs_specs_277 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_284 = { - sizeof(struct E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs__extensionValue), - offsetof(struct E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs__extensionValue, _asn_ctx), - offsetof(struct E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs__extensionValue, present), - sizeof(((struct E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_284 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_284 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_281[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_282, memb_id_constraint_281 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_283, memb_criticality_constraint_281 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs, extensionValue), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_extensionValue_284, - 0, - { 0, &asn_PER_memb_extensionValue_constr_284, memb_extensionValue_constraint_281 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_tags_281[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_tag2el_281[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* extensionValue */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_specs_281 = { - sizeof(struct E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs), - offsetof(struct E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs, _asn_ctx), - asn_MAP_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_tag2el_281, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs = { - "E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPnotpresentExtIEs", - "E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPnotpresentExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_tags_281, - sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_tags_281) - /sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_tags_281[0]), /* 1 */ - asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_tags_281, /* Same as above */ - sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_tags_281) - /sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_tags_281[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_281, - 3, /* Elements count */ - &asn_SPC_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_specs_281 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_extensionValue_288[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBModReqd_ItemExtIEs__extensionValue, choice.RLCMode), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_RLCMode, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RLCMode" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_extensionValue_tag2el_288[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 0, 0, 0 } /* RLCMode */ -}; -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_288 = { - sizeof(struct E_RABs_ToBeReleased_SgNBModReqd_ItemExtIEs__extensionValue), - offsetof(struct E_RABs_ToBeReleased_SgNBModReqd_ItemExtIEs__extensionValue, _asn_ctx), - offsetof(struct E_RABs_ToBeReleased_SgNBModReqd_ItemExtIEs__extensionValue, present), - sizeof(((struct E_RABs_ToBeReleased_SgNBModReqd_ItemExtIEs__extensionValue *)0)->present), - asn_MAP_extensionValue_tag2el_288, - 1, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_288 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_extensionValue_288, - 1, /* Elements count */ - &asn_SPC_extensionValue_specs_288 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBModReqd_ItemExtIEs_285[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBModReqd_ItemExtIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_286, memb_id_constraint_285 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBModReqd_ItemExtIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_E_RABs_ToBeReleased_SgNBModReqd_ItemExtIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_287, memb_criticality_constraint_285 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBModReqd_ItemExtIEs, extensionValue), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_extensionValue_288, - select_E_RABs_ToBeReleased_SgNBModReqd_ItemExtIEs_extensionValue_type, - { 0, &asn_PER_memb_extensionValue_constr_288, memb_extensionValue_constraint_285 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeReleased_SgNBModReqd_ItemExtIEs_tags_285[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeReleased_SgNBModReqd_ItemExtIEs_tag2el_285[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* extensionValue */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBModReqd_ItemExtIEs_specs_285 = { - sizeof(struct E_RABs_ToBeReleased_SgNBModReqd_ItemExtIEs), - offsetof(struct E_RABs_ToBeReleased_SgNBModReqd_ItemExtIEs, _asn_ctx), - asn_MAP_E_RABs_ToBeReleased_SgNBModReqd_ItemExtIEs_tag2el_285, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBModReqd_ItemExtIEs = { - "E-RABs-ToBeReleased-SgNBModReqd-ItemExtIEs", - "E-RABs-ToBeReleased-SgNBModReqd-ItemExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_ToBeReleased_SgNBModReqd_ItemExtIEs_tags_285, - sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBModReqd_ItemExtIEs_tags_285) - /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBModReqd_ItemExtIEs_tags_285[0]), /* 1 */ - asn_DEF_E_RABs_ToBeReleased_SgNBModReqd_ItemExtIEs_tags_285, /* Same as above */ - sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBModReqd_ItemExtIEs_tags_285) - /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBModReqd_ItemExtIEs_tags_285[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_ToBeReleased_SgNBModReqd_ItemExtIEs_285, - 3, /* Elements count */ - &asn_SPC_E_RABs_ToBeReleased_SgNBModReqd_ItemExtIEs_specs_285 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_292 = { - sizeof(struct E_RABs_ToBeModified_SgNBModReqd_ItemExtIEs__extensionValue), - offsetof(struct E_RABs_ToBeModified_SgNBModReqd_ItemExtIEs__extensionValue, _asn_ctx), - offsetof(struct E_RABs_ToBeModified_SgNBModReqd_ItemExtIEs__extensionValue, present), - sizeof(((struct E_RABs_ToBeModified_SgNBModReqd_ItemExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_292 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_292 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E_RABs_ToBeModified_SgNBModReqd_ItemExtIEs_289[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeModified_SgNBModReqd_ItemExtIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_290, memb_id_constraint_289 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeModified_SgNBModReqd_ItemExtIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_291, memb_criticality_constraint_289 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeModified_SgNBModReqd_ItemExtIEs, extensionValue), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_extensionValue_292, - 0, - { 0, &asn_PER_memb_extensionValue_constr_292, memb_extensionValue_constraint_289 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeModified_SgNBModReqd_ItemExtIEs_tags_289[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeModified_SgNBModReqd_ItemExtIEs_tag2el_289[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* extensionValue */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeModified_SgNBModReqd_ItemExtIEs_specs_289 = { - sizeof(struct E_RABs_ToBeModified_SgNBModReqd_ItemExtIEs), - offsetof(struct E_RABs_ToBeModified_SgNBModReqd_ItemExtIEs, _asn_ctx), - asn_MAP_E_RABs_ToBeModified_SgNBModReqd_ItemExtIEs_tag2el_289, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeModified_SgNBModReqd_ItemExtIEs = { - "E-RABs-ToBeModified-SgNBModReqd-ItemExtIEs", - "E-RABs-ToBeModified-SgNBModReqd-ItemExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_ToBeModified_SgNBModReqd_ItemExtIEs_tags_289, - sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReqd_ItemExtIEs_tags_289) - /sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReqd_ItemExtIEs_tags_289[0]), /* 1 */ - asn_DEF_E_RABs_ToBeModified_SgNBModReqd_ItemExtIEs_tags_289, /* Same as above */ - sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReqd_ItemExtIEs_tags_289) - /sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReqd_ItemExtIEs_tags_289[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_ToBeModified_SgNBModReqd_ItemExtIEs_289, - 3, /* Elements count */ - &asn_SPC_E_RABs_ToBeModified_SgNBModReqd_ItemExtIEs_specs_289 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_extensionValue_296[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresentExtIEs__extensionValue, choice.PDCPSnLength), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_PDCPSnLength, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "PDCPSnLength" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresentExtIEs__extensionValue, choice.NewDRBIDrequest), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_NewDRBIDrequest, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "NewDRBIDrequest" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_extensionValue_tag2el_296[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 0, 0, 1 }, /* PDCPSnLength */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, -1, 0 } /* NewDRBIDrequest */ -}; -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_296 = { - sizeof(struct E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresentExtIEs__extensionValue), - offsetof(struct E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresentExtIEs__extensionValue, _asn_ctx), - offsetof(struct E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresentExtIEs__extensionValue, present), - sizeof(((struct E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresentExtIEs__extensionValue *)0)->present), - asn_MAP_extensionValue_tag2el_296, - 2, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_296 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_extensionValue_296, - 2, /* Elements count */ - &asn_SPC_extensionValue_specs_296 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresentExtIEs_293[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresentExtIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_294, memb_id_constraint_293 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresentExtIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresentExtIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_295, memb_criticality_constraint_293 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresentExtIEs, extensionValue), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_extensionValue_296, - select_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresentExtIEs_extensionValue_type, - { 0, &asn_PER_memb_extensionValue_constr_296, memb_extensionValue_constraint_293 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresentExtIEs_tags_293[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresentExtIEs_tag2el_293[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* extensionValue */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresentExtIEs_specs_293 = { - sizeof(struct E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresentExtIEs), - offsetof(struct E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresentExtIEs, _asn_ctx), - asn_MAP_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresentExtIEs_tag2el_293, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresentExtIEs = { - "E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPpresentExtIEs", - "E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPpresentExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresentExtIEs_tags_293, - sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresentExtIEs_tags_293) - /sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresentExtIEs_tags_293[0]), /* 1 */ - asn_DEF_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresentExtIEs_tags_293, /* Same as above */ - sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresentExtIEs_tags_293) - /sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresentExtIEs_tags_293[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresentExtIEs_293, - 3, /* Elements count */ - &asn_SPC_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresentExtIEs_specs_293 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_extensionValue_300[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresentExtIEs__extensionValue, choice.RLC_Status), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RLC_Status, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RLC-Status" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresentExtIEs__extensionValue, choice.LCID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_LCID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "LCID" - }, -}; -static const unsigned asn_MAP_extensionValue_to_canonical_300[] = { 1, 0 }; -static const unsigned asn_MAP_extensionValue_from_canonical_300[] = { 1, 0 }; -static const asn_TYPE_tag2member_t asn_MAP_extensionValue_tag2el_300[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* LCID */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RLC-Status */ -}; -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_300 = { - sizeof(struct E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresentExtIEs__extensionValue), - offsetof(struct E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresentExtIEs__extensionValue, _asn_ctx), - offsetof(struct E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresentExtIEs__extensionValue, present), - sizeof(((struct E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresentExtIEs__extensionValue *)0)->present), - asn_MAP_extensionValue_tag2el_300, - 2, /* Count of tags in the map */ - asn_MAP_extensionValue_to_canonical_300, - asn_MAP_extensionValue_from_canonical_300, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_300 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_extensionValue_300, - 2, /* Elements count */ - &asn_SPC_extensionValue_specs_300 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresentExtIEs_297[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresentExtIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_298, memb_id_constraint_297 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresentExtIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresentExtIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_299, memb_criticality_constraint_297 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresentExtIEs, extensionValue), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_extensionValue_300, - select_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresentExtIEs_extensionValue_type, - { 0, &asn_PER_memb_extensionValue_constr_300, memb_extensionValue_constraint_297 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresentExtIEs_tags_297[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresentExtIEs_tag2el_297[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* extensionValue */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresentExtIEs_specs_297 = { - sizeof(struct E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresentExtIEs), - offsetof(struct E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresentExtIEs, _asn_ctx), - asn_MAP_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresentExtIEs_tag2el_297, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresentExtIEs = { - "E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPnotpresentExtIEs", - "E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPnotpresentExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresentExtIEs_tags_297, - sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresentExtIEs_tags_297) - /sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresentExtIEs_tags_297[0]), /* 1 */ - asn_DEF_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresentExtIEs_tags_297, /* Same as above */ - sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresentExtIEs_tags_297) - /sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresentExtIEs_tags_297[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresentExtIEs_297, - 3, /* Elements count */ - &asn_SPC_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresentExtIEs_specs_297 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_304 = { - sizeof(struct E_RABs_AdmittedToBeModified_SgNBModConf_ItemExtIEs__extensionValue), - offsetof(struct E_RABs_AdmittedToBeModified_SgNBModConf_ItemExtIEs__extensionValue, _asn_ctx), - offsetof(struct E_RABs_AdmittedToBeModified_SgNBModConf_ItemExtIEs__extensionValue, present), - sizeof(((struct E_RABs_AdmittedToBeModified_SgNBModConf_ItemExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_304 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_304 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E_RABs_AdmittedToBeModified_SgNBModConf_ItemExtIEs_301[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_AdmittedToBeModified_SgNBModConf_ItemExtIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_302, memb_id_constraint_301 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_AdmittedToBeModified_SgNBModConf_ItemExtIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_303, memb_criticality_constraint_301 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_AdmittedToBeModified_SgNBModConf_ItemExtIEs, extensionValue), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_extensionValue_304, - 0, - { 0, &asn_PER_memb_extensionValue_constr_304, memb_extensionValue_constraint_301 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_ItemExtIEs_tags_301[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_AdmittedToBeModified_SgNBModConf_ItemExtIEs_tag2el_301[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* extensionValue */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_AdmittedToBeModified_SgNBModConf_ItemExtIEs_specs_301 = { - sizeof(struct E_RABs_AdmittedToBeModified_SgNBModConf_ItemExtIEs), - offsetof(struct E_RABs_AdmittedToBeModified_SgNBModConf_ItemExtIEs, _asn_ctx), - asn_MAP_E_RABs_AdmittedToBeModified_SgNBModConf_ItemExtIEs_tag2el_301, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_ItemExtIEs = { - "E-RABs-AdmittedToBeModified-SgNBModConf-ItemExtIEs", - "E-RABs-AdmittedToBeModified-SgNBModConf-ItemExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_ItemExtIEs_tags_301, - sizeof(asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_ItemExtIEs_tags_301) - /sizeof(asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_ItemExtIEs_tags_301[0]), /* 1 */ - asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_ItemExtIEs_tags_301, /* Same as above */ - sizeof(asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_ItemExtIEs_tags_301) - /sizeof(asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_ItemExtIEs_tags_301[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_AdmittedToBeModified_SgNBModConf_ItemExtIEs_301, - 3, /* Elements count */ - &asn_SPC_E_RABs_AdmittedToBeModified_SgNBModConf_ItemExtIEs_specs_301 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_308 = { - sizeof(struct E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresentExtIEs__extensionValue), - offsetof(struct E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresentExtIEs__extensionValue, _asn_ctx), - offsetof(struct E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresentExtIEs__extensionValue, present), - sizeof(((struct E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresentExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_308 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_308 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresentExtIEs_305[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresentExtIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_306, memb_id_constraint_305 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresentExtIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_307, memb_criticality_constraint_305 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresentExtIEs, extensionValue), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_extensionValue_308, - 0, - { 0, &asn_PER_memb_extensionValue_constr_308, memb_extensionValue_constraint_305 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresentExtIEs_tags_305[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresentExtIEs_tag2el_305[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* extensionValue */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresentExtIEs_specs_305 = { - sizeof(struct E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresentExtIEs), - offsetof(struct E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresentExtIEs, _asn_ctx), - asn_MAP_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresentExtIEs_tag2el_305, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresentExtIEs = { - "E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPpresentExtIEs", - "E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPpresentExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresentExtIEs_tags_305, - sizeof(asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresentExtIEs_tags_305) - /sizeof(asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresentExtIEs_tags_305[0]), /* 1 */ - asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresentExtIEs_tags_305, /* Same as above */ - sizeof(asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresentExtIEs_tags_305) - /sizeof(asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresentExtIEs_tags_305[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresentExtIEs_305, - 3, /* Elements count */ - &asn_SPC_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresentExtIEs_specs_305 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_extensionValue_312[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresentExtIEs__extensionValue, choice.PDCPSnLength), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_PDCPSnLength, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "PDCPSnLength" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_extensionValue_tag2el_312[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 0, 0, 0 } /* PDCPSnLength */ -}; -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_312 = { - sizeof(struct E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresentExtIEs__extensionValue), - offsetof(struct E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresentExtIEs__extensionValue, _asn_ctx), - offsetof(struct E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresentExtIEs__extensionValue, present), - sizeof(((struct E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresentExtIEs__extensionValue *)0)->present), - asn_MAP_extensionValue_tag2el_312, - 1, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_312 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_extensionValue_312, - 1, /* Elements count */ - &asn_SPC_extensionValue_specs_312 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresentExtIEs_309[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresentExtIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_310, memb_id_constraint_309 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresentExtIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresentExtIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_311, memb_criticality_constraint_309 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresentExtIEs, extensionValue), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_extensionValue_312, - select_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresentExtIEs_extensionValue_type, - { 0, &asn_PER_memb_extensionValue_constr_312, memb_extensionValue_constraint_309 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresentExtIEs_tags_309[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresentExtIEs_tag2el_309[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* extensionValue */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresentExtIEs_specs_309 = { - sizeof(struct E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresentExtIEs), - offsetof(struct E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresentExtIEs, _asn_ctx), - asn_MAP_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresentExtIEs_tag2el_309, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresentExtIEs = { - "E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPnotpresentExtIEs", - "E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPnotpresentExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresentExtIEs_tags_309, - sizeof(asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresentExtIEs_tags_309) - /sizeof(asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresentExtIEs_tags_309[0]), /* 1 */ - asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresentExtIEs_tags_309, /* Same as above */ - sizeof(asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresentExtIEs_tags_309) - /sizeof(asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresentExtIEs_tags_309[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresentExtIEs_309, - 3, /* Elements count */ - &asn_SPC_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresentExtIEs_specs_309 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_316 = { - sizeof(struct E_RABs_ToBeReleased_SgNBRelReq_ItemExtIEs__extensionValue), - offsetof(struct E_RABs_ToBeReleased_SgNBRelReq_ItemExtIEs__extensionValue, _asn_ctx), - offsetof(struct E_RABs_ToBeReleased_SgNBRelReq_ItemExtIEs__extensionValue, present), - sizeof(((struct E_RABs_ToBeReleased_SgNBRelReq_ItemExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_316 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_316 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBRelReq_ItemExtIEs_313[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBRelReq_ItemExtIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_314, memb_id_constraint_313 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBRelReq_ItemExtIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_315, memb_criticality_constraint_313 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBRelReq_ItemExtIEs, extensionValue), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_extensionValue_316, - 0, - { 0, &asn_PER_memb_extensionValue_constr_316, memb_extensionValue_constraint_313 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_ItemExtIEs_tags_313[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeReleased_SgNBRelReq_ItemExtIEs_tag2el_313[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* extensionValue */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBRelReq_ItemExtIEs_specs_313 = { - sizeof(struct E_RABs_ToBeReleased_SgNBRelReq_ItemExtIEs), - offsetof(struct E_RABs_ToBeReleased_SgNBRelReq_ItemExtIEs, _asn_ctx), - asn_MAP_E_RABs_ToBeReleased_SgNBRelReq_ItemExtIEs_tag2el_313, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_ItemExtIEs = { - "E-RABs-ToBeReleased-SgNBRelReq-ItemExtIEs", - "E-RABs-ToBeReleased-SgNBRelReq-ItemExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_ItemExtIEs_tags_313, - sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_ItemExtIEs_tags_313) - /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_ItemExtIEs_tags_313[0]), /* 1 */ - asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_ItemExtIEs_tags_313, /* Same as above */ - sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_ItemExtIEs_tags_313) - /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_ItemExtIEs_tags_313[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_ToBeReleased_SgNBRelReq_ItemExtIEs_313, - 3, /* Elements count */ - &asn_SPC_E_RABs_ToBeReleased_SgNBRelReq_ItemExtIEs_specs_313 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_320 = { - sizeof(struct E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresentExtIEs__extensionValue), - offsetof(struct E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresentExtIEs__extensionValue, _asn_ctx), - offsetof(struct E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresentExtIEs__extensionValue, present), - sizeof(((struct E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresentExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_320 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_320 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresentExtIEs_317[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresentExtIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_318, memb_id_constraint_317 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresentExtIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_319, memb_criticality_constraint_317 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresentExtIEs, extensionValue), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_extensionValue_320, - 0, - { 0, &asn_PER_memb_extensionValue_constr_320, memb_extensionValue_constraint_317 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresentExtIEs_tags_317[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresentExtIEs_tag2el_317[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* extensionValue */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresentExtIEs_specs_317 = { - sizeof(struct E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresentExtIEs), - offsetof(struct E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresentExtIEs, _asn_ctx), - asn_MAP_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresentExtIEs_tag2el_317, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresentExtIEs = { - "E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPpresentExtIEs", - "E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPpresentExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresentExtIEs_tags_317, - sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresentExtIEs_tags_317) - /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresentExtIEs_tags_317[0]), /* 1 */ - asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresentExtIEs_tags_317, /* Same as above */ - sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresentExtIEs_tags_317) - /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresentExtIEs_tags_317[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresentExtIEs_317, - 3, /* Elements count */ - &asn_SPC_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresentExtIEs_specs_317 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_324 = { - sizeof(struct E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue), - offsetof(struct E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue, _asn_ctx), - offsetof(struct E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue, present), - sizeof(((struct E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_324 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_324 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresentExtIEs_321[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresentExtIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_322, memb_id_constraint_321 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresentExtIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_323, memb_criticality_constraint_321 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresentExtIEs, extensionValue), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_extensionValue_324, - 0, - { 0, &asn_PER_memb_extensionValue_constr_324, memb_extensionValue_constraint_321 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresentExtIEs_tags_321[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresentExtIEs_tag2el_321[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* extensionValue */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresentExtIEs_specs_321 = { - sizeof(struct E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresentExtIEs), - offsetof(struct E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresentExtIEs, _asn_ctx), - asn_MAP_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresentExtIEs_tag2el_321, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresentExtIEs = { - "E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPnotpresentExtIEs", - "E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPnotpresentExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresentExtIEs_tags_321, - sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresentExtIEs_tags_321) - /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresentExtIEs_tags_321[0]), /* 1 */ - asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresentExtIEs_tags_321, /* Same as above */ - sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresentExtIEs_tags_321) - /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresentExtIEs_tags_321[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresentExtIEs_321, - 3, /* Elements count */ - &asn_SPC_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresentExtIEs_specs_321 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_328 = { - sizeof(struct E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemExtIEs__extensionValue), - offsetof(struct E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemExtIEs__extensionValue, _asn_ctx), - offsetof(struct E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemExtIEs__extensionValue, present), - sizeof(((struct E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_328 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_328 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemExtIEs_325[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemExtIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_326, memb_id_constraint_325 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemExtIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_327, memb_criticality_constraint_325 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemExtIEs, extensionValue), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_extensionValue_328, - 0, - { 0, &asn_PER_memb_extensionValue_constr_328, memb_extensionValue_constraint_325 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemExtIEs_tags_325[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemExtIEs_tag2el_325[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* extensionValue */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemExtIEs_specs_325 = { - sizeof(struct E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemExtIEs), - offsetof(struct E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemExtIEs, _asn_ctx), - asn_MAP_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemExtIEs_tag2el_325, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemExtIEs = { - "E-RABs-Admitted-ToBeReleased-SgNBRelReqAck-ItemExtIEs", - "E-RABs-Admitted-ToBeReleased-SgNBRelReqAck-ItemExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemExtIEs_tags_325, - sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemExtIEs_tags_325) - /sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemExtIEs_tags_325[0]), /* 1 */ - asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemExtIEs_tags_325, /* Same as above */ - sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemExtIEs_tags_325) - /sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemExtIEs_tags_325[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemExtIEs_325, - 3, /* Elements count */ - &asn_SPC_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemExtIEs_specs_325 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_332 = { - sizeof(struct E_RABs_ToBeReleased_SgNBRelReqd_ItemExtIEs__extensionValue), - offsetof(struct E_RABs_ToBeReleased_SgNBRelReqd_ItemExtIEs__extensionValue, _asn_ctx), - offsetof(struct E_RABs_ToBeReleased_SgNBRelReqd_ItemExtIEs__extensionValue, present), - sizeof(((struct E_RABs_ToBeReleased_SgNBRelReqd_ItemExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_332 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_332 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBRelReqd_ItemExtIEs_329[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBRelReqd_ItemExtIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_330, memb_id_constraint_329 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBRelReqd_ItemExtIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_331, memb_criticality_constraint_329 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBRelReqd_ItemExtIEs, extensionValue), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_extensionValue_332, - 0, - { 0, &asn_PER_memb_extensionValue_constr_332, memb_extensionValue_constraint_329 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeReleased_SgNBRelReqd_ItemExtIEs_tags_329[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeReleased_SgNBRelReqd_ItemExtIEs_tag2el_329[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* extensionValue */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBRelReqd_ItemExtIEs_specs_329 = { - sizeof(struct E_RABs_ToBeReleased_SgNBRelReqd_ItemExtIEs), - offsetof(struct E_RABs_ToBeReleased_SgNBRelReqd_ItemExtIEs, _asn_ctx), - asn_MAP_E_RABs_ToBeReleased_SgNBRelReqd_ItemExtIEs_tag2el_329, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBRelReqd_ItemExtIEs = { - "E-RABs-ToBeReleased-SgNBRelReqd-ItemExtIEs", - "E-RABs-ToBeReleased-SgNBRelReqd-ItemExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_ToBeReleased_SgNBRelReqd_ItemExtIEs_tags_329, - sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelReqd_ItemExtIEs_tags_329) - /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelReqd_ItemExtIEs_tags_329[0]), /* 1 */ - asn_DEF_E_RABs_ToBeReleased_SgNBRelReqd_ItemExtIEs_tags_329, /* Same as above */ - sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelReqd_ItemExtIEs_tags_329) - /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelReqd_ItemExtIEs_tags_329[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_ToBeReleased_SgNBRelReqd_ItemExtIEs_329, - 3, /* Elements count */ - &asn_SPC_E_RABs_ToBeReleased_SgNBRelReqd_ItemExtIEs_specs_329 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_336 = { - sizeof(struct E_RABs_ToBeReleased_SgNBRelConf_ItemExtIEs__extensionValue), - offsetof(struct E_RABs_ToBeReleased_SgNBRelConf_ItemExtIEs__extensionValue, _asn_ctx), - offsetof(struct E_RABs_ToBeReleased_SgNBRelConf_ItemExtIEs__extensionValue, present), - sizeof(((struct E_RABs_ToBeReleased_SgNBRelConf_ItemExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_336 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_336 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBRelConf_ItemExtIEs_333[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBRelConf_ItemExtIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_334, memb_id_constraint_333 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBRelConf_ItemExtIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_335, memb_criticality_constraint_333 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBRelConf_ItemExtIEs, extensionValue), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_extensionValue_336, - 0, - { 0, &asn_PER_memb_extensionValue_constr_336, memb_extensionValue_constraint_333 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_ItemExtIEs_tags_333[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeReleased_SgNBRelConf_ItemExtIEs_tag2el_333[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* extensionValue */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBRelConf_ItemExtIEs_specs_333 = { - sizeof(struct E_RABs_ToBeReleased_SgNBRelConf_ItemExtIEs), - offsetof(struct E_RABs_ToBeReleased_SgNBRelConf_ItemExtIEs, _asn_ctx), - asn_MAP_E_RABs_ToBeReleased_SgNBRelConf_ItemExtIEs_tag2el_333, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_ItemExtIEs = { - "E-RABs-ToBeReleased-SgNBRelConf-ItemExtIEs", - "E-RABs-ToBeReleased-SgNBRelConf-ItemExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_ItemExtIEs_tags_333, - sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_ItemExtIEs_tags_333) - /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_ItemExtIEs_tags_333[0]), /* 1 */ - asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_ItemExtIEs_tags_333, /* Same as above */ - sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_ItemExtIEs_tags_333) - /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_ItemExtIEs_tags_333[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_ToBeReleased_SgNBRelConf_ItemExtIEs_333, - 3, /* Elements count */ - &asn_SPC_E_RABs_ToBeReleased_SgNBRelConf_ItemExtIEs_specs_333 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_340 = { - sizeof(struct E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresentExtIEs__extensionValue), - offsetof(struct E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresentExtIEs__extensionValue, _asn_ctx), - offsetof(struct E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresentExtIEs__extensionValue, present), - sizeof(((struct E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresentExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_340 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_340 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresentExtIEs_337[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresentExtIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_338, memb_id_constraint_337 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresentExtIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_339, memb_criticality_constraint_337 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresentExtIEs, extensionValue), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_extensionValue_340, - 0, - { 0, &asn_PER_memb_extensionValue_constr_340, memb_extensionValue_constraint_337 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresentExtIEs_tags_337[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresentExtIEs_tag2el_337[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* extensionValue */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresentExtIEs_specs_337 = { - sizeof(struct E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresentExtIEs), - offsetof(struct E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresentExtIEs, _asn_ctx), - asn_MAP_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresentExtIEs_tag2el_337, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresentExtIEs = { - "E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPpresentExtIEs", - "E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPpresentExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresentExtIEs_tags_337, - sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresentExtIEs_tags_337) - /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresentExtIEs_tags_337[0]), /* 1 */ - asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresentExtIEs_tags_337, /* Same as above */ - sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresentExtIEs_tags_337) - /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresentExtIEs_tags_337[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresentExtIEs_337, - 3, /* Elements count */ - &asn_SPC_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresentExtIEs_specs_337 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_344 = { - sizeof(struct E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresentExtIEs__extensionValue), - offsetof(struct E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresentExtIEs__extensionValue, _asn_ctx), - offsetof(struct E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresentExtIEs__extensionValue, present), - sizeof(((struct E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresentExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_344 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_344 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresentExtIEs_341[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresentExtIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_342, memb_id_constraint_341 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresentExtIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_343, memb_criticality_constraint_341 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresentExtIEs, extensionValue), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_extensionValue_344, - 0, - { 0, &asn_PER_memb_extensionValue_constr_344, memb_extensionValue_constraint_341 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresentExtIEs_tags_341[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresentExtIEs_tag2el_341[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* extensionValue */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresentExtIEs_specs_341 = { - sizeof(struct E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresentExtIEs), - offsetof(struct E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresentExtIEs, _asn_ctx), - asn_MAP_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresentExtIEs_tag2el_341, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresentExtIEs = { - "E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPnotpresentExtIEs", - "E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPnotpresentExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresentExtIEs_tags_341, - sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresentExtIEs_tags_341) - /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresentExtIEs_tags_341[0]), /* 1 */ - asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresentExtIEs_tags_341, /* Same as above */ - sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresentExtIEs_tags_341) - /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresentExtIEs_tags_341[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresentExtIEs_341, - 3, /* Elements count */ - &asn_SPC_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresentExtIEs_specs_341 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_348 = { - sizeof(struct E_RABs_SubjectToSgNBCounterCheck_ItemExtIEs__extensionValue), - offsetof(struct E_RABs_SubjectToSgNBCounterCheck_ItemExtIEs__extensionValue, _asn_ctx), - offsetof(struct E_RABs_SubjectToSgNBCounterCheck_ItemExtIEs__extensionValue, present), - sizeof(((struct E_RABs_SubjectToSgNBCounterCheck_ItemExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_348 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_348 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E_RABs_SubjectToSgNBCounterCheck_ItemExtIEs_345[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_SubjectToSgNBCounterCheck_ItemExtIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_346, memb_id_constraint_345 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_SubjectToSgNBCounterCheck_ItemExtIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_347, memb_criticality_constraint_345 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_SubjectToSgNBCounterCheck_ItemExtIEs, extensionValue), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_extensionValue_348, - 0, - { 0, &asn_PER_memb_extensionValue_constr_348, memb_extensionValue_constraint_345 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_SubjectToSgNBCounterCheck_ItemExtIEs_tags_345[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_SubjectToSgNBCounterCheck_ItemExtIEs_tag2el_345[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* extensionValue */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_SubjectToSgNBCounterCheck_ItemExtIEs_specs_345 = { - sizeof(struct E_RABs_SubjectToSgNBCounterCheck_ItemExtIEs), - offsetof(struct E_RABs_SubjectToSgNBCounterCheck_ItemExtIEs, _asn_ctx), - asn_MAP_E_RABs_SubjectToSgNBCounterCheck_ItemExtIEs_tag2el_345, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_SubjectToSgNBCounterCheck_ItemExtIEs = { - "E-RABs-SubjectToSgNBCounterCheck-ItemExtIEs", - "E-RABs-SubjectToSgNBCounterCheck-ItemExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_SubjectToSgNBCounterCheck_ItemExtIEs_tags_345, - sizeof(asn_DEF_E_RABs_SubjectToSgNBCounterCheck_ItemExtIEs_tags_345) - /sizeof(asn_DEF_E_RABs_SubjectToSgNBCounterCheck_ItemExtIEs_tags_345[0]), /* 1 */ - asn_DEF_E_RABs_SubjectToSgNBCounterCheck_ItemExtIEs_tags_345, /* Same as above */ - sizeof(asn_DEF_E_RABs_SubjectToSgNBCounterCheck_ItemExtIEs_tags_345) - /sizeof(asn_DEF_E_RABs_SubjectToSgNBCounterCheck_ItemExtIEs_tags_345[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_SubjectToSgNBCounterCheck_ItemExtIEs_345, - 3, /* Elements count */ - &asn_SPC_E_RABs_SubjectToSgNBCounterCheck_ItemExtIEs_specs_345 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_352 = { - sizeof(struct E_RABs_ToBeReleased_SgNBChaConf_ItemExtIEs__extensionValue), - offsetof(struct E_RABs_ToBeReleased_SgNBChaConf_ItemExtIEs__extensionValue, _asn_ctx), - offsetof(struct E_RABs_ToBeReleased_SgNBChaConf_ItemExtIEs__extensionValue, present), - sizeof(((struct E_RABs_ToBeReleased_SgNBChaConf_ItemExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_352 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_352 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBChaConf_ItemExtIEs_349[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBChaConf_ItemExtIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_350, memb_id_constraint_349 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBChaConf_ItemExtIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_351, memb_criticality_constraint_349 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBChaConf_ItemExtIEs, extensionValue), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_extensionValue_352, - 0, - { 0, &asn_PER_memb_extensionValue_constr_352, memb_extensionValue_constraint_349 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_ItemExtIEs_tags_349[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeReleased_SgNBChaConf_ItemExtIEs_tag2el_349[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* extensionValue */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBChaConf_ItemExtIEs_specs_349 = { - sizeof(struct E_RABs_ToBeReleased_SgNBChaConf_ItemExtIEs), - offsetof(struct E_RABs_ToBeReleased_SgNBChaConf_ItemExtIEs, _asn_ctx), - asn_MAP_E_RABs_ToBeReleased_SgNBChaConf_ItemExtIEs_tag2el_349, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_ItemExtIEs = { - "E-RABs-ToBeReleased-SgNBChaConf-ItemExtIEs", - "E-RABs-ToBeReleased-SgNBChaConf-ItemExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_ItemExtIEs_tags_349, - sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_ItemExtIEs_tags_349) - /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_ItemExtIEs_tags_349[0]), /* 1 */ - asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_ItemExtIEs_tags_349, /* Same as above */ - sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_ItemExtIEs_tags_349) - /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_ItemExtIEs_tags_349[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_ToBeReleased_SgNBChaConf_ItemExtIEs_349, - 3, /* Elements count */ - &asn_SPC_E_RABs_ToBeReleased_SgNBChaConf_ItemExtIEs_specs_349 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_356 = { - sizeof(struct E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresentExtIEs__extensionValue), - offsetof(struct E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresentExtIEs__extensionValue, _asn_ctx), - offsetof(struct E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresentExtIEs__extensionValue, present), - sizeof(((struct E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresentExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_356 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_356 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresentExtIEs_353[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresentExtIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_354, memb_id_constraint_353 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresentExtIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_355, memb_criticality_constraint_353 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresentExtIEs, extensionValue), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_extensionValue_356, - 0, - { 0, &asn_PER_memb_extensionValue_constr_356, memb_extensionValue_constraint_353 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresentExtIEs_tags_353[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresentExtIEs_tag2el_353[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* extensionValue */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresentExtIEs_specs_353 = { - sizeof(struct E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresentExtIEs), - offsetof(struct E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresentExtIEs, _asn_ctx), - asn_MAP_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresentExtIEs_tag2el_353, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresentExtIEs = { - "E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPpresentExtIEs", - "E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPpresentExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresentExtIEs_tags_353, - sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresentExtIEs_tags_353) - /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresentExtIEs_tags_353[0]), /* 1 */ - asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresentExtIEs_tags_353, /* Same as above */ - sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresentExtIEs_tags_353) - /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresentExtIEs_tags_353[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresentExtIEs_353, - 3, /* Elements count */ - &asn_SPC_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresentExtIEs_specs_353 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_360 = { - sizeof(struct E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresentExtIEs__extensionValue), - offsetof(struct E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresentExtIEs__extensionValue, _asn_ctx), - offsetof(struct E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresentExtIEs__extensionValue, present), - sizeof(((struct E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresentExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_360 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_360 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresentExtIEs_357[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresentExtIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_358, memb_id_constraint_357 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresentExtIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_359, memb_criticality_constraint_357 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresentExtIEs, extensionValue), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_extensionValue_360, - 0, - { 0, &asn_PER_memb_extensionValue_constr_360, memb_extensionValue_constraint_357 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresentExtIEs_tags_357[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresentExtIEs_tag2el_357[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* extensionValue */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresentExtIEs_specs_357 = { - sizeof(struct E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresentExtIEs), - offsetof(struct E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresentExtIEs, _asn_ctx), - asn_MAP_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresentExtIEs_tag2el_357, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresentExtIEs = { - "E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPnotpresentExtIEs", - "E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPnotpresentExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresentExtIEs_tags_357, - sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresentExtIEs_tags_357) - /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresentExtIEs_tags_357[0]), /* 1 */ - asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresentExtIEs_tags_357, /* Same as above */ - sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresentExtIEs_tags_357) - /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresentExtIEs_tags_357[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresentExtIEs_357, - 3, /* Elements count */ - &asn_SPC_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresentExtIEs_specs_357 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_364 = { - sizeof(struct ServedEUTRAcellsENDCX2Management_ExtIEs__extensionValue), - offsetof(struct ServedEUTRAcellsENDCX2Management_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct ServedEUTRAcellsENDCX2Management_ExtIEs__extensionValue, present), - sizeof(((struct ServedEUTRAcellsENDCX2Management_ExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_364 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_364 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ServedEUTRAcellsENDCX2Management_ExtIEs_361[] = { - { ATF_NOFLAGS, 0, offsetof(struct ServedEUTRAcellsENDCX2Management_ExtIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_362, memb_id_constraint_361 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct ServedEUTRAcellsENDCX2Management_ExtIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_363, memb_criticality_constraint_361 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ServedEUTRAcellsENDCX2Management_ExtIEs, extensionValue), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_extensionValue_364, - 0, - { 0, &asn_PER_memb_extensionValue_constr_364, memb_extensionValue_constraint_361 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_ServedEUTRAcellsENDCX2Management_ExtIEs_tags_361[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ServedEUTRAcellsENDCX2Management_ExtIEs_tag2el_361[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* extensionValue */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ServedEUTRAcellsENDCX2Management_ExtIEs_specs_361 = { - sizeof(struct ServedEUTRAcellsENDCX2Management_ExtIEs), - offsetof(struct ServedEUTRAcellsENDCX2Management_ExtIEs, _asn_ctx), - asn_MAP_ServedEUTRAcellsENDCX2Management_ExtIEs_tag2el_361, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ServedEUTRAcellsENDCX2Management_ExtIEs = { - "ServedEUTRAcellsENDCX2Management-ExtIEs", - "ServedEUTRAcellsENDCX2Management-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_ServedEUTRAcellsENDCX2Management_ExtIEs_tags_361, - sizeof(asn_DEF_ServedEUTRAcellsENDCX2Management_ExtIEs_tags_361) - /sizeof(asn_DEF_ServedEUTRAcellsENDCX2Management_ExtIEs_tags_361[0]), /* 1 */ - asn_DEF_ServedEUTRAcellsENDCX2Management_ExtIEs_tags_361, /* Same as above */ - sizeof(asn_DEF_ServedEUTRAcellsENDCX2Management_ExtIEs_tags_361) - /sizeof(asn_DEF_ServedEUTRAcellsENDCX2Management_ExtIEs_tags_361[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ServedEUTRAcellsENDCX2Management_ExtIEs_361, - 3, /* Elements count */ - &asn_SPC_ServedEUTRAcellsENDCX2Management_ExtIEs_specs_361 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_368 = { - sizeof(struct En_gNBServedCells_ExtIEs__extensionValue), - offsetof(struct En_gNBServedCells_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct En_gNBServedCells_ExtIEs__extensionValue, present), - sizeof(((struct En_gNBServedCells_ExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_368 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_368 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_En_gNBServedCells_ExtIEs_365[] = { - { ATF_NOFLAGS, 0, offsetof(struct En_gNBServedCells_ExtIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_366, memb_id_constraint_365 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct En_gNBServedCells_ExtIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_367, memb_criticality_constraint_365 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct En_gNBServedCells_ExtIEs, extensionValue), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_extensionValue_368, - 0, - { 0, &asn_PER_memb_extensionValue_constr_368, memb_extensionValue_constraint_365 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_En_gNBServedCells_ExtIEs_tags_365[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_En_gNBServedCells_ExtIEs_tag2el_365[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* extensionValue */ -}; -asn_SEQUENCE_specifics_t asn_SPC_En_gNBServedCells_ExtIEs_specs_365 = { - sizeof(struct En_gNBServedCells_ExtIEs), - offsetof(struct En_gNBServedCells_ExtIEs, _asn_ctx), - asn_MAP_En_gNBServedCells_ExtIEs_tag2el_365, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_En_gNBServedCells_ExtIEs = { - "En-gNBServedCells-ExtIEs", - "En-gNBServedCells-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_En_gNBServedCells_ExtIEs_tags_365, - sizeof(asn_DEF_En_gNBServedCells_ExtIEs_tags_365) - /sizeof(asn_DEF_En_gNBServedCells_ExtIEs_tags_365[0]), /* 1 */ - asn_DEF_En_gNBServedCells_ExtIEs_tags_365, /* Same as above */ - sizeof(asn_DEF_En_gNBServedCells_ExtIEs_tags_365) - /sizeof(asn_DEF_En_gNBServedCells_ExtIEs_tags_365[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_En_gNBServedCells_ExtIEs_365, - 3, /* Elements count */ - &asn_SPC_En_gNBServedCells_ExtIEs_specs_365 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_372 = { - sizeof(struct ServedNRCell_Information_ExtIEs__extensionValue), - offsetof(struct ServedNRCell_Information_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct ServedNRCell_Information_ExtIEs__extensionValue, present), - sizeof(((struct ServedNRCell_Information_ExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_372 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_372 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ServedNRCell_Information_ExtIEs_369[] = { - { ATF_NOFLAGS, 0, offsetof(struct ServedNRCell_Information_ExtIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_370, memb_id_constraint_369 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct ServedNRCell_Information_ExtIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_371, memb_criticality_constraint_369 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ServedNRCell_Information_ExtIEs, extensionValue), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_extensionValue_372, - 0, - { 0, &asn_PER_memb_extensionValue_constr_372, memb_extensionValue_constraint_369 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_ServedNRCell_Information_ExtIEs_tags_369[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ServedNRCell_Information_ExtIEs_tag2el_369[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* extensionValue */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ServedNRCell_Information_ExtIEs_specs_369 = { - sizeof(struct ServedNRCell_Information_ExtIEs), - offsetof(struct ServedNRCell_Information_ExtIEs, _asn_ctx), - asn_MAP_ServedNRCell_Information_ExtIEs_tag2el_369, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ServedNRCell_Information_ExtIEs = { - "ServedNRCell-Information-ExtIEs", - "ServedNRCell-Information-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_ServedNRCell_Information_ExtIEs_tags_369, - sizeof(asn_DEF_ServedNRCell_Information_ExtIEs_tags_369) - /sizeof(asn_DEF_ServedNRCell_Information_ExtIEs_tags_369[0]), /* 1 */ - asn_DEF_ServedNRCell_Information_ExtIEs_tags_369, /* Same as above */ - sizeof(asn_DEF_ServedNRCell_Information_ExtIEs_tags_369) - /sizeof(asn_DEF_ServedNRCell_Information_ExtIEs_tags_369[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ServedNRCell_Information_ExtIEs_369, - 3, /* Elements count */ - &asn_SPC_ServedNRCell_Information_ExtIEs_specs_369 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_376 = { - sizeof(struct FDD_InfoServedNRCell_Information_ExtIEs__extensionValue), - offsetof(struct FDD_InfoServedNRCell_Information_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct FDD_InfoServedNRCell_Information_ExtIEs__extensionValue, present), - sizeof(((struct FDD_InfoServedNRCell_Information_ExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_376 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_376 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_FDD_InfoServedNRCell_Information_ExtIEs_373[] = { - { ATF_NOFLAGS, 0, offsetof(struct FDD_InfoServedNRCell_Information_ExtIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_374, memb_id_constraint_373 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct FDD_InfoServedNRCell_Information_ExtIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_375, memb_criticality_constraint_373 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct FDD_InfoServedNRCell_Information_ExtIEs, extensionValue), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_extensionValue_376, - 0, - { 0, &asn_PER_memb_extensionValue_constr_376, memb_extensionValue_constraint_373 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_FDD_InfoServedNRCell_Information_ExtIEs_tags_373[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_FDD_InfoServedNRCell_Information_ExtIEs_tag2el_373[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* extensionValue */ -}; -asn_SEQUENCE_specifics_t asn_SPC_FDD_InfoServedNRCell_Information_ExtIEs_specs_373 = { - sizeof(struct FDD_InfoServedNRCell_Information_ExtIEs), - offsetof(struct FDD_InfoServedNRCell_Information_ExtIEs, _asn_ctx), - asn_MAP_FDD_InfoServedNRCell_Information_ExtIEs_tag2el_373, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_FDD_InfoServedNRCell_Information_ExtIEs = { - "FDD-InfoServedNRCell-Information-ExtIEs", - "FDD-InfoServedNRCell-Information-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_FDD_InfoServedNRCell_Information_ExtIEs_tags_373, - sizeof(asn_DEF_FDD_InfoServedNRCell_Information_ExtIEs_tags_373) - /sizeof(asn_DEF_FDD_InfoServedNRCell_Information_ExtIEs_tags_373[0]), /* 1 */ - asn_DEF_FDD_InfoServedNRCell_Information_ExtIEs_tags_373, /* Same as above */ - sizeof(asn_DEF_FDD_InfoServedNRCell_Information_ExtIEs_tags_373) - /sizeof(asn_DEF_FDD_InfoServedNRCell_Information_ExtIEs_tags_373[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_FDD_InfoServedNRCell_Information_ExtIEs_373, - 3, /* Elements count */ - &asn_SPC_FDD_InfoServedNRCell_Information_ExtIEs_specs_373 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_380 = { - sizeof(struct FDD_InfoNeighbourServedNRCell_Information_ExtIEs__extensionValue), - offsetof(struct FDD_InfoNeighbourServedNRCell_Information_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct FDD_InfoNeighbourServedNRCell_Information_ExtIEs__extensionValue, present), - sizeof(((struct FDD_InfoNeighbourServedNRCell_Information_ExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_380 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_380 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_FDD_InfoNeighbourServedNRCell_Information_ExtIEs_377[] = { - { ATF_NOFLAGS, 0, offsetof(struct FDD_InfoNeighbourServedNRCell_Information_ExtIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_378, memb_id_constraint_377 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct FDD_InfoNeighbourServedNRCell_Information_ExtIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_379, memb_criticality_constraint_377 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct FDD_InfoNeighbourServedNRCell_Information_ExtIEs, extensionValue), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_extensionValue_380, - 0, - { 0, &asn_PER_memb_extensionValue_constr_380, memb_extensionValue_constraint_377 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_FDD_InfoNeighbourServedNRCell_Information_ExtIEs_tags_377[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_FDD_InfoNeighbourServedNRCell_Information_ExtIEs_tag2el_377[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* extensionValue */ -}; -asn_SEQUENCE_specifics_t asn_SPC_FDD_InfoNeighbourServedNRCell_Information_ExtIEs_specs_377 = { - sizeof(struct FDD_InfoNeighbourServedNRCell_Information_ExtIEs), - offsetof(struct FDD_InfoNeighbourServedNRCell_Information_ExtIEs, _asn_ctx), - asn_MAP_FDD_InfoNeighbourServedNRCell_Information_ExtIEs_tag2el_377, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_FDD_InfoNeighbourServedNRCell_Information_ExtIEs = { - "FDD-InfoNeighbourServedNRCell-Information-ExtIEs", - "FDD-InfoNeighbourServedNRCell-Information-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_FDD_InfoNeighbourServedNRCell_Information_ExtIEs_tags_377, - sizeof(asn_DEF_FDD_InfoNeighbourServedNRCell_Information_ExtIEs_tags_377) - /sizeof(asn_DEF_FDD_InfoNeighbourServedNRCell_Information_ExtIEs_tags_377[0]), /* 1 */ - asn_DEF_FDD_InfoNeighbourServedNRCell_Information_ExtIEs_tags_377, /* Same as above */ - sizeof(asn_DEF_FDD_InfoNeighbourServedNRCell_Information_ExtIEs_tags_377) - /sizeof(asn_DEF_FDD_InfoNeighbourServedNRCell_Information_ExtIEs_tags_377[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_FDD_InfoNeighbourServedNRCell_Information_ExtIEs_377, - 3, /* Elements count */ - &asn_SPC_FDD_InfoNeighbourServedNRCell_Information_ExtIEs_specs_377 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_384 = { - sizeof(struct TDD_InfoServedNRCell_Information_ExtIEs__extensionValue), - offsetof(struct TDD_InfoServedNRCell_Information_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct TDD_InfoServedNRCell_Information_ExtIEs__extensionValue, present), - sizeof(((struct TDD_InfoServedNRCell_Information_ExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_384 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_384 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_TDD_InfoServedNRCell_Information_ExtIEs_381[] = { - { ATF_NOFLAGS, 0, offsetof(struct TDD_InfoServedNRCell_Information_ExtIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_382, memb_id_constraint_381 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct TDD_InfoServedNRCell_Information_ExtIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_383, memb_criticality_constraint_381 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct TDD_InfoServedNRCell_Information_ExtIEs, extensionValue), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_extensionValue_384, - 0, - { 0, &asn_PER_memb_extensionValue_constr_384, memb_extensionValue_constraint_381 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_TDD_InfoServedNRCell_Information_ExtIEs_tags_381[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_TDD_InfoServedNRCell_Information_ExtIEs_tag2el_381[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* extensionValue */ -}; -asn_SEQUENCE_specifics_t asn_SPC_TDD_InfoServedNRCell_Information_ExtIEs_specs_381 = { - sizeof(struct TDD_InfoServedNRCell_Information_ExtIEs), - offsetof(struct TDD_InfoServedNRCell_Information_ExtIEs, _asn_ctx), - asn_MAP_TDD_InfoServedNRCell_Information_ExtIEs_tag2el_381, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_TDD_InfoServedNRCell_Information_ExtIEs = { - "TDD-InfoServedNRCell-Information-ExtIEs", - "TDD-InfoServedNRCell-Information-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_TDD_InfoServedNRCell_Information_ExtIEs_tags_381, - sizeof(asn_DEF_TDD_InfoServedNRCell_Information_ExtIEs_tags_381) - /sizeof(asn_DEF_TDD_InfoServedNRCell_Information_ExtIEs_tags_381[0]), /* 1 */ - asn_DEF_TDD_InfoServedNRCell_Information_ExtIEs_tags_381, /* Same as above */ - sizeof(asn_DEF_TDD_InfoServedNRCell_Information_ExtIEs_tags_381) - /sizeof(asn_DEF_TDD_InfoServedNRCell_Information_ExtIEs_tags_381[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_TDD_InfoServedNRCell_Information_ExtIEs_381, - 3, /* Elements count */ - &asn_SPC_TDD_InfoServedNRCell_Information_ExtIEs_specs_381 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_388 = { - sizeof(struct TDD_InfoNeighbourServedNRCell_Information_ExtIEs__extensionValue), - offsetof(struct TDD_InfoNeighbourServedNRCell_Information_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct TDD_InfoNeighbourServedNRCell_Information_ExtIEs__extensionValue, present), - sizeof(((struct TDD_InfoNeighbourServedNRCell_Information_ExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_388 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_388 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_TDD_InfoNeighbourServedNRCell_Information_ExtIEs_385[] = { - { ATF_NOFLAGS, 0, offsetof(struct TDD_InfoNeighbourServedNRCell_Information_ExtIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_386, memb_id_constraint_385 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct TDD_InfoNeighbourServedNRCell_Information_ExtIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_387, memb_criticality_constraint_385 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct TDD_InfoNeighbourServedNRCell_Information_ExtIEs, extensionValue), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_extensionValue_388, - 0, - { 0, &asn_PER_memb_extensionValue_constr_388, memb_extensionValue_constraint_385 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_TDD_InfoNeighbourServedNRCell_Information_ExtIEs_tags_385[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_TDD_InfoNeighbourServedNRCell_Information_ExtIEs_tag2el_385[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* extensionValue */ -}; -asn_SEQUENCE_specifics_t asn_SPC_TDD_InfoNeighbourServedNRCell_Information_ExtIEs_specs_385 = { - sizeof(struct TDD_InfoNeighbourServedNRCell_Information_ExtIEs), - offsetof(struct TDD_InfoNeighbourServedNRCell_Information_ExtIEs, _asn_ctx), - asn_MAP_TDD_InfoNeighbourServedNRCell_Information_ExtIEs_tag2el_385, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_TDD_InfoNeighbourServedNRCell_Information_ExtIEs = { - "TDD-InfoNeighbourServedNRCell-Information-ExtIEs", - "TDD-InfoNeighbourServedNRCell-Information-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_TDD_InfoNeighbourServedNRCell_Information_ExtIEs_tags_385, - sizeof(asn_DEF_TDD_InfoNeighbourServedNRCell_Information_ExtIEs_tags_385) - /sizeof(asn_DEF_TDD_InfoNeighbourServedNRCell_Information_ExtIEs_tags_385[0]), /* 1 */ - asn_DEF_TDD_InfoNeighbourServedNRCell_Information_ExtIEs_tags_385, /* Same as above */ - sizeof(asn_DEF_TDD_InfoNeighbourServedNRCell_Information_ExtIEs_tags_385) - /sizeof(asn_DEF_TDD_InfoNeighbourServedNRCell_Information_ExtIEs_tags_385[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_TDD_InfoNeighbourServedNRCell_Information_ExtIEs_385, - 3, /* Elements count */ - &asn_SPC_TDD_InfoNeighbourServedNRCell_Information_ExtIEs_specs_385 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_392 = { - sizeof(struct NRNeighbour_Information_ExtIEs__extensionValue), - offsetof(struct NRNeighbour_Information_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct NRNeighbour_Information_ExtIEs__extensionValue, present), - sizeof(((struct NRNeighbour_Information_ExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_392 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_392 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_NRNeighbour_Information_ExtIEs_389[] = { - { ATF_NOFLAGS, 0, offsetof(struct NRNeighbour_Information_ExtIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_390, memb_id_constraint_389 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct NRNeighbour_Information_ExtIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_391, memb_criticality_constraint_389 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct NRNeighbour_Information_ExtIEs, extensionValue), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_extensionValue_392, - 0, - { 0, &asn_PER_memb_extensionValue_constr_392, memb_extensionValue_constraint_389 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_NRNeighbour_Information_ExtIEs_tags_389[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_NRNeighbour_Information_ExtIEs_tag2el_389[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* extensionValue */ -}; -asn_SEQUENCE_specifics_t asn_SPC_NRNeighbour_Information_ExtIEs_specs_389 = { - sizeof(struct NRNeighbour_Information_ExtIEs), - offsetof(struct NRNeighbour_Information_ExtIEs, _asn_ctx), - asn_MAP_NRNeighbour_Information_ExtIEs_tag2el_389, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_NRNeighbour_Information_ExtIEs = { - "NRNeighbour-Information-ExtIEs", - "NRNeighbour-Information-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_NRNeighbour_Information_ExtIEs_tags_389, - sizeof(asn_DEF_NRNeighbour_Information_ExtIEs_tags_389) - /sizeof(asn_DEF_NRNeighbour_Information_ExtIEs_tags_389[0]), /* 1 */ - asn_DEF_NRNeighbour_Information_ExtIEs_tags_389, /* Same as above */ - sizeof(asn_DEF_NRNeighbour_Information_ExtIEs_tags_389) - /sizeof(asn_DEF_NRNeighbour_Information_ExtIEs_tags_389[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_NRNeighbour_Information_ExtIEs_389, - 3, /* Elements count */ - &asn_SPC_NRNeighbour_Information_ExtIEs_specs_389 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_396 = { - sizeof(struct Limited_list_ExtIEs__extensionValue), - offsetof(struct Limited_list_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct Limited_list_ExtIEs__extensionValue, present), - sizeof(((struct Limited_list_ExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_396 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_396 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_Limited_list_ExtIEs_393[] = { - { ATF_NOFLAGS, 0, offsetof(struct Limited_list_ExtIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_394, memb_id_constraint_393 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct Limited_list_ExtIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_395, memb_criticality_constraint_393 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Limited_list_ExtIEs, extensionValue), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_extensionValue_396, - 0, - { 0, &asn_PER_memb_extensionValue_constr_396, memb_extensionValue_constraint_393 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_Limited_list_ExtIEs_tags_393[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_Limited_list_ExtIEs_tag2el_393[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* extensionValue */ -}; -asn_SEQUENCE_specifics_t asn_SPC_Limited_list_ExtIEs_specs_393 = { - sizeof(struct Limited_list_ExtIEs), - offsetof(struct Limited_list_ExtIEs, _asn_ctx), - asn_MAP_Limited_list_ExtIEs_tag2el_393, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_Limited_list_ExtIEs = { - "Limited-list-ExtIEs", - "Limited-list-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_Limited_list_ExtIEs_tags_393, - sizeof(asn_DEF_Limited_list_ExtIEs_tags_393) - /sizeof(asn_DEF_Limited_list_ExtIEs_tags_393[0]), /* 1 */ - asn_DEF_Limited_list_ExtIEs_tags_393, /* Same as above */ - sizeof(asn_DEF_Limited_list_ExtIEs_tags_393) - /sizeof(asn_DEF_Limited_list_ExtIEs_tags_393[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_Limited_list_ExtIEs_393, - 3, /* Elements count */ - &asn_SPC_Limited_list_ExtIEs_specs_393 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_400 = { - sizeof(struct ServedEUTRAcellsToModifyListENDCConfUpd_ExtIEs__extensionValue), - offsetof(struct ServedEUTRAcellsToModifyListENDCConfUpd_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct ServedEUTRAcellsToModifyListENDCConfUpd_ExtIEs__extensionValue, present), - sizeof(((struct ServedEUTRAcellsToModifyListENDCConfUpd_ExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_400 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_400 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ServedEUTRAcellsToModifyListENDCConfUpd_ExtIEs_397[] = { - { ATF_NOFLAGS, 0, offsetof(struct ServedEUTRAcellsToModifyListENDCConfUpd_ExtIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_398, memb_id_constraint_397 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct ServedEUTRAcellsToModifyListENDCConfUpd_ExtIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_399, memb_criticality_constraint_397 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ServedEUTRAcellsToModifyListENDCConfUpd_ExtIEs, extensionValue), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_extensionValue_400, - 0, - { 0, &asn_PER_memb_extensionValue_constr_400, memb_extensionValue_constraint_397 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_ServedEUTRAcellsToModifyListENDCConfUpd_ExtIEs_tags_397[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ServedEUTRAcellsToModifyListENDCConfUpd_ExtIEs_tag2el_397[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* extensionValue */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ServedEUTRAcellsToModifyListENDCConfUpd_ExtIEs_specs_397 = { - sizeof(struct ServedEUTRAcellsToModifyListENDCConfUpd_ExtIEs), - offsetof(struct ServedEUTRAcellsToModifyListENDCConfUpd_ExtIEs, _asn_ctx), - asn_MAP_ServedEUTRAcellsToModifyListENDCConfUpd_ExtIEs_tag2el_397, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ServedEUTRAcellsToModifyListENDCConfUpd_ExtIEs = { - "ServedEUTRAcellsToModifyListENDCConfUpd-ExtIEs", - "ServedEUTRAcellsToModifyListENDCConfUpd-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_ServedEUTRAcellsToModifyListENDCConfUpd_ExtIEs_tags_397, - sizeof(asn_DEF_ServedEUTRAcellsToModifyListENDCConfUpd_ExtIEs_tags_397) - /sizeof(asn_DEF_ServedEUTRAcellsToModifyListENDCConfUpd_ExtIEs_tags_397[0]), /* 1 */ - asn_DEF_ServedEUTRAcellsToModifyListENDCConfUpd_ExtIEs_tags_397, /* Same as above */ - sizeof(asn_DEF_ServedEUTRAcellsToModifyListENDCConfUpd_ExtIEs_tags_397) - /sizeof(asn_DEF_ServedEUTRAcellsToModifyListENDCConfUpd_ExtIEs_tags_397[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ServedEUTRAcellsToModifyListENDCConfUpd_ExtIEs_397, - 3, /* Elements count */ - &asn_SPC_ServedEUTRAcellsToModifyListENDCConfUpd_ExtIEs_specs_397 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_404 = { - sizeof(struct ServedNRCellsToModify_Item_ExtIEs__extensionValue), - offsetof(struct ServedNRCellsToModify_Item_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct ServedNRCellsToModify_Item_ExtIEs__extensionValue, present), - sizeof(((struct ServedNRCellsToModify_Item_ExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_404 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_404 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ServedNRCellsToModify_Item_ExtIEs_401[] = { - { ATF_NOFLAGS, 0, offsetof(struct ServedNRCellsToModify_Item_ExtIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_402, memb_id_constraint_401 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct ServedNRCellsToModify_Item_ExtIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_403, memb_criticality_constraint_401 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ServedNRCellsToModify_Item_ExtIEs, extensionValue), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_extensionValue_404, - 0, - { 0, &asn_PER_memb_extensionValue_constr_404, memb_extensionValue_constraint_401 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_ServedNRCellsToModify_Item_ExtIEs_tags_401[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ServedNRCellsToModify_Item_ExtIEs_tag2el_401[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* extensionValue */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ServedNRCellsToModify_Item_ExtIEs_specs_401 = { - sizeof(struct ServedNRCellsToModify_Item_ExtIEs), - offsetof(struct ServedNRCellsToModify_Item_ExtIEs, _asn_ctx), - asn_MAP_ServedNRCellsToModify_Item_ExtIEs_tag2el_401, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ServedNRCellsToModify_Item_ExtIEs = { - "ServedNRCellsToModify-Item-ExtIEs", - "ServedNRCellsToModify-Item-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_ServedNRCellsToModify_Item_ExtIEs_tags_401, - sizeof(asn_DEF_ServedNRCellsToModify_Item_ExtIEs_tags_401) - /sizeof(asn_DEF_ServedNRCellsToModify_Item_ExtIEs_tags_401[0]), /* 1 */ - asn_DEF_ServedNRCellsToModify_Item_ExtIEs_tags_401, /* Same as above */ - sizeof(asn_DEF_ServedNRCellsToModify_Item_ExtIEs_tags_401) - /sizeof(asn_DEF_ServedNRCellsToModify_Item_ExtIEs_tags_401[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ServedNRCellsToModify_Item_ExtIEs_401, - 3, /* Elements count */ - &asn_SPC_ServedNRCellsToModify_Item_ExtIEs_specs_401 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_408 = { - sizeof(struct ServedNRCellsToActivate_Item_ExtIEs__extensionValue), - offsetof(struct ServedNRCellsToActivate_Item_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct ServedNRCellsToActivate_Item_ExtIEs__extensionValue, present), - sizeof(((struct ServedNRCellsToActivate_Item_ExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_408 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_408 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ServedNRCellsToActivate_Item_ExtIEs_405[] = { - { ATF_NOFLAGS, 0, offsetof(struct ServedNRCellsToActivate_Item_ExtIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_406, memb_id_constraint_405 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct ServedNRCellsToActivate_Item_ExtIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_407, memb_criticality_constraint_405 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ServedNRCellsToActivate_Item_ExtIEs, extensionValue), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_extensionValue_408, - 0, - { 0, &asn_PER_memb_extensionValue_constr_408, memb_extensionValue_constraint_405 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_ServedNRCellsToActivate_Item_ExtIEs_tags_405[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ServedNRCellsToActivate_Item_ExtIEs_tag2el_405[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* extensionValue */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ServedNRCellsToActivate_Item_ExtIEs_specs_405 = { - sizeof(struct ServedNRCellsToActivate_Item_ExtIEs), - offsetof(struct ServedNRCellsToActivate_Item_ExtIEs, _asn_ctx), - asn_MAP_ServedNRCellsToActivate_Item_ExtIEs_tag2el_405, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ServedNRCellsToActivate_Item_ExtIEs = { - "ServedNRCellsToActivate-Item-ExtIEs", - "ServedNRCellsToActivate-Item-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_ServedNRCellsToActivate_Item_ExtIEs_tags_405, - sizeof(asn_DEF_ServedNRCellsToActivate_Item_ExtIEs_tags_405) - /sizeof(asn_DEF_ServedNRCellsToActivate_Item_ExtIEs_tags_405[0]), /* 1 */ - asn_DEF_ServedNRCellsToActivate_Item_ExtIEs_tags_405, /* Same as above */ - sizeof(asn_DEF_ServedNRCellsToActivate_Item_ExtIEs_tags_405) - /sizeof(asn_DEF_ServedNRCellsToActivate_Item_ExtIEs_tags_405[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ServedNRCellsToActivate_Item_ExtIEs_405, - 3, /* Elements count */ - &asn_SPC_ServedNRCellsToActivate_Item_ExtIEs_specs_405 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_412 = { - sizeof(struct ActivatedNRCellList_Item_ExtIEs__extensionValue), - offsetof(struct ActivatedNRCellList_Item_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct ActivatedNRCellList_Item_ExtIEs__extensionValue, present), - sizeof(((struct ActivatedNRCellList_Item_ExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_412 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_412 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ActivatedNRCellList_Item_ExtIEs_409[] = { - { ATF_NOFLAGS, 0, offsetof(struct ActivatedNRCellList_Item_ExtIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_410, memb_id_constraint_409 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct ActivatedNRCellList_Item_ExtIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_411, memb_criticality_constraint_409 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ActivatedNRCellList_Item_ExtIEs, extensionValue), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_extensionValue_412, - 0, - { 0, &asn_PER_memb_extensionValue_constr_412, memb_extensionValue_constraint_409 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_ActivatedNRCellList_Item_ExtIEs_tags_409[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ActivatedNRCellList_Item_ExtIEs_tag2el_409[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* extensionValue */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ActivatedNRCellList_Item_ExtIEs_specs_409 = { - sizeof(struct ActivatedNRCellList_Item_ExtIEs), - offsetof(struct ActivatedNRCellList_Item_ExtIEs, _asn_ctx), - asn_MAP_ActivatedNRCellList_Item_ExtIEs_tag2el_409, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ActivatedNRCellList_Item_ExtIEs = { - "ActivatedNRCellList-Item-ExtIEs", - "ActivatedNRCellList-Item-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_ActivatedNRCellList_Item_ExtIEs_tags_409, - sizeof(asn_DEF_ActivatedNRCellList_Item_ExtIEs_tags_409) - /sizeof(asn_DEF_ActivatedNRCellList_Item_ExtIEs_tags_409[0]), /* 1 */ - asn_DEF_ActivatedNRCellList_Item_ExtIEs_tags_409, /* Same as above */ - sizeof(asn_DEF_ActivatedNRCellList_Item_ExtIEs_tags_409) - /sizeof(asn_DEF_ActivatedNRCellList_Item_ExtIEs_tags_409[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ActivatedNRCellList_Item_ExtIEs_409, - 3, /* Elements count */ - &asn_SPC_ActivatedNRCellList_Item_ExtIEs_specs_409 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_416 = { - sizeof(struct E_RABs_DataForwardingAddress_ItemExtIEs__extensionValue), - offsetof(struct E_RABs_DataForwardingAddress_ItemExtIEs__extensionValue, _asn_ctx), - offsetof(struct E_RABs_DataForwardingAddress_ItemExtIEs__extensionValue, present), - sizeof(((struct E_RABs_DataForwardingAddress_ItemExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_416 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_416 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E_RABs_DataForwardingAddress_ItemExtIEs_413[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_DataForwardingAddress_ItemExtIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_414, memb_id_constraint_413 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_DataForwardingAddress_ItemExtIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_415, memb_criticality_constraint_413 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_DataForwardingAddress_ItemExtIEs, extensionValue), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_extensionValue_416, - 0, - { 0, &asn_PER_memb_extensionValue_constr_416, memb_extensionValue_constraint_413 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_DataForwardingAddress_ItemExtIEs_tags_413[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_DataForwardingAddress_ItemExtIEs_tag2el_413[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* extensionValue */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_DataForwardingAddress_ItemExtIEs_specs_413 = { - sizeof(struct E_RABs_DataForwardingAddress_ItemExtIEs), - offsetof(struct E_RABs_DataForwardingAddress_ItemExtIEs, _asn_ctx), - asn_MAP_E_RABs_DataForwardingAddress_ItemExtIEs_tag2el_413, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_DataForwardingAddress_ItemExtIEs = { - "E-RABs-DataForwardingAddress-ItemExtIEs", - "E-RABs-DataForwardingAddress-ItemExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_DataForwardingAddress_ItemExtIEs_tags_413, - sizeof(asn_DEF_E_RABs_DataForwardingAddress_ItemExtIEs_tags_413) - /sizeof(asn_DEF_E_RABs_DataForwardingAddress_ItemExtIEs_tags_413[0]), /* 1 */ - asn_DEF_E_RABs_DataForwardingAddress_ItemExtIEs_tags_413, /* Same as above */ - sizeof(asn_DEF_E_RABs_DataForwardingAddress_ItemExtIEs_tags_413) - /sizeof(asn_DEF_E_RABs_DataForwardingAddress_ItemExtIEs_tags_413[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_DataForwardingAddress_ItemExtIEs_413, - 3, /* Elements count */ - &asn_SPC_E_RABs_DataForwardingAddress_ItemExtIEs_specs_413 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_420 = { - sizeof(struct ABSInformationFDD_ExtIEs__extensionValue), - offsetof(struct ABSInformationFDD_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct ABSInformationFDD_ExtIEs__extensionValue, present), - sizeof(((struct ABSInformationFDD_ExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_420 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_420 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ABSInformationFDD_ExtIEs_417[] = { - { ATF_NOFLAGS, 0, offsetof(struct ABSInformationFDD_ExtIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_418, memb_id_constraint_417 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct ABSInformationFDD_ExtIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_419, memb_criticality_constraint_417 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ABSInformationFDD_ExtIEs, extensionValue), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_extensionValue_420, - 0, - { 0, &asn_PER_memb_extensionValue_constr_420, memb_extensionValue_constraint_417 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_ABSInformationFDD_ExtIEs_tags_417[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ABSInformationFDD_ExtIEs_tag2el_417[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ABSInformationFDD_ExtIEs_specs_417 = { - sizeof(struct ABSInformationFDD_ExtIEs), - offsetof(struct ABSInformationFDD_ExtIEs, _asn_ctx), - asn_MAP_ABSInformationFDD_ExtIEs_tag2el_417, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ABSInformationFDD_ExtIEs = { - "ABSInformationFDD-ExtIEs", - "ABSInformationFDD-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_ABSInformationFDD_ExtIEs_tags_417, - sizeof(asn_DEF_ABSInformationFDD_ExtIEs_tags_417) - /sizeof(asn_DEF_ABSInformationFDD_ExtIEs_tags_417[0]), /* 1 */ - asn_DEF_ABSInformationFDD_ExtIEs_tags_417, /* Same as above */ - sizeof(asn_DEF_ABSInformationFDD_ExtIEs_tags_417) - /sizeof(asn_DEF_ABSInformationFDD_ExtIEs_tags_417[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ABSInformationFDD_ExtIEs_417, - 3, /* Elements count */ - &asn_SPC_ABSInformationFDD_ExtIEs_specs_417 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_424 = { - sizeof(struct ABSInformationTDD_ExtIEs__extensionValue), - offsetof(struct ABSInformationTDD_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct ABSInformationTDD_ExtIEs__extensionValue, present), - sizeof(((struct ABSInformationTDD_ExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_424 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_424 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ABSInformationTDD_ExtIEs_421[] = { - { ATF_NOFLAGS, 0, offsetof(struct ABSInformationTDD_ExtIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_422, memb_id_constraint_421 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct ABSInformationTDD_ExtIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_423, memb_criticality_constraint_421 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ABSInformationTDD_ExtIEs, extensionValue), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_extensionValue_424, - 0, - { 0, &asn_PER_memb_extensionValue_constr_424, memb_extensionValue_constraint_421 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_ABSInformationTDD_ExtIEs_tags_421[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ABSInformationTDD_ExtIEs_tag2el_421[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ABSInformationTDD_ExtIEs_specs_421 = { - sizeof(struct ABSInformationTDD_ExtIEs), - offsetof(struct ABSInformationTDD_ExtIEs, _asn_ctx), - asn_MAP_ABSInformationTDD_ExtIEs_tag2el_421, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ABSInformationTDD_ExtIEs = { - "ABSInformationTDD-ExtIEs", - "ABSInformationTDD-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_ABSInformationTDD_ExtIEs_tags_421, - sizeof(asn_DEF_ABSInformationTDD_ExtIEs_tags_421) - /sizeof(asn_DEF_ABSInformationTDD_ExtIEs_tags_421[0]), /* 1 */ - asn_DEF_ABSInformationTDD_ExtIEs_tags_421, /* Same as above */ - sizeof(asn_DEF_ABSInformationTDD_ExtIEs_tags_421) - /sizeof(asn_DEF_ABSInformationTDD_ExtIEs_tags_421[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ABSInformationTDD_ExtIEs_421, - 3, /* Elements count */ - &asn_SPC_ABSInformationTDD_ExtIEs_specs_421 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_428 = { - sizeof(struct ABS_Status_ExtIEs__extensionValue), - offsetof(struct ABS_Status_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct ABS_Status_ExtIEs__extensionValue, present), - sizeof(((struct ABS_Status_ExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_428 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_428 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ABS_Status_ExtIEs_425[] = { - { ATF_NOFLAGS, 0, offsetof(struct ABS_Status_ExtIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_426, memb_id_constraint_425 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct ABS_Status_ExtIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_427, memb_criticality_constraint_425 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ABS_Status_ExtIEs, extensionValue), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_extensionValue_428, - 0, - { 0, &asn_PER_memb_extensionValue_constr_428, memb_extensionValue_constraint_425 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_ABS_Status_ExtIEs_tags_425[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ABS_Status_ExtIEs_tag2el_425[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ABS_Status_ExtIEs_specs_425 = { - sizeof(struct ABS_Status_ExtIEs), - offsetof(struct ABS_Status_ExtIEs, _asn_ctx), - asn_MAP_ABS_Status_ExtIEs_tag2el_425, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ABS_Status_ExtIEs = { - "ABS-Status-ExtIEs", - "ABS-Status-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_ABS_Status_ExtIEs_tags_425, - sizeof(asn_DEF_ABS_Status_ExtIEs_tags_425) - /sizeof(asn_DEF_ABS_Status_ExtIEs_tags_425[0]), /* 1 */ - asn_DEF_ABS_Status_ExtIEs_tags_425, /* Same as above */ - sizeof(asn_DEF_ABS_Status_ExtIEs_tags_425) - /sizeof(asn_DEF_ABS_Status_ExtIEs_tags_425[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ABS_Status_ExtIEs_425, - 3, /* Elements count */ - &asn_SPC_ABS_Status_ExtIEs_specs_425 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_432 = { - sizeof(struct AdditionalSpecialSubframe_Info_ExtIEs__extensionValue), - offsetof(struct AdditionalSpecialSubframe_Info_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct AdditionalSpecialSubframe_Info_ExtIEs__extensionValue, present), - sizeof(((struct AdditionalSpecialSubframe_Info_ExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_432 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_432 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_AdditionalSpecialSubframe_Info_ExtIEs_429[] = { - { ATF_NOFLAGS, 0, offsetof(struct AdditionalSpecialSubframe_Info_ExtIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_430, memb_id_constraint_429 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct AdditionalSpecialSubframe_Info_ExtIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_431, memb_criticality_constraint_429 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct AdditionalSpecialSubframe_Info_ExtIEs, extensionValue), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_extensionValue_432, - 0, - { 0, &asn_PER_memb_extensionValue_constr_432, memb_extensionValue_constraint_429 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_AdditionalSpecialSubframe_Info_ExtIEs_tags_429[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_AdditionalSpecialSubframe_Info_ExtIEs_tag2el_429[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ -}; -asn_SEQUENCE_specifics_t asn_SPC_AdditionalSpecialSubframe_Info_ExtIEs_specs_429 = { - sizeof(struct AdditionalSpecialSubframe_Info_ExtIEs), - offsetof(struct AdditionalSpecialSubframe_Info_ExtIEs, _asn_ctx), - asn_MAP_AdditionalSpecialSubframe_Info_ExtIEs_tag2el_429, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_AdditionalSpecialSubframe_Info_ExtIEs = { - "AdditionalSpecialSubframe-Info-ExtIEs", - "AdditionalSpecialSubframe-Info-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_AdditionalSpecialSubframe_Info_ExtIEs_tags_429, - sizeof(asn_DEF_AdditionalSpecialSubframe_Info_ExtIEs_tags_429) - /sizeof(asn_DEF_AdditionalSpecialSubframe_Info_ExtIEs_tags_429[0]), /* 1 */ - asn_DEF_AdditionalSpecialSubframe_Info_ExtIEs_tags_429, /* Same as above */ - sizeof(asn_DEF_AdditionalSpecialSubframe_Info_ExtIEs_tags_429) - /sizeof(asn_DEF_AdditionalSpecialSubframe_Info_ExtIEs_tags_429[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_AdditionalSpecialSubframe_Info_ExtIEs_429, - 3, /* Elements count */ - &asn_SPC_AdditionalSpecialSubframe_Info_ExtIEs_specs_429 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_436 = { - sizeof(struct AdditionalSpecialSubframeExtension_Info_ExtIEs__extensionValue), - offsetof(struct AdditionalSpecialSubframeExtension_Info_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct AdditionalSpecialSubframeExtension_Info_ExtIEs__extensionValue, present), - sizeof(((struct AdditionalSpecialSubframeExtension_Info_ExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_436 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_436 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_AdditionalSpecialSubframeExtension_Info_ExtIEs_433[] = { - { ATF_NOFLAGS, 0, offsetof(struct AdditionalSpecialSubframeExtension_Info_ExtIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_434, memb_id_constraint_433 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct AdditionalSpecialSubframeExtension_Info_ExtIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_435, memb_criticality_constraint_433 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct AdditionalSpecialSubframeExtension_Info_ExtIEs, extensionValue), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_extensionValue_436, - 0, - { 0, &asn_PER_memb_extensionValue_constr_436, memb_extensionValue_constraint_433 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_AdditionalSpecialSubframeExtension_Info_ExtIEs_tags_433[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_AdditionalSpecialSubframeExtension_Info_ExtIEs_tag2el_433[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ -}; -asn_SEQUENCE_specifics_t asn_SPC_AdditionalSpecialSubframeExtension_Info_ExtIEs_specs_433 = { - sizeof(struct AdditionalSpecialSubframeExtension_Info_ExtIEs), - offsetof(struct AdditionalSpecialSubframeExtension_Info_ExtIEs, _asn_ctx), - asn_MAP_AdditionalSpecialSubframeExtension_Info_ExtIEs_tag2el_433, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_AdditionalSpecialSubframeExtension_Info_ExtIEs = { - "AdditionalSpecialSubframeExtension-Info-ExtIEs", - "AdditionalSpecialSubframeExtension-Info-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_AdditionalSpecialSubframeExtension_Info_ExtIEs_tags_433, - sizeof(asn_DEF_AdditionalSpecialSubframeExtension_Info_ExtIEs_tags_433) - /sizeof(asn_DEF_AdditionalSpecialSubframeExtension_Info_ExtIEs_tags_433[0]), /* 1 */ - asn_DEF_AdditionalSpecialSubframeExtension_Info_ExtIEs_tags_433, /* Same as above */ - sizeof(asn_DEF_AdditionalSpecialSubframeExtension_Info_ExtIEs_tags_433) - /sizeof(asn_DEF_AdditionalSpecialSubframeExtension_Info_ExtIEs_tags_433[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_AdditionalSpecialSubframeExtension_Info_ExtIEs_433, - 3, /* Elements count */ - &asn_SPC_AdditionalSpecialSubframeExtension_Info_ExtIEs_specs_433 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_440 = { - sizeof(struct AllocationAndRetentionPriority_ExtIEs__extensionValue), - offsetof(struct AllocationAndRetentionPriority_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct AllocationAndRetentionPriority_ExtIEs__extensionValue, present), - sizeof(((struct AllocationAndRetentionPriority_ExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_440 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_440 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_AllocationAndRetentionPriority_ExtIEs_437[] = { - { ATF_NOFLAGS, 0, offsetof(struct AllocationAndRetentionPriority_ExtIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_438, memb_id_constraint_437 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct AllocationAndRetentionPriority_ExtIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_439, memb_criticality_constraint_437 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct AllocationAndRetentionPriority_ExtIEs, extensionValue), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_extensionValue_440, - 0, - { 0, &asn_PER_memb_extensionValue_constr_440, memb_extensionValue_constraint_437 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_AllocationAndRetentionPriority_ExtIEs_tags_437[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_AllocationAndRetentionPriority_ExtIEs_tag2el_437[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ -}; -asn_SEQUENCE_specifics_t asn_SPC_AllocationAndRetentionPriority_ExtIEs_specs_437 = { - sizeof(struct AllocationAndRetentionPriority_ExtIEs), - offsetof(struct AllocationAndRetentionPriority_ExtIEs, _asn_ctx), - asn_MAP_AllocationAndRetentionPriority_ExtIEs_tag2el_437, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_AllocationAndRetentionPriority_ExtIEs = { - "AllocationAndRetentionPriority-ExtIEs", - "AllocationAndRetentionPriority-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_AllocationAndRetentionPriority_ExtIEs_tags_437, - sizeof(asn_DEF_AllocationAndRetentionPriority_ExtIEs_tags_437) - /sizeof(asn_DEF_AllocationAndRetentionPriority_ExtIEs_tags_437[0]), /* 1 */ - asn_DEF_AllocationAndRetentionPriority_ExtIEs_tags_437, /* Same as above */ - sizeof(asn_DEF_AllocationAndRetentionPriority_ExtIEs_tags_437) - /sizeof(asn_DEF_AllocationAndRetentionPriority_ExtIEs_tags_437[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_AllocationAndRetentionPriority_ExtIEs_437, - 3, /* Elements count */ - &asn_SPC_AllocationAndRetentionPriority_ExtIEs_specs_437 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_444 = { - sizeof(struct AS_SecurityInformation_ExtIEs__extensionValue), - offsetof(struct AS_SecurityInformation_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct AS_SecurityInformation_ExtIEs__extensionValue, present), - sizeof(((struct AS_SecurityInformation_ExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_444 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_444 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_AS_SecurityInformation_ExtIEs_441[] = { - { ATF_NOFLAGS, 0, offsetof(struct AS_SecurityInformation_ExtIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_442, memb_id_constraint_441 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct AS_SecurityInformation_ExtIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_443, memb_criticality_constraint_441 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct AS_SecurityInformation_ExtIEs, extensionValue), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_extensionValue_444, - 0, - { 0, &asn_PER_memb_extensionValue_constr_444, memb_extensionValue_constraint_441 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_AS_SecurityInformation_ExtIEs_tags_441[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_AS_SecurityInformation_ExtIEs_tag2el_441[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ -}; -asn_SEQUENCE_specifics_t asn_SPC_AS_SecurityInformation_ExtIEs_specs_441 = { - sizeof(struct AS_SecurityInformation_ExtIEs), - offsetof(struct AS_SecurityInformation_ExtIEs, _asn_ctx), - asn_MAP_AS_SecurityInformation_ExtIEs_tag2el_441, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_AS_SecurityInformation_ExtIEs = { - "AS-SecurityInformation-ExtIEs", - "AS-SecurityInformation-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_AS_SecurityInformation_ExtIEs_tags_441, - sizeof(asn_DEF_AS_SecurityInformation_ExtIEs_tags_441) - /sizeof(asn_DEF_AS_SecurityInformation_ExtIEs_tags_441[0]), /* 1 */ - asn_DEF_AS_SecurityInformation_ExtIEs_tags_441, /* Same as above */ - sizeof(asn_DEF_AS_SecurityInformation_ExtIEs_tags_441) - /sizeof(asn_DEF_AS_SecurityInformation_ExtIEs_tags_441[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_AS_SecurityInformation_ExtIEs_441, - 3, /* Elements count */ - &asn_SPC_AS_SecurityInformation_ExtIEs_specs_441 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_448 = { - sizeof(struct BluetoothMeasurementConfiguration_ExtIEs__extensionValue), - offsetof(struct BluetoothMeasurementConfiguration_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct BluetoothMeasurementConfiguration_ExtIEs__extensionValue, present), - sizeof(((struct BluetoothMeasurementConfiguration_ExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_448 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_448 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_BluetoothMeasurementConfiguration_ExtIEs_445[] = { - { ATF_NOFLAGS, 0, offsetof(struct BluetoothMeasurementConfiguration_ExtIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_446, memb_id_constraint_445 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct BluetoothMeasurementConfiguration_ExtIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_447, memb_criticality_constraint_445 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct BluetoothMeasurementConfiguration_ExtIEs, extensionValue), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_extensionValue_448, - 0, - { 0, &asn_PER_memb_extensionValue_constr_448, memb_extensionValue_constraint_445 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_BluetoothMeasurementConfiguration_ExtIEs_tags_445[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_BluetoothMeasurementConfiguration_ExtIEs_tag2el_445[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ -}; -asn_SEQUENCE_specifics_t asn_SPC_BluetoothMeasurementConfiguration_ExtIEs_specs_445 = { - sizeof(struct BluetoothMeasurementConfiguration_ExtIEs), - offsetof(struct BluetoothMeasurementConfiguration_ExtIEs, _asn_ctx), - asn_MAP_BluetoothMeasurementConfiguration_ExtIEs_tag2el_445, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_BluetoothMeasurementConfiguration_ExtIEs = { - "BluetoothMeasurementConfiguration-ExtIEs", - "BluetoothMeasurementConfiguration-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_BluetoothMeasurementConfiguration_ExtIEs_tags_445, - sizeof(asn_DEF_BluetoothMeasurementConfiguration_ExtIEs_tags_445) - /sizeof(asn_DEF_BluetoothMeasurementConfiguration_ExtIEs_tags_445[0]), /* 1 */ - asn_DEF_BluetoothMeasurementConfiguration_ExtIEs_tags_445, /* Same as above */ - sizeof(asn_DEF_BluetoothMeasurementConfiguration_ExtIEs_tags_445) - /sizeof(asn_DEF_BluetoothMeasurementConfiguration_ExtIEs_tags_445[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_BluetoothMeasurementConfiguration_ExtIEs_445, - 3, /* Elements count */ - &asn_SPC_BluetoothMeasurementConfiguration_ExtIEs_specs_445 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_452 = { - sizeof(struct CellBasedMDT_ExtIEs__extensionValue), - offsetof(struct CellBasedMDT_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct CellBasedMDT_ExtIEs__extensionValue, present), - sizeof(((struct CellBasedMDT_ExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_452 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_452 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_CellBasedMDT_ExtIEs_449[] = { - { ATF_NOFLAGS, 0, offsetof(struct CellBasedMDT_ExtIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_450, memb_id_constraint_449 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct CellBasedMDT_ExtIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_451, memb_criticality_constraint_449 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct CellBasedMDT_ExtIEs, extensionValue), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_extensionValue_452, - 0, - { 0, &asn_PER_memb_extensionValue_constr_452, memb_extensionValue_constraint_449 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_CellBasedMDT_ExtIEs_tags_449[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_CellBasedMDT_ExtIEs_tag2el_449[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ -}; -asn_SEQUENCE_specifics_t asn_SPC_CellBasedMDT_ExtIEs_specs_449 = { - sizeof(struct CellBasedMDT_ExtIEs), - offsetof(struct CellBasedMDT_ExtIEs, _asn_ctx), - asn_MAP_CellBasedMDT_ExtIEs_tag2el_449, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_CellBasedMDT_ExtIEs = { - "CellBasedMDT-ExtIEs", - "CellBasedMDT-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_CellBasedMDT_ExtIEs_tags_449, - sizeof(asn_DEF_CellBasedMDT_ExtIEs_tags_449) - /sizeof(asn_DEF_CellBasedMDT_ExtIEs_tags_449[0]), /* 1 */ - asn_DEF_CellBasedMDT_ExtIEs_tags_449, /* Same as above */ - sizeof(asn_DEF_CellBasedMDT_ExtIEs_tags_449) - /sizeof(asn_DEF_CellBasedMDT_ExtIEs_tags_449[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_CellBasedMDT_ExtIEs_449, - 3, /* Elements count */ - &asn_SPC_CellBasedMDT_ExtIEs_specs_449 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_456 = { - sizeof(struct CellBasedQMC_ExtIEs__extensionValue), - offsetof(struct CellBasedQMC_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct CellBasedQMC_ExtIEs__extensionValue, present), - sizeof(((struct CellBasedQMC_ExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_456 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_456 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_CellBasedQMC_ExtIEs_453[] = { - { ATF_NOFLAGS, 0, offsetof(struct CellBasedQMC_ExtIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_454, memb_id_constraint_453 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct CellBasedQMC_ExtIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_455, memb_criticality_constraint_453 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct CellBasedQMC_ExtIEs, extensionValue), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_extensionValue_456, - 0, - { 0, &asn_PER_memb_extensionValue_constr_456, memb_extensionValue_constraint_453 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_CellBasedQMC_ExtIEs_tags_453[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_CellBasedQMC_ExtIEs_tag2el_453[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ -}; -asn_SEQUENCE_specifics_t asn_SPC_CellBasedQMC_ExtIEs_specs_453 = { - sizeof(struct CellBasedQMC_ExtIEs), - offsetof(struct CellBasedQMC_ExtIEs, _asn_ctx), - asn_MAP_CellBasedQMC_ExtIEs_tag2el_453, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_CellBasedQMC_ExtIEs = { - "CellBasedQMC-ExtIEs", - "CellBasedQMC-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_CellBasedQMC_ExtIEs_tags_453, - sizeof(asn_DEF_CellBasedQMC_ExtIEs_tags_453) - /sizeof(asn_DEF_CellBasedQMC_ExtIEs_tags_453[0]), /* 1 */ - asn_DEF_CellBasedQMC_ExtIEs_tags_453, /* Same as above */ - sizeof(asn_DEF_CellBasedQMC_ExtIEs_tags_453) - /sizeof(asn_DEF_CellBasedQMC_ExtIEs_tags_453[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_CellBasedQMC_ExtIEs_453, - 3, /* Elements count */ - &asn_SPC_CellBasedQMC_ExtIEs_specs_453 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_460 = { - sizeof(struct CellReplacingInfo_ExtIEs__extensionValue), - offsetof(struct CellReplacingInfo_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct CellReplacingInfo_ExtIEs__extensionValue, present), - sizeof(((struct CellReplacingInfo_ExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_460 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_460 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_CellReplacingInfo_ExtIEs_457[] = { - { ATF_NOFLAGS, 0, offsetof(struct CellReplacingInfo_ExtIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_458, memb_id_constraint_457 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct CellReplacingInfo_ExtIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_459, memb_criticality_constraint_457 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct CellReplacingInfo_ExtIEs, extensionValue), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_extensionValue_460, - 0, - { 0, &asn_PER_memb_extensionValue_constr_460, memb_extensionValue_constraint_457 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_CellReplacingInfo_ExtIEs_tags_457[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_CellReplacingInfo_ExtIEs_tag2el_457[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ -}; -asn_SEQUENCE_specifics_t asn_SPC_CellReplacingInfo_ExtIEs_specs_457 = { - sizeof(struct CellReplacingInfo_ExtIEs), - offsetof(struct CellReplacingInfo_ExtIEs, _asn_ctx), - asn_MAP_CellReplacingInfo_ExtIEs_tag2el_457, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_CellReplacingInfo_ExtIEs = { - "CellReplacingInfo-ExtIEs", - "CellReplacingInfo-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_CellReplacingInfo_ExtIEs_tags_457, - sizeof(asn_DEF_CellReplacingInfo_ExtIEs_tags_457) - /sizeof(asn_DEF_CellReplacingInfo_ExtIEs_tags_457[0]), /* 1 */ - asn_DEF_CellReplacingInfo_ExtIEs_tags_457, /* Same as above */ - sizeof(asn_DEF_CellReplacingInfo_ExtIEs_tags_457) - /sizeof(asn_DEF_CellReplacingInfo_ExtIEs_tags_457[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_CellReplacingInfo_ExtIEs_457, - 3, /* Elements count */ - &asn_SPC_CellReplacingInfo_ExtIEs_specs_457 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_464 = { - sizeof(struct CellType_ExtIEs__extensionValue), - offsetof(struct CellType_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct CellType_ExtIEs__extensionValue, present), - sizeof(((struct CellType_ExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_464 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_464 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_CellType_ExtIEs_461[] = { - { ATF_NOFLAGS, 0, offsetof(struct CellType_ExtIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_462, memb_id_constraint_461 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct CellType_ExtIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_463, memb_criticality_constraint_461 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct CellType_ExtIEs, extensionValue), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_extensionValue_464, - 0, - { 0, &asn_PER_memb_extensionValue_constr_464, memb_extensionValue_constraint_461 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_CellType_ExtIEs_tags_461[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_CellType_ExtIEs_tag2el_461[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ -}; -asn_SEQUENCE_specifics_t asn_SPC_CellType_ExtIEs_specs_461 = { - sizeof(struct CellType_ExtIEs), - offsetof(struct CellType_ExtIEs, _asn_ctx), - asn_MAP_CellType_ExtIEs_tag2el_461, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_CellType_ExtIEs = { - "CellType-ExtIEs", - "CellType-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_CellType_ExtIEs_tags_461, - sizeof(asn_DEF_CellType_ExtIEs_tags_461) - /sizeof(asn_DEF_CellType_ExtIEs_tags_461[0]), /* 1 */ - asn_DEF_CellType_ExtIEs_tags_461, /* Same as above */ - sizeof(asn_DEF_CellType_ExtIEs_tags_461) - /sizeof(asn_DEF_CellType_ExtIEs_tags_461[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_CellType_ExtIEs_461, - 3, /* Elements count */ - &asn_SPC_CellType_ExtIEs_specs_461 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_468 = { - sizeof(struct CNTypeRestrictionsItem_ExtIEs__extensionValue), - offsetof(struct CNTypeRestrictionsItem_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct CNTypeRestrictionsItem_ExtIEs__extensionValue, present), - sizeof(((struct CNTypeRestrictionsItem_ExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_468 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_468 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_CNTypeRestrictionsItem_ExtIEs_465[] = { - { ATF_NOFLAGS, 0, offsetof(struct CNTypeRestrictionsItem_ExtIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_466, memb_id_constraint_465 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct CNTypeRestrictionsItem_ExtIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_467, memb_criticality_constraint_465 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct CNTypeRestrictionsItem_ExtIEs, extensionValue), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_extensionValue_468, - 0, - { 0, &asn_PER_memb_extensionValue_constr_468, memb_extensionValue_constraint_465 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_CNTypeRestrictionsItem_ExtIEs_tags_465[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_CNTypeRestrictionsItem_ExtIEs_tag2el_465[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ -}; -asn_SEQUENCE_specifics_t asn_SPC_CNTypeRestrictionsItem_ExtIEs_specs_465 = { - sizeof(struct CNTypeRestrictionsItem_ExtIEs), - offsetof(struct CNTypeRestrictionsItem_ExtIEs, _asn_ctx), - asn_MAP_CNTypeRestrictionsItem_ExtIEs_tag2el_465, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_CNTypeRestrictionsItem_ExtIEs = { - "CNTypeRestrictionsItem-ExtIEs", - "CNTypeRestrictionsItem-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_CNTypeRestrictionsItem_ExtIEs_tags_465, - sizeof(asn_DEF_CNTypeRestrictionsItem_ExtIEs_tags_465) - /sizeof(asn_DEF_CNTypeRestrictionsItem_ExtIEs_tags_465[0]), /* 1 */ - asn_DEF_CNTypeRestrictionsItem_ExtIEs_tags_465, /* Same as above */ - sizeof(asn_DEF_CNTypeRestrictionsItem_ExtIEs_tags_465) - /sizeof(asn_DEF_CNTypeRestrictionsItem_ExtIEs_tags_465[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_CNTypeRestrictionsItem_ExtIEs_465, - 3, /* Elements count */ - &asn_SPC_CNTypeRestrictionsItem_ExtIEs_specs_465 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_472 = { - sizeof(struct CoMPHypothesisSetItem_ExtIEs__extensionValue), - offsetof(struct CoMPHypothesisSetItem_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct CoMPHypothesisSetItem_ExtIEs__extensionValue, present), - sizeof(((struct CoMPHypothesisSetItem_ExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_472 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_472 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_CoMPHypothesisSetItem_ExtIEs_469[] = { - { ATF_NOFLAGS, 0, offsetof(struct CoMPHypothesisSetItem_ExtIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_470, memb_id_constraint_469 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct CoMPHypothesisSetItem_ExtIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_471, memb_criticality_constraint_469 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct CoMPHypothesisSetItem_ExtIEs, extensionValue), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_extensionValue_472, - 0, - { 0, &asn_PER_memb_extensionValue_constr_472, memb_extensionValue_constraint_469 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_CoMPHypothesisSetItem_ExtIEs_tags_469[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_CoMPHypothesisSetItem_ExtIEs_tag2el_469[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ -}; -asn_SEQUENCE_specifics_t asn_SPC_CoMPHypothesisSetItem_ExtIEs_specs_469 = { - sizeof(struct CoMPHypothesisSetItem_ExtIEs), - offsetof(struct CoMPHypothesisSetItem_ExtIEs, _asn_ctx), - asn_MAP_CoMPHypothesisSetItem_ExtIEs_tag2el_469, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_CoMPHypothesisSetItem_ExtIEs = { - "CoMPHypothesisSetItem-ExtIEs", - "CoMPHypothesisSetItem-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_CoMPHypothesisSetItem_ExtIEs_tags_469, - sizeof(asn_DEF_CoMPHypothesisSetItem_ExtIEs_tags_469) - /sizeof(asn_DEF_CoMPHypothesisSetItem_ExtIEs_tags_469[0]), /* 1 */ - asn_DEF_CoMPHypothesisSetItem_ExtIEs_tags_469, /* Same as above */ - sizeof(asn_DEF_CoMPHypothesisSetItem_ExtIEs_tags_469) - /sizeof(asn_DEF_CoMPHypothesisSetItem_ExtIEs_tags_469[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_CoMPHypothesisSetItem_ExtIEs_469, - 3, /* Elements count */ - &asn_SPC_CoMPHypothesisSetItem_ExtIEs_specs_469 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_476 = { - sizeof(struct CoMPInformation_ExtIEs__extensionValue), - offsetof(struct CoMPInformation_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct CoMPInformation_ExtIEs__extensionValue, present), - sizeof(((struct CoMPInformation_ExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_476 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_476 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_CoMPInformation_ExtIEs_473[] = { - { ATF_NOFLAGS, 0, offsetof(struct CoMPInformation_ExtIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_474, memb_id_constraint_473 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct CoMPInformation_ExtIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_475, memb_criticality_constraint_473 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct CoMPInformation_ExtIEs, extensionValue), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_extensionValue_476, - 0, - { 0, &asn_PER_memb_extensionValue_constr_476, memb_extensionValue_constraint_473 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_CoMPInformation_ExtIEs_tags_473[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_CoMPInformation_ExtIEs_tag2el_473[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ -}; -asn_SEQUENCE_specifics_t asn_SPC_CoMPInformation_ExtIEs_specs_473 = { - sizeof(struct CoMPInformation_ExtIEs), - offsetof(struct CoMPInformation_ExtIEs, _asn_ctx), - asn_MAP_CoMPInformation_ExtIEs_tag2el_473, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_CoMPInformation_ExtIEs = { - "CoMPInformation-ExtIEs", - "CoMPInformation-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_CoMPInformation_ExtIEs_tags_473, - sizeof(asn_DEF_CoMPInformation_ExtIEs_tags_473) - /sizeof(asn_DEF_CoMPInformation_ExtIEs_tags_473[0]), /* 1 */ - asn_DEF_CoMPInformation_ExtIEs_tags_473, /* Same as above */ - sizeof(asn_DEF_CoMPInformation_ExtIEs_tags_473) - /sizeof(asn_DEF_CoMPInformation_ExtIEs_tags_473[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_CoMPInformation_ExtIEs_473, - 3, /* Elements count */ - &asn_SPC_CoMPInformation_ExtIEs_specs_473 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_480 = { - sizeof(struct CoMPInformationItem_ExtIEs__extensionValue), - offsetof(struct CoMPInformationItem_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct CoMPInformationItem_ExtIEs__extensionValue, present), - sizeof(((struct CoMPInformationItem_ExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_480 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_480 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_CoMPInformationItem_ExtIEs_477[] = { - { ATF_NOFLAGS, 0, offsetof(struct CoMPInformationItem_ExtIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_478, memb_id_constraint_477 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct CoMPInformationItem_ExtIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_479, memb_criticality_constraint_477 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct CoMPInformationItem_ExtIEs, extensionValue), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_extensionValue_480, - 0, - { 0, &asn_PER_memb_extensionValue_constr_480, memb_extensionValue_constraint_477 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_CoMPInformationItem_ExtIEs_tags_477[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_CoMPInformationItem_ExtIEs_tag2el_477[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ -}; -asn_SEQUENCE_specifics_t asn_SPC_CoMPInformationItem_ExtIEs_specs_477 = { - sizeof(struct CoMPInformationItem_ExtIEs), - offsetof(struct CoMPInformationItem_ExtIEs, _asn_ctx), - asn_MAP_CoMPInformationItem_ExtIEs_tag2el_477, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_CoMPInformationItem_ExtIEs = { - "CoMPInformationItem-ExtIEs", - "CoMPInformationItem-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_CoMPInformationItem_ExtIEs_tags_477, - sizeof(asn_DEF_CoMPInformationItem_ExtIEs_tags_477) - /sizeof(asn_DEF_CoMPInformationItem_ExtIEs_tags_477[0]), /* 1 */ - asn_DEF_CoMPInformationItem_ExtIEs_tags_477, /* Same as above */ - sizeof(asn_DEF_CoMPInformationItem_ExtIEs_tags_477) - /sizeof(asn_DEF_CoMPInformationItem_ExtIEs_tags_477[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_CoMPInformationItem_ExtIEs_477, - 3, /* Elements count */ - &asn_SPC_CoMPInformationItem_ExtIEs_specs_477 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_484 = { - sizeof(struct CoMPInformationStartTime_ExtIEs__extensionValue), - offsetof(struct CoMPInformationStartTime_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct CoMPInformationStartTime_ExtIEs__extensionValue, present), - sizeof(((struct CoMPInformationStartTime_ExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_484 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_484 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_CoMPInformationStartTime_ExtIEs_481[] = { - { ATF_NOFLAGS, 0, offsetof(struct CoMPInformationStartTime_ExtIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_482, memb_id_constraint_481 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct CoMPInformationStartTime_ExtIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_483, memb_criticality_constraint_481 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct CoMPInformationStartTime_ExtIEs, extensionValue), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_extensionValue_484, - 0, - { 0, &asn_PER_memb_extensionValue_constr_484, memb_extensionValue_constraint_481 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_CoMPInformationStartTime_ExtIEs_tags_481[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_CoMPInformationStartTime_ExtIEs_tag2el_481[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ -}; -asn_SEQUENCE_specifics_t asn_SPC_CoMPInformationStartTime_ExtIEs_specs_481 = { - sizeof(struct CoMPInformationStartTime_ExtIEs), - offsetof(struct CoMPInformationStartTime_ExtIEs, _asn_ctx), - asn_MAP_CoMPInformationStartTime_ExtIEs_tag2el_481, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_CoMPInformationStartTime_ExtIEs = { - "CoMPInformationStartTime-ExtIEs", - "CoMPInformationStartTime-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_CoMPInformationStartTime_ExtIEs_tags_481, - sizeof(asn_DEF_CoMPInformationStartTime_ExtIEs_tags_481) - /sizeof(asn_DEF_CoMPInformationStartTime_ExtIEs_tags_481[0]), /* 1 */ - asn_DEF_CoMPInformationStartTime_ExtIEs_tags_481, /* Same as above */ - sizeof(asn_DEF_CoMPInformationStartTime_ExtIEs_tags_481) - /sizeof(asn_DEF_CoMPInformationStartTime_ExtIEs_tags_481[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_CoMPInformationStartTime_ExtIEs_481, - 3, /* Elements count */ - &asn_SPC_CoMPInformationStartTime_ExtIEs_specs_481 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_488 = { - sizeof(struct CompositeAvailableCapacity_ExtIEs__extensionValue), - offsetof(struct CompositeAvailableCapacity_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct CompositeAvailableCapacity_ExtIEs__extensionValue, present), - sizeof(((struct CompositeAvailableCapacity_ExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_488 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_488 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_CompositeAvailableCapacity_ExtIEs_485[] = { - { ATF_NOFLAGS, 0, offsetof(struct CompositeAvailableCapacity_ExtIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_486, memb_id_constraint_485 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct CompositeAvailableCapacity_ExtIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_487, memb_criticality_constraint_485 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct CompositeAvailableCapacity_ExtIEs, extensionValue), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_extensionValue_488, - 0, - { 0, &asn_PER_memb_extensionValue_constr_488, memb_extensionValue_constraint_485 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_CompositeAvailableCapacity_ExtIEs_tags_485[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_CompositeAvailableCapacity_ExtIEs_tag2el_485[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ -}; -asn_SEQUENCE_specifics_t asn_SPC_CompositeAvailableCapacity_ExtIEs_specs_485 = { - sizeof(struct CompositeAvailableCapacity_ExtIEs), - offsetof(struct CompositeAvailableCapacity_ExtIEs, _asn_ctx), - asn_MAP_CompositeAvailableCapacity_ExtIEs_tag2el_485, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_CompositeAvailableCapacity_ExtIEs = { - "CompositeAvailableCapacity-ExtIEs", - "CompositeAvailableCapacity-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_CompositeAvailableCapacity_ExtIEs_tags_485, - sizeof(asn_DEF_CompositeAvailableCapacity_ExtIEs_tags_485) - /sizeof(asn_DEF_CompositeAvailableCapacity_ExtIEs_tags_485[0]), /* 1 */ - asn_DEF_CompositeAvailableCapacity_ExtIEs_tags_485, /* Same as above */ - sizeof(asn_DEF_CompositeAvailableCapacity_ExtIEs_tags_485) - /sizeof(asn_DEF_CompositeAvailableCapacity_ExtIEs_tags_485[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_CompositeAvailableCapacity_ExtIEs_485, - 3, /* Elements count */ - &asn_SPC_CompositeAvailableCapacity_ExtIEs_specs_485 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_492 = { - sizeof(struct CompositeAvailableCapacityGroup_ExtIEs__extensionValue), - offsetof(struct CompositeAvailableCapacityGroup_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct CompositeAvailableCapacityGroup_ExtIEs__extensionValue, present), - sizeof(((struct CompositeAvailableCapacityGroup_ExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_492 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_492 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_CompositeAvailableCapacityGroup_ExtIEs_489[] = { - { ATF_NOFLAGS, 0, offsetof(struct CompositeAvailableCapacityGroup_ExtIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_490, memb_id_constraint_489 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct CompositeAvailableCapacityGroup_ExtIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_491, memb_criticality_constraint_489 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct CompositeAvailableCapacityGroup_ExtIEs, extensionValue), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_extensionValue_492, - 0, - { 0, &asn_PER_memb_extensionValue_constr_492, memb_extensionValue_constraint_489 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_CompositeAvailableCapacityGroup_ExtIEs_tags_489[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_CompositeAvailableCapacityGroup_ExtIEs_tag2el_489[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ -}; -asn_SEQUENCE_specifics_t asn_SPC_CompositeAvailableCapacityGroup_ExtIEs_specs_489 = { - sizeof(struct CompositeAvailableCapacityGroup_ExtIEs), - offsetof(struct CompositeAvailableCapacityGroup_ExtIEs, _asn_ctx), - asn_MAP_CompositeAvailableCapacityGroup_ExtIEs_tag2el_489, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_CompositeAvailableCapacityGroup_ExtIEs = { - "CompositeAvailableCapacityGroup-ExtIEs", - "CompositeAvailableCapacityGroup-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_CompositeAvailableCapacityGroup_ExtIEs_tags_489, - sizeof(asn_DEF_CompositeAvailableCapacityGroup_ExtIEs_tags_489) - /sizeof(asn_DEF_CompositeAvailableCapacityGroup_ExtIEs_tags_489[0]), /* 1 */ - asn_DEF_CompositeAvailableCapacityGroup_ExtIEs_tags_489, /* Same as above */ - sizeof(asn_DEF_CompositeAvailableCapacityGroup_ExtIEs_tags_489) - /sizeof(asn_DEF_CompositeAvailableCapacityGroup_ExtIEs_tags_489[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_CompositeAvailableCapacityGroup_ExtIEs_489, - 3, /* Elements count */ - &asn_SPC_CompositeAvailableCapacityGroup_ExtIEs_specs_489 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_496 = { - sizeof(struct COUNTvalue_ExtIEs__extensionValue), - offsetof(struct COUNTvalue_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct COUNTvalue_ExtIEs__extensionValue, present), - sizeof(((struct COUNTvalue_ExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_496 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_496 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_COUNTvalue_ExtIEs_493[] = { - { ATF_NOFLAGS, 0, offsetof(struct COUNTvalue_ExtIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_494, memb_id_constraint_493 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct COUNTvalue_ExtIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_495, memb_criticality_constraint_493 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct COUNTvalue_ExtIEs, extensionValue), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_extensionValue_496, - 0, - { 0, &asn_PER_memb_extensionValue_constr_496, memb_extensionValue_constraint_493 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_COUNTvalue_ExtIEs_tags_493[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_COUNTvalue_ExtIEs_tag2el_493[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ -}; -asn_SEQUENCE_specifics_t asn_SPC_COUNTvalue_ExtIEs_specs_493 = { - sizeof(struct COUNTvalue_ExtIEs), - offsetof(struct COUNTvalue_ExtIEs, _asn_ctx), - asn_MAP_COUNTvalue_ExtIEs_tag2el_493, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_COUNTvalue_ExtIEs = { - "COUNTvalue-ExtIEs", - "COUNTvalue-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_COUNTvalue_ExtIEs_tags_493, - sizeof(asn_DEF_COUNTvalue_ExtIEs_tags_493) - /sizeof(asn_DEF_COUNTvalue_ExtIEs_tags_493[0]), /* 1 */ - asn_DEF_COUNTvalue_ExtIEs_tags_493, /* Same as above */ - sizeof(asn_DEF_COUNTvalue_ExtIEs_tags_493) - /sizeof(asn_DEF_COUNTvalue_ExtIEs_tags_493[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_COUNTvalue_ExtIEs_493, - 3, /* Elements count */ - &asn_SPC_COUNTvalue_ExtIEs_specs_493 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_500 = { - sizeof(struct COUNTValueExtended_ExtIEs__extensionValue), - offsetof(struct COUNTValueExtended_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct COUNTValueExtended_ExtIEs__extensionValue, present), - sizeof(((struct COUNTValueExtended_ExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_500 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_500 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_COUNTValueExtended_ExtIEs_497[] = { - { ATF_NOFLAGS, 0, offsetof(struct COUNTValueExtended_ExtIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_498, memb_id_constraint_497 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct COUNTValueExtended_ExtIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_499, memb_criticality_constraint_497 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct COUNTValueExtended_ExtIEs, extensionValue), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_extensionValue_500, - 0, - { 0, &asn_PER_memb_extensionValue_constr_500, memb_extensionValue_constraint_497 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_COUNTValueExtended_ExtIEs_tags_497[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_COUNTValueExtended_ExtIEs_tag2el_497[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ -}; -asn_SEQUENCE_specifics_t asn_SPC_COUNTValueExtended_ExtIEs_specs_497 = { - sizeof(struct COUNTValueExtended_ExtIEs), - offsetof(struct COUNTValueExtended_ExtIEs, _asn_ctx), - asn_MAP_COUNTValueExtended_ExtIEs_tag2el_497, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_COUNTValueExtended_ExtIEs = { - "COUNTValueExtended-ExtIEs", - "COUNTValueExtended-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_COUNTValueExtended_ExtIEs_tags_497, - sizeof(asn_DEF_COUNTValueExtended_ExtIEs_tags_497) - /sizeof(asn_DEF_COUNTValueExtended_ExtIEs_tags_497[0]), /* 1 */ - asn_DEF_COUNTValueExtended_ExtIEs_tags_497, /* Same as above */ - sizeof(asn_DEF_COUNTValueExtended_ExtIEs_tags_497) - /sizeof(asn_DEF_COUNTValueExtended_ExtIEs_tags_497[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_COUNTValueExtended_ExtIEs_497, - 3, /* Elements count */ - &asn_SPC_COUNTValueExtended_ExtIEs_specs_497 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_504 = { - sizeof(struct COUNTvaluePDCP_SNlength18_ExtIEs__extensionValue), - offsetof(struct COUNTvaluePDCP_SNlength18_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct COUNTvaluePDCP_SNlength18_ExtIEs__extensionValue, present), - sizeof(((struct COUNTvaluePDCP_SNlength18_ExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_504 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_504 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_COUNTvaluePDCP_SNlength18_ExtIEs_501[] = { - { ATF_NOFLAGS, 0, offsetof(struct COUNTvaluePDCP_SNlength18_ExtIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_502, memb_id_constraint_501 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct COUNTvaluePDCP_SNlength18_ExtIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_503, memb_criticality_constraint_501 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct COUNTvaluePDCP_SNlength18_ExtIEs, extensionValue), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_extensionValue_504, - 0, - { 0, &asn_PER_memb_extensionValue_constr_504, memb_extensionValue_constraint_501 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_COUNTvaluePDCP_SNlength18_ExtIEs_tags_501[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_COUNTvaluePDCP_SNlength18_ExtIEs_tag2el_501[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ -}; -asn_SEQUENCE_specifics_t asn_SPC_COUNTvaluePDCP_SNlength18_ExtIEs_specs_501 = { - sizeof(struct COUNTvaluePDCP_SNlength18_ExtIEs), - offsetof(struct COUNTvaluePDCP_SNlength18_ExtIEs, _asn_ctx), - asn_MAP_COUNTvaluePDCP_SNlength18_ExtIEs_tag2el_501, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_COUNTvaluePDCP_SNlength18_ExtIEs = { - "COUNTvaluePDCP-SNlength18-ExtIEs", - "COUNTvaluePDCP-SNlength18-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_COUNTvaluePDCP_SNlength18_ExtIEs_tags_501, - sizeof(asn_DEF_COUNTvaluePDCP_SNlength18_ExtIEs_tags_501) - /sizeof(asn_DEF_COUNTvaluePDCP_SNlength18_ExtIEs_tags_501[0]), /* 1 */ - asn_DEF_COUNTvaluePDCP_SNlength18_ExtIEs_tags_501, /* Same as above */ - sizeof(asn_DEF_COUNTvaluePDCP_SNlength18_ExtIEs_tags_501) - /sizeof(asn_DEF_COUNTvaluePDCP_SNlength18_ExtIEs_tags_501[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_COUNTvaluePDCP_SNlength18_ExtIEs_501, - 3, /* Elements count */ - &asn_SPC_COUNTvaluePDCP_SNlength18_ExtIEs_specs_501 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_508 = { - sizeof(struct CriticalityDiagnostics_ExtIEs__extensionValue), - offsetof(struct CriticalityDiagnostics_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct CriticalityDiagnostics_ExtIEs__extensionValue, present), - sizeof(((struct CriticalityDiagnostics_ExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_508 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_508 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_CriticalityDiagnostics_ExtIEs_505[] = { - { ATF_NOFLAGS, 0, offsetof(struct CriticalityDiagnostics_ExtIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_506, memb_id_constraint_505 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct CriticalityDiagnostics_ExtIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_507, memb_criticality_constraint_505 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct CriticalityDiagnostics_ExtIEs, extensionValue), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_extensionValue_508, - 0, - { 0, &asn_PER_memb_extensionValue_constr_508, memb_extensionValue_constraint_505 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_CriticalityDiagnostics_ExtIEs_tags_505[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_CriticalityDiagnostics_ExtIEs_tag2el_505[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ -}; -asn_SEQUENCE_specifics_t asn_SPC_CriticalityDiagnostics_ExtIEs_specs_505 = { - sizeof(struct CriticalityDiagnostics_ExtIEs), - offsetof(struct CriticalityDiagnostics_ExtIEs, _asn_ctx), - asn_MAP_CriticalityDiagnostics_ExtIEs_tag2el_505, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_CriticalityDiagnostics_ExtIEs = { - "CriticalityDiagnostics-ExtIEs", - "CriticalityDiagnostics-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_CriticalityDiagnostics_ExtIEs_tags_505, - sizeof(asn_DEF_CriticalityDiagnostics_ExtIEs_tags_505) - /sizeof(asn_DEF_CriticalityDiagnostics_ExtIEs_tags_505[0]), /* 1 */ - asn_DEF_CriticalityDiagnostics_ExtIEs_tags_505, /* Same as above */ - sizeof(asn_DEF_CriticalityDiagnostics_ExtIEs_tags_505) - /sizeof(asn_DEF_CriticalityDiagnostics_ExtIEs_tags_505[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_CriticalityDiagnostics_ExtIEs_505, - 3, /* Elements count */ - &asn_SPC_CriticalityDiagnostics_ExtIEs_specs_505 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_512 = { - sizeof(struct CriticalityDiagnostics_IE_List_ExtIEs__extensionValue), - offsetof(struct CriticalityDiagnostics_IE_List_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct CriticalityDiagnostics_IE_List_ExtIEs__extensionValue, present), - sizeof(((struct CriticalityDiagnostics_IE_List_ExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_512 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_512 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_CriticalityDiagnostics_IE_List_ExtIEs_509[] = { - { ATF_NOFLAGS, 0, offsetof(struct CriticalityDiagnostics_IE_List_ExtIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_510, memb_id_constraint_509 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct CriticalityDiagnostics_IE_List_ExtIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_511, memb_criticality_constraint_509 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct CriticalityDiagnostics_IE_List_ExtIEs, extensionValue), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_extensionValue_512, - 0, - { 0, &asn_PER_memb_extensionValue_constr_512, memb_extensionValue_constraint_509 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_CriticalityDiagnostics_IE_List_ExtIEs_tags_509[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_CriticalityDiagnostics_IE_List_ExtIEs_tag2el_509[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ -}; -asn_SEQUENCE_specifics_t asn_SPC_CriticalityDiagnostics_IE_List_ExtIEs_specs_509 = { - sizeof(struct CriticalityDiagnostics_IE_List_ExtIEs), - offsetof(struct CriticalityDiagnostics_IE_List_ExtIEs, _asn_ctx), - asn_MAP_CriticalityDiagnostics_IE_List_ExtIEs_tag2el_509, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_CriticalityDiagnostics_IE_List_ExtIEs = { - "CriticalityDiagnostics-IE-List-ExtIEs", - "CriticalityDiagnostics-IE-List-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_CriticalityDiagnostics_IE_List_ExtIEs_tags_509, - sizeof(asn_DEF_CriticalityDiagnostics_IE_List_ExtIEs_tags_509) - /sizeof(asn_DEF_CriticalityDiagnostics_IE_List_ExtIEs_tags_509[0]), /* 1 */ - asn_DEF_CriticalityDiagnostics_IE_List_ExtIEs_tags_509, /* Same as above */ - sizeof(asn_DEF_CriticalityDiagnostics_IE_List_ExtIEs_tags_509) - /sizeof(asn_DEF_CriticalityDiagnostics_IE_List_ExtIEs_tags_509[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_CriticalityDiagnostics_IE_List_ExtIEs_509, - 3, /* Elements count */ - &asn_SPC_CriticalityDiagnostics_IE_List_ExtIEs_specs_509 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_516 = { - sizeof(struct CSIReportList_ExtIEs__extensionValue), - offsetof(struct CSIReportList_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct CSIReportList_ExtIEs__extensionValue, present), - sizeof(((struct CSIReportList_ExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_516 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_516 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_CSIReportList_ExtIEs_513[] = { - { ATF_NOFLAGS, 0, offsetof(struct CSIReportList_ExtIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_514, memb_id_constraint_513 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct CSIReportList_ExtIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_515, memb_criticality_constraint_513 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct CSIReportList_ExtIEs, extensionValue), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_extensionValue_516, - 0, - { 0, &asn_PER_memb_extensionValue_constr_516, memb_extensionValue_constraint_513 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_CSIReportList_ExtIEs_tags_513[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_CSIReportList_ExtIEs_tag2el_513[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ -}; -asn_SEQUENCE_specifics_t asn_SPC_CSIReportList_ExtIEs_specs_513 = { - sizeof(struct CSIReportList_ExtIEs), - offsetof(struct CSIReportList_ExtIEs, _asn_ctx), - asn_MAP_CSIReportList_ExtIEs_tag2el_513, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_CSIReportList_ExtIEs = { - "CSIReportList-ExtIEs", - "CSIReportList-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_CSIReportList_ExtIEs_tags_513, - sizeof(asn_DEF_CSIReportList_ExtIEs_tags_513) - /sizeof(asn_DEF_CSIReportList_ExtIEs_tags_513[0]), /* 1 */ - asn_DEF_CSIReportList_ExtIEs_tags_513, /* Same as above */ - sizeof(asn_DEF_CSIReportList_ExtIEs_tags_513) - /sizeof(asn_DEF_CSIReportList_ExtIEs_tags_513[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_CSIReportList_ExtIEs_513, - 3, /* Elements count */ - &asn_SPC_CSIReportList_ExtIEs_specs_513 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_520 = { - sizeof(struct CSIReportPerCSIProcess_ExtIEs__extensionValue), - offsetof(struct CSIReportPerCSIProcess_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct CSIReportPerCSIProcess_ExtIEs__extensionValue, present), - sizeof(((struct CSIReportPerCSIProcess_ExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_520 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_520 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_CSIReportPerCSIProcess_ExtIEs_517[] = { - { ATF_NOFLAGS, 0, offsetof(struct CSIReportPerCSIProcess_ExtIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_518, memb_id_constraint_517 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct CSIReportPerCSIProcess_ExtIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_519, memb_criticality_constraint_517 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct CSIReportPerCSIProcess_ExtIEs, extensionValue), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_extensionValue_520, - 0, - { 0, &asn_PER_memb_extensionValue_constr_520, memb_extensionValue_constraint_517 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_CSIReportPerCSIProcess_ExtIEs_tags_517[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_CSIReportPerCSIProcess_ExtIEs_tag2el_517[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ -}; -asn_SEQUENCE_specifics_t asn_SPC_CSIReportPerCSIProcess_ExtIEs_specs_517 = { - sizeof(struct CSIReportPerCSIProcess_ExtIEs), - offsetof(struct CSIReportPerCSIProcess_ExtIEs, _asn_ctx), - asn_MAP_CSIReportPerCSIProcess_ExtIEs_tag2el_517, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_CSIReportPerCSIProcess_ExtIEs = { - "CSIReportPerCSIProcess-ExtIEs", - "CSIReportPerCSIProcess-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_CSIReportPerCSIProcess_ExtIEs_tags_517, - sizeof(asn_DEF_CSIReportPerCSIProcess_ExtIEs_tags_517) - /sizeof(asn_DEF_CSIReportPerCSIProcess_ExtIEs_tags_517[0]), /* 1 */ - asn_DEF_CSIReportPerCSIProcess_ExtIEs_tags_517, /* Same as above */ - sizeof(asn_DEF_CSIReportPerCSIProcess_ExtIEs_tags_517) - /sizeof(asn_DEF_CSIReportPerCSIProcess_ExtIEs_tags_517[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_CSIReportPerCSIProcess_ExtIEs_517, - 3, /* Elements count */ - &asn_SPC_CSIReportPerCSIProcess_ExtIEs_specs_517 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_524 = { - sizeof(struct CSIReportPerCSIProcessItem_ExtIEs__extensionValue), - offsetof(struct CSIReportPerCSIProcessItem_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct CSIReportPerCSIProcessItem_ExtIEs__extensionValue, present), - sizeof(((struct CSIReportPerCSIProcessItem_ExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_524 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_524 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_CSIReportPerCSIProcessItem_ExtIEs_521[] = { - { ATF_NOFLAGS, 0, offsetof(struct CSIReportPerCSIProcessItem_ExtIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_522, memb_id_constraint_521 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct CSIReportPerCSIProcessItem_ExtIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_523, memb_criticality_constraint_521 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct CSIReportPerCSIProcessItem_ExtIEs, extensionValue), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_extensionValue_524, - 0, - { 0, &asn_PER_memb_extensionValue_constr_524, memb_extensionValue_constraint_521 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_CSIReportPerCSIProcessItem_ExtIEs_tags_521[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_CSIReportPerCSIProcessItem_ExtIEs_tag2el_521[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ -}; -asn_SEQUENCE_specifics_t asn_SPC_CSIReportPerCSIProcessItem_ExtIEs_specs_521 = { - sizeof(struct CSIReportPerCSIProcessItem_ExtIEs), - offsetof(struct CSIReportPerCSIProcessItem_ExtIEs, _asn_ctx), - asn_MAP_CSIReportPerCSIProcessItem_ExtIEs_tag2el_521, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_CSIReportPerCSIProcessItem_ExtIEs = { - "CSIReportPerCSIProcessItem-ExtIEs", - "CSIReportPerCSIProcessItem-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_CSIReportPerCSIProcessItem_ExtIEs_tags_521, - sizeof(asn_DEF_CSIReportPerCSIProcessItem_ExtIEs_tags_521) - /sizeof(asn_DEF_CSIReportPerCSIProcessItem_ExtIEs_tags_521[0]), /* 1 */ - asn_DEF_CSIReportPerCSIProcessItem_ExtIEs_tags_521, /* Same as above */ - sizeof(asn_DEF_CSIReportPerCSIProcessItem_ExtIEs_tags_521) - /sizeof(asn_DEF_CSIReportPerCSIProcessItem_ExtIEs_tags_521[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_CSIReportPerCSIProcessItem_ExtIEs_521, - 3, /* Elements count */ - &asn_SPC_CSIReportPerCSIProcessItem_ExtIEs_specs_521 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_528 = { - sizeof(struct DataTrafficResourceIndication_ExtIEs__extensionValue), - offsetof(struct DataTrafficResourceIndication_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct DataTrafficResourceIndication_ExtIEs__extensionValue, present), - sizeof(((struct DataTrafficResourceIndication_ExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_528 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_528 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_DataTrafficResourceIndication_ExtIEs_525[] = { - { ATF_NOFLAGS, 0, offsetof(struct DataTrafficResourceIndication_ExtIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_526, memb_id_constraint_525 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct DataTrafficResourceIndication_ExtIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_527, memb_criticality_constraint_525 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct DataTrafficResourceIndication_ExtIEs, extensionValue), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_extensionValue_528, - 0, - { 0, &asn_PER_memb_extensionValue_constr_528, memb_extensionValue_constraint_525 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_DataTrafficResourceIndication_ExtIEs_tags_525[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_DataTrafficResourceIndication_ExtIEs_tag2el_525[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ -}; -asn_SEQUENCE_specifics_t asn_SPC_DataTrafficResourceIndication_ExtIEs_specs_525 = { - sizeof(struct DataTrafficResourceIndication_ExtIEs), - offsetof(struct DataTrafficResourceIndication_ExtIEs, _asn_ctx), - asn_MAP_DataTrafficResourceIndication_ExtIEs_tag2el_525, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_DataTrafficResourceIndication_ExtIEs = { - "DataTrafficResourceIndication-ExtIEs", - "DataTrafficResourceIndication-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_DataTrafficResourceIndication_ExtIEs_tags_525, - sizeof(asn_DEF_DataTrafficResourceIndication_ExtIEs_tags_525) - /sizeof(asn_DEF_DataTrafficResourceIndication_ExtIEs_tags_525[0]), /* 1 */ - asn_DEF_DataTrafficResourceIndication_ExtIEs_tags_525, /* Same as above */ - sizeof(asn_DEF_DataTrafficResourceIndication_ExtIEs_tags_525) - /sizeof(asn_DEF_DataTrafficResourceIndication_ExtIEs_tags_525[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_DataTrafficResourceIndication_ExtIEs_525, - 3, /* Elements count */ - &asn_SPC_DataTrafficResourceIndication_ExtIEs_specs_525 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_532 = { - sizeof(struct DeliveryStatus_ExtIEs__extensionValue), - offsetof(struct DeliveryStatus_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct DeliveryStatus_ExtIEs__extensionValue, present), - sizeof(((struct DeliveryStatus_ExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_532 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_532 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_DeliveryStatus_ExtIEs_529[] = { - { ATF_NOFLAGS, 0, offsetof(struct DeliveryStatus_ExtIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_530, memb_id_constraint_529 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct DeliveryStatus_ExtIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_531, memb_criticality_constraint_529 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct DeliveryStatus_ExtIEs, extensionValue), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_extensionValue_532, - 0, - { 0, &asn_PER_memb_extensionValue_constr_532, memb_extensionValue_constraint_529 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_DeliveryStatus_ExtIEs_tags_529[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_DeliveryStatus_ExtIEs_tag2el_529[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ -}; -asn_SEQUENCE_specifics_t asn_SPC_DeliveryStatus_ExtIEs_specs_529 = { - sizeof(struct DeliveryStatus_ExtIEs), - offsetof(struct DeliveryStatus_ExtIEs, _asn_ctx), - asn_MAP_DeliveryStatus_ExtIEs_tag2el_529, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_DeliveryStatus_ExtIEs = { - "DeliveryStatus-ExtIEs", - "DeliveryStatus-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_DeliveryStatus_ExtIEs_tags_529, - sizeof(asn_DEF_DeliveryStatus_ExtIEs_tags_529) - /sizeof(asn_DEF_DeliveryStatus_ExtIEs_tags_529[0]), /* 1 */ - asn_DEF_DeliveryStatus_ExtIEs_tags_529, /* Same as above */ - sizeof(asn_DEF_DeliveryStatus_ExtIEs_tags_529) - /sizeof(asn_DEF_DeliveryStatus_ExtIEs_tags_529[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_DeliveryStatus_ExtIEs_529, - 3, /* Elements count */ - &asn_SPC_DeliveryStatus_ExtIEs_specs_529 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_536 = { - sizeof(struct DynamicNAICSInformation_ExtIEs__extensionValue), - offsetof(struct DynamicNAICSInformation_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct DynamicNAICSInformation_ExtIEs__extensionValue, present), - sizeof(((struct DynamicNAICSInformation_ExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_536 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_536 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_DynamicNAICSInformation_ExtIEs_533[] = { - { ATF_NOFLAGS, 0, offsetof(struct DynamicNAICSInformation_ExtIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_534, memb_id_constraint_533 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct DynamicNAICSInformation_ExtIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_535, memb_criticality_constraint_533 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct DynamicNAICSInformation_ExtIEs, extensionValue), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_extensionValue_536, - 0, - { 0, &asn_PER_memb_extensionValue_constr_536, memb_extensionValue_constraint_533 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_DynamicNAICSInformation_ExtIEs_tags_533[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_DynamicNAICSInformation_ExtIEs_tag2el_533[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ -}; -asn_SEQUENCE_specifics_t asn_SPC_DynamicNAICSInformation_ExtIEs_specs_533 = { - sizeof(struct DynamicNAICSInformation_ExtIEs), - offsetof(struct DynamicNAICSInformation_ExtIEs, _asn_ctx), - asn_MAP_DynamicNAICSInformation_ExtIEs_tag2el_533, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_DynamicNAICSInformation_ExtIEs = { - "DynamicNAICSInformation-ExtIEs", - "DynamicNAICSInformation-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_DynamicNAICSInformation_ExtIEs_tags_533, - sizeof(asn_DEF_DynamicNAICSInformation_ExtIEs_tags_533) - /sizeof(asn_DEF_DynamicNAICSInformation_ExtIEs_tags_533[0]), /* 1 */ - asn_DEF_DynamicNAICSInformation_ExtIEs_tags_533, /* Same as above */ - sizeof(asn_DEF_DynamicNAICSInformation_ExtIEs_tags_533) - /sizeof(asn_DEF_DynamicNAICSInformation_ExtIEs_tags_533[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_DynamicNAICSInformation_ExtIEs_533, - 3, /* Elements count */ - &asn_SPC_DynamicNAICSInformation_ExtIEs_specs_533 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_540 = { - sizeof(struct ECGI_ExtIEs__extensionValue), - offsetof(struct ECGI_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct ECGI_ExtIEs__extensionValue, present), - sizeof(((struct ECGI_ExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_540 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_540 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ECGI_ExtIEs_537[] = { - { ATF_NOFLAGS, 0, offsetof(struct ECGI_ExtIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_538, memb_id_constraint_537 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct ECGI_ExtIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_539, memb_criticality_constraint_537 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ECGI_ExtIEs, extensionValue), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_extensionValue_540, - 0, - { 0, &asn_PER_memb_extensionValue_constr_540, memb_extensionValue_constraint_537 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_ECGI_ExtIEs_tags_537[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ECGI_ExtIEs_tag2el_537[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ECGI_ExtIEs_specs_537 = { - sizeof(struct ECGI_ExtIEs), - offsetof(struct ECGI_ExtIEs, _asn_ctx), - asn_MAP_ECGI_ExtIEs_tag2el_537, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ECGI_ExtIEs = { - "ECGI-ExtIEs", - "ECGI-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_ECGI_ExtIEs_tags_537, - sizeof(asn_DEF_ECGI_ExtIEs_tags_537) - /sizeof(asn_DEF_ECGI_ExtIEs_tags_537[0]), /* 1 */ - asn_DEF_ECGI_ExtIEs_tags_537, /* Same as above */ - sizeof(asn_DEF_ECGI_ExtIEs_tags_537) - /sizeof(asn_DEF_ECGI_ExtIEs_tags_537[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ECGI_ExtIEs_537, - 3, /* Elements count */ - &asn_SPC_ECGI_ExtIEs_specs_537 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_544 = { - sizeof(struct EnhancedRNTP_ExtIEs__extensionValue), - offsetof(struct EnhancedRNTP_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct EnhancedRNTP_ExtIEs__extensionValue, present), - sizeof(((struct EnhancedRNTP_ExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_544 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_544 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_EnhancedRNTP_ExtIEs_541[] = { - { ATF_NOFLAGS, 0, offsetof(struct EnhancedRNTP_ExtIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_542, memb_id_constraint_541 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct EnhancedRNTP_ExtIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_543, memb_criticality_constraint_541 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct EnhancedRNTP_ExtIEs, extensionValue), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_extensionValue_544, - 0, - { 0, &asn_PER_memb_extensionValue_constr_544, memb_extensionValue_constraint_541 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_EnhancedRNTP_ExtIEs_tags_541[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_EnhancedRNTP_ExtIEs_tag2el_541[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ -}; -asn_SEQUENCE_specifics_t asn_SPC_EnhancedRNTP_ExtIEs_specs_541 = { - sizeof(struct EnhancedRNTP_ExtIEs), - offsetof(struct EnhancedRNTP_ExtIEs, _asn_ctx), - asn_MAP_EnhancedRNTP_ExtIEs_tag2el_541, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_EnhancedRNTP_ExtIEs = { - "EnhancedRNTP-ExtIEs", - "EnhancedRNTP-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_EnhancedRNTP_ExtIEs_tags_541, - sizeof(asn_DEF_EnhancedRNTP_ExtIEs_tags_541) - /sizeof(asn_DEF_EnhancedRNTP_ExtIEs_tags_541[0]), /* 1 */ - asn_DEF_EnhancedRNTP_ExtIEs_tags_541, /* Same as above */ - sizeof(asn_DEF_EnhancedRNTP_ExtIEs_tags_541) - /sizeof(asn_DEF_EnhancedRNTP_ExtIEs_tags_541[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_EnhancedRNTP_ExtIEs_541, - 3, /* Elements count */ - &asn_SPC_EnhancedRNTP_ExtIEs_specs_541 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_548 = { - sizeof(struct EnhancedRNTPStartTime_ExtIEs__extensionValue), - offsetof(struct EnhancedRNTPStartTime_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct EnhancedRNTPStartTime_ExtIEs__extensionValue, present), - sizeof(((struct EnhancedRNTPStartTime_ExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_548 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_548 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_EnhancedRNTPStartTime_ExtIEs_545[] = { - { ATF_NOFLAGS, 0, offsetof(struct EnhancedRNTPStartTime_ExtIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_546, memb_id_constraint_545 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct EnhancedRNTPStartTime_ExtIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_547, memb_criticality_constraint_545 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct EnhancedRNTPStartTime_ExtIEs, extensionValue), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_extensionValue_548, - 0, - { 0, &asn_PER_memb_extensionValue_constr_548, memb_extensionValue_constraint_545 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_EnhancedRNTPStartTime_ExtIEs_tags_545[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_EnhancedRNTPStartTime_ExtIEs_tag2el_545[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ -}; -asn_SEQUENCE_specifics_t asn_SPC_EnhancedRNTPStartTime_ExtIEs_specs_545 = { - sizeof(struct EnhancedRNTPStartTime_ExtIEs), - offsetof(struct EnhancedRNTPStartTime_ExtIEs, _asn_ctx), - asn_MAP_EnhancedRNTPStartTime_ExtIEs_tag2el_545, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_EnhancedRNTPStartTime_ExtIEs = { - "EnhancedRNTPStartTime-ExtIEs", - "EnhancedRNTPStartTime-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_EnhancedRNTPStartTime_ExtIEs_tags_545, - sizeof(asn_DEF_EnhancedRNTPStartTime_ExtIEs_tags_545) - /sizeof(asn_DEF_EnhancedRNTPStartTime_ExtIEs_tags_545[0]), /* 1 */ - asn_DEF_EnhancedRNTPStartTime_ExtIEs_tags_545, /* Same as above */ - sizeof(asn_DEF_EnhancedRNTPStartTime_ExtIEs_tags_545) - /sizeof(asn_DEF_EnhancedRNTPStartTime_ExtIEs_tags_545[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_EnhancedRNTPStartTime_ExtIEs_545, - 3, /* Elements count */ - &asn_SPC_EnhancedRNTPStartTime_ExtIEs_specs_545 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_552 = { - sizeof(struct EN_DC_ResourceConfigurationExtIEs__extensionValue), - offsetof(struct EN_DC_ResourceConfigurationExtIEs__extensionValue, _asn_ctx), - offsetof(struct EN_DC_ResourceConfigurationExtIEs__extensionValue, present), - sizeof(((struct EN_DC_ResourceConfigurationExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_552 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_552 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_EN_DC_ResourceConfigurationExtIEs_549[] = { - { ATF_NOFLAGS, 0, offsetof(struct EN_DC_ResourceConfigurationExtIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_550, memb_id_constraint_549 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct EN_DC_ResourceConfigurationExtIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_551, memb_criticality_constraint_549 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct EN_DC_ResourceConfigurationExtIEs, extensionValue), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_extensionValue_552, - 0, - { 0, &asn_PER_memb_extensionValue_constr_552, memb_extensionValue_constraint_549 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_EN_DC_ResourceConfigurationExtIEs_tags_549[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_EN_DC_ResourceConfigurationExtIEs_tag2el_549[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ -}; -asn_SEQUENCE_specifics_t asn_SPC_EN_DC_ResourceConfigurationExtIEs_specs_549 = { - sizeof(struct EN_DC_ResourceConfigurationExtIEs), - offsetof(struct EN_DC_ResourceConfigurationExtIEs, _asn_ctx), - asn_MAP_EN_DC_ResourceConfigurationExtIEs_tag2el_549, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_EN_DC_ResourceConfigurationExtIEs = { - "EN-DC-ResourceConfigurationExtIEs", - "EN-DC-ResourceConfigurationExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_EN_DC_ResourceConfigurationExtIEs_tags_549, - sizeof(asn_DEF_EN_DC_ResourceConfigurationExtIEs_tags_549) - /sizeof(asn_DEF_EN_DC_ResourceConfigurationExtIEs_tags_549[0]), /* 1 */ - asn_DEF_EN_DC_ResourceConfigurationExtIEs_tags_549, /* Same as above */ - sizeof(asn_DEF_EN_DC_ResourceConfigurationExtIEs_tags_549) - /sizeof(asn_DEF_EN_DC_ResourceConfigurationExtIEs_tags_549[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_EN_DC_ResourceConfigurationExtIEs_549, - 3, /* Elements count */ - &asn_SPC_EN_DC_ResourceConfigurationExtIEs_specs_549 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_556 = { - sizeof(struct ERABActivityNotifyItem_ExtIEs__extensionValue), - offsetof(struct ERABActivityNotifyItem_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct ERABActivityNotifyItem_ExtIEs__extensionValue, present), - sizeof(((struct ERABActivityNotifyItem_ExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_556 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_556 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ERABActivityNotifyItem_ExtIEs_553[] = { - { ATF_NOFLAGS, 0, offsetof(struct ERABActivityNotifyItem_ExtIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_554, memb_id_constraint_553 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct ERABActivityNotifyItem_ExtIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_555, memb_criticality_constraint_553 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ERABActivityNotifyItem_ExtIEs, extensionValue), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_extensionValue_556, - 0, - { 0, &asn_PER_memb_extensionValue_constr_556, memb_extensionValue_constraint_553 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_ERABActivityNotifyItem_ExtIEs_tags_553[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ERABActivityNotifyItem_ExtIEs_tag2el_553[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ERABActivityNotifyItem_ExtIEs_specs_553 = { - sizeof(struct ERABActivityNotifyItem_ExtIEs), - offsetof(struct ERABActivityNotifyItem_ExtIEs, _asn_ctx), - asn_MAP_ERABActivityNotifyItem_ExtIEs_tag2el_553, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ERABActivityNotifyItem_ExtIEs = { - "ERABActivityNotifyItem-ExtIEs", - "ERABActivityNotifyItem-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_ERABActivityNotifyItem_ExtIEs_tags_553, - sizeof(asn_DEF_ERABActivityNotifyItem_ExtIEs_tags_553) - /sizeof(asn_DEF_ERABActivityNotifyItem_ExtIEs_tags_553[0]), /* 1 */ - asn_DEF_ERABActivityNotifyItem_ExtIEs_tags_553, /* Same as above */ - sizeof(asn_DEF_ERABActivityNotifyItem_ExtIEs_tags_553) - /sizeof(asn_DEF_ERABActivityNotifyItem_ExtIEs_tags_553[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ERABActivityNotifyItem_ExtIEs_553, - 3, /* Elements count */ - &asn_SPC_ERABActivityNotifyItem_ExtIEs_specs_553 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_extensionValue_560[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RAB_Level_QoS_Parameters_ExtIEs__extensionValue, choice.Packet_LossRate), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_Packet_LossRate, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "Packet-LossRate" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_extensionValue_tag2el_560[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 } /* Packet-LossRate */ -}; -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_560 = { - sizeof(struct E_RAB_Level_QoS_Parameters_ExtIEs__extensionValue), - offsetof(struct E_RAB_Level_QoS_Parameters_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct E_RAB_Level_QoS_Parameters_ExtIEs__extensionValue, present), - sizeof(((struct E_RAB_Level_QoS_Parameters_ExtIEs__extensionValue *)0)->present), - asn_MAP_extensionValue_tag2el_560, - 1, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_560 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_extensionValue_560, - 1, /* Elements count */ - &asn_SPC_extensionValue_specs_560 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E_RAB_Level_QoS_Parameters_ExtIEs_557[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RAB_Level_QoS_Parameters_ExtIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_558, memb_id_constraint_557 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RAB_Level_QoS_Parameters_ExtIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_Criticality, - select_E_RAB_Level_QoS_Parameters_ExtIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_559, memb_criticality_constraint_557 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RAB_Level_QoS_Parameters_ExtIEs, extensionValue), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_extensionValue_560, - select_E_RAB_Level_QoS_Parameters_ExtIEs_extensionValue_type, - { 0, &asn_PER_memb_extensionValue_constr_560, memb_extensionValue_constraint_557 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RAB_Level_QoS_Parameters_ExtIEs_tags_557[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RAB_Level_QoS_Parameters_ExtIEs_tag2el_557[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RAB_Level_QoS_Parameters_ExtIEs_specs_557 = { - sizeof(struct E_RAB_Level_QoS_Parameters_ExtIEs), - offsetof(struct E_RAB_Level_QoS_Parameters_ExtIEs, _asn_ctx), - asn_MAP_E_RAB_Level_QoS_Parameters_ExtIEs_tag2el_557, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RAB_Level_QoS_Parameters_ExtIEs = { - "E-RAB-Level-QoS-Parameters-ExtIEs", - "E-RAB-Level-QoS-Parameters-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_E_RAB_Level_QoS_Parameters_ExtIEs_tags_557, - sizeof(asn_DEF_E_RAB_Level_QoS_Parameters_ExtIEs_tags_557) - /sizeof(asn_DEF_E_RAB_Level_QoS_Parameters_ExtIEs_tags_557[0]), /* 1 */ - asn_DEF_E_RAB_Level_QoS_Parameters_ExtIEs_tags_557, /* Same as above */ - sizeof(asn_DEF_E_RAB_Level_QoS_Parameters_ExtIEs_tags_557) - /sizeof(asn_DEF_E_RAB_Level_QoS_Parameters_ExtIEs_tags_557[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RAB_Level_QoS_Parameters_ExtIEs_557, - 3, /* Elements count */ - &asn_SPC_E_RAB_Level_QoS_Parameters_ExtIEs_specs_557 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_564 = { - sizeof(struct E_RAB_Item_ExtIEs__extensionValue), - offsetof(struct E_RAB_Item_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct E_RAB_Item_ExtIEs__extensionValue, present), - sizeof(((struct E_RAB_Item_ExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_564 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_564 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E_RAB_Item_ExtIEs_561[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RAB_Item_ExtIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_562, memb_id_constraint_561 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RAB_Item_ExtIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_563, memb_criticality_constraint_561 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RAB_Item_ExtIEs, extensionValue), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_extensionValue_564, - 0, - { 0, &asn_PER_memb_extensionValue_constr_564, memb_extensionValue_constraint_561 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RAB_Item_ExtIEs_tags_561[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RAB_Item_ExtIEs_tag2el_561[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RAB_Item_ExtIEs_specs_561 = { - sizeof(struct E_RAB_Item_ExtIEs), - offsetof(struct E_RAB_Item_ExtIEs, _asn_ctx), - asn_MAP_E_RAB_Item_ExtIEs_tag2el_561, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RAB_Item_ExtIEs = { - "E-RAB-Item-ExtIEs", - "E-RAB-Item-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_E_RAB_Item_ExtIEs_tags_561, - sizeof(asn_DEF_E_RAB_Item_ExtIEs_tags_561) - /sizeof(asn_DEF_E_RAB_Item_ExtIEs_tags_561[0]), /* 1 */ - asn_DEF_E_RAB_Item_ExtIEs_tags_561, /* Same as above */ - sizeof(asn_DEF_E_RAB_Item_ExtIEs_tags_561) - /sizeof(asn_DEF_E_RAB_Item_ExtIEs_tags_561[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RAB_Item_ExtIEs_561, - 3, /* Elements count */ - &asn_SPC_E_RAB_Item_ExtIEs_specs_561 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_568 = { - sizeof(struct E_RABUsageReport_Item_ExtIEs__extensionValue), - offsetof(struct E_RABUsageReport_Item_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct E_RABUsageReport_Item_ExtIEs__extensionValue, present), - sizeof(((struct E_RABUsageReport_Item_ExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_568 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_568 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E_RABUsageReport_Item_ExtIEs_565[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABUsageReport_Item_ExtIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_566, memb_id_constraint_565 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABUsageReport_Item_ExtIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_567, memb_criticality_constraint_565 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABUsageReport_Item_ExtIEs, extensionValue), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_extensionValue_568, - 0, - { 0, &asn_PER_memb_extensionValue_constr_568, memb_extensionValue_constraint_565 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABUsageReport_Item_ExtIEs_tags_565[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABUsageReport_Item_ExtIEs_tag2el_565[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABUsageReport_Item_ExtIEs_specs_565 = { - sizeof(struct E_RABUsageReport_Item_ExtIEs), - offsetof(struct E_RABUsageReport_Item_ExtIEs, _asn_ctx), - asn_MAP_E_RABUsageReport_Item_ExtIEs_tag2el_565, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABUsageReport_Item_ExtIEs = { - "E-RABUsageReport-Item-ExtIEs", - "E-RABUsageReport-Item-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_E_RABUsageReport_Item_ExtIEs_tags_565, - sizeof(asn_DEF_E_RABUsageReport_Item_ExtIEs_tags_565) - /sizeof(asn_DEF_E_RABUsageReport_Item_ExtIEs_tags_565[0]), /* 1 */ - asn_DEF_E_RABUsageReport_Item_ExtIEs_tags_565, /* Same as above */ - sizeof(asn_DEF_E_RABUsageReport_Item_ExtIEs_tags_565) - /sizeof(asn_DEF_E_RABUsageReport_Item_ExtIEs_tags_565[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABUsageReport_Item_ExtIEs_565, - 3, /* Elements count */ - &asn_SPC_E_RABUsageReport_Item_ExtIEs_specs_565 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_572 = { - sizeof(struct ExpectedUEBehaviour_ExtIEs__extensionValue), - offsetof(struct ExpectedUEBehaviour_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct ExpectedUEBehaviour_ExtIEs__extensionValue, present), - sizeof(((struct ExpectedUEBehaviour_ExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_572 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_572 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ExpectedUEBehaviour_ExtIEs_569[] = { - { ATF_NOFLAGS, 0, offsetof(struct ExpectedUEBehaviour_ExtIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_570, memb_id_constraint_569 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct ExpectedUEBehaviour_ExtIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_571, memb_criticality_constraint_569 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ExpectedUEBehaviour_ExtIEs, extensionValue), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_extensionValue_572, - 0, - { 0, &asn_PER_memb_extensionValue_constr_572, memb_extensionValue_constraint_569 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_ExpectedUEBehaviour_ExtIEs_tags_569[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ExpectedUEBehaviour_ExtIEs_tag2el_569[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ExpectedUEBehaviour_ExtIEs_specs_569 = { - sizeof(struct ExpectedUEBehaviour_ExtIEs), - offsetof(struct ExpectedUEBehaviour_ExtIEs, _asn_ctx), - asn_MAP_ExpectedUEBehaviour_ExtIEs_tag2el_569, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ExpectedUEBehaviour_ExtIEs = { - "ExpectedUEBehaviour-ExtIEs", - "ExpectedUEBehaviour-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_ExpectedUEBehaviour_ExtIEs_tags_569, - sizeof(asn_DEF_ExpectedUEBehaviour_ExtIEs_tags_569) - /sizeof(asn_DEF_ExpectedUEBehaviour_ExtIEs_tags_569[0]), /* 1 */ - asn_DEF_ExpectedUEBehaviour_ExtIEs_tags_569, /* Same as above */ - sizeof(asn_DEF_ExpectedUEBehaviour_ExtIEs_tags_569) - /sizeof(asn_DEF_ExpectedUEBehaviour_ExtIEs_tags_569[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ExpectedUEBehaviour_ExtIEs_569, - 3, /* Elements count */ - &asn_SPC_ExpectedUEBehaviour_ExtIEs_specs_569 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_576 = { - sizeof(struct ExpectedUEActivityBehaviour_ExtIEs__extensionValue), - offsetof(struct ExpectedUEActivityBehaviour_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct ExpectedUEActivityBehaviour_ExtIEs__extensionValue, present), - sizeof(((struct ExpectedUEActivityBehaviour_ExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_576 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_576 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ExpectedUEActivityBehaviour_ExtIEs_573[] = { - { ATF_NOFLAGS, 0, offsetof(struct ExpectedUEActivityBehaviour_ExtIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_574, memb_id_constraint_573 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct ExpectedUEActivityBehaviour_ExtIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_575, memb_criticality_constraint_573 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ExpectedUEActivityBehaviour_ExtIEs, extensionValue), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_extensionValue_576, - 0, - { 0, &asn_PER_memb_extensionValue_constr_576, memb_extensionValue_constraint_573 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_ExpectedUEActivityBehaviour_ExtIEs_tags_573[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ExpectedUEActivityBehaviour_ExtIEs_tag2el_573[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ExpectedUEActivityBehaviour_ExtIEs_specs_573 = { - sizeof(struct ExpectedUEActivityBehaviour_ExtIEs), - offsetof(struct ExpectedUEActivityBehaviour_ExtIEs, _asn_ctx), - asn_MAP_ExpectedUEActivityBehaviour_ExtIEs_tag2el_573, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ExpectedUEActivityBehaviour_ExtIEs = { - "ExpectedUEActivityBehaviour-ExtIEs", - "ExpectedUEActivityBehaviour-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_ExpectedUEActivityBehaviour_ExtIEs_tags_573, - sizeof(asn_DEF_ExpectedUEActivityBehaviour_ExtIEs_tags_573) - /sizeof(asn_DEF_ExpectedUEActivityBehaviour_ExtIEs_tags_573[0]), /* 1 */ - asn_DEF_ExpectedUEActivityBehaviour_ExtIEs_tags_573, /* Same as above */ - sizeof(asn_DEF_ExpectedUEActivityBehaviour_ExtIEs_tags_573) - /sizeof(asn_DEF_ExpectedUEActivityBehaviour_ExtIEs_tags_573[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ExpectedUEActivityBehaviour_ExtIEs_573, - 3, /* Elements count */ - &asn_SPC_ExpectedUEActivityBehaviour_ExtIEs_specs_573 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_580 = { - sizeof(struct ExtendedULInterferenceOverloadInfo_ExtIEs__extensionValue), - offsetof(struct ExtendedULInterferenceOverloadInfo_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct ExtendedULInterferenceOverloadInfo_ExtIEs__extensionValue, present), - sizeof(((struct ExtendedULInterferenceOverloadInfo_ExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_580 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_580 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ExtendedULInterferenceOverloadInfo_ExtIEs_577[] = { - { ATF_NOFLAGS, 0, offsetof(struct ExtendedULInterferenceOverloadInfo_ExtIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_578, memb_id_constraint_577 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct ExtendedULInterferenceOverloadInfo_ExtIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_579, memb_criticality_constraint_577 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ExtendedULInterferenceOverloadInfo_ExtIEs, extensionValue), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_extensionValue_580, - 0, - { 0, &asn_PER_memb_extensionValue_constr_580, memb_extensionValue_constraint_577 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_ExtendedULInterferenceOverloadInfo_ExtIEs_tags_577[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ExtendedULInterferenceOverloadInfo_ExtIEs_tag2el_577[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ExtendedULInterferenceOverloadInfo_ExtIEs_specs_577 = { - sizeof(struct ExtendedULInterferenceOverloadInfo_ExtIEs), - offsetof(struct ExtendedULInterferenceOverloadInfo_ExtIEs, _asn_ctx), - asn_MAP_ExtendedULInterferenceOverloadInfo_ExtIEs_tag2el_577, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ExtendedULInterferenceOverloadInfo_ExtIEs = { - "ExtendedULInterferenceOverloadInfo-ExtIEs", - "ExtendedULInterferenceOverloadInfo-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_ExtendedULInterferenceOverloadInfo_ExtIEs_tags_577, - sizeof(asn_DEF_ExtendedULInterferenceOverloadInfo_ExtIEs_tags_577) - /sizeof(asn_DEF_ExtendedULInterferenceOverloadInfo_ExtIEs_tags_577[0]), /* 1 */ - asn_DEF_ExtendedULInterferenceOverloadInfo_ExtIEs_tags_577, /* Same as above */ - sizeof(asn_DEF_ExtendedULInterferenceOverloadInfo_ExtIEs_tags_577) - /sizeof(asn_DEF_ExtendedULInterferenceOverloadInfo_ExtIEs_tags_577[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ExtendedULInterferenceOverloadInfo_ExtIEs_577, - 3, /* Elements count */ - &asn_SPC_ExtendedULInterferenceOverloadInfo_ExtIEs_specs_577 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_extensionValue_584[] = { - { ATF_NOFLAGS, 0, offsetof(struct FDD_Info_ExtIEs__extensionValue, choice.EARFCNExtension), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_EARFCNExtension, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "EARFCNExtension" - }, - { ATF_NOFLAGS, 0, offsetof(struct FDD_Info_ExtIEs__extensionValue, choice.OffsetOfNbiotChannelNumberToEARFCN), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_OffsetOfNbiotChannelNumberToEARFCN, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "OffsetOfNbiotChannelNumberToEARFCN" - }, - { ATF_NOFLAGS, 0, offsetof(struct FDD_Info_ExtIEs__extensionValue, choice.NRS_NSSS_PowerOffset), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_NRS_NSSS_PowerOffset, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "NRS-NSSS-PowerOffset" - }, - { ATF_NOFLAGS, 0, offsetof(struct FDD_Info_ExtIEs__extensionValue, choice.NSSS_NumOccasionDifferentPrecoder), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_NSSS_NumOccasionDifferentPrecoder, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "NSSS-NumOccasionDifferentPrecoder" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_extensionValue_tag2el_584[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* EARFCNExtension */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 2 }, /* OffsetOfNbiotChannelNumberToEARFCN */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 2, -1, 1 }, /* NRS-NSSS-PowerOffset */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 3, -2, 0 } /* NSSS-NumOccasionDifferentPrecoder */ -}; -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_584 = { - sizeof(struct FDD_Info_ExtIEs__extensionValue), - offsetof(struct FDD_Info_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct FDD_Info_ExtIEs__extensionValue, present), - sizeof(((struct FDD_Info_ExtIEs__extensionValue *)0)->present), - asn_MAP_extensionValue_tag2el_584, - 4, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_584 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_extensionValue_584, - 4, /* Elements count */ - &asn_SPC_extensionValue_specs_584 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_FDD_Info_ExtIEs_581[] = { - { ATF_NOFLAGS, 0, offsetof(struct FDD_Info_ExtIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_582, memb_id_constraint_581 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct FDD_Info_ExtIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_Criticality, - select_FDD_Info_ExtIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_583, memb_criticality_constraint_581 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct FDD_Info_ExtIEs, extensionValue), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_extensionValue_584, - select_FDD_Info_ExtIEs_extensionValue_type, - { 0, &asn_PER_memb_extensionValue_constr_584, memb_extensionValue_constraint_581 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_FDD_Info_ExtIEs_tags_581[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_FDD_Info_ExtIEs_tag2el_581[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ -}; -asn_SEQUENCE_specifics_t asn_SPC_FDD_Info_ExtIEs_specs_581 = { - sizeof(struct FDD_Info_ExtIEs), - offsetof(struct FDD_Info_ExtIEs, _asn_ctx), - asn_MAP_FDD_Info_ExtIEs_tag2el_581, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_FDD_Info_ExtIEs = { - "FDD-Info-ExtIEs", - "FDD-Info-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_FDD_Info_ExtIEs_tags_581, - sizeof(asn_DEF_FDD_Info_ExtIEs_tags_581) - /sizeof(asn_DEF_FDD_Info_ExtIEs_tags_581[0]), /* 1 */ - asn_DEF_FDD_Info_ExtIEs_tags_581, /* Same as above */ - sizeof(asn_DEF_FDD_Info_ExtIEs_tags_581) - /sizeof(asn_DEF_FDD_Info_ExtIEs_tags_581[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_FDD_Info_ExtIEs_581, - 3, /* Elements count */ - &asn_SPC_FDD_Info_ExtIEs_specs_581 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_588 = { - sizeof(struct ForbiddenTAs_Item_ExtIEs__extensionValue), - offsetof(struct ForbiddenTAs_Item_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct ForbiddenTAs_Item_ExtIEs__extensionValue, present), - sizeof(((struct ForbiddenTAs_Item_ExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_588 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_588 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ForbiddenTAs_Item_ExtIEs_585[] = { - { ATF_NOFLAGS, 0, offsetof(struct ForbiddenTAs_Item_ExtIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_586, memb_id_constraint_585 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct ForbiddenTAs_Item_ExtIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_587, memb_criticality_constraint_585 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ForbiddenTAs_Item_ExtIEs, extensionValue), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_extensionValue_588, - 0, - { 0, &asn_PER_memb_extensionValue_constr_588, memb_extensionValue_constraint_585 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_ForbiddenTAs_Item_ExtIEs_tags_585[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ForbiddenTAs_Item_ExtIEs_tag2el_585[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ForbiddenTAs_Item_ExtIEs_specs_585 = { - sizeof(struct ForbiddenTAs_Item_ExtIEs), - offsetof(struct ForbiddenTAs_Item_ExtIEs, _asn_ctx), - asn_MAP_ForbiddenTAs_Item_ExtIEs_tag2el_585, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ForbiddenTAs_Item_ExtIEs = { - "ForbiddenTAs-Item-ExtIEs", - "ForbiddenTAs-Item-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_ForbiddenTAs_Item_ExtIEs_tags_585, - sizeof(asn_DEF_ForbiddenTAs_Item_ExtIEs_tags_585) - /sizeof(asn_DEF_ForbiddenTAs_Item_ExtIEs_tags_585[0]), /* 1 */ - asn_DEF_ForbiddenTAs_Item_ExtIEs_tags_585, /* Same as above */ - sizeof(asn_DEF_ForbiddenTAs_Item_ExtIEs_tags_585) - /sizeof(asn_DEF_ForbiddenTAs_Item_ExtIEs_tags_585[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ForbiddenTAs_Item_ExtIEs_585, - 3, /* Elements count */ - &asn_SPC_ForbiddenTAs_Item_ExtIEs_specs_585 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_592 = { - sizeof(struct ForbiddenLAs_Item_ExtIEs__extensionValue), - offsetof(struct ForbiddenLAs_Item_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct ForbiddenLAs_Item_ExtIEs__extensionValue, present), - sizeof(((struct ForbiddenLAs_Item_ExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_592 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_592 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ForbiddenLAs_Item_ExtIEs_589[] = { - { ATF_NOFLAGS, 0, offsetof(struct ForbiddenLAs_Item_ExtIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_590, memb_id_constraint_589 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct ForbiddenLAs_Item_ExtIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_591, memb_criticality_constraint_589 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ForbiddenLAs_Item_ExtIEs, extensionValue), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_extensionValue_592, - 0, - { 0, &asn_PER_memb_extensionValue_constr_592, memb_extensionValue_constraint_589 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_ForbiddenLAs_Item_ExtIEs_tags_589[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ForbiddenLAs_Item_ExtIEs_tag2el_589[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ForbiddenLAs_Item_ExtIEs_specs_589 = { - sizeof(struct ForbiddenLAs_Item_ExtIEs), - offsetof(struct ForbiddenLAs_Item_ExtIEs, _asn_ctx), - asn_MAP_ForbiddenLAs_Item_ExtIEs_tag2el_589, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ForbiddenLAs_Item_ExtIEs = { - "ForbiddenLAs-Item-ExtIEs", - "ForbiddenLAs-Item-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_ForbiddenLAs_Item_ExtIEs_tags_589, - sizeof(asn_DEF_ForbiddenLAs_Item_ExtIEs_tags_589) - /sizeof(asn_DEF_ForbiddenLAs_Item_ExtIEs_tags_589[0]), /* 1 */ - asn_DEF_ForbiddenLAs_Item_ExtIEs_tags_589, /* Same as above */ - sizeof(asn_DEF_ForbiddenLAs_Item_ExtIEs_tags_589) - /sizeof(asn_DEF_ForbiddenLAs_Item_ExtIEs_tags_589[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ForbiddenLAs_Item_ExtIEs_589, - 3, /* Elements count */ - &asn_SPC_ForbiddenLAs_Item_ExtIEs_specs_589 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_596 = { - sizeof(struct FreqBandNrItem_ExtIEs__extensionValue), - offsetof(struct FreqBandNrItem_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct FreqBandNrItem_ExtIEs__extensionValue, present), - sizeof(((struct FreqBandNrItem_ExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_596 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_596 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_FreqBandNrItem_ExtIEs_593[] = { - { ATF_NOFLAGS, 0, offsetof(struct FreqBandNrItem_ExtIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_594, memb_id_constraint_593 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct FreqBandNrItem_ExtIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_595, memb_criticality_constraint_593 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct FreqBandNrItem_ExtIEs, extensionValue), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_extensionValue_596, - 0, - { 0, &asn_PER_memb_extensionValue_constr_596, memb_extensionValue_constraint_593 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_FreqBandNrItem_ExtIEs_tags_593[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_FreqBandNrItem_ExtIEs_tag2el_593[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ -}; -asn_SEQUENCE_specifics_t asn_SPC_FreqBandNrItem_ExtIEs_specs_593 = { - sizeof(struct FreqBandNrItem_ExtIEs), - offsetof(struct FreqBandNrItem_ExtIEs, _asn_ctx), - asn_MAP_FreqBandNrItem_ExtIEs_tag2el_593, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_FreqBandNrItem_ExtIEs = { - "FreqBandNrItem-ExtIEs", - "FreqBandNrItem-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_FreqBandNrItem_ExtIEs_tags_593, - sizeof(asn_DEF_FreqBandNrItem_ExtIEs_tags_593) - /sizeof(asn_DEF_FreqBandNrItem_ExtIEs_tags_593[0]), /* 1 */ - asn_DEF_FreqBandNrItem_ExtIEs_tags_593, /* Same as above */ - sizeof(asn_DEF_FreqBandNrItem_ExtIEs_tags_593) - /sizeof(asn_DEF_FreqBandNrItem_ExtIEs_tags_593[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_FreqBandNrItem_ExtIEs_593, - 3, /* Elements count */ - &asn_SPC_FreqBandNrItem_ExtIEs_specs_593 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_extensionValue_600[] = { - { ATF_NOFLAGS, 0, offsetof(struct GBR_QosInformation_ExtIEs__extensionValue, choice.ExtendedBitRate), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_ExtendedBitRate, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ExtendedBitRate" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_extensionValue_tag2el_600[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 } /* ExtendedBitRate */ -}; -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_600 = { - sizeof(struct GBR_QosInformation_ExtIEs__extensionValue), - offsetof(struct GBR_QosInformation_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct GBR_QosInformation_ExtIEs__extensionValue, present), - sizeof(((struct GBR_QosInformation_ExtIEs__extensionValue *)0)->present), - asn_MAP_extensionValue_tag2el_600, - 1, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_600 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_extensionValue_600, - 1, /* Elements count */ - &asn_SPC_extensionValue_specs_600 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_GBR_QosInformation_ExtIEs_597[] = { - { ATF_NOFLAGS, 0, offsetof(struct GBR_QosInformation_ExtIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_598, memb_id_constraint_597 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct GBR_QosInformation_ExtIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_Criticality, - select_GBR_QosInformation_ExtIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_599, memb_criticality_constraint_597 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct GBR_QosInformation_ExtIEs, extensionValue), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_extensionValue_600, - select_GBR_QosInformation_ExtIEs_extensionValue_type, - { 0, &asn_PER_memb_extensionValue_constr_600, memb_extensionValue_constraint_597 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_GBR_QosInformation_ExtIEs_tags_597[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_GBR_QosInformation_ExtIEs_tag2el_597[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ -}; -asn_SEQUENCE_specifics_t asn_SPC_GBR_QosInformation_ExtIEs_specs_597 = { - sizeof(struct GBR_QosInformation_ExtIEs), - offsetof(struct GBR_QosInformation_ExtIEs, _asn_ctx), - asn_MAP_GBR_QosInformation_ExtIEs_tag2el_597, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_GBR_QosInformation_ExtIEs = { - "GBR-QosInformation-ExtIEs", - "GBR-QosInformation-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_GBR_QosInformation_ExtIEs_tags_597, - sizeof(asn_DEF_GBR_QosInformation_ExtIEs_tags_597) - /sizeof(asn_DEF_GBR_QosInformation_ExtIEs_tags_597[0]), /* 1 */ - asn_DEF_GBR_QosInformation_ExtIEs_tags_597, /* Same as above */ - sizeof(asn_DEF_GBR_QosInformation_ExtIEs_tags_597) - /sizeof(asn_DEF_GBR_QosInformation_ExtIEs_tags_597[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_GBR_QosInformation_ExtIEs_597, - 3, /* Elements count */ - &asn_SPC_GBR_QosInformation_ExtIEs_specs_597 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_604 = { - sizeof(struct GlobalENB_ID_ExtIEs__extensionValue), - offsetof(struct GlobalENB_ID_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct GlobalENB_ID_ExtIEs__extensionValue, present), - sizeof(((struct GlobalENB_ID_ExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_604 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_604 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_GlobalENB_ID_ExtIEs_601[] = { - { ATF_NOFLAGS, 0, offsetof(struct GlobalENB_ID_ExtIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_602, memb_id_constraint_601 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct GlobalENB_ID_ExtIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_603, memb_criticality_constraint_601 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct GlobalENB_ID_ExtIEs, extensionValue), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_extensionValue_604, - 0, - { 0, &asn_PER_memb_extensionValue_constr_604, memb_extensionValue_constraint_601 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_GlobalENB_ID_ExtIEs_tags_601[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_GlobalENB_ID_ExtIEs_tag2el_601[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ -}; -asn_SEQUENCE_specifics_t asn_SPC_GlobalENB_ID_ExtIEs_specs_601 = { - sizeof(struct GlobalENB_ID_ExtIEs), - offsetof(struct GlobalENB_ID_ExtIEs, _asn_ctx), - asn_MAP_GlobalENB_ID_ExtIEs_tag2el_601, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_GlobalENB_ID_ExtIEs = { - "GlobalENB-ID-ExtIEs", - "GlobalENB-ID-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_GlobalENB_ID_ExtIEs_tags_601, - sizeof(asn_DEF_GlobalENB_ID_ExtIEs_tags_601) - /sizeof(asn_DEF_GlobalENB_ID_ExtIEs_tags_601[0]), /* 1 */ - asn_DEF_GlobalENB_ID_ExtIEs_tags_601, /* Same as above */ - sizeof(asn_DEF_GlobalENB_ID_ExtIEs_tags_601) - /sizeof(asn_DEF_GlobalENB_ID_ExtIEs_tags_601[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_GlobalENB_ID_ExtIEs_601, - 3, /* Elements count */ - &asn_SPC_GlobalENB_ID_ExtIEs_specs_601 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_608 = { - sizeof(struct GlobalGNB_ID_ExtIEs__extensionValue), - offsetof(struct GlobalGNB_ID_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct GlobalGNB_ID_ExtIEs__extensionValue, present), - sizeof(((struct GlobalGNB_ID_ExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_608 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_608 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_GlobalGNB_ID_ExtIEs_605[] = { - { ATF_NOFLAGS, 0, offsetof(struct GlobalGNB_ID_ExtIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_606, memb_id_constraint_605 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct GlobalGNB_ID_ExtIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_607, memb_criticality_constraint_605 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct GlobalGNB_ID_ExtIEs, extensionValue), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_extensionValue_608, - 0, - { 0, &asn_PER_memb_extensionValue_constr_608, memb_extensionValue_constraint_605 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_GlobalGNB_ID_ExtIEs_tags_605[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_GlobalGNB_ID_ExtIEs_tag2el_605[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ -}; -asn_SEQUENCE_specifics_t asn_SPC_GlobalGNB_ID_ExtIEs_specs_605 = { - sizeof(struct GlobalGNB_ID_ExtIEs), - offsetof(struct GlobalGNB_ID_ExtIEs, _asn_ctx), - asn_MAP_GlobalGNB_ID_ExtIEs_tag2el_605, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_GlobalGNB_ID_ExtIEs = { - "GlobalGNB-ID-ExtIEs", - "GlobalGNB-ID-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_GlobalGNB_ID_ExtIEs_tags_605, - sizeof(asn_DEF_GlobalGNB_ID_ExtIEs_tags_605) - /sizeof(asn_DEF_GlobalGNB_ID_ExtIEs_tags_605[0]), /* 1 */ - asn_DEF_GlobalGNB_ID_ExtIEs_tags_605, /* Same as above */ - sizeof(asn_DEF_GlobalGNB_ID_ExtIEs_tags_605) - /sizeof(asn_DEF_GlobalGNB_ID_ExtIEs_tags_605[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_GlobalGNB_ID_ExtIEs_605, - 3, /* Elements count */ - &asn_SPC_GlobalGNB_ID_ExtIEs_specs_605 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_612 = { - sizeof(struct GTPtunnelEndpoint_ExtIEs__extensionValue), - offsetof(struct GTPtunnelEndpoint_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct GTPtunnelEndpoint_ExtIEs__extensionValue, present), - sizeof(((struct GTPtunnelEndpoint_ExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_612 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_612 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_GTPtunnelEndpoint_ExtIEs_609[] = { - { ATF_NOFLAGS, 0, offsetof(struct GTPtunnelEndpoint_ExtIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_610, memb_id_constraint_609 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct GTPtunnelEndpoint_ExtIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_611, memb_criticality_constraint_609 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct GTPtunnelEndpoint_ExtIEs, extensionValue), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_extensionValue_612, - 0, - { 0, &asn_PER_memb_extensionValue_constr_612, memb_extensionValue_constraint_609 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_GTPtunnelEndpoint_ExtIEs_tags_609[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_GTPtunnelEndpoint_ExtIEs_tag2el_609[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ -}; -asn_SEQUENCE_specifics_t asn_SPC_GTPtunnelEndpoint_ExtIEs_specs_609 = { - sizeof(struct GTPtunnelEndpoint_ExtIEs), - offsetof(struct GTPtunnelEndpoint_ExtIEs, _asn_ctx), - asn_MAP_GTPtunnelEndpoint_ExtIEs_tag2el_609, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_GTPtunnelEndpoint_ExtIEs = { - "GTPtunnelEndpoint-ExtIEs", - "GTPtunnelEndpoint-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_GTPtunnelEndpoint_ExtIEs_tags_609, - sizeof(asn_DEF_GTPtunnelEndpoint_ExtIEs_tags_609) - /sizeof(asn_DEF_GTPtunnelEndpoint_ExtIEs_tags_609[0]), /* 1 */ - asn_DEF_GTPtunnelEndpoint_ExtIEs_tags_609, /* Same as above */ - sizeof(asn_DEF_GTPtunnelEndpoint_ExtIEs_tags_609) - /sizeof(asn_DEF_GTPtunnelEndpoint_ExtIEs_tags_609[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_GTPtunnelEndpoint_ExtIEs_609, - 3, /* Elements count */ - &asn_SPC_GTPtunnelEndpoint_ExtIEs_specs_609 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_616 = { - sizeof(struct GU_Group_ID_ExtIEs__extensionValue), - offsetof(struct GU_Group_ID_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct GU_Group_ID_ExtIEs__extensionValue, present), - sizeof(((struct GU_Group_ID_ExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_616 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_616 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_GU_Group_ID_ExtIEs_613[] = { - { ATF_NOFLAGS, 0, offsetof(struct GU_Group_ID_ExtIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_614, memb_id_constraint_613 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct GU_Group_ID_ExtIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_615, memb_criticality_constraint_613 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct GU_Group_ID_ExtIEs, extensionValue), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_extensionValue_616, - 0, - { 0, &asn_PER_memb_extensionValue_constr_616, memb_extensionValue_constraint_613 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_GU_Group_ID_ExtIEs_tags_613[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_GU_Group_ID_ExtIEs_tag2el_613[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ -}; -asn_SEQUENCE_specifics_t asn_SPC_GU_Group_ID_ExtIEs_specs_613 = { - sizeof(struct GU_Group_ID_ExtIEs), - offsetof(struct GU_Group_ID_ExtIEs, _asn_ctx), - asn_MAP_GU_Group_ID_ExtIEs_tag2el_613, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_GU_Group_ID_ExtIEs = { - "GU-Group-ID-ExtIEs", - "GU-Group-ID-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_GU_Group_ID_ExtIEs_tags_613, - sizeof(asn_DEF_GU_Group_ID_ExtIEs_tags_613) - /sizeof(asn_DEF_GU_Group_ID_ExtIEs_tags_613[0]), /* 1 */ - asn_DEF_GU_Group_ID_ExtIEs_tags_613, /* Same as above */ - sizeof(asn_DEF_GU_Group_ID_ExtIEs_tags_613) - /sizeof(asn_DEF_GU_Group_ID_ExtIEs_tags_613[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_GU_Group_ID_ExtIEs_613, - 3, /* Elements count */ - &asn_SPC_GU_Group_ID_ExtIEs_specs_613 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_620 = { - sizeof(struct GUMMEI_ExtIEs__extensionValue), - offsetof(struct GUMMEI_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct GUMMEI_ExtIEs__extensionValue, present), - sizeof(((struct GUMMEI_ExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_620 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_620 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_GUMMEI_ExtIEs_617[] = { - { ATF_NOFLAGS, 0, offsetof(struct GUMMEI_ExtIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_618, memb_id_constraint_617 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct GUMMEI_ExtIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_619, memb_criticality_constraint_617 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct GUMMEI_ExtIEs, extensionValue), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_extensionValue_620, - 0, - { 0, &asn_PER_memb_extensionValue_constr_620, memb_extensionValue_constraint_617 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_GUMMEI_ExtIEs_tags_617[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_GUMMEI_ExtIEs_tag2el_617[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ -}; -asn_SEQUENCE_specifics_t asn_SPC_GUMMEI_ExtIEs_specs_617 = { - sizeof(struct GUMMEI_ExtIEs), - offsetof(struct GUMMEI_ExtIEs, _asn_ctx), - asn_MAP_GUMMEI_ExtIEs_tag2el_617, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_GUMMEI_ExtIEs = { - "GUMMEI-ExtIEs", - "GUMMEI-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_GUMMEI_ExtIEs_tags_617, - sizeof(asn_DEF_GUMMEI_ExtIEs_tags_617) - /sizeof(asn_DEF_GUMMEI_ExtIEs_tags_617[0]), /* 1 */ - asn_DEF_GUMMEI_ExtIEs_tags_617, /* Same as above */ - sizeof(asn_DEF_GUMMEI_ExtIEs_tags_617) - /sizeof(asn_DEF_GUMMEI_ExtIEs_tags_617[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_GUMMEI_ExtIEs_617, - 3, /* Elements count */ - &asn_SPC_GUMMEI_ExtIEs_specs_617 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_extensionValue_624[] = { - { ATF_NOFLAGS, 0, offsetof(struct HandoverRestrictionList_ExtIEs__extensionValue, choice.NRrestrictioninEPSasSecondaryRAT), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_NRrestrictioninEPSasSecondaryRAT, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "NRrestrictioninEPSasSecondaryRAT" - }, - { ATF_NOFLAGS, 0, offsetof(struct HandoverRestrictionList_ExtIEs__extensionValue, choice.CNTypeRestrictions), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CNTypeRestrictions, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "CNTypeRestrictions" - }, - { ATF_NOFLAGS, 0, offsetof(struct HandoverRestrictionList_ExtIEs__extensionValue, choice.NRrestrictionin5GS), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_NRrestrictionin5GS, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "NRrestrictionin5GS" - }, -}; -static const unsigned asn_MAP_extensionValue_to_canonical_624[] = { 0, 2, 1 }; -static const unsigned asn_MAP_extensionValue_from_canonical_624[] = { 0, 2, 1 }; -static const asn_TYPE_tag2member_t asn_MAP_extensionValue_tag2el_624[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 0, 0, 1 }, /* NRrestrictioninEPSasSecondaryRAT */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 2, -1, 0 }, /* NRrestrictionin5GS */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 0 } /* CNTypeRestrictions */ -}; -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_624 = { - sizeof(struct HandoverRestrictionList_ExtIEs__extensionValue), - offsetof(struct HandoverRestrictionList_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct HandoverRestrictionList_ExtIEs__extensionValue, present), - sizeof(((struct HandoverRestrictionList_ExtIEs__extensionValue *)0)->present), - asn_MAP_extensionValue_tag2el_624, - 3, /* Count of tags in the map */ - asn_MAP_extensionValue_to_canonical_624, - asn_MAP_extensionValue_from_canonical_624, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_624 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_extensionValue_624, - 3, /* Elements count */ - &asn_SPC_extensionValue_specs_624 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_HandoverRestrictionList_ExtIEs_621[] = { - { ATF_NOFLAGS, 0, offsetof(struct HandoverRestrictionList_ExtIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_622, memb_id_constraint_621 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct HandoverRestrictionList_ExtIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_Criticality, - select_HandoverRestrictionList_ExtIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_623, memb_criticality_constraint_621 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct HandoverRestrictionList_ExtIEs, extensionValue), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_extensionValue_624, - select_HandoverRestrictionList_ExtIEs_extensionValue_type, - { 0, &asn_PER_memb_extensionValue_constr_624, memb_extensionValue_constraint_621 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_HandoverRestrictionList_ExtIEs_tags_621[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_HandoverRestrictionList_ExtIEs_tag2el_621[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ -}; -asn_SEQUENCE_specifics_t asn_SPC_HandoverRestrictionList_ExtIEs_specs_621 = { - sizeof(struct HandoverRestrictionList_ExtIEs), - offsetof(struct HandoverRestrictionList_ExtIEs, _asn_ctx), - asn_MAP_HandoverRestrictionList_ExtIEs_tag2el_621, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_HandoverRestrictionList_ExtIEs = { - "HandoverRestrictionList-ExtIEs", - "HandoverRestrictionList-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_HandoverRestrictionList_ExtIEs_tags_621, - sizeof(asn_DEF_HandoverRestrictionList_ExtIEs_tags_621) - /sizeof(asn_DEF_HandoverRestrictionList_ExtIEs_tags_621[0]), /* 1 */ - asn_DEF_HandoverRestrictionList_ExtIEs_tags_621, /* Same as above */ - sizeof(asn_DEF_HandoverRestrictionList_ExtIEs_tags_621) - /sizeof(asn_DEF_HandoverRestrictionList_ExtIEs_tags_621[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_HandoverRestrictionList_ExtIEs_621, - 3, /* Elements count */ - &asn_SPC_HandoverRestrictionList_ExtIEs_specs_621 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_628 = { - sizeof(struct HWLoadIndicator_ExtIEs__extensionValue), - offsetof(struct HWLoadIndicator_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct HWLoadIndicator_ExtIEs__extensionValue, present), - sizeof(((struct HWLoadIndicator_ExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_628 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_628 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_HWLoadIndicator_ExtIEs_625[] = { - { ATF_NOFLAGS, 0, offsetof(struct HWLoadIndicator_ExtIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_626, memb_id_constraint_625 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct HWLoadIndicator_ExtIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_627, memb_criticality_constraint_625 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct HWLoadIndicator_ExtIEs, extensionValue), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_extensionValue_628, - 0, - { 0, &asn_PER_memb_extensionValue_constr_628, memb_extensionValue_constraint_625 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_HWLoadIndicator_ExtIEs_tags_625[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_HWLoadIndicator_ExtIEs_tag2el_625[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ -}; -asn_SEQUENCE_specifics_t asn_SPC_HWLoadIndicator_ExtIEs_specs_625 = { - sizeof(struct HWLoadIndicator_ExtIEs), - offsetof(struct HWLoadIndicator_ExtIEs, _asn_ctx), - asn_MAP_HWLoadIndicator_ExtIEs_tag2el_625, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_HWLoadIndicator_ExtIEs = { - "HWLoadIndicator-ExtIEs", - "HWLoadIndicator-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_HWLoadIndicator_ExtIEs_tags_625, - sizeof(asn_DEF_HWLoadIndicator_ExtIEs_tags_625) - /sizeof(asn_DEF_HWLoadIndicator_ExtIEs_tags_625[0]), /* 1 */ - asn_DEF_HWLoadIndicator_ExtIEs_tags_625, /* Same as above */ - sizeof(asn_DEF_HWLoadIndicator_ExtIEs_tags_625) - /sizeof(asn_DEF_HWLoadIndicator_ExtIEs_tags_625[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_HWLoadIndicator_ExtIEs_625, - 3, /* Elements count */ - &asn_SPC_HWLoadIndicator_ExtIEs_specs_625 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_extensionValue_632[] = { - { ATF_NOFLAGS, 0, offsetof(struct LastVisitedEUTRANCellInformation_ExtIEs__extensionValue, choice.Time_UE_StayedInCell_EnhancedGranularity), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_Time_UE_StayedInCell_EnhancedGranularity, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "Time-UE-StayedInCell-EnhancedGranularity" - }, - { ATF_NOFLAGS, 0, offsetof(struct LastVisitedEUTRANCellInformation_ExtIEs__extensionValue, choice.Cause), - -1 /* Ambiguous tag (CHOICE?) */, - 0, - &asn_DEF_Cause, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "Cause" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_extensionValue_tag2el_632[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* Time-UE-StayedInCell-EnhancedGranularity */ - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 1, 0, 0 }, /* radioNetwork */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* transport */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 1, 0, 0 }, /* protocol */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 1, 0, 0 } /* misc */ -}; -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_632 = { - sizeof(struct LastVisitedEUTRANCellInformation_ExtIEs__extensionValue), - offsetof(struct LastVisitedEUTRANCellInformation_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct LastVisitedEUTRANCellInformation_ExtIEs__extensionValue, present), - sizeof(((struct LastVisitedEUTRANCellInformation_ExtIEs__extensionValue *)0)->present), - asn_MAP_extensionValue_tag2el_632, - 5, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_632 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_extensionValue_632, - 2, /* Elements count */ - &asn_SPC_extensionValue_specs_632 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_LastVisitedEUTRANCellInformation_ExtIEs_629[] = { - { ATF_NOFLAGS, 0, offsetof(struct LastVisitedEUTRANCellInformation_ExtIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_630, memb_id_constraint_629 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct LastVisitedEUTRANCellInformation_ExtIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_Criticality, - select_LastVisitedEUTRANCellInformation_ExtIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_631, memb_criticality_constraint_629 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct LastVisitedEUTRANCellInformation_ExtIEs, extensionValue), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_extensionValue_632, - select_LastVisitedEUTRANCellInformation_ExtIEs_extensionValue_type, - { 0, &asn_PER_memb_extensionValue_constr_632, memb_extensionValue_constraint_629 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_LastVisitedEUTRANCellInformation_ExtIEs_tags_629[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_LastVisitedEUTRANCellInformation_ExtIEs_tag2el_629[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ -}; -asn_SEQUENCE_specifics_t asn_SPC_LastVisitedEUTRANCellInformation_ExtIEs_specs_629 = { - sizeof(struct LastVisitedEUTRANCellInformation_ExtIEs), - offsetof(struct LastVisitedEUTRANCellInformation_ExtIEs, _asn_ctx), - asn_MAP_LastVisitedEUTRANCellInformation_ExtIEs_tag2el_629, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_LastVisitedEUTRANCellInformation_ExtIEs = { - "LastVisitedEUTRANCellInformation-ExtIEs", - "LastVisitedEUTRANCellInformation-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_LastVisitedEUTRANCellInformation_ExtIEs_tags_629, - sizeof(asn_DEF_LastVisitedEUTRANCellInformation_ExtIEs_tags_629) - /sizeof(asn_DEF_LastVisitedEUTRANCellInformation_ExtIEs_tags_629[0]), /* 1 */ - asn_DEF_LastVisitedEUTRANCellInformation_ExtIEs_tags_629, /* Same as above */ - sizeof(asn_DEF_LastVisitedEUTRANCellInformation_ExtIEs_tags_629) - /sizeof(asn_DEF_LastVisitedEUTRANCellInformation_ExtIEs_tags_629[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_LastVisitedEUTRANCellInformation_ExtIEs_629, - 3, /* Elements count */ - &asn_SPC_LastVisitedEUTRANCellInformation_ExtIEs_specs_629 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_636 = { - sizeof(struct LocationReportingInformation_ExtIEs__extensionValue), - offsetof(struct LocationReportingInformation_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct LocationReportingInformation_ExtIEs__extensionValue, present), - sizeof(((struct LocationReportingInformation_ExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_636 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_636 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_LocationReportingInformation_ExtIEs_633[] = { - { ATF_NOFLAGS, 0, offsetof(struct LocationReportingInformation_ExtIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_634, memb_id_constraint_633 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct LocationReportingInformation_ExtIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_635, memb_criticality_constraint_633 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct LocationReportingInformation_ExtIEs, extensionValue), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_extensionValue_636, - 0, - { 0, &asn_PER_memb_extensionValue_constr_636, memb_extensionValue_constraint_633 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_LocationReportingInformation_ExtIEs_tags_633[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_LocationReportingInformation_ExtIEs_tag2el_633[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ -}; -asn_SEQUENCE_specifics_t asn_SPC_LocationReportingInformation_ExtIEs_specs_633 = { - sizeof(struct LocationReportingInformation_ExtIEs), - offsetof(struct LocationReportingInformation_ExtIEs, _asn_ctx), - asn_MAP_LocationReportingInformation_ExtIEs_tag2el_633, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_LocationReportingInformation_ExtIEs = { - "LocationReportingInformation-ExtIEs", - "LocationReportingInformation-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_LocationReportingInformation_ExtIEs_tags_633, - sizeof(asn_DEF_LocationReportingInformation_ExtIEs_tags_633) - /sizeof(asn_DEF_LocationReportingInformation_ExtIEs_tags_633[0]), /* 1 */ - asn_DEF_LocationReportingInformation_ExtIEs_tags_633, /* Same as above */ - sizeof(asn_DEF_LocationReportingInformation_ExtIEs_tags_633) - /sizeof(asn_DEF_LocationReportingInformation_ExtIEs_tags_633[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_LocationReportingInformation_ExtIEs_633, - 3, /* Elements count */ - &asn_SPC_LocationReportingInformation_ExtIEs_specs_633 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_640 = { - sizeof(struct M1PeriodicReporting_ExtIEs__extensionValue), - offsetof(struct M1PeriodicReporting_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct M1PeriodicReporting_ExtIEs__extensionValue, present), - sizeof(((struct M1PeriodicReporting_ExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_640 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_640 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_M1PeriodicReporting_ExtIEs_637[] = { - { ATF_NOFLAGS, 0, offsetof(struct M1PeriodicReporting_ExtIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_638, memb_id_constraint_637 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct M1PeriodicReporting_ExtIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_639, memb_criticality_constraint_637 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct M1PeriodicReporting_ExtIEs, extensionValue), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_extensionValue_640, - 0, - { 0, &asn_PER_memb_extensionValue_constr_640, memb_extensionValue_constraint_637 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_M1PeriodicReporting_ExtIEs_tags_637[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_M1PeriodicReporting_ExtIEs_tag2el_637[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ -}; -asn_SEQUENCE_specifics_t asn_SPC_M1PeriodicReporting_ExtIEs_specs_637 = { - sizeof(struct M1PeriodicReporting_ExtIEs), - offsetof(struct M1PeriodicReporting_ExtIEs, _asn_ctx), - asn_MAP_M1PeriodicReporting_ExtIEs_tag2el_637, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_M1PeriodicReporting_ExtIEs = { - "M1PeriodicReporting-ExtIEs", - "M1PeriodicReporting-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_M1PeriodicReporting_ExtIEs_tags_637, - sizeof(asn_DEF_M1PeriodicReporting_ExtIEs_tags_637) - /sizeof(asn_DEF_M1PeriodicReporting_ExtIEs_tags_637[0]), /* 1 */ - asn_DEF_M1PeriodicReporting_ExtIEs_tags_637, /* Same as above */ - sizeof(asn_DEF_M1PeriodicReporting_ExtIEs_tags_637) - /sizeof(asn_DEF_M1PeriodicReporting_ExtIEs_tags_637[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_M1PeriodicReporting_ExtIEs_637, - 3, /* Elements count */ - &asn_SPC_M1PeriodicReporting_ExtIEs_specs_637 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_644 = { - sizeof(struct M1ThresholdEventA2_ExtIEs__extensionValue), - offsetof(struct M1ThresholdEventA2_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct M1ThresholdEventA2_ExtIEs__extensionValue, present), - sizeof(((struct M1ThresholdEventA2_ExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_644 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_644 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_M1ThresholdEventA2_ExtIEs_641[] = { - { ATF_NOFLAGS, 0, offsetof(struct M1ThresholdEventA2_ExtIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_642, memb_id_constraint_641 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct M1ThresholdEventA2_ExtIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_643, memb_criticality_constraint_641 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct M1ThresholdEventA2_ExtIEs, extensionValue), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_extensionValue_644, - 0, - { 0, &asn_PER_memb_extensionValue_constr_644, memb_extensionValue_constraint_641 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_M1ThresholdEventA2_ExtIEs_tags_641[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_M1ThresholdEventA2_ExtIEs_tag2el_641[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ -}; -asn_SEQUENCE_specifics_t asn_SPC_M1ThresholdEventA2_ExtIEs_specs_641 = { - sizeof(struct M1ThresholdEventA2_ExtIEs), - offsetof(struct M1ThresholdEventA2_ExtIEs, _asn_ctx), - asn_MAP_M1ThresholdEventA2_ExtIEs_tag2el_641, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_M1ThresholdEventA2_ExtIEs = { - "M1ThresholdEventA2-ExtIEs", - "M1ThresholdEventA2-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_M1ThresholdEventA2_ExtIEs_tags_641, - sizeof(asn_DEF_M1ThresholdEventA2_ExtIEs_tags_641) - /sizeof(asn_DEF_M1ThresholdEventA2_ExtIEs_tags_641[0]), /* 1 */ - asn_DEF_M1ThresholdEventA2_ExtIEs_tags_641, /* Same as above */ - sizeof(asn_DEF_M1ThresholdEventA2_ExtIEs_tags_641) - /sizeof(asn_DEF_M1ThresholdEventA2_ExtIEs_tags_641[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_M1ThresholdEventA2_ExtIEs_641, - 3, /* Elements count */ - &asn_SPC_M1ThresholdEventA2_ExtIEs_specs_641 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_648 = { - sizeof(struct M3Configuration_ExtIEs__extensionValue), - offsetof(struct M3Configuration_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct M3Configuration_ExtIEs__extensionValue, present), - sizeof(((struct M3Configuration_ExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_648 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_648 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_M3Configuration_ExtIEs_645[] = { - { ATF_NOFLAGS, 0, offsetof(struct M3Configuration_ExtIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_646, memb_id_constraint_645 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct M3Configuration_ExtIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_647, memb_criticality_constraint_645 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct M3Configuration_ExtIEs, extensionValue), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_extensionValue_648, - 0, - { 0, &asn_PER_memb_extensionValue_constr_648, memb_extensionValue_constraint_645 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_M3Configuration_ExtIEs_tags_645[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_M3Configuration_ExtIEs_tag2el_645[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ -}; -asn_SEQUENCE_specifics_t asn_SPC_M3Configuration_ExtIEs_specs_645 = { - sizeof(struct M3Configuration_ExtIEs), - offsetof(struct M3Configuration_ExtIEs, _asn_ctx), - asn_MAP_M3Configuration_ExtIEs_tag2el_645, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_M3Configuration_ExtIEs = { - "M3Configuration-ExtIEs", - "M3Configuration-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_M3Configuration_ExtIEs_tags_645, - sizeof(asn_DEF_M3Configuration_ExtIEs_tags_645) - /sizeof(asn_DEF_M3Configuration_ExtIEs_tags_645[0]), /* 1 */ - asn_DEF_M3Configuration_ExtIEs_tags_645, /* Same as above */ - sizeof(asn_DEF_M3Configuration_ExtIEs_tags_645) - /sizeof(asn_DEF_M3Configuration_ExtIEs_tags_645[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_M3Configuration_ExtIEs_645, - 3, /* Elements count */ - &asn_SPC_M3Configuration_ExtIEs_specs_645 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_652 = { - sizeof(struct M4Configuration_ExtIEs__extensionValue), - offsetof(struct M4Configuration_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct M4Configuration_ExtIEs__extensionValue, present), - sizeof(((struct M4Configuration_ExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_652 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_652 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_M4Configuration_ExtIEs_649[] = { - { ATF_NOFLAGS, 0, offsetof(struct M4Configuration_ExtIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_650, memb_id_constraint_649 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct M4Configuration_ExtIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_651, memb_criticality_constraint_649 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct M4Configuration_ExtIEs, extensionValue), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_extensionValue_652, - 0, - { 0, &asn_PER_memb_extensionValue_constr_652, memb_extensionValue_constraint_649 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_M4Configuration_ExtIEs_tags_649[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_M4Configuration_ExtIEs_tag2el_649[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ -}; -asn_SEQUENCE_specifics_t asn_SPC_M4Configuration_ExtIEs_specs_649 = { - sizeof(struct M4Configuration_ExtIEs), - offsetof(struct M4Configuration_ExtIEs, _asn_ctx), - asn_MAP_M4Configuration_ExtIEs_tag2el_649, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_M4Configuration_ExtIEs = { - "M4Configuration-ExtIEs", - "M4Configuration-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_M4Configuration_ExtIEs_tags_649, - sizeof(asn_DEF_M4Configuration_ExtIEs_tags_649) - /sizeof(asn_DEF_M4Configuration_ExtIEs_tags_649[0]), /* 1 */ - asn_DEF_M4Configuration_ExtIEs_tags_649, /* Same as above */ - sizeof(asn_DEF_M4Configuration_ExtIEs_tags_649) - /sizeof(asn_DEF_M4Configuration_ExtIEs_tags_649[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_M4Configuration_ExtIEs_649, - 3, /* Elements count */ - &asn_SPC_M4Configuration_ExtIEs_specs_649 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_656 = { - sizeof(struct M5Configuration_ExtIEs__extensionValue), - offsetof(struct M5Configuration_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct M5Configuration_ExtIEs__extensionValue, present), - sizeof(((struct M5Configuration_ExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_656 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_656 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_M5Configuration_ExtIEs_653[] = { - { ATF_NOFLAGS, 0, offsetof(struct M5Configuration_ExtIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_654, memb_id_constraint_653 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct M5Configuration_ExtIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_655, memb_criticality_constraint_653 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct M5Configuration_ExtIEs, extensionValue), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_extensionValue_656, - 0, - { 0, &asn_PER_memb_extensionValue_constr_656, memb_extensionValue_constraint_653 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_M5Configuration_ExtIEs_tags_653[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_M5Configuration_ExtIEs_tag2el_653[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ -}; -asn_SEQUENCE_specifics_t asn_SPC_M5Configuration_ExtIEs_specs_653 = { - sizeof(struct M5Configuration_ExtIEs), - offsetof(struct M5Configuration_ExtIEs, _asn_ctx), - asn_MAP_M5Configuration_ExtIEs_tag2el_653, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_M5Configuration_ExtIEs = { - "M5Configuration-ExtIEs", - "M5Configuration-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_M5Configuration_ExtIEs_tags_653, - sizeof(asn_DEF_M5Configuration_ExtIEs_tags_653) - /sizeof(asn_DEF_M5Configuration_ExtIEs_tags_653[0]), /* 1 */ - asn_DEF_M5Configuration_ExtIEs_tags_653, /* Same as above */ - sizeof(asn_DEF_M5Configuration_ExtIEs_tags_653) - /sizeof(asn_DEF_M5Configuration_ExtIEs_tags_653[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_M5Configuration_ExtIEs_653, - 3, /* Elements count */ - &asn_SPC_M5Configuration_ExtIEs_specs_653 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_660 = { - sizeof(struct M6Configuration_ExtIEs__extensionValue), - offsetof(struct M6Configuration_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct M6Configuration_ExtIEs__extensionValue, present), - sizeof(((struct M6Configuration_ExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_660 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_660 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_M6Configuration_ExtIEs_657[] = { - { ATF_NOFLAGS, 0, offsetof(struct M6Configuration_ExtIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_658, memb_id_constraint_657 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct M6Configuration_ExtIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_659, memb_criticality_constraint_657 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct M6Configuration_ExtIEs, extensionValue), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_extensionValue_660, - 0, - { 0, &asn_PER_memb_extensionValue_constr_660, memb_extensionValue_constraint_657 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_M6Configuration_ExtIEs_tags_657[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_M6Configuration_ExtIEs_tag2el_657[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ -}; -asn_SEQUENCE_specifics_t asn_SPC_M6Configuration_ExtIEs_specs_657 = { - sizeof(struct M6Configuration_ExtIEs), - offsetof(struct M6Configuration_ExtIEs, _asn_ctx), - asn_MAP_M6Configuration_ExtIEs_tag2el_657, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_M6Configuration_ExtIEs = { - "M6Configuration-ExtIEs", - "M6Configuration-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_M6Configuration_ExtIEs_tags_657, - sizeof(asn_DEF_M6Configuration_ExtIEs_tags_657) - /sizeof(asn_DEF_M6Configuration_ExtIEs_tags_657[0]), /* 1 */ - asn_DEF_M6Configuration_ExtIEs_tags_657, /* Same as above */ - sizeof(asn_DEF_M6Configuration_ExtIEs_tags_657) - /sizeof(asn_DEF_M6Configuration_ExtIEs_tags_657[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_M6Configuration_ExtIEs_657, - 3, /* Elements count */ - &asn_SPC_M6Configuration_ExtIEs_specs_657 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_664 = { - sizeof(struct M7Configuration_ExtIEs__extensionValue), - offsetof(struct M7Configuration_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct M7Configuration_ExtIEs__extensionValue, present), - sizeof(((struct M7Configuration_ExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_664 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_664 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_M7Configuration_ExtIEs_661[] = { - { ATF_NOFLAGS, 0, offsetof(struct M7Configuration_ExtIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_662, memb_id_constraint_661 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct M7Configuration_ExtIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_663, memb_criticality_constraint_661 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct M7Configuration_ExtIEs, extensionValue), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_extensionValue_664, - 0, - { 0, &asn_PER_memb_extensionValue_constr_664, memb_extensionValue_constraint_661 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_M7Configuration_ExtIEs_tags_661[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_M7Configuration_ExtIEs_tag2el_661[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ -}; -asn_SEQUENCE_specifics_t asn_SPC_M7Configuration_ExtIEs_specs_661 = { - sizeof(struct M7Configuration_ExtIEs), - offsetof(struct M7Configuration_ExtIEs, _asn_ctx), - asn_MAP_M7Configuration_ExtIEs_tag2el_661, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_M7Configuration_ExtIEs = { - "M7Configuration-ExtIEs", - "M7Configuration-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_M7Configuration_ExtIEs_tags_661, - sizeof(asn_DEF_M7Configuration_ExtIEs_tags_661) - /sizeof(asn_DEF_M7Configuration_ExtIEs_tags_661[0]), /* 1 */ - asn_DEF_M7Configuration_ExtIEs_tags_661, /* Same as above */ - sizeof(asn_DEF_M7Configuration_ExtIEs_tags_661) - /sizeof(asn_DEF_M7Configuration_ExtIEs_tags_661[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_M7Configuration_ExtIEs_661, - 3, /* Elements count */ - &asn_SPC_M7Configuration_ExtIEs_specs_661 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_extensionValue_668[] = { - { ATF_NOFLAGS, 0, offsetof(struct MDT_Configuration_ExtIEs__extensionValue, choice.M3Configuration), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_M3Configuration, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "M3Configuration" - }, - { ATF_NOFLAGS, 0, offsetof(struct MDT_Configuration_ExtIEs__extensionValue, choice.M4Configuration), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_M4Configuration, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "M4Configuration" - }, - { ATF_NOFLAGS, 0, offsetof(struct MDT_Configuration_ExtIEs__extensionValue, choice.M5Configuration), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_M5Configuration, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "M5Configuration" - }, - { ATF_NOFLAGS, 0, offsetof(struct MDT_Configuration_ExtIEs__extensionValue, choice.MDT_Location_Info), - (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), - 0, - &asn_DEF_MDT_Location_Info, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "MDT-Location-Info" - }, - { ATF_NOFLAGS, 0, offsetof(struct MDT_Configuration_ExtIEs__extensionValue, choice.MDTPLMNList), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_MDTPLMNList, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "MDTPLMNList" - }, - { ATF_NOFLAGS, 0, offsetof(struct MDT_Configuration_ExtIEs__extensionValue, choice.M6Configuration), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_M6Configuration, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "M6Configuration" - }, - { ATF_NOFLAGS, 0, offsetof(struct MDT_Configuration_ExtIEs__extensionValue, choice.M7Configuration), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_M7Configuration, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "M7Configuration" - }, - { ATF_NOFLAGS, 0, offsetof(struct MDT_Configuration_ExtIEs__extensionValue, choice.BluetoothMeasurementConfiguration), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_BluetoothMeasurementConfiguration, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "BluetoothMeasurementConfiguration" - }, - { ATF_NOFLAGS, 0, offsetof(struct MDT_Configuration_ExtIEs__extensionValue, choice.WLANMeasurementConfiguration), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_WLANMeasurementConfiguration, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "WLANMeasurementConfiguration" - }, -}; -static const unsigned asn_MAP_extensionValue_to_canonical_668[] = { 3, 0, 1, 2, 4, 5, 6, 7, 8 }; -static const unsigned asn_MAP_extensionValue_from_canonical_668[] = { 1, 2, 3, 0, 4, 5, 6, 7, 8 }; -static const asn_TYPE_tag2member_t asn_MAP_extensionValue_tag2el_668[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), 3, 0, 0 }, /* MDT-Location-Info */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 7 }, /* M3Configuration */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 6 }, /* M4Configuration */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -2, 5 }, /* M5Configuration */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, -3, 4 }, /* MDTPLMNList */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 5, -4, 3 }, /* M6Configuration */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 6, -5, 2 }, /* M7Configuration */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 7, -6, 1 }, /* BluetoothMeasurementConfiguration */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 8, -7, 0 } /* WLANMeasurementConfiguration */ -}; -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_668 = { - sizeof(struct MDT_Configuration_ExtIEs__extensionValue), - offsetof(struct MDT_Configuration_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct MDT_Configuration_ExtIEs__extensionValue, present), - sizeof(((struct MDT_Configuration_ExtIEs__extensionValue *)0)->present), - asn_MAP_extensionValue_tag2el_668, - 9, /* Count of tags in the map */ - asn_MAP_extensionValue_to_canonical_668, - asn_MAP_extensionValue_from_canonical_668, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_668 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_extensionValue_668, - 9, /* Elements count */ - &asn_SPC_extensionValue_specs_668 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_MDT_Configuration_ExtIEs_665[] = { - { ATF_NOFLAGS, 0, offsetof(struct MDT_Configuration_ExtIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_666, memb_id_constraint_665 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct MDT_Configuration_ExtIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_Criticality, - select_MDT_Configuration_ExtIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_667, memb_criticality_constraint_665 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct MDT_Configuration_ExtIEs, extensionValue), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_extensionValue_668, - select_MDT_Configuration_ExtIEs_extensionValue_type, - { 0, &asn_PER_memb_extensionValue_constr_668, memb_extensionValue_constraint_665 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_MDT_Configuration_ExtIEs_tags_665[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_MDT_Configuration_ExtIEs_tag2el_665[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ -}; -asn_SEQUENCE_specifics_t asn_SPC_MDT_Configuration_ExtIEs_specs_665 = { - sizeof(struct MDT_Configuration_ExtIEs), - offsetof(struct MDT_Configuration_ExtIEs, _asn_ctx), - asn_MAP_MDT_Configuration_ExtIEs_tag2el_665, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_MDT_Configuration_ExtIEs = { - "MDT-Configuration-ExtIEs", - "MDT-Configuration-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_MDT_Configuration_ExtIEs_tags_665, - sizeof(asn_DEF_MDT_Configuration_ExtIEs_tags_665) - /sizeof(asn_DEF_MDT_Configuration_ExtIEs_tags_665[0]), /* 1 */ - asn_DEF_MDT_Configuration_ExtIEs_tags_665, /* Same as above */ - sizeof(asn_DEF_MDT_Configuration_ExtIEs_tags_665) - /sizeof(asn_DEF_MDT_Configuration_ExtIEs_tags_665[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_MDT_Configuration_ExtIEs_665, - 3, /* Elements count */ - &asn_SPC_MDT_Configuration_ExtIEs_specs_665 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_extensionValue_672[] = { - { ATF_NOFLAGS, 0, offsetof(struct MeNBResourceCoordinationInformationExtIEs__extensionValue, choice.NRCGI), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_NRCGI, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "NRCGI" - }, - { ATF_NOFLAGS, 0, offsetof(struct MeNBResourceCoordinationInformationExtIEs__extensionValue, choice.MeNBCoordinationAssistanceInformation), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_MeNBCoordinationAssistanceInformation, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "MeNBCoordinationAssistanceInformation" - }, -}; -static const unsigned asn_MAP_extensionValue_to_canonical_672[] = { 1, 0 }; -static const unsigned asn_MAP_extensionValue_from_canonical_672[] = { 1, 0 }; -static const asn_TYPE_tag2member_t asn_MAP_extensionValue_tag2el_672[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 }, /* MeNBCoordinationAssistanceInformation */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* NRCGI */ -}; -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_672 = { - sizeof(struct MeNBResourceCoordinationInformationExtIEs__extensionValue), - offsetof(struct MeNBResourceCoordinationInformationExtIEs__extensionValue, _asn_ctx), - offsetof(struct MeNBResourceCoordinationInformationExtIEs__extensionValue, present), - sizeof(((struct MeNBResourceCoordinationInformationExtIEs__extensionValue *)0)->present), - asn_MAP_extensionValue_tag2el_672, - 2, /* Count of tags in the map */ - asn_MAP_extensionValue_to_canonical_672, - asn_MAP_extensionValue_from_canonical_672, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_672 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_extensionValue_672, - 2, /* Elements count */ - &asn_SPC_extensionValue_specs_672 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_MeNBResourceCoordinationInformationExtIEs_669[] = { - { ATF_NOFLAGS, 0, offsetof(struct MeNBResourceCoordinationInformationExtIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_670, memb_id_constraint_669 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct MeNBResourceCoordinationInformationExtIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_Criticality, - select_MeNBResourceCoordinationInformationExtIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_671, memb_criticality_constraint_669 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct MeNBResourceCoordinationInformationExtIEs, extensionValue), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_extensionValue_672, - select_MeNBResourceCoordinationInformationExtIEs_extensionValue_type, - { 0, &asn_PER_memb_extensionValue_constr_672, memb_extensionValue_constraint_669 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_MeNBResourceCoordinationInformationExtIEs_tags_669[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_MeNBResourceCoordinationInformationExtIEs_tag2el_669[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ -}; -asn_SEQUENCE_specifics_t asn_SPC_MeNBResourceCoordinationInformationExtIEs_specs_669 = { - sizeof(struct MeNBResourceCoordinationInformationExtIEs), - offsetof(struct MeNBResourceCoordinationInformationExtIEs, _asn_ctx), - asn_MAP_MeNBResourceCoordinationInformationExtIEs_tag2el_669, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_MeNBResourceCoordinationInformationExtIEs = { - "MeNBResourceCoordinationInformationExtIEs", - "MeNBResourceCoordinationInformationExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_MeNBResourceCoordinationInformationExtIEs_tags_669, - sizeof(asn_DEF_MeNBResourceCoordinationInformationExtIEs_tags_669) - /sizeof(asn_DEF_MeNBResourceCoordinationInformationExtIEs_tags_669[0]), /* 1 */ - asn_DEF_MeNBResourceCoordinationInformationExtIEs_tags_669, /* Same as above */ - sizeof(asn_DEF_MeNBResourceCoordinationInformationExtIEs_tags_669) - /sizeof(asn_DEF_MeNBResourceCoordinationInformationExtIEs_tags_669[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_MeNBResourceCoordinationInformationExtIEs_669, - 3, /* Elements count */ - &asn_SPC_MeNBResourceCoordinationInformationExtIEs_specs_669 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_676 = { - sizeof(struct MBSFN_Subframe_Info_ExtIEs__extensionValue), - offsetof(struct MBSFN_Subframe_Info_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct MBSFN_Subframe_Info_ExtIEs__extensionValue, present), - sizeof(((struct MBSFN_Subframe_Info_ExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_676 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_676 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_MBSFN_Subframe_Info_ExtIEs_673[] = { - { ATF_NOFLAGS, 0, offsetof(struct MBSFN_Subframe_Info_ExtIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_674, memb_id_constraint_673 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct MBSFN_Subframe_Info_ExtIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_675, memb_criticality_constraint_673 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct MBSFN_Subframe_Info_ExtIEs, extensionValue), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_extensionValue_676, - 0, - { 0, &asn_PER_memb_extensionValue_constr_676, memb_extensionValue_constraint_673 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_MBSFN_Subframe_Info_ExtIEs_tags_673[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_MBSFN_Subframe_Info_ExtIEs_tag2el_673[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ -}; -asn_SEQUENCE_specifics_t asn_SPC_MBSFN_Subframe_Info_ExtIEs_specs_673 = { - sizeof(struct MBSFN_Subframe_Info_ExtIEs), - offsetof(struct MBSFN_Subframe_Info_ExtIEs, _asn_ctx), - asn_MAP_MBSFN_Subframe_Info_ExtIEs_tag2el_673, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_MBSFN_Subframe_Info_ExtIEs = { - "MBSFN-Subframe-Info-ExtIEs", - "MBSFN-Subframe-Info-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_MBSFN_Subframe_Info_ExtIEs_tags_673, - sizeof(asn_DEF_MBSFN_Subframe_Info_ExtIEs_tags_673) - /sizeof(asn_DEF_MBSFN_Subframe_Info_ExtIEs_tags_673[0]), /* 1 */ - asn_DEF_MBSFN_Subframe_Info_ExtIEs_tags_673, /* Same as above */ - sizeof(asn_DEF_MBSFN_Subframe_Info_ExtIEs_tags_673) - /sizeof(asn_DEF_MBSFN_Subframe_Info_ExtIEs_tags_673[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_MBSFN_Subframe_Info_ExtIEs_673, - 3, /* Elements count */ - &asn_SPC_MBSFN_Subframe_Info_ExtIEs_specs_673 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_680 = { - sizeof(struct BandInfo_ExtIEs__extensionValue), - offsetof(struct BandInfo_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct BandInfo_ExtIEs__extensionValue, present), - sizeof(((struct BandInfo_ExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_680 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_680 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_BandInfo_ExtIEs_677[] = { - { ATF_NOFLAGS, 0, offsetof(struct BandInfo_ExtIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_678, memb_id_constraint_677 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct BandInfo_ExtIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_679, memb_criticality_constraint_677 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct BandInfo_ExtIEs, extensionValue), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_extensionValue_680, - 0, - { 0, &asn_PER_memb_extensionValue_constr_680, memb_extensionValue_constraint_677 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_BandInfo_ExtIEs_tags_677[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_BandInfo_ExtIEs_tag2el_677[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ -}; -asn_SEQUENCE_specifics_t asn_SPC_BandInfo_ExtIEs_specs_677 = { - sizeof(struct BandInfo_ExtIEs), - offsetof(struct BandInfo_ExtIEs, _asn_ctx), - asn_MAP_BandInfo_ExtIEs_tag2el_677, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_BandInfo_ExtIEs = { - "BandInfo-ExtIEs", - "BandInfo-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_BandInfo_ExtIEs_tags_677, - sizeof(asn_DEF_BandInfo_ExtIEs_tags_677) - /sizeof(asn_DEF_BandInfo_ExtIEs_tags_677[0]), /* 1 */ - asn_DEF_BandInfo_ExtIEs_tags_677, /* Same as above */ - sizeof(asn_DEF_BandInfo_ExtIEs_tags_677) - /sizeof(asn_DEF_BandInfo_ExtIEs_tags_677[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_BandInfo_ExtIEs_677, - 3, /* Elements count */ - &asn_SPC_BandInfo_ExtIEs_specs_677 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_684 = { - sizeof(struct SplitSRB_ExtIEs__extensionValue), - offsetof(struct SplitSRB_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct SplitSRB_ExtIEs__extensionValue, present), - sizeof(((struct SplitSRB_ExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_684 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_684 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_SplitSRB_ExtIEs_681[] = { - { ATF_NOFLAGS, 0, offsetof(struct SplitSRB_ExtIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_682, memb_id_constraint_681 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct SplitSRB_ExtIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_683, memb_criticality_constraint_681 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SplitSRB_ExtIEs, extensionValue), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_extensionValue_684, - 0, - { 0, &asn_PER_memb_extensionValue_constr_684, memb_extensionValue_constraint_681 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_SplitSRB_ExtIEs_tags_681[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_SplitSRB_ExtIEs_tag2el_681[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ -}; -asn_SEQUENCE_specifics_t asn_SPC_SplitSRB_ExtIEs_specs_681 = { - sizeof(struct SplitSRB_ExtIEs), - offsetof(struct SplitSRB_ExtIEs, _asn_ctx), - asn_MAP_SplitSRB_ExtIEs_tag2el_681, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_SplitSRB_ExtIEs = { - "SplitSRB-ExtIEs", - "SplitSRB-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_SplitSRB_ExtIEs_tags_681, - sizeof(asn_DEF_SplitSRB_ExtIEs_tags_681) - /sizeof(asn_DEF_SplitSRB_ExtIEs_tags_681[0]), /* 1 */ - asn_DEF_SplitSRB_ExtIEs_tags_681, /* Same as above */ - sizeof(asn_DEF_SplitSRB_ExtIEs_tags_681) - /sizeof(asn_DEF_SplitSRB_ExtIEs_tags_681[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_SplitSRB_ExtIEs_681, - 3, /* Elements count */ - &asn_SPC_SplitSRB_ExtIEs_specs_681 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_688 = { - sizeof(struct UENRMeasurement_ExtIEs__extensionValue), - offsetof(struct UENRMeasurement_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct UENRMeasurement_ExtIEs__extensionValue, present), - sizeof(((struct UENRMeasurement_ExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_688 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_688 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_UENRMeasurement_ExtIEs_685[] = { - { ATF_NOFLAGS, 0, offsetof(struct UENRMeasurement_ExtIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_686, memb_id_constraint_685 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct UENRMeasurement_ExtIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_687, memb_criticality_constraint_685 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct UENRMeasurement_ExtIEs, extensionValue), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_extensionValue_688, - 0, - { 0, &asn_PER_memb_extensionValue_constr_688, memb_extensionValue_constraint_685 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_UENRMeasurement_ExtIEs_tags_685[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_UENRMeasurement_ExtIEs_tag2el_685[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ -}; -asn_SEQUENCE_specifics_t asn_SPC_UENRMeasurement_ExtIEs_specs_685 = { - sizeof(struct UENRMeasurement_ExtIEs), - offsetof(struct UENRMeasurement_ExtIEs, _asn_ctx), - asn_MAP_UENRMeasurement_ExtIEs_tag2el_685, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_UENRMeasurement_ExtIEs = { - "UENRMeasurement-ExtIEs", - "UENRMeasurement-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_UENRMeasurement_ExtIEs_tags_685, - sizeof(asn_DEF_UENRMeasurement_ExtIEs_tags_685) - /sizeof(asn_DEF_UENRMeasurement_ExtIEs_tags_685[0]), /* 1 */ - asn_DEF_UENRMeasurement_ExtIEs_tags_685, /* Same as above */ - sizeof(asn_DEF_UENRMeasurement_ExtIEs_tags_685) - /sizeof(asn_DEF_UENRMeasurement_ExtIEs_tags_685[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_UENRMeasurement_ExtIEs_685, - 3, /* Elements count */ - &asn_SPC_UENRMeasurement_ExtIEs_specs_685 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_extensionValue_692[] = { - { ATF_NOFLAGS, 0, offsetof(struct Neighbour_Information_ExtIEs__extensionValue, choice.TAC), - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), - 0, - &asn_DEF_TAC, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "TAC" - }, - { ATF_NOFLAGS, 0, offsetof(struct Neighbour_Information_ExtIEs__extensionValue, choice.EARFCNExtension), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_EARFCNExtension, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "EARFCNExtension" - }, -}; -static const unsigned asn_MAP_extensionValue_to_canonical_692[] = { 1, 0 }; -static const unsigned asn_MAP_extensionValue_from_canonical_692[] = { 1, 0 }; -static const asn_TYPE_tag2member_t asn_MAP_extensionValue_tag2el_692[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* EARFCNExtension */ - { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 0, 0, 0 } /* TAC */ -}; -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_692 = { - sizeof(struct Neighbour_Information_ExtIEs__extensionValue), - offsetof(struct Neighbour_Information_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct Neighbour_Information_ExtIEs__extensionValue, present), - sizeof(((struct Neighbour_Information_ExtIEs__extensionValue *)0)->present), - asn_MAP_extensionValue_tag2el_692, - 2, /* Count of tags in the map */ - asn_MAP_extensionValue_to_canonical_692, - asn_MAP_extensionValue_from_canonical_692, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_692 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_extensionValue_692, - 2, /* Elements count */ - &asn_SPC_extensionValue_specs_692 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_Neighbour_Information_ExtIEs_689[] = { - { ATF_NOFLAGS, 0, offsetof(struct Neighbour_Information_ExtIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_690, memb_id_constraint_689 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct Neighbour_Information_ExtIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_Criticality, - select_Neighbour_Information_ExtIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_691, memb_criticality_constraint_689 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Neighbour_Information_ExtIEs, extensionValue), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_extensionValue_692, - select_Neighbour_Information_ExtIEs_extensionValue_type, - { 0, &asn_PER_memb_extensionValue_constr_692, memb_extensionValue_constraint_689 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_Neighbour_Information_ExtIEs_tags_689[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_Neighbour_Information_ExtIEs_tag2el_689[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ -}; -asn_SEQUENCE_specifics_t asn_SPC_Neighbour_Information_ExtIEs_specs_689 = { - sizeof(struct Neighbour_Information_ExtIEs), - offsetof(struct Neighbour_Information_ExtIEs, _asn_ctx), - asn_MAP_Neighbour_Information_ExtIEs_tag2el_689, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_Neighbour_Information_ExtIEs = { - "Neighbour-Information-ExtIEs", - "Neighbour-Information-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_Neighbour_Information_ExtIEs_tags_689, - sizeof(asn_DEF_Neighbour_Information_ExtIEs_tags_689) - /sizeof(asn_DEF_Neighbour_Information_ExtIEs_tags_689[0]), /* 1 */ - asn_DEF_Neighbour_Information_ExtIEs_tags_689, /* Same as above */ - sizeof(asn_DEF_Neighbour_Information_ExtIEs_tags_689) - /sizeof(asn_DEF_Neighbour_Information_ExtIEs_tags_689[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_Neighbour_Information_ExtIEs_689, - 3, /* Elements count */ - &asn_SPC_Neighbour_Information_ExtIEs_specs_689 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_696 = { - sizeof(struct NRFreqInfo_ExtIEs__extensionValue), - offsetof(struct NRFreqInfo_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct NRFreqInfo_ExtIEs__extensionValue, present), - sizeof(((struct NRFreqInfo_ExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_696 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_696 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_NRFreqInfo_ExtIEs_693[] = { - { ATF_NOFLAGS, 0, offsetof(struct NRFreqInfo_ExtIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_694, memb_id_constraint_693 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct NRFreqInfo_ExtIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_695, memb_criticality_constraint_693 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct NRFreqInfo_ExtIEs, extensionValue), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_extensionValue_696, - 0, - { 0, &asn_PER_memb_extensionValue_constr_696, memb_extensionValue_constraint_693 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_NRFreqInfo_ExtIEs_tags_693[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_NRFreqInfo_ExtIEs_tag2el_693[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ -}; -asn_SEQUENCE_specifics_t asn_SPC_NRFreqInfo_ExtIEs_specs_693 = { - sizeof(struct NRFreqInfo_ExtIEs), - offsetof(struct NRFreqInfo_ExtIEs, _asn_ctx), - asn_MAP_NRFreqInfo_ExtIEs_tag2el_693, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_NRFreqInfo_ExtIEs = { - "NRFreqInfo-ExtIEs", - "NRFreqInfo-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_NRFreqInfo_ExtIEs_tags_693, - sizeof(asn_DEF_NRFreqInfo_ExtIEs_tags_693) - /sizeof(asn_DEF_NRFreqInfo_ExtIEs_tags_693[0]), /* 1 */ - asn_DEF_NRFreqInfo_ExtIEs_tags_693, /* Same as above */ - sizeof(asn_DEF_NRFreqInfo_ExtIEs_tags_693) - /sizeof(asn_DEF_NRFreqInfo_ExtIEs_tags_693[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_NRFreqInfo_ExtIEs_693, - 3, /* Elements count */ - &asn_SPC_NRFreqInfo_ExtIEs_specs_693 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_700 = { - sizeof(struct NRCGI_ExtIEs__extensionValue), - offsetof(struct NRCGI_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct NRCGI_ExtIEs__extensionValue, present), - sizeof(((struct NRCGI_ExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_700 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_700 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_NRCGI_ExtIEs_697[] = { - { ATF_NOFLAGS, 0, offsetof(struct NRCGI_ExtIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_698, memb_id_constraint_697 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct NRCGI_ExtIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_699, memb_criticality_constraint_697 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct NRCGI_ExtIEs, extensionValue), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_extensionValue_700, - 0, - { 0, &asn_PER_memb_extensionValue_constr_700, memb_extensionValue_constraint_697 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_NRCGI_ExtIEs_tags_697[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_NRCGI_ExtIEs_tag2el_697[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ -}; -asn_SEQUENCE_specifics_t asn_SPC_NRCGI_ExtIEs_specs_697 = { - sizeof(struct NRCGI_ExtIEs), - offsetof(struct NRCGI_ExtIEs, _asn_ctx), - asn_MAP_NRCGI_ExtIEs_tag2el_697, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_NRCGI_ExtIEs = { - "NRCGI-ExtIEs", - "NRCGI-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_NRCGI_ExtIEs_tags_697, - sizeof(asn_DEF_NRCGI_ExtIEs_tags_697) - /sizeof(asn_DEF_NRCGI_ExtIEs_tags_697[0]), /* 1 */ - asn_DEF_NRCGI_ExtIEs_tags_697, /* Same as above */ - sizeof(asn_DEF_NRCGI_ExtIEs_tags_697) - /sizeof(asn_DEF_NRCGI_ExtIEs_tags_697[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_NRCGI_ExtIEs_697, - 3, /* Elements count */ - &asn_SPC_NRCGI_ExtIEs_specs_697 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_704 = { - sizeof(struct NR_TxBW_ExtIEs__extensionValue), - offsetof(struct NR_TxBW_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct NR_TxBW_ExtIEs__extensionValue, present), - sizeof(((struct NR_TxBW_ExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_704 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_704 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_NR_TxBW_ExtIEs_701[] = { - { ATF_NOFLAGS, 0, offsetof(struct NR_TxBW_ExtIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_702, memb_id_constraint_701 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct NR_TxBW_ExtIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_703, memb_criticality_constraint_701 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct NR_TxBW_ExtIEs, extensionValue), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_extensionValue_704, - 0, - { 0, &asn_PER_memb_extensionValue_constr_704, memb_extensionValue_constraint_701 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_NR_TxBW_ExtIEs_tags_701[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_NR_TxBW_ExtIEs_tag2el_701[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ -}; -asn_SEQUENCE_specifics_t asn_SPC_NR_TxBW_ExtIEs_specs_701 = { - sizeof(struct NR_TxBW_ExtIEs), - offsetof(struct NR_TxBW_ExtIEs, _asn_ctx), - asn_MAP_NR_TxBW_ExtIEs_tag2el_701, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_NR_TxBW_ExtIEs = { - "NR-TxBW-ExtIEs", - "NR-TxBW-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_NR_TxBW_ExtIEs_tags_701, - sizeof(asn_DEF_NR_TxBW_ExtIEs_tags_701) - /sizeof(asn_DEF_NR_TxBW_ExtIEs_tags_701[0]), /* 1 */ - asn_DEF_NR_TxBW_ExtIEs_tags_701, /* Same as above */ - sizeof(asn_DEF_NR_TxBW_ExtIEs_tags_701) - /sizeof(asn_DEF_NR_TxBW_ExtIEs_tags_701[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_NR_TxBW_ExtIEs_701, - 3, /* Elements count */ - &asn_SPC_NR_TxBW_ExtIEs_specs_701 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_708 = { - sizeof(struct NRUESecurityCapabilities_ExtIEs__extensionValue), - offsetof(struct NRUESecurityCapabilities_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct NRUESecurityCapabilities_ExtIEs__extensionValue, present), - sizeof(((struct NRUESecurityCapabilities_ExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_708 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_708 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_NRUESecurityCapabilities_ExtIEs_705[] = { - { ATF_NOFLAGS, 0, offsetof(struct NRUESecurityCapabilities_ExtIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_706, memb_id_constraint_705 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct NRUESecurityCapabilities_ExtIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_707, memb_criticality_constraint_705 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct NRUESecurityCapabilities_ExtIEs, extensionValue), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_extensionValue_708, - 0, - { 0, &asn_PER_memb_extensionValue_constr_708, memb_extensionValue_constraint_705 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_NRUESecurityCapabilities_ExtIEs_tags_705[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_NRUESecurityCapabilities_ExtIEs_tag2el_705[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ -}; -asn_SEQUENCE_specifics_t asn_SPC_NRUESecurityCapabilities_ExtIEs_specs_705 = { - sizeof(struct NRUESecurityCapabilities_ExtIEs), - offsetof(struct NRUESecurityCapabilities_ExtIEs, _asn_ctx), - asn_MAP_NRUESecurityCapabilities_ExtIEs_tag2el_705, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_NRUESecurityCapabilities_ExtIEs = { - "NRUESecurityCapabilities-ExtIEs", - "NRUESecurityCapabilities-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_NRUESecurityCapabilities_ExtIEs_tags_705, - sizeof(asn_DEF_NRUESecurityCapabilities_ExtIEs_tags_705) - /sizeof(asn_DEF_NRUESecurityCapabilities_ExtIEs_tags_705[0]), /* 1 */ - asn_DEF_NRUESecurityCapabilities_ExtIEs_tags_705, /* Same as above */ - sizeof(asn_DEF_NRUESecurityCapabilities_ExtIEs_tags_705) - /sizeof(asn_DEF_NRUESecurityCapabilities_ExtIEs_tags_705[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_NRUESecurityCapabilities_ExtIEs_705, - 3, /* Elements count */ - &asn_SPC_NRUESecurityCapabilities_ExtIEs_specs_705 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_712 = { - sizeof(struct PRACH_Configuration_ExtIEs__extensionValue), - offsetof(struct PRACH_Configuration_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct PRACH_Configuration_ExtIEs__extensionValue, present), - sizeof(((struct PRACH_Configuration_ExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_712 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_712 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_PRACH_Configuration_ExtIEs_709[] = { - { ATF_NOFLAGS, 0, offsetof(struct PRACH_Configuration_ExtIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_710, memb_id_constraint_709 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct PRACH_Configuration_ExtIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_711, memb_criticality_constraint_709 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct PRACH_Configuration_ExtIEs, extensionValue), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_extensionValue_712, - 0, - { 0, &asn_PER_memb_extensionValue_constr_712, memb_extensionValue_constraint_709 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_PRACH_Configuration_ExtIEs_tags_709[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_PRACH_Configuration_ExtIEs_tag2el_709[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ -}; -asn_SEQUENCE_specifics_t asn_SPC_PRACH_Configuration_ExtIEs_specs_709 = { - sizeof(struct PRACH_Configuration_ExtIEs), - offsetof(struct PRACH_Configuration_ExtIEs, _asn_ctx), - asn_MAP_PRACH_Configuration_ExtIEs_tag2el_709, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_PRACH_Configuration_ExtIEs = { - "PRACH-Configuration-ExtIEs", - "PRACH-Configuration-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_PRACH_Configuration_ExtIEs_tags_709, - sizeof(asn_DEF_PRACH_Configuration_ExtIEs_tags_709) - /sizeof(asn_DEF_PRACH_Configuration_ExtIEs_tags_709[0]), /* 1 */ - asn_DEF_PRACH_Configuration_ExtIEs_tags_709, /* Same as above */ - sizeof(asn_DEF_PRACH_Configuration_ExtIEs_tags_709) - /sizeof(asn_DEF_PRACH_Configuration_ExtIEs_tags_709[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_PRACH_Configuration_ExtIEs_709, - 3, /* Elements count */ - &asn_SPC_PRACH_Configuration_ExtIEs_specs_709 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_716 = { - sizeof(struct PLMNAreaBasedQMC_ExtIEs__extensionValue), - offsetof(struct PLMNAreaBasedQMC_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct PLMNAreaBasedQMC_ExtIEs__extensionValue, present), - sizeof(((struct PLMNAreaBasedQMC_ExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_716 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_716 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_PLMNAreaBasedQMC_ExtIEs_713[] = { - { ATF_NOFLAGS, 0, offsetof(struct PLMNAreaBasedQMC_ExtIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_714, memb_id_constraint_713 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct PLMNAreaBasedQMC_ExtIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_715, memb_criticality_constraint_713 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct PLMNAreaBasedQMC_ExtIEs, extensionValue), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_extensionValue_716, - 0, - { 0, &asn_PER_memb_extensionValue_constr_716, memb_extensionValue_constraint_713 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_PLMNAreaBasedQMC_ExtIEs_tags_713[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_PLMNAreaBasedQMC_ExtIEs_tag2el_713[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ -}; -asn_SEQUENCE_specifics_t asn_SPC_PLMNAreaBasedQMC_ExtIEs_specs_713 = { - sizeof(struct PLMNAreaBasedQMC_ExtIEs), - offsetof(struct PLMNAreaBasedQMC_ExtIEs, _asn_ctx), - asn_MAP_PLMNAreaBasedQMC_ExtIEs_tag2el_713, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_PLMNAreaBasedQMC_ExtIEs = { - "PLMNAreaBasedQMC-ExtIEs", - "PLMNAreaBasedQMC-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_PLMNAreaBasedQMC_ExtIEs_tags_713, - sizeof(asn_DEF_PLMNAreaBasedQMC_ExtIEs_tags_713) - /sizeof(asn_DEF_PLMNAreaBasedQMC_ExtIEs_tags_713[0]), /* 1 */ - asn_DEF_PLMNAreaBasedQMC_ExtIEs_tags_713, /* Same as above */ - sizeof(asn_DEF_PLMNAreaBasedQMC_ExtIEs_tags_713) - /sizeof(asn_DEF_PLMNAreaBasedQMC_ExtIEs_tags_713[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_PLMNAreaBasedQMC_ExtIEs_713, - 3, /* Elements count */ - &asn_SPC_PLMNAreaBasedQMC_ExtIEs_specs_713 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_extensionValue_720[] = { - { ATF_NOFLAGS, 0, offsetof(struct ProSeAuthorized_ExtIEs__extensionValue, choice.ProSeUEtoNetworkRelaying), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_ProSeUEtoNetworkRelaying, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ProSeUEtoNetworkRelaying" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_extensionValue_tag2el_720[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 0, 0, 0 } /* ProSeUEtoNetworkRelaying */ -}; -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_720 = { - sizeof(struct ProSeAuthorized_ExtIEs__extensionValue), - offsetof(struct ProSeAuthorized_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct ProSeAuthorized_ExtIEs__extensionValue, present), - sizeof(((struct ProSeAuthorized_ExtIEs__extensionValue *)0)->present), - asn_MAP_extensionValue_tag2el_720, - 1, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_720 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_extensionValue_720, - 1, /* Elements count */ - &asn_SPC_extensionValue_specs_720 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProSeAuthorized_ExtIEs_717[] = { - { ATF_NOFLAGS, 0, offsetof(struct ProSeAuthorized_ExtIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_718, memb_id_constraint_717 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct ProSeAuthorized_ExtIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_Criticality, - select_ProSeAuthorized_ExtIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_719, memb_criticality_constraint_717 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ProSeAuthorized_ExtIEs, extensionValue), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_extensionValue_720, - select_ProSeAuthorized_ExtIEs_extensionValue_type, - { 0, &asn_PER_memb_extensionValue_constr_720, memb_extensionValue_constraint_717 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProSeAuthorized_ExtIEs_tags_717[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ProSeAuthorized_ExtIEs_tag2el_717[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ProSeAuthorized_ExtIEs_specs_717 = { - sizeof(struct ProSeAuthorized_ExtIEs), - offsetof(struct ProSeAuthorized_ExtIEs, _asn_ctx), - asn_MAP_ProSeAuthorized_ExtIEs_tag2el_717, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ProSeAuthorized_ExtIEs = { - "ProSeAuthorized-ExtIEs", - "ProSeAuthorized-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_ProSeAuthorized_ExtIEs_tags_717, - sizeof(asn_DEF_ProSeAuthorized_ExtIEs_tags_717) - /sizeof(asn_DEF_ProSeAuthorized_ExtIEs_tags_717[0]), /* 1 */ - asn_DEF_ProSeAuthorized_ExtIEs_tags_717, /* Same as above */ - sizeof(asn_DEF_ProSeAuthorized_ExtIEs_tags_717) - /sizeof(asn_DEF_ProSeAuthorized_ExtIEs_tags_717[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ProSeAuthorized_ExtIEs_717, - 3, /* Elements count */ - &asn_SPC_ProSeAuthorized_ExtIEs_specs_717 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_724 = { - sizeof(struct ProtectedEUTRAResourceIndication_ExtIEs__extensionValue), - offsetof(struct ProtectedEUTRAResourceIndication_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct ProtectedEUTRAResourceIndication_ExtIEs__extensionValue, present), - sizeof(((struct ProtectedEUTRAResourceIndication_ExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_724 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_724 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtectedEUTRAResourceIndication_ExtIEs_721[] = { - { ATF_NOFLAGS, 0, offsetof(struct ProtectedEUTRAResourceIndication_ExtIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_722, memb_id_constraint_721 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct ProtectedEUTRAResourceIndication_ExtIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_723, memb_criticality_constraint_721 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ProtectedEUTRAResourceIndication_ExtIEs, extensionValue), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_extensionValue_724, - 0, - { 0, &asn_PER_memb_extensionValue_constr_724, memb_extensionValue_constraint_721 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtectedEUTRAResourceIndication_ExtIEs_tags_721[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ProtectedEUTRAResourceIndication_ExtIEs_tag2el_721[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ProtectedEUTRAResourceIndication_ExtIEs_specs_721 = { - sizeof(struct ProtectedEUTRAResourceIndication_ExtIEs), - offsetof(struct ProtectedEUTRAResourceIndication_ExtIEs, _asn_ctx), - asn_MAP_ProtectedEUTRAResourceIndication_ExtIEs_tag2el_721, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtectedEUTRAResourceIndication_ExtIEs = { - "ProtectedEUTRAResourceIndication-ExtIEs", - "ProtectedEUTRAResourceIndication-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_ProtectedEUTRAResourceIndication_ExtIEs_tags_721, - sizeof(asn_DEF_ProtectedEUTRAResourceIndication_ExtIEs_tags_721) - /sizeof(asn_DEF_ProtectedEUTRAResourceIndication_ExtIEs_tags_721[0]), /* 1 */ - asn_DEF_ProtectedEUTRAResourceIndication_ExtIEs_tags_721, /* Same as above */ - sizeof(asn_DEF_ProtectedEUTRAResourceIndication_ExtIEs_tags_721) - /sizeof(asn_DEF_ProtectedEUTRAResourceIndication_ExtIEs_tags_721[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ProtectedEUTRAResourceIndication_ExtIEs_721, - 3, /* Elements count */ - &asn_SPC_ProtectedEUTRAResourceIndication_ExtIEs_specs_721 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_728 = { - sizeof(struct ProtectedFootprintTimePattern_ExtIEs__extensionValue), - offsetof(struct ProtectedFootprintTimePattern_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct ProtectedFootprintTimePattern_ExtIEs__extensionValue, present), - sizeof(((struct ProtectedFootprintTimePattern_ExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_728 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_728 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtectedFootprintTimePattern_ExtIEs_725[] = { - { ATF_NOFLAGS, 0, offsetof(struct ProtectedFootprintTimePattern_ExtIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_726, memb_id_constraint_725 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct ProtectedFootprintTimePattern_ExtIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_727, memb_criticality_constraint_725 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ProtectedFootprintTimePattern_ExtIEs, extensionValue), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_extensionValue_728, - 0, - { 0, &asn_PER_memb_extensionValue_constr_728, memb_extensionValue_constraint_725 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtectedFootprintTimePattern_ExtIEs_tags_725[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ProtectedFootprintTimePattern_ExtIEs_tag2el_725[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ProtectedFootprintTimePattern_ExtIEs_specs_725 = { - sizeof(struct ProtectedFootprintTimePattern_ExtIEs), - offsetof(struct ProtectedFootprintTimePattern_ExtIEs, _asn_ctx), - asn_MAP_ProtectedFootprintTimePattern_ExtIEs_tag2el_725, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtectedFootprintTimePattern_ExtIEs = { - "ProtectedFootprintTimePattern-ExtIEs", - "ProtectedFootprintTimePattern-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_ProtectedFootprintTimePattern_ExtIEs_tags_725, - sizeof(asn_DEF_ProtectedFootprintTimePattern_ExtIEs_tags_725) - /sizeof(asn_DEF_ProtectedFootprintTimePattern_ExtIEs_tags_725[0]), /* 1 */ - asn_DEF_ProtectedFootprintTimePattern_ExtIEs_tags_725, /* Same as above */ - sizeof(asn_DEF_ProtectedFootprintTimePattern_ExtIEs_tags_725) - /sizeof(asn_DEF_ProtectedFootprintTimePattern_ExtIEs_tags_725[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ProtectedFootprintTimePattern_ExtIEs_725, - 3, /* Elements count */ - &asn_SPC_ProtectedFootprintTimePattern_ExtIEs_specs_725 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_732 = { - sizeof(struct ProtectedResourceList_Item_ExtIEs__extensionValue), - offsetof(struct ProtectedResourceList_Item_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct ProtectedResourceList_Item_ExtIEs__extensionValue, present), - sizeof(((struct ProtectedResourceList_Item_ExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_732 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_732 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtectedResourceList_Item_ExtIEs_729[] = { - { ATF_NOFLAGS, 0, offsetof(struct ProtectedResourceList_Item_ExtIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_730, memb_id_constraint_729 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct ProtectedResourceList_Item_ExtIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_731, memb_criticality_constraint_729 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ProtectedResourceList_Item_ExtIEs, extensionValue), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_extensionValue_732, - 0, - { 0, &asn_PER_memb_extensionValue_constr_732, memb_extensionValue_constraint_729 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtectedResourceList_Item_ExtIEs_tags_729[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ProtectedResourceList_Item_ExtIEs_tag2el_729[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ProtectedResourceList_Item_ExtIEs_specs_729 = { - sizeof(struct ProtectedResourceList_Item_ExtIEs), - offsetof(struct ProtectedResourceList_Item_ExtIEs, _asn_ctx), - asn_MAP_ProtectedResourceList_Item_ExtIEs_tag2el_729, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtectedResourceList_Item_ExtIEs = { - "ProtectedResourceList-Item-ExtIEs", - "ProtectedResourceList-Item-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_ProtectedResourceList_Item_ExtIEs_tags_729, - sizeof(asn_DEF_ProtectedResourceList_Item_ExtIEs_tags_729) - /sizeof(asn_DEF_ProtectedResourceList_Item_ExtIEs_tags_729[0]), /* 1 */ - asn_DEF_ProtectedResourceList_Item_ExtIEs_tags_729, /* Same as above */ - sizeof(asn_DEF_ProtectedResourceList_Item_ExtIEs_tags_729) - /sizeof(asn_DEF_ProtectedResourceList_Item_ExtIEs_tags_729[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ProtectedResourceList_Item_ExtIEs_729, - 3, /* Elements count */ - &asn_SPC_ProtectedResourceList_Item_ExtIEs_specs_729 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_extensionValue_736[] = { - { ATF_NOFLAGS, 0, offsetof(struct RadioResourceStatus_ExtIEs__extensionValue, choice.DL_scheduling_PDCCH_CCE_usage), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_DL_scheduling_PDCCH_CCE_usage, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "DL-scheduling-PDCCH-CCE-usage" - }, - { ATF_NOFLAGS, 0, offsetof(struct RadioResourceStatus_ExtIEs__extensionValue, choice.UL_scheduling_PDCCH_CCE_usage), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_UL_scheduling_PDCCH_CCE_usage, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "UL-scheduling-PDCCH-CCE-usage" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_extensionValue_tag2el_736[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 1 }, /* DL-scheduling-PDCCH-CCE-usage */ - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 0 } /* UL-scheduling-PDCCH-CCE-usage */ -}; -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_736 = { - sizeof(struct RadioResourceStatus_ExtIEs__extensionValue), - offsetof(struct RadioResourceStatus_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct RadioResourceStatus_ExtIEs__extensionValue, present), - sizeof(((struct RadioResourceStatus_ExtIEs__extensionValue *)0)->present), - asn_MAP_extensionValue_tag2el_736, - 2, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_736 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_extensionValue_736, - 2, /* Elements count */ - &asn_SPC_extensionValue_specs_736 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_RadioResourceStatus_ExtIEs_733[] = { - { ATF_NOFLAGS, 0, offsetof(struct RadioResourceStatus_ExtIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_734, memb_id_constraint_733 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct RadioResourceStatus_ExtIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_Criticality, - select_RadioResourceStatus_ExtIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_735, memb_criticality_constraint_733 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RadioResourceStatus_ExtIEs, extensionValue), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_extensionValue_736, - select_RadioResourceStatus_ExtIEs_extensionValue_type, - { 0, &asn_PER_memb_extensionValue_constr_736, memb_extensionValue_constraint_733 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_RadioResourceStatus_ExtIEs_tags_733[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RadioResourceStatus_ExtIEs_tag2el_733[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RadioResourceStatus_ExtIEs_specs_733 = { - sizeof(struct RadioResourceStatus_ExtIEs), - offsetof(struct RadioResourceStatus_ExtIEs, _asn_ctx), - asn_MAP_RadioResourceStatus_ExtIEs_tag2el_733, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RadioResourceStatus_ExtIEs = { - "RadioResourceStatus-ExtIEs", - "RadioResourceStatus-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_RadioResourceStatus_ExtIEs_tags_733, - sizeof(asn_DEF_RadioResourceStatus_ExtIEs_tags_733) - /sizeof(asn_DEF_RadioResourceStatus_ExtIEs_tags_733[0]), /* 1 */ - asn_DEF_RadioResourceStatus_ExtIEs_tags_733, /* Same as above */ - sizeof(asn_DEF_RadioResourceStatus_ExtIEs_tags_733) - /sizeof(asn_DEF_RadioResourceStatus_ExtIEs_tags_733[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RadioResourceStatus_ExtIEs_733, - 3, /* Elements count */ - &asn_SPC_RadioResourceStatus_ExtIEs_specs_733 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_extensionValue_740[] = { - { ATF_NOFLAGS, 0, offsetof(struct RelativeNarrowbandTxPower_ExtIEs__extensionValue, choice.EnhancedRNTP), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_EnhancedRNTP, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "EnhancedRNTP" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_extensionValue_tag2el_740[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* EnhancedRNTP */ -}; -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_740 = { - sizeof(struct RelativeNarrowbandTxPower_ExtIEs__extensionValue), - offsetof(struct RelativeNarrowbandTxPower_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct RelativeNarrowbandTxPower_ExtIEs__extensionValue, present), - sizeof(((struct RelativeNarrowbandTxPower_ExtIEs__extensionValue *)0)->present), - asn_MAP_extensionValue_tag2el_740, - 1, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_740 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_extensionValue_740, - 1, /* Elements count */ - &asn_SPC_extensionValue_specs_740 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_RelativeNarrowbandTxPower_ExtIEs_737[] = { - { ATF_NOFLAGS, 0, offsetof(struct RelativeNarrowbandTxPower_ExtIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_738, memb_id_constraint_737 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct RelativeNarrowbandTxPower_ExtIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_Criticality, - select_RelativeNarrowbandTxPower_ExtIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_739, memb_criticality_constraint_737 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RelativeNarrowbandTxPower_ExtIEs, extensionValue), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_extensionValue_740, - select_RelativeNarrowbandTxPower_ExtIEs_extensionValue_type, - { 0, &asn_PER_memb_extensionValue_constr_740, memb_extensionValue_constraint_737 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_RelativeNarrowbandTxPower_ExtIEs_tags_737[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RelativeNarrowbandTxPower_ExtIEs_tag2el_737[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RelativeNarrowbandTxPower_ExtIEs_specs_737 = { - sizeof(struct RelativeNarrowbandTxPower_ExtIEs), - offsetof(struct RelativeNarrowbandTxPower_ExtIEs, _asn_ctx), - asn_MAP_RelativeNarrowbandTxPower_ExtIEs_tag2el_737, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RelativeNarrowbandTxPower_ExtIEs = { - "RelativeNarrowbandTxPower-ExtIEs", - "RelativeNarrowbandTxPower-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_RelativeNarrowbandTxPower_ExtIEs_tags_737, - sizeof(asn_DEF_RelativeNarrowbandTxPower_ExtIEs_tags_737) - /sizeof(asn_DEF_RelativeNarrowbandTxPower_ExtIEs_tags_737[0]), /* 1 */ - asn_DEF_RelativeNarrowbandTxPower_ExtIEs_tags_737, /* Same as above */ - sizeof(asn_DEF_RelativeNarrowbandTxPower_ExtIEs_tags_737) - /sizeof(asn_DEF_RelativeNarrowbandTxPower_ExtIEs_tags_737[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RelativeNarrowbandTxPower_ExtIEs_737, - 3, /* Elements count */ - &asn_SPC_RelativeNarrowbandTxPower_ExtIEs_specs_737 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_744 = { - sizeof(struct ReservedSubframePattern_ExtIEs__extensionValue), - offsetof(struct ReservedSubframePattern_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct ReservedSubframePattern_ExtIEs__extensionValue, present), - sizeof(((struct ReservedSubframePattern_ExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_744 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_744 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ReservedSubframePattern_ExtIEs_741[] = { - { ATF_NOFLAGS, 0, offsetof(struct ReservedSubframePattern_ExtIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_742, memb_id_constraint_741 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct ReservedSubframePattern_ExtIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_743, memb_criticality_constraint_741 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ReservedSubframePattern_ExtIEs, extensionValue), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_extensionValue_744, - 0, - { 0, &asn_PER_memb_extensionValue_constr_744, memb_extensionValue_constraint_741 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_ReservedSubframePattern_ExtIEs_tags_741[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ReservedSubframePattern_ExtIEs_tag2el_741[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ReservedSubframePattern_ExtIEs_specs_741 = { - sizeof(struct ReservedSubframePattern_ExtIEs), - offsetof(struct ReservedSubframePattern_ExtIEs, _asn_ctx), - asn_MAP_ReservedSubframePattern_ExtIEs_tag2el_741, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ReservedSubframePattern_ExtIEs = { - "ReservedSubframePattern-ExtIEs", - "ReservedSubframePattern-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_ReservedSubframePattern_ExtIEs_tags_741, - sizeof(asn_DEF_ReservedSubframePattern_ExtIEs_tags_741) - /sizeof(asn_DEF_ReservedSubframePattern_ExtIEs_tags_741[0]), /* 1 */ - asn_DEF_ReservedSubframePattern_ExtIEs_tags_741, /* Same as above */ - sizeof(asn_DEF_ReservedSubframePattern_ExtIEs_tags_741) - /sizeof(asn_DEF_ReservedSubframePattern_ExtIEs_tags_741[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ReservedSubframePattern_ExtIEs_741, - 3, /* Elements count */ - &asn_SPC_ReservedSubframePattern_ExtIEs_specs_741 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_748 = { - sizeof(struct RLC_Status_ExtIEs__extensionValue), - offsetof(struct RLC_Status_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct RLC_Status_ExtIEs__extensionValue, present), - sizeof(((struct RLC_Status_ExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_748 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_748 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_RLC_Status_ExtIEs_745[] = { - { ATF_NOFLAGS, 0, offsetof(struct RLC_Status_ExtIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_746, memb_id_constraint_745 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct RLC_Status_ExtIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_747, memb_criticality_constraint_745 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RLC_Status_ExtIEs, extensionValue), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_extensionValue_748, - 0, - { 0, &asn_PER_memb_extensionValue_constr_748, memb_extensionValue_constraint_745 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_RLC_Status_ExtIEs_tags_745[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RLC_Status_ExtIEs_tag2el_745[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RLC_Status_ExtIEs_specs_745 = { - sizeof(struct RLC_Status_ExtIEs), - offsetof(struct RLC_Status_ExtIEs, _asn_ctx), - asn_MAP_RLC_Status_ExtIEs_tag2el_745, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RLC_Status_ExtIEs = { - "RLC-Status-ExtIEs", - "RLC-Status-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_RLC_Status_ExtIEs_tags_745, - sizeof(asn_DEF_RLC_Status_ExtIEs_tags_745) - /sizeof(asn_DEF_RLC_Status_ExtIEs_tags_745[0]), /* 1 */ - asn_DEF_RLC_Status_ExtIEs_tags_745, /* Same as above */ - sizeof(asn_DEF_RLC_Status_ExtIEs_tags_745) - /sizeof(asn_DEF_RLC_Status_ExtIEs_tags_745[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RLC_Status_ExtIEs_745, - 3, /* Elements count */ - &asn_SPC_RLC_Status_ExtIEs_specs_745 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_752 = { - sizeof(struct RSRPMeasurementResult_ExtIEs__extensionValue), - offsetof(struct RSRPMeasurementResult_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct RSRPMeasurementResult_ExtIEs__extensionValue, present), - sizeof(((struct RSRPMeasurementResult_ExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_752 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_752 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_RSRPMeasurementResult_ExtIEs_749[] = { - { ATF_NOFLAGS, 0, offsetof(struct RSRPMeasurementResult_ExtIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_750, memb_id_constraint_749 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct RSRPMeasurementResult_ExtIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_751, memb_criticality_constraint_749 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RSRPMeasurementResult_ExtIEs, extensionValue), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_extensionValue_752, - 0, - { 0, &asn_PER_memb_extensionValue_constr_752, memb_extensionValue_constraint_749 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_RSRPMeasurementResult_ExtIEs_tags_749[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RSRPMeasurementResult_ExtIEs_tag2el_749[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RSRPMeasurementResult_ExtIEs_specs_749 = { - sizeof(struct RSRPMeasurementResult_ExtIEs), - offsetof(struct RSRPMeasurementResult_ExtIEs, _asn_ctx), - asn_MAP_RSRPMeasurementResult_ExtIEs_tag2el_749, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RSRPMeasurementResult_ExtIEs = { - "RSRPMeasurementResult-ExtIEs", - "RSRPMeasurementResult-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_RSRPMeasurementResult_ExtIEs_tags_749, - sizeof(asn_DEF_RSRPMeasurementResult_ExtIEs_tags_749) - /sizeof(asn_DEF_RSRPMeasurementResult_ExtIEs_tags_749[0]), /* 1 */ - asn_DEF_RSRPMeasurementResult_ExtIEs_tags_749, /* Same as above */ - sizeof(asn_DEF_RSRPMeasurementResult_ExtIEs_tags_749) - /sizeof(asn_DEF_RSRPMeasurementResult_ExtIEs_tags_749[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RSRPMeasurementResult_ExtIEs_749, - 3, /* Elements count */ - &asn_SPC_RSRPMeasurementResult_ExtIEs_specs_749 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_extensionValue_756[] = { - { ATF_NOFLAGS, 0, offsetof(struct RSRPMRList_ExtIEs__extensionValue, choice.UEID), - (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), - 0, - &asn_DEF_UEID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "UEID" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_extensionValue_tag2el_756[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), 0, 0, 0 } /* UEID */ -}; -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_756 = { - sizeof(struct RSRPMRList_ExtIEs__extensionValue), - offsetof(struct RSRPMRList_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct RSRPMRList_ExtIEs__extensionValue, present), - sizeof(((struct RSRPMRList_ExtIEs__extensionValue *)0)->present), - asn_MAP_extensionValue_tag2el_756, - 1, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_756 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_extensionValue_756, - 1, /* Elements count */ - &asn_SPC_extensionValue_specs_756 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_RSRPMRList_ExtIEs_753[] = { - { ATF_NOFLAGS, 0, offsetof(struct RSRPMRList_ExtIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_754, memb_id_constraint_753 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct RSRPMRList_ExtIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_Criticality, - select_RSRPMRList_ExtIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_755, memb_criticality_constraint_753 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RSRPMRList_ExtIEs, extensionValue), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_extensionValue_756, - select_RSRPMRList_ExtIEs_extensionValue_type, - { 0, &asn_PER_memb_extensionValue_constr_756, memb_extensionValue_constraint_753 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_RSRPMRList_ExtIEs_tags_753[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RSRPMRList_ExtIEs_tag2el_753[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RSRPMRList_ExtIEs_specs_753 = { - sizeof(struct RSRPMRList_ExtIEs), - offsetof(struct RSRPMRList_ExtIEs, _asn_ctx), - asn_MAP_RSRPMRList_ExtIEs_tag2el_753, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RSRPMRList_ExtIEs = { - "RSRPMRList-ExtIEs", - "RSRPMRList-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_RSRPMRList_ExtIEs_tags_753, - sizeof(asn_DEF_RSRPMRList_ExtIEs_tags_753) - /sizeof(asn_DEF_RSRPMRList_ExtIEs_tags_753[0]), /* 1 */ - asn_DEF_RSRPMRList_ExtIEs_tags_753, /* Same as above */ - sizeof(asn_DEF_RSRPMRList_ExtIEs_tags_753) - /sizeof(asn_DEF_RSRPMRList_ExtIEs_tags_753[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RSRPMRList_ExtIEs_753, - 3, /* Elements count */ - &asn_SPC_RSRPMRList_ExtIEs_specs_753 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_760 = { - sizeof(struct S1TNLLoadIndicator_ExtIEs__extensionValue), - offsetof(struct S1TNLLoadIndicator_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct S1TNLLoadIndicator_ExtIEs__extensionValue, present), - sizeof(((struct S1TNLLoadIndicator_ExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_760 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_760 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_S1TNLLoadIndicator_ExtIEs_757[] = { - { ATF_NOFLAGS, 0, offsetof(struct S1TNLLoadIndicator_ExtIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_758, memb_id_constraint_757 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct S1TNLLoadIndicator_ExtIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_759, memb_criticality_constraint_757 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct S1TNLLoadIndicator_ExtIEs, extensionValue), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_extensionValue_760, - 0, - { 0, &asn_PER_memb_extensionValue_constr_760, memb_extensionValue_constraint_757 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_S1TNLLoadIndicator_ExtIEs_tags_757[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_S1TNLLoadIndicator_ExtIEs_tag2el_757[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ -}; -asn_SEQUENCE_specifics_t asn_SPC_S1TNLLoadIndicator_ExtIEs_specs_757 = { - sizeof(struct S1TNLLoadIndicator_ExtIEs), - offsetof(struct S1TNLLoadIndicator_ExtIEs, _asn_ctx), - asn_MAP_S1TNLLoadIndicator_ExtIEs_tag2el_757, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_S1TNLLoadIndicator_ExtIEs = { - "S1TNLLoadIndicator-ExtIEs", - "S1TNLLoadIndicator-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_S1TNLLoadIndicator_ExtIEs_tags_757, - sizeof(asn_DEF_S1TNLLoadIndicator_ExtIEs_tags_757) - /sizeof(asn_DEF_S1TNLLoadIndicator_ExtIEs_tags_757[0]), /* 1 */ - asn_DEF_S1TNLLoadIndicator_ExtIEs_tags_757, /* Same as above */ - sizeof(asn_DEF_S1TNLLoadIndicator_ExtIEs_tags_757) - /sizeof(asn_DEF_S1TNLLoadIndicator_ExtIEs_tags_757[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_S1TNLLoadIndicator_ExtIEs_757, - 3, /* Elements count */ - &asn_SPC_S1TNLLoadIndicator_ExtIEs_specs_757 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_764 = { - sizeof(struct SecondaryRATUsageReport_Item_ExtIEs__extensionValue), - offsetof(struct SecondaryRATUsageReport_Item_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct SecondaryRATUsageReport_Item_ExtIEs__extensionValue, present), - sizeof(((struct SecondaryRATUsageReport_Item_ExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_764 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_764 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_SecondaryRATUsageReport_Item_ExtIEs_761[] = { - { ATF_NOFLAGS, 0, offsetof(struct SecondaryRATUsageReport_Item_ExtIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_762, memb_id_constraint_761 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct SecondaryRATUsageReport_Item_ExtIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_763, memb_criticality_constraint_761 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SecondaryRATUsageReport_Item_ExtIEs, extensionValue), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_extensionValue_764, - 0, - { 0, &asn_PER_memb_extensionValue_constr_764, memb_extensionValue_constraint_761 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_SecondaryRATUsageReport_Item_ExtIEs_tags_761[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_SecondaryRATUsageReport_Item_ExtIEs_tag2el_761[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ -}; -asn_SEQUENCE_specifics_t asn_SPC_SecondaryRATUsageReport_Item_ExtIEs_specs_761 = { - sizeof(struct SecondaryRATUsageReport_Item_ExtIEs), - offsetof(struct SecondaryRATUsageReport_Item_ExtIEs, _asn_ctx), - asn_MAP_SecondaryRATUsageReport_Item_ExtIEs_tag2el_761, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_SecondaryRATUsageReport_Item_ExtIEs = { - "SecondaryRATUsageReport-Item-ExtIEs", - "SecondaryRATUsageReport-Item-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_SecondaryRATUsageReport_Item_ExtIEs_tags_761, - sizeof(asn_DEF_SecondaryRATUsageReport_Item_ExtIEs_tags_761) - /sizeof(asn_DEF_SecondaryRATUsageReport_Item_ExtIEs_tags_761[0]), /* 1 */ - asn_DEF_SecondaryRATUsageReport_Item_ExtIEs_tags_761, /* Same as above */ - sizeof(asn_DEF_SecondaryRATUsageReport_Item_ExtIEs_tags_761) - /sizeof(asn_DEF_SecondaryRATUsageReport_Item_ExtIEs_tags_761[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_SecondaryRATUsageReport_Item_ExtIEs_761, - 3, /* Elements count */ - &asn_SPC_SecondaryRATUsageReport_Item_ExtIEs_specs_761 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_768 = { - sizeof(struct ServedCell_ExtIEs__extensionValue), - offsetof(struct ServedCell_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct ServedCell_ExtIEs__extensionValue, present), - sizeof(((struct ServedCell_ExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_768 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_768 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ServedCell_ExtIEs_765[] = { - { ATF_NOFLAGS, 0, offsetof(struct ServedCell_ExtIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_766, memb_id_constraint_765 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct ServedCell_ExtIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_767, memb_criticality_constraint_765 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ServedCell_ExtIEs, extensionValue), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_extensionValue_768, - 0, - { 0, &asn_PER_memb_extensionValue_constr_768, memb_extensionValue_constraint_765 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_ServedCell_ExtIEs_tags_765[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ServedCell_ExtIEs_tag2el_765[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ServedCell_ExtIEs_specs_765 = { - sizeof(struct ServedCell_ExtIEs), - offsetof(struct ServedCell_ExtIEs, _asn_ctx), - asn_MAP_ServedCell_ExtIEs_tag2el_765, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ServedCell_ExtIEs = { - "ServedCell-ExtIEs", - "ServedCell-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_ServedCell_ExtIEs_tags_765, - sizeof(asn_DEF_ServedCell_ExtIEs_tags_765) - /sizeof(asn_DEF_ServedCell_ExtIEs_tags_765[0]), /* 1 */ - asn_DEF_ServedCell_ExtIEs_tags_765, /* Same as above */ - sizeof(asn_DEF_ServedCell_ExtIEs_tags_765) - /sizeof(asn_DEF_ServedCell_ExtIEs_tags_765[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ServedCell_ExtIEs_765, - 3, /* Elements count */ - &asn_SPC_ServedCell_ExtIEs_specs_765 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_extensionValue_772[] = { - { ATF_NOFLAGS, 0, offsetof(struct ServedCell_Information_ExtIEs__extensionValue, choice.Number_of_Antennaports), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_Number_of_Antennaports, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "Number-of-Antennaports" - }, - { ATF_NOFLAGS, 0, offsetof(struct ServedCell_Information_ExtIEs__extensionValue, choice.PRACH_Configuration), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_PRACH_Configuration, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "PRACH-Configuration" - }, - { ATF_NOFLAGS, 0, offsetof(struct ServedCell_Information_ExtIEs__extensionValue, choice.MBSFN_Subframe_Infolist), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_MBSFN_Subframe_Infolist, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "MBSFN-Subframe-Infolist" - }, - { ATF_NOFLAGS, 0, offsetof(struct ServedCell_Information_ExtIEs__extensionValue, choice.CSG_Id), - (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), - 0, - &asn_DEF_CSG_Id, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "CSG-Id" - }, - { ATF_NOFLAGS, 0, offsetof(struct ServedCell_Information_ExtIEs__extensionValue, choice.MBMS_Service_Area_Identity_List), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_MBMS_Service_Area_Identity_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "MBMS-Service-Area-Identity-List" - }, - { ATF_NOFLAGS, 0, offsetof(struct ServedCell_Information_ExtIEs__extensionValue, choice.MultibandInfoList), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_MultibandInfoList, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "MultibandInfoList" - }, - { ATF_NOFLAGS, 0, offsetof(struct ServedCell_Information_ExtIEs__extensionValue, choice.FreqBandIndicatorPriority), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_FreqBandIndicatorPriority, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "FreqBandIndicatorPriority" - }, - { ATF_NOFLAGS, 0, offsetof(struct ServedCell_Information_ExtIEs__extensionValue, choice.BandwidthReducedSI), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_BandwidthReducedSI, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "BandwidthReducedSI" - }, - { ATF_NOFLAGS, 0, offsetof(struct ServedCell_Information_ExtIEs__extensionValue, choice.ProtectedEUTRAResourceIndication), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ProtectedEUTRAResourceIndication, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ProtectedEUTRAResourceIndication" - }, -}; -static const unsigned asn_MAP_extensionValue_to_canonical_772[] = { 3, 0, 6, 7, 1, 2, 4, 5, 8 }; -static const unsigned asn_MAP_extensionValue_from_canonical_772[] = { 1, 4, 5, 0, 6, 7, 2, 3, 8 }; -static const asn_TYPE_tag2member_t asn_MAP_extensionValue_tag2el_772[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), 3, 0, 0 }, /* CSG-Id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 0, 0, 2 }, /* Number-of-Antennaports */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 6, -1, 1 }, /* FreqBandIndicatorPriority */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 7, -2, 0 }, /* BandwidthReducedSI */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 4 }, /* PRACH-Configuration */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -1, 3 }, /* MBSFN-Subframe-Infolist */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, -2, 2 }, /* MBMS-Service-Area-Identity-List */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 5, -3, 1 }, /* MultibandInfoList */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 8, -4, 0 } /* ProtectedEUTRAResourceIndication */ -}; -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_772 = { - sizeof(struct ServedCell_Information_ExtIEs__extensionValue), - offsetof(struct ServedCell_Information_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct ServedCell_Information_ExtIEs__extensionValue, present), - sizeof(((struct ServedCell_Information_ExtIEs__extensionValue *)0)->present), - asn_MAP_extensionValue_tag2el_772, - 9, /* Count of tags in the map */ - asn_MAP_extensionValue_to_canonical_772, - asn_MAP_extensionValue_from_canonical_772, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_772 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_extensionValue_772, - 9, /* Elements count */ - &asn_SPC_extensionValue_specs_772 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ServedCell_Information_ExtIEs_769[] = { - { ATF_NOFLAGS, 0, offsetof(struct ServedCell_Information_ExtIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_770, memb_id_constraint_769 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct ServedCell_Information_ExtIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_Criticality, - select_ServedCell_Information_ExtIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_771, memb_criticality_constraint_769 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ServedCell_Information_ExtIEs, extensionValue), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_extensionValue_772, - select_ServedCell_Information_ExtIEs_extensionValue_type, - { 0, &asn_PER_memb_extensionValue_constr_772, memb_extensionValue_constraint_769 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_ServedCell_Information_ExtIEs_tags_769[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ServedCell_Information_ExtIEs_tag2el_769[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ServedCell_Information_ExtIEs_specs_769 = { - sizeof(struct ServedCell_Information_ExtIEs), - offsetof(struct ServedCell_Information_ExtIEs, _asn_ctx), - asn_MAP_ServedCell_Information_ExtIEs_tag2el_769, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ServedCell_Information_ExtIEs = { - "ServedCell-Information-ExtIEs", - "ServedCell-Information-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_ServedCell_Information_ExtIEs_tags_769, - sizeof(asn_DEF_ServedCell_Information_ExtIEs_tags_769) - /sizeof(asn_DEF_ServedCell_Information_ExtIEs_tags_769[0]), /* 1 */ - asn_DEF_ServedCell_Information_ExtIEs_tags_769, /* Same as above */ - sizeof(asn_DEF_ServedCell_Information_ExtIEs_tags_769) - /sizeof(asn_DEF_ServedCell_Information_ExtIEs_tags_769[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ServedCell_Information_ExtIEs_769, - 3, /* Elements count */ - &asn_SPC_ServedCell_Information_ExtIEs_specs_769 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_extensionValue_776[] = { - { ATF_NOFLAGS, 0, offsetof(struct SgNBResourceCoordinationInformationExtIEs__extensionValue, choice.ECGI), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ECGI, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ECGI" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBResourceCoordinationInformationExtIEs__extensionValue, choice.SgNBCoordinationAssistanceInformation), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_SgNBCoordinationAssistanceInformation, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "SgNBCoordinationAssistanceInformation" - }, -}; -static const unsigned asn_MAP_extensionValue_to_canonical_776[] = { 1, 0 }; -static const unsigned asn_MAP_extensionValue_from_canonical_776[] = { 1, 0 }; -static const asn_TYPE_tag2member_t asn_MAP_extensionValue_tag2el_776[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 }, /* SgNBCoordinationAssistanceInformation */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* ECGI */ -}; -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_776 = { - sizeof(struct SgNBResourceCoordinationInformationExtIEs__extensionValue), - offsetof(struct SgNBResourceCoordinationInformationExtIEs__extensionValue, _asn_ctx), - offsetof(struct SgNBResourceCoordinationInformationExtIEs__extensionValue, present), - sizeof(((struct SgNBResourceCoordinationInformationExtIEs__extensionValue *)0)->present), - asn_MAP_extensionValue_tag2el_776, - 2, /* Count of tags in the map */ - asn_MAP_extensionValue_to_canonical_776, - asn_MAP_extensionValue_from_canonical_776, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_776 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_extensionValue_776, - 2, /* Elements count */ - &asn_SPC_extensionValue_specs_776 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_SgNBResourceCoordinationInformationExtIEs_773[] = { - { ATF_NOFLAGS, 0, offsetof(struct SgNBResourceCoordinationInformationExtIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_774, memb_id_constraint_773 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBResourceCoordinationInformationExtIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_Criticality, - select_SgNBResourceCoordinationInformationExtIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_775, memb_criticality_constraint_773 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SgNBResourceCoordinationInformationExtIEs, extensionValue), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_extensionValue_776, - select_SgNBResourceCoordinationInformationExtIEs_extensionValue_type, - { 0, &asn_PER_memb_extensionValue_constr_776, memb_extensionValue_constraint_773 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_SgNBResourceCoordinationInformationExtIEs_tags_773[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_SgNBResourceCoordinationInformationExtIEs_tag2el_773[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ -}; -asn_SEQUENCE_specifics_t asn_SPC_SgNBResourceCoordinationInformationExtIEs_specs_773 = { - sizeof(struct SgNBResourceCoordinationInformationExtIEs), - offsetof(struct SgNBResourceCoordinationInformationExtIEs, _asn_ctx), - asn_MAP_SgNBResourceCoordinationInformationExtIEs_tag2el_773, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_SgNBResourceCoordinationInformationExtIEs = { - "SgNBResourceCoordinationInformationExtIEs", - "SgNBResourceCoordinationInformationExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_SgNBResourceCoordinationInformationExtIEs_tags_773, - sizeof(asn_DEF_SgNBResourceCoordinationInformationExtIEs_tags_773) - /sizeof(asn_DEF_SgNBResourceCoordinationInformationExtIEs_tags_773[0]), /* 1 */ - asn_DEF_SgNBResourceCoordinationInformationExtIEs_tags_773, /* Same as above */ - sizeof(asn_DEF_SgNBResourceCoordinationInformationExtIEs_tags_773) - /sizeof(asn_DEF_SgNBResourceCoordinationInformationExtIEs_tags_773[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_SgNBResourceCoordinationInformationExtIEs_773, - 3, /* Elements count */ - &asn_SPC_SgNBResourceCoordinationInformationExtIEs_specs_773 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_780 = { - sizeof(struct SpecialSubframe_Info_ExtIEs__extensionValue), - offsetof(struct SpecialSubframe_Info_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct SpecialSubframe_Info_ExtIEs__extensionValue, present), - sizeof(((struct SpecialSubframe_Info_ExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_780 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_780 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_SpecialSubframe_Info_ExtIEs_777[] = { - { ATF_NOFLAGS, 0, offsetof(struct SpecialSubframe_Info_ExtIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_778, memb_id_constraint_777 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct SpecialSubframe_Info_ExtIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_779, memb_criticality_constraint_777 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SpecialSubframe_Info_ExtIEs, extensionValue), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_extensionValue_780, - 0, - { 0, &asn_PER_memb_extensionValue_constr_780, memb_extensionValue_constraint_777 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_SpecialSubframe_Info_ExtIEs_tags_777[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_SpecialSubframe_Info_ExtIEs_tag2el_777[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ -}; -asn_SEQUENCE_specifics_t asn_SPC_SpecialSubframe_Info_ExtIEs_specs_777 = { - sizeof(struct SpecialSubframe_Info_ExtIEs), - offsetof(struct SpecialSubframe_Info_ExtIEs, _asn_ctx), - asn_MAP_SpecialSubframe_Info_ExtIEs_tag2el_777, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_SpecialSubframe_Info_ExtIEs = { - "SpecialSubframe-Info-ExtIEs", - "SpecialSubframe-Info-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_SpecialSubframe_Info_ExtIEs_tags_777, - sizeof(asn_DEF_SpecialSubframe_Info_ExtIEs_tags_777) - /sizeof(asn_DEF_SpecialSubframe_Info_ExtIEs_tags_777[0]), /* 1 */ - asn_DEF_SpecialSubframe_Info_ExtIEs_tags_777, /* Same as above */ - sizeof(asn_DEF_SpecialSubframe_Info_ExtIEs_tags_777) - /sizeof(asn_DEF_SpecialSubframe_Info_ExtIEs_tags_777[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_SpecialSubframe_Info_ExtIEs_777, - 3, /* Elements count */ - &asn_SPC_SpecialSubframe_Info_ExtIEs_specs_777 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_784 = { - sizeof(struct SubbandCQI_ExtIEs__extensionValue), - offsetof(struct SubbandCQI_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct SubbandCQI_ExtIEs__extensionValue, present), - sizeof(((struct SubbandCQI_ExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_784 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_784 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_SubbandCQI_ExtIEs_781[] = { - { ATF_NOFLAGS, 0, offsetof(struct SubbandCQI_ExtIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_782, memb_id_constraint_781 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct SubbandCQI_ExtIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_783, memb_criticality_constraint_781 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SubbandCQI_ExtIEs, extensionValue), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_extensionValue_784, - 0, - { 0, &asn_PER_memb_extensionValue_constr_784, memb_extensionValue_constraint_781 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_SubbandCQI_ExtIEs_tags_781[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_SubbandCQI_ExtIEs_tag2el_781[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ -}; -asn_SEQUENCE_specifics_t asn_SPC_SubbandCQI_ExtIEs_specs_781 = { - sizeof(struct SubbandCQI_ExtIEs), - offsetof(struct SubbandCQI_ExtIEs, _asn_ctx), - asn_MAP_SubbandCQI_ExtIEs_tag2el_781, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_SubbandCQI_ExtIEs = { - "SubbandCQI-ExtIEs", - "SubbandCQI-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_SubbandCQI_ExtIEs_tags_781, - sizeof(asn_DEF_SubbandCQI_ExtIEs_tags_781) - /sizeof(asn_DEF_SubbandCQI_ExtIEs_tags_781[0]), /* 1 */ - asn_DEF_SubbandCQI_ExtIEs_tags_781, /* Same as above */ - sizeof(asn_DEF_SubbandCQI_ExtIEs_tags_781) - /sizeof(asn_DEF_SubbandCQI_ExtIEs_tags_781[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_SubbandCQI_ExtIEs_781, - 3, /* Elements count */ - &asn_SPC_SubbandCQI_ExtIEs_specs_781 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_788 = { - sizeof(struct Subscription_Based_UE_DifferentiationInfo_ExtIEs__extensionValue), - offsetof(struct Subscription_Based_UE_DifferentiationInfo_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct Subscription_Based_UE_DifferentiationInfo_ExtIEs__extensionValue, present), - sizeof(((struct Subscription_Based_UE_DifferentiationInfo_ExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_788 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_788 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_Subscription_Based_UE_DifferentiationInfo_ExtIEs_785[] = { - { ATF_NOFLAGS, 0, offsetof(struct Subscription_Based_UE_DifferentiationInfo_ExtIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_786, memb_id_constraint_785 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct Subscription_Based_UE_DifferentiationInfo_ExtIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_787, memb_criticality_constraint_785 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Subscription_Based_UE_DifferentiationInfo_ExtIEs, extensionValue), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_extensionValue_788, - 0, - { 0, &asn_PER_memb_extensionValue_constr_788, memb_extensionValue_constraint_785 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_Subscription_Based_UE_DifferentiationInfo_ExtIEs_tags_785[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_Subscription_Based_UE_DifferentiationInfo_ExtIEs_tag2el_785[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ -}; -asn_SEQUENCE_specifics_t asn_SPC_Subscription_Based_UE_DifferentiationInfo_ExtIEs_specs_785 = { - sizeof(struct Subscription_Based_UE_DifferentiationInfo_ExtIEs), - offsetof(struct Subscription_Based_UE_DifferentiationInfo_ExtIEs, _asn_ctx), - asn_MAP_Subscription_Based_UE_DifferentiationInfo_ExtIEs_tag2el_785, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_Subscription_Based_UE_DifferentiationInfo_ExtIEs = { - "Subscription-Based-UE-DifferentiationInfo-ExtIEs", - "Subscription-Based-UE-DifferentiationInfo-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_Subscription_Based_UE_DifferentiationInfo_ExtIEs_tags_785, - sizeof(asn_DEF_Subscription_Based_UE_DifferentiationInfo_ExtIEs_tags_785) - /sizeof(asn_DEF_Subscription_Based_UE_DifferentiationInfo_ExtIEs_tags_785[0]), /* 1 */ - asn_DEF_Subscription_Based_UE_DifferentiationInfo_ExtIEs_tags_785, /* Same as above */ - sizeof(asn_DEF_Subscription_Based_UE_DifferentiationInfo_ExtIEs_tags_785) - /sizeof(asn_DEF_Subscription_Based_UE_DifferentiationInfo_ExtIEs_tags_785[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_Subscription_Based_UE_DifferentiationInfo_ExtIEs_785, - 3, /* Elements count */ - &asn_SPC_Subscription_Based_UE_DifferentiationInfo_ExtIEs_specs_785 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_792 = { - sizeof(struct ScheduledCommunicationTime_ExtIEs__extensionValue), - offsetof(struct ScheduledCommunicationTime_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct ScheduledCommunicationTime_ExtIEs__extensionValue, present), - sizeof(((struct ScheduledCommunicationTime_ExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_792 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_792 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ScheduledCommunicationTime_ExtIEs_789[] = { - { ATF_NOFLAGS, 0, offsetof(struct ScheduledCommunicationTime_ExtIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_790, memb_id_constraint_789 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct ScheduledCommunicationTime_ExtIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_791, memb_criticality_constraint_789 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ScheduledCommunicationTime_ExtIEs, extensionValue), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_extensionValue_792, - 0, - { 0, &asn_PER_memb_extensionValue_constr_792, memb_extensionValue_constraint_789 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_ScheduledCommunicationTime_ExtIEs_tags_789[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ScheduledCommunicationTime_ExtIEs_tag2el_789[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ScheduledCommunicationTime_ExtIEs_specs_789 = { - sizeof(struct ScheduledCommunicationTime_ExtIEs), - offsetof(struct ScheduledCommunicationTime_ExtIEs, _asn_ctx), - asn_MAP_ScheduledCommunicationTime_ExtIEs_tag2el_789, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ScheduledCommunicationTime_ExtIEs = { - "ScheduledCommunicationTime-ExtIEs", - "ScheduledCommunicationTime-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_ScheduledCommunicationTime_ExtIEs_tags_789, - sizeof(asn_DEF_ScheduledCommunicationTime_ExtIEs_tags_789) - /sizeof(asn_DEF_ScheduledCommunicationTime_ExtIEs_tags_789[0]), /* 1 */ - asn_DEF_ScheduledCommunicationTime_ExtIEs_tags_789, /* Same as above */ - sizeof(asn_DEF_ScheduledCommunicationTime_ExtIEs_tags_789) - /sizeof(asn_DEF_ScheduledCommunicationTime_ExtIEs_tags_789[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ScheduledCommunicationTime_ExtIEs_789, - 3, /* Elements count */ - &asn_SPC_ScheduledCommunicationTime_ExtIEs_specs_789 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_796 = { - sizeof(struct SubbandCQIItem_ExtIEs__extensionValue), - offsetof(struct SubbandCQIItem_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct SubbandCQIItem_ExtIEs__extensionValue, present), - sizeof(((struct SubbandCQIItem_ExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_796 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_796 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_SubbandCQIItem_ExtIEs_793[] = { - { ATF_NOFLAGS, 0, offsetof(struct SubbandCQIItem_ExtIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_794, memb_id_constraint_793 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct SubbandCQIItem_ExtIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_795, memb_criticality_constraint_793 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SubbandCQIItem_ExtIEs, extensionValue), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_extensionValue_796, - 0, - { 0, &asn_PER_memb_extensionValue_constr_796, memb_extensionValue_constraint_793 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_SubbandCQIItem_ExtIEs_tags_793[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_SubbandCQIItem_ExtIEs_tag2el_793[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ -}; -asn_SEQUENCE_specifics_t asn_SPC_SubbandCQIItem_ExtIEs_specs_793 = { - sizeof(struct SubbandCQIItem_ExtIEs), - offsetof(struct SubbandCQIItem_ExtIEs, _asn_ctx), - asn_MAP_SubbandCQIItem_ExtIEs_tag2el_793, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_SubbandCQIItem_ExtIEs = { - "SubbandCQIItem-ExtIEs", - "SubbandCQIItem-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_SubbandCQIItem_ExtIEs_tags_793, - sizeof(asn_DEF_SubbandCQIItem_ExtIEs_tags_793) - /sizeof(asn_DEF_SubbandCQIItem_ExtIEs_tags_793[0]), /* 1 */ - asn_DEF_SubbandCQIItem_ExtIEs_tags_793, /* Same as above */ - sizeof(asn_DEF_SubbandCQIItem_ExtIEs_tags_793) - /sizeof(asn_DEF_SubbandCQIItem_ExtIEs_tags_793[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_SubbandCQIItem_ExtIEs_793, - 3, /* Elements count */ - &asn_SPC_SubbandCQIItem_ExtIEs_specs_793 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_800 = { - sizeof(struct SULInformation_ExtIEs__extensionValue), - offsetof(struct SULInformation_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct SULInformation_ExtIEs__extensionValue, present), - sizeof(((struct SULInformation_ExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_800 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_800 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_SULInformation_ExtIEs_797[] = { - { ATF_NOFLAGS, 0, offsetof(struct SULInformation_ExtIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_798, memb_id_constraint_797 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct SULInformation_ExtIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_799, memb_criticality_constraint_797 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SULInformation_ExtIEs, extensionValue), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_extensionValue_800, - 0, - { 0, &asn_PER_memb_extensionValue_constr_800, memb_extensionValue_constraint_797 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_SULInformation_ExtIEs_tags_797[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_SULInformation_ExtIEs_tag2el_797[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ -}; -asn_SEQUENCE_specifics_t asn_SPC_SULInformation_ExtIEs_specs_797 = { - sizeof(struct SULInformation_ExtIEs), - offsetof(struct SULInformation_ExtIEs, _asn_ctx), - asn_MAP_SULInformation_ExtIEs_tag2el_797, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_SULInformation_ExtIEs = { - "SULInformation-ExtIEs", - "SULInformation-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_SULInformation_ExtIEs_tags_797, - sizeof(asn_DEF_SULInformation_ExtIEs_tags_797) - /sizeof(asn_DEF_SULInformation_ExtIEs_tags_797[0]), /* 1 */ - asn_DEF_SULInformation_ExtIEs_tags_797, /* Same as above */ - sizeof(asn_DEF_SULInformation_ExtIEs_tags_797) - /sizeof(asn_DEF_SULInformation_ExtIEs_tags_797[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_SULInformation_ExtIEs_797, - 3, /* Elements count */ - &asn_SPC_SULInformation_ExtIEs_specs_797 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_804 = { - sizeof(struct SupportedSULFreqBandItem_ExtIEs__extensionValue), - offsetof(struct SupportedSULFreqBandItem_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct SupportedSULFreqBandItem_ExtIEs__extensionValue, present), - sizeof(((struct SupportedSULFreqBandItem_ExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_804 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_804 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_SupportedSULFreqBandItem_ExtIEs_801[] = { - { ATF_NOFLAGS, 0, offsetof(struct SupportedSULFreqBandItem_ExtIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_802, memb_id_constraint_801 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct SupportedSULFreqBandItem_ExtIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_803, memb_criticality_constraint_801 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SupportedSULFreqBandItem_ExtIEs, extensionValue), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_extensionValue_804, - 0, - { 0, &asn_PER_memb_extensionValue_constr_804, memb_extensionValue_constraint_801 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_SupportedSULFreqBandItem_ExtIEs_tags_801[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_SupportedSULFreqBandItem_ExtIEs_tag2el_801[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ -}; -asn_SEQUENCE_specifics_t asn_SPC_SupportedSULFreqBandItem_ExtIEs_specs_801 = { - sizeof(struct SupportedSULFreqBandItem_ExtIEs), - offsetof(struct SupportedSULFreqBandItem_ExtIEs, _asn_ctx), - asn_MAP_SupportedSULFreqBandItem_ExtIEs_tag2el_801, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_SupportedSULFreqBandItem_ExtIEs = { - "SupportedSULFreqBandItem-ExtIEs", - "SupportedSULFreqBandItem-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_SupportedSULFreqBandItem_ExtIEs_tags_801, - sizeof(asn_DEF_SupportedSULFreqBandItem_ExtIEs_tags_801) - /sizeof(asn_DEF_SupportedSULFreqBandItem_ExtIEs_tags_801[0]), /* 1 */ - asn_DEF_SupportedSULFreqBandItem_ExtIEs_tags_801, /* Same as above */ - sizeof(asn_DEF_SupportedSULFreqBandItem_ExtIEs_tags_801) - /sizeof(asn_DEF_SupportedSULFreqBandItem_ExtIEs_tags_801[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_SupportedSULFreqBandItem_ExtIEs_801, - 3, /* Elements count */ - &asn_SPC_SupportedSULFreqBandItem_ExtIEs_specs_801 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_808 = { - sizeof(struct TABasedMDT_ExtIEs__extensionValue), - offsetof(struct TABasedMDT_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct TABasedMDT_ExtIEs__extensionValue, present), - sizeof(((struct TABasedMDT_ExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_808 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_808 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_TABasedMDT_ExtIEs_805[] = { - { ATF_NOFLAGS, 0, offsetof(struct TABasedMDT_ExtIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_806, memb_id_constraint_805 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct TABasedMDT_ExtIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_807, memb_criticality_constraint_805 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct TABasedMDT_ExtIEs, extensionValue), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_extensionValue_808, - 0, - { 0, &asn_PER_memb_extensionValue_constr_808, memb_extensionValue_constraint_805 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_TABasedMDT_ExtIEs_tags_805[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_TABasedMDT_ExtIEs_tag2el_805[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ -}; -asn_SEQUENCE_specifics_t asn_SPC_TABasedMDT_ExtIEs_specs_805 = { - sizeof(struct TABasedMDT_ExtIEs), - offsetof(struct TABasedMDT_ExtIEs, _asn_ctx), - asn_MAP_TABasedMDT_ExtIEs_tag2el_805, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_TABasedMDT_ExtIEs = { - "TABasedMDT-ExtIEs", - "TABasedMDT-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_TABasedMDT_ExtIEs_tags_805, - sizeof(asn_DEF_TABasedMDT_ExtIEs_tags_805) - /sizeof(asn_DEF_TABasedMDT_ExtIEs_tags_805[0]), /* 1 */ - asn_DEF_TABasedMDT_ExtIEs_tags_805, /* Same as above */ - sizeof(asn_DEF_TABasedMDT_ExtIEs_tags_805) - /sizeof(asn_DEF_TABasedMDT_ExtIEs_tags_805[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_TABasedMDT_ExtIEs_805, - 3, /* Elements count */ - &asn_SPC_TABasedMDT_ExtIEs_specs_805 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_812 = { - sizeof(struct TAIBasedMDT_ExtIEs__extensionValue), - offsetof(struct TAIBasedMDT_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct TAIBasedMDT_ExtIEs__extensionValue, present), - sizeof(((struct TAIBasedMDT_ExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_812 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_812 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_TAIBasedMDT_ExtIEs_809[] = { - { ATF_NOFLAGS, 0, offsetof(struct TAIBasedMDT_ExtIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_810, memb_id_constraint_809 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct TAIBasedMDT_ExtIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_811, memb_criticality_constraint_809 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct TAIBasedMDT_ExtIEs, extensionValue), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_extensionValue_812, - 0, - { 0, &asn_PER_memb_extensionValue_constr_812, memb_extensionValue_constraint_809 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_TAIBasedMDT_ExtIEs_tags_809[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_TAIBasedMDT_ExtIEs_tag2el_809[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ -}; -asn_SEQUENCE_specifics_t asn_SPC_TAIBasedMDT_ExtIEs_specs_809 = { - sizeof(struct TAIBasedMDT_ExtIEs), - offsetof(struct TAIBasedMDT_ExtIEs, _asn_ctx), - asn_MAP_TAIBasedMDT_ExtIEs_tag2el_809, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_TAIBasedMDT_ExtIEs = { - "TAIBasedMDT-ExtIEs", - "TAIBasedMDT-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_TAIBasedMDT_ExtIEs_tags_809, - sizeof(asn_DEF_TAIBasedMDT_ExtIEs_tags_809) - /sizeof(asn_DEF_TAIBasedMDT_ExtIEs_tags_809[0]), /* 1 */ - asn_DEF_TAIBasedMDT_ExtIEs_tags_809, /* Same as above */ - sizeof(asn_DEF_TAIBasedMDT_ExtIEs_tags_809) - /sizeof(asn_DEF_TAIBasedMDT_ExtIEs_tags_809[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_TAIBasedMDT_ExtIEs_809, - 3, /* Elements count */ - &asn_SPC_TAIBasedMDT_ExtIEs_specs_809 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_816 = { - sizeof(struct TAI_Item_ExtIEs__extensionValue), - offsetof(struct TAI_Item_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct TAI_Item_ExtIEs__extensionValue, present), - sizeof(((struct TAI_Item_ExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_816 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_816 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_TAI_Item_ExtIEs_813[] = { - { ATF_NOFLAGS, 0, offsetof(struct TAI_Item_ExtIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_814, memb_id_constraint_813 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct TAI_Item_ExtIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_815, memb_criticality_constraint_813 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct TAI_Item_ExtIEs, extensionValue), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_extensionValue_816, - 0, - { 0, &asn_PER_memb_extensionValue_constr_816, memb_extensionValue_constraint_813 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_TAI_Item_ExtIEs_tags_813[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_TAI_Item_ExtIEs_tag2el_813[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ -}; -asn_SEQUENCE_specifics_t asn_SPC_TAI_Item_ExtIEs_specs_813 = { - sizeof(struct TAI_Item_ExtIEs), - offsetof(struct TAI_Item_ExtIEs, _asn_ctx), - asn_MAP_TAI_Item_ExtIEs_tag2el_813, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_TAI_Item_ExtIEs = { - "TAI-Item-ExtIEs", - "TAI-Item-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_TAI_Item_ExtIEs_tags_813, - sizeof(asn_DEF_TAI_Item_ExtIEs_tags_813) - /sizeof(asn_DEF_TAI_Item_ExtIEs_tags_813[0]), /* 1 */ - asn_DEF_TAI_Item_ExtIEs_tags_813, /* Same as above */ - sizeof(asn_DEF_TAI_Item_ExtIEs_tags_813) - /sizeof(asn_DEF_TAI_Item_ExtIEs_tags_813[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_TAI_Item_ExtIEs_813, - 3, /* Elements count */ - &asn_SPC_TAI_Item_ExtIEs_specs_813 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_820 = { - sizeof(struct TABasedQMC_ExtIEs__extensionValue), - offsetof(struct TABasedQMC_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct TABasedQMC_ExtIEs__extensionValue, present), - sizeof(((struct TABasedQMC_ExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_820 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_820 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_TABasedQMC_ExtIEs_817[] = { - { ATF_NOFLAGS, 0, offsetof(struct TABasedQMC_ExtIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_818, memb_id_constraint_817 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct TABasedQMC_ExtIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_819, memb_criticality_constraint_817 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct TABasedQMC_ExtIEs, extensionValue), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_extensionValue_820, - 0, - { 0, &asn_PER_memb_extensionValue_constr_820, memb_extensionValue_constraint_817 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_TABasedQMC_ExtIEs_tags_817[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_TABasedQMC_ExtIEs_tag2el_817[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ -}; -asn_SEQUENCE_specifics_t asn_SPC_TABasedQMC_ExtIEs_specs_817 = { - sizeof(struct TABasedQMC_ExtIEs), - offsetof(struct TABasedQMC_ExtIEs, _asn_ctx), - asn_MAP_TABasedQMC_ExtIEs_tag2el_817, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_TABasedQMC_ExtIEs = { - "TABasedQMC-ExtIEs", - "TABasedQMC-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_TABasedQMC_ExtIEs_tags_817, - sizeof(asn_DEF_TABasedQMC_ExtIEs_tags_817) - /sizeof(asn_DEF_TABasedQMC_ExtIEs_tags_817[0]), /* 1 */ - asn_DEF_TABasedQMC_ExtIEs_tags_817, /* Same as above */ - sizeof(asn_DEF_TABasedQMC_ExtIEs_tags_817) - /sizeof(asn_DEF_TABasedQMC_ExtIEs_tags_817[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_TABasedQMC_ExtIEs_817, - 3, /* Elements count */ - &asn_SPC_TABasedQMC_ExtIEs_specs_817 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_824 = { - sizeof(struct TAIBasedQMC_ExtIEs__extensionValue), - offsetof(struct TAIBasedQMC_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct TAIBasedQMC_ExtIEs__extensionValue, present), - sizeof(((struct TAIBasedQMC_ExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_824 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_824 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_TAIBasedQMC_ExtIEs_821[] = { - { ATF_NOFLAGS, 0, offsetof(struct TAIBasedQMC_ExtIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_822, memb_id_constraint_821 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct TAIBasedQMC_ExtIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_823, memb_criticality_constraint_821 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct TAIBasedQMC_ExtIEs, extensionValue), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_extensionValue_824, - 0, - { 0, &asn_PER_memb_extensionValue_constr_824, memb_extensionValue_constraint_821 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_TAIBasedQMC_ExtIEs_tags_821[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_TAIBasedQMC_ExtIEs_tag2el_821[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ -}; -asn_SEQUENCE_specifics_t asn_SPC_TAIBasedQMC_ExtIEs_specs_821 = { - sizeof(struct TAIBasedQMC_ExtIEs), - offsetof(struct TAIBasedQMC_ExtIEs, _asn_ctx), - asn_MAP_TAIBasedQMC_ExtIEs_tag2el_821, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_TAIBasedQMC_ExtIEs = { - "TAIBasedQMC-ExtIEs", - "TAIBasedQMC-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_TAIBasedQMC_ExtIEs_tags_821, - sizeof(asn_DEF_TAIBasedQMC_ExtIEs_tags_821) - /sizeof(asn_DEF_TAIBasedQMC_ExtIEs_tags_821[0]), /* 1 */ - asn_DEF_TAIBasedQMC_ExtIEs_tags_821, /* Same as above */ - sizeof(asn_DEF_TAIBasedQMC_ExtIEs_tags_821) - /sizeof(asn_DEF_TAIBasedQMC_ExtIEs_tags_821[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_TAIBasedQMC_ExtIEs_821, - 3, /* Elements count */ - &asn_SPC_TAIBasedQMC_ExtIEs_specs_821 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_extensionValue_828[] = { - { ATF_NOFLAGS, 0, offsetof(struct TDD_Info_ExtIEs__extensionValue, choice.AdditionalSpecialSubframe_Info), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_AdditionalSpecialSubframe_Info, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "AdditionalSpecialSubframe-Info" - }, - { ATF_NOFLAGS, 0, offsetof(struct TDD_Info_ExtIEs__extensionValue, choice.EARFCNExtension), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_EARFCNExtension, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "EARFCNExtension" - }, - { ATF_NOFLAGS, 0, offsetof(struct TDD_Info_ExtIEs__extensionValue, choice.AdditionalSpecialSubframeExtension_Info), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_AdditionalSpecialSubframeExtension_Info, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "AdditionalSpecialSubframeExtension-Info" - }, -}; -static const unsigned asn_MAP_extensionValue_to_canonical_828[] = { 1, 0, 2 }; -static const unsigned asn_MAP_extensionValue_from_canonical_828[] = { 1, 0, 2 }; -static const asn_TYPE_tag2member_t asn_MAP_extensionValue_tag2el_828[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* EARFCNExtension */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 1 }, /* AdditionalSpecialSubframe-Info */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -1, 0 } /* AdditionalSpecialSubframeExtension-Info */ -}; -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_828 = { - sizeof(struct TDD_Info_ExtIEs__extensionValue), - offsetof(struct TDD_Info_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct TDD_Info_ExtIEs__extensionValue, present), - sizeof(((struct TDD_Info_ExtIEs__extensionValue *)0)->present), - asn_MAP_extensionValue_tag2el_828, - 3, /* Count of tags in the map */ - asn_MAP_extensionValue_to_canonical_828, - asn_MAP_extensionValue_from_canonical_828, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_828 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_extensionValue_828, - 3, /* Elements count */ - &asn_SPC_extensionValue_specs_828 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_TDD_Info_ExtIEs_825[] = { - { ATF_NOFLAGS, 0, offsetof(struct TDD_Info_ExtIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_826, memb_id_constraint_825 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct TDD_Info_ExtIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_Criticality, - select_TDD_Info_ExtIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_827, memb_criticality_constraint_825 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct TDD_Info_ExtIEs, extensionValue), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_extensionValue_828, - select_TDD_Info_ExtIEs_extensionValue_type, - { 0, &asn_PER_memb_extensionValue_constr_828, memb_extensionValue_constraint_825 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_TDD_Info_ExtIEs_tags_825[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_TDD_Info_ExtIEs_tag2el_825[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ -}; -asn_SEQUENCE_specifics_t asn_SPC_TDD_Info_ExtIEs_specs_825 = { - sizeof(struct TDD_Info_ExtIEs), - offsetof(struct TDD_Info_ExtIEs, _asn_ctx), - asn_MAP_TDD_Info_ExtIEs_tag2el_825, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_TDD_Info_ExtIEs = { - "TDD-Info-ExtIEs", - "TDD-Info-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_TDD_Info_ExtIEs_tags_825, - sizeof(asn_DEF_TDD_Info_ExtIEs_tags_825) - /sizeof(asn_DEF_TDD_Info_ExtIEs_tags_825[0]), /* 1 */ - asn_DEF_TDD_Info_ExtIEs_tags_825, /* Same as above */ - sizeof(asn_DEF_TDD_Info_ExtIEs_tags_825) - /sizeof(asn_DEF_TDD_Info_ExtIEs_tags_825[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_TDD_Info_ExtIEs_825, - 3, /* Elements count */ - &asn_SPC_TDD_Info_ExtIEs_specs_825 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_extensionValue_832[] = { - { ATF_NOFLAGS, 0, offsetof(struct TraceActivation_ExtIEs__extensionValue, choice.MDT_Configuration), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_MDT_Configuration, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "MDT-Configuration" - }, - { ATF_NOFLAGS, 0, offsetof(struct TraceActivation_ExtIEs__extensionValue, choice.UEAppLayerMeasConfig), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_UEAppLayerMeasConfig, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "UEAppLayerMeasConfig" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_extensionValue_tag2el_832[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 1 }, /* MDT-Configuration */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 0 } /* UEAppLayerMeasConfig */ -}; -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_832 = { - sizeof(struct TraceActivation_ExtIEs__extensionValue), - offsetof(struct TraceActivation_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct TraceActivation_ExtIEs__extensionValue, present), - sizeof(((struct TraceActivation_ExtIEs__extensionValue *)0)->present), - asn_MAP_extensionValue_tag2el_832, - 2, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_832 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_extensionValue_832, - 2, /* Elements count */ - &asn_SPC_extensionValue_specs_832 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_TraceActivation_ExtIEs_829[] = { - { ATF_NOFLAGS, 0, offsetof(struct TraceActivation_ExtIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_830, memb_id_constraint_829 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct TraceActivation_ExtIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_Criticality, - select_TraceActivation_ExtIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_831, memb_criticality_constraint_829 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct TraceActivation_ExtIEs, extensionValue), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_extensionValue_832, - select_TraceActivation_ExtIEs_extensionValue_type, - { 0, &asn_PER_memb_extensionValue_constr_832, memb_extensionValue_constraint_829 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_TraceActivation_ExtIEs_tags_829[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_TraceActivation_ExtIEs_tag2el_829[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ -}; -asn_SEQUENCE_specifics_t asn_SPC_TraceActivation_ExtIEs_specs_829 = { - sizeof(struct TraceActivation_ExtIEs), - offsetof(struct TraceActivation_ExtIEs, _asn_ctx), - asn_MAP_TraceActivation_ExtIEs_tag2el_829, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_TraceActivation_ExtIEs = { - "TraceActivation-ExtIEs", - "TraceActivation-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_TraceActivation_ExtIEs_tags_829, - sizeof(asn_DEF_TraceActivation_ExtIEs_tags_829) - /sizeof(asn_DEF_TraceActivation_ExtIEs_tags_829[0]), /* 1 */ - asn_DEF_TraceActivation_ExtIEs_tags_829, /* Same as above */ - sizeof(asn_DEF_TraceActivation_ExtIEs_tags_829) - /sizeof(asn_DEF_TraceActivation_ExtIEs_tags_829[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_TraceActivation_ExtIEs_829, - 3, /* Elements count */ - &asn_SPC_TraceActivation_ExtIEs_specs_829 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_836 = { - sizeof(struct Tunnel_Information_ExtIEs__extensionValue), - offsetof(struct Tunnel_Information_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct Tunnel_Information_ExtIEs__extensionValue, present), - sizeof(((struct Tunnel_Information_ExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_836 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_836 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_Tunnel_Information_ExtIEs_833[] = { - { ATF_NOFLAGS, 0, offsetof(struct Tunnel_Information_ExtIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_834, memb_id_constraint_833 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct Tunnel_Information_ExtIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_835, memb_criticality_constraint_833 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Tunnel_Information_ExtIEs, extensionValue), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_extensionValue_836, - 0, - { 0, &asn_PER_memb_extensionValue_constr_836, memb_extensionValue_constraint_833 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_Tunnel_Information_ExtIEs_tags_833[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_Tunnel_Information_ExtIEs_tag2el_833[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ -}; -asn_SEQUENCE_specifics_t asn_SPC_Tunnel_Information_ExtIEs_specs_833 = { - sizeof(struct Tunnel_Information_ExtIEs), - offsetof(struct Tunnel_Information_ExtIEs, _asn_ctx), - asn_MAP_Tunnel_Information_ExtIEs_tag2el_833, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_Tunnel_Information_ExtIEs = { - "Tunnel-Information-ExtIEs", - "Tunnel-Information-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_Tunnel_Information_ExtIEs_tags_833, - sizeof(asn_DEF_Tunnel_Information_ExtIEs_tags_833) - /sizeof(asn_DEF_Tunnel_Information_ExtIEs_tags_833[0]), /* 1 */ - asn_DEF_Tunnel_Information_ExtIEs_tags_833, /* Same as above */ - sizeof(asn_DEF_Tunnel_Information_ExtIEs_tags_833) - /sizeof(asn_DEF_Tunnel_Information_ExtIEs_tags_833[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_Tunnel_Information_ExtIEs_833, - 3, /* Elements count */ - &asn_SPC_Tunnel_Information_ExtIEs_specs_833 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_extensionValue_840[] = { - { ATF_NOFLAGS, 0, offsetof(struct UEAggregate_MaximumBitrate_ExtIEs__extensionValue, choice.ExtendedBitRate), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_ExtendedBitRate, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ExtendedBitRate" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_extensionValue_tag2el_840[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 } /* ExtendedBitRate */ -}; -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_840 = { - sizeof(struct UEAggregate_MaximumBitrate_ExtIEs__extensionValue), - offsetof(struct UEAggregate_MaximumBitrate_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct UEAggregate_MaximumBitrate_ExtIEs__extensionValue, present), - sizeof(((struct UEAggregate_MaximumBitrate_ExtIEs__extensionValue *)0)->present), - asn_MAP_extensionValue_tag2el_840, - 1, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_840 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_extensionValue_840, - 1, /* Elements count */ - &asn_SPC_extensionValue_specs_840 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_UEAggregate_MaximumBitrate_ExtIEs_837[] = { - { ATF_NOFLAGS, 0, offsetof(struct UEAggregate_MaximumBitrate_ExtIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_838, memb_id_constraint_837 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct UEAggregate_MaximumBitrate_ExtIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_Criticality, - select_UEAggregate_MaximumBitrate_ExtIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_839, memb_criticality_constraint_837 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct UEAggregate_MaximumBitrate_ExtIEs, extensionValue), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_extensionValue_840, - select_UEAggregate_MaximumBitrate_ExtIEs_extensionValue_type, - { 0, &asn_PER_memb_extensionValue_constr_840, memb_extensionValue_constraint_837 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_UEAggregate_MaximumBitrate_ExtIEs_tags_837[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_UEAggregate_MaximumBitrate_ExtIEs_tag2el_837[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ -}; -asn_SEQUENCE_specifics_t asn_SPC_UEAggregate_MaximumBitrate_ExtIEs_specs_837 = { - sizeof(struct UEAggregate_MaximumBitrate_ExtIEs), - offsetof(struct UEAggregate_MaximumBitrate_ExtIEs, _asn_ctx), - asn_MAP_UEAggregate_MaximumBitrate_ExtIEs_tag2el_837, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_UEAggregate_MaximumBitrate_ExtIEs = { - "UEAggregate-MaximumBitrate-ExtIEs", - "UEAggregate-MaximumBitrate-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_UEAggregate_MaximumBitrate_ExtIEs_tags_837, - sizeof(asn_DEF_UEAggregate_MaximumBitrate_ExtIEs_tags_837) - /sizeof(asn_DEF_UEAggregate_MaximumBitrate_ExtIEs_tags_837[0]), /* 1 */ - asn_DEF_UEAggregate_MaximumBitrate_ExtIEs_tags_837, /* Same as above */ - sizeof(asn_DEF_UEAggregate_MaximumBitrate_ExtIEs_tags_837) - /sizeof(asn_DEF_UEAggregate_MaximumBitrate_ExtIEs_tags_837[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_UEAggregate_MaximumBitrate_ExtIEs_837, - 3, /* Elements count */ - &asn_SPC_UEAggregate_MaximumBitrate_ExtIEs_specs_837 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_extensionValue_844[] = { - { ATF_NOFLAGS, 0, offsetof(struct UEAppLayerMeasConfig_ExtIEs__extensionValue, choice.ServiceType), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_ServiceType, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ServiceType" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_extensionValue_tag2el_844[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 0, 0, 0 } /* ServiceType */ -}; -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_844 = { - sizeof(struct UEAppLayerMeasConfig_ExtIEs__extensionValue), - offsetof(struct UEAppLayerMeasConfig_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct UEAppLayerMeasConfig_ExtIEs__extensionValue, present), - sizeof(((struct UEAppLayerMeasConfig_ExtIEs__extensionValue *)0)->present), - asn_MAP_extensionValue_tag2el_844, - 1, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_844 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_extensionValue_844, - 1, /* Elements count */ - &asn_SPC_extensionValue_specs_844 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_UEAppLayerMeasConfig_ExtIEs_841[] = { - { ATF_NOFLAGS, 0, offsetof(struct UEAppLayerMeasConfig_ExtIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_842, memb_id_constraint_841 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct UEAppLayerMeasConfig_ExtIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_Criticality, - select_UEAppLayerMeasConfig_ExtIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_843, memb_criticality_constraint_841 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct UEAppLayerMeasConfig_ExtIEs, extensionValue), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_extensionValue_844, - select_UEAppLayerMeasConfig_ExtIEs_extensionValue_type, - { 0, &asn_PER_memb_extensionValue_constr_844, memb_extensionValue_constraint_841 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_UEAppLayerMeasConfig_ExtIEs_tags_841[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_UEAppLayerMeasConfig_ExtIEs_tag2el_841[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ -}; -asn_SEQUENCE_specifics_t asn_SPC_UEAppLayerMeasConfig_ExtIEs_specs_841 = { - sizeof(struct UEAppLayerMeasConfig_ExtIEs), - offsetof(struct UEAppLayerMeasConfig_ExtIEs, _asn_ctx), - asn_MAP_UEAppLayerMeasConfig_ExtIEs_tag2el_841, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_UEAppLayerMeasConfig_ExtIEs = { - "UEAppLayerMeasConfig-ExtIEs", - "UEAppLayerMeasConfig-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_UEAppLayerMeasConfig_ExtIEs_tags_841, - sizeof(asn_DEF_UEAppLayerMeasConfig_ExtIEs_tags_841) - /sizeof(asn_DEF_UEAppLayerMeasConfig_ExtIEs_tags_841[0]), /* 1 */ - asn_DEF_UEAppLayerMeasConfig_ExtIEs_tags_841, /* Same as above */ - sizeof(asn_DEF_UEAppLayerMeasConfig_ExtIEs_tags_841) - /sizeof(asn_DEF_UEAppLayerMeasConfig_ExtIEs_tags_841[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_UEAppLayerMeasConfig_ExtIEs_841, - 3, /* Elements count */ - &asn_SPC_UEAppLayerMeasConfig_ExtIEs_specs_841 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_848 = { - sizeof(struct UESecurityCapabilities_ExtIEs__extensionValue), - offsetof(struct UESecurityCapabilities_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct UESecurityCapabilities_ExtIEs__extensionValue, present), - sizeof(((struct UESecurityCapabilities_ExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_848 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_848 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_UESecurityCapabilities_ExtIEs_845[] = { - { ATF_NOFLAGS, 0, offsetof(struct UESecurityCapabilities_ExtIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_846, memb_id_constraint_845 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct UESecurityCapabilities_ExtIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_847, memb_criticality_constraint_845 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct UESecurityCapabilities_ExtIEs, extensionValue), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_extensionValue_848, - 0, - { 0, &asn_PER_memb_extensionValue_constr_848, memb_extensionValue_constraint_845 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_UESecurityCapabilities_ExtIEs_tags_845[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_UESecurityCapabilities_ExtIEs_tag2el_845[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ -}; -asn_SEQUENCE_specifics_t asn_SPC_UESecurityCapabilities_ExtIEs_specs_845 = { - sizeof(struct UESecurityCapabilities_ExtIEs), - offsetof(struct UESecurityCapabilities_ExtIEs, _asn_ctx), - asn_MAP_UESecurityCapabilities_ExtIEs_tag2el_845, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_UESecurityCapabilities_ExtIEs = { - "UESecurityCapabilities-ExtIEs", - "UESecurityCapabilities-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_UESecurityCapabilities_ExtIEs_tags_845, - sizeof(asn_DEF_UESecurityCapabilities_ExtIEs_tags_845) - /sizeof(asn_DEF_UESecurityCapabilities_ExtIEs_tags_845[0]), /* 1 */ - asn_DEF_UESecurityCapabilities_ExtIEs_tags_845, /* Same as above */ - sizeof(asn_DEF_UESecurityCapabilities_ExtIEs_tags_845) - /sizeof(asn_DEF_UESecurityCapabilities_ExtIEs_tags_845[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_UESecurityCapabilities_ExtIEs_845, - 3, /* Elements count */ - &asn_SPC_UESecurityCapabilities_ExtIEs_specs_845 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_852 = { - sizeof(struct UE_Sidelink_Aggregate_MaximumBitRate_ExtIEs__extensionValue), - offsetof(struct UE_Sidelink_Aggregate_MaximumBitRate_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct UE_Sidelink_Aggregate_MaximumBitRate_ExtIEs__extensionValue, present), - sizeof(((struct UE_Sidelink_Aggregate_MaximumBitRate_ExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_852 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_852 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_UE_Sidelink_Aggregate_MaximumBitRate_ExtIEs_849[] = { - { ATF_NOFLAGS, 0, offsetof(struct UE_Sidelink_Aggregate_MaximumBitRate_ExtIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_850, memb_id_constraint_849 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct UE_Sidelink_Aggregate_MaximumBitRate_ExtIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_851, memb_criticality_constraint_849 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct UE_Sidelink_Aggregate_MaximumBitRate_ExtIEs, extensionValue), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_extensionValue_852, - 0, - { 0, &asn_PER_memb_extensionValue_constr_852, memb_extensionValue_constraint_849 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_UE_Sidelink_Aggregate_MaximumBitRate_ExtIEs_tags_849[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_UE_Sidelink_Aggregate_MaximumBitRate_ExtIEs_tag2el_849[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ -}; -asn_SEQUENCE_specifics_t asn_SPC_UE_Sidelink_Aggregate_MaximumBitRate_ExtIEs_specs_849 = { - sizeof(struct UE_Sidelink_Aggregate_MaximumBitRate_ExtIEs), - offsetof(struct UE_Sidelink_Aggregate_MaximumBitRate_ExtIEs, _asn_ctx), - asn_MAP_UE_Sidelink_Aggregate_MaximumBitRate_ExtIEs_tag2el_849, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_UE_Sidelink_Aggregate_MaximumBitRate_ExtIEs = { - "UE-Sidelink-Aggregate-MaximumBitRate-ExtIEs", - "UE-Sidelink-Aggregate-MaximumBitRate-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_UE_Sidelink_Aggregate_MaximumBitRate_ExtIEs_tags_849, - sizeof(asn_DEF_UE_Sidelink_Aggregate_MaximumBitRate_ExtIEs_tags_849) - /sizeof(asn_DEF_UE_Sidelink_Aggregate_MaximumBitRate_ExtIEs_tags_849[0]), /* 1 */ - asn_DEF_UE_Sidelink_Aggregate_MaximumBitRate_ExtIEs_tags_849, /* Same as above */ - sizeof(asn_DEF_UE_Sidelink_Aggregate_MaximumBitRate_ExtIEs_tags_849) - /sizeof(asn_DEF_UE_Sidelink_Aggregate_MaximumBitRate_ExtIEs_tags_849[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_UE_Sidelink_Aggregate_MaximumBitRate_ExtIEs_849, - 3, /* Elements count */ - &asn_SPC_UE_Sidelink_Aggregate_MaximumBitRate_ExtIEs_specs_849 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_856 = { - sizeof(struct UEsToBeResetList_Item_ExtIEs__extensionValue), - offsetof(struct UEsToBeResetList_Item_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct UEsToBeResetList_Item_ExtIEs__extensionValue, present), - sizeof(((struct UEsToBeResetList_Item_ExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_856 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_856 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_UEsToBeResetList_Item_ExtIEs_853[] = { - { ATF_NOFLAGS, 0, offsetof(struct UEsToBeResetList_Item_ExtIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_854, memb_id_constraint_853 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct UEsToBeResetList_Item_ExtIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_855, memb_criticality_constraint_853 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct UEsToBeResetList_Item_ExtIEs, extensionValue), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_extensionValue_856, - 0, - { 0, &asn_PER_memb_extensionValue_constr_856, memb_extensionValue_constraint_853 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_UEsToBeResetList_Item_ExtIEs_tags_853[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_UEsToBeResetList_Item_ExtIEs_tag2el_853[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ -}; -asn_SEQUENCE_specifics_t asn_SPC_UEsToBeResetList_Item_ExtIEs_specs_853 = { - sizeof(struct UEsToBeResetList_Item_ExtIEs), - offsetof(struct UEsToBeResetList_Item_ExtIEs, _asn_ctx), - asn_MAP_UEsToBeResetList_Item_ExtIEs_tag2el_853, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_UEsToBeResetList_Item_ExtIEs = { - "UEsToBeResetList-Item-ExtIEs", - "UEsToBeResetList-Item-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_UEsToBeResetList_Item_ExtIEs_tags_853, - sizeof(asn_DEF_UEsToBeResetList_Item_ExtIEs_tags_853) - /sizeof(asn_DEF_UEsToBeResetList_Item_ExtIEs_tags_853[0]), /* 1 */ - asn_DEF_UEsToBeResetList_Item_ExtIEs_tags_853, /* Same as above */ - sizeof(asn_DEF_UEsToBeResetList_Item_ExtIEs_tags_853) - /sizeof(asn_DEF_UEsToBeResetList_Item_ExtIEs_tags_853[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_UEsToBeResetList_Item_ExtIEs_853, - 3, /* Elements count */ - &asn_SPC_UEsToBeResetList_Item_ExtIEs_specs_853 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_860 = { - sizeof(struct ULandDLSharing_ExtIEs__extensionValue), - offsetof(struct ULandDLSharing_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct ULandDLSharing_ExtIEs__extensionValue, present), - sizeof(((struct ULandDLSharing_ExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_860 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_860 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ULandDLSharing_ExtIEs_857[] = { - { ATF_NOFLAGS, 0, offsetof(struct ULandDLSharing_ExtIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_858, memb_id_constraint_857 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct ULandDLSharing_ExtIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_859, memb_criticality_constraint_857 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ULandDLSharing_ExtIEs, extensionValue), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_extensionValue_860, - 0, - { 0, &asn_PER_memb_extensionValue_constr_860, memb_extensionValue_constraint_857 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_ULandDLSharing_ExtIEs_tags_857[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ULandDLSharing_ExtIEs_tag2el_857[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ULandDLSharing_ExtIEs_specs_857 = { - sizeof(struct ULandDLSharing_ExtIEs), - offsetof(struct ULandDLSharing_ExtIEs, _asn_ctx), - asn_MAP_ULandDLSharing_ExtIEs_tag2el_857, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ULandDLSharing_ExtIEs = { - "ULandDLSharing-ExtIEs", - "ULandDLSharing-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_ULandDLSharing_ExtIEs_tags_857, - sizeof(asn_DEF_ULandDLSharing_ExtIEs_tags_857) - /sizeof(asn_DEF_ULandDLSharing_ExtIEs_tags_857[0]), /* 1 */ - asn_DEF_ULandDLSharing_ExtIEs_tags_857, /* Same as above */ - sizeof(asn_DEF_ULandDLSharing_ExtIEs_tags_857) - /sizeof(asn_DEF_ULandDLSharing_ExtIEs_tags_857[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ULandDLSharing_ExtIEs_857, - 3, /* Elements count */ - &asn_SPC_ULandDLSharing_ExtIEs_specs_857 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_864 = { - sizeof(struct ULConfiguration_ExtIEs__extensionValue), - offsetof(struct ULConfiguration_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct ULConfiguration_ExtIEs__extensionValue, present), - sizeof(((struct ULConfiguration_ExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_864 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_864 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ULConfiguration_ExtIEs_861[] = { - { ATF_NOFLAGS, 0, offsetof(struct ULConfiguration_ExtIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_862, memb_id_constraint_861 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct ULConfiguration_ExtIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_863, memb_criticality_constraint_861 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ULConfiguration_ExtIEs, extensionValue), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_extensionValue_864, - 0, - { 0, &asn_PER_memb_extensionValue_constr_864, memb_extensionValue_constraint_861 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_ULConfiguration_ExtIEs_tags_861[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ULConfiguration_ExtIEs_tag2el_861[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ULConfiguration_ExtIEs_specs_861 = { - sizeof(struct ULConfiguration_ExtIEs), - offsetof(struct ULConfiguration_ExtIEs, _asn_ctx), - asn_MAP_ULConfiguration_ExtIEs_tag2el_861, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ULConfiguration_ExtIEs = { - "ULConfiguration-ExtIEs", - "ULConfiguration-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_ULConfiguration_ExtIEs_tags_861, - sizeof(asn_DEF_ULConfiguration_ExtIEs_tags_861) - /sizeof(asn_DEF_ULConfiguration_ExtIEs_tags_861[0]), /* 1 */ - asn_DEF_ULConfiguration_ExtIEs_tags_861, /* Same as above */ - sizeof(asn_DEF_ULConfiguration_ExtIEs_tags_861) - /sizeof(asn_DEF_ULConfiguration_ExtIEs_tags_861[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ULConfiguration_ExtIEs_861, - 3, /* Elements count */ - &asn_SPC_ULConfiguration_ExtIEs_specs_861 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_868 = { - sizeof(struct UL_HighInterferenceIndicationInfo_Item_ExtIEs__extensionValue), - offsetof(struct UL_HighInterferenceIndicationInfo_Item_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct UL_HighInterferenceIndicationInfo_Item_ExtIEs__extensionValue, present), - sizeof(((struct UL_HighInterferenceIndicationInfo_Item_ExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_868 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_868 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_UL_HighInterferenceIndicationInfo_Item_ExtIEs_865[] = { - { ATF_NOFLAGS, 0, offsetof(struct UL_HighInterferenceIndicationInfo_Item_ExtIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_866, memb_id_constraint_865 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct UL_HighInterferenceIndicationInfo_Item_ExtIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_867, memb_criticality_constraint_865 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct UL_HighInterferenceIndicationInfo_Item_ExtIEs, extensionValue), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_extensionValue_868, - 0, - { 0, &asn_PER_memb_extensionValue_constr_868, memb_extensionValue_constraint_865 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_UL_HighInterferenceIndicationInfo_Item_ExtIEs_tags_865[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_UL_HighInterferenceIndicationInfo_Item_ExtIEs_tag2el_865[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ -}; -asn_SEQUENCE_specifics_t asn_SPC_UL_HighInterferenceIndicationInfo_Item_ExtIEs_specs_865 = { - sizeof(struct UL_HighInterferenceIndicationInfo_Item_ExtIEs), - offsetof(struct UL_HighInterferenceIndicationInfo_Item_ExtIEs, _asn_ctx), - asn_MAP_UL_HighInterferenceIndicationInfo_Item_ExtIEs_tag2el_865, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_UL_HighInterferenceIndicationInfo_Item_ExtIEs = { - "UL-HighInterferenceIndicationInfo-Item-ExtIEs", - "UL-HighInterferenceIndicationInfo-Item-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_UL_HighInterferenceIndicationInfo_Item_ExtIEs_tags_865, - sizeof(asn_DEF_UL_HighInterferenceIndicationInfo_Item_ExtIEs_tags_865) - /sizeof(asn_DEF_UL_HighInterferenceIndicationInfo_Item_ExtIEs_tags_865[0]), /* 1 */ - asn_DEF_UL_HighInterferenceIndicationInfo_Item_ExtIEs_tags_865, /* Same as above */ - sizeof(asn_DEF_UL_HighInterferenceIndicationInfo_Item_ExtIEs_tags_865) - /sizeof(asn_DEF_UL_HighInterferenceIndicationInfo_Item_ExtIEs_tags_865[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_UL_HighInterferenceIndicationInfo_Item_ExtIEs_865, - 3, /* Elements count */ - &asn_SPC_UL_HighInterferenceIndicationInfo_Item_ExtIEs_specs_865 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_872 = { - sizeof(struct ULOnlySharing_ExtIEs__extensionValue), - offsetof(struct ULOnlySharing_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct ULOnlySharing_ExtIEs__extensionValue, present), - sizeof(((struct ULOnlySharing_ExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_872 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_872 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ULOnlySharing_ExtIEs_869[] = { - { ATF_NOFLAGS, 0, offsetof(struct ULOnlySharing_ExtIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_870, memb_id_constraint_869 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct ULOnlySharing_ExtIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_871, memb_criticality_constraint_869 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ULOnlySharing_ExtIEs, extensionValue), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_extensionValue_872, - 0, - { 0, &asn_PER_memb_extensionValue_constr_872, memb_extensionValue_constraint_869 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_ULOnlySharing_ExtIEs_tags_869[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ULOnlySharing_ExtIEs_tag2el_869[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ULOnlySharing_ExtIEs_specs_869 = { - sizeof(struct ULOnlySharing_ExtIEs), - offsetof(struct ULOnlySharing_ExtIEs, _asn_ctx), - asn_MAP_ULOnlySharing_ExtIEs_tag2el_869, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ULOnlySharing_ExtIEs = { - "ULOnlySharing-ExtIEs", - "ULOnlySharing-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_ULOnlySharing_ExtIEs_tags_869, - sizeof(asn_DEF_ULOnlySharing_ExtIEs_tags_869) - /sizeof(asn_DEF_ULOnlySharing_ExtIEs_tags_869[0]), /* 1 */ - asn_DEF_ULOnlySharing_ExtIEs_tags_869, /* Same as above */ - sizeof(asn_DEF_ULOnlySharing_ExtIEs_tags_869) - /sizeof(asn_DEF_ULOnlySharing_ExtIEs_tags_869[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ULOnlySharing_ExtIEs_869, - 3, /* Elements count */ - &asn_SPC_ULOnlySharing_ExtIEs_specs_869 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_876 = { - sizeof(struct UsableABSInformationFDD_ExtIEs__extensionValue), - offsetof(struct UsableABSInformationFDD_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct UsableABSInformationFDD_ExtIEs__extensionValue, present), - sizeof(((struct UsableABSInformationFDD_ExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_876 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_876 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_UsableABSInformationFDD_ExtIEs_873[] = { - { ATF_NOFLAGS, 0, offsetof(struct UsableABSInformationFDD_ExtIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_874, memb_id_constraint_873 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct UsableABSInformationFDD_ExtIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_875, memb_criticality_constraint_873 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct UsableABSInformationFDD_ExtIEs, extensionValue), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_extensionValue_876, - 0, - { 0, &asn_PER_memb_extensionValue_constr_876, memb_extensionValue_constraint_873 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_UsableABSInformationFDD_ExtIEs_tags_873[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_UsableABSInformationFDD_ExtIEs_tag2el_873[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ -}; -asn_SEQUENCE_specifics_t asn_SPC_UsableABSInformationFDD_ExtIEs_specs_873 = { - sizeof(struct UsableABSInformationFDD_ExtIEs), - offsetof(struct UsableABSInformationFDD_ExtIEs, _asn_ctx), - asn_MAP_UsableABSInformationFDD_ExtIEs_tag2el_873, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_UsableABSInformationFDD_ExtIEs = { - "UsableABSInformationFDD-ExtIEs", - "UsableABSInformationFDD-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_UsableABSInformationFDD_ExtIEs_tags_873, - sizeof(asn_DEF_UsableABSInformationFDD_ExtIEs_tags_873) - /sizeof(asn_DEF_UsableABSInformationFDD_ExtIEs_tags_873[0]), /* 1 */ - asn_DEF_UsableABSInformationFDD_ExtIEs_tags_873, /* Same as above */ - sizeof(asn_DEF_UsableABSInformationFDD_ExtIEs_tags_873) - /sizeof(asn_DEF_UsableABSInformationFDD_ExtIEs_tags_873[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_UsableABSInformationFDD_ExtIEs_873, - 3, /* Elements count */ - &asn_SPC_UsableABSInformationFDD_ExtIEs_specs_873 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_880 = { - sizeof(struct UsableABSInformationTDD_ExtIEs__extensionValue), - offsetof(struct UsableABSInformationTDD_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct UsableABSInformationTDD_ExtIEs__extensionValue, present), - sizeof(((struct UsableABSInformationTDD_ExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_880 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_880 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_UsableABSInformationTDD_ExtIEs_877[] = { - { ATF_NOFLAGS, 0, offsetof(struct UsableABSInformationTDD_ExtIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_878, memb_id_constraint_877 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct UsableABSInformationTDD_ExtIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_879, memb_criticality_constraint_877 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct UsableABSInformationTDD_ExtIEs, extensionValue), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_extensionValue_880, - 0, - { 0, &asn_PER_memb_extensionValue_constr_880, memb_extensionValue_constraint_877 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_UsableABSInformationTDD_ExtIEs_tags_877[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_UsableABSInformationTDD_ExtIEs_tag2el_877[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ -}; -asn_SEQUENCE_specifics_t asn_SPC_UsableABSInformationTDD_ExtIEs_specs_877 = { - sizeof(struct UsableABSInformationTDD_ExtIEs), - offsetof(struct UsableABSInformationTDD_ExtIEs, _asn_ctx), - asn_MAP_UsableABSInformationTDD_ExtIEs_tag2el_877, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_UsableABSInformationTDD_ExtIEs = { - "UsableABSInformationTDD-ExtIEs", - "UsableABSInformationTDD-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_UsableABSInformationTDD_ExtIEs_tags_877, - sizeof(asn_DEF_UsableABSInformationTDD_ExtIEs_tags_877) - /sizeof(asn_DEF_UsableABSInformationTDD_ExtIEs_tags_877[0]), /* 1 */ - asn_DEF_UsableABSInformationTDD_ExtIEs_tags_877, /* Same as above */ - sizeof(asn_DEF_UsableABSInformationTDD_ExtIEs_tags_877) - /sizeof(asn_DEF_UsableABSInformationTDD_ExtIEs_tags_877[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_UsableABSInformationTDD_ExtIEs_877, - 3, /* Elements count */ - &asn_SPC_UsableABSInformationTDD_ExtIEs_specs_877 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_884 = { - sizeof(struct V2XServicesAuthorized_ExtIEs__extensionValue), - offsetof(struct V2XServicesAuthorized_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct V2XServicesAuthorized_ExtIEs__extensionValue, present), - sizeof(((struct V2XServicesAuthorized_ExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_884 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_884 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_V2XServicesAuthorized_ExtIEs_881[] = { - { ATF_NOFLAGS, 0, offsetof(struct V2XServicesAuthorized_ExtIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_882, memb_id_constraint_881 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct V2XServicesAuthorized_ExtIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_883, memb_criticality_constraint_881 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct V2XServicesAuthorized_ExtIEs, extensionValue), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_extensionValue_884, - 0, - { 0, &asn_PER_memb_extensionValue_constr_884, memb_extensionValue_constraint_881 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_V2XServicesAuthorized_ExtIEs_tags_881[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_V2XServicesAuthorized_ExtIEs_tag2el_881[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ -}; -asn_SEQUENCE_specifics_t asn_SPC_V2XServicesAuthorized_ExtIEs_specs_881 = { - sizeof(struct V2XServicesAuthorized_ExtIEs), - offsetof(struct V2XServicesAuthorized_ExtIEs, _asn_ctx), - asn_MAP_V2XServicesAuthorized_ExtIEs_tag2el_881, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_V2XServicesAuthorized_ExtIEs = { - "V2XServicesAuthorized-ExtIEs", - "V2XServicesAuthorized-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_V2XServicesAuthorized_ExtIEs_tags_881, - sizeof(asn_DEF_V2XServicesAuthorized_ExtIEs_tags_881) - /sizeof(asn_DEF_V2XServicesAuthorized_ExtIEs_tags_881[0]), /* 1 */ - asn_DEF_V2XServicesAuthorized_ExtIEs_tags_881, /* Same as above */ - sizeof(asn_DEF_V2XServicesAuthorized_ExtIEs_tags_881) - /sizeof(asn_DEF_V2XServicesAuthorized_ExtIEs_tags_881[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_V2XServicesAuthorized_ExtIEs_881, - 3, /* Elements count */ - &asn_SPC_V2XServicesAuthorized_ExtIEs_specs_881 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_888 = { - sizeof(struct WidebandCQI_ExtIEs__extensionValue), - offsetof(struct WidebandCQI_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct WidebandCQI_ExtIEs__extensionValue, present), - sizeof(((struct WidebandCQI_ExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_888 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_888 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_WidebandCQI_ExtIEs_885[] = { - { ATF_NOFLAGS, 0, offsetof(struct WidebandCQI_ExtIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_886, memb_id_constraint_885 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct WidebandCQI_ExtIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_887, memb_criticality_constraint_885 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct WidebandCQI_ExtIEs, extensionValue), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_extensionValue_888, - 0, - { 0, &asn_PER_memb_extensionValue_constr_888, memb_extensionValue_constraint_885 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_WidebandCQI_ExtIEs_tags_885[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_WidebandCQI_ExtIEs_tag2el_885[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ -}; -asn_SEQUENCE_specifics_t asn_SPC_WidebandCQI_ExtIEs_specs_885 = { - sizeof(struct WidebandCQI_ExtIEs), - offsetof(struct WidebandCQI_ExtIEs, _asn_ctx), - asn_MAP_WidebandCQI_ExtIEs_tag2el_885, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_WidebandCQI_ExtIEs = { - "WidebandCQI-ExtIEs", - "WidebandCQI-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_WidebandCQI_ExtIEs_tags_885, - sizeof(asn_DEF_WidebandCQI_ExtIEs_tags_885) - /sizeof(asn_DEF_WidebandCQI_ExtIEs_tags_885[0]), /* 1 */ - asn_DEF_WidebandCQI_ExtIEs_tags_885, /* Same as above */ - sizeof(asn_DEF_WidebandCQI_ExtIEs_tags_885) - /sizeof(asn_DEF_WidebandCQI_ExtIEs_tags_885[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_WidebandCQI_ExtIEs_885, - 3, /* Elements count */ - &asn_SPC_WidebandCQI_ExtIEs_specs_885 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_892 = { - sizeof(struct WLANMeasurementConfiguration_ExtIEs__extensionValue), - offsetof(struct WLANMeasurementConfiguration_ExtIEs__extensionValue, _asn_ctx), - offsetof(struct WLANMeasurementConfiguration_ExtIEs__extensionValue, present), - sizeof(((struct WLANMeasurementConfiguration_ExtIEs__extensionValue *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_extensionValue_892 = { - "extensionValue", - "extensionValue", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_extensionValue_specs_892 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_WLANMeasurementConfiguration_ExtIEs_889[] = { - { ATF_NOFLAGS, 0, offsetof(struct WLANMeasurementConfiguration_ExtIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_890, memb_id_constraint_889 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct WLANMeasurementConfiguration_ExtIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_891, memb_criticality_constraint_889 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct WLANMeasurementConfiguration_ExtIEs, extensionValue), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_extensionValue_892, - 0, - { 0, &asn_PER_memb_extensionValue_constr_892, memb_extensionValue_constraint_889 }, - 0, 0, /* No default value */ - "extensionValue" - }, -}; -static const ber_tlv_tag_t asn_DEF_WLANMeasurementConfiguration_ExtIEs_tags_889[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_WLANMeasurementConfiguration_ExtIEs_tag2el_889[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ -}; -asn_SEQUENCE_specifics_t asn_SPC_WLANMeasurementConfiguration_ExtIEs_specs_889 = { - sizeof(struct WLANMeasurementConfiguration_ExtIEs), - offsetof(struct WLANMeasurementConfiguration_ExtIEs, _asn_ctx), - asn_MAP_WLANMeasurementConfiguration_ExtIEs_tag2el_889, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_WLANMeasurementConfiguration_ExtIEs = { - "WLANMeasurementConfiguration-ExtIEs", - "WLANMeasurementConfiguration-ExtIEs", - &asn_OP_SEQUENCE, - asn_DEF_WLANMeasurementConfiguration_ExtIEs_tags_889, - sizeof(asn_DEF_WLANMeasurementConfiguration_ExtIEs_tags_889) - /sizeof(asn_DEF_WLANMeasurementConfiguration_ExtIEs_tags_889[0]), /* 1 */ - asn_DEF_WLANMeasurementConfiguration_ExtIEs_tags_889, /* Same as above */ - sizeof(asn_DEF_WLANMeasurementConfiguration_ExtIEs_tags_889) - /sizeof(asn_DEF_WLANMeasurementConfiguration_ExtIEs_tags_889[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_WLANMeasurementConfiguration_ExtIEs_889, - 3, /* Elements count */ - &asn_SPC_WLANMeasurementConfiguration_ExtIEs_specs_889 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/ProtocolExtensionField.h b/e2sim/previous/ASN1c/ProtocolExtensionField.h deleted file mode 100644 index 339409d..0000000 --- a/e2sim/previous/ASN1c/ProtocolExtensionField.h +++ /dev/null @@ -1,5181 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-Containers" - * found in "../../asnFiles/X2AP-Containers.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _ProtocolExtensionField_H_ -#define _ProtocolExtensionField_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-ID.h" -#include "Criticality.h" -#include "ANY.h" -#include "asn_ioc.h" -#include "ManagementBasedMDTallowed.h" -#include "Presence.h" -#include "MDTPLMNList.h" -#include "UESidelinkAggregateMaximumBitRate.h" -#include "OPEN_TYPE.h" -#include "constr_CHOICE.h" -#include "constr_SEQUENCE.h" -#include "BearerType.h" -#include "ReceiveStatusOfULPDCPSDUsExtended.h" -#include "COUNTValueExtended.h" -#include "ReceiveStatusOfULPDCPSDUsPDCP-SNlength18.h" -#include "COUNTvaluePDCP-SNlength18.h" -#include "ABSInformation.h" -#include "InvokeIndication.h" -#include "SubframeAssignment.h" -#include "ExtendedULInterferenceOverloadInfo.h" -#include "CoMPInformation.h" -#include "DynamicDLTransmissionInformation.h" -#include "DeactivationIndication.h" -#include "CompositeAvailableCapacityGroup.h" -#include "ABS-Status.h" -#include "RSRPMRList.h" -#include "CSIReportList.h" -#include "CellReportingIndicator.h" -#include "Correlation-ID.h" -#include "GTPtunnelEndpoint.h" -#include "DL-Forwarding.h" -#include "RLCMode.h" -#include "PDCPSnLength.h" -#include "DuplicationActivation.h" -#include "LCID.h" -#include "SubscriberProfileIDforRFP.h" -#include "RLC-Status.h" -#include "NewDRBIDrequest.h" -#include "Packet-LossRate.h" -#include "EARFCNExtension.h" -#include "OffsetOfNbiotChannelNumberToEARFCN.h" -#include "NRS-NSSS-PowerOffset.h" -#include "NSSS-NumOccasionDifferentPrecoder.h" -#include "ExtendedBitRate.h" -#include "NRrestrictioninEPSasSecondaryRAT.h" -#include "CNTypeRestrictions.h" -#include "NRrestrictionin5GS.h" -#include "Time-UE-StayedInCell-EnhancedGranularity.h" -#include "Cause.h" -#include "M3Configuration.h" -#include "M4Configuration.h" -#include "M5Configuration.h" -#include "MDT-Location-Info.h" -#include "M6Configuration.h" -#include "M7Configuration.h" -#include "BluetoothMeasurementConfiguration.h" -#include "WLANMeasurementConfiguration.h" -#include "NRCGI.h" -#include "MeNBCoordinationAssistanceInformation.h" -#include "TAC.h" -#include "ProSeUEtoNetworkRelaying.h" -#include "DL-scheduling-PDCCH-CCE-usage.h" -#include "UL-scheduling-PDCCH-CCE-usage.h" -#include "EnhancedRNTP.h" -#include "UEID.h" -#include "Number-of-Antennaports.h" -#include "PRACH-Configuration.h" -#include "MBSFN-Subframe-Infolist.h" -#include "CSG-Id.h" -#include "MBMS-Service-Area-Identity-List.h" -#include "MultibandInfoList.h" -#include "FreqBandIndicatorPriority.h" -#include "BandwidthReducedSI.h" -#include "ProtectedEUTRAResourceIndication.h" -#include "ECGI.h" -#include "SgNBCoordinationAssistanceInformation.h" -#include "AdditionalSpecialSubframe-Info.h" -#include "AdditionalSpecialSubframeExtension-Info.h" -#include "MDT-Configuration.h" -#include "UEAppLayerMeasConfig.h" -#include "ServiceType.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum UE_ContextInformation_ExtIEs__extensionValue_PR { - UE_ContextInformation_ExtIEs__extensionValue_PR_NOTHING, /* No components present */ - UE_ContextInformation_ExtIEs__extensionValue_PR_ManagementBasedMDTallowed, - UE_ContextInformation_ExtIEs__extensionValue_PR_MDTPLMNList, - UE_ContextInformation_ExtIEs__extensionValue_PR_UESidelinkAggregateMaximumBitRate -} UE_ContextInformation_ExtIEs__extensionValue_PR; -typedef enum E_RABs_ToBeSetup_ItemExtIEs__extensionValue_PR { - E_RABs_ToBeSetup_ItemExtIEs__extensionValue_PR_NOTHING, /* No components present */ - E_RABs_ToBeSetup_ItemExtIEs__extensionValue_PR_BearerType -} E_RABs_ToBeSetup_ItemExtIEs__extensionValue_PR; -typedef enum UE_ContextReferenceAtSeNB_ItemExtIEs__extensionValue_PR { - UE_ContextReferenceAtSeNB_ItemExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} UE_ContextReferenceAtSeNB_ItemExtIEs__extensionValue_PR; -typedef enum UE_ContextReferenceAtWT_ItemExtIEs__extensionValue_PR { - UE_ContextReferenceAtWT_ItemExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} UE_ContextReferenceAtWT_ItemExtIEs__extensionValue_PR; -typedef enum UE_ContextReferenceAtSgNB_ItemExtIEs__extensionValue_PR { - UE_ContextReferenceAtSgNB_ItemExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} UE_ContextReferenceAtSgNB_ItemExtIEs__extensionValue_PR; -typedef enum E_RABs_Admitted_Item_ExtIEs__extensionValue_PR { - E_RABs_Admitted_Item_ExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} E_RABs_Admitted_Item_ExtIEs__extensionValue_PR; -typedef enum E_RABs_SubjectToStatusTransfer_ItemExtIEs__extensionValue_PR { - E_RABs_SubjectToStatusTransfer_ItemExtIEs__extensionValue_PR_NOTHING, /* No components present */ - E_RABs_SubjectToStatusTransfer_ItemExtIEs__extensionValue_PR_ReceiveStatusOfULPDCPSDUsExtended, - E_RABs_SubjectToStatusTransfer_ItemExtIEs__extensionValue_PR_COUNTValueExtended, - E_RABs_SubjectToStatusTransfer_ItemExtIEs__extensionValue_PR_ReceiveStatusOfULPDCPSDUsPDCP_SNlength18, - E_RABs_SubjectToStatusTransfer_ItemExtIEs__extensionValue_PR_COUNTvaluePDCP_SNlength18 -} E_RABs_SubjectToStatusTransfer_ItemExtIEs__extensionValue_PR; -typedef enum CellInformation_Item_ExtIEs__extensionValue_PR { - CellInformation_Item_ExtIEs__extensionValue_PR_NOTHING, /* No components present */ - CellInformation_Item_ExtIEs__extensionValue_PR_ABSInformation, - CellInformation_Item_ExtIEs__extensionValue_PR_InvokeIndication, - CellInformation_Item_ExtIEs__extensionValue_PR_SubframeAssignment, - CellInformation_Item_ExtIEs__extensionValue_PR_ExtendedULInterferenceOverloadInfo, - CellInformation_Item_ExtIEs__extensionValue_PR_CoMPInformation, - CellInformation_Item_ExtIEs__extensionValue_PR_DynamicDLTransmissionInformation -} CellInformation_Item_ExtIEs__extensionValue_PR; -typedef enum ServedCellsToModify_Item_ExtIEs__extensionValue_PR { - ServedCellsToModify_Item_ExtIEs__extensionValue_PR_NOTHING, /* No components present */ - ServedCellsToModify_Item_ExtIEs__extensionValue_PR_DeactivationIndication -} ServedCellsToModify_Item_ExtIEs__extensionValue_PR; -typedef enum CellToReport_Item_ExtIEs__extensionValue_PR { - CellToReport_Item_ExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} CellToReport_Item_ExtIEs__extensionValue_PR; -typedef enum MeasurementInitiationResult_Item_ExtIEs__extensionValue_PR { - MeasurementInitiationResult_Item_ExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} MeasurementInitiationResult_Item_ExtIEs__extensionValue_PR; -typedef enum MeasurementFailureCause_Item_ExtIEs__extensionValue_PR { - MeasurementFailureCause_Item_ExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} MeasurementFailureCause_Item_ExtIEs__extensionValue_PR; -typedef enum CompleteFailureCauseInformation_Item_ExtIEs__extensionValue_PR { - CompleteFailureCauseInformation_Item_ExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} CompleteFailureCauseInformation_Item_ExtIEs__extensionValue_PR; -typedef enum CellMeasurementResult_Item_ExtIEs__extensionValue_PR { - CellMeasurementResult_Item_ExtIEs__extensionValue_PR_NOTHING, /* No components present */ - CellMeasurementResult_Item_ExtIEs__extensionValue_PR_CompositeAvailableCapacityGroup, - CellMeasurementResult_Item_ExtIEs__extensionValue_PR_ABS_Status, - CellMeasurementResult_Item_ExtIEs__extensionValue_PR_RSRPMRList, - CellMeasurementResult_Item_ExtIEs__extensionValue_PR_CSIReportList, - CellMeasurementResult_Item_ExtIEs__extensionValue_PR_CellReportingIndicator -} CellMeasurementResult_Item_ExtIEs__extensionValue_PR; -typedef enum ServedCellsToActivate_Item_ExtIEs__extensionValue_PR { - ServedCellsToActivate_Item_ExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} ServedCellsToActivate_Item_ExtIEs__extensionValue_PR; -typedef enum ActivatedCellList_Item_ExtIEs__extensionValue_PR { - ActivatedCellList_Item_ExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} ActivatedCellList_Item_ExtIEs__extensionValue_PR; -typedef enum RNL_Header_Item_ExtIEs__extensionValue_PR { - RNL_Header_Item_ExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} RNL_Header_Item_ExtIEs__extensionValue_PR; -typedef enum E_RABs_ToBeAdded_Item_SCG_BearerExtIEs__extensionValue_PR { - E_RABs_ToBeAdded_Item_SCG_BearerExtIEs__extensionValue_PR_NOTHING, /* No components present */ - E_RABs_ToBeAdded_Item_SCG_BearerExtIEs__extensionValue_PR_Correlation_ID -} E_RABs_ToBeAdded_Item_SCG_BearerExtIEs__extensionValue_PR; -typedef enum E_RABs_ToBeAdded_Item_Split_BearerExtIEs__extensionValue_PR { - E_RABs_ToBeAdded_Item_Split_BearerExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} E_RABs_ToBeAdded_Item_Split_BearerExtIEs__extensionValue_PR; -typedef enum E_RABs_Admitted_ToBeAdded_Item_SCG_BearerExtIEs__extensionValue_PR { - E_RABs_Admitted_ToBeAdded_Item_SCG_BearerExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} E_RABs_Admitted_ToBeAdded_Item_SCG_BearerExtIEs__extensionValue_PR; -typedef enum E_RABs_Admitted_ToBeAdded_Item_Split_BearerExtIEs__extensionValue_PR { - E_RABs_Admitted_ToBeAdded_Item_Split_BearerExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} E_RABs_Admitted_ToBeAdded_Item_Split_BearerExtIEs__extensionValue_PR; -typedef enum ResponseInformationSeNBReconfComp_SuccessItemExtIEs__extensionValue_PR { - ResponseInformationSeNBReconfComp_SuccessItemExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} ResponseInformationSeNBReconfComp_SuccessItemExtIEs__extensionValue_PR; -typedef enum ResponseInformationSeNBReconfComp_RejectByMeNBItemExtIEs__extensionValue_PR { - ResponseInformationSeNBReconfComp_RejectByMeNBItemExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} ResponseInformationSeNBReconfComp_RejectByMeNBItemExtIEs__extensionValue_PR; -typedef enum UE_ContextInformationSeNBModReqExtIEs__extensionValue_PR { - UE_ContextInformationSeNBModReqExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} UE_ContextInformationSeNBModReqExtIEs__extensionValue_PR; -typedef enum E_RABs_ToBeAdded_ModReqItem_SCG_BearerExtIEs__extensionValue_PR { - E_RABs_ToBeAdded_ModReqItem_SCG_BearerExtIEs__extensionValue_PR_NOTHING, /* No components present */ - E_RABs_ToBeAdded_ModReqItem_SCG_BearerExtIEs__extensionValue_PR_Correlation_ID -} E_RABs_ToBeAdded_ModReqItem_SCG_BearerExtIEs__extensionValue_PR; -typedef enum E_RABs_ToBeAdded_ModReqItem_Split_BearerExtIEs__extensionValue_PR { - E_RABs_ToBeAdded_ModReqItem_Split_BearerExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} E_RABs_ToBeAdded_ModReqItem_Split_BearerExtIEs__extensionValue_PR; -typedef enum E_RABs_ToBeModified_ModReqItem_SCG_BearerExtIEs__extensionValue_PR { - E_RABs_ToBeModified_ModReqItem_SCG_BearerExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} E_RABs_ToBeModified_ModReqItem_SCG_BearerExtIEs__extensionValue_PR; -typedef enum E_RABs_ToBeModified_ModReqItem_Split_BearerExtIEs__extensionValue_PR { - E_RABs_ToBeModified_ModReqItem_Split_BearerExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} E_RABs_ToBeModified_ModReqItem_Split_BearerExtIEs__extensionValue_PR; -typedef enum E_RABs_ToBeReleased_ModReqItem_SCG_BearerExtIEs__extensionValue_PR { - E_RABs_ToBeReleased_ModReqItem_SCG_BearerExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} E_RABs_ToBeReleased_ModReqItem_SCG_BearerExtIEs__extensionValue_PR; -typedef enum E_RABs_ToBeReleased_ModReqItem_Split_BearerExtIEs__extensionValue_PR { - E_RABs_ToBeReleased_ModReqItem_Split_BearerExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} E_RABs_ToBeReleased_ModReqItem_Split_BearerExtIEs__extensionValue_PR; -typedef enum E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_BearerExtIEs__extensionValue_PR { - E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_BearerExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_BearerExtIEs__extensionValue_PR; -typedef enum E_RABs_Admitted_ToBeAdded_ModAckItem_Split_BearerExtIEs__extensionValue_PR { - E_RABs_Admitted_ToBeAdded_ModAckItem_Split_BearerExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} E_RABs_Admitted_ToBeAdded_ModAckItem_Split_BearerExtIEs__extensionValue_PR; -typedef enum E_RABs_Admitted_ToBeModified_ModAckItem_SCG_BearerExtIEs__extensionValue_PR { - E_RABs_Admitted_ToBeModified_ModAckItem_SCG_BearerExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} E_RABs_Admitted_ToBeModified_ModAckItem_SCG_BearerExtIEs__extensionValue_PR; -typedef enum E_RABs_Admitted_ToBeModified_ModAckItem_Split_BearerExtIEs__extensionValue_PR { - E_RABs_Admitted_ToBeModified_ModAckItem_Split_BearerExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} E_RABs_Admitted_ToBeModified_ModAckItem_Split_BearerExtIEs__extensionValue_PR; -typedef enum E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_BearerExtIEs__extensionValue_PR { - E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_BearerExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_BearerExtIEs__extensionValue_PR; -typedef enum E_RABs_Admitted_ToBeReleased_ModAckItem_Split_BearerExtIEs__extensionValue_PR { - E_RABs_Admitted_ToBeReleased_ModAckItem_Split_BearerExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} E_RABs_Admitted_ToBeReleased_ModAckItem_Split_BearerExtIEs__extensionValue_PR; -typedef enum E_RABs_ToBeReleased_ModReqdItemExtIEs__extensionValue_PR { - E_RABs_ToBeReleased_ModReqdItemExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} E_RABs_ToBeReleased_ModReqdItemExtIEs__extensionValue_PR; -typedef enum E_RABs_ToBeReleased_RelReqItem_SCG_BearerExtIEs__extensionValue_PR { - E_RABs_ToBeReleased_RelReqItem_SCG_BearerExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} E_RABs_ToBeReleased_RelReqItem_SCG_BearerExtIEs__extensionValue_PR; -typedef enum E_RABs_ToBeReleased_RelReqItem_Split_BearerExtIEs__extensionValue_PR { - E_RABs_ToBeReleased_RelReqItem_Split_BearerExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} E_RABs_ToBeReleased_RelReqItem_Split_BearerExtIEs__extensionValue_PR; -typedef enum E_RABs_ToBeReleased_RelConfItem_SCG_BearerExtIEs__extensionValue_PR { - E_RABs_ToBeReleased_RelConfItem_SCG_BearerExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} E_RABs_ToBeReleased_RelConfItem_SCG_BearerExtIEs__extensionValue_PR; -typedef enum E_RABs_ToBeReleased_RelConfItem_Split_BearerExtIEs__extensionValue_PR { - E_RABs_ToBeReleased_RelConfItem_Split_BearerExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} E_RABs_ToBeReleased_RelConfItem_Split_BearerExtIEs__extensionValue_PR; -typedef enum E_RABs_SubjectToCounterCheckItemExtIEs__extensionValue_PR { - E_RABs_SubjectToCounterCheckItemExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} E_RABs_SubjectToCounterCheckItemExtIEs__extensionValue_PR; -typedef enum UE_ContextInformationRetrieve_ExtIEs__extensionValue_PR { - UE_ContextInformationRetrieve_ExtIEs__extensionValue_PR_NOTHING, /* No components present */ - UE_ContextInformationRetrieve_ExtIEs__extensionValue_PR_UESidelinkAggregateMaximumBitRate -} UE_ContextInformationRetrieve_ExtIEs__extensionValue_PR; -typedef enum E_RABs_ToBeSetupRetrieve_ItemExtIEs__extensionValue_PR { - E_RABs_ToBeSetupRetrieve_ItemExtIEs__extensionValue_PR_NOTHING, /* No components present */ - E_RABs_ToBeSetupRetrieve_ItemExtIEs__extensionValue_PR_GTPtunnelEndpoint, - E_RABs_ToBeSetupRetrieve_ItemExtIEs__extensionValue_PR_DL_Forwarding -} E_RABs_ToBeSetupRetrieve_ItemExtIEs__extensionValue_PR; -typedef enum E_RABs_ToBeAdded_SgNBAddReq_ItemExtIEs__extensionValue_PR { - E_RABs_ToBeAdded_SgNBAddReq_ItemExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} E_RABs_ToBeAdded_SgNBAddReq_ItemExtIEs__extensionValue_PR; -typedef enum E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresentExtIEs__extensionValue_PR { - E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresentExtIEs__extensionValue_PR_NOTHING, /* No components present */ - E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresentExtIEs__extensionValue_PR_RLCMode -} E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresentExtIEs__extensionValue_PR; -typedef enum E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR { - E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR_NOTHING, /* No components present */ - E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR_PDCPSnLength, - E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR_DuplicationActivation -} E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR; -typedef enum E_RABs_ToBeAdded_SgNBAddReqAck_ItemExtIEs__extensionValue_PR { - E_RABs_ToBeAdded_SgNBAddReqAck_ItemExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} E_RABs_ToBeAdded_SgNBAddReqAck_ItemExtIEs__extensionValue_PR; -typedef enum E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresentExtIEs__extensionValue_PR { - E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresentExtIEs__extensionValue_PR_NOTHING, /* No components present */ - E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresentExtIEs__extensionValue_PR_PDCPSnLength -} E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresentExtIEs__extensionValue_PR; -typedef enum E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR { - E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR_NOTHING, /* No components present */ - E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR_LCID -} E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR; -typedef enum ResponseInformationSgNBReconfComp_SuccessItemExtIEs__extensionValue_PR { - ResponseInformationSgNBReconfComp_SuccessItemExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} ResponseInformationSgNBReconfComp_SuccessItemExtIEs__extensionValue_PR; -typedef enum ResponseInformationSgNBReconfComp_RejectByMeNBItemExtIEs__extensionValue_PR { - ResponseInformationSgNBReconfComp_RejectByMeNBItemExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} ResponseInformationSgNBReconfComp_RejectByMeNBItemExtIEs__extensionValue_PR; -typedef enum UE_ContextInformationSgNBModReqExtIEs__extensionValue_PR { - UE_ContextInformationSgNBModReqExtIEs__extensionValue_PR_NOTHING, /* No components present */ - UE_ContextInformationSgNBModReqExtIEs__extensionValue_PR_SubscriberProfileIDforRFP -} UE_ContextInformationSgNBModReqExtIEs__extensionValue_PR; -typedef enum E_RABs_ToBeAdded_SgNBModReq_ItemExtIEs__extensionValue_PR { - E_RABs_ToBeAdded_SgNBModReq_ItemExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} E_RABs_ToBeAdded_SgNBModReq_ItemExtIEs__extensionValue_PR; -typedef enum E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresentExtIEs__extensionValue_PR { - E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresentExtIEs__extensionValue_PR_NOTHING, /* No components present */ - E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresentExtIEs__extensionValue_PR_RLCMode -} E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresentExtIEs__extensionValue_PR; -typedef enum E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR { - E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR_NOTHING, /* No components present */ - E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR_PDCPSnLength, - E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR_DuplicationActivation -} E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR; -typedef enum E_RABs_ToBeModified_SgNBModReq_ItemExtIEs__extensionValue_PR { - E_RABs_ToBeModified_SgNBModReq_ItemExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} E_RABs_ToBeModified_SgNBModReq_ItemExtIEs__extensionValue_PR; -typedef enum E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresentExtIEs__extensionValue_PR { - E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresentExtIEs__extensionValue_PR_NOTHING, /* No components present */ - E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresentExtIEs__extensionValue_PR_RLC_Status -} E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresentExtIEs__extensionValue_PR; -typedef enum E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR { - E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR_NOTHING, /* No components present */ - E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR_PDCPSnLength, - E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR_GTPtunnelEndpoint -} E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR; -typedef enum E_RABs_ToBeReleased_SgNBModReq_ItemExtIEs__extensionValue_PR { - E_RABs_ToBeReleased_SgNBModReq_ItemExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} E_RABs_ToBeReleased_SgNBModReq_ItemExtIEs__extensionValue_PR; -typedef enum E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresentExtIEs__extensionValue_PR { - E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresentExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresentExtIEs__extensionValue_PR; -typedef enum E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR { - E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR; -typedef enum E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemExtIEs__extensionValue_PR { - E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemExtIEs__extensionValue_PR; -typedef enum E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresentExtIEs__extensionValue_PR { - E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresentExtIEs__extensionValue_PR_NOTHING, /* No components present */ - E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresentExtIEs__extensionValue_PR_PDCPSnLength -} E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresentExtIEs__extensionValue_PR; -typedef enum E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR { - E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR_NOTHING, /* No components present */ - E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR_LCID -} E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR; -typedef enum E_RABs_ToBeAdded_SgNBModAck_ItemExtIEs__extensionValue_PR { - E_RABs_ToBeAdded_SgNBModAck_ItemExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} E_RABs_ToBeAdded_SgNBModAck_ItemExtIEs__extensionValue_PR; -typedef enum E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresentExtIEs__extensionValue_PR { - E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresentExtIEs__extensionValue_PR_NOTHING, /* No components present */ - E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresentExtIEs__extensionValue_PR_PDCPSnLength -} E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresentExtIEs__extensionValue_PR; -typedef enum E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR { - E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR_NOTHING, /* No components present */ - E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR_GTPtunnelEndpoint, - E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR_RLC_Status -} E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR; -typedef enum E_RABs_ToBeReleased_SgNBModAck_ItemExtIEs__extensionValue_PR { - E_RABs_ToBeReleased_SgNBModAck_ItemExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} E_RABs_ToBeReleased_SgNBModAck_ItemExtIEs__extensionValue_PR; -typedef enum E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresentExtIEs__extensionValue_PR { - E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresentExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresentExtIEs__extensionValue_PR; -typedef enum E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR { - E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR; -typedef enum E_RABs_ToBeReleased_SgNBModReqd_ItemExtIEs__extensionValue_PR { - E_RABs_ToBeReleased_SgNBModReqd_ItemExtIEs__extensionValue_PR_NOTHING, /* No components present */ - E_RABs_ToBeReleased_SgNBModReqd_ItemExtIEs__extensionValue_PR_RLCMode -} E_RABs_ToBeReleased_SgNBModReqd_ItemExtIEs__extensionValue_PR; -typedef enum E_RABs_ToBeModified_SgNBModReqd_ItemExtIEs__extensionValue_PR { - E_RABs_ToBeModified_SgNBModReqd_ItemExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} E_RABs_ToBeModified_SgNBModReqd_ItemExtIEs__extensionValue_PR; -typedef enum E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresentExtIEs__extensionValue_PR { - E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresentExtIEs__extensionValue_PR_NOTHING, /* No components present */ - E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresentExtIEs__extensionValue_PR_PDCPSnLength, - E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresentExtIEs__extensionValue_PR_NewDRBIDrequest -} E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresentExtIEs__extensionValue_PR; -typedef enum E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR { - E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR_NOTHING, /* No components present */ - E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR_RLC_Status, - E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR_LCID -} E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR; -typedef enum E_RABs_AdmittedToBeModified_SgNBModConf_ItemExtIEs__extensionValue_PR { - E_RABs_AdmittedToBeModified_SgNBModConf_ItemExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} E_RABs_AdmittedToBeModified_SgNBModConf_ItemExtIEs__extensionValue_PR; -typedef enum E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresentExtIEs__extensionValue_PR { - E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresentExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresentExtIEs__extensionValue_PR; -typedef enum E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR { - E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR_NOTHING, /* No components present */ - E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR_PDCPSnLength -} E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR; -typedef enum E_RABs_ToBeReleased_SgNBRelReq_ItemExtIEs__extensionValue_PR { - E_RABs_ToBeReleased_SgNBRelReq_ItemExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} E_RABs_ToBeReleased_SgNBRelReq_ItemExtIEs__extensionValue_PR; -typedef enum E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresentExtIEs__extensionValue_PR { - E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresentExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresentExtIEs__extensionValue_PR; -typedef enum E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR { - E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR; -typedef enum E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemExtIEs__extensionValue_PR { - E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemExtIEs__extensionValue_PR; -typedef enum E_RABs_ToBeReleased_SgNBRelReqd_ItemExtIEs__extensionValue_PR { - E_RABs_ToBeReleased_SgNBRelReqd_ItemExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} E_RABs_ToBeReleased_SgNBRelReqd_ItemExtIEs__extensionValue_PR; -typedef enum E_RABs_ToBeReleased_SgNBRelConf_ItemExtIEs__extensionValue_PR { - E_RABs_ToBeReleased_SgNBRelConf_ItemExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} E_RABs_ToBeReleased_SgNBRelConf_ItemExtIEs__extensionValue_PR; -typedef enum E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresentExtIEs__extensionValue_PR { - E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresentExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresentExtIEs__extensionValue_PR; -typedef enum E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR { - E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR; -typedef enum E_RABs_SubjectToSgNBCounterCheck_ItemExtIEs__extensionValue_PR { - E_RABs_SubjectToSgNBCounterCheck_ItemExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} E_RABs_SubjectToSgNBCounterCheck_ItemExtIEs__extensionValue_PR; -typedef enum E_RABs_ToBeReleased_SgNBChaConf_ItemExtIEs__extensionValue_PR { - E_RABs_ToBeReleased_SgNBChaConf_ItemExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} E_RABs_ToBeReleased_SgNBChaConf_ItemExtIEs__extensionValue_PR; -typedef enum E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresentExtIEs__extensionValue_PR { - E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresentExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresentExtIEs__extensionValue_PR; -typedef enum E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR { - E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR; -typedef enum ServedEUTRAcellsENDCX2Management_ExtIEs__extensionValue_PR { - ServedEUTRAcellsENDCX2Management_ExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} ServedEUTRAcellsENDCX2Management_ExtIEs__extensionValue_PR; -typedef enum En_gNBServedCells_ExtIEs__extensionValue_PR { - En_gNBServedCells_ExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} En_gNBServedCells_ExtIEs__extensionValue_PR; -typedef enum ServedNRCell_Information_ExtIEs__extensionValue_PR { - ServedNRCell_Information_ExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} ServedNRCell_Information_ExtIEs__extensionValue_PR; -typedef enum FDD_InfoServedNRCell_Information_ExtIEs__extensionValue_PR { - FDD_InfoServedNRCell_Information_ExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} FDD_InfoServedNRCell_Information_ExtIEs__extensionValue_PR; -typedef enum FDD_InfoNeighbourServedNRCell_Information_ExtIEs__extensionValue_PR { - FDD_InfoNeighbourServedNRCell_Information_ExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} FDD_InfoNeighbourServedNRCell_Information_ExtIEs__extensionValue_PR; -typedef enum TDD_InfoServedNRCell_Information_ExtIEs__extensionValue_PR { - TDD_InfoServedNRCell_Information_ExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} TDD_InfoServedNRCell_Information_ExtIEs__extensionValue_PR; -typedef enum TDD_InfoNeighbourServedNRCell_Information_ExtIEs__extensionValue_PR { - TDD_InfoNeighbourServedNRCell_Information_ExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} TDD_InfoNeighbourServedNRCell_Information_ExtIEs__extensionValue_PR; -typedef enum NRNeighbour_Information_ExtIEs__extensionValue_PR { - NRNeighbour_Information_ExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} NRNeighbour_Information_ExtIEs__extensionValue_PR; -typedef enum Limited_list_ExtIEs__extensionValue_PR { - Limited_list_ExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} Limited_list_ExtIEs__extensionValue_PR; -typedef enum ServedEUTRAcellsToModifyListENDCConfUpd_ExtIEs__extensionValue_PR { - ServedEUTRAcellsToModifyListENDCConfUpd_ExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} ServedEUTRAcellsToModifyListENDCConfUpd_ExtIEs__extensionValue_PR; -typedef enum ServedNRCellsToModify_Item_ExtIEs__extensionValue_PR { - ServedNRCellsToModify_Item_ExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} ServedNRCellsToModify_Item_ExtIEs__extensionValue_PR; -typedef enum ServedNRCellsToActivate_Item_ExtIEs__extensionValue_PR { - ServedNRCellsToActivate_Item_ExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} ServedNRCellsToActivate_Item_ExtIEs__extensionValue_PR; -typedef enum ActivatedNRCellList_Item_ExtIEs__extensionValue_PR { - ActivatedNRCellList_Item_ExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} ActivatedNRCellList_Item_ExtIEs__extensionValue_PR; -typedef enum E_RABs_DataForwardingAddress_ItemExtIEs__extensionValue_PR { - E_RABs_DataForwardingAddress_ItemExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} E_RABs_DataForwardingAddress_ItemExtIEs__extensionValue_PR; -typedef enum ABSInformationFDD_ExtIEs__extensionValue_PR { - ABSInformationFDD_ExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} ABSInformationFDD_ExtIEs__extensionValue_PR; -typedef enum ABSInformationTDD_ExtIEs__extensionValue_PR { - ABSInformationTDD_ExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} ABSInformationTDD_ExtIEs__extensionValue_PR; -typedef enum ABS_Status_ExtIEs__extensionValue_PR { - ABS_Status_ExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} ABS_Status_ExtIEs__extensionValue_PR; -typedef enum AdditionalSpecialSubframe_Info_ExtIEs__extensionValue_PR { - AdditionalSpecialSubframe_Info_ExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} AdditionalSpecialSubframe_Info_ExtIEs__extensionValue_PR; -typedef enum AdditionalSpecialSubframeExtension_Info_ExtIEs__extensionValue_PR { - AdditionalSpecialSubframeExtension_Info_ExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} AdditionalSpecialSubframeExtension_Info_ExtIEs__extensionValue_PR; -typedef enum AllocationAndRetentionPriority_ExtIEs__extensionValue_PR { - AllocationAndRetentionPriority_ExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} AllocationAndRetentionPriority_ExtIEs__extensionValue_PR; -typedef enum AS_SecurityInformation_ExtIEs__extensionValue_PR { - AS_SecurityInformation_ExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} AS_SecurityInformation_ExtIEs__extensionValue_PR; -typedef enum BluetoothMeasurementConfiguration_ExtIEs__extensionValue_PR { - BluetoothMeasurementConfiguration_ExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} BluetoothMeasurementConfiguration_ExtIEs__extensionValue_PR; -typedef enum CellBasedMDT_ExtIEs__extensionValue_PR { - CellBasedMDT_ExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} CellBasedMDT_ExtIEs__extensionValue_PR; -typedef enum CellBasedQMC_ExtIEs__extensionValue_PR { - CellBasedQMC_ExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} CellBasedQMC_ExtIEs__extensionValue_PR; -typedef enum CellReplacingInfo_ExtIEs__extensionValue_PR { - CellReplacingInfo_ExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} CellReplacingInfo_ExtIEs__extensionValue_PR; -typedef enum CellType_ExtIEs__extensionValue_PR { - CellType_ExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} CellType_ExtIEs__extensionValue_PR; -typedef enum CNTypeRestrictionsItem_ExtIEs__extensionValue_PR { - CNTypeRestrictionsItem_ExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} CNTypeRestrictionsItem_ExtIEs__extensionValue_PR; -typedef enum CoMPHypothesisSetItem_ExtIEs__extensionValue_PR { - CoMPHypothesisSetItem_ExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} CoMPHypothesisSetItem_ExtIEs__extensionValue_PR; -typedef enum CoMPInformation_ExtIEs__extensionValue_PR { - CoMPInformation_ExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} CoMPInformation_ExtIEs__extensionValue_PR; -typedef enum CoMPInformationItem_ExtIEs__extensionValue_PR { - CoMPInformationItem_ExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} CoMPInformationItem_ExtIEs__extensionValue_PR; -typedef enum CoMPInformationStartTime_ExtIEs__extensionValue_PR { - CoMPInformationStartTime_ExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} CoMPInformationStartTime_ExtIEs__extensionValue_PR; -typedef enum CompositeAvailableCapacity_ExtIEs__extensionValue_PR { - CompositeAvailableCapacity_ExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} CompositeAvailableCapacity_ExtIEs__extensionValue_PR; -typedef enum CompositeAvailableCapacityGroup_ExtIEs__extensionValue_PR { - CompositeAvailableCapacityGroup_ExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} CompositeAvailableCapacityGroup_ExtIEs__extensionValue_PR; -typedef enum COUNTvalue_ExtIEs__extensionValue_PR { - COUNTvalue_ExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} COUNTvalue_ExtIEs__extensionValue_PR; -typedef enum COUNTValueExtended_ExtIEs__extensionValue_PR { - COUNTValueExtended_ExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} COUNTValueExtended_ExtIEs__extensionValue_PR; -typedef enum COUNTvaluePDCP_SNlength18_ExtIEs__extensionValue_PR { - COUNTvaluePDCP_SNlength18_ExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} COUNTvaluePDCP_SNlength18_ExtIEs__extensionValue_PR; -typedef enum CriticalityDiagnostics_ExtIEs__extensionValue_PR { - CriticalityDiagnostics_ExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} CriticalityDiagnostics_ExtIEs__extensionValue_PR; -typedef enum CriticalityDiagnostics_IE_List_ExtIEs__extensionValue_PR { - CriticalityDiagnostics_IE_List_ExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} CriticalityDiagnostics_IE_List_ExtIEs__extensionValue_PR; -typedef enum CSIReportList_ExtIEs__extensionValue_PR { - CSIReportList_ExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} CSIReportList_ExtIEs__extensionValue_PR; -typedef enum CSIReportPerCSIProcess_ExtIEs__extensionValue_PR { - CSIReportPerCSIProcess_ExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} CSIReportPerCSIProcess_ExtIEs__extensionValue_PR; -typedef enum CSIReportPerCSIProcessItem_ExtIEs__extensionValue_PR { - CSIReportPerCSIProcessItem_ExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} CSIReportPerCSIProcessItem_ExtIEs__extensionValue_PR; -typedef enum DataTrafficResourceIndication_ExtIEs__extensionValue_PR { - DataTrafficResourceIndication_ExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} DataTrafficResourceIndication_ExtIEs__extensionValue_PR; -typedef enum DeliveryStatus_ExtIEs__extensionValue_PR { - DeliveryStatus_ExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} DeliveryStatus_ExtIEs__extensionValue_PR; -typedef enum DynamicNAICSInformation_ExtIEs__extensionValue_PR { - DynamicNAICSInformation_ExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} DynamicNAICSInformation_ExtIEs__extensionValue_PR; -typedef enum ECGI_ExtIEs__extensionValue_PR { - ECGI_ExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} ECGI_ExtIEs__extensionValue_PR; -typedef enum EnhancedRNTP_ExtIEs__extensionValue_PR { - EnhancedRNTP_ExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} EnhancedRNTP_ExtIEs__extensionValue_PR; -typedef enum EnhancedRNTPStartTime_ExtIEs__extensionValue_PR { - EnhancedRNTPStartTime_ExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} EnhancedRNTPStartTime_ExtIEs__extensionValue_PR; -typedef enum EN_DC_ResourceConfigurationExtIEs__extensionValue_PR { - EN_DC_ResourceConfigurationExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} EN_DC_ResourceConfigurationExtIEs__extensionValue_PR; -typedef enum ERABActivityNotifyItem_ExtIEs__extensionValue_PR { - ERABActivityNotifyItem_ExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} ERABActivityNotifyItem_ExtIEs__extensionValue_PR; -typedef enum E_RAB_Level_QoS_Parameters_ExtIEs__extensionValue_PR { - E_RAB_Level_QoS_Parameters_ExtIEs__extensionValue_PR_NOTHING, /* No components present */ - E_RAB_Level_QoS_Parameters_ExtIEs__extensionValue_PR_Packet_LossRate -} E_RAB_Level_QoS_Parameters_ExtIEs__extensionValue_PR; -typedef enum E_RAB_Item_ExtIEs__extensionValue_PR { - E_RAB_Item_ExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} E_RAB_Item_ExtIEs__extensionValue_PR; -typedef enum E_RABUsageReport_Item_ExtIEs__extensionValue_PR { - E_RABUsageReport_Item_ExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} E_RABUsageReport_Item_ExtIEs__extensionValue_PR; -typedef enum ExpectedUEBehaviour_ExtIEs__extensionValue_PR { - ExpectedUEBehaviour_ExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} ExpectedUEBehaviour_ExtIEs__extensionValue_PR; -typedef enum ExpectedUEActivityBehaviour_ExtIEs__extensionValue_PR { - ExpectedUEActivityBehaviour_ExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} ExpectedUEActivityBehaviour_ExtIEs__extensionValue_PR; -typedef enum ExtendedULInterferenceOverloadInfo_ExtIEs__extensionValue_PR { - ExtendedULInterferenceOverloadInfo_ExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} ExtendedULInterferenceOverloadInfo_ExtIEs__extensionValue_PR; -typedef enum FDD_Info_ExtIEs__extensionValue_PR { - FDD_Info_ExtIEs__extensionValue_PR_NOTHING, /* No components present */ - FDD_Info_ExtIEs__extensionValue_PR_EARFCNExtension, - FDD_Info_ExtIEs__extensionValue_PR_OffsetOfNbiotChannelNumberToEARFCN, - FDD_Info_ExtIEs__extensionValue_PR_NRS_NSSS_PowerOffset, - FDD_Info_ExtIEs__extensionValue_PR_NSSS_NumOccasionDifferentPrecoder -} FDD_Info_ExtIEs__extensionValue_PR; -typedef enum ForbiddenTAs_Item_ExtIEs__extensionValue_PR { - ForbiddenTAs_Item_ExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} ForbiddenTAs_Item_ExtIEs__extensionValue_PR; -typedef enum ForbiddenLAs_Item_ExtIEs__extensionValue_PR { - ForbiddenLAs_Item_ExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} ForbiddenLAs_Item_ExtIEs__extensionValue_PR; -typedef enum FreqBandNrItem_ExtIEs__extensionValue_PR { - FreqBandNrItem_ExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} FreqBandNrItem_ExtIEs__extensionValue_PR; -typedef enum GBR_QosInformation_ExtIEs__extensionValue_PR { - GBR_QosInformation_ExtIEs__extensionValue_PR_NOTHING, /* No components present */ - GBR_QosInformation_ExtIEs__extensionValue_PR_ExtendedBitRate -} GBR_QosInformation_ExtIEs__extensionValue_PR; -typedef enum GlobalENB_ID_ExtIEs__extensionValue_PR { - GlobalENB_ID_ExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} GlobalENB_ID_ExtIEs__extensionValue_PR; -typedef enum GlobalGNB_ID_ExtIEs__extensionValue_PR { - GlobalGNB_ID_ExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} GlobalGNB_ID_ExtIEs__extensionValue_PR; -typedef enum GTPtunnelEndpoint_ExtIEs__extensionValue_PR { - GTPtunnelEndpoint_ExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} GTPtunnelEndpoint_ExtIEs__extensionValue_PR; -typedef enum GU_Group_ID_ExtIEs__extensionValue_PR { - GU_Group_ID_ExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} GU_Group_ID_ExtIEs__extensionValue_PR; -typedef enum GUMMEI_ExtIEs__extensionValue_PR { - GUMMEI_ExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} GUMMEI_ExtIEs__extensionValue_PR; -typedef enum HandoverRestrictionList_ExtIEs__extensionValue_PR { - HandoverRestrictionList_ExtIEs__extensionValue_PR_NOTHING, /* No components present */ - HandoverRestrictionList_ExtIEs__extensionValue_PR_NRrestrictioninEPSasSecondaryRAT, - HandoverRestrictionList_ExtIEs__extensionValue_PR_CNTypeRestrictions, - HandoverRestrictionList_ExtIEs__extensionValue_PR_NRrestrictionin5GS -} HandoverRestrictionList_ExtIEs__extensionValue_PR; -typedef enum HWLoadIndicator_ExtIEs__extensionValue_PR { - HWLoadIndicator_ExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} HWLoadIndicator_ExtIEs__extensionValue_PR; -typedef enum LastVisitedEUTRANCellInformation_ExtIEs__extensionValue_PR { - LastVisitedEUTRANCellInformation_ExtIEs__extensionValue_PR_NOTHING, /* No components present */ - LastVisitedEUTRANCellInformation_ExtIEs__extensionValue_PR_Time_UE_StayedInCell_EnhancedGranularity, - LastVisitedEUTRANCellInformation_ExtIEs__extensionValue_PR_Cause -} LastVisitedEUTRANCellInformation_ExtIEs__extensionValue_PR; -typedef enum LocationReportingInformation_ExtIEs__extensionValue_PR { - LocationReportingInformation_ExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} LocationReportingInformation_ExtIEs__extensionValue_PR; -typedef enum M1PeriodicReporting_ExtIEs__extensionValue_PR { - M1PeriodicReporting_ExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} M1PeriodicReporting_ExtIEs__extensionValue_PR; -typedef enum M1ThresholdEventA2_ExtIEs__extensionValue_PR { - M1ThresholdEventA2_ExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} M1ThresholdEventA2_ExtIEs__extensionValue_PR; -typedef enum M3Configuration_ExtIEs__extensionValue_PR { - M3Configuration_ExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} M3Configuration_ExtIEs__extensionValue_PR; -typedef enum M4Configuration_ExtIEs__extensionValue_PR { - M4Configuration_ExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} M4Configuration_ExtIEs__extensionValue_PR; -typedef enum M5Configuration_ExtIEs__extensionValue_PR { - M5Configuration_ExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} M5Configuration_ExtIEs__extensionValue_PR; -typedef enum M6Configuration_ExtIEs__extensionValue_PR { - M6Configuration_ExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} M6Configuration_ExtIEs__extensionValue_PR; -typedef enum M7Configuration_ExtIEs__extensionValue_PR { - M7Configuration_ExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} M7Configuration_ExtIEs__extensionValue_PR; -typedef enum MDT_Configuration_ExtIEs__extensionValue_PR { - MDT_Configuration_ExtIEs__extensionValue_PR_NOTHING, /* No components present */ - MDT_Configuration_ExtIEs__extensionValue_PR_M3Configuration, - MDT_Configuration_ExtIEs__extensionValue_PR_M4Configuration, - MDT_Configuration_ExtIEs__extensionValue_PR_M5Configuration, - MDT_Configuration_ExtIEs__extensionValue_PR_MDT_Location_Info, - MDT_Configuration_ExtIEs__extensionValue_PR_MDTPLMNList, - MDT_Configuration_ExtIEs__extensionValue_PR_M6Configuration, - MDT_Configuration_ExtIEs__extensionValue_PR_M7Configuration, - MDT_Configuration_ExtIEs__extensionValue_PR_BluetoothMeasurementConfiguration, - MDT_Configuration_ExtIEs__extensionValue_PR_WLANMeasurementConfiguration -} MDT_Configuration_ExtIEs__extensionValue_PR; -typedef enum MeNBResourceCoordinationInformationExtIEs__extensionValue_PR { - MeNBResourceCoordinationInformationExtIEs__extensionValue_PR_NOTHING, /* No components present */ - MeNBResourceCoordinationInformationExtIEs__extensionValue_PR_NRCGI, - MeNBResourceCoordinationInformationExtIEs__extensionValue_PR_MeNBCoordinationAssistanceInformation -} MeNBResourceCoordinationInformationExtIEs__extensionValue_PR; -typedef enum MBSFN_Subframe_Info_ExtIEs__extensionValue_PR { - MBSFN_Subframe_Info_ExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} MBSFN_Subframe_Info_ExtIEs__extensionValue_PR; -typedef enum BandInfo_ExtIEs__extensionValue_PR { - BandInfo_ExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} BandInfo_ExtIEs__extensionValue_PR; -typedef enum SplitSRB_ExtIEs__extensionValue_PR { - SplitSRB_ExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} SplitSRB_ExtIEs__extensionValue_PR; -typedef enum UENRMeasurement_ExtIEs__extensionValue_PR { - UENRMeasurement_ExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} UENRMeasurement_ExtIEs__extensionValue_PR; -typedef enum Neighbour_Information_ExtIEs__extensionValue_PR { - Neighbour_Information_ExtIEs__extensionValue_PR_NOTHING, /* No components present */ - Neighbour_Information_ExtIEs__extensionValue_PR_TAC, - Neighbour_Information_ExtIEs__extensionValue_PR_EARFCNExtension -} Neighbour_Information_ExtIEs__extensionValue_PR; -typedef enum NRFreqInfo_ExtIEs__extensionValue_PR { - NRFreqInfo_ExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} NRFreqInfo_ExtIEs__extensionValue_PR; -typedef enum NRCGI_ExtIEs__extensionValue_PR { - NRCGI_ExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} NRCGI_ExtIEs__extensionValue_PR; -typedef enum NR_TxBW_ExtIEs__extensionValue_PR { - NR_TxBW_ExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} NR_TxBW_ExtIEs__extensionValue_PR; -typedef enum NRUESecurityCapabilities_ExtIEs__extensionValue_PR { - NRUESecurityCapabilities_ExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} NRUESecurityCapabilities_ExtIEs__extensionValue_PR; -typedef enum PRACH_Configuration_ExtIEs__extensionValue_PR { - PRACH_Configuration_ExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} PRACH_Configuration_ExtIEs__extensionValue_PR; -typedef enum PLMNAreaBasedQMC_ExtIEs__extensionValue_PR { - PLMNAreaBasedQMC_ExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} PLMNAreaBasedQMC_ExtIEs__extensionValue_PR; -typedef enum ProSeAuthorized_ExtIEs__extensionValue_PR { - ProSeAuthorized_ExtIEs__extensionValue_PR_NOTHING, /* No components present */ - ProSeAuthorized_ExtIEs__extensionValue_PR_ProSeUEtoNetworkRelaying -} ProSeAuthorized_ExtIEs__extensionValue_PR; -typedef enum ProtectedEUTRAResourceIndication_ExtIEs__extensionValue_PR { - ProtectedEUTRAResourceIndication_ExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} ProtectedEUTRAResourceIndication_ExtIEs__extensionValue_PR; -typedef enum ProtectedFootprintTimePattern_ExtIEs__extensionValue_PR { - ProtectedFootprintTimePattern_ExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} ProtectedFootprintTimePattern_ExtIEs__extensionValue_PR; -typedef enum ProtectedResourceList_Item_ExtIEs__extensionValue_PR { - ProtectedResourceList_Item_ExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} ProtectedResourceList_Item_ExtIEs__extensionValue_PR; -typedef enum RadioResourceStatus_ExtIEs__extensionValue_PR { - RadioResourceStatus_ExtIEs__extensionValue_PR_NOTHING, /* No components present */ - RadioResourceStatus_ExtIEs__extensionValue_PR_DL_scheduling_PDCCH_CCE_usage, - RadioResourceStatus_ExtIEs__extensionValue_PR_UL_scheduling_PDCCH_CCE_usage -} RadioResourceStatus_ExtIEs__extensionValue_PR; -typedef enum RelativeNarrowbandTxPower_ExtIEs__extensionValue_PR { - RelativeNarrowbandTxPower_ExtIEs__extensionValue_PR_NOTHING, /* No components present */ - RelativeNarrowbandTxPower_ExtIEs__extensionValue_PR_EnhancedRNTP -} RelativeNarrowbandTxPower_ExtIEs__extensionValue_PR; -typedef enum ReservedSubframePattern_ExtIEs__extensionValue_PR { - ReservedSubframePattern_ExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} ReservedSubframePattern_ExtIEs__extensionValue_PR; -typedef enum RLC_Status_ExtIEs__extensionValue_PR { - RLC_Status_ExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} RLC_Status_ExtIEs__extensionValue_PR; -typedef enum RSRPMeasurementResult_ExtIEs__extensionValue_PR { - RSRPMeasurementResult_ExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} RSRPMeasurementResult_ExtIEs__extensionValue_PR; -typedef enum RSRPMRList_ExtIEs__extensionValue_PR { - RSRPMRList_ExtIEs__extensionValue_PR_NOTHING, /* No components present */ - RSRPMRList_ExtIEs__extensionValue_PR_UEID -} RSRPMRList_ExtIEs__extensionValue_PR; -typedef enum S1TNLLoadIndicator_ExtIEs__extensionValue_PR { - S1TNLLoadIndicator_ExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} S1TNLLoadIndicator_ExtIEs__extensionValue_PR; -typedef enum SecondaryRATUsageReport_Item_ExtIEs__extensionValue_PR { - SecondaryRATUsageReport_Item_ExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} SecondaryRATUsageReport_Item_ExtIEs__extensionValue_PR; -typedef enum ServedCell_ExtIEs__extensionValue_PR { - ServedCell_ExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} ServedCell_ExtIEs__extensionValue_PR; -typedef enum ServedCell_Information_ExtIEs__extensionValue_PR { - ServedCell_Information_ExtIEs__extensionValue_PR_NOTHING, /* No components present */ - ServedCell_Information_ExtIEs__extensionValue_PR_Number_of_Antennaports, - ServedCell_Information_ExtIEs__extensionValue_PR_PRACH_Configuration, - ServedCell_Information_ExtIEs__extensionValue_PR_MBSFN_Subframe_Infolist, - ServedCell_Information_ExtIEs__extensionValue_PR_CSG_Id, - ServedCell_Information_ExtIEs__extensionValue_PR_MBMS_Service_Area_Identity_List, - ServedCell_Information_ExtIEs__extensionValue_PR_MultibandInfoList, - ServedCell_Information_ExtIEs__extensionValue_PR_FreqBandIndicatorPriority, - ServedCell_Information_ExtIEs__extensionValue_PR_BandwidthReducedSI, - ServedCell_Information_ExtIEs__extensionValue_PR_ProtectedEUTRAResourceIndication -} ServedCell_Information_ExtIEs__extensionValue_PR; -typedef enum SgNBResourceCoordinationInformationExtIEs__extensionValue_PR { - SgNBResourceCoordinationInformationExtIEs__extensionValue_PR_NOTHING, /* No components present */ - SgNBResourceCoordinationInformationExtIEs__extensionValue_PR_ECGI, - SgNBResourceCoordinationInformationExtIEs__extensionValue_PR_SgNBCoordinationAssistanceInformation -} SgNBResourceCoordinationInformationExtIEs__extensionValue_PR; -typedef enum SpecialSubframe_Info_ExtIEs__extensionValue_PR { - SpecialSubframe_Info_ExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} SpecialSubframe_Info_ExtIEs__extensionValue_PR; -typedef enum SubbandCQI_ExtIEs__extensionValue_PR { - SubbandCQI_ExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} SubbandCQI_ExtIEs__extensionValue_PR; -typedef enum Subscription_Based_UE_DifferentiationInfo_ExtIEs__extensionValue_PR { - Subscription_Based_UE_DifferentiationInfo_ExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} Subscription_Based_UE_DifferentiationInfo_ExtIEs__extensionValue_PR; -typedef enum ScheduledCommunicationTime_ExtIEs__extensionValue_PR { - ScheduledCommunicationTime_ExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} ScheduledCommunicationTime_ExtIEs__extensionValue_PR; -typedef enum SubbandCQIItem_ExtIEs__extensionValue_PR { - SubbandCQIItem_ExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} SubbandCQIItem_ExtIEs__extensionValue_PR; -typedef enum SULInformation_ExtIEs__extensionValue_PR { - SULInformation_ExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} SULInformation_ExtIEs__extensionValue_PR; -typedef enum SupportedSULFreqBandItem_ExtIEs__extensionValue_PR { - SupportedSULFreqBandItem_ExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} SupportedSULFreqBandItem_ExtIEs__extensionValue_PR; -typedef enum TABasedMDT_ExtIEs__extensionValue_PR { - TABasedMDT_ExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} TABasedMDT_ExtIEs__extensionValue_PR; -typedef enum TAIBasedMDT_ExtIEs__extensionValue_PR { - TAIBasedMDT_ExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} TAIBasedMDT_ExtIEs__extensionValue_PR; -typedef enum TAI_Item_ExtIEs__extensionValue_PR { - TAI_Item_ExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} TAI_Item_ExtIEs__extensionValue_PR; -typedef enum TABasedQMC_ExtIEs__extensionValue_PR { - TABasedQMC_ExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} TABasedQMC_ExtIEs__extensionValue_PR; -typedef enum TAIBasedQMC_ExtIEs__extensionValue_PR { - TAIBasedQMC_ExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} TAIBasedQMC_ExtIEs__extensionValue_PR; -typedef enum TDD_Info_ExtIEs__extensionValue_PR { - TDD_Info_ExtIEs__extensionValue_PR_NOTHING, /* No components present */ - TDD_Info_ExtIEs__extensionValue_PR_AdditionalSpecialSubframe_Info, - TDD_Info_ExtIEs__extensionValue_PR_EARFCNExtension, - TDD_Info_ExtIEs__extensionValue_PR_AdditionalSpecialSubframeExtension_Info -} TDD_Info_ExtIEs__extensionValue_PR; -typedef enum TraceActivation_ExtIEs__extensionValue_PR { - TraceActivation_ExtIEs__extensionValue_PR_NOTHING, /* No components present */ - TraceActivation_ExtIEs__extensionValue_PR_MDT_Configuration, - TraceActivation_ExtIEs__extensionValue_PR_UEAppLayerMeasConfig -} TraceActivation_ExtIEs__extensionValue_PR; -typedef enum Tunnel_Information_ExtIEs__extensionValue_PR { - Tunnel_Information_ExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} Tunnel_Information_ExtIEs__extensionValue_PR; -typedef enum UEAggregate_MaximumBitrate_ExtIEs__extensionValue_PR { - UEAggregate_MaximumBitrate_ExtIEs__extensionValue_PR_NOTHING, /* No components present */ - UEAggregate_MaximumBitrate_ExtIEs__extensionValue_PR_ExtendedBitRate -} UEAggregate_MaximumBitrate_ExtIEs__extensionValue_PR; -typedef enum UEAppLayerMeasConfig_ExtIEs__extensionValue_PR { - UEAppLayerMeasConfig_ExtIEs__extensionValue_PR_NOTHING, /* No components present */ - UEAppLayerMeasConfig_ExtIEs__extensionValue_PR_ServiceType -} UEAppLayerMeasConfig_ExtIEs__extensionValue_PR; -typedef enum UESecurityCapabilities_ExtIEs__extensionValue_PR { - UESecurityCapabilities_ExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} UESecurityCapabilities_ExtIEs__extensionValue_PR; -typedef enum UE_Sidelink_Aggregate_MaximumBitRate_ExtIEs__extensionValue_PR { - UE_Sidelink_Aggregate_MaximumBitRate_ExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} UE_Sidelink_Aggregate_MaximumBitRate_ExtIEs__extensionValue_PR; -typedef enum UEsToBeResetList_Item_ExtIEs__extensionValue_PR { - UEsToBeResetList_Item_ExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} UEsToBeResetList_Item_ExtIEs__extensionValue_PR; -typedef enum ULandDLSharing_ExtIEs__extensionValue_PR { - ULandDLSharing_ExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} ULandDLSharing_ExtIEs__extensionValue_PR; -typedef enum ULConfiguration_ExtIEs__extensionValue_PR { - ULConfiguration_ExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} ULConfiguration_ExtIEs__extensionValue_PR; -typedef enum UL_HighInterferenceIndicationInfo_Item_ExtIEs__extensionValue_PR { - UL_HighInterferenceIndicationInfo_Item_ExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} UL_HighInterferenceIndicationInfo_Item_ExtIEs__extensionValue_PR; -typedef enum ULOnlySharing_ExtIEs__extensionValue_PR { - ULOnlySharing_ExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} ULOnlySharing_ExtIEs__extensionValue_PR; -typedef enum UsableABSInformationFDD_ExtIEs__extensionValue_PR { - UsableABSInformationFDD_ExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} UsableABSInformationFDD_ExtIEs__extensionValue_PR; -typedef enum UsableABSInformationTDD_ExtIEs__extensionValue_PR { - UsableABSInformationTDD_ExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} UsableABSInformationTDD_ExtIEs__extensionValue_PR; -typedef enum V2XServicesAuthorized_ExtIEs__extensionValue_PR { - V2XServicesAuthorized_ExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} V2XServicesAuthorized_ExtIEs__extensionValue_PR; -typedef enum WidebandCQI_ExtIEs__extensionValue_PR { - WidebandCQI_ExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} WidebandCQI_ExtIEs__extensionValue_PR; -typedef enum WLANMeasurementConfiguration_ExtIEs__extensionValue_PR { - WLANMeasurementConfiguration_ExtIEs__extensionValue_PR_NOTHING /* No components present */ - -} WLANMeasurementConfiguration_ExtIEs__extensionValue_PR; - -/* ProtocolExtensionField */ -typedef struct UE_ContextInformation_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct UE_ContextInformation_ExtIEs__extensionValue { - UE_ContextInformation_ExtIEs__extensionValue_PR present; - union UE_ContextInformation_ExtIEs__extensionValue_u { - ManagementBasedMDTallowed_t ManagementBasedMDTallowed; - MDTPLMNList_t MDTPLMNList; - UESidelinkAggregateMaximumBitRate_t UESidelinkAggregateMaximumBitRate; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} UE_ContextInformation_ExtIEs_t; -typedef struct E_RABs_ToBeSetup_ItemExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct E_RABs_ToBeSetup_ItemExtIEs__extensionValue { - E_RABs_ToBeSetup_ItemExtIEs__extensionValue_PR present; - union E_RABs_ToBeSetup_ItemExtIEs__extensionValue_u { - BearerType_t BearerType; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeSetup_ItemExtIEs_t; -typedef struct UE_ContextReferenceAtSeNB_ItemExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct UE_ContextReferenceAtSeNB_ItemExtIEs__extensionValue { - UE_ContextReferenceAtSeNB_ItemExtIEs__extensionValue_PR present; - union UE_ContextReferenceAtSeNB_ItemExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} UE_ContextReferenceAtSeNB_ItemExtIEs_t; -typedef struct UE_ContextReferenceAtWT_ItemExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct UE_ContextReferenceAtWT_ItemExtIEs__extensionValue { - UE_ContextReferenceAtWT_ItemExtIEs__extensionValue_PR present; - union UE_ContextReferenceAtWT_ItemExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} UE_ContextReferenceAtWT_ItemExtIEs_t; -typedef struct UE_ContextReferenceAtSgNB_ItemExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct UE_ContextReferenceAtSgNB_ItemExtIEs__extensionValue { - UE_ContextReferenceAtSgNB_ItemExtIEs__extensionValue_PR present; - union UE_ContextReferenceAtSgNB_ItemExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} UE_ContextReferenceAtSgNB_ItemExtIEs_t; -typedef struct E_RABs_Admitted_Item_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct E_RABs_Admitted_Item_ExtIEs__extensionValue { - E_RABs_Admitted_Item_ExtIEs__extensionValue_PR present; - union E_RABs_Admitted_Item_ExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_Admitted_Item_ExtIEs_t; -typedef struct E_RABs_SubjectToStatusTransfer_ItemExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct E_RABs_SubjectToStatusTransfer_ItemExtIEs__extensionValue { - E_RABs_SubjectToStatusTransfer_ItemExtIEs__extensionValue_PR present; - union E_RABs_SubjectToStatusTransfer_ItemExtIEs__extensionValue_u { - ReceiveStatusOfULPDCPSDUsExtended_t ReceiveStatusOfULPDCPSDUsExtended; - COUNTValueExtended_t COUNTValueExtended; - ReceiveStatusOfULPDCPSDUsPDCP_SNlength18_t ReceiveStatusOfULPDCPSDUsPDCP_SNlength18; - COUNTvaluePDCP_SNlength18_t COUNTvaluePDCP_SNlength18; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_SubjectToStatusTransfer_ItemExtIEs_t; -typedef struct CellInformation_Item_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct CellInformation_Item_ExtIEs__extensionValue { - CellInformation_Item_ExtIEs__extensionValue_PR present; - union CellInformation_Item_ExtIEs__extensionValue_u { - ABSInformation_t ABSInformation; - InvokeIndication_t InvokeIndication; - SubframeAssignment_t SubframeAssignment; - ExtendedULInterferenceOverloadInfo_t ExtendedULInterferenceOverloadInfo; - CoMPInformation_t CoMPInformation; - DynamicDLTransmissionInformation_t DynamicDLTransmissionInformation; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} CellInformation_Item_ExtIEs_t; -typedef struct ServedCellsToModify_Item_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct ServedCellsToModify_Item_ExtIEs__extensionValue { - ServedCellsToModify_Item_ExtIEs__extensionValue_PR present; - union ServedCellsToModify_Item_ExtIEs__extensionValue_u { - DeactivationIndication_t DeactivationIndication; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ServedCellsToModify_Item_ExtIEs_t; -typedef struct CellToReport_Item_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct CellToReport_Item_ExtIEs__extensionValue { - CellToReport_Item_ExtIEs__extensionValue_PR present; - union CellToReport_Item_ExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} CellToReport_Item_ExtIEs_t; -typedef struct MeasurementInitiationResult_Item_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct MeasurementInitiationResult_Item_ExtIEs__extensionValue { - MeasurementInitiationResult_Item_ExtIEs__extensionValue_PR present; - union MeasurementInitiationResult_Item_ExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} MeasurementInitiationResult_Item_ExtIEs_t; -typedef struct MeasurementFailureCause_Item_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct MeasurementFailureCause_Item_ExtIEs__extensionValue { - MeasurementFailureCause_Item_ExtIEs__extensionValue_PR present; - union MeasurementFailureCause_Item_ExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} MeasurementFailureCause_Item_ExtIEs_t; -typedef struct CompleteFailureCauseInformation_Item_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct CompleteFailureCauseInformation_Item_ExtIEs__extensionValue { - CompleteFailureCauseInformation_Item_ExtIEs__extensionValue_PR present; - union CompleteFailureCauseInformation_Item_ExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} CompleteFailureCauseInformation_Item_ExtIEs_t; -typedef struct CellMeasurementResult_Item_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct CellMeasurementResult_Item_ExtIEs__extensionValue { - CellMeasurementResult_Item_ExtIEs__extensionValue_PR present; - union CellMeasurementResult_Item_ExtIEs__extensionValue_u { - CompositeAvailableCapacityGroup_t CompositeAvailableCapacityGroup; - ABS_Status_t ABS_Status; - RSRPMRList_t RSRPMRList; - CSIReportList_t CSIReportList; - CellReportingIndicator_t CellReportingIndicator; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} CellMeasurementResult_Item_ExtIEs_t; -typedef struct ServedCellsToActivate_Item_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct ServedCellsToActivate_Item_ExtIEs__extensionValue { - ServedCellsToActivate_Item_ExtIEs__extensionValue_PR present; - union ServedCellsToActivate_Item_ExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ServedCellsToActivate_Item_ExtIEs_t; -typedef struct ActivatedCellList_Item_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct ActivatedCellList_Item_ExtIEs__extensionValue { - ActivatedCellList_Item_ExtIEs__extensionValue_PR present; - union ActivatedCellList_Item_ExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ActivatedCellList_Item_ExtIEs_t; -typedef struct RNL_Header_Item_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RNL_Header_Item_ExtIEs__extensionValue { - RNL_Header_Item_ExtIEs__extensionValue_PR present; - union RNL_Header_Item_ExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RNL_Header_Item_ExtIEs_t; -typedef struct E_RABs_ToBeAdded_Item_SCG_BearerExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct E_RABs_ToBeAdded_Item_SCG_BearerExtIEs__extensionValue { - E_RABs_ToBeAdded_Item_SCG_BearerExtIEs__extensionValue_PR present; - union E_RABs_ToBeAdded_Item_SCG_BearerExtIEs__extensionValue_u { - Correlation_ID_t Correlation_ID; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeAdded_Item_SCG_BearerExtIEs_t; -typedef struct E_RABs_ToBeAdded_Item_Split_BearerExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct E_RABs_ToBeAdded_Item_Split_BearerExtIEs__extensionValue { - E_RABs_ToBeAdded_Item_Split_BearerExtIEs__extensionValue_PR present; - union E_RABs_ToBeAdded_Item_Split_BearerExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeAdded_Item_Split_BearerExtIEs_t; -typedef struct E_RABs_Admitted_ToBeAdded_Item_SCG_BearerExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct E_RABs_Admitted_ToBeAdded_Item_SCG_BearerExtIEs__extensionValue { - E_RABs_Admitted_ToBeAdded_Item_SCG_BearerExtIEs__extensionValue_PR present; - union E_RABs_Admitted_ToBeAdded_Item_SCG_BearerExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_Admitted_ToBeAdded_Item_SCG_BearerExtIEs_t; -typedef struct E_RABs_Admitted_ToBeAdded_Item_Split_BearerExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct E_RABs_Admitted_ToBeAdded_Item_Split_BearerExtIEs__extensionValue { - E_RABs_Admitted_ToBeAdded_Item_Split_BearerExtIEs__extensionValue_PR present; - union E_RABs_Admitted_ToBeAdded_Item_Split_BearerExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_Admitted_ToBeAdded_Item_Split_BearerExtIEs_t; -typedef struct ResponseInformationSeNBReconfComp_SuccessItemExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct ResponseInformationSeNBReconfComp_SuccessItemExtIEs__extensionValue { - ResponseInformationSeNBReconfComp_SuccessItemExtIEs__extensionValue_PR present; - union ResponseInformationSeNBReconfComp_SuccessItemExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ResponseInformationSeNBReconfComp_SuccessItemExtIEs_t; -typedef struct ResponseInformationSeNBReconfComp_RejectByMeNBItemExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct ResponseInformationSeNBReconfComp_RejectByMeNBItemExtIEs__extensionValue { - ResponseInformationSeNBReconfComp_RejectByMeNBItemExtIEs__extensionValue_PR present; - union ResponseInformationSeNBReconfComp_RejectByMeNBItemExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ResponseInformationSeNBReconfComp_RejectByMeNBItemExtIEs_t; -typedef struct UE_ContextInformationSeNBModReqExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct UE_ContextInformationSeNBModReqExtIEs__extensionValue { - UE_ContextInformationSeNBModReqExtIEs__extensionValue_PR present; - union UE_ContextInformationSeNBModReqExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} UE_ContextInformationSeNBModReqExtIEs_t; -typedef struct E_RABs_ToBeAdded_ModReqItem_SCG_BearerExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct E_RABs_ToBeAdded_ModReqItem_SCG_BearerExtIEs__extensionValue { - E_RABs_ToBeAdded_ModReqItem_SCG_BearerExtIEs__extensionValue_PR present; - union E_RABs_ToBeAdded_ModReqItem_SCG_BearerExtIEs__extensionValue_u { - Correlation_ID_t Correlation_ID; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeAdded_ModReqItem_SCG_BearerExtIEs_t; -typedef struct E_RABs_ToBeAdded_ModReqItem_Split_BearerExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct E_RABs_ToBeAdded_ModReqItem_Split_BearerExtIEs__extensionValue { - E_RABs_ToBeAdded_ModReqItem_Split_BearerExtIEs__extensionValue_PR present; - union E_RABs_ToBeAdded_ModReqItem_Split_BearerExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeAdded_ModReqItem_Split_BearerExtIEs_t; -typedef struct E_RABs_ToBeModified_ModReqItem_SCG_BearerExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct E_RABs_ToBeModified_ModReqItem_SCG_BearerExtIEs__extensionValue { - E_RABs_ToBeModified_ModReqItem_SCG_BearerExtIEs__extensionValue_PR present; - union E_RABs_ToBeModified_ModReqItem_SCG_BearerExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeModified_ModReqItem_SCG_BearerExtIEs_t; -typedef struct E_RABs_ToBeModified_ModReqItem_Split_BearerExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct E_RABs_ToBeModified_ModReqItem_Split_BearerExtIEs__extensionValue { - E_RABs_ToBeModified_ModReqItem_Split_BearerExtIEs__extensionValue_PR present; - union E_RABs_ToBeModified_ModReqItem_Split_BearerExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeModified_ModReqItem_Split_BearerExtIEs_t; -typedef struct E_RABs_ToBeReleased_ModReqItem_SCG_BearerExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct E_RABs_ToBeReleased_ModReqItem_SCG_BearerExtIEs__extensionValue { - E_RABs_ToBeReleased_ModReqItem_SCG_BearerExtIEs__extensionValue_PR present; - union E_RABs_ToBeReleased_ModReqItem_SCG_BearerExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeReleased_ModReqItem_SCG_BearerExtIEs_t; -typedef struct E_RABs_ToBeReleased_ModReqItem_Split_BearerExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct E_RABs_ToBeReleased_ModReqItem_Split_BearerExtIEs__extensionValue { - E_RABs_ToBeReleased_ModReqItem_Split_BearerExtIEs__extensionValue_PR present; - union E_RABs_ToBeReleased_ModReqItem_Split_BearerExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeReleased_ModReqItem_Split_BearerExtIEs_t; -typedef struct E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_BearerExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_BearerExtIEs__extensionValue { - E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_BearerExtIEs__extensionValue_PR present; - union E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_BearerExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_BearerExtIEs_t; -typedef struct E_RABs_Admitted_ToBeAdded_ModAckItem_Split_BearerExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct E_RABs_Admitted_ToBeAdded_ModAckItem_Split_BearerExtIEs__extensionValue { - E_RABs_Admitted_ToBeAdded_ModAckItem_Split_BearerExtIEs__extensionValue_PR present; - union E_RABs_Admitted_ToBeAdded_ModAckItem_Split_BearerExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_Admitted_ToBeAdded_ModAckItem_Split_BearerExtIEs_t; -typedef struct E_RABs_Admitted_ToBeModified_ModAckItem_SCG_BearerExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct E_RABs_Admitted_ToBeModified_ModAckItem_SCG_BearerExtIEs__extensionValue { - E_RABs_Admitted_ToBeModified_ModAckItem_SCG_BearerExtIEs__extensionValue_PR present; - union E_RABs_Admitted_ToBeModified_ModAckItem_SCG_BearerExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_Admitted_ToBeModified_ModAckItem_SCG_BearerExtIEs_t; -typedef struct E_RABs_Admitted_ToBeModified_ModAckItem_Split_BearerExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct E_RABs_Admitted_ToBeModified_ModAckItem_Split_BearerExtIEs__extensionValue { - E_RABs_Admitted_ToBeModified_ModAckItem_Split_BearerExtIEs__extensionValue_PR present; - union E_RABs_Admitted_ToBeModified_ModAckItem_Split_BearerExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_Admitted_ToBeModified_ModAckItem_Split_BearerExtIEs_t; -typedef struct E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_BearerExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_BearerExtIEs__extensionValue { - E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_BearerExtIEs__extensionValue_PR present; - union E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_BearerExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_BearerExtIEs_t; -typedef struct E_RABs_Admitted_ToBeReleased_ModAckItem_Split_BearerExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct E_RABs_Admitted_ToBeReleased_ModAckItem_Split_BearerExtIEs__extensionValue { - E_RABs_Admitted_ToBeReleased_ModAckItem_Split_BearerExtIEs__extensionValue_PR present; - union E_RABs_Admitted_ToBeReleased_ModAckItem_Split_BearerExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_Admitted_ToBeReleased_ModAckItem_Split_BearerExtIEs_t; -typedef struct E_RABs_ToBeReleased_ModReqdItemExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct E_RABs_ToBeReleased_ModReqdItemExtIEs__extensionValue { - E_RABs_ToBeReleased_ModReqdItemExtIEs__extensionValue_PR present; - union E_RABs_ToBeReleased_ModReqdItemExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeReleased_ModReqdItemExtIEs_t; -typedef struct E_RABs_ToBeReleased_RelReqItem_SCG_BearerExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct E_RABs_ToBeReleased_RelReqItem_SCG_BearerExtIEs__extensionValue { - E_RABs_ToBeReleased_RelReqItem_SCG_BearerExtIEs__extensionValue_PR present; - union E_RABs_ToBeReleased_RelReqItem_SCG_BearerExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeReleased_RelReqItem_SCG_BearerExtIEs_t; -typedef struct E_RABs_ToBeReleased_RelReqItem_Split_BearerExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct E_RABs_ToBeReleased_RelReqItem_Split_BearerExtIEs__extensionValue { - E_RABs_ToBeReleased_RelReqItem_Split_BearerExtIEs__extensionValue_PR present; - union E_RABs_ToBeReleased_RelReqItem_Split_BearerExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeReleased_RelReqItem_Split_BearerExtIEs_t; -typedef struct E_RABs_ToBeReleased_RelConfItem_SCG_BearerExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct E_RABs_ToBeReleased_RelConfItem_SCG_BearerExtIEs__extensionValue { - E_RABs_ToBeReleased_RelConfItem_SCG_BearerExtIEs__extensionValue_PR present; - union E_RABs_ToBeReleased_RelConfItem_SCG_BearerExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeReleased_RelConfItem_SCG_BearerExtIEs_t; -typedef struct E_RABs_ToBeReleased_RelConfItem_Split_BearerExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct E_RABs_ToBeReleased_RelConfItem_Split_BearerExtIEs__extensionValue { - E_RABs_ToBeReleased_RelConfItem_Split_BearerExtIEs__extensionValue_PR present; - union E_RABs_ToBeReleased_RelConfItem_Split_BearerExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeReleased_RelConfItem_Split_BearerExtIEs_t; -typedef struct E_RABs_SubjectToCounterCheckItemExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct E_RABs_SubjectToCounterCheckItemExtIEs__extensionValue { - E_RABs_SubjectToCounterCheckItemExtIEs__extensionValue_PR present; - union E_RABs_SubjectToCounterCheckItemExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_SubjectToCounterCheckItemExtIEs_t; -typedef struct UE_ContextInformationRetrieve_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct UE_ContextInformationRetrieve_ExtIEs__extensionValue { - UE_ContextInformationRetrieve_ExtIEs__extensionValue_PR present; - union UE_ContextInformationRetrieve_ExtIEs__extensionValue_u { - UESidelinkAggregateMaximumBitRate_t UESidelinkAggregateMaximumBitRate; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} UE_ContextInformationRetrieve_ExtIEs_t; -typedef struct E_RABs_ToBeSetupRetrieve_ItemExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct E_RABs_ToBeSetupRetrieve_ItemExtIEs__extensionValue { - E_RABs_ToBeSetupRetrieve_ItemExtIEs__extensionValue_PR present; - union E_RABs_ToBeSetupRetrieve_ItemExtIEs__extensionValue_u { - GTPtunnelEndpoint_t GTPtunnelEndpoint; - DL_Forwarding_t DL_Forwarding; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeSetupRetrieve_ItemExtIEs_t; -typedef struct E_RABs_ToBeAdded_SgNBAddReq_ItemExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct E_RABs_ToBeAdded_SgNBAddReq_ItemExtIEs__extensionValue { - E_RABs_ToBeAdded_SgNBAddReq_ItemExtIEs__extensionValue_PR present; - union E_RABs_ToBeAdded_SgNBAddReq_ItemExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeAdded_SgNBAddReq_ItemExtIEs_t; -typedef struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresentExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresentExtIEs__extensionValue { - E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresentExtIEs__extensionValue_PR present; - union E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresentExtIEs__extensionValue_u { - RLCMode_t RLCMode; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresentExtIEs_t; -typedef struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresentExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue { - E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR present; - union E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue_u { - PDCPSnLength_t PDCPSnLength; - DuplicationActivation_t DuplicationActivation; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresentExtIEs_t; -typedef struct E_RABs_ToBeAdded_SgNBAddReqAck_ItemExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct E_RABs_ToBeAdded_SgNBAddReqAck_ItemExtIEs__extensionValue { - E_RABs_ToBeAdded_SgNBAddReqAck_ItemExtIEs__extensionValue_PR present; - union E_RABs_ToBeAdded_SgNBAddReqAck_ItemExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeAdded_SgNBAddReqAck_ItemExtIEs_t; -typedef struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresentExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresentExtIEs__extensionValue { - E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresentExtIEs__extensionValue_PR present; - union E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresentExtIEs__extensionValue_u { - PDCPSnLength_t PDCPSnLength; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresentExtIEs_t; -typedef struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresentExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresentExtIEs__extensionValue { - E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR present; - union E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresentExtIEs__extensionValue_u { - LCID_t LCID; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresentExtIEs_t; -typedef struct ResponseInformationSgNBReconfComp_SuccessItemExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct ResponseInformationSgNBReconfComp_SuccessItemExtIEs__extensionValue { - ResponseInformationSgNBReconfComp_SuccessItemExtIEs__extensionValue_PR present; - union ResponseInformationSgNBReconfComp_SuccessItemExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ResponseInformationSgNBReconfComp_SuccessItemExtIEs_t; -typedef struct ResponseInformationSgNBReconfComp_RejectByMeNBItemExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct ResponseInformationSgNBReconfComp_RejectByMeNBItemExtIEs__extensionValue { - ResponseInformationSgNBReconfComp_RejectByMeNBItemExtIEs__extensionValue_PR present; - union ResponseInformationSgNBReconfComp_RejectByMeNBItemExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ResponseInformationSgNBReconfComp_RejectByMeNBItemExtIEs_t; -typedef struct UE_ContextInformationSgNBModReqExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct UE_ContextInformationSgNBModReqExtIEs__extensionValue { - UE_ContextInformationSgNBModReqExtIEs__extensionValue_PR present; - union UE_ContextInformationSgNBModReqExtIEs__extensionValue_u { - SubscriberProfileIDforRFP_t SubscriberProfileIDforRFP; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} UE_ContextInformationSgNBModReqExtIEs_t; -typedef struct E_RABs_ToBeAdded_SgNBModReq_ItemExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct E_RABs_ToBeAdded_SgNBModReq_ItemExtIEs__extensionValue { - E_RABs_ToBeAdded_SgNBModReq_ItemExtIEs__extensionValue_PR present; - union E_RABs_ToBeAdded_SgNBModReq_ItemExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeAdded_SgNBModReq_ItemExtIEs_t; -typedef struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresentExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresentExtIEs__extensionValue { - E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresentExtIEs__extensionValue_PR present; - union E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresentExtIEs__extensionValue_u { - RLCMode_t RLCMode; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresentExtIEs_t; -typedef struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue { - E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR present; - union E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue_u { - PDCPSnLength_t PDCPSnLength; - DuplicationActivation_t DuplicationActivation; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_t; -typedef struct E_RABs_ToBeModified_SgNBModReq_ItemExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct E_RABs_ToBeModified_SgNBModReq_ItemExtIEs__extensionValue { - E_RABs_ToBeModified_SgNBModReq_ItemExtIEs__extensionValue_PR present; - union E_RABs_ToBeModified_SgNBModReq_ItemExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeModified_SgNBModReq_ItemExtIEs_t; -typedef struct E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresentExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresentExtIEs__extensionValue { - E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresentExtIEs__extensionValue_PR present; - union E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresentExtIEs__extensionValue_u { - RLC_Status_t RLC_Status; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresentExtIEs_t; -typedef struct E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue { - E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR present; - union E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue_u { - PDCPSnLength_t PDCPSnLength; - GTPtunnelEndpoint_t GTPtunnelEndpoint; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_t; -typedef struct E_RABs_ToBeReleased_SgNBModReq_ItemExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct E_RABs_ToBeReleased_SgNBModReq_ItemExtIEs__extensionValue { - E_RABs_ToBeReleased_SgNBModReq_ItemExtIEs__extensionValue_PR present; - union E_RABs_ToBeReleased_SgNBModReq_ItemExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeReleased_SgNBModReq_ItemExtIEs_t; -typedef struct E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresentExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresentExtIEs__extensionValue { - E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresentExtIEs__extensionValue_PR present; - union E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresentExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresentExtIEs_t; -typedef struct E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue { - E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR present; - union E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_t; -typedef struct E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemExtIEs__extensionValue { - E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemExtIEs__extensionValue_PR present; - union E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemExtIEs_t; -typedef struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresentExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresentExtIEs__extensionValue { - E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresentExtIEs__extensionValue_PR present; - union E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresentExtIEs__extensionValue_u { - PDCPSnLength_t PDCPSnLength; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresentExtIEs_t; -typedef struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs__extensionValue { - E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR present; - union E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs__extensionValue_u { - LCID_t LCID; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_t; -typedef struct E_RABs_ToBeAdded_SgNBModAck_ItemExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct E_RABs_ToBeAdded_SgNBModAck_ItemExtIEs__extensionValue { - E_RABs_ToBeAdded_SgNBModAck_ItemExtIEs__extensionValue_PR present; - union E_RABs_ToBeAdded_SgNBModAck_ItemExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeAdded_SgNBModAck_ItemExtIEs_t; -typedef struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresentExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresentExtIEs__extensionValue { - E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresentExtIEs__extensionValue_PR present; - union E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresentExtIEs__extensionValue_u { - PDCPSnLength_t PDCPSnLength; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresentExtIEs_t; -typedef struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs__extensionValue { - E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR present; - union E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs__extensionValue_u { - GTPtunnelEndpoint_t GTPtunnelEndpoint; - RLC_Status_t RLC_Status; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_t; -typedef struct E_RABs_ToBeReleased_SgNBModAck_ItemExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct E_RABs_ToBeReleased_SgNBModAck_ItemExtIEs__extensionValue { - E_RABs_ToBeReleased_SgNBModAck_ItemExtIEs__extensionValue_PR present; - union E_RABs_ToBeReleased_SgNBModAck_ItemExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeReleased_SgNBModAck_ItemExtIEs_t; -typedef struct E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresentExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresentExtIEs__extensionValue { - E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresentExtIEs__extensionValue_PR present; - union E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresentExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresentExtIEs_t; -typedef struct E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs__extensionValue { - E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR present; - union E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_t; -typedef struct E_RABs_ToBeReleased_SgNBModReqd_ItemExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct E_RABs_ToBeReleased_SgNBModReqd_ItemExtIEs__extensionValue { - E_RABs_ToBeReleased_SgNBModReqd_ItemExtIEs__extensionValue_PR present; - union E_RABs_ToBeReleased_SgNBModReqd_ItemExtIEs__extensionValue_u { - RLCMode_t RLCMode; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeReleased_SgNBModReqd_ItemExtIEs_t; -typedef struct E_RABs_ToBeModified_SgNBModReqd_ItemExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct E_RABs_ToBeModified_SgNBModReqd_ItemExtIEs__extensionValue { - E_RABs_ToBeModified_SgNBModReqd_ItemExtIEs__extensionValue_PR present; - union E_RABs_ToBeModified_SgNBModReqd_ItemExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeModified_SgNBModReqd_ItemExtIEs_t; -typedef struct E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresentExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresentExtIEs__extensionValue { - E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresentExtIEs__extensionValue_PR present; - union E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresentExtIEs__extensionValue_u { - PDCPSnLength_t PDCPSnLength; - NewDRBIDrequest_t NewDRBIDrequest; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresentExtIEs_t; -typedef struct E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresentExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresentExtIEs__extensionValue { - E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR present; - union E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresentExtIEs__extensionValue_u { - RLC_Status_t RLC_Status; - LCID_t LCID; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresentExtIEs_t; -typedef struct E_RABs_AdmittedToBeModified_SgNBModConf_ItemExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct E_RABs_AdmittedToBeModified_SgNBModConf_ItemExtIEs__extensionValue { - E_RABs_AdmittedToBeModified_SgNBModConf_ItemExtIEs__extensionValue_PR present; - union E_RABs_AdmittedToBeModified_SgNBModConf_ItemExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_AdmittedToBeModified_SgNBModConf_ItemExtIEs_t; -typedef struct E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresentExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresentExtIEs__extensionValue { - E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresentExtIEs__extensionValue_PR present; - union E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresentExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresentExtIEs_t; -typedef struct E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresentExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresentExtIEs__extensionValue { - E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR present; - union E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresentExtIEs__extensionValue_u { - PDCPSnLength_t PDCPSnLength; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresentExtIEs_t; -typedef struct E_RABs_ToBeReleased_SgNBRelReq_ItemExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct E_RABs_ToBeReleased_SgNBRelReq_ItemExtIEs__extensionValue { - E_RABs_ToBeReleased_SgNBRelReq_ItemExtIEs__extensionValue_PR present; - union E_RABs_ToBeReleased_SgNBRelReq_ItemExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeReleased_SgNBRelReq_ItemExtIEs_t; -typedef struct E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresentExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresentExtIEs__extensionValue { - E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresentExtIEs__extensionValue_PR present; - union E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresentExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresentExtIEs_t; -typedef struct E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresentExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue { - E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR present; - union E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresentExtIEs_t; -typedef struct E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemExtIEs__extensionValue { - E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemExtIEs__extensionValue_PR present; - union E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemExtIEs_t; -typedef struct E_RABs_ToBeReleased_SgNBRelReqd_ItemExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct E_RABs_ToBeReleased_SgNBRelReqd_ItemExtIEs__extensionValue { - E_RABs_ToBeReleased_SgNBRelReqd_ItemExtIEs__extensionValue_PR present; - union E_RABs_ToBeReleased_SgNBRelReqd_ItemExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeReleased_SgNBRelReqd_ItemExtIEs_t; -typedef struct E_RABs_ToBeReleased_SgNBRelConf_ItemExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct E_RABs_ToBeReleased_SgNBRelConf_ItemExtIEs__extensionValue { - E_RABs_ToBeReleased_SgNBRelConf_ItemExtIEs__extensionValue_PR present; - union E_RABs_ToBeReleased_SgNBRelConf_ItemExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeReleased_SgNBRelConf_ItemExtIEs_t; -typedef struct E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresentExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresentExtIEs__extensionValue { - E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresentExtIEs__extensionValue_PR present; - union E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresentExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresentExtIEs_t; -typedef struct E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresentExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresentExtIEs__extensionValue { - E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR present; - union E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresentExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresentExtIEs_t; -typedef struct E_RABs_SubjectToSgNBCounterCheck_ItemExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct E_RABs_SubjectToSgNBCounterCheck_ItemExtIEs__extensionValue { - E_RABs_SubjectToSgNBCounterCheck_ItemExtIEs__extensionValue_PR present; - union E_RABs_SubjectToSgNBCounterCheck_ItemExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_SubjectToSgNBCounterCheck_ItemExtIEs_t; -typedef struct E_RABs_ToBeReleased_SgNBChaConf_ItemExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct E_RABs_ToBeReleased_SgNBChaConf_ItemExtIEs__extensionValue { - E_RABs_ToBeReleased_SgNBChaConf_ItemExtIEs__extensionValue_PR present; - union E_RABs_ToBeReleased_SgNBChaConf_ItemExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeReleased_SgNBChaConf_ItemExtIEs_t; -typedef struct E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresentExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresentExtIEs__extensionValue { - E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresentExtIEs__extensionValue_PR present; - union E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresentExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresentExtIEs_t; -typedef struct E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresentExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresentExtIEs__extensionValue { - E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR present; - union E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresentExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresentExtIEs_t; -typedef struct ServedEUTRAcellsENDCX2Management_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct ServedEUTRAcellsENDCX2Management_ExtIEs__extensionValue { - ServedEUTRAcellsENDCX2Management_ExtIEs__extensionValue_PR present; - union ServedEUTRAcellsENDCX2Management_ExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ServedEUTRAcellsENDCX2Management_ExtIEs_t; -typedef struct En_gNBServedCells_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct En_gNBServedCells_ExtIEs__extensionValue { - En_gNBServedCells_ExtIEs__extensionValue_PR present; - union En_gNBServedCells_ExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} En_gNBServedCells_ExtIEs_t; -typedef struct ServedNRCell_Information_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct ServedNRCell_Information_ExtIEs__extensionValue { - ServedNRCell_Information_ExtIEs__extensionValue_PR present; - union ServedNRCell_Information_ExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ServedNRCell_Information_ExtIEs_t; -typedef struct FDD_InfoServedNRCell_Information_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct FDD_InfoServedNRCell_Information_ExtIEs__extensionValue { - FDD_InfoServedNRCell_Information_ExtIEs__extensionValue_PR present; - union FDD_InfoServedNRCell_Information_ExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} FDD_InfoServedNRCell_Information_ExtIEs_t; -typedef struct FDD_InfoNeighbourServedNRCell_Information_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct FDD_InfoNeighbourServedNRCell_Information_ExtIEs__extensionValue { - FDD_InfoNeighbourServedNRCell_Information_ExtIEs__extensionValue_PR present; - union FDD_InfoNeighbourServedNRCell_Information_ExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} FDD_InfoNeighbourServedNRCell_Information_ExtIEs_t; -typedef struct TDD_InfoServedNRCell_Information_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct TDD_InfoServedNRCell_Information_ExtIEs__extensionValue { - TDD_InfoServedNRCell_Information_ExtIEs__extensionValue_PR present; - union TDD_InfoServedNRCell_Information_ExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} TDD_InfoServedNRCell_Information_ExtIEs_t; -typedef struct TDD_InfoNeighbourServedNRCell_Information_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct TDD_InfoNeighbourServedNRCell_Information_ExtIEs__extensionValue { - TDD_InfoNeighbourServedNRCell_Information_ExtIEs__extensionValue_PR present; - union TDD_InfoNeighbourServedNRCell_Information_ExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} TDD_InfoNeighbourServedNRCell_Information_ExtIEs_t; -typedef struct NRNeighbour_Information_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct NRNeighbour_Information_ExtIEs__extensionValue { - NRNeighbour_Information_ExtIEs__extensionValue_PR present; - union NRNeighbour_Information_ExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} NRNeighbour_Information_ExtIEs_t; -typedef struct Limited_list_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct Limited_list_ExtIEs__extensionValue { - Limited_list_ExtIEs__extensionValue_PR present; - union Limited_list_ExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} Limited_list_ExtIEs_t; -typedef struct ServedEUTRAcellsToModifyListENDCConfUpd_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct ServedEUTRAcellsToModifyListENDCConfUpd_ExtIEs__extensionValue { - ServedEUTRAcellsToModifyListENDCConfUpd_ExtIEs__extensionValue_PR present; - union ServedEUTRAcellsToModifyListENDCConfUpd_ExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ServedEUTRAcellsToModifyListENDCConfUpd_ExtIEs_t; -typedef struct ServedNRCellsToModify_Item_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct ServedNRCellsToModify_Item_ExtIEs__extensionValue { - ServedNRCellsToModify_Item_ExtIEs__extensionValue_PR present; - union ServedNRCellsToModify_Item_ExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ServedNRCellsToModify_Item_ExtIEs_t; -typedef struct ServedNRCellsToActivate_Item_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct ServedNRCellsToActivate_Item_ExtIEs__extensionValue { - ServedNRCellsToActivate_Item_ExtIEs__extensionValue_PR present; - union ServedNRCellsToActivate_Item_ExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ServedNRCellsToActivate_Item_ExtIEs_t; -typedef struct ActivatedNRCellList_Item_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct ActivatedNRCellList_Item_ExtIEs__extensionValue { - ActivatedNRCellList_Item_ExtIEs__extensionValue_PR present; - union ActivatedNRCellList_Item_ExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ActivatedNRCellList_Item_ExtIEs_t; -typedef struct E_RABs_DataForwardingAddress_ItemExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct E_RABs_DataForwardingAddress_ItemExtIEs__extensionValue { - E_RABs_DataForwardingAddress_ItemExtIEs__extensionValue_PR present; - union E_RABs_DataForwardingAddress_ItemExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_DataForwardingAddress_ItemExtIEs_t; -typedef struct ABSInformationFDD_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct ABSInformationFDD_ExtIEs__extensionValue { - ABSInformationFDD_ExtIEs__extensionValue_PR present; - union ABSInformationFDD_ExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ABSInformationFDD_ExtIEs_t; -typedef struct ABSInformationTDD_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct ABSInformationTDD_ExtIEs__extensionValue { - ABSInformationTDD_ExtIEs__extensionValue_PR present; - union ABSInformationTDD_ExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ABSInformationTDD_ExtIEs_t; -typedef struct ABS_Status_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct ABS_Status_ExtIEs__extensionValue { - ABS_Status_ExtIEs__extensionValue_PR present; - union ABS_Status_ExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ABS_Status_ExtIEs_t; -typedef struct AdditionalSpecialSubframe_Info_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct AdditionalSpecialSubframe_Info_ExtIEs__extensionValue { - AdditionalSpecialSubframe_Info_ExtIEs__extensionValue_PR present; - union AdditionalSpecialSubframe_Info_ExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} AdditionalSpecialSubframe_Info_ExtIEs_t; -typedef struct AdditionalSpecialSubframeExtension_Info_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct AdditionalSpecialSubframeExtension_Info_ExtIEs__extensionValue { - AdditionalSpecialSubframeExtension_Info_ExtIEs__extensionValue_PR present; - union AdditionalSpecialSubframeExtension_Info_ExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} AdditionalSpecialSubframeExtension_Info_ExtIEs_t; -typedef struct AllocationAndRetentionPriority_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct AllocationAndRetentionPriority_ExtIEs__extensionValue { - AllocationAndRetentionPriority_ExtIEs__extensionValue_PR present; - union AllocationAndRetentionPriority_ExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} AllocationAndRetentionPriority_ExtIEs_t; -typedef struct AS_SecurityInformation_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct AS_SecurityInformation_ExtIEs__extensionValue { - AS_SecurityInformation_ExtIEs__extensionValue_PR present; - union AS_SecurityInformation_ExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} AS_SecurityInformation_ExtIEs_t; -typedef struct BluetoothMeasurementConfiguration_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct BluetoothMeasurementConfiguration_ExtIEs__extensionValue { - BluetoothMeasurementConfiguration_ExtIEs__extensionValue_PR present; - union BluetoothMeasurementConfiguration_ExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} BluetoothMeasurementConfiguration_ExtIEs_t; -typedef struct CellBasedMDT_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct CellBasedMDT_ExtIEs__extensionValue { - CellBasedMDT_ExtIEs__extensionValue_PR present; - union CellBasedMDT_ExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} CellBasedMDT_ExtIEs_t; -typedef struct CellBasedQMC_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct CellBasedQMC_ExtIEs__extensionValue { - CellBasedQMC_ExtIEs__extensionValue_PR present; - union CellBasedQMC_ExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} CellBasedQMC_ExtIEs_t; -typedef struct CellReplacingInfo_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct CellReplacingInfo_ExtIEs__extensionValue { - CellReplacingInfo_ExtIEs__extensionValue_PR present; - union CellReplacingInfo_ExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} CellReplacingInfo_ExtIEs_t; -typedef struct CellType_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct CellType_ExtIEs__extensionValue { - CellType_ExtIEs__extensionValue_PR present; - union CellType_ExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} CellType_ExtIEs_t; -typedef struct CNTypeRestrictionsItem_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct CNTypeRestrictionsItem_ExtIEs__extensionValue { - CNTypeRestrictionsItem_ExtIEs__extensionValue_PR present; - union CNTypeRestrictionsItem_ExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} CNTypeRestrictionsItem_ExtIEs_t; -typedef struct CoMPHypothesisSetItem_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct CoMPHypothesisSetItem_ExtIEs__extensionValue { - CoMPHypothesisSetItem_ExtIEs__extensionValue_PR present; - union CoMPHypothesisSetItem_ExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} CoMPHypothesisSetItem_ExtIEs_t; -typedef struct CoMPInformation_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct CoMPInformation_ExtIEs__extensionValue { - CoMPInformation_ExtIEs__extensionValue_PR present; - union CoMPInformation_ExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} CoMPInformation_ExtIEs_t; -typedef struct CoMPInformationItem_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct CoMPInformationItem_ExtIEs__extensionValue { - CoMPInformationItem_ExtIEs__extensionValue_PR present; - union CoMPInformationItem_ExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} CoMPInformationItem_ExtIEs_t; -typedef struct CoMPInformationStartTime_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct CoMPInformationStartTime_ExtIEs__extensionValue { - CoMPInformationStartTime_ExtIEs__extensionValue_PR present; - union CoMPInformationStartTime_ExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} CoMPInformationStartTime_ExtIEs_t; -typedef struct CompositeAvailableCapacity_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct CompositeAvailableCapacity_ExtIEs__extensionValue { - CompositeAvailableCapacity_ExtIEs__extensionValue_PR present; - union CompositeAvailableCapacity_ExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} CompositeAvailableCapacity_ExtIEs_t; -typedef struct CompositeAvailableCapacityGroup_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct CompositeAvailableCapacityGroup_ExtIEs__extensionValue { - CompositeAvailableCapacityGroup_ExtIEs__extensionValue_PR present; - union CompositeAvailableCapacityGroup_ExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} CompositeAvailableCapacityGroup_ExtIEs_t; -typedef struct COUNTvalue_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct COUNTvalue_ExtIEs__extensionValue { - COUNTvalue_ExtIEs__extensionValue_PR present; - union COUNTvalue_ExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} COUNTvalue_ExtIEs_t; -typedef struct COUNTValueExtended_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct COUNTValueExtended_ExtIEs__extensionValue { - COUNTValueExtended_ExtIEs__extensionValue_PR present; - union COUNTValueExtended_ExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} COUNTValueExtended_ExtIEs_t; -typedef struct COUNTvaluePDCP_SNlength18_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct COUNTvaluePDCP_SNlength18_ExtIEs__extensionValue { - COUNTvaluePDCP_SNlength18_ExtIEs__extensionValue_PR present; - union COUNTvaluePDCP_SNlength18_ExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} COUNTvaluePDCP_SNlength18_ExtIEs_t; -typedef struct CriticalityDiagnostics_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct CriticalityDiagnostics_ExtIEs__extensionValue { - CriticalityDiagnostics_ExtIEs__extensionValue_PR present; - union CriticalityDiagnostics_ExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} CriticalityDiagnostics_ExtIEs_t; -typedef struct CriticalityDiagnostics_IE_List_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct CriticalityDiagnostics_IE_List_ExtIEs__extensionValue { - CriticalityDiagnostics_IE_List_ExtIEs__extensionValue_PR present; - union CriticalityDiagnostics_IE_List_ExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} CriticalityDiagnostics_IE_List_ExtIEs_t; -typedef struct CSIReportList_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct CSIReportList_ExtIEs__extensionValue { - CSIReportList_ExtIEs__extensionValue_PR present; - union CSIReportList_ExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} CSIReportList_ExtIEs_t; -typedef struct CSIReportPerCSIProcess_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct CSIReportPerCSIProcess_ExtIEs__extensionValue { - CSIReportPerCSIProcess_ExtIEs__extensionValue_PR present; - union CSIReportPerCSIProcess_ExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} CSIReportPerCSIProcess_ExtIEs_t; -typedef struct CSIReportPerCSIProcessItem_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct CSIReportPerCSIProcessItem_ExtIEs__extensionValue { - CSIReportPerCSIProcessItem_ExtIEs__extensionValue_PR present; - union CSIReportPerCSIProcessItem_ExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} CSIReportPerCSIProcessItem_ExtIEs_t; -typedef struct DataTrafficResourceIndication_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct DataTrafficResourceIndication_ExtIEs__extensionValue { - DataTrafficResourceIndication_ExtIEs__extensionValue_PR present; - union DataTrafficResourceIndication_ExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} DataTrafficResourceIndication_ExtIEs_t; -typedef struct DeliveryStatus_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct DeliveryStatus_ExtIEs__extensionValue { - DeliveryStatus_ExtIEs__extensionValue_PR present; - union DeliveryStatus_ExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} DeliveryStatus_ExtIEs_t; -typedef struct DynamicNAICSInformation_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct DynamicNAICSInformation_ExtIEs__extensionValue { - DynamicNAICSInformation_ExtIEs__extensionValue_PR present; - union DynamicNAICSInformation_ExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} DynamicNAICSInformation_ExtIEs_t; -typedef struct ECGI_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct ECGI_ExtIEs__extensionValue { - ECGI_ExtIEs__extensionValue_PR present; - union ECGI_ExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ECGI_ExtIEs_t; -typedef struct EnhancedRNTP_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct EnhancedRNTP_ExtIEs__extensionValue { - EnhancedRNTP_ExtIEs__extensionValue_PR present; - union EnhancedRNTP_ExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} EnhancedRNTP_ExtIEs_t; -typedef struct EnhancedRNTPStartTime_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct EnhancedRNTPStartTime_ExtIEs__extensionValue { - EnhancedRNTPStartTime_ExtIEs__extensionValue_PR present; - union EnhancedRNTPStartTime_ExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} EnhancedRNTPStartTime_ExtIEs_t; -typedef struct EN_DC_ResourceConfigurationExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct EN_DC_ResourceConfigurationExtIEs__extensionValue { - EN_DC_ResourceConfigurationExtIEs__extensionValue_PR present; - union EN_DC_ResourceConfigurationExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} EN_DC_ResourceConfigurationExtIEs_t; -typedef struct ERABActivityNotifyItem_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct ERABActivityNotifyItem_ExtIEs__extensionValue { - ERABActivityNotifyItem_ExtIEs__extensionValue_PR present; - union ERABActivityNotifyItem_ExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ERABActivityNotifyItem_ExtIEs_t; -typedef struct E_RAB_Level_QoS_Parameters_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct E_RAB_Level_QoS_Parameters_ExtIEs__extensionValue { - E_RAB_Level_QoS_Parameters_ExtIEs__extensionValue_PR present; - union E_RAB_Level_QoS_Parameters_ExtIEs__extensionValue_u { - Packet_LossRate_t Packet_LossRate; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RAB_Level_QoS_Parameters_ExtIEs_t; -typedef struct E_RAB_Item_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct E_RAB_Item_ExtIEs__extensionValue { - E_RAB_Item_ExtIEs__extensionValue_PR present; - union E_RAB_Item_ExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RAB_Item_ExtIEs_t; -typedef struct E_RABUsageReport_Item_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct E_RABUsageReport_Item_ExtIEs__extensionValue { - E_RABUsageReport_Item_ExtIEs__extensionValue_PR present; - union E_RABUsageReport_Item_ExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABUsageReport_Item_ExtIEs_t; -typedef struct ExpectedUEBehaviour_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct ExpectedUEBehaviour_ExtIEs__extensionValue { - ExpectedUEBehaviour_ExtIEs__extensionValue_PR present; - union ExpectedUEBehaviour_ExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ExpectedUEBehaviour_ExtIEs_t; -typedef struct ExpectedUEActivityBehaviour_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct ExpectedUEActivityBehaviour_ExtIEs__extensionValue { - ExpectedUEActivityBehaviour_ExtIEs__extensionValue_PR present; - union ExpectedUEActivityBehaviour_ExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ExpectedUEActivityBehaviour_ExtIEs_t; -typedef struct ExtendedULInterferenceOverloadInfo_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct ExtendedULInterferenceOverloadInfo_ExtIEs__extensionValue { - ExtendedULInterferenceOverloadInfo_ExtIEs__extensionValue_PR present; - union ExtendedULInterferenceOverloadInfo_ExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ExtendedULInterferenceOverloadInfo_ExtIEs_t; -typedef struct FDD_Info_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct FDD_Info_ExtIEs__extensionValue { - FDD_Info_ExtIEs__extensionValue_PR present; - union FDD_Info_ExtIEs__extensionValue_u { - EARFCNExtension_t EARFCNExtension; - OffsetOfNbiotChannelNumberToEARFCN_t OffsetOfNbiotChannelNumberToEARFCN; - NRS_NSSS_PowerOffset_t NRS_NSSS_PowerOffset; - NSSS_NumOccasionDifferentPrecoder_t NSSS_NumOccasionDifferentPrecoder; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} FDD_Info_ExtIEs_t; -typedef struct ForbiddenTAs_Item_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct ForbiddenTAs_Item_ExtIEs__extensionValue { - ForbiddenTAs_Item_ExtIEs__extensionValue_PR present; - union ForbiddenTAs_Item_ExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ForbiddenTAs_Item_ExtIEs_t; -typedef struct ForbiddenLAs_Item_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct ForbiddenLAs_Item_ExtIEs__extensionValue { - ForbiddenLAs_Item_ExtIEs__extensionValue_PR present; - union ForbiddenLAs_Item_ExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ForbiddenLAs_Item_ExtIEs_t; -typedef struct FreqBandNrItem_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct FreqBandNrItem_ExtIEs__extensionValue { - FreqBandNrItem_ExtIEs__extensionValue_PR present; - union FreqBandNrItem_ExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} FreqBandNrItem_ExtIEs_t; -typedef struct GBR_QosInformation_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct GBR_QosInformation_ExtIEs__extensionValue { - GBR_QosInformation_ExtIEs__extensionValue_PR present; - union GBR_QosInformation_ExtIEs__extensionValue_u { - ExtendedBitRate_t ExtendedBitRate; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} GBR_QosInformation_ExtIEs_t; -typedef struct GlobalENB_ID_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct GlobalENB_ID_ExtIEs__extensionValue { - GlobalENB_ID_ExtIEs__extensionValue_PR present; - union GlobalENB_ID_ExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} GlobalENB_ID_ExtIEs_t; -typedef struct GlobalGNB_ID_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct GlobalGNB_ID_ExtIEs__extensionValue { - GlobalGNB_ID_ExtIEs__extensionValue_PR present; - union GlobalGNB_ID_ExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} GlobalGNB_ID_ExtIEs_t; -typedef struct GTPtunnelEndpoint_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct GTPtunnelEndpoint_ExtIEs__extensionValue { - GTPtunnelEndpoint_ExtIEs__extensionValue_PR present; - union GTPtunnelEndpoint_ExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} GTPtunnelEndpoint_ExtIEs_t; -typedef struct GU_Group_ID_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct GU_Group_ID_ExtIEs__extensionValue { - GU_Group_ID_ExtIEs__extensionValue_PR present; - union GU_Group_ID_ExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} GU_Group_ID_ExtIEs_t; -typedef struct GUMMEI_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct GUMMEI_ExtIEs__extensionValue { - GUMMEI_ExtIEs__extensionValue_PR present; - union GUMMEI_ExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} GUMMEI_ExtIEs_t; -typedef struct HandoverRestrictionList_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct HandoverRestrictionList_ExtIEs__extensionValue { - HandoverRestrictionList_ExtIEs__extensionValue_PR present; - union HandoverRestrictionList_ExtIEs__extensionValue_u { - NRrestrictioninEPSasSecondaryRAT_t NRrestrictioninEPSasSecondaryRAT; - CNTypeRestrictions_t CNTypeRestrictions; - NRrestrictionin5GS_t NRrestrictionin5GS; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} HandoverRestrictionList_ExtIEs_t; -typedef struct HWLoadIndicator_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct HWLoadIndicator_ExtIEs__extensionValue { - HWLoadIndicator_ExtIEs__extensionValue_PR present; - union HWLoadIndicator_ExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} HWLoadIndicator_ExtIEs_t; -typedef struct LastVisitedEUTRANCellInformation_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct LastVisitedEUTRANCellInformation_ExtIEs__extensionValue { - LastVisitedEUTRANCellInformation_ExtIEs__extensionValue_PR present; - union LastVisitedEUTRANCellInformation_ExtIEs__extensionValue_u { - Time_UE_StayedInCell_EnhancedGranularity_t Time_UE_StayedInCell_EnhancedGranularity; - Cause_t Cause; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} LastVisitedEUTRANCellInformation_ExtIEs_t; -typedef struct LocationReportingInformation_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct LocationReportingInformation_ExtIEs__extensionValue { - LocationReportingInformation_ExtIEs__extensionValue_PR present; - union LocationReportingInformation_ExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} LocationReportingInformation_ExtIEs_t; -typedef struct M1PeriodicReporting_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct M1PeriodicReporting_ExtIEs__extensionValue { - M1PeriodicReporting_ExtIEs__extensionValue_PR present; - union M1PeriodicReporting_ExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} M1PeriodicReporting_ExtIEs_t; -typedef struct M1ThresholdEventA2_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct M1ThresholdEventA2_ExtIEs__extensionValue { - M1ThresholdEventA2_ExtIEs__extensionValue_PR present; - union M1ThresholdEventA2_ExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} M1ThresholdEventA2_ExtIEs_t; -typedef struct M3Configuration_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct M3Configuration_ExtIEs__extensionValue { - M3Configuration_ExtIEs__extensionValue_PR present; - union M3Configuration_ExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} M3Configuration_ExtIEs_t; -typedef struct M4Configuration_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct M4Configuration_ExtIEs__extensionValue { - M4Configuration_ExtIEs__extensionValue_PR present; - union M4Configuration_ExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} M4Configuration_ExtIEs_t; -typedef struct M5Configuration_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct M5Configuration_ExtIEs__extensionValue { - M5Configuration_ExtIEs__extensionValue_PR present; - union M5Configuration_ExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} M5Configuration_ExtIEs_t; -typedef struct M6Configuration_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct M6Configuration_ExtIEs__extensionValue { - M6Configuration_ExtIEs__extensionValue_PR present; - union M6Configuration_ExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} M6Configuration_ExtIEs_t; -typedef struct M7Configuration_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct M7Configuration_ExtIEs__extensionValue { - M7Configuration_ExtIEs__extensionValue_PR present; - union M7Configuration_ExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} M7Configuration_ExtIEs_t; -typedef struct MDT_Configuration_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct MDT_Configuration_ExtIEs__extensionValue { - MDT_Configuration_ExtIEs__extensionValue_PR present; - union MDT_Configuration_ExtIEs__extensionValue_u { - M3Configuration_t M3Configuration; - M4Configuration_t M4Configuration; - M5Configuration_t M5Configuration; - MDT_Location_Info_t MDT_Location_Info; - MDTPLMNList_t MDTPLMNList; - M6Configuration_t M6Configuration; - M7Configuration_t M7Configuration; - BluetoothMeasurementConfiguration_t BluetoothMeasurementConfiguration; - WLANMeasurementConfiguration_t WLANMeasurementConfiguration; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} MDT_Configuration_ExtIEs_t; -typedef struct MeNBResourceCoordinationInformationExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct MeNBResourceCoordinationInformationExtIEs__extensionValue { - MeNBResourceCoordinationInformationExtIEs__extensionValue_PR present; - union MeNBResourceCoordinationInformationExtIEs__extensionValue_u { - NRCGI_t NRCGI; - MeNBCoordinationAssistanceInformation_t MeNBCoordinationAssistanceInformation; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} MeNBResourceCoordinationInformationExtIEs_t; -typedef struct MBSFN_Subframe_Info_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct MBSFN_Subframe_Info_ExtIEs__extensionValue { - MBSFN_Subframe_Info_ExtIEs__extensionValue_PR present; - union MBSFN_Subframe_Info_ExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} MBSFN_Subframe_Info_ExtIEs_t; -typedef struct BandInfo_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct BandInfo_ExtIEs__extensionValue { - BandInfo_ExtIEs__extensionValue_PR present; - union BandInfo_ExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} BandInfo_ExtIEs_t; -typedef struct SplitSRB_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct SplitSRB_ExtIEs__extensionValue { - SplitSRB_ExtIEs__extensionValue_PR present; - union SplitSRB_ExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} SplitSRB_ExtIEs_t; -typedef struct UENRMeasurement_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct UENRMeasurement_ExtIEs__extensionValue { - UENRMeasurement_ExtIEs__extensionValue_PR present; - union UENRMeasurement_ExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} UENRMeasurement_ExtIEs_t; -typedef struct Neighbour_Information_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct Neighbour_Information_ExtIEs__extensionValue { - Neighbour_Information_ExtIEs__extensionValue_PR present; - union Neighbour_Information_ExtIEs__extensionValue_u { - TAC_t TAC; - EARFCNExtension_t EARFCNExtension; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} Neighbour_Information_ExtIEs_t; -typedef struct NRFreqInfo_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct NRFreqInfo_ExtIEs__extensionValue { - NRFreqInfo_ExtIEs__extensionValue_PR present; - union NRFreqInfo_ExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} NRFreqInfo_ExtIEs_t; -typedef struct NRCGI_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct NRCGI_ExtIEs__extensionValue { - NRCGI_ExtIEs__extensionValue_PR present; - union NRCGI_ExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} NRCGI_ExtIEs_t; -typedef struct NR_TxBW_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct NR_TxBW_ExtIEs__extensionValue { - NR_TxBW_ExtIEs__extensionValue_PR present; - union NR_TxBW_ExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} NR_TxBW_ExtIEs_t; -typedef struct NRUESecurityCapabilities_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct NRUESecurityCapabilities_ExtIEs__extensionValue { - NRUESecurityCapabilities_ExtIEs__extensionValue_PR present; - union NRUESecurityCapabilities_ExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} NRUESecurityCapabilities_ExtIEs_t; -typedef struct PRACH_Configuration_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct PRACH_Configuration_ExtIEs__extensionValue { - PRACH_Configuration_ExtIEs__extensionValue_PR present; - union PRACH_Configuration_ExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} PRACH_Configuration_ExtIEs_t; -typedef struct PLMNAreaBasedQMC_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct PLMNAreaBasedQMC_ExtIEs__extensionValue { - PLMNAreaBasedQMC_ExtIEs__extensionValue_PR present; - union PLMNAreaBasedQMC_ExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} PLMNAreaBasedQMC_ExtIEs_t; -typedef struct ProSeAuthorized_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct ProSeAuthorized_ExtIEs__extensionValue { - ProSeAuthorized_ExtIEs__extensionValue_PR present; - union ProSeAuthorized_ExtIEs__extensionValue_u { - ProSeUEtoNetworkRelaying_t ProSeUEtoNetworkRelaying; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProSeAuthorized_ExtIEs_t; -typedef struct ProtectedEUTRAResourceIndication_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct ProtectedEUTRAResourceIndication_ExtIEs__extensionValue { - ProtectedEUTRAResourceIndication_ExtIEs__extensionValue_PR present; - union ProtectedEUTRAResourceIndication_ExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtectedEUTRAResourceIndication_ExtIEs_t; -typedef struct ProtectedFootprintTimePattern_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct ProtectedFootprintTimePattern_ExtIEs__extensionValue { - ProtectedFootprintTimePattern_ExtIEs__extensionValue_PR present; - union ProtectedFootprintTimePattern_ExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtectedFootprintTimePattern_ExtIEs_t; -typedef struct ProtectedResourceList_Item_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct ProtectedResourceList_Item_ExtIEs__extensionValue { - ProtectedResourceList_Item_ExtIEs__extensionValue_PR present; - union ProtectedResourceList_Item_ExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtectedResourceList_Item_ExtIEs_t; -typedef struct RadioResourceStatus_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RadioResourceStatus_ExtIEs__extensionValue { - RadioResourceStatus_ExtIEs__extensionValue_PR present; - union RadioResourceStatus_ExtIEs__extensionValue_u { - DL_scheduling_PDCCH_CCE_usage_t DL_scheduling_PDCCH_CCE_usage; - UL_scheduling_PDCCH_CCE_usage_t UL_scheduling_PDCCH_CCE_usage; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RadioResourceStatus_ExtIEs_t; -typedef struct RelativeNarrowbandTxPower_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RelativeNarrowbandTxPower_ExtIEs__extensionValue { - RelativeNarrowbandTxPower_ExtIEs__extensionValue_PR present; - union RelativeNarrowbandTxPower_ExtIEs__extensionValue_u { - EnhancedRNTP_t EnhancedRNTP; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RelativeNarrowbandTxPower_ExtIEs_t; -typedef struct ReservedSubframePattern_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct ReservedSubframePattern_ExtIEs__extensionValue { - ReservedSubframePattern_ExtIEs__extensionValue_PR present; - union ReservedSubframePattern_ExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ReservedSubframePattern_ExtIEs_t; -typedef struct RLC_Status_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RLC_Status_ExtIEs__extensionValue { - RLC_Status_ExtIEs__extensionValue_PR present; - union RLC_Status_ExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RLC_Status_ExtIEs_t; -typedef struct RSRPMeasurementResult_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RSRPMeasurementResult_ExtIEs__extensionValue { - RSRPMeasurementResult_ExtIEs__extensionValue_PR present; - union RSRPMeasurementResult_ExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RSRPMeasurementResult_ExtIEs_t; -typedef struct RSRPMRList_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RSRPMRList_ExtIEs__extensionValue { - RSRPMRList_ExtIEs__extensionValue_PR present; - union RSRPMRList_ExtIEs__extensionValue_u { - UEID_t UEID; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RSRPMRList_ExtIEs_t; -typedef struct S1TNLLoadIndicator_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct S1TNLLoadIndicator_ExtIEs__extensionValue { - S1TNLLoadIndicator_ExtIEs__extensionValue_PR present; - union S1TNLLoadIndicator_ExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} S1TNLLoadIndicator_ExtIEs_t; -typedef struct SecondaryRATUsageReport_Item_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct SecondaryRATUsageReport_Item_ExtIEs__extensionValue { - SecondaryRATUsageReport_Item_ExtIEs__extensionValue_PR present; - union SecondaryRATUsageReport_Item_ExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} SecondaryRATUsageReport_Item_ExtIEs_t; -typedef struct ServedCell_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct ServedCell_ExtIEs__extensionValue { - ServedCell_ExtIEs__extensionValue_PR present; - union ServedCell_ExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ServedCell_ExtIEs_t; -typedef struct ServedCell_Information_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct ServedCell_Information_ExtIEs__extensionValue { - ServedCell_Information_ExtIEs__extensionValue_PR present; - union ServedCell_Information_ExtIEs__extensionValue_u { - Number_of_Antennaports_t Number_of_Antennaports; - PRACH_Configuration_t PRACH_Configuration; - MBSFN_Subframe_Infolist_t MBSFN_Subframe_Infolist; - CSG_Id_t CSG_Id; - MBMS_Service_Area_Identity_List_t MBMS_Service_Area_Identity_List; - MultibandInfoList_t MultibandInfoList; - FreqBandIndicatorPriority_t FreqBandIndicatorPriority; - BandwidthReducedSI_t BandwidthReducedSI; - ProtectedEUTRAResourceIndication_t ProtectedEUTRAResourceIndication; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ServedCell_Information_ExtIEs_t; -typedef struct SgNBResourceCoordinationInformationExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct SgNBResourceCoordinationInformationExtIEs__extensionValue { - SgNBResourceCoordinationInformationExtIEs__extensionValue_PR present; - union SgNBResourceCoordinationInformationExtIEs__extensionValue_u { - ECGI_t ECGI; - SgNBCoordinationAssistanceInformation_t SgNBCoordinationAssistanceInformation; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} SgNBResourceCoordinationInformationExtIEs_t; -typedef struct SpecialSubframe_Info_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct SpecialSubframe_Info_ExtIEs__extensionValue { - SpecialSubframe_Info_ExtIEs__extensionValue_PR present; - union SpecialSubframe_Info_ExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} SpecialSubframe_Info_ExtIEs_t; -typedef struct SubbandCQI_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct SubbandCQI_ExtIEs__extensionValue { - SubbandCQI_ExtIEs__extensionValue_PR present; - union SubbandCQI_ExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} SubbandCQI_ExtIEs_t; -typedef struct Subscription_Based_UE_DifferentiationInfo_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct Subscription_Based_UE_DifferentiationInfo_ExtIEs__extensionValue { - Subscription_Based_UE_DifferentiationInfo_ExtIEs__extensionValue_PR present; - union Subscription_Based_UE_DifferentiationInfo_ExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} Subscription_Based_UE_DifferentiationInfo_ExtIEs_t; -typedef struct ScheduledCommunicationTime_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct ScheduledCommunicationTime_ExtIEs__extensionValue { - ScheduledCommunicationTime_ExtIEs__extensionValue_PR present; - union ScheduledCommunicationTime_ExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ScheduledCommunicationTime_ExtIEs_t; -typedef struct SubbandCQIItem_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct SubbandCQIItem_ExtIEs__extensionValue { - SubbandCQIItem_ExtIEs__extensionValue_PR present; - union SubbandCQIItem_ExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} SubbandCQIItem_ExtIEs_t; -typedef struct SULInformation_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct SULInformation_ExtIEs__extensionValue { - SULInformation_ExtIEs__extensionValue_PR present; - union SULInformation_ExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} SULInformation_ExtIEs_t; -typedef struct SupportedSULFreqBandItem_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct SupportedSULFreqBandItem_ExtIEs__extensionValue { - SupportedSULFreqBandItem_ExtIEs__extensionValue_PR present; - union SupportedSULFreqBandItem_ExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} SupportedSULFreqBandItem_ExtIEs_t; -typedef struct TABasedMDT_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct TABasedMDT_ExtIEs__extensionValue { - TABasedMDT_ExtIEs__extensionValue_PR present; - union TABasedMDT_ExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} TABasedMDT_ExtIEs_t; -typedef struct TAIBasedMDT_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct TAIBasedMDT_ExtIEs__extensionValue { - TAIBasedMDT_ExtIEs__extensionValue_PR present; - union TAIBasedMDT_ExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} TAIBasedMDT_ExtIEs_t; -typedef struct TAI_Item_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct TAI_Item_ExtIEs__extensionValue { - TAI_Item_ExtIEs__extensionValue_PR present; - union TAI_Item_ExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} TAI_Item_ExtIEs_t; -typedef struct TABasedQMC_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct TABasedQMC_ExtIEs__extensionValue { - TABasedQMC_ExtIEs__extensionValue_PR present; - union TABasedQMC_ExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} TABasedQMC_ExtIEs_t; -typedef struct TAIBasedQMC_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct TAIBasedQMC_ExtIEs__extensionValue { - TAIBasedQMC_ExtIEs__extensionValue_PR present; - union TAIBasedQMC_ExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} TAIBasedQMC_ExtIEs_t; -typedef struct TDD_Info_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct TDD_Info_ExtIEs__extensionValue { - TDD_Info_ExtIEs__extensionValue_PR present; - union TDD_Info_ExtIEs__extensionValue_u { - AdditionalSpecialSubframe_Info_t AdditionalSpecialSubframe_Info; - EARFCNExtension_t EARFCNExtension; - AdditionalSpecialSubframeExtension_Info_t AdditionalSpecialSubframeExtension_Info; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} TDD_Info_ExtIEs_t; -typedef struct TraceActivation_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct TraceActivation_ExtIEs__extensionValue { - TraceActivation_ExtIEs__extensionValue_PR present; - union TraceActivation_ExtIEs__extensionValue_u { - MDT_Configuration_t MDT_Configuration; - UEAppLayerMeasConfig_t UEAppLayerMeasConfig; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} TraceActivation_ExtIEs_t; -typedef struct Tunnel_Information_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct Tunnel_Information_ExtIEs__extensionValue { - Tunnel_Information_ExtIEs__extensionValue_PR present; - union Tunnel_Information_ExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} Tunnel_Information_ExtIEs_t; -typedef struct UEAggregate_MaximumBitrate_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct UEAggregate_MaximumBitrate_ExtIEs__extensionValue { - UEAggregate_MaximumBitrate_ExtIEs__extensionValue_PR present; - union UEAggregate_MaximumBitrate_ExtIEs__extensionValue_u { - ExtendedBitRate_t ExtendedBitRate; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} UEAggregate_MaximumBitrate_ExtIEs_t; -typedef struct UEAppLayerMeasConfig_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct UEAppLayerMeasConfig_ExtIEs__extensionValue { - UEAppLayerMeasConfig_ExtIEs__extensionValue_PR present; - union UEAppLayerMeasConfig_ExtIEs__extensionValue_u { - ServiceType_t ServiceType; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} UEAppLayerMeasConfig_ExtIEs_t; -typedef struct UESecurityCapabilities_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct UESecurityCapabilities_ExtIEs__extensionValue { - UESecurityCapabilities_ExtIEs__extensionValue_PR present; - union UESecurityCapabilities_ExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} UESecurityCapabilities_ExtIEs_t; -typedef struct UE_Sidelink_Aggregate_MaximumBitRate_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct UE_Sidelink_Aggregate_MaximumBitRate_ExtIEs__extensionValue { - UE_Sidelink_Aggregate_MaximumBitRate_ExtIEs__extensionValue_PR present; - union UE_Sidelink_Aggregate_MaximumBitRate_ExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} UE_Sidelink_Aggregate_MaximumBitRate_ExtIEs_t; -typedef struct UEsToBeResetList_Item_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct UEsToBeResetList_Item_ExtIEs__extensionValue { - UEsToBeResetList_Item_ExtIEs__extensionValue_PR present; - union UEsToBeResetList_Item_ExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} UEsToBeResetList_Item_ExtIEs_t; -typedef struct ULandDLSharing_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct ULandDLSharing_ExtIEs__extensionValue { - ULandDLSharing_ExtIEs__extensionValue_PR present; - union ULandDLSharing_ExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ULandDLSharing_ExtIEs_t; -typedef struct ULConfiguration_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct ULConfiguration_ExtIEs__extensionValue { - ULConfiguration_ExtIEs__extensionValue_PR present; - union ULConfiguration_ExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ULConfiguration_ExtIEs_t; -typedef struct UL_HighInterferenceIndicationInfo_Item_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct UL_HighInterferenceIndicationInfo_Item_ExtIEs__extensionValue { - UL_HighInterferenceIndicationInfo_Item_ExtIEs__extensionValue_PR present; - union UL_HighInterferenceIndicationInfo_Item_ExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} UL_HighInterferenceIndicationInfo_Item_ExtIEs_t; -typedef struct ULOnlySharing_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct ULOnlySharing_ExtIEs__extensionValue { - ULOnlySharing_ExtIEs__extensionValue_PR present; - union ULOnlySharing_ExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ULOnlySharing_ExtIEs_t; -typedef struct UsableABSInformationFDD_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct UsableABSInformationFDD_ExtIEs__extensionValue { - UsableABSInformationFDD_ExtIEs__extensionValue_PR present; - union UsableABSInformationFDD_ExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} UsableABSInformationFDD_ExtIEs_t; -typedef struct UsableABSInformationTDD_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct UsableABSInformationTDD_ExtIEs__extensionValue { - UsableABSInformationTDD_ExtIEs__extensionValue_PR present; - union UsableABSInformationTDD_ExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} UsableABSInformationTDD_ExtIEs_t; -typedef struct V2XServicesAuthorized_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct V2XServicesAuthorized_ExtIEs__extensionValue { - V2XServicesAuthorized_ExtIEs__extensionValue_PR present; - union V2XServicesAuthorized_ExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} V2XServicesAuthorized_ExtIEs_t; -typedef struct WidebandCQI_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct WidebandCQI_ExtIEs__extensionValue { - WidebandCQI_ExtIEs__extensionValue_PR present; - union WidebandCQI_ExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} WidebandCQI_ExtIEs_t; -typedef struct WLANMeasurementConfiguration_ExtIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct WLANMeasurementConfiguration_ExtIEs__extensionValue { - WLANMeasurementConfiguration_ExtIEs__extensionValue_PR present; - union WLANMeasurementConfiguration_ExtIEs__extensionValue_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } extensionValue; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} WLANMeasurementConfiguration_ExtIEs_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_UE_ContextInformation_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_UE_ContextInformation_ExtIEs_specs_1; -extern asn_TYPE_member_t asn_MBR_UE_ContextInformation_ExtIEs_1[3]; -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeSetup_ItemExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeSetup_ItemExtIEs_specs_5; -extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeSetup_ItemExtIEs_5[3]; -extern asn_TYPE_descriptor_t asn_DEF_UE_ContextReferenceAtSeNB_ItemExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_UE_ContextReferenceAtSeNB_ItemExtIEs_specs_9; -extern asn_TYPE_member_t asn_MBR_UE_ContextReferenceAtSeNB_ItemExtIEs_9[3]; -extern asn_TYPE_descriptor_t asn_DEF_UE_ContextReferenceAtWT_ItemExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_UE_ContextReferenceAtWT_ItemExtIEs_specs_13; -extern asn_TYPE_member_t asn_MBR_UE_ContextReferenceAtWT_ItemExtIEs_13[3]; -extern asn_TYPE_descriptor_t asn_DEF_UE_ContextReferenceAtSgNB_ItemExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_UE_ContextReferenceAtSgNB_ItemExtIEs_specs_17; -extern asn_TYPE_member_t asn_MBR_UE_ContextReferenceAtSgNB_ItemExtIEs_17[3]; -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_Item_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_Item_ExtIEs_specs_21; -extern asn_TYPE_member_t asn_MBR_E_RABs_Admitted_Item_ExtIEs_21[3]; -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_SubjectToStatusTransfer_ItemExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_SubjectToStatusTransfer_ItemExtIEs_specs_25; -extern asn_TYPE_member_t asn_MBR_E_RABs_SubjectToStatusTransfer_ItemExtIEs_25[3]; -extern asn_TYPE_descriptor_t asn_DEF_CellInformation_Item_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_CellInformation_Item_ExtIEs_specs_29; -extern asn_TYPE_member_t asn_MBR_CellInformation_Item_ExtIEs_29[3]; -extern asn_TYPE_descriptor_t asn_DEF_ServedCellsToModify_Item_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_ServedCellsToModify_Item_ExtIEs_specs_33; -extern asn_TYPE_member_t asn_MBR_ServedCellsToModify_Item_ExtIEs_33[3]; -extern asn_TYPE_descriptor_t asn_DEF_CellToReport_Item_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_CellToReport_Item_ExtIEs_specs_37; -extern asn_TYPE_member_t asn_MBR_CellToReport_Item_ExtIEs_37[3]; -extern asn_TYPE_descriptor_t asn_DEF_MeasurementInitiationResult_Item_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_MeasurementInitiationResult_Item_ExtIEs_specs_41; -extern asn_TYPE_member_t asn_MBR_MeasurementInitiationResult_Item_ExtIEs_41[3]; -extern asn_TYPE_descriptor_t asn_DEF_MeasurementFailureCause_Item_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_MeasurementFailureCause_Item_ExtIEs_specs_45; -extern asn_TYPE_member_t asn_MBR_MeasurementFailureCause_Item_ExtIEs_45[3]; -extern asn_TYPE_descriptor_t asn_DEF_CompleteFailureCauseInformation_Item_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_CompleteFailureCauseInformation_Item_ExtIEs_specs_49; -extern asn_TYPE_member_t asn_MBR_CompleteFailureCauseInformation_Item_ExtIEs_49[3]; -extern asn_TYPE_descriptor_t asn_DEF_CellMeasurementResult_Item_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_CellMeasurementResult_Item_ExtIEs_specs_53; -extern asn_TYPE_member_t asn_MBR_CellMeasurementResult_Item_ExtIEs_53[3]; -extern asn_TYPE_descriptor_t asn_DEF_ServedCellsToActivate_Item_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_ServedCellsToActivate_Item_ExtIEs_specs_57; -extern asn_TYPE_member_t asn_MBR_ServedCellsToActivate_Item_ExtIEs_57[3]; -extern asn_TYPE_descriptor_t asn_DEF_ActivatedCellList_Item_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_ActivatedCellList_Item_ExtIEs_specs_61; -extern asn_TYPE_member_t asn_MBR_ActivatedCellList_Item_ExtIEs_61[3]; -extern asn_TYPE_descriptor_t asn_DEF_RNL_Header_Item_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RNL_Header_Item_ExtIEs_specs_65; -extern asn_TYPE_member_t asn_MBR_RNL_Header_Item_ExtIEs_65[3]; -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_Item_SCG_BearerExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeAdded_Item_SCG_BearerExtIEs_specs_69; -extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeAdded_Item_SCG_BearerExtIEs_69[3]; -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_Item_Split_BearerExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeAdded_Item_Split_BearerExtIEs_specs_73; -extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeAdded_Item_Split_BearerExtIEs_73[3]; -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeAdded_Item_SCG_BearerExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeAdded_Item_SCG_BearerExtIEs_specs_77; -extern asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeAdded_Item_SCG_BearerExtIEs_77[3]; -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeAdded_Item_Split_BearerExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeAdded_Item_Split_BearerExtIEs_specs_81; -extern asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeAdded_Item_Split_BearerExtIEs_81[3]; -extern asn_TYPE_descriptor_t asn_DEF_ResponseInformationSeNBReconfComp_SuccessItemExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_ResponseInformationSeNBReconfComp_SuccessItemExtIEs_specs_85; -extern asn_TYPE_member_t asn_MBR_ResponseInformationSeNBReconfComp_SuccessItemExtIEs_85[3]; -extern asn_TYPE_descriptor_t asn_DEF_ResponseInformationSeNBReconfComp_RejectByMeNBItemExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_ResponseInformationSeNBReconfComp_RejectByMeNBItemExtIEs_specs_89; -extern asn_TYPE_member_t asn_MBR_ResponseInformationSeNBReconfComp_RejectByMeNBItemExtIEs_89[3]; -extern asn_TYPE_descriptor_t asn_DEF_UE_ContextInformationSeNBModReqExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_UE_ContextInformationSeNBModReqExtIEs_specs_93; -extern asn_TYPE_member_t asn_MBR_UE_ContextInformationSeNBModReqExtIEs_93[3]; -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_ModReqItem_SCG_BearerExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeAdded_ModReqItem_SCG_BearerExtIEs_specs_97; -extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeAdded_ModReqItem_SCG_BearerExtIEs_97[3]; -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_ModReqItem_Split_BearerExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeAdded_ModReqItem_Split_BearerExtIEs_specs_101; -extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeAdded_ModReqItem_Split_BearerExtIEs_101[3]; -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeModified_ModReqItem_SCG_BearerExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeModified_ModReqItem_SCG_BearerExtIEs_specs_105; -extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeModified_ModReqItem_SCG_BearerExtIEs_105[3]; -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeModified_ModReqItem_Split_BearerExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeModified_ModReqItem_Split_BearerExtIEs_specs_109; -extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeModified_ModReqItem_Split_BearerExtIEs_109[3]; -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_ModReqItem_SCG_BearerExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_ModReqItem_SCG_BearerExtIEs_specs_113; -extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_ModReqItem_SCG_BearerExtIEs_113[3]; -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_ModReqItem_Split_BearerExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_ModReqItem_Split_BearerExtIEs_specs_117; -extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_ModReqItem_Split_BearerExtIEs_117[3]; -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_BearerExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_BearerExtIEs_specs_121; -extern asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_BearerExtIEs_121[3]; -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckItem_Split_BearerExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeAdded_ModAckItem_Split_BearerExtIEs_specs_125; -extern asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeAdded_ModAckItem_Split_BearerExtIEs_125[3]; -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeModified_ModAckItem_SCG_BearerExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeModified_ModAckItem_SCG_BearerExtIEs_specs_129; -extern asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeModified_ModAckItem_SCG_BearerExtIEs_129[3]; -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeModified_ModAckItem_Split_BearerExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeModified_ModAckItem_Split_BearerExtIEs_specs_133; -extern asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeModified_ModAckItem_Split_BearerExtIEs_133[3]; -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_BearerExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_BearerExtIEs_specs_137; -extern asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_BearerExtIEs_137[3]; -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeReleased_ModAckItem_Split_BearerExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeReleased_ModAckItem_Split_BearerExtIEs_specs_141; -extern asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeReleased_ModAckItem_Split_BearerExtIEs_141[3]; -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_ModReqdItemExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_ModReqdItemExtIEs_specs_145; -extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_ModReqdItemExtIEs_145[3]; -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_RelReqItem_SCG_BearerExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_RelReqItem_SCG_BearerExtIEs_specs_149; -extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_RelReqItem_SCG_BearerExtIEs_149[3]; -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_RelReqItem_Split_BearerExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_RelReqItem_Split_BearerExtIEs_specs_153; -extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_RelReqItem_Split_BearerExtIEs_153[3]; -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_RelConfItem_SCG_BearerExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_RelConfItem_SCG_BearerExtIEs_specs_157; -extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_RelConfItem_SCG_BearerExtIEs_157[3]; -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_RelConfItem_Split_BearerExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_RelConfItem_Split_BearerExtIEs_specs_161; -extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_RelConfItem_Split_BearerExtIEs_161[3]; -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_SubjectToCounterCheckItemExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_SubjectToCounterCheckItemExtIEs_specs_165; -extern asn_TYPE_member_t asn_MBR_E_RABs_SubjectToCounterCheckItemExtIEs_165[3]; -extern asn_TYPE_descriptor_t asn_DEF_UE_ContextInformationRetrieve_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_UE_ContextInformationRetrieve_ExtIEs_specs_169; -extern asn_TYPE_member_t asn_MBR_UE_ContextInformationRetrieve_ExtIEs_169[3]; -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeSetupRetrieve_ItemExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeSetupRetrieve_ItemExtIEs_specs_173; -extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeSetupRetrieve_ItemExtIEs_173[3]; -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_ItemExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeAdded_SgNBAddReq_ItemExtIEs_specs_177; -extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeAdded_SgNBAddReq_ItemExtIEs_177[3]; -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresentExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresentExtIEs_specs_181; -extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresentExtIEs_181[3]; -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresentExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresentExtIEs_specs_185; -extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresentExtIEs_185[3]; -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_SgNBAddReqAck_ItemExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeAdded_SgNBAddReqAck_ItemExtIEs_specs_189; -extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeAdded_SgNBAddReqAck_ItemExtIEs_189[3]; -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresentExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresentExtIEs_specs_193; -extern asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresentExtIEs_193[3]; -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresentExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresentExtIEs_specs_197; -extern asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresentExtIEs_197[3]; -extern asn_TYPE_descriptor_t asn_DEF_ResponseInformationSgNBReconfComp_SuccessItemExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_ResponseInformationSgNBReconfComp_SuccessItemExtIEs_specs_201; -extern asn_TYPE_member_t asn_MBR_ResponseInformationSgNBReconfComp_SuccessItemExtIEs_201[3]; -extern asn_TYPE_descriptor_t asn_DEF_ResponseInformationSgNBReconfComp_RejectByMeNBItemExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_ResponseInformationSgNBReconfComp_RejectByMeNBItemExtIEs_specs_205; -extern asn_TYPE_member_t asn_MBR_ResponseInformationSgNBReconfComp_RejectByMeNBItemExtIEs_205[3]; -extern asn_TYPE_descriptor_t asn_DEF_UE_ContextInformationSgNBModReqExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_UE_ContextInformationSgNBModReqExtIEs_specs_209; -extern asn_TYPE_member_t asn_MBR_UE_ContextInformationSgNBModReqExtIEs_209[3]; -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_SgNBModReq_ItemExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeAdded_SgNBModReq_ItemExtIEs_specs_213; -extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeAdded_SgNBModReq_ItemExtIEs_213[3]; -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresentExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresentExtIEs_specs_217; -extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresentExtIEs_217[3]; -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_specs_221; -extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_221[3]; -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeModified_SgNBModReq_ItemExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeModified_SgNBModReq_ItemExtIEs_specs_225; -extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeModified_SgNBModReq_ItemExtIEs_225[3]; -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresentExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresentExtIEs_specs_229; -extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresentExtIEs_229[3]; -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_specs_233; -extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_233[3]; -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBModReq_ItemExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBModReq_ItemExtIEs_specs_237; -extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBModReq_ItemExtIEs_237[3]; -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresentExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresentExtIEs_specs_241; -extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresentExtIEs_241[3]; -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_specs_245; -extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_245[3]; -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemExtIEs_specs_249; -extern asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemExtIEs_249[3]; -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresentExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresentExtIEs_specs_253; -extern asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresentExtIEs_253[3]; -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_specs_257; -extern asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_257[3]; -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_SgNBModAck_ItemExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeAdded_SgNBModAck_ItemExtIEs_specs_261; -extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeAdded_SgNBModAck_ItemExtIEs_261[3]; -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresentExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresentExtIEs_specs_265; -extern asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresentExtIEs_265[3]; -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_specs_269; -extern asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_269[3]; -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBModAck_ItemExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBModAck_ItemExtIEs_specs_273; -extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBModAck_ItemExtIEs_273[3]; -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresentExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresentExtIEs_specs_277; -extern asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresentExtIEs_277[3]; -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_specs_281; -extern asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs_281[3]; -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBModReqd_ItemExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBModReqd_ItemExtIEs_specs_285; -extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBModReqd_ItemExtIEs_285[3]; -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeModified_SgNBModReqd_ItemExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeModified_SgNBModReqd_ItemExtIEs_specs_289; -extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeModified_SgNBModReqd_ItemExtIEs_289[3]; -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresentExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresentExtIEs_specs_293; -extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresentExtIEs_293[3]; -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresentExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresentExtIEs_specs_297; -extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresentExtIEs_297[3]; -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_ItemExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_AdmittedToBeModified_SgNBModConf_ItemExtIEs_specs_301; -extern asn_TYPE_member_t asn_MBR_E_RABs_AdmittedToBeModified_SgNBModConf_ItemExtIEs_301[3]; -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresentExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresentExtIEs_specs_305; -extern asn_TYPE_member_t asn_MBR_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresentExtIEs_305[3]; -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresentExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresentExtIEs_specs_309; -extern asn_TYPE_member_t asn_MBR_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresentExtIEs_309[3]; -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_ItemExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBRelReq_ItemExtIEs_specs_313; -extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBRelReq_ItemExtIEs_313[3]; -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresentExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresentExtIEs_specs_317; -extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresentExtIEs_317[3]; -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresentExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresentExtIEs_specs_321; -extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresentExtIEs_321[3]; -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemExtIEs_specs_325; -extern asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemExtIEs_325[3]; -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBRelReqd_ItemExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBRelReqd_ItemExtIEs_specs_329; -extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBRelReqd_ItemExtIEs_329[3]; -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_ItemExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBRelConf_ItemExtIEs_specs_333; -extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBRelConf_ItemExtIEs_333[3]; -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresentExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresentExtIEs_specs_337; -extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresentExtIEs_337[3]; -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresentExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresentExtIEs_specs_341; -extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresentExtIEs_341[3]; -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_SubjectToSgNBCounterCheck_ItemExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_SubjectToSgNBCounterCheck_ItemExtIEs_specs_345; -extern asn_TYPE_member_t asn_MBR_E_RABs_SubjectToSgNBCounterCheck_ItemExtIEs_345[3]; -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_ItemExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBChaConf_ItemExtIEs_specs_349; -extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBChaConf_ItemExtIEs_349[3]; -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresentExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresentExtIEs_specs_353; -extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresentExtIEs_353[3]; -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresentExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresentExtIEs_specs_357; -extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresentExtIEs_357[3]; -extern asn_TYPE_descriptor_t asn_DEF_ServedEUTRAcellsENDCX2Management_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_ServedEUTRAcellsENDCX2Management_ExtIEs_specs_361; -extern asn_TYPE_member_t asn_MBR_ServedEUTRAcellsENDCX2Management_ExtIEs_361[3]; -extern asn_TYPE_descriptor_t asn_DEF_En_gNBServedCells_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_En_gNBServedCells_ExtIEs_specs_365; -extern asn_TYPE_member_t asn_MBR_En_gNBServedCells_ExtIEs_365[3]; -extern asn_TYPE_descriptor_t asn_DEF_ServedNRCell_Information_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_ServedNRCell_Information_ExtIEs_specs_369; -extern asn_TYPE_member_t asn_MBR_ServedNRCell_Information_ExtIEs_369[3]; -extern asn_TYPE_descriptor_t asn_DEF_FDD_InfoServedNRCell_Information_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_FDD_InfoServedNRCell_Information_ExtIEs_specs_373; -extern asn_TYPE_member_t asn_MBR_FDD_InfoServedNRCell_Information_ExtIEs_373[3]; -extern asn_TYPE_descriptor_t asn_DEF_FDD_InfoNeighbourServedNRCell_Information_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_FDD_InfoNeighbourServedNRCell_Information_ExtIEs_specs_377; -extern asn_TYPE_member_t asn_MBR_FDD_InfoNeighbourServedNRCell_Information_ExtIEs_377[3]; -extern asn_TYPE_descriptor_t asn_DEF_TDD_InfoServedNRCell_Information_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_TDD_InfoServedNRCell_Information_ExtIEs_specs_381; -extern asn_TYPE_member_t asn_MBR_TDD_InfoServedNRCell_Information_ExtIEs_381[3]; -extern asn_TYPE_descriptor_t asn_DEF_TDD_InfoNeighbourServedNRCell_Information_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_TDD_InfoNeighbourServedNRCell_Information_ExtIEs_specs_385; -extern asn_TYPE_member_t asn_MBR_TDD_InfoNeighbourServedNRCell_Information_ExtIEs_385[3]; -extern asn_TYPE_descriptor_t asn_DEF_NRNeighbour_Information_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_NRNeighbour_Information_ExtIEs_specs_389; -extern asn_TYPE_member_t asn_MBR_NRNeighbour_Information_ExtIEs_389[3]; -extern asn_TYPE_descriptor_t asn_DEF_Limited_list_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_Limited_list_ExtIEs_specs_393; -extern asn_TYPE_member_t asn_MBR_Limited_list_ExtIEs_393[3]; -extern asn_TYPE_descriptor_t asn_DEF_ServedEUTRAcellsToModifyListENDCConfUpd_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_ServedEUTRAcellsToModifyListENDCConfUpd_ExtIEs_specs_397; -extern asn_TYPE_member_t asn_MBR_ServedEUTRAcellsToModifyListENDCConfUpd_ExtIEs_397[3]; -extern asn_TYPE_descriptor_t asn_DEF_ServedNRCellsToModify_Item_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_ServedNRCellsToModify_Item_ExtIEs_specs_401; -extern asn_TYPE_member_t asn_MBR_ServedNRCellsToModify_Item_ExtIEs_401[3]; -extern asn_TYPE_descriptor_t asn_DEF_ServedNRCellsToActivate_Item_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_ServedNRCellsToActivate_Item_ExtIEs_specs_405; -extern asn_TYPE_member_t asn_MBR_ServedNRCellsToActivate_Item_ExtIEs_405[3]; -extern asn_TYPE_descriptor_t asn_DEF_ActivatedNRCellList_Item_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_ActivatedNRCellList_Item_ExtIEs_specs_409; -extern asn_TYPE_member_t asn_MBR_ActivatedNRCellList_Item_ExtIEs_409[3]; -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_DataForwardingAddress_ItemExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_DataForwardingAddress_ItemExtIEs_specs_413; -extern asn_TYPE_member_t asn_MBR_E_RABs_DataForwardingAddress_ItemExtIEs_413[3]; -extern asn_TYPE_descriptor_t asn_DEF_ABSInformationFDD_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_ABSInformationFDD_ExtIEs_specs_417; -extern asn_TYPE_member_t asn_MBR_ABSInformationFDD_ExtIEs_417[3]; -extern asn_TYPE_descriptor_t asn_DEF_ABSInformationTDD_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_ABSInformationTDD_ExtIEs_specs_421; -extern asn_TYPE_member_t asn_MBR_ABSInformationTDD_ExtIEs_421[3]; -extern asn_TYPE_descriptor_t asn_DEF_ABS_Status_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_ABS_Status_ExtIEs_specs_425; -extern asn_TYPE_member_t asn_MBR_ABS_Status_ExtIEs_425[3]; -extern asn_TYPE_descriptor_t asn_DEF_AdditionalSpecialSubframe_Info_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_AdditionalSpecialSubframe_Info_ExtIEs_specs_429; -extern asn_TYPE_member_t asn_MBR_AdditionalSpecialSubframe_Info_ExtIEs_429[3]; -extern asn_TYPE_descriptor_t asn_DEF_AdditionalSpecialSubframeExtension_Info_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_AdditionalSpecialSubframeExtension_Info_ExtIEs_specs_433; -extern asn_TYPE_member_t asn_MBR_AdditionalSpecialSubframeExtension_Info_ExtIEs_433[3]; -extern asn_TYPE_descriptor_t asn_DEF_AllocationAndRetentionPriority_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_AllocationAndRetentionPriority_ExtIEs_specs_437; -extern asn_TYPE_member_t asn_MBR_AllocationAndRetentionPriority_ExtIEs_437[3]; -extern asn_TYPE_descriptor_t asn_DEF_AS_SecurityInformation_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_AS_SecurityInformation_ExtIEs_specs_441; -extern asn_TYPE_member_t asn_MBR_AS_SecurityInformation_ExtIEs_441[3]; -extern asn_TYPE_descriptor_t asn_DEF_BluetoothMeasurementConfiguration_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_BluetoothMeasurementConfiguration_ExtIEs_specs_445; -extern asn_TYPE_member_t asn_MBR_BluetoothMeasurementConfiguration_ExtIEs_445[3]; -extern asn_TYPE_descriptor_t asn_DEF_CellBasedMDT_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_CellBasedMDT_ExtIEs_specs_449; -extern asn_TYPE_member_t asn_MBR_CellBasedMDT_ExtIEs_449[3]; -extern asn_TYPE_descriptor_t asn_DEF_CellBasedQMC_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_CellBasedQMC_ExtIEs_specs_453; -extern asn_TYPE_member_t asn_MBR_CellBasedQMC_ExtIEs_453[3]; -extern asn_TYPE_descriptor_t asn_DEF_CellReplacingInfo_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_CellReplacingInfo_ExtIEs_specs_457; -extern asn_TYPE_member_t asn_MBR_CellReplacingInfo_ExtIEs_457[3]; -extern asn_TYPE_descriptor_t asn_DEF_CellType_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_CellType_ExtIEs_specs_461; -extern asn_TYPE_member_t asn_MBR_CellType_ExtIEs_461[3]; -extern asn_TYPE_descriptor_t asn_DEF_CNTypeRestrictionsItem_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_CNTypeRestrictionsItem_ExtIEs_specs_465; -extern asn_TYPE_member_t asn_MBR_CNTypeRestrictionsItem_ExtIEs_465[3]; -extern asn_TYPE_descriptor_t asn_DEF_CoMPHypothesisSetItem_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_CoMPHypothesisSetItem_ExtIEs_specs_469; -extern asn_TYPE_member_t asn_MBR_CoMPHypothesisSetItem_ExtIEs_469[3]; -extern asn_TYPE_descriptor_t asn_DEF_CoMPInformation_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_CoMPInformation_ExtIEs_specs_473; -extern asn_TYPE_member_t asn_MBR_CoMPInformation_ExtIEs_473[3]; -extern asn_TYPE_descriptor_t asn_DEF_CoMPInformationItem_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_CoMPInformationItem_ExtIEs_specs_477; -extern asn_TYPE_member_t asn_MBR_CoMPInformationItem_ExtIEs_477[3]; -extern asn_TYPE_descriptor_t asn_DEF_CoMPInformationStartTime_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_CoMPInformationStartTime_ExtIEs_specs_481; -extern asn_TYPE_member_t asn_MBR_CoMPInformationStartTime_ExtIEs_481[3]; -extern asn_TYPE_descriptor_t asn_DEF_CompositeAvailableCapacity_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_CompositeAvailableCapacity_ExtIEs_specs_485; -extern asn_TYPE_member_t asn_MBR_CompositeAvailableCapacity_ExtIEs_485[3]; -extern asn_TYPE_descriptor_t asn_DEF_CompositeAvailableCapacityGroup_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_CompositeAvailableCapacityGroup_ExtIEs_specs_489; -extern asn_TYPE_member_t asn_MBR_CompositeAvailableCapacityGroup_ExtIEs_489[3]; -extern asn_TYPE_descriptor_t asn_DEF_COUNTvalue_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_COUNTvalue_ExtIEs_specs_493; -extern asn_TYPE_member_t asn_MBR_COUNTvalue_ExtIEs_493[3]; -extern asn_TYPE_descriptor_t asn_DEF_COUNTValueExtended_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_COUNTValueExtended_ExtIEs_specs_497; -extern asn_TYPE_member_t asn_MBR_COUNTValueExtended_ExtIEs_497[3]; -extern asn_TYPE_descriptor_t asn_DEF_COUNTvaluePDCP_SNlength18_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_COUNTvaluePDCP_SNlength18_ExtIEs_specs_501; -extern asn_TYPE_member_t asn_MBR_COUNTvaluePDCP_SNlength18_ExtIEs_501[3]; -extern asn_TYPE_descriptor_t asn_DEF_CriticalityDiagnostics_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_CriticalityDiagnostics_ExtIEs_specs_505; -extern asn_TYPE_member_t asn_MBR_CriticalityDiagnostics_ExtIEs_505[3]; -extern asn_TYPE_descriptor_t asn_DEF_CriticalityDiagnostics_IE_List_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_CriticalityDiagnostics_IE_List_ExtIEs_specs_509; -extern asn_TYPE_member_t asn_MBR_CriticalityDiagnostics_IE_List_ExtIEs_509[3]; -extern asn_TYPE_descriptor_t asn_DEF_CSIReportList_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_CSIReportList_ExtIEs_specs_513; -extern asn_TYPE_member_t asn_MBR_CSIReportList_ExtIEs_513[3]; -extern asn_TYPE_descriptor_t asn_DEF_CSIReportPerCSIProcess_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_CSIReportPerCSIProcess_ExtIEs_specs_517; -extern asn_TYPE_member_t asn_MBR_CSIReportPerCSIProcess_ExtIEs_517[3]; -extern asn_TYPE_descriptor_t asn_DEF_CSIReportPerCSIProcessItem_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_CSIReportPerCSIProcessItem_ExtIEs_specs_521; -extern asn_TYPE_member_t asn_MBR_CSIReportPerCSIProcessItem_ExtIEs_521[3]; -extern asn_TYPE_descriptor_t asn_DEF_DataTrafficResourceIndication_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_DataTrafficResourceIndication_ExtIEs_specs_525; -extern asn_TYPE_member_t asn_MBR_DataTrafficResourceIndication_ExtIEs_525[3]; -extern asn_TYPE_descriptor_t asn_DEF_DeliveryStatus_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_DeliveryStatus_ExtIEs_specs_529; -extern asn_TYPE_member_t asn_MBR_DeliveryStatus_ExtIEs_529[3]; -extern asn_TYPE_descriptor_t asn_DEF_DynamicNAICSInformation_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_DynamicNAICSInformation_ExtIEs_specs_533; -extern asn_TYPE_member_t asn_MBR_DynamicNAICSInformation_ExtIEs_533[3]; -extern asn_TYPE_descriptor_t asn_DEF_ECGI_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_ECGI_ExtIEs_specs_537; -extern asn_TYPE_member_t asn_MBR_ECGI_ExtIEs_537[3]; -extern asn_TYPE_descriptor_t asn_DEF_EnhancedRNTP_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_EnhancedRNTP_ExtIEs_specs_541; -extern asn_TYPE_member_t asn_MBR_EnhancedRNTP_ExtIEs_541[3]; -extern asn_TYPE_descriptor_t asn_DEF_EnhancedRNTPStartTime_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_EnhancedRNTPStartTime_ExtIEs_specs_545; -extern asn_TYPE_member_t asn_MBR_EnhancedRNTPStartTime_ExtIEs_545[3]; -extern asn_TYPE_descriptor_t asn_DEF_EN_DC_ResourceConfigurationExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_EN_DC_ResourceConfigurationExtIEs_specs_549; -extern asn_TYPE_member_t asn_MBR_EN_DC_ResourceConfigurationExtIEs_549[3]; -extern asn_TYPE_descriptor_t asn_DEF_ERABActivityNotifyItem_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_ERABActivityNotifyItem_ExtIEs_specs_553; -extern asn_TYPE_member_t asn_MBR_ERABActivityNotifyItem_ExtIEs_553[3]; -extern asn_TYPE_descriptor_t asn_DEF_E_RAB_Level_QoS_Parameters_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RAB_Level_QoS_Parameters_ExtIEs_specs_557; -extern asn_TYPE_member_t asn_MBR_E_RAB_Level_QoS_Parameters_ExtIEs_557[3]; -extern asn_TYPE_descriptor_t asn_DEF_E_RAB_Item_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RAB_Item_ExtIEs_specs_561; -extern asn_TYPE_member_t asn_MBR_E_RAB_Item_ExtIEs_561[3]; -extern asn_TYPE_descriptor_t asn_DEF_E_RABUsageReport_Item_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABUsageReport_Item_ExtIEs_specs_565; -extern asn_TYPE_member_t asn_MBR_E_RABUsageReport_Item_ExtIEs_565[3]; -extern asn_TYPE_descriptor_t asn_DEF_ExpectedUEBehaviour_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_ExpectedUEBehaviour_ExtIEs_specs_569; -extern asn_TYPE_member_t asn_MBR_ExpectedUEBehaviour_ExtIEs_569[3]; -extern asn_TYPE_descriptor_t asn_DEF_ExpectedUEActivityBehaviour_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_ExpectedUEActivityBehaviour_ExtIEs_specs_573; -extern asn_TYPE_member_t asn_MBR_ExpectedUEActivityBehaviour_ExtIEs_573[3]; -extern asn_TYPE_descriptor_t asn_DEF_ExtendedULInterferenceOverloadInfo_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_ExtendedULInterferenceOverloadInfo_ExtIEs_specs_577; -extern asn_TYPE_member_t asn_MBR_ExtendedULInterferenceOverloadInfo_ExtIEs_577[3]; -extern asn_TYPE_descriptor_t asn_DEF_FDD_Info_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_FDD_Info_ExtIEs_specs_581; -extern asn_TYPE_member_t asn_MBR_FDD_Info_ExtIEs_581[3]; -extern asn_TYPE_descriptor_t asn_DEF_ForbiddenTAs_Item_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_ForbiddenTAs_Item_ExtIEs_specs_585; -extern asn_TYPE_member_t asn_MBR_ForbiddenTAs_Item_ExtIEs_585[3]; -extern asn_TYPE_descriptor_t asn_DEF_ForbiddenLAs_Item_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_ForbiddenLAs_Item_ExtIEs_specs_589; -extern asn_TYPE_member_t asn_MBR_ForbiddenLAs_Item_ExtIEs_589[3]; -extern asn_TYPE_descriptor_t asn_DEF_FreqBandNrItem_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_FreqBandNrItem_ExtIEs_specs_593; -extern asn_TYPE_member_t asn_MBR_FreqBandNrItem_ExtIEs_593[3]; -extern asn_TYPE_descriptor_t asn_DEF_GBR_QosInformation_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_GBR_QosInformation_ExtIEs_specs_597; -extern asn_TYPE_member_t asn_MBR_GBR_QosInformation_ExtIEs_597[3]; -extern asn_TYPE_descriptor_t asn_DEF_GlobalENB_ID_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_GlobalENB_ID_ExtIEs_specs_601; -extern asn_TYPE_member_t asn_MBR_GlobalENB_ID_ExtIEs_601[3]; -extern asn_TYPE_descriptor_t asn_DEF_GlobalGNB_ID_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_GlobalGNB_ID_ExtIEs_specs_605; -extern asn_TYPE_member_t asn_MBR_GlobalGNB_ID_ExtIEs_605[3]; -extern asn_TYPE_descriptor_t asn_DEF_GTPtunnelEndpoint_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_GTPtunnelEndpoint_ExtIEs_specs_609; -extern asn_TYPE_member_t asn_MBR_GTPtunnelEndpoint_ExtIEs_609[3]; -extern asn_TYPE_descriptor_t asn_DEF_GU_Group_ID_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_GU_Group_ID_ExtIEs_specs_613; -extern asn_TYPE_member_t asn_MBR_GU_Group_ID_ExtIEs_613[3]; -extern asn_TYPE_descriptor_t asn_DEF_GUMMEI_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_GUMMEI_ExtIEs_specs_617; -extern asn_TYPE_member_t asn_MBR_GUMMEI_ExtIEs_617[3]; -extern asn_TYPE_descriptor_t asn_DEF_HandoverRestrictionList_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_HandoverRestrictionList_ExtIEs_specs_621; -extern asn_TYPE_member_t asn_MBR_HandoverRestrictionList_ExtIEs_621[3]; -extern asn_TYPE_descriptor_t asn_DEF_HWLoadIndicator_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_HWLoadIndicator_ExtIEs_specs_625; -extern asn_TYPE_member_t asn_MBR_HWLoadIndicator_ExtIEs_625[3]; -extern asn_TYPE_descriptor_t asn_DEF_LastVisitedEUTRANCellInformation_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_LastVisitedEUTRANCellInformation_ExtIEs_specs_629; -extern asn_TYPE_member_t asn_MBR_LastVisitedEUTRANCellInformation_ExtIEs_629[3]; -extern asn_TYPE_descriptor_t asn_DEF_LocationReportingInformation_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_LocationReportingInformation_ExtIEs_specs_633; -extern asn_TYPE_member_t asn_MBR_LocationReportingInformation_ExtIEs_633[3]; -extern asn_TYPE_descriptor_t asn_DEF_M1PeriodicReporting_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_M1PeriodicReporting_ExtIEs_specs_637; -extern asn_TYPE_member_t asn_MBR_M1PeriodicReporting_ExtIEs_637[3]; -extern asn_TYPE_descriptor_t asn_DEF_M1ThresholdEventA2_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_M1ThresholdEventA2_ExtIEs_specs_641; -extern asn_TYPE_member_t asn_MBR_M1ThresholdEventA2_ExtIEs_641[3]; -extern asn_TYPE_descriptor_t asn_DEF_M3Configuration_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_M3Configuration_ExtIEs_specs_645; -extern asn_TYPE_member_t asn_MBR_M3Configuration_ExtIEs_645[3]; -extern asn_TYPE_descriptor_t asn_DEF_M4Configuration_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_M4Configuration_ExtIEs_specs_649; -extern asn_TYPE_member_t asn_MBR_M4Configuration_ExtIEs_649[3]; -extern asn_TYPE_descriptor_t asn_DEF_M5Configuration_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_M5Configuration_ExtIEs_specs_653; -extern asn_TYPE_member_t asn_MBR_M5Configuration_ExtIEs_653[3]; -extern asn_TYPE_descriptor_t asn_DEF_M6Configuration_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_M6Configuration_ExtIEs_specs_657; -extern asn_TYPE_member_t asn_MBR_M6Configuration_ExtIEs_657[3]; -extern asn_TYPE_descriptor_t asn_DEF_M7Configuration_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_M7Configuration_ExtIEs_specs_661; -extern asn_TYPE_member_t asn_MBR_M7Configuration_ExtIEs_661[3]; -extern asn_TYPE_descriptor_t asn_DEF_MDT_Configuration_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_MDT_Configuration_ExtIEs_specs_665; -extern asn_TYPE_member_t asn_MBR_MDT_Configuration_ExtIEs_665[3]; -extern asn_TYPE_descriptor_t asn_DEF_MeNBResourceCoordinationInformationExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_MeNBResourceCoordinationInformationExtIEs_specs_669; -extern asn_TYPE_member_t asn_MBR_MeNBResourceCoordinationInformationExtIEs_669[3]; -extern asn_TYPE_descriptor_t asn_DEF_MBSFN_Subframe_Info_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_MBSFN_Subframe_Info_ExtIEs_specs_673; -extern asn_TYPE_member_t asn_MBR_MBSFN_Subframe_Info_ExtIEs_673[3]; -extern asn_TYPE_descriptor_t asn_DEF_BandInfo_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_BandInfo_ExtIEs_specs_677; -extern asn_TYPE_member_t asn_MBR_BandInfo_ExtIEs_677[3]; -extern asn_TYPE_descriptor_t asn_DEF_SplitSRB_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_SplitSRB_ExtIEs_specs_681; -extern asn_TYPE_member_t asn_MBR_SplitSRB_ExtIEs_681[3]; -extern asn_TYPE_descriptor_t asn_DEF_UENRMeasurement_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_UENRMeasurement_ExtIEs_specs_685; -extern asn_TYPE_member_t asn_MBR_UENRMeasurement_ExtIEs_685[3]; -extern asn_TYPE_descriptor_t asn_DEF_Neighbour_Information_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_Neighbour_Information_ExtIEs_specs_689; -extern asn_TYPE_member_t asn_MBR_Neighbour_Information_ExtIEs_689[3]; -extern asn_TYPE_descriptor_t asn_DEF_NRFreqInfo_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_NRFreqInfo_ExtIEs_specs_693; -extern asn_TYPE_member_t asn_MBR_NRFreqInfo_ExtIEs_693[3]; -extern asn_TYPE_descriptor_t asn_DEF_NRCGI_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_NRCGI_ExtIEs_specs_697; -extern asn_TYPE_member_t asn_MBR_NRCGI_ExtIEs_697[3]; -extern asn_TYPE_descriptor_t asn_DEF_NR_TxBW_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_NR_TxBW_ExtIEs_specs_701; -extern asn_TYPE_member_t asn_MBR_NR_TxBW_ExtIEs_701[3]; -extern asn_TYPE_descriptor_t asn_DEF_NRUESecurityCapabilities_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_NRUESecurityCapabilities_ExtIEs_specs_705; -extern asn_TYPE_member_t asn_MBR_NRUESecurityCapabilities_ExtIEs_705[3]; -extern asn_TYPE_descriptor_t asn_DEF_PRACH_Configuration_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_PRACH_Configuration_ExtIEs_specs_709; -extern asn_TYPE_member_t asn_MBR_PRACH_Configuration_ExtIEs_709[3]; -extern asn_TYPE_descriptor_t asn_DEF_PLMNAreaBasedQMC_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_PLMNAreaBasedQMC_ExtIEs_specs_713; -extern asn_TYPE_member_t asn_MBR_PLMNAreaBasedQMC_ExtIEs_713[3]; -extern asn_TYPE_descriptor_t asn_DEF_ProSeAuthorized_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_ProSeAuthorized_ExtIEs_specs_717; -extern asn_TYPE_member_t asn_MBR_ProSeAuthorized_ExtIEs_717[3]; -extern asn_TYPE_descriptor_t asn_DEF_ProtectedEUTRAResourceIndication_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_ProtectedEUTRAResourceIndication_ExtIEs_specs_721; -extern asn_TYPE_member_t asn_MBR_ProtectedEUTRAResourceIndication_ExtIEs_721[3]; -extern asn_TYPE_descriptor_t asn_DEF_ProtectedFootprintTimePattern_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_ProtectedFootprintTimePattern_ExtIEs_specs_725; -extern asn_TYPE_member_t asn_MBR_ProtectedFootprintTimePattern_ExtIEs_725[3]; -extern asn_TYPE_descriptor_t asn_DEF_ProtectedResourceList_Item_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_ProtectedResourceList_Item_ExtIEs_specs_729; -extern asn_TYPE_member_t asn_MBR_ProtectedResourceList_Item_ExtIEs_729[3]; -extern asn_TYPE_descriptor_t asn_DEF_RadioResourceStatus_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RadioResourceStatus_ExtIEs_specs_733; -extern asn_TYPE_member_t asn_MBR_RadioResourceStatus_ExtIEs_733[3]; -extern asn_TYPE_descriptor_t asn_DEF_RelativeNarrowbandTxPower_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RelativeNarrowbandTxPower_ExtIEs_specs_737; -extern asn_TYPE_member_t asn_MBR_RelativeNarrowbandTxPower_ExtIEs_737[3]; -extern asn_TYPE_descriptor_t asn_DEF_ReservedSubframePattern_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_ReservedSubframePattern_ExtIEs_specs_741; -extern asn_TYPE_member_t asn_MBR_ReservedSubframePattern_ExtIEs_741[3]; -extern asn_TYPE_descriptor_t asn_DEF_RLC_Status_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RLC_Status_ExtIEs_specs_745; -extern asn_TYPE_member_t asn_MBR_RLC_Status_ExtIEs_745[3]; -extern asn_TYPE_descriptor_t asn_DEF_RSRPMeasurementResult_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RSRPMeasurementResult_ExtIEs_specs_749; -extern asn_TYPE_member_t asn_MBR_RSRPMeasurementResult_ExtIEs_749[3]; -extern asn_TYPE_descriptor_t asn_DEF_RSRPMRList_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RSRPMRList_ExtIEs_specs_753; -extern asn_TYPE_member_t asn_MBR_RSRPMRList_ExtIEs_753[3]; -extern asn_TYPE_descriptor_t asn_DEF_S1TNLLoadIndicator_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_S1TNLLoadIndicator_ExtIEs_specs_757; -extern asn_TYPE_member_t asn_MBR_S1TNLLoadIndicator_ExtIEs_757[3]; -extern asn_TYPE_descriptor_t asn_DEF_SecondaryRATUsageReport_Item_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_SecondaryRATUsageReport_Item_ExtIEs_specs_761; -extern asn_TYPE_member_t asn_MBR_SecondaryRATUsageReport_Item_ExtIEs_761[3]; -extern asn_TYPE_descriptor_t asn_DEF_ServedCell_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_ServedCell_ExtIEs_specs_765; -extern asn_TYPE_member_t asn_MBR_ServedCell_ExtIEs_765[3]; -extern asn_TYPE_descriptor_t asn_DEF_ServedCell_Information_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_ServedCell_Information_ExtIEs_specs_769; -extern asn_TYPE_member_t asn_MBR_ServedCell_Information_ExtIEs_769[3]; -extern asn_TYPE_descriptor_t asn_DEF_SgNBResourceCoordinationInformationExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_SgNBResourceCoordinationInformationExtIEs_specs_773; -extern asn_TYPE_member_t asn_MBR_SgNBResourceCoordinationInformationExtIEs_773[3]; -extern asn_TYPE_descriptor_t asn_DEF_SpecialSubframe_Info_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_SpecialSubframe_Info_ExtIEs_specs_777; -extern asn_TYPE_member_t asn_MBR_SpecialSubframe_Info_ExtIEs_777[3]; -extern asn_TYPE_descriptor_t asn_DEF_SubbandCQI_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_SubbandCQI_ExtIEs_specs_781; -extern asn_TYPE_member_t asn_MBR_SubbandCQI_ExtIEs_781[3]; -extern asn_TYPE_descriptor_t asn_DEF_Subscription_Based_UE_DifferentiationInfo_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_Subscription_Based_UE_DifferentiationInfo_ExtIEs_specs_785; -extern asn_TYPE_member_t asn_MBR_Subscription_Based_UE_DifferentiationInfo_ExtIEs_785[3]; -extern asn_TYPE_descriptor_t asn_DEF_ScheduledCommunicationTime_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_ScheduledCommunicationTime_ExtIEs_specs_789; -extern asn_TYPE_member_t asn_MBR_ScheduledCommunicationTime_ExtIEs_789[3]; -extern asn_TYPE_descriptor_t asn_DEF_SubbandCQIItem_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_SubbandCQIItem_ExtIEs_specs_793; -extern asn_TYPE_member_t asn_MBR_SubbandCQIItem_ExtIEs_793[3]; -extern asn_TYPE_descriptor_t asn_DEF_SULInformation_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_SULInformation_ExtIEs_specs_797; -extern asn_TYPE_member_t asn_MBR_SULInformation_ExtIEs_797[3]; -extern asn_TYPE_descriptor_t asn_DEF_SupportedSULFreqBandItem_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_SupportedSULFreqBandItem_ExtIEs_specs_801; -extern asn_TYPE_member_t asn_MBR_SupportedSULFreqBandItem_ExtIEs_801[3]; -extern asn_TYPE_descriptor_t asn_DEF_TABasedMDT_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_TABasedMDT_ExtIEs_specs_805; -extern asn_TYPE_member_t asn_MBR_TABasedMDT_ExtIEs_805[3]; -extern asn_TYPE_descriptor_t asn_DEF_TAIBasedMDT_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_TAIBasedMDT_ExtIEs_specs_809; -extern asn_TYPE_member_t asn_MBR_TAIBasedMDT_ExtIEs_809[3]; -extern asn_TYPE_descriptor_t asn_DEF_TAI_Item_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_TAI_Item_ExtIEs_specs_813; -extern asn_TYPE_member_t asn_MBR_TAI_Item_ExtIEs_813[3]; -extern asn_TYPE_descriptor_t asn_DEF_TABasedQMC_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_TABasedQMC_ExtIEs_specs_817; -extern asn_TYPE_member_t asn_MBR_TABasedQMC_ExtIEs_817[3]; -extern asn_TYPE_descriptor_t asn_DEF_TAIBasedQMC_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_TAIBasedQMC_ExtIEs_specs_821; -extern asn_TYPE_member_t asn_MBR_TAIBasedQMC_ExtIEs_821[3]; -extern asn_TYPE_descriptor_t asn_DEF_TDD_Info_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_TDD_Info_ExtIEs_specs_825; -extern asn_TYPE_member_t asn_MBR_TDD_Info_ExtIEs_825[3]; -extern asn_TYPE_descriptor_t asn_DEF_TraceActivation_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_TraceActivation_ExtIEs_specs_829; -extern asn_TYPE_member_t asn_MBR_TraceActivation_ExtIEs_829[3]; -extern asn_TYPE_descriptor_t asn_DEF_Tunnel_Information_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_Tunnel_Information_ExtIEs_specs_833; -extern asn_TYPE_member_t asn_MBR_Tunnel_Information_ExtIEs_833[3]; -extern asn_TYPE_descriptor_t asn_DEF_UEAggregate_MaximumBitrate_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_UEAggregate_MaximumBitrate_ExtIEs_specs_837; -extern asn_TYPE_member_t asn_MBR_UEAggregate_MaximumBitrate_ExtIEs_837[3]; -extern asn_TYPE_descriptor_t asn_DEF_UEAppLayerMeasConfig_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_UEAppLayerMeasConfig_ExtIEs_specs_841; -extern asn_TYPE_member_t asn_MBR_UEAppLayerMeasConfig_ExtIEs_841[3]; -extern asn_TYPE_descriptor_t asn_DEF_UESecurityCapabilities_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_UESecurityCapabilities_ExtIEs_specs_845; -extern asn_TYPE_member_t asn_MBR_UESecurityCapabilities_ExtIEs_845[3]; -extern asn_TYPE_descriptor_t asn_DEF_UE_Sidelink_Aggregate_MaximumBitRate_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_UE_Sidelink_Aggregate_MaximumBitRate_ExtIEs_specs_849; -extern asn_TYPE_member_t asn_MBR_UE_Sidelink_Aggregate_MaximumBitRate_ExtIEs_849[3]; -extern asn_TYPE_descriptor_t asn_DEF_UEsToBeResetList_Item_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_UEsToBeResetList_Item_ExtIEs_specs_853; -extern asn_TYPE_member_t asn_MBR_UEsToBeResetList_Item_ExtIEs_853[3]; -extern asn_TYPE_descriptor_t asn_DEF_ULandDLSharing_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_ULandDLSharing_ExtIEs_specs_857; -extern asn_TYPE_member_t asn_MBR_ULandDLSharing_ExtIEs_857[3]; -extern asn_TYPE_descriptor_t asn_DEF_ULConfiguration_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_ULConfiguration_ExtIEs_specs_861; -extern asn_TYPE_member_t asn_MBR_ULConfiguration_ExtIEs_861[3]; -extern asn_TYPE_descriptor_t asn_DEF_UL_HighInterferenceIndicationInfo_Item_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_UL_HighInterferenceIndicationInfo_Item_ExtIEs_specs_865; -extern asn_TYPE_member_t asn_MBR_UL_HighInterferenceIndicationInfo_Item_ExtIEs_865[3]; -extern asn_TYPE_descriptor_t asn_DEF_ULOnlySharing_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_ULOnlySharing_ExtIEs_specs_869; -extern asn_TYPE_member_t asn_MBR_ULOnlySharing_ExtIEs_869[3]; -extern asn_TYPE_descriptor_t asn_DEF_UsableABSInformationFDD_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_UsableABSInformationFDD_ExtIEs_specs_873; -extern asn_TYPE_member_t asn_MBR_UsableABSInformationFDD_ExtIEs_873[3]; -extern asn_TYPE_descriptor_t asn_DEF_UsableABSInformationTDD_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_UsableABSInformationTDD_ExtIEs_specs_877; -extern asn_TYPE_member_t asn_MBR_UsableABSInformationTDD_ExtIEs_877[3]; -extern asn_TYPE_descriptor_t asn_DEF_V2XServicesAuthorized_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_V2XServicesAuthorized_ExtIEs_specs_881; -extern asn_TYPE_member_t asn_MBR_V2XServicesAuthorized_ExtIEs_881[3]; -extern asn_TYPE_descriptor_t asn_DEF_WidebandCQI_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_WidebandCQI_ExtIEs_specs_885; -extern asn_TYPE_member_t asn_MBR_WidebandCQI_ExtIEs_885[3]; -extern asn_TYPE_descriptor_t asn_DEF_WLANMeasurementConfiguration_ExtIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_WLANMeasurementConfiguration_ExtIEs_specs_889; -extern asn_TYPE_member_t asn_MBR_WLANMeasurementConfiguration_ExtIEs_889[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _ProtocolExtensionField_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/ProtocolIE-Container.c b/e2sim/previous/ASN1c/ProtocolIE-Container.c deleted file mode 100644 index 3e49d91..0000000 --- a/e2sim/previous/ASN1c/ProtocolIE-Container.c +++ /dev/null @@ -1,4828 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-Containers" - * found in "../../asnFiles/X2AP-Containers.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "ProtocolIE-Container.h" - -#include "ProtocolIE-Field.h" -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P0_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P1_constr_3 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P2_constr_5 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P3_constr_7 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P4_constr_9 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P5_constr_11 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P6_constr_13 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P7_constr_15 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P8_constr_17 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P9_constr_19 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P10_constr_21 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P11_constr_23 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P12_constr_25 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P13_constr_27 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P14_constr_29 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P15_constr_31 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P16_constr_33 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P17_constr_35 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P18_constr_37 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P19_constr_39 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P20_constr_41 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P21_constr_43 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P22_constr_45 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P23_constr_47 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P24_constr_49 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P25_constr_51 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P26_constr_53 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P27_constr_55 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P28_constr_57 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P29_constr_59 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P30_constr_61 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P31_constr_63 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P32_constr_65 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P33_constr_67 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P34_constr_69 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P35_constr_71 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P36_constr_73 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P37_constr_75 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P38_constr_77 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P39_constr_79 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P40_constr_81 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P41_constr_83 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P42_constr_85 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P43_constr_87 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P44_constr_89 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P45_constr_91 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P46_constr_93 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P47_constr_95 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P48_constr_97 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P49_constr_99 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P50_constr_101 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P51_constr_103 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P52_constr_105 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P53_constr_107 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P54_constr_109 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P55_constr_111 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P56_constr_113 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P57_constr_115 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P58_constr_117 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P59_constr_119 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P60_constr_121 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P61_constr_123 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P62_constr_125 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P63_constr_127 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P64_constr_129 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P65_constr_131 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P66_constr_133 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P67_constr_135 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P68_constr_137 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P69_constr_139 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P70_constr_141 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P71_constr_143 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P72_constr_145 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P73_constr_147 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P74_constr_149 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P75_constr_151 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P76_constr_153 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P77_constr_155 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P78_constr_157 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P79_constr_159 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P80_constr_161 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P81_constr_163 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P82_constr_165 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P83_constr_167 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P84_constr_169 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P85_constr_171 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P86_constr_173 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P87_constr_175 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P88_constr_177 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P89_constr_179 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P90_constr_181 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P91_constr_183 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P92_constr_185 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P93_constr_187 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P94_constr_189 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P95_constr_191 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P96_constr_193 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P97_constr_195 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P98_constr_197 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P99_constr_199 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P100_constr_201 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P101_constr_203 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P102_constr_205 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P103_constr_207 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P104_constr_209 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P105_constr_211 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P106_constr_213 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P107_constr_215 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P108_constr_217 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P109_constr_219 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P110_constr_221 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P111_constr_223 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P112_constr_225 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P113_constr_227 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P114_constr_229 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P115_constr_231 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P116_constr_233 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P117_constr_235 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P118_constr_237 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P119_constr_239 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P0_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICsubscriptionRequest_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_119P0_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P0_specs_1 = { - sizeof(struct ProtocolIE_Container_119P0), - offsetof(struct ProtocolIE_Container_119P0, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P0 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_119P0_tags_1, - sizeof(asn_DEF_ProtocolIE_Container_119P0_tags_1) - /sizeof(asn_DEF_ProtocolIE_Container_119P0_tags_1[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_119P0_tags_1, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_119P0_tags_1) - /sizeof(asn_DEF_ProtocolIE_Container_119P0_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_119P0_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_119P0_1, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_119P0_specs_1 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P1_3[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICsubscriptionResponse_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_119P1_tags_3[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P1_specs_3 = { - sizeof(struct ProtocolIE_Container_119P1), - offsetof(struct ProtocolIE_Container_119P1, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P1 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_119P1_tags_3, - sizeof(asn_DEF_ProtocolIE_Container_119P1_tags_3) - /sizeof(asn_DEF_ProtocolIE_Container_119P1_tags_3[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_119P1_tags_3, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_119P1_tags_3) - /sizeof(asn_DEF_ProtocolIE_Container_119P1_tags_3[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_119P1_constr_3, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_119P1_3, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_119P1_specs_3 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P2_5[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICsubscriptionFailure_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_119P2_tags_5[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P2_specs_5 = { - sizeof(struct ProtocolIE_Container_119P2), - offsetof(struct ProtocolIE_Container_119P2, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P2 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_119P2_tags_5, - sizeof(asn_DEF_ProtocolIE_Container_119P2_tags_5) - /sizeof(asn_DEF_ProtocolIE_Container_119P2_tags_5[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_119P2_tags_5, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_119P2_tags_5) - /sizeof(asn_DEF_ProtocolIE_Container_119P2_tags_5[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_119P2_constr_5, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_119P2_5, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_119P2_specs_5 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P3_7[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICsubscriptionDeleteRequest_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_119P3_tags_7[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P3_specs_7 = { - sizeof(struct ProtocolIE_Container_119P3), - offsetof(struct ProtocolIE_Container_119P3, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P3 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_119P3_tags_7, - sizeof(asn_DEF_ProtocolIE_Container_119P3_tags_7) - /sizeof(asn_DEF_ProtocolIE_Container_119P3_tags_7[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_119P3_tags_7, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_119P3_tags_7) - /sizeof(asn_DEF_ProtocolIE_Container_119P3_tags_7[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_119P3_constr_7, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_119P3_7, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_119P3_specs_7 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P4_9[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICsubscriptionDeleteResponse_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_119P4_tags_9[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P4_specs_9 = { - sizeof(struct ProtocolIE_Container_119P4), - offsetof(struct ProtocolIE_Container_119P4, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P4 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_119P4_tags_9, - sizeof(asn_DEF_ProtocolIE_Container_119P4_tags_9) - /sizeof(asn_DEF_ProtocolIE_Container_119P4_tags_9[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_119P4_tags_9, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_119P4_tags_9) - /sizeof(asn_DEF_ProtocolIE_Container_119P4_tags_9[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_119P4_constr_9, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_119P4_9, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_119P4_specs_9 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P5_11[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICsubscriptionDeleteFailure_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_119P5_tags_11[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P5_specs_11 = { - sizeof(struct ProtocolIE_Container_119P5), - offsetof(struct ProtocolIE_Container_119P5, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P5 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_119P5_tags_11, - sizeof(asn_DEF_ProtocolIE_Container_119P5_tags_11) - /sizeof(asn_DEF_ProtocolIE_Container_119P5_tags_11[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_119P5_tags_11, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_119P5_tags_11) - /sizeof(asn_DEF_ProtocolIE_Container_119P5_tags_11[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_119P5_constr_11, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_119P5_11, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_119P5_specs_11 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P6_13[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICindication_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_119P6_tags_13[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P6_specs_13 = { - sizeof(struct ProtocolIE_Container_119P6), - offsetof(struct ProtocolIE_Container_119P6, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P6 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_119P6_tags_13, - sizeof(asn_DEF_ProtocolIE_Container_119P6_tags_13) - /sizeof(asn_DEF_ProtocolIE_Container_119P6_tags_13[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_119P6_tags_13, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_119P6_tags_13) - /sizeof(asn_DEF_ProtocolIE_Container_119P6_tags_13[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_119P6_constr_13, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_119P6_13, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_119P6_specs_13 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P7_15[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICcontrolRequest_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_119P7_tags_15[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P7_specs_15 = { - sizeof(struct ProtocolIE_Container_119P7), - offsetof(struct ProtocolIE_Container_119P7, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P7 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_119P7_tags_15, - sizeof(asn_DEF_ProtocolIE_Container_119P7_tags_15) - /sizeof(asn_DEF_ProtocolIE_Container_119P7_tags_15[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_119P7_tags_15, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_119P7_tags_15) - /sizeof(asn_DEF_ProtocolIE_Container_119P7_tags_15[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_119P7_constr_15, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_119P7_15, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_119P7_specs_15 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P8_17[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICcontrolAcknowledge_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_119P8_tags_17[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P8_specs_17 = { - sizeof(struct ProtocolIE_Container_119P8), - offsetof(struct ProtocolIE_Container_119P8, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P8 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_119P8_tags_17, - sizeof(asn_DEF_ProtocolIE_Container_119P8_tags_17) - /sizeof(asn_DEF_ProtocolIE_Container_119P8_tags_17[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_119P8_tags_17, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_119P8_tags_17) - /sizeof(asn_DEF_ProtocolIE_Container_119P8_tags_17[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_119P8_constr_17, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_119P8_17, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_119P8_specs_17 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P9_19[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICcontrolFailure_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_119P9_tags_19[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P9_specs_19 = { - sizeof(struct ProtocolIE_Container_119P9), - offsetof(struct ProtocolIE_Container_119P9, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P9 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_119P9_tags_19, - sizeof(asn_DEF_ProtocolIE_Container_119P9_tags_19) - /sizeof(asn_DEF_ProtocolIE_Container_119P9_tags_19[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_119P9_tags_19, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_119P9_tags_19) - /sizeof(asn_DEF_ProtocolIE_Container_119P9_tags_19[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_119P9_constr_19, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_119P9_19, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_119P9_specs_19 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P10_21[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICserviceUpdate_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_119P10_tags_21[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P10_specs_21 = { - sizeof(struct ProtocolIE_Container_119P10), - offsetof(struct ProtocolIE_Container_119P10, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P10 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_119P10_tags_21, - sizeof(asn_DEF_ProtocolIE_Container_119P10_tags_21) - /sizeof(asn_DEF_ProtocolIE_Container_119P10_tags_21[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_119P10_tags_21, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_119P10_tags_21) - /sizeof(asn_DEF_ProtocolIE_Container_119P10_tags_21[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_119P10_constr_21, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_119P10_21, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_119P10_specs_21 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P11_23[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICserviceUpdateAcknowledge_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_119P11_tags_23[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P11_specs_23 = { - sizeof(struct ProtocolIE_Container_119P11), - offsetof(struct ProtocolIE_Container_119P11, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P11 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_119P11_tags_23, - sizeof(asn_DEF_ProtocolIE_Container_119P11_tags_23) - /sizeof(asn_DEF_ProtocolIE_Container_119P11_tags_23[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_119P11_tags_23, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_119P11_tags_23) - /sizeof(asn_DEF_ProtocolIE_Container_119P11_tags_23[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_119P11_constr_23, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_119P11_23, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_119P11_specs_23 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P12_25[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICserviceUpdateFailure_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_119P12_tags_25[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P12_specs_25 = { - sizeof(struct ProtocolIE_Container_119P12), - offsetof(struct ProtocolIE_Container_119P12, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P12 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_119P12_tags_25, - sizeof(asn_DEF_ProtocolIE_Container_119P12_tags_25) - /sizeof(asn_DEF_ProtocolIE_Container_119P12_tags_25[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_119P12_tags_25, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_119P12_tags_25) - /sizeof(asn_DEF_ProtocolIE_Container_119P12_tags_25[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_119P12_constr_25, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_119P12_25, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_119P12_specs_25 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P13_27[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICserviceQuery_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_119P13_tags_27[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P13_specs_27 = { - sizeof(struct ProtocolIE_Container_119P13), - offsetof(struct ProtocolIE_Container_119P13, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P13 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_119P13_tags_27, - sizeof(asn_DEF_ProtocolIE_Container_119P13_tags_27) - /sizeof(asn_DEF_ProtocolIE_Container_119P13_tags_27[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_119P13_tags_27, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_119P13_tags_27) - /sizeof(asn_DEF_ProtocolIE_Container_119P13_tags_27[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_119P13_constr_27, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_119P13_27, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_119P13_specs_27 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P14_29[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_HandoverRequest_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_119P14_tags_29[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P14_specs_29 = { - sizeof(struct ProtocolIE_Container_119P14), - offsetof(struct ProtocolIE_Container_119P14, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P14 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_119P14_tags_29, - sizeof(asn_DEF_ProtocolIE_Container_119P14_tags_29) - /sizeof(asn_DEF_ProtocolIE_Container_119P14_tags_29[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_119P14_tags_29, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_119P14_tags_29) - /sizeof(asn_DEF_ProtocolIE_Container_119P14_tags_29[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_119P14_constr_29, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_119P14_29, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_119P14_specs_29 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P15_31[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_HandoverRequestAcknowledge_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_119P15_tags_31[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P15_specs_31 = { - sizeof(struct ProtocolIE_Container_119P15), - offsetof(struct ProtocolIE_Container_119P15, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P15 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_119P15_tags_31, - sizeof(asn_DEF_ProtocolIE_Container_119P15_tags_31) - /sizeof(asn_DEF_ProtocolIE_Container_119P15_tags_31[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_119P15_tags_31, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_119P15_tags_31) - /sizeof(asn_DEF_ProtocolIE_Container_119P15_tags_31[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_119P15_constr_31, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_119P15_31, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_119P15_specs_31 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P16_33[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_HandoverPreparationFailure_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_119P16_tags_33[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P16_specs_33 = { - sizeof(struct ProtocolIE_Container_119P16), - offsetof(struct ProtocolIE_Container_119P16, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P16 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_119P16_tags_33, - sizeof(asn_DEF_ProtocolIE_Container_119P16_tags_33) - /sizeof(asn_DEF_ProtocolIE_Container_119P16_tags_33[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_119P16_tags_33, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_119P16_tags_33) - /sizeof(asn_DEF_ProtocolIE_Container_119P16_tags_33[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_119P16_constr_33, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_119P16_33, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_119P16_specs_33 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P17_35[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_HandoverReport_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_119P17_tags_35[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P17_specs_35 = { - sizeof(struct ProtocolIE_Container_119P17), - offsetof(struct ProtocolIE_Container_119P17, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P17 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_119P17_tags_35, - sizeof(asn_DEF_ProtocolIE_Container_119P17_tags_35) - /sizeof(asn_DEF_ProtocolIE_Container_119P17_tags_35[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_119P17_tags_35, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_119P17_tags_35) - /sizeof(asn_DEF_ProtocolIE_Container_119P17_tags_35[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_119P17_constr_35, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_119P17_35, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_119P17_specs_35 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P18_37[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_SNStatusTransfer_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_119P18_tags_37[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P18_specs_37 = { - sizeof(struct ProtocolIE_Container_119P18), - offsetof(struct ProtocolIE_Container_119P18, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P18 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_119P18_tags_37, - sizeof(asn_DEF_ProtocolIE_Container_119P18_tags_37) - /sizeof(asn_DEF_ProtocolIE_Container_119P18_tags_37[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_119P18_tags_37, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_119P18_tags_37) - /sizeof(asn_DEF_ProtocolIE_Container_119P18_tags_37[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_119P18_constr_37, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_119P18_37, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_119P18_specs_37 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P19_39[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_UEContextRelease_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_119P19_tags_39[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P19_specs_39 = { - sizeof(struct ProtocolIE_Container_119P19), - offsetof(struct ProtocolIE_Container_119P19, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P19 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_119P19_tags_39, - sizeof(asn_DEF_ProtocolIE_Container_119P19_tags_39) - /sizeof(asn_DEF_ProtocolIE_Container_119P19_tags_39[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_119P19_tags_39, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_119P19_tags_39) - /sizeof(asn_DEF_ProtocolIE_Container_119P19_tags_39[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_119P19_constr_39, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_119P19_39, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_119P19_specs_39 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P20_41[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_HandoverCancel_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_119P20_tags_41[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P20_specs_41 = { - sizeof(struct ProtocolIE_Container_119P20), - offsetof(struct ProtocolIE_Container_119P20, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P20 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_119P20_tags_41, - sizeof(asn_DEF_ProtocolIE_Container_119P20_tags_41) - /sizeof(asn_DEF_ProtocolIE_Container_119P20_tags_41[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_119P20_tags_41, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_119P20_tags_41) - /sizeof(asn_DEF_ProtocolIE_Container_119P20_tags_41[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_119P20_constr_41, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_119P20_41, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_119P20_specs_41 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P21_43[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ErrorIndication_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_119P21_tags_43[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P21_specs_43 = { - sizeof(struct ProtocolIE_Container_119P21), - offsetof(struct ProtocolIE_Container_119P21, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P21 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_119P21_tags_43, - sizeof(asn_DEF_ProtocolIE_Container_119P21_tags_43) - /sizeof(asn_DEF_ProtocolIE_Container_119P21_tags_43[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_119P21_tags_43, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_119P21_tags_43) - /sizeof(asn_DEF_ProtocolIE_Container_119P21_tags_43[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_119P21_constr_43, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_119P21_43, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_119P21_specs_43 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P22_45[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ResetRequest_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_119P22_tags_45[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P22_specs_45 = { - sizeof(struct ProtocolIE_Container_119P22), - offsetof(struct ProtocolIE_Container_119P22, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P22 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_119P22_tags_45, - sizeof(asn_DEF_ProtocolIE_Container_119P22_tags_45) - /sizeof(asn_DEF_ProtocolIE_Container_119P22_tags_45[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_119P22_tags_45, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_119P22_tags_45) - /sizeof(asn_DEF_ProtocolIE_Container_119P22_tags_45[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_119P22_constr_45, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_119P22_45, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_119P22_specs_45 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P23_47[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ResetResponse_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_119P23_tags_47[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P23_specs_47 = { - sizeof(struct ProtocolIE_Container_119P23), - offsetof(struct ProtocolIE_Container_119P23, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P23 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_119P23_tags_47, - sizeof(asn_DEF_ProtocolIE_Container_119P23_tags_47) - /sizeof(asn_DEF_ProtocolIE_Container_119P23_tags_47[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_119P23_tags_47, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_119P23_tags_47) - /sizeof(asn_DEF_ProtocolIE_Container_119P23_tags_47[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_119P23_constr_47, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_119P23_47, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_119P23_specs_47 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P24_49[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_X2SetupRequest_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_119P24_tags_49[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P24_specs_49 = { - sizeof(struct ProtocolIE_Container_119P24), - offsetof(struct ProtocolIE_Container_119P24, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P24 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_119P24_tags_49, - sizeof(asn_DEF_ProtocolIE_Container_119P24_tags_49) - /sizeof(asn_DEF_ProtocolIE_Container_119P24_tags_49[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_119P24_tags_49, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_119P24_tags_49) - /sizeof(asn_DEF_ProtocolIE_Container_119P24_tags_49[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_119P24_constr_49, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_119P24_49, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_119P24_specs_49 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P25_51[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_X2SetupResponse_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_119P25_tags_51[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P25_specs_51 = { - sizeof(struct ProtocolIE_Container_119P25), - offsetof(struct ProtocolIE_Container_119P25, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P25 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_119P25_tags_51, - sizeof(asn_DEF_ProtocolIE_Container_119P25_tags_51) - /sizeof(asn_DEF_ProtocolIE_Container_119P25_tags_51[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_119P25_tags_51, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_119P25_tags_51) - /sizeof(asn_DEF_ProtocolIE_Container_119P25_tags_51[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_119P25_constr_51, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_119P25_51, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_119P25_specs_51 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P26_53[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_X2SetupFailure_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_119P26_tags_53[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P26_specs_53 = { - sizeof(struct ProtocolIE_Container_119P26), - offsetof(struct ProtocolIE_Container_119P26, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P26 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_119P26_tags_53, - sizeof(asn_DEF_ProtocolIE_Container_119P26_tags_53) - /sizeof(asn_DEF_ProtocolIE_Container_119P26_tags_53[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_119P26_tags_53, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_119P26_tags_53) - /sizeof(asn_DEF_ProtocolIE_Container_119P26_tags_53[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_119P26_constr_53, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_119P26_53, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_119P26_specs_53 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P27_55[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_LoadInformation_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_119P27_tags_55[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P27_specs_55 = { - sizeof(struct ProtocolIE_Container_119P27), - offsetof(struct ProtocolIE_Container_119P27, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P27 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_119P27_tags_55, - sizeof(asn_DEF_ProtocolIE_Container_119P27_tags_55) - /sizeof(asn_DEF_ProtocolIE_Container_119P27_tags_55[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_119P27_tags_55, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_119P27_tags_55) - /sizeof(asn_DEF_ProtocolIE_Container_119P27_tags_55[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_119P27_constr_55, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_119P27_55, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_119P27_specs_55 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P28_57[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ENBConfigurationUpdate_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_119P28_tags_57[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P28_specs_57 = { - sizeof(struct ProtocolIE_Container_119P28), - offsetof(struct ProtocolIE_Container_119P28, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P28 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_119P28_tags_57, - sizeof(asn_DEF_ProtocolIE_Container_119P28_tags_57) - /sizeof(asn_DEF_ProtocolIE_Container_119P28_tags_57[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_119P28_tags_57, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_119P28_tags_57) - /sizeof(asn_DEF_ProtocolIE_Container_119P28_tags_57[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_119P28_constr_57, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_119P28_57, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_119P28_specs_57 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P29_59[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ENBConfigurationUpdateAcknowledge_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_119P29_tags_59[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P29_specs_59 = { - sizeof(struct ProtocolIE_Container_119P29), - offsetof(struct ProtocolIE_Container_119P29, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P29 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_119P29_tags_59, - sizeof(asn_DEF_ProtocolIE_Container_119P29_tags_59) - /sizeof(asn_DEF_ProtocolIE_Container_119P29_tags_59[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_119P29_tags_59, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_119P29_tags_59) - /sizeof(asn_DEF_ProtocolIE_Container_119P29_tags_59[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_119P29_constr_59, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_119P29_59, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_119P29_specs_59 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P30_61[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ENBConfigurationUpdateFailure_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_119P30_tags_61[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P30_specs_61 = { - sizeof(struct ProtocolIE_Container_119P30), - offsetof(struct ProtocolIE_Container_119P30, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P30 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_119P30_tags_61, - sizeof(asn_DEF_ProtocolIE_Container_119P30_tags_61) - /sizeof(asn_DEF_ProtocolIE_Container_119P30_tags_61[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_119P30_tags_61, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_119P30_tags_61) - /sizeof(asn_DEF_ProtocolIE_Container_119P30_tags_61[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_119P30_constr_61, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_119P30_61, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_119P30_specs_61 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P31_63[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ResourceStatusRequest_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_119P31_tags_63[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P31_specs_63 = { - sizeof(struct ProtocolIE_Container_119P31), - offsetof(struct ProtocolIE_Container_119P31, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P31 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_119P31_tags_63, - sizeof(asn_DEF_ProtocolIE_Container_119P31_tags_63) - /sizeof(asn_DEF_ProtocolIE_Container_119P31_tags_63[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_119P31_tags_63, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_119P31_tags_63) - /sizeof(asn_DEF_ProtocolIE_Container_119P31_tags_63[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_119P31_constr_63, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_119P31_63, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_119P31_specs_63 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P32_65[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ResourceStatusResponse_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_119P32_tags_65[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P32_specs_65 = { - sizeof(struct ProtocolIE_Container_119P32), - offsetof(struct ProtocolIE_Container_119P32, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P32 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_119P32_tags_65, - sizeof(asn_DEF_ProtocolIE_Container_119P32_tags_65) - /sizeof(asn_DEF_ProtocolIE_Container_119P32_tags_65[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_119P32_tags_65, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_119P32_tags_65) - /sizeof(asn_DEF_ProtocolIE_Container_119P32_tags_65[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_119P32_constr_65, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_119P32_65, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_119P32_specs_65 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P33_67[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ResourceStatusFailure_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_119P33_tags_67[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P33_specs_67 = { - sizeof(struct ProtocolIE_Container_119P33), - offsetof(struct ProtocolIE_Container_119P33, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P33 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_119P33_tags_67, - sizeof(asn_DEF_ProtocolIE_Container_119P33_tags_67) - /sizeof(asn_DEF_ProtocolIE_Container_119P33_tags_67[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_119P33_tags_67, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_119P33_tags_67) - /sizeof(asn_DEF_ProtocolIE_Container_119P33_tags_67[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_119P33_constr_67, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_119P33_67, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_119P33_specs_67 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P34_69[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ResourceStatusUpdate_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_119P34_tags_69[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P34_specs_69 = { - sizeof(struct ProtocolIE_Container_119P34), - offsetof(struct ProtocolIE_Container_119P34, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P34 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_119P34_tags_69, - sizeof(asn_DEF_ProtocolIE_Container_119P34_tags_69) - /sizeof(asn_DEF_ProtocolIE_Container_119P34_tags_69[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_119P34_tags_69, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_119P34_tags_69) - /sizeof(asn_DEF_ProtocolIE_Container_119P34_tags_69[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_119P34_constr_69, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_119P34_69, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_119P34_specs_69 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P35_71[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_MobilityChangeRequest_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_119P35_tags_71[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P35_specs_71 = { - sizeof(struct ProtocolIE_Container_119P35), - offsetof(struct ProtocolIE_Container_119P35, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P35 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_119P35_tags_71, - sizeof(asn_DEF_ProtocolIE_Container_119P35_tags_71) - /sizeof(asn_DEF_ProtocolIE_Container_119P35_tags_71[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_119P35_tags_71, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_119P35_tags_71) - /sizeof(asn_DEF_ProtocolIE_Container_119P35_tags_71[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_119P35_constr_71, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_119P35_71, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_119P35_specs_71 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P36_73[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_MobilityChangeAcknowledge_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_119P36_tags_73[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P36_specs_73 = { - sizeof(struct ProtocolIE_Container_119P36), - offsetof(struct ProtocolIE_Container_119P36, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P36 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_119P36_tags_73, - sizeof(asn_DEF_ProtocolIE_Container_119P36_tags_73) - /sizeof(asn_DEF_ProtocolIE_Container_119P36_tags_73[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_119P36_tags_73, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_119P36_tags_73) - /sizeof(asn_DEF_ProtocolIE_Container_119P36_tags_73[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_119P36_constr_73, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_119P36_73, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_119P36_specs_73 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P37_75[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_MobilityChangeFailure_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_119P37_tags_75[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P37_specs_75 = { - sizeof(struct ProtocolIE_Container_119P37), - offsetof(struct ProtocolIE_Container_119P37, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P37 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_119P37_tags_75, - sizeof(asn_DEF_ProtocolIE_Container_119P37_tags_75) - /sizeof(asn_DEF_ProtocolIE_Container_119P37_tags_75[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_119P37_tags_75, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_119P37_tags_75) - /sizeof(asn_DEF_ProtocolIE_Container_119P37_tags_75[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_119P37_constr_75, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_119P37_75, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_119P37_specs_75 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P38_77[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RLFIndication_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_119P38_tags_77[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P38_specs_77 = { - sizeof(struct ProtocolIE_Container_119P38), - offsetof(struct ProtocolIE_Container_119P38, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P38 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_119P38_tags_77, - sizeof(asn_DEF_ProtocolIE_Container_119P38_tags_77) - /sizeof(asn_DEF_ProtocolIE_Container_119P38_tags_77[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_119P38_tags_77, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_119P38_tags_77) - /sizeof(asn_DEF_ProtocolIE_Container_119P38_tags_77[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_119P38_constr_77, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_119P38_77, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_119P38_specs_77 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P39_79[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CellActivationRequest_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_119P39_tags_79[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P39_specs_79 = { - sizeof(struct ProtocolIE_Container_119P39), - offsetof(struct ProtocolIE_Container_119P39, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P39 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_119P39_tags_79, - sizeof(asn_DEF_ProtocolIE_Container_119P39_tags_79) - /sizeof(asn_DEF_ProtocolIE_Container_119P39_tags_79[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_119P39_tags_79, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_119P39_tags_79) - /sizeof(asn_DEF_ProtocolIE_Container_119P39_tags_79[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_119P39_constr_79, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_119P39_79, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_119P39_specs_79 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P40_81[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CellActivationResponse_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_119P40_tags_81[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P40_specs_81 = { - sizeof(struct ProtocolIE_Container_119P40), - offsetof(struct ProtocolIE_Container_119P40, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P40 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_119P40_tags_81, - sizeof(asn_DEF_ProtocolIE_Container_119P40_tags_81) - /sizeof(asn_DEF_ProtocolIE_Container_119P40_tags_81[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_119P40_tags_81, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_119P40_tags_81) - /sizeof(asn_DEF_ProtocolIE_Container_119P40_tags_81[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_119P40_constr_81, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_119P40_81, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_119P40_specs_81 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P41_83[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CellActivationFailure_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_119P41_tags_83[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P41_specs_83 = { - sizeof(struct ProtocolIE_Container_119P41), - offsetof(struct ProtocolIE_Container_119P41, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P41 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_119P41_tags_83, - sizeof(asn_DEF_ProtocolIE_Container_119P41_tags_83) - /sizeof(asn_DEF_ProtocolIE_Container_119P41_tags_83[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_119P41_tags_83, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_119P41_tags_83) - /sizeof(asn_DEF_ProtocolIE_Container_119P41_tags_83[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_119P41_constr_83, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_119P41_83, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_119P41_specs_83 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P42_85[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_X2Release_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_119P42_tags_85[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P42_specs_85 = { - sizeof(struct ProtocolIE_Container_119P42), - offsetof(struct ProtocolIE_Container_119P42, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P42 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_119P42_tags_85, - sizeof(asn_DEF_ProtocolIE_Container_119P42_tags_85) - /sizeof(asn_DEF_ProtocolIE_Container_119P42_tags_85[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_119P42_tags_85, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_119P42_tags_85) - /sizeof(asn_DEF_ProtocolIE_Container_119P42_tags_85[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_119P42_constr_85, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_119P42_85, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_119P42_specs_85 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P43_87[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_X2APMessageTransfer_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_119P43_tags_87[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P43_specs_87 = { - sizeof(struct ProtocolIE_Container_119P43), - offsetof(struct ProtocolIE_Container_119P43, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P43 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_119P43_tags_87, - sizeof(asn_DEF_ProtocolIE_Container_119P43_tags_87) - /sizeof(asn_DEF_ProtocolIE_Container_119P43_tags_87[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_119P43_tags_87, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_119P43_tags_87) - /sizeof(asn_DEF_ProtocolIE_Container_119P43_tags_87[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_119P43_constr_87, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_119P43_87, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_119P43_specs_87 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P44_89[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_SeNBAdditionRequest_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_119P44_tags_89[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P44_specs_89 = { - sizeof(struct ProtocolIE_Container_119P44), - offsetof(struct ProtocolIE_Container_119P44, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P44 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_119P44_tags_89, - sizeof(asn_DEF_ProtocolIE_Container_119P44_tags_89) - /sizeof(asn_DEF_ProtocolIE_Container_119P44_tags_89[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_119P44_tags_89, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_119P44_tags_89) - /sizeof(asn_DEF_ProtocolIE_Container_119P44_tags_89[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_119P44_constr_89, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_119P44_89, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_119P44_specs_89 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P45_91[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_SeNBAdditionRequestAcknowledge_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_119P45_tags_91[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P45_specs_91 = { - sizeof(struct ProtocolIE_Container_119P45), - offsetof(struct ProtocolIE_Container_119P45, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P45 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_119P45_tags_91, - sizeof(asn_DEF_ProtocolIE_Container_119P45_tags_91) - /sizeof(asn_DEF_ProtocolIE_Container_119P45_tags_91[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_119P45_tags_91, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_119P45_tags_91) - /sizeof(asn_DEF_ProtocolIE_Container_119P45_tags_91[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_119P45_constr_91, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_119P45_91, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_119P45_specs_91 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P46_93[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_SeNBAdditionRequestReject_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_119P46_tags_93[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P46_specs_93 = { - sizeof(struct ProtocolIE_Container_119P46), - offsetof(struct ProtocolIE_Container_119P46, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P46 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_119P46_tags_93, - sizeof(asn_DEF_ProtocolIE_Container_119P46_tags_93) - /sizeof(asn_DEF_ProtocolIE_Container_119P46_tags_93[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_119P46_tags_93, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_119P46_tags_93) - /sizeof(asn_DEF_ProtocolIE_Container_119P46_tags_93[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_119P46_constr_93, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_119P46_93, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_119P46_specs_93 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P47_95[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_SeNBReconfigurationComplete_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_119P47_tags_95[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P47_specs_95 = { - sizeof(struct ProtocolIE_Container_119P47), - offsetof(struct ProtocolIE_Container_119P47, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P47 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_119P47_tags_95, - sizeof(asn_DEF_ProtocolIE_Container_119P47_tags_95) - /sizeof(asn_DEF_ProtocolIE_Container_119P47_tags_95[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_119P47_tags_95, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_119P47_tags_95) - /sizeof(asn_DEF_ProtocolIE_Container_119P47_tags_95[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_119P47_constr_95, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_119P47_95, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_119P47_specs_95 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P48_97[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_SeNBModificationRequest_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_119P48_tags_97[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P48_specs_97 = { - sizeof(struct ProtocolIE_Container_119P48), - offsetof(struct ProtocolIE_Container_119P48, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P48 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_119P48_tags_97, - sizeof(asn_DEF_ProtocolIE_Container_119P48_tags_97) - /sizeof(asn_DEF_ProtocolIE_Container_119P48_tags_97[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_119P48_tags_97, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_119P48_tags_97) - /sizeof(asn_DEF_ProtocolIE_Container_119P48_tags_97[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_119P48_constr_97, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_119P48_97, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_119P48_specs_97 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P49_99[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_SeNBModificationRequestAcknowledge_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_119P49_tags_99[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P49_specs_99 = { - sizeof(struct ProtocolIE_Container_119P49), - offsetof(struct ProtocolIE_Container_119P49, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P49 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_119P49_tags_99, - sizeof(asn_DEF_ProtocolIE_Container_119P49_tags_99) - /sizeof(asn_DEF_ProtocolIE_Container_119P49_tags_99[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_119P49_tags_99, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_119P49_tags_99) - /sizeof(asn_DEF_ProtocolIE_Container_119P49_tags_99[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_119P49_constr_99, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_119P49_99, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_119P49_specs_99 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P50_101[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_SeNBModificationRequestReject_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_119P50_tags_101[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P50_specs_101 = { - sizeof(struct ProtocolIE_Container_119P50), - offsetof(struct ProtocolIE_Container_119P50, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P50 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_119P50_tags_101, - sizeof(asn_DEF_ProtocolIE_Container_119P50_tags_101) - /sizeof(asn_DEF_ProtocolIE_Container_119P50_tags_101[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_119P50_tags_101, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_119P50_tags_101) - /sizeof(asn_DEF_ProtocolIE_Container_119P50_tags_101[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_119P50_constr_101, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_119P50_101, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_119P50_specs_101 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P51_103[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_SeNBModificationRequired_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_119P51_tags_103[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P51_specs_103 = { - sizeof(struct ProtocolIE_Container_119P51), - offsetof(struct ProtocolIE_Container_119P51, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P51 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_119P51_tags_103, - sizeof(asn_DEF_ProtocolIE_Container_119P51_tags_103) - /sizeof(asn_DEF_ProtocolIE_Container_119P51_tags_103[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_119P51_tags_103, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_119P51_tags_103) - /sizeof(asn_DEF_ProtocolIE_Container_119P51_tags_103[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_119P51_constr_103, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_119P51_103, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_119P51_specs_103 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P52_105[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_SeNBModificationConfirm_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_119P52_tags_105[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P52_specs_105 = { - sizeof(struct ProtocolIE_Container_119P52), - offsetof(struct ProtocolIE_Container_119P52, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P52 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_119P52_tags_105, - sizeof(asn_DEF_ProtocolIE_Container_119P52_tags_105) - /sizeof(asn_DEF_ProtocolIE_Container_119P52_tags_105[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_119P52_tags_105, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_119P52_tags_105) - /sizeof(asn_DEF_ProtocolIE_Container_119P52_tags_105[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_119P52_constr_105, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_119P52_105, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_119P52_specs_105 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P53_107[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_SeNBModificationRefuse_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_119P53_tags_107[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P53_specs_107 = { - sizeof(struct ProtocolIE_Container_119P53), - offsetof(struct ProtocolIE_Container_119P53, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P53 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_119P53_tags_107, - sizeof(asn_DEF_ProtocolIE_Container_119P53_tags_107) - /sizeof(asn_DEF_ProtocolIE_Container_119P53_tags_107[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_119P53_tags_107, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_119P53_tags_107) - /sizeof(asn_DEF_ProtocolIE_Container_119P53_tags_107[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_119P53_constr_107, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_119P53_107, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_119P53_specs_107 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P54_109[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_SeNBReleaseRequest_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_119P54_tags_109[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P54_specs_109 = { - sizeof(struct ProtocolIE_Container_119P54), - offsetof(struct ProtocolIE_Container_119P54, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P54 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_119P54_tags_109, - sizeof(asn_DEF_ProtocolIE_Container_119P54_tags_109) - /sizeof(asn_DEF_ProtocolIE_Container_119P54_tags_109[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_119P54_tags_109, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_119P54_tags_109) - /sizeof(asn_DEF_ProtocolIE_Container_119P54_tags_109[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_119P54_constr_109, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_119P54_109, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_119P54_specs_109 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P55_111[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_SeNBReleaseRequired_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_119P55_tags_111[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P55_specs_111 = { - sizeof(struct ProtocolIE_Container_119P55), - offsetof(struct ProtocolIE_Container_119P55, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P55 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_119P55_tags_111, - sizeof(asn_DEF_ProtocolIE_Container_119P55_tags_111) - /sizeof(asn_DEF_ProtocolIE_Container_119P55_tags_111[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_119P55_tags_111, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_119P55_tags_111) - /sizeof(asn_DEF_ProtocolIE_Container_119P55_tags_111[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_119P55_constr_111, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_119P55_111, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_119P55_specs_111 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P56_113[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_SeNBReleaseConfirm_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_119P56_tags_113[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P56_specs_113 = { - sizeof(struct ProtocolIE_Container_119P56), - offsetof(struct ProtocolIE_Container_119P56, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P56 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_119P56_tags_113, - sizeof(asn_DEF_ProtocolIE_Container_119P56_tags_113) - /sizeof(asn_DEF_ProtocolIE_Container_119P56_tags_113[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_119P56_tags_113, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_119P56_tags_113) - /sizeof(asn_DEF_ProtocolIE_Container_119P56_tags_113[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_119P56_constr_113, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_119P56_113, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_119P56_specs_113 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P57_115[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_SeNBCounterCheckRequest_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_119P57_tags_115[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P57_specs_115 = { - sizeof(struct ProtocolIE_Container_119P57), - offsetof(struct ProtocolIE_Container_119P57, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P57 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_119P57_tags_115, - sizeof(asn_DEF_ProtocolIE_Container_119P57_tags_115) - /sizeof(asn_DEF_ProtocolIE_Container_119P57_tags_115[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_119P57_tags_115, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_119P57_tags_115) - /sizeof(asn_DEF_ProtocolIE_Container_119P57_tags_115[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_119P57_constr_115, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_119P57_115, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_119P57_specs_115 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P58_117[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_X2RemovalRequest_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_119P58_tags_117[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P58_specs_117 = { - sizeof(struct ProtocolIE_Container_119P58), - offsetof(struct ProtocolIE_Container_119P58, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P58 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_119P58_tags_117, - sizeof(asn_DEF_ProtocolIE_Container_119P58_tags_117) - /sizeof(asn_DEF_ProtocolIE_Container_119P58_tags_117[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_119P58_tags_117, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_119P58_tags_117) - /sizeof(asn_DEF_ProtocolIE_Container_119P58_tags_117[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_119P58_constr_117, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_119P58_117, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_119P58_specs_117 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P59_119[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_X2RemovalResponse_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_119P59_tags_119[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P59_specs_119 = { - sizeof(struct ProtocolIE_Container_119P59), - offsetof(struct ProtocolIE_Container_119P59, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P59 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_119P59_tags_119, - sizeof(asn_DEF_ProtocolIE_Container_119P59_tags_119) - /sizeof(asn_DEF_ProtocolIE_Container_119P59_tags_119[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_119P59_tags_119, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_119P59_tags_119) - /sizeof(asn_DEF_ProtocolIE_Container_119P59_tags_119[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_119P59_constr_119, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_119P59_119, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_119P59_specs_119 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P60_121[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_X2RemovalFailure_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_119P60_tags_121[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P60_specs_121 = { - sizeof(struct ProtocolIE_Container_119P60), - offsetof(struct ProtocolIE_Container_119P60, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P60 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_119P60_tags_121, - sizeof(asn_DEF_ProtocolIE_Container_119P60_tags_121) - /sizeof(asn_DEF_ProtocolIE_Container_119P60_tags_121[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_119P60_tags_121, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_119P60_tags_121) - /sizeof(asn_DEF_ProtocolIE_Container_119P60_tags_121[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_119P60_constr_121, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_119P60_121, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_119P60_specs_121 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P61_123[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RetrieveUEContextRequest_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_119P61_tags_123[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P61_specs_123 = { - sizeof(struct ProtocolIE_Container_119P61), - offsetof(struct ProtocolIE_Container_119P61, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P61 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_119P61_tags_123, - sizeof(asn_DEF_ProtocolIE_Container_119P61_tags_123) - /sizeof(asn_DEF_ProtocolIE_Container_119P61_tags_123[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_119P61_tags_123, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_119P61_tags_123) - /sizeof(asn_DEF_ProtocolIE_Container_119P61_tags_123[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_119P61_constr_123, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_119P61_123, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_119P61_specs_123 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P62_125[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RetrieveUEContextResponse_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_119P62_tags_125[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P62_specs_125 = { - sizeof(struct ProtocolIE_Container_119P62), - offsetof(struct ProtocolIE_Container_119P62, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P62 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_119P62_tags_125, - sizeof(asn_DEF_ProtocolIE_Container_119P62_tags_125) - /sizeof(asn_DEF_ProtocolIE_Container_119P62_tags_125[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_119P62_tags_125, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_119P62_tags_125) - /sizeof(asn_DEF_ProtocolIE_Container_119P62_tags_125[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_119P62_constr_125, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_119P62_125, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_119P62_specs_125 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P63_127[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RetrieveUEContextFailure_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_119P63_tags_127[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P63_specs_127 = { - sizeof(struct ProtocolIE_Container_119P63), - offsetof(struct ProtocolIE_Container_119P63, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P63 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_119P63_tags_127, - sizeof(asn_DEF_ProtocolIE_Container_119P63_tags_127) - /sizeof(asn_DEF_ProtocolIE_Container_119P63_tags_127[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_119P63_tags_127, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_119P63_tags_127) - /sizeof(asn_DEF_ProtocolIE_Container_119P63_tags_127[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_119P63_constr_127, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_119P63_127, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_119P63_specs_127 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P64_129[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_SgNBAdditionRequest_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_119P64_tags_129[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P64_specs_129 = { - sizeof(struct ProtocolIE_Container_119P64), - offsetof(struct ProtocolIE_Container_119P64, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P64 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_119P64_tags_129, - sizeof(asn_DEF_ProtocolIE_Container_119P64_tags_129) - /sizeof(asn_DEF_ProtocolIE_Container_119P64_tags_129[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_119P64_tags_129, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_119P64_tags_129) - /sizeof(asn_DEF_ProtocolIE_Container_119P64_tags_129[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_119P64_constr_129, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_119P64_129, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_119P64_specs_129 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P65_131[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_SgNBAdditionRequestAcknowledge_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_119P65_tags_131[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P65_specs_131 = { - sizeof(struct ProtocolIE_Container_119P65), - offsetof(struct ProtocolIE_Container_119P65, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P65 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_119P65_tags_131, - sizeof(asn_DEF_ProtocolIE_Container_119P65_tags_131) - /sizeof(asn_DEF_ProtocolIE_Container_119P65_tags_131[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_119P65_tags_131, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_119P65_tags_131) - /sizeof(asn_DEF_ProtocolIE_Container_119P65_tags_131[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_119P65_constr_131, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_119P65_131, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_119P65_specs_131 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P66_133[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_SgNBAdditionRequestReject_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_119P66_tags_133[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P66_specs_133 = { - sizeof(struct ProtocolIE_Container_119P66), - offsetof(struct ProtocolIE_Container_119P66, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P66 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_119P66_tags_133, - sizeof(asn_DEF_ProtocolIE_Container_119P66_tags_133) - /sizeof(asn_DEF_ProtocolIE_Container_119P66_tags_133[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_119P66_tags_133, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_119P66_tags_133) - /sizeof(asn_DEF_ProtocolIE_Container_119P66_tags_133[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_119P66_constr_133, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_119P66_133, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_119P66_specs_133 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P67_135[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_SgNBReconfigurationComplete_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_119P67_tags_135[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P67_specs_135 = { - sizeof(struct ProtocolIE_Container_119P67), - offsetof(struct ProtocolIE_Container_119P67, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P67 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_119P67_tags_135, - sizeof(asn_DEF_ProtocolIE_Container_119P67_tags_135) - /sizeof(asn_DEF_ProtocolIE_Container_119P67_tags_135[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_119P67_tags_135, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_119P67_tags_135) - /sizeof(asn_DEF_ProtocolIE_Container_119P67_tags_135[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_119P67_constr_135, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_119P67_135, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_119P67_specs_135 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P68_137[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_SgNBModificationRequest_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_119P68_tags_137[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P68_specs_137 = { - sizeof(struct ProtocolIE_Container_119P68), - offsetof(struct ProtocolIE_Container_119P68, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P68 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_119P68_tags_137, - sizeof(asn_DEF_ProtocolIE_Container_119P68_tags_137) - /sizeof(asn_DEF_ProtocolIE_Container_119P68_tags_137[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_119P68_tags_137, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_119P68_tags_137) - /sizeof(asn_DEF_ProtocolIE_Container_119P68_tags_137[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_119P68_constr_137, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_119P68_137, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_119P68_specs_137 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P69_139[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_SgNBModificationRequestAcknowledge_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_119P69_tags_139[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P69_specs_139 = { - sizeof(struct ProtocolIE_Container_119P69), - offsetof(struct ProtocolIE_Container_119P69, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P69 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_119P69_tags_139, - sizeof(asn_DEF_ProtocolIE_Container_119P69_tags_139) - /sizeof(asn_DEF_ProtocolIE_Container_119P69_tags_139[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_119P69_tags_139, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_119P69_tags_139) - /sizeof(asn_DEF_ProtocolIE_Container_119P69_tags_139[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_119P69_constr_139, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_119P69_139, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_119P69_specs_139 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P70_141[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_SgNBModificationRequestReject_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_119P70_tags_141[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P70_specs_141 = { - sizeof(struct ProtocolIE_Container_119P70), - offsetof(struct ProtocolIE_Container_119P70, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P70 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_119P70_tags_141, - sizeof(asn_DEF_ProtocolIE_Container_119P70_tags_141) - /sizeof(asn_DEF_ProtocolIE_Container_119P70_tags_141[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_119P70_tags_141, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_119P70_tags_141) - /sizeof(asn_DEF_ProtocolIE_Container_119P70_tags_141[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_119P70_constr_141, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_119P70_141, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_119P70_specs_141 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P71_143[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_SgNBModificationRequired_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_119P71_tags_143[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P71_specs_143 = { - sizeof(struct ProtocolIE_Container_119P71), - offsetof(struct ProtocolIE_Container_119P71, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P71 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_119P71_tags_143, - sizeof(asn_DEF_ProtocolIE_Container_119P71_tags_143) - /sizeof(asn_DEF_ProtocolIE_Container_119P71_tags_143[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_119P71_tags_143, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_119P71_tags_143) - /sizeof(asn_DEF_ProtocolIE_Container_119P71_tags_143[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_119P71_constr_143, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_119P71_143, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_119P71_specs_143 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P72_145[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_SgNBModificationConfirm_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_119P72_tags_145[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P72_specs_145 = { - sizeof(struct ProtocolIE_Container_119P72), - offsetof(struct ProtocolIE_Container_119P72, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P72 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_119P72_tags_145, - sizeof(asn_DEF_ProtocolIE_Container_119P72_tags_145) - /sizeof(asn_DEF_ProtocolIE_Container_119P72_tags_145[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_119P72_tags_145, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_119P72_tags_145) - /sizeof(asn_DEF_ProtocolIE_Container_119P72_tags_145[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_119P72_constr_145, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_119P72_145, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_119P72_specs_145 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P73_147[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_SgNBModificationRefuse_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_119P73_tags_147[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P73_specs_147 = { - sizeof(struct ProtocolIE_Container_119P73), - offsetof(struct ProtocolIE_Container_119P73, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P73 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_119P73_tags_147, - sizeof(asn_DEF_ProtocolIE_Container_119P73_tags_147) - /sizeof(asn_DEF_ProtocolIE_Container_119P73_tags_147[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_119P73_tags_147, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_119P73_tags_147) - /sizeof(asn_DEF_ProtocolIE_Container_119P73_tags_147[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_119P73_constr_147, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_119P73_147, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_119P73_specs_147 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P74_149[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_SgNBReleaseRequest_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_119P74_tags_149[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P74_specs_149 = { - sizeof(struct ProtocolIE_Container_119P74), - offsetof(struct ProtocolIE_Container_119P74, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P74 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_119P74_tags_149, - sizeof(asn_DEF_ProtocolIE_Container_119P74_tags_149) - /sizeof(asn_DEF_ProtocolIE_Container_119P74_tags_149[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_119P74_tags_149, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_119P74_tags_149) - /sizeof(asn_DEF_ProtocolIE_Container_119P74_tags_149[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_119P74_constr_149, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_119P74_149, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_119P74_specs_149 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P75_151[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_SgNBReleaseRequestAcknowledge_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_119P75_tags_151[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P75_specs_151 = { - sizeof(struct ProtocolIE_Container_119P75), - offsetof(struct ProtocolIE_Container_119P75, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P75 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_119P75_tags_151, - sizeof(asn_DEF_ProtocolIE_Container_119P75_tags_151) - /sizeof(asn_DEF_ProtocolIE_Container_119P75_tags_151[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_119P75_tags_151, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_119P75_tags_151) - /sizeof(asn_DEF_ProtocolIE_Container_119P75_tags_151[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_119P75_constr_151, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_119P75_151, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_119P75_specs_151 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P76_153[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_SgNBReleaseRequestReject_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_119P76_tags_153[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P76_specs_153 = { - sizeof(struct ProtocolIE_Container_119P76), - offsetof(struct ProtocolIE_Container_119P76, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P76 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_119P76_tags_153, - sizeof(asn_DEF_ProtocolIE_Container_119P76_tags_153) - /sizeof(asn_DEF_ProtocolIE_Container_119P76_tags_153[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_119P76_tags_153, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_119P76_tags_153) - /sizeof(asn_DEF_ProtocolIE_Container_119P76_tags_153[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_119P76_constr_153, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_119P76_153, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_119P76_specs_153 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P77_155[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_SgNBReleaseRequired_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_119P77_tags_155[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P77_specs_155 = { - sizeof(struct ProtocolIE_Container_119P77), - offsetof(struct ProtocolIE_Container_119P77, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P77 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_119P77_tags_155, - sizeof(asn_DEF_ProtocolIE_Container_119P77_tags_155) - /sizeof(asn_DEF_ProtocolIE_Container_119P77_tags_155[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_119P77_tags_155, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_119P77_tags_155) - /sizeof(asn_DEF_ProtocolIE_Container_119P77_tags_155[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_119P77_constr_155, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_119P77_155, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_119P77_specs_155 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P78_157[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_SgNBReleaseConfirm_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_119P78_tags_157[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P78_specs_157 = { - sizeof(struct ProtocolIE_Container_119P78), - offsetof(struct ProtocolIE_Container_119P78, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P78 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_119P78_tags_157, - sizeof(asn_DEF_ProtocolIE_Container_119P78_tags_157) - /sizeof(asn_DEF_ProtocolIE_Container_119P78_tags_157[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_119P78_tags_157, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_119P78_tags_157) - /sizeof(asn_DEF_ProtocolIE_Container_119P78_tags_157[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_119P78_constr_157, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_119P78_157, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_119P78_specs_157 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P79_159[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_SgNBCounterCheckRequest_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_119P79_tags_159[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P79_specs_159 = { - sizeof(struct ProtocolIE_Container_119P79), - offsetof(struct ProtocolIE_Container_119P79, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P79 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_119P79_tags_159, - sizeof(asn_DEF_ProtocolIE_Container_119P79_tags_159) - /sizeof(asn_DEF_ProtocolIE_Container_119P79_tags_159[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_119P79_tags_159, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_119P79_tags_159) - /sizeof(asn_DEF_ProtocolIE_Container_119P79_tags_159[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_119P79_constr_159, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_119P79_159, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_119P79_specs_159 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P80_161[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_SgNBChangeRequired_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_119P80_tags_161[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P80_specs_161 = { - sizeof(struct ProtocolIE_Container_119P80), - offsetof(struct ProtocolIE_Container_119P80, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P80 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_119P80_tags_161, - sizeof(asn_DEF_ProtocolIE_Container_119P80_tags_161) - /sizeof(asn_DEF_ProtocolIE_Container_119P80_tags_161[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_119P80_tags_161, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_119P80_tags_161) - /sizeof(asn_DEF_ProtocolIE_Container_119P80_tags_161[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_119P80_constr_161, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_119P80_161, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_119P80_specs_161 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P81_163[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_SgNBChangeConfirm_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_119P81_tags_163[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P81_specs_163 = { - sizeof(struct ProtocolIE_Container_119P81), - offsetof(struct ProtocolIE_Container_119P81, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P81 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_119P81_tags_163, - sizeof(asn_DEF_ProtocolIE_Container_119P81_tags_163) - /sizeof(asn_DEF_ProtocolIE_Container_119P81_tags_163[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_119P81_tags_163, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_119P81_tags_163) - /sizeof(asn_DEF_ProtocolIE_Container_119P81_tags_163[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_119P81_constr_163, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_119P81_163, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_119P81_specs_163 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P82_165[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RRCTransfer_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_119P82_tags_165[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P82_specs_165 = { - sizeof(struct ProtocolIE_Container_119P82), - offsetof(struct ProtocolIE_Container_119P82, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P82 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_119P82_tags_165, - sizeof(asn_DEF_ProtocolIE_Container_119P82_tags_165) - /sizeof(asn_DEF_ProtocolIE_Container_119P82_tags_165[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_119P82_tags_165, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_119P82_tags_165) - /sizeof(asn_DEF_ProtocolIE_Container_119P82_tags_165[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_119P82_constr_165, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_119P82_165, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_119P82_specs_165 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P83_167[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_SgNBChangeRefuse_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_119P83_tags_167[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P83_specs_167 = { - sizeof(struct ProtocolIE_Container_119P83), - offsetof(struct ProtocolIE_Container_119P83, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P83 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_119P83_tags_167, - sizeof(asn_DEF_ProtocolIE_Container_119P83_tags_167) - /sizeof(asn_DEF_ProtocolIE_Container_119P83_tags_167[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_119P83_tags_167, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_119P83_tags_167) - /sizeof(asn_DEF_ProtocolIE_Container_119P83_tags_167[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_119P83_constr_167, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_119P83_167, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_119P83_specs_167 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P84_169[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ENDCX2SetupRequest_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_119P84_tags_169[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P84_specs_169 = { - sizeof(struct ProtocolIE_Container_119P84), - offsetof(struct ProtocolIE_Container_119P84, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P84 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_119P84_tags_169, - sizeof(asn_DEF_ProtocolIE_Container_119P84_tags_169) - /sizeof(asn_DEF_ProtocolIE_Container_119P84_tags_169[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_119P84_tags_169, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_119P84_tags_169) - /sizeof(asn_DEF_ProtocolIE_Container_119P84_tags_169[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_119P84_constr_169, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_119P84_169, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_119P84_specs_169 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P85_171[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ENB_ENDCX2SetupReqIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_119P85_tags_171[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P85_specs_171 = { - sizeof(struct ProtocolIE_Container_119P85), - offsetof(struct ProtocolIE_Container_119P85, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P85 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_119P85_tags_171, - sizeof(asn_DEF_ProtocolIE_Container_119P85_tags_171) - /sizeof(asn_DEF_ProtocolIE_Container_119P85_tags_171[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_119P85_tags_171, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_119P85_tags_171) - /sizeof(asn_DEF_ProtocolIE_Container_119P85_tags_171[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_119P85_constr_171, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_119P85_171, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_119P85_specs_171 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P86_173[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_En_gNB_ENDCX2SetupReqIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_119P86_tags_173[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P86_specs_173 = { - sizeof(struct ProtocolIE_Container_119P86), - offsetof(struct ProtocolIE_Container_119P86, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P86 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_119P86_tags_173, - sizeof(asn_DEF_ProtocolIE_Container_119P86_tags_173) - /sizeof(asn_DEF_ProtocolIE_Container_119P86_tags_173[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_119P86_tags_173, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_119P86_tags_173) - /sizeof(asn_DEF_ProtocolIE_Container_119P86_tags_173[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_119P86_constr_173, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_119P86_173, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_119P86_specs_173 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P87_175[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ENDCX2SetupResponse_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_119P87_tags_175[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P87_specs_175 = { - sizeof(struct ProtocolIE_Container_119P87), - offsetof(struct ProtocolIE_Container_119P87, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P87 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_119P87_tags_175, - sizeof(asn_DEF_ProtocolIE_Container_119P87_tags_175) - /sizeof(asn_DEF_ProtocolIE_Container_119P87_tags_175[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_119P87_tags_175, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_119P87_tags_175) - /sizeof(asn_DEF_ProtocolIE_Container_119P87_tags_175[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_119P87_constr_175, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_119P87_175, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_119P87_specs_175 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P88_177[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ENB_ENDCX2SetupReqAckIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_119P88_tags_177[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P88_specs_177 = { - sizeof(struct ProtocolIE_Container_119P88), - offsetof(struct ProtocolIE_Container_119P88, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P88 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_119P88_tags_177, - sizeof(asn_DEF_ProtocolIE_Container_119P88_tags_177) - /sizeof(asn_DEF_ProtocolIE_Container_119P88_tags_177[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_119P88_tags_177, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_119P88_tags_177) - /sizeof(asn_DEF_ProtocolIE_Container_119P88_tags_177[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_119P88_constr_177, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_119P88_177, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_119P88_specs_177 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P89_179[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_En_gNB_ENDCX2SetupReqAckIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_119P89_tags_179[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P89_specs_179 = { - sizeof(struct ProtocolIE_Container_119P89), - offsetof(struct ProtocolIE_Container_119P89, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P89 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_119P89_tags_179, - sizeof(asn_DEF_ProtocolIE_Container_119P89_tags_179) - /sizeof(asn_DEF_ProtocolIE_Container_119P89_tags_179[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_119P89_tags_179, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_119P89_tags_179) - /sizeof(asn_DEF_ProtocolIE_Container_119P89_tags_179[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_119P89_constr_179, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_119P89_179, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_119P89_specs_179 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P90_181[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ENDCX2SetupFailure_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_119P90_tags_181[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P90_specs_181 = { - sizeof(struct ProtocolIE_Container_119P90), - offsetof(struct ProtocolIE_Container_119P90, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P90 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_119P90_tags_181, - sizeof(asn_DEF_ProtocolIE_Container_119P90_tags_181) - /sizeof(asn_DEF_ProtocolIE_Container_119P90_tags_181[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_119P90_tags_181, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_119P90_tags_181) - /sizeof(asn_DEF_ProtocolIE_Container_119P90_tags_181[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_119P90_constr_181, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_119P90_181, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_119P90_specs_181 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P91_183[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ENDCConfigurationUpdate_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_119P91_tags_183[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P91_specs_183 = { - sizeof(struct ProtocolIE_Container_119P91), - offsetof(struct ProtocolIE_Container_119P91, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P91 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_119P91_tags_183, - sizeof(asn_DEF_ProtocolIE_Container_119P91_tags_183) - /sizeof(asn_DEF_ProtocolIE_Container_119P91_tags_183[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_119P91_tags_183, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_119P91_tags_183) - /sizeof(asn_DEF_ProtocolIE_Container_119P91_tags_183[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_119P91_constr_183, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_119P91_183, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_119P91_specs_183 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P92_185[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ENB_ENDCConfigUpdateIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_119P92_tags_185[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P92_specs_185 = { - sizeof(struct ProtocolIE_Container_119P92), - offsetof(struct ProtocolIE_Container_119P92, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P92 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_119P92_tags_185, - sizeof(asn_DEF_ProtocolIE_Container_119P92_tags_185) - /sizeof(asn_DEF_ProtocolIE_Container_119P92_tags_185[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_119P92_tags_185, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_119P92_tags_185) - /sizeof(asn_DEF_ProtocolIE_Container_119P92_tags_185[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_119P92_constr_185, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_119P92_185, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_119P92_specs_185 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P93_187[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_En_gNB_ENDCConfigUpdateIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_119P93_tags_187[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P93_specs_187 = { - sizeof(struct ProtocolIE_Container_119P93), - offsetof(struct ProtocolIE_Container_119P93, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P93 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_119P93_tags_187, - sizeof(asn_DEF_ProtocolIE_Container_119P93_tags_187) - /sizeof(asn_DEF_ProtocolIE_Container_119P93_tags_187[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_119P93_tags_187, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_119P93_tags_187) - /sizeof(asn_DEF_ProtocolIE_Container_119P93_tags_187[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_119P93_constr_187, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_119P93_187, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_119P93_specs_187 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P94_189[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ENDCConfigurationUpdateAcknowledge_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_119P94_tags_189[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P94_specs_189 = { - sizeof(struct ProtocolIE_Container_119P94), - offsetof(struct ProtocolIE_Container_119P94, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P94 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_119P94_tags_189, - sizeof(asn_DEF_ProtocolIE_Container_119P94_tags_189) - /sizeof(asn_DEF_ProtocolIE_Container_119P94_tags_189[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_119P94_tags_189, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_119P94_tags_189) - /sizeof(asn_DEF_ProtocolIE_Container_119P94_tags_189[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_119P94_constr_189, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_119P94_189, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_119P94_specs_189 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P95_191[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ENB_ENDCConfigUpdateAckIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_119P95_tags_191[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P95_specs_191 = { - sizeof(struct ProtocolIE_Container_119P95), - offsetof(struct ProtocolIE_Container_119P95, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P95 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_119P95_tags_191, - sizeof(asn_DEF_ProtocolIE_Container_119P95_tags_191) - /sizeof(asn_DEF_ProtocolIE_Container_119P95_tags_191[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_119P95_tags_191, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_119P95_tags_191) - /sizeof(asn_DEF_ProtocolIE_Container_119P95_tags_191[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_119P95_constr_191, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_119P95_191, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_119P95_specs_191 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P96_193[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_En_gNB_ENDCConfigUpdateAckIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_119P96_tags_193[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P96_specs_193 = { - sizeof(struct ProtocolIE_Container_119P96), - offsetof(struct ProtocolIE_Container_119P96, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P96 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_119P96_tags_193, - sizeof(asn_DEF_ProtocolIE_Container_119P96_tags_193) - /sizeof(asn_DEF_ProtocolIE_Container_119P96_tags_193[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_119P96_tags_193, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_119P96_tags_193) - /sizeof(asn_DEF_ProtocolIE_Container_119P96_tags_193[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_119P96_constr_193, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_119P96_193, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_119P96_specs_193 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P97_195[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ENDCConfigurationUpdateFailure_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_119P97_tags_195[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P97_specs_195 = { - sizeof(struct ProtocolIE_Container_119P97), - offsetof(struct ProtocolIE_Container_119P97, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P97 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_119P97_tags_195, - sizeof(asn_DEF_ProtocolIE_Container_119P97_tags_195) - /sizeof(asn_DEF_ProtocolIE_Container_119P97_tags_195[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_119P97_tags_195, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_119P97_tags_195) - /sizeof(asn_DEF_ProtocolIE_Container_119P97_tags_195[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_119P97_constr_195, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_119P97_195, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_119P97_specs_195 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P98_197[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ENDCCellActivationRequest_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_119P98_tags_197[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P98_specs_197 = { - sizeof(struct ProtocolIE_Container_119P98), - offsetof(struct ProtocolIE_Container_119P98, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P98 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_119P98_tags_197, - sizeof(asn_DEF_ProtocolIE_Container_119P98_tags_197) - /sizeof(asn_DEF_ProtocolIE_Container_119P98_tags_197[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_119P98_tags_197, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_119P98_tags_197) - /sizeof(asn_DEF_ProtocolIE_Container_119P98_tags_197[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_119P98_constr_197, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_119P98_197, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_119P98_specs_197 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P99_199[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ENDCCellActivationResponse_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_119P99_tags_199[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P99_specs_199 = { - sizeof(struct ProtocolIE_Container_119P99), - offsetof(struct ProtocolIE_Container_119P99, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P99 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_119P99_tags_199, - sizeof(asn_DEF_ProtocolIE_Container_119P99_tags_199) - /sizeof(asn_DEF_ProtocolIE_Container_119P99_tags_199[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_119P99_tags_199, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_119P99_tags_199) - /sizeof(asn_DEF_ProtocolIE_Container_119P99_tags_199[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_119P99_constr_199, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_119P99_199, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_119P99_specs_199 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P100_201[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ENDCCellActivationFailure_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_119P100_tags_201[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P100_specs_201 = { - sizeof(struct ProtocolIE_Container_119P100), - offsetof(struct ProtocolIE_Container_119P100, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P100 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_119P100_tags_201, - sizeof(asn_DEF_ProtocolIE_Container_119P100_tags_201) - /sizeof(asn_DEF_ProtocolIE_Container_119P100_tags_201[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_119P100_tags_201, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_119P100_tags_201) - /sizeof(asn_DEF_ProtocolIE_Container_119P100_tags_201[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_119P100_constr_201, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_119P100_201, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_119P100_specs_201 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P101_203[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_SecondaryRATDataUsageReport_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_119P101_tags_203[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P101_specs_203 = { - sizeof(struct ProtocolIE_Container_119P101), - offsetof(struct ProtocolIE_Container_119P101, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P101 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_119P101_tags_203, - sizeof(asn_DEF_ProtocolIE_Container_119P101_tags_203) - /sizeof(asn_DEF_ProtocolIE_Container_119P101_tags_203[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_119P101_tags_203, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_119P101_tags_203) - /sizeof(asn_DEF_ProtocolIE_Container_119P101_tags_203[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_119P101_constr_203, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_119P101_203, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_119P101_specs_203 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P102_205[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_SgNBActivityNotification_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_119P102_tags_205[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P102_specs_205 = { - sizeof(struct ProtocolIE_Container_119P102), - offsetof(struct ProtocolIE_Container_119P102, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P102 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_119P102_tags_205, - sizeof(asn_DEF_ProtocolIE_Container_119P102_tags_205) - /sizeof(asn_DEF_ProtocolIE_Container_119P102_tags_205[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_119P102_tags_205, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_119P102_tags_205) - /sizeof(asn_DEF_ProtocolIE_Container_119P102_tags_205[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_119P102_constr_205, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_119P102_205, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_119P102_specs_205 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P103_207[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ENDCPartialResetRequired_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_119P103_tags_207[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P103_specs_207 = { - sizeof(struct ProtocolIE_Container_119P103), - offsetof(struct ProtocolIE_Container_119P103, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P103 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_119P103_tags_207, - sizeof(asn_DEF_ProtocolIE_Container_119P103_tags_207) - /sizeof(asn_DEF_ProtocolIE_Container_119P103_tags_207[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_119P103_tags_207, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_119P103_tags_207) - /sizeof(asn_DEF_ProtocolIE_Container_119P103_tags_207[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_119P103_constr_207, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_119P103_207, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_119P103_specs_207 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P104_209[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ENDCPartialResetConfirm_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_119P104_tags_209[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P104_specs_209 = { - sizeof(struct ProtocolIE_Container_119P104), - offsetof(struct ProtocolIE_Container_119P104, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P104 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_119P104_tags_209, - sizeof(asn_DEF_ProtocolIE_Container_119P104_tags_209) - /sizeof(asn_DEF_ProtocolIE_Container_119P104_tags_209[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_119P104_tags_209, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_119P104_tags_209) - /sizeof(asn_DEF_ProtocolIE_Container_119P104_tags_209[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_119P104_constr_209, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_119P104_209, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_119P104_specs_209 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P105_211[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_EUTRANRCellResourceCoordinationRequest_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_119P105_tags_211[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P105_specs_211 = { - sizeof(struct ProtocolIE_Container_119P105), - offsetof(struct ProtocolIE_Container_119P105, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P105 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_119P105_tags_211, - sizeof(asn_DEF_ProtocolIE_Container_119P105_tags_211) - /sizeof(asn_DEF_ProtocolIE_Container_119P105_tags_211[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_119P105_tags_211, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_119P105_tags_211) - /sizeof(asn_DEF_ProtocolIE_Container_119P105_tags_211[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_119P105_constr_211, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_119P105_211, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_119P105_specs_211 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P106_213[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ENB_EUTRA_NRCellResourceCoordinationReqIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_119P106_tags_213[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P106_specs_213 = { - sizeof(struct ProtocolIE_Container_119P106), - offsetof(struct ProtocolIE_Container_119P106, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P106 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_119P106_tags_213, - sizeof(asn_DEF_ProtocolIE_Container_119P106_tags_213) - /sizeof(asn_DEF_ProtocolIE_Container_119P106_tags_213[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_119P106_tags_213, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_119P106_tags_213) - /sizeof(asn_DEF_ProtocolIE_Container_119P106_tags_213[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_119P106_constr_213, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_119P106_213, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_119P106_specs_213 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P107_215[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_En_gNB_EUTRA_NRCellResourceCoordinationReqIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_119P107_tags_215[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P107_specs_215 = { - sizeof(struct ProtocolIE_Container_119P107), - offsetof(struct ProtocolIE_Container_119P107, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P107 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_119P107_tags_215, - sizeof(asn_DEF_ProtocolIE_Container_119P107_tags_215) - /sizeof(asn_DEF_ProtocolIE_Container_119P107_tags_215[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_119P107_tags_215, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_119P107_tags_215) - /sizeof(asn_DEF_ProtocolIE_Container_119P107_tags_215[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_119P107_constr_215, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_119P107_215, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_119P107_specs_215 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P108_217[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_EUTRANRCellResourceCoordinationResponse_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_119P108_tags_217[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P108_specs_217 = { - sizeof(struct ProtocolIE_Container_119P108), - offsetof(struct ProtocolIE_Container_119P108, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P108 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_119P108_tags_217, - sizeof(asn_DEF_ProtocolIE_Container_119P108_tags_217) - /sizeof(asn_DEF_ProtocolIE_Container_119P108_tags_217[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_119P108_tags_217, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_119P108_tags_217) - /sizeof(asn_DEF_ProtocolIE_Container_119P108_tags_217[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_119P108_constr_217, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_119P108_217, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_119P108_specs_217 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P109_219[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ENB_EUTRA_NRCellResourceCoordinationReqAckIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_119P109_tags_219[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P109_specs_219 = { - sizeof(struct ProtocolIE_Container_119P109), - offsetof(struct ProtocolIE_Container_119P109, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P109 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_119P109_tags_219, - sizeof(asn_DEF_ProtocolIE_Container_119P109_tags_219) - /sizeof(asn_DEF_ProtocolIE_Container_119P109_tags_219[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_119P109_tags_219, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_119P109_tags_219) - /sizeof(asn_DEF_ProtocolIE_Container_119P109_tags_219[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_119P109_constr_219, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_119P109_219, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_119P109_specs_219 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P110_221[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_En_gNB_EUTRA_NRCellResourceCoordinationReqAckIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_119P110_tags_221[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P110_specs_221 = { - sizeof(struct ProtocolIE_Container_119P110), - offsetof(struct ProtocolIE_Container_119P110, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P110 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_119P110_tags_221, - sizeof(asn_DEF_ProtocolIE_Container_119P110_tags_221) - /sizeof(asn_DEF_ProtocolIE_Container_119P110_tags_221[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_119P110_tags_221, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_119P110_tags_221) - /sizeof(asn_DEF_ProtocolIE_Container_119P110_tags_221[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_119P110_constr_221, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_119P110_221, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_119P110_specs_221 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P111_223[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ENDCX2RemovalRequest_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_119P111_tags_223[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P111_specs_223 = { - sizeof(struct ProtocolIE_Container_119P111), - offsetof(struct ProtocolIE_Container_119P111, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P111 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_119P111_tags_223, - sizeof(asn_DEF_ProtocolIE_Container_119P111_tags_223) - /sizeof(asn_DEF_ProtocolIE_Container_119P111_tags_223[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_119P111_tags_223, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_119P111_tags_223) - /sizeof(asn_DEF_ProtocolIE_Container_119P111_tags_223[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_119P111_constr_223, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_119P111_223, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_119P111_specs_223 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P112_225[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ENB_ENDCX2RemovalReqIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_119P112_tags_225[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P112_specs_225 = { - sizeof(struct ProtocolIE_Container_119P112), - offsetof(struct ProtocolIE_Container_119P112, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P112 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_119P112_tags_225, - sizeof(asn_DEF_ProtocolIE_Container_119P112_tags_225) - /sizeof(asn_DEF_ProtocolIE_Container_119P112_tags_225[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_119P112_tags_225, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_119P112_tags_225) - /sizeof(asn_DEF_ProtocolIE_Container_119P112_tags_225[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_119P112_constr_225, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_119P112_225, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_119P112_specs_225 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P113_227[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_En_gNB_ENDCX2RemovalReqIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_119P113_tags_227[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P113_specs_227 = { - sizeof(struct ProtocolIE_Container_119P113), - offsetof(struct ProtocolIE_Container_119P113, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P113 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_119P113_tags_227, - sizeof(asn_DEF_ProtocolIE_Container_119P113_tags_227) - /sizeof(asn_DEF_ProtocolIE_Container_119P113_tags_227[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_119P113_tags_227, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_119P113_tags_227) - /sizeof(asn_DEF_ProtocolIE_Container_119P113_tags_227[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_119P113_constr_227, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_119P113_227, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_119P113_specs_227 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P114_229[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ENDCX2RemovalResponse_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_119P114_tags_229[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P114_specs_229 = { - sizeof(struct ProtocolIE_Container_119P114), - offsetof(struct ProtocolIE_Container_119P114, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P114 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_119P114_tags_229, - sizeof(asn_DEF_ProtocolIE_Container_119P114_tags_229) - /sizeof(asn_DEF_ProtocolIE_Container_119P114_tags_229[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_119P114_tags_229, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_119P114_tags_229) - /sizeof(asn_DEF_ProtocolIE_Container_119P114_tags_229[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_119P114_constr_229, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_119P114_229, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_119P114_specs_229 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P115_231[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ENB_ENDCX2RemovalReqAckIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_119P115_tags_231[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P115_specs_231 = { - sizeof(struct ProtocolIE_Container_119P115), - offsetof(struct ProtocolIE_Container_119P115, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P115 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_119P115_tags_231, - sizeof(asn_DEF_ProtocolIE_Container_119P115_tags_231) - /sizeof(asn_DEF_ProtocolIE_Container_119P115_tags_231[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_119P115_tags_231, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_119P115_tags_231) - /sizeof(asn_DEF_ProtocolIE_Container_119P115_tags_231[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_119P115_constr_231, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_119P115_231, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_119P115_specs_231 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P116_233[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_En_gNB_ENDCX2RemovalReqAckIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_119P116_tags_233[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P116_specs_233 = { - sizeof(struct ProtocolIE_Container_119P116), - offsetof(struct ProtocolIE_Container_119P116, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P116 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_119P116_tags_233, - sizeof(asn_DEF_ProtocolIE_Container_119P116_tags_233) - /sizeof(asn_DEF_ProtocolIE_Container_119P116_tags_233[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_119P116_tags_233, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_119P116_tags_233) - /sizeof(asn_DEF_ProtocolIE_Container_119P116_tags_233[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_119P116_constr_233, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_119P116_233, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_119P116_specs_233 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P117_235[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ENDCX2RemovalFailure_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_119P117_tags_235[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P117_specs_235 = { - sizeof(struct ProtocolIE_Container_119P117), - offsetof(struct ProtocolIE_Container_119P117, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P117 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_119P117_tags_235, - sizeof(asn_DEF_ProtocolIE_Container_119P117_tags_235) - /sizeof(asn_DEF_ProtocolIE_Container_119P117_tags_235[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_119P117_tags_235, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_119P117_tags_235) - /sizeof(asn_DEF_ProtocolIE_Container_119P117_tags_235[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_119P117_constr_235, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_119P117_235, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_119P117_specs_235 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P118_237[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_DataForwardingAddressIndication_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_119P118_tags_237[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P118_specs_237 = { - sizeof(struct ProtocolIE_Container_119P118), - offsetof(struct ProtocolIE_Container_119P118, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P118 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_119P118_tags_237, - sizeof(asn_DEF_ProtocolIE_Container_119P118_tags_237) - /sizeof(asn_DEF_ProtocolIE_Container_119P118_tags_237[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_119P118_tags_237, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_119P118_tags_237) - /sizeof(asn_DEF_ProtocolIE_Container_119P118_tags_237[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_119P118_constr_237, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_119P118_237, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_119P118_specs_237 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P119_239[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_GNBStatusIndicationIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_119P119_tags_239[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P119_specs_239 = { - sizeof(struct ProtocolIE_Container_119P119), - offsetof(struct ProtocolIE_Container_119P119, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P119 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_119P119_tags_239, - sizeof(asn_DEF_ProtocolIE_Container_119P119_tags_239) - /sizeof(asn_DEF_ProtocolIE_Container_119P119_tags_239[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_119P119_tags_239, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_119P119_tags_239) - /sizeof(asn_DEF_ProtocolIE_Container_119P119_tags_239[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_119P119_constr_239, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_119P119_239, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_119P119_specs_239 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/ProtocolIE-Container.h b/e2sim/previous/ASN1c/ProtocolIE-Container.h deleted file mode 100644 index c25461a..0000000 --- a/e2sim/previous/ASN1c/ProtocolIE-Container.h +++ /dev/null @@ -1,1371 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-Containers" - * found in "../../asnFiles/X2AP-Containers.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _ProtocolIE_Container_H_ -#define _ProtocolIE_Container_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct RICsubscriptionRequest_IEs; -struct RICsubscriptionResponse_IEs; -struct RICsubscriptionFailure_IEs; -struct RICsubscriptionDeleteRequest_IEs; -struct RICsubscriptionDeleteResponse_IEs; -struct RICsubscriptionDeleteFailure_IEs; -struct RICindication_IEs; -struct RICcontrolRequest_IEs; -struct RICcontrolAcknowledge_IEs; -struct RICcontrolFailure_IEs; -struct RICserviceUpdate_IEs; -struct RICserviceUpdateAcknowledge_IEs; -struct RICserviceUpdateFailure_IEs; -struct RICserviceQuery_IEs; -struct HandoverRequest_IEs; -struct HandoverRequestAcknowledge_IEs; -struct HandoverPreparationFailure_IEs; -struct HandoverReport_IEs; -struct SNStatusTransfer_IEs; -struct UEContextRelease_IEs; -struct HandoverCancel_IEs; -struct ErrorIndication_IEs; -struct ResetRequest_IEs; -struct ResetResponse_IEs; -struct X2SetupRequest_IEs; -struct X2SetupResponse_IEs; -struct X2SetupFailure_IEs; -struct LoadInformation_IEs; -struct ENBConfigurationUpdate_IEs; -struct ENBConfigurationUpdateAcknowledge_IEs; -struct ENBConfigurationUpdateFailure_IEs; -struct ResourceStatusRequest_IEs; -struct ResourceStatusResponse_IEs; -struct ResourceStatusFailure_IEs; -struct ResourceStatusUpdate_IEs; -struct MobilityChangeRequest_IEs; -struct MobilityChangeAcknowledge_IEs; -struct MobilityChangeFailure_IEs; -struct RLFIndication_IEs; -struct CellActivationRequest_IEs; -struct CellActivationResponse_IEs; -struct CellActivationFailure_IEs; -struct X2Release_IEs; -struct X2APMessageTransfer_IEs; -struct SeNBAdditionRequest_IEs; -struct SeNBAdditionRequestAcknowledge_IEs; -struct SeNBAdditionRequestReject_IEs; -struct SeNBReconfigurationComplete_IEs; -struct SeNBModificationRequest_IEs; -struct SeNBModificationRequestAcknowledge_IEs; -struct SeNBModificationRequestReject_IEs; -struct SeNBModificationRequired_IEs; -struct SeNBModificationConfirm_IEs; -struct SeNBModificationRefuse_IEs; -struct SeNBReleaseRequest_IEs; -struct SeNBReleaseRequired_IEs; -struct SeNBReleaseConfirm_IEs; -struct SeNBCounterCheckRequest_IEs; -struct X2RemovalRequest_IEs; -struct X2RemovalResponse_IEs; -struct X2RemovalFailure_IEs; -struct RetrieveUEContextRequest_IEs; -struct RetrieveUEContextResponse_IEs; -struct RetrieveUEContextFailure_IEs; -struct SgNBAdditionRequest_IEs; -struct SgNBAdditionRequestAcknowledge_IEs; -struct SgNBAdditionRequestReject_IEs; -struct SgNBReconfigurationComplete_IEs; -struct SgNBModificationRequest_IEs; -struct SgNBModificationRequestAcknowledge_IEs; -struct SgNBModificationRequestReject_IEs; -struct SgNBModificationRequired_IEs; -struct SgNBModificationConfirm_IEs; -struct SgNBModificationRefuse_IEs; -struct SgNBReleaseRequest_IEs; -struct SgNBReleaseRequestAcknowledge_IEs; -struct SgNBReleaseRequestReject_IEs; -struct SgNBReleaseRequired_IEs; -struct SgNBReleaseConfirm_IEs; -struct SgNBCounterCheckRequest_IEs; -struct SgNBChangeRequired_IEs; -struct SgNBChangeConfirm_IEs; -struct RRCTransfer_IEs; -struct SgNBChangeRefuse_IEs; -struct ENDCX2SetupRequest_IEs; -struct ENB_ENDCX2SetupReqIEs; -struct En_gNB_ENDCX2SetupReqIEs; -struct ENDCX2SetupResponse_IEs; -struct ENB_ENDCX2SetupReqAckIEs; -struct En_gNB_ENDCX2SetupReqAckIEs; -struct ENDCX2SetupFailure_IEs; -struct ENDCConfigurationUpdate_IEs; -struct ENB_ENDCConfigUpdateIEs; -struct En_gNB_ENDCConfigUpdateIEs; -struct ENDCConfigurationUpdateAcknowledge_IEs; -struct ENB_ENDCConfigUpdateAckIEs; -struct En_gNB_ENDCConfigUpdateAckIEs; -struct ENDCConfigurationUpdateFailure_IEs; -struct ENDCCellActivationRequest_IEs; -struct ENDCCellActivationResponse_IEs; -struct ENDCCellActivationFailure_IEs; -struct SecondaryRATDataUsageReport_IEs; -struct SgNBActivityNotification_IEs; -struct ENDCPartialResetRequired_IEs; -struct ENDCPartialResetConfirm_IEs; -struct EUTRANRCellResourceCoordinationRequest_IEs; -struct ENB_EUTRA_NRCellResourceCoordinationReqIEs; -struct En_gNB_EUTRA_NRCellResourceCoordinationReqIEs; -struct EUTRANRCellResourceCoordinationResponse_IEs; -struct ENB_EUTRA_NRCellResourceCoordinationReqAckIEs; -struct En_gNB_EUTRA_NRCellResourceCoordinationReqAckIEs; -struct ENDCX2RemovalRequest_IEs; -struct ENB_ENDCX2RemovalReqIEs; -struct En_gNB_ENDCX2RemovalReqIEs; -struct ENDCX2RemovalResponse_IEs; -struct ENB_ENDCX2RemovalReqAckIEs; -struct En_gNB_ENDCX2RemovalReqAckIEs; -struct ENDCX2RemovalFailure_IEs; -struct DataForwardingAddressIndication_IEs; -struct GNBStatusIndicationIEs; - -/* ProtocolIE-Container */ -typedef struct ProtocolIE_Container_119P0 { - A_SEQUENCE_OF(struct RICsubscriptionRequest_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_119P0_t; -typedef struct ProtocolIE_Container_119P1 { - A_SEQUENCE_OF(struct RICsubscriptionResponse_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_119P1_t; -typedef struct ProtocolIE_Container_119P2 { - A_SEQUENCE_OF(struct RICsubscriptionFailure_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_119P2_t; -typedef struct ProtocolIE_Container_119P3 { - A_SEQUENCE_OF(struct RICsubscriptionDeleteRequest_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_119P3_t; -typedef struct ProtocolIE_Container_119P4 { - A_SEQUENCE_OF(struct RICsubscriptionDeleteResponse_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_119P4_t; -typedef struct ProtocolIE_Container_119P5 { - A_SEQUENCE_OF(struct RICsubscriptionDeleteFailure_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_119P5_t; -typedef struct ProtocolIE_Container_119P6 { - A_SEQUENCE_OF(struct RICindication_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_119P6_t; -typedef struct ProtocolIE_Container_119P7 { - A_SEQUENCE_OF(struct RICcontrolRequest_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_119P7_t; -typedef struct ProtocolIE_Container_119P8 { - A_SEQUENCE_OF(struct RICcontrolAcknowledge_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_119P8_t; -typedef struct ProtocolIE_Container_119P9 { - A_SEQUENCE_OF(struct RICcontrolFailure_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_119P9_t; -typedef struct ProtocolIE_Container_119P10 { - A_SEQUENCE_OF(struct RICserviceUpdate_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_119P10_t; -typedef struct ProtocolIE_Container_119P11 { - A_SEQUENCE_OF(struct RICserviceUpdateAcknowledge_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_119P11_t; -typedef struct ProtocolIE_Container_119P12 { - A_SEQUENCE_OF(struct RICserviceUpdateFailure_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_119P12_t; -typedef struct ProtocolIE_Container_119P13 { - A_SEQUENCE_OF(struct RICserviceQuery_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_119P13_t; -typedef struct ProtocolIE_Container_119P14 { - A_SEQUENCE_OF(struct HandoverRequest_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_119P14_t; -typedef struct ProtocolIE_Container_119P15 { - A_SEQUENCE_OF(struct HandoverRequestAcknowledge_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_119P15_t; -typedef struct ProtocolIE_Container_119P16 { - A_SEQUENCE_OF(struct HandoverPreparationFailure_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_119P16_t; -typedef struct ProtocolIE_Container_119P17 { - A_SEQUENCE_OF(struct HandoverReport_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_119P17_t; -typedef struct ProtocolIE_Container_119P18 { - A_SEQUENCE_OF(struct SNStatusTransfer_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_119P18_t; -typedef struct ProtocolIE_Container_119P19 { - A_SEQUENCE_OF(struct UEContextRelease_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_119P19_t; -typedef struct ProtocolIE_Container_119P20 { - A_SEQUENCE_OF(struct HandoverCancel_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_119P20_t; -typedef struct ProtocolIE_Container_119P21 { - A_SEQUENCE_OF(struct ErrorIndication_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_119P21_t; -typedef struct ProtocolIE_Container_119P22 { - A_SEQUENCE_OF(struct ResetRequest_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_119P22_t; -typedef struct ProtocolIE_Container_119P23 { - A_SEQUENCE_OF(struct ResetResponse_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_119P23_t; -typedef struct ProtocolIE_Container_119P24 { - A_SEQUENCE_OF(struct X2SetupRequest_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_119P24_t; -typedef struct ProtocolIE_Container_119P25 { - A_SEQUENCE_OF(struct X2SetupResponse_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_119P25_t; -typedef struct ProtocolIE_Container_119P26 { - A_SEQUENCE_OF(struct X2SetupFailure_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_119P26_t; -typedef struct ProtocolIE_Container_119P27 { - A_SEQUENCE_OF(struct LoadInformation_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_119P27_t; -typedef struct ProtocolIE_Container_119P28 { - A_SEQUENCE_OF(struct ENBConfigurationUpdate_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_119P28_t; -typedef struct ProtocolIE_Container_119P29 { - A_SEQUENCE_OF(struct ENBConfigurationUpdateAcknowledge_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_119P29_t; -typedef struct ProtocolIE_Container_119P30 { - A_SEQUENCE_OF(struct ENBConfigurationUpdateFailure_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_119P30_t; -typedef struct ProtocolIE_Container_119P31 { - A_SEQUENCE_OF(struct ResourceStatusRequest_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_119P31_t; -typedef struct ProtocolIE_Container_119P32 { - A_SEQUENCE_OF(struct ResourceStatusResponse_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_119P32_t; -typedef struct ProtocolIE_Container_119P33 { - A_SEQUENCE_OF(struct ResourceStatusFailure_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_119P33_t; -typedef struct ProtocolIE_Container_119P34 { - A_SEQUENCE_OF(struct ResourceStatusUpdate_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_119P34_t; -typedef struct ProtocolIE_Container_119P35 { - A_SEQUENCE_OF(struct MobilityChangeRequest_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_119P35_t; -typedef struct ProtocolIE_Container_119P36 { - A_SEQUENCE_OF(struct MobilityChangeAcknowledge_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_119P36_t; -typedef struct ProtocolIE_Container_119P37 { - A_SEQUENCE_OF(struct MobilityChangeFailure_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_119P37_t; -typedef struct ProtocolIE_Container_119P38 { - A_SEQUENCE_OF(struct RLFIndication_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_119P38_t; -typedef struct ProtocolIE_Container_119P39 { - A_SEQUENCE_OF(struct CellActivationRequest_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_119P39_t; -typedef struct ProtocolIE_Container_119P40 { - A_SEQUENCE_OF(struct CellActivationResponse_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_119P40_t; -typedef struct ProtocolIE_Container_119P41 { - A_SEQUENCE_OF(struct CellActivationFailure_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_119P41_t; -typedef struct ProtocolIE_Container_119P42 { - A_SEQUENCE_OF(struct X2Release_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_119P42_t; -typedef struct ProtocolIE_Container_119P43 { - A_SEQUENCE_OF(struct X2APMessageTransfer_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_119P43_t; -typedef struct ProtocolIE_Container_119P44 { - A_SEQUENCE_OF(struct SeNBAdditionRequest_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_119P44_t; -typedef struct ProtocolIE_Container_119P45 { - A_SEQUENCE_OF(struct SeNBAdditionRequestAcknowledge_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_119P45_t; -typedef struct ProtocolIE_Container_119P46 { - A_SEQUENCE_OF(struct SeNBAdditionRequestReject_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_119P46_t; -typedef struct ProtocolIE_Container_119P47 { - A_SEQUENCE_OF(struct SeNBReconfigurationComplete_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_119P47_t; -typedef struct ProtocolIE_Container_119P48 { - A_SEQUENCE_OF(struct SeNBModificationRequest_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_119P48_t; -typedef struct ProtocolIE_Container_119P49 { - A_SEQUENCE_OF(struct SeNBModificationRequestAcknowledge_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_119P49_t; -typedef struct ProtocolIE_Container_119P50 { - A_SEQUENCE_OF(struct SeNBModificationRequestReject_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_119P50_t; -typedef struct ProtocolIE_Container_119P51 { - A_SEQUENCE_OF(struct SeNBModificationRequired_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_119P51_t; -typedef struct ProtocolIE_Container_119P52 { - A_SEQUENCE_OF(struct SeNBModificationConfirm_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_119P52_t; -typedef struct ProtocolIE_Container_119P53 { - A_SEQUENCE_OF(struct SeNBModificationRefuse_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_119P53_t; -typedef struct ProtocolIE_Container_119P54 { - A_SEQUENCE_OF(struct SeNBReleaseRequest_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_119P54_t; -typedef struct ProtocolIE_Container_119P55 { - A_SEQUENCE_OF(struct SeNBReleaseRequired_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_119P55_t; -typedef struct ProtocolIE_Container_119P56 { - A_SEQUENCE_OF(struct SeNBReleaseConfirm_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_119P56_t; -typedef struct ProtocolIE_Container_119P57 { - A_SEQUENCE_OF(struct SeNBCounterCheckRequest_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_119P57_t; -typedef struct ProtocolIE_Container_119P58 { - A_SEQUENCE_OF(struct X2RemovalRequest_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_119P58_t; -typedef struct ProtocolIE_Container_119P59 { - A_SEQUENCE_OF(struct X2RemovalResponse_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_119P59_t; -typedef struct ProtocolIE_Container_119P60 { - A_SEQUENCE_OF(struct X2RemovalFailure_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_119P60_t; -typedef struct ProtocolIE_Container_119P61 { - A_SEQUENCE_OF(struct RetrieveUEContextRequest_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_119P61_t; -typedef struct ProtocolIE_Container_119P62 { - A_SEQUENCE_OF(struct RetrieveUEContextResponse_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_119P62_t; -typedef struct ProtocolIE_Container_119P63 { - A_SEQUENCE_OF(struct RetrieveUEContextFailure_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_119P63_t; -typedef struct ProtocolIE_Container_119P64 { - A_SEQUENCE_OF(struct SgNBAdditionRequest_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_119P64_t; -typedef struct ProtocolIE_Container_119P65 { - A_SEQUENCE_OF(struct SgNBAdditionRequestAcknowledge_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_119P65_t; -typedef struct ProtocolIE_Container_119P66 { - A_SEQUENCE_OF(struct SgNBAdditionRequestReject_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_119P66_t; -typedef struct ProtocolIE_Container_119P67 { - A_SEQUENCE_OF(struct SgNBReconfigurationComplete_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_119P67_t; -typedef struct ProtocolIE_Container_119P68 { - A_SEQUENCE_OF(struct SgNBModificationRequest_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_119P68_t; -typedef struct ProtocolIE_Container_119P69 { - A_SEQUENCE_OF(struct SgNBModificationRequestAcknowledge_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_119P69_t; -typedef struct ProtocolIE_Container_119P70 { - A_SEQUENCE_OF(struct SgNBModificationRequestReject_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_119P70_t; -typedef struct ProtocolIE_Container_119P71 { - A_SEQUENCE_OF(struct SgNBModificationRequired_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_119P71_t; -typedef struct ProtocolIE_Container_119P72 { - A_SEQUENCE_OF(struct SgNBModificationConfirm_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_119P72_t; -typedef struct ProtocolIE_Container_119P73 { - A_SEQUENCE_OF(struct SgNBModificationRefuse_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_119P73_t; -typedef struct ProtocolIE_Container_119P74 { - A_SEQUENCE_OF(struct SgNBReleaseRequest_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_119P74_t; -typedef struct ProtocolIE_Container_119P75 { - A_SEQUENCE_OF(struct SgNBReleaseRequestAcknowledge_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_119P75_t; -typedef struct ProtocolIE_Container_119P76 { - A_SEQUENCE_OF(struct SgNBReleaseRequestReject_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_119P76_t; -typedef struct ProtocolIE_Container_119P77 { - A_SEQUENCE_OF(struct SgNBReleaseRequired_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_119P77_t; -typedef struct ProtocolIE_Container_119P78 { - A_SEQUENCE_OF(struct SgNBReleaseConfirm_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_119P78_t; -typedef struct ProtocolIE_Container_119P79 { - A_SEQUENCE_OF(struct SgNBCounterCheckRequest_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_119P79_t; -typedef struct ProtocolIE_Container_119P80 { - A_SEQUENCE_OF(struct SgNBChangeRequired_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_119P80_t; -typedef struct ProtocolIE_Container_119P81 { - A_SEQUENCE_OF(struct SgNBChangeConfirm_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_119P81_t; -typedef struct ProtocolIE_Container_119P82 { - A_SEQUENCE_OF(struct RRCTransfer_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_119P82_t; -typedef struct ProtocolIE_Container_119P83 { - A_SEQUENCE_OF(struct SgNBChangeRefuse_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_119P83_t; -typedef struct ProtocolIE_Container_119P84 { - A_SEQUENCE_OF(struct ENDCX2SetupRequest_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_119P84_t; -typedef struct ProtocolIE_Container_119P85 { - A_SEQUENCE_OF(struct ENB_ENDCX2SetupReqIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_119P85_t; -typedef struct ProtocolIE_Container_119P86 { - A_SEQUENCE_OF(struct En_gNB_ENDCX2SetupReqIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_119P86_t; -typedef struct ProtocolIE_Container_119P87 { - A_SEQUENCE_OF(struct ENDCX2SetupResponse_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_119P87_t; -typedef struct ProtocolIE_Container_119P88 { - A_SEQUENCE_OF(struct ENB_ENDCX2SetupReqAckIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_119P88_t; -typedef struct ProtocolIE_Container_119P89 { - A_SEQUENCE_OF(struct En_gNB_ENDCX2SetupReqAckIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_119P89_t; -typedef struct ProtocolIE_Container_119P90 { - A_SEQUENCE_OF(struct ENDCX2SetupFailure_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_119P90_t; -typedef struct ProtocolIE_Container_119P91 { - A_SEQUENCE_OF(struct ENDCConfigurationUpdate_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_119P91_t; -typedef struct ProtocolIE_Container_119P92 { - A_SEQUENCE_OF(struct ENB_ENDCConfigUpdateIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_119P92_t; -typedef struct ProtocolIE_Container_119P93 { - A_SEQUENCE_OF(struct En_gNB_ENDCConfigUpdateIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_119P93_t; -typedef struct ProtocolIE_Container_119P94 { - A_SEQUENCE_OF(struct ENDCConfigurationUpdateAcknowledge_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_119P94_t; -typedef struct ProtocolIE_Container_119P95 { - A_SEQUENCE_OF(struct ENB_ENDCConfigUpdateAckIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_119P95_t; -typedef struct ProtocolIE_Container_119P96 { - A_SEQUENCE_OF(struct En_gNB_ENDCConfigUpdateAckIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_119P96_t; -typedef struct ProtocolIE_Container_119P97 { - A_SEQUENCE_OF(struct ENDCConfigurationUpdateFailure_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_119P97_t; -typedef struct ProtocolIE_Container_119P98 { - A_SEQUENCE_OF(struct ENDCCellActivationRequest_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_119P98_t; -typedef struct ProtocolIE_Container_119P99 { - A_SEQUENCE_OF(struct ENDCCellActivationResponse_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_119P99_t; -typedef struct ProtocolIE_Container_119P100 { - A_SEQUENCE_OF(struct ENDCCellActivationFailure_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_119P100_t; -typedef struct ProtocolIE_Container_119P101 { - A_SEQUENCE_OF(struct SecondaryRATDataUsageReport_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_119P101_t; -typedef struct ProtocolIE_Container_119P102 { - A_SEQUENCE_OF(struct SgNBActivityNotification_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_119P102_t; -typedef struct ProtocolIE_Container_119P103 { - A_SEQUENCE_OF(struct ENDCPartialResetRequired_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_119P103_t; -typedef struct ProtocolIE_Container_119P104 { - A_SEQUENCE_OF(struct ENDCPartialResetConfirm_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_119P104_t; -typedef struct ProtocolIE_Container_119P105 { - A_SEQUENCE_OF(struct EUTRANRCellResourceCoordinationRequest_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_119P105_t; -typedef struct ProtocolIE_Container_119P106 { - A_SEQUENCE_OF(struct ENB_EUTRA_NRCellResourceCoordinationReqIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_119P106_t; -typedef struct ProtocolIE_Container_119P107 { - A_SEQUENCE_OF(struct En_gNB_EUTRA_NRCellResourceCoordinationReqIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_119P107_t; -typedef struct ProtocolIE_Container_119P108 { - A_SEQUENCE_OF(struct EUTRANRCellResourceCoordinationResponse_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_119P108_t; -typedef struct ProtocolIE_Container_119P109 { - A_SEQUENCE_OF(struct ENB_EUTRA_NRCellResourceCoordinationReqAckIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_119P109_t; -typedef struct ProtocolIE_Container_119P110 { - A_SEQUENCE_OF(struct En_gNB_EUTRA_NRCellResourceCoordinationReqAckIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_119P110_t; -typedef struct ProtocolIE_Container_119P111 { - A_SEQUENCE_OF(struct ENDCX2RemovalRequest_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_119P111_t; -typedef struct ProtocolIE_Container_119P112 { - A_SEQUENCE_OF(struct ENB_ENDCX2RemovalReqIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_119P112_t; -typedef struct ProtocolIE_Container_119P113 { - A_SEQUENCE_OF(struct En_gNB_ENDCX2RemovalReqIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_119P113_t; -typedef struct ProtocolIE_Container_119P114 { - A_SEQUENCE_OF(struct ENDCX2RemovalResponse_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_119P114_t; -typedef struct ProtocolIE_Container_119P115 { - A_SEQUENCE_OF(struct ENB_ENDCX2RemovalReqAckIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_119P115_t; -typedef struct ProtocolIE_Container_119P116 { - A_SEQUENCE_OF(struct En_gNB_ENDCX2RemovalReqAckIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_119P116_t; -typedef struct ProtocolIE_Container_119P117 { - A_SEQUENCE_OF(struct ENDCX2RemovalFailure_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_119P117_t; -typedef struct ProtocolIE_Container_119P118 { - A_SEQUENCE_OF(struct DataForwardingAddressIndication_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_119P118_t; -typedef struct ProtocolIE_Container_119P119 { - A_SEQUENCE_OF(struct GNBStatusIndicationIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_119P119_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P0; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P0_specs_1; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P0_1[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P0_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P1; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P1_specs_3; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P1_3[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P1_constr_3; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P2; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P2_specs_5; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P2_5[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P2_constr_5; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P3; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P3_specs_7; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P3_7[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P3_constr_7; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P4; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P4_specs_9; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P4_9[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P4_constr_9; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P5; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P5_specs_11; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P5_11[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P5_constr_11; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P6; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P6_specs_13; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P6_13[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P6_constr_13; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P7; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P7_specs_15; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P7_15[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P7_constr_15; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P8; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P8_specs_17; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P8_17[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P8_constr_17; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P9; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P9_specs_19; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P9_19[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P9_constr_19; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P10; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P10_specs_21; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P10_21[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P10_constr_21; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P11; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P11_specs_23; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P11_23[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P11_constr_23; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P12; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P12_specs_25; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P12_25[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P12_constr_25; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P13; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P13_specs_27; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P13_27[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P13_constr_27; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P14; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P14_specs_29; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P14_29[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P14_constr_29; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P15; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P15_specs_31; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P15_31[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P15_constr_31; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P16; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P16_specs_33; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P16_33[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P16_constr_33; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P17; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P17_specs_35; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P17_35[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P17_constr_35; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P18; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P18_specs_37; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P18_37[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P18_constr_37; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P19; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P19_specs_39; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P19_39[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P19_constr_39; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P20; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P20_specs_41; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P20_41[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P20_constr_41; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P21; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P21_specs_43; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P21_43[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P21_constr_43; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P22; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P22_specs_45; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P22_45[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P22_constr_45; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P23; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P23_specs_47; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P23_47[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P23_constr_47; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P24; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P24_specs_49; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P24_49[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P24_constr_49; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P25; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P25_specs_51; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P25_51[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P25_constr_51; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P26; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P26_specs_53; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P26_53[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P26_constr_53; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P27; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P27_specs_55; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P27_55[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P27_constr_55; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P28; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P28_specs_57; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P28_57[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P28_constr_57; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P29; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P29_specs_59; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P29_59[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P29_constr_59; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P30; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P30_specs_61; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P30_61[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P30_constr_61; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P31; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P31_specs_63; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P31_63[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P31_constr_63; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P32; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P32_specs_65; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P32_65[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P32_constr_65; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P33; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P33_specs_67; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P33_67[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P33_constr_67; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P34; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P34_specs_69; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P34_69[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P34_constr_69; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P35; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P35_specs_71; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P35_71[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P35_constr_71; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P36; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P36_specs_73; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P36_73[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P36_constr_73; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P37; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P37_specs_75; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P37_75[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P37_constr_75; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P38; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P38_specs_77; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P38_77[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P38_constr_77; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P39; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P39_specs_79; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P39_79[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P39_constr_79; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P40; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P40_specs_81; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P40_81[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P40_constr_81; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P41; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P41_specs_83; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P41_83[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P41_constr_83; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P42; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P42_specs_85; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P42_85[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P42_constr_85; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P43; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P43_specs_87; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P43_87[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P43_constr_87; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P44; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P44_specs_89; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P44_89[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P44_constr_89; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P45; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P45_specs_91; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P45_91[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P45_constr_91; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P46; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P46_specs_93; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P46_93[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P46_constr_93; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P47; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P47_specs_95; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P47_95[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P47_constr_95; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P48; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P48_specs_97; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P48_97[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P48_constr_97; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P49; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P49_specs_99; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P49_99[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P49_constr_99; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P50; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P50_specs_101; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P50_101[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P50_constr_101; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P51; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P51_specs_103; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P51_103[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P51_constr_103; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P52; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P52_specs_105; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P52_105[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P52_constr_105; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P53; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P53_specs_107; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P53_107[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P53_constr_107; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P54; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P54_specs_109; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P54_109[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P54_constr_109; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P55; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P55_specs_111; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P55_111[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P55_constr_111; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P56; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P56_specs_113; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P56_113[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P56_constr_113; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P57; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P57_specs_115; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P57_115[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P57_constr_115; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P58; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P58_specs_117; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P58_117[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P58_constr_117; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P59; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P59_specs_119; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P59_119[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P59_constr_119; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P60; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P60_specs_121; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P60_121[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P60_constr_121; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P61; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P61_specs_123; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P61_123[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P61_constr_123; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P62; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P62_specs_125; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P62_125[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P62_constr_125; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P63; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P63_specs_127; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P63_127[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P63_constr_127; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P64; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P64_specs_129; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P64_129[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P64_constr_129; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P65; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P65_specs_131; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P65_131[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P65_constr_131; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P66; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P66_specs_133; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P66_133[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P66_constr_133; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P67; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P67_specs_135; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P67_135[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P67_constr_135; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P68; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P68_specs_137; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P68_137[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P68_constr_137; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P69; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P69_specs_139; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P69_139[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P69_constr_139; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P70; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P70_specs_141; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P70_141[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P70_constr_141; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P71; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P71_specs_143; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P71_143[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P71_constr_143; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P72; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P72_specs_145; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P72_145[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P72_constr_145; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P73; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P73_specs_147; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P73_147[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P73_constr_147; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P74; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P74_specs_149; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P74_149[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P74_constr_149; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P75; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P75_specs_151; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P75_151[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P75_constr_151; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P76; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P76_specs_153; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P76_153[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P76_constr_153; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P77; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P77_specs_155; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P77_155[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P77_constr_155; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P78; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P78_specs_157; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P78_157[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P78_constr_157; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P79; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P79_specs_159; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P79_159[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P79_constr_159; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P80; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P80_specs_161; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P80_161[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P80_constr_161; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P81; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P81_specs_163; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P81_163[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P81_constr_163; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P82; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P82_specs_165; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P82_165[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P82_constr_165; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P83; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P83_specs_167; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P83_167[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P83_constr_167; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P84; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P84_specs_169; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P84_169[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P84_constr_169; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P85; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P85_specs_171; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P85_171[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P85_constr_171; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P86; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P86_specs_173; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P86_173[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P86_constr_173; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P87; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P87_specs_175; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P87_175[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P87_constr_175; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P88; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P88_specs_177; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P88_177[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P88_constr_177; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P89; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P89_specs_179; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P89_179[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P89_constr_179; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P90; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P90_specs_181; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P90_181[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P90_constr_181; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P91; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P91_specs_183; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P91_183[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P91_constr_183; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P92; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P92_specs_185; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P92_185[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P92_constr_185; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P93; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P93_specs_187; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P93_187[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P93_constr_187; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P94; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P94_specs_189; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P94_189[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P94_constr_189; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P95; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P95_specs_191; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P95_191[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P95_constr_191; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P96; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P96_specs_193; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P96_193[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P96_constr_193; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P97; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P97_specs_195; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P97_195[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P97_constr_195; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P98; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P98_specs_197; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P98_197[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P98_constr_197; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P99; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P99_specs_199; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P99_199[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P99_constr_199; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P100; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P100_specs_201; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P100_201[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P100_constr_201; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P101; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P101_specs_203; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P101_203[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P101_constr_203; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P102; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P102_specs_205; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P102_205[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P102_constr_205; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P103; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P103_specs_207; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P103_207[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P103_constr_207; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P104; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P104_specs_209; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P104_209[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P104_constr_209; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P105; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P105_specs_211; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P105_211[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P105_constr_211; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P106; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P106_specs_213; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P106_213[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P106_constr_213; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P107; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P107_specs_215; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P107_215[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P107_constr_215; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P108; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P108_specs_217; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P108_217[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P108_constr_217; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P109; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P109_specs_219; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P109_219[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P109_constr_219; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P110; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P110_specs_221; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P110_221[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P110_constr_221; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P111; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P111_specs_223; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P111_223[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P111_constr_223; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P112; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P112_specs_225; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P112_225[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P112_constr_225; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P113; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P113_specs_227; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P113_227[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P113_constr_227; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P114; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P114_specs_229; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P114_229[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P114_constr_229; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P115; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P115_specs_231; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P115_231[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P115_constr_231; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P116; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P116_specs_233; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P116_233[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P116_constr_233; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P117; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P117_specs_235; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P117_235[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P117_constr_235; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P118; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P118_specs_237; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P118_237[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P118_constr_237; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_119P119; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_119P119_specs_239; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_119P119_239[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_119P119_constr_239; - -#ifdef __cplusplus -} -#endif - -#endif /* _ProtocolIE_Container_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/ProtocolIE-ContainerList.c b/e2sim/previous/ASN1c/ProtocolIE-ContainerList.c deleted file mode 100644 index a52ddee..0000000 --- a/e2sim/previous/ASN1c/ProtocolIE-ContainerList.c +++ /dev/null @@ -1,27 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-Containers" - * found in "../../asnFiles/X2AP-Containers.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "ProtocolIE-ContainerList.h" - diff --git a/e2sim/previous/ASN1c/ProtocolIE-ContainerList.h b/e2sim/previous/ASN1c/ProtocolIE-ContainerList.h deleted file mode 100644 index ea70da6..0000000 --- a/e2sim/previous/ASN1c/ProtocolIE-ContainerList.h +++ /dev/null @@ -1,41 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-Containers" - * found in "../../asnFiles/X2AP-Containers.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _ProtocolIE_ContainerList_H_ -#define _ProtocolIE_ContainerList_H_ - - -#include "asn_application.h" - -#ifdef __cplusplus -extern "C" { -#endif - -#ifdef __cplusplus -} -#endif - -#endif /* _ProtocolIE_ContainerList_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/ProtocolIE-ContainerPair.c b/e2sim/previous/ASN1c/ProtocolIE-ContainerPair.c deleted file mode 100644 index fb16e45..0000000 --- a/e2sim/previous/ASN1c/ProtocolIE-ContainerPair.c +++ /dev/null @@ -1,27 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-Containers" - * found in "../../asnFiles/X2AP-Containers.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "ProtocolIE-ContainerPair.h" - diff --git a/e2sim/previous/ASN1c/ProtocolIE-ContainerPair.h b/e2sim/previous/ASN1c/ProtocolIE-ContainerPair.h deleted file mode 100644 index fa29ee5..0000000 --- a/e2sim/previous/ASN1c/ProtocolIE-ContainerPair.h +++ /dev/null @@ -1,41 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-Containers" - * found in "../../asnFiles/X2AP-Containers.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _ProtocolIE_ContainerPair_H_ -#define _ProtocolIE_ContainerPair_H_ - - -#include "asn_application.h" - -#ifdef __cplusplus -extern "C" { -#endif - -#ifdef __cplusplus -} -#endif - -#endif /* _ProtocolIE_ContainerPair_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/ProtocolIE-ContainerPairList.c b/e2sim/previous/ASN1c/ProtocolIE-ContainerPairList.c deleted file mode 100644 index 40a99b6..0000000 --- a/e2sim/previous/ASN1c/ProtocolIE-ContainerPairList.c +++ /dev/null @@ -1,27 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-Containers" - * found in "../../asnFiles/X2AP-Containers.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "ProtocolIE-ContainerPairList.h" - diff --git a/e2sim/previous/ASN1c/ProtocolIE-ContainerPairList.h b/e2sim/previous/ASN1c/ProtocolIE-ContainerPairList.h deleted file mode 100644 index c5a91f8..0000000 --- a/e2sim/previous/ASN1c/ProtocolIE-ContainerPairList.h +++ /dev/null @@ -1,41 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-Containers" - * found in "../../asnFiles/X2AP-Containers.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _ProtocolIE_ContainerPairList_H_ -#define _ProtocolIE_ContainerPairList_H_ - - -#include "asn_application.h" - -#ifdef __cplusplus -extern "C" { -#endif - -#ifdef __cplusplus -} -#endif - -#endif /* _ProtocolIE_ContainerPairList_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/ProtocolIE-Field.c b/e2sim/previous/ASN1c/ProtocolIE-Field.c deleted file mode 100644 index 8cc02f2..0000000 --- a/e2sim/previous/ASN1c/ProtocolIE-Field.c +++ /dev/null @@ -1,48581 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-Containers" - * found in "../asnFiles/X2AP-Containers.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "ProtocolIE-Field.h" - -static const long asn_VAL_4_id_RICaction_ToBeSetup_Item = 60011; -static const long asn_VAL_4_ignore = 1; -static const long asn_VAL_4_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_RICaction_ToBeSetup_ItemIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_4_id_RICaction_ToBeSetup_Item }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_4_ignore }, - { "&Value", aioc__type, &asn_DEF_RICaction_ToBeSetup_Item }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_4_mandatory } -}; -static const asn_ioc_set_t asn_IOS_RICaction_ToBeSetup_ItemIEs_1[] = { - { 1, 4, asn_IOS_RICaction_ToBeSetup_ItemIEs_1_rows } -}; -static const long asn_VAL_9_id_RICaction_Admitted_Item = 60013; -static const long asn_VAL_9_ignore = 1; -static const long asn_VAL_9_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_RICaction_Admitted_ItemIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_9_id_RICaction_Admitted_Item }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_9_ignore }, - { "&Value", aioc__type, &asn_DEF_RICaction_Admitted_Item }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_9_mandatory } -}; -static const asn_ioc_set_t asn_IOS_RICaction_Admitted_ItemIEs_1[] = { - { 1, 4, asn_IOS_RICaction_Admitted_ItemIEs_1_rows } -}; -static const long asn_VAL_10_id_RICaction_NotAdmitted_Item = 60015; -static const long asn_VAL_10_ignore = 1; -static const long asn_VAL_10_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_RICaction_NotAdmitted_ItemIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_10_id_RICaction_NotAdmitted_Item }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_10_ignore }, - { "&Value", aioc__type, &asn_DEF_RICaction_NotAdmitted_Item }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_10_mandatory } -}; -static const asn_ioc_set_t asn_IOS_RICaction_NotAdmitted_ItemIEs_1[] = { - { 1, 4, asn_IOS_RICaction_NotAdmitted_ItemIEs_1_rows } -}; -static const long asn_VAL_48_id_RANfunction_Item = 60001; -static const long asn_VAL_48_ignore = 1; -static const long asn_VAL_48_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_RANfunction_ItemIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_48_id_RANfunction_Item }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_48_ignore }, - { "&Value", aioc__type, &asn_DEF_RANfunction_Item }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_48_mandatory } -}; -static const asn_ioc_set_t asn_IOS_RANfunction_ItemIEs_1[] = { - { 1, 4, asn_IOS_RANfunction_ItemIEs_1_rows } -}; -static const long asn_VAL_49_id_RANfunctionID_Item = 60004; -static const long asn_VAL_49_ignore = 1; -static const long asn_VAL_49_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_RANfunctionID_ItemIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_49_id_RANfunctionID_Item }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_49_ignore }, - { "&Value", aioc__type, &asn_DEF_RANfunctionID_Item }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_49_mandatory } -}; -static const asn_ioc_set_t asn_IOS_RANfunctionID_ItemIEs_1[] = { - { 1, 4, asn_IOS_RANfunctionID_ItemIEs_1_rows } -}; -static const long asn_VAL_52_id_RANfunctionIEcause_Item = 60005; -static const long asn_VAL_52_ignore = 1; -static const long asn_VAL_52_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_RANfunctionIDcause_ItemIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_52_id_RANfunctionIEcause_Item }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_52_ignore }, - { "&Value", aioc__type, &asn_DEF_RANfunctionIDcause_Item }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_52_mandatory } -}; -static const asn_ioc_set_t asn_IOS_RANfunctionIDcause_ItemIEs_1[] = { - { 1, 4, asn_IOS_RANfunctionIDcause_ItemIEs_1_rows } -}; -static const long asn_VAL_79_id_E_RABs_ToBeSetup_Item = 4; -static const long asn_VAL_79_ignore = 1; -static const long asn_VAL_79_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_E_RABs_ToBeSetup_ItemIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_79_id_E_RABs_ToBeSetup_Item }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_79_ignore }, - { "&Value", aioc__type, &asn_DEF_E_RABs_ToBeSetup_Item }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_79_mandatory } -}; -static const asn_ioc_set_t asn_IOS_E_RABs_ToBeSetup_ItemIEs_1[] = { - { 1, 4, asn_IOS_E_RABs_ToBeSetup_ItemIEs_1_rows } -}; -static const long asn_VAL_91_id_E_RABs_Admitted_Item = 0; -static const long asn_VAL_91_ignore = 1; -static const long asn_VAL_91_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_E_RABs_Admitted_ItemIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_91_id_E_RABs_Admitted_Item }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_91_ignore }, - { "&Value", aioc__type, &asn_DEF_E_RABs_Admitted_Item }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_91_mandatory } -}; -static const asn_ioc_set_t asn_IOS_E_RABs_Admitted_ItemIEs_1[] = { - { 1, 4, asn_IOS_E_RABs_Admitted_ItemIEs_1_rows } -}; -static const long asn_VAL_112_id_E_RABs_SubjectToStatusTransfer_Item = 19; -static const long asn_VAL_112_ignore = 1; -static const long asn_VAL_112_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_E_RABs_SubjectToStatusTransfer_ItemIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_112_id_E_RABs_SubjectToStatusTransfer_Item }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_112_ignore }, - { "&Value", aioc__type, &asn_DEF_E_RABs_SubjectToStatusTransfer_Item }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_112_mandatory } -}; -static const asn_ioc_set_t asn_IOS_E_RABs_SubjectToStatusTransfer_ItemIEs_1[] = { - { 1, 4, asn_IOS_E_RABs_SubjectToStatusTransfer_ItemIEs_1_rows } -}; -static const long asn_VAL_146_id_CellInformation_Item = 7; -static const long asn_VAL_146_ignore = 1; -static const long asn_VAL_146_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_CellInformation_ItemIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_146_id_CellInformation_Item }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_146_ignore }, - { "&Value", aioc__type, &asn_DEF_CellInformation_Item }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_146_mandatory } -}; -static const asn_ioc_set_t asn_IOS_CellInformation_ItemIEs_1[] = { - { 1, 4, asn_IOS_CellInformation_ItemIEs_1_rows } -}; -static const long asn_VAL_166_id_CellToReport_Item = 31; -static const long asn_VAL_166_ignore = 1; -static const long asn_VAL_166_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_CellToReport_ItemIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_166_id_CellToReport_Item }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_166_ignore }, - { "&Value", aioc__type, &asn_DEF_CellToReport_Item }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_166_mandatory } -}; -static const asn_ioc_set_t asn_IOS_CellToReport_ItemIEs_1[] = { - { 1, 4, asn_IOS_CellToReport_ItemIEs_1_rows } -}; -static const long asn_VAL_171_id_MeasurementInitiationResult_Item = 66; -static const long asn_VAL_171_ignore = 1; -static const long asn_VAL_171_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_MeasurementInitiationResult_ItemIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_171_id_MeasurementInitiationResult_Item }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_171_ignore }, - { "&Value", aioc__type, &asn_DEF_MeasurementInitiationResult_Item }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_171_mandatory } -}; -static const asn_ioc_set_t asn_IOS_MeasurementInitiationResult_ItemIEs_1[] = { - { 1, 4, asn_IOS_MeasurementInitiationResult_ItemIEs_1_rows } -}; -static const long asn_VAL_172_id_MeasurementFailureCause_Item = 67; -static const long asn_VAL_172_ignore = 1; -static const long asn_VAL_172_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_MeasurementFailureCause_ItemIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_172_id_MeasurementFailureCause_Item }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_172_ignore }, - { "&Value", aioc__type, &asn_DEF_MeasurementFailureCause_Item }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_172_mandatory } -}; -static const asn_ioc_set_t asn_IOS_MeasurementFailureCause_ItemIEs_1[] = { - { 1, 4, asn_IOS_MeasurementFailureCause_ItemIEs_1_rows } -}; -static const long asn_VAL_178_id_CompleteFailureCauseInformation_Item = 69; -static const long asn_VAL_178_ignore = 1; -static const long asn_VAL_178_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_CompleteFailureCauseInformation_ItemIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_178_id_CompleteFailureCauseInformation_Item }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_178_ignore }, - { "&Value", aioc__type, &asn_DEF_CompleteFailureCauseInformation_Item }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_178_mandatory } -}; -static const asn_ioc_set_t asn_IOS_CompleteFailureCauseInformation_ItemIEs_1[] = { - { 1, 4, asn_IOS_CompleteFailureCauseInformation_ItemIEs_1_rows } -}; -static const long asn_VAL_182_id_CellMeasurementResult_Item = 33; -static const long asn_VAL_182_ignore = 1; -static const long asn_VAL_182_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_CellMeasurementResult_ItemIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_182_id_CellMeasurementResult_Item }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_182_ignore }, - { "&Value", aioc__type, &asn_DEF_CellMeasurementResult_Item }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_182_mandatory } -}; -static const asn_ioc_set_t asn_IOS_CellMeasurementResult_ItemIEs_1[] = { - { 1, 4, asn_IOS_CellMeasurementResult_ItemIEs_1_rows } -}; -static const long asn_VAL_224_id_E_RABs_ToBeAdded_Item = 118; -static const long asn_VAL_224_reject = 0; -static const long asn_VAL_224_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_E_RABs_ToBeAdded_ItemIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_224_id_E_RABs_ToBeAdded_Item }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_224_reject }, - { "&Value", aioc__type, &asn_DEF_E_RABs_ToBeAdded_Item }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_224_mandatory } -}; -static const asn_ioc_set_t asn_IOS_E_RABs_ToBeAdded_ItemIEs_1[] = { - { 1, 4, asn_IOS_E_RABs_ToBeAdded_ItemIEs_1_rows } -}; -static const long asn_VAL_236_id_E_RABs_Admitted_ToBeAdded_Item = 121; -static const long asn_VAL_236_ignore = 1; -static const long asn_VAL_236_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_E_RABs_Admitted_ToBeAdded_ItemIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_236_id_E_RABs_Admitted_ToBeAdded_Item }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_236_ignore }, - { "&Value", aioc__type, &asn_DEF_E_RABs_Admitted_ToBeAdded_Item }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_236_mandatory } -}; -static const asn_ioc_set_t asn_IOS_E_RABs_Admitted_ToBeAdded_ItemIEs_1[] = { - { 1, 4, asn_IOS_E_RABs_Admitted_ToBeAdded_ItemIEs_1_rows } -}; -static const long asn_VAL_258_id_E_RABs_ToBeAdded_ModReqItem = 125; -static const long asn_VAL_258_ignore = 1; -static const long asn_VAL_258_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_E_RABs_ToBeAdded_ModReqItemIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_258_id_E_RABs_ToBeAdded_ModReqItem }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_258_ignore }, - { "&Value", aioc__type, &asn_DEF_E_RABs_ToBeAdded_ModReqItem }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_258_mandatory } -}; -static const asn_ioc_set_t asn_IOS_E_RABs_ToBeAdded_ModReqItemIEs_1[] = { - { 1, 4, asn_IOS_E_RABs_ToBeAdded_ModReqItemIEs_1_rows } -}; -static const long asn_VAL_259_id_E_RABs_ToBeModified_ModReqItem = 126; -static const long asn_VAL_259_ignore = 1; -static const long asn_VAL_259_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_E_RABs_ToBeModified_ModReqItemIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_259_id_E_RABs_ToBeModified_ModReqItem }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_259_ignore }, - { "&Value", aioc__type, &asn_DEF_E_RABs_ToBeModified_ModReqItem }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_259_mandatory } -}; -static const asn_ioc_set_t asn_IOS_E_RABs_ToBeModified_ModReqItemIEs_1[] = { - { 1, 4, asn_IOS_E_RABs_ToBeModified_ModReqItemIEs_1_rows } -}; -static const long asn_VAL_260_id_E_RABs_ToBeReleased_ModReqItem = 127; -static const long asn_VAL_260_ignore = 1; -static const long asn_VAL_260_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_E_RABs_ToBeReleased_ModReqItemIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_260_id_E_RABs_ToBeReleased_ModReqItem }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_260_ignore }, - { "&Value", aioc__type, &asn_DEF_E_RABs_ToBeReleased_ModReqItem }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_260_mandatory } -}; -static const asn_ioc_set_t asn_IOS_E_RABs_ToBeReleased_ModReqItemIEs_1[] = { - { 1, 4, asn_IOS_E_RABs_ToBeReleased_ModReqItemIEs_1_rows } -}; -static const long asn_VAL_271_id_E_RABs_Admitted_ToBeAdded_ModAckItem = 131; -static const long asn_VAL_271_ignore = 1; -static const long asn_VAL_271_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_E_RABs_Admitted_ToBeAdded_ModAckItemIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_271_id_E_RABs_Admitted_ToBeAdded_ModAckItem }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_271_ignore }, - { "&Value", aioc__type, &asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckItem }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_271_mandatory } -}; -static const asn_ioc_set_t asn_IOS_E_RABs_Admitted_ToBeAdded_ModAckItemIEs_1[] = { - { 1, 4, asn_IOS_E_RABs_Admitted_ToBeAdded_ModAckItemIEs_1_rows } -}; -static const long asn_VAL_272_id_E_RABs_Admitted_ToBeModified_ModAckItem = 132; -static const long asn_VAL_272_ignore = 1; -static const long asn_VAL_272_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_E_RABs_Admitted_ToBeModified_ModAckItemIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_272_id_E_RABs_Admitted_ToBeModified_ModAckItem }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_272_ignore }, - { "&Value", aioc__type, &asn_DEF_E_RABs_Admitted_ToBeModified_ModAckItem }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_272_mandatory } -}; -static const asn_ioc_set_t asn_IOS_E_RABs_Admitted_ToBeModified_ModAckItemIEs_1[] = { - { 1, 4, asn_IOS_E_RABs_Admitted_ToBeModified_ModAckItemIEs_1_rows } -}; -static const long asn_VAL_273_id_E_RABs_Admitted_ToBeReleased_ModAckItem = 133; -static const long asn_VAL_273_ignore = 1; -static const long asn_VAL_273_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_E_RABs_Admitted_ToBeReleased_ModAckItemIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_273_id_E_RABs_Admitted_ToBeReleased_ModAckItem }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_273_ignore }, - { "&Value", aioc__type, &asn_DEF_E_RABs_Admitted_ToReleased_ModAckItem }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_273_mandatory } -}; -static const asn_ioc_set_t asn_IOS_E_RABs_Admitted_ToBeReleased_ModAckItemIEs_1[] = { - { 1, 4, asn_IOS_E_RABs_Admitted_ToBeReleased_ModAckItemIEs_1_rows } -}; -static const long asn_VAL_288_id_E_RABs_ToBeReleased_ModReqdItem = 135; -static const long asn_VAL_288_ignore = 1; -static const long asn_VAL_288_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_E_RABs_ToBeReleased_ModReqdItemIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_288_id_E_RABs_ToBeReleased_ModReqdItem }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_288_ignore }, - { "&Value", aioc__type, &asn_DEF_E_RABs_ToBeReleased_ModReqdItem }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_288_mandatory } -}; -static const asn_ioc_set_t asn_IOS_E_RABs_ToBeReleased_ModReqdItemIEs_1[] = { - { 1, 4, asn_IOS_E_RABs_ToBeReleased_ModReqdItemIEs_1_rows } -}; -static const long asn_VAL_310_id_E_RABs_ToBeReleased_RelReqItem = 138; -static const long asn_VAL_310_ignore = 1; -static const long asn_VAL_310_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_E_RABs_ToBeReleased_RelReqItemIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_310_id_E_RABs_ToBeReleased_RelReqItem }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_310_ignore }, - { "&Value", aioc__type, &asn_DEF_E_RABs_ToBeReleased_RelReqItem }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_310_mandatory } -}; -static const asn_ioc_set_t asn_IOS_E_RABs_ToBeReleased_RelReqItemIEs_1[] = { - { 1, 4, asn_IOS_E_RABs_ToBeReleased_RelReqItemIEs_1_rows } -}; -static const long asn_VAL_322_id_E_RABs_ToBeReleased_RelConfItem = 140; -static const long asn_VAL_322_ignore = 1; -static const long asn_VAL_322_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_E_RABs_ToBeReleased_RelConfItemIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_322_id_E_RABs_ToBeReleased_RelConfItem }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_322_ignore }, - { "&Value", aioc__type, &asn_DEF_E_RABs_ToBeReleased_RelConfItem }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_322_mandatory } -}; -static const asn_ioc_set_t asn_IOS_E_RABs_ToBeReleased_RelConfItemIEs_1[] = { - { 1, 4, asn_IOS_E_RABs_ToBeReleased_RelConfItemIEs_1_rows } -}; -static const long asn_VAL_328_id_E_RABs_SubjectToCounterCheckItem = 142; -static const long asn_VAL_328_ignore = 1; -static const long asn_VAL_328_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_E_RABs_SubjectToCounterCheckItemIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_328_id_E_RABs_SubjectToCounterCheckItem }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_328_ignore }, - { "&Value", aioc__type, &asn_DEF_E_RABs_SubjectToCounterCheckItem }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_328_mandatory } -}; -static const asn_ioc_set_t asn_IOS_E_RABs_SubjectToCounterCheckItemIEs_1[] = { - { 1, 4, asn_IOS_E_RABs_SubjectToCounterCheckItemIEs_1_rows } -}; -static const long asn_VAL_357_id_E_RABs_ToBeSetupRetrieve_Item = 174; -static const long asn_VAL_357_ignore = 1; -static const long asn_VAL_357_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_E_RABs_ToBeSetupRetrieve_ItemIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_357_id_E_RABs_ToBeSetupRetrieve_Item }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_357_ignore }, - { "&Value", aioc__type, &asn_DEF_E_RABs_ToBeSetupRetrieve_Item }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_357_mandatory } -}; -static const asn_ioc_set_t asn_IOS_E_RABs_ToBeSetupRetrieve_ItemIEs_1[] = { - { 1, 4, asn_IOS_E_RABs_ToBeSetupRetrieve_ItemIEs_1_rows } -}; -static const long asn_VAL_378_id_E_RABs_ToBeAdded_SgNBAddReq_Item = 209; -static const long asn_VAL_378_reject = 0; -static const long asn_VAL_378_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_E_RABs_ToBeAdded_SgNBAddReq_ItemIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_378_id_E_RABs_ToBeAdded_SgNBAddReq_Item }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_378_reject }, - { "&Value", aioc__type, &asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_Item }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_378_mandatory } -}; -static const asn_ioc_set_t asn_IOS_E_RABs_ToBeAdded_SgNBAddReq_ItemIEs_1[] = { - { 1, 4, asn_IOS_E_RABs_ToBeAdded_SgNBAddReq_ItemIEs_1_rows } -}; -static const long asn_VAL_389_id_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item = 213; -static const long asn_VAL_389_ignore = 1; -static const long asn_VAL_389_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_ItemIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_389_id_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_389_ignore }, - { "&Value", aioc__type, &asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_389_mandatory } -}; -static const asn_ioc_set_t asn_IOS_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_ItemIEs_1[] = { - { 1, 4, asn_IOS_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_ItemIEs_1_rows } -}; -static const long asn_VAL_411_id_E_RABs_ToBeAdded_SgNBModReq_Item = 216; -static const long asn_VAL_411_ignore = 1; -static const long asn_VAL_411_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_E_RABs_ToBeAdded_SgNBModReq_ItemIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_411_id_E_RABs_ToBeAdded_SgNBModReq_Item }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_411_ignore }, - { "&Value", aioc__type, &asn_DEF_E_RABs_ToBeAdded_SgNBModReq_Item }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_411_mandatory } -}; -static const asn_ioc_set_t asn_IOS_E_RABs_ToBeAdded_SgNBModReq_ItemIEs_1[] = { - { 1, 4, asn_IOS_E_RABs_ToBeAdded_SgNBModReq_ItemIEs_1_rows } -}; -static const long asn_VAL_412_id_E_RABs_ToBeModified_SgNBModReq_Item = 217; -static const long asn_VAL_412_ignore = 1; -static const long asn_VAL_412_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_E_RABs_ToBeModified_SgNBModReq_ItemIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_412_id_E_RABs_ToBeModified_SgNBModReq_Item }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_412_ignore }, - { "&Value", aioc__type, &asn_DEF_E_RABs_ToBeModified_SgNBModReq_Item }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_412_mandatory } -}; -static const asn_ioc_set_t asn_IOS_E_RABs_ToBeModified_SgNBModReq_ItemIEs_1[] = { - { 1, 4, asn_IOS_E_RABs_ToBeModified_SgNBModReq_ItemIEs_1_rows } -}; -static const long asn_VAL_413_id_E_RABs_ToBeReleased_SgNBModReq_Item = 218; -static const long asn_VAL_413_ignore = 1; -static const long asn_VAL_413_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_E_RABs_ToBeReleased_SgNBModReq_ItemIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_413_id_E_RABs_ToBeReleased_SgNBModReq_Item }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_413_ignore }, - { "&Value", aioc__type, &asn_DEF_E_RABs_ToBeReleased_SgNBModReq_Item }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_413_mandatory } -}; -static const asn_ioc_set_t asn_IOS_E_RABs_ToBeReleased_SgNBModReq_ItemIEs_1[] = { - { 1, 4, asn_IOS_E_RABs_ToBeReleased_SgNBModReq_ItemIEs_1_rows } -}; -static const long asn_VAL_427_id_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item = 222; -static const long asn_VAL_427_ignore = 1; -static const long asn_VAL_427_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_427_id_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_427_ignore }, - { "&Value", aioc__type, &asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_427_mandatory } -}; -static const asn_ioc_set_t asn_IOS_E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemIEs_1[] = { - { 1, 4, asn_IOS_E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemIEs_1_rows } -}; -static const long asn_VAL_428_id_E_RABs_Admitted_ToBeModified_SgNBModAck_Item = 223; -static const long asn_VAL_428_ignore = 1; -static const long asn_VAL_428_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_E_RABs_Admitted_ToBeModified_SgNBModAck_ItemIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_428_id_E_RABs_Admitted_ToBeModified_SgNBModAck_Item }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_428_ignore }, - { "&Value", aioc__type, &asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAck_Item }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_428_mandatory } -}; -static const asn_ioc_set_t asn_IOS_E_RABs_Admitted_ToBeModified_SgNBModAck_ItemIEs_1[] = { - { 1, 4, asn_IOS_E_RABs_Admitted_ToBeModified_SgNBModAck_ItemIEs_1_rows } -}; -static const long asn_VAL_429_id_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item = 224; -static const long asn_VAL_429_ignore = 1; -static const long asn_VAL_429_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_E_RABs_Admitted_ToBeReleased_SgNBModAck_ItemIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_429_id_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_429_ignore }, - { "&Value", aioc__type, &asn_DEF_E_RABs_Admitted_ToReleased_SgNBModAck_Item }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_429_mandatory } -}; -static const asn_ioc_set_t asn_IOS_E_RABs_Admitted_ToBeReleased_SgNBModAck_ItemIEs_1[] = { - { 1, 4, asn_IOS_E_RABs_Admitted_ToBeReleased_SgNBModAck_ItemIEs_1_rows } -}; -static const long asn_VAL_445_id_E_RABs_ToBeReleased_SgNBModReqd_Item = 227; -static const long asn_VAL_445_ignore = 1; -static const long asn_VAL_445_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_E_RABs_ToBeReleased_SgNBModReqd_ItemIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_445_id_E_RABs_ToBeReleased_SgNBModReqd_Item }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_445_ignore }, - { "&Value", aioc__type, &asn_DEF_E_RABs_ToBeReleased_SgNBModReqd_Item }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_445_mandatory } -}; -static const asn_ioc_set_t asn_IOS_E_RABs_ToBeReleased_SgNBModReqd_ItemIEs_1[] = { - { 1, 4, asn_IOS_E_RABs_ToBeReleased_SgNBModReqd_ItemIEs_1_rows } -}; -static const long asn_VAL_446_id_E_RABs_ToBeModified_SgNBModReqd_Item = 228; -static const long asn_VAL_446_ignore = 1; -static const long asn_VAL_446_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_E_RABs_ToBeModified_SgNBModReqd_ItemIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_446_id_E_RABs_ToBeModified_SgNBModReqd_Item }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_446_ignore }, - { "&Value", aioc__type, &asn_DEF_E_RABs_ToBeModified_SgNBModReqd_Item }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_446_mandatory } -}; -static const asn_ioc_set_t asn_IOS_E_RABs_ToBeModified_SgNBModReqd_ItemIEs_1[] = { - { 1, 4, asn_IOS_E_RABs_ToBeModified_SgNBModReqd_ItemIEs_1_rows } -}; -static const long asn_VAL_454_id_E_RABs_AdmittedToBeModified_SgNBModConf_Item = 295; -static const long asn_VAL_454_ignore = 1; -static const long asn_VAL_454_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_E_RABs_AdmittedToBeModified_SgNBModConf_ItemIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_454_id_E_RABs_AdmittedToBeModified_SgNBModConf_Item }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_454_ignore }, - { "&Value", aioc__type, &asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_Item }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_454_mandatory } -}; -static const asn_ioc_set_t asn_IOS_E_RABs_AdmittedToBeModified_SgNBModConf_ItemIEs_1[] = { - { 1, 4, asn_IOS_E_RABs_AdmittedToBeModified_SgNBModConf_ItemIEs_1_rows } -}; -static const long asn_VAL_468_id_E_RABs_ToBeReleased_SgNBRelReq_Item = 232; -static const long asn_VAL_468_ignore = 1; -static const long asn_VAL_468_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_E_RABs_ToBeReleased_SgNBRelReq_ItemIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_468_id_E_RABs_ToBeReleased_SgNBRelReq_Item }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_468_ignore }, - { "&Value", aioc__type, &asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_Item }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_468_mandatory } -}; -static const asn_ioc_set_t asn_IOS_E_RABs_ToBeReleased_SgNBRelReq_ItemIEs_1[] = { - { 1, 4, asn_IOS_E_RABs_ToBeReleased_SgNBRelReq_ItemIEs_1_rows } -}; -static const long asn_VAL_474_id_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item = 319; -static const long asn_VAL_474_ignore = 1; -static const long asn_VAL_474_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_474_id_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_474_ignore }, - { "&Value", aioc__type, &asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_474_mandatory } -}; -static const asn_ioc_set_t asn_IOS_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemIEs_1[] = { - { 1, 4, asn_IOS_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemIEs_1_rows } -}; -static const long asn_VAL_485_id_E_RABs_ToBeReleased_SgNBRelReqd_Item = 321; -static const long asn_VAL_485_ignore = 1; -static const long asn_VAL_485_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_E_RABs_ToBeReleased_SgNBRelReqd_ItemIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_485_id_E_RABs_ToBeReleased_SgNBRelReqd_Item }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_485_ignore }, - { "&Value", aioc__type, &asn_DEF_E_RABs_ToBeReleased_SgNBRelReqd_Item }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_485_mandatory } -}; -static const asn_ioc_set_t asn_IOS_E_RABs_ToBeReleased_SgNBRelReqd_ItemIEs_1[] = { - { 1, 4, asn_IOS_E_RABs_ToBeReleased_SgNBRelReqd_ItemIEs_1_rows } -}; -static const long asn_VAL_491_id_E_RABs_ToBeReleased_SgNBRelConf_Item = 234; -static const long asn_VAL_491_ignore = 1; -static const long asn_VAL_491_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_E_RABs_ToBeReleased_SgNBRelConf_ItemIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_491_id_E_RABs_ToBeReleased_SgNBRelConf_Item }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_491_ignore }, - { "&Value", aioc__type, &asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_Item }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_491_mandatory } -}; -static const asn_ioc_set_t asn_IOS_E_RABs_ToBeReleased_SgNBRelConf_ItemIEs_1[] = { - { 1, 4, asn_IOS_E_RABs_ToBeReleased_SgNBRelConf_ItemIEs_1_rows } -}; -static const long asn_VAL_496_id_E_RABs_SubjectToSgNBCounterCheck_Item = 236; -static const long asn_VAL_496_ignore = 1; -static const long asn_VAL_496_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_E_RABs_SubjectToSgNBCounterCheck_ItemIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_496_id_E_RABs_SubjectToSgNBCounterCheck_Item }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_496_ignore }, - { "&Value", aioc__type, &asn_DEF_E_RABs_SubjectToSgNBCounterCheck_Item }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_496_mandatory } -}; -static const asn_ioc_set_t asn_IOS_E_RABs_SubjectToSgNBCounterCheck_ItemIEs_1[] = { - { 1, 4, asn_IOS_E_RABs_SubjectToSgNBCounterCheck_ItemIEs_1_rows } -}; -static const long asn_VAL_508_id_E_RABs_ToBeReleased_SgNBChaConf_Item = 230; -static const long asn_VAL_508_ignore = 1; -static const long asn_VAL_508_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_E_RABs_ToBeReleased_SgNBChaConf_ItemIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_508_id_E_RABs_ToBeReleased_SgNBChaConf_Item }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_508_ignore }, - { "&Value", aioc__type, &asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_Item }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_508_mandatory } -}; -static const asn_ioc_set_t asn_IOS_E_RABs_ToBeReleased_SgNBChaConf_ItemIEs_1[] = { - { 1, 4, asn_IOS_E_RABs_ToBeReleased_SgNBChaConf_ItemIEs_1_rows } -}; -static const long asn_VAL_592_id_E_RABs_DataForwardingAddress_Item = 308; -static const long asn_VAL_592_ignore = 1; -static const long asn_VAL_592_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_E_RABs_DataForwardingAddress_ItemIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_592_id_E_RABs_DataForwardingAddress_Item }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_592_ignore }, - { "&Value", aioc__type, &asn_DEF_E_RABs_DataForwardingAddress_Item }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_592_mandatory } -}; -static const asn_ioc_set_t asn_IOS_E_RABs_DataForwardingAddress_ItemIEs_1[] = { - { 1, 4, asn_IOS_E_RABs_DataForwardingAddress_ItemIEs_1_rows } -}; -static const long asn_VAL_1_id_RICrequestID = 60030; -static const long asn_VAL_1_reject = 0; -static const long asn_VAL_1_mandatory = 2; -static const long asn_VAL_2_id_RANfunctionID = 60003; -static const long asn_VAL_2_reject = 0; -static const long asn_VAL_2_mandatory = 2; -static const long asn_VAL_3_id_RICsubscription = 60033; -static const long asn_VAL_3_reject = 0; -static const long asn_VAL_3_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_RICsubscriptionRequest_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_1_id_RICrequestID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_1_reject }, - { "&Value", aioc__type, &asn_DEF_RICrequestID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_1_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_2_id_RANfunctionID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_2_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_2_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_3_id_RICsubscription }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_3_reject }, - { "&Value", aioc__type, &asn_DEF_RICsubscription }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_3_mandatory } -}; -static const asn_ioc_set_t asn_IOS_RICsubscriptionRequest_IEs_1[] = { - { 3, 4, asn_IOS_RICsubscriptionRequest_IEs_1_rows } -}; -static const long asn_VAL_5_id_RICrequestID = 60030; -static const long asn_VAL_5_reject = 0; -static const long asn_VAL_5_mandatory = 2; -static const long asn_VAL_6_id_RANfunctionID = 60003; -static const long asn_VAL_6_reject = 0; -static const long asn_VAL_6_mandatory = 2; -static const long asn_VAL_7_id_RICactions_Admitted = 60012; -static const long asn_VAL_7_reject = 0; -static const long asn_VAL_7_mandatory = 2; -static const long asn_VAL_8_id_RICactions_NotAdmitted = 60014; -static const long asn_VAL_8_reject = 0; -static const long asn_VAL_8_optional = 0; -static const asn_ioc_cell_t asn_IOS_RICsubscriptionResponse_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_5_id_RICrequestID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_5_reject }, - { "&Value", aioc__type, &asn_DEF_RICrequestID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_5_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_6_id_RANfunctionID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_6_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_6_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_7_id_RICactions_Admitted }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_7_reject }, - { "&Value", aioc__type, &asn_DEF_RICaction_Admitted_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_7_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_8_id_RICactions_NotAdmitted }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_8_reject }, - { "&Value", aioc__type, &asn_DEF_RICaction_NotAdmitted_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_8_optional } -}; -static const asn_ioc_set_t asn_IOS_RICsubscriptionResponse_IEs_1[] = { - { 4, 4, asn_IOS_RICsubscriptionResponse_IEs_1_rows } -}; -static const long asn_VAL_11_id_RICrequestID = 60030; -static const long asn_VAL_11_reject = 0; -static const long asn_VAL_11_mandatory = 2; -static const long asn_VAL_12_id_RANfunctionID = 60003; -static const long asn_VAL_12_reject = 0; -static const long asn_VAL_12_mandatory = 2; -static const long asn_VAL_13_id_RICactions_NotAdmitted = 60014; -static const long asn_VAL_13_reject = 0; -static const long asn_VAL_13_mandatory = 2; -static const long asn_VAL_14_id_CriticalityDiagnostics = 17; -static const long asn_VAL_14_ignore = 1; -static const long asn_VAL_14_optional = 0; -static const asn_ioc_cell_t asn_IOS_RICsubscriptionFailure_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_11_id_RICrequestID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_11_reject }, - { "&Value", aioc__type, &asn_DEF_RICrequestID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_11_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_12_id_RANfunctionID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_12_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_12_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_13_id_RICactions_NotAdmitted }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_13_reject }, - { "&Value", aioc__type, &asn_DEF_RICaction_NotAdmitted_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_13_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_14_id_CriticalityDiagnostics }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_14_ignore }, - { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_14_optional } -}; -static const asn_ioc_set_t asn_IOS_RICsubscriptionFailure_IEs_1[] = { - { 4, 4, asn_IOS_RICsubscriptionFailure_IEs_1_rows } -}; -static const long asn_VAL_15_id_RICrequestID = 60030; -static const long asn_VAL_15_reject = 0; -static const long asn_VAL_15_mandatory = 2; -static const long asn_VAL_16_id_RANfunctionID = 60003; -static const long asn_VAL_16_reject = 0; -static const long asn_VAL_16_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_RICsubscriptionDeleteRequest_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_15_id_RICrequestID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_15_reject }, - { "&Value", aioc__type, &asn_DEF_RICrequestID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_15_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_16_id_RANfunctionID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_16_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_16_mandatory } -}; -static const asn_ioc_set_t asn_IOS_RICsubscriptionDeleteRequest_IEs_1[] = { - { 2, 4, asn_IOS_RICsubscriptionDeleteRequest_IEs_1_rows } -}; -static const long asn_VAL_17_id_RICrequestID = 60030; -static const long asn_VAL_17_reject = 0; -static const long asn_VAL_17_mandatory = 2; -static const long asn_VAL_18_id_RANfunctionID = 60003; -static const long asn_VAL_18_reject = 0; -static const long asn_VAL_18_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_RICsubscriptionDeleteResponse_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_17_id_RICrequestID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_17_reject }, - { "&Value", aioc__type, &asn_DEF_RICrequestID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_17_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_18_id_RANfunctionID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_18_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_18_mandatory } -}; -static const asn_ioc_set_t asn_IOS_RICsubscriptionDeleteResponse_IEs_1[] = { - { 2, 4, asn_IOS_RICsubscriptionDeleteResponse_IEs_1_rows } -}; -static const long asn_VAL_19_id_RICrequestID = 60030; -static const long asn_VAL_19_reject = 0; -static const long asn_VAL_19_mandatory = 2; -static const long asn_VAL_20_id_RANfunctionID = 60003; -static const long asn_VAL_20_reject = 0; -static const long asn_VAL_20_mandatory = 2; -static const long asn_VAL_21_id_RICcause = 60020; -static const long asn_VAL_21_ignore = 1; -static const long asn_VAL_21_mandatory = 2; -static const long asn_VAL_22_id_CriticalityDiagnostics = 17; -static const long asn_VAL_22_ignore = 1; -static const long asn_VAL_22_optional = 0; -static const asn_ioc_cell_t asn_IOS_RICsubscriptionDeleteFailure_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_19_id_RICrequestID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_19_reject }, - { "&Value", aioc__type, &asn_DEF_RICrequestID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_19_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_20_id_RANfunctionID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_20_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_20_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_21_id_RICcause }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_21_ignore }, - { "&Value", aioc__type, &asn_DEF_RICcause }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_21_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_22_id_CriticalityDiagnostics }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_22_ignore }, - { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_22_optional } -}; -static const asn_ioc_set_t asn_IOS_RICsubscriptionDeleteFailure_IEs_1[] = { - { 4, 4, asn_IOS_RICsubscriptionDeleteFailure_IEs_1_rows } -}; -static const long asn_VAL_23_id_RICrequestID = 60030; -static const long asn_VAL_23_reject = 0; -static const long asn_VAL_23_mandatory = 2; -static const long asn_VAL_24_id_RANfunctionID = 60003; -static const long asn_VAL_24_reject = 0; -static const long asn_VAL_24_mandatory = 2; -static const long asn_VAL_25_id_RICactionID = 60017; -static const long asn_VAL_25_reject = 0; -static const long asn_VAL_25_mandatory = 2; -static const long asn_VAL_26_id_RICindicationSN = 60028; -static const long asn_VAL_26_reject = 0; -static const long asn_VAL_26_mandatory = 2; -static const long asn_VAL_27_id_RICindicationType = 60029; -static const long asn_VAL_27_reject = 0; -static const long asn_VAL_27_mandatory = 2; -static const long asn_VAL_28_id_RICindicationHeader = 60026; -static const long asn_VAL_28_reject = 0; -static const long asn_VAL_28_mandatory = 2; -static const long asn_VAL_29_id_RICindicationMessage = 60027; -static const long asn_VAL_29_reject = 0; -static const long asn_VAL_29_mandatory = 2; -static const long asn_VAL_30_id_RICcallProcessID = 60019; -static const long asn_VAL_30_reject = 0; -static const long asn_VAL_30_optional = 0; -static const asn_ioc_cell_t asn_IOS_RICindication_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_23_id_RICrequestID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_23_reject }, - { "&Value", aioc__type, &asn_DEF_RICrequestID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_23_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_24_id_RANfunctionID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_24_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_24_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_25_id_RICactionID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_25_reject }, - { "&Value", aioc__type, &asn_DEF_RICactionID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_25_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_26_id_RICindicationSN }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_26_reject }, - { "&Value", aioc__type, &asn_DEF_RICindicationSN }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_26_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_27_id_RICindicationType }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_27_reject }, - { "&Value", aioc__type, &asn_DEF_RICindicationType }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_27_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_28_id_RICindicationHeader }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_28_reject }, - { "&Value", aioc__type, &asn_DEF_RICindicationHeader }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_28_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_29_id_RICindicationMessage }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_29_reject }, - { "&Value", aioc__type, &asn_DEF_RICindicationMessage }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_29_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_30_id_RICcallProcessID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_30_reject }, - { "&Value", aioc__type, &asn_DEF_RICcallProcessID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_30_optional } -}; -static const asn_ioc_set_t asn_IOS_RICindication_IEs_1[] = { - { 8, 4, asn_IOS_RICindication_IEs_1_rows } -}; -static const long asn_VAL_31_id_RICrequestID = 60030; -static const long asn_VAL_31_reject = 0; -static const long asn_VAL_31_mandatory = 2; -static const long asn_VAL_32_id_RANfunctionID = 60003; -static const long asn_VAL_32_reject = 0; -static const long asn_VAL_32_mandatory = 2; -static const long asn_VAL_33_id_RICcallProcessID = 60019; -static const long asn_VAL_33_reject = 0; -static const long asn_VAL_33_optional = 0; -static const long asn_VAL_34_id_RICcontrolHeader = 60022; -static const long asn_VAL_34_reject = 0; -static const long asn_VAL_34_mandatory = 2; -static const long asn_VAL_35_id_RICcontrolMessage = 60023; -static const long asn_VAL_35_reject = 0; -static const long asn_VAL_35_mandatory = 2; -static const long asn_VAL_36_id_RICcontrolAckRequest = 60021; -static const long asn_VAL_36_reject = 0; -static const long asn_VAL_36_optional = 0; -static const asn_ioc_cell_t asn_IOS_RICcontrolRequest_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_31_id_RICrequestID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_31_reject }, - { "&Value", aioc__type, &asn_DEF_RICrequestID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_31_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_32_id_RANfunctionID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_32_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_32_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_33_id_RICcallProcessID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_33_reject }, - { "&Value", aioc__type, &asn_DEF_RICcallProcessID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_33_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_34_id_RICcontrolHeader }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_34_reject }, - { "&Value", aioc__type, &asn_DEF_RICcontrolHeader }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_34_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_35_id_RICcontrolMessage }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_35_reject }, - { "&Value", aioc__type, &asn_DEF_RICcontrolMessage }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_35_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_36_id_RICcontrolAckRequest }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_36_reject }, - { "&Value", aioc__type, &asn_DEF_RICcontrolAckRequest }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_36_optional } -}; -static const asn_ioc_set_t asn_IOS_RICcontrolRequest_IEs_1[] = { - { 6, 4, asn_IOS_RICcontrolRequest_IEs_1_rows } -}; -static const long asn_VAL_37_id_RICrequestID = 60030; -static const long asn_VAL_37_reject = 0; -static const long asn_VAL_37_mandatory = 2; -static const long asn_VAL_38_id_RANfunctionID = 60003; -static const long asn_VAL_38_reject = 0; -static const long asn_VAL_38_mandatory = 2; -static const long asn_VAL_39_id_RICcallProcessID = 60019; -static const long asn_VAL_39_reject = 0; -static const long asn_VAL_39_optional = 0; -static const long asn_VAL_40_id_RICcontrolStatus = 60024; -static const long asn_VAL_40_reject = 0; -static const long asn_VAL_40_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_RICcontrolAcknowledge_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_37_id_RICrequestID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_37_reject }, - { "&Value", aioc__type, &asn_DEF_RICrequestID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_37_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_38_id_RANfunctionID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_38_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_38_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_39_id_RICcallProcessID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_39_reject }, - { "&Value", aioc__type, &asn_DEF_RICcallProcessID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_39_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_40_id_RICcontrolStatus }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_40_reject }, - { "&Value", aioc__type, &asn_DEF_RICcontrolStatus }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_40_mandatory } -}; -static const asn_ioc_set_t asn_IOS_RICcontrolAcknowledge_IEs_1[] = { - { 4, 4, asn_IOS_RICcontrolAcknowledge_IEs_1_rows } -}; -static const long asn_VAL_41_id_RICrequestID = 60030; -static const long asn_VAL_41_reject = 0; -static const long asn_VAL_41_mandatory = 2; -static const long asn_VAL_42_id_RANfunctionID = 60003; -static const long asn_VAL_42_reject = 0; -static const long asn_VAL_42_mandatory = 2; -static const long asn_VAL_43_id_RICcallProcessID = 60019; -static const long asn_VAL_43_reject = 0; -static const long asn_VAL_43_optional = 0; -static const long asn_VAL_44_id_RICcause = 60020; -static const long asn_VAL_44_ignore = 1; -static const long asn_VAL_44_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_RICcontrolFailure_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_41_id_RICrequestID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_41_reject }, - { "&Value", aioc__type, &asn_DEF_RICrequestID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_41_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_42_id_RANfunctionID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_42_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_42_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_43_id_RICcallProcessID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_43_reject }, - { "&Value", aioc__type, &asn_DEF_RICcallProcessID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_43_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_44_id_RICcause }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_44_ignore }, - { "&Value", aioc__type, &asn_DEF_RICcause }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_44_mandatory } -}; -static const asn_ioc_set_t asn_IOS_RICcontrolFailure_IEs_1[] = { - { 4, 4, asn_IOS_RICcontrolFailure_IEs_1_rows } -}; -static const long asn_VAL_45_id_RANfunctionsAdded = 60007; -static const long asn_VAL_45_reject = 0; -static const long asn_VAL_45_optional = 0; -static const long asn_VAL_46_id_RANfunctionsModified = 60009; -static const long asn_VAL_46_reject = 0; -static const long asn_VAL_46_optional = 0; -static const long asn_VAL_47_id_RANfunctionsDeleted = 60008; -static const long asn_VAL_47_reject = 0; -static const long asn_VAL_47_optional = 0; -static const asn_ioc_cell_t asn_IOS_RICserviceUpdate_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_45_id_RANfunctionsAdded }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_45_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctions_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_45_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_46_id_RANfunctionsModified }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_46_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctions_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_46_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_47_id_RANfunctionsDeleted }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_47_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionsID_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_47_optional } -}; -static const asn_ioc_set_t asn_IOS_RICserviceUpdate_IEs_1[] = { - { 3, 4, asn_IOS_RICserviceUpdate_IEs_1_rows } -}; -static const long asn_VAL_50_id_RANfunctionsAccepted = 60006; -static const long asn_VAL_50_reject = 0; -static const long asn_VAL_50_optional = 0; -static const long asn_VAL_51_id_RANfunctionsRejected = 60010; -static const long asn_VAL_51_reject = 0; -static const long asn_VAL_51_optional = 0; -static const asn_ioc_cell_t asn_IOS_RICserviceUpdateAcknowledge_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_50_id_RANfunctionsAccepted }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_50_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionsID_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_50_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_51_id_RANfunctionsRejected }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_51_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionsIDcause_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_51_optional } -}; -static const asn_ioc_set_t asn_IOS_RICserviceUpdateAcknowledge_IEs_1[] = { - { 2, 4, asn_IOS_RICserviceUpdateAcknowledge_IEs_1_rows } -}; -static const long asn_VAL_53_id_RANfunctionsRejected = 60010; -static const long asn_VAL_53_ignore = 1; -static const long asn_VAL_53_optional = 0; -static const long asn_VAL_54_id_TimeToWait = 22; -static const long asn_VAL_54_ignore = 1; -static const long asn_VAL_54_optional = 0; -static const long asn_VAL_55_id_CriticalityDiagnostics = 17; -static const long asn_VAL_55_ignore = 1; -static const long asn_VAL_55_optional = 0; -static const asn_ioc_cell_t asn_IOS_RICserviceUpdateFailure_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_53_id_RANfunctionsRejected }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_53_ignore }, - { "&Value", aioc__type, &asn_DEF_RANfunctionsIDcause_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_53_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_54_id_TimeToWait }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_54_ignore }, - { "&Value", aioc__type, &asn_DEF_TimeToWait }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_54_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_55_id_CriticalityDiagnostics }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_55_ignore }, - { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_55_optional } -}; -static const asn_ioc_set_t asn_IOS_RICserviceUpdateFailure_IEs_1[] = { - { 3, 4, asn_IOS_RICserviceUpdateFailure_IEs_1_rows } -}; -static const long asn_VAL_56_id_RANfunctionsAccepted = 60006; -static const long asn_VAL_56_reject = 0; -static const long asn_VAL_56_optional = 0; -static const asn_ioc_cell_t asn_IOS_RICserviceQuery_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_56_id_RANfunctionsAccepted }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_56_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionsID_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_56_optional } -}; -static const asn_ioc_set_t asn_IOS_RICserviceQuery_IEs_1[] = { - { 1, 4, asn_IOS_RICserviceQuery_IEs_1_rows } -}; -static const long asn_VAL_57_id_Old_eNB_UE_X2AP_ID = 10; -static const long asn_VAL_57_reject = 0; -static const long asn_VAL_57_mandatory = 2; -static const long asn_VAL_58_id_Cause = 5; -static const long asn_VAL_58_ignore = 1; -static const long asn_VAL_58_mandatory = 2; -static const long asn_VAL_59_id_TargetCell_ID = 11; -static const long asn_VAL_59_reject = 0; -static const long asn_VAL_59_mandatory = 2; -static const long asn_VAL_60_id_GUMMEI_ID = 23; -static const long asn_VAL_60_reject = 0; -static const long asn_VAL_60_mandatory = 2; -static const long asn_VAL_61_id_UE_ContextInformation = 14; -static const long asn_VAL_61_reject = 0; -static const long asn_VAL_61_mandatory = 2; -static const long asn_VAL_62_id_UE_HistoryInformation = 15; -static const long asn_VAL_62_ignore = 1; -static const long asn_VAL_62_mandatory = 2; -static const long asn_VAL_63_id_TraceActivation = 13; -static const long asn_VAL_63_ignore = 1; -static const long asn_VAL_63_optional = 0; -static const long asn_VAL_64_id_SRVCCOperationPossible = 36; -static const long asn_VAL_64_ignore = 1; -static const long asn_VAL_64_optional = 0; -static const long asn_VAL_65_id_CSGMembershipStatus = 71; -static const long asn_VAL_65_reject = 0; -static const long asn_VAL_65_optional = 0; -static const long asn_VAL_66_id_MobilityInformation = 82; -static const long asn_VAL_66_ignore = 1; -static const long asn_VAL_66_optional = 0; -static const long asn_VAL_67_id_Masked_IMEISV = 98; -static const long asn_VAL_67_ignore = 1; -static const long asn_VAL_67_optional = 0; -static const long asn_VAL_68_id_UE_HistoryInformationFromTheUE = 105; -static const long asn_VAL_68_ignore = 1; -static const long asn_VAL_68_optional = 0; -static const long asn_VAL_69_id_ExpectedUEBehaviour = 104; -static const long asn_VAL_69_ignore = 1; -static const long asn_VAL_69_optional = 0; -static const long asn_VAL_70_id_ProSeAuthorized = 103; -static const long asn_VAL_70_ignore = 1; -static const long asn_VAL_70_optional = 0; -static const long asn_VAL_71_id_UE_ContextReferenceAtSeNB = 153; -static const long asn_VAL_71_ignore = 1; -static const long asn_VAL_71_optional = 0; -static const long asn_VAL_72_id_Old_eNB_UE_X2AP_ID_Extension = 156; -static const long asn_VAL_72_reject = 0; -static const long asn_VAL_72_optional = 0; -static const long asn_VAL_73_id_V2XServicesAuthorized = 176; -static const long asn_VAL_73_ignore = 1; -static const long asn_VAL_73_optional = 0; -static const long asn_VAL_74_id_UE_ContextReferenceAtWT = 182; -static const long asn_VAL_74_ignore = 1; -static const long asn_VAL_74_optional = 0; -static const long asn_VAL_75_id_NRUESecurityCapabilities = 248; -static const long asn_VAL_75_ignore = 1; -static const long asn_VAL_75_optional = 0; -static const long asn_VAL_76_id_UE_ContextReferenceAtSgNB = 254; -static const long asn_VAL_76_ignore = 1; -static const long asn_VAL_76_optional = 0; -static const long asn_VAL_77_id_AerialUEsubscriptionInformation = 277; -static const long asn_VAL_77_ignore = 1; -static const long asn_VAL_77_optional = 0; -static const long asn_VAL_78_id_Subscription_Based_UE_DifferentiationInfo = 309; -static const long asn_VAL_78_ignore = 1; -static const long asn_VAL_78_optional = 0; -static const asn_ioc_cell_t asn_IOS_HandoverRequest_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_57_id_Old_eNB_UE_X2AP_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_57_reject }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_57_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_58_id_Cause }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_58_ignore }, - { "&Value", aioc__type, &asn_DEF_Cause }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_58_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_59_id_TargetCell_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_59_reject }, - { "&Value", aioc__type, &asn_DEF_ECGI }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_59_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_60_id_GUMMEI_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_60_reject }, - { "&Value", aioc__type, &asn_DEF_GUMMEI }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_60_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_61_id_UE_ContextInformation }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_61_reject }, - { "&Value", aioc__type, &asn_DEF_UE_ContextInformation }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_61_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_62_id_UE_HistoryInformation }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_62_ignore }, - { "&Value", aioc__type, &asn_DEF_UE_HistoryInformation }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_62_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_63_id_TraceActivation }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_63_ignore }, - { "&Value", aioc__type, &asn_DEF_TraceActivation }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_63_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_64_id_SRVCCOperationPossible }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_64_ignore }, - { "&Value", aioc__type, &asn_DEF_SRVCCOperationPossible }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_64_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_65_id_CSGMembershipStatus }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_65_reject }, - { "&Value", aioc__type, &asn_DEF_CSGMembershipStatus }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_65_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_66_id_MobilityInformation }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_66_ignore }, - { "&Value", aioc__type, &asn_DEF_MobilityInformation }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_66_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_67_id_Masked_IMEISV }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_67_ignore }, - { "&Value", aioc__type, &asn_DEF_Masked_IMEISV }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_67_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_68_id_UE_HistoryInformationFromTheUE }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_68_ignore }, - { "&Value", aioc__type, &asn_DEF_UE_HistoryInformationFromTheUE }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_68_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_69_id_ExpectedUEBehaviour }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_69_ignore }, - { "&Value", aioc__type, &asn_DEF_ExpectedUEBehaviour }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_69_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_70_id_ProSeAuthorized }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_70_ignore }, - { "&Value", aioc__type, &asn_DEF_ProSeAuthorized }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_70_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_71_id_UE_ContextReferenceAtSeNB }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_71_ignore }, - { "&Value", aioc__type, &asn_DEF_UE_ContextReferenceAtSeNB }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_71_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_72_id_Old_eNB_UE_X2AP_ID_Extension }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_72_reject }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_72_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_73_id_V2XServicesAuthorized }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_73_ignore }, - { "&Value", aioc__type, &asn_DEF_V2XServicesAuthorized }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_73_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_74_id_UE_ContextReferenceAtWT }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_74_ignore }, - { "&Value", aioc__type, &asn_DEF_UE_ContextReferenceAtWT }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_74_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_75_id_NRUESecurityCapabilities }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_75_ignore }, - { "&Value", aioc__type, &asn_DEF_NRUESecurityCapabilities }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_75_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_76_id_UE_ContextReferenceAtSgNB }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_76_ignore }, - { "&Value", aioc__type, &asn_DEF_UE_ContextReferenceAtSgNB }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_76_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_77_id_AerialUEsubscriptionInformation }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_77_ignore }, - { "&Value", aioc__type, &asn_DEF_AerialUEsubscriptionInformation }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_77_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_78_id_Subscription_Based_UE_DifferentiationInfo }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_78_ignore }, - { "&Value", aioc__type, &asn_DEF_Subscription_Based_UE_DifferentiationInfo }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_78_optional } -}; -static const asn_ioc_set_t asn_IOS_HandoverRequest_IEs_1[] = { - { 22, 4, asn_IOS_HandoverRequest_IEs_1_rows } -}; -static const long asn_VAL_80_id_Old_eNB_UE_X2AP_ID = 10; -static const long asn_VAL_80_ignore = 1; -static const long asn_VAL_80_mandatory = 2; -static const long asn_VAL_81_id_New_eNB_UE_X2AP_ID = 9; -static const long asn_VAL_81_ignore = 1; -static const long asn_VAL_81_mandatory = 2; -static const long asn_VAL_82_id_E_RABs_Admitted_List = 1; -static const long asn_VAL_82_ignore = 1; -static const long asn_VAL_82_mandatory = 2; -static const long asn_VAL_83_id_E_RABs_NotAdmitted_List = 3; -static const long asn_VAL_83_ignore = 1; -static const long asn_VAL_83_optional = 0; -static const long asn_VAL_84_id_TargeteNBtoSource_eNBTransparentContainer = 12; -static const long asn_VAL_84_ignore = 1; -static const long asn_VAL_84_mandatory = 2; -static const long asn_VAL_85_id_CriticalityDiagnostics = 17; -static const long asn_VAL_85_ignore = 1; -static const long asn_VAL_85_optional = 0; -static const long asn_VAL_86_id_UE_ContextKeptIndicator = 154; -static const long asn_VAL_86_ignore = 1; -static const long asn_VAL_86_optional = 0; -static const long asn_VAL_87_id_SeNB_UE_X2AP_ID_Extension = 158; -static const long asn_VAL_87_ignore = 1; -static const long asn_VAL_87_optional = 0; -static const long asn_VAL_88_id_Old_eNB_UE_X2AP_ID_Extension = 156; -static const long asn_VAL_88_ignore = 1; -static const long asn_VAL_88_optional = 0; -static const long asn_VAL_89_id_New_eNB_UE_X2AP_ID_Extension = 155; -static const long asn_VAL_89_reject = 0; -static const long asn_VAL_89_optional = 0; -static const long asn_VAL_90_id_WT_UE_ContextKeptIndicator = 183; -static const long asn_VAL_90_ignore = 1; -static const long asn_VAL_90_optional = 0; -static const asn_ioc_cell_t asn_IOS_HandoverRequestAcknowledge_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_80_id_Old_eNB_UE_X2AP_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_80_ignore }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_80_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_81_id_New_eNB_UE_X2AP_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_81_ignore }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_81_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_82_id_E_RABs_Admitted_List }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_82_ignore }, - { "&Value", aioc__type, &asn_DEF_E_RABs_Admitted_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_82_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_83_id_E_RABs_NotAdmitted_List }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_83_ignore }, - { "&Value", aioc__type, &asn_DEF_E_RAB_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_83_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_84_id_TargeteNBtoSource_eNBTransparentContainer }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_84_ignore }, - { "&Value", aioc__type, &asn_DEF_TargeteNBtoSource_eNBTransparentContainer }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_84_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_85_id_CriticalityDiagnostics }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_85_ignore }, - { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_85_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_86_id_UE_ContextKeptIndicator }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_86_ignore }, - { "&Value", aioc__type, &asn_DEF_UE_ContextKeptIndicator }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_86_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_87_id_SeNB_UE_X2AP_ID_Extension }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_87_ignore }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_87_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_88_id_Old_eNB_UE_X2AP_ID_Extension }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_88_ignore }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_88_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_89_id_New_eNB_UE_X2AP_ID_Extension }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_89_reject }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_89_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_90_id_WT_UE_ContextKeptIndicator }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_90_ignore }, - { "&Value", aioc__type, &asn_DEF_UE_ContextKeptIndicator }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_90_optional } -}; -static const asn_ioc_set_t asn_IOS_HandoverRequestAcknowledge_IEs_1[] = { - { 11, 4, asn_IOS_HandoverRequestAcknowledge_IEs_1_rows } -}; -static const long asn_VAL_92_id_Old_eNB_UE_X2AP_ID = 10; -static const long asn_VAL_92_ignore = 1; -static const long asn_VAL_92_mandatory = 2; -static const long asn_VAL_93_id_Cause = 5; -static const long asn_VAL_93_ignore = 1; -static const long asn_VAL_93_mandatory = 2; -static const long asn_VAL_94_id_CriticalityDiagnostics = 17; -static const long asn_VAL_94_ignore = 1; -static const long asn_VAL_94_optional = 0; -static const long asn_VAL_95_id_Old_eNB_UE_X2AP_ID_Extension = 156; -static const long asn_VAL_95_ignore = 1; -static const long asn_VAL_95_optional = 0; -static const asn_ioc_cell_t asn_IOS_HandoverPreparationFailure_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_92_id_Old_eNB_UE_X2AP_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_92_ignore }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_92_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_93_id_Cause }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_93_ignore }, - { "&Value", aioc__type, &asn_DEF_Cause }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_93_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_94_id_CriticalityDiagnostics }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_94_ignore }, - { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_94_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_95_id_Old_eNB_UE_X2AP_ID_Extension }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_95_ignore }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_95_optional } -}; -static const asn_ioc_set_t asn_IOS_HandoverPreparationFailure_IEs_1[] = { - { 4, 4, asn_IOS_HandoverPreparationFailure_IEs_1_rows } -}; -static const long asn_VAL_96_id_HandoverReportType = 54; -static const long asn_VAL_96_ignore = 1; -static const long asn_VAL_96_mandatory = 2; -static const long asn_VAL_97_id_Cause = 5; -static const long asn_VAL_97_ignore = 1; -static const long asn_VAL_97_mandatory = 2; -static const long asn_VAL_98_id_SourceCellECGI = 52; -static const long asn_VAL_98_ignore = 1; -static const long asn_VAL_98_mandatory = 2; -static const long asn_VAL_99_id_FailureCellECGI = 53; -static const long asn_VAL_99_ignore = 1; -static const long asn_VAL_99_mandatory = 2; -static const long asn_VAL_100_id_Re_establishmentCellECGI = 49; -static const long asn_VAL_100_ignore = 1; -static const long asn_VAL_100_conditional = 1; -static const long asn_VAL_101_id_TargetCellInUTRAN = 81; -static const long asn_VAL_101_ignore = 1; -static const long asn_VAL_101_conditional = 1; -static const long asn_VAL_102_id_SourceCellCRNTI = 83; -static const long asn_VAL_102_ignore = 1; -static const long asn_VAL_102_optional = 0; -static const long asn_VAL_103_id_MobilityInformation = 82; -static const long asn_VAL_103_ignore = 1; -static const long asn_VAL_103_optional = 0; -static const long asn_VAL_104_id_UE_RLF_Report_Container = 60; -static const long asn_VAL_104_ignore = 1; -static const long asn_VAL_104_optional = 0; -static const long asn_VAL_105_id_UE_RLF_Report_Container_for_extended_bands = 107; -static const long asn_VAL_105_ignore = 1; -static const long asn_VAL_105_optional = 0; -static const asn_ioc_cell_t asn_IOS_HandoverReport_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_96_id_HandoverReportType }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_96_ignore }, - { "&Value", aioc__type, &asn_DEF_HandoverReportType }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_96_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_97_id_Cause }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_97_ignore }, - { "&Value", aioc__type, &asn_DEF_Cause }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_97_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_98_id_SourceCellECGI }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_98_ignore }, - { "&Value", aioc__type, &asn_DEF_ECGI }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_98_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_99_id_FailureCellECGI }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_99_ignore }, - { "&Value", aioc__type, &asn_DEF_ECGI }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_99_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_100_id_Re_establishmentCellECGI }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_100_ignore }, - { "&Value", aioc__type, &asn_DEF_ECGI }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_100_conditional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_101_id_TargetCellInUTRAN }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_101_ignore }, - { "&Value", aioc__type, &asn_DEF_TargetCellInUTRAN }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_101_conditional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_102_id_SourceCellCRNTI }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_102_ignore }, - { "&Value", aioc__type, &asn_DEF_CRNTI }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_102_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_103_id_MobilityInformation }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_103_ignore }, - { "&Value", aioc__type, &asn_DEF_MobilityInformation }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_103_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_104_id_UE_RLF_Report_Container }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_104_ignore }, - { "&Value", aioc__type, &asn_DEF_UE_RLF_Report_Container }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_104_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_105_id_UE_RLF_Report_Container_for_extended_bands }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_105_ignore }, - { "&Value", aioc__type, &asn_DEF_UE_RLF_Report_Container_for_extended_bands }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_105_optional } -}; -static const asn_ioc_set_t asn_IOS_HandoverReport_IEs_1[] = { - { 10, 4, asn_IOS_HandoverReport_IEs_1_rows } -}; -static const long asn_VAL_106_id_Old_eNB_UE_X2AP_ID = 10; -static const long asn_VAL_106_reject = 0; -static const long asn_VAL_106_mandatory = 2; -static const long asn_VAL_107_id_New_eNB_UE_X2AP_ID = 9; -static const long asn_VAL_107_reject = 0; -static const long asn_VAL_107_mandatory = 2; -static const long asn_VAL_108_id_E_RABs_SubjectToStatusTransfer_List = 18; -static const long asn_VAL_108_ignore = 1; -static const long asn_VAL_108_mandatory = 2; -static const long asn_VAL_109_id_Old_eNB_UE_X2AP_ID_Extension = 156; -static const long asn_VAL_109_reject = 0; -static const long asn_VAL_109_optional = 0; -static const long asn_VAL_110_id_New_eNB_UE_X2AP_ID_Extension = 155; -static const long asn_VAL_110_reject = 0; -static const long asn_VAL_110_optional = 0; -static const long asn_VAL_111_id_SgNB_UE_X2AP_ID = 207; -static const long asn_VAL_111_ignore = 1; -static const long asn_VAL_111_optional = 0; -static const asn_ioc_cell_t asn_IOS_SNStatusTransfer_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_106_id_Old_eNB_UE_X2AP_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_106_reject }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_106_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_107_id_New_eNB_UE_X2AP_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_107_reject }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_107_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_108_id_E_RABs_SubjectToStatusTransfer_List }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_108_ignore }, - { "&Value", aioc__type, &asn_DEF_E_RABs_SubjectToStatusTransfer_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_108_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_109_id_Old_eNB_UE_X2AP_ID_Extension }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_109_reject }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_109_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_110_id_New_eNB_UE_X2AP_ID_Extension }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_110_reject }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_110_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_111_id_SgNB_UE_X2AP_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_111_ignore }, - { "&Value", aioc__type, &asn_DEF_SgNB_UE_X2AP_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_111_optional } -}; -static const asn_ioc_set_t asn_IOS_SNStatusTransfer_IEs_1[] = { - { 6, 4, asn_IOS_SNStatusTransfer_IEs_1_rows } -}; -static const long asn_VAL_113_id_Old_eNB_UE_X2AP_ID = 10; -static const long asn_VAL_113_reject = 0; -static const long asn_VAL_113_mandatory = 2; -static const long asn_VAL_114_id_New_eNB_UE_X2AP_ID = 9; -static const long asn_VAL_114_reject = 0; -static const long asn_VAL_114_mandatory = 2; -static const long asn_VAL_115_id_Old_eNB_UE_X2AP_ID_Extension = 156; -static const long asn_VAL_115_reject = 0; -static const long asn_VAL_115_optional = 0; -static const long asn_VAL_116_id_New_eNB_UE_X2AP_ID_Extension = 155; -static const long asn_VAL_116_reject = 0; -static const long asn_VAL_116_optional = 0; -static const long asn_VAL_117_id_SIPTO_BearerDeactivationIndication = 164; -static const long asn_VAL_117_ignore = 1; -static const long asn_VAL_117_optional = 0; -static const long asn_VAL_118_id_SgNB_UE_X2AP_ID = 207; -static const long asn_VAL_118_ignore = 1; -static const long asn_VAL_118_optional = 0; -static const asn_ioc_cell_t asn_IOS_UEContextRelease_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_113_id_Old_eNB_UE_X2AP_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_113_reject }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_113_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_114_id_New_eNB_UE_X2AP_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_114_reject }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_114_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_115_id_Old_eNB_UE_X2AP_ID_Extension }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_115_reject }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_115_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_116_id_New_eNB_UE_X2AP_ID_Extension }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_116_reject }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_116_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_117_id_SIPTO_BearerDeactivationIndication }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_117_ignore }, - { "&Value", aioc__type, &asn_DEF_SIPTOBearerDeactivationIndication }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_117_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_118_id_SgNB_UE_X2AP_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_118_ignore }, - { "&Value", aioc__type, &asn_DEF_SgNB_UE_X2AP_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_118_optional } -}; -static const asn_ioc_set_t asn_IOS_UEContextRelease_IEs_1[] = { - { 6, 4, asn_IOS_UEContextRelease_IEs_1_rows } -}; -static const long asn_VAL_119_id_Old_eNB_UE_X2AP_ID = 10; -static const long asn_VAL_119_reject = 0; -static const long asn_VAL_119_mandatory = 2; -static const long asn_VAL_120_id_New_eNB_UE_X2AP_ID = 9; -static const long asn_VAL_120_ignore = 1; -static const long asn_VAL_120_optional = 0; -static const long asn_VAL_121_id_Cause = 5; -static const long asn_VAL_121_ignore = 1; -static const long asn_VAL_121_mandatory = 2; -static const long asn_VAL_122_id_Old_eNB_UE_X2AP_ID_Extension = 156; -static const long asn_VAL_122_reject = 0; -static const long asn_VAL_122_optional = 0; -static const long asn_VAL_123_id_New_eNB_UE_X2AP_ID_Extension = 155; -static const long asn_VAL_123_ignore = 1; -static const long asn_VAL_123_optional = 0; -static const asn_ioc_cell_t asn_IOS_HandoverCancel_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_119_id_Old_eNB_UE_X2AP_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_119_reject }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_119_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_120_id_New_eNB_UE_X2AP_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_120_ignore }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_120_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_121_id_Cause }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_121_ignore }, - { "&Value", aioc__type, &asn_DEF_Cause }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_121_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_122_id_Old_eNB_UE_X2AP_ID_Extension }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_122_reject }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_122_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_123_id_New_eNB_UE_X2AP_ID_Extension }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_123_ignore }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_123_optional } -}; -static const asn_ioc_set_t asn_IOS_HandoverCancel_IEs_1[] = { - { 5, 4, asn_IOS_HandoverCancel_IEs_1_rows } -}; -static const long asn_VAL_124_id_Old_eNB_UE_X2AP_ID = 10; -static const long asn_VAL_124_ignore = 1; -static const long asn_VAL_124_optional = 0; -static const long asn_VAL_125_id_New_eNB_UE_X2AP_ID = 9; -static const long asn_VAL_125_ignore = 1; -static const long asn_VAL_125_optional = 0; -static const long asn_VAL_126_id_Cause = 5; -static const long asn_VAL_126_ignore = 1; -static const long asn_VAL_126_optional = 0; -static const long asn_VAL_127_id_CriticalityDiagnostics = 17; -static const long asn_VAL_127_ignore = 1; -static const long asn_VAL_127_optional = 0; -static const long asn_VAL_128_id_Old_eNB_UE_X2AP_ID_Extension = 156; -static const long asn_VAL_128_ignore = 1; -static const long asn_VAL_128_optional = 0; -static const long asn_VAL_129_id_New_eNB_UE_X2AP_ID_Extension = 155; -static const long asn_VAL_129_ignore = 1; -static const long asn_VAL_129_optional = 0; -static const long asn_VAL_130_id_Old_SgNB_UE_X2AP_ID = 264; -static const long asn_VAL_130_ignore = 1; -static const long asn_VAL_130_optional = 0; -static const asn_ioc_cell_t asn_IOS_ErrorIndication_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_124_id_Old_eNB_UE_X2AP_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_124_ignore }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_124_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_125_id_New_eNB_UE_X2AP_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_125_ignore }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_125_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_126_id_Cause }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_126_ignore }, - { "&Value", aioc__type, &asn_DEF_Cause }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_126_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_127_id_CriticalityDiagnostics }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_127_ignore }, - { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_127_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_128_id_Old_eNB_UE_X2AP_ID_Extension }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_128_ignore }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_128_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_129_id_New_eNB_UE_X2AP_ID_Extension }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_129_ignore }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_129_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_130_id_Old_SgNB_UE_X2AP_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_130_ignore }, - { "&Value", aioc__type, &asn_DEF_SgNB_UE_X2AP_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_130_optional } -}; -static const asn_ioc_set_t asn_IOS_ErrorIndication_IEs_1[] = { - { 7, 4, asn_IOS_ErrorIndication_IEs_1_rows } -}; -static const long asn_VAL_131_id_Cause = 5; -static const long asn_VAL_131_ignore = 1; -static const long asn_VAL_131_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_ResetRequest_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_131_id_Cause }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_131_ignore }, - { "&Value", aioc__type, &asn_DEF_Cause }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_131_mandatory } -}; -static const asn_ioc_set_t asn_IOS_ResetRequest_IEs_1[] = { - { 1, 4, asn_IOS_ResetRequest_IEs_1_rows } -}; -static const long asn_VAL_132_id_CriticalityDiagnostics = 17; -static const long asn_VAL_132_ignore = 1; -static const long asn_VAL_132_optional = 0; -static const asn_ioc_cell_t asn_IOS_ResetResponse_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_132_id_CriticalityDiagnostics }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_132_ignore }, - { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_132_optional } -}; -static const asn_ioc_set_t asn_IOS_ResetResponse_IEs_1[] = { - { 1, 4, asn_IOS_ResetResponse_IEs_1_rows } -}; -static const long asn_VAL_133_id_GlobalENB_ID = 21; -static const long asn_VAL_133_reject = 0; -static const long asn_VAL_133_mandatory = 2; -static const long asn_VAL_134_id_ServedCells = 20; -static const long asn_VAL_134_reject = 0; -static const long asn_VAL_134_mandatory = 2; -static const long asn_VAL_135_id_GUGroupIDList = 24; -static const long asn_VAL_135_reject = 0; -static const long asn_VAL_135_optional = 0; -static const long asn_VAL_136_id_LHN_ID = 159; -static const long asn_VAL_136_ignore = 1; -static const long asn_VAL_136_optional = 0; -static const asn_ioc_cell_t asn_IOS_X2SetupRequest_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_133_id_GlobalENB_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_133_reject }, - { "&Value", aioc__type, &asn_DEF_GlobalENB_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_133_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_134_id_ServedCells }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_134_reject }, - { "&Value", aioc__type, &asn_DEF_ServedCells }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_134_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_135_id_GUGroupIDList }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_135_reject }, - { "&Value", aioc__type, &asn_DEF_GUGroupIDList }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_135_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_136_id_LHN_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_136_ignore }, - { "&Value", aioc__type, &asn_DEF_LHN_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_136_optional } -}; -static const asn_ioc_set_t asn_IOS_X2SetupRequest_IEs_1[] = { - { 4, 4, asn_IOS_X2SetupRequest_IEs_1_rows } -}; -static const long asn_VAL_137_id_GlobalENB_ID = 21; -static const long asn_VAL_137_reject = 0; -static const long asn_VAL_137_mandatory = 2; -static const long asn_VAL_138_id_ServedCells = 20; -static const long asn_VAL_138_reject = 0; -static const long asn_VAL_138_mandatory = 2; -static const long asn_VAL_139_id_GUGroupIDList = 24; -static const long asn_VAL_139_reject = 0; -static const long asn_VAL_139_optional = 0; -static const long asn_VAL_140_id_CriticalityDiagnostics = 17; -static const long asn_VAL_140_ignore = 1; -static const long asn_VAL_140_optional = 0; -static const long asn_VAL_141_id_LHN_ID = 159; -static const long asn_VAL_141_ignore = 1; -static const long asn_VAL_141_optional = 0; -static const asn_ioc_cell_t asn_IOS_X2SetupResponse_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_137_id_GlobalENB_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_137_reject }, - { "&Value", aioc__type, &asn_DEF_GlobalENB_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_137_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_138_id_ServedCells }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_138_reject }, - { "&Value", aioc__type, &asn_DEF_ServedCells }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_138_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_139_id_GUGroupIDList }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_139_reject }, - { "&Value", aioc__type, &asn_DEF_GUGroupIDList }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_139_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_140_id_CriticalityDiagnostics }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_140_ignore }, - { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_140_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_141_id_LHN_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_141_ignore }, - { "&Value", aioc__type, &asn_DEF_LHN_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_141_optional } -}; -static const asn_ioc_set_t asn_IOS_X2SetupResponse_IEs_1[] = { - { 5, 4, asn_IOS_X2SetupResponse_IEs_1_rows } -}; -static const long asn_VAL_142_id_Cause = 5; -static const long asn_VAL_142_ignore = 1; -static const long asn_VAL_142_mandatory = 2; -static const long asn_VAL_143_id_TimeToWait = 22; -static const long asn_VAL_143_ignore = 1; -static const long asn_VAL_143_optional = 0; -static const long asn_VAL_144_id_CriticalityDiagnostics = 17; -static const long asn_VAL_144_ignore = 1; -static const long asn_VAL_144_optional = 0; -static const asn_ioc_cell_t asn_IOS_X2SetupFailure_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_142_id_Cause }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_142_ignore }, - { "&Value", aioc__type, &asn_DEF_Cause }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_142_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_143_id_TimeToWait }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_143_ignore }, - { "&Value", aioc__type, &asn_DEF_TimeToWait }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_143_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_144_id_CriticalityDiagnostics }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_144_ignore }, - { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_144_optional } -}; -static const asn_ioc_set_t asn_IOS_X2SetupFailure_IEs_1[] = { - { 3, 4, asn_IOS_X2SetupFailure_IEs_1_rows } -}; -static const long asn_VAL_145_id_CellInformation = 6; -static const long asn_VAL_145_ignore = 1; -static const long asn_VAL_145_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_LoadInformation_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_145_id_CellInformation }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_145_ignore }, - { "&Value", aioc__type, &asn_DEF_CellInformation_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_145_mandatory } -}; -static const asn_ioc_set_t asn_IOS_LoadInformation_IEs_1[] = { - { 1, 4, asn_IOS_LoadInformation_IEs_1_rows } -}; -static const long asn_VAL_147_id_ServedCellsToAdd = 25; -static const long asn_VAL_147_reject = 0; -static const long asn_VAL_147_optional = 0; -static const long asn_VAL_148_id_ServedCellsToModify = 26; -static const long asn_VAL_148_reject = 0; -static const long asn_VAL_148_optional = 0; -static const long asn_VAL_149_id_ServedCellsToDelete = 27; -static const long asn_VAL_149_reject = 0; -static const long asn_VAL_149_optional = 0; -static const long asn_VAL_150_id_GUGroupIDToAddList = 34; -static const long asn_VAL_150_reject = 0; -static const long asn_VAL_150_optional = 0; -static const long asn_VAL_151_id_GUGroupIDToDeleteList = 35; -static const long asn_VAL_151_reject = 0; -static const long asn_VAL_151_optional = 0; -static const long asn_VAL_152_id_CoverageModificationList = 143; -static const long asn_VAL_152_reject = 0; -static const long asn_VAL_152_optional = 0; -static const asn_ioc_cell_t asn_IOS_ENBConfigurationUpdate_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_147_id_ServedCellsToAdd }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_147_reject }, - { "&Value", aioc__type, &asn_DEF_ServedCells }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_147_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_148_id_ServedCellsToModify }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_148_reject }, - { "&Value", aioc__type, &asn_DEF_ServedCellsToModify }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_148_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_149_id_ServedCellsToDelete }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_149_reject }, - { "&Value", aioc__type, &asn_DEF_Old_ECGIs }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_149_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_150_id_GUGroupIDToAddList }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_150_reject }, - { "&Value", aioc__type, &asn_DEF_GUGroupIDList }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_150_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_151_id_GUGroupIDToDeleteList }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_151_reject }, - { "&Value", aioc__type, &asn_DEF_GUGroupIDList }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_151_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_152_id_CoverageModificationList }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_152_reject }, - { "&Value", aioc__type, &asn_DEF_CoverageModificationList }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_152_optional } -}; -static const asn_ioc_set_t asn_IOS_ENBConfigurationUpdate_IEs_1[] = { - { 6, 4, asn_IOS_ENBConfigurationUpdate_IEs_1_rows } -}; -static const long asn_VAL_153_id_CriticalityDiagnostics = 17; -static const long asn_VAL_153_ignore = 1; -static const long asn_VAL_153_optional = 0; -static const asn_ioc_cell_t asn_IOS_ENBConfigurationUpdateAcknowledge_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_153_id_CriticalityDiagnostics }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_153_ignore }, - { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_153_optional } -}; -static const asn_ioc_set_t asn_IOS_ENBConfigurationUpdateAcknowledge_IEs_1[] = { - { 1, 4, asn_IOS_ENBConfigurationUpdateAcknowledge_IEs_1_rows } -}; -static const long asn_VAL_154_id_Cause = 5; -static const long asn_VAL_154_ignore = 1; -static const long asn_VAL_154_mandatory = 2; -static const long asn_VAL_155_id_TimeToWait = 22; -static const long asn_VAL_155_ignore = 1; -static const long asn_VAL_155_optional = 0; -static const long asn_VAL_156_id_CriticalityDiagnostics = 17; -static const long asn_VAL_156_ignore = 1; -static const long asn_VAL_156_optional = 0; -static const asn_ioc_cell_t asn_IOS_ENBConfigurationUpdateFailure_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_154_id_Cause }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_154_ignore }, - { "&Value", aioc__type, &asn_DEF_Cause }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_154_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_155_id_TimeToWait }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_155_ignore }, - { "&Value", aioc__type, &asn_DEF_TimeToWait }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_155_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_156_id_CriticalityDiagnostics }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_156_ignore }, - { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_156_optional } -}; -static const asn_ioc_set_t asn_IOS_ENBConfigurationUpdateFailure_IEs_1[] = { - { 3, 4, asn_IOS_ENBConfigurationUpdateFailure_IEs_1_rows } -}; -static const long asn_VAL_157_id_ENB1_Measurement_ID = 39; -static const long asn_VAL_157_reject = 0; -static const long asn_VAL_157_mandatory = 2; -static const long asn_VAL_158_id_ENB2_Measurement_ID = 40; -static const long asn_VAL_158_ignore = 1; -static const long asn_VAL_158_conditional = 1; -static const long asn_VAL_159_id_Registration_Request = 28; -static const long asn_VAL_159_reject = 0; -static const long asn_VAL_159_mandatory = 2; -static const long asn_VAL_160_id_ReportCharacteristics = 38; -static const long asn_VAL_160_reject = 0; -static const long asn_VAL_160_optional = 0; -static const long asn_VAL_161_id_CellToReport = 29; -static const long asn_VAL_161_ignore = 1; -static const long asn_VAL_161_mandatory = 2; -static const long asn_VAL_162_id_ReportingPeriodicity = 30; -static const long asn_VAL_162_ignore = 1; -static const long asn_VAL_162_optional = 0; -static const long asn_VAL_163_id_PartialSuccessIndicator = 64; -static const long asn_VAL_163_ignore = 1; -static const long asn_VAL_163_optional = 0; -static const long asn_VAL_164_id_ReportingPeriodicityRSRPMR = 109; -static const long asn_VAL_164_ignore = 1; -static const long asn_VAL_164_optional = 0; -static const long asn_VAL_165_id_ReportingPeriodicityCSIR = 145; -static const long asn_VAL_165_ignore = 1; -static const long asn_VAL_165_optional = 0; -static const asn_ioc_cell_t asn_IOS_ResourceStatusRequest_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_157_id_ENB1_Measurement_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_157_reject }, - { "&Value", aioc__type, &asn_DEF_Measurement_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_157_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_158_id_ENB2_Measurement_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_158_ignore }, - { "&Value", aioc__type, &asn_DEF_Measurement_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_158_conditional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_159_id_Registration_Request }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_159_reject }, - { "&Value", aioc__type, &asn_DEF_Registration_Request }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_159_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_160_id_ReportCharacteristics }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_160_reject }, - { "&Value", aioc__type, &asn_DEF_ReportCharacteristics }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_160_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_161_id_CellToReport }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_161_ignore }, - { "&Value", aioc__type, &asn_DEF_CellToReport_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_161_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_162_id_ReportingPeriodicity }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_162_ignore }, - { "&Value", aioc__type, &asn_DEF_ReportingPeriodicity }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_162_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_163_id_PartialSuccessIndicator }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_163_ignore }, - { "&Value", aioc__type, &asn_DEF_PartialSuccessIndicator }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_163_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_164_id_ReportingPeriodicityRSRPMR }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_164_ignore }, - { "&Value", aioc__type, &asn_DEF_ReportingPeriodicityRSRPMR }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_164_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_165_id_ReportingPeriodicityCSIR }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_165_ignore }, - { "&Value", aioc__type, &asn_DEF_ReportingPeriodicityCSIR }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_165_optional } -}; -static const asn_ioc_set_t asn_IOS_ResourceStatusRequest_IEs_1[] = { - { 9, 4, asn_IOS_ResourceStatusRequest_IEs_1_rows } -}; -static const long asn_VAL_167_id_ENB1_Measurement_ID = 39; -static const long asn_VAL_167_reject = 0; -static const long asn_VAL_167_mandatory = 2; -static const long asn_VAL_168_id_ENB2_Measurement_ID = 40; -static const long asn_VAL_168_reject = 0; -static const long asn_VAL_168_mandatory = 2; -static const long asn_VAL_169_id_CriticalityDiagnostics = 17; -static const long asn_VAL_169_ignore = 1; -static const long asn_VAL_169_optional = 0; -static const long asn_VAL_170_id_MeasurementInitiationResult_List = 65; -static const long asn_VAL_170_ignore = 1; -static const long asn_VAL_170_optional = 0; -static const asn_ioc_cell_t asn_IOS_ResourceStatusResponse_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_167_id_ENB1_Measurement_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_167_reject }, - { "&Value", aioc__type, &asn_DEF_Measurement_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_167_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_168_id_ENB2_Measurement_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_168_reject }, - { "&Value", aioc__type, &asn_DEF_Measurement_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_168_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_169_id_CriticalityDiagnostics }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_169_ignore }, - { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_169_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_170_id_MeasurementInitiationResult_List }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_170_ignore }, - { "&Value", aioc__type, &asn_DEF_MeasurementInitiationResult_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_170_optional } -}; -static const asn_ioc_set_t asn_IOS_ResourceStatusResponse_IEs_1[] = { - { 4, 4, asn_IOS_ResourceStatusResponse_IEs_1_rows } -}; -static const long asn_VAL_173_id_ENB1_Measurement_ID = 39; -static const long asn_VAL_173_reject = 0; -static const long asn_VAL_173_mandatory = 2; -static const long asn_VAL_174_id_ENB2_Measurement_ID = 40; -static const long asn_VAL_174_reject = 0; -static const long asn_VAL_174_mandatory = 2; -static const long asn_VAL_175_id_Cause = 5; -static const long asn_VAL_175_ignore = 1; -static const long asn_VAL_175_mandatory = 2; -static const long asn_VAL_176_id_CriticalityDiagnostics = 17; -static const long asn_VAL_176_ignore = 1; -static const long asn_VAL_176_optional = 0; -static const long asn_VAL_177_id_CompleteFailureCauseInformation_List = 68; -static const long asn_VAL_177_ignore = 1; -static const long asn_VAL_177_optional = 0; -static const asn_ioc_cell_t asn_IOS_ResourceStatusFailure_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_173_id_ENB1_Measurement_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_173_reject }, - { "&Value", aioc__type, &asn_DEF_Measurement_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_173_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_174_id_ENB2_Measurement_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_174_reject }, - { "&Value", aioc__type, &asn_DEF_Measurement_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_174_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_175_id_Cause }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_175_ignore }, - { "&Value", aioc__type, &asn_DEF_Cause }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_175_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_176_id_CriticalityDiagnostics }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_176_ignore }, - { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_176_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_177_id_CompleteFailureCauseInformation_List }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_177_ignore }, - { "&Value", aioc__type, &asn_DEF_CompleteFailureCauseInformation_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_177_optional } -}; -static const asn_ioc_set_t asn_IOS_ResourceStatusFailure_IEs_1[] = { - { 5, 4, asn_IOS_ResourceStatusFailure_IEs_1_rows } -}; -static const long asn_VAL_179_id_ENB1_Measurement_ID = 39; -static const long asn_VAL_179_reject = 0; -static const long asn_VAL_179_mandatory = 2; -static const long asn_VAL_180_id_ENB2_Measurement_ID = 40; -static const long asn_VAL_180_reject = 0; -static const long asn_VAL_180_mandatory = 2; -static const long asn_VAL_181_id_CellMeasurementResult = 32; -static const long asn_VAL_181_ignore = 1; -static const long asn_VAL_181_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_ResourceStatusUpdate_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_179_id_ENB1_Measurement_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_179_reject }, - { "&Value", aioc__type, &asn_DEF_Measurement_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_179_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_180_id_ENB2_Measurement_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_180_reject }, - { "&Value", aioc__type, &asn_DEF_Measurement_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_180_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_181_id_CellMeasurementResult }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_181_ignore }, - { "&Value", aioc__type, &asn_DEF_CellMeasurementResult_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_181_mandatory } -}; -static const asn_ioc_set_t asn_IOS_ResourceStatusUpdate_IEs_1[] = { - { 3, 4, asn_IOS_ResourceStatusUpdate_IEs_1_rows } -}; -static const long asn_VAL_183_id_ENB1_Cell_ID = 43; -static const long asn_VAL_183_reject = 0; -static const long asn_VAL_183_mandatory = 2; -static const long asn_VAL_184_id_ENB2_Cell_ID = 44; -static const long asn_VAL_184_reject = 0; -static const long asn_VAL_184_mandatory = 2; -static const long asn_VAL_185_id_ENB1_Mobility_Parameters = 46; -static const long asn_VAL_185_ignore = 1; -static const long asn_VAL_185_optional = 0; -static const long asn_VAL_186_id_ENB2_Proposed_Mobility_Parameters = 45; -static const long asn_VAL_186_reject = 0; -static const long asn_VAL_186_mandatory = 2; -static const long asn_VAL_187_id_Cause = 5; -static const long asn_VAL_187_reject = 0; -static const long asn_VAL_187_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_MobilityChangeRequest_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_183_id_ENB1_Cell_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_183_reject }, - { "&Value", aioc__type, &asn_DEF_ECGI }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_183_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_184_id_ENB2_Cell_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_184_reject }, - { "&Value", aioc__type, &asn_DEF_ECGI }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_184_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_185_id_ENB1_Mobility_Parameters }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_185_ignore }, - { "&Value", aioc__type, &asn_DEF_MobilityParametersInformation }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_185_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_186_id_ENB2_Proposed_Mobility_Parameters }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_186_reject }, - { "&Value", aioc__type, &asn_DEF_MobilityParametersInformation }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_186_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_187_id_Cause }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_187_reject }, - { "&Value", aioc__type, &asn_DEF_Cause }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_187_mandatory } -}; -static const asn_ioc_set_t asn_IOS_MobilityChangeRequest_IEs_1[] = { - { 5, 4, asn_IOS_MobilityChangeRequest_IEs_1_rows } -}; -static const long asn_VAL_188_id_ENB1_Cell_ID = 43; -static const long asn_VAL_188_reject = 0; -static const long asn_VAL_188_mandatory = 2; -static const long asn_VAL_189_id_ENB2_Cell_ID = 44; -static const long asn_VAL_189_reject = 0; -static const long asn_VAL_189_mandatory = 2; -static const long asn_VAL_190_id_CriticalityDiagnostics = 17; -static const long asn_VAL_190_ignore = 1; -static const long asn_VAL_190_optional = 0; -static const asn_ioc_cell_t asn_IOS_MobilityChangeAcknowledge_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_188_id_ENB1_Cell_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_188_reject }, - { "&Value", aioc__type, &asn_DEF_ECGI }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_188_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_189_id_ENB2_Cell_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_189_reject }, - { "&Value", aioc__type, &asn_DEF_ECGI }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_189_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_190_id_CriticalityDiagnostics }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_190_ignore }, - { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_190_optional } -}; -static const asn_ioc_set_t asn_IOS_MobilityChangeAcknowledge_IEs_1[] = { - { 3, 4, asn_IOS_MobilityChangeAcknowledge_IEs_1_rows } -}; -static const long asn_VAL_191_id_ENB1_Cell_ID = 43; -static const long asn_VAL_191_ignore = 1; -static const long asn_VAL_191_mandatory = 2; -static const long asn_VAL_192_id_ENB2_Cell_ID = 44; -static const long asn_VAL_192_ignore = 1; -static const long asn_VAL_192_mandatory = 2; -static const long asn_VAL_193_id_Cause = 5; -static const long asn_VAL_193_ignore = 1; -static const long asn_VAL_193_mandatory = 2; -static const long asn_VAL_194_id_ENB2_Mobility_Parameters_Modification_Range = 47; -static const long asn_VAL_194_ignore = 1; -static const long asn_VAL_194_optional = 0; -static const long asn_VAL_195_id_CriticalityDiagnostics = 17; -static const long asn_VAL_195_ignore = 1; -static const long asn_VAL_195_optional = 0; -static const asn_ioc_cell_t asn_IOS_MobilityChangeFailure_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_191_id_ENB1_Cell_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_191_ignore }, - { "&Value", aioc__type, &asn_DEF_ECGI }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_191_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_192_id_ENB2_Cell_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_192_ignore }, - { "&Value", aioc__type, &asn_DEF_ECGI }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_192_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_193_id_Cause }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_193_ignore }, - { "&Value", aioc__type, &asn_DEF_Cause }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_193_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_194_id_ENB2_Mobility_Parameters_Modification_Range }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_194_ignore }, - { "&Value", aioc__type, &asn_DEF_MobilityParametersModificationRange }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_194_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_195_id_CriticalityDiagnostics }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_195_ignore }, - { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_195_optional } -}; -static const asn_ioc_set_t asn_IOS_MobilityChangeFailure_IEs_1[] = { - { 5, 4, asn_IOS_MobilityChangeFailure_IEs_1_rows } -}; -static const long asn_VAL_196_id_FailureCellPCI = 48; -static const long asn_VAL_196_ignore = 1; -static const long asn_VAL_196_mandatory = 2; -static const long asn_VAL_197_id_Re_establishmentCellECGI = 49; -static const long asn_VAL_197_ignore = 1; -static const long asn_VAL_197_mandatory = 2; -static const long asn_VAL_198_id_FailureCellCRNTI = 50; -static const long asn_VAL_198_ignore = 1; -static const long asn_VAL_198_mandatory = 2; -static const long asn_VAL_199_id_ShortMAC_I = 51; -static const long asn_VAL_199_ignore = 1; -static const long asn_VAL_199_optional = 0; -static const long asn_VAL_200_id_UE_RLF_Report_Container = 60; -static const long asn_VAL_200_ignore = 1; -static const long asn_VAL_200_optional = 0; -static const long asn_VAL_201_id_RRCConnSetupIndicator = 75; -static const long asn_VAL_201_reject = 0; -static const long asn_VAL_201_optional = 0; -static const long asn_VAL_202_id_RRCConnReestabIndicator = 78; -static const long asn_VAL_202_ignore = 1; -static const long asn_VAL_202_optional = 0; -static const long asn_VAL_203_id_UE_RLF_Report_Container_for_extended_bands = 107; -static const long asn_VAL_203_ignore = 1; -static const long asn_VAL_203_optional = 0; -static const asn_ioc_cell_t asn_IOS_RLFIndication_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_196_id_FailureCellPCI }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_196_ignore }, - { "&Value", aioc__type, &asn_DEF_PCI }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_196_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_197_id_Re_establishmentCellECGI }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_197_ignore }, - { "&Value", aioc__type, &asn_DEF_ECGI }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_197_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_198_id_FailureCellCRNTI }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_198_ignore }, - { "&Value", aioc__type, &asn_DEF_CRNTI }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_198_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_199_id_ShortMAC_I }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_199_ignore }, - { "&Value", aioc__type, &asn_DEF_ShortMAC_I }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_199_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_200_id_UE_RLF_Report_Container }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_200_ignore }, - { "&Value", aioc__type, &asn_DEF_UE_RLF_Report_Container }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_200_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_201_id_RRCConnSetupIndicator }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_201_reject }, - { "&Value", aioc__type, &asn_DEF_RRCConnSetupIndicator }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_201_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_202_id_RRCConnReestabIndicator }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_202_ignore }, - { "&Value", aioc__type, &asn_DEF_RRCConnReestabIndicator }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_202_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_203_id_UE_RLF_Report_Container_for_extended_bands }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_203_ignore }, - { "&Value", aioc__type, &asn_DEF_UE_RLF_Report_Container_for_extended_bands }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_203_optional } -}; -static const asn_ioc_set_t asn_IOS_RLFIndication_IEs_1[] = { - { 8, 4, asn_IOS_RLFIndication_IEs_1_rows } -}; -static const long asn_VAL_204_id_ServedCellsToActivate = 57; -static const long asn_VAL_204_reject = 0; -static const long asn_VAL_204_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_CellActivationRequest_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_204_id_ServedCellsToActivate }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_204_reject }, - { "&Value", aioc__type, &asn_DEF_ServedCellsToActivate }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_204_mandatory } -}; -static const asn_ioc_set_t asn_IOS_CellActivationRequest_IEs_1[] = { - { 1, 4, asn_IOS_CellActivationRequest_IEs_1_rows } -}; -static const long asn_VAL_205_id_ActivatedCellList = 58; -static const long asn_VAL_205_ignore = 1; -static const long asn_VAL_205_mandatory = 2; -static const long asn_VAL_206_id_CriticalityDiagnostics = 17; -static const long asn_VAL_206_ignore = 1; -static const long asn_VAL_206_optional = 0; -static const asn_ioc_cell_t asn_IOS_CellActivationResponse_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_205_id_ActivatedCellList }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_205_ignore }, - { "&Value", aioc__type, &asn_DEF_ActivatedCellList }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_205_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_206_id_CriticalityDiagnostics }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_206_ignore }, - { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_206_optional } -}; -static const asn_ioc_set_t asn_IOS_CellActivationResponse_IEs_1[] = { - { 2, 4, asn_IOS_CellActivationResponse_IEs_1_rows } -}; -static const long asn_VAL_207_id_Cause = 5; -static const long asn_VAL_207_ignore = 1; -static const long asn_VAL_207_mandatory = 2; -static const long asn_VAL_208_id_CriticalityDiagnostics = 17; -static const long asn_VAL_208_ignore = 1; -static const long asn_VAL_208_optional = 0; -static const asn_ioc_cell_t asn_IOS_CellActivationFailure_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_207_id_Cause }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_207_ignore }, - { "&Value", aioc__type, &asn_DEF_Cause }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_207_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_208_id_CriticalityDiagnostics }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_208_ignore }, - { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_208_optional } -}; -static const asn_ioc_set_t asn_IOS_CellActivationFailure_IEs_1[] = { - { 2, 4, asn_IOS_CellActivationFailure_IEs_1_rows } -}; -static const long asn_VAL_209_id_GlobalENB_ID = 21; -static const long asn_VAL_209_reject = 0; -static const long asn_VAL_209_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_X2Release_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_209_id_GlobalENB_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_209_reject }, - { "&Value", aioc__type, &asn_DEF_GlobalENB_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_209_mandatory } -}; -static const asn_ioc_set_t asn_IOS_X2Release_IEs_1[] = { - { 1, 4, asn_IOS_X2Release_IEs_1_rows } -}; -static const long asn_VAL_210_id_RNL_Header = 101; -static const long asn_VAL_210_reject = 0; -static const long asn_VAL_210_mandatory = 2; -static const long asn_VAL_211_id_x2APMessage = 102; -static const long asn_VAL_211_reject = 0; -static const long asn_VAL_211_optional = 0; -static const asn_ioc_cell_t asn_IOS_X2APMessageTransfer_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_210_id_RNL_Header }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_210_reject }, - { "&Value", aioc__type, &asn_DEF_RNL_Header }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_210_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_211_id_x2APMessage }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_211_reject }, - { "&Value", aioc__type, &asn_DEF_X2AP_Message }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_211_optional } -}; -static const asn_ioc_set_t asn_IOS_X2APMessageTransfer_IEs_1[] = { - { 2, 4, asn_IOS_X2APMessageTransfer_IEs_1_rows } -}; -static const long asn_VAL_212_id_MeNB_UE_X2AP_ID = 111; -static const long asn_VAL_212_reject = 0; -static const long asn_VAL_212_mandatory = 2; -static const long asn_VAL_213_id_UE_SecurityCapabilities = 113; -static const long asn_VAL_213_reject = 0; -static const long asn_VAL_213_conditional = 1; -static const long asn_VAL_214_id_SeNBSecurityKey = 114; -static const long asn_VAL_214_reject = 0; -static const long asn_VAL_214_conditional = 1; -static const long asn_VAL_215_id_SeNBUEAggregateMaximumBitRate = 115; -static const long asn_VAL_215_reject = 0; -static const long asn_VAL_215_mandatory = 2; -static const long asn_VAL_216_id_ServingPLMN = 116; -static const long asn_VAL_216_ignore = 1; -static const long asn_VAL_216_optional = 0; -static const long asn_VAL_217_id_E_RABs_ToBeAdded_List = 117; -static const long asn_VAL_217_reject = 0; -static const long asn_VAL_217_mandatory = 2; -static const long asn_VAL_218_id_MeNBtoSeNBContainer = 119; -static const long asn_VAL_218_reject = 0; -static const long asn_VAL_218_mandatory = 2; -static const long asn_VAL_219_id_CSGMembershipStatus = 71; -static const long asn_VAL_219_reject = 0; -static const long asn_VAL_219_optional = 0; -static const long asn_VAL_220_id_SeNB_UE_X2AP_ID = 112; -static const long asn_VAL_220_reject = 0; -static const long asn_VAL_220_optional = 0; -static const long asn_VAL_221_id_SeNB_UE_X2AP_ID_Extension = 158; -static const long asn_VAL_221_reject = 0; -static const long asn_VAL_221_optional = 0; -static const long asn_VAL_222_id_ExpectedUEBehaviour = 104; -static const long asn_VAL_222_ignore = 1; -static const long asn_VAL_222_optional = 0; -static const long asn_VAL_223_id_MeNB_UE_X2AP_ID_Extension = 157; -static const long asn_VAL_223_reject = 0; -static const long asn_VAL_223_optional = 0; -static const asn_ioc_cell_t asn_IOS_SeNBAdditionRequest_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_212_id_MeNB_UE_X2AP_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_212_reject }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_212_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_213_id_UE_SecurityCapabilities }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_213_reject }, - { "&Value", aioc__type, &asn_DEF_UESecurityCapabilities }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_213_conditional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_214_id_SeNBSecurityKey }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_214_reject }, - { "&Value", aioc__type, &asn_DEF_SeNBSecurityKey }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_214_conditional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_215_id_SeNBUEAggregateMaximumBitRate }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_215_reject }, - { "&Value", aioc__type, &asn_DEF_UEAggregateMaximumBitRate }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_215_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_216_id_ServingPLMN }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_216_ignore }, - { "&Value", aioc__type, &asn_DEF_PLMN_Identity }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_216_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_217_id_E_RABs_ToBeAdded_List }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_217_reject }, - { "&Value", aioc__type, &asn_DEF_E_RABs_ToBeAdded_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_217_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_218_id_MeNBtoSeNBContainer }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_218_reject }, - { "&Value", aioc__type, &asn_DEF_MeNBtoSeNBContainer }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_218_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_219_id_CSGMembershipStatus }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_219_reject }, - { "&Value", aioc__type, &asn_DEF_CSGMembershipStatus }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_219_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_220_id_SeNB_UE_X2AP_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_220_reject }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_220_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_221_id_SeNB_UE_X2AP_ID_Extension }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_221_reject }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_221_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_222_id_ExpectedUEBehaviour }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_222_ignore }, - { "&Value", aioc__type, &asn_DEF_ExpectedUEBehaviour }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_222_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_223_id_MeNB_UE_X2AP_ID_Extension }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_223_reject }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_223_optional } -}; -static const asn_ioc_set_t asn_IOS_SeNBAdditionRequest_IEs_1[] = { - { 12, 4, asn_IOS_SeNBAdditionRequest_IEs_1_rows } -}; -static const long asn_VAL_225_id_MeNB_UE_X2AP_ID = 111; -static const long asn_VAL_225_reject = 0; -static const long asn_VAL_225_mandatory = 2; -static const long asn_VAL_226_id_SeNB_UE_X2AP_ID = 112; -static const long asn_VAL_226_reject = 0; -static const long asn_VAL_226_mandatory = 2; -static const long asn_VAL_227_id_E_RABs_Admitted_ToBeAdded_List = 120; -static const long asn_VAL_227_ignore = 1; -static const long asn_VAL_227_mandatory = 2; -static const long asn_VAL_228_id_E_RABs_NotAdmitted_List = 3; -static const long asn_VAL_228_ignore = 1; -static const long asn_VAL_228_optional = 0; -static const long asn_VAL_229_id_SeNBtoMeNBContainer = 122; -static const long asn_VAL_229_reject = 0; -static const long asn_VAL_229_mandatory = 2; -static const long asn_VAL_230_id_CriticalityDiagnostics = 17; -static const long asn_VAL_230_ignore = 1; -static const long asn_VAL_230_optional = 0; -static const long asn_VAL_231_id_GW_TransportLayerAddress = 165; -static const long asn_VAL_231_ignore = 1; -static const long asn_VAL_231_optional = 0; -static const long asn_VAL_232_id_SIPTO_L_GW_TransportLayerAddress = 168; -static const long asn_VAL_232_ignore = 1; -static const long asn_VAL_232_optional = 0; -static const long asn_VAL_233_id_MeNB_UE_X2AP_ID_Extension = 157; -static const long asn_VAL_233_reject = 0; -static const long asn_VAL_233_optional = 0; -static const long asn_VAL_234_id_SeNB_UE_X2AP_ID_Extension = 158; -static const long asn_VAL_234_reject = 0; -static const long asn_VAL_234_optional = 0; -static const long asn_VAL_235_id_Tunnel_Information_for_BBF = 163; -static const long asn_VAL_235_ignore = 1; -static const long asn_VAL_235_optional = 0; -static const asn_ioc_cell_t asn_IOS_SeNBAdditionRequestAcknowledge_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_225_id_MeNB_UE_X2AP_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_225_reject }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_225_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_226_id_SeNB_UE_X2AP_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_226_reject }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_226_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_227_id_E_RABs_Admitted_ToBeAdded_List }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_227_ignore }, - { "&Value", aioc__type, &asn_DEF_E_RABs_Admitted_ToBeAdded_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_227_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_228_id_E_RABs_NotAdmitted_List }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_228_ignore }, - { "&Value", aioc__type, &asn_DEF_E_RAB_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_228_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_229_id_SeNBtoMeNBContainer }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_229_reject }, - { "&Value", aioc__type, &asn_DEF_SeNBtoMeNBContainer }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_229_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_230_id_CriticalityDiagnostics }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_230_ignore }, - { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_230_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_231_id_GW_TransportLayerAddress }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_231_ignore }, - { "&Value", aioc__type, &asn_DEF_TransportLayerAddress }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_231_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_232_id_SIPTO_L_GW_TransportLayerAddress }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_232_ignore }, - { "&Value", aioc__type, &asn_DEF_TransportLayerAddress }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_232_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_233_id_MeNB_UE_X2AP_ID_Extension }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_233_reject }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_233_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_234_id_SeNB_UE_X2AP_ID_Extension }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_234_reject }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_234_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_235_id_Tunnel_Information_for_BBF }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_235_ignore }, - { "&Value", aioc__type, &asn_DEF_TunnelInformation }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_235_optional } -}; -static const asn_ioc_set_t asn_IOS_SeNBAdditionRequestAcknowledge_IEs_1[] = { - { 11, 4, asn_IOS_SeNBAdditionRequestAcknowledge_IEs_1_rows } -}; -static const long asn_VAL_237_id_MeNB_UE_X2AP_ID = 111; -static const long asn_VAL_237_reject = 0; -static const long asn_VAL_237_mandatory = 2; -static const long asn_VAL_238_id_SeNB_UE_X2AP_ID = 112; -static const long asn_VAL_238_reject = 0; -static const long asn_VAL_238_mandatory = 2; -static const long asn_VAL_239_id_Cause = 5; -static const long asn_VAL_239_ignore = 1; -static const long asn_VAL_239_mandatory = 2; -static const long asn_VAL_240_id_CriticalityDiagnostics = 17; -static const long asn_VAL_240_ignore = 1; -static const long asn_VAL_240_optional = 0; -static const long asn_VAL_241_id_MeNB_UE_X2AP_ID_Extension = 157; -static const long asn_VAL_241_reject = 0; -static const long asn_VAL_241_optional = 0; -static const long asn_VAL_242_id_SeNB_UE_X2AP_ID_Extension = 158; -static const long asn_VAL_242_reject = 0; -static const long asn_VAL_242_optional = 0; -static const asn_ioc_cell_t asn_IOS_SeNBAdditionRequestReject_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_237_id_MeNB_UE_X2AP_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_237_reject }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_237_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_238_id_SeNB_UE_X2AP_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_238_reject }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_238_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_239_id_Cause }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_239_ignore }, - { "&Value", aioc__type, &asn_DEF_Cause }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_239_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_240_id_CriticalityDiagnostics }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_240_ignore }, - { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_240_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_241_id_MeNB_UE_X2AP_ID_Extension }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_241_reject }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_241_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_242_id_SeNB_UE_X2AP_ID_Extension }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_242_reject }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_242_optional } -}; -static const asn_ioc_set_t asn_IOS_SeNBAdditionRequestReject_IEs_1[] = { - { 6, 4, asn_IOS_SeNBAdditionRequestReject_IEs_1_rows } -}; -static const long asn_VAL_243_id_MeNB_UE_X2AP_ID = 111; -static const long asn_VAL_243_reject = 0; -static const long asn_VAL_243_mandatory = 2; -static const long asn_VAL_244_id_SeNB_UE_X2AP_ID = 112; -static const long asn_VAL_244_reject = 0; -static const long asn_VAL_244_mandatory = 2; -static const long asn_VAL_245_id_ResponseInformationSeNBReconfComp = 123; -static const long asn_VAL_245_ignore = 1; -static const long asn_VAL_245_mandatory = 2; -static const long asn_VAL_246_id_MeNB_UE_X2AP_ID_Extension = 157; -static const long asn_VAL_246_reject = 0; -static const long asn_VAL_246_optional = 0; -static const long asn_VAL_247_id_SeNB_UE_X2AP_ID_Extension = 158; -static const long asn_VAL_247_reject = 0; -static const long asn_VAL_247_optional = 0; -static const asn_ioc_cell_t asn_IOS_SeNBReconfigurationComplete_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_243_id_MeNB_UE_X2AP_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_243_reject }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_243_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_244_id_SeNB_UE_X2AP_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_244_reject }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_244_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_245_id_ResponseInformationSeNBReconfComp }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_245_ignore }, - { "&Value", aioc__type, &asn_DEF_ResponseInformationSeNBReconfComp }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_245_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_246_id_MeNB_UE_X2AP_ID_Extension }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_246_reject }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_246_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_247_id_SeNB_UE_X2AP_ID_Extension }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_247_reject }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_247_optional } -}; -static const asn_ioc_set_t asn_IOS_SeNBReconfigurationComplete_IEs_1[] = { - { 5, 4, asn_IOS_SeNBReconfigurationComplete_IEs_1_rows } -}; -static const long asn_VAL_248_id_MeNB_UE_X2AP_ID = 111; -static const long asn_VAL_248_reject = 0; -static const long asn_VAL_248_mandatory = 2; -static const long asn_VAL_249_id_SeNB_UE_X2AP_ID = 112; -static const long asn_VAL_249_reject = 0; -static const long asn_VAL_249_mandatory = 2; -static const long asn_VAL_250_id_Cause = 5; -static const long asn_VAL_250_ignore = 1; -static const long asn_VAL_250_mandatory = 2; -static const long asn_VAL_251_id_SCGChangeIndication = 136; -static const long asn_VAL_251_ignore = 1; -static const long asn_VAL_251_optional = 0; -static const long asn_VAL_252_id_ServingPLMN = 116; -static const long asn_VAL_252_ignore = 1; -static const long asn_VAL_252_optional = 0; -static const long asn_VAL_253_id_UE_ContextInformationSeNBModReq = 124; -static const long asn_VAL_253_reject = 0; -static const long asn_VAL_253_optional = 0; -static const long asn_VAL_254_id_MeNBtoSeNBContainer = 119; -static const long asn_VAL_254_ignore = 1; -static const long asn_VAL_254_optional = 0; -static const long asn_VAL_255_id_CSGMembershipStatus = 71; -static const long asn_VAL_255_reject = 0; -static const long asn_VAL_255_optional = 0; -static const long asn_VAL_256_id_MeNB_UE_X2AP_ID_Extension = 157; -static const long asn_VAL_256_reject = 0; -static const long asn_VAL_256_optional = 0; -static const long asn_VAL_257_id_SeNB_UE_X2AP_ID_Extension = 158; -static const long asn_VAL_257_reject = 0; -static const long asn_VAL_257_optional = 0; -static const asn_ioc_cell_t asn_IOS_SeNBModificationRequest_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_248_id_MeNB_UE_X2AP_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_248_reject }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_248_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_249_id_SeNB_UE_X2AP_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_249_reject }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_249_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_250_id_Cause }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_250_ignore }, - { "&Value", aioc__type, &asn_DEF_Cause }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_250_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_251_id_SCGChangeIndication }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_251_ignore }, - { "&Value", aioc__type, &asn_DEF_SCGChangeIndication }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_251_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_252_id_ServingPLMN }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_252_ignore }, - { "&Value", aioc__type, &asn_DEF_PLMN_Identity }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_252_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_253_id_UE_ContextInformationSeNBModReq }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_253_reject }, - { "&Value", aioc__type, &asn_DEF_UE_ContextInformationSeNBModReq }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_253_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_254_id_MeNBtoSeNBContainer }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_254_ignore }, - { "&Value", aioc__type, &asn_DEF_MeNBtoSeNBContainer }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_254_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_255_id_CSGMembershipStatus }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_255_reject }, - { "&Value", aioc__type, &asn_DEF_CSGMembershipStatus }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_255_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_256_id_MeNB_UE_X2AP_ID_Extension }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_256_reject }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_256_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_257_id_SeNB_UE_X2AP_ID_Extension }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_257_reject }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_257_optional } -}; -static const asn_ioc_set_t asn_IOS_SeNBModificationRequest_IEs_1[] = { - { 10, 4, asn_IOS_SeNBModificationRequest_IEs_1_rows } -}; -static const long asn_VAL_261_id_MeNB_UE_X2AP_ID = 111; -static const long asn_VAL_261_ignore = 1; -static const long asn_VAL_261_mandatory = 2; -static const long asn_VAL_262_id_SeNB_UE_X2AP_ID = 112; -static const long asn_VAL_262_ignore = 1; -static const long asn_VAL_262_mandatory = 2; -static const long asn_VAL_263_id_E_RABs_Admitted_ToBeAdded_ModAckList = 128; -static const long asn_VAL_263_ignore = 1; -static const long asn_VAL_263_optional = 0; -static const long asn_VAL_264_id_E_RABs_Admitted_ToBeModified_ModAckList = 129; -static const long asn_VAL_264_ignore = 1; -static const long asn_VAL_264_optional = 0; -static const long asn_VAL_265_id_E_RABs_Admitted_ToBeReleased_ModAckList = 130; -static const long asn_VAL_265_ignore = 1; -static const long asn_VAL_265_optional = 0; -static const long asn_VAL_266_id_E_RABs_NotAdmitted_List = 3; -static const long asn_VAL_266_ignore = 1; -static const long asn_VAL_266_optional = 0; -static const long asn_VAL_267_id_SeNBtoMeNBContainer = 122; -static const long asn_VAL_267_ignore = 1; -static const long asn_VAL_267_optional = 0; -static const long asn_VAL_268_id_CriticalityDiagnostics = 17; -static const long asn_VAL_268_ignore = 1; -static const long asn_VAL_268_optional = 0; -static const long asn_VAL_269_id_MeNB_UE_X2AP_ID_Extension = 157; -static const long asn_VAL_269_ignore = 1; -static const long asn_VAL_269_optional = 0; -static const long asn_VAL_270_id_SeNB_UE_X2AP_ID_Extension = 158; -static const long asn_VAL_270_ignore = 1; -static const long asn_VAL_270_optional = 0; -static const asn_ioc_cell_t asn_IOS_SeNBModificationRequestAcknowledge_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_261_id_MeNB_UE_X2AP_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_261_ignore }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_261_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_262_id_SeNB_UE_X2AP_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_262_ignore }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_262_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_263_id_E_RABs_Admitted_ToBeAdded_ModAckList }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_263_ignore }, - { "&Value", aioc__type, &asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckList }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_263_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_264_id_E_RABs_Admitted_ToBeModified_ModAckList }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_264_ignore }, - { "&Value", aioc__type, &asn_DEF_E_RABs_Admitted_ToBeModified_ModAckList }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_264_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_265_id_E_RABs_Admitted_ToBeReleased_ModAckList }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_265_ignore }, - { "&Value", aioc__type, &asn_DEF_E_RABs_Admitted_ToBeReleased_ModAckList }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_265_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_266_id_E_RABs_NotAdmitted_List }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_266_ignore }, - { "&Value", aioc__type, &asn_DEF_E_RAB_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_266_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_267_id_SeNBtoMeNBContainer }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_267_ignore }, - { "&Value", aioc__type, &asn_DEF_SeNBtoMeNBContainer }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_267_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_268_id_CriticalityDiagnostics }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_268_ignore }, - { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_268_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_269_id_MeNB_UE_X2AP_ID_Extension }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_269_ignore }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_269_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_270_id_SeNB_UE_X2AP_ID_Extension }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_270_ignore }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_270_optional } -}; -static const asn_ioc_set_t asn_IOS_SeNBModificationRequestAcknowledge_IEs_1[] = { - { 10, 4, asn_IOS_SeNBModificationRequestAcknowledge_IEs_1_rows } -}; -static const long asn_VAL_274_id_MeNB_UE_X2AP_ID = 111; -static const long asn_VAL_274_ignore = 1; -static const long asn_VAL_274_mandatory = 2; -static const long asn_VAL_275_id_SeNB_UE_X2AP_ID = 112; -static const long asn_VAL_275_ignore = 1; -static const long asn_VAL_275_mandatory = 2; -static const long asn_VAL_276_id_Cause = 5; -static const long asn_VAL_276_ignore = 1; -static const long asn_VAL_276_mandatory = 2; -static const long asn_VAL_277_id_CriticalityDiagnostics = 17; -static const long asn_VAL_277_ignore = 1; -static const long asn_VAL_277_optional = 0; -static const long asn_VAL_278_id_MeNB_UE_X2AP_ID_Extension = 157; -static const long asn_VAL_278_ignore = 1; -static const long asn_VAL_278_optional = 0; -static const long asn_VAL_279_id_SeNB_UE_X2AP_ID_Extension = 158; -static const long asn_VAL_279_ignore = 1; -static const long asn_VAL_279_optional = 0; -static const asn_ioc_cell_t asn_IOS_SeNBModificationRequestReject_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_274_id_MeNB_UE_X2AP_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_274_ignore }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_274_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_275_id_SeNB_UE_X2AP_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_275_ignore }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_275_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_276_id_Cause }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_276_ignore }, - { "&Value", aioc__type, &asn_DEF_Cause }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_276_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_277_id_CriticalityDiagnostics }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_277_ignore }, - { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_277_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_278_id_MeNB_UE_X2AP_ID_Extension }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_278_ignore }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_278_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_279_id_SeNB_UE_X2AP_ID_Extension }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_279_ignore }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_279_optional } -}; -static const asn_ioc_set_t asn_IOS_SeNBModificationRequestReject_IEs_1[] = { - { 6, 4, asn_IOS_SeNBModificationRequestReject_IEs_1_rows } -}; -static const long asn_VAL_280_id_MeNB_UE_X2AP_ID = 111; -static const long asn_VAL_280_reject = 0; -static const long asn_VAL_280_mandatory = 2; -static const long asn_VAL_281_id_SeNB_UE_X2AP_ID = 112; -static const long asn_VAL_281_reject = 0; -static const long asn_VAL_281_mandatory = 2; -static const long asn_VAL_282_id_Cause = 5; -static const long asn_VAL_282_ignore = 1; -static const long asn_VAL_282_mandatory = 2; -static const long asn_VAL_283_id_SCGChangeIndication = 136; -static const long asn_VAL_283_ignore = 1; -static const long asn_VAL_283_optional = 0; -static const long asn_VAL_284_id_E_RABs_ToBeReleased_ModReqd = 134; -static const long asn_VAL_284_ignore = 1; -static const long asn_VAL_284_optional = 0; -static const long asn_VAL_285_id_SeNBtoMeNBContainer = 122; -static const long asn_VAL_285_ignore = 1; -static const long asn_VAL_285_optional = 0; -static const long asn_VAL_286_id_MeNB_UE_X2AP_ID_Extension = 157; -static const long asn_VAL_286_reject = 0; -static const long asn_VAL_286_optional = 0; -static const long asn_VAL_287_id_SeNB_UE_X2AP_ID_Extension = 158; -static const long asn_VAL_287_reject = 0; -static const long asn_VAL_287_optional = 0; -static const asn_ioc_cell_t asn_IOS_SeNBModificationRequired_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_280_id_MeNB_UE_X2AP_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_280_reject }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_280_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_281_id_SeNB_UE_X2AP_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_281_reject }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_281_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_282_id_Cause }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_282_ignore }, - { "&Value", aioc__type, &asn_DEF_Cause }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_282_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_283_id_SCGChangeIndication }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_283_ignore }, - { "&Value", aioc__type, &asn_DEF_SCGChangeIndication }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_283_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_284_id_E_RABs_ToBeReleased_ModReqd }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_284_ignore }, - { "&Value", aioc__type, &asn_DEF_E_RABs_ToBeReleased_ModReqd }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_284_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_285_id_SeNBtoMeNBContainer }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_285_ignore }, - { "&Value", aioc__type, &asn_DEF_SeNBtoMeNBContainer }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_285_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_286_id_MeNB_UE_X2AP_ID_Extension }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_286_reject }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_286_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_287_id_SeNB_UE_X2AP_ID_Extension }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_287_reject }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_287_optional } -}; -static const asn_ioc_set_t asn_IOS_SeNBModificationRequired_IEs_1[] = { - { 8, 4, asn_IOS_SeNBModificationRequired_IEs_1_rows } -}; -static const long asn_VAL_289_id_MeNB_UE_X2AP_ID = 111; -static const long asn_VAL_289_ignore = 1; -static const long asn_VAL_289_mandatory = 2; -static const long asn_VAL_290_id_SeNB_UE_X2AP_ID = 112; -static const long asn_VAL_290_ignore = 1; -static const long asn_VAL_290_mandatory = 2; -static const long asn_VAL_291_id_MeNBtoSeNBContainer = 119; -static const long asn_VAL_291_ignore = 1; -static const long asn_VAL_291_optional = 0; -static const long asn_VAL_292_id_CriticalityDiagnostics = 17; -static const long asn_VAL_292_ignore = 1; -static const long asn_VAL_292_optional = 0; -static const long asn_VAL_293_id_MeNB_UE_X2AP_ID_Extension = 157; -static const long asn_VAL_293_ignore = 1; -static const long asn_VAL_293_optional = 0; -static const long asn_VAL_294_id_SeNB_UE_X2AP_ID_Extension = 158; -static const long asn_VAL_294_ignore = 1; -static const long asn_VAL_294_optional = 0; -static const asn_ioc_cell_t asn_IOS_SeNBModificationConfirm_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_289_id_MeNB_UE_X2AP_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_289_ignore }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_289_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_290_id_SeNB_UE_X2AP_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_290_ignore }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_290_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_291_id_MeNBtoSeNBContainer }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_291_ignore }, - { "&Value", aioc__type, &asn_DEF_MeNBtoSeNBContainer }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_291_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_292_id_CriticalityDiagnostics }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_292_ignore }, - { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_292_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_293_id_MeNB_UE_X2AP_ID_Extension }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_293_ignore }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_293_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_294_id_SeNB_UE_X2AP_ID_Extension }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_294_ignore }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_294_optional } -}; -static const asn_ioc_set_t asn_IOS_SeNBModificationConfirm_IEs_1[] = { - { 6, 4, asn_IOS_SeNBModificationConfirm_IEs_1_rows } -}; -static const long asn_VAL_295_id_MeNB_UE_X2AP_ID = 111; -static const long asn_VAL_295_ignore = 1; -static const long asn_VAL_295_mandatory = 2; -static const long asn_VAL_296_id_SeNB_UE_X2AP_ID = 112; -static const long asn_VAL_296_ignore = 1; -static const long asn_VAL_296_mandatory = 2; -static const long asn_VAL_297_id_Cause = 5; -static const long asn_VAL_297_ignore = 1; -static const long asn_VAL_297_mandatory = 2; -static const long asn_VAL_298_id_MeNBtoSeNBContainer = 119; -static const long asn_VAL_298_ignore = 1; -static const long asn_VAL_298_optional = 0; -static const long asn_VAL_299_id_CriticalityDiagnostics = 17; -static const long asn_VAL_299_ignore = 1; -static const long asn_VAL_299_optional = 0; -static const long asn_VAL_300_id_MeNB_UE_X2AP_ID_Extension = 157; -static const long asn_VAL_300_ignore = 1; -static const long asn_VAL_300_optional = 0; -static const long asn_VAL_301_id_SeNB_UE_X2AP_ID_Extension = 158; -static const long asn_VAL_301_ignore = 1; -static const long asn_VAL_301_optional = 0; -static const asn_ioc_cell_t asn_IOS_SeNBModificationRefuse_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_295_id_MeNB_UE_X2AP_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_295_ignore }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_295_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_296_id_SeNB_UE_X2AP_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_296_ignore }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_296_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_297_id_Cause }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_297_ignore }, - { "&Value", aioc__type, &asn_DEF_Cause }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_297_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_298_id_MeNBtoSeNBContainer }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_298_ignore }, - { "&Value", aioc__type, &asn_DEF_MeNBtoSeNBContainer }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_298_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_299_id_CriticalityDiagnostics }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_299_ignore }, - { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_299_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_300_id_MeNB_UE_X2AP_ID_Extension }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_300_ignore }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_300_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_301_id_SeNB_UE_X2AP_ID_Extension }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_301_ignore }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_301_optional } -}; -static const asn_ioc_set_t asn_IOS_SeNBModificationRefuse_IEs_1[] = { - { 7, 4, asn_IOS_SeNBModificationRefuse_IEs_1_rows } -}; -static const long asn_VAL_302_id_MeNB_UE_X2AP_ID = 111; -static const long asn_VAL_302_reject = 0; -static const long asn_VAL_302_mandatory = 2; -static const long asn_VAL_303_id_SeNB_UE_X2AP_ID = 112; -static const long asn_VAL_303_reject = 0; -static const long asn_VAL_303_optional = 0; -static const long asn_VAL_304_id_Cause = 5; -static const long asn_VAL_304_ignore = 1; -static const long asn_VAL_304_optional = 0; -static const long asn_VAL_305_id_E_RABs_ToBeReleased_List_RelReq = 137; -static const long asn_VAL_305_ignore = 1; -static const long asn_VAL_305_optional = 0; -static const long asn_VAL_306_id_UE_ContextKeptIndicator = 154; -static const long asn_VAL_306_ignore = 1; -static const long asn_VAL_306_optional = 0; -static const long asn_VAL_307_id_MeNB_UE_X2AP_ID_Extension = 157; -static const long asn_VAL_307_reject = 0; -static const long asn_VAL_307_optional = 0; -static const long asn_VAL_308_id_SeNB_UE_X2AP_ID_Extension = 158; -static const long asn_VAL_308_reject = 0; -static const long asn_VAL_308_optional = 0; -static const long asn_VAL_309_id_MakeBeforeBreakIndicator = 181; -static const long asn_VAL_309_ignore = 1; -static const long asn_VAL_309_optional = 0; -static const asn_ioc_cell_t asn_IOS_SeNBReleaseRequest_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_302_id_MeNB_UE_X2AP_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_302_reject }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_302_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_303_id_SeNB_UE_X2AP_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_303_reject }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_303_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_304_id_Cause }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_304_ignore }, - { "&Value", aioc__type, &asn_DEF_Cause }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_304_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_305_id_E_RABs_ToBeReleased_List_RelReq }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_305_ignore }, - { "&Value", aioc__type, &asn_DEF_E_RABs_ToBeReleased_List_RelReq }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_305_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_306_id_UE_ContextKeptIndicator }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_306_ignore }, - { "&Value", aioc__type, &asn_DEF_UE_ContextKeptIndicator }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_306_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_307_id_MeNB_UE_X2AP_ID_Extension }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_307_reject }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_307_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_308_id_SeNB_UE_X2AP_ID_Extension }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_308_reject }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_308_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_309_id_MakeBeforeBreakIndicator }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_309_ignore }, - { "&Value", aioc__type, &asn_DEF_MakeBeforeBreakIndicator }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_309_optional } -}; -static const asn_ioc_set_t asn_IOS_SeNBReleaseRequest_IEs_1[] = { - { 8, 4, asn_IOS_SeNBReleaseRequest_IEs_1_rows } -}; -static const long asn_VAL_311_id_MeNB_UE_X2AP_ID = 111; -static const long asn_VAL_311_reject = 0; -static const long asn_VAL_311_mandatory = 2; -static const long asn_VAL_312_id_SeNB_UE_X2AP_ID = 112; -static const long asn_VAL_312_reject = 0; -static const long asn_VAL_312_mandatory = 2; -static const long asn_VAL_313_id_Cause = 5; -static const long asn_VAL_313_ignore = 1; -static const long asn_VAL_313_mandatory = 2; -static const long asn_VAL_314_id_MeNB_UE_X2AP_ID_Extension = 157; -static const long asn_VAL_314_reject = 0; -static const long asn_VAL_314_optional = 0; -static const long asn_VAL_315_id_SeNB_UE_X2AP_ID_Extension = 158; -static const long asn_VAL_315_reject = 0; -static const long asn_VAL_315_optional = 0; -static const asn_ioc_cell_t asn_IOS_SeNBReleaseRequired_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_311_id_MeNB_UE_X2AP_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_311_reject }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_311_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_312_id_SeNB_UE_X2AP_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_312_reject }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_312_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_313_id_Cause }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_313_ignore }, - { "&Value", aioc__type, &asn_DEF_Cause }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_313_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_314_id_MeNB_UE_X2AP_ID_Extension }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_314_reject }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_314_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_315_id_SeNB_UE_X2AP_ID_Extension }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_315_reject }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_315_optional } -}; -static const asn_ioc_set_t asn_IOS_SeNBReleaseRequired_IEs_1[] = { - { 5, 4, asn_IOS_SeNBReleaseRequired_IEs_1_rows } -}; -static const long asn_VAL_316_id_MeNB_UE_X2AP_ID = 111; -static const long asn_VAL_316_ignore = 1; -static const long asn_VAL_316_mandatory = 2; -static const long asn_VAL_317_id_SeNB_UE_X2AP_ID = 112; -static const long asn_VAL_317_ignore = 1; -static const long asn_VAL_317_mandatory = 2; -static const long asn_VAL_318_id_E_RABs_ToBeReleased_List_RelConf = 139; -static const long asn_VAL_318_ignore = 1; -static const long asn_VAL_318_optional = 0; -static const long asn_VAL_319_id_CriticalityDiagnostics = 17; -static const long asn_VAL_319_ignore = 1; -static const long asn_VAL_319_optional = 0; -static const long asn_VAL_320_id_MeNB_UE_X2AP_ID_Extension = 157; -static const long asn_VAL_320_ignore = 1; -static const long asn_VAL_320_optional = 0; -static const long asn_VAL_321_id_SeNB_UE_X2AP_ID_Extension = 158; -static const long asn_VAL_321_ignore = 1; -static const long asn_VAL_321_optional = 0; -static const asn_ioc_cell_t asn_IOS_SeNBReleaseConfirm_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_316_id_MeNB_UE_X2AP_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_316_ignore }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_316_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_317_id_SeNB_UE_X2AP_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_317_ignore }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_317_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_318_id_E_RABs_ToBeReleased_List_RelConf }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_318_ignore }, - { "&Value", aioc__type, &asn_DEF_E_RABs_ToBeReleased_List_RelConf }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_318_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_319_id_CriticalityDiagnostics }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_319_ignore }, - { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_319_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_320_id_MeNB_UE_X2AP_ID_Extension }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_320_ignore }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_320_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_321_id_SeNB_UE_X2AP_ID_Extension }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_321_ignore }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_321_optional } -}; -static const asn_ioc_set_t asn_IOS_SeNBReleaseConfirm_IEs_1[] = { - { 6, 4, asn_IOS_SeNBReleaseConfirm_IEs_1_rows } -}; -static const long asn_VAL_323_id_MeNB_UE_X2AP_ID = 111; -static const long asn_VAL_323_reject = 0; -static const long asn_VAL_323_mandatory = 2; -static const long asn_VAL_324_id_SeNB_UE_X2AP_ID = 112; -static const long asn_VAL_324_reject = 0; -static const long asn_VAL_324_mandatory = 2; -static const long asn_VAL_325_id_E_RABs_SubjectToCounterCheck_List = 141; -static const long asn_VAL_325_ignore = 1; -static const long asn_VAL_325_mandatory = 2; -static const long asn_VAL_326_id_MeNB_UE_X2AP_ID_Extension = 157; -static const long asn_VAL_326_ignore = 1; -static const long asn_VAL_326_optional = 0; -static const long asn_VAL_327_id_SeNB_UE_X2AP_ID_Extension = 158; -static const long asn_VAL_327_ignore = 1; -static const long asn_VAL_327_optional = 0; -static const asn_ioc_cell_t asn_IOS_SeNBCounterCheckRequest_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_323_id_MeNB_UE_X2AP_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_323_reject }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_323_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_324_id_SeNB_UE_X2AP_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_324_reject }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_324_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_325_id_E_RABs_SubjectToCounterCheck_List }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_325_ignore }, - { "&Value", aioc__type, &asn_DEF_E_RABs_SubjectToCounterCheck_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_325_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_326_id_MeNB_UE_X2AP_ID_Extension }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_326_ignore }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_326_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_327_id_SeNB_UE_X2AP_ID_Extension }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_327_ignore }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_327_optional } -}; -static const asn_ioc_set_t asn_IOS_SeNBCounterCheckRequest_IEs_1[] = { - { 5, 4, asn_IOS_SeNBCounterCheckRequest_IEs_1_rows } -}; -static const long asn_VAL_329_id_GlobalENB_ID = 21; -static const long asn_VAL_329_reject = 0; -static const long asn_VAL_329_mandatory = 2; -static const long asn_VAL_330_id_X2RemovalThreshold = 169; -static const long asn_VAL_330_reject = 0; -static const long asn_VAL_330_optional = 0; -static const asn_ioc_cell_t asn_IOS_X2RemovalRequest_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_329_id_GlobalENB_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_329_reject }, - { "&Value", aioc__type, &asn_DEF_GlobalENB_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_329_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_330_id_X2RemovalThreshold }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_330_reject }, - { "&Value", aioc__type, &asn_DEF_X2BenefitValue }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_330_optional } -}; -static const asn_ioc_set_t asn_IOS_X2RemovalRequest_IEs_1[] = { - { 2, 4, asn_IOS_X2RemovalRequest_IEs_1_rows } -}; -static const long asn_VAL_331_id_GlobalENB_ID = 21; -static const long asn_VAL_331_reject = 0; -static const long asn_VAL_331_mandatory = 2; -static const long asn_VAL_332_id_CriticalityDiagnostics = 17; -static const long asn_VAL_332_ignore = 1; -static const long asn_VAL_332_optional = 0; -static const asn_ioc_cell_t asn_IOS_X2RemovalResponse_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_331_id_GlobalENB_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_331_reject }, - { "&Value", aioc__type, &asn_DEF_GlobalENB_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_331_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_332_id_CriticalityDiagnostics }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_332_ignore }, - { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_332_optional } -}; -static const asn_ioc_set_t asn_IOS_X2RemovalResponse_IEs_1[] = { - { 2, 4, asn_IOS_X2RemovalResponse_IEs_1_rows } -}; -static const long asn_VAL_333_id_Cause = 5; -static const long asn_VAL_333_ignore = 1; -static const long asn_VAL_333_mandatory = 2; -static const long asn_VAL_334_id_CriticalityDiagnostics = 17; -static const long asn_VAL_334_ignore = 1; -static const long asn_VAL_334_optional = 0; -static const asn_ioc_cell_t asn_IOS_X2RemovalFailure_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_333_id_Cause }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_333_ignore }, - { "&Value", aioc__type, &asn_DEF_Cause }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_333_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_334_id_CriticalityDiagnostics }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_334_ignore }, - { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_334_optional } -}; -static const asn_ioc_set_t asn_IOS_X2RemovalFailure_IEs_1[] = { - { 2, 4, asn_IOS_X2RemovalFailure_IEs_1_rows } -}; -static const long asn_VAL_335_id_New_eNB_UE_X2AP_ID = 9; -static const long asn_VAL_335_reject = 0; -static const long asn_VAL_335_mandatory = 2; -static const long asn_VAL_336_id_SeNB_UE_X2AP_ID_Extension = 158; -static const long asn_VAL_336_reject = 0; -static const long asn_VAL_336_optional = 0; -static const long asn_VAL_337_id_resumeID = 172; -static const long asn_VAL_337_reject = 0; -static const long asn_VAL_337_mandatory = 2; -static const long asn_VAL_338_id_ShortMAC_I = 51; -static const long asn_VAL_338_reject = 0; -static const long asn_VAL_338_mandatory = 2; -static const long asn_VAL_339_id_NewEUTRANCellIdentifier = 175; -static const long asn_VAL_339_reject = 0; -static const long asn_VAL_339_mandatory = 2; -static const long asn_VAL_340_id_FailureCellCRNTI = 50; -static const long asn_VAL_340_reject = 0; -static const long asn_VAL_340_optional = 0; -static const long asn_VAL_341_id_FailureCellPCI = 48; -static const long asn_VAL_341_reject = 0; -static const long asn_VAL_341_optional = 0; -static const asn_ioc_cell_t asn_IOS_RetrieveUEContextRequest_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_335_id_New_eNB_UE_X2AP_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_335_reject }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_335_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_336_id_SeNB_UE_X2AP_ID_Extension }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_336_reject }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_336_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_337_id_resumeID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_337_reject }, - { "&Value", aioc__type, &asn_DEF_ResumeID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_337_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_338_id_ShortMAC_I }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_338_reject }, - { "&Value", aioc__type, &asn_DEF_ShortMAC_I }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_338_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_339_id_NewEUTRANCellIdentifier }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_339_reject }, - { "&Value", aioc__type, &asn_DEF_EUTRANCellIdentifier }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_339_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_340_id_FailureCellCRNTI }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_340_reject }, - { "&Value", aioc__type, &asn_DEF_CRNTI }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_340_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_341_id_FailureCellPCI }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_341_reject }, - { "&Value", aioc__type, &asn_DEF_PCI }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_341_optional } -}; -static const asn_ioc_set_t asn_IOS_RetrieveUEContextRequest_IEs_1[] = { - { 7, 4, asn_IOS_RetrieveUEContextRequest_IEs_1_rows } -}; -static const long asn_VAL_342_id_New_eNB_UE_X2AP_ID = 9; -static const long asn_VAL_342_ignore = 1; -static const long asn_VAL_342_mandatory = 2; -static const long asn_VAL_343_id_New_eNB_UE_X2AP_ID_Extension = 155; -static const long asn_VAL_343_ignore = 1; -static const long asn_VAL_343_optional = 0; -static const long asn_VAL_344_id_Old_eNB_UE_X2AP_ID = 10; -static const long asn_VAL_344_ignore = 1; -static const long asn_VAL_344_mandatory = 2; -static const long asn_VAL_345_id_Old_eNB_UE_X2AP_ID_Extension = 156; -static const long asn_VAL_345_ignore = 1; -static const long asn_VAL_345_optional = 0; -static const long asn_VAL_346_id_GUMMEI_ID = 23; -static const long asn_VAL_346_reject = 0; -static const long asn_VAL_346_mandatory = 2; -static const long asn_VAL_347_id_UE_ContextInformationRetrieve = 173; -static const long asn_VAL_347_reject = 0; -static const long asn_VAL_347_mandatory = 2; -static const long asn_VAL_348_id_TraceActivation = 13; -static const long asn_VAL_348_ignore = 1; -static const long asn_VAL_348_optional = 0; -static const long asn_VAL_349_id_SRVCCOperationPossible = 36; -static const long asn_VAL_349_ignore = 1; -static const long asn_VAL_349_optional = 0; -static const long asn_VAL_350_id_Masked_IMEISV = 98; -static const long asn_VAL_350_ignore = 1; -static const long asn_VAL_350_optional = 0; -static const long asn_VAL_351_id_ExpectedUEBehaviour = 104; -static const long asn_VAL_351_ignore = 1; -static const long asn_VAL_351_optional = 0; -static const long asn_VAL_352_id_ProSeAuthorized = 103; -static const long asn_VAL_352_ignore = 1; -static const long asn_VAL_352_optional = 0; -static const long asn_VAL_353_id_CriticalityDiagnostics = 17; -static const long asn_VAL_353_ignore = 1; -static const long asn_VAL_353_optional = 0; -static const long asn_VAL_354_id_V2XServicesAuthorized = 176; -static const long asn_VAL_354_ignore = 1; -static const long asn_VAL_354_optional = 0; -static const long asn_VAL_355_id_AerialUEsubscriptionInformation = 277; -static const long asn_VAL_355_ignore = 1; -static const long asn_VAL_355_optional = 0; -static const long asn_VAL_356_id_Subscription_Based_UE_DifferentiationInfo = 309; -static const long asn_VAL_356_ignore = 1; -static const long asn_VAL_356_optional = 0; -static const asn_ioc_cell_t asn_IOS_RetrieveUEContextResponse_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_342_id_New_eNB_UE_X2AP_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_342_ignore }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_342_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_343_id_New_eNB_UE_X2AP_ID_Extension }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_343_ignore }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_343_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_344_id_Old_eNB_UE_X2AP_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_344_ignore }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_344_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_345_id_Old_eNB_UE_X2AP_ID_Extension }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_345_ignore }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_345_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_346_id_GUMMEI_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_346_reject }, - { "&Value", aioc__type, &asn_DEF_GUMMEI }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_346_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_347_id_UE_ContextInformationRetrieve }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_347_reject }, - { "&Value", aioc__type, &asn_DEF_UE_ContextInformationRetrieve }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_347_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_348_id_TraceActivation }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_348_ignore }, - { "&Value", aioc__type, &asn_DEF_TraceActivation }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_348_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_349_id_SRVCCOperationPossible }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_349_ignore }, - { "&Value", aioc__type, &asn_DEF_SRVCCOperationPossible }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_349_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_350_id_Masked_IMEISV }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_350_ignore }, - { "&Value", aioc__type, &asn_DEF_Masked_IMEISV }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_350_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_351_id_ExpectedUEBehaviour }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_351_ignore }, - { "&Value", aioc__type, &asn_DEF_ExpectedUEBehaviour }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_351_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_352_id_ProSeAuthorized }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_352_ignore }, - { "&Value", aioc__type, &asn_DEF_ProSeAuthorized }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_352_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_353_id_CriticalityDiagnostics }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_353_ignore }, - { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_353_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_354_id_V2XServicesAuthorized }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_354_ignore }, - { "&Value", aioc__type, &asn_DEF_V2XServicesAuthorized }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_354_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_355_id_AerialUEsubscriptionInformation }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_355_ignore }, - { "&Value", aioc__type, &asn_DEF_AerialUEsubscriptionInformation }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_355_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_356_id_Subscription_Based_UE_DifferentiationInfo }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_356_ignore }, - { "&Value", aioc__type, &asn_DEF_Subscription_Based_UE_DifferentiationInfo }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_356_optional } -}; -static const asn_ioc_set_t asn_IOS_RetrieveUEContextResponse_IEs_1[] = { - { 15, 4, asn_IOS_RetrieveUEContextResponse_IEs_1_rows } -}; -static const long asn_VAL_358_id_New_eNB_UE_X2AP_ID = 9; -static const long asn_VAL_358_ignore = 1; -static const long asn_VAL_358_mandatory = 2; -static const long asn_VAL_359_id_New_eNB_UE_X2AP_ID_Extension = 155; -static const long asn_VAL_359_ignore = 1; -static const long asn_VAL_359_optional = 0; -static const long asn_VAL_360_id_Cause = 5; -static const long asn_VAL_360_ignore = 1; -static const long asn_VAL_360_mandatory = 2; -static const long asn_VAL_361_id_CriticalityDiagnostics = 17; -static const long asn_VAL_361_ignore = 1; -static const long asn_VAL_361_optional = 0; -static const asn_ioc_cell_t asn_IOS_RetrieveUEContextFailure_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_358_id_New_eNB_UE_X2AP_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_358_ignore }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_358_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_359_id_New_eNB_UE_X2AP_ID_Extension }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_359_ignore }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_359_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_360_id_Cause }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_360_ignore }, - { "&Value", aioc__type, &asn_DEF_Cause }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_360_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_361_id_CriticalityDiagnostics }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_361_ignore }, - { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_361_optional } -}; -static const asn_ioc_set_t asn_IOS_RetrieveUEContextFailure_IEs_1[] = { - { 4, 4, asn_IOS_RetrieveUEContextFailure_IEs_1_rows } -}; -static const long asn_VAL_362_id_MeNB_UE_X2AP_ID = 111; -static const long asn_VAL_362_reject = 0; -static const long asn_VAL_362_mandatory = 2; -static const long asn_VAL_363_id_NRUESecurityCapabilities = 248; -static const long asn_VAL_363_reject = 0; -static const long asn_VAL_363_mandatory = 2; -static const long asn_VAL_364_id_SgNBSecurityKey = 203; -static const long asn_VAL_364_reject = 0; -static const long asn_VAL_364_mandatory = 2; -static const long asn_VAL_365_id_SgNBUEAggregateMaximumBitRate = 204; -static const long asn_VAL_365_reject = 0; -static const long asn_VAL_365_mandatory = 2; -static const long asn_VAL_366_id_SelectedPLMN = 269; -static const long asn_VAL_366_ignore = 1; -static const long asn_VAL_366_optional = 0; -static const long asn_VAL_367_id_HandoverRestrictionList = 240; -static const long asn_VAL_367_ignore = 1; -static const long asn_VAL_367_optional = 0; -static const long asn_VAL_368_id_E_RABs_ToBeAdded_SgNBAddReqList = 205; -static const long asn_VAL_368_reject = 0; -static const long asn_VAL_368_mandatory = 2; -static const long asn_VAL_369_id_MeNBtoSgNBContainer = 206; -static const long asn_VAL_369_reject = 0; -static const long asn_VAL_369_mandatory = 2; -static const long asn_VAL_370_id_SgNB_UE_X2AP_ID = 207; -static const long asn_VAL_370_reject = 0; -static const long asn_VAL_370_optional = 0; -static const long asn_VAL_371_id_ExpectedUEBehaviour = 104; -static const long asn_VAL_371_ignore = 1; -static const long asn_VAL_371_optional = 0; -static const long asn_VAL_372_id_MeNB_UE_X2AP_ID_Extension = 157; -static const long asn_VAL_372_reject = 0; -static const long asn_VAL_372_optional = 0; -static const long asn_VAL_373_id_RequestedSplitSRBs = 208; -static const long asn_VAL_373_reject = 0; -static const long asn_VAL_373_optional = 0; -static const long asn_VAL_374_id_MeNBResourceCoordinationInformation = 257; -static const long asn_VAL_374_ignore = 1; -static const long asn_VAL_374_optional = 0; -static const long asn_VAL_375_id_SGNB_Addition_Trigger_Ind = 278; -static const long asn_VAL_375_reject = 0; -static const long asn_VAL_375_optional = 0; -static const long asn_VAL_376_id_SubscriberProfileIDforRFP = 275; -static const long asn_VAL_376_ignore = 1; -static const long asn_VAL_376_optional = 0; -static const long asn_VAL_377_id_MeNBCell_ID = 279; -static const long asn_VAL_377_reject = 0; -static const long asn_VAL_377_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_SgNBAdditionRequest_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_362_id_MeNB_UE_X2AP_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_362_reject }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_362_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_363_id_NRUESecurityCapabilities }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_363_reject }, - { "&Value", aioc__type, &asn_DEF_NRUESecurityCapabilities }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_363_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_364_id_SgNBSecurityKey }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_364_reject }, - { "&Value", aioc__type, &asn_DEF_SgNBSecurityKey }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_364_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_365_id_SgNBUEAggregateMaximumBitRate }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_365_reject }, - { "&Value", aioc__type, &asn_DEF_UEAggregateMaximumBitRate }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_365_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_366_id_SelectedPLMN }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_366_ignore }, - { "&Value", aioc__type, &asn_DEF_PLMN_Identity }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_366_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_367_id_HandoverRestrictionList }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_367_ignore }, - { "&Value", aioc__type, &asn_DEF_HandoverRestrictionList }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_367_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_368_id_E_RABs_ToBeAdded_SgNBAddReqList }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_368_reject }, - { "&Value", aioc__type, &asn_DEF_E_RABs_ToBeAdded_SgNBAddReqList }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_368_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_369_id_MeNBtoSgNBContainer }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_369_reject }, - { "&Value", aioc__type, &asn_DEF_MeNBtoSgNBContainer }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_369_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_370_id_SgNB_UE_X2AP_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_370_reject }, - { "&Value", aioc__type, &asn_DEF_SgNB_UE_X2AP_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_370_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_371_id_ExpectedUEBehaviour }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_371_ignore }, - { "&Value", aioc__type, &asn_DEF_ExpectedUEBehaviour }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_371_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_372_id_MeNB_UE_X2AP_ID_Extension }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_372_reject }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_372_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_373_id_RequestedSplitSRBs }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_373_reject }, - { "&Value", aioc__type, &asn_DEF_SplitSRBs }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_373_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_374_id_MeNBResourceCoordinationInformation }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_374_ignore }, - { "&Value", aioc__type, &asn_DEF_MeNBResourceCoordinationInformation }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_374_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_375_id_SGNB_Addition_Trigger_Ind }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_375_reject }, - { "&Value", aioc__type, &asn_DEF_SGNB_Addition_Trigger_Ind }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_375_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_376_id_SubscriberProfileIDforRFP }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_376_ignore }, - { "&Value", aioc__type, &asn_DEF_SubscriberProfileIDforRFP }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_376_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_377_id_MeNBCell_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_377_reject }, - { "&Value", aioc__type, &asn_DEF_ECGI }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_377_mandatory } -}; -static const asn_ioc_set_t asn_IOS_SgNBAdditionRequest_IEs_1[] = { - { 16, 4, asn_IOS_SgNBAdditionRequest_IEs_1_rows } -}; -static const long asn_VAL_379_id_MeNB_UE_X2AP_ID = 111; -static const long asn_VAL_379_reject = 0; -static const long asn_VAL_379_mandatory = 2; -static const long asn_VAL_380_id_SgNB_UE_X2AP_ID = 207; -static const long asn_VAL_380_reject = 0; -static const long asn_VAL_380_mandatory = 2; -static const long asn_VAL_381_id_E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList = 210; -static const long asn_VAL_381_ignore = 1; -static const long asn_VAL_381_mandatory = 2; -static const long asn_VAL_382_id_E_RABs_NotAdmitted_List = 3; -static const long asn_VAL_382_ignore = 1; -static const long asn_VAL_382_optional = 0; -static const long asn_VAL_383_id_SgNBtoMeNBContainer = 211; -static const long asn_VAL_383_reject = 0; -static const long asn_VAL_383_mandatory = 2; -static const long asn_VAL_384_id_CriticalityDiagnostics = 17; -static const long asn_VAL_384_ignore = 1; -static const long asn_VAL_384_optional = 0; -static const long asn_VAL_385_id_MeNB_UE_X2AP_ID_Extension = 157; -static const long asn_VAL_385_reject = 0; -static const long asn_VAL_385_optional = 0; -static const long asn_VAL_386_id_AdmittedSplitSRBs = 212; -static const long asn_VAL_386_reject = 0; -static const long asn_VAL_386_optional = 0; -static const long asn_VAL_387_id_SgNBResourceCoordinationInformation = 258; -static const long asn_VAL_387_ignore = 1; -static const long asn_VAL_387_optional = 0; -static const long asn_VAL_388_id_RRCConfigIndication = 272; -static const long asn_VAL_388_reject = 0; -static const long asn_VAL_388_optional = 0; -static const asn_ioc_cell_t asn_IOS_SgNBAdditionRequestAcknowledge_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_379_id_MeNB_UE_X2AP_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_379_reject }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_379_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_380_id_SgNB_UE_X2AP_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_380_reject }, - { "&Value", aioc__type, &asn_DEF_SgNB_UE_X2AP_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_380_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_381_id_E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_381_ignore }, - { "&Value", aioc__type, &asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_381_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_382_id_E_RABs_NotAdmitted_List }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_382_ignore }, - { "&Value", aioc__type, &asn_DEF_E_RAB_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_382_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_383_id_SgNBtoMeNBContainer }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_383_reject }, - { "&Value", aioc__type, &asn_DEF_SgNBtoMeNBContainer }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_383_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_384_id_CriticalityDiagnostics }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_384_ignore }, - { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_384_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_385_id_MeNB_UE_X2AP_ID_Extension }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_385_reject }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_385_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_386_id_AdmittedSplitSRBs }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_386_reject }, - { "&Value", aioc__type, &asn_DEF_SplitSRBs }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_386_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_387_id_SgNBResourceCoordinationInformation }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_387_ignore }, - { "&Value", aioc__type, &asn_DEF_SgNBResourceCoordinationInformation }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_387_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_388_id_RRCConfigIndication }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_388_reject }, - { "&Value", aioc__type, &asn_DEF_RRC_Config_Ind }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_388_optional } -}; -static const asn_ioc_set_t asn_IOS_SgNBAdditionRequestAcknowledge_IEs_1[] = { - { 10, 4, asn_IOS_SgNBAdditionRequestAcknowledge_IEs_1_rows } -}; -static const long asn_VAL_390_id_MeNB_UE_X2AP_ID = 111; -static const long asn_VAL_390_reject = 0; -static const long asn_VAL_390_mandatory = 2; -static const long asn_VAL_391_id_SgNB_UE_X2AP_ID = 207; -static const long asn_VAL_391_reject = 0; -static const long asn_VAL_391_optional = 0; -static const long asn_VAL_392_id_Cause = 5; -static const long asn_VAL_392_ignore = 1; -static const long asn_VAL_392_mandatory = 2; -static const long asn_VAL_393_id_CriticalityDiagnostics = 17; -static const long asn_VAL_393_ignore = 1; -static const long asn_VAL_393_optional = 0; -static const long asn_VAL_394_id_MeNB_UE_X2AP_ID_Extension = 157; -static const long asn_VAL_394_reject = 0; -static const long asn_VAL_394_optional = 0; -static const asn_ioc_cell_t asn_IOS_SgNBAdditionRequestReject_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_390_id_MeNB_UE_X2AP_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_390_reject }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_390_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_391_id_SgNB_UE_X2AP_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_391_reject }, - { "&Value", aioc__type, &asn_DEF_SgNB_UE_X2AP_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_391_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_392_id_Cause }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_392_ignore }, - { "&Value", aioc__type, &asn_DEF_Cause }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_392_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_393_id_CriticalityDiagnostics }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_393_ignore }, - { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_393_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_394_id_MeNB_UE_X2AP_ID_Extension }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_394_reject }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_394_optional } -}; -static const asn_ioc_set_t asn_IOS_SgNBAdditionRequestReject_IEs_1[] = { - { 5, 4, asn_IOS_SgNBAdditionRequestReject_IEs_1_rows } -}; -static const long asn_VAL_395_id_MeNB_UE_X2AP_ID = 111; -static const long asn_VAL_395_reject = 0; -static const long asn_VAL_395_mandatory = 2; -static const long asn_VAL_396_id_SgNB_UE_X2AP_ID = 207; -static const long asn_VAL_396_reject = 0; -static const long asn_VAL_396_mandatory = 2; -static const long asn_VAL_397_id_ResponseInformationSgNBReconfComp = 214; -static const long asn_VAL_397_ignore = 1; -static const long asn_VAL_397_mandatory = 2; -static const long asn_VAL_398_id_MeNB_UE_X2AP_ID_Extension = 157; -static const long asn_VAL_398_reject = 0; -static const long asn_VAL_398_optional = 0; -static const asn_ioc_cell_t asn_IOS_SgNBReconfigurationComplete_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_395_id_MeNB_UE_X2AP_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_395_reject }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_395_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_396_id_SgNB_UE_X2AP_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_396_reject }, - { "&Value", aioc__type, &asn_DEF_SgNB_UE_X2AP_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_396_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_397_id_ResponseInformationSgNBReconfComp }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_397_ignore }, - { "&Value", aioc__type, &asn_DEF_ResponseInformationSgNBReconfComp }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_397_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_398_id_MeNB_UE_X2AP_ID_Extension }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_398_reject }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_398_optional } -}; -static const asn_ioc_set_t asn_IOS_SgNBReconfigurationComplete_IEs_1[] = { - { 4, 4, asn_IOS_SgNBReconfigurationComplete_IEs_1_rows } -}; -static const long asn_VAL_399_id_MeNB_UE_X2AP_ID = 111; -static const long asn_VAL_399_reject = 0; -static const long asn_VAL_399_mandatory = 2; -static const long asn_VAL_400_id_SgNB_UE_X2AP_ID = 207; -static const long asn_VAL_400_reject = 0; -static const long asn_VAL_400_mandatory = 2; -static const long asn_VAL_401_id_Cause = 5; -static const long asn_VAL_401_ignore = 1; -static const long asn_VAL_401_mandatory = 2; -static const long asn_VAL_402_id_SelectedPLMN = 269; -static const long asn_VAL_402_ignore = 1; -static const long asn_VAL_402_optional = 0; -static const long asn_VAL_403_id_HandoverRestrictionList = 240; -static const long asn_VAL_403_ignore = 1; -static const long asn_VAL_403_optional = 0; -static const long asn_VAL_404_id_SCGConfigurationQuery = 241; -static const long asn_VAL_404_ignore = 1; -static const long asn_VAL_404_optional = 0; -static const long asn_VAL_405_id_UE_ContextInformation_SgNBModReq = 215; -static const long asn_VAL_405_reject = 0; -static const long asn_VAL_405_optional = 0; -static const long asn_VAL_406_id_MeNBtoSgNBContainer = 206; -static const long asn_VAL_406_reject = 0; -static const long asn_VAL_406_optional = 0; -static const long asn_VAL_407_id_MeNB_UE_X2AP_ID_Extension = 157; -static const long asn_VAL_407_reject = 0; -static const long asn_VAL_407_optional = 0; -static const long asn_VAL_408_id_MeNBResourceCoordinationInformation = 257; -static const long asn_VAL_408_ignore = 1; -static const long asn_VAL_408_optional = 0; -static const long asn_VAL_409_id_RequestedSplitSRBs = 208; -static const long asn_VAL_409_ignore = 1; -static const long asn_VAL_409_optional = 0; -static const long asn_VAL_410_id_RequestedSplitSRBsrelease = 280; -static const long asn_VAL_410_ignore = 1; -static const long asn_VAL_410_optional = 0; -static const asn_ioc_cell_t asn_IOS_SgNBModificationRequest_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_399_id_MeNB_UE_X2AP_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_399_reject }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_399_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_400_id_SgNB_UE_X2AP_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_400_reject }, - { "&Value", aioc__type, &asn_DEF_SgNB_UE_X2AP_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_400_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_401_id_Cause }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_401_ignore }, - { "&Value", aioc__type, &asn_DEF_Cause }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_401_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_402_id_SelectedPLMN }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_402_ignore }, - { "&Value", aioc__type, &asn_DEF_PLMN_Identity }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_402_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_403_id_HandoverRestrictionList }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_403_ignore }, - { "&Value", aioc__type, &asn_DEF_HandoverRestrictionList }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_403_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_404_id_SCGConfigurationQuery }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_404_ignore }, - { "&Value", aioc__type, &asn_DEF_SCGConfigurationQuery }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_404_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_405_id_UE_ContextInformation_SgNBModReq }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_405_reject }, - { "&Value", aioc__type, &asn_DEF_UE_ContextInformation_SgNBModReq }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_405_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_406_id_MeNBtoSgNBContainer }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_406_reject }, - { "&Value", aioc__type, &asn_DEF_MeNBtoSgNBContainer }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_406_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_407_id_MeNB_UE_X2AP_ID_Extension }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_407_reject }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_407_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_408_id_MeNBResourceCoordinationInformation }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_408_ignore }, - { "&Value", aioc__type, &asn_DEF_MeNBResourceCoordinationInformation }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_408_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_409_id_RequestedSplitSRBs }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_409_ignore }, - { "&Value", aioc__type, &asn_DEF_SplitSRBs }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_409_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_410_id_RequestedSplitSRBsrelease }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_410_ignore }, - { "&Value", aioc__type, &asn_DEF_SplitSRBs }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_410_optional } -}; -static const asn_ioc_set_t asn_IOS_SgNBModificationRequest_IEs_1[] = { - { 12, 4, asn_IOS_SgNBModificationRequest_IEs_1_rows } -}; -static const long asn_VAL_414_id_MeNB_UE_X2AP_ID = 111; -static const long asn_VAL_414_ignore = 1; -static const long asn_VAL_414_mandatory = 2; -static const long asn_VAL_415_id_SgNB_UE_X2AP_ID = 207; -static const long asn_VAL_415_ignore = 1; -static const long asn_VAL_415_mandatory = 2; -static const long asn_VAL_416_id_E_RABs_Admitted_ToBeAdded_SgNBModAckList = 219; -static const long asn_VAL_416_ignore = 1; -static const long asn_VAL_416_optional = 0; -static const long asn_VAL_417_id_E_RABs_Admitted_ToBeModified_SgNBModAckList = 220; -static const long asn_VAL_417_ignore = 1; -static const long asn_VAL_417_optional = 0; -static const long asn_VAL_418_id_E_RABs_Admitted_ToBeReleased_SgNBModAckList = 221; -static const long asn_VAL_418_ignore = 1; -static const long asn_VAL_418_optional = 0; -static const long asn_VAL_419_id_E_RABs_NotAdmitted_List = 3; -static const long asn_VAL_419_ignore = 1; -static const long asn_VAL_419_optional = 0; -static const long asn_VAL_420_id_SgNBtoMeNBContainer = 211; -static const long asn_VAL_420_ignore = 1; -static const long asn_VAL_420_optional = 0; -static const long asn_VAL_421_id_CriticalityDiagnostics = 17; -static const long asn_VAL_421_ignore = 1; -static const long asn_VAL_421_optional = 0; -static const long asn_VAL_422_id_MeNB_UE_X2AP_ID_Extension = 157; -static const long asn_VAL_422_ignore = 1; -static const long asn_VAL_422_optional = 0; -static const long asn_VAL_423_id_SgNBResourceCoordinationInformation = 258; -static const long asn_VAL_423_ignore = 1; -static const long asn_VAL_423_optional = 0; -static const long asn_VAL_424_id_AdmittedSplitSRBs = 212; -static const long asn_VAL_424_ignore = 1; -static const long asn_VAL_424_optional = 0; -static const long asn_VAL_425_id_AdmittedSplitSRBsrelease = 281; -static const long asn_VAL_425_ignore = 1; -static const long asn_VAL_425_optional = 0; -static const long asn_VAL_426_id_RRCConfigIndication = 272; -static const long asn_VAL_426_reject = 0; -static const long asn_VAL_426_optional = 0; -static const asn_ioc_cell_t asn_IOS_SgNBModificationRequestAcknowledge_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_414_id_MeNB_UE_X2AP_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_414_ignore }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_414_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_415_id_SgNB_UE_X2AP_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_415_ignore }, - { "&Value", aioc__type, &asn_DEF_SgNB_UE_X2AP_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_415_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_416_id_E_RABs_Admitted_ToBeAdded_SgNBModAckList }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_416_ignore }, - { "&Value", aioc__type, &asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAckList }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_416_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_417_id_E_RABs_Admitted_ToBeModified_SgNBModAckList }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_417_ignore }, - { "&Value", aioc__type, &asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAckList }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_417_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_418_id_E_RABs_Admitted_ToBeReleased_SgNBModAckList }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_418_ignore }, - { "&Value", aioc__type, &asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBModAckList }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_418_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_419_id_E_RABs_NotAdmitted_List }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_419_ignore }, - { "&Value", aioc__type, &asn_DEF_E_RAB_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_419_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_420_id_SgNBtoMeNBContainer }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_420_ignore }, - { "&Value", aioc__type, &asn_DEF_SgNBtoMeNBContainer }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_420_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_421_id_CriticalityDiagnostics }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_421_ignore }, - { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_421_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_422_id_MeNB_UE_X2AP_ID_Extension }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_422_ignore }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_422_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_423_id_SgNBResourceCoordinationInformation }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_423_ignore }, - { "&Value", aioc__type, &asn_DEF_SgNBResourceCoordinationInformation }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_423_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_424_id_AdmittedSplitSRBs }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_424_ignore }, - { "&Value", aioc__type, &asn_DEF_SplitSRBs }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_424_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_425_id_AdmittedSplitSRBsrelease }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_425_ignore }, - { "&Value", aioc__type, &asn_DEF_SplitSRBs }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_425_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_426_id_RRCConfigIndication }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_426_reject }, - { "&Value", aioc__type, &asn_DEF_RRC_Config_Ind }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_426_optional } -}; -static const asn_ioc_set_t asn_IOS_SgNBModificationRequestAcknowledge_IEs_1[] = { - { 13, 4, asn_IOS_SgNBModificationRequestAcknowledge_IEs_1_rows } -}; -static const long asn_VAL_430_id_MeNB_UE_X2AP_ID = 111; -static const long asn_VAL_430_ignore = 1; -static const long asn_VAL_430_mandatory = 2; -static const long asn_VAL_431_id_SgNB_UE_X2AP_ID = 207; -static const long asn_VAL_431_ignore = 1; -static const long asn_VAL_431_mandatory = 2; -static const long asn_VAL_432_id_Cause = 5; -static const long asn_VAL_432_ignore = 1; -static const long asn_VAL_432_mandatory = 2; -static const long asn_VAL_433_id_CriticalityDiagnostics = 17; -static const long asn_VAL_433_ignore = 1; -static const long asn_VAL_433_optional = 0; -static const long asn_VAL_434_id_MeNB_UE_X2AP_ID_Extension = 157; -static const long asn_VAL_434_ignore = 1; -static const long asn_VAL_434_optional = 0; -static const asn_ioc_cell_t asn_IOS_SgNBModificationRequestReject_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_430_id_MeNB_UE_X2AP_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_430_ignore }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_430_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_431_id_SgNB_UE_X2AP_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_431_ignore }, - { "&Value", aioc__type, &asn_DEF_SgNB_UE_X2AP_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_431_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_432_id_Cause }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_432_ignore }, - { "&Value", aioc__type, &asn_DEF_Cause }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_432_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_433_id_CriticalityDiagnostics }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_433_ignore }, - { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_433_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_434_id_MeNB_UE_X2AP_ID_Extension }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_434_ignore }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_434_optional } -}; -static const asn_ioc_set_t asn_IOS_SgNBModificationRequestReject_IEs_1[] = { - { 5, 4, asn_IOS_SgNBModificationRequestReject_IEs_1_rows } -}; -static const long asn_VAL_435_id_MeNB_UE_X2AP_ID = 111; -static const long asn_VAL_435_reject = 0; -static const long asn_VAL_435_mandatory = 2; -static const long asn_VAL_436_id_SgNB_UE_X2AP_ID = 207; -static const long asn_VAL_436_reject = 0; -static const long asn_VAL_436_mandatory = 2; -static const long asn_VAL_437_id_Cause = 5; -static const long asn_VAL_437_ignore = 1; -static const long asn_VAL_437_mandatory = 2; -static const long asn_VAL_438_id_PDCPChangeIndication = 249; -static const long asn_VAL_438_ignore = 1; -static const long asn_VAL_438_optional = 0; -static const long asn_VAL_439_id_E_RABs_ToBeReleased_SgNBModReqdList = 225; -static const long asn_VAL_439_ignore = 1; -static const long asn_VAL_439_optional = 0; -static const long asn_VAL_440_id_SgNBtoMeNBContainer = 211; -static const long asn_VAL_440_ignore = 1; -static const long asn_VAL_440_optional = 0; -static const long asn_VAL_441_id_MeNB_UE_X2AP_ID_Extension = 157; -static const long asn_VAL_441_reject = 0; -static const long asn_VAL_441_optional = 0; -static const long asn_VAL_442_id_E_RABs_ToBeModified_SgNBModReqdList = 226; -static const long asn_VAL_442_ignore = 1; -static const long asn_VAL_442_optional = 0; -static const long asn_VAL_443_id_SgNBResourceCoordinationInformation = 258; -static const long asn_VAL_443_ignore = 1; -static const long asn_VAL_443_optional = 0; -static const long asn_VAL_444_id_RRCConfigIndication = 272; -static const long asn_VAL_444_reject = 0; -static const long asn_VAL_444_optional = 0; -static const asn_ioc_cell_t asn_IOS_SgNBModificationRequired_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_435_id_MeNB_UE_X2AP_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_435_reject }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_435_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_436_id_SgNB_UE_X2AP_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_436_reject }, - { "&Value", aioc__type, &asn_DEF_SgNB_UE_X2AP_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_436_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_437_id_Cause }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_437_ignore }, - { "&Value", aioc__type, &asn_DEF_Cause }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_437_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_438_id_PDCPChangeIndication }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_438_ignore }, - { "&Value", aioc__type, &asn_DEF_PDCPChangeIndication }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_438_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_439_id_E_RABs_ToBeReleased_SgNBModReqdList }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_439_ignore }, - { "&Value", aioc__type, &asn_DEF_E_RABs_ToBeReleased_SgNBModReqdList }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_439_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_440_id_SgNBtoMeNBContainer }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_440_ignore }, - { "&Value", aioc__type, &asn_DEF_SgNBtoMeNBContainer }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_440_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_441_id_MeNB_UE_X2AP_ID_Extension }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_441_reject }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_441_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_442_id_E_RABs_ToBeModified_SgNBModReqdList }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_442_ignore }, - { "&Value", aioc__type, &asn_DEF_E_RABs_ToBeModified_SgNBModReqdList }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_442_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_443_id_SgNBResourceCoordinationInformation }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_443_ignore }, - { "&Value", aioc__type, &asn_DEF_SgNBResourceCoordinationInformation }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_443_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_444_id_RRCConfigIndication }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_444_reject }, - { "&Value", aioc__type, &asn_DEF_RRC_Config_Ind }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_444_optional } -}; -static const asn_ioc_set_t asn_IOS_SgNBModificationRequired_IEs_1[] = { - { 10, 4, asn_IOS_SgNBModificationRequired_IEs_1_rows } -}; -static const long asn_VAL_447_id_MeNB_UE_X2AP_ID = 111; -static const long asn_VAL_447_ignore = 1; -static const long asn_VAL_447_mandatory = 2; -static const long asn_VAL_448_id_SgNB_UE_X2AP_ID = 207; -static const long asn_VAL_448_ignore = 1; -static const long asn_VAL_448_mandatory = 2; -static const long asn_VAL_449_id_E_RABs_AdmittedToBeModified_SgNBModConfList = 294; -static const long asn_VAL_449_ignore = 1; -static const long asn_VAL_449_optional = 0; -static const long asn_VAL_450_id_MeNBtoSgNBContainer = 206; -static const long asn_VAL_450_ignore = 1; -static const long asn_VAL_450_optional = 0; -static const long asn_VAL_451_id_CriticalityDiagnostics = 17; -static const long asn_VAL_451_ignore = 1; -static const long asn_VAL_451_optional = 0; -static const long asn_VAL_452_id_MeNB_UE_X2AP_ID_Extension = 157; -static const long asn_VAL_452_ignore = 1; -static const long asn_VAL_452_optional = 0; -static const long asn_VAL_453_id_MeNBResourceCoordinationInformation = 257; -static const long asn_VAL_453_ignore = 1; -static const long asn_VAL_453_optional = 0; -static const asn_ioc_cell_t asn_IOS_SgNBModificationConfirm_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_447_id_MeNB_UE_X2AP_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_447_ignore }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_447_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_448_id_SgNB_UE_X2AP_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_448_ignore }, - { "&Value", aioc__type, &asn_DEF_SgNB_UE_X2AP_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_448_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_449_id_E_RABs_AdmittedToBeModified_SgNBModConfList }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_449_ignore }, - { "&Value", aioc__type, &asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConfList }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_449_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_450_id_MeNBtoSgNBContainer }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_450_ignore }, - { "&Value", aioc__type, &asn_DEF_MeNBtoSgNBContainer }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_450_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_451_id_CriticalityDiagnostics }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_451_ignore }, - { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_451_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_452_id_MeNB_UE_X2AP_ID_Extension }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_452_ignore }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_452_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_453_id_MeNBResourceCoordinationInformation }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_453_ignore }, - { "&Value", aioc__type, &asn_DEF_MeNBResourceCoordinationInformation }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_453_optional } -}; -static const asn_ioc_set_t asn_IOS_SgNBModificationConfirm_IEs_1[] = { - { 7, 4, asn_IOS_SgNBModificationConfirm_IEs_1_rows } -}; -static const long asn_VAL_455_id_MeNB_UE_X2AP_ID = 111; -static const long asn_VAL_455_ignore = 1; -static const long asn_VAL_455_mandatory = 2; -static const long asn_VAL_456_id_SgNB_UE_X2AP_ID = 207; -static const long asn_VAL_456_ignore = 1; -static const long asn_VAL_456_mandatory = 2; -static const long asn_VAL_457_id_Cause = 5; -static const long asn_VAL_457_ignore = 1; -static const long asn_VAL_457_mandatory = 2; -static const long asn_VAL_458_id_MeNBtoSgNBContainer = 206; -static const long asn_VAL_458_ignore = 1; -static const long asn_VAL_458_optional = 0; -static const long asn_VAL_459_id_CriticalityDiagnostics = 17; -static const long asn_VAL_459_ignore = 1; -static const long asn_VAL_459_optional = 0; -static const long asn_VAL_460_id_MeNB_UE_X2AP_ID_Extension = 157; -static const long asn_VAL_460_ignore = 1; -static const long asn_VAL_460_optional = 0; -static const asn_ioc_cell_t asn_IOS_SgNBModificationRefuse_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_455_id_MeNB_UE_X2AP_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_455_ignore }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_455_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_456_id_SgNB_UE_X2AP_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_456_ignore }, - { "&Value", aioc__type, &asn_DEF_SgNB_UE_X2AP_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_456_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_457_id_Cause }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_457_ignore }, - { "&Value", aioc__type, &asn_DEF_Cause }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_457_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_458_id_MeNBtoSgNBContainer }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_458_ignore }, - { "&Value", aioc__type, &asn_DEF_MeNBtoSgNBContainer }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_458_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_459_id_CriticalityDiagnostics }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_459_ignore }, - { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_459_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_460_id_MeNB_UE_X2AP_ID_Extension }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_460_ignore }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_460_optional } -}; -static const asn_ioc_set_t asn_IOS_SgNBModificationRefuse_IEs_1[] = { - { 6, 4, asn_IOS_SgNBModificationRefuse_IEs_1_rows } -}; -static const long asn_VAL_461_id_MeNB_UE_X2AP_ID = 111; -static const long asn_VAL_461_reject = 0; -static const long asn_VAL_461_mandatory = 2; -static const long asn_VAL_462_id_SgNB_UE_X2AP_ID = 207; -static const long asn_VAL_462_reject = 0; -static const long asn_VAL_462_optional = 0; -static const long asn_VAL_463_id_Cause = 5; -static const long asn_VAL_463_ignore = 1; -static const long asn_VAL_463_mandatory = 2; -static const long asn_VAL_464_id_E_RABs_ToBeReleased_SgNBRelReqList = 231; -static const long asn_VAL_464_ignore = 1; -static const long asn_VAL_464_optional = 0; -static const long asn_VAL_465_id_UE_ContextKeptIndicator = 154; -static const long asn_VAL_465_ignore = 1; -static const long asn_VAL_465_optional = 0; -static const long asn_VAL_466_id_MeNB_UE_X2AP_ID_Extension = 157; -static const long asn_VAL_466_reject = 0; -static const long asn_VAL_466_optional = 0; -static const long asn_VAL_467_id_MeNBtoSgNBContainer = 206; -static const long asn_VAL_467_reject = 0; -static const long asn_VAL_467_optional = 0; -static const asn_ioc_cell_t asn_IOS_SgNBReleaseRequest_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_461_id_MeNB_UE_X2AP_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_461_reject }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_461_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_462_id_SgNB_UE_X2AP_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_462_reject }, - { "&Value", aioc__type, &asn_DEF_SgNB_UE_X2AP_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_462_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_463_id_Cause }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_463_ignore }, - { "&Value", aioc__type, &asn_DEF_Cause }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_463_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_464_id_E_RABs_ToBeReleased_SgNBRelReqList }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_464_ignore }, - { "&Value", aioc__type, &asn_DEF_E_RABs_ToBeReleased_SgNBRelReqList }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_464_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_465_id_UE_ContextKeptIndicator }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_465_ignore }, - { "&Value", aioc__type, &asn_DEF_UE_ContextKeptIndicator }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_465_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_466_id_MeNB_UE_X2AP_ID_Extension }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_466_reject }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_466_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_467_id_MeNBtoSgNBContainer }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_467_reject }, - { "&Value", aioc__type, &asn_DEF_MeNBtoSgNBContainer }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_467_optional } -}; -static const asn_ioc_set_t asn_IOS_SgNBReleaseRequest_IEs_1[] = { - { 7, 4, asn_IOS_SgNBReleaseRequest_IEs_1_rows } -}; -static const long asn_VAL_469_id_MeNB_UE_X2AP_ID = 111; -static const long asn_VAL_469_ignore = 1; -static const long asn_VAL_469_mandatory = 2; -static const long asn_VAL_470_id_SgNB_UE_X2AP_ID = 207; -static const long asn_VAL_470_ignore = 1; -static const long asn_VAL_470_mandatory = 2; -static const long asn_VAL_471_id_CriticalityDiagnostics = 17; -static const long asn_VAL_471_ignore = 1; -static const long asn_VAL_471_optional = 0; -static const long asn_VAL_472_id_MeNB_UE_X2AP_ID_Extension = 157; -static const long asn_VAL_472_reject = 0; -static const long asn_VAL_472_optional = 0; -static const long asn_VAL_473_id_E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList = 318; -static const long asn_VAL_473_ignore = 1; -static const long asn_VAL_473_optional = 0; -static const asn_ioc_cell_t asn_IOS_SgNBReleaseRequestAcknowledge_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_469_id_MeNB_UE_X2AP_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_469_ignore }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_469_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_470_id_SgNB_UE_X2AP_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_470_ignore }, - { "&Value", aioc__type, &asn_DEF_SgNB_UE_X2AP_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_470_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_471_id_CriticalityDiagnostics }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_471_ignore }, - { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_471_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_472_id_MeNB_UE_X2AP_ID_Extension }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_472_reject }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_472_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_473_id_E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_473_ignore }, - { "&Value", aioc__type, &asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_473_optional } -}; -static const asn_ioc_set_t asn_IOS_SgNBReleaseRequestAcknowledge_IEs_1[] = { - { 5, 4, asn_IOS_SgNBReleaseRequestAcknowledge_IEs_1_rows } -}; -static const long asn_VAL_475_id_MeNB_UE_X2AP_ID = 111; -static const long asn_VAL_475_ignore = 1; -static const long asn_VAL_475_mandatory = 2; -static const long asn_VAL_476_id_SgNB_UE_X2AP_ID = 207; -static const long asn_VAL_476_ignore = 1; -static const long asn_VAL_476_mandatory = 2; -static const long asn_VAL_477_id_Cause = 5; -static const long asn_VAL_477_ignore = 1; -static const long asn_VAL_477_mandatory = 2; -static const long asn_VAL_478_id_CriticalityDiagnostics = 17; -static const long asn_VAL_478_ignore = 1; -static const long asn_VAL_478_optional = 0; -static const long asn_VAL_479_id_MeNB_UE_X2AP_ID_Extension = 157; -static const long asn_VAL_479_reject = 0; -static const long asn_VAL_479_optional = 0; -static const asn_ioc_cell_t asn_IOS_SgNBReleaseRequestReject_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_475_id_MeNB_UE_X2AP_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_475_ignore }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_475_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_476_id_SgNB_UE_X2AP_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_476_ignore }, - { "&Value", aioc__type, &asn_DEF_SgNB_UE_X2AP_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_476_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_477_id_Cause }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_477_ignore }, - { "&Value", aioc__type, &asn_DEF_Cause }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_477_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_478_id_CriticalityDiagnostics }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_478_ignore }, - { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_478_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_479_id_MeNB_UE_X2AP_ID_Extension }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_479_reject }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_479_optional } -}; -static const asn_ioc_set_t asn_IOS_SgNBReleaseRequestReject_IEs_1[] = { - { 5, 4, asn_IOS_SgNBReleaseRequestReject_IEs_1_rows } -}; -static const long asn_VAL_480_id_MeNB_UE_X2AP_ID = 111; -static const long asn_VAL_480_reject = 0; -static const long asn_VAL_480_mandatory = 2; -static const long asn_VAL_481_id_SgNB_UE_X2AP_ID = 207; -static const long asn_VAL_481_reject = 0; -static const long asn_VAL_481_mandatory = 2; -static const long asn_VAL_482_id_Cause = 5; -static const long asn_VAL_482_ignore = 1; -static const long asn_VAL_482_mandatory = 2; -static const long asn_VAL_483_id_MeNB_UE_X2AP_ID_Extension = 157; -static const long asn_VAL_483_reject = 0; -static const long asn_VAL_483_optional = 0; -static const long asn_VAL_484_id_E_RABs_ToBeReleased_SgNBRelReqdList = 320; -static const long asn_VAL_484_ignore = 1; -static const long asn_VAL_484_optional = 0; -static const asn_ioc_cell_t asn_IOS_SgNBReleaseRequired_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_480_id_MeNB_UE_X2AP_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_480_reject }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_480_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_481_id_SgNB_UE_X2AP_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_481_reject }, - { "&Value", aioc__type, &asn_DEF_SgNB_UE_X2AP_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_481_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_482_id_Cause }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_482_ignore }, - { "&Value", aioc__type, &asn_DEF_Cause }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_482_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_483_id_MeNB_UE_X2AP_ID_Extension }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_483_reject }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_483_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_484_id_E_RABs_ToBeReleased_SgNBRelReqdList }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_484_ignore }, - { "&Value", aioc__type, &asn_DEF_E_RABs_ToBeReleased_SgNBRelReqdList }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_484_optional } -}; -static const asn_ioc_set_t asn_IOS_SgNBReleaseRequired_IEs_1[] = { - { 5, 4, asn_IOS_SgNBReleaseRequired_IEs_1_rows } -}; -static const long asn_VAL_486_id_MeNB_UE_X2AP_ID = 111; -static const long asn_VAL_486_ignore = 1; -static const long asn_VAL_486_mandatory = 2; -static const long asn_VAL_487_id_SgNB_UE_X2AP_ID = 207; -static const long asn_VAL_487_ignore = 1; -static const long asn_VAL_487_mandatory = 2; -static const long asn_VAL_488_id_E_RABs_ToBeReleased_SgNBRelConfList = 233; -static const long asn_VAL_488_ignore = 1; -static const long asn_VAL_488_optional = 0; -static const long asn_VAL_489_id_CriticalityDiagnostics = 17; -static const long asn_VAL_489_ignore = 1; -static const long asn_VAL_489_optional = 0; -static const long asn_VAL_490_id_MeNB_UE_X2AP_ID_Extension = 157; -static const long asn_VAL_490_ignore = 1; -static const long asn_VAL_490_optional = 0; -static const asn_ioc_cell_t asn_IOS_SgNBReleaseConfirm_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_486_id_MeNB_UE_X2AP_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_486_ignore }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_486_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_487_id_SgNB_UE_X2AP_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_487_ignore }, - { "&Value", aioc__type, &asn_DEF_SgNB_UE_X2AP_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_487_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_488_id_E_RABs_ToBeReleased_SgNBRelConfList }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_488_ignore }, - { "&Value", aioc__type, &asn_DEF_E_RABs_ToBeReleased_SgNBRelConfList }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_488_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_489_id_CriticalityDiagnostics }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_489_ignore }, - { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_489_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_490_id_MeNB_UE_X2AP_ID_Extension }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_490_ignore }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_490_optional } -}; -static const asn_ioc_set_t asn_IOS_SgNBReleaseConfirm_IEs_1[] = { - { 5, 4, asn_IOS_SgNBReleaseConfirm_IEs_1_rows } -}; -static const long asn_VAL_492_id_MeNB_UE_X2AP_ID = 111; -static const long asn_VAL_492_reject = 0; -static const long asn_VAL_492_mandatory = 2; -static const long asn_VAL_493_id_SgNB_UE_X2AP_ID = 207; -static const long asn_VAL_493_reject = 0; -static const long asn_VAL_493_mandatory = 2; -static const long asn_VAL_494_id_E_RABs_SubjectToSgNBCounterCheck_List = 235; -static const long asn_VAL_494_ignore = 1; -static const long asn_VAL_494_mandatory = 2; -static const long asn_VAL_495_id_MeNB_UE_X2AP_ID_Extension = 157; -static const long asn_VAL_495_ignore = 1; -static const long asn_VAL_495_optional = 0; -static const asn_ioc_cell_t asn_IOS_SgNBCounterCheckRequest_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_492_id_MeNB_UE_X2AP_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_492_reject }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_492_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_493_id_SgNB_UE_X2AP_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_493_reject }, - { "&Value", aioc__type, &asn_DEF_SgNB_UE_X2AP_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_493_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_494_id_E_RABs_SubjectToSgNBCounterCheck_List }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_494_ignore }, - { "&Value", aioc__type, &asn_DEF_E_RABs_SubjectToSgNBCounterCheck_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_494_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_495_id_MeNB_UE_X2AP_ID_Extension }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_495_ignore }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_495_optional } -}; -static const asn_ioc_set_t asn_IOS_SgNBCounterCheckRequest_IEs_1[] = { - { 4, 4, asn_IOS_SgNBCounterCheckRequest_IEs_1_rows } -}; -static const long asn_VAL_497_id_MeNB_UE_X2AP_ID = 111; -static const long asn_VAL_497_reject = 0; -static const long asn_VAL_497_mandatory = 2; -static const long asn_VAL_498_id_SgNB_UE_X2AP_ID = 207; -static const long asn_VAL_498_reject = 0; -static const long asn_VAL_498_mandatory = 2; -static const long asn_VAL_499_id_Target_SgNB_ID = 239; -static const long asn_VAL_499_reject = 0; -static const long asn_VAL_499_mandatory = 2; -static const long asn_VAL_500_id_Cause = 5; -static const long asn_VAL_500_ignore = 1; -static const long asn_VAL_500_mandatory = 2; -static const long asn_VAL_501_id_SgNBtoMeNBContainer = 211; -static const long asn_VAL_501_reject = 0; -static const long asn_VAL_501_optional = 0; -static const long asn_VAL_502_id_MeNB_UE_X2AP_ID_Extension = 157; -static const long asn_VAL_502_reject = 0; -static const long asn_VAL_502_optional = 0; -static const asn_ioc_cell_t asn_IOS_SgNBChangeRequired_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_497_id_MeNB_UE_X2AP_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_497_reject }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_497_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_498_id_SgNB_UE_X2AP_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_498_reject }, - { "&Value", aioc__type, &asn_DEF_SgNB_UE_X2AP_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_498_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_499_id_Target_SgNB_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_499_reject }, - { "&Value", aioc__type, &asn_DEF_GlobalGNB_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_499_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_500_id_Cause }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_500_ignore }, - { "&Value", aioc__type, &asn_DEF_Cause }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_500_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_501_id_SgNBtoMeNBContainer }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_501_reject }, - { "&Value", aioc__type, &asn_DEF_SgNBtoMeNBContainer }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_501_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_502_id_MeNB_UE_X2AP_ID_Extension }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_502_reject }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_502_optional } -}; -static const asn_ioc_set_t asn_IOS_SgNBChangeRequired_IEs_1[] = { - { 6, 4, asn_IOS_SgNBChangeRequired_IEs_1_rows } -}; -static const long asn_VAL_503_id_MeNB_UE_X2AP_ID = 111; -static const long asn_VAL_503_ignore = 1; -static const long asn_VAL_503_mandatory = 2; -static const long asn_VAL_504_id_SgNB_UE_X2AP_ID = 207; -static const long asn_VAL_504_ignore = 1; -static const long asn_VAL_504_mandatory = 2; -static const long asn_VAL_505_id_E_RABs_ToBeReleased_SgNBChaConfList = 229; -static const long asn_VAL_505_ignore = 1; -static const long asn_VAL_505_optional = 0; -static const long asn_VAL_506_id_CriticalityDiagnostics = 17; -static const long asn_VAL_506_ignore = 1; -static const long asn_VAL_506_optional = 0; -static const long asn_VAL_507_id_MeNB_UE_X2AP_ID_Extension = 157; -static const long asn_VAL_507_ignore = 1; -static const long asn_VAL_507_optional = 0; -static const asn_ioc_cell_t asn_IOS_SgNBChangeConfirm_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_503_id_MeNB_UE_X2AP_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_503_ignore }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_503_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_504_id_SgNB_UE_X2AP_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_504_ignore }, - { "&Value", aioc__type, &asn_DEF_SgNB_UE_X2AP_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_504_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_505_id_E_RABs_ToBeReleased_SgNBChaConfList }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_505_ignore }, - { "&Value", aioc__type, &asn_DEF_E_RABs_ToBeReleased_SgNBChaConfList }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_505_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_506_id_CriticalityDiagnostics }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_506_ignore }, - { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_506_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_507_id_MeNB_UE_X2AP_ID_Extension }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_507_ignore }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_507_optional } -}; -static const asn_ioc_set_t asn_IOS_SgNBChangeConfirm_IEs_1[] = { - { 5, 4, asn_IOS_SgNBChangeConfirm_IEs_1_rows } -}; -static const long asn_VAL_509_id_MeNB_UE_X2AP_ID = 111; -static const long asn_VAL_509_reject = 0; -static const long asn_VAL_509_mandatory = 2; -static const long asn_VAL_510_id_SgNB_UE_X2AP_ID = 207; -static const long asn_VAL_510_reject = 0; -static const long asn_VAL_510_mandatory = 2; -static const long asn_VAL_511_id_SplitSRB = 242; -static const long asn_VAL_511_reject = 0; -static const long asn_VAL_511_optional = 0; -static const long asn_VAL_512_id_UENRMeasurement = 243; -static const long asn_VAL_512_reject = 0; -static const long asn_VAL_512_optional = 0; -static const long asn_VAL_513_id_MeNB_UE_X2AP_ID_Extension = 157; -static const long asn_VAL_513_reject = 0; -static const long asn_VAL_513_optional = 0; -static const asn_ioc_cell_t asn_IOS_RRCTransfer_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_509_id_MeNB_UE_X2AP_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_509_reject }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_509_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_510_id_SgNB_UE_X2AP_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_510_reject }, - { "&Value", aioc__type, &asn_DEF_SgNB_UE_X2AP_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_510_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_511_id_SplitSRB }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_511_reject }, - { "&Value", aioc__type, &asn_DEF_SplitSRB }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_511_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_512_id_UENRMeasurement }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_512_reject }, - { "&Value", aioc__type, &asn_DEF_UENRMeasurement }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_512_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_513_id_MeNB_UE_X2AP_ID_Extension }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_513_reject }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_513_optional } -}; -static const asn_ioc_set_t asn_IOS_RRCTransfer_IEs_1[] = { - { 5, 4, asn_IOS_RRCTransfer_IEs_1_rows } -}; -static const long asn_VAL_514_id_MeNB_UE_X2AP_ID = 111; -static const long asn_VAL_514_ignore = 1; -static const long asn_VAL_514_mandatory = 2; -static const long asn_VAL_515_id_SgNB_UE_X2AP_ID = 207; -static const long asn_VAL_515_ignore = 1; -static const long asn_VAL_515_mandatory = 2; -static const long asn_VAL_516_id_Cause = 5; -static const long asn_VAL_516_ignore = 1; -static const long asn_VAL_516_mandatory = 2; -static const long asn_VAL_517_id_CriticalityDiagnostics = 17; -static const long asn_VAL_517_ignore = 1; -static const long asn_VAL_517_optional = 0; -static const long asn_VAL_518_id_MeNB_UE_X2AP_ID_Extension = 157; -static const long asn_VAL_518_reject = 0; -static const long asn_VAL_518_optional = 0; -static const asn_ioc_cell_t asn_IOS_SgNBChangeRefuse_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_514_id_MeNB_UE_X2AP_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_514_ignore }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_514_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_515_id_SgNB_UE_X2AP_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_515_ignore }, - { "&Value", aioc__type, &asn_DEF_SgNB_UE_X2AP_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_515_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_516_id_Cause }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_516_ignore }, - { "&Value", aioc__type, &asn_DEF_Cause }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_516_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_517_id_CriticalityDiagnostics }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_517_ignore }, - { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_517_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_518_id_MeNB_UE_X2AP_ID_Extension }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_518_reject }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_518_optional } -}; -static const asn_ioc_set_t asn_IOS_SgNBChangeRefuse_IEs_1[] = { - { 5, 4, asn_IOS_SgNBChangeRefuse_IEs_1_rows } -}; -static const long asn_VAL_519_id_InitiatingNodeType_EndcX2Setup = 244; -static const long asn_VAL_519_reject = 0; -static const long asn_VAL_519_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_ENDCX2SetupRequest_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_519_id_InitiatingNodeType_EndcX2Setup }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_519_reject }, - { "&Value", aioc__type, &asn_DEF_InitiatingNodeType_EndcX2Setup }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_519_mandatory } -}; -static const asn_ioc_set_t asn_IOS_ENDCX2SetupRequest_IEs_1[] = { - { 1, 4, asn_IOS_ENDCX2SetupRequest_IEs_1_rows } -}; -static const long asn_VAL_520_id_GlobalENB_ID = 21; -static const long asn_VAL_520_reject = 0; -static const long asn_VAL_520_mandatory = 2; -static const long asn_VAL_521_id_ServedEUTRAcellsENDCX2ManagementList = 250; -static const long asn_VAL_521_reject = 0; -static const long asn_VAL_521_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_ENB_ENDCX2SetupReqIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_520_id_GlobalENB_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_520_reject }, - { "&Value", aioc__type, &asn_DEF_GlobalENB_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_520_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_521_id_ServedEUTRAcellsENDCX2ManagementList }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_521_reject }, - { "&Value", aioc__type, &asn_DEF_ServedEUTRAcellsENDCX2ManagementList }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_521_mandatory } -}; -static const asn_ioc_set_t asn_IOS_ENB_ENDCX2SetupReqIEs_1[] = { - { 2, 4, asn_IOS_ENB_ENDCX2SetupReqIEs_1_rows } -}; -static const long asn_VAL_522_id_Globalen_gNB_ID = 252; -static const long asn_VAL_522_reject = 0; -static const long asn_VAL_522_mandatory = 2; -static const long asn_VAL_523_id_ServedNRcellsENDCX2ManagementList = 253; -static const long asn_VAL_523_reject = 0; -static const long asn_VAL_523_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_En_gNB_ENDCX2SetupReqIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_522_id_Globalen_gNB_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_522_reject }, - { "&Value", aioc__type, &asn_DEF_GlobalGNB_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_522_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_523_id_ServedNRcellsENDCX2ManagementList }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_523_reject }, - { "&Value", aioc__type, &asn_DEF_ServedNRcellsENDCX2ManagementList }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_523_mandatory } -}; -static const asn_ioc_set_t asn_IOS_En_gNB_ENDCX2SetupReqIEs_1[] = { - { 2, 4, asn_IOS_En_gNB_ENDCX2SetupReqIEs_1_rows } -}; -static const long asn_VAL_524_id_RespondingNodeType_EndcX2Setup = 246; -static const long asn_VAL_524_reject = 0; -static const long asn_VAL_524_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_ENDCX2SetupResponse_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_524_id_RespondingNodeType_EndcX2Setup }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_524_reject }, - { "&Value", aioc__type, &asn_DEF_RespondingNodeType_EndcX2Setup }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_524_mandatory } -}; -static const asn_ioc_set_t asn_IOS_ENDCX2SetupResponse_IEs_1[] = { - { 1, 4, asn_IOS_ENDCX2SetupResponse_IEs_1_rows } -}; -static const long asn_VAL_525_id_GlobalENB_ID = 21; -static const long asn_VAL_525_reject = 0; -static const long asn_VAL_525_mandatory = 2; -static const long asn_VAL_526_id_ServedEUTRAcellsENDCX2ManagementList = 250; -static const long asn_VAL_526_reject = 0; -static const long asn_VAL_526_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_ENB_ENDCX2SetupReqAckIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_525_id_GlobalENB_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_525_reject }, - { "&Value", aioc__type, &asn_DEF_GlobalENB_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_525_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_526_id_ServedEUTRAcellsENDCX2ManagementList }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_526_reject }, - { "&Value", aioc__type, &asn_DEF_ServedEUTRAcellsENDCX2ManagementList }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_526_mandatory } -}; -static const asn_ioc_set_t asn_IOS_ENB_ENDCX2SetupReqAckIEs_1[] = { - { 2, 4, asn_IOS_ENB_ENDCX2SetupReqAckIEs_1_rows } -}; -static const long asn_VAL_527_id_Globalen_gNB_ID = 252; -static const long asn_VAL_527_reject = 0; -static const long asn_VAL_527_mandatory = 2; -static const long asn_VAL_528_id_ServedNRcellsENDCX2ManagementList = 253; -static const long asn_VAL_528_reject = 0; -static const long asn_VAL_528_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_En_gNB_ENDCX2SetupReqAckIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_527_id_Globalen_gNB_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_527_reject }, - { "&Value", aioc__type, &asn_DEF_GlobalGNB_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_527_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_528_id_ServedNRcellsENDCX2ManagementList }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_528_reject }, - { "&Value", aioc__type, &asn_DEF_ServedNRcellsENDCX2ManagementList }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_528_mandatory } -}; -static const asn_ioc_set_t asn_IOS_En_gNB_ENDCX2SetupReqAckIEs_1[] = { - { 2, 4, asn_IOS_En_gNB_ENDCX2SetupReqAckIEs_1_rows } -}; -static const long asn_VAL_529_id_Cause = 5; -static const long asn_VAL_529_ignore = 1; -static const long asn_VAL_529_mandatory = 2; -static const long asn_VAL_530_id_CriticalityDiagnostics = 17; -static const long asn_VAL_530_ignore = 1; -static const long asn_VAL_530_optional = 0; -static const long asn_VAL_531_id_TimeToWait = 22; -static const long asn_VAL_531_ignore = 1; -static const long asn_VAL_531_optional = 0; -static const asn_ioc_cell_t asn_IOS_ENDCX2SetupFailure_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_529_id_Cause }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_529_ignore }, - { "&Value", aioc__type, &asn_DEF_Cause }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_529_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_530_id_CriticalityDiagnostics }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_530_ignore }, - { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_530_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_531_id_TimeToWait }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_531_ignore }, - { "&Value", aioc__type, &asn_DEF_TimeToWait }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_531_optional } -}; -static const asn_ioc_set_t asn_IOS_ENDCX2SetupFailure_IEs_1[] = { - { 3, 4, asn_IOS_ENDCX2SetupFailure_IEs_1_rows } -}; -static const long asn_VAL_532_id_InitiatingNodeType_EndcConfigUpdate = 245; -static const long asn_VAL_532_reject = 0; -static const long asn_VAL_532_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_ENDCConfigurationUpdate_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_532_id_InitiatingNodeType_EndcConfigUpdate }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_532_reject }, - { "&Value", aioc__type, &asn_DEF_InitiatingNodeType_EndcConfigUpdate }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_532_mandatory } -}; -static const asn_ioc_set_t asn_IOS_ENDCConfigurationUpdate_IEs_1[] = { - { 1, 4, asn_IOS_ENDCConfigurationUpdate_IEs_1_rows } -}; -static const long asn_VAL_533_id_CellAssistanceInformation = 251; -static const long asn_VAL_533_reject = 0; -static const long asn_VAL_533_optional = 0; -static const long asn_VAL_534_id_ServedEUTRAcellsENDCX2ManagementList = 250; -static const long asn_VAL_534_reject = 0; -static const long asn_VAL_534_optional = 0; -static const long asn_VAL_535_id_ServedEUTRAcellsToModifyListENDCConfUpd = 259; -static const long asn_VAL_535_reject = 0; -static const long asn_VAL_535_optional = 0; -static const long asn_VAL_536_id_ServedEUTRAcellsToDeleteListENDCConfUpd = 260; -static const long asn_VAL_536_reject = 0; -static const long asn_VAL_536_optional = 0; -static const asn_ioc_cell_t asn_IOS_ENB_ENDCConfigUpdateIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_533_id_CellAssistanceInformation }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_533_reject }, - { "&Value", aioc__type, &asn_DEF_CellAssistanceInformation }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_533_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_534_id_ServedEUTRAcellsENDCX2ManagementList }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_534_reject }, - { "&Value", aioc__type, &asn_DEF_ServedEUTRAcellsENDCX2ManagementList }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_534_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_535_id_ServedEUTRAcellsToModifyListENDCConfUpd }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_535_reject }, - { "&Value", aioc__type, &asn_DEF_ServedEUTRAcellsToModifyListENDCConfUpd }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_535_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_536_id_ServedEUTRAcellsToDeleteListENDCConfUpd }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_536_reject }, - { "&Value", aioc__type, &asn_DEF_ServedEUTRAcellsToDeleteListENDCConfUpd }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_536_optional } -}; -static const asn_ioc_set_t asn_IOS_ENB_ENDCConfigUpdateIEs_1[] = { - { 4, 4, asn_IOS_ENB_ENDCConfigUpdateIEs_1_rows } -}; -static const long asn_VAL_537_id_ServedNRcellsENDCX2ManagementList = 253; -static const long asn_VAL_537_reject = 0; -static const long asn_VAL_537_optional = 0; -static const long asn_VAL_538_id_ServedNRcellsToModifyListENDCConfUpd = 261; -static const long asn_VAL_538_reject = 0; -static const long asn_VAL_538_optional = 0; -static const long asn_VAL_539_id_ServedNRcellsToDeleteListENDCConfUpd = 262; -static const long asn_VAL_539_reject = 0; -static const long asn_VAL_539_optional = 0; -static const asn_ioc_cell_t asn_IOS_En_gNB_ENDCConfigUpdateIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_537_id_ServedNRcellsENDCX2ManagementList }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_537_reject }, - { "&Value", aioc__type, &asn_DEF_ServedNRcellsENDCX2ManagementList }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_537_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_538_id_ServedNRcellsToModifyListENDCConfUpd }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_538_reject }, - { "&Value", aioc__type, &asn_DEF_ServedNRcellsToModifyENDCConfUpdList }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_538_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_539_id_ServedNRcellsToDeleteListENDCConfUpd }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_539_reject }, - { "&Value", aioc__type, &asn_DEF_ServedNRcellsToDeleteENDCConfUpdList }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_539_optional } -}; -static const asn_ioc_set_t asn_IOS_En_gNB_ENDCConfigUpdateIEs_1[] = { - { 3, 4, asn_IOS_En_gNB_ENDCConfigUpdateIEs_1_rows } -}; -static const long asn_VAL_540_id_RespondingNodeType_EndcConfigUpdate = 247; -static const long asn_VAL_540_reject = 0; -static const long asn_VAL_540_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_ENDCConfigurationUpdateAcknowledge_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_540_id_RespondingNodeType_EndcConfigUpdate }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_540_reject }, - { "&Value", aioc__type, &asn_DEF_RespondingNodeType_EndcConfigUpdate }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_540_mandatory } -}; -static const asn_ioc_set_t asn_IOS_ENDCConfigurationUpdateAcknowledge_IEs_1[] = { - { 1, 4, asn_IOS_ENDCConfigurationUpdateAcknowledge_IEs_1_rows } -}; -static const long asn_VAL_541_id_ServedNRcellsENDCX2ManagementList = 253; -static const long asn_VAL_541_reject = 0; -static const long asn_VAL_541_optional = 0; -static const asn_ioc_cell_t asn_IOS_En_gNB_ENDCConfigUpdateAckIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_541_id_ServedNRcellsENDCX2ManagementList }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_541_reject }, - { "&Value", aioc__type, &asn_DEF_ServedNRcellsENDCX2ManagementList }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_541_optional } -}; -static const asn_ioc_set_t asn_IOS_En_gNB_ENDCConfigUpdateAckIEs_1[] = { - { 1, 4, asn_IOS_En_gNB_ENDCConfigUpdateAckIEs_1_rows } -}; -static const long asn_VAL_542_id_Cause = 5; -static const long asn_VAL_542_ignore = 1; -static const long asn_VAL_542_mandatory = 2; -static const long asn_VAL_543_id_CriticalityDiagnostics = 17; -static const long asn_VAL_543_ignore = 1; -static const long asn_VAL_543_optional = 0; -static const long asn_VAL_544_id_TimeToWait = 22; -static const long asn_VAL_544_ignore = 1; -static const long asn_VAL_544_optional = 0; -static const asn_ioc_cell_t asn_IOS_ENDCConfigurationUpdateFailure_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_542_id_Cause }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_542_ignore }, - { "&Value", aioc__type, &asn_DEF_Cause }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_542_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_543_id_CriticalityDiagnostics }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_543_ignore }, - { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_543_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_544_id_TimeToWait }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_544_ignore }, - { "&Value", aioc__type, &asn_DEF_TimeToWait }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_544_optional } -}; -static const asn_ioc_set_t asn_IOS_ENDCConfigurationUpdateFailure_IEs_1[] = { - { 3, 4, asn_IOS_ENDCConfigurationUpdateFailure_IEs_1_rows } -}; -static const long asn_VAL_545_id_ServedNRCellsToActivate = 267; -static const long asn_VAL_545_reject = 0; -static const long asn_VAL_545_mandatory = 2; -static const long asn_VAL_546_id_ActivationID = 256; -static const long asn_VAL_546_reject = 0; -static const long asn_VAL_546_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_ENDCCellActivationRequest_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_545_id_ServedNRCellsToActivate }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_545_reject }, - { "&Value", aioc__type, &asn_DEF_ServedNRCellsToActivate }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_545_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_546_id_ActivationID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_546_reject }, - { "&Value", aioc__type, &asn_DEF_ActivationID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_546_mandatory } -}; -static const asn_ioc_set_t asn_IOS_ENDCCellActivationRequest_IEs_1[] = { - { 2, 4, asn_IOS_ENDCCellActivationRequest_IEs_1_rows } -}; -static const long asn_VAL_547_id_ActivatedNRCellList = 268; -static const long asn_VAL_547_ignore = 1; -static const long asn_VAL_547_mandatory = 2; -static const long asn_VAL_548_id_ActivationID = 256; -static const long asn_VAL_548_reject = 0; -static const long asn_VAL_548_mandatory = 2; -static const long asn_VAL_549_id_CriticalityDiagnostics = 17; -static const long asn_VAL_549_ignore = 1; -static const long asn_VAL_549_optional = 0; -static const asn_ioc_cell_t asn_IOS_ENDCCellActivationResponse_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_547_id_ActivatedNRCellList }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_547_ignore }, - { "&Value", aioc__type, &asn_DEF_ActivatedNRCellList }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_547_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_548_id_ActivationID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_548_reject }, - { "&Value", aioc__type, &asn_DEF_ActivationID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_548_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_549_id_CriticalityDiagnostics }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_549_ignore }, - { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_549_optional } -}; -static const asn_ioc_set_t asn_IOS_ENDCCellActivationResponse_IEs_1[] = { - { 3, 4, asn_IOS_ENDCCellActivationResponse_IEs_1_rows } -}; -static const long asn_VAL_550_id_ActivationID = 256; -static const long asn_VAL_550_reject = 0; -static const long asn_VAL_550_mandatory = 2; -static const long asn_VAL_551_id_Cause = 5; -static const long asn_VAL_551_ignore = 1; -static const long asn_VAL_551_mandatory = 2; -static const long asn_VAL_552_id_CriticalityDiagnostics = 17; -static const long asn_VAL_552_ignore = 1; -static const long asn_VAL_552_optional = 0; -static const asn_ioc_cell_t asn_IOS_ENDCCellActivationFailure_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_550_id_ActivationID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_550_reject }, - { "&Value", aioc__type, &asn_DEF_ActivationID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_550_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_551_id_Cause }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_551_ignore }, - { "&Value", aioc__type, &asn_DEF_Cause }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_551_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_552_id_CriticalityDiagnostics }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_552_ignore }, - { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_552_optional } -}; -static const asn_ioc_set_t asn_IOS_ENDCCellActivationFailure_IEs_1[] = { - { 3, 4, asn_IOS_ENDCCellActivationFailure_IEs_1_rows } -}; -static const long asn_VAL_553_id_MeNB_UE_X2AP_ID = 111; -static const long asn_VAL_553_reject = 0; -static const long asn_VAL_553_mandatory = 2; -static const long asn_VAL_554_id_SgNB_UE_X2AP_ID = 207; -static const long asn_VAL_554_reject = 0; -static const long asn_VAL_554_mandatory = 2; -static const long asn_VAL_555_id_SecondaryRATUsageReportList = 265; -static const long asn_VAL_555_reject = 0; -static const long asn_VAL_555_mandatory = 2; -static const long asn_VAL_556_id_MeNB_UE_X2AP_ID_Extension = 157; -static const long asn_VAL_556_reject = 0; -static const long asn_VAL_556_optional = 0; -static const asn_ioc_cell_t asn_IOS_SecondaryRATDataUsageReport_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_553_id_MeNB_UE_X2AP_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_553_reject }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_553_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_554_id_SgNB_UE_X2AP_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_554_reject }, - { "&Value", aioc__type, &asn_DEF_SgNB_UE_X2AP_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_554_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_555_id_SecondaryRATUsageReportList }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_555_reject }, - { "&Value", aioc__type, &asn_DEF_SecondaryRATUsageReportList }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_555_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_556_id_MeNB_UE_X2AP_ID_Extension }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_556_reject }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_556_optional } -}; -static const asn_ioc_set_t asn_IOS_SecondaryRATDataUsageReport_IEs_1[] = { - { 4, 4, asn_IOS_SecondaryRATDataUsageReport_IEs_1_rows } -}; -static const long asn_VAL_557_id_MeNB_UE_X2AP_ID = 111; -static const long asn_VAL_557_reject = 0; -static const long asn_VAL_557_mandatory = 2; -static const long asn_VAL_558_id_SgNB_UE_X2AP_ID = 207; -static const long asn_VAL_558_reject = 0; -static const long asn_VAL_558_mandatory = 2; -static const long asn_VAL_559_id_UEContextLevelUserPlaneActivity = 296; -static const long asn_VAL_559_ignore = 1; -static const long asn_VAL_559_optional = 0; -static const long asn_VAL_560_id_ERABActivityNotifyItemList = 297; -static const long asn_VAL_560_ignore = 1; -static const long asn_VAL_560_optional = 0; -static const long asn_VAL_561_id_MeNB_UE_X2AP_ID_Extension = 157; -static const long asn_VAL_561_reject = 0; -static const long asn_VAL_561_optional = 0; -static const asn_ioc_cell_t asn_IOS_SgNBActivityNotification_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_557_id_MeNB_UE_X2AP_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_557_reject }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_557_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_558_id_SgNB_UE_X2AP_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_558_reject }, - { "&Value", aioc__type, &asn_DEF_SgNB_UE_X2AP_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_558_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_559_id_UEContextLevelUserPlaneActivity }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_559_ignore }, - { "&Value", aioc__type, &asn_DEF_UserPlaneTrafficActivityReport }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_559_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_560_id_ERABActivityNotifyItemList }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_560_ignore }, - { "&Value", aioc__type, &asn_DEF_ERABActivityNotifyItemList }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_560_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_561_id_MeNB_UE_X2AP_ID_Extension }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_561_reject }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_561_optional } -}; -static const asn_ioc_set_t asn_IOS_SgNBActivityNotification_IEs_1[] = { - { 5, 4, asn_IOS_SgNBActivityNotification_IEs_1_rows } -}; -static const long asn_VAL_562_id_UEs_ToBeReset = 270; -static const long asn_VAL_562_reject = 0; -static const long asn_VAL_562_mandatory = 2; -static const long asn_VAL_563_id_Cause = 5; -static const long asn_VAL_563_ignore = 1; -static const long asn_VAL_563_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_ENDCPartialResetRequired_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_562_id_UEs_ToBeReset }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_562_reject }, - { "&Value", aioc__type, &asn_DEF_UEsToBeResetList }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_562_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_563_id_Cause }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_563_ignore }, - { "&Value", aioc__type, &asn_DEF_Cause }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_563_mandatory } -}; -static const asn_ioc_set_t asn_IOS_ENDCPartialResetRequired_IEs_1[] = { - { 2, 4, asn_IOS_ENDCPartialResetRequired_IEs_1_rows } -}; -static const long asn_VAL_564_id_UEs_Admitted_ToBeReset = 271; -static const long asn_VAL_564_reject = 0; -static const long asn_VAL_564_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_ENDCPartialResetConfirm_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_564_id_UEs_Admitted_ToBeReset }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_564_reject }, - { "&Value", aioc__type, &asn_DEF_UEsToBeResetList }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_564_mandatory } -}; -static const asn_ioc_set_t asn_IOS_ENDCPartialResetConfirm_IEs_1[] = { - { 1, 4, asn_IOS_ENDCPartialResetConfirm_IEs_1_rows } -}; -static const long asn_VAL_565_id_InitiatingNodeType_EutranrCellResourceCoordination = 285; -static const long asn_VAL_565_reject = 0; -static const long asn_VAL_565_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_EUTRANRCellResourceCoordinationRequest_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_565_id_InitiatingNodeType_EutranrCellResourceCoordination }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_565_reject }, - { "&Value", aioc__type, &asn_DEF_InitiatingNodeType_EutranrCellResourceCoordination }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_565_mandatory } -}; -static const asn_ioc_set_t asn_IOS_EUTRANRCellResourceCoordinationRequest_IEs_1[] = { - { 1, 4, asn_IOS_EUTRANRCellResourceCoordinationRequest_IEs_1_rows } -}; -static const long asn_VAL_566_id_DataTrafficResourceIndication = 287; -static const long asn_VAL_566_reject = 0; -static const long asn_VAL_566_mandatory = 2; -static const long asn_VAL_567_id_SpectrumSharingGroupID = 288; -static const long asn_VAL_567_reject = 0; -static const long asn_VAL_567_mandatory = 2; -static const long asn_VAL_568_id_ListofEUTRACellsinEUTRACoordinationReq = 289; -static const long asn_VAL_568_reject = 0; -static const long asn_VAL_568_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_ENB_EUTRA_NRCellResourceCoordinationReqIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_566_id_DataTrafficResourceIndication }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_566_reject }, - { "&Value", aioc__type, &asn_DEF_DataTrafficResourceIndication }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_566_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_567_id_SpectrumSharingGroupID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_567_reject }, - { "&Value", aioc__type, &asn_DEF_SpectrumSharingGroupID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_567_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_568_id_ListofEUTRACellsinEUTRACoordinationReq }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_568_reject }, - { "&Value", aioc__type, &asn_DEF_ListofEUTRACellsinEUTRACoordinationReq }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_568_mandatory } -}; -static const asn_ioc_set_t asn_IOS_ENB_EUTRA_NRCellResourceCoordinationReqIEs_1[] = { - { 3, 4, asn_IOS_ENB_EUTRA_NRCellResourceCoordinationReqIEs_1_rows } -}; -static const long asn_VAL_569_id_DataTrafficResourceIndication = 287; -static const long asn_VAL_569_reject = 0; -static const long asn_VAL_569_mandatory = 2; -static const long asn_VAL_570_id_ListofEUTRACellsinNRCoordinationReq = 291; -static const long asn_VAL_570_reject = 0; -static const long asn_VAL_570_mandatory = 2; -static const long asn_VAL_571_id_SpectrumSharingGroupID = 288; -static const long asn_VAL_571_reject = 0; -static const long asn_VAL_571_mandatory = 2; -static const long asn_VAL_572_id_ListofNRCellsinNRCoordinationReq = 292; -static const long asn_VAL_572_reject = 0; -static const long asn_VAL_572_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_En_gNB_EUTRA_NRCellResourceCoordinationReqIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_569_id_DataTrafficResourceIndication }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_569_reject }, - { "&Value", aioc__type, &asn_DEF_DataTrafficResourceIndication }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_569_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_570_id_ListofEUTRACellsinNRCoordinationReq }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_570_reject }, - { "&Value", aioc__type, &asn_DEF_ListofEUTRACellsinNRCoordinationReq }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_570_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_571_id_SpectrumSharingGroupID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_571_reject }, - { "&Value", aioc__type, &asn_DEF_SpectrumSharingGroupID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_571_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_572_id_ListofNRCellsinNRCoordinationReq }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_572_reject }, - { "&Value", aioc__type, &asn_DEF_ListofNRCellsinNRCoordinationReq }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_572_mandatory } -}; -static const asn_ioc_set_t asn_IOS_En_gNB_EUTRA_NRCellResourceCoordinationReqIEs_1[] = { - { 4, 4, asn_IOS_En_gNB_EUTRA_NRCellResourceCoordinationReqIEs_1_rows } -}; -static const long asn_VAL_573_id_RespondingNodeType_EutranrCellResourceCoordination = 286; -static const long asn_VAL_573_reject = 0; -static const long asn_VAL_573_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_EUTRANRCellResourceCoordinationResponse_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_573_id_RespondingNodeType_EutranrCellResourceCoordination }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_573_reject }, - { "&Value", aioc__type, &asn_DEF_RespondingNodeType_EutranrCellResourceCoordination }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_573_mandatory } -}; -static const asn_ioc_set_t asn_IOS_EUTRANRCellResourceCoordinationResponse_IEs_1[] = { - { 1, 4, asn_IOS_EUTRANRCellResourceCoordinationResponse_IEs_1_rows } -}; -static const long asn_VAL_574_id_DataTrafficResourceIndication = 287; -static const long asn_VAL_574_reject = 0; -static const long asn_VAL_574_mandatory = 2; -static const long asn_VAL_575_id_SpectrumSharingGroupID = 288; -static const long asn_VAL_575_reject = 0; -static const long asn_VAL_575_mandatory = 2; -static const long asn_VAL_576_id_ListofEUTRACellsinEUTRACoordinationResp = 290; -static const long asn_VAL_576_reject = 0; -static const long asn_VAL_576_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_ENB_EUTRA_NRCellResourceCoordinationReqAckIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_574_id_DataTrafficResourceIndication }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_574_reject }, - { "&Value", aioc__type, &asn_DEF_DataTrafficResourceIndication }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_574_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_575_id_SpectrumSharingGroupID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_575_reject }, - { "&Value", aioc__type, &asn_DEF_SpectrumSharingGroupID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_575_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_576_id_ListofEUTRACellsinEUTRACoordinationResp }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_576_reject }, - { "&Value", aioc__type, &asn_DEF_ListofEUTRACellsinEUTRACoordinationResp }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_576_mandatory } -}; -static const asn_ioc_set_t asn_IOS_ENB_EUTRA_NRCellResourceCoordinationReqAckIEs_1[] = { - { 3, 4, asn_IOS_ENB_EUTRA_NRCellResourceCoordinationReqAckIEs_1_rows } -}; -static const long asn_VAL_577_id_DataTrafficResourceIndication = 287; -static const long asn_VAL_577_reject = 0; -static const long asn_VAL_577_mandatory = 2; -static const long asn_VAL_578_id_SpectrumSharingGroupID = 288; -static const long asn_VAL_578_reject = 0; -static const long asn_VAL_578_mandatory = 2; -static const long asn_VAL_579_id_ListofNRCellsinNRCoordinationResp = 293; -static const long asn_VAL_579_reject = 0; -static const long asn_VAL_579_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_En_gNB_EUTRA_NRCellResourceCoordinationReqAckIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_577_id_DataTrafficResourceIndication }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_577_reject }, - { "&Value", aioc__type, &asn_DEF_DataTrafficResourceIndication }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_577_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_578_id_SpectrumSharingGroupID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_578_reject }, - { "&Value", aioc__type, &asn_DEF_SpectrumSharingGroupID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_578_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_579_id_ListofNRCellsinNRCoordinationResp }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_579_reject }, - { "&Value", aioc__type, &asn_DEF_ListofNRCellsinNRCoordinationResp }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_579_mandatory } -}; -static const asn_ioc_set_t asn_IOS_En_gNB_EUTRA_NRCellResourceCoordinationReqAckIEs_1[] = { - { 3, 4, asn_IOS_En_gNB_EUTRA_NRCellResourceCoordinationReqAckIEs_1_rows } -}; -static const long asn_VAL_580_id_InitiatingNodeType_EndcX2Removal = 298; -static const long asn_VAL_580_reject = 0; -static const long asn_VAL_580_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_ENDCX2RemovalRequest_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_580_id_InitiatingNodeType_EndcX2Removal }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_580_reject }, - { "&Value", aioc__type, &asn_DEF_InitiatingNodeType_EndcX2Removal }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_580_mandatory } -}; -static const asn_ioc_set_t asn_IOS_ENDCX2RemovalRequest_IEs_1[] = { - { 1, 4, asn_IOS_ENDCX2RemovalRequest_IEs_1_rows } -}; -static const long asn_VAL_581_id_GlobalENB_ID = 21; -static const long asn_VAL_581_reject = 0; -static const long asn_VAL_581_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_ENB_ENDCX2RemovalReqIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_581_id_GlobalENB_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_581_reject }, - { "&Value", aioc__type, &asn_DEF_GlobalENB_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_581_mandatory } -}; -static const asn_ioc_set_t asn_IOS_ENB_ENDCX2RemovalReqIEs_1[] = { - { 1, 4, asn_IOS_ENB_ENDCX2RemovalReqIEs_1_rows } -}; -static const long asn_VAL_582_id_Globalen_gNB_ID = 252; -static const long asn_VAL_582_reject = 0; -static const long asn_VAL_582_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_En_gNB_ENDCX2RemovalReqIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_582_id_Globalen_gNB_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_582_reject }, - { "&Value", aioc__type, &asn_DEF_GlobalGNB_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_582_mandatory } -}; -static const asn_ioc_set_t asn_IOS_En_gNB_ENDCX2RemovalReqIEs_1[] = { - { 1, 4, asn_IOS_En_gNB_ENDCX2RemovalReqIEs_1_rows } -}; -static const long asn_VAL_583_id_RespondingNodeType_EndcX2Removal = 299; -static const long asn_VAL_583_reject = 0; -static const long asn_VAL_583_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_ENDCX2RemovalResponse_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_583_id_RespondingNodeType_EndcX2Removal }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_583_reject }, - { "&Value", aioc__type, &asn_DEF_RespondingNodeType_EndcX2Removal }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_583_mandatory } -}; -static const asn_ioc_set_t asn_IOS_ENDCX2RemovalResponse_IEs_1[] = { - { 1, 4, asn_IOS_ENDCX2RemovalResponse_IEs_1_rows } -}; -static const long asn_VAL_584_id_GlobalENB_ID = 21; -static const long asn_VAL_584_reject = 0; -static const long asn_VAL_584_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_ENB_ENDCX2RemovalReqAckIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_584_id_GlobalENB_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_584_reject }, - { "&Value", aioc__type, &asn_DEF_GlobalENB_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_584_mandatory } -}; -static const asn_ioc_set_t asn_IOS_ENB_ENDCX2RemovalReqAckIEs_1[] = { - { 1, 4, asn_IOS_ENB_ENDCX2RemovalReqAckIEs_1_rows } -}; -static const long asn_VAL_585_id_Globalen_gNB_ID = 252; -static const long asn_VAL_585_reject = 0; -static const long asn_VAL_585_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_En_gNB_ENDCX2RemovalReqAckIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_585_id_Globalen_gNB_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_585_reject }, - { "&Value", aioc__type, &asn_DEF_GlobalGNB_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_585_mandatory } -}; -static const asn_ioc_set_t asn_IOS_En_gNB_ENDCX2RemovalReqAckIEs_1[] = { - { 1, 4, asn_IOS_En_gNB_ENDCX2RemovalReqAckIEs_1_rows } -}; -static const long asn_VAL_586_id_Cause = 5; -static const long asn_VAL_586_ignore = 1; -static const long asn_VAL_586_mandatory = 2; -static const long asn_VAL_587_id_CriticalityDiagnostics = 17; -static const long asn_VAL_587_ignore = 1; -static const long asn_VAL_587_optional = 0; -static const asn_ioc_cell_t asn_IOS_ENDCX2RemovalFailure_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_586_id_Cause }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_586_ignore }, - { "&Value", aioc__type, &asn_DEF_Cause }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_586_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_587_id_CriticalityDiagnostics }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_587_ignore }, - { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_587_optional } -}; -static const asn_ioc_set_t asn_IOS_ENDCX2RemovalFailure_IEs_1[] = { - { 2, 4, asn_IOS_ENDCX2RemovalFailure_IEs_1_rows } -}; -static const long asn_VAL_588_id_New_eNB_UE_X2AP_ID_Extension = 155; -static const long asn_VAL_588_ignore = 1; -static const long asn_VAL_588_optional = 0; -static const long asn_VAL_589_id_Old_eNB_UE_X2AP_ID = 10; -static const long asn_VAL_589_ignore = 1; -static const long asn_VAL_589_mandatory = 2; -static const long asn_VAL_590_id_Old_eNB_UE_X2AP_ID_Extension = 156; -static const long asn_VAL_590_ignore = 1; -static const long asn_VAL_590_optional = 0; -static const long asn_VAL_591_id_E_RABs_DataForwardingAddress_List = 307; -static const long asn_VAL_591_ignore = 1; -static const long asn_VAL_591_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_DataForwardingAddressIndication_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_588_id_New_eNB_UE_X2AP_ID_Extension }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_588_ignore }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_588_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_589_id_Old_eNB_UE_X2AP_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_589_ignore }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_589_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_590_id_Old_eNB_UE_X2AP_ID_Extension }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_590_ignore }, - { "&Value", aioc__type, &asn_DEF_UE_X2AP_ID_Extension }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_590_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_591_id_E_RABs_DataForwardingAddress_List }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_591_ignore }, - { "&Value", aioc__type, &asn_DEF_E_RABs_DataForwardingAddress_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_591_mandatory } -}; -static const asn_ioc_set_t asn_IOS_DataForwardingAddressIndication_IEs_1[] = { - { 4, 4, asn_IOS_DataForwardingAddressIndication_IEs_1_rows } -}; -static const long asn_VAL_593_id_GNBOverloadInformation = 310; -static const long asn_VAL_593_ignore = 1; -static const long asn_VAL_593_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_GNBStatusIndicationIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_593_id_GNBOverloadInformation }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_593_ignore }, - { "&Value", aioc__type, &asn_DEF_GNBOverloadInformation }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_593_mandatory } -}; -static const asn_ioc_set_t asn_IOS_GNBStatusIndicationIEs_1[] = { - { 1, 4, asn_IOS_GNBStatusIndicationIEs_1_rows } -}; -static const long asn_VAL_594_id_E_RAB_Item = 2; -static const long asn_VAL_594_ignore = 1; -static const long asn_VAL_594_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_E_RAB_ItemIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_594_id_E_RAB_Item }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_594_ignore }, - { "&Value", aioc__type, &asn_DEF_E_RAB_Item }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_594_mandatory } -}; -static const asn_ioc_set_t asn_IOS_E_RAB_ItemIEs_1[] = { - { 1, 4, asn_IOS_E_RAB_ItemIEs_1_rows } -}; -static const long asn_VAL_595_id_E_RABUsageReport_Item = 263; -static const long asn_VAL_595_ignore = 1; -static const long asn_VAL_595_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_E_RABUsageReport_ItemIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_595_id_E_RABUsageReport_Item }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_595_ignore }, - { "&Value", aioc__type, &asn_DEF_E_RABUsageReport_Item }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_595_mandatory } -}; -static const asn_ioc_set_t asn_IOS_E_RABUsageReport_ItemIEs_1[] = { - { 1, 4, asn_IOS_E_RABUsageReport_ItemIEs_1_rows } -}; -static const long asn_VAL_596_id_SecondaryRATUsageReport_Item = 266; -static const long asn_VAL_596_reject = 0; -static const long asn_VAL_596_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_SecondaryRATUsageReport_ItemIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_596_id_SecondaryRATUsageReport_Item }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_596_reject }, - { "&Value", aioc__type, &asn_DEF_SecondaryRATUsageReport_Item }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_596_mandatory } -}; -static const asn_ioc_set_t asn_IOS_SecondaryRATUsageReport_ItemIEs_1[] = { - { 1, 4, asn_IOS_SecondaryRATUsageReport_ItemIEs_1_rows } -}; -static int -memb_id_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_RICaction_ToBeSetup_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICaction_ToBeSetup_ItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICaction_ToBeSetup_ItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_RICaction_ToBeSetup_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICaction_ToBeSetup_ItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICaction_ToBeSetup_ItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_5(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_RICaction_Admitted_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICaction_Admitted_ItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICaction_Admitted_ItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_5(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_RICaction_Admitted_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICaction_Admitted_ItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICaction_Admitted_ItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_5(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_9(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_RICaction_NotAdmitted_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICaction_NotAdmitted_ItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICaction_NotAdmitted_ItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_9(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_RICaction_NotAdmitted_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICaction_NotAdmitted_ItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICaction_NotAdmitted_ItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_9(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_13(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_RANfunction_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RANfunction_ItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RANfunction_ItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_13(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_RANfunction_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RANfunction_ItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RANfunction_ItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_13(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_17(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_RANfunctionID_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RANfunctionID_ItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RANfunctionID_ItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_17(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_RANfunctionID_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RANfunctionID_ItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RANfunctionID_ItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_17(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_21(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_RANfunctionIDcause_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RANfunctionIDcause_ItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RANfunctionIDcause_ItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_21(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_RANfunctionIDcause_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RANfunctionIDcause_ItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RANfunctionIDcause_ItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_21(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_25(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_E_RABs_ToBeSetup_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeSetup_ItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeSetup_ItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_25(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_E_RABs_ToBeSetup_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeSetup_ItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeSetup_ItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_25(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_29(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_E_RABs_Admitted_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E_RABs_Admitted_ItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_Admitted_ItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_29(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_E_RABs_Admitted_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E_RABs_Admitted_ItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_Admitted_ItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_29(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_33(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_E_RABs_SubjectToStatusTransfer_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E_RABs_SubjectToStatusTransfer_ItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_SubjectToStatusTransfer_ItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_33(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_E_RABs_SubjectToStatusTransfer_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E_RABs_SubjectToStatusTransfer_ItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_SubjectToStatusTransfer_ItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_33(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_37(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_CellInformation_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_CellInformation_ItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct CellInformation_ItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_37(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_CellInformation_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_CellInformation_ItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct CellInformation_ItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_37(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_41(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_CellToReport_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_CellToReport_ItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct CellToReport_ItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_41(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_CellToReport_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_CellToReport_ItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct CellToReport_ItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_41(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_45(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_MeasurementInitiationResult_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_MeasurementInitiationResult_ItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct MeasurementInitiationResult_ItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_45(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_MeasurementInitiationResult_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_MeasurementInitiationResult_ItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct MeasurementInitiationResult_ItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_45(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_49(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_MeasurementFailureCause_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_MeasurementFailureCause_ItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct MeasurementFailureCause_ItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_49(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_MeasurementFailureCause_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_MeasurementFailureCause_ItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct MeasurementFailureCause_ItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_49(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_53(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_CompleteFailureCauseInformation_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_CompleteFailureCauseInformation_ItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct CompleteFailureCauseInformation_ItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_53(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_CompleteFailureCauseInformation_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_CompleteFailureCauseInformation_ItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct CompleteFailureCauseInformation_ItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_53(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_57(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_CellMeasurementResult_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_CellMeasurementResult_ItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct CellMeasurementResult_ItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_57(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_CellMeasurementResult_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_CellMeasurementResult_ItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct CellMeasurementResult_ItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_57(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_61(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_E_RABs_ToBeAdded_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeAdded_ItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeAdded_ItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_61(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_E_RABs_ToBeAdded_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeAdded_ItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeAdded_ItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_61(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_65(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_E_RABs_Admitted_ToBeAdded_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E_RABs_Admitted_ToBeAdded_ItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_Admitted_ToBeAdded_ItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_65(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_E_RABs_Admitted_ToBeAdded_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E_RABs_Admitted_ToBeAdded_ItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_Admitted_ToBeAdded_ItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_65(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_69(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_E_RABs_ToBeAdded_ModReqItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeAdded_ModReqItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeAdded_ModReqItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_69(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_E_RABs_ToBeAdded_ModReqItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeAdded_ModReqItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeAdded_ModReqItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_69(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_73(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_E_RABs_ToBeModified_ModReqItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeModified_ModReqItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeModified_ModReqItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_73(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_E_RABs_ToBeModified_ModReqItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeModified_ModReqItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeModified_ModReqItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_73(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_77(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_E_RABs_ToBeReleased_ModReqItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeReleased_ModReqItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeReleased_ModReqItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_77(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_E_RABs_ToBeReleased_ModReqItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeReleased_ModReqItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeReleased_ModReqItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_77(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_81(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_E_RABs_Admitted_ToBeAdded_ModAckItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E_RABs_Admitted_ToBeAdded_ModAckItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_Admitted_ToBeAdded_ModAckItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_81(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_E_RABs_Admitted_ToBeAdded_ModAckItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E_RABs_Admitted_ToBeAdded_ModAckItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_Admitted_ToBeAdded_ModAckItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_81(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_85(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_E_RABs_Admitted_ToBeModified_ModAckItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E_RABs_Admitted_ToBeModified_ModAckItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_Admitted_ToBeModified_ModAckItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_85(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_E_RABs_Admitted_ToBeModified_ModAckItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E_RABs_Admitted_ToBeModified_ModAckItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_Admitted_ToBeModified_ModAckItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_85(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_89(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_E_RABs_Admitted_ToBeReleased_ModAckItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E_RABs_Admitted_ToBeReleased_ModAckItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_Admitted_ToBeReleased_ModAckItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_89(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_E_RABs_Admitted_ToBeReleased_ModAckItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E_RABs_Admitted_ToBeReleased_ModAckItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_Admitted_ToBeReleased_ModAckItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_89(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_93(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_E_RABs_ToBeReleased_ModReqdItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeReleased_ModReqdItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeReleased_ModReqdItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_93(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_E_RABs_ToBeReleased_ModReqdItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeReleased_ModReqdItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeReleased_ModReqdItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_93(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_97(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_E_RABs_ToBeReleased_RelReqItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeReleased_RelReqItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeReleased_RelReqItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_97(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_E_RABs_ToBeReleased_RelReqItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeReleased_RelReqItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeReleased_RelReqItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_97(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_101(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_E_RABs_ToBeReleased_RelConfItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeReleased_RelConfItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeReleased_RelConfItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_101(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_E_RABs_ToBeReleased_RelConfItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeReleased_RelConfItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeReleased_RelConfItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_101(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_105(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_E_RABs_SubjectToCounterCheckItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E_RABs_SubjectToCounterCheckItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_SubjectToCounterCheckItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_105(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_E_RABs_SubjectToCounterCheckItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E_RABs_SubjectToCounterCheckItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_SubjectToCounterCheckItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_105(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_109(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_E_RABs_ToBeSetupRetrieve_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeSetupRetrieve_ItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeSetupRetrieve_ItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_109(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_E_RABs_ToBeSetupRetrieve_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeSetupRetrieve_ItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeSetupRetrieve_ItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_109(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_113(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_E_RABs_ToBeAdded_SgNBAddReq_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeAdded_SgNBAddReq_ItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeAdded_SgNBAddReq_ItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_113(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_E_RABs_ToBeAdded_SgNBAddReq_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeAdded_SgNBAddReq_ItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeAdded_SgNBAddReq_ItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_113(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_117(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_ItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_ItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_117(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_ItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_ItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_117(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_121(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_E_RABs_ToBeAdded_SgNBModReq_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeAdded_SgNBModReq_ItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeAdded_SgNBModReq_ItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_121(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_E_RABs_ToBeAdded_SgNBModReq_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeAdded_SgNBModReq_ItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeAdded_SgNBModReq_ItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_121(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_125(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_E_RABs_ToBeModified_SgNBModReq_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeModified_SgNBModReq_ItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeModified_SgNBModReq_ItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_125(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_E_RABs_ToBeModified_SgNBModReq_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeModified_SgNBModReq_ItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeModified_SgNBModReq_ItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_125(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_129(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_E_RABs_ToBeReleased_SgNBModReq_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeReleased_SgNBModReq_ItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeReleased_SgNBModReq_ItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_129(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_E_RABs_ToBeReleased_SgNBModReq_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeReleased_SgNBModReq_ItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeReleased_SgNBModReq_ItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_129(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_133(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_133(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_133(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_137(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_E_RABs_Admitted_ToBeModified_SgNBModAck_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E_RABs_Admitted_ToBeModified_SgNBModAck_ItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_Admitted_ToBeModified_SgNBModAck_ItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_137(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_E_RABs_Admitted_ToBeModified_SgNBModAck_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E_RABs_Admitted_ToBeModified_SgNBModAck_ItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_Admitted_ToBeModified_SgNBModAck_ItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_137(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_141(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_E_RABs_Admitted_ToBeReleased_SgNBModAck_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E_RABs_Admitted_ToBeReleased_SgNBModAck_ItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_Admitted_ToBeReleased_SgNBModAck_ItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_141(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_E_RABs_Admitted_ToBeReleased_SgNBModAck_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E_RABs_Admitted_ToBeReleased_SgNBModAck_ItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_Admitted_ToBeReleased_SgNBModAck_ItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_141(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_145(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_E_RABs_ToBeReleased_SgNBModReqd_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeReleased_SgNBModReqd_ItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeReleased_SgNBModReqd_ItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_145(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_E_RABs_ToBeReleased_SgNBModReqd_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeReleased_SgNBModReqd_ItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeReleased_SgNBModReqd_ItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_145(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_149(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_E_RABs_ToBeModified_SgNBModReqd_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeModified_SgNBModReqd_ItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeModified_SgNBModReqd_ItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_149(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_E_RABs_ToBeModified_SgNBModReqd_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeModified_SgNBModReqd_ItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeModified_SgNBModReqd_ItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_149(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_153(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_E_RABs_AdmittedToBeModified_SgNBModConf_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E_RABs_AdmittedToBeModified_SgNBModConf_ItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_AdmittedToBeModified_SgNBModConf_ItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_153(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_E_RABs_AdmittedToBeModified_SgNBModConf_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E_RABs_AdmittedToBeModified_SgNBModConf_ItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_AdmittedToBeModified_SgNBModConf_ItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_153(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_157(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_E_RABs_ToBeReleased_SgNBRelReq_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeReleased_SgNBRelReq_ItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeReleased_SgNBRelReq_ItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_157(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_E_RABs_ToBeReleased_SgNBRelReq_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeReleased_SgNBRelReq_ItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeReleased_SgNBRelReq_ItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_157(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_161(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_161(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_161(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_165(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_E_RABs_ToBeReleased_SgNBRelReqd_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeReleased_SgNBRelReqd_ItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeReleased_SgNBRelReqd_ItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_165(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_E_RABs_ToBeReleased_SgNBRelReqd_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeReleased_SgNBRelReqd_ItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeReleased_SgNBRelReqd_ItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_165(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_169(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_E_RABs_ToBeReleased_SgNBRelConf_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeReleased_SgNBRelConf_ItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeReleased_SgNBRelConf_ItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_169(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_E_RABs_ToBeReleased_SgNBRelConf_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeReleased_SgNBRelConf_ItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeReleased_SgNBRelConf_ItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_169(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_173(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_E_RABs_SubjectToSgNBCounterCheck_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E_RABs_SubjectToSgNBCounterCheck_ItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_SubjectToSgNBCounterCheck_ItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_173(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_E_RABs_SubjectToSgNBCounterCheck_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E_RABs_SubjectToSgNBCounterCheck_ItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_SubjectToSgNBCounterCheck_ItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_173(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_177(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_E_RABs_ToBeReleased_SgNBChaConf_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeReleased_SgNBChaConf_ItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeReleased_SgNBChaConf_ItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_177(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_E_RABs_ToBeReleased_SgNBChaConf_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E_RABs_ToBeReleased_SgNBChaConf_ItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeReleased_SgNBChaConf_ItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_177(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_181(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_E_RABs_DataForwardingAddress_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E_RABs_DataForwardingAddress_ItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_DataForwardingAddress_ItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_181(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_E_RABs_DataForwardingAddress_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E_RABs_DataForwardingAddress_ItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_DataForwardingAddress_ItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_181(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_185(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_RICsubscriptionRequest_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionRequest_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionRequest_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_185(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_RICsubscriptionRequest_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionRequest_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionRequest_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_185(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_189(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_RICsubscriptionResponse_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionResponse_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionResponse_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_189(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_RICsubscriptionResponse_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionResponse_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionResponse_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_189(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_193(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_RICsubscriptionFailure_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionFailure_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionFailure_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_193(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_RICsubscriptionFailure_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionFailure_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionFailure_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_193(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_197(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_RICsubscriptionDeleteRequest_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionDeleteRequest_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionDeleteRequest_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_197(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_RICsubscriptionDeleteRequest_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionDeleteRequest_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionDeleteRequest_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_197(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_201(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_RICsubscriptionDeleteResponse_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionDeleteResponse_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionDeleteResponse_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_201(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_RICsubscriptionDeleteResponse_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionDeleteResponse_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionDeleteResponse_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_201(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_205(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_RICsubscriptionDeleteFailure_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionDeleteFailure_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionDeleteFailure_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_205(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_RICsubscriptionDeleteFailure_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionDeleteFailure_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionDeleteFailure_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_205(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_209(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_RICindication_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICindication_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICindication_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_209(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_RICindication_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICindication_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICindication_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_209(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_213(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_RICcontrolRequest_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICcontrolRequest_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICcontrolRequest_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_213(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_RICcontrolRequest_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICcontrolRequest_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICcontrolRequest_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_213(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_217(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_RICcontrolAcknowledge_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICcontrolAcknowledge_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICcontrolAcknowledge_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_217(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_RICcontrolAcknowledge_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICcontrolAcknowledge_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICcontrolAcknowledge_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_217(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_221(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_RICcontrolFailure_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICcontrolFailure_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICcontrolFailure_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_221(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_RICcontrolFailure_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICcontrolFailure_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICcontrolFailure_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_221(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_225(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_RICserviceUpdate_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICserviceUpdate_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICserviceUpdate_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_225(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_RICserviceUpdate_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICserviceUpdate_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICserviceUpdate_IEs, id)); - static const int indexToPresent[] = { RICserviceUpdate_IEs__value_PR_NOTHING, - RICserviceUpdate_IEs__value_PR_RANfunctions_List, - RICserviceUpdate_IEs__value_PR_RANfunctions_List, - RICserviceUpdate_IEs__value_PR_RANfunctionsID_List - }; - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = indexToPresent[presence_index]; - break; - } - } - - return result; -} - -static int -memb_value_constraint_225(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_229(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_RICserviceUpdateAcknowledge_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICserviceUpdateAcknowledge_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICserviceUpdateAcknowledge_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_229(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_RICserviceUpdateAcknowledge_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICserviceUpdateAcknowledge_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICserviceUpdateAcknowledge_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_229(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_233(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_RICserviceUpdateFailure_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICserviceUpdateFailure_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICserviceUpdateFailure_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_233(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_RICserviceUpdateFailure_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICserviceUpdateFailure_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICserviceUpdateFailure_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_233(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_237(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_RICserviceQuery_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICserviceQuery_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICserviceQuery_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_237(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_RICserviceQuery_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICserviceQuery_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICserviceQuery_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_237(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_241(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_HandoverRequest_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_HandoverRequest_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct HandoverRequest_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_241(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_HandoverRequest_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_HandoverRequest_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct HandoverRequest_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_241(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_245(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_HandoverRequestAcknowledge_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_HandoverRequestAcknowledge_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct HandoverRequestAcknowledge_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_245(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_HandoverRequestAcknowledge_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_HandoverRequestAcknowledge_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct HandoverRequestAcknowledge_IEs, id)); - static const int indexToPresent[] = {HandoverRequestAcknowledge_IEs__value_PR_NOTHING, - HandoverRequestAcknowledge_IEs__value_PR_UE_X2AP_ID, - HandoverRequestAcknowledge_IEs__value_PR_UE_X2AP_ID, - HandoverRequestAcknowledge_IEs__value_PR_E_RABs_Admitted_List, - HandoverRequestAcknowledge_IEs__value_PR_E_RAB_List, - HandoverRequestAcknowledge_IEs__value_PR_TargeteNBtoSource_eNBTransparentContainer, - HandoverRequestAcknowledge_IEs__value_PR_CriticalityDiagnostics, - HandoverRequestAcknowledge_IEs__value_PR_UE_ContextKeptIndicator, - HandoverRequestAcknowledge_IEs__value_PR_UE_X2AP_ID_Extension, - HandoverRequestAcknowledge_IEs__value_PR_UE_X2AP_ID_Extension, - HandoverRequestAcknowledge_IEs__value_PR_UE_X2AP_ID_Extension, - HandoverRequestAcknowledge_IEs__value_PR_UE_ContextKeptIndicator - }; - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = indexToPresent[presence_index]; - break; - } - } - - return result; -} - -static int -memb_value_constraint_245(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_249(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_HandoverPreparationFailure_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_HandoverPreparationFailure_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct HandoverPreparationFailure_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_249(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_HandoverPreparationFailure_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_HandoverPreparationFailure_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct HandoverPreparationFailure_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_249(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_253(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_HandoverReport_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_HandoverReport_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct HandoverReport_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_253(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_HandoverReport_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_HandoverReport_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct HandoverReport_IEs, id)); - static const int indexToPresent[] = { HandoverReport_IEs__value_PR_NOTHING, - HandoverReport_IEs__value_PR_HandoverReportType, - HandoverReport_IEs__value_PR_Cause, - HandoverReport_IEs__value_PR_ECGI, - HandoverReport_IEs__value_PR_ECGI, - HandoverReport_IEs__value_PR_ECGI, - HandoverReport_IEs__value_PR_TargetCellInUTRAN, - HandoverReport_IEs__value_PR_CRNTI, - HandoverReport_IEs__value_PR_MobilityInformation, - HandoverReport_IEs__value_PR_UE_RLF_Report_Container, - HandoverReport_IEs__value_PR_UE_RLF_Report_Container_for_extended_bands - }; - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = indexToPresent[presence_index]; - break; - } - } - - return result; -} - -static int -memb_value_constraint_253(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_257(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_SNStatusTransfer_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_SNStatusTransfer_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SNStatusTransfer_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_257(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_SNStatusTransfer_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_SNStatusTransfer_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SNStatusTransfer_IEs, id)); -// EB Patch. - static const int indexToPresent[] = { SNStatusTransfer_IEs__value_PR_NOTHING, - SNStatusTransfer_IEs__value_PR_UE_X2AP_ID, - SNStatusTransfer_IEs__value_PR_UE_X2AP_ID, - SNStatusTransfer_IEs__value_PR_E_RABs_SubjectToStatusTransfer_List, - SNStatusTransfer_IEs__value_PR_UE_X2AP_ID_Extension, - SNStatusTransfer_IEs__value_PR_UE_X2AP_ID_Extension, - SNStatusTransfer_IEs__value_PR_SgNB_UE_X2AP_ID - }; - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = indexToPresent[presence_index]; - break; - } - } - - return result; -} - -static int -memb_value_constraint_257(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_261(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_UEContextRelease_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_UEContextRelease_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct UEContextRelease_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_261(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_UEContextRelease_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_UEContextRelease_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct UEContextRelease_IEs, id)); - static const int indexToPresent[] = { UEContextRelease_IEs__value_PR_NOTHING, - UEContextRelease_IEs__value_PR_UE_X2AP_ID, - UEContextRelease_IEs__value_PR_UE_X2AP_ID, - UEContextRelease_IEs__value_PR_UE_X2AP_ID_Extension, - UEContextRelease_IEs__value_PR_UE_X2AP_ID_Extension, - UEContextRelease_IEs__value_PR_SIPTOBearerDeactivationIndication, - UEContextRelease_IEs__value_PR_SgNB_UE_X2AP_ID - }; - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = indexToPresent[presence_index]; - break; - } - } - - return result; -} - -static int -memb_value_constraint_261(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_265(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_HandoverCancel_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_HandoverCancel_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct HandoverCancel_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_265(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_HandoverCancel_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_HandoverCancel_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct HandoverCancel_IEs, id)); - static const int indexToPresent[] = { HandoverCancel_IEs__value_PR_NOTHING, - HandoverCancel_IEs__value_PR_UE_X2AP_ID, - HandoverCancel_IEs__value_PR_UE_X2AP_ID, - HandoverCancel_IEs__value_PR_Cause, - HandoverCancel_IEs__value_PR_UE_X2AP_ID_Extension, - HandoverCancel_IEs__value_PR_UE_X2AP_ID_Extension - }; - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = indexToPresent[presence_index]; - break; - } - } - - return result; -} - -static int -memb_value_constraint_265(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_269(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_ErrorIndication_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_ErrorIndication_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ErrorIndication_IEs, id)); - - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_269(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_ErrorIndication_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_ErrorIndication_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ErrorIndication_IEs, id)); - static const int indexToPresent[] = {ErrorIndication_IEs__value_PR_NOTHING, - ErrorIndication_IEs__value_PR_UE_X2AP_ID, - ErrorIndication_IEs__value_PR_UE_X2AP_ID, - ErrorIndication_IEs__value_PR_Cause, - ErrorIndication_IEs__value_PR_CriticalityDiagnostics, - ErrorIndication_IEs__value_PR_UE_X2AP_ID_Extension, - ErrorIndication_IEs__value_PR_UE_X2AP_ID_Extension, - ErrorIndication_IEs__value_PR_SgNB_UE_X2AP_ID - }; - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = indexToPresent[presence_index]; - break; - } - } - - return result; -} - -static int -memb_value_constraint_269(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_273(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_ResetRequest_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_ResetRequest_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ResetRequest_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_273(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_ResetRequest_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_ResetRequest_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ResetRequest_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_273(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_277(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_ResetResponse_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_ResetResponse_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ResetResponse_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_277(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_ResetResponse_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_ResetResponse_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ResetResponse_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_277(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_281(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_X2SetupRequest_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_X2SetupRequest_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct X2SetupRequest_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_281(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_X2SetupRequest_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_X2SetupRequest_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct X2SetupRequest_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_281(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_285(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_X2SetupResponse_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_X2SetupResponse_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct X2SetupResponse_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_285(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_X2SetupResponse_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_X2SetupResponse_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct X2SetupResponse_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_285(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_289(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_X2SetupFailure_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_X2SetupFailure_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct X2SetupFailure_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_289(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_X2SetupFailure_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_X2SetupFailure_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct X2SetupFailure_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_289(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_293(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_LoadInformation_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_LoadInformation_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct LoadInformation_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_293(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_LoadInformation_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_LoadInformation_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct LoadInformation_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_293(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_297(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_ENBConfigurationUpdate_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_ENBConfigurationUpdate_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ENBConfigurationUpdate_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_297(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_ENBConfigurationUpdate_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_ENBConfigurationUpdate_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ENBConfigurationUpdate_IEs, id)); - static const int indexToPresent[] = {ENBConfigurationUpdate_IEs__value_PR_NOTHING, - ENBConfigurationUpdate_IEs__value_PR_ServedCells, - ENBConfigurationUpdate_IEs__value_PR_ServedCellsToModify, - ENBConfigurationUpdate_IEs__value_PR_Old_ECGIs, - ENBConfigurationUpdate_IEs__value_PR_GUGroupIDList, - ENBConfigurationUpdate_IEs__value_PR_GUGroupIDList, - ENBConfigurationUpdate_IEs__value_PR_CoverageModificationList - }; - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = indexToPresent[presence_index]; - break; - } - } - - return result; -} - -static int -memb_value_constraint_297(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_301(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_ENBConfigurationUpdateAcknowledge_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_ENBConfigurationUpdateAcknowledge_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ENBConfigurationUpdateAcknowledge_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_301(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_ENBConfigurationUpdateAcknowledge_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_ENBConfigurationUpdateAcknowledge_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ENBConfigurationUpdateAcknowledge_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_301(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_305(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_ENBConfigurationUpdateFailure_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_ENBConfigurationUpdateFailure_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ENBConfigurationUpdateFailure_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_305(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_ENBConfigurationUpdateFailure_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_ENBConfigurationUpdateFailure_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ENBConfigurationUpdateFailure_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_305(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_309(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_ResourceStatusRequest_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_ResourceStatusRequest_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ResourceStatusRequest_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_309(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_ResourceStatusRequest_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_ResourceStatusRequest_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ResourceStatusRequest_IEs, id)); - static const int indexToPresent[] = { ResourceStatusRequest_IEs__value_PR_NOTHING, - ResourceStatusRequest_IEs__value_PR_Measurement_ID, - ResourceStatusRequest_IEs__value_PR_Measurement_ID, - ResourceStatusRequest_IEs__value_PR_Registration_Request, - ResourceStatusRequest_IEs__value_PR_ReportCharacteristics, - ResourceStatusRequest_IEs__value_PR_CellToReport_List, - ResourceStatusRequest_IEs__value_PR_ReportingPeriodicity, - ResourceStatusRequest_IEs__value_PR_PartialSuccessIndicator, - ResourceStatusRequest_IEs__value_PR_ReportingPeriodicityRSRPMR, - ResourceStatusRequest_IEs__value_PR_ReportingPeriodicityCSIR - }; - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = indexToPresent[presence_index]; - break; - } - } - - return result; -} - -static int -memb_value_constraint_309(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_313(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_ResourceStatusResponse_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_ResourceStatusResponse_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ResourceStatusResponse_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_313(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_ResourceStatusResponse_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_ResourceStatusResponse_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ResourceStatusResponse_IEs, id)); - static const int indexToPresent[] = {ResourceStatusResponse_IEs__value_PR_NOTHING, - ResourceStatusResponse_IEs__value_PR_Measurement_ID, - ResourceStatusResponse_IEs__value_PR_Measurement_ID, - ResourceStatusResponse_IEs__value_PR_CriticalityDiagnostics, - ResourceStatusResponse_IEs__value_PR_MeasurementInitiationResult_List - }; - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = indexToPresent[presence_index]; - break; - } - } - - return result; -} - -static int -memb_value_constraint_313(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_317(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_ResourceStatusFailure_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_ResourceStatusFailure_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ResourceStatusFailure_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_317(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_ResourceStatusFailure_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_ResourceStatusFailure_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ResourceStatusFailure_IEs, id)); - - static const int indexToPresent[] = {ResourceStatusFailure_IEs__value_PR_NOTHING, - ResourceStatusFailure_IEs__value_PR_Measurement_ID, - ResourceStatusFailure_IEs__value_PR_Measurement_ID, - ResourceStatusFailure_IEs__value_PR_Cause, - ResourceStatusFailure_IEs__value_PR_CriticalityDiagnostics, - ResourceStatusFailure_IEs__value_PR_CompleteFailureCauseInformation_List - }; - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = indexToPresent[presence_index]; - break; - } - } - - return result; -} - -static int -memb_value_constraint_317(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_321(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_ResourceStatusUpdate_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_ResourceStatusUpdate_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ResourceStatusUpdate_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_321(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_ResourceStatusUpdate_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_ResourceStatusUpdate_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ResourceStatusUpdate_IEs, id)); - static const int indexToPresent[] = {ResourceStatusUpdate_IEs__value_PR_NOTHING, - ResourceStatusUpdate_IEs__value_PR_Measurement_ID, - ResourceStatusUpdate_IEs__value_PR_Measurement_ID, - ResourceStatusUpdate_IEs__value_PR_CellMeasurementResult_List - }; - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = indexToPresent[presence_index]; - break; - } - } - - return result; -} - -static int -memb_value_constraint_321(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_325(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_MobilityChangeRequest_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_MobilityChangeRequest_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct MobilityChangeRequest_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_325(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_MobilityChangeRequest_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_MobilityChangeRequest_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct MobilityChangeRequest_IEs, id)); - static const int indexToPresent[] = {MobilityChangeRequest_IEs__value_PR_NOTHING, - MobilityChangeRequest_IEs__value_PR_ECGI, - MobilityChangeRequest_IEs__value_PR_ECGI, - MobilityChangeRequest_IEs__value_PR_MobilityParametersInformation, - MobilityChangeRequest_IEs__value_PR_MobilityParametersInformation, - MobilityChangeRequest_IEs__value_PR_Cause - }; - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = indexToPresent[presence_index]; - break; - } - } - - return result; -} - -static int -memb_value_constraint_325(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_329(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_MobilityChangeAcknowledge_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_MobilityChangeAcknowledge_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct MobilityChangeAcknowledge_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_329(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_MobilityChangeAcknowledge_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_MobilityChangeAcknowledge_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct MobilityChangeAcknowledge_IEs, id)); - static const int indexToPresent[] = {MobilityChangeAcknowledge_IEs__value_PR_NOTHING, - MobilityChangeAcknowledge_IEs__value_PR_ECGI, - MobilityChangeAcknowledge_IEs__value_PR_ECGI, - MobilityChangeAcknowledge_IEs__value_PR_CriticalityDiagnostics - }; - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = indexToPresent[presence_index]; - break; - } - } - - return result; -} - -static int -memb_value_constraint_329(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_333(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_MobilityChangeFailure_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_MobilityChangeFailure_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct MobilityChangeFailure_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_333(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_MobilityChangeFailure_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_MobilityChangeFailure_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct MobilityChangeFailure_IEs, id)); - static const int indexToPresent[] = {MobilityChangeFailure_IEs__value_PR_NOTHING, - MobilityChangeFailure_IEs__value_PR_ECGI, - MobilityChangeFailure_IEs__value_PR_ECGI, - MobilityChangeFailure_IEs__value_PR_Cause, - MobilityChangeFailure_IEs__value_PR_MobilityParametersModificationRange, - MobilityChangeFailure_IEs__value_PR_CriticalityDiagnostics - }; - - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = indexToPresent[presence_index]; - - break; - } - } - - return result; -} - -static int -memb_value_constraint_333(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_337(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_RLFIndication_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RLFIndication_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RLFIndication_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_337(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_RLFIndication_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RLFIndication_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RLFIndication_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_337(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_341(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_CellActivationRequest_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_CellActivationRequest_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct CellActivationRequest_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_341(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_CellActivationRequest_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_CellActivationRequest_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct CellActivationRequest_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_341(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_345(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_CellActivationResponse_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_CellActivationResponse_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct CellActivationResponse_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_345(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_CellActivationResponse_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_CellActivationResponse_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct CellActivationResponse_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_345(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_349(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_CellActivationFailure_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_CellActivationFailure_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct CellActivationFailure_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_349(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_CellActivationFailure_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_CellActivationFailure_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct CellActivationFailure_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_349(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_353(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_X2Release_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_X2Release_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct X2Release_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_353(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_X2Release_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_X2Release_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct X2Release_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_353(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_357(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_X2APMessageTransfer_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_X2APMessageTransfer_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct X2APMessageTransfer_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_357(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_X2APMessageTransfer_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_X2APMessageTransfer_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct X2APMessageTransfer_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_357(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_361(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_SeNBAdditionRequest_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_SeNBAdditionRequest_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SeNBAdditionRequest_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_361(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_SeNBAdditionRequest_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_SeNBAdditionRequest_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SeNBAdditionRequest_IEs, id)); - static const int indexToPresent[] = {SeNBAdditionRequest_IEs__value_PR_NOTHING, - SeNBAdditionRequest_IEs__value_PR_UE_X2AP_ID, - SeNBAdditionRequest_IEs__value_PR_UESecurityCapabilities, - SeNBAdditionRequest_IEs__value_PR_SeNBSecurityKey, - SeNBAdditionRequest_IEs__value_PR_UEAggregateMaximumBitRate, - SeNBAdditionRequest_IEs__value_PR_PLMN_Identity, - SeNBAdditionRequest_IEs__value_PR_E_RABs_ToBeAdded_List, - SeNBAdditionRequest_IEs__value_PR_MeNBtoSeNBContainer, - SeNBAdditionRequest_IEs__value_PR_CSGMembershipStatus, - SeNBAdditionRequest_IEs__value_PR_UE_X2AP_ID, - SeNBAdditionRequest_IEs__value_PR_UE_X2AP_ID_Extension, - SeNBAdditionRequest_IEs__value_PR_ExpectedUEBehaviour, - SeNBAdditionRequest_IEs__value_PR_UE_X2AP_ID_Extension - }; - - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = indexToPresent[presence_index]; - break; - } - } - - return result; -} - -static int -memb_value_constraint_361(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_365(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_SeNBAdditionRequestAcknowledge_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_SeNBAdditionRequestAcknowledge_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SeNBAdditionRequestAcknowledge_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_365(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_SeNBAdditionRequestAcknowledge_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_SeNBAdditionRequestAcknowledge_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SeNBAdditionRequestAcknowledge_IEs, id)); - static const int indexToPresent[] = {SeNBAdditionRequestAcknowledge_IEs__value_PR_NOTHING, - SeNBAdditionRequestAcknowledge_IEs__value_PR_UE_X2AP_ID, - SeNBAdditionRequestAcknowledge_IEs__value_PR_UE_X2AP_ID, - SeNBAdditionRequestAcknowledge_IEs__value_PR_E_RABs_Admitted_ToBeAdded_List, - SeNBAdditionRequestAcknowledge_IEs__value_PR_E_RAB_List, - SeNBAdditionRequestAcknowledge_IEs__value_PR_SeNBtoMeNBContainer, - SeNBAdditionRequestAcknowledge_IEs__value_PR_CriticalityDiagnostics, - SeNBAdditionRequestAcknowledge_IEs__value_PR_TransportLayerAddress, - SeNBAdditionRequestAcknowledge_IEs__value_PR_TransportLayerAddress, - SeNBAdditionRequestAcknowledge_IEs__value_PR_UE_X2AP_ID_Extension, - SeNBAdditionRequestAcknowledge_IEs__value_PR_UE_X2AP_ID_Extension, - SeNBAdditionRequestAcknowledge_IEs__value_PR_TunnelInformation - }; - - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = indexToPresent[presence_index]; - - break; - } - } - - return result; -} - -static int -memb_value_constraint_365(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_369(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_SeNBAdditionRequestReject_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_SeNBAdditionRequestReject_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SeNBAdditionRequestReject_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_369(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_SeNBAdditionRequestReject_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_SeNBAdditionRequestReject_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SeNBAdditionRequestReject_IEs, id)); - static const int indexToPresent[] = {SeNBAdditionRequestReject_IEs__value_PR_NOTHING, - SeNBAdditionRequestReject_IEs__value_PR_UE_X2AP_ID, - SeNBAdditionRequestReject_IEs__value_PR_UE_X2AP_ID, - SeNBAdditionRequestReject_IEs__value_PR_Cause, - SeNBAdditionRequestReject_IEs__value_PR_CriticalityDiagnostics, - SeNBAdditionRequestReject_IEs__value_PR_UE_X2AP_ID_Extension, - SeNBAdditionRequestReject_IEs__value_PR_UE_X2AP_ID_Extension - }; - - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = indexToPresent[presence_index]; - break; - } - } - - return result; -} - -static int -memb_value_constraint_369(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_373(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_SeNBReconfigurationComplete_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_SeNBReconfigurationComplete_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SeNBReconfigurationComplete_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_373(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_SeNBReconfigurationComplete_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_SeNBReconfigurationComplete_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SeNBReconfigurationComplete_IEs, id)); - static const int indexToPresent[] = {SeNBReconfigurationComplete_IEs__value_PR_NOTHING, - SeNBReconfigurationComplete_IEs__value_PR_UE_X2AP_ID, - SeNBReconfigurationComplete_IEs__value_PR_UE_X2AP_ID, - SeNBReconfigurationComplete_IEs__value_PR_ResponseInformationSeNBReconfComp, - SeNBReconfigurationComplete_IEs__value_PR_UE_X2AP_ID_Extension, - SeNBReconfigurationComplete_IEs__value_PR_UE_X2AP_ID_Extension - }; - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = indexToPresent[presence_index]; - break; - } - } - - return result; -} - -static int -memb_value_constraint_373(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_377(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_SeNBModificationRequest_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_SeNBModificationRequest_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SeNBModificationRequest_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_377(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_SeNBModificationRequest_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_SeNBModificationRequest_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SeNBModificationRequest_IEs, id)); - static const int indexToPresent[] = {SeNBModificationRequest_IEs__value_PR_NOTHING, - SeNBModificationRequest_IEs__value_PR_UE_X2AP_ID, - SeNBModificationRequest_IEs__value_PR_UE_X2AP_ID, - SeNBModificationRequest_IEs__value_PR_Cause, - SeNBModificationRequest_IEs__value_PR_SCGChangeIndication, - SeNBModificationRequest_IEs__value_PR_PLMN_Identity, - SeNBModificationRequest_IEs__value_PR_UE_ContextInformationSeNBModReq, - SeNBModificationRequest_IEs__value_PR_MeNBtoSeNBContainer, - SeNBModificationRequest_IEs__value_PR_CSGMembershipStatus, - SeNBModificationRequest_IEs__value_PR_UE_X2AP_ID_Extension, - SeNBModificationRequest_IEs__value_PR_UE_X2AP_ID_Extension - }; - - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = indexToPresent[presence_index]; - break; - } - } - - return result; -} - -static int -memb_value_constraint_377(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_381(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_SeNBModificationRequestAcknowledge_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_SeNBModificationRequestAcknowledge_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SeNBModificationRequestAcknowledge_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_381(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_SeNBModificationRequestAcknowledge_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_SeNBModificationRequestAcknowledge_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SeNBModificationRequestAcknowledge_IEs, id)); - static const int indexToPresent[] = {SeNBModificationRequestAcknowledge_IEs__value_PR_NOTHING, - SeNBModificationRequestAcknowledge_IEs__value_PR_UE_X2AP_ID, - SeNBModificationRequestAcknowledge_IEs__value_PR_UE_X2AP_ID, - SeNBModificationRequestAcknowledge_IEs__value_PR_E_RABs_Admitted_ToBeAdded_ModAckList, - SeNBModificationRequestAcknowledge_IEs__value_PR_E_RABs_Admitted_ToBeModified_ModAckList, - SeNBModificationRequestAcknowledge_IEs__value_PR_E_RABs_Admitted_ToBeReleased_ModAckList, - SeNBModificationRequestAcknowledge_IEs__value_PR_E_RAB_List, - SeNBModificationRequestAcknowledge_IEs__value_PR_SeNBtoMeNBContainer, - SeNBModificationRequestAcknowledge_IEs__value_PR_CriticalityDiagnostics, - SeNBModificationRequestAcknowledge_IEs__value_PR_UE_X2AP_ID_Extension, - SeNBModificationRequestAcknowledge_IEs__value_PR_UE_X2AP_ID_Extension - }; - - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = indexToPresent[presence_index]; - break; - } - } - - return result; -} - -static int -memb_value_constraint_381(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_385(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_SeNBModificationRequestReject_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_SeNBModificationRequestReject_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SeNBModificationRequestReject_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_385(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_SeNBModificationRequestReject_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_SeNBModificationRequestReject_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SeNBModificationRequestReject_IEs, id)); - static const int indexToPresent[] = {SeNBModificationRequestReject_IEs__value_PR_NOTHING, - SeNBModificationRequestReject_IEs__value_PR_UE_X2AP_ID, - SeNBModificationRequestReject_IEs__value_PR_UE_X2AP_ID, - SeNBModificationRequestReject_IEs__value_PR_Cause, - SeNBModificationRequestReject_IEs__value_PR_CriticalityDiagnostics, - SeNBModificationRequestReject_IEs__value_PR_UE_X2AP_ID_Extension, - SeNBModificationRequestReject_IEs__value_PR_UE_X2AP_ID_Extension - }; - - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = indexToPresent[presence_index]; - break; - } - } - - return result; -} - -static int -memb_value_constraint_385(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_389(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_SeNBModificationRequired_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_SeNBModificationRequired_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SeNBModificationRequired_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_389(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_SeNBModificationRequired_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_SeNBModificationRequired_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SeNBModificationRequired_IEs, id)); - static const int indexToPresent[] = {SeNBModificationRequired_IEs__value_PR_NOTHING, - SeNBModificationRequired_IEs__value_PR_UE_X2AP_ID, - SeNBModificationRequired_IEs__value_PR_UE_X2AP_ID, - SeNBModificationRequired_IEs__value_PR_Cause, - SeNBModificationRequired_IEs__value_PR_SCGChangeIndication, - SeNBModificationRequired_IEs__value_PR_E_RABs_ToBeReleased_ModReqd, - SeNBModificationRequired_IEs__value_PR_SeNBtoMeNBContainer, - SeNBModificationRequired_IEs__value_PR_UE_X2AP_ID_Extension, - SeNBModificationRequired_IEs__value_PR_UE_X2AP_ID_Extension - }; - - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = indexToPresent[presence_index]; - break; - } - } - - return result; -} - -static int -memb_value_constraint_389(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_393(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_SeNBModificationConfirm_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_SeNBModificationConfirm_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SeNBModificationConfirm_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_393(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_SeNBModificationConfirm_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_SeNBModificationConfirm_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SeNBModificationConfirm_IEs, id)); - static const int indexToPresent[] = {SeNBModificationConfirm_IEs__value_PR_NOTHING, - SeNBModificationConfirm_IEs__value_PR_UE_X2AP_ID, - SeNBModificationConfirm_IEs__value_PR_UE_X2AP_ID, - SeNBModificationConfirm_IEs__value_PR_MeNBtoSeNBContainer, - SeNBModificationConfirm_IEs__value_PR_CriticalityDiagnostics, - SeNBModificationConfirm_IEs__value_PR_UE_X2AP_ID_Extension, - SeNBModificationConfirm_IEs__value_PR_UE_X2AP_ID_Extension - }; - - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = indexToPresent[presence_index]; - break; - } - } - - return result; -} - -static int -memb_value_constraint_393(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_397(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_SeNBModificationRefuse_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_SeNBModificationRefuse_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SeNBModificationRefuse_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_397(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_SeNBModificationRefuse_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_SeNBModificationRefuse_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SeNBModificationRefuse_IEs, id)); - static const int indexToPresent[] = {SeNBModificationRefuse_IEs__value_PR_NOTHING, - SeNBModificationRefuse_IEs__value_PR_UE_X2AP_ID, - SeNBModificationRefuse_IEs__value_PR_UE_X2AP_ID, - SeNBModificationRefuse_IEs__value_PR_Cause, - SeNBModificationRefuse_IEs__value_PR_MeNBtoSeNBContainer, - SeNBModificationRefuse_IEs__value_PR_CriticalityDiagnostics, - SeNBModificationRefuse_IEs__value_PR_UE_X2AP_ID_Extension, - SeNBModificationRefuse_IEs__value_PR_UE_X2AP_ID_Extension - }; - - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = indexToPresent[presence_index]; - break; - } - } - - return result; -} - -static int -memb_value_constraint_397(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_401(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_SeNBReleaseRequest_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_SeNBReleaseRequest_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SeNBReleaseRequest_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_401(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_SeNBReleaseRequest_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_SeNBReleaseRequest_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SeNBReleaseRequest_IEs, id)); - static const int indexToPresent[] = {SeNBReleaseRequest_IEs__value_PR_NOTHING, - SeNBReleaseRequest_IEs__value_PR_UE_X2AP_ID, - SeNBReleaseRequest_IEs__value_PR_UE_X2AP_ID, - SeNBReleaseRequest_IEs__value_PR_Cause, - SeNBReleaseRequest_IEs__value_PR_E_RABs_ToBeReleased_List_RelReq, - SeNBReleaseRequest_IEs__value_PR_UE_ContextKeptIndicator, - SeNBReleaseRequest_IEs__value_PR_UE_X2AP_ID_Extension, - SeNBReleaseRequest_IEs__value_PR_UE_X2AP_ID_Extension, - SeNBReleaseRequest_IEs__value_PR_MakeBeforeBreakIndicator - }; - - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = indexToPresent[presence_index]; - break; - } - } - - return result; -} - -static int -memb_value_constraint_401(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_405(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_SeNBReleaseRequired_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_SeNBReleaseRequired_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SeNBReleaseRequired_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_405(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_SeNBReleaseRequired_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_SeNBReleaseRequired_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SeNBReleaseRequired_IEs, id)); - static const int indexToPresent[] = {SeNBReleaseRequired_IEs__value_PR_NOTHING, - SeNBReleaseRequired_IEs__value_PR_UE_X2AP_ID, - SeNBReleaseRequired_IEs__value_PR_UE_X2AP_ID, - SeNBReleaseRequired_IEs__value_PR_Cause, - SeNBReleaseRequired_IEs__value_PR_UE_X2AP_ID_Extension, - SeNBReleaseRequired_IEs__value_PR_UE_X2AP_ID_Extension - }; - - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = indexToPresent[presence_index]; - break; - } - } - - return result; -} - -static int -memb_value_constraint_405(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_409(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_SeNBReleaseConfirm_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_SeNBReleaseConfirm_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SeNBReleaseConfirm_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_409(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_SeNBReleaseConfirm_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_SeNBReleaseConfirm_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SeNBReleaseConfirm_IEs, id)); - static const int indexToPresent[] = {SeNBReleaseConfirm_IEs__value_PR_NOTHING, - SeNBReleaseConfirm_IEs__value_PR_UE_X2AP_ID, - SeNBReleaseConfirm_IEs__value_PR_UE_X2AP_ID, - SeNBReleaseConfirm_IEs__value_PR_E_RABs_ToBeReleased_List_RelConf, - SeNBReleaseConfirm_IEs__value_PR_CriticalityDiagnostics, - SeNBReleaseConfirm_IEs__value_PR_UE_X2AP_ID_Extension, - SeNBReleaseConfirm_IEs__value_PR_UE_X2AP_ID_Extension - }; - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = indexToPresent[presence_index]; - break; - } - } - - return result; -} - -static int -memb_value_constraint_409(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_413(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_SeNBCounterCheckRequest_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_SeNBCounterCheckRequest_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SeNBCounterCheckRequest_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_413(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_SeNBCounterCheckRequest_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_SeNBCounterCheckRequest_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SeNBCounterCheckRequest_IEs, id)); - static const int indexToPresent[] = {SeNBCounterCheckRequest_IEs__value_PR_NOTHING, - SeNBCounterCheckRequest_IEs__value_PR_UE_X2AP_ID, - SeNBCounterCheckRequest_IEs__value_PR_UE_X2AP_ID, - SeNBCounterCheckRequest_IEs__value_PR_E_RABs_SubjectToCounterCheck_List, - SeNBCounterCheckRequest_IEs__value_PR_UE_X2AP_ID_Extension, - SeNBCounterCheckRequest_IEs__value_PR_UE_X2AP_ID_Extension - }; - - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = indexToPresent[presence_index]; - break; - } - } - - return result; -} - -static int -memb_value_constraint_413(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_417(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_X2RemovalRequest_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_X2RemovalRequest_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct X2RemovalRequest_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_417(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_X2RemovalRequest_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_X2RemovalRequest_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct X2RemovalRequest_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_417(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_421(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_X2RemovalResponse_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_X2RemovalResponse_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct X2RemovalResponse_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_421(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_X2RemovalResponse_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_X2RemovalResponse_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct X2RemovalResponse_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_421(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_425(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_X2RemovalFailure_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_X2RemovalFailure_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct X2RemovalFailure_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_425(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_X2RemovalFailure_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_X2RemovalFailure_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct X2RemovalFailure_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_425(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_429(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_RetrieveUEContextRequest_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RetrieveUEContextRequest_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RetrieveUEContextRequest_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_429(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_RetrieveUEContextRequest_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RetrieveUEContextRequest_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RetrieveUEContextRequest_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_429(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_433(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_RetrieveUEContextResponse_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RetrieveUEContextResponse_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RetrieveUEContextResponse_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_433(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_RetrieveUEContextResponse_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RetrieveUEContextResponse_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RetrieveUEContextResponse_IEs, id)); - static const int indexToPresent[] = {RetrieveUEContextResponse_IEs__value_PR_NOTHING, - RetrieveUEContextResponse_IEs__value_PR_UE_X2AP_ID, - RetrieveUEContextResponse_IEs__value_PR_UE_X2AP_ID_Extension, - RetrieveUEContextResponse_IEs__value_PR_UE_X2AP_ID, - RetrieveUEContextResponse_IEs__value_PR_UE_X2AP_ID_Extension, - RetrieveUEContextResponse_IEs__value_PR_GUMMEI, - RetrieveUEContextResponse_IEs__value_PR_UE_ContextInformationRetrieve, - RetrieveUEContextResponse_IEs__value_PR_TraceActivation, - RetrieveUEContextResponse_IEs__value_PR_SRVCCOperationPossible, - RetrieveUEContextResponse_IEs__value_PR_Masked_IMEISV, - RetrieveUEContextResponse_IEs__value_PR_ExpectedUEBehaviour, - RetrieveUEContextResponse_IEs__value_PR_ProSeAuthorized, - RetrieveUEContextResponse_IEs__value_PR_CriticalityDiagnostics, - RetrieveUEContextResponse_IEs__value_PR_V2XServicesAuthorized, - RetrieveUEContextResponse_IEs__value_PR_AerialUEsubscriptionInformation, - RetrieveUEContextResponse_IEs__value_PR_Subscription_Based_UE_DifferentiationInfo - }; - - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = indexToPresent[presence_index]; - break; - } - } - - return result; -} - -static int -memb_value_constraint_433(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_437(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_RetrieveUEContextFailure_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RetrieveUEContextFailure_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RetrieveUEContextFailure_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_437(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_RetrieveUEContextFailure_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RetrieveUEContextFailure_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RetrieveUEContextFailure_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_437(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_441(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_SgNBAdditionRequest_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_SgNBAdditionRequest_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SgNBAdditionRequest_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_441(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_SgNBAdditionRequest_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_SgNBAdditionRequest_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SgNBAdditionRequest_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_441(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_445(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_SgNBAdditionRequestAcknowledge_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_SgNBAdditionRequestAcknowledge_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SgNBAdditionRequestAcknowledge_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_445(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_SgNBAdditionRequestAcknowledge_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_SgNBAdditionRequestAcknowledge_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SgNBAdditionRequestAcknowledge_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_445(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_449(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_SgNBAdditionRequestReject_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_SgNBAdditionRequestReject_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SgNBAdditionRequestReject_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_449(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_SgNBAdditionRequestReject_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_SgNBAdditionRequestReject_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SgNBAdditionRequestReject_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_449(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_453(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_SgNBReconfigurationComplete_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_SgNBReconfigurationComplete_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SgNBReconfigurationComplete_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_453(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_SgNBReconfigurationComplete_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_SgNBReconfigurationComplete_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SgNBReconfigurationComplete_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_453(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_457(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_SgNBModificationRequest_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_SgNBModificationRequest_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SgNBModificationRequest_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_457(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_SgNBModificationRequest_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_SgNBModificationRequest_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SgNBModificationRequest_IEs, id)); - static const int indexToPresent[] = {SgNBModificationRequest_IEs__value_PR_NOTHING, - SgNBModificationRequest_IEs__value_PR_UE_X2AP_ID, - SgNBModificationRequest_IEs__value_PR_SgNB_UE_X2AP_ID, - SgNBModificationRequest_IEs__value_PR_Cause, - SgNBModificationRequest_IEs__value_PR_PLMN_Identity, - SgNBModificationRequest_IEs__value_PR_HandoverRestrictionList, - SgNBModificationRequest_IEs__value_PR_SCGConfigurationQuery, - SgNBModificationRequest_IEs__value_PR_UE_ContextInformation_SgNBModReq, - SgNBModificationRequest_IEs__value_PR_MeNBtoSgNBContainer, - SgNBModificationRequest_IEs__value_PR_UE_X2AP_ID_Extension, - SgNBModificationRequest_IEs__value_PR_MeNBResourceCoordinationInformation, - SgNBModificationRequest_IEs__value_PR_SplitSRBs, - SgNBModificationRequest_IEs__value_PR_SplitSRBs - }; - - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = indexToPresent[presence_index]; - break; - } - } - - return result; -} - -static int -memb_value_constraint_457(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_461(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_SgNBModificationRequestAcknowledge_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_SgNBModificationRequestAcknowledge_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SgNBModificationRequestAcknowledge_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_461(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_SgNBModificationRequestAcknowledge_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_SgNBModificationRequestAcknowledge_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SgNBModificationRequestAcknowledge_IEs, id)); - static const int indexToPresent[] = {SgNBModificationRequestAcknowledge_IEs__value_PR_NOTHING, - SgNBModificationRequestAcknowledge_IEs__value_PR_UE_X2AP_ID, - SgNBModificationRequestAcknowledge_IEs__value_PR_SgNB_UE_X2AP_ID, - SgNBModificationRequestAcknowledge_IEs__value_PR_E_RABs_Admitted_ToBeAdded_SgNBModAckList, - SgNBModificationRequestAcknowledge_IEs__value_PR_E_RABs_Admitted_ToBeModified_SgNBModAckList, - SgNBModificationRequestAcknowledge_IEs__value_PR_E_RABs_Admitted_ToBeReleased_SgNBModAckList, - SgNBModificationRequestAcknowledge_IEs__value_PR_E_RAB_List, - SgNBModificationRequestAcknowledge_IEs__value_PR_SgNBtoMeNBContainer, - SgNBModificationRequestAcknowledge_IEs__value_PR_CriticalityDiagnostics, - SgNBModificationRequestAcknowledge_IEs__value_PR_UE_X2AP_ID_Extension, - SgNBModificationRequestAcknowledge_IEs__value_PR_SgNBResourceCoordinationInformation, - SgNBModificationRequestAcknowledge_IEs__value_PR_SplitSRBs, - SgNBModificationRequestAcknowledge_IEs__value_PR_SplitSRBs, - SgNBModificationRequestAcknowledge_IEs__value_PR_RRC_Config_Ind - }; - - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = indexToPresent[presence_index]; - break; - } - } - - return result; -} - -static int -memb_value_constraint_461(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_465(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_SgNBModificationRequestReject_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_SgNBModificationRequestReject_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SgNBModificationRequestReject_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_465(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_SgNBModificationRequestReject_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_SgNBModificationRequestReject_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SgNBModificationRequestReject_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_465(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_469(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_SgNBModificationRequired_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_SgNBModificationRequired_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SgNBModificationRequired_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_469(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_SgNBModificationRequired_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_SgNBModificationRequired_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SgNBModificationRequired_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_469(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_473(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_SgNBModificationConfirm_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_SgNBModificationConfirm_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SgNBModificationConfirm_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_473(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_SgNBModificationConfirm_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_SgNBModificationConfirm_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SgNBModificationConfirm_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_473(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_477(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_SgNBModificationRefuse_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_SgNBModificationRefuse_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SgNBModificationRefuse_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_477(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_SgNBModificationRefuse_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_SgNBModificationRefuse_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SgNBModificationRefuse_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_477(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_481(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_SgNBReleaseRequest_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_SgNBReleaseRequest_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SgNBReleaseRequest_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_481(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_SgNBReleaseRequest_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_SgNBReleaseRequest_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SgNBReleaseRequest_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_481(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_485(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_SgNBReleaseRequestAcknowledge_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_SgNBReleaseRequestAcknowledge_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SgNBReleaseRequestAcknowledge_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_485(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_SgNBReleaseRequestAcknowledge_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_SgNBReleaseRequestAcknowledge_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SgNBReleaseRequestAcknowledge_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_485(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_489(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_SgNBReleaseRequestReject_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_SgNBReleaseRequestReject_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SgNBReleaseRequestReject_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_489(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_SgNBReleaseRequestReject_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_SgNBReleaseRequestReject_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SgNBReleaseRequestReject_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_489(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_493(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_SgNBReleaseRequired_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_SgNBReleaseRequired_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SgNBReleaseRequired_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_493(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_SgNBReleaseRequired_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_SgNBReleaseRequired_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SgNBReleaseRequired_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_493(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_497(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_SgNBReleaseConfirm_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_SgNBReleaseConfirm_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SgNBReleaseConfirm_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_497(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_SgNBReleaseConfirm_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_SgNBReleaseConfirm_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SgNBReleaseConfirm_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_497(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_501(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_SgNBCounterCheckRequest_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_SgNBCounterCheckRequest_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SgNBCounterCheckRequest_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_501(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_SgNBCounterCheckRequest_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_SgNBCounterCheckRequest_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SgNBCounterCheckRequest_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_501(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_505(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_SgNBChangeRequired_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_SgNBChangeRequired_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SgNBChangeRequired_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_505(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_SgNBChangeRequired_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_SgNBChangeRequired_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SgNBChangeRequired_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_505(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_509(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_SgNBChangeConfirm_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_SgNBChangeConfirm_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SgNBChangeConfirm_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_509(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_SgNBChangeConfirm_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_SgNBChangeConfirm_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SgNBChangeConfirm_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_509(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_513(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_RRCTransfer_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RRCTransfer_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RRCTransfer_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_513(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_RRCTransfer_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RRCTransfer_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RRCTransfer_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_513(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_517(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_SgNBChangeRefuse_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_SgNBChangeRefuse_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SgNBChangeRefuse_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_517(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_SgNBChangeRefuse_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_SgNBChangeRefuse_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SgNBChangeRefuse_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_517(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_521(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_ENDCX2SetupRequest_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_ENDCX2SetupRequest_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ENDCX2SetupRequest_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_521(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_ENDCX2SetupRequest_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_ENDCX2SetupRequest_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ENDCX2SetupRequest_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_521(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_525(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_ENB_ENDCX2SetupReqIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_ENB_ENDCX2SetupReqIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ENB_ENDCX2SetupReqIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_525(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_ENB_ENDCX2SetupReqIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_ENB_ENDCX2SetupReqIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ENB_ENDCX2SetupReqIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_525(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_529(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_En_gNB_ENDCX2SetupReqIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_En_gNB_ENDCX2SetupReqIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct En_gNB_ENDCX2SetupReqIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_529(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_En_gNB_ENDCX2SetupReqIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_En_gNB_ENDCX2SetupReqIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct En_gNB_ENDCX2SetupReqIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_529(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_533(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_ENDCX2SetupResponse_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_ENDCX2SetupResponse_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ENDCX2SetupResponse_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_533(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_ENDCX2SetupResponse_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_ENDCX2SetupResponse_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ENDCX2SetupResponse_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_533(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_537(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_ENB_ENDCX2SetupReqAckIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_ENB_ENDCX2SetupReqAckIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ENB_ENDCX2SetupReqAckIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_537(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_ENB_ENDCX2SetupReqAckIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_ENB_ENDCX2SetupReqAckIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ENB_ENDCX2SetupReqAckIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_537(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_541(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_En_gNB_ENDCX2SetupReqAckIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_En_gNB_ENDCX2SetupReqAckIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct En_gNB_ENDCX2SetupReqAckIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_541(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_En_gNB_ENDCX2SetupReqAckIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_En_gNB_ENDCX2SetupReqAckIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct En_gNB_ENDCX2SetupReqAckIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_541(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_545(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_ENDCX2SetupFailure_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_ENDCX2SetupFailure_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ENDCX2SetupFailure_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_545(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_ENDCX2SetupFailure_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_ENDCX2SetupFailure_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ENDCX2SetupFailure_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_545(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_549(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_ENDCConfigurationUpdate_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_ENDCConfigurationUpdate_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ENDCConfigurationUpdate_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_549(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_ENDCConfigurationUpdate_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_ENDCConfigurationUpdate_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ENDCConfigurationUpdate_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_549(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_553(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_ENB_ENDCConfigUpdateIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_ENB_ENDCConfigUpdateIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ENB_ENDCConfigUpdateIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_553(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_ENB_ENDCConfigUpdateIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_ENB_ENDCConfigUpdateIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ENB_ENDCConfigUpdateIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_553(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_557(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_En_gNB_ENDCConfigUpdateIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_En_gNB_ENDCConfigUpdateIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct En_gNB_ENDCConfigUpdateIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_557(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_En_gNB_ENDCConfigUpdateIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_En_gNB_ENDCConfigUpdateIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct En_gNB_ENDCConfigUpdateIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_557(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_561(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_ENDCConfigurationUpdateAcknowledge_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_ENDCConfigurationUpdateAcknowledge_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ENDCConfigurationUpdateAcknowledge_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_561(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_ENDCConfigurationUpdateAcknowledge_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_ENDCConfigurationUpdateAcknowledge_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ENDCConfigurationUpdateAcknowledge_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_561(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_565(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_criticality_constraint_565(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_value_constraint_565(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_569(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_En_gNB_ENDCConfigUpdateAckIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_En_gNB_ENDCConfigUpdateAckIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct En_gNB_ENDCConfigUpdateAckIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_569(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_En_gNB_ENDCConfigUpdateAckIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_En_gNB_ENDCConfigUpdateAckIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct En_gNB_ENDCConfigUpdateAckIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_569(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_573(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_ENDCConfigurationUpdateFailure_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_ENDCConfigurationUpdateFailure_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ENDCConfigurationUpdateFailure_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_573(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_ENDCConfigurationUpdateFailure_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_ENDCConfigurationUpdateFailure_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ENDCConfigurationUpdateFailure_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_573(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_577(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_ENDCCellActivationRequest_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_ENDCCellActivationRequest_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ENDCCellActivationRequest_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_577(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_ENDCCellActivationRequest_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_ENDCCellActivationRequest_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ENDCCellActivationRequest_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_577(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_581(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_ENDCCellActivationResponse_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_ENDCCellActivationResponse_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ENDCCellActivationResponse_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_581(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_ENDCCellActivationResponse_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_ENDCCellActivationResponse_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ENDCCellActivationResponse_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_581(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_585(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_ENDCCellActivationFailure_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_ENDCCellActivationFailure_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ENDCCellActivationFailure_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_585(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_ENDCCellActivationFailure_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_ENDCCellActivationFailure_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ENDCCellActivationFailure_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_585(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_589(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_SecondaryRATDataUsageReport_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_SecondaryRATDataUsageReport_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SecondaryRATDataUsageReport_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_589(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_SecondaryRATDataUsageReport_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_SecondaryRATDataUsageReport_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SecondaryRATDataUsageReport_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_589(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_593(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_SgNBActivityNotification_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_SgNBActivityNotification_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SgNBActivityNotification_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_593(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_SgNBActivityNotification_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_SgNBActivityNotification_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SgNBActivityNotification_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_593(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_597(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_ENDCPartialResetRequired_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_ENDCPartialResetRequired_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ENDCPartialResetRequired_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_597(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_ENDCPartialResetRequired_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_ENDCPartialResetRequired_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ENDCPartialResetRequired_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_597(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_601(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_ENDCPartialResetConfirm_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_ENDCPartialResetConfirm_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ENDCPartialResetConfirm_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_601(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_ENDCPartialResetConfirm_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_ENDCPartialResetConfirm_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ENDCPartialResetConfirm_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_601(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_605(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_EUTRANRCellResourceCoordinationRequest_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_EUTRANRCellResourceCoordinationRequest_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct EUTRANRCellResourceCoordinationRequest_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_605(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_EUTRANRCellResourceCoordinationRequest_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_EUTRANRCellResourceCoordinationRequest_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct EUTRANRCellResourceCoordinationRequest_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_605(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_609(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_ENB_EUTRA_NRCellResourceCoordinationReqIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_ENB_EUTRA_NRCellResourceCoordinationReqIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ENB_EUTRA_NRCellResourceCoordinationReqIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_609(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_ENB_EUTRA_NRCellResourceCoordinationReqIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_ENB_EUTRA_NRCellResourceCoordinationReqIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ENB_EUTRA_NRCellResourceCoordinationReqIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_609(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_613(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_En_gNB_EUTRA_NRCellResourceCoordinationReqIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_En_gNB_EUTRA_NRCellResourceCoordinationReqIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct En_gNB_EUTRA_NRCellResourceCoordinationReqIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_613(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_En_gNB_EUTRA_NRCellResourceCoordinationReqIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_En_gNB_EUTRA_NRCellResourceCoordinationReqIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct En_gNB_EUTRA_NRCellResourceCoordinationReqIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_613(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_617(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_EUTRANRCellResourceCoordinationResponse_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_EUTRANRCellResourceCoordinationResponse_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct EUTRANRCellResourceCoordinationResponse_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_617(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_EUTRANRCellResourceCoordinationResponse_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_EUTRANRCellResourceCoordinationResponse_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct EUTRANRCellResourceCoordinationResponse_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_617(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_621(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_ENB_EUTRA_NRCellResourceCoordinationReqAckIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_ENB_EUTRA_NRCellResourceCoordinationReqAckIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ENB_EUTRA_NRCellResourceCoordinationReqAckIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_621(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_ENB_EUTRA_NRCellResourceCoordinationReqAckIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_ENB_EUTRA_NRCellResourceCoordinationReqAckIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ENB_EUTRA_NRCellResourceCoordinationReqAckIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_621(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_625(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_En_gNB_EUTRA_NRCellResourceCoordinationReqAckIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_En_gNB_EUTRA_NRCellResourceCoordinationReqAckIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct En_gNB_EUTRA_NRCellResourceCoordinationReqAckIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_625(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_En_gNB_EUTRA_NRCellResourceCoordinationReqAckIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_En_gNB_EUTRA_NRCellResourceCoordinationReqAckIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct En_gNB_EUTRA_NRCellResourceCoordinationReqAckIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_625(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_629(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_ENDCX2RemovalRequest_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_ENDCX2RemovalRequest_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ENDCX2RemovalRequest_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_629(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_ENDCX2RemovalRequest_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_ENDCX2RemovalRequest_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ENDCX2RemovalRequest_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_629(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_633(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_ENB_ENDCX2RemovalReqIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_ENB_ENDCX2RemovalReqIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ENB_ENDCX2RemovalReqIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_633(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_ENB_ENDCX2RemovalReqIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_ENB_ENDCX2RemovalReqIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ENB_ENDCX2RemovalReqIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_633(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_637(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_En_gNB_ENDCX2RemovalReqIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_En_gNB_ENDCX2RemovalReqIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct En_gNB_ENDCX2RemovalReqIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_637(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_En_gNB_ENDCX2RemovalReqIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_En_gNB_ENDCX2RemovalReqIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct En_gNB_ENDCX2RemovalReqIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_637(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_641(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_ENDCX2RemovalResponse_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_ENDCX2RemovalResponse_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ENDCX2RemovalResponse_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_641(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_ENDCX2RemovalResponse_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_ENDCX2RemovalResponse_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ENDCX2RemovalResponse_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_641(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_645(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_ENB_ENDCX2RemovalReqAckIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_ENB_ENDCX2RemovalReqAckIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ENB_ENDCX2RemovalReqAckIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_645(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_ENB_ENDCX2RemovalReqAckIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_ENB_ENDCX2RemovalReqAckIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ENB_ENDCX2RemovalReqAckIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_645(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_649(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_En_gNB_ENDCX2RemovalReqAckIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_En_gNB_ENDCX2RemovalReqAckIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct En_gNB_ENDCX2RemovalReqAckIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_649(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_En_gNB_ENDCX2RemovalReqAckIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_En_gNB_ENDCX2RemovalReqAckIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct En_gNB_ENDCX2RemovalReqAckIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_649(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_653(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_ENDCX2RemovalFailure_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_ENDCX2RemovalFailure_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ENDCX2RemovalFailure_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_653(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_ENDCX2RemovalFailure_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_ENDCX2RemovalFailure_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ENDCX2RemovalFailure_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_653(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_657(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_DataForwardingAddressIndication_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_DataForwardingAddressIndication_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct DataForwardingAddressIndication_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_657(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_DataForwardingAddressIndication_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_DataForwardingAddressIndication_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct DataForwardingAddressIndication_IEs, id)); - static const int indexToPresent[] = {DataForwardingAddressIndication_IEs__value_PR_NOTHING, - DataForwardingAddressIndication_IEs__value_PR_UE_X2AP_ID_Extension, - DataForwardingAddressIndication_IEs__value_PR_UE_X2AP_ID, - DataForwardingAddressIndication_IEs__value_PR_UE_X2AP_ID_Extension, - DataForwardingAddressIndication_IEs__value_PR_E_RABs_DataForwardingAddress_List - }; - - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = indexToPresent[presence_index]; - break; - } - } - - return result; -} - -static int -memb_value_constraint_657(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_661(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_GNBStatusIndicationIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_GNBStatusIndicationIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct GNBStatusIndicationIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_661(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_GNBStatusIndicationIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_GNBStatusIndicationIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct GNBStatusIndicationIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_661(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_665(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_E_RAB_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E_RAB_ItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RAB_ItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_665(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_E_RAB_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E_RAB_ItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RAB_ItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_665(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_669(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_E_RABUsageReport_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E_RABUsageReport_ItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABUsageReport_ItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_669(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_E_RABUsageReport_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E_RABUsageReport_ItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABUsageReport_ItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_669(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_673(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_SecondaryRATUsageReport_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_SecondaryRATUsageReport_ItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SecondaryRATUsageReport_ItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_673(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_SecondaryRATUsageReport_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_SecondaryRATUsageReport_ItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SecondaryRATUsageReport_ItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_673(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_per_constraints_t asn_PER_memb_id_constr_2 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_3 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_4 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_6 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_7 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_8 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_10 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_11 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_12 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_14 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_15 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_16 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_18 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_19 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_20 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_22 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_23 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_24 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_26 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_27 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_28 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_30 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_31 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_32 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_34 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_35 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_36 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_38 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_39 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_40 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_42 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_43 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_44 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_46 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_47 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_48 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_50 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_51 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_52 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_54 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_55 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_56 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_58 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_59 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_60 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_62 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_63 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_64 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_66 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_67 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_68 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_70 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_71 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_72 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_74 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_75 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_76 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_78 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_79 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_80 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_82 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_83 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_84 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_86 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_87 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_88 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_90 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_91 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_92 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_94 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_95 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_96 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_98 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_99 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_100 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_102 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_103 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_104 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_106 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_107 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_108 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_110 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_111 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_112 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_114 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_115 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_116 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_118 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_119 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_120 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_122 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_123 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_124 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_126 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_127 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_128 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_130 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_131 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_132 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_134 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_135 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_136 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_138 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_139 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_140 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_142 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_143 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_144 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_146 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_147 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_148 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_150 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_151 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_152 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_154 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_155 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_156 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_158 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_159 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_160 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_162 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_163 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_164 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_166 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_167 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_168 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_170 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_171 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_172 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_174 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_175 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_176 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_178 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_179 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_180 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_182 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_183 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_184 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_186 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_187 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_188 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_190 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_191 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_192 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_194 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_195 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_196 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_198 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_199 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_200 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_202 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_203 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_204 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_206 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_207 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_208 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_210 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_211 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_212 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_214 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_215 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_216 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_218 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_219 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_220 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_222 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_223 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_224 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_226 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_227 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_228 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_230 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_231 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_232 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_234 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_235 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_236 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_238 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_239 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_240 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_242 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_243 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_244 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_246 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_247 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_248 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_250 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_251 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_252 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_254 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_255 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_256 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_258 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_259 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_260 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_262 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_263 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_264 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_266 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_267 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_268 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_270 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_271 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_272 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_274 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_275 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_276 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_278 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_279 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_280 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_282 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_283 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_284 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_286 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_287 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_288 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_290 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_291 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_292 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_294 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_295 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_296 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_298 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_299 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_300 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_302 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_303 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_304 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_306 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_307 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_308 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_310 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_311 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_312 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_314 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_315 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_316 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_318 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_319 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_320 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_322 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_323 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_324 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_326 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_327 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_328 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_330 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_331 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_332 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_334 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_335 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_336 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_338 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_339 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_340 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_342 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_343 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_344 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_346 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_347 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_348 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_350 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_351 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_352 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_354 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_355 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_356 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_358 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_359 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_360 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_362 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_363 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_364 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_366 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_367 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_368 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_370 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_371 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_372 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_374 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_375 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_376 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_378 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_379 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_380 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_382 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_383 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_384 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_386 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_387 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_388 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_390 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_391 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_392 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_394 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_395 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_396 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_398 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_399 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_400 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_402 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_403 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_404 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_406 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_407 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_408 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_410 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_411 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_412 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_414 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_415 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_416 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_418 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_419 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_420 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_422 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_423 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_424 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_426 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_427 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_428 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_430 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_431 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_432 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_434 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_435 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_436 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_438 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_439 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_440 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_442 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_443 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_444 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_446 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_447 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_448 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_450 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_451 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_452 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_454 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_455 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_456 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_458 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_459 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_460 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_462 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_463 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_464 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_466 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_467 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_468 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_470 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_471 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_472 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_474 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_475 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_476 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_478 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_479 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_480 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_482 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_483 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_484 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_486 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_487 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_488 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_490 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_491 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_492 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_494 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_495 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_496 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_498 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_499 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_500 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_502 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_503 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_504 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_506 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_507 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_508 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_510 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_511 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_512 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_514 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_515 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_516 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_518 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_519 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_520 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_522 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_523 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_524 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_526 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_527 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_528 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_530 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_531 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_532 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_534 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_535 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_536 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_538 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_539 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_540 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_542 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_543 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_544 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_546 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_547 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_548 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_550 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_551 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_552 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_554 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_555 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_556 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_558 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_559 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_560 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_562 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_563 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_564 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_566 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_567 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_568 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_570 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_571 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_572 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_574 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_575 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_576 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_578 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_579 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_580 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_582 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_583 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_584 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_586 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_587 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_588 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_590 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_591 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_592 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_594 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_595 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_596 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_598 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_599 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_600 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_602 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_603 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_604 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_606 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_607 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_608 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_610 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_611 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_612 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_614 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_615 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_616 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_618 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_619 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_620 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_622 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_623 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_624 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_626 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_627 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_628 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_630 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_631 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_632 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_634 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_635 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_636 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_638 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_639 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_640 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_642 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_643 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_644 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_646 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_647 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_648 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_650 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_651 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_652 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_654 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_655 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_656 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_658 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_659 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_660 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_662 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_663 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_664 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_666 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_667 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_668 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_670 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_671 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_672 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_674 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_675 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_676 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_value_4[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICaction_ToBeSetup_ItemIEs__value, choice.RICaction_ToBeSetup_Item), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICaction_ToBeSetup_Item, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICaction-ToBeSetup-Item" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_4[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RICaction-ToBeSetup-Item */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_4 = { - sizeof(struct RICaction_ToBeSetup_ItemIEs__value), - offsetof(struct RICaction_ToBeSetup_ItemIEs__value, _asn_ctx), - offsetof(struct RICaction_ToBeSetup_ItemIEs__value, present), - sizeof(((struct RICaction_ToBeSetup_ItemIEs__value *)0)->present), - asn_MAP_value_tag2el_4, - 1, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_4 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_4, - 1, /* Elements count */ - &asn_SPC_value_specs_4 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_RICaction_ToBeSetup_ItemIEs_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICaction_ToBeSetup_ItemIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_2, memb_id_constraint_1 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICaction_ToBeSetup_ItemIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_RICaction_ToBeSetup_ItemIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_3, memb_criticality_constraint_1 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICaction_ToBeSetup_ItemIEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_4, - select_RICaction_ToBeSetup_ItemIEs_value_type, - { 0, &asn_PER_memb_value_constr_4, memb_value_constraint_1 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICaction_ToBeSetup_ItemIEs_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICaction_ToBeSetup_ItemIEs_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICaction_ToBeSetup_ItemIEs_specs_1 = { - sizeof(struct RICaction_ToBeSetup_ItemIEs), - offsetof(struct RICaction_ToBeSetup_ItemIEs, _asn_ctx), - asn_MAP_RICaction_ToBeSetup_ItemIEs_tag2el_1, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICaction_ToBeSetup_ItemIEs = { - "RICaction-ToBeSetup-ItemIEs", - "RICaction-ToBeSetup-ItemIEs", - &asn_OP_SEQUENCE, - asn_DEF_RICaction_ToBeSetup_ItemIEs_tags_1, - sizeof(asn_DEF_RICaction_ToBeSetup_ItemIEs_tags_1) - /sizeof(asn_DEF_RICaction_ToBeSetup_ItemIEs_tags_1[0]), /* 1 */ - asn_DEF_RICaction_ToBeSetup_ItemIEs_tags_1, /* Same as above */ - sizeof(asn_DEF_RICaction_ToBeSetup_ItemIEs_tags_1) - /sizeof(asn_DEF_RICaction_ToBeSetup_ItemIEs_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICaction_ToBeSetup_ItemIEs_1, - 3, /* Elements count */ - &asn_SPC_RICaction_ToBeSetup_ItemIEs_specs_1 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_8[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICaction_Admitted_ItemIEs__value, choice.RICaction_Admitted_Item), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICaction_Admitted_Item, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICaction-Admitted-Item" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_8[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RICaction-Admitted-Item */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_8 = { - sizeof(struct RICaction_Admitted_ItemIEs__value), - offsetof(struct RICaction_Admitted_ItemIEs__value, _asn_ctx), - offsetof(struct RICaction_Admitted_ItemIEs__value, present), - sizeof(((struct RICaction_Admitted_ItemIEs__value *)0)->present), - asn_MAP_value_tag2el_8, - 1, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_8 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_8, - 1, /* Elements count */ - &asn_SPC_value_specs_8 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_RICaction_Admitted_ItemIEs_5[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICaction_Admitted_ItemIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_6, memb_id_constraint_5 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICaction_Admitted_ItemIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_RICaction_Admitted_ItemIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_7, memb_criticality_constraint_5 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICaction_Admitted_ItemIEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_8, - select_RICaction_Admitted_ItemIEs_value_type, - { 0, &asn_PER_memb_value_constr_8, memb_value_constraint_5 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICaction_Admitted_ItemIEs_tags_5[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICaction_Admitted_ItemIEs_tag2el_5[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICaction_Admitted_ItemIEs_specs_5 = { - sizeof(struct RICaction_Admitted_ItemIEs), - offsetof(struct RICaction_Admitted_ItemIEs, _asn_ctx), - asn_MAP_RICaction_Admitted_ItemIEs_tag2el_5, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICaction_Admitted_ItemIEs = { - "RICaction-Admitted-ItemIEs", - "RICaction-Admitted-ItemIEs", - &asn_OP_SEQUENCE, - asn_DEF_RICaction_Admitted_ItemIEs_tags_5, - sizeof(asn_DEF_RICaction_Admitted_ItemIEs_tags_5) - /sizeof(asn_DEF_RICaction_Admitted_ItemIEs_tags_5[0]), /* 1 */ - asn_DEF_RICaction_Admitted_ItemIEs_tags_5, /* Same as above */ - sizeof(asn_DEF_RICaction_Admitted_ItemIEs_tags_5) - /sizeof(asn_DEF_RICaction_Admitted_ItemIEs_tags_5[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICaction_Admitted_ItemIEs_5, - 3, /* Elements count */ - &asn_SPC_RICaction_Admitted_ItemIEs_specs_5 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_12[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICaction_NotAdmitted_ItemIEs__value, choice.RICaction_NotAdmitted_Item), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICaction_NotAdmitted_Item, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICaction-NotAdmitted-Item" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_12[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RICaction-NotAdmitted-Item */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_12 = { - sizeof(struct RICaction_NotAdmitted_ItemIEs__value), - offsetof(struct RICaction_NotAdmitted_ItemIEs__value, _asn_ctx), - offsetof(struct RICaction_NotAdmitted_ItemIEs__value, present), - sizeof(((struct RICaction_NotAdmitted_ItemIEs__value *)0)->present), - asn_MAP_value_tag2el_12, - 1, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_12 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_12, - 1, /* Elements count */ - &asn_SPC_value_specs_12 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_RICaction_NotAdmitted_ItemIEs_9[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICaction_NotAdmitted_ItemIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_10, memb_id_constraint_9 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICaction_NotAdmitted_ItemIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_RICaction_NotAdmitted_ItemIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_11, memb_criticality_constraint_9 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICaction_NotAdmitted_ItemIEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_12, - select_RICaction_NotAdmitted_ItemIEs_value_type, - { 0, &asn_PER_memb_value_constr_12, memb_value_constraint_9 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICaction_NotAdmitted_ItemIEs_tags_9[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICaction_NotAdmitted_ItemIEs_tag2el_9[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICaction_NotAdmitted_ItemIEs_specs_9 = { - sizeof(struct RICaction_NotAdmitted_ItemIEs), - offsetof(struct RICaction_NotAdmitted_ItemIEs, _asn_ctx), - asn_MAP_RICaction_NotAdmitted_ItemIEs_tag2el_9, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICaction_NotAdmitted_ItemIEs = { - "RICaction-NotAdmitted-ItemIEs", - "RICaction-NotAdmitted-ItemIEs", - &asn_OP_SEQUENCE, - asn_DEF_RICaction_NotAdmitted_ItemIEs_tags_9, - sizeof(asn_DEF_RICaction_NotAdmitted_ItemIEs_tags_9) - /sizeof(asn_DEF_RICaction_NotAdmitted_ItemIEs_tags_9[0]), /* 1 */ - asn_DEF_RICaction_NotAdmitted_ItemIEs_tags_9, /* Same as above */ - sizeof(asn_DEF_RICaction_NotAdmitted_ItemIEs_tags_9) - /sizeof(asn_DEF_RICaction_NotAdmitted_ItemIEs_tags_9[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICaction_NotAdmitted_ItemIEs_9, - 3, /* Elements count */ - &asn_SPC_RICaction_NotAdmitted_ItemIEs_specs_9 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_16[] = { - { ATF_NOFLAGS, 0, offsetof(struct RANfunction_ItemIEs__value, choice.RANfunction_Item), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RANfunction_Item, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RANfunction-Item" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_16[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RANfunction-Item */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_16 = { - sizeof(struct RANfunction_ItemIEs__value), - offsetof(struct RANfunction_ItemIEs__value, _asn_ctx), - offsetof(struct RANfunction_ItemIEs__value, present), - sizeof(((struct RANfunction_ItemIEs__value *)0)->present), - asn_MAP_value_tag2el_16, - 1, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_16 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_16, - 1, /* Elements count */ - &asn_SPC_value_specs_16 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_RANfunction_ItemIEs_13[] = { - { ATF_NOFLAGS, 0, offsetof(struct RANfunction_ItemIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_14, memb_id_constraint_13 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct RANfunction_ItemIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_RANfunction_ItemIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_15, memb_criticality_constraint_13 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RANfunction_ItemIEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_16, - select_RANfunction_ItemIEs_value_type, - { 0, &asn_PER_memb_value_constr_16, memb_value_constraint_13 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_RANfunction_ItemIEs_tags_13[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RANfunction_ItemIEs_tag2el_13[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RANfunction_ItemIEs_specs_13 = { - sizeof(struct RANfunction_ItemIEs), - offsetof(struct RANfunction_ItemIEs, _asn_ctx), - asn_MAP_RANfunction_ItemIEs_tag2el_13, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RANfunction_ItemIEs = { - "RANfunction-ItemIEs", - "RANfunction-ItemIEs", - &asn_OP_SEQUENCE, - asn_DEF_RANfunction_ItemIEs_tags_13, - sizeof(asn_DEF_RANfunction_ItemIEs_tags_13) - /sizeof(asn_DEF_RANfunction_ItemIEs_tags_13[0]), /* 1 */ - asn_DEF_RANfunction_ItemIEs_tags_13, /* Same as above */ - sizeof(asn_DEF_RANfunction_ItemIEs_tags_13) - /sizeof(asn_DEF_RANfunction_ItemIEs_tags_13[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RANfunction_ItemIEs_13, - 3, /* Elements count */ - &asn_SPC_RANfunction_ItemIEs_specs_13 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_20[] = { - { ATF_NOFLAGS, 0, offsetof(struct RANfunctionID_ItemIEs__value, choice.RANfunctionID_Item), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RANfunctionID_Item, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RANfunctionID-Item" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_20[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RANfunctionID-Item */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_20 = { - sizeof(struct RANfunctionID_ItemIEs__value), - offsetof(struct RANfunctionID_ItemIEs__value, _asn_ctx), - offsetof(struct RANfunctionID_ItemIEs__value, present), - sizeof(((struct RANfunctionID_ItemIEs__value *)0)->present), - asn_MAP_value_tag2el_20, - 1, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_20 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_20, - 1, /* Elements count */ - &asn_SPC_value_specs_20 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_RANfunctionID_ItemIEs_17[] = { - { ATF_NOFLAGS, 0, offsetof(struct RANfunctionID_ItemIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_18, memb_id_constraint_17 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct RANfunctionID_ItemIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_RANfunctionID_ItemIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_19, memb_criticality_constraint_17 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RANfunctionID_ItemIEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_20, - select_RANfunctionID_ItemIEs_value_type, - { 0, &asn_PER_memb_value_constr_20, memb_value_constraint_17 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_RANfunctionID_ItemIEs_tags_17[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RANfunctionID_ItemIEs_tag2el_17[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RANfunctionID_ItemIEs_specs_17 = { - sizeof(struct RANfunctionID_ItemIEs), - offsetof(struct RANfunctionID_ItemIEs, _asn_ctx), - asn_MAP_RANfunctionID_ItemIEs_tag2el_17, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RANfunctionID_ItemIEs = { - "RANfunctionID-ItemIEs", - "RANfunctionID-ItemIEs", - &asn_OP_SEQUENCE, - asn_DEF_RANfunctionID_ItemIEs_tags_17, - sizeof(asn_DEF_RANfunctionID_ItemIEs_tags_17) - /sizeof(asn_DEF_RANfunctionID_ItemIEs_tags_17[0]), /* 1 */ - asn_DEF_RANfunctionID_ItemIEs_tags_17, /* Same as above */ - sizeof(asn_DEF_RANfunctionID_ItemIEs_tags_17) - /sizeof(asn_DEF_RANfunctionID_ItemIEs_tags_17[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RANfunctionID_ItemIEs_17, - 3, /* Elements count */ - &asn_SPC_RANfunctionID_ItemIEs_specs_17 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_24[] = { - { ATF_NOFLAGS, 0, offsetof(struct RANfunctionIDcause_ItemIEs__value, choice.RANfunctionIDcause_Item), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RANfunctionIDcause_Item, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RANfunctionIDcause-Item" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_24[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RANfunctionIDcause-Item */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_24 = { - sizeof(struct RANfunctionIDcause_ItemIEs__value), - offsetof(struct RANfunctionIDcause_ItemIEs__value, _asn_ctx), - offsetof(struct RANfunctionIDcause_ItemIEs__value, present), - sizeof(((struct RANfunctionIDcause_ItemIEs__value *)0)->present), - asn_MAP_value_tag2el_24, - 1, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_24 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_24, - 1, /* Elements count */ - &asn_SPC_value_specs_24 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_RANfunctionIDcause_ItemIEs_21[] = { - { ATF_NOFLAGS, 0, offsetof(struct RANfunctionIDcause_ItemIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_22, memb_id_constraint_21 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct RANfunctionIDcause_ItemIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_RANfunctionIDcause_ItemIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_23, memb_criticality_constraint_21 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RANfunctionIDcause_ItemIEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_24, - select_RANfunctionIDcause_ItemIEs_value_type, - { 0, &asn_PER_memb_value_constr_24, memb_value_constraint_21 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_RANfunctionIDcause_ItemIEs_tags_21[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RANfunctionIDcause_ItemIEs_tag2el_21[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RANfunctionIDcause_ItemIEs_specs_21 = { - sizeof(struct RANfunctionIDcause_ItemIEs), - offsetof(struct RANfunctionIDcause_ItemIEs, _asn_ctx), - asn_MAP_RANfunctionIDcause_ItemIEs_tag2el_21, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RANfunctionIDcause_ItemIEs = { - "RANfunctionIDcause-ItemIEs", - "RANfunctionIDcause-ItemIEs", - &asn_OP_SEQUENCE, - asn_DEF_RANfunctionIDcause_ItemIEs_tags_21, - sizeof(asn_DEF_RANfunctionIDcause_ItemIEs_tags_21) - /sizeof(asn_DEF_RANfunctionIDcause_ItemIEs_tags_21[0]), /* 1 */ - asn_DEF_RANfunctionIDcause_ItemIEs_tags_21, /* Same as above */ - sizeof(asn_DEF_RANfunctionIDcause_ItemIEs_tags_21) - /sizeof(asn_DEF_RANfunctionIDcause_ItemIEs_tags_21[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RANfunctionIDcause_ItemIEs_21, - 3, /* Elements count */ - &asn_SPC_RANfunctionIDcause_ItemIEs_specs_21 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_28[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeSetup_ItemIEs__value, choice.E_RABs_ToBeSetup_Item), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RABs_ToBeSetup_Item, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "E-RABs-ToBeSetup-Item" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_28[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* E-RABs-ToBeSetup-Item */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_28 = { - sizeof(struct E_RABs_ToBeSetup_ItemIEs__value), - offsetof(struct E_RABs_ToBeSetup_ItemIEs__value, _asn_ctx), - offsetof(struct E_RABs_ToBeSetup_ItemIEs__value, present), - sizeof(((struct E_RABs_ToBeSetup_ItemIEs__value *)0)->present), - asn_MAP_value_tag2el_28, - 1, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_28 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_28, - 1, /* Elements count */ - &asn_SPC_value_specs_28 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E_RABs_ToBeSetup_ItemIEs_25[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeSetup_ItemIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_26, memb_id_constraint_25 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeSetup_ItemIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_E_RABs_ToBeSetup_ItemIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_27, memb_criticality_constraint_25 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeSetup_ItemIEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_28, - select_E_RABs_ToBeSetup_ItemIEs_value_type, - { 0, &asn_PER_memb_value_constr_28, memb_value_constraint_25 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeSetup_ItemIEs_tags_25[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeSetup_ItemIEs_tag2el_25[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeSetup_ItemIEs_specs_25 = { - sizeof(struct E_RABs_ToBeSetup_ItemIEs), - offsetof(struct E_RABs_ToBeSetup_ItemIEs, _asn_ctx), - asn_MAP_E_RABs_ToBeSetup_ItemIEs_tag2el_25, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeSetup_ItemIEs = { - "E-RABs-ToBeSetup-ItemIEs", - "E-RABs-ToBeSetup-ItemIEs", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_ToBeSetup_ItemIEs_tags_25, - sizeof(asn_DEF_E_RABs_ToBeSetup_ItemIEs_tags_25) - /sizeof(asn_DEF_E_RABs_ToBeSetup_ItemIEs_tags_25[0]), /* 1 */ - asn_DEF_E_RABs_ToBeSetup_ItemIEs_tags_25, /* Same as above */ - sizeof(asn_DEF_E_RABs_ToBeSetup_ItemIEs_tags_25) - /sizeof(asn_DEF_E_RABs_ToBeSetup_ItemIEs_tags_25[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_ToBeSetup_ItemIEs_25, - 3, /* Elements count */ - &asn_SPC_E_RABs_ToBeSetup_ItemIEs_specs_25 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_32[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ItemIEs__value, choice.E_RABs_Admitted_Item), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RABs_Admitted_Item, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "E-RABs-Admitted-Item" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_32[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* E-RABs-Admitted-Item */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_32 = { - sizeof(struct E_RABs_Admitted_ItemIEs__value), - offsetof(struct E_RABs_Admitted_ItemIEs__value, _asn_ctx), - offsetof(struct E_RABs_Admitted_ItemIEs__value, present), - sizeof(((struct E_RABs_Admitted_ItemIEs__value *)0)->present), - asn_MAP_value_tag2el_32, - 1, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_32 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_32, - 1, /* Elements count */ - &asn_SPC_value_specs_32 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ItemIEs_29[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ItemIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_30, memb_id_constraint_29 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ItemIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_E_RABs_Admitted_ItemIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_31, memb_criticality_constraint_29 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ItemIEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_32, - select_E_RABs_Admitted_ItemIEs_value_type, - { 0, &asn_PER_memb_value_constr_32, memb_value_constraint_29 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_Admitted_ItemIEs_tags_29[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_Admitted_ItemIEs_tag2el_29[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ItemIEs_specs_29 = { - sizeof(struct E_RABs_Admitted_ItemIEs), - offsetof(struct E_RABs_Admitted_ItemIEs, _asn_ctx), - asn_MAP_E_RABs_Admitted_ItemIEs_tag2el_29, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ItemIEs = { - "E-RABs-Admitted-ItemIEs", - "E-RABs-Admitted-ItemIEs", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_Admitted_ItemIEs_tags_29, - sizeof(asn_DEF_E_RABs_Admitted_ItemIEs_tags_29) - /sizeof(asn_DEF_E_RABs_Admitted_ItemIEs_tags_29[0]), /* 1 */ - asn_DEF_E_RABs_Admitted_ItemIEs_tags_29, /* Same as above */ - sizeof(asn_DEF_E_RABs_Admitted_ItemIEs_tags_29) - /sizeof(asn_DEF_E_RABs_Admitted_ItemIEs_tags_29[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_Admitted_ItemIEs_29, - 3, /* Elements count */ - &asn_SPC_E_RABs_Admitted_ItemIEs_specs_29 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_36[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_SubjectToStatusTransfer_ItemIEs__value, choice.E_RABs_SubjectToStatusTransfer_Item), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RABs_SubjectToStatusTransfer_Item, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "E-RABs-SubjectToStatusTransfer-Item" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_36[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* E-RABs-SubjectToStatusTransfer-Item */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_36 = { - sizeof(struct E_RABs_SubjectToStatusTransfer_ItemIEs__value), - offsetof(struct E_RABs_SubjectToStatusTransfer_ItemIEs__value, _asn_ctx), - offsetof(struct E_RABs_SubjectToStatusTransfer_ItemIEs__value, present), - sizeof(((struct E_RABs_SubjectToStatusTransfer_ItemIEs__value *)0)->present), - asn_MAP_value_tag2el_36, - 1, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_36 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_36, - 1, /* Elements count */ - &asn_SPC_value_specs_36 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E_RABs_SubjectToStatusTransfer_ItemIEs_33[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_SubjectToStatusTransfer_ItemIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_34, memb_id_constraint_33 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_SubjectToStatusTransfer_ItemIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_E_RABs_SubjectToStatusTransfer_ItemIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_35, memb_criticality_constraint_33 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_SubjectToStatusTransfer_ItemIEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_36, - select_E_RABs_SubjectToStatusTransfer_ItemIEs_value_type, - { 0, &asn_PER_memb_value_constr_36, memb_value_constraint_33 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_SubjectToStatusTransfer_ItemIEs_tags_33[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_SubjectToStatusTransfer_ItemIEs_tag2el_33[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_SubjectToStatusTransfer_ItemIEs_specs_33 = { - sizeof(struct E_RABs_SubjectToStatusTransfer_ItemIEs), - offsetof(struct E_RABs_SubjectToStatusTransfer_ItemIEs, _asn_ctx), - asn_MAP_E_RABs_SubjectToStatusTransfer_ItemIEs_tag2el_33, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_SubjectToStatusTransfer_ItemIEs = { - "E-RABs-SubjectToStatusTransfer-ItemIEs", - "E-RABs-SubjectToStatusTransfer-ItemIEs", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_SubjectToStatusTransfer_ItemIEs_tags_33, - sizeof(asn_DEF_E_RABs_SubjectToStatusTransfer_ItemIEs_tags_33) - /sizeof(asn_DEF_E_RABs_SubjectToStatusTransfer_ItemIEs_tags_33[0]), /* 1 */ - asn_DEF_E_RABs_SubjectToStatusTransfer_ItemIEs_tags_33, /* Same as above */ - sizeof(asn_DEF_E_RABs_SubjectToStatusTransfer_ItemIEs_tags_33) - /sizeof(asn_DEF_E_RABs_SubjectToStatusTransfer_ItemIEs_tags_33[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_SubjectToStatusTransfer_ItemIEs_33, - 3, /* Elements count */ - &asn_SPC_E_RABs_SubjectToStatusTransfer_ItemIEs_specs_33 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_40[] = { - { ATF_NOFLAGS, 0, offsetof(struct CellInformation_ItemIEs__value, choice.CellInformation_Item), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CellInformation_Item, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "CellInformation-Item" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_40[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* CellInformation-Item */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_40 = { - sizeof(struct CellInformation_ItemIEs__value), - offsetof(struct CellInformation_ItemIEs__value, _asn_ctx), - offsetof(struct CellInformation_ItemIEs__value, present), - sizeof(((struct CellInformation_ItemIEs__value *)0)->present), - asn_MAP_value_tag2el_40, - 1, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_40 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_40, - 1, /* Elements count */ - &asn_SPC_value_specs_40 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_CellInformation_ItemIEs_37[] = { - { ATF_NOFLAGS, 0, offsetof(struct CellInformation_ItemIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_38, memb_id_constraint_37 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct CellInformation_ItemIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_CellInformation_ItemIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_39, memb_criticality_constraint_37 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct CellInformation_ItemIEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_40, - select_CellInformation_ItemIEs_value_type, - { 0, &asn_PER_memb_value_constr_40, memb_value_constraint_37 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_CellInformation_ItemIEs_tags_37[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_CellInformation_ItemIEs_tag2el_37[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_CellInformation_ItemIEs_specs_37 = { - sizeof(struct CellInformation_ItemIEs), - offsetof(struct CellInformation_ItemIEs, _asn_ctx), - asn_MAP_CellInformation_ItemIEs_tag2el_37, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_CellInformation_ItemIEs = { - "CellInformation-ItemIEs", - "CellInformation-ItemIEs", - &asn_OP_SEQUENCE, - asn_DEF_CellInformation_ItemIEs_tags_37, - sizeof(asn_DEF_CellInformation_ItemIEs_tags_37) - /sizeof(asn_DEF_CellInformation_ItemIEs_tags_37[0]), /* 1 */ - asn_DEF_CellInformation_ItemIEs_tags_37, /* Same as above */ - sizeof(asn_DEF_CellInformation_ItemIEs_tags_37) - /sizeof(asn_DEF_CellInformation_ItemIEs_tags_37[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_CellInformation_ItemIEs_37, - 3, /* Elements count */ - &asn_SPC_CellInformation_ItemIEs_specs_37 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_44[] = { - { ATF_NOFLAGS, 0, offsetof(struct CellToReport_ItemIEs__value, choice.CellToReport_Item), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CellToReport_Item, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "CellToReport-Item" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_44[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* CellToReport-Item */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_44 = { - sizeof(struct CellToReport_ItemIEs__value), - offsetof(struct CellToReport_ItemIEs__value, _asn_ctx), - offsetof(struct CellToReport_ItemIEs__value, present), - sizeof(((struct CellToReport_ItemIEs__value *)0)->present), - asn_MAP_value_tag2el_44, - 1, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_44 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_44, - 1, /* Elements count */ - &asn_SPC_value_specs_44 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_CellToReport_ItemIEs_41[] = { - { ATF_NOFLAGS, 0, offsetof(struct CellToReport_ItemIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_42, memb_id_constraint_41 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct CellToReport_ItemIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_CellToReport_ItemIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_43, memb_criticality_constraint_41 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct CellToReport_ItemIEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_44, - select_CellToReport_ItemIEs_value_type, - { 0, &asn_PER_memb_value_constr_44, memb_value_constraint_41 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_CellToReport_ItemIEs_tags_41[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_CellToReport_ItemIEs_tag2el_41[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_CellToReport_ItemIEs_specs_41 = { - sizeof(struct CellToReport_ItemIEs), - offsetof(struct CellToReport_ItemIEs, _asn_ctx), - asn_MAP_CellToReport_ItemIEs_tag2el_41, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_CellToReport_ItemIEs = { - "CellToReport-ItemIEs", - "CellToReport-ItemIEs", - &asn_OP_SEQUENCE, - asn_DEF_CellToReport_ItemIEs_tags_41, - sizeof(asn_DEF_CellToReport_ItemIEs_tags_41) - /sizeof(asn_DEF_CellToReport_ItemIEs_tags_41[0]), /* 1 */ - asn_DEF_CellToReport_ItemIEs_tags_41, /* Same as above */ - sizeof(asn_DEF_CellToReport_ItemIEs_tags_41) - /sizeof(asn_DEF_CellToReport_ItemIEs_tags_41[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_CellToReport_ItemIEs_41, - 3, /* Elements count */ - &asn_SPC_CellToReport_ItemIEs_specs_41 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_48[] = { - { ATF_NOFLAGS, 0, offsetof(struct MeasurementInitiationResult_ItemIEs__value, choice.MeasurementInitiationResult_Item), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_MeasurementInitiationResult_Item, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "MeasurementInitiationResult-Item" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_48[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* MeasurementInitiationResult-Item */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_48 = { - sizeof(struct MeasurementInitiationResult_ItemIEs__value), - offsetof(struct MeasurementInitiationResult_ItemIEs__value, _asn_ctx), - offsetof(struct MeasurementInitiationResult_ItemIEs__value, present), - sizeof(((struct MeasurementInitiationResult_ItemIEs__value *)0)->present), - asn_MAP_value_tag2el_48, - 1, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_48 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_48, - 1, /* Elements count */ - &asn_SPC_value_specs_48 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_MeasurementInitiationResult_ItemIEs_45[] = { - { ATF_NOFLAGS, 0, offsetof(struct MeasurementInitiationResult_ItemIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_46, memb_id_constraint_45 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct MeasurementInitiationResult_ItemIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_MeasurementInitiationResult_ItemIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_47, memb_criticality_constraint_45 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct MeasurementInitiationResult_ItemIEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_48, - select_MeasurementInitiationResult_ItemIEs_value_type, - { 0, &asn_PER_memb_value_constr_48, memb_value_constraint_45 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_MeasurementInitiationResult_ItemIEs_tags_45[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_MeasurementInitiationResult_ItemIEs_tag2el_45[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_MeasurementInitiationResult_ItemIEs_specs_45 = { - sizeof(struct MeasurementInitiationResult_ItemIEs), - offsetof(struct MeasurementInitiationResult_ItemIEs, _asn_ctx), - asn_MAP_MeasurementInitiationResult_ItemIEs_tag2el_45, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_MeasurementInitiationResult_ItemIEs = { - "MeasurementInitiationResult-ItemIEs", - "MeasurementInitiationResult-ItemIEs", - &asn_OP_SEQUENCE, - asn_DEF_MeasurementInitiationResult_ItemIEs_tags_45, - sizeof(asn_DEF_MeasurementInitiationResult_ItemIEs_tags_45) - /sizeof(asn_DEF_MeasurementInitiationResult_ItemIEs_tags_45[0]), /* 1 */ - asn_DEF_MeasurementInitiationResult_ItemIEs_tags_45, /* Same as above */ - sizeof(asn_DEF_MeasurementInitiationResult_ItemIEs_tags_45) - /sizeof(asn_DEF_MeasurementInitiationResult_ItemIEs_tags_45[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_MeasurementInitiationResult_ItemIEs_45, - 3, /* Elements count */ - &asn_SPC_MeasurementInitiationResult_ItemIEs_specs_45 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_52[] = { - { ATF_NOFLAGS, 0, offsetof(struct MeasurementFailureCause_ItemIEs__value, choice.MeasurementFailureCause_Item), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_MeasurementFailureCause_Item, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "MeasurementFailureCause-Item" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_52[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* MeasurementFailureCause-Item */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_52 = { - sizeof(struct MeasurementFailureCause_ItemIEs__value), - offsetof(struct MeasurementFailureCause_ItemIEs__value, _asn_ctx), - offsetof(struct MeasurementFailureCause_ItemIEs__value, present), - sizeof(((struct MeasurementFailureCause_ItemIEs__value *)0)->present), - asn_MAP_value_tag2el_52, - 1, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_52 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_52, - 1, /* Elements count */ - &asn_SPC_value_specs_52 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_MeasurementFailureCause_ItemIEs_49[] = { - { ATF_NOFLAGS, 0, offsetof(struct MeasurementFailureCause_ItemIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_50, memb_id_constraint_49 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct MeasurementFailureCause_ItemIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_MeasurementFailureCause_ItemIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_51, memb_criticality_constraint_49 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct MeasurementFailureCause_ItemIEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_52, - select_MeasurementFailureCause_ItemIEs_value_type, - { 0, &asn_PER_memb_value_constr_52, memb_value_constraint_49 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_MeasurementFailureCause_ItemIEs_tags_49[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_MeasurementFailureCause_ItemIEs_tag2el_49[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_MeasurementFailureCause_ItemIEs_specs_49 = { - sizeof(struct MeasurementFailureCause_ItemIEs), - offsetof(struct MeasurementFailureCause_ItemIEs, _asn_ctx), - asn_MAP_MeasurementFailureCause_ItemIEs_tag2el_49, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_MeasurementFailureCause_ItemIEs = { - "MeasurementFailureCause-ItemIEs", - "MeasurementFailureCause-ItemIEs", - &asn_OP_SEQUENCE, - asn_DEF_MeasurementFailureCause_ItemIEs_tags_49, - sizeof(asn_DEF_MeasurementFailureCause_ItemIEs_tags_49) - /sizeof(asn_DEF_MeasurementFailureCause_ItemIEs_tags_49[0]), /* 1 */ - asn_DEF_MeasurementFailureCause_ItemIEs_tags_49, /* Same as above */ - sizeof(asn_DEF_MeasurementFailureCause_ItemIEs_tags_49) - /sizeof(asn_DEF_MeasurementFailureCause_ItemIEs_tags_49[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_MeasurementFailureCause_ItemIEs_49, - 3, /* Elements count */ - &asn_SPC_MeasurementFailureCause_ItemIEs_specs_49 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_56[] = { - { ATF_NOFLAGS, 0, offsetof(struct CompleteFailureCauseInformation_ItemIEs__value, choice.CompleteFailureCauseInformation_Item), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CompleteFailureCauseInformation_Item, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "CompleteFailureCauseInformation-Item" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_56[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* CompleteFailureCauseInformation-Item */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_56 = { - sizeof(struct CompleteFailureCauseInformation_ItemIEs__value), - offsetof(struct CompleteFailureCauseInformation_ItemIEs__value, _asn_ctx), - offsetof(struct CompleteFailureCauseInformation_ItemIEs__value, present), - sizeof(((struct CompleteFailureCauseInformation_ItemIEs__value *)0)->present), - asn_MAP_value_tag2el_56, - 1, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_56 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_56, - 1, /* Elements count */ - &asn_SPC_value_specs_56 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_CompleteFailureCauseInformation_ItemIEs_53[] = { - { ATF_NOFLAGS, 0, offsetof(struct CompleteFailureCauseInformation_ItemIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_54, memb_id_constraint_53 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct CompleteFailureCauseInformation_ItemIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_CompleteFailureCauseInformation_ItemIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_55, memb_criticality_constraint_53 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct CompleteFailureCauseInformation_ItemIEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_56, - select_CompleteFailureCauseInformation_ItemIEs_value_type, - { 0, &asn_PER_memb_value_constr_56, memb_value_constraint_53 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_CompleteFailureCauseInformation_ItemIEs_tags_53[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_CompleteFailureCauseInformation_ItemIEs_tag2el_53[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_CompleteFailureCauseInformation_ItemIEs_specs_53 = { - sizeof(struct CompleteFailureCauseInformation_ItemIEs), - offsetof(struct CompleteFailureCauseInformation_ItemIEs, _asn_ctx), - asn_MAP_CompleteFailureCauseInformation_ItemIEs_tag2el_53, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_CompleteFailureCauseInformation_ItemIEs = { - "CompleteFailureCauseInformation-ItemIEs", - "CompleteFailureCauseInformation-ItemIEs", - &asn_OP_SEQUENCE, - asn_DEF_CompleteFailureCauseInformation_ItemIEs_tags_53, - sizeof(asn_DEF_CompleteFailureCauseInformation_ItemIEs_tags_53) - /sizeof(asn_DEF_CompleteFailureCauseInformation_ItemIEs_tags_53[0]), /* 1 */ - asn_DEF_CompleteFailureCauseInformation_ItemIEs_tags_53, /* Same as above */ - sizeof(asn_DEF_CompleteFailureCauseInformation_ItemIEs_tags_53) - /sizeof(asn_DEF_CompleteFailureCauseInformation_ItemIEs_tags_53[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_CompleteFailureCauseInformation_ItemIEs_53, - 3, /* Elements count */ - &asn_SPC_CompleteFailureCauseInformation_ItemIEs_specs_53 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_60[] = { - { ATF_NOFLAGS, 0, offsetof(struct CellMeasurementResult_ItemIEs__value, choice.CellMeasurementResult_Item), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CellMeasurementResult_Item, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "CellMeasurementResult-Item" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_60[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* CellMeasurementResult-Item */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_60 = { - sizeof(struct CellMeasurementResult_ItemIEs__value), - offsetof(struct CellMeasurementResult_ItemIEs__value, _asn_ctx), - offsetof(struct CellMeasurementResult_ItemIEs__value, present), - sizeof(((struct CellMeasurementResult_ItemIEs__value *)0)->present), - asn_MAP_value_tag2el_60, - 1, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_60 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_60, - 1, /* Elements count */ - &asn_SPC_value_specs_60 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_CellMeasurementResult_ItemIEs_57[] = { - { ATF_NOFLAGS, 0, offsetof(struct CellMeasurementResult_ItemIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_58, memb_id_constraint_57 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct CellMeasurementResult_ItemIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_CellMeasurementResult_ItemIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_59, memb_criticality_constraint_57 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct CellMeasurementResult_ItemIEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_60, - select_CellMeasurementResult_ItemIEs_value_type, - { 0, &asn_PER_memb_value_constr_60, memb_value_constraint_57 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_CellMeasurementResult_ItemIEs_tags_57[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_CellMeasurementResult_ItemIEs_tag2el_57[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_CellMeasurementResult_ItemIEs_specs_57 = { - sizeof(struct CellMeasurementResult_ItemIEs), - offsetof(struct CellMeasurementResult_ItemIEs, _asn_ctx), - asn_MAP_CellMeasurementResult_ItemIEs_tag2el_57, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_CellMeasurementResult_ItemIEs = { - "CellMeasurementResult-ItemIEs", - "CellMeasurementResult-ItemIEs", - &asn_OP_SEQUENCE, - asn_DEF_CellMeasurementResult_ItemIEs_tags_57, - sizeof(asn_DEF_CellMeasurementResult_ItemIEs_tags_57) - /sizeof(asn_DEF_CellMeasurementResult_ItemIEs_tags_57[0]), /* 1 */ - asn_DEF_CellMeasurementResult_ItemIEs_tags_57, /* Same as above */ - sizeof(asn_DEF_CellMeasurementResult_ItemIEs_tags_57) - /sizeof(asn_DEF_CellMeasurementResult_ItemIEs_tags_57[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_CellMeasurementResult_ItemIEs_57, - 3, /* Elements count */ - &asn_SPC_CellMeasurementResult_ItemIEs_specs_57 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_64[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_ItemIEs__value, choice.E_RABs_ToBeAdded_Item), - -1 /* Ambiguous tag (CHOICE?) */, - 0, - &asn_DEF_E_RABs_ToBeAdded_Item, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "E-RABs-ToBeAdded-Item" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_64[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sCG-Bearer */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 0, 0, 0 } /* split-Bearer */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_64 = { - sizeof(struct E_RABs_ToBeAdded_ItemIEs__value), - offsetof(struct E_RABs_ToBeAdded_ItemIEs__value, _asn_ctx), - offsetof(struct E_RABs_ToBeAdded_ItemIEs__value, present), - sizeof(((struct E_RABs_ToBeAdded_ItemIEs__value *)0)->present), - asn_MAP_value_tag2el_64, - 2, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_64 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_64, - 1, /* Elements count */ - &asn_SPC_value_specs_64 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E_RABs_ToBeAdded_ItemIEs_61[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_ItemIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_62, memb_id_constraint_61 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_ItemIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_E_RABs_ToBeAdded_ItemIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_63, memb_criticality_constraint_61 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_ItemIEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_64, - select_E_RABs_ToBeAdded_ItemIEs_value_type, - { 0, &asn_PER_memb_value_constr_64, memb_value_constraint_61 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeAdded_ItemIEs_tags_61[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeAdded_ItemIEs_tag2el_61[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeAdded_ItemIEs_specs_61 = { - sizeof(struct E_RABs_ToBeAdded_ItemIEs), - offsetof(struct E_RABs_ToBeAdded_ItemIEs, _asn_ctx), - asn_MAP_E_RABs_ToBeAdded_ItemIEs_tag2el_61, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_ItemIEs = { - "E-RABs-ToBeAdded-ItemIEs", - "E-RABs-ToBeAdded-ItemIEs", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_ToBeAdded_ItemIEs_tags_61, - sizeof(asn_DEF_E_RABs_ToBeAdded_ItemIEs_tags_61) - /sizeof(asn_DEF_E_RABs_ToBeAdded_ItemIEs_tags_61[0]), /* 1 */ - asn_DEF_E_RABs_ToBeAdded_ItemIEs_tags_61, /* Same as above */ - sizeof(asn_DEF_E_RABs_ToBeAdded_ItemIEs_tags_61) - /sizeof(asn_DEF_E_RABs_ToBeAdded_ItemIEs_tags_61[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_ToBeAdded_ItemIEs_61, - 3, /* Elements count */ - &asn_SPC_E_RABs_ToBeAdded_ItemIEs_specs_61 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_68[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_ItemIEs__value, choice.E_RABs_Admitted_ToBeAdded_Item), - -1 /* Ambiguous tag (CHOICE?) */, - 0, - &asn_DEF_E_RABs_Admitted_ToBeAdded_Item, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "E-RABs-Admitted-ToBeAdded-Item" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_68[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sCG-Bearer */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 0, 0, 0 } /* split-Bearer */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_68 = { - sizeof(struct E_RABs_Admitted_ToBeAdded_ItemIEs__value), - offsetof(struct E_RABs_Admitted_ToBeAdded_ItemIEs__value, _asn_ctx), - offsetof(struct E_RABs_Admitted_ToBeAdded_ItemIEs__value, present), - sizeof(((struct E_RABs_Admitted_ToBeAdded_ItemIEs__value *)0)->present), - asn_MAP_value_tag2el_68, - 2, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_68 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_68, - 1, /* Elements count */ - &asn_SPC_value_specs_68 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeAdded_ItemIEs_65[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_ItemIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_66, memb_id_constraint_65 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_ItemIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_E_RABs_Admitted_ToBeAdded_ItemIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_67, memb_criticality_constraint_65 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_ItemIEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_68, - select_E_RABs_Admitted_ToBeAdded_ItemIEs_value_type, - { 0, &asn_PER_memb_value_constr_68, memb_value_constraint_65 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_Admitted_ToBeAdded_ItemIEs_tags_65[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_Admitted_ToBeAdded_ItemIEs_tag2el_65[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeAdded_ItemIEs_specs_65 = { - sizeof(struct E_RABs_Admitted_ToBeAdded_ItemIEs), - offsetof(struct E_RABs_Admitted_ToBeAdded_ItemIEs, _asn_ctx), - asn_MAP_E_RABs_Admitted_ToBeAdded_ItemIEs_tag2el_65, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeAdded_ItemIEs = { - "E-RABs-Admitted-ToBeAdded-ItemIEs", - "E-RABs-Admitted-ToBeAdded-ItemIEs", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_Admitted_ToBeAdded_ItemIEs_tags_65, - sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_ItemIEs_tags_65) - /sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_ItemIEs_tags_65[0]), /* 1 */ - asn_DEF_E_RABs_Admitted_ToBeAdded_ItemIEs_tags_65, /* Same as above */ - sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_ItemIEs_tags_65) - /sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_ItemIEs_tags_65[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_Admitted_ToBeAdded_ItemIEs_65, - 3, /* Elements count */ - &asn_SPC_E_RABs_Admitted_ToBeAdded_ItemIEs_specs_65 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_72[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_ModReqItemIEs__value, choice.E_RABs_ToBeAdded_ModReqItem), - -1 /* Ambiguous tag (CHOICE?) */, - 0, - &asn_DEF_E_RABs_ToBeAdded_ModReqItem, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "E-RABs-ToBeAdded-ModReqItem" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_72[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sCG-Bearer */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 0, 0, 0 } /* split-Bearer */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_72 = { - sizeof(struct E_RABs_ToBeAdded_ModReqItemIEs__value), - offsetof(struct E_RABs_ToBeAdded_ModReqItemIEs__value, _asn_ctx), - offsetof(struct E_RABs_ToBeAdded_ModReqItemIEs__value, present), - sizeof(((struct E_RABs_ToBeAdded_ModReqItemIEs__value *)0)->present), - asn_MAP_value_tag2el_72, - 2, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_72 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_72, - 1, /* Elements count */ - &asn_SPC_value_specs_72 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E_RABs_ToBeAdded_ModReqItemIEs_69[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_ModReqItemIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_70, memb_id_constraint_69 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_ModReqItemIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_E_RABs_ToBeAdded_ModReqItemIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_71, memb_criticality_constraint_69 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_ModReqItemIEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_72, - select_E_RABs_ToBeAdded_ModReqItemIEs_value_type, - { 0, &asn_PER_memb_value_constr_72, memb_value_constraint_69 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeAdded_ModReqItemIEs_tags_69[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeAdded_ModReqItemIEs_tag2el_69[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeAdded_ModReqItemIEs_specs_69 = { - sizeof(struct E_RABs_ToBeAdded_ModReqItemIEs), - offsetof(struct E_RABs_ToBeAdded_ModReqItemIEs, _asn_ctx), - asn_MAP_E_RABs_ToBeAdded_ModReqItemIEs_tag2el_69, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_ModReqItemIEs = { - "E-RABs-ToBeAdded-ModReqItemIEs", - "E-RABs-ToBeAdded-ModReqItemIEs", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_ToBeAdded_ModReqItemIEs_tags_69, - sizeof(asn_DEF_E_RABs_ToBeAdded_ModReqItemIEs_tags_69) - /sizeof(asn_DEF_E_RABs_ToBeAdded_ModReqItemIEs_tags_69[0]), /* 1 */ - asn_DEF_E_RABs_ToBeAdded_ModReqItemIEs_tags_69, /* Same as above */ - sizeof(asn_DEF_E_RABs_ToBeAdded_ModReqItemIEs_tags_69) - /sizeof(asn_DEF_E_RABs_ToBeAdded_ModReqItemIEs_tags_69[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_ToBeAdded_ModReqItemIEs_69, - 3, /* Elements count */ - &asn_SPC_E_RABs_ToBeAdded_ModReqItemIEs_specs_69 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_76[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeModified_ModReqItemIEs__value, choice.E_RABs_ToBeModified_ModReqItem), - -1 /* Ambiguous tag (CHOICE?) */, - 0, - &asn_DEF_E_RABs_ToBeModified_ModReqItem, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "E-RABs-ToBeModified-ModReqItem" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_76[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sCG-Bearer */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 0, 0, 0 } /* split-Bearer */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_76 = { - sizeof(struct E_RABs_ToBeModified_ModReqItemIEs__value), - offsetof(struct E_RABs_ToBeModified_ModReqItemIEs__value, _asn_ctx), - offsetof(struct E_RABs_ToBeModified_ModReqItemIEs__value, present), - sizeof(((struct E_RABs_ToBeModified_ModReqItemIEs__value *)0)->present), - asn_MAP_value_tag2el_76, - 2, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_76 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_76, - 1, /* Elements count */ - &asn_SPC_value_specs_76 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E_RABs_ToBeModified_ModReqItemIEs_73[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeModified_ModReqItemIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_74, memb_id_constraint_73 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeModified_ModReqItemIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_E_RABs_ToBeModified_ModReqItemIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_75, memb_criticality_constraint_73 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeModified_ModReqItemIEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_76, - select_E_RABs_ToBeModified_ModReqItemIEs_value_type, - { 0, &asn_PER_memb_value_constr_76, memb_value_constraint_73 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeModified_ModReqItemIEs_tags_73[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeModified_ModReqItemIEs_tag2el_73[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeModified_ModReqItemIEs_specs_73 = { - sizeof(struct E_RABs_ToBeModified_ModReqItemIEs), - offsetof(struct E_RABs_ToBeModified_ModReqItemIEs, _asn_ctx), - asn_MAP_E_RABs_ToBeModified_ModReqItemIEs_tag2el_73, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeModified_ModReqItemIEs = { - "E-RABs-ToBeModified-ModReqItemIEs", - "E-RABs-ToBeModified-ModReqItemIEs", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_ToBeModified_ModReqItemIEs_tags_73, - sizeof(asn_DEF_E_RABs_ToBeModified_ModReqItemIEs_tags_73) - /sizeof(asn_DEF_E_RABs_ToBeModified_ModReqItemIEs_tags_73[0]), /* 1 */ - asn_DEF_E_RABs_ToBeModified_ModReqItemIEs_tags_73, /* Same as above */ - sizeof(asn_DEF_E_RABs_ToBeModified_ModReqItemIEs_tags_73) - /sizeof(asn_DEF_E_RABs_ToBeModified_ModReqItemIEs_tags_73[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_ToBeModified_ModReqItemIEs_73, - 3, /* Elements count */ - &asn_SPC_E_RABs_ToBeModified_ModReqItemIEs_specs_73 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_80[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_ModReqItemIEs__value, choice.E_RABs_ToBeReleased_ModReqItem), - -1 /* Ambiguous tag (CHOICE?) */, - 0, - &asn_DEF_E_RABs_ToBeReleased_ModReqItem, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "E-RABs-ToBeReleased-ModReqItem" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_80[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sCG-Bearer */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 0, 0, 0 } /* split-Bearer */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_80 = { - sizeof(struct E_RABs_ToBeReleased_ModReqItemIEs__value), - offsetof(struct E_RABs_ToBeReleased_ModReqItemIEs__value, _asn_ctx), - offsetof(struct E_RABs_ToBeReleased_ModReqItemIEs__value, present), - sizeof(((struct E_RABs_ToBeReleased_ModReqItemIEs__value *)0)->present), - asn_MAP_value_tag2el_80, - 2, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_80 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_80, - 1, /* Elements count */ - &asn_SPC_value_specs_80 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_ModReqItemIEs_77[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_ModReqItemIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_78, memb_id_constraint_77 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_ModReqItemIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_E_RABs_ToBeReleased_ModReqItemIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_79, memb_criticality_constraint_77 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_ModReqItemIEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_80, - select_E_RABs_ToBeReleased_ModReqItemIEs_value_type, - { 0, &asn_PER_memb_value_constr_80, memb_value_constraint_77 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeReleased_ModReqItemIEs_tags_77[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeReleased_ModReqItemIEs_tag2el_77[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_ModReqItemIEs_specs_77 = { - sizeof(struct E_RABs_ToBeReleased_ModReqItemIEs), - offsetof(struct E_RABs_ToBeReleased_ModReqItemIEs, _asn_ctx), - asn_MAP_E_RABs_ToBeReleased_ModReqItemIEs_tag2el_77, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_ModReqItemIEs = { - "E-RABs-ToBeReleased-ModReqItemIEs", - "E-RABs-ToBeReleased-ModReqItemIEs", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_ToBeReleased_ModReqItemIEs_tags_77, - sizeof(asn_DEF_E_RABs_ToBeReleased_ModReqItemIEs_tags_77) - /sizeof(asn_DEF_E_RABs_ToBeReleased_ModReqItemIEs_tags_77[0]), /* 1 */ - asn_DEF_E_RABs_ToBeReleased_ModReqItemIEs_tags_77, /* Same as above */ - sizeof(asn_DEF_E_RABs_ToBeReleased_ModReqItemIEs_tags_77) - /sizeof(asn_DEF_E_RABs_ToBeReleased_ModReqItemIEs_tags_77[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_ToBeReleased_ModReqItemIEs_77, - 3, /* Elements count */ - &asn_SPC_E_RABs_ToBeReleased_ModReqItemIEs_specs_77 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_84[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_ModAckItemIEs__value, choice.E_RABs_Admitted_ToBeAdded_ModAckItem), - -1 /* Ambiguous tag (CHOICE?) */, - 0, - &asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckItem, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "E-RABs-Admitted-ToBeAdded-ModAckItem" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_84[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sCG-Bearer */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 0, 0, 0 } /* split-Bearer */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_84 = { - sizeof(struct E_RABs_Admitted_ToBeAdded_ModAckItemIEs__value), - offsetof(struct E_RABs_Admitted_ToBeAdded_ModAckItemIEs__value, _asn_ctx), - offsetof(struct E_RABs_Admitted_ToBeAdded_ModAckItemIEs__value, present), - sizeof(((struct E_RABs_Admitted_ToBeAdded_ModAckItemIEs__value *)0)->present), - asn_MAP_value_tag2el_84, - 2, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_84 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_84, - 1, /* Elements count */ - &asn_SPC_value_specs_84 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeAdded_ModAckItemIEs_81[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_ModAckItemIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_82, memb_id_constraint_81 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_ModAckItemIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_E_RABs_Admitted_ToBeAdded_ModAckItemIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_83, memb_criticality_constraint_81 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_ModAckItemIEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_84, - select_E_RABs_Admitted_ToBeAdded_ModAckItemIEs_value_type, - { 0, &asn_PER_memb_value_constr_84, memb_value_constraint_81 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckItemIEs_tags_81[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_Admitted_ToBeAdded_ModAckItemIEs_tag2el_81[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeAdded_ModAckItemIEs_specs_81 = { - sizeof(struct E_RABs_Admitted_ToBeAdded_ModAckItemIEs), - offsetof(struct E_RABs_Admitted_ToBeAdded_ModAckItemIEs, _asn_ctx), - asn_MAP_E_RABs_Admitted_ToBeAdded_ModAckItemIEs_tag2el_81, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckItemIEs = { - "E-RABs-Admitted-ToBeAdded-ModAckItemIEs", - "E-RABs-Admitted-ToBeAdded-ModAckItemIEs", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckItemIEs_tags_81, - sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckItemIEs_tags_81) - /sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckItemIEs_tags_81[0]), /* 1 */ - asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckItemIEs_tags_81, /* Same as above */ - sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckItemIEs_tags_81) - /sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckItemIEs_tags_81[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_Admitted_ToBeAdded_ModAckItemIEs_81, - 3, /* Elements count */ - &asn_SPC_E_RABs_Admitted_ToBeAdded_ModAckItemIEs_specs_81 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_88[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeModified_ModAckItemIEs__value, choice.E_RABs_Admitted_ToBeModified_ModAckItem), - -1 /* Ambiguous tag (CHOICE?) */, - 0, - &asn_DEF_E_RABs_Admitted_ToBeModified_ModAckItem, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "E-RABs-Admitted-ToBeModified-ModAckItem" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_88[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sCG-Bearer */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 0, 0, 0 } /* split-Bearer */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_88 = { - sizeof(struct E_RABs_Admitted_ToBeModified_ModAckItemIEs__value), - offsetof(struct E_RABs_Admitted_ToBeModified_ModAckItemIEs__value, _asn_ctx), - offsetof(struct E_RABs_Admitted_ToBeModified_ModAckItemIEs__value, present), - sizeof(((struct E_RABs_Admitted_ToBeModified_ModAckItemIEs__value *)0)->present), - asn_MAP_value_tag2el_88, - 2, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_88 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_88, - 1, /* Elements count */ - &asn_SPC_value_specs_88 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeModified_ModAckItemIEs_85[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeModified_ModAckItemIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_86, memb_id_constraint_85 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeModified_ModAckItemIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_E_RABs_Admitted_ToBeModified_ModAckItemIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_87, memb_criticality_constraint_85 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeModified_ModAckItemIEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_88, - select_E_RABs_Admitted_ToBeModified_ModAckItemIEs_value_type, - { 0, &asn_PER_memb_value_constr_88, memb_value_constraint_85 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_Admitted_ToBeModified_ModAckItemIEs_tags_85[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_Admitted_ToBeModified_ModAckItemIEs_tag2el_85[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeModified_ModAckItemIEs_specs_85 = { - sizeof(struct E_RABs_Admitted_ToBeModified_ModAckItemIEs), - offsetof(struct E_RABs_Admitted_ToBeModified_ModAckItemIEs, _asn_ctx), - asn_MAP_E_RABs_Admitted_ToBeModified_ModAckItemIEs_tag2el_85, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeModified_ModAckItemIEs = { - "E-RABs-Admitted-ToBeModified-ModAckItemIEs", - "E-RABs-Admitted-ToBeModified-ModAckItemIEs", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_Admitted_ToBeModified_ModAckItemIEs_tags_85, - sizeof(asn_DEF_E_RABs_Admitted_ToBeModified_ModAckItemIEs_tags_85) - /sizeof(asn_DEF_E_RABs_Admitted_ToBeModified_ModAckItemIEs_tags_85[0]), /* 1 */ - asn_DEF_E_RABs_Admitted_ToBeModified_ModAckItemIEs_tags_85, /* Same as above */ - sizeof(asn_DEF_E_RABs_Admitted_ToBeModified_ModAckItemIEs_tags_85) - /sizeof(asn_DEF_E_RABs_Admitted_ToBeModified_ModAckItemIEs_tags_85[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_Admitted_ToBeModified_ModAckItemIEs_85, - 3, /* Elements count */ - &asn_SPC_E_RABs_Admitted_ToBeModified_ModAckItemIEs_specs_85 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_92[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeReleased_ModAckItemIEs__value, choice.E_RABs_Admitted_ToReleased_ModAckItem), - -1 /* Ambiguous tag (CHOICE?) */, - 0, - &asn_DEF_E_RABs_Admitted_ToReleased_ModAckItem, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "E-RABs-Admitted-ToReleased-ModAckItem" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_92[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sCG-Bearer */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 0, 0, 0 } /* split-Bearer */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_92 = { - sizeof(struct E_RABs_Admitted_ToBeReleased_ModAckItemIEs__value), - offsetof(struct E_RABs_Admitted_ToBeReleased_ModAckItemIEs__value, _asn_ctx), - offsetof(struct E_RABs_Admitted_ToBeReleased_ModAckItemIEs__value, present), - sizeof(((struct E_RABs_Admitted_ToBeReleased_ModAckItemIEs__value *)0)->present), - asn_MAP_value_tag2el_92, - 2, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_92 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_92, - 1, /* Elements count */ - &asn_SPC_value_specs_92 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeReleased_ModAckItemIEs_89[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeReleased_ModAckItemIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_90, memb_id_constraint_89 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeReleased_ModAckItemIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_E_RABs_Admitted_ToBeReleased_ModAckItemIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_91, memb_criticality_constraint_89 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeReleased_ModAckItemIEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_92, - select_E_RABs_Admitted_ToBeReleased_ModAckItemIEs_value_type, - { 0, &asn_PER_memb_value_constr_92, memb_value_constraint_89 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_Admitted_ToBeReleased_ModAckItemIEs_tags_89[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_Admitted_ToBeReleased_ModAckItemIEs_tag2el_89[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeReleased_ModAckItemIEs_specs_89 = { - sizeof(struct E_RABs_Admitted_ToBeReleased_ModAckItemIEs), - offsetof(struct E_RABs_Admitted_ToBeReleased_ModAckItemIEs, _asn_ctx), - asn_MAP_E_RABs_Admitted_ToBeReleased_ModAckItemIEs_tag2el_89, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeReleased_ModAckItemIEs = { - "E-RABs-Admitted-ToBeReleased-ModAckItemIEs", - "E-RABs-Admitted-ToBeReleased-ModAckItemIEs", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_Admitted_ToBeReleased_ModAckItemIEs_tags_89, - sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_ModAckItemIEs_tags_89) - /sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_ModAckItemIEs_tags_89[0]), /* 1 */ - asn_DEF_E_RABs_Admitted_ToBeReleased_ModAckItemIEs_tags_89, /* Same as above */ - sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_ModAckItemIEs_tags_89) - /sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_ModAckItemIEs_tags_89[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_Admitted_ToBeReleased_ModAckItemIEs_89, - 3, /* Elements count */ - &asn_SPC_E_RABs_Admitted_ToBeReleased_ModAckItemIEs_specs_89 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_96[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_ModReqdItemIEs__value, choice.E_RABs_ToBeReleased_ModReqdItem), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RABs_ToBeReleased_ModReqdItem, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "E-RABs-ToBeReleased-ModReqdItem" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_96[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* E-RABs-ToBeReleased-ModReqdItem */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_96 = { - sizeof(struct E_RABs_ToBeReleased_ModReqdItemIEs__value), - offsetof(struct E_RABs_ToBeReleased_ModReqdItemIEs__value, _asn_ctx), - offsetof(struct E_RABs_ToBeReleased_ModReqdItemIEs__value, present), - sizeof(((struct E_RABs_ToBeReleased_ModReqdItemIEs__value *)0)->present), - asn_MAP_value_tag2el_96, - 1, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_96 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_96, - 1, /* Elements count */ - &asn_SPC_value_specs_96 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_ModReqdItemIEs_93[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_ModReqdItemIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_94, memb_id_constraint_93 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_ModReqdItemIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_E_RABs_ToBeReleased_ModReqdItemIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_95, memb_criticality_constraint_93 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_ModReqdItemIEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_96, - select_E_RABs_ToBeReleased_ModReqdItemIEs_value_type, - { 0, &asn_PER_memb_value_constr_96, memb_value_constraint_93 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeReleased_ModReqdItemIEs_tags_93[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeReleased_ModReqdItemIEs_tag2el_93[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_ModReqdItemIEs_specs_93 = { - sizeof(struct E_RABs_ToBeReleased_ModReqdItemIEs), - offsetof(struct E_RABs_ToBeReleased_ModReqdItemIEs, _asn_ctx), - asn_MAP_E_RABs_ToBeReleased_ModReqdItemIEs_tag2el_93, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_ModReqdItemIEs = { - "E-RABs-ToBeReleased-ModReqdItemIEs", - "E-RABs-ToBeReleased-ModReqdItemIEs", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_ToBeReleased_ModReqdItemIEs_tags_93, - sizeof(asn_DEF_E_RABs_ToBeReleased_ModReqdItemIEs_tags_93) - /sizeof(asn_DEF_E_RABs_ToBeReleased_ModReqdItemIEs_tags_93[0]), /* 1 */ - asn_DEF_E_RABs_ToBeReleased_ModReqdItemIEs_tags_93, /* Same as above */ - sizeof(asn_DEF_E_RABs_ToBeReleased_ModReqdItemIEs_tags_93) - /sizeof(asn_DEF_E_RABs_ToBeReleased_ModReqdItemIEs_tags_93[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_ToBeReleased_ModReqdItemIEs_93, - 3, /* Elements count */ - &asn_SPC_E_RABs_ToBeReleased_ModReqdItemIEs_specs_93 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_100[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_RelReqItemIEs__value, choice.E_RABs_ToBeReleased_RelReqItem), - -1 /* Ambiguous tag (CHOICE?) */, - 0, - &asn_DEF_E_RABs_ToBeReleased_RelReqItem, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "E-RABs-ToBeReleased-RelReqItem" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_100[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sCG-Bearer */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 0, 0, 0 } /* split-Bearer */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_100 = { - sizeof(struct E_RABs_ToBeReleased_RelReqItemIEs__value), - offsetof(struct E_RABs_ToBeReleased_RelReqItemIEs__value, _asn_ctx), - offsetof(struct E_RABs_ToBeReleased_RelReqItemIEs__value, present), - sizeof(((struct E_RABs_ToBeReleased_RelReqItemIEs__value *)0)->present), - asn_MAP_value_tag2el_100, - 2, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_100 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_100, - 1, /* Elements count */ - &asn_SPC_value_specs_100 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_RelReqItemIEs_97[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_RelReqItemIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_98, memb_id_constraint_97 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_RelReqItemIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_E_RABs_ToBeReleased_RelReqItemIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_99, memb_criticality_constraint_97 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_RelReqItemIEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_100, - select_E_RABs_ToBeReleased_RelReqItemIEs_value_type, - { 0, &asn_PER_memb_value_constr_100, memb_value_constraint_97 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeReleased_RelReqItemIEs_tags_97[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeReleased_RelReqItemIEs_tag2el_97[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_RelReqItemIEs_specs_97 = { - sizeof(struct E_RABs_ToBeReleased_RelReqItemIEs), - offsetof(struct E_RABs_ToBeReleased_RelReqItemIEs, _asn_ctx), - asn_MAP_E_RABs_ToBeReleased_RelReqItemIEs_tag2el_97, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_RelReqItemIEs = { - "E-RABs-ToBeReleased-RelReqItemIEs", - "E-RABs-ToBeReleased-RelReqItemIEs", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_ToBeReleased_RelReqItemIEs_tags_97, - sizeof(asn_DEF_E_RABs_ToBeReleased_RelReqItemIEs_tags_97) - /sizeof(asn_DEF_E_RABs_ToBeReleased_RelReqItemIEs_tags_97[0]), /* 1 */ - asn_DEF_E_RABs_ToBeReleased_RelReqItemIEs_tags_97, /* Same as above */ - sizeof(asn_DEF_E_RABs_ToBeReleased_RelReqItemIEs_tags_97) - /sizeof(asn_DEF_E_RABs_ToBeReleased_RelReqItemIEs_tags_97[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_ToBeReleased_RelReqItemIEs_97, - 3, /* Elements count */ - &asn_SPC_E_RABs_ToBeReleased_RelReqItemIEs_specs_97 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_104[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_RelConfItemIEs__value, choice.E_RABs_ToBeReleased_RelConfItem), - -1 /* Ambiguous tag (CHOICE?) */, - 0, - &asn_DEF_E_RABs_ToBeReleased_RelConfItem, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "E-RABs-ToBeReleased-RelConfItem" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_104[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sCG-Bearer */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 0, 0, 0 } /* split-Bearer */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_104 = { - sizeof(struct E_RABs_ToBeReleased_RelConfItemIEs__value), - offsetof(struct E_RABs_ToBeReleased_RelConfItemIEs__value, _asn_ctx), - offsetof(struct E_RABs_ToBeReleased_RelConfItemIEs__value, present), - sizeof(((struct E_RABs_ToBeReleased_RelConfItemIEs__value *)0)->present), - asn_MAP_value_tag2el_104, - 2, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_104 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_104, - 1, /* Elements count */ - &asn_SPC_value_specs_104 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_RelConfItemIEs_101[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_RelConfItemIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_102, memb_id_constraint_101 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_RelConfItemIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_E_RABs_ToBeReleased_RelConfItemIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_103, memb_criticality_constraint_101 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_RelConfItemIEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_104, - select_E_RABs_ToBeReleased_RelConfItemIEs_value_type, - { 0, &asn_PER_memb_value_constr_104, memb_value_constraint_101 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeReleased_RelConfItemIEs_tags_101[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeReleased_RelConfItemIEs_tag2el_101[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_RelConfItemIEs_specs_101 = { - sizeof(struct E_RABs_ToBeReleased_RelConfItemIEs), - offsetof(struct E_RABs_ToBeReleased_RelConfItemIEs, _asn_ctx), - asn_MAP_E_RABs_ToBeReleased_RelConfItemIEs_tag2el_101, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_RelConfItemIEs = { - "E-RABs-ToBeReleased-RelConfItemIEs", - "E-RABs-ToBeReleased-RelConfItemIEs", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_ToBeReleased_RelConfItemIEs_tags_101, - sizeof(asn_DEF_E_RABs_ToBeReleased_RelConfItemIEs_tags_101) - /sizeof(asn_DEF_E_RABs_ToBeReleased_RelConfItemIEs_tags_101[0]), /* 1 */ - asn_DEF_E_RABs_ToBeReleased_RelConfItemIEs_tags_101, /* Same as above */ - sizeof(asn_DEF_E_RABs_ToBeReleased_RelConfItemIEs_tags_101) - /sizeof(asn_DEF_E_RABs_ToBeReleased_RelConfItemIEs_tags_101[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_ToBeReleased_RelConfItemIEs_101, - 3, /* Elements count */ - &asn_SPC_E_RABs_ToBeReleased_RelConfItemIEs_specs_101 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_108[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_SubjectToCounterCheckItemIEs__value, choice.E_RABs_SubjectToCounterCheckItem), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RABs_SubjectToCounterCheckItem, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "E-RABs-SubjectToCounterCheckItem" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_108[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* E-RABs-SubjectToCounterCheckItem */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_108 = { - sizeof(struct E_RABs_SubjectToCounterCheckItemIEs__value), - offsetof(struct E_RABs_SubjectToCounterCheckItemIEs__value, _asn_ctx), - offsetof(struct E_RABs_SubjectToCounterCheckItemIEs__value, present), - sizeof(((struct E_RABs_SubjectToCounterCheckItemIEs__value *)0)->present), - asn_MAP_value_tag2el_108, - 1, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_108 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_108, - 1, /* Elements count */ - &asn_SPC_value_specs_108 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E_RABs_SubjectToCounterCheckItemIEs_105[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_SubjectToCounterCheckItemIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_106, memb_id_constraint_105 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_SubjectToCounterCheckItemIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_E_RABs_SubjectToCounterCheckItemIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_107, memb_criticality_constraint_105 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_SubjectToCounterCheckItemIEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_108, - select_E_RABs_SubjectToCounterCheckItemIEs_value_type, - { 0, &asn_PER_memb_value_constr_108, memb_value_constraint_105 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_SubjectToCounterCheckItemIEs_tags_105[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_SubjectToCounterCheckItemIEs_tag2el_105[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_SubjectToCounterCheckItemIEs_specs_105 = { - sizeof(struct E_RABs_SubjectToCounterCheckItemIEs), - offsetof(struct E_RABs_SubjectToCounterCheckItemIEs, _asn_ctx), - asn_MAP_E_RABs_SubjectToCounterCheckItemIEs_tag2el_105, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_SubjectToCounterCheckItemIEs = { - "E-RABs-SubjectToCounterCheckItemIEs", - "E-RABs-SubjectToCounterCheckItemIEs", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_SubjectToCounterCheckItemIEs_tags_105, - sizeof(asn_DEF_E_RABs_SubjectToCounterCheckItemIEs_tags_105) - /sizeof(asn_DEF_E_RABs_SubjectToCounterCheckItemIEs_tags_105[0]), /* 1 */ - asn_DEF_E_RABs_SubjectToCounterCheckItemIEs_tags_105, /* Same as above */ - sizeof(asn_DEF_E_RABs_SubjectToCounterCheckItemIEs_tags_105) - /sizeof(asn_DEF_E_RABs_SubjectToCounterCheckItemIEs_tags_105[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_SubjectToCounterCheckItemIEs_105, - 3, /* Elements count */ - &asn_SPC_E_RABs_SubjectToCounterCheckItemIEs_specs_105 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_112[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeSetupRetrieve_ItemIEs__value, choice.E_RABs_ToBeSetupRetrieve_Item), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RABs_ToBeSetupRetrieve_Item, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "E-RABs-ToBeSetupRetrieve-Item" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_112[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* E-RABs-ToBeSetupRetrieve-Item */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_112 = { - sizeof(struct E_RABs_ToBeSetupRetrieve_ItemIEs__value), - offsetof(struct E_RABs_ToBeSetupRetrieve_ItemIEs__value, _asn_ctx), - offsetof(struct E_RABs_ToBeSetupRetrieve_ItemIEs__value, present), - sizeof(((struct E_RABs_ToBeSetupRetrieve_ItemIEs__value *)0)->present), - asn_MAP_value_tag2el_112, - 1, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_112 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_112, - 1, /* Elements count */ - &asn_SPC_value_specs_112 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E_RABs_ToBeSetupRetrieve_ItemIEs_109[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeSetupRetrieve_ItemIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_110, memb_id_constraint_109 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeSetupRetrieve_ItemIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_E_RABs_ToBeSetupRetrieve_ItemIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_111, memb_criticality_constraint_109 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeSetupRetrieve_ItemIEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_112, - select_E_RABs_ToBeSetupRetrieve_ItemIEs_value_type, - { 0, &asn_PER_memb_value_constr_112, memb_value_constraint_109 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeSetupRetrieve_ItemIEs_tags_109[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeSetupRetrieve_ItemIEs_tag2el_109[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeSetupRetrieve_ItemIEs_specs_109 = { - sizeof(struct E_RABs_ToBeSetupRetrieve_ItemIEs), - offsetof(struct E_RABs_ToBeSetupRetrieve_ItemIEs, _asn_ctx), - asn_MAP_E_RABs_ToBeSetupRetrieve_ItemIEs_tag2el_109, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeSetupRetrieve_ItemIEs = { - "E-RABs-ToBeSetupRetrieve-ItemIEs", - "E-RABs-ToBeSetupRetrieve-ItemIEs", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_ToBeSetupRetrieve_ItemIEs_tags_109, - sizeof(asn_DEF_E_RABs_ToBeSetupRetrieve_ItemIEs_tags_109) - /sizeof(asn_DEF_E_RABs_ToBeSetupRetrieve_ItemIEs_tags_109[0]), /* 1 */ - asn_DEF_E_RABs_ToBeSetupRetrieve_ItemIEs_tags_109, /* Same as above */ - sizeof(asn_DEF_E_RABs_ToBeSetupRetrieve_ItemIEs_tags_109) - /sizeof(asn_DEF_E_RABs_ToBeSetupRetrieve_ItemIEs_tags_109[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_ToBeSetupRetrieve_ItemIEs_109, - 3, /* Elements count */ - &asn_SPC_E_RABs_ToBeSetupRetrieve_ItemIEs_specs_109 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_116[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_SgNBAddReq_ItemIEs__value, choice.E_RABs_ToBeAdded_SgNBAddReq_Item), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_Item, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "E-RABs-ToBeAdded-SgNBAddReq-Item" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_116[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* E-RABs-ToBeAdded-SgNBAddReq-Item */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_116 = { - sizeof(struct E_RABs_ToBeAdded_SgNBAddReq_ItemIEs__value), - offsetof(struct E_RABs_ToBeAdded_SgNBAddReq_ItemIEs__value, _asn_ctx), - offsetof(struct E_RABs_ToBeAdded_SgNBAddReq_ItemIEs__value, present), - sizeof(((struct E_RABs_ToBeAdded_SgNBAddReq_ItemIEs__value *)0)->present), - asn_MAP_value_tag2el_116, - 1, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_116 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_116, - 1, /* Elements count */ - &asn_SPC_value_specs_116 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E_RABs_ToBeAdded_SgNBAddReq_ItemIEs_113[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_SgNBAddReq_ItemIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_114, memb_id_constraint_113 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_SgNBAddReq_ItemIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_E_RABs_ToBeAdded_SgNBAddReq_ItemIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_115, memb_criticality_constraint_113 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_SgNBAddReq_ItemIEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_116, - select_E_RABs_ToBeAdded_SgNBAddReq_ItemIEs_value_type, - { 0, &asn_PER_memb_value_constr_116, memb_value_constraint_113 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_ItemIEs_tags_113[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeAdded_SgNBAddReq_ItemIEs_tag2el_113[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeAdded_SgNBAddReq_ItemIEs_specs_113 = { - sizeof(struct E_RABs_ToBeAdded_SgNBAddReq_ItemIEs), - offsetof(struct E_RABs_ToBeAdded_SgNBAddReq_ItemIEs, _asn_ctx), - asn_MAP_E_RABs_ToBeAdded_SgNBAddReq_ItemIEs_tag2el_113, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_ItemIEs = { - "E-RABs-ToBeAdded-SgNBAddReq-ItemIEs", - "E-RABs-ToBeAdded-SgNBAddReq-ItemIEs", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_ItemIEs_tags_113, - sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_ItemIEs_tags_113) - /sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_ItemIEs_tags_113[0]), /* 1 */ - asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_ItemIEs_tags_113, /* Same as above */ - sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_ItemIEs_tags_113) - /sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_ItemIEs_tags_113[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_ToBeAdded_SgNBAddReq_ItemIEs_113, - 3, /* Elements count */ - &asn_SPC_E_RABs_ToBeAdded_SgNBAddReq_ItemIEs_specs_113 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_120[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_ItemIEs__value, choice.E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_120[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_120 = { - sizeof(struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_ItemIEs__value), - offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_ItemIEs__value, _asn_ctx), - offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_ItemIEs__value, present), - sizeof(((struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_ItemIEs__value *)0)->present), - asn_MAP_value_tag2el_120, - 1, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_120 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_120, - 1, /* Elements count */ - &asn_SPC_value_specs_120 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_ItemIEs_117[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_ItemIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_118, memb_id_constraint_117 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_ItemIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_ItemIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_119, memb_criticality_constraint_117 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_ItemIEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_120, - select_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_ItemIEs_value_type, - { 0, &asn_PER_memb_value_constr_120, memb_value_constraint_117 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_ItemIEs_tags_117[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_ItemIEs_tag2el_117[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_ItemIEs_specs_117 = { - sizeof(struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_ItemIEs), - offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_ItemIEs, _asn_ctx), - asn_MAP_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_ItemIEs_tag2el_117, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_ItemIEs = { - "E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-ItemIEs", - "E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-ItemIEs", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_ItemIEs_tags_117, - sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_ItemIEs_tags_117) - /sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_ItemIEs_tags_117[0]), /* 1 */ - asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_ItemIEs_tags_117, /* Same as above */ - sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_ItemIEs_tags_117) - /sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_ItemIEs_tags_117[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_ItemIEs_117, - 3, /* Elements count */ - &asn_SPC_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_ItemIEs_specs_117 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_124[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_SgNBModReq_ItemIEs__value, choice.E_RABs_ToBeAdded_SgNBModReq_Item), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RABs_ToBeAdded_SgNBModReq_Item, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "E-RABs-ToBeAdded-SgNBModReq-Item" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_124[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* E-RABs-ToBeAdded-SgNBModReq-Item */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_124 = { - sizeof(struct E_RABs_ToBeAdded_SgNBModReq_ItemIEs__value), - offsetof(struct E_RABs_ToBeAdded_SgNBModReq_ItemIEs__value, _asn_ctx), - offsetof(struct E_RABs_ToBeAdded_SgNBModReq_ItemIEs__value, present), - sizeof(((struct E_RABs_ToBeAdded_SgNBModReq_ItemIEs__value *)0)->present), - asn_MAP_value_tag2el_124, - 1, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_124 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_124, - 1, /* Elements count */ - &asn_SPC_value_specs_124 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E_RABs_ToBeAdded_SgNBModReq_ItemIEs_121[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_SgNBModReq_ItemIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_122, memb_id_constraint_121 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_SgNBModReq_ItemIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_E_RABs_ToBeAdded_SgNBModReq_ItemIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_123, memb_criticality_constraint_121 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeAdded_SgNBModReq_ItemIEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_124, - select_E_RABs_ToBeAdded_SgNBModReq_ItemIEs_value_type, - { 0, &asn_PER_memb_value_constr_124, memb_value_constraint_121 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeAdded_SgNBModReq_ItemIEs_tags_121[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeAdded_SgNBModReq_ItemIEs_tag2el_121[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeAdded_SgNBModReq_ItemIEs_specs_121 = { - sizeof(struct E_RABs_ToBeAdded_SgNBModReq_ItemIEs), - offsetof(struct E_RABs_ToBeAdded_SgNBModReq_ItemIEs, _asn_ctx), - asn_MAP_E_RABs_ToBeAdded_SgNBModReq_ItemIEs_tag2el_121, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_SgNBModReq_ItemIEs = { - "E-RABs-ToBeAdded-SgNBModReq-ItemIEs", - "E-RABs-ToBeAdded-SgNBModReq-ItemIEs", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_ToBeAdded_SgNBModReq_ItemIEs_tags_121, - sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBModReq_ItemIEs_tags_121) - /sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBModReq_ItemIEs_tags_121[0]), /* 1 */ - asn_DEF_E_RABs_ToBeAdded_SgNBModReq_ItemIEs_tags_121, /* Same as above */ - sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBModReq_ItemIEs_tags_121) - /sizeof(asn_DEF_E_RABs_ToBeAdded_SgNBModReq_ItemIEs_tags_121[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_ToBeAdded_SgNBModReq_ItemIEs_121, - 3, /* Elements count */ - &asn_SPC_E_RABs_ToBeAdded_SgNBModReq_ItemIEs_specs_121 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_128[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeModified_SgNBModReq_ItemIEs__value, choice.E_RABs_ToBeModified_SgNBModReq_Item), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RABs_ToBeModified_SgNBModReq_Item, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "E-RABs-ToBeModified-SgNBModReq-Item" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_128[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* E-RABs-ToBeModified-SgNBModReq-Item */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_128 = { - sizeof(struct E_RABs_ToBeModified_SgNBModReq_ItemIEs__value), - offsetof(struct E_RABs_ToBeModified_SgNBModReq_ItemIEs__value, _asn_ctx), - offsetof(struct E_RABs_ToBeModified_SgNBModReq_ItemIEs__value, present), - sizeof(((struct E_RABs_ToBeModified_SgNBModReq_ItemIEs__value *)0)->present), - asn_MAP_value_tag2el_128, - 1, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_128 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_128, - 1, /* Elements count */ - &asn_SPC_value_specs_128 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E_RABs_ToBeModified_SgNBModReq_ItemIEs_125[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeModified_SgNBModReq_ItemIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_126, memb_id_constraint_125 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeModified_SgNBModReq_ItemIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_E_RABs_ToBeModified_SgNBModReq_ItemIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_127, memb_criticality_constraint_125 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeModified_SgNBModReq_ItemIEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_128, - select_E_RABs_ToBeModified_SgNBModReq_ItemIEs_value_type, - { 0, &asn_PER_memb_value_constr_128, memb_value_constraint_125 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeModified_SgNBModReq_ItemIEs_tags_125[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeModified_SgNBModReq_ItemIEs_tag2el_125[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeModified_SgNBModReq_ItemIEs_specs_125 = { - sizeof(struct E_RABs_ToBeModified_SgNBModReq_ItemIEs), - offsetof(struct E_RABs_ToBeModified_SgNBModReq_ItemIEs, _asn_ctx), - asn_MAP_E_RABs_ToBeModified_SgNBModReq_ItemIEs_tag2el_125, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeModified_SgNBModReq_ItemIEs = { - "E-RABs-ToBeModified-SgNBModReq-ItemIEs", - "E-RABs-ToBeModified-SgNBModReq-ItemIEs", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_ToBeModified_SgNBModReq_ItemIEs_tags_125, - sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReq_ItemIEs_tags_125) - /sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReq_ItemIEs_tags_125[0]), /* 1 */ - asn_DEF_E_RABs_ToBeModified_SgNBModReq_ItemIEs_tags_125, /* Same as above */ - sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReq_ItemIEs_tags_125) - /sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReq_ItemIEs_tags_125[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_ToBeModified_SgNBModReq_ItemIEs_125, - 3, /* Elements count */ - &asn_SPC_E_RABs_ToBeModified_SgNBModReq_ItemIEs_specs_125 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_132[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBModReq_ItemIEs__value, choice.E_RABs_ToBeReleased_SgNBModReq_Item), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RABs_ToBeReleased_SgNBModReq_Item, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "E-RABs-ToBeReleased-SgNBModReq-Item" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_132[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* E-RABs-ToBeReleased-SgNBModReq-Item */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_132 = { - sizeof(struct E_RABs_ToBeReleased_SgNBModReq_ItemIEs__value), - offsetof(struct E_RABs_ToBeReleased_SgNBModReq_ItemIEs__value, _asn_ctx), - offsetof(struct E_RABs_ToBeReleased_SgNBModReq_ItemIEs__value, present), - sizeof(((struct E_RABs_ToBeReleased_SgNBModReq_ItemIEs__value *)0)->present), - asn_MAP_value_tag2el_132, - 1, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_132 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_132, - 1, /* Elements count */ - &asn_SPC_value_specs_132 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBModReq_ItemIEs_129[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBModReq_ItemIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_130, memb_id_constraint_129 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBModReq_ItemIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_E_RABs_ToBeReleased_SgNBModReq_ItemIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_131, memb_criticality_constraint_129 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBModReq_ItemIEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_132, - select_E_RABs_ToBeReleased_SgNBModReq_ItemIEs_value_type, - { 0, &asn_PER_memb_value_constr_132, memb_value_constraint_129 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeReleased_SgNBModReq_ItemIEs_tags_129[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeReleased_SgNBModReq_ItemIEs_tag2el_129[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBModReq_ItemIEs_specs_129 = { - sizeof(struct E_RABs_ToBeReleased_SgNBModReq_ItemIEs), - offsetof(struct E_RABs_ToBeReleased_SgNBModReq_ItemIEs, _asn_ctx), - asn_MAP_E_RABs_ToBeReleased_SgNBModReq_ItemIEs_tag2el_129, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBModReq_ItemIEs = { - "E-RABs-ToBeReleased-SgNBModReq-ItemIEs", - "E-RABs-ToBeReleased-SgNBModReq-ItemIEs", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_ToBeReleased_SgNBModReq_ItemIEs_tags_129, - sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBModReq_ItemIEs_tags_129) - /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBModReq_ItemIEs_tags_129[0]), /* 1 */ - asn_DEF_E_RABs_ToBeReleased_SgNBModReq_ItemIEs_tags_129, /* Same as above */ - sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBModReq_ItemIEs_tags_129) - /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBModReq_ItemIEs_tags_129[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_ToBeReleased_SgNBModReq_ItemIEs_129, - 3, /* Elements count */ - &asn_SPC_E_RABs_ToBeReleased_SgNBModReq_ItemIEs_specs_129 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_136[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemIEs__value, choice.E_RABs_Admitted_ToBeAdded_SgNBModAck_Item), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "E-RABs-Admitted-ToBeAdded-SgNBModAck-Item" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_136[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* E-RABs-Admitted-ToBeAdded-SgNBModAck-Item */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_136 = { - sizeof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemIEs__value), - offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemIEs__value, _asn_ctx), - offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemIEs__value, present), - sizeof(((struct E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemIEs__value *)0)->present), - asn_MAP_value_tag2el_136, - 1, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_136 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_136, - 1, /* Elements count */ - &asn_SPC_value_specs_136 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemIEs_133[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_134, memb_id_constraint_133 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_135, memb_criticality_constraint_133 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemIEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_136, - select_E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemIEs_value_type, - { 0, &asn_PER_memb_value_constr_136, memb_value_constraint_133 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemIEs_tags_133[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemIEs_tag2el_133[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemIEs_specs_133 = { - sizeof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemIEs), - offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemIEs, _asn_ctx), - asn_MAP_E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemIEs_tag2el_133, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemIEs = { - "E-RABs-Admitted-ToBeAdded-SgNBModAck-ItemIEs", - "E-RABs-Admitted-ToBeAdded-SgNBModAck-ItemIEs", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemIEs_tags_133, - sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemIEs_tags_133) - /sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemIEs_tags_133[0]), /* 1 */ - asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemIEs_tags_133, /* Same as above */ - sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemIEs_tags_133) - /sizeof(asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemIEs_tags_133[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemIEs_133, - 3, /* Elements count */ - &asn_SPC_E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemIEs_specs_133 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_140[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeModified_SgNBModAck_ItemIEs__value, choice.E_RABs_Admitted_ToBeModified_SgNBModAck_Item), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAck_Item, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "E-RABs-Admitted-ToBeModified-SgNBModAck-Item" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_140[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* E-RABs-Admitted-ToBeModified-SgNBModAck-Item */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_140 = { - sizeof(struct E_RABs_Admitted_ToBeModified_SgNBModAck_ItemIEs__value), - offsetof(struct E_RABs_Admitted_ToBeModified_SgNBModAck_ItemIEs__value, _asn_ctx), - offsetof(struct E_RABs_Admitted_ToBeModified_SgNBModAck_ItemIEs__value, present), - sizeof(((struct E_RABs_Admitted_ToBeModified_SgNBModAck_ItemIEs__value *)0)->present), - asn_MAP_value_tag2el_140, - 1, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_140 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_140, - 1, /* Elements count */ - &asn_SPC_value_specs_140 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeModified_SgNBModAck_ItemIEs_137[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeModified_SgNBModAck_ItemIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_138, memb_id_constraint_137 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeModified_SgNBModAck_ItemIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_E_RABs_Admitted_ToBeModified_SgNBModAck_ItemIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_139, memb_criticality_constraint_137 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeModified_SgNBModAck_ItemIEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_140, - select_E_RABs_Admitted_ToBeModified_SgNBModAck_ItemIEs_value_type, - { 0, &asn_PER_memb_value_constr_140, memb_value_constraint_137 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAck_ItemIEs_tags_137[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_Admitted_ToBeModified_SgNBModAck_ItemIEs_tag2el_137[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeModified_SgNBModAck_ItemIEs_specs_137 = { - sizeof(struct E_RABs_Admitted_ToBeModified_SgNBModAck_ItemIEs), - offsetof(struct E_RABs_Admitted_ToBeModified_SgNBModAck_ItemIEs, _asn_ctx), - asn_MAP_E_RABs_Admitted_ToBeModified_SgNBModAck_ItemIEs_tag2el_137, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAck_ItemIEs = { - "E-RABs-Admitted-ToBeModified-SgNBModAck-ItemIEs", - "E-RABs-Admitted-ToBeModified-SgNBModAck-ItemIEs", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAck_ItemIEs_tags_137, - sizeof(asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAck_ItemIEs_tags_137) - /sizeof(asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAck_ItemIEs_tags_137[0]), /* 1 */ - asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAck_ItemIEs_tags_137, /* Same as above */ - sizeof(asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAck_ItemIEs_tags_137) - /sizeof(asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAck_ItemIEs_tags_137[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_Admitted_ToBeModified_SgNBModAck_ItemIEs_137, - 3, /* Elements count */ - &asn_SPC_E_RABs_Admitted_ToBeModified_SgNBModAck_ItemIEs_specs_137 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_144[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeReleased_SgNBModAck_ItemIEs__value, choice.E_RABs_Admitted_ToReleased_SgNBModAck_Item), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RABs_Admitted_ToReleased_SgNBModAck_Item, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "E-RABs-Admitted-ToReleased-SgNBModAck-Item" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_144[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* E-RABs-Admitted-ToReleased-SgNBModAck-Item */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_144 = { - sizeof(struct E_RABs_Admitted_ToBeReleased_SgNBModAck_ItemIEs__value), - offsetof(struct E_RABs_Admitted_ToBeReleased_SgNBModAck_ItemIEs__value, _asn_ctx), - offsetof(struct E_RABs_Admitted_ToBeReleased_SgNBModAck_ItemIEs__value, present), - sizeof(((struct E_RABs_Admitted_ToBeReleased_SgNBModAck_ItemIEs__value *)0)->present), - asn_MAP_value_tag2el_144, - 1, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_144 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_144, - 1, /* Elements count */ - &asn_SPC_value_specs_144 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeReleased_SgNBModAck_ItemIEs_141[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeReleased_SgNBModAck_ItemIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_142, memb_id_constraint_141 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeReleased_SgNBModAck_ItemIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_E_RABs_Admitted_ToBeReleased_SgNBModAck_ItemIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_143, memb_criticality_constraint_141 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeReleased_SgNBModAck_ItemIEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_144, - select_E_RABs_Admitted_ToBeReleased_SgNBModAck_ItemIEs_value_type, - { 0, &asn_PER_memb_value_constr_144, memb_value_constraint_141 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBModAck_ItemIEs_tags_141[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_Admitted_ToBeReleased_SgNBModAck_ItemIEs_tag2el_141[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeReleased_SgNBModAck_ItemIEs_specs_141 = { - sizeof(struct E_RABs_Admitted_ToBeReleased_SgNBModAck_ItemIEs), - offsetof(struct E_RABs_Admitted_ToBeReleased_SgNBModAck_ItemIEs, _asn_ctx), - asn_MAP_E_RABs_Admitted_ToBeReleased_SgNBModAck_ItemIEs_tag2el_141, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBModAck_ItemIEs = { - "E-RABs-Admitted-ToBeReleased-SgNBModAck-ItemIEs", - "E-RABs-Admitted-ToBeReleased-SgNBModAck-ItemIEs", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBModAck_ItemIEs_tags_141, - sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBModAck_ItemIEs_tags_141) - /sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBModAck_ItemIEs_tags_141[0]), /* 1 */ - asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBModAck_ItemIEs_tags_141, /* Same as above */ - sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBModAck_ItemIEs_tags_141) - /sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBModAck_ItemIEs_tags_141[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_Admitted_ToBeReleased_SgNBModAck_ItemIEs_141, - 3, /* Elements count */ - &asn_SPC_E_RABs_Admitted_ToBeReleased_SgNBModAck_ItemIEs_specs_141 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_148[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBModReqd_ItemIEs__value, choice.E_RABs_ToBeReleased_SgNBModReqd_Item), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RABs_ToBeReleased_SgNBModReqd_Item, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "E-RABs-ToBeReleased-SgNBModReqd-Item" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_148[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* E-RABs-ToBeReleased-SgNBModReqd-Item */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_148 = { - sizeof(struct E_RABs_ToBeReleased_SgNBModReqd_ItemIEs__value), - offsetof(struct E_RABs_ToBeReleased_SgNBModReqd_ItemIEs__value, _asn_ctx), - offsetof(struct E_RABs_ToBeReleased_SgNBModReqd_ItemIEs__value, present), - sizeof(((struct E_RABs_ToBeReleased_SgNBModReqd_ItemIEs__value *)0)->present), - asn_MAP_value_tag2el_148, - 1, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_148 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_148, - 1, /* Elements count */ - &asn_SPC_value_specs_148 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBModReqd_ItemIEs_145[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBModReqd_ItemIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_146, memb_id_constraint_145 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBModReqd_ItemIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_E_RABs_ToBeReleased_SgNBModReqd_ItemIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_147, memb_criticality_constraint_145 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBModReqd_ItemIEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_148, - select_E_RABs_ToBeReleased_SgNBModReqd_ItemIEs_value_type, - { 0, &asn_PER_memb_value_constr_148, memb_value_constraint_145 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeReleased_SgNBModReqd_ItemIEs_tags_145[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeReleased_SgNBModReqd_ItemIEs_tag2el_145[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBModReqd_ItemIEs_specs_145 = { - sizeof(struct E_RABs_ToBeReleased_SgNBModReqd_ItemIEs), - offsetof(struct E_RABs_ToBeReleased_SgNBModReqd_ItemIEs, _asn_ctx), - asn_MAP_E_RABs_ToBeReleased_SgNBModReqd_ItemIEs_tag2el_145, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBModReqd_ItemIEs = { - "E-RABs-ToBeReleased-SgNBModReqd-ItemIEs", - "E-RABs-ToBeReleased-SgNBModReqd-ItemIEs", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_ToBeReleased_SgNBModReqd_ItemIEs_tags_145, - sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBModReqd_ItemIEs_tags_145) - /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBModReqd_ItemIEs_tags_145[0]), /* 1 */ - asn_DEF_E_RABs_ToBeReleased_SgNBModReqd_ItemIEs_tags_145, /* Same as above */ - sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBModReqd_ItemIEs_tags_145) - /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBModReqd_ItemIEs_tags_145[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_ToBeReleased_SgNBModReqd_ItemIEs_145, - 3, /* Elements count */ - &asn_SPC_E_RABs_ToBeReleased_SgNBModReqd_ItemIEs_specs_145 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_152[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeModified_SgNBModReqd_ItemIEs__value, choice.E_RABs_ToBeModified_SgNBModReqd_Item), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RABs_ToBeModified_SgNBModReqd_Item, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "E-RABs-ToBeModified-SgNBModReqd-Item" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_152[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* E-RABs-ToBeModified-SgNBModReqd-Item */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_152 = { - sizeof(struct E_RABs_ToBeModified_SgNBModReqd_ItemIEs__value), - offsetof(struct E_RABs_ToBeModified_SgNBModReqd_ItemIEs__value, _asn_ctx), - offsetof(struct E_RABs_ToBeModified_SgNBModReqd_ItemIEs__value, present), - sizeof(((struct E_RABs_ToBeModified_SgNBModReqd_ItemIEs__value *)0)->present), - asn_MAP_value_tag2el_152, - 1, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_152 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_152, - 1, /* Elements count */ - &asn_SPC_value_specs_152 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E_RABs_ToBeModified_SgNBModReqd_ItemIEs_149[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeModified_SgNBModReqd_ItemIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_150, memb_id_constraint_149 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeModified_SgNBModReqd_ItemIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_E_RABs_ToBeModified_SgNBModReqd_ItemIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_151, memb_criticality_constraint_149 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeModified_SgNBModReqd_ItemIEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_152, - select_E_RABs_ToBeModified_SgNBModReqd_ItemIEs_value_type, - { 0, &asn_PER_memb_value_constr_152, memb_value_constraint_149 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeModified_SgNBModReqd_ItemIEs_tags_149[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeModified_SgNBModReqd_ItemIEs_tag2el_149[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeModified_SgNBModReqd_ItemIEs_specs_149 = { - sizeof(struct E_RABs_ToBeModified_SgNBModReqd_ItemIEs), - offsetof(struct E_RABs_ToBeModified_SgNBModReqd_ItemIEs, _asn_ctx), - asn_MAP_E_RABs_ToBeModified_SgNBModReqd_ItemIEs_tag2el_149, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeModified_SgNBModReqd_ItemIEs = { - "E-RABs-ToBeModified-SgNBModReqd-ItemIEs", - "E-RABs-ToBeModified-SgNBModReqd-ItemIEs", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_ToBeModified_SgNBModReqd_ItemIEs_tags_149, - sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReqd_ItemIEs_tags_149) - /sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReqd_ItemIEs_tags_149[0]), /* 1 */ - asn_DEF_E_RABs_ToBeModified_SgNBModReqd_ItemIEs_tags_149, /* Same as above */ - sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReqd_ItemIEs_tags_149) - /sizeof(asn_DEF_E_RABs_ToBeModified_SgNBModReqd_ItemIEs_tags_149[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_ToBeModified_SgNBModReqd_ItemIEs_149, - 3, /* Elements count */ - &asn_SPC_E_RABs_ToBeModified_SgNBModReqd_ItemIEs_specs_149 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_156[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_AdmittedToBeModified_SgNBModConf_ItemIEs__value, choice.E_RABs_AdmittedToBeModified_SgNBModConf_Item), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_Item, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "E-RABs-AdmittedToBeModified-SgNBModConf-Item" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_156[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* E-RABs-AdmittedToBeModified-SgNBModConf-Item */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_156 = { - sizeof(struct E_RABs_AdmittedToBeModified_SgNBModConf_ItemIEs__value), - offsetof(struct E_RABs_AdmittedToBeModified_SgNBModConf_ItemIEs__value, _asn_ctx), - offsetof(struct E_RABs_AdmittedToBeModified_SgNBModConf_ItemIEs__value, present), - sizeof(((struct E_RABs_AdmittedToBeModified_SgNBModConf_ItemIEs__value *)0)->present), - asn_MAP_value_tag2el_156, - 1, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_156 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_156, - 1, /* Elements count */ - &asn_SPC_value_specs_156 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E_RABs_AdmittedToBeModified_SgNBModConf_ItemIEs_153[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_AdmittedToBeModified_SgNBModConf_ItemIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_154, memb_id_constraint_153 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_AdmittedToBeModified_SgNBModConf_ItemIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_E_RABs_AdmittedToBeModified_SgNBModConf_ItemIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_155, memb_criticality_constraint_153 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_AdmittedToBeModified_SgNBModConf_ItemIEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_156, - select_E_RABs_AdmittedToBeModified_SgNBModConf_ItemIEs_value_type, - { 0, &asn_PER_memb_value_constr_156, memb_value_constraint_153 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_ItemIEs_tags_153[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_AdmittedToBeModified_SgNBModConf_ItemIEs_tag2el_153[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_AdmittedToBeModified_SgNBModConf_ItemIEs_specs_153 = { - sizeof(struct E_RABs_AdmittedToBeModified_SgNBModConf_ItemIEs), - offsetof(struct E_RABs_AdmittedToBeModified_SgNBModConf_ItemIEs, _asn_ctx), - asn_MAP_E_RABs_AdmittedToBeModified_SgNBModConf_ItemIEs_tag2el_153, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_ItemIEs = { - "E-RABs-AdmittedToBeModified-SgNBModConf-ItemIEs", - "E-RABs-AdmittedToBeModified-SgNBModConf-ItemIEs", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_ItemIEs_tags_153, - sizeof(asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_ItemIEs_tags_153) - /sizeof(asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_ItemIEs_tags_153[0]), /* 1 */ - asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_ItemIEs_tags_153, /* Same as above */ - sizeof(asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_ItemIEs_tags_153) - /sizeof(asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_ItemIEs_tags_153[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_AdmittedToBeModified_SgNBModConf_ItemIEs_153, - 3, /* Elements count */ - &asn_SPC_E_RABs_AdmittedToBeModified_SgNBModConf_ItemIEs_specs_153 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_160[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBRelReq_ItemIEs__value, choice.E_RABs_ToBeReleased_SgNBRelReq_Item), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_Item, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "E-RABs-ToBeReleased-SgNBRelReq-Item" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_160[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* E-RABs-ToBeReleased-SgNBRelReq-Item */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_160 = { - sizeof(struct E_RABs_ToBeReleased_SgNBRelReq_ItemIEs__value), - offsetof(struct E_RABs_ToBeReleased_SgNBRelReq_ItemIEs__value, _asn_ctx), - offsetof(struct E_RABs_ToBeReleased_SgNBRelReq_ItemIEs__value, present), - sizeof(((struct E_RABs_ToBeReleased_SgNBRelReq_ItemIEs__value *)0)->present), - asn_MAP_value_tag2el_160, - 1, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_160 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_160, - 1, /* Elements count */ - &asn_SPC_value_specs_160 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBRelReq_ItemIEs_157[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBRelReq_ItemIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_158, memb_id_constraint_157 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBRelReq_ItemIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_E_RABs_ToBeReleased_SgNBRelReq_ItemIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_159, memb_criticality_constraint_157 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBRelReq_ItemIEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_160, - select_E_RABs_ToBeReleased_SgNBRelReq_ItemIEs_value_type, - { 0, &asn_PER_memb_value_constr_160, memb_value_constraint_157 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_ItemIEs_tags_157[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeReleased_SgNBRelReq_ItemIEs_tag2el_157[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBRelReq_ItemIEs_specs_157 = { - sizeof(struct E_RABs_ToBeReleased_SgNBRelReq_ItemIEs), - offsetof(struct E_RABs_ToBeReleased_SgNBRelReq_ItemIEs, _asn_ctx), - asn_MAP_E_RABs_ToBeReleased_SgNBRelReq_ItemIEs_tag2el_157, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_ItemIEs = { - "E-RABs-ToBeReleased-SgNBRelReq-ItemIEs", - "E-RABs-ToBeReleased-SgNBRelReq-ItemIEs", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_ItemIEs_tags_157, - sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_ItemIEs_tags_157) - /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_ItemIEs_tags_157[0]), /* 1 */ - asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_ItemIEs_tags_157, /* Same as above */ - sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_ItemIEs_tags_157) - /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_ItemIEs_tags_157[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_ToBeReleased_SgNBRelReq_ItemIEs_157, - 3, /* Elements count */ - &asn_SPC_E_RABs_ToBeReleased_SgNBRelReq_ItemIEs_specs_157 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_164[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemIEs__value, choice.E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "E-RABs-Admitted-ToBeReleased-SgNBRelReqAck-Item" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_164[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* E-RABs-Admitted-ToBeReleased-SgNBRelReqAck-Item */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_164 = { - sizeof(struct E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemIEs__value), - offsetof(struct E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemIEs__value, _asn_ctx), - offsetof(struct E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemIEs__value, present), - sizeof(((struct E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemIEs__value *)0)->present), - asn_MAP_value_tag2el_164, - 1, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_164 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_164, - 1, /* Elements count */ - &asn_SPC_value_specs_164 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemIEs_161[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_162, memb_id_constraint_161 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_163, memb_criticality_constraint_161 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemIEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_164, - select_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemIEs_value_type, - { 0, &asn_PER_memb_value_constr_164, memb_value_constraint_161 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemIEs_tags_161[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemIEs_tag2el_161[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemIEs_specs_161 = { - sizeof(struct E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemIEs), - offsetof(struct E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemIEs, _asn_ctx), - asn_MAP_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemIEs_tag2el_161, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemIEs = { - "E-RABs-Admitted-ToBeReleased-SgNBRelReqAck-ItemIEs", - "E-RABs-Admitted-ToBeReleased-SgNBRelReqAck-ItemIEs", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemIEs_tags_161, - sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemIEs_tags_161) - /sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemIEs_tags_161[0]), /* 1 */ - asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemIEs_tags_161, /* Same as above */ - sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemIEs_tags_161) - /sizeof(asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemIEs_tags_161[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemIEs_161, - 3, /* Elements count */ - &asn_SPC_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemIEs_specs_161 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_168[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBRelReqd_ItemIEs__value, choice.E_RABs_ToBeReleased_SgNBRelReqd_Item), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RABs_ToBeReleased_SgNBRelReqd_Item, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "E-RABs-ToBeReleased-SgNBRelReqd-Item" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_168[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* E-RABs-ToBeReleased-SgNBRelReqd-Item */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_168 = { - sizeof(struct E_RABs_ToBeReleased_SgNBRelReqd_ItemIEs__value), - offsetof(struct E_RABs_ToBeReleased_SgNBRelReqd_ItemIEs__value, _asn_ctx), - offsetof(struct E_RABs_ToBeReleased_SgNBRelReqd_ItemIEs__value, present), - sizeof(((struct E_RABs_ToBeReleased_SgNBRelReqd_ItemIEs__value *)0)->present), - asn_MAP_value_tag2el_168, - 1, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_168 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_168, - 1, /* Elements count */ - &asn_SPC_value_specs_168 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBRelReqd_ItemIEs_165[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBRelReqd_ItemIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_166, memb_id_constraint_165 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBRelReqd_ItemIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_E_RABs_ToBeReleased_SgNBRelReqd_ItemIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_167, memb_criticality_constraint_165 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBRelReqd_ItemIEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_168, - select_E_RABs_ToBeReleased_SgNBRelReqd_ItemIEs_value_type, - { 0, &asn_PER_memb_value_constr_168, memb_value_constraint_165 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeReleased_SgNBRelReqd_ItemIEs_tags_165[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeReleased_SgNBRelReqd_ItemIEs_tag2el_165[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBRelReqd_ItemIEs_specs_165 = { - sizeof(struct E_RABs_ToBeReleased_SgNBRelReqd_ItemIEs), - offsetof(struct E_RABs_ToBeReleased_SgNBRelReqd_ItemIEs, _asn_ctx), - asn_MAP_E_RABs_ToBeReleased_SgNBRelReqd_ItemIEs_tag2el_165, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBRelReqd_ItemIEs = { - "E-RABs-ToBeReleased-SgNBRelReqd-ItemIEs", - "E-RABs-ToBeReleased-SgNBRelReqd-ItemIEs", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_ToBeReleased_SgNBRelReqd_ItemIEs_tags_165, - sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelReqd_ItemIEs_tags_165) - /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelReqd_ItemIEs_tags_165[0]), /* 1 */ - asn_DEF_E_RABs_ToBeReleased_SgNBRelReqd_ItemIEs_tags_165, /* Same as above */ - sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelReqd_ItemIEs_tags_165) - /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelReqd_ItemIEs_tags_165[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_ToBeReleased_SgNBRelReqd_ItemIEs_165, - 3, /* Elements count */ - &asn_SPC_E_RABs_ToBeReleased_SgNBRelReqd_ItemIEs_specs_165 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_172[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBRelConf_ItemIEs__value, choice.E_RABs_ToBeReleased_SgNBRelConf_Item), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_Item, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "E-RABs-ToBeReleased-SgNBRelConf-Item" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_172[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* E-RABs-ToBeReleased-SgNBRelConf-Item */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_172 = { - sizeof(struct E_RABs_ToBeReleased_SgNBRelConf_ItemIEs__value), - offsetof(struct E_RABs_ToBeReleased_SgNBRelConf_ItemIEs__value, _asn_ctx), - offsetof(struct E_RABs_ToBeReleased_SgNBRelConf_ItemIEs__value, present), - sizeof(((struct E_RABs_ToBeReleased_SgNBRelConf_ItemIEs__value *)0)->present), - asn_MAP_value_tag2el_172, - 1, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_172 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_172, - 1, /* Elements count */ - &asn_SPC_value_specs_172 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBRelConf_ItemIEs_169[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBRelConf_ItemIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_170, memb_id_constraint_169 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBRelConf_ItemIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_E_RABs_ToBeReleased_SgNBRelConf_ItemIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_171, memb_criticality_constraint_169 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBRelConf_ItemIEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_172, - select_E_RABs_ToBeReleased_SgNBRelConf_ItemIEs_value_type, - { 0, &asn_PER_memb_value_constr_172, memb_value_constraint_169 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_ItemIEs_tags_169[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeReleased_SgNBRelConf_ItemIEs_tag2el_169[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBRelConf_ItemIEs_specs_169 = { - sizeof(struct E_RABs_ToBeReleased_SgNBRelConf_ItemIEs), - offsetof(struct E_RABs_ToBeReleased_SgNBRelConf_ItemIEs, _asn_ctx), - asn_MAP_E_RABs_ToBeReleased_SgNBRelConf_ItemIEs_tag2el_169, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_ItemIEs = { - "E-RABs-ToBeReleased-SgNBRelConf-ItemIEs", - "E-RABs-ToBeReleased-SgNBRelConf-ItemIEs", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_ItemIEs_tags_169, - sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_ItemIEs_tags_169) - /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_ItemIEs_tags_169[0]), /* 1 */ - asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_ItemIEs_tags_169, /* Same as above */ - sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_ItemIEs_tags_169) - /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_ItemIEs_tags_169[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_ToBeReleased_SgNBRelConf_ItemIEs_169, - 3, /* Elements count */ - &asn_SPC_E_RABs_ToBeReleased_SgNBRelConf_ItemIEs_specs_169 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_176[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_SubjectToSgNBCounterCheck_ItemIEs__value, choice.E_RABs_SubjectToSgNBCounterCheck_Item), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RABs_SubjectToSgNBCounterCheck_Item, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "E-RABs-SubjectToSgNBCounterCheck-Item" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_176[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* E-RABs-SubjectToSgNBCounterCheck-Item */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_176 = { - sizeof(struct E_RABs_SubjectToSgNBCounterCheck_ItemIEs__value), - offsetof(struct E_RABs_SubjectToSgNBCounterCheck_ItemIEs__value, _asn_ctx), - offsetof(struct E_RABs_SubjectToSgNBCounterCheck_ItemIEs__value, present), - sizeof(((struct E_RABs_SubjectToSgNBCounterCheck_ItemIEs__value *)0)->present), - asn_MAP_value_tag2el_176, - 1, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_176 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_176, - 1, /* Elements count */ - &asn_SPC_value_specs_176 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E_RABs_SubjectToSgNBCounterCheck_ItemIEs_173[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_SubjectToSgNBCounterCheck_ItemIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_174, memb_id_constraint_173 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_SubjectToSgNBCounterCheck_ItemIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_E_RABs_SubjectToSgNBCounterCheck_ItemIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_175, memb_criticality_constraint_173 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_SubjectToSgNBCounterCheck_ItemIEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_176, - select_E_RABs_SubjectToSgNBCounterCheck_ItemIEs_value_type, - { 0, &asn_PER_memb_value_constr_176, memb_value_constraint_173 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_SubjectToSgNBCounterCheck_ItemIEs_tags_173[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_SubjectToSgNBCounterCheck_ItemIEs_tag2el_173[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_SubjectToSgNBCounterCheck_ItemIEs_specs_173 = { - sizeof(struct E_RABs_SubjectToSgNBCounterCheck_ItemIEs), - offsetof(struct E_RABs_SubjectToSgNBCounterCheck_ItemIEs, _asn_ctx), - asn_MAP_E_RABs_SubjectToSgNBCounterCheck_ItemIEs_tag2el_173, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_SubjectToSgNBCounterCheck_ItemIEs = { - "E-RABs-SubjectToSgNBCounterCheck-ItemIEs", - "E-RABs-SubjectToSgNBCounterCheck-ItemIEs", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_SubjectToSgNBCounterCheck_ItemIEs_tags_173, - sizeof(asn_DEF_E_RABs_SubjectToSgNBCounterCheck_ItemIEs_tags_173) - /sizeof(asn_DEF_E_RABs_SubjectToSgNBCounterCheck_ItemIEs_tags_173[0]), /* 1 */ - asn_DEF_E_RABs_SubjectToSgNBCounterCheck_ItemIEs_tags_173, /* Same as above */ - sizeof(asn_DEF_E_RABs_SubjectToSgNBCounterCheck_ItemIEs_tags_173) - /sizeof(asn_DEF_E_RABs_SubjectToSgNBCounterCheck_ItemIEs_tags_173[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_SubjectToSgNBCounterCheck_ItemIEs_173, - 3, /* Elements count */ - &asn_SPC_E_RABs_SubjectToSgNBCounterCheck_ItemIEs_specs_173 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_180[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBChaConf_ItemIEs__value, choice.E_RABs_ToBeReleased_SgNBChaConf_Item), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_Item, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "E-RABs-ToBeReleased-SgNBChaConf-Item" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_180[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* E-RABs-ToBeReleased-SgNBChaConf-Item */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_180 = { - sizeof(struct E_RABs_ToBeReleased_SgNBChaConf_ItemIEs__value), - offsetof(struct E_RABs_ToBeReleased_SgNBChaConf_ItemIEs__value, _asn_ctx), - offsetof(struct E_RABs_ToBeReleased_SgNBChaConf_ItemIEs__value, present), - sizeof(((struct E_RABs_ToBeReleased_SgNBChaConf_ItemIEs__value *)0)->present), - asn_MAP_value_tag2el_180, - 1, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_180 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_180, - 1, /* Elements count */ - &asn_SPC_value_specs_180 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBChaConf_ItemIEs_177[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBChaConf_ItemIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_178, memb_id_constraint_177 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBChaConf_ItemIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_E_RABs_ToBeReleased_SgNBChaConf_ItemIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_179, memb_criticality_constraint_177 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_ToBeReleased_SgNBChaConf_ItemIEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_180, - select_E_RABs_ToBeReleased_SgNBChaConf_ItemIEs_value_type, - { 0, &asn_PER_memb_value_constr_180, memb_value_constraint_177 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_ItemIEs_tags_177[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_ToBeReleased_SgNBChaConf_ItemIEs_tag2el_177[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBChaConf_ItemIEs_specs_177 = { - sizeof(struct E_RABs_ToBeReleased_SgNBChaConf_ItemIEs), - offsetof(struct E_RABs_ToBeReleased_SgNBChaConf_ItemIEs, _asn_ctx), - asn_MAP_E_RABs_ToBeReleased_SgNBChaConf_ItemIEs_tag2el_177, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_ItemIEs = { - "E-RABs-ToBeReleased-SgNBChaConf-ItemIEs", - "E-RABs-ToBeReleased-SgNBChaConf-ItemIEs", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_ItemIEs_tags_177, - sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_ItemIEs_tags_177) - /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_ItemIEs_tags_177[0]), /* 1 */ - asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_ItemIEs_tags_177, /* Same as above */ - sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_ItemIEs_tags_177) - /sizeof(asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_ItemIEs_tags_177[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_ToBeReleased_SgNBChaConf_ItemIEs_177, - 3, /* Elements count */ - &asn_SPC_E_RABs_ToBeReleased_SgNBChaConf_ItemIEs_specs_177 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_184[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_DataForwardingAddress_ItemIEs__value, choice.E_RABs_DataForwardingAddress_Item), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RABs_DataForwardingAddress_Item, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "E-RABs-DataForwardingAddress-Item" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_184[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* E-RABs-DataForwardingAddress-Item */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_184 = { - sizeof(struct E_RABs_DataForwardingAddress_ItemIEs__value), - offsetof(struct E_RABs_DataForwardingAddress_ItemIEs__value, _asn_ctx), - offsetof(struct E_RABs_DataForwardingAddress_ItemIEs__value, present), - sizeof(((struct E_RABs_DataForwardingAddress_ItemIEs__value *)0)->present), - asn_MAP_value_tag2el_184, - 1, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_184 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_184, - 1, /* Elements count */ - &asn_SPC_value_specs_184 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E_RABs_DataForwardingAddress_ItemIEs_181[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_DataForwardingAddress_ItemIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_182, memb_id_constraint_181 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABs_DataForwardingAddress_ItemIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_E_RABs_DataForwardingAddress_ItemIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_183, memb_criticality_constraint_181 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABs_DataForwardingAddress_ItemIEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_184, - select_E_RABs_DataForwardingAddress_ItemIEs_value_type, - { 0, &asn_PER_memb_value_constr_184, memb_value_constraint_181 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABs_DataForwardingAddress_ItemIEs_tags_181[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABs_DataForwardingAddress_ItemIEs_tag2el_181[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABs_DataForwardingAddress_ItemIEs_specs_181 = { - sizeof(struct E_RABs_DataForwardingAddress_ItemIEs), - offsetof(struct E_RABs_DataForwardingAddress_ItemIEs, _asn_ctx), - asn_MAP_E_RABs_DataForwardingAddress_ItemIEs_tag2el_181, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABs_DataForwardingAddress_ItemIEs = { - "E-RABs-DataForwardingAddress-ItemIEs", - "E-RABs-DataForwardingAddress-ItemIEs", - &asn_OP_SEQUENCE, - asn_DEF_E_RABs_DataForwardingAddress_ItemIEs_tags_181, - sizeof(asn_DEF_E_RABs_DataForwardingAddress_ItemIEs_tags_181) - /sizeof(asn_DEF_E_RABs_DataForwardingAddress_ItemIEs_tags_181[0]), /* 1 */ - asn_DEF_E_RABs_DataForwardingAddress_ItemIEs_tags_181, /* Same as above */ - sizeof(asn_DEF_E_RABs_DataForwardingAddress_ItemIEs_tags_181) - /sizeof(asn_DEF_E_RABs_DataForwardingAddress_ItemIEs_tags_181[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_DataForwardingAddress_ItemIEs_181, - 3, /* Elements count */ - &asn_SPC_E_RABs_DataForwardingAddress_ItemIEs_specs_181 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_188[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionRequest_IEs__value, choice.RICrequestID), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICrequestID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICrequestID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionRequest_IEs__value, choice.RANfunctionID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_RANfunctionID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RANfunctionID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionRequest_IEs__value, choice.RICsubscription), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICsubscription, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICsubscription" - }, -}; -static const unsigned asn_MAP_value_to_canonical_188[] = { 1, 0, 2 }; -static const unsigned asn_MAP_value_from_canonical_188[] = { 1, 0, 2 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_188[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* RANfunctionID */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 1 }, /* RICrequestID */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -1, 0 } /* RICsubscription */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_188 = { - sizeof(struct RICsubscriptionRequest_IEs__value), - offsetof(struct RICsubscriptionRequest_IEs__value, _asn_ctx), - offsetof(struct RICsubscriptionRequest_IEs__value, present), - sizeof(((struct RICsubscriptionRequest_IEs__value *)0)->present), - asn_MAP_value_tag2el_188, - 3, /* Count of tags in the map */ - asn_MAP_value_to_canonical_188, - asn_MAP_value_from_canonical_188, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_188 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_188, - 3, /* Elements count */ - &asn_SPC_value_specs_188 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_RICsubscriptionRequest_IEs_185[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionRequest_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_186, memb_id_constraint_185 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionRequest_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_RICsubscriptionRequest_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_187, memb_criticality_constraint_185 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionRequest_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_188, - select_RICsubscriptionRequest_IEs_value_type, - { 0, &asn_PER_memb_value_constr_188, memb_value_constraint_185 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICsubscriptionRequest_IEs_tags_185[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionRequest_IEs_tag2el_185[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionRequest_IEs_specs_185 = { - sizeof(struct RICsubscriptionRequest_IEs), - offsetof(struct RICsubscriptionRequest_IEs, _asn_ctx), - asn_MAP_RICsubscriptionRequest_IEs_tag2el_185, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICsubscriptionRequest_IEs = { - "RICsubscriptionRequest-IEs", - "RICsubscriptionRequest-IEs", - &asn_OP_SEQUENCE, - asn_DEF_RICsubscriptionRequest_IEs_tags_185, - sizeof(asn_DEF_RICsubscriptionRequest_IEs_tags_185) - /sizeof(asn_DEF_RICsubscriptionRequest_IEs_tags_185[0]), /* 1 */ - asn_DEF_RICsubscriptionRequest_IEs_tags_185, /* Same as above */ - sizeof(asn_DEF_RICsubscriptionRequest_IEs_tags_185) - /sizeof(asn_DEF_RICsubscriptionRequest_IEs_tags_185[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICsubscriptionRequest_IEs_185, - 3, /* Elements count */ - &asn_SPC_RICsubscriptionRequest_IEs_specs_185 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_192[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionResponse_IEs__value, choice.RICrequestID), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICrequestID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICrequestID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionResponse_IEs__value, choice.RANfunctionID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_RANfunctionID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RANfunctionID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionResponse_IEs__value, choice.RICaction_Admitted_List), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICaction_Admitted_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICaction-Admitted-List" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionResponse_IEs__value, choice.RICaction_NotAdmitted_List), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICaction_NotAdmitted_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICaction-NotAdmitted-List" - }, -}; -static const unsigned asn_MAP_value_to_canonical_192[] = { 1, 0, 2, 3 }; -static const unsigned asn_MAP_value_from_canonical_192[] = { 1, 0, 2, 3 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_192[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* RANfunctionID */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 2 }, /* RICrequestID */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -1, 1 }, /* RICaction-Admitted-List */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -2, 0 } /* RICaction-NotAdmitted-List */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_192 = { - sizeof(struct RICsubscriptionResponse_IEs__value), - offsetof(struct RICsubscriptionResponse_IEs__value, _asn_ctx), - offsetof(struct RICsubscriptionResponse_IEs__value, present), - sizeof(((struct RICsubscriptionResponse_IEs__value *)0)->present), - asn_MAP_value_tag2el_192, - 4, /* Count of tags in the map */ - asn_MAP_value_to_canonical_192, - asn_MAP_value_from_canonical_192, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_192 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_192, - 4, /* Elements count */ - &asn_SPC_value_specs_192 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_RICsubscriptionResponse_IEs_189[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionResponse_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_190, memb_id_constraint_189 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionResponse_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_RICsubscriptionResponse_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_191, memb_criticality_constraint_189 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionResponse_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_192, - select_RICsubscriptionResponse_IEs_value_type, - { 0, &asn_PER_memb_value_constr_192, memb_value_constraint_189 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICsubscriptionResponse_IEs_tags_189[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionResponse_IEs_tag2el_189[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionResponse_IEs_specs_189 = { - sizeof(struct RICsubscriptionResponse_IEs), - offsetof(struct RICsubscriptionResponse_IEs, _asn_ctx), - asn_MAP_RICsubscriptionResponse_IEs_tag2el_189, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICsubscriptionResponse_IEs = { - "RICsubscriptionResponse-IEs", - "RICsubscriptionResponse-IEs", - &asn_OP_SEQUENCE, - asn_DEF_RICsubscriptionResponse_IEs_tags_189, - sizeof(asn_DEF_RICsubscriptionResponse_IEs_tags_189) - /sizeof(asn_DEF_RICsubscriptionResponse_IEs_tags_189[0]), /* 1 */ - asn_DEF_RICsubscriptionResponse_IEs_tags_189, /* Same as above */ - sizeof(asn_DEF_RICsubscriptionResponse_IEs_tags_189) - /sizeof(asn_DEF_RICsubscriptionResponse_IEs_tags_189[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICsubscriptionResponse_IEs_189, - 3, /* Elements count */ - &asn_SPC_RICsubscriptionResponse_IEs_specs_189 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_196[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionFailure_IEs__value, choice.RICrequestID), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICrequestID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICrequestID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionFailure_IEs__value, choice.RANfunctionID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_RANfunctionID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RANfunctionID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionFailure_IEs__value, choice.RICaction_NotAdmitted_List), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICaction_NotAdmitted_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICaction-NotAdmitted-List" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionFailure_IEs__value, choice.CriticalityDiagnostics), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CriticalityDiagnostics, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "CriticalityDiagnostics" - }, -}; -static const unsigned asn_MAP_value_to_canonical_196[] = { 1, 0, 2, 3 }; -static const unsigned asn_MAP_value_from_canonical_196[] = { 1, 0, 2, 3 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_196[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* RANfunctionID */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 2 }, /* RICrequestID */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -1, 1 }, /* RICaction-NotAdmitted-List */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -2, 0 } /* CriticalityDiagnostics */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_196 = { - sizeof(struct RICsubscriptionFailure_IEs__value), - offsetof(struct RICsubscriptionFailure_IEs__value, _asn_ctx), - offsetof(struct RICsubscriptionFailure_IEs__value, present), - sizeof(((struct RICsubscriptionFailure_IEs__value *)0)->present), - asn_MAP_value_tag2el_196, - 4, /* Count of tags in the map */ - asn_MAP_value_to_canonical_196, - asn_MAP_value_from_canonical_196, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_196 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_196, - 4, /* Elements count */ - &asn_SPC_value_specs_196 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_RICsubscriptionFailure_IEs_193[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionFailure_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_194, memb_id_constraint_193 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionFailure_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_RICsubscriptionFailure_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_195, memb_criticality_constraint_193 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionFailure_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_196, - select_RICsubscriptionFailure_IEs_value_type, - { 0, &asn_PER_memb_value_constr_196, memb_value_constraint_193 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICsubscriptionFailure_IEs_tags_193[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionFailure_IEs_tag2el_193[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionFailure_IEs_specs_193 = { - sizeof(struct RICsubscriptionFailure_IEs), - offsetof(struct RICsubscriptionFailure_IEs, _asn_ctx), - asn_MAP_RICsubscriptionFailure_IEs_tag2el_193, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICsubscriptionFailure_IEs = { - "RICsubscriptionFailure-IEs", - "RICsubscriptionFailure-IEs", - &asn_OP_SEQUENCE, - asn_DEF_RICsubscriptionFailure_IEs_tags_193, - sizeof(asn_DEF_RICsubscriptionFailure_IEs_tags_193) - /sizeof(asn_DEF_RICsubscriptionFailure_IEs_tags_193[0]), /* 1 */ - asn_DEF_RICsubscriptionFailure_IEs_tags_193, /* Same as above */ - sizeof(asn_DEF_RICsubscriptionFailure_IEs_tags_193) - /sizeof(asn_DEF_RICsubscriptionFailure_IEs_tags_193[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICsubscriptionFailure_IEs_193, - 3, /* Elements count */ - &asn_SPC_RICsubscriptionFailure_IEs_specs_193 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_200[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteRequest_IEs__value, choice.RICrequestID), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICrequestID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICrequestID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteRequest_IEs__value, choice.RANfunctionID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_RANfunctionID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RANfunctionID" - }, -}; -static const unsigned asn_MAP_value_to_canonical_200[] = { 1, 0 }; -static const unsigned asn_MAP_value_from_canonical_200[] = { 1, 0 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_200[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* RANfunctionID */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RICrequestID */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_200 = { - sizeof(struct RICsubscriptionDeleteRequest_IEs__value), - offsetof(struct RICsubscriptionDeleteRequest_IEs__value, _asn_ctx), - offsetof(struct RICsubscriptionDeleteRequest_IEs__value, present), - sizeof(((struct RICsubscriptionDeleteRequest_IEs__value *)0)->present), - asn_MAP_value_tag2el_200, - 2, /* Count of tags in the map */ - asn_MAP_value_to_canonical_200, - asn_MAP_value_from_canonical_200, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_200 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_200, - 2, /* Elements count */ - &asn_SPC_value_specs_200 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteRequest_IEs_197[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteRequest_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_198, memb_id_constraint_197 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteRequest_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_RICsubscriptionDeleteRequest_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_199, memb_criticality_constraint_197 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteRequest_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_200, - select_RICsubscriptionDeleteRequest_IEs_value_type, - { 0, &asn_PER_memb_value_constr_200, memb_value_constraint_197 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICsubscriptionDeleteRequest_IEs_tags_197[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionDeleteRequest_IEs_tag2el_197[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteRequest_IEs_specs_197 = { - sizeof(struct RICsubscriptionDeleteRequest_IEs), - offsetof(struct RICsubscriptionDeleteRequest_IEs, _asn_ctx), - asn_MAP_RICsubscriptionDeleteRequest_IEs_tag2el_197, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDeleteRequest_IEs = { - "RICsubscriptionDeleteRequest-IEs", - "RICsubscriptionDeleteRequest-IEs", - &asn_OP_SEQUENCE, - asn_DEF_RICsubscriptionDeleteRequest_IEs_tags_197, - sizeof(asn_DEF_RICsubscriptionDeleteRequest_IEs_tags_197) - /sizeof(asn_DEF_RICsubscriptionDeleteRequest_IEs_tags_197[0]), /* 1 */ - asn_DEF_RICsubscriptionDeleteRequest_IEs_tags_197, /* Same as above */ - sizeof(asn_DEF_RICsubscriptionDeleteRequest_IEs_tags_197) - /sizeof(asn_DEF_RICsubscriptionDeleteRequest_IEs_tags_197[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICsubscriptionDeleteRequest_IEs_197, - 3, /* Elements count */ - &asn_SPC_RICsubscriptionDeleteRequest_IEs_specs_197 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_204[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteResponse_IEs__value, choice.RICrequestID), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICrequestID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICrequestID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteResponse_IEs__value, choice.RANfunctionID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_RANfunctionID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RANfunctionID" - }, -}; -static const unsigned asn_MAP_value_to_canonical_204[] = { 1, 0 }; -static const unsigned asn_MAP_value_from_canonical_204[] = { 1, 0 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_204[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* RANfunctionID */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RICrequestID */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_204 = { - sizeof(struct RICsubscriptionDeleteResponse_IEs__value), - offsetof(struct RICsubscriptionDeleteResponse_IEs__value, _asn_ctx), - offsetof(struct RICsubscriptionDeleteResponse_IEs__value, present), - sizeof(((struct RICsubscriptionDeleteResponse_IEs__value *)0)->present), - asn_MAP_value_tag2el_204, - 2, /* Count of tags in the map */ - asn_MAP_value_to_canonical_204, - asn_MAP_value_from_canonical_204, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_204 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_204, - 2, /* Elements count */ - &asn_SPC_value_specs_204 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteResponse_IEs_201[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteResponse_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_202, memb_id_constraint_201 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteResponse_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_RICsubscriptionDeleteResponse_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_203, memb_criticality_constraint_201 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteResponse_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_204, - select_RICsubscriptionDeleteResponse_IEs_value_type, - { 0, &asn_PER_memb_value_constr_204, memb_value_constraint_201 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICsubscriptionDeleteResponse_IEs_tags_201[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionDeleteResponse_IEs_tag2el_201[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteResponse_IEs_specs_201 = { - sizeof(struct RICsubscriptionDeleteResponse_IEs), - offsetof(struct RICsubscriptionDeleteResponse_IEs, _asn_ctx), - asn_MAP_RICsubscriptionDeleteResponse_IEs_tag2el_201, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDeleteResponse_IEs = { - "RICsubscriptionDeleteResponse-IEs", - "RICsubscriptionDeleteResponse-IEs", - &asn_OP_SEQUENCE, - asn_DEF_RICsubscriptionDeleteResponse_IEs_tags_201, - sizeof(asn_DEF_RICsubscriptionDeleteResponse_IEs_tags_201) - /sizeof(asn_DEF_RICsubscriptionDeleteResponse_IEs_tags_201[0]), /* 1 */ - asn_DEF_RICsubscriptionDeleteResponse_IEs_tags_201, /* Same as above */ - sizeof(asn_DEF_RICsubscriptionDeleteResponse_IEs_tags_201) - /sizeof(asn_DEF_RICsubscriptionDeleteResponse_IEs_tags_201[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICsubscriptionDeleteResponse_IEs_201, - 3, /* Elements count */ - &asn_SPC_RICsubscriptionDeleteResponse_IEs_specs_201 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_208[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteFailure_IEs__value, choice.RICrequestID), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICrequestID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICrequestID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteFailure_IEs__value, choice.RANfunctionID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_RANfunctionID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RANfunctionID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteFailure_IEs__value, choice.RICcause), - -1 /* Ambiguous tag (CHOICE?) */, - 0, - &asn_DEF_RICcause, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICcause" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteFailure_IEs__value, choice.CriticalityDiagnostics), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CriticalityDiagnostics, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "CriticalityDiagnostics" - }, -}; -static const unsigned asn_MAP_value_to_canonical_208[] = { 1, 0, 3, 2 }; -static const unsigned asn_MAP_value_from_canonical_208[] = { 1, 0, 3, 2 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_208[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* RANfunctionID */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 1 }, /* RICrequestID */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -1, 0 }, /* CriticalityDiagnostics */ - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 2, 0, 0 }, /* radioNetwork */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 2, 0, 0 }, /* transport */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* protocol */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 2, 0, 0 }, /* misc */ - { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 2, 0, 0 } /* ric */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_208 = { - sizeof(struct RICsubscriptionDeleteFailure_IEs__value), - offsetof(struct RICsubscriptionDeleteFailure_IEs__value, _asn_ctx), - offsetof(struct RICsubscriptionDeleteFailure_IEs__value, present), - sizeof(((struct RICsubscriptionDeleteFailure_IEs__value *)0)->present), - asn_MAP_value_tag2el_208, - 8, /* Count of tags in the map */ - asn_MAP_value_to_canonical_208, - asn_MAP_value_from_canonical_208, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_208 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_208, - 4, /* Elements count */ - &asn_SPC_value_specs_208 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteFailure_IEs_205[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteFailure_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_206, memb_id_constraint_205 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteFailure_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_RICsubscriptionDeleteFailure_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_207, memb_criticality_constraint_205 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteFailure_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_208, - select_RICsubscriptionDeleteFailure_IEs_value_type, - { 0, &asn_PER_memb_value_constr_208, memb_value_constraint_205 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICsubscriptionDeleteFailure_IEs_tags_205[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionDeleteFailure_IEs_tag2el_205[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteFailure_IEs_specs_205 = { - sizeof(struct RICsubscriptionDeleteFailure_IEs), - offsetof(struct RICsubscriptionDeleteFailure_IEs, _asn_ctx), - asn_MAP_RICsubscriptionDeleteFailure_IEs_tag2el_205, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDeleteFailure_IEs = { - "RICsubscriptionDeleteFailure-IEs", - "RICsubscriptionDeleteFailure-IEs", - &asn_OP_SEQUENCE, - asn_DEF_RICsubscriptionDeleteFailure_IEs_tags_205, - sizeof(asn_DEF_RICsubscriptionDeleteFailure_IEs_tags_205) - /sizeof(asn_DEF_RICsubscriptionDeleteFailure_IEs_tags_205[0]), /* 1 */ - asn_DEF_RICsubscriptionDeleteFailure_IEs_tags_205, /* Same as above */ - sizeof(asn_DEF_RICsubscriptionDeleteFailure_IEs_tags_205) - /sizeof(asn_DEF_RICsubscriptionDeleteFailure_IEs_tags_205[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICsubscriptionDeleteFailure_IEs_205, - 3, /* Elements count */ - &asn_SPC_RICsubscriptionDeleteFailure_IEs_specs_205 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_212[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICindication_IEs__value, choice.RICrequestID), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICrequestID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICrequestID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICindication_IEs__value, choice.RANfunctionID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_RANfunctionID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RANfunctionID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICindication_IEs__value, choice.RICactionID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_RICactionID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICactionID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICindication_IEs__value, choice.RICindicationSN), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_RICindicationSN, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICindicationSN" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICindication_IEs__value, choice.RICindicationType), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_RICindicationType, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICindicationType" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICindication_IEs__value, choice.RICindicationHeader), - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), - 0, - &asn_DEF_RICindicationHeader, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICindicationHeader" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICindication_IEs__value, choice.RICindicationMessage), - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), - 0, - &asn_DEF_RICindicationMessage, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICindicationMessage" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICindication_IEs__value, choice.RICcallProcessID), - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), - 0, - &asn_DEF_RICcallProcessID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICcallProcessID" - }, -}; -static const unsigned asn_MAP_value_to_canonical_212[] = { 1, 2, 3, 5, 6, 7, 4, 0 }; -static const unsigned asn_MAP_value_from_canonical_212[] = { 7, 0, 1, 2, 6, 3, 4, 5 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_212[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 2 }, /* RANfunctionID */ - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 2, -1, 1 }, /* RICactionID */ - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 3, -2, 0 }, /* RICindicationSN */ - { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 5, 0, 2 }, /* RICindicationHeader */ - { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 6, -1, 1 }, /* RICindicationMessage */ - { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 7, -2, 0 }, /* RICcallProcessID */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 4, 0, 0 }, /* RICindicationType */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RICrequestID */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_212 = { - sizeof(struct RICindication_IEs__value), - offsetof(struct RICindication_IEs__value, _asn_ctx), - offsetof(struct RICindication_IEs__value, present), - sizeof(((struct RICindication_IEs__value *)0)->present), - asn_MAP_value_tag2el_212, - 8, /* Count of tags in the map */ - asn_MAP_value_to_canonical_212, - asn_MAP_value_from_canonical_212, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_212 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_212, - 8, /* Elements count */ - &asn_SPC_value_specs_212 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_RICindication_IEs_209[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICindication_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_210, memb_id_constraint_209 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICindication_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_RICindication_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_211, memb_criticality_constraint_209 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICindication_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_212, - select_RICindication_IEs_value_type, - { 0, &asn_PER_memb_value_constr_212, memb_value_constraint_209 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICindication_IEs_tags_209[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICindication_IEs_tag2el_209[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICindication_IEs_specs_209 = { - sizeof(struct RICindication_IEs), - offsetof(struct RICindication_IEs, _asn_ctx), - asn_MAP_RICindication_IEs_tag2el_209, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICindication_IEs = { - "RICindication-IEs", - "RICindication-IEs", - &asn_OP_SEQUENCE, - asn_DEF_RICindication_IEs_tags_209, - sizeof(asn_DEF_RICindication_IEs_tags_209) - /sizeof(asn_DEF_RICindication_IEs_tags_209[0]), /* 1 */ - asn_DEF_RICindication_IEs_tags_209, /* Same as above */ - sizeof(asn_DEF_RICindication_IEs_tags_209) - /sizeof(asn_DEF_RICindication_IEs_tags_209[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICindication_IEs_209, - 3, /* Elements count */ - &asn_SPC_RICindication_IEs_specs_209 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_216[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolRequest_IEs__value, choice.RICrequestID), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICrequestID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICrequestID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolRequest_IEs__value, choice.RANfunctionID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_RANfunctionID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RANfunctionID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolRequest_IEs__value, choice.RICcallProcessID), - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), - 0, - &asn_DEF_RICcallProcessID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICcallProcessID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolRequest_IEs__value, choice.RICcontrolHeader), - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), - 0, - &asn_DEF_RICcontrolHeader, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICcontrolHeader" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolRequest_IEs__value, choice.RICcontrolMessage), - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), - 0, - &asn_DEF_RICcontrolMessage, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICcontrolMessage" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolRequest_IEs__value, choice.RICcontrolAckRequest), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_RICcontrolAckRequest, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICcontrolAckRequest" - }, -}; -static const unsigned asn_MAP_value_to_canonical_216[] = { 1, 2, 3, 4, 5, 0 }; -static const unsigned asn_MAP_value_from_canonical_216[] = { 5, 0, 1, 2, 3, 4 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_216[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* RANfunctionID */ - { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 2, 0, 2 }, /* RICcallProcessID */ - { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 3, -1, 1 }, /* RICcontrolHeader */ - { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 4, -2, 0 }, /* RICcontrolMessage */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 5, 0, 0 }, /* RICcontrolAckRequest */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RICrequestID */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_216 = { - sizeof(struct RICcontrolRequest_IEs__value), - offsetof(struct RICcontrolRequest_IEs__value, _asn_ctx), - offsetof(struct RICcontrolRequest_IEs__value, present), - sizeof(((struct RICcontrolRequest_IEs__value *)0)->present), - asn_MAP_value_tag2el_216, - 6, /* Count of tags in the map */ - asn_MAP_value_to_canonical_216, - asn_MAP_value_from_canonical_216, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_216 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_216, - 6, /* Elements count */ - &asn_SPC_value_specs_216 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_RICcontrolRequest_IEs_213[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolRequest_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_214, memb_id_constraint_213 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolRequest_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_RICcontrolRequest_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_215, memb_criticality_constraint_213 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICcontrolRequest_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_216, - select_RICcontrolRequest_IEs_value_type, - { 0, &asn_PER_memb_value_constr_216, memb_value_constraint_213 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICcontrolRequest_IEs_tags_213[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICcontrolRequest_IEs_tag2el_213[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICcontrolRequest_IEs_specs_213 = { - sizeof(struct RICcontrolRequest_IEs), - offsetof(struct RICcontrolRequest_IEs, _asn_ctx), - asn_MAP_RICcontrolRequest_IEs_tag2el_213, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICcontrolRequest_IEs = { - "RICcontrolRequest-IEs", - "RICcontrolRequest-IEs", - &asn_OP_SEQUENCE, - asn_DEF_RICcontrolRequest_IEs_tags_213, - sizeof(asn_DEF_RICcontrolRequest_IEs_tags_213) - /sizeof(asn_DEF_RICcontrolRequest_IEs_tags_213[0]), /* 1 */ - asn_DEF_RICcontrolRequest_IEs_tags_213, /* Same as above */ - sizeof(asn_DEF_RICcontrolRequest_IEs_tags_213) - /sizeof(asn_DEF_RICcontrolRequest_IEs_tags_213[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICcontrolRequest_IEs_213, - 3, /* Elements count */ - &asn_SPC_RICcontrolRequest_IEs_specs_213 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_220[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolAcknowledge_IEs__value, choice.RICrequestID), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICrequestID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICrequestID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolAcknowledge_IEs__value, choice.RANfunctionID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_RANfunctionID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RANfunctionID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolAcknowledge_IEs__value, choice.RICcallProcessID), - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), - 0, - &asn_DEF_RICcallProcessID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICcallProcessID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolAcknowledge_IEs__value, choice.RICcontrolStatus), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_RICcontrolStatus, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICcontrolStatus" - }, -}; -static const unsigned asn_MAP_value_to_canonical_220[] = { 1, 2, 3, 0 }; -static const unsigned asn_MAP_value_from_canonical_220[] = { 3, 0, 1, 2 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_220[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* RANfunctionID */ - { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 2, 0, 0 }, /* RICcallProcessID */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 3, 0, 0 }, /* RICcontrolStatus */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RICrequestID */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_220 = { - sizeof(struct RICcontrolAcknowledge_IEs__value), - offsetof(struct RICcontrolAcknowledge_IEs__value, _asn_ctx), - offsetof(struct RICcontrolAcknowledge_IEs__value, present), - sizeof(((struct RICcontrolAcknowledge_IEs__value *)0)->present), - asn_MAP_value_tag2el_220, - 4, /* Count of tags in the map */ - asn_MAP_value_to_canonical_220, - asn_MAP_value_from_canonical_220, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_220 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_220, - 4, /* Elements count */ - &asn_SPC_value_specs_220 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_RICcontrolAcknowledge_IEs_217[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolAcknowledge_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_218, memb_id_constraint_217 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolAcknowledge_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_RICcontrolAcknowledge_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_219, memb_criticality_constraint_217 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICcontrolAcknowledge_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_220, - select_RICcontrolAcknowledge_IEs_value_type, - { 0, &asn_PER_memb_value_constr_220, memb_value_constraint_217 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICcontrolAcknowledge_IEs_tags_217[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICcontrolAcknowledge_IEs_tag2el_217[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICcontrolAcknowledge_IEs_specs_217 = { - sizeof(struct RICcontrolAcknowledge_IEs), - offsetof(struct RICcontrolAcknowledge_IEs, _asn_ctx), - asn_MAP_RICcontrolAcknowledge_IEs_tag2el_217, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICcontrolAcknowledge_IEs = { - "RICcontrolAcknowledge-IEs", - "RICcontrolAcknowledge-IEs", - &asn_OP_SEQUENCE, - asn_DEF_RICcontrolAcknowledge_IEs_tags_217, - sizeof(asn_DEF_RICcontrolAcknowledge_IEs_tags_217) - /sizeof(asn_DEF_RICcontrolAcknowledge_IEs_tags_217[0]), /* 1 */ - asn_DEF_RICcontrolAcknowledge_IEs_tags_217, /* Same as above */ - sizeof(asn_DEF_RICcontrolAcknowledge_IEs_tags_217) - /sizeof(asn_DEF_RICcontrolAcknowledge_IEs_tags_217[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICcontrolAcknowledge_IEs_217, - 3, /* Elements count */ - &asn_SPC_RICcontrolAcknowledge_IEs_specs_217 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_224[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolFailure_IEs__value, choice.RICrequestID), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICrequestID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICrequestID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolFailure_IEs__value, choice.RANfunctionID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_RANfunctionID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RANfunctionID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolFailure_IEs__value, choice.RICcallProcessID), - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), - 0, - &asn_DEF_RICcallProcessID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICcallProcessID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolFailure_IEs__value, choice.RICcause), - -1 /* Ambiguous tag (CHOICE?) */, - 0, - &asn_DEF_RICcause, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICcause" - }, -}; -static const unsigned asn_MAP_value_to_canonical_224[] = { 1, 2, 0, 3 }; -static const unsigned asn_MAP_value_from_canonical_224[] = { 2, 0, 1, 3 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_224[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* RANfunctionID */ - { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 2, 0, 0 }, /* RICcallProcessID */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 }, /* RICrequestID */ - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 3, 0, 0 }, /* radioNetwork */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 3, 0, 0 }, /* transport */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 3, 0, 0 }, /* protocol */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* misc */ - { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 3, 0, 0 } /* ric */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_224 = { - sizeof(struct RICcontrolFailure_IEs__value), - offsetof(struct RICcontrolFailure_IEs__value, _asn_ctx), - offsetof(struct RICcontrolFailure_IEs__value, present), - sizeof(((struct RICcontrolFailure_IEs__value *)0)->present), - asn_MAP_value_tag2el_224, - 8, /* Count of tags in the map */ - asn_MAP_value_to_canonical_224, - asn_MAP_value_from_canonical_224, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_224 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_224, - 4, /* Elements count */ - &asn_SPC_value_specs_224 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_RICcontrolFailure_IEs_221[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolFailure_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_222, memb_id_constraint_221 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolFailure_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_RICcontrolFailure_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_223, memb_criticality_constraint_221 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICcontrolFailure_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_224, - select_RICcontrolFailure_IEs_value_type, - { 0, &asn_PER_memb_value_constr_224, memb_value_constraint_221 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICcontrolFailure_IEs_tags_221[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICcontrolFailure_IEs_tag2el_221[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICcontrolFailure_IEs_specs_221 = { - sizeof(struct RICcontrolFailure_IEs), - offsetof(struct RICcontrolFailure_IEs, _asn_ctx), - asn_MAP_RICcontrolFailure_IEs_tag2el_221, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICcontrolFailure_IEs = { - "RICcontrolFailure-IEs", - "RICcontrolFailure-IEs", - &asn_OP_SEQUENCE, - asn_DEF_RICcontrolFailure_IEs_tags_221, - sizeof(asn_DEF_RICcontrolFailure_IEs_tags_221) - /sizeof(asn_DEF_RICcontrolFailure_IEs_tags_221[0]), /* 1 */ - asn_DEF_RICcontrolFailure_IEs_tags_221, /* Same as above */ - sizeof(asn_DEF_RICcontrolFailure_IEs_tags_221) - /sizeof(asn_DEF_RICcontrolFailure_IEs_tags_221[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICcontrolFailure_IEs_221, - 3, /* Elements count */ - &asn_SPC_RICcontrolFailure_IEs_specs_221 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_228[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdate_IEs__value, choice.RANfunctions_List), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RANfunctions_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RANfunctions-List" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdate_IEs__value, choice.RANfunctionsID_List), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RANfunctionsID_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RANfunctionsID-List" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_228[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 1 }, /* RANfunctions-List */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 0 } /* RANfunctionsID-List */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_228 = { - sizeof(struct RICserviceUpdate_IEs__value), - offsetof(struct RICserviceUpdate_IEs__value, _asn_ctx), - offsetof(struct RICserviceUpdate_IEs__value, present), - sizeof(((struct RICserviceUpdate_IEs__value *)0)->present), - asn_MAP_value_tag2el_228, - 2, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_228 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_228, - 2, /* Elements count */ - &asn_SPC_value_specs_228 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_RICserviceUpdate_IEs_225[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdate_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_226, memb_id_constraint_225 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdate_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_RICserviceUpdate_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_227, memb_criticality_constraint_225 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdate_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_228, - select_RICserviceUpdate_IEs_value_type, - { 0, &asn_PER_memb_value_constr_228, memb_value_constraint_225 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICserviceUpdate_IEs_tags_225[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICserviceUpdate_IEs_tag2el_225[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdate_IEs_specs_225 = { - sizeof(struct RICserviceUpdate_IEs), - offsetof(struct RICserviceUpdate_IEs, _asn_ctx), - asn_MAP_RICserviceUpdate_IEs_tag2el_225, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICserviceUpdate_IEs = { - "RICserviceUpdate-IEs", - "RICserviceUpdate-IEs", - &asn_OP_SEQUENCE, - asn_DEF_RICserviceUpdate_IEs_tags_225, - sizeof(asn_DEF_RICserviceUpdate_IEs_tags_225) - /sizeof(asn_DEF_RICserviceUpdate_IEs_tags_225[0]), /* 1 */ - asn_DEF_RICserviceUpdate_IEs_tags_225, /* Same as above */ - sizeof(asn_DEF_RICserviceUpdate_IEs_tags_225) - /sizeof(asn_DEF_RICserviceUpdate_IEs_tags_225[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICserviceUpdate_IEs_225, - 3, /* Elements count */ - &asn_SPC_RICserviceUpdate_IEs_specs_225 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_232[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateAcknowledge_IEs__value, choice.RANfunctionsID_List), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RANfunctionsID_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RANfunctionsID-List" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateAcknowledge_IEs__value, choice.RANfunctionsIDcause_List), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RANfunctionsIDcause_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RANfunctionsIDcause-List" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_232[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 1 }, /* RANfunctionsID-List */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 0 } /* RANfunctionsIDcause-List */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_232 = { - sizeof(struct RICserviceUpdateAcknowledge_IEs__value), - offsetof(struct RICserviceUpdateAcknowledge_IEs__value, _asn_ctx), - offsetof(struct RICserviceUpdateAcknowledge_IEs__value, present), - sizeof(((struct RICserviceUpdateAcknowledge_IEs__value *)0)->present), - asn_MAP_value_tag2el_232, - 2, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_232 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_232, - 2, /* Elements count */ - &asn_SPC_value_specs_232 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_RICserviceUpdateAcknowledge_IEs_229[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateAcknowledge_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_230, memb_id_constraint_229 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateAcknowledge_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_RICserviceUpdateAcknowledge_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_231, memb_criticality_constraint_229 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateAcknowledge_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_232, - select_RICserviceUpdateAcknowledge_IEs_value_type, - { 0, &asn_PER_memb_value_constr_232, memb_value_constraint_229 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICserviceUpdateAcknowledge_IEs_tags_229[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICserviceUpdateAcknowledge_IEs_tag2el_229[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdateAcknowledge_IEs_specs_229 = { - sizeof(struct RICserviceUpdateAcknowledge_IEs), - offsetof(struct RICserviceUpdateAcknowledge_IEs, _asn_ctx), - asn_MAP_RICserviceUpdateAcknowledge_IEs_tag2el_229, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICserviceUpdateAcknowledge_IEs = { - "RICserviceUpdateAcknowledge-IEs", - "RICserviceUpdateAcknowledge-IEs", - &asn_OP_SEQUENCE, - asn_DEF_RICserviceUpdateAcknowledge_IEs_tags_229, - sizeof(asn_DEF_RICserviceUpdateAcknowledge_IEs_tags_229) - /sizeof(asn_DEF_RICserviceUpdateAcknowledge_IEs_tags_229[0]), /* 1 */ - asn_DEF_RICserviceUpdateAcknowledge_IEs_tags_229, /* Same as above */ - sizeof(asn_DEF_RICserviceUpdateAcknowledge_IEs_tags_229) - /sizeof(asn_DEF_RICserviceUpdateAcknowledge_IEs_tags_229[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICserviceUpdateAcknowledge_IEs_229, - 3, /* Elements count */ - &asn_SPC_RICserviceUpdateAcknowledge_IEs_specs_229 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_236[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateFailure_IEs__value, choice.RANfunctionsIDcause_List), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RANfunctionsIDcause_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RANfunctionsIDcause-List" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateFailure_IEs__value, choice.TimeToWait), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_TimeToWait, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "TimeToWait" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateFailure_IEs__value, choice.CriticalityDiagnostics), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CriticalityDiagnostics, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "CriticalityDiagnostics" - }, -}; -static const unsigned asn_MAP_value_to_canonical_236[] = { 1, 0, 2 }; -static const unsigned asn_MAP_value_from_canonical_236[] = { 1, 0, 2 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_236[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 }, /* TimeToWait */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 1 }, /* RANfunctionsIDcause-List */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -1, 0 } /* CriticalityDiagnostics */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_236 = { - sizeof(struct RICserviceUpdateFailure_IEs__value), - offsetof(struct RICserviceUpdateFailure_IEs__value, _asn_ctx), - offsetof(struct RICserviceUpdateFailure_IEs__value, present), - sizeof(((struct RICserviceUpdateFailure_IEs__value *)0)->present), - asn_MAP_value_tag2el_236, - 3, /* Count of tags in the map */ - asn_MAP_value_to_canonical_236, - asn_MAP_value_from_canonical_236, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_236 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_236, - 3, /* Elements count */ - &asn_SPC_value_specs_236 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_RICserviceUpdateFailure_IEs_233[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateFailure_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_234, memb_id_constraint_233 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateFailure_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_RICserviceUpdateFailure_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_235, memb_criticality_constraint_233 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateFailure_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_236, - select_RICserviceUpdateFailure_IEs_value_type, - { 0, &asn_PER_memb_value_constr_236, memb_value_constraint_233 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICserviceUpdateFailure_IEs_tags_233[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICserviceUpdateFailure_IEs_tag2el_233[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdateFailure_IEs_specs_233 = { - sizeof(struct RICserviceUpdateFailure_IEs), - offsetof(struct RICserviceUpdateFailure_IEs, _asn_ctx), - asn_MAP_RICserviceUpdateFailure_IEs_tag2el_233, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICserviceUpdateFailure_IEs = { - "RICserviceUpdateFailure-IEs", - "RICserviceUpdateFailure-IEs", - &asn_OP_SEQUENCE, - asn_DEF_RICserviceUpdateFailure_IEs_tags_233, - sizeof(asn_DEF_RICserviceUpdateFailure_IEs_tags_233) - /sizeof(asn_DEF_RICserviceUpdateFailure_IEs_tags_233[0]), /* 1 */ - asn_DEF_RICserviceUpdateFailure_IEs_tags_233, /* Same as above */ - sizeof(asn_DEF_RICserviceUpdateFailure_IEs_tags_233) - /sizeof(asn_DEF_RICserviceUpdateFailure_IEs_tags_233[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICserviceUpdateFailure_IEs_233, - 3, /* Elements count */ - &asn_SPC_RICserviceUpdateFailure_IEs_specs_233 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_240[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICserviceQuery_IEs__value, choice.RANfunctionsID_List), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RANfunctionsID_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RANfunctionsID-List" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_240[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RANfunctionsID-List */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_240 = { - sizeof(struct RICserviceQuery_IEs__value), - offsetof(struct RICserviceQuery_IEs__value, _asn_ctx), - offsetof(struct RICserviceQuery_IEs__value, present), - sizeof(((struct RICserviceQuery_IEs__value *)0)->present), - asn_MAP_value_tag2el_240, - 1, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_240 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_240, - 1, /* Elements count */ - &asn_SPC_value_specs_240 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_RICserviceQuery_IEs_237[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICserviceQuery_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_238, memb_id_constraint_237 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICserviceQuery_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_RICserviceQuery_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_239, memb_criticality_constraint_237 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICserviceQuery_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_240, - select_RICserviceQuery_IEs_value_type, - { 0, &asn_PER_memb_value_constr_240, memb_value_constraint_237 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICserviceQuery_IEs_tags_237[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICserviceQuery_IEs_tag2el_237[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICserviceQuery_IEs_specs_237 = { - sizeof(struct RICserviceQuery_IEs), - offsetof(struct RICserviceQuery_IEs, _asn_ctx), - asn_MAP_RICserviceQuery_IEs_tag2el_237, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICserviceQuery_IEs = { - "RICserviceQuery-IEs", - "RICserviceQuery-IEs", - &asn_OP_SEQUENCE, - asn_DEF_RICserviceQuery_IEs_tags_237, - sizeof(asn_DEF_RICserviceQuery_IEs_tags_237) - /sizeof(asn_DEF_RICserviceQuery_IEs_tags_237[0]), /* 1 */ - asn_DEF_RICserviceQuery_IEs_tags_237, /* Same as above */ - sizeof(asn_DEF_RICserviceQuery_IEs_tags_237) - /sizeof(asn_DEF_RICserviceQuery_IEs_tags_237[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICserviceQuery_IEs_237, - 3, /* Elements count */ - &asn_SPC_RICserviceQuery_IEs_specs_237 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_244[] = { - { ATF_NOFLAGS, 0, offsetof(struct HandoverRequest_IEs__value, choice.UE_X2AP_ID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_UE_X2AP_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "UE-X2AP-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct HandoverRequest_IEs__value, choice.Cause), - -1 /* Ambiguous tag (CHOICE?) */, - 0, - &asn_DEF_Cause, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "Cause" - }, - { ATF_NOFLAGS, 0, offsetof(struct HandoverRequest_IEs__value, choice.ECGI), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ECGI, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ECGI" - }, - { ATF_NOFLAGS, 0, offsetof(struct HandoverRequest_IEs__value, choice.GUMMEI), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_GUMMEI, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "GUMMEI" - }, - { ATF_NOFLAGS, 0, offsetof(struct HandoverRequest_IEs__value, choice.UE_ContextInformation), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_UE_ContextInformation, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "UE-ContextInformation" - }, - { ATF_NOFLAGS, 0, offsetof(struct HandoverRequest_IEs__value, choice.UE_HistoryInformation), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_UE_HistoryInformation, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "UE-HistoryInformation" - }, - { ATF_NOFLAGS, 0, offsetof(struct HandoverRequest_IEs__value, choice.TraceActivation), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_TraceActivation, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "TraceActivation" - }, - { ATF_NOFLAGS, 0, offsetof(struct HandoverRequest_IEs__value, choice.SRVCCOperationPossible), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_SRVCCOperationPossible, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "SRVCCOperationPossible" - }, - { ATF_NOFLAGS, 0, offsetof(struct HandoverRequest_IEs__value, choice.CSGMembershipStatus), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_CSGMembershipStatus, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "CSGMembershipStatus" - }, - { ATF_NOFLAGS, 0, offsetof(struct HandoverRequest_IEs__value, choice.MobilityInformation), - (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), - 0, - &asn_DEF_MobilityInformation, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "MobilityInformation" - }, - { ATF_NOFLAGS, 0, offsetof(struct HandoverRequest_IEs__value, choice.Masked_IMEISV), - (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), - 0, - &asn_DEF_Masked_IMEISV, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "Masked-IMEISV" - }, - { ATF_NOFLAGS, 0, offsetof(struct HandoverRequest_IEs__value, choice.UE_HistoryInformationFromTheUE), - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), - 0, - &asn_DEF_UE_HistoryInformationFromTheUE, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "UE-HistoryInformationFromTheUE" - }, - { ATF_NOFLAGS, 0, offsetof(struct HandoverRequest_IEs__value, choice.ExpectedUEBehaviour), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ExpectedUEBehaviour, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ExpectedUEBehaviour" - }, - { ATF_NOFLAGS, 0, offsetof(struct HandoverRequest_IEs__value, choice.ProSeAuthorized), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ProSeAuthorized, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ProSeAuthorized" - }, - { ATF_NOFLAGS, 0, offsetof(struct HandoverRequest_IEs__value, choice.UE_ContextReferenceAtSeNB), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_UE_ContextReferenceAtSeNB, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "UE-ContextReferenceAtSeNB" - }, - { ATF_NOFLAGS, 0, offsetof(struct HandoverRequest_IEs__value, choice.UE_X2AP_ID_Extension), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_UE_X2AP_ID_Extension, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "UE-X2AP-ID-Extension" - }, - { ATF_NOFLAGS, 0, offsetof(struct HandoverRequest_IEs__value, choice.V2XServicesAuthorized), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_V2XServicesAuthorized, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "V2XServicesAuthorized" - }, - { ATF_NOFLAGS, 0, offsetof(struct HandoverRequest_IEs__value, choice.UE_ContextReferenceAtWT), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_UE_ContextReferenceAtWT, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "UE-ContextReferenceAtWT" - }, - { ATF_NOFLAGS, 0, offsetof(struct HandoverRequest_IEs__value, choice.NRUESecurityCapabilities), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_NRUESecurityCapabilities, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "NRUESecurityCapabilities" - }, - { ATF_NOFLAGS, 0, offsetof(struct HandoverRequest_IEs__value, choice.UE_ContextReferenceAtSgNB), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_UE_ContextReferenceAtSgNB, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "UE-ContextReferenceAtSgNB" - }, - { ATF_NOFLAGS, 0, offsetof(struct HandoverRequest_IEs__value, choice.AerialUEsubscriptionInformation), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_AerialUEsubscriptionInformation, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "AerialUEsubscriptionInformation" - }, - { ATF_NOFLAGS, 0, offsetof(struct HandoverRequest_IEs__value, choice.Subscription_Based_UE_DifferentiationInfo), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_Subscription_Based_UE_DifferentiationInfo, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "Subscription-Based-UE-DifferentiationInfo" - }, -}; -static const unsigned asn_MAP_value_to_canonical_244[] = { 0, 15, 9, 10, 11, 7, 8, 20, 2, 3, 4, 5, 6, 12, 13, 14, 16, 17, 18, 19, 21, 1 }; -static const unsigned asn_MAP_value_from_canonical_244[] = { 0, 21, 8, 9, 10, 11, 12, 5, 6, 2, 3, 4, 13, 14, 15, 1, 16, 17, 18, 19, 7, 20 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_244[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 1 }, /* UE-X2AP-ID */ - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 15, -1, 0 }, /* UE-X2AP-ID-Extension */ - { (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), 9, 0, 1 }, /* MobilityInformation */ - { (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), 10, -1, 0 }, /* Masked-IMEISV */ - { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 11, 0, 0 }, /* UE-HistoryInformationFromTheUE */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 7, 0, 2 }, /* SRVCCOperationPossible */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 8, -1, 1 }, /* CSGMembershipStatus */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 20, -2, 0 }, /* AerialUEsubscriptionInformation */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, 0, 12 }, /* ECGI */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -1, 11 }, /* GUMMEI */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, -2, 10 }, /* UE-ContextInformation */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 5, -3, 9 }, /* UE-HistoryInformation */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 6, -4, 8 }, /* TraceActivation */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 12, -5, 7 }, /* ExpectedUEBehaviour */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 13, -6, 6 }, /* ProSeAuthorized */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 14, -7, 5 }, /* UE-ContextReferenceAtSeNB */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 16, -8, 4 }, /* V2XServicesAuthorized */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 17, -9, 3 }, /* UE-ContextReferenceAtWT */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 18, -10, 2 }, /* NRUESecurityCapabilities */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 19, -11, 1 }, /* UE-ContextReferenceAtSgNB */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 21, -12, 0 }, /* Subscription-Based-UE-DifferentiationInfo */ - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 1, 0, 0 }, /* radioNetwork */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* transport */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 1, 0, 0 }, /* protocol */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 1, 0, 0 } /* misc */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_244 = { - sizeof(struct HandoverRequest_IEs__value), - offsetof(struct HandoverRequest_IEs__value, _asn_ctx), - offsetof(struct HandoverRequest_IEs__value, present), - sizeof(((struct HandoverRequest_IEs__value *)0)->present), - asn_MAP_value_tag2el_244, - 25, /* Count of tags in the map */ - asn_MAP_value_to_canonical_244, - asn_MAP_value_from_canonical_244, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_244 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_244, - 22, /* Elements count */ - &asn_SPC_value_specs_244 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_HandoverRequest_IEs_241[] = { - { ATF_NOFLAGS, 0, offsetof(struct HandoverRequest_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_242, memb_id_constraint_241 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct HandoverRequest_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_HandoverRequest_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_243, memb_criticality_constraint_241 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct HandoverRequest_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_244, - select_HandoverRequest_IEs_value_type, - { 0, &asn_PER_memb_value_constr_244, memb_value_constraint_241 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_HandoverRequest_IEs_tags_241[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_HandoverRequest_IEs_tag2el_241[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_HandoverRequest_IEs_specs_241 = { - sizeof(struct HandoverRequest_IEs), - offsetof(struct HandoverRequest_IEs, _asn_ctx), - asn_MAP_HandoverRequest_IEs_tag2el_241, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_HandoverRequest_IEs = { - "HandoverRequest-IEs", - "HandoverRequest-IEs", - &asn_OP_SEQUENCE, - asn_DEF_HandoverRequest_IEs_tags_241, - sizeof(asn_DEF_HandoverRequest_IEs_tags_241) - /sizeof(asn_DEF_HandoverRequest_IEs_tags_241[0]), /* 1 */ - asn_DEF_HandoverRequest_IEs_tags_241, /* Same as above */ - sizeof(asn_DEF_HandoverRequest_IEs_tags_241) - /sizeof(asn_DEF_HandoverRequest_IEs_tags_241[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_HandoverRequest_IEs_241, - 3, /* Elements count */ - &asn_SPC_HandoverRequest_IEs_specs_241 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_248[] = { - { ATF_NOFLAGS, 0, offsetof(struct HandoverRequestAcknowledge_IEs__value, choice.UE_X2AP_ID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_UE_X2AP_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "UE-X2AP-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct HandoverRequestAcknowledge_IEs__value, choice.E_RABs_Admitted_List), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RABs_Admitted_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "E-RABs-Admitted-List" - }, - { ATF_NOFLAGS, 0, offsetof(struct HandoverRequestAcknowledge_IEs__value, choice.E_RAB_List), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RAB_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "E-RAB-List" - }, - { ATF_NOFLAGS, 0, offsetof(struct HandoverRequestAcknowledge_IEs__value, choice.TargeteNBtoSource_eNBTransparentContainer), - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), - 0, - &asn_DEF_TargeteNBtoSource_eNBTransparentContainer, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "TargeteNBtoSource-eNBTransparentContainer" - }, - { ATF_NOFLAGS, 0, offsetof(struct HandoverRequestAcknowledge_IEs__value, choice.CriticalityDiagnostics), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CriticalityDiagnostics, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "CriticalityDiagnostics" - }, - { ATF_NOFLAGS, 0, offsetof(struct HandoverRequestAcknowledge_IEs__value, choice.UE_ContextKeptIndicator), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_UE_ContextKeptIndicator, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "UE-ContextKeptIndicator" - }, - { ATF_NOFLAGS, 0, offsetof(struct HandoverRequestAcknowledge_IEs__value, choice.UE_X2AP_ID_Extension), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_UE_X2AP_ID_Extension, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "UE-X2AP-ID-Extension" - }, -}; -static const unsigned asn_MAP_value_to_canonical_248[] = { 0, 6, 3, 5, 1, 2, 4 }; -static const unsigned asn_MAP_value_from_canonical_248[] = { 0, 4, 5, 2, 6, 3, 1 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_248[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 1 }, /* UE-X2AP-ID */ - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 6, -1, 0 }, /* UE-X2AP-ID-Extension */ - { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 3, 0, 0 }, /* TargeteNBtoSource-eNBTransparentContainer */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 5, 0, 0 }, /* UE-ContextKeptIndicator */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 2 }, /* E-RABs-Admitted-List */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -1, 1 }, /* E-RAB-List */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, -2, 0 } /* CriticalityDiagnostics */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_248 = { - sizeof(struct HandoverRequestAcknowledge_IEs__value), - offsetof(struct HandoverRequestAcknowledge_IEs__value, _asn_ctx), - offsetof(struct HandoverRequestAcknowledge_IEs__value, present), - sizeof(((struct HandoverRequestAcknowledge_IEs__value *)0)->present), - asn_MAP_value_tag2el_248, - 7, /* Count of tags in the map */ - asn_MAP_value_to_canonical_248, - asn_MAP_value_from_canonical_248, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_248 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_248, - 7, /* Elements count */ - &asn_SPC_value_specs_248 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_HandoverRequestAcknowledge_IEs_245[] = { - { ATF_NOFLAGS, 0, offsetof(struct HandoverRequestAcknowledge_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_246, memb_id_constraint_245 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct HandoverRequestAcknowledge_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_HandoverRequestAcknowledge_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_247, memb_criticality_constraint_245 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct HandoverRequestAcknowledge_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_248, - select_HandoverRequestAcknowledge_IEs_value_type, - { 0, &asn_PER_memb_value_constr_248, memb_value_constraint_245 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_HandoverRequestAcknowledge_IEs_tags_245[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_HandoverRequestAcknowledge_IEs_tag2el_245[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_HandoverRequestAcknowledge_IEs_specs_245 = { - sizeof(struct HandoverRequestAcknowledge_IEs), - offsetof(struct HandoverRequestAcknowledge_IEs, _asn_ctx), - asn_MAP_HandoverRequestAcknowledge_IEs_tag2el_245, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_HandoverRequestAcknowledge_IEs = { - "HandoverRequestAcknowledge-IEs", - "HandoverRequestAcknowledge-IEs", - &asn_OP_SEQUENCE, - asn_DEF_HandoverRequestAcknowledge_IEs_tags_245, - sizeof(asn_DEF_HandoverRequestAcknowledge_IEs_tags_245) - /sizeof(asn_DEF_HandoverRequestAcknowledge_IEs_tags_245[0]), /* 1 */ - asn_DEF_HandoverRequestAcknowledge_IEs_tags_245, /* Same as above */ - sizeof(asn_DEF_HandoverRequestAcknowledge_IEs_tags_245) - /sizeof(asn_DEF_HandoverRequestAcknowledge_IEs_tags_245[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_HandoverRequestAcknowledge_IEs_245, - 3, /* Elements count */ - &asn_SPC_HandoverRequestAcknowledge_IEs_specs_245 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_252[] = { - { ATF_NOFLAGS, 0, offsetof(struct HandoverPreparationFailure_IEs__value, choice.UE_X2AP_ID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_UE_X2AP_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "UE-X2AP-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct HandoverPreparationFailure_IEs__value, choice.Cause), - -1 /* Ambiguous tag (CHOICE?) */, - 0, - &asn_DEF_Cause, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "Cause" - }, - { ATF_NOFLAGS, 0, offsetof(struct HandoverPreparationFailure_IEs__value, choice.CriticalityDiagnostics), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CriticalityDiagnostics, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "CriticalityDiagnostics" - }, - { ATF_NOFLAGS, 0, offsetof(struct HandoverPreparationFailure_IEs__value, choice.UE_X2AP_ID_Extension), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_UE_X2AP_ID_Extension, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "UE-X2AP-ID-Extension" - }, -}; -static const unsigned asn_MAP_value_to_canonical_252[] = { 0, 3, 2, 1 }; -static const unsigned asn_MAP_value_from_canonical_252[] = { 0, 3, 2, 1 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_252[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 1 }, /* UE-X2AP-ID */ - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 3, -1, 0 }, /* UE-X2AP-ID-Extension */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, 0, 0 }, /* CriticalityDiagnostics */ - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 1, 0, 0 }, /* radioNetwork */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* transport */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 1, 0, 0 }, /* protocol */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 1, 0, 0 } /* misc */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_252 = { - sizeof(struct HandoverPreparationFailure_IEs__value), - offsetof(struct HandoverPreparationFailure_IEs__value, _asn_ctx), - offsetof(struct HandoverPreparationFailure_IEs__value, present), - sizeof(((struct HandoverPreparationFailure_IEs__value *)0)->present), - asn_MAP_value_tag2el_252, - 7, /* Count of tags in the map */ - asn_MAP_value_to_canonical_252, - asn_MAP_value_from_canonical_252, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_252 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_252, - 4, /* Elements count */ - &asn_SPC_value_specs_252 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_HandoverPreparationFailure_IEs_249[] = { - { ATF_NOFLAGS, 0, offsetof(struct HandoverPreparationFailure_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_250, memb_id_constraint_249 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct HandoverPreparationFailure_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_HandoverPreparationFailure_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_251, memb_criticality_constraint_249 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct HandoverPreparationFailure_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_252, - select_HandoverPreparationFailure_IEs_value_type, - { 0, &asn_PER_memb_value_constr_252, memb_value_constraint_249 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_HandoverPreparationFailure_IEs_tags_249[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_HandoverPreparationFailure_IEs_tag2el_249[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_HandoverPreparationFailure_IEs_specs_249 = { - sizeof(struct HandoverPreparationFailure_IEs), - offsetof(struct HandoverPreparationFailure_IEs, _asn_ctx), - asn_MAP_HandoverPreparationFailure_IEs_tag2el_249, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_HandoverPreparationFailure_IEs = { - "HandoverPreparationFailure-IEs", - "HandoverPreparationFailure-IEs", - &asn_OP_SEQUENCE, - asn_DEF_HandoverPreparationFailure_IEs_tags_249, - sizeof(asn_DEF_HandoverPreparationFailure_IEs_tags_249) - /sizeof(asn_DEF_HandoverPreparationFailure_IEs_tags_249[0]), /* 1 */ - asn_DEF_HandoverPreparationFailure_IEs_tags_249, /* Same as above */ - sizeof(asn_DEF_HandoverPreparationFailure_IEs_tags_249) - /sizeof(asn_DEF_HandoverPreparationFailure_IEs_tags_249[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_HandoverPreparationFailure_IEs_249, - 3, /* Elements count */ - &asn_SPC_HandoverPreparationFailure_IEs_specs_249 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_256[] = { - { ATF_NOFLAGS, 0, offsetof(struct HandoverReport_IEs__value, choice.HandoverReportType), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_HandoverReportType, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "HandoverReportType" - }, - { ATF_NOFLAGS, 0, offsetof(struct HandoverReport_IEs__value, choice.Cause), - -1 /* Ambiguous tag (CHOICE?) */, - 0, - &asn_DEF_Cause, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "Cause" - }, - { ATF_NOFLAGS, 0, offsetof(struct HandoverReport_IEs__value, choice.ECGI), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ECGI, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ECGI" - }, - { ATF_NOFLAGS, 0, offsetof(struct HandoverReport_IEs__value, choice.TargetCellInUTRAN), - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), - 0, - &asn_DEF_TargetCellInUTRAN, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "TargetCellInUTRAN" - }, - { ATF_NOFLAGS, 0, offsetof(struct HandoverReport_IEs__value, choice.CRNTI), - (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), - 0, - &asn_DEF_CRNTI, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "CRNTI" - }, - { ATF_NOFLAGS, 0, offsetof(struct HandoverReport_IEs__value, choice.MobilityInformation), - (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), - 0, - &asn_DEF_MobilityInformation, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "MobilityInformation" - }, - { ATF_NOFLAGS, 0, offsetof(struct HandoverReport_IEs__value, choice.UE_RLF_Report_Container), - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), - 0, - &asn_DEF_UE_RLF_Report_Container, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "UE-RLF-Report-Container" - }, - { ATF_NOFLAGS, 0, offsetof(struct HandoverReport_IEs__value, choice.UE_RLF_Report_Container_for_extended_bands), - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), - 0, - &asn_DEF_UE_RLF_Report_Container_for_extended_bands, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "UE-RLF-Report-Container-for-extended-bands" - }, -}; -static const unsigned asn_MAP_value_to_canonical_256[] = { 4, 5, 3, 6, 7, 0, 2, 1 }; -static const unsigned asn_MAP_value_from_canonical_256[] = { 5, 7, 6, 2, 0, 1, 3, 4 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_256[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), 4, 0, 1 }, /* CRNTI */ - { (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), 5, -1, 0 }, /* MobilityInformation */ - { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 3, 0, 2 }, /* TargetCellInUTRAN */ - { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 6, -1, 1 }, /* UE-RLF-Report-Container */ - { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 7, -2, 0 }, /* UE-RLF-Report-Container-for-extended-bands */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 0, 0, 0 }, /* HandoverReportType */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, 0, 0 }, /* ECGI */ - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 1, 0, 0 }, /* radioNetwork */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* transport */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 1, 0, 0 }, /* protocol */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 1, 0, 0 } /* misc */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_256 = { - sizeof(struct HandoverReport_IEs__value), - offsetof(struct HandoverReport_IEs__value, _asn_ctx), - offsetof(struct HandoverReport_IEs__value, present), - sizeof(((struct HandoverReport_IEs__value *)0)->present), - asn_MAP_value_tag2el_256, - 11, /* Count of tags in the map */ - asn_MAP_value_to_canonical_256, - asn_MAP_value_from_canonical_256, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_256 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_256, - 8, /* Elements count */ - &asn_SPC_value_specs_256 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_HandoverReport_IEs_253[] = { - { ATF_NOFLAGS, 0, offsetof(struct HandoverReport_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_254, memb_id_constraint_253 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct HandoverReport_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_HandoverReport_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_255, memb_criticality_constraint_253 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct HandoverReport_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_256, - select_HandoverReport_IEs_value_type, - { 0, &asn_PER_memb_value_constr_256, memb_value_constraint_253 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_HandoverReport_IEs_tags_253[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_HandoverReport_IEs_tag2el_253[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_HandoverReport_IEs_specs_253 = { - sizeof(struct HandoverReport_IEs), - offsetof(struct HandoverReport_IEs, _asn_ctx), - asn_MAP_HandoverReport_IEs_tag2el_253, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_HandoverReport_IEs = { - "HandoverReport-IEs", - "HandoverReport-IEs", - &asn_OP_SEQUENCE, - asn_DEF_HandoverReport_IEs_tags_253, - sizeof(asn_DEF_HandoverReport_IEs_tags_253) - /sizeof(asn_DEF_HandoverReport_IEs_tags_253[0]), /* 1 */ - asn_DEF_HandoverReport_IEs_tags_253, /* Same as above */ - sizeof(asn_DEF_HandoverReport_IEs_tags_253) - /sizeof(asn_DEF_HandoverReport_IEs_tags_253[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_HandoverReport_IEs_253, - 3, /* Elements count */ - &asn_SPC_HandoverReport_IEs_specs_253 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_260[] = { - { ATF_NOFLAGS, 0, offsetof(struct SNStatusTransfer_IEs__value, choice.UE_X2AP_ID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_UE_X2AP_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "UE-X2AP-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct SNStatusTransfer_IEs__value, choice.E_RABs_SubjectToStatusTransfer_List), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RABs_SubjectToStatusTransfer_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "E-RABs-SubjectToStatusTransfer-List" - }, - { ATF_NOFLAGS, 0, offsetof(struct SNStatusTransfer_IEs__value, choice.UE_X2AP_ID_Extension), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_UE_X2AP_ID_Extension, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "UE-X2AP-ID-Extension" - }, - { ATF_NOFLAGS, 0, offsetof(struct SNStatusTransfer_IEs__value, choice.SgNB_UE_X2AP_ID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_SgNB_UE_X2AP_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "SgNB-UE-X2AP-ID" - }, -}; -static const unsigned asn_MAP_value_to_canonical_260[] = { 0, 2, 3, 1 }; -static const unsigned asn_MAP_value_from_canonical_260[] = { 0, 3, 1, 2 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_260[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 2 }, /* UE-X2AP-ID */ - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 2, -1, 1 }, /* UE-X2AP-ID-Extension */ - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 3, -2, 0 }, /* SgNB-UE-X2AP-ID */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 0 } /* E-RABs-SubjectToStatusTransfer-List */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_260 = { - sizeof(struct SNStatusTransfer_IEs__value), - offsetof(struct SNStatusTransfer_IEs__value, _asn_ctx), - offsetof(struct SNStatusTransfer_IEs__value, present), - sizeof(((struct SNStatusTransfer_IEs__value *)0)->present), - asn_MAP_value_tag2el_260, - 4, /* Count of tags in the map */ - asn_MAP_value_to_canonical_260, - asn_MAP_value_from_canonical_260, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_260 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_260, - 4, /* Elements count */ - &asn_SPC_value_specs_260 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_SNStatusTransfer_IEs_257[] = { - { ATF_NOFLAGS, 0, offsetof(struct SNStatusTransfer_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_258, memb_id_constraint_257 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct SNStatusTransfer_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_SNStatusTransfer_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_259, memb_criticality_constraint_257 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SNStatusTransfer_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_260, - select_SNStatusTransfer_IEs_value_type, - { 0, &asn_PER_memb_value_constr_260, memb_value_constraint_257 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_SNStatusTransfer_IEs_tags_257[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_SNStatusTransfer_IEs_tag2el_257[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_SNStatusTransfer_IEs_specs_257 = { - sizeof(struct SNStatusTransfer_IEs), - offsetof(struct SNStatusTransfer_IEs, _asn_ctx), - asn_MAP_SNStatusTransfer_IEs_tag2el_257, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_SNStatusTransfer_IEs = { - "SNStatusTransfer-IEs", - "SNStatusTransfer-IEs", - &asn_OP_SEQUENCE, - asn_DEF_SNStatusTransfer_IEs_tags_257, - sizeof(asn_DEF_SNStatusTransfer_IEs_tags_257) - /sizeof(asn_DEF_SNStatusTransfer_IEs_tags_257[0]), /* 1 */ - asn_DEF_SNStatusTransfer_IEs_tags_257, /* Same as above */ - sizeof(asn_DEF_SNStatusTransfer_IEs_tags_257) - /sizeof(asn_DEF_SNStatusTransfer_IEs_tags_257[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_SNStatusTransfer_IEs_257, - 3, /* Elements count */ - &asn_SPC_SNStatusTransfer_IEs_specs_257 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_264[] = { - { ATF_NOFLAGS, 0, offsetof(struct UEContextRelease_IEs__value, choice.UE_X2AP_ID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_UE_X2AP_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "UE-X2AP-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct UEContextRelease_IEs__value, choice.UE_X2AP_ID_Extension), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_UE_X2AP_ID_Extension, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "UE-X2AP-ID-Extension" - }, - { ATF_NOFLAGS, 0, offsetof(struct UEContextRelease_IEs__value, choice.SIPTOBearerDeactivationIndication), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_SIPTOBearerDeactivationIndication, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "SIPTOBearerDeactivationIndication" - }, - { ATF_NOFLAGS, 0, offsetof(struct UEContextRelease_IEs__value, choice.SgNB_UE_X2AP_ID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_SgNB_UE_X2AP_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "SgNB-UE-X2AP-ID" - }, -}; -static const unsigned asn_MAP_value_to_canonical_264[] = { 0, 1, 3, 2 }; -static const unsigned asn_MAP_value_from_canonical_264[] = { 0, 1, 3, 2 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_264[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 2 }, /* UE-X2AP-ID */ - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 1 }, /* UE-X2AP-ID-Extension */ - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 3, -2, 0 }, /* SgNB-UE-X2AP-ID */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 2, 0, 0 } /* SIPTOBearerDeactivationIndication */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_264 = { - sizeof(struct UEContextRelease_IEs__value), - offsetof(struct UEContextRelease_IEs__value, _asn_ctx), - offsetof(struct UEContextRelease_IEs__value, present), - sizeof(((struct UEContextRelease_IEs__value *)0)->present), - asn_MAP_value_tag2el_264, - 4, /* Count of tags in the map */ - asn_MAP_value_to_canonical_264, - asn_MAP_value_from_canonical_264, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_264 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_264, - 4, /* Elements count */ - &asn_SPC_value_specs_264 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_UEContextRelease_IEs_261[] = { - { ATF_NOFLAGS, 0, offsetof(struct UEContextRelease_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_262, memb_id_constraint_261 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct UEContextRelease_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_UEContextRelease_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_263, memb_criticality_constraint_261 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct UEContextRelease_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_264, - select_UEContextRelease_IEs_value_type, - { 0, &asn_PER_memb_value_constr_264, memb_value_constraint_261 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_UEContextRelease_IEs_tags_261[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_UEContextRelease_IEs_tag2el_261[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_UEContextRelease_IEs_specs_261 = { - sizeof(struct UEContextRelease_IEs), - offsetof(struct UEContextRelease_IEs, _asn_ctx), - asn_MAP_UEContextRelease_IEs_tag2el_261, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_UEContextRelease_IEs = { - "UEContextRelease-IEs", - "UEContextRelease-IEs", - &asn_OP_SEQUENCE, - asn_DEF_UEContextRelease_IEs_tags_261, - sizeof(asn_DEF_UEContextRelease_IEs_tags_261) - /sizeof(asn_DEF_UEContextRelease_IEs_tags_261[0]), /* 1 */ - asn_DEF_UEContextRelease_IEs_tags_261, /* Same as above */ - sizeof(asn_DEF_UEContextRelease_IEs_tags_261) - /sizeof(asn_DEF_UEContextRelease_IEs_tags_261[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_UEContextRelease_IEs_261, - 3, /* Elements count */ - &asn_SPC_UEContextRelease_IEs_specs_261 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_268[] = { - { ATF_NOFLAGS, 0, offsetof(struct HandoverCancel_IEs__value, choice.UE_X2AP_ID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_UE_X2AP_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "UE-X2AP-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct HandoverCancel_IEs__value, choice.Cause), - -1 /* Ambiguous tag (CHOICE?) */, - 0, - &asn_DEF_Cause, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "Cause" - }, - { ATF_NOFLAGS, 0, offsetof(struct HandoverCancel_IEs__value, choice.UE_X2AP_ID_Extension), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_UE_X2AP_ID_Extension, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "UE-X2AP-ID-Extension" - }, -}; -static const unsigned asn_MAP_value_to_canonical_268[] = { 0, 2, 1 }; -static const unsigned asn_MAP_value_from_canonical_268[] = { 0, 2, 1 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_268[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 1 }, /* UE-X2AP-ID */ - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 2, -1, 0 }, /* UE-X2AP-ID-Extension */ - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 1, 0, 0 }, /* radioNetwork */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* transport */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 1, 0, 0 }, /* protocol */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 1, 0, 0 } /* misc */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_268 = { - sizeof(struct HandoverCancel_IEs__value), - offsetof(struct HandoverCancel_IEs__value, _asn_ctx), - offsetof(struct HandoverCancel_IEs__value, present), - sizeof(((struct HandoverCancel_IEs__value *)0)->present), - asn_MAP_value_tag2el_268, - 6, /* Count of tags in the map */ - asn_MAP_value_to_canonical_268, - asn_MAP_value_from_canonical_268, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_268 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_268, - 3, /* Elements count */ - &asn_SPC_value_specs_268 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_HandoverCancel_IEs_265[] = { - { ATF_NOFLAGS, 0, offsetof(struct HandoverCancel_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_266, memb_id_constraint_265 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct HandoverCancel_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_HandoverCancel_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_267, memb_criticality_constraint_265 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct HandoverCancel_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_268, - select_HandoverCancel_IEs_value_type, - { 0, &asn_PER_memb_value_constr_268, memb_value_constraint_265 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_HandoverCancel_IEs_tags_265[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_HandoverCancel_IEs_tag2el_265[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_HandoverCancel_IEs_specs_265 = { - sizeof(struct HandoverCancel_IEs), - offsetof(struct HandoverCancel_IEs, _asn_ctx), - asn_MAP_HandoverCancel_IEs_tag2el_265, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_HandoverCancel_IEs = { - "HandoverCancel-IEs", - "HandoverCancel-IEs", - &asn_OP_SEQUENCE, - asn_DEF_HandoverCancel_IEs_tags_265, - sizeof(asn_DEF_HandoverCancel_IEs_tags_265) - /sizeof(asn_DEF_HandoverCancel_IEs_tags_265[0]), /* 1 */ - asn_DEF_HandoverCancel_IEs_tags_265, /* Same as above */ - sizeof(asn_DEF_HandoverCancel_IEs_tags_265) - /sizeof(asn_DEF_HandoverCancel_IEs_tags_265[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_HandoverCancel_IEs_265, - 3, /* Elements count */ - &asn_SPC_HandoverCancel_IEs_specs_265 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_272[] = { - { ATF_NOFLAGS, 0, offsetof(struct ErrorIndication_IEs__value, choice.UE_X2AP_ID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_UE_X2AP_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "UE-X2AP-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct ErrorIndication_IEs__value, choice.Cause), - -1 /* Ambiguous tag (CHOICE?) */, - 0, - &asn_DEF_Cause, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "Cause" - }, - { ATF_NOFLAGS, 0, offsetof(struct ErrorIndication_IEs__value, choice.CriticalityDiagnostics), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CriticalityDiagnostics, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "CriticalityDiagnostics" - }, - { ATF_NOFLAGS, 0, offsetof(struct ErrorIndication_IEs__value, choice.UE_X2AP_ID_Extension), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_UE_X2AP_ID_Extension, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "UE-X2AP-ID-Extension" - }, - { ATF_NOFLAGS, 0, offsetof(struct ErrorIndication_IEs__value, choice.SgNB_UE_X2AP_ID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_SgNB_UE_X2AP_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "SgNB-UE-X2AP-ID" - }, -}; -static const unsigned asn_MAP_value_to_canonical_272[] = { 0, 3, 4, 2, 1 }; -static const unsigned asn_MAP_value_from_canonical_272[] = { 0, 4, 3, 1, 2 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_272[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 2 }, /* UE-X2AP-ID */ - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 3, -1, 1 }, /* UE-X2AP-ID-Extension */ - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 4, -2, 0 }, /* SgNB-UE-X2AP-ID */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, 0, 0 }, /* CriticalityDiagnostics */ - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 1, 0, 0 }, /* radioNetwork */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* transport */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 1, 0, 0 }, /* protocol */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 1, 0, 0 } /* misc */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_272 = { - sizeof(struct ErrorIndication_IEs__value), - offsetof(struct ErrorIndication_IEs__value, _asn_ctx), - offsetof(struct ErrorIndication_IEs__value, present), - sizeof(((struct ErrorIndication_IEs__value *)0)->present), - asn_MAP_value_tag2el_272, - 8, /* Count of tags in the map */ - asn_MAP_value_to_canonical_272, - asn_MAP_value_from_canonical_272, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_272 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_272, - 5, /* Elements count */ - &asn_SPC_value_specs_272 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ErrorIndication_IEs_269[] = { - { ATF_NOFLAGS, 0, offsetof(struct ErrorIndication_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_270, memb_id_constraint_269 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct ErrorIndication_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_ErrorIndication_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_271, memb_criticality_constraint_269 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ErrorIndication_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_272, - select_ErrorIndication_IEs_value_type, - { 0, &asn_PER_memb_value_constr_272, memb_value_constraint_269 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_ErrorIndication_IEs_tags_269[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ErrorIndication_IEs_tag2el_269[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ErrorIndication_IEs_specs_269 = { - sizeof(struct ErrorIndication_IEs), - offsetof(struct ErrorIndication_IEs, _asn_ctx), - asn_MAP_ErrorIndication_IEs_tag2el_269, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ErrorIndication_IEs = { - "ErrorIndication-IEs", - "ErrorIndication-IEs", - &asn_OP_SEQUENCE, - asn_DEF_ErrorIndication_IEs_tags_269, - sizeof(asn_DEF_ErrorIndication_IEs_tags_269) - /sizeof(asn_DEF_ErrorIndication_IEs_tags_269[0]), /* 1 */ - asn_DEF_ErrorIndication_IEs_tags_269, /* Same as above */ - sizeof(asn_DEF_ErrorIndication_IEs_tags_269) - /sizeof(asn_DEF_ErrorIndication_IEs_tags_269[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ErrorIndication_IEs_269, - 3, /* Elements count */ - &asn_SPC_ErrorIndication_IEs_specs_269 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_276[] = { - { ATF_NOFLAGS, 0, offsetof(struct ResetRequest_IEs__value, choice.Cause), - -1 /* Ambiguous tag (CHOICE?) */, - 0, - &asn_DEF_Cause, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "Cause" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_276[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* radioNetwork */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 0, 0, 0 }, /* transport */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 0, 0, 0 }, /* protocol */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 0, 0, 0 } /* misc */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_276 = { - sizeof(struct ResetRequest_IEs__value), - offsetof(struct ResetRequest_IEs__value, _asn_ctx), - offsetof(struct ResetRequest_IEs__value, present), - sizeof(((struct ResetRequest_IEs__value *)0)->present), - asn_MAP_value_tag2el_276, - 4, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_276 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_276, - 1, /* Elements count */ - &asn_SPC_value_specs_276 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ResetRequest_IEs_273[] = { - { ATF_NOFLAGS, 0, offsetof(struct ResetRequest_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_274, memb_id_constraint_273 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct ResetRequest_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_ResetRequest_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_275, memb_criticality_constraint_273 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ResetRequest_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_276, - select_ResetRequest_IEs_value_type, - { 0, &asn_PER_memb_value_constr_276, memb_value_constraint_273 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_ResetRequest_IEs_tags_273[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ResetRequest_IEs_tag2el_273[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ResetRequest_IEs_specs_273 = { - sizeof(struct ResetRequest_IEs), - offsetof(struct ResetRequest_IEs, _asn_ctx), - asn_MAP_ResetRequest_IEs_tag2el_273, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ResetRequest_IEs = { - "ResetRequest-IEs", - "ResetRequest-IEs", - &asn_OP_SEQUENCE, - asn_DEF_ResetRequest_IEs_tags_273, - sizeof(asn_DEF_ResetRequest_IEs_tags_273) - /sizeof(asn_DEF_ResetRequest_IEs_tags_273[0]), /* 1 */ - asn_DEF_ResetRequest_IEs_tags_273, /* Same as above */ - sizeof(asn_DEF_ResetRequest_IEs_tags_273) - /sizeof(asn_DEF_ResetRequest_IEs_tags_273[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ResetRequest_IEs_273, - 3, /* Elements count */ - &asn_SPC_ResetRequest_IEs_specs_273 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_280[] = { - { ATF_NOFLAGS, 0, offsetof(struct ResetResponse_IEs__value, choice.CriticalityDiagnostics), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CriticalityDiagnostics, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "CriticalityDiagnostics" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_280[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* CriticalityDiagnostics */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_280 = { - sizeof(struct ResetResponse_IEs__value), - offsetof(struct ResetResponse_IEs__value, _asn_ctx), - offsetof(struct ResetResponse_IEs__value, present), - sizeof(((struct ResetResponse_IEs__value *)0)->present), - asn_MAP_value_tag2el_280, - 1, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_280 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_280, - 1, /* Elements count */ - &asn_SPC_value_specs_280 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ResetResponse_IEs_277[] = { - { ATF_NOFLAGS, 0, offsetof(struct ResetResponse_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_278, memb_id_constraint_277 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct ResetResponse_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_ResetResponse_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_279, memb_criticality_constraint_277 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ResetResponse_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_280, - select_ResetResponse_IEs_value_type, - { 0, &asn_PER_memb_value_constr_280, memb_value_constraint_277 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_ResetResponse_IEs_tags_277[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ResetResponse_IEs_tag2el_277[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ResetResponse_IEs_specs_277 = { - sizeof(struct ResetResponse_IEs), - offsetof(struct ResetResponse_IEs, _asn_ctx), - asn_MAP_ResetResponse_IEs_tag2el_277, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ResetResponse_IEs = { - "ResetResponse-IEs", - "ResetResponse-IEs", - &asn_OP_SEQUENCE, - asn_DEF_ResetResponse_IEs_tags_277, - sizeof(asn_DEF_ResetResponse_IEs_tags_277) - /sizeof(asn_DEF_ResetResponse_IEs_tags_277[0]), /* 1 */ - asn_DEF_ResetResponse_IEs_tags_277, /* Same as above */ - sizeof(asn_DEF_ResetResponse_IEs_tags_277) - /sizeof(asn_DEF_ResetResponse_IEs_tags_277[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ResetResponse_IEs_277, - 3, /* Elements count */ - &asn_SPC_ResetResponse_IEs_specs_277 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_284[] = { - { ATF_NOFLAGS, 0, offsetof(struct X2SetupRequest_IEs__value, choice.GlobalENB_ID), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_GlobalENB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "GlobalENB-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct X2SetupRequest_IEs__value, choice.ServedCells), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ServedCells, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ServedCells" - }, - { ATF_NOFLAGS, 0, offsetof(struct X2SetupRequest_IEs__value, choice.GUGroupIDList), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_GUGroupIDList, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "GUGroupIDList" - }, - { ATF_NOFLAGS, 0, offsetof(struct X2SetupRequest_IEs__value, choice.LHN_ID), - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), - 0, - &asn_DEF_LHN_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "LHN-ID" - }, -}; -static const unsigned asn_MAP_value_to_canonical_284[] = { 3, 0, 1, 2 }; -static const unsigned asn_MAP_value_from_canonical_284[] = { 1, 2, 3, 0 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_284[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 3, 0, 0 }, /* LHN-ID */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 2 }, /* GlobalENB-ID */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 1 }, /* ServedCells */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -2, 0 } /* GUGroupIDList */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_284 = { - sizeof(struct X2SetupRequest_IEs__value), - offsetof(struct X2SetupRequest_IEs__value, _asn_ctx), - offsetof(struct X2SetupRequest_IEs__value, present), - sizeof(((struct X2SetupRequest_IEs__value *)0)->present), - asn_MAP_value_tag2el_284, - 4, /* Count of tags in the map */ - asn_MAP_value_to_canonical_284, - asn_MAP_value_from_canonical_284, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_284 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_284, - 4, /* Elements count */ - &asn_SPC_value_specs_284 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_X2SetupRequest_IEs_281[] = { - { ATF_NOFLAGS, 0, offsetof(struct X2SetupRequest_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_282, memb_id_constraint_281 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct X2SetupRequest_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_X2SetupRequest_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_283, memb_criticality_constraint_281 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct X2SetupRequest_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_284, - select_X2SetupRequest_IEs_value_type, - { 0, &asn_PER_memb_value_constr_284, memb_value_constraint_281 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_X2SetupRequest_IEs_tags_281[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_X2SetupRequest_IEs_tag2el_281[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_X2SetupRequest_IEs_specs_281 = { - sizeof(struct X2SetupRequest_IEs), - offsetof(struct X2SetupRequest_IEs, _asn_ctx), - asn_MAP_X2SetupRequest_IEs_tag2el_281, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_X2SetupRequest_IEs = { - "X2SetupRequest-IEs", - "X2SetupRequest-IEs", - &asn_OP_SEQUENCE, - asn_DEF_X2SetupRequest_IEs_tags_281, - sizeof(asn_DEF_X2SetupRequest_IEs_tags_281) - /sizeof(asn_DEF_X2SetupRequest_IEs_tags_281[0]), /* 1 */ - asn_DEF_X2SetupRequest_IEs_tags_281, /* Same as above */ - sizeof(asn_DEF_X2SetupRequest_IEs_tags_281) - /sizeof(asn_DEF_X2SetupRequest_IEs_tags_281[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_X2SetupRequest_IEs_281, - 3, /* Elements count */ - &asn_SPC_X2SetupRequest_IEs_specs_281 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_288[] = { - { ATF_NOFLAGS, 0, offsetof(struct X2SetupResponse_IEs__value, choice.GlobalENB_ID), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_GlobalENB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "GlobalENB-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct X2SetupResponse_IEs__value, choice.ServedCells), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ServedCells, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ServedCells" - }, - { ATF_NOFLAGS, 0, offsetof(struct X2SetupResponse_IEs__value, choice.GUGroupIDList), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_GUGroupIDList, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "GUGroupIDList" - }, - { ATF_NOFLAGS, 0, offsetof(struct X2SetupResponse_IEs__value, choice.CriticalityDiagnostics), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CriticalityDiagnostics, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "CriticalityDiagnostics" - }, - { ATF_NOFLAGS, 0, offsetof(struct X2SetupResponse_IEs__value, choice.LHN_ID), - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), - 0, - &asn_DEF_LHN_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "LHN-ID" - }, -}; -static const unsigned asn_MAP_value_to_canonical_288[] = { 4, 0, 1, 2, 3 }; -static const unsigned asn_MAP_value_from_canonical_288[] = { 1, 2, 3, 4, 0 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_288[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 4, 0, 0 }, /* LHN-ID */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 3 }, /* GlobalENB-ID */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 2 }, /* ServedCells */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -2, 1 }, /* GUGroupIDList */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -3, 0 } /* CriticalityDiagnostics */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_288 = { - sizeof(struct X2SetupResponse_IEs__value), - offsetof(struct X2SetupResponse_IEs__value, _asn_ctx), - offsetof(struct X2SetupResponse_IEs__value, present), - sizeof(((struct X2SetupResponse_IEs__value *)0)->present), - asn_MAP_value_tag2el_288, - 5, /* Count of tags in the map */ - asn_MAP_value_to_canonical_288, - asn_MAP_value_from_canonical_288, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_288 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_288, - 5, /* Elements count */ - &asn_SPC_value_specs_288 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_X2SetupResponse_IEs_285[] = { - { ATF_NOFLAGS, 0, offsetof(struct X2SetupResponse_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_286, memb_id_constraint_285 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct X2SetupResponse_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_X2SetupResponse_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_287, memb_criticality_constraint_285 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct X2SetupResponse_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_288, - select_X2SetupResponse_IEs_value_type, - { 0, &asn_PER_memb_value_constr_288, memb_value_constraint_285 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_X2SetupResponse_IEs_tags_285[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_X2SetupResponse_IEs_tag2el_285[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_X2SetupResponse_IEs_specs_285 = { - sizeof(struct X2SetupResponse_IEs), - offsetof(struct X2SetupResponse_IEs, _asn_ctx), - asn_MAP_X2SetupResponse_IEs_tag2el_285, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_X2SetupResponse_IEs = { - "X2SetupResponse-IEs", - "X2SetupResponse-IEs", - &asn_OP_SEQUENCE, - asn_DEF_X2SetupResponse_IEs_tags_285, - sizeof(asn_DEF_X2SetupResponse_IEs_tags_285) - /sizeof(asn_DEF_X2SetupResponse_IEs_tags_285[0]), /* 1 */ - asn_DEF_X2SetupResponse_IEs_tags_285, /* Same as above */ - sizeof(asn_DEF_X2SetupResponse_IEs_tags_285) - /sizeof(asn_DEF_X2SetupResponse_IEs_tags_285[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_X2SetupResponse_IEs_285, - 3, /* Elements count */ - &asn_SPC_X2SetupResponse_IEs_specs_285 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_292[] = { - { ATF_NOFLAGS, 0, offsetof(struct X2SetupFailure_IEs__value, choice.Cause), - -1 /* Ambiguous tag (CHOICE?) */, - 0, - &asn_DEF_Cause, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "Cause" - }, - { ATF_NOFLAGS, 0, offsetof(struct X2SetupFailure_IEs__value, choice.TimeToWait), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_TimeToWait, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "TimeToWait" - }, - { ATF_NOFLAGS, 0, offsetof(struct X2SetupFailure_IEs__value, choice.CriticalityDiagnostics), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CriticalityDiagnostics, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "CriticalityDiagnostics" - }, -}; -static const unsigned asn_MAP_value_to_canonical_292[] = { 1, 2, 0 }; -static const unsigned asn_MAP_value_from_canonical_292[] = { 2, 0, 1 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_292[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 }, /* TimeToWait */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, 0, 0 }, /* CriticalityDiagnostics */ - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* radioNetwork */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 0, 0, 0 }, /* transport */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 0, 0, 0 }, /* protocol */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 0, 0, 0 } /* misc */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_292 = { - sizeof(struct X2SetupFailure_IEs__value), - offsetof(struct X2SetupFailure_IEs__value, _asn_ctx), - offsetof(struct X2SetupFailure_IEs__value, present), - sizeof(((struct X2SetupFailure_IEs__value *)0)->present), - asn_MAP_value_tag2el_292, - 6, /* Count of tags in the map */ - asn_MAP_value_to_canonical_292, - asn_MAP_value_from_canonical_292, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_292 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_292, - 3, /* Elements count */ - &asn_SPC_value_specs_292 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_X2SetupFailure_IEs_289[] = { - { ATF_NOFLAGS, 0, offsetof(struct X2SetupFailure_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_290, memb_id_constraint_289 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct X2SetupFailure_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_X2SetupFailure_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_291, memb_criticality_constraint_289 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct X2SetupFailure_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_292, - select_X2SetupFailure_IEs_value_type, - { 0, &asn_PER_memb_value_constr_292, memb_value_constraint_289 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_X2SetupFailure_IEs_tags_289[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_X2SetupFailure_IEs_tag2el_289[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_X2SetupFailure_IEs_specs_289 = { - sizeof(struct X2SetupFailure_IEs), - offsetof(struct X2SetupFailure_IEs, _asn_ctx), - asn_MAP_X2SetupFailure_IEs_tag2el_289, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_X2SetupFailure_IEs = { - "X2SetupFailure-IEs", - "X2SetupFailure-IEs", - &asn_OP_SEQUENCE, - asn_DEF_X2SetupFailure_IEs_tags_289, - sizeof(asn_DEF_X2SetupFailure_IEs_tags_289) - /sizeof(asn_DEF_X2SetupFailure_IEs_tags_289[0]), /* 1 */ - asn_DEF_X2SetupFailure_IEs_tags_289, /* Same as above */ - sizeof(asn_DEF_X2SetupFailure_IEs_tags_289) - /sizeof(asn_DEF_X2SetupFailure_IEs_tags_289[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_X2SetupFailure_IEs_289, - 3, /* Elements count */ - &asn_SPC_X2SetupFailure_IEs_specs_289 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_296[] = { - { ATF_NOFLAGS, 0, offsetof(struct LoadInformation_IEs__value, choice.CellInformation_List), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CellInformation_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "CellInformation-List" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_296[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* CellInformation-List */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_296 = { - sizeof(struct LoadInformation_IEs__value), - offsetof(struct LoadInformation_IEs__value, _asn_ctx), - offsetof(struct LoadInformation_IEs__value, present), - sizeof(((struct LoadInformation_IEs__value *)0)->present), - asn_MAP_value_tag2el_296, - 1, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_296 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_296, - 1, /* Elements count */ - &asn_SPC_value_specs_296 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_LoadInformation_IEs_293[] = { - { ATF_NOFLAGS, 0, offsetof(struct LoadInformation_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_294, memb_id_constraint_293 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct LoadInformation_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_LoadInformation_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_295, memb_criticality_constraint_293 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct LoadInformation_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_296, - select_LoadInformation_IEs_value_type, - { 0, &asn_PER_memb_value_constr_296, memb_value_constraint_293 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_LoadInformation_IEs_tags_293[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_LoadInformation_IEs_tag2el_293[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_LoadInformation_IEs_specs_293 = { - sizeof(struct LoadInformation_IEs), - offsetof(struct LoadInformation_IEs, _asn_ctx), - asn_MAP_LoadInformation_IEs_tag2el_293, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_LoadInformation_IEs = { - "LoadInformation-IEs", - "LoadInformation-IEs", - &asn_OP_SEQUENCE, - asn_DEF_LoadInformation_IEs_tags_293, - sizeof(asn_DEF_LoadInformation_IEs_tags_293) - /sizeof(asn_DEF_LoadInformation_IEs_tags_293[0]), /* 1 */ - asn_DEF_LoadInformation_IEs_tags_293, /* Same as above */ - sizeof(asn_DEF_LoadInformation_IEs_tags_293) - /sizeof(asn_DEF_LoadInformation_IEs_tags_293[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_LoadInformation_IEs_293, - 3, /* Elements count */ - &asn_SPC_LoadInformation_IEs_specs_293 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_300[] = { - { ATF_NOFLAGS, 0, offsetof(struct ENBConfigurationUpdate_IEs__value, choice.ServedCells), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ServedCells, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ServedCells" - }, - { ATF_NOFLAGS, 0, offsetof(struct ENBConfigurationUpdate_IEs__value, choice.ServedCellsToModify), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ServedCellsToModify, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ServedCellsToModify" - }, - { ATF_NOFLAGS, 0, offsetof(struct ENBConfigurationUpdate_IEs__value, choice.Old_ECGIs), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_Old_ECGIs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "Old-ECGIs" - }, - { ATF_NOFLAGS, 0, offsetof(struct ENBConfigurationUpdate_IEs__value, choice.GUGroupIDList), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_GUGroupIDList, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "GUGroupIDList" - }, - { ATF_NOFLAGS, 0, offsetof(struct ENBConfigurationUpdate_IEs__value, choice.CoverageModificationList), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CoverageModificationList, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "CoverageModificationList" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_300[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 4 }, /* ServedCells */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 3 }, /* ServedCellsToModify */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -2, 2 }, /* Old-ECGIs */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -3, 1 }, /* GUGroupIDList */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, -4, 0 } /* CoverageModificationList */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_300 = { - sizeof(struct ENBConfigurationUpdate_IEs__value), - offsetof(struct ENBConfigurationUpdate_IEs__value, _asn_ctx), - offsetof(struct ENBConfigurationUpdate_IEs__value, present), - sizeof(((struct ENBConfigurationUpdate_IEs__value *)0)->present), - asn_MAP_value_tag2el_300, - 5, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_300 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_300, - 5, /* Elements count */ - &asn_SPC_value_specs_300 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ENBConfigurationUpdate_IEs_297[] = { - { ATF_NOFLAGS, 0, offsetof(struct ENBConfigurationUpdate_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_298, memb_id_constraint_297 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct ENBConfigurationUpdate_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_ENBConfigurationUpdate_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_299, memb_criticality_constraint_297 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ENBConfigurationUpdate_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_300, - select_ENBConfigurationUpdate_IEs_value_type, - { 0, &asn_PER_memb_value_constr_300, memb_value_constraint_297 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_ENBConfigurationUpdate_IEs_tags_297[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ENBConfigurationUpdate_IEs_tag2el_297[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ENBConfigurationUpdate_IEs_specs_297 = { - sizeof(struct ENBConfigurationUpdate_IEs), - offsetof(struct ENBConfigurationUpdate_IEs, _asn_ctx), - asn_MAP_ENBConfigurationUpdate_IEs_tag2el_297, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ENBConfigurationUpdate_IEs = { - "ENBConfigurationUpdate-IEs", - "ENBConfigurationUpdate-IEs", - &asn_OP_SEQUENCE, - asn_DEF_ENBConfigurationUpdate_IEs_tags_297, - sizeof(asn_DEF_ENBConfigurationUpdate_IEs_tags_297) - /sizeof(asn_DEF_ENBConfigurationUpdate_IEs_tags_297[0]), /* 1 */ - asn_DEF_ENBConfigurationUpdate_IEs_tags_297, /* Same as above */ - sizeof(asn_DEF_ENBConfigurationUpdate_IEs_tags_297) - /sizeof(asn_DEF_ENBConfigurationUpdate_IEs_tags_297[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ENBConfigurationUpdate_IEs_297, - 3, /* Elements count */ - &asn_SPC_ENBConfigurationUpdate_IEs_specs_297 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_304[] = { - { ATF_NOFLAGS, 0, offsetof(struct ENBConfigurationUpdateAcknowledge_IEs__value, choice.CriticalityDiagnostics), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CriticalityDiagnostics, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "CriticalityDiagnostics" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_304[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* CriticalityDiagnostics */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_304 = { - sizeof(struct ENBConfigurationUpdateAcknowledge_IEs__value), - offsetof(struct ENBConfigurationUpdateAcknowledge_IEs__value, _asn_ctx), - offsetof(struct ENBConfigurationUpdateAcknowledge_IEs__value, present), - sizeof(((struct ENBConfigurationUpdateAcknowledge_IEs__value *)0)->present), - asn_MAP_value_tag2el_304, - 1, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_304 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_304, - 1, /* Elements count */ - &asn_SPC_value_specs_304 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ENBConfigurationUpdateAcknowledge_IEs_301[] = { - { ATF_NOFLAGS, 0, offsetof(struct ENBConfigurationUpdateAcknowledge_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_302, memb_id_constraint_301 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct ENBConfigurationUpdateAcknowledge_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_ENBConfigurationUpdateAcknowledge_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_303, memb_criticality_constraint_301 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ENBConfigurationUpdateAcknowledge_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_304, - select_ENBConfigurationUpdateAcknowledge_IEs_value_type, - { 0, &asn_PER_memb_value_constr_304, memb_value_constraint_301 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_ENBConfigurationUpdateAcknowledge_IEs_tags_301[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ENBConfigurationUpdateAcknowledge_IEs_tag2el_301[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ENBConfigurationUpdateAcknowledge_IEs_specs_301 = { - sizeof(struct ENBConfigurationUpdateAcknowledge_IEs), - offsetof(struct ENBConfigurationUpdateAcknowledge_IEs, _asn_ctx), - asn_MAP_ENBConfigurationUpdateAcknowledge_IEs_tag2el_301, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ENBConfigurationUpdateAcknowledge_IEs = { - "ENBConfigurationUpdateAcknowledge-IEs", - "ENBConfigurationUpdateAcknowledge-IEs", - &asn_OP_SEQUENCE, - asn_DEF_ENBConfigurationUpdateAcknowledge_IEs_tags_301, - sizeof(asn_DEF_ENBConfigurationUpdateAcknowledge_IEs_tags_301) - /sizeof(asn_DEF_ENBConfigurationUpdateAcknowledge_IEs_tags_301[0]), /* 1 */ - asn_DEF_ENBConfigurationUpdateAcknowledge_IEs_tags_301, /* Same as above */ - sizeof(asn_DEF_ENBConfigurationUpdateAcknowledge_IEs_tags_301) - /sizeof(asn_DEF_ENBConfigurationUpdateAcknowledge_IEs_tags_301[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ENBConfigurationUpdateAcknowledge_IEs_301, - 3, /* Elements count */ - &asn_SPC_ENBConfigurationUpdateAcknowledge_IEs_specs_301 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_308[] = { - { ATF_NOFLAGS, 0, offsetof(struct ENBConfigurationUpdateFailure_IEs__value, choice.Cause), - -1 /* Ambiguous tag (CHOICE?) */, - 0, - &asn_DEF_Cause, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "Cause" - }, - { ATF_NOFLAGS, 0, offsetof(struct ENBConfigurationUpdateFailure_IEs__value, choice.TimeToWait), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_TimeToWait, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "TimeToWait" - }, - { ATF_NOFLAGS, 0, offsetof(struct ENBConfigurationUpdateFailure_IEs__value, choice.CriticalityDiagnostics), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CriticalityDiagnostics, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "CriticalityDiagnostics" - }, -}; -static const unsigned asn_MAP_value_to_canonical_308[] = { 1, 2, 0 }; -static const unsigned asn_MAP_value_from_canonical_308[] = { 2, 0, 1 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_308[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 }, /* TimeToWait */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, 0, 0 }, /* CriticalityDiagnostics */ - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* radioNetwork */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 0, 0, 0 }, /* transport */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 0, 0, 0 }, /* protocol */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 0, 0, 0 } /* misc */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_308 = { - sizeof(struct ENBConfigurationUpdateFailure_IEs__value), - offsetof(struct ENBConfigurationUpdateFailure_IEs__value, _asn_ctx), - offsetof(struct ENBConfigurationUpdateFailure_IEs__value, present), - sizeof(((struct ENBConfigurationUpdateFailure_IEs__value *)0)->present), - asn_MAP_value_tag2el_308, - 6, /* Count of tags in the map */ - asn_MAP_value_to_canonical_308, - asn_MAP_value_from_canonical_308, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_308 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_308, - 3, /* Elements count */ - &asn_SPC_value_specs_308 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ENBConfigurationUpdateFailure_IEs_305[] = { - { ATF_NOFLAGS, 0, offsetof(struct ENBConfigurationUpdateFailure_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_306, memb_id_constraint_305 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct ENBConfigurationUpdateFailure_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_ENBConfigurationUpdateFailure_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_307, memb_criticality_constraint_305 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ENBConfigurationUpdateFailure_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_308, - select_ENBConfigurationUpdateFailure_IEs_value_type, - { 0, &asn_PER_memb_value_constr_308, memb_value_constraint_305 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_ENBConfigurationUpdateFailure_IEs_tags_305[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ENBConfigurationUpdateFailure_IEs_tag2el_305[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ENBConfigurationUpdateFailure_IEs_specs_305 = { - sizeof(struct ENBConfigurationUpdateFailure_IEs), - offsetof(struct ENBConfigurationUpdateFailure_IEs, _asn_ctx), - asn_MAP_ENBConfigurationUpdateFailure_IEs_tag2el_305, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ENBConfigurationUpdateFailure_IEs = { - "ENBConfigurationUpdateFailure-IEs", - "ENBConfigurationUpdateFailure-IEs", - &asn_OP_SEQUENCE, - asn_DEF_ENBConfigurationUpdateFailure_IEs_tags_305, - sizeof(asn_DEF_ENBConfigurationUpdateFailure_IEs_tags_305) - /sizeof(asn_DEF_ENBConfigurationUpdateFailure_IEs_tags_305[0]), /* 1 */ - asn_DEF_ENBConfigurationUpdateFailure_IEs_tags_305, /* Same as above */ - sizeof(asn_DEF_ENBConfigurationUpdateFailure_IEs_tags_305) - /sizeof(asn_DEF_ENBConfigurationUpdateFailure_IEs_tags_305[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ENBConfigurationUpdateFailure_IEs_305, - 3, /* Elements count */ - &asn_SPC_ENBConfigurationUpdateFailure_IEs_specs_305 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_312[] = { - { ATF_NOFLAGS, 0, offsetof(struct ResourceStatusRequest_IEs__value, choice.Measurement_ID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_Measurement_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "Measurement-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct ResourceStatusRequest_IEs__value, choice.Registration_Request), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_Registration_Request, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "Registration-Request" - }, - { ATF_NOFLAGS, 0, offsetof(struct ResourceStatusRequest_IEs__value, choice.ReportCharacteristics), - (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), - 0, - &asn_DEF_ReportCharacteristics, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ReportCharacteristics" - }, - { ATF_NOFLAGS, 0, offsetof(struct ResourceStatusRequest_IEs__value, choice.CellToReport_List), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CellToReport_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "CellToReport-List" - }, - { ATF_NOFLAGS, 0, offsetof(struct ResourceStatusRequest_IEs__value, choice.ReportingPeriodicity), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_ReportingPeriodicity, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ReportingPeriodicity" - }, - { ATF_NOFLAGS, 0, offsetof(struct ResourceStatusRequest_IEs__value, choice.PartialSuccessIndicator), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_PartialSuccessIndicator, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "PartialSuccessIndicator" - }, - { ATF_NOFLAGS, 0, offsetof(struct ResourceStatusRequest_IEs__value, choice.ReportingPeriodicityRSRPMR), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_ReportingPeriodicityRSRPMR, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ReportingPeriodicityRSRPMR" - }, - { ATF_NOFLAGS, 0, offsetof(struct ResourceStatusRequest_IEs__value, choice.ReportingPeriodicityCSIR), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_ReportingPeriodicityCSIR, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ReportingPeriodicityCSIR" - }, -}; -static const unsigned asn_MAP_value_to_canonical_312[] = { 0, 2, 1, 4, 5, 6, 7, 3 }; -static const unsigned asn_MAP_value_from_canonical_312[] = { 0, 2, 1, 7, 3, 4, 5, 6 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_312[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* Measurement-ID */ - { (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), 2, 0, 0 }, /* ReportCharacteristics */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 4 }, /* Registration-Request */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 4, -1, 3 }, /* ReportingPeriodicity */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 5, -2, 2 }, /* PartialSuccessIndicator */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 6, -3, 1 }, /* ReportingPeriodicityRSRPMR */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 7, -4, 0 }, /* ReportingPeriodicityCSIR */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, 0, 0 } /* CellToReport-List */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_312 = { - sizeof(struct ResourceStatusRequest_IEs__value), - offsetof(struct ResourceStatusRequest_IEs__value, _asn_ctx), - offsetof(struct ResourceStatusRequest_IEs__value, present), - sizeof(((struct ResourceStatusRequest_IEs__value *)0)->present), - asn_MAP_value_tag2el_312, - 8, /* Count of tags in the map */ - asn_MAP_value_to_canonical_312, - asn_MAP_value_from_canonical_312, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_312 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_312, - 8, /* Elements count */ - &asn_SPC_value_specs_312 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ResourceStatusRequest_IEs_309[] = { - { ATF_NOFLAGS, 0, offsetof(struct ResourceStatusRequest_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_310, memb_id_constraint_309 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct ResourceStatusRequest_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_ResourceStatusRequest_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_311, memb_criticality_constraint_309 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ResourceStatusRequest_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_312, - select_ResourceStatusRequest_IEs_value_type, - { 0, &asn_PER_memb_value_constr_312, memb_value_constraint_309 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_ResourceStatusRequest_IEs_tags_309[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ResourceStatusRequest_IEs_tag2el_309[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ResourceStatusRequest_IEs_specs_309 = { - sizeof(struct ResourceStatusRequest_IEs), - offsetof(struct ResourceStatusRequest_IEs, _asn_ctx), - asn_MAP_ResourceStatusRequest_IEs_tag2el_309, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ResourceStatusRequest_IEs = { - "ResourceStatusRequest-IEs", - "ResourceStatusRequest-IEs", - &asn_OP_SEQUENCE, - asn_DEF_ResourceStatusRequest_IEs_tags_309, - sizeof(asn_DEF_ResourceStatusRequest_IEs_tags_309) - /sizeof(asn_DEF_ResourceStatusRequest_IEs_tags_309[0]), /* 1 */ - asn_DEF_ResourceStatusRequest_IEs_tags_309, /* Same as above */ - sizeof(asn_DEF_ResourceStatusRequest_IEs_tags_309) - /sizeof(asn_DEF_ResourceStatusRequest_IEs_tags_309[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ResourceStatusRequest_IEs_309, - 3, /* Elements count */ - &asn_SPC_ResourceStatusRequest_IEs_specs_309 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_316[] = { - { ATF_NOFLAGS, 0, offsetof(struct ResourceStatusResponse_IEs__value, choice.Measurement_ID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_Measurement_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "Measurement-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct ResourceStatusResponse_IEs__value, choice.CriticalityDiagnostics), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CriticalityDiagnostics, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "CriticalityDiagnostics" - }, - { ATF_NOFLAGS, 0, offsetof(struct ResourceStatusResponse_IEs__value, choice.MeasurementInitiationResult_List), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_MeasurementInitiationResult_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "MeasurementInitiationResult-List" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_316[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* Measurement-ID */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 1 }, /* CriticalityDiagnostics */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -1, 0 } /* MeasurementInitiationResult-List */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_316 = { - sizeof(struct ResourceStatusResponse_IEs__value), - offsetof(struct ResourceStatusResponse_IEs__value, _asn_ctx), - offsetof(struct ResourceStatusResponse_IEs__value, present), - sizeof(((struct ResourceStatusResponse_IEs__value *)0)->present), - asn_MAP_value_tag2el_316, - 3, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_316 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_316, - 3, /* Elements count */ - &asn_SPC_value_specs_316 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ResourceStatusResponse_IEs_313[] = { - { ATF_NOFLAGS, 0, offsetof(struct ResourceStatusResponse_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_314, memb_id_constraint_313 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct ResourceStatusResponse_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_ResourceStatusResponse_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_315, memb_criticality_constraint_313 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ResourceStatusResponse_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_316, - select_ResourceStatusResponse_IEs_value_type, - { 0, &asn_PER_memb_value_constr_316, memb_value_constraint_313 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_ResourceStatusResponse_IEs_tags_313[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ResourceStatusResponse_IEs_tag2el_313[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ResourceStatusResponse_IEs_specs_313 = { - sizeof(struct ResourceStatusResponse_IEs), - offsetof(struct ResourceStatusResponse_IEs, _asn_ctx), - asn_MAP_ResourceStatusResponse_IEs_tag2el_313, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ResourceStatusResponse_IEs = { - "ResourceStatusResponse-IEs", - "ResourceStatusResponse-IEs", - &asn_OP_SEQUENCE, - asn_DEF_ResourceStatusResponse_IEs_tags_313, - sizeof(asn_DEF_ResourceStatusResponse_IEs_tags_313) - /sizeof(asn_DEF_ResourceStatusResponse_IEs_tags_313[0]), /* 1 */ - asn_DEF_ResourceStatusResponse_IEs_tags_313, /* Same as above */ - sizeof(asn_DEF_ResourceStatusResponse_IEs_tags_313) - /sizeof(asn_DEF_ResourceStatusResponse_IEs_tags_313[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ResourceStatusResponse_IEs_313, - 3, /* Elements count */ - &asn_SPC_ResourceStatusResponse_IEs_specs_313 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_320[] = { - { ATF_NOFLAGS, 0, offsetof(struct ResourceStatusFailure_IEs__value, choice.Measurement_ID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_Measurement_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "Measurement-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct ResourceStatusFailure_IEs__value, choice.Cause), - -1 /* Ambiguous tag (CHOICE?) */, - 0, - &asn_DEF_Cause, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "Cause" - }, - { ATF_NOFLAGS, 0, offsetof(struct ResourceStatusFailure_IEs__value, choice.CriticalityDiagnostics), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CriticalityDiagnostics, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "CriticalityDiagnostics" - }, - { ATF_NOFLAGS, 0, offsetof(struct ResourceStatusFailure_IEs__value, choice.CompleteFailureCauseInformation_List), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CompleteFailureCauseInformation_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "CompleteFailureCauseInformation-List" - }, -}; -static const unsigned asn_MAP_value_to_canonical_320[] = { 0, 2, 3, 1 }; -static const unsigned asn_MAP_value_from_canonical_320[] = { 0, 3, 1, 2 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_320[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* Measurement-ID */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, 0, 1 }, /* CriticalityDiagnostics */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -1, 0 }, /* CompleteFailureCauseInformation-List */ - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 1, 0, 0 }, /* radioNetwork */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* transport */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 1, 0, 0 }, /* protocol */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 1, 0, 0 } /* misc */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_320 = { - sizeof(struct ResourceStatusFailure_IEs__value), - offsetof(struct ResourceStatusFailure_IEs__value, _asn_ctx), - offsetof(struct ResourceStatusFailure_IEs__value, present), - sizeof(((struct ResourceStatusFailure_IEs__value *)0)->present), - asn_MAP_value_tag2el_320, - 7, /* Count of tags in the map */ - asn_MAP_value_to_canonical_320, - asn_MAP_value_from_canonical_320, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_320 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_320, - 4, /* Elements count */ - &asn_SPC_value_specs_320 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ResourceStatusFailure_IEs_317[] = { - { ATF_NOFLAGS, 0, offsetof(struct ResourceStatusFailure_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_318, memb_id_constraint_317 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct ResourceStatusFailure_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_ResourceStatusFailure_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_319, memb_criticality_constraint_317 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ResourceStatusFailure_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_320, - select_ResourceStatusFailure_IEs_value_type, - { 0, &asn_PER_memb_value_constr_320, memb_value_constraint_317 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_ResourceStatusFailure_IEs_tags_317[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ResourceStatusFailure_IEs_tag2el_317[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ResourceStatusFailure_IEs_specs_317 = { - sizeof(struct ResourceStatusFailure_IEs), - offsetof(struct ResourceStatusFailure_IEs, _asn_ctx), - asn_MAP_ResourceStatusFailure_IEs_tag2el_317, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ResourceStatusFailure_IEs = { - "ResourceStatusFailure-IEs", - "ResourceStatusFailure-IEs", - &asn_OP_SEQUENCE, - asn_DEF_ResourceStatusFailure_IEs_tags_317, - sizeof(asn_DEF_ResourceStatusFailure_IEs_tags_317) - /sizeof(asn_DEF_ResourceStatusFailure_IEs_tags_317[0]), /* 1 */ - asn_DEF_ResourceStatusFailure_IEs_tags_317, /* Same as above */ - sizeof(asn_DEF_ResourceStatusFailure_IEs_tags_317) - /sizeof(asn_DEF_ResourceStatusFailure_IEs_tags_317[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ResourceStatusFailure_IEs_317, - 3, /* Elements count */ - &asn_SPC_ResourceStatusFailure_IEs_specs_317 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_324[] = { - { ATF_NOFLAGS, 0, offsetof(struct ResourceStatusUpdate_IEs__value, choice.Measurement_ID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_Measurement_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "Measurement-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct ResourceStatusUpdate_IEs__value, choice.CellMeasurementResult_List), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CellMeasurementResult_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "CellMeasurementResult-List" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_324[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* Measurement-ID */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 0 } /* CellMeasurementResult-List */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_324 = { - sizeof(struct ResourceStatusUpdate_IEs__value), - offsetof(struct ResourceStatusUpdate_IEs__value, _asn_ctx), - offsetof(struct ResourceStatusUpdate_IEs__value, present), - sizeof(((struct ResourceStatusUpdate_IEs__value *)0)->present), - asn_MAP_value_tag2el_324, - 2, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_324 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_324, - 2, /* Elements count */ - &asn_SPC_value_specs_324 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ResourceStatusUpdate_IEs_321[] = { - { ATF_NOFLAGS, 0, offsetof(struct ResourceStatusUpdate_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_322, memb_id_constraint_321 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct ResourceStatusUpdate_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_ResourceStatusUpdate_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_323, memb_criticality_constraint_321 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ResourceStatusUpdate_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_324, - select_ResourceStatusUpdate_IEs_value_type, - { 0, &asn_PER_memb_value_constr_324, memb_value_constraint_321 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_ResourceStatusUpdate_IEs_tags_321[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ResourceStatusUpdate_IEs_tag2el_321[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ResourceStatusUpdate_IEs_specs_321 = { - sizeof(struct ResourceStatusUpdate_IEs), - offsetof(struct ResourceStatusUpdate_IEs, _asn_ctx), - asn_MAP_ResourceStatusUpdate_IEs_tag2el_321, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ResourceStatusUpdate_IEs = { - "ResourceStatusUpdate-IEs", - "ResourceStatusUpdate-IEs", - &asn_OP_SEQUENCE, - asn_DEF_ResourceStatusUpdate_IEs_tags_321, - sizeof(asn_DEF_ResourceStatusUpdate_IEs_tags_321) - /sizeof(asn_DEF_ResourceStatusUpdate_IEs_tags_321[0]), /* 1 */ - asn_DEF_ResourceStatusUpdate_IEs_tags_321, /* Same as above */ - sizeof(asn_DEF_ResourceStatusUpdate_IEs_tags_321) - /sizeof(asn_DEF_ResourceStatusUpdate_IEs_tags_321[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ResourceStatusUpdate_IEs_321, - 3, /* Elements count */ - &asn_SPC_ResourceStatusUpdate_IEs_specs_321 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_328[] = { - { ATF_NOFLAGS, 0, offsetof(struct MobilityChangeRequest_IEs__value, choice.ECGI), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ECGI, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ECGI" - }, - { ATF_NOFLAGS, 0, offsetof(struct MobilityChangeRequest_IEs__value, choice.MobilityParametersInformation), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_MobilityParametersInformation, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "MobilityParametersInformation" - }, - { ATF_NOFLAGS, 0, offsetof(struct MobilityChangeRequest_IEs__value, choice.Cause), - -1 /* Ambiguous tag (CHOICE?) */, - 0, - &asn_DEF_Cause, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "Cause" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_328[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 1 }, /* ECGI */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 0 }, /* MobilityParametersInformation */ - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 2, 0, 0 }, /* radioNetwork */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 2, 0, 0 }, /* transport */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* protocol */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 2, 0, 0 } /* misc */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_328 = { - sizeof(struct MobilityChangeRequest_IEs__value), - offsetof(struct MobilityChangeRequest_IEs__value, _asn_ctx), - offsetof(struct MobilityChangeRequest_IEs__value, present), - sizeof(((struct MobilityChangeRequest_IEs__value *)0)->present), - asn_MAP_value_tag2el_328, - 6, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_328 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_328, - 3, /* Elements count */ - &asn_SPC_value_specs_328 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_MobilityChangeRequest_IEs_325[] = { - { ATF_NOFLAGS, 0, offsetof(struct MobilityChangeRequest_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_326, memb_id_constraint_325 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct MobilityChangeRequest_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_MobilityChangeRequest_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_327, memb_criticality_constraint_325 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct MobilityChangeRequest_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_328, - select_MobilityChangeRequest_IEs_value_type, - { 0, &asn_PER_memb_value_constr_328, memb_value_constraint_325 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_MobilityChangeRequest_IEs_tags_325[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_MobilityChangeRequest_IEs_tag2el_325[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_MobilityChangeRequest_IEs_specs_325 = { - sizeof(struct MobilityChangeRequest_IEs), - offsetof(struct MobilityChangeRequest_IEs, _asn_ctx), - asn_MAP_MobilityChangeRequest_IEs_tag2el_325, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_MobilityChangeRequest_IEs = { - "MobilityChangeRequest-IEs", - "MobilityChangeRequest-IEs", - &asn_OP_SEQUENCE, - asn_DEF_MobilityChangeRequest_IEs_tags_325, - sizeof(asn_DEF_MobilityChangeRequest_IEs_tags_325) - /sizeof(asn_DEF_MobilityChangeRequest_IEs_tags_325[0]), /* 1 */ - asn_DEF_MobilityChangeRequest_IEs_tags_325, /* Same as above */ - sizeof(asn_DEF_MobilityChangeRequest_IEs_tags_325) - /sizeof(asn_DEF_MobilityChangeRequest_IEs_tags_325[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_MobilityChangeRequest_IEs_325, - 3, /* Elements count */ - &asn_SPC_MobilityChangeRequest_IEs_specs_325 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_332[] = { - { ATF_NOFLAGS, 0, offsetof(struct MobilityChangeAcknowledge_IEs__value, choice.ECGI), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ECGI, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ECGI" - }, - { ATF_NOFLAGS, 0, offsetof(struct MobilityChangeAcknowledge_IEs__value, choice.CriticalityDiagnostics), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CriticalityDiagnostics, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "CriticalityDiagnostics" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_332[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 1 }, /* ECGI */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 0 } /* CriticalityDiagnostics */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_332 = { - sizeof(struct MobilityChangeAcknowledge_IEs__value), - offsetof(struct MobilityChangeAcknowledge_IEs__value, _asn_ctx), - offsetof(struct MobilityChangeAcknowledge_IEs__value, present), - sizeof(((struct MobilityChangeAcknowledge_IEs__value *)0)->present), - asn_MAP_value_tag2el_332, - 2, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_332 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_332, - 2, /* Elements count */ - &asn_SPC_value_specs_332 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_MobilityChangeAcknowledge_IEs_329[] = { - { ATF_NOFLAGS, 0, offsetof(struct MobilityChangeAcknowledge_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_330, memb_id_constraint_329 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct MobilityChangeAcknowledge_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_MobilityChangeAcknowledge_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_331, memb_criticality_constraint_329 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct MobilityChangeAcknowledge_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_332, - select_MobilityChangeAcknowledge_IEs_value_type, - { 0, &asn_PER_memb_value_constr_332, memb_value_constraint_329 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_MobilityChangeAcknowledge_IEs_tags_329[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_MobilityChangeAcknowledge_IEs_tag2el_329[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_MobilityChangeAcknowledge_IEs_specs_329 = { - sizeof(struct MobilityChangeAcknowledge_IEs), - offsetof(struct MobilityChangeAcknowledge_IEs, _asn_ctx), - asn_MAP_MobilityChangeAcknowledge_IEs_tag2el_329, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_MobilityChangeAcknowledge_IEs = { - "MobilityChangeAcknowledge-IEs", - "MobilityChangeAcknowledge-IEs", - &asn_OP_SEQUENCE, - asn_DEF_MobilityChangeAcknowledge_IEs_tags_329, - sizeof(asn_DEF_MobilityChangeAcknowledge_IEs_tags_329) - /sizeof(asn_DEF_MobilityChangeAcknowledge_IEs_tags_329[0]), /* 1 */ - asn_DEF_MobilityChangeAcknowledge_IEs_tags_329, /* Same as above */ - sizeof(asn_DEF_MobilityChangeAcknowledge_IEs_tags_329) - /sizeof(asn_DEF_MobilityChangeAcknowledge_IEs_tags_329[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_MobilityChangeAcknowledge_IEs_329, - 3, /* Elements count */ - &asn_SPC_MobilityChangeAcknowledge_IEs_specs_329 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_336[] = { - { ATF_NOFLAGS, 0, offsetof(struct MobilityChangeFailure_IEs__value, choice.ECGI), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ECGI, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ECGI" - }, - { ATF_NOFLAGS, 0, offsetof(struct MobilityChangeFailure_IEs__value, choice.Cause), - -1 /* Ambiguous tag (CHOICE?) */, - 0, - &asn_DEF_Cause, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "Cause" - }, - { ATF_NOFLAGS, 0, offsetof(struct MobilityChangeFailure_IEs__value, choice.MobilityParametersModificationRange), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_MobilityParametersModificationRange, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "MobilityParametersModificationRange" - }, - { ATF_NOFLAGS, 0, offsetof(struct MobilityChangeFailure_IEs__value, choice.CriticalityDiagnostics), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CriticalityDiagnostics, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "CriticalityDiagnostics" - }, -}; -static const unsigned asn_MAP_value_to_canonical_336[] = { 0, 2, 3, 1 }; -static const unsigned asn_MAP_value_from_canonical_336[] = { 0, 3, 1, 2 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_336[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 2 }, /* ECGI */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -1, 1 }, /* MobilityParametersModificationRange */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -2, 0 }, /* CriticalityDiagnostics */ - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 1, 0, 0 }, /* radioNetwork */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* transport */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 1, 0, 0 }, /* protocol */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 1, 0, 0 } /* misc */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_336 = { - sizeof(struct MobilityChangeFailure_IEs__value), - offsetof(struct MobilityChangeFailure_IEs__value, _asn_ctx), - offsetof(struct MobilityChangeFailure_IEs__value, present), - sizeof(((struct MobilityChangeFailure_IEs__value *)0)->present), - asn_MAP_value_tag2el_336, - 7, /* Count of tags in the map */ - asn_MAP_value_to_canonical_336, - asn_MAP_value_from_canonical_336, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_336 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_336, - 4, /* Elements count */ - &asn_SPC_value_specs_336 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_MobilityChangeFailure_IEs_333[] = { - { ATF_NOFLAGS, 0, offsetof(struct MobilityChangeFailure_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_334, memb_id_constraint_333 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct MobilityChangeFailure_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_MobilityChangeFailure_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_335, memb_criticality_constraint_333 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct MobilityChangeFailure_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_336, - select_MobilityChangeFailure_IEs_value_type, - { 0, &asn_PER_memb_value_constr_336, memb_value_constraint_333 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_MobilityChangeFailure_IEs_tags_333[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_MobilityChangeFailure_IEs_tag2el_333[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_MobilityChangeFailure_IEs_specs_333 = { - sizeof(struct MobilityChangeFailure_IEs), - offsetof(struct MobilityChangeFailure_IEs, _asn_ctx), - asn_MAP_MobilityChangeFailure_IEs_tag2el_333, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_MobilityChangeFailure_IEs = { - "MobilityChangeFailure-IEs", - "MobilityChangeFailure-IEs", - &asn_OP_SEQUENCE, - asn_DEF_MobilityChangeFailure_IEs_tags_333, - sizeof(asn_DEF_MobilityChangeFailure_IEs_tags_333) - /sizeof(asn_DEF_MobilityChangeFailure_IEs_tags_333[0]), /* 1 */ - asn_DEF_MobilityChangeFailure_IEs_tags_333, /* Same as above */ - sizeof(asn_DEF_MobilityChangeFailure_IEs_tags_333) - /sizeof(asn_DEF_MobilityChangeFailure_IEs_tags_333[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_MobilityChangeFailure_IEs_333, - 3, /* Elements count */ - &asn_SPC_MobilityChangeFailure_IEs_specs_333 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_340[] = { - { ATF_NOFLAGS, 0, offsetof(struct RLFIndication_IEs__value, choice.PCI), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_PCI, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "PCI" - }, - { ATF_NOFLAGS, 0, offsetof(struct RLFIndication_IEs__value, choice.ECGI), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ECGI, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ECGI" - }, - { ATF_NOFLAGS, 0, offsetof(struct RLFIndication_IEs__value, choice.CRNTI), - (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), - 0, - &asn_DEF_CRNTI, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "CRNTI" - }, - { ATF_NOFLAGS, 0, offsetof(struct RLFIndication_IEs__value, choice.ShortMAC_I), - (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), - 0, - &asn_DEF_ShortMAC_I, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ShortMAC-I" - }, - { ATF_NOFLAGS, 0, offsetof(struct RLFIndication_IEs__value, choice.UE_RLF_Report_Container), - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), - 0, - &asn_DEF_UE_RLF_Report_Container, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "UE-RLF-Report-Container" - }, - { ATF_NOFLAGS, 0, offsetof(struct RLFIndication_IEs__value, choice.RRCConnSetupIndicator), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_RRCConnSetupIndicator, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RRCConnSetupIndicator" - }, - { ATF_NOFLAGS, 0, offsetof(struct RLFIndication_IEs__value, choice.RRCConnReestabIndicator), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_RRCConnReestabIndicator, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RRCConnReestabIndicator" - }, - { ATF_NOFLAGS, 0, offsetof(struct RLFIndication_IEs__value, choice.UE_RLF_Report_Container_for_extended_bands), - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), - 0, - &asn_DEF_UE_RLF_Report_Container_for_extended_bands, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "UE-RLF-Report-Container-for-extended-bands" - }, -}; -static const unsigned asn_MAP_value_to_canonical_340[] = { 0, 2, 3, 4, 7, 5, 6, 1 }; -static const unsigned asn_MAP_value_from_canonical_340[] = { 0, 7, 1, 2, 3, 5, 6, 4 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_340[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* PCI */ - { (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), 2, 0, 1 }, /* CRNTI */ - { (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), 3, -1, 0 }, /* ShortMAC-I */ - { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 4, 0, 1 }, /* UE-RLF-Report-Container */ - { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 7, -1, 0 }, /* UE-RLF-Report-Container-for-extended-bands */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 5, 0, 1 }, /* RRCConnSetupIndicator */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 6, -1, 0 }, /* RRCConnReestabIndicator */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 0 } /* ECGI */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_340 = { - sizeof(struct RLFIndication_IEs__value), - offsetof(struct RLFIndication_IEs__value, _asn_ctx), - offsetof(struct RLFIndication_IEs__value, present), - sizeof(((struct RLFIndication_IEs__value *)0)->present), - asn_MAP_value_tag2el_340, - 8, /* Count of tags in the map */ - asn_MAP_value_to_canonical_340, - asn_MAP_value_from_canonical_340, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_340 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_340, - 8, /* Elements count */ - &asn_SPC_value_specs_340 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_RLFIndication_IEs_337[] = { - { ATF_NOFLAGS, 0, offsetof(struct RLFIndication_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_338, memb_id_constraint_337 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct RLFIndication_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_RLFIndication_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_339, memb_criticality_constraint_337 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RLFIndication_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_340, - select_RLFIndication_IEs_value_type, - { 0, &asn_PER_memb_value_constr_340, memb_value_constraint_337 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_RLFIndication_IEs_tags_337[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RLFIndication_IEs_tag2el_337[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RLFIndication_IEs_specs_337 = { - sizeof(struct RLFIndication_IEs), - offsetof(struct RLFIndication_IEs, _asn_ctx), - asn_MAP_RLFIndication_IEs_tag2el_337, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RLFIndication_IEs = { - "RLFIndication-IEs", - "RLFIndication-IEs", - &asn_OP_SEQUENCE, - asn_DEF_RLFIndication_IEs_tags_337, - sizeof(asn_DEF_RLFIndication_IEs_tags_337) - /sizeof(asn_DEF_RLFIndication_IEs_tags_337[0]), /* 1 */ - asn_DEF_RLFIndication_IEs_tags_337, /* Same as above */ - sizeof(asn_DEF_RLFIndication_IEs_tags_337) - /sizeof(asn_DEF_RLFIndication_IEs_tags_337[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RLFIndication_IEs_337, - 3, /* Elements count */ - &asn_SPC_RLFIndication_IEs_specs_337 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_344[] = { - { ATF_NOFLAGS, 0, offsetof(struct CellActivationRequest_IEs__value, choice.ServedCellsToActivate), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ServedCellsToActivate, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ServedCellsToActivate" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_344[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* ServedCellsToActivate */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_344 = { - sizeof(struct CellActivationRequest_IEs__value), - offsetof(struct CellActivationRequest_IEs__value, _asn_ctx), - offsetof(struct CellActivationRequest_IEs__value, present), - sizeof(((struct CellActivationRequest_IEs__value *)0)->present), - asn_MAP_value_tag2el_344, - 1, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_344 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_344, - 1, /* Elements count */ - &asn_SPC_value_specs_344 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_CellActivationRequest_IEs_341[] = { - { ATF_NOFLAGS, 0, offsetof(struct CellActivationRequest_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_342, memb_id_constraint_341 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct CellActivationRequest_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_CellActivationRequest_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_343, memb_criticality_constraint_341 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct CellActivationRequest_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_344, - select_CellActivationRequest_IEs_value_type, - { 0, &asn_PER_memb_value_constr_344, memb_value_constraint_341 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_CellActivationRequest_IEs_tags_341[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_CellActivationRequest_IEs_tag2el_341[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_CellActivationRequest_IEs_specs_341 = { - sizeof(struct CellActivationRequest_IEs), - offsetof(struct CellActivationRequest_IEs, _asn_ctx), - asn_MAP_CellActivationRequest_IEs_tag2el_341, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_CellActivationRequest_IEs = { - "CellActivationRequest-IEs", - "CellActivationRequest-IEs", - &asn_OP_SEQUENCE, - asn_DEF_CellActivationRequest_IEs_tags_341, - sizeof(asn_DEF_CellActivationRequest_IEs_tags_341) - /sizeof(asn_DEF_CellActivationRequest_IEs_tags_341[0]), /* 1 */ - asn_DEF_CellActivationRequest_IEs_tags_341, /* Same as above */ - sizeof(asn_DEF_CellActivationRequest_IEs_tags_341) - /sizeof(asn_DEF_CellActivationRequest_IEs_tags_341[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_CellActivationRequest_IEs_341, - 3, /* Elements count */ - &asn_SPC_CellActivationRequest_IEs_specs_341 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_348[] = { - { ATF_NOFLAGS, 0, offsetof(struct CellActivationResponse_IEs__value, choice.ActivatedCellList), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ActivatedCellList, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ActivatedCellList" - }, - { ATF_NOFLAGS, 0, offsetof(struct CellActivationResponse_IEs__value, choice.CriticalityDiagnostics), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CriticalityDiagnostics, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "CriticalityDiagnostics" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_348[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 1 }, /* ActivatedCellList */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 0 } /* CriticalityDiagnostics */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_348 = { - sizeof(struct CellActivationResponse_IEs__value), - offsetof(struct CellActivationResponse_IEs__value, _asn_ctx), - offsetof(struct CellActivationResponse_IEs__value, present), - sizeof(((struct CellActivationResponse_IEs__value *)0)->present), - asn_MAP_value_tag2el_348, - 2, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_348 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_348, - 2, /* Elements count */ - &asn_SPC_value_specs_348 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_CellActivationResponse_IEs_345[] = { - { ATF_NOFLAGS, 0, offsetof(struct CellActivationResponse_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_346, memb_id_constraint_345 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct CellActivationResponse_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_CellActivationResponse_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_347, memb_criticality_constraint_345 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct CellActivationResponse_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_348, - select_CellActivationResponse_IEs_value_type, - { 0, &asn_PER_memb_value_constr_348, memb_value_constraint_345 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_CellActivationResponse_IEs_tags_345[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_CellActivationResponse_IEs_tag2el_345[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_CellActivationResponse_IEs_specs_345 = { - sizeof(struct CellActivationResponse_IEs), - offsetof(struct CellActivationResponse_IEs, _asn_ctx), - asn_MAP_CellActivationResponse_IEs_tag2el_345, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_CellActivationResponse_IEs = { - "CellActivationResponse-IEs", - "CellActivationResponse-IEs", - &asn_OP_SEQUENCE, - asn_DEF_CellActivationResponse_IEs_tags_345, - sizeof(asn_DEF_CellActivationResponse_IEs_tags_345) - /sizeof(asn_DEF_CellActivationResponse_IEs_tags_345[0]), /* 1 */ - asn_DEF_CellActivationResponse_IEs_tags_345, /* Same as above */ - sizeof(asn_DEF_CellActivationResponse_IEs_tags_345) - /sizeof(asn_DEF_CellActivationResponse_IEs_tags_345[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_CellActivationResponse_IEs_345, - 3, /* Elements count */ - &asn_SPC_CellActivationResponse_IEs_specs_345 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_352[] = { - { ATF_NOFLAGS, 0, offsetof(struct CellActivationFailure_IEs__value, choice.Cause), - -1 /* Ambiguous tag (CHOICE?) */, - 0, - &asn_DEF_Cause, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "Cause" - }, - { ATF_NOFLAGS, 0, offsetof(struct CellActivationFailure_IEs__value, choice.CriticalityDiagnostics), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CriticalityDiagnostics, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "CriticalityDiagnostics" - }, -}; -static const unsigned asn_MAP_value_to_canonical_352[] = { 1, 0 }; -static const unsigned asn_MAP_value_from_canonical_352[] = { 1, 0 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_352[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 0 }, /* CriticalityDiagnostics */ - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* radioNetwork */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 0, 0, 0 }, /* transport */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 0, 0, 0 }, /* protocol */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 0, 0, 0 } /* misc */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_352 = { - sizeof(struct CellActivationFailure_IEs__value), - offsetof(struct CellActivationFailure_IEs__value, _asn_ctx), - offsetof(struct CellActivationFailure_IEs__value, present), - sizeof(((struct CellActivationFailure_IEs__value *)0)->present), - asn_MAP_value_tag2el_352, - 5, /* Count of tags in the map */ - asn_MAP_value_to_canonical_352, - asn_MAP_value_from_canonical_352, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_352 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_352, - 2, /* Elements count */ - &asn_SPC_value_specs_352 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_CellActivationFailure_IEs_349[] = { - { ATF_NOFLAGS, 0, offsetof(struct CellActivationFailure_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_350, memb_id_constraint_349 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct CellActivationFailure_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_CellActivationFailure_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_351, memb_criticality_constraint_349 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct CellActivationFailure_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_352, - select_CellActivationFailure_IEs_value_type, - { 0, &asn_PER_memb_value_constr_352, memb_value_constraint_349 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_CellActivationFailure_IEs_tags_349[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_CellActivationFailure_IEs_tag2el_349[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_CellActivationFailure_IEs_specs_349 = { - sizeof(struct CellActivationFailure_IEs), - offsetof(struct CellActivationFailure_IEs, _asn_ctx), - asn_MAP_CellActivationFailure_IEs_tag2el_349, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_CellActivationFailure_IEs = { - "CellActivationFailure-IEs", - "CellActivationFailure-IEs", - &asn_OP_SEQUENCE, - asn_DEF_CellActivationFailure_IEs_tags_349, - sizeof(asn_DEF_CellActivationFailure_IEs_tags_349) - /sizeof(asn_DEF_CellActivationFailure_IEs_tags_349[0]), /* 1 */ - asn_DEF_CellActivationFailure_IEs_tags_349, /* Same as above */ - sizeof(asn_DEF_CellActivationFailure_IEs_tags_349) - /sizeof(asn_DEF_CellActivationFailure_IEs_tags_349[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_CellActivationFailure_IEs_349, - 3, /* Elements count */ - &asn_SPC_CellActivationFailure_IEs_specs_349 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_356[] = { - { ATF_NOFLAGS, 0, offsetof(struct X2Release_IEs__value, choice.GlobalENB_ID), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_GlobalENB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "GlobalENB-ID" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_356[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* GlobalENB-ID */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_356 = { - sizeof(struct X2Release_IEs__value), - offsetof(struct X2Release_IEs__value, _asn_ctx), - offsetof(struct X2Release_IEs__value, present), - sizeof(((struct X2Release_IEs__value *)0)->present), - asn_MAP_value_tag2el_356, - 1, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_356 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_356, - 1, /* Elements count */ - &asn_SPC_value_specs_356 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_X2Release_IEs_353[] = { - { ATF_NOFLAGS, 0, offsetof(struct X2Release_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_354, memb_id_constraint_353 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct X2Release_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_X2Release_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_355, memb_criticality_constraint_353 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct X2Release_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_356, - select_X2Release_IEs_value_type, - { 0, &asn_PER_memb_value_constr_356, memb_value_constraint_353 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_X2Release_IEs_tags_353[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_X2Release_IEs_tag2el_353[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_X2Release_IEs_specs_353 = { - sizeof(struct X2Release_IEs), - offsetof(struct X2Release_IEs, _asn_ctx), - asn_MAP_X2Release_IEs_tag2el_353, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_X2Release_IEs = { - "X2Release-IEs", - "X2Release-IEs", - &asn_OP_SEQUENCE, - asn_DEF_X2Release_IEs_tags_353, - sizeof(asn_DEF_X2Release_IEs_tags_353) - /sizeof(asn_DEF_X2Release_IEs_tags_353[0]), /* 1 */ - asn_DEF_X2Release_IEs_tags_353, /* Same as above */ - sizeof(asn_DEF_X2Release_IEs_tags_353) - /sizeof(asn_DEF_X2Release_IEs_tags_353[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_X2Release_IEs_353, - 3, /* Elements count */ - &asn_SPC_X2Release_IEs_specs_353 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_360[] = { - { ATF_NOFLAGS, 0, offsetof(struct X2APMessageTransfer_IEs__value, choice.RNL_Header), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RNL_Header, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RNL-Header" - }, - { ATF_NOFLAGS, 0, offsetof(struct X2APMessageTransfer_IEs__value, choice.X2AP_Message), - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), - 0, - &asn_DEF_X2AP_Message, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "X2AP-Message" - }, -}; -static const unsigned asn_MAP_value_to_canonical_360[] = { 1, 0 }; -static const unsigned asn_MAP_value_from_canonical_360[] = { 1, 0 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_360[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 1, 0, 0 }, /* X2AP-Message */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RNL-Header */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_360 = { - sizeof(struct X2APMessageTransfer_IEs__value), - offsetof(struct X2APMessageTransfer_IEs__value, _asn_ctx), - offsetof(struct X2APMessageTransfer_IEs__value, present), - sizeof(((struct X2APMessageTransfer_IEs__value *)0)->present), - asn_MAP_value_tag2el_360, - 2, /* Count of tags in the map */ - asn_MAP_value_to_canonical_360, - asn_MAP_value_from_canonical_360, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_360 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_360, - 2, /* Elements count */ - &asn_SPC_value_specs_360 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_X2APMessageTransfer_IEs_357[] = { - { ATF_NOFLAGS, 0, offsetof(struct X2APMessageTransfer_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_358, memb_id_constraint_357 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct X2APMessageTransfer_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_X2APMessageTransfer_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_359, memb_criticality_constraint_357 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct X2APMessageTransfer_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_360, - select_X2APMessageTransfer_IEs_value_type, - { 0, &asn_PER_memb_value_constr_360, memb_value_constraint_357 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_X2APMessageTransfer_IEs_tags_357[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_X2APMessageTransfer_IEs_tag2el_357[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_X2APMessageTransfer_IEs_specs_357 = { - sizeof(struct X2APMessageTransfer_IEs), - offsetof(struct X2APMessageTransfer_IEs, _asn_ctx), - asn_MAP_X2APMessageTransfer_IEs_tag2el_357, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_X2APMessageTransfer_IEs = { - "X2APMessageTransfer-IEs", - "X2APMessageTransfer-IEs", - &asn_OP_SEQUENCE, - asn_DEF_X2APMessageTransfer_IEs_tags_357, - sizeof(asn_DEF_X2APMessageTransfer_IEs_tags_357) - /sizeof(asn_DEF_X2APMessageTransfer_IEs_tags_357[0]), /* 1 */ - asn_DEF_X2APMessageTransfer_IEs_tags_357, /* Same as above */ - sizeof(asn_DEF_X2APMessageTransfer_IEs_tags_357) - /sizeof(asn_DEF_X2APMessageTransfer_IEs_tags_357[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_X2APMessageTransfer_IEs_357, - 3, /* Elements count */ - &asn_SPC_X2APMessageTransfer_IEs_specs_357 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_364[] = { - { ATF_NOFLAGS, 0, offsetof(struct SeNBAdditionRequest_IEs__value, choice.UE_X2AP_ID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_UE_X2AP_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "UE-X2AP-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct SeNBAdditionRequest_IEs__value, choice.UESecurityCapabilities), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_UESecurityCapabilities, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "UESecurityCapabilities" - }, - { ATF_NOFLAGS, 0, offsetof(struct SeNBAdditionRequest_IEs__value, choice.SeNBSecurityKey), - (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), - 0, - &asn_DEF_SeNBSecurityKey, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "SeNBSecurityKey" - }, - { ATF_NOFLAGS, 0, offsetof(struct SeNBAdditionRequest_IEs__value, choice.UEAggregateMaximumBitRate), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_UEAggregateMaximumBitRate, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "UEAggregateMaximumBitRate" - }, - { ATF_NOFLAGS, 0, offsetof(struct SeNBAdditionRequest_IEs__value, choice.PLMN_Identity), - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), - 0, - &asn_DEF_PLMN_Identity, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "PLMN-Identity" - }, - { ATF_NOFLAGS, 0, offsetof(struct SeNBAdditionRequest_IEs__value, choice.E_RABs_ToBeAdded_List), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RABs_ToBeAdded_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "E-RABs-ToBeAdded-List" - }, - { ATF_NOFLAGS, 0, offsetof(struct SeNBAdditionRequest_IEs__value, choice.MeNBtoSeNBContainer), - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), - 0, - &asn_DEF_MeNBtoSeNBContainer, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "MeNBtoSeNBContainer" - }, - { ATF_NOFLAGS, 0, offsetof(struct SeNBAdditionRequest_IEs__value, choice.CSGMembershipStatus), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_CSGMembershipStatus, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "CSGMembershipStatus" - }, - { ATF_NOFLAGS, 0, offsetof(struct SeNBAdditionRequest_IEs__value, choice.UE_X2AP_ID_Extension), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_UE_X2AP_ID_Extension, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "UE-X2AP-ID-Extension" - }, - { ATF_NOFLAGS, 0, offsetof(struct SeNBAdditionRequest_IEs__value, choice.ExpectedUEBehaviour), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ExpectedUEBehaviour, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ExpectedUEBehaviour" - }, -}; -static const unsigned asn_MAP_value_to_canonical_364[] = { 0, 8, 2, 4, 6, 7, 1, 3, 5, 9 }; -static const unsigned asn_MAP_value_from_canonical_364[] = { 0, 6, 2, 7, 3, 8, 4, 5, 1, 9 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_364[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 1 }, /* UE-X2AP-ID */ - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 8, -1, 0 }, /* UE-X2AP-ID-Extension */ - { (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), 2, 0, 0 }, /* SeNBSecurityKey */ - { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 4, 0, 1 }, /* PLMN-Identity */ - { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 6, -1, 0 }, /* MeNBtoSeNBContainer */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 7, 0, 0 }, /* CSGMembershipStatus */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 3 }, /* UESecurityCapabilities */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -1, 2 }, /* UEAggregateMaximumBitRate */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 5, -2, 1 }, /* E-RABs-ToBeAdded-List */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 9, -3, 0 } /* ExpectedUEBehaviour */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_364 = { - sizeof(struct SeNBAdditionRequest_IEs__value), - offsetof(struct SeNBAdditionRequest_IEs__value, _asn_ctx), - offsetof(struct SeNBAdditionRequest_IEs__value, present), - sizeof(((struct SeNBAdditionRequest_IEs__value *)0)->present), - asn_MAP_value_tag2el_364, - 10, /* Count of tags in the map */ - asn_MAP_value_to_canonical_364, - asn_MAP_value_from_canonical_364, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_364 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_364, - 10, /* Elements count */ - &asn_SPC_value_specs_364 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_SeNBAdditionRequest_IEs_361[] = { - { ATF_NOFLAGS, 0, offsetof(struct SeNBAdditionRequest_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_362, memb_id_constraint_361 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct SeNBAdditionRequest_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_SeNBAdditionRequest_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_363, memb_criticality_constraint_361 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SeNBAdditionRequest_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_364, - select_SeNBAdditionRequest_IEs_value_type, - { 0, &asn_PER_memb_value_constr_364, memb_value_constraint_361 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_SeNBAdditionRequest_IEs_tags_361[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_SeNBAdditionRequest_IEs_tag2el_361[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_SeNBAdditionRequest_IEs_specs_361 = { - sizeof(struct SeNBAdditionRequest_IEs), - offsetof(struct SeNBAdditionRequest_IEs, _asn_ctx), - asn_MAP_SeNBAdditionRequest_IEs_tag2el_361, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_SeNBAdditionRequest_IEs = { - "SeNBAdditionRequest-IEs", - "SeNBAdditionRequest-IEs", - &asn_OP_SEQUENCE, - asn_DEF_SeNBAdditionRequest_IEs_tags_361, - sizeof(asn_DEF_SeNBAdditionRequest_IEs_tags_361) - /sizeof(asn_DEF_SeNBAdditionRequest_IEs_tags_361[0]), /* 1 */ - asn_DEF_SeNBAdditionRequest_IEs_tags_361, /* Same as above */ - sizeof(asn_DEF_SeNBAdditionRequest_IEs_tags_361) - /sizeof(asn_DEF_SeNBAdditionRequest_IEs_tags_361[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_SeNBAdditionRequest_IEs_361, - 3, /* Elements count */ - &asn_SPC_SeNBAdditionRequest_IEs_specs_361 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_368[] = { - { ATF_NOFLAGS, 0, offsetof(struct SeNBAdditionRequestAcknowledge_IEs__value, choice.UE_X2AP_ID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_UE_X2AP_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "UE-X2AP-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct SeNBAdditionRequestAcknowledge_IEs__value, choice.E_RABs_Admitted_ToBeAdded_List), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RABs_Admitted_ToBeAdded_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "E-RABs-Admitted-ToBeAdded-List" - }, - { ATF_NOFLAGS, 0, offsetof(struct SeNBAdditionRequestAcknowledge_IEs__value, choice.E_RAB_List), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RAB_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "E-RAB-List" - }, - { ATF_NOFLAGS, 0, offsetof(struct SeNBAdditionRequestAcknowledge_IEs__value, choice.SeNBtoMeNBContainer), - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), - 0, - &asn_DEF_SeNBtoMeNBContainer, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "SeNBtoMeNBContainer" - }, - { ATF_NOFLAGS, 0, offsetof(struct SeNBAdditionRequestAcknowledge_IEs__value, choice.CriticalityDiagnostics), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CriticalityDiagnostics, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "CriticalityDiagnostics" - }, - { ATF_NOFLAGS, 0, offsetof(struct SeNBAdditionRequestAcknowledge_IEs__value, choice.TransportLayerAddress), - (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), - 0, - &asn_DEF_TransportLayerAddress, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "TransportLayerAddress" - }, - { ATF_NOFLAGS, 0, offsetof(struct SeNBAdditionRequestAcknowledge_IEs__value, choice.UE_X2AP_ID_Extension), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_UE_X2AP_ID_Extension, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "UE-X2AP-ID-Extension" - }, - { ATF_NOFLAGS, 0, offsetof(struct SeNBAdditionRequestAcknowledge_IEs__value, choice.TunnelInformation), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_TunnelInformation, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "TunnelInformation" - }, -}; -static const unsigned asn_MAP_value_to_canonical_368[] = { 0, 6, 5, 3, 1, 2, 4, 7 }; -static const unsigned asn_MAP_value_from_canonical_368[] = { 0, 4, 5, 3, 6, 2, 1, 7 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_368[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 1 }, /* UE-X2AP-ID */ - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 6, -1, 0 }, /* UE-X2AP-ID-Extension */ - { (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), 5, 0, 0 }, /* TransportLayerAddress */ - { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 3, 0, 0 }, /* SeNBtoMeNBContainer */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 3 }, /* E-RABs-Admitted-ToBeAdded-List */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -1, 2 }, /* E-RAB-List */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, -2, 1 }, /* CriticalityDiagnostics */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 7, -3, 0 } /* TunnelInformation */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_368 = { - sizeof(struct SeNBAdditionRequestAcknowledge_IEs__value), - offsetof(struct SeNBAdditionRequestAcknowledge_IEs__value, _asn_ctx), - offsetof(struct SeNBAdditionRequestAcknowledge_IEs__value, present), - sizeof(((struct SeNBAdditionRequestAcknowledge_IEs__value *)0)->present), - asn_MAP_value_tag2el_368, - 8, /* Count of tags in the map */ - asn_MAP_value_to_canonical_368, - asn_MAP_value_from_canonical_368, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_368 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_368, - 8, /* Elements count */ - &asn_SPC_value_specs_368 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_SeNBAdditionRequestAcknowledge_IEs_365[] = { - { ATF_NOFLAGS, 0, offsetof(struct SeNBAdditionRequestAcknowledge_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_366, memb_id_constraint_365 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct SeNBAdditionRequestAcknowledge_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_SeNBAdditionRequestAcknowledge_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_367, memb_criticality_constraint_365 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SeNBAdditionRequestAcknowledge_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_368, - select_SeNBAdditionRequestAcknowledge_IEs_value_type, - { 0, &asn_PER_memb_value_constr_368, memb_value_constraint_365 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_SeNBAdditionRequestAcknowledge_IEs_tags_365[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_SeNBAdditionRequestAcknowledge_IEs_tag2el_365[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_SeNBAdditionRequestAcknowledge_IEs_specs_365 = { - sizeof(struct SeNBAdditionRequestAcknowledge_IEs), - offsetof(struct SeNBAdditionRequestAcknowledge_IEs, _asn_ctx), - asn_MAP_SeNBAdditionRequestAcknowledge_IEs_tag2el_365, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_SeNBAdditionRequestAcknowledge_IEs = { - "SeNBAdditionRequestAcknowledge-IEs", - "SeNBAdditionRequestAcknowledge-IEs", - &asn_OP_SEQUENCE, - asn_DEF_SeNBAdditionRequestAcknowledge_IEs_tags_365, - sizeof(asn_DEF_SeNBAdditionRequestAcknowledge_IEs_tags_365) - /sizeof(asn_DEF_SeNBAdditionRequestAcknowledge_IEs_tags_365[0]), /* 1 */ - asn_DEF_SeNBAdditionRequestAcknowledge_IEs_tags_365, /* Same as above */ - sizeof(asn_DEF_SeNBAdditionRequestAcknowledge_IEs_tags_365) - /sizeof(asn_DEF_SeNBAdditionRequestAcknowledge_IEs_tags_365[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_SeNBAdditionRequestAcknowledge_IEs_365, - 3, /* Elements count */ - &asn_SPC_SeNBAdditionRequestAcknowledge_IEs_specs_365 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_372[] = { - { ATF_NOFLAGS, 0, offsetof(struct SeNBAdditionRequestReject_IEs__value, choice.UE_X2AP_ID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_UE_X2AP_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "UE-X2AP-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct SeNBAdditionRequestReject_IEs__value, choice.Cause), - -1 /* Ambiguous tag (CHOICE?) */, - 0, - &asn_DEF_Cause, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "Cause" - }, - { ATF_NOFLAGS, 0, offsetof(struct SeNBAdditionRequestReject_IEs__value, choice.CriticalityDiagnostics), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CriticalityDiagnostics, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "CriticalityDiagnostics" - }, - { ATF_NOFLAGS, 0, offsetof(struct SeNBAdditionRequestReject_IEs__value, choice.UE_X2AP_ID_Extension), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_UE_X2AP_ID_Extension, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "UE-X2AP-ID-Extension" - }, -}; -static const unsigned asn_MAP_value_to_canonical_372[] = { 0, 3, 2, 1 }; -static const unsigned asn_MAP_value_from_canonical_372[] = { 0, 3, 2, 1 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_372[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 1 }, /* UE-X2AP-ID */ - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 3, -1, 0 }, /* UE-X2AP-ID-Extension */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, 0, 0 }, /* CriticalityDiagnostics */ - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 1, 0, 0 }, /* radioNetwork */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* transport */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 1, 0, 0 }, /* protocol */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 1, 0, 0 } /* misc */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_372 = { - sizeof(struct SeNBAdditionRequestReject_IEs__value), - offsetof(struct SeNBAdditionRequestReject_IEs__value, _asn_ctx), - offsetof(struct SeNBAdditionRequestReject_IEs__value, present), - sizeof(((struct SeNBAdditionRequestReject_IEs__value *)0)->present), - asn_MAP_value_tag2el_372, - 7, /* Count of tags in the map */ - asn_MAP_value_to_canonical_372, - asn_MAP_value_from_canonical_372, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_372 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_372, - 4, /* Elements count */ - &asn_SPC_value_specs_372 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_SeNBAdditionRequestReject_IEs_369[] = { - { ATF_NOFLAGS, 0, offsetof(struct SeNBAdditionRequestReject_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_370, memb_id_constraint_369 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct SeNBAdditionRequestReject_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_SeNBAdditionRequestReject_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_371, memb_criticality_constraint_369 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SeNBAdditionRequestReject_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_372, - select_SeNBAdditionRequestReject_IEs_value_type, - { 0, &asn_PER_memb_value_constr_372, memb_value_constraint_369 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_SeNBAdditionRequestReject_IEs_tags_369[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_SeNBAdditionRequestReject_IEs_tag2el_369[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_SeNBAdditionRequestReject_IEs_specs_369 = { - sizeof(struct SeNBAdditionRequestReject_IEs), - offsetof(struct SeNBAdditionRequestReject_IEs, _asn_ctx), - asn_MAP_SeNBAdditionRequestReject_IEs_tag2el_369, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_SeNBAdditionRequestReject_IEs = { - "SeNBAdditionRequestReject-IEs", - "SeNBAdditionRequestReject-IEs", - &asn_OP_SEQUENCE, - asn_DEF_SeNBAdditionRequestReject_IEs_tags_369, - sizeof(asn_DEF_SeNBAdditionRequestReject_IEs_tags_369) - /sizeof(asn_DEF_SeNBAdditionRequestReject_IEs_tags_369[0]), /* 1 */ - asn_DEF_SeNBAdditionRequestReject_IEs_tags_369, /* Same as above */ - sizeof(asn_DEF_SeNBAdditionRequestReject_IEs_tags_369) - /sizeof(asn_DEF_SeNBAdditionRequestReject_IEs_tags_369[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_SeNBAdditionRequestReject_IEs_369, - 3, /* Elements count */ - &asn_SPC_SeNBAdditionRequestReject_IEs_specs_369 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_376[] = { - { ATF_NOFLAGS, 0, offsetof(struct SeNBReconfigurationComplete_IEs__value, choice.UE_X2AP_ID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_UE_X2AP_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "UE-X2AP-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct SeNBReconfigurationComplete_IEs__value, choice.ResponseInformationSeNBReconfComp), - -1 /* Ambiguous tag (CHOICE?) */, - 0, - &asn_DEF_ResponseInformationSeNBReconfComp, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ResponseInformationSeNBReconfComp" - }, - { ATF_NOFLAGS, 0, offsetof(struct SeNBReconfigurationComplete_IEs__value, choice.UE_X2AP_ID_Extension), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_UE_X2AP_ID_Extension, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "UE-X2AP-ID-Extension" - }, -}; -static const unsigned asn_MAP_value_to_canonical_376[] = { 0, 2, 1 }; -static const unsigned asn_MAP_value_from_canonical_376[] = { 0, 2, 1 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_376[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 1 }, /* UE-X2AP-ID */ - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 2, -1, 0 }, /* UE-X2AP-ID-Extension */ - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 1, 0, 0 }, /* success */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* reject-by-MeNB */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_376 = { - sizeof(struct SeNBReconfigurationComplete_IEs__value), - offsetof(struct SeNBReconfigurationComplete_IEs__value, _asn_ctx), - offsetof(struct SeNBReconfigurationComplete_IEs__value, present), - sizeof(((struct SeNBReconfigurationComplete_IEs__value *)0)->present), - asn_MAP_value_tag2el_376, - 4, /* Count of tags in the map */ - asn_MAP_value_to_canonical_376, - asn_MAP_value_from_canonical_376, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_376 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_376, - 3, /* Elements count */ - &asn_SPC_value_specs_376 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_SeNBReconfigurationComplete_IEs_373[] = { - { ATF_NOFLAGS, 0, offsetof(struct SeNBReconfigurationComplete_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_374, memb_id_constraint_373 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct SeNBReconfigurationComplete_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_SeNBReconfigurationComplete_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_375, memb_criticality_constraint_373 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SeNBReconfigurationComplete_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_376, - select_SeNBReconfigurationComplete_IEs_value_type, - { 0, &asn_PER_memb_value_constr_376, memb_value_constraint_373 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_SeNBReconfigurationComplete_IEs_tags_373[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_SeNBReconfigurationComplete_IEs_tag2el_373[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_SeNBReconfigurationComplete_IEs_specs_373 = { - sizeof(struct SeNBReconfigurationComplete_IEs), - offsetof(struct SeNBReconfigurationComplete_IEs, _asn_ctx), - asn_MAP_SeNBReconfigurationComplete_IEs_tag2el_373, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_SeNBReconfigurationComplete_IEs = { - "SeNBReconfigurationComplete-IEs", - "SeNBReconfigurationComplete-IEs", - &asn_OP_SEQUENCE, - asn_DEF_SeNBReconfigurationComplete_IEs_tags_373, - sizeof(asn_DEF_SeNBReconfigurationComplete_IEs_tags_373) - /sizeof(asn_DEF_SeNBReconfigurationComplete_IEs_tags_373[0]), /* 1 */ - asn_DEF_SeNBReconfigurationComplete_IEs_tags_373, /* Same as above */ - sizeof(asn_DEF_SeNBReconfigurationComplete_IEs_tags_373) - /sizeof(asn_DEF_SeNBReconfigurationComplete_IEs_tags_373[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_SeNBReconfigurationComplete_IEs_373, - 3, /* Elements count */ - &asn_SPC_SeNBReconfigurationComplete_IEs_specs_373 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_380[] = { - { ATF_NOFLAGS, 0, offsetof(struct SeNBModificationRequest_IEs__value, choice.UE_X2AP_ID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_UE_X2AP_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "UE-X2AP-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct SeNBModificationRequest_IEs__value, choice.Cause), - -1 /* Ambiguous tag (CHOICE?) */, - 0, - &asn_DEF_Cause, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "Cause" - }, - { ATF_NOFLAGS, 0, offsetof(struct SeNBModificationRequest_IEs__value, choice.SCGChangeIndication), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_SCGChangeIndication, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "SCGChangeIndication" - }, - { ATF_NOFLAGS, 0, offsetof(struct SeNBModificationRequest_IEs__value, choice.PLMN_Identity), - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), - 0, - &asn_DEF_PLMN_Identity, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "PLMN-Identity" - }, - { ATF_NOFLAGS, 0, offsetof(struct SeNBModificationRequest_IEs__value, choice.UE_ContextInformationSeNBModReq), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_UE_ContextInformationSeNBModReq, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "UE-ContextInformationSeNBModReq" - }, - { ATF_NOFLAGS, 0, offsetof(struct SeNBModificationRequest_IEs__value, choice.MeNBtoSeNBContainer), - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), - 0, - &asn_DEF_MeNBtoSeNBContainer, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "MeNBtoSeNBContainer" - }, - { ATF_NOFLAGS, 0, offsetof(struct SeNBModificationRequest_IEs__value, choice.CSGMembershipStatus), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_CSGMembershipStatus, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "CSGMembershipStatus" - }, - { ATF_NOFLAGS, 0, offsetof(struct SeNBModificationRequest_IEs__value, choice.UE_X2AP_ID_Extension), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_UE_X2AP_ID_Extension, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "UE-X2AP-ID-Extension" - }, -}; -static const unsigned asn_MAP_value_to_canonical_380[] = { 0, 7, 3, 5, 2, 6, 4, 1 }; -static const unsigned asn_MAP_value_from_canonical_380[] = { 0, 7, 4, 2, 6, 3, 5, 1 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_380[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 1 }, /* UE-X2AP-ID */ - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 7, -1, 0 }, /* UE-X2AP-ID-Extension */ - { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 3, 0, 1 }, /* PLMN-Identity */ - { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 5, -1, 0 }, /* MeNBtoSeNBContainer */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 2, 0, 1 }, /* SCGChangeIndication */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 6, -1, 0 }, /* CSGMembershipStatus */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, 0, 0 }, /* UE-ContextInformationSeNBModReq */ - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 1, 0, 0 }, /* radioNetwork */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* transport */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 1, 0, 0 }, /* protocol */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 1, 0, 0 } /* misc */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_380 = { - sizeof(struct SeNBModificationRequest_IEs__value), - offsetof(struct SeNBModificationRequest_IEs__value, _asn_ctx), - offsetof(struct SeNBModificationRequest_IEs__value, present), - sizeof(((struct SeNBModificationRequest_IEs__value *)0)->present), - asn_MAP_value_tag2el_380, - 11, /* Count of tags in the map */ - asn_MAP_value_to_canonical_380, - asn_MAP_value_from_canonical_380, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_380 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_380, - 8, /* Elements count */ - &asn_SPC_value_specs_380 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_SeNBModificationRequest_IEs_377[] = { - { ATF_NOFLAGS, 0, offsetof(struct SeNBModificationRequest_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_378, memb_id_constraint_377 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct SeNBModificationRequest_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_SeNBModificationRequest_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_379, memb_criticality_constraint_377 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SeNBModificationRequest_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_380, - select_SeNBModificationRequest_IEs_value_type, - { 0, &asn_PER_memb_value_constr_380, memb_value_constraint_377 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_SeNBModificationRequest_IEs_tags_377[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_SeNBModificationRequest_IEs_tag2el_377[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_SeNBModificationRequest_IEs_specs_377 = { - sizeof(struct SeNBModificationRequest_IEs), - offsetof(struct SeNBModificationRequest_IEs, _asn_ctx), - asn_MAP_SeNBModificationRequest_IEs_tag2el_377, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_SeNBModificationRequest_IEs = { - "SeNBModificationRequest-IEs", - "SeNBModificationRequest-IEs", - &asn_OP_SEQUENCE, - asn_DEF_SeNBModificationRequest_IEs_tags_377, - sizeof(asn_DEF_SeNBModificationRequest_IEs_tags_377) - /sizeof(asn_DEF_SeNBModificationRequest_IEs_tags_377[0]), /* 1 */ - asn_DEF_SeNBModificationRequest_IEs_tags_377, /* Same as above */ - sizeof(asn_DEF_SeNBModificationRequest_IEs_tags_377) - /sizeof(asn_DEF_SeNBModificationRequest_IEs_tags_377[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_SeNBModificationRequest_IEs_377, - 3, /* Elements count */ - &asn_SPC_SeNBModificationRequest_IEs_specs_377 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_384[] = { - { ATF_NOFLAGS, 0, offsetof(struct SeNBModificationRequestAcknowledge_IEs__value, choice.UE_X2AP_ID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_UE_X2AP_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "UE-X2AP-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct SeNBModificationRequestAcknowledge_IEs__value, choice.E_RABs_Admitted_ToBeAdded_ModAckList), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckList, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "E-RABs-Admitted-ToBeAdded-ModAckList" - }, - { ATF_NOFLAGS, 0, offsetof(struct SeNBModificationRequestAcknowledge_IEs__value, choice.E_RABs_Admitted_ToBeModified_ModAckList), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RABs_Admitted_ToBeModified_ModAckList, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "E-RABs-Admitted-ToBeModified-ModAckList" - }, - { ATF_NOFLAGS, 0, offsetof(struct SeNBModificationRequestAcknowledge_IEs__value, choice.E_RABs_Admitted_ToBeReleased_ModAckList), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RABs_Admitted_ToBeReleased_ModAckList, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "E-RABs-Admitted-ToBeReleased-ModAckList" - }, - { ATF_NOFLAGS, 0, offsetof(struct SeNBModificationRequestAcknowledge_IEs__value, choice.E_RAB_List), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RAB_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "E-RAB-List" - }, - { ATF_NOFLAGS, 0, offsetof(struct SeNBModificationRequestAcknowledge_IEs__value, choice.SeNBtoMeNBContainer), - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), - 0, - &asn_DEF_SeNBtoMeNBContainer, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "SeNBtoMeNBContainer" - }, - { ATF_NOFLAGS, 0, offsetof(struct SeNBModificationRequestAcknowledge_IEs__value, choice.CriticalityDiagnostics), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CriticalityDiagnostics, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "CriticalityDiagnostics" - }, - { ATF_NOFLAGS, 0, offsetof(struct SeNBModificationRequestAcknowledge_IEs__value, choice.UE_X2AP_ID_Extension), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_UE_X2AP_ID_Extension, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "UE-X2AP-ID-Extension" - }, -}; -static const unsigned asn_MAP_value_to_canonical_384[] = { 0, 7, 5, 1, 2, 3, 4, 6 }; -static const unsigned asn_MAP_value_from_canonical_384[] = { 0, 3, 4, 5, 6, 2, 7, 1 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_384[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 1 }, /* UE-X2AP-ID */ - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 7, -1, 0 }, /* UE-X2AP-ID-Extension */ - { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 5, 0, 0 }, /* SeNBtoMeNBContainer */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 4 }, /* E-RABs-Admitted-ToBeAdded-ModAckList */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -1, 3 }, /* E-RABs-Admitted-ToBeModified-ModAckList */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -2, 2 }, /* E-RABs-Admitted-ToBeReleased-ModAckList */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, -3, 1 }, /* E-RAB-List */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 6, -4, 0 } /* CriticalityDiagnostics */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_384 = { - sizeof(struct SeNBModificationRequestAcknowledge_IEs__value), - offsetof(struct SeNBModificationRequestAcknowledge_IEs__value, _asn_ctx), - offsetof(struct SeNBModificationRequestAcknowledge_IEs__value, present), - sizeof(((struct SeNBModificationRequestAcknowledge_IEs__value *)0)->present), - asn_MAP_value_tag2el_384, - 8, /* Count of tags in the map */ - asn_MAP_value_to_canonical_384, - asn_MAP_value_from_canonical_384, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_384 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_384, - 8, /* Elements count */ - &asn_SPC_value_specs_384 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_SeNBModificationRequestAcknowledge_IEs_381[] = { - { ATF_NOFLAGS, 0, offsetof(struct SeNBModificationRequestAcknowledge_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_382, memb_id_constraint_381 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct SeNBModificationRequestAcknowledge_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_SeNBModificationRequestAcknowledge_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_383, memb_criticality_constraint_381 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SeNBModificationRequestAcknowledge_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_384, - select_SeNBModificationRequestAcknowledge_IEs_value_type, - { 0, &asn_PER_memb_value_constr_384, memb_value_constraint_381 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_SeNBModificationRequestAcknowledge_IEs_tags_381[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_SeNBModificationRequestAcknowledge_IEs_tag2el_381[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_SeNBModificationRequestAcknowledge_IEs_specs_381 = { - sizeof(struct SeNBModificationRequestAcknowledge_IEs), - offsetof(struct SeNBModificationRequestAcknowledge_IEs, _asn_ctx), - asn_MAP_SeNBModificationRequestAcknowledge_IEs_tag2el_381, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_SeNBModificationRequestAcknowledge_IEs = { - "SeNBModificationRequestAcknowledge-IEs", - "SeNBModificationRequestAcknowledge-IEs", - &asn_OP_SEQUENCE, - asn_DEF_SeNBModificationRequestAcknowledge_IEs_tags_381, - sizeof(asn_DEF_SeNBModificationRequestAcknowledge_IEs_tags_381) - /sizeof(asn_DEF_SeNBModificationRequestAcknowledge_IEs_tags_381[0]), /* 1 */ - asn_DEF_SeNBModificationRequestAcknowledge_IEs_tags_381, /* Same as above */ - sizeof(asn_DEF_SeNBModificationRequestAcknowledge_IEs_tags_381) - /sizeof(asn_DEF_SeNBModificationRequestAcknowledge_IEs_tags_381[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_SeNBModificationRequestAcknowledge_IEs_381, - 3, /* Elements count */ - &asn_SPC_SeNBModificationRequestAcknowledge_IEs_specs_381 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_388[] = { - { ATF_NOFLAGS, 0, offsetof(struct SeNBModificationRequestReject_IEs__value, choice.UE_X2AP_ID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_UE_X2AP_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "UE-X2AP-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct SeNBModificationRequestReject_IEs__value, choice.Cause), - -1 /* Ambiguous tag (CHOICE?) */, - 0, - &asn_DEF_Cause, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "Cause" - }, - { ATF_NOFLAGS, 0, offsetof(struct SeNBModificationRequestReject_IEs__value, choice.CriticalityDiagnostics), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CriticalityDiagnostics, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "CriticalityDiagnostics" - }, - { ATF_NOFLAGS, 0, offsetof(struct SeNBModificationRequestReject_IEs__value, choice.UE_X2AP_ID_Extension), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_UE_X2AP_ID_Extension, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "UE-X2AP-ID-Extension" - }, -}; -static const unsigned asn_MAP_value_to_canonical_388[] = { 0, 3, 2, 1 }; -static const unsigned asn_MAP_value_from_canonical_388[] = { 0, 3, 2, 1 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_388[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 1 }, /* UE-X2AP-ID */ - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 3, -1, 0 }, /* UE-X2AP-ID-Extension */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, 0, 0 }, /* CriticalityDiagnostics */ - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 1, 0, 0 }, /* radioNetwork */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* transport */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 1, 0, 0 }, /* protocol */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 1, 0, 0 } /* misc */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_388 = { - sizeof(struct SeNBModificationRequestReject_IEs__value), - offsetof(struct SeNBModificationRequestReject_IEs__value, _asn_ctx), - offsetof(struct SeNBModificationRequestReject_IEs__value, present), - sizeof(((struct SeNBModificationRequestReject_IEs__value *)0)->present), - asn_MAP_value_tag2el_388, - 7, /* Count of tags in the map */ - asn_MAP_value_to_canonical_388, - asn_MAP_value_from_canonical_388, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_388 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_388, - 4, /* Elements count */ - &asn_SPC_value_specs_388 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_SeNBModificationRequestReject_IEs_385[] = { - { ATF_NOFLAGS, 0, offsetof(struct SeNBModificationRequestReject_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_386, memb_id_constraint_385 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct SeNBModificationRequestReject_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_SeNBModificationRequestReject_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_387, memb_criticality_constraint_385 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SeNBModificationRequestReject_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_388, - select_SeNBModificationRequestReject_IEs_value_type, - { 0, &asn_PER_memb_value_constr_388, memb_value_constraint_385 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_SeNBModificationRequestReject_IEs_tags_385[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_SeNBModificationRequestReject_IEs_tag2el_385[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_SeNBModificationRequestReject_IEs_specs_385 = { - sizeof(struct SeNBModificationRequestReject_IEs), - offsetof(struct SeNBModificationRequestReject_IEs, _asn_ctx), - asn_MAP_SeNBModificationRequestReject_IEs_tag2el_385, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_SeNBModificationRequestReject_IEs = { - "SeNBModificationRequestReject-IEs", - "SeNBModificationRequestReject-IEs", - &asn_OP_SEQUENCE, - asn_DEF_SeNBModificationRequestReject_IEs_tags_385, - sizeof(asn_DEF_SeNBModificationRequestReject_IEs_tags_385) - /sizeof(asn_DEF_SeNBModificationRequestReject_IEs_tags_385[0]), /* 1 */ - asn_DEF_SeNBModificationRequestReject_IEs_tags_385, /* Same as above */ - sizeof(asn_DEF_SeNBModificationRequestReject_IEs_tags_385) - /sizeof(asn_DEF_SeNBModificationRequestReject_IEs_tags_385[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_SeNBModificationRequestReject_IEs_385, - 3, /* Elements count */ - &asn_SPC_SeNBModificationRequestReject_IEs_specs_385 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_392[] = { - { ATF_NOFLAGS, 0, offsetof(struct SeNBModificationRequired_IEs__value, choice.UE_X2AP_ID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_UE_X2AP_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "UE-X2AP-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct SeNBModificationRequired_IEs__value, choice.Cause), - -1 /* Ambiguous tag (CHOICE?) */, - 0, - &asn_DEF_Cause, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "Cause" - }, - { ATF_NOFLAGS, 0, offsetof(struct SeNBModificationRequired_IEs__value, choice.SCGChangeIndication), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_SCGChangeIndication, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "SCGChangeIndication" - }, - { ATF_NOFLAGS, 0, offsetof(struct SeNBModificationRequired_IEs__value, choice.E_RABs_ToBeReleased_ModReqd), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RABs_ToBeReleased_ModReqd, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "E-RABs-ToBeReleased-ModReqd" - }, - { ATF_NOFLAGS, 0, offsetof(struct SeNBModificationRequired_IEs__value, choice.SeNBtoMeNBContainer), - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), - 0, - &asn_DEF_SeNBtoMeNBContainer, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "SeNBtoMeNBContainer" - }, - { ATF_NOFLAGS, 0, offsetof(struct SeNBModificationRequired_IEs__value, choice.UE_X2AP_ID_Extension), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_UE_X2AP_ID_Extension, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "UE-X2AP-ID-Extension" - }, -}; -static const unsigned asn_MAP_value_to_canonical_392[] = { 0, 5, 4, 2, 3, 1 }; -static const unsigned asn_MAP_value_from_canonical_392[] = { 0, 5, 3, 4, 2, 1 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_392[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 1 }, /* UE-X2AP-ID */ - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 5, -1, 0 }, /* UE-X2AP-ID-Extension */ - { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 4, 0, 0 }, /* SeNBtoMeNBContainer */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 2, 0, 0 }, /* SCGChangeIndication */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, 0, 0 }, /* E-RABs-ToBeReleased-ModReqd */ - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 1, 0, 0 }, /* radioNetwork */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* transport */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 1, 0, 0 }, /* protocol */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 1, 0, 0 } /* misc */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_392 = { - sizeof(struct SeNBModificationRequired_IEs__value), - offsetof(struct SeNBModificationRequired_IEs__value, _asn_ctx), - offsetof(struct SeNBModificationRequired_IEs__value, present), - sizeof(((struct SeNBModificationRequired_IEs__value *)0)->present), - asn_MAP_value_tag2el_392, - 9, /* Count of tags in the map */ - asn_MAP_value_to_canonical_392, - asn_MAP_value_from_canonical_392, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_392 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_392, - 6, /* Elements count */ - &asn_SPC_value_specs_392 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_SeNBModificationRequired_IEs_389[] = { - { ATF_NOFLAGS, 0, offsetof(struct SeNBModificationRequired_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_390, memb_id_constraint_389 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct SeNBModificationRequired_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_SeNBModificationRequired_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_391, memb_criticality_constraint_389 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SeNBModificationRequired_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_392, - select_SeNBModificationRequired_IEs_value_type, - { 0, &asn_PER_memb_value_constr_392, memb_value_constraint_389 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_SeNBModificationRequired_IEs_tags_389[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_SeNBModificationRequired_IEs_tag2el_389[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_SeNBModificationRequired_IEs_specs_389 = { - sizeof(struct SeNBModificationRequired_IEs), - offsetof(struct SeNBModificationRequired_IEs, _asn_ctx), - asn_MAP_SeNBModificationRequired_IEs_tag2el_389, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_SeNBModificationRequired_IEs = { - "SeNBModificationRequired-IEs", - "SeNBModificationRequired-IEs", - &asn_OP_SEQUENCE, - asn_DEF_SeNBModificationRequired_IEs_tags_389, - sizeof(asn_DEF_SeNBModificationRequired_IEs_tags_389) - /sizeof(asn_DEF_SeNBModificationRequired_IEs_tags_389[0]), /* 1 */ - asn_DEF_SeNBModificationRequired_IEs_tags_389, /* Same as above */ - sizeof(asn_DEF_SeNBModificationRequired_IEs_tags_389) - /sizeof(asn_DEF_SeNBModificationRequired_IEs_tags_389[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_SeNBModificationRequired_IEs_389, - 3, /* Elements count */ - &asn_SPC_SeNBModificationRequired_IEs_specs_389 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_396[] = { - { ATF_NOFLAGS, 0, offsetof(struct SeNBModificationConfirm_IEs__value, choice.UE_X2AP_ID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_UE_X2AP_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "UE-X2AP-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct SeNBModificationConfirm_IEs__value, choice.MeNBtoSeNBContainer), - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), - 0, - &asn_DEF_MeNBtoSeNBContainer, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "MeNBtoSeNBContainer" - }, - { ATF_NOFLAGS, 0, offsetof(struct SeNBModificationConfirm_IEs__value, choice.CriticalityDiagnostics), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CriticalityDiagnostics, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "CriticalityDiagnostics" - }, - { ATF_NOFLAGS, 0, offsetof(struct SeNBModificationConfirm_IEs__value, choice.UE_X2AP_ID_Extension), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_UE_X2AP_ID_Extension, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "UE-X2AP-ID-Extension" - }, -}; -static const unsigned asn_MAP_value_to_canonical_396[] = { 0, 3, 1, 2 }; -static const unsigned asn_MAP_value_from_canonical_396[] = { 0, 2, 3, 1 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_396[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 1 }, /* UE-X2AP-ID */ - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 3, -1, 0 }, /* UE-X2AP-ID-Extension */ - { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 1, 0, 0 }, /* MeNBtoSeNBContainer */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, 0, 0 } /* CriticalityDiagnostics */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_396 = { - sizeof(struct SeNBModificationConfirm_IEs__value), - offsetof(struct SeNBModificationConfirm_IEs__value, _asn_ctx), - offsetof(struct SeNBModificationConfirm_IEs__value, present), - sizeof(((struct SeNBModificationConfirm_IEs__value *)0)->present), - asn_MAP_value_tag2el_396, - 4, /* Count of tags in the map */ - asn_MAP_value_to_canonical_396, - asn_MAP_value_from_canonical_396, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_396 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_396, - 4, /* Elements count */ - &asn_SPC_value_specs_396 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_SeNBModificationConfirm_IEs_393[] = { - { ATF_NOFLAGS, 0, offsetof(struct SeNBModificationConfirm_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_394, memb_id_constraint_393 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct SeNBModificationConfirm_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_SeNBModificationConfirm_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_395, memb_criticality_constraint_393 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SeNBModificationConfirm_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_396, - select_SeNBModificationConfirm_IEs_value_type, - { 0, &asn_PER_memb_value_constr_396, memb_value_constraint_393 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_SeNBModificationConfirm_IEs_tags_393[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_SeNBModificationConfirm_IEs_tag2el_393[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_SeNBModificationConfirm_IEs_specs_393 = { - sizeof(struct SeNBModificationConfirm_IEs), - offsetof(struct SeNBModificationConfirm_IEs, _asn_ctx), - asn_MAP_SeNBModificationConfirm_IEs_tag2el_393, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_SeNBModificationConfirm_IEs = { - "SeNBModificationConfirm-IEs", - "SeNBModificationConfirm-IEs", - &asn_OP_SEQUENCE, - asn_DEF_SeNBModificationConfirm_IEs_tags_393, - sizeof(asn_DEF_SeNBModificationConfirm_IEs_tags_393) - /sizeof(asn_DEF_SeNBModificationConfirm_IEs_tags_393[0]), /* 1 */ - asn_DEF_SeNBModificationConfirm_IEs_tags_393, /* Same as above */ - sizeof(asn_DEF_SeNBModificationConfirm_IEs_tags_393) - /sizeof(asn_DEF_SeNBModificationConfirm_IEs_tags_393[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_SeNBModificationConfirm_IEs_393, - 3, /* Elements count */ - &asn_SPC_SeNBModificationConfirm_IEs_specs_393 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_400[] = { - { ATF_NOFLAGS, 0, offsetof(struct SeNBModificationRefuse_IEs__value, choice.UE_X2AP_ID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_UE_X2AP_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "UE-X2AP-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct SeNBModificationRefuse_IEs__value, choice.Cause), - -1 /* Ambiguous tag (CHOICE?) */, - 0, - &asn_DEF_Cause, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "Cause" - }, - { ATF_NOFLAGS, 0, offsetof(struct SeNBModificationRefuse_IEs__value, choice.MeNBtoSeNBContainer), - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), - 0, - &asn_DEF_MeNBtoSeNBContainer, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "MeNBtoSeNBContainer" - }, - { ATF_NOFLAGS, 0, offsetof(struct SeNBModificationRefuse_IEs__value, choice.CriticalityDiagnostics), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CriticalityDiagnostics, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "CriticalityDiagnostics" - }, - { ATF_NOFLAGS, 0, offsetof(struct SeNBModificationRefuse_IEs__value, choice.UE_X2AP_ID_Extension), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_UE_X2AP_ID_Extension, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "UE-X2AP-ID-Extension" - }, -}; -static const unsigned asn_MAP_value_to_canonical_400[] = { 0, 4, 2, 3, 1 }; -static const unsigned asn_MAP_value_from_canonical_400[] = { 0, 4, 2, 3, 1 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_400[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 1 }, /* UE-X2AP-ID */ - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 4, -1, 0 }, /* UE-X2AP-ID-Extension */ - { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 2, 0, 0 }, /* MeNBtoSeNBContainer */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, 0, 0 }, /* CriticalityDiagnostics */ - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 1, 0, 0 }, /* radioNetwork */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* transport */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 1, 0, 0 }, /* protocol */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 1, 0, 0 } /* misc */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_400 = { - sizeof(struct SeNBModificationRefuse_IEs__value), - offsetof(struct SeNBModificationRefuse_IEs__value, _asn_ctx), - offsetof(struct SeNBModificationRefuse_IEs__value, present), - sizeof(((struct SeNBModificationRefuse_IEs__value *)0)->present), - asn_MAP_value_tag2el_400, - 8, /* Count of tags in the map */ - asn_MAP_value_to_canonical_400, - asn_MAP_value_from_canonical_400, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_400 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_400, - 5, /* Elements count */ - &asn_SPC_value_specs_400 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_SeNBModificationRefuse_IEs_397[] = { - { ATF_NOFLAGS, 0, offsetof(struct SeNBModificationRefuse_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_398, memb_id_constraint_397 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct SeNBModificationRefuse_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_SeNBModificationRefuse_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_399, memb_criticality_constraint_397 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SeNBModificationRefuse_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_400, - select_SeNBModificationRefuse_IEs_value_type, - { 0, &asn_PER_memb_value_constr_400, memb_value_constraint_397 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_SeNBModificationRefuse_IEs_tags_397[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_SeNBModificationRefuse_IEs_tag2el_397[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_SeNBModificationRefuse_IEs_specs_397 = { - sizeof(struct SeNBModificationRefuse_IEs), - offsetof(struct SeNBModificationRefuse_IEs, _asn_ctx), - asn_MAP_SeNBModificationRefuse_IEs_tag2el_397, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_SeNBModificationRefuse_IEs = { - "SeNBModificationRefuse-IEs", - "SeNBModificationRefuse-IEs", - &asn_OP_SEQUENCE, - asn_DEF_SeNBModificationRefuse_IEs_tags_397, - sizeof(asn_DEF_SeNBModificationRefuse_IEs_tags_397) - /sizeof(asn_DEF_SeNBModificationRefuse_IEs_tags_397[0]), /* 1 */ - asn_DEF_SeNBModificationRefuse_IEs_tags_397, /* Same as above */ - sizeof(asn_DEF_SeNBModificationRefuse_IEs_tags_397) - /sizeof(asn_DEF_SeNBModificationRefuse_IEs_tags_397[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_SeNBModificationRefuse_IEs_397, - 3, /* Elements count */ - &asn_SPC_SeNBModificationRefuse_IEs_specs_397 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_404[] = { - { ATF_NOFLAGS, 0, offsetof(struct SeNBReleaseRequest_IEs__value, choice.UE_X2AP_ID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_UE_X2AP_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "UE-X2AP-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct SeNBReleaseRequest_IEs__value, choice.Cause), - -1 /* Ambiguous tag (CHOICE?) */, - 0, - &asn_DEF_Cause, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "Cause" - }, - { ATF_NOFLAGS, 0, offsetof(struct SeNBReleaseRequest_IEs__value, choice.E_RABs_ToBeReleased_List_RelReq), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RABs_ToBeReleased_List_RelReq, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "E-RABs-ToBeReleased-List-RelReq" - }, - { ATF_NOFLAGS, 0, offsetof(struct SeNBReleaseRequest_IEs__value, choice.UE_ContextKeptIndicator), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_UE_ContextKeptIndicator, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "UE-ContextKeptIndicator" - }, - { ATF_NOFLAGS, 0, offsetof(struct SeNBReleaseRequest_IEs__value, choice.UE_X2AP_ID_Extension), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_UE_X2AP_ID_Extension, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "UE-X2AP-ID-Extension" - }, - { ATF_NOFLAGS, 0, offsetof(struct SeNBReleaseRequest_IEs__value, choice.MakeBeforeBreakIndicator), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_MakeBeforeBreakIndicator, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "MakeBeforeBreakIndicator" - }, -}; -static const unsigned asn_MAP_value_to_canonical_404[] = { 0, 4, 3, 5, 2, 1 }; -static const unsigned asn_MAP_value_from_canonical_404[] = { 0, 5, 4, 2, 1, 3 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_404[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 1 }, /* UE-X2AP-ID */ - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 4, -1, 0 }, /* UE-X2AP-ID-Extension */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 3, 0, 1 }, /* UE-ContextKeptIndicator */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 5, -1, 0 }, /* MakeBeforeBreakIndicator */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, 0, 0 }, /* E-RABs-ToBeReleased-List-RelReq */ - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 1, 0, 0 }, /* radioNetwork */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* transport */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 1, 0, 0 }, /* protocol */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 1, 0, 0 } /* misc */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_404 = { - sizeof(struct SeNBReleaseRequest_IEs__value), - offsetof(struct SeNBReleaseRequest_IEs__value, _asn_ctx), - offsetof(struct SeNBReleaseRequest_IEs__value, present), - sizeof(((struct SeNBReleaseRequest_IEs__value *)0)->present), - asn_MAP_value_tag2el_404, - 9, /* Count of tags in the map */ - asn_MAP_value_to_canonical_404, - asn_MAP_value_from_canonical_404, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_404 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_404, - 6, /* Elements count */ - &asn_SPC_value_specs_404 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_SeNBReleaseRequest_IEs_401[] = { - { ATF_NOFLAGS, 0, offsetof(struct SeNBReleaseRequest_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_402, memb_id_constraint_401 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct SeNBReleaseRequest_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_SeNBReleaseRequest_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_403, memb_criticality_constraint_401 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SeNBReleaseRequest_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_404, - select_SeNBReleaseRequest_IEs_value_type, - { 0, &asn_PER_memb_value_constr_404, memb_value_constraint_401 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_SeNBReleaseRequest_IEs_tags_401[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_SeNBReleaseRequest_IEs_tag2el_401[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_SeNBReleaseRequest_IEs_specs_401 = { - sizeof(struct SeNBReleaseRequest_IEs), - offsetof(struct SeNBReleaseRequest_IEs, _asn_ctx), - asn_MAP_SeNBReleaseRequest_IEs_tag2el_401, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_SeNBReleaseRequest_IEs = { - "SeNBReleaseRequest-IEs", - "SeNBReleaseRequest-IEs", - &asn_OP_SEQUENCE, - asn_DEF_SeNBReleaseRequest_IEs_tags_401, - sizeof(asn_DEF_SeNBReleaseRequest_IEs_tags_401) - /sizeof(asn_DEF_SeNBReleaseRequest_IEs_tags_401[0]), /* 1 */ - asn_DEF_SeNBReleaseRequest_IEs_tags_401, /* Same as above */ - sizeof(asn_DEF_SeNBReleaseRequest_IEs_tags_401) - /sizeof(asn_DEF_SeNBReleaseRequest_IEs_tags_401[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_SeNBReleaseRequest_IEs_401, - 3, /* Elements count */ - &asn_SPC_SeNBReleaseRequest_IEs_specs_401 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_408[] = { - { ATF_NOFLAGS, 0, offsetof(struct SeNBReleaseRequired_IEs__value, choice.UE_X2AP_ID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_UE_X2AP_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "UE-X2AP-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct SeNBReleaseRequired_IEs__value, choice.Cause), - -1 /* Ambiguous tag (CHOICE?) */, - 0, - &asn_DEF_Cause, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "Cause" - }, - { ATF_NOFLAGS, 0, offsetof(struct SeNBReleaseRequired_IEs__value, choice.UE_X2AP_ID_Extension), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_UE_X2AP_ID_Extension, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "UE-X2AP-ID-Extension" - }, -}; -static const unsigned asn_MAP_value_to_canonical_408[] = { 0, 2, 1 }; -static const unsigned asn_MAP_value_from_canonical_408[] = { 0, 2, 1 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_408[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 1 }, /* UE-X2AP-ID */ - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 2, -1, 0 }, /* UE-X2AP-ID-Extension */ - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 1, 0, 0 }, /* radioNetwork */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* transport */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 1, 0, 0 }, /* protocol */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 1, 0, 0 } /* misc */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_408 = { - sizeof(struct SeNBReleaseRequired_IEs__value), - offsetof(struct SeNBReleaseRequired_IEs__value, _asn_ctx), - offsetof(struct SeNBReleaseRequired_IEs__value, present), - sizeof(((struct SeNBReleaseRequired_IEs__value *)0)->present), - asn_MAP_value_tag2el_408, - 6, /* Count of tags in the map */ - asn_MAP_value_to_canonical_408, - asn_MAP_value_from_canonical_408, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_408 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_408, - 3, /* Elements count */ - &asn_SPC_value_specs_408 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_SeNBReleaseRequired_IEs_405[] = { - { ATF_NOFLAGS, 0, offsetof(struct SeNBReleaseRequired_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_406, memb_id_constraint_405 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct SeNBReleaseRequired_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_SeNBReleaseRequired_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_407, memb_criticality_constraint_405 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SeNBReleaseRequired_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_408, - select_SeNBReleaseRequired_IEs_value_type, - { 0, &asn_PER_memb_value_constr_408, memb_value_constraint_405 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_SeNBReleaseRequired_IEs_tags_405[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_SeNBReleaseRequired_IEs_tag2el_405[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_SeNBReleaseRequired_IEs_specs_405 = { - sizeof(struct SeNBReleaseRequired_IEs), - offsetof(struct SeNBReleaseRequired_IEs, _asn_ctx), - asn_MAP_SeNBReleaseRequired_IEs_tag2el_405, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_SeNBReleaseRequired_IEs = { - "SeNBReleaseRequired-IEs", - "SeNBReleaseRequired-IEs", - &asn_OP_SEQUENCE, - asn_DEF_SeNBReleaseRequired_IEs_tags_405, - sizeof(asn_DEF_SeNBReleaseRequired_IEs_tags_405) - /sizeof(asn_DEF_SeNBReleaseRequired_IEs_tags_405[0]), /* 1 */ - asn_DEF_SeNBReleaseRequired_IEs_tags_405, /* Same as above */ - sizeof(asn_DEF_SeNBReleaseRequired_IEs_tags_405) - /sizeof(asn_DEF_SeNBReleaseRequired_IEs_tags_405[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_SeNBReleaseRequired_IEs_405, - 3, /* Elements count */ - &asn_SPC_SeNBReleaseRequired_IEs_specs_405 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_412[] = { - { ATF_NOFLAGS, 0, offsetof(struct SeNBReleaseConfirm_IEs__value, choice.UE_X2AP_ID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_UE_X2AP_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "UE-X2AP-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct SeNBReleaseConfirm_IEs__value, choice.E_RABs_ToBeReleased_List_RelConf), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RABs_ToBeReleased_List_RelConf, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "E-RABs-ToBeReleased-List-RelConf" - }, - { ATF_NOFLAGS, 0, offsetof(struct SeNBReleaseConfirm_IEs__value, choice.CriticalityDiagnostics), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CriticalityDiagnostics, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "CriticalityDiagnostics" - }, - { ATF_NOFLAGS, 0, offsetof(struct SeNBReleaseConfirm_IEs__value, choice.UE_X2AP_ID_Extension), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_UE_X2AP_ID_Extension, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "UE-X2AP-ID-Extension" - }, -}; -static const unsigned asn_MAP_value_to_canonical_412[] = { 0, 3, 1, 2 }; -static const unsigned asn_MAP_value_from_canonical_412[] = { 0, 2, 3, 1 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_412[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 1 }, /* UE-X2AP-ID */ - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 3, -1, 0 }, /* UE-X2AP-ID-Extension */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 1 }, /* E-RABs-ToBeReleased-List-RelConf */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -1, 0 } /* CriticalityDiagnostics */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_412 = { - sizeof(struct SeNBReleaseConfirm_IEs__value), - offsetof(struct SeNBReleaseConfirm_IEs__value, _asn_ctx), - offsetof(struct SeNBReleaseConfirm_IEs__value, present), - sizeof(((struct SeNBReleaseConfirm_IEs__value *)0)->present), - asn_MAP_value_tag2el_412, - 4, /* Count of tags in the map */ - asn_MAP_value_to_canonical_412, - asn_MAP_value_from_canonical_412, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_412 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_412, - 4, /* Elements count */ - &asn_SPC_value_specs_412 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_SeNBReleaseConfirm_IEs_409[] = { - { ATF_NOFLAGS, 0, offsetof(struct SeNBReleaseConfirm_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_410, memb_id_constraint_409 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct SeNBReleaseConfirm_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_SeNBReleaseConfirm_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_411, memb_criticality_constraint_409 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SeNBReleaseConfirm_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_412, - select_SeNBReleaseConfirm_IEs_value_type, - { 0, &asn_PER_memb_value_constr_412, memb_value_constraint_409 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_SeNBReleaseConfirm_IEs_tags_409[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_SeNBReleaseConfirm_IEs_tag2el_409[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_SeNBReleaseConfirm_IEs_specs_409 = { - sizeof(struct SeNBReleaseConfirm_IEs), - offsetof(struct SeNBReleaseConfirm_IEs, _asn_ctx), - asn_MAP_SeNBReleaseConfirm_IEs_tag2el_409, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_SeNBReleaseConfirm_IEs = { - "SeNBReleaseConfirm-IEs", - "SeNBReleaseConfirm-IEs", - &asn_OP_SEQUENCE, - asn_DEF_SeNBReleaseConfirm_IEs_tags_409, - sizeof(asn_DEF_SeNBReleaseConfirm_IEs_tags_409) - /sizeof(asn_DEF_SeNBReleaseConfirm_IEs_tags_409[0]), /* 1 */ - asn_DEF_SeNBReleaseConfirm_IEs_tags_409, /* Same as above */ - sizeof(asn_DEF_SeNBReleaseConfirm_IEs_tags_409) - /sizeof(asn_DEF_SeNBReleaseConfirm_IEs_tags_409[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_SeNBReleaseConfirm_IEs_409, - 3, /* Elements count */ - &asn_SPC_SeNBReleaseConfirm_IEs_specs_409 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_416[] = { - { ATF_NOFLAGS, 0, offsetof(struct SeNBCounterCheckRequest_IEs__value, choice.UE_X2AP_ID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_UE_X2AP_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "UE-X2AP-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct SeNBCounterCheckRequest_IEs__value, choice.E_RABs_SubjectToCounterCheck_List), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RABs_SubjectToCounterCheck_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "E-RABs-SubjectToCounterCheck-List" - }, - { ATF_NOFLAGS, 0, offsetof(struct SeNBCounterCheckRequest_IEs__value, choice.UE_X2AP_ID_Extension), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_UE_X2AP_ID_Extension, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "UE-X2AP-ID-Extension" - }, -}; -static const unsigned asn_MAP_value_to_canonical_416[] = { 0, 2, 1 }; -static const unsigned asn_MAP_value_from_canonical_416[] = { 0, 2, 1 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_416[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 1 }, /* UE-X2AP-ID */ - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 2, -1, 0 }, /* UE-X2AP-ID-Extension */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 0 } /* E-RABs-SubjectToCounterCheck-List */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_416 = { - sizeof(struct SeNBCounterCheckRequest_IEs__value), - offsetof(struct SeNBCounterCheckRequest_IEs__value, _asn_ctx), - offsetof(struct SeNBCounterCheckRequest_IEs__value, present), - sizeof(((struct SeNBCounterCheckRequest_IEs__value *)0)->present), - asn_MAP_value_tag2el_416, - 3, /* Count of tags in the map */ - asn_MAP_value_to_canonical_416, - asn_MAP_value_from_canonical_416, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_416 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_416, - 3, /* Elements count */ - &asn_SPC_value_specs_416 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_SeNBCounterCheckRequest_IEs_413[] = { - { ATF_NOFLAGS, 0, offsetof(struct SeNBCounterCheckRequest_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_414, memb_id_constraint_413 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct SeNBCounterCheckRequest_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_SeNBCounterCheckRequest_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_415, memb_criticality_constraint_413 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SeNBCounterCheckRequest_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_416, - select_SeNBCounterCheckRequest_IEs_value_type, - { 0, &asn_PER_memb_value_constr_416, memb_value_constraint_413 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_SeNBCounterCheckRequest_IEs_tags_413[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_SeNBCounterCheckRequest_IEs_tag2el_413[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_SeNBCounterCheckRequest_IEs_specs_413 = { - sizeof(struct SeNBCounterCheckRequest_IEs), - offsetof(struct SeNBCounterCheckRequest_IEs, _asn_ctx), - asn_MAP_SeNBCounterCheckRequest_IEs_tag2el_413, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_SeNBCounterCheckRequest_IEs = { - "SeNBCounterCheckRequest-IEs", - "SeNBCounterCheckRequest-IEs", - &asn_OP_SEQUENCE, - asn_DEF_SeNBCounterCheckRequest_IEs_tags_413, - sizeof(asn_DEF_SeNBCounterCheckRequest_IEs_tags_413) - /sizeof(asn_DEF_SeNBCounterCheckRequest_IEs_tags_413[0]), /* 1 */ - asn_DEF_SeNBCounterCheckRequest_IEs_tags_413, /* Same as above */ - sizeof(asn_DEF_SeNBCounterCheckRequest_IEs_tags_413) - /sizeof(asn_DEF_SeNBCounterCheckRequest_IEs_tags_413[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_SeNBCounterCheckRequest_IEs_413, - 3, /* Elements count */ - &asn_SPC_SeNBCounterCheckRequest_IEs_specs_413 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_420[] = { - { ATF_NOFLAGS, 0, offsetof(struct X2RemovalRequest_IEs__value, choice.GlobalENB_ID), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_GlobalENB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "GlobalENB-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct X2RemovalRequest_IEs__value, choice.X2BenefitValue), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_X2BenefitValue, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "X2BenefitValue" - }, -}; -static const unsigned asn_MAP_value_to_canonical_420[] = { 1, 0 }; -static const unsigned asn_MAP_value_from_canonical_420[] = { 1, 0 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_420[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* X2BenefitValue */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* GlobalENB-ID */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_420 = { - sizeof(struct X2RemovalRequest_IEs__value), - offsetof(struct X2RemovalRequest_IEs__value, _asn_ctx), - offsetof(struct X2RemovalRequest_IEs__value, present), - sizeof(((struct X2RemovalRequest_IEs__value *)0)->present), - asn_MAP_value_tag2el_420, - 2, /* Count of tags in the map */ - asn_MAP_value_to_canonical_420, - asn_MAP_value_from_canonical_420, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_420 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_420, - 2, /* Elements count */ - &asn_SPC_value_specs_420 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_X2RemovalRequest_IEs_417[] = { - { ATF_NOFLAGS, 0, offsetof(struct X2RemovalRequest_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_418, memb_id_constraint_417 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct X2RemovalRequest_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_X2RemovalRequest_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_419, memb_criticality_constraint_417 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct X2RemovalRequest_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_420, - select_X2RemovalRequest_IEs_value_type, - { 0, &asn_PER_memb_value_constr_420, memb_value_constraint_417 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_X2RemovalRequest_IEs_tags_417[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_X2RemovalRequest_IEs_tag2el_417[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_X2RemovalRequest_IEs_specs_417 = { - sizeof(struct X2RemovalRequest_IEs), - offsetof(struct X2RemovalRequest_IEs, _asn_ctx), - asn_MAP_X2RemovalRequest_IEs_tag2el_417, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_X2RemovalRequest_IEs = { - "X2RemovalRequest-IEs", - "X2RemovalRequest-IEs", - &asn_OP_SEQUENCE, - asn_DEF_X2RemovalRequest_IEs_tags_417, - sizeof(asn_DEF_X2RemovalRequest_IEs_tags_417) - /sizeof(asn_DEF_X2RemovalRequest_IEs_tags_417[0]), /* 1 */ - asn_DEF_X2RemovalRequest_IEs_tags_417, /* Same as above */ - sizeof(asn_DEF_X2RemovalRequest_IEs_tags_417) - /sizeof(asn_DEF_X2RemovalRequest_IEs_tags_417[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_X2RemovalRequest_IEs_417, - 3, /* Elements count */ - &asn_SPC_X2RemovalRequest_IEs_specs_417 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_424[] = { - { ATF_NOFLAGS, 0, offsetof(struct X2RemovalResponse_IEs__value, choice.GlobalENB_ID), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_GlobalENB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "GlobalENB-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct X2RemovalResponse_IEs__value, choice.CriticalityDiagnostics), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CriticalityDiagnostics, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "CriticalityDiagnostics" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_424[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 1 }, /* GlobalENB-ID */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 0 } /* CriticalityDiagnostics */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_424 = { - sizeof(struct X2RemovalResponse_IEs__value), - offsetof(struct X2RemovalResponse_IEs__value, _asn_ctx), - offsetof(struct X2RemovalResponse_IEs__value, present), - sizeof(((struct X2RemovalResponse_IEs__value *)0)->present), - asn_MAP_value_tag2el_424, - 2, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_424 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_424, - 2, /* Elements count */ - &asn_SPC_value_specs_424 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_X2RemovalResponse_IEs_421[] = { - { ATF_NOFLAGS, 0, offsetof(struct X2RemovalResponse_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_422, memb_id_constraint_421 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct X2RemovalResponse_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_X2RemovalResponse_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_423, memb_criticality_constraint_421 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct X2RemovalResponse_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_424, - select_X2RemovalResponse_IEs_value_type, - { 0, &asn_PER_memb_value_constr_424, memb_value_constraint_421 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_X2RemovalResponse_IEs_tags_421[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_X2RemovalResponse_IEs_tag2el_421[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_X2RemovalResponse_IEs_specs_421 = { - sizeof(struct X2RemovalResponse_IEs), - offsetof(struct X2RemovalResponse_IEs, _asn_ctx), - asn_MAP_X2RemovalResponse_IEs_tag2el_421, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_X2RemovalResponse_IEs = { - "X2RemovalResponse-IEs", - "X2RemovalResponse-IEs", - &asn_OP_SEQUENCE, - asn_DEF_X2RemovalResponse_IEs_tags_421, - sizeof(asn_DEF_X2RemovalResponse_IEs_tags_421) - /sizeof(asn_DEF_X2RemovalResponse_IEs_tags_421[0]), /* 1 */ - asn_DEF_X2RemovalResponse_IEs_tags_421, /* Same as above */ - sizeof(asn_DEF_X2RemovalResponse_IEs_tags_421) - /sizeof(asn_DEF_X2RemovalResponse_IEs_tags_421[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_X2RemovalResponse_IEs_421, - 3, /* Elements count */ - &asn_SPC_X2RemovalResponse_IEs_specs_421 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_428[] = { - { ATF_NOFLAGS, 0, offsetof(struct X2RemovalFailure_IEs__value, choice.Cause), - -1 /* Ambiguous tag (CHOICE?) */, - 0, - &asn_DEF_Cause, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "Cause" - }, - { ATF_NOFLAGS, 0, offsetof(struct X2RemovalFailure_IEs__value, choice.CriticalityDiagnostics), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CriticalityDiagnostics, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "CriticalityDiagnostics" - }, -}; -static const unsigned asn_MAP_value_to_canonical_428[] = { 1, 0 }; -static const unsigned asn_MAP_value_from_canonical_428[] = { 1, 0 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_428[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 0 }, /* CriticalityDiagnostics */ - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* radioNetwork */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 0, 0, 0 }, /* transport */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 0, 0, 0 }, /* protocol */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 0, 0, 0 } /* misc */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_428 = { - sizeof(struct X2RemovalFailure_IEs__value), - offsetof(struct X2RemovalFailure_IEs__value, _asn_ctx), - offsetof(struct X2RemovalFailure_IEs__value, present), - sizeof(((struct X2RemovalFailure_IEs__value *)0)->present), - asn_MAP_value_tag2el_428, - 5, /* Count of tags in the map */ - asn_MAP_value_to_canonical_428, - asn_MAP_value_from_canonical_428, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_428 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_428, - 2, /* Elements count */ - &asn_SPC_value_specs_428 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_X2RemovalFailure_IEs_425[] = { - { ATF_NOFLAGS, 0, offsetof(struct X2RemovalFailure_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_426, memb_id_constraint_425 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct X2RemovalFailure_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_X2RemovalFailure_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_427, memb_criticality_constraint_425 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct X2RemovalFailure_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_428, - select_X2RemovalFailure_IEs_value_type, - { 0, &asn_PER_memb_value_constr_428, memb_value_constraint_425 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_X2RemovalFailure_IEs_tags_425[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_X2RemovalFailure_IEs_tag2el_425[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_X2RemovalFailure_IEs_specs_425 = { - sizeof(struct X2RemovalFailure_IEs), - offsetof(struct X2RemovalFailure_IEs, _asn_ctx), - asn_MAP_X2RemovalFailure_IEs_tag2el_425, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_X2RemovalFailure_IEs = { - "X2RemovalFailure-IEs", - "X2RemovalFailure-IEs", - &asn_OP_SEQUENCE, - asn_DEF_X2RemovalFailure_IEs_tags_425, - sizeof(asn_DEF_X2RemovalFailure_IEs_tags_425) - /sizeof(asn_DEF_X2RemovalFailure_IEs_tags_425[0]), /* 1 */ - asn_DEF_X2RemovalFailure_IEs_tags_425, /* Same as above */ - sizeof(asn_DEF_X2RemovalFailure_IEs_tags_425) - /sizeof(asn_DEF_X2RemovalFailure_IEs_tags_425[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_X2RemovalFailure_IEs_425, - 3, /* Elements count */ - &asn_SPC_X2RemovalFailure_IEs_specs_425 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_432[] = { - { ATF_NOFLAGS, 0, offsetof(struct RetrieveUEContextRequest_IEs__value, choice.UE_X2AP_ID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_UE_X2AP_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "UE-X2AP-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RetrieveUEContextRequest_IEs__value, choice.UE_X2AP_ID_Extension), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_UE_X2AP_ID_Extension, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "UE-X2AP-ID-Extension" - }, - { ATF_NOFLAGS, 0, offsetof(struct RetrieveUEContextRequest_IEs__value, choice.ResumeID), - -1 /* Ambiguous tag (CHOICE?) */, - 0, - &asn_DEF_ResumeID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ResumeID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RetrieveUEContextRequest_IEs__value, choice.ShortMAC_I), - (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), - 0, - &asn_DEF_ShortMAC_I, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ShortMAC-I" - }, - { ATF_NOFLAGS, 0, offsetof(struct RetrieveUEContextRequest_IEs__value, choice.EUTRANCellIdentifier), - (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), - 0, - &asn_DEF_EUTRANCellIdentifier, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "EUTRANCellIdentifier" - }, - { ATF_NOFLAGS, 0, offsetof(struct RetrieveUEContextRequest_IEs__value, choice.CRNTI), - (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), - 0, - &asn_DEF_CRNTI, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "CRNTI" - }, - { ATF_NOFLAGS, 0, offsetof(struct RetrieveUEContextRequest_IEs__value, choice.PCI), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_PCI, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "PCI" - }, -}; -static const unsigned asn_MAP_value_to_canonical_432[] = { 0, 1, 6, 3, 4, 5, 2 }; -static const unsigned asn_MAP_value_from_canonical_432[] = { 0, 1, 6, 3, 4, 5, 2 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_432[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 2 }, /* UE-X2AP-ID */ - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 1 }, /* UE-X2AP-ID-Extension */ - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 6, -2, 0 }, /* PCI */ - { (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), 3, 0, 2 }, /* ShortMAC-I */ - { (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), 4, -1, 1 }, /* EUTRANCellIdentifier */ - { (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), 5, -2, 0 }, /* CRNTI */ - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 2, 0, 0 }, /* non-truncated */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 2, 0, 0 } /* truncated */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_432 = { - sizeof(struct RetrieveUEContextRequest_IEs__value), - offsetof(struct RetrieveUEContextRequest_IEs__value, _asn_ctx), - offsetof(struct RetrieveUEContextRequest_IEs__value, present), - sizeof(((struct RetrieveUEContextRequest_IEs__value *)0)->present), - asn_MAP_value_tag2el_432, - 8, /* Count of tags in the map */ - asn_MAP_value_to_canonical_432, - asn_MAP_value_from_canonical_432, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_432 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_432, - 7, /* Elements count */ - &asn_SPC_value_specs_432 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_RetrieveUEContextRequest_IEs_429[] = { - { ATF_NOFLAGS, 0, offsetof(struct RetrieveUEContextRequest_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_430, memb_id_constraint_429 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct RetrieveUEContextRequest_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_RetrieveUEContextRequest_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_431, memb_criticality_constraint_429 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RetrieveUEContextRequest_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_432, - select_RetrieveUEContextRequest_IEs_value_type, - { 0, &asn_PER_memb_value_constr_432, memb_value_constraint_429 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_RetrieveUEContextRequest_IEs_tags_429[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RetrieveUEContextRequest_IEs_tag2el_429[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RetrieveUEContextRequest_IEs_specs_429 = { - sizeof(struct RetrieveUEContextRequest_IEs), - offsetof(struct RetrieveUEContextRequest_IEs, _asn_ctx), - asn_MAP_RetrieveUEContextRequest_IEs_tag2el_429, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RetrieveUEContextRequest_IEs = { - "RetrieveUEContextRequest-IEs", - "RetrieveUEContextRequest-IEs", - &asn_OP_SEQUENCE, - asn_DEF_RetrieveUEContextRequest_IEs_tags_429, - sizeof(asn_DEF_RetrieveUEContextRequest_IEs_tags_429) - /sizeof(asn_DEF_RetrieveUEContextRequest_IEs_tags_429[0]), /* 1 */ - asn_DEF_RetrieveUEContextRequest_IEs_tags_429, /* Same as above */ - sizeof(asn_DEF_RetrieveUEContextRequest_IEs_tags_429) - /sizeof(asn_DEF_RetrieveUEContextRequest_IEs_tags_429[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RetrieveUEContextRequest_IEs_429, - 3, /* Elements count */ - &asn_SPC_RetrieveUEContextRequest_IEs_specs_429 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_436[] = { - { ATF_NOFLAGS, 0, offsetof(struct RetrieveUEContextResponse_IEs__value, choice.UE_X2AP_ID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_UE_X2AP_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "UE-X2AP-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RetrieveUEContextResponse_IEs__value, choice.UE_X2AP_ID_Extension), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_UE_X2AP_ID_Extension, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "UE-X2AP-ID-Extension" - }, - { ATF_NOFLAGS, 0, offsetof(struct RetrieveUEContextResponse_IEs__value, choice.GUMMEI), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_GUMMEI, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "GUMMEI" - }, - { ATF_NOFLAGS, 0, offsetof(struct RetrieveUEContextResponse_IEs__value, choice.UE_ContextInformationRetrieve), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_UE_ContextInformationRetrieve, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "UE-ContextInformationRetrieve" - }, - { ATF_NOFLAGS, 0, offsetof(struct RetrieveUEContextResponse_IEs__value, choice.TraceActivation), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_TraceActivation, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "TraceActivation" - }, - { ATF_NOFLAGS, 0, offsetof(struct RetrieveUEContextResponse_IEs__value, choice.SRVCCOperationPossible), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_SRVCCOperationPossible, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "SRVCCOperationPossible" - }, - { ATF_NOFLAGS, 0, offsetof(struct RetrieveUEContextResponse_IEs__value, choice.Masked_IMEISV), - (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), - 0, - &asn_DEF_Masked_IMEISV, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "Masked-IMEISV" - }, - { ATF_NOFLAGS, 0, offsetof(struct RetrieveUEContextResponse_IEs__value, choice.ExpectedUEBehaviour), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ExpectedUEBehaviour, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ExpectedUEBehaviour" - }, - { ATF_NOFLAGS, 0, offsetof(struct RetrieveUEContextResponse_IEs__value, choice.ProSeAuthorized), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ProSeAuthorized, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ProSeAuthorized" - }, - { ATF_NOFLAGS, 0, offsetof(struct RetrieveUEContextResponse_IEs__value, choice.CriticalityDiagnostics), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CriticalityDiagnostics, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "CriticalityDiagnostics" - }, - { ATF_NOFLAGS, 0, offsetof(struct RetrieveUEContextResponse_IEs__value, choice.V2XServicesAuthorized), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_V2XServicesAuthorized, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "V2XServicesAuthorized" - }, - { ATF_NOFLAGS, 0, offsetof(struct RetrieveUEContextResponse_IEs__value, choice.AerialUEsubscriptionInformation), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_AerialUEsubscriptionInformation, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "AerialUEsubscriptionInformation" - }, - { ATF_NOFLAGS, 0, offsetof(struct RetrieveUEContextResponse_IEs__value, choice.Subscription_Based_UE_DifferentiationInfo), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_Subscription_Based_UE_DifferentiationInfo, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "Subscription-Based-UE-DifferentiationInfo" - }, -}; -static const unsigned asn_MAP_value_to_canonical_436[] = { 0, 1, 6, 5, 11, 2, 3, 4, 7, 8, 9, 10, 12 }; -static const unsigned asn_MAP_value_from_canonical_436[] = { 0, 1, 5, 6, 7, 3, 2, 8, 9, 10, 11, 4, 12 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_436[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 1 }, /* UE-X2AP-ID */ - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 0 }, /* UE-X2AP-ID-Extension */ - { (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), 6, 0, 0 }, /* Masked-IMEISV */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 5, 0, 1 }, /* SRVCCOperationPossible */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 11, -1, 0 }, /* AerialUEsubscriptionInformation */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, 0, 7 }, /* GUMMEI */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -1, 6 }, /* UE-ContextInformationRetrieve */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, -2, 5 }, /* TraceActivation */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 7, -3, 4 }, /* ExpectedUEBehaviour */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 8, -4, 3 }, /* ProSeAuthorized */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 9, -5, 2 }, /* CriticalityDiagnostics */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 10, -6, 1 }, /* V2XServicesAuthorized */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 12, -7, 0 } /* Subscription-Based-UE-DifferentiationInfo */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_436 = { - sizeof(struct RetrieveUEContextResponse_IEs__value), - offsetof(struct RetrieveUEContextResponse_IEs__value, _asn_ctx), - offsetof(struct RetrieveUEContextResponse_IEs__value, present), - sizeof(((struct RetrieveUEContextResponse_IEs__value *)0)->present), - asn_MAP_value_tag2el_436, - 13, /* Count of tags in the map */ - asn_MAP_value_to_canonical_436, - asn_MAP_value_from_canonical_436, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_436 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_436, - 13, /* Elements count */ - &asn_SPC_value_specs_436 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_RetrieveUEContextResponse_IEs_433[] = { - { ATF_NOFLAGS, 0, offsetof(struct RetrieveUEContextResponse_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_434, memb_id_constraint_433 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct RetrieveUEContextResponse_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_RetrieveUEContextResponse_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_435, memb_criticality_constraint_433 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RetrieveUEContextResponse_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_436, - select_RetrieveUEContextResponse_IEs_value_type, - { 0, &asn_PER_memb_value_constr_436, memb_value_constraint_433 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_RetrieveUEContextResponse_IEs_tags_433[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RetrieveUEContextResponse_IEs_tag2el_433[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RetrieveUEContextResponse_IEs_specs_433 = { - sizeof(struct RetrieveUEContextResponse_IEs), - offsetof(struct RetrieveUEContextResponse_IEs, _asn_ctx), - asn_MAP_RetrieveUEContextResponse_IEs_tag2el_433, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RetrieveUEContextResponse_IEs = { - "RetrieveUEContextResponse-IEs", - "RetrieveUEContextResponse-IEs", - &asn_OP_SEQUENCE, - asn_DEF_RetrieveUEContextResponse_IEs_tags_433, - sizeof(asn_DEF_RetrieveUEContextResponse_IEs_tags_433) - /sizeof(asn_DEF_RetrieveUEContextResponse_IEs_tags_433[0]), /* 1 */ - asn_DEF_RetrieveUEContextResponse_IEs_tags_433, /* Same as above */ - sizeof(asn_DEF_RetrieveUEContextResponse_IEs_tags_433) - /sizeof(asn_DEF_RetrieveUEContextResponse_IEs_tags_433[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RetrieveUEContextResponse_IEs_433, - 3, /* Elements count */ - &asn_SPC_RetrieveUEContextResponse_IEs_specs_433 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_440[] = { - { ATF_NOFLAGS, 0, offsetof(struct RetrieveUEContextFailure_IEs__value, choice.UE_X2AP_ID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_UE_X2AP_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "UE-X2AP-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RetrieveUEContextFailure_IEs__value, choice.UE_X2AP_ID_Extension), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_UE_X2AP_ID_Extension, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "UE-X2AP-ID-Extension" - }, - { ATF_NOFLAGS, 0, offsetof(struct RetrieveUEContextFailure_IEs__value, choice.Cause), - -1 /* Ambiguous tag (CHOICE?) */, - 0, - &asn_DEF_Cause, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "Cause" - }, - { ATF_NOFLAGS, 0, offsetof(struct RetrieveUEContextFailure_IEs__value, choice.CriticalityDiagnostics), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CriticalityDiagnostics, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "CriticalityDiagnostics" - }, -}; -static const unsigned asn_MAP_value_to_canonical_440[] = { 0, 1, 3, 2 }; -static const unsigned asn_MAP_value_from_canonical_440[] = { 0, 1, 3, 2 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_440[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 1 }, /* UE-X2AP-ID */ - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 0 }, /* UE-X2AP-ID-Extension */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, 0, 0 }, /* CriticalityDiagnostics */ - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 2, 0, 0 }, /* radioNetwork */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 2, 0, 0 }, /* transport */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* protocol */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 2, 0, 0 } /* misc */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_440 = { - sizeof(struct RetrieveUEContextFailure_IEs__value), - offsetof(struct RetrieveUEContextFailure_IEs__value, _asn_ctx), - offsetof(struct RetrieveUEContextFailure_IEs__value, present), - sizeof(((struct RetrieveUEContextFailure_IEs__value *)0)->present), - asn_MAP_value_tag2el_440, - 7, /* Count of tags in the map */ - asn_MAP_value_to_canonical_440, - asn_MAP_value_from_canonical_440, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_440 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_440, - 4, /* Elements count */ - &asn_SPC_value_specs_440 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_RetrieveUEContextFailure_IEs_437[] = { - { ATF_NOFLAGS, 0, offsetof(struct RetrieveUEContextFailure_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_438, memb_id_constraint_437 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct RetrieveUEContextFailure_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_RetrieveUEContextFailure_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_439, memb_criticality_constraint_437 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RetrieveUEContextFailure_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_440, - select_RetrieveUEContextFailure_IEs_value_type, - { 0, &asn_PER_memb_value_constr_440, memb_value_constraint_437 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_RetrieveUEContextFailure_IEs_tags_437[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RetrieveUEContextFailure_IEs_tag2el_437[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RetrieveUEContextFailure_IEs_specs_437 = { - sizeof(struct RetrieveUEContextFailure_IEs), - offsetof(struct RetrieveUEContextFailure_IEs, _asn_ctx), - asn_MAP_RetrieveUEContextFailure_IEs_tag2el_437, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RetrieveUEContextFailure_IEs = { - "RetrieveUEContextFailure-IEs", - "RetrieveUEContextFailure-IEs", - &asn_OP_SEQUENCE, - asn_DEF_RetrieveUEContextFailure_IEs_tags_437, - sizeof(asn_DEF_RetrieveUEContextFailure_IEs_tags_437) - /sizeof(asn_DEF_RetrieveUEContextFailure_IEs_tags_437[0]), /* 1 */ - asn_DEF_RetrieveUEContextFailure_IEs_tags_437, /* Same as above */ - sizeof(asn_DEF_RetrieveUEContextFailure_IEs_tags_437) - /sizeof(asn_DEF_RetrieveUEContextFailure_IEs_tags_437[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RetrieveUEContextFailure_IEs_437, - 3, /* Elements count */ - &asn_SPC_RetrieveUEContextFailure_IEs_specs_437 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_444[] = { - { ATF_NOFLAGS, 0, offsetof(struct SgNBAdditionRequest_IEs__value, choice.UE_X2AP_ID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_UE_X2AP_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "UE-X2AP-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBAdditionRequest_IEs__value, choice.NRUESecurityCapabilities), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_NRUESecurityCapabilities, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "NRUESecurityCapabilities" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBAdditionRequest_IEs__value, choice.SgNBSecurityKey), - (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), - 0, - &asn_DEF_SgNBSecurityKey, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "SgNBSecurityKey" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBAdditionRequest_IEs__value, choice.UEAggregateMaximumBitRate), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_UEAggregateMaximumBitRate, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "UEAggregateMaximumBitRate" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBAdditionRequest_IEs__value, choice.PLMN_Identity), - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), - 0, - &asn_DEF_PLMN_Identity, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "PLMN-Identity" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBAdditionRequest_IEs__value, choice.HandoverRestrictionList), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_HandoverRestrictionList, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "HandoverRestrictionList" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBAdditionRequest_IEs__value, choice.E_RABs_ToBeAdded_SgNBAddReqList), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RABs_ToBeAdded_SgNBAddReqList, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "E-RABs-ToBeAdded-SgNBAddReqList" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBAdditionRequest_IEs__value, choice.MeNBtoSgNBContainer), - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), - 0, - &asn_DEF_MeNBtoSgNBContainer, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "MeNBtoSgNBContainer" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBAdditionRequest_IEs__value, choice.SgNB_UE_X2AP_ID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_SgNB_UE_X2AP_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "SgNB-UE-X2AP-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBAdditionRequest_IEs__value, choice.ExpectedUEBehaviour), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ExpectedUEBehaviour, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ExpectedUEBehaviour" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBAdditionRequest_IEs__value, choice.UE_X2AP_ID_Extension), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_UE_X2AP_ID_Extension, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "UE-X2AP-ID-Extension" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBAdditionRequest_IEs__value, choice.SplitSRBs), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_SplitSRBs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "SplitSRBs" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBAdditionRequest_IEs__value, choice.MeNBResourceCoordinationInformation), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_MeNBResourceCoordinationInformation, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "MeNBResourceCoordinationInformation" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBAdditionRequest_IEs__value, choice.SGNB_Addition_Trigger_Ind), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_SGNB_Addition_Trigger_Ind, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "SGNB-Addition-Trigger-Ind" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBAdditionRequest_IEs__value, choice.SubscriberProfileIDforRFP), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_SubscriberProfileIDforRFP, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "SubscriberProfileIDforRFP" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBAdditionRequest_IEs__value, choice.ECGI), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ECGI, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ECGI" - }, -}; -static const unsigned asn_MAP_value_to_canonical_444[] = { 0, 8, 10, 14, 2, 4, 7, 11, 13, 1, 3, 5, 6, 9, 12, 15 }; -static const unsigned asn_MAP_value_from_canonical_444[] = { 0, 9, 4, 10, 5, 11, 12, 6, 1, 13, 2, 7, 14, 8, 3, 15 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_444[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 3 }, /* UE-X2AP-ID */ - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 8, -1, 2 }, /* SgNB-UE-X2AP-ID */ - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 10, -2, 1 }, /* UE-X2AP-ID-Extension */ - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 14, -3, 0 }, /* SubscriberProfileIDforRFP */ - { (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), 2, 0, 0 }, /* SgNBSecurityKey */ - { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 4, 0, 1 }, /* PLMN-Identity */ - { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 7, -1, 0 }, /* MeNBtoSgNBContainer */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 11, 0, 1 }, /* SplitSRBs */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 13, -1, 0 }, /* SGNB-Addition-Trigger-Ind */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 6 }, /* NRUESecurityCapabilities */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -1, 5 }, /* UEAggregateMaximumBitRate */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 5, -2, 4 }, /* HandoverRestrictionList */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 6, -3, 3 }, /* E-RABs-ToBeAdded-SgNBAddReqList */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 9, -4, 2 }, /* ExpectedUEBehaviour */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 12, -5, 1 }, /* MeNBResourceCoordinationInformation */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 15, -6, 0 } /* ECGI */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_444 = { - sizeof(struct SgNBAdditionRequest_IEs__value), - offsetof(struct SgNBAdditionRequest_IEs__value, _asn_ctx), - offsetof(struct SgNBAdditionRequest_IEs__value, present), - sizeof(((struct SgNBAdditionRequest_IEs__value *)0)->present), - asn_MAP_value_tag2el_444, - 16, /* Count of tags in the map */ - asn_MAP_value_to_canonical_444, - asn_MAP_value_from_canonical_444, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_444 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_444, - 16, /* Elements count */ - &asn_SPC_value_specs_444 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_SgNBAdditionRequest_IEs_441[] = { - { ATF_NOFLAGS, 0, offsetof(struct SgNBAdditionRequest_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_442, memb_id_constraint_441 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBAdditionRequest_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_SgNBAdditionRequest_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_443, memb_criticality_constraint_441 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SgNBAdditionRequest_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_444, - select_SgNBAdditionRequest_IEs_value_type, - { 0, &asn_PER_memb_value_constr_444, memb_value_constraint_441 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_SgNBAdditionRequest_IEs_tags_441[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_SgNBAdditionRequest_IEs_tag2el_441[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_SgNBAdditionRequest_IEs_specs_441 = { - sizeof(struct SgNBAdditionRequest_IEs), - offsetof(struct SgNBAdditionRequest_IEs, _asn_ctx), - asn_MAP_SgNBAdditionRequest_IEs_tag2el_441, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_SgNBAdditionRequest_IEs = { - "SgNBAdditionRequest-IEs", - "SgNBAdditionRequest-IEs", - &asn_OP_SEQUENCE, - asn_DEF_SgNBAdditionRequest_IEs_tags_441, - sizeof(asn_DEF_SgNBAdditionRequest_IEs_tags_441) - /sizeof(asn_DEF_SgNBAdditionRequest_IEs_tags_441[0]), /* 1 */ - asn_DEF_SgNBAdditionRequest_IEs_tags_441, /* Same as above */ - sizeof(asn_DEF_SgNBAdditionRequest_IEs_tags_441) - /sizeof(asn_DEF_SgNBAdditionRequest_IEs_tags_441[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_SgNBAdditionRequest_IEs_441, - 3, /* Elements count */ - &asn_SPC_SgNBAdditionRequest_IEs_specs_441 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_448[] = { - { ATF_NOFLAGS, 0, offsetof(struct SgNBAdditionRequestAcknowledge_IEs__value, choice.UE_X2AP_ID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_UE_X2AP_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "UE-X2AP-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBAdditionRequestAcknowledge_IEs__value, choice.SgNB_UE_X2AP_ID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_SgNB_UE_X2AP_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "SgNB-UE-X2AP-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBAdditionRequestAcknowledge_IEs__value, choice.E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "E-RABs-Admitted-ToBeAdded-SgNBAddReqAckList" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBAdditionRequestAcknowledge_IEs__value, choice.E_RAB_List), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RAB_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "E-RAB-List" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBAdditionRequestAcknowledge_IEs__value, choice.SgNBtoMeNBContainer), - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), - 0, - &asn_DEF_SgNBtoMeNBContainer, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "SgNBtoMeNBContainer" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBAdditionRequestAcknowledge_IEs__value, choice.CriticalityDiagnostics), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CriticalityDiagnostics, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "CriticalityDiagnostics" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBAdditionRequestAcknowledge_IEs__value, choice.UE_X2AP_ID_Extension), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_UE_X2AP_ID_Extension, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "UE-X2AP-ID-Extension" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBAdditionRequestAcknowledge_IEs__value, choice.SplitSRBs), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_SplitSRBs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "SplitSRBs" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBAdditionRequestAcknowledge_IEs__value, choice.SgNBResourceCoordinationInformation), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_SgNBResourceCoordinationInformation, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "SgNBResourceCoordinationInformation" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBAdditionRequestAcknowledge_IEs__value, choice.RRC_Config_Ind), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_RRC_Config_Ind, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RRC-Config-Ind" - }, -}; -static const unsigned asn_MAP_value_to_canonical_448[] = { 0, 1, 6, 4, 7, 9, 2, 3, 5, 8 }; -static const unsigned asn_MAP_value_from_canonical_448[] = { 0, 1, 6, 7, 3, 8, 2, 4, 9, 5 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_448[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 2 }, /* UE-X2AP-ID */ - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 1 }, /* SgNB-UE-X2AP-ID */ - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 6, -2, 0 }, /* UE-X2AP-ID-Extension */ - { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 4, 0, 0 }, /* SgNBtoMeNBContainer */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 7, 0, 1 }, /* SplitSRBs */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 9, -1, 0 }, /* RRC-Config-Ind */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, 0, 3 }, /* E-RABs-Admitted-ToBeAdded-SgNBAddReqAckList */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -1, 2 }, /* E-RAB-List */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 5, -2, 1 }, /* CriticalityDiagnostics */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 8, -3, 0 } /* SgNBResourceCoordinationInformation */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_448 = { - sizeof(struct SgNBAdditionRequestAcknowledge_IEs__value), - offsetof(struct SgNBAdditionRequestAcknowledge_IEs__value, _asn_ctx), - offsetof(struct SgNBAdditionRequestAcknowledge_IEs__value, present), - sizeof(((struct SgNBAdditionRequestAcknowledge_IEs__value *)0)->present), - asn_MAP_value_tag2el_448, - 10, /* Count of tags in the map */ - asn_MAP_value_to_canonical_448, - asn_MAP_value_from_canonical_448, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_448 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_448, - 10, /* Elements count */ - &asn_SPC_value_specs_448 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_SgNBAdditionRequestAcknowledge_IEs_445[] = { - { ATF_NOFLAGS, 0, offsetof(struct SgNBAdditionRequestAcknowledge_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_446, memb_id_constraint_445 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBAdditionRequestAcknowledge_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_SgNBAdditionRequestAcknowledge_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_447, memb_criticality_constraint_445 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SgNBAdditionRequestAcknowledge_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_448, - select_SgNBAdditionRequestAcknowledge_IEs_value_type, - { 0, &asn_PER_memb_value_constr_448, memb_value_constraint_445 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_SgNBAdditionRequestAcknowledge_IEs_tags_445[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_SgNBAdditionRequestAcknowledge_IEs_tag2el_445[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_SgNBAdditionRequestAcknowledge_IEs_specs_445 = { - sizeof(struct SgNBAdditionRequestAcknowledge_IEs), - offsetof(struct SgNBAdditionRequestAcknowledge_IEs, _asn_ctx), - asn_MAP_SgNBAdditionRequestAcknowledge_IEs_tag2el_445, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_SgNBAdditionRequestAcknowledge_IEs = { - "SgNBAdditionRequestAcknowledge-IEs", - "SgNBAdditionRequestAcknowledge-IEs", - &asn_OP_SEQUENCE, - asn_DEF_SgNBAdditionRequestAcknowledge_IEs_tags_445, - sizeof(asn_DEF_SgNBAdditionRequestAcknowledge_IEs_tags_445) - /sizeof(asn_DEF_SgNBAdditionRequestAcknowledge_IEs_tags_445[0]), /* 1 */ - asn_DEF_SgNBAdditionRequestAcknowledge_IEs_tags_445, /* Same as above */ - sizeof(asn_DEF_SgNBAdditionRequestAcknowledge_IEs_tags_445) - /sizeof(asn_DEF_SgNBAdditionRequestAcknowledge_IEs_tags_445[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_SgNBAdditionRequestAcknowledge_IEs_445, - 3, /* Elements count */ - &asn_SPC_SgNBAdditionRequestAcknowledge_IEs_specs_445 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_452[] = { - { ATF_NOFLAGS, 0, offsetof(struct SgNBAdditionRequestReject_IEs__value, choice.UE_X2AP_ID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_UE_X2AP_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "UE-X2AP-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBAdditionRequestReject_IEs__value, choice.SgNB_UE_X2AP_ID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_SgNB_UE_X2AP_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "SgNB-UE-X2AP-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBAdditionRequestReject_IEs__value, choice.Cause), - -1 /* Ambiguous tag (CHOICE?) */, - 0, - &asn_DEF_Cause, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "Cause" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBAdditionRequestReject_IEs__value, choice.CriticalityDiagnostics), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CriticalityDiagnostics, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "CriticalityDiagnostics" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBAdditionRequestReject_IEs__value, choice.UE_X2AP_ID_Extension), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_UE_X2AP_ID_Extension, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "UE-X2AP-ID-Extension" - }, -}; -static const unsigned asn_MAP_value_to_canonical_452[] = { 0, 1, 4, 3, 2 }; -static const unsigned asn_MAP_value_from_canonical_452[] = { 0, 1, 4, 3, 2 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_452[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 2 }, /* UE-X2AP-ID */ - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 1 }, /* SgNB-UE-X2AP-ID */ - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 4, -2, 0 }, /* UE-X2AP-ID-Extension */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, 0, 0 }, /* CriticalityDiagnostics */ - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 2, 0, 0 }, /* radioNetwork */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 2, 0, 0 }, /* transport */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* protocol */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 2, 0, 0 } /* misc */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_452 = { - sizeof(struct SgNBAdditionRequestReject_IEs__value), - offsetof(struct SgNBAdditionRequestReject_IEs__value, _asn_ctx), - offsetof(struct SgNBAdditionRequestReject_IEs__value, present), - sizeof(((struct SgNBAdditionRequestReject_IEs__value *)0)->present), - asn_MAP_value_tag2el_452, - 8, /* Count of tags in the map */ - asn_MAP_value_to_canonical_452, - asn_MAP_value_from_canonical_452, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_452 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_452, - 5, /* Elements count */ - &asn_SPC_value_specs_452 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_SgNBAdditionRequestReject_IEs_449[] = { - { ATF_NOFLAGS, 0, offsetof(struct SgNBAdditionRequestReject_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_450, memb_id_constraint_449 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBAdditionRequestReject_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_SgNBAdditionRequestReject_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_451, memb_criticality_constraint_449 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SgNBAdditionRequestReject_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_452, - select_SgNBAdditionRequestReject_IEs_value_type, - { 0, &asn_PER_memb_value_constr_452, memb_value_constraint_449 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_SgNBAdditionRequestReject_IEs_tags_449[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_SgNBAdditionRequestReject_IEs_tag2el_449[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_SgNBAdditionRequestReject_IEs_specs_449 = { - sizeof(struct SgNBAdditionRequestReject_IEs), - offsetof(struct SgNBAdditionRequestReject_IEs, _asn_ctx), - asn_MAP_SgNBAdditionRequestReject_IEs_tag2el_449, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_SgNBAdditionRequestReject_IEs = { - "SgNBAdditionRequestReject-IEs", - "SgNBAdditionRequestReject-IEs", - &asn_OP_SEQUENCE, - asn_DEF_SgNBAdditionRequestReject_IEs_tags_449, - sizeof(asn_DEF_SgNBAdditionRequestReject_IEs_tags_449) - /sizeof(asn_DEF_SgNBAdditionRequestReject_IEs_tags_449[0]), /* 1 */ - asn_DEF_SgNBAdditionRequestReject_IEs_tags_449, /* Same as above */ - sizeof(asn_DEF_SgNBAdditionRequestReject_IEs_tags_449) - /sizeof(asn_DEF_SgNBAdditionRequestReject_IEs_tags_449[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_SgNBAdditionRequestReject_IEs_449, - 3, /* Elements count */ - &asn_SPC_SgNBAdditionRequestReject_IEs_specs_449 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_456[] = { - { ATF_NOFLAGS, 0, offsetof(struct SgNBReconfigurationComplete_IEs__value, choice.UE_X2AP_ID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_UE_X2AP_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "UE-X2AP-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBReconfigurationComplete_IEs__value, choice.SgNB_UE_X2AP_ID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_SgNB_UE_X2AP_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "SgNB-UE-X2AP-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBReconfigurationComplete_IEs__value, choice.ResponseInformationSgNBReconfComp), - -1 /* Ambiguous tag (CHOICE?) */, - 0, - &asn_DEF_ResponseInformationSgNBReconfComp, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ResponseInformationSgNBReconfComp" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBReconfigurationComplete_IEs__value, choice.UE_X2AP_ID_Extension), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_UE_X2AP_ID_Extension, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "UE-X2AP-ID-Extension" - }, -}; -static const unsigned asn_MAP_value_to_canonical_456[] = { 0, 1, 3, 2 }; -static const unsigned asn_MAP_value_from_canonical_456[] = { 0, 1, 3, 2 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_456[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 2 }, /* UE-X2AP-ID */ - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 1 }, /* SgNB-UE-X2AP-ID */ - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 3, -2, 0 }, /* UE-X2AP-ID-Extension */ - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 2, 0, 0 }, /* success-SgNBReconfComp */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 2, 0, 0 } /* reject-by-MeNB-SgNBReconfComp */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_456 = { - sizeof(struct SgNBReconfigurationComplete_IEs__value), - offsetof(struct SgNBReconfigurationComplete_IEs__value, _asn_ctx), - offsetof(struct SgNBReconfigurationComplete_IEs__value, present), - sizeof(((struct SgNBReconfigurationComplete_IEs__value *)0)->present), - asn_MAP_value_tag2el_456, - 5, /* Count of tags in the map */ - asn_MAP_value_to_canonical_456, - asn_MAP_value_from_canonical_456, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_456 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_456, - 4, /* Elements count */ - &asn_SPC_value_specs_456 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_SgNBReconfigurationComplete_IEs_453[] = { - { ATF_NOFLAGS, 0, offsetof(struct SgNBReconfigurationComplete_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_454, memb_id_constraint_453 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBReconfigurationComplete_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_SgNBReconfigurationComplete_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_455, memb_criticality_constraint_453 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SgNBReconfigurationComplete_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_456, - select_SgNBReconfigurationComplete_IEs_value_type, - { 0, &asn_PER_memb_value_constr_456, memb_value_constraint_453 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_SgNBReconfigurationComplete_IEs_tags_453[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_SgNBReconfigurationComplete_IEs_tag2el_453[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_SgNBReconfigurationComplete_IEs_specs_453 = { - sizeof(struct SgNBReconfigurationComplete_IEs), - offsetof(struct SgNBReconfigurationComplete_IEs, _asn_ctx), - asn_MAP_SgNBReconfigurationComplete_IEs_tag2el_453, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_SgNBReconfigurationComplete_IEs = { - "SgNBReconfigurationComplete-IEs", - "SgNBReconfigurationComplete-IEs", - &asn_OP_SEQUENCE, - asn_DEF_SgNBReconfigurationComplete_IEs_tags_453, - sizeof(asn_DEF_SgNBReconfigurationComplete_IEs_tags_453) - /sizeof(asn_DEF_SgNBReconfigurationComplete_IEs_tags_453[0]), /* 1 */ - asn_DEF_SgNBReconfigurationComplete_IEs_tags_453, /* Same as above */ - sizeof(asn_DEF_SgNBReconfigurationComplete_IEs_tags_453) - /sizeof(asn_DEF_SgNBReconfigurationComplete_IEs_tags_453[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_SgNBReconfigurationComplete_IEs_453, - 3, /* Elements count */ - &asn_SPC_SgNBReconfigurationComplete_IEs_specs_453 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_460[] = { - { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRequest_IEs__value, choice.UE_X2AP_ID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_UE_X2AP_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "UE-X2AP-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRequest_IEs__value, choice.SgNB_UE_X2AP_ID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_SgNB_UE_X2AP_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "SgNB-UE-X2AP-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRequest_IEs__value, choice.Cause), - -1 /* Ambiguous tag (CHOICE?) */, - 0, - &asn_DEF_Cause, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "Cause" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRequest_IEs__value, choice.PLMN_Identity), - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), - 0, - &asn_DEF_PLMN_Identity, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "PLMN-Identity" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRequest_IEs__value, choice.HandoverRestrictionList), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_HandoverRestrictionList, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "HandoverRestrictionList" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRequest_IEs__value, choice.SCGConfigurationQuery), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_SCGConfigurationQuery, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "SCGConfigurationQuery" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRequest_IEs__value, choice.UE_ContextInformation_SgNBModReq), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_UE_ContextInformation_SgNBModReq, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "UE-ContextInformation-SgNBModReq" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRequest_IEs__value, choice.MeNBtoSgNBContainer), - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), - 0, - &asn_DEF_MeNBtoSgNBContainer, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "MeNBtoSgNBContainer" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRequest_IEs__value, choice.UE_X2AP_ID_Extension), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_UE_X2AP_ID_Extension, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "UE-X2AP-ID-Extension" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRequest_IEs__value, choice.MeNBResourceCoordinationInformation), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_MeNBResourceCoordinationInformation, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "MeNBResourceCoordinationInformation" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRequest_IEs__value, choice.SplitSRBs), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_SplitSRBs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "SplitSRBs" - }, -}; -static const unsigned asn_MAP_value_to_canonical_460[] = { 0, 1, 8, 3, 7, 5, 10, 4, 6, 9, 2 }; -static const unsigned asn_MAP_value_from_canonical_460[] = { 0, 1, 10, 3, 7, 5, 8, 4, 2, 9, 6 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_460[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 2 }, /* UE-X2AP-ID */ - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 1 }, /* SgNB-UE-X2AP-ID */ - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 8, -2, 0 }, /* UE-X2AP-ID-Extension */ - { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 3, 0, 1 }, /* PLMN-Identity */ - { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 7, -1, 0 }, /* MeNBtoSgNBContainer */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 5, 0, 1 }, /* SCGConfigurationQuery */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 10, -1, 0 }, /* SplitSRBs */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, 0, 2 }, /* HandoverRestrictionList */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 6, -1, 1 }, /* UE-ContextInformation-SgNBModReq */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 9, -2, 0 }, /* MeNBResourceCoordinationInformation */ - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 2, 0, 0 }, /* radioNetwork */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 2, 0, 0 }, /* transport */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* protocol */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 2, 0, 0 } /* misc */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_460 = { - sizeof(struct SgNBModificationRequest_IEs__value), - offsetof(struct SgNBModificationRequest_IEs__value, _asn_ctx), - offsetof(struct SgNBModificationRequest_IEs__value, present), - sizeof(((struct SgNBModificationRequest_IEs__value *)0)->present), - asn_MAP_value_tag2el_460, - 14, /* Count of tags in the map */ - asn_MAP_value_to_canonical_460, - asn_MAP_value_from_canonical_460, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_460 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_460, - 11, /* Elements count */ - &asn_SPC_value_specs_460 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_SgNBModificationRequest_IEs_457[] = { - { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRequest_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_458, memb_id_constraint_457 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRequest_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_SgNBModificationRequest_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_459, memb_criticality_constraint_457 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRequest_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_460, - select_SgNBModificationRequest_IEs_value_type, - { 0, &asn_PER_memb_value_constr_460, memb_value_constraint_457 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_SgNBModificationRequest_IEs_tags_457[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_SgNBModificationRequest_IEs_tag2el_457[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_SgNBModificationRequest_IEs_specs_457 = { - sizeof(struct SgNBModificationRequest_IEs), - offsetof(struct SgNBModificationRequest_IEs, _asn_ctx), - asn_MAP_SgNBModificationRequest_IEs_tag2el_457, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_SgNBModificationRequest_IEs = { - "SgNBModificationRequest-IEs", - "SgNBModificationRequest-IEs", - &asn_OP_SEQUENCE, - asn_DEF_SgNBModificationRequest_IEs_tags_457, - sizeof(asn_DEF_SgNBModificationRequest_IEs_tags_457) - /sizeof(asn_DEF_SgNBModificationRequest_IEs_tags_457[0]), /* 1 */ - asn_DEF_SgNBModificationRequest_IEs_tags_457, /* Same as above */ - sizeof(asn_DEF_SgNBModificationRequest_IEs_tags_457) - /sizeof(asn_DEF_SgNBModificationRequest_IEs_tags_457[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_SgNBModificationRequest_IEs_457, - 3, /* Elements count */ - &asn_SPC_SgNBModificationRequest_IEs_specs_457 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_464[] = { - { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRequestAcknowledge_IEs__value, choice.UE_X2AP_ID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_UE_X2AP_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "UE-X2AP-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRequestAcknowledge_IEs__value, choice.SgNB_UE_X2AP_ID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_SgNB_UE_X2AP_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "SgNB-UE-X2AP-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRequestAcknowledge_IEs__value, choice.E_RABs_Admitted_ToBeAdded_SgNBModAckList), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAckList, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "E-RABs-Admitted-ToBeAdded-SgNBModAckList" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRequestAcknowledge_IEs__value, choice.E_RABs_Admitted_ToBeModified_SgNBModAckList), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAckList, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "E-RABs-Admitted-ToBeModified-SgNBModAckList" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRequestAcknowledge_IEs__value, choice.E_RABs_Admitted_ToBeReleased_SgNBModAckList), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBModAckList, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "E-RABs-Admitted-ToBeReleased-SgNBModAckList" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRequestAcknowledge_IEs__value, choice.E_RAB_List), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RAB_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "E-RAB-List" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRequestAcknowledge_IEs__value, choice.SgNBtoMeNBContainer), - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), - 0, - &asn_DEF_SgNBtoMeNBContainer, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "SgNBtoMeNBContainer" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRequestAcknowledge_IEs__value, choice.CriticalityDiagnostics), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CriticalityDiagnostics, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "CriticalityDiagnostics" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRequestAcknowledge_IEs__value, choice.UE_X2AP_ID_Extension), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_UE_X2AP_ID_Extension, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "UE-X2AP-ID-Extension" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRequestAcknowledge_IEs__value, choice.SgNBResourceCoordinationInformation), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_SgNBResourceCoordinationInformation, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "SgNBResourceCoordinationInformation" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRequestAcknowledge_IEs__value, choice.SplitSRBs), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_SplitSRBs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "SplitSRBs" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRequestAcknowledge_IEs__value, choice.RRC_Config_Ind), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_RRC_Config_Ind, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RRC-Config-Ind" - }, -}; -static const unsigned asn_MAP_value_to_canonical_464[] = { 0, 1, 8, 6, 10, 11, 2, 3, 4, 5, 7, 9 }; -static const unsigned asn_MAP_value_from_canonical_464[] = { 0, 1, 6, 7, 8, 9, 3, 10, 2, 11, 4, 5 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_464[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 2 }, /* UE-X2AP-ID */ - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 1 }, /* SgNB-UE-X2AP-ID */ - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 8, -2, 0 }, /* UE-X2AP-ID-Extension */ - { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 6, 0, 0 }, /* SgNBtoMeNBContainer */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 10, 0, 1 }, /* SplitSRBs */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 11, -1, 0 }, /* RRC-Config-Ind */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, 0, 5 }, /* E-RABs-Admitted-ToBeAdded-SgNBModAckList */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -1, 4 }, /* E-RABs-Admitted-ToBeModified-SgNBModAckList */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, -2, 3 }, /* E-RABs-Admitted-ToBeReleased-SgNBModAckList */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 5, -3, 2 }, /* E-RAB-List */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 7, -4, 1 }, /* CriticalityDiagnostics */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 9, -5, 0 } /* SgNBResourceCoordinationInformation */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_464 = { - sizeof(struct SgNBModificationRequestAcknowledge_IEs__value), - offsetof(struct SgNBModificationRequestAcknowledge_IEs__value, _asn_ctx), - offsetof(struct SgNBModificationRequestAcknowledge_IEs__value, present), - sizeof(((struct SgNBModificationRequestAcknowledge_IEs__value *)0)->present), - asn_MAP_value_tag2el_464, - 12, /* Count of tags in the map */ - asn_MAP_value_to_canonical_464, - asn_MAP_value_from_canonical_464, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_464 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_464, - 12, /* Elements count */ - &asn_SPC_value_specs_464 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_SgNBModificationRequestAcknowledge_IEs_461[] = { - { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRequestAcknowledge_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_462, memb_id_constraint_461 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRequestAcknowledge_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_SgNBModificationRequestAcknowledge_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_463, memb_criticality_constraint_461 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRequestAcknowledge_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_464, - select_SgNBModificationRequestAcknowledge_IEs_value_type, - { 0, &asn_PER_memb_value_constr_464, memb_value_constraint_461 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_SgNBModificationRequestAcknowledge_IEs_tags_461[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_SgNBModificationRequestAcknowledge_IEs_tag2el_461[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_SgNBModificationRequestAcknowledge_IEs_specs_461 = { - sizeof(struct SgNBModificationRequestAcknowledge_IEs), - offsetof(struct SgNBModificationRequestAcknowledge_IEs, _asn_ctx), - asn_MAP_SgNBModificationRequestAcknowledge_IEs_tag2el_461, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_SgNBModificationRequestAcknowledge_IEs = { - "SgNBModificationRequestAcknowledge-IEs", - "SgNBModificationRequestAcknowledge-IEs", - &asn_OP_SEQUENCE, - asn_DEF_SgNBModificationRequestAcknowledge_IEs_tags_461, - sizeof(asn_DEF_SgNBModificationRequestAcknowledge_IEs_tags_461) - /sizeof(asn_DEF_SgNBModificationRequestAcknowledge_IEs_tags_461[0]), /* 1 */ - asn_DEF_SgNBModificationRequestAcknowledge_IEs_tags_461, /* Same as above */ - sizeof(asn_DEF_SgNBModificationRequestAcknowledge_IEs_tags_461) - /sizeof(asn_DEF_SgNBModificationRequestAcknowledge_IEs_tags_461[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_SgNBModificationRequestAcknowledge_IEs_461, - 3, /* Elements count */ - &asn_SPC_SgNBModificationRequestAcknowledge_IEs_specs_461 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_468[] = { - { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRequestReject_IEs__value, choice.UE_X2AP_ID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_UE_X2AP_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "UE-X2AP-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRequestReject_IEs__value, choice.SgNB_UE_X2AP_ID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_SgNB_UE_X2AP_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "SgNB-UE-X2AP-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRequestReject_IEs__value, choice.Cause), - -1 /* Ambiguous tag (CHOICE?) */, - 0, - &asn_DEF_Cause, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "Cause" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRequestReject_IEs__value, choice.CriticalityDiagnostics), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CriticalityDiagnostics, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "CriticalityDiagnostics" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRequestReject_IEs__value, choice.UE_X2AP_ID_Extension), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_UE_X2AP_ID_Extension, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "UE-X2AP-ID-Extension" - }, -}; -static const unsigned asn_MAP_value_to_canonical_468[] = { 0, 1, 4, 3, 2 }; -static const unsigned asn_MAP_value_from_canonical_468[] = { 0, 1, 4, 3, 2 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_468[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 2 }, /* UE-X2AP-ID */ - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 1 }, /* SgNB-UE-X2AP-ID */ - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 4, -2, 0 }, /* UE-X2AP-ID-Extension */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, 0, 0 }, /* CriticalityDiagnostics */ - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 2, 0, 0 }, /* radioNetwork */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 2, 0, 0 }, /* transport */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* protocol */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 2, 0, 0 } /* misc */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_468 = { - sizeof(struct SgNBModificationRequestReject_IEs__value), - offsetof(struct SgNBModificationRequestReject_IEs__value, _asn_ctx), - offsetof(struct SgNBModificationRequestReject_IEs__value, present), - sizeof(((struct SgNBModificationRequestReject_IEs__value *)0)->present), - asn_MAP_value_tag2el_468, - 8, /* Count of tags in the map */ - asn_MAP_value_to_canonical_468, - asn_MAP_value_from_canonical_468, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_468 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_468, - 5, /* Elements count */ - &asn_SPC_value_specs_468 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_SgNBModificationRequestReject_IEs_465[] = { - { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRequestReject_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_466, memb_id_constraint_465 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRequestReject_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_SgNBModificationRequestReject_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_467, memb_criticality_constraint_465 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRequestReject_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_468, - select_SgNBModificationRequestReject_IEs_value_type, - { 0, &asn_PER_memb_value_constr_468, memb_value_constraint_465 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_SgNBModificationRequestReject_IEs_tags_465[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_SgNBModificationRequestReject_IEs_tag2el_465[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_SgNBModificationRequestReject_IEs_specs_465 = { - sizeof(struct SgNBModificationRequestReject_IEs), - offsetof(struct SgNBModificationRequestReject_IEs, _asn_ctx), - asn_MAP_SgNBModificationRequestReject_IEs_tag2el_465, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_SgNBModificationRequestReject_IEs = { - "SgNBModificationRequestReject-IEs", - "SgNBModificationRequestReject-IEs", - &asn_OP_SEQUENCE, - asn_DEF_SgNBModificationRequestReject_IEs_tags_465, - sizeof(asn_DEF_SgNBModificationRequestReject_IEs_tags_465) - /sizeof(asn_DEF_SgNBModificationRequestReject_IEs_tags_465[0]), /* 1 */ - asn_DEF_SgNBModificationRequestReject_IEs_tags_465, /* Same as above */ - sizeof(asn_DEF_SgNBModificationRequestReject_IEs_tags_465) - /sizeof(asn_DEF_SgNBModificationRequestReject_IEs_tags_465[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_SgNBModificationRequestReject_IEs_465, - 3, /* Elements count */ - &asn_SPC_SgNBModificationRequestReject_IEs_specs_465 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_472[] = { - { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRequired_IEs__value, choice.UE_X2AP_ID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_UE_X2AP_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "UE-X2AP-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRequired_IEs__value, choice.SgNB_UE_X2AP_ID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_SgNB_UE_X2AP_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "SgNB-UE-X2AP-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRequired_IEs__value, choice.Cause), - -1 /* Ambiguous tag (CHOICE?) */, - 0, - &asn_DEF_Cause, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "Cause" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRequired_IEs__value, choice.PDCPChangeIndication), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_PDCPChangeIndication, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "PDCPChangeIndication" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRequired_IEs__value, choice.E_RABs_ToBeReleased_SgNBModReqdList), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RABs_ToBeReleased_SgNBModReqdList, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "E-RABs-ToBeReleased-SgNBModReqdList" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRequired_IEs__value, choice.SgNBtoMeNBContainer), - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), - 0, - &asn_DEF_SgNBtoMeNBContainer, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "SgNBtoMeNBContainer" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRequired_IEs__value, choice.UE_X2AP_ID_Extension), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_UE_X2AP_ID_Extension, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "UE-X2AP-ID-Extension" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRequired_IEs__value, choice.E_RABs_ToBeModified_SgNBModReqdList), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RABs_ToBeModified_SgNBModReqdList, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "E-RABs-ToBeModified-SgNBModReqdList" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRequired_IEs__value, choice.SgNBResourceCoordinationInformation), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_SgNBResourceCoordinationInformation, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "SgNBResourceCoordinationInformation" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRequired_IEs__value, choice.RRC_Config_Ind), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_RRC_Config_Ind, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RRC-Config-Ind" - }, -}; -static const unsigned asn_MAP_value_to_canonical_472[] = { 0, 1, 6, 5, 3, 9, 4, 7, 8, 2 }; -static const unsigned asn_MAP_value_from_canonical_472[] = { 0, 1, 9, 4, 6, 3, 2, 7, 8, 5 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_472[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 2 }, /* UE-X2AP-ID */ - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 1 }, /* SgNB-UE-X2AP-ID */ - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 6, -2, 0 }, /* UE-X2AP-ID-Extension */ - { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 5, 0, 0 }, /* SgNBtoMeNBContainer */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 3, 0, 1 }, /* PDCPChangeIndication */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 9, -1, 0 }, /* RRC-Config-Ind */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, 0, 2 }, /* E-RABs-ToBeReleased-SgNBModReqdList */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 7, -1, 1 }, /* E-RABs-ToBeModified-SgNBModReqdList */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 8, -2, 0 }, /* SgNBResourceCoordinationInformation */ - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 2, 0, 0 }, /* radioNetwork */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 2, 0, 0 }, /* transport */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* protocol */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 2, 0, 0 } /* misc */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_472 = { - sizeof(struct SgNBModificationRequired_IEs__value), - offsetof(struct SgNBModificationRequired_IEs__value, _asn_ctx), - offsetof(struct SgNBModificationRequired_IEs__value, present), - sizeof(((struct SgNBModificationRequired_IEs__value *)0)->present), - asn_MAP_value_tag2el_472, - 13, /* Count of tags in the map */ - asn_MAP_value_to_canonical_472, - asn_MAP_value_from_canonical_472, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_472 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_472, - 10, /* Elements count */ - &asn_SPC_value_specs_472 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_SgNBModificationRequired_IEs_469[] = { - { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRequired_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_470, memb_id_constraint_469 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRequired_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_SgNBModificationRequired_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_471, memb_criticality_constraint_469 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRequired_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_472, - select_SgNBModificationRequired_IEs_value_type, - { 0, &asn_PER_memb_value_constr_472, memb_value_constraint_469 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_SgNBModificationRequired_IEs_tags_469[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_SgNBModificationRequired_IEs_tag2el_469[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_SgNBModificationRequired_IEs_specs_469 = { - sizeof(struct SgNBModificationRequired_IEs), - offsetof(struct SgNBModificationRequired_IEs, _asn_ctx), - asn_MAP_SgNBModificationRequired_IEs_tag2el_469, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_SgNBModificationRequired_IEs = { - "SgNBModificationRequired-IEs", - "SgNBModificationRequired-IEs", - &asn_OP_SEQUENCE, - asn_DEF_SgNBModificationRequired_IEs_tags_469, - sizeof(asn_DEF_SgNBModificationRequired_IEs_tags_469) - /sizeof(asn_DEF_SgNBModificationRequired_IEs_tags_469[0]), /* 1 */ - asn_DEF_SgNBModificationRequired_IEs_tags_469, /* Same as above */ - sizeof(asn_DEF_SgNBModificationRequired_IEs_tags_469) - /sizeof(asn_DEF_SgNBModificationRequired_IEs_tags_469[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_SgNBModificationRequired_IEs_469, - 3, /* Elements count */ - &asn_SPC_SgNBModificationRequired_IEs_specs_469 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_476[] = { - { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationConfirm_IEs__value, choice.UE_X2AP_ID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_UE_X2AP_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "UE-X2AP-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationConfirm_IEs__value, choice.SgNB_UE_X2AP_ID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_SgNB_UE_X2AP_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "SgNB-UE-X2AP-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationConfirm_IEs__value, choice.E_RABs_AdmittedToBeModified_SgNBModConfList), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConfList, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "E-RABs-AdmittedToBeModified-SgNBModConfList" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationConfirm_IEs__value, choice.MeNBtoSgNBContainer), - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), - 0, - &asn_DEF_MeNBtoSgNBContainer, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "MeNBtoSgNBContainer" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationConfirm_IEs__value, choice.CriticalityDiagnostics), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CriticalityDiagnostics, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "CriticalityDiagnostics" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationConfirm_IEs__value, choice.UE_X2AP_ID_Extension), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_UE_X2AP_ID_Extension, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "UE-X2AP-ID-Extension" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationConfirm_IEs__value, choice.MeNBResourceCoordinationInformation), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_MeNBResourceCoordinationInformation, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "MeNBResourceCoordinationInformation" - }, -}; -static const unsigned asn_MAP_value_to_canonical_476[] = { 0, 1, 5, 3, 2, 4, 6 }; -static const unsigned asn_MAP_value_from_canonical_476[] = { 0, 1, 4, 3, 5, 2, 6 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_476[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 2 }, /* UE-X2AP-ID */ - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 1 }, /* SgNB-UE-X2AP-ID */ - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 5, -2, 0 }, /* UE-X2AP-ID-Extension */ - { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 3, 0, 0 }, /* MeNBtoSgNBContainer */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, 0, 2 }, /* E-RABs-AdmittedToBeModified-SgNBModConfList */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, -1, 1 }, /* CriticalityDiagnostics */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 6, -2, 0 } /* MeNBResourceCoordinationInformation */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_476 = { - sizeof(struct SgNBModificationConfirm_IEs__value), - offsetof(struct SgNBModificationConfirm_IEs__value, _asn_ctx), - offsetof(struct SgNBModificationConfirm_IEs__value, present), - sizeof(((struct SgNBModificationConfirm_IEs__value *)0)->present), - asn_MAP_value_tag2el_476, - 7, /* Count of tags in the map */ - asn_MAP_value_to_canonical_476, - asn_MAP_value_from_canonical_476, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_476 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_476, - 7, /* Elements count */ - &asn_SPC_value_specs_476 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_SgNBModificationConfirm_IEs_473[] = { - { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationConfirm_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_474, memb_id_constraint_473 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationConfirm_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_SgNBModificationConfirm_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_475, memb_criticality_constraint_473 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SgNBModificationConfirm_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_476, - select_SgNBModificationConfirm_IEs_value_type, - { 0, &asn_PER_memb_value_constr_476, memb_value_constraint_473 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_SgNBModificationConfirm_IEs_tags_473[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_SgNBModificationConfirm_IEs_tag2el_473[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_SgNBModificationConfirm_IEs_specs_473 = { - sizeof(struct SgNBModificationConfirm_IEs), - offsetof(struct SgNBModificationConfirm_IEs, _asn_ctx), - asn_MAP_SgNBModificationConfirm_IEs_tag2el_473, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_SgNBModificationConfirm_IEs = { - "SgNBModificationConfirm-IEs", - "SgNBModificationConfirm-IEs", - &asn_OP_SEQUENCE, - asn_DEF_SgNBModificationConfirm_IEs_tags_473, - sizeof(asn_DEF_SgNBModificationConfirm_IEs_tags_473) - /sizeof(asn_DEF_SgNBModificationConfirm_IEs_tags_473[0]), /* 1 */ - asn_DEF_SgNBModificationConfirm_IEs_tags_473, /* Same as above */ - sizeof(asn_DEF_SgNBModificationConfirm_IEs_tags_473) - /sizeof(asn_DEF_SgNBModificationConfirm_IEs_tags_473[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_SgNBModificationConfirm_IEs_473, - 3, /* Elements count */ - &asn_SPC_SgNBModificationConfirm_IEs_specs_473 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_480[] = { - { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRefuse_IEs__value, choice.UE_X2AP_ID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_UE_X2AP_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "UE-X2AP-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRefuse_IEs__value, choice.SgNB_UE_X2AP_ID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_SgNB_UE_X2AP_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "SgNB-UE-X2AP-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRefuse_IEs__value, choice.Cause), - -1 /* Ambiguous tag (CHOICE?) */, - 0, - &asn_DEF_Cause, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "Cause" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRefuse_IEs__value, choice.MeNBtoSgNBContainer), - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), - 0, - &asn_DEF_MeNBtoSgNBContainer, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "MeNBtoSgNBContainer" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRefuse_IEs__value, choice.CriticalityDiagnostics), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CriticalityDiagnostics, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "CriticalityDiagnostics" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRefuse_IEs__value, choice.UE_X2AP_ID_Extension), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_UE_X2AP_ID_Extension, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "UE-X2AP-ID-Extension" - }, -}; -static const unsigned asn_MAP_value_to_canonical_480[] = { 0, 1, 5, 3, 4, 2 }; -static const unsigned asn_MAP_value_from_canonical_480[] = { 0, 1, 5, 3, 4, 2 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_480[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 2 }, /* UE-X2AP-ID */ - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 1 }, /* SgNB-UE-X2AP-ID */ - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 5, -2, 0 }, /* UE-X2AP-ID-Extension */ - { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 3, 0, 0 }, /* MeNBtoSgNBContainer */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, 0, 0 }, /* CriticalityDiagnostics */ - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 2, 0, 0 }, /* radioNetwork */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 2, 0, 0 }, /* transport */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* protocol */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 2, 0, 0 } /* misc */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_480 = { - sizeof(struct SgNBModificationRefuse_IEs__value), - offsetof(struct SgNBModificationRefuse_IEs__value, _asn_ctx), - offsetof(struct SgNBModificationRefuse_IEs__value, present), - sizeof(((struct SgNBModificationRefuse_IEs__value *)0)->present), - asn_MAP_value_tag2el_480, - 9, /* Count of tags in the map */ - asn_MAP_value_to_canonical_480, - asn_MAP_value_from_canonical_480, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_480 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_480, - 6, /* Elements count */ - &asn_SPC_value_specs_480 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_SgNBModificationRefuse_IEs_477[] = { - { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRefuse_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_478, memb_id_constraint_477 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRefuse_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_SgNBModificationRefuse_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_479, memb_criticality_constraint_477 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRefuse_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_480, - select_SgNBModificationRefuse_IEs_value_type, - { 0, &asn_PER_memb_value_constr_480, memb_value_constraint_477 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_SgNBModificationRefuse_IEs_tags_477[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_SgNBModificationRefuse_IEs_tag2el_477[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_SgNBModificationRefuse_IEs_specs_477 = { - sizeof(struct SgNBModificationRefuse_IEs), - offsetof(struct SgNBModificationRefuse_IEs, _asn_ctx), - asn_MAP_SgNBModificationRefuse_IEs_tag2el_477, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_SgNBModificationRefuse_IEs = { - "SgNBModificationRefuse-IEs", - "SgNBModificationRefuse-IEs", - &asn_OP_SEQUENCE, - asn_DEF_SgNBModificationRefuse_IEs_tags_477, - sizeof(asn_DEF_SgNBModificationRefuse_IEs_tags_477) - /sizeof(asn_DEF_SgNBModificationRefuse_IEs_tags_477[0]), /* 1 */ - asn_DEF_SgNBModificationRefuse_IEs_tags_477, /* Same as above */ - sizeof(asn_DEF_SgNBModificationRefuse_IEs_tags_477) - /sizeof(asn_DEF_SgNBModificationRefuse_IEs_tags_477[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_SgNBModificationRefuse_IEs_477, - 3, /* Elements count */ - &asn_SPC_SgNBModificationRefuse_IEs_specs_477 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_484[] = { - { ATF_NOFLAGS, 0, offsetof(struct SgNBReleaseRequest_IEs__value, choice.UE_X2AP_ID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_UE_X2AP_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "UE-X2AP-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBReleaseRequest_IEs__value, choice.SgNB_UE_X2AP_ID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_SgNB_UE_X2AP_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "SgNB-UE-X2AP-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBReleaseRequest_IEs__value, choice.Cause), - -1 /* Ambiguous tag (CHOICE?) */, - 0, - &asn_DEF_Cause, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "Cause" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBReleaseRequest_IEs__value, choice.E_RABs_ToBeReleased_SgNBRelReqList), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RABs_ToBeReleased_SgNBRelReqList, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "E-RABs-ToBeReleased-SgNBRelReqList" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBReleaseRequest_IEs__value, choice.UE_ContextKeptIndicator), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_UE_ContextKeptIndicator, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "UE-ContextKeptIndicator" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBReleaseRequest_IEs__value, choice.UE_X2AP_ID_Extension), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_UE_X2AP_ID_Extension, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "UE-X2AP-ID-Extension" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBReleaseRequest_IEs__value, choice.MeNBtoSgNBContainer), - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), - 0, - &asn_DEF_MeNBtoSgNBContainer, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "MeNBtoSgNBContainer" - }, -}; -static const unsigned asn_MAP_value_to_canonical_484[] = { 0, 1, 5, 6, 4, 3, 2 }; -static const unsigned asn_MAP_value_from_canonical_484[] = { 0, 1, 6, 5, 4, 2, 3 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_484[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 2 }, /* UE-X2AP-ID */ - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 1 }, /* SgNB-UE-X2AP-ID */ - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 5, -2, 0 }, /* UE-X2AP-ID-Extension */ - { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 6, 0, 0 }, /* MeNBtoSgNBContainer */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 4, 0, 0 }, /* UE-ContextKeptIndicator */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, 0, 0 }, /* E-RABs-ToBeReleased-SgNBRelReqList */ - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 2, 0, 0 }, /* radioNetwork */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 2, 0, 0 }, /* transport */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* protocol */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 2, 0, 0 } /* misc */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_484 = { - sizeof(struct SgNBReleaseRequest_IEs__value), - offsetof(struct SgNBReleaseRequest_IEs__value, _asn_ctx), - offsetof(struct SgNBReleaseRequest_IEs__value, present), - sizeof(((struct SgNBReleaseRequest_IEs__value *)0)->present), - asn_MAP_value_tag2el_484, - 10, /* Count of tags in the map */ - asn_MAP_value_to_canonical_484, - asn_MAP_value_from_canonical_484, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_484 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_484, - 7, /* Elements count */ - &asn_SPC_value_specs_484 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_SgNBReleaseRequest_IEs_481[] = { - { ATF_NOFLAGS, 0, offsetof(struct SgNBReleaseRequest_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_482, memb_id_constraint_481 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBReleaseRequest_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_SgNBReleaseRequest_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_483, memb_criticality_constraint_481 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SgNBReleaseRequest_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_484, - select_SgNBReleaseRequest_IEs_value_type, - { 0, &asn_PER_memb_value_constr_484, memb_value_constraint_481 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_SgNBReleaseRequest_IEs_tags_481[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_SgNBReleaseRequest_IEs_tag2el_481[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_SgNBReleaseRequest_IEs_specs_481 = { - sizeof(struct SgNBReleaseRequest_IEs), - offsetof(struct SgNBReleaseRequest_IEs, _asn_ctx), - asn_MAP_SgNBReleaseRequest_IEs_tag2el_481, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_SgNBReleaseRequest_IEs = { - "SgNBReleaseRequest-IEs", - "SgNBReleaseRequest-IEs", - &asn_OP_SEQUENCE, - asn_DEF_SgNBReleaseRequest_IEs_tags_481, - sizeof(asn_DEF_SgNBReleaseRequest_IEs_tags_481) - /sizeof(asn_DEF_SgNBReleaseRequest_IEs_tags_481[0]), /* 1 */ - asn_DEF_SgNBReleaseRequest_IEs_tags_481, /* Same as above */ - sizeof(asn_DEF_SgNBReleaseRequest_IEs_tags_481) - /sizeof(asn_DEF_SgNBReleaseRequest_IEs_tags_481[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_SgNBReleaseRequest_IEs_481, - 3, /* Elements count */ - &asn_SPC_SgNBReleaseRequest_IEs_specs_481 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_488[] = { - { ATF_NOFLAGS, 0, offsetof(struct SgNBReleaseRequestAcknowledge_IEs__value, choice.UE_X2AP_ID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_UE_X2AP_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "UE-X2AP-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBReleaseRequestAcknowledge_IEs__value, choice.SgNB_UE_X2AP_ID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_SgNB_UE_X2AP_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "SgNB-UE-X2AP-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBReleaseRequestAcknowledge_IEs__value, choice.CriticalityDiagnostics), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CriticalityDiagnostics, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "CriticalityDiagnostics" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBReleaseRequestAcknowledge_IEs__value, choice.UE_X2AP_ID_Extension), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_UE_X2AP_ID_Extension, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "UE-X2AP-ID-Extension" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBReleaseRequestAcknowledge_IEs__value, choice.E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "E-RABs-Admitted-ToBeReleased-SgNBRelReqAckList" - }, -}; -static const unsigned asn_MAP_value_to_canonical_488[] = { 0, 1, 3, 2, 4 }; -static const unsigned asn_MAP_value_from_canonical_488[] = { 0, 1, 3, 2, 4 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_488[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 2 }, /* UE-X2AP-ID */ - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 1 }, /* SgNB-UE-X2AP-ID */ - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 3, -2, 0 }, /* UE-X2AP-ID-Extension */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, 0, 1 }, /* CriticalityDiagnostics */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, -1, 0 } /* E-RABs-Admitted-ToBeReleased-SgNBRelReqAckList */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_488 = { - sizeof(struct SgNBReleaseRequestAcknowledge_IEs__value), - offsetof(struct SgNBReleaseRequestAcknowledge_IEs__value, _asn_ctx), - offsetof(struct SgNBReleaseRequestAcknowledge_IEs__value, present), - sizeof(((struct SgNBReleaseRequestAcknowledge_IEs__value *)0)->present), - asn_MAP_value_tag2el_488, - 5, /* Count of tags in the map */ - asn_MAP_value_to_canonical_488, - asn_MAP_value_from_canonical_488, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_488 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_488, - 5, /* Elements count */ - &asn_SPC_value_specs_488 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_SgNBReleaseRequestAcknowledge_IEs_485[] = { - { ATF_NOFLAGS, 0, offsetof(struct SgNBReleaseRequestAcknowledge_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_486, memb_id_constraint_485 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBReleaseRequestAcknowledge_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_SgNBReleaseRequestAcknowledge_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_487, memb_criticality_constraint_485 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SgNBReleaseRequestAcknowledge_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_488, - select_SgNBReleaseRequestAcknowledge_IEs_value_type, - { 0, &asn_PER_memb_value_constr_488, memb_value_constraint_485 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_SgNBReleaseRequestAcknowledge_IEs_tags_485[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_SgNBReleaseRequestAcknowledge_IEs_tag2el_485[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_SgNBReleaseRequestAcknowledge_IEs_specs_485 = { - sizeof(struct SgNBReleaseRequestAcknowledge_IEs), - offsetof(struct SgNBReleaseRequestAcknowledge_IEs, _asn_ctx), - asn_MAP_SgNBReleaseRequestAcknowledge_IEs_tag2el_485, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_SgNBReleaseRequestAcknowledge_IEs = { - "SgNBReleaseRequestAcknowledge-IEs", - "SgNBReleaseRequestAcknowledge-IEs", - &asn_OP_SEQUENCE, - asn_DEF_SgNBReleaseRequestAcknowledge_IEs_tags_485, - sizeof(asn_DEF_SgNBReleaseRequestAcknowledge_IEs_tags_485) - /sizeof(asn_DEF_SgNBReleaseRequestAcknowledge_IEs_tags_485[0]), /* 1 */ - asn_DEF_SgNBReleaseRequestAcknowledge_IEs_tags_485, /* Same as above */ - sizeof(asn_DEF_SgNBReleaseRequestAcknowledge_IEs_tags_485) - /sizeof(asn_DEF_SgNBReleaseRequestAcknowledge_IEs_tags_485[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_SgNBReleaseRequestAcknowledge_IEs_485, - 3, /* Elements count */ - &asn_SPC_SgNBReleaseRequestAcknowledge_IEs_specs_485 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_492[] = { - { ATF_NOFLAGS, 0, offsetof(struct SgNBReleaseRequestReject_IEs__value, choice.UE_X2AP_ID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_UE_X2AP_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "UE-X2AP-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBReleaseRequestReject_IEs__value, choice.SgNB_UE_X2AP_ID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_SgNB_UE_X2AP_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "SgNB-UE-X2AP-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBReleaseRequestReject_IEs__value, choice.Cause), - -1 /* Ambiguous tag (CHOICE?) */, - 0, - &asn_DEF_Cause, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "Cause" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBReleaseRequestReject_IEs__value, choice.CriticalityDiagnostics), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CriticalityDiagnostics, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "CriticalityDiagnostics" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBReleaseRequestReject_IEs__value, choice.UE_X2AP_ID_Extension), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_UE_X2AP_ID_Extension, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "UE-X2AP-ID-Extension" - }, -}; -static const unsigned asn_MAP_value_to_canonical_492[] = { 0, 1, 4, 3, 2 }; -static const unsigned asn_MAP_value_from_canonical_492[] = { 0, 1, 4, 3, 2 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_492[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 2 }, /* UE-X2AP-ID */ - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 1 }, /* SgNB-UE-X2AP-ID */ - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 4, -2, 0 }, /* UE-X2AP-ID-Extension */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, 0, 0 }, /* CriticalityDiagnostics */ - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 2, 0, 0 }, /* radioNetwork */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 2, 0, 0 }, /* transport */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* protocol */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 2, 0, 0 } /* misc */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_492 = { - sizeof(struct SgNBReleaseRequestReject_IEs__value), - offsetof(struct SgNBReleaseRequestReject_IEs__value, _asn_ctx), - offsetof(struct SgNBReleaseRequestReject_IEs__value, present), - sizeof(((struct SgNBReleaseRequestReject_IEs__value *)0)->present), - asn_MAP_value_tag2el_492, - 8, /* Count of tags in the map */ - asn_MAP_value_to_canonical_492, - asn_MAP_value_from_canonical_492, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_492 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_492, - 5, /* Elements count */ - &asn_SPC_value_specs_492 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_SgNBReleaseRequestReject_IEs_489[] = { - { ATF_NOFLAGS, 0, offsetof(struct SgNBReleaseRequestReject_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_490, memb_id_constraint_489 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBReleaseRequestReject_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_SgNBReleaseRequestReject_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_491, memb_criticality_constraint_489 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SgNBReleaseRequestReject_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_492, - select_SgNBReleaseRequestReject_IEs_value_type, - { 0, &asn_PER_memb_value_constr_492, memb_value_constraint_489 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_SgNBReleaseRequestReject_IEs_tags_489[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_SgNBReleaseRequestReject_IEs_tag2el_489[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_SgNBReleaseRequestReject_IEs_specs_489 = { - sizeof(struct SgNBReleaseRequestReject_IEs), - offsetof(struct SgNBReleaseRequestReject_IEs, _asn_ctx), - asn_MAP_SgNBReleaseRequestReject_IEs_tag2el_489, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_SgNBReleaseRequestReject_IEs = { - "SgNBReleaseRequestReject-IEs", - "SgNBReleaseRequestReject-IEs", - &asn_OP_SEQUENCE, - asn_DEF_SgNBReleaseRequestReject_IEs_tags_489, - sizeof(asn_DEF_SgNBReleaseRequestReject_IEs_tags_489) - /sizeof(asn_DEF_SgNBReleaseRequestReject_IEs_tags_489[0]), /* 1 */ - asn_DEF_SgNBReleaseRequestReject_IEs_tags_489, /* Same as above */ - sizeof(asn_DEF_SgNBReleaseRequestReject_IEs_tags_489) - /sizeof(asn_DEF_SgNBReleaseRequestReject_IEs_tags_489[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_SgNBReleaseRequestReject_IEs_489, - 3, /* Elements count */ - &asn_SPC_SgNBReleaseRequestReject_IEs_specs_489 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_496[] = { - { ATF_NOFLAGS, 0, offsetof(struct SgNBReleaseRequired_IEs__value, choice.UE_X2AP_ID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_UE_X2AP_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "UE-X2AP-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBReleaseRequired_IEs__value, choice.SgNB_UE_X2AP_ID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_SgNB_UE_X2AP_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "SgNB-UE-X2AP-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBReleaseRequired_IEs__value, choice.Cause), - -1 /* Ambiguous tag (CHOICE?) */, - 0, - &asn_DEF_Cause, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "Cause" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBReleaseRequired_IEs__value, choice.UE_X2AP_ID_Extension), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_UE_X2AP_ID_Extension, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "UE-X2AP-ID-Extension" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBReleaseRequired_IEs__value, choice.E_RABs_ToBeReleased_SgNBRelReqdList), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RABs_ToBeReleased_SgNBRelReqdList, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "E-RABs-ToBeReleased-SgNBRelReqdList" - }, -}; -static const unsigned asn_MAP_value_to_canonical_496[] = { 0, 1, 3, 4, 2 }; -static const unsigned asn_MAP_value_from_canonical_496[] = { 0, 1, 4, 2, 3 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_496[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 2 }, /* UE-X2AP-ID */ - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 1 }, /* SgNB-UE-X2AP-ID */ - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 3, -2, 0 }, /* UE-X2AP-ID-Extension */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, 0, 0 }, /* E-RABs-ToBeReleased-SgNBRelReqdList */ - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 2, 0, 0 }, /* radioNetwork */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 2, 0, 0 }, /* transport */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* protocol */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 2, 0, 0 } /* misc */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_496 = { - sizeof(struct SgNBReleaseRequired_IEs__value), - offsetof(struct SgNBReleaseRequired_IEs__value, _asn_ctx), - offsetof(struct SgNBReleaseRequired_IEs__value, present), - sizeof(((struct SgNBReleaseRequired_IEs__value *)0)->present), - asn_MAP_value_tag2el_496, - 8, /* Count of tags in the map */ - asn_MAP_value_to_canonical_496, - asn_MAP_value_from_canonical_496, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_496 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_496, - 5, /* Elements count */ - &asn_SPC_value_specs_496 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_SgNBReleaseRequired_IEs_493[] = { - { ATF_NOFLAGS, 0, offsetof(struct SgNBReleaseRequired_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_494, memb_id_constraint_493 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBReleaseRequired_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_SgNBReleaseRequired_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_495, memb_criticality_constraint_493 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SgNBReleaseRequired_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_496, - select_SgNBReleaseRequired_IEs_value_type, - { 0, &asn_PER_memb_value_constr_496, memb_value_constraint_493 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_SgNBReleaseRequired_IEs_tags_493[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_SgNBReleaseRequired_IEs_tag2el_493[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_SgNBReleaseRequired_IEs_specs_493 = { - sizeof(struct SgNBReleaseRequired_IEs), - offsetof(struct SgNBReleaseRequired_IEs, _asn_ctx), - asn_MAP_SgNBReleaseRequired_IEs_tag2el_493, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_SgNBReleaseRequired_IEs = { - "SgNBReleaseRequired-IEs", - "SgNBReleaseRequired-IEs", - &asn_OP_SEQUENCE, - asn_DEF_SgNBReleaseRequired_IEs_tags_493, - sizeof(asn_DEF_SgNBReleaseRequired_IEs_tags_493) - /sizeof(asn_DEF_SgNBReleaseRequired_IEs_tags_493[0]), /* 1 */ - asn_DEF_SgNBReleaseRequired_IEs_tags_493, /* Same as above */ - sizeof(asn_DEF_SgNBReleaseRequired_IEs_tags_493) - /sizeof(asn_DEF_SgNBReleaseRequired_IEs_tags_493[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_SgNBReleaseRequired_IEs_493, - 3, /* Elements count */ - &asn_SPC_SgNBReleaseRequired_IEs_specs_493 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_500[] = { - { ATF_NOFLAGS, 0, offsetof(struct SgNBReleaseConfirm_IEs__value, choice.UE_X2AP_ID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_UE_X2AP_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "UE-X2AP-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBReleaseConfirm_IEs__value, choice.SgNB_UE_X2AP_ID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_SgNB_UE_X2AP_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "SgNB-UE-X2AP-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBReleaseConfirm_IEs__value, choice.E_RABs_ToBeReleased_SgNBRelConfList), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RABs_ToBeReleased_SgNBRelConfList, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "E-RABs-ToBeReleased-SgNBRelConfList" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBReleaseConfirm_IEs__value, choice.CriticalityDiagnostics), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CriticalityDiagnostics, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "CriticalityDiagnostics" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBReleaseConfirm_IEs__value, choice.UE_X2AP_ID_Extension), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_UE_X2AP_ID_Extension, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "UE-X2AP-ID-Extension" - }, -}; -static const unsigned asn_MAP_value_to_canonical_500[] = { 0, 1, 4, 2, 3 }; -static const unsigned asn_MAP_value_from_canonical_500[] = { 0, 1, 3, 4, 2 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_500[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 2 }, /* UE-X2AP-ID */ - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 1 }, /* SgNB-UE-X2AP-ID */ - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 4, -2, 0 }, /* UE-X2AP-ID-Extension */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, 0, 1 }, /* E-RABs-ToBeReleased-SgNBRelConfList */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -1, 0 } /* CriticalityDiagnostics */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_500 = { - sizeof(struct SgNBReleaseConfirm_IEs__value), - offsetof(struct SgNBReleaseConfirm_IEs__value, _asn_ctx), - offsetof(struct SgNBReleaseConfirm_IEs__value, present), - sizeof(((struct SgNBReleaseConfirm_IEs__value *)0)->present), - asn_MAP_value_tag2el_500, - 5, /* Count of tags in the map */ - asn_MAP_value_to_canonical_500, - asn_MAP_value_from_canonical_500, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_500 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_500, - 5, /* Elements count */ - &asn_SPC_value_specs_500 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_SgNBReleaseConfirm_IEs_497[] = { - { ATF_NOFLAGS, 0, offsetof(struct SgNBReleaseConfirm_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_498, memb_id_constraint_497 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBReleaseConfirm_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_SgNBReleaseConfirm_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_499, memb_criticality_constraint_497 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SgNBReleaseConfirm_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_500, - select_SgNBReleaseConfirm_IEs_value_type, - { 0, &asn_PER_memb_value_constr_500, memb_value_constraint_497 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_SgNBReleaseConfirm_IEs_tags_497[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_SgNBReleaseConfirm_IEs_tag2el_497[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_SgNBReleaseConfirm_IEs_specs_497 = { - sizeof(struct SgNBReleaseConfirm_IEs), - offsetof(struct SgNBReleaseConfirm_IEs, _asn_ctx), - asn_MAP_SgNBReleaseConfirm_IEs_tag2el_497, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_SgNBReleaseConfirm_IEs = { - "SgNBReleaseConfirm-IEs", - "SgNBReleaseConfirm-IEs", - &asn_OP_SEQUENCE, - asn_DEF_SgNBReleaseConfirm_IEs_tags_497, - sizeof(asn_DEF_SgNBReleaseConfirm_IEs_tags_497) - /sizeof(asn_DEF_SgNBReleaseConfirm_IEs_tags_497[0]), /* 1 */ - asn_DEF_SgNBReleaseConfirm_IEs_tags_497, /* Same as above */ - sizeof(asn_DEF_SgNBReleaseConfirm_IEs_tags_497) - /sizeof(asn_DEF_SgNBReleaseConfirm_IEs_tags_497[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_SgNBReleaseConfirm_IEs_497, - 3, /* Elements count */ - &asn_SPC_SgNBReleaseConfirm_IEs_specs_497 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_504[] = { - { ATF_NOFLAGS, 0, offsetof(struct SgNBCounterCheckRequest_IEs__value, choice.UE_X2AP_ID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_UE_X2AP_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "UE-X2AP-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBCounterCheckRequest_IEs__value, choice.SgNB_UE_X2AP_ID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_SgNB_UE_X2AP_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "SgNB-UE-X2AP-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBCounterCheckRequest_IEs__value, choice.E_RABs_SubjectToSgNBCounterCheck_List), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RABs_SubjectToSgNBCounterCheck_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "E-RABs-SubjectToSgNBCounterCheck-List" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBCounterCheckRequest_IEs__value, choice.UE_X2AP_ID_Extension), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_UE_X2AP_ID_Extension, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "UE-X2AP-ID-Extension" - }, -}; -static const unsigned asn_MAP_value_to_canonical_504[] = { 0, 1, 3, 2 }; -static const unsigned asn_MAP_value_from_canonical_504[] = { 0, 1, 3, 2 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_504[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 2 }, /* UE-X2AP-ID */ - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 1 }, /* SgNB-UE-X2AP-ID */ - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 3, -2, 0 }, /* UE-X2AP-ID-Extension */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, 0, 0 } /* E-RABs-SubjectToSgNBCounterCheck-List */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_504 = { - sizeof(struct SgNBCounterCheckRequest_IEs__value), - offsetof(struct SgNBCounterCheckRequest_IEs__value, _asn_ctx), - offsetof(struct SgNBCounterCheckRequest_IEs__value, present), - sizeof(((struct SgNBCounterCheckRequest_IEs__value *)0)->present), - asn_MAP_value_tag2el_504, - 4, /* Count of tags in the map */ - asn_MAP_value_to_canonical_504, - asn_MAP_value_from_canonical_504, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_504 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_504, - 4, /* Elements count */ - &asn_SPC_value_specs_504 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_SgNBCounterCheckRequest_IEs_501[] = { - { ATF_NOFLAGS, 0, offsetof(struct SgNBCounterCheckRequest_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_502, memb_id_constraint_501 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBCounterCheckRequest_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_SgNBCounterCheckRequest_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_503, memb_criticality_constraint_501 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SgNBCounterCheckRequest_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_504, - select_SgNBCounterCheckRequest_IEs_value_type, - { 0, &asn_PER_memb_value_constr_504, memb_value_constraint_501 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_SgNBCounterCheckRequest_IEs_tags_501[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_SgNBCounterCheckRequest_IEs_tag2el_501[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_SgNBCounterCheckRequest_IEs_specs_501 = { - sizeof(struct SgNBCounterCheckRequest_IEs), - offsetof(struct SgNBCounterCheckRequest_IEs, _asn_ctx), - asn_MAP_SgNBCounterCheckRequest_IEs_tag2el_501, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_SgNBCounterCheckRequest_IEs = { - "SgNBCounterCheckRequest-IEs", - "SgNBCounterCheckRequest-IEs", - &asn_OP_SEQUENCE, - asn_DEF_SgNBCounterCheckRequest_IEs_tags_501, - sizeof(asn_DEF_SgNBCounterCheckRequest_IEs_tags_501) - /sizeof(asn_DEF_SgNBCounterCheckRequest_IEs_tags_501[0]), /* 1 */ - asn_DEF_SgNBCounterCheckRequest_IEs_tags_501, /* Same as above */ - sizeof(asn_DEF_SgNBCounterCheckRequest_IEs_tags_501) - /sizeof(asn_DEF_SgNBCounterCheckRequest_IEs_tags_501[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_SgNBCounterCheckRequest_IEs_501, - 3, /* Elements count */ - &asn_SPC_SgNBCounterCheckRequest_IEs_specs_501 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_508[] = { - { ATF_NOFLAGS, 0, offsetof(struct SgNBChangeRequired_IEs__value, choice.UE_X2AP_ID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_UE_X2AP_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "UE-X2AP-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBChangeRequired_IEs__value, choice.SgNB_UE_X2AP_ID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_SgNB_UE_X2AP_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "SgNB-UE-X2AP-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBChangeRequired_IEs__value, choice.GlobalGNB_ID), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_GlobalGNB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "GlobalGNB-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBChangeRequired_IEs__value, choice.Cause), - -1 /* Ambiguous tag (CHOICE?) */, - 0, - &asn_DEF_Cause, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "Cause" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBChangeRequired_IEs__value, choice.SgNBtoMeNBContainer), - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), - 0, - &asn_DEF_SgNBtoMeNBContainer, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "SgNBtoMeNBContainer" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBChangeRequired_IEs__value, choice.UE_X2AP_ID_Extension), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_UE_X2AP_ID_Extension, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "UE-X2AP-ID-Extension" - }, -}; -static const unsigned asn_MAP_value_to_canonical_508[] = { 0, 1, 5, 4, 2, 3 }; -static const unsigned asn_MAP_value_from_canonical_508[] = { 0, 1, 4, 5, 3, 2 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_508[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 2 }, /* UE-X2AP-ID */ - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 1 }, /* SgNB-UE-X2AP-ID */ - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 5, -2, 0 }, /* UE-X2AP-ID-Extension */ - { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 4, 0, 0 }, /* SgNBtoMeNBContainer */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, 0, 0 }, /* GlobalGNB-ID */ - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 3, 0, 0 }, /* radioNetwork */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 3, 0, 0 }, /* transport */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 3, 0, 0 }, /* protocol */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* misc */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_508 = { - sizeof(struct SgNBChangeRequired_IEs__value), - offsetof(struct SgNBChangeRequired_IEs__value, _asn_ctx), - offsetof(struct SgNBChangeRequired_IEs__value, present), - sizeof(((struct SgNBChangeRequired_IEs__value *)0)->present), - asn_MAP_value_tag2el_508, - 9, /* Count of tags in the map */ - asn_MAP_value_to_canonical_508, - asn_MAP_value_from_canonical_508, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_508 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_508, - 6, /* Elements count */ - &asn_SPC_value_specs_508 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_SgNBChangeRequired_IEs_505[] = { - { ATF_NOFLAGS, 0, offsetof(struct SgNBChangeRequired_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_506, memb_id_constraint_505 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBChangeRequired_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_SgNBChangeRequired_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_507, memb_criticality_constraint_505 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SgNBChangeRequired_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_508, - select_SgNBChangeRequired_IEs_value_type, - { 0, &asn_PER_memb_value_constr_508, memb_value_constraint_505 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_SgNBChangeRequired_IEs_tags_505[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_SgNBChangeRequired_IEs_tag2el_505[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_SgNBChangeRequired_IEs_specs_505 = { - sizeof(struct SgNBChangeRequired_IEs), - offsetof(struct SgNBChangeRequired_IEs, _asn_ctx), - asn_MAP_SgNBChangeRequired_IEs_tag2el_505, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_SgNBChangeRequired_IEs = { - "SgNBChangeRequired-IEs", - "SgNBChangeRequired-IEs", - &asn_OP_SEQUENCE, - asn_DEF_SgNBChangeRequired_IEs_tags_505, - sizeof(asn_DEF_SgNBChangeRequired_IEs_tags_505) - /sizeof(asn_DEF_SgNBChangeRequired_IEs_tags_505[0]), /* 1 */ - asn_DEF_SgNBChangeRequired_IEs_tags_505, /* Same as above */ - sizeof(asn_DEF_SgNBChangeRequired_IEs_tags_505) - /sizeof(asn_DEF_SgNBChangeRequired_IEs_tags_505[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_SgNBChangeRequired_IEs_505, - 3, /* Elements count */ - &asn_SPC_SgNBChangeRequired_IEs_specs_505 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_512[] = { - { ATF_NOFLAGS, 0, offsetof(struct SgNBChangeConfirm_IEs__value, choice.UE_X2AP_ID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_UE_X2AP_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "UE-X2AP-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBChangeConfirm_IEs__value, choice.SgNB_UE_X2AP_ID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_SgNB_UE_X2AP_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "SgNB-UE-X2AP-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBChangeConfirm_IEs__value, choice.E_RABs_ToBeReleased_SgNBChaConfList), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RABs_ToBeReleased_SgNBChaConfList, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "E-RABs-ToBeReleased-SgNBChaConfList" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBChangeConfirm_IEs__value, choice.CriticalityDiagnostics), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CriticalityDiagnostics, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "CriticalityDiagnostics" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBChangeConfirm_IEs__value, choice.UE_X2AP_ID_Extension), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_UE_X2AP_ID_Extension, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "UE-X2AP-ID-Extension" - }, -}; -static const unsigned asn_MAP_value_to_canonical_512[] = { 0, 1, 4, 2, 3 }; -static const unsigned asn_MAP_value_from_canonical_512[] = { 0, 1, 3, 4, 2 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_512[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 2 }, /* UE-X2AP-ID */ - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 1 }, /* SgNB-UE-X2AP-ID */ - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 4, -2, 0 }, /* UE-X2AP-ID-Extension */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, 0, 1 }, /* E-RABs-ToBeReleased-SgNBChaConfList */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -1, 0 } /* CriticalityDiagnostics */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_512 = { - sizeof(struct SgNBChangeConfirm_IEs__value), - offsetof(struct SgNBChangeConfirm_IEs__value, _asn_ctx), - offsetof(struct SgNBChangeConfirm_IEs__value, present), - sizeof(((struct SgNBChangeConfirm_IEs__value *)0)->present), - asn_MAP_value_tag2el_512, - 5, /* Count of tags in the map */ - asn_MAP_value_to_canonical_512, - asn_MAP_value_from_canonical_512, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_512 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_512, - 5, /* Elements count */ - &asn_SPC_value_specs_512 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_SgNBChangeConfirm_IEs_509[] = { - { ATF_NOFLAGS, 0, offsetof(struct SgNBChangeConfirm_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_510, memb_id_constraint_509 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBChangeConfirm_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_SgNBChangeConfirm_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_511, memb_criticality_constraint_509 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SgNBChangeConfirm_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_512, - select_SgNBChangeConfirm_IEs_value_type, - { 0, &asn_PER_memb_value_constr_512, memb_value_constraint_509 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_SgNBChangeConfirm_IEs_tags_509[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_SgNBChangeConfirm_IEs_tag2el_509[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_SgNBChangeConfirm_IEs_specs_509 = { - sizeof(struct SgNBChangeConfirm_IEs), - offsetof(struct SgNBChangeConfirm_IEs, _asn_ctx), - asn_MAP_SgNBChangeConfirm_IEs_tag2el_509, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_SgNBChangeConfirm_IEs = { - "SgNBChangeConfirm-IEs", - "SgNBChangeConfirm-IEs", - &asn_OP_SEQUENCE, - asn_DEF_SgNBChangeConfirm_IEs_tags_509, - sizeof(asn_DEF_SgNBChangeConfirm_IEs_tags_509) - /sizeof(asn_DEF_SgNBChangeConfirm_IEs_tags_509[0]), /* 1 */ - asn_DEF_SgNBChangeConfirm_IEs_tags_509, /* Same as above */ - sizeof(asn_DEF_SgNBChangeConfirm_IEs_tags_509) - /sizeof(asn_DEF_SgNBChangeConfirm_IEs_tags_509[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_SgNBChangeConfirm_IEs_509, - 3, /* Elements count */ - &asn_SPC_SgNBChangeConfirm_IEs_specs_509 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_516[] = { - { ATF_NOFLAGS, 0, offsetof(struct RRCTransfer_IEs__value, choice.UE_X2AP_ID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_UE_X2AP_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "UE-X2AP-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RRCTransfer_IEs__value, choice.SgNB_UE_X2AP_ID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_SgNB_UE_X2AP_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "SgNB-UE-X2AP-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RRCTransfer_IEs__value, choice.SplitSRB), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_SplitSRB, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "SplitSRB" - }, - { ATF_NOFLAGS, 0, offsetof(struct RRCTransfer_IEs__value, choice.UENRMeasurement), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_UENRMeasurement, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "UENRMeasurement" - }, - { ATF_NOFLAGS, 0, offsetof(struct RRCTransfer_IEs__value, choice.UE_X2AP_ID_Extension), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_UE_X2AP_ID_Extension, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "UE-X2AP-ID-Extension" - }, -}; -static const unsigned asn_MAP_value_to_canonical_516[] = { 0, 1, 4, 2, 3 }; -static const unsigned asn_MAP_value_from_canonical_516[] = { 0, 1, 3, 4, 2 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_516[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 2 }, /* UE-X2AP-ID */ - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 1 }, /* SgNB-UE-X2AP-ID */ - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 4, -2, 0 }, /* UE-X2AP-ID-Extension */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, 0, 1 }, /* SplitSRB */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -1, 0 } /* UENRMeasurement */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_516 = { - sizeof(struct RRCTransfer_IEs__value), - offsetof(struct RRCTransfer_IEs__value, _asn_ctx), - offsetof(struct RRCTransfer_IEs__value, present), - sizeof(((struct RRCTransfer_IEs__value *)0)->present), - asn_MAP_value_tag2el_516, - 5, /* Count of tags in the map */ - asn_MAP_value_to_canonical_516, - asn_MAP_value_from_canonical_516, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_516 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_516, - 5, /* Elements count */ - &asn_SPC_value_specs_516 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_RRCTransfer_IEs_513[] = { - { ATF_NOFLAGS, 0, offsetof(struct RRCTransfer_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_514, memb_id_constraint_513 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct RRCTransfer_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_RRCTransfer_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_515, memb_criticality_constraint_513 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RRCTransfer_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_516, - select_RRCTransfer_IEs_value_type, - { 0, &asn_PER_memb_value_constr_516, memb_value_constraint_513 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_RRCTransfer_IEs_tags_513[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RRCTransfer_IEs_tag2el_513[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RRCTransfer_IEs_specs_513 = { - sizeof(struct RRCTransfer_IEs), - offsetof(struct RRCTransfer_IEs, _asn_ctx), - asn_MAP_RRCTransfer_IEs_tag2el_513, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RRCTransfer_IEs = { - "RRCTransfer-IEs", - "RRCTransfer-IEs", - &asn_OP_SEQUENCE, - asn_DEF_RRCTransfer_IEs_tags_513, - sizeof(asn_DEF_RRCTransfer_IEs_tags_513) - /sizeof(asn_DEF_RRCTransfer_IEs_tags_513[0]), /* 1 */ - asn_DEF_RRCTransfer_IEs_tags_513, /* Same as above */ - sizeof(asn_DEF_RRCTransfer_IEs_tags_513) - /sizeof(asn_DEF_RRCTransfer_IEs_tags_513[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RRCTransfer_IEs_513, - 3, /* Elements count */ - &asn_SPC_RRCTransfer_IEs_specs_513 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_520[] = { - { ATF_NOFLAGS, 0, offsetof(struct SgNBChangeRefuse_IEs__value, choice.UE_X2AP_ID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_UE_X2AP_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "UE-X2AP-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBChangeRefuse_IEs__value, choice.SgNB_UE_X2AP_ID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_SgNB_UE_X2AP_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "SgNB-UE-X2AP-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBChangeRefuse_IEs__value, choice.Cause), - -1 /* Ambiguous tag (CHOICE?) */, - 0, - &asn_DEF_Cause, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "Cause" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBChangeRefuse_IEs__value, choice.CriticalityDiagnostics), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CriticalityDiagnostics, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "CriticalityDiagnostics" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBChangeRefuse_IEs__value, choice.UE_X2AP_ID_Extension), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_UE_X2AP_ID_Extension, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "UE-X2AP-ID-Extension" - }, -}; -static const unsigned asn_MAP_value_to_canonical_520[] = { 0, 1, 4, 3, 2 }; -static const unsigned asn_MAP_value_from_canonical_520[] = { 0, 1, 4, 3, 2 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_520[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 2 }, /* UE-X2AP-ID */ - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 1 }, /* SgNB-UE-X2AP-ID */ - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 4, -2, 0 }, /* UE-X2AP-ID-Extension */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, 0, 0 }, /* CriticalityDiagnostics */ - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 2, 0, 0 }, /* radioNetwork */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 2, 0, 0 }, /* transport */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* protocol */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 2, 0, 0 } /* misc */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_520 = { - sizeof(struct SgNBChangeRefuse_IEs__value), - offsetof(struct SgNBChangeRefuse_IEs__value, _asn_ctx), - offsetof(struct SgNBChangeRefuse_IEs__value, present), - sizeof(((struct SgNBChangeRefuse_IEs__value *)0)->present), - asn_MAP_value_tag2el_520, - 8, /* Count of tags in the map */ - asn_MAP_value_to_canonical_520, - asn_MAP_value_from_canonical_520, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_520 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_520, - 5, /* Elements count */ - &asn_SPC_value_specs_520 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_SgNBChangeRefuse_IEs_517[] = { - { ATF_NOFLAGS, 0, offsetof(struct SgNBChangeRefuse_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_518, memb_id_constraint_517 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBChangeRefuse_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_SgNBChangeRefuse_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_519, memb_criticality_constraint_517 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SgNBChangeRefuse_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_520, - select_SgNBChangeRefuse_IEs_value_type, - { 0, &asn_PER_memb_value_constr_520, memb_value_constraint_517 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_SgNBChangeRefuse_IEs_tags_517[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_SgNBChangeRefuse_IEs_tag2el_517[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_SgNBChangeRefuse_IEs_specs_517 = { - sizeof(struct SgNBChangeRefuse_IEs), - offsetof(struct SgNBChangeRefuse_IEs, _asn_ctx), - asn_MAP_SgNBChangeRefuse_IEs_tag2el_517, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_SgNBChangeRefuse_IEs = { - "SgNBChangeRefuse-IEs", - "SgNBChangeRefuse-IEs", - &asn_OP_SEQUENCE, - asn_DEF_SgNBChangeRefuse_IEs_tags_517, - sizeof(asn_DEF_SgNBChangeRefuse_IEs_tags_517) - /sizeof(asn_DEF_SgNBChangeRefuse_IEs_tags_517[0]), /* 1 */ - asn_DEF_SgNBChangeRefuse_IEs_tags_517, /* Same as above */ - sizeof(asn_DEF_SgNBChangeRefuse_IEs_tags_517) - /sizeof(asn_DEF_SgNBChangeRefuse_IEs_tags_517[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_SgNBChangeRefuse_IEs_517, - 3, /* Elements count */ - &asn_SPC_SgNBChangeRefuse_IEs_specs_517 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_524[] = { - { ATF_NOFLAGS, 0, offsetof(struct ENDCX2SetupRequest_IEs__value, choice.InitiatingNodeType_EndcX2Setup), - -1 /* Ambiguous tag (CHOICE?) */, - 0, - &asn_DEF_InitiatingNodeType_EndcX2Setup, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "InitiatingNodeType-EndcX2Setup" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_524[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* init-eNB */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 0, 0, 0 } /* init-en-gNB */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_524 = { - sizeof(struct ENDCX2SetupRequest_IEs__value), - offsetof(struct ENDCX2SetupRequest_IEs__value, _asn_ctx), - offsetof(struct ENDCX2SetupRequest_IEs__value, present), - sizeof(((struct ENDCX2SetupRequest_IEs__value *)0)->present), - asn_MAP_value_tag2el_524, - 2, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_524 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_524, - 1, /* Elements count */ - &asn_SPC_value_specs_524 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ENDCX2SetupRequest_IEs_521[] = { - { ATF_NOFLAGS, 0, offsetof(struct ENDCX2SetupRequest_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_522, memb_id_constraint_521 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct ENDCX2SetupRequest_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_ENDCX2SetupRequest_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_523, memb_criticality_constraint_521 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ENDCX2SetupRequest_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_524, - select_ENDCX2SetupRequest_IEs_value_type, - { 0, &asn_PER_memb_value_constr_524, memb_value_constraint_521 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_ENDCX2SetupRequest_IEs_tags_521[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ENDCX2SetupRequest_IEs_tag2el_521[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ENDCX2SetupRequest_IEs_specs_521 = { - sizeof(struct ENDCX2SetupRequest_IEs), - offsetof(struct ENDCX2SetupRequest_IEs, _asn_ctx), - asn_MAP_ENDCX2SetupRequest_IEs_tag2el_521, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ENDCX2SetupRequest_IEs = { - "ENDCX2SetupRequest-IEs", - "ENDCX2SetupRequest-IEs", - &asn_OP_SEQUENCE, - asn_DEF_ENDCX2SetupRequest_IEs_tags_521, - sizeof(asn_DEF_ENDCX2SetupRequest_IEs_tags_521) - /sizeof(asn_DEF_ENDCX2SetupRequest_IEs_tags_521[0]), /* 1 */ - asn_DEF_ENDCX2SetupRequest_IEs_tags_521, /* Same as above */ - sizeof(asn_DEF_ENDCX2SetupRequest_IEs_tags_521) - /sizeof(asn_DEF_ENDCX2SetupRequest_IEs_tags_521[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ENDCX2SetupRequest_IEs_521, - 3, /* Elements count */ - &asn_SPC_ENDCX2SetupRequest_IEs_specs_521 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_528[] = { - { ATF_NOFLAGS, 0, offsetof(struct ENB_ENDCX2SetupReqIEs__value, choice.GlobalENB_ID), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_GlobalENB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "GlobalENB-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct ENB_ENDCX2SetupReqIEs__value, choice.ServedEUTRAcellsENDCX2ManagementList), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ServedEUTRAcellsENDCX2ManagementList, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ServedEUTRAcellsENDCX2ManagementList" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_528[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 1 }, /* GlobalENB-ID */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 0 } /* ServedEUTRAcellsENDCX2ManagementList */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_528 = { - sizeof(struct ENB_ENDCX2SetupReqIEs__value), - offsetof(struct ENB_ENDCX2SetupReqIEs__value, _asn_ctx), - offsetof(struct ENB_ENDCX2SetupReqIEs__value, present), - sizeof(((struct ENB_ENDCX2SetupReqIEs__value *)0)->present), - asn_MAP_value_tag2el_528, - 2, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_528 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_528, - 2, /* Elements count */ - &asn_SPC_value_specs_528 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ENB_ENDCX2SetupReqIEs_525[] = { - { ATF_NOFLAGS, 0, offsetof(struct ENB_ENDCX2SetupReqIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_526, memb_id_constraint_525 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct ENB_ENDCX2SetupReqIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_ENB_ENDCX2SetupReqIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_527, memb_criticality_constraint_525 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ENB_ENDCX2SetupReqIEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_528, - select_ENB_ENDCX2SetupReqIEs_value_type, - { 0, &asn_PER_memb_value_constr_528, memb_value_constraint_525 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_ENB_ENDCX2SetupReqIEs_tags_525[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ENB_ENDCX2SetupReqIEs_tag2el_525[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ENB_ENDCX2SetupReqIEs_specs_525 = { - sizeof(struct ENB_ENDCX2SetupReqIEs), - offsetof(struct ENB_ENDCX2SetupReqIEs, _asn_ctx), - asn_MAP_ENB_ENDCX2SetupReqIEs_tag2el_525, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ENB_ENDCX2SetupReqIEs = { - "ENB-ENDCX2SetupReqIEs", - "ENB-ENDCX2SetupReqIEs", - &asn_OP_SEQUENCE, - asn_DEF_ENB_ENDCX2SetupReqIEs_tags_525, - sizeof(asn_DEF_ENB_ENDCX2SetupReqIEs_tags_525) - /sizeof(asn_DEF_ENB_ENDCX2SetupReqIEs_tags_525[0]), /* 1 */ - asn_DEF_ENB_ENDCX2SetupReqIEs_tags_525, /* Same as above */ - sizeof(asn_DEF_ENB_ENDCX2SetupReqIEs_tags_525) - /sizeof(asn_DEF_ENB_ENDCX2SetupReqIEs_tags_525[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ENB_ENDCX2SetupReqIEs_525, - 3, /* Elements count */ - &asn_SPC_ENB_ENDCX2SetupReqIEs_specs_525 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_532[] = { - { ATF_NOFLAGS, 0, offsetof(struct En_gNB_ENDCX2SetupReqIEs__value, choice.GlobalGNB_ID), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_GlobalGNB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "GlobalGNB-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct En_gNB_ENDCX2SetupReqIEs__value, choice.ServedNRcellsENDCX2ManagementList), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ServedNRcellsENDCX2ManagementList, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ServedNRcellsENDCX2ManagementList" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_532[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 1 }, /* GlobalGNB-ID */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 0 } /* ServedNRcellsENDCX2ManagementList */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_532 = { - sizeof(struct En_gNB_ENDCX2SetupReqIEs__value), - offsetof(struct En_gNB_ENDCX2SetupReqIEs__value, _asn_ctx), - offsetof(struct En_gNB_ENDCX2SetupReqIEs__value, present), - sizeof(((struct En_gNB_ENDCX2SetupReqIEs__value *)0)->present), - asn_MAP_value_tag2el_532, - 2, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_532 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_532, - 2, /* Elements count */ - &asn_SPC_value_specs_532 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_En_gNB_ENDCX2SetupReqIEs_529[] = { - { ATF_NOFLAGS, 0, offsetof(struct En_gNB_ENDCX2SetupReqIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_530, memb_id_constraint_529 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct En_gNB_ENDCX2SetupReqIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_En_gNB_ENDCX2SetupReqIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_531, memb_criticality_constraint_529 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct En_gNB_ENDCX2SetupReqIEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_532, - select_En_gNB_ENDCX2SetupReqIEs_value_type, - { 0, &asn_PER_memb_value_constr_532, memb_value_constraint_529 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_En_gNB_ENDCX2SetupReqIEs_tags_529[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_En_gNB_ENDCX2SetupReqIEs_tag2el_529[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_En_gNB_ENDCX2SetupReqIEs_specs_529 = { - sizeof(struct En_gNB_ENDCX2SetupReqIEs), - offsetof(struct En_gNB_ENDCX2SetupReqIEs, _asn_ctx), - asn_MAP_En_gNB_ENDCX2SetupReqIEs_tag2el_529, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_En_gNB_ENDCX2SetupReqIEs = { - "En-gNB-ENDCX2SetupReqIEs", - "En-gNB-ENDCX2SetupReqIEs", - &asn_OP_SEQUENCE, - asn_DEF_En_gNB_ENDCX2SetupReqIEs_tags_529, - sizeof(asn_DEF_En_gNB_ENDCX2SetupReqIEs_tags_529) - /sizeof(asn_DEF_En_gNB_ENDCX2SetupReqIEs_tags_529[0]), /* 1 */ - asn_DEF_En_gNB_ENDCX2SetupReqIEs_tags_529, /* Same as above */ - sizeof(asn_DEF_En_gNB_ENDCX2SetupReqIEs_tags_529) - /sizeof(asn_DEF_En_gNB_ENDCX2SetupReqIEs_tags_529[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_En_gNB_ENDCX2SetupReqIEs_529, - 3, /* Elements count */ - &asn_SPC_En_gNB_ENDCX2SetupReqIEs_specs_529 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_536[] = { - { ATF_NOFLAGS, 0, offsetof(struct ENDCX2SetupResponse_IEs__value, choice.RespondingNodeType_EndcX2Setup), - -1 /* Ambiguous tag (CHOICE?) */, - 0, - &asn_DEF_RespondingNodeType_EndcX2Setup, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RespondingNodeType-EndcX2Setup" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_536[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* respond-eNB */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 0, 0, 0 } /* respond-en-gNB */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_536 = { - sizeof(struct ENDCX2SetupResponse_IEs__value), - offsetof(struct ENDCX2SetupResponse_IEs__value, _asn_ctx), - offsetof(struct ENDCX2SetupResponse_IEs__value, present), - sizeof(((struct ENDCX2SetupResponse_IEs__value *)0)->present), - asn_MAP_value_tag2el_536, - 2, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_536 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_536, - 1, /* Elements count */ - &asn_SPC_value_specs_536 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ENDCX2SetupResponse_IEs_533[] = { - { ATF_NOFLAGS, 0, offsetof(struct ENDCX2SetupResponse_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_534, memb_id_constraint_533 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct ENDCX2SetupResponse_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_ENDCX2SetupResponse_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_535, memb_criticality_constraint_533 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ENDCX2SetupResponse_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_536, - select_ENDCX2SetupResponse_IEs_value_type, - { 0, &asn_PER_memb_value_constr_536, memb_value_constraint_533 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_ENDCX2SetupResponse_IEs_tags_533[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ENDCX2SetupResponse_IEs_tag2el_533[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ENDCX2SetupResponse_IEs_specs_533 = { - sizeof(struct ENDCX2SetupResponse_IEs), - offsetof(struct ENDCX2SetupResponse_IEs, _asn_ctx), - asn_MAP_ENDCX2SetupResponse_IEs_tag2el_533, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ENDCX2SetupResponse_IEs = { - "ENDCX2SetupResponse-IEs", - "ENDCX2SetupResponse-IEs", - &asn_OP_SEQUENCE, - asn_DEF_ENDCX2SetupResponse_IEs_tags_533, - sizeof(asn_DEF_ENDCX2SetupResponse_IEs_tags_533) - /sizeof(asn_DEF_ENDCX2SetupResponse_IEs_tags_533[0]), /* 1 */ - asn_DEF_ENDCX2SetupResponse_IEs_tags_533, /* Same as above */ - sizeof(asn_DEF_ENDCX2SetupResponse_IEs_tags_533) - /sizeof(asn_DEF_ENDCX2SetupResponse_IEs_tags_533[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ENDCX2SetupResponse_IEs_533, - 3, /* Elements count */ - &asn_SPC_ENDCX2SetupResponse_IEs_specs_533 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_540[] = { - { ATF_NOFLAGS, 0, offsetof(struct ENB_ENDCX2SetupReqAckIEs__value, choice.GlobalENB_ID), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_GlobalENB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "GlobalENB-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct ENB_ENDCX2SetupReqAckIEs__value, choice.ServedEUTRAcellsENDCX2ManagementList), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ServedEUTRAcellsENDCX2ManagementList, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ServedEUTRAcellsENDCX2ManagementList" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_540[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 1 }, /* GlobalENB-ID */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 0 } /* ServedEUTRAcellsENDCX2ManagementList */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_540 = { - sizeof(struct ENB_ENDCX2SetupReqAckIEs__value), - offsetof(struct ENB_ENDCX2SetupReqAckIEs__value, _asn_ctx), - offsetof(struct ENB_ENDCX2SetupReqAckIEs__value, present), - sizeof(((struct ENB_ENDCX2SetupReqAckIEs__value *)0)->present), - asn_MAP_value_tag2el_540, - 2, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_540 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_540, - 2, /* Elements count */ - &asn_SPC_value_specs_540 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ENB_ENDCX2SetupReqAckIEs_537[] = { - { ATF_NOFLAGS, 0, offsetof(struct ENB_ENDCX2SetupReqAckIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_538, memb_id_constraint_537 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct ENB_ENDCX2SetupReqAckIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_ENB_ENDCX2SetupReqAckIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_539, memb_criticality_constraint_537 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ENB_ENDCX2SetupReqAckIEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_540, - select_ENB_ENDCX2SetupReqAckIEs_value_type, - { 0, &asn_PER_memb_value_constr_540, memb_value_constraint_537 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_ENB_ENDCX2SetupReqAckIEs_tags_537[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ENB_ENDCX2SetupReqAckIEs_tag2el_537[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ENB_ENDCX2SetupReqAckIEs_specs_537 = { - sizeof(struct ENB_ENDCX2SetupReqAckIEs), - offsetof(struct ENB_ENDCX2SetupReqAckIEs, _asn_ctx), - asn_MAP_ENB_ENDCX2SetupReqAckIEs_tag2el_537, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ENB_ENDCX2SetupReqAckIEs = { - "ENB-ENDCX2SetupReqAckIEs", - "ENB-ENDCX2SetupReqAckIEs", - &asn_OP_SEQUENCE, - asn_DEF_ENB_ENDCX2SetupReqAckIEs_tags_537, - sizeof(asn_DEF_ENB_ENDCX2SetupReqAckIEs_tags_537) - /sizeof(asn_DEF_ENB_ENDCX2SetupReqAckIEs_tags_537[0]), /* 1 */ - asn_DEF_ENB_ENDCX2SetupReqAckIEs_tags_537, /* Same as above */ - sizeof(asn_DEF_ENB_ENDCX2SetupReqAckIEs_tags_537) - /sizeof(asn_DEF_ENB_ENDCX2SetupReqAckIEs_tags_537[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ENB_ENDCX2SetupReqAckIEs_537, - 3, /* Elements count */ - &asn_SPC_ENB_ENDCX2SetupReqAckIEs_specs_537 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_544[] = { - { ATF_NOFLAGS, 0, offsetof(struct En_gNB_ENDCX2SetupReqAckIEs__value, choice.GlobalGNB_ID), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_GlobalGNB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "GlobalGNB-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct En_gNB_ENDCX2SetupReqAckIEs__value, choice.ServedNRcellsENDCX2ManagementList), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ServedNRcellsENDCX2ManagementList, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ServedNRcellsENDCX2ManagementList" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_544[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 1 }, /* GlobalGNB-ID */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 0 } /* ServedNRcellsENDCX2ManagementList */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_544 = { - sizeof(struct En_gNB_ENDCX2SetupReqAckIEs__value), - offsetof(struct En_gNB_ENDCX2SetupReqAckIEs__value, _asn_ctx), - offsetof(struct En_gNB_ENDCX2SetupReqAckIEs__value, present), - sizeof(((struct En_gNB_ENDCX2SetupReqAckIEs__value *)0)->present), - asn_MAP_value_tag2el_544, - 2, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_544 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_544, - 2, /* Elements count */ - &asn_SPC_value_specs_544 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_En_gNB_ENDCX2SetupReqAckIEs_541[] = { - { ATF_NOFLAGS, 0, offsetof(struct En_gNB_ENDCX2SetupReqAckIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_542, memb_id_constraint_541 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct En_gNB_ENDCX2SetupReqAckIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_En_gNB_ENDCX2SetupReqAckIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_543, memb_criticality_constraint_541 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct En_gNB_ENDCX2SetupReqAckIEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_544, - select_En_gNB_ENDCX2SetupReqAckIEs_value_type, - { 0, &asn_PER_memb_value_constr_544, memb_value_constraint_541 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_En_gNB_ENDCX2SetupReqAckIEs_tags_541[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_En_gNB_ENDCX2SetupReqAckIEs_tag2el_541[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_En_gNB_ENDCX2SetupReqAckIEs_specs_541 = { - sizeof(struct En_gNB_ENDCX2SetupReqAckIEs), - offsetof(struct En_gNB_ENDCX2SetupReqAckIEs, _asn_ctx), - asn_MAP_En_gNB_ENDCX2SetupReqAckIEs_tag2el_541, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_En_gNB_ENDCX2SetupReqAckIEs = { - "En-gNB-ENDCX2SetupReqAckIEs", - "En-gNB-ENDCX2SetupReqAckIEs", - &asn_OP_SEQUENCE, - asn_DEF_En_gNB_ENDCX2SetupReqAckIEs_tags_541, - sizeof(asn_DEF_En_gNB_ENDCX2SetupReqAckIEs_tags_541) - /sizeof(asn_DEF_En_gNB_ENDCX2SetupReqAckIEs_tags_541[0]), /* 1 */ - asn_DEF_En_gNB_ENDCX2SetupReqAckIEs_tags_541, /* Same as above */ - sizeof(asn_DEF_En_gNB_ENDCX2SetupReqAckIEs_tags_541) - /sizeof(asn_DEF_En_gNB_ENDCX2SetupReqAckIEs_tags_541[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_En_gNB_ENDCX2SetupReqAckIEs_541, - 3, /* Elements count */ - &asn_SPC_En_gNB_ENDCX2SetupReqAckIEs_specs_541 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_548[] = { - { ATF_NOFLAGS, 0, offsetof(struct ENDCX2SetupFailure_IEs__value, choice.Cause), - -1 /* Ambiguous tag (CHOICE?) */, - 0, - &asn_DEF_Cause, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "Cause" - }, - { ATF_NOFLAGS, 0, offsetof(struct ENDCX2SetupFailure_IEs__value, choice.CriticalityDiagnostics), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CriticalityDiagnostics, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "CriticalityDiagnostics" - }, - { ATF_NOFLAGS, 0, offsetof(struct ENDCX2SetupFailure_IEs__value, choice.TimeToWait), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_TimeToWait, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "TimeToWait" - }, -}; -static const unsigned asn_MAP_value_to_canonical_548[] = { 2, 1, 0 }; -static const unsigned asn_MAP_value_from_canonical_548[] = { 2, 1, 0 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_548[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 2, 0, 0 }, /* TimeToWait */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 0 }, /* CriticalityDiagnostics */ - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* radioNetwork */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 0, 0, 0 }, /* transport */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 0, 0, 0 }, /* protocol */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 0, 0, 0 } /* misc */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_548 = { - sizeof(struct ENDCX2SetupFailure_IEs__value), - offsetof(struct ENDCX2SetupFailure_IEs__value, _asn_ctx), - offsetof(struct ENDCX2SetupFailure_IEs__value, present), - sizeof(((struct ENDCX2SetupFailure_IEs__value *)0)->present), - asn_MAP_value_tag2el_548, - 6, /* Count of tags in the map */ - asn_MAP_value_to_canonical_548, - asn_MAP_value_from_canonical_548, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_548 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_548, - 3, /* Elements count */ - &asn_SPC_value_specs_548 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ENDCX2SetupFailure_IEs_545[] = { - { ATF_NOFLAGS, 0, offsetof(struct ENDCX2SetupFailure_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_546, memb_id_constraint_545 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct ENDCX2SetupFailure_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_ENDCX2SetupFailure_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_547, memb_criticality_constraint_545 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ENDCX2SetupFailure_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_548, - select_ENDCX2SetupFailure_IEs_value_type, - { 0, &asn_PER_memb_value_constr_548, memb_value_constraint_545 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_ENDCX2SetupFailure_IEs_tags_545[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ENDCX2SetupFailure_IEs_tag2el_545[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ENDCX2SetupFailure_IEs_specs_545 = { - sizeof(struct ENDCX2SetupFailure_IEs), - offsetof(struct ENDCX2SetupFailure_IEs, _asn_ctx), - asn_MAP_ENDCX2SetupFailure_IEs_tag2el_545, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ENDCX2SetupFailure_IEs = { - "ENDCX2SetupFailure-IEs", - "ENDCX2SetupFailure-IEs", - &asn_OP_SEQUENCE, - asn_DEF_ENDCX2SetupFailure_IEs_tags_545, - sizeof(asn_DEF_ENDCX2SetupFailure_IEs_tags_545) - /sizeof(asn_DEF_ENDCX2SetupFailure_IEs_tags_545[0]), /* 1 */ - asn_DEF_ENDCX2SetupFailure_IEs_tags_545, /* Same as above */ - sizeof(asn_DEF_ENDCX2SetupFailure_IEs_tags_545) - /sizeof(asn_DEF_ENDCX2SetupFailure_IEs_tags_545[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ENDCX2SetupFailure_IEs_545, - 3, /* Elements count */ - &asn_SPC_ENDCX2SetupFailure_IEs_specs_545 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_552[] = { - { ATF_NOFLAGS, 0, offsetof(struct ENDCConfigurationUpdate_IEs__value, choice.InitiatingNodeType_EndcConfigUpdate), - -1 /* Ambiguous tag (CHOICE?) */, - 0, - &asn_DEF_InitiatingNodeType_EndcConfigUpdate, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "InitiatingNodeType-EndcConfigUpdate" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_552[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* init-eNB */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 0, 0, 0 } /* init-en-gNB */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_552 = { - sizeof(struct ENDCConfigurationUpdate_IEs__value), - offsetof(struct ENDCConfigurationUpdate_IEs__value, _asn_ctx), - offsetof(struct ENDCConfigurationUpdate_IEs__value, present), - sizeof(((struct ENDCConfigurationUpdate_IEs__value *)0)->present), - asn_MAP_value_tag2el_552, - 2, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_552 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_552, - 1, /* Elements count */ - &asn_SPC_value_specs_552 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ENDCConfigurationUpdate_IEs_549[] = { - { ATF_NOFLAGS, 0, offsetof(struct ENDCConfigurationUpdate_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_550, memb_id_constraint_549 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct ENDCConfigurationUpdate_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_ENDCConfigurationUpdate_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_551, memb_criticality_constraint_549 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ENDCConfigurationUpdate_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_552, - select_ENDCConfigurationUpdate_IEs_value_type, - { 0, &asn_PER_memb_value_constr_552, memb_value_constraint_549 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_ENDCConfigurationUpdate_IEs_tags_549[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ENDCConfigurationUpdate_IEs_tag2el_549[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ENDCConfigurationUpdate_IEs_specs_549 = { - sizeof(struct ENDCConfigurationUpdate_IEs), - offsetof(struct ENDCConfigurationUpdate_IEs, _asn_ctx), - asn_MAP_ENDCConfigurationUpdate_IEs_tag2el_549, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ENDCConfigurationUpdate_IEs = { - "ENDCConfigurationUpdate-IEs", - "ENDCConfigurationUpdate-IEs", - &asn_OP_SEQUENCE, - asn_DEF_ENDCConfigurationUpdate_IEs_tags_549, - sizeof(asn_DEF_ENDCConfigurationUpdate_IEs_tags_549) - /sizeof(asn_DEF_ENDCConfigurationUpdate_IEs_tags_549[0]), /* 1 */ - asn_DEF_ENDCConfigurationUpdate_IEs_tags_549, /* Same as above */ - sizeof(asn_DEF_ENDCConfigurationUpdate_IEs_tags_549) - /sizeof(asn_DEF_ENDCConfigurationUpdate_IEs_tags_549[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ENDCConfigurationUpdate_IEs_549, - 3, /* Elements count */ - &asn_SPC_ENDCConfigurationUpdate_IEs_specs_549 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_556[] = { - { ATF_NOFLAGS, 0, offsetof(struct ENB_ENDCConfigUpdateIEs__value, choice.CellAssistanceInformation), - -1 /* Ambiguous tag (CHOICE?) */, - 0, - &asn_DEF_CellAssistanceInformation, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "CellAssistanceInformation" - }, - { ATF_NOFLAGS, 0, offsetof(struct ENB_ENDCConfigUpdateIEs__value, choice.ServedEUTRAcellsENDCX2ManagementList), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ServedEUTRAcellsENDCX2ManagementList, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ServedEUTRAcellsENDCX2ManagementList" - }, - { ATF_NOFLAGS, 0, offsetof(struct ENB_ENDCConfigUpdateIEs__value, choice.ServedEUTRAcellsToModifyListENDCConfUpd), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ServedEUTRAcellsToModifyListENDCConfUpd, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ServedEUTRAcellsToModifyListENDCConfUpd" - }, - { ATF_NOFLAGS, 0, offsetof(struct ENB_ENDCConfigUpdateIEs__value, choice.ServedEUTRAcellsToDeleteListENDCConfUpd), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ServedEUTRAcellsToDeleteListENDCConfUpd, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ServedEUTRAcellsToDeleteListENDCConfUpd" - }, -}; -static const unsigned asn_MAP_value_to_canonical_556[] = { 1, 2, 3, 0 }; -static const unsigned asn_MAP_value_from_canonical_556[] = { 3, 0, 1, 2 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_556[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 2 }, /* ServedEUTRAcellsENDCX2ManagementList */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -1, 1 }, /* ServedEUTRAcellsToModifyListENDCConfUpd */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -2, 0 }, /* ServedEUTRAcellsToDeleteListENDCConfUpd */ - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* limited-list */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 0, 0, 0 } /* full-list */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_556 = { - sizeof(struct ENB_ENDCConfigUpdateIEs__value), - offsetof(struct ENB_ENDCConfigUpdateIEs__value, _asn_ctx), - offsetof(struct ENB_ENDCConfigUpdateIEs__value, present), - sizeof(((struct ENB_ENDCConfigUpdateIEs__value *)0)->present), - asn_MAP_value_tag2el_556, - 5, /* Count of tags in the map */ - asn_MAP_value_to_canonical_556, - asn_MAP_value_from_canonical_556, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_556 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_556, - 4, /* Elements count */ - &asn_SPC_value_specs_556 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ENB_ENDCConfigUpdateIEs_553[] = { - { ATF_NOFLAGS, 0, offsetof(struct ENB_ENDCConfigUpdateIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_554, memb_id_constraint_553 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct ENB_ENDCConfigUpdateIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_ENB_ENDCConfigUpdateIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_555, memb_criticality_constraint_553 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ENB_ENDCConfigUpdateIEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_556, - select_ENB_ENDCConfigUpdateIEs_value_type, - { 0, &asn_PER_memb_value_constr_556, memb_value_constraint_553 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_ENB_ENDCConfigUpdateIEs_tags_553[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ENB_ENDCConfigUpdateIEs_tag2el_553[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ENB_ENDCConfigUpdateIEs_specs_553 = { - sizeof(struct ENB_ENDCConfigUpdateIEs), - offsetof(struct ENB_ENDCConfigUpdateIEs, _asn_ctx), - asn_MAP_ENB_ENDCConfigUpdateIEs_tag2el_553, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ENB_ENDCConfigUpdateIEs = { - "ENB-ENDCConfigUpdateIEs", - "ENB-ENDCConfigUpdateIEs", - &asn_OP_SEQUENCE, - asn_DEF_ENB_ENDCConfigUpdateIEs_tags_553, - sizeof(asn_DEF_ENB_ENDCConfigUpdateIEs_tags_553) - /sizeof(asn_DEF_ENB_ENDCConfigUpdateIEs_tags_553[0]), /* 1 */ - asn_DEF_ENB_ENDCConfigUpdateIEs_tags_553, /* Same as above */ - sizeof(asn_DEF_ENB_ENDCConfigUpdateIEs_tags_553) - /sizeof(asn_DEF_ENB_ENDCConfigUpdateIEs_tags_553[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ENB_ENDCConfigUpdateIEs_553, - 3, /* Elements count */ - &asn_SPC_ENB_ENDCConfigUpdateIEs_specs_553 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_560[] = { - { ATF_NOFLAGS, 0, offsetof(struct En_gNB_ENDCConfigUpdateIEs__value, choice.ServedNRcellsENDCX2ManagementList), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ServedNRcellsENDCX2ManagementList, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ServedNRcellsENDCX2ManagementList" - }, - { ATF_NOFLAGS, 0, offsetof(struct En_gNB_ENDCConfigUpdateIEs__value, choice.ServedNRcellsToModifyENDCConfUpdList), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ServedNRcellsToModifyENDCConfUpdList, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ServedNRcellsToModifyENDCConfUpdList" - }, - { ATF_NOFLAGS, 0, offsetof(struct En_gNB_ENDCConfigUpdateIEs__value, choice.ServedNRcellsToDeleteENDCConfUpdList), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ServedNRcellsToDeleteENDCConfUpdList, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ServedNRcellsToDeleteENDCConfUpdList" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_560[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 2 }, /* ServedNRcellsENDCX2ManagementList */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 1 }, /* ServedNRcellsToModifyENDCConfUpdList */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -2, 0 } /* ServedNRcellsToDeleteENDCConfUpdList */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_560 = { - sizeof(struct En_gNB_ENDCConfigUpdateIEs__value), - offsetof(struct En_gNB_ENDCConfigUpdateIEs__value, _asn_ctx), - offsetof(struct En_gNB_ENDCConfigUpdateIEs__value, present), - sizeof(((struct En_gNB_ENDCConfigUpdateIEs__value *)0)->present), - asn_MAP_value_tag2el_560, - 3, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_560 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_560, - 3, /* Elements count */ - &asn_SPC_value_specs_560 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_En_gNB_ENDCConfigUpdateIEs_557[] = { - { ATF_NOFLAGS, 0, offsetof(struct En_gNB_ENDCConfigUpdateIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_558, memb_id_constraint_557 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct En_gNB_ENDCConfigUpdateIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_En_gNB_ENDCConfigUpdateIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_559, memb_criticality_constraint_557 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct En_gNB_ENDCConfigUpdateIEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_560, - select_En_gNB_ENDCConfigUpdateIEs_value_type, - { 0, &asn_PER_memb_value_constr_560, memb_value_constraint_557 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_En_gNB_ENDCConfigUpdateIEs_tags_557[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_En_gNB_ENDCConfigUpdateIEs_tag2el_557[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_En_gNB_ENDCConfigUpdateIEs_specs_557 = { - sizeof(struct En_gNB_ENDCConfigUpdateIEs), - offsetof(struct En_gNB_ENDCConfigUpdateIEs, _asn_ctx), - asn_MAP_En_gNB_ENDCConfigUpdateIEs_tag2el_557, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_En_gNB_ENDCConfigUpdateIEs = { - "En-gNB-ENDCConfigUpdateIEs", - "En-gNB-ENDCConfigUpdateIEs", - &asn_OP_SEQUENCE, - asn_DEF_En_gNB_ENDCConfigUpdateIEs_tags_557, - sizeof(asn_DEF_En_gNB_ENDCConfigUpdateIEs_tags_557) - /sizeof(asn_DEF_En_gNB_ENDCConfigUpdateIEs_tags_557[0]), /* 1 */ - asn_DEF_En_gNB_ENDCConfigUpdateIEs_tags_557, /* Same as above */ - sizeof(asn_DEF_En_gNB_ENDCConfigUpdateIEs_tags_557) - /sizeof(asn_DEF_En_gNB_ENDCConfigUpdateIEs_tags_557[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_En_gNB_ENDCConfigUpdateIEs_557, - 3, /* Elements count */ - &asn_SPC_En_gNB_ENDCConfigUpdateIEs_specs_557 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_564[] = { - { ATF_NOFLAGS, 0, offsetof(struct ENDCConfigurationUpdateAcknowledge_IEs__value, choice.RespondingNodeType_EndcConfigUpdate), - -1 /* Ambiguous tag (CHOICE?) */, - 0, - &asn_DEF_RespondingNodeType_EndcConfigUpdate, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RespondingNodeType-EndcConfigUpdate" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_564[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* respond-eNB */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 0, 0, 0 } /* respond-en-gNB */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_564 = { - sizeof(struct ENDCConfigurationUpdateAcknowledge_IEs__value), - offsetof(struct ENDCConfigurationUpdateAcknowledge_IEs__value, _asn_ctx), - offsetof(struct ENDCConfigurationUpdateAcknowledge_IEs__value, present), - sizeof(((struct ENDCConfigurationUpdateAcknowledge_IEs__value *)0)->present), - asn_MAP_value_tag2el_564, - 2, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_564 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_564, - 1, /* Elements count */ - &asn_SPC_value_specs_564 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ENDCConfigurationUpdateAcknowledge_IEs_561[] = { - { ATF_NOFLAGS, 0, offsetof(struct ENDCConfigurationUpdateAcknowledge_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_562, memb_id_constraint_561 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct ENDCConfigurationUpdateAcknowledge_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_ENDCConfigurationUpdateAcknowledge_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_563, memb_criticality_constraint_561 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ENDCConfigurationUpdateAcknowledge_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_564, - select_ENDCConfigurationUpdateAcknowledge_IEs_value_type, - { 0, &asn_PER_memb_value_constr_564, memb_value_constraint_561 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_ENDCConfigurationUpdateAcknowledge_IEs_tags_561[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ENDCConfigurationUpdateAcknowledge_IEs_tag2el_561[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ENDCConfigurationUpdateAcknowledge_IEs_specs_561 = { - sizeof(struct ENDCConfigurationUpdateAcknowledge_IEs), - offsetof(struct ENDCConfigurationUpdateAcknowledge_IEs, _asn_ctx), - asn_MAP_ENDCConfigurationUpdateAcknowledge_IEs_tag2el_561, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ENDCConfigurationUpdateAcknowledge_IEs = { - "ENDCConfigurationUpdateAcknowledge-IEs", - "ENDCConfigurationUpdateAcknowledge-IEs", - &asn_OP_SEQUENCE, - asn_DEF_ENDCConfigurationUpdateAcknowledge_IEs_tags_561, - sizeof(asn_DEF_ENDCConfigurationUpdateAcknowledge_IEs_tags_561) - /sizeof(asn_DEF_ENDCConfigurationUpdateAcknowledge_IEs_tags_561[0]), /* 1 */ - asn_DEF_ENDCConfigurationUpdateAcknowledge_IEs_tags_561, /* Same as above */ - sizeof(asn_DEF_ENDCConfigurationUpdateAcknowledge_IEs_tags_561) - /sizeof(asn_DEF_ENDCConfigurationUpdateAcknowledge_IEs_tags_561[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ENDCConfigurationUpdateAcknowledge_IEs_561, - 3, /* Elements count */ - &asn_SPC_ENDCConfigurationUpdateAcknowledge_IEs_specs_561 /* Additional specs */ -}; - -static asn_CHOICE_specifics_t asn_SPC_value_specs_568 = { - sizeof(struct ENB_ENDCConfigUpdateAckIEs__value), - offsetof(struct ENB_ENDCConfigUpdateAckIEs__value, _asn_ctx), - offsetof(struct ENB_ENDCConfigUpdateAckIEs__value, present), - sizeof(((struct ENB_ENDCConfigUpdateAckIEs__value *)0)->present), - 0, /* No top level tags */ - 0, /* No tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_568 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - 0, 0, /* No members */ - &asn_SPC_value_specs_568 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ENB_ENDCConfigUpdateAckIEs_565[] = { - { ATF_NOFLAGS, 0, offsetof(struct ENB_ENDCConfigUpdateAckIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_566, memb_id_constraint_565 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct ENB_ENDCConfigUpdateAckIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - 0, - { 0, &asn_PER_memb_criticality_constr_567, memb_criticality_constraint_565 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ENB_ENDCConfigUpdateAckIEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_568, - 0, - { 0, &asn_PER_memb_value_constr_568, memb_value_constraint_565 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_ENB_ENDCConfigUpdateAckIEs_tags_565[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ENB_ENDCConfigUpdateAckIEs_tag2el_565[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ENB_ENDCConfigUpdateAckIEs_specs_565 = { - sizeof(struct ENB_ENDCConfigUpdateAckIEs), - offsetof(struct ENB_ENDCConfigUpdateAckIEs, _asn_ctx), - asn_MAP_ENB_ENDCConfigUpdateAckIEs_tag2el_565, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ENB_ENDCConfigUpdateAckIEs = { - "ENB-ENDCConfigUpdateAckIEs", - "ENB-ENDCConfigUpdateAckIEs", - &asn_OP_SEQUENCE, - asn_DEF_ENB_ENDCConfigUpdateAckIEs_tags_565, - sizeof(asn_DEF_ENB_ENDCConfigUpdateAckIEs_tags_565) - /sizeof(asn_DEF_ENB_ENDCConfigUpdateAckIEs_tags_565[0]), /* 1 */ - asn_DEF_ENB_ENDCConfigUpdateAckIEs_tags_565, /* Same as above */ - sizeof(asn_DEF_ENB_ENDCConfigUpdateAckIEs_tags_565) - /sizeof(asn_DEF_ENB_ENDCConfigUpdateAckIEs_tags_565[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ENB_ENDCConfigUpdateAckIEs_565, - 3, /* Elements count */ - &asn_SPC_ENB_ENDCConfigUpdateAckIEs_specs_565 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_572[] = { - { ATF_NOFLAGS, 0, offsetof(struct En_gNB_ENDCConfigUpdateAckIEs__value, choice.ServedNRcellsENDCX2ManagementList), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ServedNRcellsENDCX2ManagementList, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ServedNRcellsENDCX2ManagementList" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_572[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* ServedNRcellsENDCX2ManagementList */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_572 = { - sizeof(struct En_gNB_ENDCConfigUpdateAckIEs__value), - offsetof(struct En_gNB_ENDCConfigUpdateAckIEs__value, _asn_ctx), - offsetof(struct En_gNB_ENDCConfigUpdateAckIEs__value, present), - sizeof(((struct En_gNB_ENDCConfigUpdateAckIEs__value *)0)->present), - asn_MAP_value_tag2el_572, - 1, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_572 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_572, - 1, /* Elements count */ - &asn_SPC_value_specs_572 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_En_gNB_ENDCConfigUpdateAckIEs_569[] = { - { ATF_NOFLAGS, 0, offsetof(struct En_gNB_ENDCConfigUpdateAckIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_570, memb_id_constraint_569 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct En_gNB_ENDCConfigUpdateAckIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_En_gNB_ENDCConfigUpdateAckIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_571, memb_criticality_constraint_569 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct En_gNB_ENDCConfigUpdateAckIEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_572, - select_En_gNB_ENDCConfigUpdateAckIEs_value_type, - { 0, &asn_PER_memb_value_constr_572, memb_value_constraint_569 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_En_gNB_ENDCConfigUpdateAckIEs_tags_569[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_En_gNB_ENDCConfigUpdateAckIEs_tag2el_569[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_En_gNB_ENDCConfigUpdateAckIEs_specs_569 = { - sizeof(struct En_gNB_ENDCConfigUpdateAckIEs), - offsetof(struct En_gNB_ENDCConfigUpdateAckIEs, _asn_ctx), - asn_MAP_En_gNB_ENDCConfigUpdateAckIEs_tag2el_569, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_En_gNB_ENDCConfigUpdateAckIEs = { - "En-gNB-ENDCConfigUpdateAckIEs", - "En-gNB-ENDCConfigUpdateAckIEs", - &asn_OP_SEQUENCE, - asn_DEF_En_gNB_ENDCConfigUpdateAckIEs_tags_569, - sizeof(asn_DEF_En_gNB_ENDCConfigUpdateAckIEs_tags_569) - /sizeof(asn_DEF_En_gNB_ENDCConfigUpdateAckIEs_tags_569[0]), /* 1 */ - asn_DEF_En_gNB_ENDCConfigUpdateAckIEs_tags_569, /* Same as above */ - sizeof(asn_DEF_En_gNB_ENDCConfigUpdateAckIEs_tags_569) - /sizeof(asn_DEF_En_gNB_ENDCConfigUpdateAckIEs_tags_569[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_En_gNB_ENDCConfigUpdateAckIEs_569, - 3, /* Elements count */ - &asn_SPC_En_gNB_ENDCConfigUpdateAckIEs_specs_569 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_576[] = { - { ATF_NOFLAGS, 0, offsetof(struct ENDCConfigurationUpdateFailure_IEs__value, choice.Cause), - -1 /* Ambiguous tag (CHOICE?) */, - 0, - &asn_DEF_Cause, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "Cause" - }, - { ATF_NOFLAGS, 0, offsetof(struct ENDCConfigurationUpdateFailure_IEs__value, choice.CriticalityDiagnostics), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CriticalityDiagnostics, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "CriticalityDiagnostics" - }, - { ATF_NOFLAGS, 0, offsetof(struct ENDCConfigurationUpdateFailure_IEs__value, choice.TimeToWait), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_TimeToWait, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "TimeToWait" - }, -}; -static const unsigned asn_MAP_value_to_canonical_576[] = { 2, 1, 0 }; -static const unsigned asn_MAP_value_from_canonical_576[] = { 2, 1, 0 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_576[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 2, 0, 0 }, /* TimeToWait */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 0 }, /* CriticalityDiagnostics */ - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* radioNetwork */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 0, 0, 0 }, /* transport */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 0, 0, 0 }, /* protocol */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 0, 0, 0 } /* misc */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_576 = { - sizeof(struct ENDCConfigurationUpdateFailure_IEs__value), - offsetof(struct ENDCConfigurationUpdateFailure_IEs__value, _asn_ctx), - offsetof(struct ENDCConfigurationUpdateFailure_IEs__value, present), - sizeof(((struct ENDCConfigurationUpdateFailure_IEs__value *)0)->present), - asn_MAP_value_tag2el_576, - 6, /* Count of tags in the map */ - asn_MAP_value_to_canonical_576, - asn_MAP_value_from_canonical_576, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_576 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_576, - 3, /* Elements count */ - &asn_SPC_value_specs_576 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ENDCConfigurationUpdateFailure_IEs_573[] = { - { ATF_NOFLAGS, 0, offsetof(struct ENDCConfigurationUpdateFailure_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_574, memb_id_constraint_573 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct ENDCConfigurationUpdateFailure_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_ENDCConfigurationUpdateFailure_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_575, memb_criticality_constraint_573 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ENDCConfigurationUpdateFailure_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_576, - select_ENDCConfigurationUpdateFailure_IEs_value_type, - { 0, &asn_PER_memb_value_constr_576, memb_value_constraint_573 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_ENDCConfigurationUpdateFailure_IEs_tags_573[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ENDCConfigurationUpdateFailure_IEs_tag2el_573[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ENDCConfigurationUpdateFailure_IEs_specs_573 = { - sizeof(struct ENDCConfigurationUpdateFailure_IEs), - offsetof(struct ENDCConfigurationUpdateFailure_IEs, _asn_ctx), - asn_MAP_ENDCConfigurationUpdateFailure_IEs_tag2el_573, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ENDCConfigurationUpdateFailure_IEs = { - "ENDCConfigurationUpdateFailure-IEs", - "ENDCConfigurationUpdateFailure-IEs", - &asn_OP_SEQUENCE, - asn_DEF_ENDCConfigurationUpdateFailure_IEs_tags_573, - sizeof(asn_DEF_ENDCConfigurationUpdateFailure_IEs_tags_573) - /sizeof(asn_DEF_ENDCConfigurationUpdateFailure_IEs_tags_573[0]), /* 1 */ - asn_DEF_ENDCConfigurationUpdateFailure_IEs_tags_573, /* Same as above */ - sizeof(asn_DEF_ENDCConfigurationUpdateFailure_IEs_tags_573) - /sizeof(asn_DEF_ENDCConfigurationUpdateFailure_IEs_tags_573[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ENDCConfigurationUpdateFailure_IEs_573, - 3, /* Elements count */ - &asn_SPC_ENDCConfigurationUpdateFailure_IEs_specs_573 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_580[] = { - { ATF_NOFLAGS, 0, offsetof(struct ENDCCellActivationRequest_IEs__value, choice.ServedNRCellsToActivate), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ServedNRCellsToActivate, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ServedNRCellsToActivate" - }, - { ATF_NOFLAGS, 0, offsetof(struct ENDCCellActivationRequest_IEs__value, choice.ActivationID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_ActivationID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ActivationID" - }, -}; -static const unsigned asn_MAP_value_to_canonical_580[] = { 1, 0 }; -static const unsigned asn_MAP_value_from_canonical_580[] = { 1, 0 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_580[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* ActivationID */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* ServedNRCellsToActivate */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_580 = { - sizeof(struct ENDCCellActivationRequest_IEs__value), - offsetof(struct ENDCCellActivationRequest_IEs__value, _asn_ctx), - offsetof(struct ENDCCellActivationRequest_IEs__value, present), - sizeof(((struct ENDCCellActivationRequest_IEs__value *)0)->present), - asn_MAP_value_tag2el_580, - 2, /* Count of tags in the map */ - asn_MAP_value_to_canonical_580, - asn_MAP_value_from_canonical_580, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_580 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_580, - 2, /* Elements count */ - &asn_SPC_value_specs_580 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ENDCCellActivationRequest_IEs_577[] = { - { ATF_NOFLAGS, 0, offsetof(struct ENDCCellActivationRequest_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_578, memb_id_constraint_577 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct ENDCCellActivationRequest_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_ENDCCellActivationRequest_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_579, memb_criticality_constraint_577 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ENDCCellActivationRequest_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_580, - select_ENDCCellActivationRequest_IEs_value_type, - { 0, &asn_PER_memb_value_constr_580, memb_value_constraint_577 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_ENDCCellActivationRequest_IEs_tags_577[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ENDCCellActivationRequest_IEs_tag2el_577[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ENDCCellActivationRequest_IEs_specs_577 = { - sizeof(struct ENDCCellActivationRequest_IEs), - offsetof(struct ENDCCellActivationRequest_IEs, _asn_ctx), - asn_MAP_ENDCCellActivationRequest_IEs_tag2el_577, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ENDCCellActivationRequest_IEs = { - "ENDCCellActivationRequest-IEs", - "ENDCCellActivationRequest-IEs", - &asn_OP_SEQUENCE, - asn_DEF_ENDCCellActivationRequest_IEs_tags_577, - sizeof(asn_DEF_ENDCCellActivationRequest_IEs_tags_577) - /sizeof(asn_DEF_ENDCCellActivationRequest_IEs_tags_577[0]), /* 1 */ - asn_DEF_ENDCCellActivationRequest_IEs_tags_577, /* Same as above */ - sizeof(asn_DEF_ENDCCellActivationRequest_IEs_tags_577) - /sizeof(asn_DEF_ENDCCellActivationRequest_IEs_tags_577[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ENDCCellActivationRequest_IEs_577, - 3, /* Elements count */ - &asn_SPC_ENDCCellActivationRequest_IEs_specs_577 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_584[] = { - { ATF_NOFLAGS, 0, offsetof(struct ENDCCellActivationResponse_IEs__value, choice.ActivatedNRCellList), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ActivatedNRCellList, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ActivatedNRCellList" - }, - { ATF_NOFLAGS, 0, offsetof(struct ENDCCellActivationResponse_IEs__value, choice.ActivationID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_ActivationID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ActivationID" - }, - { ATF_NOFLAGS, 0, offsetof(struct ENDCCellActivationResponse_IEs__value, choice.CriticalityDiagnostics), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CriticalityDiagnostics, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "CriticalityDiagnostics" - }, -}; -static const unsigned asn_MAP_value_to_canonical_584[] = { 1, 0, 2 }; -static const unsigned asn_MAP_value_from_canonical_584[] = { 1, 0, 2 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_584[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* ActivationID */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 1 }, /* ActivatedNRCellList */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -1, 0 } /* CriticalityDiagnostics */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_584 = { - sizeof(struct ENDCCellActivationResponse_IEs__value), - offsetof(struct ENDCCellActivationResponse_IEs__value, _asn_ctx), - offsetof(struct ENDCCellActivationResponse_IEs__value, present), - sizeof(((struct ENDCCellActivationResponse_IEs__value *)0)->present), - asn_MAP_value_tag2el_584, - 3, /* Count of tags in the map */ - asn_MAP_value_to_canonical_584, - asn_MAP_value_from_canonical_584, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_584 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_584, - 3, /* Elements count */ - &asn_SPC_value_specs_584 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ENDCCellActivationResponse_IEs_581[] = { - { ATF_NOFLAGS, 0, offsetof(struct ENDCCellActivationResponse_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_582, memb_id_constraint_581 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct ENDCCellActivationResponse_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_ENDCCellActivationResponse_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_583, memb_criticality_constraint_581 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ENDCCellActivationResponse_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_584, - select_ENDCCellActivationResponse_IEs_value_type, - { 0, &asn_PER_memb_value_constr_584, memb_value_constraint_581 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_ENDCCellActivationResponse_IEs_tags_581[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ENDCCellActivationResponse_IEs_tag2el_581[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ENDCCellActivationResponse_IEs_specs_581 = { - sizeof(struct ENDCCellActivationResponse_IEs), - offsetof(struct ENDCCellActivationResponse_IEs, _asn_ctx), - asn_MAP_ENDCCellActivationResponse_IEs_tag2el_581, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ENDCCellActivationResponse_IEs = { - "ENDCCellActivationResponse-IEs", - "ENDCCellActivationResponse-IEs", - &asn_OP_SEQUENCE, - asn_DEF_ENDCCellActivationResponse_IEs_tags_581, - sizeof(asn_DEF_ENDCCellActivationResponse_IEs_tags_581) - /sizeof(asn_DEF_ENDCCellActivationResponse_IEs_tags_581[0]), /* 1 */ - asn_DEF_ENDCCellActivationResponse_IEs_tags_581, /* Same as above */ - sizeof(asn_DEF_ENDCCellActivationResponse_IEs_tags_581) - /sizeof(asn_DEF_ENDCCellActivationResponse_IEs_tags_581[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ENDCCellActivationResponse_IEs_581, - 3, /* Elements count */ - &asn_SPC_ENDCCellActivationResponse_IEs_specs_581 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_588[] = { - { ATF_NOFLAGS, 0, offsetof(struct ENDCCellActivationFailure_IEs__value, choice.ActivationID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_ActivationID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ActivationID" - }, - { ATF_NOFLAGS, 0, offsetof(struct ENDCCellActivationFailure_IEs__value, choice.Cause), - -1 /* Ambiguous tag (CHOICE?) */, - 0, - &asn_DEF_Cause, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "Cause" - }, - { ATF_NOFLAGS, 0, offsetof(struct ENDCCellActivationFailure_IEs__value, choice.CriticalityDiagnostics), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CriticalityDiagnostics, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "CriticalityDiagnostics" - }, -}; -static const unsigned asn_MAP_value_to_canonical_588[] = { 0, 2, 1 }; -static const unsigned asn_MAP_value_from_canonical_588[] = { 0, 2, 1 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_588[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* ActivationID */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, 0, 0 }, /* CriticalityDiagnostics */ - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 1, 0, 0 }, /* radioNetwork */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* transport */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 1, 0, 0 }, /* protocol */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 1, 0, 0 } /* misc */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_588 = { - sizeof(struct ENDCCellActivationFailure_IEs__value), - offsetof(struct ENDCCellActivationFailure_IEs__value, _asn_ctx), - offsetof(struct ENDCCellActivationFailure_IEs__value, present), - sizeof(((struct ENDCCellActivationFailure_IEs__value *)0)->present), - asn_MAP_value_tag2el_588, - 6, /* Count of tags in the map */ - asn_MAP_value_to_canonical_588, - asn_MAP_value_from_canonical_588, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_588 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_588, - 3, /* Elements count */ - &asn_SPC_value_specs_588 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ENDCCellActivationFailure_IEs_585[] = { - { ATF_NOFLAGS, 0, offsetof(struct ENDCCellActivationFailure_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_586, memb_id_constraint_585 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct ENDCCellActivationFailure_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_ENDCCellActivationFailure_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_587, memb_criticality_constraint_585 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ENDCCellActivationFailure_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_588, - select_ENDCCellActivationFailure_IEs_value_type, - { 0, &asn_PER_memb_value_constr_588, memb_value_constraint_585 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_ENDCCellActivationFailure_IEs_tags_585[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ENDCCellActivationFailure_IEs_tag2el_585[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ENDCCellActivationFailure_IEs_specs_585 = { - sizeof(struct ENDCCellActivationFailure_IEs), - offsetof(struct ENDCCellActivationFailure_IEs, _asn_ctx), - asn_MAP_ENDCCellActivationFailure_IEs_tag2el_585, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ENDCCellActivationFailure_IEs = { - "ENDCCellActivationFailure-IEs", - "ENDCCellActivationFailure-IEs", - &asn_OP_SEQUENCE, - asn_DEF_ENDCCellActivationFailure_IEs_tags_585, - sizeof(asn_DEF_ENDCCellActivationFailure_IEs_tags_585) - /sizeof(asn_DEF_ENDCCellActivationFailure_IEs_tags_585[0]), /* 1 */ - asn_DEF_ENDCCellActivationFailure_IEs_tags_585, /* Same as above */ - sizeof(asn_DEF_ENDCCellActivationFailure_IEs_tags_585) - /sizeof(asn_DEF_ENDCCellActivationFailure_IEs_tags_585[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ENDCCellActivationFailure_IEs_585, - 3, /* Elements count */ - &asn_SPC_ENDCCellActivationFailure_IEs_specs_585 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_592[] = { - { ATF_NOFLAGS, 0, offsetof(struct SecondaryRATDataUsageReport_IEs__value, choice.UE_X2AP_ID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_UE_X2AP_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "UE-X2AP-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct SecondaryRATDataUsageReport_IEs__value, choice.SgNB_UE_X2AP_ID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_SgNB_UE_X2AP_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "SgNB-UE-X2AP-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct SecondaryRATDataUsageReport_IEs__value, choice.SecondaryRATUsageReportList), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_SecondaryRATUsageReportList, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "SecondaryRATUsageReportList" - }, - { ATF_NOFLAGS, 0, offsetof(struct SecondaryRATDataUsageReport_IEs__value, choice.UE_X2AP_ID_Extension), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_UE_X2AP_ID_Extension, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "UE-X2AP-ID-Extension" - }, -}; -static const unsigned asn_MAP_value_to_canonical_592[] = { 0, 1, 3, 2 }; -static const unsigned asn_MAP_value_from_canonical_592[] = { 0, 1, 3, 2 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_592[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 2 }, /* UE-X2AP-ID */ - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 1 }, /* SgNB-UE-X2AP-ID */ - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 3, -2, 0 }, /* UE-X2AP-ID-Extension */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, 0, 0 } /* SecondaryRATUsageReportList */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_592 = { - sizeof(struct SecondaryRATDataUsageReport_IEs__value), - offsetof(struct SecondaryRATDataUsageReport_IEs__value, _asn_ctx), - offsetof(struct SecondaryRATDataUsageReport_IEs__value, present), - sizeof(((struct SecondaryRATDataUsageReport_IEs__value *)0)->present), - asn_MAP_value_tag2el_592, - 4, /* Count of tags in the map */ - asn_MAP_value_to_canonical_592, - asn_MAP_value_from_canonical_592, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_592 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_592, - 4, /* Elements count */ - &asn_SPC_value_specs_592 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_SecondaryRATDataUsageReport_IEs_589[] = { - { ATF_NOFLAGS, 0, offsetof(struct SecondaryRATDataUsageReport_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_590, memb_id_constraint_589 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct SecondaryRATDataUsageReport_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_SecondaryRATDataUsageReport_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_591, memb_criticality_constraint_589 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SecondaryRATDataUsageReport_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_592, - select_SecondaryRATDataUsageReport_IEs_value_type, - { 0, &asn_PER_memb_value_constr_592, memb_value_constraint_589 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_SecondaryRATDataUsageReport_IEs_tags_589[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_SecondaryRATDataUsageReport_IEs_tag2el_589[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_SecondaryRATDataUsageReport_IEs_specs_589 = { - sizeof(struct SecondaryRATDataUsageReport_IEs), - offsetof(struct SecondaryRATDataUsageReport_IEs, _asn_ctx), - asn_MAP_SecondaryRATDataUsageReport_IEs_tag2el_589, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_SecondaryRATDataUsageReport_IEs = { - "SecondaryRATDataUsageReport-IEs", - "SecondaryRATDataUsageReport-IEs", - &asn_OP_SEQUENCE, - asn_DEF_SecondaryRATDataUsageReport_IEs_tags_589, - sizeof(asn_DEF_SecondaryRATDataUsageReport_IEs_tags_589) - /sizeof(asn_DEF_SecondaryRATDataUsageReport_IEs_tags_589[0]), /* 1 */ - asn_DEF_SecondaryRATDataUsageReport_IEs_tags_589, /* Same as above */ - sizeof(asn_DEF_SecondaryRATDataUsageReport_IEs_tags_589) - /sizeof(asn_DEF_SecondaryRATDataUsageReport_IEs_tags_589[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_SecondaryRATDataUsageReport_IEs_589, - 3, /* Elements count */ - &asn_SPC_SecondaryRATDataUsageReport_IEs_specs_589 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_596[] = { - { ATF_NOFLAGS, 0, offsetof(struct SgNBActivityNotification_IEs__value, choice.UE_X2AP_ID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_UE_X2AP_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "UE-X2AP-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBActivityNotification_IEs__value, choice.SgNB_UE_X2AP_ID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_SgNB_UE_X2AP_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "SgNB-UE-X2AP-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBActivityNotification_IEs__value, choice.UserPlaneTrafficActivityReport), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_UserPlaneTrafficActivityReport, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "UserPlaneTrafficActivityReport" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBActivityNotification_IEs__value, choice.ERABActivityNotifyItemList), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ERABActivityNotifyItemList, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ERABActivityNotifyItemList" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBActivityNotification_IEs__value, choice.UE_X2AP_ID_Extension), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_UE_X2AP_ID_Extension, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "UE-X2AP-ID-Extension" - }, -}; -static const unsigned asn_MAP_value_to_canonical_596[] = { 0, 1, 4, 2, 3 }; -static const unsigned asn_MAP_value_from_canonical_596[] = { 0, 1, 3, 4, 2 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_596[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 2 }, /* UE-X2AP-ID */ - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 1 }, /* SgNB-UE-X2AP-ID */ - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 4, -2, 0 }, /* UE-X2AP-ID-Extension */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 2, 0, 0 }, /* UserPlaneTrafficActivityReport */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, 0, 0 } /* ERABActivityNotifyItemList */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_596 = { - sizeof(struct SgNBActivityNotification_IEs__value), - offsetof(struct SgNBActivityNotification_IEs__value, _asn_ctx), - offsetof(struct SgNBActivityNotification_IEs__value, present), - sizeof(((struct SgNBActivityNotification_IEs__value *)0)->present), - asn_MAP_value_tag2el_596, - 5, /* Count of tags in the map */ - asn_MAP_value_to_canonical_596, - asn_MAP_value_from_canonical_596, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_596 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_596, - 5, /* Elements count */ - &asn_SPC_value_specs_596 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_SgNBActivityNotification_IEs_593[] = { - { ATF_NOFLAGS, 0, offsetof(struct SgNBActivityNotification_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_594, memb_id_constraint_593 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBActivityNotification_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_SgNBActivityNotification_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_595, memb_criticality_constraint_593 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SgNBActivityNotification_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_596, - select_SgNBActivityNotification_IEs_value_type, - { 0, &asn_PER_memb_value_constr_596, memb_value_constraint_593 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_SgNBActivityNotification_IEs_tags_593[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_SgNBActivityNotification_IEs_tag2el_593[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_SgNBActivityNotification_IEs_specs_593 = { - sizeof(struct SgNBActivityNotification_IEs), - offsetof(struct SgNBActivityNotification_IEs, _asn_ctx), - asn_MAP_SgNBActivityNotification_IEs_tag2el_593, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_SgNBActivityNotification_IEs = { - "SgNBActivityNotification-IEs", - "SgNBActivityNotification-IEs", - &asn_OP_SEQUENCE, - asn_DEF_SgNBActivityNotification_IEs_tags_593, - sizeof(asn_DEF_SgNBActivityNotification_IEs_tags_593) - /sizeof(asn_DEF_SgNBActivityNotification_IEs_tags_593[0]), /* 1 */ - asn_DEF_SgNBActivityNotification_IEs_tags_593, /* Same as above */ - sizeof(asn_DEF_SgNBActivityNotification_IEs_tags_593) - /sizeof(asn_DEF_SgNBActivityNotification_IEs_tags_593[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_SgNBActivityNotification_IEs_593, - 3, /* Elements count */ - &asn_SPC_SgNBActivityNotification_IEs_specs_593 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_600[] = { - { ATF_NOFLAGS, 0, offsetof(struct ENDCPartialResetRequired_IEs__value, choice.UEsToBeResetList), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_UEsToBeResetList, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "UEsToBeResetList" - }, - { ATF_NOFLAGS, 0, offsetof(struct ENDCPartialResetRequired_IEs__value, choice.Cause), - -1 /* Ambiguous tag (CHOICE?) */, - 0, - &asn_DEF_Cause, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "Cause" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_600[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 }, /* UEsToBeResetList */ - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 1, 0, 0 }, /* radioNetwork */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* transport */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 1, 0, 0 }, /* protocol */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 1, 0, 0 } /* misc */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_600 = { - sizeof(struct ENDCPartialResetRequired_IEs__value), - offsetof(struct ENDCPartialResetRequired_IEs__value, _asn_ctx), - offsetof(struct ENDCPartialResetRequired_IEs__value, present), - sizeof(((struct ENDCPartialResetRequired_IEs__value *)0)->present), - asn_MAP_value_tag2el_600, - 5, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_600 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_600, - 2, /* Elements count */ - &asn_SPC_value_specs_600 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ENDCPartialResetRequired_IEs_597[] = { - { ATF_NOFLAGS, 0, offsetof(struct ENDCPartialResetRequired_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_598, memb_id_constraint_597 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct ENDCPartialResetRequired_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_ENDCPartialResetRequired_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_599, memb_criticality_constraint_597 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ENDCPartialResetRequired_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_600, - select_ENDCPartialResetRequired_IEs_value_type, - { 0, &asn_PER_memb_value_constr_600, memb_value_constraint_597 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_ENDCPartialResetRequired_IEs_tags_597[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ENDCPartialResetRequired_IEs_tag2el_597[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ENDCPartialResetRequired_IEs_specs_597 = { - sizeof(struct ENDCPartialResetRequired_IEs), - offsetof(struct ENDCPartialResetRequired_IEs, _asn_ctx), - asn_MAP_ENDCPartialResetRequired_IEs_tag2el_597, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ENDCPartialResetRequired_IEs = { - "ENDCPartialResetRequired-IEs", - "ENDCPartialResetRequired-IEs", - &asn_OP_SEQUENCE, - asn_DEF_ENDCPartialResetRequired_IEs_tags_597, - sizeof(asn_DEF_ENDCPartialResetRequired_IEs_tags_597) - /sizeof(asn_DEF_ENDCPartialResetRequired_IEs_tags_597[0]), /* 1 */ - asn_DEF_ENDCPartialResetRequired_IEs_tags_597, /* Same as above */ - sizeof(asn_DEF_ENDCPartialResetRequired_IEs_tags_597) - /sizeof(asn_DEF_ENDCPartialResetRequired_IEs_tags_597[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ENDCPartialResetRequired_IEs_597, - 3, /* Elements count */ - &asn_SPC_ENDCPartialResetRequired_IEs_specs_597 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_604[] = { - { ATF_NOFLAGS, 0, offsetof(struct ENDCPartialResetConfirm_IEs__value, choice.UEsToBeResetList), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_UEsToBeResetList, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "UEsToBeResetList" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_604[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* UEsToBeResetList */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_604 = { - sizeof(struct ENDCPartialResetConfirm_IEs__value), - offsetof(struct ENDCPartialResetConfirm_IEs__value, _asn_ctx), - offsetof(struct ENDCPartialResetConfirm_IEs__value, present), - sizeof(((struct ENDCPartialResetConfirm_IEs__value *)0)->present), - asn_MAP_value_tag2el_604, - 1, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_604 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_604, - 1, /* Elements count */ - &asn_SPC_value_specs_604 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ENDCPartialResetConfirm_IEs_601[] = { - { ATF_NOFLAGS, 0, offsetof(struct ENDCPartialResetConfirm_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_602, memb_id_constraint_601 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct ENDCPartialResetConfirm_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_ENDCPartialResetConfirm_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_603, memb_criticality_constraint_601 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ENDCPartialResetConfirm_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_604, - select_ENDCPartialResetConfirm_IEs_value_type, - { 0, &asn_PER_memb_value_constr_604, memb_value_constraint_601 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_ENDCPartialResetConfirm_IEs_tags_601[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ENDCPartialResetConfirm_IEs_tag2el_601[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ENDCPartialResetConfirm_IEs_specs_601 = { - sizeof(struct ENDCPartialResetConfirm_IEs), - offsetof(struct ENDCPartialResetConfirm_IEs, _asn_ctx), - asn_MAP_ENDCPartialResetConfirm_IEs_tag2el_601, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ENDCPartialResetConfirm_IEs = { - "ENDCPartialResetConfirm-IEs", - "ENDCPartialResetConfirm-IEs", - &asn_OP_SEQUENCE, - asn_DEF_ENDCPartialResetConfirm_IEs_tags_601, - sizeof(asn_DEF_ENDCPartialResetConfirm_IEs_tags_601) - /sizeof(asn_DEF_ENDCPartialResetConfirm_IEs_tags_601[0]), /* 1 */ - asn_DEF_ENDCPartialResetConfirm_IEs_tags_601, /* Same as above */ - sizeof(asn_DEF_ENDCPartialResetConfirm_IEs_tags_601) - /sizeof(asn_DEF_ENDCPartialResetConfirm_IEs_tags_601[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ENDCPartialResetConfirm_IEs_601, - 3, /* Elements count */ - &asn_SPC_ENDCPartialResetConfirm_IEs_specs_601 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_608[] = { - { ATF_NOFLAGS, 0, offsetof(struct EUTRANRCellResourceCoordinationRequest_IEs__value, choice.InitiatingNodeType_EutranrCellResourceCoordination), - -1 /* Ambiguous tag (CHOICE?) */, - 0, - &asn_DEF_InitiatingNodeType_EutranrCellResourceCoordination, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "InitiatingNodeType-EutranrCellResourceCoordination" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_608[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* initiate-eNB */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 0, 0, 0 } /* initiate-en-gNB */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_608 = { - sizeof(struct EUTRANRCellResourceCoordinationRequest_IEs__value), - offsetof(struct EUTRANRCellResourceCoordinationRequest_IEs__value, _asn_ctx), - offsetof(struct EUTRANRCellResourceCoordinationRequest_IEs__value, present), - sizeof(((struct EUTRANRCellResourceCoordinationRequest_IEs__value *)0)->present), - asn_MAP_value_tag2el_608, - 2, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_608 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_608, - 1, /* Elements count */ - &asn_SPC_value_specs_608 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_EUTRANRCellResourceCoordinationRequest_IEs_605[] = { - { ATF_NOFLAGS, 0, offsetof(struct EUTRANRCellResourceCoordinationRequest_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_606, memb_id_constraint_605 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct EUTRANRCellResourceCoordinationRequest_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_EUTRANRCellResourceCoordinationRequest_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_607, memb_criticality_constraint_605 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct EUTRANRCellResourceCoordinationRequest_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_608, - select_EUTRANRCellResourceCoordinationRequest_IEs_value_type, - { 0, &asn_PER_memb_value_constr_608, memb_value_constraint_605 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_EUTRANRCellResourceCoordinationRequest_IEs_tags_605[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_EUTRANRCellResourceCoordinationRequest_IEs_tag2el_605[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_EUTRANRCellResourceCoordinationRequest_IEs_specs_605 = { - sizeof(struct EUTRANRCellResourceCoordinationRequest_IEs), - offsetof(struct EUTRANRCellResourceCoordinationRequest_IEs, _asn_ctx), - asn_MAP_EUTRANRCellResourceCoordinationRequest_IEs_tag2el_605, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_EUTRANRCellResourceCoordinationRequest_IEs = { - "EUTRANRCellResourceCoordinationRequest-IEs", - "EUTRANRCellResourceCoordinationRequest-IEs", - &asn_OP_SEQUENCE, - asn_DEF_EUTRANRCellResourceCoordinationRequest_IEs_tags_605, - sizeof(asn_DEF_EUTRANRCellResourceCoordinationRequest_IEs_tags_605) - /sizeof(asn_DEF_EUTRANRCellResourceCoordinationRequest_IEs_tags_605[0]), /* 1 */ - asn_DEF_EUTRANRCellResourceCoordinationRequest_IEs_tags_605, /* Same as above */ - sizeof(asn_DEF_EUTRANRCellResourceCoordinationRequest_IEs_tags_605) - /sizeof(asn_DEF_EUTRANRCellResourceCoordinationRequest_IEs_tags_605[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_EUTRANRCellResourceCoordinationRequest_IEs_605, - 3, /* Elements count */ - &asn_SPC_EUTRANRCellResourceCoordinationRequest_IEs_specs_605 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_612[] = { - { ATF_NOFLAGS, 0, offsetof(struct ENB_EUTRA_NRCellResourceCoordinationReqIEs__value, choice.DataTrafficResourceIndication), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_DataTrafficResourceIndication, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "DataTrafficResourceIndication" - }, - { ATF_NOFLAGS, 0, offsetof(struct ENB_EUTRA_NRCellResourceCoordinationReqIEs__value, choice.SpectrumSharingGroupID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_SpectrumSharingGroupID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "SpectrumSharingGroupID" - }, - { ATF_NOFLAGS, 0, offsetof(struct ENB_EUTRA_NRCellResourceCoordinationReqIEs__value, choice.ListofEUTRACellsinEUTRACoordinationReq), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ListofEUTRACellsinEUTRACoordinationReq, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ListofEUTRACellsinEUTRACoordinationReq" - }, -}; -static const unsigned asn_MAP_value_to_canonical_612[] = { 1, 0, 2 }; -static const unsigned asn_MAP_value_from_canonical_612[] = { 1, 0, 2 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_612[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* SpectrumSharingGroupID */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 1 }, /* DataTrafficResourceIndication */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -1, 0 } /* ListofEUTRACellsinEUTRACoordinationReq */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_612 = { - sizeof(struct ENB_EUTRA_NRCellResourceCoordinationReqIEs__value), - offsetof(struct ENB_EUTRA_NRCellResourceCoordinationReqIEs__value, _asn_ctx), - offsetof(struct ENB_EUTRA_NRCellResourceCoordinationReqIEs__value, present), - sizeof(((struct ENB_EUTRA_NRCellResourceCoordinationReqIEs__value *)0)->present), - asn_MAP_value_tag2el_612, - 3, /* Count of tags in the map */ - asn_MAP_value_to_canonical_612, - asn_MAP_value_from_canonical_612, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_612 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_612, - 3, /* Elements count */ - &asn_SPC_value_specs_612 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ENB_EUTRA_NRCellResourceCoordinationReqIEs_609[] = { - { ATF_NOFLAGS, 0, offsetof(struct ENB_EUTRA_NRCellResourceCoordinationReqIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_610, memb_id_constraint_609 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct ENB_EUTRA_NRCellResourceCoordinationReqIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_ENB_EUTRA_NRCellResourceCoordinationReqIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_611, memb_criticality_constraint_609 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ENB_EUTRA_NRCellResourceCoordinationReqIEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_612, - select_ENB_EUTRA_NRCellResourceCoordinationReqIEs_value_type, - { 0, &asn_PER_memb_value_constr_612, memb_value_constraint_609 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_ENB_EUTRA_NRCellResourceCoordinationReqIEs_tags_609[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ENB_EUTRA_NRCellResourceCoordinationReqIEs_tag2el_609[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ENB_EUTRA_NRCellResourceCoordinationReqIEs_specs_609 = { - sizeof(struct ENB_EUTRA_NRCellResourceCoordinationReqIEs), - offsetof(struct ENB_EUTRA_NRCellResourceCoordinationReqIEs, _asn_ctx), - asn_MAP_ENB_EUTRA_NRCellResourceCoordinationReqIEs_tag2el_609, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ENB_EUTRA_NRCellResourceCoordinationReqIEs = { - "ENB-EUTRA-NRCellResourceCoordinationReqIEs", - "ENB-EUTRA-NRCellResourceCoordinationReqIEs", - &asn_OP_SEQUENCE, - asn_DEF_ENB_EUTRA_NRCellResourceCoordinationReqIEs_tags_609, - sizeof(asn_DEF_ENB_EUTRA_NRCellResourceCoordinationReqIEs_tags_609) - /sizeof(asn_DEF_ENB_EUTRA_NRCellResourceCoordinationReqIEs_tags_609[0]), /* 1 */ - asn_DEF_ENB_EUTRA_NRCellResourceCoordinationReqIEs_tags_609, /* Same as above */ - sizeof(asn_DEF_ENB_EUTRA_NRCellResourceCoordinationReqIEs_tags_609) - /sizeof(asn_DEF_ENB_EUTRA_NRCellResourceCoordinationReqIEs_tags_609[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ENB_EUTRA_NRCellResourceCoordinationReqIEs_609, - 3, /* Elements count */ - &asn_SPC_ENB_EUTRA_NRCellResourceCoordinationReqIEs_specs_609 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_616[] = { - { ATF_NOFLAGS, 0, offsetof(struct En_gNB_EUTRA_NRCellResourceCoordinationReqIEs__value, choice.DataTrafficResourceIndication), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_DataTrafficResourceIndication, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "DataTrafficResourceIndication" - }, - { ATF_NOFLAGS, 0, offsetof(struct En_gNB_EUTRA_NRCellResourceCoordinationReqIEs__value, choice.ListofEUTRACellsinNRCoordinationReq), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ListofEUTRACellsinNRCoordinationReq, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ListofEUTRACellsinNRCoordinationReq" - }, - { ATF_NOFLAGS, 0, offsetof(struct En_gNB_EUTRA_NRCellResourceCoordinationReqIEs__value, choice.SpectrumSharingGroupID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_SpectrumSharingGroupID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "SpectrumSharingGroupID" - }, - { ATF_NOFLAGS, 0, offsetof(struct En_gNB_EUTRA_NRCellResourceCoordinationReqIEs__value, choice.ListofNRCellsinNRCoordinationReq), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ListofNRCellsinNRCoordinationReq, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ListofNRCellsinNRCoordinationReq" - }, -}; -static const unsigned asn_MAP_value_to_canonical_616[] = { 2, 0, 1, 3 }; -static const unsigned asn_MAP_value_from_canonical_616[] = { 1, 2, 0, 3 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_616[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 2, 0, 0 }, /* SpectrumSharingGroupID */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 2 }, /* DataTrafficResourceIndication */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 1 }, /* ListofEUTRACellsinNRCoordinationReq */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -2, 0 } /* ListofNRCellsinNRCoordinationReq */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_616 = { - sizeof(struct En_gNB_EUTRA_NRCellResourceCoordinationReqIEs__value), - offsetof(struct En_gNB_EUTRA_NRCellResourceCoordinationReqIEs__value, _asn_ctx), - offsetof(struct En_gNB_EUTRA_NRCellResourceCoordinationReqIEs__value, present), - sizeof(((struct En_gNB_EUTRA_NRCellResourceCoordinationReqIEs__value *)0)->present), - asn_MAP_value_tag2el_616, - 4, /* Count of tags in the map */ - asn_MAP_value_to_canonical_616, - asn_MAP_value_from_canonical_616, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_616 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_616, - 4, /* Elements count */ - &asn_SPC_value_specs_616 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_En_gNB_EUTRA_NRCellResourceCoordinationReqIEs_613[] = { - { ATF_NOFLAGS, 0, offsetof(struct En_gNB_EUTRA_NRCellResourceCoordinationReqIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_614, memb_id_constraint_613 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct En_gNB_EUTRA_NRCellResourceCoordinationReqIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_En_gNB_EUTRA_NRCellResourceCoordinationReqIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_615, memb_criticality_constraint_613 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct En_gNB_EUTRA_NRCellResourceCoordinationReqIEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_616, - select_En_gNB_EUTRA_NRCellResourceCoordinationReqIEs_value_type, - { 0, &asn_PER_memb_value_constr_616, memb_value_constraint_613 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_En_gNB_EUTRA_NRCellResourceCoordinationReqIEs_tags_613[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_En_gNB_EUTRA_NRCellResourceCoordinationReqIEs_tag2el_613[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_En_gNB_EUTRA_NRCellResourceCoordinationReqIEs_specs_613 = { - sizeof(struct En_gNB_EUTRA_NRCellResourceCoordinationReqIEs), - offsetof(struct En_gNB_EUTRA_NRCellResourceCoordinationReqIEs, _asn_ctx), - asn_MAP_En_gNB_EUTRA_NRCellResourceCoordinationReqIEs_tag2el_613, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_En_gNB_EUTRA_NRCellResourceCoordinationReqIEs = { - "En-gNB-EUTRA-NRCellResourceCoordinationReqIEs", - "En-gNB-EUTRA-NRCellResourceCoordinationReqIEs", - &asn_OP_SEQUENCE, - asn_DEF_En_gNB_EUTRA_NRCellResourceCoordinationReqIEs_tags_613, - sizeof(asn_DEF_En_gNB_EUTRA_NRCellResourceCoordinationReqIEs_tags_613) - /sizeof(asn_DEF_En_gNB_EUTRA_NRCellResourceCoordinationReqIEs_tags_613[0]), /* 1 */ - asn_DEF_En_gNB_EUTRA_NRCellResourceCoordinationReqIEs_tags_613, /* Same as above */ - sizeof(asn_DEF_En_gNB_EUTRA_NRCellResourceCoordinationReqIEs_tags_613) - /sizeof(asn_DEF_En_gNB_EUTRA_NRCellResourceCoordinationReqIEs_tags_613[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_En_gNB_EUTRA_NRCellResourceCoordinationReqIEs_613, - 3, /* Elements count */ - &asn_SPC_En_gNB_EUTRA_NRCellResourceCoordinationReqIEs_specs_613 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_620[] = { - { ATF_NOFLAGS, 0, offsetof(struct EUTRANRCellResourceCoordinationResponse_IEs__value, choice.RespondingNodeType_EutranrCellResourceCoordination), - -1 /* Ambiguous tag (CHOICE?) */, - 0, - &asn_DEF_RespondingNodeType_EutranrCellResourceCoordination, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RespondingNodeType-EutranrCellResourceCoordination" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_620[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* respond-eNB */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 0, 0, 0 } /* respond-en-gNB */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_620 = { - sizeof(struct EUTRANRCellResourceCoordinationResponse_IEs__value), - offsetof(struct EUTRANRCellResourceCoordinationResponse_IEs__value, _asn_ctx), - offsetof(struct EUTRANRCellResourceCoordinationResponse_IEs__value, present), - sizeof(((struct EUTRANRCellResourceCoordinationResponse_IEs__value *)0)->present), - asn_MAP_value_tag2el_620, - 2, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_620 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_620, - 1, /* Elements count */ - &asn_SPC_value_specs_620 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_EUTRANRCellResourceCoordinationResponse_IEs_617[] = { - { ATF_NOFLAGS, 0, offsetof(struct EUTRANRCellResourceCoordinationResponse_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_618, memb_id_constraint_617 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct EUTRANRCellResourceCoordinationResponse_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_EUTRANRCellResourceCoordinationResponse_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_619, memb_criticality_constraint_617 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct EUTRANRCellResourceCoordinationResponse_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_620, - select_EUTRANRCellResourceCoordinationResponse_IEs_value_type, - { 0, &asn_PER_memb_value_constr_620, memb_value_constraint_617 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_EUTRANRCellResourceCoordinationResponse_IEs_tags_617[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_EUTRANRCellResourceCoordinationResponse_IEs_tag2el_617[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_EUTRANRCellResourceCoordinationResponse_IEs_specs_617 = { - sizeof(struct EUTRANRCellResourceCoordinationResponse_IEs), - offsetof(struct EUTRANRCellResourceCoordinationResponse_IEs, _asn_ctx), - asn_MAP_EUTRANRCellResourceCoordinationResponse_IEs_tag2el_617, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_EUTRANRCellResourceCoordinationResponse_IEs = { - "EUTRANRCellResourceCoordinationResponse-IEs", - "EUTRANRCellResourceCoordinationResponse-IEs", - &asn_OP_SEQUENCE, - asn_DEF_EUTRANRCellResourceCoordinationResponse_IEs_tags_617, - sizeof(asn_DEF_EUTRANRCellResourceCoordinationResponse_IEs_tags_617) - /sizeof(asn_DEF_EUTRANRCellResourceCoordinationResponse_IEs_tags_617[0]), /* 1 */ - asn_DEF_EUTRANRCellResourceCoordinationResponse_IEs_tags_617, /* Same as above */ - sizeof(asn_DEF_EUTRANRCellResourceCoordinationResponse_IEs_tags_617) - /sizeof(asn_DEF_EUTRANRCellResourceCoordinationResponse_IEs_tags_617[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_EUTRANRCellResourceCoordinationResponse_IEs_617, - 3, /* Elements count */ - &asn_SPC_EUTRANRCellResourceCoordinationResponse_IEs_specs_617 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_624[] = { - { ATF_NOFLAGS, 0, offsetof(struct ENB_EUTRA_NRCellResourceCoordinationReqAckIEs__value, choice.DataTrafficResourceIndication), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_DataTrafficResourceIndication, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "DataTrafficResourceIndication" - }, - { ATF_NOFLAGS, 0, offsetof(struct ENB_EUTRA_NRCellResourceCoordinationReqAckIEs__value, choice.SpectrumSharingGroupID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_SpectrumSharingGroupID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "SpectrumSharingGroupID" - }, - { ATF_NOFLAGS, 0, offsetof(struct ENB_EUTRA_NRCellResourceCoordinationReqAckIEs__value, choice.ListofEUTRACellsinEUTRACoordinationResp), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ListofEUTRACellsinEUTRACoordinationResp, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ListofEUTRACellsinEUTRACoordinationResp" - }, -}; -static const unsigned asn_MAP_value_to_canonical_624[] = { 1, 0, 2 }; -static const unsigned asn_MAP_value_from_canonical_624[] = { 1, 0, 2 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_624[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* SpectrumSharingGroupID */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 1 }, /* DataTrafficResourceIndication */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -1, 0 } /* ListofEUTRACellsinEUTRACoordinationResp */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_624 = { - sizeof(struct ENB_EUTRA_NRCellResourceCoordinationReqAckIEs__value), - offsetof(struct ENB_EUTRA_NRCellResourceCoordinationReqAckIEs__value, _asn_ctx), - offsetof(struct ENB_EUTRA_NRCellResourceCoordinationReqAckIEs__value, present), - sizeof(((struct ENB_EUTRA_NRCellResourceCoordinationReqAckIEs__value *)0)->present), - asn_MAP_value_tag2el_624, - 3, /* Count of tags in the map */ - asn_MAP_value_to_canonical_624, - asn_MAP_value_from_canonical_624, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_624 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_624, - 3, /* Elements count */ - &asn_SPC_value_specs_624 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ENB_EUTRA_NRCellResourceCoordinationReqAckIEs_621[] = { - { ATF_NOFLAGS, 0, offsetof(struct ENB_EUTRA_NRCellResourceCoordinationReqAckIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_622, memb_id_constraint_621 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct ENB_EUTRA_NRCellResourceCoordinationReqAckIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_ENB_EUTRA_NRCellResourceCoordinationReqAckIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_623, memb_criticality_constraint_621 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ENB_EUTRA_NRCellResourceCoordinationReqAckIEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_624, - select_ENB_EUTRA_NRCellResourceCoordinationReqAckIEs_value_type, - { 0, &asn_PER_memb_value_constr_624, memb_value_constraint_621 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_ENB_EUTRA_NRCellResourceCoordinationReqAckIEs_tags_621[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ENB_EUTRA_NRCellResourceCoordinationReqAckIEs_tag2el_621[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ENB_EUTRA_NRCellResourceCoordinationReqAckIEs_specs_621 = { - sizeof(struct ENB_EUTRA_NRCellResourceCoordinationReqAckIEs), - offsetof(struct ENB_EUTRA_NRCellResourceCoordinationReqAckIEs, _asn_ctx), - asn_MAP_ENB_EUTRA_NRCellResourceCoordinationReqAckIEs_tag2el_621, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ENB_EUTRA_NRCellResourceCoordinationReqAckIEs = { - "ENB-EUTRA-NRCellResourceCoordinationReqAckIEs", - "ENB-EUTRA-NRCellResourceCoordinationReqAckIEs", - &asn_OP_SEQUENCE, - asn_DEF_ENB_EUTRA_NRCellResourceCoordinationReqAckIEs_tags_621, - sizeof(asn_DEF_ENB_EUTRA_NRCellResourceCoordinationReqAckIEs_tags_621) - /sizeof(asn_DEF_ENB_EUTRA_NRCellResourceCoordinationReqAckIEs_tags_621[0]), /* 1 */ - asn_DEF_ENB_EUTRA_NRCellResourceCoordinationReqAckIEs_tags_621, /* Same as above */ - sizeof(asn_DEF_ENB_EUTRA_NRCellResourceCoordinationReqAckIEs_tags_621) - /sizeof(asn_DEF_ENB_EUTRA_NRCellResourceCoordinationReqAckIEs_tags_621[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ENB_EUTRA_NRCellResourceCoordinationReqAckIEs_621, - 3, /* Elements count */ - &asn_SPC_ENB_EUTRA_NRCellResourceCoordinationReqAckIEs_specs_621 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_628[] = { - { ATF_NOFLAGS, 0, offsetof(struct En_gNB_EUTRA_NRCellResourceCoordinationReqAckIEs__value, choice.DataTrafficResourceIndication), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_DataTrafficResourceIndication, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "DataTrafficResourceIndication" - }, - { ATF_NOFLAGS, 0, offsetof(struct En_gNB_EUTRA_NRCellResourceCoordinationReqAckIEs__value, choice.SpectrumSharingGroupID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_SpectrumSharingGroupID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "SpectrumSharingGroupID" - }, - { ATF_NOFLAGS, 0, offsetof(struct En_gNB_EUTRA_NRCellResourceCoordinationReqAckIEs__value, choice.ListofNRCellsinNRCoordinationResp), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ListofNRCellsinNRCoordinationResp, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ListofNRCellsinNRCoordinationResp" - }, -}; -static const unsigned asn_MAP_value_to_canonical_628[] = { 1, 0, 2 }; -static const unsigned asn_MAP_value_from_canonical_628[] = { 1, 0, 2 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_628[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* SpectrumSharingGroupID */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 1 }, /* DataTrafficResourceIndication */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -1, 0 } /* ListofNRCellsinNRCoordinationResp */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_628 = { - sizeof(struct En_gNB_EUTRA_NRCellResourceCoordinationReqAckIEs__value), - offsetof(struct En_gNB_EUTRA_NRCellResourceCoordinationReqAckIEs__value, _asn_ctx), - offsetof(struct En_gNB_EUTRA_NRCellResourceCoordinationReqAckIEs__value, present), - sizeof(((struct En_gNB_EUTRA_NRCellResourceCoordinationReqAckIEs__value *)0)->present), - asn_MAP_value_tag2el_628, - 3, /* Count of tags in the map */ - asn_MAP_value_to_canonical_628, - asn_MAP_value_from_canonical_628, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_628 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_628, - 3, /* Elements count */ - &asn_SPC_value_specs_628 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_En_gNB_EUTRA_NRCellResourceCoordinationReqAckIEs_625[] = { - { ATF_NOFLAGS, 0, offsetof(struct En_gNB_EUTRA_NRCellResourceCoordinationReqAckIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_626, memb_id_constraint_625 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct En_gNB_EUTRA_NRCellResourceCoordinationReqAckIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_En_gNB_EUTRA_NRCellResourceCoordinationReqAckIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_627, memb_criticality_constraint_625 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct En_gNB_EUTRA_NRCellResourceCoordinationReqAckIEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_628, - select_En_gNB_EUTRA_NRCellResourceCoordinationReqAckIEs_value_type, - { 0, &asn_PER_memb_value_constr_628, memb_value_constraint_625 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_En_gNB_EUTRA_NRCellResourceCoordinationReqAckIEs_tags_625[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_En_gNB_EUTRA_NRCellResourceCoordinationReqAckIEs_tag2el_625[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_En_gNB_EUTRA_NRCellResourceCoordinationReqAckIEs_specs_625 = { - sizeof(struct En_gNB_EUTRA_NRCellResourceCoordinationReqAckIEs), - offsetof(struct En_gNB_EUTRA_NRCellResourceCoordinationReqAckIEs, _asn_ctx), - asn_MAP_En_gNB_EUTRA_NRCellResourceCoordinationReqAckIEs_tag2el_625, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_En_gNB_EUTRA_NRCellResourceCoordinationReqAckIEs = { - "En-gNB-EUTRA-NRCellResourceCoordinationReqAckIEs", - "En-gNB-EUTRA-NRCellResourceCoordinationReqAckIEs", - &asn_OP_SEQUENCE, - asn_DEF_En_gNB_EUTRA_NRCellResourceCoordinationReqAckIEs_tags_625, - sizeof(asn_DEF_En_gNB_EUTRA_NRCellResourceCoordinationReqAckIEs_tags_625) - /sizeof(asn_DEF_En_gNB_EUTRA_NRCellResourceCoordinationReqAckIEs_tags_625[0]), /* 1 */ - asn_DEF_En_gNB_EUTRA_NRCellResourceCoordinationReqAckIEs_tags_625, /* Same as above */ - sizeof(asn_DEF_En_gNB_EUTRA_NRCellResourceCoordinationReqAckIEs_tags_625) - /sizeof(asn_DEF_En_gNB_EUTRA_NRCellResourceCoordinationReqAckIEs_tags_625[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_En_gNB_EUTRA_NRCellResourceCoordinationReqAckIEs_625, - 3, /* Elements count */ - &asn_SPC_En_gNB_EUTRA_NRCellResourceCoordinationReqAckIEs_specs_625 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_632[] = { - { ATF_NOFLAGS, 0, offsetof(struct ENDCX2RemovalRequest_IEs__value, choice.InitiatingNodeType_EndcX2Removal), - -1 /* Ambiguous tag (CHOICE?) */, - 0, - &asn_DEF_InitiatingNodeType_EndcX2Removal, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "InitiatingNodeType-EndcX2Removal" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_632[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* init-eNB */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 0, 0, 0 } /* init-en-gNB */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_632 = { - sizeof(struct ENDCX2RemovalRequest_IEs__value), - offsetof(struct ENDCX2RemovalRequest_IEs__value, _asn_ctx), - offsetof(struct ENDCX2RemovalRequest_IEs__value, present), - sizeof(((struct ENDCX2RemovalRequest_IEs__value *)0)->present), - asn_MAP_value_tag2el_632, - 2, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_632 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_632, - 1, /* Elements count */ - &asn_SPC_value_specs_632 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ENDCX2RemovalRequest_IEs_629[] = { - { ATF_NOFLAGS, 0, offsetof(struct ENDCX2RemovalRequest_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_630, memb_id_constraint_629 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct ENDCX2RemovalRequest_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_ENDCX2RemovalRequest_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_631, memb_criticality_constraint_629 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ENDCX2RemovalRequest_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_632, - select_ENDCX2RemovalRequest_IEs_value_type, - { 0, &asn_PER_memb_value_constr_632, memb_value_constraint_629 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_ENDCX2RemovalRequest_IEs_tags_629[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ENDCX2RemovalRequest_IEs_tag2el_629[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ENDCX2RemovalRequest_IEs_specs_629 = { - sizeof(struct ENDCX2RemovalRequest_IEs), - offsetof(struct ENDCX2RemovalRequest_IEs, _asn_ctx), - asn_MAP_ENDCX2RemovalRequest_IEs_tag2el_629, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ENDCX2RemovalRequest_IEs = { - "ENDCX2RemovalRequest-IEs", - "ENDCX2RemovalRequest-IEs", - &asn_OP_SEQUENCE, - asn_DEF_ENDCX2RemovalRequest_IEs_tags_629, - sizeof(asn_DEF_ENDCX2RemovalRequest_IEs_tags_629) - /sizeof(asn_DEF_ENDCX2RemovalRequest_IEs_tags_629[0]), /* 1 */ - asn_DEF_ENDCX2RemovalRequest_IEs_tags_629, /* Same as above */ - sizeof(asn_DEF_ENDCX2RemovalRequest_IEs_tags_629) - /sizeof(asn_DEF_ENDCX2RemovalRequest_IEs_tags_629[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ENDCX2RemovalRequest_IEs_629, - 3, /* Elements count */ - &asn_SPC_ENDCX2RemovalRequest_IEs_specs_629 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_636[] = { - { ATF_NOFLAGS, 0, offsetof(struct ENB_ENDCX2RemovalReqIEs__value, choice.GlobalENB_ID), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_GlobalENB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "GlobalENB-ID" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_636[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* GlobalENB-ID */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_636 = { - sizeof(struct ENB_ENDCX2RemovalReqIEs__value), - offsetof(struct ENB_ENDCX2RemovalReqIEs__value, _asn_ctx), - offsetof(struct ENB_ENDCX2RemovalReqIEs__value, present), - sizeof(((struct ENB_ENDCX2RemovalReqIEs__value *)0)->present), - asn_MAP_value_tag2el_636, - 1, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_636 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_636, - 1, /* Elements count */ - &asn_SPC_value_specs_636 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ENB_ENDCX2RemovalReqIEs_633[] = { - { ATF_NOFLAGS, 0, offsetof(struct ENB_ENDCX2RemovalReqIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_634, memb_id_constraint_633 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct ENB_ENDCX2RemovalReqIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_ENB_ENDCX2RemovalReqIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_635, memb_criticality_constraint_633 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ENB_ENDCX2RemovalReqIEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_636, - select_ENB_ENDCX2RemovalReqIEs_value_type, - { 0, &asn_PER_memb_value_constr_636, memb_value_constraint_633 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_ENB_ENDCX2RemovalReqIEs_tags_633[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ENB_ENDCX2RemovalReqIEs_tag2el_633[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ENB_ENDCX2RemovalReqIEs_specs_633 = { - sizeof(struct ENB_ENDCX2RemovalReqIEs), - offsetof(struct ENB_ENDCX2RemovalReqIEs, _asn_ctx), - asn_MAP_ENB_ENDCX2RemovalReqIEs_tag2el_633, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ENB_ENDCX2RemovalReqIEs = { - "ENB-ENDCX2RemovalReqIEs", - "ENB-ENDCX2RemovalReqIEs", - &asn_OP_SEQUENCE, - asn_DEF_ENB_ENDCX2RemovalReqIEs_tags_633, - sizeof(asn_DEF_ENB_ENDCX2RemovalReqIEs_tags_633) - /sizeof(asn_DEF_ENB_ENDCX2RemovalReqIEs_tags_633[0]), /* 1 */ - asn_DEF_ENB_ENDCX2RemovalReqIEs_tags_633, /* Same as above */ - sizeof(asn_DEF_ENB_ENDCX2RemovalReqIEs_tags_633) - /sizeof(asn_DEF_ENB_ENDCX2RemovalReqIEs_tags_633[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ENB_ENDCX2RemovalReqIEs_633, - 3, /* Elements count */ - &asn_SPC_ENB_ENDCX2RemovalReqIEs_specs_633 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_640[] = { - { ATF_NOFLAGS, 0, offsetof(struct En_gNB_ENDCX2RemovalReqIEs__value, choice.GlobalGNB_ID), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_GlobalGNB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "GlobalGNB-ID" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_640[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* GlobalGNB-ID */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_640 = { - sizeof(struct En_gNB_ENDCX2RemovalReqIEs__value), - offsetof(struct En_gNB_ENDCX2RemovalReqIEs__value, _asn_ctx), - offsetof(struct En_gNB_ENDCX2RemovalReqIEs__value, present), - sizeof(((struct En_gNB_ENDCX2RemovalReqIEs__value *)0)->present), - asn_MAP_value_tag2el_640, - 1, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_640 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_640, - 1, /* Elements count */ - &asn_SPC_value_specs_640 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_En_gNB_ENDCX2RemovalReqIEs_637[] = { - { ATF_NOFLAGS, 0, offsetof(struct En_gNB_ENDCX2RemovalReqIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_638, memb_id_constraint_637 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct En_gNB_ENDCX2RemovalReqIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_En_gNB_ENDCX2RemovalReqIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_639, memb_criticality_constraint_637 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct En_gNB_ENDCX2RemovalReqIEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_640, - select_En_gNB_ENDCX2RemovalReqIEs_value_type, - { 0, &asn_PER_memb_value_constr_640, memb_value_constraint_637 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_En_gNB_ENDCX2RemovalReqIEs_tags_637[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_En_gNB_ENDCX2RemovalReqIEs_tag2el_637[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_En_gNB_ENDCX2RemovalReqIEs_specs_637 = { - sizeof(struct En_gNB_ENDCX2RemovalReqIEs), - offsetof(struct En_gNB_ENDCX2RemovalReqIEs, _asn_ctx), - asn_MAP_En_gNB_ENDCX2RemovalReqIEs_tag2el_637, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_En_gNB_ENDCX2RemovalReqIEs = { - "En-gNB-ENDCX2RemovalReqIEs", - "En-gNB-ENDCX2RemovalReqIEs", - &asn_OP_SEQUENCE, - asn_DEF_En_gNB_ENDCX2RemovalReqIEs_tags_637, - sizeof(asn_DEF_En_gNB_ENDCX2RemovalReqIEs_tags_637) - /sizeof(asn_DEF_En_gNB_ENDCX2RemovalReqIEs_tags_637[0]), /* 1 */ - asn_DEF_En_gNB_ENDCX2RemovalReqIEs_tags_637, /* Same as above */ - sizeof(asn_DEF_En_gNB_ENDCX2RemovalReqIEs_tags_637) - /sizeof(asn_DEF_En_gNB_ENDCX2RemovalReqIEs_tags_637[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_En_gNB_ENDCX2RemovalReqIEs_637, - 3, /* Elements count */ - &asn_SPC_En_gNB_ENDCX2RemovalReqIEs_specs_637 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_644[] = { - { ATF_NOFLAGS, 0, offsetof(struct ENDCX2RemovalResponse_IEs__value, choice.RespondingNodeType_EndcX2Removal), - -1 /* Ambiguous tag (CHOICE?) */, - 0, - &asn_DEF_RespondingNodeType_EndcX2Removal, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RespondingNodeType-EndcX2Removal" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_644[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* respond-eNB */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 0, 0, 0 } /* respond-en-gNB */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_644 = { - sizeof(struct ENDCX2RemovalResponse_IEs__value), - offsetof(struct ENDCX2RemovalResponse_IEs__value, _asn_ctx), - offsetof(struct ENDCX2RemovalResponse_IEs__value, present), - sizeof(((struct ENDCX2RemovalResponse_IEs__value *)0)->present), - asn_MAP_value_tag2el_644, - 2, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_644 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_644, - 1, /* Elements count */ - &asn_SPC_value_specs_644 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ENDCX2RemovalResponse_IEs_641[] = { - { ATF_NOFLAGS, 0, offsetof(struct ENDCX2RemovalResponse_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_642, memb_id_constraint_641 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct ENDCX2RemovalResponse_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_ENDCX2RemovalResponse_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_643, memb_criticality_constraint_641 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ENDCX2RemovalResponse_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_644, - select_ENDCX2RemovalResponse_IEs_value_type, - { 0, &asn_PER_memb_value_constr_644, memb_value_constraint_641 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_ENDCX2RemovalResponse_IEs_tags_641[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ENDCX2RemovalResponse_IEs_tag2el_641[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ENDCX2RemovalResponse_IEs_specs_641 = { - sizeof(struct ENDCX2RemovalResponse_IEs), - offsetof(struct ENDCX2RemovalResponse_IEs, _asn_ctx), - asn_MAP_ENDCX2RemovalResponse_IEs_tag2el_641, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ENDCX2RemovalResponse_IEs = { - "ENDCX2RemovalResponse-IEs", - "ENDCX2RemovalResponse-IEs", - &asn_OP_SEQUENCE, - asn_DEF_ENDCX2RemovalResponse_IEs_tags_641, - sizeof(asn_DEF_ENDCX2RemovalResponse_IEs_tags_641) - /sizeof(asn_DEF_ENDCX2RemovalResponse_IEs_tags_641[0]), /* 1 */ - asn_DEF_ENDCX2RemovalResponse_IEs_tags_641, /* Same as above */ - sizeof(asn_DEF_ENDCX2RemovalResponse_IEs_tags_641) - /sizeof(asn_DEF_ENDCX2RemovalResponse_IEs_tags_641[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ENDCX2RemovalResponse_IEs_641, - 3, /* Elements count */ - &asn_SPC_ENDCX2RemovalResponse_IEs_specs_641 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_648[] = { - { ATF_NOFLAGS, 0, offsetof(struct ENB_ENDCX2RemovalReqAckIEs__value, choice.GlobalENB_ID), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_GlobalENB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "GlobalENB-ID" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_648[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* GlobalENB-ID */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_648 = { - sizeof(struct ENB_ENDCX2RemovalReqAckIEs__value), - offsetof(struct ENB_ENDCX2RemovalReqAckIEs__value, _asn_ctx), - offsetof(struct ENB_ENDCX2RemovalReqAckIEs__value, present), - sizeof(((struct ENB_ENDCX2RemovalReqAckIEs__value *)0)->present), - asn_MAP_value_tag2el_648, - 1, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_648 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_648, - 1, /* Elements count */ - &asn_SPC_value_specs_648 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ENB_ENDCX2RemovalReqAckIEs_645[] = { - { ATF_NOFLAGS, 0, offsetof(struct ENB_ENDCX2RemovalReqAckIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_646, memb_id_constraint_645 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct ENB_ENDCX2RemovalReqAckIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_ENB_ENDCX2RemovalReqAckIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_647, memb_criticality_constraint_645 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ENB_ENDCX2RemovalReqAckIEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_648, - select_ENB_ENDCX2RemovalReqAckIEs_value_type, - { 0, &asn_PER_memb_value_constr_648, memb_value_constraint_645 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_ENB_ENDCX2RemovalReqAckIEs_tags_645[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ENB_ENDCX2RemovalReqAckIEs_tag2el_645[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ENB_ENDCX2RemovalReqAckIEs_specs_645 = { - sizeof(struct ENB_ENDCX2RemovalReqAckIEs), - offsetof(struct ENB_ENDCX2RemovalReqAckIEs, _asn_ctx), - asn_MAP_ENB_ENDCX2RemovalReqAckIEs_tag2el_645, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ENB_ENDCX2RemovalReqAckIEs = { - "ENB-ENDCX2RemovalReqAckIEs", - "ENB-ENDCX2RemovalReqAckIEs", - &asn_OP_SEQUENCE, - asn_DEF_ENB_ENDCX2RemovalReqAckIEs_tags_645, - sizeof(asn_DEF_ENB_ENDCX2RemovalReqAckIEs_tags_645) - /sizeof(asn_DEF_ENB_ENDCX2RemovalReqAckIEs_tags_645[0]), /* 1 */ - asn_DEF_ENB_ENDCX2RemovalReqAckIEs_tags_645, /* Same as above */ - sizeof(asn_DEF_ENB_ENDCX2RemovalReqAckIEs_tags_645) - /sizeof(asn_DEF_ENB_ENDCX2RemovalReqAckIEs_tags_645[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ENB_ENDCX2RemovalReqAckIEs_645, - 3, /* Elements count */ - &asn_SPC_ENB_ENDCX2RemovalReqAckIEs_specs_645 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_652[] = { - { ATF_NOFLAGS, 0, offsetof(struct En_gNB_ENDCX2RemovalReqAckIEs__value, choice.GlobalGNB_ID), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_GlobalGNB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "GlobalGNB-ID" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_652[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* GlobalGNB-ID */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_652 = { - sizeof(struct En_gNB_ENDCX2RemovalReqAckIEs__value), - offsetof(struct En_gNB_ENDCX2RemovalReqAckIEs__value, _asn_ctx), - offsetof(struct En_gNB_ENDCX2RemovalReqAckIEs__value, present), - sizeof(((struct En_gNB_ENDCX2RemovalReqAckIEs__value *)0)->present), - asn_MAP_value_tag2el_652, - 1, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_652 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_652, - 1, /* Elements count */ - &asn_SPC_value_specs_652 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_En_gNB_ENDCX2RemovalReqAckIEs_649[] = { - { ATF_NOFLAGS, 0, offsetof(struct En_gNB_ENDCX2RemovalReqAckIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_650, memb_id_constraint_649 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct En_gNB_ENDCX2RemovalReqAckIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_En_gNB_ENDCX2RemovalReqAckIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_651, memb_criticality_constraint_649 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct En_gNB_ENDCX2RemovalReqAckIEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_652, - select_En_gNB_ENDCX2RemovalReqAckIEs_value_type, - { 0, &asn_PER_memb_value_constr_652, memb_value_constraint_649 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_En_gNB_ENDCX2RemovalReqAckIEs_tags_649[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_En_gNB_ENDCX2RemovalReqAckIEs_tag2el_649[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_En_gNB_ENDCX2RemovalReqAckIEs_specs_649 = { - sizeof(struct En_gNB_ENDCX2RemovalReqAckIEs), - offsetof(struct En_gNB_ENDCX2RemovalReqAckIEs, _asn_ctx), - asn_MAP_En_gNB_ENDCX2RemovalReqAckIEs_tag2el_649, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_En_gNB_ENDCX2RemovalReqAckIEs = { - "En-gNB-ENDCX2RemovalReqAckIEs", - "En-gNB-ENDCX2RemovalReqAckIEs", - &asn_OP_SEQUENCE, - asn_DEF_En_gNB_ENDCX2RemovalReqAckIEs_tags_649, - sizeof(asn_DEF_En_gNB_ENDCX2RemovalReqAckIEs_tags_649) - /sizeof(asn_DEF_En_gNB_ENDCX2RemovalReqAckIEs_tags_649[0]), /* 1 */ - asn_DEF_En_gNB_ENDCX2RemovalReqAckIEs_tags_649, /* Same as above */ - sizeof(asn_DEF_En_gNB_ENDCX2RemovalReqAckIEs_tags_649) - /sizeof(asn_DEF_En_gNB_ENDCX2RemovalReqAckIEs_tags_649[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_En_gNB_ENDCX2RemovalReqAckIEs_649, - 3, /* Elements count */ - &asn_SPC_En_gNB_ENDCX2RemovalReqAckIEs_specs_649 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_656[] = { - { ATF_NOFLAGS, 0, offsetof(struct ENDCX2RemovalFailure_IEs__value, choice.Cause), - -1 /* Ambiguous tag (CHOICE?) */, - 0, - &asn_DEF_Cause, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "Cause" - }, - { ATF_NOFLAGS, 0, offsetof(struct ENDCX2RemovalFailure_IEs__value, choice.CriticalityDiagnostics), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CriticalityDiagnostics, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "CriticalityDiagnostics" - }, -}; -static const unsigned asn_MAP_value_to_canonical_656[] = { 1, 0 }; -static const unsigned asn_MAP_value_from_canonical_656[] = { 1, 0 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_656[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 0 }, /* CriticalityDiagnostics */ - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* radioNetwork */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 0, 0, 0 }, /* transport */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 0, 0, 0 }, /* protocol */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 0, 0, 0 } /* misc */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_656 = { - sizeof(struct ENDCX2RemovalFailure_IEs__value), - offsetof(struct ENDCX2RemovalFailure_IEs__value, _asn_ctx), - offsetof(struct ENDCX2RemovalFailure_IEs__value, present), - sizeof(((struct ENDCX2RemovalFailure_IEs__value *)0)->present), - asn_MAP_value_tag2el_656, - 5, /* Count of tags in the map */ - asn_MAP_value_to_canonical_656, - asn_MAP_value_from_canonical_656, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_656 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_656, - 2, /* Elements count */ - &asn_SPC_value_specs_656 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ENDCX2RemovalFailure_IEs_653[] = { - { ATF_NOFLAGS, 0, offsetof(struct ENDCX2RemovalFailure_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_654, memb_id_constraint_653 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct ENDCX2RemovalFailure_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_ENDCX2RemovalFailure_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_655, memb_criticality_constraint_653 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ENDCX2RemovalFailure_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_656, - select_ENDCX2RemovalFailure_IEs_value_type, - { 0, &asn_PER_memb_value_constr_656, memb_value_constraint_653 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_ENDCX2RemovalFailure_IEs_tags_653[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ENDCX2RemovalFailure_IEs_tag2el_653[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ENDCX2RemovalFailure_IEs_specs_653 = { - sizeof(struct ENDCX2RemovalFailure_IEs), - offsetof(struct ENDCX2RemovalFailure_IEs, _asn_ctx), - asn_MAP_ENDCX2RemovalFailure_IEs_tag2el_653, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ENDCX2RemovalFailure_IEs = { - "ENDCX2RemovalFailure-IEs", - "ENDCX2RemovalFailure-IEs", - &asn_OP_SEQUENCE, - asn_DEF_ENDCX2RemovalFailure_IEs_tags_653, - sizeof(asn_DEF_ENDCX2RemovalFailure_IEs_tags_653) - /sizeof(asn_DEF_ENDCX2RemovalFailure_IEs_tags_653[0]), /* 1 */ - asn_DEF_ENDCX2RemovalFailure_IEs_tags_653, /* Same as above */ - sizeof(asn_DEF_ENDCX2RemovalFailure_IEs_tags_653) - /sizeof(asn_DEF_ENDCX2RemovalFailure_IEs_tags_653[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ENDCX2RemovalFailure_IEs_653, - 3, /* Elements count */ - &asn_SPC_ENDCX2RemovalFailure_IEs_specs_653 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_660[] = { - { ATF_NOFLAGS, 0, offsetof(struct DataForwardingAddressIndication_IEs__value, choice.UE_X2AP_ID_Extension), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_UE_X2AP_ID_Extension, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "UE-X2AP-ID-Extension" - }, - { ATF_NOFLAGS, 0, offsetof(struct DataForwardingAddressIndication_IEs__value, choice.UE_X2AP_ID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_UE_X2AP_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "UE-X2AP-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct DataForwardingAddressIndication_IEs__value, choice.E_RABs_DataForwardingAddress_List), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RABs_DataForwardingAddress_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "E-RABs-DataForwardingAddress-List" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_660[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 1 }, /* UE-X2AP-ID-Extension */ - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 0 }, /* UE-X2AP-ID */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, 0, 0 } /* E-RABs-DataForwardingAddress-List */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_660 = { - sizeof(struct DataForwardingAddressIndication_IEs__value), - offsetof(struct DataForwardingAddressIndication_IEs__value, _asn_ctx), - offsetof(struct DataForwardingAddressIndication_IEs__value, present), - sizeof(((struct DataForwardingAddressIndication_IEs__value *)0)->present), - asn_MAP_value_tag2el_660, - 3, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_660 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_660, - 3, /* Elements count */ - &asn_SPC_value_specs_660 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_DataForwardingAddressIndication_IEs_657[] = { - { ATF_NOFLAGS, 0, offsetof(struct DataForwardingAddressIndication_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_658, memb_id_constraint_657 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct DataForwardingAddressIndication_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_DataForwardingAddressIndication_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_659, memb_criticality_constraint_657 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct DataForwardingAddressIndication_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_660, - select_DataForwardingAddressIndication_IEs_value_type, - { 0, &asn_PER_memb_value_constr_660, memb_value_constraint_657 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_DataForwardingAddressIndication_IEs_tags_657[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_DataForwardingAddressIndication_IEs_tag2el_657[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_DataForwardingAddressIndication_IEs_specs_657 = { - sizeof(struct DataForwardingAddressIndication_IEs), - offsetof(struct DataForwardingAddressIndication_IEs, _asn_ctx), - asn_MAP_DataForwardingAddressIndication_IEs_tag2el_657, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_DataForwardingAddressIndication_IEs = { - "DataForwardingAddressIndication-IEs", - "DataForwardingAddressIndication-IEs", - &asn_OP_SEQUENCE, - asn_DEF_DataForwardingAddressIndication_IEs_tags_657, - sizeof(asn_DEF_DataForwardingAddressIndication_IEs_tags_657) - /sizeof(asn_DEF_DataForwardingAddressIndication_IEs_tags_657[0]), /* 1 */ - asn_DEF_DataForwardingAddressIndication_IEs_tags_657, /* Same as above */ - sizeof(asn_DEF_DataForwardingAddressIndication_IEs_tags_657) - /sizeof(asn_DEF_DataForwardingAddressIndication_IEs_tags_657[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_DataForwardingAddressIndication_IEs_657, - 3, /* Elements count */ - &asn_SPC_DataForwardingAddressIndication_IEs_specs_657 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_664[] = { - { ATF_NOFLAGS, 0, offsetof(struct GNBStatusIndicationIEs__value, choice.GNBOverloadInformation), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_GNBOverloadInformation, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "GNBOverloadInformation" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_664[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 0, 0, 0 } /* GNBOverloadInformation */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_664 = { - sizeof(struct GNBStatusIndicationIEs__value), - offsetof(struct GNBStatusIndicationIEs__value, _asn_ctx), - offsetof(struct GNBStatusIndicationIEs__value, present), - sizeof(((struct GNBStatusIndicationIEs__value *)0)->present), - asn_MAP_value_tag2el_664, - 1, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_664 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_664, - 1, /* Elements count */ - &asn_SPC_value_specs_664 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_GNBStatusIndicationIEs_661[] = { - { ATF_NOFLAGS, 0, offsetof(struct GNBStatusIndicationIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_662, memb_id_constraint_661 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct GNBStatusIndicationIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_GNBStatusIndicationIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_663, memb_criticality_constraint_661 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct GNBStatusIndicationIEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_664, - select_GNBStatusIndicationIEs_value_type, - { 0, &asn_PER_memb_value_constr_664, memb_value_constraint_661 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_GNBStatusIndicationIEs_tags_661[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_GNBStatusIndicationIEs_tag2el_661[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_GNBStatusIndicationIEs_specs_661 = { - sizeof(struct GNBStatusIndicationIEs), - offsetof(struct GNBStatusIndicationIEs, _asn_ctx), - asn_MAP_GNBStatusIndicationIEs_tag2el_661, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_GNBStatusIndicationIEs = { - "GNBStatusIndicationIEs", - "GNBStatusIndicationIEs", - &asn_OP_SEQUENCE, - asn_DEF_GNBStatusIndicationIEs_tags_661, - sizeof(asn_DEF_GNBStatusIndicationIEs_tags_661) - /sizeof(asn_DEF_GNBStatusIndicationIEs_tags_661[0]), /* 1 */ - asn_DEF_GNBStatusIndicationIEs_tags_661, /* Same as above */ - sizeof(asn_DEF_GNBStatusIndicationIEs_tags_661) - /sizeof(asn_DEF_GNBStatusIndicationIEs_tags_661[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_GNBStatusIndicationIEs_661, - 3, /* Elements count */ - &asn_SPC_GNBStatusIndicationIEs_specs_661 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_668[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RAB_ItemIEs__value, choice.E_RAB_Item), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RAB_Item, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "E-RAB-Item" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_668[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* E-RAB-Item */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_668 = { - sizeof(struct E_RAB_ItemIEs__value), - offsetof(struct E_RAB_ItemIEs__value, _asn_ctx), - offsetof(struct E_RAB_ItemIEs__value, present), - sizeof(((struct E_RAB_ItemIEs__value *)0)->present), - asn_MAP_value_tag2el_668, - 1, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_668 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_668, - 1, /* Elements count */ - &asn_SPC_value_specs_668 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E_RAB_ItemIEs_665[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RAB_ItemIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_666, memb_id_constraint_665 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RAB_ItemIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_Criticality, - select_E_RAB_ItemIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_667, memb_criticality_constraint_665 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RAB_ItemIEs, value), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_value_668, - select_E_RAB_ItemIEs_value_type, - { 0, &asn_PER_memb_value_constr_668, memb_value_constraint_665 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RAB_ItemIEs_tags_665[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RAB_ItemIEs_tag2el_665[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RAB_ItemIEs_specs_665 = { - sizeof(struct E_RAB_ItemIEs), - offsetof(struct E_RAB_ItemIEs, _asn_ctx), - asn_MAP_E_RAB_ItemIEs_tag2el_665, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RAB_ItemIEs = { - "E-RAB-ItemIEs", - "E-RAB-ItemIEs", - &asn_OP_SEQUENCE, - asn_DEF_E_RAB_ItemIEs_tags_665, - sizeof(asn_DEF_E_RAB_ItemIEs_tags_665) - /sizeof(asn_DEF_E_RAB_ItemIEs_tags_665[0]), /* 1 */ - asn_DEF_E_RAB_ItemIEs_tags_665, /* Same as above */ - sizeof(asn_DEF_E_RAB_ItemIEs_tags_665) - /sizeof(asn_DEF_E_RAB_ItemIEs_tags_665[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RAB_ItemIEs_665, - 3, /* Elements count */ - &asn_SPC_E_RAB_ItemIEs_specs_665 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_672[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABUsageReport_ItemIEs__value, choice.E_RABUsageReport_Item), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E_RABUsageReport_Item, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "E-RABUsageReport-Item" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_672[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* E-RABUsageReport-Item */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_672 = { - sizeof(struct E_RABUsageReport_ItemIEs__value), - offsetof(struct E_RABUsageReport_ItemIEs__value, _asn_ctx), - offsetof(struct E_RABUsageReport_ItemIEs__value, present), - sizeof(((struct E_RABUsageReport_ItemIEs__value *)0)->present), - asn_MAP_value_tag2el_672, - 1, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_672 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_672, - 1, /* Elements count */ - &asn_SPC_value_specs_672 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E_RABUsageReport_ItemIEs_669[] = { - { ATF_NOFLAGS, 0, offsetof(struct E_RABUsageReport_ItemIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_670, memb_id_constraint_669 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E_RABUsageReport_ItemIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_Criticality, - select_E_RABUsageReport_ItemIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_671, memb_criticality_constraint_669 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E_RABUsageReport_ItemIEs, value), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_value_672, - select_E_RABUsageReport_ItemIEs_value_type, - { 0, &asn_PER_memb_value_constr_672, memb_value_constraint_669 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_E_RABUsageReport_ItemIEs_tags_669[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E_RABUsageReport_ItemIEs_tag2el_669[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E_RABUsageReport_ItemIEs_specs_669 = { - sizeof(struct E_RABUsageReport_ItemIEs), - offsetof(struct E_RABUsageReport_ItemIEs, _asn_ctx), - asn_MAP_E_RABUsageReport_ItemIEs_tag2el_669, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E_RABUsageReport_ItemIEs = { - "E-RABUsageReport-ItemIEs", - "E-RABUsageReport-ItemIEs", - &asn_OP_SEQUENCE, - asn_DEF_E_RABUsageReport_ItemIEs_tags_669, - sizeof(asn_DEF_E_RABUsageReport_ItemIEs_tags_669) - /sizeof(asn_DEF_E_RABUsageReport_ItemIEs_tags_669[0]), /* 1 */ - asn_DEF_E_RABUsageReport_ItemIEs_tags_669, /* Same as above */ - sizeof(asn_DEF_E_RABUsageReport_ItemIEs_tags_669) - /sizeof(asn_DEF_E_RABUsageReport_ItemIEs_tags_669[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABUsageReport_ItemIEs_669, - 3, /* Elements count */ - &asn_SPC_E_RABUsageReport_ItemIEs_specs_669 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_676[] = { - { ATF_NOFLAGS, 0, offsetof(struct SecondaryRATUsageReport_ItemIEs__value, choice.SecondaryRATUsageReport_Item), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_SecondaryRATUsageReport_Item, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "SecondaryRATUsageReport-Item" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_676[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* SecondaryRATUsageReport-Item */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_676 = { - sizeof(struct SecondaryRATUsageReport_ItemIEs__value), - offsetof(struct SecondaryRATUsageReport_ItemIEs__value, _asn_ctx), - offsetof(struct SecondaryRATUsageReport_ItemIEs__value, present), - sizeof(((struct SecondaryRATUsageReport_ItemIEs__value *)0)->present), - asn_MAP_value_tag2el_676, - 1, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_676 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_676, - 1, /* Elements count */ - &asn_SPC_value_specs_676 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_SecondaryRATUsageReport_ItemIEs_673[] = { - { ATF_NOFLAGS, 0, offsetof(struct SecondaryRATUsageReport_ItemIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_674, memb_id_constraint_673 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct SecondaryRATUsageReport_ItemIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_Criticality, - select_SecondaryRATUsageReport_ItemIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_675, memb_criticality_constraint_673 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SecondaryRATUsageReport_ItemIEs, value), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_value_676, - select_SecondaryRATUsageReport_ItemIEs_value_type, - { 0, &asn_PER_memb_value_constr_676, memb_value_constraint_673 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_SecondaryRATUsageReport_ItemIEs_tags_673[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_SecondaryRATUsageReport_ItemIEs_tag2el_673[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ -}; -asn_SEQUENCE_specifics_t asn_SPC_SecondaryRATUsageReport_ItemIEs_specs_673 = { - sizeof(struct SecondaryRATUsageReport_ItemIEs), - offsetof(struct SecondaryRATUsageReport_ItemIEs, _asn_ctx), - asn_MAP_SecondaryRATUsageReport_ItemIEs_tag2el_673, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_SecondaryRATUsageReport_ItemIEs = { - "SecondaryRATUsageReport-ItemIEs", - "SecondaryRATUsageReport-ItemIEs", - &asn_OP_SEQUENCE, - asn_DEF_SecondaryRATUsageReport_ItemIEs_tags_673, - sizeof(asn_DEF_SecondaryRATUsageReport_ItemIEs_tags_673) - /sizeof(asn_DEF_SecondaryRATUsageReport_ItemIEs_tags_673[0]), /* 1 */ - asn_DEF_SecondaryRATUsageReport_ItemIEs_tags_673, /* Same as above */ - sizeof(asn_DEF_SecondaryRATUsageReport_ItemIEs_tags_673) - /sizeof(asn_DEF_SecondaryRATUsageReport_ItemIEs_tags_673[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_SecondaryRATUsageReport_ItemIEs_673, - 3, /* Elements count */ - &asn_SPC_SecondaryRATUsageReport_ItemIEs_specs_673 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/ProtocolIE-Field.h b/e2sim/previous/ASN1c/ProtocolIE-Field.h deleted file mode 100644 index b593db8..0000000 --- a/e2sim/previous/ASN1c/ProtocolIE-Field.h +++ /dev/null @@ -1,4903 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-Containers" - * found in "../../asnFiles/X2AP-Containers.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _ProtocolIE_Field_H_ -#define _ProtocolIE_Field_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-ID.h" -#include "Criticality.h" -#include "ANY.h" -#include "asn_ioc.h" -#include "RICaction-ToBeSetup-Item.h" -#include "Presence.h" -#include "OPEN_TYPE.h" -#include "constr_CHOICE.h" -#include "constr_SEQUENCE.h" -#include "RICaction-Admitted-Item.h" -#include "RICaction-NotAdmitted-Item.h" -#include "RANfunction-Item.h" -#include "RANfunctionID-Item.h" -#include "RANfunctionIDcause-Item.h" -#include "E-RABs-ToBeSetup-Item.h" -#include "E-RABs-Admitted-Item.h" -#include "E-RABs-SubjectToStatusTransfer-Item.h" -#include "CellInformation-Item.h" -#include "CellToReport-Item.h" -#include "MeasurementInitiationResult-Item.h" -#include "MeasurementFailureCause-Item.h" -#include "CompleteFailureCauseInformation-Item.h" -#include "CellMeasurementResult-Item.h" -#include "E-RABs-ToBeAdded-Item.h" -#include "E-RABs-Admitted-ToBeAdded-Item.h" -#include "E-RABs-ToBeAdded-ModReqItem.h" -#include "E-RABs-ToBeModified-ModReqItem.h" -#include "E-RABs-ToBeReleased-ModReqItem.h" -#include "E-RABs-Admitted-ToBeAdded-ModAckItem.h" -#include "E-RABs-Admitted-ToBeModified-ModAckItem.h" -#include "E-RABs-Admitted-ToReleased-ModAckItem.h" -#include "E-RABs-ToBeReleased-ModReqdItem.h" -#include "E-RABs-ToBeReleased-RelReqItem.h" -#include "E-RABs-ToBeReleased-RelConfItem.h" -#include "E-RABs-SubjectToCounterCheckItem.h" -#include "E-RABs-ToBeSetupRetrieve-Item.h" -#include "E-RABs-ToBeAdded-SgNBAddReq-Item.h" -#include "E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item.h" -#include "E-RABs-ToBeAdded-SgNBModReq-Item.h" -#include "E-RABs-ToBeModified-SgNBModReq-Item.h" -#include "E-RABs-ToBeReleased-SgNBModReq-Item.h" -#include "E-RABs-Admitted-ToBeAdded-SgNBModAck-Item.h" -#include "E-RABs-Admitted-ToBeModified-SgNBModAck-Item.h" -#include "E-RABs-Admitted-ToReleased-SgNBModAck-Item.h" -#include "E-RABs-ToBeReleased-SgNBModReqd-Item.h" -#include "E-RABs-ToBeModified-SgNBModReqd-Item.h" -#include "E-RABs-AdmittedToBeModified-SgNBModConf-Item.h" -#include "E-RABs-ToBeReleased-SgNBRelReq-Item.h" -#include "E-RABs-Admitted-ToBeReleased-SgNBRelReqAck-Item.h" -#include "E-RABs-ToBeReleased-SgNBRelReqd-Item.h" -#include "E-RABs-ToBeReleased-SgNBRelConf-Item.h" -#include "E-RABs-SubjectToSgNBCounterCheck-Item.h" -#include "E-RABs-ToBeReleased-SgNBChaConf-Item.h" -#include "E-RABs-DataForwardingAddress-Item.h" -#include "RICrequestID.h" -#include "RANfunctionID.h" -#include "RICsubscription.h" -#include "RICaction-Admitted-List.h" -#include "RICaction-NotAdmitted-List.h" -#include "CriticalityDiagnostics.h" -#include "RICcause.h" -#include "RICactionID.h" -#include "RICindicationSN.h" -#include "RICindicationType.h" -#include "RICindicationHeader.h" -#include "RICindicationMessage.h" -#include "RICcallProcessID.h" -#include "RICcontrolHeader.h" -#include "RICcontrolMessage.h" -#include "RICcontrolAckRequest.h" -#include "RICcontrolStatus.h" -#include "RANfunctions-List.h" -#include "RANfunctionsID-List.h" -#include "RANfunctionsIDcause-List.h" -#include "TimeToWait.h" -#include "UE-X2AP-ID.h" -#include "Cause.h" -#include "ECGI.h" -#include "GUMMEI.h" -#include "UE-ContextInformation.h" -#include "UE-HistoryInformation.h" -#include "TraceActivation.h" -#include "SRVCCOperationPossible.h" -#include "CSGMembershipStatus.h" -#include "MobilityInformation.h" -#include "Masked-IMEISV.h" -#include "UE-HistoryInformationFromTheUE.h" -#include "ExpectedUEBehaviour.h" -#include "ProSeAuthorized.h" -#include "UE-ContextReferenceAtSeNB.h" -#include "UE-X2AP-ID-Extension.h" -#include "V2XServicesAuthorized.h" -#include "UE-ContextReferenceAtWT.h" -#include "NRUESecurityCapabilities.h" -#include "UE-ContextReferenceAtSgNB.h" -#include "AerialUEsubscriptionInformation.h" -#include "Subscription-Based-UE-DifferentiationInfo.h" -#include "E-RABs-Admitted-List.h" -#include "E-RAB-List.h" -#include "TargeteNBtoSource-eNBTransparentContainer.h" -#include "UE-ContextKeptIndicator.h" -#include "HandoverReportType.h" -#include "TargetCellInUTRAN.h" -#include "CRNTI.h" -#include "UE-RLF-Report-Container.h" -#include "UE-RLF-Report-Container-for-extended-bands.h" -#include "E-RABs-SubjectToStatusTransfer-List.h" -#include "SgNB-UE-X2AP-ID.h" -#include "SIPTOBearerDeactivationIndication.h" -#include "GlobalENB-ID.h" -#include "ServedCells.h" -#include "GUGroupIDList.h" -#include "LHN-ID.h" -#include "CellInformation-List.h" -#include "ServedCellsToModify.h" -#include "Old-ECGIs.h" -#include "CoverageModificationList.h" -#include "Measurement-ID.h" -#include "Registration-Request.h" -#include "ReportCharacteristics.h" -#include "CellToReport-List.h" -#include "ReportingPeriodicity.h" -#include "PartialSuccessIndicator.h" -#include "ReportingPeriodicityRSRPMR.h" -#include "ReportingPeriodicityCSIR.h" -#include "MeasurementInitiationResult-List.h" -#include "CompleteFailureCauseInformation-List.h" -#include "CellMeasurementResult-List.h" -#include "MobilityParametersInformation.h" -#include "MobilityParametersModificationRange.h" -#include "PCI.h" -#include "ShortMAC-I.h" -#include "RRCConnSetupIndicator.h" -#include "RRCConnReestabIndicator.h" -#include "ServedCellsToActivate.h" -#include "ActivatedCellList.h" -#include "RNL-Header.h" -#include "X2AP-Message.h" -#include "UESecurityCapabilities.h" -#include "SeNBSecurityKey.h" -#include "UEAggregateMaximumBitRate.h" -#include "PLMN-Identity.h" -#include "E-RABs-ToBeAdded-List.h" -#include "MeNBtoSeNBContainer.h" -#include "E-RABs-Admitted-ToBeAdded-List.h" -#include "SeNBtoMeNBContainer.h" -#include "TransportLayerAddress.h" -#include "TunnelInformation.h" -#include "ResponseInformationSeNBReconfComp.h" -#include "SCGChangeIndication.h" -#include "UE-ContextInformationSeNBModReq.h" -#include "E-RABs-Admitted-ToBeAdded-ModAckList.h" -#include "E-RABs-Admitted-ToBeModified-ModAckList.h" -#include "E-RABs-Admitted-ToBeReleased-ModAckList.h" -#include "E-RABs-ToBeReleased-ModReqd.h" -#include "E-RABs-ToBeReleased-List-RelReq.h" -#include "MakeBeforeBreakIndicator.h" -#include "E-RABs-ToBeReleased-List-RelConf.h" -#include "E-RABs-SubjectToCounterCheck-List.h" -#include "X2BenefitValue.h" -#include "ResumeID.h" -#include "EUTRANCellIdentifier.h" -#include "UE-ContextInformationRetrieve.h" -#include "SgNBSecurityKey.h" -#include "HandoverRestrictionList.h" -#include "E-RABs-ToBeAdded-SgNBAddReqList.h" -#include "MeNBtoSgNBContainer.h" -#include "SplitSRBs.h" -#include "MeNBResourceCoordinationInformation.h" -#include "SGNB-Addition-Trigger-Ind.h" -#include "SubscriberProfileIDforRFP.h" -#include "E-RABs-Admitted-ToBeAdded-SgNBAddReqAckList.h" -#include "SgNBtoMeNBContainer.h" -#include "SgNBResourceCoordinationInformation.h" -#include "RRC-Config-Ind.h" -#include "ResponseInformationSgNBReconfComp.h" -#include "SCGConfigurationQuery.h" -#include "UE-ContextInformation-SgNBModReq.h" -#include "E-RABs-Admitted-ToBeAdded-SgNBModAckList.h" -#include "E-RABs-Admitted-ToBeModified-SgNBModAckList.h" -#include "E-RABs-Admitted-ToBeReleased-SgNBModAckList.h" -#include "PDCPChangeIndication.h" -#include "E-RABs-ToBeReleased-SgNBModReqdList.h" -#include "E-RABs-ToBeModified-SgNBModReqdList.h" -#include "E-RABs-AdmittedToBeModified-SgNBModConfList.h" -#include "E-RABs-ToBeReleased-SgNBRelReqList.h" -#include "E-RABs-Admitted-ToBeReleased-SgNBRelReqAckList.h" -#include "E-RABs-ToBeReleased-SgNBRelReqdList.h" -#include "E-RABs-ToBeReleased-SgNBRelConfList.h" -#include "E-RABs-SubjectToSgNBCounterCheck-List.h" -#include "GlobalGNB-ID.h" -#include "E-RABs-ToBeReleased-SgNBChaConfList.h" -#include "SplitSRB.h" -#include "UENRMeasurement.h" -#include "InitiatingNodeType-EndcX2Setup.h" -#include "ServedEUTRAcellsENDCX2ManagementList.h" -#include "ServedNRcellsENDCX2ManagementList.h" -#include "RespondingNodeType-EndcX2Setup.h" -#include "InitiatingNodeType-EndcConfigUpdate.h" -#include "CellAssistanceInformation.h" -#include "ServedEUTRAcellsToModifyListENDCConfUpd.h" -#include "ServedEUTRAcellsToDeleteListENDCConfUpd.h" -#include "ServedNRcellsToModifyENDCConfUpdList.h" -#include "ServedNRcellsToDeleteENDCConfUpdList.h" -#include "RespondingNodeType-EndcConfigUpdate.h" -#include "ServedNRCellsToActivate.h" -#include "ActivationID.h" -#include "ActivatedNRCellList.h" -#include "SecondaryRATUsageReportList.h" -#include "UserPlaneTrafficActivityReport.h" -#include "ERABActivityNotifyItemList.h" -#include "UEsToBeResetList.h" -#include "InitiatingNodeType-EutranrCellResourceCoordination.h" -#include "DataTrafficResourceIndication.h" -#include "SpectrumSharingGroupID.h" -#include "ListofEUTRACellsinEUTRACoordinationReq.h" -#include "ListofEUTRACellsinNRCoordinationReq.h" -#include "ListofNRCellsinNRCoordinationReq.h" -#include "RespondingNodeType-EutranrCellResourceCoordination.h" -#include "ListofEUTRACellsinEUTRACoordinationResp.h" -#include "ListofNRCellsinNRCoordinationResp.h" -#include "InitiatingNodeType-EndcX2Removal.h" -#include "RespondingNodeType-EndcX2Removal.h" -#include "E-RABs-DataForwardingAddress-List.h" -#include "GNBOverloadInformation.h" -#include "E-RAB-Item.h" -#include "E-RABUsageReport-Item.h" -#include "SecondaryRATUsageReport-Item.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum RICaction_ToBeSetup_ItemIEs__value_PR { - RICaction_ToBeSetup_ItemIEs__value_PR_NOTHING, /* No components present */ - RICaction_ToBeSetup_ItemIEs__value_PR_RICaction_ToBeSetup_Item -} RICaction_ToBeSetup_ItemIEs__value_PR; -typedef enum RICaction_Admitted_ItemIEs__value_PR { - RICaction_Admitted_ItemIEs__value_PR_NOTHING, /* No components present */ - RICaction_Admitted_ItemIEs__value_PR_RICaction_Admitted_Item -} RICaction_Admitted_ItemIEs__value_PR; -typedef enum RICaction_NotAdmitted_ItemIEs__value_PR { - RICaction_NotAdmitted_ItemIEs__value_PR_NOTHING, /* No components present */ - RICaction_NotAdmitted_ItemIEs__value_PR_RICaction_NotAdmitted_Item -} RICaction_NotAdmitted_ItemIEs__value_PR; -typedef enum RANfunction_ItemIEs__value_PR { - RANfunction_ItemIEs__value_PR_NOTHING, /* No components present */ - RANfunction_ItemIEs__value_PR_RANfunction_Item -} RANfunction_ItemIEs__value_PR; -typedef enum RANfunctionID_ItemIEs__value_PR { - RANfunctionID_ItemIEs__value_PR_NOTHING, /* No components present */ - RANfunctionID_ItemIEs__value_PR_RANfunctionID_Item -} RANfunctionID_ItemIEs__value_PR; -typedef enum RANfunctionIDcause_ItemIEs__value_PR { - RANfunctionIDcause_ItemIEs__value_PR_NOTHING, /* No components present */ - RANfunctionIDcause_ItemIEs__value_PR_RANfunctionIDcause_Item -} RANfunctionIDcause_ItemIEs__value_PR; -typedef enum E_RABs_ToBeSetup_ItemIEs__value_PR { - E_RABs_ToBeSetup_ItemIEs__value_PR_NOTHING, /* No components present */ - E_RABs_ToBeSetup_ItemIEs__value_PR_E_RABs_ToBeSetup_Item -} E_RABs_ToBeSetup_ItemIEs__value_PR; -typedef enum E_RABs_Admitted_ItemIEs__value_PR { - E_RABs_Admitted_ItemIEs__value_PR_NOTHING, /* No components present */ - E_RABs_Admitted_ItemIEs__value_PR_E_RABs_Admitted_Item -} E_RABs_Admitted_ItemIEs__value_PR; -typedef enum E_RABs_SubjectToStatusTransfer_ItemIEs__value_PR { - E_RABs_SubjectToStatusTransfer_ItemIEs__value_PR_NOTHING, /* No components present */ - E_RABs_SubjectToStatusTransfer_ItemIEs__value_PR_E_RABs_SubjectToStatusTransfer_Item -} E_RABs_SubjectToStatusTransfer_ItemIEs__value_PR; -typedef enum CellInformation_ItemIEs__value_PR { - CellInformation_ItemIEs__value_PR_NOTHING, /* No components present */ - CellInformation_ItemIEs__value_PR_CellInformation_Item -} CellInformation_ItemIEs__value_PR; -typedef enum CellToReport_ItemIEs__value_PR { - CellToReport_ItemIEs__value_PR_NOTHING, /* No components present */ - CellToReport_ItemIEs__value_PR_CellToReport_Item -} CellToReport_ItemIEs__value_PR; -typedef enum MeasurementInitiationResult_ItemIEs__value_PR { - MeasurementInitiationResult_ItemIEs__value_PR_NOTHING, /* No components present */ - MeasurementInitiationResult_ItemIEs__value_PR_MeasurementInitiationResult_Item -} MeasurementInitiationResult_ItemIEs__value_PR; -typedef enum MeasurementFailureCause_ItemIEs__value_PR { - MeasurementFailureCause_ItemIEs__value_PR_NOTHING, /* No components present */ - MeasurementFailureCause_ItemIEs__value_PR_MeasurementFailureCause_Item -} MeasurementFailureCause_ItemIEs__value_PR; -typedef enum CompleteFailureCauseInformation_ItemIEs__value_PR { - CompleteFailureCauseInformation_ItemIEs__value_PR_NOTHING, /* No components present */ - CompleteFailureCauseInformation_ItemIEs__value_PR_CompleteFailureCauseInformation_Item -} CompleteFailureCauseInformation_ItemIEs__value_PR; -typedef enum CellMeasurementResult_ItemIEs__value_PR { - CellMeasurementResult_ItemIEs__value_PR_NOTHING, /* No components present */ - CellMeasurementResult_ItemIEs__value_PR_CellMeasurementResult_Item -} CellMeasurementResult_ItemIEs__value_PR; -typedef enum E_RABs_ToBeAdded_ItemIEs__value_PR { - E_RABs_ToBeAdded_ItemIEs__value_PR_NOTHING, /* No components present */ - E_RABs_ToBeAdded_ItemIEs__value_PR_E_RABs_ToBeAdded_Item -} E_RABs_ToBeAdded_ItemIEs__value_PR; -typedef enum E_RABs_Admitted_ToBeAdded_ItemIEs__value_PR { - E_RABs_Admitted_ToBeAdded_ItemIEs__value_PR_NOTHING, /* No components present */ - E_RABs_Admitted_ToBeAdded_ItemIEs__value_PR_E_RABs_Admitted_ToBeAdded_Item -} E_RABs_Admitted_ToBeAdded_ItemIEs__value_PR; -typedef enum E_RABs_ToBeAdded_ModReqItemIEs__value_PR { - E_RABs_ToBeAdded_ModReqItemIEs__value_PR_NOTHING, /* No components present */ - E_RABs_ToBeAdded_ModReqItemIEs__value_PR_E_RABs_ToBeAdded_ModReqItem -} E_RABs_ToBeAdded_ModReqItemIEs__value_PR; -typedef enum E_RABs_ToBeModified_ModReqItemIEs__value_PR { - E_RABs_ToBeModified_ModReqItemIEs__value_PR_NOTHING, /* No components present */ - E_RABs_ToBeModified_ModReqItemIEs__value_PR_E_RABs_ToBeModified_ModReqItem -} E_RABs_ToBeModified_ModReqItemIEs__value_PR; -typedef enum E_RABs_ToBeReleased_ModReqItemIEs__value_PR { - E_RABs_ToBeReleased_ModReqItemIEs__value_PR_NOTHING, /* No components present */ - E_RABs_ToBeReleased_ModReqItemIEs__value_PR_E_RABs_ToBeReleased_ModReqItem -} E_RABs_ToBeReleased_ModReqItemIEs__value_PR; -typedef enum E_RABs_Admitted_ToBeAdded_ModAckItemIEs__value_PR { - E_RABs_Admitted_ToBeAdded_ModAckItemIEs__value_PR_NOTHING, /* No components present */ - E_RABs_Admitted_ToBeAdded_ModAckItemIEs__value_PR_E_RABs_Admitted_ToBeAdded_ModAckItem -} E_RABs_Admitted_ToBeAdded_ModAckItemIEs__value_PR; -typedef enum E_RABs_Admitted_ToBeModified_ModAckItemIEs__value_PR { - E_RABs_Admitted_ToBeModified_ModAckItemIEs__value_PR_NOTHING, /* No components present */ - E_RABs_Admitted_ToBeModified_ModAckItemIEs__value_PR_E_RABs_Admitted_ToBeModified_ModAckItem -} E_RABs_Admitted_ToBeModified_ModAckItemIEs__value_PR; -typedef enum E_RABs_Admitted_ToBeReleased_ModAckItemIEs__value_PR { - E_RABs_Admitted_ToBeReleased_ModAckItemIEs__value_PR_NOTHING, /* No components present */ - E_RABs_Admitted_ToBeReleased_ModAckItemIEs__value_PR_E_RABs_Admitted_ToReleased_ModAckItem -} E_RABs_Admitted_ToBeReleased_ModAckItemIEs__value_PR; -typedef enum E_RABs_ToBeReleased_ModReqdItemIEs__value_PR { - E_RABs_ToBeReleased_ModReqdItemIEs__value_PR_NOTHING, /* No components present */ - E_RABs_ToBeReleased_ModReqdItemIEs__value_PR_E_RABs_ToBeReleased_ModReqdItem -} E_RABs_ToBeReleased_ModReqdItemIEs__value_PR; -typedef enum E_RABs_ToBeReleased_RelReqItemIEs__value_PR { - E_RABs_ToBeReleased_RelReqItemIEs__value_PR_NOTHING, /* No components present */ - E_RABs_ToBeReleased_RelReqItemIEs__value_PR_E_RABs_ToBeReleased_RelReqItem -} E_RABs_ToBeReleased_RelReqItemIEs__value_PR; -typedef enum E_RABs_ToBeReleased_RelConfItemIEs__value_PR { - E_RABs_ToBeReleased_RelConfItemIEs__value_PR_NOTHING, /* No components present */ - E_RABs_ToBeReleased_RelConfItemIEs__value_PR_E_RABs_ToBeReleased_RelConfItem -} E_RABs_ToBeReleased_RelConfItemIEs__value_PR; -typedef enum E_RABs_SubjectToCounterCheckItemIEs__value_PR { - E_RABs_SubjectToCounterCheckItemIEs__value_PR_NOTHING, /* No components present */ - E_RABs_SubjectToCounterCheckItemIEs__value_PR_E_RABs_SubjectToCounterCheckItem -} E_RABs_SubjectToCounterCheckItemIEs__value_PR; -typedef enum E_RABs_ToBeSetupRetrieve_ItemIEs__value_PR { - E_RABs_ToBeSetupRetrieve_ItemIEs__value_PR_NOTHING, /* No components present */ - E_RABs_ToBeSetupRetrieve_ItemIEs__value_PR_E_RABs_ToBeSetupRetrieve_Item -} E_RABs_ToBeSetupRetrieve_ItemIEs__value_PR; -typedef enum E_RABs_ToBeAdded_SgNBAddReq_ItemIEs__value_PR { - E_RABs_ToBeAdded_SgNBAddReq_ItemIEs__value_PR_NOTHING, /* No components present */ - E_RABs_ToBeAdded_SgNBAddReq_ItemIEs__value_PR_E_RABs_ToBeAdded_SgNBAddReq_Item -} E_RABs_ToBeAdded_SgNBAddReq_ItemIEs__value_PR; -typedef enum E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_ItemIEs__value_PR { - E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_ItemIEs__value_PR_NOTHING, /* No components present */ - E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_ItemIEs__value_PR_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item -} E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_ItemIEs__value_PR; -typedef enum E_RABs_ToBeAdded_SgNBModReq_ItemIEs__value_PR { - E_RABs_ToBeAdded_SgNBModReq_ItemIEs__value_PR_NOTHING, /* No components present */ - E_RABs_ToBeAdded_SgNBModReq_ItemIEs__value_PR_E_RABs_ToBeAdded_SgNBModReq_Item -} E_RABs_ToBeAdded_SgNBModReq_ItemIEs__value_PR; -typedef enum E_RABs_ToBeModified_SgNBModReq_ItemIEs__value_PR { - E_RABs_ToBeModified_SgNBModReq_ItemIEs__value_PR_NOTHING, /* No components present */ - E_RABs_ToBeModified_SgNBModReq_ItemIEs__value_PR_E_RABs_ToBeModified_SgNBModReq_Item -} E_RABs_ToBeModified_SgNBModReq_ItemIEs__value_PR; -typedef enum E_RABs_ToBeReleased_SgNBModReq_ItemIEs__value_PR { - E_RABs_ToBeReleased_SgNBModReq_ItemIEs__value_PR_NOTHING, /* No components present */ - E_RABs_ToBeReleased_SgNBModReq_ItemIEs__value_PR_E_RABs_ToBeReleased_SgNBModReq_Item -} E_RABs_ToBeReleased_SgNBModReq_ItemIEs__value_PR; -typedef enum E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemIEs__value_PR { - E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemIEs__value_PR_NOTHING, /* No components present */ - E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemIEs__value_PR_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item -} E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemIEs__value_PR; -typedef enum E_RABs_Admitted_ToBeModified_SgNBModAck_ItemIEs__value_PR { - E_RABs_Admitted_ToBeModified_SgNBModAck_ItemIEs__value_PR_NOTHING, /* No components present */ - E_RABs_Admitted_ToBeModified_SgNBModAck_ItemIEs__value_PR_E_RABs_Admitted_ToBeModified_SgNBModAck_Item -} E_RABs_Admitted_ToBeModified_SgNBModAck_ItemIEs__value_PR; -typedef enum E_RABs_Admitted_ToBeReleased_SgNBModAck_ItemIEs__value_PR { - E_RABs_Admitted_ToBeReleased_SgNBModAck_ItemIEs__value_PR_NOTHING, /* No components present */ - E_RABs_Admitted_ToBeReleased_SgNBModAck_ItemIEs__value_PR_E_RABs_Admitted_ToReleased_SgNBModAck_Item -} E_RABs_Admitted_ToBeReleased_SgNBModAck_ItemIEs__value_PR; -typedef enum E_RABs_ToBeReleased_SgNBModReqd_ItemIEs__value_PR { - E_RABs_ToBeReleased_SgNBModReqd_ItemIEs__value_PR_NOTHING, /* No components present */ - E_RABs_ToBeReleased_SgNBModReqd_ItemIEs__value_PR_E_RABs_ToBeReleased_SgNBModReqd_Item -} E_RABs_ToBeReleased_SgNBModReqd_ItemIEs__value_PR; -typedef enum E_RABs_ToBeModified_SgNBModReqd_ItemIEs__value_PR { - E_RABs_ToBeModified_SgNBModReqd_ItemIEs__value_PR_NOTHING, /* No components present */ - E_RABs_ToBeModified_SgNBModReqd_ItemIEs__value_PR_E_RABs_ToBeModified_SgNBModReqd_Item -} E_RABs_ToBeModified_SgNBModReqd_ItemIEs__value_PR; -typedef enum E_RABs_AdmittedToBeModified_SgNBModConf_ItemIEs__value_PR { - E_RABs_AdmittedToBeModified_SgNBModConf_ItemIEs__value_PR_NOTHING, /* No components present */ - E_RABs_AdmittedToBeModified_SgNBModConf_ItemIEs__value_PR_E_RABs_AdmittedToBeModified_SgNBModConf_Item -} E_RABs_AdmittedToBeModified_SgNBModConf_ItemIEs__value_PR; -typedef enum E_RABs_ToBeReleased_SgNBRelReq_ItemIEs__value_PR { - E_RABs_ToBeReleased_SgNBRelReq_ItemIEs__value_PR_NOTHING, /* No components present */ - E_RABs_ToBeReleased_SgNBRelReq_ItemIEs__value_PR_E_RABs_ToBeReleased_SgNBRelReq_Item -} E_RABs_ToBeReleased_SgNBRelReq_ItemIEs__value_PR; -typedef enum E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemIEs__value_PR { - E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemIEs__value_PR_NOTHING, /* No components present */ - E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemIEs__value_PR_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item -} E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemIEs__value_PR; -typedef enum E_RABs_ToBeReleased_SgNBRelReqd_ItemIEs__value_PR { - E_RABs_ToBeReleased_SgNBRelReqd_ItemIEs__value_PR_NOTHING, /* No components present */ - E_RABs_ToBeReleased_SgNBRelReqd_ItemIEs__value_PR_E_RABs_ToBeReleased_SgNBRelReqd_Item -} E_RABs_ToBeReleased_SgNBRelReqd_ItemIEs__value_PR; -typedef enum E_RABs_ToBeReleased_SgNBRelConf_ItemIEs__value_PR { - E_RABs_ToBeReleased_SgNBRelConf_ItemIEs__value_PR_NOTHING, /* No components present */ - E_RABs_ToBeReleased_SgNBRelConf_ItemIEs__value_PR_E_RABs_ToBeReleased_SgNBRelConf_Item -} E_RABs_ToBeReleased_SgNBRelConf_ItemIEs__value_PR; -typedef enum E_RABs_SubjectToSgNBCounterCheck_ItemIEs__value_PR { - E_RABs_SubjectToSgNBCounterCheck_ItemIEs__value_PR_NOTHING, /* No components present */ - E_RABs_SubjectToSgNBCounterCheck_ItemIEs__value_PR_E_RABs_SubjectToSgNBCounterCheck_Item -} E_RABs_SubjectToSgNBCounterCheck_ItemIEs__value_PR; -typedef enum E_RABs_ToBeReleased_SgNBChaConf_ItemIEs__value_PR { - E_RABs_ToBeReleased_SgNBChaConf_ItemIEs__value_PR_NOTHING, /* No components present */ - E_RABs_ToBeReleased_SgNBChaConf_ItemIEs__value_PR_E_RABs_ToBeReleased_SgNBChaConf_Item -} E_RABs_ToBeReleased_SgNBChaConf_ItemIEs__value_PR; -typedef enum E_RABs_DataForwardingAddress_ItemIEs__value_PR { - E_RABs_DataForwardingAddress_ItemIEs__value_PR_NOTHING, /* No components present */ - E_RABs_DataForwardingAddress_ItemIEs__value_PR_E_RABs_DataForwardingAddress_Item -} E_RABs_DataForwardingAddress_ItemIEs__value_PR; -typedef enum RICsubscriptionRequest_IEs__value_PR { - RICsubscriptionRequest_IEs__value_PR_NOTHING, /* No components present */ - RICsubscriptionRequest_IEs__value_PR_RICrequestID, - RICsubscriptionRequest_IEs__value_PR_RANfunctionID, - RICsubscriptionRequest_IEs__value_PR_RICsubscription -} RICsubscriptionRequest_IEs__value_PR; -typedef enum RICsubscriptionResponse_IEs__value_PR { - RICsubscriptionResponse_IEs__value_PR_NOTHING, /* No components present */ - RICsubscriptionResponse_IEs__value_PR_RICrequestID, - RICsubscriptionResponse_IEs__value_PR_RANfunctionID, - RICsubscriptionResponse_IEs__value_PR_RICaction_Admitted_List, - RICsubscriptionResponse_IEs__value_PR_RICaction_NotAdmitted_List -} RICsubscriptionResponse_IEs__value_PR; -typedef enum RICsubscriptionFailure_IEs__value_PR { - RICsubscriptionFailure_IEs__value_PR_NOTHING, /* No components present */ - RICsubscriptionFailure_IEs__value_PR_RICrequestID, - RICsubscriptionFailure_IEs__value_PR_RANfunctionID, - RICsubscriptionFailure_IEs__value_PR_RICaction_NotAdmitted_List, - RICsubscriptionFailure_IEs__value_PR_CriticalityDiagnostics -} RICsubscriptionFailure_IEs__value_PR; -typedef enum RICsubscriptionDeleteRequest_IEs__value_PR { - RICsubscriptionDeleteRequest_IEs__value_PR_NOTHING, /* No components present */ - RICsubscriptionDeleteRequest_IEs__value_PR_RICrequestID, - RICsubscriptionDeleteRequest_IEs__value_PR_RANfunctionID -} RICsubscriptionDeleteRequest_IEs__value_PR; -typedef enum RICsubscriptionDeleteResponse_IEs__value_PR { - RICsubscriptionDeleteResponse_IEs__value_PR_NOTHING, /* No components present */ - RICsubscriptionDeleteResponse_IEs__value_PR_RICrequestID, - RICsubscriptionDeleteResponse_IEs__value_PR_RANfunctionID -} RICsubscriptionDeleteResponse_IEs__value_PR; -typedef enum RICsubscriptionDeleteFailure_IEs__value_PR { - RICsubscriptionDeleteFailure_IEs__value_PR_NOTHING, /* No components present */ - RICsubscriptionDeleteFailure_IEs__value_PR_RICrequestID, - RICsubscriptionDeleteFailure_IEs__value_PR_RANfunctionID, - RICsubscriptionDeleteFailure_IEs__value_PR_RICcause, - RICsubscriptionDeleteFailure_IEs__value_PR_CriticalityDiagnostics -} RICsubscriptionDeleteFailure_IEs__value_PR; -typedef enum RICindication_IEs__value_PR { - RICindication_IEs__value_PR_NOTHING, /* No components present */ - RICindication_IEs__value_PR_RICrequestID, - RICindication_IEs__value_PR_RANfunctionID, - RICindication_IEs__value_PR_RICactionID, - RICindication_IEs__value_PR_RICindicationSN, - RICindication_IEs__value_PR_RICindicationType, - RICindication_IEs__value_PR_RICindicationHeader, - RICindication_IEs__value_PR_RICindicationMessage, - RICindication_IEs__value_PR_RICcallProcessID -} RICindication_IEs__value_PR; -typedef enum RICcontrolRequest_IEs__value_PR { - RICcontrolRequest_IEs__value_PR_NOTHING, /* No components present */ - RICcontrolRequest_IEs__value_PR_RICrequestID, - RICcontrolRequest_IEs__value_PR_RANfunctionID, - RICcontrolRequest_IEs__value_PR_RICcallProcessID, - RICcontrolRequest_IEs__value_PR_RICcontrolHeader, - RICcontrolRequest_IEs__value_PR_RICcontrolMessage, - RICcontrolRequest_IEs__value_PR_RICcontrolAckRequest -} RICcontrolRequest_IEs__value_PR; -typedef enum RICcontrolAcknowledge_IEs__value_PR { - RICcontrolAcknowledge_IEs__value_PR_NOTHING, /* No components present */ - RICcontrolAcknowledge_IEs__value_PR_RICrequestID, - RICcontrolAcknowledge_IEs__value_PR_RANfunctionID, - RICcontrolAcknowledge_IEs__value_PR_RICcallProcessID, - RICcontrolAcknowledge_IEs__value_PR_RICcontrolStatus -} RICcontrolAcknowledge_IEs__value_PR; -typedef enum RICcontrolFailure_IEs__value_PR { - RICcontrolFailure_IEs__value_PR_NOTHING, /* No components present */ - RICcontrolFailure_IEs__value_PR_RICrequestID, - RICcontrolFailure_IEs__value_PR_RANfunctionID, - RICcontrolFailure_IEs__value_PR_RICcallProcessID, - RICcontrolFailure_IEs__value_PR_RICcause -} RICcontrolFailure_IEs__value_PR; -typedef enum RICserviceUpdate_IEs__value_PR { - RICserviceUpdate_IEs__value_PR_NOTHING, /* No components present */ - RICserviceUpdate_IEs__value_PR_RANfunctions_List, - RICserviceUpdate_IEs__value_PR_RANfunctionsID_List -} RICserviceUpdate_IEs__value_PR; -typedef enum RICserviceUpdateAcknowledge_IEs__value_PR { - RICserviceUpdateAcknowledge_IEs__value_PR_NOTHING, /* No components present */ - RICserviceUpdateAcknowledge_IEs__value_PR_RANfunctionsID_List, - RICserviceUpdateAcknowledge_IEs__value_PR_RANfunctionsIDcause_List -} RICserviceUpdateAcknowledge_IEs__value_PR; -typedef enum RICserviceUpdateFailure_IEs__value_PR { - RICserviceUpdateFailure_IEs__value_PR_NOTHING, /* No components present */ - RICserviceUpdateFailure_IEs__value_PR_RANfunctionsIDcause_List, - RICserviceUpdateFailure_IEs__value_PR_TimeToWait, - RICserviceUpdateFailure_IEs__value_PR_CriticalityDiagnostics -} RICserviceUpdateFailure_IEs__value_PR; -typedef enum RICserviceQuery_IEs__value_PR { - RICserviceQuery_IEs__value_PR_NOTHING, /* No components present */ - RICserviceQuery_IEs__value_PR_RANfunctionsID_List -} RICserviceQuery_IEs__value_PR; -typedef enum HandoverRequest_IEs__value_PR { - HandoverRequest_IEs__value_PR_NOTHING, /* No components present */ - HandoverRequest_IEs__value_PR_UE_X2AP_ID, - HandoverRequest_IEs__value_PR_Cause, - HandoverRequest_IEs__value_PR_ECGI, - HandoverRequest_IEs__value_PR_GUMMEI, - HandoverRequest_IEs__value_PR_UE_ContextInformation, - HandoverRequest_IEs__value_PR_UE_HistoryInformation, - HandoverRequest_IEs__value_PR_TraceActivation, - HandoverRequest_IEs__value_PR_SRVCCOperationPossible, - HandoverRequest_IEs__value_PR_CSGMembershipStatus, - HandoverRequest_IEs__value_PR_MobilityInformation, - HandoverRequest_IEs__value_PR_Masked_IMEISV, - HandoverRequest_IEs__value_PR_UE_HistoryInformationFromTheUE, - HandoverRequest_IEs__value_PR_ExpectedUEBehaviour, - HandoverRequest_IEs__value_PR_ProSeAuthorized, - HandoverRequest_IEs__value_PR_UE_ContextReferenceAtSeNB, - HandoverRequest_IEs__value_PR_UE_X2AP_ID_Extension, - HandoverRequest_IEs__value_PR_V2XServicesAuthorized, - HandoverRequest_IEs__value_PR_UE_ContextReferenceAtWT, - HandoverRequest_IEs__value_PR_NRUESecurityCapabilities, - HandoverRequest_IEs__value_PR_UE_ContextReferenceAtSgNB, - HandoverRequest_IEs__value_PR_AerialUEsubscriptionInformation, - HandoverRequest_IEs__value_PR_Subscription_Based_UE_DifferentiationInfo -} HandoverRequest_IEs__value_PR; -typedef enum HandoverRequestAcknowledge_IEs__value_PR { - HandoverRequestAcknowledge_IEs__value_PR_NOTHING, /* No components present */ - HandoverRequestAcknowledge_IEs__value_PR_UE_X2AP_ID, - HandoverRequestAcknowledge_IEs__value_PR_E_RABs_Admitted_List, - HandoverRequestAcknowledge_IEs__value_PR_E_RAB_List, - HandoverRequestAcknowledge_IEs__value_PR_TargeteNBtoSource_eNBTransparentContainer, - HandoverRequestAcknowledge_IEs__value_PR_CriticalityDiagnostics, - HandoverRequestAcknowledge_IEs__value_PR_UE_ContextKeptIndicator, - HandoverRequestAcknowledge_IEs__value_PR_UE_X2AP_ID_Extension -} HandoverRequestAcknowledge_IEs__value_PR; -typedef enum HandoverPreparationFailure_IEs__value_PR { - HandoverPreparationFailure_IEs__value_PR_NOTHING, /* No components present */ - HandoverPreparationFailure_IEs__value_PR_UE_X2AP_ID, - HandoverPreparationFailure_IEs__value_PR_Cause, - HandoverPreparationFailure_IEs__value_PR_CriticalityDiagnostics, - HandoverPreparationFailure_IEs__value_PR_UE_X2AP_ID_Extension -} HandoverPreparationFailure_IEs__value_PR; -typedef enum HandoverReport_IEs__value_PR { - HandoverReport_IEs__value_PR_NOTHING, /* No components present */ - HandoverReport_IEs__value_PR_HandoverReportType, - HandoverReport_IEs__value_PR_Cause, - HandoverReport_IEs__value_PR_ECGI, - HandoverReport_IEs__value_PR_TargetCellInUTRAN, - HandoverReport_IEs__value_PR_CRNTI, - HandoverReport_IEs__value_PR_MobilityInformation, - HandoverReport_IEs__value_PR_UE_RLF_Report_Container, - HandoverReport_IEs__value_PR_UE_RLF_Report_Container_for_extended_bands -} HandoverReport_IEs__value_PR; -typedef enum SNStatusTransfer_IEs__value_PR { - SNStatusTransfer_IEs__value_PR_NOTHING, /* No components present */ - SNStatusTransfer_IEs__value_PR_UE_X2AP_ID, - SNStatusTransfer_IEs__value_PR_E_RABs_SubjectToStatusTransfer_List, - SNStatusTransfer_IEs__value_PR_UE_X2AP_ID_Extension, - SNStatusTransfer_IEs__value_PR_SgNB_UE_X2AP_ID -} SNStatusTransfer_IEs__value_PR; -typedef enum UEContextRelease_IEs__value_PR { - UEContextRelease_IEs__value_PR_NOTHING, /* No components present */ - UEContextRelease_IEs__value_PR_UE_X2AP_ID, - UEContextRelease_IEs__value_PR_UE_X2AP_ID_Extension, - UEContextRelease_IEs__value_PR_SIPTOBearerDeactivationIndication, - UEContextRelease_IEs__value_PR_SgNB_UE_X2AP_ID -} UEContextRelease_IEs__value_PR; -typedef enum HandoverCancel_IEs__value_PR { - HandoverCancel_IEs__value_PR_NOTHING, /* No components present */ - HandoverCancel_IEs__value_PR_UE_X2AP_ID, - HandoverCancel_IEs__value_PR_Cause, - HandoverCancel_IEs__value_PR_UE_X2AP_ID_Extension -} HandoverCancel_IEs__value_PR; -typedef enum ErrorIndication_IEs__value_PR { - ErrorIndication_IEs__value_PR_NOTHING, /* No components present */ - ErrorIndication_IEs__value_PR_UE_X2AP_ID, - ErrorIndication_IEs__value_PR_Cause, - ErrorIndication_IEs__value_PR_CriticalityDiagnostics, - ErrorIndication_IEs__value_PR_UE_X2AP_ID_Extension, - ErrorIndication_IEs__value_PR_SgNB_UE_X2AP_ID -} ErrorIndication_IEs__value_PR; -typedef enum ResetRequest_IEs__value_PR { - ResetRequest_IEs__value_PR_NOTHING, /* No components present */ - ResetRequest_IEs__value_PR_Cause -} ResetRequest_IEs__value_PR; -typedef enum ResetResponse_IEs__value_PR { - ResetResponse_IEs__value_PR_NOTHING, /* No components present */ - ResetResponse_IEs__value_PR_CriticalityDiagnostics -} ResetResponse_IEs__value_PR; -typedef enum X2SetupRequest_IEs__value_PR { - X2SetupRequest_IEs__value_PR_NOTHING, /* No components present */ - X2SetupRequest_IEs__value_PR_GlobalENB_ID, - X2SetupRequest_IEs__value_PR_ServedCells, - X2SetupRequest_IEs__value_PR_GUGroupIDList, - X2SetupRequest_IEs__value_PR_LHN_ID -} X2SetupRequest_IEs__value_PR; -typedef enum X2SetupResponse_IEs__value_PR { - X2SetupResponse_IEs__value_PR_NOTHING, /* No components present */ - X2SetupResponse_IEs__value_PR_GlobalENB_ID, - X2SetupResponse_IEs__value_PR_ServedCells, - X2SetupResponse_IEs__value_PR_GUGroupIDList, - X2SetupResponse_IEs__value_PR_CriticalityDiagnostics, - X2SetupResponse_IEs__value_PR_LHN_ID -} X2SetupResponse_IEs__value_PR; -typedef enum X2SetupFailure_IEs__value_PR { - X2SetupFailure_IEs__value_PR_NOTHING, /* No components present */ - X2SetupFailure_IEs__value_PR_Cause, - X2SetupFailure_IEs__value_PR_TimeToWait, - X2SetupFailure_IEs__value_PR_CriticalityDiagnostics -} X2SetupFailure_IEs__value_PR; -typedef enum LoadInformation_IEs__value_PR { - LoadInformation_IEs__value_PR_NOTHING, /* No components present */ - LoadInformation_IEs__value_PR_CellInformation_List -} LoadInformation_IEs__value_PR; -typedef enum ENBConfigurationUpdate_IEs__value_PR { - ENBConfigurationUpdate_IEs__value_PR_NOTHING, /* No components present */ - ENBConfigurationUpdate_IEs__value_PR_ServedCells, - ENBConfigurationUpdate_IEs__value_PR_ServedCellsToModify, - ENBConfigurationUpdate_IEs__value_PR_Old_ECGIs, - ENBConfigurationUpdate_IEs__value_PR_GUGroupIDList, - ENBConfigurationUpdate_IEs__value_PR_CoverageModificationList -} ENBConfigurationUpdate_IEs__value_PR; -typedef enum ENBConfigurationUpdateAcknowledge_IEs__value_PR { - ENBConfigurationUpdateAcknowledge_IEs__value_PR_NOTHING, /* No components present */ - ENBConfigurationUpdateAcknowledge_IEs__value_PR_CriticalityDiagnostics -} ENBConfigurationUpdateAcknowledge_IEs__value_PR; -typedef enum ENBConfigurationUpdateFailure_IEs__value_PR { - ENBConfigurationUpdateFailure_IEs__value_PR_NOTHING, /* No components present */ - ENBConfigurationUpdateFailure_IEs__value_PR_Cause, - ENBConfigurationUpdateFailure_IEs__value_PR_TimeToWait, - ENBConfigurationUpdateFailure_IEs__value_PR_CriticalityDiagnostics -} ENBConfigurationUpdateFailure_IEs__value_PR; -typedef enum ResourceStatusRequest_IEs__value_PR { - ResourceStatusRequest_IEs__value_PR_NOTHING, /* No components present */ - ResourceStatusRequest_IEs__value_PR_Measurement_ID, - ResourceStatusRequest_IEs__value_PR_Registration_Request, - ResourceStatusRequest_IEs__value_PR_ReportCharacteristics, - ResourceStatusRequest_IEs__value_PR_CellToReport_List, - ResourceStatusRequest_IEs__value_PR_ReportingPeriodicity, - ResourceStatusRequest_IEs__value_PR_PartialSuccessIndicator, - ResourceStatusRequest_IEs__value_PR_ReportingPeriodicityRSRPMR, - ResourceStatusRequest_IEs__value_PR_ReportingPeriodicityCSIR -} ResourceStatusRequest_IEs__value_PR; -typedef enum ResourceStatusResponse_IEs__value_PR { - ResourceStatusResponse_IEs__value_PR_NOTHING, /* No components present */ - ResourceStatusResponse_IEs__value_PR_Measurement_ID, - ResourceStatusResponse_IEs__value_PR_CriticalityDiagnostics, - ResourceStatusResponse_IEs__value_PR_MeasurementInitiationResult_List -} ResourceStatusResponse_IEs__value_PR; -typedef enum ResourceStatusFailure_IEs__value_PR { - ResourceStatusFailure_IEs__value_PR_NOTHING, /* No components present */ - ResourceStatusFailure_IEs__value_PR_Measurement_ID, - ResourceStatusFailure_IEs__value_PR_Cause, - ResourceStatusFailure_IEs__value_PR_CriticalityDiagnostics, - ResourceStatusFailure_IEs__value_PR_CompleteFailureCauseInformation_List -} ResourceStatusFailure_IEs__value_PR; -typedef enum ResourceStatusUpdate_IEs__value_PR { - ResourceStatusUpdate_IEs__value_PR_NOTHING, /* No components present */ - ResourceStatusUpdate_IEs__value_PR_Measurement_ID, - ResourceStatusUpdate_IEs__value_PR_CellMeasurementResult_List -} ResourceStatusUpdate_IEs__value_PR; -typedef enum MobilityChangeRequest_IEs__value_PR { - MobilityChangeRequest_IEs__value_PR_NOTHING, /* No components present */ - MobilityChangeRequest_IEs__value_PR_ECGI, - MobilityChangeRequest_IEs__value_PR_MobilityParametersInformation, - MobilityChangeRequest_IEs__value_PR_Cause -} MobilityChangeRequest_IEs__value_PR; -typedef enum MobilityChangeAcknowledge_IEs__value_PR { - MobilityChangeAcknowledge_IEs__value_PR_NOTHING, /* No components present */ - MobilityChangeAcknowledge_IEs__value_PR_ECGI, - MobilityChangeAcknowledge_IEs__value_PR_CriticalityDiagnostics -} MobilityChangeAcknowledge_IEs__value_PR; -typedef enum MobilityChangeFailure_IEs__value_PR { - MobilityChangeFailure_IEs__value_PR_NOTHING, /* No components present */ - MobilityChangeFailure_IEs__value_PR_ECGI, - MobilityChangeFailure_IEs__value_PR_Cause, - MobilityChangeFailure_IEs__value_PR_MobilityParametersModificationRange, - MobilityChangeFailure_IEs__value_PR_CriticalityDiagnostics -} MobilityChangeFailure_IEs__value_PR; -typedef enum RLFIndication_IEs__value_PR { - RLFIndication_IEs__value_PR_NOTHING, /* No components present */ - RLFIndication_IEs__value_PR_PCI, - RLFIndication_IEs__value_PR_ECGI, - RLFIndication_IEs__value_PR_CRNTI, - RLFIndication_IEs__value_PR_ShortMAC_I, - RLFIndication_IEs__value_PR_UE_RLF_Report_Container, - RLFIndication_IEs__value_PR_RRCConnSetupIndicator, - RLFIndication_IEs__value_PR_RRCConnReestabIndicator, - RLFIndication_IEs__value_PR_UE_RLF_Report_Container_for_extended_bands -} RLFIndication_IEs__value_PR; -typedef enum CellActivationRequest_IEs__value_PR { - CellActivationRequest_IEs__value_PR_NOTHING, /* No components present */ - CellActivationRequest_IEs__value_PR_ServedCellsToActivate -} CellActivationRequest_IEs__value_PR; -typedef enum CellActivationResponse_IEs__value_PR { - CellActivationResponse_IEs__value_PR_NOTHING, /* No components present */ - CellActivationResponse_IEs__value_PR_ActivatedCellList, - CellActivationResponse_IEs__value_PR_CriticalityDiagnostics -} CellActivationResponse_IEs__value_PR; -typedef enum CellActivationFailure_IEs__value_PR { - CellActivationFailure_IEs__value_PR_NOTHING, /* No components present */ - CellActivationFailure_IEs__value_PR_Cause, - CellActivationFailure_IEs__value_PR_CriticalityDiagnostics -} CellActivationFailure_IEs__value_PR; -typedef enum X2Release_IEs__value_PR { - X2Release_IEs__value_PR_NOTHING, /* No components present */ - X2Release_IEs__value_PR_GlobalENB_ID -} X2Release_IEs__value_PR; -typedef enum X2APMessageTransfer_IEs__value_PR { - X2APMessageTransfer_IEs__value_PR_NOTHING, /* No components present */ - X2APMessageTransfer_IEs__value_PR_RNL_Header, - X2APMessageTransfer_IEs__value_PR_X2AP_Message -} X2APMessageTransfer_IEs__value_PR; -typedef enum SeNBAdditionRequest_IEs__value_PR { - SeNBAdditionRequest_IEs__value_PR_NOTHING, /* No components present */ - SeNBAdditionRequest_IEs__value_PR_UE_X2AP_ID, - SeNBAdditionRequest_IEs__value_PR_UESecurityCapabilities, - SeNBAdditionRequest_IEs__value_PR_SeNBSecurityKey, - SeNBAdditionRequest_IEs__value_PR_UEAggregateMaximumBitRate, - SeNBAdditionRequest_IEs__value_PR_PLMN_Identity, - SeNBAdditionRequest_IEs__value_PR_E_RABs_ToBeAdded_List, - SeNBAdditionRequest_IEs__value_PR_MeNBtoSeNBContainer, - SeNBAdditionRequest_IEs__value_PR_CSGMembershipStatus, - SeNBAdditionRequest_IEs__value_PR_UE_X2AP_ID_Extension, - SeNBAdditionRequest_IEs__value_PR_ExpectedUEBehaviour -} SeNBAdditionRequest_IEs__value_PR; -typedef enum SeNBAdditionRequestAcknowledge_IEs__value_PR { - SeNBAdditionRequestAcknowledge_IEs__value_PR_NOTHING, /* No components present */ - SeNBAdditionRequestAcknowledge_IEs__value_PR_UE_X2AP_ID, - SeNBAdditionRequestAcknowledge_IEs__value_PR_E_RABs_Admitted_ToBeAdded_List, - SeNBAdditionRequestAcknowledge_IEs__value_PR_E_RAB_List, - SeNBAdditionRequestAcknowledge_IEs__value_PR_SeNBtoMeNBContainer, - SeNBAdditionRequestAcknowledge_IEs__value_PR_CriticalityDiagnostics, - SeNBAdditionRequestAcknowledge_IEs__value_PR_TransportLayerAddress, - SeNBAdditionRequestAcknowledge_IEs__value_PR_UE_X2AP_ID_Extension, - SeNBAdditionRequestAcknowledge_IEs__value_PR_TunnelInformation -} SeNBAdditionRequestAcknowledge_IEs__value_PR; -typedef enum SeNBAdditionRequestReject_IEs__value_PR { - SeNBAdditionRequestReject_IEs__value_PR_NOTHING, /* No components present */ - SeNBAdditionRequestReject_IEs__value_PR_UE_X2AP_ID, - SeNBAdditionRequestReject_IEs__value_PR_Cause, - SeNBAdditionRequestReject_IEs__value_PR_CriticalityDiagnostics, - SeNBAdditionRequestReject_IEs__value_PR_UE_X2AP_ID_Extension -} SeNBAdditionRequestReject_IEs__value_PR; -typedef enum SeNBReconfigurationComplete_IEs__value_PR { - SeNBReconfigurationComplete_IEs__value_PR_NOTHING, /* No components present */ - SeNBReconfigurationComplete_IEs__value_PR_UE_X2AP_ID, - SeNBReconfigurationComplete_IEs__value_PR_ResponseInformationSeNBReconfComp, - SeNBReconfigurationComplete_IEs__value_PR_UE_X2AP_ID_Extension -} SeNBReconfigurationComplete_IEs__value_PR; -typedef enum SeNBModificationRequest_IEs__value_PR { - SeNBModificationRequest_IEs__value_PR_NOTHING, /* No components present */ - SeNBModificationRequest_IEs__value_PR_UE_X2AP_ID, - SeNBModificationRequest_IEs__value_PR_Cause, - SeNBModificationRequest_IEs__value_PR_SCGChangeIndication, - SeNBModificationRequest_IEs__value_PR_PLMN_Identity, - SeNBModificationRequest_IEs__value_PR_UE_ContextInformationSeNBModReq, - SeNBModificationRequest_IEs__value_PR_MeNBtoSeNBContainer, - SeNBModificationRequest_IEs__value_PR_CSGMembershipStatus, - SeNBModificationRequest_IEs__value_PR_UE_X2AP_ID_Extension -} SeNBModificationRequest_IEs__value_PR; -typedef enum SeNBModificationRequestAcknowledge_IEs__value_PR { - SeNBModificationRequestAcknowledge_IEs__value_PR_NOTHING, /* No components present */ - SeNBModificationRequestAcknowledge_IEs__value_PR_UE_X2AP_ID, - SeNBModificationRequestAcknowledge_IEs__value_PR_E_RABs_Admitted_ToBeAdded_ModAckList, - SeNBModificationRequestAcknowledge_IEs__value_PR_E_RABs_Admitted_ToBeModified_ModAckList, - SeNBModificationRequestAcknowledge_IEs__value_PR_E_RABs_Admitted_ToBeReleased_ModAckList, - SeNBModificationRequestAcknowledge_IEs__value_PR_E_RAB_List, - SeNBModificationRequestAcknowledge_IEs__value_PR_SeNBtoMeNBContainer, - SeNBModificationRequestAcknowledge_IEs__value_PR_CriticalityDiagnostics, - SeNBModificationRequestAcknowledge_IEs__value_PR_UE_X2AP_ID_Extension -} SeNBModificationRequestAcknowledge_IEs__value_PR; -typedef enum SeNBModificationRequestReject_IEs__value_PR { - SeNBModificationRequestReject_IEs__value_PR_NOTHING, /* No components present */ - SeNBModificationRequestReject_IEs__value_PR_UE_X2AP_ID, - SeNBModificationRequestReject_IEs__value_PR_Cause, - SeNBModificationRequestReject_IEs__value_PR_CriticalityDiagnostics, - SeNBModificationRequestReject_IEs__value_PR_UE_X2AP_ID_Extension -} SeNBModificationRequestReject_IEs__value_PR; -typedef enum SeNBModificationRequired_IEs__value_PR { - SeNBModificationRequired_IEs__value_PR_NOTHING, /* No components present */ - SeNBModificationRequired_IEs__value_PR_UE_X2AP_ID, - SeNBModificationRequired_IEs__value_PR_Cause, - SeNBModificationRequired_IEs__value_PR_SCGChangeIndication, - SeNBModificationRequired_IEs__value_PR_E_RABs_ToBeReleased_ModReqd, - SeNBModificationRequired_IEs__value_PR_SeNBtoMeNBContainer, - SeNBModificationRequired_IEs__value_PR_UE_X2AP_ID_Extension -} SeNBModificationRequired_IEs__value_PR; -typedef enum SeNBModificationConfirm_IEs__value_PR { - SeNBModificationConfirm_IEs__value_PR_NOTHING, /* No components present */ - SeNBModificationConfirm_IEs__value_PR_UE_X2AP_ID, - SeNBModificationConfirm_IEs__value_PR_MeNBtoSeNBContainer, - SeNBModificationConfirm_IEs__value_PR_CriticalityDiagnostics, - SeNBModificationConfirm_IEs__value_PR_UE_X2AP_ID_Extension -} SeNBModificationConfirm_IEs__value_PR; -typedef enum SeNBModificationRefuse_IEs__value_PR { - SeNBModificationRefuse_IEs__value_PR_NOTHING, /* No components present */ - SeNBModificationRefuse_IEs__value_PR_UE_X2AP_ID, - SeNBModificationRefuse_IEs__value_PR_Cause, - SeNBModificationRefuse_IEs__value_PR_MeNBtoSeNBContainer, - SeNBModificationRefuse_IEs__value_PR_CriticalityDiagnostics, - SeNBModificationRefuse_IEs__value_PR_UE_X2AP_ID_Extension -} SeNBModificationRefuse_IEs__value_PR; -typedef enum SeNBReleaseRequest_IEs__value_PR { - SeNBReleaseRequest_IEs__value_PR_NOTHING, /* No components present */ - SeNBReleaseRequest_IEs__value_PR_UE_X2AP_ID, - SeNBReleaseRequest_IEs__value_PR_Cause, - SeNBReleaseRequest_IEs__value_PR_E_RABs_ToBeReleased_List_RelReq, - SeNBReleaseRequest_IEs__value_PR_UE_ContextKeptIndicator, - SeNBReleaseRequest_IEs__value_PR_UE_X2AP_ID_Extension, - SeNBReleaseRequest_IEs__value_PR_MakeBeforeBreakIndicator -} SeNBReleaseRequest_IEs__value_PR; -typedef enum SeNBReleaseRequired_IEs__value_PR { - SeNBReleaseRequired_IEs__value_PR_NOTHING, /* No components present */ - SeNBReleaseRequired_IEs__value_PR_UE_X2AP_ID, - SeNBReleaseRequired_IEs__value_PR_Cause, - SeNBReleaseRequired_IEs__value_PR_UE_X2AP_ID_Extension -} SeNBReleaseRequired_IEs__value_PR; -typedef enum SeNBReleaseConfirm_IEs__value_PR { - SeNBReleaseConfirm_IEs__value_PR_NOTHING, /* No components present */ - SeNBReleaseConfirm_IEs__value_PR_UE_X2AP_ID, - SeNBReleaseConfirm_IEs__value_PR_E_RABs_ToBeReleased_List_RelConf, - SeNBReleaseConfirm_IEs__value_PR_CriticalityDiagnostics, - SeNBReleaseConfirm_IEs__value_PR_UE_X2AP_ID_Extension -} SeNBReleaseConfirm_IEs__value_PR; -typedef enum SeNBCounterCheckRequest_IEs__value_PR { - SeNBCounterCheckRequest_IEs__value_PR_NOTHING, /* No components present */ - SeNBCounterCheckRequest_IEs__value_PR_UE_X2AP_ID, - SeNBCounterCheckRequest_IEs__value_PR_E_RABs_SubjectToCounterCheck_List, - SeNBCounterCheckRequest_IEs__value_PR_UE_X2AP_ID_Extension -} SeNBCounterCheckRequest_IEs__value_PR; -typedef enum X2RemovalRequest_IEs__value_PR { - X2RemovalRequest_IEs__value_PR_NOTHING, /* No components present */ - X2RemovalRequest_IEs__value_PR_GlobalENB_ID, - X2RemovalRequest_IEs__value_PR_X2BenefitValue -} X2RemovalRequest_IEs__value_PR; -typedef enum X2RemovalResponse_IEs__value_PR { - X2RemovalResponse_IEs__value_PR_NOTHING, /* No components present */ - X2RemovalResponse_IEs__value_PR_GlobalENB_ID, - X2RemovalResponse_IEs__value_PR_CriticalityDiagnostics -} X2RemovalResponse_IEs__value_PR; -typedef enum X2RemovalFailure_IEs__value_PR { - X2RemovalFailure_IEs__value_PR_NOTHING, /* No components present */ - X2RemovalFailure_IEs__value_PR_Cause, - X2RemovalFailure_IEs__value_PR_CriticalityDiagnostics -} X2RemovalFailure_IEs__value_PR; -typedef enum RetrieveUEContextRequest_IEs__value_PR { - RetrieveUEContextRequest_IEs__value_PR_NOTHING, /* No components present */ - RetrieveUEContextRequest_IEs__value_PR_UE_X2AP_ID, - RetrieveUEContextRequest_IEs__value_PR_UE_X2AP_ID_Extension, - RetrieveUEContextRequest_IEs__value_PR_ResumeID, - RetrieveUEContextRequest_IEs__value_PR_ShortMAC_I, - RetrieveUEContextRequest_IEs__value_PR_EUTRANCellIdentifier, - RetrieveUEContextRequest_IEs__value_PR_CRNTI, - RetrieveUEContextRequest_IEs__value_PR_PCI -} RetrieveUEContextRequest_IEs__value_PR; -typedef enum RetrieveUEContextResponse_IEs__value_PR { - RetrieveUEContextResponse_IEs__value_PR_NOTHING, /* No components present */ - RetrieveUEContextResponse_IEs__value_PR_UE_X2AP_ID, - RetrieveUEContextResponse_IEs__value_PR_UE_X2AP_ID_Extension, - RetrieveUEContextResponse_IEs__value_PR_GUMMEI, - RetrieveUEContextResponse_IEs__value_PR_UE_ContextInformationRetrieve, - RetrieveUEContextResponse_IEs__value_PR_TraceActivation, - RetrieveUEContextResponse_IEs__value_PR_SRVCCOperationPossible, - RetrieveUEContextResponse_IEs__value_PR_Masked_IMEISV, - RetrieveUEContextResponse_IEs__value_PR_ExpectedUEBehaviour, - RetrieveUEContextResponse_IEs__value_PR_ProSeAuthorized, - RetrieveUEContextResponse_IEs__value_PR_CriticalityDiagnostics, - RetrieveUEContextResponse_IEs__value_PR_V2XServicesAuthorized, - RetrieveUEContextResponse_IEs__value_PR_AerialUEsubscriptionInformation, - RetrieveUEContextResponse_IEs__value_PR_Subscription_Based_UE_DifferentiationInfo -} RetrieveUEContextResponse_IEs__value_PR; -typedef enum RetrieveUEContextFailure_IEs__value_PR { - RetrieveUEContextFailure_IEs__value_PR_NOTHING, /* No components present */ - RetrieveUEContextFailure_IEs__value_PR_UE_X2AP_ID, - RetrieveUEContextFailure_IEs__value_PR_UE_X2AP_ID_Extension, - RetrieveUEContextFailure_IEs__value_PR_Cause, - RetrieveUEContextFailure_IEs__value_PR_CriticalityDiagnostics -} RetrieveUEContextFailure_IEs__value_PR; -typedef enum SgNBAdditionRequest_IEs__value_PR { - SgNBAdditionRequest_IEs__value_PR_NOTHING, /* No components present */ - SgNBAdditionRequest_IEs__value_PR_UE_X2AP_ID, - SgNBAdditionRequest_IEs__value_PR_NRUESecurityCapabilities, - SgNBAdditionRequest_IEs__value_PR_SgNBSecurityKey, - SgNBAdditionRequest_IEs__value_PR_UEAggregateMaximumBitRate, - SgNBAdditionRequest_IEs__value_PR_PLMN_Identity, - SgNBAdditionRequest_IEs__value_PR_HandoverRestrictionList, - SgNBAdditionRequest_IEs__value_PR_E_RABs_ToBeAdded_SgNBAddReqList, - SgNBAdditionRequest_IEs__value_PR_MeNBtoSgNBContainer, - SgNBAdditionRequest_IEs__value_PR_SgNB_UE_X2AP_ID, - SgNBAdditionRequest_IEs__value_PR_ExpectedUEBehaviour, - SgNBAdditionRequest_IEs__value_PR_UE_X2AP_ID_Extension, - SgNBAdditionRequest_IEs__value_PR_SplitSRBs, - SgNBAdditionRequest_IEs__value_PR_MeNBResourceCoordinationInformation, - SgNBAdditionRequest_IEs__value_PR_SGNB_Addition_Trigger_Ind, - SgNBAdditionRequest_IEs__value_PR_SubscriberProfileIDforRFP, - SgNBAdditionRequest_IEs__value_PR_ECGI -} SgNBAdditionRequest_IEs__value_PR; -typedef enum SgNBAdditionRequestAcknowledge_IEs__value_PR { - SgNBAdditionRequestAcknowledge_IEs__value_PR_NOTHING, /* No components present */ - SgNBAdditionRequestAcknowledge_IEs__value_PR_UE_X2AP_ID, - SgNBAdditionRequestAcknowledge_IEs__value_PR_SgNB_UE_X2AP_ID, - SgNBAdditionRequestAcknowledge_IEs__value_PR_E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList, - SgNBAdditionRequestAcknowledge_IEs__value_PR_E_RAB_List, - SgNBAdditionRequestAcknowledge_IEs__value_PR_SgNBtoMeNBContainer, - SgNBAdditionRequestAcknowledge_IEs__value_PR_CriticalityDiagnostics, - SgNBAdditionRequestAcknowledge_IEs__value_PR_UE_X2AP_ID_Extension, - SgNBAdditionRequestAcknowledge_IEs__value_PR_SplitSRBs, - SgNBAdditionRequestAcknowledge_IEs__value_PR_SgNBResourceCoordinationInformation, - SgNBAdditionRequestAcknowledge_IEs__value_PR_RRC_Config_Ind -} SgNBAdditionRequestAcknowledge_IEs__value_PR; -typedef enum SgNBAdditionRequestReject_IEs__value_PR { - SgNBAdditionRequestReject_IEs__value_PR_NOTHING, /* No components present */ - SgNBAdditionRequestReject_IEs__value_PR_UE_X2AP_ID, - SgNBAdditionRequestReject_IEs__value_PR_SgNB_UE_X2AP_ID, - SgNBAdditionRequestReject_IEs__value_PR_Cause, - SgNBAdditionRequestReject_IEs__value_PR_CriticalityDiagnostics, - SgNBAdditionRequestReject_IEs__value_PR_UE_X2AP_ID_Extension -} SgNBAdditionRequestReject_IEs__value_PR; -typedef enum SgNBReconfigurationComplete_IEs__value_PR { - SgNBReconfigurationComplete_IEs__value_PR_NOTHING, /* No components present */ - SgNBReconfigurationComplete_IEs__value_PR_UE_X2AP_ID, - SgNBReconfigurationComplete_IEs__value_PR_SgNB_UE_X2AP_ID, - SgNBReconfigurationComplete_IEs__value_PR_ResponseInformationSgNBReconfComp, - SgNBReconfigurationComplete_IEs__value_PR_UE_X2AP_ID_Extension -} SgNBReconfigurationComplete_IEs__value_PR; -typedef enum SgNBModificationRequest_IEs__value_PR { - SgNBModificationRequest_IEs__value_PR_NOTHING, /* No components present */ - SgNBModificationRequest_IEs__value_PR_UE_X2AP_ID, - SgNBModificationRequest_IEs__value_PR_SgNB_UE_X2AP_ID, - SgNBModificationRequest_IEs__value_PR_Cause, - SgNBModificationRequest_IEs__value_PR_PLMN_Identity, - SgNBModificationRequest_IEs__value_PR_HandoverRestrictionList, - SgNBModificationRequest_IEs__value_PR_SCGConfigurationQuery, - SgNBModificationRequest_IEs__value_PR_UE_ContextInformation_SgNBModReq, - SgNBModificationRequest_IEs__value_PR_MeNBtoSgNBContainer, - SgNBModificationRequest_IEs__value_PR_UE_X2AP_ID_Extension, - SgNBModificationRequest_IEs__value_PR_MeNBResourceCoordinationInformation, - SgNBModificationRequest_IEs__value_PR_SplitSRBs -} SgNBModificationRequest_IEs__value_PR; -typedef enum SgNBModificationRequestAcknowledge_IEs__value_PR { - SgNBModificationRequestAcknowledge_IEs__value_PR_NOTHING, /* No components present */ - SgNBModificationRequestAcknowledge_IEs__value_PR_UE_X2AP_ID, - SgNBModificationRequestAcknowledge_IEs__value_PR_SgNB_UE_X2AP_ID, - SgNBModificationRequestAcknowledge_IEs__value_PR_E_RABs_Admitted_ToBeAdded_SgNBModAckList, - SgNBModificationRequestAcknowledge_IEs__value_PR_E_RABs_Admitted_ToBeModified_SgNBModAckList, - SgNBModificationRequestAcknowledge_IEs__value_PR_E_RABs_Admitted_ToBeReleased_SgNBModAckList, - SgNBModificationRequestAcknowledge_IEs__value_PR_E_RAB_List, - SgNBModificationRequestAcknowledge_IEs__value_PR_SgNBtoMeNBContainer, - SgNBModificationRequestAcknowledge_IEs__value_PR_CriticalityDiagnostics, - SgNBModificationRequestAcknowledge_IEs__value_PR_UE_X2AP_ID_Extension, - SgNBModificationRequestAcknowledge_IEs__value_PR_SgNBResourceCoordinationInformation, - SgNBModificationRequestAcknowledge_IEs__value_PR_SplitSRBs, - SgNBModificationRequestAcknowledge_IEs__value_PR_RRC_Config_Ind -} SgNBModificationRequestAcknowledge_IEs__value_PR; -typedef enum SgNBModificationRequestReject_IEs__value_PR { - SgNBModificationRequestReject_IEs__value_PR_NOTHING, /* No components present */ - SgNBModificationRequestReject_IEs__value_PR_UE_X2AP_ID, - SgNBModificationRequestReject_IEs__value_PR_SgNB_UE_X2AP_ID, - SgNBModificationRequestReject_IEs__value_PR_Cause, - SgNBModificationRequestReject_IEs__value_PR_CriticalityDiagnostics, - SgNBModificationRequestReject_IEs__value_PR_UE_X2AP_ID_Extension -} SgNBModificationRequestReject_IEs__value_PR; -typedef enum SgNBModificationRequired_IEs__value_PR { - SgNBModificationRequired_IEs__value_PR_NOTHING, /* No components present */ - SgNBModificationRequired_IEs__value_PR_UE_X2AP_ID, - SgNBModificationRequired_IEs__value_PR_SgNB_UE_X2AP_ID, - SgNBModificationRequired_IEs__value_PR_Cause, - SgNBModificationRequired_IEs__value_PR_PDCPChangeIndication, - SgNBModificationRequired_IEs__value_PR_E_RABs_ToBeReleased_SgNBModReqdList, - SgNBModificationRequired_IEs__value_PR_SgNBtoMeNBContainer, - SgNBModificationRequired_IEs__value_PR_UE_X2AP_ID_Extension, - SgNBModificationRequired_IEs__value_PR_E_RABs_ToBeModified_SgNBModReqdList, - SgNBModificationRequired_IEs__value_PR_SgNBResourceCoordinationInformation, - SgNBModificationRequired_IEs__value_PR_RRC_Config_Ind -} SgNBModificationRequired_IEs__value_PR; -typedef enum SgNBModificationConfirm_IEs__value_PR { - SgNBModificationConfirm_IEs__value_PR_NOTHING, /* No components present */ - SgNBModificationConfirm_IEs__value_PR_UE_X2AP_ID, - SgNBModificationConfirm_IEs__value_PR_SgNB_UE_X2AP_ID, - SgNBModificationConfirm_IEs__value_PR_E_RABs_AdmittedToBeModified_SgNBModConfList, - SgNBModificationConfirm_IEs__value_PR_MeNBtoSgNBContainer, - SgNBModificationConfirm_IEs__value_PR_CriticalityDiagnostics, - SgNBModificationConfirm_IEs__value_PR_UE_X2AP_ID_Extension, - SgNBModificationConfirm_IEs__value_PR_MeNBResourceCoordinationInformation -} SgNBModificationConfirm_IEs__value_PR; -typedef enum SgNBModificationRefuse_IEs__value_PR { - SgNBModificationRefuse_IEs__value_PR_NOTHING, /* No components present */ - SgNBModificationRefuse_IEs__value_PR_UE_X2AP_ID, - SgNBModificationRefuse_IEs__value_PR_SgNB_UE_X2AP_ID, - SgNBModificationRefuse_IEs__value_PR_Cause, - SgNBModificationRefuse_IEs__value_PR_MeNBtoSgNBContainer, - SgNBModificationRefuse_IEs__value_PR_CriticalityDiagnostics, - SgNBModificationRefuse_IEs__value_PR_UE_X2AP_ID_Extension -} SgNBModificationRefuse_IEs__value_PR; -typedef enum SgNBReleaseRequest_IEs__value_PR { - SgNBReleaseRequest_IEs__value_PR_NOTHING, /* No components present */ - SgNBReleaseRequest_IEs__value_PR_UE_X2AP_ID, - SgNBReleaseRequest_IEs__value_PR_SgNB_UE_X2AP_ID, - SgNBReleaseRequest_IEs__value_PR_Cause, - SgNBReleaseRequest_IEs__value_PR_E_RABs_ToBeReleased_SgNBRelReqList, - SgNBReleaseRequest_IEs__value_PR_UE_ContextKeptIndicator, - SgNBReleaseRequest_IEs__value_PR_UE_X2AP_ID_Extension, - SgNBReleaseRequest_IEs__value_PR_MeNBtoSgNBContainer -} SgNBReleaseRequest_IEs__value_PR; -typedef enum SgNBReleaseRequestAcknowledge_IEs__value_PR { - SgNBReleaseRequestAcknowledge_IEs__value_PR_NOTHING, /* No components present */ - SgNBReleaseRequestAcknowledge_IEs__value_PR_UE_X2AP_ID, - SgNBReleaseRequestAcknowledge_IEs__value_PR_SgNB_UE_X2AP_ID, - SgNBReleaseRequestAcknowledge_IEs__value_PR_CriticalityDiagnostics, - SgNBReleaseRequestAcknowledge_IEs__value_PR_UE_X2AP_ID_Extension, - SgNBReleaseRequestAcknowledge_IEs__value_PR_E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList -} SgNBReleaseRequestAcknowledge_IEs__value_PR; -typedef enum SgNBReleaseRequestReject_IEs__value_PR { - SgNBReleaseRequestReject_IEs__value_PR_NOTHING, /* No components present */ - SgNBReleaseRequestReject_IEs__value_PR_UE_X2AP_ID, - SgNBReleaseRequestReject_IEs__value_PR_SgNB_UE_X2AP_ID, - SgNBReleaseRequestReject_IEs__value_PR_Cause, - SgNBReleaseRequestReject_IEs__value_PR_CriticalityDiagnostics, - SgNBReleaseRequestReject_IEs__value_PR_UE_X2AP_ID_Extension -} SgNBReleaseRequestReject_IEs__value_PR; -typedef enum SgNBReleaseRequired_IEs__value_PR { - SgNBReleaseRequired_IEs__value_PR_NOTHING, /* No components present */ - SgNBReleaseRequired_IEs__value_PR_UE_X2AP_ID, - SgNBReleaseRequired_IEs__value_PR_SgNB_UE_X2AP_ID, - SgNBReleaseRequired_IEs__value_PR_Cause, - SgNBReleaseRequired_IEs__value_PR_UE_X2AP_ID_Extension, - SgNBReleaseRequired_IEs__value_PR_E_RABs_ToBeReleased_SgNBRelReqdList -} SgNBReleaseRequired_IEs__value_PR; -typedef enum SgNBReleaseConfirm_IEs__value_PR { - SgNBReleaseConfirm_IEs__value_PR_NOTHING, /* No components present */ - SgNBReleaseConfirm_IEs__value_PR_UE_X2AP_ID, - SgNBReleaseConfirm_IEs__value_PR_SgNB_UE_X2AP_ID, - SgNBReleaseConfirm_IEs__value_PR_E_RABs_ToBeReleased_SgNBRelConfList, - SgNBReleaseConfirm_IEs__value_PR_CriticalityDiagnostics, - SgNBReleaseConfirm_IEs__value_PR_UE_X2AP_ID_Extension -} SgNBReleaseConfirm_IEs__value_PR; -typedef enum SgNBCounterCheckRequest_IEs__value_PR { - SgNBCounterCheckRequest_IEs__value_PR_NOTHING, /* No components present */ - SgNBCounterCheckRequest_IEs__value_PR_UE_X2AP_ID, - SgNBCounterCheckRequest_IEs__value_PR_SgNB_UE_X2AP_ID, - SgNBCounterCheckRequest_IEs__value_PR_E_RABs_SubjectToSgNBCounterCheck_List, - SgNBCounterCheckRequest_IEs__value_PR_UE_X2AP_ID_Extension -} SgNBCounterCheckRequest_IEs__value_PR; -typedef enum SgNBChangeRequired_IEs__value_PR { - SgNBChangeRequired_IEs__value_PR_NOTHING, /* No components present */ - SgNBChangeRequired_IEs__value_PR_UE_X2AP_ID, - SgNBChangeRequired_IEs__value_PR_SgNB_UE_X2AP_ID, - SgNBChangeRequired_IEs__value_PR_GlobalGNB_ID, - SgNBChangeRequired_IEs__value_PR_Cause, - SgNBChangeRequired_IEs__value_PR_SgNBtoMeNBContainer, - SgNBChangeRequired_IEs__value_PR_UE_X2AP_ID_Extension -} SgNBChangeRequired_IEs__value_PR; -typedef enum SgNBChangeConfirm_IEs__value_PR { - SgNBChangeConfirm_IEs__value_PR_NOTHING, /* No components present */ - SgNBChangeConfirm_IEs__value_PR_UE_X2AP_ID, - SgNBChangeConfirm_IEs__value_PR_SgNB_UE_X2AP_ID, - SgNBChangeConfirm_IEs__value_PR_E_RABs_ToBeReleased_SgNBChaConfList, - SgNBChangeConfirm_IEs__value_PR_CriticalityDiagnostics, - SgNBChangeConfirm_IEs__value_PR_UE_X2AP_ID_Extension -} SgNBChangeConfirm_IEs__value_PR; -typedef enum RRCTransfer_IEs__value_PR { - RRCTransfer_IEs__value_PR_NOTHING, /* No components present */ - RRCTransfer_IEs__value_PR_UE_X2AP_ID, - RRCTransfer_IEs__value_PR_SgNB_UE_X2AP_ID, - RRCTransfer_IEs__value_PR_SplitSRB, - RRCTransfer_IEs__value_PR_UENRMeasurement, - RRCTransfer_IEs__value_PR_UE_X2AP_ID_Extension -} RRCTransfer_IEs__value_PR; -typedef enum SgNBChangeRefuse_IEs__value_PR { - SgNBChangeRefuse_IEs__value_PR_NOTHING, /* No components present */ - SgNBChangeRefuse_IEs__value_PR_UE_X2AP_ID, - SgNBChangeRefuse_IEs__value_PR_SgNB_UE_X2AP_ID, - SgNBChangeRefuse_IEs__value_PR_Cause, - SgNBChangeRefuse_IEs__value_PR_CriticalityDiagnostics, - SgNBChangeRefuse_IEs__value_PR_UE_X2AP_ID_Extension -} SgNBChangeRefuse_IEs__value_PR; -typedef enum ENDCX2SetupRequest_IEs__value_PR { - ENDCX2SetupRequest_IEs__value_PR_NOTHING, /* No components present */ - ENDCX2SetupRequest_IEs__value_PR_InitiatingNodeType_EndcX2Setup -} ENDCX2SetupRequest_IEs__value_PR; -typedef enum ENB_ENDCX2SetupReqIEs__value_PR { - ENB_ENDCX2SetupReqIEs__value_PR_NOTHING, /* No components present */ - ENB_ENDCX2SetupReqIEs__value_PR_GlobalENB_ID, - ENB_ENDCX2SetupReqIEs__value_PR_ServedEUTRAcellsENDCX2ManagementList -} ENB_ENDCX2SetupReqIEs__value_PR; -typedef enum En_gNB_ENDCX2SetupReqIEs__value_PR { - En_gNB_ENDCX2SetupReqIEs__value_PR_NOTHING, /* No components present */ - En_gNB_ENDCX2SetupReqIEs__value_PR_GlobalGNB_ID, - En_gNB_ENDCX2SetupReqIEs__value_PR_ServedNRcellsENDCX2ManagementList -} En_gNB_ENDCX2SetupReqIEs__value_PR; -typedef enum ENDCX2SetupResponse_IEs__value_PR { - ENDCX2SetupResponse_IEs__value_PR_NOTHING, /* No components present */ - ENDCX2SetupResponse_IEs__value_PR_RespondingNodeType_EndcX2Setup -} ENDCX2SetupResponse_IEs__value_PR; -typedef enum ENB_ENDCX2SetupReqAckIEs__value_PR { - ENB_ENDCX2SetupReqAckIEs__value_PR_NOTHING, /* No components present */ - ENB_ENDCX2SetupReqAckIEs__value_PR_GlobalENB_ID, - ENB_ENDCX2SetupReqAckIEs__value_PR_ServedEUTRAcellsENDCX2ManagementList -} ENB_ENDCX2SetupReqAckIEs__value_PR; -typedef enum En_gNB_ENDCX2SetupReqAckIEs__value_PR { - En_gNB_ENDCX2SetupReqAckIEs__value_PR_NOTHING, /* No components present */ - En_gNB_ENDCX2SetupReqAckIEs__value_PR_GlobalGNB_ID, - En_gNB_ENDCX2SetupReqAckIEs__value_PR_ServedNRcellsENDCX2ManagementList -} En_gNB_ENDCX2SetupReqAckIEs__value_PR; -typedef enum ENDCX2SetupFailure_IEs__value_PR { - ENDCX2SetupFailure_IEs__value_PR_NOTHING, /* No components present */ - ENDCX2SetupFailure_IEs__value_PR_Cause, - ENDCX2SetupFailure_IEs__value_PR_CriticalityDiagnostics, - ENDCX2SetupFailure_IEs__value_PR_TimeToWait -} ENDCX2SetupFailure_IEs__value_PR; -typedef enum ENDCConfigurationUpdate_IEs__value_PR { - ENDCConfigurationUpdate_IEs__value_PR_NOTHING, /* No components present */ - ENDCConfigurationUpdate_IEs__value_PR_InitiatingNodeType_EndcConfigUpdate -} ENDCConfigurationUpdate_IEs__value_PR; -typedef enum ENB_ENDCConfigUpdateIEs__value_PR { - ENB_ENDCConfigUpdateIEs__value_PR_NOTHING, /* No components present */ - ENB_ENDCConfigUpdateIEs__value_PR_CellAssistanceInformation, - ENB_ENDCConfigUpdateIEs__value_PR_ServedEUTRAcellsENDCX2ManagementList, - ENB_ENDCConfigUpdateIEs__value_PR_ServedEUTRAcellsToModifyListENDCConfUpd, - ENB_ENDCConfigUpdateIEs__value_PR_ServedEUTRAcellsToDeleteListENDCConfUpd -} ENB_ENDCConfigUpdateIEs__value_PR; -typedef enum En_gNB_ENDCConfigUpdateIEs__value_PR { - En_gNB_ENDCConfigUpdateIEs__value_PR_NOTHING, /* No components present */ - En_gNB_ENDCConfigUpdateIEs__value_PR_ServedNRcellsENDCX2ManagementList, - En_gNB_ENDCConfigUpdateIEs__value_PR_ServedNRcellsToModifyENDCConfUpdList, - En_gNB_ENDCConfigUpdateIEs__value_PR_ServedNRcellsToDeleteENDCConfUpdList -} En_gNB_ENDCConfigUpdateIEs__value_PR; -typedef enum ENDCConfigurationUpdateAcknowledge_IEs__value_PR { - ENDCConfigurationUpdateAcknowledge_IEs__value_PR_NOTHING, /* No components present */ - ENDCConfigurationUpdateAcknowledge_IEs__value_PR_RespondingNodeType_EndcConfigUpdate -} ENDCConfigurationUpdateAcknowledge_IEs__value_PR; -typedef enum ENB_ENDCConfigUpdateAckIEs__value_PR { - ENB_ENDCConfigUpdateAckIEs__value_PR_NOTHING /* No components present */ - -} ENB_ENDCConfigUpdateAckIEs__value_PR; -typedef enum En_gNB_ENDCConfigUpdateAckIEs__value_PR { - En_gNB_ENDCConfigUpdateAckIEs__value_PR_NOTHING, /* No components present */ - En_gNB_ENDCConfigUpdateAckIEs__value_PR_ServedNRcellsENDCX2ManagementList -} En_gNB_ENDCConfigUpdateAckIEs__value_PR; -typedef enum ENDCConfigurationUpdateFailure_IEs__value_PR { - ENDCConfigurationUpdateFailure_IEs__value_PR_NOTHING, /* No components present */ - ENDCConfigurationUpdateFailure_IEs__value_PR_Cause, - ENDCConfigurationUpdateFailure_IEs__value_PR_CriticalityDiagnostics, - ENDCConfigurationUpdateFailure_IEs__value_PR_TimeToWait -} ENDCConfigurationUpdateFailure_IEs__value_PR; -typedef enum ENDCCellActivationRequest_IEs__value_PR { - ENDCCellActivationRequest_IEs__value_PR_NOTHING, /* No components present */ - ENDCCellActivationRequest_IEs__value_PR_ServedNRCellsToActivate, - ENDCCellActivationRequest_IEs__value_PR_ActivationID -} ENDCCellActivationRequest_IEs__value_PR; -typedef enum ENDCCellActivationResponse_IEs__value_PR { - ENDCCellActivationResponse_IEs__value_PR_NOTHING, /* No components present */ - ENDCCellActivationResponse_IEs__value_PR_ActivatedNRCellList, - ENDCCellActivationResponse_IEs__value_PR_ActivationID, - ENDCCellActivationResponse_IEs__value_PR_CriticalityDiagnostics -} ENDCCellActivationResponse_IEs__value_PR; -typedef enum ENDCCellActivationFailure_IEs__value_PR { - ENDCCellActivationFailure_IEs__value_PR_NOTHING, /* No components present */ - ENDCCellActivationFailure_IEs__value_PR_ActivationID, - ENDCCellActivationFailure_IEs__value_PR_Cause, - ENDCCellActivationFailure_IEs__value_PR_CriticalityDiagnostics -} ENDCCellActivationFailure_IEs__value_PR; -typedef enum SecondaryRATDataUsageReport_IEs__value_PR { - SecondaryRATDataUsageReport_IEs__value_PR_NOTHING, /* No components present */ - SecondaryRATDataUsageReport_IEs__value_PR_UE_X2AP_ID, - SecondaryRATDataUsageReport_IEs__value_PR_SgNB_UE_X2AP_ID, - SecondaryRATDataUsageReport_IEs__value_PR_SecondaryRATUsageReportList, - SecondaryRATDataUsageReport_IEs__value_PR_UE_X2AP_ID_Extension -} SecondaryRATDataUsageReport_IEs__value_PR; -typedef enum SgNBActivityNotification_IEs__value_PR { - SgNBActivityNotification_IEs__value_PR_NOTHING, /* No components present */ - SgNBActivityNotification_IEs__value_PR_UE_X2AP_ID, - SgNBActivityNotification_IEs__value_PR_SgNB_UE_X2AP_ID, - SgNBActivityNotification_IEs__value_PR_UserPlaneTrafficActivityReport, - SgNBActivityNotification_IEs__value_PR_ERABActivityNotifyItemList, - SgNBActivityNotification_IEs__value_PR_UE_X2AP_ID_Extension -} SgNBActivityNotification_IEs__value_PR; -typedef enum ENDCPartialResetRequired_IEs__value_PR { - ENDCPartialResetRequired_IEs__value_PR_NOTHING, /* No components present */ - ENDCPartialResetRequired_IEs__value_PR_UEsToBeResetList, - ENDCPartialResetRequired_IEs__value_PR_Cause -} ENDCPartialResetRequired_IEs__value_PR; -typedef enum ENDCPartialResetConfirm_IEs__value_PR { - ENDCPartialResetConfirm_IEs__value_PR_NOTHING, /* No components present */ - ENDCPartialResetConfirm_IEs__value_PR_UEsToBeResetList -} ENDCPartialResetConfirm_IEs__value_PR; -typedef enum EUTRANRCellResourceCoordinationRequest_IEs__value_PR { - EUTRANRCellResourceCoordinationRequest_IEs__value_PR_NOTHING, /* No components present */ - EUTRANRCellResourceCoordinationRequest_IEs__value_PR_InitiatingNodeType_EutranrCellResourceCoordination -} EUTRANRCellResourceCoordinationRequest_IEs__value_PR; -typedef enum ENB_EUTRA_NRCellResourceCoordinationReqIEs__value_PR { - ENB_EUTRA_NRCellResourceCoordinationReqIEs__value_PR_NOTHING, /* No components present */ - ENB_EUTRA_NRCellResourceCoordinationReqIEs__value_PR_DataTrafficResourceIndication, - ENB_EUTRA_NRCellResourceCoordinationReqIEs__value_PR_SpectrumSharingGroupID, - ENB_EUTRA_NRCellResourceCoordinationReqIEs__value_PR_ListofEUTRACellsinEUTRACoordinationReq -} ENB_EUTRA_NRCellResourceCoordinationReqIEs__value_PR; -typedef enum En_gNB_EUTRA_NRCellResourceCoordinationReqIEs__value_PR { - En_gNB_EUTRA_NRCellResourceCoordinationReqIEs__value_PR_NOTHING, /* No components present */ - En_gNB_EUTRA_NRCellResourceCoordinationReqIEs__value_PR_DataTrafficResourceIndication, - En_gNB_EUTRA_NRCellResourceCoordinationReqIEs__value_PR_ListofEUTRACellsinNRCoordinationReq, - En_gNB_EUTRA_NRCellResourceCoordinationReqIEs__value_PR_SpectrumSharingGroupID, - En_gNB_EUTRA_NRCellResourceCoordinationReqIEs__value_PR_ListofNRCellsinNRCoordinationReq -} En_gNB_EUTRA_NRCellResourceCoordinationReqIEs__value_PR; -typedef enum EUTRANRCellResourceCoordinationResponse_IEs__value_PR { - EUTRANRCellResourceCoordinationResponse_IEs__value_PR_NOTHING, /* No components present */ - EUTRANRCellResourceCoordinationResponse_IEs__value_PR_RespondingNodeType_EutranrCellResourceCoordination -} EUTRANRCellResourceCoordinationResponse_IEs__value_PR; -typedef enum ENB_EUTRA_NRCellResourceCoordinationReqAckIEs__value_PR { - ENB_EUTRA_NRCellResourceCoordinationReqAckIEs__value_PR_NOTHING, /* No components present */ - ENB_EUTRA_NRCellResourceCoordinationReqAckIEs__value_PR_DataTrafficResourceIndication, - ENB_EUTRA_NRCellResourceCoordinationReqAckIEs__value_PR_SpectrumSharingGroupID, - ENB_EUTRA_NRCellResourceCoordinationReqAckIEs__value_PR_ListofEUTRACellsinEUTRACoordinationResp -} ENB_EUTRA_NRCellResourceCoordinationReqAckIEs__value_PR; -typedef enum En_gNB_EUTRA_NRCellResourceCoordinationReqAckIEs__value_PR { - En_gNB_EUTRA_NRCellResourceCoordinationReqAckIEs__value_PR_NOTHING, /* No components present */ - En_gNB_EUTRA_NRCellResourceCoordinationReqAckIEs__value_PR_DataTrafficResourceIndication, - En_gNB_EUTRA_NRCellResourceCoordinationReqAckIEs__value_PR_SpectrumSharingGroupID, - En_gNB_EUTRA_NRCellResourceCoordinationReqAckIEs__value_PR_ListofNRCellsinNRCoordinationResp -} En_gNB_EUTRA_NRCellResourceCoordinationReqAckIEs__value_PR; -typedef enum ENDCX2RemovalRequest_IEs__value_PR { - ENDCX2RemovalRequest_IEs__value_PR_NOTHING, /* No components present */ - ENDCX2RemovalRequest_IEs__value_PR_InitiatingNodeType_EndcX2Removal -} ENDCX2RemovalRequest_IEs__value_PR; -typedef enum ENB_ENDCX2RemovalReqIEs__value_PR { - ENB_ENDCX2RemovalReqIEs__value_PR_NOTHING, /* No components present */ - ENB_ENDCX2RemovalReqIEs__value_PR_GlobalENB_ID -} ENB_ENDCX2RemovalReqIEs__value_PR; -typedef enum En_gNB_ENDCX2RemovalReqIEs__value_PR { - En_gNB_ENDCX2RemovalReqIEs__value_PR_NOTHING, /* No components present */ - En_gNB_ENDCX2RemovalReqIEs__value_PR_GlobalGNB_ID -} En_gNB_ENDCX2RemovalReqIEs__value_PR; -typedef enum ENDCX2RemovalResponse_IEs__value_PR { - ENDCX2RemovalResponse_IEs__value_PR_NOTHING, /* No components present */ - ENDCX2RemovalResponse_IEs__value_PR_RespondingNodeType_EndcX2Removal -} ENDCX2RemovalResponse_IEs__value_PR; -typedef enum ENB_ENDCX2RemovalReqAckIEs__value_PR { - ENB_ENDCX2RemovalReqAckIEs__value_PR_NOTHING, /* No components present */ - ENB_ENDCX2RemovalReqAckIEs__value_PR_GlobalENB_ID -} ENB_ENDCX2RemovalReqAckIEs__value_PR; -typedef enum En_gNB_ENDCX2RemovalReqAckIEs__value_PR { - En_gNB_ENDCX2RemovalReqAckIEs__value_PR_NOTHING, /* No components present */ - En_gNB_ENDCX2RemovalReqAckIEs__value_PR_GlobalGNB_ID -} En_gNB_ENDCX2RemovalReqAckIEs__value_PR; -typedef enum ENDCX2RemovalFailure_IEs__value_PR { - ENDCX2RemovalFailure_IEs__value_PR_NOTHING, /* No components present */ - ENDCX2RemovalFailure_IEs__value_PR_Cause, - ENDCX2RemovalFailure_IEs__value_PR_CriticalityDiagnostics -} ENDCX2RemovalFailure_IEs__value_PR; -typedef enum DataForwardingAddressIndication_IEs__value_PR { - DataForwardingAddressIndication_IEs__value_PR_NOTHING, /* No components present */ - DataForwardingAddressIndication_IEs__value_PR_UE_X2AP_ID_Extension, - DataForwardingAddressIndication_IEs__value_PR_UE_X2AP_ID, - DataForwardingAddressIndication_IEs__value_PR_E_RABs_DataForwardingAddress_List -} DataForwardingAddressIndication_IEs__value_PR; -typedef enum GNBStatusIndicationIEs__value_PR { - GNBStatusIndicationIEs__value_PR_NOTHING, /* No components present */ - GNBStatusIndicationIEs__value_PR_GNBOverloadInformation -} GNBStatusIndicationIEs__value_PR; -typedef enum E_RAB_ItemIEs__value_PR { - E_RAB_ItemIEs__value_PR_NOTHING, /* No components present */ - E_RAB_ItemIEs__value_PR_E_RAB_Item -} E_RAB_ItemIEs__value_PR; -typedef enum E_RABUsageReport_ItemIEs__value_PR { - E_RABUsageReport_ItemIEs__value_PR_NOTHING, /* No components present */ - E_RABUsageReport_ItemIEs__value_PR_E_RABUsageReport_Item -} E_RABUsageReport_ItemIEs__value_PR; -typedef enum SecondaryRATUsageReport_ItemIEs__value_PR { - SecondaryRATUsageReport_ItemIEs__value_PR_NOTHING, /* No components present */ - SecondaryRATUsageReport_ItemIEs__value_PR_SecondaryRATUsageReport_Item -} SecondaryRATUsageReport_ItemIEs__value_PR; - -/* ProtocolIE-Field */ -typedef struct RICaction_ToBeSetup_ItemIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RICaction_ToBeSetup_ItemIEs__value { - RICaction_ToBeSetup_ItemIEs__value_PR present; - union RICaction_ToBeSetup_ItemIEs__value_u { - RICaction_ToBeSetup_Item_t RICaction_ToBeSetup_Item; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICaction_ToBeSetup_ItemIEs_t; -typedef struct RICaction_Admitted_ItemIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RICaction_Admitted_ItemIEs__value { - RICaction_Admitted_ItemIEs__value_PR present; - union RICaction_Admitted_ItemIEs__value_u { - RICaction_Admitted_Item_t RICaction_Admitted_Item; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICaction_Admitted_ItemIEs_t; -typedef struct RICaction_NotAdmitted_ItemIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RICaction_NotAdmitted_ItemIEs__value { - RICaction_NotAdmitted_ItemIEs__value_PR present; - union RICaction_NotAdmitted_ItemIEs__value_u { - RICaction_NotAdmitted_Item_t RICaction_NotAdmitted_Item; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICaction_NotAdmitted_ItemIEs_t; -typedef struct RANfunction_ItemIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RANfunction_ItemIEs__value { - RANfunction_ItemIEs__value_PR present; - union RANfunction_ItemIEs__value_u { - RANfunction_Item_t RANfunction_Item; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RANfunction_ItemIEs_t; -typedef struct RANfunctionID_ItemIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RANfunctionID_ItemIEs__value { - RANfunctionID_ItemIEs__value_PR present; - union RANfunctionID_ItemIEs__value_u { - RANfunctionID_Item_t RANfunctionID_Item; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RANfunctionID_ItemIEs_t; -typedef struct RANfunctionIDcause_ItemIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RANfunctionIDcause_ItemIEs__value { - RANfunctionIDcause_ItemIEs__value_PR present; - union RANfunctionIDcause_ItemIEs__value_u { - RANfunctionIDcause_Item_t RANfunctionIDcause_Item; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RANfunctionIDcause_ItemIEs_t; -typedef struct E_RABs_ToBeSetup_ItemIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct E_RABs_ToBeSetup_ItemIEs__value { - E_RABs_ToBeSetup_ItemIEs__value_PR present; - union E_RABs_ToBeSetup_ItemIEs__value_u { - E_RABs_ToBeSetup_Item_t E_RABs_ToBeSetup_Item; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeSetup_ItemIEs_t; -typedef struct E_RABs_Admitted_ItemIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct E_RABs_Admitted_ItemIEs__value { - E_RABs_Admitted_ItemIEs__value_PR present; - union E_RABs_Admitted_ItemIEs__value_u { - E_RABs_Admitted_Item_t E_RABs_Admitted_Item; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_Admitted_ItemIEs_t; -typedef struct E_RABs_SubjectToStatusTransfer_ItemIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct E_RABs_SubjectToStatusTransfer_ItemIEs__value { - E_RABs_SubjectToStatusTransfer_ItemIEs__value_PR present; - union E_RABs_SubjectToStatusTransfer_ItemIEs__value_u { - E_RABs_SubjectToStatusTransfer_Item_t E_RABs_SubjectToStatusTransfer_Item; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_SubjectToStatusTransfer_ItemIEs_t; -typedef struct CellInformation_ItemIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct CellInformation_ItemIEs__value { - CellInformation_ItemIEs__value_PR present; - union CellInformation_ItemIEs__value_u { - CellInformation_Item_t CellInformation_Item; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} CellInformation_ItemIEs_t; -typedef struct CellToReport_ItemIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct CellToReport_ItemIEs__value { - CellToReport_ItemIEs__value_PR present; - union CellToReport_ItemIEs__value_u { - CellToReport_Item_t CellToReport_Item; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} CellToReport_ItemIEs_t; -typedef struct MeasurementInitiationResult_ItemIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct MeasurementInitiationResult_ItemIEs__value { - MeasurementInitiationResult_ItemIEs__value_PR present; - union MeasurementInitiationResult_ItemIEs__value_u { - MeasurementInitiationResult_Item_t MeasurementInitiationResult_Item; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} MeasurementInitiationResult_ItemIEs_t; -typedef struct MeasurementFailureCause_ItemIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct MeasurementFailureCause_ItemIEs__value { - MeasurementFailureCause_ItemIEs__value_PR present; - union MeasurementFailureCause_ItemIEs__value_u { - MeasurementFailureCause_Item_t MeasurementFailureCause_Item; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} MeasurementFailureCause_ItemIEs_t; -typedef struct CompleteFailureCauseInformation_ItemIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct CompleteFailureCauseInformation_ItemIEs__value { - CompleteFailureCauseInformation_ItemIEs__value_PR present; - union CompleteFailureCauseInformation_ItemIEs__value_u { - CompleteFailureCauseInformation_Item_t CompleteFailureCauseInformation_Item; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} CompleteFailureCauseInformation_ItemIEs_t; -typedef struct CellMeasurementResult_ItemIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct CellMeasurementResult_ItemIEs__value { - CellMeasurementResult_ItemIEs__value_PR present; - union CellMeasurementResult_ItemIEs__value_u { - CellMeasurementResult_Item_t CellMeasurementResult_Item; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} CellMeasurementResult_ItemIEs_t; -typedef struct E_RABs_ToBeAdded_ItemIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct E_RABs_ToBeAdded_ItemIEs__value { - E_RABs_ToBeAdded_ItemIEs__value_PR present; - union E_RABs_ToBeAdded_ItemIEs__value_u { - E_RABs_ToBeAdded_Item_t E_RABs_ToBeAdded_Item; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeAdded_ItemIEs_t; -typedef struct E_RABs_Admitted_ToBeAdded_ItemIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct E_RABs_Admitted_ToBeAdded_ItemIEs__value { - E_RABs_Admitted_ToBeAdded_ItemIEs__value_PR present; - union E_RABs_Admitted_ToBeAdded_ItemIEs__value_u { - E_RABs_Admitted_ToBeAdded_Item_t E_RABs_Admitted_ToBeAdded_Item; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_Admitted_ToBeAdded_ItemIEs_t; -typedef struct E_RABs_ToBeAdded_ModReqItemIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct E_RABs_ToBeAdded_ModReqItemIEs__value { - E_RABs_ToBeAdded_ModReqItemIEs__value_PR present; - union E_RABs_ToBeAdded_ModReqItemIEs__value_u { - E_RABs_ToBeAdded_ModReqItem_t E_RABs_ToBeAdded_ModReqItem; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeAdded_ModReqItemIEs_t; -typedef struct E_RABs_ToBeModified_ModReqItemIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct E_RABs_ToBeModified_ModReqItemIEs__value { - E_RABs_ToBeModified_ModReqItemIEs__value_PR present; - union E_RABs_ToBeModified_ModReqItemIEs__value_u { - E_RABs_ToBeModified_ModReqItem_t E_RABs_ToBeModified_ModReqItem; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeModified_ModReqItemIEs_t; -typedef struct E_RABs_ToBeReleased_ModReqItemIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct E_RABs_ToBeReleased_ModReqItemIEs__value { - E_RABs_ToBeReleased_ModReqItemIEs__value_PR present; - union E_RABs_ToBeReleased_ModReqItemIEs__value_u { - E_RABs_ToBeReleased_ModReqItem_t E_RABs_ToBeReleased_ModReqItem; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeReleased_ModReqItemIEs_t; -typedef struct E_RABs_Admitted_ToBeAdded_ModAckItemIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct E_RABs_Admitted_ToBeAdded_ModAckItemIEs__value { - E_RABs_Admitted_ToBeAdded_ModAckItemIEs__value_PR present; - union E_RABs_Admitted_ToBeAdded_ModAckItemIEs__value_u { - E_RABs_Admitted_ToBeAdded_ModAckItem_t E_RABs_Admitted_ToBeAdded_ModAckItem; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_Admitted_ToBeAdded_ModAckItemIEs_t; -typedef struct E_RABs_Admitted_ToBeModified_ModAckItemIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct E_RABs_Admitted_ToBeModified_ModAckItemIEs__value { - E_RABs_Admitted_ToBeModified_ModAckItemIEs__value_PR present; - union E_RABs_Admitted_ToBeModified_ModAckItemIEs__value_u { - E_RABs_Admitted_ToBeModified_ModAckItem_t E_RABs_Admitted_ToBeModified_ModAckItem; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_Admitted_ToBeModified_ModAckItemIEs_t; -typedef struct E_RABs_Admitted_ToBeReleased_ModAckItemIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct E_RABs_Admitted_ToBeReleased_ModAckItemIEs__value { - E_RABs_Admitted_ToBeReleased_ModAckItemIEs__value_PR present; - union E_RABs_Admitted_ToBeReleased_ModAckItemIEs__value_u { - E_RABs_Admitted_ToReleased_ModAckItem_t E_RABs_Admitted_ToReleased_ModAckItem; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_Admitted_ToBeReleased_ModAckItemIEs_t; -typedef struct E_RABs_ToBeReleased_ModReqdItemIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct E_RABs_ToBeReleased_ModReqdItemIEs__value { - E_RABs_ToBeReleased_ModReqdItemIEs__value_PR present; - union E_RABs_ToBeReleased_ModReqdItemIEs__value_u { - E_RABs_ToBeReleased_ModReqdItem_t E_RABs_ToBeReleased_ModReqdItem; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeReleased_ModReqdItemIEs_t; -typedef struct E_RABs_ToBeReleased_RelReqItemIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct E_RABs_ToBeReleased_RelReqItemIEs__value { - E_RABs_ToBeReleased_RelReqItemIEs__value_PR present; - union E_RABs_ToBeReleased_RelReqItemIEs__value_u { - E_RABs_ToBeReleased_RelReqItem_t E_RABs_ToBeReleased_RelReqItem; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeReleased_RelReqItemIEs_t; -typedef struct E_RABs_ToBeReleased_RelConfItemIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct E_RABs_ToBeReleased_RelConfItemIEs__value { - E_RABs_ToBeReleased_RelConfItemIEs__value_PR present; - union E_RABs_ToBeReleased_RelConfItemIEs__value_u { - E_RABs_ToBeReleased_RelConfItem_t E_RABs_ToBeReleased_RelConfItem; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeReleased_RelConfItemIEs_t; -typedef struct E_RABs_SubjectToCounterCheckItemIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct E_RABs_SubjectToCounterCheckItemIEs__value { - E_RABs_SubjectToCounterCheckItemIEs__value_PR present; - union E_RABs_SubjectToCounterCheckItemIEs__value_u { - E_RABs_SubjectToCounterCheckItem_t E_RABs_SubjectToCounterCheckItem; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_SubjectToCounterCheckItemIEs_t; -typedef struct E_RABs_ToBeSetupRetrieve_ItemIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct E_RABs_ToBeSetupRetrieve_ItemIEs__value { - E_RABs_ToBeSetupRetrieve_ItemIEs__value_PR present; - union E_RABs_ToBeSetupRetrieve_ItemIEs__value_u { - E_RABs_ToBeSetupRetrieve_Item_t E_RABs_ToBeSetupRetrieve_Item; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeSetupRetrieve_ItemIEs_t; -typedef struct E_RABs_ToBeAdded_SgNBAddReq_ItemIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct E_RABs_ToBeAdded_SgNBAddReq_ItemIEs__value { - E_RABs_ToBeAdded_SgNBAddReq_ItemIEs__value_PR present; - union E_RABs_ToBeAdded_SgNBAddReq_ItemIEs__value_u { - E_RABs_ToBeAdded_SgNBAddReq_Item_t E_RABs_ToBeAdded_SgNBAddReq_Item; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeAdded_SgNBAddReq_ItemIEs_t; -typedef struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_ItemIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_ItemIEs__value { - E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_ItemIEs__value_PR present; - union E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_ItemIEs__value_u { - E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_t E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_ItemIEs_t; -typedef struct E_RABs_ToBeAdded_SgNBModReq_ItemIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct E_RABs_ToBeAdded_SgNBModReq_ItemIEs__value { - E_RABs_ToBeAdded_SgNBModReq_ItemIEs__value_PR present; - union E_RABs_ToBeAdded_SgNBModReq_ItemIEs__value_u { - E_RABs_ToBeAdded_SgNBModReq_Item_t E_RABs_ToBeAdded_SgNBModReq_Item; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeAdded_SgNBModReq_ItemIEs_t; -typedef struct E_RABs_ToBeModified_SgNBModReq_ItemIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct E_RABs_ToBeModified_SgNBModReq_ItemIEs__value { - E_RABs_ToBeModified_SgNBModReq_ItemIEs__value_PR present; - union E_RABs_ToBeModified_SgNBModReq_ItemIEs__value_u { - E_RABs_ToBeModified_SgNBModReq_Item_t E_RABs_ToBeModified_SgNBModReq_Item; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeModified_SgNBModReq_ItemIEs_t; -typedef struct E_RABs_ToBeReleased_SgNBModReq_ItemIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct E_RABs_ToBeReleased_SgNBModReq_ItemIEs__value { - E_RABs_ToBeReleased_SgNBModReq_ItemIEs__value_PR present; - union E_RABs_ToBeReleased_SgNBModReq_ItemIEs__value_u { - E_RABs_ToBeReleased_SgNBModReq_Item_t E_RABs_ToBeReleased_SgNBModReq_Item; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeReleased_SgNBModReq_ItemIEs_t; -typedef struct E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemIEs__value { - E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemIEs__value_PR present; - union E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemIEs__value_u { - E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_t E_RABs_Admitted_ToBeAdded_SgNBModAck_Item; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemIEs_t; -typedef struct E_RABs_Admitted_ToBeModified_SgNBModAck_ItemIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct E_RABs_Admitted_ToBeModified_SgNBModAck_ItemIEs__value { - E_RABs_Admitted_ToBeModified_SgNBModAck_ItemIEs__value_PR present; - union E_RABs_Admitted_ToBeModified_SgNBModAck_ItemIEs__value_u { - E_RABs_Admitted_ToBeModified_SgNBModAck_Item_t E_RABs_Admitted_ToBeModified_SgNBModAck_Item; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_Admitted_ToBeModified_SgNBModAck_ItemIEs_t; -typedef struct E_RABs_Admitted_ToBeReleased_SgNBModAck_ItemIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct E_RABs_Admitted_ToBeReleased_SgNBModAck_ItemIEs__value { - E_RABs_Admitted_ToBeReleased_SgNBModAck_ItemIEs__value_PR present; - union E_RABs_Admitted_ToBeReleased_SgNBModAck_ItemIEs__value_u { - E_RABs_Admitted_ToReleased_SgNBModAck_Item_t E_RABs_Admitted_ToReleased_SgNBModAck_Item; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_Admitted_ToBeReleased_SgNBModAck_ItemIEs_t; -typedef struct E_RABs_ToBeReleased_SgNBModReqd_ItemIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct E_RABs_ToBeReleased_SgNBModReqd_ItemIEs__value { - E_RABs_ToBeReleased_SgNBModReqd_ItemIEs__value_PR present; - union E_RABs_ToBeReleased_SgNBModReqd_ItemIEs__value_u { - E_RABs_ToBeReleased_SgNBModReqd_Item_t E_RABs_ToBeReleased_SgNBModReqd_Item; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeReleased_SgNBModReqd_ItemIEs_t; -typedef struct E_RABs_ToBeModified_SgNBModReqd_ItemIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct E_RABs_ToBeModified_SgNBModReqd_ItemIEs__value { - E_RABs_ToBeModified_SgNBModReqd_ItemIEs__value_PR present; - union E_RABs_ToBeModified_SgNBModReqd_ItemIEs__value_u { - E_RABs_ToBeModified_SgNBModReqd_Item_t E_RABs_ToBeModified_SgNBModReqd_Item; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeModified_SgNBModReqd_ItemIEs_t; -typedef struct E_RABs_AdmittedToBeModified_SgNBModConf_ItemIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct E_RABs_AdmittedToBeModified_SgNBModConf_ItemIEs__value { - E_RABs_AdmittedToBeModified_SgNBModConf_ItemIEs__value_PR present; - union E_RABs_AdmittedToBeModified_SgNBModConf_ItemIEs__value_u { - E_RABs_AdmittedToBeModified_SgNBModConf_Item_t E_RABs_AdmittedToBeModified_SgNBModConf_Item; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_AdmittedToBeModified_SgNBModConf_ItemIEs_t; -typedef struct E_RABs_ToBeReleased_SgNBRelReq_ItemIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct E_RABs_ToBeReleased_SgNBRelReq_ItemIEs__value { - E_RABs_ToBeReleased_SgNBRelReq_ItemIEs__value_PR present; - union E_RABs_ToBeReleased_SgNBRelReq_ItemIEs__value_u { - E_RABs_ToBeReleased_SgNBRelReq_Item_t E_RABs_ToBeReleased_SgNBRelReq_Item; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeReleased_SgNBRelReq_ItemIEs_t; -typedef struct E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemIEs__value { - E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemIEs__value_PR present; - union E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemIEs__value_u { - E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item_t E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemIEs_t; -typedef struct E_RABs_ToBeReleased_SgNBRelReqd_ItemIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct E_RABs_ToBeReleased_SgNBRelReqd_ItemIEs__value { - E_RABs_ToBeReleased_SgNBRelReqd_ItemIEs__value_PR present; - union E_RABs_ToBeReleased_SgNBRelReqd_ItemIEs__value_u { - E_RABs_ToBeReleased_SgNBRelReqd_Item_t E_RABs_ToBeReleased_SgNBRelReqd_Item; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeReleased_SgNBRelReqd_ItemIEs_t; -typedef struct E_RABs_ToBeReleased_SgNBRelConf_ItemIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct E_RABs_ToBeReleased_SgNBRelConf_ItemIEs__value { - E_RABs_ToBeReleased_SgNBRelConf_ItemIEs__value_PR present; - union E_RABs_ToBeReleased_SgNBRelConf_ItemIEs__value_u { - E_RABs_ToBeReleased_SgNBRelConf_Item_t E_RABs_ToBeReleased_SgNBRelConf_Item; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeReleased_SgNBRelConf_ItemIEs_t; -typedef struct E_RABs_SubjectToSgNBCounterCheck_ItemIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct E_RABs_SubjectToSgNBCounterCheck_ItemIEs__value { - E_RABs_SubjectToSgNBCounterCheck_ItemIEs__value_PR present; - union E_RABs_SubjectToSgNBCounterCheck_ItemIEs__value_u { - E_RABs_SubjectToSgNBCounterCheck_Item_t E_RABs_SubjectToSgNBCounterCheck_Item; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_SubjectToSgNBCounterCheck_ItemIEs_t; -typedef struct E_RABs_ToBeReleased_SgNBChaConf_ItemIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct E_RABs_ToBeReleased_SgNBChaConf_ItemIEs__value { - E_RABs_ToBeReleased_SgNBChaConf_ItemIEs__value_PR present; - union E_RABs_ToBeReleased_SgNBChaConf_ItemIEs__value_u { - E_RABs_ToBeReleased_SgNBChaConf_Item_t E_RABs_ToBeReleased_SgNBChaConf_Item; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_ToBeReleased_SgNBChaConf_ItemIEs_t; -typedef struct E_RABs_DataForwardingAddress_ItemIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct E_RABs_DataForwardingAddress_ItemIEs__value { - E_RABs_DataForwardingAddress_ItemIEs__value_PR present; - union E_RABs_DataForwardingAddress_ItemIEs__value_u { - E_RABs_DataForwardingAddress_Item_t E_RABs_DataForwardingAddress_Item; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABs_DataForwardingAddress_ItemIEs_t; -typedef struct RICsubscriptionRequest_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RICsubscriptionRequest_IEs__value { - RICsubscriptionRequest_IEs__value_PR present; - union RICsubscriptionRequest_IEs__value_u { - RICrequestID_t RICrequestID; - RANfunctionID_t RANfunctionID; - RICsubscription_t RICsubscription; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICsubscriptionRequest_IEs_t; -typedef struct RICsubscriptionResponse_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RICsubscriptionResponse_IEs__value { - RICsubscriptionResponse_IEs__value_PR present; - union RICsubscriptionResponse_IEs__value_u { - RICrequestID_t RICrequestID; - RANfunctionID_t RANfunctionID; - RICaction_Admitted_List_t RICaction_Admitted_List; - RICaction_NotAdmitted_List_t RICaction_NotAdmitted_List; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICsubscriptionResponse_IEs_t; -typedef struct RICsubscriptionFailure_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RICsubscriptionFailure_IEs__value { - RICsubscriptionFailure_IEs__value_PR present; - union RICsubscriptionFailure_IEs__value_u { - RICrequestID_t RICrequestID; - RANfunctionID_t RANfunctionID; - RICaction_NotAdmitted_List_t RICaction_NotAdmitted_List; - CriticalityDiagnostics_t CriticalityDiagnostics; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICsubscriptionFailure_IEs_t; -typedef struct RICsubscriptionDeleteRequest_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RICsubscriptionDeleteRequest_IEs__value { - RICsubscriptionDeleteRequest_IEs__value_PR present; - union RICsubscriptionDeleteRequest_IEs__value_u { - RICrequestID_t RICrequestID; - RANfunctionID_t RANfunctionID; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICsubscriptionDeleteRequest_IEs_t; -typedef struct RICsubscriptionDeleteResponse_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RICsubscriptionDeleteResponse_IEs__value { - RICsubscriptionDeleteResponse_IEs__value_PR present; - union RICsubscriptionDeleteResponse_IEs__value_u { - RICrequestID_t RICrequestID; - RANfunctionID_t RANfunctionID; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICsubscriptionDeleteResponse_IEs_t; -typedef struct RICsubscriptionDeleteFailure_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RICsubscriptionDeleteFailure_IEs__value { - RICsubscriptionDeleteFailure_IEs__value_PR present; - union RICsubscriptionDeleteFailure_IEs__value_u { - RICrequestID_t RICrequestID; - RANfunctionID_t RANfunctionID; - RICcause_t RICcause; - CriticalityDiagnostics_t CriticalityDiagnostics; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICsubscriptionDeleteFailure_IEs_t; -typedef struct RICindication_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RICindication_IEs__value { - RICindication_IEs__value_PR present; - union RICindication_IEs__value_u { - RICrequestID_t RICrequestID; - RANfunctionID_t RANfunctionID; - RICactionID_t RICactionID; - RICindicationSN_t RICindicationSN; - RICindicationType_t RICindicationType; - RICindicationHeader_t RICindicationHeader; - RICindicationMessage_t RICindicationMessage; - RICcallProcessID_t RICcallProcessID; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICindication_IEs_t; -typedef struct RICcontrolRequest_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RICcontrolRequest_IEs__value { - RICcontrolRequest_IEs__value_PR present; - union RICcontrolRequest_IEs__value_u { - RICrequestID_t RICrequestID; - RANfunctionID_t RANfunctionID; - RICcallProcessID_t RICcallProcessID; - RICcontrolHeader_t RICcontrolHeader; - RICcontrolMessage_t RICcontrolMessage; - RICcontrolAckRequest_t RICcontrolAckRequest; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICcontrolRequest_IEs_t; -typedef struct RICcontrolAcknowledge_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RICcontrolAcknowledge_IEs__value { - RICcontrolAcknowledge_IEs__value_PR present; - union RICcontrolAcknowledge_IEs__value_u { - RICrequestID_t RICrequestID; - RANfunctionID_t RANfunctionID; - RICcallProcessID_t RICcallProcessID; - RICcontrolStatus_t RICcontrolStatus; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICcontrolAcknowledge_IEs_t; -typedef struct RICcontrolFailure_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RICcontrolFailure_IEs__value { - RICcontrolFailure_IEs__value_PR present; - union RICcontrolFailure_IEs__value_u { - RICrequestID_t RICrequestID; - RANfunctionID_t RANfunctionID; - RICcallProcessID_t RICcallProcessID; - RICcause_t RICcause; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICcontrolFailure_IEs_t; -typedef struct RICserviceUpdate_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RICserviceUpdate_IEs__value { - RICserviceUpdate_IEs__value_PR present; - union RICserviceUpdate_IEs__value_u { - RANfunctions_List_t RANfunctions_List; - RANfunctionsID_List_t RANfunctionsID_List; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICserviceUpdate_IEs_t; -typedef struct RICserviceUpdateAcknowledge_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RICserviceUpdateAcknowledge_IEs__value { - RICserviceUpdateAcknowledge_IEs__value_PR present; - union RICserviceUpdateAcknowledge_IEs__value_u { - RANfunctionsID_List_t RANfunctionsID_List; - RANfunctionsIDcause_List_t RANfunctionsIDcause_List; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICserviceUpdateAcknowledge_IEs_t; -typedef struct RICserviceUpdateFailure_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RICserviceUpdateFailure_IEs__value { - RICserviceUpdateFailure_IEs__value_PR present; - union RICserviceUpdateFailure_IEs__value_u { - RANfunctionsIDcause_List_t RANfunctionsIDcause_List; - TimeToWait_t TimeToWait; - CriticalityDiagnostics_t CriticalityDiagnostics; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICserviceUpdateFailure_IEs_t; -typedef struct RICserviceQuery_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RICserviceQuery_IEs__value { - RICserviceQuery_IEs__value_PR present; - union RICserviceQuery_IEs__value_u { - RANfunctionsID_List_t RANfunctionsID_List; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICserviceQuery_IEs_t; -typedef struct HandoverRequest_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct HandoverRequest_IEs__value { - HandoverRequest_IEs__value_PR present; - union HandoverRequest_IEs__value_u { - UE_X2AP_ID_t UE_X2AP_ID; - Cause_t Cause; - ECGI_t ECGI; - GUMMEI_t GUMMEI; - UE_ContextInformation_t UE_ContextInformation; - UE_HistoryInformation_t UE_HistoryInformation; - TraceActivation_t TraceActivation; - SRVCCOperationPossible_t SRVCCOperationPossible; - CSGMembershipStatus_t CSGMembershipStatus; - MobilityInformation_t MobilityInformation; - Masked_IMEISV_t Masked_IMEISV; - UE_HistoryInformationFromTheUE_t UE_HistoryInformationFromTheUE; - ExpectedUEBehaviour_t ExpectedUEBehaviour; - ProSeAuthorized_t ProSeAuthorized; - UE_ContextReferenceAtSeNB_t UE_ContextReferenceAtSeNB; - UE_X2AP_ID_Extension_t UE_X2AP_ID_Extension; - V2XServicesAuthorized_t V2XServicesAuthorized; - UE_ContextReferenceAtWT_t UE_ContextReferenceAtWT; - NRUESecurityCapabilities_t NRUESecurityCapabilities; - UE_ContextReferenceAtSgNB_t UE_ContextReferenceAtSgNB; - AerialUEsubscriptionInformation_t AerialUEsubscriptionInformation; - Subscription_Based_UE_DifferentiationInfo_t Subscription_Based_UE_DifferentiationInfo; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} HandoverRequest_IEs_t; -typedef struct HandoverRequestAcknowledge_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct HandoverRequestAcknowledge_IEs__value { - HandoverRequestAcknowledge_IEs__value_PR present; - union HandoverRequestAcknowledge_IEs__value_u { - UE_X2AP_ID_t UE_X2AP_ID; - E_RABs_Admitted_List_t E_RABs_Admitted_List; - E_RAB_List_t E_RAB_List; - TargeteNBtoSource_eNBTransparentContainer_t TargeteNBtoSource_eNBTransparentContainer; - CriticalityDiagnostics_t CriticalityDiagnostics; - UE_ContextKeptIndicator_t UE_ContextKeptIndicator; - UE_X2AP_ID_Extension_t UE_X2AP_ID_Extension; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} HandoverRequestAcknowledge_IEs_t; -typedef struct HandoverPreparationFailure_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct HandoverPreparationFailure_IEs__value { - HandoverPreparationFailure_IEs__value_PR present; - union HandoverPreparationFailure_IEs__value_u { - UE_X2AP_ID_t UE_X2AP_ID; - Cause_t Cause; - CriticalityDiagnostics_t CriticalityDiagnostics; - UE_X2AP_ID_Extension_t UE_X2AP_ID_Extension; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} HandoverPreparationFailure_IEs_t; -typedef struct HandoverReport_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct HandoverReport_IEs__value { - HandoverReport_IEs__value_PR present; - union HandoverReport_IEs__value_u { - HandoverReportType_t HandoverReportType; - Cause_t Cause; - ECGI_t ECGI; - TargetCellInUTRAN_t TargetCellInUTRAN; - CRNTI_t CRNTI; - MobilityInformation_t MobilityInformation; - UE_RLF_Report_Container_t UE_RLF_Report_Container; - UE_RLF_Report_Container_for_extended_bands_t UE_RLF_Report_Container_for_extended_bands; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} HandoverReport_IEs_t; -typedef struct SNStatusTransfer_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct SNStatusTransfer_IEs__value { - SNStatusTransfer_IEs__value_PR present; - union SNStatusTransfer_IEs__value_u { - UE_X2AP_ID_t UE_X2AP_ID; - E_RABs_SubjectToStatusTransfer_List_t E_RABs_SubjectToStatusTransfer_List; - UE_X2AP_ID_Extension_t UE_X2AP_ID_Extension; - SgNB_UE_X2AP_ID_t SgNB_UE_X2AP_ID; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} SNStatusTransfer_IEs_t; -typedef struct UEContextRelease_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct UEContextRelease_IEs__value { - UEContextRelease_IEs__value_PR present; - union UEContextRelease_IEs__value_u { - UE_X2AP_ID_t UE_X2AP_ID; - UE_X2AP_ID_Extension_t UE_X2AP_ID_Extension; - SIPTOBearerDeactivationIndication_t SIPTOBearerDeactivationIndication; - SgNB_UE_X2AP_ID_t SgNB_UE_X2AP_ID; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} UEContextRelease_IEs_t; -typedef struct HandoverCancel_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct HandoverCancel_IEs__value { - HandoverCancel_IEs__value_PR present; - union HandoverCancel_IEs__value_u { - UE_X2AP_ID_t UE_X2AP_ID; - Cause_t Cause; - UE_X2AP_ID_Extension_t UE_X2AP_ID_Extension; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} HandoverCancel_IEs_t; -typedef struct ErrorIndication_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct ErrorIndication_IEs__value { - ErrorIndication_IEs__value_PR present; - union ErrorIndication_IEs__value_u { - UE_X2AP_ID_t UE_X2AP_ID; - Cause_t Cause; - CriticalityDiagnostics_t CriticalityDiagnostics; - UE_X2AP_ID_Extension_t UE_X2AP_ID_Extension; - SgNB_UE_X2AP_ID_t SgNB_UE_X2AP_ID; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ErrorIndication_IEs_t; -typedef struct ResetRequest_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct ResetRequest_IEs__value { - ResetRequest_IEs__value_PR present; - union ResetRequest_IEs__value_u { - Cause_t Cause; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ResetRequest_IEs_t; -typedef struct ResetResponse_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct ResetResponse_IEs__value { - ResetResponse_IEs__value_PR present; - union ResetResponse_IEs__value_u { - CriticalityDiagnostics_t CriticalityDiagnostics; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ResetResponse_IEs_t; -typedef struct X2SetupRequest_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct X2SetupRequest_IEs__value { - X2SetupRequest_IEs__value_PR present; - union X2SetupRequest_IEs__value_u { - GlobalENB_ID_t GlobalENB_ID; - ServedCells_t ServedCells; - GUGroupIDList_t GUGroupIDList; - LHN_ID_t LHN_ID; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} X2SetupRequest_IEs_t; -typedef struct X2SetupResponse_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct X2SetupResponse_IEs__value { - X2SetupResponse_IEs__value_PR present; - union X2SetupResponse_IEs__value_u { - GlobalENB_ID_t GlobalENB_ID; - ServedCells_t ServedCells; - GUGroupIDList_t GUGroupIDList; - CriticalityDiagnostics_t CriticalityDiagnostics; - LHN_ID_t LHN_ID; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} X2SetupResponse_IEs_t; -typedef struct X2SetupFailure_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct X2SetupFailure_IEs__value { - X2SetupFailure_IEs__value_PR present; - union X2SetupFailure_IEs__value_u { - Cause_t Cause; - TimeToWait_t TimeToWait; - CriticalityDiagnostics_t CriticalityDiagnostics; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} X2SetupFailure_IEs_t; -typedef struct LoadInformation_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct LoadInformation_IEs__value { - LoadInformation_IEs__value_PR present; - union LoadInformation_IEs__value_u { - CellInformation_List_t CellInformation_List; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} LoadInformation_IEs_t; -typedef struct ENBConfigurationUpdate_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct ENBConfigurationUpdate_IEs__value { - ENBConfigurationUpdate_IEs__value_PR present; - union ENBConfigurationUpdate_IEs__value_u { - ServedCells_t ServedCells; - ServedCellsToModify_t ServedCellsToModify; - Old_ECGIs_t Old_ECGIs; - GUGroupIDList_t GUGroupIDList; - CoverageModificationList_t CoverageModificationList; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ENBConfigurationUpdate_IEs_t; -typedef struct ENBConfigurationUpdateAcknowledge_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct ENBConfigurationUpdateAcknowledge_IEs__value { - ENBConfigurationUpdateAcknowledge_IEs__value_PR present; - union ENBConfigurationUpdateAcknowledge_IEs__value_u { - CriticalityDiagnostics_t CriticalityDiagnostics; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ENBConfigurationUpdateAcknowledge_IEs_t; -typedef struct ENBConfigurationUpdateFailure_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct ENBConfigurationUpdateFailure_IEs__value { - ENBConfigurationUpdateFailure_IEs__value_PR present; - union ENBConfigurationUpdateFailure_IEs__value_u { - Cause_t Cause; - TimeToWait_t TimeToWait; - CriticalityDiagnostics_t CriticalityDiagnostics; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ENBConfigurationUpdateFailure_IEs_t; -typedef struct ResourceStatusRequest_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct ResourceStatusRequest_IEs__value { - ResourceStatusRequest_IEs__value_PR present; - union ResourceStatusRequest_IEs__value_u { - Measurement_ID_t Measurement_ID; - Registration_Request_t Registration_Request; - ReportCharacteristics_t ReportCharacteristics; - CellToReport_List_t CellToReport_List; - ReportingPeriodicity_t ReportingPeriodicity; - PartialSuccessIndicator_t PartialSuccessIndicator; - ReportingPeriodicityRSRPMR_t ReportingPeriodicityRSRPMR; - ReportingPeriodicityCSIR_t ReportingPeriodicityCSIR; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ResourceStatusRequest_IEs_t; -typedef struct ResourceStatusResponse_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct ResourceStatusResponse_IEs__value { - ResourceStatusResponse_IEs__value_PR present; - union ResourceStatusResponse_IEs__value_u { - Measurement_ID_t Measurement_ID; - CriticalityDiagnostics_t CriticalityDiagnostics; - MeasurementInitiationResult_List_t MeasurementInitiationResult_List; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ResourceStatusResponse_IEs_t; -typedef struct ResourceStatusFailure_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct ResourceStatusFailure_IEs__value { - ResourceStatusFailure_IEs__value_PR present; - union ResourceStatusFailure_IEs__value_u { - Measurement_ID_t Measurement_ID; - Cause_t Cause; - CriticalityDiagnostics_t CriticalityDiagnostics; - CompleteFailureCauseInformation_List_t CompleteFailureCauseInformation_List; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ResourceStatusFailure_IEs_t; -typedef struct ResourceStatusUpdate_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct ResourceStatusUpdate_IEs__value { - ResourceStatusUpdate_IEs__value_PR present; - union ResourceStatusUpdate_IEs__value_u { - Measurement_ID_t Measurement_ID; - CellMeasurementResult_List_t CellMeasurementResult_List; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ResourceStatusUpdate_IEs_t; -typedef struct MobilityChangeRequest_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct MobilityChangeRequest_IEs__value { - MobilityChangeRequest_IEs__value_PR present; - union MobilityChangeRequest_IEs__value_u { - ECGI_t ECGI; - MobilityParametersInformation_t MobilityParametersInformation; - Cause_t Cause; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} MobilityChangeRequest_IEs_t; -typedef struct MobilityChangeAcknowledge_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct MobilityChangeAcknowledge_IEs__value { - MobilityChangeAcknowledge_IEs__value_PR present; - union MobilityChangeAcknowledge_IEs__value_u { - ECGI_t ECGI; - CriticalityDiagnostics_t CriticalityDiagnostics; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} MobilityChangeAcknowledge_IEs_t; -typedef struct MobilityChangeFailure_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct MobilityChangeFailure_IEs__value { - MobilityChangeFailure_IEs__value_PR present; - union MobilityChangeFailure_IEs__value_u { - ECGI_t ECGI; - Cause_t Cause; - MobilityParametersModificationRange_t MobilityParametersModificationRange; - CriticalityDiagnostics_t CriticalityDiagnostics; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} MobilityChangeFailure_IEs_t; -typedef struct RLFIndication_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RLFIndication_IEs__value { - RLFIndication_IEs__value_PR present; - union RLFIndication_IEs__value_u { - PCI_t PCI; - ECGI_t ECGI; - CRNTI_t CRNTI; - ShortMAC_I_t ShortMAC_I; - UE_RLF_Report_Container_t UE_RLF_Report_Container; - RRCConnSetupIndicator_t RRCConnSetupIndicator; - RRCConnReestabIndicator_t RRCConnReestabIndicator; - UE_RLF_Report_Container_for_extended_bands_t UE_RLF_Report_Container_for_extended_bands; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RLFIndication_IEs_t; -typedef struct CellActivationRequest_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct CellActivationRequest_IEs__value { - CellActivationRequest_IEs__value_PR present; - union CellActivationRequest_IEs__value_u { - ServedCellsToActivate_t ServedCellsToActivate; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} CellActivationRequest_IEs_t; -typedef struct CellActivationResponse_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct CellActivationResponse_IEs__value { - CellActivationResponse_IEs__value_PR present; - union CellActivationResponse_IEs__value_u { - ActivatedCellList_t ActivatedCellList; - CriticalityDiagnostics_t CriticalityDiagnostics; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} CellActivationResponse_IEs_t; -typedef struct CellActivationFailure_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct CellActivationFailure_IEs__value { - CellActivationFailure_IEs__value_PR present; - union CellActivationFailure_IEs__value_u { - Cause_t Cause; - CriticalityDiagnostics_t CriticalityDiagnostics; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} CellActivationFailure_IEs_t; -typedef struct X2Release_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct X2Release_IEs__value { - X2Release_IEs__value_PR present; - union X2Release_IEs__value_u { - GlobalENB_ID_t GlobalENB_ID; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} X2Release_IEs_t; -typedef struct X2APMessageTransfer_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct X2APMessageTransfer_IEs__value { - X2APMessageTransfer_IEs__value_PR present; - union X2APMessageTransfer_IEs__value_u { - RNL_Header_t RNL_Header; - X2AP_Message_t X2AP_Message; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} X2APMessageTransfer_IEs_t; -typedef struct SeNBAdditionRequest_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct SeNBAdditionRequest_IEs__value { - SeNBAdditionRequest_IEs__value_PR present; - union SeNBAdditionRequest_IEs__value_u { - UE_X2AP_ID_t UE_X2AP_ID; - UESecurityCapabilities_t UESecurityCapabilities; - SeNBSecurityKey_t SeNBSecurityKey; - UEAggregateMaximumBitRate_t UEAggregateMaximumBitRate; - PLMN_Identity_t PLMN_Identity; - E_RABs_ToBeAdded_List_t E_RABs_ToBeAdded_List; - MeNBtoSeNBContainer_t MeNBtoSeNBContainer; - CSGMembershipStatus_t CSGMembershipStatus; - UE_X2AP_ID_Extension_t UE_X2AP_ID_Extension; - ExpectedUEBehaviour_t ExpectedUEBehaviour; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} SeNBAdditionRequest_IEs_t; -typedef struct SeNBAdditionRequestAcknowledge_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct SeNBAdditionRequestAcknowledge_IEs__value { - SeNBAdditionRequestAcknowledge_IEs__value_PR present; - union SeNBAdditionRequestAcknowledge_IEs__value_u { - UE_X2AP_ID_t UE_X2AP_ID; - E_RABs_Admitted_ToBeAdded_List_t E_RABs_Admitted_ToBeAdded_List; - E_RAB_List_t E_RAB_List; - SeNBtoMeNBContainer_t SeNBtoMeNBContainer; - CriticalityDiagnostics_t CriticalityDiagnostics; - TransportLayerAddress_t TransportLayerAddress; - UE_X2AP_ID_Extension_t UE_X2AP_ID_Extension; - TunnelInformation_t TunnelInformation; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} SeNBAdditionRequestAcknowledge_IEs_t; -typedef struct SeNBAdditionRequestReject_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct SeNBAdditionRequestReject_IEs__value { - SeNBAdditionRequestReject_IEs__value_PR present; - union SeNBAdditionRequestReject_IEs__value_u { - UE_X2AP_ID_t UE_X2AP_ID; - Cause_t Cause; - CriticalityDiagnostics_t CriticalityDiagnostics; - UE_X2AP_ID_Extension_t UE_X2AP_ID_Extension; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} SeNBAdditionRequestReject_IEs_t; -typedef struct SeNBReconfigurationComplete_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct SeNBReconfigurationComplete_IEs__value { - SeNBReconfigurationComplete_IEs__value_PR present; - union SeNBReconfigurationComplete_IEs__value_u { - UE_X2AP_ID_t UE_X2AP_ID; - ResponseInformationSeNBReconfComp_t ResponseInformationSeNBReconfComp; - UE_X2AP_ID_Extension_t UE_X2AP_ID_Extension; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} SeNBReconfigurationComplete_IEs_t; -typedef struct SeNBModificationRequest_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct SeNBModificationRequest_IEs__value { - SeNBModificationRequest_IEs__value_PR present; - union SeNBModificationRequest_IEs__value_u { - UE_X2AP_ID_t UE_X2AP_ID; - Cause_t Cause; - SCGChangeIndication_t SCGChangeIndication; - PLMN_Identity_t PLMN_Identity; - UE_ContextInformationSeNBModReq_t UE_ContextInformationSeNBModReq; - MeNBtoSeNBContainer_t MeNBtoSeNBContainer; - CSGMembershipStatus_t CSGMembershipStatus; - UE_X2AP_ID_Extension_t UE_X2AP_ID_Extension; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} SeNBModificationRequest_IEs_t; -typedef struct SeNBModificationRequestAcknowledge_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct SeNBModificationRequestAcknowledge_IEs__value { - SeNBModificationRequestAcknowledge_IEs__value_PR present; - union SeNBModificationRequestAcknowledge_IEs__value_u { - UE_X2AP_ID_t UE_X2AP_ID; - E_RABs_Admitted_ToBeAdded_ModAckList_t E_RABs_Admitted_ToBeAdded_ModAckList; - E_RABs_Admitted_ToBeModified_ModAckList_t E_RABs_Admitted_ToBeModified_ModAckList; - E_RABs_Admitted_ToBeReleased_ModAckList_t E_RABs_Admitted_ToBeReleased_ModAckList; - E_RAB_List_t E_RAB_List; - SeNBtoMeNBContainer_t SeNBtoMeNBContainer; - CriticalityDiagnostics_t CriticalityDiagnostics; - UE_X2AP_ID_Extension_t UE_X2AP_ID_Extension; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} SeNBModificationRequestAcknowledge_IEs_t; -typedef struct SeNBModificationRequestReject_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct SeNBModificationRequestReject_IEs__value { - SeNBModificationRequestReject_IEs__value_PR present; - union SeNBModificationRequestReject_IEs__value_u { - UE_X2AP_ID_t UE_X2AP_ID; - Cause_t Cause; - CriticalityDiagnostics_t CriticalityDiagnostics; - UE_X2AP_ID_Extension_t UE_X2AP_ID_Extension; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} SeNBModificationRequestReject_IEs_t; -typedef struct SeNBModificationRequired_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct SeNBModificationRequired_IEs__value { - SeNBModificationRequired_IEs__value_PR present; - union SeNBModificationRequired_IEs__value_u { - UE_X2AP_ID_t UE_X2AP_ID; - Cause_t Cause; - SCGChangeIndication_t SCGChangeIndication; - E_RABs_ToBeReleased_ModReqd_t E_RABs_ToBeReleased_ModReqd; - SeNBtoMeNBContainer_t SeNBtoMeNBContainer; - UE_X2AP_ID_Extension_t UE_X2AP_ID_Extension; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} SeNBModificationRequired_IEs_t; -typedef struct SeNBModificationConfirm_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct SeNBModificationConfirm_IEs__value { - SeNBModificationConfirm_IEs__value_PR present; - union SeNBModificationConfirm_IEs__value_u { - UE_X2AP_ID_t UE_X2AP_ID; - MeNBtoSeNBContainer_t MeNBtoSeNBContainer; - CriticalityDiagnostics_t CriticalityDiagnostics; - UE_X2AP_ID_Extension_t UE_X2AP_ID_Extension; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} SeNBModificationConfirm_IEs_t; -typedef struct SeNBModificationRefuse_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct SeNBModificationRefuse_IEs__value { - SeNBModificationRefuse_IEs__value_PR present; - union SeNBModificationRefuse_IEs__value_u { - UE_X2AP_ID_t UE_X2AP_ID; - Cause_t Cause; - MeNBtoSeNBContainer_t MeNBtoSeNBContainer; - CriticalityDiagnostics_t CriticalityDiagnostics; - UE_X2AP_ID_Extension_t UE_X2AP_ID_Extension; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} SeNBModificationRefuse_IEs_t; -typedef struct SeNBReleaseRequest_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct SeNBReleaseRequest_IEs__value { - SeNBReleaseRequest_IEs__value_PR present; - union SeNBReleaseRequest_IEs__value_u { - UE_X2AP_ID_t UE_X2AP_ID; - Cause_t Cause; - E_RABs_ToBeReleased_List_RelReq_t E_RABs_ToBeReleased_List_RelReq; - UE_ContextKeptIndicator_t UE_ContextKeptIndicator; - UE_X2AP_ID_Extension_t UE_X2AP_ID_Extension; - MakeBeforeBreakIndicator_t MakeBeforeBreakIndicator; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} SeNBReleaseRequest_IEs_t; -typedef struct SeNBReleaseRequired_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct SeNBReleaseRequired_IEs__value { - SeNBReleaseRequired_IEs__value_PR present; - union SeNBReleaseRequired_IEs__value_u { - UE_X2AP_ID_t UE_X2AP_ID; - Cause_t Cause; - UE_X2AP_ID_Extension_t UE_X2AP_ID_Extension; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} SeNBReleaseRequired_IEs_t; -typedef struct SeNBReleaseConfirm_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct SeNBReleaseConfirm_IEs__value { - SeNBReleaseConfirm_IEs__value_PR present; - union SeNBReleaseConfirm_IEs__value_u { - UE_X2AP_ID_t UE_X2AP_ID; - E_RABs_ToBeReleased_List_RelConf_t E_RABs_ToBeReleased_List_RelConf; - CriticalityDiagnostics_t CriticalityDiagnostics; - UE_X2AP_ID_Extension_t UE_X2AP_ID_Extension; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} SeNBReleaseConfirm_IEs_t; -typedef struct SeNBCounterCheckRequest_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct SeNBCounterCheckRequest_IEs__value { - SeNBCounterCheckRequest_IEs__value_PR present; - union SeNBCounterCheckRequest_IEs__value_u { - UE_X2AP_ID_t UE_X2AP_ID; - E_RABs_SubjectToCounterCheck_List_t E_RABs_SubjectToCounterCheck_List; - UE_X2AP_ID_Extension_t UE_X2AP_ID_Extension; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} SeNBCounterCheckRequest_IEs_t; -typedef struct X2RemovalRequest_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct X2RemovalRequest_IEs__value { - X2RemovalRequest_IEs__value_PR present; - union X2RemovalRequest_IEs__value_u { - GlobalENB_ID_t GlobalENB_ID; - X2BenefitValue_t X2BenefitValue; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} X2RemovalRequest_IEs_t; -typedef struct X2RemovalResponse_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct X2RemovalResponse_IEs__value { - X2RemovalResponse_IEs__value_PR present; - union X2RemovalResponse_IEs__value_u { - GlobalENB_ID_t GlobalENB_ID; - CriticalityDiagnostics_t CriticalityDiagnostics; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} X2RemovalResponse_IEs_t; -typedef struct X2RemovalFailure_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct X2RemovalFailure_IEs__value { - X2RemovalFailure_IEs__value_PR present; - union X2RemovalFailure_IEs__value_u { - Cause_t Cause; - CriticalityDiagnostics_t CriticalityDiagnostics; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} X2RemovalFailure_IEs_t; -typedef struct RetrieveUEContextRequest_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RetrieveUEContextRequest_IEs__value { - RetrieveUEContextRequest_IEs__value_PR present; - union RetrieveUEContextRequest_IEs__value_u { - UE_X2AP_ID_t UE_X2AP_ID; - UE_X2AP_ID_Extension_t UE_X2AP_ID_Extension; - ResumeID_t ResumeID; - ShortMAC_I_t ShortMAC_I; - EUTRANCellIdentifier_t EUTRANCellIdentifier; - CRNTI_t CRNTI; - PCI_t PCI; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RetrieveUEContextRequest_IEs_t; -typedef struct RetrieveUEContextResponse_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RetrieveUEContextResponse_IEs__value { - RetrieveUEContextResponse_IEs__value_PR present; - union RetrieveUEContextResponse_IEs__value_u { - UE_X2AP_ID_t UE_X2AP_ID; - UE_X2AP_ID_Extension_t UE_X2AP_ID_Extension; - GUMMEI_t GUMMEI; - UE_ContextInformationRetrieve_t UE_ContextInformationRetrieve; - TraceActivation_t TraceActivation; - SRVCCOperationPossible_t SRVCCOperationPossible; - Masked_IMEISV_t Masked_IMEISV; - ExpectedUEBehaviour_t ExpectedUEBehaviour; - ProSeAuthorized_t ProSeAuthorized; - CriticalityDiagnostics_t CriticalityDiagnostics; - V2XServicesAuthorized_t V2XServicesAuthorized; - AerialUEsubscriptionInformation_t AerialUEsubscriptionInformation; - Subscription_Based_UE_DifferentiationInfo_t Subscription_Based_UE_DifferentiationInfo; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RetrieveUEContextResponse_IEs_t; -typedef struct RetrieveUEContextFailure_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RetrieveUEContextFailure_IEs__value { - RetrieveUEContextFailure_IEs__value_PR present; - union RetrieveUEContextFailure_IEs__value_u { - UE_X2AP_ID_t UE_X2AP_ID; - UE_X2AP_ID_Extension_t UE_X2AP_ID_Extension; - Cause_t Cause; - CriticalityDiagnostics_t CriticalityDiagnostics; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RetrieveUEContextFailure_IEs_t; -typedef struct SgNBAdditionRequest_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct SgNBAdditionRequest_IEs__value { - SgNBAdditionRequest_IEs__value_PR present; - union SgNBAdditionRequest_IEs__value_u { - UE_X2AP_ID_t UE_X2AP_ID; - NRUESecurityCapabilities_t NRUESecurityCapabilities; - SgNBSecurityKey_t SgNBSecurityKey; - UEAggregateMaximumBitRate_t UEAggregateMaximumBitRate; - PLMN_Identity_t PLMN_Identity; - HandoverRestrictionList_t HandoverRestrictionList; - E_RABs_ToBeAdded_SgNBAddReqList_t E_RABs_ToBeAdded_SgNBAddReqList; - MeNBtoSgNBContainer_t MeNBtoSgNBContainer; - SgNB_UE_X2AP_ID_t SgNB_UE_X2AP_ID; - ExpectedUEBehaviour_t ExpectedUEBehaviour; - UE_X2AP_ID_Extension_t UE_X2AP_ID_Extension; - SplitSRBs_t SplitSRBs; - MeNBResourceCoordinationInformation_t MeNBResourceCoordinationInformation; - SGNB_Addition_Trigger_Ind_t SGNB_Addition_Trigger_Ind; - SubscriberProfileIDforRFP_t SubscriberProfileIDforRFP; - ECGI_t ECGI; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} SgNBAdditionRequest_IEs_t; -typedef struct SgNBAdditionRequestAcknowledge_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct SgNBAdditionRequestAcknowledge_IEs__value { - SgNBAdditionRequestAcknowledge_IEs__value_PR present; - union SgNBAdditionRequestAcknowledge_IEs__value_u { - UE_X2AP_ID_t UE_X2AP_ID; - SgNB_UE_X2AP_ID_t SgNB_UE_X2AP_ID; - E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList_t E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList; - E_RAB_List_t E_RAB_List; - SgNBtoMeNBContainer_t SgNBtoMeNBContainer; - CriticalityDiagnostics_t CriticalityDiagnostics; - UE_X2AP_ID_Extension_t UE_X2AP_ID_Extension; - SplitSRBs_t SplitSRBs; - SgNBResourceCoordinationInformation_t SgNBResourceCoordinationInformation; - RRC_Config_Ind_t RRC_Config_Ind; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} SgNBAdditionRequestAcknowledge_IEs_t; -typedef struct SgNBAdditionRequestReject_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct SgNBAdditionRequestReject_IEs__value { - SgNBAdditionRequestReject_IEs__value_PR present; - union SgNBAdditionRequestReject_IEs__value_u { - UE_X2AP_ID_t UE_X2AP_ID; - SgNB_UE_X2AP_ID_t SgNB_UE_X2AP_ID; - Cause_t Cause; - CriticalityDiagnostics_t CriticalityDiagnostics; - UE_X2AP_ID_Extension_t UE_X2AP_ID_Extension; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} SgNBAdditionRequestReject_IEs_t; -typedef struct SgNBReconfigurationComplete_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct SgNBReconfigurationComplete_IEs__value { - SgNBReconfigurationComplete_IEs__value_PR present; - union SgNBReconfigurationComplete_IEs__value_u { - UE_X2AP_ID_t UE_X2AP_ID; - SgNB_UE_X2AP_ID_t SgNB_UE_X2AP_ID; - ResponseInformationSgNBReconfComp_t ResponseInformationSgNBReconfComp; - UE_X2AP_ID_Extension_t UE_X2AP_ID_Extension; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} SgNBReconfigurationComplete_IEs_t; -typedef struct SgNBModificationRequest_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct SgNBModificationRequest_IEs__value { - SgNBModificationRequest_IEs__value_PR present; - union SgNBModificationRequest_IEs__value_u { - UE_X2AP_ID_t UE_X2AP_ID; - SgNB_UE_X2AP_ID_t SgNB_UE_X2AP_ID; - Cause_t Cause; - PLMN_Identity_t PLMN_Identity; - HandoverRestrictionList_t HandoverRestrictionList; - SCGConfigurationQuery_t SCGConfigurationQuery; - UE_ContextInformation_SgNBModReq_t UE_ContextInformation_SgNBModReq; - MeNBtoSgNBContainer_t MeNBtoSgNBContainer; - UE_X2AP_ID_Extension_t UE_X2AP_ID_Extension; - MeNBResourceCoordinationInformation_t MeNBResourceCoordinationInformation; - SplitSRBs_t SplitSRBs; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} SgNBModificationRequest_IEs_t; -typedef struct SgNBModificationRequestAcknowledge_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct SgNBModificationRequestAcknowledge_IEs__value { - SgNBModificationRequestAcknowledge_IEs__value_PR present; - union SgNBModificationRequestAcknowledge_IEs__value_u { - UE_X2AP_ID_t UE_X2AP_ID; - SgNB_UE_X2AP_ID_t SgNB_UE_X2AP_ID; - E_RABs_Admitted_ToBeAdded_SgNBModAckList_t E_RABs_Admitted_ToBeAdded_SgNBModAckList; - E_RABs_Admitted_ToBeModified_SgNBModAckList_t E_RABs_Admitted_ToBeModified_SgNBModAckList; - E_RABs_Admitted_ToBeReleased_SgNBModAckList_t E_RABs_Admitted_ToBeReleased_SgNBModAckList; - E_RAB_List_t E_RAB_List; - SgNBtoMeNBContainer_t SgNBtoMeNBContainer; - CriticalityDiagnostics_t CriticalityDiagnostics; - UE_X2AP_ID_Extension_t UE_X2AP_ID_Extension; - SgNBResourceCoordinationInformation_t SgNBResourceCoordinationInformation; - SplitSRBs_t SplitSRBs; - RRC_Config_Ind_t RRC_Config_Ind; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} SgNBModificationRequestAcknowledge_IEs_t; -typedef struct SgNBModificationRequestReject_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct SgNBModificationRequestReject_IEs__value { - SgNBModificationRequestReject_IEs__value_PR present; - union SgNBModificationRequestReject_IEs__value_u { - UE_X2AP_ID_t UE_X2AP_ID; - SgNB_UE_X2AP_ID_t SgNB_UE_X2AP_ID; - Cause_t Cause; - CriticalityDiagnostics_t CriticalityDiagnostics; - UE_X2AP_ID_Extension_t UE_X2AP_ID_Extension; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} SgNBModificationRequestReject_IEs_t; -typedef struct SgNBModificationRequired_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct SgNBModificationRequired_IEs__value { - SgNBModificationRequired_IEs__value_PR present; - union SgNBModificationRequired_IEs__value_u { - UE_X2AP_ID_t UE_X2AP_ID; - SgNB_UE_X2AP_ID_t SgNB_UE_X2AP_ID; - Cause_t Cause; - PDCPChangeIndication_t PDCPChangeIndication; - E_RABs_ToBeReleased_SgNBModReqdList_t E_RABs_ToBeReleased_SgNBModReqdList; - SgNBtoMeNBContainer_t SgNBtoMeNBContainer; - UE_X2AP_ID_Extension_t UE_X2AP_ID_Extension; - E_RABs_ToBeModified_SgNBModReqdList_t E_RABs_ToBeModified_SgNBModReqdList; - SgNBResourceCoordinationInformation_t SgNBResourceCoordinationInformation; - RRC_Config_Ind_t RRC_Config_Ind; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} SgNBModificationRequired_IEs_t; -typedef struct SgNBModificationConfirm_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct SgNBModificationConfirm_IEs__value { - SgNBModificationConfirm_IEs__value_PR present; - union SgNBModificationConfirm_IEs__value_u { - UE_X2AP_ID_t UE_X2AP_ID; - SgNB_UE_X2AP_ID_t SgNB_UE_X2AP_ID; - E_RABs_AdmittedToBeModified_SgNBModConfList_t E_RABs_AdmittedToBeModified_SgNBModConfList; - MeNBtoSgNBContainer_t MeNBtoSgNBContainer; - CriticalityDiagnostics_t CriticalityDiagnostics; - UE_X2AP_ID_Extension_t UE_X2AP_ID_Extension; - MeNBResourceCoordinationInformation_t MeNBResourceCoordinationInformation; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} SgNBModificationConfirm_IEs_t; -typedef struct SgNBModificationRefuse_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct SgNBModificationRefuse_IEs__value { - SgNBModificationRefuse_IEs__value_PR present; - union SgNBModificationRefuse_IEs__value_u { - UE_X2AP_ID_t UE_X2AP_ID; - SgNB_UE_X2AP_ID_t SgNB_UE_X2AP_ID; - Cause_t Cause; - MeNBtoSgNBContainer_t MeNBtoSgNBContainer; - CriticalityDiagnostics_t CriticalityDiagnostics; - UE_X2AP_ID_Extension_t UE_X2AP_ID_Extension; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} SgNBModificationRefuse_IEs_t; -typedef struct SgNBReleaseRequest_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct SgNBReleaseRequest_IEs__value { - SgNBReleaseRequest_IEs__value_PR present; - union SgNBReleaseRequest_IEs__value_u { - UE_X2AP_ID_t UE_X2AP_ID; - SgNB_UE_X2AP_ID_t SgNB_UE_X2AP_ID; - Cause_t Cause; - E_RABs_ToBeReleased_SgNBRelReqList_t E_RABs_ToBeReleased_SgNBRelReqList; - UE_ContextKeptIndicator_t UE_ContextKeptIndicator; - UE_X2AP_ID_Extension_t UE_X2AP_ID_Extension; - MeNBtoSgNBContainer_t MeNBtoSgNBContainer; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} SgNBReleaseRequest_IEs_t; -typedef struct SgNBReleaseRequestAcknowledge_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct SgNBReleaseRequestAcknowledge_IEs__value { - SgNBReleaseRequestAcknowledge_IEs__value_PR present; - union SgNBReleaseRequestAcknowledge_IEs__value_u { - UE_X2AP_ID_t UE_X2AP_ID; - SgNB_UE_X2AP_ID_t SgNB_UE_X2AP_ID; - CriticalityDiagnostics_t CriticalityDiagnostics; - UE_X2AP_ID_Extension_t UE_X2AP_ID_Extension; - E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList_t E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} SgNBReleaseRequestAcknowledge_IEs_t; -typedef struct SgNBReleaseRequestReject_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct SgNBReleaseRequestReject_IEs__value { - SgNBReleaseRequestReject_IEs__value_PR present; - union SgNBReleaseRequestReject_IEs__value_u { - UE_X2AP_ID_t UE_X2AP_ID; - SgNB_UE_X2AP_ID_t SgNB_UE_X2AP_ID; - Cause_t Cause; - CriticalityDiagnostics_t CriticalityDiagnostics; - UE_X2AP_ID_Extension_t UE_X2AP_ID_Extension; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} SgNBReleaseRequestReject_IEs_t; -typedef struct SgNBReleaseRequired_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct SgNBReleaseRequired_IEs__value { - SgNBReleaseRequired_IEs__value_PR present; - union SgNBReleaseRequired_IEs__value_u { - UE_X2AP_ID_t UE_X2AP_ID; - SgNB_UE_X2AP_ID_t SgNB_UE_X2AP_ID; - Cause_t Cause; - UE_X2AP_ID_Extension_t UE_X2AP_ID_Extension; - E_RABs_ToBeReleased_SgNBRelReqdList_t E_RABs_ToBeReleased_SgNBRelReqdList; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} SgNBReleaseRequired_IEs_t; -typedef struct SgNBReleaseConfirm_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct SgNBReleaseConfirm_IEs__value { - SgNBReleaseConfirm_IEs__value_PR present; - union SgNBReleaseConfirm_IEs__value_u { - UE_X2AP_ID_t UE_X2AP_ID; - SgNB_UE_X2AP_ID_t SgNB_UE_X2AP_ID; - E_RABs_ToBeReleased_SgNBRelConfList_t E_RABs_ToBeReleased_SgNBRelConfList; - CriticalityDiagnostics_t CriticalityDiagnostics; - UE_X2AP_ID_Extension_t UE_X2AP_ID_Extension; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} SgNBReleaseConfirm_IEs_t; -typedef struct SgNBCounterCheckRequest_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct SgNBCounterCheckRequest_IEs__value { - SgNBCounterCheckRequest_IEs__value_PR present; - union SgNBCounterCheckRequest_IEs__value_u { - UE_X2AP_ID_t UE_X2AP_ID; - SgNB_UE_X2AP_ID_t SgNB_UE_X2AP_ID; - E_RABs_SubjectToSgNBCounterCheck_List_t E_RABs_SubjectToSgNBCounterCheck_List; - UE_X2AP_ID_Extension_t UE_X2AP_ID_Extension; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} SgNBCounterCheckRequest_IEs_t; -typedef struct SgNBChangeRequired_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct SgNBChangeRequired_IEs__value { - SgNBChangeRequired_IEs__value_PR present; - union SgNBChangeRequired_IEs__value_u { - UE_X2AP_ID_t UE_X2AP_ID; - SgNB_UE_X2AP_ID_t SgNB_UE_X2AP_ID; - GlobalGNB_ID_t GlobalGNB_ID; - Cause_t Cause; - SgNBtoMeNBContainer_t SgNBtoMeNBContainer; - UE_X2AP_ID_Extension_t UE_X2AP_ID_Extension; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} SgNBChangeRequired_IEs_t; -typedef struct SgNBChangeConfirm_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct SgNBChangeConfirm_IEs__value { - SgNBChangeConfirm_IEs__value_PR present; - union SgNBChangeConfirm_IEs__value_u { - UE_X2AP_ID_t UE_X2AP_ID; - SgNB_UE_X2AP_ID_t SgNB_UE_X2AP_ID; - E_RABs_ToBeReleased_SgNBChaConfList_t E_RABs_ToBeReleased_SgNBChaConfList; - CriticalityDiagnostics_t CriticalityDiagnostics; - UE_X2AP_ID_Extension_t UE_X2AP_ID_Extension; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} SgNBChangeConfirm_IEs_t; -typedef struct RRCTransfer_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RRCTransfer_IEs__value { - RRCTransfer_IEs__value_PR present; - union RRCTransfer_IEs__value_u { - UE_X2AP_ID_t UE_X2AP_ID; - SgNB_UE_X2AP_ID_t SgNB_UE_X2AP_ID; - SplitSRB_t SplitSRB; - UENRMeasurement_t UENRMeasurement; - UE_X2AP_ID_Extension_t UE_X2AP_ID_Extension; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RRCTransfer_IEs_t; -typedef struct SgNBChangeRefuse_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct SgNBChangeRefuse_IEs__value { - SgNBChangeRefuse_IEs__value_PR present; - union SgNBChangeRefuse_IEs__value_u { - UE_X2AP_ID_t UE_X2AP_ID; - SgNB_UE_X2AP_ID_t SgNB_UE_X2AP_ID; - Cause_t Cause; - CriticalityDiagnostics_t CriticalityDiagnostics; - UE_X2AP_ID_Extension_t UE_X2AP_ID_Extension; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} SgNBChangeRefuse_IEs_t; -typedef struct ENDCX2SetupRequest_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct ENDCX2SetupRequest_IEs__value { - ENDCX2SetupRequest_IEs__value_PR present; - union ENDCX2SetupRequest_IEs__value_u { - InitiatingNodeType_EndcX2Setup_t InitiatingNodeType_EndcX2Setup; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ENDCX2SetupRequest_IEs_t; -typedef struct ENB_ENDCX2SetupReqIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct ENB_ENDCX2SetupReqIEs__value { - ENB_ENDCX2SetupReqIEs__value_PR present; - union ENB_ENDCX2SetupReqIEs__value_u { - GlobalENB_ID_t GlobalENB_ID; - ServedEUTRAcellsENDCX2ManagementList_t ServedEUTRAcellsENDCX2ManagementList; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ENB_ENDCX2SetupReqIEs_t; -typedef struct En_gNB_ENDCX2SetupReqIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct En_gNB_ENDCX2SetupReqIEs__value { - En_gNB_ENDCX2SetupReqIEs__value_PR present; - union En_gNB_ENDCX2SetupReqIEs__value_u { - GlobalGNB_ID_t GlobalGNB_ID; - ServedNRcellsENDCX2ManagementList_t ServedNRcellsENDCX2ManagementList; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} En_gNB_ENDCX2SetupReqIEs_t; -typedef struct ENDCX2SetupResponse_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct ENDCX2SetupResponse_IEs__value { - ENDCX2SetupResponse_IEs__value_PR present; - union ENDCX2SetupResponse_IEs__value_u { - RespondingNodeType_EndcX2Setup_t RespondingNodeType_EndcX2Setup; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ENDCX2SetupResponse_IEs_t; -typedef struct ENB_ENDCX2SetupReqAckIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct ENB_ENDCX2SetupReqAckIEs__value { - ENB_ENDCX2SetupReqAckIEs__value_PR present; - union ENB_ENDCX2SetupReqAckIEs__value_u { - GlobalENB_ID_t GlobalENB_ID; - ServedEUTRAcellsENDCX2ManagementList_t ServedEUTRAcellsENDCX2ManagementList; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ENB_ENDCX2SetupReqAckIEs_t; -typedef struct En_gNB_ENDCX2SetupReqAckIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct En_gNB_ENDCX2SetupReqAckIEs__value { - En_gNB_ENDCX2SetupReqAckIEs__value_PR present; - union En_gNB_ENDCX2SetupReqAckIEs__value_u { - GlobalGNB_ID_t GlobalGNB_ID; - ServedNRcellsENDCX2ManagementList_t ServedNRcellsENDCX2ManagementList; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} En_gNB_ENDCX2SetupReqAckIEs_t; -typedef struct ENDCX2SetupFailure_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct ENDCX2SetupFailure_IEs__value { - ENDCX2SetupFailure_IEs__value_PR present; - union ENDCX2SetupFailure_IEs__value_u { - Cause_t Cause; - CriticalityDiagnostics_t CriticalityDiagnostics; - TimeToWait_t TimeToWait; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ENDCX2SetupFailure_IEs_t; -typedef struct ENDCConfigurationUpdate_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct ENDCConfigurationUpdate_IEs__value { - ENDCConfigurationUpdate_IEs__value_PR present; - union ENDCConfigurationUpdate_IEs__value_u { - InitiatingNodeType_EndcConfigUpdate_t InitiatingNodeType_EndcConfigUpdate; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ENDCConfigurationUpdate_IEs_t; -typedef struct ENB_ENDCConfigUpdateIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct ENB_ENDCConfigUpdateIEs__value { - ENB_ENDCConfigUpdateIEs__value_PR present; - union ENB_ENDCConfigUpdateIEs__value_u { - CellAssistanceInformation_t CellAssistanceInformation; - ServedEUTRAcellsENDCX2ManagementList_t ServedEUTRAcellsENDCX2ManagementList; - ServedEUTRAcellsToModifyListENDCConfUpd_t ServedEUTRAcellsToModifyListENDCConfUpd; - ServedEUTRAcellsToDeleteListENDCConfUpd_t ServedEUTRAcellsToDeleteListENDCConfUpd; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ENB_ENDCConfigUpdateIEs_t; -typedef struct En_gNB_ENDCConfigUpdateIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct En_gNB_ENDCConfigUpdateIEs__value { - En_gNB_ENDCConfigUpdateIEs__value_PR present; - union En_gNB_ENDCConfigUpdateIEs__value_u { - ServedNRcellsENDCX2ManagementList_t ServedNRcellsENDCX2ManagementList; - ServedNRcellsToModifyENDCConfUpdList_t ServedNRcellsToModifyENDCConfUpdList; - ServedNRcellsToDeleteENDCConfUpdList_t ServedNRcellsToDeleteENDCConfUpdList; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} En_gNB_ENDCConfigUpdateIEs_t; -typedef struct ENDCConfigurationUpdateAcknowledge_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct ENDCConfigurationUpdateAcknowledge_IEs__value { - ENDCConfigurationUpdateAcknowledge_IEs__value_PR present; - union ENDCConfigurationUpdateAcknowledge_IEs__value_u { - RespondingNodeType_EndcConfigUpdate_t RespondingNodeType_EndcConfigUpdate; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ENDCConfigurationUpdateAcknowledge_IEs_t; -typedef struct ENB_ENDCConfigUpdateAckIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct ENB_ENDCConfigUpdateAckIEs__value { - ENB_ENDCConfigUpdateAckIEs__value_PR present; - union ENB_ENDCConfigUpdateAckIEs__value_u { - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ENB_ENDCConfigUpdateAckIEs_t; -typedef struct En_gNB_ENDCConfigUpdateAckIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct En_gNB_ENDCConfigUpdateAckIEs__value { - En_gNB_ENDCConfigUpdateAckIEs__value_PR present; - union En_gNB_ENDCConfigUpdateAckIEs__value_u { - ServedNRcellsENDCX2ManagementList_t ServedNRcellsENDCX2ManagementList; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} En_gNB_ENDCConfigUpdateAckIEs_t; -typedef struct ENDCConfigurationUpdateFailure_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct ENDCConfigurationUpdateFailure_IEs__value { - ENDCConfigurationUpdateFailure_IEs__value_PR present; - union ENDCConfigurationUpdateFailure_IEs__value_u { - Cause_t Cause; - CriticalityDiagnostics_t CriticalityDiagnostics; - TimeToWait_t TimeToWait; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ENDCConfigurationUpdateFailure_IEs_t; -typedef struct ENDCCellActivationRequest_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct ENDCCellActivationRequest_IEs__value { - ENDCCellActivationRequest_IEs__value_PR present; - union ENDCCellActivationRequest_IEs__value_u { - ServedNRCellsToActivate_t ServedNRCellsToActivate; - ActivationID_t ActivationID; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ENDCCellActivationRequest_IEs_t; -typedef struct ENDCCellActivationResponse_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct ENDCCellActivationResponse_IEs__value { - ENDCCellActivationResponse_IEs__value_PR present; - union ENDCCellActivationResponse_IEs__value_u { - ActivatedNRCellList_t ActivatedNRCellList; - ActivationID_t ActivationID; - CriticalityDiagnostics_t CriticalityDiagnostics; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ENDCCellActivationResponse_IEs_t; -typedef struct ENDCCellActivationFailure_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct ENDCCellActivationFailure_IEs__value { - ENDCCellActivationFailure_IEs__value_PR present; - union ENDCCellActivationFailure_IEs__value_u { - ActivationID_t ActivationID; - Cause_t Cause; - CriticalityDiagnostics_t CriticalityDiagnostics; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ENDCCellActivationFailure_IEs_t; -typedef struct SecondaryRATDataUsageReport_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct SecondaryRATDataUsageReport_IEs__value { - SecondaryRATDataUsageReport_IEs__value_PR present; - union SecondaryRATDataUsageReport_IEs__value_u { - UE_X2AP_ID_t UE_X2AP_ID; - SgNB_UE_X2AP_ID_t SgNB_UE_X2AP_ID; - SecondaryRATUsageReportList_t SecondaryRATUsageReportList; - UE_X2AP_ID_Extension_t UE_X2AP_ID_Extension; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} SecondaryRATDataUsageReport_IEs_t; -typedef struct SgNBActivityNotification_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct SgNBActivityNotification_IEs__value { - SgNBActivityNotification_IEs__value_PR present; - union SgNBActivityNotification_IEs__value_u { - UE_X2AP_ID_t UE_X2AP_ID; - SgNB_UE_X2AP_ID_t SgNB_UE_X2AP_ID; - UserPlaneTrafficActivityReport_t UserPlaneTrafficActivityReport; - ERABActivityNotifyItemList_t ERABActivityNotifyItemList; - UE_X2AP_ID_Extension_t UE_X2AP_ID_Extension; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} SgNBActivityNotification_IEs_t; -typedef struct ENDCPartialResetRequired_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct ENDCPartialResetRequired_IEs__value { - ENDCPartialResetRequired_IEs__value_PR present; - union ENDCPartialResetRequired_IEs__value_u { - UEsToBeResetList_t UEsToBeResetList; - Cause_t Cause; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ENDCPartialResetRequired_IEs_t; -typedef struct ENDCPartialResetConfirm_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct ENDCPartialResetConfirm_IEs__value { - ENDCPartialResetConfirm_IEs__value_PR present; - union ENDCPartialResetConfirm_IEs__value_u { - UEsToBeResetList_t UEsToBeResetList; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ENDCPartialResetConfirm_IEs_t; -typedef struct EUTRANRCellResourceCoordinationRequest_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct EUTRANRCellResourceCoordinationRequest_IEs__value { - EUTRANRCellResourceCoordinationRequest_IEs__value_PR present; - union EUTRANRCellResourceCoordinationRequest_IEs__value_u { - InitiatingNodeType_EutranrCellResourceCoordination_t InitiatingNodeType_EutranrCellResourceCoordination; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} EUTRANRCellResourceCoordinationRequest_IEs_t; -typedef struct ENB_EUTRA_NRCellResourceCoordinationReqIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct ENB_EUTRA_NRCellResourceCoordinationReqIEs__value { - ENB_EUTRA_NRCellResourceCoordinationReqIEs__value_PR present; - union ENB_EUTRA_NRCellResourceCoordinationReqIEs__value_u { - DataTrafficResourceIndication_t DataTrafficResourceIndication; - SpectrumSharingGroupID_t SpectrumSharingGroupID; - ListofEUTRACellsinEUTRACoordinationReq_t ListofEUTRACellsinEUTRACoordinationReq; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ENB_EUTRA_NRCellResourceCoordinationReqIEs_t; -typedef struct En_gNB_EUTRA_NRCellResourceCoordinationReqIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct En_gNB_EUTRA_NRCellResourceCoordinationReqIEs__value { - En_gNB_EUTRA_NRCellResourceCoordinationReqIEs__value_PR present; - union En_gNB_EUTRA_NRCellResourceCoordinationReqIEs__value_u { - DataTrafficResourceIndication_t DataTrafficResourceIndication; - ListofEUTRACellsinNRCoordinationReq_t ListofEUTRACellsinNRCoordinationReq; - SpectrumSharingGroupID_t SpectrumSharingGroupID; - ListofNRCellsinNRCoordinationReq_t ListofNRCellsinNRCoordinationReq; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} En_gNB_EUTRA_NRCellResourceCoordinationReqIEs_t; -typedef struct EUTRANRCellResourceCoordinationResponse_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct EUTRANRCellResourceCoordinationResponse_IEs__value { - EUTRANRCellResourceCoordinationResponse_IEs__value_PR present; - union EUTRANRCellResourceCoordinationResponse_IEs__value_u { - RespondingNodeType_EutranrCellResourceCoordination_t RespondingNodeType_EutranrCellResourceCoordination; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} EUTRANRCellResourceCoordinationResponse_IEs_t; -typedef struct ENB_EUTRA_NRCellResourceCoordinationReqAckIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct ENB_EUTRA_NRCellResourceCoordinationReqAckIEs__value { - ENB_EUTRA_NRCellResourceCoordinationReqAckIEs__value_PR present; - union ENB_EUTRA_NRCellResourceCoordinationReqAckIEs__value_u { - DataTrafficResourceIndication_t DataTrafficResourceIndication; - SpectrumSharingGroupID_t SpectrumSharingGroupID; - ListofEUTRACellsinEUTRACoordinationResp_t ListofEUTRACellsinEUTRACoordinationResp; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ENB_EUTRA_NRCellResourceCoordinationReqAckIEs_t; -typedef struct En_gNB_EUTRA_NRCellResourceCoordinationReqAckIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct En_gNB_EUTRA_NRCellResourceCoordinationReqAckIEs__value { - En_gNB_EUTRA_NRCellResourceCoordinationReqAckIEs__value_PR present; - union En_gNB_EUTRA_NRCellResourceCoordinationReqAckIEs__value_u { - DataTrafficResourceIndication_t DataTrafficResourceIndication; - SpectrumSharingGroupID_t SpectrumSharingGroupID; - ListofNRCellsinNRCoordinationResp_t ListofNRCellsinNRCoordinationResp; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} En_gNB_EUTRA_NRCellResourceCoordinationReqAckIEs_t; -typedef struct ENDCX2RemovalRequest_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct ENDCX2RemovalRequest_IEs__value { - ENDCX2RemovalRequest_IEs__value_PR present; - union ENDCX2RemovalRequest_IEs__value_u { - InitiatingNodeType_EndcX2Removal_t InitiatingNodeType_EndcX2Removal; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ENDCX2RemovalRequest_IEs_t; -typedef struct ENB_ENDCX2RemovalReqIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct ENB_ENDCX2RemovalReqIEs__value { - ENB_ENDCX2RemovalReqIEs__value_PR present; - union ENB_ENDCX2RemovalReqIEs__value_u { - GlobalENB_ID_t GlobalENB_ID; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ENB_ENDCX2RemovalReqIEs_t; -typedef struct En_gNB_ENDCX2RemovalReqIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct En_gNB_ENDCX2RemovalReqIEs__value { - En_gNB_ENDCX2RemovalReqIEs__value_PR present; - union En_gNB_ENDCX2RemovalReqIEs__value_u { - GlobalGNB_ID_t GlobalGNB_ID; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} En_gNB_ENDCX2RemovalReqIEs_t; -typedef struct ENDCX2RemovalResponse_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct ENDCX2RemovalResponse_IEs__value { - ENDCX2RemovalResponse_IEs__value_PR present; - union ENDCX2RemovalResponse_IEs__value_u { - RespondingNodeType_EndcX2Removal_t RespondingNodeType_EndcX2Removal; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ENDCX2RemovalResponse_IEs_t; -typedef struct ENB_ENDCX2RemovalReqAckIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct ENB_ENDCX2RemovalReqAckIEs__value { - ENB_ENDCX2RemovalReqAckIEs__value_PR present; - union ENB_ENDCX2RemovalReqAckIEs__value_u { - GlobalENB_ID_t GlobalENB_ID; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ENB_ENDCX2RemovalReqAckIEs_t; -typedef struct En_gNB_ENDCX2RemovalReqAckIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct En_gNB_ENDCX2RemovalReqAckIEs__value { - En_gNB_ENDCX2RemovalReqAckIEs__value_PR present; - union En_gNB_ENDCX2RemovalReqAckIEs__value_u { - GlobalGNB_ID_t GlobalGNB_ID; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} En_gNB_ENDCX2RemovalReqAckIEs_t; -typedef struct ENDCX2RemovalFailure_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct ENDCX2RemovalFailure_IEs__value { - ENDCX2RemovalFailure_IEs__value_PR present; - union ENDCX2RemovalFailure_IEs__value_u { - Cause_t Cause; - CriticalityDiagnostics_t CriticalityDiagnostics; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ENDCX2RemovalFailure_IEs_t; -typedef struct DataForwardingAddressIndication_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct DataForwardingAddressIndication_IEs__value { - DataForwardingAddressIndication_IEs__value_PR present; - union DataForwardingAddressIndication_IEs__value_u { - UE_X2AP_ID_Extension_t UE_X2AP_ID_Extension; - UE_X2AP_ID_t UE_X2AP_ID; - E_RABs_DataForwardingAddress_List_t E_RABs_DataForwardingAddress_List; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} DataForwardingAddressIndication_IEs_t; -typedef struct GNBStatusIndicationIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct GNBStatusIndicationIEs__value { - GNBStatusIndicationIEs__value_PR present; - union GNBStatusIndicationIEs__value_u { - GNBOverloadInformation_t GNBOverloadInformation; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} GNBStatusIndicationIEs_t; -typedef struct E_RAB_ItemIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct E_RAB_ItemIEs__value { - E_RAB_ItemIEs__value_PR present; - union E_RAB_ItemIEs__value_u { - E_RAB_Item_t E_RAB_Item; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RAB_ItemIEs_t; -typedef struct E_RABUsageReport_ItemIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct E_RABUsageReport_ItemIEs__value { - E_RABUsageReport_ItemIEs__value_PR present; - union E_RABUsageReport_ItemIEs__value_u { - E_RABUsageReport_Item_t E_RABUsageReport_Item; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E_RABUsageReport_ItemIEs_t; -typedef struct SecondaryRATUsageReport_ItemIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct SecondaryRATUsageReport_ItemIEs__value { - SecondaryRATUsageReport_ItemIEs__value_PR present; - union SecondaryRATUsageReport_ItemIEs__value_u { - SecondaryRATUsageReport_Item_t SecondaryRATUsageReport_Item; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} SecondaryRATUsageReport_ItemIEs_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICaction_ToBeSetup_ItemIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RICaction_ToBeSetup_ItemIEs_specs_1; -extern asn_TYPE_member_t asn_MBR_RICaction_ToBeSetup_ItemIEs_1[3]; -extern asn_TYPE_descriptor_t asn_DEF_RICaction_Admitted_ItemIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RICaction_Admitted_ItemIEs_specs_5; -extern asn_TYPE_member_t asn_MBR_RICaction_Admitted_ItemIEs_5[3]; -extern asn_TYPE_descriptor_t asn_DEF_RICaction_NotAdmitted_ItemIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RICaction_NotAdmitted_ItemIEs_specs_9; -extern asn_TYPE_member_t asn_MBR_RICaction_NotAdmitted_ItemIEs_9[3]; -extern asn_TYPE_descriptor_t asn_DEF_RANfunction_ItemIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RANfunction_ItemIEs_specs_13; -extern asn_TYPE_member_t asn_MBR_RANfunction_ItemIEs_13[3]; -extern asn_TYPE_descriptor_t asn_DEF_RANfunctionID_ItemIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RANfunctionID_ItemIEs_specs_17; -extern asn_TYPE_member_t asn_MBR_RANfunctionID_ItemIEs_17[3]; -extern asn_TYPE_descriptor_t asn_DEF_RANfunctionIDcause_ItemIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RANfunctionIDcause_ItemIEs_specs_21; -extern asn_TYPE_member_t asn_MBR_RANfunctionIDcause_ItemIEs_21[3]; -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeSetup_ItemIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeSetup_ItemIEs_specs_25; -extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeSetup_ItemIEs_25[3]; -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ItemIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ItemIEs_specs_29; -extern asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ItemIEs_29[3]; -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_SubjectToStatusTransfer_ItemIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_SubjectToStatusTransfer_ItemIEs_specs_33; -extern asn_TYPE_member_t asn_MBR_E_RABs_SubjectToStatusTransfer_ItemIEs_33[3]; -extern asn_TYPE_descriptor_t asn_DEF_CellInformation_ItemIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_CellInformation_ItemIEs_specs_37; -extern asn_TYPE_member_t asn_MBR_CellInformation_ItemIEs_37[3]; -extern asn_TYPE_descriptor_t asn_DEF_CellToReport_ItemIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_CellToReport_ItemIEs_specs_41; -extern asn_TYPE_member_t asn_MBR_CellToReport_ItemIEs_41[3]; -extern asn_TYPE_descriptor_t asn_DEF_MeasurementInitiationResult_ItemIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_MeasurementInitiationResult_ItemIEs_specs_45; -extern asn_TYPE_member_t asn_MBR_MeasurementInitiationResult_ItemIEs_45[3]; -extern asn_TYPE_descriptor_t asn_DEF_MeasurementFailureCause_ItemIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_MeasurementFailureCause_ItemIEs_specs_49; -extern asn_TYPE_member_t asn_MBR_MeasurementFailureCause_ItemIEs_49[3]; -extern asn_TYPE_descriptor_t asn_DEF_CompleteFailureCauseInformation_ItemIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_CompleteFailureCauseInformation_ItemIEs_specs_53; -extern asn_TYPE_member_t asn_MBR_CompleteFailureCauseInformation_ItemIEs_53[3]; -extern asn_TYPE_descriptor_t asn_DEF_CellMeasurementResult_ItemIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_CellMeasurementResult_ItemIEs_specs_57; -extern asn_TYPE_member_t asn_MBR_CellMeasurementResult_ItemIEs_57[3]; -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_ItemIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeAdded_ItemIEs_specs_61; -extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeAdded_ItemIEs_61[3]; -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeAdded_ItemIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeAdded_ItemIEs_specs_65; -extern asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeAdded_ItemIEs_65[3]; -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_ModReqItemIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeAdded_ModReqItemIEs_specs_69; -extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeAdded_ModReqItemIEs_69[3]; -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeModified_ModReqItemIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeModified_ModReqItemIEs_specs_73; -extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeModified_ModReqItemIEs_73[3]; -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_ModReqItemIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_ModReqItemIEs_specs_77; -extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_ModReqItemIEs_77[3]; -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckItemIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeAdded_ModAckItemIEs_specs_81; -extern asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeAdded_ModAckItemIEs_81[3]; -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeModified_ModAckItemIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeModified_ModAckItemIEs_specs_85; -extern asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeModified_ModAckItemIEs_85[3]; -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeReleased_ModAckItemIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeReleased_ModAckItemIEs_specs_89; -extern asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeReleased_ModAckItemIEs_89[3]; -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_ModReqdItemIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_ModReqdItemIEs_specs_93; -extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_ModReqdItemIEs_93[3]; -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_RelReqItemIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_RelReqItemIEs_specs_97; -extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_RelReqItemIEs_97[3]; -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_RelConfItemIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_RelConfItemIEs_specs_101; -extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_RelConfItemIEs_101[3]; -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_SubjectToCounterCheckItemIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_SubjectToCounterCheckItemIEs_specs_105; -extern asn_TYPE_member_t asn_MBR_E_RABs_SubjectToCounterCheckItemIEs_105[3]; -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeSetupRetrieve_ItemIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeSetupRetrieve_ItemIEs_specs_109; -extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeSetupRetrieve_ItemIEs_109[3]; -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_ItemIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeAdded_SgNBAddReq_ItemIEs_specs_113; -extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeAdded_SgNBAddReq_ItemIEs_113[3]; -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_ItemIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_ItemIEs_specs_117; -extern asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_ItemIEs_117[3]; -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_SgNBModReq_ItemIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeAdded_SgNBModReq_ItemIEs_specs_121; -extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeAdded_SgNBModReq_ItemIEs_121[3]; -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeModified_SgNBModReq_ItemIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeModified_SgNBModReq_ItemIEs_specs_125; -extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeModified_SgNBModReq_ItemIEs_125[3]; -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBModReq_ItemIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBModReq_ItemIEs_specs_129; -extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBModReq_ItemIEs_129[3]; -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemIEs_specs_133; -extern asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemIEs_133[3]; -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAck_ItemIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeModified_SgNBModAck_ItemIEs_specs_137; -extern asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeModified_SgNBModAck_ItemIEs_137[3]; -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBModAck_ItemIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeReleased_SgNBModAck_ItemIEs_specs_141; -extern asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeReleased_SgNBModAck_ItemIEs_141[3]; -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBModReqd_ItemIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBModReqd_ItemIEs_specs_145; -extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBModReqd_ItemIEs_145[3]; -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeModified_SgNBModReqd_ItemIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeModified_SgNBModReqd_ItemIEs_specs_149; -extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeModified_SgNBModReqd_ItemIEs_149[3]; -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_ItemIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_AdmittedToBeModified_SgNBModConf_ItemIEs_specs_153; -extern asn_TYPE_member_t asn_MBR_E_RABs_AdmittedToBeModified_SgNBModConf_ItemIEs_153[3]; -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_ItemIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBRelReq_ItemIEs_specs_157; -extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBRelReq_ItemIEs_157[3]; -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemIEs_specs_161; -extern asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemIEs_161[3]; -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBRelReqd_ItemIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBRelReqd_ItemIEs_specs_165; -extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBRelReqd_ItemIEs_165[3]; -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_ItemIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBRelConf_ItemIEs_specs_169; -extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBRelConf_ItemIEs_169[3]; -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_SubjectToSgNBCounterCheck_ItemIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_SubjectToSgNBCounterCheck_ItemIEs_specs_173; -extern asn_TYPE_member_t asn_MBR_E_RABs_SubjectToSgNBCounterCheck_ItemIEs_173[3]; -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_ItemIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBChaConf_ItemIEs_specs_177; -extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBChaConf_ItemIEs_177[3]; -extern asn_TYPE_descriptor_t asn_DEF_E_RABs_DataForwardingAddress_ItemIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_DataForwardingAddress_ItemIEs_specs_181; -extern asn_TYPE_member_t asn_MBR_E_RABs_DataForwardingAddress_ItemIEs_181[3]; -extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionRequest_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionRequest_IEs_specs_185; -extern asn_TYPE_member_t asn_MBR_RICsubscriptionRequest_IEs_185[3]; -extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionResponse_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionResponse_IEs_specs_189; -extern asn_TYPE_member_t asn_MBR_RICsubscriptionResponse_IEs_189[3]; -extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionFailure_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionFailure_IEs_specs_193; -extern asn_TYPE_member_t asn_MBR_RICsubscriptionFailure_IEs_193[3]; -extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDeleteRequest_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteRequest_IEs_specs_197; -extern asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteRequest_IEs_197[3]; -extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDeleteResponse_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteResponse_IEs_specs_201; -extern asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteResponse_IEs_201[3]; -extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDeleteFailure_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteFailure_IEs_specs_205; -extern asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteFailure_IEs_205[3]; -extern asn_TYPE_descriptor_t asn_DEF_RICindication_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RICindication_IEs_specs_209; -extern asn_TYPE_member_t asn_MBR_RICindication_IEs_209[3]; -extern asn_TYPE_descriptor_t asn_DEF_RICcontrolRequest_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RICcontrolRequest_IEs_specs_213; -extern asn_TYPE_member_t asn_MBR_RICcontrolRequest_IEs_213[3]; -extern asn_TYPE_descriptor_t asn_DEF_RICcontrolAcknowledge_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RICcontrolAcknowledge_IEs_specs_217; -extern asn_TYPE_member_t asn_MBR_RICcontrolAcknowledge_IEs_217[3]; -extern asn_TYPE_descriptor_t asn_DEF_RICcontrolFailure_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RICcontrolFailure_IEs_specs_221; -extern asn_TYPE_member_t asn_MBR_RICcontrolFailure_IEs_221[3]; -extern asn_TYPE_descriptor_t asn_DEF_RICserviceUpdate_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdate_IEs_specs_225; -extern asn_TYPE_member_t asn_MBR_RICserviceUpdate_IEs_225[3]; -extern asn_TYPE_descriptor_t asn_DEF_RICserviceUpdateAcknowledge_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdateAcknowledge_IEs_specs_229; -extern asn_TYPE_member_t asn_MBR_RICserviceUpdateAcknowledge_IEs_229[3]; -extern asn_TYPE_descriptor_t asn_DEF_RICserviceUpdateFailure_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdateFailure_IEs_specs_233; -extern asn_TYPE_member_t asn_MBR_RICserviceUpdateFailure_IEs_233[3]; -extern asn_TYPE_descriptor_t asn_DEF_RICserviceQuery_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RICserviceQuery_IEs_specs_237; -extern asn_TYPE_member_t asn_MBR_RICserviceQuery_IEs_237[3]; -extern asn_TYPE_descriptor_t asn_DEF_HandoverRequest_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_HandoverRequest_IEs_specs_241; -extern asn_TYPE_member_t asn_MBR_HandoverRequest_IEs_241[3]; -extern asn_TYPE_descriptor_t asn_DEF_HandoverRequestAcknowledge_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_HandoverRequestAcknowledge_IEs_specs_245; -extern asn_TYPE_member_t asn_MBR_HandoverRequestAcknowledge_IEs_245[3]; -extern asn_TYPE_descriptor_t asn_DEF_HandoverPreparationFailure_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_HandoverPreparationFailure_IEs_specs_249; -extern asn_TYPE_member_t asn_MBR_HandoverPreparationFailure_IEs_249[3]; -extern asn_TYPE_descriptor_t asn_DEF_HandoverReport_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_HandoverReport_IEs_specs_253; -extern asn_TYPE_member_t asn_MBR_HandoverReport_IEs_253[3]; -extern asn_TYPE_descriptor_t asn_DEF_SNStatusTransfer_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_SNStatusTransfer_IEs_specs_257; -extern asn_TYPE_member_t asn_MBR_SNStatusTransfer_IEs_257[3]; -extern asn_TYPE_descriptor_t asn_DEF_UEContextRelease_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_UEContextRelease_IEs_specs_261; -extern asn_TYPE_member_t asn_MBR_UEContextRelease_IEs_261[3]; -extern asn_TYPE_descriptor_t asn_DEF_HandoverCancel_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_HandoverCancel_IEs_specs_265; -extern asn_TYPE_member_t asn_MBR_HandoverCancel_IEs_265[3]; -extern asn_TYPE_descriptor_t asn_DEF_ErrorIndication_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_ErrorIndication_IEs_specs_269; -extern asn_TYPE_member_t asn_MBR_ErrorIndication_IEs_269[3]; -extern asn_TYPE_descriptor_t asn_DEF_ResetRequest_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_ResetRequest_IEs_specs_273; -extern asn_TYPE_member_t asn_MBR_ResetRequest_IEs_273[3]; -extern asn_TYPE_descriptor_t asn_DEF_ResetResponse_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_ResetResponse_IEs_specs_277; -extern asn_TYPE_member_t asn_MBR_ResetResponse_IEs_277[3]; -extern asn_TYPE_descriptor_t asn_DEF_X2SetupRequest_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_X2SetupRequest_IEs_specs_281; -extern asn_TYPE_member_t asn_MBR_X2SetupRequest_IEs_281[3]; -extern asn_TYPE_descriptor_t asn_DEF_X2SetupResponse_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_X2SetupResponse_IEs_specs_285; -extern asn_TYPE_member_t asn_MBR_X2SetupResponse_IEs_285[3]; -extern asn_TYPE_descriptor_t asn_DEF_X2SetupFailure_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_X2SetupFailure_IEs_specs_289; -extern asn_TYPE_member_t asn_MBR_X2SetupFailure_IEs_289[3]; -extern asn_TYPE_descriptor_t asn_DEF_LoadInformation_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_LoadInformation_IEs_specs_293; -extern asn_TYPE_member_t asn_MBR_LoadInformation_IEs_293[3]; -extern asn_TYPE_descriptor_t asn_DEF_ENBConfigurationUpdate_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_ENBConfigurationUpdate_IEs_specs_297; -extern asn_TYPE_member_t asn_MBR_ENBConfigurationUpdate_IEs_297[3]; -extern asn_TYPE_descriptor_t asn_DEF_ENBConfigurationUpdateAcknowledge_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_ENBConfigurationUpdateAcknowledge_IEs_specs_301; -extern asn_TYPE_member_t asn_MBR_ENBConfigurationUpdateAcknowledge_IEs_301[3]; -extern asn_TYPE_descriptor_t asn_DEF_ENBConfigurationUpdateFailure_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_ENBConfigurationUpdateFailure_IEs_specs_305; -extern asn_TYPE_member_t asn_MBR_ENBConfigurationUpdateFailure_IEs_305[3]; -extern asn_TYPE_descriptor_t asn_DEF_ResourceStatusRequest_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_ResourceStatusRequest_IEs_specs_309; -extern asn_TYPE_member_t asn_MBR_ResourceStatusRequest_IEs_309[3]; -extern asn_TYPE_descriptor_t asn_DEF_ResourceStatusResponse_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_ResourceStatusResponse_IEs_specs_313; -extern asn_TYPE_member_t asn_MBR_ResourceStatusResponse_IEs_313[3]; -extern asn_TYPE_descriptor_t asn_DEF_ResourceStatusFailure_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_ResourceStatusFailure_IEs_specs_317; -extern asn_TYPE_member_t asn_MBR_ResourceStatusFailure_IEs_317[3]; -extern asn_TYPE_descriptor_t asn_DEF_ResourceStatusUpdate_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_ResourceStatusUpdate_IEs_specs_321; -extern asn_TYPE_member_t asn_MBR_ResourceStatusUpdate_IEs_321[3]; -extern asn_TYPE_descriptor_t asn_DEF_MobilityChangeRequest_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_MobilityChangeRequest_IEs_specs_325; -extern asn_TYPE_member_t asn_MBR_MobilityChangeRequest_IEs_325[3]; -extern asn_TYPE_descriptor_t asn_DEF_MobilityChangeAcknowledge_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_MobilityChangeAcknowledge_IEs_specs_329; -extern asn_TYPE_member_t asn_MBR_MobilityChangeAcknowledge_IEs_329[3]; -extern asn_TYPE_descriptor_t asn_DEF_MobilityChangeFailure_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_MobilityChangeFailure_IEs_specs_333; -extern asn_TYPE_member_t asn_MBR_MobilityChangeFailure_IEs_333[3]; -extern asn_TYPE_descriptor_t asn_DEF_RLFIndication_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RLFIndication_IEs_specs_337; -extern asn_TYPE_member_t asn_MBR_RLFIndication_IEs_337[3]; -extern asn_TYPE_descriptor_t asn_DEF_CellActivationRequest_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_CellActivationRequest_IEs_specs_341; -extern asn_TYPE_member_t asn_MBR_CellActivationRequest_IEs_341[3]; -extern asn_TYPE_descriptor_t asn_DEF_CellActivationResponse_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_CellActivationResponse_IEs_specs_345; -extern asn_TYPE_member_t asn_MBR_CellActivationResponse_IEs_345[3]; -extern asn_TYPE_descriptor_t asn_DEF_CellActivationFailure_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_CellActivationFailure_IEs_specs_349; -extern asn_TYPE_member_t asn_MBR_CellActivationFailure_IEs_349[3]; -extern asn_TYPE_descriptor_t asn_DEF_X2Release_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_X2Release_IEs_specs_353; -extern asn_TYPE_member_t asn_MBR_X2Release_IEs_353[3]; -extern asn_TYPE_descriptor_t asn_DEF_X2APMessageTransfer_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_X2APMessageTransfer_IEs_specs_357; -extern asn_TYPE_member_t asn_MBR_X2APMessageTransfer_IEs_357[3]; -extern asn_TYPE_descriptor_t asn_DEF_SeNBAdditionRequest_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_SeNBAdditionRequest_IEs_specs_361; -extern asn_TYPE_member_t asn_MBR_SeNBAdditionRequest_IEs_361[3]; -extern asn_TYPE_descriptor_t asn_DEF_SeNBAdditionRequestAcknowledge_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_SeNBAdditionRequestAcknowledge_IEs_specs_365; -extern asn_TYPE_member_t asn_MBR_SeNBAdditionRequestAcknowledge_IEs_365[3]; -extern asn_TYPE_descriptor_t asn_DEF_SeNBAdditionRequestReject_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_SeNBAdditionRequestReject_IEs_specs_369; -extern asn_TYPE_member_t asn_MBR_SeNBAdditionRequestReject_IEs_369[3]; -extern asn_TYPE_descriptor_t asn_DEF_SeNBReconfigurationComplete_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_SeNBReconfigurationComplete_IEs_specs_373; -extern asn_TYPE_member_t asn_MBR_SeNBReconfigurationComplete_IEs_373[3]; -extern asn_TYPE_descriptor_t asn_DEF_SeNBModificationRequest_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_SeNBModificationRequest_IEs_specs_377; -extern asn_TYPE_member_t asn_MBR_SeNBModificationRequest_IEs_377[3]; -extern asn_TYPE_descriptor_t asn_DEF_SeNBModificationRequestAcknowledge_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_SeNBModificationRequestAcknowledge_IEs_specs_381; -extern asn_TYPE_member_t asn_MBR_SeNBModificationRequestAcknowledge_IEs_381[3]; -extern asn_TYPE_descriptor_t asn_DEF_SeNBModificationRequestReject_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_SeNBModificationRequestReject_IEs_specs_385; -extern asn_TYPE_member_t asn_MBR_SeNBModificationRequestReject_IEs_385[3]; -extern asn_TYPE_descriptor_t asn_DEF_SeNBModificationRequired_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_SeNBModificationRequired_IEs_specs_389; -extern asn_TYPE_member_t asn_MBR_SeNBModificationRequired_IEs_389[3]; -extern asn_TYPE_descriptor_t asn_DEF_SeNBModificationConfirm_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_SeNBModificationConfirm_IEs_specs_393; -extern asn_TYPE_member_t asn_MBR_SeNBModificationConfirm_IEs_393[3]; -extern asn_TYPE_descriptor_t asn_DEF_SeNBModificationRefuse_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_SeNBModificationRefuse_IEs_specs_397; -extern asn_TYPE_member_t asn_MBR_SeNBModificationRefuse_IEs_397[3]; -extern asn_TYPE_descriptor_t asn_DEF_SeNBReleaseRequest_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_SeNBReleaseRequest_IEs_specs_401; -extern asn_TYPE_member_t asn_MBR_SeNBReleaseRequest_IEs_401[3]; -extern asn_TYPE_descriptor_t asn_DEF_SeNBReleaseRequired_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_SeNBReleaseRequired_IEs_specs_405; -extern asn_TYPE_member_t asn_MBR_SeNBReleaseRequired_IEs_405[3]; -extern asn_TYPE_descriptor_t asn_DEF_SeNBReleaseConfirm_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_SeNBReleaseConfirm_IEs_specs_409; -extern asn_TYPE_member_t asn_MBR_SeNBReleaseConfirm_IEs_409[3]; -extern asn_TYPE_descriptor_t asn_DEF_SeNBCounterCheckRequest_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_SeNBCounterCheckRequest_IEs_specs_413; -extern asn_TYPE_member_t asn_MBR_SeNBCounterCheckRequest_IEs_413[3]; -extern asn_TYPE_descriptor_t asn_DEF_X2RemovalRequest_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_X2RemovalRequest_IEs_specs_417; -extern asn_TYPE_member_t asn_MBR_X2RemovalRequest_IEs_417[3]; -extern asn_TYPE_descriptor_t asn_DEF_X2RemovalResponse_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_X2RemovalResponse_IEs_specs_421; -extern asn_TYPE_member_t asn_MBR_X2RemovalResponse_IEs_421[3]; -extern asn_TYPE_descriptor_t asn_DEF_X2RemovalFailure_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_X2RemovalFailure_IEs_specs_425; -extern asn_TYPE_member_t asn_MBR_X2RemovalFailure_IEs_425[3]; -extern asn_TYPE_descriptor_t asn_DEF_RetrieveUEContextRequest_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RetrieveUEContextRequest_IEs_specs_429; -extern asn_TYPE_member_t asn_MBR_RetrieveUEContextRequest_IEs_429[3]; -extern asn_TYPE_descriptor_t asn_DEF_RetrieveUEContextResponse_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RetrieveUEContextResponse_IEs_specs_433; -extern asn_TYPE_member_t asn_MBR_RetrieveUEContextResponse_IEs_433[3]; -extern asn_TYPE_descriptor_t asn_DEF_RetrieveUEContextFailure_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RetrieveUEContextFailure_IEs_specs_437; -extern asn_TYPE_member_t asn_MBR_RetrieveUEContextFailure_IEs_437[3]; -extern asn_TYPE_descriptor_t asn_DEF_SgNBAdditionRequest_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_SgNBAdditionRequest_IEs_specs_441; -extern asn_TYPE_member_t asn_MBR_SgNBAdditionRequest_IEs_441[3]; -extern asn_TYPE_descriptor_t asn_DEF_SgNBAdditionRequestAcknowledge_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_SgNBAdditionRequestAcknowledge_IEs_specs_445; -extern asn_TYPE_member_t asn_MBR_SgNBAdditionRequestAcknowledge_IEs_445[3]; -extern asn_TYPE_descriptor_t asn_DEF_SgNBAdditionRequestReject_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_SgNBAdditionRequestReject_IEs_specs_449; -extern asn_TYPE_member_t asn_MBR_SgNBAdditionRequestReject_IEs_449[3]; -extern asn_TYPE_descriptor_t asn_DEF_SgNBReconfigurationComplete_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_SgNBReconfigurationComplete_IEs_specs_453; -extern asn_TYPE_member_t asn_MBR_SgNBReconfigurationComplete_IEs_453[3]; -extern asn_TYPE_descriptor_t asn_DEF_SgNBModificationRequest_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_SgNBModificationRequest_IEs_specs_457; -extern asn_TYPE_member_t asn_MBR_SgNBModificationRequest_IEs_457[3]; -extern asn_TYPE_descriptor_t asn_DEF_SgNBModificationRequestAcknowledge_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_SgNBModificationRequestAcknowledge_IEs_specs_461; -extern asn_TYPE_member_t asn_MBR_SgNBModificationRequestAcknowledge_IEs_461[3]; -extern asn_TYPE_descriptor_t asn_DEF_SgNBModificationRequestReject_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_SgNBModificationRequestReject_IEs_specs_465; -extern asn_TYPE_member_t asn_MBR_SgNBModificationRequestReject_IEs_465[3]; -extern asn_TYPE_descriptor_t asn_DEF_SgNBModificationRequired_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_SgNBModificationRequired_IEs_specs_469; -extern asn_TYPE_member_t asn_MBR_SgNBModificationRequired_IEs_469[3]; -extern asn_TYPE_descriptor_t asn_DEF_SgNBModificationConfirm_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_SgNBModificationConfirm_IEs_specs_473; -extern asn_TYPE_member_t asn_MBR_SgNBModificationConfirm_IEs_473[3]; -extern asn_TYPE_descriptor_t asn_DEF_SgNBModificationRefuse_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_SgNBModificationRefuse_IEs_specs_477; -extern asn_TYPE_member_t asn_MBR_SgNBModificationRefuse_IEs_477[3]; -extern asn_TYPE_descriptor_t asn_DEF_SgNBReleaseRequest_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_SgNBReleaseRequest_IEs_specs_481; -extern asn_TYPE_member_t asn_MBR_SgNBReleaseRequest_IEs_481[3]; -extern asn_TYPE_descriptor_t asn_DEF_SgNBReleaseRequestAcknowledge_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_SgNBReleaseRequestAcknowledge_IEs_specs_485; -extern asn_TYPE_member_t asn_MBR_SgNBReleaseRequestAcknowledge_IEs_485[3]; -extern asn_TYPE_descriptor_t asn_DEF_SgNBReleaseRequestReject_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_SgNBReleaseRequestReject_IEs_specs_489; -extern asn_TYPE_member_t asn_MBR_SgNBReleaseRequestReject_IEs_489[3]; -extern asn_TYPE_descriptor_t asn_DEF_SgNBReleaseRequired_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_SgNBReleaseRequired_IEs_specs_493; -extern asn_TYPE_member_t asn_MBR_SgNBReleaseRequired_IEs_493[3]; -extern asn_TYPE_descriptor_t asn_DEF_SgNBReleaseConfirm_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_SgNBReleaseConfirm_IEs_specs_497; -extern asn_TYPE_member_t asn_MBR_SgNBReleaseConfirm_IEs_497[3]; -extern asn_TYPE_descriptor_t asn_DEF_SgNBCounterCheckRequest_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_SgNBCounterCheckRequest_IEs_specs_501; -extern asn_TYPE_member_t asn_MBR_SgNBCounterCheckRequest_IEs_501[3]; -extern asn_TYPE_descriptor_t asn_DEF_SgNBChangeRequired_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_SgNBChangeRequired_IEs_specs_505; -extern asn_TYPE_member_t asn_MBR_SgNBChangeRequired_IEs_505[3]; -extern asn_TYPE_descriptor_t asn_DEF_SgNBChangeConfirm_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_SgNBChangeConfirm_IEs_specs_509; -extern asn_TYPE_member_t asn_MBR_SgNBChangeConfirm_IEs_509[3]; -extern asn_TYPE_descriptor_t asn_DEF_RRCTransfer_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RRCTransfer_IEs_specs_513; -extern asn_TYPE_member_t asn_MBR_RRCTransfer_IEs_513[3]; -extern asn_TYPE_descriptor_t asn_DEF_SgNBChangeRefuse_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_SgNBChangeRefuse_IEs_specs_517; -extern asn_TYPE_member_t asn_MBR_SgNBChangeRefuse_IEs_517[3]; -extern asn_TYPE_descriptor_t asn_DEF_ENDCX2SetupRequest_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_ENDCX2SetupRequest_IEs_specs_521; -extern asn_TYPE_member_t asn_MBR_ENDCX2SetupRequest_IEs_521[3]; -extern asn_TYPE_descriptor_t asn_DEF_ENB_ENDCX2SetupReqIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_ENB_ENDCX2SetupReqIEs_specs_525; -extern asn_TYPE_member_t asn_MBR_ENB_ENDCX2SetupReqIEs_525[3]; -extern asn_TYPE_descriptor_t asn_DEF_En_gNB_ENDCX2SetupReqIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_En_gNB_ENDCX2SetupReqIEs_specs_529; -extern asn_TYPE_member_t asn_MBR_En_gNB_ENDCX2SetupReqIEs_529[3]; -extern asn_TYPE_descriptor_t asn_DEF_ENDCX2SetupResponse_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_ENDCX2SetupResponse_IEs_specs_533; -extern asn_TYPE_member_t asn_MBR_ENDCX2SetupResponse_IEs_533[3]; -extern asn_TYPE_descriptor_t asn_DEF_ENB_ENDCX2SetupReqAckIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_ENB_ENDCX2SetupReqAckIEs_specs_537; -extern asn_TYPE_member_t asn_MBR_ENB_ENDCX2SetupReqAckIEs_537[3]; -extern asn_TYPE_descriptor_t asn_DEF_En_gNB_ENDCX2SetupReqAckIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_En_gNB_ENDCX2SetupReqAckIEs_specs_541; -extern asn_TYPE_member_t asn_MBR_En_gNB_ENDCX2SetupReqAckIEs_541[3]; -extern asn_TYPE_descriptor_t asn_DEF_ENDCX2SetupFailure_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_ENDCX2SetupFailure_IEs_specs_545; -extern asn_TYPE_member_t asn_MBR_ENDCX2SetupFailure_IEs_545[3]; -extern asn_TYPE_descriptor_t asn_DEF_ENDCConfigurationUpdate_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_ENDCConfigurationUpdate_IEs_specs_549; -extern asn_TYPE_member_t asn_MBR_ENDCConfigurationUpdate_IEs_549[3]; -extern asn_TYPE_descriptor_t asn_DEF_ENB_ENDCConfigUpdateIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_ENB_ENDCConfigUpdateIEs_specs_553; -extern asn_TYPE_member_t asn_MBR_ENB_ENDCConfigUpdateIEs_553[3]; -extern asn_TYPE_descriptor_t asn_DEF_En_gNB_ENDCConfigUpdateIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_En_gNB_ENDCConfigUpdateIEs_specs_557; -extern asn_TYPE_member_t asn_MBR_En_gNB_ENDCConfigUpdateIEs_557[3]; -extern asn_TYPE_descriptor_t asn_DEF_ENDCConfigurationUpdateAcknowledge_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_ENDCConfigurationUpdateAcknowledge_IEs_specs_561; -extern asn_TYPE_member_t asn_MBR_ENDCConfigurationUpdateAcknowledge_IEs_561[3]; -extern asn_TYPE_descriptor_t asn_DEF_ENB_ENDCConfigUpdateAckIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_ENB_ENDCConfigUpdateAckIEs_specs_565; -extern asn_TYPE_member_t asn_MBR_ENB_ENDCConfigUpdateAckIEs_565[3]; -extern asn_TYPE_descriptor_t asn_DEF_En_gNB_ENDCConfigUpdateAckIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_En_gNB_ENDCConfigUpdateAckIEs_specs_569; -extern asn_TYPE_member_t asn_MBR_En_gNB_ENDCConfigUpdateAckIEs_569[3]; -extern asn_TYPE_descriptor_t asn_DEF_ENDCConfigurationUpdateFailure_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_ENDCConfigurationUpdateFailure_IEs_specs_573; -extern asn_TYPE_member_t asn_MBR_ENDCConfigurationUpdateFailure_IEs_573[3]; -extern asn_TYPE_descriptor_t asn_DEF_ENDCCellActivationRequest_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_ENDCCellActivationRequest_IEs_specs_577; -extern asn_TYPE_member_t asn_MBR_ENDCCellActivationRequest_IEs_577[3]; -extern asn_TYPE_descriptor_t asn_DEF_ENDCCellActivationResponse_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_ENDCCellActivationResponse_IEs_specs_581; -extern asn_TYPE_member_t asn_MBR_ENDCCellActivationResponse_IEs_581[3]; -extern asn_TYPE_descriptor_t asn_DEF_ENDCCellActivationFailure_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_ENDCCellActivationFailure_IEs_specs_585; -extern asn_TYPE_member_t asn_MBR_ENDCCellActivationFailure_IEs_585[3]; -extern asn_TYPE_descriptor_t asn_DEF_SecondaryRATDataUsageReport_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_SecondaryRATDataUsageReport_IEs_specs_589; -extern asn_TYPE_member_t asn_MBR_SecondaryRATDataUsageReport_IEs_589[3]; -extern asn_TYPE_descriptor_t asn_DEF_SgNBActivityNotification_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_SgNBActivityNotification_IEs_specs_593; -extern asn_TYPE_member_t asn_MBR_SgNBActivityNotification_IEs_593[3]; -extern asn_TYPE_descriptor_t asn_DEF_ENDCPartialResetRequired_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_ENDCPartialResetRequired_IEs_specs_597; -extern asn_TYPE_member_t asn_MBR_ENDCPartialResetRequired_IEs_597[3]; -extern asn_TYPE_descriptor_t asn_DEF_ENDCPartialResetConfirm_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_ENDCPartialResetConfirm_IEs_specs_601; -extern asn_TYPE_member_t asn_MBR_ENDCPartialResetConfirm_IEs_601[3]; -extern asn_TYPE_descriptor_t asn_DEF_EUTRANRCellResourceCoordinationRequest_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_EUTRANRCellResourceCoordinationRequest_IEs_specs_605; -extern asn_TYPE_member_t asn_MBR_EUTRANRCellResourceCoordinationRequest_IEs_605[3]; -extern asn_TYPE_descriptor_t asn_DEF_ENB_EUTRA_NRCellResourceCoordinationReqIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_ENB_EUTRA_NRCellResourceCoordinationReqIEs_specs_609; -extern asn_TYPE_member_t asn_MBR_ENB_EUTRA_NRCellResourceCoordinationReqIEs_609[3]; -extern asn_TYPE_descriptor_t asn_DEF_En_gNB_EUTRA_NRCellResourceCoordinationReqIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_En_gNB_EUTRA_NRCellResourceCoordinationReqIEs_specs_613; -extern asn_TYPE_member_t asn_MBR_En_gNB_EUTRA_NRCellResourceCoordinationReqIEs_613[3]; -extern asn_TYPE_descriptor_t asn_DEF_EUTRANRCellResourceCoordinationResponse_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_EUTRANRCellResourceCoordinationResponse_IEs_specs_617; -extern asn_TYPE_member_t asn_MBR_EUTRANRCellResourceCoordinationResponse_IEs_617[3]; -extern asn_TYPE_descriptor_t asn_DEF_ENB_EUTRA_NRCellResourceCoordinationReqAckIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_ENB_EUTRA_NRCellResourceCoordinationReqAckIEs_specs_621; -extern asn_TYPE_member_t asn_MBR_ENB_EUTRA_NRCellResourceCoordinationReqAckIEs_621[3]; -extern asn_TYPE_descriptor_t asn_DEF_En_gNB_EUTRA_NRCellResourceCoordinationReqAckIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_En_gNB_EUTRA_NRCellResourceCoordinationReqAckIEs_specs_625; -extern asn_TYPE_member_t asn_MBR_En_gNB_EUTRA_NRCellResourceCoordinationReqAckIEs_625[3]; -extern asn_TYPE_descriptor_t asn_DEF_ENDCX2RemovalRequest_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_ENDCX2RemovalRequest_IEs_specs_629; -extern asn_TYPE_member_t asn_MBR_ENDCX2RemovalRequest_IEs_629[3]; -extern asn_TYPE_descriptor_t asn_DEF_ENB_ENDCX2RemovalReqIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_ENB_ENDCX2RemovalReqIEs_specs_633; -extern asn_TYPE_member_t asn_MBR_ENB_ENDCX2RemovalReqIEs_633[3]; -extern asn_TYPE_descriptor_t asn_DEF_En_gNB_ENDCX2RemovalReqIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_En_gNB_ENDCX2RemovalReqIEs_specs_637; -extern asn_TYPE_member_t asn_MBR_En_gNB_ENDCX2RemovalReqIEs_637[3]; -extern asn_TYPE_descriptor_t asn_DEF_ENDCX2RemovalResponse_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_ENDCX2RemovalResponse_IEs_specs_641; -extern asn_TYPE_member_t asn_MBR_ENDCX2RemovalResponse_IEs_641[3]; -extern asn_TYPE_descriptor_t asn_DEF_ENB_ENDCX2RemovalReqAckIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_ENB_ENDCX2RemovalReqAckIEs_specs_645; -extern asn_TYPE_member_t asn_MBR_ENB_ENDCX2RemovalReqAckIEs_645[3]; -extern asn_TYPE_descriptor_t asn_DEF_En_gNB_ENDCX2RemovalReqAckIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_En_gNB_ENDCX2RemovalReqAckIEs_specs_649; -extern asn_TYPE_member_t asn_MBR_En_gNB_ENDCX2RemovalReqAckIEs_649[3]; -extern asn_TYPE_descriptor_t asn_DEF_ENDCX2RemovalFailure_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_ENDCX2RemovalFailure_IEs_specs_653; -extern asn_TYPE_member_t asn_MBR_ENDCX2RemovalFailure_IEs_653[3]; -extern asn_TYPE_descriptor_t asn_DEF_DataForwardingAddressIndication_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_DataForwardingAddressIndication_IEs_specs_657; -extern asn_TYPE_member_t asn_MBR_DataForwardingAddressIndication_IEs_657[3]; -extern asn_TYPE_descriptor_t asn_DEF_GNBStatusIndicationIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_GNBStatusIndicationIEs_specs_661; -extern asn_TYPE_member_t asn_MBR_GNBStatusIndicationIEs_661[3]; -extern asn_TYPE_descriptor_t asn_DEF_E_RAB_ItemIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RAB_ItemIEs_specs_665; -extern asn_TYPE_member_t asn_MBR_E_RAB_ItemIEs_665[3]; -extern asn_TYPE_descriptor_t asn_DEF_E_RABUsageReport_ItemIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E_RABUsageReport_ItemIEs_specs_669; -extern asn_TYPE_member_t asn_MBR_E_RABUsageReport_ItemIEs_669[3]; -extern asn_TYPE_descriptor_t asn_DEF_SecondaryRATUsageReport_ItemIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_SecondaryRATUsageReport_ItemIEs_specs_673; -extern asn_TYPE_member_t asn_MBR_SecondaryRATUsageReport_ItemIEs_673[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _ProtocolIE_Field_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/ProtocolIE-FieldPair.c b/e2sim/previous/ASN1c/ProtocolIE-FieldPair.c deleted file mode 100644 index 940c4f1..0000000 --- a/e2sim/previous/ASN1c/ProtocolIE-FieldPair.c +++ /dev/null @@ -1,27 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-Containers" - * found in "../../asnFiles/X2AP-Containers.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "ProtocolIE-FieldPair.h" - diff --git a/e2sim/previous/ASN1c/ProtocolIE-FieldPair.h b/e2sim/previous/ASN1c/ProtocolIE-FieldPair.h deleted file mode 100644 index 05b5e6f..0000000 --- a/e2sim/previous/ASN1c/ProtocolIE-FieldPair.h +++ /dev/null @@ -1,41 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-Containers" - * found in "../../asnFiles/X2AP-Containers.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _ProtocolIE_FieldPair_H_ -#define _ProtocolIE_FieldPair_H_ - - -#include "asn_application.h" - -#ifdef __cplusplus -extern "C" { -#endif - -#ifdef __cplusplus -} -#endif - -#endif /* _ProtocolIE_FieldPair_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/ProtocolIE-ID.c b/e2sim/previous/ASN1c/ProtocolIE-ID.c deleted file mode 100644 index f520a84..0000000 --- a/e2sim/previous/ASN1c/ProtocolIE-ID.c +++ /dev/null @@ -1,79 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-CommonDataTypes" - * found in "../../asnFiles/X2AP-CommonDataTypes.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "ProtocolIE-ID.h" - -int -ProtocolIE_ID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using NativeInteger, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_ProtocolIE_ID_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_ID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ID = { - "ProtocolIE-ID", - "ProtocolIE-ID", - &asn_OP_NativeInteger, - asn_DEF_ProtocolIE_ID_tags_1, - sizeof(asn_DEF_ProtocolIE_ID_tags_1) - /sizeof(asn_DEF_ProtocolIE_ID_tags_1[0]), /* 1 */ - asn_DEF_ProtocolIE_ID_tags_1, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_ID_tags_1) - /sizeof(asn_DEF_ProtocolIE_ID_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_ID_constr_1, ProtocolIE_ID_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/previous/ASN1c/ProtocolIE-ID.h b/e2sim/previous/ASN1c/ProtocolIE-ID.h deleted file mode 100644 index c619dfd..0000000 --- a/e2sim/previous/ASN1c/ProtocolIE-ID.h +++ /dev/null @@ -1,414 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-CommonDataTypes" - * found in "../../asnFiles/X2AP-CommonDataTypes.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _ProtocolIE_ID_H_ -#define _ProtocolIE_ID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeInteger.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* ProtocolIE-ID */ -typedef long ProtocolIE_ID_t; - -/* Implementation */ -#define ProtocolIE_ID_id_RANfunction_Item ((ProtocolIE_ID_t)60001) -#define ProtocolIE_ID_id_RANfunctionDefinition ((ProtocolIE_ID_t)60002) -#define ProtocolIE_ID_id_RANfunctionID ((ProtocolIE_ID_t)60003) -#define ProtocolIE_ID_id_RANfunctionID_Item ((ProtocolIE_ID_t)60004) -#define ProtocolIE_ID_id_RANfunctionIEcause_Item ((ProtocolIE_ID_t)60005) -#define ProtocolIE_ID_id_RANfunctionsAccepted ((ProtocolIE_ID_t)60006) -#define ProtocolIE_ID_id_RANfunctionsAdded ((ProtocolIE_ID_t)60007) -#define ProtocolIE_ID_id_RANfunctionsDeleted ((ProtocolIE_ID_t)60008) -#define ProtocolIE_ID_id_RANfunctionsModified ((ProtocolIE_ID_t)60009) -#define ProtocolIE_ID_id_RANfunctionsRejected ((ProtocolIE_ID_t)60010) -#define ProtocolIE_ID_id_RICaction_ToBeSetup_Item ((ProtocolIE_ID_t)60011) -#define ProtocolIE_ID_id_RICactions_Admitted ((ProtocolIE_ID_t)60012) -#define ProtocolIE_ID_id_RICaction_Admitted_Item ((ProtocolIE_ID_t)60013) -#define ProtocolIE_ID_id_RICactions_NotAdmitted ((ProtocolIE_ID_t)60014) -#define ProtocolIE_ID_id_RICaction_NotAdmitted_Item ((ProtocolIE_ID_t)60015) -#define ProtocolIE_ID_id_RICactionDefinition ((ProtocolIE_ID_t)60016) -#define ProtocolIE_ID_id_RICactionID ((ProtocolIE_ID_t)60017) -#define ProtocolIE_ID_id_RICactionType ((ProtocolIE_ID_t)60018) -#define ProtocolIE_ID_id_RICcallProcessID ((ProtocolIE_ID_t)60019) -#define ProtocolIE_ID_id_RICcause ((ProtocolIE_ID_t)60020) -#define ProtocolIE_ID_id_RICcontrolAckRequest ((ProtocolIE_ID_t)60021) -#define ProtocolIE_ID_id_RICcontrolHeader ((ProtocolIE_ID_t)60022) -#define ProtocolIE_ID_id_RICcontrolMessage ((ProtocolIE_ID_t)60023) -#define ProtocolIE_ID_id_RICcontrolStatus ((ProtocolIE_ID_t)60024) -#define ProtocolIE_ID_id_RICeventTriggerDefinition ((ProtocolIE_ID_t)60025) -#define ProtocolIE_ID_id_RICindicationHeader ((ProtocolIE_ID_t)60026) -#define ProtocolIE_ID_id_RICindicationMessage ((ProtocolIE_ID_t)60027) -#define ProtocolIE_ID_id_RICindicationSN ((ProtocolIE_ID_t)60028) -#define ProtocolIE_ID_id_RICindicationType ((ProtocolIE_ID_t)60029) -#define ProtocolIE_ID_id_RICrequestID ((ProtocolIE_ID_t)60030) -#define ProtocolIE_ID_id_RICrequestorID ((ProtocolIE_ID_t)60031) -#define ProtocolIE_ID_id_RICrequestSequenceNumber ((ProtocolIE_ID_t)60032) -#define ProtocolIE_ID_id_RICsubscription ((ProtocolIE_ID_t)60033) -#define ProtocolIE_ID_id_RICsubsequentAction ((ProtocolIE_ID_t)60034) -#define ProtocolIE_ID_id_RICsubsequentActionType ((ProtocolIE_ID_t)60035) -#define ProtocolIE_ID_id_RICtimeToWait ((ProtocolIE_ID_t)60036) -#define ProtocolIE_ID_id_E_RABs_Admitted_Item ((ProtocolIE_ID_t)0) -#define ProtocolIE_ID_id_E_RABs_Admitted_List ((ProtocolIE_ID_t)1) -#define ProtocolIE_ID_id_E_RAB_Item ((ProtocolIE_ID_t)2) -#define ProtocolIE_ID_id_E_RABs_NotAdmitted_List ((ProtocolIE_ID_t)3) -#define ProtocolIE_ID_id_E_RABs_ToBeSetup_Item ((ProtocolIE_ID_t)4) -#define ProtocolIE_ID_id_Cause ((ProtocolIE_ID_t)5) -#define ProtocolIE_ID_id_CellInformation ((ProtocolIE_ID_t)6) -#define ProtocolIE_ID_id_CellInformation_Item ((ProtocolIE_ID_t)7) -#define ProtocolIE_ID_id_New_eNB_UE_X2AP_ID ((ProtocolIE_ID_t)9) -#define ProtocolIE_ID_id_Old_eNB_UE_X2AP_ID ((ProtocolIE_ID_t)10) -#define ProtocolIE_ID_id_TargetCell_ID ((ProtocolIE_ID_t)11) -#define ProtocolIE_ID_id_TargeteNBtoSource_eNBTransparentContainer ((ProtocolIE_ID_t)12) -#define ProtocolIE_ID_id_TraceActivation ((ProtocolIE_ID_t)13) -#define ProtocolIE_ID_id_UE_ContextInformation ((ProtocolIE_ID_t)14) -#define ProtocolIE_ID_id_UE_HistoryInformation ((ProtocolIE_ID_t)15) -#define ProtocolIE_ID_id_UE_X2AP_ID ((ProtocolIE_ID_t)16) -#define ProtocolIE_ID_id_CriticalityDiagnostics ((ProtocolIE_ID_t)17) -#define ProtocolIE_ID_id_E_RABs_SubjectToStatusTransfer_List ((ProtocolIE_ID_t)18) -#define ProtocolIE_ID_id_E_RABs_SubjectToStatusTransfer_Item ((ProtocolIE_ID_t)19) -#define ProtocolIE_ID_id_ServedCells ((ProtocolIE_ID_t)20) -#define ProtocolIE_ID_id_GlobalENB_ID ((ProtocolIE_ID_t)21) -#define ProtocolIE_ID_id_TimeToWait ((ProtocolIE_ID_t)22) -#define ProtocolIE_ID_id_GUMMEI_ID ((ProtocolIE_ID_t)23) -#define ProtocolIE_ID_id_GUGroupIDList ((ProtocolIE_ID_t)24) -#define ProtocolIE_ID_id_ServedCellsToAdd ((ProtocolIE_ID_t)25) -#define ProtocolIE_ID_id_ServedCellsToModify ((ProtocolIE_ID_t)26) -#define ProtocolIE_ID_id_ServedCellsToDelete ((ProtocolIE_ID_t)27) -#define ProtocolIE_ID_id_Registration_Request ((ProtocolIE_ID_t)28) -#define ProtocolIE_ID_id_CellToReport ((ProtocolIE_ID_t)29) -#define ProtocolIE_ID_id_ReportingPeriodicity ((ProtocolIE_ID_t)30) -#define ProtocolIE_ID_id_CellToReport_Item ((ProtocolIE_ID_t)31) -#define ProtocolIE_ID_id_CellMeasurementResult ((ProtocolIE_ID_t)32) -#define ProtocolIE_ID_id_CellMeasurementResult_Item ((ProtocolIE_ID_t)33) -#define ProtocolIE_ID_id_GUGroupIDToAddList ((ProtocolIE_ID_t)34) -#define ProtocolIE_ID_id_GUGroupIDToDeleteList ((ProtocolIE_ID_t)35) -#define ProtocolIE_ID_id_SRVCCOperationPossible ((ProtocolIE_ID_t)36) -#define ProtocolIE_ID_id_Measurement_ID ((ProtocolIE_ID_t)37) -#define ProtocolIE_ID_id_ReportCharacteristics ((ProtocolIE_ID_t)38) -#define ProtocolIE_ID_id_ENB1_Measurement_ID ((ProtocolIE_ID_t)39) -#define ProtocolIE_ID_id_ENB2_Measurement_ID ((ProtocolIE_ID_t)40) -#define ProtocolIE_ID_id_Number_of_Antennaports ((ProtocolIE_ID_t)41) -#define ProtocolIE_ID_id_CompositeAvailableCapacityGroup ((ProtocolIE_ID_t)42) -#define ProtocolIE_ID_id_ENB1_Cell_ID ((ProtocolIE_ID_t)43) -#define ProtocolIE_ID_id_ENB2_Cell_ID ((ProtocolIE_ID_t)44) -#define ProtocolIE_ID_id_ENB2_Proposed_Mobility_Parameters ((ProtocolIE_ID_t)45) -#define ProtocolIE_ID_id_ENB1_Mobility_Parameters ((ProtocolIE_ID_t)46) -#define ProtocolIE_ID_id_ENB2_Mobility_Parameters_Modification_Range ((ProtocolIE_ID_t)47) -#define ProtocolIE_ID_id_FailureCellPCI ((ProtocolIE_ID_t)48) -#define ProtocolIE_ID_id_Re_establishmentCellECGI ((ProtocolIE_ID_t)49) -#define ProtocolIE_ID_id_FailureCellCRNTI ((ProtocolIE_ID_t)50) -#define ProtocolIE_ID_id_ShortMAC_I ((ProtocolIE_ID_t)51) -#define ProtocolIE_ID_id_SourceCellECGI ((ProtocolIE_ID_t)52) -#define ProtocolIE_ID_id_FailureCellECGI ((ProtocolIE_ID_t)53) -#define ProtocolIE_ID_id_HandoverReportType ((ProtocolIE_ID_t)54) -#define ProtocolIE_ID_id_PRACH_Configuration ((ProtocolIE_ID_t)55) -#define ProtocolIE_ID_id_MBSFN_Subframe_Info ((ProtocolIE_ID_t)56) -#define ProtocolIE_ID_id_ServedCellsToActivate ((ProtocolIE_ID_t)57) -#define ProtocolIE_ID_id_ActivatedCellList ((ProtocolIE_ID_t)58) -#define ProtocolIE_ID_id_DeactivationIndication ((ProtocolIE_ID_t)59) -#define ProtocolIE_ID_id_UE_RLF_Report_Container ((ProtocolIE_ID_t)60) -#define ProtocolIE_ID_id_ABSInformation ((ProtocolIE_ID_t)61) -#define ProtocolIE_ID_id_InvokeIndication ((ProtocolIE_ID_t)62) -#define ProtocolIE_ID_id_ABS_Status ((ProtocolIE_ID_t)63) -#define ProtocolIE_ID_id_PartialSuccessIndicator ((ProtocolIE_ID_t)64) -#define ProtocolIE_ID_id_MeasurementInitiationResult_List ((ProtocolIE_ID_t)65) -#define ProtocolIE_ID_id_MeasurementInitiationResult_Item ((ProtocolIE_ID_t)66) -#define ProtocolIE_ID_id_MeasurementFailureCause_Item ((ProtocolIE_ID_t)67) -#define ProtocolIE_ID_id_CompleteFailureCauseInformation_List ((ProtocolIE_ID_t)68) -#define ProtocolIE_ID_id_CompleteFailureCauseInformation_Item ((ProtocolIE_ID_t)69) -#define ProtocolIE_ID_id_CSG_Id ((ProtocolIE_ID_t)70) -#define ProtocolIE_ID_id_CSGMembershipStatus ((ProtocolIE_ID_t)71) -#define ProtocolIE_ID_id_MDTConfiguration ((ProtocolIE_ID_t)72) -#define ProtocolIE_ID_id_ManagementBasedMDTallowed ((ProtocolIE_ID_t)74) -#define ProtocolIE_ID_id_RRCConnSetupIndicator ((ProtocolIE_ID_t)75) -#define ProtocolIE_ID_id_NeighbourTAC ((ProtocolIE_ID_t)76) -#define ProtocolIE_ID_id_Time_UE_StayedInCell_EnhancedGranularity ((ProtocolIE_ID_t)77) -#define ProtocolIE_ID_id_RRCConnReestabIndicator ((ProtocolIE_ID_t)78) -#define ProtocolIE_ID_id_MBMS_Service_Area_List ((ProtocolIE_ID_t)79) -#define ProtocolIE_ID_id_HO_cause ((ProtocolIE_ID_t)80) -#define ProtocolIE_ID_id_TargetCellInUTRAN ((ProtocolIE_ID_t)81) -#define ProtocolIE_ID_id_MobilityInformation ((ProtocolIE_ID_t)82) -#define ProtocolIE_ID_id_SourceCellCRNTI ((ProtocolIE_ID_t)83) -#define ProtocolIE_ID_id_MultibandInfoList ((ProtocolIE_ID_t)84) -#define ProtocolIE_ID_id_M3Configuration ((ProtocolIE_ID_t)85) -#define ProtocolIE_ID_id_M4Configuration ((ProtocolIE_ID_t)86) -#define ProtocolIE_ID_id_M5Configuration ((ProtocolIE_ID_t)87) -#define ProtocolIE_ID_id_MDT_Location_Info ((ProtocolIE_ID_t)88) -#define ProtocolIE_ID_id_ManagementBasedMDTPLMNList ((ProtocolIE_ID_t)89) -#define ProtocolIE_ID_id_SignallingBasedMDTPLMNList ((ProtocolIE_ID_t)90) -#define ProtocolIE_ID_id_ReceiveStatusOfULPDCPSDUsExtended ((ProtocolIE_ID_t)91) -#define ProtocolIE_ID_id_ULCOUNTValueExtended ((ProtocolIE_ID_t)92) -#define ProtocolIE_ID_id_DLCOUNTValueExtended ((ProtocolIE_ID_t)93) -#define ProtocolIE_ID_id_eARFCNExtension ((ProtocolIE_ID_t)94) -#define ProtocolIE_ID_id_UL_EARFCNExtension ((ProtocolIE_ID_t)95) -#define ProtocolIE_ID_id_DL_EARFCNExtension ((ProtocolIE_ID_t)96) -#define ProtocolIE_ID_id_AdditionalSpecialSubframe_Info ((ProtocolIE_ID_t)97) -#define ProtocolIE_ID_id_Masked_IMEISV ((ProtocolIE_ID_t)98) -#define ProtocolIE_ID_id_IntendedULDLConfiguration ((ProtocolIE_ID_t)99) -#define ProtocolIE_ID_id_ExtendedULInterferenceOverloadInfo ((ProtocolIE_ID_t)100) -#define ProtocolIE_ID_id_RNL_Header ((ProtocolIE_ID_t)101) -#define ProtocolIE_ID_id_x2APMessage ((ProtocolIE_ID_t)102) -#define ProtocolIE_ID_id_ProSeAuthorized ((ProtocolIE_ID_t)103) -#define ProtocolIE_ID_id_ExpectedUEBehaviour ((ProtocolIE_ID_t)104) -#define ProtocolIE_ID_id_UE_HistoryInformationFromTheUE ((ProtocolIE_ID_t)105) -#define ProtocolIE_ID_id_DynamicDLTransmissionInformation ((ProtocolIE_ID_t)106) -#define ProtocolIE_ID_id_UE_RLF_Report_Container_for_extended_bands ((ProtocolIE_ID_t)107) -#define ProtocolIE_ID_id_CoMPInformation ((ProtocolIE_ID_t)108) -#define ProtocolIE_ID_id_ReportingPeriodicityRSRPMR ((ProtocolIE_ID_t)109) -#define ProtocolIE_ID_id_RSRPMRList ((ProtocolIE_ID_t)110) -#define ProtocolIE_ID_id_MeNB_UE_X2AP_ID ((ProtocolIE_ID_t)111) -#define ProtocolIE_ID_id_SeNB_UE_X2AP_ID ((ProtocolIE_ID_t)112) -#define ProtocolIE_ID_id_UE_SecurityCapabilities ((ProtocolIE_ID_t)113) -#define ProtocolIE_ID_id_SeNBSecurityKey ((ProtocolIE_ID_t)114) -#define ProtocolIE_ID_id_SeNBUEAggregateMaximumBitRate ((ProtocolIE_ID_t)115) -#define ProtocolIE_ID_id_ServingPLMN ((ProtocolIE_ID_t)116) -#define ProtocolIE_ID_id_E_RABs_ToBeAdded_List ((ProtocolIE_ID_t)117) -#define ProtocolIE_ID_id_E_RABs_ToBeAdded_Item ((ProtocolIE_ID_t)118) -#define ProtocolIE_ID_id_MeNBtoSeNBContainer ((ProtocolIE_ID_t)119) -#define ProtocolIE_ID_id_E_RABs_Admitted_ToBeAdded_List ((ProtocolIE_ID_t)120) -#define ProtocolIE_ID_id_E_RABs_Admitted_ToBeAdded_Item ((ProtocolIE_ID_t)121) -#define ProtocolIE_ID_id_SeNBtoMeNBContainer ((ProtocolIE_ID_t)122) -#define ProtocolIE_ID_id_ResponseInformationSeNBReconfComp ((ProtocolIE_ID_t)123) -#define ProtocolIE_ID_id_UE_ContextInformationSeNBModReq ((ProtocolIE_ID_t)124) -#define ProtocolIE_ID_id_E_RABs_ToBeAdded_ModReqItem ((ProtocolIE_ID_t)125) -#define ProtocolIE_ID_id_E_RABs_ToBeModified_ModReqItem ((ProtocolIE_ID_t)126) -#define ProtocolIE_ID_id_E_RABs_ToBeReleased_ModReqItem ((ProtocolIE_ID_t)127) -#define ProtocolIE_ID_id_E_RABs_Admitted_ToBeAdded_ModAckList ((ProtocolIE_ID_t)128) -#define ProtocolIE_ID_id_E_RABs_Admitted_ToBeModified_ModAckList ((ProtocolIE_ID_t)129) -#define ProtocolIE_ID_id_E_RABs_Admitted_ToBeReleased_ModAckList ((ProtocolIE_ID_t)130) -#define ProtocolIE_ID_id_E_RABs_Admitted_ToBeAdded_ModAckItem ((ProtocolIE_ID_t)131) -#define ProtocolIE_ID_id_E_RABs_Admitted_ToBeModified_ModAckItem ((ProtocolIE_ID_t)132) -#define ProtocolIE_ID_id_E_RABs_Admitted_ToBeReleased_ModAckItem ((ProtocolIE_ID_t)133) -#define ProtocolIE_ID_id_E_RABs_ToBeReleased_ModReqd ((ProtocolIE_ID_t)134) -#define ProtocolIE_ID_id_E_RABs_ToBeReleased_ModReqdItem ((ProtocolIE_ID_t)135) -#define ProtocolIE_ID_id_SCGChangeIndication ((ProtocolIE_ID_t)136) -#define ProtocolIE_ID_id_E_RABs_ToBeReleased_List_RelReq ((ProtocolIE_ID_t)137) -#define ProtocolIE_ID_id_E_RABs_ToBeReleased_RelReqItem ((ProtocolIE_ID_t)138) -#define ProtocolIE_ID_id_E_RABs_ToBeReleased_List_RelConf ((ProtocolIE_ID_t)139) -#define ProtocolIE_ID_id_E_RABs_ToBeReleased_RelConfItem ((ProtocolIE_ID_t)140) -#define ProtocolIE_ID_id_E_RABs_SubjectToCounterCheck_List ((ProtocolIE_ID_t)141) -#define ProtocolIE_ID_id_E_RABs_SubjectToCounterCheckItem ((ProtocolIE_ID_t)142) -#define ProtocolIE_ID_id_CoverageModificationList ((ProtocolIE_ID_t)143) -#define ProtocolIE_ID_id_ReportingPeriodicityCSIR ((ProtocolIE_ID_t)145) -#define ProtocolIE_ID_id_CSIReportList ((ProtocolIE_ID_t)146) -#define ProtocolIE_ID_id_UEID ((ProtocolIE_ID_t)147) -#define ProtocolIE_ID_id_enhancedRNTP ((ProtocolIE_ID_t)148) -#define ProtocolIE_ID_id_ProSeUEtoNetworkRelaying ((ProtocolIE_ID_t)149) -#define ProtocolIE_ID_id_ReceiveStatusOfULPDCPSDUsPDCP_SNlength18 ((ProtocolIE_ID_t)150) -#define ProtocolIE_ID_id_ULCOUNTValuePDCP_SNlength18 ((ProtocolIE_ID_t)151) -#define ProtocolIE_ID_id_DLCOUNTValuePDCP_SNlength18 ((ProtocolIE_ID_t)152) -#define ProtocolIE_ID_id_UE_ContextReferenceAtSeNB ((ProtocolIE_ID_t)153) -#define ProtocolIE_ID_id_UE_ContextKeptIndicator ((ProtocolIE_ID_t)154) -#define ProtocolIE_ID_id_New_eNB_UE_X2AP_ID_Extension ((ProtocolIE_ID_t)155) -#define ProtocolIE_ID_id_Old_eNB_UE_X2AP_ID_Extension ((ProtocolIE_ID_t)156) -#define ProtocolIE_ID_id_MeNB_UE_X2AP_ID_Extension ((ProtocolIE_ID_t)157) -#define ProtocolIE_ID_id_SeNB_UE_X2AP_ID_Extension ((ProtocolIE_ID_t)158) -#define ProtocolIE_ID_id_LHN_ID ((ProtocolIE_ID_t)159) -#define ProtocolIE_ID_id_FreqBandIndicatorPriority ((ProtocolIE_ID_t)160) -#define ProtocolIE_ID_id_M6Configuration ((ProtocolIE_ID_t)161) -#define ProtocolIE_ID_id_M7Configuration ((ProtocolIE_ID_t)162) -#define ProtocolIE_ID_id_Tunnel_Information_for_BBF ((ProtocolIE_ID_t)163) -#define ProtocolIE_ID_id_SIPTO_BearerDeactivationIndication ((ProtocolIE_ID_t)164) -#define ProtocolIE_ID_id_GW_TransportLayerAddress ((ProtocolIE_ID_t)165) -#define ProtocolIE_ID_id_Correlation_ID ((ProtocolIE_ID_t)166) -#define ProtocolIE_ID_id_SIPTO_Correlation_ID ((ProtocolIE_ID_t)167) -#define ProtocolIE_ID_id_SIPTO_L_GW_TransportLayerAddress ((ProtocolIE_ID_t)168) -#define ProtocolIE_ID_id_X2RemovalThreshold ((ProtocolIE_ID_t)169) -#define ProtocolIE_ID_id_CellReportingIndicator ((ProtocolIE_ID_t)170) -#define ProtocolIE_ID_id_BearerType ((ProtocolIE_ID_t)171) -#define ProtocolIE_ID_id_resumeID ((ProtocolIE_ID_t)172) -#define ProtocolIE_ID_id_UE_ContextInformationRetrieve ((ProtocolIE_ID_t)173) -#define ProtocolIE_ID_id_E_RABs_ToBeSetupRetrieve_Item ((ProtocolIE_ID_t)174) -#define ProtocolIE_ID_id_NewEUTRANCellIdentifier ((ProtocolIE_ID_t)175) -#define ProtocolIE_ID_id_V2XServicesAuthorized ((ProtocolIE_ID_t)176) -#define ProtocolIE_ID_id_OffsetOfNbiotChannelNumberToDL_EARFCN ((ProtocolIE_ID_t)177) -#define ProtocolIE_ID_id_OffsetOfNbiotChannelNumberToUL_EARFCN ((ProtocolIE_ID_t)178) -#define ProtocolIE_ID_id_AdditionalSpecialSubframeExtension_Info ((ProtocolIE_ID_t)179) -#define ProtocolIE_ID_id_BandwidthReducedSI ((ProtocolIE_ID_t)180) -#define ProtocolIE_ID_id_MakeBeforeBreakIndicator ((ProtocolIE_ID_t)181) -#define ProtocolIE_ID_id_UE_ContextReferenceAtWT ((ProtocolIE_ID_t)182) -#define ProtocolIE_ID_id_WT_UE_ContextKeptIndicator ((ProtocolIE_ID_t)183) -#define ProtocolIE_ID_id_UESidelinkAggregateMaximumBitRate ((ProtocolIE_ID_t)184) -#define ProtocolIE_ID_id_uL_GTPtunnelEndpoint ((ProtocolIE_ID_t)185) -#define ProtocolIE_ID_id_DL_scheduling_PDCCH_CCE_usage ((ProtocolIE_ID_t)193) -#define ProtocolIE_ID_id_UL_scheduling_PDCCH_CCE_usage ((ProtocolIE_ID_t)194) -#define ProtocolIE_ID_id_UEAppLayerMeasConfig ((ProtocolIE_ID_t)195) -#define ProtocolIE_ID_id_extended_e_RAB_MaximumBitrateDL ((ProtocolIE_ID_t)196) -#define ProtocolIE_ID_id_extended_e_RAB_MaximumBitrateUL ((ProtocolIE_ID_t)197) -#define ProtocolIE_ID_id_extended_e_RAB_GuaranteedBitrateDL ((ProtocolIE_ID_t)198) -#define ProtocolIE_ID_id_extended_e_RAB_GuaranteedBitrateUL ((ProtocolIE_ID_t)199) -#define ProtocolIE_ID_id_extended_uEaggregateMaximumBitRateDownlink ((ProtocolIE_ID_t)200) -#define ProtocolIE_ID_id_extended_uEaggregateMaximumBitRateUplink ((ProtocolIE_ID_t)201) -#define ProtocolIE_ID_id_NRrestrictioninEPSasSecondaryRAT ((ProtocolIE_ID_t)202) -#define ProtocolIE_ID_id_SgNBSecurityKey ((ProtocolIE_ID_t)203) -#define ProtocolIE_ID_id_SgNBUEAggregateMaximumBitRate ((ProtocolIE_ID_t)204) -#define ProtocolIE_ID_id_E_RABs_ToBeAdded_SgNBAddReqList ((ProtocolIE_ID_t)205) -#define ProtocolIE_ID_id_MeNBtoSgNBContainer ((ProtocolIE_ID_t)206) -#define ProtocolIE_ID_id_SgNB_UE_X2AP_ID ((ProtocolIE_ID_t)207) -#define ProtocolIE_ID_id_RequestedSplitSRBs ((ProtocolIE_ID_t)208) -#define ProtocolIE_ID_id_E_RABs_ToBeAdded_SgNBAddReq_Item ((ProtocolIE_ID_t)209) -#define ProtocolIE_ID_id_E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList ((ProtocolIE_ID_t)210) -#define ProtocolIE_ID_id_SgNBtoMeNBContainer ((ProtocolIE_ID_t)211) -#define ProtocolIE_ID_id_AdmittedSplitSRBs ((ProtocolIE_ID_t)212) -#define ProtocolIE_ID_id_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item ((ProtocolIE_ID_t)213) -#define ProtocolIE_ID_id_ResponseInformationSgNBReconfComp ((ProtocolIE_ID_t)214) -#define ProtocolIE_ID_id_UE_ContextInformation_SgNBModReq ((ProtocolIE_ID_t)215) -#define ProtocolIE_ID_id_E_RABs_ToBeAdded_SgNBModReq_Item ((ProtocolIE_ID_t)216) -#define ProtocolIE_ID_id_E_RABs_ToBeModified_SgNBModReq_Item ((ProtocolIE_ID_t)217) -#define ProtocolIE_ID_id_E_RABs_ToBeReleased_SgNBModReq_Item ((ProtocolIE_ID_t)218) -#define ProtocolIE_ID_id_E_RABs_Admitted_ToBeAdded_SgNBModAckList ((ProtocolIE_ID_t)219) -#define ProtocolIE_ID_id_E_RABs_Admitted_ToBeModified_SgNBModAckList ((ProtocolIE_ID_t)220) -#define ProtocolIE_ID_id_E_RABs_Admitted_ToBeReleased_SgNBModAckList ((ProtocolIE_ID_t)221) -#define ProtocolIE_ID_id_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item ((ProtocolIE_ID_t)222) -#define ProtocolIE_ID_id_E_RABs_Admitted_ToBeModified_SgNBModAck_Item ((ProtocolIE_ID_t)223) -#define ProtocolIE_ID_id_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item ((ProtocolIE_ID_t)224) -#define ProtocolIE_ID_id_E_RABs_ToBeReleased_SgNBModReqdList ((ProtocolIE_ID_t)225) -#define ProtocolIE_ID_id_E_RABs_ToBeModified_SgNBModReqdList ((ProtocolIE_ID_t)226) -#define ProtocolIE_ID_id_E_RABs_ToBeReleased_SgNBModReqd_Item ((ProtocolIE_ID_t)227) -#define ProtocolIE_ID_id_E_RABs_ToBeModified_SgNBModReqd_Item ((ProtocolIE_ID_t)228) -#define ProtocolIE_ID_id_E_RABs_ToBeReleased_SgNBChaConfList ((ProtocolIE_ID_t)229) -#define ProtocolIE_ID_id_E_RABs_ToBeReleased_SgNBChaConf_Item ((ProtocolIE_ID_t)230) -#define ProtocolIE_ID_id_E_RABs_ToBeReleased_SgNBRelReqList ((ProtocolIE_ID_t)231) -#define ProtocolIE_ID_id_E_RABs_ToBeReleased_SgNBRelReq_Item ((ProtocolIE_ID_t)232) -#define ProtocolIE_ID_id_E_RABs_ToBeReleased_SgNBRelConfList ((ProtocolIE_ID_t)233) -#define ProtocolIE_ID_id_E_RABs_ToBeReleased_SgNBRelConf_Item ((ProtocolIE_ID_t)234) -#define ProtocolIE_ID_id_E_RABs_SubjectToSgNBCounterCheck_List ((ProtocolIE_ID_t)235) -#define ProtocolIE_ID_id_E_RABs_SubjectToSgNBCounterCheck_Item ((ProtocolIE_ID_t)236) -#define ProtocolIE_ID_id_RRCContainer ((ProtocolIE_ID_t)237) -#define ProtocolIE_ID_id_SRBType ((ProtocolIE_ID_t)238) -#define ProtocolIE_ID_id_Target_SgNB_ID ((ProtocolIE_ID_t)239) -#define ProtocolIE_ID_id_HandoverRestrictionList ((ProtocolIE_ID_t)240) -#define ProtocolIE_ID_id_SCGConfigurationQuery ((ProtocolIE_ID_t)241) -#define ProtocolIE_ID_id_SplitSRB ((ProtocolIE_ID_t)242) -#define ProtocolIE_ID_id_UENRMeasurement ((ProtocolIE_ID_t)243) -#define ProtocolIE_ID_id_InitiatingNodeType_EndcX2Setup ((ProtocolIE_ID_t)244) -#define ProtocolIE_ID_id_InitiatingNodeType_EndcConfigUpdate ((ProtocolIE_ID_t)245) -#define ProtocolIE_ID_id_RespondingNodeType_EndcX2Setup ((ProtocolIE_ID_t)246) -#define ProtocolIE_ID_id_RespondingNodeType_EndcConfigUpdate ((ProtocolIE_ID_t)247) -#define ProtocolIE_ID_id_NRUESecurityCapabilities ((ProtocolIE_ID_t)248) -#define ProtocolIE_ID_id_PDCPChangeIndication ((ProtocolIE_ID_t)249) -#define ProtocolIE_ID_id_ServedEUTRAcellsENDCX2ManagementList ((ProtocolIE_ID_t)250) -#define ProtocolIE_ID_id_CellAssistanceInformation ((ProtocolIE_ID_t)251) -#define ProtocolIE_ID_id_Globalen_gNB_ID ((ProtocolIE_ID_t)252) -#define ProtocolIE_ID_id_ServedNRcellsENDCX2ManagementList ((ProtocolIE_ID_t)253) -#define ProtocolIE_ID_id_UE_ContextReferenceAtSgNB ((ProtocolIE_ID_t)254) -#define ProtocolIE_ID_id_SecondaryRATUsageReport ((ProtocolIE_ID_t)255) -#define ProtocolIE_ID_id_ActivationID ((ProtocolIE_ID_t)256) -#define ProtocolIE_ID_id_MeNBResourceCoordinationInformation ((ProtocolIE_ID_t)257) -#define ProtocolIE_ID_id_SgNBResourceCoordinationInformation ((ProtocolIE_ID_t)258) -#define ProtocolIE_ID_id_ServedEUTRAcellsToModifyListENDCConfUpd ((ProtocolIE_ID_t)259) -#define ProtocolIE_ID_id_ServedEUTRAcellsToDeleteListENDCConfUpd ((ProtocolIE_ID_t)260) -#define ProtocolIE_ID_id_ServedNRcellsToModifyListENDCConfUpd ((ProtocolIE_ID_t)261) -#define ProtocolIE_ID_id_ServedNRcellsToDeleteListENDCConfUpd ((ProtocolIE_ID_t)262) -#define ProtocolIE_ID_id_E_RABUsageReport_Item ((ProtocolIE_ID_t)263) -#define ProtocolIE_ID_id_Old_SgNB_UE_X2AP_ID ((ProtocolIE_ID_t)264) -#define ProtocolIE_ID_id_SecondaryRATUsageReportList ((ProtocolIE_ID_t)265) -#define ProtocolIE_ID_id_SecondaryRATUsageReport_Item ((ProtocolIE_ID_t)266) -#define ProtocolIE_ID_id_ServedNRCellsToActivate ((ProtocolIE_ID_t)267) -#define ProtocolIE_ID_id_ActivatedNRCellList ((ProtocolIE_ID_t)268) -#define ProtocolIE_ID_id_SelectedPLMN ((ProtocolIE_ID_t)269) -#define ProtocolIE_ID_id_UEs_ToBeReset ((ProtocolIE_ID_t)270) -#define ProtocolIE_ID_id_UEs_Admitted_ToBeReset ((ProtocolIE_ID_t)271) -#define ProtocolIE_ID_id_RRCConfigIndication ((ProtocolIE_ID_t)272) -#define ProtocolIE_ID_id_DownlinkPacketLossRate ((ProtocolIE_ID_t)273) -#define ProtocolIE_ID_id_UplinkPacketLossRate ((ProtocolIE_ID_t)274) -#define ProtocolIE_ID_id_SubscriberProfileIDforRFP ((ProtocolIE_ID_t)275) -#define ProtocolIE_ID_id_serviceType ((ProtocolIE_ID_t)276) -#define ProtocolIE_ID_id_AerialUEsubscriptionInformation ((ProtocolIE_ID_t)277) -#define ProtocolIE_ID_id_SGNB_Addition_Trigger_Ind ((ProtocolIE_ID_t)278) -#define ProtocolIE_ID_id_MeNBCell_ID ((ProtocolIE_ID_t)279) -#define ProtocolIE_ID_id_RequestedSplitSRBsrelease ((ProtocolIE_ID_t)280) -#define ProtocolIE_ID_id_AdmittedSplitSRBsrelease ((ProtocolIE_ID_t)281) -#define ProtocolIE_ID_id_NRS_NSSS_PowerOffset ((ProtocolIE_ID_t)282) -#define ProtocolIE_ID_id_NSSS_NumOccasionDifferentPrecoder ((ProtocolIE_ID_t)283) -#define ProtocolIE_ID_id_ProtectedEUTRAResourceIndication ((ProtocolIE_ID_t)284) -#define ProtocolIE_ID_id_InitiatingNodeType_EutranrCellResourceCoordination ((ProtocolIE_ID_t)285) -#define ProtocolIE_ID_id_RespondingNodeType_EutranrCellResourceCoordination ((ProtocolIE_ID_t)286) -#define ProtocolIE_ID_id_DataTrafficResourceIndication ((ProtocolIE_ID_t)287) -#define ProtocolIE_ID_id_SpectrumSharingGroupID ((ProtocolIE_ID_t)288) -#define ProtocolIE_ID_id_ListofEUTRACellsinEUTRACoordinationReq ((ProtocolIE_ID_t)289) -#define ProtocolIE_ID_id_ListofEUTRACellsinEUTRACoordinationResp ((ProtocolIE_ID_t)290) -#define ProtocolIE_ID_id_ListofEUTRACellsinNRCoordinationReq ((ProtocolIE_ID_t)291) -#define ProtocolIE_ID_id_ListofNRCellsinNRCoordinationReq ((ProtocolIE_ID_t)292) -#define ProtocolIE_ID_id_ListofNRCellsinNRCoordinationResp ((ProtocolIE_ID_t)293) -#define ProtocolIE_ID_id_E_RABs_AdmittedToBeModified_SgNBModConfList ((ProtocolIE_ID_t)294) -#define ProtocolIE_ID_id_E_RABs_AdmittedToBeModified_SgNBModConf_Item ((ProtocolIE_ID_t)295) -#define ProtocolIE_ID_id_UEContextLevelUserPlaneActivity ((ProtocolIE_ID_t)296) -#define ProtocolIE_ID_id_ERABActivityNotifyItemList ((ProtocolIE_ID_t)297) -#define ProtocolIE_ID_id_InitiatingNodeType_EndcX2Removal ((ProtocolIE_ID_t)298) -#define ProtocolIE_ID_id_RespondingNodeType_EndcX2Removal ((ProtocolIE_ID_t)299) -#define ProtocolIE_ID_id_RLC_Status ((ProtocolIE_ID_t)300) -#define ProtocolIE_ID_id_CNTypeRestrictions ((ProtocolIE_ID_t)301) -#define ProtocolIE_ID_id_uLpDCPSnLength ((ProtocolIE_ID_t)302) -#define ProtocolIE_ID_id_BluetoothMeasurementConfiguration ((ProtocolIE_ID_t)303) -#define ProtocolIE_ID_id_WLANMeasurementConfiguration ((ProtocolIE_ID_t)304) -#define ProtocolIE_ID_id_NRrestrictionin5GS ((ProtocolIE_ID_t)305) -#define ProtocolIE_ID_id_dL_Forwarding ((ProtocolIE_ID_t)306) -#define ProtocolIE_ID_id_E_RABs_DataForwardingAddress_List ((ProtocolIE_ID_t)307) -#define ProtocolIE_ID_id_E_RABs_DataForwardingAddress_Item ((ProtocolIE_ID_t)308) -#define ProtocolIE_ID_id_Subscription_Based_UE_DifferentiationInfo ((ProtocolIE_ID_t)309) -#define ProtocolIE_ID_id_GNBOverloadInformation ((ProtocolIE_ID_t)310) -#define ProtocolIE_ID_id_dLPDCPSnLength ((ProtocolIE_ID_t)311) -#define ProtocolIE_ID_id_secondarysgNBDLGTPTEIDatPDCP ((ProtocolIE_ID_t)312) -#define ProtocolIE_ID_id_secondarymeNBULGTPTEIDatPDCP ((ProtocolIE_ID_t)313) -#define ProtocolIE_ID_id_lCID ((ProtocolIE_ID_t)314) -#define ProtocolIE_ID_id_duplicationActivation ((ProtocolIE_ID_t)315) -#define ProtocolIE_ID_id_ECGI ((ProtocolIE_ID_t)316) -#define ProtocolIE_ID_id_RLCMode_transferred ((ProtocolIE_ID_t)317) -#define ProtocolIE_ID_id_E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList ((ProtocolIE_ID_t)318) -#define ProtocolIE_ID_id_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item ((ProtocolIE_ID_t)319) -#define ProtocolIE_ID_id_E_RABs_ToBeReleased_SgNBRelReqdList ((ProtocolIE_ID_t)320) -#define ProtocolIE_ID_id_E_RABs_ToBeReleased_SgNBRelReqd_Item ((ProtocolIE_ID_t)321) -#define ProtocolIE_ID_id_NRCGI ((ProtocolIE_ID_t)322) -#define ProtocolIE_ID_id_MeNBCoordinationAssistanceInformation ((ProtocolIE_ID_t)323) -#define ProtocolIE_ID_id_SgNBCoordinationAssistanceInformation ((ProtocolIE_ID_t)324) -#define ProtocolIE_ID_id_new_drb_ID_req ((ProtocolIE_ID_t)325) -extern asn_per_constraints_t asn_PER_type_ProtocolIE_ID_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ID; -asn_struct_free_f ProtocolIE_ID_free; -asn_struct_print_f ProtocolIE_ID_print; -asn_constr_check_f ProtocolIE_ID_constraint; -ber_type_decoder_f ProtocolIE_ID_decode_ber; -der_type_encoder_f ProtocolIE_ID_encode_der; -xer_type_decoder_f ProtocolIE_ID_decode_xer; -xer_type_encoder_f ProtocolIE_ID_encode_xer; -per_type_decoder_f ProtocolIE_ID_decode_uper; -per_type_encoder_f ProtocolIE_ID_encode_uper; -per_type_decoder_f ProtocolIE_ID_decode_aper; -per_type_encoder_f ProtocolIE_ID_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _ProtocolIE_ID_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/ProtocolIE-Single-Container.c b/e2sim/previous/ASN1c/ProtocolIE-Single-Container.c deleted file mode 100644 index e8f244a..0000000 --- a/e2sim/previous/ASN1c/ProtocolIE-Single-Container.c +++ /dev/null @@ -1,1154 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-Containers" - * found in "../../asnFiles/X2AP-Containers.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "ProtocolIE-Single-Container.h" - -/* - * This type is implemented using RICaction_ToBeSetup_ItemIEs, - * so here we adjust the DEF accordingly. - */ -/* - * This type is implemented using RICaction_Admitted_ItemIEs, - * so here we adjust the DEF accordingly. - */ -/* - * This type is implemented using RICaction_NotAdmitted_ItemIEs, - * so here we adjust the DEF accordingly. - */ -/* - * This type is implemented using RANfunction_ItemIEs, - * so here we adjust the DEF accordingly. - */ -/* - * This type is implemented using RANfunctionID_ItemIEs, - * so here we adjust the DEF accordingly. - */ -/* - * This type is implemented using RANfunctionIDcause_ItemIEs, - * so here we adjust the DEF accordingly. - */ -/* - * This type is implemented using E_RABs_ToBeSetup_ItemIEs, - * so here we adjust the DEF accordingly. - */ -/* - * This type is implemented using E_RABs_Admitted_ItemIEs, - * so here we adjust the DEF accordingly. - */ -/* - * This type is implemented using E_RABs_SubjectToStatusTransfer_ItemIEs, - * so here we adjust the DEF accordingly. - */ -/* - * This type is implemented using CellInformation_ItemIEs, - * so here we adjust the DEF accordingly. - */ -/* - * This type is implemented using CellToReport_ItemIEs, - * so here we adjust the DEF accordingly. - */ -/* - * This type is implemented using MeasurementInitiationResult_ItemIEs, - * so here we adjust the DEF accordingly. - */ -/* - * This type is implemented using MeasurementFailureCause_ItemIEs, - * so here we adjust the DEF accordingly. - */ -/* - * This type is implemented using CompleteFailureCauseInformation_ItemIEs, - * so here we adjust the DEF accordingly. - */ -/* - * This type is implemented using CellMeasurementResult_ItemIEs, - * so here we adjust the DEF accordingly. - */ -/* - * This type is implemented using E_RABs_ToBeAdded_ItemIEs, - * so here we adjust the DEF accordingly. - */ -/* - * This type is implemented using E_RABs_Admitted_ToBeAdded_ItemIEs, - * so here we adjust the DEF accordingly. - */ -/* - * This type is implemented using E_RABs_ToBeAdded_ModReqItemIEs, - * so here we adjust the DEF accordingly. - */ -/* - * This type is implemented using E_RABs_ToBeModified_ModReqItemIEs, - * so here we adjust the DEF accordingly. - */ -/* - * This type is implemented using E_RABs_ToBeReleased_ModReqItemIEs, - * so here we adjust the DEF accordingly. - */ -/* - * This type is implemented using E_RABs_Admitted_ToBeAdded_ModAckItemIEs, - * so here we adjust the DEF accordingly. - */ -/* - * This type is implemented using E_RABs_Admitted_ToBeModified_ModAckItemIEs, - * so here we adjust the DEF accordingly. - */ -/* - * This type is implemented using E_RABs_Admitted_ToBeReleased_ModAckItemIEs, - * so here we adjust the DEF accordingly. - */ -/* - * This type is implemented using E_RABs_ToBeReleased_ModReqdItemIEs, - * so here we adjust the DEF accordingly. - */ -/* - * This type is implemented using E_RABs_ToBeReleased_RelReqItemIEs, - * so here we adjust the DEF accordingly. - */ -/* - * This type is implemented using E_RABs_ToBeReleased_RelConfItemIEs, - * so here we adjust the DEF accordingly. - */ -/* - * This type is implemented using E_RABs_SubjectToCounterCheckItemIEs, - * so here we adjust the DEF accordingly. - */ -/* - * This type is implemented using E_RABs_ToBeSetupRetrieve_ItemIEs, - * so here we adjust the DEF accordingly. - */ -/* - * This type is implemented using E_RABs_ToBeAdded_SgNBAddReq_ItemIEs, - * so here we adjust the DEF accordingly. - */ -/* - * This type is implemented using E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_ItemIEs, - * so here we adjust the DEF accordingly. - */ -/* - * This type is implemented using E_RABs_ToBeAdded_SgNBModReq_ItemIEs, - * so here we adjust the DEF accordingly. - */ -/* - * This type is implemented using E_RABs_ToBeModified_SgNBModReq_ItemIEs, - * so here we adjust the DEF accordingly. - */ -/* - * This type is implemented using E_RABs_ToBeReleased_SgNBModReq_ItemIEs, - * so here we adjust the DEF accordingly. - */ -/* - * This type is implemented using E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemIEs, - * so here we adjust the DEF accordingly. - */ -/* - * This type is implemented using E_RABs_Admitted_ToBeModified_SgNBModAck_ItemIEs, - * so here we adjust the DEF accordingly. - */ -/* - * This type is implemented using E_RABs_Admitted_ToBeReleased_SgNBModAck_ItemIEs, - * so here we adjust the DEF accordingly. - */ -/* - * This type is implemented using E_RABs_ToBeReleased_SgNBModReqd_ItemIEs, - * so here we adjust the DEF accordingly. - */ -/* - * This type is implemented using E_RABs_ToBeModified_SgNBModReqd_ItemIEs, - * so here we adjust the DEF accordingly. - */ -/* - * This type is implemented using E_RABs_AdmittedToBeModified_SgNBModConf_ItemIEs, - * so here we adjust the DEF accordingly. - */ -/* - * This type is implemented using E_RABs_ToBeReleased_SgNBRelReq_ItemIEs, - * so here we adjust the DEF accordingly. - */ -/* - * This type is implemented using E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemIEs, - * so here we adjust the DEF accordingly. - */ -/* - * This type is implemented using E_RABs_ToBeReleased_SgNBRelReqd_ItemIEs, - * so here we adjust the DEF accordingly. - */ -/* - * This type is implemented using E_RABs_ToBeReleased_SgNBRelConf_ItemIEs, - * so here we adjust the DEF accordingly. - */ -/* - * This type is implemented using E_RABs_SubjectToSgNBCounterCheck_ItemIEs, - * so here we adjust the DEF accordingly. - */ -/* - * This type is implemented using E_RABs_ToBeReleased_SgNBChaConf_ItemIEs, - * so here we adjust the DEF accordingly. - */ -/* - * This type is implemented using E_RABs_DataForwardingAddress_ItemIEs, - * so here we adjust the DEF accordingly. - */ -/* - * This type is implemented using E_RAB_ItemIEs, - * so here we adjust the DEF accordingly. - */ -/* - * This type is implemented using E_RABUsageReport_ItemIEs, - * so here we adjust the DEF accordingly. - */ -/* - * This type is implemented using SecondaryRATUsageReport_ItemIEs, - * so here we adjust the DEF accordingly. - */ -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Single_Container_122P0_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_122P0 = { - "ProtocolIE-Single-Container", - "ProtocolIE-Single-Container", - &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_Single_Container_122P0_tags_1, - sizeof(asn_DEF_ProtocolIE_Single_Container_122P0_tags_1) - /sizeof(asn_DEF_ProtocolIE_Single_Container_122P0_tags_1[0]), /* 1 */ - asn_DEF_ProtocolIE_Single_Container_122P0_tags_1, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Single_Container_122P0_tags_1) - /sizeof(asn_DEF_ProtocolIE_Single_Container_122P0_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICaction_ToBeSetup_ItemIEs_1, - 3, /* Elements count */ - &asn_SPC_RICaction_ToBeSetup_ItemIEs_specs_1 /* Additional specs */ -}; - -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Single_Container_122P1_tags_2[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_122P1 = { - "ProtocolIE-Single-Container", - "ProtocolIE-Single-Container", - &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_Single_Container_122P1_tags_2, - sizeof(asn_DEF_ProtocolIE_Single_Container_122P1_tags_2) - /sizeof(asn_DEF_ProtocolIE_Single_Container_122P1_tags_2[0]), /* 1 */ - asn_DEF_ProtocolIE_Single_Container_122P1_tags_2, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Single_Container_122P1_tags_2) - /sizeof(asn_DEF_ProtocolIE_Single_Container_122P1_tags_2[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICaction_Admitted_ItemIEs_5, - 3, /* Elements count */ - &asn_SPC_RICaction_Admitted_ItemIEs_specs_5 /* Additional specs */ -}; - -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Single_Container_122P2_tags_3[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_122P2 = { - "ProtocolIE-Single-Container", - "ProtocolIE-Single-Container", - &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_Single_Container_122P2_tags_3, - sizeof(asn_DEF_ProtocolIE_Single_Container_122P2_tags_3) - /sizeof(asn_DEF_ProtocolIE_Single_Container_122P2_tags_3[0]), /* 1 */ - asn_DEF_ProtocolIE_Single_Container_122P2_tags_3, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Single_Container_122P2_tags_3) - /sizeof(asn_DEF_ProtocolIE_Single_Container_122P2_tags_3[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICaction_NotAdmitted_ItemIEs_9, - 3, /* Elements count */ - &asn_SPC_RICaction_NotAdmitted_ItemIEs_specs_9 /* Additional specs */ -}; - -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Single_Container_122P3_tags_4[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_122P3 = { - "ProtocolIE-Single-Container", - "ProtocolIE-Single-Container", - &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_Single_Container_122P3_tags_4, - sizeof(asn_DEF_ProtocolIE_Single_Container_122P3_tags_4) - /sizeof(asn_DEF_ProtocolIE_Single_Container_122P3_tags_4[0]), /* 1 */ - asn_DEF_ProtocolIE_Single_Container_122P3_tags_4, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Single_Container_122P3_tags_4) - /sizeof(asn_DEF_ProtocolIE_Single_Container_122P3_tags_4[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RANfunction_ItemIEs_13, - 3, /* Elements count */ - &asn_SPC_RANfunction_ItemIEs_specs_13 /* Additional specs */ -}; - -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Single_Container_122P4_tags_5[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_122P4 = { - "ProtocolIE-Single-Container", - "ProtocolIE-Single-Container", - &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_Single_Container_122P4_tags_5, - sizeof(asn_DEF_ProtocolIE_Single_Container_122P4_tags_5) - /sizeof(asn_DEF_ProtocolIE_Single_Container_122P4_tags_5[0]), /* 1 */ - asn_DEF_ProtocolIE_Single_Container_122P4_tags_5, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Single_Container_122P4_tags_5) - /sizeof(asn_DEF_ProtocolIE_Single_Container_122P4_tags_5[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RANfunctionID_ItemIEs_17, - 3, /* Elements count */ - &asn_SPC_RANfunctionID_ItemIEs_specs_17 /* Additional specs */ -}; - -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Single_Container_122P5_tags_6[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_122P5 = { - "ProtocolIE-Single-Container", - "ProtocolIE-Single-Container", - &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_Single_Container_122P5_tags_6, - sizeof(asn_DEF_ProtocolIE_Single_Container_122P5_tags_6) - /sizeof(asn_DEF_ProtocolIE_Single_Container_122P5_tags_6[0]), /* 1 */ - asn_DEF_ProtocolIE_Single_Container_122P5_tags_6, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Single_Container_122P5_tags_6) - /sizeof(asn_DEF_ProtocolIE_Single_Container_122P5_tags_6[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RANfunctionIDcause_ItemIEs_21, - 3, /* Elements count */ - &asn_SPC_RANfunctionIDcause_ItemIEs_specs_21 /* Additional specs */ -}; - -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Single_Container_122P6_tags_7[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_122P6 = { - "ProtocolIE-Single-Container", - "ProtocolIE-Single-Container", - &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_Single_Container_122P6_tags_7, - sizeof(asn_DEF_ProtocolIE_Single_Container_122P6_tags_7) - /sizeof(asn_DEF_ProtocolIE_Single_Container_122P6_tags_7[0]), /* 1 */ - asn_DEF_ProtocolIE_Single_Container_122P6_tags_7, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Single_Container_122P6_tags_7) - /sizeof(asn_DEF_ProtocolIE_Single_Container_122P6_tags_7[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_ToBeSetup_ItemIEs_25, - 3, /* Elements count */ - &asn_SPC_E_RABs_ToBeSetup_ItemIEs_specs_25 /* Additional specs */ -}; - -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Single_Container_122P7_tags_8[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_122P7 = { - "ProtocolIE-Single-Container", - "ProtocolIE-Single-Container", - &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_Single_Container_122P7_tags_8, - sizeof(asn_DEF_ProtocolIE_Single_Container_122P7_tags_8) - /sizeof(asn_DEF_ProtocolIE_Single_Container_122P7_tags_8[0]), /* 1 */ - asn_DEF_ProtocolIE_Single_Container_122P7_tags_8, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Single_Container_122P7_tags_8) - /sizeof(asn_DEF_ProtocolIE_Single_Container_122P7_tags_8[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_Admitted_ItemIEs_29, - 3, /* Elements count */ - &asn_SPC_E_RABs_Admitted_ItemIEs_specs_29 /* Additional specs */ -}; - -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Single_Container_122P8_tags_9[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_122P8 = { - "ProtocolIE-Single-Container", - "ProtocolIE-Single-Container", - &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_Single_Container_122P8_tags_9, - sizeof(asn_DEF_ProtocolIE_Single_Container_122P8_tags_9) - /sizeof(asn_DEF_ProtocolIE_Single_Container_122P8_tags_9[0]), /* 1 */ - asn_DEF_ProtocolIE_Single_Container_122P8_tags_9, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Single_Container_122P8_tags_9) - /sizeof(asn_DEF_ProtocolIE_Single_Container_122P8_tags_9[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_SubjectToStatusTransfer_ItemIEs_33, - 3, /* Elements count */ - &asn_SPC_E_RABs_SubjectToStatusTransfer_ItemIEs_specs_33 /* Additional specs */ -}; - -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Single_Container_122P9_tags_10[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_122P9 = { - "ProtocolIE-Single-Container", - "ProtocolIE-Single-Container", - &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_Single_Container_122P9_tags_10, - sizeof(asn_DEF_ProtocolIE_Single_Container_122P9_tags_10) - /sizeof(asn_DEF_ProtocolIE_Single_Container_122P9_tags_10[0]), /* 1 */ - asn_DEF_ProtocolIE_Single_Container_122P9_tags_10, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Single_Container_122P9_tags_10) - /sizeof(asn_DEF_ProtocolIE_Single_Container_122P9_tags_10[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_CellInformation_ItemIEs_37, - 3, /* Elements count */ - &asn_SPC_CellInformation_ItemIEs_specs_37 /* Additional specs */ -}; - -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Single_Container_122P10_tags_11[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_122P10 = { - "ProtocolIE-Single-Container", - "ProtocolIE-Single-Container", - &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_Single_Container_122P10_tags_11, - sizeof(asn_DEF_ProtocolIE_Single_Container_122P10_tags_11) - /sizeof(asn_DEF_ProtocolIE_Single_Container_122P10_tags_11[0]), /* 1 */ - asn_DEF_ProtocolIE_Single_Container_122P10_tags_11, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Single_Container_122P10_tags_11) - /sizeof(asn_DEF_ProtocolIE_Single_Container_122P10_tags_11[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_CellToReport_ItemIEs_41, - 3, /* Elements count */ - &asn_SPC_CellToReport_ItemIEs_specs_41 /* Additional specs */ -}; - -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Single_Container_122P11_tags_12[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_122P11 = { - "ProtocolIE-Single-Container", - "ProtocolIE-Single-Container", - &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_Single_Container_122P11_tags_12, - sizeof(asn_DEF_ProtocolIE_Single_Container_122P11_tags_12) - /sizeof(asn_DEF_ProtocolIE_Single_Container_122P11_tags_12[0]), /* 1 */ - asn_DEF_ProtocolIE_Single_Container_122P11_tags_12, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Single_Container_122P11_tags_12) - /sizeof(asn_DEF_ProtocolIE_Single_Container_122P11_tags_12[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_MeasurementInitiationResult_ItemIEs_45, - 3, /* Elements count */ - &asn_SPC_MeasurementInitiationResult_ItemIEs_specs_45 /* Additional specs */ -}; - -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Single_Container_122P12_tags_13[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_122P12 = { - "ProtocolIE-Single-Container", - "ProtocolIE-Single-Container", - &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_Single_Container_122P12_tags_13, - sizeof(asn_DEF_ProtocolIE_Single_Container_122P12_tags_13) - /sizeof(asn_DEF_ProtocolIE_Single_Container_122P12_tags_13[0]), /* 1 */ - asn_DEF_ProtocolIE_Single_Container_122P12_tags_13, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Single_Container_122P12_tags_13) - /sizeof(asn_DEF_ProtocolIE_Single_Container_122P12_tags_13[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_MeasurementFailureCause_ItemIEs_49, - 3, /* Elements count */ - &asn_SPC_MeasurementFailureCause_ItemIEs_specs_49 /* Additional specs */ -}; - -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Single_Container_122P13_tags_14[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_122P13 = { - "ProtocolIE-Single-Container", - "ProtocolIE-Single-Container", - &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_Single_Container_122P13_tags_14, - sizeof(asn_DEF_ProtocolIE_Single_Container_122P13_tags_14) - /sizeof(asn_DEF_ProtocolIE_Single_Container_122P13_tags_14[0]), /* 1 */ - asn_DEF_ProtocolIE_Single_Container_122P13_tags_14, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Single_Container_122P13_tags_14) - /sizeof(asn_DEF_ProtocolIE_Single_Container_122P13_tags_14[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_CompleteFailureCauseInformation_ItemIEs_53, - 3, /* Elements count */ - &asn_SPC_CompleteFailureCauseInformation_ItemIEs_specs_53 /* Additional specs */ -}; - -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Single_Container_122P14_tags_15[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_122P14 = { - "ProtocolIE-Single-Container", - "ProtocolIE-Single-Container", - &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_Single_Container_122P14_tags_15, - sizeof(asn_DEF_ProtocolIE_Single_Container_122P14_tags_15) - /sizeof(asn_DEF_ProtocolIE_Single_Container_122P14_tags_15[0]), /* 1 */ - asn_DEF_ProtocolIE_Single_Container_122P14_tags_15, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Single_Container_122P14_tags_15) - /sizeof(asn_DEF_ProtocolIE_Single_Container_122P14_tags_15[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_CellMeasurementResult_ItemIEs_57, - 3, /* Elements count */ - &asn_SPC_CellMeasurementResult_ItemIEs_specs_57 /* Additional specs */ -}; - -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Single_Container_122P15_tags_16[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_122P15 = { - "ProtocolIE-Single-Container", - "ProtocolIE-Single-Container", - &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_Single_Container_122P15_tags_16, - sizeof(asn_DEF_ProtocolIE_Single_Container_122P15_tags_16) - /sizeof(asn_DEF_ProtocolIE_Single_Container_122P15_tags_16[0]), /* 1 */ - asn_DEF_ProtocolIE_Single_Container_122P15_tags_16, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Single_Container_122P15_tags_16) - /sizeof(asn_DEF_ProtocolIE_Single_Container_122P15_tags_16[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_ToBeAdded_ItemIEs_61, - 3, /* Elements count */ - &asn_SPC_E_RABs_ToBeAdded_ItemIEs_specs_61 /* Additional specs */ -}; - -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Single_Container_122P16_tags_17[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_122P16 = { - "ProtocolIE-Single-Container", - "ProtocolIE-Single-Container", - &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_Single_Container_122P16_tags_17, - sizeof(asn_DEF_ProtocolIE_Single_Container_122P16_tags_17) - /sizeof(asn_DEF_ProtocolIE_Single_Container_122P16_tags_17[0]), /* 1 */ - asn_DEF_ProtocolIE_Single_Container_122P16_tags_17, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Single_Container_122P16_tags_17) - /sizeof(asn_DEF_ProtocolIE_Single_Container_122P16_tags_17[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_Admitted_ToBeAdded_ItemIEs_65, - 3, /* Elements count */ - &asn_SPC_E_RABs_Admitted_ToBeAdded_ItemIEs_specs_65 /* Additional specs */ -}; - -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Single_Container_122P17_tags_18[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_122P17 = { - "ProtocolIE-Single-Container", - "ProtocolIE-Single-Container", - &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_Single_Container_122P17_tags_18, - sizeof(asn_DEF_ProtocolIE_Single_Container_122P17_tags_18) - /sizeof(asn_DEF_ProtocolIE_Single_Container_122P17_tags_18[0]), /* 1 */ - asn_DEF_ProtocolIE_Single_Container_122P17_tags_18, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Single_Container_122P17_tags_18) - /sizeof(asn_DEF_ProtocolIE_Single_Container_122P17_tags_18[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_ToBeAdded_ModReqItemIEs_69, - 3, /* Elements count */ - &asn_SPC_E_RABs_ToBeAdded_ModReqItemIEs_specs_69 /* Additional specs */ -}; - -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Single_Container_122P18_tags_19[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_122P18 = { - "ProtocolIE-Single-Container", - "ProtocolIE-Single-Container", - &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_Single_Container_122P18_tags_19, - sizeof(asn_DEF_ProtocolIE_Single_Container_122P18_tags_19) - /sizeof(asn_DEF_ProtocolIE_Single_Container_122P18_tags_19[0]), /* 1 */ - asn_DEF_ProtocolIE_Single_Container_122P18_tags_19, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Single_Container_122P18_tags_19) - /sizeof(asn_DEF_ProtocolIE_Single_Container_122P18_tags_19[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_ToBeModified_ModReqItemIEs_73, - 3, /* Elements count */ - &asn_SPC_E_RABs_ToBeModified_ModReqItemIEs_specs_73 /* Additional specs */ -}; - -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Single_Container_122P19_tags_20[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_122P19 = { - "ProtocolIE-Single-Container", - "ProtocolIE-Single-Container", - &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_Single_Container_122P19_tags_20, - sizeof(asn_DEF_ProtocolIE_Single_Container_122P19_tags_20) - /sizeof(asn_DEF_ProtocolIE_Single_Container_122P19_tags_20[0]), /* 1 */ - asn_DEF_ProtocolIE_Single_Container_122P19_tags_20, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Single_Container_122P19_tags_20) - /sizeof(asn_DEF_ProtocolIE_Single_Container_122P19_tags_20[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_ToBeReleased_ModReqItemIEs_77, - 3, /* Elements count */ - &asn_SPC_E_RABs_ToBeReleased_ModReqItemIEs_specs_77 /* Additional specs */ -}; - -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Single_Container_122P20_tags_21[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_122P20 = { - "ProtocolIE-Single-Container", - "ProtocolIE-Single-Container", - &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_Single_Container_122P20_tags_21, - sizeof(asn_DEF_ProtocolIE_Single_Container_122P20_tags_21) - /sizeof(asn_DEF_ProtocolIE_Single_Container_122P20_tags_21[0]), /* 1 */ - asn_DEF_ProtocolIE_Single_Container_122P20_tags_21, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Single_Container_122P20_tags_21) - /sizeof(asn_DEF_ProtocolIE_Single_Container_122P20_tags_21[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_Admitted_ToBeAdded_ModAckItemIEs_81, - 3, /* Elements count */ - &asn_SPC_E_RABs_Admitted_ToBeAdded_ModAckItemIEs_specs_81 /* Additional specs */ -}; - -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Single_Container_122P21_tags_22[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_122P21 = { - "ProtocolIE-Single-Container", - "ProtocolIE-Single-Container", - &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_Single_Container_122P21_tags_22, - sizeof(asn_DEF_ProtocolIE_Single_Container_122P21_tags_22) - /sizeof(asn_DEF_ProtocolIE_Single_Container_122P21_tags_22[0]), /* 1 */ - asn_DEF_ProtocolIE_Single_Container_122P21_tags_22, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Single_Container_122P21_tags_22) - /sizeof(asn_DEF_ProtocolIE_Single_Container_122P21_tags_22[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_Admitted_ToBeModified_ModAckItemIEs_85, - 3, /* Elements count */ - &asn_SPC_E_RABs_Admitted_ToBeModified_ModAckItemIEs_specs_85 /* Additional specs */ -}; - -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Single_Container_122P22_tags_23[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_122P22 = { - "ProtocolIE-Single-Container", - "ProtocolIE-Single-Container", - &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_Single_Container_122P22_tags_23, - sizeof(asn_DEF_ProtocolIE_Single_Container_122P22_tags_23) - /sizeof(asn_DEF_ProtocolIE_Single_Container_122P22_tags_23[0]), /* 1 */ - asn_DEF_ProtocolIE_Single_Container_122P22_tags_23, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Single_Container_122P22_tags_23) - /sizeof(asn_DEF_ProtocolIE_Single_Container_122P22_tags_23[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_Admitted_ToBeReleased_ModAckItemIEs_89, - 3, /* Elements count */ - &asn_SPC_E_RABs_Admitted_ToBeReleased_ModAckItemIEs_specs_89 /* Additional specs */ -}; - -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Single_Container_122P23_tags_24[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_122P23 = { - "ProtocolIE-Single-Container", - "ProtocolIE-Single-Container", - &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_Single_Container_122P23_tags_24, - sizeof(asn_DEF_ProtocolIE_Single_Container_122P23_tags_24) - /sizeof(asn_DEF_ProtocolIE_Single_Container_122P23_tags_24[0]), /* 1 */ - asn_DEF_ProtocolIE_Single_Container_122P23_tags_24, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Single_Container_122P23_tags_24) - /sizeof(asn_DEF_ProtocolIE_Single_Container_122P23_tags_24[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_ToBeReleased_ModReqdItemIEs_93, - 3, /* Elements count */ - &asn_SPC_E_RABs_ToBeReleased_ModReqdItemIEs_specs_93 /* Additional specs */ -}; - -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Single_Container_122P24_tags_25[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_122P24 = { - "ProtocolIE-Single-Container", - "ProtocolIE-Single-Container", - &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_Single_Container_122P24_tags_25, - sizeof(asn_DEF_ProtocolIE_Single_Container_122P24_tags_25) - /sizeof(asn_DEF_ProtocolIE_Single_Container_122P24_tags_25[0]), /* 1 */ - asn_DEF_ProtocolIE_Single_Container_122P24_tags_25, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Single_Container_122P24_tags_25) - /sizeof(asn_DEF_ProtocolIE_Single_Container_122P24_tags_25[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_ToBeReleased_RelReqItemIEs_97, - 3, /* Elements count */ - &asn_SPC_E_RABs_ToBeReleased_RelReqItemIEs_specs_97 /* Additional specs */ -}; - -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Single_Container_122P25_tags_26[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_122P25 = { - "ProtocolIE-Single-Container", - "ProtocolIE-Single-Container", - &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_Single_Container_122P25_tags_26, - sizeof(asn_DEF_ProtocolIE_Single_Container_122P25_tags_26) - /sizeof(asn_DEF_ProtocolIE_Single_Container_122P25_tags_26[0]), /* 1 */ - asn_DEF_ProtocolIE_Single_Container_122P25_tags_26, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Single_Container_122P25_tags_26) - /sizeof(asn_DEF_ProtocolIE_Single_Container_122P25_tags_26[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_ToBeReleased_RelConfItemIEs_101, - 3, /* Elements count */ - &asn_SPC_E_RABs_ToBeReleased_RelConfItemIEs_specs_101 /* Additional specs */ -}; - -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Single_Container_122P26_tags_27[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_122P26 = { - "ProtocolIE-Single-Container", - "ProtocolIE-Single-Container", - &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_Single_Container_122P26_tags_27, - sizeof(asn_DEF_ProtocolIE_Single_Container_122P26_tags_27) - /sizeof(asn_DEF_ProtocolIE_Single_Container_122P26_tags_27[0]), /* 1 */ - asn_DEF_ProtocolIE_Single_Container_122P26_tags_27, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Single_Container_122P26_tags_27) - /sizeof(asn_DEF_ProtocolIE_Single_Container_122P26_tags_27[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_SubjectToCounterCheckItemIEs_105, - 3, /* Elements count */ - &asn_SPC_E_RABs_SubjectToCounterCheckItemIEs_specs_105 /* Additional specs */ -}; - -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Single_Container_122P27_tags_28[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_122P27 = { - "ProtocolIE-Single-Container", - "ProtocolIE-Single-Container", - &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_Single_Container_122P27_tags_28, - sizeof(asn_DEF_ProtocolIE_Single_Container_122P27_tags_28) - /sizeof(asn_DEF_ProtocolIE_Single_Container_122P27_tags_28[0]), /* 1 */ - asn_DEF_ProtocolIE_Single_Container_122P27_tags_28, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Single_Container_122P27_tags_28) - /sizeof(asn_DEF_ProtocolIE_Single_Container_122P27_tags_28[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_ToBeSetupRetrieve_ItemIEs_109, - 3, /* Elements count */ - &asn_SPC_E_RABs_ToBeSetupRetrieve_ItemIEs_specs_109 /* Additional specs */ -}; - -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Single_Container_122P28_tags_29[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_122P28 = { - "ProtocolIE-Single-Container", - "ProtocolIE-Single-Container", - &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_Single_Container_122P28_tags_29, - sizeof(asn_DEF_ProtocolIE_Single_Container_122P28_tags_29) - /sizeof(asn_DEF_ProtocolIE_Single_Container_122P28_tags_29[0]), /* 1 */ - asn_DEF_ProtocolIE_Single_Container_122P28_tags_29, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Single_Container_122P28_tags_29) - /sizeof(asn_DEF_ProtocolIE_Single_Container_122P28_tags_29[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_ToBeAdded_SgNBAddReq_ItemIEs_113, - 3, /* Elements count */ - &asn_SPC_E_RABs_ToBeAdded_SgNBAddReq_ItemIEs_specs_113 /* Additional specs */ -}; - -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Single_Container_122P29_tags_30[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_122P29 = { - "ProtocolIE-Single-Container", - "ProtocolIE-Single-Container", - &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_Single_Container_122P29_tags_30, - sizeof(asn_DEF_ProtocolIE_Single_Container_122P29_tags_30) - /sizeof(asn_DEF_ProtocolIE_Single_Container_122P29_tags_30[0]), /* 1 */ - asn_DEF_ProtocolIE_Single_Container_122P29_tags_30, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Single_Container_122P29_tags_30) - /sizeof(asn_DEF_ProtocolIE_Single_Container_122P29_tags_30[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_ItemIEs_117, - 3, /* Elements count */ - &asn_SPC_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_ItemIEs_specs_117 /* Additional specs */ -}; - -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Single_Container_122P30_tags_31[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_122P30 = { - "ProtocolIE-Single-Container", - "ProtocolIE-Single-Container", - &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_Single_Container_122P30_tags_31, - sizeof(asn_DEF_ProtocolIE_Single_Container_122P30_tags_31) - /sizeof(asn_DEF_ProtocolIE_Single_Container_122P30_tags_31[0]), /* 1 */ - asn_DEF_ProtocolIE_Single_Container_122P30_tags_31, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Single_Container_122P30_tags_31) - /sizeof(asn_DEF_ProtocolIE_Single_Container_122P30_tags_31[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_ToBeAdded_SgNBModReq_ItemIEs_121, - 3, /* Elements count */ - &asn_SPC_E_RABs_ToBeAdded_SgNBModReq_ItemIEs_specs_121 /* Additional specs */ -}; - -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Single_Container_122P31_tags_32[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_122P31 = { - "ProtocolIE-Single-Container", - "ProtocolIE-Single-Container", - &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_Single_Container_122P31_tags_32, - sizeof(asn_DEF_ProtocolIE_Single_Container_122P31_tags_32) - /sizeof(asn_DEF_ProtocolIE_Single_Container_122P31_tags_32[0]), /* 1 */ - asn_DEF_ProtocolIE_Single_Container_122P31_tags_32, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Single_Container_122P31_tags_32) - /sizeof(asn_DEF_ProtocolIE_Single_Container_122P31_tags_32[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_ToBeModified_SgNBModReq_ItemIEs_125, - 3, /* Elements count */ - &asn_SPC_E_RABs_ToBeModified_SgNBModReq_ItemIEs_specs_125 /* Additional specs */ -}; - -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Single_Container_122P32_tags_33[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_122P32 = { - "ProtocolIE-Single-Container", - "ProtocolIE-Single-Container", - &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_Single_Container_122P32_tags_33, - sizeof(asn_DEF_ProtocolIE_Single_Container_122P32_tags_33) - /sizeof(asn_DEF_ProtocolIE_Single_Container_122P32_tags_33[0]), /* 1 */ - asn_DEF_ProtocolIE_Single_Container_122P32_tags_33, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Single_Container_122P32_tags_33) - /sizeof(asn_DEF_ProtocolIE_Single_Container_122P32_tags_33[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_ToBeReleased_SgNBModReq_ItemIEs_129, - 3, /* Elements count */ - &asn_SPC_E_RABs_ToBeReleased_SgNBModReq_ItemIEs_specs_129 /* Additional specs */ -}; - -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Single_Container_122P33_tags_34[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_122P33 = { - "ProtocolIE-Single-Container", - "ProtocolIE-Single-Container", - &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_Single_Container_122P33_tags_34, - sizeof(asn_DEF_ProtocolIE_Single_Container_122P33_tags_34) - /sizeof(asn_DEF_ProtocolIE_Single_Container_122P33_tags_34[0]), /* 1 */ - asn_DEF_ProtocolIE_Single_Container_122P33_tags_34, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Single_Container_122P33_tags_34) - /sizeof(asn_DEF_ProtocolIE_Single_Container_122P33_tags_34[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemIEs_133, - 3, /* Elements count */ - &asn_SPC_E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemIEs_specs_133 /* Additional specs */ -}; - -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Single_Container_122P34_tags_35[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_122P34 = { - "ProtocolIE-Single-Container", - "ProtocolIE-Single-Container", - &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_Single_Container_122P34_tags_35, - sizeof(asn_DEF_ProtocolIE_Single_Container_122P34_tags_35) - /sizeof(asn_DEF_ProtocolIE_Single_Container_122P34_tags_35[0]), /* 1 */ - asn_DEF_ProtocolIE_Single_Container_122P34_tags_35, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Single_Container_122P34_tags_35) - /sizeof(asn_DEF_ProtocolIE_Single_Container_122P34_tags_35[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_Admitted_ToBeModified_SgNBModAck_ItemIEs_137, - 3, /* Elements count */ - &asn_SPC_E_RABs_Admitted_ToBeModified_SgNBModAck_ItemIEs_specs_137 /* Additional specs */ -}; - -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Single_Container_122P35_tags_36[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_122P35 = { - "ProtocolIE-Single-Container", - "ProtocolIE-Single-Container", - &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_Single_Container_122P35_tags_36, - sizeof(asn_DEF_ProtocolIE_Single_Container_122P35_tags_36) - /sizeof(asn_DEF_ProtocolIE_Single_Container_122P35_tags_36[0]), /* 1 */ - asn_DEF_ProtocolIE_Single_Container_122P35_tags_36, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Single_Container_122P35_tags_36) - /sizeof(asn_DEF_ProtocolIE_Single_Container_122P35_tags_36[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_Admitted_ToBeReleased_SgNBModAck_ItemIEs_141, - 3, /* Elements count */ - &asn_SPC_E_RABs_Admitted_ToBeReleased_SgNBModAck_ItemIEs_specs_141 /* Additional specs */ -}; - -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Single_Container_122P36_tags_37[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_122P36 = { - "ProtocolIE-Single-Container", - "ProtocolIE-Single-Container", - &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_Single_Container_122P36_tags_37, - sizeof(asn_DEF_ProtocolIE_Single_Container_122P36_tags_37) - /sizeof(asn_DEF_ProtocolIE_Single_Container_122P36_tags_37[0]), /* 1 */ - asn_DEF_ProtocolIE_Single_Container_122P36_tags_37, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Single_Container_122P36_tags_37) - /sizeof(asn_DEF_ProtocolIE_Single_Container_122P36_tags_37[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_ToBeReleased_SgNBModReqd_ItemIEs_145, - 3, /* Elements count */ - &asn_SPC_E_RABs_ToBeReleased_SgNBModReqd_ItemIEs_specs_145 /* Additional specs */ -}; - -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Single_Container_122P37_tags_38[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_122P37 = { - "ProtocolIE-Single-Container", - "ProtocolIE-Single-Container", - &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_Single_Container_122P37_tags_38, - sizeof(asn_DEF_ProtocolIE_Single_Container_122P37_tags_38) - /sizeof(asn_DEF_ProtocolIE_Single_Container_122P37_tags_38[0]), /* 1 */ - asn_DEF_ProtocolIE_Single_Container_122P37_tags_38, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Single_Container_122P37_tags_38) - /sizeof(asn_DEF_ProtocolIE_Single_Container_122P37_tags_38[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_ToBeModified_SgNBModReqd_ItemIEs_149, - 3, /* Elements count */ - &asn_SPC_E_RABs_ToBeModified_SgNBModReqd_ItemIEs_specs_149 /* Additional specs */ -}; - -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Single_Container_122P38_tags_39[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_122P38 = { - "ProtocolIE-Single-Container", - "ProtocolIE-Single-Container", - &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_Single_Container_122P38_tags_39, - sizeof(asn_DEF_ProtocolIE_Single_Container_122P38_tags_39) - /sizeof(asn_DEF_ProtocolIE_Single_Container_122P38_tags_39[0]), /* 1 */ - asn_DEF_ProtocolIE_Single_Container_122P38_tags_39, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Single_Container_122P38_tags_39) - /sizeof(asn_DEF_ProtocolIE_Single_Container_122P38_tags_39[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_AdmittedToBeModified_SgNBModConf_ItemIEs_153, - 3, /* Elements count */ - &asn_SPC_E_RABs_AdmittedToBeModified_SgNBModConf_ItemIEs_specs_153 /* Additional specs */ -}; - -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Single_Container_122P39_tags_40[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_122P39 = { - "ProtocolIE-Single-Container", - "ProtocolIE-Single-Container", - &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_Single_Container_122P39_tags_40, - sizeof(asn_DEF_ProtocolIE_Single_Container_122P39_tags_40) - /sizeof(asn_DEF_ProtocolIE_Single_Container_122P39_tags_40[0]), /* 1 */ - asn_DEF_ProtocolIE_Single_Container_122P39_tags_40, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Single_Container_122P39_tags_40) - /sizeof(asn_DEF_ProtocolIE_Single_Container_122P39_tags_40[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_ToBeReleased_SgNBRelReq_ItemIEs_157, - 3, /* Elements count */ - &asn_SPC_E_RABs_ToBeReleased_SgNBRelReq_ItemIEs_specs_157 /* Additional specs */ -}; - -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Single_Container_122P40_tags_41[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_122P40 = { - "ProtocolIE-Single-Container", - "ProtocolIE-Single-Container", - &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_Single_Container_122P40_tags_41, - sizeof(asn_DEF_ProtocolIE_Single_Container_122P40_tags_41) - /sizeof(asn_DEF_ProtocolIE_Single_Container_122P40_tags_41[0]), /* 1 */ - asn_DEF_ProtocolIE_Single_Container_122P40_tags_41, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Single_Container_122P40_tags_41) - /sizeof(asn_DEF_ProtocolIE_Single_Container_122P40_tags_41[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemIEs_161, - 3, /* Elements count */ - &asn_SPC_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemIEs_specs_161 /* Additional specs */ -}; - -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Single_Container_122P41_tags_42[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_122P41 = { - "ProtocolIE-Single-Container", - "ProtocolIE-Single-Container", - &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_Single_Container_122P41_tags_42, - sizeof(asn_DEF_ProtocolIE_Single_Container_122P41_tags_42) - /sizeof(asn_DEF_ProtocolIE_Single_Container_122P41_tags_42[0]), /* 1 */ - asn_DEF_ProtocolIE_Single_Container_122P41_tags_42, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Single_Container_122P41_tags_42) - /sizeof(asn_DEF_ProtocolIE_Single_Container_122P41_tags_42[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_ToBeReleased_SgNBRelReqd_ItemIEs_165, - 3, /* Elements count */ - &asn_SPC_E_RABs_ToBeReleased_SgNBRelReqd_ItemIEs_specs_165 /* Additional specs */ -}; - -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Single_Container_122P42_tags_43[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_122P42 = { - "ProtocolIE-Single-Container", - "ProtocolIE-Single-Container", - &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_Single_Container_122P42_tags_43, - sizeof(asn_DEF_ProtocolIE_Single_Container_122P42_tags_43) - /sizeof(asn_DEF_ProtocolIE_Single_Container_122P42_tags_43[0]), /* 1 */ - asn_DEF_ProtocolIE_Single_Container_122P42_tags_43, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Single_Container_122P42_tags_43) - /sizeof(asn_DEF_ProtocolIE_Single_Container_122P42_tags_43[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_ToBeReleased_SgNBRelConf_ItemIEs_169, - 3, /* Elements count */ - &asn_SPC_E_RABs_ToBeReleased_SgNBRelConf_ItemIEs_specs_169 /* Additional specs */ -}; - -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Single_Container_122P43_tags_44[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_122P43 = { - "ProtocolIE-Single-Container", - "ProtocolIE-Single-Container", - &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_Single_Container_122P43_tags_44, - sizeof(asn_DEF_ProtocolIE_Single_Container_122P43_tags_44) - /sizeof(asn_DEF_ProtocolIE_Single_Container_122P43_tags_44[0]), /* 1 */ - asn_DEF_ProtocolIE_Single_Container_122P43_tags_44, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Single_Container_122P43_tags_44) - /sizeof(asn_DEF_ProtocolIE_Single_Container_122P43_tags_44[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_SubjectToSgNBCounterCheck_ItemIEs_173, - 3, /* Elements count */ - &asn_SPC_E_RABs_SubjectToSgNBCounterCheck_ItemIEs_specs_173 /* Additional specs */ -}; - -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Single_Container_122P44_tags_45[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_122P44 = { - "ProtocolIE-Single-Container", - "ProtocolIE-Single-Container", - &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_Single_Container_122P44_tags_45, - sizeof(asn_DEF_ProtocolIE_Single_Container_122P44_tags_45) - /sizeof(asn_DEF_ProtocolIE_Single_Container_122P44_tags_45[0]), /* 1 */ - asn_DEF_ProtocolIE_Single_Container_122P44_tags_45, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Single_Container_122P44_tags_45) - /sizeof(asn_DEF_ProtocolIE_Single_Container_122P44_tags_45[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_ToBeReleased_SgNBChaConf_ItemIEs_177, - 3, /* Elements count */ - &asn_SPC_E_RABs_ToBeReleased_SgNBChaConf_ItemIEs_specs_177 /* Additional specs */ -}; - -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Single_Container_122P45_tags_46[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_122P45 = { - "ProtocolIE-Single-Container", - "ProtocolIE-Single-Container", - &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_Single_Container_122P45_tags_46, - sizeof(asn_DEF_ProtocolIE_Single_Container_122P45_tags_46) - /sizeof(asn_DEF_ProtocolIE_Single_Container_122P45_tags_46[0]), /* 1 */ - asn_DEF_ProtocolIE_Single_Container_122P45_tags_46, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Single_Container_122P45_tags_46) - /sizeof(asn_DEF_ProtocolIE_Single_Container_122P45_tags_46[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABs_DataForwardingAddress_ItemIEs_181, - 3, /* Elements count */ - &asn_SPC_E_RABs_DataForwardingAddress_ItemIEs_specs_181 /* Additional specs */ -}; - -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Single_Container_122P46_tags_47[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_122P46 = { - "ProtocolIE-Single-Container", - "ProtocolIE-Single-Container", - &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_Single_Container_122P46_tags_47, - sizeof(asn_DEF_ProtocolIE_Single_Container_122P46_tags_47) - /sizeof(asn_DEF_ProtocolIE_Single_Container_122P46_tags_47[0]), /* 1 */ - asn_DEF_ProtocolIE_Single_Container_122P46_tags_47, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Single_Container_122P46_tags_47) - /sizeof(asn_DEF_ProtocolIE_Single_Container_122P46_tags_47[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RAB_ItemIEs_665, - 3, /* Elements count */ - &asn_SPC_E_RAB_ItemIEs_specs_665 /* Additional specs */ -}; - -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Single_Container_122P47_tags_48[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_122P47 = { - "ProtocolIE-Single-Container", - "ProtocolIE-Single-Container", - &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_Single_Container_122P47_tags_48, - sizeof(asn_DEF_ProtocolIE_Single_Container_122P47_tags_48) - /sizeof(asn_DEF_ProtocolIE_Single_Container_122P47_tags_48[0]), /* 1 */ - asn_DEF_ProtocolIE_Single_Container_122P47_tags_48, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Single_Container_122P47_tags_48) - /sizeof(asn_DEF_ProtocolIE_Single_Container_122P47_tags_48[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E_RABUsageReport_ItemIEs_669, - 3, /* Elements count */ - &asn_SPC_E_RABUsageReport_ItemIEs_specs_669 /* Additional specs */ -}; - -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Single_Container_122P48_tags_49[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_122P48 = { - "ProtocolIE-Single-Container", - "ProtocolIE-Single-Container", - &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_Single_Container_122P48_tags_49, - sizeof(asn_DEF_ProtocolIE_Single_Container_122P48_tags_49) - /sizeof(asn_DEF_ProtocolIE_Single_Container_122P48_tags_49[0]), /* 1 */ - asn_DEF_ProtocolIE_Single_Container_122P48_tags_49, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Single_Container_122P48_tags_49) - /sizeof(asn_DEF_ProtocolIE_Single_Container_122P48_tags_49[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_SecondaryRATUsageReport_ItemIEs_673, - 3, /* Elements count */ - &asn_SPC_SecondaryRATUsageReport_ItemIEs_specs_673 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/ProtocolIE-Single-Container.h b/e2sim/previous/ASN1c/ProtocolIE-Single-Container.h deleted file mode 100644 index 7a1cea9..0000000 --- a/e2sim/previous/ASN1c/ProtocolIE-Single-Container.h +++ /dev/null @@ -1,685 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-Containers" - * found in "../../asnFiles/X2AP-Containers.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _ProtocolIE_Single_Container_H_ -#define _ProtocolIE_Single_Container_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Field.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* ProtocolIE-Single-Container */ -typedef RICaction_ToBeSetup_ItemIEs_t ProtocolIE_Single_Container_122P0_t; -typedef RICaction_Admitted_ItemIEs_t ProtocolIE_Single_Container_122P1_t; -typedef RICaction_NotAdmitted_ItemIEs_t ProtocolIE_Single_Container_122P2_t; -typedef RANfunction_ItemIEs_t ProtocolIE_Single_Container_122P3_t; -typedef RANfunctionID_ItemIEs_t ProtocolIE_Single_Container_122P4_t; -typedef RANfunctionIDcause_ItemIEs_t ProtocolIE_Single_Container_122P5_t; -typedef E_RABs_ToBeSetup_ItemIEs_t ProtocolIE_Single_Container_122P6_t; -typedef E_RABs_Admitted_ItemIEs_t ProtocolIE_Single_Container_122P7_t; -typedef E_RABs_SubjectToStatusTransfer_ItemIEs_t ProtocolIE_Single_Container_122P8_t; -typedef CellInformation_ItemIEs_t ProtocolIE_Single_Container_122P9_t; -typedef CellToReport_ItemIEs_t ProtocolIE_Single_Container_122P10_t; -typedef MeasurementInitiationResult_ItemIEs_t ProtocolIE_Single_Container_122P11_t; -typedef MeasurementFailureCause_ItemIEs_t ProtocolIE_Single_Container_122P12_t; -typedef CompleteFailureCauseInformation_ItemIEs_t ProtocolIE_Single_Container_122P13_t; -typedef CellMeasurementResult_ItemIEs_t ProtocolIE_Single_Container_122P14_t; -typedef E_RABs_ToBeAdded_ItemIEs_t ProtocolIE_Single_Container_122P15_t; -typedef E_RABs_Admitted_ToBeAdded_ItemIEs_t ProtocolIE_Single_Container_122P16_t; -typedef E_RABs_ToBeAdded_ModReqItemIEs_t ProtocolIE_Single_Container_122P17_t; -typedef E_RABs_ToBeModified_ModReqItemIEs_t ProtocolIE_Single_Container_122P18_t; -typedef E_RABs_ToBeReleased_ModReqItemIEs_t ProtocolIE_Single_Container_122P19_t; -typedef E_RABs_Admitted_ToBeAdded_ModAckItemIEs_t ProtocolIE_Single_Container_122P20_t; -typedef E_RABs_Admitted_ToBeModified_ModAckItemIEs_t ProtocolIE_Single_Container_122P21_t; -typedef E_RABs_Admitted_ToBeReleased_ModAckItemIEs_t ProtocolIE_Single_Container_122P22_t; -typedef E_RABs_ToBeReleased_ModReqdItemIEs_t ProtocolIE_Single_Container_122P23_t; -typedef E_RABs_ToBeReleased_RelReqItemIEs_t ProtocolIE_Single_Container_122P24_t; -typedef E_RABs_ToBeReleased_RelConfItemIEs_t ProtocolIE_Single_Container_122P25_t; -typedef E_RABs_SubjectToCounterCheckItemIEs_t ProtocolIE_Single_Container_122P26_t; -typedef E_RABs_ToBeSetupRetrieve_ItemIEs_t ProtocolIE_Single_Container_122P27_t; -typedef E_RABs_ToBeAdded_SgNBAddReq_ItemIEs_t ProtocolIE_Single_Container_122P28_t; -typedef E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_ItemIEs_t ProtocolIE_Single_Container_122P29_t; -typedef E_RABs_ToBeAdded_SgNBModReq_ItemIEs_t ProtocolIE_Single_Container_122P30_t; -typedef E_RABs_ToBeModified_SgNBModReq_ItemIEs_t ProtocolIE_Single_Container_122P31_t; -typedef E_RABs_ToBeReleased_SgNBModReq_ItemIEs_t ProtocolIE_Single_Container_122P32_t; -typedef E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemIEs_t ProtocolIE_Single_Container_122P33_t; -typedef E_RABs_Admitted_ToBeModified_SgNBModAck_ItemIEs_t ProtocolIE_Single_Container_122P34_t; -typedef E_RABs_Admitted_ToBeReleased_SgNBModAck_ItemIEs_t ProtocolIE_Single_Container_122P35_t; -typedef E_RABs_ToBeReleased_SgNBModReqd_ItemIEs_t ProtocolIE_Single_Container_122P36_t; -typedef E_RABs_ToBeModified_SgNBModReqd_ItemIEs_t ProtocolIE_Single_Container_122P37_t; -typedef E_RABs_AdmittedToBeModified_SgNBModConf_ItemIEs_t ProtocolIE_Single_Container_122P38_t; -typedef E_RABs_ToBeReleased_SgNBRelReq_ItemIEs_t ProtocolIE_Single_Container_122P39_t; -typedef E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemIEs_t ProtocolIE_Single_Container_122P40_t; -typedef E_RABs_ToBeReleased_SgNBRelReqd_ItemIEs_t ProtocolIE_Single_Container_122P41_t; -typedef E_RABs_ToBeReleased_SgNBRelConf_ItemIEs_t ProtocolIE_Single_Container_122P42_t; -typedef E_RABs_SubjectToSgNBCounterCheck_ItemIEs_t ProtocolIE_Single_Container_122P43_t; -typedef E_RABs_ToBeReleased_SgNBChaConf_ItemIEs_t ProtocolIE_Single_Container_122P44_t; -typedef E_RABs_DataForwardingAddress_ItemIEs_t ProtocolIE_Single_Container_122P45_t; -typedef E_RAB_ItemIEs_t ProtocolIE_Single_Container_122P46_t; -typedef E_RABUsageReport_ItemIEs_t ProtocolIE_Single_Container_122P47_t; -typedef SecondaryRATUsageReport_ItemIEs_t ProtocolIE_Single_Container_122P48_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_122P0; -asn_struct_free_f ProtocolIE_Single_Container_122P0_free; -asn_struct_print_f ProtocolIE_Single_Container_122P0_print; -asn_constr_check_f ProtocolIE_Single_Container_122P0_constraint; -ber_type_decoder_f ProtocolIE_Single_Container_122P0_decode_ber; -der_type_encoder_f ProtocolIE_Single_Container_122P0_encode_der; -xer_type_decoder_f ProtocolIE_Single_Container_122P0_decode_xer; -xer_type_encoder_f ProtocolIE_Single_Container_122P0_encode_xer; -per_type_decoder_f ProtocolIE_Single_Container_122P0_decode_uper; -per_type_encoder_f ProtocolIE_Single_Container_122P0_encode_uper; -per_type_decoder_f ProtocolIE_Single_Container_122P0_decode_aper; -per_type_encoder_f ProtocolIE_Single_Container_122P0_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_122P1; -asn_struct_free_f ProtocolIE_Single_Container_122P1_free; -asn_struct_print_f ProtocolIE_Single_Container_122P1_print; -asn_constr_check_f ProtocolIE_Single_Container_122P1_constraint; -ber_type_decoder_f ProtocolIE_Single_Container_122P1_decode_ber; -der_type_encoder_f ProtocolIE_Single_Container_122P1_encode_der; -xer_type_decoder_f ProtocolIE_Single_Container_122P1_decode_xer; -xer_type_encoder_f ProtocolIE_Single_Container_122P1_encode_xer; -per_type_decoder_f ProtocolIE_Single_Container_122P1_decode_uper; -per_type_encoder_f ProtocolIE_Single_Container_122P1_encode_uper; -per_type_decoder_f ProtocolIE_Single_Container_122P1_decode_aper; -per_type_encoder_f ProtocolIE_Single_Container_122P1_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_122P2; -asn_struct_free_f ProtocolIE_Single_Container_122P2_free; -asn_struct_print_f ProtocolIE_Single_Container_122P2_print; -asn_constr_check_f ProtocolIE_Single_Container_122P2_constraint; -ber_type_decoder_f ProtocolIE_Single_Container_122P2_decode_ber; -der_type_encoder_f ProtocolIE_Single_Container_122P2_encode_der; -xer_type_decoder_f ProtocolIE_Single_Container_122P2_decode_xer; -xer_type_encoder_f ProtocolIE_Single_Container_122P2_encode_xer; -per_type_decoder_f ProtocolIE_Single_Container_122P2_decode_uper; -per_type_encoder_f ProtocolIE_Single_Container_122P2_encode_uper; -per_type_decoder_f ProtocolIE_Single_Container_122P2_decode_aper; -per_type_encoder_f ProtocolIE_Single_Container_122P2_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_122P3; -asn_struct_free_f ProtocolIE_Single_Container_122P3_free; -asn_struct_print_f ProtocolIE_Single_Container_122P3_print; -asn_constr_check_f ProtocolIE_Single_Container_122P3_constraint; -ber_type_decoder_f ProtocolIE_Single_Container_122P3_decode_ber; -der_type_encoder_f ProtocolIE_Single_Container_122P3_encode_der; -xer_type_decoder_f ProtocolIE_Single_Container_122P3_decode_xer; -xer_type_encoder_f ProtocolIE_Single_Container_122P3_encode_xer; -per_type_decoder_f ProtocolIE_Single_Container_122P3_decode_uper; -per_type_encoder_f ProtocolIE_Single_Container_122P3_encode_uper; -per_type_decoder_f ProtocolIE_Single_Container_122P3_decode_aper; -per_type_encoder_f ProtocolIE_Single_Container_122P3_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_122P4; -asn_struct_free_f ProtocolIE_Single_Container_122P4_free; -asn_struct_print_f ProtocolIE_Single_Container_122P4_print; -asn_constr_check_f ProtocolIE_Single_Container_122P4_constraint; -ber_type_decoder_f ProtocolIE_Single_Container_122P4_decode_ber; -der_type_encoder_f ProtocolIE_Single_Container_122P4_encode_der; -xer_type_decoder_f ProtocolIE_Single_Container_122P4_decode_xer; -xer_type_encoder_f ProtocolIE_Single_Container_122P4_encode_xer; -per_type_decoder_f ProtocolIE_Single_Container_122P4_decode_uper; -per_type_encoder_f ProtocolIE_Single_Container_122P4_encode_uper; -per_type_decoder_f ProtocolIE_Single_Container_122P4_decode_aper; -per_type_encoder_f ProtocolIE_Single_Container_122P4_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_122P5; -asn_struct_free_f ProtocolIE_Single_Container_122P5_free; -asn_struct_print_f ProtocolIE_Single_Container_122P5_print; -asn_constr_check_f ProtocolIE_Single_Container_122P5_constraint; -ber_type_decoder_f ProtocolIE_Single_Container_122P5_decode_ber; -der_type_encoder_f ProtocolIE_Single_Container_122P5_encode_der; -xer_type_decoder_f ProtocolIE_Single_Container_122P5_decode_xer; -xer_type_encoder_f ProtocolIE_Single_Container_122P5_encode_xer; -per_type_decoder_f ProtocolIE_Single_Container_122P5_decode_uper; -per_type_encoder_f ProtocolIE_Single_Container_122P5_encode_uper; -per_type_decoder_f ProtocolIE_Single_Container_122P5_decode_aper; -per_type_encoder_f ProtocolIE_Single_Container_122P5_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_122P6; -asn_struct_free_f ProtocolIE_Single_Container_122P6_free; -asn_struct_print_f ProtocolIE_Single_Container_122P6_print; -asn_constr_check_f ProtocolIE_Single_Container_122P6_constraint; -ber_type_decoder_f ProtocolIE_Single_Container_122P6_decode_ber; -der_type_encoder_f ProtocolIE_Single_Container_122P6_encode_der; -xer_type_decoder_f ProtocolIE_Single_Container_122P6_decode_xer; -xer_type_encoder_f ProtocolIE_Single_Container_122P6_encode_xer; -per_type_decoder_f ProtocolIE_Single_Container_122P6_decode_uper; -per_type_encoder_f ProtocolIE_Single_Container_122P6_encode_uper; -per_type_decoder_f ProtocolIE_Single_Container_122P6_decode_aper; -per_type_encoder_f ProtocolIE_Single_Container_122P6_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_122P7; -asn_struct_free_f ProtocolIE_Single_Container_122P7_free; -asn_struct_print_f ProtocolIE_Single_Container_122P7_print; -asn_constr_check_f ProtocolIE_Single_Container_122P7_constraint; -ber_type_decoder_f ProtocolIE_Single_Container_122P7_decode_ber; -der_type_encoder_f ProtocolIE_Single_Container_122P7_encode_der; -xer_type_decoder_f ProtocolIE_Single_Container_122P7_decode_xer; -xer_type_encoder_f ProtocolIE_Single_Container_122P7_encode_xer; -per_type_decoder_f ProtocolIE_Single_Container_122P7_decode_uper; -per_type_encoder_f ProtocolIE_Single_Container_122P7_encode_uper; -per_type_decoder_f ProtocolIE_Single_Container_122P7_decode_aper; -per_type_encoder_f ProtocolIE_Single_Container_122P7_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_122P8; -asn_struct_free_f ProtocolIE_Single_Container_122P8_free; -asn_struct_print_f ProtocolIE_Single_Container_122P8_print; -asn_constr_check_f ProtocolIE_Single_Container_122P8_constraint; -ber_type_decoder_f ProtocolIE_Single_Container_122P8_decode_ber; -der_type_encoder_f ProtocolIE_Single_Container_122P8_encode_der; -xer_type_decoder_f ProtocolIE_Single_Container_122P8_decode_xer; -xer_type_encoder_f ProtocolIE_Single_Container_122P8_encode_xer; -per_type_decoder_f ProtocolIE_Single_Container_122P8_decode_uper; -per_type_encoder_f ProtocolIE_Single_Container_122P8_encode_uper; -per_type_decoder_f ProtocolIE_Single_Container_122P8_decode_aper; -per_type_encoder_f ProtocolIE_Single_Container_122P8_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_122P9; -asn_struct_free_f ProtocolIE_Single_Container_122P9_free; -asn_struct_print_f ProtocolIE_Single_Container_122P9_print; -asn_constr_check_f ProtocolIE_Single_Container_122P9_constraint; -ber_type_decoder_f ProtocolIE_Single_Container_122P9_decode_ber; -der_type_encoder_f ProtocolIE_Single_Container_122P9_encode_der; -xer_type_decoder_f ProtocolIE_Single_Container_122P9_decode_xer; -xer_type_encoder_f ProtocolIE_Single_Container_122P9_encode_xer; -per_type_decoder_f ProtocolIE_Single_Container_122P9_decode_uper; -per_type_encoder_f ProtocolIE_Single_Container_122P9_encode_uper; -per_type_decoder_f ProtocolIE_Single_Container_122P9_decode_aper; -per_type_encoder_f ProtocolIE_Single_Container_122P9_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_122P10; -asn_struct_free_f ProtocolIE_Single_Container_122P10_free; -asn_struct_print_f ProtocolIE_Single_Container_122P10_print; -asn_constr_check_f ProtocolIE_Single_Container_122P10_constraint; -ber_type_decoder_f ProtocolIE_Single_Container_122P10_decode_ber; -der_type_encoder_f ProtocolIE_Single_Container_122P10_encode_der; -xer_type_decoder_f ProtocolIE_Single_Container_122P10_decode_xer; -xer_type_encoder_f ProtocolIE_Single_Container_122P10_encode_xer; -per_type_decoder_f ProtocolIE_Single_Container_122P10_decode_uper; -per_type_encoder_f ProtocolIE_Single_Container_122P10_encode_uper; -per_type_decoder_f ProtocolIE_Single_Container_122P10_decode_aper; -per_type_encoder_f ProtocolIE_Single_Container_122P10_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_122P11; -asn_struct_free_f ProtocolIE_Single_Container_122P11_free; -asn_struct_print_f ProtocolIE_Single_Container_122P11_print; -asn_constr_check_f ProtocolIE_Single_Container_122P11_constraint; -ber_type_decoder_f ProtocolIE_Single_Container_122P11_decode_ber; -der_type_encoder_f ProtocolIE_Single_Container_122P11_encode_der; -xer_type_decoder_f ProtocolIE_Single_Container_122P11_decode_xer; -xer_type_encoder_f ProtocolIE_Single_Container_122P11_encode_xer; -per_type_decoder_f ProtocolIE_Single_Container_122P11_decode_uper; -per_type_encoder_f ProtocolIE_Single_Container_122P11_encode_uper; -per_type_decoder_f ProtocolIE_Single_Container_122P11_decode_aper; -per_type_encoder_f ProtocolIE_Single_Container_122P11_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_122P12; -asn_struct_free_f ProtocolIE_Single_Container_122P12_free; -asn_struct_print_f ProtocolIE_Single_Container_122P12_print; -asn_constr_check_f ProtocolIE_Single_Container_122P12_constraint; -ber_type_decoder_f ProtocolIE_Single_Container_122P12_decode_ber; -der_type_encoder_f ProtocolIE_Single_Container_122P12_encode_der; -xer_type_decoder_f ProtocolIE_Single_Container_122P12_decode_xer; -xer_type_encoder_f ProtocolIE_Single_Container_122P12_encode_xer; -per_type_decoder_f ProtocolIE_Single_Container_122P12_decode_uper; -per_type_encoder_f ProtocolIE_Single_Container_122P12_encode_uper; -per_type_decoder_f ProtocolIE_Single_Container_122P12_decode_aper; -per_type_encoder_f ProtocolIE_Single_Container_122P12_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_122P13; -asn_struct_free_f ProtocolIE_Single_Container_122P13_free; -asn_struct_print_f ProtocolIE_Single_Container_122P13_print; -asn_constr_check_f ProtocolIE_Single_Container_122P13_constraint; -ber_type_decoder_f ProtocolIE_Single_Container_122P13_decode_ber; -der_type_encoder_f ProtocolIE_Single_Container_122P13_encode_der; -xer_type_decoder_f ProtocolIE_Single_Container_122P13_decode_xer; -xer_type_encoder_f ProtocolIE_Single_Container_122P13_encode_xer; -per_type_decoder_f ProtocolIE_Single_Container_122P13_decode_uper; -per_type_encoder_f ProtocolIE_Single_Container_122P13_encode_uper; -per_type_decoder_f ProtocolIE_Single_Container_122P13_decode_aper; -per_type_encoder_f ProtocolIE_Single_Container_122P13_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_122P14; -asn_struct_free_f ProtocolIE_Single_Container_122P14_free; -asn_struct_print_f ProtocolIE_Single_Container_122P14_print; -asn_constr_check_f ProtocolIE_Single_Container_122P14_constraint; -ber_type_decoder_f ProtocolIE_Single_Container_122P14_decode_ber; -der_type_encoder_f ProtocolIE_Single_Container_122P14_encode_der; -xer_type_decoder_f ProtocolIE_Single_Container_122P14_decode_xer; -xer_type_encoder_f ProtocolIE_Single_Container_122P14_encode_xer; -per_type_decoder_f ProtocolIE_Single_Container_122P14_decode_uper; -per_type_encoder_f ProtocolIE_Single_Container_122P14_encode_uper; -per_type_decoder_f ProtocolIE_Single_Container_122P14_decode_aper; -per_type_encoder_f ProtocolIE_Single_Container_122P14_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_122P15; -asn_struct_free_f ProtocolIE_Single_Container_122P15_free; -asn_struct_print_f ProtocolIE_Single_Container_122P15_print; -asn_constr_check_f ProtocolIE_Single_Container_122P15_constraint; -ber_type_decoder_f ProtocolIE_Single_Container_122P15_decode_ber; -der_type_encoder_f ProtocolIE_Single_Container_122P15_encode_der; -xer_type_decoder_f ProtocolIE_Single_Container_122P15_decode_xer; -xer_type_encoder_f ProtocolIE_Single_Container_122P15_encode_xer; -per_type_decoder_f ProtocolIE_Single_Container_122P15_decode_uper; -per_type_encoder_f ProtocolIE_Single_Container_122P15_encode_uper; -per_type_decoder_f ProtocolIE_Single_Container_122P15_decode_aper; -per_type_encoder_f ProtocolIE_Single_Container_122P15_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_122P16; -asn_struct_free_f ProtocolIE_Single_Container_122P16_free; -asn_struct_print_f ProtocolIE_Single_Container_122P16_print; -asn_constr_check_f ProtocolIE_Single_Container_122P16_constraint; -ber_type_decoder_f ProtocolIE_Single_Container_122P16_decode_ber; -der_type_encoder_f ProtocolIE_Single_Container_122P16_encode_der; -xer_type_decoder_f ProtocolIE_Single_Container_122P16_decode_xer; -xer_type_encoder_f ProtocolIE_Single_Container_122P16_encode_xer; -per_type_decoder_f ProtocolIE_Single_Container_122P16_decode_uper; -per_type_encoder_f ProtocolIE_Single_Container_122P16_encode_uper; -per_type_decoder_f ProtocolIE_Single_Container_122P16_decode_aper; -per_type_encoder_f ProtocolIE_Single_Container_122P16_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_122P17; -asn_struct_free_f ProtocolIE_Single_Container_122P17_free; -asn_struct_print_f ProtocolIE_Single_Container_122P17_print; -asn_constr_check_f ProtocolIE_Single_Container_122P17_constraint; -ber_type_decoder_f ProtocolIE_Single_Container_122P17_decode_ber; -der_type_encoder_f ProtocolIE_Single_Container_122P17_encode_der; -xer_type_decoder_f ProtocolIE_Single_Container_122P17_decode_xer; -xer_type_encoder_f ProtocolIE_Single_Container_122P17_encode_xer; -per_type_decoder_f ProtocolIE_Single_Container_122P17_decode_uper; -per_type_encoder_f ProtocolIE_Single_Container_122P17_encode_uper; -per_type_decoder_f ProtocolIE_Single_Container_122P17_decode_aper; -per_type_encoder_f ProtocolIE_Single_Container_122P17_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_122P18; -asn_struct_free_f ProtocolIE_Single_Container_122P18_free; -asn_struct_print_f ProtocolIE_Single_Container_122P18_print; -asn_constr_check_f ProtocolIE_Single_Container_122P18_constraint; -ber_type_decoder_f ProtocolIE_Single_Container_122P18_decode_ber; -der_type_encoder_f ProtocolIE_Single_Container_122P18_encode_der; -xer_type_decoder_f ProtocolIE_Single_Container_122P18_decode_xer; -xer_type_encoder_f ProtocolIE_Single_Container_122P18_encode_xer; -per_type_decoder_f ProtocolIE_Single_Container_122P18_decode_uper; -per_type_encoder_f ProtocolIE_Single_Container_122P18_encode_uper; -per_type_decoder_f ProtocolIE_Single_Container_122P18_decode_aper; -per_type_encoder_f ProtocolIE_Single_Container_122P18_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_122P19; -asn_struct_free_f ProtocolIE_Single_Container_122P19_free; -asn_struct_print_f ProtocolIE_Single_Container_122P19_print; -asn_constr_check_f ProtocolIE_Single_Container_122P19_constraint; -ber_type_decoder_f ProtocolIE_Single_Container_122P19_decode_ber; -der_type_encoder_f ProtocolIE_Single_Container_122P19_encode_der; -xer_type_decoder_f ProtocolIE_Single_Container_122P19_decode_xer; -xer_type_encoder_f ProtocolIE_Single_Container_122P19_encode_xer; -per_type_decoder_f ProtocolIE_Single_Container_122P19_decode_uper; -per_type_encoder_f ProtocolIE_Single_Container_122P19_encode_uper; -per_type_decoder_f ProtocolIE_Single_Container_122P19_decode_aper; -per_type_encoder_f ProtocolIE_Single_Container_122P19_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_122P20; -asn_struct_free_f ProtocolIE_Single_Container_122P20_free; -asn_struct_print_f ProtocolIE_Single_Container_122P20_print; -asn_constr_check_f ProtocolIE_Single_Container_122P20_constraint; -ber_type_decoder_f ProtocolIE_Single_Container_122P20_decode_ber; -der_type_encoder_f ProtocolIE_Single_Container_122P20_encode_der; -xer_type_decoder_f ProtocolIE_Single_Container_122P20_decode_xer; -xer_type_encoder_f ProtocolIE_Single_Container_122P20_encode_xer; -per_type_decoder_f ProtocolIE_Single_Container_122P20_decode_uper; -per_type_encoder_f ProtocolIE_Single_Container_122P20_encode_uper; -per_type_decoder_f ProtocolIE_Single_Container_122P20_decode_aper; -per_type_encoder_f ProtocolIE_Single_Container_122P20_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_122P21; -asn_struct_free_f ProtocolIE_Single_Container_122P21_free; -asn_struct_print_f ProtocolIE_Single_Container_122P21_print; -asn_constr_check_f ProtocolIE_Single_Container_122P21_constraint; -ber_type_decoder_f ProtocolIE_Single_Container_122P21_decode_ber; -der_type_encoder_f ProtocolIE_Single_Container_122P21_encode_der; -xer_type_decoder_f ProtocolIE_Single_Container_122P21_decode_xer; -xer_type_encoder_f ProtocolIE_Single_Container_122P21_encode_xer; -per_type_decoder_f ProtocolIE_Single_Container_122P21_decode_uper; -per_type_encoder_f ProtocolIE_Single_Container_122P21_encode_uper; -per_type_decoder_f ProtocolIE_Single_Container_122P21_decode_aper; -per_type_encoder_f ProtocolIE_Single_Container_122P21_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_122P22; -asn_struct_free_f ProtocolIE_Single_Container_122P22_free; -asn_struct_print_f ProtocolIE_Single_Container_122P22_print; -asn_constr_check_f ProtocolIE_Single_Container_122P22_constraint; -ber_type_decoder_f ProtocolIE_Single_Container_122P22_decode_ber; -der_type_encoder_f ProtocolIE_Single_Container_122P22_encode_der; -xer_type_decoder_f ProtocolIE_Single_Container_122P22_decode_xer; -xer_type_encoder_f ProtocolIE_Single_Container_122P22_encode_xer; -per_type_decoder_f ProtocolIE_Single_Container_122P22_decode_uper; -per_type_encoder_f ProtocolIE_Single_Container_122P22_encode_uper; -per_type_decoder_f ProtocolIE_Single_Container_122P22_decode_aper; -per_type_encoder_f ProtocolIE_Single_Container_122P22_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_122P23; -asn_struct_free_f ProtocolIE_Single_Container_122P23_free; -asn_struct_print_f ProtocolIE_Single_Container_122P23_print; -asn_constr_check_f ProtocolIE_Single_Container_122P23_constraint; -ber_type_decoder_f ProtocolIE_Single_Container_122P23_decode_ber; -der_type_encoder_f ProtocolIE_Single_Container_122P23_encode_der; -xer_type_decoder_f ProtocolIE_Single_Container_122P23_decode_xer; -xer_type_encoder_f ProtocolIE_Single_Container_122P23_encode_xer; -per_type_decoder_f ProtocolIE_Single_Container_122P23_decode_uper; -per_type_encoder_f ProtocolIE_Single_Container_122P23_encode_uper; -per_type_decoder_f ProtocolIE_Single_Container_122P23_decode_aper; -per_type_encoder_f ProtocolIE_Single_Container_122P23_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_122P24; -asn_struct_free_f ProtocolIE_Single_Container_122P24_free; -asn_struct_print_f ProtocolIE_Single_Container_122P24_print; -asn_constr_check_f ProtocolIE_Single_Container_122P24_constraint; -ber_type_decoder_f ProtocolIE_Single_Container_122P24_decode_ber; -der_type_encoder_f ProtocolIE_Single_Container_122P24_encode_der; -xer_type_decoder_f ProtocolIE_Single_Container_122P24_decode_xer; -xer_type_encoder_f ProtocolIE_Single_Container_122P24_encode_xer; -per_type_decoder_f ProtocolIE_Single_Container_122P24_decode_uper; -per_type_encoder_f ProtocolIE_Single_Container_122P24_encode_uper; -per_type_decoder_f ProtocolIE_Single_Container_122P24_decode_aper; -per_type_encoder_f ProtocolIE_Single_Container_122P24_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_122P25; -asn_struct_free_f ProtocolIE_Single_Container_122P25_free; -asn_struct_print_f ProtocolIE_Single_Container_122P25_print; -asn_constr_check_f ProtocolIE_Single_Container_122P25_constraint; -ber_type_decoder_f ProtocolIE_Single_Container_122P25_decode_ber; -der_type_encoder_f ProtocolIE_Single_Container_122P25_encode_der; -xer_type_decoder_f ProtocolIE_Single_Container_122P25_decode_xer; -xer_type_encoder_f ProtocolIE_Single_Container_122P25_encode_xer; -per_type_decoder_f ProtocolIE_Single_Container_122P25_decode_uper; -per_type_encoder_f ProtocolIE_Single_Container_122P25_encode_uper; -per_type_decoder_f ProtocolIE_Single_Container_122P25_decode_aper; -per_type_encoder_f ProtocolIE_Single_Container_122P25_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_122P26; -asn_struct_free_f ProtocolIE_Single_Container_122P26_free; -asn_struct_print_f ProtocolIE_Single_Container_122P26_print; -asn_constr_check_f ProtocolIE_Single_Container_122P26_constraint; -ber_type_decoder_f ProtocolIE_Single_Container_122P26_decode_ber; -der_type_encoder_f ProtocolIE_Single_Container_122P26_encode_der; -xer_type_decoder_f ProtocolIE_Single_Container_122P26_decode_xer; -xer_type_encoder_f ProtocolIE_Single_Container_122P26_encode_xer; -per_type_decoder_f ProtocolIE_Single_Container_122P26_decode_uper; -per_type_encoder_f ProtocolIE_Single_Container_122P26_encode_uper; -per_type_decoder_f ProtocolIE_Single_Container_122P26_decode_aper; -per_type_encoder_f ProtocolIE_Single_Container_122P26_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_122P27; -asn_struct_free_f ProtocolIE_Single_Container_122P27_free; -asn_struct_print_f ProtocolIE_Single_Container_122P27_print; -asn_constr_check_f ProtocolIE_Single_Container_122P27_constraint; -ber_type_decoder_f ProtocolIE_Single_Container_122P27_decode_ber; -der_type_encoder_f ProtocolIE_Single_Container_122P27_encode_der; -xer_type_decoder_f ProtocolIE_Single_Container_122P27_decode_xer; -xer_type_encoder_f ProtocolIE_Single_Container_122P27_encode_xer; -per_type_decoder_f ProtocolIE_Single_Container_122P27_decode_uper; -per_type_encoder_f ProtocolIE_Single_Container_122P27_encode_uper; -per_type_decoder_f ProtocolIE_Single_Container_122P27_decode_aper; -per_type_encoder_f ProtocolIE_Single_Container_122P27_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_122P28; -asn_struct_free_f ProtocolIE_Single_Container_122P28_free; -asn_struct_print_f ProtocolIE_Single_Container_122P28_print; -asn_constr_check_f ProtocolIE_Single_Container_122P28_constraint; -ber_type_decoder_f ProtocolIE_Single_Container_122P28_decode_ber; -der_type_encoder_f ProtocolIE_Single_Container_122P28_encode_der; -xer_type_decoder_f ProtocolIE_Single_Container_122P28_decode_xer; -xer_type_encoder_f ProtocolIE_Single_Container_122P28_encode_xer; -per_type_decoder_f ProtocolIE_Single_Container_122P28_decode_uper; -per_type_encoder_f ProtocolIE_Single_Container_122P28_encode_uper; -per_type_decoder_f ProtocolIE_Single_Container_122P28_decode_aper; -per_type_encoder_f ProtocolIE_Single_Container_122P28_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_122P29; -asn_struct_free_f ProtocolIE_Single_Container_122P29_free; -asn_struct_print_f ProtocolIE_Single_Container_122P29_print; -asn_constr_check_f ProtocolIE_Single_Container_122P29_constraint; -ber_type_decoder_f ProtocolIE_Single_Container_122P29_decode_ber; -der_type_encoder_f ProtocolIE_Single_Container_122P29_encode_der; -xer_type_decoder_f ProtocolIE_Single_Container_122P29_decode_xer; -xer_type_encoder_f ProtocolIE_Single_Container_122P29_encode_xer; -per_type_decoder_f ProtocolIE_Single_Container_122P29_decode_uper; -per_type_encoder_f ProtocolIE_Single_Container_122P29_encode_uper; -per_type_decoder_f ProtocolIE_Single_Container_122P29_decode_aper; -per_type_encoder_f ProtocolIE_Single_Container_122P29_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_122P30; -asn_struct_free_f ProtocolIE_Single_Container_122P30_free; -asn_struct_print_f ProtocolIE_Single_Container_122P30_print; -asn_constr_check_f ProtocolIE_Single_Container_122P30_constraint; -ber_type_decoder_f ProtocolIE_Single_Container_122P30_decode_ber; -der_type_encoder_f ProtocolIE_Single_Container_122P30_encode_der; -xer_type_decoder_f ProtocolIE_Single_Container_122P30_decode_xer; -xer_type_encoder_f ProtocolIE_Single_Container_122P30_encode_xer; -per_type_decoder_f ProtocolIE_Single_Container_122P30_decode_uper; -per_type_encoder_f ProtocolIE_Single_Container_122P30_encode_uper; -per_type_decoder_f ProtocolIE_Single_Container_122P30_decode_aper; -per_type_encoder_f ProtocolIE_Single_Container_122P30_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_122P31; -asn_struct_free_f ProtocolIE_Single_Container_122P31_free; -asn_struct_print_f ProtocolIE_Single_Container_122P31_print; -asn_constr_check_f ProtocolIE_Single_Container_122P31_constraint; -ber_type_decoder_f ProtocolIE_Single_Container_122P31_decode_ber; -der_type_encoder_f ProtocolIE_Single_Container_122P31_encode_der; -xer_type_decoder_f ProtocolIE_Single_Container_122P31_decode_xer; -xer_type_encoder_f ProtocolIE_Single_Container_122P31_encode_xer; -per_type_decoder_f ProtocolIE_Single_Container_122P31_decode_uper; -per_type_encoder_f ProtocolIE_Single_Container_122P31_encode_uper; -per_type_decoder_f ProtocolIE_Single_Container_122P31_decode_aper; -per_type_encoder_f ProtocolIE_Single_Container_122P31_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_122P32; -asn_struct_free_f ProtocolIE_Single_Container_122P32_free; -asn_struct_print_f ProtocolIE_Single_Container_122P32_print; -asn_constr_check_f ProtocolIE_Single_Container_122P32_constraint; -ber_type_decoder_f ProtocolIE_Single_Container_122P32_decode_ber; -der_type_encoder_f ProtocolIE_Single_Container_122P32_encode_der; -xer_type_decoder_f ProtocolIE_Single_Container_122P32_decode_xer; -xer_type_encoder_f ProtocolIE_Single_Container_122P32_encode_xer; -per_type_decoder_f ProtocolIE_Single_Container_122P32_decode_uper; -per_type_encoder_f ProtocolIE_Single_Container_122P32_encode_uper; -per_type_decoder_f ProtocolIE_Single_Container_122P32_decode_aper; -per_type_encoder_f ProtocolIE_Single_Container_122P32_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_122P33; -asn_struct_free_f ProtocolIE_Single_Container_122P33_free; -asn_struct_print_f ProtocolIE_Single_Container_122P33_print; -asn_constr_check_f ProtocolIE_Single_Container_122P33_constraint; -ber_type_decoder_f ProtocolIE_Single_Container_122P33_decode_ber; -der_type_encoder_f ProtocolIE_Single_Container_122P33_encode_der; -xer_type_decoder_f ProtocolIE_Single_Container_122P33_decode_xer; -xer_type_encoder_f ProtocolIE_Single_Container_122P33_encode_xer; -per_type_decoder_f ProtocolIE_Single_Container_122P33_decode_uper; -per_type_encoder_f ProtocolIE_Single_Container_122P33_encode_uper; -per_type_decoder_f ProtocolIE_Single_Container_122P33_decode_aper; -per_type_encoder_f ProtocolIE_Single_Container_122P33_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_122P34; -asn_struct_free_f ProtocolIE_Single_Container_122P34_free; -asn_struct_print_f ProtocolIE_Single_Container_122P34_print; -asn_constr_check_f ProtocolIE_Single_Container_122P34_constraint; -ber_type_decoder_f ProtocolIE_Single_Container_122P34_decode_ber; -der_type_encoder_f ProtocolIE_Single_Container_122P34_encode_der; -xer_type_decoder_f ProtocolIE_Single_Container_122P34_decode_xer; -xer_type_encoder_f ProtocolIE_Single_Container_122P34_encode_xer; -per_type_decoder_f ProtocolIE_Single_Container_122P34_decode_uper; -per_type_encoder_f ProtocolIE_Single_Container_122P34_encode_uper; -per_type_decoder_f ProtocolIE_Single_Container_122P34_decode_aper; -per_type_encoder_f ProtocolIE_Single_Container_122P34_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_122P35; -asn_struct_free_f ProtocolIE_Single_Container_122P35_free; -asn_struct_print_f ProtocolIE_Single_Container_122P35_print; -asn_constr_check_f ProtocolIE_Single_Container_122P35_constraint; -ber_type_decoder_f ProtocolIE_Single_Container_122P35_decode_ber; -der_type_encoder_f ProtocolIE_Single_Container_122P35_encode_der; -xer_type_decoder_f ProtocolIE_Single_Container_122P35_decode_xer; -xer_type_encoder_f ProtocolIE_Single_Container_122P35_encode_xer; -per_type_decoder_f ProtocolIE_Single_Container_122P35_decode_uper; -per_type_encoder_f ProtocolIE_Single_Container_122P35_encode_uper; -per_type_decoder_f ProtocolIE_Single_Container_122P35_decode_aper; -per_type_encoder_f ProtocolIE_Single_Container_122P35_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_122P36; -asn_struct_free_f ProtocolIE_Single_Container_122P36_free; -asn_struct_print_f ProtocolIE_Single_Container_122P36_print; -asn_constr_check_f ProtocolIE_Single_Container_122P36_constraint; -ber_type_decoder_f ProtocolIE_Single_Container_122P36_decode_ber; -der_type_encoder_f ProtocolIE_Single_Container_122P36_encode_der; -xer_type_decoder_f ProtocolIE_Single_Container_122P36_decode_xer; -xer_type_encoder_f ProtocolIE_Single_Container_122P36_encode_xer; -per_type_decoder_f ProtocolIE_Single_Container_122P36_decode_uper; -per_type_encoder_f ProtocolIE_Single_Container_122P36_encode_uper; -per_type_decoder_f ProtocolIE_Single_Container_122P36_decode_aper; -per_type_encoder_f ProtocolIE_Single_Container_122P36_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_122P37; -asn_struct_free_f ProtocolIE_Single_Container_122P37_free; -asn_struct_print_f ProtocolIE_Single_Container_122P37_print; -asn_constr_check_f ProtocolIE_Single_Container_122P37_constraint; -ber_type_decoder_f ProtocolIE_Single_Container_122P37_decode_ber; -der_type_encoder_f ProtocolIE_Single_Container_122P37_encode_der; -xer_type_decoder_f ProtocolIE_Single_Container_122P37_decode_xer; -xer_type_encoder_f ProtocolIE_Single_Container_122P37_encode_xer; -per_type_decoder_f ProtocolIE_Single_Container_122P37_decode_uper; -per_type_encoder_f ProtocolIE_Single_Container_122P37_encode_uper; -per_type_decoder_f ProtocolIE_Single_Container_122P37_decode_aper; -per_type_encoder_f ProtocolIE_Single_Container_122P37_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_122P38; -asn_struct_free_f ProtocolIE_Single_Container_122P38_free; -asn_struct_print_f ProtocolIE_Single_Container_122P38_print; -asn_constr_check_f ProtocolIE_Single_Container_122P38_constraint; -ber_type_decoder_f ProtocolIE_Single_Container_122P38_decode_ber; -der_type_encoder_f ProtocolIE_Single_Container_122P38_encode_der; -xer_type_decoder_f ProtocolIE_Single_Container_122P38_decode_xer; -xer_type_encoder_f ProtocolIE_Single_Container_122P38_encode_xer; -per_type_decoder_f ProtocolIE_Single_Container_122P38_decode_uper; -per_type_encoder_f ProtocolIE_Single_Container_122P38_encode_uper; -per_type_decoder_f ProtocolIE_Single_Container_122P38_decode_aper; -per_type_encoder_f ProtocolIE_Single_Container_122P38_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_122P39; -asn_struct_free_f ProtocolIE_Single_Container_122P39_free; -asn_struct_print_f ProtocolIE_Single_Container_122P39_print; -asn_constr_check_f ProtocolIE_Single_Container_122P39_constraint; -ber_type_decoder_f ProtocolIE_Single_Container_122P39_decode_ber; -der_type_encoder_f ProtocolIE_Single_Container_122P39_encode_der; -xer_type_decoder_f ProtocolIE_Single_Container_122P39_decode_xer; -xer_type_encoder_f ProtocolIE_Single_Container_122P39_encode_xer; -per_type_decoder_f ProtocolIE_Single_Container_122P39_decode_uper; -per_type_encoder_f ProtocolIE_Single_Container_122P39_encode_uper; -per_type_decoder_f ProtocolIE_Single_Container_122P39_decode_aper; -per_type_encoder_f ProtocolIE_Single_Container_122P39_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_122P40; -asn_struct_free_f ProtocolIE_Single_Container_122P40_free; -asn_struct_print_f ProtocolIE_Single_Container_122P40_print; -asn_constr_check_f ProtocolIE_Single_Container_122P40_constraint; -ber_type_decoder_f ProtocolIE_Single_Container_122P40_decode_ber; -der_type_encoder_f ProtocolIE_Single_Container_122P40_encode_der; -xer_type_decoder_f ProtocolIE_Single_Container_122P40_decode_xer; -xer_type_encoder_f ProtocolIE_Single_Container_122P40_encode_xer; -per_type_decoder_f ProtocolIE_Single_Container_122P40_decode_uper; -per_type_encoder_f ProtocolIE_Single_Container_122P40_encode_uper; -per_type_decoder_f ProtocolIE_Single_Container_122P40_decode_aper; -per_type_encoder_f ProtocolIE_Single_Container_122P40_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_122P41; -asn_struct_free_f ProtocolIE_Single_Container_122P41_free; -asn_struct_print_f ProtocolIE_Single_Container_122P41_print; -asn_constr_check_f ProtocolIE_Single_Container_122P41_constraint; -ber_type_decoder_f ProtocolIE_Single_Container_122P41_decode_ber; -der_type_encoder_f ProtocolIE_Single_Container_122P41_encode_der; -xer_type_decoder_f ProtocolIE_Single_Container_122P41_decode_xer; -xer_type_encoder_f ProtocolIE_Single_Container_122P41_encode_xer; -per_type_decoder_f ProtocolIE_Single_Container_122P41_decode_uper; -per_type_encoder_f ProtocolIE_Single_Container_122P41_encode_uper; -per_type_decoder_f ProtocolIE_Single_Container_122P41_decode_aper; -per_type_encoder_f ProtocolIE_Single_Container_122P41_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_122P42; -asn_struct_free_f ProtocolIE_Single_Container_122P42_free; -asn_struct_print_f ProtocolIE_Single_Container_122P42_print; -asn_constr_check_f ProtocolIE_Single_Container_122P42_constraint; -ber_type_decoder_f ProtocolIE_Single_Container_122P42_decode_ber; -der_type_encoder_f ProtocolIE_Single_Container_122P42_encode_der; -xer_type_decoder_f ProtocolIE_Single_Container_122P42_decode_xer; -xer_type_encoder_f ProtocolIE_Single_Container_122P42_encode_xer; -per_type_decoder_f ProtocolIE_Single_Container_122P42_decode_uper; -per_type_encoder_f ProtocolIE_Single_Container_122P42_encode_uper; -per_type_decoder_f ProtocolIE_Single_Container_122P42_decode_aper; -per_type_encoder_f ProtocolIE_Single_Container_122P42_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_122P43; -asn_struct_free_f ProtocolIE_Single_Container_122P43_free; -asn_struct_print_f ProtocolIE_Single_Container_122P43_print; -asn_constr_check_f ProtocolIE_Single_Container_122P43_constraint; -ber_type_decoder_f ProtocolIE_Single_Container_122P43_decode_ber; -der_type_encoder_f ProtocolIE_Single_Container_122P43_encode_der; -xer_type_decoder_f ProtocolIE_Single_Container_122P43_decode_xer; -xer_type_encoder_f ProtocolIE_Single_Container_122P43_encode_xer; -per_type_decoder_f ProtocolIE_Single_Container_122P43_decode_uper; -per_type_encoder_f ProtocolIE_Single_Container_122P43_encode_uper; -per_type_decoder_f ProtocolIE_Single_Container_122P43_decode_aper; -per_type_encoder_f ProtocolIE_Single_Container_122P43_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_122P44; -asn_struct_free_f ProtocolIE_Single_Container_122P44_free; -asn_struct_print_f ProtocolIE_Single_Container_122P44_print; -asn_constr_check_f ProtocolIE_Single_Container_122P44_constraint; -ber_type_decoder_f ProtocolIE_Single_Container_122P44_decode_ber; -der_type_encoder_f ProtocolIE_Single_Container_122P44_encode_der; -xer_type_decoder_f ProtocolIE_Single_Container_122P44_decode_xer; -xer_type_encoder_f ProtocolIE_Single_Container_122P44_encode_xer; -per_type_decoder_f ProtocolIE_Single_Container_122P44_decode_uper; -per_type_encoder_f ProtocolIE_Single_Container_122P44_encode_uper; -per_type_decoder_f ProtocolIE_Single_Container_122P44_decode_aper; -per_type_encoder_f ProtocolIE_Single_Container_122P44_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_122P45; -asn_struct_free_f ProtocolIE_Single_Container_122P45_free; -asn_struct_print_f ProtocolIE_Single_Container_122P45_print; -asn_constr_check_f ProtocolIE_Single_Container_122P45_constraint; -ber_type_decoder_f ProtocolIE_Single_Container_122P45_decode_ber; -der_type_encoder_f ProtocolIE_Single_Container_122P45_encode_der; -xer_type_decoder_f ProtocolIE_Single_Container_122P45_decode_xer; -xer_type_encoder_f ProtocolIE_Single_Container_122P45_encode_xer; -per_type_decoder_f ProtocolIE_Single_Container_122P45_decode_uper; -per_type_encoder_f ProtocolIE_Single_Container_122P45_encode_uper; -per_type_decoder_f ProtocolIE_Single_Container_122P45_decode_aper; -per_type_encoder_f ProtocolIE_Single_Container_122P45_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_122P46; -asn_struct_free_f ProtocolIE_Single_Container_122P46_free; -asn_struct_print_f ProtocolIE_Single_Container_122P46_print; -asn_constr_check_f ProtocolIE_Single_Container_122P46_constraint; -ber_type_decoder_f ProtocolIE_Single_Container_122P46_decode_ber; -der_type_encoder_f ProtocolIE_Single_Container_122P46_encode_der; -xer_type_decoder_f ProtocolIE_Single_Container_122P46_decode_xer; -xer_type_encoder_f ProtocolIE_Single_Container_122P46_encode_xer; -per_type_decoder_f ProtocolIE_Single_Container_122P46_decode_uper; -per_type_encoder_f ProtocolIE_Single_Container_122P46_encode_uper; -per_type_decoder_f ProtocolIE_Single_Container_122P46_decode_aper; -per_type_encoder_f ProtocolIE_Single_Container_122P46_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_122P47; -asn_struct_free_f ProtocolIE_Single_Container_122P47_free; -asn_struct_print_f ProtocolIE_Single_Container_122P47_print; -asn_constr_check_f ProtocolIE_Single_Container_122P47_constraint; -ber_type_decoder_f ProtocolIE_Single_Container_122P47_decode_ber; -der_type_encoder_f ProtocolIE_Single_Container_122P47_encode_der; -xer_type_decoder_f ProtocolIE_Single_Container_122P47_decode_xer; -xer_type_encoder_f ProtocolIE_Single_Container_122P47_encode_xer; -per_type_decoder_f ProtocolIE_Single_Container_122P47_decode_uper; -per_type_encoder_f ProtocolIE_Single_Container_122P47_encode_uper; -per_type_decoder_f ProtocolIE_Single_Container_122P47_decode_aper; -per_type_encoder_f ProtocolIE_Single_Container_122P47_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_122P48; -asn_struct_free_f ProtocolIE_Single_Container_122P48_free; -asn_struct_print_f ProtocolIE_Single_Container_122P48_print; -asn_constr_check_f ProtocolIE_Single_Container_122P48_constraint; -ber_type_decoder_f ProtocolIE_Single_Container_122P48_decode_ber; -der_type_encoder_f ProtocolIE_Single_Container_122P48_encode_der; -xer_type_decoder_f ProtocolIE_Single_Container_122P48_decode_xer; -xer_type_encoder_f ProtocolIE_Single_Container_122P48_encode_xer; -per_type_decoder_f ProtocolIE_Single_Container_122P48_decode_uper; -per_type_encoder_f ProtocolIE_Single_Container_122P48_encode_uper; -per_type_decoder_f ProtocolIE_Single_Container_122P48_decode_aper; -per_type_encoder_f ProtocolIE_Single_Container_122P48_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _ProtocolIE_Single_Container_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/QCI.c b/e2sim/previous/ASN1c/QCI.c deleted file mode 100644 index 3514afe..0000000 --- a/e2sim/previous/ASN1c/QCI.c +++ /dev/null @@ -1,79 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "QCI.h" - -int -QCI_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 255)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using NativeInteger, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_QCI_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_QCI_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_QCI = { - "QCI", - "QCI", - &asn_OP_NativeInteger, - asn_DEF_QCI_tags_1, - sizeof(asn_DEF_QCI_tags_1) - /sizeof(asn_DEF_QCI_tags_1[0]), /* 1 */ - asn_DEF_QCI_tags_1, /* Same as above */ - sizeof(asn_DEF_QCI_tags_1) - /sizeof(asn_DEF_QCI_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_QCI_constr_1, QCI_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/previous/ASN1c/QCI.h b/e2sim/previous/ASN1c/QCI.h deleted file mode 100644 index 05415c0..0000000 --- a/e2sim/previous/ASN1c/QCI.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _QCI_H_ -#define _QCI_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeInteger.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* QCI */ -typedef long QCI_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_QCI_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_QCI; -asn_struct_free_f QCI_free; -asn_struct_print_f QCI_print; -asn_constr_check_f QCI_constraint; -ber_type_decoder_f QCI_decode_ber; -der_type_encoder_f QCI_encode_der; -xer_type_decoder_f QCI_decode_xer; -xer_type_encoder_f QCI_encode_xer; -per_type_decoder_f QCI_decode_uper; -per_type_encoder_f QCI_encode_uper; -per_type_decoder_f QCI_decode_aper; -per_type_encoder_f QCI_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _QCI_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/RANfunction-Item.c b/e2sim/previous/ASN1c/RANfunction-Item.c deleted file mode 100644 index ee95236..0000000 --- a/e2sim/previous/ASN1c/RANfunction-Item.c +++ /dev/null @@ -1,78 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "../../asnFiles/e2ap-v031.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "RANfunction-Item.h" - -static asn_TYPE_member_t asn_MBR_RANfunction_Item_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RANfunction_Item, ranFunctionID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RANfunctionID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ranFunctionID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RANfunction_Item, ranFunctionDefinition), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RANfunctionDefinition, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ranFunctionDefinition" - }, -}; -static const ber_tlv_tag_t asn_DEF_RANfunction_Item_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RANfunction_Item_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ranFunctionID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ranFunctionDefinition */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_RANfunction_Item_specs_1 = { - sizeof(struct RANfunction_Item), - offsetof(struct RANfunction_Item, _asn_ctx), - asn_MAP_RANfunction_Item_tag2el_1, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 2, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RANfunction_Item = { - "RANfunction-Item", - "RANfunction-Item", - &asn_OP_SEQUENCE, - asn_DEF_RANfunction_Item_tags_1, - sizeof(asn_DEF_RANfunction_Item_tags_1) - /sizeof(asn_DEF_RANfunction_Item_tags_1[0]), /* 1 */ - asn_DEF_RANfunction_Item_tags_1, /* Same as above */ - sizeof(asn_DEF_RANfunction_Item_tags_1) - /sizeof(asn_DEF_RANfunction_Item_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RANfunction_Item_1, - 2, /* Elements count */ - &asn_SPC_RANfunction_Item_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/RANfunction-Item.h b/e2sim/previous/ASN1c/RANfunction-Item.h deleted file mode 100644 index d5979e0..0000000 --- a/e2sim/previous/ASN1c/RANfunction-Item.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "../../asnFiles/e2ap-v031.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _RANfunction_Item_H_ -#define _RANfunction_Item_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "RANfunctionID.h" -#include "RANfunctionDefinition.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RANfunction-Item */ -typedef struct RANfunction_Item { - RANfunctionID_t ranFunctionID; - RANfunctionDefinition_t ranFunctionDefinition; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RANfunction_Item_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RANfunction_Item; - -#ifdef __cplusplus -} -#endif - -#endif /* _RANfunction_Item_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/RANfunctionDefinition.c b/e2sim/previous/ASN1c/RANfunctionDefinition.c deleted file mode 100644 index 1d72f42..0000000 --- a/e2sim/previous/ASN1c/RANfunctionDefinition.c +++ /dev/null @@ -1,49 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "../../asnFiles/e2ap-v031.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "RANfunctionDefinition.h" - -/* - * This type is implemented using OCTET_STRING, - * so here we adjust the DEF accordingly. - */ -static const ber_tlv_tag_t asn_DEF_RANfunctionDefinition_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RANfunctionDefinition = { - "RANfunctionDefinition", - "RANfunctionDefinition", - &asn_OP_OCTET_STRING, - asn_DEF_RANfunctionDefinition_tags_1, - sizeof(asn_DEF_RANfunctionDefinition_tags_1) - /sizeof(asn_DEF_RANfunctionDefinition_tags_1[0]), /* 1 */ - asn_DEF_RANfunctionDefinition_tags_1, /* Same as above */ - sizeof(asn_DEF_RANfunctionDefinition_tags_1) - /sizeof(asn_DEF_RANfunctionDefinition_tags_1[0]), /* 1 */ - { 0, 0, OCTET_STRING_constraint }, - 0, 0, /* No members */ - &asn_SPC_OCTET_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/RANfunctionDefinition.h b/e2sim/previous/ASN1c/RANfunctionDefinition.h deleted file mode 100644 index 02dc43b..0000000 --- a/e2sim/previous/ASN1c/RANfunctionDefinition.h +++ /dev/null @@ -1,61 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "../../asnFiles/e2ap-v031.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _RANfunctionDefinition_H_ -#define _RANfunctionDefinition_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "OCTET_STRING.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RANfunctionDefinition */ -typedef OCTET_STRING_t RANfunctionDefinition_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RANfunctionDefinition; -asn_struct_free_f RANfunctionDefinition_free; -asn_struct_print_f RANfunctionDefinition_print; -asn_constr_check_f RANfunctionDefinition_constraint; -ber_type_decoder_f RANfunctionDefinition_decode_ber; -der_type_encoder_f RANfunctionDefinition_encode_der; -xer_type_decoder_f RANfunctionDefinition_decode_xer; -xer_type_encoder_f RANfunctionDefinition_encode_xer; -per_type_decoder_f RANfunctionDefinition_decode_uper; -per_type_encoder_f RANfunctionDefinition_encode_uper; -per_type_decoder_f RANfunctionDefinition_decode_aper; -per_type_encoder_f RANfunctionDefinition_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RANfunctionDefinition_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/RANfunctionID-Item.c b/e2sim/previous/ASN1c/RANfunctionID-Item.c deleted file mode 100644 index d743458..0000000 --- a/e2sim/previous/ASN1c/RANfunctionID-Item.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "../../asnFiles/e2ap-v031.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "RANfunctionID-Item.h" - -static asn_TYPE_member_t asn_MBR_RANfunctionID_Item_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RANfunctionID_Item, ranFunctionID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RANfunctionID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ranFunctionID" - }, -}; -static const ber_tlv_tag_t asn_DEF_RANfunctionID_Item_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RANfunctionID_Item_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* ranFunctionID */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_RANfunctionID_Item_specs_1 = { - sizeof(struct RANfunctionID_Item), - offsetof(struct RANfunctionID_Item, _asn_ctx), - asn_MAP_RANfunctionID_Item_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RANfunctionID_Item = { - "RANfunctionID-Item", - "RANfunctionID-Item", - &asn_OP_SEQUENCE, - asn_DEF_RANfunctionID_Item_tags_1, - sizeof(asn_DEF_RANfunctionID_Item_tags_1) - /sizeof(asn_DEF_RANfunctionID_Item_tags_1[0]), /* 1 */ - asn_DEF_RANfunctionID_Item_tags_1, /* Same as above */ - sizeof(asn_DEF_RANfunctionID_Item_tags_1) - /sizeof(asn_DEF_RANfunctionID_Item_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RANfunctionID_Item_1, - 1, /* Elements count */ - &asn_SPC_RANfunctionID_Item_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/RANfunctionID-Item.h b/e2sim/previous/ASN1c/RANfunctionID-Item.h deleted file mode 100644 index 2e39d30..0000000 --- a/e2sim/previous/ASN1c/RANfunctionID-Item.h +++ /dev/null @@ -1,60 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "../../asnFiles/e2ap-v031.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _RANfunctionID_Item_H_ -#define _RANfunctionID_Item_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "RANfunctionID.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RANfunctionID-Item */ -typedef struct RANfunctionID_Item { - RANfunctionID_t ranFunctionID; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RANfunctionID_Item_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RANfunctionID_Item; - -#ifdef __cplusplus -} -#endif - -#endif /* _RANfunctionID_Item_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/RANfunctionID.c b/e2sim/previous/ASN1c/RANfunctionID.c deleted file mode 100644 index 8076f5d..0000000 --- a/e2sim/previous/ASN1c/RANfunctionID.c +++ /dev/null @@ -1,79 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "../../asnFiles/e2ap-v031.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "RANfunctionID.h" - -int -RANfunctionID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 4095)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using NativeInteger, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_RANfunctionID_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED, 12, 12, 0, 4095 } /* (0..4095) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_RANfunctionID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RANfunctionID = { - "RANfunctionID", - "RANfunctionID", - &asn_OP_NativeInteger, - asn_DEF_RANfunctionID_tags_1, - sizeof(asn_DEF_RANfunctionID_tags_1) - /sizeof(asn_DEF_RANfunctionID_tags_1[0]), /* 1 */ - asn_DEF_RANfunctionID_tags_1, /* Same as above */ - sizeof(asn_DEF_RANfunctionID_tags_1) - /sizeof(asn_DEF_RANfunctionID_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_RANfunctionID_constr_1, RANfunctionID_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/previous/ASN1c/RANfunctionID.h b/e2sim/previous/ASN1c/RANfunctionID.h deleted file mode 100644 index 1fb6ce1..0000000 --- a/e2sim/previous/ASN1c/RANfunctionID.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "../../asnFiles/e2ap-v031.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _RANfunctionID_H_ -#define _RANfunctionID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeInteger.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RANfunctionID */ -typedef long RANfunctionID_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_RANfunctionID_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_RANfunctionID; -asn_struct_free_f RANfunctionID_free; -asn_struct_print_f RANfunctionID_print; -asn_constr_check_f RANfunctionID_constraint; -ber_type_decoder_f RANfunctionID_decode_ber; -der_type_encoder_f RANfunctionID_encode_der; -xer_type_decoder_f RANfunctionID_decode_xer; -xer_type_encoder_f RANfunctionID_encode_xer; -per_type_decoder_f RANfunctionID_decode_uper; -per_type_encoder_f RANfunctionID_encode_uper; -per_type_decoder_f RANfunctionID_decode_aper; -per_type_encoder_f RANfunctionID_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RANfunctionID_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/RANfunctionIDcause-Item.c b/e2sim/previous/ASN1c/RANfunctionIDcause-Item.c deleted file mode 100644 index 51cdd14..0000000 --- a/e2sim/previous/ASN1c/RANfunctionIDcause-Item.c +++ /dev/null @@ -1,78 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "../../asnFiles/e2ap-v031.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "RANfunctionIDcause-Item.h" - -static asn_TYPE_member_t asn_MBR_RANfunctionIDcause_Item_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RANfunctionIDcause_Item, ranFunctionID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RANfunctionID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ranFunctionID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RANfunctionIDcause_Item, ricCause), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_RICcause, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ricCause" - }, -}; -static const ber_tlv_tag_t asn_DEF_RANfunctionIDcause_Item_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RANfunctionIDcause_Item_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ranFunctionID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ricCause */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_RANfunctionIDcause_Item_specs_1 = { - sizeof(struct RANfunctionIDcause_Item), - offsetof(struct RANfunctionIDcause_Item, _asn_ctx), - asn_MAP_RANfunctionIDcause_Item_tag2el_1, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 2, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RANfunctionIDcause_Item = { - "RANfunctionIDcause-Item", - "RANfunctionIDcause-Item", - &asn_OP_SEQUENCE, - asn_DEF_RANfunctionIDcause_Item_tags_1, - sizeof(asn_DEF_RANfunctionIDcause_Item_tags_1) - /sizeof(asn_DEF_RANfunctionIDcause_Item_tags_1[0]), /* 1 */ - asn_DEF_RANfunctionIDcause_Item_tags_1, /* Same as above */ - sizeof(asn_DEF_RANfunctionIDcause_Item_tags_1) - /sizeof(asn_DEF_RANfunctionIDcause_Item_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RANfunctionIDcause_Item_1, - 2, /* Elements count */ - &asn_SPC_RANfunctionIDcause_Item_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/RANfunctionIDcause-Item.h b/e2sim/previous/ASN1c/RANfunctionIDcause-Item.h deleted file mode 100644 index 697f00f..0000000 --- a/e2sim/previous/ASN1c/RANfunctionIDcause-Item.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "../../asnFiles/e2ap-v031.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _RANfunctionIDcause_Item_H_ -#define _RANfunctionIDcause_Item_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "RANfunctionID.h" -#include "RICcause.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RANfunctionIDcause-Item */ -typedef struct RANfunctionIDcause_Item { - RANfunctionID_t ranFunctionID; - RICcause_t ricCause; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RANfunctionIDcause_Item_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RANfunctionIDcause_Item; - -#ifdef __cplusplus -} -#endif - -#endif /* _RANfunctionIDcause_Item_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/RANfunctions-List.c b/e2sim/previous/ASN1c/RANfunctions-List.c deleted file mode 100644 index 82b4afe..0000000 --- a/e2sim/previous/ASN1c/RANfunctions-List.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "../../asnFiles/e2ap-v031.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "RANfunctions-List.h" - -#include "ProtocolIE-Single-Container.h" -static asn_per_constraints_t asn_PER_type_RANfunctions_List_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 9, 9, 0, 256 } /* (SIZE(0..256)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_RANfunctions_List_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ProtocolIE_Single_Container_122P3, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_RANfunctions_List_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_RANfunctions_List_specs_1 = { - sizeof(struct RANfunctions_List), - offsetof(struct RANfunctions_List, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_RANfunctions_List = { - "RANfunctions-List", - "RANfunctions-List", - &asn_OP_SEQUENCE_OF, - asn_DEF_RANfunctions_List_tags_1, - sizeof(asn_DEF_RANfunctions_List_tags_1) - /sizeof(asn_DEF_RANfunctions_List_tags_1[0]), /* 1 */ - asn_DEF_RANfunctions_List_tags_1, /* Same as above */ - sizeof(asn_DEF_RANfunctions_List_tags_1) - /sizeof(asn_DEF_RANfunctions_List_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_RANfunctions_List_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_RANfunctions_List_1, - 1, /* Single element */ - &asn_SPC_RANfunctions_List_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/RANfunctions-List.h b/e2sim/previous/ASN1c/RANfunctions-List.h deleted file mode 100644 index d60629a..0000000 --- a/e2sim/previous/ASN1c/RANfunctions-List.h +++ /dev/null @@ -1,59 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "../../asnFiles/e2ap-v031.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _RANfunctions_List_H_ -#define _RANfunctions_List_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolIE_Single_Container; - -/* RANfunctions-List */ -typedef struct RANfunctions_List { - A_SEQUENCE_OF(struct ProtocolIE_Single_Container) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RANfunctions_List_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RANfunctions_List; - -#ifdef __cplusplus -} -#endif - -#endif /* _RANfunctions_List_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/RANfunctionsID-List.c b/e2sim/previous/ASN1c/RANfunctionsID-List.c deleted file mode 100644 index b473461..0000000 --- a/e2sim/previous/ASN1c/RANfunctionsID-List.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "../../asnFiles/e2ap-v031.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "RANfunctionsID-List.h" - -#include "ProtocolIE-Single-Container.h" -static asn_per_constraints_t asn_PER_type_RANfunctionsID_List_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 9, 9, 0, 256 } /* (SIZE(0..256)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_RANfunctionsID_List_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ProtocolIE_Single_Container_122P4, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_RANfunctionsID_List_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_RANfunctionsID_List_specs_1 = { - sizeof(struct RANfunctionsID_List), - offsetof(struct RANfunctionsID_List, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_RANfunctionsID_List = { - "RANfunctionsID-List", - "RANfunctionsID-List", - &asn_OP_SEQUENCE_OF, - asn_DEF_RANfunctionsID_List_tags_1, - sizeof(asn_DEF_RANfunctionsID_List_tags_1) - /sizeof(asn_DEF_RANfunctionsID_List_tags_1[0]), /* 1 */ - asn_DEF_RANfunctionsID_List_tags_1, /* Same as above */ - sizeof(asn_DEF_RANfunctionsID_List_tags_1) - /sizeof(asn_DEF_RANfunctionsID_List_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_RANfunctionsID_List_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_RANfunctionsID_List_1, - 1, /* Single element */ - &asn_SPC_RANfunctionsID_List_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/RANfunctionsID-List.h b/e2sim/previous/ASN1c/RANfunctionsID-List.h deleted file mode 100644 index fec49cc..0000000 --- a/e2sim/previous/ASN1c/RANfunctionsID-List.h +++ /dev/null @@ -1,59 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "../../asnFiles/e2ap-v031.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _RANfunctionsID_List_H_ -#define _RANfunctionsID_List_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolIE_Single_Container; - -/* RANfunctionsID-List */ -typedef struct RANfunctionsID_List { - A_SEQUENCE_OF(struct ProtocolIE_Single_Container) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RANfunctionsID_List_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RANfunctionsID_List; - -#ifdef __cplusplus -} -#endif - -#endif /* _RANfunctionsID_List_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/RANfunctionsIDcause-List.c b/e2sim/previous/ASN1c/RANfunctionsIDcause-List.c deleted file mode 100644 index e887426..0000000 --- a/e2sim/previous/ASN1c/RANfunctionsIDcause-List.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "../../asnFiles/e2ap-v031.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "RANfunctionsIDcause-List.h" - -#include "ProtocolIE-Single-Container.h" -static asn_per_constraints_t asn_PER_type_RANfunctionsIDcause_List_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 9, 9, 0, 256 } /* (SIZE(0..256)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_RANfunctionsIDcause_List_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ProtocolIE_Single_Container_122P5, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_RANfunctionsIDcause_List_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_RANfunctionsIDcause_List_specs_1 = { - sizeof(struct RANfunctionsIDcause_List), - offsetof(struct RANfunctionsIDcause_List, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_RANfunctionsIDcause_List = { - "RANfunctionsIDcause-List", - "RANfunctionsIDcause-List", - &asn_OP_SEQUENCE_OF, - asn_DEF_RANfunctionsIDcause_List_tags_1, - sizeof(asn_DEF_RANfunctionsIDcause_List_tags_1) - /sizeof(asn_DEF_RANfunctionsIDcause_List_tags_1[0]), /* 1 */ - asn_DEF_RANfunctionsIDcause_List_tags_1, /* Same as above */ - sizeof(asn_DEF_RANfunctionsIDcause_List_tags_1) - /sizeof(asn_DEF_RANfunctionsIDcause_List_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_RANfunctionsIDcause_List_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_RANfunctionsIDcause_List_1, - 1, /* Single element */ - &asn_SPC_RANfunctionsIDcause_List_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/RANfunctionsIDcause-List.h b/e2sim/previous/ASN1c/RANfunctionsIDcause-List.h deleted file mode 100644 index cd1bdd9..0000000 --- a/e2sim/previous/ASN1c/RANfunctionsIDcause-List.h +++ /dev/null @@ -1,59 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "../../asnFiles/e2ap-v031.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _RANfunctionsIDcause_List_H_ -#define _RANfunctionsIDcause_List_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolIE_Single_Container; - -/* RANfunctionsIDcause-List */ -typedef struct RANfunctionsIDcause_List { - A_SEQUENCE_OF(struct ProtocolIE_Single_Container) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RANfunctionsIDcause_List_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RANfunctionsIDcause_List; - -#ifdef __cplusplus -} -#endif - -#endif /* _RANfunctionsIDcause_List_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/RICaction-Admitted-Item.c b/e2sim/previous/ASN1c/RICaction-Admitted-Item.c deleted file mode 100644 index 258e3ac..0000000 --- a/e2sim/previous/ASN1c/RICaction-Admitted-Item.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "../../asnFiles/e2ap-v031.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "RICaction-Admitted-Item.h" - -static asn_TYPE_member_t asn_MBR_RICaction_Admitted_Item_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICaction_Admitted_Item, ricActionID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RICactionID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ricActionID" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICaction_Admitted_Item_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICaction_Admitted_Item_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* ricActionID */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_RICaction_Admitted_Item_specs_1 = { - sizeof(struct RICaction_Admitted_Item), - offsetof(struct RICaction_Admitted_Item, _asn_ctx), - asn_MAP_RICaction_Admitted_Item_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICaction_Admitted_Item = { - "RICaction-Admitted-Item", - "RICaction-Admitted-Item", - &asn_OP_SEQUENCE, - asn_DEF_RICaction_Admitted_Item_tags_1, - sizeof(asn_DEF_RICaction_Admitted_Item_tags_1) - /sizeof(asn_DEF_RICaction_Admitted_Item_tags_1[0]), /* 1 */ - asn_DEF_RICaction_Admitted_Item_tags_1, /* Same as above */ - sizeof(asn_DEF_RICaction_Admitted_Item_tags_1) - /sizeof(asn_DEF_RICaction_Admitted_Item_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICaction_Admitted_Item_1, - 1, /* Elements count */ - &asn_SPC_RICaction_Admitted_Item_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/RICaction-Admitted-Item.h b/e2sim/previous/ASN1c/RICaction-Admitted-Item.h deleted file mode 100644 index c6e67f6..0000000 --- a/e2sim/previous/ASN1c/RICaction-Admitted-Item.h +++ /dev/null @@ -1,60 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "../../asnFiles/e2ap-v031.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _RICaction_Admitted_Item_H_ -#define _RICaction_Admitted_Item_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "RICactionID.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICaction-Admitted-Item */ -typedef struct RICaction_Admitted_Item { - RICactionID_t ricActionID; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICaction_Admitted_Item_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICaction_Admitted_Item; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICaction_Admitted_Item_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/RICaction-Admitted-List.c b/e2sim/previous/ASN1c/RICaction-Admitted-List.c deleted file mode 100644 index ddf8258..0000000 --- a/e2sim/previous/ASN1c/RICaction-Admitted-List.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "../../asnFiles/e2ap-v031.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "RICaction-Admitted-List.h" - -#include "ProtocolIE-Single-Container.h" -static asn_per_constraints_t asn_PER_type_RICaction_Admitted_List_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 4, 4, 1, 16 } /* (SIZE(1..16)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_RICaction_Admitted_List_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ProtocolIE_Single_Container_122P1, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICaction_Admitted_List_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_RICaction_Admitted_List_specs_1 = { - sizeof(struct RICaction_Admitted_List), - offsetof(struct RICaction_Admitted_List, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_RICaction_Admitted_List = { - "RICaction-Admitted-List", - "RICaction-Admitted-List", - &asn_OP_SEQUENCE_OF, - asn_DEF_RICaction_Admitted_List_tags_1, - sizeof(asn_DEF_RICaction_Admitted_List_tags_1) - /sizeof(asn_DEF_RICaction_Admitted_List_tags_1[0]), /* 1 */ - asn_DEF_RICaction_Admitted_List_tags_1, /* Same as above */ - sizeof(asn_DEF_RICaction_Admitted_List_tags_1) - /sizeof(asn_DEF_RICaction_Admitted_List_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_RICaction_Admitted_List_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_RICaction_Admitted_List_1, - 1, /* Single element */ - &asn_SPC_RICaction_Admitted_List_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/RICaction-Admitted-List.h b/e2sim/previous/ASN1c/RICaction-Admitted-List.h deleted file mode 100644 index 743695b..0000000 --- a/e2sim/previous/ASN1c/RICaction-Admitted-List.h +++ /dev/null @@ -1,59 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "../../asnFiles/e2ap-v031.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _RICaction_Admitted_List_H_ -#define _RICaction_Admitted_List_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolIE_Single_Container; - -/* RICaction-Admitted-List */ -typedef struct RICaction_Admitted_List { - A_SEQUENCE_OF(struct ProtocolIE_Single_Container) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICaction_Admitted_List_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICaction_Admitted_List; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICaction_Admitted_List_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/RICaction-NotAdmitted-Item.c b/e2sim/previous/ASN1c/RICaction-NotAdmitted-Item.c deleted file mode 100644 index f8f4ae1..0000000 --- a/e2sim/previous/ASN1c/RICaction-NotAdmitted-Item.c +++ /dev/null @@ -1,78 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "../../asnFiles/e2ap-v031.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "RICaction-NotAdmitted-Item.h" - -static asn_TYPE_member_t asn_MBR_RICaction_NotAdmitted_Item_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICaction_NotAdmitted_Item, ricActionID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RICactionID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ricActionID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICaction_NotAdmitted_Item, ricCause), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_RICcause, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ricCause" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICaction_NotAdmitted_Item_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICaction_NotAdmitted_Item_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ricActionID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ricCause */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_RICaction_NotAdmitted_Item_specs_1 = { - sizeof(struct RICaction_NotAdmitted_Item), - offsetof(struct RICaction_NotAdmitted_Item, _asn_ctx), - asn_MAP_RICaction_NotAdmitted_Item_tag2el_1, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 2, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICaction_NotAdmitted_Item = { - "RICaction-NotAdmitted-Item", - "RICaction-NotAdmitted-Item", - &asn_OP_SEQUENCE, - asn_DEF_RICaction_NotAdmitted_Item_tags_1, - sizeof(asn_DEF_RICaction_NotAdmitted_Item_tags_1) - /sizeof(asn_DEF_RICaction_NotAdmitted_Item_tags_1[0]), /* 1 */ - asn_DEF_RICaction_NotAdmitted_Item_tags_1, /* Same as above */ - sizeof(asn_DEF_RICaction_NotAdmitted_Item_tags_1) - /sizeof(asn_DEF_RICaction_NotAdmitted_Item_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICaction_NotAdmitted_Item_1, - 2, /* Elements count */ - &asn_SPC_RICaction_NotAdmitted_Item_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/RICaction-NotAdmitted-Item.h b/e2sim/previous/ASN1c/RICaction-NotAdmitted-Item.h deleted file mode 100644 index 0d8289f..0000000 --- a/e2sim/previous/ASN1c/RICaction-NotAdmitted-Item.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "../../asnFiles/e2ap-v031.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _RICaction_NotAdmitted_Item_H_ -#define _RICaction_NotAdmitted_Item_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "RICactionID.h" -#include "RICcause.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICaction-NotAdmitted-Item */ -typedef struct RICaction_NotAdmitted_Item { - RICactionID_t ricActionID; - RICcause_t ricCause; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICaction_NotAdmitted_Item_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICaction_NotAdmitted_Item; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICaction_NotAdmitted_Item_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/RICaction-NotAdmitted-List.c b/e2sim/previous/ASN1c/RICaction-NotAdmitted-List.c deleted file mode 100644 index e04f4ed..0000000 --- a/e2sim/previous/ASN1c/RICaction-NotAdmitted-List.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "../../asnFiles/e2ap-v031.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "RICaction-NotAdmitted-List.h" - -#include "ProtocolIE-Single-Container.h" -static asn_per_constraints_t asn_PER_type_RICaction_NotAdmitted_List_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 5, 5, 0, 16 } /* (SIZE(0..16)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_RICaction_NotAdmitted_List_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ProtocolIE_Single_Container_122P2, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICaction_NotAdmitted_List_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_RICaction_NotAdmitted_List_specs_1 = { - sizeof(struct RICaction_NotAdmitted_List), - offsetof(struct RICaction_NotAdmitted_List, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_RICaction_NotAdmitted_List = { - "RICaction-NotAdmitted-List", - "RICaction-NotAdmitted-List", - &asn_OP_SEQUENCE_OF, - asn_DEF_RICaction_NotAdmitted_List_tags_1, - sizeof(asn_DEF_RICaction_NotAdmitted_List_tags_1) - /sizeof(asn_DEF_RICaction_NotAdmitted_List_tags_1[0]), /* 1 */ - asn_DEF_RICaction_NotAdmitted_List_tags_1, /* Same as above */ - sizeof(asn_DEF_RICaction_NotAdmitted_List_tags_1) - /sizeof(asn_DEF_RICaction_NotAdmitted_List_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_RICaction_NotAdmitted_List_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_RICaction_NotAdmitted_List_1, - 1, /* Single element */ - &asn_SPC_RICaction_NotAdmitted_List_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/RICaction-NotAdmitted-List.h b/e2sim/previous/ASN1c/RICaction-NotAdmitted-List.h deleted file mode 100644 index 55c64c7..0000000 --- a/e2sim/previous/ASN1c/RICaction-NotAdmitted-List.h +++ /dev/null @@ -1,59 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "../../asnFiles/e2ap-v031.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _RICaction_NotAdmitted_List_H_ -#define _RICaction_NotAdmitted_List_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolIE_Single_Container; - -/* RICaction-NotAdmitted-List */ -typedef struct RICaction_NotAdmitted_List { - A_SEQUENCE_OF(struct ProtocolIE_Single_Container) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICaction_NotAdmitted_List_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICaction_NotAdmitted_List; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICaction_NotAdmitted_List_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/RICaction-ToBeSetup-Item.c b/e2sim/previous/ASN1c/RICaction-ToBeSetup-Item.c deleted file mode 100644 index 3fa5bfb..0000000 --- a/e2sim/previous/ASN1c/RICaction-ToBeSetup-Item.c +++ /dev/null @@ -1,101 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "../../asnFiles/e2ap-v031.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "RICaction-ToBeSetup-Item.h" - -#include "RICsubsequentAction.h" -static asn_TYPE_member_t asn_MBR_RICaction_ToBeSetup_Item_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICaction_ToBeSetup_Item, ricActionID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RICactionID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ricActionID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICaction_ToBeSetup_Item, ricActionType), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RICactionType, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ricActionType" - }, - { ATF_POINTER, 2, offsetof(struct RICaction_ToBeSetup_Item, ricActionDefinition), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RICactionDefinition, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ricActionDefinition" - }, - { ATF_POINTER, 1, offsetof(struct RICaction_ToBeSetup_Item, ricSubsequentAction), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RICsubsequentAction, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ricSubsequentAction" - }, -}; -static const int asn_MAP_RICaction_ToBeSetup_Item_oms_1[] = { 2, 3 }; -static const ber_tlv_tag_t asn_DEF_RICaction_ToBeSetup_Item_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICaction_ToBeSetup_Item_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ricActionID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ricActionType */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* ricActionDefinition */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* ricSubsequentAction */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_RICaction_ToBeSetup_Item_specs_1 = { - sizeof(struct RICaction_ToBeSetup_Item), - offsetof(struct RICaction_ToBeSetup_Item, _asn_ctx), - asn_MAP_RICaction_ToBeSetup_Item_tag2el_1, - 4, /* Count of tags in the map */ - asn_MAP_RICaction_ToBeSetup_Item_oms_1, /* Optional members */ - 2, 0, /* Root/Additions */ - 4, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICaction_ToBeSetup_Item = { - "RICaction-ToBeSetup-Item", - "RICaction-ToBeSetup-Item", - &asn_OP_SEQUENCE, - asn_DEF_RICaction_ToBeSetup_Item_tags_1, - sizeof(asn_DEF_RICaction_ToBeSetup_Item_tags_1) - /sizeof(asn_DEF_RICaction_ToBeSetup_Item_tags_1[0]), /* 1 */ - asn_DEF_RICaction_ToBeSetup_Item_tags_1, /* Same as above */ - sizeof(asn_DEF_RICaction_ToBeSetup_Item_tags_1) - /sizeof(asn_DEF_RICaction_ToBeSetup_Item_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICaction_ToBeSetup_Item_1, - 4, /* Elements count */ - &asn_SPC_RICaction_ToBeSetup_Item_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/RICaction-ToBeSetup-Item.h b/e2sim/previous/ASN1c/RICaction-ToBeSetup-Item.h deleted file mode 100644 index 9773c4d..0000000 --- a/e2sim/previous/ASN1c/RICaction-ToBeSetup-Item.h +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "../../asnFiles/e2ap-v031.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _RICaction_ToBeSetup_Item_H_ -#define _RICaction_ToBeSetup_Item_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "RICactionID.h" -#include "RICactionType.h" -#include "RICactionDefinition.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct RICsubsequentAction; - -/* RICaction-ToBeSetup-Item */ -typedef struct RICaction_ToBeSetup_Item { - RICactionID_t ricActionID; - RICactionType_t ricActionType; - RICactionDefinition_t *ricActionDefinition; /* OPTIONAL */ - struct RICsubsequentAction *ricSubsequentAction; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICaction_ToBeSetup_Item_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICaction_ToBeSetup_Item; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICaction_ToBeSetup_Item_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/RICactionDefinition.c b/e2sim/previous/ASN1c/RICactionDefinition.c deleted file mode 100644 index 0adcc63..0000000 --- a/e2sim/previous/ASN1c/RICactionDefinition.c +++ /dev/null @@ -1,49 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "../../asnFiles/e2ap-v031.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "RICactionDefinition.h" - -/* - * This type is implemented using OCTET_STRING, - * so here we adjust the DEF accordingly. - */ -static const ber_tlv_tag_t asn_DEF_RICactionDefinition_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RICactionDefinition = { - "RICactionDefinition", - "RICactionDefinition", - &asn_OP_OCTET_STRING, - asn_DEF_RICactionDefinition_tags_1, - sizeof(asn_DEF_RICactionDefinition_tags_1) - /sizeof(asn_DEF_RICactionDefinition_tags_1[0]), /* 1 */ - asn_DEF_RICactionDefinition_tags_1, /* Same as above */ - sizeof(asn_DEF_RICactionDefinition_tags_1) - /sizeof(asn_DEF_RICactionDefinition_tags_1[0]), /* 1 */ - { 0, 0, OCTET_STRING_constraint }, - 0, 0, /* No members */ - &asn_SPC_OCTET_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/RICactionDefinition.h b/e2sim/previous/ASN1c/RICactionDefinition.h deleted file mode 100644 index 3f21b0e..0000000 --- a/e2sim/previous/ASN1c/RICactionDefinition.h +++ /dev/null @@ -1,61 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "../../asnFiles/e2ap-v031.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _RICactionDefinition_H_ -#define _RICactionDefinition_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "OCTET_STRING.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICactionDefinition */ -typedef OCTET_STRING_t RICactionDefinition_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICactionDefinition; -asn_struct_free_f RICactionDefinition_free; -asn_struct_print_f RICactionDefinition_print; -asn_constr_check_f RICactionDefinition_constraint; -ber_type_decoder_f RICactionDefinition_decode_ber; -der_type_encoder_f RICactionDefinition_encode_der; -xer_type_decoder_f RICactionDefinition_decode_xer; -xer_type_encoder_f RICactionDefinition_encode_xer; -per_type_decoder_f RICactionDefinition_decode_uper; -per_type_encoder_f RICactionDefinition_encode_uper; -per_type_decoder_f RICactionDefinition_decode_aper; -per_type_encoder_f RICactionDefinition_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICactionDefinition_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/RICactionID.c b/e2sim/previous/ASN1c/RICactionID.c deleted file mode 100644 index 569e1d8..0000000 --- a/e2sim/previous/ASN1c/RICactionID.c +++ /dev/null @@ -1,79 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "../../asnFiles/e2ap-v031.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "RICactionID.h" - -int -RICactionID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 255)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using NativeInteger, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_RICactionID_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_RICactionID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RICactionID = { - "RICactionID", - "RICactionID", - &asn_OP_NativeInteger, - asn_DEF_RICactionID_tags_1, - sizeof(asn_DEF_RICactionID_tags_1) - /sizeof(asn_DEF_RICactionID_tags_1[0]), /* 1 */ - asn_DEF_RICactionID_tags_1, /* Same as above */ - sizeof(asn_DEF_RICactionID_tags_1) - /sizeof(asn_DEF_RICactionID_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_RICactionID_constr_1, RICactionID_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/previous/ASN1c/RICactionID.h b/e2sim/previous/ASN1c/RICactionID.h deleted file mode 100644 index 1c1b232..0000000 --- a/e2sim/previous/ASN1c/RICactionID.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "../../asnFiles/e2ap-v031.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _RICactionID_H_ -#define _RICactionID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeInteger.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICactionID */ -typedef long RICactionID_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_RICactionID_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_RICactionID; -asn_struct_free_f RICactionID_free; -asn_struct_print_f RICactionID_print; -asn_constr_check_f RICactionID_constraint; -ber_type_decoder_f RICactionID_decode_ber; -der_type_encoder_f RICactionID_encode_der; -xer_type_decoder_f RICactionID_decode_xer; -xer_type_encoder_f RICactionID_encode_xer; -per_type_decoder_f RICactionID_decode_uper; -per_type_encoder_f RICactionID_encode_uper; -per_type_decoder_f RICactionID_decode_aper; -per_type_encoder_f RICactionID_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICactionID_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/RICactionType.c b/e2sim/previous/ASN1c/RICactionType.c deleted file mode 100644 index feda0f6..0000000 --- a/e2sim/previous/ASN1c/RICactionType.c +++ /dev/null @@ -1,75 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "../../asnFiles/e2ap-v031.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "RICactionType.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_RICactionType_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 2 } /* (0..2,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_RICactionType_value2enum_1[] = { - { 0, 6, "report" }, - { 1, 6, "insert" }, - { 2, 6, "policy" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_RICactionType_enum2value_1[] = { - 1, /* insert(1) */ - 2, /* policy(2) */ - 0 /* report(0) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_RICactionType_specs_1 = { - asn_MAP_RICactionType_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_RICactionType_enum2value_1, /* N => "tag"; sorted by N */ - 3, /* Number of elements in the maps */ - 4, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_RICactionType_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RICactionType = { - "RICactionType", - "RICactionType", - &asn_OP_NativeEnumerated, - asn_DEF_RICactionType_tags_1, - sizeof(asn_DEF_RICactionType_tags_1) - /sizeof(asn_DEF_RICactionType_tags_1[0]), /* 1 */ - asn_DEF_RICactionType_tags_1, /* Same as above */ - sizeof(asn_DEF_RICactionType_tags_1) - /sizeof(asn_DEF_RICactionType_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_RICactionType_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_RICactionType_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/RICactionType.h b/e2sim/previous/ASN1c/RICactionType.h deleted file mode 100644 index b944075..0000000 --- a/e2sim/previous/ASN1c/RICactionType.h +++ /dev/null @@ -1,73 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "../../asnFiles/e2ap-v031.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _RICactionType_H_ -#define _RICactionType_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum RICactionType { - RICactionType_report = 0, - RICactionType_insert = 1, - RICactionType_policy = 2 - /* - * Enumeration is extensible - */ -} e_RICactionType; - -/* RICactionType */ -typedef long RICactionType_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_RICactionType_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_RICactionType; -extern const asn_INTEGER_specifics_t asn_SPC_RICactionType_specs_1; -asn_struct_free_f RICactionType_free; -asn_struct_print_f RICactionType_print; -asn_constr_check_f RICactionType_constraint; -ber_type_decoder_f RICactionType_decode_ber; -der_type_encoder_f RICactionType_encode_der; -xer_type_decoder_f RICactionType_decode_xer; -xer_type_encoder_f RICactionType_encode_xer; -per_type_decoder_f RICactionType_decode_uper; -per_type_encoder_f RICactionType_encode_uper; -per_type_decoder_f RICactionType_decode_aper; -per_type_encoder_f RICactionType_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICactionType_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/RICactions-ToBeSetup-List.c b/e2sim/previous/ASN1c/RICactions-ToBeSetup-List.c deleted file mode 100644 index 2995d90..0000000 --- a/e2sim/previous/ASN1c/RICactions-ToBeSetup-List.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "../../asnFiles/e2ap-v031.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "RICactions-ToBeSetup-List.h" - -#include "ProtocolIE-Single-Container.h" -asn_per_constraints_t asn_PER_type_RICactions_ToBeSetup_List_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 4, 4, 1, 16 } /* (SIZE(1..16)) */, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_RICactions_ToBeSetup_List_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ProtocolIE_Single_Container_122P0, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICactions_ToBeSetup_List_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_RICactions_ToBeSetup_List_specs_1 = { - sizeof(struct RICactions_ToBeSetup_List), - offsetof(struct RICactions_ToBeSetup_List, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_RICactions_ToBeSetup_List = { - "RICactions-ToBeSetup-List", - "RICactions-ToBeSetup-List", - &asn_OP_SEQUENCE_OF, - asn_DEF_RICactions_ToBeSetup_List_tags_1, - sizeof(asn_DEF_RICactions_ToBeSetup_List_tags_1) - /sizeof(asn_DEF_RICactions_ToBeSetup_List_tags_1[0]), /* 1 */ - asn_DEF_RICactions_ToBeSetup_List_tags_1, /* Same as above */ - sizeof(asn_DEF_RICactions_ToBeSetup_List_tags_1) - /sizeof(asn_DEF_RICactions_ToBeSetup_List_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_RICactions_ToBeSetup_List_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_RICactions_ToBeSetup_List_1, - 1, /* Single element */ - &asn_SPC_RICactions_ToBeSetup_List_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/RICactions-ToBeSetup-List.h b/e2sim/previous/ASN1c/RICactions-ToBeSetup-List.h deleted file mode 100644 index d92963b..0000000 --- a/e2sim/previous/ASN1c/RICactions-ToBeSetup-List.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "../../asnFiles/e2ap-v031.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _RICactions_ToBeSetup_List_H_ -#define _RICactions_ToBeSetup_List_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolIE_Single_Container; - -/* RICactions-ToBeSetup-List */ -typedef struct RICactions_ToBeSetup_List { - A_SEQUENCE_OF(struct ProtocolIE_Single_Container) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICactions_ToBeSetup_List_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICactions_ToBeSetup_List; -extern asn_SET_OF_specifics_t asn_SPC_RICactions_ToBeSetup_List_specs_1; -extern asn_TYPE_member_t asn_MBR_RICactions_ToBeSetup_List_1[1]; -extern asn_per_constraints_t asn_PER_type_RICactions_ToBeSetup_List_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICactions_ToBeSetup_List_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/RICcallProcessID.c b/e2sim/previous/ASN1c/RICcallProcessID.c deleted file mode 100644 index 3f33c46..0000000 --- a/e2sim/previous/ASN1c/RICcallProcessID.c +++ /dev/null @@ -1,49 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "../../asnFiles/e2ap-v031.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "RICcallProcessID.h" - -/* - * This type is implemented using OCTET_STRING, - * so here we adjust the DEF accordingly. - */ -static const ber_tlv_tag_t asn_DEF_RICcallProcessID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RICcallProcessID = { - "RICcallProcessID", - "RICcallProcessID", - &asn_OP_OCTET_STRING, - asn_DEF_RICcallProcessID_tags_1, - sizeof(asn_DEF_RICcallProcessID_tags_1) - /sizeof(asn_DEF_RICcallProcessID_tags_1[0]), /* 1 */ - asn_DEF_RICcallProcessID_tags_1, /* Same as above */ - sizeof(asn_DEF_RICcallProcessID_tags_1) - /sizeof(asn_DEF_RICcallProcessID_tags_1[0]), /* 1 */ - { 0, 0, OCTET_STRING_constraint }, - 0, 0, /* No members */ - &asn_SPC_OCTET_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/RICcallProcessID.h b/e2sim/previous/ASN1c/RICcallProcessID.h deleted file mode 100644 index 0c46518..0000000 --- a/e2sim/previous/ASN1c/RICcallProcessID.h +++ /dev/null @@ -1,61 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "../../asnFiles/e2ap-v031.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _RICcallProcessID_H_ -#define _RICcallProcessID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "OCTET_STRING.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICcallProcessID */ -typedef OCTET_STRING_t RICcallProcessID_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICcallProcessID; -asn_struct_free_f RICcallProcessID_free; -asn_struct_print_f RICcallProcessID_print; -asn_constr_check_f RICcallProcessID_constraint; -ber_type_decoder_f RICcallProcessID_decode_ber; -der_type_encoder_f RICcallProcessID_encode_der; -xer_type_decoder_f RICcallProcessID_decode_xer; -xer_type_encoder_f RICcallProcessID_encode_xer; -per_type_decoder_f RICcallProcessID_decode_uper; -per_type_encoder_f RICcallProcessID_encode_uper; -per_type_decoder_f RICcallProcessID_decode_aper; -per_type_encoder_f RICcallProcessID_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICcallProcessID_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/RICcause.c b/e2sim/previous/ASN1c/RICcause.c deleted file mode 100644 index 3844c1d..0000000 --- a/e2sim/previous/ASN1c/RICcause.c +++ /dev/null @@ -1,110 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "../../asnFiles/e2ap-v031.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "RICcause.h" - -asn_per_constraints_t asn_PER_type_RICcause_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 4 } /* (0..4,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_RICcause_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICcause, choice.radioNetwork), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_CauseRadioNetwork, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "radioNetwork" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICcause, choice.transport), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_CauseTransport, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "transport" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICcause, choice.protocol), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_CauseProtocol, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocol" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICcause, choice.misc), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_CauseMisc, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "misc" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICcause, choice.ric), - (ASN_TAG_CLASS_CONTEXT | (4 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_CauseRIC, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ric" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_RICcause_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* radioNetwork */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* transport */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* protocol */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* misc */ - { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* ric */ -}; -asn_CHOICE_specifics_t asn_SPC_RICcause_specs_1 = { - sizeof(struct RICcause), - offsetof(struct RICcause, _asn_ctx), - offsetof(struct RICcause, present), - sizeof(((struct RICcause *)0)->present), - asn_MAP_RICcause_tag2el_1, - 5, /* Count of tags in the map */ - 0, 0, - 5 /* Extensions start */ -}; -asn_TYPE_descriptor_t asn_DEF_RICcause = { - "RICcause", - "RICcause", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, &asn_PER_type_RICcause_constr_1, CHOICE_constraint }, - asn_MBR_RICcause_1, - 5, /* Elements count */ - &asn_SPC_RICcause_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/RICcause.h b/e2sim/previous/ASN1c/RICcause.h deleted file mode 100644 index c3daf1c..0000000 --- a/e2sim/previous/ASN1c/RICcause.h +++ /dev/null @@ -1,86 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "../../asnFiles/e2ap-v031.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _RICcause_H_ -#define _RICcause_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "CauseRadioNetwork.h" -#include "CauseTransport.h" -#include "CauseProtocol.h" -#include "CauseMisc.h" -#include "CauseRIC.h" -#include "constr_CHOICE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum RICcause_PR { - RICcause_PR_NOTHING, /* No components present */ - RICcause_PR_radioNetwork, - RICcause_PR_transport, - RICcause_PR_protocol, - RICcause_PR_misc, - RICcause_PR_ric - /* Extensions may appear below */ - -} RICcause_PR; - -/* RICcause */ -typedef struct RICcause { - RICcause_PR present; - union RICcause_u { - CauseRadioNetwork_t radioNetwork; - CauseTransport_t transport; - CauseProtocol_t protocol; - CauseMisc_t misc; - CauseRIC_t ric; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICcause_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICcause; -extern asn_CHOICE_specifics_t asn_SPC_RICcause_specs_1; -extern asn_TYPE_member_t asn_MBR_RICcause_1[5]; -extern asn_per_constraints_t asn_PER_type_RICcause_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICcause_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/RICcontrolAckRequest.c b/e2sim/previous/ASN1c/RICcontrolAckRequest.c deleted file mode 100644 index 1a5a1b2..0000000 --- a/e2sim/previous/ASN1c/RICcontrolAckRequest.c +++ /dev/null @@ -1,75 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "../../asnFiles/e2ap-v031.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "RICcontrolAckRequest.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -static asn_per_constraints_t asn_PER_type_RICcontrolAckRequest_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 2 } /* (0..2,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_RICcontrolAckRequest_value2enum_1[] = { - { 0, 5, "noAck" }, - { 1, 3, "ack" }, - { 2, 4, "nAck" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_RICcontrolAckRequest_enum2value_1[] = { - 1, /* ack(1) */ - 2, /* nAck(2) */ - 0 /* noAck(0) */ - /* This list is extensible */ -}; -static const asn_INTEGER_specifics_t asn_SPC_RICcontrolAckRequest_specs_1 = { - asn_MAP_RICcontrolAckRequest_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_RICcontrolAckRequest_enum2value_1, /* N => "tag"; sorted by N */ - 3, /* Number of elements in the maps */ - 4, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_RICcontrolAckRequest_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RICcontrolAckRequest = { - "RICcontrolAckRequest", - "RICcontrolAckRequest", - &asn_OP_NativeEnumerated, - asn_DEF_RICcontrolAckRequest_tags_1, - sizeof(asn_DEF_RICcontrolAckRequest_tags_1) - /sizeof(asn_DEF_RICcontrolAckRequest_tags_1[0]), /* 1 */ - asn_DEF_RICcontrolAckRequest_tags_1, /* Same as above */ - sizeof(asn_DEF_RICcontrolAckRequest_tags_1) - /sizeof(asn_DEF_RICcontrolAckRequest_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_RICcontrolAckRequest_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_RICcontrolAckRequest_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/RICcontrolAckRequest.h b/e2sim/previous/ASN1c/RICcontrolAckRequest.h deleted file mode 100644 index c8d778f..0000000 --- a/e2sim/previous/ASN1c/RICcontrolAckRequest.h +++ /dev/null @@ -1,71 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "../../asnFiles/e2ap-v031.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _RICcontrolAckRequest_H_ -#define _RICcontrolAckRequest_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum RICcontrolAckRequest { - RICcontrolAckRequest_noAck = 0, - RICcontrolAckRequest_ack = 1, - RICcontrolAckRequest_nAck = 2 - /* - * Enumeration is extensible - */ -} e_RICcontrolAckRequest; - -/* RICcontrolAckRequest */ -typedef long RICcontrolAckRequest_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICcontrolAckRequest; -asn_struct_free_f RICcontrolAckRequest_free; -asn_struct_print_f RICcontrolAckRequest_print; -asn_constr_check_f RICcontrolAckRequest_constraint; -ber_type_decoder_f RICcontrolAckRequest_decode_ber; -der_type_encoder_f RICcontrolAckRequest_encode_der; -xer_type_decoder_f RICcontrolAckRequest_decode_xer; -xer_type_encoder_f RICcontrolAckRequest_encode_xer; -per_type_decoder_f RICcontrolAckRequest_decode_uper; -per_type_encoder_f RICcontrolAckRequest_encode_uper; -per_type_decoder_f RICcontrolAckRequest_decode_aper; -per_type_encoder_f RICcontrolAckRequest_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICcontrolAckRequest_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/RICcontrolAcknowledge.c b/e2sim/previous/ASN1c/RICcontrolAcknowledge.c deleted file mode 100644 index 2359573..0000000 --- a/e2sim/previous/ASN1c/RICcontrolAcknowledge.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "../../asnFiles/e2ap-v031.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "RICcontrolAcknowledge.h" - -asn_TYPE_member_t asn_MBR_RICcontrolAcknowledge_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolAcknowledge, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_119P8, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICcontrolAcknowledge_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICcontrolAcknowledge_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICcontrolAcknowledge_specs_1 = { - sizeof(struct RICcontrolAcknowledge), - offsetof(struct RICcontrolAcknowledge, _asn_ctx), - asn_MAP_RICcontrolAcknowledge_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICcontrolAcknowledge = { - "RICcontrolAcknowledge", - "RICcontrolAcknowledge", - &asn_OP_SEQUENCE, - asn_DEF_RICcontrolAcknowledge_tags_1, - sizeof(asn_DEF_RICcontrolAcknowledge_tags_1) - /sizeof(asn_DEF_RICcontrolAcknowledge_tags_1[0]), /* 1 */ - asn_DEF_RICcontrolAcknowledge_tags_1, /* Same as above */ - sizeof(asn_DEF_RICcontrolAcknowledge_tags_1) - /sizeof(asn_DEF_RICcontrolAcknowledge_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICcontrolAcknowledge_1, - 1, /* Elements count */ - &asn_SPC_RICcontrolAcknowledge_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/RICcontrolAcknowledge.h b/e2sim/previous/ASN1c/RICcontrolAcknowledge.h deleted file mode 100644 index a3d4ab9..0000000 --- a/e2sim/previous/ASN1c/RICcontrolAcknowledge.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "../../asnFiles/e2ap-v031.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _RICcontrolAcknowledge_H_ -#define _RICcontrolAcknowledge_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICcontrolAcknowledge */ -typedef struct RICcontrolAcknowledge { - ProtocolIE_Container_119P8_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICcontrolAcknowledge_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICcontrolAcknowledge; -extern asn_SEQUENCE_specifics_t asn_SPC_RICcontrolAcknowledge_specs_1; -extern asn_TYPE_member_t asn_MBR_RICcontrolAcknowledge_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICcontrolAcknowledge_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/RICcontrolFailure.c b/e2sim/previous/ASN1c/RICcontrolFailure.c deleted file mode 100644 index 2e61699..0000000 --- a/e2sim/previous/ASN1c/RICcontrolFailure.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "../../asnFiles/e2ap-v031.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "RICcontrolFailure.h" - -asn_TYPE_member_t asn_MBR_RICcontrolFailure_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolFailure, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_119P9, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICcontrolFailure_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICcontrolFailure_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICcontrolFailure_specs_1 = { - sizeof(struct RICcontrolFailure), - offsetof(struct RICcontrolFailure, _asn_ctx), - asn_MAP_RICcontrolFailure_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICcontrolFailure = { - "RICcontrolFailure", - "RICcontrolFailure", - &asn_OP_SEQUENCE, - asn_DEF_RICcontrolFailure_tags_1, - sizeof(asn_DEF_RICcontrolFailure_tags_1) - /sizeof(asn_DEF_RICcontrolFailure_tags_1[0]), /* 1 */ - asn_DEF_RICcontrolFailure_tags_1, /* Same as above */ - sizeof(asn_DEF_RICcontrolFailure_tags_1) - /sizeof(asn_DEF_RICcontrolFailure_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICcontrolFailure_1, - 1, /* Elements count */ - &asn_SPC_RICcontrolFailure_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/RICcontrolFailure.h b/e2sim/previous/ASN1c/RICcontrolFailure.h deleted file mode 100644 index 4ae7507..0000000 --- a/e2sim/previous/ASN1c/RICcontrolFailure.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "../../asnFiles/e2ap-v031.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _RICcontrolFailure_H_ -#define _RICcontrolFailure_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICcontrolFailure */ -typedef struct RICcontrolFailure { - ProtocolIE_Container_119P9_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICcontrolFailure_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICcontrolFailure; -extern asn_SEQUENCE_specifics_t asn_SPC_RICcontrolFailure_specs_1; -extern asn_TYPE_member_t asn_MBR_RICcontrolFailure_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICcontrolFailure_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/RICcontrolHeader.c b/e2sim/previous/ASN1c/RICcontrolHeader.c deleted file mode 100644 index 6e9115a..0000000 --- a/e2sim/previous/ASN1c/RICcontrolHeader.c +++ /dev/null @@ -1,49 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "../../asnFiles/e2ap-v031.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "RICcontrolHeader.h" - -/* - * This type is implemented using OCTET_STRING, - * so here we adjust the DEF accordingly. - */ -static const ber_tlv_tag_t asn_DEF_RICcontrolHeader_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RICcontrolHeader = { - "RICcontrolHeader", - "RICcontrolHeader", - &asn_OP_OCTET_STRING, - asn_DEF_RICcontrolHeader_tags_1, - sizeof(asn_DEF_RICcontrolHeader_tags_1) - /sizeof(asn_DEF_RICcontrolHeader_tags_1[0]), /* 1 */ - asn_DEF_RICcontrolHeader_tags_1, /* Same as above */ - sizeof(asn_DEF_RICcontrolHeader_tags_1) - /sizeof(asn_DEF_RICcontrolHeader_tags_1[0]), /* 1 */ - { 0, 0, OCTET_STRING_constraint }, - 0, 0, /* No members */ - &asn_SPC_OCTET_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/RICcontrolHeader.h b/e2sim/previous/ASN1c/RICcontrolHeader.h deleted file mode 100644 index d356e40..0000000 --- a/e2sim/previous/ASN1c/RICcontrolHeader.h +++ /dev/null @@ -1,61 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "../../asnFiles/e2ap-v031.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _RICcontrolHeader_H_ -#define _RICcontrolHeader_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "OCTET_STRING.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICcontrolHeader */ -typedef OCTET_STRING_t RICcontrolHeader_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICcontrolHeader; -asn_struct_free_f RICcontrolHeader_free; -asn_struct_print_f RICcontrolHeader_print; -asn_constr_check_f RICcontrolHeader_constraint; -ber_type_decoder_f RICcontrolHeader_decode_ber; -der_type_encoder_f RICcontrolHeader_encode_der; -xer_type_decoder_f RICcontrolHeader_decode_xer; -xer_type_encoder_f RICcontrolHeader_encode_xer; -per_type_decoder_f RICcontrolHeader_decode_uper; -per_type_encoder_f RICcontrolHeader_encode_uper; -per_type_decoder_f RICcontrolHeader_decode_aper; -per_type_encoder_f RICcontrolHeader_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICcontrolHeader_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/RICcontrolMessage.c b/e2sim/previous/ASN1c/RICcontrolMessage.c deleted file mode 100644 index 35d5276..0000000 --- a/e2sim/previous/ASN1c/RICcontrolMessage.c +++ /dev/null @@ -1,49 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "../../asnFiles/e2ap-v031.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "RICcontrolMessage.h" - -/* - * This type is implemented using OCTET_STRING, - * so here we adjust the DEF accordingly. - */ -static const ber_tlv_tag_t asn_DEF_RICcontrolMessage_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RICcontrolMessage = { - "RICcontrolMessage", - "RICcontrolMessage", - &asn_OP_OCTET_STRING, - asn_DEF_RICcontrolMessage_tags_1, - sizeof(asn_DEF_RICcontrolMessage_tags_1) - /sizeof(asn_DEF_RICcontrolMessage_tags_1[0]), /* 1 */ - asn_DEF_RICcontrolMessage_tags_1, /* Same as above */ - sizeof(asn_DEF_RICcontrolMessage_tags_1) - /sizeof(asn_DEF_RICcontrolMessage_tags_1[0]), /* 1 */ - { 0, 0, OCTET_STRING_constraint }, - 0, 0, /* No members */ - &asn_SPC_OCTET_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/RICcontrolMessage.h b/e2sim/previous/ASN1c/RICcontrolMessage.h deleted file mode 100644 index 1725523..0000000 --- a/e2sim/previous/ASN1c/RICcontrolMessage.h +++ /dev/null @@ -1,61 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "../../asnFiles/e2ap-v031.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _RICcontrolMessage_H_ -#define _RICcontrolMessage_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "OCTET_STRING.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICcontrolMessage */ -typedef OCTET_STRING_t RICcontrolMessage_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICcontrolMessage; -asn_struct_free_f RICcontrolMessage_free; -asn_struct_print_f RICcontrolMessage_print; -asn_constr_check_f RICcontrolMessage_constraint; -ber_type_decoder_f RICcontrolMessage_decode_ber; -der_type_encoder_f RICcontrolMessage_encode_der; -xer_type_decoder_f RICcontrolMessage_decode_xer; -xer_type_encoder_f RICcontrolMessage_encode_xer; -per_type_decoder_f RICcontrolMessage_decode_uper; -per_type_encoder_f RICcontrolMessage_encode_uper; -per_type_decoder_f RICcontrolMessage_decode_aper; -per_type_encoder_f RICcontrolMessage_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICcontrolMessage_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/RICcontrolRequest.c b/e2sim/previous/ASN1c/RICcontrolRequest.c deleted file mode 100644 index ca9f719..0000000 --- a/e2sim/previous/ASN1c/RICcontrolRequest.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "../../asnFiles/e2ap-v031.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "RICcontrolRequest.h" - -asn_TYPE_member_t asn_MBR_RICcontrolRequest_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolRequest, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_119P7, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICcontrolRequest_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICcontrolRequest_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICcontrolRequest_specs_1 = { - sizeof(struct RICcontrolRequest), - offsetof(struct RICcontrolRequest, _asn_ctx), - asn_MAP_RICcontrolRequest_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICcontrolRequest = { - "RICcontrolRequest", - "RICcontrolRequest", - &asn_OP_SEQUENCE, - asn_DEF_RICcontrolRequest_tags_1, - sizeof(asn_DEF_RICcontrolRequest_tags_1) - /sizeof(asn_DEF_RICcontrolRequest_tags_1[0]), /* 1 */ - asn_DEF_RICcontrolRequest_tags_1, /* Same as above */ - sizeof(asn_DEF_RICcontrolRequest_tags_1) - /sizeof(asn_DEF_RICcontrolRequest_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICcontrolRequest_1, - 1, /* Elements count */ - &asn_SPC_RICcontrolRequest_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/RICcontrolRequest.h b/e2sim/previous/ASN1c/RICcontrolRequest.h deleted file mode 100644 index a6bf5c5..0000000 --- a/e2sim/previous/ASN1c/RICcontrolRequest.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "../../asnFiles/e2ap-v031.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _RICcontrolRequest_H_ -#define _RICcontrolRequest_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICcontrolRequest */ -typedef struct RICcontrolRequest { - ProtocolIE_Container_119P7_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICcontrolRequest_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICcontrolRequest; -extern asn_SEQUENCE_specifics_t asn_SPC_RICcontrolRequest_specs_1; -extern asn_TYPE_member_t asn_MBR_RICcontrolRequest_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICcontrolRequest_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/RICcontrolStatus.c b/e2sim/previous/ASN1c/RICcontrolStatus.c deleted file mode 100644 index 1179d09..0000000 --- a/e2sim/previous/ASN1c/RICcontrolStatus.c +++ /dev/null @@ -1,75 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "../../asnFiles/e2ap-v031.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "RICcontrolStatus.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -static asn_per_constraints_t asn_PER_type_RICcontrolStatus_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 2 } /* (0..2,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_RICcontrolStatus_value2enum_1[] = { - { 0, 7, "success" }, - { 1, 8, "rejected" }, - { 2, 6, "failed" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_RICcontrolStatus_enum2value_1[] = { - 2, /* failed(2) */ - 1, /* rejected(1) */ - 0 /* success(0) */ - /* This list is extensible */ -}; -static const asn_INTEGER_specifics_t asn_SPC_RICcontrolStatus_specs_1 = { - asn_MAP_RICcontrolStatus_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_RICcontrolStatus_enum2value_1, /* N => "tag"; sorted by N */ - 3, /* Number of elements in the maps */ - 4, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_RICcontrolStatus_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RICcontrolStatus = { - "RICcontrolStatus", - "RICcontrolStatus", - &asn_OP_NativeEnumerated, - asn_DEF_RICcontrolStatus_tags_1, - sizeof(asn_DEF_RICcontrolStatus_tags_1) - /sizeof(asn_DEF_RICcontrolStatus_tags_1[0]), /* 1 */ - asn_DEF_RICcontrolStatus_tags_1, /* Same as above */ - sizeof(asn_DEF_RICcontrolStatus_tags_1) - /sizeof(asn_DEF_RICcontrolStatus_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_RICcontrolStatus_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_RICcontrolStatus_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/RICcontrolStatus.h b/e2sim/previous/ASN1c/RICcontrolStatus.h deleted file mode 100644 index 3bf16a7..0000000 --- a/e2sim/previous/ASN1c/RICcontrolStatus.h +++ /dev/null @@ -1,71 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "../../asnFiles/e2ap-v031.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _RICcontrolStatus_H_ -#define _RICcontrolStatus_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum RICcontrolStatus { - RICcontrolStatus_success = 0, - RICcontrolStatus_rejected = 1, - RICcontrolStatus_failed = 2 - /* - * Enumeration is extensible - */ -} e_RICcontrolStatus; - -/* RICcontrolStatus */ -typedef long RICcontrolStatus_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICcontrolStatus; -asn_struct_free_f RICcontrolStatus_free; -asn_struct_print_f RICcontrolStatus_print; -asn_constr_check_f RICcontrolStatus_constraint; -ber_type_decoder_f RICcontrolStatus_decode_ber; -der_type_encoder_f RICcontrolStatus_encode_der; -xer_type_decoder_f RICcontrolStatus_decode_xer; -xer_type_encoder_f RICcontrolStatus_encode_xer; -per_type_decoder_f RICcontrolStatus_decode_uper; -per_type_encoder_f RICcontrolStatus_encode_uper; -per_type_decoder_f RICcontrolStatus_decode_aper; -per_type_encoder_f RICcontrolStatus_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICcontrolStatus_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/RICeventTriggerDefinition.c b/e2sim/previous/ASN1c/RICeventTriggerDefinition.c deleted file mode 100644 index 864c3ff..0000000 --- a/e2sim/previous/ASN1c/RICeventTriggerDefinition.c +++ /dev/null @@ -1,49 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "../../asnFiles/e2ap-v031.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "RICeventTriggerDefinition.h" - -/* - * This type is implemented using OCTET_STRING, - * so here we adjust the DEF accordingly. - */ -static const ber_tlv_tag_t asn_DEF_RICeventTriggerDefinition_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RICeventTriggerDefinition = { - "RICeventTriggerDefinition", - "RICeventTriggerDefinition", - &asn_OP_OCTET_STRING, - asn_DEF_RICeventTriggerDefinition_tags_1, - sizeof(asn_DEF_RICeventTriggerDefinition_tags_1) - /sizeof(asn_DEF_RICeventTriggerDefinition_tags_1[0]), /* 1 */ - asn_DEF_RICeventTriggerDefinition_tags_1, /* Same as above */ - sizeof(asn_DEF_RICeventTriggerDefinition_tags_1) - /sizeof(asn_DEF_RICeventTriggerDefinition_tags_1[0]), /* 1 */ - { 0, 0, OCTET_STRING_constraint }, - 0, 0, /* No members */ - &asn_SPC_OCTET_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/RICeventTriggerDefinition.h b/e2sim/previous/ASN1c/RICeventTriggerDefinition.h deleted file mode 100644 index 7c8790d..0000000 --- a/e2sim/previous/ASN1c/RICeventTriggerDefinition.h +++ /dev/null @@ -1,61 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "../../asnFiles/e2ap-v031.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _RICeventTriggerDefinition_H_ -#define _RICeventTriggerDefinition_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "OCTET_STRING.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICeventTriggerDefinition */ -typedef OCTET_STRING_t RICeventTriggerDefinition_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICeventTriggerDefinition; -asn_struct_free_f RICeventTriggerDefinition_free; -asn_struct_print_f RICeventTriggerDefinition_print; -asn_constr_check_f RICeventTriggerDefinition_constraint; -ber_type_decoder_f RICeventTriggerDefinition_decode_ber; -der_type_encoder_f RICeventTriggerDefinition_encode_der; -xer_type_decoder_f RICeventTriggerDefinition_decode_xer; -xer_type_encoder_f RICeventTriggerDefinition_encode_xer; -per_type_decoder_f RICeventTriggerDefinition_decode_uper; -per_type_encoder_f RICeventTriggerDefinition_encode_uper; -per_type_decoder_f RICeventTriggerDefinition_decode_aper; -per_type_encoder_f RICeventTriggerDefinition_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICeventTriggerDefinition_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/RICindication.c b/e2sim/previous/ASN1c/RICindication.c deleted file mode 100644 index 5c41fd6..0000000 --- a/e2sim/previous/ASN1c/RICindication.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "../../asnFiles/e2ap-v031.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "RICindication.h" - -asn_TYPE_member_t asn_MBR_RICindication_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICindication, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_119P6, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICindication_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICindication_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICindication_specs_1 = { - sizeof(struct RICindication), - offsetof(struct RICindication, _asn_ctx), - asn_MAP_RICindication_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICindication = { - "RICindication", - "RICindication", - &asn_OP_SEQUENCE, - asn_DEF_RICindication_tags_1, - sizeof(asn_DEF_RICindication_tags_1) - /sizeof(asn_DEF_RICindication_tags_1[0]), /* 1 */ - asn_DEF_RICindication_tags_1, /* Same as above */ - sizeof(asn_DEF_RICindication_tags_1) - /sizeof(asn_DEF_RICindication_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICindication_1, - 1, /* Elements count */ - &asn_SPC_RICindication_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/RICindication.h b/e2sim/previous/ASN1c/RICindication.h deleted file mode 100644 index c8a0982..0000000 --- a/e2sim/previous/ASN1c/RICindication.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "../../asnFiles/e2ap-v031.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _RICindication_H_ -#define _RICindication_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICindication */ -typedef struct RICindication { - ProtocolIE_Container_119P6_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICindication_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICindication; -extern asn_SEQUENCE_specifics_t asn_SPC_RICindication_specs_1; -extern asn_TYPE_member_t asn_MBR_RICindication_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICindication_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/RICindicationHeader.c b/e2sim/previous/ASN1c/RICindicationHeader.c deleted file mode 100644 index 5188309..0000000 --- a/e2sim/previous/ASN1c/RICindicationHeader.c +++ /dev/null @@ -1,49 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "../../asnFiles/e2ap-v031.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "RICindicationHeader.h" - -/* - * This type is implemented using OCTET_STRING, - * so here we adjust the DEF accordingly. - */ -static const ber_tlv_tag_t asn_DEF_RICindicationHeader_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RICindicationHeader = { - "RICindicationHeader", - "RICindicationHeader", - &asn_OP_OCTET_STRING, - asn_DEF_RICindicationHeader_tags_1, - sizeof(asn_DEF_RICindicationHeader_tags_1) - /sizeof(asn_DEF_RICindicationHeader_tags_1[0]), /* 1 */ - asn_DEF_RICindicationHeader_tags_1, /* Same as above */ - sizeof(asn_DEF_RICindicationHeader_tags_1) - /sizeof(asn_DEF_RICindicationHeader_tags_1[0]), /* 1 */ - { 0, 0, OCTET_STRING_constraint }, - 0, 0, /* No members */ - &asn_SPC_OCTET_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/RICindicationHeader.h b/e2sim/previous/ASN1c/RICindicationHeader.h deleted file mode 100644 index 628460a..0000000 --- a/e2sim/previous/ASN1c/RICindicationHeader.h +++ /dev/null @@ -1,61 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "../../asnFiles/e2ap-v031.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _RICindicationHeader_H_ -#define _RICindicationHeader_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "OCTET_STRING.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICindicationHeader */ -typedef OCTET_STRING_t RICindicationHeader_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICindicationHeader; -asn_struct_free_f RICindicationHeader_free; -asn_struct_print_f RICindicationHeader_print; -asn_constr_check_f RICindicationHeader_constraint; -ber_type_decoder_f RICindicationHeader_decode_ber; -der_type_encoder_f RICindicationHeader_encode_der; -xer_type_decoder_f RICindicationHeader_decode_xer; -xer_type_encoder_f RICindicationHeader_encode_xer; -per_type_decoder_f RICindicationHeader_decode_uper; -per_type_encoder_f RICindicationHeader_encode_uper; -per_type_decoder_f RICindicationHeader_decode_aper; -per_type_encoder_f RICindicationHeader_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICindicationHeader_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/RICindicationMessage.c b/e2sim/previous/ASN1c/RICindicationMessage.c deleted file mode 100644 index aaa95c7..0000000 --- a/e2sim/previous/ASN1c/RICindicationMessage.c +++ /dev/null @@ -1,49 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "../../asnFiles/e2ap-v031.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "RICindicationMessage.h" - -/* - * This type is implemented using OCTET_STRING, - * so here we adjust the DEF accordingly. - */ -static const ber_tlv_tag_t asn_DEF_RICindicationMessage_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RICindicationMessage = { - "RICindicationMessage", - "RICindicationMessage", - &asn_OP_OCTET_STRING, - asn_DEF_RICindicationMessage_tags_1, - sizeof(asn_DEF_RICindicationMessage_tags_1) - /sizeof(asn_DEF_RICindicationMessage_tags_1[0]), /* 1 */ - asn_DEF_RICindicationMessage_tags_1, /* Same as above */ - sizeof(asn_DEF_RICindicationMessage_tags_1) - /sizeof(asn_DEF_RICindicationMessage_tags_1[0]), /* 1 */ - { 0, 0, OCTET_STRING_constraint }, - 0, 0, /* No members */ - &asn_SPC_OCTET_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/RICindicationMessage.h b/e2sim/previous/ASN1c/RICindicationMessage.h deleted file mode 100644 index 4d0efd6..0000000 --- a/e2sim/previous/ASN1c/RICindicationMessage.h +++ /dev/null @@ -1,61 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "../../asnFiles/e2ap-v031.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _RICindicationMessage_H_ -#define _RICindicationMessage_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "OCTET_STRING.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICindicationMessage */ -typedef OCTET_STRING_t RICindicationMessage_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICindicationMessage; -asn_struct_free_f RICindicationMessage_free; -asn_struct_print_f RICindicationMessage_print; -asn_constr_check_f RICindicationMessage_constraint; -ber_type_decoder_f RICindicationMessage_decode_ber; -der_type_encoder_f RICindicationMessage_encode_der; -xer_type_decoder_f RICindicationMessage_decode_xer; -xer_type_encoder_f RICindicationMessage_encode_xer; -per_type_decoder_f RICindicationMessage_decode_uper; -per_type_encoder_f RICindicationMessage_encode_uper; -per_type_decoder_f RICindicationMessage_decode_aper; -per_type_encoder_f RICindicationMessage_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICindicationMessage_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/RICindicationSN.c b/e2sim/previous/ASN1c/RICindicationSN.c deleted file mode 100644 index d9e2e53..0000000 --- a/e2sim/previous/ASN1c/RICindicationSN.c +++ /dev/null @@ -1,79 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "../../asnFiles/e2ap-v031.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "RICindicationSN.h" - -int -RICindicationSN_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using NativeInteger, - * so here we adjust the DEF accordingly. - */ -static asn_per_constraints_t asn_PER_type_RICindicationSN_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_RICindicationSN_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RICindicationSN = { - "RICindicationSN", - "RICindicationSN", - &asn_OP_NativeInteger, - asn_DEF_RICindicationSN_tags_1, - sizeof(asn_DEF_RICindicationSN_tags_1) - /sizeof(asn_DEF_RICindicationSN_tags_1[0]), /* 1 */ - asn_DEF_RICindicationSN_tags_1, /* Same as above */ - sizeof(asn_DEF_RICindicationSN_tags_1) - /sizeof(asn_DEF_RICindicationSN_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_RICindicationSN_constr_1, RICindicationSN_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/previous/ASN1c/RICindicationSN.h b/e2sim/previous/ASN1c/RICindicationSN.h deleted file mode 100644 index 74ab9c1..0000000 --- a/e2sim/previous/ASN1c/RICindicationSN.h +++ /dev/null @@ -1,61 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "../../asnFiles/e2ap-v031.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _RICindicationSN_H_ -#define _RICindicationSN_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeInteger.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICindicationSN */ -typedef long RICindicationSN_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICindicationSN; -asn_struct_free_f RICindicationSN_free; -asn_struct_print_f RICindicationSN_print; -asn_constr_check_f RICindicationSN_constraint; -ber_type_decoder_f RICindicationSN_decode_ber; -der_type_encoder_f RICindicationSN_encode_der; -xer_type_decoder_f RICindicationSN_decode_xer; -xer_type_encoder_f RICindicationSN_encode_xer; -per_type_decoder_f RICindicationSN_decode_uper; -per_type_encoder_f RICindicationSN_encode_uper; -per_type_decoder_f RICindicationSN_decode_aper; -per_type_encoder_f RICindicationSN_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICindicationSN_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/RICindicationType.c b/e2sim/previous/ASN1c/RICindicationType.c deleted file mode 100644 index 1732e22..0000000 --- a/e2sim/previous/ASN1c/RICindicationType.c +++ /dev/null @@ -1,73 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "../../asnFiles/e2ap-v031.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "RICindicationType.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -static asn_per_constraints_t asn_PER_type_RICindicationType_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_RICindicationType_value2enum_1[] = { - { 0, 6, "report" }, - { 1, 6, "insert" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_RICindicationType_enum2value_1[] = { - 1, /* insert(1) */ - 0 /* report(0) */ - /* This list is extensible */ -}; -static const asn_INTEGER_specifics_t asn_SPC_RICindicationType_specs_1 = { - asn_MAP_RICindicationType_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_RICindicationType_enum2value_1, /* N => "tag"; sorted by N */ - 2, /* Number of elements in the maps */ - 3, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_RICindicationType_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RICindicationType = { - "RICindicationType", - "RICindicationType", - &asn_OP_NativeEnumerated, - asn_DEF_RICindicationType_tags_1, - sizeof(asn_DEF_RICindicationType_tags_1) - /sizeof(asn_DEF_RICindicationType_tags_1[0]), /* 1 */ - asn_DEF_RICindicationType_tags_1, /* Same as above */ - sizeof(asn_DEF_RICindicationType_tags_1) - /sizeof(asn_DEF_RICindicationType_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_RICindicationType_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_RICindicationType_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/RICindicationType.h b/e2sim/previous/ASN1c/RICindicationType.h deleted file mode 100644 index ba944a0..0000000 --- a/e2sim/previous/ASN1c/RICindicationType.h +++ /dev/null @@ -1,70 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "../../asnFiles/e2ap-v031.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _RICindicationType_H_ -#define _RICindicationType_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum RICindicationType { - RICindicationType_report = 0, - RICindicationType_insert = 1 - /* - * Enumeration is extensible - */ -} e_RICindicationType; - -/* RICindicationType */ -typedef long RICindicationType_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICindicationType; -asn_struct_free_f RICindicationType_free; -asn_struct_print_f RICindicationType_print; -asn_constr_check_f RICindicationType_constraint; -ber_type_decoder_f RICindicationType_decode_ber; -der_type_encoder_f RICindicationType_encode_der; -xer_type_decoder_f RICindicationType_decode_xer; -xer_type_encoder_f RICindicationType_encode_xer; -per_type_decoder_f RICindicationType_decode_uper; -per_type_encoder_f RICindicationType_encode_uper; -per_type_decoder_f RICindicationType_decode_aper; -per_type_encoder_f RICindicationType_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICindicationType_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/RICrequestID.c b/e2sim/previous/ASN1c/RICrequestID.c deleted file mode 100644 index 1bde4a1..0000000 --- a/e2sim/previous/ASN1c/RICrequestID.c +++ /dev/null @@ -1,138 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "../../asnFiles/e2ap-v031.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "RICrequestID.h" - -static int -memb_ricRequestorID_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_ricRequestSequenceNumber_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_per_constraints_t asn_PER_memb_ricRequestorID_constr_2 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_ricRequestSequenceNumber_constr_3 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_RICrequestID_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICrequestID, ricRequestorID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { 0, &asn_PER_memb_ricRequestorID_constr_2, memb_ricRequestorID_constraint_1 }, - 0, 0, /* No default value */ - "ricRequestorID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICrequestID, ricRequestSequenceNumber), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { 0, &asn_PER_memb_ricRequestSequenceNumber_constr_3, memb_ricRequestSequenceNumber_constraint_1 }, - 0, 0, /* No default value */ - "ricRequestSequenceNumber" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICrequestID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICrequestID_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ricRequestorID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ricRequestSequenceNumber */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_RICrequestID_specs_1 = { - sizeof(struct RICrequestID), - offsetof(struct RICrequestID, _asn_ctx), - asn_MAP_RICrequestID_tag2el_1, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 2, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICrequestID = { - "RICrequestID", - "RICrequestID", - &asn_OP_SEQUENCE, - asn_DEF_RICrequestID_tags_1, - sizeof(asn_DEF_RICrequestID_tags_1) - /sizeof(asn_DEF_RICrequestID_tags_1[0]), /* 1 */ - asn_DEF_RICrequestID_tags_1, /* Same as above */ - sizeof(asn_DEF_RICrequestID_tags_1) - /sizeof(asn_DEF_RICrequestID_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICrequestID_1, - 2, /* Elements count */ - &asn_SPC_RICrequestID_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/RICrequestID.h b/e2sim/previous/ASN1c/RICrequestID.h deleted file mode 100644 index a630e20..0000000 --- a/e2sim/previous/ASN1c/RICrequestID.h +++ /dev/null @@ -1,61 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "../../asnFiles/e2ap-v031.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _RICrequestID_H_ -#define _RICrequestID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeInteger.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICrequestID */ -typedef struct RICrequestID { - long ricRequestorID; - long ricRequestSequenceNumber; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICrequestID_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICrequestID; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICrequestID_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/RICserviceQuery.c b/e2sim/previous/ASN1c/RICserviceQuery.c deleted file mode 100644 index ddac87c..0000000 --- a/e2sim/previous/ASN1c/RICserviceQuery.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "../../asnFiles/e2ap-v031.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "RICserviceQuery.h" - -asn_TYPE_member_t asn_MBR_RICserviceQuery_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICserviceQuery, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_119P13, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICserviceQuery_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICserviceQuery_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICserviceQuery_specs_1 = { - sizeof(struct RICserviceQuery), - offsetof(struct RICserviceQuery, _asn_ctx), - asn_MAP_RICserviceQuery_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICserviceQuery = { - "RICserviceQuery", - "RICserviceQuery", - &asn_OP_SEQUENCE, - asn_DEF_RICserviceQuery_tags_1, - sizeof(asn_DEF_RICserviceQuery_tags_1) - /sizeof(asn_DEF_RICserviceQuery_tags_1[0]), /* 1 */ - asn_DEF_RICserviceQuery_tags_1, /* Same as above */ - sizeof(asn_DEF_RICserviceQuery_tags_1) - /sizeof(asn_DEF_RICserviceQuery_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICserviceQuery_1, - 1, /* Elements count */ - &asn_SPC_RICserviceQuery_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/RICserviceQuery.h b/e2sim/previous/ASN1c/RICserviceQuery.h deleted file mode 100644 index 7a503a4..0000000 --- a/e2sim/previous/ASN1c/RICserviceQuery.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "../../asnFiles/e2ap-v031.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _RICserviceQuery_H_ -#define _RICserviceQuery_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICserviceQuery */ -typedef struct RICserviceQuery { - ProtocolIE_Container_119P13_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICserviceQuery_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICserviceQuery; -extern asn_SEQUENCE_specifics_t asn_SPC_RICserviceQuery_specs_1; -extern asn_TYPE_member_t asn_MBR_RICserviceQuery_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICserviceQuery_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/RICserviceUpdate.c b/e2sim/previous/ASN1c/RICserviceUpdate.c deleted file mode 100644 index dd769a4..0000000 --- a/e2sim/previous/ASN1c/RICserviceUpdate.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "../../asnFiles/e2ap-v031.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "RICserviceUpdate.h" - -asn_TYPE_member_t asn_MBR_RICserviceUpdate_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdate, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_119P10, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICserviceUpdate_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICserviceUpdate_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdate_specs_1 = { - sizeof(struct RICserviceUpdate), - offsetof(struct RICserviceUpdate, _asn_ctx), - asn_MAP_RICserviceUpdate_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICserviceUpdate = { - "RICserviceUpdate", - "RICserviceUpdate", - &asn_OP_SEQUENCE, - asn_DEF_RICserviceUpdate_tags_1, - sizeof(asn_DEF_RICserviceUpdate_tags_1) - /sizeof(asn_DEF_RICserviceUpdate_tags_1[0]), /* 1 */ - asn_DEF_RICserviceUpdate_tags_1, /* Same as above */ - sizeof(asn_DEF_RICserviceUpdate_tags_1) - /sizeof(asn_DEF_RICserviceUpdate_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICserviceUpdate_1, - 1, /* Elements count */ - &asn_SPC_RICserviceUpdate_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/RICserviceUpdate.h b/e2sim/previous/ASN1c/RICserviceUpdate.h deleted file mode 100644 index 06a3779..0000000 --- a/e2sim/previous/ASN1c/RICserviceUpdate.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "../../asnFiles/e2ap-v031.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _RICserviceUpdate_H_ -#define _RICserviceUpdate_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICserviceUpdate */ -typedef struct RICserviceUpdate { - ProtocolIE_Container_119P10_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICserviceUpdate_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICserviceUpdate; -extern asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdate_specs_1; -extern asn_TYPE_member_t asn_MBR_RICserviceUpdate_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICserviceUpdate_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/RICserviceUpdateAcknowledge.c b/e2sim/previous/ASN1c/RICserviceUpdateAcknowledge.c deleted file mode 100644 index ee380a6..0000000 --- a/e2sim/previous/ASN1c/RICserviceUpdateAcknowledge.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "../../asnFiles/e2ap-v031.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "RICserviceUpdateAcknowledge.h" - -asn_TYPE_member_t asn_MBR_RICserviceUpdateAcknowledge_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateAcknowledge, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_119P11, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICserviceUpdateAcknowledge_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICserviceUpdateAcknowledge_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdateAcknowledge_specs_1 = { - sizeof(struct RICserviceUpdateAcknowledge), - offsetof(struct RICserviceUpdateAcknowledge, _asn_ctx), - asn_MAP_RICserviceUpdateAcknowledge_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICserviceUpdateAcknowledge = { - "RICserviceUpdateAcknowledge", - "RICserviceUpdateAcknowledge", - &asn_OP_SEQUENCE, - asn_DEF_RICserviceUpdateAcknowledge_tags_1, - sizeof(asn_DEF_RICserviceUpdateAcknowledge_tags_1) - /sizeof(asn_DEF_RICserviceUpdateAcknowledge_tags_1[0]), /* 1 */ - asn_DEF_RICserviceUpdateAcknowledge_tags_1, /* Same as above */ - sizeof(asn_DEF_RICserviceUpdateAcknowledge_tags_1) - /sizeof(asn_DEF_RICserviceUpdateAcknowledge_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICserviceUpdateAcknowledge_1, - 1, /* Elements count */ - &asn_SPC_RICserviceUpdateAcknowledge_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/RICserviceUpdateAcknowledge.h b/e2sim/previous/ASN1c/RICserviceUpdateAcknowledge.h deleted file mode 100644 index 891ec94..0000000 --- a/e2sim/previous/ASN1c/RICserviceUpdateAcknowledge.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "../../asnFiles/e2ap-v031.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _RICserviceUpdateAcknowledge_H_ -#define _RICserviceUpdateAcknowledge_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICserviceUpdateAcknowledge */ -typedef struct RICserviceUpdateAcknowledge { - ProtocolIE_Container_119P11_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICserviceUpdateAcknowledge_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICserviceUpdateAcknowledge; -extern asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdateAcknowledge_specs_1; -extern asn_TYPE_member_t asn_MBR_RICserviceUpdateAcknowledge_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICserviceUpdateAcknowledge_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/RICserviceUpdateFailure.c b/e2sim/previous/ASN1c/RICserviceUpdateFailure.c deleted file mode 100644 index 88bf7ae..0000000 --- a/e2sim/previous/ASN1c/RICserviceUpdateFailure.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "../../asnFiles/e2ap-v031.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "RICserviceUpdateFailure.h" - -asn_TYPE_member_t asn_MBR_RICserviceUpdateFailure_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateFailure, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_119P12, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICserviceUpdateFailure_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICserviceUpdateFailure_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdateFailure_specs_1 = { - sizeof(struct RICserviceUpdateFailure), - offsetof(struct RICserviceUpdateFailure, _asn_ctx), - asn_MAP_RICserviceUpdateFailure_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICserviceUpdateFailure = { - "RICserviceUpdateFailure", - "RICserviceUpdateFailure", - &asn_OP_SEQUENCE, - asn_DEF_RICserviceUpdateFailure_tags_1, - sizeof(asn_DEF_RICserviceUpdateFailure_tags_1) - /sizeof(asn_DEF_RICserviceUpdateFailure_tags_1[0]), /* 1 */ - asn_DEF_RICserviceUpdateFailure_tags_1, /* Same as above */ - sizeof(asn_DEF_RICserviceUpdateFailure_tags_1) - /sizeof(asn_DEF_RICserviceUpdateFailure_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICserviceUpdateFailure_1, - 1, /* Elements count */ - &asn_SPC_RICserviceUpdateFailure_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/RICserviceUpdateFailure.h b/e2sim/previous/ASN1c/RICserviceUpdateFailure.h deleted file mode 100644 index 5a25bfb..0000000 --- a/e2sim/previous/ASN1c/RICserviceUpdateFailure.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "../../asnFiles/e2ap-v031.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _RICserviceUpdateFailure_H_ -#define _RICserviceUpdateFailure_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICserviceUpdateFailure */ -typedef struct RICserviceUpdateFailure { - ProtocolIE_Container_119P12_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICserviceUpdateFailure_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICserviceUpdateFailure; -extern asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdateFailure_specs_1; -extern asn_TYPE_member_t asn_MBR_RICserviceUpdateFailure_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICserviceUpdateFailure_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/RICsubscription.c b/e2sim/previous/ASN1c/RICsubscription.c deleted file mode 100644 index c44e042..0000000 --- a/e2sim/previous/ASN1c/RICsubscription.c +++ /dev/null @@ -1,78 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "../../asnFiles/e2ap-v031.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "RICsubscription.h" - -static asn_TYPE_member_t asn_MBR_RICsubscription_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICsubscription, ricEventTriggerDefinition), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RICeventTriggerDefinition, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ricEventTriggerDefinition" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubscription, ricAction_ToBeSetup_List), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RICactions_ToBeSetup_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ricAction-ToBeSetup-List" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICsubscription_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICsubscription_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ricEventTriggerDefinition */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ricAction-ToBeSetup-List */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_RICsubscription_specs_1 = { - sizeof(struct RICsubscription), - offsetof(struct RICsubscription, _asn_ctx), - asn_MAP_RICsubscription_tag2el_1, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 2, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICsubscription = { - "RICsubscription", - "RICsubscription", - &asn_OP_SEQUENCE, - asn_DEF_RICsubscription_tags_1, - sizeof(asn_DEF_RICsubscription_tags_1) - /sizeof(asn_DEF_RICsubscription_tags_1[0]), /* 1 */ - asn_DEF_RICsubscription_tags_1, /* Same as above */ - sizeof(asn_DEF_RICsubscription_tags_1) - /sizeof(asn_DEF_RICsubscription_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICsubscription_1, - 2, /* Elements count */ - &asn_SPC_RICsubscription_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/RICsubscription.h b/e2sim/previous/ASN1c/RICsubscription.h deleted file mode 100644 index 3f60942..0000000 --- a/e2sim/previous/ASN1c/RICsubscription.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "../../asnFiles/e2ap-v031.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _RICsubscription_H_ -#define _RICsubscription_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "RICeventTriggerDefinition.h" -#include "RICactions-ToBeSetup-List.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICsubscription */ -typedef struct RICsubscription { - RICeventTriggerDefinition_t ricEventTriggerDefinition; - RICactions_ToBeSetup_List_t ricAction_ToBeSetup_List; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICsubscription_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICsubscription; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICsubscription_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/RICsubscriptionDeleteFailure.c b/e2sim/previous/ASN1c/RICsubscriptionDeleteFailure.c deleted file mode 100644 index 1cb9b2b..0000000 --- a/e2sim/previous/ASN1c/RICsubscriptionDeleteFailure.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "../../asnFiles/e2ap-v031.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "RICsubscriptionDeleteFailure.h" - -asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteFailure_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteFailure, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_119P5, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICsubscriptionDeleteFailure_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionDeleteFailure_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteFailure_specs_1 = { - sizeof(struct RICsubscriptionDeleteFailure), - offsetof(struct RICsubscriptionDeleteFailure, _asn_ctx), - asn_MAP_RICsubscriptionDeleteFailure_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDeleteFailure = { - "RICsubscriptionDeleteFailure", - "RICsubscriptionDeleteFailure", - &asn_OP_SEQUENCE, - asn_DEF_RICsubscriptionDeleteFailure_tags_1, - sizeof(asn_DEF_RICsubscriptionDeleteFailure_tags_1) - /sizeof(asn_DEF_RICsubscriptionDeleteFailure_tags_1[0]), /* 1 */ - asn_DEF_RICsubscriptionDeleteFailure_tags_1, /* Same as above */ - sizeof(asn_DEF_RICsubscriptionDeleteFailure_tags_1) - /sizeof(asn_DEF_RICsubscriptionDeleteFailure_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICsubscriptionDeleteFailure_1, - 1, /* Elements count */ - &asn_SPC_RICsubscriptionDeleteFailure_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/RICsubscriptionDeleteFailure.h b/e2sim/previous/ASN1c/RICsubscriptionDeleteFailure.h deleted file mode 100644 index 6b741ac..0000000 --- a/e2sim/previous/ASN1c/RICsubscriptionDeleteFailure.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "../../asnFiles/e2ap-v031.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _RICsubscriptionDeleteFailure_H_ -#define _RICsubscriptionDeleteFailure_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICsubscriptionDeleteFailure */ -typedef struct RICsubscriptionDeleteFailure { - ProtocolIE_Container_119P5_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICsubscriptionDeleteFailure_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDeleteFailure; -extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteFailure_specs_1; -extern asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteFailure_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICsubscriptionDeleteFailure_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/RICsubscriptionDeleteRequest.c b/e2sim/previous/ASN1c/RICsubscriptionDeleteRequest.c deleted file mode 100644 index 39a2d46..0000000 --- a/e2sim/previous/ASN1c/RICsubscriptionDeleteRequest.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "../../asnFiles/e2ap-v031.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "RICsubscriptionDeleteRequest.h" - -asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteRequest_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteRequest, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_119P3, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICsubscriptionDeleteRequest_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionDeleteRequest_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteRequest_specs_1 = { - sizeof(struct RICsubscriptionDeleteRequest), - offsetof(struct RICsubscriptionDeleteRequest, _asn_ctx), - asn_MAP_RICsubscriptionDeleteRequest_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDeleteRequest = { - "RICsubscriptionDeleteRequest", - "RICsubscriptionDeleteRequest", - &asn_OP_SEQUENCE, - asn_DEF_RICsubscriptionDeleteRequest_tags_1, - sizeof(asn_DEF_RICsubscriptionDeleteRequest_tags_1) - /sizeof(asn_DEF_RICsubscriptionDeleteRequest_tags_1[0]), /* 1 */ - asn_DEF_RICsubscriptionDeleteRequest_tags_1, /* Same as above */ - sizeof(asn_DEF_RICsubscriptionDeleteRequest_tags_1) - /sizeof(asn_DEF_RICsubscriptionDeleteRequest_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICsubscriptionDeleteRequest_1, - 1, /* Elements count */ - &asn_SPC_RICsubscriptionDeleteRequest_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/RICsubscriptionDeleteRequest.h b/e2sim/previous/ASN1c/RICsubscriptionDeleteRequest.h deleted file mode 100644 index ee29522..0000000 --- a/e2sim/previous/ASN1c/RICsubscriptionDeleteRequest.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "../../asnFiles/e2ap-v031.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _RICsubscriptionDeleteRequest_H_ -#define _RICsubscriptionDeleteRequest_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICsubscriptionDeleteRequest */ -typedef struct RICsubscriptionDeleteRequest { - ProtocolIE_Container_119P3_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICsubscriptionDeleteRequest_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDeleteRequest; -extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteRequest_specs_1; -extern asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteRequest_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICsubscriptionDeleteRequest_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/RICsubscriptionDeleteResponse.c b/e2sim/previous/ASN1c/RICsubscriptionDeleteResponse.c deleted file mode 100644 index 2f59c38..0000000 --- a/e2sim/previous/ASN1c/RICsubscriptionDeleteResponse.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "../../asnFiles/e2ap-v031.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "RICsubscriptionDeleteResponse.h" - -asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteResponse_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteResponse, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_119P4, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICsubscriptionDeleteResponse_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionDeleteResponse_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteResponse_specs_1 = { - sizeof(struct RICsubscriptionDeleteResponse), - offsetof(struct RICsubscriptionDeleteResponse, _asn_ctx), - asn_MAP_RICsubscriptionDeleteResponse_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDeleteResponse = { - "RICsubscriptionDeleteResponse", - "RICsubscriptionDeleteResponse", - &asn_OP_SEQUENCE, - asn_DEF_RICsubscriptionDeleteResponse_tags_1, - sizeof(asn_DEF_RICsubscriptionDeleteResponse_tags_1) - /sizeof(asn_DEF_RICsubscriptionDeleteResponse_tags_1[0]), /* 1 */ - asn_DEF_RICsubscriptionDeleteResponse_tags_1, /* Same as above */ - sizeof(asn_DEF_RICsubscriptionDeleteResponse_tags_1) - /sizeof(asn_DEF_RICsubscriptionDeleteResponse_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICsubscriptionDeleteResponse_1, - 1, /* Elements count */ - &asn_SPC_RICsubscriptionDeleteResponse_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/RICsubscriptionDeleteResponse.h b/e2sim/previous/ASN1c/RICsubscriptionDeleteResponse.h deleted file mode 100644 index 02360be..0000000 --- a/e2sim/previous/ASN1c/RICsubscriptionDeleteResponse.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "../../asnFiles/e2ap-v031.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _RICsubscriptionDeleteResponse_H_ -#define _RICsubscriptionDeleteResponse_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICsubscriptionDeleteResponse */ -typedef struct RICsubscriptionDeleteResponse { - ProtocolIE_Container_119P4_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICsubscriptionDeleteResponse_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDeleteResponse; -extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteResponse_specs_1; -extern asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteResponse_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICsubscriptionDeleteResponse_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/RICsubscriptionFailure.c b/e2sim/previous/ASN1c/RICsubscriptionFailure.c deleted file mode 100644 index fb4a638..0000000 --- a/e2sim/previous/ASN1c/RICsubscriptionFailure.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "../../asnFiles/e2ap-v031.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "RICsubscriptionFailure.h" - -asn_TYPE_member_t asn_MBR_RICsubscriptionFailure_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionFailure, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_119P2, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICsubscriptionFailure_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionFailure_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionFailure_specs_1 = { - sizeof(struct RICsubscriptionFailure), - offsetof(struct RICsubscriptionFailure, _asn_ctx), - asn_MAP_RICsubscriptionFailure_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICsubscriptionFailure = { - "RICsubscriptionFailure", - "RICsubscriptionFailure", - &asn_OP_SEQUENCE, - asn_DEF_RICsubscriptionFailure_tags_1, - sizeof(asn_DEF_RICsubscriptionFailure_tags_1) - /sizeof(asn_DEF_RICsubscriptionFailure_tags_1[0]), /* 1 */ - asn_DEF_RICsubscriptionFailure_tags_1, /* Same as above */ - sizeof(asn_DEF_RICsubscriptionFailure_tags_1) - /sizeof(asn_DEF_RICsubscriptionFailure_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICsubscriptionFailure_1, - 1, /* Elements count */ - &asn_SPC_RICsubscriptionFailure_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/RICsubscriptionFailure.h b/e2sim/previous/ASN1c/RICsubscriptionFailure.h deleted file mode 100644 index 6b3c8d5..0000000 --- a/e2sim/previous/ASN1c/RICsubscriptionFailure.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "../../asnFiles/e2ap-v031.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _RICsubscriptionFailure_H_ -#define _RICsubscriptionFailure_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICsubscriptionFailure */ -typedef struct RICsubscriptionFailure { - ProtocolIE_Container_119P2_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICsubscriptionFailure_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionFailure; -extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionFailure_specs_1; -extern asn_TYPE_member_t asn_MBR_RICsubscriptionFailure_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICsubscriptionFailure_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/RICsubscriptionRequest.c b/e2sim/previous/ASN1c/RICsubscriptionRequest.c deleted file mode 100644 index 5446552..0000000 --- a/e2sim/previous/ASN1c/RICsubscriptionRequest.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "../../asnFiles/e2ap-v031.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "RICsubscriptionRequest.h" - -asn_TYPE_member_t asn_MBR_RICsubscriptionRequest_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionRequest, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_119P0, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICsubscriptionRequest_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionRequest_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionRequest_specs_1 = { - sizeof(struct RICsubscriptionRequest), - offsetof(struct RICsubscriptionRequest, _asn_ctx), - asn_MAP_RICsubscriptionRequest_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICsubscriptionRequest = { - "RICsubscriptionRequest", - "RICsubscriptionRequest", - &asn_OP_SEQUENCE, - asn_DEF_RICsubscriptionRequest_tags_1, - sizeof(asn_DEF_RICsubscriptionRequest_tags_1) - /sizeof(asn_DEF_RICsubscriptionRequest_tags_1[0]), /* 1 */ - asn_DEF_RICsubscriptionRequest_tags_1, /* Same as above */ - sizeof(asn_DEF_RICsubscriptionRequest_tags_1) - /sizeof(asn_DEF_RICsubscriptionRequest_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICsubscriptionRequest_1, - 1, /* Elements count */ - &asn_SPC_RICsubscriptionRequest_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/RICsubscriptionRequest.h b/e2sim/previous/ASN1c/RICsubscriptionRequest.h deleted file mode 100644 index d1f7c6e..0000000 --- a/e2sim/previous/ASN1c/RICsubscriptionRequest.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "../../asnFiles/e2ap-v031.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _RICsubscriptionRequest_H_ -#define _RICsubscriptionRequest_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICsubscriptionRequest */ -typedef struct RICsubscriptionRequest { - ProtocolIE_Container_119P0_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICsubscriptionRequest_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionRequest; -extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionRequest_specs_1; -extern asn_TYPE_member_t asn_MBR_RICsubscriptionRequest_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICsubscriptionRequest_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/RICsubscriptionResponse.c b/e2sim/previous/ASN1c/RICsubscriptionResponse.c deleted file mode 100644 index 6994b0f..0000000 --- a/e2sim/previous/ASN1c/RICsubscriptionResponse.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "../../asnFiles/e2ap-v031.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "RICsubscriptionResponse.h" - -asn_TYPE_member_t asn_MBR_RICsubscriptionResponse_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionResponse, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_119P1, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICsubscriptionResponse_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionResponse_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionResponse_specs_1 = { - sizeof(struct RICsubscriptionResponse), - offsetof(struct RICsubscriptionResponse, _asn_ctx), - asn_MAP_RICsubscriptionResponse_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICsubscriptionResponse = { - "RICsubscriptionResponse", - "RICsubscriptionResponse", - &asn_OP_SEQUENCE, - asn_DEF_RICsubscriptionResponse_tags_1, - sizeof(asn_DEF_RICsubscriptionResponse_tags_1) - /sizeof(asn_DEF_RICsubscriptionResponse_tags_1[0]), /* 1 */ - asn_DEF_RICsubscriptionResponse_tags_1, /* Same as above */ - sizeof(asn_DEF_RICsubscriptionResponse_tags_1) - /sizeof(asn_DEF_RICsubscriptionResponse_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICsubscriptionResponse_1, - 1, /* Elements count */ - &asn_SPC_RICsubscriptionResponse_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/RICsubscriptionResponse.h b/e2sim/previous/ASN1c/RICsubscriptionResponse.h deleted file mode 100644 index 551f2b5..0000000 --- a/e2sim/previous/ASN1c/RICsubscriptionResponse.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "../../asnFiles/e2ap-v031.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _RICsubscriptionResponse_H_ -#define _RICsubscriptionResponse_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICsubscriptionResponse */ -typedef struct RICsubscriptionResponse { - ProtocolIE_Container_119P1_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICsubscriptionResponse_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionResponse; -extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionResponse_specs_1; -extern asn_TYPE_member_t asn_MBR_RICsubscriptionResponse_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICsubscriptionResponse_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/RICsubsequentAction.c b/e2sim/previous/ASN1c/RICsubsequentAction.c deleted file mode 100644 index bf63345..0000000 --- a/e2sim/previous/ASN1c/RICsubsequentAction.c +++ /dev/null @@ -1,78 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "../../asnFiles/e2ap-v031.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "RICsubsequentAction.h" - -asn_TYPE_member_t asn_MBR_RICsubsequentAction_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICsubsequentAction, ricSubsequentActionType), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RICsubsequentActionType, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ricSubsequentActionType" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubsequentAction, ricTimeToWait), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RICtimeToWait, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ricTimeToWait" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICsubsequentAction_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICsubsequentAction_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ricSubsequentActionType */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ricTimeToWait */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICsubsequentAction_specs_1 = { - sizeof(struct RICsubsequentAction), - offsetof(struct RICsubsequentAction, _asn_ctx), - asn_MAP_RICsubsequentAction_tag2el_1, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 2, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICsubsequentAction = { - "RICsubsequentAction", - "RICsubsequentAction", - &asn_OP_SEQUENCE, - asn_DEF_RICsubsequentAction_tags_1, - sizeof(asn_DEF_RICsubsequentAction_tags_1) - /sizeof(asn_DEF_RICsubsequentAction_tags_1[0]), /* 1 */ - asn_DEF_RICsubsequentAction_tags_1, /* Same as above */ - sizeof(asn_DEF_RICsubsequentAction_tags_1) - /sizeof(asn_DEF_RICsubsequentAction_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICsubsequentAction_1, - 2, /* Elements count */ - &asn_SPC_RICsubsequentAction_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/RICsubsequentAction.h b/e2sim/previous/ASN1c/RICsubsequentAction.h deleted file mode 100644 index 40e6ef2..0000000 --- a/e2sim/previous/ASN1c/RICsubsequentAction.h +++ /dev/null @@ -1,64 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "../../asnFiles/e2ap-v031.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _RICsubsequentAction_H_ -#define _RICsubsequentAction_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "RICsubsequentActionType.h" -#include "RICtimeToWait.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICsubsequentAction */ -typedef struct RICsubsequentAction { - RICsubsequentActionType_t ricSubsequentActionType; - RICtimeToWait_t ricTimeToWait; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICsubsequentAction_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICsubsequentAction; -extern asn_SEQUENCE_specifics_t asn_SPC_RICsubsequentAction_specs_1; -extern asn_TYPE_member_t asn_MBR_RICsubsequentAction_1[2]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICsubsequentAction_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/RICsubsequentActionType.c b/e2sim/previous/ASN1c/RICsubsequentActionType.c deleted file mode 100644 index b421aba..0000000 --- a/e2sim/previous/ASN1c/RICsubsequentActionType.c +++ /dev/null @@ -1,73 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "../../asnFiles/e2ap-v031.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "RICsubsequentActionType.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_RICsubsequentActionType_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_RICsubsequentActionType_value2enum_1[] = { - { 0, 8, "continue" }, - { 1, 4, "wait" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_RICsubsequentActionType_enum2value_1[] = { - 0, /* continue(0) */ - 1 /* wait(1) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_RICsubsequentActionType_specs_1 = { - asn_MAP_RICsubsequentActionType_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_RICsubsequentActionType_enum2value_1, /* N => "tag"; sorted by N */ - 2, /* Number of elements in the maps */ - 3, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_RICsubsequentActionType_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RICsubsequentActionType = { - "RICsubsequentActionType", - "RICsubsequentActionType", - &asn_OP_NativeEnumerated, - asn_DEF_RICsubsequentActionType_tags_1, - sizeof(asn_DEF_RICsubsequentActionType_tags_1) - /sizeof(asn_DEF_RICsubsequentActionType_tags_1[0]), /* 1 */ - asn_DEF_RICsubsequentActionType_tags_1, /* Same as above */ - sizeof(asn_DEF_RICsubsequentActionType_tags_1) - /sizeof(asn_DEF_RICsubsequentActionType_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_RICsubsequentActionType_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_RICsubsequentActionType_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/RICsubsequentActionType.h b/e2sim/previous/ASN1c/RICsubsequentActionType.h deleted file mode 100644 index 8b91dbe..0000000 --- a/e2sim/previous/ASN1c/RICsubsequentActionType.h +++ /dev/null @@ -1,72 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "../../asnFiles/e2ap-v031.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _RICsubsequentActionType_H_ -#define _RICsubsequentActionType_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum RICsubsequentActionType { - RICsubsequentActionType_continue = 0, - RICsubsequentActionType_wait = 1 - /* - * Enumeration is extensible - */ -} e_RICsubsequentActionType; - -/* RICsubsequentActionType */ -typedef long RICsubsequentActionType_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_RICsubsequentActionType_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_RICsubsequentActionType; -extern const asn_INTEGER_specifics_t asn_SPC_RICsubsequentActionType_specs_1; -asn_struct_free_f RICsubsequentActionType_free; -asn_struct_print_f RICsubsequentActionType_print; -asn_constr_check_f RICsubsequentActionType_constraint; -ber_type_decoder_f RICsubsequentActionType_decode_ber; -der_type_encoder_f RICsubsequentActionType_encode_der; -xer_type_decoder_f RICsubsequentActionType_decode_xer; -xer_type_encoder_f RICsubsequentActionType_encode_xer; -per_type_decoder_f RICsubsequentActionType_decode_uper; -per_type_encoder_f RICsubsequentActionType_encode_uper; -per_type_decoder_f RICsubsequentActionType_decode_aper; -per_type_encoder_f RICsubsequentActionType_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICsubsequentActionType_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/RICtimeToWait.c b/e2sim/previous/ASN1c/RICtimeToWait.c deleted file mode 100644 index effe4f8..0000000 --- a/e2sim/previous/ASN1c/RICtimeToWait.c +++ /dev/null @@ -1,105 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "../../asnFiles/e2ap-v031.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "RICtimeToWait.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_RICtimeToWait_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 5, 5, 0, 17 } /* (0..17,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_RICtimeToWait_value2enum_1[] = { - { 0, 4, "zero" }, - { 1, 4, "w1ms" }, - { 2, 4, "w2ms" }, - { 3, 4, "w5ms" }, - { 4, 5, "w10ms" }, - { 5, 5, "w20ms" }, - { 6, 5, "w30ms" }, - { 7, 5, "w40ms" }, - { 8, 5, "w50ms" }, - { 9, 6, "w100ms" }, - { 10, 6, "w200ms" }, - { 11, 6, "w500ms" }, - { 12, 3, "w1s" }, - { 13, 3, "w2s" }, - { 14, 3, "w5s" }, - { 15, 4, "w10s" }, - { 16, 4, "w20s" }, - { 17, 4, "w60s" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_RICtimeToWait_enum2value_1[] = { - 9, /* w100ms(9) */ - 4, /* w10ms(4) */ - 15, /* w10s(15) */ - 1, /* w1ms(1) */ - 12, /* w1s(12) */ - 10, /* w200ms(10) */ - 5, /* w20ms(5) */ - 16, /* w20s(16) */ - 2, /* w2ms(2) */ - 13, /* w2s(13) */ - 6, /* w30ms(6) */ - 7, /* w40ms(7) */ - 11, /* w500ms(11) */ - 8, /* w50ms(8) */ - 3, /* w5ms(3) */ - 14, /* w5s(14) */ - 17, /* w60s(17) */ - 0 /* zero(0) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_RICtimeToWait_specs_1 = { - asn_MAP_RICtimeToWait_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_RICtimeToWait_enum2value_1, /* N => "tag"; sorted by N */ - 18, /* Number of elements in the maps */ - 19, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_RICtimeToWait_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RICtimeToWait = { - "RICtimeToWait", - "RICtimeToWait", - &asn_OP_NativeEnumerated, - asn_DEF_RICtimeToWait_tags_1, - sizeof(asn_DEF_RICtimeToWait_tags_1) - /sizeof(asn_DEF_RICtimeToWait_tags_1[0]), /* 1 */ - asn_DEF_RICtimeToWait_tags_1, /* Same as above */ - sizeof(asn_DEF_RICtimeToWait_tags_1) - /sizeof(asn_DEF_RICtimeToWait_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_RICtimeToWait_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_RICtimeToWait_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/RICtimeToWait.h b/e2sim/previous/ASN1c/RICtimeToWait.h deleted file mode 100644 index 50ee211..0000000 --- a/e2sim/previous/ASN1c/RICtimeToWait.h +++ /dev/null @@ -1,88 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "../../asnFiles/e2ap-v031.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _RICtimeToWait_H_ -#define _RICtimeToWait_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum RICtimeToWait { - RICtimeToWait_zero = 0, - RICtimeToWait_w1ms = 1, - RICtimeToWait_w2ms = 2, - RICtimeToWait_w5ms = 3, - RICtimeToWait_w10ms = 4, - RICtimeToWait_w20ms = 5, - RICtimeToWait_w30ms = 6, - RICtimeToWait_w40ms = 7, - RICtimeToWait_w50ms = 8, - RICtimeToWait_w100ms = 9, - RICtimeToWait_w200ms = 10, - RICtimeToWait_w500ms = 11, - RICtimeToWait_w1s = 12, - RICtimeToWait_w2s = 13, - RICtimeToWait_w5s = 14, - RICtimeToWait_w10s = 15, - RICtimeToWait_w20s = 16, - RICtimeToWait_w60s = 17 - /* - * Enumeration is extensible - */ -} e_RICtimeToWait; - -/* RICtimeToWait */ -typedef long RICtimeToWait_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_RICtimeToWait_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_RICtimeToWait; -extern const asn_INTEGER_specifics_t asn_SPC_RICtimeToWait_specs_1; -asn_struct_free_f RICtimeToWait_free; -asn_struct_print_f RICtimeToWait_print; -asn_constr_check_f RICtimeToWait_constraint; -ber_type_decoder_f RICtimeToWait_decode_ber; -der_type_encoder_f RICtimeToWait_encode_der; -xer_type_decoder_f RICtimeToWait_decode_xer; -xer_type_encoder_f RICtimeToWait_encode_xer; -per_type_decoder_f RICtimeToWait_decode_uper; -per_type_encoder_f RICtimeToWait_encode_uper; -per_type_decoder_f RICtimeToWait_decode_aper; -per_type_encoder_f RICtimeToWait_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICtimeToWait_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/RLC-Status.c b/e2sim/previous/ASN1c/RLC-Status.c deleted file mode 100644 index 2caface..0000000 --- a/e2sim/previous/ASN1c/RLC-Status.c +++ /dev/null @@ -1,81 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "RLC-Status.h" - -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_RLC_Status_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RLC_Status, reestablishment_Indication), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Reestablishment_Indication, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "reestablishment-Indication" - }, - { ATF_POINTER, 1, offsetof(struct RLC_Status, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P186, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_RLC_Status_oms_1[] = { 1 }; -static const ber_tlv_tag_t asn_DEF_RLC_Status_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RLC_Status_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* reestablishment-Indication */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RLC_Status_specs_1 = { - sizeof(struct RLC_Status), - offsetof(struct RLC_Status, _asn_ctx), - asn_MAP_RLC_Status_tag2el_1, - 2, /* Count of tags in the map */ - asn_MAP_RLC_Status_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 2, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RLC_Status = { - "RLC-Status", - "RLC-Status", - &asn_OP_SEQUENCE, - asn_DEF_RLC_Status_tags_1, - sizeof(asn_DEF_RLC_Status_tags_1) - /sizeof(asn_DEF_RLC_Status_tags_1[0]), /* 1 */ - asn_DEF_RLC_Status_tags_1, /* Same as above */ - sizeof(asn_DEF_RLC_Status_tags_1) - /sizeof(asn_DEF_RLC_Status_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RLC_Status_1, - 2, /* Elements count */ - &asn_SPC_RLC_Status_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/RLC-Status.h b/e2sim/previous/ASN1c/RLC-Status.h deleted file mode 100644 index 7a50f0c..0000000 --- a/e2sim/previous/ASN1c/RLC-Status.h +++ /dev/null @@ -1,66 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _RLC_Status_H_ -#define _RLC_Status_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "Reestablishment-Indication.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* RLC-Status */ -typedef struct RLC_Status { - Reestablishment_Indication_t reestablishment_Indication; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RLC_Status_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RLC_Status; -extern asn_SEQUENCE_specifics_t asn_SPC_RLC_Status_specs_1; -extern asn_TYPE_member_t asn_MBR_RLC_Status_1[2]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RLC_Status_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/RLCMode.c b/e2sim/previous/ASN1c/RLCMode.c deleted file mode 100644 index 04067a3..0000000 --- a/e2sim/previous/ASN1c/RLCMode.c +++ /dev/null @@ -1,77 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "RLCMode.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_RLCMode_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 3 } /* (0..3,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_RLCMode_value2enum_1[] = { - { 0, 6, "rlc-am" }, - { 1, 20, "rlc-um-bidirectional" }, - { 2, 24, "rlc-um-unidirectional-ul" }, - { 3, 24, "rlc-um-unidirectional-dl" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_RLCMode_enum2value_1[] = { - 0, /* rlc-am(0) */ - 1, /* rlc-um-bidirectional(1) */ - 3, /* rlc-um-unidirectional-dl(3) */ - 2 /* rlc-um-unidirectional-ul(2) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_RLCMode_specs_1 = { - asn_MAP_RLCMode_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_RLCMode_enum2value_1, /* N => "tag"; sorted by N */ - 4, /* Number of elements in the maps */ - 5, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_RLCMode_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RLCMode = { - "RLCMode", - "RLCMode", - &asn_OP_NativeEnumerated, - asn_DEF_RLCMode_tags_1, - sizeof(asn_DEF_RLCMode_tags_1) - /sizeof(asn_DEF_RLCMode_tags_1[0]), /* 1 */ - asn_DEF_RLCMode_tags_1, /* Same as above */ - sizeof(asn_DEF_RLCMode_tags_1) - /sizeof(asn_DEF_RLCMode_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_RLCMode_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_RLCMode_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/RLCMode.h b/e2sim/previous/ASN1c/RLCMode.h deleted file mode 100644 index 3399d12..0000000 --- a/e2sim/previous/ASN1c/RLCMode.h +++ /dev/null @@ -1,74 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _RLCMode_H_ -#define _RLCMode_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum RLCMode { - RLCMode_rlc_am = 0, - RLCMode_rlc_um_bidirectional = 1, - RLCMode_rlc_um_unidirectional_ul = 2, - RLCMode_rlc_um_unidirectional_dl = 3 - /* - * Enumeration is extensible - */ -} e_RLCMode; - -/* RLCMode */ -typedef long RLCMode_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_RLCMode_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_RLCMode; -extern const asn_INTEGER_specifics_t asn_SPC_RLCMode_specs_1; -asn_struct_free_f RLCMode_free; -asn_struct_print_f RLCMode_print; -asn_constr_check_f RLCMode_constraint; -ber_type_decoder_f RLCMode_decode_ber; -der_type_encoder_f RLCMode_encode_der; -xer_type_decoder_f RLCMode_decode_xer; -xer_type_encoder_f RLCMode_encode_xer; -per_type_decoder_f RLCMode_decode_uper; -per_type_encoder_f RLCMode_encode_uper; -per_type_decoder_f RLCMode_decode_aper; -per_type_encoder_f RLCMode_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RLCMode_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/RLFIndication.c b/e2sim/previous/ASN1c/RLFIndication.c deleted file mode 100644 index 191db41..0000000 --- a/e2sim/previous/ASN1c/RLFIndication.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "RLFIndication.h" - -static asn_TYPE_member_t asn_MBR_RLFIndication_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RLFIndication, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_119P38, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_RLFIndication_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RLFIndication_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_RLFIndication_specs_1 = { - sizeof(struct RLFIndication), - offsetof(struct RLFIndication, _asn_ctx), - asn_MAP_RLFIndication_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RLFIndication = { - "RLFIndication", - "RLFIndication", - &asn_OP_SEQUENCE, - asn_DEF_RLFIndication_tags_1, - sizeof(asn_DEF_RLFIndication_tags_1) - /sizeof(asn_DEF_RLFIndication_tags_1[0]), /* 1 */ - asn_DEF_RLFIndication_tags_1, /* Same as above */ - sizeof(asn_DEF_RLFIndication_tags_1) - /sizeof(asn_DEF_RLFIndication_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RLFIndication_1, - 1, /* Elements count */ - &asn_SPC_RLFIndication_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/RLFIndication.h b/e2sim/previous/ASN1c/RLFIndication.h deleted file mode 100644 index 55cac2a..0000000 --- a/e2sim/previous/ASN1c/RLFIndication.h +++ /dev/null @@ -1,60 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _RLFIndication_H_ -#define _RLFIndication_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RLFIndication */ -typedef struct RLFIndication { - ProtocolIE_Container_119P38_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RLFIndication_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RLFIndication; - -#ifdef __cplusplus -} -#endif - -#endif /* _RLFIndication_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/RNL-Header.c b/e2sim/previous/ASN1c/RNL-Header.c deleted file mode 100644 index cf59570..0000000 --- a/e2sim/previous/ASN1c/RNL-Header.c +++ /dev/null @@ -1,92 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "RNL-Header.h" - -#include "GlobalENB-ID.h" -#include "ProtocolExtensionContainer.h" -static asn_TYPE_member_t asn_MBR_RNL_Header_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RNL_Header, source_GlobalENB_ID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GlobalENB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "source-GlobalENB-ID" - }, - { ATF_POINTER, 2, offsetof(struct RNL_Header, target_GlobalENB_ID), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GlobalENB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "target-GlobalENB-ID" - }, - { ATF_POINTER, 1, offsetof(struct RNL_Header, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P16, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_RNL_Header_oms_1[] = { 1, 2 }; -static const ber_tlv_tag_t asn_DEF_RNL_Header_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RNL_Header_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* source-GlobalENB-ID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* target-GlobalENB-ID */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_RNL_Header_specs_1 = { - sizeof(struct RNL_Header), - offsetof(struct RNL_Header, _asn_ctx), - asn_MAP_RNL_Header_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_RNL_Header_oms_1, /* Optional members */ - 2, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RNL_Header = { - "RNL-Header", - "RNL-Header", - &asn_OP_SEQUENCE, - asn_DEF_RNL_Header_tags_1, - sizeof(asn_DEF_RNL_Header_tags_1) - /sizeof(asn_DEF_RNL_Header_tags_1[0]), /* 1 */ - asn_DEF_RNL_Header_tags_1, /* Same as above */ - sizeof(asn_DEF_RNL_Header_tags_1) - /sizeof(asn_DEF_RNL_Header_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RNL_Header_1, - 3, /* Elements count */ - &asn_SPC_RNL_Header_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/RNL-Header.h b/e2sim/previous/ASN1c/RNL-Header.h deleted file mode 100644 index 5fd09af..0000000 --- a/e2sim/previous/ASN1c/RNL-Header.h +++ /dev/null @@ -1,66 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _RNL_Header_H_ -#define _RNL_Header_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "GlobalENB-ID.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct GlobalENB_ID; -struct ProtocolExtensionContainer; - -/* RNL-Header */ -typedef struct RNL_Header { - GlobalENB_ID_t source_GlobalENB_ID; - struct GlobalENB_ID *target_GlobalENB_ID; /* OPTIONAL */ - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RNL_Header_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RNL_Header; - -#ifdef __cplusplus -} -#endif - -#endif /* _RNL_Header_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/RNTP-Threshold.c b/e2sim/previous/ASN1c/RNTP-Threshold.c deleted file mode 100644 index 380b5a6..0000000 --- a/e2sim/previous/ASN1c/RNTP-Threshold.c +++ /dev/null @@ -1,101 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "RNTP-Threshold.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_RNTP_Threshold_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 4, 4, 0, 15 } /* (0..15,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_RNTP_Threshold_value2enum_1[] = { - { 0, 13, "minusInfinity" }, - { 1, 11, "minusEleven" }, - { 2, 8, "minusTen" }, - { 3, 9, "minusNine" }, - { 4, 10, "minusEight" }, - { 5, 10, "minusSeven" }, - { 6, 8, "minusSix" }, - { 7, 9, "minusFive" }, - { 8, 9, "minusFour" }, - { 9, 10, "minusThree" }, - { 10, 8, "minusTwo" }, - { 11, 8, "minusOne" }, - { 12, 4, "zero" }, - { 13, 3, "one" }, - { 14, 3, "two" }, - { 15, 5, "three" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_RNTP_Threshold_enum2value_1[] = { - 4, /* minusEight(4) */ - 1, /* minusEleven(1) */ - 7, /* minusFive(7) */ - 8, /* minusFour(8) */ - 0, /* minusInfinity(0) */ - 3, /* minusNine(3) */ - 11, /* minusOne(11) */ - 5, /* minusSeven(5) */ - 6, /* minusSix(6) */ - 2, /* minusTen(2) */ - 9, /* minusThree(9) */ - 10, /* minusTwo(10) */ - 13, /* one(13) */ - 15, /* three(15) */ - 14, /* two(14) */ - 12 /* zero(12) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_RNTP_Threshold_specs_1 = { - asn_MAP_RNTP_Threshold_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_RNTP_Threshold_enum2value_1, /* N => "tag"; sorted by N */ - 16, /* Number of elements in the maps */ - 17, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_RNTP_Threshold_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RNTP_Threshold = { - "RNTP-Threshold", - "RNTP-Threshold", - &asn_OP_NativeEnumerated, - asn_DEF_RNTP_Threshold_tags_1, - sizeof(asn_DEF_RNTP_Threshold_tags_1) - /sizeof(asn_DEF_RNTP_Threshold_tags_1[0]), /* 1 */ - asn_DEF_RNTP_Threshold_tags_1, /* Same as above */ - sizeof(asn_DEF_RNTP_Threshold_tags_1) - /sizeof(asn_DEF_RNTP_Threshold_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_RNTP_Threshold_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_RNTP_Threshold_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/RNTP-Threshold.h b/e2sim/previous/ASN1c/RNTP-Threshold.h deleted file mode 100644 index 44c5566..0000000 --- a/e2sim/previous/ASN1c/RNTP-Threshold.h +++ /dev/null @@ -1,86 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _RNTP_Threshold_H_ -#define _RNTP_Threshold_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum RNTP_Threshold { - RNTP_Threshold_minusInfinity = 0, - RNTP_Threshold_minusEleven = 1, - RNTP_Threshold_minusTen = 2, - RNTP_Threshold_minusNine = 3, - RNTP_Threshold_minusEight = 4, - RNTP_Threshold_minusSeven = 5, - RNTP_Threshold_minusSix = 6, - RNTP_Threshold_minusFive = 7, - RNTP_Threshold_minusFour = 8, - RNTP_Threshold_minusThree = 9, - RNTP_Threshold_minusTwo = 10, - RNTP_Threshold_minusOne = 11, - RNTP_Threshold_zero = 12, - RNTP_Threshold_one = 13, - RNTP_Threshold_two = 14, - RNTP_Threshold_three = 15 - /* - * Enumeration is extensible - */ -} e_RNTP_Threshold; - -/* RNTP-Threshold */ -typedef long RNTP_Threshold_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_RNTP_Threshold_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_RNTP_Threshold; -extern const asn_INTEGER_specifics_t asn_SPC_RNTP_Threshold_specs_1; -asn_struct_free_f RNTP_Threshold_free; -asn_struct_print_f RNTP_Threshold_print; -asn_constr_check_f RNTP_Threshold_constraint; -ber_type_decoder_f RNTP_Threshold_decode_ber; -der_type_encoder_f RNTP_Threshold_encode_der; -xer_type_decoder_f RNTP_Threshold_decode_xer; -xer_type_encoder_f RNTP_Threshold_encode_xer; -per_type_decoder_f RNTP_Threshold_decode_uper; -per_type_encoder_f RNTP_Threshold_encode_uper; -per_type_decoder_f RNTP_Threshold_decode_aper; -per_type_encoder_f RNTP_Threshold_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RNTP_Threshold_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/RRC-Config-Ind.c b/e2sim/previous/ASN1c/RRC-Config-Ind.c deleted file mode 100644 index 3e68186..0000000 --- a/e2sim/previous/ASN1c/RRC-Config-Ind.c +++ /dev/null @@ -1,73 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "RRC-Config-Ind.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_RRC_Config_Ind_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_RRC_Config_Ind_value2enum_1[] = { - { 0, 11, "full-config" }, - { 1, 12, "delta-config" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_RRC_Config_Ind_enum2value_1[] = { - 1, /* delta-config(1) */ - 0 /* full-config(0) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_RRC_Config_Ind_specs_1 = { - asn_MAP_RRC_Config_Ind_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_RRC_Config_Ind_enum2value_1, /* N => "tag"; sorted by N */ - 2, /* Number of elements in the maps */ - 3, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_RRC_Config_Ind_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RRC_Config_Ind = { - "RRC-Config-Ind", - "RRC-Config-Ind", - &asn_OP_NativeEnumerated, - asn_DEF_RRC_Config_Ind_tags_1, - sizeof(asn_DEF_RRC_Config_Ind_tags_1) - /sizeof(asn_DEF_RRC_Config_Ind_tags_1[0]), /* 1 */ - asn_DEF_RRC_Config_Ind_tags_1, /* Same as above */ - sizeof(asn_DEF_RRC_Config_Ind_tags_1) - /sizeof(asn_DEF_RRC_Config_Ind_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_RRC_Config_Ind_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_RRC_Config_Ind_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/RRC-Config-Ind.h b/e2sim/previous/ASN1c/RRC-Config-Ind.h deleted file mode 100644 index 9c9fa94..0000000 --- a/e2sim/previous/ASN1c/RRC-Config-Ind.h +++ /dev/null @@ -1,72 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _RRC_Config_Ind_H_ -#define _RRC_Config_Ind_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum RRC_Config_Ind { - RRC_Config_Ind_full_config = 0, - RRC_Config_Ind_delta_config = 1 - /* - * Enumeration is extensible - */ -} e_RRC_Config_Ind; - -/* RRC-Config-Ind */ -typedef long RRC_Config_Ind_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_RRC_Config_Ind_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_RRC_Config_Ind; -extern const asn_INTEGER_specifics_t asn_SPC_RRC_Config_Ind_specs_1; -asn_struct_free_f RRC_Config_Ind_free; -asn_struct_print_f RRC_Config_Ind_print; -asn_constr_check_f RRC_Config_Ind_constraint; -ber_type_decoder_f RRC_Config_Ind_decode_ber; -der_type_encoder_f RRC_Config_Ind_encode_der; -xer_type_decoder_f RRC_Config_Ind_decode_xer; -xer_type_encoder_f RRC_Config_Ind_encode_xer; -per_type_decoder_f RRC_Config_Ind_decode_uper; -per_type_encoder_f RRC_Config_Ind_encode_uper; -per_type_decoder_f RRC_Config_Ind_decode_aper; -per_type_encoder_f RRC_Config_Ind_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RRC_Config_Ind_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/RRC-Context.c b/e2sim/previous/ASN1c/RRC-Context.c deleted file mode 100644 index 059f8d1..0000000 --- a/e2sim/previous/ASN1c/RRC-Context.c +++ /dev/null @@ -1,49 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "RRC-Context.h" - -/* - * This type is implemented using OCTET_STRING, - * so here we adjust the DEF accordingly. - */ -static const ber_tlv_tag_t asn_DEF_RRC_Context_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RRC_Context = { - "RRC-Context", - "RRC-Context", - &asn_OP_OCTET_STRING, - asn_DEF_RRC_Context_tags_1, - sizeof(asn_DEF_RRC_Context_tags_1) - /sizeof(asn_DEF_RRC_Context_tags_1[0]), /* 1 */ - asn_DEF_RRC_Context_tags_1, /* Same as above */ - sizeof(asn_DEF_RRC_Context_tags_1) - /sizeof(asn_DEF_RRC_Context_tags_1[0]), /* 1 */ - { 0, 0, OCTET_STRING_constraint }, - 0, 0, /* No members */ - &asn_SPC_OCTET_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/RRC-Context.h b/e2sim/previous/ASN1c/RRC-Context.h deleted file mode 100644 index b6600dc..0000000 --- a/e2sim/previous/ASN1c/RRC-Context.h +++ /dev/null @@ -1,61 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _RRC_Context_H_ -#define _RRC_Context_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "OCTET_STRING.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RRC-Context */ -typedef OCTET_STRING_t RRC_Context_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RRC_Context; -asn_struct_free_f RRC_Context_free; -asn_struct_print_f RRC_Context_print; -asn_constr_check_f RRC_Context_constraint; -ber_type_decoder_f RRC_Context_decode_ber; -der_type_encoder_f RRC_Context_encode_der; -xer_type_decoder_f RRC_Context_decode_xer; -xer_type_encoder_f RRC_Context_encode_xer; -per_type_decoder_f RRC_Context_decode_uper; -per_type_encoder_f RRC_Context_encode_uper; -per_type_decoder_f RRC_Context_decode_aper; -per_type_encoder_f RRC_Context_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RRC_Context_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/RRCConnReestabIndicator.c b/e2sim/previous/ASN1c/RRCConnReestabIndicator.c deleted file mode 100644 index 36ab74e..0000000 --- a/e2sim/previous/ASN1c/RRCConnReestabIndicator.c +++ /dev/null @@ -1,75 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "RRCConnReestabIndicator.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_RRCConnReestabIndicator_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 2 } /* (0..2,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_RRCConnReestabIndicator_value2enum_1[] = { - { 0, 22, "reconfigurationFailure" }, - { 1, 15, "handoverFailure" }, - { 2, 12, "otherFailure" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_RRCConnReestabIndicator_enum2value_1[] = { - 1, /* handoverFailure(1) */ - 2, /* otherFailure(2) */ - 0 /* reconfigurationFailure(0) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_RRCConnReestabIndicator_specs_1 = { - asn_MAP_RRCConnReestabIndicator_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_RRCConnReestabIndicator_enum2value_1, /* N => "tag"; sorted by N */ - 3, /* Number of elements in the maps */ - 4, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_RRCConnReestabIndicator_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RRCConnReestabIndicator = { - "RRCConnReestabIndicator", - "RRCConnReestabIndicator", - &asn_OP_NativeEnumerated, - asn_DEF_RRCConnReestabIndicator_tags_1, - sizeof(asn_DEF_RRCConnReestabIndicator_tags_1) - /sizeof(asn_DEF_RRCConnReestabIndicator_tags_1[0]), /* 1 */ - asn_DEF_RRCConnReestabIndicator_tags_1, /* Same as above */ - sizeof(asn_DEF_RRCConnReestabIndicator_tags_1) - /sizeof(asn_DEF_RRCConnReestabIndicator_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_RRCConnReestabIndicator_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_RRCConnReestabIndicator_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/RRCConnReestabIndicator.h b/e2sim/previous/ASN1c/RRCConnReestabIndicator.h deleted file mode 100644 index 876d3f7..0000000 --- a/e2sim/previous/ASN1c/RRCConnReestabIndicator.h +++ /dev/null @@ -1,73 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _RRCConnReestabIndicator_H_ -#define _RRCConnReestabIndicator_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum RRCConnReestabIndicator { - RRCConnReestabIndicator_reconfigurationFailure = 0, - RRCConnReestabIndicator_handoverFailure = 1, - RRCConnReestabIndicator_otherFailure = 2 - /* - * Enumeration is extensible - */ -} e_RRCConnReestabIndicator; - -/* RRCConnReestabIndicator */ -typedef long RRCConnReestabIndicator_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_RRCConnReestabIndicator_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_RRCConnReestabIndicator; -extern const asn_INTEGER_specifics_t asn_SPC_RRCConnReestabIndicator_specs_1; -asn_struct_free_f RRCConnReestabIndicator_free; -asn_struct_print_f RRCConnReestabIndicator_print; -asn_constr_check_f RRCConnReestabIndicator_constraint; -ber_type_decoder_f RRCConnReestabIndicator_decode_ber; -der_type_encoder_f RRCConnReestabIndicator_encode_der; -xer_type_decoder_f RRCConnReestabIndicator_decode_xer; -xer_type_encoder_f RRCConnReestabIndicator_encode_xer; -per_type_decoder_f RRCConnReestabIndicator_decode_uper; -per_type_encoder_f RRCConnReestabIndicator_encode_uper; -per_type_decoder_f RRCConnReestabIndicator_decode_aper; -per_type_encoder_f RRCConnReestabIndicator_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RRCConnReestabIndicator_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/RRCConnSetupIndicator.c b/e2sim/previous/ASN1c/RRCConnSetupIndicator.c deleted file mode 100644 index 7135006..0000000 --- a/e2sim/previous/ASN1c/RRCConnSetupIndicator.c +++ /dev/null @@ -1,71 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "RRCConnSetupIndicator.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_RRCConnSetupIndicator_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 0, 0 } /* (0..0,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_RRCConnSetupIndicator_value2enum_1[] = { - { 0, 12, "rrcConnSetup" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_RRCConnSetupIndicator_enum2value_1[] = { - 0 /* rrcConnSetup(0) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_RRCConnSetupIndicator_specs_1 = { - asn_MAP_RRCConnSetupIndicator_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_RRCConnSetupIndicator_enum2value_1, /* N => "tag"; sorted by N */ - 1, /* Number of elements in the maps */ - 2, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_RRCConnSetupIndicator_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RRCConnSetupIndicator = { - "RRCConnSetupIndicator", - "RRCConnSetupIndicator", - &asn_OP_NativeEnumerated, - asn_DEF_RRCConnSetupIndicator_tags_1, - sizeof(asn_DEF_RRCConnSetupIndicator_tags_1) - /sizeof(asn_DEF_RRCConnSetupIndicator_tags_1[0]), /* 1 */ - asn_DEF_RRCConnSetupIndicator_tags_1, /* Same as above */ - sizeof(asn_DEF_RRCConnSetupIndicator_tags_1) - /sizeof(asn_DEF_RRCConnSetupIndicator_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_RRCConnSetupIndicator_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_RRCConnSetupIndicator_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/RRCConnSetupIndicator.h b/e2sim/previous/ASN1c/RRCConnSetupIndicator.h deleted file mode 100644 index a502abe..0000000 --- a/e2sim/previous/ASN1c/RRCConnSetupIndicator.h +++ /dev/null @@ -1,71 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _RRCConnSetupIndicator_H_ -#define _RRCConnSetupIndicator_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum RRCConnSetupIndicator { - RRCConnSetupIndicator_rrcConnSetup = 0 - /* - * Enumeration is extensible - */ -} e_RRCConnSetupIndicator; - -/* RRCConnSetupIndicator */ -typedef long RRCConnSetupIndicator_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_RRCConnSetupIndicator_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_RRCConnSetupIndicator; -extern const asn_INTEGER_specifics_t asn_SPC_RRCConnSetupIndicator_specs_1; -asn_struct_free_f RRCConnSetupIndicator_free; -asn_struct_print_f RRCConnSetupIndicator_print; -asn_constr_check_f RRCConnSetupIndicator_constraint; -ber_type_decoder_f RRCConnSetupIndicator_decode_ber; -der_type_encoder_f RRCConnSetupIndicator_encode_der; -xer_type_decoder_f RRCConnSetupIndicator_decode_xer; -xer_type_encoder_f RRCConnSetupIndicator_encode_xer; -per_type_decoder_f RRCConnSetupIndicator_decode_uper; -per_type_encoder_f RRCConnSetupIndicator_encode_uper; -per_type_decoder_f RRCConnSetupIndicator_decode_aper; -per_type_encoder_f RRCConnSetupIndicator_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RRCConnSetupIndicator_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/RRCContainer.c b/e2sim/previous/ASN1c/RRCContainer.c deleted file mode 100644 index 7951f3c..0000000 --- a/e2sim/previous/ASN1c/RRCContainer.c +++ /dev/null @@ -1,49 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "RRCContainer.h" - -/* - * This type is implemented using OCTET_STRING, - * so here we adjust the DEF accordingly. - */ -static const ber_tlv_tag_t asn_DEF_RRCContainer_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RRCContainer = { - "RRCContainer", - "RRCContainer", - &asn_OP_OCTET_STRING, - asn_DEF_RRCContainer_tags_1, - sizeof(asn_DEF_RRCContainer_tags_1) - /sizeof(asn_DEF_RRCContainer_tags_1[0]), /* 1 */ - asn_DEF_RRCContainer_tags_1, /* Same as above */ - sizeof(asn_DEF_RRCContainer_tags_1) - /sizeof(asn_DEF_RRCContainer_tags_1[0]), /* 1 */ - { 0, 0, OCTET_STRING_constraint }, - 0, 0, /* No members */ - &asn_SPC_OCTET_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/RRCContainer.h b/e2sim/previous/ASN1c/RRCContainer.h deleted file mode 100644 index ebd1537..0000000 --- a/e2sim/previous/ASN1c/RRCContainer.h +++ /dev/null @@ -1,61 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _RRCContainer_H_ -#define _RRCContainer_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "OCTET_STRING.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RRCContainer */ -typedef OCTET_STRING_t RRCContainer_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RRCContainer; -asn_struct_free_f RRCContainer_free; -asn_struct_print_f RRCContainer_print; -asn_constr_check_f RRCContainer_constraint; -ber_type_decoder_f RRCContainer_decode_ber; -der_type_encoder_f RRCContainer_encode_der; -xer_type_decoder_f RRCContainer_decode_xer; -xer_type_encoder_f RRCContainer_encode_xer; -per_type_decoder_f RRCContainer_decode_uper; -per_type_encoder_f RRCContainer_encode_uper; -per_type_decoder_f RRCContainer_decode_aper; -per_type_encoder_f RRCContainer_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RRCContainer_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/RRCTransfer.c b/e2sim/previous/ASN1c/RRCTransfer.c deleted file mode 100644 index c4bbc5e..0000000 --- a/e2sim/previous/ASN1c/RRCTransfer.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "RRCTransfer.h" - -static asn_TYPE_member_t asn_MBR_RRCTransfer_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RRCTransfer, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_119P82, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_RRCTransfer_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RRCTransfer_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_RRCTransfer_specs_1 = { - sizeof(struct RRCTransfer), - offsetof(struct RRCTransfer, _asn_ctx), - asn_MAP_RRCTransfer_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RRCTransfer = { - "RRCTransfer", - "RRCTransfer", - &asn_OP_SEQUENCE, - asn_DEF_RRCTransfer_tags_1, - sizeof(asn_DEF_RRCTransfer_tags_1) - /sizeof(asn_DEF_RRCTransfer_tags_1[0]), /* 1 */ - asn_DEF_RRCTransfer_tags_1, /* Same as above */ - sizeof(asn_DEF_RRCTransfer_tags_1) - /sizeof(asn_DEF_RRCTransfer_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RRCTransfer_1, - 1, /* Elements count */ - &asn_SPC_RRCTransfer_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/RRCTransfer.h b/e2sim/previous/ASN1c/RRCTransfer.h deleted file mode 100644 index fb5c3c7..0000000 --- a/e2sim/previous/ASN1c/RRCTransfer.h +++ /dev/null @@ -1,60 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _RRCTransfer_H_ -#define _RRCTransfer_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RRCTransfer */ -typedef struct RRCTransfer { - ProtocolIE_Container_119P82_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RRCTransfer_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RRCTransfer; - -#ifdef __cplusplus -} -#endif - -#endif /* _RRCTransfer_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/RSRPMRList.c b/e2sim/previous/ASN1c/RSRPMRList.c deleted file mode 100644 index c5c9390..0000000 --- a/e2sim/previous/ASN1c/RSRPMRList.c +++ /dev/null @@ -1,122 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "RSRPMRList.h" - -#include "ProtocolExtensionContainer.h" -asn_per_constraints_t asn_PER_type_RSRPMRList_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 7, 7, 1, 128 } /* (SIZE(1..128)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_Member_2[] = { - { ATF_NOFLAGS, 0, offsetof(struct RSRPMRList__Member, rSRPMeasurementResult), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RSRPMeasurementResult, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "rSRPMeasurementResult" - }, - { ATF_POINTER, 1, offsetof(struct RSRPMRList__Member, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P188, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_Member_oms_2[] = { 1 }; -static const ber_tlv_tag_t asn_DEF_Member_tags_2[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_Member_tag2el_2[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* rSRPMeasurementResult */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_Member_specs_2 = { - sizeof(struct RSRPMRList__Member), - offsetof(struct RSRPMRList__Member, _asn_ctx), - asn_MAP_Member_tag2el_2, - 2, /* Count of tags in the map */ - asn_MAP_Member_oms_2, /* Optional members */ - 1, 0, /* Root/Additions */ - 2, /* First extension addition */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_Member_2 = { - "SEQUENCE", - "SEQUENCE", - &asn_OP_SEQUENCE, - asn_DEF_Member_tags_2, - sizeof(asn_DEF_Member_tags_2) - /sizeof(asn_DEF_Member_tags_2[0]), /* 1 */ - asn_DEF_Member_tags_2, /* Same as above */ - sizeof(asn_DEF_Member_tags_2) - /sizeof(asn_DEF_Member_tags_2[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_Member_2, - 2, /* Elements count */ - &asn_SPC_Member_specs_2 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_RSRPMRList_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_Member_2, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_RSRPMRList_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_RSRPMRList_specs_1 = { - sizeof(struct RSRPMRList), - offsetof(struct RSRPMRList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_RSRPMRList = { - "RSRPMRList", - "RSRPMRList", - &asn_OP_SEQUENCE_OF, - asn_DEF_RSRPMRList_tags_1, - sizeof(asn_DEF_RSRPMRList_tags_1) - /sizeof(asn_DEF_RSRPMRList_tags_1[0]), /* 1 */ - asn_DEF_RSRPMRList_tags_1, /* Same as above */ - sizeof(asn_DEF_RSRPMRList_tags_1) - /sizeof(asn_DEF_RSRPMRList_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_RSRPMRList_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_RSRPMRList_1, - 1, /* Single element */ - &asn_SPC_RSRPMRList_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/RSRPMRList.h b/e2sim/previous/ASN1c/RSRPMRList.h deleted file mode 100644 index 7faf138..0000000 --- a/e2sim/previous/ASN1c/RSRPMRList.h +++ /dev/null @@ -1,77 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _RSRPMRList_H_ -#define _RSRPMRList_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "RSRPMeasurementResult.h" -#include "constr_SEQUENCE.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* Forward definitions */ -typedef struct RSRPMRList__Member { - RSRPMeasurementResult_t rSRPMeasurementResult; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RSRPMRList__Member; - -/* RSRPMRList */ -typedef struct RSRPMRList { - A_SEQUENCE_OF(RSRPMRList__Member) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RSRPMRList_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RSRPMRList; -extern asn_SET_OF_specifics_t asn_SPC_RSRPMRList_specs_1; -extern asn_TYPE_member_t asn_MBR_RSRPMRList_1[1]; -extern asn_per_constraints_t asn_PER_type_RSRPMRList_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _RSRPMRList_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/RSRPMeasurementResult.c b/e2sim/previous/ASN1c/RSRPMeasurementResult.c deleted file mode 100644 index 9f66317..0000000 --- a/e2sim/previous/ASN1c/RSRPMeasurementResult.c +++ /dev/null @@ -1,162 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "RSRPMeasurementResult.h" - -#include "ProtocolExtensionContainer.h" -static int -memb_rSRPMeasured_constraint_2(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 97)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_per_constraints_t asn_PER_memb_rSRPMeasured_constr_4 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 7, 7, 0, 97 } /* (0..97,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_RSRPMeasurementResult_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 4, 4, 1, 9 } /* (SIZE(1..9)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_Member_2[] = { - { ATF_NOFLAGS, 0, offsetof(struct RSRPMeasurementResult__Member, rSRPCellID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ECGI, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "rSRPCellID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RSRPMeasurementResult__Member, rSRPMeasured), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { 0, &asn_PER_memb_rSRPMeasured_constr_4, memb_rSRPMeasured_constraint_2 }, - 0, 0, /* No default value */ - "rSRPMeasured" - }, - { ATF_POINTER, 1, offsetof(struct RSRPMeasurementResult__Member, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P187, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_Member_oms_2[] = { 2 }; -static const ber_tlv_tag_t asn_DEF_Member_tags_2[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_Member_tag2el_2[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* rSRPCellID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* rSRPMeasured */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_Member_specs_2 = { - sizeof(struct RSRPMeasurementResult__Member), - offsetof(struct RSRPMeasurementResult__Member, _asn_ctx), - asn_MAP_Member_tag2el_2, - 3, /* Count of tags in the map */ - asn_MAP_Member_oms_2, /* Optional members */ - 1, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_Member_2 = { - "SEQUENCE", - "SEQUENCE", - &asn_OP_SEQUENCE, - asn_DEF_Member_tags_2, - sizeof(asn_DEF_Member_tags_2) - /sizeof(asn_DEF_Member_tags_2[0]), /* 1 */ - asn_DEF_Member_tags_2, /* Same as above */ - sizeof(asn_DEF_Member_tags_2) - /sizeof(asn_DEF_Member_tags_2[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_Member_2, - 3, /* Elements count */ - &asn_SPC_Member_specs_2 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_RSRPMeasurementResult_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_Member_2, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_RSRPMeasurementResult_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_RSRPMeasurementResult_specs_1 = { - sizeof(struct RSRPMeasurementResult), - offsetof(struct RSRPMeasurementResult, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_RSRPMeasurementResult = { - "RSRPMeasurementResult", - "RSRPMeasurementResult", - &asn_OP_SEQUENCE_OF, - asn_DEF_RSRPMeasurementResult_tags_1, - sizeof(asn_DEF_RSRPMeasurementResult_tags_1) - /sizeof(asn_DEF_RSRPMeasurementResult_tags_1[0]), /* 1 */ - asn_DEF_RSRPMeasurementResult_tags_1, /* Same as above */ - sizeof(asn_DEF_RSRPMeasurementResult_tags_1) - /sizeof(asn_DEF_RSRPMeasurementResult_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_RSRPMeasurementResult_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_RSRPMeasurementResult_1, - 1, /* Single element */ - &asn_SPC_RSRPMeasurementResult_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/RSRPMeasurementResult.h b/e2sim/previous/ASN1c/RSRPMeasurementResult.h deleted file mode 100644 index 5cbf004..0000000 --- a/e2sim/previous/ASN1c/RSRPMeasurementResult.h +++ /dev/null @@ -1,79 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _RSRPMeasurementResult_H_ -#define _RSRPMeasurementResult_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "ECGI.h" -#include "NativeInteger.h" -#include "constr_SEQUENCE.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* Forward definitions */ -typedef struct RSRPMeasurementResult__Member { - ECGI_t rSRPCellID; - long rSRPMeasured; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RSRPMeasurementResult__Member; - -/* RSRPMeasurementResult */ -typedef struct RSRPMeasurementResult { - A_SEQUENCE_OF(RSRPMeasurementResult__Member) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RSRPMeasurementResult_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RSRPMeasurementResult; -extern asn_SET_OF_specifics_t asn_SPC_RSRPMeasurementResult_specs_1; -extern asn_TYPE_member_t asn_MBR_RSRPMeasurementResult_1[1]; -extern asn_per_constraints_t asn_PER_type_RSRPMeasurementResult_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _RSRPMeasurementResult_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/RadioResourceStatus.c b/e2sim/previous/ASN1c/RadioResourceStatus.c deleted file mode 100644 index 8d84be2..0000000 --- a/e2sim/previous/ASN1c/RadioResourceStatus.c +++ /dev/null @@ -1,131 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "RadioResourceStatus.h" - -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_RadioResourceStatus_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RadioResourceStatus, dL_GBR_PRB_usage), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_DL_GBR_PRB_usage, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "dL-GBR-PRB-usage" - }, - { ATF_NOFLAGS, 0, offsetof(struct RadioResourceStatus, uL_GBR_PRB_usage), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_UL_GBR_PRB_usage, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "uL-GBR-PRB-usage" - }, - { ATF_NOFLAGS, 0, offsetof(struct RadioResourceStatus, dL_non_GBR_PRB_usage), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_DL_non_GBR_PRB_usage, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "dL-non-GBR-PRB-usage" - }, - { ATF_NOFLAGS, 0, offsetof(struct RadioResourceStatus, uL_non_GBR_PRB_usage), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_UL_non_GBR_PRB_usage, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "uL-non-GBR-PRB-usage" - }, - { ATF_NOFLAGS, 0, offsetof(struct RadioResourceStatus, dL_Total_PRB_usage), - (ASN_TAG_CLASS_CONTEXT | (4 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_DL_Total_PRB_usage, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "dL-Total-PRB-usage" - }, - { ATF_NOFLAGS, 0, offsetof(struct RadioResourceStatus, uL_Total_PRB_usage), - (ASN_TAG_CLASS_CONTEXT | (5 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_UL_Total_PRB_usage, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "uL-Total-PRB-usage" - }, - { ATF_POINTER, 1, offsetof(struct RadioResourceStatus, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (6 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P183, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_RadioResourceStatus_oms_1[] = { 6 }; -static const ber_tlv_tag_t asn_DEF_RadioResourceStatus_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RadioResourceStatus_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* dL-GBR-PRB-usage */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* uL-GBR-PRB-usage */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* dL-non-GBR-PRB-usage */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* uL-non-GBR-PRB-usage */ - { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* dL-Total-PRB-usage */ - { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* uL-Total-PRB-usage */ - { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RadioResourceStatus_specs_1 = { - sizeof(struct RadioResourceStatus), - offsetof(struct RadioResourceStatus, _asn_ctx), - asn_MAP_RadioResourceStatus_tag2el_1, - 7, /* Count of tags in the map */ - asn_MAP_RadioResourceStatus_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 7, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RadioResourceStatus = { - "RadioResourceStatus", - "RadioResourceStatus", - &asn_OP_SEQUENCE, - asn_DEF_RadioResourceStatus_tags_1, - sizeof(asn_DEF_RadioResourceStatus_tags_1) - /sizeof(asn_DEF_RadioResourceStatus_tags_1[0]), /* 1 */ - asn_DEF_RadioResourceStatus_tags_1, /* Same as above */ - sizeof(asn_DEF_RadioResourceStatus_tags_1) - /sizeof(asn_DEF_RadioResourceStatus_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RadioResourceStatus_1, - 7, /* Elements count */ - &asn_SPC_RadioResourceStatus_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/RadioResourceStatus.h b/e2sim/previous/ASN1c/RadioResourceStatus.h deleted file mode 100644 index e6a8a20..0000000 --- a/e2sim/previous/ASN1c/RadioResourceStatus.h +++ /dev/null @@ -1,76 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _RadioResourceStatus_H_ -#define _RadioResourceStatus_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "DL-GBR-PRB-usage.h" -#include "UL-GBR-PRB-usage.h" -#include "DL-non-GBR-PRB-usage.h" -#include "UL-non-GBR-PRB-usage.h" -#include "DL-Total-PRB-usage.h" -#include "UL-Total-PRB-usage.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* RadioResourceStatus */ -typedef struct RadioResourceStatus { - DL_GBR_PRB_usage_t dL_GBR_PRB_usage; - UL_GBR_PRB_usage_t uL_GBR_PRB_usage; - DL_non_GBR_PRB_usage_t dL_non_GBR_PRB_usage; - UL_non_GBR_PRB_usage_t uL_non_GBR_PRB_usage; - DL_Total_PRB_usage_t dL_Total_PRB_usage; - UL_Total_PRB_usage_t uL_Total_PRB_usage; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RadioResourceStatus_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RadioResourceStatus; -extern asn_SEQUENCE_specifics_t asn_SPC_RadioResourceStatus_specs_1; -extern asn_TYPE_member_t asn_MBR_RadioResourceStatus_1[7]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RadioResourceStatus_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/RadioframeAllocationOffset.c b/e2sim/previous/ASN1c/RadioframeAllocationOffset.c deleted file mode 100644 index 9c897f4..0000000 --- a/e2sim/previous/ASN1c/RadioframeAllocationOffset.c +++ /dev/null @@ -1,79 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "RadioframeAllocationOffset.h" - -int -RadioframeAllocationOffset_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 7)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using NativeInteger, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_RadioframeAllocationOffset_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 7 } /* (0..7,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_RadioframeAllocationOffset_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RadioframeAllocationOffset = { - "RadioframeAllocationOffset", - "RadioframeAllocationOffset", - &asn_OP_NativeInteger, - asn_DEF_RadioframeAllocationOffset_tags_1, - sizeof(asn_DEF_RadioframeAllocationOffset_tags_1) - /sizeof(asn_DEF_RadioframeAllocationOffset_tags_1[0]), /* 1 */ - asn_DEF_RadioframeAllocationOffset_tags_1, /* Same as above */ - sizeof(asn_DEF_RadioframeAllocationOffset_tags_1) - /sizeof(asn_DEF_RadioframeAllocationOffset_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_RadioframeAllocationOffset_constr_1, RadioframeAllocationOffset_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/previous/ASN1c/RadioframeAllocationOffset.h b/e2sim/previous/ASN1c/RadioframeAllocationOffset.h deleted file mode 100644 index 355b908..0000000 --- a/e2sim/previous/ASN1c/RadioframeAllocationOffset.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _RadioframeAllocationOffset_H_ -#define _RadioframeAllocationOffset_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeInteger.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RadioframeAllocationOffset */ -typedef long RadioframeAllocationOffset_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_RadioframeAllocationOffset_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_RadioframeAllocationOffset; -asn_struct_free_f RadioframeAllocationOffset_free; -asn_struct_print_f RadioframeAllocationOffset_print; -asn_constr_check_f RadioframeAllocationOffset_constraint; -ber_type_decoder_f RadioframeAllocationOffset_decode_ber; -der_type_encoder_f RadioframeAllocationOffset_encode_der; -xer_type_decoder_f RadioframeAllocationOffset_decode_xer; -xer_type_encoder_f RadioframeAllocationOffset_encode_xer; -per_type_decoder_f RadioframeAllocationOffset_decode_uper; -per_type_encoder_f RadioframeAllocationOffset_encode_uper; -per_type_decoder_f RadioframeAllocationOffset_decode_aper; -per_type_encoder_f RadioframeAllocationOffset_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RadioframeAllocationOffset_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/RadioframeAllocationPeriod.c b/e2sim/previous/ASN1c/RadioframeAllocationPeriod.c deleted file mode 100644 index f1348f6..0000000 --- a/e2sim/previous/ASN1c/RadioframeAllocationPeriod.c +++ /dev/null @@ -1,81 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "RadioframeAllocationPeriod.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_RadioframeAllocationPeriod_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 5 } /* (0..5,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_RadioframeAllocationPeriod_value2enum_1[] = { - { 0, 2, "n1" }, - { 1, 2, "n2" }, - { 2, 2, "n4" }, - { 3, 2, "n8" }, - { 4, 3, "n16" }, - { 5, 3, "n32" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_RadioframeAllocationPeriod_enum2value_1[] = { - 0, /* n1(0) */ - 4, /* n16(4) */ - 1, /* n2(1) */ - 5, /* n32(5) */ - 2, /* n4(2) */ - 3 /* n8(3) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_RadioframeAllocationPeriod_specs_1 = { - asn_MAP_RadioframeAllocationPeriod_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_RadioframeAllocationPeriod_enum2value_1, /* N => "tag"; sorted by N */ - 6, /* Number of elements in the maps */ - 7, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_RadioframeAllocationPeriod_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RadioframeAllocationPeriod = { - "RadioframeAllocationPeriod", - "RadioframeAllocationPeriod", - &asn_OP_NativeEnumerated, - asn_DEF_RadioframeAllocationPeriod_tags_1, - sizeof(asn_DEF_RadioframeAllocationPeriod_tags_1) - /sizeof(asn_DEF_RadioframeAllocationPeriod_tags_1[0]), /* 1 */ - asn_DEF_RadioframeAllocationPeriod_tags_1, /* Same as above */ - sizeof(asn_DEF_RadioframeAllocationPeriod_tags_1) - /sizeof(asn_DEF_RadioframeAllocationPeriod_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_RadioframeAllocationPeriod_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_RadioframeAllocationPeriod_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/RadioframeAllocationPeriod.h b/e2sim/previous/ASN1c/RadioframeAllocationPeriod.h deleted file mode 100644 index 67a5d2d..0000000 --- a/e2sim/previous/ASN1c/RadioframeAllocationPeriod.h +++ /dev/null @@ -1,76 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _RadioframeAllocationPeriod_H_ -#define _RadioframeAllocationPeriod_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum RadioframeAllocationPeriod { - RadioframeAllocationPeriod_n1 = 0, - RadioframeAllocationPeriod_n2 = 1, - RadioframeAllocationPeriod_n4 = 2, - RadioframeAllocationPeriod_n8 = 3, - RadioframeAllocationPeriod_n16 = 4, - RadioframeAllocationPeriod_n32 = 5 - /* - * Enumeration is extensible - */ -} e_RadioframeAllocationPeriod; - -/* RadioframeAllocationPeriod */ -typedef long RadioframeAllocationPeriod_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_RadioframeAllocationPeriod_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_RadioframeAllocationPeriod; -extern const asn_INTEGER_specifics_t asn_SPC_RadioframeAllocationPeriod_specs_1; -asn_struct_free_f RadioframeAllocationPeriod_free; -asn_struct_print_f RadioframeAllocationPeriod_print; -asn_constr_check_f RadioframeAllocationPeriod_constraint; -ber_type_decoder_f RadioframeAllocationPeriod_decode_ber; -der_type_encoder_f RadioframeAllocationPeriod_encode_der; -xer_type_decoder_f RadioframeAllocationPeriod_decode_xer; -xer_type_encoder_f RadioframeAllocationPeriod_encode_xer; -per_type_decoder_f RadioframeAllocationPeriod_decode_uper; -per_type_encoder_f RadioframeAllocationPeriod_encode_uper; -per_type_decoder_f RadioframeAllocationPeriod_decode_aper; -per_type_encoder_f RadioframeAllocationPeriod_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RadioframeAllocationPeriod_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/ReceiveStatusOfULPDCPSDUsExtended.c b/e2sim/previous/ASN1c/ReceiveStatusOfULPDCPSDUsExtended.c deleted file mode 100644 index 8f5ded6..0000000 --- a/e2sim/previous/ASN1c/ReceiveStatusOfULPDCPSDUsExtended.c +++ /dev/null @@ -1,85 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "ReceiveStatusOfULPDCPSDUsExtended.h" - -int -ReceiveStatusOfULPDCPSDUsExtended_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if(st->size > 0) { - /* Size in bits */ - size = 8 * st->size - (st->bits_unused & 0x07); - } else { - size = 0; - } - - if((size >= 1 && size <= 16384)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using BIT_STRING, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_ReceiveStatusOfULPDCPSDUsExtended_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 14, 14, 1, 16384 } /* (SIZE(1..16384)) */, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_ReceiveStatusOfULPDCPSDUsExtended_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ReceiveStatusOfULPDCPSDUsExtended = { - "ReceiveStatusOfULPDCPSDUsExtended", - "ReceiveStatusOfULPDCPSDUsExtended", - &asn_OP_BIT_STRING, - asn_DEF_ReceiveStatusOfULPDCPSDUsExtended_tags_1, - sizeof(asn_DEF_ReceiveStatusOfULPDCPSDUsExtended_tags_1) - /sizeof(asn_DEF_ReceiveStatusOfULPDCPSDUsExtended_tags_1[0]), /* 1 */ - asn_DEF_ReceiveStatusOfULPDCPSDUsExtended_tags_1, /* Same as above */ - sizeof(asn_DEF_ReceiveStatusOfULPDCPSDUsExtended_tags_1) - /sizeof(asn_DEF_ReceiveStatusOfULPDCPSDUsExtended_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_ReceiveStatusOfULPDCPSDUsExtended_constr_1, ReceiveStatusOfULPDCPSDUsExtended_constraint }, - 0, 0, /* No members */ - &asn_SPC_BIT_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/ReceiveStatusOfULPDCPSDUsExtended.h b/e2sim/previous/ASN1c/ReceiveStatusOfULPDCPSDUsExtended.h deleted file mode 100644 index b26f98d..0000000 --- a/e2sim/previous/ASN1c/ReceiveStatusOfULPDCPSDUsExtended.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _ReceiveStatusOfULPDCPSDUsExtended_H_ -#define _ReceiveStatusOfULPDCPSDUsExtended_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "BIT_STRING.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* ReceiveStatusOfULPDCPSDUsExtended */ -typedef BIT_STRING_t ReceiveStatusOfULPDCPSDUsExtended_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_ReceiveStatusOfULPDCPSDUsExtended_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_ReceiveStatusOfULPDCPSDUsExtended; -asn_struct_free_f ReceiveStatusOfULPDCPSDUsExtended_free; -asn_struct_print_f ReceiveStatusOfULPDCPSDUsExtended_print; -asn_constr_check_f ReceiveStatusOfULPDCPSDUsExtended_constraint; -ber_type_decoder_f ReceiveStatusOfULPDCPSDUsExtended_decode_ber; -der_type_encoder_f ReceiveStatusOfULPDCPSDUsExtended_encode_der; -xer_type_decoder_f ReceiveStatusOfULPDCPSDUsExtended_decode_xer; -xer_type_encoder_f ReceiveStatusOfULPDCPSDUsExtended_encode_xer; -per_type_decoder_f ReceiveStatusOfULPDCPSDUsExtended_decode_uper; -per_type_encoder_f ReceiveStatusOfULPDCPSDUsExtended_encode_uper; -per_type_decoder_f ReceiveStatusOfULPDCPSDUsExtended_decode_aper; -per_type_encoder_f ReceiveStatusOfULPDCPSDUsExtended_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _ReceiveStatusOfULPDCPSDUsExtended_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/ReceiveStatusOfULPDCPSDUsPDCP-SNlength18.c b/e2sim/previous/ASN1c/ReceiveStatusOfULPDCPSDUsPDCP-SNlength18.c deleted file mode 100644 index 5358f63..0000000 --- a/e2sim/previous/ASN1c/ReceiveStatusOfULPDCPSDUsPDCP-SNlength18.c +++ /dev/null @@ -1,85 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "ReceiveStatusOfULPDCPSDUsPDCP-SNlength18.h" - -int -ReceiveStatusOfULPDCPSDUsPDCP_SNlength18_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if(st->size > 0) { - /* Size in bits */ - size = 8 * st->size - (st->bits_unused & 0x07); - } else { - size = 0; - } - - if((size >= 1 && size <= 131072)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using BIT_STRING, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_ReceiveStatusOfULPDCPSDUsPDCP_SNlength18_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 17, -1, 1, 131072 } /* (SIZE(1..131072)) */, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_ReceiveStatusOfULPDCPSDUsPDCP_SNlength18_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ReceiveStatusOfULPDCPSDUsPDCP_SNlength18 = { - "ReceiveStatusOfULPDCPSDUsPDCP-SNlength18", - "ReceiveStatusOfULPDCPSDUsPDCP-SNlength18", - &asn_OP_BIT_STRING, - asn_DEF_ReceiveStatusOfULPDCPSDUsPDCP_SNlength18_tags_1, - sizeof(asn_DEF_ReceiveStatusOfULPDCPSDUsPDCP_SNlength18_tags_1) - /sizeof(asn_DEF_ReceiveStatusOfULPDCPSDUsPDCP_SNlength18_tags_1[0]), /* 1 */ - asn_DEF_ReceiveStatusOfULPDCPSDUsPDCP_SNlength18_tags_1, /* Same as above */ - sizeof(asn_DEF_ReceiveStatusOfULPDCPSDUsPDCP_SNlength18_tags_1) - /sizeof(asn_DEF_ReceiveStatusOfULPDCPSDUsPDCP_SNlength18_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_ReceiveStatusOfULPDCPSDUsPDCP_SNlength18_constr_1, ReceiveStatusOfULPDCPSDUsPDCP_SNlength18_constraint }, - 0, 0, /* No members */ - &asn_SPC_BIT_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/ReceiveStatusOfULPDCPSDUsPDCP-SNlength18.h b/e2sim/previous/ASN1c/ReceiveStatusOfULPDCPSDUsPDCP-SNlength18.h deleted file mode 100644 index 4a6b268..0000000 --- a/e2sim/previous/ASN1c/ReceiveStatusOfULPDCPSDUsPDCP-SNlength18.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _ReceiveStatusOfULPDCPSDUsPDCP_SNlength18_H_ -#define _ReceiveStatusOfULPDCPSDUsPDCP_SNlength18_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "BIT_STRING.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* ReceiveStatusOfULPDCPSDUsPDCP-SNlength18 */ -typedef BIT_STRING_t ReceiveStatusOfULPDCPSDUsPDCP_SNlength18_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_ReceiveStatusOfULPDCPSDUsPDCP_SNlength18_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_ReceiveStatusOfULPDCPSDUsPDCP_SNlength18; -asn_struct_free_f ReceiveStatusOfULPDCPSDUsPDCP_SNlength18_free; -asn_struct_print_f ReceiveStatusOfULPDCPSDUsPDCP_SNlength18_print; -asn_constr_check_f ReceiveStatusOfULPDCPSDUsPDCP_SNlength18_constraint; -ber_type_decoder_f ReceiveStatusOfULPDCPSDUsPDCP_SNlength18_decode_ber; -der_type_encoder_f ReceiveStatusOfULPDCPSDUsPDCP_SNlength18_encode_der; -xer_type_decoder_f ReceiveStatusOfULPDCPSDUsPDCP_SNlength18_decode_xer; -xer_type_encoder_f ReceiveStatusOfULPDCPSDUsPDCP_SNlength18_encode_xer; -per_type_decoder_f ReceiveStatusOfULPDCPSDUsPDCP_SNlength18_decode_uper; -per_type_encoder_f ReceiveStatusOfULPDCPSDUsPDCP_SNlength18_encode_uper; -per_type_decoder_f ReceiveStatusOfULPDCPSDUsPDCP_SNlength18_decode_aper; -per_type_encoder_f ReceiveStatusOfULPDCPSDUsPDCP_SNlength18_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _ReceiveStatusOfULPDCPSDUsPDCP_SNlength18_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/ReceiveStatusofULPDCPSDUs.c b/e2sim/previous/ASN1c/ReceiveStatusofULPDCPSDUs.c deleted file mode 100644 index addb90c..0000000 --- a/e2sim/previous/ASN1c/ReceiveStatusofULPDCPSDUs.c +++ /dev/null @@ -1,85 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "ReceiveStatusofULPDCPSDUs.h" - -int -ReceiveStatusofULPDCPSDUs_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if(st->size > 0) { - /* Size in bits */ - size = 8 * st->size - (st->bits_unused & 0x07); - } else { - size = 0; - } - - if((size == 4096)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using BIT_STRING, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_ReceiveStatusofULPDCPSDUs_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 0, 0, 4096, 4096 } /* (SIZE(4096..4096)) */, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_ReceiveStatusofULPDCPSDUs_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ReceiveStatusofULPDCPSDUs = { - "ReceiveStatusofULPDCPSDUs", - "ReceiveStatusofULPDCPSDUs", - &asn_OP_BIT_STRING, - asn_DEF_ReceiveStatusofULPDCPSDUs_tags_1, - sizeof(asn_DEF_ReceiveStatusofULPDCPSDUs_tags_1) - /sizeof(asn_DEF_ReceiveStatusofULPDCPSDUs_tags_1[0]), /* 1 */ - asn_DEF_ReceiveStatusofULPDCPSDUs_tags_1, /* Same as above */ - sizeof(asn_DEF_ReceiveStatusofULPDCPSDUs_tags_1) - /sizeof(asn_DEF_ReceiveStatusofULPDCPSDUs_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_ReceiveStatusofULPDCPSDUs_constr_1, ReceiveStatusofULPDCPSDUs_constraint }, - 0, 0, /* No members */ - &asn_SPC_BIT_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/ReceiveStatusofULPDCPSDUs.h b/e2sim/previous/ASN1c/ReceiveStatusofULPDCPSDUs.h deleted file mode 100644 index db17b46..0000000 --- a/e2sim/previous/ASN1c/ReceiveStatusofULPDCPSDUs.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _ReceiveStatusofULPDCPSDUs_H_ -#define _ReceiveStatusofULPDCPSDUs_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "BIT_STRING.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* ReceiveStatusofULPDCPSDUs */ -typedef BIT_STRING_t ReceiveStatusofULPDCPSDUs_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_ReceiveStatusofULPDCPSDUs_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_ReceiveStatusofULPDCPSDUs; -asn_struct_free_f ReceiveStatusofULPDCPSDUs_free; -asn_struct_print_f ReceiveStatusofULPDCPSDUs_print; -asn_constr_check_f ReceiveStatusofULPDCPSDUs_constraint; -ber_type_decoder_f ReceiveStatusofULPDCPSDUs_decode_ber; -der_type_encoder_f ReceiveStatusofULPDCPSDUs_encode_der; -xer_type_decoder_f ReceiveStatusofULPDCPSDUs_decode_xer; -xer_type_encoder_f ReceiveStatusofULPDCPSDUs_encode_xer; -per_type_decoder_f ReceiveStatusofULPDCPSDUs_decode_uper; -per_type_encoder_f ReceiveStatusofULPDCPSDUs_encode_uper; -per_type_decoder_f ReceiveStatusofULPDCPSDUs_decode_aper; -per_type_encoder_f ReceiveStatusofULPDCPSDUs_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _ReceiveStatusofULPDCPSDUs_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/Reestablishment-Indication.c b/e2sim/previous/ASN1c/Reestablishment-Indication.c deleted file mode 100644 index a0d026e..0000000 --- a/e2sim/previous/ASN1c/Reestablishment-Indication.c +++ /dev/null @@ -1,71 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "Reestablishment-Indication.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_Reestablishment_Indication_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 0, 0 } /* (0..0,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_Reestablishment_Indication_value2enum_1[] = { - { 0, 13, "reestablished" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_Reestablishment_Indication_enum2value_1[] = { - 0 /* reestablished(0) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_Reestablishment_Indication_specs_1 = { - asn_MAP_Reestablishment_Indication_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_Reestablishment_Indication_enum2value_1, /* N => "tag"; sorted by N */ - 1, /* Number of elements in the maps */ - 2, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_Reestablishment_Indication_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_Reestablishment_Indication = { - "Reestablishment-Indication", - "Reestablishment-Indication", - &asn_OP_NativeEnumerated, - asn_DEF_Reestablishment_Indication_tags_1, - sizeof(asn_DEF_Reestablishment_Indication_tags_1) - /sizeof(asn_DEF_Reestablishment_Indication_tags_1[0]), /* 1 */ - asn_DEF_Reestablishment_Indication_tags_1, /* Same as above */ - sizeof(asn_DEF_Reestablishment_Indication_tags_1) - /sizeof(asn_DEF_Reestablishment_Indication_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_Reestablishment_Indication_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_Reestablishment_Indication_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/Reestablishment-Indication.h b/e2sim/previous/ASN1c/Reestablishment-Indication.h deleted file mode 100644 index 5ba7ee2..0000000 --- a/e2sim/previous/ASN1c/Reestablishment-Indication.h +++ /dev/null @@ -1,71 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _Reestablishment_Indication_H_ -#define _Reestablishment_Indication_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum Reestablishment_Indication { - Reestablishment_Indication_reestablished = 0 - /* - * Enumeration is extensible - */ -} e_Reestablishment_Indication; - -/* Reestablishment-Indication */ -typedef long Reestablishment_Indication_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_Reestablishment_Indication_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_Reestablishment_Indication; -extern const asn_INTEGER_specifics_t asn_SPC_Reestablishment_Indication_specs_1; -asn_struct_free_f Reestablishment_Indication_free; -asn_struct_print_f Reestablishment_Indication_print; -asn_constr_check_f Reestablishment_Indication_constraint; -ber_type_decoder_f Reestablishment_Indication_decode_ber; -der_type_encoder_f Reestablishment_Indication_encode_der; -xer_type_decoder_f Reestablishment_Indication_decode_xer; -xer_type_encoder_f Reestablishment_Indication_encode_xer; -per_type_decoder_f Reestablishment_Indication_decode_uper; -per_type_encoder_f Reestablishment_Indication_encode_uper; -per_type_decoder_f Reestablishment_Indication_decode_aper; -per_type_encoder_f Reestablishment_Indication_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _Reestablishment_Indication_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/Registration-Request.c b/e2sim/previous/ASN1c/Registration-Request.c deleted file mode 100644 index ebcfe67..0000000 --- a/e2sim/previous/ASN1c/Registration-Request.c +++ /dev/null @@ -1,77 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "Registration-Request.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_Registration_Request_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_Registration_Request_value2enum_1[] = { - { 0, 5, "start" }, - { 1, 4, "stop" }, - { 2, 12, "partial-stop" }, - { 3, 3, "add" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_Registration_Request_enum2value_1[] = { - 3, /* add(3) */ - 2, /* partial-stop(2) */ - 0, /* start(0) */ - 1 /* stop(1) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_Registration_Request_specs_1 = { - asn_MAP_Registration_Request_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_Registration_Request_enum2value_1, /* N => "tag"; sorted by N */ - 4, /* Number of elements in the maps */ - 3, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_Registration_Request_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_Registration_Request = { - "Registration-Request", - "Registration-Request", - &asn_OP_NativeEnumerated, - asn_DEF_Registration_Request_tags_1, - sizeof(asn_DEF_Registration_Request_tags_1) - /sizeof(asn_DEF_Registration_Request_tags_1[0]), /* 1 */ - asn_DEF_Registration_Request_tags_1, /* Same as above */ - sizeof(asn_DEF_Registration_Request_tags_1) - /sizeof(asn_DEF_Registration_Request_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_Registration_Request_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_Registration_Request_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/Registration-Request.h b/e2sim/previous/ASN1c/Registration-Request.h deleted file mode 100644 index ec68ac4..0000000 --- a/e2sim/previous/ASN1c/Registration-Request.h +++ /dev/null @@ -1,74 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _Registration_Request_H_ -#define _Registration_Request_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum Registration_Request { - Registration_Request_start = 0, - Registration_Request_stop = 1, - /* - * Enumeration is extensible - */ - Registration_Request_partial_stop = 2, - Registration_Request_add = 3 -} e_Registration_Request; - -/* Registration-Request */ -typedef long Registration_Request_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_Registration_Request_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_Registration_Request; -extern const asn_INTEGER_specifics_t asn_SPC_Registration_Request_specs_1; -asn_struct_free_f Registration_Request_free; -asn_struct_print_f Registration_Request_print; -asn_constr_check_f Registration_Request_constraint; -ber_type_decoder_f Registration_Request_decode_ber; -der_type_encoder_f Registration_Request_encode_der; -xer_type_decoder_f Registration_Request_decode_xer; -xer_type_encoder_f Registration_Request_encode_xer; -per_type_decoder_f Registration_Request_decode_uper; -per_type_encoder_f Registration_Request_encode_uper; -per_type_decoder_f Registration_Request_decode_aper; -per_type_encoder_f Registration_Request_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _Registration_Request_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/RelativeNarrowbandTxPower.c b/e2sim/previous/ASN1c/RelativeNarrowbandTxPower.c deleted file mode 100644 index e24c744..0000000 --- a/e2sim/previous/ASN1c/RelativeNarrowbandTxPower.c +++ /dev/null @@ -1,267 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "RelativeNarrowbandTxPower.h" - -#include "ProtocolExtensionContainer.h" -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -static int -memb_rNTP_PerPRB_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if(st->size > 0) { - /* Size in bits */ - size = 8 * st->size - (st->bits_unused & 0x07); - } else { - size = 0; - } - - if((size >= 6 && size <= 110)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_p_B_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 3)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_pDCCH_InterferenceImpact_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 4)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_per_constraints_t asn_PER_type_numberOfCellSpecificAntennaPorts_constr_4 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 2 } /* (0..2,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_rNTP_PerPRB_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED | APC_EXTENSIBLE, 7, 7, 6, 110 } /* (SIZE(6..110,...)) */, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_p_B_constr_9 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 3 } /* (0..3,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_pDCCH_InterferenceImpact_constr_10 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 4 } /* (0..4,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_numberOfCellSpecificAntennaPorts_value2enum_4[] = { - { 0, 3, "one" }, - { 1, 3, "two" }, - { 2, 4, "four" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_numberOfCellSpecificAntennaPorts_enum2value_4[] = { - 2, /* four(2) */ - 0, /* one(0) */ - 1 /* two(1) */ - /* This list is extensible */ -}; -static const asn_INTEGER_specifics_t asn_SPC_numberOfCellSpecificAntennaPorts_specs_4 = { - asn_MAP_numberOfCellSpecificAntennaPorts_value2enum_4, /* "tag" => N; sorted by tag */ - asn_MAP_numberOfCellSpecificAntennaPorts_enum2value_4, /* N => "tag"; sorted by N */ - 3, /* Number of elements in the maps */ - 4, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_numberOfCellSpecificAntennaPorts_tags_4[] = { - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_numberOfCellSpecificAntennaPorts_4 = { - "numberOfCellSpecificAntennaPorts", - "numberOfCellSpecificAntennaPorts", - &asn_OP_NativeEnumerated, - asn_DEF_numberOfCellSpecificAntennaPorts_tags_4, - sizeof(asn_DEF_numberOfCellSpecificAntennaPorts_tags_4) - /sizeof(asn_DEF_numberOfCellSpecificAntennaPorts_tags_4[0]) - 1, /* 1 */ - asn_DEF_numberOfCellSpecificAntennaPorts_tags_4, /* Same as above */ - sizeof(asn_DEF_numberOfCellSpecificAntennaPorts_tags_4) - /sizeof(asn_DEF_numberOfCellSpecificAntennaPorts_tags_4[0]), /* 2 */ - { 0, &asn_PER_type_numberOfCellSpecificAntennaPorts_constr_4, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_numberOfCellSpecificAntennaPorts_specs_4 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_RelativeNarrowbandTxPower_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RelativeNarrowbandTxPower, rNTP_PerPRB), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_BIT_STRING, - 0, - { 0, &asn_PER_memb_rNTP_PerPRB_constr_2, memb_rNTP_PerPRB_constraint_1 }, - 0, 0, /* No default value */ - "rNTP-PerPRB" - }, - { ATF_NOFLAGS, 0, offsetof(struct RelativeNarrowbandTxPower, rNTP_Threshold), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RNTP_Threshold, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "rNTP-Threshold" - }, - { ATF_NOFLAGS, 0, offsetof(struct RelativeNarrowbandTxPower, numberOfCellSpecificAntennaPorts), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_numberOfCellSpecificAntennaPorts_4, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "numberOfCellSpecificAntennaPorts" - }, - { ATF_NOFLAGS, 0, offsetof(struct RelativeNarrowbandTxPower, p_B), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { 0, &asn_PER_memb_p_B_constr_9, memb_p_B_constraint_1 }, - 0, 0, /* No default value */ - "p-B" - }, - { ATF_NOFLAGS, 0, offsetof(struct RelativeNarrowbandTxPower, pDCCH_InterferenceImpact), - (ASN_TAG_CLASS_CONTEXT | (4 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { 0, &asn_PER_memb_pDCCH_InterferenceImpact_constr_10, memb_pDCCH_InterferenceImpact_constraint_1 }, - 0, 0, /* No default value */ - "pDCCH-InterferenceImpact" - }, - { ATF_POINTER, 1, offsetof(struct RelativeNarrowbandTxPower, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (5 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P184, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_RelativeNarrowbandTxPower_oms_1[] = { 5 }; -static const ber_tlv_tag_t asn_DEF_RelativeNarrowbandTxPower_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RelativeNarrowbandTxPower_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* rNTP-PerPRB */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* rNTP-Threshold */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* numberOfCellSpecificAntennaPorts */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* p-B */ - { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* pDCCH-InterferenceImpact */ - { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RelativeNarrowbandTxPower_specs_1 = { - sizeof(struct RelativeNarrowbandTxPower), - offsetof(struct RelativeNarrowbandTxPower, _asn_ctx), - asn_MAP_RelativeNarrowbandTxPower_tag2el_1, - 6, /* Count of tags in the map */ - asn_MAP_RelativeNarrowbandTxPower_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 6, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RelativeNarrowbandTxPower = { - "RelativeNarrowbandTxPower", - "RelativeNarrowbandTxPower", - &asn_OP_SEQUENCE, - asn_DEF_RelativeNarrowbandTxPower_tags_1, - sizeof(asn_DEF_RelativeNarrowbandTxPower_tags_1) - /sizeof(asn_DEF_RelativeNarrowbandTxPower_tags_1[0]), /* 1 */ - asn_DEF_RelativeNarrowbandTxPower_tags_1, /* Same as above */ - sizeof(asn_DEF_RelativeNarrowbandTxPower_tags_1) - /sizeof(asn_DEF_RelativeNarrowbandTxPower_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RelativeNarrowbandTxPower_1, - 6, /* Elements count */ - &asn_SPC_RelativeNarrowbandTxPower_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/RelativeNarrowbandTxPower.h b/e2sim/previous/ASN1c/RelativeNarrowbandTxPower.h deleted file mode 100644 index f5ca31f..0000000 --- a/e2sim/previous/ASN1c/RelativeNarrowbandTxPower.h +++ /dev/null @@ -1,84 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _RelativeNarrowbandTxPower_H_ -#define _RelativeNarrowbandTxPower_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "BIT_STRING.h" -#include "RNTP-Threshold.h" -#include "NativeEnumerated.h" -#include "NativeInteger.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum RelativeNarrowbandTxPower__numberOfCellSpecificAntennaPorts { - RelativeNarrowbandTxPower__numberOfCellSpecificAntennaPorts_one = 0, - RelativeNarrowbandTxPower__numberOfCellSpecificAntennaPorts_two = 1, - RelativeNarrowbandTxPower__numberOfCellSpecificAntennaPorts_four = 2 - /* - * Enumeration is extensible - */ -} e_RelativeNarrowbandTxPower__numberOfCellSpecificAntennaPorts; - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* RelativeNarrowbandTxPower */ -typedef struct RelativeNarrowbandTxPower { - BIT_STRING_t rNTP_PerPRB; - RNTP_Threshold_t rNTP_Threshold; - long numberOfCellSpecificAntennaPorts; - long p_B; - long pDCCH_InterferenceImpact; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RelativeNarrowbandTxPower_t; - -/* Implementation */ -/* extern asn_TYPE_descriptor_t asn_DEF_numberOfCellSpecificAntennaPorts_4; // (Use -fall-defs-global to expose) */ -extern asn_TYPE_descriptor_t asn_DEF_RelativeNarrowbandTxPower; -extern asn_SEQUENCE_specifics_t asn_SPC_RelativeNarrowbandTxPower_specs_1; -extern asn_TYPE_member_t asn_MBR_RelativeNarrowbandTxPower_1[6]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RelativeNarrowbandTxPower_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/ReplacingCellsList-Item.c b/e2sim/previous/ASN1c/ReplacingCellsList-Item.c deleted file mode 100644 index 64f414f..0000000 --- a/e2sim/previous/ASN1c/ReplacingCellsList-Item.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "ReplacingCellsList-Item.h" - -asn_TYPE_member_t asn_MBR_ReplacingCellsList_Item_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct ReplacingCellsList_Item, eCGI), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ECGI, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "eCGI" - }, -}; -static const ber_tlv_tag_t asn_DEF_ReplacingCellsList_Item_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ReplacingCellsList_Item_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* eCGI */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ReplacingCellsList_Item_specs_1 = { - sizeof(struct ReplacingCellsList_Item), - offsetof(struct ReplacingCellsList_Item, _asn_ctx), - asn_MAP_ReplacingCellsList_Item_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ReplacingCellsList_Item = { - "ReplacingCellsList-Item", - "ReplacingCellsList-Item", - &asn_OP_SEQUENCE, - asn_DEF_ReplacingCellsList_Item_tags_1, - sizeof(asn_DEF_ReplacingCellsList_Item_tags_1) - /sizeof(asn_DEF_ReplacingCellsList_Item_tags_1[0]), /* 1 */ - asn_DEF_ReplacingCellsList_Item_tags_1, /* Same as above */ - sizeof(asn_DEF_ReplacingCellsList_Item_tags_1) - /sizeof(asn_DEF_ReplacingCellsList_Item_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ReplacingCellsList_Item_1, - 1, /* Elements count */ - &asn_SPC_ReplacingCellsList_Item_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/ReplacingCellsList-Item.h b/e2sim/previous/ASN1c/ReplacingCellsList-Item.h deleted file mode 100644 index e04c746..0000000 --- a/e2sim/previous/ASN1c/ReplacingCellsList-Item.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _ReplacingCellsList_Item_H_ -#define _ReplacingCellsList_Item_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ECGI.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* ReplacingCellsList-Item */ -typedef struct ReplacingCellsList_Item { - ECGI_t eCGI; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ReplacingCellsList_Item_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ReplacingCellsList_Item; -extern asn_SEQUENCE_specifics_t asn_SPC_ReplacingCellsList_Item_specs_1; -extern asn_TYPE_member_t asn_MBR_ReplacingCellsList_Item_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _ReplacingCellsList_Item_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/ReplacingCellsList.c b/e2sim/previous/ASN1c/ReplacingCellsList.c deleted file mode 100644 index 5241ca7..0000000 --- a/e2sim/previous/ASN1c/ReplacingCellsList.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "ReplacingCellsList.h" - -#include "ReplacingCellsList-Item.h" -asn_per_constraints_t asn_PER_type_ReplacingCellsList_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 9, 9, 0, 256 } /* (SIZE(0..256)) */, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_ReplacingCellsList_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ReplacingCellsList_Item, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ReplacingCellsList_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ReplacingCellsList_specs_1 = { - sizeof(struct ReplacingCellsList), - offsetof(struct ReplacingCellsList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ReplacingCellsList = { - "ReplacingCellsList", - "ReplacingCellsList", - &asn_OP_SEQUENCE_OF, - asn_DEF_ReplacingCellsList_tags_1, - sizeof(asn_DEF_ReplacingCellsList_tags_1) - /sizeof(asn_DEF_ReplacingCellsList_tags_1[0]), /* 1 */ - asn_DEF_ReplacingCellsList_tags_1, /* Same as above */ - sizeof(asn_DEF_ReplacingCellsList_tags_1) - /sizeof(asn_DEF_ReplacingCellsList_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_ReplacingCellsList_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_ReplacingCellsList_1, - 1, /* Single element */ - &asn_SPC_ReplacingCellsList_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/ReplacingCellsList.h b/e2sim/previous/ASN1c/ReplacingCellsList.h deleted file mode 100644 index b74ada4..0000000 --- a/e2sim/previous/ASN1c/ReplacingCellsList.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _ReplacingCellsList_H_ -#define _ReplacingCellsList_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ReplacingCellsList_Item; - -/* ReplacingCellsList */ -typedef struct ReplacingCellsList { - A_SEQUENCE_OF(struct ReplacingCellsList_Item) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ReplacingCellsList_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ReplacingCellsList; -extern asn_SET_OF_specifics_t asn_SPC_ReplacingCellsList_specs_1; -extern asn_TYPE_member_t asn_MBR_ReplacingCellsList_1[1]; -extern asn_per_constraints_t asn_PER_type_ReplacingCellsList_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _ReplacingCellsList_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/ReportAmountMDT.c b/e2sim/previous/ASN1c/ReportAmountMDT.c deleted file mode 100644 index 5ade6a4..0000000 --- a/e2sim/previous/ASN1c/ReportAmountMDT.c +++ /dev/null @@ -1,83 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "ReportAmountMDT.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_ReportAmountMDT_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED, 3, 3, 0, 7 } /* (0..7) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_ReportAmountMDT_value2enum_1[] = { - { 0, 2, "r1" }, - { 1, 2, "r2" }, - { 2, 2, "r4" }, - { 3, 2, "r8" }, - { 4, 3, "r16" }, - { 5, 3, "r32" }, - { 6, 3, "r64" }, - { 7, 9, "rinfinity" } -}; -static const unsigned int asn_MAP_ReportAmountMDT_enum2value_1[] = { - 0, /* r1(0) */ - 4, /* r16(4) */ - 1, /* r2(1) */ - 5, /* r32(5) */ - 2, /* r4(2) */ - 6, /* r64(6) */ - 3, /* r8(3) */ - 7 /* rinfinity(7) */ -}; -const asn_INTEGER_specifics_t asn_SPC_ReportAmountMDT_specs_1 = { - asn_MAP_ReportAmountMDT_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_ReportAmountMDT_enum2value_1, /* N => "tag"; sorted by N */ - 8, /* Number of elements in the maps */ - 0, /* Enumeration is not extensible */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_ReportAmountMDT_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ReportAmountMDT = { - "ReportAmountMDT", - "ReportAmountMDT", - &asn_OP_NativeEnumerated, - asn_DEF_ReportAmountMDT_tags_1, - sizeof(asn_DEF_ReportAmountMDT_tags_1) - /sizeof(asn_DEF_ReportAmountMDT_tags_1[0]), /* 1 */ - asn_DEF_ReportAmountMDT_tags_1, /* Same as above */ - sizeof(asn_DEF_ReportAmountMDT_tags_1) - /sizeof(asn_DEF_ReportAmountMDT_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_ReportAmountMDT_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_ReportAmountMDT_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/ReportAmountMDT.h b/e2sim/previous/ASN1c/ReportAmountMDT.h deleted file mode 100644 index a677456..0000000 --- a/e2sim/previous/ASN1c/ReportAmountMDT.h +++ /dev/null @@ -1,75 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _ReportAmountMDT_H_ -#define _ReportAmountMDT_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum ReportAmountMDT { - ReportAmountMDT_r1 = 0, - ReportAmountMDT_r2 = 1, - ReportAmountMDT_r4 = 2, - ReportAmountMDT_r8 = 3, - ReportAmountMDT_r16 = 4, - ReportAmountMDT_r32 = 5, - ReportAmountMDT_r64 = 6, - ReportAmountMDT_rinfinity = 7 -} e_ReportAmountMDT; - -/* ReportAmountMDT */ -typedef long ReportAmountMDT_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_ReportAmountMDT_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_ReportAmountMDT; -extern const asn_INTEGER_specifics_t asn_SPC_ReportAmountMDT_specs_1; -asn_struct_free_f ReportAmountMDT_free; -asn_struct_print_f ReportAmountMDT_print; -asn_constr_check_f ReportAmountMDT_constraint; -ber_type_decoder_f ReportAmountMDT_decode_ber; -der_type_encoder_f ReportAmountMDT_encode_der; -xer_type_decoder_f ReportAmountMDT_decode_xer; -xer_type_encoder_f ReportAmountMDT_encode_xer; -per_type_decoder_f ReportAmountMDT_decode_uper; -per_type_encoder_f ReportAmountMDT_encode_uper; -per_type_decoder_f ReportAmountMDT_decode_aper; -per_type_encoder_f ReportAmountMDT_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _ReportAmountMDT_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/ReportArea.c b/e2sim/previous/ASN1c/ReportArea.c deleted file mode 100644 index 1a8224a..0000000 --- a/e2sim/previous/ASN1c/ReportArea.c +++ /dev/null @@ -1,71 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "ReportArea.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_ReportArea_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 0, 0 } /* (0..0,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_ReportArea_value2enum_1[] = { - { 0, 4, "ecgi" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_ReportArea_enum2value_1[] = { - 0 /* ecgi(0) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_ReportArea_specs_1 = { - asn_MAP_ReportArea_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_ReportArea_enum2value_1, /* N => "tag"; sorted by N */ - 1, /* Number of elements in the maps */ - 2, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_ReportArea_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ReportArea = { - "ReportArea", - "ReportArea", - &asn_OP_NativeEnumerated, - asn_DEF_ReportArea_tags_1, - sizeof(asn_DEF_ReportArea_tags_1) - /sizeof(asn_DEF_ReportArea_tags_1[0]), /* 1 */ - asn_DEF_ReportArea_tags_1, /* Same as above */ - sizeof(asn_DEF_ReportArea_tags_1) - /sizeof(asn_DEF_ReportArea_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_ReportArea_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_ReportArea_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/ReportArea.h b/e2sim/previous/ASN1c/ReportArea.h deleted file mode 100644 index e04619f..0000000 --- a/e2sim/previous/ASN1c/ReportArea.h +++ /dev/null @@ -1,71 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _ReportArea_H_ -#define _ReportArea_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum ReportArea { - ReportArea_ecgi = 0 - /* - * Enumeration is extensible - */ -} e_ReportArea; - -/* ReportArea */ -typedef long ReportArea_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_ReportArea_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_ReportArea; -extern const asn_INTEGER_specifics_t asn_SPC_ReportArea_specs_1; -asn_struct_free_f ReportArea_free; -asn_struct_print_f ReportArea_print; -asn_constr_check_f ReportArea_constraint; -ber_type_decoder_f ReportArea_decode_ber; -der_type_encoder_f ReportArea_encode_der; -xer_type_decoder_f ReportArea_decode_xer; -xer_type_encoder_f ReportArea_encode_xer; -per_type_decoder_f ReportArea_decode_uper; -per_type_encoder_f ReportArea_encode_uper; -per_type_decoder_f ReportArea_decode_aper; -per_type_encoder_f ReportArea_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _ReportArea_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/ReportCharacteristics.c b/e2sim/previous/ASN1c/ReportCharacteristics.c deleted file mode 100644 index 8d854b0..0000000 --- a/e2sim/previous/ASN1c/ReportCharacteristics.c +++ /dev/null @@ -1,85 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "ReportCharacteristics.h" - -int -ReportCharacteristics_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if(st->size > 0) { - /* Size in bits */ - size = 8 * st->size - (st->bits_unused & 0x07); - } else { - size = 0; - } - - if((size == 32)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using BIT_STRING, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_ReportCharacteristics_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 0, 0, 32, 32 } /* (SIZE(32..32)) */, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_ReportCharacteristics_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ReportCharacteristics = { - "ReportCharacteristics", - "ReportCharacteristics", - &asn_OP_BIT_STRING, - asn_DEF_ReportCharacteristics_tags_1, - sizeof(asn_DEF_ReportCharacteristics_tags_1) - /sizeof(asn_DEF_ReportCharacteristics_tags_1[0]), /* 1 */ - asn_DEF_ReportCharacteristics_tags_1, /* Same as above */ - sizeof(asn_DEF_ReportCharacteristics_tags_1) - /sizeof(asn_DEF_ReportCharacteristics_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_ReportCharacteristics_constr_1, ReportCharacteristics_constraint }, - 0, 0, /* No members */ - &asn_SPC_BIT_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/ReportCharacteristics.h b/e2sim/previous/ASN1c/ReportCharacteristics.h deleted file mode 100644 index bfb45fa..0000000 --- a/e2sim/previous/ASN1c/ReportCharacteristics.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _ReportCharacteristics_H_ -#define _ReportCharacteristics_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "BIT_STRING.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* ReportCharacteristics */ -typedef BIT_STRING_t ReportCharacteristics_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_ReportCharacteristics_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_ReportCharacteristics; -asn_struct_free_f ReportCharacteristics_free; -asn_struct_print_f ReportCharacteristics_print; -asn_constr_check_f ReportCharacteristics_constraint; -ber_type_decoder_f ReportCharacteristics_decode_ber; -der_type_encoder_f ReportCharacteristics_encode_der; -xer_type_decoder_f ReportCharacteristics_decode_xer; -xer_type_encoder_f ReportCharacteristics_encode_xer; -per_type_decoder_f ReportCharacteristics_decode_uper; -per_type_encoder_f ReportCharacteristics_encode_uper; -per_type_decoder_f ReportCharacteristics_decode_aper; -per_type_encoder_f ReportCharacteristics_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _ReportCharacteristics_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/ReportIntervalMDT.c b/e2sim/previous/ASN1c/ReportIntervalMDT.c deleted file mode 100644 index 4499178..0000000 --- a/e2sim/previous/ASN1c/ReportIntervalMDT.c +++ /dev/null @@ -1,93 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "ReportIntervalMDT.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_ReportIntervalMDT_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED, 4, 4, 0, 12 } /* (0..12) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_ReportIntervalMDT_value2enum_1[] = { - { 0, 5, "ms120" }, - { 1, 5, "ms240" }, - { 2, 5, "ms480" }, - { 3, 5, "ms640" }, - { 4, 6, "ms1024" }, - { 5, 6, "ms2048" }, - { 6, 6, "ms5120" }, - { 7, 7, "ms10240" }, - { 8, 4, "min1" }, - { 9, 4, "min6" }, - { 10, 5, "min12" }, - { 11, 5, "min30" }, - { 12, 5, "min60" } -}; -static const unsigned int asn_MAP_ReportIntervalMDT_enum2value_1[] = { - 8, /* min1(8) */ - 10, /* min12(10) */ - 11, /* min30(11) */ - 9, /* min6(9) */ - 12, /* min60(12) */ - 4, /* ms1024(4) */ - 7, /* ms10240(7) */ - 0, /* ms120(0) */ - 5, /* ms2048(5) */ - 1, /* ms240(1) */ - 2, /* ms480(2) */ - 6, /* ms5120(6) */ - 3 /* ms640(3) */ -}; -const asn_INTEGER_specifics_t asn_SPC_ReportIntervalMDT_specs_1 = { - asn_MAP_ReportIntervalMDT_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_ReportIntervalMDT_enum2value_1, /* N => "tag"; sorted by N */ - 13, /* Number of elements in the maps */ - 0, /* Enumeration is not extensible */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_ReportIntervalMDT_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ReportIntervalMDT = { - "ReportIntervalMDT", - "ReportIntervalMDT", - &asn_OP_NativeEnumerated, - asn_DEF_ReportIntervalMDT_tags_1, - sizeof(asn_DEF_ReportIntervalMDT_tags_1) - /sizeof(asn_DEF_ReportIntervalMDT_tags_1[0]), /* 1 */ - asn_DEF_ReportIntervalMDT_tags_1, /* Same as above */ - sizeof(asn_DEF_ReportIntervalMDT_tags_1) - /sizeof(asn_DEF_ReportIntervalMDT_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_ReportIntervalMDT_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_ReportIntervalMDT_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/ReportIntervalMDT.h b/e2sim/previous/ASN1c/ReportIntervalMDT.h deleted file mode 100644 index 0c5e61d..0000000 --- a/e2sim/previous/ASN1c/ReportIntervalMDT.h +++ /dev/null @@ -1,80 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _ReportIntervalMDT_H_ -#define _ReportIntervalMDT_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum ReportIntervalMDT { - ReportIntervalMDT_ms120 = 0, - ReportIntervalMDT_ms240 = 1, - ReportIntervalMDT_ms480 = 2, - ReportIntervalMDT_ms640 = 3, - ReportIntervalMDT_ms1024 = 4, - ReportIntervalMDT_ms2048 = 5, - ReportIntervalMDT_ms5120 = 6, - ReportIntervalMDT_ms10240 = 7, - ReportIntervalMDT_min1 = 8, - ReportIntervalMDT_min6 = 9, - ReportIntervalMDT_min12 = 10, - ReportIntervalMDT_min30 = 11, - ReportIntervalMDT_min60 = 12 -} e_ReportIntervalMDT; - -/* ReportIntervalMDT */ -typedef long ReportIntervalMDT_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_ReportIntervalMDT_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_ReportIntervalMDT; -extern const asn_INTEGER_specifics_t asn_SPC_ReportIntervalMDT_specs_1; -asn_struct_free_f ReportIntervalMDT_free; -asn_struct_print_f ReportIntervalMDT_print; -asn_constr_check_f ReportIntervalMDT_constraint; -ber_type_decoder_f ReportIntervalMDT_decode_ber; -der_type_encoder_f ReportIntervalMDT_encode_der; -xer_type_decoder_f ReportIntervalMDT_decode_xer; -xer_type_encoder_f ReportIntervalMDT_encode_xer; -per_type_decoder_f ReportIntervalMDT_decode_uper; -per_type_encoder_f ReportIntervalMDT_encode_uper; -per_type_decoder_f ReportIntervalMDT_decode_aper; -per_type_encoder_f ReportIntervalMDT_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _ReportIntervalMDT_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/ReportingPeriodicity.c b/e2sim/previous/ASN1c/ReportingPeriodicity.c deleted file mode 100644 index b18c6cd..0000000 --- a/e2sim/previous/ASN1c/ReportingPeriodicity.c +++ /dev/null @@ -1,77 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "ReportingPeriodicity.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -static asn_per_constraints_t asn_PER_type_ReportingPeriodicity_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 3 } /* (0..3,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_ReportingPeriodicity_value2enum_1[] = { - { 0, 15, "one-thousand-ms" }, - { 1, 15, "two-thousand-ms" }, - { 2, 16, "five-thousand-ms" }, - { 3, 15, "ten-thousand-ms" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_ReportingPeriodicity_enum2value_1[] = { - 2, /* five-thousand-ms(2) */ - 0, /* one-thousand-ms(0) */ - 3, /* ten-thousand-ms(3) */ - 1 /* two-thousand-ms(1) */ - /* This list is extensible */ -}; -static const asn_INTEGER_specifics_t asn_SPC_ReportingPeriodicity_specs_1 = { - asn_MAP_ReportingPeriodicity_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_ReportingPeriodicity_enum2value_1, /* N => "tag"; sorted by N */ - 4, /* Number of elements in the maps */ - 5, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_ReportingPeriodicity_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ReportingPeriodicity = { - "ReportingPeriodicity", - "ReportingPeriodicity", - &asn_OP_NativeEnumerated, - asn_DEF_ReportingPeriodicity_tags_1, - sizeof(asn_DEF_ReportingPeriodicity_tags_1) - /sizeof(asn_DEF_ReportingPeriodicity_tags_1[0]), /* 1 */ - asn_DEF_ReportingPeriodicity_tags_1, /* Same as above */ - sizeof(asn_DEF_ReportingPeriodicity_tags_1) - /sizeof(asn_DEF_ReportingPeriodicity_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_ReportingPeriodicity_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_ReportingPeriodicity_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/ReportingPeriodicity.h b/e2sim/previous/ASN1c/ReportingPeriodicity.h deleted file mode 100644 index d517459..0000000 --- a/e2sim/previous/ASN1c/ReportingPeriodicity.h +++ /dev/null @@ -1,72 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _ReportingPeriodicity_H_ -#define _ReportingPeriodicity_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum ReportingPeriodicity { - ReportingPeriodicity_one_thousand_ms = 0, - ReportingPeriodicity_two_thousand_ms = 1, - ReportingPeriodicity_five_thousand_ms = 2, - ReportingPeriodicity_ten_thousand_ms = 3 - /* - * Enumeration is extensible - */ -} e_ReportingPeriodicity; - -/* ReportingPeriodicity */ -typedef long ReportingPeriodicity_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ReportingPeriodicity; -asn_struct_free_f ReportingPeriodicity_free; -asn_struct_print_f ReportingPeriodicity_print; -asn_constr_check_f ReportingPeriodicity_constraint; -ber_type_decoder_f ReportingPeriodicity_decode_ber; -der_type_encoder_f ReportingPeriodicity_encode_der; -xer_type_decoder_f ReportingPeriodicity_decode_xer; -xer_type_encoder_f ReportingPeriodicity_encode_xer; -per_type_decoder_f ReportingPeriodicity_decode_uper; -per_type_encoder_f ReportingPeriodicity_encode_uper; -per_type_decoder_f ReportingPeriodicity_decode_aper; -per_type_encoder_f ReportingPeriodicity_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _ReportingPeriodicity_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/ReportingPeriodicityCSIR.c b/e2sim/previous/ASN1c/ReportingPeriodicityCSIR.c deleted file mode 100644 index cc3faf0..0000000 --- a/e2sim/previous/ASN1c/ReportingPeriodicityCSIR.c +++ /dev/null @@ -1,79 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "ReportingPeriodicityCSIR.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_ReportingPeriodicityCSIR_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 4 } /* (0..4,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_ReportingPeriodicityCSIR_value2enum_1[] = { - { 0, 3, "ms5" }, - { 1, 4, "ms10" }, - { 2, 4, "ms20" }, - { 3, 4, "ms40" }, - { 4, 4, "ms80" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_ReportingPeriodicityCSIR_enum2value_1[] = { - 1, /* ms10(1) */ - 2, /* ms20(2) */ - 3, /* ms40(3) */ - 0, /* ms5(0) */ - 4 /* ms80(4) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_ReportingPeriodicityCSIR_specs_1 = { - asn_MAP_ReportingPeriodicityCSIR_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_ReportingPeriodicityCSIR_enum2value_1, /* N => "tag"; sorted by N */ - 5, /* Number of elements in the maps */ - 6, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_ReportingPeriodicityCSIR_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ReportingPeriodicityCSIR = { - "ReportingPeriodicityCSIR", - "ReportingPeriodicityCSIR", - &asn_OP_NativeEnumerated, - asn_DEF_ReportingPeriodicityCSIR_tags_1, - sizeof(asn_DEF_ReportingPeriodicityCSIR_tags_1) - /sizeof(asn_DEF_ReportingPeriodicityCSIR_tags_1[0]), /* 1 */ - asn_DEF_ReportingPeriodicityCSIR_tags_1, /* Same as above */ - sizeof(asn_DEF_ReportingPeriodicityCSIR_tags_1) - /sizeof(asn_DEF_ReportingPeriodicityCSIR_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_ReportingPeriodicityCSIR_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_ReportingPeriodicityCSIR_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/ReportingPeriodicityCSIR.h b/e2sim/previous/ASN1c/ReportingPeriodicityCSIR.h deleted file mode 100644 index 5134a1d..0000000 --- a/e2sim/previous/ASN1c/ReportingPeriodicityCSIR.h +++ /dev/null @@ -1,75 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _ReportingPeriodicityCSIR_H_ -#define _ReportingPeriodicityCSIR_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum ReportingPeriodicityCSIR { - ReportingPeriodicityCSIR_ms5 = 0, - ReportingPeriodicityCSIR_ms10 = 1, - ReportingPeriodicityCSIR_ms20 = 2, - ReportingPeriodicityCSIR_ms40 = 3, - ReportingPeriodicityCSIR_ms80 = 4 - /* - * Enumeration is extensible - */ -} e_ReportingPeriodicityCSIR; - -/* ReportingPeriodicityCSIR */ -typedef long ReportingPeriodicityCSIR_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_ReportingPeriodicityCSIR_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_ReportingPeriodicityCSIR; -extern const asn_INTEGER_specifics_t asn_SPC_ReportingPeriodicityCSIR_specs_1; -asn_struct_free_f ReportingPeriodicityCSIR_free; -asn_struct_print_f ReportingPeriodicityCSIR_print; -asn_constr_check_f ReportingPeriodicityCSIR_constraint; -ber_type_decoder_f ReportingPeriodicityCSIR_decode_ber; -der_type_encoder_f ReportingPeriodicityCSIR_encode_der; -xer_type_decoder_f ReportingPeriodicityCSIR_decode_xer; -xer_type_encoder_f ReportingPeriodicityCSIR_encode_xer; -per_type_decoder_f ReportingPeriodicityCSIR_decode_uper; -per_type_encoder_f ReportingPeriodicityCSIR_encode_uper; -per_type_decoder_f ReportingPeriodicityCSIR_decode_aper; -per_type_encoder_f ReportingPeriodicityCSIR_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _ReportingPeriodicityCSIR_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/ReportingPeriodicityRSRPMR.c b/e2sim/previous/ASN1c/ReportingPeriodicityRSRPMR.c deleted file mode 100644 index e34ed97..0000000 --- a/e2sim/previous/ASN1c/ReportingPeriodicityRSRPMR.c +++ /dev/null @@ -1,77 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "ReportingPeriodicityRSRPMR.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_ReportingPeriodicityRSRPMR_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 3 } /* (0..3,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_ReportingPeriodicityRSRPMR_value2enum_1[] = { - { 0, 17, "one-hundred-20-ms" }, - { 1, 17, "two-hundred-40-ms" }, - { 2, 18, "four-hundred-80-ms" }, - { 3, 17, "six-hundred-40-ms" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_ReportingPeriodicityRSRPMR_enum2value_1[] = { - 2, /* four-hundred-80-ms(2) */ - 0, /* one-hundred-20-ms(0) */ - 3, /* six-hundred-40-ms(3) */ - 1 /* two-hundred-40-ms(1) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_ReportingPeriodicityRSRPMR_specs_1 = { - asn_MAP_ReportingPeriodicityRSRPMR_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_ReportingPeriodicityRSRPMR_enum2value_1, /* N => "tag"; sorted by N */ - 4, /* Number of elements in the maps */ - 5, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_ReportingPeriodicityRSRPMR_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ReportingPeriodicityRSRPMR = { - "ReportingPeriodicityRSRPMR", - "ReportingPeriodicityRSRPMR", - &asn_OP_NativeEnumerated, - asn_DEF_ReportingPeriodicityRSRPMR_tags_1, - sizeof(asn_DEF_ReportingPeriodicityRSRPMR_tags_1) - /sizeof(asn_DEF_ReportingPeriodicityRSRPMR_tags_1[0]), /* 1 */ - asn_DEF_ReportingPeriodicityRSRPMR_tags_1, /* Same as above */ - sizeof(asn_DEF_ReportingPeriodicityRSRPMR_tags_1) - /sizeof(asn_DEF_ReportingPeriodicityRSRPMR_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_ReportingPeriodicityRSRPMR_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_ReportingPeriodicityRSRPMR_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/ReportingPeriodicityRSRPMR.h b/e2sim/previous/ASN1c/ReportingPeriodicityRSRPMR.h deleted file mode 100644 index 8ac3a3e..0000000 --- a/e2sim/previous/ASN1c/ReportingPeriodicityRSRPMR.h +++ /dev/null @@ -1,74 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _ReportingPeriodicityRSRPMR_H_ -#define _ReportingPeriodicityRSRPMR_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum ReportingPeriodicityRSRPMR { - ReportingPeriodicityRSRPMR_one_hundred_20_ms = 0, - ReportingPeriodicityRSRPMR_two_hundred_40_ms = 1, - ReportingPeriodicityRSRPMR_four_hundred_80_ms = 2, - ReportingPeriodicityRSRPMR_six_hundred_40_ms = 3 - /* - * Enumeration is extensible - */ -} e_ReportingPeriodicityRSRPMR; - -/* ReportingPeriodicityRSRPMR */ -typedef long ReportingPeriodicityRSRPMR_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_ReportingPeriodicityRSRPMR_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_ReportingPeriodicityRSRPMR; -extern const asn_INTEGER_specifics_t asn_SPC_ReportingPeriodicityRSRPMR_specs_1; -asn_struct_free_f ReportingPeriodicityRSRPMR_free; -asn_struct_print_f ReportingPeriodicityRSRPMR_print; -asn_constr_check_f ReportingPeriodicityRSRPMR_constraint; -ber_type_decoder_f ReportingPeriodicityRSRPMR_decode_ber; -der_type_encoder_f ReportingPeriodicityRSRPMR_encode_der; -xer_type_decoder_f ReportingPeriodicityRSRPMR_decode_xer; -xer_type_encoder_f ReportingPeriodicityRSRPMR_encode_xer; -per_type_decoder_f ReportingPeriodicityRSRPMR_decode_uper; -per_type_encoder_f ReportingPeriodicityRSRPMR_encode_uper; -per_type_decoder_f ReportingPeriodicityRSRPMR_decode_aper; -per_type_encoder_f ReportingPeriodicityRSRPMR_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _ReportingPeriodicityRSRPMR_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/ReservedSubframePattern.c b/e2sim/previous/ASN1c/ReservedSubframePattern.c deleted file mode 100644 index c344f3c..0000000 --- a/e2sim/previous/ASN1c/ReservedSubframePattern.c +++ /dev/null @@ -1,167 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "ReservedSubframePattern.h" - -#include "ProtocolExtensionContainer.h" -static int -memb_reservedSubframePattern_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if(st->size > 0) { - /* Size in bits */ - size = 8 * st->size - (st->bits_unused & 0x07); - } else { - size = 0; - } - - if((size >= 10 && size <= 160)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_mBSFNControlRegionLength_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 3)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_per_constraints_t asn_PER_memb_reservedSubframePattern_constr_3 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 8, 8, 10, 160 } /* (SIZE(10..160)) */, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_mBSFNControlRegionLength_constr_4 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 3 } /* (0..3) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_ReservedSubframePattern_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct ReservedSubframePattern, subframeType), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_SubframeType, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "subframeType" - }, - { ATF_NOFLAGS, 0, offsetof(struct ReservedSubframePattern, reservedSubframePattern), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_BIT_STRING, - 0, - { 0, &asn_PER_memb_reservedSubframePattern_constr_3, memb_reservedSubframePattern_constraint_1 }, - 0, 0, /* No default value */ - "reservedSubframePattern" - }, - { ATF_NOFLAGS, 0, offsetof(struct ReservedSubframePattern, mBSFNControlRegionLength), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { 0, &asn_PER_memb_mBSFNControlRegionLength_constr_4, memb_mBSFNControlRegionLength_constraint_1 }, - 0, 0, /* No default value */ - "mBSFNControlRegionLength" - }, - { ATF_POINTER, 1, offsetof(struct ReservedSubframePattern, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P185, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_ReservedSubframePattern_oms_1[] = { 3 }; -static const ber_tlv_tag_t asn_DEF_ReservedSubframePattern_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ReservedSubframePattern_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* subframeType */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* reservedSubframePattern */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* mBSFNControlRegionLength */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ReservedSubframePattern_specs_1 = { - sizeof(struct ReservedSubframePattern), - offsetof(struct ReservedSubframePattern, _asn_ctx), - asn_MAP_ReservedSubframePattern_tag2el_1, - 4, /* Count of tags in the map */ - asn_MAP_ReservedSubframePattern_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 4, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ReservedSubframePattern = { - "ReservedSubframePattern", - "ReservedSubframePattern", - &asn_OP_SEQUENCE, - asn_DEF_ReservedSubframePattern_tags_1, - sizeof(asn_DEF_ReservedSubframePattern_tags_1) - /sizeof(asn_DEF_ReservedSubframePattern_tags_1[0]), /* 1 */ - asn_DEF_ReservedSubframePattern_tags_1, /* Same as above */ - sizeof(asn_DEF_ReservedSubframePattern_tags_1) - /sizeof(asn_DEF_ReservedSubframePattern_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ReservedSubframePattern_1, - 4, /* Elements count */ - &asn_SPC_ReservedSubframePattern_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/ReservedSubframePattern.h b/e2sim/previous/ASN1c/ReservedSubframePattern.h deleted file mode 100644 index c5bd1c6..0000000 --- a/e2sim/previous/ASN1c/ReservedSubframePattern.h +++ /dev/null @@ -1,70 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _ReservedSubframePattern_H_ -#define _ReservedSubframePattern_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "SubframeType.h" -#include "BIT_STRING.h" -#include "NativeInteger.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* ReservedSubframePattern */ -typedef struct ReservedSubframePattern { - SubframeType_t subframeType; - BIT_STRING_t reservedSubframePattern; - long mBSFNControlRegionLength; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ReservedSubframePattern_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ReservedSubframePattern; -extern asn_SEQUENCE_specifics_t asn_SPC_ReservedSubframePattern_specs_1; -extern asn_TYPE_member_t asn_MBR_ReservedSubframePattern_1[4]; - -#ifdef __cplusplus -} -#endif - -#endif /* _ReservedSubframePattern_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/ResetRequest.c b/e2sim/previous/ASN1c/ResetRequest.c deleted file mode 100644 index ea8af3b..0000000 --- a/e2sim/previous/ASN1c/ResetRequest.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "ResetRequest.h" - -asn_TYPE_member_t asn_MBR_ResetRequest_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct ResetRequest, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_119P22, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_ResetRequest_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ResetRequest_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ResetRequest_specs_1 = { - sizeof(struct ResetRequest), - offsetof(struct ResetRequest, _asn_ctx), - asn_MAP_ResetRequest_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ResetRequest = { - "ResetRequest", - "ResetRequest", - &asn_OP_SEQUENCE, - asn_DEF_ResetRequest_tags_1, - sizeof(asn_DEF_ResetRequest_tags_1) - /sizeof(asn_DEF_ResetRequest_tags_1[0]), /* 1 */ - asn_DEF_ResetRequest_tags_1, /* Same as above */ - sizeof(asn_DEF_ResetRequest_tags_1) - /sizeof(asn_DEF_ResetRequest_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ResetRequest_1, - 1, /* Elements count */ - &asn_SPC_ResetRequest_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/ResetRequest.h b/e2sim/previous/ASN1c/ResetRequest.h deleted file mode 100644 index fd5c0c6..0000000 --- a/e2sim/previous/ASN1c/ResetRequest.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _ResetRequest_H_ -#define _ResetRequest_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* ResetRequest */ -typedef struct ResetRequest { - ProtocolIE_Container_119P22_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ResetRequest_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ResetRequest; -extern asn_SEQUENCE_specifics_t asn_SPC_ResetRequest_specs_1; -extern asn_TYPE_member_t asn_MBR_ResetRequest_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _ResetRequest_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/ResetResponse.c b/e2sim/previous/ASN1c/ResetResponse.c deleted file mode 100644 index e8f4590..0000000 --- a/e2sim/previous/ASN1c/ResetResponse.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "ResetResponse.h" - -asn_TYPE_member_t asn_MBR_ResetResponse_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct ResetResponse, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_119P23, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_ResetResponse_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ResetResponse_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ResetResponse_specs_1 = { - sizeof(struct ResetResponse), - offsetof(struct ResetResponse, _asn_ctx), - asn_MAP_ResetResponse_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ResetResponse = { - "ResetResponse", - "ResetResponse", - &asn_OP_SEQUENCE, - asn_DEF_ResetResponse_tags_1, - sizeof(asn_DEF_ResetResponse_tags_1) - /sizeof(asn_DEF_ResetResponse_tags_1[0]), /* 1 */ - asn_DEF_ResetResponse_tags_1, /* Same as above */ - sizeof(asn_DEF_ResetResponse_tags_1) - /sizeof(asn_DEF_ResetResponse_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ResetResponse_1, - 1, /* Elements count */ - &asn_SPC_ResetResponse_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/ResetResponse.h b/e2sim/previous/ASN1c/ResetResponse.h deleted file mode 100644 index cce5d19..0000000 --- a/e2sim/previous/ASN1c/ResetResponse.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _ResetResponse_H_ -#define _ResetResponse_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* ResetResponse */ -typedef struct ResetResponse { - ProtocolIE_Container_119P23_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ResetResponse_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ResetResponse; -extern asn_SEQUENCE_specifics_t asn_SPC_ResetResponse_specs_1; -extern asn_TYPE_member_t asn_MBR_ResetResponse_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _ResetResponse_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/ResourceStatusFailure.c b/e2sim/previous/ASN1c/ResourceStatusFailure.c deleted file mode 100644 index b962474..0000000 --- a/e2sim/previous/ASN1c/ResourceStatusFailure.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "ResourceStatusFailure.h" - -asn_TYPE_member_t asn_MBR_ResourceStatusFailure_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct ResourceStatusFailure, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_119P33, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_ResourceStatusFailure_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ResourceStatusFailure_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ResourceStatusFailure_specs_1 = { - sizeof(struct ResourceStatusFailure), - offsetof(struct ResourceStatusFailure, _asn_ctx), - asn_MAP_ResourceStatusFailure_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ResourceStatusFailure = { - "ResourceStatusFailure", - "ResourceStatusFailure", - &asn_OP_SEQUENCE, - asn_DEF_ResourceStatusFailure_tags_1, - sizeof(asn_DEF_ResourceStatusFailure_tags_1) - /sizeof(asn_DEF_ResourceStatusFailure_tags_1[0]), /* 1 */ - asn_DEF_ResourceStatusFailure_tags_1, /* Same as above */ - sizeof(asn_DEF_ResourceStatusFailure_tags_1) - /sizeof(asn_DEF_ResourceStatusFailure_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ResourceStatusFailure_1, - 1, /* Elements count */ - &asn_SPC_ResourceStatusFailure_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/ResourceStatusFailure.h b/e2sim/previous/ASN1c/ResourceStatusFailure.h deleted file mode 100644 index ce6d9f8..0000000 --- a/e2sim/previous/ASN1c/ResourceStatusFailure.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _ResourceStatusFailure_H_ -#define _ResourceStatusFailure_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* ResourceStatusFailure */ -typedef struct ResourceStatusFailure { - ProtocolIE_Container_119P33_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ResourceStatusFailure_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ResourceStatusFailure; -extern asn_SEQUENCE_specifics_t asn_SPC_ResourceStatusFailure_specs_1; -extern asn_TYPE_member_t asn_MBR_ResourceStatusFailure_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _ResourceStatusFailure_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/ResourceStatusRequest.c b/e2sim/previous/ASN1c/ResourceStatusRequest.c deleted file mode 100644 index 2fb07c9..0000000 --- a/e2sim/previous/ASN1c/ResourceStatusRequest.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "ResourceStatusRequest.h" - -asn_TYPE_member_t asn_MBR_ResourceStatusRequest_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct ResourceStatusRequest, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_119P31, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_ResourceStatusRequest_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ResourceStatusRequest_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ResourceStatusRequest_specs_1 = { - sizeof(struct ResourceStatusRequest), - offsetof(struct ResourceStatusRequest, _asn_ctx), - asn_MAP_ResourceStatusRequest_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ResourceStatusRequest = { - "ResourceStatusRequest", - "ResourceStatusRequest", - &asn_OP_SEQUENCE, - asn_DEF_ResourceStatusRequest_tags_1, - sizeof(asn_DEF_ResourceStatusRequest_tags_1) - /sizeof(asn_DEF_ResourceStatusRequest_tags_1[0]), /* 1 */ - asn_DEF_ResourceStatusRequest_tags_1, /* Same as above */ - sizeof(asn_DEF_ResourceStatusRequest_tags_1) - /sizeof(asn_DEF_ResourceStatusRequest_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ResourceStatusRequest_1, - 1, /* Elements count */ - &asn_SPC_ResourceStatusRequest_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/ResourceStatusRequest.h b/e2sim/previous/ASN1c/ResourceStatusRequest.h deleted file mode 100644 index 7eac7cb..0000000 --- a/e2sim/previous/ASN1c/ResourceStatusRequest.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _ResourceStatusRequest_H_ -#define _ResourceStatusRequest_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* ResourceStatusRequest */ -typedef struct ResourceStatusRequest { - ProtocolIE_Container_119P31_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ResourceStatusRequest_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ResourceStatusRequest; -extern asn_SEQUENCE_specifics_t asn_SPC_ResourceStatusRequest_specs_1; -extern asn_TYPE_member_t asn_MBR_ResourceStatusRequest_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _ResourceStatusRequest_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/ResourceStatusResponse.c b/e2sim/previous/ASN1c/ResourceStatusResponse.c deleted file mode 100644 index 719f804..0000000 --- a/e2sim/previous/ASN1c/ResourceStatusResponse.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "ResourceStatusResponse.h" - -asn_TYPE_member_t asn_MBR_ResourceStatusResponse_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct ResourceStatusResponse, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_119P32, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_ResourceStatusResponse_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ResourceStatusResponse_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ResourceStatusResponse_specs_1 = { - sizeof(struct ResourceStatusResponse), - offsetof(struct ResourceStatusResponse, _asn_ctx), - asn_MAP_ResourceStatusResponse_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ResourceStatusResponse = { - "ResourceStatusResponse", - "ResourceStatusResponse", - &asn_OP_SEQUENCE, - asn_DEF_ResourceStatusResponse_tags_1, - sizeof(asn_DEF_ResourceStatusResponse_tags_1) - /sizeof(asn_DEF_ResourceStatusResponse_tags_1[0]), /* 1 */ - asn_DEF_ResourceStatusResponse_tags_1, /* Same as above */ - sizeof(asn_DEF_ResourceStatusResponse_tags_1) - /sizeof(asn_DEF_ResourceStatusResponse_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ResourceStatusResponse_1, - 1, /* Elements count */ - &asn_SPC_ResourceStatusResponse_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/ResourceStatusResponse.h b/e2sim/previous/ASN1c/ResourceStatusResponse.h deleted file mode 100644 index c6d9a1a..0000000 --- a/e2sim/previous/ASN1c/ResourceStatusResponse.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _ResourceStatusResponse_H_ -#define _ResourceStatusResponse_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* ResourceStatusResponse */ -typedef struct ResourceStatusResponse { - ProtocolIE_Container_119P32_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ResourceStatusResponse_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ResourceStatusResponse; -extern asn_SEQUENCE_specifics_t asn_SPC_ResourceStatusResponse_specs_1; -extern asn_TYPE_member_t asn_MBR_ResourceStatusResponse_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _ResourceStatusResponse_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/ResourceStatusUpdate.c b/e2sim/previous/ASN1c/ResourceStatusUpdate.c deleted file mode 100644 index 3594e3d..0000000 --- a/e2sim/previous/ASN1c/ResourceStatusUpdate.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "ResourceStatusUpdate.h" - -asn_TYPE_member_t asn_MBR_ResourceStatusUpdate_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct ResourceStatusUpdate, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_119P34, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_ResourceStatusUpdate_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ResourceStatusUpdate_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ResourceStatusUpdate_specs_1 = { - sizeof(struct ResourceStatusUpdate), - offsetof(struct ResourceStatusUpdate, _asn_ctx), - asn_MAP_ResourceStatusUpdate_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ResourceStatusUpdate = { - "ResourceStatusUpdate", - "ResourceStatusUpdate", - &asn_OP_SEQUENCE, - asn_DEF_ResourceStatusUpdate_tags_1, - sizeof(asn_DEF_ResourceStatusUpdate_tags_1) - /sizeof(asn_DEF_ResourceStatusUpdate_tags_1[0]), /* 1 */ - asn_DEF_ResourceStatusUpdate_tags_1, /* Same as above */ - sizeof(asn_DEF_ResourceStatusUpdate_tags_1) - /sizeof(asn_DEF_ResourceStatusUpdate_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ResourceStatusUpdate_1, - 1, /* Elements count */ - &asn_SPC_ResourceStatusUpdate_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/ResourceStatusUpdate.h b/e2sim/previous/ASN1c/ResourceStatusUpdate.h deleted file mode 100644 index bcac200..0000000 --- a/e2sim/previous/ASN1c/ResourceStatusUpdate.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _ResourceStatusUpdate_H_ -#define _ResourceStatusUpdate_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* ResourceStatusUpdate */ -typedef struct ResourceStatusUpdate { - ProtocolIE_Container_119P34_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ResourceStatusUpdate_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ResourceStatusUpdate; -extern asn_SEQUENCE_specifics_t asn_SPC_ResourceStatusUpdate_specs_1; -extern asn_TYPE_member_t asn_MBR_ResourceStatusUpdate_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _ResourceStatusUpdate_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/ResourceType.c b/e2sim/previous/ASN1c/ResourceType.c deleted file mode 100644 index 38335c0..0000000 --- a/e2sim/previous/ASN1c/ResourceType.c +++ /dev/null @@ -1,75 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "ResourceType.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_ResourceType_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 2 } /* (0..2,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_ResourceType_value2enum_1[] = { - { 0, 14, "downlinknonCRS" }, - { 1, 3, "cRS" }, - { 2, 6, "uplink" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_ResourceType_enum2value_1[] = { - 1, /* cRS(1) */ - 0, /* downlinknonCRS(0) */ - 2 /* uplink(2) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_ResourceType_specs_1 = { - asn_MAP_ResourceType_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_ResourceType_enum2value_1, /* N => "tag"; sorted by N */ - 3, /* Number of elements in the maps */ - 4, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_ResourceType_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ResourceType = { - "ResourceType", - "ResourceType", - &asn_OP_NativeEnumerated, - asn_DEF_ResourceType_tags_1, - sizeof(asn_DEF_ResourceType_tags_1) - /sizeof(asn_DEF_ResourceType_tags_1[0]), /* 1 */ - asn_DEF_ResourceType_tags_1, /* Same as above */ - sizeof(asn_DEF_ResourceType_tags_1) - /sizeof(asn_DEF_ResourceType_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_ResourceType_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_ResourceType_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/ResourceType.h b/e2sim/previous/ASN1c/ResourceType.h deleted file mode 100644 index 81fc307..0000000 --- a/e2sim/previous/ASN1c/ResourceType.h +++ /dev/null @@ -1,73 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _ResourceType_H_ -#define _ResourceType_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum ResourceType { - ResourceType_downlinknonCRS = 0, - ResourceType_cRS = 1, - ResourceType_uplink = 2 - /* - * Enumeration is extensible - */ -} e_ResourceType; - -/* ResourceType */ -typedef long ResourceType_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_ResourceType_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_ResourceType; -extern const asn_INTEGER_specifics_t asn_SPC_ResourceType_specs_1; -asn_struct_free_f ResourceType_free; -asn_struct_print_f ResourceType_print; -asn_constr_check_f ResourceType_constraint; -ber_type_decoder_f ResourceType_decode_ber; -der_type_encoder_f ResourceType_encode_der; -xer_type_decoder_f ResourceType_decode_xer; -xer_type_encoder_f ResourceType_encode_xer; -per_type_decoder_f ResourceType_decode_uper; -per_type_encoder_f ResourceType_encode_uper; -per_type_decoder_f ResourceType_decode_aper; -per_type_encoder_f ResourceType_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _ResourceType_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/RespondingNodeType-EndcConfigUpdate.c b/e2sim/previous/ASN1c/RespondingNodeType-EndcConfigUpdate.c deleted file mode 100644 index 1a09bf2..0000000 --- a/e2sim/previous/ASN1c/RespondingNodeType-EndcConfigUpdate.c +++ /dev/null @@ -1,81 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "RespondingNodeType-EndcConfigUpdate.h" - -#include "ProtocolIE-Container.h" -static asn_per_constraints_t asn_PER_type_RespondingNodeType_EndcConfigUpdate_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_RespondingNodeType_EndcConfigUpdate_1[] = { - { ATF_POINTER, 0, offsetof(struct RespondingNodeType_EndcConfigUpdate, choice.respond_eNB), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_119P95, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "respond-eNB" - }, - { ATF_POINTER, 0, offsetof(struct RespondingNodeType_EndcConfigUpdate, choice.respond_en_gNB), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_119P96, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "respond-en-gNB" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_RespondingNodeType_EndcConfigUpdate_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* respond-eNB */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* respond-en-gNB */ -}; -static asn_CHOICE_specifics_t asn_SPC_RespondingNodeType_EndcConfigUpdate_specs_1 = { - sizeof(struct RespondingNodeType_EndcConfigUpdate), - offsetof(struct RespondingNodeType_EndcConfigUpdate, _asn_ctx), - offsetof(struct RespondingNodeType_EndcConfigUpdate, present), - sizeof(((struct RespondingNodeType_EndcConfigUpdate *)0)->present), - asn_MAP_RespondingNodeType_EndcConfigUpdate_tag2el_1, - 2, /* Count of tags in the map */ - 0, 0, - 2 /* Extensions start */ -}; -asn_TYPE_descriptor_t asn_DEF_RespondingNodeType_EndcConfigUpdate = { - "RespondingNodeType-EndcConfigUpdate", - "RespondingNodeType-EndcConfigUpdate", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, &asn_PER_type_RespondingNodeType_EndcConfigUpdate_constr_1, CHOICE_constraint }, - asn_MBR_RespondingNodeType_EndcConfigUpdate_1, - 2, /* Elements count */ - &asn_SPC_RespondingNodeType_EndcConfigUpdate_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/RespondingNodeType-EndcConfigUpdate.h b/e2sim/previous/ASN1c/RespondingNodeType-EndcConfigUpdate.h deleted file mode 100644 index 7ab0986..0000000 --- a/e2sim/previous/ASN1c/RespondingNodeType-EndcConfigUpdate.h +++ /dev/null @@ -1,75 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _RespondingNodeType_EndcConfigUpdate_H_ -#define _RespondingNodeType_EndcConfigUpdate_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "constr_CHOICE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum RespondingNodeType_EndcConfigUpdate_PR { - RespondingNodeType_EndcConfigUpdate_PR_NOTHING, /* No components present */ - RespondingNodeType_EndcConfigUpdate_PR_respond_eNB, - RespondingNodeType_EndcConfigUpdate_PR_respond_en_gNB - /* Extensions may appear below */ - -} RespondingNodeType_EndcConfigUpdate_PR; - -/* Forward declarations */ -struct ProtocolIE_Container; - -/* RespondingNodeType-EndcConfigUpdate */ -typedef struct RespondingNodeType_EndcConfigUpdate { - RespondingNodeType_EndcConfigUpdate_PR present; - union RespondingNodeType_EndcConfigUpdate_u { - struct ProtocolIE_Container *respond_eNB; - struct ProtocolIE_Container *respond_en_gNB; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RespondingNodeType_EndcConfigUpdate_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RespondingNodeType_EndcConfigUpdate; - -#ifdef __cplusplus -} -#endif - -#endif /* _RespondingNodeType_EndcConfigUpdate_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/RespondingNodeType-EndcX2Removal.c b/e2sim/previous/ASN1c/RespondingNodeType-EndcX2Removal.c deleted file mode 100644 index 8d346cb..0000000 --- a/e2sim/previous/ASN1c/RespondingNodeType-EndcX2Removal.c +++ /dev/null @@ -1,81 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "RespondingNodeType-EndcX2Removal.h" - -#include "ProtocolIE-Container.h" -static asn_per_constraints_t asn_PER_type_RespondingNodeType_EndcX2Removal_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_RespondingNodeType_EndcX2Removal_1[] = { - { ATF_POINTER, 0, offsetof(struct RespondingNodeType_EndcX2Removal, choice.respond_eNB), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_119P115, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "respond-eNB" - }, - { ATF_POINTER, 0, offsetof(struct RespondingNodeType_EndcX2Removal, choice.respond_en_gNB), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_119P116, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "respond-en-gNB" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_RespondingNodeType_EndcX2Removal_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* respond-eNB */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* respond-en-gNB */ -}; -static asn_CHOICE_specifics_t asn_SPC_RespondingNodeType_EndcX2Removal_specs_1 = { - sizeof(struct RespondingNodeType_EndcX2Removal), - offsetof(struct RespondingNodeType_EndcX2Removal, _asn_ctx), - offsetof(struct RespondingNodeType_EndcX2Removal, present), - sizeof(((struct RespondingNodeType_EndcX2Removal *)0)->present), - asn_MAP_RespondingNodeType_EndcX2Removal_tag2el_1, - 2, /* Count of tags in the map */ - 0, 0, - 2 /* Extensions start */ -}; -asn_TYPE_descriptor_t asn_DEF_RespondingNodeType_EndcX2Removal = { - "RespondingNodeType-EndcX2Removal", - "RespondingNodeType-EndcX2Removal", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, &asn_PER_type_RespondingNodeType_EndcX2Removal_constr_1, CHOICE_constraint }, - asn_MBR_RespondingNodeType_EndcX2Removal_1, - 2, /* Elements count */ - &asn_SPC_RespondingNodeType_EndcX2Removal_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/RespondingNodeType-EndcX2Removal.h b/e2sim/previous/ASN1c/RespondingNodeType-EndcX2Removal.h deleted file mode 100644 index 8859c98..0000000 --- a/e2sim/previous/ASN1c/RespondingNodeType-EndcX2Removal.h +++ /dev/null @@ -1,75 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _RespondingNodeType_EndcX2Removal_H_ -#define _RespondingNodeType_EndcX2Removal_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "constr_CHOICE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum RespondingNodeType_EndcX2Removal_PR { - RespondingNodeType_EndcX2Removal_PR_NOTHING, /* No components present */ - RespondingNodeType_EndcX2Removal_PR_respond_eNB, - RespondingNodeType_EndcX2Removal_PR_respond_en_gNB - /* Extensions may appear below */ - -} RespondingNodeType_EndcX2Removal_PR; - -/* Forward declarations */ -struct ProtocolIE_Container; - -/* RespondingNodeType-EndcX2Removal */ -typedef struct RespondingNodeType_EndcX2Removal { - RespondingNodeType_EndcX2Removal_PR present; - union RespondingNodeType_EndcX2Removal_u { - struct ProtocolIE_Container *respond_eNB; - struct ProtocolIE_Container *respond_en_gNB; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RespondingNodeType_EndcX2Removal_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RespondingNodeType_EndcX2Removal; - -#ifdef __cplusplus -} -#endif - -#endif /* _RespondingNodeType_EndcX2Removal_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/RespondingNodeType-EndcX2Setup.c b/e2sim/previous/ASN1c/RespondingNodeType-EndcX2Setup.c deleted file mode 100644 index ec0a2cb..0000000 --- a/e2sim/previous/ASN1c/RespondingNodeType-EndcX2Setup.c +++ /dev/null @@ -1,81 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "RespondingNodeType-EndcX2Setup.h" - -#include "ProtocolIE-Container.h" -static asn_per_constraints_t asn_PER_type_RespondingNodeType_EndcX2Setup_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_RespondingNodeType_EndcX2Setup_1[] = { - { ATF_POINTER, 0, offsetof(struct RespondingNodeType_EndcX2Setup, choice.respond_eNB), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_119P88, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "respond-eNB" - }, - { ATF_POINTER, 0, offsetof(struct RespondingNodeType_EndcX2Setup, choice.respond_en_gNB), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_119P89, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "respond-en-gNB" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_RespondingNodeType_EndcX2Setup_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* respond-eNB */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* respond-en-gNB */ -}; -static asn_CHOICE_specifics_t asn_SPC_RespondingNodeType_EndcX2Setup_specs_1 = { - sizeof(struct RespondingNodeType_EndcX2Setup), - offsetof(struct RespondingNodeType_EndcX2Setup, _asn_ctx), - offsetof(struct RespondingNodeType_EndcX2Setup, present), - sizeof(((struct RespondingNodeType_EndcX2Setup *)0)->present), - asn_MAP_RespondingNodeType_EndcX2Setup_tag2el_1, - 2, /* Count of tags in the map */ - 0, 0, - 2 /* Extensions start */ -}; -asn_TYPE_descriptor_t asn_DEF_RespondingNodeType_EndcX2Setup = { - "RespondingNodeType-EndcX2Setup", - "RespondingNodeType-EndcX2Setup", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, &asn_PER_type_RespondingNodeType_EndcX2Setup_constr_1, CHOICE_constraint }, - asn_MBR_RespondingNodeType_EndcX2Setup_1, - 2, /* Elements count */ - &asn_SPC_RespondingNodeType_EndcX2Setup_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/RespondingNodeType-EndcX2Setup.h b/e2sim/previous/ASN1c/RespondingNodeType-EndcX2Setup.h deleted file mode 100644 index 66fc0f0..0000000 --- a/e2sim/previous/ASN1c/RespondingNodeType-EndcX2Setup.h +++ /dev/null @@ -1,75 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _RespondingNodeType_EndcX2Setup_H_ -#define _RespondingNodeType_EndcX2Setup_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "constr_CHOICE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum RespondingNodeType_EndcX2Setup_PR { - RespondingNodeType_EndcX2Setup_PR_NOTHING, /* No components present */ - RespondingNodeType_EndcX2Setup_PR_respond_eNB, - RespondingNodeType_EndcX2Setup_PR_respond_en_gNB - /* Extensions may appear below */ - -} RespondingNodeType_EndcX2Setup_PR; - -/* Forward declarations */ -struct ProtocolIE_Container; - -/* RespondingNodeType-EndcX2Setup */ -typedef struct RespondingNodeType_EndcX2Setup { - RespondingNodeType_EndcX2Setup_PR present; - union RespondingNodeType_EndcX2Setup_u { - struct ProtocolIE_Container *respond_eNB; - struct ProtocolIE_Container *respond_en_gNB; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RespondingNodeType_EndcX2Setup_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RespondingNodeType_EndcX2Setup; - -#ifdef __cplusplus -} -#endif - -#endif /* _RespondingNodeType_EndcX2Setup_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/RespondingNodeType-EutranrCellResourceCoordination.c b/e2sim/previous/ASN1c/RespondingNodeType-EutranrCellResourceCoordination.c deleted file mode 100644 index 1b28a9d..0000000 --- a/e2sim/previous/ASN1c/RespondingNodeType-EutranrCellResourceCoordination.c +++ /dev/null @@ -1,81 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "RespondingNodeType-EutranrCellResourceCoordination.h" - -#include "ProtocolIE-Container.h" -static asn_per_constraints_t asn_PER_type_RespondingNodeType_EutranrCellResourceCoordination_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_RespondingNodeType_EutranrCellResourceCoordination_1[] = { - { ATF_POINTER, 0, offsetof(struct RespondingNodeType_EutranrCellResourceCoordination, choice.respond_eNB), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_119P109, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "respond-eNB" - }, - { ATF_POINTER, 0, offsetof(struct RespondingNodeType_EutranrCellResourceCoordination, choice.respond_en_gNB), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_119P110, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "respond-en-gNB" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_RespondingNodeType_EutranrCellResourceCoordination_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* respond-eNB */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* respond-en-gNB */ -}; -static asn_CHOICE_specifics_t asn_SPC_RespondingNodeType_EutranrCellResourceCoordination_specs_1 = { - sizeof(struct RespondingNodeType_EutranrCellResourceCoordination), - offsetof(struct RespondingNodeType_EutranrCellResourceCoordination, _asn_ctx), - offsetof(struct RespondingNodeType_EutranrCellResourceCoordination, present), - sizeof(((struct RespondingNodeType_EutranrCellResourceCoordination *)0)->present), - asn_MAP_RespondingNodeType_EutranrCellResourceCoordination_tag2el_1, - 2, /* Count of tags in the map */ - 0, 0, - 2 /* Extensions start */ -}; -asn_TYPE_descriptor_t asn_DEF_RespondingNodeType_EutranrCellResourceCoordination = { - "RespondingNodeType-EutranrCellResourceCoordination", - "RespondingNodeType-EutranrCellResourceCoordination", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, &asn_PER_type_RespondingNodeType_EutranrCellResourceCoordination_constr_1, CHOICE_constraint }, - asn_MBR_RespondingNodeType_EutranrCellResourceCoordination_1, - 2, /* Elements count */ - &asn_SPC_RespondingNodeType_EutranrCellResourceCoordination_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/RespondingNodeType-EutranrCellResourceCoordination.h b/e2sim/previous/ASN1c/RespondingNodeType-EutranrCellResourceCoordination.h deleted file mode 100644 index 70e2889..0000000 --- a/e2sim/previous/ASN1c/RespondingNodeType-EutranrCellResourceCoordination.h +++ /dev/null @@ -1,75 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _RespondingNodeType_EutranrCellResourceCoordination_H_ -#define _RespondingNodeType_EutranrCellResourceCoordination_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "constr_CHOICE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum RespondingNodeType_EutranrCellResourceCoordination_PR { - RespondingNodeType_EutranrCellResourceCoordination_PR_NOTHING, /* No components present */ - RespondingNodeType_EutranrCellResourceCoordination_PR_respond_eNB, - RespondingNodeType_EutranrCellResourceCoordination_PR_respond_en_gNB - /* Extensions may appear below */ - -} RespondingNodeType_EutranrCellResourceCoordination_PR; - -/* Forward declarations */ -struct ProtocolIE_Container; - -/* RespondingNodeType-EutranrCellResourceCoordination */ -typedef struct RespondingNodeType_EutranrCellResourceCoordination { - RespondingNodeType_EutranrCellResourceCoordination_PR present; - union RespondingNodeType_EutranrCellResourceCoordination_u { - struct ProtocolIE_Container *respond_eNB; - struct ProtocolIE_Container *respond_en_gNB; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RespondingNodeType_EutranrCellResourceCoordination_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RespondingNodeType_EutranrCellResourceCoordination; - -#ifdef __cplusplus -} -#endif - -#endif /* _RespondingNodeType_EutranrCellResourceCoordination_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/ResponseInformationSeNBReconfComp-RejectByMeNBItem.c b/e2sim/previous/ASN1c/ResponseInformationSeNBReconfComp-RejectByMeNBItem.c deleted file mode 100644 index 889e630..0000000 --- a/e2sim/previous/ASN1c/ResponseInformationSeNBReconfComp-RejectByMeNBItem.c +++ /dev/null @@ -1,91 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "ResponseInformationSeNBReconfComp-RejectByMeNBItem.h" - -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_ResponseInformationSeNBReconfComp_RejectByMeNBItem_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct ResponseInformationSeNBReconfComp_RejectByMeNBItem, cause), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_Cause, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "cause" - }, - { ATF_POINTER, 2, offsetof(struct ResponseInformationSeNBReconfComp_RejectByMeNBItem, meNBtoSeNBContainer), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_MeNBtoSeNBContainer, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "meNBtoSeNBContainer" - }, - { ATF_POINTER, 1, offsetof(struct ResponseInformationSeNBReconfComp_RejectByMeNBItem, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P22, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_ResponseInformationSeNBReconfComp_RejectByMeNBItem_oms_1[] = { 1, 2 }; -static const ber_tlv_tag_t asn_DEF_ResponseInformationSeNBReconfComp_RejectByMeNBItem_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ResponseInformationSeNBReconfComp_RejectByMeNBItem_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* cause */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* meNBtoSeNBContainer */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ResponseInformationSeNBReconfComp_RejectByMeNBItem_specs_1 = { - sizeof(struct ResponseInformationSeNBReconfComp_RejectByMeNBItem), - offsetof(struct ResponseInformationSeNBReconfComp_RejectByMeNBItem, _asn_ctx), - asn_MAP_ResponseInformationSeNBReconfComp_RejectByMeNBItem_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_ResponseInformationSeNBReconfComp_RejectByMeNBItem_oms_1, /* Optional members */ - 2, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ResponseInformationSeNBReconfComp_RejectByMeNBItem = { - "ResponseInformationSeNBReconfComp-RejectByMeNBItem", - "ResponseInformationSeNBReconfComp-RejectByMeNBItem", - &asn_OP_SEQUENCE, - asn_DEF_ResponseInformationSeNBReconfComp_RejectByMeNBItem_tags_1, - sizeof(asn_DEF_ResponseInformationSeNBReconfComp_RejectByMeNBItem_tags_1) - /sizeof(asn_DEF_ResponseInformationSeNBReconfComp_RejectByMeNBItem_tags_1[0]), /* 1 */ - asn_DEF_ResponseInformationSeNBReconfComp_RejectByMeNBItem_tags_1, /* Same as above */ - sizeof(asn_DEF_ResponseInformationSeNBReconfComp_RejectByMeNBItem_tags_1) - /sizeof(asn_DEF_ResponseInformationSeNBReconfComp_RejectByMeNBItem_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ResponseInformationSeNBReconfComp_RejectByMeNBItem_1, - 3, /* Elements count */ - &asn_SPC_ResponseInformationSeNBReconfComp_RejectByMeNBItem_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/ResponseInformationSeNBReconfComp-RejectByMeNBItem.h b/e2sim/previous/ASN1c/ResponseInformationSeNBReconfComp-RejectByMeNBItem.h deleted file mode 100644 index 89a1ee1..0000000 --- a/e2sim/previous/ASN1c/ResponseInformationSeNBReconfComp-RejectByMeNBItem.h +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _ResponseInformationSeNBReconfComp_RejectByMeNBItem_H_ -#define _ResponseInformationSeNBReconfComp_RejectByMeNBItem_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "Cause.h" -#include "MeNBtoSeNBContainer.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* ResponseInformationSeNBReconfComp-RejectByMeNBItem */ -typedef struct ResponseInformationSeNBReconfComp_RejectByMeNBItem { - Cause_t cause; - MeNBtoSeNBContainer_t *meNBtoSeNBContainer; /* OPTIONAL */ - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ResponseInformationSeNBReconfComp_RejectByMeNBItem_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ResponseInformationSeNBReconfComp_RejectByMeNBItem; -extern asn_SEQUENCE_specifics_t asn_SPC_ResponseInformationSeNBReconfComp_RejectByMeNBItem_specs_1; -extern asn_TYPE_member_t asn_MBR_ResponseInformationSeNBReconfComp_RejectByMeNBItem_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _ResponseInformationSeNBReconfComp_RejectByMeNBItem_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/ResponseInformationSeNBReconfComp-SuccessItem.c b/e2sim/previous/ASN1c/ResponseInformationSeNBReconfComp-SuccessItem.c deleted file mode 100644 index 3be94ae..0000000 --- a/e2sim/previous/ASN1c/ResponseInformationSeNBReconfComp-SuccessItem.c +++ /dev/null @@ -1,81 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "ResponseInformationSeNBReconfComp-SuccessItem.h" - -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_ResponseInformationSeNBReconfComp_SuccessItem_1[] = { - { ATF_POINTER, 2, offsetof(struct ResponseInformationSeNBReconfComp_SuccessItem, meNBtoSeNBContainer), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_MeNBtoSeNBContainer, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "meNBtoSeNBContainer" - }, - { ATF_POINTER, 1, offsetof(struct ResponseInformationSeNBReconfComp_SuccessItem, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P21, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_ResponseInformationSeNBReconfComp_SuccessItem_oms_1[] = { 0, 1 }; -static const ber_tlv_tag_t asn_DEF_ResponseInformationSeNBReconfComp_SuccessItem_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ResponseInformationSeNBReconfComp_SuccessItem_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* meNBtoSeNBContainer */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ResponseInformationSeNBReconfComp_SuccessItem_specs_1 = { - sizeof(struct ResponseInformationSeNBReconfComp_SuccessItem), - offsetof(struct ResponseInformationSeNBReconfComp_SuccessItem, _asn_ctx), - asn_MAP_ResponseInformationSeNBReconfComp_SuccessItem_tag2el_1, - 2, /* Count of tags in the map */ - asn_MAP_ResponseInformationSeNBReconfComp_SuccessItem_oms_1, /* Optional members */ - 2, 0, /* Root/Additions */ - 2, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ResponseInformationSeNBReconfComp_SuccessItem = { - "ResponseInformationSeNBReconfComp-SuccessItem", - "ResponseInformationSeNBReconfComp-SuccessItem", - &asn_OP_SEQUENCE, - asn_DEF_ResponseInformationSeNBReconfComp_SuccessItem_tags_1, - sizeof(asn_DEF_ResponseInformationSeNBReconfComp_SuccessItem_tags_1) - /sizeof(asn_DEF_ResponseInformationSeNBReconfComp_SuccessItem_tags_1[0]), /* 1 */ - asn_DEF_ResponseInformationSeNBReconfComp_SuccessItem_tags_1, /* Same as above */ - sizeof(asn_DEF_ResponseInformationSeNBReconfComp_SuccessItem_tags_1) - /sizeof(asn_DEF_ResponseInformationSeNBReconfComp_SuccessItem_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ResponseInformationSeNBReconfComp_SuccessItem_1, - 2, /* Elements count */ - &asn_SPC_ResponseInformationSeNBReconfComp_SuccessItem_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/ResponseInformationSeNBReconfComp-SuccessItem.h b/e2sim/previous/ASN1c/ResponseInformationSeNBReconfComp-SuccessItem.h deleted file mode 100644 index 304f9e9..0000000 --- a/e2sim/previous/ASN1c/ResponseInformationSeNBReconfComp-SuccessItem.h +++ /dev/null @@ -1,66 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _ResponseInformationSeNBReconfComp_SuccessItem_H_ -#define _ResponseInformationSeNBReconfComp_SuccessItem_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "MeNBtoSeNBContainer.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* ResponseInformationSeNBReconfComp-SuccessItem */ -typedef struct ResponseInformationSeNBReconfComp_SuccessItem { - MeNBtoSeNBContainer_t *meNBtoSeNBContainer; /* OPTIONAL */ - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ResponseInformationSeNBReconfComp_SuccessItem_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ResponseInformationSeNBReconfComp_SuccessItem; -extern asn_SEQUENCE_specifics_t asn_SPC_ResponseInformationSeNBReconfComp_SuccessItem_specs_1; -extern asn_TYPE_member_t asn_MBR_ResponseInformationSeNBReconfComp_SuccessItem_1[2]; - -#ifdef __cplusplus -} -#endif - -#endif /* _ResponseInformationSeNBReconfComp_SuccessItem_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/ResponseInformationSeNBReconfComp.c b/e2sim/previous/ASN1c/ResponseInformationSeNBReconfComp.c deleted file mode 100644 index 82b35a3..0000000 --- a/e2sim/previous/ASN1c/ResponseInformationSeNBReconfComp.c +++ /dev/null @@ -1,82 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "ResponseInformationSeNBReconfComp.h" - -#include "ResponseInformationSeNBReconfComp-SuccessItem.h" -#include "ResponseInformationSeNBReconfComp-RejectByMeNBItem.h" -static asn_per_constraints_t asn_PER_type_ResponseInformationSeNBReconfComp_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_ResponseInformationSeNBReconfComp_1[] = { - { ATF_POINTER, 0, offsetof(struct ResponseInformationSeNBReconfComp, choice.success), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ResponseInformationSeNBReconfComp_SuccessItem, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "success" - }, - { ATF_POINTER, 0, offsetof(struct ResponseInformationSeNBReconfComp, choice.reject_by_MeNB), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ResponseInformationSeNBReconfComp_RejectByMeNBItem, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "reject-by-MeNB" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_ResponseInformationSeNBReconfComp_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* success */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* reject-by-MeNB */ -}; -static asn_CHOICE_specifics_t asn_SPC_ResponseInformationSeNBReconfComp_specs_1 = { - sizeof(struct ResponseInformationSeNBReconfComp), - offsetof(struct ResponseInformationSeNBReconfComp, _asn_ctx), - offsetof(struct ResponseInformationSeNBReconfComp, present), - sizeof(((struct ResponseInformationSeNBReconfComp *)0)->present), - asn_MAP_ResponseInformationSeNBReconfComp_tag2el_1, - 2, /* Count of tags in the map */ - 0, 0, - 2 /* Extensions start */ -}; -asn_TYPE_descriptor_t asn_DEF_ResponseInformationSeNBReconfComp = { - "ResponseInformationSeNBReconfComp", - "ResponseInformationSeNBReconfComp", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, &asn_PER_type_ResponseInformationSeNBReconfComp_constr_1, CHOICE_constraint }, - asn_MBR_ResponseInformationSeNBReconfComp_1, - 2, /* Elements count */ - &asn_SPC_ResponseInformationSeNBReconfComp_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/ResponseInformationSeNBReconfComp.h b/e2sim/previous/ASN1c/ResponseInformationSeNBReconfComp.h deleted file mode 100644 index fbe4128..0000000 --- a/e2sim/previous/ASN1c/ResponseInformationSeNBReconfComp.h +++ /dev/null @@ -1,76 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _ResponseInformationSeNBReconfComp_H_ -#define _ResponseInformationSeNBReconfComp_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "constr_CHOICE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum ResponseInformationSeNBReconfComp_PR { - ResponseInformationSeNBReconfComp_PR_NOTHING, /* No components present */ - ResponseInformationSeNBReconfComp_PR_success, - ResponseInformationSeNBReconfComp_PR_reject_by_MeNB - /* Extensions may appear below */ - -} ResponseInformationSeNBReconfComp_PR; - -/* Forward declarations */ -struct ResponseInformationSeNBReconfComp_SuccessItem; -struct ResponseInformationSeNBReconfComp_RejectByMeNBItem; - -/* ResponseInformationSeNBReconfComp */ -typedef struct ResponseInformationSeNBReconfComp { - ResponseInformationSeNBReconfComp_PR present; - union ResponseInformationSeNBReconfComp_u { - struct ResponseInformationSeNBReconfComp_SuccessItem *success; - struct ResponseInformationSeNBReconfComp_RejectByMeNBItem *reject_by_MeNB; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ResponseInformationSeNBReconfComp_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ResponseInformationSeNBReconfComp; - -#ifdef __cplusplus -} -#endif - -#endif /* _ResponseInformationSeNBReconfComp_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/ResponseInformationSgNBReconfComp-RejectByMeNBItem.c b/e2sim/previous/ASN1c/ResponseInformationSgNBReconfComp-RejectByMeNBItem.c deleted file mode 100644 index 97adf6a..0000000 --- a/e2sim/previous/ASN1c/ResponseInformationSgNBReconfComp-RejectByMeNBItem.c +++ /dev/null @@ -1,81 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "ResponseInformationSgNBReconfComp-RejectByMeNBItem.h" - -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_ResponseInformationSgNBReconfComp_RejectByMeNBItem_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct ResponseInformationSgNBReconfComp_RejectByMeNBItem, cause), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_Cause, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "cause" - }, - { ATF_POINTER, 1, offsetof(struct ResponseInformationSgNBReconfComp_RejectByMeNBItem, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P51, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_ResponseInformationSgNBReconfComp_RejectByMeNBItem_oms_1[] = { 1 }; -static const ber_tlv_tag_t asn_DEF_ResponseInformationSgNBReconfComp_RejectByMeNBItem_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ResponseInformationSgNBReconfComp_RejectByMeNBItem_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* cause */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ResponseInformationSgNBReconfComp_RejectByMeNBItem_specs_1 = { - sizeof(struct ResponseInformationSgNBReconfComp_RejectByMeNBItem), - offsetof(struct ResponseInformationSgNBReconfComp_RejectByMeNBItem, _asn_ctx), - asn_MAP_ResponseInformationSgNBReconfComp_RejectByMeNBItem_tag2el_1, - 2, /* Count of tags in the map */ - asn_MAP_ResponseInformationSgNBReconfComp_RejectByMeNBItem_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 2, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ResponseInformationSgNBReconfComp_RejectByMeNBItem = { - "ResponseInformationSgNBReconfComp-RejectByMeNBItem", - "ResponseInformationSgNBReconfComp-RejectByMeNBItem", - &asn_OP_SEQUENCE, - asn_DEF_ResponseInformationSgNBReconfComp_RejectByMeNBItem_tags_1, - sizeof(asn_DEF_ResponseInformationSgNBReconfComp_RejectByMeNBItem_tags_1) - /sizeof(asn_DEF_ResponseInformationSgNBReconfComp_RejectByMeNBItem_tags_1[0]), /* 1 */ - asn_DEF_ResponseInformationSgNBReconfComp_RejectByMeNBItem_tags_1, /* Same as above */ - sizeof(asn_DEF_ResponseInformationSgNBReconfComp_RejectByMeNBItem_tags_1) - /sizeof(asn_DEF_ResponseInformationSgNBReconfComp_RejectByMeNBItem_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ResponseInformationSgNBReconfComp_RejectByMeNBItem_1, - 2, /* Elements count */ - &asn_SPC_ResponseInformationSgNBReconfComp_RejectByMeNBItem_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/ResponseInformationSgNBReconfComp-RejectByMeNBItem.h b/e2sim/previous/ASN1c/ResponseInformationSgNBReconfComp-RejectByMeNBItem.h deleted file mode 100644 index 1ea6a84..0000000 --- a/e2sim/previous/ASN1c/ResponseInformationSgNBReconfComp-RejectByMeNBItem.h +++ /dev/null @@ -1,66 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _ResponseInformationSgNBReconfComp_RejectByMeNBItem_H_ -#define _ResponseInformationSgNBReconfComp_RejectByMeNBItem_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "Cause.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* ResponseInformationSgNBReconfComp-RejectByMeNBItem */ -typedef struct ResponseInformationSgNBReconfComp_RejectByMeNBItem { - Cause_t cause; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ResponseInformationSgNBReconfComp_RejectByMeNBItem_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ResponseInformationSgNBReconfComp_RejectByMeNBItem; -extern asn_SEQUENCE_specifics_t asn_SPC_ResponseInformationSgNBReconfComp_RejectByMeNBItem_specs_1; -extern asn_TYPE_member_t asn_MBR_ResponseInformationSgNBReconfComp_RejectByMeNBItem_1[2]; - -#ifdef __cplusplus -} -#endif - -#endif /* _ResponseInformationSgNBReconfComp_RejectByMeNBItem_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/ResponseInformationSgNBReconfComp-SuccessItem.c b/e2sim/previous/ASN1c/ResponseInformationSgNBReconfComp-SuccessItem.c deleted file mode 100644 index 4e381a2..0000000 --- a/e2sim/previous/ASN1c/ResponseInformationSgNBReconfComp-SuccessItem.c +++ /dev/null @@ -1,81 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "ResponseInformationSgNBReconfComp-SuccessItem.h" - -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_ResponseInformationSgNBReconfComp_SuccessItem_1[] = { - { ATF_POINTER, 2, offsetof(struct ResponseInformationSgNBReconfComp_SuccessItem, meNBtoSgNBContainer), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_MeNBtoSgNBContainer, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "meNBtoSgNBContainer" - }, - { ATF_POINTER, 1, offsetof(struct ResponseInformationSgNBReconfComp_SuccessItem, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P50, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_ResponseInformationSgNBReconfComp_SuccessItem_oms_1[] = { 0, 1 }; -static const ber_tlv_tag_t asn_DEF_ResponseInformationSgNBReconfComp_SuccessItem_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ResponseInformationSgNBReconfComp_SuccessItem_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* meNBtoSgNBContainer */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ResponseInformationSgNBReconfComp_SuccessItem_specs_1 = { - sizeof(struct ResponseInformationSgNBReconfComp_SuccessItem), - offsetof(struct ResponseInformationSgNBReconfComp_SuccessItem, _asn_ctx), - asn_MAP_ResponseInformationSgNBReconfComp_SuccessItem_tag2el_1, - 2, /* Count of tags in the map */ - asn_MAP_ResponseInformationSgNBReconfComp_SuccessItem_oms_1, /* Optional members */ - 2, 0, /* Root/Additions */ - 2, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ResponseInformationSgNBReconfComp_SuccessItem = { - "ResponseInformationSgNBReconfComp-SuccessItem", - "ResponseInformationSgNBReconfComp-SuccessItem", - &asn_OP_SEQUENCE, - asn_DEF_ResponseInformationSgNBReconfComp_SuccessItem_tags_1, - sizeof(asn_DEF_ResponseInformationSgNBReconfComp_SuccessItem_tags_1) - /sizeof(asn_DEF_ResponseInformationSgNBReconfComp_SuccessItem_tags_1[0]), /* 1 */ - asn_DEF_ResponseInformationSgNBReconfComp_SuccessItem_tags_1, /* Same as above */ - sizeof(asn_DEF_ResponseInformationSgNBReconfComp_SuccessItem_tags_1) - /sizeof(asn_DEF_ResponseInformationSgNBReconfComp_SuccessItem_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ResponseInformationSgNBReconfComp_SuccessItem_1, - 2, /* Elements count */ - &asn_SPC_ResponseInformationSgNBReconfComp_SuccessItem_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/ResponseInformationSgNBReconfComp-SuccessItem.h b/e2sim/previous/ASN1c/ResponseInformationSgNBReconfComp-SuccessItem.h deleted file mode 100644 index 7c20382..0000000 --- a/e2sim/previous/ASN1c/ResponseInformationSgNBReconfComp-SuccessItem.h +++ /dev/null @@ -1,66 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _ResponseInformationSgNBReconfComp_SuccessItem_H_ -#define _ResponseInformationSgNBReconfComp_SuccessItem_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "MeNBtoSgNBContainer.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* ResponseInformationSgNBReconfComp-SuccessItem */ -typedef struct ResponseInformationSgNBReconfComp_SuccessItem { - MeNBtoSgNBContainer_t *meNBtoSgNBContainer; /* OPTIONAL */ - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ResponseInformationSgNBReconfComp_SuccessItem_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ResponseInformationSgNBReconfComp_SuccessItem; -extern asn_SEQUENCE_specifics_t asn_SPC_ResponseInformationSgNBReconfComp_SuccessItem_specs_1; -extern asn_TYPE_member_t asn_MBR_ResponseInformationSgNBReconfComp_SuccessItem_1[2]; - -#ifdef __cplusplus -} -#endif - -#endif /* _ResponseInformationSgNBReconfComp_SuccessItem_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/ResponseInformationSgNBReconfComp.c b/e2sim/previous/ASN1c/ResponseInformationSgNBReconfComp.c deleted file mode 100644 index 11acaa9..0000000 --- a/e2sim/previous/ASN1c/ResponseInformationSgNBReconfComp.c +++ /dev/null @@ -1,82 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "ResponseInformationSgNBReconfComp.h" - -#include "ResponseInformationSgNBReconfComp-SuccessItem.h" -#include "ResponseInformationSgNBReconfComp-RejectByMeNBItem.h" -static asn_per_constraints_t asn_PER_type_ResponseInformationSgNBReconfComp_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_ResponseInformationSgNBReconfComp_1[] = { - { ATF_POINTER, 0, offsetof(struct ResponseInformationSgNBReconfComp, choice.success_SgNBReconfComp), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ResponseInformationSgNBReconfComp_SuccessItem, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "success-SgNBReconfComp" - }, - { ATF_POINTER, 0, offsetof(struct ResponseInformationSgNBReconfComp, choice.reject_by_MeNB_SgNBReconfComp), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ResponseInformationSgNBReconfComp_RejectByMeNBItem, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "reject-by-MeNB-SgNBReconfComp" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_ResponseInformationSgNBReconfComp_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* success-SgNBReconfComp */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* reject-by-MeNB-SgNBReconfComp */ -}; -static asn_CHOICE_specifics_t asn_SPC_ResponseInformationSgNBReconfComp_specs_1 = { - sizeof(struct ResponseInformationSgNBReconfComp), - offsetof(struct ResponseInformationSgNBReconfComp, _asn_ctx), - offsetof(struct ResponseInformationSgNBReconfComp, present), - sizeof(((struct ResponseInformationSgNBReconfComp *)0)->present), - asn_MAP_ResponseInformationSgNBReconfComp_tag2el_1, - 2, /* Count of tags in the map */ - 0, 0, - 2 /* Extensions start */ -}; -asn_TYPE_descriptor_t asn_DEF_ResponseInformationSgNBReconfComp = { - "ResponseInformationSgNBReconfComp", - "ResponseInformationSgNBReconfComp", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, &asn_PER_type_ResponseInformationSgNBReconfComp_constr_1, CHOICE_constraint }, - asn_MBR_ResponseInformationSgNBReconfComp_1, - 2, /* Elements count */ - &asn_SPC_ResponseInformationSgNBReconfComp_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/ResponseInformationSgNBReconfComp.h b/e2sim/previous/ASN1c/ResponseInformationSgNBReconfComp.h deleted file mode 100644 index ddb55ac..0000000 --- a/e2sim/previous/ASN1c/ResponseInformationSgNBReconfComp.h +++ /dev/null @@ -1,76 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _ResponseInformationSgNBReconfComp_H_ -#define _ResponseInformationSgNBReconfComp_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "constr_CHOICE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum ResponseInformationSgNBReconfComp_PR { - ResponseInformationSgNBReconfComp_PR_NOTHING, /* No components present */ - ResponseInformationSgNBReconfComp_PR_success_SgNBReconfComp, - ResponseInformationSgNBReconfComp_PR_reject_by_MeNB_SgNBReconfComp - /* Extensions may appear below */ - -} ResponseInformationSgNBReconfComp_PR; - -/* Forward declarations */ -struct ResponseInformationSgNBReconfComp_SuccessItem; -struct ResponseInformationSgNBReconfComp_RejectByMeNBItem; - -/* ResponseInformationSgNBReconfComp */ -typedef struct ResponseInformationSgNBReconfComp { - ResponseInformationSgNBReconfComp_PR present; - union ResponseInformationSgNBReconfComp_u { - struct ResponseInformationSgNBReconfComp_SuccessItem *success_SgNBReconfComp; - struct ResponseInformationSgNBReconfComp_RejectByMeNBItem *reject_by_MeNB_SgNBReconfComp; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ResponseInformationSgNBReconfComp_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ResponseInformationSgNBReconfComp; - -#ifdef __cplusplus -} -#endif - -#endif /* _ResponseInformationSgNBReconfComp_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/ResumeID.c b/e2sim/previous/ASN1c/ResumeID.c deleted file mode 100644 index aebc0af..0000000 --- a/e2sim/previous/ASN1c/ResumeID.c +++ /dev/null @@ -1,152 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "ResumeID.h" - -static int -memb_non_truncated_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if(st->size > 0) { - /* Size in bits */ - size = 8 * st->size - (st->bits_unused & 0x07); - } else { - size = 0; - } - - if((size == 40)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_truncated_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if(st->size > 0) { - /* Size in bits */ - size = 8 * st->size - (st->bits_unused & 0x07); - } else { - size = 0; - } - - if((size == 24)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_per_constraints_t asn_PER_memb_non_truncated_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 0, 0, 40, 40 } /* (SIZE(40..40)) */, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_truncated_constr_3 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 0, 0, 24, 24 } /* (SIZE(24..24)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ResumeID_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_ResumeID_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct ResumeID, choice.non_truncated), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_BIT_STRING, - 0, - { 0, &asn_PER_memb_non_truncated_constr_2, memb_non_truncated_constraint_1 }, - 0, 0, /* No default value */ - "non-truncated" - }, - { ATF_NOFLAGS, 0, offsetof(struct ResumeID, choice.truncated), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_BIT_STRING, - 0, - { 0, &asn_PER_memb_truncated_constr_3, memb_truncated_constraint_1 }, - 0, 0, /* No default value */ - "truncated" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_ResumeID_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* non-truncated */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* truncated */ -}; -asn_CHOICE_specifics_t asn_SPC_ResumeID_specs_1 = { - sizeof(struct ResumeID), - offsetof(struct ResumeID, _asn_ctx), - offsetof(struct ResumeID, present), - sizeof(((struct ResumeID *)0)->present), - asn_MAP_ResumeID_tag2el_1, - 2, /* Count of tags in the map */ - 0, 0, - 2 /* Extensions start */ -}; -asn_TYPE_descriptor_t asn_DEF_ResumeID = { - "ResumeID", - "ResumeID", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, &asn_PER_type_ResumeID_constr_1, CHOICE_constraint }, - asn_MBR_ResumeID_1, - 2, /* Elements count */ - &asn_SPC_ResumeID_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/ResumeID.h b/e2sim/previous/ASN1c/ResumeID.h deleted file mode 100644 index 23b6a87..0000000 --- a/e2sim/previous/ASN1c/ResumeID.h +++ /dev/null @@ -1,76 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _ResumeID_H_ -#define _ResumeID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "BIT_STRING.h" -#include "constr_CHOICE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum ResumeID_PR { - ResumeID_PR_NOTHING, /* No components present */ - ResumeID_PR_non_truncated, - ResumeID_PR_truncated - /* Extensions may appear below */ - -} ResumeID_PR; - -/* ResumeID */ -typedef struct ResumeID { - ResumeID_PR present; - union ResumeID_u { - BIT_STRING_t non_truncated; - BIT_STRING_t truncated; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ResumeID_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ResumeID; -extern asn_CHOICE_specifics_t asn_SPC_ResumeID_specs_1; -extern asn_TYPE_member_t asn_MBR_ResumeID_1[2]; -extern asn_per_constraints_t asn_PER_type_ResumeID_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _ResumeID_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/RetrieveUEContextFailure.c b/e2sim/previous/ASN1c/RetrieveUEContextFailure.c deleted file mode 100644 index 43b6fd1..0000000 --- a/e2sim/previous/ASN1c/RetrieveUEContextFailure.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "RetrieveUEContextFailure.h" - -static asn_TYPE_member_t asn_MBR_RetrieveUEContextFailure_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RetrieveUEContextFailure, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_119P63, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_RetrieveUEContextFailure_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RetrieveUEContextFailure_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_RetrieveUEContextFailure_specs_1 = { - sizeof(struct RetrieveUEContextFailure), - offsetof(struct RetrieveUEContextFailure, _asn_ctx), - asn_MAP_RetrieveUEContextFailure_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RetrieveUEContextFailure = { - "RetrieveUEContextFailure", - "RetrieveUEContextFailure", - &asn_OP_SEQUENCE, - asn_DEF_RetrieveUEContextFailure_tags_1, - sizeof(asn_DEF_RetrieveUEContextFailure_tags_1) - /sizeof(asn_DEF_RetrieveUEContextFailure_tags_1[0]), /* 1 */ - asn_DEF_RetrieveUEContextFailure_tags_1, /* Same as above */ - sizeof(asn_DEF_RetrieveUEContextFailure_tags_1) - /sizeof(asn_DEF_RetrieveUEContextFailure_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RetrieveUEContextFailure_1, - 1, /* Elements count */ - &asn_SPC_RetrieveUEContextFailure_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/RetrieveUEContextFailure.h b/e2sim/previous/ASN1c/RetrieveUEContextFailure.h deleted file mode 100644 index 5f77d15..0000000 --- a/e2sim/previous/ASN1c/RetrieveUEContextFailure.h +++ /dev/null @@ -1,60 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _RetrieveUEContextFailure_H_ -#define _RetrieveUEContextFailure_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RetrieveUEContextFailure */ -typedef struct RetrieveUEContextFailure { - ProtocolIE_Container_119P63_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RetrieveUEContextFailure_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RetrieveUEContextFailure; - -#ifdef __cplusplus -} -#endif - -#endif /* _RetrieveUEContextFailure_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/RetrieveUEContextRequest.c b/e2sim/previous/ASN1c/RetrieveUEContextRequest.c deleted file mode 100644 index 5950b3f..0000000 --- a/e2sim/previous/ASN1c/RetrieveUEContextRequest.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "RetrieveUEContextRequest.h" - -static asn_TYPE_member_t asn_MBR_RetrieveUEContextRequest_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RetrieveUEContextRequest, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_119P61, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_RetrieveUEContextRequest_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RetrieveUEContextRequest_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_RetrieveUEContextRequest_specs_1 = { - sizeof(struct RetrieveUEContextRequest), - offsetof(struct RetrieveUEContextRequest, _asn_ctx), - asn_MAP_RetrieveUEContextRequest_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RetrieveUEContextRequest = { - "RetrieveUEContextRequest", - "RetrieveUEContextRequest", - &asn_OP_SEQUENCE, - asn_DEF_RetrieveUEContextRequest_tags_1, - sizeof(asn_DEF_RetrieveUEContextRequest_tags_1) - /sizeof(asn_DEF_RetrieveUEContextRequest_tags_1[0]), /* 1 */ - asn_DEF_RetrieveUEContextRequest_tags_1, /* Same as above */ - sizeof(asn_DEF_RetrieveUEContextRequest_tags_1) - /sizeof(asn_DEF_RetrieveUEContextRequest_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RetrieveUEContextRequest_1, - 1, /* Elements count */ - &asn_SPC_RetrieveUEContextRequest_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/RetrieveUEContextRequest.h b/e2sim/previous/ASN1c/RetrieveUEContextRequest.h deleted file mode 100644 index b9c564a..0000000 --- a/e2sim/previous/ASN1c/RetrieveUEContextRequest.h +++ /dev/null @@ -1,60 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _RetrieveUEContextRequest_H_ -#define _RetrieveUEContextRequest_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RetrieveUEContextRequest */ -typedef struct RetrieveUEContextRequest { - ProtocolIE_Container_119P61_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RetrieveUEContextRequest_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RetrieveUEContextRequest; - -#ifdef __cplusplus -} -#endif - -#endif /* _RetrieveUEContextRequest_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/RetrieveUEContextResponse.c b/e2sim/previous/ASN1c/RetrieveUEContextResponse.c deleted file mode 100644 index 0e46ce8..0000000 --- a/e2sim/previous/ASN1c/RetrieveUEContextResponse.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "RetrieveUEContextResponse.h" - -static asn_TYPE_member_t asn_MBR_RetrieveUEContextResponse_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RetrieveUEContextResponse, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_119P62, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_RetrieveUEContextResponse_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RetrieveUEContextResponse_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_RetrieveUEContextResponse_specs_1 = { - sizeof(struct RetrieveUEContextResponse), - offsetof(struct RetrieveUEContextResponse, _asn_ctx), - asn_MAP_RetrieveUEContextResponse_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RetrieveUEContextResponse = { - "RetrieveUEContextResponse", - "RetrieveUEContextResponse", - &asn_OP_SEQUENCE, - asn_DEF_RetrieveUEContextResponse_tags_1, - sizeof(asn_DEF_RetrieveUEContextResponse_tags_1) - /sizeof(asn_DEF_RetrieveUEContextResponse_tags_1[0]), /* 1 */ - asn_DEF_RetrieveUEContextResponse_tags_1, /* Same as above */ - sizeof(asn_DEF_RetrieveUEContextResponse_tags_1) - /sizeof(asn_DEF_RetrieveUEContextResponse_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RetrieveUEContextResponse_1, - 1, /* Elements count */ - &asn_SPC_RetrieveUEContextResponse_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/RetrieveUEContextResponse.h b/e2sim/previous/ASN1c/RetrieveUEContextResponse.h deleted file mode 100644 index 1e08292..0000000 --- a/e2sim/previous/ASN1c/RetrieveUEContextResponse.h +++ /dev/null @@ -1,60 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _RetrieveUEContextResponse_H_ -#define _RetrieveUEContextResponse_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RetrieveUEContextResponse */ -typedef struct RetrieveUEContextResponse { - ProtocolIE_Container_119P62_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RetrieveUEContextResponse_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RetrieveUEContextResponse; - -#ifdef __cplusplus -} -#endif - -#endif /* _RetrieveUEContextResponse_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/S1TNLLoadIndicator.c b/e2sim/previous/ASN1c/S1TNLLoadIndicator.c deleted file mode 100644 index d4b7d05..0000000 --- a/e2sim/previous/ASN1c/S1TNLLoadIndicator.c +++ /dev/null @@ -1,91 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "S1TNLLoadIndicator.h" - -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_S1TNLLoadIndicator_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct S1TNLLoadIndicator, dLS1TNLLoadIndicator), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_LoadIndicator, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "dLS1TNLLoadIndicator" - }, - { ATF_NOFLAGS, 0, offsetof(struct S1TNLLoadIndicator, uLS1TNLLoadIndicator), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_LoadIndicator, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "uLS1TNLLoadIndicator" - }, - { ATF_POINTER, 1, offsetof(struct S1TNLLoadIndicator, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P189, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_S1TNLLoadIndicator_oms_1[] = { 2 }; -static const ber_tlv_tag_t asn_DEF_S1TNLLoadIndicator_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_S1TNLLoadIndicator_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* dLS1TNLLoadIndicator */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* uLS1TNLLoadIndicator */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_S1TNLLoadIndicator_specs_1 = { - sizeof(struct S1TNLLoadIndicator), - offsetof(struct S1TNLLoadIndicator, _asn_ctx), - asn_MAP_S1TNLLoadIndicator_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_S1TNLLoadIndicator_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_S1TNLLoadIndicator = { - "S1TNLLoadIndicator", - "S1TNLLoadIndicator", - &asn_OP_SEQUENCE, - asn_DEF_S1TNLLoadIndicator_tags_1, - sizeof(asn_DEF_S1TNLLoadIndicator_tags_1) - /sizeof(asn_DEF_S1TNLLoadIndicator_tags_1[0]), /* 1 */ - asn_DEF_S1TNLLoadIndicator_tags_1, /* Same as above */ - sizeof(asn_DEF_S1TNLLoadIndicator_tags_1) - /sizeof(asn_DEF_S1TNLLoadIndicator_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_S1TNLLoadIndicator_1, - 3, /* Elements count */ - &asn_SPC_S1TNLLoadIndicator_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/S1TNLLoadIndicator.h b/e2sim/previous/ASN1c/S1TNLLoadIndicator.h deleted file mode 100644 index c62c080..0000000 --- a/e2sim/previous/ASN1c/S1TNLLoadIndicator.h +++ /dev/null @@ -1,67 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _S1TNLLoadIndicator_H_ -#define _S1TNLLoadIndicator_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "LoadIndicator.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* S1TNLLoadIndicator */ -typedef struct S1TNLLoadIndicator { - LoadIndicator_t dLS1TNLLoadIndicator; - LoadIndicator_t uLS1TNLLoadIndicator; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} S1TNLLoadIndicator_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_S1TNLLoadIndicator; -extern asn_SEQUENCE_specifics_t asn_SPC_S1TNLLoadIndicator_specs_1; -extern asn_TYPE_member_t asn_MBR_S1TNLLoadIndicator_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _S1TNLLoadIndicator_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/SCGChangeIndication.c b/e2sim/previous/ASN1c/SCGChangeIndication.c deleted file mode 100644 index 129c90f..0000000 --- a/e2sim/previous/ASN1c/SCGChangeIndication.c +++ /dev/null @@ -1,75 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "SCGChangeIndication.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_SCGChangeIndication_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 2 } /* (0..2,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_SCGChangeIndication_value2enum_1[] = { - { 0, 19, "pDCPCountWrapAround" }, - { 1, 12, "pSCellChange" }, - { 2, 5, "other" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_SCGChangeIndication_enum2value_1[] = { - 2, /* other(2) */ - 0, /* pDCPCountWrapAround(0) */ - 1 /* pSCellChange(1) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_SCGChangeIndication_specs_1 = { - asn_MAP_SCGChangeIndication_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_SCGChangeIndication_enum2value_1, /* N => "tag"; sorted by N */ - 3, /* Number of elements in the maps */ - 4, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_SCGChangeIndication_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_SCGChangeIndication = { - "SCGChangeIndication", - "SCGChangeIndication", - &asn_OP_NativeEnumerated, - asn_DEF_SCGChangeIndication_tags_1, - sizeof(asn_DEF_SCGChangeIndication_tags_1) - /sizeof(asn_DEF_SCGChangeIndication_tags_1[0]), /* 1 */ - asn_DEF_SCGChangeIndication_tags_1, /* Same as above */ - sizeof(asn_DEF_SCGChangeIndication_tags_1) - /sizeof(asn_DEF_SCGChangeIndication_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_SCGChangeIndication_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_SCGChangeIndication_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/SCGChangeIndication.h b/e2sim/previous/ASN1c/SCGChangeIndication.h deleted file mode 100644 index 0a60750..0000000 --- a/e2sim/previous/ASN1c/SCGChangeIndication.h +++ /dev/null @@ -1,73 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _SCGChangeIndication_H_ -#define _SCGChangeIndication_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum SCGChangeIndication { - SCGChangeIndication_pDCPCountWrapAround = 0, - SCGChangeIndication_pSCellChange = 1, - SCGChangeIndication_other = 2 - /* - * Enumeration is extensible - */ -} e_SCGChangeIndication; - -/* SCGChangeIndication */ -typedef long SCGChangeIndication_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_SCGChangeIndication_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_SCGChangeIndication; -extern const asn_INTEGER_specifics_t asn_SPC_SCGChangeIndication_specs_1; -asn_struct_free_f SCGChangeIndication_free; -asn_struct_print_f SCGChangeIndication_print; -asn_constr_check_f SCGChangeIndication_constraint; -ber_type_decoder_f SCGChangeIndication_decode_ber; -der_type_encoder_f SCGChangeIndication_encode_der; -xer_type_decoder_f SCGChangeIndication_decode_xer; -xer_type_encoder_f SCGChangeIndication_encode_xer; -per_type_decoder_f SCGChangeIndication_decode_uper; -per_type_encoder_f SCGChangeIndication_encode_uper; -per_type_decoder_f SCGChangeIndication_decode_aper; -per_type_encoder_f SCGChangeIndication_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _SCGChangeIndication_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/SCGConfigurationQuery.c b/e2sim/previous/ASN1c/SCGConfigurationQuery.c deleted file mode 100644 index 945a90c..0000000 --- a/e2sim/previous/ASN1c/SCGConfigurationQuery.c +++ /dev/null @@ -1,71 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "SCGConfigurationQuery.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_SCGConfigurationQuery_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 0, 0 } /* (0..0,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_SCGConfigurationQuery_value2enum_1[] = { - { 0, 4, "true" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_SCGConfigurationQuery_enum2value_1[] = { - 0 /* true(0) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_SCGConfigurationQuery_specs_1 = { - asn_MAP_SCGConfigurationQuery_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_SCGConfigurationQuery_enum2value_1, /* N => "tag"; sorted by N */ - 1, /* Number of elements in the maps */ - 2, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_SCGConfigurationQuery_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_SCGConfigurationQuery = { - "SCGConfigurationQuery", - "SCGConfigurationQuery", - &asn_OP_NativeEnumerated, - asn_DEF_SCGConfigurationQuery_tags_1, - sizeof(asn_DEF_SCGConfigurationQuery_tags_1) - /sizeof(asn_DEF_SCGConfigurationQuery_tags_1[0]), /* 1 */ - asn_DEF_SCGConfigurationQuery_tags_1, /* Same as above */ - sizeof(asn_DEF_SCGConfigurationQuery_tags_1) - /sizeof(asn_DEF_SCGConfigurationQuery_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_SCGConfigurationQuery_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_SCGConfigurationQuery_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/SCGConfigurationQuery.h b/e2sim/previous/ASN1c/SCGConfigurationQuery.h deleted file mode 100644 index a00fbcb..0000000 --- a/e2sim/previous/ASN1c/SCGConfigurationQuery.h +++ /dev/null @@ -1,71 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _SCGConfigurationQuery_H_ -#define _SCGConfigurationQuery_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum SCGConfigurationQuery { - SCGConfigurationQuery_true = 0 - /* - * Enumeration is extensible - */ -} e_SCGConfigurationQuery; - -/* SCGConfigurationQuery */ -typedef long SCGConfigurationQuery_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_SCGConfigurationQuery_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_SCGConfigurationQuery; -extern const asn_INTEGER_specifics_t asn_SPC_SCGConfigurationQuery_specs_1; -asn_struct_free_f SCGConfigurationQuery_free; -asn_struct_print_f SCGConfigurationQuery_print; -asn_constr_check_f SCGConfigurationQuery_constraint; -ber_type_decoder_f SCGConfigurationQuery_decode_ber; -der_type_encoder_f SCGConfigurationQuery_encode_der; -xer_type_decoder_f SCGConfigurationQuery_decode_xer; -xer_type_encoder_f SCGConfigurationQuery_encode_xer; -per_type_decoder_f SCGConfigurationQuery_decode_uper; -per_type_encoder_f SCGConfigurationQuery_encode_uper; -per_type_decoder_f SCGConfigurationQuery_decode_aper; -per_type_encoder_f SCGConfigurationQuery_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _SCGConfigurationQuery_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/SGNB-Addition-Trigger-Ind.c b/e2sim/previous/ASN1c/SGNB-Addition-Trigger-Ind.c deleted file mode 100644 index af995ba..0000000 --- a/e2sim/previous/ASN1c/SGNB-Addition-Trigger-Ind.c +++ /dev/null @@ -1,75 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "SGNB-Addition-Trigger-Ind.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_SGNB_Addition_Trigger_Ind_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 2 } /* (0..2,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_SGNB_Addition_Trigger_Ind_value2enum_1[] = { - { 0, 9, "sn-change" }, - { 1, 12, "inter-eNB-HO" }, - { 2, 12, "intra-eNB-HO" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_SGNB_Addition_Trigger_Ind_enum2value_1[] = { - 1, /* inter-eNB-HO(1) */ - 2, /* intra-eNB-HO(2) */ - 0 /* sn-change(0) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_SGNB_Addition_Trigger_Ind_specs_1 = { - asn_MAP_SGNB_Addition_Trigger_Ind_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_SGNB_Addition_Trigger_Ind_enum2value_1, /* N => "tag"; sorted by N */ - 3, /* Number of elements in the maps */ - 4, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_SGNB_Addition_Trigger_Ind_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_SGNB_Addition_Trigger_Ind = { - "SGNB-Addition-Trigger-Ind", - "SGNB-Addition-Trigger-Ind", - &asn_OP_NativeEnumerated, - asn_DEF_SGNB_Addition_Trigger_Ind_tags_1, - sizeof(asn_DEF_SGNB_Addition_Trigger_Ind_tags_1) - /sizeof(asn_DEF_SGNB_Addition_Trigger_Ind_tags_1[0]), /* 1 */ - asn_DEF_SGNB_Addition_Trigger_Ind_tags_1, /* Same as above */ - sizeof(asn_DEF_SGNB_Addition_Trigger_Ind_tags_1) - /sizeof(asn_DEF_SGNB_Addition_Trigger_Ind_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_SGNB_Addition_Trigger_Ind_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_SGNB_Addition_Trigger_Ind_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/SGNB-Addition-Trigger-Ind.h b/e2sim/previous/ASN1c/SGNB-Addition-Trigger-Ind.h deleted file mode 100644 index 066bd83..0000000 --- a/e2sim/previous/ASN1c/SGNB-Addition-Trigger-Ind.h +++ /dev/null @@ -1,73 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _SGNB_Addition_Trigger_Ind_H_ -#define _SGNB_Addition_Trigger_Ind_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum SGNB_Addition_Trigger_Ind { - SGNB_Addition_Trigger_Ind_sn_change = 0, - SGNB_Addition_Trigger_Ind_inter_eNB_HO = 1, - SGNB_Addition_Trigger_Ind_intra_eNB_HO = 2 - /* - * Enumeration is extensible - */ -} e_SGNB_Addition_Trigger_Ind; - -/* SGNB-Addition-Trigger-Ind */ -typedef long SGNB_Addition_Trigger_Ind_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_SGNB_Addition_Trigger_Ind_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_SGNB_Addition_Trigger_Ind; -extern const asn_INTEGER_specifics_t asn_SPC_SGNB_Addition_Trigger_Ind_specs_1; -asn_struct_free_f SGNB_Addition_Trigger_Ind_free; -asn_struct_print_f SGNB_Addition_Trigger_Ind_print; -asn_constr_check_f SGNB_Addition_Trigger_Ind_constraint; -ber_type_decoder_f SGNB_Addition_Trigger_Ind_decode_ber; -der_type_encoder_f SGNB_Addition_Trigger_Ind_encode_der; -xer_type_decoder_f SGNB_Addition_Trigger_Ind_decode_xer; -xer_type_encoder_f SGNB_Addition_Trigger_Ind_encode_xer; -per_type_decoder_f SGNB_Addition_Trigger_Ind_decode_uper; -per_type_encoder_f SGNB_Addition_Trigger_Ind_encode_uper; -per_type_decoder_f SGNB_Addition_Trigger_Ind_decode_aper; -per_type_encoder_f SGNB_Addition_Trigger_Ind_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _SGNB_Addition_Trigger_Ind_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/SIPTOBearerDeactivationIndication.c b/e2sim/previous/ASN1c/SIPTOBearerDeactivationIndication.c deleted file mode 100644 index c847749..0000000 --- a/e2sim/previous/ASN1c/SIPTOBearerDeactivationIndication.c +++ /dev/null @@ -1,71 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "SIPTOBearerDeactivationIndication.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_SIPTOBearerDeactivationIndication_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 0, 0 } /* (0..0,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_SIPTOBearerDeactivationIndication_value2enum_1[] = { - { 0, 4, "true" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_SIPTOBearerDeactivationIndication_enum2value_1[] = { - 0 /* true(0) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_SIPTOBearerDeactivationIndication_specs_1 = { - asn_MAP_SIPTOBearerDeactivationIndication_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_SIPTOBearerDeactivationIndication_enum2value_1, /* N => "tag"; sorted by N */ - 1, /* Number of elements in the maps */ - 2, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_SIPTOBearerDeactivationIndication_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_SIPTOBearerDeactivationIndication = { - "SIPTOBearerDeactivationIndication", - "SIPTOBearerDeactivationIndication", - &asn_OP_NativeEnumerated, - asn_DEF_SIPTOBearerDeactivationIndication_tags_1, - sizeof(asn_DEF_SIPTOBearerDeactivationIndication_tags_1) - /sizeof(asn_DEF_SIPTOBearerDeactivationIndication_tags_1[0]), /* 1 */ - asn_DEF_SIPTOBearerDeactivationIndication_tags_1, /* Same as above */ - sizeof(asn_DEF_SIPTOBearerDeactivationIndication_tags_1) - /sizeof(asn_DEF_SIPTOBearerDeactivationIndication_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_SIPTOBearerDeactivationIndication_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_SIPTOBearerDeactivationIndication_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/SIPTOBearerDeactivationIndication.h b/e2sim/previous/ASN1c/SIPTOBearerDeactivationIndication.h deleted file mode 100644 index ba57507..0000000 --- a/e2sim/previous/ASN1c/SIPTOBearerDeactivationIndication.h +++ /dev/null @@ -1,71 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _SIPTOBearerDeactivationIndication_H_ -#define _SIPTOBearerDeactivationIndication_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum SIPTOBearerDeactivationIndication { - SIPTOBearerDeactivationIndication_true = 0 - /* - * Enumeration is extensible - */ -} e_SIPTOBearerDeactivationIndication; - -/* SIPTOBearerDeactivationIndication */ -typedef long SIPTOBearerDeactivationIndication_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_SIPTOBearerDeactivationIndication_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_SIPTOBearerDeactivationIndication; -extern const asn_INTEGER_specifics_t asn_SPC_SIPTOBearerDeactivationIndication_specs_1; -asn_struct_free_f SIPTOBearerDeactivationIndication_free; -asn_struct_print_f SIPTOBearerDeactivationIndication_print; -asn_constr_check_f SIPTOBearerDeactivationIndication_constraint; -ber_type_decoder_f SIPTOBearerDeactivationIndication_decode_ber; -der_type_encoder_f SIPTOBearerDeactivationIndication_encode_der; -xer_type_decoder_f SIPTOBearerDeactivationIndication_decode_xer; -xer_type_encoder_f SIPTOBearerDeactivationIndication_encode_xer; -per_type_decoder_f SIPTOBearerDeactivationIndication_decode_uper; -per_type_encoder_f SIPTOBearerDeactivationIndication_encode_uper; -per_type_decoder_f SIPTOBearerDeactivationIndication_decode_aper; -per_type_encoder_f SIPTOBearerDeactivationIndication_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _SIPTOBearerDeactivationIndication_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/SNStatusTransfer.c b/e2sim/previous/ASN1c/SNStatusTransfer.c deleted file mode 100644 index c3724c3..0000000 --- a/e2sim/previous/ASN1c/SNStatusTransfer.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "SNStatusTransfer.h" - -static asn_TYPE_member_t asn_MBR_SNStatusTransfer_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct SNStatusTransfer, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_119P18, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_SNStatusTransfer_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_SNStatusTransfer_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_SNStatusTransfer_specs_1 = { - sizeof(struct SNStatusTransfer), - offsetof(struct SNStatusTransfer, _asn_ctx), - asn_MAP_SNStatusTransfer_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_SNStatusTransfer = { - "SNStatusTransfer", - "SNStatusTransfer", - &asn_OP_SEQUENCE, - asn_DEF_SNStatusTransfer_tags_1, - sizeof(asn_DEF_SNStatusTransfer_tags_1) - /sizeof(asn_DEF_SNStatusTransfer_tags_1[0]), /* 1 */ - asn_DEF_SNStatusTransfer_tags_1, /* Same as above */ - sizeof(asn_DEF_SNStatusTransfer_tags_1) - /sizeof(asn_DEF_SNStatusTransfer_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_SNStatusTransfer_1, - 1, /* Elements count */ - &asn_SPC_SNStatusTransfer_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/SNStatusTransfer.h b/e2sim/previous/ASN1c/SNStatusTransfer.h deleted file mode 100644 index cac1b6a..0000000 --- a/e2sim/previous/ASN1c/SNStatusTransfer.h +++ /dev/null @@ -1,60 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _SNStatusTransfer_H_ -#define _SNStatusTransfer_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* SNStatusTransfer */ -typedef struct SNStatusTransfer { - ProtocolIE_Container_119P18_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} SNStatusTransfer_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_SNStatusTransfer; - -#ifdef __cplusplus -} -#endif - -#endif /* _SNStatusTransfer_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/SRBType.c b/e2sim/previous/ASN1c/SRBType.c deleted file mode 100644 index bfffb24..0000000 --- a/e2sim/previous/ASN1c/SRBType.c +++ /dev/null @@ -1,73 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "SRBType.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_SRBType_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_SRBType_value2enum_1[] = { - { 0, 4, "srb1" }, - { 1, 4, "srb2" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_SRBType_enum2value_1[] = { - 0, /* srb1(0) */ - 1 /* srb2(1) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_SRBType_specs_1 = { - asn_MAP_SRBType_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_SRBType_enum2value_1, /* N => "tag"; sorted by N */ - 2, /* Number of elements in the maps */ - 3, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_SRBType_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_SRBType = { - "SRBType", - "SRBType", - &asn_OP_NativeEnumerated, - asn_DEF_SRBType_tags_1, - sizeof(asn_DEF_SRBType_tags_1) - /sizeof(asn_DEF_SRBType_tags_1[0]), /* 1 */ - asn_DEF_SRBType_tags_1, /* Same as above */ - sizeof(asn_DEF_SRBType_tags_1) - /sizeof(asn_DEF_SRBType_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_SRBType_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_SRBType_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/SRBType.h b/e2sim/previous/ASN1c/SRBType.h deleted file mode 100644 index 3479c06..0000000 --- a/e2sim/previous/ASN1c/SRBType.h +++ /dev/null @@ -1,72 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _SRBType_H_ -#define _SRBType_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum SRBType { - SRBType_srb1 = 0, - SRBType_srb2 = 1 - /* - * Enumeration is extensible - */ -} e_SRBType; - -/* SRBType */ -typedef long SRBType_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_SRBType_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_SRBType; -extern const asn_INTEGER_specifics_t asn_SPC_SRBType_specs_1; -asn_struct_free_f SRBType_free; -asn_struct_print_f SRBType_print; -asn_constr_check_f SRBType_constraint; -ber_type_decoder_f SRBType_decode_ber; -der_type_encoder_f SRBType_encode_der; -xer_type_decoder_f SRBType_decode_xer; -xer_type_encoder_f SRBType_encode_xer; -per_type_decoder_f SRBType_decode_uper; -per_type_encoder_f SRBType_encode_uper; -per_type_decoder_f SRBType_decode_aper; -per_type_encoder_f SRBType_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _SRBType_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/SRVCCOperationPossible.c b/e2sim/previous/ASN1c/SRVCCOperationPossible.c deleted file mode 100644 index b367be0..0000000 --- a/e2sim/previous/ASN1c/SRVCCOperationPossible.c +++ /dev/null @@ -1,71 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "SRVCCOperationPossible.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_SRVCCOperationPossible_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 0, 0 } /* (0..0,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_SRVCCOperationPossible_value2enum_1[] = { - { 0, 8, "possible" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_SRVCCOperationPossible_enum2value_1[] = { - 0 /* possible(0) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_SRVCCOperationPossible_specs_1 = { - asn_MAP_SRVCCOperationPossible_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_SRVCCOperationPossible_enum2value_1, /* N => "tag"; sorted by N */ - 1, /* Number of elements in the maps */ - 2, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_SRVCCOperationPossible_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_SRVCCOperationPossible = { - "SRVCCOperationPossible", - "SRVCCOperationPossible", - &asn_OP_NativeEnumerated, - asn_DEF_SRVCCOperationPossible_tags_1, - sizeof(asn_DEF_SRVCCOperationPossible_tags_1) - /sizeof(asn_DEF_SRVCCOperationPossible_tags_1[0]), /* 1 */ - asn_DEF_SRVCCOperationPossible_tags_1, /* Same as above */ - sizeof(asn_DEF_SRVCCOperationPossible_tags_1) - /sizeof(asn_DEF_SRVCCOperationPossible_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_SRVCCOperationPossible_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_SRVCCOperationPossible_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/SRVCCOperationPossible.h b/e2sim/previous/ASN1c/SRVCCOperationPossible.h deleted file mode 100644 index 3fca919..0000000 --- a/e2sim/previous/ASN1c/SRVCCOperationPossible.h +++ /dev/null @@ -1,71 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _SRVCCOperationPossible_H_ -#define _SRVCCOperationPossible_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum SRVCCOperationPossible { - SRVCCOperationPossible_possible = 0 - /* - * Enumeration is extensible - */ -} e_SRVCCOperationPossible; - -/* SRVCCOperationPossible */ -typedef long SRVCCOperationPossible_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_SRVCCOperationPossible_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_SRVCCOperationPossible; -extern const asn_INTEGER_specifics_t asn_SPC_SRVCCOperationPossible_specs_1; -asn_struct_free_f SRVCCOperationPossible_free; -asn_struct_print_f SRVCCOperationPossible_print; -asn_constr_check_f SRVCCOperationPossible_constraint; -ber_type_decoder_f SRVCCOperationPossible_decode_ber; -der_type_encoder_f SRVCCOperationPossible_encode_der; -xer_type_decoder_f SRVCCOperationPossible_decode_xer; -xer_type_encoder_f SRVCCOperationPossible_encode_xer; -per_type_decoder_f SRVCCOperationPossible_decode_uper; -per_type_encoder_f SRVCCOperationPossible_encode_uper; -per_type_decoder_f SRVCCOperationPossible_decode_aper; -per_type_encoder_f SRVCCOperationPossible_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _SRVCCOperationPossible_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/SULInformation.c b/e2sim/previous/ASN1c/SULInformation.c deleted file mode 100644 index 8883d47..0000000 --- a/e2sim/previous/ASN1c/SULInformation.c +++ /dev/null @@ -1,121 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "SULInformation.h" - -#include "ProtocolExtensionContainer.h" -static int -memb_sUL_ARFCN_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 3279165)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_per_constraints_t asn_PER_memb_sUL_ARFCN_constr_2 CC_NOTUSED = { - { APC_CONSTRAINED, 22, -1, 0, 3279165 } /* (0..3279165) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_SULInformation_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct SULInformation, sUL_ARFCN), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { 0, &asn_PER_memb_sUL_ARFCN_constr_2, memb_sUL_ARFCN_constraint_1 }, - 0, 0, /* No default value */ - "sUL-ARFCN" - }, - { ATF_NOFLAGS, 0, offsetof(struct SULInformation, sUL_TxBW), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NR_TxBW, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "sUL-TxBW" - }, - { ATF_POINTER, 1, offsetof(struct SULInformation, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P199, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_SULInformation_oms_1[] = { 2 }; -static const ber_tlv_tag_t asn_DEF_SULInformation_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_SULInformation_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sUL-ARFCN */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* sUL-TxBW */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_SULInformation_specs_1 = { - sizeof(struct SULInformation), - offsetof(struct SULInformation, _asn_ctx), - asn_MAP_SULInformation_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_SULInformation_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_SULInformation = { - "SULInformation", - "SULInformation", - &asn_OP_SEQUENCE, - asn_DEF_SULInformation_tags_1, - sizeof(asn_DEF_SULInformation_tags_1) - /sizeof(asn_DEF_SULInformation_tags_1[0]), /* 1 */ - asn_DEF_SULInformation_tags_1, /* Same as above */ - sizeof(asn_DEF_SULInformation_tags_1) - /sizeof(asn_DEF_SULInformation_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_SULInformation_1, - 3, /* Elements count */ - &asn_SPC_SULInformation_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/SULInformation.h b/e2sim/previous/ASN1c/SULInformation.h deleted file mode 100644 index ce58f23..0000000 --- a/e2sim/previous/ASN1c/SULInformation.h +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _SULInformation_H_ -#define _SULInformation_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeInteger.h" -#include "NR-TxBW.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* SULInformation */ -typedef struct SULInformation { - long sUL_ARFCN; - NR_TxBW_t sUL_TxBW; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} SULInformation_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_SULInformation; -extern asn_SEQUENCE_specifics_t asn_SPC_SULInformation_specs_1; -extern asn_TYPE_member_t asn_MBR_SULInformation_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _SULInformation_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/ScheduledCommunicationTime.c b/e2sim/previous/ASN1c/ScheduledCommunicationTime.c deleted file mode 100644 index 3d19941..0000000 --- a/e2sim/previous/ASN1c/ScheduledCommunicationTime.c +++ /dev/null @@ -1,197 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "ScheduledCommunicationTime.h" - -#include "ProtocolExtensionContainer.h" -static int -memb_dayofWeek_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if(st->size > 0) { - /* Size in bits */ - size = 8 * st->size - (st->bits_unused & 0x07); - } else { - size = 0; - } - - if((size == 7)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_timeofDayStart_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 86399)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_timeofDayEnd_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 86399)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_per_constraints_t asn_PER_memb_dayofWeek_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 0, 0, 7, 7 } /* (SIZE(7..7)) */, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_timeofDayStart_constr_3 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 17, -1, 0, 86399 } /* (0..86399,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_timeofDayEnd_constr_4 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 17, -1, 0, 86399 } /* (0..86399,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_ScheduledCommunicationTime_1[] = { - { ATF_POINTER, 4, offsetof(struct ScheduledCommunicationTime, dayofWeek), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_BIT_STRING, - 0, - { 0, &asn_PER_memb_dayofWeek_constr_2, memb_dayofWeek_constraint_1 }, - 0, 0, /* No default value */ - "dayofWeek" - }, - { ATF_POINTER, 3, offsetof(struct ScheduledCommunicationTime, timeofDayStart), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { 0, &asn_PER_memb_timeofDayStart_constr_3, memb_timeofDayStart_constraint_1 }, - 0, 0, /* No default value */ - "timeofDayStart" - }, - { ATF_POINTER, 2, offsetof(struct ScheduledCommunicationTime, timeofDayEnd), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { 0, &asn_PER_memb_timeofDayEnd_constr_4, memb_timeofDayEnd_constraint_1 }, - 0, 0, /* No default value */ - "timeofDayEnd" - }, - { ATF_POINTER, 1, offsetof(struct ScheduledCommunicationTime, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P197, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_ScheduledCommunicationTime_oms_1[] = { 0, 1, 2, 3 }; -static const ber_tlv_tag_t asn_DEF_ScheduledCommunicationTime_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ScheduledCommunicationTime_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* dayofWeek */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* timeofDayStart */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* timeofDayEnd */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ScheduledCommunicationTime_specs_1 = { - sizeof(struct ScheduledCommunicationTime), - offsetof(struct ScheduledCommunicationTime, _asn_ctx), - asn_MAP_ScheduledCommunicationTime_tag2el_1, - 4, /* Count of tags in the map */ - asn_MAP_ScheduledCommunicationTime_oms_1, /* Optional members */ - 4, 0, /* Root/Additions */ - 4, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ScheduledCommunicationTime = { - "ScheduledCommunicationTime", - "ScheduledCommunicationTime", - &asn_OP_SEQUENCE, - asn_DEF_ScheduledCommunicationTime_tags_1, - sizeof(asn_DEF_ScheduledCommunicationTime_tags_1) - /sizeof(asn_DEF_ScheduledCommunicationTime_tags_1[0]), /* 1 */ - asn_DEF_ScheduledCommunicationTime_tags_1, /* Same as above */ - sizeof(asn_DEF_ScheduledCommunicationTime_tags_1) - /sizeof(asn_DEF_ScheduledCommunicationTime_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ScheduledCommunicationTime_1, - 4, /* Elements count */ - &asn_SPC_ScheduledCommunicationTime_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/ScheduledCommunicationTime.h b/e2sim/previous/ASN1c/ScheduledCommunicationTime.h deleted file mode 100644 index 12c09fc..0000000 --- a/e2sim/previous/ASN1c/ScheduledCommunicationTime.h +++ /dev/null @@ -1,69 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _ScheduledCommunicationTime_H_ -#define _ScheduledCommunicationTime_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "BIT_STRING.h" -#include "NativeInteger.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* ScheduledCommunicationTime */ -typedef struct ScheduledCommunicationTime { - BIT_STRING_t *dayofWeek; /* OPTIONAL */ - long *timeofDayStart; /* OPTIONAL */ - long *timeofDayEnd; /* OPTIONAL */ - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ScheduledCommunicationTime_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ScheduledCommunicationTime; -extern asn_SEQUENCE_specifics_t asn_SPC_ScheduledCommunicationTime_specs_1; -extern asn_TYPE_member_t asn_MBR_ScheduledCommunicationTime_1[4]; - -#ifdef __cplusplus -} -#endif - -#endif /* _ScheduledCommunicationTime_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/SeNBAdditionRequest.c b/e2sim/previous/ASN1c/SeNBAdditionRequest.c deleted file mode 100644 index 7755d8b..0000000 --- a/e2sim/previous/ASN1c/SeNBAdditionRequest.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "SeNBAdditionRequest.h" - -static asn_TYPE_member_t asn_MBR_SeNBAdditionRequest_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct SeNBAdditionRequest, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_119P44, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_SeNBAdditionRequest_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_SeNBAdditionRequest_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_SeNBAdditionRequest_specs_1 = { - sizeof(struct SeNBAdditionRequest), - offsetof(struct SeNBAdditionRequest, _asn_ctx), - asn_MAP_SeNBAdditionRequest_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_SeNBAdditionRequest = { - "SeNBAdditionRequest", - "SeNBAdditionRequest", - &asn_OP_SEQUENCE, - asn_DEF_SeNBAdditionRequest_tags_1, - sizeof(asn_DEF_SeNBAdditionRequest_tags_1) - /sizeof(asn_DEF_SeNBAdditionRequest_tags_1[0]), /* 1 */ - asn_DEF_SeNBAdditionRequest_tags_1, /* Same as above */ - sizeof(asn_DEF_SeNBAdditionRequest_tags_1) - /sizeof(asn_DEF_SeNBAdditionRequest_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_SeNBAdditionRequest_1, - 1, /* Elements count */ - &asn_SPC_SeNBAdditionRequest_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/SeNBAdditionRequest.h b/e2sim/previous/ASN1c/SeNBAdditionRequest.h deleted file mode 100644 index a067568..0000000 --- a/e2sim/previous/ASN1c/SeNBAdditionRequest.h +++ /dev/null @@ -1,60 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _SeNBAdditionRequest_H_ -#define _SeNBAdditionRequest_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* SeNBAdditionRequest */ -typedef struct SeNBAdditionRequest { - ProtocolIE_Container_119P44_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} SeNBAdditionRequest_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_SeNBAdditionRequest; - -#ifdef __cplusplus -} -#endif - -#endif /* _SeNBAdditionRequest_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/SeNBAdditionRequestAcknowledge.c b/e2sim/previous/ASN1c/SeNBAdditionRequestAcknowledge.c deleted file mode 100644 index e0c2ba4..0000000 --- a/e2sim/previous/ASN1c/SeNBAdditionRequestAcknowledge.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "SeNBAdditionRequestAcknowledge.h" - -static asn_TYPE_member_t asn_MBR_SeNBAdditionRequestAcknowledge_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct SeNBAdditionRequestAcknowledge, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_119P45, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_SeNBAdditionRequestAcknowledge_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_SeNBAdditionRequestAcknowledge_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_SeNBAdditionRequestAcknowledge_specs_1 = { - sizeof(struct SeNBAdditionRequestAcknowledge), - offsetof(struct SeNBAdditionRequestAcknowledge, _asn_ctx), - asn_MAP_SeNBAdditionRequestAcknowledge_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_SeNBAdditionRequestAcknowledge = { - "SeNBAdditionRequestAcknowledge", - "SeNBAdditionRequestAcknowledge", - &asn_OP_SEQUENCE, - asn_DEF_SeNBAdditionRequestAcknowledge_tags_1, - sizeof(asn_DEF_SeNBAdditionRequestAcknowledge_tags_1) - /sizeof(asn_DEF_SeNBAdditionRequestAcknowledge_tags_1[0]), /* 1 */ - asn_DEF_SeNBAdditionRequestAcknowledge_tags_1, /* Same as above */ - sizeof(asn_DEF_SeNBAdditionRequestAcknowledge_tags_1) - /sizeof(asn_DEF_SeNBAdditionRequestAcknowledge_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_SeNBAdditionRequestAcknowledge_1, - 1, /* Elements count */ - &asn_SPC_SeNBAdditionRequestAcknowledge_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/SeNBAdditionRequestAcknowledge.h b/e2sim/previous/ASN1c/SeNBAdditionRequestAcknowledge.h deleted file mode 100644 index 3b405c3..0000000 --- a/e2sim/previous/ASN1c/SeNBAdditionRequestAcknowledge.h +++ /dev/null @@ -1,60 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _SeNBAdditionRequestAcknowledge_H_ -#define _SeNBAdditionRequestAcknowledge_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* SeNBAdditionRequestAcknowledge */ -typedef struct SeNBAdditionRequestAcknowledge { - ProtocolIE_Container_119P45_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} SeNBAdditionRequestAcknowledge_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_SeNBAdditionRequestAcknowledge; - -#ifdef __cplusplus -} -#endif - -#endif /* _SeNBAdditionRequestAcknowledge_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/SeNBAdditionRequestReject.c b/e2sim/previous/ASN1c/SeNBAdditionRequestReject.c deleted file mode 100644 index 00f156b..0000000 --- a/e2sim/previous/ASN1c/SeNBAdditionRequestReject.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "SeNBAdditionRequestReject.h" - -static asn_TYPE_member_t asn_MBR_SeNBAdditionRequestReject_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct SeNBAdditionRequestReject, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_119P46, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_SeNBAdditionRequestReject_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_SeNBAdditionRequestReject_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_SeNBAdditionRequestReject_specs_1 = { - sizeof(struct SeNBAdditionRequestReject), - offsetof(struct SeNBAdditionRequestReject, _asn_ctx), - asn_MAP_SeNBAdditionRequestReject_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_SeNBAdditionRequestReject = { - "SeNBAdditionRequestReject", - "SeNBAdditionRequestReject", - &asn_OP_SEQUENCE, - asn_DEF_SeNBAdditionRequestReject_tags_1, - sizeof(asn_DEF_SeNBAdditionRequestReject_tags_1) - /sizeof(asn_DEF_SeNBAdditionRequestReject_tags_1[0]), /* 1 */ - asn_DEF_SeNBAdditionRequestReject_tags_1, /* Same as above */ - sizeof(asn_DEF_SeNBAdditionRequestReject_tags_1) - /sizeof(asn_DEF_SeNBAdditionRequestReject_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_SeNBAdditionRequestReject_1, - 1, /* Elements count */ - &asn_SPC_SeNBAdditionRequestReject_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/SeNBAdditionRequestReject.h b/e2sim/previous/ASN1c/SeNBAdditionRequestReject.h deleted file mode 100644 index 316fbef..0000000 --- a/e2sim/previous/ASN1c/SeNBAdditionRequestReject.h +++ /dev/null @@ -1,60 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _SeNBAdditionRequestReject_H_ -#define _SeNBAdditionRequestReject_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* SeNBAdditionRequestReject */ -typedef struct SeNBAdditionRequestReject { - ProtocolIE_Container_119P46_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} SeNBAdditionRequestReject_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_SeNBAdditionRequestReject; - -#ifdef __cplusplus -} -#endif - -#endif /* _SeNBAdditionRequestReject_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/SeNBCounterCheckRequest.c b/e2sim/previous/ASN1c/SeNBCounterCheckRequest.c deleted file mode 100644 index afa6276..0000000 --- a/e2sim/previous/ASN1c/SeNBCounterCheckRequest.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "SeNBCounterCheckRequest.h" - -static asn_TYPE_member_t asn_MBR_SeNBCounterCheckRequest_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct SeNBCounterCheckRequest, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_119P57, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_SeNBCounterCheckRequest_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_SeNBCounterCheckRequest_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_SeNBCounterCheckRequest_specs_1 = { - sizeof(struct SeNBCounterCheckRequest), - offsetof(struct SeNBCounterCheckRequest, _asn_ctx), - asn_MAP_SeNBCounterCheckRequest_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_SeNBCounterCheckRequest = { - "SeNBCounterCheckRequest", - "SeNBCounterCheckRequest", - &asn_OP_SEQUENCE, - asn_DEF_SeNBCounterCheckRequest_tags_1, - sizeof(asn_DEF_SeNBCounterCheckRequest_tags_1) - /sizeof(asn_DEF_SeNBCounterCheckRequest_tags_1[0]), /* 1 */ - asn_DEF_SeNBCounterCheckRequest_tags_1, /* Same as above */ - sizeof(asn_DEF_SeNBCounterCheckRequest_tags_1) - /sizeof(asn_DEF_SeNBCounterCheckRequest_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_SeNBCounterCheckRequest_1, - 1, /* Elements count */ - &asn_SPC_SeNBCounterCheckRequest_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/SeNBCounterCheckRequest.h b/e2sim/previous/ASN1c/SeNBCounterCheckRequest.h deleted file mode 100644 index 816bb3b..0000000 --- a/e2sim/previous/ASN1c/SeNBCounterCheckRequest.h +++ /dev/null @@ -1,60 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _SeNBCounterCheckRequest_H_ -#define _SeNBCounterCheckRequest_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* SeNBCounterCheckRequest */ -typedef struct SeNBCounterCheckRequest { - ProtocolIE_Container_119P57_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} SeNBCounterCheckRequest_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_SeNBCounterCheckRequest; - -#ifdef __cplusplus -} -#endif - -#endif /* _SeNBCounterCheckRequest_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/SeNBModificationConfirm.c b/e2sim/previous/ASN1c/SeNBModificationConfirm.c deleted file mode 100644 index c78e964..0000000 --- a/e2sim/previous/ASN1c/SeNBModificationConfirm.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "SeNBModificationConfirm.h" - -static asn_TYPE_member_t asn_MBR_SeNBModificationConfirm_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct SeNBModificationConfirm, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_119P52, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_SeNBModificationConfirm_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_SeNBModificationConfirm_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_SeNBModificationConfirm_specs_1 = { - sizeof(struct SeNBModificationConfirm), - offsetof(struct SeNBModificationConfirm, _asn_ctx), - asn_MAP_SeNBModificationConfirm_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_SeNBModificationConfirm = { - "SeNBModificationConfirm", - "SeNBModificationConfirm", - &asn_OP_SEQUENCE, - asn_DEF_SeNBModificationConfirm_tags_1, - sizeof(asn_DEF_SeNBModificationConfirm_tags_1) - /sizeof(asn_DEF_SeNBModificationConfirm_tags_1[0]), /* 1 */ - asn_DEF_SeNBModificationConfirm_tags_1, /* Same as above */ - sizeof(asn_DEF_SeNBModificationConfirm_tags_1) - /sizeof(asn_DEF_SeNBModificationConfirm_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_SeNBModificationConfirm_1, - 1, /* Elements count */ - &asn_SPC_SeNBModificationConfirm_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/SeNBModificationConfirm.h b/e2sim/previous/ASN1c/SeNBModificationConfirm.h deleted file mode 100644 index 98690bd..0000000 --- a/e2sim/previous/ASN1c/SeNBModificationConfirm.h +++ /dev/null @@ -1,60 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _SeNBModificationConfirm_H_ -#define _SeNBModificationConfirm_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* SeNBModificationConfirm */ -typedef struct SeNBModificationConfirm { - ProtocolIE_Container_119P52_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} SeNBModificationConfirm_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_SeNBModificationConfirm; - -#ifdef __cplusplus -} -#endif - -#endif /* _SeNBModificationConfirm_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/SeNBModificationRefuse.c b/e2sim/previous/ASN1c/SeNBModificationRefuse.c deleted file mode 100644 index 0b9959a..0000000 --- a/e2sim/previous/ASN1c/SeNBModificationRefuse.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "SeNBModificationRefuse.h" - -static asn_TYPE_member_t asn_MBR_SeNBModificationRefuse_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct SeNBModificationRefuse, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_119P53, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_SeNBModificationRefuse_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_SeNBModificationRefuse_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_SeNBModificationRefuse_specs_1 = { - sizeof(struct SeNBModificationRefuse), - offsetof(struct SeNBModificationRefuse, _asn_ctx), - asn_MAP_SeNBModificationRefuse_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_SeNBModificationRefuse = { - "SeNBModificationRefuse", - "SeNBModificationRefuse", - &asn_OP_SEQUENCE, - asn_DEF_SeNBModificationRefuse_tags_1, - sizeof(asn_DEF_SeNBModificationRefuse_tags_1) - /sizeof(asn_DEF_SeNBModificationRefuse_tags_1[0]), /* 1 */ - asn_DEF_SeNBModificationRefuse_tags_1, /* Same as above */ - sizeof(asn_DEF_SeNBModificationRefuse_tags_1) - /sizeof(asn_DEF_SeNBModificationRefuse_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_SeNBModificationRefuse_1, - 1, /* Elements count */ - &asn_SPC_SeNBModificationRefuse_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/SeNBModificationRefuse.h b/e2sim/previous/ASN1c/SeNBModificationRefuse.h deleted file mode 100644 index a0fca6a..0000000 --- a/e2sim/previous/ASN1c/SeNBModificationRefuse.h +++ /dev/null @@ -1,60 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _SeNBModificationRefuse_H_ -#define _SeNBModificationRefuse_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* SeNBModificationRefuse */ -typedef struct SeNBModificationRefuse { - ProtocolIE_Container_119P53_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} SeNBModificationRefuse_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_SeNBModificationRefuse; - -#ifdef __cplusplus -} -#endif - -#endif /* _SeNBModificationRefuse_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/SeNBModificationRequest.c b/e2sim/previous/ASN1c/SeNBModificationRequest.c deleted file mode 100644 index 24f9c78..0000000 --- a/e2sim/previous/ASN1c/SeNBModificationRequest.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "SeNBModificationRequest.h" - -static asn_TYPE_member_t asn_MBR_SeNBModificationRequest_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct SeNBModificationRequest, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_119P48, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_SeNBModificationRequest_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_SeNBModificationRequest_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_SeNBModificationRequest_specs_1 = { - sizeof(struct SeNBModificationRequest), - offsetof(struct SeNBModificationRequest, _asn_ctx), - asn_MAP_SeNBModificationRequest_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_SeNBModificationRequest = { - "SeNBModificationRequest", - "SeNBModificationRequest", - &asn_OP_SEQUENCE, - asn_DEF_SeNBModificationRequest_tags_1, - sizeof(asn_DEF_SeNBModificationRequest_tags_1) - /sizeof(asn_DEF_SeNBModificationRequest_tags_1[0]), /* 1 */ - asn_DEF_SeNBModificationRequest_tags_1, /* Same as above */ - sizeof(asn_DEF_SeNBModificationRequest_tags_1) - /sizeof(asn_DEF_SeNBModificationRequest_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_SeNBModificationRequest_1, - 1, /* Elements count */ - &asn_SPC_SeNBModificationRequest_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/SeNBModificationRequest.h b/e2sim/previous/ASN1c/SeNBModificationRequest.h deleted file mode 100644 index be41488..0000000 --- a/e2sim/previous/ASN1c/SeNBModificationRequest.h +++ /dev/null @@ -1,60 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _SeNBModificationRequest_H_ -#define _SeNBModificationRequest_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* SeNBModificationRequest */ -typedef struct SeNBModificationRequest { - ProtocolIE_Container_119P48_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} SeNBModificationRequest_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_SeNBModificationRequest; - -#ifdef __cplusplus -} -#endif - -#endif /* _SeNBModificationRequest_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/SeNBModificationRequestAcknowledge.c b/e2sim/previous/ASN1c/SeNBModificationRequestAcknowledge.c deleted file mode 100644 index 5768eec..0000000 --- a/e2sim/previous/ASN1c/SeNBModificationRequestAcknowledge.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "SeNBModificationRequestAcknowledge.h" - -static asn_TYPE_member_t asn_MBR_SeNBModificationRequestAcknowledge_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct SeNBModificationRequestAcknowledge, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_119P49, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_SeNBModificationRequestAcknowledge_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_SeNBModificationRequestAcknowledge_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_SeNBModificationRequestAcknowledge_specs_1 = { - sizeof(struct SeNBModificationRequestAcknowledge), - offsetof(struct SeNBModificationRequestAcknowledge, _asn_ctx), - asn_MAP_SeNBModificationRequestAcknowledge_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_SeNBModificationRequestAcknowledge = { - "SeNBModificationRequestAcknowledge", - "SeNBModificationRequestAcknowledge", - &asn_OP_SEQUENCE, - asn_DEF_SeNBModificationRequestAcknowledge_tags_1, - sizeof(asn_DEF_SeNBModificationRequestAcknowledge_tags_1) - /sizeof(asn_DEF_SeNBModificationRequestAcknowledge_tags_1[0]), /* 1 */ - asn_DEF_SeNBModificationRequestAcknowledge_tags_1, /* Same as above */ - sizeof(asn_DEF_SeNBModificationRequestAcknowledge_tags_1) - /sizeof(asn_DEF_SeNBModificationRequestAcknowledge_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_SeNBModificationRequestAcknowledge_1, - 1, /* Elements count */ - &asn_SPC_SeNBModificationRequestAcknowledge_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/SeNBModificationRequestAcknowledge.h b/e2sim/previous/ASN1c/SeNBModificationRequestAcknowledge.h deleted file mode 100644 index 808611f..0000000 --- a/e2sim/previous/ASN1c/SeNBModificationRequestAcknowledge.h +++ /dev/null @@ -1,60 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _SeNBModificationRequestAcknowledge_H_ -#define _SeNBModificationRequestAcknowledge_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* SeNBModificationRequestAcknowledge */ -typedef struct SeNBModificationRequestAcknowledge { - ProtocolIE_Container_119P49_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} SeNBModificationRequestAcknowledge_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_SeNBModificationRequestAcknowledge; - -#ifdef __cplusplus -} -#endif - -#endif /* _SeNBModificationRequestAcknowledge_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/SeNBModificationRequestReject.c b/e2sim/previous/ASN1c/SeNBModificationRequestReject.c deleted file mode 100644 index f0b861c..0000000 --- a/e2sim/previous/ASN1c/SeNBModificationRequestReject.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "SeNBModificationRequestReject.h" - -static asn_TYPE_member_t asn_MBR_SeNBModificationRequestReject_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct SeNBModificationRequestReject, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_119P50, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_SeNBModificationRequestReject_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_SeNBModificationRequestReject_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_SeNBModificationRequestReject_specs_1 = { - sizeof(struct SeNBModificationRequestReject), - offsetof(struct SeNBModificationRequestReject, _asn_ctx), - asn_MAP_SeNBModificationRequestReject_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_SeNBModificationRequestReject = { - "SeNBModificationRequestReject", - "SeNBModificationRequestReject", - &asn_OP_SEQUENCE, - asn_DEF_SeNBModificationRequestReject_tags_1, - sizeof(asn_DEF_SeNBModificationRequestReject_tags_1) - /sizeof(asn_DEF_SeNBModificationRequestReject_tags_1[0]), /* 1 */ - asn_DEF_SeNBModificationRequestReject_tags_1, /* Same as above */ - sizeof(asn_DEF_SeNBModificationRequestReject_tags_1) - /sizeof(asn_DEF_SeNBModificationRequestReject_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_SeNBModificationRequestReject_1, - 1, /* Elements count */ - &asn_SPC_SeNBModificationRequestReject_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/SeNBModificationRequestReject.h b/e2sim/previous/ASN1c/SeNBModificationRequestReject.h deleted file mode 100644 index b83a54f..0000000 --- a/e2sim/previous/ASN1c/SeNBModificationRequestReject.h +++ /dev/null @@ -1,60 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _SeNBModificationRequestReject_H_ -#define _SeNBModificationRequestReject_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* SeNBModificationRequestReject */ -typedef struct SeNBModificationRequestReject { - ProtocolIE_Container_119P50_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} SeNBModificationRequestReject_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_SeNBModificationRequestReject; - -#ifdef __cplusplus -} -#endif - -#endif /* _SeNBModificationRequestReject_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/SeNBModificationRequired.c b/e2sim/previous/ASN1c/SeNBModificationRequired.c deleted file mode 100644 index 5e1cead..0000000 --- a/e2sim/previous/ASN1c/SeNBModificationRequired.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "SeNBModificationRequired.h" - -static asn_TYPE_member_t asn_MBR_SeNBModificationRequired_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct SeNBModificationRequired, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_119P51, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_SeNBModificationRequired_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_SeNBModificationRequired_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_SeNBModificationRequired_specs_1 = { - sizeof(struct SeNBModificationRequired), - offsetof(struct SeNBModificationRequired, _asn_ctx), - asn_MAP_SeNBModificationRequired_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_SeNBModificationRequired = { - "SeNBModificationRequired", - "SeNBModificationRequired", - &asn_OP_SEQUENCE, - asn_DEF_SeNBModificationRequired_tags_1, - sizeof(asn_DEF_SeNBModificationRequired_tags_1) - /sizeof(asn_DEF_SeNBModificationRequired_tags_1[0]), /* 1 */ - asn_DEF_SeNBModificationRequired_tags_1, /* Same as above */ - sizeof(asn_DEF_SeNBModificationRequired_tags_1) - /sizeof(asn_DEF_SeNBModificationRequired_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_SeNBModificationRequired_1, - 1, /* Elements count */ - &asn_SPC_SeNBModificationRequired_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/SeNBModificationRequired.h b/e2sim/previous/ASN1c/SeNBModificationRequired.h deleted file mode 100644 index c5b57c0..0000000 --- a/e2sim/previous/ASN1c/SeNBModificationRequired.h +++ /dev/null @@ -1,60 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _SeNBModificationRequired_H_ -#define _SeNBModificationRequired_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* SeNBModificationRequired */ -typedef struct SeNBModificationRequired { - ProtocolIE_Container_119P51_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} SeNBModificationRequired_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_SeNBModificationRequired; - -#ifdef __cplusplus -} -#endif - -#endif /* _SeNBModificationRequired_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/SeNBReconfigurationComplete.c b/e2sim/previous/ASN1c/SeNBReconfigurationComplete.c deleted file mode 100644 index e6d9ed9..0000000 --- a/e2sim/previous/ASN1c/SeNBReconfigurationComplete.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "SeNBReconfigurationComplete.h" - -static asn_TYPE_member_t asn_MBR_SeNBReconfigurationComplete_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct SeNBReconfigurationComplete, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_119P47, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_SeNBReconfigurationComplete_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_SeNBReconfigurationComplete_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_SeNBReconfigurationComplete_specs_1 = { - sizeof(struct SeNBReconfigurationComplete), - offsetof(struct SeNBReconfigurationComplete, _asn_ctx), - asn_MAP_SeNBReconfigurationComplete_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_SeNBReconfigurationComplete = { - "SeNBReconfigurationComplete", - "SeNBReconfigurationComplete", - &asn_OP_SEQUENCE, - asn_DEF_SeNBReconfigurationComplete_tags_1, - sizeof(asn_DEF_SeNBReconfigurationComplete_tags_1) - /sizeof(asn_DEF_SeNBReconfigurationComplete_tags_1[0]), /* 1 */ - asn_DEF_SeNBReconfigurationComplete_tags_1, /* Same as above */ - sizeof(asn_DEF_SeNBReconfigurationComplete_tags_1) - /sizeof(asn_DEF_SeNBReconfigurationComplete_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_SeNBReconfigurationComplete_1, - 1, /* Elements count */ - &asn_SPC_SeNBReconfigurationComplete_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/SeNBReconfigurationComplete.h b/e2sim/previous/ASN1c/SeNBReconfigurationComplete.h deleted file mode 100644 index d2e84f8..0000000 --- a/e2sim/previous/ASN1c/SeNBReconfigurationComplete.h +++ /dev/null @@ -1,60 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _SeNBReconfigurationComplete_H_ -#define _SeNBReconfigurationComplete_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* SeNBReconfigurationComplete */ -typedef struct SeNBReconfigurationComplete { - ProtocolIE_Container_119P47_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} SeNBReconfigurationComplete_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_SeNBReconfigurationComplete; - -#ifdef __cplusplus -} -#endif - -#endif /* _SeNBReconfigurationComplete_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/SeNBReleaseConfirm.c b/e2sim/previous/ASN1c/SeNBReleaseConfirm.c deleted file mode 100644 index 61232a8..0000000 --- a/e2sim/previous/ASN1c/SeNBReleaseConfirm.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "SeNBReleaseConfirm.h" - -static asn_TYPE_member_t asn_MBR_SeNBReleaseConfirm_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct SeNBReleaseConfirm, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_119P56, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_SeNBReleaseConfirm_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_SeNBReleaseConfirm_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_SeNBReleaseConfirm_specs_1 = { - sizeof(struct SeNBReleaseConfirm), - offsetof(struct SeNBReleaseConfirm, _asn_ctx), - asn_MAP_SeNBReleaseConfirm_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_SeNBReleaseConfirm = { - "SeNBReleaseConfirm", - "SeNBReleaseConfirm", - &asn_OP_SEQUENCE, - asn_DEF_SeNBReleaseConfirm_tags_1, - sizeof(asn_DEF_SeNBReleaseConfirm_tags_1) - /sizeof(asn_DEF_SeNBReleaseConfirm_tags_1[0]), /* 1 */ - asn_DEF_SeNBReleaseConfirm_tags_1, /* Same as above */ - sizeof(asn_DEF_SeNBReleaseConfirm_tags_1) - /sizeof(asn_DEF_SeNBReleaseConfirm_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_SeNBReleaseConfirm_1, - 1, /* Elements count */ - &asn_SPC_SeNBReleaseConfirm_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/SeNBReleaseConfirm.h b/e2sim/previous/ASN1c/SeNBReleaseConfirm.h deleted file mode 100644 index 0762853..0000000 --- a/e2sim/previous/ASN1c/SeNBReleaseConfirm.h +++ /dev/null @@ -1,60 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _SeNBReleaseConfirm_H_ -#define _SeNBReleaseConfirm_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* SeNBReleaseConfirm */ -typedef struct SeNBReleaseConfirm { - ProtocolIE_Container_119P56_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} SeNBReleaseConfirm_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_SeNBReleaseConfirm; - -#ifdef __cplusplus -} -#endif - -#endif /* _SeNBReleaseConfirm_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/SeNBReleaseRequest.c b/e2sim/previous/ASN1c/SeNBReleaseRequest.c deleted file mode 100644 index f6a1649..0000000 --- a/e2sim/previous/ASN1c/SeNBReleaseRequest.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "SeNBReleaseRequest.h" - -static asn_TYPE_member_t asn_MBR_SeNBReleaseRequest_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct SeNBReleaseRequest, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_119P54, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_SeNBReleaseRequest_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_SeNBReleaseRequest_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_SeNBReleaseRequest_specs_1 = { - sizeof(struct SeNBReleaseRequest), - offsetof(struct SeNBReleaseRequest, _asn_ctx), - asn_MAP_SeNBReleaseRequest_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_SeNBReleaseRequest = { - "SeNBReleaseRequest", - "SeNBReleaseRequest", - &asn_OP_SEQUENCE, - asn_DEF_SeNBReleaseRequest_tags_1, - sizeof(asn_DEF_SeNBReleaseRequest_tags_1) - /sizeof(asn_DEF_SeNBReleaseRequest_tags_1[0]), /* 1 */ - asn_DEF_SeNBReleaseRequest_tags_1, /* Same as above */ - sizeof(asn_DEF_SeNBReleaseRequest_tags_1) - /sizeof(asn_DEF_SeNBReleaseRequest_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_SeNBReleaseRequest_1, - 1, /* Elements count */ - &asn_SPC_SeNBReleaseRequest_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/SeNBReleaseRequest.h b/e2sim/previous/ASN1c/SeNBReleaseRequest.h deleted file mode 100644 index 9db1533..0000000 --- a/e2sim/previous/ASN1c/SeNBReleaseRequest.h +++ /dev/null @@ -1,60 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _SeNBReleaseRequest_H_ -#define _SeNBReleaseRequest_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* SeNBReleaseRequest */ -typedef struct SeNBReleaseRequest { - ProtocolIE_Container_119P54_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} SeNBReleaseRequest_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_SeNBReleaseRequest; - -#ifdef __cplusplus -} -#endif - -#endif /* _SeNBReleaseRequest_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/SeNBReleaseRequired.c b/e2sim/previous/ASN1c/SeNBReleaseRequired.c deleted file mode 100644 index a77ea38..0000000 --- a/e2sim/previous/ASN1c/SeNBReleaseRequired.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "SeNBReleaseRequired.h" - -static asn_TYPE_member_t asn_MBR_SeNBReleaseRequired_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct SeNBReleaseRequired, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_119P55, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_SeNBReleaseRequired_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_SeNBReleaseRequired_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_SeNBReleaseRequired_specs_1 = { - sizeof(struct SeNBReleaseRequired), - offsetof(struct SeNBReleaseRequired, _asn_ctx), - asn_MAP_SeNBReleaseRequired_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_SeNBReleaseRequired = { - "SeNBReleaseRequired", - "SeNBReleaseRequired", - &asn_OP_SEQUENCE, - asn_DEF_SeNBReleaseRequired_tags_1, - sizeof(asn_DEF_SeNBReleaseRequired_tags_1) - /sizeof(asn_DEF_SeNBReleaseRequired_tags_1[0]), /* 1 */ - asn_DEF_SeNBReleaseRequired_tags_1, /* Same as above */ - sizeof(asn_DEF_SeNBReleaseRequired_tags_1) - /sizeof(asn_DEF_SeNBReleaseRequired_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_SeNBReleaseRequired_1, - 1, /* Elements count */ - &asn_SPC_SeNBReleaseRequired_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/SeNBReleaseRequired.h b/e2sim/previous/ASN1c/SeNBReleaseRequired.h deleted file mode 100644 index 8826855..0000000 --- a/e2sim/previous/ASN1c/SeNBReleaseRequired.h +++ /dev/null @@ -1,60 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _SeNBReleaseRequired_H_ -#define _SeNBReleaseRequired_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* SeNBReleaseRequired */ -typedef struct SeNBReleaseRequired { - ProtocolIE_Container_119P55_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} SeNBReleaseRequired_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_SeNBReleaseRequired; - -#ifdef __cplusplus -} -#endif - -#endif /* _SeNBReleaseRequired_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/SeNBSecurityKey.c b/e2sim/previous/ASN1c/SeNBSecurityKey.c deleted file mode 100644 index 76ebb8e..0000000 --- a/e2sim/previous/ASN1c/SeNBSecurityKey.c +++ /dev/null @@ -1,85 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "SeNBSecurityKey.h" - -int -SeNBSecurityKey_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if(st->size > 0) { - /* Size in bits */ - size = 8 * st->size - (st->bits_unused & 0x07); - } else { - size = 0; - } - - if((size == 256)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using BIT_STRING, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_SeNBSecurityKey_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 0, 0, 256, 256 } /* (SIZE(256..256)) */, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_SeNBSecurityKey_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_SeNBSecurityKey = { - "SeNBSecurityKey", - "SeNBSecurityKey", - &asn_OP_BIT_STRING, - asn_DEF_SeNBSecurityKey_tags_1, - sizeof(asn_DEF_SeNBSecurityKey_tags_1) - /sizeof(asn_DEF_SeNBSecurityKey_tags_1[0]), /* 1 */ - asn_DEF_SeNBSecurityKey_tags_1, /* Same as above */ - sizeof(asn_DEF_SeNBSecurityKey_tags_1) - /sizeof(asn_DEF_SeNBSecurityKey_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_SeNBSecurityKey_constr_1, SeNBSecurityKey_constraint }, - 0, 0, /* No members */ - &asn_SPC_BIT_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/SeNBSecurityKey.h b/e2sim/previous/ASN1c/SeNBSecurityKey.h deleted file mode 100644 index 48a5d38..0000000 --- a/e2sim/previous/ASN1c/SeNBSecurityKey.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _SeNBSecurityKey_H_ -#define _SeNBSecurityKey_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "BIT_STRING.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* SeNBSecurityKey */ -typedef BIT_STRING_t SeNBSecurityKey_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_SeNBSecurityKey_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_SeNBSecurityKey; -asn_struct_free_f SeNBSecurityKey_free; -asn_struct_print_f SeNBSecurityKey_print; -asn_constr_check_f SeNBSecurityKey_constraint; -ber_type_decoder_f SeNBSecurityKey_decode_ber; -der_type_encoder_f SeNBSecurityKey_encode_der; -xer_type_decoder_f SeNBSecurityKey_decode_xer; -xer_type_encoder_f SeNBSecurityKey_encode_xer; -per_type_decoder_f SeNBSecurityKey_decode_uper; -per_type_encoder_f SeNBSecurityKey_encode_uper; -per_type_decoder_f SeNBSecurityKey_decode_aper; -per_type_encoder_f SeNBSecurityKey_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _SeNBSecurityKey_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/SeNBtoMeNBContainer.c b/e2sim/previous/ASN1c/SeNBtoMeNBContainer.c deleted file mode 100644 index 730f0f9..0000000 --- a/e2sim/previous/ASN1c/SeNBtoMeNBContainer.c +++ /dev/null @@ -1,49 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "SeNBtoMeNBContainer.h" - -/* - * This type is implemented using OCTET_STRING, - * so here we adjust the DEF accordingly. - */ -static const ber_tlv_tag_t asn_DEF_SeNBtoMeNBContainer_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_SeNBtoMeNBContainer = { - "SeNBtoMeNBContainer", - "SeNBtoMeNBContainer", - &asn_OP_OCTET_STRING, - asn_DEF_SeNBtoMeNBContainer_tags_1, - sizeof(asn_DEF_SeNBtoMeNBContainer_tags_1) - /sizeof(asn_DEF_SeNBtoMeNBContainer_tags_1[0]), /* 1 */ - asn_DEF_SeNBtoMeNBContainer_tags_1, /* Same as above */ - sizeof(asn_DEF_SeNBtoMeNBContainer_tags_1) - /sizeof(asn_DEF_SeNBtoMeNBContainer_tags_1[0]), /* 1 */ - { 0, 0, OCTET_STRING_constraint }, - 0, 0, /* No members */ - &asn_SPC_OCTET_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/SeNBtoMeNBContainer.h b/e2sim/previous/ASN1c/SeNBtoMeNBContainer.h deleted file mode 100644 index a98c8cd..0000000 --- a/e2sim/previous/ASN1c/SeNBtoMeNBContainer.h +++ /dev/null @@ -1,61 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _SeNBtoMeNBContainer_H_ -#define _SeNBtoMeNBContainer_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "OCTET_STRING.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* SeNBtoMeNBContainer */ -typedef OCTET_STRING_t SeNBtoMeNBContainer_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_SeNBtoMeNBContainer; -asn_struct_free_f SeNBtoMeNBContainer_free; -asn_struct_print_f SeNBtoMeNBContainer_print; -asn_constr_check_f SeNBtoMeNBContainer_constraint; -ber_type_decoder_f SeNBtoMeNBContainer_decode_ber; -der_type_encoder_f SeNBtoMeNBContainer_encode_der; -xer_type_decoder_f SeNBtoMeNBContainer_decode_xer; -xer_type_encoder_f SeNBtoMeNBContainer_encode_xer; -per_type_decoder_f SeNBtoMeNBContainer_decode_uper; -per_type_encoder_f SeNBtoMeNBContainer_encode_uper; -per_type_decoder_f SeNBtoMeNBContainer_decode_aper; -per_type_encoder_f SeNBtoMeNBContainer_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _SeNBtoMeNBContainer_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/SecondaryRATDataUsageReport.c b/e2sim/previous/ASN1c/SecondaryRATDataUsageReport.c deleted file mode 100644 index 76e9c05..0000000 --- a/e2sim/previous/ASN1c/SecondaryRATDataUsageReport.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "SecondaryRATDataUsageReport.h" - -static asn_TYPE_member_t asn_MBR_SecondaryRATDataUsageReport_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct SecondaryRATDataUsageReport, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_119P101, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_SecondaryRATDataUsageReport_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_SecondaryRATDataUsageReport_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_SecondaryRATDataUsageReport_specs_1 = { - sizeof(struct SecondaryRATDataUsageReport), - offsetof(struct SecondaryRATDataUsageReport, _asn_ctx), - asn_MAP_SecondaryRATDataUsageReport_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_SecondaryRATDataUsageReport = { - "SecondaryRATDataUsageReport", - "SecondaryRATDataUsageReport", - &asn_OP_SEQUENCE, - asn_DEF_SecondaryRATDataUsageReport_tags_1, - sizeof(asn_DEF_SecondaryRATDataUsageReport_tags_1) - /sizeof(asn_DEF_SecondaryRATDataUsageReport_tags_1[0]), /* 1 */ - asn_DEF_SecondaryRATDataUsageReport_tags_1, /* Same as above */ - sizeof(asn_DEF_SecondaryRATDataUsageReport_tags_1) - /sizeof(asn_DEF_SecondaryRATDataUsageReport_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_SecondaryRATDataUsageReport_1, - 1, /* Elements count */ - &asn_SPC_SecondaryRATDataUsageReport_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/SecondaryRATDataUsageReport.h b/e2sim/previous/ASN1c/SecondaryRATDataUsageReport.h deleted file mode 100644 index 28fbceb..0000000 --- a/e2sim/previous/ASN1c/SecondaryRATDataUsageReport.h +++ /dev/null @@ -1,60 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _SecondaryRATDataUsageReport_H_ -#define _SecondaryRATDataUsageReport_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* SecondaryRATDataUsageReport */ -typedef struct SecondaryRATDataUsageReport { - ProtocolIE_Container_119P101_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} SecondaryRATDataUsageReport_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_SecondaryRATDataUsageReport; - -#ifdef __cplusplus -} -#endif - -#endif /* _SecondaryRATDataUsageReport_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/SecondaryRATUsageReport-Item.c b/e2sim/previous/ASN1c/SecondaryRATUsageReport-Item.c deleted file mode 100644 index 9a0055c..0000000 --- a/e2sim/previous/ASN1c/SecondaryRATUsageReport-Item.c +++ /dev/null @@ -1,147 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "SecondaryRATUsageReport-Item.h" - -#include "ProtocolExtensionContainer.h" -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -static asn_per_constraints_t asn_PER_type_secondaryRATType_constr_3 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 0, 0 } /* (0..0,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_secondaryRATType_value2enum_3[] = { - { 0, 2, "nr" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_secondaryRATType_enum2value_3[] = { - 0 /* nr(0) */ - /* This list is extensible */ -}; -static const asn_INTEGER_specifics_t asn_SPC_secondaryRATType_specs_3 = { - asn_MAP_secondaryRATType_value2enum_3, /* "tag" => N; sorted by tag */ - asn_MAP_secondaryRATType_enum2value_3, /* N => "tag"; sorted by N */ - 1, /* Number of elements in the maps */ - 2, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_secondaryRATType_tags_3[] = { - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_secondaryRATType_3 = { - "secondaryRATType", - "secondaryRATType", - &asn_OP_NativeEnumerated, - asn_DEF_secondaryRATType_tags_3, - sizeof(asn_DEF_secondaryRATType_tags_3) - /sizeof(asn_DEF_secondaryRATType_tags_3[0]) - 1, /* 1 */ - asn_DEF_secondaryRATType_tags_3, /* Same as above */ - sizeof(asn_DEF_secondaryRATType_tags_3) - /sizeof(asn_DEF_secondaryRATType_tags_3[0]), /* 2 */ - { 0, &asn_PER_type_secondaryRATType_constr_3, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_secondaryRATType_specs_3 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_SecondaryRATUsageReport_Item_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct SecondaryRATUsageReport_Item, e_RAB_ID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E_RAB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "e-RAB-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct SecondaryRATUsageReport_Item, secondaryRATType), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_secondaryRATType_3, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "secondaryRATType" - }, - { ATF_NOFLAGS, 0, offsetof(struct SecondaryRATUsageReport_Item, e_RABUsageReportList), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E_RABUsageReportList, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "e-RABUsageReportList" - }, - { ATF_POINTER, 1, offsetof(struct SecondaryRATUsageReport_Item, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P190, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_SecondaryRATUsageReport_Item_oms_1[] = { 3 }; -static const ber_tlv_tag_t asn_DEF_SecondaryRATUsageReport_Item_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_SecondaryRATUsageReport_Item_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e-RAB-ID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* secondaryRATType */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* e-RABUsageReportList */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_SecondaryRATUsageReport_Item_specs_1 = { - sizeof(struct SecondaryRATUsageReport_Item), - offsetof(struct SecondaryRATUsageReport_Item, _asn_ctx), - asn_MAP_SecondaryRATUsageReport_Item_tag2el_1, - 4, /* Count of tags in the map */ - asn_MAP_SecondaryRATUsageReport_Item_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 4, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_SecondaryRATUsageReport_Item = { - "SecondaryRATUsageReport-Item", - "SecondaryRATUsageReport-Item", - &asn_OP_SEQUENCE, - asn_DEF_SecondaryRATUsageReport_Item_tags_1, - sizeof(asn_DEF_SecondaryRATUsageReport_Item_tags_1) - /sizeof(asn_DEF_SecondaryRATUsageReport_Item_tags_1[0]), /* 1 */ - asn_DEF_SecondaryRATUsageReport_Item_tags_1, /* Same as above */ - sizeof(asn_DEF_SecondaryRATUsageReport_Item_tags_1) - /sizeof(asn_DEF_SecondaryRATUsageReport_Item_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_SecondaryRATUsageReport_Item_1, - 4, /* Elements count */ - &asn_SPC_SecondaryRATUsageReport_Item_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/SecondaryRATUsageReport-Item.h b/e2sim/previous/ASN1c/SecondaryRATUsageReport-Item.h deleted file mode 100644 index 9173e2a..0000000 --- a/e2sim/previous/ASN1c/SecondaryRATUsageReport-Item.h +++ /dev/null @@ -1,79 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _SecondaryRATUsageReport_Item_H_ -#define _SecondaryRATUsageReport_Item_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "E-RAB-ID.h" -#include "NativeEnumerated.h" -#include "E-RABUsageReportList.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum SecondaryRATUsageReport_Item__secondaryRATType { - SecondaryRATUsageReport_Item__secondaryRATType_nr = 0 - /* - * Enumeration is extensible - */ -} e_SecondaryRATUsageReport_Item__secondaryRATType; - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* SecondaryRATUsageReport-Item */ -typedef struct SecondaryRATUsageReport_Item { - E_RAB_ID_t e_RAB_ID; - long secondaryRATType; - E_RABUsageReportList_t e_RABUsageReportList; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} SecondaryRATUsageReport_Item_t; - -/* Implementation */ -/* extern asn_TYPE_descriptor_t asn_DEF_secondaryRATType_3; // (Use -fall-defs-global to expose) */ -extern asn_TYPE_descriptor_t asn_DEF_SecondaryRATUsageReport_Item; -extern asn_SEQUENCE_specifics_t asn_SPC_SecondaryRATUsageReport_Item_specs_1; -extern asn_TYPE_member_t asn_MBR_SecondaryRATUsageReport_Item_1[4]; - -#ifdef __cplusplus -} -#endif - -#endif /* _SecondaryRATUsageReport_Item_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/SecondaryRATUsageReportList.c b/e2sim/previous/ASN1c/SecondaryRATUsageReportList.c deleted file mode 100644 index 4a86639..0000000 --- a/e2sim/previous/ASN1c/SecondaryRATUsageReportList.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "SecondaryRATUsageReportList.h" - -#include "ProtocolIE-Single-Container.h" -asn_per_constraints_t asn_PER_type_SecondaryRATUsageReportList_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 8, 8, 1, 256 } /* (SIZE(1..256)) */, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_SecondaryRATUsageReportList_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ProtocolIE_Single_Container_122P48, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_SecondaryRATUsageReportList_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_SecondaryRATUsageReportList_specs_1 = { - sizeof(struct SecondaryRATUsageReportList), - offsetof(struct SecondaryRATUsageReportList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_SecondaryRATUsageReportList = { - "SecondaryRATUsageReportList", - "SecondaryRATUsageReportList", - &asn_OP_SEQUENCE_OF, - asn_DEF_SecondaryRATUsageReportList_tags_1, - sizeof(asn_DEF_SecondaryRATUsageReportList_tags_1) - /sizeof(asn_DEF_SecondaryRATUsageReportList_tags_1[0]), /* 1 */ - asn_DEF_SecondaryRATUsageReportList_tags_1, /* Same as above */ - sizeof(asn_DEF_SecondaryRATUsageReportList_tags_1) - /sizeof(asn_DEF_SecondaryRATUsageReportList_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_SecondaryRATUsageReportList_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_SecondaryRATUsageReportList_1, - 1, /* Single element */ - &asn_SPC_SecondaryRATUsageReportList_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/SecondaryRATUsageReportList.h b/e2sim/previous/ASN1c/SecondaryRATUsageReportList.h deleted file mode 100644 index b4921e3..0000000 --- a/e2sim/previous/ASN1c/SecondaryRATUsageReportList.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _SecondaryRATUsageReportList_H_ -#define _SecondaryRATUsageReportList_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolIE_Single_Container; - -/* SecondaryRATUsageReportList */ -typedef struct SecondaryRATUsageReportList { - A_SEQUENCE_OF(struct ProtocolIE_Single_Container) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} SecondaryRATUsageReportList_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_SecondaryRATUsageReportList; -extern asn_SET_OF_specifics_t asn_SPC_SecondaryRATUsageReportList_specs_1; -extern asn_TYPE_member_t asn_MBR_SecondaryRATUsageReportList_1[1]; -extern asn_per_constraints_t asn_PER_type_SecondaryRATUsageReportList_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _SecondaryRATUsageReportList_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/ServedCell-Information.c b/e2sim/previous/ASN1c/ServedCell-Information.c deleted file mode 100644 index c535dd4..0000000 --- a/e2sim/previous/ASN1c/ServedCell-Information.c +++ /dev/null @@ -1,121 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "ServedCell-Information.h" - -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_ServedCell_Information_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct ServedCell_Information, pCI), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_PCI, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "pCI" - }, - { ATF_NOFLAGS, 0, offsetof(struct ServedCell_Information, cellId), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ECGI, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "cellId" - }, - { ATF_NOFLAGS, 0, offsetof(struct ServedCell_Information, tAC), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_TAC, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "tAC" - }, - { ATF_NOFLAGS, 0, offsetof(struct ServedCell_Information, broadcastPLMNs), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_BroadcastPLMNs_Item, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "broadcastPLMNs" - }, - { ATF_NOFLAGS, 0, offsetof(struct ServedCell_Information, eUTRA_Mode_Info), - (ASN_TAG_CLASS_CONTEXT | (4 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_EUTRA_Mode_Info, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "eUTRA-Mode-Info" - }, - { ATF_POINTER, 1, offsetof(struct ServedCell_Information, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (5 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P192, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_ServedCell_Information_oms_1[] = { 5 }; -static const ber_tlv_tag_t asn_DEF_ServedCell_Information_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ServedCell_Information_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pCI */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* cellId */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* tAC */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* broadcastPLMNs */ - { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* eUTRA-Mode-Info */ - { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ServedCell_Information_specs_1 = { - sizeof(struct ServedCell_Information), - offsetof(struct ServedCell_Information, _asn_ctx), - asn_MAP_ServedCell_Information_tag2el_1, - 6, /* Count of tags in the map */ - asn_MAP_ServedCell_Information_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 6, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ServedCell_Information = { - "ServedCell-Information", - "ServedCell-Information", - &asn_OP_SEQUENCE, - asn_DEF_ServedCell_Information_tags_1, - sizeof(asn_DEF_ServedCell_Information_tags_1) - /sizeof(asn_DEF_ServedCell_Information_tags_1[0]), /* 1 */ - asn_DEF_ServedCell_Information_tags_1, /* Same as above */ - sizeof(asn_DEF_ServedCell_Information_tags_1) - /sizeof(asn_DEF_ServedCell_Information_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ServedCell_Information_1, - 6, /* Elements count */ - &asn_SPC_ServedCell_Information_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/ServedCell-Information.h b/e2sim/previous/ASN1c/ServedCell-Information.h deleted file mode 100644 index aba77c7..0000000 --- a/e2sim/previous/ASN1c/ServedCell-Information.h +++ /dev/null @@ -1,74 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _ServedCell_Information_H_ -#define _ServedCell_Information_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "PCI.h" -#include "ECGI.h" -#include "TAC.h" -#include "BroadcastPLMNs-Item.h" -#include "EUTRA-Mode-Info.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* ServedCell-Information */ -typedef struct ServedCell_Information { - PCI_t pCI; - ECGI_t cellId; - TAC_t tAC; - BroadcastPLMNs_Item_t broadcastPLMNs; - EUTRA_Mode_Info_t eUTRA_Mode_Info; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ServedCell_Information_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ServedCell_Information; -extern asn_SEQUENCE_specifics_t asn_SPC_ServedCell_Information_specs_1; -extern asn_TYPE_member_t asn_MBR_ServedCell_Information_1[6]; - -#ifdef __cplusplus -} -#endif - -#endif /* _ServedCell_Information_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/ServedCells.c b/e2sim/previous/ASN1c/ServedCells.c deleted file mode 100644 index 2243c63..0000000 --- a/e2sim/previous/ASN1c/ServedCells.c +++ /dev/null @@ -1,133 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "ServedCells.h" - -#include "Neighbour-Information.h" -#include "ProtocolExtensionContainer.h" -asn_per_constraints_t asn_PER_type_ServedCells_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 8, 8, 1, 256 } /* (SIZE(1..256)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_Member_2[] = { - { ATF_NOFLAGS, 0, offsetof(struct ServedCells__Member, servedCellInfo), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ServedCell_Information, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "servedCellInfo" - }, - { ATF_POINTER, 2, offsetof(struct ServedCells__Member, neighbour_Info), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Neighbour_Information, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "neighbour-Info" - }, - { ATF_POINTER, 1, offsetof(struct ServedCells__Member, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P191, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_Member_oms_2[] = { 1, 2 }; -static const ber_tlv_tag_t asn_DEF_Member_tags_2[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_Member_tag2el_2[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* servedCellInfo */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* neighbour-Info */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_Member_specs_2 = { - sizeof(struct ServedCells__Member), - offsetof(struct ServedCells__Member, _asn_ctx), - asn_MAP_Member_tag2el_2, - 3, /* Count of tags in the map */ - asn_MAP_Member_oms_2, /* Optional members */ - 2, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_Member_2 = { - "SEQUENCE", - "SEQUENCE", - &asn_OP_SEQUENCE, - asn_DEF_Member_tags_2, - sizeof(asn_DEF_Member_tags_2) - /sizeof(asn_DEF_Member_tags_2[0]), /* 1 */ - asn_DEF_Member_tags_2, /* Same as above */ - sizeof(asn_DEF_Member_tags_2) - /sizeof(asn_DEF_Member_tags_2[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_Member_2, - 3, /* Elements count */ - &asn_SPC_Member_specs_2 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ServedCells_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_Member_2, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ServedCells_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ServedCells_specs_1 = { - sizeof(struct ServedCells), - offsetof(struct ServedCells, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ServedCells = { - "ServedCells", - "ServedCells", - &asn_OP_SEQUENCE_OF, - asn_DEF_ServedCells_tags_1, - sizeof(asn_DEF_ServedCells_tags_1) - /sizeof(asn_DEF_ServedCells_tags_1[0]), /* 1 */ - asn_DEF_ServedCells_tags_1, /* Same as above */ - sizeof(asn_DEF_ServedCells_tags_1) - /sizeof(asn_DEF_ServedCells_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_ServedCells_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_ServedCells_1, - 1, /* Single element */ - &asn_SPC_ServedCells_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/ServedCells.h b/e2sim/previous/ASN1c/ServedCells.h deleted file mode 100644 index 9c6fae8..0000000 --- a/e2sim/previous/ASN1c/ServedCells.h +++ /dev/null @@ -1,79 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _ServedCells_H_ -#define _ServedCells_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "ServedCell-Information.h" -#include "constr_SEQUENCE.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct Neighbour_Information; -struct ProtocolExtensionContainer; - -/* Forward definitions */ -typedef struct ServedCells__Member { - ServedCell_Information_t servedCellInfo; - struct Neighbour_Information *neighbour_Info; /* OPTIONAL */ - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ServedCells__Member; - -/* ServedCells */ -typedef struct ServedCells { - A_SEQUENCE_OF(ServedCells__Member) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ServedCells_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ServedCells; -extern asn_SET_OF_specifics_t asn_SPC_ServedCells_specs_1; -extern asn_TYPE_member_t asn_MBR_ServedCells_1[1]; -extern asn_per_constraints_t asn_PER_type_ServedCells_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _ServedCells_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/ServedCellsToActivate-Item.c b/e2sim/previous/ASN1c/ServedCellsToActivate-Item.c deleted file mode 100644 index e7ab50e..0000000 --- a/e2sim/previous/ASN1c/ServedCellsToActivate-Item.c +++ /dev/null @@ -1,81 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "ServedCellsToActivate-Item.h" - -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_ServedCellsToActivate_Item_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct ServedCellsToActivate_Item, ecgi), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ECGI, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ecgi" - }, - { ATF_POINTER, 1, offsetof(struct ServedCellsToActivate_Item, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P14, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_ServedCellsToActivate_Item_oms_1[] = { 1 }; -static const ber_tlv_tag_t asn_DEF_ServedCellsToActivate_Item_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ServedCellsToActivate_Item_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ecgi */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ServedCellsToActivate_Item_specs_1 = { - sizeof(struct ServedCellsToActivate_Item), - offsetof(struct ServedCellsToActivate_Item, _asn_ctx), - asn_MAP_ServedCellsToActivate_Item_tag2el_1, - 2, /* Count of tags in the map */ - asn_MAP_ServedCellsToActivate_Item_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 2, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ServedCellsToActivate_Item = { - "ServedCellsToActivate-Item", - "ServedCellsToActivate-Item", - &asn_OP_SEQUENCE, - asn_DEF_ServedCellsToActivate_Item_tags_1, - sizeof(asn_DEF_ServedCellsToActivate_Item_tags_1) - /sizeof(asn_DEF_ServedCellsToActivate_Item_tags_1[0]), /* 1 */ - asn_DEF_ServedCellsToActivate_Item_tags_1, /* Same as above */ - sizeof(asn_DEF_ServedCellsToActivate_Item_tags_1) - /sizeof(asn_DEF_ServedCellsToActivate_Item_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ServedCellsToActivate_Item_1, - 2, /* Elements count */ - &asn_SPC_ServedCellsToActivate_Item_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/ServedCellsToActivate-Item.h b/e2sim/previous/ASN1c/ServedCellsToActivate-Item.h deleted file mode 100644 index 60e837f..0000000 --- a/e2sim/previous/ASN1c/ServedCellsToActivate-Item.h +++ /dev/null @@ -1,66 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _ServedCellsToActivate_Item_H_ -#define _ServedCellsToActivate_Item_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ECGI.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* ServedCellsToActivate-Item */ -typedef struct ServedCellsToActivate_Item { - ECGI_t ecgi; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ServedCellsToActivate_Item_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ServedCellsToActivate_Item; -extern asn_SEQUENCE_specifics_t asn_SPC_ServedCellsToActivate_Item_specs_1; -extern asn_TYPE_member_t asn_MBR_ServedCellsToActivate_Item_1[2]; - -#ifdef __cplusplus -} -#endif - -#endif /* _ServedCellsToActivate_Item_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/ServedCellsToActivate.c b/e2sim/previous/ASN1c/ServedCellsToActivate.c deleted file mode 100644 index 7b829b3..0000000 --- a/e2sim/previous/ASN1c/ServedCellsToActivate.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "ServedCellsToActivate.h" - -#include "ServedCellsToActivate-Item.h" -static asn_per_constraints_t asn_PER_type_ServedCellsToActivate_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 8, 8, 1, 256 } /* (SIZE(1..256)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_ServedCellsToActivate_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ServedCellsToActivate_Item, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ServedCellsToActivate_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_ServedCellsToActivate_specs_1 = { - sizeof(struct ServedCellsToActivate), - offsetof(struct ServedCellsToActivate, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ServedCellsToActivate = { - "ServedCellsToActivate", - "ServedCellsToActivate", - &asn_OP_SEQUENCE_OF, - asn_DEF_ServedCellsToActivate_tags_1, - sizeof(asn_DEF_ServedCellsToActivate_tags_1) - /sizeof(asn_DEF_ServedCellsToActivate_tags_1[0]), /* 1 */ - asn_DEF_ServedCellsToActivate_tags_1, /* Same as above */ - sizeof(asn_DEF_ServedCellsToActivate_tags_1) - /sizeof(asn_DEF_ServedCellsToActivate_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_ServedCellsToActivate_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_ServedCellsToActivate_1, - 1, /* Single element */ - &asn_SPC_ServedCellsToActivate_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/ServedCellsToActivate.h b/e2sim/previous/ASN1c/ServedCellsToActivate.h deleted file mode 100644 index bce4d41..0000000 --- a/e2sim/previous/ASN1c/ServedCellsToActivate.h +++ /dev/null @@ -1,59 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _ServedCellsToActivate_H_ -#define _ServedCellsToActivate_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ServedCellsToActivate_Item; - -/* ServedCellsToActivate */ -typedef struct ServedCellsToActivate { - A_SEQUENCE_OF(struct ServedCellsToActivate_Item) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ServedCellsToActivate_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ServedCellsToActivate; - -#ifdef __cplusplus -} -#endif - -#endif /* _ServedCellsToActivate_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/ServedCellsToModify-Item.c b/e2sim/previous/ASN1c/ServedCellsToModify-Item.c deleted file mode 100644 index 3b9bc31..0000000 --- a/e2sim/previous/ASN1c/ServedCellsToModify-Item.c +++ /dev/null @@ -1,102 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "ServedCellsToModify-Item.h" - -#include "Neighbour-Information.h" -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_ServedCellsToModify_Item_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct ServedCellsToModify_Item, old_ecgi), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ECGI, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "old-ecgi" - }, - { ATF_NOFLAGS, 0, offsetof(struct ServedCellsToModify_Item, servedCellInfo), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ServedCell_Information, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "servedCellInfo" - }, - { ATF_POINTER, 2, offsetof(struct ServedCellsToModify_Item, neighbour_Info), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Neighbour_Information, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "neighbour-Info" - }, - { ATF_POINTER, 1, offsetof(struct ServedCellsToModify_Item, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P8, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_ServedCellsToModify_Item_oms_1[] = { 2, 3 }; -static const ber_tlv_tag_t asn_DEF_ServedCellsToModify_Item_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ServedCellsToModify_Item_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* old-ecgi */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* servedCellInfo */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* neighbour-Info */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ServedCellsToModify_Item_specs_1 = { - sizeof(struct ServedCellsToModify_Item), - offsetof(struct ServedCellsToModify_Item, _asn_ctx), - asn_MAP_ServedCellsToModify_Item_tag2el_1, - 4, /* Count of tags in the map */ - asn_MAP_ServedCellsToModify_Item_oms_1, /* Optional members */ - 2, 0, /* Root/Additions */ - 4, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ServedCellsToModify_Item = { - "ServedCellsToModify-Item", - "ServedCellsToModify-Item", - &asn_OP_SEQUENCE, - asn_DEF_ServedCellsToModify_Item_tags_1, - sizeof(asn_DEF_ServedCellsToModify_Item_tags_1) - /sizeof(asn_DEF_ServedCellsToModify_Item_tags_1[0]), /* 1 */ - asn_DEF_ServedCellsToModify_Item_tags_1, /* Same as above */ - sizeof(asn_DEF_ServedCellsToModify_Item_tags_1) - /sizeof(asn_DEF_ServedCellsToModify_Item_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ServedCellsToModify_Item_1, - 4, /* Elements count */ - &asn_SPC_ServedCellsToModify_Item_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/ServedCellsToModify-Item.h b/e2sim/previous/ASN1c/ServedCellsToModify-Item.h deleted file mode 100644 index 5b2d6bb..0000000 --- a/e2sim/previous/ASN1c/ServedCellsToModify-Item.h +++ /dev/null @@ -1,70 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _ServedCellsToModify_Item_H_ -#define _ServedCellsToModify_Item_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ECGI.h" -#include "ServedCell-Information.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct Neighbour_Information; -struct ProtocolExtensionContainer; - -/* ServedCellsToModify-Item */ -typedef struct ServedCellsToModify_Item { - ECGI_t old_ecgi; - ServedCell_Information_t servedCellInfo; - struct Neighbour_Information *neighbour_Info; /* OPTIONAL */ - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ServedCellsToModify_Item_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ServedCellsToModify_Item; -extern asn_SEQUENCE_specifics_t asn_SPC_ServedCellsToModify_Item_specs_1; -extern asn_TYPE_member_t asn_MBR_ServedCellsToModify_Item_1[4]; - -#ifdef __cplusplus -} -#endif - -#endif /* _ServedCellsToModify_Item_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/ServedCellsToModify.c b/e2sim/previous/ASN1c/ServedCellsToModify.c deleted file mode 100644 index d581a8c..0000000 --- a/e2sim/previous/ASN1c/ServedCellsToModify.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "ServedCellsToModify.h" - -#include "ServedCellsToModify-Item.h" -static asn_per_constraints_t asn_PER_type_ServedCellsToModify_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 8, 8, 1, 256 } /* (SIZE(1..256)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_ServedCellsToModify_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ServedCellsToModify_Item, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ServedCellsToModify_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_ServedCellsToModify_specs_1 = { - sizeof(struct ServedCellsToModify), - offsetof(struct ServedCellsToModify, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ServedCellsToModify = { - "ServedCellsToModify", - "ServedCellsToModify", - &asn_OP_SEQUENCE_OF, - asn_DEF_ServedCellsToModify_tags_1, - sizeof(asn_DEF_ServedCellsToModify_tags_1) - /sizeof(asn_DEF_ServedCellsToModify_tags_1[0]), /* 1 */ - asn_DEF_ServedCellsToModify_tags_1, /* Same as above */ - sizeof(asn_DEF_ServedCellsToModify_tags_1) - /sizeof(asn_DEF_ServedCellsToModify_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_ServedCellsToModify_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_ServedCellsToModify_1, - 1, /* Single element */ - &asn_SPC_ServedCellsToModify_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/ServedCellsToModify.h b/e2sim/previous/ASN1c/ServedCellsToModify.h deleted file mode 100644 index 79b1ae2..0000000 --- a/e2sim/previous/ASN1c/ServedCellsToModify.h +++ /dev/null @@ -1,59 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _ServedCellsToModify_H_ -#define _ServedCellsToModify_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ServedCellsToModify_Item; - -/* ServedCellsToModify */ -typedef struct ServedCellsToModify { - A_SEQUENCE_OF(struct ServedCellsToModify_Item) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ServedCellsToModify_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ServedCellsToModify; - -#ifdef __cplusplus -} -#endif - -#endif /* _ServedCellsToModify_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/ServedEUTRAcellsENDCX2ManagementList.c b/e2sim/previous/ASN1c/ServedEUTRAcellsENDCX2ManagementList.c deleted file mode 100644 index 47b067e..0000000 --- a/e2sim/previous/ASN1c/ServedEUTRAcellsENDCX2ManagementList.c +++ /dev/null @@ -1,133 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "ServedEUTRAcellsENDCX2ManagementList.h" - -#include "NRNeighbour-Information.h" -#include "ProtocolExtensionContainer.h" -static asn_per_constraints_t asn_PER_type_ServedEUTRAcellsENDCX2ManagementList_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 8, 8, 1, 256 } /* (SIZE(1..256)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_Member_2[] = { - { ATF_NOFLAGS, 0, offsetof(struct ServedEUTRAcellsENDCX2ManagementList__Member, servedEUTRACellInfo), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ServedCell_Information, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "servedEUTRACellInfo" - }, - { ATF_POINTER, 2, offsetof(struct ServedEUTRAcellsENDCX2ManagementList__Member, nrNeighbourInfo), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NRNeighbour_Information, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "nrNeighbourInfo" - }, - { ATF_POINTER, 1, offsetof(struct ServedEUTRAcellsENDCX2ManagementList__Member, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P90, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_Member_oms_2[] = { 1, 2 }; -static const ber_tlv_tag_t asn_DEF_Member_tags_2[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_Member_tag2el_2[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* servedEUTRACellInfo */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* nrNeighbourInfo */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_Member_specs_2 = { - sizeof(struct ServedEUTRAcellsENDCX2ManagementList__Member), - offsetof(struct ServedEUTRAcellsENDCX2ManagementList__Member, _asn_ctx), - asn_MAP_Member_tag2el_2, - 3, /* Count of tags in the map */ - asn_MAP_Member_oms_2, /* Optional members */ - 2, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_Member_2 = { - "SEQUENCE", - "SEQUENCE", - &asn_OP_SEQUENCE, - asn_DEF_Member_tags_2, - sizeof(asn_DEF_Member_tags_2) - /sizeof(asn_DEF_Member_tags_2[0]), /* 1 */ - asn_DEF_Member_tags_2, /* Same as above */ - sizeof(asn_DEF_Member_tags_2) - /sizeof(asn_DEF_Member_tags_2[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_Member_2, - 3, /* Elements count */ - &asn_SPC_Member_specs_2 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_ServedEUTRAcellsENDCX2ManagementList_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_Member_2, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ServedEUTRAcellsENDCX2ManagementList_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_ServedEUTRAcellsENDCX2ManagementList_specs_1 = { - sizeof(struct ServedEUTRAcellsENDCX2ManagementList), - offsetof(struct ServedEUTRAcellsENDCX2ManagementList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ServedEUTRAcellsENDCX2ManagementList = { - "ServedEUTRAcellsENDCX2ManagementList", - "ServedEUTRAcellsENDCX2ManagementList", - &asn_OP_SEQUENCE_OF, - asn_DEF_ServedEUTRAcellsENDCX2ManagementList_tags_1, - sizeof(asn_DEF_ServedEUTRAcellsENDCX2ManagementList_tags_1) - /sizeof(asn_DEF_ServedEUTRAcellsENDCX2ManagementList_tags_1[0]), /* 1 */ - asn_DEF_ServedEUTRAcellsENDCX2ManagementList_tags_1, /* Same as above */ - sizeof(asn_DEF_ServedEUTRAcellsENDCX2ManagementList_tags_1) - /sizeof(asn_DEF_ServedEUTRAcellsENDCX2ManagementList_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_ServedEUTRAcellsENDCX2ManagementList_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_ServedEUTRAcellsENDCX2ManagementList_1, - 1, /* Single element */ - &asn_SPC_ServedEUTRAcellsENDCX2ManagementList_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/ServedEUTRAcellsENDCX2ManagementList.h b/e2sim/previous/ASN1c/ServedEUTRAcellsENDCX2ManagementList.h deleted file mode 100644 index 994530e..0000000 --- a/e2sim/previous/ASN1c/ServedEUTRAcellsENDCX2ManagementList.h +++ /dev/null @@ -1,76 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _ServedEUTRAcellsENDCX2ManagementList_H_ -#define _ServedEUTRAcellsENDCX2ManagementList_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "ServedCell-Information.h" -#include "constr_SEQUENCE.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct NRNeighbour_Information; -struct ProtocolExtensionContainer; - -/* Forward definitions */ -typedef struct ServedEUTRAcellsENDCX2ManagementList__Member { - ServedCell_Information_t servedEUTRACellInfo; - struct NRNeighbour_Information *nrNeighbourInfo; /* OPTIONAL */ - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ServedEUTRAcellsENDCX2ManagementList__Member; - -/* ServedEUTRAcellsENDCX2ManagementList */ -typedef struct ServedEUTRAcellsENDCX2ManagementList { - A_SEQUENCE_OF(ServedEUTRAcellsENDCX2ManagementList__Member) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ServedEUTRAcellsENDCX2ManagementList_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ServedEUTRAcellsENDCX2ManagementList; - -#ifdef __cplusplus -} -#endif - -#endif /* _ServedEUTRAcellsENDCX2ManagementList_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/ServedEUTRAcellsToDeleteListENDCConfUpd.c b/e2sim/previous/ASN1c/ServedEUTRAcellsToDeleteListENDCConfUpd.c deleted file mode 100644 index bc23c86..0000000 --- a/e2sim/previous/ASN1c/ServedEUTRAcellsToDeleteListENDCConfUpd.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "ServedEUTRAcellsToDeleteListENDCConfUpd.h" - -#include "ECGI.h" -static asn_per_constraints_t asn_PER_type_ServedEUTRAcellsToDeleteListENDCConfUpd_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 8, 8, 1, 256 } /* (SIZE(1..256)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_ServedEUTRAcellsToDeleteListENDCConfUpd_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ECGI, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ServedEUTRAcellsToDeleteListENDCConfUpd_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_ServedEUTRAcellsToDeleteListENDCConfUpd_specs_1 = { - sizeof(struct ServedEUTRAcellsToDeleteListENDCConfUpd), - offsetof(struct ServedEUTRAcellsToDeleteListENDCConfUpd, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ServedEUTRAcellsToDeleteListENDCConfUpd = { - "ServedEUTRAcellsToDeleteListENDCConfUpd", - "ServedEUTRAcellsToDeleteListENDCConfUpd", - &asn_OP_SEQUENCE_OF, - asn_DEF_ServedEUTRAcellsToDeleteListENDCConfUpd_tags_1, - sizeof(asn_DEF_ServedEUTRAcellsToDeleteListENDCConfUpd_tags_1) - /sizeof(asn_DEF_ServedEUTRAcellsToDeleteListENDCConfUpd_tags_1[0]), /* 1 */ - asn_DEF_ServedEUTRAcellsToDeleteListENDCConfUpd_tags_1, /* Same as above */ - sizeof(asn_DEF_ServedEUTRAcellsToDeleteListENDCConfUpd_tags_1) - /sizeof(asn_DEF_ServedEUTRAcellsToDeleteListENDCConfUpd_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_ServedEUTRAcellsToDeleteListENDCConfUpd_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_ServedEUTRAcellsToDeleteListENDCConfUpd_1, - 1, /* Single element */ - &asn_SPC_ServedEUTRAcellsToDeleteListENDCConfUpd_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/ServedEUTRAcellsToDeleteListENDCConfUpd.h b/e2sim/previous/ASN1c/ServedEUTRAcellsToDeleteListENDCConfUpd.h deleted file mode 100644 index 4407b1b..0000000 --- a/e2sim/previous/ASN1c/ServedEUTRAcellsToDeleteListENDCConfUpd.h +++ /dev/null @@ -1,59 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _ServedEUTRAcellsToDeleteListENDCConfUpd_H_ -#define _ServedEUTRAcellsToDeleteListENDCConfUpd_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ECGI; - -/* ServedEUTRAcellsToDeleteListENDCConfUpd */ -typedef struct ServedEUTRAcellsToDeleteListENDCConfUpd { - A_SEQUENCE_OF(struct ECGI) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ServedEUTRAcellsToDeleteListENDCConfUpd_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ServedEUTRAcellsToDeleteListENDCConfUpd; - -#ifdef __cplusplus -} -#endif - -#endif /* _ServedEUTRAcellsToDeleteListENDCConfUpd_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/ServedEUTRAcellsToModifyListENDCConfUpd.c b/e2sim/previous/ASN1c/ServedEUTRAcellsToModifyListENDCConfUpd.c deleted file mode 100644 index 3f75b67..0000000 --- a/e2sim/previous/ASN1c/ServedEUTRAcellsToModifyListENDCConfUpd.c +++ /dev/null @@ -1,143 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "ServedEUTRAcellsToModifyListENDCConfUpd.h" - -#include "NRNeighbour-Information.h" -#include "ProtocolExtensionContainer.h" -static asn_per_constraints_t asn_PER_type_ServedEUTRAcellsToModifyListENDCConfUpd_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 8, 8, 1, 256 } /* (SIZE(1..256)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_Member_2[] = { - { ATF_NOFLAGS, 0, offsetof(struct ServedEUTRAcellsToModifyListENDCConfUpd__Member, old_ECGI), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ECGI, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "old-ECGI" - }, - { ATF_NOFLAGS, 0, offsetof(struct ServedEUTRAcellsToModifyListENDCConfUpd__Member, servedEUTRACellInfo), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ServedCell_Information, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "servedEUTRACellInfo" - }, - { ATF_POINTER, 2, offsetof(struct ServedEUTRAcellsToModifyListENDCConfUpd__Member, nrNeighbourInfo), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NRNeighbour_Information, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "nrNeighbourInfo" - }, - { ATF_POINTER, 1, offsetof(struct ServedEUTRAcellsToModifyListENDCConfUpd__Member, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P99, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_Member_oms_2[] = { 2, 3 }; -static const ber_tlv_tag_t asn_DEF_Member_tags_2[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_Member_tag2el_2[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* old-ECGI */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* servedEUTRACellInfo */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* nrNeighbourInfo */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_Member_specs_2 = { - sizeof(struct ServedEUTRAcellsToModifyListENDCConfUpd__Member), - offsetof(struct ServedEUTRAcellsToModifyListENDCConfUpd__Member, _asn_ctx), - asn_MAP_Member_tag2el_2, - 4, /* Count of tags in the map */ - asn_MAP_Member_oms_2, /* Optional members */ - 2, 0, /* Root/Additions */ - 4, /* First extension addition */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_Member_2 = { - "SEQUENCE", - "SEQUENCE", - &asn_OP_SEQUENCE, - asn_DEF_Member_tags_2, - sizeof(asn_DEF_Member_tags_2) - /sizeof(asn_DEF_Member_tags_2[0]), /* 1 */ - asn_DEF_Member_tags_2, /* Same as above */ - sizeof(asn_DEF_Member_tags_2) - /sizeof(asn_DEF_Member_tags_2[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_Member_2, - 4, /* Elements count */ - &asn_SPC_Member_specs_2 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_ServedEUTRAcellsToModifyListENDCConfUpd_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_Member_2, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ServedEUTRAcellsToModifyListENDCConfUpd_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_ServedEUTRAcellsToModifyListENDCConfUpd_specs_1 = { - sizeof(struct ServedEUTRAcellsToModifyListENDCConfUpd), - offsetof(struct ServedEUTRAcellsToModifyListENDCConfUpd, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ServedEUTRAcellsToModifyListENDCConfUpd = { - "ServedEUTRAcellsToModifyListENDCConfUpd", - "ServedEUTRAcellsToModifyListENDCConfUpd", - &asn_OP_SEQUENCE_OF, - asn_DEF_ServedEUTRAcellsToModifyListENDCConfUpd_tags_1, - sizeof(asn_DEF_ServedEUTRAcellsToModifyListENDCConfUpd_tags_1) - /sizeof(asn_DEF_ServedEUTRAcellsToModifyListENDCConfUpd_tags_1[0]), /* 1 */ - asn_DEF_ServedEUTRAcellsToModifyListENDCConfUpd_tags_1, /* Same as above */ - sizeof(asn_DEF_ServedEUTRAcellsToModifyListENDCConfUpd_tags_1) - /sizeof(asn_DEF_ServedEUTRAcellsToModifyListENDCConfUpd_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_ServedEUTRAcellsToModifyListENDCConfUpd_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_ServedEUTRAcellsToModifyListENDCConfUpd_1, - 1, /* Single element */ - &asn_SPC_ServedEUTRAcellsToModifyListENDCConfUpd_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/ServedEUTRAcellsToModifyListENDCConfUpd.h b/e2sim/previous/ASN1c/ServedEUTRAcellsToModifyListENDCConfUpd.h deleted file mode 100644 index 5dced53..0000000 --- a/e2sim/previous/ASN1c/ServedEUTRAcellsToModifyListENDCConfUpd.h +++ /dev/null @@ -1,78 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _ServedEUTRAcellsToModifyListENDCConfUpd_H_ -#define _ServedEUTRAcellsToModifyListENDCConfUpd_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "ECGI.h" -#include "ServedCell-Information.h" -#include "constr_SEQUENCE.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct NRNeighbour_Information; -struct ProtocolExtensionContainer; - -/* Forward definitions */ -typedef struct ServedEUTRAcellsToModifyListENDCConfUpd__Member { - ECGI_t old_ECGI; - ServedCell_Information_t servedEUTRACellInfo; - struct NRNeighbour_Information *nrNeighbourInfo; /* OPTIONAL */ - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ServedEUTRAcellsToModifyListENDCConfUpd__Member; - -/* ServedEUTRAcellsToModifyListENDCConfUpd */ -typedef struct ServedEUTRAcellsToModifyListENDCConfUpd { - A_SEQUENCE_OF(ServedEUTRAcellsToModifyListENDCConfUpd__Member) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ServedEUTRAcellsToModifyListENDCConfUpd_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ServedEUTRAcellsToModifyListENDCConfUpd; - -#ifdef __cplusplus -} -#endif - -#endif /* _ServedEUTRAcellsToModifyListENDCConfUpd_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/ServedNRCell-Information.c b/e2sim/previous/ASN1c/ServedNRCell-Information.c deleted file mode 100644 index 3fd8036..0000000 --- a/e2sim/previous/ASN1c/ServedNRCell-Information.c +++ /dev/null @@ -1,197 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "ServedNRCell-Information.h" - -#include "ProtocolExtensionContainer.h" -#include "FDD-InfoServedNRCell-Information.h" -#include "TDD-InfoServedNRCell-Information.h" -static asn_per_constraints_t asn_PER_type_nrModeInfo_constr_7 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_nrModeInfo_7[] = { - { ATF_POINTER, 0, offsetof(struct ServedNRCell_Information__nrModeInfo, choice.fdd), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_FDD_InfoServedNRCell_Information, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "fdd" - }, - { ATF_POINTER, 0, offsetof(struct ServedNRCell_Information__nrModeInfo, choice.tdd), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_TDD_InfoServedNRCell_Information, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "tdd" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_nrModeInfo_tag2el_7[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* fdd */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* tdd */ -}; -static asn_CHOICE_specifics_t asn_SPC_nrModeInfo_specs_7 = { - sizeof(struct ServedNRCell_Information__nrModeInfo), - offsetof(struct ServedNRCell_Information__nrModeInfo, _asn_ctx), - offsetof(struct ServedNRCell_Information__nrModeInfo, present), - sizeof(((struct ServedNRCell_Information__nrModeInfo *)0)->present), - asn_MAP_nrModeInfo_tag2el_7, - 2, /* Count of tags in the map */ - 0, 0, - 2 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_nrModeInfo_7 = { - "nrModeInfo", - "nrModeInfo", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, &asn_PER_type_nrModeInfo_constr_7, CHOICE_constraint }, - asn_MBR_nrModeInfo_7, - 2, /* Elements count */ - &asn_SPC_nrModeInfo_specs_7 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ServedNRCell_Information_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct ServedNRCell_Information, nrpCI), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NRPCI, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "nrpCI" - }, - { ATF_NOFLAGS, 0, offsetof(struct ServedNRCell_Information, nrCellID), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NRCGI, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "nrCellID" - }, - { ATF_POINTER, 2, offsetof(struct ServedNRCell_Information, fiveGS_TAC), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_FiveGS_TAC, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "fiveGS-TAC" - }, - { ATF_POINTER, 1, offsetof(struct ServedNRCell_Information, configured_TAC), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_TAC, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "configured-TAC" - }, - { ATF_NOFLAGS, 0, offsetof(struct ServedNRCell_Information, broadcastPLMNs), - (ASN_TAG_CLASS_CONTEXT | (4 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_BroadcastPLMNs_Item, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "broadcastPLMNs" - }, - { ATF_NOFLAGS, 0, offsetof(struct ServedNRCell_Information, nrModeInfo), - (ASN_TAG_CLASS_CONTEXT | (5 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_nrModeInfo_7, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "nrModeInfo" - }, - { ATF_NOFLAGS, 0, offsetof(struct ServedNRCell_Information, measurementTimingConfiguration), - (ASN_TAG_CLASS_CONTEXT | (6 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_OCTET_STRING, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "measurementTimingConfiguration" - }, - { ATF_POINTER, 1, offsetof(struct ServedNRCell_Information, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (7 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P92, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_ServedNRCell_Information_oms_1[] = { 2, 3, 7 }; -static const ber_tlv_tag_t asn_DEF_ServedNRCell_Information_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ServedNRCell_Information_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nrpCI */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* nrCellID */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* fiveGS-TAC */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* configured-TAC */ - { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* broadcastPLMNs */ - { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* nrModeInfo */ - { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* measurementTimingConfiguration */ - { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ServedNRCell_Information_specs_1 = { - sizeof(struct ServedNRCell_Information), - offsetof(struct ServedNRCell_Information, _asn_ctx), - asn_MAP_ServedNRCell_Information_tag2el_1, - 8, /* Count of tags in the map */ - asn_MAP_ServedNRCell_Information_oms_1, /* Optional members */ - 3, 0, /* Root/Additions */ - 8, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ServedNRCell_Information = { - "ServedNRCell-Information", - "ServedNRCell-Information", - &asn_OP_SEQUENCE, - asn_DEF_ServedNRCell_Information_tags_1, - sizeof(asn_DEF_ServedNRCell_Information_tags_1) - /sizeof(asn_DEF_ServedNRCell_Information_tags_1[0]), /* 1 */ - asn_DEF_ServedNRCell_Information_tags_1, /* Same as above */ - sizeof(asn_DEF_ServedNRCell_Information_tags_1) - /sizeof(asn_DEF_ServedNRCell_Information_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ServedNRCell_Information_1, - 8, /* Elements count */ - &asn_SPC_ServedNRCell_Information_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/ServedNRCell-Information.h b/e2sim/previous/ASN1c/ServedNRCell-Information.h deleted file mode 100644 index f80a9a5..0000000 --- a/e2sim/previous/ASN1c/ServedNRCell-Information.h +++ /dev/null @@ -1,102 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _ServedNRCell_Information_H_ -#define _ServedNRCell_Information_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NRPCI.h" -#include "NRCGI.h" -#include "FiveGS-TAC.h" -#include "TAC.h" -#include "BroadcastPLMNs-Item.h" -#include "OCTET_STRING.h" -#include "constr_CHOICE.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum ServedNRCell_Information__nrModeInfo_PR { - ServedNRCell_Information__nrModeInfo_PR_NOTHING, /* No components present */ - ServedNRCell_Information__nrModeInfo_PR_fdd, - ServedNRCell_Information__nrModeInfo_PR_tdd - /* Extensions may appear below */ - -} ServedNRCell_Information__nrModeInfo_PR; - -/* Forward declarations */ -struct ProtocolExtensionContainer; -struct FDD_InfoServedNRCell_Information; -struct TDD_InfoServedNRCell_Information; - -/* ServedNRCell-Information */ -typedef struct ServedNRCell_Information { - NRPCI_t nrpCI; - NRCGI_t nrCellID; - FiveGS_TAC_t *fiveGS_TAC; /* OPTIONAL */ - TAC_t *configured_TAC; /* OPTIONAL */ - BroadcastPLMNs_Item_t broadcastPLMNs; - struct ServedNRCell_Information__nrModeInfo { - ServedNRCell_Information__nrModeInfo_PR present; - union ServedNRCell_Information__nrModeInfo_u { - struct FDD_InfoServedNRCell_Information *fdd; - struct TDD_InfoServedNRCell_Information *tdd; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } nrModeInfo; - OCTET_STRING_t measurementTimingConfiguration; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ServedNRCell_Information_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ServedNRCell_Information; -extern asn_SEQUENCE_specifics_t asn_SPC_ServedNRCell_Information_specs_1; -extern asn_TYPE_member_t asn_MBR_ServedNRCell_Information_1[8]; - -#ifdef __cplusplus -} -#endif - -#endif /* _ServedNRCell_Information_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/ServedNRCellsToActivate-Item.c b/e2sim/previous/ASN1c/ServedNRCellsToActivate-Item.c deleted file mode 100644 index 1265071..0000000 --- a/e2sim/previous/ASN1c/ServedNRCellsToActivate-Item.c +++ /dev/null @@ -1,81 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "ServedNRCellsToActivate-Item.h" - -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_ServedNRCellsToActivate_Item_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct ServedNRCellsToActivate_Item, nrCellID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NRCGI, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "nrCellID" - }, - { ATF_POINTER, 1, offsetof(struct ServedNRCellsToActivate_Item, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P101, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_ServedNRCellsToActivate_Item_oms_1[] = { 1 }; -static const ber_tlv_tag_t asn_DEF_ServedNRCellsToActivate_Item_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ServedNRCellsToActivate_Item_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nrCellID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ServedNRCellsToActivate_Item_specs_1 = { - sizeof(struct ServedNRCellsToActivate_Item), - offsetof(struct ServedNRCellsToActivate_Item, _asn_ctx), - asn_MAP_ServedNRCellsToActivate_Item_tag2el_1, - 2, /* Count of tags in the map */ - asn_MAP_ServedNRCellsToActivate_Item_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 2, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ServedNRCellsToActivate_Item = { - "ServedNRCellsToActivate-Item", - "ServedNRCellsToActivate-Item", - &asn_OP_SEQUENCE, - asn_DEF_ServedNRCellsToActivate_Item_tags_1, - sizeof(asn_DEF_ServedNRCellsToActivate_Item_tags_1) - /sizeof(asn_DEF_ServedNRCellsToActivate_Item_tags_1[0]), /* 1 */ - asn_DEF_ServedNRCellsToActivate_Item_tags_1, /* Same as above */ - sizeof(asn_DEF_ServedNRCellsToActivate_Item_tags_1) - /sizeof(asn_DEF_ServedNRCellsToActivate_Item_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ServedNRCellsToActivate_Item_1, - 2, /* Elements count */ - &asn_SPC_ServedNRCellsToActivate_Item_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/ServedNRCellsToActivate-Item.h b/e2sim/previous/ASN1c/ServedNRCellsToActivate-Item.h deleted file mode 100644 index 2f92db4..0000000 --- a/e2sim/previous/ASN1c/ServedNRCellsToActivate-Item.h +++ /dev/null @@ -1,66 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _ServedNRCellsToActivate_Item_H_ -#define _ServedNRCellsToActivate_Item_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NRCGI.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* ServedNRCellsToActivate-Item */ -typedef struct ServedNRCellsToActivate_Item { - NRCGI_t nrCellID; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ServedNRCellsToActivate_Item_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ServedNRCellsToActivate_Item; -extern asn_SEQUENCE_specifics_t asn_SPC_ServedNRCellsToActivate_Item_specs_1; -extern asn_TYPE_member_t asn_MBR_ServedNRCellsToActivate_Item_1[2]; - -#ifdef __cplusplus -} -#endif - -#endif /* _ServedNRCellsToActivate_Item_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/ServedNRCellsToActivate.c b/e2sim/previous/ASN1c/ServedNRCellsToActivate.c deleted file mode 100644 index ae336b6..0000000 --- a/e2sim/previous/ASN1c/ServedNRCellsToActivate.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "ServedNRCellsToActivate.h" - -#include "ServedNRCellsToActivate-Item.h" -static asn_per_constraints_t asn_PER_type_ServedNRCellsToActivate_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 14, 14, 1, 16384 } /* (SIZE(1..16384)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_ServedNRCellsToActivate_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ServedNRCellsToActivate_Item, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ServedNRCellsToActivate_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_ServedNRCellsToActivate_specs_1 = { - sizeof(struct ServedNRCellsToActivate), - offsetof(struct ServedNRCellsToActivate, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ServedNRCellsToActivate = { - "ServedNRCellsToActivate", - "ServedNRCellsToActivate", - &asn_OP_SEQUENCE_OF, - asn_DEF_ServedNRCellsToActivate_tags_1, - sizeof(asn_DEF_ServedNRCellsToActivate_tags_1) - /sizeof(asn_DEF_ServedNRCellsToActivate_tags_1[0]), /* 1 */ - asn_DEF_ServedNRCellsToActivate_tags_1, /* Same as above */ - sizeof(asn_DEF_ServedNRCellsToActivate_tags_1) - /sizeof(asn_DEF_ServedNRCellsToActivate_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_ServedNRCellsToActivate_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_ServedNRCellsToActivate_1, - 1, /* Single element */ - &asn_SPC_ServedNRCellsToActivate_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/ServedNRCellsToActivate.h b/e2sim/previous/ASN1c/ServedNRCellsToActivate.h deleted file mode 100644 index 95dae37..0000000 --- a/e2sim/previous/ASN1c/ServedNRCellsToActivate.h +++ /dev/null @@ -1,59 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _ServedNRCellsToActivate_H_ -#define _ServedNRCellsToActivate_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ServedNRCellsToActivate_Item; - -/* ServedNRCellsToActivate */ -typedef struct ServedNRCellsToActivate { - A_SEQUENCE_OF(struct ServedNRCellsToActivate_Item) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ServedNRCellsToActivate_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ServedNRCellsToActivate; - -#ifdef __cplusplus -} -#endif - -#endif /* _ServedNRCellsToActivate_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/ServedNRCellsToModify-Item.c b/e2sim/previous/ASN1c/ServedNRCellsToModify-Item.c deleted file mode 100644 index 3bc2e83..0000000 --- a/e2sim/previous/ASN1c/ServedNRCellsToModify-Item.c +++ /dev/null @@ -1,112 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "ServedNRCellsToModify-Item.h" - -#include "NRNeighbour-Information.h" -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_ServedNRCellsToModify_Item_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct ServedNRCellsToModify_Item, old_nrcgi), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NRCGI, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "old-nrcgi" - }, - { ATF_NOFLAGS, 0, offsetof(struct ServedNRCellsToModify_Item, servedNRCellInformation), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ServedNRCell_Information, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "servedNRCellInformation" - }, - { ATF_POINTER, 3, offsetof(struct ServedNRCellsToModify_Item, nrNeighbourInformation), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NRNeighbour_Information, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "nrNeighbourInformation" - }, - { ATF_POINTER, 2, offsetof(struct ServedNRCellsToModify_Item, nrDeactivationIndication), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_DeactivationIndication, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "nrDeactivationIndication" - }, - { ATF_POINTER, 1, offsetof(struct ServedNRCellsToModify_Item, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (4 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P100, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_ServedNRCellsToModify_Item_oms_1[] = { 2, 3, 4 }; -static const ber_tlv_tag_t asn_DEF_ServedNRCellsToModify_Item_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ServedNRCellsToModify_Item_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* old-nrcgi */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* servedNRCellInformation */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* nrNeighbourInformation */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* nrDeactivationIndication */ - { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ServedNRCellsToModify_Item_specs_1 = { - sizeof(struct ServedNRCellsToModify_Item), - offsetof(struct ServedNRCellsToModify_Item, _asn_ctx), - asn_MAP_ServedNRCellsToModify_Item_tag2el_1, - 5, /* Count of tags in the map */ - asn_MAP_ServedNRCellsToModify_Item_oms_1, /* Optional members */ - 3, 0, /* Root/Additions */ - 5, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ServedNRCellsToModify_Item = { - "ServedNRCellsToModify-Item", - "ServedNRCellsToModify-Item", - &asn_OP_SEQUENCE, - asn_DEF_ServedNRCellsToModify_Item_tags_1, - sizeof(asn_DEF_ServedNRCellsToModify_Item_tags_1) - /sizeof(asn_DEF_ServedNRCellsToModify_Item_tags_1[0]), /* 1 */ - asn_DEF_ServedNRCellsToModify_Item_tags_1, /* Same as above */ - sizeof(asn_DEF_ServedNRCellsToModify_Item_tags_1) - /sizeof(asn_DEF_ServedNRCellsToModify_Item_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ServedNRCellsToModify_Item_1, - 5, /* Elements count */ - &asn_SPC_ServedNRCellsToModify_Item_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/ServedNRCellsToModify-Item.h b/e2sim/previous/ASN1c/ServedNRCellsToModify-Item.h deleted file mode 100644 index 90edb92..0000000 --- a/e2sim/previous/ASN1c/ServedNRCellsToModify-Item.h +++ /dev/null @@ -1,72 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _ServedNRCellsToModify_Item_H_ -#define _ServedNRCellsToModify_Item_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NRCGI.h" -#include "ServedNRCell-Information.h" -#include "DeactivationIndication.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct NRNeighbour_Information; -struct ProtocolExtensionContainer; - -/* ServedNRCellsToModify-Item */ -typedef struct ServedNRCellsToModify_Item { - NRCGI_t old_nrcgi; - ServedNRCell_Information_t servedNRCellInformation; - struct NRNeighbour_Information *nrNeighbourInformation; /* OPTIONAL */ - DeactivationIndication_t *nrDeactivationIndication; /* OPTIONAL */ - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ServedNRCellsToModify_Item_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ServedNRCellsToModify_Item; -extern asn_SEQUENCE_specifics_t asn_SPC_ServedNRCellsToModify_Item_specs_1; -extern asn_TYPE_member_t asn_MBR_ServedNRCellsToModify_Item_1[5]; - -#ifdef __cplusplus -} -#endif - -#endif /* _ServedNRCellsToModify_Item_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/ServedNRcellsENDCX2ManagementList.c b/e2sim/previous/ASN1c/ServedNRcellsENDCX2ManagementList.c deleted file mode 100644 index de5284a..0000000 --- a/e2sim/previous/ASN1c/ServedNRcellsENDCX2ManagementList.c +++ /dev/null @@ -1,133 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "ServedNRcellsENDCX2ManagementList.h" - -#include "NRNeighbour-Information.h" -#include "ProtocolExtensionContainer.h" -static asn_per_constraints_t asn_PER_type_ServedNRcellsENDCX2ManagementList_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 14, 14, 1, 16384 } /* (SIZE(1..16384)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_Member_2[] = { - { ATF_NOFLAGS, 0, offsetof(struct ServedNRcellsENDCX2ManagementList__Member, servedNRCellInfo), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ServedNRCell_Information, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "servedNRCellInfo" - }, - { ATF_POINTER, 2, offsetof(struct ServedNRcellsENDCX2ManagementList__Member, nRNeighbourInfo), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NRNeighbour_Information, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "nRNeighbourInfo" - }, - { ATF_POINTER, 1, offsetof(struct ServedNRcellsENDCX2ManagementList__Member, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P91, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_Member_oms_2[] = { 1, 2 }; -static const ber_tlv_tag_t asn_DEF_Member_tags_2[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_Member_tag2el_2[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* servedNRCellInfo */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* nRNeighbourInfo */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_Member_specs_2 = { - sizeof(struct ServedNRcellsENDCX2ManagementList__Member), - offsetof(struct ServedNRcellsENDCX2ManagementList__Member, _asn_ctx), - asn_MAP_Member_tag2el_2, - 3, /* Count of tags in the map */ - asn_MAP_Member_oms_2, /* Optional members */ - 2, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_Member_2 = { - "SEQUENCE", - "SEQUENCE", - &asn_OP_SEQUENCE, - asn_DEF_Member_tags_2, - sizeof(asn_DEF_Member_tags_2) - /sizeof(asn_DEF_Member_tags_2[0]), /* 1 */ - asn_DEF_Member_tags_2, /* Same as above */ - sizeof(asn_DEF_Member_tags_2) - /sizeof(asn_DEF_Member_tags_2[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_Member_2, - 3, /* Elements count */ - &asn_SPC_Member_specs_2 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_ServedNRcellsENDCX2ManagementList_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_Member_2, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ServedNRcellsENDCX2ManagementList_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_ServedNRcellsENDCX2ManagementList_specs_1 = { - sizeof(struct ServedNRcellsENDCX2ManagementList), - offsetof(struct ServedNRcellsENDCX2ManagementList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ServedNRcellsENDCX2ManagementList = { - "ServedNRcellsENDCX2ManagementList", - "ServedNRcellsENDCX2ManagementList", - &asn_OP_SEQUENCE_OF, - asn_DEF_ServedNRcellsENDCX2ManagementList_tags_1, - sizeof(asn_DEF_ServedNRcellsENDCX2ManagementList_tags_1) - /sizeof(asn_DEF_ServedNRcellsENDCX2ManagementList_tags_1[0]), /* 1 */ - asn_DEF_ServedNRcellsENDCX2ManagementList_tags_1, /* Same as above */ - sizeof(asn_DEF_ServedNRcellsENDCX2ManagementList_tags_1) - /sizeof(asn_DEF_ServedNRcellsENDCX2ManagementList_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_ServedNRcellsENDCX2ManagementList_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_ServedNRcellsENDCX2ManagementList_1, - 1, /* Single element */ - &asn_SPC_ServedNRcellsENDCX2ManagementList_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/ServedNRcellsENDCX2ManagementList.h b/e2sim/previous/ASN1c/ServedNRcellsENDCX2ManagementList.h deleted file mode 100644 index 3ba21ae..0000000 --- a/e2sim/previous/ASN1c/ServedNRcellsENDCX2ManagementList.h +++ /dev/null @@ -1,76 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _ServedNRcellsENDCX2ManagementList_H_ -#define _ServedNRcellsENDCX2ManagementList_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "ServedNRCell-Information.h" -#include "constr_SEQUENCE.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct NRNeighbour_Information; -struct ProtocolExtensionContainer; - -/* Forward definitions */ -typedef struct ServedNRcellsENDCX2ManagementList__Member { - ServedNRCell_Information_t servedNRCellInfo; - struct NRNeighbour_Information *nRNeighbourInfo; /* OPTIONAL */ - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ServedNRcellsENDCX2ManagementList__Member; - -/* ServedNRcellsENDCX2ManagementList */ -typedef struct ServedNRcellsENDCX2ManagementList { - A_SEQUENCE_OF(ServedNRcellsENDCX2ManagementList__Member) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ServedNRcellsENDCX2ManagementList_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ServedNRcellsENDCX2ManagementList; - -#ifdef __cplusplus -} -#endif - -#endif /* _ServedNRcellsENDCX2ManagementList_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/ServedNRcellsToDeleteENDCConfUpdList.c b/e2sim/previous/ASN1c/ServedNRcellsToDeleteENDCConfUpdList.c deleted file mode 100644 index 3b7f357..0000000 --- a/e2sim/previous/ASN1c/ServedNRcellsToDeleteENDCConfUpdList.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "ServedNRcellsToDeleteENDCConfUpdList.h" - -#include "NRCGI.h" -static asn_per_constraints_t asn_PER_type_ServedNRcellsToDeleteENDCConfUpdList_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 14, 14, 1, 16384 } /* (SIZE(1..16384)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_ServedNRcellsToDeleteENDCConfUpdList_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_NRCGI, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ServedNRcellsToDeleteENDCConfUpdList_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_ServedNRcellsToDeleteENDCConfUpdList_specs_1 = { - sizeof(struct ServedNRcellsToDeleteENDCConfUpdList), - offsetof(struct ServedNRcellsToDeleteENDCConfUpdList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ServedNRcellsToDeleteENDCConfUpdList = { - "ServedNRcellsToDeleteENDCConfUpdList", - "ServedNRcellsToDeleteENDCConfUpdList", - &asn_OP_SEQUENCE_OF, - asn_DEF_ServedNRcellsToDeleteENDCConfUpdList_tags_1, - sizeof(asn_DEF_ServedNRcellsToDeleteENDCConfUpdList_tags_1) - /sizeof(asn_DEF_ServedNRcellsToDeleteENDCConfUpdList_tags_1[0]), /* 1 */ - asn_DEF_ServedNRcellsToDeleteENDCConfUpdList_tags_1, /* Same as above */ - sizeof(asn_DEF_ServedNRcellsToDeleteENDCConfUpdList_tags_1) - /sizeof(asn_DEF_ServedNRcellsToDeleteENDCConfUpdList_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_ServedNRcellsToDeleteENDCConfUpdList_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_ServedNRcellsToDeleteENDCConfUpdList_1, - 1, /* Single element */ - &asn_SPC_ServedNRcellsToDeleteENDCConfUpdList_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/ServedNRcellsToDeleteENDCConfUpdList.h b/e2sim/previous/ASN1c/ServedNRcellsToDeleteENDCConfUpdList.h deleted file mode 100644 index ef18039..0000000 --- a/e2sim/previous/ASN1c/ServedNRcellsToDeleteENDCConfUpdList.h +++ /dev/null @@ -1,59 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _ServedNRcellsToDeleteENDCConfUpdList_H_ -#define _ServedNRcellsToDeleteENDCConfUpdList_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct NRCGI; - -/* ServedNRcellsToDeleteENDCConfUpdList */ -typedef struct ServedNRcellsToDeleteENDCConfUpdList { - A_SEQUENCE_OF(struct NRCGI) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ServedNRcellsToDeleteENDCConfUpdList_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ServedNRcellsToDeleteENDCConfUpdList; - -#ifdef __cplusplus -} -#endif - -#endif /* _ServedNRcellsToDeleteENDCConfUpdList_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/ServedNRcellsToModifyENDCConfUpdList.c b/e2sim/previous/ASN1c/ServedNRcellsToModifyENDCConfUpdList.c deleted file mode 100644 index df89a27..0000000 --- a/e2sim/previous/ASN1c/ServedNRcellsToModifyENDCConfUpdList.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "ServedNRcellsToModifyENDCConfUpdList.h" - -#include "ServedNRCellsToModify-Item.h" -static asn_per_constraints_t asn_PER_type_ServedNRcellsToModifyENDCConfUpdList_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 14, 14, 1, 16384 } /* (SIZE(1..16384)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_ServedNRcellsToModifyENDCConfUpdList_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ServedNRCellsToModify_Item, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ServedNRcellsToModifyENDCConfUpdList_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_ServedNRcellsToModifyENDCConfUpdList_specs_1 = { - sizeof(struct ServedNRcellsToModifyENDCConfUpdList), - offsetof(struct ServedNRcellsToModifyENDCConfUpdList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ServedNRcellsToModifyENDCConfUpdList = { - "ServedNRcellsToModifyENDCConfUpdList", - "ServedNRcellsToModifyENDCConfUpdList", - &asn_OP_SEQUENCE_OF, - asn_DEF_ServedNRcellsToModifyENDCConfUpdList_tags_1, - sizeof(asn_DEF_ServedNRcellsToModifyENDCConfUpdList_tags_1) - /sizeof(asn_DEF_ServedNRcellsToModifyENDCConfUpdList_tags_1[0]), /* 1 */ - asn_DEF_ServedNRcellsToModifyENDCConfUpdList_tags_1, /* Same as above */ - sizeof(asn_DEF_ServedNRcellsToModifyENDCConfUpdList_tags_1) - /sizeof(asn_DEF_ServedNRcellsToModifyENDCConfUpdList_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_ServedNRcellsToModifyENDCConfUpdList_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_ServedNRcellsToModifyENDCConfUpdList_1, - 1, /* Single element */ - &asn_SPC_ServedNRcellsToModifyENDCConfUpdList_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/ServedNRcellsToModifyENDCConfUpdList.h b/e2sim/previous/ASN1c/ServedNRcellsToModifyENDCConfUpdList.h deleted file mode 100644 index 63c86bb..0000000 --- a/e2sim/previous/ASN1c/ServedNRcellsToModifyENDCConfUpdList.h +++ /dev/null @@ -1,59 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _ServedNRcellsToModifyENDCConfUpdList_H_ -#define _ServedNRcellsToModifyENDCConfUpdList_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ServedNRCellsToModify_Item; - -/* ServedNRcellsToModifyENDCConfUpdList */ -typedef struct ServedNRcellsToModifyENDCConfUpdList { - A_SEQUENCE_OF(struct ServedNRCellsToModify_Item) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ServedNRcellsToModifyENDCConfUpdList_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ServedNRcellsToModifyENDCConfUpdList; - -#ifdef __cplusplus -} -#endif - -#endif /* _ServedNRcellsToModifyENDCConfUpdList_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/ServiceType.c b/e2sim/previous/ASN1c/ServiceType.c deleted file mode 100644 index bd3dede..0000000 --- a/e2sim/previous/ASN1c/ServiceType.c +++ /dev/null @@ -1,73 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "ServiceType.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_ServiceType_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_ServiceType_value2enum_1[] = { - { 0, 25, "qMC-for-streaming-service" }, - { 1, 20, "qMC-for-MTSI-service" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_ServiceType_enum2value_1[] = { - 1, /* qMC-for-MTSI-service(1) */ - 0 /* qMC-for-streaming-service(0) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_ServiceType_specs_1 = { - asn_MAP_ServiceType_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_ServiceType_enum2value_1, /* N => "tag"; sorted by N */ - 2, /* Number of elements in the maps */ - 3, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_ServiceType_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ServiceType = { - "ServiceType", - "ServiceType", - &asn_OP_NativeEnumerated, - asn_DEF_ServiceType_tags_1, - sizeof(asn_DEF_ServiceType_tags_1) - /sizeof(asn_DEF_ServiceType_tags_1[0]), /* 1 */ - asn_DEF_ServiceType_tags_1, /* Same as above */ - sizeof(asn_DEF_ServiceType_tags_1) - /sizeof(asn_DEF_ServiceType_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_ServiceType_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_ServiceType_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/ServiceType.h b/e2sim/previous/ASN1c/ServiceType.h deleted file mode 100644 index 97dc0c9..0000000 --- a/e2sim/previous/ASN1c/ServiceType.h +++ /dev/null @@ -1,72 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _ServiceType_H_ -#define _ServiceType_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum ServiceType { - ServiceType_qMC_for_streaming_service = 0, - ServiceType_qMC_for_MTSI_service = 1 - /* - * Enumeration is extensible - */ -} e_ServiceType; - -/* ServiceType */ -typedef long ServiceType_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_ServiceType_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_ServiceType; -extern const asn_INTEGER_specifics_t asn_SPC_ServiceType_specs_1; -asn_struct_free_f ServiceType_free; -asn_struct_print_f ServiceType_print; -asn_constr_check_f ServiceType_constraint; -ber_type_decoder_f ServiceType_decode_ber; -der_type_encoder_f ServiceType_encode_der; -xer_type_decoder_f ServiceType_decode_xer; -xer_type_encoder_f ServiceType_encode_xer; -per_type_decoder_f ServiceType_decode_uper; -per_type_encoder_f ServiceType_encode_uper; -per_type_decoder_f ServiceType_decode_aper; -per_type_encoder_f ServiceType_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _ServiceType_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/SgNB-UE-X2AP-ID.c b/e2sim/previous/ASN1c/SgNB-UE-X2AP-ID.c deleted file mode 100644 index cc5402f..0000000 --- a/e2sim/previous/ASN1c/SgNB-UE-X2AP-ID.c +++ /dev/null @@ -1,75 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "SgNB-UE-X2AP-ID.h" - -int -SgNB_UE_X2AP_ID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - /* Constraint check succeeded */ - return 0; -} - -/* - * This type is implemented using NativeInteger, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_SgNB_UE_X2AP_ID_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED, 32, -1, 0, 4294967295 } /* (0..4294967295) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -const asn_INTEGER_specifics_t asn_SPC_SgNB_UE_X2AP_ID_specs_1 = { - 0, 0, 0, 0, 0, - 0, /* Native long size */ - 1 /* Unsigned representation */ -}; -static const ber_tlv_tag_t asn_DEF_SgNB_UE_X2AP_ID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_SgNB_UE_X2AP_ID = { - "SgNB-UE-X2AP-ID", - "SgNB-UE-X2AP-ID", - &asn_OP_NativeInteger, - asn_DEF_SgNB_UE_X2AP_ID_tags_1, - sizeof(asn_DEF_SgNB_UE_X2AP_ID_tags_1) - /sizeof(asn_DEF_SgNB_UE_X2AP_ID_tags_1[0]), /* 1 */ - asn_DEF_SgNB_UE_X2AP_ID_tags_1, /* Same as above */ - sizeof(asn_DEF_SgNB_UE_X2AP_ID_tags_1) - /sizeof(asn_DEF_SgNB_UE_X2AP_ID_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_SgNB_UE_X2AP_ID_constr_1, SgNB_UE_X2AP_ID_constraint }, - 0, 0, /* No members */ - &asn_SPC_SgNB_UE_X2AP_ID_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/SgNB-UE-X2AP-ID.h b/e2sim/previous/ASN1c/SgNB-UE-X2AP-ID.h deleted file mode 100644 index b379b9c..0000000 --- a/e2sim/previous/ASN1c/SgNB-UE-X2AP-ID.h +++ /dev/null @@ -1,63 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _SgNB_UE_X2AP_ID_H_ -#define _SgNB_UE_X2AP_ID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeInteger.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* SgNB-UE-X2AP-ID */ -typedef unsigned long SgNB_UE_X2AP_ID_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_SgNB_UE_X2AP_ID_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_SgNB_UE_X2AP_ID; -extern const asn_INTEGER_specifics_t asn_SPC_SgNB_UE_X2AP_ID_specs_1; -asn_struct_free_f SgNB_UE_X2AP_ID_free; -asn_struct_print_f SgNB_UE_X2AP_ID_print; -asn_constr_check_f SgNB_UE_X2AP_ID_constraint; -ber_type_decoder_f SgNB_UE_X2AP_ID_decode_ber; -der_type_encoder_f SgNB_UE_X2AP_ID_encode_der; -xer_type_decoder_f SgNB_UE_X2AP_ID_decode_xer; -xer_type_encoder_f SgNB_UE_X2AP_ID_encode_xer; -per_type_decoder_f SgNB_UE_X2AP_ID_decode_uper; -per_type_encoder_f SgNB_UE_X2AP_ID_encode_uper; -per_type_decoder_f SgNB_UE_X2AP_ID_decode_aper; -per_type_encoder_f SgNB_UE_X2AP_ID_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _SgNB_UE_X2AP_ID_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/SgNBActivityNotification.c b/e2sim/previous/ASN1c/SgNBActivityNotification.c deleted file mode 100644 index 6ecafd0..0000000 --- a/e2sim/previous/ASN1c/SgNBActivityNotification.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "SgNBActivityNotification.h" - -static asn_TYPE_member_t asn_MBR_SgNBActivityNotification_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct SgNBActivityNotification, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_119P102, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_SgNBActivityNotification_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_SgNBActivityNotification_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_SgNBActivityNotification_specs_1 = { - sizeof(struct SgNBActivityNotification), - offsetof(struct SgNBActivityNotification, _asn_ctx), - asn_MAP_SgNBActivityNotification_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_SgNBActivityNotification = { - "SgNBActivityNotification", - "SgNBActivityNotification", - &asn_OP_SEQUENCE, - asn_DEF_SgNBActivityNotification_tags_1, - sizeof(asn_DEF_SgNBActivityNotification_tags_1) - /sizeof(asn_DEF_SgNBActivityNotification_tags_1[0]), /* 1 */ - asn_DEF_SgNBActivityNotification_tags_1, /* Same as above */ - sizeof(asn_DEF_SgNBActivityNotification_tags_1) - /sizeof(asn_DEF_SgNBActivityNotification_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_SgNBActivityNotification_1, - 1, /* Elements count */ - &asn_SPC_SgNBActivityNotification_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/SgNBActivityNotification.h b/e2sim/previous/ASN1c/SgNBActivityNotification.h deleted file mode 100644 index 1a39dee..0000000 --- a/e2sim/previous/ASN1c/SgNBActivityNotification.h +++ /dev/null @@ -1,60 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _SgNBActivityNotification_H_ -#define _SgNBActivityNotification_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* SgNBActivityNotification */ -typedef struct SgNBActivityNotification { - ProtocolIE_Container_119P102_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} SgNBActivityNotification_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_SgNBActivityNotification; - -#ifdef __cplusplus -} -#endif - -#endif /* _SgNBActivityNotification_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/SgNBAdditionRequest.c b/e2sim/previous/ASN1c/SgNBAdditionRequest.c deleted file mode 100644 index 7c8962a..0000000 --- a/e2sim/previous/ASN1c/SgNBAdditionRequest.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "SgNBAdditionRequest.h" - -static asn_TYPE_member_t asn_MBR_SgNBAdditionRequest_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct SgNBAdditionRequest, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_119P64, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_SgNBAdditionRequest_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_SgNBAdditionRequest_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_SgNBAdditionRequest_specs_1 = { - sizeof(struct SgNBAdditionRequest), - offsetof(struct SgNBAdditionRequest, _asn_ctx), - asn_MAP_SgNBAdditionRequest_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_SgNBAdditionRequest = { - "SgNBAdditionRequest", - "SgNBAdditionRequest", - &asn_OP_SEQUENCE, - asn_DEF_SgNBAdditionRequest_tags_1, - sizeof(asn_DEF_SgNBAdditionRequest_tags_1) - /sizeof(asn_DEF_SgNBAdditionRequest_tags_1[0]), /* 1 */ - asn_DEF_SgNBAdditionRequest_tags_1, /* Same as above */ - sizeof(asn_DEF_SgNBAdditionRequest_tags_1) - /sizeof(asn_DEF_SgNBAdditionRequest_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_SgNBAdditionRequest_1, - 1, /* Elements count */ - &asn_SPC_SgNBAdditionRequest_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/SgNBAdditionRequest.h b/e2sim/previous/ASN1c/SgNBAdditionRequest.h deleted file mode 100644 index c7181b5..0000000 --- a/e2sim/previous/ASN1c/SgNBAdditionRequest.h +++ /dev/null @@ -1,60 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _SgNBAdditionRequest_H_ -#define _SgNBAdditionRequest_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* SgNBAdditionRequest */ -typedef struct SgNBAdditionRequest { - ProtocolIE_Container_119P64_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} SgNBAdditionRequest_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_SgNBAdditionRequest; - -#ifdef __cplusplus -} -#endif - -#endif /* _SgNBAdditionRequest_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/SgNBAdditionRequestAcknowledge.c b/e2sim/previous/ASN1c/SgNBAdditionRequestAcknowledge.c deleted file mode 100644 index 22fdf3a..0000000 --- a/e2sim/previous/ASN1c/SgNBAdditionRequestAcknowledge.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "SgNBAdditionRequestAcknowledge.h" - -static asn_TYPE_member_t asn_MBR_SgNBAdditionRequestAcknowledge_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct SgNBAdditionRequestAcknowledge, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_119P65, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_SgNBAdditionRequestAcknowledge_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_SgNBAdditionRequestAcknowledge_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_SgNBAdditionRequestAcknowledge_specs_1 = { - sizeof(struct SgNBAdditionRequestAcknowledge), - offsetof(struct SgNBAdditionRequestAcknowledge, _asn_ctx), - asn_MAP_SgNBAdditionRequestAcknowledge_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_SgNBAdditionRequestAcknowledge = { - "SgNBAdditionRequestAcknowledge", - "SgNBAdditionRequestAcknowledge", - &asn_OP_SEQUENCE, - asn_DEF_SgNBAdditionRequestAcknowledge_tags_1, - sizeof(asn_DEF_SgNBAdditionRequestAcknowledge_tags_1) - /sizeof(asn_DEF_SgNBAdditionRequestAcknowledge_tags_1[0]), /* 1 */ - asn_DEF_SgNBAdditionRequestAcknowledge_tags_1, /* Same as above */ - sizeof(asn_DEF_SgNBAdditionRequestAcknowledge_tags_1) - /sizeof(asn_DEF_SgNBAdditionRequestAcknowledge_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_SgNBAdditionRequestAcknowledge_1, - 1, /* Elements count */ - &asn_SPC_SgNBAdditionRequestAcknowledge_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/SgNBAdditionRequestAcknowledge.h b/e2sim/previous/ASN1c/SgNBAdditionRequestAcknowledge.h deleted file mode 100644 index a6ece95..0000000 --- a/e2sim/previous/ASN1c/SgNBAdditionRequestAcknowledge.h +++ /dev/null @@ -1,60 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _SgNBAdditionRequestAcknowledge_H_ -#define _SgNBAdditionRequestAcknowledge_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* SgNBAdditionRequestAcknowledge */ -typedef struct SgNBAdditionRequestAcknowledge { - ProtocolIE_Container_119P65_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} SgNBAdditionRequestAcknowledge_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_SgNBAdditionRequestAcknowledge; - -#ifdef __cplusplus -} -#endif - -#endif /* _SgNBAdditionRequestAcknowledge_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/SgNBAdditionRequestReject.c b/e2sim/previous/ASN1c/SgNBAdditionRequestReject.c deleted file mode 100644 index 2b8acf5..0000000 --- a/e2sim/previous/ASN1c/SgNBAdditionRequestReject.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "SgNBAdditionRequestReject.h" - -static asn_TYPE_member_t asn_MBR_SgNBAdditionRequestReject_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct SgNBAdditionRequestReject, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_119P66, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_SgNBAdditionRequestReject_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_SgNBAdditionRequestReject_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_SgNBAdditionRequestReject_specs_1 = { - sizeof(struct SgNBAdditionRequestReject), - offsetof(struct SgNBAdditionRequestReject, _asn_ctx), - asn_MAP_SgNBAdditionRequestReject_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_SgNBAdditionRequestReject = { - "SgNBAdditionRequestReject", - "SgNBAdditionRequestReject", - &asn_OP_SEQUENCE, - asn_DEF_SgNBAdditionRequestReject_tags_1, - sizeof(asn_DEF_SgNBAdditionRequestReject_tags_1) - /sizeof(asn_DEF_SgNBAdditionRequestReject_tags_1[0]), /* 1 */ - asn_DEF_SgNBAdditionRequestReject_tags_1, /* Same as above */ - sizeof(asn_DEF_SgNBAdditionRequestReject_tags_1) - /sizeof(asn_DEF_SgNBAdditionRequestReject_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_SgNBAdditionRequestReject_1, - 1, /* Elements count */ - &asn_SPC_SgNBAdditionRequestReject_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/SgNBAdditionRequestReject.h b/e2sim/previous/ASN1c/SgNBAdditionRequestReject.h deleted file mode 100644 index ac89d1b..0000000 --- a/e2sim/previous/ASN1c/SgNBAdditionRequestReject.h +++ /dev/null @@ -1,60 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _SgNBAdditionRequestReject_H_ -#define _SgNBAdditionRequestReject_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* SgNBAdditionRequestReject */ -typedef struct SgNBAdditionRequestReject { - ProtocolIE_Container_119P66_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} SgNBAdditionRequestReject_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_SgNBAdditionRequestReject; - -#ifdef __cplusplus -} -#endif - -#endif /* _SgNBAdditionRequestReject_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/SgNBChangeConfirm.c b/e2sim/previous/ASN1c/SgNBChangeConfirm.c deleted file mode 100644 index 46ba9cf..0000000 --- a/e2sim/previous/ASN1c/SgNBChangeConfirm.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "SgNBChangeConfirm.h" - -static asn_TYPE_member_t asn_MBR_SgNBChangeConfirm_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct SgNBChangeConfirm, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_119P81, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_SgNBChangeConfirm_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_SgNBChangeConfirm_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_SgNBChangeConfirm_specs_1 = { - sizeof(struct SgNBChangeConfirm), - offsetof(struct SgNBChangeConfirm, _asn_ctx), - asn_MAP_SgNBChangeConfirm_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_SgNBChangeConfirm = { - "SgNBChangeConfirm", - "SgNBChangeConfirm", - &asn_OP_SEQUENCE, - asn_DEF_SgNBChangeConfirm_tags_1, - sizeof(asn_DEF_SgNBChangeConfirm_tags_1) - /sizeof(asn_DEF_SgNBChangeConfirm_tags_1[0]), /* 1 */ - asn_DEF_SgNBChangeConfirm_tags_1, /* Same as above */ - sizeof(asn_DEF_SgNBChangeConfirm_tags_1) - /sizeof(asn_DEF_SgNBChangeConfirm_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_SgNBChangeConfirm_1, - 1, /* Elements count */ - &asn_SPC_SgNBChangeConfirm_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/SgNBChangeConfirm.h b/e2sim/previous/ASN1c/SgNBChangeConfirm.h deleted file mode 100644 index 94de554..0000000 --- a/e2sim/previous/ASN1c/SgNBChangeConfirm.h +++ /dev/null @@ -1,60 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _SgNBChangeConfirm_H_ -#define _SgNBChangeConfirm_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* SgNBChangeConfirm */ -typedef struct SgNBChangeConfirm { - ProtocolIE_Container_119P81_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} SgNBChangeConfirm_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_SgNBChangeConfirm; - -#ifdef __cplusplus -} -#endif - -#endif /* _SgNBChangeConfirm_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/SgNBChangeRefuse.c b/e2sim/previous/ASN1c/SgNBChangeRefuse.c deleted file mode 100644 index cd52675..0000000 --- a/e2sim/previous/ASN1c/SgNBChangeRefuse.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "SgNBChangeRefuse.h" - -static asn_TYPE_member_t asn_MBR_SgNBChangeRefuse_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct SgNBChangeRefuse, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_119P83, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_SgNBChangeRefuse_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_SgNBChangeRefuse_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_SgNBChangeRefuse_specs_1 = { - sizeof(struct SgNBChangeRefuse), - offsetof(struct SgNBChangeRefuse, _asn_ctx), - asn_MAP_SgNBChangeRefuse_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_SgNBChangeRefuse = { - "SgNBChangeRefuse", - "SgNBChangeRefuse", - &asn_OP_SEQUENCE, - asn_DEF_SgNBChangeRefuse_tags_1, - sizeof(asn_DEF_SgNBChangeRefuse_tags_1) - /sizeof(asn_DEF_SgNBChangeRefuse_tags_1[0]), /* 1 */ - asn_DEF_SgNBChangeRefuse_tags_1, /* Same as above */ - sizeof(asn_DEF_SgNBChangeRefuse_tags_1) - /sizeof(asn_DEF_SgNBChangeRefuse_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_SgNBChangeRefuse_1, - 1, /* Elements count */ - &asn_SPC_SgNBChangeRefuse_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/SgNBChangeRefuse.h b/e2sim/previous/ASN1c/SgNBChangeRefuse.h deleted file mode 100644 index c751b47..0000000 --- a/e2sim/previous/ASN1c/SgNBChangeRefuse.h +++ /dev/null @@ -1,60 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _SgNBChangeRefuse_H_ -#define _SgNBChangeRefuse_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* SgNBChangeRefuse */ -typedef struct SgNBChangeRefuse { - ProtocolIE_Container_119P83_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} SgNBChangeRefuse_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_SgNBChangeRefuse; - -#ifdef __cplusplus -} -#endif - -#endif /* _SgNBChangeRefuse_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/SgNBChangeRequired.c b/e2sim/previous/ASN1c/SgNBChangeRequired.c deleted file mode 100644 index dd739d6..0000000 --- a/e2sim/previous/ASN1c/SgNBChangeRequired.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "SgNBChangeRequired.h" - -static asn_TYPE_member_t asn_MBR_SgNBChangeRequired_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct SgNBChangeRequired, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_119P80, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_SgNBChangeRequired_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_SgNBChangeRequired_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_SgNBChangeRequired_specs_1 = { - sizeof(struct SgNBChangeRequired), - offsetof(struct SgNBChangeRequired, _asn_ctx), - asn_MAP_SgNBChangeRequired_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_SgNBChangeRequired = { - "SgNBChangeRequired", - "SgNBChangeRequired", - &asn_OP_SEQUENCE, - asn_DEF_SgNBChangeRequired_tags_1, - sizeof(asn_DEF_SgNBChangeRequired_tags_1) - /sizeof(asn_DEF_SgNBChangeRequired_tags_1[0]), /* 1 */ - asn_DEF_SgNBChangeRequired_tags_1, /* Same as above */ - sizeof(asn_DEF_SgNBChangeRequired_tags_1) - /sizeof(asn_DEF_SgNBChangeRequired_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_SgNBChangeRequired_1, - 1, /* Elements count */ - &asn_SPC_SgNBChangeRequired_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/SgNBChangeRequired.h b/e2sim/previous/ASN1c/SgNBChangeRequired.h deleted file mode 100644 index 1f00a38..0000000 --- a/e2sim/previous/ASN1c/SgNBChangeRequired.h +++ /dev/null @@ -1,60 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _SgNBChangeRequired_H_ -#define _SgNBChangeRequired_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* SgNBChangeRequired */ -typedef struct SgNBChangeRequired { - ProtocolIE_Container_119P80_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} SgNBChangeRequired_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_SgNBChangeRequired; - -#ifdef __cplusplus -} -#endif - -#endif /* _SgNBChangeRequired_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/SgNBCoordinationAssistanceInformation.c b/e2sim/previous/ASN1c/SgNBCoordinationAssistanceInformation.c deleted file mode 100644 index cd8a3c8..0000000 --- a/e2sim/previous/ASN1c/SgNBCoordinationAssistanceInformation.c +++ /dev/null @@ -1,71 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "SgNBCoordinationAssistanceInformation.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_SgNBCoordinationAssistanceInformation_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 0, 0 } /* (0..0,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_SgNBCoordinationAssistanceInformation_value2enum_1[] = { - { 0, 25, "coordination-not-required" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_SgNBCoordinationAssistanceInformation_enum2value_1[] = { - 0 /* coordination-not-required(0) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_SgNBCoordinationAssistanceInformation_specs_1 = { - asn_MAP_SgNBCoordinationAssistanceInformation_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_SgNBCoordinationAssistanceInformation_enum2value_1, /* N => "tag"; sorted by N */ - 1, /* Number of elements in the maps */ - 2, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_SgNBCoordinationAssistanceInformation_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_SgNBCoordinationAssistanceInformation = { - "SgNBCoordinationAssistanceInformation", - "SgNBCoordinationAssistanceInformation", - &asn_OP_NativeEnumerated, - asn_DEF_SgNBCoordinationAssistanceInformation_tags_1, - sizeof(asn_DEF_SgNBCoordinationAssistanceInformation_tags_1) - /sizeof(asn_DEF_SgNBCoordinationAssistanceInformation_tags_1[0]), /* 1 */ - asn_DEF_SgNBCoordinationAssistanceInformation_tags_1, /* Same as above */ - sizeof(asn_DEF_SgNBCoordinationAssistanceInformation_tags_1) - /sizeof(asn_DEF_SgNBCoordinationAssistanceInformation_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_SgNBCoordinationAssistanceInformation_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_SgNBCoordinationAssistanceInformation_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/SgNBCoordinationAssistanceInformation.h b/e2sim/previous/ASN1c/SgNBCoordinationAssistanceInformation.h deleted file mode 100644 index 311769c..0000000 --- a/e2sim/previous/ASN1c/SgNBCoordinationAssistanceInformation.h +++ /dev/null @@ -1,71 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _SgNBCoordinationAssistanceInformation_H_ -#define _SgNBCoordinationAssistanceInformation_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum SgNBCoordinationAssistanceInformation { - SgNBCoordinationAssistanceInformation_coordination_not_required = 0 - /* - * Enumeration is extensible - */ -} e_SgNBCoordinationAssistanceInformation; - -/* SgNBCoordinationAssistanceInformation */ -typedef long SgNBCoordinationAssistanceInformation_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_SgNBCoordinationAssistanceInformation_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_SgNBCoordinationAssistanceInformation; -extern const asn_INTEGER_specifics_t asn_SPC_SgNBCoordinationAssistanceInformation_specs_1; -asn_struct_free_f SgNBCoordinationAssistanceInformation_free; -asn_struct_print_f SgNBCoordinationAssistanceInformation_print; -asn_constr_check_f SgNBCoordinationAssistanceInformation_constraint; -ber_type_decoder_f SgNBCoordinationAssistanceInformation_decode_ber; -der_type_encoder_f SgNBCoordinationAssistanceInformation_encode_der; -xer_type_decoder_f SgNBCoordinationAssistanceInformation_decode_xer; -xer_type_encoder_f SgNBCoordinationAssistanceInformation_encode_xer; -per_type_decoder_f SgNBCoordinationAssistanceInformation_decode_uper; -per_type_encoder_f SgNBCoordinationAssistanceInformation_encode_uper; -per_type_decoder_f SgNBCoordinationAssistanceInformation_decode_aper; -per_type_encoder_f SgNBCoordinationAssistanceInformation_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _SgNBCoordinationAssistanceInformation_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/SgNBCounterCheckRequest.c b/e2sim/previous/ASN1c/SgNBCounterCheckRequest.c deleted file mode 100644 index 9f6e64a..0000000 --- a/e2sim/previous/ASN1c/SgNBCounterCheckRequest.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "SgNBCounterCheckRequest.h" - -static asn_TYPE_member_t asn_MBR_SgNBCounterCheckRequest_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct SgNBCounterCheckRequest, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_119P79, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_SgNBCounterCheckRequest_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_SgNBCounterCheckRequest_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_SgNBCounterCheckRequest_specs_1 = { - sizeof(struct SgNBCounterCheckRequest), - offsetof(struct SgNBCounterCheckRequest, _asn_ctx), - asn_MAP_SgNBCounterCheckRequest_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_SgNBCounterCheckRequest = { - "SgNBCounterCheckRequest", - "SgNBCounterCheckRequest", - &asn_OP_SEQUENCE, - asn_DEF_SgNBCounterCheckRequest_tags_1, - sizeof(asn_DEF_SgNBCounterCheckRequest_tags_1) - /sizeof(asn_DEF_SgNBCounterCheckRequest_tags_1[0]), /* 1 */ - asn_DEF_SgNBCounterCheckRequest_tags_1, /* Same as above */ - sizeof(asn_DEF_SgNBCounterCheckRequest_tags_1) - /sizeof(asn_DEF_SgNBCounterCheckRequest_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_SgNBCounterCheckRequest_1, - 1, /* Elements count */ - &asn_SPC_SgNBCounterCheckRequest_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/SgNBCounterCheckRequest.h b/e2sim/previous/ASN1c/SgNBCounterCheckRequest.h deleted file mode 100644 index 4d071da..0000000 --- a/e2sim/previous/ASN1c/SgNBCounterCheckRequest.h +++ /dev/null @@ -1,60 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _SgNBCounterCheckRequest_H_ -#define _SgNBCounterCheckRequest_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* SgNBCounterCheckRequest */ -typedef struct SgNBCounterCheckRequest { - ProtocolIE_Container_119P79_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} SgNBCounterCheckRequest_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_SgNBCounterCheckRequest; - -#ifdef __cplusplus -} -#endif - -#endif /* _SgNBCounterCheckRequest_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/SgNBModificationConfirm.c b/e2sim/previous/ASN1c/SgNBModificationConfirm.c deleted file mode 100644 index 35283f1..0000000 --- a/e2sim/previous/ASN1c/SgNBModificationConfirm.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "SgNBModificationConfirm.h" - -static asn_TYPE_member_t asn_MBR_SgNBModificationConfirm_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationConfirm, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_119P72, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_SgNBModificationConfirm_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_SgNBModificationConfirm_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_SgNBModificationConfirm_specs_1 = { - sizeof(struct SgNBModificationConfirm), - offsetof(struct SgNBModificationConfirm, _asn_ctx), - asn_MAP_SgNBModificationConfirm_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_SgNBModificationConfirm = { - "SgNBModificationConfirm", - "SgNBModificationConfirm", - &asn_OP_SEQUENCE, - asn_DEF_SgNBModificationConfirm_tags_1, - sizeof(asn_DEF_SgNBModificationConfirm_tags_1) - /sizeof(asn_DEF_SgNBModificationConfirm_tags_1[0]), /* 1 */ - asn_DEF_SgNBModificationConfirm_tags_1, /* Same as above */ - sizeof(asn_DEF_SgNBModificationConfirm_tags_1) - /sizeof(asn_DEF_SgNBModificationConfirm_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_SgNBModificationConfirm_1, - 1, /* Elements count */ - &asn_SPC_SgNBModificationConfirm_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/SgNBModificationConfirm.h b/e2sim/previous/ASN1c/SgNBModificationConfirm.h deleted file mode 100644 index 500a58b..0000000 --- a/e2sim/previous/ASN1c/SgNBModificationConfirm.h +++ /dev/null @@ -1,60 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _SgNBModificationConfirm_H_ -#define _SgNBModificationConfirm_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* SgNBModificationConfirm */ -typedef struct SgNBModificationConfirm { - ProtocolIE_Container_119P72_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} SgNBModificationConfirm_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_SgNBModificationConfirm; - -#ifdef __cplusplus -} -#endif - -#endif /* _SgNBModificationConfirm_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/SgNBModificationRefuse.c b/e2sim/previous/ASN1c/SgNBModificationRefuse.c deleted file mode 100644 index a07f0fa..0000000 --- a/e2sim/previous/ASN1c/SgNBModificationRefuse.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "SgNBModificationRefuse.h" - -static asn_TYPE_member_t asn_MBR_SgNBModificationRefuse_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRefuse, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_119P73, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_SgNBModificationRefuse_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_SgNBModificationRefuse_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_SgNBModificationRefuse_specs_1 = { - sizeof(struct SgNBModificationRefuse), - offsetof(struct SgNBModificationRefuse, _asn_ctx), - asn_MAP_SgNBModificationRefuse_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_SgNBModificationRefuse = { - "SgNBModificationRefuse", - "SgNBModificationRefuse", - &asn_OP_SEQUENCE, - asn_DEF_SgNBModificationRefuse_tags_1, - sizeof(asn_DEF_SgNBModificationRefuse_tags_1) - /sizeof(asn_DEF_SgNBModificationRefuse_tags_1[0]), /* 1 */ - asn_DEF_SgNBModificationRefuse_tags_1, /* Same as above */ - sizeof(asn_DEF_SgNBModificationRefuse_tags_1) - /sizeof(asn_DEF_SgNBModificationRefuse_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_SgNBModificationRefuse_1, - 1, /* Elements count */ - &asn_SPC_SgNBModificationRefuse_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/SgNBModificationRefuse.h b/e2sim/previous/ASN1c/SgNBModificationRefuse.h deleted file mode 100644 index 9667635..0000000 --- a/e2sim/previous/ASN1c/SgNBModificationRefuse.h +++ /dev/null @@ -1,60 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _SgNBModificationRefuse_H_ -#define _SgNBModificationRefuse_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* SgNBModificationRefuse */ -typedef struct SgNBModificationRefuse { - ProtocolIE_Container_119P73_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} SgNBModificationRefuse_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_SgNBModificationRefuse; - -#ifdef __cplusplus -} -#endif - -#endif /* _SgNBModificationRefuse_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/SgNBModificationRequest.c b/e2sim/previous/ASN1c/SgNBModificationRequest.c deleted file mode 100644 index c9e2653..0000000 --- a/e2sim/previous/ASN1c/SgNBModificationRequest.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "SgNBModificationRequest.h" - -static asn_TYPE_member_t asn_MBR_SgNBModificationRequest_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRequest, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_119P68, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_SgNBModificationRequest_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_SgNBModificationRequest_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_SgNBModificationRequest_specs_1 = { - sizeof(struct SgNBModificationRequest), - offsetof(struct SgNBModificationRequest, _asn_ctx), - asn_MAP_SgNBModificationRequest_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_SgNBModificationRequest = { - "SgNBModificationRequest", - "SgNBModificationRequest", - &asn_OP_SEQUENCE, - asn_DEF_SgNBModificationRequest_tags_1, - sizeof(asn_DEF_SgNBModificationRequest_tags_1) - /sizeof(asn_DEF_SgNBModificationRequest_tags_1[0]), /* 1 */ - asn_DEF_SgNBModificationRequest_tags_1, /* Same as above */ - sizeof(asn_DEF_SgNBModificationRequest_tags_1) - /sizeof(asn_DEF_SgNBModificationRequest_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_SgNBModificationRequest_1, - 1, /* Elements count */ - &asn_SPC_SgNBModificationRequest_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/SgNBModificationRequest.h b/e2sim/previous/ASN1c/SgNBModificationRequest.h deleted file mode 100644 index 3c0d293..0000000 --- a/e2sim/previous/ASN1c/SgNBModificationRequest.h +++ /dev/null @@ -1,60 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _SgNBModificationRequest_H_ -#define _SgNBModificationRequest_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* SgNBModificationRequest */ -typedef struct SgNBModificationRequest { - ProtocolIE_Container_119P68_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} SgNBModificationRequest_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_SgNBModificationRequest; - -#ifdef __cplusplus -} -#endif - -#endif /* _SgNBModificationRequest_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/SgNBModificationRequestAcknowledge.c b/e2sim/previous/ASN1c/SgNBModificationRequestAcknowledge.c deleted file mode 100644 index 0474ab1..0000000 --- a/e2sim/previous/ASN1c/SgNBModificationRequestAcknowledge.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "SgNBModificationRequestAcknowledge.h" - -static asn_TYPE_member_t asn_MBR_SgNBModificationRequestAcknowledge_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRequestAcknowledge, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_119P69, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_SgNBModificationRequestAcknowledge_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_SgNBModificationRequestAcknowledge_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_SgNBModificationRequestAcknowledge_specs_1 = { - sizeof(struct SgNBModificationRequestAcknowledge), - offsetof(struct SgNBModificationRequestAcknowledge, _asn_ctx), - asn_MAP_SgNBModificationRequestAcknowledge_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_SgNBModificationRequestAcknowledge = { - "SgNBModificationRequestAcknowledge", - "SgNBModificationRequestAcknowledge", - &asn_OP_SEQUENCE, - asn_DEF_SgNBModificationRequestAcknowledge_tags_1, - sizeof(asn_DEF_SgNBModificationRequestAcknowledge_tags_1) - /sizeof(asn_DEF_SgNBModificationRequestAcknowledge_tags_1[0]), /* 1 */ - asn_DEF_SgNBModificationRequestAcknowledge_tags_1, /* Same as above */ - sizeof(asn_DEF_SgNBModificationRequestAcknowledge_tags_1) - /sizeof(asn_DEF_SgNBModificationRequestAcknowledge_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_SgNBModificationRequestAcknowledge_1, - 1, /* Elements count */ - &asn_SPC_SgNBModificationRequestAcknowledge_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/SgNBModificationRequestAcknowledge.h b/e2sim/previous/ASN1c/SgNBModificationRequestAcknowledge.h deleted file mode 100644 index 9690076..0000000 --- a/e2sim/previous/ASN1c/SgNBModificationRequestAcknowledge.h +++ /dev/null @@ -1,60 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _SgNBModificationRequestAcknowledge_H_ -#define _SgNBModificationRequestAcknowledge_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* SgNBModificationRequestAcknowledge */ -typedef struct SgNBModificationRequestAcknowledge { - ProtocolIE_Container_119P69_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} SgNBModificationRequestAcknowledge_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_SgNBModificationRequestAcknowledge; - -#ifdef __cplusplus -} -#endif - -#endif /* _SgNBModificationRequestAcknowledge_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/SgNBModificationRequestReject.c b/e2sim/previous/ASN1c/SgNBModificationRequestReject.c deleted file mode 100644 index c9c72c3..0000000 --- a/e2sim/previous/ASN1c/SgNBModificationRequestReject.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "SgNBModificationRequestReject.h" - -static asn_TYPE_member_t asn_MBR_SgNBModificationRequestReject_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRequestReject, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_119P70, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_SgNBModificationRequestReject_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_SgNBModificationRequestReject_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_SgNBModificationRequestReject_specs_1 = { - sizeof(struct SgNBModificationRequestReject), - offsetof(struct SgNBModificationRequestReject, _asn_ctx), - asn_MAP_SgNBModificationRequestReject_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_SgNBModificationRequestReject = { - "SgNBModificationRequestReject", - "SgNBModificationRequestReject", - &asn_OP_SEQUENCE, - asn_DEF_SgNBModificationRequestReject_tags_1, - sizeof(asn_DEF_SgNBModificationRequestReject_tags_1) - /sizeof(asn_DEF_SgNBModificationRequestReject_tags_1[0]), /* 1 */ - asn_DEF_SgNBModificationRequestReject_tags_1, /* Same as above */ - sizeof(asn_DEF_SgNBModificationRequestReject_tags_1) - /sizeof(asn_DEF_SgNBModificationRequestReject_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_SgNBModificationRequestReject_1, - 1, /* Elements count */ - &asn_SPC_SgNBModificationRequestReject_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/SgNBModificationRequestReject.h b/e2sim/previous/ASN1c/SgNBModificationRequestReject.h deleted file mode 100644 index dfe1292..0000000 --- a/e2sim/previous/ASN1c/SgNBModificationRequestReject.h +++ /dev/null @@ -1,60 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _SgNBModificationRequestReject_H_ -#define _SgNBModificationRequestReject_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* SgNBModificationRequestReject */ -typedef struct SgNBModificationRequestReject { - ProtocolIE_Container_119P70_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} SgNBModificationRequestReject_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_SgNBModificationRequestReject; - -#ifdef __cplusplus -} -#endif - -#endif /* _SgNBModificationRequestReject_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/SgNBModificationRequired.c b/e2sim/previous/ASN1c/SgNBModificationRequired.c deleted file mode 100644 index 0dcefa0..0000000 --- a/e2sim/previous/ASN1c/SgNBModificationRequired.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "SgNBModificationRequired.h" - -static asn_TYPE_member_t asn_MBR_SgNBModificationRequired_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct SgNBModificationRequired, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_119P71, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_SgNBModificationRequired_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_SgNBModificationRequired_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_SgNBModificationRequired_specs_1 = { - sizeof(struct SgNBModificationRequired), - offsetof(struct SgNBModificationRequired, _asn_ctx), - asn_MAP_SgNBModificationRequired_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_SgNBModificationRequired = { - "SgNBModificationRequired", - "SgNBModificationRequired", - &asn_OP_SEQUENCE, - asn_DEF_SgNBModificationRequired_tags_1, - sizeof(asn_DEF_SgNBModificationRequired_tags_1) - /sizeof(asn_DEF_SgNBModificationRequired_tags_1[0]), /* 1 */ - asn_DEF_SgNBModificationRequired_tags_1, /* Same as above */ - sizeof(asn_DEF_SgNBModificationRequired_tags_1) - /sizeof(asn_DEF_SgNBModificationRequired_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_SgNBModificationRequired_1, - 1, /* Elements count */ - &asn_SPC_SgNBModificationRequired_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/SgNBModificationRequired.h b/e2sim/previous/ASN1c/SgNBModificationRequired.h deleted file mode 100644 index 3d508bd..0000000 --- a/e2sim/previous/ASN1c/SgNBModificationRequired.h +++ /dev/null @@ -1,60 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _SgNBModificationRequired_H_ -#define _SgNBModificationRequired_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* SgNBModificationRequired */ -typedef struct SgNBModificationRequired { - ProtocolIE_Container_119P71_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} SgNBModificationRequired_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_SgNBModificationRequired; - -#ifdef __cplusplus -} -#endif - -#endif /* _SgNBModificationRequired_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/SgNBReconfigurationComplete.c b/e2sim/previous/ASN1c/SgNBReconfigurationComplete.c deleted file mode 100644 index 737ad5a..0000000 --- a/e2sim/previous/ASN1c/SgNBReconfigurationComplete.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "SgNBReconfigurationComplete.h" - -static asn_TYPE_member_t asn_MBR_SgNBReconfigurationComplete_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct SgNBReconfigurationComplete, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_119P67, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_SgNBReconfigurationComplete_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_SgNBReconfigurationComplete_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_SgNBReconfigurationComplete_specs_1 = { - sizeof(struct SgNBReconfigurationComplete), - offsetof(struct SgNBReconfigurationComplete, _asn_ctx), - asn_MAP_SgNBReconfigurationComplete_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_SgNBReconfigurationComplete = { - "SgNBReconfigurationComplete", - "SgNBReconfigurationComplete", - &asn_OP_SEQUENCE, - asn_DEF_SgNBReconfigurationComplete_tags_1, - sizeof(asn_DEF_SgNBReconfigurationComplete_tags_1) - /sizeof(asn_DEF_SgNBReconfigurationComplete_tags_1[0]), /* 1 */ - asn_DEF_SgNBReconfigurationComplete_tags_1, /* Same as above */ - sizeof(asn_DEF_SgNBReconfigurationComplete_tags_1) - /sizeof(asn_DEF_SgNBReconfigurationComplete_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_SgNBReconfigurationComplete_1, - 1, /* Elements count */ - &asn_SPC_SgNBReconfigurationComplete_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/SgNBReconfigurationComplete.h b/e2sim/previous/ASN1c/SgNBReconfigurationComplete.h deleted file mode 100644 index 4d68f11..0000000 --- a/e2sim/previous/ASN1c/SgNBReconfigurationComplete.h +++ /dev/null @@ -1,60 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _SgNBReconfigurationComplete_H_ -#define _SgNBReconfigurationComplete_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* SgNBReconfigurationComplete */ -typedef struct SgNBReconfigurationComplete { - ProtocolIE_Container_119P67_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} SgNBReconfigurationComplete_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_SgNBReconfigurationComplete; - -#ifdef __cplusplus -} -#endif - -#endif /* _SgNBReconfigurationComplete_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/SgNBReleaseConfirm.c b/e2sim/previous/ASN1c/SgNBReleaseConfirm.c deleted file mode 100644 index 8a0f401..0000000 --- a/e2sim/previous/ASN1c/SgNBReleaseConfirm.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "SgNBReleaseConfirm.h" - -static asn_TYPE_member_t asn_MBR_SgNBReleaseConfirm_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct SgNBReleaseConfirm, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_119P78, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_SgNBReleaseConfirm_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_SgNBReleaseConfirm_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_SgNBReleaseConfirm_specs_1 = { - sizeof(struct SgNBReleaseConfirm), - offsetof(struct SgNBReleaseConfirm, _asn_ctx), - asn_MAP_SgNBReleaseConfirm_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_SgNBReleaseConfirm = { - "SgNBReleaseConfirm", - "SgNBReleaseConfirm", - &asn_OP_SEQUENCE, - asn_DEF_SgNBReleaseConfirm_tags_1, - sizeof(asn_DEF_SgNBReleaseConfirm_tags_1) - /sizeof(asn_DEF_SgNBReleaseConfirm_tags_1[0]), /* 1 */ - asn_DEF_SgNBReleaseConfirm_tags_1, /* Same as above */ - sizeof(asn_DEF_SgNBReleaseConfirm_tags_1) - /sizeof(asn_DEF_SgNBReleaseConfirm_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_SgNBReleaseConfirm_1, - 1, /* Elements count */ - &asn_SPC_SgNBReleaseConfirm_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/SgNBReleaseConfirm.h b/e2sim/previous/ASN1c/SgNBReleaseConfirm.h deleted file mode 100644 index 39ff250..0000000 --- a/e2sim/previous/ASN1c/SgNBReleaseConfirm.h +++ /dev/null @@ -1,60 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _SgNBReleaseConfirm_H_ -#define _SgNBReleaseConfirm_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* SgNBReleaseConfirm */ -typedef struct SgNBReleaseConfirm { - ProtocolIE_Container_119P78_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} SgNBReleaseConfirm_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_SgNBReleaseConfirm; - -#ifdef __cplusplus -} -#endif - -#endif /* _SgNBReleaseConfirm_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/SgNBReleaseRequest.c b/e2sim/previous/ASN1c/SgNBReleaseRequest.c deleted file mode 100644 index aaa47e2..0000000 --- a/e2sim/previous/ASN1c/SgNBReleaseRequest.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "SgNBReleaseRequest.h" - -static asn_TYPE_member_t asn_MBR_SgNBReleaseRequest_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct SgNBReleaseRequest, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_119P74, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_SgNBReleaseRequest_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_SgNBReleaseRequest_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_SgNBReleaseRequest_specs_1 = { - sizeof(struct SgNBReleaseRequest), - offsetof(struct SgNBReleaseRequest, _asn_ctx), - asn_MAP_SgNBReleaseRequest_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_SgNBReleaseRequest = { - "SgNBReleaseRequest", - "SgNBReleaseRequest", - &asn_OP_SEQUENCE, - asn_DEF_SgNBReleaseRequest_tags_1, - sizeof(asn_DEF_SgNBReleaseRequest_tags_1) - /sizeof(asn_DEF_SgNBReleaseRequest_tags_1[0]), /* 1 */ - asn_DEF_SgNBReleaseRequest_tags_1, /* Same as above */ - sizeof(asn_DEF_SgNBReleaseRequest_tags_1) - /sizeof(asn_DEF_SgNBReleaseRequest_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_SgNBReleaseRequest_1, - 1, /* Elements count */ - &asn_SPC_SgNBReleaseRequest_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/SgNBReleaseRequest.h b/e2sim/previous/ASN1c/SgNBReleaseRequest.h deleted file mode 100644 index 26ffb7c..0000000 --- a/e2sim/previous/ASN1c/SgNBReleaseRequest.h +++ /dev/null @@ -1,60 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _SgNBReleaseRequest_H_ -#define _SgNBReleaseRequest_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* SgNBReleaseRequest */ -typedef struct SgNBReleaseRequest { - ProtocolIE_Container_119P74_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} SgNBReleaseRequest_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_SgNBReleaseRequest; - -#ifdef __cplusplus -} -#endif - -#endif /* _SgNBReleaseRequest_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/SgNBReleaseRequestAcknowledge.c b/e2sim/previous/ASN1c/SgNBReleaseRequestAcknowledge.c deleted file mode 100644 index 318feef..0000000 --- a/e2sim/previous/ASN1c/SgNBReleaseRequestAcknowledge.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "SgNBReleaseRequestAcknowledge.h" - -static asn_TYPE_member_t asn_MBR_SgNBReleaseRequestAcknowledge_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct SgNBReleaseRequestAcknowledge, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_119P75, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_SgNBReleaseRequestAcknowledge_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_SgNBReleaseRequestAcknowledge_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_SgNBReleaseRequestAcknowledge_specs_1 = { - sizeof(struct SgNBReleaseRequestAcknowledge), - offsetof(struct SgNBReleaseRequestAcknowledge, _asn_ctx), - asn_MAP_SgNBReleaseRequestAcknowledge_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_SgNBReleaseRequestAcknowledge = { - "SgNBReleaseRequestAcknowledge", - "SgNBReleaseRequestAcknowledge", - &asn_OP_SEQUENCE, - asn_DEF_SgNBReleaseRequestAcknowledge_tags_1, - sizeof(asn_DEF_SgNBReleaseRequestAcknowledge_tags_1) - /sizeof(asn_DEF_SgNBReleaseRequestAcknowledge_tags_1[0]), /* 1 */ - asn_DEF_SgNBReleaseRequestAcknowledge_tags_1, /* Same as above */ - sizeof(asn_DEF_SgNBReleaseRequestAcknowledge_tags_1) - /sizeof(asn_DEF_SgNBReleaseRequestAcknowledge_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_SgNBReleaseRequestAcknowledge_1, - 1, /* Elements count */ - &asn_SPC_SgNBReleaseRequestAcknowledge_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/SgNBReleaseRequestAcknowledge.h b/e2sim/previous/ASN1c/SgNBReleaseRequestAcknowledge.h deleted file mode 100644 index f7a09c6..0000000 --- a/e2sim/previous/ASN1c/SgNBReleaseRequestAcknowledge.h +++ /dev/null @@ -1,60 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _SgNBReleaseRequestAcknowledge_H_ -#define _SgNBReleaseRequestAcknowledge_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* SgNBReleaseRequestAcknowledge */ -typedef struct SgNBReleaseRequestAcknowledge { - ProtocolIE_Container_119P75_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} SgNBReleaseRequestAcknowledge_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_SgNBReleaseRequestAcknowledge; - -#ifdef __cplusplus -} -#endif - -#endif /* _SgNBReleaseRequestAcknowledge_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/SgNBReleaseRequestReject.c b/e2sim/previous/ASN1c/SgNBReleaseRequestReject.c deleted file mode 100644 index 3cb0e9c..0000000 --- a/e2sim/previous/ASN1c/SgNBReleaseRequestReject.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "SgNBReleaseRequestReject.h" - -static asn_TYPE_member_t asn_MBR_SgNBReleaseRequestReject_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct SgNBReleaseRequestReject, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_119P76, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_SgNBReleaseRequestReject_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_SgNBReleaseRequestReject_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_SgNBReleaseRequestReject_specs_1 = { - sizeof(struct SgNBReleaseRequestReject), - offsetof(struct SgNBReleaseRequestReject, _asn_ctx), - asn_MAP_SgNBReleaseRequestReject_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_SgNBReleaseRequestReject = { - "SgNBReleaseRequestReject", - "SgNBReleaseRequestReject", - &asn_OP_SEQUENCE, - asn_DEF_SgNBReleaseRequestReject_tags_1, - sizeof(asn_DEF_SgNBReleaseRequestReject_tags_1) - /sizeof(asn_DEF_SgNBReleaseRequestReject_tags_1[0]), /* 1 */ - asn_DEF_SgNBReleaseRequestReject_tags_1, /* Same as above */ - sizeof(asn_DEF_SgNBReleaseRequestReject_tags_1) - /sizeof(asn_DEF_SgNBReleaseRequestReject_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_SgNBReleaseRequestReject_1, - 1, /* Elements count */ - &asn_SPC_SgNBReleaseRequestReject_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/SgNBReleaseRequestReject.h b/e2sim/previous/ASN1c/SgNBReleaseRequestReject.h deleted file mode 100644 index 59df843..0000000 --- a/e2sim/previous/ASN1c/SgNBReleaseRequestReject.h +++ /dev/null @@ -1,60 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _SgNBReleaseRequestReject_H_ -#define _SgNBReleaseRequestReject_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* SgNBReleaseRequestReject */ -typedef struct SgNBReleaseRequestReject { - ProtocolIE_Container_119P76_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} SgNBReleaseRequestReject_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_SgNBReleaseRequestReject; - -#ifdef __cplusplus -} -#endif - -#endif /* _SgNBReleaseRequestReject_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/SgNBReleaseRequired.c b/e2sim/previous/ASN1c/SgNBReleaseRequired.c deleted file mode 100644 index 6b3b4dc..0000000 --- a/e2sim/previous/ASN1c/SgNBReleaseRequired.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "SgNBReleaseRequired.h" - -static asn_TYPE_member_t asn_MBR_SgNBReleaseRequired_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct SgNBReleaseRequired, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_119P77, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_SgNBReleaseRequired_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_SgNBReleaseRequired_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_SgNBReleaseRequired_specs_1 = { - sizeof(struct SgNBReleaseRequired), - offsetof(struct SgNBReleaseRequired, _asn_ctx), - asn_MAP_SgNBReleaseRequired_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_SgNBReleaseRequired = { - "SgNBReleaseRequired", - "SgNBReleaseRequired", - &asn_OP_SEQUENCE, - asn_DEF_SgNBReleaseRequired_tags_1, - sizeof(asn_DEF_SgNBReleaseRequired_tags_1) - /sizeof(asn_DEF_SgNBReleaseRequired_tags_1[0]), /* 1 */ - asn_DEF_SgNBReleaseRequired_tags_1, /* Same as above */ - sizeof(asn_DEF_SgNBReleaseRequired_tags_1) - /sizeof(asn_DEF_SgNBReleaseRequired_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_SgNBReleaseRequired_1, - 1, /* Elements count */ - &asn_SPC_SgNBReleaseRequired_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/SgNBReleaseRequired.h b/e2sim/previous/ASN1c/SgNBReleaseRequired.h deleted file mode 100644 index af1683b..0000000 --- a/e2sim/previous/ASN1c/SgNBReleaseRequired.h +++ /dev/null @@ -1,60 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _SgNBReleaseRequired_H_ -#define _SgNBReleaseRequired_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* SgNBReleaseRequired */ -typedef struct SgNBReleaseRequired { - ProtocolIE_Container_119P77_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} SgNBReleaseRequired_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_SgNBReleaseRequired; - -#ifdef __cplusplus -} -#endif - -#endif /* _SgNBReleaseRequired_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/SgNBResourceCoordinationInformation.c b/e2sim/previous/ASN1c/SgNBResourceCoordinationInformation.c deleted file mode 100644 index 17eb663..0000000 --- a/e2sim/previous/ASN1c/SgNBResourceCoordinationInformation.c +++ /dev/null @@ -1,173 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "SgNBResourceCoordinationInformation.h" - -#include "ProtocolExtensionContainer.h" -static int -memb_uLCoordinationInformation_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if(st->size > 0) { - /* Size in bits */ - size = 8 * st->size - (st->bits_unused & 0x07); - } else { - size = 0; - } - - if((size >= 6 && size <= 4400)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_dLCoordinationInformation_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if(st->size > 0) { - /* Size in bits */ - size = 8 * st->size - (st->bits_unused & 0x07); - } else { - size = 0; - } - - if((size >= 6 && size <= 4400)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_per_constraints_t asn_PER_memb_uLCoordinationInformation_constr_3 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED | APC_EXTENSIBLE, 13, 13, 6, 4400 } /* (SIZE(6..4400,...)) */, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_dLCoordinationInformation_constr_4 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED | APC_EXTENSIBLE, 13, 13, 6, 4400 } /* (SIZE(6..4400,...)) */, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_SgNBResourceCoordinationInformation_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct SgNBResourceCoordinationInformation, nR_CGI), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NRCGI, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "nR-CGI" - }, - { ATF_NOFLAGS, 0, offsetof(struct SgNBResourceCoordinationInformation, uLCoordinationInformation), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_BIT_STRING, - 0, - { 0, &asn_PER_memb_uLCoordinationInformation_constr_3, memb_uLCoordinationInformation_constraint_1 }, - 0, 0, /* No default value */ - "uLCoordinationInformation" - }, - { ATF_POINTER, 2, offsetof(struct SgNBResourceCoordinationInformation, dLCoordinationInformation), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_BIT_STRING, - 0, - { 0, &asn_PER_memb_dLCoordinationInformation_constr_4, memb_dLCoordinationInformation_constraint_1 }, - 0, 0, /* No default value */ - "dLCoordinationInformation" - }, - { ATF_POINTER, 1, offsetof(struct SgNBResourceCoordinationInformation, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P193, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_SgNBResourceCoordinationInformation_oms_1[] = { 2, 3 }; -static const ber_tlv_tag_t asn_DEF_SgNBResourceCoordinationInformation_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_SgNBResourceCoordinationInformation_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nR-CGI */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* uLCoordinationInformation */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* dLCoordinationInformation */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_SgNBResourceCoordinationInformation_specs_1 = { - sizeof(struct SgNBResourceCoordinationInformation), - offsetof(struct SgNBResourceCoordinationInformation, _asn_ctx), - asn_MAP_SgNBResourceCoordinationInformation_tag2el_1, - 4, /* Count of tags in the map */ - asn_MAP_SgNBResourceCoordinationInformation_oms_1, /* Optional members */ - 2, 0, /* Root/Additions */ - 4, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_SgNBResourceCoordinationInformation = { - "SgNBResourceCoordinationInformation", - "SgNBResourceCoordinationInformation", - &asn_OP_SEQUENCE, - asn_DEF_SgNBResourceCoordinationInformation_tags_1, - sizeof(asn_DEF_SgNBResourceCoordinationInformation_tags_1) - /sizeof(asn_DEF_SgNBResourceCoordinationInformation_tags_1[0]), /* 1 */ - asn_DEF_SgNBResourceCoordinationInformation_tags_1, /* Same as above */ - sizeof(asn_DEF_SgNBResourceCoordinationInformation_tags_1) - /sizeof(asn_DEF_SgNBResourceCoordinationInformation_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_SgNBResourceCoordinationInformation_1, - 4, /* Elements count */ - &asn_SPC_SgNBResourceCoordinationInformation_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/SgNBResourceCoordinationInformation.h b/e2sim/previous/ASN1c/SgNBResourceCoordinationInformation.h deleted file mode 100644 index 3607bd7..0000000 --- a/e2sim/previous/ASN1c/SgNBResourceCoordinationInformation.h +++ /dev/null @@ -1,69 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _SgNBResourceCoordinationInformation_H_ -#define _SgNBResourceCoordinationInformation_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NRCGI.h" -#include "BIT_STRING.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* SgNBResourceCoordinationInformation */ -typedef struct SgNBResourceCoordinationInformation { - NRCGI_t nR_CGI; - BIT_STRING_t uLCoordinationInformation; - BIT_STRING_t *dLCoordinationInformation; /* OPTIONAL */ - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} SgNBResourceCoordinationInformation_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_SgNBResourceCoordinationInformation; -extern asn_SEQUENCE_specifics_t asn_SPC_SgNBResourceCoordinationInformation_specs_1; -extern asn_TYPE_member_t asn_MBR_SgNBResourceCoordinationInformation_1[4]; - -#ifdef __cplusplus -} -#endif - -#endif /* _SgNBResourceCoordinationInformation_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/SgNBSecurityKey.c b/e2sim/previous/ASN1c/SgNBSecurityKey.c deleted file mode 100644 index 9474063..0000000 --- a/e2sim/previous/ASN1c/SgNBSecurityKey.c +++ /dev/null @@ -1,85 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "SgNBSecurityKey.h" - -int -SgNBSecurityKey_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if(st->size > 0) { - /* Size in bits */ - size = 8 * st->size - (st->bits_unused & 0x07); - } else { - size = 0; - } - - if((size == 256)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using BIT_STRING, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_SgNBSecurityKey_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 0, 0, 256, 256 } /* (SIZE(256..256)) */, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_SgNBSecurityKey_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_SgNBSecurityKey = { - "SgNBSecurityKey", - "SgNBSecurityKey", - &asn_OP_BIT_STRING, - asn_DEF_SgNBSecurityKey_tags_1, - sizeof(asn_DEF_SgNBSecurityKey_tags_1) - /sizeof(asn_DEF_SgNBSecurityKey_tags_1[0]), /* 1 */ - asn_DEF_SgNBSecurityKey_tags_1, /* Same as above */ - sizeof(asn_DEF_SgNBSecurityKey_tags_1) - /sizeof(asn_DEF_SgNBSecurityKey_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_SgNBSecurityKey_constr_1, SgNBSecurityKey_constraint }, - 0, 0, /* No members */ - &asn_SPC_BIT_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/SgNBSecurityKey.h b/e2sim/previous/ASN1c/SgNBSecurityKey.h deleted file mode 100644 index fc52922..0000000 --- a/e2sim/previous/ASN1c/SgNBSecurityKey.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _SgNBSecurityKey_H_ -#define _SgNBSecurityKey_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "BIT_STRING.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* SgNBSecurityKey */ -typedef BIT_STRING_t SgNBSecurityKey_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_SgNBSecurityKey_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_SgNBSecurityKey; -asn_struct_free_f SgNBSecurityKey_free; -asn_struct_print_f SgNBSecurityKey_print; -asn_constr_check_f SgNBSecurityKey_constraint; -ber_type_decoder_f SgNBSecurityKey_decode_ber; -der_type_encoder_f SgNBSecurityKey_encode_der; -xer_type_decoder_f SgNBSecurityKey_decode_xer; -xer_type_encoder_f SgNBSecurityKey_encode_xer; -per_type_decoder_f SgNBSecurityKey_decode_uper; -per_type_encoder_f SgNBSecurityKey_encode_uper; -per_type_decoder_f SgNBSecurityKey_decode_aper; -per_type_encoder_f SgNBSecurityKey_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _SgNBSecurityKey_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/SgNBtoMeNBContainer.c b/e2sim/previous/ASN1c/SgNBtoMeNBContainer.c deleted file mode 100644 index 49363a8..0000000 --- a/e2sim/previous/ASN1c/SgNBtoMeNBContainer.c +++ /dev/null @@ -1,49 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "SgNBtoMeNBContainer.h" - -/* - * This type is implemented using OCTET_STRING, - * so here we adjust the DEF accordingly. - */ -static const ber_tlv_tag_t asn_DEF_SgNBtoMeNBContainer_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_SgNBtoMeNBContainer = { - "SgNBtoMeNBContainer", - "SgNBtoMeNBContainer", - &asn_OP_OCTET_STRING, - asn_DEF_SgNBtoMeNBContainer_tags_1, - sizeof(asn_DEF_SgNBtoMeNBContainer_tags_1) - /sizeof(asn_DEF_SgNBtoMeNBContainer_tags_1[0]), /* 1 */ - asn_DEF_SgNBtoMeNBContainer_tags_1, /* Same as above */ - sizeof(asn_DEF_SgNBtoMeNBContainer_tags_1) - /sizeof(asn_DEF_SgNBtoMeNBContainer_tags_1[0]), /* 1 */ - { 0, 0, OCTET_STRING_constraint }, - 0, 0, /* No members */ - &asn_SPC_OCTET_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/SgNBtoMeNBContainer.h b/e2sim/previous/ASN1c/SgNBtoMeNBContainer.h deleted file mode 100644 index c06dff7..0000000 --- a/e2sim/previous/ASN1c/SgNBtoMeNBContainer.h +++ /dev/null @@ -1,61 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _SgNBtoMeNBContainer_H_ -#define _SgNBtoMeNBContainer_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "OCTET_STRING.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* SgNBtoMeNBContainer */ -typedef OCTET_STRING_t SgNBtoMeNBContainer_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_SgNBtoMeNBContainer; -asn_struct_free_f SgNBtoMeNBContainer_free; -asn_struct_print_f SgNBtoMeNBContainer_print; -asn_constr_check_f SgNBtoMeNBContainer_constraint; -ber_type_decoder_f SgNBtoMeNBContainer_decode_ber; -der_type_encoder_f SgNBtoMeNBContainer_encode_der; -xer_type_decoder_f SgNBtoMeNBContainer_decode_xer; -xer_type_encoder_f SgNBtoMeNBContainer_encode_xer; -per_type_decoder_f SgNBtoMeNBContainer_decode_uper; -per_type_encoder_f SgNBtoMeNBContainer_encode_uper; -per_type_decoder_f SgNBtoMeNBContainer_decode_aper; -per_type_encoder_f SgNBtoMeNBContainer_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _SgNBtoMeNBContainer_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/SharedResourceType.c b/e2sim/previous/ASN1c/SharedResourceType.c deleted file mode 100644 index 203ce2d..0000000 --- a/e2sim/previous/ASN1c/SharedResourceType.c +++ /dev/null @@ -1,82 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "SharedResourceType.h" - -#include "ULOnlySharing.h" -#include "ULandDLSharing.h" -asn_per_constraints_t asn_PER_type_SharedResourceType_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_SharedResourceType_1[] = { - { ATF_POINTER, 0, offsetof(struct SharedResourceType, choice.uLOnlySharing), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ULOnlySharing, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "uLOnlySharing" - }, - { ATF_POINTER, 0, offsetof(struct SharedResourceType, choice.uLandDLSharing), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ULandDLSharing, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "uLandDLSharing" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_SharedResourceType_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* uLOnlySharing */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* uLandDLSharing */ -}; -asn_CHOICE_specifics_t asn_SPC_SharedResourceType_specs_1 = { - sizeof(struct SharedResourceType), - offsetof(struct SharedResourceType, _asn_ctx), - offsetof(struct SharedResourceType, present), - sizeof(((struct SharedResourceType *)0)->present), - asn_MAP_SharedResourceType_tag2el_1, - 2, /* Count of tags in the map */ - 0, 0, - 2 /* Extensions start */ -}; -asn_TYPE_descriptor_t asn_DEF_SharedResourceType = { - "SharedResourceType", - "SharedResourceType", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, &asn_PER_type_SharedResourceType_constr_1, CHOICE_constraint }, - asn_MBR_SharedResourceType_1, - 2, /* Elements count */ - &asn_SPC_SharedResourceType_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/SharedResourceType.h b/e2sim/previous/ASN1c/SharedResourceType.h deleted file mode 100644 index f81b273..0000000 --- a/e2sim/previous/ASN1c/SharedResourceType.h +++ /dev/null @@ -1,79 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _SharedResourceType_H_ -#define _SharedResourceType_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "constr_CHOICE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum SharedResourceType_PR { - SharedResourceType_PR_NOTHING, /* No components present */ - SharedResourceType_PR_uLOnlySharing, - SharedResourceType_PR_uLandDLSharing - /* Extensions may appear below */ - -} SharedResourceType_PR; - -/* Forward declarations */ -struct ULOnlySharing; -struct ULandDLSharing; - -/* SharedResourceType */ -typedef struct SharedResourceType { - SharedResourceType_PR present; - union SharedResourceType_u { - struct ULOnlySharing *uLOnlySharing; - struct ULandDLSharing *uLandDLSharing; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} SharedResourceType_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_SharedResourceType; -extern asn_CHOICE_specifics_t asn_SPC_SharedResourceType_specs_1; -extern asn_TYPE_member_t asn_MBR_SharedResourceType_1[2]; -extern asn_per_constraints_t asn_PER_type_SharedResourceType_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _SharedResourceType_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/ShortMAC-I.c b/e2sim/previous/ASN1c/ShortMAC-I.c deleted file mode 100644 index b5c70d0..0000000 --- a/e2sim/previous/ASN1c/ShortMAC-I.c +++ /dev/null @@ -1,85 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "ShortMAC-I.h" - -int -ShortMAC_I_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if(st->size > 0) { - /* Size in bits */ - size = 8 * st->size - (st->bits_unused & 0x07); - } else { - size = 0; - } - - if((size == 16)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using BIT_STRING, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_ShortMAC_I_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 0, 0, 16, 16 } /* (SIZE(16..16)) */, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_ShortMAC_I_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ShortMAC_I = { - "ShortMAC-I", - "ShortMAC-I", - &asn_OP_BIT_STRING, - asn_DEF_ShortMAC_I_tags_1, - sizeof(asn_DEF_ShortMAC_I_tags_1) - /sizeof(asn_DEF_ShortMAC_I_tags_1[0]), /* 1 */ - asn_DEF_ShortMAC_I_tags_1, /* Same as above */ - sizeof(asn_DEF_ShortMAC_I_tags_1) - /sizeof(asn_DEF_ShortMAC_I_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_ShortMAC_I_constr_1, ShortMAC_I_constraint }, - 0, 0, /* No members */ - &asn_SPC_BIT_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/ShortMAC-I.h b/e2sim/previous/ASN1c/ShortMAC-I.h deleted file mode 100644 index 2f85fbd..0000000 --- a/e2sim/previous/ASN1c/ShortMAC-I.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _ShortMAC_I_H_ -#define _ShortMAC_I_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "BIT_STRING.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* ShortMAC-I */ -typedef BIT_STRING_t ShortMAC_I_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_ShortMAC_I_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_ShortMAC_I; -asn_struct_free_f ShortMAC_I_free; -asn_struct_print_f ShortMAC_I_print; -asn_constr_check_f ShortMAC_I_constraint; -ber_type_decoder_f ShortMAC_I_decode_ber; -der_type_encoder_f ShortMAC_I_encode_der; -xer_type_decoder_f ShortMAC_I_decode_xer; -xer_type_encoder_f ShortMAC_I_encode_xer; -per_type_decoder_f ShortMAC_I_decode_uper; -per_type_encoder_f ShortMAC_I_encode_uper; -per_type_decoder_f ShortMAC_I_decode_aper; -per_type_encoder_f ShortMAC_I_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _ShortMAC_I_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/SourceOfUEActivityBehaviourInformation.c b/e2sim/previous/ASN1c/SourceOfUEActivityBehaviourInformation.c deleted file mode 100644 index 491f242..0000000 --- a/e2sim/previous/ASN1c/SourceOfUEActivityBehaviourInformation.c +++ /dev/null @@ -1,73 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "SourceOfUEActivityBehaviourInformation.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_SourceOfUEActivityBehaviourInformation_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_SourceOfUEActivityBehaviourInformation_value2enum_1[] = { - { 0, 24, "subscription-information" }, - { 1, 10, "statistics" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_SourceOfUEActivityBehaviourInformation_enum2value_1[] = { - 1, /* statistics(1) */ - 0 /* subscription-information(0) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_SourceOfUEActivityBehaviourInformation_specs_1 = { - asn_MAP_SourceOfUEActivityBehaviourInformation_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_SourceOfUEActivityBehaviourInformation_enum2value_1, /* N => "tag"; sorted by N */ - 2, /* Number of elements in the maps */ - 3, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_SourceOfUEActivityBehaviourInformation_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_SourceOfUEActivityBehaviourInformation = { - "SourceOfUEActivityBehaviourInformation", - "SourceOfUEActivityBehaviourInformation", - &asn_OP_NativeEnumerated, - asn_DEF_SourceOfUEActivityBehaviourInformation_tags_1, - sizeof(asn_DEF_SourceOfUEActivityBehaviourInformation_tags_1) - /sizeof(asn_DEF_SourceOfUEActivityBehaviourInformation_tags_1[0]), /* 1 */ - asn_DEF_SourceOfUEActivityBehaviourInformation_tags_1, /* Same as above */ - sizeof(asn_DEF_SourceOfUEActivityBehaviourInformation_tags_1) - /sizeof(asn_DEF_SourceOfUEActivityBehaviourInformation_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_SourceOfUEActivityBehaviourInformation_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_SourceOfUEActivityBehaviourInformation_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/SourceOfUEActivityBehaviourInformation.h b/e2sim/previous/ASN1c/SourceOfUEActivityBehaviourInformation.h deleted file mode 100644 index 90d3add..0000000 --- a/e2sim/previous/ASN1c/SourceOfUEActivityBehaviourInformation.h +++ /dev/null @@ -1,72 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _SourceOfUEActivityBehaviourInformation_H_ -#define _SourceOfUEActivityBehaviourInformation_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum SourceOfUEActivityBehaviourInformation { - SourceOfUEActivityBehaviourInformation_subscription_information = 0, - SourceOfUEActivityBehaviourInformation_statistics = 1 - /* - * Enumeration is extensible - */ -} e_SourceOfUEActivityBehaviourInformation; - -/* SourceOfUEActivityBehaviourInformation */ -typedef long SourceOfUEActivityBehaviourInformation_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_SourceOfUEActivityBehaviourInformation_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_SourceOfUEActivityBehaviourInformation; -extern const asn_INTEGER_specifics_t asn_SPC_SourceOfUEActivityBehaviourInformation_specs_1; -asn_struct_free_f SourceOfUEActivityBehaviourInformation_free; -asn_struct_print_f SourceOfUEActivityBehaviourInformation_print; -asn_constr_check_f SourceOfUEActivityBehaviourInformation_constraint; -ber_type_decoder_f SourceOfUEActivityBehaviourInformation_decode_ber; -der_type_encoder_f SourceOfUEActivityBehaviourInformation_encode_der; -xer_type_decoder_f SourceOfUEActivityBehaviourInformation_decode_xer; -xer_type_encoder_f SourceOfUEActivityBehaviourInformation_encode_xer; -per_type_decoder_f SourceOfUEActivityBehaviourInformation_decode_uper; -per_type_encoder_f SourceOfUEActivityBehaviourInformation_encode_uper; -per_type_decoder_f SourceOfUEActivityBehaviourInformation_decode_aper; -per_type_encoder_f SourceOfUEActivityBehaviourInformation_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _SourceOfUEActivityBehaviourInformation_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/SpecialSubframe-Info.c b/e2sim/previous/ASN1c/SpecialSubframe-Info.c deleted file mode 100644 index ad4bb53..0000000 --- a/e2sim/previous/ASN1c/SpecialSubframe-Info.c +++ /dev/null @@ -1,101 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "SpecialSubframe-Info.h" - -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_SpecialSubframe_Info_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct SpecialSubframe_Info, specialSubframePatterns), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_SpecialSubframePatterns, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "specialSubframePatterns" - }, - { ATF_NOFLAGS, 0, offsetof(struct SpecialSubframe_Info, cyclicPrefixDL), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_CyclicPrefixDL, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "cyclicPrefixDL" - }, - { ATF_NOFLAGS, 0, offsetof(struct SpecialSubframe_Info, cyclicPrefixUL), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_CyclicPrefixUL, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "cyclicPrefixUL" - }, - { ATF_POINTER, 1, offsetof(struct SpecialSubframe_Info, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P194, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_SpecialSubframe_Info_oms_1[] = { 3 }; -static const ber_tlv_tag_t asn_DEF_SpecialSubframe_Info_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_SpecialSubframe_Info_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* specialSubframePatterns */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* cyclicPrefixDL */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* cyclicPrefixUL */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_SpecialSubframe_Info_specs_1 = { - sizeof(struct SpecialSubframe_Info), - offsetof(struct SpecialSubframe_Info, _asn_ctx), - asn_MAP_SpecialSubframe_Info_tag2el_1, - 4, /* Count of tags in the map */ - asn_MAP_SpecialSubframe_Info_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 4, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_SpecialSubframe_Info = { - "SpecialSubframe-Info", - "SpecialSubframe-Info", - &asn_OP_SEQUENCE, - asn_DEF_SpecialSubframe_Info_tags_1, - sizeof(asn_DEF_SpecialSubframe_Info_tags_1) - /sizeof(asn_DEF_SpecialSubframe_Info_tags_1[0]), /* 1 */ - asn_DEF_SpecialSubframe_Info_tags_1, /* Same as above */ - sizeof(asn_DEF_SpecialSubframe_Info_tags_1) - /sizeof(asn_DEF_SpecialSubframe_Info_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_SpecialSubframe_Info_1, - 4, /* Elements count */ - &asn_SPC_SpecialSubframe_Info_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/SpecialSubframe-Info.h b/e2sim/previous/ASN1c/SpecialSubframe-Info.h deleted file mode 100644 index 81154b9..0000000 --- a/e2sim/previous/ASN1c/SpecialSubframe-Info.h +++ /dev/null @@ -1,70 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _SpecialSubframe_Info_H_ -#define _SpecialSubframe_Info_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "SpecialSubframePatterns.h" -#include "CyclicPrefixDL.h" -#include "CyclicPrefixUL.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* SpecialSubframe-Info */ -typedef struct SpecialSubframe_Info { - SpecialSubframePatterns_t specialSubframePatterns; - CyclicPrefixDL_t cyclicPrefixDL; - CyclicPrefixUL_t cyclicPrefixUL; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} SpecialSubframe_Info_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_SpecialSubframe_Info; -extern asn_SEQUENCE_specifics_t asn_SPC_SpecialSubframe_Info_specs_1; -extern asn_TYPE_member_t asn_MBR_SpecialSubframe_Info_1[4]; - -#ifdef __cplusplus -} -#endif - -#endif /* _SpecialSubframe_Info_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/SpecialSubframePatterns.c b/e2sim/previous/ASN1c/SpecialSubframePatterns.c deleted file mode 100644 index 85af1c4..0000000 --- a/e2sim/previous/ASN1c/SpecialSubframePatterns.c +++ /dev/null @@ -1,87 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "SpecialSubframePatterns.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_SpecialSubframePatterns_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 4, 4, 0, 8 } /* (0..8,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_SpecialSubframePatterns_value2enum_1[] = { - { 0, 4, "ssp0" }, - { 1, 4, "ssp1" }, - { 2, 4, "ssp2" }, - { 3, 4, "ssp3" }, - { 4, 4, "ssp4" }, - { 5, 4, "ssp5" }, - { 6, 4, "ssp6" }, - { 7, 4, "ssp7" }, - { 8, 4, "ssp8" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_SpecialSubframePatterns_enum2value_1[] = { - 0, /* ssp0(0) */ - 1, /* ssp1(1) */ - 2, /* ssp2(2) */ - 3, /* ssp3(3) */ - 4, /* ssp4(4) */ - 5, /* ssp5(5) */ - 6, /* ssp6(6) */ - 7, /* ssp7(7) */ - 8 /* ssp8(8) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_SpecialSubframePatterns_specs_1 = { - asn_MAP_SpecialSubframePatterns_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_SpecialSubframePatterns_enum2value_1, /* N => "tag"; sorted by N */ - 9, /* Number of elements in the maps */ - 10, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_SpecialSubframePatterns_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_SpecialSubframePatterns = { - "SpecialSubframePatterns", - "SpecialSubframePatterns", - &asn_OP_NativeEnumerated, - asn_DEF_SpecialSubframePatterns_tags_1, - sizeof(asn_DEF_SpecialSubframePatterns_tags_1) - /sizeof(asn_DEF_SpecialSubframePatterns_tags_1[0]), /* 1 */ - asn_DEF_SpecialSubframePatterns_tags_1, /* Same as above */ - sizeof(asn_DEF_SpecialSubframePatterns_tags_1) - /sizeof(asn_DEF_SpecialSubframePatterns_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_SpecialSubframePatterns_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_SpecialSubframePatterns_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/SpecialSubframePatterns.h b/e2sim/previous/ASN1c/SpecialSubframePatterns.h deleted file mode 100644 index 42f19e9..0000000 --- a/e2sim/previous/ASN1c/SpecialSubframePatterns.h +++ /dev/null @@ -1,79 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _SpecialSubframePatterns_H_ -#define _SpecialSubframePatterns_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum SpecialSubframePatterns { - SpecialSubframePatterns_ssp0 = 0, - SpecialSubframePatterns_ssp1 = 1, - SpecialSubframePatterns_ssp2 = 2, - SpecialSubframePatterns_ssp3 = 3, - SpecialSubframePatterns_ssp4 = 4, - SpecialSubframePatterns_ssp5 = 5, - SpecialSubframePatterns_ssp6 = 6, - SpecialSubframePatterns_ssp7 = 7, - SpecialSubframePatterns_ssp8 = 8 - /* - * Enumeration is extensible - */ -} e_SpecialSubframePatterns; - -/* SpecialSubframePatterns */ -typedef long SpecialSubframePatterns_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_SpecialSubframePatterns_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_SpecialSubframePatterns; -extern const asn_INTEGER_specifics_t asn_SPC_SpecialSubframePatterns_specs_1; -asn_struct_free_f SpecialSubframePatterns_free; -asn_struct_print_f SpecialSubframePatterns_print; -asn_constr_check_f SpecialSubframePatterns_constraint; -ber_type_decoder_f SpecialSubframePatterns_decode_ber; -der_type_encoder_f SpecialSubframePatterns_encode_der; -xer_type_decoder_f SpecialSubframePatterns_decode_xer; -xer_type_encoder_f SpecialSubframePatterns_encode_xer; -per_type_decoder_f SpecialSubframePatterns_decode_uper; -per_type_encoder_f SpecialSubframePatterns_encode_uper; -per_type_decoder_f SpecialSubframePatterns_decode_aper; -per_type_encoder_f SpecialSubframePatterns_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _SpecialSubframePatterns_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/SpectrumSharingGroupID.c b/e2sim/previous/ASN1c/SpectrumSharingGroupID.c deleted file mode 100644 index a3b8167..0000000 --- a/e2sim/previous/ASN1c/SpectrumSharingGroupID.c +++ /dev/null @@ -1,79 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "SpectrumSharingGroupID.h" - -int -SpectrumSharingGroupID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 1 && value <= 256)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using NativeInteger, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_SpectrumSharingGroupID_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED, 8, 8, 1, 256 } /* (1..256) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_SpectrumSharingGroupID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_SpectrumSharingGroupID = { - "SpectrumSharingGroupID", - "SpectrumSharingGroupID", - &asn_OP_NativeInteger, - asn_DEF_SpectrumSharingGroupID_tags_1, - sizeof(asn_DEF_SpectrumSharingGroupID_tags_1) - /sizeof(asn_DEF_SpectrumSharingGroupID_tags_1[0]), /* 1 */ - asn_DEF_SpectrumSharingGroupID_tags_1, /* Same as above */ - sizeof(asn_DEF_SpectrumSharingGroupID_tags_1) - /sizeof(asn_DEF_SpectrumSharingGroupID_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_SpectrumSharingGroupID_constr_1, SpectrumSharingGroupID_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/previous/ASN1c/SpectrumSharingGroupID.h b/e2sim/previous/ASN1c/SpectrumSharingGroupID.h deleted file mode 100644 index 480362f..0000000 --- a/e2sim/previous/ASN1c/SpectrumSharingGroupID.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _SpectrumSharingGroupID_H_ -#define _SpectrumSharingGroupID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeInteger.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* SpectrumSharingGroupID */ -typedef long SpectrumSharingGroupID_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_SpectrumSharingGroupID_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_SpectrumSharingGroupID; -asn_struct_free_f SpectrumSharingGroupID_free; -asn_struct_print_f SpectrumSharingGroupID_print; -asn_constr_check_f SpectrumSharingGroupID_constraint; -ber_type_decoder_f SpectrumSharingGroupID_decode_ber; -der_type_encoder_f SpectrumSharingGroupID_encode_der; -xer_type_decoder_f SpectrumSharingGroupID_decode_xer; -xer_type_encoder_f SpectrumSharingGroupID_encode_xer; -per_type_decoder_f SpectrumSharingGroupID_decode_uper; -per_type_encoder_f SpectrumSharingGroupID_encode_uper; -per_type_decoder_f SpectrumSharingGroupID_decode_aper; -per_type_encoder_f SpectrumSharingGroupID_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _SpectrumSharingGroupID_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/SplitSRB.c b/e2sim/previous/ASN1c/SplitSRB.c deleted file mode 100644 index 112b24d..0000000 --- a/e2sim/previous/ASN1c/SplitSRB.c +++ /dev/null @@ -1,102 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "SplitSRB.h" - -#include "DeliveryStatus.h" -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_SplitSRB_1[] = { - { ATF_POINTER, 1, offsetof(struct SplitSRB, rrcContainer), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RRCContainer, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "rrcContainer" - }, - { ATF_NOFLAGS, 0, offsetof(struct SplitSRB, srbType), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_SRBType, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "srbType" - }, - { ATF_POINTER, 2, offsetof(struct SplitSRB, deliveryStatus), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_DeliveryStatus, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "deliveryStatus" - }, - { ATF_POINTER, 1, offsetof(struct SplitSRB, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P170, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_SplitSRB_oms_1[] = { 0, 2, 3 }; -static const ber_tlv_tag_t asn_DEF_SplitSRB_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_SplitSRB_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* rrcContainer */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* srbType */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* deliveryStatus */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_SplitSRB_specs_1 = { - sizeof(struct SplitSRB), - offsetof(struct SplitSRB, _asn_ctx), - asn_MAP_SplitSRB_tag2el_1, - 4, /* Count of tags in the map */ - asn_MAP_SplitSRB_oms_1, /* Optional members */ - 3, 0, /* Root/Additions */ - 4, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_SplitSRB = { - "SplitSRB", - "SplitSRB", - &asn_OP_SEQUENCE, - asn_DEF_SplitSRB_tags_1, - sizeof(asn_DEF_SplitSRB_tags_1) - /sizeof(asn_DEF_SplitSRB_tags_1[0]), /* 1 */ - asn_DEF_SplitSRB_tags_1, /* Same as above */ - sizeof(asn_DEF_SplitSRB_tags_1) - /sizeof(asn_DEF_SplitSRB_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_SplitSRB_1, - 4, /* Elements count */ - &asn_SPC_SplitSRB_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/SplitSRB.h b/e2sim/previous/ASN1c/SplitSRB.h deleted file mode 100644 index 3f00205..0000000 --- a/e2sim/previous/ASN1c/SplitSRB.h +++ /dev/null @@ -1,70 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _SplitSRB_H_ -#define _SplitSRB_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "RRCContainer.h" -#include "SRBType.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct DeliveryStatus; -struct ProtocolExtensionContainer; - -/* SplitSRB */ -typedef struct SplitSRB { - RRCContainer_t *rrcContainer; /* OPTIONAL */ - SRBType_t srbType; - struct DeliveryStatus *deliveryStatus; /* OPTIONAL */ - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} SplitSRB_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_SplitSRB; -extern asn_SEQUENCE_specifics_t asn_SPC_SplitSRB_specs_1; -extern asn_TYPE_member_t asn_MBR_SplitSRB_1[4]; - -#ifdef __cplusplus -} -#endif - -#endif /* _SplitSRB_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/SplitSRBs.c b/e2sim/previous/ASN1c/SplitSRBs.c deleted file mode 100644 index 79e6875..0000000 --- a/e2sim/previous/ASN1c/SplitSRBs.c +++ /dev/null @@ -1,75 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "SplitSRBs.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_SplitSRBs_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 2 } /* (0..2,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_SplitSRBs_value2enum_1[] = { - { 0, 4, "srb1" }, - { 1, 4, "srb2" }, - { 2, 8, "srb1and2" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_SplitSRBs_enum2value_1[] = { - 0, /* srb1(0) */ - 2, /* srb1and2(2) */ - 1 /* srb2(1) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_SplitSRBs_specs_1 = { - asn_MAP_SplitSRBs_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_SplitSRBs_enum2value_1, /* N => "tag"; sorted by N */ - 3, /* Number of elements in the maps */ - 4, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_SplitSRBs_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_SplitSRBs = { - "SplitSRBs", - "SplitSRBs", - &asn_OP_NativeEnumerated, - asn_DEF_SplitSRBs_tags_1, - sizeof(asn_DEF_SplitSRBs_tags_1) - /sizeof(asn_DEF_SplitSRBs_tags_1[0]), /* 1 */ - asn_DEF_SplitSRBs_tags_1, /* Same as above */ - sizeof(asn_DEF_SplitSRBs_tags_1) - /sizeof(asn_DEF_SplitSRBs_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_SplitSRBs_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_SplitSRBs_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/SplitSRBs.h b/e2sim/previous/ASN1c/SplitSRBs.h deleted file mode 100644 index 3e2fa86..0000000 --- a/e2sim/previous/ASN1c/SplitSRBs.h +++ /dev/null @@ -1,73 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _SplitSRBs_H_ -#define _SplitSRBs_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum SplitSRBs { - SplitSRBs_srb1 = 0, - SplitSRBs_srb2 = 1, - SplitSRBs_srb1and2 = 2 - /* - * Enumeration is extensible - */ -} e_SplitSRBs; - -/* SplitSRBs */ -typedef long SplitSRBs_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_SplitSRBs_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_SplitSRBs; -extern const asn_INTEGER_specifics_t asn_SPC_SplitSRBs_specs_1; -asn_struct_free_f SplitSRBs_free; -asn_struct_print_f SplitSRBs_print; -asn_constr_check_f SplitSRBs_constraint; -ber_type_decoder_f SplitSRBs_decode_ber; -der_type_encoder_f SplitSRBs_encode_der; -xer_type_decoder_f SplitSRBs_decode_xer; -xer_type_encoder_f SplitSRBs_encode_xer; -per_type_decoder_f SplitSRBs_decode_uper; -per_type_encoder_f SplitSRBs_encode_uper; -per_type_decoder_f SplitSRBs_decode_aper; -per_type_encoder_f SplitSRBs_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _SplitSRBs_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/Style-ID.c b/e2sim/previous/ASN1c/Style-ID.c deleted file mode 100644 index d044f61..0000000 --- a/e2sim/previous/ASN1c/Style-ID.c +++ /dev/null @@ -1,49 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-gNB-X2-IEs" - * found in "../../asnFiles/e2sm-gNB-X2-release-1-v041.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "Style-ID.h" - -/* - * This type is implemented using NativeInteger, - * so here we adjust the DEF accordingly. - */ -static const ber_tlv_tag_t asn_DEF_Style_ID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_Style_ID = { - "Style-ID", - "Style-ID", - &asn_OP_NativeInteger, - asn_DEF_Style_ID_tags_1, - sizeof(asn_DEF_Style_ID_tags_1) - /sizeof(asn_DEF_Style_ID_tags_1[0]), /* 1 */ - asn_DEF_Style_ID_tags_1, /* Same as above */ - sizeof(asn_DEF_Style_ID_tags_1) - /sizeof(asn_DEF_Style_ID_tags_1[0]), /* 1 */ - { 0, 0, NativeInteger_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/previous/ASN1c/Style-ID.h b/e2sim/previous/ASN1c/Style-ID.h deleted file mode 100644 index 1f80e28..0000000 --- a/e2sim/previous/ASN1c/Style-ID.h +++ /dev/null @@ -1,61 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-gNB-X2-IEs" - * found in "../../asnFiles/e2sm-gNB-X2-release-1-v041.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _Style_ID_H_ -#define _Style_ID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeInteger.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Style-ID */ -typedef long Style_ID_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_Style_ID; -asn_struct_free_f Style_ID_free; -asn_struct_print_f Style_ID_print; -asn_constr_check_f Style_ID_constraint; -ber_type_decoder_f Style_ID_decode_ber; -der_type_encoder_f Style_ID_encode_der; -xer_type_decoder_f Style_ID_decode_xer; -xer_type_encoder_f Style_ID_encode_xer; -per_type_decoder_f Style_ID_decode_uper; -per_type_encoder_f Style_ID_encode_uper; -per_type_decoder_f Style_ID_decode_aper; -per_type_encoder_f Style_ID_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _Style_ID_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/SubbandCQI.c b/e2sim/previous/ASN1c/SubbandCQI.c deleted file mode 100644 index 0d98b24..0000000 --- a/e2sim/previous/ASN1c/SubbandCQI.c +++ /dev/null @@ -1,92 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "SubbandCQI.h" - -#include "SubbandCQICodeword1.h" -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_SubbandCQI_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct SubbandCQI, subbandCQICodeword0), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_SubbandCQICodeword0, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "subbandCQICodeword0" - }, - { ATF_POINTER, 2, offsetof(struct SubbandCQI, subbandCQICodeword1), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_SubbandCQICodeword1, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "subbandCQICodeword1" - }, - { ATF_POINTER, 1, offsetof(struct SubbandCQI, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P195, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_SubbandCQI_oms_1[] = { 1, 2 }; -static const ber_tlv_tag_t asn_DEF_SubbandCQI_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_SubbandCQI_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* subbandCQICodeword0 */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* subbandCQICodeword1 */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_SubbandCQI_specs_1 = { - sizeof(struct SubbandCQI), - offsetof(struct SubbandCQI, _asn_ctx), - asn_MAP_SubbandCQI_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_SubbandCQI_oms_1, /* Optional members */ - 2, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_SubbandCQI = { - "SubbandCQI", - "SubbandCQI", - &asn_OP_SEQUENCE, - asn_DEF_SubbandCQI_tags_1, - sizeof(asn_DEF_SubbandCQI_tags_1) - /sizeof(asn_DEF_SubbandCQI_tags_1[0]), /* 1 */ - asn_DEF_SubbandCQI_tags_1, /* Same as above */ - sizeof(asn_DEF_SubbandCQI_tags_1) - /sizeof(asn_DEF_SubbandCQI_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_SubbandCQI_1, - 3, /* Elements count */ - &asn_SPC_SubbandCQI_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/SubbandCQI.h b/e2sim/previous/ASN1c/SubbandCQI.h deleted file mode 100644 index 14f3b1f..0000000 --- a/e2sim/previous/ASN1c/SubbandCQI.h +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _SubbandCQI_H_ -#define _SubbandCQI_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "SubbandCQICodeword0.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct SubbandCQICodeword1; -struct ProtocolExtensionContainer; - -/* SubbandCQI */ -typedef struct SubbandCQI { - SubbandCQICodeword0_t subbandCQICodeword0; - struct SubbandCQICodeword1 *subbandCQICodeword1; /* OPTIONAL */ - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} SubbandCQI_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_SubbandCQI; -extern asn_SEQUENCE_specifics_t asn_SPC_SubbandCQI_specs_1; -extern asn_TYPE_member_t asn_MBR_SubbandCQI_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _SubbandCQI_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/SubbandCQICodeword0.c b/e2sim/previous/ASN1c/SubbandCQICodeword0.c deleted file mode 100644 index 0982f17..0000000 --- a/e2sim/previous/ASN1c/SubbandCQICodeword0.c +++ /dev/null @@ -1,180 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "SubbandCQICodeword0.h" - -static int -memb_four_bitCQI_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 15)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_two_bitSubbandDifferentialCQI_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 3)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_two_bitDifferentialCQI_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 3)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_per_constraints_t asn_PER_memb_four_bitCQI_constr_2 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 4, 4, 0, 15 } /* (0..15,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_two_bitSubbandDifferentialCQI_constr_3 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 3 } /* (0..3,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_two_bitDifferentialCQI_constr_4 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 3 } /* (0..3,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_SubbandCQICodeword0_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 2 } /* (0..2,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_SubbandCQICodeword0_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct SubbandCQICodeword0, choice.four_bitCQI), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { 0, &asn_PER_memb_four_bitCQI_constr_2, memb_four_bitCQI_constraint_1 }, - 0, 0, /* No default value */ - "four-bitCQI" - }, - { ATF_NOFLAGS, 0, offsetof(struct SubbandCQICodeword0, choice.two_bitSubbandDifferentialCQI), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { 0, &asn_PER_memb_two_bitSubbandDifferentialCQI_constr_3, memb_two_bitSubbandDifferentialCQI_constraint_1 }, - 0, 0, /* No default value */ - "two-bitSubbandDifferentialCQI" - }, - { ATF_NOFLAGS, 0, offsetof(struct SubbandCQICodeword0, choice.two_bitDifferentialCQI), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { 0, &asn_PER_memb_two_bitDifferentialCQI_constr_4, memb_two_bitDifferentialCQI_constraint_1 }, - 0, 0, /* No default value */ - "two-bitDifferentialCQI" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_SubbandCQICodeword0_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* four-bitCQI */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* two-bitSubbandDifferentialCQI */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* two-bitDifferentialCQI */ -}; -asn_CHOICE_specifics_t asn_SPC_SubbandCQICodeword0_specs_1 = { - sizeof(struct SubbandCQICodeword0), - offsetof(struct SubbandCQICodeword0, _asn_ctx), - offsetof(struct SubbandCQICodeword0, present), - sizeof(((struct SubbandCQICodeword0 *)0)->present), - asn_MAP_SubbandCQICodeword0_tag2el_1, - 3, /* Count of tags in the map */ - 0, 0, - 3 /* Extensions start */ -}; -asn_TYPE_descriptor_t asn_DEF_SubbandCQICodeword0 = { - "SubbandCQICodeword0", - "SubbandCQICodeword0", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, &asn_PER_type_SubbandCQICodeword0_constr_1, CHOICE_constraint }, - asn_MBR_SubbandCQICodeword0_1, - 3, /* Elements count */ - &asn_SPC_SubbandCQICodeword0_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/SubbandCQICodeword0.h b/e2sim/previous/ASN1c/SubbandCQICodeword0.h deleted file mode 100644 index 6b236a1..0000000 --- a/e2sim/previous/ASN1c/SubbandCQICodeword0.h +++ /dev/null @@ -1,78 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _SubbandCQICodeword0_H_ -#define _SubbandCQICodeword0_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeInteger.h" -#include "constr_CHOICE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum SubbandCQICodeword0_PR { - SubbandCQICodeword0_PR_NOTHING, /* No components present */ - SubbandCQICodeword0_PR_four_bitCQI, - SubbandCQICodeword0_PR_two_bitSubbandDifferentialCQI, - SubbandCQICodeword0_PR_two_bitDifferentialCQI - /* Extensions may appear below */ - -} SubbandCQICodeword0_PR; - -/* SubbandCQICodeword0 */ -typedef struct SubbandCQICodeword0 { - SubbandCQICodeword0_PR present; - union SubbandCQICodeword0_u { - long four_bitCQI; - long two_bitSubbandDifferentialCQI; - long two_bitDifferentialCQI; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} SubbandCQICodeword0_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_SubbandCQICodeword0; -extern asn_CHOICE_specifics_t asn_SPC_SubbandCQICodeword0_specs_1; -extern asn_TYPE_member_t asn_MBR_SubbandCQICodeword0_1[3]; -extern asn_per_constraints_t asn_PER_type_SubbandCQICodeword0_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _SubbandCQICodeword0_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/SubbandCQICodeword1.c b/e2sim/previous/ASN1c/SubbandCQICodeword1.c deleted file mode 100644 index 779c516..0000000 --- a/e2sim/previous/ASN1c/SubbandCQICodeword1.c +++ /dev/null @@ -1,220 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "SubbandCQICodeword1.h" - -static int -memb_four_bitCQI_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 15)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_three_bitSpatialDifferentialCQI_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 7)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_two_bitSubbandDifferentialCQI_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 3)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_two_bitDifferentialCQI_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 3)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_per_constraints_t asn_PER_memb_four_bitCQI_constr_2 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 4, 4, 0, 15 } /* (0..15,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_three_bitSpatialDifferentialCQI_constr_3 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 7 } /* (0..7,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_two_bitSubbandDifferentialCQI_constr_4 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 3 } /* (0..3,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_two_bitDifferentialCQI_constr_5 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 3 } /* (0..3,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_SubbandCQICodeword1_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 3 } /* (0..3,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_SubbandCQICodeword1_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct SubbandCQICodeword1, choice.four_bitCQI), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { 0, &asn_PER_memb_four_bitCQI_constr_2, memb_four_bitCQI_constraint_1 }, - 0, 0, /* No default value */ - "four-bitCQI" - }, - { ATF_NOFLAGS, 0, offsetof(struct SubbandCQICodeword1, choice.three_bitSpatialDifferentialCQI), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { 0, &asn_PER_memb_three_bitSpatialDifferentialCQI_constr_3, memb_three_bitSpatialDifferentialCQI_constraint_1 }, - 0, 0, /* No default value */ - "three-bitSpatialDifferentialCQI" - }, - { ATF_NOFLAGS, 0, offsetof(struct SubbandCQICodeword1, choice.two_bitSubbandDifferentialCQI), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { 0, &asn_PER_memb_two_bitSubbandDifferentialCQI_constr_4, memb_two_bitSubbandDifferentialCQI_constraint_1 }, - 0, 0, /* No default value */ - "two-bitSubbandDifferentialCQI" - }, - { ATF_NOFLAGS, 0, offsetof(struct SubbandCQICodeword1, choice.two_bitDifferentialCQI), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { 0, &asn_PER_memb_two_bitDifferentialCQI_constr_5, memb_two_bitDifferentialCQI_constraint_1 }, - 0, 0, /* No default value */ - "two-bitDifferentialCQI" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_SubbandCQICodeword1_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* four-bitCQI */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* three-bitSpatialDifferentialCQI */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* two-bitSubbandDifferentialCQI */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* two-bitDifferentialCQI */ -}; -asn_CHOICE_specifics_t asn_SPC_SubbandCQICodeword1_specs_1 = { - sizeof(struct SubbandCQICodeword1), - offsetof(struct SubbandCQICodeword1, _asn_ctx), - offsetof(struct SubbandCQICodeword1, present), - sizeof(((struct SubbandCQICodeword1 *)0)->present), - asn_MAP_SubbandCQICodeword1_tag2el_1, - 4, /* Count of tags in the map */ - 0, 0, - 4 /* Extensions start */ -}; -asn_TYPE_descriptor_t asn_DEF_SubbandCQICodeword1 = { - "SubbandCQICodeword1", - "SubbandCQICodeword1", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, &asn_PER_type_SubbandCQICodeword1_constr_1, CHOICE_constraint }, - asn_MBR_SubbandCQICodeword1_1, - 4, /* Elements count */ - &asn_SPC_SubbandCQICodeword1_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/SubbandCQICodeword1.h b/e2sim/previous/ASN1c/SubbandCQICodeword1.h deleted file mode 100644 index 906e7f6..0000000 --- a/e2sim/previous/ASN1c/SubbandCQICodeword1.h +++ /dev/null @@ -1,80 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _SubbandCQICodeword1_H_ -#define _SubbandCQICodeword1_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeInteger.h" -#include "constr_CHOICE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum SubbandCQICodeword1_PR { - SubbandCQICodeword1_PR_NOTHING, /* No components present */ - SubbandCQICodeword1_PR_four_bitCQI, - SubbandCQICodeword1_PR_three_bitSpatialDifferentialCQI, - SubbandCQICodeword1_PR_two_bitSubbandDifferentialCQI, - SubbandCQICodeword1_PR_two_bitDifferentialCQI - /* Extensions may appear below */ - -} SubbandCQICodeword1_PR; - -/* SubbandCQICodeword1 */ -typedef struct SubbandCQICodeword1 { - SubbandCQICodeword1_PR present; - union SubbandCQICodeword1_u { - long four_bitCQI; - long three_bitSpatialDifferentialCQI; - long two_bitSubbandDifferentialCQI; - long two_bitDifferentialCQI; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} SubbandCQICodeword1_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_SubbandCQICodeword1; -extern asn_CHOICE_specifics_t asn_SPC_SubbandCQICodeword1_specs_1; -extern asn_TYPE_member_t asn_MBR_SubbandCQICodeword1_1[4]; -extern asn_per_constraints_t asn_PER_type_SubbandCQICodeword1_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _SubbandCQICodeword1_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/SubbandCQIItem.c b/e2sim/previous/ASN1c/SubbandCQIItem.c deleted file mode 100644 index 33e5f1d..0000000 --- a/e2sim/previous/ASN1c/SubbandCQIItem.c +++ /dev/null @@ -1,121 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "SubbandCQIItem.h" - -#include "ProtocolExtensionContainer.h" -static int -memb_subbandIndex_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 27)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_per_constraints_t asn_PER_memb_subbandIndex_constr_3 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 5, 5, 0, 27 } /* (0..27,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_SubbandCQIItem_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct SubbandCQIItem, subbandCQI), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_SubbandCQI, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "subbandCQI" - }, - { ATF_NOFLAGS, 0, offsetof(struct SubbandCQIItem, subbandIndex), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { 0, &asn_PER_memb_subbandIndex_constr_3, memb_subbandIndex_constraint_1 }, - 0, 0, /* No default value */ - "subbandIndex" - }, - { ATF_POINTER, 1, offsetof(struct SubbandCQIItem, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P198, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_SubbandCQIItem_oms_1[] = { 2 }; -static const ber_tlv_tag_t asn_DEF_SubbandCQIItem_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_SubbandCQIItem_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* subbandCQI */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* subbandIndex */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_SubbandCQIItem_specs_1 = { - sizeof(struct SubbandCQIItem), - offsetof(struct SubbandCQIItem, _asn_ctx), - asn_MAP_SubbandCQIItem_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_SubbandCQIItem_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_SubbandCQIItem = { - "SubbandCQIItem", - "SubbandCQIItem", - &asn_OP_SEQUENCE, - asn_DEF_SubbandCQIItem_tags_1, - sizeof(asn_DEF_SubbandCQIItem_tags_1) - /sizeof(asn_DEF_SubbandCQIItem_tags_1[0]), /* 1 */ - asn_DEF_SubbandCQIItem_tags_1, /* Same as above */ - sizeof(asn_DEF_SubbandCQIItem_tags_1) - /sizeof(asn_DEF_SubbandCQIItem_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_SubbandCQIItem_1, - 3, /* Elements count */ - &asn_SPC_SubbandCQIItem_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/SubbandCQIItem.h b/e2sim/previous/ASN1c/SubbandCQIItem.h deleted file mode 100644 index efa843a..0000000 --- a/e2sim/previous/ASN1c/SubbandCQIItem.h +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _SubbandCQIItem_H_ -#define _SubbandCQIItem_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "SubbandCQI.h" -#include "NativeInteger.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* SubbandCQIItem */ -typedef struct SubbandCQIItem { - SubbandCQI_t subbandCQI; - long subbandIndex; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} SubbandCQIItem_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_SubbandCQIItem; -extern asn_SEQUENCE_specifics_t asn_SPC_SubbandCQIItem_specs_1; -extern asn_TYPE_member_t asn_MBR_SubbandCQIItem_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _SubbandCQIItem_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/SubbandCQIList.c b/e2sim/previous/ASN1c/SubbandCQIList.c deleted file mode 100644 index f95a901..0000000 --- a/e2sim/previous/ASN1c/SubbandCQIList.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "SubbandCQIList.h" - -#include "SubbandCQIItem.h" -asn_per_constraints_t asn_PER_type_SubbandCQIList_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 4, 4, 1, 14 } /* (SIZE(1..14)) */, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_SubbandCQIList_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_SubbandCQIItem, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_SubbandCQIList_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_SubbandCQIList_specs_1 = { - sizeof(struct SubbandCQIList), - offsetof(struct SubbandCQIList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_SubbandCQIList = { - "SubbandCQIList", - "SubbandCQIList", - &asn_OP_SEQUENCE_OF, - asn_DEF_SubbandCQIList_tags_1, - sizeof(asn_DEF_SubbandCQIList_tags_1) - /sizeof(asn_DEF_SubbandCQIList_tags_1[0]), /* 1 */ - asn_DEF_SubbandCQIList_tags_1, /* Same as above */ - sizeof(asn_DEF_SubbandCQIList_tags_1) - /sizeof(asn_DEF_SubbandCQIList_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_SubbandCQIList_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_SubbandCQIList_1, - 1, /* Single element */ - &asn_SPC_SubbandCQIList_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/SubbandCQIList.h b/e2sim/previous/ASN1c/SubbandCQIList.h deleted file mode 100644 index ea94734..0000000 --- a/e2sim/previous/ASN1c/SubbandCQIList.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _SubbandCQIList_H_ -#define _SubbandCQIList_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct SubbandCQIItem; - -/* SubbandCQIList */ -typedef struct SubbandCQIList { - A_SEQUENCE_OF(struct SubbandCQIItem) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} SubbandCQIList_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_SubbandCQIList; -extern asn_SET_OF_specifics_t asn_SPC_SubbandCQIList_specs_1; -extern asn_TYPE_member_t asn_MBR_SubbandCQIList_1[1]; -extern asn_per_constraints_t asn_PER_type_SubbandCQIList_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _SubbandCQIList_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/SubbandSize.c b/e2sim/previous/ASN1c/SubbandSize.c deleted file mode 100644 index 64d1778..0000000 --- a/e2sim/previous/ASN1c/SubbandSize.c +++ /dev/null @@ -1,79 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "SubbandSize.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_SubbandSize_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 4 } /* (0..4,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_SubbandSize_value2enum_1[] = { - { 0, 5, "size2" }, - { 1, 5, "size3" }, - { 2, 5, "size4" }, - { 3, 5, "size6" }, - { 4, 5, "size8" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_SubbandSize_enum2value_1[] = { - 0, /* size2(0) */ - 1, /* size3(1) */ - 2, /* size4(2) */ - 3, /* size6(3) */ - 4 /* size8(4) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_SubbandSize_specs_1 = { - asn_MAP_SubbandSize_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_SubbandSize_enum2value_1, /* N => "tag"; sorted by N */ - 5, /* Number of elements in the maps */ - 6, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_SubbandSize_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_SubbandSize = { - "SubbandSize", - "SubbandSize", - &asn_OP_NativeEnumerated, - asn_DEF_SubbandSize_tags_1, - sizeof(asn_DEF_SubbandSize_tags_1) - /sizeof(asn_DEF_SubbandSize_tags_1[0]), /* 1 */ - asn_DEF_SubbandSize_tags_1, /* Same as above */ - sizeof(asn_DEF_SubbandSize_tags_1) - /sizeof(asn_DEF_SubbandSize_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_SubbandSize_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_SubbandSize_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/SubbandSize.h b/e2sim/previous/ASN1c/SubbandSize.h deleted file mode 100644 index 39b8c49..0000000 --- a/e2sim/previous/ASN1c/SubbandSize.h +++ /dev/null @@ -1,75 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _SubbandSize_H_ -#define _SubbandSize_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum SubbandSize { - SubbandSize_size2 = 0, - SubbandSize_size3 = 1, - SubbandSize_size4 = 2, - SubbandSize_size6 = 3, - SubbandSize_size8 = 4 - /* - * Enumeration is extensible - */ -} e_SubbandSize; - -/* SubbandSize */ -typedef long SubbandSize_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_SubbandSize_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_SubbandSize; -extern const asn_INTEGER_specifics_t asn_SPC_SubbandSize_specs_1; -asn_struct_free_f SubbandSize_free; -asn_struct_print_f SubbandSize_print; -asn_constr_check_f SubbandSize_constraint; -ber_type_decoder_f SubbandSize_decode_ber; -der_type_encoder_f SubbandSize_encode_der; -xer_type_decoder_f SubbandSize_decode_xer; -xer_type_encoder_f SubbandSize_encode_xer; -per_type_decoder_f SubbandSize_decode_uper; -per_type_encoder_f SubbandSize_encode_uper; -per_type_decoder_f SubbandSize_decode_aper; -per_type_encoder_f SubbandSize_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _SubbandSize_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/SubframeAllocation.c b/e2sim/previous/ASN1c/SubframeAllocation.c deleted file mode 100644 index 75f9e90..0000000 --- a/e2sim/previous/ASN1c/SubframeAllocation.c +++ /dev/null @@ -1,80 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "SubframeAllocation.h" - -asn_per_constraints_t asn_PER_type_SubframeAllocation_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_SubframeAllocation_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct SubframeAllocation, choice.oneframe), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Oneframe, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "oneframe" - }, - { ATF_NOFLAGS, 0, offsetof(struct SubframeAllocation, choice.fourframes), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Fourframes, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "fourframes" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_SubframeAllocation_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* oneframe */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* fourframes */ -}; -asn_CHOICE_specifics_t asn_SPC_SubframeAllocation_specs_1 = { - sizeof(struct SubframeAllocation), - offsetof(struct SubframeAllocation, _asn_ctx), - offsetof(struct SubframeAllocation, present), - sizeof(((struct SubframeAllocation *)0)->present), - asn_MAP_SubframeAllocation_tag2el_1, - 2, /* Count of tags in the map */ - 0, 0, - 2 /* Extensions start */ -}; -asn_TYPE_descriptor_t asn_DEF_SubframeAllocation = { - "SubframeAllocation", - "SubframeAllocation", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, &asn_PER_type_SubframeAllocation_constr_1, CHOICE_constraint }, - asn_MBR_SubframeAllocation_1, - 2, /* Elements count */ - &asn_SPC_SubframeAllocation_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/SubframeAllocation.h b/e2sim/previous/ASN1c/SubframeAllocation.h deleted file mode 100644 index 1bd0348..0000000 --- a/e2sim/previous/ASN1c/SubframeAllocation.h +++ /dev/null @@ -1,77 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _SubframeAllocation_H_ -#define _SubframeAllocation_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "Oneframe.h" -#include "Fourframes.h" -#include "constr_CHOICE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum SubframeAllocation_PR { - SubframeAllocation_PR_NOTHING, /* No components present */ - SubframeAllocation_PR_oneframe, - SubframeAllocation_PR_fourframes - /* Extensions may appear below */ - -} SubframeAllocation_PR; - -/* SubframeAllocation */ -typedef struct SubframeAllocation { - SubframeAllocation_PR present; - union SubframeAllocation_u { - Oneframe_t oneframe; - Fourframes_t fourframes; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} SubframeAllocation_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_SubframeAllocation; -extern asn_CHOICE_specifics_t asn_SPC_SubframeAllocation_specs_1; -extern asn_TYPE_member_t asn_MBR_SubframeAllocation_1[2]; -extern asn_per_constraints_t asn_PER_type_SubframeAllocation_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _SubframeAllocation_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/SubframeAssignment.c b/e2sim/previous/ASN1c/SubframeAssignment.c deleted file mode 100644 index c2583d2..0000000 --- a/e2sim/previous/ASN1c/SubframeAssignment.c +++ /dev/null @@ -1,83 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "SubframeAssignment.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_SubframeAssignment_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 6 } /* (0..6,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_SubframeAssignment_value2enum_1[] = { - { 0, 3, "sa0" }, - { 1, 3, "sa1" }, - { 2, 3, "sa2" }, - { 3, 3, "sa3" }, - { 4, 3, "sa4" }, - { 5, 3, "sa5" }, - { 6, 3, "sa6" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_SubframeAssignment_enum2value_1[] = { - 0, /* sa0(0) */ - 1, /* sa1(1) */ - 2, /* sa2(2) */ - 3, /* sa3(3) */ - 4, /* sa4(4) */ - 5, /* sa5(5) */ - 6 /* sa6(6) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_SubframeAssignment_specs_1 = { - asn_MAP_SubframeAssignment_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_SubframeAssignment_enum2value_1, /* N => "tag"; sorted by N */ - 7, /* Number of elements in the maps */ - 8, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_SubframeAssignment_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_SubframeAssignment = { - "SubframeAssignment", - "SubframeAssignment", - &asn_OP_NativeEnumerated, - asn_DEF_SubframeAssignment_tags_1, - sizeof(asn_DEF_SubframeAssignment_tags_1) - /sizeof(asn_DEF_SubframeAssignment_tags_1[0]), /* 1 */ - asn_DEF_SubframeAssignment_tags_1, /* Same as above */ - sizeof(asn_DEF_SubframeAssignment_tags_1) - /sizeof(asn_DEF_SubframeAssignment_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_SubframeAssignment_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_SubframeAssignment_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/SubframeAssignment.h b/e2sim/previous/ASN1c/SubframeAssignment.h deleted file mode 100644 index 04f6ee3..0000000 --- a/e2sim/previous/ASN1c/SubframeAssignment.h +++ /dev/null @@ -1,77 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _SubframeAssignment_H_ -#define _SubframeAssignment_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum SubframeAssignment { - SubframeAssignment_sa0 = 0, - SubframeAssignment_sa1 = 1, - SubframeAssignment_sa2 = 2, - SubframeAssignment_sa3 = 3, - SubframeAssignment_sa4 = 4, - SubframeAssignment_sa5 = 5, - SubframeAssignment_sa6 = 6 - /* - * Enumeration is extensible - */ -} e_SubframeAssignment; - -/* SubframeAssignment */ -typedef long SubframeAssignment_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_SubframeAssignment_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_SubframeAssignment; -extern const asn_INTEGER_specifics_t asn_SPC_SubframeAssignment_specs_1; -asn_struct_free_f SubframeAssignment_free; -asn_struct_print_f SubframeAssignment_print; -asn_constr_check_f SubframeAssignment_constraint; -ber_type_decoder_f SubframeAssignment_decode_ber; -der_type_encoder_f SubframeAssignment_encode_der; -xer_type_decoder_f SubframeAssignment_decode_xer; -xer_type_encoder_f SubframeAssignment_encode_xer; -per_type_decoder_f SubframeAssignment_decode_uper; -per_type_encoder_f SubframeAssignment_encode_uper; -per_type_decoder_f SubframeAssignment_decode_aper; -per_type_encoder_f SubframeAssignment_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _SubframeAssignment_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/SubframeType.c b/e2sim/previous/ASN1c/SubframeType.c deleted file mode 100644 index 6c05981..0000000 --- a/e2sim/previous/ASN1c/SubframeType.c +++ /dev/null @@ -1,73 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "SubframeType.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_SubframeType_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_SubframeType_value2enum_1[] = { - { 0, 5, "mbsfn" }, - { 1, 8, "nonmbsfn" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_SubframeType_enum2value_1[] = { - 0, /* mbsfn(0) */ - 1 /* nonmbsfn(1) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_SubframeType_specs_1 = { - asn_MAP_SubframeType_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_SubframeType_enum2value_1, /* N => "tag"; sorted by N */ - 2, /* Number of elements in the maps */ - 3, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_SubframeType_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_SubframeType = { - "SubframeType", - "SubframeType", - &asn_OP_NativeEnumerated, - asn_DEF_SubframeType_tags_1, - sizeof(asn_DEF_SubframeType_tags_1) - /sizeof(asn_DEF_SubframeType_tags_1[0]), /* 1 */ - asn_DEF_SubframeType_tags_1, /* Same as above */ - sizeof(asn_DEF_SubframeType_tags_1) - /sizeof(asn_DEF_SubframeType_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_SubframeType_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_SubframeType_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/SubframeType.h b/e2sim/previous/ASN1c/SubframeType.h deleted file mode 100644 index 935af63..0000000 --- a/e2sim/previous/ASN1c/SubframeType.h +++ /dev/null @@ -1,72 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _SubframeType_H_ -#define _SubframeType_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum SubframeType { - SubframeType_mbsfn = 0, - SubframeType_nonmbsfn = 1 - /* - * Enumeration is extensible - */ -} e_SubframeType; - -/* SubframeType */ -typedef long SubframeType_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_SubframeType_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_SubframeType; -extern const asn_INTEGER_specifics_t asn_SPC_SubframeType_specs_1; -asn_struct_free_f SubframeType_free; -asn_struct_print_f SubframeType_print; -asn_constr_check_f SubframeType_constraint; -ber_type_decoder_f SubframeType_decode_ber; -der_type_encoder_f SubframeType_encode_der; -xer_type_decoder_f SubframeType_decode_xer; -xer_type_encoder_f SubframeType_encode_xer; -per_type_decoder_f SubframeType_decode_uper; -per_type_encoder_f SubframeType_encode_uper; -per_type_decoder_f SubframeType_decode_aper; -per_type_encoder_f SubframeType_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _SubframeType_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/SubscriberProfileIDforRFP.c b/e2sim/previous/ASN1c/SubscriberProfileIDforRFP.c deleted file mode 100644 index cbdd82f..0000000 --- a/e2sim/previous/ASN1c/SubscriberProfileIDforRFP.c +++ /dev/null @@ -1,79 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "SubscriberProfileIDforRFP.h" - -int -SubscriberProfileIDforRFP_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 1 && value <= 256)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using NativeInteger, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_SubscriberProfileIDforRFP_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED, 8, 8, 1, 256 } /* (1..256) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_SubscriberProfileIDforRFP_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_SubscriberProfileIDforRFP = { - "SubscriberProfileIDforRFP", - "SubscriberProfileIDforRFP", - &asn_OP_NativeInteger, - asn_DEF_SubscriberProfileIDforRFP_tags_1, - sizeof(asn_DEF_SubscriberProfileIDforRFP_tags_1) - /sizeof(asn_DEF_SubscriberProfileIDforRFP_tags_1[0]), /* 1 */ - asn_DEF_SubscriberProfileIDforRFP_tags_1, /* Same as above */ - sizeof(asn_DEF_SubscriberProfileIDforRFP_tags_1) - /sizeof(asn_DEF_SubscriberProfileIDforRFP_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_SubscriberProfileIDforRFP_constr_1, SubscriberProfileIDforRFP_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/previous/ASN1c/SubscriberProfileIDforRFP.h b/e2sim/previous/ASN1c/SubscriberProfileIDforRFP.h deleted file mode 100644 index c8b691f..0000000 --- a/e2sim/previous/ASN1c/SubscriberProfileIDforRFP.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _SubscriberProfileIDforRFP_H_ -#define _SubscriberProfileIDforRFP_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeInteger.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* SubscriberProfileIDforRFP */ -typedef long SubscriberProfileIDforRFP_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_SubscriberProfileIDforRFP_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_SubscriberProfileIDforRFP; -asn_struct_free_f SubscriberProfileIDforRFP_free; -asn_struct_print_f SubscriberProfileIDforRFP_print; -asn_constr_check_f SubscriberProfileIDforRFP_constraint; -ber_type_decoder_f SubscriberProfileIDforRFP_decode_ber; -der_type_encoder_f SubscriberProfileIDforRFP_encode_der; -xer_type_decoder_f SubscriberProfileIDforRFP_decode_xer; -xer_type_encoder_f SubscriberProfileIDforRFP_encode_xer; -per_type_decoder_f SubscriberProfileIDforRFP_decode_uper; -per_type_encoder_f SubscriberProfileIDforRFP_encode_uper; -per_type_decoder_f SubscriberProfileIDforRFP_decode_aper; -per_type_encoder_f SubscriberProfileIDforRFP_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _SubscriberProfileIDforRFP_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/Subscription-Based-UE-DifferentiationInfo.c b/e2sim/previous/ASN1c/Subscription-Based-UE-DifferentiationInfo.c deleted file mode 100644 index 8c96698..0000000 --- a/e2sim/previous/ASN1c/Subscription-Based-UE-DifferentiationInfo.c +++ /dev/null @@ -1,358 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "Subscription-Based-UE-DifferentiationInfo.h" - -#include "ScheduledCommunicationTime.h" -#include "ProtocolExtensionContainer.h" -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -static int -memb_periodicTime_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 1 && value <= 3600)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_per_constraints_t asn_PER_type_periodicCommunicationIndicator_constr_2 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_type_stationaryIndication_constr_8 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_type_trafficProfile_constr_12 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 2 } /* (0..2,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_type_batteryIndication_constr_17 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 2 } /* (0..2,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_periodicTime_constr_6 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 12, 12, 1, 3600 } /* (1..3600,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_periodicCommunicationIndicator_value2enum_2[] = { - { 0, 12, "periodically" }, - { 1, 8, "ondemand" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_periodicCommunicationIndicator_enum2value_2[] = { - 1, /* ondemand(1) */ - 0 /* periodically(0) */ - /* This list is extensible */ -}; -static const asn_INTEGER_specifics_t asn_SPC_periodicCommunicationIndicator_specs_2 = { - asn_MAP_periodicCommunicationIndicator_value2enum_2, /* "tag" => N; sorted by tag */ - asn_MAP_periodicCommunicationIndicator_enum2value_2, /* N => "tag"; sorted by N */ - 2, /* Number of elements in the maps */ - 3, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_periodicCommunicationIndicator_tags_2[] = { - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_periodicCommunicationIndicator_2 = { - "periodicCommunicationIndicator", - "periodicCommunicationIndicator", - &asn_OP_NativeEnumerated, - asn_DEF_periodicCommunicationIndicator_tags_2, - sizeof(asn_DEF_periodicCommunicationIndicator_tags_2) - /sizeof(asn_DEF_periodicCommunicationIndicator_tags_2[0]) - 1, /* 1 */ - asn_DEF_periodicCommunicationIndicator_tags_2, /* Same as above */ - sizeof(asn_DEF_periodicCommunicationIndicator_tags_2) - /sizeof(asn_DEF_periodicCommunicationIndicator_tags_2[0]), /* 2 */ - { 0, &asn_PER_type_periodicCommunicationIndicator_constr_2, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_periodicCommunicationIndicator_specs_2 /* Additional specs */ -}; - -static const asn_INTEGER_enum_map_t asn_MAP_stationaryIndication_value2enum_8[] = { - { 0, 10, "stationary" }, - { 1, 6, "mobile" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_stationaryIndication_enum2value_8[] = { - 1, /* mobile(1) */ - 0 /* stationary(0) */ - /* This list is extensible */ -}; -static const asn_INTEGER_specifics_t asn_SPC_stationaryIndication_specs_8 = { - asn_MAP_stationaryIndication_value2enum_8, /* "tag" => N; sorted by tag */ - asn_MAP_stationaryIndication_enum2value_8, /* N => "tag"; sorted by N */ - 2, /* Number of elements in the maps */ - 3, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_stationaryIndication_tags_8[] = { - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_stationaryIndication_8 = { - "stationaryIndication", - "stationaryIndication", - &asn_OP_NativeEnumerated, - asn_DEF_stationaryIndication_tags_8, - sizeof(asn_DEF_stationaryIndication_tags_8) - /sizeof(asn_DEF_stationaryIndication_tags_8[0]) - 1, /* 1 */ - asn_DEF_stationaryIndication_tags_8, /* Same as above */ - sizeof(asn_DEF_stationaryIndication_tags_8) - /sizeof(asn_DEF_stationaryIndication_tags_8[0]), /* 2 */ - { 0, &asn_PER_type_stationaryIndication_constr_8, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_stationaryIndication_specs_8 /* Additional specs */ -}; - -static const asn_INTEGER_enum_map_t asn_MAP_trafficProfile_value2enum_12[] = { - { 0, 13, "single-packet" }, - { 1, 12, "dual-packets" }, - { 2, 16, "multiple-packets" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_trafficProfile_enum2value_12[] = { - 1, /* dual-packets(1) */ - 2, /* multiple-packets(2) */ - 0 /* single-packet(0) */ - /* This list is extensible */ -}; -static const asn_INTEGER_specifics_t asn_SPC_trafficProfile_specs_12 = { - asn_MAP_trafficProfile_value2enum_12, /* "tag" => N; sorted by tag */ - asn_MAP_trafficProfile_enum2value_12, /* N => "tag"; sorted by N */ - 3, /* Number of elements in the maps */ - 4, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_trafficProfile_tags_12[] = { - (ASN_TAG_CLASS_CONTEXT | (4 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_trafficProfile_12 = { - "trafficProfile", - "trafficProfile", - &asn_OP_NativeEnumerated, - asn_DEF_trafficProfile_tags_12, - sizeof(asn_DEF_trafficProfile_tags_12) - /sizeof(asn_DEF_trafficProfile_tags_12[0]) - 1, /* 1 */ - asn_DEF_trafficProfile_tags_12, /* Same as above */ - sizeof(asn_DEF_trafficProfile_tags_12) - /sizeof(asn_DEF_trafficProfile_tags_12[0]), /* 2 */ - { 0, &asn_PER_type_trafficProfile_constr_12, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_trafficProfile_specs_12 /* Additional specs */ -}; - -static const asn_INTEGER_enum_map_t asn_MAP_batteryIndication_value2enum_17[] = { - { 0, 15, "battery-powered" }, - { 1, 47, "battery-powered-not-rechargeable-or-replaceable" }, - { 2, 19, "not-battery-powered" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_batteryIndication_enum2value_17[] = { - 0, /* battery-powered(0) */ - 1, /* battery-powered-not-rechargeable-or-replaceable(1) */ - 2 /* not-battery-powered(2) */ - /* This list is extensible */ -}; -static const asn_INTEGER_specifics_t asn_SPC_batteryIndication_specs_17 = { - asn_MAP_batteryIndication_value2enum_17, /* "tag" => N; sorted by tag */ - asn_MAP_batteryIndication_enum2value_17, /* N => "tag"; sorted by N */ - 3, /* Number of elements in the maps */ - 4, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_batteryIndication_tags_17[] = { - (ASN_TAG_CLASS_CONTEXT | (5 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_batteryIndication_17 = { - "batteryIndication", - "batteryIndication", - &asn_OP_NativeEnumerated, - asn_DEF_batteryIndication_tags_17, - sizeof(asn_DEF_batteryIndication_tags_17) - /sizeof(asn_DEF_batteryIndication_tags_17[0]) - 1, /* 1 */ - asn_DEF_batteryIndication_tags_17, /* Same as above */ - sizeof(asn_DEF_batteryIndication_tags_17) - /sizeof(asn_DEF_batteryIndication_tags_17[0]), /* 2 */ - { 0, &asn_PER_type_batteryIndication_constr_17, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_batteryIndication_specs_17 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_Subscription_Based_UE_DifferentiationInfo_1[] = { - { ATF_POINTER, 7, offsetof(struct Subscription_Based_UE_DifferentiationInfo, periodicCommunicationIndicator), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_periodicCommunicationIndicator_2, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "periodicCommunicationIndicator" - }, - { ATF_POINTER, 6, offsetof(struct Subscription_Based_UE_DifferentiationInfo, periodicTime), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { 0, &asn_PER_memb_periodicTime_constr_6, memb_periodicTime_constraint_1 }, - 0, 0, /* No default value */ - "periodicTime" - }, - { ATF_POINTER, 5, offsetof(struct Subscription_Based_UE_DifferentiationInfo, scheduledCommunicationTime), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ScheduledCommunicationTime, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "scheduledCommunicationTime" - }, - { ATF_POINTER, 4, offsetof(struct Subscription_Based_UE_DifferentiationInfo, stationaryIndication), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_stationaryIndication_8, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "stationaryIndication" - }, - { ATF_POINTER, 3, offsetof(struct Subscription_Based_UE_DifferentiationInfo, trafficProfile), - (ASN_TAG_CLASS_CONTEXT | (4 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_trafficProfile_12, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "trafficProfile" - }, - { ATF_POINTER, 2, offsetof(struct Subscription_Based_UE_DifferentiationInfo, batteryIndication), - (ASN_TAG_CLASS_CONTEXT | (5 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_batteryIndication_17, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "batteryIndication" - }, - { ATF_POINTER, 1, offsetof(struct Subscription_Based_UE_DifferentiationInfo, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (6 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P196, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_Subscription_Based_UE_DifferentiationInfo_oms_1[] = { 0, 1, 2, 3, 4, 5, 6 }; -static const ber_tlv_tag_t asn_DEF_Subscription_Based_UE_DifferentiationInfo_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_Subscription_Based_UE_DifferentiationInfo_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* periodicCommunicationIndicator */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* periodicTime */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* scheduledCommunicationTime */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* stationaryIndication */ - { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* trafficProfile */ - { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* batteryIndication */ - { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_Subscription_Based_UE_DifferentiationInfo_specs_1 = { - sizeof(struct Subscription_Based_UE_DifferentiationInfo), - offsetof(struct Subscription_Based_UE_DifferentiationInfo, _asn_ctx), - asn_MAP_Subscription_Based_UE_DifferentiationInfo_tag2el_1, - 7, /* Count of tags in the map */ - asn_MAP_Subscription_Based_UE_DifferentiationInfo_oms_1, /* Optional members */ - 7, 0, /* Root/Additions */ - 7, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_Subscription_Based_UE_DifferentiationInfo = { - "Subscription-Based-UE-DifferentiationInfo", - "Subscription-Based-UE-DifferentiationInfo", - &asn_OP_SEQUENCE, - asn_DEF_Subscription_Based_UE_DifferentiationInfo_tags_1, - sizeof(asn_DEF_Subscription_Based_UE_DifferentiationInfo_tags_1) - /sizeof(asn_DEF_Subscription_Based_UE_DifferentiationInfo_tags_1[0]), /* 1 */ - asn_DEF_Subscription_Based_UE_DifferentiationInfo_tags_1, /* Same as above */ - sizeof(asn_DEF_Subscription_Based_UE_DifferentiationInfo_tags_1) - /sizeof(asn_DEF_Subscription_Based_UE_DifferentiationInfo_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_Subscription_Based_UE_DifferentiationInfo_1, - 7, /* Elements count */ - &asn_SPC_Subscription_Based_UE_DifferentiationInfo_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/Subscription-Based-UE-DifferentiationInfo.h b/e2sim/previous/ASN1c/Subscription-Based-UE-DifferentiationInfo.h deleted file mode 100644 index cf8f9ee..0000000 --- a/e2sim/previous/ASN1c/Subscription-Based-UE-DifferentiationInfo.h +++ /dev/null @@ -1,109 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _Subscription_Based_UE_DifferentiationInfo_H_ -#define _Subscription_Based_UE_DifferentiationInfo_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" -#include "NativeInteger.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum Subscription_Based_UE_DifferentiationInfo__periodicCommunicationIndicator { - Subscription_Based_UE_DifferentiationInfo__periodicCommunicationIndicator_periodically = 0, - Subscription_Based_UE_DifferentiationInfo__periodicCommunicationIndicator_ondemand = 1 - /* - * Enumeration is extensible - */ -} e_Subscription_Based_UE_DifferentiationInfo__periodicCommunicationIndicator; -typedef enum Subscription_Based_UE_DifferentiationInfo__stationaryIndication { - Subscription_Based_UE_DifferentiationInfo__stationaryIndication_stationary = 0, - Subscription_Based_UE_DifferentiationInfo__stationaryIndication_mobile = 1 - /* - * Enumeration is extensible - */ -} e_Subscription_Based_UE_DifferentiationInfo__stationaryIndication; -typedef enum Subscription_Based_UE_DifferentiationInfo__trafficProfile { - Subscription_Based_UE_DifferentiationInfo__trafficProfile_single_packet = 0, - Subscription_Based_UE_DifferentiationInfo__trafficProfile_dual_packets = 1, - Subscription_Based_UE_DifferentiationInfo__trafficProfile_multiple_packets = 2 - /* - * Enumeration is extensible - */ -} e_Subscription_Based_UE_DifferentiationInfo__trafficProfile; -typedef enum Subscription_Based_UE_DifferentiationInfo__batteryIndication { - Subscription_Based_UE_DifferentiationInfo__batteryIndication_battery_powered = 0, - Subscription_Based_UE_DifferentiationInfo__batteryIndication_battery_powered_not_rechargeable_or_replaceable = 1, - Subscription_Based_UE_DifferentiationInfo__batteryIndication_not_battery_powered = 2 - /* - * Enumeration is extensible - */ -} e_Subscription_Based_UE_DifferentiationInfo__batteryIndication; - -/* Forward declarations */ -struct ScheduledCommunicationTime; -struct ProtocolExtensionContainer; - -/* Subscription-Based-UE-DifferentiationInfo */ -typedef struct Subscription_Based_UE_DifferentiationInfo { - long *periodicCommunicationIndicator; /* OPTIONAL */ - long *periodicTime; /* OPTIONAL */ - struct ScheduledCommunicationTime *scheduledCommunicationTime; /* OPTIONAL */ - long *stationaryIndication; /* OPTIONAL */ - long *trafficProfile; /* OPTIONAL */ - long *batteryIndication; /* OPTIONAL */ - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} Subscription_Based_UE_DifferentiationInfo_t; - -/* Implementation */ -/* extern asn_TYPE_descriptor_t asn_DEF_periodicCommunicationIndicator_2; // (Use -fall-defs-global to expose) */ -/* extern asn_TYPE_descriptor_t asn_DEF_stationaryIndication_8; // (Use -fall-defs-global to expose) */ -/* extern asn_TYPE_descriptor_t asn_DEF_trafficProfile_12; // (Use -fall-defs-global to expose) */ -/* extern asn_TYPE_descriptor_t asn_DEF_batteryIndication_17; // (Use -fall-defs-global to expose) */ -extern asn_TYPE_descriptor_t asn_DEF_Subscription_Based_UE_DifferentiationInfo; -extern asn_SEQUENCE_specifics_t asn_SPC_Subscription_Based_UE_DifferentiationInfo_specs_1; -extern asn_TYPE_member_t asn_MBR_Subscription_Based_UE_DifferentiationInfo_1[7]; - -#ifdef __cplusplus -} -#endif - -#endif /* _Subscription_Based_UE_DifferentiationInfo_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/SuccessfulOutcome.c b/e2sim/previous/ASN1c/SuccessfulOutcome.c deleted file mode 100644 index 2586cea..0000000 --- a/e2sim/previous/ASN1c/SuccessfulOutcome.c +++ /dev/null @@ -1,466 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Descriptions" - * found in "../../asnFiles/e2ap-v031.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "SuccessfulOutcome.h" - -static const long asn_VAL_1_id_ricSubscription = 201; -static const long asn_VAL_1_reject = 0; -static const long asn_VAL_2_id_ricSubscriptionDelete = 202; -static const long asn_VAL_2_reject = 0; -static const long asn_VAL_3_id_ricServiceUpdate = 203; -static const long asn_VAL_3_reject = 0; -static const long asn_VAL_4_id_ricControl = 204; -static const long asn_VAL_4_reject = 0; -static const long asn_VAL_5_id_x2Setup = 6; -static const long asn_VAL_5_reject = 0; -static const long asn_VAL_6_id_endcX2Setup = 36; -static const long asn_VAL_6_reject = 0; -static const long asn_VAL_7_id_resourceStatusReportingInitiation = 9; -static const long asn_VAL_7_reject = 0; -static const long asn_VAL_8_id_eNBConfigurationUpdate = 8; -static const long asn_VAL_8_reject = 0; -static const long asn_VAL_9_id_endcConfigurationUpdate = 37; -static const long asn_VAL_9_reject = 0; -static const long asn_VAL_10_id_reset = 7; -static const long asn_VAL_10_reject = 0; -static const long asn_VAL_11_id_ricIndication = 205; -static const long asn_VAL_11_ignore = 1; -static const long asn_VAL_12_id_ricServiceQuery = 206; -static const long asn_VAL_12_ignore = 1; -static const long asn_VAL_13_id_loadIndication = 2; -static const long asn_VAL_13_ignore = 1; -static const long asn_VAL_14_id_gNBStatusIndication = 45; -static const long asn_VAL_14_ignore = 1; -static const long asn_VAL_15_id_resourceStatusReporting = 10; -static const long asn_VAL_15_ignore = 1; -static const long asn_VAL_16_id_errorIndication = 3; -static const long asn_VAL_16_ignore = 1; -static const asn_ioc_cell_t asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1_rows[] = { - { "&InitiatingMessage", aioc__type, &asn_DEF_RICsubscriptionRequest }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionResponse }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_1_id_ricSubscription }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_1_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_RICsubscriptionDeleteRequest }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionDeleteResponse }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionDeleteFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_2_id_ricSubscriptionDelete }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_2_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_RICserviceUpdate }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_RICserviceUpdateAcknowledge }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RICserviceUpdateFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_3_id_ricServiceUpdate }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_3_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_RICcontrolRequest }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_RICcontrolAcknowledge }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RICcontrolFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_4_id_ricControl }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_4_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_X2SetupRequest }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_X2SetupResponse }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_X2SetupFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_5_id_x2Setup }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_5_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_ENDCX2SetupRequest }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_ENDCX2SetupResponse }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_ENDCX2SetupFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_6_id_endcX2Setup }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_6_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_ResourceStatusRequest }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_ResourceStatusResponse }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_ResourceStatusFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_7_id_resourceStatusReportingInitiation }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_7_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_ENBConfigurationUpdate }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_ENBConfigurationUpdateAcknowledge }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_ENBConfigurationUpdateFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_8_id_eNBConfigurationUpdate }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_8_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_ENDCConfigurationUpdate }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_ENDCConfigurationUpdateAcknowledge }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_ENDCConfigurationUpdateFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_9_id_endcConfigurationUpdate }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_9_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_ResetRequest }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_ResetResponse }, - { "&UnsuccessfulOutcome", }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_10_id_reset }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_10_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_RICindication }, - { "&SuccessfulOutcome", }, - { "&UnsuccessfulOutcome", }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_11_id_ricIndication }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_11_ignore }, - { "&InitiatingMessage", aioc__type, &asn_DEF_RICserviceQuery }, - { "&SuccessfulOutcome", }, - { "&UnsuccessfulOutcome", }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_12_id_ricServiceQuery }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_12_ignore }, - { "&InitiatingMessage", aioc__type, &asn_DEF_LoadInformation }, - { "&SuccessfulOutcome", }, - { "&UnsuccessfulOutcome", }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_13_id_loadIndication }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_13_ignore }, - { "&InitiatingMessage", aioc__type, &asn_DEF_GNBStatusIndication }, - { "&SuccessfulOutcome", }, - { "&UnsuccessfulOutcome", }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_14_id_gNBStatusIndication }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_14_ignore }, - { "&InitiatingMessage", aioc__type, &asn_DEF_ResourceStatusUpdate }, - { "&SuccessfulOutcome", }, - { "&UnsuccessfulOutcome", }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_15_id_resourceStatusReporting }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_15_ignore }, - { "&InitiatingMessage", aioc__type, &asn_DEF_ErrorIndication }, - { "&SuccessfulOutcome", }, - { "&UnsuccessfulOutcome", }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_16_id_errorIndication }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_16_ignore } -}; -static const asn_ioc_set_t asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1[] = { - { 16, 5, asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1_rows } -}; -static int -memb_procedureCode_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 255)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_SuccessfulOutcome_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1; - size_t constraining_column = 3; /* &procedureCode */ - size_t for_column = 4; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SuccessfulOutcome, procedureCode)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_SuccessfulOutcome_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1; - size_t constraining_column = 3; /* &procedureCode */ - size_t for_column = 1; /* &SuccessfulOutcome */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SuccessfulOutcome, procedureCode)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_per_constraints_t asn_PER_memb_procedureCode_constr_2 CC_NOTUSED = { - { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_3 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_4 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_value_4[] = { - { ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome__value, choice.RICsubscriptionResponse), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICsubscriptionResponse, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICsubscriptionResponse" - }, - { ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome__value, choice.RICsubscriptionDeleteResponse), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICsubscriptionDeleteResponse, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICsubscriptionDeleteResponse" - }, - { ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome__value, choice.RICserviceUpdateAcknowledge), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICserviceUpdateAcknowledge, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICserviceUpdateAcknowledge" - }, - { ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome__value, choice.RICcontrolAcknowledge), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICcontrolAcknowledge, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICcontrolAcknowledge" - }, - { ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome__value, choice.X2SetupResponse), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_X2SetupResponse, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "X2SetupResponse" - }, - { ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome__value, choice.ENDCX2SetupResponse), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ENDCX2SetupResponse, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ENDCX2SetupResponse" - }, - { ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome__value, choice.ResourceStatusResponse), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ResourceStatusResponse, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ResourceStatusResponse" - }, - { ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome__value, choice.ENBConfigurationUpdateAcknowledge), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ENBConfigurationUpdateAcknowledge, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ENBConfigurationUpdateAcknowledge" - }, - { ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome__value, choice.ENDCConfigurationUpdateAcknowledge), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ENDCConfigurationUpdateAcknowledge, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ENDCConfigurationUpdateAcknowledge" - }, - { ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome__value, choice.ResetResponse), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ResetResponse, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ResetResponse" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_4[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 9 }, /* RICsubscriptionResponse */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 8 }, /* RICsubscriptionDeleteResponse */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -2, 7 }, /* RICserviceUpdateAcknowledge */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -3, 6 }, /* RICcontrolAcknowledge */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, -4, 5 }, /* X2SetupResponse */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 5, -5, 4 }, /* ENDCX2SetupResponse */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 6, -6, 3 }, /* ResourceStatusResponse */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 7, -7, 2 }, /* ENBConfigurationUpdateAcknowledge */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 8, -8, 1 }, /* ENDCConfigurationUpdateAcknowledge */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 9, -9, 0 } /* ResetResponse */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_4 = { - sizeof(struct SuccessfulOutcome__value), - offsetof(struct SuccessfulOutcome__value, _asn_ctx), - offsetof(struct SuccessfulOutcome__value, present), - sizeof(((struct SuccessfulOutcome__value *)0)->present), - asn_MAP_value_tag2el_4, - 10, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_4 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_4, - 10, /* Elements count */ - &asn_SPC_value_specs_4 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_SuccessfulOutcome_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome, procedureCode), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProcedureCode, - 0, - { 0, &asn_PER_memb_procedureCode_constr_2, memb_procedureCode_constraint_1 }, - 0, 0, /* No default value */ - "procedureCode" - }, - { ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_SuccessfulOutcome_criticality_type, - { 0, &asn_PER_memb_criticality_constr_3, memb_criticality_constraint_1 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_4, - select_SuccessfulOutcome_value_type, - { 0, &asn_PER_memb_value_constr_4, memb_value_constraint_1 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_SuccessfulOutcome_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_SuccessfulOutcome_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* procedureCode */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_SuccessfulOutcome_specs_1 = { - sizeof(struct SuccessfulOutcome), - offsetof(struct SuccessfulOutcome, _asn_ctx), - asn_MAP_SuccessfulOutcome_tag2el_1, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_SuccessfulOutcome = { - "SuccessfulOutcome", - "SuccessfulOutcome", - &asn_OP_SEQUENCE, - asn_DEF_SuccessfulOutcome_tags_1, - sizeof(asn_DEF_SuccessfulOutcome_tags_1) - /sizeof(asn_DEF_SuccessfulOutcome_tags_1[0]), /* 1 */ - asn_DEF_SuccessfulOutcome_tags_1, /* Same as above */ - sizeof(asn_DEF_SuccessfulOutcome_tags_1) - /sizeof(asn_DEF_SuccessfulOutcome_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_SuccessfulOutcome_1, - 3, /* Elements count */ - &asn_SPC_SuccessfulOutcome_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/SuccessfulOutcome.h b/e2sim/previous/ASN1c/SuccessfulOutcome.h deleted file mode 100644 index 4845865..0000000 --- a/e2sim/previous/ASN1c/SuccessfulOutcome.h +++ /dev/null @@ -1,132 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Descriptions" - * found in "../../asnFiles/e2ap-v031.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _SuccessfulOutcome_H_ -#define _SuccessfulOutcome_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProcedureCode.h" -#include "Criticality.h" -#include "ANY.h" -#include "asn_ioc.h" -#include "RICsubscriptionRequest.h" -#include "RICsubscriptionResponse.h" -#include "RICsubscriptionFailure.h" -#include "RICsubscriptionDeleteRequest.h" -#include "RICsubscriptionDeleteResponse.h" -#include "RICsubscriptionDeleteFailure.h" -#include "RICserviceUpdate.h" -#include "RICserviceUpdateAcknowledge.h" -#include "RICserviceUpdateFailure.h" -#include "RICcontrolRequest.h" -#include "RICcontrolAcknowledge.h" -#include "RICcontrolFailure.h" -#include "X2SetupRequest.h" -#include "X2SetupResponse.h" -#include "X2SetupFailure.h" -#include "ENDCX2SetupRequest.h" -#include "ENDCX2SetupResponse.h" -#include "ENDCX2SetupFailure.h" -#include "ResourceStatusRequest.h" -#include "ResourceStatusResponse.h" -#include "ResourceStatusFailure.h" -#include "ENBConfigurationUpdate.h" -#include "ENBConfigurationUpdateAcknowledge.h" -#include "ENBConfigurationUpdateFailure.h" -#include "ENDCConfigurationUpdate.h" -#include "ENDCConfigurationUpdateAcknowledge.h" -#include "ENDCConfigurationUpdateFailure.h" -#include "ResetRequest.h" -#include "ResetResponse.h" -#include "RICindication.h" -#include "RICserviceQuery.h" -#include "LoadInformation.h" -#include "GNBStatusIndication.h" -#include "ResourceStatusUpdate.h" -#include "ErrorIndication.h" -#include "OPEN_TYPE.h" -#include "constr_CHOICE.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum SuccessfulOutcome__value_PR { - SuccessfulOutcome__value_PR_NOTHING, /* No components present */ - SuccessfulOutcome__value_PR_RICsubscriptionResponse, - SuccessfulOutcome__value_PR_RICsubscriptionDeleteResponse, - SuccessfulOutcome__value_PR_RICserviceUpdateAcknowledge, - SuccessfulOutcome__value_PR_RICcontrolAcknowledge, - SuccessfulOutcome__value_PR_X2SetupResponse, - SuccessfulOutcome__value_PR_ENDCX2SetupResponse, - SuccessfulOutcome__value_PR_ResourceStatusResponse, - SuccessfulOutcome__value_PR_ENBConfigurationUpdateAcknowledge, - SuccessfulOutcome__value_PR_ENDCConfigurationUpdateAcknowledge, - SuccessfulOutcome__value_PR_ResetResponse -} SuccessfulOutcome__value_PR; - -/* SuccessfulOutcome */ -typedef struct SuccessfulOutcome { - ProcedureCode_t procedureCode; - Criticality_t criticality; - struct SuccessfulOutcome__value { - SuccessfulOutcome__value_PR present; - union SuccessfulOutcome__value_u { - RICsubscriptionResponse_t RICsubscriptionResponse; - RICsubscriptionDeleteResponse_t RICsubscriptionDeleteResponse; - RICserviceUpdateAcknowledge_t RICserviceUpdateAcknowledge; - RICcontrolAcknowledge_t RICcontrolAcknowledge; - X2SetupResponse_t X2SetupResponse; - ENDCX2SetupResponse_t ENDCX2SetupResponse; - ResourceStatusResponse_t ResourceStatusResponse; - ENBConfigurationUpdateAcknowledge_t ENBConfigurationUpdateAcknowledge; - ENDCConfigurationUpdateAcknowledge_t ENDCConfigurationUpdateAcknowledge; - ResetResponse_t ResetResponse; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} SuccessfulOutcome_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_SuccessfulOutcome; -extern asn_SEQUENCE_specifics_t asn_SPC_SuccessfulOutcome_specs_1; -extern asn_TYPE_member_t asn_MBR_SuccessfulOutcome_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _SuccessfulOutcome_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/SupportedSULFreqBandItem.c b/e2sim/previous/ASN1c/SupportedSULFreqBandItem.c deleted file mode 100644 index 8d716f5..0000000 --- a/e2sim/previous/ASN1c/SupportedSULFreqBandItem.c +++ /dev/null @@ -1,111 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "SupportedSULFreqBandItem.h" - -#include "ProtocolExtensionContainer.h" -static int -memb_freqBandIndicatorNr_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 1 && value <= 1024)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_per_constraints_t asn_PER_memb_freqBandIndicatorNr_constr_2 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 10, 10, 1, 1024 } /* (1..1024,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_SupportedSULFreqBandItem_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct SupportedSULFreqBandItem, freqBandIndicatorNr), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { 0, &asn_PER_memb_freqBandIndicatorNr_constr_2, memb_freqBandIndicatorNr_constraint_1 }, - 0, 0, /* No default value */ - "freqBandIndicatorNr" - }, - { ATF_POINTER, 1, offsetof(struct SupportedSULFreqBandItem, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P200, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_SupportedSULFreqBandItem_oms_1[] = { 1 }; -static const ber_tlv_tag_t asn_DEF_SupportedSULFreqBandItem_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_SupportedSULFreqBandItem_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* freqBandIndicatorNr */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_SupportedSULFreqBandItem_specs_1 = { - sizeof(struct SupportedSULFreqBandItem), - offsetof(struct SupportedSULFreqBandItem, _asn_ctx), - asn_MAP_SupportedSULFreqBandItem_tag2el_1, - 2, /* Count of tags in the map */ - asn_MAP_SupportedSULFreqBandItem_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 2, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_SupportedSULFreqBandItem = { - "SupportedSULFreqBandItem", - "SupportedSULFreqBandItem", - &asn_OP_SEQUENCE, - asn_DEF_SupportedSULFreqBandItem_tags_1, - sizeof(asn_DEF_SupportedSULFreqBandItem_tags_1) - /sizeof(asn_DEF_SupportedSULFreqBandItem_tags_1[0]), /* 1 */ - asn_DEF_SupportedSULFreqBandItem_tags_1, /* Same as above */ - sizeof(asn_DEF_SupportedSULFreqBandItem_tags_1) - /sizeof(asn_DEF_SupportedSULFreqBandItem_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_SupportedSULFreqBandItem_1, - 2, /* Elements count */ - &asn_SPC_SupportedSULFreqBandItem_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/SupportedSULFreqBandItem.h b/e2sim/previous/ASN1c/SupportedSULFreqBandItem.h deleted file mode 100644 index 135e0df..0000000 --- a/e2sim/previous/ASN1c/SupportedSULFreqBandItem.h +++ /dev/null @@ -1,66 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _SupportedSULFreqBandItem_H_ -#define _SupportedSULFreqBandItem_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeInteger.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* SupportedSULFreqBandItem */ -typedef struct SupportedSULFreqBandItem { - long freqBandIndicatorNr; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} SupportedSULFreqBandItem_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_SupportedSULFreqBandItem; -extern asn_SEQUENCE_specifics_t asn_SPC_SupportedSULFreqBandItem_specs_1; -extern asn_TYPE_member_t asn_MBR_SupportedSULFreqBandItem_1[2]; - -#ifdef __cplusplus -} -#endif - -#endif /* _SupportedSULFreqBandItem_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/TABasedMDT.c b/e2sim/previous/ASN1c/TABasedMDT.c deleted file mode 100644 index c57b8cc..0000000 --- a/e2sim/previous/ASN1c/TABasedMDT.c +++ /dev/null @@ -1,81 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "TABasedMDT.h" - -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_TABasedMDT_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct TABasedMDT, tAListforMDT), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_TAListforMDT, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "tAListforMDT" - }, - { ATF_POINTER, 1, offsetof(struct TABasedMDT, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P201, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_TABasedMDT_oms_1[] = { 1 }; -static const ber_tlv_tag_t asn_DEF_TABasedMDT_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_TABasedMDT_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* tAListforMDT */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_TABasedMDT_specs_1 = { - sizeof(struct TABasedMDT), - offsetof(struct TABasedMDT, _asn_ctx), - asn_MAP_TABasedMDT_tag2el_1, - 2, /* Count of tags in the map */ - asn_MAP_TABasedMDT_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 2, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_TABasedMDT = { - "TABasedMDT", - "TABasedMDT", - &asn_OP_SEQUENCE, - asn_DEF_TABasedMDT_tags_1, - sizeof(asn_DEF_TABasedMDT_tags_1) - /sizeof(asn_DEF_TABasedMDT_tags_1[0]), /* 1 */ - asn_DEF_TABasedMDT_tags_1, /* Same as above */ - sizeof(asn_DEF_TABasedMDT_tags_1) - /sizeof(asn_DEF_TABasedMDT_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_TABasedMDT_1, - 2, /* Elements count */ - &asn_SPC_TABasedMDT_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/TABasedMDT.h b/e2sim/previous/ASN1c/TABasedMDT.h deleted file mode 100644 index 4424b92..0000000 --- a/e2sim/previous/ASN1c/TABasedMDT.h +++ /dev/null @@ -1,66 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _TABasedMDT_H_ -#define _TABasedMDT_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "TAListforMDT.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* TABasedMDT */ -typedef struct TABasedMDT { - TAListforMDT_t tAListforMDT; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} TABasedMDT_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_TABasedMDT; -extern asn_SEQUENCE_specifics_t asn_SPC_TABasedMDT_specs_1; -extern asn_TYPE_member_t asn_MBR_TABasedMDT_1[2]; - -#ifdef __cplusplus -} -#endif - -#endif /* _TABasedMDT_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/TABasedQMC.c b/e2sim/previous/ASN1c/TABasedQMC.c deleted file mode 100644 index 37e6f1b..0000000 --- a/e2sim/previous/ASN1c/TABasedQMC.c +++ /dev/null @@ -1,81 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "TABasedQMC.h" - -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_TABasedQMC_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct TABasedQMC, tAListforQMC), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_TAListforQMC, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "tAListforQMC" - }, - { ATF_POINTER, 1, offsetof(struct TABasedQMC, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P204, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_TABasedQMC_oms_1[] = { 1 }; -static const ber_tlv_tag_t asn_DEF_TABasedQMC_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_TABasedQMC_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* tAListforQMC */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_TABasedQMC_specs_1 = { - sizeof(struct TABasedQMC), - offsetof(struct TABasedQMC, _asn_ctx), - asn_MAP_TABasedQMC_tag2el_1, - 2, /* Count of tags in the map */ - asn_MAP_TABasedQMC_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 2, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_TABasedQMC = { - "TABasedQMC", - "TABasedQMC", - &asn_OP_SEQUENCE, - asn_DEF_TABasedQMC_tags_1, - sizeof(asn_DEF_TABasedQMC_tags_1) - /sizeof(asn_DEF_TABasedQMC_tags_1[0]), /* 1 */ - asn_DEF_TABasedQMC_tags_1, /* Same as above */ - sizeof(asn_DEF_TABasedQMC_tags_1) - /sizeof(asn_DEF_TABasedQMC_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_TABasedQMC_1, - 2, /* Elements count */ - &asn_SPC_TABasedQMC_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/TABasedQMC.h b/e2sim/previous/ASN1c/TABasedQMC.h deleted file mode 100644 index d34e073..0000000 --- a/e2sim/previous/ASN1c/TABasedQMC.h +++ /dev/null @@ -1,66 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _TABasedQMC_H_ -#define _TABasedQMC_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "TAListforQMC.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* TABasedQMC */ -typedef struct TABasedQMC { - TAListforQMC_t tAListforQMC; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} TABasedQMC_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_TABasedQMC; -extern asn_SEQUENCE_specifics_t asn_SPC_TABasedQMC_specs_1; -extern asn_TYPE_member_t asn_MBR_TABasedQMC_1[2]; - -#ifdef __cplusplus -} -#endif - -#endif /* _TABasedQMC_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/TAC.c b/e2sim/previous/ASN1c/TAC.c deleted file mode 100644 index ba9e118..0000000 --- a/e2sim/previous/ASN1c/TAC.c +++ /dev/null @@ -1,80 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "TAC.h" - -int -TAC_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - size = st->size; - - if((size == 2)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using OCTET_STRING, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_TAC_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 0, 0, 2, 2 } /* (SIZE(2..2)) */, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_TAC_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_TAC = { - "TAC", - "TAC", - &asn_OP_OCTET_STRING, - asn_DEF_TAC_tags_1, - sizeof(asn_DEF_TAC_tags_1) - /sizeof(asn_DEF_TAC_tags_1[0]), /* 1 */ - asn_DEF_TAC_tags_1, /* Same as above */ - sizeof(asn_DEF_TAC_tags_1) - /sizeof(asn_DEF_TAC_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_TAC_constr_1, TAC_constraint }, - 0, 0, /* No members */ - &asn_SPC_OCTET_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/TAC.h b/e2sim/previous/ASN1c/TAC.h deleted file mode 100644 index fec62da..0000000 --- a/e2sim/previous/ASN1c/TAC.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _TAC_H_ -#define _TAC_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "OCTET_STRING.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* TAC */ -typedef OCTET_STRING_t TAC_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_TAC_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_TAC; -asn_struct_free_f TAC_free; -asn_struct_print_f TAC_print; -asn_constr_check_f TAC_constraint; -ber_type_decoder_f TAC_decode_ber; -der_type_encoder_f TAC_encode_der; -xer_type_decoder_f TAC_decode_xer; -xer_type_encoder_f TAC_encode_xer; -per_type_decoder_f TAC_decode_uper; -per_type_encoder_f TAC_encode_uper; -per_type_decoder_f TAC_decode_aper; -per_type_encoder_f TAC_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _TAC_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/TAI-Item.c b/e2sim/previous/ASN1c/TAI-Item.c deleted file mode 100644 index cebc015..0000000 --- a/e2sim/previous/ASN1c/TAI-Item.c +++ /dev/null @@ -1,91 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "TAI-Item.h" - -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_TAI_Item_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct TAI_Item, tAC), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_TAC, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "tAC" - }, - { ATF_NOFLAGS, 0, offsetof(struct TAI_Item, pLMN_Identity), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_PLMN_Identity, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "pLMN-Identity" - }, - { ATF_POINTER, 1, offsetof(struct TAI_Item, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P203, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_TAI_Item_oms_1[] = { 2 }; -static const ber_tlv_tag_t asn_DEF_TAI_Item_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_TAI_Item_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* tAC */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* pLMN-Identity */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_TAI_Item_specs_1 = { - sizeof(struct TAI_Item), - offsetof(struct TAI_Item, _asn_ctx), - asn_MAP_TAI_Item_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_TAI_Item_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_TAI_Item = { - "TAI-Item", - "TAI-Item", - &asn_OP_SEQUENCE, - asn_DEF_TAI_Item_tags_1, - sizeof(asn_DEF_TAI_Item_tags_1) - /sizeof(asn_DEF_TAI_Item_tags_1[0]), /* 1 */ - asn_DEF_TAI_Item_tags_1, /* Same as above */ - sizeof(asn_DEF_TAI_Item_tags_1) - /sizeof(asn_DEF_TAI_Item_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_TAI_Item_1, - 3, /* Elements count */ - &asn_SPC_TAI_Item_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/TAI-Item.h b/e2sim/previous/ASN1c/TAI-Item.h deleted file mode 100644 index ef4d4c0..0000000 --- a/e2sim/previous/ASN1c/TAI-Item.h +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _TAI_Item_H_ -#define _TAI_Item_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "TAC.h" -#include "PLMN-Identity.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* TAI-Item */ -typedef struct TAI_Item { - TAC_t tAC; - PLMN_Identity_t pLMN_Identity; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} TAI_Item_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_TAI_Item; -extern asn_SEQUENCE_specifics_t asn_SPC_TAI_Item_specs_1; -extern asn_TYPE_member_t asn_MBR_TAI_Item_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _TAI_Item_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/TAIBasedMDT.c b/e2sim/previous/ASN1c/TAIBasedMDT.c deleted file mode 100644 index 01b4c63..0000000 --- a/e2sim/previous/ASN1c/TAIBasedMDT.c +++ /dev/null @@ -1,81 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "TAIBasedMDT.h" - -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_TAIBasedMDT_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct TAIBasedMDT, tAIListforMDT), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_TAIListforMDT, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "tAIListforMDT" - }, - { ATF_POINTER, 1, offsetof(struct TAIBasedMDT, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P202, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_TAIBasedMDT_oms_1[] = { 1 }; -static const ber_tlv_tag_t asn_DEF_TAIBasedMDT_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_TAIBasedMDT_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* tAIListforMDT */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_TAIBasedMDT_specs_1 = { - sizeof(struct TAIBasedMDT), - offsetof(struct TAIBasedMDT, _asn_ctx), - asn_MAP_TAIBasedMDT_tag2el_1, - 2, /* Count of tags in the map */ - asn_MAP_TAIBasedMDT_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 2, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_TAIBasedMDT = { - "TAIBasedMDT", - "TAIBasedMDT", - &asn_OP_SEQUENCE, - asn_DEF_TAIBasedMDT_tags_1, - sizeof(asn_DEF_TAIBasedMDT_tags_1) - /sizeof(asn_DEF_TAIBasedMDT_tags_1[0]), /* 1 */ - asn_DEF_TAIBasedMDT_tags_1, /* Same as above */ - sizeof(asn_DEF_TAIBasedMDT_tags_1) - /sizeof(asn_DEF_TAIBasedMDT_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_TAIBasedMDT_1, - 2, /* Elements count */ - &asn_SPC_TAIBasedMDT_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/TAIBasedMDT.h b/e2sim/previous/ASN1c/TAIBasedMDT.h deleted file mode 100644 index 9ca0932..0000000 --- a/e2sim/previous/ASN1c/TAIBasedMDT.h +++ /dev/null @@ -1,66 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _TAIBasedMDT_H_ -#define _TAIBasedMDT_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "TAIListforMDT.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* TAIBasedMDT */ -typedef struct TAIBasedMDT { - TAIListforMDT_t tAIListforMDT; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} TAIBasedMDT_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_TAIBasedMDT; -extern asn_SEQUENCE_specifics_t asn_SPC_TAIBasedMDT_specs_1; -extern asn_TYPE_member_t asn_MBR_TAIBasedMDT_1[2]; - -#ifdef __cplusplus -} -#endif - -#endif /* _TAIBasedMDT_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/TAIBasedQMC.c b/e2sim/previous/ASN1c/TAIBasedQMC.c deleted file mode 100644 index 7d35c92..0000000 --- a/e2sim/previous/ASN1c/TAIBasedQMC.c +++ /dev/null @@ -1,81 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "TAIBasedQMC.h" - -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_TAIBasedQMC_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct TAIBasedQMC, tAIListforQMC), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_TAIListforQMC, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "tAIListforQMC" - }, - { ATF_POINTER, 1, offsetof(struct TAIBasedQMC, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P205, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_TAIBasedQMC_oms_1[] = { 1 }; -static const ber_tlv_tag_t asn_DEF_TAIBasedQMC_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_TAIBasedQMC_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* tAIListforQMC */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_TAIBasedQMC_specs_1 = { - sizeof(struct TAIBasedQMC), - offsetof(struct TAIBasedQMC, _asn_ctx), - asn_MAP_TAIBasedQMC_tag2el_1, - 2, /* Count of tags in the map */ - asn_MAP_TAIBasedQMC_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 2, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_TAIBasedQMC = { - "TAIBasedQMC", - "TAIBasedQMC", - &asn_OP_SEQUENCE, - asn_DEF_TAIBasedQMC_tags_1, - sizeof(asn_DEF_TAIBasedQMC_tags_1) - /sizeof(asn_DEF_TAIBasedQMC_tags_1[0]), /* 1 */ - asn_DEF_TAIBasedQMC_tags_1, /* Same as above */ - sizeof(asn_DEF_TAIBasedQMC_tags_1) - /sizeof(asn_DEF_TAIBasedQMC_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_TAIBasedQMC_1, - 2, /* Elements count */ - &asn_SPC_TAIBasedQMC_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/TAIBasedQMC.h b/e2sim/previous/ASN1c/TAIBasedQMC.h deleted file mode 100644 index 1396cd7..0000000 --- a/e2sim/previous/ASN1c/TAIBasedQMC.h +++ /dev/null @@ -1,66 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _TAIBasedQMC_H_ -#define _TAIBasedQMC_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "TAIListforQMC.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* TAIBasedQMC */ -typedef struct TAIBasedQMC { - TAIListforQMC_t tAIListforQMC; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} TAIBasedQMC_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_TAIBasedQMC; -extern asn_SEQUENCE_specifics_t asn_SPC_TAIBasedQMC_specs_1; -extern asn_TYPE_member_t asn_MBR_TAIBasedQMC_1[2]; - -#ifdef __cplusplus -} -#endif - -#endif /* _TAIBasedQMC_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/TAIListforMDT.c b/e2sim/previous/ASN1c/TAIListforMDT.c deleted file mode 100644 index 42a0065..0000000 --- a/e2sim/previous/ASN1c/TAIListforMDT.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "TAIListforMDT.h" - -#include "TAI-Item.h" -asn_per_constraints_t asn_PER_type_TAIListforMDT_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 3, 3, 1, 8 } /* (SIZE(1..8)) */, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_TAIListforMDT_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_TAI_Item, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_TAIListforMDT_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_TAIListforMDT_specs_1 = { - sizeof(struct TAIListforMDT), - offsetof(struct TAIListforMDT, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_TAIListforMDT = { - "TAIListforMDT", - "TAIListforMDT", - &asn_OP_SEQUENCE_OF, - asn_DEF_TAIListforMDT_tags_1, - sizeof(asn_DEF_TAIListforMDT_tags_1) - /sizeof(asn_DEF_TAIListforMDT_tags_1[0]), /* 1 */ - asn_DEF_TAIListforMDT_tags_1, /* Same as above */ - sizeof(asn_DEF_TAIListforMDT_tags_1) - /sizeof(asn_DEF_TAIListforMDT_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_TAIListforMDT_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_TAIListforMDT_1, - 1, /* Single element */ - &asn_SPC_TAIListforMDT_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/TAIListforMDT.h b/e2sim/previous/ASN1c/TAIListforMDT.h deleted file mode 100644 index d27034a..0000000 --- a/e2sim/previous/ASN1c/TAIListforMDT.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _TAIListforMDT_H_ -#define _TAIListforMDT_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct TAI_Item; - -/* TAIListforMDT */ -typedef struct TAIListforMDT { - A_SEQUENCE_OF(struct TAI_Item) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} TAIListforMDT_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_TAIListforMDT; -extern asn_SET_OF_specifics_t asn_SPC_TAIListforMDT_specs_1; -extern asn_TYPE_member_t asn_MBR_TAIListforMDT_1[1]; -extern asn_per_constraints_t asn_PER_type_TAIListforMDT_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _TAIListforMDT_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/TAIListforQMC.c b/e2sim/previous/ASN1c/TAIListforQMC.c deleted file mode 100644 index ac23717..0000000 --- a/e2sim/previous/ASN1c/TAIListforQMC.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "TAIListforQMC.h" - -#include "TAI-Item.h" -asn_per_constraints_t asn_PER_type_TAIListforQMC_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 3, 3, 1, 8 } /* (SIZE(1..8)) */, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_TAIListforQMC_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_TAI_Item, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_TAIListforQMC_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_TAIListforQMC_specs_1 = { - sizeof(struct TAIListforQMC), - offsetof(struct TAIListforQMC, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_TAIListforQMC = { - "TAIListforQMC", - "TAIListforQMC", - &asn_OP_SEQUENCE_OF, - asn_DEF_TAIListforQMC_tags_1, - sizeof(asn_DEF_TAIListforQMC_tags_1) - /sizeof(asn_DEF_TAIListforQMC_tags_1[0]), /* 1 */ - asn_DEF_TAIListforQMC_tags_1, /* Same as above */ - sizeof(asn_DEF_TAIListforQMC_tags_1) - /sizeof(asn_DEF_TAIListforQMC_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_TAIListforQMC_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_TAIListforQMC_1, - 1, /* Single element */ - &asn_SPC_TAIListforQMC_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/TAIListforQMC.h b/e2sim/previous/ASN1c/TAIListforQMC.h deleted file mode 100644 index 61ffedf..0000000 --- a/e2sim/previous/ASN1c/TAIListforQMC.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _TAIListforQMC_H_ -#define _TAIListforQMC_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct TAI_Item; - -/* TAIListforQMC */ -typedef struct TAIListforQMC { - A_SEQUENCE_OF(struct TAI_Item) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} TAIListforQMC_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_TAIListforQMC; -extern asn_SET_OF_specifics_t asn_SPC_TAIListforQMC_specs_1; -extern asn_TYPE_member_t asn_MBR_TAIListforQMC_1[1]; -extern asn_per_constraints_t asn_PER_type_TAIListforQMC_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _TAIListforQMC_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/TAListforMDT.c b/e2sim/previous/ASN1c/TAListforMDT.c deleted file mode 100644 index 874037c..0000000 --- a/e2sim/previous/ASN1c/TAListforMDT.c +++ /dev/null @@ -1,67 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "TAListforMDT.h" - -asn_per_constraints_t asn_PER_type_TAListforMDT_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 3, 3, 1, 8 } /* (SIZE(1..8)) */, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_TAListforMDT_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), - 0, - &asn_DEF_TAC, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_TAListforMDT_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_TAListforMDT_specs_1 = { - sizeof(struct TAListforMDT), - offsetof(struct TAListforMDT, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_TAListforMDT = { - "TAListforMDT", - "TAListforMDT", - &asn_OP_SEQUENCE_OF, - asn_DEF_TAListforMDT_tags_1, - sizeof(asn_DEF_TAListforMDT_tags_1) - /sizeof(asn_DEF_TAListforMDT_tags_1[0]), /* 1 */ - asn_DEF_TAListforMDT_tags_1, /* Same as above */ - sizeof(asn_DEF_TAListforMDT_tags_1) - /sizeof(asn_DEF_TAListforMDT_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_TAListforMDT_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_TAListforMDT_1, - 1, /* Single element */ - &asn_SPC_TAListforMDT_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/TAListforMDT.h b/e2sim/previous/ASN1c/TAListforMDT.h deleted file mode 100644 index 0eab84f..0000000 --- a/e2sim/previous/ASN1c/TAListforMDT.h +++ /dev/null @@ -1,60 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _TAListforMDT_H_ -#define _TAListforMDT_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "TAC.h" -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* TAListforMDT */ -typedef struct TAListforMDT { - A_SEQUENCE_OF(TAC_t) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} TAListforMDT_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_TAListforMDT; -extern asn_SET_OF_specifics_t asn_SPC_TAListforMDT_specs_1; -extern asn_TYPE_member_t asn_MBR_TAListforMDT_1[1]; -extern asn_per_constraints_t asn_PER_type_TAListforMDT_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _TAListforMDT_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/TAListforQMC.c b/e2sim/previous/ASN1c/TAListforQMC.c deleted file mode 100644 index dc97f69..0000000 --- a/e2sim/previous/ASN1c/TAListforQMC.c +++ /dev/null @@ -1,67 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "TAListforQMC.h" - -asn_per_constraints_t asn_PER_type_TAListforQMC_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 3, 3, 1, 8 } /* (SIZE(1..8)) */, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_TAListforQMC_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), - 0, - &asn_DEF_TAC, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_TAListforQMC_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_TAListforQMC_specs_1 = { - sizeof(struct TAListforQMC), - offsetof(struct TAListforQMC, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_TAListforQMC = { - "TAListforQMC", - "TAListforQMC", - &asn_OP_SEQUENCE_OF, - asn_DEF_TAListforQMC_tags_1, - sizeof(asn_DEF_TAListforQMC_tags_1) - /sizeof(asn_DEF_TAListforQMC_tags_1[0]), /* 1 */ - asn_DEF_TAListforQMC_tags_1, /* Same as above */ - sizeof(asn_DEF_TAListforQMC_tags_1) - /sizeof(asn_DEF_TAListforQMC_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_TAListforQMC_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_TAListforQMC_1, - 1, /* Single element */ - &asn_SPC_TAListforQMC_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/TAListforQMC.h b/e2sim/previous/ASN1c/TAListforQMC.h deleted file mode 100644 index 4c939fb..0000000 --- a/e2sim/previous/ASN1c/TAListforQMC.h +++ /dev/null @@ -1,60 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _TAListforQMC_H_ -#define _TAListforQMC_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "TAC.h" -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* TAListforQMC */ -typedef struct TAListforQMC { - A_SEQUENCE_OF(TAC_t) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} TAListforQMC_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_TAListforQMC; -extern asn_SET_OF_specifics_t asn_SPC_TAListforQMC_specs_1; -extern asn_TYPE_member_t asn_MBR_TAListforQMC_1[1]; -extern asn_per_constraints_t asn_PER_type_TAListforQMC_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _TAListforQMC_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/TDD-Info.c b/e2sim/previous/ASN1c/TDD-Info.c deleted file mode 100644 index b75f7a1..0000000 --- a/e2sim/previous/ASN1c/TDD-Info.c +++ /dev/null @@ -1,111 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "TDD-Info.h" - -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_TDD_Info_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct TDD_Info, eARFCN), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_EARFCN, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "eARFCN" - }, - { ATF_NOFLAGS, 0, offsetof(struct TDD_Info, transmission_Bandwidth), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Transmission_Bandwidth, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "transmission-Bandwidth" - }, - { ATF_NOFLAGS, 0, offsetof(struct TDD_Info, subframeAssignment), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_SubframeAssignment, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "subframeAssignment" - }, - { ATF_NOFLAGS, 0, offsetof(struct TDD_Info, specialSubframe_Info), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_SpecialSubframe_Info, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "specialSubframe-Info" - }, - { ATF_POINTER, 1, offsetof(struct TDD_Info, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (4 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P206, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_TDD_Info_oms_1[] = { 4 }; -static const ber_tlv_tag_t asn_DEF_TDD_Info_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_TDD_Info_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* eARFCN */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* transmission-Bandwidth */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* subframeAssignment */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* specialSubframe-Info */ - { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_TDD_Info_specs_1 = { - sizeof(struct TDD_Info), - offsetof(struct TDD_Info, _asn_ctx), - asn_MAP_TDD_Info_tag2el_1, - 5, /* Count of tags in the map */ - asn_MAP_TDD_Info_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 5, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_TDD_Info = { - "TDD-Info", - "TDD-Info", - &asn_OP_SEQUENCE, - asn_DEF_TDD_Info_tags_1, - sizeof(asn_DEF_TDD_Info_tags_1) - /sizeof(asn_DEF_TDD_Info_tags_1[0]), /* 1 */ - asn_DEF_TDD_Info_tags_1, /* Same as above */ - sizeof(asn_DEF_TDD_Info_tags_1) - /sizeof(asn_DEF_TDD_Info_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_TDD_Info_1, - 5, /* Elements count */ - &asn_SPC_TDD_Info_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/TDD-Info.h b/e2sim/previous/ASN1c/TDD-Info.h deleted file mode 100644 index f9d9b5f..0000000 --- a/e2sim/previous/ASN1c/TDD-Info.h +++ /dev/null @@ -1,72 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _TDD_Info_H_ -#define _TDD_Info_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "EARFCN.h" -#include "Transmission-Bandwidth.h" -#include "SubframeAssignment.h" -#include "SpecialSubframe-Info.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* TDD-Info */ -typedef struct TDD_Info { - EARFCN_t eARFCN; - Transmission_Bandwidth_t transmission_Bandwidth; - SubframeAssignment_t subframeAssignment; - SpecialSubframe_Info_t specialSubframe_Info; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} TDD_Info_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_TDD_Info; -extern asn_SEQUENCE_specifics_t asn_SPC_TDD_Info_specs_1; -extern asn_TYPE_member_t asn_MBR_TDD_Info_1[5]; - -#ifdef __cplusplus -} -#endif - -#endif /* _TDD_Info_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/TDD-InfoNeighbourServedNRCell-Information.c b/e2sim/previous/ASN1c/TDD-InfoNeighbourServedNRCell-Information.c deleted file mode 100644 index 6f98d22..0000000 --- a/e2sim/previous/ASN1c/TDD-InfoNeighbourServedNRCell-Information.c +++ /dev/null @@ -1,81 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "TDD-InfoNeighbourServedNRCell-Information.h" - -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_TDD_InfoNeighbourServedNRCell_Information_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct TDD_InfoNeighbourServedNRCell_Information, nRFreqInfo), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NRFreqInfo, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "nRFreqInfo" - }, - { ATF_POINTER, 1, offsetof(struct TDD_InfoNeighbourServedNRCell_Information, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P96, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_TDD_InfoNeighbourServedNRCell_Information_oms_1[] = { 1 }; -static const ber_tlv_tag_t asn_DEF_TDD_InfoNeighbourServedNRCell_Information_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_TDD_InfoNeighbourServedNRCell_Information_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nRFreqInfo */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_TDD_InfoNeighbourServedNRCell_Information_specs_1 = { - sizeof(struct TDD_InfoNeighbourServedNRCell_Information), - offsetof(struct TDD_InfoNeighbourServedNRCell_Information, _asn_ctx), - asn_MAP_TDD_InfoNeighbourServedNRCell_Information_tag2el_1, - 2, /* Count of tags in the map */ - asn_MAP_TDD_InfoNeighbourServedNRCell_Information_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 2, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_TDD_InfoNeighbourServedNRCell_Information = { - "TDD-InfoNeighbourServedNRCell-Information", - "TDD-InfoNeighbourServedNRCell-Information", - &asn_OP_SEQUENCE, - asn_DEF_TDD_InfoNeighbourServedNRCell_Information_tags_1, - sizeof(asn_DEF_TDD_InfoNeighbourServedNRCell_Information_tags_1) - /sizeof(asn_DEF_TDD_InfoNeighbourServedNRCell_Information_tags_1[0]), /* 1 */ - asn_DEF_TDD_InfoNeighbourServedNRCell_Information_tags_1, /* Same as above */ - sizeof(asn_DEF_TDD_InfoNeighbourServedNRCell_Information_tags_1) - /sizeof(asn_DEF_TDD_InfoNeighbourServedNRCell_Information_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_TDD_InfoNeighbourServedNRCell_Information_1, - 2, /* Elements count */ - &asn_SPC_TDD_InfoNeighbourServedNRCell_Information_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/TDD-InfoNeighbourServedNRCell-Information.h b/e2sim/previous/ASN1c/TDD-InfoNeighbourServedNRCell-Information.h deleted file mode 100644 index dd76fdc..0000000 --- a/e2sim/previous/ASN1c/TDD-InfoNeighbourServedNRCell-Information.h +++ /dev/null @@ -1,66 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _TDD_InfoNeighbourServedNRCell_Information_H_ -#define _TDD_InfoNeighbourServedNRCell_Information_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NRFreqInfo.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* TDD-InfoNeighbourServedNRCell-Information */ -typedef struct TDD_InfoNeighbourServedNRCell_Information { - NRFreqInfo_t nRFreqInfo; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} TDD_InfoNeighbourServedNRCell_Information_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_TDD_InfoNeighbourServedNRCell_Information; -extern asn_SEQUENCE_specifics_t asn_SPC_TDD_InfoNeighbourServedNRCell_Information_specs_1; -extern asn_TYPE_member_t asn_MBR_TDD_InfoNeighbourServedNRCell_Information_1[2]; - -#ifdef __cplusplus -} -#endif - -#endif /* _TDD_InfoNeighbourServedNRCell_Information_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/TDD-InfoServedNRCell-Information.c b/e2sim/previous/ASN1c/TDD-InfoServedNRCell-Information.c deleted file mode 100644 index 0105286..0000000 --- a/e2sim/previous/ASN1c/TDD-InfoServedNRCell-Information.c +++ /dev/null @@ -1,91 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "TDD-InfoServedNRCell-Information.h" - -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_TDD_InfoServedNRCell_Information_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct TDD_InfoServedNRCell_Information, nRFreqInfo), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NRFreqInfo, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "nRFreqInfo" - }, - { ATF_NOFLAGS, 0, offsetof(struct TDD_InfoServedNRCell_Information, nR_TxBW), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NR_TxBW, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "nR-TxBW" - }, - { ATF_POINTER, 1, offsetof(struct TDD_InfoServedNRCell_Information, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P95, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_TDD_InfoServedNRCell_Information_oms_1[] = { 2 }; -static const ber_tlv_tag_t asn_DEF_TDD_InfoServedNRCell_Information_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_TDD_InfoServedNRCell_Information_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nRFreqInfo */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* nR-TxBW */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_TDD_InfoServedNRCell_Information_specs_1 = { - sizeof(struct TDD_InfoServedNRCell_Information), - offsetof(struct TDD_InfoServedNRCell_Information, _asn_ctx), - asn_MAP_TDD_InfoServedNRCell_Information_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_TDD_InfoServedNRCell_Information_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_TDD_InfoServedNRCell_Information = { - "TDD-InfoServedNRCell-Information", - "TDD-InfoServedNRCell-Information", - &asn_OP_SEQUENCE, - asn_DEF_TDD_InfoServedNRCell_Information_tags_1, - sizeof(asn_DEF_TDD_InfoServedNRCell_Information_tags_1) - /sizeof(asn_DEF_TDD_InfoServedNRCell_Information_tags_1[0]), /* 1 */ - asn_DEF_TDD_InfoServedNRCell_Information_tags_1, /* Same as above */ - sizeof(asn_DEF_TDD_InfoServedNRCell_Information_tags_1) - /sizeof(asn_DEF_TDD_InfoServedNRCell_Information_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_TDD_InfoServedNRCell_Information_1, - 3, /* Elements count */ - &asn_SPC_TDD_InfoServedNRCell_Information_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/TDD-InfoServedNRCell-Information.h b/e2sim/previous/ASN1c/TDD-InfoServedNRCell-Information.h deleted file mode 100644 index 66bbdb6..0000000 --- a/e2sim/previous/ASN1c/TDD-InfoServedNRCell-Information.h +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _TDD_InfoServedNRCell_Information_H_ -#define _TDD_InfoServedNRCell_Information_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NRFreqInfo.h" -#include "NR-TxBW.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* TDD-InfoServedNRCell-Information */ -typedef struct TDD_InfoServedNRCell_Information { - NRFreqInfo_t nRFreqInfo; - NR_TxBW_t nR_TxBW; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} TDD_InfoServedNRCell_Information_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_TDD_InfoServedNRCell_Information; -extern asn_SEQUENCE_specifics_t asn_SPC_TDD_InfoServedNRCell_Information_specs_1; -extern asn_TYPE_member_t asn_MBR_TDD_InfoServedNRCell_Information_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _TDD_InfoServedNRCell_Information_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/TargetCellInUTRAN.c b/e2sim/previous/ASN1c/TargetCellInUTRAN.c deleted file mode 100644 index d93804b..0000000 --- a/e2sim/previous/ASN1c/TargetCellInUTRAN.c +++ /dev/null @@ -1,49 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "TargetCellInUTRAN.h" - -/* - * This type is implemented using OCTET_STRING, - * so here we adjust the DEF accordingly. - */ -static const ber_tlv_tag_t asn_DEF_TargetCellInUTRAN_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_TargetCellInUTRAN = { - "TargetCellInUTRAN", - "TargetCellInUTRAN", - &asn_OP_OCTET_STRING, - asn_DEF_TargetCellInUTRAN_tags_1, - sizeof(asn_DEF_TargetCellInUTRAN_tags_1) - /sizeof(asn_DEF_TargetCellInUTRAN_tags_1[0]), /* 1 */ - asn_DEF_TargetCellInUTRAN_tags_1, /* Same as above */ - sizeof(asn_DEF_TargetCellInUTRAN_tags_1) - /sizeof(asn_DEF_TargetCellInUTRAN_tags_1[0]), /* 1 */ - { 0, 0, OCTET_STRING_constraint }, - 0, 0, /* No members */ - &asn_SPC_OCTET_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/TargetCellInUTRAN.h b/e2sim/previous/ASN1c/TargetCellInUTRAN.h deleted file mode 100644 index 00f5045..0000000 --- a/e2sim/previous/ASN1c/TargetCellInUTRAN.h +++ /dev/null @@ -1,61 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _TargetCellInUTRAN_H_ -#define _TargetCellInUTRAN_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "OCTET_STRING.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* TargetCellInUTRAN */ -typedef OCTET_STRING_t TargetCellInUTRAN_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_TargetCellInUTRAN; -asn_struct_free_f TargetCellInUTRAN_free; -asn_struct_print_f TargetCellInUTRAN_print; -asn_constr_check_f TargetCellInUTRAN_constraint; -ber_type_decoder_f TargetCellInUTRAN_decode_ber; -der_type_encoder_f TargetCellInUTRAN_encode_der; -xer_type_decoder_f TargetCellInUTRAN_decode_xer; -xer_type_encoder_f TargetCellInUTRAN_encode_xer; -per_type_decoder_f TargetCellInUTRAN_decode_uper; -per_type_encoder_f TargetCellInUTRAN_encode_uper; -per_type_decoder_f TargetCellInUTRAN_decode_aper; -per_type_encoder_f TargetCellInUTRAN_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _TargetCellInUTRAN_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/TargeteNBtoSource-eNBTransparentContainer.c b/e2sim/previous/ASN1c/TargeteNBtoSource-eNBTransparentContainer.c deleted file mode 100644 index 7aa234e..0000000 --- a/e2sim/previous/ASN1c/TargeteNBtoSource-eNBTransparentContainer.c +++ /dev/null @@ -1,49 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "TargeteNBtoSource-eNBTransparentContainer.h" - -/* - * This type is implemented using OCTET_STRING, - * so here we adjust the DEF accordingly. - */ -static const ber_tlv_tag_t asn_DEF_TargeteNBtoSource_eNBTransparentContainer_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_TargeteNBtoSource_eNBTransparentContainer = { - "TargeteNBtoSource-eNBTransparentContainer", - "TargeteNBtoSource-eNBTransparentContainer", - &asn_OP_OCTET_STRING, - asn_DEF_TargeteNBtoSource_eNBTransparentContainer_tags_1, - sizeof(asn_DEF_TargeteNBtoSource_eNBTransparentContainer_tags_1) - /sizeof(asn_DEF_TargeteNBtoSource_eNBTransparentContainer_tags_1[0]), /* 1 */ - asn_DEF_TargeteNBtoSource_eNBTransparentContainer_tags_1, /* Same as above */ - sizeof(asn_DEF_TargeteNBtoSource_eNBTransparentContainer_tags_1) - /sizeof(asn_DEF_TargeteNBtoSource_eNBTransparentContainer_tags_1[0]), /* 1 */ - { 0, 0, OCTET_STRING_constraint }, - 0, 0, /* No members */ - &asn_SPC_OCTET_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/TargeteNBtoSource-eNBTransparentContainer.h b/e2sim/previous/ASN1c/TargeteNBtoSource-eNBTransparentContainer.h deleted file mode 100644 index 0f9c27f..0000000 --- a/e2sim/previous/ASN1c/TargeteNBtoSource-eNBTransparentContainer.h +++ /dev/null @@ -1,61 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _TargeteNBtoSource_eNBTransparentContainer_H_ -#define _TargeteNBtoSource_eNBTransparentContainer_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "OCTET_STRING.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* TargeteNBtoSource-eNBTransparentContainer */ -typedef OCTET_STRING_t TargeteNBtoSource_eNBTransparentContainer_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_TargeteNBtoSource_eNBTransparentContainer; -asn_struct_free_f TargeteNBtoSource_eNBTransparentContainer_free; -asn_struct_print_f TargeteNBtoSource_eNBTransparentContainer_print; -asn_constr_check_f TargeteNBtoSource_eNBTransparentContainer_constraint; -ber_type_decoder_f TargeteNBtoSource_eNBTransparentContainer_decode_ber; -der_type_encoder_f TargeteNBtoSource_eNBTransparentContainer_encode_der; -xer_type_decoder_f TargeteNBtoSource_eNBTransparentContainer_decode_xer; -xer_type_encoder_f TargeteNBtoSource_eNBTransparentContainer_encode_xer; -per_type_decoder_f TargeteNBtoSource_eNBTransparentContainer_decode_uper; -per_type_encoder_f TargeteNBtoSource_eNBTransparentContainer_encode_uper; -per_type_decoder_f TargeteNBtoSource_eNBTransparentContainer_decode_aper; -per_type_encoder_f TargeteNBtoSource_eNBTransparentContainer_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _TargeteNBtoSource_eNBTransparentContainer_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/Threshold-RSRP.c b/e2sim/previous/ASN1c/Threshold-RSRP.c deleted file mode 100644 index e5de0b7..0000000 --- a/e2sim/previous/ASN1c/Threshold-RSRP.c +++ /dev/null @@ -1,79 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "Threshold-RSRP.h" - -int -Threshold_RSRP_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 97)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using NativeInteger, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_Threshold_RSRP_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED, 7, 7, 0, 97 } /* (0..97) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_Threshold_RSRP_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_Threshold_RSRP = { - "Threshold-RSRP", - "Threshold-RSRP", - &asn_OP_NativeInteger, - asn_DEF_Threshold_RSRP_tags_1, - sizeof(asn_DEF_Threshold_RSRP_tags_1) - /sizeof(asn_DEF_Threshold_RSRP_tags_1[0]), /* 1 */ - asn_DEF_Threshold_RSRP_tags_1, /* Same as above */ - sizeof(asn_DEF_Threshold_RSRP_tags_1) - /sizeof(asn_DEF_Threshold_RSRP_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_Threshold_RSRP_constr_1, Threshold_RSRP_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/previous/ASN1c/Threshold-RSRP.h b/e2sim/previous/ASN1c/Threshold-RSRP.h deleted file mode 100644 index 71b59aa..0000000 --- a/e2sim/previous/ASN1c/Threshold-RSRP.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _Threshold_RSRP_H_ -#define _Threshold_RSRP_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeInteger.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Threshold-RSRP */ -typedef long Threshold_RSRP_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_Threshold_RSRP_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_Threshold_RSRP; -asn_struct_free_f Threshold_RSRP_free; -asn_struct_print_f Threshold_RSRP_print; -asn_constr_check_f Threshold_RSRP_constraint; -ber_type_decoder_f Threshold_RSRP_decode_ber; -der_type_encoder_f Threshold_RSRP_encode_der; -xer_type_decoder_f Threshold_RSRP_decode_xer; -xer_type_encoder_f Threshold_RSRP_encode_xer; -per_type_decoder_f Threshold_RSRP_decode_uper; -per_type_encoder_f Threshold_RSRP_encode_uper; -per_type_decoder_f Threshold_RSRP_decode_aper; -per_type_encoder_f Threshold_RSRP_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _Threshold_RSRP_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/Threshold-RSRQ.c b/e2sim/previous/ASN1c/Threshold-RSRQ.c deleted file mode 100644 index ee0ba49..0000000 --- a/e2sim/previous/ASN1c/Threshold-RSRQ.c +++ /dev/null @@ -1,79 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "Threshold-RSRQ.h" - -int -Threshold_RSRQ_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 34)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using NativeInteger, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_Threshold_RSRQ_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED, 6, 6, 0, 34 } /* (0..34) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_Threshold_RSRQ_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_Threshold_RSRQ = { - "Threshold-RSRQ", - "Threshold-RSRQ", - &asn_OP_NativeInteger, - asn_DEF_Threshold_RSRQ_tags_1, - sizeof(asn_DEF_Threshold_RSRQ_tags_1) - /sizeof(asn_DEF_Threshold_RSRQ_tags_1[0]), /* 1 */ - asn_DEF_Threshold_RSRQ_tags_1, /* Same as above */ - sizeof(asn_DEF_Threshold_RSRQ_tags_1) - /sizeof(asn_DEF_Threshold_RSRQ_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_Threshold_RSRQ_constr_1, Threshold_RSRQ_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/previous/ASN1c/Threshold-RSRQ.h b/e2sim/previous/ASN1c/Threshold-RSRQ.h deleted file mode 100644 index 93da48f..0000000 --- a/e2sim/previous/ASN1c/Threshold-RSRQ.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _Threshold_RSRQ_H_ -#define _Threshold_RSRQ_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeInteger.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Threshold-RSRQ */ -typedef long Threshold_RSRQ_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_Threshold_RSRQ_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_Threshold_RSRQ; -asn_struct_free_f Threshold_RSRQ_free; -asn_struct_print_f Threshold_RSRQ_print; -asn_constr_check_f Threshold_RSRQ_constraint; -ber_type_decoder_f Threshold_RSRQ_decode_ber; -der_type_encoder_f Threshold_RSRQ_encode_der; -xer_type_decoder_f Threshold_RSRQ_decode_xer; -xer_type_encoder_f Threshold_RSRQ_encode_xer; -per_type_decoder_f Threshold_RSRQ_decode_uper; -per_type_encoder_f Threshold_RSRQ_encode_uper; -per_type_decoder_f Threshold_RSRQ_decode_aper; -per_type_encoder_f Threshold_RSRQ_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _Threshold_RSRQ_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/Time-UE-StayedInCell-EnhancedGranularity.c b/e2sim/previous/ASN1c/Time-UE-StayedInCell-EnhancedGranularity.c deleted file mode 100644 index 80f2847..0000000 --- a/e2sim/previous/ASN1c/Time-UE-StayedInCell-EnhancedGranularity.c +++ /dev/null @@ -1,79 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "Time-UE-StayedInCell-EnhancedGranularity.h" - -int -Time_UE_StayedInCell_EnhancedGranularity_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 40950)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using NativeInteger, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_Time_UE_StayedInCell_EnhancedGranularity_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 40950 } /* (0..40950) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_Time_UE_StayedInCell_EnhancedGranularity_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_Time_UE_StayedInCell_EnhancedGranularity = { - "Time-UE-StayedInCell-EnhancedGranularity", - "Time-UE-StayedInCell-EnhancedGranularity", - &asn_OP_NativeInteger, - asn_DEF_Time_UE_StayedInCell_EnhancedGranularity_tags_1, - sizeof(asn_DEF_Time_UE_StayedInCell_EnhancedGranularity_tags_1) - /sizeof(asn_DEF_Time_UE_StayedInCell_EnhancedGranularity_tags_1[0]), /* 1 */ - asn_DEF_Time_UE_StayedInCell_EnhancedGranularity_tags_1, /* Same as above */ - sizeof(asn_DEF_Time_UE_StayedInCell_EnhancedGranularity_tags_1) - /sizeof(asn_DEF_Time_UE_StayedInCell_EnhancedGranularity_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_Time_UE_StayedInCell_EnhancedGranularity_constr_1, Time_UE_StayedInCell_EnhancedGranularity_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/previous/ASN1c/Time-UE-StayedInCell-EnhancedGranularity.h b/e2sim/previous/ASN1c/Time-UE-StayedInCell-EnhancedGranularity.h deleted file mode 100644 index 4425e58..0000000 --- a/e2sim/previous/ASN1c/Time-UE-StayedInCell-EnhancedGranularity.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _Time_UE_StayedInCell_EnhancedGranularity_H_ -#define _Time_UE_StayedInCell_EnhancedGranularity_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeInteger.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Time-UE-StayedInCell-EnhancedGranularity */ -typedef long Time_UE_StayedInCell_EnhancedGranularity_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_Time_UE_StayedInCell_EnhancedGranularity_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_Time_UE_StayedInCell_EnhancedGranularity; -asn_struct_free_f Time_UE_StayedInCell_EnhancedGranularity_free; -asn_struct_print_f Time_UE_StayedInCell_EnhancedGranularity_print; -asn_constr_check_f Time_UE_StayedInCell_EnhancedGranularity_constraint; -ber_type_decoder_f Time_UE_StayedInCell_EnhancedGranularity_decode_ber; -der_type_encoder_f Time_UE_StayedInCell_EnhancedGranularity_encode_der; -xer_type_decoder_f Time_UE_StayedInCell_EnhancedGranularity_decode_xer; -xer_type_encoder_f Time_UE_StayedInCell_EnhancedGranularity_encode_xer; -per_type_decoder_f Time_UE_StayedInCell_EnhancedGranularity_decode_uper; -per_type_encoder_f Time_UE_StayedInCell_EnhancedGranularity_encode_uper; -per_type_decoder_f Time_UE_StayedInCell_EnhancedGranularity_decode_aper; -per_type_encoder_f Time_UE_StayedInCell_EnhancedGranularity_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _Time_UE_StayedInCell_EnhancedGranularity_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/Time-UE-StayedInCell.c b/e2sim/previous/ASN1c/Time-UE-StayedInCell.c deleted file mode 100644 index 8d03086..0000000 --- a/e2sim/previous/ASN1c/Time-UE-StayedInCell.c +++ /dev/null @@ -1,79 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "Time-UE-StayedInCell.h" - -int -Time_UE_StayedInCell_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 4095)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using NativeInteger, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_Time_UE_StayedInCell_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED, 12, 12, 0, 4095 } /* (0..4095) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_Time_UE_StayedInCell_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_Time_UE_StayedInCell = { - "Time-UE-StayedInCell", - "Time-UE-StayedInCell", - &asn_OP_NativeInteger, - asn_DEF_Time_UE_StayedInCell_tags_1, - sizeof(asn_DEF_Time_UE_StayedInCell_tags_1) - /sizeof(asn_DEF_Time_UE_StayedInCell_tags_1[0]), /* 1 */ - asn_DEF_Time_UE_StayedInCell_tags_1, /* Same as above */ - sizeof(asn_DEF_Time_UE_StayedInCell_tags_1) - /sizeof(asn_DEF_Time_UE_StayedInCell_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_Time_UE_StayedInCell_constr_1, Time_UE_StayedInCell_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/previous/ASN1c/Time-UE-StayedInCell.h b/e2sim/previous/ASN1c/Time-UE-StayedInCell.h deleted file mode 100644 index aeff8e5..0000000 --- a/e2sim/previous/ASN1c/Time-UE-StayedInCell.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _Time_UE_StayedInCell_H_ -#define _Time_UE_StayedInCell_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeInteger.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Time-UE-StayedInCell */ -typedef long Time_UE_StayedInCell_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_Time_UE_StayedInCell_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_Time_UE_StayedInCell; -asn_struct_free_f Time_UE_StayedInCell_free; -asn_struct_print_f Time_UE_StayedInCell_print; -asn_constr_check_f Time_UE_StayedInCell_constraint; -ber_type_decoder_f Time_UE_StayedInCell_decode_ber; -der_type_encoder_f Time_UE_StayedInCell_encode_der; -xer_type_decoder_f Time_UE_StayedInCell_decode_xer; -xer_type_encoder_f Time_UE_StayedInCell_encode_xer; -per_type_decoder_f Time_UE_StayedInCell_decode_uper; -per_type_encoder_f Time_UE_StayedInCell_encode_uper; -per_type_decoder_f Time_UE_StayedInCell_decode_aper; -per_type_encoder_f Time_UE_StayedInCell_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _Time_UE_StayedInCell_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/TimeStamp.c b/e2sim/previous/ASN1c/TimeStamp.c deleted file mode 100644 index c4df0a4..0000000 --- a/e2sim/previous/ASN1c/TimeStamp.c +++ /dev/null @@ -1,80 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-gNB-X2-IEs" - * found in "../../asnFiles/e2sm-gNB-X2-release-1-v041.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "TimeStamp.h" - -int -TimeStamp_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - size = st->size; - - if((size == 8)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using OCTET_STRING, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_TimeStamp_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 0, 0, 8, 8 } /* (SIZE(8..8)) */, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_TimeStamp_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_TimeStamp = { - "TimeStamp", - "TimeStamp", - &asn_OP_OCTET_STRING, - asn_DEF_TimeStamp_tags_1, - sizeof(asn_DEF_TimeStamp_tags_1) - /sizeof(asn_DEF_TimeStamp_tags_1[0]), /* 1 */ - asn_DEF_TimeStamp_tags_1, /* Same as above */ - sizeof(asn_DEF_TimeStamp_tags_1) - /sizeof(asn_DEF_TimeStamp_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_TimeStamp_constr_1, TimeStamp_constraint }, - 0, 0, /* No members */ - &asn_SPC_OCTET_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/TimeStamp.h b/e2sim/previous/ASN1c/TimeStamp.h deleted file mode 100644 index 26bed14..0000000 --- a/e2sim/previous/ASN1c/TimeStamp.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-gNB-X2-IEs" - * found in "../../asnFiles/e2sm-gNB-X2-release-1-v041.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _TimeStamp_H_ -#define _TimeStamp_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "OCTET_STRING.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* TimeStamp */ -typedef OCTET_STRING_t TimeStamp_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_TimeStamp_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_TimeStamp; -asn_struct_free_f TimeStamp_free; -asn_struct_print_f TimeStamp_print; -asn_constr_check_f TimeStamp_constraint; -ber_type_decoder_f TimeStamp_decode_ber; -der_type_encoder_f TimeStamp_encode_der; -xer_type_decoder_f TimeStamp_decode_xer; -xer_type_encoder_f TimeStamp_encode_xer; -per_type_decoder_f TimeStamp_decode_uper; -per_type_encoder_f TimeStamp_encode_uper; -per_type_decoder_f TimeStamp_decode_aper; -per_type_encoder_f TimeStamp_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _TimeStamp_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/TimeToWait.c b/e2sim/previous/ASN1c/TimeToWait.c deleted file mode 100644 index 181619b..0000000 --- a/e2sim/previous/ASN1c/TimeToWait.c +++ /dev/null @@ -1,81 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "TimeToWait.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_TimeToWait_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 5 } /* (0..5,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_TimeToWait_value2enum_1[] = { - { 0, 3, "v1s" }, - { 1, 3, "v2s" }, - { 2, 3, "v5s" }, - { 3, 4, "v10s" }, - { 4, 4, "v20s" }, - { 5, 4, "v60s" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_TimeToWait_enum2value_1[] = { - 3, /* v10s(3) */ - 0, /* v1s(0) */ - 4, /* v20s(4) */ - 1, /* v2s(1) */ - 2, /* v5s(2) */ - 5 /* v60s(5) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_TimeToWait_specs_1 = { - asn_MAP_TimeToWait_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_TimeToWait_enum2value_1, /* N => "tag"; sorted by N */ - 6, /* Number of elements in the maps */ - 7, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_TimeToWait_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_TimeToWait = { - "TimeToWait", - "TimeToWait", - &asn_OP_NativeEnumerated, - asn_DEF_TimeToWait_tags_1, - sizeof(asn_DEF_TimeToWait_tags_1) - /sizeof(asn_DEF_TimeToWait_tags_1[0]), /* 1 */ - asn_DEF_TimeToWait_tags_1, /* Same as above */ - sizeof(asn_DEF_TimeToWait_tags_1) - /sizeof(asn_DEF_TimeToWait_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_TimeToWait_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_TimeToWait_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/TimeToWait.h b/e2sim/previous/ASN1c/TimeToWait.h deleted file mode 100644 index 8f81ea5..0000000 --- a/e2sim/previous/ASN1c/TimeToWait.h +++ /dev/null @@ -1,76 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _TimeToWait_H_ -#define _TimeToWait_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum TimeToWait { - TimeToWait_v1s = 0, - TimeToWait_v2s = 1, - TimeToWait_v5s = 2, - TimeToWait_v10s = 3, - TimeToWait_v20s = 4, - TimeToWait_v60s = 5 - /* - * Enumeration is extensible - */ -} e_TimeToWait; - -/* TimeToWait */ -typedef long TimeToWait_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_TimeToWait_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_TimeToWait; -extern const asn_INTEGER_specifics_t asn_SPC_TimeToWait_specs_1; -asn_struct_free_f TimeToWait_free; -asn_struct_print_f TimeToWait_print; -asn_constr_check_f TimeToWait_constraint; -ber_type_decoder_f TimeToWait_decode_ber; -der_type_encoder_f TimeToWait_encode_der; -xer_type_decoder_f TimeToWait_decode_xer; -xer_type_encoder_f TimeToWait_encode_xer; -per_type_decoder_f TimeToWait_decode_uper; -per_type_encoder_f TimeToWait_encode_uper; -per_type_decoder_f TimeToWait_decode_aper; -per_type_encoder_f TimeToWait_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _TimeToWait_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/TraceActivation.c b/e2sim/previous/ASN1c/TraceActivation.c deleted file mode 100644 index 3b811c8..0000000 --- a/e2sim/previous/ASN1c/TraceActivation.c +++ /dev/null @@ -1,111 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "TraceActivation.h" - -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_TraceActivation_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct TraceActivation, eUTRANTraceID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_EUTRANTraceID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "eUTRANTraceID" - }, - { ATF_NOFLAGS, 0, offsetof(struct TraceActivation, interfacesToTrace), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_InterfacesToTrace, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "interfacesToTrace" - }, - { ATF_NOFLAGS, 0, offsetof(struct TraceActivation, traceDepth), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_TraceDepth, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "traceDepth" - }, - { ATF_NOFLAGS, 0, offsetof(struct TraceActivation, traceCollectionEntityIPAddress), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_TraceCollectionEntityIPAddress, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "traceCollectionEntityIPAddress" - }, - { ATF_POINTER, 1, offsetof(struct TraceActivation, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (4 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P207, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_TraceActivation_oms_1[] = { 4 }; -static const ber_tlv_tag_t asn_DEF_TraceActivation_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_TraceActivation_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* eUTRANTraceID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* interfacesToTrace */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* traceDepth */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* traceCollectionEntityIPAddress */ - { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_TraceActivation_specs_1 = { - sizeof(struct TraceActivation), - offsetof(struct TraceActivation, _asn_ctx), - asn_MAP_TraceActivation_tag2el_1, - 5, /* Count of tags in the map */ - asn_MAP_TraceActivation_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 5, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_TraceActivation = { - "TraceActivation", - "TraceActivation", - &asn_OP_SEQUENCE, - asn_DEF_TraceActivation_tags_1, - sizeof(asn_DEF_TraceActivation_tags_1) - /sizeof(asn_DEF_TraceActivation_tags_1[0]), /* 1 */ - asn_DEF_TraceActivation_tags_1, /* Same as above */ - sizeof(asn_DEF_TraceActivation_tags_1) - /sizeof(asn_DEF_TraceActivation_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_TraceActivation_1, - 5, /* Elements count */ - &asn_SPC_TraceActivation_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/TraceActivation.h b/e2sim/previous/ASN1c/TraceActivation.h deleted file mode 100644 index 789a9fa..0000000 --- a/e2sim/previous/ASN1c/TraceActivation.h +++ /dev/null @@ -1,72 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _TraceActivation_H_ -#define _TraceActivation_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "EUTRANTraceID.h" -#include "InterfacesToTrace.h" -#include "TraceDepth.h" -#include "TraceCollectionEntityIPAddress.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* TraceActivation */ -typedef struct TraceActivation { - EUTRANTraceID_t eUTRANTraceID; - InterfacesToTrace_t interfacesToTrace; - TraceDepth_t traceDepth; - TraceCollectionEntityIPAddress_t traceCollectionEntityIPAddress; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} TraceActivation_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_TraceActivation; -extern asn_SEQUENCE_specifics_t asn_SPC_TraceActivation_specs_1; -extern asn_TYPE_member_t asn_MBR_TraceActivation_1[5]; - -#ifdef __cplusplus -} -#endif - -#endif /* _TraceActivation_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/TraceCollectionEntityIPAddress.c b/e2sim/previous/ASN1c/TraceCollectionEntityIPAddress.c deleted file mode 100644 index 8a3e531..0000000 --- a/e2sim/previous/ASN1c/TraceCollectionEntityIPAddress.c +++ /dev/null @@ -1,85 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "TraceCollectionEntityIPAddress.h" - -int -TraceCollectionEntityIPAddress_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if(st->size > 0) { - /* Size in bits */ - size = 8 * st->size - (st->bits_unused & 0x07); - } else { - size = 0; - } - - if((size >= 1 && size <= 160)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using BIT_STRING, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_TraceCollectionEntityIPAddress_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED | APC_EXTENSIBLE, 8, 8, 1, 160 } /* (SIZE(1..160,...)) */, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_TraceCollectionEntityIPAddress_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_TraceCollectionEntityIPAddress = { - "TraceCollectionEntityIPAddress", - "TraceCollectionEntityIPAddress", - &asn_OP_BIT_STRING, - asn_DEF_TraceCollectionEntityIPAddress_tags_1, - sizeof(asn_DEF_TraceCollectionEntityIPAddress_tags_1) - /sizeof(asn_DEF_TraceCollectionEntityIPAddress_tags_1[0]), /* 1 */ - asn_DEF_TraceCollectionEntityIPAddress_tags_1, /* Same as above */ - sizeof(asn_DEF_TraceCollectionEntityIPAddress_tags_1) - /sizeof(asn_DEF_TraceCollectionEntityIPAddress_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_TraceCollectionEntityIPAddress_constr_1, TraceCollectionEntityIPAddress_constraint }, - 0, 0, /* No members */ - &asn_SPC_BIT_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/TraceCollectionEntityIPAddress.h b/e2sim/previous/ASN1c/TraceCollectionEntityIPAddress.h deleted file mode 100644 index d98f29b..0000000 --- a/e2sim/previous/ASN1c/TraceCollectionEntityIPAddress.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _TraceCollectionEntityIPAddress_H_ -#define _TraceCollectionEntityIPAddress_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "BIT_STRING.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* TraceCollectionEntityIPAddress */ -typedef BIT_STRING_t TraceCollectionEntityIPAddress_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_TraceCollectionEntityIPAddress_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_TraceCollectionEntityIPAddress; -asn_struct_free_f TraceCollectionEntityIPAddress_free; -asn_struct_print_f TraceCollectionEntityIPAddress_print; -asn_constr_check_f TraceCollectionEntityIPAddress_constraint; -ber_type_decoder_f TraceCollectionEntityIPAddress_decode_ber; -der_type_encoder_f TraceCollectionEntityIPAddress_encode_der; -xer_type_decoder_f TraceCollectionEntityIPAddress_decode_xer; -xer_type_encoder_f TraceCollectionEntityIPAddress_encode_xer; -per_type_decoder_f TraceCollectionEntityIPAddress_decode_uper; -per_type_encoder_f TraceCollectionEntityIPAddress_encode_uper; -per_type_decoder_f TraceCollectionEntityIPAddress_decode_aper; -per_type_encoder_f TraceCollectionEntityIPAddress_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _TraceCollectionEntityIPAddress_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/TraceDepth.c b/e2sim/previous/ASN1c/TraceDepth.c deleted file mode 100644 index bb0829a..0000000 --- a/e2sim/previous/ASN1c/TraceDepth.c +++ /dev/null @@ -1,81 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "TraceDepth.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_TraceDepth_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 5 } /* (0..5,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_TraceDepth_value2enum_1[] = { - { 0, 7, "minimum" }, - { 1, 6, "medium" }, - { 2, 7, "maximum" }, - { 3, 37, "minimumWithoutVendorSpecificExtension" }, - { 4, 36, "mediumWithoutVendorSpecificExtension" }, - { 5, 37, "maximumWithoutVendorSpecificExtension" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_TraceDepth_enum2value_1[] = { - 2, /* maximum(2) */ - 5, /* maximumWithoutVendorSpecificExtension(5) */ - 1, /* medium(1) */ - 4, /* mediumWithoutVendorSpecificExtension(4) */ - 0, /* minimum(0) */ - 3 /* minimumWithoutVendorSpecificExtension(3) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_TraceDepth_specs_1 = { - asn_MAP_TraceDepth_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_TraceDepth_enum2value_1, /* N => "tag"; sorted by N */ - 6, /* Number of elements in the maps */ - 7, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_TraceDepth_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_TraceDepth = { - "TraceDepth", - "TraceDepth", - &asn_OP_NativeEnumerated, - asn_DEF_TraceDepth_tags_1, - sizeof(asn_DEF_TraceDepth_tags_1) - /sizeof(asn_DEF_TraceDepth_tags_1[0]), /* 1 */ - asn_DEF_TraceDepth_tags_1, /* Same as above */ - sizeof(asn_DEF_TraceDepth_tags_1) - /sizeof(asn_DEF_TraceDepth_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_TraceDepth_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_TraceDepth_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/TraceDepth.h b/e2sim/previous/ASN1c/TraceDepth.h deleted file mode 100644 index b1c4337..0000000 --- a/e2sim/previous/ASN1c/TraceDepth.h +++ /dev/null @@ -1,76 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _TraceDepth_H_ -#define _TraceDepth_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum TraceDepth { - TraceDepth_minimum = 0, - TraceDepth_medium = 1, - TraceDepth_maximum = 2, - TraceDepth_minimumWithoutVendorSpecificExtension = 3, - TraceDepth_mediumWithoutVendorSpecificExtension = 4, - TraceDepth_maximumWithoutVendorSpecificExtension = 5 - /* - * Enumeration is extensible - */ -} e_TraceDepth; - -/* TraceDepth */ -typedef long TraceDepth_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_TraceDepth_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_TraceDepth; -extern const asn_INTEGER_specifics_t asn_SPC_TraceDepth_specs_1; -asn_struct_free_f TraceDepth_free; -asn_struct_print_f TraceDepth_print; -asn_constr_check_f TraceDepth_constraint; -ber_type_decoder_f TraceDepth_decode_ber; -der_type_encoder_f TraceDepth_encode_der; -xer_type_decoder_f TraceDepth_decode_xer; -xer_type_encoder_f TraceDepth_encode_xer; -per_type_decoder_f TraceDepth_decode_uper; -per_type_encoder_f TraceDepth_encode_uper; -per_type_decoder_f TraceDepth_decode_aper; -per_type_encoder_f TraceDepth_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _TraceDepth_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/Transmission-Bandwidth.c b/e2sim/previous/ASN1c/Transmission-Bandwidth.c deleted file mode 100644 index cd27f74..0000000 --- a/e2sim/previous/ASN1c/Transmission-Bandwidth.c +++ /dev/null @@ -1,83 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "Transmission-Bandwidth.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_Transmission_Bandwidth_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 5 } /* (0..5,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_Transmission_Bandwidth_value2enum_1[] = { - { 0, 3, "bw6" }, - { 1, 4, "bw15" }, - { 2, 4, "bw25" }, - { 3, 4, "bw50" }, - { 4, 4, "bw75" }, - { 5, 5, "bw100" }, - { 6, 3, "bw1" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_Transmission_Bandwidth_enum2value_1[] = { - 6, /* bw1(6) */ - 5, /* bw100(5) */ - 1, /* bw15(1) */ - 2, /* bw25(2) */ - 3, /* bw50(3) */ - 0, /* bw6(0) */ - 4 /* bw75(4) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_Transmission_Bandwidth_specs_1 = { - asn_MAP_Transmission_Bandwidth_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_Transmission_Bandwidth_enum2value_1, /* N => "tag"; sorted by N */ - 7, /* Number of elements in the maps */ - 7, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_Transmission_Bandwidth_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_Transmission_Bandwidth = { - "Transmission-Bandwidth", - "Transmission-Bandwidth", - &asn_OP_NativeEnumerated, - asn_DEF_Transmission_Bandwidth_tags_1, - sizeof(asn_DEF_Transmission_Bandwidth_tags_1) - /sizeof(asn_DEF_Transmission_Bandwidth_tags_1[0]), /* 1 */ - asn_DEF_Transmission_Bandwidth_tags_1, /* Same as above */ - sizeof(asn_DEF_Transmission_Bandwidth_tags_1) - /sizeof(asn_DEF_Transmission_Bandwidth_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_Transmission_Bandwidth_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_Transmission_Bandwidth_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/Transmission-Bandwidth.h b/e2sim/previous/ASN1c/Transmission-Bandwidth.h deleted file mode 100644 index 60e66c6..0000000 --- a/e2sim/previous/ASN1c/Transmission-Bandwidth.h +++ /dev/null @@ -1,77 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _Transmission_Bandwidth_H_ -#define _Transmission_Bandwidth_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum Transmission_Bandwidth { - Transmission_Bandwidth_bw6 = 0, - Transmission_Bandwidth_bw15 = 1, - Transmission_Bandwidth_bw25 = 2, - Transmission_Bandwidth_bw50 = 3, - Transmission_Bandwidth_bw75 = 4, - Transmission_Bandwidth_bw100 = 5, - /* - * Enumeration is extensible - */ - Transmission_Bandwidth_bw1 = 6 -} e_Transmission_Bandwidth; - -/* Transmission-Bandwidth */ -typedef long Transmission_Bandwidth_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_Transmission_Bandwidth_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_Transmission_Bandwidth; -extern const asn_INTEGER_specifics_t asn_SPC_Transmission_Bandwidth_specs_1; -asn_struct_free_f Transmission_Bandwidth_free; -asn_struct_print_f Transmission_Bandwidth_print; -asn_constr_check_f Transmission_Bandwidth_constraint; -ber_type_decoder_f Transmission_Bandwidth_decode_ber; -der_type_encoder_f Transmission_Bandwidth_encode_der; -xer_type_decoder_f Transmission_Bandwidth_decode_xer; -xer_type_encoder_f Transmission_Bandwidth_encode_xer; -per_type_decoder_f Transmission_Bandwidth_decode_uper; -per_type_encoder_f Transmission_Bandwidth_encode_uper; -per_type_decoder_f Transmission_Bandwidth_decode_aper; -per_type_encoder_f Transmission_Bandwidth_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _Transmission_Bandwidth_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/TransportLayerAddress.c b/e2sim/previous/ASN1c/TransportLayerAddress.c deleted file mode 100644 index 2686a29..0000000 --- a/e2sim/previous/ASN1c/TransportLayerAddress.c +++ /dev/null @@ -1,85 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "TransportLayerAddress.h" - -int -TransportLayerAddress_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if(st->size > 0) { - /* Size in bits */ - size = 8 * st->size - (st->bits_unused & 0x07); - } else { - size = 0; - } - - if((size >= 1 && size <= 160)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using BIT_STRING, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_TransportLayerAddress_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED | APC_EXTENSIBLE, 8, 8, 1, 160 } /* (SIZE(1..160,...)) */, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_TransportLayerAddress_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_TransportLayerAddress = { - "TransportLayerAddress", - "TransportLayerAddress", - &asn_OP_BIT_STRING, - asn_DEF_TransportLayerAddress_tags_1, - sizeof(asn_DEF_TransportLayerAddress_tags_1) - /sizeof(asn_DEF_TransportLayerAddress_tags_1[0]), /* 1 */ - asn_DEF_TransportLayerAddress_tags_1, /* Same as above */ - sizeof(asn_DEF_TransportLayerAddress_tags_1) - /sizeof(asn_DEF_TransportLayerAddress_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_TransportLayerAddress_constr_1, TransportLayerAddress_constraint }, - 0, 0, /* No members */ - &asn_SPC_BIT_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/TransportLayerAddress.h b/e2sim/previous/ASN1c/TransportLayerAddress.h deleted file mode 100644 index f7bcd0e..0000000 --- a/e2sim/previous/ASN1c/TransportLayerAddress.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _TransportLayerAddress_H_ -#define _TransportLayerAddress_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "BIT_STRING.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* TransportLayerAddress */ -typedef BIT_STRING_t TransportLayerAddress_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_TransportLayerAddress_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_TransportLayerAddress; -asn_struct_free_f TransportLayerAddress_free; -asn_struct_print_f TransportLayerAddress_print; -asn_constr_check_f TransportLayerAddress_constraint; -ber_type_decoder_f TransportLayerAddress_decode_ber; -der_type_encoder_f TransportLayerAddress_encode_der; -xer_type_decoder_f TransportLayerAddress_decode_xer; -xer_type_encoder_f TransportLayerAddress_encode_xer; -per_type_decoder_f TransportLayerAddress_decode_uper; -per_type_encoder_f TransportLayerAddress_encode_uper; -per_type_decoder_f TransportLayerAddress_decode_aper; -per_type_encoder_f TransportLayerAddress_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _TransportLayerAddress_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/TriggeringMessage.c b/e2sim/previous/ASN1c/TriggeringMessage.c deleted file mode 100644 index 032b7c5..0000000 --- a/e2sim/previous/ASN1c/TriggeringMessage.c +++ /dev/null @@ -1,73 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-CommonDataTypes" - * found in "../../asnFiles/X2AP-CommonDataTypes.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "TriggeringMessage.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_TriggeringMessage_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_TriggeringMessage_value2enum_1[] = { - { 0, 18, "initiating-message" }, - { 1, 18, "successful-outcome" }, - { 2, 20, "unsuccessful-outcome" } -}; -static const unsigned int asn_MAP_TriggeringMessage_enum2value_1[] = { - 0, /* initiating-message(0) */ - 1, /* successful-outcome(1) */ - 2 /* unsuccessful-outcome(2) */ -}; -const asn_INTEGER_specifics_t asn_SPC_TriggeringMessage_specs_1 = { - asn_MAP_TriggeringMessage_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_TriggeringMessage_enum2value_1, /* N => "tag"; sorted by N */ - 3, /* Number of elements in the maps */ - 0, /* Enumeration is not extensible */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_TriggeringMessage_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_TriggeringMessage = { - "TriggeringMessage", - "TriggeringMessage", - &asn_OP_NativeEnumerated, - asn_DEF_TriggeringMessage_tags_1, - sizeof(asn_DEF_TriggeringMessage_tags_1) - /sizeof(asn_DEF_TriggeringMessage_tags_1[0]), /* 1 */ - asn_DEF_TriggeringMessage_tags_1, /* Same as above */ - sizeof(asn_DEF_TriggeringMessage_tags_1) - /sizeof(asn_DEF_TriggeringMessage_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_TriggeringMessage_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_TriggeringMessage_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/TriggeringMessage.h b/e2sim/previous/ASN1c/TriggeringMessage.h deleted file mode 100644 index 84092fc..0000000 --- a/e2sim/previous/ASN1c/TriggeringMessage.h +++ /dev/null @@ -1,70 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-CommonDataTypes" - * found in "../../asnFiles/X2AP-CommonDataTypes.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _TriggeringMessage_H_ -#define _TriggeringMessage_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum TriggeringMessage { - TriggeringMessage_initiating_message = 0, - TriggeringMessage_successful_outcome = 1, - TriggeringMessage_unsuccessful_outcome = 2 -} e_TriggeringMessage; - -/* TriggeringMessage */ -typedef long TriggeringMessage_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_TriggeringMessage_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_TriggeringMessage; -extern const asn_INTEGER_specifics_t asn_SPC_TriggeringMessage_specs_1; -asn_struct_free_f TriggeringMessage_free; -asn_struct_print_f TriggeringMessage_print; -asn_constr_check_f TriggeringMessage_constraint; -ber_type_decoder_f TriggeringMessage_decode_ber; -der_type_encoder_f TriggeringMessage_encode_der; -xer_type_decoder_f TriggeringMessage_decode_xer; -xer_type_encoder_f TriggeringMessage_encode_xer; -per_type_decoder_f TriggeringMessage_decode_uper; -per_type_encoder_f TriggeringMessage_encode_uper; -per_type_decoder_f TriggeringMessage_decode_aper; -per_type_encoder_f TriggeringMessage_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _TriggeringMessage_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/TunnelInformation.c b/e2sim/previous/ASN1c/TunnelInformation.c deleted file mode 100644 index a699760..0000000 --- a/e2sim/previous/ASN1c/TunnelInformation.c +++ /dev/null @@ -1,91 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "TunnelInformation.h" - -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_TunnelInformation_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct TunnelInformation, transportLayerAddress), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_TransportLayerAddress, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "transportLayerAddress" - }, - { ATF_POINTER, 2, offsetof(struct TunnelInformation, uDP_Port_Number), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Port_Number, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "uDP-Port-Number" - }, - { ATF_POINTER, 1, offsetof(struct TunnelInformation, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P208, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_TunnelInformation_oms_1[] = { 1, 2 }; -static const ber_tlv_tag_t asn_DEF_TunnelInformation_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_TunnelInformation_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* transportLayerAddress */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* uDP-Port-Number */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_TunnelInformation_specs_1 = { - sizeof(struct TunnelInformation), - offsetof(struct TunnelInformation, _asn_ctx), - asn_MAP_TunnelInformation_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_TunnelInformation_oms_1, /* Optional members */ - 2, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_TunnelInformation = { - "TunnelInformation", - "TunnelInformation", - &asn_OP_SEQUENCE, - asn_DEF_TunnelInformation_tags_1, - sizeof(asn_DEF_TunnelInformation_tags_1) - /sizeof(asn_DEF_TunnelInformation_tags_1[0]), /* 1 */ - asn_DEF_TunnelInformation_tags_1, /* Same as above */ - sizeof(asn_DEF_TunnelInformation_tags_1) - /sizeof(asn_DEF_TunnelInformation_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_TunnelInformation_1, - 3, /* Elements count */ - &asn_SPC_TunnelInformation_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/TunnelInformation.h b/e2sim/previous/ASN1c/TunnelInformation.h deleted file mode 100644 index d950390..0000000 --- a/e2sim/previous/ASN1c/TunnelInformation.h +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _TunnelInformation_H_ -#define _TunnelInformation_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "TransportLayerAddress.h" -#include "Port-Number.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* TunnelInformation */ -typedef struct TunnelInformation { - TransportLayerAddress_t transportLayerAddress; - Port_Number_t *uDP_Port_Number; /* OPTIONAL */ - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} TunnelInformation_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_TunnelInformation; -extern asn_SEQUENCE_specifics_t asn_SPC_TunnelInformation_specs_1; -extern asn_TYPE_member_t asn_MBR_TunnelInformation_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _TunnelInformation_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/TypeOfError.c b/e2sim/previous/ASN1c/TypeOfError.c deleted file mode 100644 index b846eea..0000000 --- a/e2sim/previous/ASN1c/TypeOfError.c +++ /dev/null @@ -1,73 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "TypeOfError.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_TypeOfError_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_TypeOfError_value2enum_1[] = { - { 0, 14, "not-understood" }, - { 1, 7, "missing" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_TypeOfError_enum2value_1[] = { - 1, /* missing(1) */ - 0 /* not-understood(0) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_TypeOfError_specs_1 = { - asn_MAP_TypeOfError_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_TypeOfError_enum2value_1, /* N => "tag"; sorted by N */ - 2, /* Number of elements in the maps */ - 3, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_TypeOfError_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_TypeOfError = { - "TypeOfError", - "TypeOfError", - &asn_OP_NativeEnumerated, - asn_DEF_TypeOfError_tags_1, - sizeof(asn_DEF_TypeOfError_tags_1) - /sizeof(asn_DEF_TypeOfError_tags_1[0]), /* 1 */ - asn_DEF_TypeOfError_tags_1, /* Same as above */ - sizeof(asn_DEF_TypeOfError_tags_1) - /sizeof(asn_DEF_TypeOfError_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_TypeOfError_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_TypeOfError_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/TypeOfError.h b/e2sim/previous/ASN1c/TypeOfError.h deleted file mode 100644 index e700f58..0000000 --- a/e2sim/previous/ASN1c/TypeOfError.h +++ /dev/null @@ -1,72 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _TypeOfError_H_ -#define _TypeOfError_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum TypeOfError { - TypeOfError_not_understood = 0, - TypeOfError_missing = 1 - /* - * Enumeration is extensible - */ -} e_TypeOfError; - -/* TypeOfError */ -typedef long TypeOfError_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_TypeOfError_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_TypeOfError; -extern const asn_INTEGER_specifics_t asn_SPC_TypeOfError_specs_1; -asn_struct_free_f TypeOfError_free; -asn_struct_print_f TypeOfError_print; -asn_constr_check_f TypeOfError_constraint; -ber_type_decoder_f TypeOfError_decode_ber; -der_type_encoder_f TypeOfError_encode_der; -xer_type_decoder_f TypeOfError_decode_xer; -xer_type_encoder_f TypeOfError_encode_xer; -per_type_decoder_f TypeOfError_decode_uper; -per_type_encoder_f TypeOfError_encode_uper; -per_type_decoder_f TypeOfError_decode_aper; -per_type_encoder_f TypeOfError_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _TypeOfError_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/TypeOfMessage.c b/e2sim/previous/ASN1c/TypeOfMessage.c deleted file mode 100644 index 47f27a9..0000000 --- a/e2sim/previous/ASN1c/TypeOfMessage.c +++ /dev/null @@ -1,75 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-gNB-X2-IEs" - * found in "../../asnFiles/e2sm-gNB-X2-release-1-v041.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "TypeOfMessage.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_TypeOfMessage_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 3 } /* (0..3) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_TypeOfMessage_value2enum_1[] = { - { 0, 7, "nothing" }, - { 1, 18, "initiating-message" }, - { 2, 18, "successful-outcome" }, - { 3, 20, "unsuccessful-outcome" } -}; -static const unsigned int asn_MAP_TypeOfMessage_enum2value_1[] = { - 1, /* initiating-message(1) */ - 0, /* nothing(0) */ - 2, /* successful-outcome(2) */ - 3 /* unsuccessful-outcome(3) */ -}; -const asn_INTEGER_specifics_t asn_SPC_TypeOfMessage_specs_1 = { - asn_MAP_TypeOfMessage_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_TypeOfMessage_enum2value_1, /* N => "tag"; sorted by N */ - 4, /* Number of elements in the maps */ - 0, /* Enumeration is not extensible */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_TypeOfMessage_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_TypeOfMessage = { - "TypeOfMessage", - "TypeOfMessage", - &asn_OP_NativeEnumerated, - asn_DEF_TypeOfMessage_tags_1, - sizeof(asn_DEF_TypeOfMessage_tags_1) - /sizeof(asn_DEF_TypeOfMessage_tags_1[0]), /* 1 */ - asn_DEF_TypeOfMessage_tags_1, /* Same as above */ - sizeof(asn_DEF_TypeOfMessage_tags_1) - /sizeof(asn_DEF_TypeOfMessage_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_TypeOfMessage_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_TypeOfMessage_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/TypeOfMessage.h b/e2sim/previous/ASN1c/TypeOfMessage.h deleted file mode 100644 index 9543bed..0000000 --- a/e2sim/previous/ASN1c/TypeOfMessage.h +++ /dev/null @@ -1,71 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-gNB-X2-IEs" - * found in "../../asnFiles/e2sm-gNB-X2-release-1-v041.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _TypeOfMessage_H_ -#define _TypeOfMessage_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum TypeOfMessage { - TypeOfMessage_nothing = 0, - TypeOfMessage_initiating_message = 1, - TypeOfMessage_successful_outcome = 2, - TypeOfMessage_unsuccessful_outcome = 3 -} e_TypeOfMessage; - -/* TypeOfMessage */ -typedef long TypeOfMessage_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_TypeOfMessage_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_TypeOfMessage; -extern const asn_INTEGER_specifics_t asn_SPC_TypeOfMessage_specs_1; -asn_struct_free_f TypeOfMessage_free; -asn_struct_print_f TypeOfMessage_print; -asn_constr_check_f TypeOfMessage_constraint; -ber_type_decoder_f TypeOfMessage_decode_ber; -der_type_encoder_f TypeOfMessage_encode_der; -xer_type_decoder_f TypeOfMessage_decode_xer; -xer_type_encoder_f TypeOfMessage_encode_xer; -per_type_decoder_f TypeOfMessage_decode_uper; -per_type_encoder_f TypeOfMessage_encode_uper; -per_type_decoder_f TypeOfMessage_decode_aper; -per_type_encoder_f TypeOfMessage_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _TypeOfMessage_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/UE-ContextInformation-SgNBModReq.c b/e2sim/previous/ASN1c/UE-ContextInformation-SgNBModReq.c deleted file mode 100644 index 3971b12..0000000 --- a/e2sim/previous/ASN1c/UE-ContextInformation-SgNBModReq.c +++ /dev/null @@ -1,136 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "UE-ContextInformation-SgNBModReq.h" - -#include "NRUESecurityCapabilities.h" -#include "UEAggregateMaximumBitRate.h" -#include "E-RABs-ToBeAdded-SgNBModReq-List.h" -#include "E-RABs-ToBeModified-SgNBModReq-List.h" -#include "E-RABs-ToBeReleased-SgNBModReq-List.h" -#include "ProtocolExtensionContainer.h" -static asn_TYPE_member_t asn_MBR_UE_ContextInformation_SgNBModReq_1[] = { - { ATF_POINTER, 7, offsetof(struct UE_ContextInformation_SgNBModReq, nRUE_SecurityCapabilities), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NRUESecurityCapabilities, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "nRUE-SecurityCapabilities" - }, - { ATF_POINTER, 6, offsetof(struct UE_ContextInformation_SgNBModReq, sgNB_SecurityKey), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_SgNBSecurityKey, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "sgNB-SecurityKey" - }, - { ATF_POINTER, 5, offsetof(struct UE_ContextInformation_SgNBModReq, sgNBUEAggregateMaximumBitRate), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_UEAggregateMaximumBitRate, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "sgNBUEAggregateMaximumBitRate" - }, - { ATF_POINTER, 4, offsetof(struct UE_ContextInformation_SgNBModReq, e_RABs_ToBeAdded), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E_RABs_ToBeAdded_SgNBModReq_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "e-RABs-ToBeAdded" - }, - { ATF_POINTER, 3, offsetof(struct UE_ContextInformation_SgNBModReq, e_RABs_ToBeModified), - (ASN_TAG_CLASS_CONTEXT | (4 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E_RABs_ToBeModified_SgNBModReq_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "e-RABs-ToBeModified" - }, - { ATF_POINTER, 2, offsetof(struct UE_ContextInformation_SgNBModReq, e_RABs_ToBeReleased), - (ASN_TAG_CLASS_CONTEXT | (5 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E_RABs_ToBeReleased_SgNBModReq_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "e-RABs-ToBeReleased" - }, - { ATF_POINTER, 1, offsetof(struct UE_ContextInformation_SgNBModReq, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (6 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P52, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_UE_ContextInformation_SgNBModReq_oms_1[] = { 0, 1, 2, 3, 4, 5, 6 }; -static const ber_tlv_tag_t asn_DEF_UE_ContextInformation_SgNBModReq_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_UE_ContextInformation_SgNBModReq_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nRUE-SecurityCapabilities */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* sgNB-SecurityKey */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* sgNBUEAggregateMaximumBitRate */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* e-RABs-ToBeAdded */ - { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* e-RABs-ToBeModified */ - { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* e-RABs-ToBeReleased */ - { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 } /* iE-Extensions */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_UE_ContextInformation_SgNBModReq_specs_1 = { - sizeof(struct UE_ContextInformation_SgNBModReq), - offsetof(struct UE_ContextInformation_SgNBModReq, _asn_ctx), - asn_MAP_UE_ContextInformation_SgNBModReq_tag2el_1, - 7, /* Count of tags in the map */ - asn_MAP_UE_ContextInformation_SgNBModReq_oms_1, /* Optional members */ - 7, 0, /* Root/Additions */ - 7, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_UE_ContextInformation_SgNBModReq = { - "UE-ContextInformation-SgNBModReq", - "UE-ContextInformation-SgNBModReq", - &asn_OP_SEQUENCE, - asn_DEF_UE_ContextInformation_SgNBModReq_tags_1, - sizeof(asn_DEF_UE_ContextInformation_SgNBModReq_tags_1) - /sizeof(asn_DEF_UE_ContextInformation_SgNBModReq_tags_1[0]), /* 1 */ - asn_DEF_UE_ContextInformation_SgNBModReq_tags_1, /* Same as above */ - sizeof(asn_DEF_UE_ContextInformation_SgNBModReq_tags_1) - /sizeof(asn_DEF_UE_ContextInformation_SgNBModReq_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_UE_ContextInformation_SgNBModReq_1, - 7, /* Elements count */ - &asn_SPC_UE_ContextInformation_SgNBModReq_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/UE-ContextInformation-SgNBModReq.h b/e2sim/previous/ASN1c/UE-ContextInformation-SgNBModReq.h deleted file mode 100644 index 1d9b3fc..0000000 --- a/e2sim/previous/ASN1c/UE-ContextInformation-SgNBModReq.h +++ /dev/null @@ -1,74 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _UE_ContextInformation_SgNBModReq_H_ -#define _UE_ContextInformation_SgNBModReq_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "SgNBSecurityKey.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct NRUESecurityCapabilities; -struct UEAggregateMaximumBitRate; -struct E_RABs_ToBeAdded_SgNBModReq_List; -struct E_RABs_ToBeModified_SgNBModReq_List; -struct E_RABs_ToBeReleased_SgNBModReq_List; -struct ProtocolExtensionContainer; - -/* UE-ContextInformation-SgNBModReq */ -typedef struct UE_ContextInformation_SgNBModReq { - struct NRUESecurityCapabilities *nRUE_SecurityCapabilities; /* OPTIONAL */ - SgNBSecurityKey_t *sgNB_SecurityKey; /* OPTIONAL */ - struct UEAggregateMaximumBitRate *sgNBUEAggregateMaximumBitRate; /* OPTIONAL */ - struct E_RABs_ToBeAdded_SgNBModReq_List *e_RABs_ToBeAdded; /* OPTIONAL */ - struct E_RABs_ToBeModified_SgNBModReq_List *e_RABs_ToBeModified; /* OPTIONAL */ - struct E_RABs_ToBeReleased_SgNBModReq_List *e_RABs_ToBeReleased; /* OPTIONAL */ - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} UE_ContextInformation_SgNBModReq_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_UE_ContextInformation_SgNBModReq; - -#ifdef __cplusplus -} -#endif - -#endif /* _UE_ContextInformation_SgNBModReq_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/UE-ContextInformation.c b/e2sim/previous/ASN1c/UE-ContextInformation.c deleted file mode 100644 index d33b3e1..0000000 --- a/e2sim/previous/ASN1c/UE-ContextInformation.c +++ /dev/null @@ -1,163 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "UE-ContextInformation.h" - -#include "HandoverRestrictionList.h" -#include "LocationReportingInformation.h" -#include "ProtocolExtensionContainer.h" -static asn_TYPE_member_t asn_MBR_UE_ContextInformation_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct UE_ContextInformation, mME_UE_S1AP_ID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_UE_S1AP_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "mME-UE-S1AP-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct UE_ContextInformation, uESecurityCapabilities), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_UESecurityCapabilities, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "uESecurityCapabilities" - }, - { ATF_NOFLAGS, 0, offsetof(struct UE_ContextInformation, aS_SecurityInformation), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_AS_SecurityInformation, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "aS-SecurityInformation" - }, - { ATF_NOFLAGS, 0, offsetof(struct UE_ContextInformation, uEaggregateMaximumBitRate), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_UEAggregateMaximumBitRate, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "uEaggregateMaximumBitRate" - }, - { ATF_POINTER, 1, offsetof(struct UE_ContextInformation, subscriberProfileIDforRFP), - (ASN_TAG_CLASS_CONTEXT | (4 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_SubscriberProfileIDforRFP, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "subscriberProfileIDforRFP" - }, - { ATF_NOFLAGS, 0, offsetof(struct UE_ContextInformation, e_RABs_ToBeSetup_List), - (ASN_TAG_CLASS_CONTEXT | (5 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E_RABs_ToBeSetup_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "e-RABs-ToBeSetup-List" - }, - { ATF_NOFLAGS, 0, offsetof(struct UE_ContextInformation, rRC_Context), - (ASN_TAG_CLASS_CONTEXT | (6 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RRC_Context, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "rRC-Context" - }, - { ATF_POINTER, 3, offsetof(struct UE_ContextInformation, handoverRestrictionList), - (ASN_TAG_CLASS_CONTEXT | (7 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_HandoverRestrictionList, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "handoverRestrictionList" - }, - { ATF_POINTER, 2, offsetof(struct UE_ContextInformation, locationReportingInformation), - (ASN_TAG_CLASS_CONTEXT | (8 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_LocationReportingInformation, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "locationReportingInformation" - }, - { ATF_POINTER, 1, offsetof(struct UE_ContextInformation, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (9 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P0, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_UE_ContextInformation_oms_1[] = { 4, 7, 8, 9 }; -static const ber_tlv_tag_t asn_DEF_UE_ContextInformation_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_UE_ContextInformation_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* mME-UE-S1AP-ID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* uESecurityCapabilities */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* aS-SecurityInformation */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* uEaggregateMaximumBitRate */ - { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* subscriberProfileIDforRFP */ - { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* e-RABs-ToBeSetup-List */ - { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* rRC-Context */ - { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* handoverRestrictionList */ - { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* locationReportingInformation */ - { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 } /* iE-Extensions */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_UE_ContextInformation_specs_1 = { - sizeof(struct UE_ContextInformation), - offsetof(struct UE_ContextInformation, _asn_ctx), - asn_MAP_UE_ContextInformation_tag2el_1, - 10, /* Count of tags in the map */ - asn_MAP_UE_ContextInformation_oms_1, /* Optional members */ - 4, 0, /* Root/Additions */ - 10, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_UE_ContextInformation = { - "UE-ContextInformation", - "UE-ContextInformation", - &asn_OP_SEQUENCE, - asn_DEF_UE_ContextInformation_tags_1, - sizeof(asn_DEF_UE_ContextInformation_tags_1) - /sizeof(asn_DEF_UE_ContextInformation_tags_1[0]), /* 1 */ - asn_DEF_UE_ContextInformation_tags_1, /* Same as above */ - sizeof(asn_DEF_UE_ContextInformation_tags_1) - /sizeof(asn_DEF_UE_ContextInformation_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_UE_ContextInformation_1, - 10, /* Elements count */ - &asn_SPC_UE_ContextInformation_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/UE-ContextInformation.h b/e2sim/previous/ASN1c/UE-ContextInformation.h deleted file mode 100644 index f034257..0000000 --- a/e2sim/previous/ASN1c/UE-ContextInformation.h +++ /dev/null @@ -1,80 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _UE_ContextInformation_H_ -#define _UE_ContextInformation_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "UE-S1AP-ID.h" -#include "UESecurityCapabilities.h" -#include "AS-SecurityInformation.h" -#include "UEAggregateMaximumBitRate.h" -#include "SubscriberProfileIDforRFP.h" -#include "E-RABs-ToBeSetup-List.h" -#include "RRC-Context.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct HandoverRestrictionList; -struct LocationReportingInformation; -struct ProtocolExtensionContainer; - -/* UE-ContextInformation */ -typedef struct UE_ContextInformation { - UE_S1AP_ID_t mME_UE_S1AP_ID; - UESecurityCapabilities_t uESecurityCapabilities; - AS_SecurityInformation_t aS_SecurityInformation; - UEAggregateMaximumBitRate_t uEaggregateMaximumBitRate; - SubscriberProfileIDforRFP_t *subscriberProfileIDforRFP; /* OPTIONAL */ - E_RABs_ToBeSetup_List_t e_RABs_ToBeSetup_List; - RRC_Context_t rRC_Context; - struct HandoverRestrictionList *handoverRestrictionList; /* OPTIONAL */ - struct LocationReportingInformation *locationReportingInformation; /* OPTIONAL */ - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} UE_ContextInformation_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_UE_ContextInformation; - -#ifdef __cplusplus -} -#endif - -#endif /* _UE_ContextInformation_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/UE-ContextInformationRetrieve.c b/e2sim/previous/ASN1c/UE-ContextInformationRetrieve.c deleted file mode 100644 index dd74ab1..0000000 --- a/e2sim/previous/ASN1c/UE-ContextInformationRetrieve.c +++ /dev/null @@ -1,184 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "UE-ContextInformationRetrieve.h" - -#include "HandoverRestrictionList.h" -#include "LocationReportingInformation.h" -#include "MDTPLMNList.h" -#include "ProtocolExtensionContainer.h" -static asn_TYPE_member_t asn_MBR_UE_ContextInformationRetrieve_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct UE_ContextInformationRetrieve, mME_UE_S1AP_ID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_UE_S1AP_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "mME-UE-S1AP-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct UE_ContextInformationRetrieve, uESecurityCapabilities), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_UESecurityCapabilities, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "uESecurityCapabilities" - }, - { ATF_NOFLAGS, 0, offsetof(struct UE_ContextInformationRetrieve, aS_SecurityInformation), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_AS_SecurityInformation, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "aS-SecurityInformation" - }, - { ATF_NOFLAGS, 0, offsetof(struct UE_ContextInformationRetrieve, uEaggregateMaximumBitRate), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_UEAggregateMaximumBitRate, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "uEaggregateMaximumBitRate" - }, - { ATF_POINTER, 1, offsetof(struct UE_ContextInformationRetrieve, subscriberProfileIDforRFP), - (ASN_TAG_CLASS_CONTEXT | (4 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_SubscriberProfileIDforRFP, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "subscriberProfileIDforRFP" - }, - { ATF_NOFLAGS, 0, offsetof(struct UE_ContextInformationRetrieve, e_RABs_ToBeSetup_ListRetrieve), - (ASN_TAG_CLASS_CONTEXT | (5 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E_RABs_ToBeSetup_ListRetrieve, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "e-RABs-ToBeSetup-ListRetrieve" - }, - { ATF_NOFLAGS, 0, offsetof(struct UE_ContextInformationRetrieve, rRC_Context), - (ASN_TAG_CLASS_CONTEXT | (6 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RRC_Context, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "rRC-Context" - }, - { ATF_POINTER, 5, offsetof(struct UE_ContextInformationRetrieve, handoverRestrictionList), - (ASN_TAG_CLASS_CONTEXT | (7 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_HandoverRestrictionList, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "handoverRestrictionList" - }, - { ATF_POINTER, 4, offsetof(struct UE_ContextInformationRetrieve, locationReportingInformation), - (ASN_TAG_CLASS_CONTEXT | (8 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_LocationReportingInformation, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "locationReportingInformation" - }, - { ATF_POINTER, 3, offsetof(struct UE_ContextInformationRetrieve, managBasedMDTallowed), - (ASN_TAG_CLASS_CONTEXT | (9 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ManagementBasedMDTallowed, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "managBasedMDTallowed" - }, - { ATF_POINTER, 2, offsetof(struct UE_ContextInformationRetrieve, managBasedMDTPLMNList), - (ASN_TAG_CLASS_CONTEXT | (10 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_MDTPLMNList, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "managBasedMDTPLMNList" - }, - { ATF_POINTER, 1, offsetof(struct UE_ContextInformationRetrieve, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (11 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P42, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_UE_ContextInformationRetrieve_oms_1[] = { 4, 7, 8, 9, 10, 11 }; -static const ber_tlv_tag_t asn_DEF_UE_ContextInformationRetrieve_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_UE_ContextInformationRetrieve_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* mME-UE-S1AP-ID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* uESecurityCapabilities */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* aS-SecurityInformation */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* uEaggregateMaximumBitRate */ - { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* subscriberProfileIDforRFP */ - { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* e-RABs-ToBeSetup-ListRetrieve */ - { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* rRC-Context */ - { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* handoverRestrictionList */ - { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* locationReportingInformation */ - { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 }, /* managBasedMDTallowed */ - { (ASN_TAG_CLASS_CONTEXT | (10 << 2)), 10, 0, 0 }, /* managBasedMDTPLMNList */ - { (ASN_TAG_CLASS_CONTEXT | (11 << 2)), 11, 0, 0 } /* iE-Extensions */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_UE_ContextInformationRetrieve_specs_1 = { - sizeof(struct UE_ContextInformationRetrieve), - offsetof(struct UE_ContextInformationRetrieve, _asn_ctx), - asn_MAP_UE_ContextInformationRetrieve_tag2el_1, - 12, /* Count of tags in the map */ - asn_MAP_UE_ContextInformationRetrieve_oms_1, /* Optional members */ - 6, 0, /* Root/Additions */ - 12, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_UE_ContextInformationRetrieve = { - "UE-ContextInformationRetrieve", - "UE-ContextInformationRetrieve", - &asn_OP_SEQUENCE, - asn_DEF_UE_ContextInformationRetrieve_tags_1, - sizeof(asn_DEF_UE_ContextInformationRetrieve_tags_1) - /sizeof(asn_DEF_UE_ContextInformationRetrieve_tags_1[0]), /* 1 */ - asn_DEF_UE_ContextInformationRetrieve_tags_1, /* Same as above */ - sizeof(asn_DEF_UE_ContextInformationRetrieve_tags_1) - /sizeof(asn_DEF_UE_ContextInformationRetrieve_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_UE_ContextInformationRetrieve_1, - 12, /* Elements count */ - &asn_SPC_UE_ContextInformationRetrieve_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/UE-ContextInformationRetrieve.h b/e2sim/previous/ASN1c/UE-ContextInformationRetrieve.h deleted file mode 100644 index 56fc971..0000000 --- a/e2sim/previous/ASN1c/UE-ContextInformationRetrieve.h +++ /dev/null @@ -1,84 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _UE_ContextInformationRetrieve_H_ -#define _UE_ContextInformationRetrieve_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "UE-S1AP-ID.h" -#include "UESecurityCapabilities.h" -#include "AS-SecurityInformation.h" -#include "UEAggregateMaximumBitRate.h" -#include "SubscriberProfileIDforRFP.h" -#include "E-RABs-ToBeSetup-ListRetrieve.h" -#include "RRC-Context.h" -#include "ManagementBasedMDTallowed.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct HandoverRestrictionList; -struct LocationReportingInformation; -struct MDTPLMNList; -struct ProtocolExtensionContainer; - -/* UE-ContextInformationRetrieve */ -typedef struct UE_ContextInformationRetrieve { - UE_S1AP_ID_t mME_UE_S1AP_ID; - UESecurityCapabilities_t uESecurityCapabilities; - AS_SecurityInformation_t aS_SecurityInformation; - UEAggregateMaximumBitRate_t uEaggregateMaximumBitRate; - SubscriberProfileIDforRFP_t *subscriberProfileIDforRFP; /* OPTIONAL */ - E_RABs_ToBeSetup_ListRetrieve_t e_RABs_ToBeSetup_ListRetrieve; - RRC_Context_t rRC_Context; - struct HandoverRestrictionList *handoverRestrictionList; /* OPTIONAL */ - struct LocationReportingInformation *locationReportingInformation; /* OPTIONAL */ - ManagementBasedMDTallowed_t *managBasedMDTallowed; /* OPTIONAL */ - struct MDTPLMNList *managBasedMDTPLMNList; /* OPTIONAL */ - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} UE_ContextInformationRetrieve_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_UE_ContextInformationRetrieve; - -#ifdef __cplusplus -} -#endif - -#endif /* _UE_ContextInformationRetrieve_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/UE-ContextInformationSeNBModReq.c b/e2sim/previous/ASN1c/UE-ContextInformationSeNBModReq.c deleted file mode 100644 index f11cf44..0000000 --- a/e2sim/previous/ASN1c/UE-ContextInformationSeNBModReq.c +++ /dev/null @@ -1,136 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "UE-ContextInformationSeNBModReq.h" - -#include "UESecurityCapabilities.h" -#include "UEAggregateMaximumBitRate.h" -#include "E-RABs-ToBeAdded-List-ModReq.h" -#include "E-RABs-ToBeModified-List-ModReq.h" -#include "E-RABs-ToBeReleased-List-ModReq.h" -#include "ProtocolExtensionContainer.h" -static asn_TYPE_member_t asn_MBR_UE_ContextInformationSeNBModReq_1[] = { - { ATF_POINTER, 7, offsetof(struct UE_ContextInformationSeNBModReq, uE_SecurityCapabilities), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_UESecurityCapabilities, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "uE-SecurityCapabilities" - }, - { ATF_POINTER, 6, offsetof(struct UE_ContextInformationSeNBModReq, seNB_SecurityKey), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_SeNBSecurityKey, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "seNB-SecurityKey" - }, - { ATF_POINTER, 5, offsetof(struct UE_ContextInformationSeNBModReq, seNBUEAggregateMaximumBitRate), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_UEAggregateMaximumBitRate, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "seNBUEAggregateMaximumBitRate" - }, - { ATF_POINTER, 4, offsetof(struct UE_ContextInformationSeNBModReq, e_RABs_ToBeAdded), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E_RABs_ToBeAdded_List_ModReq, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "e-RABs-ToBeAdded" - }, - { ATF_POINTER, 3, offsetof(struct UE_ContextInformationSeNBModReq, e_RABs_ToBeModified), - (ASN_TAG_CLASS_CONTEXT | (4 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E_RABs_ToBeModified_List_ModReq, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "e-RABs-ToBeModified" - }, - { ATF_POINTER, 2, offsetof(struct UE_ContextInformationSeNBModReq, e_RABs_ToBeReleased), - (ASN_TAG_CLASS_CONTEXT | (5 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E_RABs_ToBeReleased_List_ModReq, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "e-RABs-ToBeReleased" - }, - { ATF_POINTER, 1, offsetof(struct UE_ContextInformationSeNBModReq, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (6 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P23, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_UE_ContextInformationSeNBModReq_oms_1[] = { 0, 1, 2, 3, 4, 5, 6 }; -static const ber_tlv_tag_t asn_DEF_UE_ContextInformationSeNBModReq_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_UE_ContextInformationSeNBModReq_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* uE-SecurityCapabilities */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* seNB-SecurityKey */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* seNBUEAggregateMaximumBitRate */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* e-RABs-ToBeAdded */ - { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* e-RABs-ToBeModified */ - { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* e-RABs-ToBeReleased */ - { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 } /* iE-Extensions */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_UE_ContextInformationSeNBModReq_specs_1 = { - sizeof(struct UE_ContextInformationSeNBModReq), - offsetof(struct UE_ContextInformationSeNBModReq, _asn_ctx), - asn_MAP_UE_ContextInformationSeNBModReq_tag2el_1, - 7, /* Count of tags in the map */ - asn_MAP_UE_ContextInformationSeNBModReq_oms_1, /* Optional members */ - 7, 0, /* Root/Additions */ - 7, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_UE_ContextInformationSeNBModReq = { - "UE-ContextInformationSeNBModReq", - "UE-ContextInformationSeNBModReq", - &asn_OP_SEQUENCE, - asn_DEF_UE_ContextInformationSeNBModReq_tags_1, - sizeof(asn_DEF_UE_ContextInformationSeNBModReq_tags_1) - /sizeof(asn_DEF_UE_ContextInformationSeNBModReq_tags_1[0]), /* 1 */ - asn_DEF_UE_ContextInformationSeNBModReq_tags_1, /* Same as above */ - sizeof(asn_DEF_UE_ContextInformationSeNBModReq_tags_1) - /sizeof(asn_DEF_UE_ContextInformationSeNBModReq_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_UE_ContextInformationSeNBModReq_1, - 7, /* Elements count */ - &asn_SPC_UE_ContextInformationSeNBModReq_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/UE-ContextInformationSeNBModReq.h b/e2sim/previous/ASN1c/UE-ContextInformationSeNBModReq.h deleted file mode 100644 index cf847e5..0000000 --- a/e2sim/previous/ASN1c/UE-ContextInformationSeNBModReq.h +++ /dev/null @@ -1,74 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _UE_ContextInformationSeNBModReq_H_ -#define _UE_ContextInformationSeNBModReq_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "SeNBSecurityKey.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct UESecurityCapabilities; -struct UEAggregateMaximumBitRate; -struct E_RABs_ToBeAdded_List_ModReq; -struct E_RABs_ToBeModified_List_ModReq; -struct E_RABs_ToBeReleased_List_ModReq; -struct ProtocolExtensionContainer; - -/* UE-ContextInformationSeNBModReq */ -typedef struct UE_ContextInformationSeNBModReq { - struct UESecurityCapabilities *uE_SecurityCapabilities; /* OPTIONAL */ - SeNBSecurityKey_t *seNB_SecurityKey; /* OPTIONAL */ - struct UEAggregateMaximumBitRate *seNBUEAggregateMaximumBitRate; /* OPTIONAL */ - struct E_RABs_ToBeAdded_List_ModReq *e_RABs_ToBeAdded; /* OPTIONAL */ - struct E_RABs_ToBeModified_List_ModReq *e_RABs_ToBeModified; /* OPTIONAL */ - struct E_RABs_ToBeReleased_List_ModReq *e_RABs_ToBeReleased; /* OPTIONAL */ - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} UE_ContextInformationSeNBModReq_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_UE_ContextInformationSeNBModReq; - -#ifdef __cplusplus -} -#endif - -#endif /* _UE_ContextInformationSeNBModReq_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/UE-ContextKeptIndicator.c b/e2sim/previous/ASN1c/UE-ContextKeptIndicator.c deleted file mode 100644 index a101bb9..0000000 --- a/e2sim/previous/ASN1c/UE-ContextKeptIndicator.c +++ /dev/null @@ -1,71 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "UE-ContextKeptIndicator.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_UE_ContextKeptIndicator_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 0, 0 } /* (0..0,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_UE_ContextKeptIndicator_value2enum_1[] = { - { 0, 4, "true" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_UE_ContextKeptIndicator_enum2value_1[] = { - 0 /* true(0) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_UE_ContextKeptIndicator_specs_1 = { - asn_MAP_UE_ContextKeptIndicator_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_UE_ContextKeptIndicator_enum2value_1, /* N => "tag"; sorted by N */ - 1, /* Number of elements in the maps */ - 2, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_UE_ContextKeptIndicator_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_UE_ContextKeptIndicator = { - "UE-ContextKeptIndicator", - "UE-ContextKeptIndicator", - &asn_OP_NativeEnumerated, - asn_DEF_UE_ContextKeptIndicator_tags_1, - sizeof(asn_DEF_UE_ContextKeptIndicator_tags_1) - /sizeof(asn_DEF_UE_ContextKeptIndicator_tags_1[0]), /* 1 */ - asn_DEF_UE_ContextKeptIndicator_tags_1, /* Same as above */ - sizeof(asn_DEF_UE_ContextKeptIndicator_tags_1) - /sizeof(asn_DEF_UE_ContextKeptIndicator_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_UE_ContextKeptIndicator_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_UE_ContextKeptIndicator_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/UE-ContextKeptIndicator.h b/e2sim/previous/ASN1c/UE-ContextKeptIndicator.h deleted file mode 100644 index bbed400..0000000 --- a/e2sim/previous/ASN1c/UE-ContextKeptIndicator.h +++ /dev/null @@ -1,71 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _UE_ContextKeptIndicator_H_ -#define _UE_ContextKeptIndicator_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum UE_ContextKeptIndicator { - UE_ContextKeptIndicator_true = 0 - /* - * Enumeration is extensible - */ -} e_UE_ContextKeptIndicator; - -/* UE-ContextKeptIndicator */ -typedef long UE_ContextKeptIndicator_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_UE_ContextKeptIndicator_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_UE_ContextKeptIndicator; -extern const asn_INTEGER_specifics_t asn_SPC_UE_ContextKeptIndicator_specs_1; -asn_struct_free_f UE_ContextKeptIndicator_free; -asn_struct_print_f UE_ContextKeptIndicator_print; -asn_constr_check_f UE_ContextKeptIndicator_constraint; -ber_type_decoder_f UE_ContextKeptIndicator_decode_ber; -der_type_encoder_f UE_ContextKeptIndicator_encode_der; -xer_type_decoder_f UE_ContextKeptIndicator_decode_xer; -xer_type_encoder_f UE_ContextKeptIndicator_encode_xer; -per_type_decoder_f UE_ContextKeptIndicator_decode_uper; -per_type_encoder_f UE_ContextKeptIndicator_encode_uper; -per_type_decoder_f UE_ContextKeptIndicator_decode_aper; -per_type_encoder_f UE_ContextKeptIndicator_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _UE_ContextKeptIndicator_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/UE-ContextReferenceAtSeNB.c b/e2sim/previous/ASN1c/UE-ContextReferenceAtSeNB.c deleted file mode 100644 index ec15d14..0000000 --- a/e2sim/previous/ASN1c/UE-ContextReferenceAtSeNB.c +++ /dev/null @@ -1,101 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "UE-ContextReferenceAtSeNB.h" - -#include "ProtocolExtensionContainer.h" -static asn_TYPE_member_t asn_MBR_UE_ContextReferenceAtSeNB_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct UE_ContextReferenceAtSeNB, source_GlobalSeNB_ID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GlobalENB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "source-GlobalSeNB-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct UE_ContextReferenceAtSeNB, seNB_UE_X2AP_ID), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_UE_X2AP_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "seNB-UE-X2AP-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct UE_ContextReferenceAtSeNB, seNB_UE_X2AP_ID_Extension), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_UE_X2AP_ID_Extension, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "seNB-UE-X2AP-ID-Extension" - }, - { ATF_POINTER, 1, offsetof(struct UE_ContextReferenceAtSeNB, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P2, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_UE_ContextReferenceAtSeNB_oms_1[] = { 3 }; -static const ber_tlv_tag_t asn_DEF_UE_ContextReferenceAtSeNB_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_UE_ContextReferenceAtSeNB_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* source-GlobalSeNB-ID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* seNB-UE-X2AP-ID */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* seNB-UE-X2AP-ID-Extension */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_UE_ContextReferenceAtSeNB_specs_1 = { - sizeof(struct UE_ContextReferenceAtSeNB), - offsetof(struct UE_ContextReferenceAtSeNB, _asn_ctx), - asn_MAP_UE_ContextReferenceAtSeNB_tag2el_1, - 4, /* Count of tags in the map */ - asn_MAP_UE_ContextReferenceAtSeNB_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 4, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_UE_ContextReferenceAtSeNB = { - "UE-ContextReferenceAtSeNB", - "UE-ContextReferenceAtSeNB", - &asn_OP_SEQUENCE, - asn_DEF_UE_ContextReferenceAtSeNB_tags_1, - sizeof(asn_DEF_UE_ContextReferenceAtSeNB_tags_1) - /sizeof(asn_DEF_UE_ContextReferenceAtSeNB_tags_1[0]), /* 1 */ - asn_DEF_UE_ContextReferenceAtSeNB_tags_1, /* Same as above */ - sizeof(asn_DEF_UE_ContextReferenceAtSeNB_tags_1) - /sizeof(asn_DEF_UE_ContextReferenceAtSeNB_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_UE_ContextReferenceAtSeNB_1, - 4, /* Elements count */ - &asn_SPC_UE_ContextReferenceAtSeNB_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/UE-ContextReferenceAtSeNB.h b/e2sim/previous/ASN1c/UE-ContextReferenceAtSeNB.h deleted file mode 100644 index 84b9b78..0000000 --- a/e2sim/previous/ASN1c/UE-ContextReferenceAtSeNB.h +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _UE_ContextReferenceAtSeNB_H_ -#define _UE_ContextReferenceAtSeNB_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "GlobalENB-ID.h" -#include "UE-X2AP-ID.h" -#include "UE-X2AP-ID-Extension.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* UE-ContextReferenceAtSeNB */ -typedef struct UE_ContextReferenceAtSeNB { - GlobalENB_ID_t source_GlobalSeNB_ID; - UE_X2AP_ID_t seNB_UE_X2AP_ID; - UE_X2AP_ID_Extension_t seNB_UE_X2AP_ID_Extension; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} UE_ContextReferenceAtSeNB_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_UE_ContextReferenceAtSeNB; - -#ifdef __cplusplus -} -#endif - -#endif /* _UE_ContextReferenceAtSeNB_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/UE-ContextReferenceAtSgNB.c b/e2sim/previous/ASN1c/UE-ContextReferenceAtSgNB.c deleted file mode 100644 index 861ff4a..0000000 --- a/e2sim/previous/ASN1c/UE-ContextReferenceAtSgNB.c +++ /dev/null @@ -1,91 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "UE-ContextReferenceAtSgNB.h" - -#include "ProtocolExtensionContainer.h" -static asn_TYPE_member_t asn_MBR_UE_ContextReferenceAtSgNB_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct UE_ContextReferenceAtSgNB, source_GlobalSgNB_ID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GlobalGNB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "source-GlobalSgNB-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct UE_ContextReferenceAtSgNB, sgNB_UE_X2AP_ID), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_SgNB_UE_X2AP_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "sgNB-UE-X2AP-ID" - }, - { ATF_POINTER, 1, offsetof(struct UE_ContextReferenceAtSgNB, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P4, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_UE_ContextReferenceAtSgNB_oms_1[] = { 2 }; -static const ber_tlv_tag_t asn_DEF_UE_ContextReferenceAtSgNB_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_UE_ContextReferenceAtSgNB_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* source-GlobalSgNB-ID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* sgNB-UE-X2AP-ID */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_UE_ContextReferenceAtSgNB_specs_1 = { - sizeof(struct UE_ContextReferenceAtSgNB), - offsetof(struct UE_ContextReferenceAtSgNB, _asn_ctx), - asn_MAP_UE_ContextReferenceAtSgNB_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_UE_ContextReferenceAtSgNB_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_UE_ContextReferenceAtSgNB = { - "UE-ContextReferenceAtSgNB", - "UE-ContextReferenceAtSgNB", - &asn_OP_SEQUENCE, - asn_DEF_UE_ContextReferenceAtSgNB_tags_1, - sizeof(asn_DEF_UE_ContextReferenceAtSgNB_tags_1) - /sizeof(asn_DEF_UE_ContextReferenceAtSgNB_tags_1[0]), /* 1 */ - asn_DEF_UE_ContextReferenceAtSgNB_tags_1, /* Same as above */ - sizeof(asn_DEF_UE_ContextReferenceAtSgNB_tags_1) - /sizeof(asn_DEF_UE_ContextReferenceAtSgNB_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_UE_ContextReferenceAtSgNB_1, - 3, /* Elements count */ - &asn_SPC_UE_ContextReferenceAtSgNB_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/UE-ContextReferenceAtSgNB.h b/e2sim/previous/ASN1c/UE-ContextReferenceAtSgNB.h deleted file mode 100644 index aa66299..0000000 --- a/e2sim/previous/ASN1c/UE-ContextReferenceAtSgNB.h +++ /dev/null @@ -1,66 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _UE_ContextReferenceAtSgNB_H_ -#define _UE_ContextReferenceAtSgNB_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "GlobalGNB-ID.h" -#include "SgNB-UE-X2AP-ID.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* UE-ContextReferenceAtSgNB */ -typedef struct UE_ContextReferenceAtSgNB { - GlobalGNB_ID_t source_GlobalSgNB_ID; - SgNB_UE_X2AP_ID_t sgNB_UE_X2AP_ID; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} UE_ContextReferenceAtSgNB_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_UE_ContextReferenceAtSgNB; - -#ifdef __cplusplus -} -#endif - -#endif /* _UE_ContextReferenceAtSgNB_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/UE-ContextReferenceAtWT.c b/e2sim/previous/ASN1c/UE-ContextReferenceAtWT.c deleted file mode 100644 index b699093..0000000 --- a/e2sim/previous/ASN1c/UE-ContextReferenceAtWT.c +++ /dev/null @@ -1,91 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "UE-ContextReferenceAtWT.h" - -#include "ProtocolExtensionContainer.h" -static asn_TYPE_member_t asn_MBR_UE_ContextReferenceAtWT_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct UE_ContextReferenceAtWT, wTID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_WTID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "wTID" - }, - { ATF_NOFLAGS, 0, offsetof(struct UE_ContextReferenceAtWT, wT_UE_XwAP_ID), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_WT_UE_XwAP_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "wT-UE-XwAP-ID" - }, - { ATF_POINTER, 1, offsetof(struct UE_ContextReferenceAtWT, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P3, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_UE_ContextReferenceAtWT_oms_1[] = { 2 }; -static const ber_tlv_tag_t asn_DEF_UE_ContextReferenceAtWT_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_UE_ContextReferenceAtWT_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* wTID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* wT-UE-XwAP-ID */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_UE_ContextReferenceAtWT_specs_1 = { - sizeof(struct UE_ContextReferenceAtWT), - offsetof(struct UE_ContextReferenceAtWT, _asn_ctx), - asn_MAP_UE_ContextReferenceAtWT_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_UE_ContextReferenceAtWT_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_UE_ContextReferenceAtWT = { - "UE-ContextReferenceAtWT", - "UE-ContextReferenceAtWT", - &asn_OP_SEQUENCE, - asn_DEF_UE_ContextReferenceAtWT_tags_1, - sizeof(asn_DEF_UE_ContextReferenceAtWT_tags_1) - /sizeof(asn_DEF_UE_ContextReferenceAtWT_tags_1[0]), /* 1 */ - asn_DEF_UE_ContextReferenceAtWT_tags_1, /* Same as above */ - sizeof(asn_DEF_UE_ContextReferenceAtWT_tags_1) - /sizeof(asn_DEF_UE_ContextReferenceAtWT_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_UE_ContextReferenceAtWT_1, - 3, /* Elements count */ - &asn_SPC_UE_ContextReferenceAtWT_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/UE-ContextReferenceAtWT.h b/e2sim/previous/ASN1c/UE-ContextReferenceAtWT.h deleted file mode 100644 index d3461d5..0000000 --- a/e2sim/previous/ASN1c/UE-ContextReferenceAtWT.h +++ /dev/null @@ -1,66 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _UE_ContextReferenceAtWT_H_ -#define _UE_ContextReferenceAtWT_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "WTID.h" -#include "WT-UE-XwAP-ID.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* UE-ContextReferenceAtWT */ -typedef struct UE_ContextReferenceAtWT { - WTID_t wTID; - WT_UE_XwAP_ID_t wT_UE_XwAP_ID; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} UE_ContextReferenceAtWT_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_UE_ContextReferenceAtWT; - -#ifdef __cplusplus -} -#endif - -#endif /* _UE_ContextReferenceAtWT_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/UE-HistoryInformation.c b/e2sim/previous/ASN1c/UE-HistoryInformation.c deleted file mode 100644 index 16f4513..0000000 --- a/e2sim/previous/ASN1c/UE-HistoryInformation.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "UE-HistoryInformation.h" - -#include "LastVisitedCell-Item.h" -asn_per_constraints_t asn_PER_type_UE_HistoryInformation_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 4, 4, 1, 16 } /* (SIZE(1..16)) */, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_UE_HistoryInformation_1[] = { - { ATF_POINTER, 0, 0, - -1 /* Ambiguous tag (CHOICE?) */, - 0, - &asn_DEF_LastVisitedCell_Item, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_UE_HistoryInformation_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_UE_HistoryInformation_specs_1 = { - sizeof(struct UE_HistoryInformation), - offsetof(struct UE_HistoryInformation, _asn_ctx), - 2, /* XER encoding is XMLValueList */ -}; -asn_TYPE_descriptor_t asn_DEF_UE_HistoryInformation = { - "UE-HistoryInformation", - "UE-HistoryInformation", - &asn_OP_SEQUENCE_OF, - asn_DEF_UE_HistoryInformation_tags_1, - sizeof(asn_DEF_UE_HistoryInformation_tags_1) - /sizeof(asn_DEF_UE_HistoryInformation_tags_1[0]), /* 1 */ - asn_DEF_UE_HistoryInformation_tags_1, /* Same as above */ - sizeof(asn_DEF_UE_HistoryInformation_tags_1) - /sizeof(asn_DEF_UE_HistoryInformation_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_UE_HistoryInformation_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_UE_HistoryInformation_1, - 1, /* Single element */ - &asn_SPC_UE_HistoryInformation_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/UE-HistoryInformation.h b/e2sim/previous/ASN1c/UE-HistoryInformation.h deleted file mode 100644 index c21ba92..0000000 --- a/e2sim/previous/ASN1c/UE-HistoryInformation.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _UE_HistoryInformation_H_ -#define _UE_HistoryInformation_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct LastVisitedCell_Item; - -/* UE-HistoryInformation */ -typedef struct UE_HistoryInformation { - A_SEQUENCE_OF(struct LastVisitedCell_Item) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} UE_HistoryInformation_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_UE_HistoryInformation; -extern asn_SET_OF_specifics_t asn_SPC_UE_HistoryInformation_specs_1; -extern asn_TYPE_member_t asn_MBR_UE_HistoryInformation_1[1]; -extern asn_per_constraints_t asn_PER_type_UE_HistoryInformation_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _UE_HistoryInformation_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/UE-HistoryInformationFromTheUE.c b/e2sim/previous/ASN1c/UE-HistoryInformationFromTheUE.c deleted file mode 100644 index 24a2839..0000000 --- a/e2sim/previous/ASN1c/UE-HistoryInformationFromTheUE.c +++ /dev/null @@ -1,49 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "UE-HistoryInformationFromTheUE.h" - -/* - * This type is implemented using OCTET_STRING, - * so here we adjust the DEF accordingly. - */ -static const ber_tlv_tag_t asn_DEF_UE_HistoryInformationFromTheUE_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_UE_HistoryInformationFromTheUE = { - "UE-HistoryInformationFromTheUE", - "UE-HistoryInformationFromTheUE", - &asn_OP_OCTET_STRING, - asn_DEF_UE_HistoryInformationFromTheUE_tags_1, - sizeof(asn_DEF_UE_HistoryInformationFromTheUE_tags_1) - /sizeof(asn_DEF_UE_HistoryInformationFromTheUE_tags_1[0]), /* 1 */ - asn_DEF_UE_HistoryInformationFromTheUE_tags_1, /* Same as above */ - sizeof(asn_DEF_UE_HistoryInformationFromTheUE_tags_1) - /sizeof(asn_DEF_UE_HistoryInformationFromTheUE_tags_1[0]), /* 1 */ - { 0, 0, OCTET_STRING_constraint }, - 0, 0, /* No members */ - &asn_SPC_OCTET_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/UE-HistoryInformationFromTheUE.h b/e2sim/previous/ASN1c/UE-HistoryInformationFromTheUE.h deleted file mode 100644 index dee36a0..0000000 --- a/e2sim/previous/ASN1c/UE-HistoryInformationFromTheUE.h +++ /dev/null @@ -1,61 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _UE_HistoryInformationFromTheUE_H_ -#define _UE_HistoryInformationFromTheUE_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "OCTET_STRING.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* UE-HistoryInformationFromTheUE */ -typedef OCTET_STRING_t UE_HistoryInformationFromTheUE_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_UE_HistoryInformationFromTheUE; -asn_struct_free_f UE_HistoryInformationFromTheUE_free; -asn_struct_print_f UE_HistoryInformationFromTheUE_print; -asn_constr_check_f UE_HistoryInformationFromTheUE_constraint; -ber_type_decoder_f UE_HistoryInformationFromTheUE_decode_ber; -der_type_encoder_f UE_HistoryInformationFromTheUE_encode_der; -xer_type_decoder_f UE_HistoryInformationFromTheUE_decode_xer; -xer_type_encoder_f UE_HistoryInformationFromTheUE_encode_xer; -per_type_decoder_f UE_HistoryInformationFromTheUE_decode_uper; -per_type_encoder_f UE_HistoryInformationFromTheUE_encode_uper; -per_type_decoder_f UE_HistoryInformationFromTheUE_decode_aper; -per_type_encoder_f UE_HistoryInformationFromTheUE_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _UE_HistoryInformationFromTheUE_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/UE-RLF-Report-Container-for-extended-bands.c b/e2sim/previous/ASN1c/UE-RLF-Report-Container-for-extended-bands.c deleted file mode 100644 index 9acd583..0000000 --- a/e2sim/previous/ASN1c/UE-RLF-Report-Container-for-extended-bands.c +++ /dev/null @@ -1,49 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "UE-RLF-Report-Container-for-extended-bands.h" - -/* - * This type is implemented using OCTET_STRING, - * so here we adjust the DEF accordingly. - */ -static const ber_tlv_tag_t asn_DEF_UE_RLF_Report_Container_for_extended_bands_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_UE_RLF_Report_Container_for_extended_bands = { - "UE-RLF-Report-Container-for-extended-bands", - "UE-RLF-Report-Container-for-extended-bands", - &asn_OP_OCTET_STRING, - asn_DEF_UE_RLF_Report_Container_for_extended_bands_tags_1, - sizeof(asn_DEF_UE_RLF_Report_Container_for_extended_bands_tags_1) - /sizeof(asn_DEF_UE_RLF_Report_Container_for_extended_bands_tags_1[0]), /* 1 */ - asn_DEF_UE_RLF_Report_Container_for_extended_bands_tags_1, /* Same as above */ - sizeof(asn_DEF_UE_RLF_Report_Container_for_extended_bands_tags_1) - /sizeof(asn_DEF_UE_RLF_Report_Container_for_extended_bands_tags_1[0]), /* 1 */ - { 0, 0, OCTET_STRING_constraint }, - 0, 0, /* No members */ - &asn_SPC_OCTET_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/UE-RLF-Report-Container-for-extended-bands.h b/e2sim/previous/ASN1c/UE-RLF-Report-Container-for-extended-bands.h deleted file mode 100644 index a7d0dd6..0000000 --- a/e2sim/previous/ASN1c/UE-RLF-Report-Container-for-extended-bands.h +++ /dev/null @@ -1,61 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _UE_RLF_Report_Container_for_extended_bands_H_ -#define _UE_RLF_Report_Container_for_extended_bands_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "OCTET_STRING.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* UE-RLF-Report-Container-for-extended-bands */ -typedef OCTET_STRING_t UE_RLF_Report_Container_for_extended_bands_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_UE_RLF_Report_Container_for_extended_bands; -asn_struct_free_f UE_RLF_Report_Container_for_extended_bands_free; -asn_struct_print_f UE_RLF_Report_Container_for_extended_bands_print; -asn_constr_check_f UE_RLF_Report_Container_for_extended_bands_constraint; -ber_type_decoder_f UE_RLF_Report_Container_for_extended_bands_decode_ber; -der_type_encoder_f UE_RLF_Report_Container_for_extended_bands_encode_der; -xer_type_decoder_f UE_RLF_Report_Container_for_extended_bands_decode_xer; -xer_type_encoder_f UE_RLF_Report_Container_for_extended_bands_encode_xer; -per_type_decoder_f UE_RLF_Report_Container_for_extended_bands_decode_uper; -per_type_encoder_f UE_RLF_Report_Container_for_extended_bands_encode_uper; -per_type_decoder_f UE_RLF_Report_Container_for_extended_bands_decode_aper; -per_type_encoder_f UE_RLF_Report_Container_for_extended_bands_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _UE_RLF_Report_Container_for_extended_bands_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/UE-RLF-Report-Container.c b/e2sim/previous/ASN1c/UE-RLF-Report-Container.c deleted file mode 100644 index b52a233..0000000 --- a/e2sim/previous/ASN1c/UE-RLF-Report-Container.c +++ /dev/null @@ -1,49 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "UE-RLF-Report-Container.h" - -/* - * This type is implemented using OCTET_STRING, - * so here we adjust the DEF accordingly. - */ -static const ber_tlv_tag_t asn_DEF_UE_RLF_Report_Container_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_UE_RLF_Report_Container = { - "UE-RLF-Report-Container", - "UE-RLF-Report-Container", - &asn_OP_OCTET_STRING, - asn_DEF_UE_RLF_Report_Container_tags_1, - sizeof(asn_DEF_UE_RLF_Report_Container_tags_1) - /sizeof(asn_DEF_UE_RLF_Report_Container_tags_1[0]), /* 1 */ - asn_DEF_UE_RLF_Report_Container_tags_1, /* Same as above */ - sizeof(asn_DEF_UE_RLF_Report_Container_tags_1) - /sizeof(asn_DEF_UE_RLF_Report_Container_tags_1[0]), /* 1 */ - { 0, 0, OCTET_STRING_constraint }, - 0, 0, /* No members */ - &asn_SPC_OCTET_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/UE-RLF-Report-Container.h b/e2sim/previous/ASN1c/UE-RLF-Report-Container.h deleted file mode 100644 index c0e2340..0000000 --- a/e2sim/previous/ASN1c/UE-RLF-Report-Container.h +++ /dev/null @@ -1,61 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _UE_RLF_Report_Container_H_ -#define _UE_RLF_Report_Container_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "OCTET_STRING.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* UE-RLF-Report-Container */ -typedef OCTET_STRING_t UE_RLF_Report_Container_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_UE_RLF_Report_Container; -asn_struct_free_f UE_RLF_Report_Container_free; -asn_struct_print_f UE_RLF_Report_Container_print; -asn_constr_check_f UE_RLF_Report_Container_constraint; -ber_type_decoder_f UE_RLF_Report_Container_decode_ber; -der_type_encoder_f UE_RLF_Report_Container_encode_der; -xer_type_decoder_f UE_RLF_Report_Container_decode_xer; -xer_type_encoder_f UE_RLF_Report_Container_encode_xer; -per_type_decoder_f UE_RLF_Report_Container_decode_uper; -per_type_encoder_f UE_RLF_Report_Container_encode_uper; -per_type_decoder_f UE_RLF_Report_Container_decode_aper; -per_type_encoder_f UE_RLF_Report_Container_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _UE_RLF_Report_Container_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/UE-S1AP-ID.c b/e2sim/previous/ASN1c/UE-S1AP-ID.c deleted file mode 100644 index 778f0f9..0000000 --- a/e2sim/previous/ASN1c/UE-S1AP-ID.c +++ /dev/null @@ -1,75 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "UE-S1AP-ID.h" - -int -UE_S1AP_ID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - /* Constraint check succeeded */ - return 0; -} - -/* - * This type is implemented using NativeInteger, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_UE_S1AP_ID_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED, 32, -1, 0, 4294967295 } /* (0..4294967295) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -const asn_INTEGER_specifics_t asn_SPC_UE_S1AP_ID_specs_1 = { - 0, 0, 0, 0, 0, - 0, /* Native long size */ - 1 /* Unsigned representation */ -}; -static const ber_tlv_tag_t asn_DEF_UE_S1AP_ID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_UE_S1AP_ID = { - "UE-S1AP-ID", - "UE-S1AP-ID", - &asn_OP_NativeInteger, - asn_DEF_UE_S1AP_ID_tags_1, - sizeof(asn_DEF_UE_S1AP_ID_tags_1) - /sizeof(asn_DEF_UE_S1AP_ID_tags_1[0]), /* 1 */ - asn_DEF_UE_S1AP_ID_tags_1, /* Same as above */ - sizeof(asn_DEF_UE_S1AP_ID_tags_1) - /sizeof(asn_DEF_UE_S1AP_ID_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_UE_S1AP_ID_constr_1, UE_S1AP_ID_constraint }, - 0, 0, /* No members */ - &asn_SPC_UE_S1AP_ID_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/UE-S1AP-ID.h b/e2sim/previous/ASN1c/UE-S1AP-ID.h deleted file mode 100644 index 4afb55c..0000000 --- a/e2sim/previous/ASN1c/UE-S1AP-ID.h +++ /dev/null @@ -1,63 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _UE_S1AP_ID_H_ -#define _UE_S1AP_ID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeInteger.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* UE-S1AP-ID */ -typedef unsigned long UE_S1AP_ID_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_UE_S1AP_ID_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_UE_S1AP_ID; -extern const asn_INTEGER_specifics_t asn_SPC_UE_S1AP_ID_specs_1; -asn_struct_free_f UE_S1AP_ID_free; -asn_struct_print_f UE_S1AP_ID_print; -asn_constr_check_f UE_S1AP_ID_constraint; -ber_type_decoder_f UE_S1AP_ID_decode_ber; -der_type_encoder_f UE_S1AP_ID_encode_der; -xer_type_decoder_f UE_S1AP_ID_decode_xer; -xer_type_encoder_f UE_S1AP_ID_encode_xer; -per_type_decoder_f UE_S1AP_ID_decode_uper; -per_type_encoder_f UE_S1AP_ID_encode_uper; -per_type_decoder_f UE_S1AP_ID_decode_aper; -per_type_encoder_f UE_S1AP_ID_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _UE_S1AP_ID_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/UE-X2AP-ID-Extension.c b/e2sim/previous/ASN1c/UE-X2AP-ID-Extension.c deleted file mode 100644 index 9aae9bd..0000000 --- a/e2sim/previous/ASN1c/UE-X2AP-ID-Extension.c +++ /dev/null @@ -1,79 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "UE-X2AP-ID-Extension.h" - -int -UE_X2AP_ID_Extension_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 4095)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using NativeInteger, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_UE_X2AP_ID_Extension_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 12, 12, 0, 4095 } /* (0..4095,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_UE_X2AP_ID_Extension_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_UE_X2AP_ID_Extension = { - "UE-X2AP-ID-Extension", - "UE-X2AP-ID-Extension", - &asn_OP_NativeInteger, - asn_DEF_UE_X2AP_ID_Extension_tags_1, - sizeof(asn_DEF_UE_X2AP_ID_Extension_tags_1) - /sizeof(asn_DEF_UE_X2AP_ID_Extension_tags_1[0]), /* 1 */ - asn_DEF_UE_X2AP_ID_Extension_tags_1, /* Same as above */ - sizeof(asn_DEF_UE_X2AP_ID_Extension_tags_1) - /sizeof(asn_DEF_UE_X2AP_ID_Extension_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_UE_X2AP_ID_Extension_constr_1, UE_X2AP_ID_Extension_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/previous/ASN1c/UE-X2AP-ID-Extension.h b/e2sim/previous/ASN1c/UE-X2AP-ID-Extension.h deleted file mode 100644 index 5a4d449..0000000 --- a/e2sim/previous/ASN1c/UE-X2AP-ID-Extension.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _UE_X2AP_ID_Extension_H_ -#define _UE_X2AP_ID_Extension_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeInteger.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* UE-X2AP-ID-Extension */ -typedef long UE_X2AP_ID_Extension_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_UE_X2AP_ID_Extension_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_UE_X2AP_ID_Extension; -asn_struct_free_f UE_X2AP_ID_Extension_free; -asn_struct_print_f UE_X2AP_ID_Extension_print; -asn_constr_check_f UE_X2AP_ID_Extension_constraint; -ber_type_decoder_f UE_X2AP_ID_Extension_decode_ber; -der_type_encoder_f UE_X2AP_ID_Extension_encode_der; -xer_type_decoder_f UE_X2AP_ID_Extension_decode_xer; -xer_type_encoder_f UE_X2AP_ID_Extension_encode_xer; -per_type_decoder_f UE_X2AP_ID_Extension_decode_uper; -per_type_encoder_f UE_X2AP_ID_Extension_encode_uper; -per_type_decoder_f UE_X2AP_ID_Extension_decode_aper; -per_type_encoder_f UE_X2AP_ID_Extension_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _UE_X2AP_ID_Extension_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/UE-X2AP-ID.c b/e2sim/previous/ASN1c/UE-X2AP-ID.c deleted file mode 100644 index fd7ddb5..0000000 --- a/e2sim/previous/ASN1c/UE-X2AP-ID.c +++ /dev/null @@ -1,79 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "UE-X2AP-ID.h" - -int -UE_X2AP_ID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 4095)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using NativeInteger, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_UE_X2AP_ID_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED, 12, 12, 0, 4095 } /* (0..4095) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_UE_X2AP_ID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_UE_X2AP_ID = { - "UE-X2AP-ID", - "UE-X2AP-ID", - &asn_OP_NativeInteger, - asn_DEF_UE_X2AP_ID_tags_1, - sizeof(asn_DEF_UE_X2AP_ID_tags_1) - /sizeof(asn_DEF_UE_X2AP_ID_tags_1[0]), /* 1 */ - asn_DEF_UE_X2AP_ID_tags_1, /* Same as above */ - sizeof(asn_DEF_UE_X2AP_ID_tags_1) - /sizeof(asn_DEF_UE_X2AP_ID_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_UE_X2AP_ID_constr_1, UE_X2AP_ID_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/previous/ASN1c/UE-X2AP-ID.h b/e2sim/previous/ASN1c/UE-X2AP-ID.h deleted file mode 100644 index 7bdb4fc..0000000 --- a/e2sim/previous/ASN1c/UE-X2AP-ID.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _UE_X2AP_ID_H_ -#define _UE_X2AP_ID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeInteger.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* UE-X2AP-ID */ -typedef long UE_X2AP_ID_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_UE_X2AP_ID_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_UE_X2AP_ID; -asn_struct_free_f UE_X2AP_ID_free; -asn_struct_print_f UE_X2AP_ID_print; -asn_constr_check_f UE_X2AP_ID_constraint; -ber_type_decoder_f UE_X2AP_ID_decode_ber; -der_type_encoder_f UE_X2AP_ID_encode_der; -xer_type_decoder_f UE_X2AP_ID_decode_xer; -xer_type_encoder_f UE_X2AP_ID_encode_xer; -per_type_decoder_f UE_X2AP_ID_decode_uper; -per_type_encoder_f UE_X2AP_ID_encode_uper; -per_type_decoder_f UE_X2AP_ID_decode_aper; -per_type_encoder_f UE_X2AP_ID_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _UE_X2AP_ID_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/UEAggregateMaximumBitRate.c b/e2sim/previous/ASN1c/UEAggregateMaximumBitRate.c deleted file mode 100644 index 5657e2a..0000000 --- a/e2sim/previous/ASN1c/UEAggregateMaximumBitRate.c +++ /dev/null @@ -1,91 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "UEAggregateMaximumBitRate.h" - -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_UEAggregateMaximumBitRate_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct UEAggregateMaximumBitRate, uEaggregateMaximumBitRateDownlink), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_BitRate, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "uEaggregateMaximumBitRateDownlink" - }, - { ATF_NOFLAGS, 0, offsetof(struct UEAggregateMaximumBitRate, uEaggregateMaximumBitRateUplink), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_BitRate, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "uEaggregateMaximumBitRateUplink" - }, - { ATF_POINTER, 1, offsetof(struct UEAggregateMaximumBitRate, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P209, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_UEAggregateMaximumBitRate_oms_1[] = { 2 }; -static const ber_tlv_tag_t asn_DEF_UEAggregateMaximumBitRate_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_UEAggregateMaximumBitRate_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* uEaggregateMaximumBitRateDownlink */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* uEaggregateMaximumBitRateUplink */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_UEAggregateMaximumBitRate_specs_1 = { - sizeof(struct UEAggregateMaximumBitRate), - offsetof(struct UEAggregateMaximumBitRate, _asn_ctx), - asn_MAP_UEAggregateMaximumBitRate_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_UEAggregateMaximumBitRate_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_UEAggregateMaximumBitRate = { - "UEAggregateMaximumBitRate", - "UEAggregateMaximumBitRate", - &asn_OP_SEQUENCE, - asn_DEF_UEAggregateMaximumBitRate_tags_1, - sizeof(asn_DEF_UEAggregateMaximumBitRate_tags_1) - /sizeof(asn_DEF_UEAggregateMaximumBitRate_tags_1[0]), /* 1 */ - asn_DEF_UEAggregateMaximumBitRate_tags_1, /* Same as above */ - sizeof(asn_DEF_UEAggregateMaximumBitRate_tags_1) - /sizeof(asn_DEF_UEAggregateMaximumBitRate_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_UEAggregateMaximumBitRate_1, - 3, /* Elements count */ - &asn_SPC_UEAggregateMaximumBitRate_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/UEAggregateMaximumBitRate.h b/e2sim/previous/ASN1c/UEAggregateMaximumBitRate.h deleted file mode 100644 index 25dc3eb..0000000 --- a/e2sim/previous/ASN1c/UEAggregateMaximumBitRate.h +++ /dev/null @@ -1,67 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _UEAggregateMaximumBitRate_H_ -#define _UEAggregateMaximumBitRate_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "BitRate.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* UEAggregateMaximumBitRate */ -typedef struct UEAggregateMaximumBitRate { - BitRate_t uEaggregateMaximumBitRateDownlink; - BitRate_t uEaggregateMaximumBitRateUplink; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} UEAggregateMaximumBitRate_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_UEAggregateMaximumBitRate; -extern asn_SEQUENCE_specifics_t asn_SPC_UEAggregateMaximumBitRate_specs_1; -extern asn_TYPE_member_t asn_MBR_UEAggregateMaximumBitRate_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _UEAggregateMaximumBitRate_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/UEAppLayerMeasConfig.c b/e2sim/previous/ASN1c/UEAppLayerMeasConfig.c deleted file mode 100644 index 548e666..0000000 --- a/e2sim/previous/ASN1c/UEAppLayerMeasConfig.c +++ /dev/null @@ -1,122 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "UEAppLayerMeasConfig.h" - -#include "ProtocolExtensionContainer.h" -static int -memb_containerForAppLayerMeasConfig_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - size = st->size; - - if((size >= 1 && size <= 1000)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_per_constraints_t asn_PER_memb_containerForAppLayerMeasConfig_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 10, 10, 1, 1000 } /* (SIZE(1..1000)) */, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_UEAppLayerMeasConfig_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct UEAppLayerMeasConfig, containerForAppLayerMeasConfig), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_OCTET_STRING, - 0, - { 0, &asn_PER_memb_containerForAppLayerMeasConfig_constr_2, memb_containerForAppLayerMeasConfig_constraint_1 }, - 0, 0, /* No default value */ - "containerForAppLayerMeasConfig" - }, - { ATF_NOFLAGS, 0, offsetof(struct UEAppLayerMeasConfig, areaScopeOfQMC), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_AreaScopeOfQMC, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "areaScopeOfQMC" - }, - { ATF_POINTER, 1, offsetof(struct UEAppLayerMeasConfig, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P210, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_UEAppLayerMeasConfig_oms_1[] = { 2 }; -static const ber_tlv_tag_t asn_DEF_UEAppLayerMeasConfig_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_UEAppLayerMeasConfig_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* containerForAppLayerMeasConfig */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* areaScopeOfQMC */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_UEAppLayerMeasConfig_specs_1 = { - sizeof(struct UEAppLayerMeasConfig), - offsetof(struct UEAppLayerMeasConfig, _asn_ctx), - asn_MAP_UEAppLayerMeasConfig_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_UEAppLayerMeasConfig_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_UEAppLayerMeasConfig = { - "UEAppLayerMeasConfig", - "UEAppLayerMeasConfig", - &asn_OP_SEQUENCE, - asn_DEF_UEAppLayerMeasConfig_tags_1, - sizeof(asn_DEF_UEAppLayerMeasConfig_tags_1) - /sizeof(asn_DEF_UEAppLayerMeasConfig_tags_1[0]), /* 1 */ - asn_DEF_UEAppLayerMeasConfig_tags_1, /* Same as above */ - sizeof(asn_DEF_UEAppLayerMeasConfig_tags_1) - /sizeof(asn_DEF_UEAppLayerMeasConfig_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_UEAppLayerMeasConfig_1, - 3, /* Elements count */ - &asn_SPC_UEAppLayerMeasConfig_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/UEAppLayerMeasConfig.h b/e2sim/previous/ASN1c/UEAppLayerMeasConfig.h deleted file mode 100644 index 02bbe69..0000000 --- a/e2sim/previous/ASN1c/UEAppLayerMeasConfig.h +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _UEAppLayerMeasConfig_H_ -#define _UEAppLayerMeasConfig_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "OCTET_STRING.h" -#include "AreaScopeOfQMC.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* UEAppLayerMeasConfig */ -typedef struct UEAppLayerMeasConfig { - OCTET_STRING_t containerForAppLayerMeasConfig; - AreaScopeOfQMC_t areaScopeOfQMC; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} UEAppLayerMeasConfig_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_UEAppLayerMeasConfig; -extern asn_SEQUENCE_specifics_t asn_SPC_UEAppLayerMeasConfig_specs_1; -extern asn_TYPE_member_t asn_MBR_UEAppLayerMeasConfig_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _UEAppLayerMeasConfig_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/UEContextRelease.c b/e2sim/previous/ASN1c/UEContextRelease.c deleted file mode 100644 index 6f436ef..0000000 --- a/e2sim/previous/ASN1c/UEContextRelease.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "UEContextRelease.h" - -static asn_TYPE_member_t asn_MBR_UEContextRelease_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct UEContextRelease, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_119P19, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_UEContextRelease_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_UEContextRelease_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_UEContextRelease_specs_1 = { - sizeof(struct UEContextRelease), - offsetof(struct UEContextRelease, _asn_ctx), - asn_MAP_UEContextRelease_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_UEContextRelease = { - "UEContextRelease", - "UEContextRelease", - &asn_OP_SEQUENCE, - asn_DEF_UEContextRelease_tags_1, - sizeof(asn_DEF_UEContextRelease_tags_1) - /sizeof(asn_DEF_UEContextRelease_tags_1[0]), /* 1 */ - asn_DEF_UEContextRelease_tags_1, /* Same as above */ - sizeof(asn_DEF_UEContextRelease_tags_1) - /sizeof(asn_DEF_UEContextRelease_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_UEContextRelease_1, - 1, /* Elements count */ - &asn_SPC_UEContextRelease_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/UEContextRelease.h b/e2sim/previous/ASN1c/UEContextRelease.h deleted file mode 100644 index 9656a47..0000000 --- a/e2sim/previous/ASN1c/UEContextRelease.h +++ /dev/null @@ -1,60 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _UEContextRelease_H_ -#define _UEContextRelease_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* UEContextRelease */ -typedef struct UEContextRelease { - ProtocolIE_Container_119P19_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} UEContextRelease_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_UEContextRelease; - -#ifdef __cplusplus -} -#endif - -#endif /* _UEContextRelease_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/UEID.c b/e2sim/previous/ASN1c/UEID.c deleted file mode 100644 index 8e6517d..0000000 --- a/e2sim/previous/ASN1c/UEID.c +++ /dev/null @@ -1,85 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "UEID.h" - -int -UEID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if(st->size > 0) { - /* Size in bits */ - size = 8 * st->size - (st->bits_unused & 0x07); - } else { - size = 0; - } - - if((size == 16)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using BIT_STRING, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_UEID_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 0, 0, 16, 16 } /* (SIZE(16..16)) */, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_UEID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_UEID = { - "UEID", - "UEID", - &asn_OP_BIT_STRING, - asn_DEF_UEID_tags_1, - sizeof(asn_DEF_UEID_tags_1) - /sizeof(asn_DEF_UEID_tags_1[0]), /* 1 */ - asn_DEF_UEID_tags_1, /* Same as above */ - sizeof(asn_DEF_UEID_tags_1) - /sizeof(asn_DEF_UEID_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_UEID_constr_1, UEID_constraint }, - 0, 0, /* No members */ - &asn_SPC_BIT_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/UEID.h b/e2sim/previous/ASN1c/UEID.h deleted file mode 100644 index 8b96896..0000000 --- a/e2sim/previous/ASN1c/UEID.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _UEID_H_ -#define _UEID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "BIT_STRING.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* UEID */ -typedef BIT_STRING_t UEID_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_UEID_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_UEID; -asn_struct_free_f UEID_free; -asn_struct_print_f UEID_print; -asn_constr_check_f UEID_constraint; -ber_type_decoder_f UEID_decode_ber; -der_type_encoder_f UEID_encode_der; -xer_type_decoder_f UEID_decode_xer; -xer_type_encoder_f UEID_encode_xer; -per_type_decoder_f UEID_decode_uper; -per_type_encoder_f UEID_encode_uper; -per_type_decoder_f UEID_decode_aper; -per_type_encoder_f UEID_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _UEID_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/UENRMeasurement.c b/e2sim/previous/ASN1c/UENRMeasurement.c deleted file mode 100644 index 801fc81..0000000 --- a/e2sim/previous/ASN1c/UENRMeasurement.c +++ /dev/null @@ -1,81 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "UENRMeasurement.h" - -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_UENRMeasurement_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct UENRMeasurement, uENRMeasurements), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RRCContainer, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "uENRMeasurements" - }, - { ATF_POINTER, 1, offsetof(struct UENRMeasurement, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P171, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_UENRMeasurement_oms_1[] = { 1 }; -static const ber_tlv_tag_t asn_DEF_UENRMeasurement_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_UENRMeasurement_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* uENRMeasurements */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_UENRMeasurement_specs_1 = { - sizeof(struct UENRMeasurement), - offsetof(struct UENRMeasurement, _asn_ctx), - asn_MAP_UENRMeasurement_tag2el_1, - 2, /* Count of tags in the map */ - asn_MAP_UENRMeasurement_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 2, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_UENRMeasurement = { - "UENRMeasurement", - "UENRMeasurement", - &asn_OP_SEQUENCE, - asn_DEF_UENRMeasurement_tags_1, - sizeof(asn_DEF_UENRMeasurement_tags_1) - /sizeof(asn_DEF_UENRMeasurement_tags_1[0]), /* 1 */ - asn_DEF_UENRMeasurement_tags_1, /* Same as above */ - sizeof(asn_DEF_UENRMeasurement_tags_1) - /sizeof(asn_DEF_UENRMeasurement_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_UENRMeasurement_1, - 2, /* Elements count */ - &asn_SPC_UENRMeasurement_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/UENRMeasurement.h b/e2sim/previous/ASN1c/UENRMeasurement.h deleted file mode 100644 index 18c052d..0000000 --- a/e2sim/previous/ASN1c/UENRMeasurement.h +++ /dev/null @@ -1,66 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _UENRMeasurement_H_ -#define _UENRMeasurement_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "RRCContainer.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* UENRMeasurement */ -typedef struct UENRMeasurement { - RRCContainer_t uENRMeasurements; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} UENRMeasurement_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_UENRMeasurement; -extern asn_SEQUENCE_specifics_t asn_SPC_UENRMeasurement_specs_1; -extern asn_TYPE_member_t asn_MBR_UENRMeasurement_1[2]; - -#ifdef __cplusplus -} -#endif - -#endif /* _UENRMeasurement_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/UESecurityCapabilities.c b/e2sim/previous/ASN1c/UESecurityCapabilities.c deleted file mode 100644 index 5c01060..0000000 --- a/e2sim/previous/ASN1c/UESecurityCapabilities.c +++ /dev/null @@ -1,91 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "UESecurityCapabilities.h" - -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_UESecurityCapabilities_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct UESecurityCapabilities, encryptionAlgorithms), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_EncryptionAlgorithms, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "encryptionAlgorithms" - }, - { ATF_NOFLAGS, 0, offsetof(struct UESecurityCapabilities, integrityProtectionAlgorithms), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_IntegrityProtectionAlgorithms, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "integrityProtectionAlgorithms" - }, - { ATF_POINTER, 1, offsetof(struct UESecurityCapabilities, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P211, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_UESecurityCapabilities_oms_1[] = { 2 }; -static const ber_tlv_tag_t asn_DEF_UESecurityCapabilities_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_UESecurityCapabilities_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* encryptionAlgorithms */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* integrityProtectionAlgorithms */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_UESecurityCapabilities_specs_1 = { - sizeof(struct UESecurityCapabilities), - offsetof(struct UESecurityCapabilities, _asn_ctx), - asn_MAP_UESecurityCapabilities_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_UESecurityCapabilities_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_UESecurityCapabilities = { - "UESecurityCapabilities", - "UESecurityCapabilities", - &asn_OP_SEQUENCE, - asn_DEF_UESecurityCapabilities_tags_1, - sizeof(asn_DEF_UESecurityCapabilities_tags_1) - /sizeof(asn_DEF_UESecurityCapabilities_tags_1[0]), /* 1 */ - asn_DEF_UESecurityCapabilities_tags_1, /* Same as above */ - sizeof(asn_DEF_UESecurityCapabilities_tags_1) - /sizeof(asn_DEF_UESecurityCapabilities_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_UESecurityCapabilities_1, - 3, /* Elements count */ - &asn_SPC_UESecurityCapabilities_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/UESecurityCapabilities.h b/e2sim/previous/ASN1c/UESecurityCapabilities.h deleted file mode 100644 index dc29c00..0000000 --- a/e2sim/previous/ASN1c/UESecurityCapabilities.h +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _UESecurityCapabilities_H_ -#define _UESecurityCapabilities_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "EncryptionAlgorithms.h" -#include "IntegrityProtectionAlgorithms.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* UESecurityCapabilities */ -typedef struct UESecurityCapabilities { - EncryptionAlgorithms_t encryptionAlgorithms; - IntegrityProtectionAlgorithms_t integrityProtectionAlgorithms; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} UESecurityCapabilities_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_UESecurityCapabilities; -extern asn_SEQUENCE_specifics_t asn_SPC_UESecurityCapabilities_specs_1; -extern asn_TYPE_member_t asn_MBR_UESecurityCapabilities_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _UESecurityCapabilities_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/UESidelinkAggregateMaximumBitRate.c b/e2sim/previous/ASN1c/UESidelinkAggregateMaximumBitRate.c deleted file mode 100644 index b391cd9..0000000 --- a/e2sim/previous/ASN1c/UESidelinkAggregateMaximumBitRate.c +++ /dev/null @@ -1,81 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "UESidelinkAggregateMaximumBitRate.h" - -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_UESidelinkAggregateMaximumBitRate_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct UESidelinkAggregateMaximumBitRate, uESidelinkAggregateMaximumBitRate), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_BitRate, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "uESidelinkAggregateMaximumBitRate" - }, - { ATF_POINTER, 1, offsetof(struct UESidelinkAggregateMaximumBitRate, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P212, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_UESidelinkAggregateMaximumBitRate_oms_1[] = { 1 }; -static const ber_tlv_tag_t asn_DEF_UESidelinkAggregateMaximumBitRate_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_UESidelinkAggregateMaximumBitRate_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* uESidelinkAggregateMaximumBitRate */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_UESidelinkAggregateMaximumBitRate_specs_1 = { - sizeof(struct UESidelinkAggregateMaximumBitRate), - offsetof(struct UESidelinkAggregateMaximumBitRate, _asn_ctx), - asn_MAP_UESidelinkAggregateMaximumBitRate_tag2el_1, - 2, /* Count of tags in the map */ - asn_MAP_UESidelinkAggregateMaximumBitRate_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 2, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_UESidelinkAggregateMaximumBitRate = { - "UESidelinkAggregateMaximumBitRate", - "UESidelinkAggregateMaximumBitRate", - &asn_OP_SEQUENCE, - asn_DEF_UESidelinkAggregateMaximumBitRate_tags_1, - sizeof(asn_DEF_UESidelinkAggregateMaximumBitRate_tags_1) - /sizeof(asn_DEF_UESidelinkAggregateMaximumBitRate_tags_1[0]), /* 1 */ - asn_DEF_UESidelinkAggregateMaximumBitRate_tags_1, /* Same as above */ - sizeof(asn_DEF_UESidelinkAggregateMaximumBitRate_tags_1) - /sizeof(asn_DEF_UESidelinkAggregateMaximumBitRate_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_UESidelinkAggregateMaximumBitRate_1, - 2, /* Elements count */ - &asn_SPC_UESidelinkAggregateMaximumBitRate_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/UESidelinkAggregateMaximumBitRate.h b/e2sim/previous/ASN1c/UESidelinkAggregateMaximumBitRate.h deleted file mode 100644 index 7c903a4..0000000 --- a/e2sim/previous/ASN1c/UESidelinkAggregateMaximumBitRate.h +++ /dev/null @@ -1,66 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _UESidelinkAggregateMaximumBitRate_H_ -#define _UESidelinkAggregateMaximumBitRate_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "BitRate.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* UESidelinkAggregateMaximumBitRate */ -typedef struct UESidelinkAggregateMaximumBitRate { - BitRate_t uESidelinkAggregateMaximumBitRate; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} UESidelinkAggregateMaximumBitRate_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_UESidelinkAggregateMaximumBitRate; -extern asn_SEQUENCE_specifics_t asn_SPC_UESidelinkAggregateMaximumBitRate_specs_1; -extern asn_TYPE_member_t asn_MBR_UESidelinkAggregateMaximumBitRate_1[2]; - -#ifdef __cplusplus -} -#endif - -#endif /* _UESidelinkAggregateMaximumBitRate_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/UEsToBeResetList-Item.c b/e2sim/previous/ASN1c/UEsToBeResetList-Item.c deleted file mode 100644 index 41eca3b..0000000 --- a/e2sim/previous/ASN1c/UEsToBeResetList-Item.c +++ /dev/null @@ -1,101 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "UEsToBeResetList-Item.h" - -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_UEsToBeResetList_Item_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct UEsToBeResetList_Item, meNB_ID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_UE_X2AP_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "meNB-ID" - }, - { ATF_POINTER, 3, offsetof(struct UEsToBeResetList_Item, meNB_ID_ext), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_UE_X2AP_ID_Extension, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "meNB-ID-ext" - }, - { ATF_POINTER, 2, offsetof(struct UEsToBeResetList_Item, sgNB_ID), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_SgNB_UE_X2AP_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "sgNB-ID" - }, - { ATF_POINTER, 1, offsetof(struct UEsToBeResetList_Item, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P213, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_UEsToBeResetList_Item_oms_1[] = { 1, 2, 3 }; -static const ber_tlv_tag_t asn_DEF_UEsToBeResetList_Item_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_UEsToBeResetList_Item_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* meNB-ID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* meNB-ID-ext */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* sgNB-ID */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_UEsToBeResetList_Item_specs_1 = { - sizeof(struct UEsToBeResetList_Item), - offsetof(struct UEsToBeResetList_Item, _asn_ctx), - asn_MAP_UEsToBeResetList_Item_tag2el_1, - 4, /* Count of tags in the map */ - asn_MAP_UEsToBeResetList_Item_oms_1, /* Optional members */ - 3, 0, /* Root/Additions */ - 4, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_UEsToBeResetList_Item = { - "UEsToBeResetList-Item", - "UEsToBeResetList-Item", - &asn_OP_SEQUENCE, - asn_DEF_UEsToBeResetList_Item_tags_1, - sizeof(asn_DEF_UEsToBeResetList_Item_tags_1) - /sizeof(asn_DEF_UEsToBeResetList_Item_tags_1[0]), /* 1 */ - asn_DEF_UEsToBeResetList_Item_tags_1, /* Same as above */ - sizeof(asn_DEF_UEsToBeResetList_Item_tags_1) - /sizeof(asn_DEF_UEsToBeResetList_Item_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_UEsToBeResetList_Item_1, - 4, /* Elements count */ - &asn_SPC_UEsToBeResetList_Item_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/UEsToBeResetList-Item.h b/e2sim/previous/ASN1c/UEsToBeResetList-Item.h deleted file mode 100644 index e0fbad5..0000000 --- a/e2sim/previous/ASN1c/UEsToBeResetList-Item.h +++ /dev/null @@ -1,70 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _UEsToBeResetList_Item_H_ -#define _UEsToBeResetList_Item_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "UE-X2AP-ID.h" -#include "UE-X2AP-ID-Extension.h" -#include "SgNB-UE-X2AP-ID.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* UEsToBeResetList-Item */ -typedef struct UEsToBeResetList_Item { - UE_X2AP_ID_t meNB_ID; - UE_X2AP_ID_Extension_t *meNB_ID_ext; /* OPTIONAL */ - SgNB_UE_X2AP_ID_t *sgNB_ID; /* OPTIONAL */ - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} UEsToBeResetList_Item_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_UEsToBeResetList_Item; -extern asn_SEQUENCE_specifics_t asn_SPC_UEsToBeResetList_Item_specs_1; -extern asn_TYPE_member_t asn_MBR_UEsToBeResetList_Item_1[4]; - -#ifdef __cplusplus -} -#endif - -#endif /* _UEsToBeResetList_Item_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/UEsToBeResetList.c b/e2sim/previous/ASN1c/UEsToBeResetList.c deleted file mode 100644 index 653f716..0000000 --- a/e2sim/previous/ASN1c/UEsToBeResetList.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "UEsToBeResetList.h" - -#include "UEsToBeResetList-Item.h" -asn_per_constraints_t asn_PER_type_UEsToBeResetList_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 13, 13, 1, 8192 } /* (SIZE(1..8192)) */, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_UEsToBeResetList_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_UEsToBeResetList_Item, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_UEsToBeResetList_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_UEsToBeResetList_specs_1 = { - sizeof(struct UEsToBeResetList), - offsetof(struct UEsToBeResetList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_UEsToBeResetList = { - "UEsToBeResetList", - "UEsToBeResetList", - &asn_OP_SEQUENCE_OF, - asn_DEF_UEsToBeResetList_tags_1, - sizeof(asn_DEF_UEsToBeResetList_tags_1) - /sizeof(asn_DEF_UEsToBeResetList_tags_1[0]), /* 1 */ - asn_DEF_UEsToBeResetList_tags_1, /* Same as above */ - sizeof(asn_DEF_UEsToBeResetList_tags_1) - /sizeof(asn_DEF_UEsToBeResetList_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_UEsToBeResetList_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_UEsToBeResetList_1, - 1, /* Single element */ - &asn_SPC_UEsToBeResetList_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/UEsToBeResetList.h b/e2sim/previous/ASN1c/UEsToBeResetList.h deleted file mode 100644 index dc2c423..0000000 --- a/e2sim/previous/ASN1c/UEsToBeResetList.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _UEsToBeResetList_H_ -#define _UEsToBeResetList_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct UEsToBeResetList_Item; - -/* UEsToBeResetList */ -typedef struct UEsToBeResetList { - A_SEQUENCE_OF(struct UEsToBeResetList_Item) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} UEsToBeResetList_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_UEsToBeResetList; -extern asn_SET_OF_specifics_t asn_SPC_UEsToBeResetList_specs_1; -extern asn_TYPE_member_t asn_MBR_UEsToBeResetList_1[1]; -extern asn_per_constraints_t asn_PER_type_UEsToBeResetList_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _UEsToBeResetList_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/UL-GBR-PRB-usage.c b/e2sim/previous/ASN1c/UL-GBR-PRB-usage.c deleted file mode 100644 index f724986..0000000 --- a/e2sim/previous/ASN1c/UL-GBR-PRB-usage.c +++ /dev/null @@ -1,79 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "UL-GBR-PRB-usage.h" - -int -UL_GBR_PRB_usage_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 100)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using NativeInteger, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_UL_GBR_PRB_usage_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED, 7, 7, 0, 100 } /* (0..100) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_UL_GBR_PRB_usage_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_UL_GBR_PRB_usage = { - "UL-GBR-PRB-usage", - "UL-GBR-PRB-usage", - &asn_OP_NativeInteger, - asn_DEF_UL_GBR_PRB_usage_tags_1, - sizeof(asn_DEF_UL_GBR_PRB_usage_tags_1) - /sizeof(asn_DEF_UL_GBR_PRB_usage_tags_1[0]), /* 1 */ - asn_DEF_UL_GBR_PRB_usage_tags_1, /* Same as above */ - sizeof(asn_DEF_UL_GBR_PRB_usage_tags_1) - /sizeof(asn_DEF_UL_GBR_PRB_usage_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_UL_GBR_PRB_usage_constr_1, UL_GBR_PRB_usage_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/previous/ASN1c/UL-GBR-PRB-usage.h b/e2sim/previous/ASN1c/UL-GBR-PRB-usage.h deleted file mode 100644 index d0a6db7..0000000 --- a/e2sim/previous/ASN1c/UL-GBR-PRB-usage.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _UL_GBR_PRB_usage_H_ -#define _UL_GBR_PRB_usage_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeInteger.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* UL-GBR-PRB-usage */ -typedef long UL_GBR_PRB_usage_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_UL_GBR_PRB_usage_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_UL_GBR_PRB_usage; -asn_struct_free_f UL_GBR_PRB_usage_free; -asn_struct_print_f UL_GBR_PRB_usage_print; -asn_constr_check_f UL_GBR_PRB_usage_constraint; -ber_type_decoder_f UL_GBR_PRB_usage_decode_ber; -der_type_encoder_f UL_GBR_PRB_usage_encode_der; -xer_type_decoder_f UL_GBR_PRB_usage_decode_xer; -xer_type_encoder_f UL_GBR_PRB_usage_encode_xer; -per_type_decoder_f UL_GBR_PRB_usage_decode_uper; -per_type_encoder_f UL_GBR_PRB_usage_encode_uper; -per_type_decoder_f UL_GBR_PRB_usage_decode_aper; -per_type_encoder_f UL_GBR_PRB_usage_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _UL_GBR_PRB_usage_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/UL-HighInterferenceIndication.c b/e2sim/previous/ASN1c/UL-HighInterferenceIndication.c deleted file mode 100644 index 01edd90..0000000 --- a/e2sim/previous/ASN1c/UL-HighInterferenceIndication.c +++ /dev/null @@ -1,85 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "UL-HighInterferenceIndication.h" - -int -UL_HighInterferenceIndication_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if(st->size > 0) { - /* Size in bits */ - size = 8 * st->size - (st->bits_unused & 0x07); - } else { - size = 0; - } - - if((size >= 1 && size <= 110)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using BIT_STRING, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_UL_HighInterferenceIndication_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED | APC_EXTENSIBLE, 7, 7, 1, 110 } /* (SIZE(1..110,...)) */, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_UL_HighInterferenceIndication_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_UL_HighInterferenceIndication = { - "UL-HighInterferenceIndication", - "UL-HighInterferenceIndication", - &asn_OP_BIT_STRING, - asn_DEF_UL_HighInterferenceIndication_tags_1, - sizeof(asn_DEF_UL_HighInterferenceIndication_tags_1) - /sizeof(asn_DEF_UL_HighInterferenceIndication_tags_1[0]), /* 1 */ - asn_DEF_UL_HighInterferenceIndication_tags_1, /* Same as above */ - sizeof(asn_DEF_UL_HighInterferenceIndication_tags_1) - /sizeof(asn_DEF_UL_HighInterferenceIndication_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_UL_HighInterferenceIndication_constr_1, UL_HighInterferenceIndication_constraint }, - 0, 0, /* No members */ - &asn_SPC_BIT_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/UL-HighInterferenceIndication.h b/e2sim/previous/ASN1c/UL-HighInterferenceIndication.h deleted file mode 100644 index 702dbc0..0000000 --- a/e2sim/previous/ASN1c/UL-HighInterferenceIndication.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _UL_HighInterferenceIndication_H_ -#define _UL_HighInterferenceIndication_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "BIT_STRING.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* UL-HighInterferenceIndication */ -typedef BIT_STRING_t UL_HighInterferenceIndication_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_UL_HighInterferenceIndication_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_UL_HighInterferenceIndication; -asn_struct_free_f UL_HighInterferenceIndication_free; -asn_struct_print_f UL_HighInterferenceIndication_print; -asn_constr_check_f UL_HighInterferenceIndication_constraint; -ber_type_decoder_f UL_HighInterferenceIndication_decode_ber; -der_type_encoder_f UL_HighInterferenceIndication_encode_der; -xer_type_decoder_f UL_HighInterferenceIndication_decode_xer; -xer_type_encoder_f UL_HighInterferenceIndication_encode_xer; -per_type_decoder_f UL_HighInterferenceIndication_decode_uper; -per_type_encoder_f UL_HighInterferenceIndication_encode_uper; -per_type_decoder_f UL_HighInterferenceIndication_decode_aper; -per_type_encoder_f UL_HighInterferenceIndication_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _UL_HighInterferenceIndication_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/UL-HighInterferenceIndicationInfo-Item.c b/e2sim/previous/ASN1c/UL-HighInterferenceIndicationInfo-Item.c deleted file mode 100644 index af3c2c3..0000000 --- a/e2sim/previous/ASN1c/UL-HighInterferenceIndicationInfo-Item.c +++ /dev/null @@ -1,91 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "UL-HighInterferenceIndicationInfo-Item.h" - -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_UL_HighInterferenceIndicationInfo_Item_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct UL_HighInterferenceIndicationInfo_Item, target_Cell_ID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ECGI, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "target-Cell-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct UL_HighInterferenceIndicationInfo_Item, ul_interferenceindication), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_UL_HighInterferenceIndication, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ul-interferenceindication" - }, - { ATF_POINTER, 1, offsetof(struct UL_HighInterferenceIndicationInfo_Item, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P216, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_UL_HighInterferenceIndicationInfo_Item_oms_1[] = { 2 }; -static const ber_tlv_tag_t asn_DEF_UL_HighInterferenceIndicationInfo_Item_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_UL_HighInterferenceIndicationInfo_Item_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* target-Cell-ID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ul-interferenceindication */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_UL_HighInterferenceIndicationInfo_Item_specs_1 = { - sizeof(struct UL_HighInterferenceIndicationInfo_Item), - offsetof(struct UL_HighInterferenceIndicationInfo_Item, _asn_ctx), - asn_MAP_UL_HighInterferenceIndicationInfo_Item_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_UL_HighInterferenceIndicationInfo_Item_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_UL_HighInterferenceIndicationInfo_Item = { - "UL-HighInterferenceIndicationInfo-Item", - "UL-HighInterferenceIndicationInfo-Item", - &asn_OP_SEQUENCE, - asn_DEF_UL_HighInterferenceIndicationInfo_Item_tags_1, - sizeof(asn_DEF_UL_HighInterferenceIndicationInfo_Item_tags_1) - /sizeof(asn_DEF_UL_HighInterferenceIndicationInfo_Item_tags_1[0]), /* 1 */ - asn_DEF_UL_HighInterferenceIndicationInfo_Item_tags_1, /* Same as above */ - sizeof(asn_DEF_UL_HighInterferenceIndicationInfo_Item_tags_1) - /sizeof(asn_DEF_UL_HighInterferenceIndicationInfo_Item_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_UL_HighInterferenceIndicationInfo_Item_1, - 3, /* Elements count */ - &asn_SPC_UL_HighInterferenceIndicationInfo_Item_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/UL-HighInterferenceIndicationInfo-Item.h b/e2sim/previous/ASN1c/UL-HighInterferenceIndicationInfo-Item.h deleted file mode 100644 index 478b837..0000000 --- a/e2sim/previous/ASN1c/UL-HighInterferenceIndicationInfo-Item.h +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _UL_HighInterferenceIndicationInfo_Item_H_ -#define _UL_HighInterferenceIndicationInfo_Item_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ECGI.h" -#include "UL-HighInterferenceIndication.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* UL-HighInterferenceIndicationInfo-Item */ -typedef struct UL_HighInterferenceIndicationInfo_Item { - ECGI_t target_Cell_ID; - UL_HighInterferenceIndication_t ul_interferenceindication; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} UL_HighInterferenceIndicationInfo_Item_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_UL_HighInterferenceIndicationInfo_Item; -extern asn_SEQUENCE_specifics_t asn_SPC_UL_HighInterferenceIndicationInfo_Item_specs_1; -extern asn_TYPE_member_t asn_MBR_UL_HighInterferenceIndicationInfo_Item_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _UL_HighInterferenceIndicationInfo_Item_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/UL-HighInterferenceIndicationInfo.c b/e2sim/previous/ASN1c/UL-HighInterferenceIndicationInfo.c deleted file mode 100644 index 4fd857c..0000000 --- a/e2sim/previous/ASN1c/UL-HighInterferenceIndicationInfo.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "UL-HighInterferenceIndicationInfo.h" - -#include "UL-HighInterferenceIndicationInfo-Item.h" -asn_per_constraints_t asn_PER_type_UL_HighInterferenceIndicationInfo_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 8, 8, 1, 256 } /* (SIZE(1..256)) */, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_UL_HighInterferenceIndicationInfo_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_UL_HighInterferenceIndicationInfo_Item, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_UL_HighInterferenceIndicationInfo_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_UL_HighInterferenceIndicationInfo_specs_1 = { - sizeof(struct UL_HighInterferenceIndicationInfo), - offsetof(struct UL_HighInterferenceIndicationInfo, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_UL_HighInterferenceIndicationInfo = { - "UL-HighInterferenceIndicationInfo", - "UL-HighInterferenceIndicationInfo", - &asn_OP_SEQUENCE_OF, - asn_DEF_UL_HighInterferenceIndicationInfo_tags_1, - sizeof(asn_DEF_UL_HighInterferenceIndicationInfo_tags_1) - /sizeof(asn_DEF_UL_HighInterferenceIndicationInfo_tags_1[0]), /* 1 */ - asn_DEF_UL_HighInterferenceIndicationInfo_tags_1, /* Same as above */ - sizeof(asn_DEF_UL_HighInterferenceIndicationInfo_tags_1) - /sizeof(asn_DEF_UL_HighInterferenceIndicationInfo_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_UL_HighInterferenceIndicationInfo_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_UL_HighInterferenceIndicationInfo_1, - 1, /* Single element */ - &asn_SPC_UL_HighInterferenceIndicationInfo_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/UL-HighInterferenceIndicationInfo.h b/e2sim/previous/ASN1c/UL-HighInterferenceIndicationInfo.h deleted file mode 100644 index 8519155..0000000 --- a/e2sim/previous/ASN1c/UL-HighInterferenceIndicationInfo.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _UL_HighInterferenceIndicationInfo_H_ -#define _UL_HighInterferenceIndicationInfo_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct UL_HighInterferenceIndicationInfo_Item; - -/* UL-HighInterferenceIndicationInfo */ -typedef struct UL_HighInterferenceIndicationInfo { - A_SEQUENCE_OF(struct UL_HighInterferenceIndicationInfo_Item) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} UL_HighInterferenceIndicationInfo_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_UL_HighInterferenceIndicationInfo; -extern asn_SET_OF_specifics_t asn_SPC_UL_HighInterferenceIndicationInfo_specs_1; -extern asn_TYPE_member_t asn_MBR_UL_HighInterferenceIndicationInfo_1[1]; -extern asn_per_constraints_t asn_PER_type_UL_HighInterferenceIndicationInfo_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _UL_HighInterferenceIndicationInfo_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/UL-InterferenceOverloadIndication-Item.c b/e2sim/previous/ASN1c/UL-InterferenceOverloadIndication-Item.c deleted file mode 100644 index 33f7e39..0000000 --- a/e2sim/previous/ASN1c/UL-InterferenceOverloadIndication-Item.c +++ /dev/null @@ -1,75 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "UL-InterferenceOverloadIndication-Item.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_UL_InterferenceOverloadIndication_Item_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 2 } /* (0..2,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_UL_InterferenceOverloadIndication_Item_value2enum_1[] = { - { 0, 17, "high-interference" }, - { 1, 19, "medium-interference" }, - { 2, 16, "low-interference" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_UL_InterferenceOverloadIndication_Item_enum2value_1[] = { - 0, /* high-interference(0) */ - 2, /* low-interference(2) */ - 1 /* medium-interference(1) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_UL_InterferenceOverloadIndication_Item_specs_1 = { - asn_MAP_UL_InterferenceOverloadIndication_Item_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_UL_InterferenceOverloadIndication_Item_enum2value_1, /* N => "tag"; sorted by N */ - 3, /* Number of elements in the maps */ - 4, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_UL_InterferenceOverloadIndication_Item_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_UL_InterferenceOverloadIndication_Item = { - "UL-InterferenceOverloadIndication-Item", - "UL-InterferenceOverloadIndication-Item", - &asn_OP_NativeEnumerated, - asn_DEF_UL_InterferenceOverloadIndication_Item_tags_1, - sizeof(asn_DEF_UL_InterferenceOverloadIndication_Item_tags_1) - /sizeof(asn_DEF_UL_InterferenceOverloadIndication_Item_tags_1[0]), /* 1 */ - asn_DEF_UL_InterferenceOverloadIndication_Item_tags_1, /* Same as above */ - sizeof(asn_DEF_UL_InterferenceOverloadIndication_Item_tags_1) - /sizeof(asn_DEF_UL_InterferenceOverloadIndication_Item_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_UL_InterferenceOverloadIndication_Item_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_UL_InterferenceOverloadIndication_Item_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/UL-InterferenceOverloadIndication-Item.h b/e2sim/previous/ASN1c/UL-InterferenceOverloadIndication-Item.h deleted file mode 100644 index 4f4dec6..0000000 --- a/e2sim/previous/ASN1c/UL-InterferenceOverloadIndication-Item.h +++ /dev/null @@ -1,73 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _UL_InterferenceOverloadIndication_Item_H_ -#define _UL_InterferenceOverloadIndication_Item_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum UL_InterferenceOverloadIndication_Item { - UL_InterferenceOverloadIndication_Item_high_interference = 0, - UL_InterferenceOverloadIndication_Item_medium_interference = 1, - UL_InterferenceOverloadIndication_Item_low_interference = 2 - /* - * Enumeration is extensible - */ -} e_UL_InterferenceOverloadIndication_Item; - -/* UL-InterferenceOverloadIndication-Item */ -typedef long UL_InterferenceOverloadIndication_Item_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_UL_InterferenceOverloadIndication_Item_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_UL_InterferenceOverloadIndication_Item; -extern const asn_INTEGER_specifics_t asn_SPC_UL_InterferenceOverloadIndication_Item_specs_1; -asn_struct_free_f UL_InterferenceOverloadIndication_Item_free; -asn_struct_print_f UL_InterferenceOverloadIndication_Item_print; -asn_constr_check_f UL_InterferenceOverloadIndication_Item_constraint; -ber_type_decoder_f UL_InterferenceOverloadIndication_Item_decode_ber; -der_type_encoder_f UL_InterferenceOverloadIndication_Item_encode_der; -xer_type_decoder_f UL_InterferenceOverloadIndication_Item_decode_xer; -xer_type_encoder_f UL_InterferenceOverloadIndication_Item_encode_xer; -per_type_decoder_f UL_InterferenceOverloadIndication_Item_decode_uper; -per_type_encoder_f UL_InterferenceOverloadIndication_Item_encode_uper; -per_type_decoder_f UL_InterferenceOverloadIndication_Item_decode_aper; -per_type_encoder_f UL_InterferenceOverloadIndication_Item_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _UL_InterferenceOverloadIndication_Item_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/UL-InterferenceOverloadIndication.c b/e2sim/previous/ASN1c/UL-InterferenceOverloadIndication.c deleted file mode 100644 index 7726362..0000000 --- a/e2sim/previous/ASN1c/UL-InterferenceOverloadIndication.c +++ /dev/null @@ -1,67 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "UL-InterferenceOverloadIndication.h" - -asn_per_constraints_t asn_PER_type_UL_InterferenceOverloadIndication_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 7, 7, 1, 110 } /* (SIZE(1..110)) */, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_UL_InterferenceOverloadIndication_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_UL_InterferenceOverloadIndication_Item, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_UL_InterferenceOverloadIndication_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_UL_InterferenceOverloadIndication_specs_1 = { - sizeof(struct UL_InterferenceOverloadIndication), - offsetof(struct UL_InterferenceOverloadIndication, _asn_ctx), - 1, /* XER encoding is XMLValueList */ -}; -asn_TYPE_descriptor_t asn_DEF_UL_InterferenceOverloadIndication = { - "UL-InterferenceOverloadIndication", - "UL-InterferenceOverloadIndication", - &asn_OP_SEQUENCE_OF, - asn_DEF_UL_InterferenceOverloadIndication_tags_1, - sizeof(asn_DEF_UL_InterferenceOverloadIndication_tags_1) - /sizeof(asn_DEF_UL_InterferenceOverloadIndication_tags_1[0]), /* 1 */ - asn_DEF_UL_InterferenceOverloadIndication_tags_1, /* Same as above */ - sizeof(asn_DEF_UL_InterferenceOverloadIndication_tags_1) - /sizeof(asn_DEF_UL_InterferenceOverloadIndication_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_UL_InterferenceOverloadIndication_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_UL_InterferenceOverloadIndication_1, - 1, /* Single element */ - &asn_SPC_UL_InterferenceOverloadIndication_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/UL-InterferenceOverloadIndication.h b/e2sim/previous/ASN1c/UL-InterferenceOverloadIndication.h deleted file mode 100644 index bd396b8..0000000 --- a/e2sim/previous/ASN1c/UL-InterferenceOverloadIndication.h +++ /dev/null @@ -1,60 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _UL_InterferenceOverloadIndication_H_ -#define _UL_InterferenceOverloadIndication_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "UL-InterferenceOverloadIndication-Item.h" -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* UL-InterferenceOverloadIndication */ -typedef struct UL_InterferenceOverloadIndication { - A_SEQUENCE_OF(UL_InterferenceOverloadIndication_Item_t) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} UL_InterferenceOverloadIndication_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_UL_InterferenceOverloadIndication; -extern asn_SET_OF_specifics_t asn_SPC_UL_InterferenceOverloadIndication_specs_1; -extern asn_TYPE_member_t asn_MBR_UL_InterferenceOverloadIndication_1[1]; -extern asn_per_constraints_t asn_PER_type_UL_InterferenceOverloadIndication_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _UL_InterferenceOverloadIndication_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/UL-Total-PRB-usage.c b/e2sim/previous/ASN1c/UL-Total-PRB-usage.c deleted file mode 100644 index 89bc807..0000000 --- a/e2sim/previous/ASN1c/UL-Total-PRB-usage.c +++ /dev/null @@ -1,79 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "UL-Total-PRB-usage.h" - -int -UL_Total_PRB_usage_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 100)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using NativeInteger, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_UL_Total_PRB_usage_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED, 7, 7, 0, 100 } /* (0..100) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_UL_Total_PRB_usage_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_UL_Total_PRB_usage = { - "UL-Total-PRB-usage", - "UL-Total-PRB-usage", - &asn_OP_NativeInteger, - asn_DEF_UL_Total_PRB_usage_tags_1, - sizeof(asn_DEF_UL_Total_PRB_usage_tags_1) - /sizeof(asn_DEF_UL_Total_PRB_usage_tags_1[0]), /* 1 */ - asn_DEF_UL_Total_PRB_usage_tags_1, /* Same as above */ - sizeof(asn_DEF_UL_Total_PRB_usage_tags_1) - /sizeof(asn_DEF_UL_Total_PRB_usage_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_UL_Total_PRB_usage_constr_1, UL_Total_PRB_usage_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/previous/ASN1c/UL-Total-PRB-usage.h b/e2sim/previous/ASN1c/UL-Total-PRB-usage.h deleted file mode 100644 index 76fcfb4..0000000 --- a/e2sim/previous/ASN1c/UL-Total-PRB-usage.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _UL_Total_PRB_usage_H_ -#define _UL_Total_PRB_usage_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeInteger.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* UL-Total-PRB-usage */ -typedef long UL_Total_PRB_usage_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_UL_Total_PRB_usage_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_UL_Total_PRB_usage; -asn_struct_free_f UL_Total_PRB_usage_free; -asn_struct_print_f UL_Total_PRB_usage_print; -asn_constr_check_f UL_Total_PRB_usage_constraint; -ber_type_decoder_f UL_Total_PRB_usage_decode_ber; -der_type_encoder_f UL_Total_PRB_usage_encode_der; -xer_type_decoder_f UL_Total_PRB_usage_decode_xer; -xer_type_encoder_f UL_Total_PRB_usage_encode_xer; -per_type_decoder_f UL_Total_PRB_usage_decode_uper; -per_type_encoder_f UL_Total_PRB_usage_encode_uper; -per_type_decoder_f UL_Total_PRB_usage_decode_aper; -per_type_encoder_f UL_Total_PRB_usage_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _UL_Total_PRB_usage_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/UL-UE-Configuration.c b/e2sim/previous/ASN1c/UL-UE-Configuration.c deleted file mode 100644 index e50209c..0000000 --- a/e2sim/previous/ASN1c/UL-UE-Configuration.c +++ /dev/null @@ -1,75 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "UL-UE-Configuration.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_UL_UE_Configuration_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 2 } /* (0..2,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_UL_UE_Configuration_value2enum_1[] = { - { 0, 7, "no-data" }, - { 1, 6, "shared" }, - { 2, 4, "only" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_UL_UE_Configuration_enum2value_1[] = { - 0, /* no-data(0) */ - 2, /* only(2) */ - 1 /* shared(1) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_UL_UE_Configuration_specs_1 = { - asn_MAP_UL_UE_Configuration_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_UL_UE_Configuration_enum2value_1, /* N => "tag"; sorted by N */ - 3, /* Number of elements in the maps */ - 4, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_UL_UE_Configuration_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_UL_UE_Configuration = { - "UL-UE-Configuration", - "UL-UE-Configuration", - &asn_OP_NativeEnumerated, - asn_DEF_UL_UE_Configuration_tags_1, - sizeof(asn_DEF_UL_UE_Configuration_tags_1) - /sizeof(asn_DEF_UL_UE_Configuration_tags_1[0]), /* 1 */ - asn_DEF_UL_UE_Configuration_tags_1, /* Same as above */ - sizeof(asn_DEF_UL_UE_Configuration_tags_1) - /sizeof(asn_DEF_UL_UE_Configuration_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_UL_UE_Configuration_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_UL_UE_Configuration_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/UL-UE-Configuration.h b/e2sim/previous/ASN1c/UL-UE-Configuration.h deleted file mode 100644 index 11551a5..0000000 --- a/e2sim/previous/ASN1c/UL-UE-Configuration.h +++ /dev/null @@ -1,73 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _UL_UE_Configuration_H_ -#define _UL_UE_Configuration_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum UL_UE_Configuration { - UL_UE_Configuration_no_data = 0, - UL_UE_Configuration_shared = 1, - UL_UE_Configuration_only = 2 - /* - * Enumeration is extensible - */ -} e_UL_UE_Configuration; - -/* UL-UE-Configuration */ -typedef long UL_UE_Configuration_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_UL_UE_Configuration_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_UL_UE_Configuration; -extern const asn_INTEGER_specifics_t asn_SPC_UL_UE_Configuration_specs_1; -asn_struct_free_f UL_UE_Configuration_free; -asn_struct_print_f UL_UE_Configuration_print; -asn_constr_check_f UL_UE_Configuration_constraint; -ber_type_decoder_f UL_UE_Configuration_decode_ber; -der_type_encoder_f UL_UE_Configuration_encode_der; -xer_type_decoder_f UL_UE_Configuration_decode_xer; -xer_type_encoder_f UL_UE_Configuration_encode_xer; -per_type_decoder_f UL_UE_Configuration_decode_uper; -per_type_encoder_f UL_UE_Configuration_encode_uper; -per_type_decoder_f UL_UE_Configuration_decode_aper; -per_type_encoder_f UL_UE_Configuration_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _UL_UE_Configuration_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/UL-non-GBR-PRB-usage.c b/e2sim/previous/ASN1c/UL-non-GBR-PRB-usage.c deleted file mode 100644 index 0cce112..0000000 --- a/e2sim/previous/ASN1c/UL-non-GBR-PRB-usage.c +++ /dev/null @@ -1,79 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "UL-non-GBR-PRB-usage.h" - -int -UL_non_GBR_PRB_usage_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 100)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using NativeInteger, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_UL_non_GBR_PRB_usage_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED, 7, 7, 0, 100 } /* (0..100) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_UL_non_GBR_PRB_usage_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_UL_non_GBR_PRB_usage = { - "UL-non-GBR-PRB-usage", - "UL-non-GBR-PRB-usage", - &asn_OP_NativeInteger, - asn_DEF_UL_non_GBR_PRB_usage_tags_1, - sizeof(asn_DEF_UL_non_GBR_PRB_usage_tags_1) - /sizeof(asn_DEF_UL_non_GBR_PRB_usage_tags_1[0]), /* 1 */ - asn_DEF_UL_non_GBR_PRB_usage_tags_1, /* Same as above */ - sizeof(asn_DEF_UL_non_GBR_PRB_usage_tags_1) - /sizeof(asn_DEF_UL_non_GBR_PRB_usage_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_UL_non_GBR_PRB_usage_constr_1, UL_non_GBR_PRB_usage_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/previous/ASN1c/UL-non-GBR-PRB-usage.h b/e2sim/previous/ASN1c/UL-non-GBR-PRB-usage.h deleted file mode 100644 index 7aeb88d..0000000 --- a/e2sim/previous/ASN1c/UL-non-GBR-PRB-usage.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _UL_non_GBR_PRB_usage_H_ -#define _UL_non_GBR_PRB_usage_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeInteger.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* UL-non-GBR-PRB-usage */ -typedef long UL_non_GBR_PRB_usage_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_UL_non_GBR_PRB_usage_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_UL_non_GBR_PRB_usage; -asn_struct_free_f UL_non_GBR_PRB_usage_free; -asn_struct_print_f UL_non_GBR_PRB_usage_print; -asn_constr_check_f UL_non_GBR_PRB_usage_constraint; -ber_type_decoder_f UL_non_GBR_PRB_usage_decode_ber; -der_type_encoder_f UL_non_GBR_PRB_usage_encode_der; -xer_type_decoder_f UL_non_GBR_PRB_usage_decode_xer; -xer_type_encoder_f UL_non_GBR_PRB_usage_encode_xer; -per_type_decoder_f UL_non_GBR_PRB_usage_decode_uper; -per_type_encoder_f UL_non_GBR_PRB_usage_encode_uper; -per_type_decoder_f UL_non_GBR_PRB_usage_decode_aper; -per_type_encoder_f UL_non_GBR_PRB_usage_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _UL_non_GBR_PRB_usage_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/UL-scheduling-PDCCH-CCE-usage.c b/e2sim/previous/ASN1c/UL-scheduling-PDCCH-CCE-usage.c deleted file mode 100644 index 3f93933..0000000 --- a/e2sim/previous/ASN1c/UL-scheduling-PDCCH-CCE-usage.c +++ /dev/null @@ -1,79 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "UL-scheduling-PDCCH-CCE-usage.h" - -int -UL_scheduling_PDCCH_CCE_usage_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 100)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using NativeInteger, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_UL_scheduling_PDCCH_CCE_usage_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED, 7, 7, 0, 100 } /* (0..100) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_UL_scheduling_PDCCH_CCE_usage_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_UL_scheduling_PDCCH_CCE_usage = { - "UL-scheduling-PDCCH-CCE-usage", - "UL-scheduling-PDCCH-CCE-usage", - &asn_OP_NativeInteger, - asn_DEF_UL_scheduling_PDCCH_CCE_usage_tags_1, - sizeof(asn_DEF_UL_scheduling_PDCCH_CCE_usage_tags_1) - /sizeof(asn_DEF_UL_scheduling_PDCCH_CCE_usage_tags_1[0]), /* 1 */ - asn_DEF_UL_scheduling_PDCCH_CCE_usage_tags_1, /* Same as above */ - sizeof(asn_DEF_UL_scheduling_PDCCH_CCE_usage_tags_1) - /sizeof(asn_DEF_UL_scheduling_PDCCH_CCE_usage_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_UL_scheduling_PDCCH_CCE_usage_constr_1, UL_scheduling_PDCCH_CCE_usage_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/previous/ASN1c/UL-scheduling-PDCCH-CCE-usage.h b/e2sim/previous/ASN1c/UL-scheduling-PDCCH-CCE-usage.h deleted file mode 100644 index 66d1116..0000000 --- a/e2sim/previous/ASN1c/UL-scheduling-PDCCH-CCE-usage.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _UL_scheduling_PDCCH_CCE_usage_H_ -#define _UL_scheduling_PDCCH_CCE_usage_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeInteger.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* UL-scheduling-PDCCH-CCE-usage */ -typedef long UL_scheduling_PDCCH_CCE_usage_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_UL_scheduling_PDCCH_CCE_usage_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_UL_scheduling_PDCCH_CCE_usage; -asn_struct_free_f UL_scheduling_PDCCH_CCE_usage_free; -asn_struct_print_f UL_scheduling_PDCCH_CCE_usage_print; -asn_constr_check_f UL_scheduling_PDCCH_CCE_usage_constraint; -ber_type_decoder_f UL_scheduling_PDCCH_CCE_usage_decode_ber; -der_type_encoder_f UL_scheduling_PDCCH_CCE_usage_encode_der; -xer_type_decoder_f UL_scheduling_PDCCH_CCE_usage_decode_xer; -xer_type_encoder_f UL_scheduling_PDCCH_CCE_usage_encode_xer; -per_type_decoder_f UL_scheduling_PDCCH_CCE_usage_decode_uper; -per_type_encoder_f UL_scheduling_PDCCH_CCE_usage_encode_uper; -per_type_decoder_f UL_scheduling_PDCCH_CCE_usage_decode_aper; -per_type_encoder_f UL_scheduling_PDCCH_CCE_usage_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _UL_scheduling_PDCCH_CCE_usage_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/ULConfiguration.c b/e2sim/previous/ASN1c/ULConfiguration.c deleted file mode 100644 index 96b54c7..0000000 --- a/e2sim/previous/ASN1c/ULConfiguration.c +++ /dev/null @@ -1,81 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "ULConfiguration.h" - -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_ULConfiguration_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct ULConfiguration, uL_PDCP), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_UL_UE_Configuration, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "uL-PDCP" - }, - { ATF_POINTER, 1, offsetof(struct ULConfiguration, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P215, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_ULConfiguration_oms_1[] = { 1 }; -static const ber_tlv_tag_t asn_DEF_ULConfiguration_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ULConfiguration_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* uL-PDCP */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ULConfiguration_specs_1 = { - sizeof(struct ULConfiguration), - offsetof(struct ULConfiguration, _asn_ctx), - asn_MAP_ULConfiguration_tag2el_1, - 2, /* Count of tags in the map */ - asn_MAP_ULConfiguration_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 2, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ULConfiguration = { - "ULConfiguration", - "ULConfiguration", - &asn_OP_SEQUENCE, - asn_DEF_ULConfiguration_tags_1, - sizeof(asn_DEF_ULConfiguration_tags_1) - /sizeof(asn_DEF_ULConfiguration_tags_1[0]), /* 1 */ - asn_DEF_ULConfiguration_tags_1, /* Same as above */ - sizeof(asn_DEF_ULConfiguration_tags_1) - /sizeof(asn_DEF_ULConfiguration_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ULConfiguration_1, - 2, /* Elements count */ - &asn_SPC_ULConfiguration_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/ULConfiguration.h b/e2sim/previous/ASN1c/ULConfiguration.h deleted file mode 100644 index 75b0680..0000000 --- a/e2sim/previous/ASN1c/ULConfiguration.h +++ /dev/null @@ -1,66 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _ULConfiguration_H_ -#define _ULConfiguration_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "UL-UE-Configuration.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* ULConfiguration */ -typedef struct ULConfiguration { - UL_UE_Configuration_t uL_PDCP; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ULConfiguration_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ULConfiguration; -extern asn_SEQUENCE_specifics_t asn_SPC_ULConfiguration_specs_1; -extern asn_TYPE_member_t asn_MBR_ULConfiguration_1[2]; - -#ifdef __cplusplus -} -#endif - -#endif /* _ULConfiguration_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/ULOnlySharing.c b/e2sim/previous/ASN1c/ULOnlySharing.c deleted file mode 100644 index 214e312..0000000 --- a/e2sim/previous/ASN1c/ULOnlySharing.c +++ /dev/null @@ -1,81 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "ULOnlySharing.h" - -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_ULOnlySharing_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct ULOnlySharing, uLResourceBitmapULOnlySharing), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_DataTrafficResources, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "uLResourceBitmapULOnlySharing" - }, - { ATF_POINTER, 1, offsetof(struct ULOnlySharing, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P217, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_ULOnlySharing_oms_1[] = { 1 }; -static const ber_tlv_tag_t asn_DEF_ULOnlySharing_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ULOnlySharing_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* uLResourceBitmapULOnlySharing */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ULOnlySharing_specs_1 = { - sizeof(struct ULOnlySharing), - offsetof(struct ULOnlySharing, _asn_ctx), - asn_MAP_ULOnlySharing_tag2el_1, - 2, /* Count of tags in the map */ - asn_MAP_ULOnlySharing_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 2, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ULOnlySharing = { - "ULOnlySharing", - "ULOnlySharing", - &asn_OP_SEQUENCE, - asn_DEF_ULOnlySharing_tags_1, - sizeof(asn_DEF_ULOnlySharing_tags_1) - /sizeof(asn_DEF_ULOnlySharing_tags_1[0]), /* 1 */ - asn_DEF_ULOnlySharing_tags_1, /* Same as above */ - sizeof(asn_DEF_ULOnlySharing_tags_1) - /sizeof(asn_DEF_ULOnlySharing_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ULOnlySharing_1, - 2, /* Elements count */ - &asn_SPC_ULOnlySharing_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/ULOnlySharing.h b/e2sim/previous/ASN1c/ULOnlySharing.h deleted file mode 100644 index 3714069..0000000 --- a/e2sim/previous/ASN1c/ULOnlySharing.h +++ /dev/null @@ -1,66 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _ULOnlySharing_H_ -#define _ULOnlySharing_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "DataTrafficResources.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* ULOnlySharing */ -typedef struct ULOnlySharing { - DataTrafficResources_t uLResourceBitmapULOnlySharing; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ULOnlySharing_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ULOnlySharing; -extern asn_SEQUENCE_specifics_t asn_SPC_ULOnlySharing_specs_1; -extern asn_TYPE_member_t asn_MBR_ULOnlySharing_1[2]; - -#ifdef __cplusplus -} -#endif - -#endif /* _ULOnlySharing_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/ULResourceBitmapULandDLSharing.c b/e2sim/previous/ASN1c/ULResourceBitmapULandDLSharing.c deleted file mode 100644 index a9168d4..0000000 --- a/e2sim/previous/ASN1c/ULResourceBitmapULandDLSharing.c +++ /dev/null @@ -1,85 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "ULResourceBitmapULandDLSharing.h" - -int -ULResourceBitmapULandDLSharing_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const DataTrafficResources_t *st = (const DataTrafficResources_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if(st->size > 0) { - /* Size in bits */ - size = 8 * st->size - (st->bits_unused & 0x07); - } else { - size = 0; - } - - if((size >= 6 && size <= 17600)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using DataTrafficResources, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_ULResourceBitmapULandDLSharing_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 15, 15, 6, 17600 } /* (SIZE(6..17600)) */, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_ULResourceBitmapULandDLSharing_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ULResourceBitmapULandDLSharing = { - "ULResourceBitmapULandDLSharing", - "ULResourceBitmapULandDLSharing", - &asn_OP_BIT_STRING, - asn_DEF_ULResourceBitmapULandDLSharing_tags_1, - sizeof(asn_DEF_ULResourceBitmapULandDLSharing_tags_1) - /sizeof(asn_DEF_ULResourceBitmapULandDLSharing_tags_1[0]), /* 1 */ - asn_DEF_ULResourceBitmapULandDLSharing_tags_1, /* Same as above */ - sizeof(asn_DEF_ULResourceBitmapULandDLSharing_tags_1) - /sizeof(asn_DEF_ULResourceBitmapULandDLSharing_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_ULResourceBitmapULandDLSharing_constr_1, ULResourceBitmapULandDLSharing_constraint }, - 0, 0, /* No members */ - &asn_SPC_BIT_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/ULResourceBitmapULandDLSharing.h b/e2sim/previous/ASN1c/ULResourceBitmapULandDLSharing.h deleted file mode 100644 index da8fabd..0000000 --- a/e2sim/previous/ASN1c/ULResourceBitmapULandDLSharing.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _ULResourceBitmapULandDLSharing_H_ -#define _ULResourceBitmapULandDLSharing_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "DataTrafficResources.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* ULResourceBitmapULandDLSharing */ -typedef DataTrafficResources_t ULResourceBitmapULandDLSharing_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_ULResourceBitmapULandDLSharing_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_ULResourceBitmapULandDLSharing; -asn_struct_free_f ULResourceBitmapULandDLSharing_free; -asn_struct_print_f ULResourceBitmapULandDLSharing_print; -asn_constr_check_f ULResourceBitmapULandDLSharing_constraint; -ber_type_decoder_f ULResourceBitmapULandDLSharing_decode_ber; -der_type_encoder_f ULResourceBitmapULandDLSharing_encode_der; -xer_type_decoder_f ULResourceBitmapULandDLSharing_decode_xer; -xer_type_encoder_f ULResourceBitmapULandDLSharing_encode_xer; -per_type_decoder_f ULResourceBitmapULandDLSharing_decode_uper; -per_type_encoder_f ULResourceBitmapULandDLSharing_encode_uper; -per_type_decoder_f ULResourceBitmapULandDLSharing_decode_aper; -per_type_encoder_f ULResourceBitmapULandDLSharing_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _ULResourceBitmapULandDLSharing_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/ULResourcesULandDLSharing.c b/e2sim/previous/ASN1c/ULResourcesULandDLSharing.c deleted file mode 100644 index c451175..0000000 --- a/e2sim/previous/ASN1c/ULResourcesULandDLSharing.c +++ /dev/null @@ -1,80 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "ULResourcesULandDLSharing.h" - -asn_per_constraints_t asn_PER_type_ULResourcesULandDLSharing_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_ULResourcesULandDLSharing_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct ULResourcesULandDLSharing, choice.unchanged), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NULL, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "unchanged" - }, - { ATF_NOFLAGS, 0, offsetof(struct ULResourcesULandDLSharing, choice.changed), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ULResourceBitmapULandDLSharing, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "changed" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_ULResourcesULandDLSharing_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* unchanged */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* changed */ -}; -asn_CHOICE_specifics_t asn_SPC_ULResourcesULandDLSharing_specs_1 = { - sizeof(struct ULResourcesULandDLSharing), - offsetof(struct ULResourcesULandDLSharing, _asn_ctx), - offsetof(struct ULResourcesULandDLSharing, present), - sizeof(((struct ULResourcesULandDLSharing *)0)->present), - asn_MAP_ULResourcesULandDLSharing_tag2el_1, - 2, /* Count of tags in the map */ - 0, 0, - 2 /* Extensions start */ -}; -asn_TYPE_descriptor_t asn_DEF_ULResourcesULandDLSharing = { - "ULResourcesULandDLSharing", - "ULResourcesULandDLSharing", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, &asn_PER_type_ULResourcesULandDLSharing_constr_1, CHOICE_constraint }, - asn_MBR_ULResourcesULandDLSharing_1, - 2, /* Elements count */ - &asn_SPC_ULResourcesULandDLSharing_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/ULResourcesULandDLSharing.h b/e2sim/previous/ASN1c/ULResourcesULandDLSharing.h deleted file mode 100644 index 3ebd15a..0000000 --- a/e2sim/previous/ASN1c/ULResourcesULandDLSharing.h +++ /dev/null @@ -1,77 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _ULResourcesULandDLSharing_H_ -#define _ULResourcesULandDLSharing_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NULL.h" -#include "ULResourceBitmapULandDLSharing.h" -#include "constr_CHOICE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum ULResourcesULandDLSharing_PR { - ULResourcesULandDLSharing_PR_NOTHING, /* No components present */ - ULResourcesULandDLSharing_PR_unchanged, - ULResourcesULandDLSharing_PR_changed - /* Extensions may appear below */ - -} ULResourcesULandDLSharing_PR; - -/* ULResourcesULandDLSharing */ -typedef struct ULResourcesULandDLSharing { - ULResourcesULandDLSharing_PR present; - union ULResourcesULandDLSharing_u { - NULL_t unchanged; - ULResourceBitmapULandDLSharing_t changed; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ULResourcesULandDLSharing_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ULResourcesULandDLSharing; -extern asn_CHOICE_specifics_t asn_SPC_ULResourcesULandDLSharing_specs_1; -extern asn_TYPE_member_t asn_MBR_ULResourcesULandDLSharing_1[2]; -extern asn_per_constraints_t asn_PER_type_ULResourcesULandDLSharing_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _ULResourcesULandDLSharing_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/ULandDLSharing.c b/e2sim/previous/ASN1c/ULandDLSharing.c deleted file mode 100644 index e09268b..0000000 --- a/e2sim/previous/ASN1c/ULandDLSharing.c +++ /dev/null @@ -1,91 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "ULandDLSharing.h" - -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_ULandDLSharing_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct ULandDLSharing, uLResourcesULandDLSharing), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_ULResourcesULandDLSharing, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "uLResourcesULandDLSharing" - }, - { ATF_NOFLAGS, 0, offsetof(struct ULandDLSharing, dLResourcesULandDLSharing), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_DLResourcesULandDLSharing, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "dLResourcesULandDLSharing" - }, - { ATF_POINTER, 1, offsetof(struct ULandDLSharing, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P214, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_ULandDLSharing_oms_1[] = { 2 }; -static const ber_tlv_tag_t asn_DEF_ULandDLSharing_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ULandDLSharing_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* uLResourcesULandDLSharing */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* dLResourcesULandDLSharing */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ULandDLSharing_specs_1 = { - sizeof(struct ULandDLSharing), - offsetof(struct ULandDLSharing, _asn_ctx), - asn_MAP_ULandDLSharing_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_ULandDLSharing_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ULandDLSharing = { - "ULandDLSharing", - "ULandDLSharing", - &asn_OP_SEQUENCE, - asn_DEF_ULandDLSharing_tags_1, - sizeof(asn_DEF_ULandDLSharing_tags_1) - /sizeof(asn_DEF_ULandDLSharing_tags_1[0]), /* 1 */ - asn_DEF_ULandDLSharing_tags_1, /* Same as above */ - sizeof(asn_DEF_ULandDLSharing_tags_1) - /sizeof(asn_DEF_ULandDLSharing_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ULandDLSharing_1, - 3, /* Elements count */ - &asn_SPC_ULandDLSharing_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/ULandDLSharing.h b/e2sim/previous/ASN1c/ULandDLSharing.h deleted file mode 100644 index d8dc31d..0000000 --- a/e2sim/previous/ASN1c/ULandDLSharing.h +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _ULandDLSharing_H_ -#define _ULandDLSharing_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ULResourcesULandDLSharing.h" -#include "DLResourcesULandDLSharing.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* ULandDLSharing */ -typedef struct ULandDLSharing { - ULResourcesULandDLSharing_t uLResourcesULandDLSharing; - DLResourcesULandDLSharing_t dLResourcesULandDLSharing; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ULandDLSharing_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ULandDLSharing; -extern asn_SEQUENCE_specifics_t asn_SPC_ULandDLSharing_specs_1; -extern asn_TYPE_member_t asn_MBR_ULandDLSharing_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _ULandDLSharing_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/UnsuccessfulOutcome.c b/e2sim/previous/ASN1c/UnsuccessfulOutcome.c deleted file mode 100644 index 54133f7..0000000 --- a/e2sim/previous/ASN1c/UnsuccessfulOutcome.c +++ /dev/null @@ -1,456 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Descriptions" - * found in "../../asnFiles/e2ap-v031.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "UnsuccessfulOutcome.h" - -static const long asn_VAL_1_id_ricSubscription = 201; -static const long asn_VAL_1_reject = 0; -static const long asn_VAL_2_id_ricSubscriptionDelete = 202; -static const long asn_VAL_2_reject = 0; -static const long asn_VAL_3_id_ricServiceUpdate = 203; -static const long asn_VAL_3_reject = 0; -static const long asn_VAL_4_id_ricControl = 204; -static const long asn_VAL_4_reject = 0; -static const long asn_VAL_5_id_x2Setup = 6; -static const long asn_VAL_5_reject = 0; -static const long asn_VAL_6_id_endcX2Setup = 36; -static const long asn_VAL_6_reject = 0; -static const long asn_VAL_7_id_resourceStatusReportingInitiation = 9; -static const long asn_VAL_7_reject = 0; -static const long asn_VAL_8_id_eNBConfigurationUpdate = 8; -static const long asn_VAL_8_reject = 0; -static const long asn_VAL_9_id_endcConfigurationUpdate = 37; -static const long asn_VAL_9_reject = 0; -static const long asn_VAL_10_id_reset = 7; -static const long asn_VAL_10_reject = 0; -static const long asn_VAL_11_id_ricIndication = 205; -static const long asn_VAL_11_ignore = 1; -static const long asn_VAL_12_id_ricServiceQuery = 206; -static const long asn_VAL_12_ignore = 1; -static const long asn_VAL_13_id_loadIndication = 2; -static const long asn_VAL_13_ignore = 1; -static const long asn_VAL_14_id_gNBStatusIndication = 45; -static const long asn_VAL_14_ignore = 1; -static const long asn_VAL_15_id_resourceStatusReporting = 10; -static const long asn_VAL_15_ignore = 1; -static const long asn_VAL_16_id_errorIndication = 3; -static const long asn_VAL_16_ignore = 1; -static const asn_ioc_cell_t asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1_rows[] = { - { "&InitiatingMessage", aioc__type, &asn_DEF_RICsubscriptionRequest }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionResponse }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_1_id_ricSubscription }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_1_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_RICsubscriptionDeleteRequest }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionDeleteResponse }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionDeleteFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_2_id_ricSubscriptionDelete }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_2_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_RICserviceUpdate }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_RICserviceUpdateAcknowledge }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RICserviceUpdateFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_3_id_ricServiceUpdate }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_3_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_RICcontrolRequest }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_RICcontrolAcknowledge }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RICcontrolFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_4_id_ricControl }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_4_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_X2SetupRequest }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_X2SetupResponse }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_X2SetupFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_5_id_x2Setup }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_5_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_ENDCX2SetupRequest }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_ENDCX2SetupResponse }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_ENDCX2SetupFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_6_id_endcX2Setup }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_6_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_ResourceStatusRequest }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_ResourceStatusResponse }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_ResourceStatusFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_7_id_resourceStatusReportingInitiation }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_7_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_ENBConfigurationUpdate }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_ENBConfigurationUpdateAcknowledge }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_ENBConfigurationUpdateFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_8_id_eNBConfigurationUpdate }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_8_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_ENDCConfigurationUpdate }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_ENDCConfigurationUpdateAcknowledge }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_ENDCConfigurationUpdateFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_9_id_endcConfigurationUpdate }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_9_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_ResetRequest }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_ResetResponse }, - { "&UnsuccessfulOutcome", }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_10_id_reset }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_10_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_RICindication }, - { "&SuccessfulOutcome", }, - { "&UnsuccessfulOutcome", }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_11_id_ricIndication }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_11_ignore }, - { "&InitiatingMessage", aioc__type, &asn_DEF_RICserviceQuery }, - { "&SuccessfulOutcome", }, - { "&UnsuccessfulOutcome", }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_12_id_ricServiceQuery }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_12_ignore }, - { "&InitiatingMessage", aioc__type, &asn_DEF_LoadInformation }, - { "&SuccessfulOutcome", }, - { "&UnsuccessfulOutcome", }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_13_id_loadIndication }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_13_ignore }, - { "&InitiatingMessage", aioc__type, &asn_DEF_GNBStatusIndication }, - { "&SuccessfulOutcome", }, - { "&UnsuccessfulOutcome", }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_14_id_gNBStatusIndication }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_14_ignore }, - { "&InitiatingMessage", aioc__type, &asn_DEF_ResourceStatusUpdate }, - { "&SuccessfulOutcome", }, - { "&UnsuccessfulOutcome", }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_15_id_resourceStatusReporting }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_15_ignore }, - { "&InitiatingMessage", aioc__type, &asn_DEF_ErrorIndication }, - { "&SuccessfulOutcome", }, - { "&UnsuccessfulOutcome", }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_16_id_errorIndication }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_16_ignore } -}; -static const asn_ioc_set_t asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1[] = { - { 16, 5, asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1_rows } -}; -static int -memb_procedureCode_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 255)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_UnsuccessfulOutcome_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1; - size_t constraining_column = 3; /* &procedureCode */ - size_t for_column = 4; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct UnsuccessfulOutcome, procedureCode)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_UnsuccessfulOutcome_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1; - size_t constraining_column = 3; /* &procedureCode */ - size_t for_column = 2; /* &UnsuccessfulOutcome */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct UnsuccessfulOutcome, procedureCode)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_per_constraints_t asn_PER_memb_procedureCode_constr_2 CC_NOTUSED = { - { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_3 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_4 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_value_4[] = { - { ATF_NOFLAGS, 0, offsetof(struct UnsuccessfulOutcome__value, choice.RICsubscriptionFailure), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICsubscriptionFailure, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICsubscriptionFailure" - }, - { ATF_NOFLAGS, 0, offsetof(struct UnsuccessfulOutcome__value, choice.RICsubscriptionDeleteFailure), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICsubscriptionDeleteFailure, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICsubscriptionDeleteFailure" - }, - { ATF_NOFLAGS, 0, offsetof(struct UnsuccessfulOutcome__value, choice.RICserviceUpdateFailure), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICserviceUpdateFailure, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICserviceUpdateFailure" - }, - { ATF_NOFLAGS, 0, offsetof(struct UnsuccessfulOutcome__value, choice.RICcontrolFailure), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICcontrolFailure, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICcontrolFailure" - }, - { ATF_NOFLAGS, 0, offsetof(struct UnsuccessfulOutcome__value, choice.X2SetupFailure), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_X2SetupFailure, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "X2SetupFailure" - }, - { ATF_NOFLAGS, 0, offsetof(struct UnsuccessfulOutcome__value, choice.ENDCX2SetupFailure), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ENDCX2SetupFailure, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ENDCX2SetupFailure" - }, - { ATF_NOFLAGS, 0, offsetof(struct UnsuccessfulOutcome__value, choice.ResourceStatusFailure), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ResourceStatusFailure, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ResourceStatusFailure" - }, - { ATF_NOFLAGS, 0, offsetof(struct UnsuccessfulOutcome__value, choice.ENBConfigurationUpdateFailure), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ENBConfigurationUpdateFailure, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ENBConfigurationUpdateFailure" - }, - { ATF_NOFLAGS, 0, offsetof(struct UnsuccessfulOutcome__value, choice.ENDCConfigurationUpdateFailure), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ENDCConfigurationUpdateFailure, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ENDCConfigurationUpdateFailure" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_4[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 8 }, /* RICsubscriptionFailure */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 7 }, /* RICsubscriptionDeleteFailure */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -2, 6 }, /* RICserviceUpdateFailure */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -3, 5 }, /* RICcontrolFailure */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, -4, 4 }, /* X2SetupFailure */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 5, -5, 3 }, /* ENDCX2SetupFailure */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 6, -6, 2 }, /* ResourceStatusFailure */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 7, -7, 1 }, /* ENBConfigurationUpdateFailure */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 8, -8, 0 } /* ENDCConfigurationUpdateFailure */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_4 = { - sizeof(struct UnsuccessfulOutcome__value), - offsetof(struct UnsuccessfulOutcome__value, _asn_ctx), - offsetof(struct UnsuccessfulOutcome__value, present), - sizeof(((struct UnsuccessfulOutcome__value *)0)->present), - asn_MAP_value_tag2el_4, - 9, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_4 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_4, - 9, /* Elements count */ - &asn_SPC_value_specs_4 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_UnsuccessfulOutcome_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct UnsuccessfulOutcome, procedureCode), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProcedureCode, - 0, - { 0, &asn_PER_memb_procedureCode_constr_2, memb_procedureCode_constraint_1 }, - 0, 0, /* No default value */ - "procedureCode" - }, - { ATF_NOFLAGS, 0, offsetof(struct UnsuccessfulOutcome, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_UnsuccessfulOutcome_criticality_type, - { 0, &asn_PER_memb_criticality_constr_3, memb_criticality_constraint_1 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct UnsuccessfulOutcome, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_4, - select_UnsuccessfulOutcome_value_type, - { 0, &asn_PER_memb_value_constr_4, memb_value_constraint_1 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_UnsuccessfulOutcome_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_UnsuccessfulOutcome_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* procedureCode */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_UnsuccessfulOutcome_specs_1 = { - sizeof(struct UnsuccessfulOutcome), - offsetof(struct UnsuccessfulOutcome, _asn_ctx), - asn_MAP_UnsuccessfulOutcome_tag2el_1, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_UnsuccessfulOutcome = { - "UnsuccessfulOutcome", - "UnsuccessfulOutcome", - &asn_OP_SEQUENCE, - asn_DEF_UnsuccessfulOutcome_tags_1, - sizeof(asn_DEF_UnsuccessfulOutcome_tags_1) - /sizeof(asn_DEF_UnsuccessfulOutcome_tags_1[0]), /* 1 */ - asn_DEF_UnsuccessfulOutcome_tags_1, /* Same as above */ - sizeof(asn_DEF_UnsuccessfulOutcome_tags_1) - /sizeof(asn_DEF_UnsuccessfulOutcome_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_UnsuccessfulOutcome_1, - 3, /* Elements count */ - &asn_SPC_UnsuccessfulOutcome_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/UnsuccessfulOutcome.h b/e2sim/previous/ASN1c/UnsuccessfulOutcome.h deleted file mode 100644 index 4602923..0000000 --- a/e2sim/previous/ASN1c/UnsuccessfulOutcome.h +++ /dev/null @@ -1,130 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Descriptions" - * found in "../../asnFiles/e2ap-v031.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _UnsuccessfulOutcome_H_ -#define _UnsuccessfulOutcome_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProcedureCode.h" -#include "Criticality.h" -#include "ANY.h" -#include "asn_ioc.h" -#include "RICsubscriptionRequest.h" -#include "RICsubscriptionResponse.h" -#include "RICsubscriptionFailure.h" -#include "RICsubscriptionDeleteRequest.h" -#include "RICsubscriptionDeleteResponse.h" -#include "RICsubscriptionDeleteFailure.h" -#include "RICserviceUpdate.h" -#include "RICserviceUpdateAcknowledge.h" -#include "RICserviceUpdateFailure.h" -#include "RICcontrolRequest.h" -#include "RICcontrolAcknowledge.h" -#include "RICcontrolFailure.h" -#include "X2SetupRequest.h" -#include "X2SetupResponse.h" -#include "X2SetupFailure.h" -#include "ENDCX2SetupRequest.h" -#include "ENDCX2SetupResponse.h" -#include "ENDCX2SetupFailure.h" -#include "ResourceStatusRequest.h" -#include "ResourceStatusResponse.h" -#include "ResourceStatusFailure.h" -#include "ENBConfigurationUpdate.h" -#include "ENBConfigurationUpdateAcknowledge.h" -#include "ENBConfigurationUpdateFailure.h" -#include "ENDCConfigurationUpdate.h" -#include "ENDCConfigurationUpdateAcknowledge.h" -#include "ENDCConfigurationUpdateFailure.h" -#include "ResetRequest.h" -#include "ResetResponse.h" -#include "RICindication.h" -#include "RICserviceQuery.h" -#include "LoadInformation.h" -#include "GNBStatusIndication.h" -#include "ResourceStatusUpdate.h" -#include "ErrorIndication.h" -#include "OPEN_TYPE.h" -#include "constr_CHOICE.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum UnsuccessfulOutcome__value_PR { - UnsuccessfulOutcome__value_PR_NOTHING, /* No components present */ - UnsuccessfulOutcome__value_PR_RICsubscriptionFailure, - UnsuccessfulOutcome__value_PR_RICsubscriptionDeleteFailure, - UnsuccessfulOutcome__value_PR_RICserviceUpdateFailure, - UnsuccessfulOutcome__value_PR_RICcontrolFailure, - UnsuccessfulOutcome__value_PR_X2SetupFailure, - UnsuccessfulOutcome__value_PR_ENDCX2SetupFailure, - UnsuccessfulOutcome__value_PR_ResourceStatusFailure, - UnsuccessfulOutcome__value_PR_ENBConfigurationUpdateFailure, - UnsuccessfulOutcome__value_PR_ENDCConfigurationUpdateFailure -} UnsuccessfulOutcome__value_PR; - -/* UnsuccessfulOutcome */ -typedef struct UnsuccessfulOutcome { - ProcedureCode_t procedureCode; - Criticality_t criticality; - struct UnsuccessfulOutcome__value { - UnsuccessfulOutcome__value_PR present; - union UnsuccessfulOutcome__value_u { - RICsubscriptionFailure_t RICsubscriptionFailure; - RICsubscriptionDeleteFailure_t RICsubscriptionDeleteFailure; - RICserviceUpdateFailure_t RICserviceUpdateFailure; - RICcontrolFailure_t RICcontrolFailure; - X2SetupFailure_t X2SetupFailure; - ENDCX2SetupFailure_t ENDCX2SetupFailure; - ResourceStatusFailure_t ResourceStatusFailure; - ENBConfigurationUpdateFailure_t ENBConfigurationUpdateFailure; - ENDCConfigurationUpdateFailure_t ENDCConfigurationUpdateFailure; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} UnsuccessfulOutcome_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_UnsuccessfulOutcome; -extern asn_SEQUENCE_specifics_t asn_SPC_UnsuccessfulOutcome_specs_1; -extern asn_TYPE_member_t asn_MBR_UnsuccessfulOutcome_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _UnsuccessfulOutcome_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/UsableABSInformation.c b/e2sim/previous/ASN1c/UsableABSInformation.c deleted file mode 100644 index 99ca85c..0000000 --- a/e2sim/previous/ASN1c/UsableABSInformation.c +++ /dev/null @@ -1,82 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "UsableABSInformation.h" - -#include "UsableABSInformationFDD.h" -#include "UsableABSInformationTDD.h" -asn_per_constraints_t asn_PER_type_UsableABSInformation_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_UsableABSInformation_1[] = { - { ATF_POINTER, 0, offsetof(struct UsableABSInformation, choice.fdd), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_UsableABSInformationFDD, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "fdd" - }, - { ATF_POINTER, 0, offsetof(struct UsableABSInformation, choice.tdd), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_UsableABSInformationTDD, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "tdd" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_UsableABSInformation_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* fdd */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* tdd */ -}; -asn_CHOICE_specifics_t asn_SPC_UsableABSInformation_specs_1 = { - sizeof(struct UsableABSInformation), - offsetof(struct UsableABSInformation, _asn_ctx), - offsetof(struct UsableABSInformation, present), - sizeof(((struct UsableABSInformation *)0)->present), - asn_MAP_UsableABSInformation_tag2el_1, - 2, /* Count of tags in the map */ - 0, 0, - 2 /* Extensions start */ -}; -asn_TYPE_descriptor_t asn_DEF_UsableABSInformation = { - "UsableABSInformation", - "UsableABSInformation", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, &asn_PER_type_UsableABSInformation_constr_1, CHOICE_constraint }, - asn_MBR_UsableABSInformation_1, - 2, /* Elements count */ - &asn_SPC_UsableABSInformation_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/UsableABSInformation.h b/e2sim/previous/ASN1c/UsableABSInformation.h deleted file mode 100644 index 87ddb44..0000000 --- a/e2sim/previous/ASN1c/UsableABSInformation.h +++ /dev/null @@ -1,79 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _UsableABSInformation_H_ -#define _UsableABSInformation_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "constr_CHOICE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum UsableABSInformation_PR { - UsableABSInformation_PR_NOTHING, /* No components present */ - UsableABSInformation_PR_fdd, - UsableABSInformation_PR_tdd - /* Extensions may appear below */ - -} UsableABSInformation_PR; - -/* Forward declarations */ -struct UsableABSInformationFDD; -struct UsableABSInformationTDD; - -/* UsableABSInformation */ -typedef struct UsableABSInformation { - UsableABSInformation_PR present; - union UsableABSInformation_u { - struct UsableABSInformationFDD *fdd; - struct UsableABSInformationTDD *tdd; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} UsableABSInformation_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_UsableABSInformation; -extern asn_CHOICE_specifics_t asn_SPC_UsableABSInformation_specs_1; -extern asn_TYPE_member_t asn_MBR_UsableABSInformation_1[2]; -extern asn_per_constraints_t asn_PER_type_UsableABSInformation_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _UsableABSInformation_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/UsableABSInformationFDD.c b/e2sim/previous/ASN1c/UsableABSInformationFDD.c deleted file mode 100644 index 0ec32bc..0000000 --- a/e2sim/previous/ASN1c/UsableABSInformationFDD.c +++ /dev/null @@ -1,117 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "UsableABSInformationFDD.h" - -#include "ProtocolExtensionContainer.h" -static int -memb_usable_abs_pattern_info_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if(st->size > 0) { - /* Size in bits */ - size = 8 * st->size - (st->bits_unused & 0x07); - } else { - size = 0; - } - - if((size == 40)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_per_constraints_t asn_PER_memb_usable_abs_pattern_info_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 0, 0, 40, 40 } /* (SIZE(40..40)) */, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_UsableABSInformationFDD_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct UsableABSInformationFDD, usable_abs_pattern_info), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_BIT_STRING, - 0, - { 0, &asn_PER_memb_usable_abs_pattern_info_constr_2, memb_usable_abs_pattern_info_constraint_1 }, - 0, 0, /* No default value */ - "usable-abs-pattern-info" - }, - { ATF_POINTER, 1, offsetof(struct UsableABSInformationFDD, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P218, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_UsableABSInformationFDD_oms_1[] = { 1 }; -static const ber_tlv_tag_t asn_DEF_UsableABSInformationFDD_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_UsableABSInformationFDD_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* usable-abs-pattern-info */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_UsableABSInformationFDD_specs_1 = { - sizeof(struct UsableABSInformationFDD), - offsetof(struct UsableABSInformationFDD, _asn_ctx), - asn_MAP_UsableABSInformationFDD_tag2el_1, - 2, /* Count of tags in the map */ - asn_MAP_UsableABSInformationFDD_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 2, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_UsableABSInformationFDD = { - "UsableABSInformationFDD", - "UsableABSInformationFDD", - &asn_OP_SEQUENCE, - asn_DEF_UsableABSInformationFDD_tags_1, - sizeof(asn_DEF_UsableABSInformationFDD_tags_1) - /sizeof(asn_DEF_UsableABSInformationFDD_tags_1[0]), /* 1 */ - asn_DEF_UsableABSInformationFDD_tags_1, /* Same as above */ - sizeof(asn_DEF_UsableABSInformationFDD_tags_1) - /sizeof(asn_DEF_UsableABSInformationFDD_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_UsableABSInformationFDD_1, - 2, /* Elements count */ - &asn_SPC_UsableABSInformationFDD_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/UsableABSInformationFDD.h b/e2sim/previous/ASN1c/UsableABSInformationFDD.h deleted file mode 100644 index 58b31e6..0000000 --- a/e2sim/previous/ASN1c/UsableABSInformationFDD.h +++ /dev/null @@ -1,66 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _UsableABSInformationFDD_H_ -#define _UsableABSInformationFDD_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "BIT_STRING.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* UsableABSInformationFDD */ -typedef struct UsableABSInformationFDD { - BIT_STRING_t usable_abs_pattern_info; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} UsableABSInformationFDD_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_UsableABSInformationFDD; -extern asn_SEQUENCE_specifics_t asn_SPC_UsableABSInformationFDD_specs_1; -extern asn_TYPE_member_t asn_MBR_UsableABSInformationFDD_1[2]; - -#ifdef __cplusplus -} -#endif - -#endif /* _UsableABSInformationFDD_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/UsableABSInformationTDD.c b/e2sim/previous/ASN1c/UsableABSInformationTDD.c deleted file mode 100644 index 5ce5551..0000000 --- a/e2sim/previous/ASN1c/UsableABSInformationTDD.c +++ /dev/null @@ -1,117 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "UsableABSInformationTDD.h" - -#include "ProtocolExtensionContainer.h" -static int -memb_usaable_abs_pattern_info_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if(st->size > 0) { - /* Size in bits */ - size = 8 * st->size - (st->bits_unused & 0x07); - } else { - size = 0; - } - - if((size >= 1 && size <= 70)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_per_constraints_t asn_PER_memb_usaable_abs_pattern_info_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED | APC_EXTENSIBLE, 7, 7, 1, 70 } /* (SIZE(1..70,...)) */, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_UsableABSInformationTDD_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct UsableABSInformationTDD, usaable_abs_pattern_info), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_BIT_STRING, - 0, - { 0, &asn_PER_memb_usaable_abs_pattern_info_constr_2, memb_usaable_abs_pattern_info_constraint_1 }, - 0, 0, /* No default value */ - "usaable-abs-pattern-info" - }, - { ATF_POINTER, 1, offsetof(struct UsableABSInformationTDD, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P219, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_UsableABSInformationTDD_oms_1[] = { 1 }; -static const ber_tlv_tag_t asn_DEF_UsableABSInformationTDD_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_UsableABSInformationTDD_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* usaable-abs-pattern-info */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_UsableABSInformationTDD_specs_1 = { - sizeof(struct UsableABSInformationTDD), - offsetof(struct UsableABSInformationTDD, _asn_ctx), - asn_MAP_UsableABSInformationTDD_tag2el_1, - 2, /* Count of tags in the map */ - asn_MAP_UsableABSInformationTDD_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 2, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_UsableABSInformationTDD = { - "UsableABSInformationTDD", - "UsableABSInformationTDD", - &asn_OP_SEQUENCE, - asn_DEF_UsableABSInformationTDD_tags_1, - sizeof(asn_DEF_UsableABSInformationTDD_tags_1) - /sizeof(asn_DEF_UsableABSInformationTDD_tags_1[0]), /* 1 */ - asn_DEF_UsableABSInformationTDD_tags_1, /* Same as above */ - sizeof(asn_DEF_UsableABSInformationTDD_tags_1) - /sizeof(asn_DEF_UsableABSInformationTDD_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_UsableABSInformationTDD_1, - 2, /* Elements count */ - &asn_SPC_UsableABSInformationTDD_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/UsableABSInformationTDD.h b/e2sim/previous/ASN1c/UsableABSInformationTDD.h deleted file mode 100644 index 5d84d30..0000000 --- a/e2sim/previous/ASN1c/UsableABSInformationTDD.h +++ /dev/null @@ -1,66 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _UsableABSInformationTDD_H_ -#define _UsableABSInformationTDD_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "BIT_STRING.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* UsableABSInformationTDD */ -typedef struct UsableABSInformationTDD { - BIT_STRING_t usaable_abs_pattern_info; - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} UsableABSInformationTDD_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_UsableABSInformationTDD; -extern asn_SEQUENCE_specifics_t asn_SPC_UsableABSInformationTDD_specs_1; -extern asn_TYPE_member_t asn_MBR_UsableABSInformationTDD_1[2]; - -#ifdef __cplusplus -} -#endif - -#endif /* _UsableABSInformationTDD_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/UserPlaneTrafficActivityReport.c b/e2sim/previous/ASN1c/UserPlaneTrafficActivityReport.c deleted file mode 100644 index 4bca7d5..0000000 --- a/e2sim/previous/ASN1c/UserPlaneTrafficActivityReport.c +++ /dev/null @@ -1,73 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "UserPlaneTrafficActivityReport.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_UserPlaneTrafficActivityReport_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_UserPlaneTrafficActivityReport_value2enum_1[] = { - { 0, 8, "inactive" }, - { 1, 12, "re-activated" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_UserPlaneTrafficActivityReport_enum2value_1[] = { - 0, /* inactive(0) */ - 1 /* re-activated(1) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_UserPlaneTrafficActivityReport_specs_1 = { - asn_MAP_UserPlaneTrafficActivityReport_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_UserPlaneTrafficActivityReport_enum2value_1, /* N => "tag"; sorted by N */ - 2, /* Number of elements in the maps */ - 3, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_UserPlaneTrafficActivityReport_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_UserPlaneTrafficActivityReport = { - "UserPlaneTrafficActivityReport", - "UserPlaneTrafficActivityReport", - &asn_OP_NativeEnumerated, - asn_DEF_UserPlaneTrafficActivityReport_tags_1, - sizeof(asn_DEF_UserPlaneTrafficActivityReport_tags_1) - /sizeof(asn_DEF_UserPlaneTrafficActivityReport_tags_1[0]), /* 1 */ - asn_DEF_UserPlaneTrafficActivityReport_tags_1, /* Same as above */ - sizeof(asn_DEF_UserPlaneTrafficActivityReport_tags_1) - /sizeof(asn_DEF_UserPlaneTrafficActivityReport_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_UserPlaneTrafficActivityReport_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_UserPlaneTrafficActivityReport_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/UserPlaneTrafficActivityReport.h b/e2sim/previous/ASN1c/UserPlaneTrafficActivityReport.h deleted file mode 100644 index 721828e..0000000 --- a/e2sim/previous/ASN1c/UserPlaneTrafficActivityReport.h +++ /dev/null @@ -1,72 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _UserPlaneTrafficActivityReport_H_ -#define _UserPlaneTrafficActivityReport_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum UserPlaneTrafficActivityReport { - UserPlaneTrafficActivityReport_inactive = 0, - UserPlaneTrafficActivityReport_re_activated = 1 - /* - * Enumeration is extensible - */ -} e_UserPlaneTrafficActivityReport; - -/* UserPlaneTrafficActivityReport */ -typedef long UserPlaneTrafficActivityReport_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_UserPlaneTrafficActivityReport_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_UserPlaneTrafficActivityReport; -extern const asn_INTEGER_specifics_t asn_SPC_UserPlaneTrafficActivityReport_specs_1; -asn_struct_free_f UserPlaneTrafficActivityReport_free; -asn_struct_print_f UserPlaneTrafficActivityReport_print; -asn_constr_check_f UserPlaneTrafficActivityReport_constraint; -ber_type_decoder_f UserPlaneTrafficActivityReport_decode_ber; -der_type_encoder_f UserPlaneTrafficActivityReport_encode_der; -xer_type_decoder_f UserPlaneTrafficActivityReport_decode_xer; -xer_type_encoder_f UserPlaneTrafficActivityReport_encode_xer; -per_type_decoder_f UserPlaneTrafficActivityReport_decode_uper; -per_type_encoder_f UserPlaneTrafficActivityReport_encode_uper; -per_type_decoder_f UserPlaneTrafficActivityReport_decode_aper; -per_type_encoder_f UserPlaneTrafficActivityReport_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _UserPlaneTrafficActivityReport_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/V2XServicesAuthorized.c b/e2sim/previous/ASN1c/V2XServicesAuthorized.c deleted file mode 100644 index 9ceb59a..0000000 --- a/e2sim/previous/ASN1c/V2XServicesAuthorized.c +++ /dev/null @@ -1,91 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "V2XServicesAuthorized.h" - -#include "ProtocolExtensionContainer.h" -asn_TYPE_member_t asn_MBR_V2XServicesAuthorized_1[] = { - { ATF_POINTER, 3, offsetof(struct V2XServicesAuthorized, vehicleUE), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_VehicleUE, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "vehicleUE" - }, - { ATF_POINTER, 2, offsetof(struct V2XServicesAuthorized, pedestrianUE), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_PedestrianUE, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "pedestrianUE" - }, - { ATF_POINTER, 1, offsetof(struct V2XServicesAuthorized, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P220, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_V2XServicesAuthorized_oms_1[] = { 0, 1, 2 }; -static const ber_tlv_tag_t asn_DEF_V2XServicesAuthorized_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_V2XServicesAuthorized_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* vehicleUE */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* pedestrianUE */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_V2XServicesAuthorized_specs_1 = { - sizeof(struct V2XServicesAuthorized), - offsetof(struct V2XServicesAuthorized, _asn_ctx), - asn_MAP_V2XServicesAuthorized_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_V2XServicesAuthorized_oms_1, /* Optional members */ - 3, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_V2XServicesAuthorized = { - "V2XServicesAuthorized", - "V2XServicesAuthorized", - &asn_OP_SEQUENCE, - asn_DEF_V2XServicesAuthorized_tags_1, - sizeof(asn_DEF_V2XServicesAuthorized_tags_1) - /sizeof(asn_DEF_V2XServicesAuthorized_tags_1[0]), /* 1 */ - asn_DEF_V2XServicesAuthorized_tags_1, /* Same as above */ - sizeof(asn_DEF_V2XServicesAuthorized_tags_1) - /sizeof(asn_DEF_V2XServicesAuthorized_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_V2XServicesAuthorized_1, - 3, /* Elements count */ - &asn_SPC_V2XServicesAuthorized_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/V2XServicesAuthorized.h b/e2sim/previous/ASN1c/V2XServicesAuthorized.h deleted file mode 100644 index b0204af..0000000 --- a/e2sim/previous/ASN1c/V2XServicesAuthorized.h +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _V2XServicesAuthorized_H_ -#define _V2XServicesAuthorized_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "VehicleUE.h" -#include "PedestrianUE.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolExtensionContainer; - -/* V2XServicesAuthorized */ -typedef struct V2XServicesAuthorized { - VehicleUE_t *vehicleUE; /* OPTIONAL */ - PedestrianUE_t *pedestrianUE; /* OPTIONAL */ - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} V2XServicesAuthorized_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_V2XServicesAuthorized; -extern asn_SEQUENCE_specifics_t asn_SPC_V2XServicesAuthorized_specs_1; -extern asn_TYPE_member_t asn_MBR_V2XServicesAuthorized_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _V2XServicesAuthorized_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/VehicleUE.c b/e2sim/previous/ASN1c/VehicleUE.c deleted file mode 100644 index 6f09671..0000000 --- a/e2sim/previous/ASN1c/VehicleUE.c +++ /dev/null @@ -1,73 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "VehicleUE.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_VehicleUE_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_VehicleUE_value2enum_1[] = { - { 0, 10, "authorized" }, - { 1, 14, "not-authorized" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_VehicleUE_enum2value_1[] = { - 0, /* authorized(0) */ - 1 /* not-authorized(1) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_VehicleUE_specs_1 = { - asn_MAP_VehicleUE_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_VehicleUE_enum2value_1, /* N => "tag"; sorted by N */ - 2, /* Number of elements in the maps */ - 3, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_VehicleUE_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_VehicleUE = { - "VehicleUE", - "VehicleUE", - &asn_OP_NativeEnumerated, - asn_DEF_VehicleUE_tags_1, - sizeof(asn_DEF_VehicleUE_tags_1) - /sizeof(asn_DEF_VehicleUE_tags_1[0]), /* 1 */ - asn_DEF_VehicleUE_tags_1, /* Same as above */ - sizeof(asn_DEF_VehicleUE_tags_1) - /sizeof(asn_DEF_VehicleUE_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_VehicleUE_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_VehicleUE_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/VehicleUE.h b/e2sim/previous/ASN1c/VehicleUE.h deleted file mode 100644 index 43ff0ae..0000000 --- a/e2sim/previous/ASN1c/VehicleUE.h +++ /dev/null @@ -1,72 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _VehicleUE_H_ -#define _VehicleUE_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum VehicleUE { - VehicleUE_authorized = 0, - VehicleUE_not_authorized = 1 - /* - * Enumeration is extensible - */ -} e_VehicleUE; - -/* VehicleUE */ -typedef long VehicleUE_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_VehicleUE_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_VehicleUE; -extern const asn_INTEGER_specifics_t asn_SPC_VehicleUE_specs_1; -asn_struct_free_f VehicleUE_free; -asn_struct_print_f VehicleUE_print; -asn_constr_check_f VehicleUE_constraint; -ber_type_decoder_f VehicleUE_decode_ber; -der_type_encoder_f VehicleUE_encode_der; -xer_type_decoder_f VehicleUE_decode_xer; -xer_type_encoder_f VehicleUE_encode_xer; -per_type_decoder_f VehicleUE_decode_uper; -per_type_encoder_f VehicleUE_encode_uper; -per_type_decoder_f VehicleUE_decode_aper; -per_type_encoder_f VehicleUE_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _VehicleUE_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/WLANMeasConfig.c b/e2sim/previous/ASN1c/WLANMeasConfig.c deleted file mode 100644 index 7df46a3..0000000 --- a/e2sim/previous/ASN1c/WLANMeasConfig.c +++ /dev/null @@ -1,71 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "WLANMeasConfig.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_WLANMeasConfig_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 0, 0 } /* (0..0,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_WLANMeasConfig_value2enum_1[] = { - { 0, 5, "setup" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_WLANMeasConfig_enum2value_1[] = { - 0 /* setup(0) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_WLANMeasConfig_specs_1 = { - asn_MAP_WLANMeasConfig_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_WLANMeasConfig_enum2value_1, /* N => "tag"; sorted by N */ - 1, /* Number of elements in the maps */ - 2, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_WLANMeasConfig_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_WLANMeasConfig = { - "WLANMeasConfig", - "WLANMeasConfig", - &asn_OP_NativeEnumerated, - asn_DEF_WLANMeasConfig_tags_1, - sizeof(asn_DEF_WLANMeasConfig_tags_1) - /sizeof(asn_DEF_WLANMeasConfig_tags_1[0]), /* 1 */ - asn_DEF_WLANMeasConfig_tags_1, /* Same as above */ - sizeof(asn_DEF_WLANMeasConfig_tags_1) - /sizeof(asn_DEF_WLANMeasConfig_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_WLANMeasConfig_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_WLANMeasConfig_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/WLANMeasConfig.h b/e2sim/previous/ASN1c/WLANMeasConfig.h deleted file mode 100644 index be02f1c..0000000 --- a/e2sim/previous/ASN1c/WLANMeasConfig.h +++ /dev/null @@ -1,71 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _WLANMeasConfig_H_ -#define _WLANMeasConfig_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum WLANMeasConfig { - WLANMeasConfig_setup = 0 - /* - * Enumeration is extensible - */ -} e_WLANMeasConfig; - -/* WLANMeasConfig */ -typedef long WLANMeasConfig_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_WLANMeasConfig_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_WLANMeasConfig; -extern const asn_INTEGER_specifics_t asn_SPC_WLANMeasConfig_specs_1; -asn_struct_free_f WLANMeasConfig_free; -asn_struct_print_f WLANMeasConfig_print; -asn_constr_check_f WLANMeasConfig_constraint; -ber_type_decoder_f WLANMeasConfig_decode_ber; -der_type_encoder_f WLANMeasConfig_encode_der; -xer_type_decoder_f WLANMeasConfig_decode_xer; -xer_type_encoder_f WLANMeasConfig_encode_xer; -per_type_decoder_f WLANMeasConfig_decode_uper; -per_type_encoder_f WLANMeasConfig_encode_uper; -per_type_decoder_f WLANMeasConfig_decode_aper; -per_type_encoder_f WLANMeasConfig_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _WLANMeasConfig_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/WLANMeasConfigNameList.c b/e2sim/previous/ASN1c/WLANMeasConfigNameList.c deleted file mode 100644 index 5bcbcbd..0000000 --- a/e2sim/previous/ASN1c/WLANMeasConfigNameList.c +++ /dev/null @@ -1,67 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "WLANMeasConfigNameList.h" - -asn_per_constraints_t asn_PER_type_WLANMeasConfigNameList_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_WLANMeasConfigNameList_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), - 0, - &asn_DEF_WLANName, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_WLANMeasConfigNameList_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_WLANMeasConfigNameList_specs_1 = { - sizeof(struct WLANMeasConfigNameList), - offsetof(struct WLANMeasConfigNameList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_WLANMeasConfigNameList = { - "WLANMeasConfigNameList", - "WLANMeasConfigNameList", - &asn_OP_SEQUENCE_OF, - asn_DEF_WLANMeasConfigNameList_tags_1, - sizeof(asn_DEF_WLANMeasConfigNameList_tags_1) - /sizeof(asn_DEF_WLANMeasConfigNameList_tags_1[0]), /* 1 */ - asn_DEF_WLANMeasConfigNameList_tags_1, /* Same as above */ - sizeof(asn_DEF_WLANMeasConfigNameList_tags_1) - /sizeof(asn_DEF_WLANMeasConfigNameList_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_WLANMeasConfigNameList_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_WLANMeasConfigNameList_1, - 1, /* Single element */ - &asn_SPC_WLANMeasConfigNameList_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/WLANMeasConfigNameList.h b/e2sim/previous/ASN1c/WLANMeasConfigNameList.h deleted file mode 100644 index 6263834..0000000 --- a/e2sim/previous/ASN1c/WLANMeasConfigNameList.h +++ /dev/null @@ -1,60 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _WLANMeasConfigNameList_H_ -#define _WLANMeasConfigNameList_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "WLANName.h" -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* WLANMeasConfigNameList */ -typedef struct WLANMeasConfigNameList { - A_SEQUENCE_OF(WLANName_t) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} WLANMeasConfigNameList_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_WLANMeasConfigNameList; -extern asn_SET_OF_specifics_t asn_SPC_WLANMeasConfigNameList_specs_1; -extern asn_TYPE_member_t asn_MBR_WLANMeasConfigNameList_1[1]; -extern asn_per_constraints_t asn_PER_type_WLANMeasConfigNameList_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _WLANMeasConfigNameList_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/WLANMeasurementConfiguration.c b/e2sim/previous/ASN1c/WLANMeasurementConfiguration.c deleted file mode 100644 index 40893a2..0000000 --- a/e2sim/previous/ASN1c/WLANMeasurementConfiguration.c +++ /dev/null @@ -1,204 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "WLANMeasurementConfiguration.h" - -#include "WLANMeasConfigNameList.h" -#include "ProtocolExtensionContainer.h" -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -static asn_per_constraints_t asn_PER_type_wlan_rssi_constr_4 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 0, 0 } /* (0..0,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_type_wlan_rtt_constr_7 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 0, 0 } /* (0..0,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_wlan_rssi_value2enum_4[] = { - { 0, 4, "true" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_wlan_rssi_enum2value_4[] = { - 0 /* true(0) */ - /* This list is extensible */ -}; -static const asn_INTEGER_specifics_t asn_SPC_wlan_rssi_specs_4 = { - asn_MAP_wlan_rssi_value2enum_4, /* "tag" => N; sorted by tag */ - asn_MAP_wlan_rssi_enum2value_4, /* N => "tag"; sorted by N */ - 1, /* Number of elements in the maps */ - 2, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_wlan_rssi_tags_4[] = { - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_wlan_rssi_4 = { - "wlan-rssi", - "wlan-rssi", - &asn_OP_NativeEnumerated, - asn_DEF_wlan_rssi_tags_4, - sizeof(asn_DEF_wlan_rssi_tags_4) - /sizeof(asn_DEF_wlan_rssi_tags_4[0]) - 1, /* 1 */ - asn_DEF_wlan_rssi_tags_4, /* Same as above */ - sizeof(asn_DEF_wlan_rssi_tags_4) - /sizeof(asn_DEF_wlan_rssi_tags_4[0]), /* 2 */ - { 0, &asn_PER_type_wlan_rssi_constr_4, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_wlan_rssi_specs_4 /* Additional specs */ -}; - -static const asn_INTEGER_enum_map_t asn_MAP_wlan_rtt_value2enum_7[] = { - { 0, 4, "true" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_wlan_rtt_enum2value_7[] = { - 0 /* true(0) */ - /* This list is extensible */ -}; -static const asn_INTEGER_specifics_t asn_SPC_wlan_rtt_specs_7 = { - asn_MAP_wlan_rtt_value2enum_7, /* "tag" => N; sorted by tag */ - asn_MAP_wlan_rtt_enum2value_7, /* N => "tag"; sorted by N */ - 1, /* Number of elements in the maps */ - 2, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_wlan_rtt_tags_7[] = { - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_wlan_rtt_7 = { - "wlan-rtt", - "wlan-rtt", - &asn_OP_NativeEnumerated, - asn_DEF_wlan_rtt_tags_7, - sizeof(asn_DEF_wlan_rtt_tags_7) - /sizeof(asn_DEF_wlan_rtt_tags_7[0]) - 1, /* 1 */ - asn_DEF_wlan_rtt_tags_7, /* Same as above */ - sizeof(asn_DEF_wlan_rtt_tags_7) - /sizeof(asn_DEF_wlan_rtt_tags_7[0]), /* 2 */ - { 0, &asn_PER_type_wlan_rtt_constr_7, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_wlan_rtt_specs_7 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_WLANMeasurementConfiguration_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct WLANMeasurementConfiguration, wlanMeasConfig), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_WLANMeasConfig, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "wlanMeasConfig" - }, - { ATF_POINTER, 4, offsetof(struct WLANMeasurementConfiguration, wlanMeasConfigNameList), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_WLANMeasConfigNameList, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "wlanMeasConfigNameList" - }, - { ATF_POINTER, 3, offsetof(struct WLANMeasurementConfiguration, wlan_rssi), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_wlan_rssi_4, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "wlan-rssi" - }, - { ATF_POINTER, 2, offsetof(struct WLANMeasurementConfiguration, wlan_rtt), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_wlan_rtt_7, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "wlan-rtt" - }, - { ATF_POINTER, 1, offsetof(struct WLANMeasurementConfiguration, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (4 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P222, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_WLANMeasurementConfiguration_oms_1[] = { 1, 2, 3, 4 }; -static const ber_tlv_tag_t asn_DEF_WLANMeasurementConfiguration_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_WLANMeasurementConfiguration_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* wlanMeasConfig */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* wlanMeasConfigNameList */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* wlan-rssi */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* wlan-rtt */ - { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_WLANMeasurementConfiguration_specs_1 = { - sizeof(struct WLANMeasurementConfiguration), - offsetof(struct WLANMeasurementConfiguration, _asn_ctx), - asn_MAP_WLANMeasurementConfiguration_tag2el_1, - 5, /* Count of tags in the map */ - asn_MAP_WLANMeasurementConfiguration_oms_1, /* Optional members */ - 4, 0, /* Root/Additions */ - 5, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_WLANMeasurementConfiguration = { - "WLANMeasurementConfiguration", - "WLANMeasurementConfiguration", - &asn_OP_SEQUENCE, - asn_DEF_WLANMeasurementConfiguration_tags_1, - sizeof(asn_DEF_WLANMeasurementConfiguration_tags_1) - /sizeof(asn_DEF_WLANMeasurementConfiguration_tags_1[0]), /* 1 */ - asn_DEF_WLANMeasurementConfiguration_tags_1, /* Same as above */ - sizeof(asn_DEF_WLANMeasurementConfiguration_tags_1) - /sizeof(asn_DEF_WLANMeasurementConfiguration_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_WLANMeasurementConfiguration_1, - 5, /* Elements count */ - &asn_SPC_WLANMeasurementConfiguration_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/WLANMeasurementConfiguration.h b/e2sim/previous/ASN1c/WLANMeasurementConfiguration.h deleted file mode 100644 index 2f39048..0000000 --- a/e2sim/previous/ASN1c/WLANMeasurementConfiguration.h +++ /dev/null @@ -1,87 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _WLANMeasurementConfiguration_H_ -#define _WLANMeasurementConfiguration_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "WLANMeasConfig.h" -#include "NativeEnumerated.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum WLANMeasurementConfiguration__wlan_rssi { - WLANMeasurementConfiguration__wlan_rssi_true = 0 - /* - * Enumeration is extensible - */ -} e_WLANMeasurementConfiguration__wlan_rssi; -typedef enum WLANMeasurementConfiguration__wlan_rtt { - WLANMeasurementConfiguration__wlan_rtt_true = 0 - /* - * Enumeration is extensible - */ -} e_WLANMeasurementConfiguration__wlan_rtt; - -/* Forward declarations */ -struct WLANMeasConfigNameList; -struct ProtocolExtensionContainer; - -/* WLANMeasurementConfiguration */ -typedef struct WLANMeasurementConfiguration { - WLANMeasConfig_t wlanMeasConfig; - struct WLANMeasConfigNameList *wlanMeasConfigNameList; /* OPTIONAL */ - long *wlan_rssi; /* OPTIONAL */ - long *wlan_rtt; /* OPTIONAL */ - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} WLANMeasurementConfiguration_t; - -/* Implementation */ -/* extern asn_TYPE_descriptor_t asn_DEF_wlan_rssi_4; // (Use -fall-defs-global to expose) */ -/* extern asn_TYPE_descriptor_t asn_DEF_wlan_rtt_7; // (Use -fall-defs-global to expose) */ -extern asn_TYPE_descriptor_t asn_DEF_WLANMeasurementConfiguration; -extern asn_SEQUENCE_specifics_t asn_SPC_WLANMeasurementConfiguration_specs_1; -extern asn_TYPE_member_t asn_MBR_WLANMeasurementConfiguration_1[5]; - -#ifdef __cplusplus -} -#endif - -#endif /* _WLANMeasurementConfiguration_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/WLANName.c b/e2sim/previous/ASN1c/WLANName.c deleted file mode 100644 index b2d1764..0000000 --- a/e2sim/previous/ASN1c/WLANName.c +++ /dev/null @@ -1,80 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "WLANName.h" - -int -WLANName_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - size = st->size; - - if((size >= 1 && size <= 32)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using OCTET_STRING, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_WLANName_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_WLANName_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_WLANName = { - "WLANName", - "WLANName", - &asn_OP_OCTET_STRING, - asn_DEF_WLANName_tags_1, - sizeof(asn_DEF_WLANName_tags_1) - /sizeof(asn_DEF_WLANName_tags_1[0]), /* 1 */ - asn_DEF_WLANName_tags_1, /* Same as above */ - sizeof(asn_DEF_WLANName_tags_1) - /sizeof(asn_DEF_WLANName_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_WLANName_constr_1, WLANName_constraint }, - 0, 0, /* No members */ - &asn_SPC_OCTET_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/WLANName.h b/e2sim/previous/ASN1c/WLANName.h deleted file mode 100644 index b201046..0000000 --- a/e2sim/previous/ASN1c/WLANName.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _WLANName_H_ -#define _WLANName_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "OCTET_STRING.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* WLANName */ -typedef OCTET_STRING_t WLANName_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_WLANName_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_WLANName; -asn_struct_free_f WLANName_free; -asn_struct_print_f WLANName_print; -asn_constr_check_f WLANName_constraint; -ber_type_decoder_f WLANName_decode_ber; -der_type_encoder_f WLANName_encode_der; -xer_type_decoder_f WLANName_decode_xer; -xer_type_encoder_f WLANName_encode_xer; -per_type_decoder_f WLANName_decode_uper; -per_type_encoder_f WLANName_encode_uper; -per_type_decoder_f WLANName_decode_aper; -per_type_encoder_f WLANName_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _WLANName_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/WT-UE-XwAP-ID.c b/e2sim/previous/ASN1c/WT-UE-XwAP-ID.c deleted file mode 100644 index 0018a5d..0000000 --- a/e2sim/previous/ASN1c/WT-UE-XwAP-ID.c +++ /dev/null @@ -1,80 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "WT-UE-XwAP-ID.h" - -int -WT_UE_XwAP_ID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - size = st->size; - - if((size == 3)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using OCTET_STRING, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_WT_UE_XwAP_ID_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 0, 0, 3, 3 } /* (SIZE(3..3)) */, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_WT_UE_XwAP_ID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_WT_UE_XwAP_ID = { - "WT-UE-XwAP-ID", - "WT-UE-XwAP-ID", - &asn_OP_OCTET_STRING, - asn_DEF_WT_UE_XwAP_ID_tags_1, - sizeof(asn_DEF_WT_UE_XwAP_ID_tags_1) - /sizeof(asn_DEF_WT_UE_XwAP_ID_tags_1[0]), /* 1 */ - asn_DEF_WT_UE_XwAP_ID_tags_1, /* Same as above */ - sizeof(asn_DEF_WT_UE_XwAP_ID_tags_1) - /sizeof(asn_DEF_WT_UE_XwAP_ID_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_WT_UE_XwAP_ID_constr_1, WT_UE_XwAP_ID_constraint }, - 0, 0, /* No members */ - &asn_SPC_OCTET_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/WT-UE-XwAP-ID.h b/e2sim/previous/ASN1c/WT-UE-XwAP-ID.h deleted file mode 100644 index b919b64..0000000 --- a/e2sim/previous/ASN1c/WT-UE-XwAP-ID.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _WT_UE_XwAP_ID_H_ -#define _WT_UE_XwAP_ID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "OCTET_STRING.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* WT-UE-XwAP-ID */ -typedef OCTET_STRING_t WT_UE_XwAP_ID_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_WT_UE_XwAP_ID_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_WT_UE_XwAP_ID; -asn_struct_free_f WT_UE_XwAP_ID_free; -asn_struct_print_f WT_UE_XwAP_ID_print; -asn_constr_check_f WT_UE_XwAP_ID_constraint; -ber_type_decoder_f WT_UE_XwAP_ID_decode_ber; -der_type_encoder_f WT_UE_XwAP_ID_encode_der; -xer_type_decoder_f WT_UE_XwAP_ID_decode_xer; -xer_type_encoder_f WT_UE_XwAP_ID_encode_xer; -per_type_decoder_f WT_UE_XwAP_ID_decode_uper; -per_type_encoder_f WT_UE_XwAP_ID_encode_uper; -per_type_decoder_f WT_UE_XwAP_ID_decode_aper; -per_type_encoder_f WT_UE_XwAP_ID_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _WT_UE_XwAP_ID_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/WTID-Long-Type2.c b/e2sim/previous/ASN1c/WTID-Long-Type2.c deleted file mode 100644 index 863d817..0000000 --- a/e2sim/previous/ASN1c/WTID-Long-Type2.c +++ /dev/null @@ -1,85 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "WTID-Long-Type2.h" - -int -WTID_Long_Type2_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if(st->size > 0) { - /* Size in bits */ - size = 8 * st->size - (st->bits_unused & 0x07); - } else { - size = 0; - } - - if((size == 48)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using BIT_STRING, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_WTID_Long_Type2_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 0, 0, 48, 48 } /* (SIZE(48..48)) */, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_WTID_Long_Type2_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_WTID_Long_Type2 = { - "WTID-Long-Type2", - "WTID-Long-Type2", - &asn_OP_BIT_STRING, - asn_DEF_WTID_Long_Type2_tags_1, - sizeof(asn_DEF_WTID_Long_Type2_tags_1) - /sizeof(asn_DEF_WTID_Long_Type2_tags_1[0]), /* 1 */ - asn_DEF_WTID_Long_Type2_tags_1, /* Same as above */ - sizeof(asn_DEF_WTID_Long_Type2_tags_1) - /sizeof(asn_DEF_WTID_Long_Type2_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_WTID_Long_Type2_constr_1, WTID_Long_Type2_constraint }, - 0, 0, /* No members */ - &asn_SPC_BIT_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/WTID-Long-Type2.h b/e2sim/previous/ASN1c/WTID-Long-Type2.h deleted file mode 100644 index 3a5332e..0000000 --- a/e2sim/previous/ASN1c/WTID-Long-Type2.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _WTID_Long_Type2_H_ -#define _WTID_Long_Type2_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "BIT_STRING.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* WTID-Long-Type2 */ -typedef BIT_STRING_t WTID_Long_Type2_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_WTID_Long_Type2_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_WTID_Long_Type2; -asn_struct_free_f WTID_Long_Type2_free; -asn_struct_print_f WTID_Long_Type2_print; -asn_constr_check_f WTID_Long_Type2_constraint; -ber_type_decoder_f WTID_Long_Type2_decode_ber; -der_type_encoder_f WTID_Long_Type2_encode_der; -xer_type_decoder_f WTID_Long_Type2_decode_xer; -xer_type_encoder_f WTID_Long_Type2_encode_xer; -per_type_decoder_f WTID_Long_Type2_decode_uper; -per_type_encoder_f WTID_Long_Type2_encode_uper; -per_type_decoder_f WTID_Long_Type2_decode_aper; -per_type_encoder_f WTID_Long_Type2_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _WTID_Long_Type2_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/WTID-Type1.c b/e2sim/previous/ASN1c/WTID-Type1.c deleted file mode 100644 index 471cb62..0000000 --- a/e2sim/previous/ASN1c/WTID-Type1.c +++ /dev/null @@ -1,114 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "WTID-Type1.h" - -static int -memb_shortWTID_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if(st->size > 0) { - /* Size in bits */ - size = 8 * st->size - (st->bits_unused & 0x07); - } else { - size = 0; - } - - if((size == 24)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_per_constraints_t asn_PER_memb_shortWTID_constr_3 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 0, 0, 24, 24 } /* (SIZE(24..24)) */, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_WTID_Type1_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct WTID_Type1, pLMN_Identity), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_PLMN_Identity, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "pLMN-Identity" - }, - { ATF_NOFLAGS, 0, offsetof(struct WTID_Type1, shortWTID), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_BIT_STRING, - 0, - { 0, &asn_PER_memb_shortWTID_constr_3, memb_shortWTID_constraint_1 }, - 0, 0, /* No default value */ - "shortWTID" - }, -}; -static const ber_tlv_tag_t asn_DEF_WTID_Type1_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_WTID_Type1_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pLMN-Identity */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* shortWTID */ -}; -asn_SEQUENCE_specifics_t asn_SPC_WTID_Type1_specs_1 = { - sizeof(struct WTID_Type1), - offsetof(struct WTID_Type1, _asn_ctx), - asn_MAP_WTID_Type1_tag2el_1, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 2, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_WTID_Type1 = { - "WTID-Type1", - "WTID-Type1", - &asn_OP_SEQUENCE, - asn_DEF_WTID_Type1_tags_1, - sizeof(asn_DEF_WTID_Type1_tags_1) - /sizeof(asn_DEF_WTID_Type1_tags_1[0]), /* 1 */ - asn_DEF_WTID_Type1_tags_1, /* Same as above */ - sizeof(asn_DEF_WTID_Type1_tags_1) - /sizeof(asn_DEF_WTID_Type1_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_WTID_Type1_1, - 2, /* Elements count */ - &asn_SPC_WTID_Type1_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/WTID-Type1.h b/e2sim/previous/ASN1c/WTID-Type1.h deleted file mode 100644 index ba19920..0000000 --- a/e2sim/previous/ASN1c/WTID-Type1.h +++ /dev/null @@ -1,64 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _WTID_Type1_H_ -#define _WTID_Type1_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "PLMN-Identity.h" -#include "BIT_STRING.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* WTID-Type1 */ -typedef struct WTID_Type1 { - PLMN_Identity_t pLMN_Identity; - BIT_STRING_t shortWTID; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} WTID_Type1_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_WTID_Type1; -extern asn_SEQUENCE_specifics_t asn_SPC_WTID_Type1_specs_1; -extern asn_TYPE_member_t asn_MBR_WTID_Type1_1[2]; - -#ifdef __cplusplus -} -#endif - -#endif /* _WTID_Type1_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/WTID.c b/e2sim/previous/ASN1c/WTID.c deleted file mode 100644 index b29df07..0000000 --- a/e2sim/previous/ASN1c/WTID.c +++ /dev/null @@ -1,81 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "WTID.h" - -#include "WTID-Type1.h" -asn_per_constraints_t asn_PER_type_WTID_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_WTID_1[] = { - { ATF_POINTER, 0, offsetof(struct WTID, choice.wTID_Type1), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_WTID_Type1, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "wTID-Type1" - }, - { ATF_NOFLAGS, 0, offsetof(struct WTID, choice.wTID_Type2), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_WTID_Long_Type2, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "wTID-Type2" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_WTID_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* wTID-Type1 */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* wTID-Type2 */ -}; -asn_CHOICE_specifics_t asn_SPC_WTID_specs_1 = { - sizeof(struct WTID), - offsetof(struct WTID, _asn_ctx), - offsetof(struct WTID, present), - sizeof(((struct WTID *)0)->present), - asn_MAP_WTID_tag2el_1, - 2, /* Count of tags in the map */ - 0, 0, - 2 /* Extensions start */ -}; -asn_TYPE_descriptor_t asn_DEF_WTID = { - "WTID", - "WTID", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, &asn_PER_type_WTID_constr_1, CHOICE_constraint }, - asn_MBR_WTID_1, - 2, /* Elements count */ - &asn_SPC_WTID_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/WTID.h b/e2sim/previous/ASN1c/WTID.h deleted file mode 100644 index 432bcd4..0000000 --- a/e2sim/previous/ASN1c/WTID.h +++ /dev/null @@ -1,79 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _WTID_H_ -#define _WTID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "WTID-Long-Type2.h" -#include "constr_CHOICE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum WTID_PR { - WTID_PR_NOTHING, /* No components present */ - WTID_PR_wTID_Type1, - WTID_PR_wTID_Type2 - /* Extensions may appear below */ - -} WTID_PR; - -/* Forward declarations */ -struct WTID_Type1; - -/* WTID */ -typedef struct WTID { - WTID_PR present; - union WTID_u { - struct WTID_Type1 *wTID_Type1; - WTID_Long_Type2_t wTID_Type2; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} WTID_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_WTID; -extern asn_CHOICE_specifics_t asn_SPC_WTID_specs_1; -extern asn_TYPE_member_t asn_MBR_WTID_1[2]; -extern asn_per_constraints_t asn_PER_type_WTID_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _WTID_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/WidebandCQI.c b/e2sim/previous/ASN1c/WidebandCQI.c deleted file mode 100644 index a833d18..0000000 --- a/e2sim/previous/ASN1c/WidebandCQI.c +++ /dev/null @@ -1,122 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "WidebandCQI.h" - -#include "WidebandCQICodeword1.h" -#include "ProtocolExtensionContainer.h" -static int -memb_widebandCQICodeword0_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 15)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_per_constraints_t asn_PER_memb_widebandCQICodeword0_constr_2 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 4, 4, 0, 15 } /* (0..15,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_WidebandCQI_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct WidebandCQI, widebandCQICodeword0), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { 0, &asn_PER_memb_widebandCQICodeword0_constr_2, memb_widebandCQICodeword0_constraint_1 }, - 0, 0, /* No default value */ - "widebandCQICodeword0" - }, - { ATF_POINTER, 2, offsetof(struct WidebandCQI, widebandCQICodeword1), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_WidebandCQICodeword1, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "widebandCQICodeword1" - }, - { ATF_POINTER, 1, offsetof(struct WidebandCQI, iE_Extensions), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolExtensionContainer_170P221, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-Extensions" - }, -}; -static const int asn_MAP_WidebandCQI_oms_1[] = { 1, 2 }; -static const ber_tlv_tag_t asn_DEF_WidebandCQI_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_WidebandCQI_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* widebandCQICodeword0 */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* widebandCQICodeword1 */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ -}; -asn_SEQUENCE_specifics_t asn_SPC_WidebandCQI_specs_1 = { - sizeof(struct WidebandCQI), - offsetof(struct WidebandCQI, _asn_ctx), - asn_MAP_WidebandCQI_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_WidebandCQI_oms_1, /* Optional members */ - 2, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_WidebandCQI = { - "WidebandCQI", - "WidebandCQI", - &asn_OP_SEQUENCE, - asn_DEF_WidebandCQI_tags_1, - sizeof(asn_DEF_WidebandCQI_tags_1) - /sizeof(asn_DEF_WidebandCQI_tags_1[0]), /* 1 */ - asn_DEF_WidebandCQI_tags_1, /* Same as above */ - sizeof(asn_DEF_WidebandCQI_tags_1) - /sizeof(asn_DEF_WidebandCQI_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_WidebandCQI_1, - 3, /* Elements count */ - &asn_SPC_WidebandCQI_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/WidebandCQI.h b/e2sim/previous/ASN1c/WidebandCQI.h deleted file mode 100644 index 7576fcf..0000000 --- a/e2sim/previous/ASN1c/WidebandCQI.h +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _WidebandCQI_H_ -#define _WidebandCQI_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeInteger.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct WidebandCQICodeword1; -struct ProtocolExtensionContainer; - -/* WidebandCQI */ -typedef struct WidebandCQI { - long widebandCQICodeword0; - struct WidebandCQICodeword1 *widebandCQICodeword1; /* OPTIONAL */ - struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} WidebandCQI_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_WidebandCQI; -extern asn_SEQUENCE_specifics_t asn_SPC_WidebandCQI_specs_1; -extern asn_TYPE_member_t asn_MBR_WidebandCQI_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _WidebandCQI_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/WidebandCQICodeword1.c b/e2sim/previous/ASN1c/WidebandCQICodeword1.c deleted file mode 100644 index da2fcd9..0000000 --- a/e2sim/previous/ASN1c/WidebandCQICodeword1.c +++ /dev/null @@ -1,140 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "WidebandCQICodeword1.h" - -static int -memb_four_bitCQI_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 15)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_three_bitSpatialDifferentialCQI_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 7)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_per_constraints_t asn_PER_memb_four_bitCQI_constr_2 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 4, 4, 0, 15 } /* (0..15,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_three_bitSpatialDifferentialCQI_constr_3 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 7 } /* (0..7,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_WidebandCQICodeword1_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_WidebandCQICodeword1_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct WidebandCQICodeword1, choice.four_bitCQI), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { 0, &asn_PER_memb_four_bitCQI_constr_2, memb_four_bitCQI_constraint_1 }, - 0, 0, /* No default value */ - "four-bitCQI" - }, - { ATF_NOFLAGS, 0, offsetof(struct WidebandCQICodeword1, choice.three_bitSpatialDifferentialCQI), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { 0, &asn_PER_memb_three_bitSpatialDifferentialCQI_constr_3, memb_three_bitSpatialDifferentialCQI_constraint_1 }, - 0, 0, /* No default value */ - "three-bitSpatialDifferentialCQI" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_WidebandCQICodeword1_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* four-bitCQI */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* three-bitSpatialDifferentialCQI */ -}; -asn_CHOICE_specifics_t asn_SPC_WidebandCQICodeword1_specs_1 = { - sizeof(struct WidebandCQICodeword1), - offsetof(struct WidebandCQICodeword1, _asn_ctx), - offsetof(struct WidebandCQICodeword1, present), - sizeof(((struct WidebandCQICodeword1 *)0)->present), - asn_MAP_WidebandCQICodeword1_tag2el_1, - 2, /* Count of tags in the map */ - 0, 0, - 2 /* Extensions start */ -}; -asn_TYPE_descriptor_t asn_DEF_WidebandCQICodeword1 = { - "WidebandCQICodeword1", - "WidebandCQICodeword1", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, &asn_PER_type_WidebandCQICodeword1_constr_1, CHOICE_constraint }, - asn_MBR_WidebandCQICodeword1_1, - 2, /* Elements count */ - &asn_SPC_WidebandCQICodeword1_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/WidebandCQICodeword1.h b/e2sim/previous/ASN1c/WidebandCQICodeword1.h deleted file mode 100644 index 27b7056..0000000 --- a/e2sim/previous/ASN1c/WidebandCQICodeword1.h +++ /dev/null @@ -1,76 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _WidebandCQICodeword1_H_ -#define _WidebandCQICodeword1_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeInteger.h" -#include "constr_CHOICE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum WidebandCQICodeword1_PR { - WidebandCQICodeword1_PR_NOTHING, /* No components present */ - WidebandCQICodeword1_PR_four_bitCQI, - WidebandCQICodeword1_PR_three_bitSpatialDifferentialCQI - /* Extensions may appear below */ - -} WidebandCQICodeword1_PR; - -/* WidebandCQICodeword1 */ -typedef struct WidebandCQICodeword1 { - WidebandCQICodeword1_PR present; - union WidebandCQICodeword1_u { - long four_bitCQI; - long three_bitSpatialDifferentialCQI; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} WidebandCQICodeword1_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_WidebandCQICodeword1; -extern asn_CHOICE_specifics_t asn_SPC_WidebandCQICodeword1_specs_1; -extern asn_TYPE_member_t asn_MBR_WidebandCQICodeword1_1[2]; -extern asn_per_constraints_t asn_PER_type_WidebandCQICodeword1_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _WidebandCQICodeword1_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/X2AP-Message.c b/e2sim/previous/ASN1c/X2AP-Message.c deleted file mode 100644 index d32ae73..0000000 --- a/e2sim/previous/ASN1c/X2AP-Message.c +++ /dev/null @@ -1,49 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "X2AP-Message.h" - -/* - * This type is implemented using OCTET_STRING, - * so here we adjust the DEF accordingly. - */ -static const ber_tlv_tag_t asn_DEF_X2AP_Message_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_X2AP_Message = { - "X2AP-Message", - "X2AP-Message", - &asn_OP_OCTET_STRING, - asn_DEF_X2AP_Message_tags_1, - sizeof(asn_DEF_X2AP_Message_tags_1) - /sizeof(asn_DEF_X2AP_Message_tags_1[0]), /* 1 */ - asn_DEF_X2AP_Message_tags_1, /* Same as above */ - sizeof(asn_DEF_X2AP_Message_tags_1) - /sizeof(asn_DEF_X2AP_Message_tags_1[0]), /* 1 */ - { 0, 0, OCTET_STRING_constraint }, - 0, 0, /* No members */ - &asn_SPC_OCTET_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/X2AP-Message.h b/e2sim/previous/ASN1c/X2AP-Message.h deleted file mode 100644 index 5663f0e..0000000 --- a/e2sim/previous/ASN1c/X2AP-Message.h +++ /dev/null @@ -1,61 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _X2AP_Message_H_ -#define _X2AP_Message_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "OCTET_STRING.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* X2AP-Message */ -typedef OCTET_STRING_t X2AP_Message_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_X2AP_Message; -asn_struct_free_f X2AP_Message_free; -asn_struct_print_f X2AP_Message_print; -asn_constr_check_f X2AP_Message_constraint; -ber_type_decoder_f X2AP_Message_decode_ber; -der_type_encoder_f X2AP_Message_encode_der; -xer_type_decoder_f X2AP_Message_decode_xer; -xer_type_encoder_f X2AP_Message_encode_xer; -per_type_decoder_f X2AP_Message_decode_uper; -per_type_encoder_f X2AP_Message_encode_uper; -per_type_decoder_f X2AP_Message_decode_aper; -per_type_encoder_f X2AP_Message_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _X2AP_Message_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/X2APMessageTransfer.c b/e2sim/previous/ASN1c/X2APMessageTransfer.c deleted file mode 100644 index 950cbb1..0000000 --- a/e2sim/previous/ASN1c/X2APMessageTransfer.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "X2APMessageTransfer.h" - -static asn_TYPE_member_t asn_MBR_X2APMessageTransfer_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct X2APMessageTransfer, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_119P43, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_X2APMessageTransfer_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_X2APMessageTransfer_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_X2APMessageTransfer_specs_1 = { - sizeof(struct X2APMessageTransfer), - offsetof(struct X2APMessageTransfer, _asn_ctx), - asn_MAP_X2APMessageTransfer_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_X2APMessageTransfer = { - "X2APMessageTransfer", - "X2APMessageTransfer", - &asn_OP_SEQUENCE, - asn_DEF_X2APMessageTransfer_tags_1, - sizeof(asn_DEF_X2APMessageTransfer_tags_1) - /sizeof(asn_DEF_X2APMessageTransfer_tags_1[0]), /* 1 */ - asn_DEF_X2APMessageTransfer_tags_1, /* Same as above */ - sizeof(asn_DEF_X2APMessageTransfer_tags_1) - /sizeof(asn_DEF_X2APMessageTransfer_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_X2APMessageTransfer_1, - 1, /* Elements count */ - &asn_SPC_X2APMessageTransfer_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/X2APMessageTransfer.h b/e2sim/previous/ASN1c/X2APMessageTransfer.h deleted file mode 100644 index 66eafdb..0000000 --- a/e2sim/previous/ASN1c/X2APMessageTransfer.h +++ /dev/null @@ -1,60 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _X2APMessageTransfer_H_ -#define _X2APMessageTransfer_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* X2APMessageTransfer */ -typedef struct X2APMessageTransfer { - ProtocolIE_Container_119P43_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} X2APMessageTransfer_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_X2APMessageTransfer; - -#ifdef __cplusplus -} -#endif - -#endif /* _X2APMessageTransfer_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/X2BenefitValue.c b/e2sim/previous/ASN1c/X2BenefitValue.c deleted file mode 100644 index ea88463..0000000 --- a/e2sim/previous/ASN1c/X2BenefitValue.c +++ /dev/null @@ -1,79 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "X2BenefitValue.h" - -int -X2BenefitValue_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 1 && value <= 8)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using NativeInteger, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_X2BenefitValue_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 1, 8 } /* (1..8,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_X2BenefitValue_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_X2BenefitValue = { - "X2BenefitValue", - "X2BenefitValue", - &asn_OP_NativeInteger, - asn_DEF_X2BenefitValue_tags_1, - sizeof(asn_DEF_X2BenefitValue_tags_1) - /sizeof(asn_DEF_X2BenefitValue_tags_1[0]), /* 1 */ - asn_DEF_X2BenefitValue_tags_1, /* Same as above */ - sizeof(asn_DEF_X2BenefitValue_tags_1) - /sizeof(asn_DEF_X2BenefitValue_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_X2BenefitValue_constr_1, X2BenefitValue_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/previous/ASN1c/X2BenefitValue.h b/e2sim/previous/ASN1c/X2BenefitValue.h deleted file mode 100644 index b7c09f7..0000000 --- a/e2sim/previous/ASN1c/X2BenefitValue.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-IEs" - * found in "../../asnFiles/X2AP-IEs.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _X2BenefitValue_H_ -#define _X2BenefitValue_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeInteger.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* X2BenefitValue */ -typedef long X2BenefitValue_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_X2BenefitValue_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_X2BenefitValue; -asn_struct_free_f X2BenefitValue_free; -asn_struct_print_f X2BenefitValue_print; -asn_constr_check_f X2BenefitValue_constraint; -ber_type_decoder_f X2BenefitValue_decode_ber; -der_type_encoder_f X2BenefitValue_encode_der; -xer_type_decoder_f X2BenefitValue_decode_xer; -xer_type_encoder_f X2BenefitValue_encode_xer; -per_type_decoder_f X2BenefitValue_decode_uper; -per_type_encoder_f X2BenefitValue_encode_uper; -per_type_decoder_f X2BenefitValue_decode_aper; -per_type_encoder_f X2BenefitValue_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _X2BenefitValue_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/X2Release.c b/e2sim/previous/ASN1c/X2Release.c deleted file mode 100644 index 9984135..0000000 --- a/e2sim/previous/ASN1c/X2Release.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "X2Release.h" - -static asn_TYPE_member_t asn_MBR_X2Release_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct X2Release, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_119P42, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_X2Release_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_X2Release_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_X2Release_specs_1 = { - sizeof(struct X2Release), - offsetof(struct X2Release, _asn_ctx), - asn_MAP_X2Release_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_X2Release = { - "X2Release", - "X2Release", - &asn_OP_SEQUENCE, - asn_DEF_X2Release_tags_1, - sizeof(asn_DEF_X2Release_tags_1) - /sizeof(asn_DEF_X2Release_tags_1[0]), /* 1 */ - asn_DEF_X2Release_tags_1, /* Same as above */ - sizeof(asn_DEF_X2Release_tags_1) - /sizeof(asn_DEF_X2Release_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_X2Release_1, - 1, /* Elements count */ - &asn_SPC_X2Release_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/X2Release.h b/e2sim/previous/ASN1c/X2Release.h deleted file mode 100644 index 2e2cddf..0000000 --- a/e2sim/previous/ASN1c/X2Release.h +++ /dev/null @@ -1,60 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _X2Release_H_ -#define _X2Release_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* X2Release */ -typedef struct X2Release { - ProtocolIE_Container_119P42_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} X2Release_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_X2Release; - -#ifdef __cplusplus -} -#endif - -#endif /* _X2Release_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/X2RemovalFailure.c b/e2sim/previous/ASN1c/X2RemovalFailure.c deleted file mode 100644 index 24b313f..0000000 --- a/e2sim/previous/ASN1c/X2RemovalFailure.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "X2RemovalFailure.h" - -static asn_TYPE_member_t asn_MBR_X2RemovalFailure_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct X2RemovalFailure, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_119P60, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_X2RemovalFailure_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_X2RemovalFailure_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_X2RemovalFailure_specs_1 = { - sizeof(struct X2RemovalFailure), - offsetof(struct X2RemovalFailure, _asn_ctx), - asn_MAP_X2RemovalFailure_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_X2RemovalFailure = { - "X2RemovalFailure", - "X2RemovalFailure", - &asn_OP_SEQUENCE, - asn_DEF_X2RemovalFailure_tags_1, - sizeof(asn_DEF_X2RemovalFailure_tags_1) - /sizeof(asn_DEF_X2RemovalFailure_tags_1[0]), /* 1 */ - asn_DEF_X2RemovalFailure_tags_1, /* Same as above */ - sizeof(asn_DEF_X2RemovalFailure_tags_1) - /sizeof(asn_DEF_X2RemovalFailure_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_X2RemovalFailure_1, - 1, /* Elements count */ - &asn_SPC_X2RemovalFailure_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/X2RemovalFailure.h b/e2sim/previous/ASN1c/X2RemovalFailure.h deleted file mode 100644 index 8496e01..0000000 --- a/e2sim/previous/ASN1c/X2RemovalFailure.h +++ /dev/null @@ -1,60 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _X2RemovalFailure_H_ -#define _X2RemovalFailure_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* X2RemovalFailure */ -typedef struct X2RemovalFailure { - ProtocolIE_Container_119P60_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} X2RemovalFailure_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_X2RemovalFailure; - -#ifdef __cplusplus -} -#endif - -#endif /* _X2RemovalFailure_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/X2RemovalRequest.c b/e2sim/previous/ASN1c/X2RemovalRequest.c deleted file mode 100644 index 437b38c..0000000 --- a/e2sim/previous/ASN1c/X2RemovalRequest.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "X2RemovalRequest.h" - -static asn_TYPE_member_t asn_MBR_X2RemovalRequest_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct X2RemovalRequest, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_119P58, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_X2RemovalRequest_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_X2RemovalRequest_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_X2RemovalRequest_specs_1 = { - sizeof(struct X2RemovalRequest), - offsetof(struct X2RemovalRequest, _asn_ctx), - asn_MAP_X2RemovalRequest_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_X2RemovalRequest = { - "X2RemovalRequest", - "X2RemovalRequest", - &asn_OP_SEQUENCE, - asn_DEF_X2RemovalRequest_tags_1, - sizeof(asn_DEF_X2RemovalRequest_tags_1) - /sizeof(asn_DEF_X2RemovalRequest_tags_1[0]), /* 1 */ - asn_DEF_X2RemovalRequest_tags_1, /* Same as above */ - sizeof(asn_DEF_X2RemovalRequest_tags_1) - /sizeof(asn_DEF_X2RemovalRequest_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_X2RemovalRequest_1, - 1, /* Elements count */ - &asn_SPC_X2RemovalRequest_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/X2RemovalRequest.h b/e2sim/previous/ASN1c/X2RemovalRequest.h deleted file mode 100644 index 925e5fc..0000000 --- a/e2sim/previous/ASN1c/X2RemovalRequest.h +++ /dev/null @@ -1,60 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _X2RemovalRequest_H_ -#define _X2RemovalRequest_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* X2RemovalRequest */ -typedef struct X2RemovalRequest { - ProtocolIE_Container_119P58_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} X2RemovalRequest_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_X2RemovalRequest; - -#ifdef __cplusplus -} -#endif - -#endif /* _X2RemovalRequest_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/X2RemovalResponse.c b/e2sim/previous/ASN1c/X2RemovalResponse.c deleted file mode 100644 index fa986ed..0000000 --- a/e2sim/previous/ASN1c/X2RemovalResponse.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "X2RemovalResponse.h" - -static asn_TYPE_member_t asn_MBR_X2RemovalResponse_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct X2RemovalResponse, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_119P59, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_X2RemovalResponse_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_X2RemovalResponse_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_X2RemovalResponse_specs_1 = { - sizeof(struct X2RemovalResponse), - offsetof(struct X2RemovalResponse, _asn_ctx), - asn_MAP_X2RemovalResponse_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_X2RemovalResponse = { - "X2RemovalResponse", - "X2RemovalResponse", - &asn_OP_SEQUENCE, - asn_DEF_X2RemovalResponse_tags_1, - sizeof(asn_DEF_X2RemovalResponse_tags_1) - /sizeof(asn_DEF_X2RemovalResponse_tags_1[0]), /* 1 */ - asn_DEF_X2RemovalResponse_tags_1, /* Same as above */ - sizeof(asn_DEF_X2RemovalResponse_tags_1) - /sizeof(asn_DEF_X2RemovalResponse_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_X2RemovalResponse_1, - 1, /* Elements count */ - &asn_SPC_X2RemovalResponse_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/X2RemovalResponse.h b/e2sim/previous/ASN1c/X2RemovalResponse.h deleted file mode 100644 index 8c43c87..0000000 --- a/e2sim/previous/ASN1c/X2RemovalResponse.h +++ /dev/null @@ -1,60 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _X2RemovalResponse_H_ -#define _X2RemovalResponse_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* X2RemovalResponse */ -typedef struct X2RemovalResponse { - ProtocolIE_Container_119P59_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} X2RemovalResponse_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_X2RemovalResponse; - -#ifdef __cplusplus -} -#endif - -#endif /* _X2RemovalResponse_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/X2SetupFailure.c b/e2sim/previous/ASN1c/X2SetupFailure.c deleted file mode 100644 index d42ab86..0000000 --- a/e2sim/previous/ASN1c/X2SetupFailure.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "X2SetupFailure.h" - -asn_TYPE_member_t asn_MBR_X2SetupFailure_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct X2SetupFailure, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_119P26, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_X2SetupFailure_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_X2SetupFailure_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_X2SetupFailure_specs_1 = { - sizeof(struct X2SetupFailure), - offsetof(struct X2SetupFailure, _asn_ctx), - asn_MAP_X2SetupFailure_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_X2SetupFailure = { - "X2SetupFailure", - "X2SetupFailure", - &asn_OP_SEQUENCE, - asn_DEF_X2SetupFailure_tags_1, - sizeof(asn_DEF_X2SetupFailure_tags_1) - /sizeof(asn_DEF_X2SetupFailure_tags_1[0]), /* 1 */ - asn_DEF_X2SetupFailure_tags_1, /* Same as above */ - sizeof(asn_DEF_X2SetupFailure_tags_1) - /sizeof(asn_DEF_X2SetupFailure_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_X2SetupFailure_1, - 1, /* Elements count */ - &asn_SPC_X2SetupFailure_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/X2SetupFailure.h b/e2sim/previous/ASN1c/X2SetupFailure.h deleted file mode 100644 index 9b51967..0000000 --- a/e2sim/previous/ASN1c/X2SetupFailure.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _X2SetupFailure_H_ -#define _X2SetupFailure_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* X2SetupFailure */ -typedef struct X2SetupFailure { - ProtocolIE_Container_119P26_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} X2SetupFailure_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_X2SetupFailure; -extern asn_SEQUENCE_specifics_t asn_SPC_X2SetupFailure_specs_1; -extern asn_TYPE_member_t asn_MBR_X2SetupFailure_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _X2SetupFailure_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/X2SetupRequest.c b/e2sim/previous/ASN1c/X2SetupRequest.c deleted file mode 100644 index 3c87b57..0000000 --- a/e2sim/previous/ASN1c/X2SetupRequest.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "X2SetupRequest.h" - -asn_TYPE_member_t asn_MBR_X2SetupRequest_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct X2SetupRequest, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_119P24, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_X2SetupRequest_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_X2SetupRequest_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_X2SetupRequest_specs_1 = { - sizeof(struct X2SetupRequest), - offsetof(struct X2SetupRequest, _asn_ctx), - asn_MAP_X2SetupRequest_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_X2SetupRequest = { - "X2SetupRequest", - "X2SetupRequest", - &asn_OP_SEQUENCE, - asn_DEF_X2SetupRequest_tags_1, - sizeof(asn_DEF_X2SetupRequest_tags_1) - /sizeof(asn_DEF_X2SetupRequest_tags_1[0]), /* 1 */ - asn_DEF_X2SetupRequest_tags_1, /* Same as above */ - sizeof(asn_DEF_X2SetupRequest_tags_1) - /sizeof(asn_DEF_X2SetupRequest_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_X2SetupRequest_1, - 1, /* Elements count */ - &asn_SPC_X2SetupRequest_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/X2SetupRequest.h b/e2sim/previous/ASN1c/X2SetupRequest.h deleted file mode 100644 index d1fe370..0000000 --- a/e2sim/previous/ASN1c/X2SetupRequest.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _X2SetupRequest_H_ -#define _X2SetupRequest_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* X2SetupRequest */ -typedef struct X2SetupRequest { - ProtocolIE_Container_119P24_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} X2SetupRequest_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_X2SetupRequest; -extern asn_SEQUENCE_specifics_t asn_SPC_X2SetupRequest_specs_1; -extern asn_TYPE_member_t asn_MBR_X2SetupRequest_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _X2SetupRequest_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/X2SetupResponse.c b/e2sim/previous/ASN1c/X2SetupResponse.c deleted file mode 100644 index 5134d24..0000000 --- a/e2sim/previous/ASN1c/X2SetupResponse.c +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#include "X2SetupResponse.h" - -asn_TYPE_member_t asn_MBR_X2SetupResponse_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct X2SetupResponse, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_119P25, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_X2SetupResponse_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_X2SetupResponse_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_X2SetupResponse_specs_1 = { - sizeof(struct X2SetupResponse), - offsetof(struct X2SetupResponse, _asn_ctx), - asn_MAP_X2SetupResponse_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_X2SetupResponse = { - "X2SetupResponse", - "X2SetupResponse", - &asn_OP_SEQUENCE, - asn_DEF_X2SetupResponse_tags_1, - sizeof(asn_DEF_X2SetupResponse_tags_1) - /sizeof(asn_DEF_X2SetupResponse_tags_1[0]), /* 1 */ - asn_DEF_X2SetupResponse_tags_1, /* Same as above */ - sizeof(asn_DEF_X2SetupResponse_tags_1) - /sizeof(asn_DEF_X2SetupResponse_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_X2SetupResponse_1, - 1, /* Elements count */ - &asn_SPC_X2SetupResponse_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/ASN1c/X2SetupResponse.h b/e2sim/previous/ASN1c/X2SetupResponse.h deleted file mode 100644 index 69d609a..0000000 --- a/e2sim/previous/ASN1c/X2SetupResponse.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "X2AP-PDU-Contents" - * found in "../../asnFiles/X2AP-PDU-Contents.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.` - */ - -#ifndef _X2SetupResponse_H_ -#define _X2SetupResponse_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* X2SetupResponse */ -typedef struct X2SetupResponse { - ProtocolIE_Container_119P25_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} X2SetupResponse_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_X2SetupResponse; -extern asn_SEQUENCE_specifics_t asn_SPC_X2SetupResponse_specs_1; -extern asn_TYPE_member_t asn_MBR_X2SetupResponse_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _X2SetupResponse_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/ASN1c/asn_SEQUENCE_OF.c b/e2sim/previous/ASN1c/asn_SEQUENCE_OF.c deleted file mode 100644 index a231462..0000000 --- a/e2sim/previous/ASN1c/asn_SEQUENCE_OF.c +++ /dev/null @@ -1,59 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/*- - * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include - -typedef A_SEQUENCE_OF(void) asn_sequence; - -void -asn_sequence_del(void *asn_sequence_of_x, int number, int _do_free) { - asn_sequence *as = (asn_sequence *)asn_sequence_of_x; - - if(as) { - void *ptr; - int n; - - if(number < 0 || number >= as->count) - return; /* Nothing to delete */ - - if(_do_free && as->free) { - ptr = as->array[number]; - } else { - ptr = 0; - } - - /* - * Shift all elements to the left to hide the gap. - */ - --as->count; - for(n = number; n < as->count; n++) - as->array[n] = as->array[n+1]; - - /* - * Invoke the third-party function only when the state - * of the parent structure is consistent. - */ - if(ptr) as->free(ptr); - } -} - diff --git a/e2sim/previous/ASN1c/asn_SEQUENCE_OF.h b/e2sim/previous/ASN1c/asn_SEQUENCE_OF.h deleted file mode 100644 index 5b1f5fc..0000000 --- a/e2sim/previous/ASN1c/asn_SEQUENCE_OF.h +++ /dev/null @@ -1,70 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/*- - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef ASN_SEQUENCE_OF_H -#define ASN_SEQUENCE_OF_H - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * SEQUENCE OF is the same as SET OF with a tiny difference: - * the delete operation preserves the initial order of elements - * and thus MAY operate in non-constant time. - */ -#define A_SEQUENCE_OF(type) A_SET_OF(type) - -#define ASN_SEQUENCE_ADD(headptr, ptr) \ - asn_sequence_add((headptr), (ptr)) - -/*********************************************** - * Implementation of the SEQUENCE OF structure. - */ - -#define asn_sequence_add asn_set_add -#define asn_sequence_empty asn_set_empty - -/* - * Delete the element from the set by its number (base 0). - * This is NOT a constant-time operation. - * The order of elements is preserved. - * If _do_free is given AND the (*free) is initialized, the element - * will be freed using the custom (*free) function as well. - */ -void asn_sequence_del(void *asn_sequence_of_x, int number, int _do_free); - -/* - * Cope with different conversions requirements to/from void in C and C++. - * This is mostly useful for support library. - */ -typedef A_SEQUENCE_OF(void) asn_anonymous_sequence_; -#define _A_SEQUENCE_FROM_VOID(ptr) ((asn_anonymous_sequence_ *)(ptr)) -#define _A_CSEQUENCE_FROM_VOID(ptr) ((const asn_anonymous_sequence_ *)(ptr)) - -#ifdef __cplusplus -} -#endif - -#endif /* ASN_SEQUENCE_OF_H */ diff --git a/e2sim/previous/ASN1c/asn_SET_OF.c b/e2sim/previous/ASN1c/asn_SET_OF.c deleted file mode 100644 index b138c43..0000000 --- a/e2sim/previous/ASN1c/asn_SET_OF.c +++ /dev/null @@ -1,106 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/*- - * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include - -/* - * Add another element into the set. - */ -int -asn_set_add(void *asn_set_of_x, void *ptr) { - asn_anonymous_set_ *as = _A_SET_FROM_VOID(asn_set_of_x); - - if(as == 0 || ptr == 0) { - errno = EINVAL; /* Invalid arguments */ - return -1; - } - - /* - * Make sure there's enough space to insert an element. - */ - if(as->count == as->size) { - int _newsize = as->size ? (as->size << 1) : 4; - void *_new_arr; - _new_arr = REALLOC(as->array, _newsize * sizeof(as->array[0])); - if(_new_arr) { - as->array = (void **)_new_arr; - as->size = _newsize; - } else { - /* ENOMEM */ - return -1; - } - } - - as->array[as->count++] = ptr; - - return 0; -} - -void -asn_set_del(void *asn_set_of_x, int number, int _do_free) { - asn_anonymous_set_ *as = _A_SET_FROM_VOID(asn_set_of_x); - - if(as) { - void *ptr; - if(number < 0 || number >= as->count) - return; - - if(_do_free && as->free) { - ptr = as->array[number]; - } else { - ptr = 0; - } - - as->array[number] = as->array[--as->count]; - - /* - * Invoke the third-party function only when the state - * of the parent structure is consistent. - */ - if(ptr) as->free(ptr); - } -} - -/* - * Free the contents of the set, do not free the set itself. - */ -void -asn_set_empty(void *asn_set_of_x) { - asn_anonymous_set_ *as = _A_SET_FROM_VOID(asn_set_of_x); - - if(as) { - if(as->array) { - if(as->free) { - while(as->count--) - as->free(as->array[as->count]); - } - FREEMEM(as->array); - as->array = 0; - } - as->count = 0; - as->size = 0; - } - -} - diff --git a/e2sim/previous/ASN1c/asn_SET_OF.h b/e2sim/previous/ASN1c/asn_SET_OF.h deleted file mode 100644 index f55909a..0000000 --- a/e2sim/previous/ASN1c/asn_SET_OF.h +++ /dev/null @@ -1,90 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/*- - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef ASN_SET_OF_H -#define ASN_SET_OF_H - -#ifdef __cplusplus -#define A_SET_OF(type) \ - struct { \ - type **array; \ - int count; /* Meaningful size */ \ - int size; /* Allocated size */ \ - void (*free)(decltype(*array)); \ - } -#else /* C */ -#define A_SET_OF(type) \ - struct { \ - type **array; \ - int count; /* Meaningful size */ \ - int size; /* Allocated size */ \ - void (*free)(type *); \ - } -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -#define ASN_SET_ADD(headptr, ptr) \ - asn_set_add((headptr), (ptr)) - -/******************************************* - * Implementation of the SET OF structure. - */ - -/* - * Add another structure into the set by its pointer. - * RETURN VALUES: - * 0 for success and -1/errno for failure. - */ -int asn_set_add(void *asn_set_of_x, void *ptr); - -/* - * Delete the element from the set by its number (base 0). - * This is a constant-time operation. The order of elements before the - * deleted ones is guaranteed, the order of elements after the deleted - * one is NOT guaranteed. - * If _do_free is given AND the (*free) is initialized, the element - * will be freed using the custom (*free) function as well. - */ -void asn_set_del(void *asn_set_of_x, int number, int _do_free); - -/* - * Empty the contents of the set. Will free the elements, if (*free) is given. - * Will NOT free the set itself. - */ -void asn_set_empty(void *asn_set_of_x); - -/* - * Cope with different conversions requirements to/from void in C and C++. - * This is mostly useful for support library. - */ -typedef A_SET_OF(void) asn_anonymous_set_; -#define _A_SET_FROM_VOID(ptr) ((asn_anonymous_set_ *)(ptr)) -#define _A_CSET_FROM_VOID(ptr) ((const asn_anonymous_set_ *)(ptr)) - -#ifdef __cplusplus -} -#endif - -#endif /* ASN_SET_OF_H */ diff --git a/e2sim/previous/ASN1c/asn_application.c b/e2sim/previous/ASN1c/asn_application.c deleted file mode 100644 index a797261..0000000 --- a/e2sim/previous/ASN1c/asn_application.c +++ /dev/null @@ -1,499 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Copyright (c) 2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include - -static asn_enc_rval_t asn_encode_internal(const asn_codec_ctx_t *opt_codec_ctx, - enum asn_transfer_syntax syntax, - const asn_TYPE_descriptor_t *td, - const void *sptr, - asn_app_consume_bytes_f *callback, - void *callback_key); - - -struct callback_count_bytes_key { - asn_app_consume_bytes_f *callback; - void *callback_key; - size_t computed_size; -}; - -/* - * Encoder which just counts bytes that come through it. - */ -static int -callback_count_bytes_cb(const void *data, size_t size, void *keyp) { - struct callback_count_bytes_key *key = keyp; - int ret; - - ret = key->callback(data, size, key->callback_key); - if(ret >= 0) { - key->computed_size += size; - } - - return ret; -} - -struct overrun_encoder_key { - void *buffer; - size_t buffer_size; - size_t computed_size; -}; - -struct dynamic_encoder_key { - void *buffer; - size_t buffer_size; - size_t computed_size; -}; - -struct callback_failure_catch_key { - asn_app_consume_bytes_f *callback; - void *callback_key; - int callback_failed; -}; - -/* - * Encoder which doesn't stop counting bytes - * even if it reaches the end of the buffer. - */ -static int -overrun_encoder_cb(const void *data, size_t size, void *keyp) { - struct overrun_encoder_key *key = keyp; - - if(key->computed_size + size > key->buffer_size) { - /* - * Avoid accident on the next call: - * stop adding bytes to the buffer. - */ - key->buffer_size = 0; - } else { - memcpy((char *)key->buffer + key->computed_size, data, size); - } - key->computed_size += size; - - return 0; -} - -/* - * Encoder which dynamically allocates output, and continues - * to count even if allocation failed. - */ -static int -dynamic_encoder_cb(const void *data, size_t size, void *keyp) { - struct dynamic_encoder_key *key = keyp; - - if(key->buffer) { - if(key->computed_size + size >= key->buffer_size) { - void *p; - size_t new_size = key->buffer_size; - - do { - new_size *= 2; - } while(new_size <= key->computed_size + size); - - p = REALLOC(key->buffer, new_size); - if(p) { - key->buffer = p; - key->buffer_size = new_size; - } else { - FREEMEM(key->buffer); - key->buffer = 0; - key->buffer_size = 0; - key->computed_size += size; - return 0; - } - } - memcpy((char *)key->buffer + key->computed_size, data, size); - } - - key->computed_size += size; - - return 0; -} - -/* - * Encoder which help convert the application level encoder failure into EIO. - */ -static int -callback_failure_catch_cb(const void *data, size_t size, void *keyp) { - struct callback_failure_catch_key *key = keyp; - int ret; - - ret = key->callback(data, size, key->callback_key); - if(ret < 0) { - key->callback_failed = 1; - } - - return ret; -} - -asn_enc_rval_t -asn_encode(const asn_codec_ctx_t *opt_codec_ctx, - enum asn_transfer_syntax syntax, const asn_TYPE_descriptor_t *td, - const void *sptr, asn_app_consume_bytes_f *callback, void *callback_key) { - struct callback_failure_catch_key cb_key; - asn_enc_rval_t er = {0,0,0}; - - if(!callback) { - errno = EINVAL; - ASN__ENCODE_FAILED; - } - - cb_key.callback = callback; - cb_key.callback_key = callback_key; - cb_key.callback_failed = 0; - - er = asn_encode_internal(opt_codec_ctx, syntax, td, sptr, - callback_failure_catch_cb, &cb_key); - if(cb_key.callback_failed) { - assert(er.encoded == -1); - assert(errno == EBADF); - errno = EIO; - } - - return er; -} - -asn_enc_rval_t -asn_encode_to_buffer(const asn_codec_ctx_t *opt_codec_ctx, - enum asn_transfer_syntax syntax, - const asn_TYPE_descriptor_t *td, const void *sptr, - void *buffer, size_t buffer_size) { - struct overrun_encoder_key buf_key; - asn_enc_rval_t er = {0,0,0}; - - if(buffer_size > 0 && !buffer) { - errno = EINVAL; - ASN__ENCODE_FAILED; - } - - buf_key.buffer = buffer; - buf_key.buffer_size = buffer_size; - buf_key.computed_size = 0; - - er = asn_encode_internal(opt_codec_ctx, syntax, td, sptr, - overrun_encoder_cb, &buf_key); - - if(er.encoded >= 0 && (size_t)er.encoded != buf_key.computed_size) { - ASN_DEBUG("asn_encode() returned %" ASN_PRI_SSIZE - " yet produced %" ASN_PRI_SIZE " bytes", - er.encoded, buf_key.computed_size); - assert(er.encoded < 0 || (size_t)er.encoded == buf_key.computed_size); - } - - return er; -} - -asn_encode_to_new_buffer_result_t -asn_encode_to_new_buffer(const asn_codec_ctx_t *opt_codec_ctx, - enum asn_transfer_syntax syntax, - const asn_TYPE_descriptor_t *td, const void *sptr) { - struct dynamic_encoder_key buf_key; - asn_encode_to_new_buffer_result_t res; - - buf_key.buffer_size = 16; - buf_key.buffer = MALLOC(buf_key.buffer_size); - buf_key.computed_size = 0; - - res.result = asn_encode_internal(opt_codec_ctx, syntax, td, sptr, - dynamic_encoder_cb, &buf_key); - - if(res.result.encoded >= 0 - && (size_t)res.result.encoded != buf_key.computed_size) { - ASN_DEBUG("asn_encode() returned %" ASN_PRI_SSIZE - " yet produced %" ASN_PRI_SIZE " bytes", - res.result.encoded, buf_key.computed_size); - assert(res.result.encoded < 0 - || (size_t)res.result.encoded == buf_key.computed_size); - } - - res.buffer = buf_key.buffer; - - /* 0-terminate just in case. */ - if(res.buffer) { - assert(buf_key.computed_size < buf_key.buffer_size); - ((char *)res.buffer)[buf_key.computed_size] = '\0'; - } - - return res; -} - -static asn_enc_rval_t -asn_encode_internal(const asn_codec_ctx_t *opt_codec_ctx, - enum asn_transfer_syntax syntax, - const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_consume_bytes_f *callback, void *callback_key) { - asn_enc_rval_t er = {0,0,0}; - enum xer_encoder_flags_e xer_flags = XER_F_CANONICAL; - - (void)opt_codec_ctx; /* Parameters are not checked on encode yet. */ - - if(!td || !sptr) { - errno = EINVAL; - ASN__ENCODE_FAILED; - } - - switch(syntax) { - case ATS_NONSTANDARD_PLAINTEXT: - if(td->op->print_struct) { - struct callback_count_bytes_key cb_key; - cb_key.callback = callback; - cb_key.callback_key = callback_key; - cb_key.computed_size = 0; - if(td->op->print_struct(td, sptr, 1, callback_count_bytes_cb, - &cb_key) - < 0 - || callback_count_bytes_cb("\n", 1, &cb_key) < 0) { - errno = EBADF; /* Structure has incorrect form. */ - er.encoded = -1; - er.failed_type = td; - er.structure_ptr = sptr; - } else { - er.encoded = cb_key.computed_size; - er.failed_type = 0; - er.structure_ptr = 0; - } - } else { - errno = ENOENT; /* Transfer syntax is not defined for this type. */ - ASN__ENCODE_FAILED; - } - break; - - case ATS_RANDOM: - errno = ENOENT; /* Randomization doesn't make sense on output. */ - ASN__ENCODE_FAILED; - - case ATS_BER: - /* BER is a superset of DER. */ - /* Fall through. */ - case ATS_DER: - if(td->op->der_encoder) { - er = der_encode(td, sptr, callback, callback_key); - if(er.encoded == -1) { - if(er.failed_type && er.failed_type->op->der_encoder) { - errno = EBADF; /* Structure has incorrect form. */ - } else { - errno = ENOENT; /* DER is not defined for this type. */ - } - } - } else { - errno = ENOENT; /* Transfer syntax is not defined for this type. */ - ASN__ENCODE_FAILED; - } - break; - case ATS_CER: - errno = ENOENT; /* Transfer syntax is not defined for any type. */ - ASN__ENCODE_FAILED; - -#ifdef ASN_DISABLE_OER_SUPPORT - case ATS_BASIC_OER: - case ATS_CANONICAL_OER: - errno = ENOENT; /* PER is not defined. */ - ASN__ENCODE_FAILED; - break; -#else /* ASN_DISABLE_OER_SUPPORT */ - case ATS_BASIC_OER: - /* CANONICAL-OER is a superset of BASIC-OER. */ - /* Fall through. */ - case ATS_CANONICAL_OER: - if(td->op->oer_encoder) { - er = oer_encode(td, sptr, callback, callback_key); - if(er.encoded == -1) { - if(er.failed_type && er.failed_type->op->oer_encoder) { - errno = EBADF; /* Structure has incorrect form. */ - } else { - errno = ENOENT; /* OER is not defined for this type. */ - } - } - } else { - errno = ENOENT; /* Transfer syntax is not defined for this type. */ - ASN__ENCODE_FAILED; - } - break; -#endif /* ASN_DISABLE_OER_SUPPORT */ - -#ifdef ASN_DISABLE_PER_SUPPORT - case ATS_UNALIGNED_BASIC_PER: - case ATS_UNALIGNED_CANONICAL_PER: - case ATS_ALIGNED_BASIC_PER: - case ATS_ALIGNED_CANONICAL_PER: - errno = ENOENT; /* PER is not defined. */ - ASN__ENCODE_FAILED; - break; -#else /* ASN_DISABLE_PER_SUPPORT */ - case ATS_UNALIGNED_BASIC_PER: - /* CANONICAL-UPER is a superset of BASIC-UPER. */ - /* Fall through. */ - case ATS_UNALIGNED_CANONICAL_PER: - if(td->op->uper_encoder) { - er = uper_encode(td, 0, sptr, callback, callback_key); - if(er.encoded == -1) { - if(er.failed_type && er.failed_type->op->uper_encoder) { - errno = EBADF; /* Structure has incorrect form. */ - } else { - errno = ENOENT; /* UPER is not defined for this type. */ - } - } else { - ASN_DEBUG("Complete encoded in %ld bits", (long)er.encoded); - if(er.encoded == 0) { - /* Enforce "Complete Encoding" of X.691 #11.1 */ - if(callback("\0", 1, callback_key) < 0) { - errno = EBADF; - ASN__ENCODE_FAILED; - } - er.encoded = 8; /* Exactly 8 zero bits is added. */ - } - /* Convert bits into bytes */ - er.encoded = (er.encoded + 7) >> 3; - } - } else { - errno = ENOENT; /* Transfer syntax is not defined for this type. */ - ASN__ENCODE_FAILED; - } - break; - case ATS_ALIGNED_BASIC_PER: - /* CANONICAL-APER is a superset of BASIC-APER. */ - /* Fall through. */ - case ATS_ALIGNED_CANONICAL_PER: - if(td->op->aper_encoder) { - er = aper_encode(td, 0, sptr, callback, callback_key); - if(er.encoded == -1) { - if(er.failed_type && er.failed_type->op->aper_encoder) { - errno = EBADF; /* Structure has incorrect form. */ - } else { - errno = ENOENT; /* APER is not defined for this type. */ - } - } else { - ASN_DEBUG("Complete encoded in %ld bits", (long)er.encoded); - if(er.encoded == 0) { - /* Enforce "Complete Encoding" of X.691 #11.1 */ - if(callback("\0", 1, callback_key) < 0) { - errno = EBADF; - ASN__ENCODE_FAILED; - } - er.encoded = 8; /* Exactly 8 zero bits is added. */ - } - /* Convert bits into bytes */ - er.encoded = (er.encoded + 7) >> 3; - } - } else { - errno = ENOENT; /* Transfer syntax is not defined for this type. */ - ASN__ENCODE_FAILED; - } - break; -#endif /* ASN_DISABLE_PER_SUPPORT */ - - case ATS_BASIC_XER: - /* CANONICAL-XER is a superset of BASIC-XER. */ - xer_flags &= ~XER_F_CANONICAL; - xer_flags |= XER_F_BASIC; - /* Fall through. */ - case ATS_CANONICAL_XER: - if(td->op->xer_encoder) { - er = xer_encode(td, sptr, xer_flags, callback, callback_key); - if(er.encoded == -1) { - if(er.failed_type && er.failed_type->op->xer_encoder) { - errno = EBADF; /* Structure has incorrect form. */ - } else { - errno = ENOENT; /* XER is not defined for this type. */ - } - } - } else { - errno = ENOENT; /* Transfer syntax is not defined for this type. */ - ASN__ENCODE_FAILED; - } - break; - - default: - errno = ENOENT; - ASN__ENCODE_FAILED; - } - - return er; -} - -asn_dec_rval_t -asn_decode(const asn_codec_ctx_t *opt_codec_ctx, - enum asn_transfer_syntax syntax, const asn_TYPE_descriptor_t *td, - void **sptr, const void *buffer, size_t size) { - if(!td || !td->op || !sptr || (size && !buffer)) { - ASN__DECODE_FAILED; - } - - switch(syntax) { - case ATS_CER: - case ATS_NONSTANDARD_PLAINTEXT: - default: - errno = ENOENT; - ASN__DECODE_FAILED; - - case ATS_RANDOM: - if(!td->op->random_fill) { - ASN__DECODE_FAILED; - } else { - if(asn_random_fill(td, sptr, 16000) == 0) { - asn_dec_rval_t ret = {RC_OK, 0}; - return ret; - } else { - ASN__DECODE_FAILED; - } - } - break; - - case ATS_DER: - case ATS_BER: - return ber_decode(opt_codec_ctx, td, sptr, buffer, size); - - case ATS_BASIC_OER: - case ATS_CANONICAL_OER: -#ifdef ASN_DISABLE_OER_SUPPORT - errno = ENOENT; - ASN__DECODE_FAILED; -#else - return oer_decode(opt_codec_ctx, td, sptr, buffer, size); -#endif - - case ATS_UNALIGNED_BASIC_PER: - case ATS_UNALIGNED_CANONICAL_PER: -#ifdef ASN_DISABLE_PER_SUPPORT - errno = ENOENT; - ASN__DECODE_FAILED; -#else - return uper_decode_complete(opt_codec_ctx, td, sptr, buffer, size); -#endif - - case ATS_ALIGNED_BASIC_PER: - case ATS_ALIGNED_CANONICAL_PER: -#ifdef ASN_DISABLE_PER_SUPPORT - errno = ENOENT; - ASN__DECODE_FAILED; -#else - return aper_decode_complete(opt_codec_ctx, td, sptr, buffer, size); -#endif - - case ATS_BASIC_XER: - case ATS_CANONICAL_XER: - return xer_decode(opt_codec_ctx, td, sptr, buffer, size); - } -} - diff --git a/e2sim/previous/ASN1c/asn_application.h b/e2sim/previous/ASN1c/asn_application.h deleted file mode 100644 index 5369cf5..0000000 --- a/e2sim/previous/ASN1c/asn_application.h +++ /dev/null @@ -1,189 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/*- - * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -/* - * Application-level ASN.1 callbacks. - */ -#ifndef ASN_APPLICATION_H -#define ASN_APPLICATION_H - -#include "asn_system.h" /* for platform-dependent types */ -#include "asn_codecs.h" /* for ASN.1 codecs specifics */ - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * A selection of ASN.1 Transfer Syntaxes to use with generalized - * encoders and decoders declared further in this .h file. - */ -enum asn_transfer_syntax { - /* Avoid appearance of a default transfer syntax. */ - ATS_INVALID = 0, - /* Plaintext output (not conforming to any standard), for debugging. */ - ATS_NONSTANDARD_PLAINTEXT, - /* Returns a randomly generated structure. */ - ATS_RANDOM, - /* - * X.690: - * BER: Basic Encoding Rules. - * DER: Distinguished Encoding Rules. - * CER: Canonical Encoding Rules. - * DER and CER are more strict variants of BER. - */ - ATS_BER, - ATS_DER, - ATS_CER, /* Only decoding is supported */ - /* - * X.696: - * OER: Octet Encoding Rules. - * CANONICAL-OER is a more strict variant of BASIC-OER. - */ - ATS_BASIC_OER, - ATS_CANONICAL_OER, - /* - * X.691: - * PER: Packed Encoding Rules. - * CANONICAL-PER is a more strict variant of BASIC-PER. - * NOTE: Produces or consumes a complete encoding (X.691 (08/2015) #11.1). - */ - ATS_UNALIGNED_BASIC_PER, - ATS_UNALIGNED_CANONICAL_PER, - ATS_ALIGNED_BASIC_PER, - ATS_ALIGNED_CANONICAL_PER, - /* - * X.693: - * XER: XML Encoding Rules. - * CANONICAL-XER is a more strict variant of BASIC-XER. - */ - ATS_BASIC_XER, - ATS_CANONICAL_XER -}; - -/* - * A generic encoder for any supported transfer syntax. - * RETURN VALUES: - * The (.encoded) field of the return value is REDEFINED to mean the following: - * >=0: The computed size of the encoded data. Can exceed the (buffer_size). - * -1: Error encoding the structure. See the error code in (errno): - * EINVAL: Incorrect parameters to the function, such as NULLs. - * ENOENT: Encoding transfer syntax is not defined (for this type). - * EBADF: The structure has invalid form or content constraint failed. - * The (.failed_type) and (.structure_ptr) MIGHT be set to the appropriate - * values at the place of failure, if at all possible. - * WARNING: The (.encoded) field of the return value can exceed the buffer_size. - * This is similar to snprintf(3) contract which might return values - * greater than the buffer size. - */ -asn_enc_rval_t asn_encode_to_buffer( - const asn_codec_ctx_t *opt_codec_parameters, /* See asn_codecs.h */ - enum asn_transfer_syntax, - const struct asn_TYPE_descriptor_s *type_to_encode, - const void *structure_to_encode, void *buffer, size_t buffer_size); - -/* - * A variant of asn_encode_to_buffer() with automatically allocated buffer. - * RETURN VALUES: - * On success, returns a newly allocated (.buffer) containing the whole message. - * The message size is returned in (.result.encoded). - * On failure: - * (.buffer) is NULL, - * (.result.encoded) as in asn_encode_to_buffer(), - * The errno codes as in asn_encode_to_buffer(), plus the following: - * ENOMEM: Memory allocation failed due to system or internal limits. - * The user is responsible for freeing the (.buffer). - */ -typedef struct asn_encode_to_new_buffer_result_s { - void *buffer; /* NULL if failed to encode. */ - asn_enc_rval_t result; -} asn_encode_to_new_buffer_result_t; -asn_encode_to_new_buffer_result_t asn_encode_to_new_buffer( - const asn_codec_ctx_t *opt_codec_parameters, /* See asn_codecs.h */ - enum asn_transfer_syntax, - const struct asn_TYPE_descriptor_s *type_to_encode, - const void *structure_to_encode); - - -/* - * Generic type of an application-defined callback to return various - * types of data to the application. - * EXPECTED RETURN VALUES: - * -1: Failed to consume bytes. Abort the mission. - * Non-negative return values indicate success, and ignored. - */ -typedef int(asn_app_consume_bytes_f)(const void *buffer, size_t size, - void *application_specific_key); - - -/* - * A generic encoder for any supported transfer syntax. - * Returns the comprehensive encoding result descriptor (see asn_codecs.h). - * RETURN VALUES: - * The negative (.encoded) field of the return values is accompanied with the - * following error codes (errno): - * EINVAL: Incorrect parameters to the function, such as NULLs. - * ENOENT: Encoding transfer syntax is not defined (for this type). - * EBADF: The structure has invalid form or content constraint failed. - * EIO: The (callback) has returned negative value during encoding. - */ -asn_enc_rval_t asn_encode( - const asn_codec_ctx_t *opt_codec_parameters, /* See asn_codecs.h */ - enum asn_transfer_syntax, - const struct asn_TYPE_descriptor_s *type_to_encode, - const void *structure_to_encode, - asn_app_consume_bytes_f *callback, void *callback_key); - - -/* - * A generic decoder for any supported transfer syntax. - */ -asn_dec_rval_t asn_decode( - const asn_codec_ctx_t *opt_codec_parameters, enum asn_transfer_syntax, - const struct asn_TYPE_descriptor_s *type_to_decode, - void **structure_ptr, /* Pointer to a target structure's pointer */ - const void *buffer, /* Data to be decoded */ - size_t size /* Size of that buffer */ -); - - -/* - * A callback of this type is called whenever constraint validation fails - * on some ASN.1 type. See "constraints.h" for more details on constraint - * validation. - * This callback specifies a descriptor of the ASN.1 type which failed - * the constraint check, as well as human readable message on what - * particular constraint has failed. - */ -typedef void (asn_app_constraint_failed_f)(void *application_specific_key, - const struct asn_TYPE_descriptor_s *type_descriptor_which_failed, - const void *structure_which_failed_ptr, - const char *error_message_format, ...) CC_PRINTFLIKE(4, 5); - - -#ifdef __cplusplus -} -#endif - -#include "constr_TYPE.h" /* for asn_TYPE_descriptor_t */ - -#endif /* ASN_APPLICATION_H */ diff --git a/e2sim/previous/ASN1c/asn_bit_data.c b/e2sim/previous/ASN1c/asn_bit_data.c deleted file mode 100644 index c142f4a..0000000 --- a/e2sim/previous/ASN1c/asn_bit_data.c +++ /dev/null @@ -1,351 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Copyright (c) 2005-2017 Lev Walkin . - * All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include - -/* - * Create a contiguous non-refillable bit data structure. - * Can be freed by FREEMEM(). - */ -asn_bit_data_t * -asn_bit_data_new_contiguous(const void *data, size_t size_bits) { - size_t size_bytes = (size_bits + 7) / 8; - asn_bit_data_t *pd; - uint8_t *bytes; - - /* Get the extensions map */ - pd = CALLOC(1, sizeof(*pd) + size_bytes + 1); - if(!pd) { - return NULL; - } - bytes = (void *)(((char *)pd) + sizeof(*pd)); - memcpy(bytes, data, size_bytes); - bytes[size_bytes] = 0; - pd->buffer = bytes; - pd->nboff = 0; - pd->nbits = size_bits; - - return pd; -} - - -char * -asn_bit_data_string(asn_bit_data_t *pd) { - static char buf[2][32]; - static int n; - n = (n+1) % 2; - snprintf(buf[n], sizeof(buf[n]), - "{m=%" ASN_PRI_SIZE " span %" ASN_PRI_SIZE "[%" ASN_PRI_SIZE - "..%" ASN_PRI_SIZE "] (%" ASN_PRI_SIZE ")}", - pd->moved, ((uintptr_t)(pd->buffer) & 0xf), pd->nboff, pd->nbits, - pd->nbits - pd->nboff); - return buf[n]; -} - -void -asn_get_undo(asn_bit_data_t *pd, int nbits) { - if((ssize_t)pd->nboff < nbits) { - assert((ssize_t)pd->nboff < nbits); - } else { - pd->nboff -= nbits; - pd->moved -= nbits; - } -} - -/* - * Extract a small number of bits (<= 31) from the specified PER data pointer. - */ -int32_t -asn_get_few_bits(asn_bit_data_t *pd, int nbits) { - size_t off; /* Next after last bit offset */ - ssize_t nleft; /* Number of bits left in this stream */ - uint32_t accum; - const uint8_t *buf; - - if(nbits < 0) - return -1; - - nleft = pd->nbits - pd->nboff; - if(nbits > nleft) { - int32_t tailv, vhead; - if(!pd->refill || nbits > 31) return -1; - /* Accumulate unused bytes before refill */ - ASN_DEBUG("Obtain the rest %d bits (want %d)", - (int)nleft, (int)nbits); - tailv = asn_get_few_bits(pd, nleft); - if(tailv < 0) return -1; - /* Refill (replace pd contents with new data) */ - if(pd->refill(pd)) - return -1; - nbits -= nleft; - vhead = asn_get_few_bits(pd, nbits); - /* Combine the rest of previous pd with the head of new one */ - tailv = (tailv << nbits) | vhead; /* Could == -1 */ - return tailv; - } - - /* - * Normalize position indicator. - */ - if(pd->nboff >= 8) { - pd->buffer += (pd->nboff >> 3); - pd->nbits -= (pd->nboff & ~0x07); - pd->nboff &= 0x07; - } - pd->moved += nbits; - pd->nboff += nbits; - off = pd->nboff; - buf = pd->buffer; - - /* - * Extract specified number of bits. - */ - if(off <= 8) - accum = nbits ? (buf[0]) >> (8 - off) : 0; - else if(off <= 16) - accum = ((buf[0] << 8) + buf[1]) >> (16 - off); - else if(off <= 24) - accum = ((buf[0] << 16) + (buf[1] << 8) + buf[2]) >> (24 - off); - else if(off <= 31) - accum = (((uint32_t)buf[0] << 24) + (buf[1] << 16) - + (buf[2] << 8) + (buf[3])) >> (32 - off); - else if(nbits <= 31) { - asn_bit_data_t tpd = *pd; - /* Here are we with our 31-bits limit plus 1..7 bits offset. */ - asn_get_undo(&tpd, nbits); - /* The number of available bits in the stream allow - * for the following operations to take place without - * invoking the ->refill() function */ - accum = asn_get_few_bits(&tpd, nbits - 24) << 24; - accum |= asn_get_few_bits(&tpd, 24); - } else { - asn_get_undo(pd, nbits); - return -1; - } - - accum &= (((uint32_t)1 << nbits) - 1); - - ASN_DEBUG(" [PER got %2d<=%2d bits => span %d %+ld[%d..%d]:%02x (%d) => 0x%x]", - (int)nbits, (int)nleft, - (int)pd->moved, - (((long)pd->buffer) & 0xf), - (int)pd->nboff, (int)pd->nbits, - ((pd->buffer != NULL)?pd->buffer[0]:0), - (int)(pd->nbits - pd->nboff), - (int)accum); - - return accum; -} - -/* - * Extract a large number of bits from the specified PER data pointer. - */ -int -asn_get_many_bits(asn_bit_data_t *pd, uint8_t *dst, int alright, int nbits) { - int32_t value; - - if(alright && (nbits & 7)) { - /* Perform right alignment of a first few bits */ - value = asn_get_few_bits(pd, nbits & 0x07); - if(value < 0) return -1; - *dst++ = value; /* value is already right-aligned */ - nbits &= ~7; - } - - while(nbits) { - if(nbits >= 24) { - value = asn_get_few_bits(pd, 24); - if(value < 0) return -1; - *(dst++) = value >> 16; - *(dst++) = value >> 8; - *(dst++) = value; - nbits -= 24; - } else { - value = asn_get_few_bits(pd, nbits); - if(value < 0) return -1; - if(nbits & 7) { /* implies left alignment */ - value <<= 8 - (nbits & 7), - nbits += 8 - (nbits & 7); - if(nbits > 24) - *dst++ = value >> 24; - } - if(nbits > 16) - *dst++ = value >> 16; - if(nbits > 8) - *dst++ = value >> 8; - *dst++ = value; - break; - } - } - - return 0; -} - -/* - * Put a small number of bits (<= 31). - */ -int -asn_put_few_bits(asn_bit_outp_t *po, uint32_t bits, int obits) { - size_t off; /* Next after last bit offset */ - size_t omsk; /* Existing last byte meaningful bits mask */ - uint8_t *buf; - - if(obits <= 0 || obits >= 32) return obits ? -1 : 0; - - ASN_DEBUG("[PER put %d bits %x to %p+%d bits]", - obits, (int)bits, (void *)po->buffer, (int)po->nboff); - - /* - * Normalize position indicator. - */ - if(po->nboff >= 8) { - po->buffer += (po->nboff >> 3); - po->nbits -= (po->nboff & ~0x07); - po->nboff &= 0x07; - } - - /* - * Flush whole-bytes output, if necessary. - */ - if(po->nboff + obits > po->nbits) { - size_t complete_bytes; - if(!po->buffer) po->buffer = po->tmpspace; - complete_bytes = (po->buffer - po->tmpspace); - ASN_DEBUG("[PER output %ld complete + %ld]", - (long)complete_bytes, (long)po->flushed_bytes); - if(po->output(po->tmpspace, complete_bytes, po->op_key) < 0) - return -1; - if(po->nboff) - po->tmpspace[0] = po->buffer[0]; - po->buffer = po->tmpspace; - po->nbits = 8 * sizeof(po->tmpspace); - po->flushed_bytes += complete_bytes; - } - - /* - * Now, due to sizeof(tmpspace), we are guaranteed large enough space. - */ - buf = po->buffer; - omsk = ~((1 << (8 - po->nboff)) - 1); - off = (po->nboff + obits); - - /* Clear data of debris before meaningful bits */ - bits &= (((uint32_t)1 << obits) - 1); - - ASN_DEBUG("[PER out %d %u/%x (t=%d,o=%d) %x&%x=%x]", obits, - (int)bits, (int)bits, - (int)po->nboff, (int)off, - buf[0], (int)(omsk&0xff), - (int)(buf[0] & omsk)); - - if(off <= 8) /* Completely within 1 byte */ - po->nboff = off, - bits <<= (8 - off), - buf[0] = (buf[0] & omsk) | bits; - else if(off <= 16) - po->nboff = off, - bits <<= (16 - off), - buf[0] = (buf[0] & omsk) | (bits >> 8), - buf[1] = bits; - else if(off <= 24) - po->nboff = off, - bits <<= (24 - off), - buf[0] = (buf[0] & omsk) | (bits >> 16), - buf[1] = bits >> 8, - buf[2] = bits; - else if(off <= 31) - po->nboff = off, - bits <<= (32 - off), - buf[0] = (buf[0] & omsk) | (bits >> 24), - buf[1] = bits >> 16, - buf[2] = bits >> 8, - buf[3] = bits; - else { - if(asn_put_few_bits(po, bits >> (obits - 24), 24)) return -1; - if(asn_put_few_bits(po, bits, obits - 24)) return -1; - } - - ASN_DEBUG("[PER out %u/%x => %02x buf+%ld]", - (int)bits, (int)bits, buf[0], - (long)(po->buffer - po->tmpspace)); - - return 0; -} - - -/* - * Output a large number of bits. - */ -int -asn_put_many_bits(asn_bit_outp_t *po, const uint8_t *src, int nbits) { - - while(nbits) { - uint32_t value; - - if(nbits >= 24) { - value = (src[0] << 16) | (src[1] << 8) | src[2]; - src += 3; - nbits -= 24; - if(asn_put_few_bits(po, value, 24)) - return -1; - } else { - value = src[0]; - if(nbits > 8) - value = (value << 8) | src[1]; - if(nbits > 16) - value = (value << 8) | src[2]; - if(nbits & 0x07) - value >>= (8 - (nbits & 0x07)); - if(asn_put_few_bits(po, value, nbits)) - return -1; - break; - } - } - - return 0; -} - - -int -asn_put_aligned_flush(asn_bit_outp_t *po) { - uint32_t unused_bits = (0x7 & (8 - (po->nboff & 0x07))); - size_t complete_bytes = - (po->buffer ? po->buffer - po->tmpspace : 0) + ((po->nboff + 7) >> 3); - - if(unused_bits) { - po->buffer[po->nboff >> 3] &= ~0u << unused_bits; - } - - if(po->output(po->tmpspace, complete_bytes, po->op_key) < 0) { - return -1; - } else { - po->buffer = po->tmpspace; - po->nboff = 0; - po->nbits = 8 * sizeof(po->tmpspace); - po->flushed_bytes += complete_bytes; - return 0; - } -} - diff --git a/e2sim/previous/ASN1c/asn_bit_data.h b/e2sim/previous/ASN1c/asn_bit_data.h deleted file mode 100644 index 20f6911..0000000 --- a/e2sim/previous/ASN1c/asn_bit_data.h +++ /dev/null @@ -1,101 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Copyright (c) 2005-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef ASN_BIT_DATA -#define ASN_BIT_DATA - -#include /* Platform-specific types */ - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * This structure describes a position inside an incoming PER bit stream. - */ -typedef struct asn_bit_data_s { - const uint8_t *buffer; /* Pointer to the octet stream */ - size_t nboff; /* Bit offset to the meaningful bit */ - size_t nbits; /* Number of bits in the stream */ - size_t moved; /* Number of bits moved through this bit stream */ - int (*refill)(struct asn_bit_data_s *); - void *refill_key; -} asn_bit_data_t; - -/* - * Create a contiguous non-refillable bit data structure. - * Can be freed by FREEMEM(). - */ -asn_bit_data_t *asn_bit_data_new_contiguous(const void *data, size_t size_bits); - -/* - * Extract a small number of bits (<= 31) from the specified PER data pointer. - * This function returns -1 if the specified number of bits could not be - * extracted due to EOD or other conditions. - */ -int32_t asn_get_few_bits(asn_bit_data_t *, int get_nbits); - -/* Undo the immediately preceeding "get_few_bits" operation */ -void asn_get_undo(asn_bit_data_t *, int get_nbits); - -/* - * Extract a large number of bits from the specified PER data pointer. - * This function returns -1 if the specified number of bits could not be - * extracted due to EOD or other conditions. - */ -int asn_get_many_bits(asn_bit_data_t *, uint8_t *dst, int right_align, - int get_nbits); - -/* Non-thread-safe debugging function, don't use it */ -char *asn_bit_data_string(asn_bit_data_t *); - -/* - * This structure supports forming bit output. - */ -typedef struct asn_bit_outp_s { - uint8_t *buffer; /* Pointer into the (tmpspace) */ - size_t nboff; /* Bit offset to the meaningful bit */ - size_t nbits; /* Number of bits left in (tmpspace) */ - uint8_t tmpspace[32]; /* Preliminary storage to hold data */ - int (*output)(const void *data, size_t size, void *op_key); - void *op_key; /* Key for (output) data callback */ - size_t flushed_bytes; /* Bytes already flushed through (output) */ -} asn_bit_outp_t; - -/* Output a small number of bits (<= 31) */ -int asn_put_few_bits(asn_bit_outp_t *, uint32_t bits, int obits); - -/* Output a large number of bits */ -int asn_put_many_bits(asn_bit_outp_t *, const uint8_t *src, int put_nbits); - -/* - * Flush whole bytes (0 or more) through (outper) member. - * The least significant bits which are not used are guaranteed to be set to 0. - * Returns -1 if callback returns -1. Otherwise, 0. - */ -int asn_put_aligned_flush(asn_bit_outp_t *); - -#ifdef __cplusplus -} -#endif - -#endif /* ASN_BIT_DATA */ diff --git a/e2sim/previous/ASN1c/asn_codecs.h b/e2sim/previous/ASN1c/asn_codecs.h deleted file mode 100644 index 21a04b1..0000000 --- a/e2sim/previous/ASN1c/asn_codecs.h +++ /dev/null @@ -1,126 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef ASN_CODECS_H -#define ASN_CODECS_H - -#ifdef __cplusplus -extern "C" { -#endif - -struct asn_TYPE_descriptor_s; /* Forward declaration */ - -/* - * This structure defines a set of parameters that may be passed - * to every ASN.1 encoder or decoder function. - * WARNING: if max_stack_size member is set, and you are calling the - * function pointers of the asn_TYPE_descriptor_t directly, - * this structure must be ALLOCATED ON THE STACK! - * If you can't always satisfy this requirement, use ber_decode(), - * xer_decode() and uper_decode() functions instead. - */ -typedef struct asn_codec_ctx_s { - /* - * Limit the decoder routines to use no (much) more stack than a given - * number of bytes. Most of decoders are stack-based, and this - * would protect against stack overflows if the number of nested - * encodings is high. - * The OCTET STRING, BIT STRING and ANY BER decoders are heap-based, - * and are safe from this kind of overflow. - * A value from getrlimit(RLIMIT_STACK) may be used to initialize - * this variable. Be careful in multithreaded environments, as the - * stack size is rather limited. - */ - size_t max_stack_size; /* 0 disables stack bounds checking */ -} asn_codec_ctx_t; - -/* - * Type of the return value of the encoding functions (der_encode, xer_encode). - */ -typedef struct asn_enc_rval_s { - /* - * Number of bytes encoded. - * -1 indicates failure to encode the structure. - * In this case, the members below this one are meaningful. - */ - ssize_t encoded; - - /* - * Members meaningful when (encoded == -1), for post mortem analysis. - */ - - /* Type which cannot be encoded */ - const struct asn_TYPE_descriptor_s *failed_type; - - /* Pointer to the structure of that type */ - const void *structure_ptr; -} asn_enc_rval_t; -#define ASN__ENCODE_FAILED do { \ - asn_enc_rval_t tmp_error; \ - tmp_error.encoded = -1; \ - tmp_error.failed_type = td; \ - tmp_error.structure_ptr = sptr; \ - ASN_DEBUG("Failed to encode element %s", td ? td->name : ""); \ - return tmp_error; \ -} while(0) -#define ASN__ENCODED_OK(rval) do { \ - rval.structure_ptr = 0; \ - rval.failed_type = 0; \ - return rval; \ -} while(0) - -/* - * Type of the return value of the decoding functions (ber_decode, xer_decode) - * - * Please note that the number of consumed bytes is ALWAYS meaningful, - * even if code==RC_FAIL. This is to indicate the number of successfully - * decoded bytes, hence providing a possibility to fail with more diagnostics - * (i.e., print the offending remainder of the buffer). - */ -enum asn_dec_rval_code_e { - RC_OK, /* Decoded successfully */ - RC_WMORE, /* More data expected, call again */ - RC_FAIL /* Failure to decode data */ -}; -typedef struct asn_dec_rval_s { - enum asn_dec_rval_code_e code; /* Result code */ - size_t consumed; /* Number of bytes consumed */ -} asn_dec_rval_t; -#define ASN__DECODE_FAILED do { \ - asn_dec_rval_t tmp_error; \ - tmp_error.code = RC_FAIL; \ - tmp_error.consumed = 0; \ - ASN_DEBUG("Failed to decode element %s", td ? td->name : ""); \ - return tmp_error; \ -} while(0) -#define ASN__DECODE_STARVED do { \ - asn_dec_rval_t tmp_error; \ - tmp_error.code = RC_WMORE; \ - tmp_error.consumed = 0; \ - return tmp_error; \ -} while(0) - -#ifdef __cplusplus -} -#endif - -#endif /* ASN_CODECS_H */ diff --git a/e2sim/previous/ASN1c/asn_codecs_prim.c b/e2sim/previous/ASN1c/asn_codecs_prim.c deleted file mode 100644 index 81794fa..0000000 --- a/e2sim/previous/ASN1c/asn_codecs_prim.c +++ /dev/null @@ -1,335 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/*- - * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include - -/* - * Decode an always-primitive type. - */ -asn_dec_rval_t -ber_decode_primitive(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **sptr, - const void *buf_ptr, size_t size, int tag_mode) { - ASN__PRIMITIVE_TYPE_t *st = (ASN__PRIMITIVE_TYPE_t *)*sptr; - asn_dec_rval_t rval; - ber_tlv_len_t length = 0; /* =0 to avoid [incorrect] warning. */ - - /* - * If the structure is not there, allocate it. - */ - if(st == NULL) { - st = (ASN__PRIMITIVE_TYPE_t *)CALLOC(1, sizeof(*st)); - if(st == NULL) ASN__DECODE_FAILED; - *sptr = (void *)st; - } - - ASN_DEBUG("Decoding %s as plain primitive (tm=%d)", - td->name, tag_mode); - - /* - * Check tags and extract value length. - */ - rval = ber_check_tags(opt_codec_ctx, td, 0, buf_ptr, size, - tag_mode, 0, &length, 0); - if(rval.code != RC_OK) - return rval; - - ASN_DEBUG("%s length is %d bytes", td->name, (int)length); - - /* - * Make sure we have this length. - */ - buf_ptr = ((const char *)buf_ptr) + rval.consumed; - size -= rval.consumed; - if(length > (ber_tlv_len_t)size) { - rval.code = RC_WMORE; - rval.consumed = 0; - return rval; - } - - st->size = (int)length; - /* The following better be optimized away. */ - if(sizeof(st->size) != sizeof(length) - && (ber_tlv_len_t)st->size != length) { - st->size = 0; - ASN__DECODE_FAILED; - } - - st->buf = (uint8_t *)MALLOC(length + 1); - if(!st->buf) { - st->size = 0; - ASN__DECODE_FAILED; - } - - memcpy(st->buf, buf_ptr, length); - st->buf[length] = '\0'; /* Just in case */ - - rval.code = RC_OK; - rval.consumed += length; - - ASN_DEBUG("Took %ld/%ld bytes to encode %s", - (long)rval.consumed, - (long)length, td->name); - - return rval; -} - -/* - * Encode an always-primitive type using DER. - */ -asn_enc_rval_t -der_encode_primitive(const asn_TYPE_descriptor_t *td, const void *sptr, - int tag_mode, ber_tlv_tag_t tag, - asn_app_consume_bytes_f *cb, void *app_key) { - asn_enc_rval_t erval = {0,0,0}; - const ASN__PRIMITIVE_TYPE_t *st = (const ASN__PRIMITIVE_TYPE_t *)sptr; - - ASN_DEBUG("%s %s as a primitive type (tm=%d)", - cb?"Encoding":"Estimating", td->name, tag_mode); - - erval.encoded = der_write_tags(td, st->size, tag_mode, 0, tag, - cb, app_key); - ASN_DEBUG("%s wrote tags %d", td->name, (int)erval.encoded); - if(erval.encoded == -1) { - erval.failed_type = td; - erval.structure_ptr = sptr; - return erval; - } - - if(cb && st->buf) { - if(cb(st->buf, st->size, app_key) < 0) { - erval.encoded = -1; - erval.failed_type = td; - erval.structure_ptr = sptr; - return erval; - } - } else { - assert(st->buf || st->size == 0); - } - - erval.encoded += st->size; - ASN__ENCODED_OK(erval); -} - -void -ASN__PRIMITIVE_TYPE_free(const asn_TYPE_descriptor_t *td, void *sptr, - enum asn_struct_free_method method) { - ASN__PRIMITIVE_TYPE_t *st = (ASN__PRIMITIVE_TYPE_t *)sptr; - - if(!td || !sptr) - return; - - ASN_DEBUG("Freeing %s as a primitive type", td->name); - - if(st->buf) - FREEMEM(st->buf); - - switch(method) { - case ASFM_FREE_EVERYTHING: - FREEMEM(sptr); - break; - case ASFM_FREE_UNDERLYING: - break; - case ASFM_FREE_UNDERLYING_AND_RESET: - memset(sptr, 0, sizeof(ASN__PRIMITIVE_TYPE_t)); - break; - } -} - - -/* - * Local internal type passed around as an argument. - */ -struct xdp_arg_s { - const asn_TYPE_descriptor_t *type_descriptor; - void *struct_key; - xer_primitive_body_decoder_f *prim_body_decoder; - int decoded_something; - int want_more; -}; - -/* - * Since some kinds of primitive values can be encoded using value-specific - * tags (, , etc), the primitive decoder must - * be supplied with such tags to parse them as needed. - */ -static int -xer_decode__unexpected_tag(void *key, const void *chunk_buf, size_t chunk_size) { - struct xdp_arg_s *arg = (struct xdp_arg_s *)key; - enum xer_pbd_rval bret; - - /* - * The chunk_buf is guaranteed to start at '<'. - */ - assert(chunk_size && ((const char *)chunk_buf)[0] == 0x3c); - - /* - * Decoding was performed once already. Prohibit doing it again. - */ - if(arg->decoded_something) - return -1; - - bret = arg->prim_body_decoder(arg->type_descriptor, - arg->struct_key, chunk_buf, chunk_size); - switch(bret) { - case XPBD_SYSTEM_FAILURE: - case XPBD_DECODER_LIMIT: - case XPBD_BROKEN_ENCODING: - break; - case XPBD_BODY_CONSUMED: - /* Tag decoded successfully */ - arg->decoded_something = 1; - /* Fall through */ - case XPBD_NOT_BODY_IGNORE: /* Safe to proceed further */ - return 0; - } - - return -1; -} - -static ssize_t -xer_decode__primitive_body(void *key, const void *chunk_buf, size_t chunk_size, int have_more) { - struct xdp_arg_s *arg = (struct xdp_arg_s *)key; - enum xer_pbd_rval bret; - size_t lead_wsp_size; - - if(arg->decoded_something) { - if(xer_whitespace_span(chunk_buf, chunk_size) == chunk_size) { - /* - * Example: - * "123 " - * ^- chunk_buf position. - */ - return chunk_size; - } - /* - * Decoding was done once already. Prohibit doing it again. - */ - return -1; - } - - if(!have_more) { - /* - * If we've received something like "1", we can't really - * tell whether it is really `1` or `123`, until we know - * that there is no more data coming. - * The have_more argument will be set to 1 once something - * like this is available to the caller of this callback: - * "1want_more = 1; - return -1; - } - - lead_wsp_size = xer_whitespace_span(chunk_buf, chunk_size); - chunk_buf = (const char *)chunk_buf + lead_wsp_size; - chunk_size -= lead_wsp_size; - - bret = arg->prim_body_decoder(arg->type_descriptor, - arg->struct_key, chunk_buf, chunk_size); - switch(bret) { - case XPBD_SYSTEM_FAILURE: - case XPBD_DECODER_LIMIT: - case XPBD_BROKEN_ENCODING: - break; - case XPBD_BODY_CONSUMED: - /* Tag decoded successfully */ - arg->decoded_something = 1; - /* Fall through */ - case XPBD_NOT_BODY_IGNORE: /* Safe to proceed further */ - return lead_wsp_size + chunk_size; - } - - return -1; -} - - -asn_dec_rval_t -xer_decode_primitive(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **sptr, - size_t struct_size, const char *opt_mname, - const void *buf_ptr, size_t size, - xer_primitive_body_decoder_f *prim_body_decoder) { - const char *xml_tag = opt_mname ? opt_mname : td->xml_tag; - asn_struct_ctx_t s_ctx; - struct xdp_arg_s s_arg; - asn_dec_rval_t rc; - - /* - * Create the structure if does not exist. - */ - if(!*sptr) { - *sptr = CALLOC(1, struct_size); - if(!*sptr) ASN__DECODE_FAILED; - } - - memset(&s_ctx, 0, sizeof(s_ctx)); - s_arg.type_descriptor = td; - s_arg.struct_key = *sptr; - s_arg.prim_body_decoder = prim_body_decoder; - s_arg.decoded_something = 0; - s_arg.want_more = 0; - - rc = xer_decode_general(opt_codec_ctx, &s_ctx, &s_arg, - xml_tag, buf_ptr, size, - xer_decode__unexpected_tag, xer_decode__primitive_body); - switch(rc.code) { - case RC_OK: - if(!s_arg.decoded_something) { - char ch; - ASN_DEBUG("Primitive body is not recognized, " - "supplying empty one"); - /* - * Decoding opportunity has come and gone. - * Where's the result? - * Try to feed with empty body, see if it eats it. - */ - if(prim_body_decoder(s_arg.type_descriptor, - s_arg.struct_key, &ch, 0) - != XPBD_BODY_CONSUMED) { - /* - * This decoder does not like empty stuff. - */ - ASN__DECODE_FAILED; - } - } - break; - case RC_WMORE: - /* - * Redo the whole thing later. - * We don't have a context to save intermediate parsing state. - */ - rc.consumed = 0; - break; - case RC_FAIL: - rc.consumed = 0; - if(s_arg.want_more) - rc.code = RC_WMORE; - else - ASN__DECODE_FAILED; - break; - } - return rc; -} - diff --git a/e2sim/previous/ASN1c/asn_codecs_prim.h b/e2sim/previous/ASN1c/asn_codecs_prim.h deleted file mode 100644 index d812ede..0000000 --- a/e2sim/previous/ASN1c/asn_codecs_prim.h +++ /dev/null @@ -1,69 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/*- - * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef ASN_CODECS_PRIM_H -#define ASN_CODECS_PRIM_H - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct ASN__PRIMITIVE_TYPE_s { - uint8_t *buf; /* Buffer with consecutive primitive encoding bytes */ - size_t size; /* Size of the buffer */ -} ASN__PRIMITIVE_TYPE_t; /* Do not use this type directly! */ - -asn_struct_free_f ASN__PRIMITIVE_TYPE_free; -ber_type_decoder_f ber_decode_primitive; -der_type_encoder_f der_encode_primitive; - -/* - * A callback specification for the xer_decode_primitive() function below. - */ -enum xer_pbd_rval { - XPBD_SYSTEM_FAILURE, /* System failure (memory shortage, etc) */ - XPBD_DECODER_LIMIT, /* Hit some decoder limitation or deficiency */ - XPBD_BROKEN_ENCODING, /* Encoding of a primitive body is broken */ - XPBD_NOT_BODY_IGNORE, /* Not a body format, but safe to ignore */ - XPBD_BODY_CONSUMED /* Body is recognized and consumed */ -}; -typedef enum xer_pbd_rval(xer_primitive_body_decoder_f)( - const asn_TYPE_descriptor_t *td, void *struct_ptr, const void *chunk_buf, - size_t chunk_size); - -/* - * Specific function to decode simple primitive types. - * Also see xer_decode_general() in xer_decoder.h - */ -asn_dec_rval_t xer_decode_primitive( - const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *type_descriptor, void **struct_ptr, - size_t struct_size, const char *opt_mname, const void *buf_ptr, size_t size, - xer_primitive_body_decoder_f *prim_body_decoder); - -#ifdef __cplusplus -} -#endif - -#endif /* ASN_CODECS_PRIM_H */ diff --git a/e2sim/previous/ASN1c/asn_constant.h b/e2sim/previous/ASN1c/asn_constant.h deleted file mode 100644 index 64a3988..0000000 --- a/e2sim/previous/ASN1c/asn_constant.h +++ /dev/null @@ -1,87 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - */ - -#ifndef _ASN_CONSTANT_H -#define _ASN_CONSTANT_H - -#ifdef __cplusplus -extern "C" { -#endif - -#define maxofRANfunctionID (256) -#define maxofRICactionID (16) -#define maxEARFCN (65535) -#define maxEARFCNPlusOne (65536) -#define newmaxEARFCN (262143) -#define maxInterfaces (16) -#define maxCellineNB (256) -#define maxnoofBands (16) -#define maxnoofBearers (256) -#define maxNrOfErrors (256) -#define maxnoofPDCP_SN (16) -#define maxnoofEPLMNs (15) -#define maxnoofEPLMNsPlusOne (16) -#define maxnoofForbLACs (4096) -#define maxnoofForbTACs (4096) -#define maxnoofBPLMNs (6) -#define maxnoofNeighbours (512) -#define maxnoofPRBs (110) -#define maxPools (16) -#define maxnoofCells (16) -#define maxnoofMBSFN (8) -#define maxFailedMeasObjects (32) -#define maxnoofCellIDforMDT (32) -#define maxnoofTAforMDT (8) -#define maxnoofMBMSServiceAreaIdentities (256) -#define maxnoofMDTPLMNs (16) -#define maxnoofCoMPHypothesisSet (256) -#define maxnoofCoMPCells (32) -#define maxUEReport (128) -#define maxCellReport (9) -#define maxnoofPA (3) -#define maxCSIProcess (4) -#define maxCSIReport (2) -#define maxSubband (14) -#define maxofNRNeighbours (1024) -#define maxCellinengNB (16384) -#define maxnooftimeperiods (2) -#define maxnoofCellIDforQMC (32) -#define maxnoofTAforQMC (8) -#define maxnoofPLMNforQMC (16) -#define maxUEsinengNBDU (8192) -#define maxnoofProtectedResourcePatterns (16) -#define maxnoNRcellsSpectrumSharingWithE_UTRA (64) -#define maxnoofNrCellBands (32) -#define maxnoofBluetoothName (4) -#define maxnoofWLANName (4) -#define maxPrivateIEs (65535) -#define maxProtocolExtensions (65535) -#define maxProtocolIEs (65535) -#define maxofInterfaceProtocolIE (15) -#define maxofActionParameters (255) - - -#ifdef __cplusplus -} -#endif - -#endif /* _ASN_CONSTANT_H */ diff --git a/e2sim/previous/ASN1c/asn_internal.c b/e2sim/previous/ASN1c/asn_internal.c deleted file mode 100644 index 8c02a27..0000000 --- a/e2sim/previous/ASN1c/asn_internal.c +++ /dev/null @@ -1,66 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -#include - -ssize_t -asn__format_to_callback(int (*cb)(const void *, size_t, void *key), void *key, - const char *fmt, ...) { - char scratch[64]; - char *buf = scratch; - size_t buf_size = sizeof(scratch); - int wrote; - int cb_ret; - - do { - va_list args; - va_start(args, fmt); - - wrote = vsnprintf(buf, buf_size, fmt, args); - if(wrote < (ssize_t)buf_size) { - if(wrote < 0) { - if(buf != scratch) FREEMEM(buf); - va_end(args); - return -1; - } - break; - } - - buf_size <<= 1; - if(buf == scratch) { - buf = MALLOC(buf_size); - if(!buf) return -1; - } else { - void *p = REALLOC(buf, buf_size); - if(!p) { - FREEMEM(buf); - return -1; - } - buf = p; - } - } while(1); - - cb_ret = cb(buf, wrote, key); - if(buf != scratch) FREEMEM(buf); - if(cb_ret < 0) { - return -1; - } - - return wrote; -} - diff --git a/e2sim/previous/ASN1c/asn_internal.h b/e2sim/previous/ASN1c/asn_internal.h deleted file mode 100644 index c2761a5..0000000 --- a/e2sim/previous/ASN1c/asn_internal.h +++ /dev/null @@ -1,177 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -/* - * Declarations internally useful for the ASN.1 support code. - */ -#ifndef ASN_INTERNAL_H -#define ASN_INTERNAL_H -#define __EXTENSIONS__ /* for Sun */ - -#include "asn_application.h" /* Application-visible API */ - -#ifndef __NO_ASSERT_H__ /* Include assert.h only for internal use. */ -#include /* for assert() macro */ -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -/* Environment version might be used to avoid running with the old library */ -#define ASN1C_ENVIRONMENT_VERSION 923 /* Compile-time version */ -int get_asn1c_environment_version(void); /* Run-time version */ - -#define CALLOC(nmemb, size) calloc(nmemb, size) -#define MALLOC(size) malloc(size) -#define REALLOC(oldptr, size) realloc(oldptr, size) -#define FREEMEM(ptr) free(ptr) - -#define asn_debug_indent 0 -#define ASN_DEBUG_INDENT_ADD(i) do{}while(0) - -#ifdef EMIT_ASN_DEBUG -#warning "Use ASN_EMIT_DEBUG instead of EMIT_ASN_DEBUG" -#define ASN_EMIT_DEBUG EMIT_ASN_DEBUG -#endif - -/* - * A macro for debugging the ASN.1 internals. - * You may enable or override it. - */ -#ifndef ASN_DEBUG /* If debugging code is not defined elsewhere... */ -#if ASN_EMIT_DEBUG == 1 /* And it was asked to emit this code... */ -#if !defined(BELL_LABS) /* Bell Labs */ - //#if __STDC_VERSION__ >= 199901L -#ifdef ASN_THREAD_SAFE -/* Thread safety requires sacrifice in output indentation: - * Retain empty definition of ASN_DEBUG_INDENT_ADD. */ -#else /* !ASN_THREAD_SAFE */ -#undef ASN_DEBUG_INDENT_ADD -#undef asn_debug_indent -int asn_debug_indent; -#define ASN_DEBUG_INDENT_ADD(i) do { asn_debug_indent += i; } while(0) -#endif /* ASN_THREAD_SAFE */ -#if defined(BELL_LABS) /* Bell Labs version */ -extern int logAsn1c(const char *filename, int linenumber, const char *format, ...); -#define ASN_DEBUG(fmt, args...) do { \ - (void) logAsn1c(__FILE__, __LINE__, fmt, ##args); \ - } while(0) -#else -#define ASN_DEBUG(fmt, args...) do { \ - int adi = asn_debug_indent; \ - while(adi--) fprintf(stderr, " "); \ - fprintf(stderr, fmt, ##args); \ - fprintf(stderr, " (%s:%d)\n", \ - __FILE__, __LINE__); \ - } while(0) -#endif /* BELL_LABS */ -#else /* !C99 */ -void CC_PRINTFLIKE(1, 2) ASN_DEBUG_f(const char *fmt, ...); -#define ASN_DEBUG ASN_DEBUG_f -#endif /* C99 */ -#else /* ASN_EMIT_DEBUG != 1 */ -#if __STDC_VERSION__ >= 199901L -#define ASN_DEBUG(...) do{}while(0) -#else /* not C99 */ -static void CC_PRINTFLIKE(1, 2) ASN_DEBUG(const char *fmt, ...) { (void)fmt; } -#endif /* C99 or better */ -#endif /* ASN_EMIT_DEBUG */ -#endif /* ASN_DEBUG */ - -/* - * Print to a callback. - * The callback is expected to return negative values on error. - * 0 and positive values are treated as success. - * RETURN VALUES: - * -1: Failed to format or invoke the callback. - * >0: Size of the data that got delivered to the callback. - */ -ssize_t CC_PRINTFLIKE(3, 4) -asn__format_to_callback( - int (*callback)(const void *, size_t, void *key), void *key, - const char *fmt, ...); - -/* - * Invoke the application-supplied callback and fail, if something is wrong. - */ -#define ASN__E_cbc(buf, size) (cb((buf), (size), app_key) < 0) -#define ASN__E_CALLBACK(size, foo) \ - do { \ - if(foo) goto cb_failed; \ - er.encoded += (size); \ - } while(0) -#define ASN__CALLBACK(buf, size) ASN__E_CALLBACK(size, ASN__E_cbc(buf, size)) -#define ASN__CALLBACK2(buf1, size1, buf2, size2) \ - ASN__E_CALLBACK((size1) + (size2), \ - ASN__E_cbc(buf1, size1) || ASN__E_cbc(buf2, size2)) -#define ASN__CALLBACK3(buf1, size1, buf2, size2, buf3, size3) \ - ASN__E_CALLBACK((size1) + (size2) + (size3), \ - ASN__E_cbc(buf1, size1) || ASN__E_cbc(buf2, size2) \ - || ASN__E_cbc(buf3, size3)) - -#define ASN__TEXT_INDENT(nl, level) \ - do { \ - int tmp_level = (level); \ - int tmp_nl = ((nl) != 0); \ - int tmp_i; \ - if(tmp_nl) ASN__CALLBACK("\n", 1); \ - if(tmp_level < 0) tmp_level = 0; \ - for(tmp_i = 0; tmp_i < tmp_level; tmp_i++) ASN__CALLBACK(" ", 4); \ - } while(0) - -#define _i_INDENT(nl) do { \ - int tmp_i; \ - if((nl) && cb("\n", 1, app_key) < 0) \ - return -1; \ - for(tmp_i = 0; tmp_i < ilevel; tmp_i++) \ - if(cb(" ", 4, app_key) < 0) \ - return -1; \ - } while(0) - -/* - * Check stack against overflow, if limit is set. - */ -#define ASN__DEFAULT_STACK_MAX (30000) -static int CC_NOTUSED -ASN__STACK_OVERFLOW_CHECK(const asn_codec_ctx_t *ctx) { - if(ctx && ctx->max_stack_size) { - - /* ctx MUST be allocated on the stack */ - ptrdiff_t usedstack = ((const char *)ctx - (const char *)&ctx); - if(usedstack > 0) usedstack = -usedstack; /* grows up! */ - - /* double negative required to avoid int wrap-around */ - if(usedstack < -(ptrdiff_t)ctx->max_stack_size) { - ASN_DEBUG("Stack limit %ld reached", - (long)ctx->max_stack_size); - return -1; - } - } - return 0; -} - -#ifdef __cplusplus -} -#endif - -#endif /* ASN_INTERNAL_H */ diff --git a/e2sim/previous/ASN1c/asn_ioc.h b/e2sim/previous/ASN1c/asn_ioc.h deleted file mode 100644 index 9674a8d..0000000 --- a/e2sim/previous/ASN1c/asn_ioc.h +++ /dev/null @@ -1,69 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Run-time support for Information Object Classes. - * Copyright (c) 2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef ASN_IOC_H -#define ASN_IOC_H - -#include /* Platform-specific types */ - -#ifdef __cplusplus -extern "C" { -#endif - -struct asn_TYPE_descriptor_s; -struct asn_ioc_cell_s; - -/* - * X.681, #13 - */ -typedef struct asn_ioc_set_s { - size_t rows_count; - size_t columns_count; - const struct asn_ioc_cell_s *rows; -} asn_ioc_set_t; - - -typedef struct asn_ioc_cell_s { - const char *field_name; /* Is equal to corresponding column_name */ - enum { - aioc__undefined = 0, - aioc__value, - aioc__type, - aioc__open_type, - } cell_kind; - struct asn_TYPE_descriptor_s *type_descriptor; - const void *value_sptr; - struct { - size_t types_count; - struct { - unsigned choice_position; - } *types; - } open_type; -} asn_ioc_cell_t; - - -#ifdef __cplusplus -} -#endif - -#endif /* ASN_IOC_H */ diff --git a/e2sim/previous/ASN1c/asn_random_fill.c b/e2sim/previous/ASN1c/asn_random_fill.c deleted file mode 100644 index 6bfc2b2..0000000 --- a/e2sim/previous/ASN1c/asn_random_fill.c +++ /dev/null @@ -1,74 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Copyright (c) 2017 Lev Walkin . - * All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include - -int -asn_random_fill(const struct asn_TYPE_descriptor_s *td, void **struct_ptr, - size_t length) { - - if(td && td->op->random_fill) { - asn_random_fill_result_t res = - td->op->random_fill(td, struct_ptr, 0, length); - return (res.code == ARFILL_OK) ? 0 : -1; - } else { - return -1; - } -} - -static uintmax_t -asn__intmax_range(intmax_t lb, intmax_t ub) { - assert(lb <= ub); - if((ub < 0) == (lb < 0)) { - return ub - lb; - } else if(lb < 0) { - return 1 + ((uintmax_t)ub + (uintmax_t)-(lb + 1)); - } else { - assert(!"Unreachable"); - return 0; - } -} - -intmax_t -asn_random_between(intmax_t lb, intmax_t rb) { - if(lb == rb) { - return lb; - } else { - const uintmax_t intmax_max = ((~(uintmax_t)0) >> 1); - uintmax_t range = asn__intmax_range(lb, rb); - uintmax_t value = 0; - uintmax_t got_entropy = 0; - - assert(RAND_MAX > 0xffffff); /* Seen 7ffffffd! */ - assert(range < intmax_max); - - for(; got_entropy < range;) { - got_entropy = (got_entropy << 24) | 0xffffff; - value = (value << 24) | (random() % 0xffffff); - } - - return lb + (intmax_t)(value % (range + 1)); - } -} diff --git a/e2sim/previous/ASN1c/asn_random_fill.h b/e2sim/previous/ASN1c/asn_random_fill.h deleted file mode 100644 index ed8c5a4..0000000 --- a/e2sim/previous/ASN1c/asn_random_fill.h +++ /dev/null @@ -1,69 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Copyright (c) 2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef ASN_RANDOM_FILL -#define ASN_RANDOM_FILL - -/* Forward declarations */ -struct asn_TYPE_descriptor_s; -struct asn_encoding_constraints_s; - -/* - * Initialize a structure with random data according to the type specification - * and optional member constraints. - * ARGUMENTS: - * (max_length) - See (approx_max_length_limit). - * (memb_constraints) - Member constraints, if exist. - * The type can be constrained differently according - * to PER and OER specifications, so we find a value - * at the intersection of these constraints. - * In case the return differs from ARFILL_OK, the (struct_ptr) contents - * and (current_length) value remain in their original state. - */ -typedef struct asn_random_fill_result_s { - enum { - ARFILL_FAILED = -1, /* System error (memory?) */ - ARFILL_OK = 0, /* Initialization succeeded */ - ARFILL_SKIPPED = 1 /* Not done due to (length?) constraint */ - } code; - size_t length; /* Approximate number of bytes created. */ -} asn_random_fill_result_t; -typedef asn_random_fill_result_t(asn_random_fill_f)( - const struct asn_TYPE_descriptor_s *td, void **struct_ptr, - const struct asn_encoding_constraints_s *memb_constraints, - size_t max_length); - -/* - * Returns 0 if the structure was properly initialized, -1 otherwise. - * The (approx_max_length_limit) specifies the approximate limit of the - * resulting structure in units closely resembling bytes. The actual result - * might be several times larger or smaller than the length limit. - */ -int asn_random_fill(const struct asn_TYPE_descriptor_s *td, void **struct_ptr, - size_t approx_max_length_limit); - -/* - * Returns a random number between min and max. - */ -intmax_t asn_random_between(intmax_t min, intmax_t max); - -#endif /* ASN_RANDOM_FILL */ diff --git a/e2sim/previous/ASN1c/asn_system.h b/e2sim/previous/ASN1c/asn_system.h deleted file mode 100644 index f89feb8..0000000 --- a/e2sim/previous/ASN1c/asn_system.h +++ /dev/null @@ -1,168 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -/* - * Miscellaneous system-dependent types. - */ -#ifndef ASN_SYSTEM_H -#define ASN_SYSTEM_H - -#ifdef HAVE_CONFIG_H -#include "config.h" -#endif - -#ifndef _DEFAULT_SOURCE -#define _DEFAULT_SOURCE 1 -#endif - -#ifndef _BSD_SOURCE -#define _BSD_SOURCE /* for snprintf() on some linux systems */ -#endif - -#include /* For snprintf(3) */ -#include /* For *alloc(3) */ -#include /* For memcpy(3) */ -#include /* For size_t */ -#include /* For LONG_MAX */ -#include /* For va_start */ -#include /* for offsetof and ptrdiff_t */ - -#ifdef _WIN32 - -#include -#define snprintf _snprintf -#define vsnprintf _vsnprintf - -/* To avoid linking with ws2_32.lib, here's the definition of ntohl() */ -#define sys_ntohl(l) ((((l) << 24) & 0xff000000) \ - | (((l) << 8) & 0xff0000) \ - | (((l) >> 8) & 0xff00) \ - | ((l >> 24) & 0xff)) - -#ifdef _MSC_VER /* MSVS.Net */ -#ifndef __cplusplus -#define inline __inline -#endif -#ifndef ASSUMESTDTYPES /* Standard types have been defined elsewhere */ -#define ssize_t SSIZE_T -#if _MSC_VER < 1600 -typedef char int8_t; -typedef short int16_t; -typedef int int32_t; -typedef unsigned char uint8_t; -typedef unsigned short uint16_t; -typedef unsigned int uint32_t; -#else /* _MSC_VER >= 1600 */ -#include -#endif /* _MSC_VER < 1600 */ -#endif /* ASSUMESTDTYPES */ -#define WIN32_LEAN_AND_MEAN -#include -#include -#define isnan _isnan -#define finite _finite -#define copysign _copysign -#define ilogb _logb -#else /* !_MSC_VER */ -#include -#endif /* _MSC_VER */ - -#else /* !_WIN32 */ - -#if defined(__vxworks) -#include -#else /* !defined(__vxworks) */ - -#include /* C99 specifies this file */ -#include /* for ntohl() */ -#define sys_ntohl(foo) ntohl(foo) -#endif /* defined(__vxworks) */ - -#endif /* _WIN32 */ - -#if __GNUC__ >= 3 || defined(__clang__) -#define CC_ATTRIBUTE(attr) __attribute__((attr)) -#else -#define CC_ATTRIBUTE(attr) -#endif -#define CC_PRINTFLIKE(fmt, var) CC_ATTRIBUTE(format(printf, fmt, var)) -#define CC_NOTUSED CC_ATTRIBUTE(unused) -#ifndef CC_ATTR_NO_SANITIZE -#define CC_ATTR_NO_SANITIZE(what) CC_ATTRIBUTE(no_sanitize(what)) -#endif - -/* Figure out if thread safety is requested */ -#if !defined(ASN_THREAD_SAFE) && (defined(THREAD_SAFE) || defined(_REENTRANT)) -#define ASN_THREAD_SAFE -#endif /* Thread safety */ - -#ifndef offsetof /* If not defined by */ -#define offsetof(s, m) ((ptrdiff_t)&(((s *)0)->m) - (ptrdiff_t)((s *)0)) -#endif /* offsetof */ - -#ifndef MIN /* Suitable for comparing primitive types (integers) */ -#if defined(__GNUC__) -#define MIN(a,b) ({ __typeof a _a = a; __typeof b _b = b; \ - ((_a)<(_b)?(_a):(_b)); }) -#else /* !__GNUC__ */ -#define MIN(a,b) ((a)<(b)?(a):(b)) /* Unsafe variant */ -#endif /* __GNUC__ */ -#endif /* MIN */ - -#if __STDC_VERSION__ >= 199901L -#ifndef SIZE_MAX -#define SIZE_MAX ((~((size_t)0)) >> 1) -#endif - -#ifndef RSIZE_MAX /* C11, Annex K */ -#define RSIZE_MAX (SIZE_MAX >> 1) -#endif -#ifndef RSSIZE_MAX /* Halve signed size even further than unsigned */ -#define RSSIZE_MAX ((ssize_t)(RSIZE_MAX >> 1)) -#endif -#else /* Old compiler */ -#undef SIZE_MAX -#undef RSIZE_MAX -#undef RSSIZE_MAX -#define SIZE_MAX ((~((size_t)0)) >> 1) -#define RSIZE_MAX (SIZE_MAX >> 1) -#define RSSIZE_MAX ((ssize_t)(RSIZE_MAX >> 1)) -#endif - -#if __STDC_VERSION__ >= 199901L -#define ASN_PRI_SIZE "zu" -#define ASN_PRI_SSIZE "zd" -#define ASN_PRIuMAX PRIuMAX -#define ASN_PRIdMAX PRIdMAX -#else -#define ASN_PRI_SIZE "lu" -#define ASN_PRI_SSIZE "ld" -#if LLONG_MAX > LONG_MAX -#define ASN_PRIuMAX "llu" -#define ASN_PRIdMAX "lld" -#else -#define ASN_PRIuMAX "lu" -#define ASN_PRIdMAX "ld" -#endif -#endif - -#endif /* ASN_SYSTEM_H */ diff --git a/e2sim/previous/ASN1c/ber_decoder.c b/e2sim/previous/ASN1c/ber_decoder.c deleted file mode 100644 index 02d91df..0000000 --- a/e2sim/previous/ASN1c/ber_decoder.c +++ /dev/null @@ -1,301 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/*- - * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include - -#undef ADVANCE -#define ADVANCE(num_bytes) do { \ - size_t num = num_bytes; \ - ptr = ((const char *)ptr) + num; \ - size -= num; \ - consumed_myself += num; \ - } while(0) -#undef RETURN -#define RETURN(_code) do { \ - asn_dec_rval_t rval; \ - rval.code = _code; \ - if(opt_ctx) opt_ctx->step = step; /* Save context */ \ - if(_code == RC_OK || opt_ctx) \ - rval.consumed = consumed_myself; \ - else \ - rval.consumed = 0; /* Context-free */ \ - return rval; \ - } while(0) - -/* - * The BER decoder of any type. - */ -asn_dec_rval_t -ber_decode(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *type_descriptor, void **struct_ptr, - const void *ptr, size_t size) { - asn_codec_ctx_t s_codec_ctx; - - /* - * Stack checker requires that the codec context - * must be allocated on the stack. - */ - if(opt_codec_ctx) { - if(opt_codec_ctx->max_stack_size) { - s_codec_ctx = *opt_codec_ctx; - opt_codec_ctx = &s_codec_ctx; - } - } else { - /* If context is not given, be security-conscious anyway */ - memset(&s_codec_ctx, 0, sizeof(s_codec_ctx)); - s_codec_ctx.max_stack_size = ASN__DEFAULT_STACK_MAX; - opt_codec_ctx = &s_codec_ctx; - } - - /* - * Invoke type-specific decoder. - */ - return type_descriptor->op->ber_decoder(opt_codec_ctx, type_descriptor, - struct_ptr, /* Pointer to the destination structure */ - ptr, size, /* Buffer and its size */ - 0 /* Default tag mode is 0 */ - ); -} - -/* - * Check the set of >> tags matches the definition. - */ -asn_dec_rval_t -ber_check_tags(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, asn_struct_ctx_t *opt_ctx, - const void *ptr, size_t size, int tag_mode, int last_tag_form, - ber_tlv_len_t *last_length, int *opt_tlv_form) { - ssize_t consumed_myself = 0; - ssize_t tag_len; - ssize_t len_len; - ber_tlv_tag_t tlv_tag; - ber_tlv_len_t tlv_len; - ber_tlv_len_t limit_len = -1; - int expect_00_terminators = 0; - int tlv_constr = -1; /* If CHOICE, opt_tlv_form is not given */ - int step = opt_ctx ? opt_ctx->step : 0; /* Where we left previously */ - int tagno; - - /* - * Make sure we didn't exceed the maximum stack size. - */ - if(ASN__STACK_OVERFLOW_CHECK(opt_codec_ctx)) - RETURN(RC_FAIL); - - /* - * So what does all this implicit skip stuff mean? - * Imagine two types, - * A ::= [5] IMPLICIT T - * B ::= [2] EXPLICIT T - * Where T is defined as - * T ::= [4] IMPLICIT SEQUENCE { ... } - * - * Let's say, we are starting to decode type A, given the - * following TLV stream: <5> <0>. What does this mean? - * It means that the type A contains type T which is, - * in turn, empty. - * Remember though, that we are still in A. We cannot - * just pass control to the type T decoder. Why? Because - * the type T decoder expects <4> <0>, not <5> <0>. - * So, we must make sure we are going to receive <5> while - * still in A, then pass control to the T decoder, indicating - * that the tag <4> was implicitly skipped. The decoder of T - * hence will be prepared to treat <4> as valid tag, and decode - * it appropriately. - */ - - tagno = step /* Continuing where left previously */ - + (tag_mode==1?-1:0) - ; - ASN_DEBUG("ber_check_tags(%s, size=%ld, tm=%d, step=%d, tagno=%d)", - td->name, (long)size, tag_mode, step, tagno); - /* assert(td->tags_count >= 1) May not be the case for CHOICE or ANY */ - - if(tag_mode == 0 && tagno == (int)td->tags_count) { - /* - * This must be the _untagged_ ANY type, - * which outermost tag isn't known in advance. - * Fetch the tag and length separately. - */ - tag_len = ber_fetch_tag(ptr, size, &tlv_tag); - switch(tag_len) { - case -1: RETURN(RC_FAIL); - case 0: RETURN(RC_WMORE); - } - tlv_constr = BER_TLV_CONSTRUCTED(ptr); - len_len = ber_fetch_length(tlv_constr, - (const char *)ptr + tag_len, size - tag_len, &tlv_len); - switch(len_len) { - case -1: RETURN(RC_FAIL); - case 0: RETURN(RC_WMORE); - } - ASN_DEBUG("Advancing %ld in ANY case", - (long)(tag_len + len_len)); - ADVANCE(tag_len + len_len); - } else { - assert(tagno < (int)td->tags_count); /* At least one loop */ - } - for((void)tagno; tagno < (int)td->tags_count; tagno++, step++) { - - /* - * Fetch and process T from TLV. - */ - tag_len = ber_fetch_tag(ptr, size, &tlv_tag); - ASN_DEBUG("Fetching tag from {%p,%ld}: " - "len %ld, step %d, tagno %d got %s", - ptr, (long)size, - (long)tag_len, step, tagno, - ber_tlv_tag_string(tlv_tag)); - switch(tag_len) { - case -1: RETURN(RC_FAIL); - case 0: RETURN(RC_WMORE); - } - - tlv_constr = BER_TLV_CONSTRUCTED(ptr); - - /* - * If {I}, don't check anything. - * If {I,B,C}, check B and C unless we're at I. - */ - if(tag_mode != 0 && step == 0) { - /* - * We don't expect tag to match here. - * It's just because we don't know how the tag - * is supposed to look like. - */ - } else { - assert(tagno >= 0); /* Guaranteed by the code above */ - if(tlv_tag != td->tags[tagno]) { - /* - * Unexpected tag. Too bad. - */ - ASN_DEBUG("Expected: %s, " - "expectation failed (tn=%d, tm=%d)", - ber_tlv_tag_string(td->tags[tagno]), - tagno, tag_mode - ); - RETURN(RC_FAIL); - } - } - - /* - * Attention: if there are more tags expected, - * ensure that the current tag is presented - * in constructed form (it contains other tags!). - * If this one is the last one, check that the tag form - * matches the one given in descriptor. - */ - if(tagno < ((int)td->tags_count - 1)) { - if(tlv_constr == 0) { - ASN_DEBUG("tlv_constr = %d, expfail", - tlv_constr); - RETURN(RC_FAIL); - } - } else { - if(last_tag_form != tlv_constr - && last_tag_form != -1) { - ASN_DEBUG("last_tag_form %d != %d", - last_tag_form, tlv_constr); - RETURN(RC_FAIL); - } - } - - /* - * Fetch and process L from TLV. - */ - len_len = ber_fetch_length(tlv_constr, - (const char *)ptr + tag_len, size - tag_len, &tlv_len); - ASN_DEBUG("Fetching len = %ld", (long)len_len); - switch(len_len) { - case -1: RETURN(RC_FAIL); - case 0: RETURN(RC_WMORE); - } - - /* - * FIXME - * As of today, the chain of tags - * must either contain several indefinite length TLVs, - * or several definite length ones. - * No mixing is allowed. - */ - if(tlv_len == -1) { - /* - * Indefinite length. - */ - if(limit_len == -1) { - expect_00_terminators++; - } else { - ASN_DEBUG("Unexpected indefinite length " - "in a chain of definite lengths"); - RETURN(RC_FAIL); - } - ADVANCE(tag_len + len_len); - continue; - } else { - if(expect_00_terminators) { - ASN_DEBUG("Unexpected definite length " - "in a chain of indefinite lengths"); - RETURN(RC_FAIL); - } - } - - /* - * Check that multiple TLVs specify ever decreasing length, - * which is consistent. - */ - if(limit_len == -1) { - limit_len = tlv_len + tag_len + len_len; - if(limit_len < 0) { - /* Too great tlv_len value? */ - RETURN(RC_FAIL); - } - } else if(limit_len != tlv_len + tag_len + len_len) { - /* - * Inner TLV specifies length which is inconsistent - * with the outer TLV's length value. - */ - ASN_DEBUG("Outer TLV is %ld and inner is %ld", - (long)limit_len, (long)tlv_len); - RETURN(RC_FAIL); - } - - ADVANCE(tag_len + len_len); - - limit_len -= (tag_len + len_len); - if((ssize_t)size > limit_len) { - /* - * Make sure that we won't consume more bytes - * from the parent frame than the inferred limit. - */ - size = limit_len; - } - } - - if(opt_tlv_form) - *opt_tlv_form = tlv_constr; - if(expect_00_terminators) - *last_length = -expect_00_terminators; - else - *last_length = tlv_len; - - RETURN(RC_OK); -} diff --git a/e2sim/previous/ASN1c/ber_decoder.h b/e2sim/previous/ASN1c/ber_decoder.h deleted file mode 100644 index 6c41bf8..0000000 --- a/e2sim/previous/ASN1c/ber_decoder.h +++ /dev/null @@ -1,84 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/*- - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef _BER_DECODER_H_ -#define _BER_DECODER_H_ - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -struct asn_TYPE_descriptor_s; /* Forward declaration */ -struct asn_codec_ctx_s; /* Forward declaration */ - -/* - * The BER decoder of any type. - * This function may be invoked directly from the application. - * Decodes BER, DER and CER data (DER and CER are different subsets of BER). - * - * NOTE: Use the der_encode() function (der_encoder.h) to produce encoding - * which is compliant with ber_decode(). - */ -asn_dec_rval_t ber_decode( - const struct asn_codec_ctx_s *opt_codec_ctx, - const struct asn_TYPE_descriptor_s *type_descriptor, - void **struct_ptr, /* Pointer to a target structure's pointer */ - const void *buffer, /* Data to be decoded */ - size_t size /* Size of that buffer */ -); - -/* - * Type of generic function which decodes the byte stream into the structure. - */ -typedef asn_dec_rval_t(ber_type_decoder_f)( - const struct asn_codec_ctx_s *opt_codec_ctx, - const struct asn_TYPE_descriptor_s *type_descriptor, void **struct_ptr, - const void *buf_ptr, size_t size, int tag_mode); - -/******************************* - * INTERNALLY USEFUL FUNCTIONS * - *******************************/ - -/* - * Check that all tags correspond to the type definition (as given in head). - * On return, last_length would contain either a non-negative length of the - * value part of the last TLV, or the negative number of expected - * "end of content" sequences. The number may only be negative if the - * head->last_tag_form is non-zero. - */ -asn_dec_rval_t ber_check_tags( - const struct asn_codec_ctx_s *opt_codec_ctx, /* codec options */ - const struct asn_TYPE_descriptor_s *type_descriptor, - asn_struct_ctx_t *opt_ctx, /* saved decoding context */ - const void *ptr, size_t size, - int tag_mode, /* {-1,0,1}: IMPLICIT, no, EXPLICIT */ - int last_tag_form, /* {-1,0:1}: any, primitive, constr */ - ber_tlv_len_t *last_length, int *opt_tlv_form /* optional tag form */ -); - -#ifdef __cplusplus -} -#endif - -#endif /* _BER_DECODER_H_ */ diff --git a/e2sim/previous/ASN1c/ber_tlv_length.c b/e2sim/previous/ASN1c/ber_tlv_length.c deleted file mode 100644 index 5b897fe..0000000 --- a/e2sim/previous/ASN1c/ber_tlv_length.c +++ /dev/null @@ -1,186 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/*- - * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include - -ssize_t -ber_fetch_length(int _is_constructed, const void *bufptr, size_t size, - ber_tlv_len_t *len_r) { - const uint8_t *buf = (const uint8_t *)bufptr; - unsigned oct; - - if(size == 0) - return 0; /* Want more */ - - oct = *(const uint8_t *)buf; - if((oct & 0x80) == 0) { - /* - * Short definite length. - */ - *len_r = oct; /* & 0x7F */ - return 1; - } else { - ber_tlv_len_t len; - size_t skipped; - - if(_is_constructed && oct == 0x80) { - *len_r = -1; /* Indefinite length */ - return 1; - } - - if(oct == 0xff) { - /* Reserved in standard for future use. */ - return -1; - } - - oct &= 0x7F; /* Leave only the 7 LS bits */ - for(len = 0, buf++, skipped = 1; - oct && (++skipped <= size); buf++, oct--) { - - /* Verify that we won't overflow. */ - if(!(len >> ((8 * sizeof(len)) - (8+1)))) { - len = (len << 8) | *buf; - } else { - /* Too large length value. */ - return -1; - } - } - - if(oct == 0) { - if(len < 0 || len > RSSIZE_MAX) { - /* Length value out of sane range. */ - return -1; - } - - *len_r = len; - return skipped; - } - - return 0; /* Want more */ - } - -} - -ssize_t -ber_skip_length(const asn_codec_ctx_t *opt_codec_ctx, - int _is_constructed, const void *ptr, size_t size) { - ber_tlv_len_t vlen; /* Length of V in TLV */ - ssize_t tl; /* Length of L in TLV */ - ssize_t ll; /* Length of L in TLV */ - size_t skip; - - /* - * Make sure we didn't exceed the maximum stack size. - */ - if(ASN__STACK_OVERFLOW_CHECK(opt_codec_ctx)) - return -1; - - /* - * Determine the size of L in TLV. - */ - ll = ber_fetch_length(_is_constructed, ptr, size, &vlen); - if(ll <= 0) return ll; - - /* - * Definite length. - */ - if(vlen >= 0) { - skip = ll + vlen; - if(skip > size) - return 0; /* Want more */ - return skip; - } - - /* - * Indefinite length! - */ - ASN_DEBUG("Skipping indefinite length"); - for(skip = ll, ptr = ((const char *)ptr) + ll, size -= ll;;) { - ber_tlv_tag_t tag; - - /* Fetch the tag */ - tl = ber_fetch_tag(ptr, size, &tag); - if(tl <= 0) return tl; - - ll = ber_skip_length(opt_codec_ctx, - BER_TLV_CONSTRUCTED(ptr), - ((const char *)ptr) + tl, size - tl); - if(ll <= 0) return ll; - - skip += tl + ll; - - /* - * This may be the end of the indefinite length structure, - * two consecutive 0 octets. - * Check if it is true. - */ - if(((const uint8_t *)ptr)[0] == 0 - && ((const uint8_t *)ptr)[1] == 0) - return skip; - - ptr = ((const char *)ptr) + tl + ll; - size -= tl + ll; - } - - /* UNREACHABLE */ -} - -size_t -der_tlv_length_serialize(ber_tlv_len_t len, void *bufp, size_t size) { - size_t required_size; /* Size of len encoding */ - uint8_t *buf = (uint8_t *)bufp; - uint8_t *end; - int i; - - if(len <= 127) { - /* Encoded in 1 octet */ - if(size) *buf = (uint8_t)len; - return 1; - } - - /* - * Compute the size of the subsequent bytes. - */ - for(required_size = 1, i = 8; i < 8 * (int)sizeof(len); i += 8) { - if(len >> i) - required_size++; - else - break; - } - - if(size <= required_size) - return required_size + 1; - - *buf++ = (uint8_t)(0x80 | required_size); /* Length of the encoding */ - - /* - * Produce the len encoding, space permitting. - */ - end = buf + required_size; - for(i -= 8; buf < end; i -= 8, buf++) - *buf = (uint8_t)(len >> i); - - return required_size + 1; -} - diff --git a/e2sim/previous/ASN1c/ber_tlv_length.h b/e2sim/previous/ASN1c/ber_tlv_length.h deleted file mode 100644 index 96d8322..0000000 --- a/e2sim/previous/ASN1c/ber_tlv_length.h +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/*- - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef _BER_TLV_LENGTH_H_ -#define _BER_TLV_LENGTH_H_ - -#ifdef __cplusplus -extern "C" { -#endif - -typedef ssize_t ber_tlv_len_t; - -/* - * This function tries to fetch the length of the BER TLV value and place it - * in *len_r. - * RETURN VALUES: - * 0: More data expected than bufptr contains. - * -1: Fatal error deciphering length. - * >0: Number of bytes used from bufptr. - * On return with >0, len_r is constrained as -1..MAX, where -1 mean - * that the value is of indefinite length. - */ -ssize_t ber_fetch_length(int _is_constructed, const void *bufptr, size_t size, - ber_tlv_len_t *len_r); - -/* - * This function expects bufptr to be positioned over L in TLV. - * It returns number of bytes occupied by L and V together, suitable - * for skipping. The function properly handles indefinite length. - * RETURN VALUES: - * Standard {-1,0,>0} convention. - */ -ssize_t ber_skip_length( - const struct asn_codec_ctx_s *opt_codec_ctx, /* optional context */ - int _is_constructed, const void *bufptr, size_t size); - -/* - * This function serializes the length (L from TLV) in DER format. - * It always returns number of bytes necessary to represent the length, - * it is a caller's responsibility to check the return value - * against the supplied buffer's size. - */ -size_t der_tlv_length_serialize(ber_tlv_len_t len, void *bufptr, size_t size); - -#ifdef __cplusplus -} -#endif - -#endif /* _BER_TLV_LENGTH_H_ */ diff --git a/e2sim/previous/ASN1c/ber_tlv_tag.c b/e2sim/previous/ASN1c/ber_tlv_tag.c deleted file mode 100644 index 1548b22..0000000 --- a/e2sim/previous/ASN1c/ber_tlv_tag.c +++ /dev/null @@ -1,162 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/*- - * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include - -ssize_t -ber_fetch_tag(const void *ptr, size_t size, ber_tlv_tag_t *tag_r) { - ber_tlv_tag_t val; - ber_tlv_tag_t tclass; - size_t skipped; - - if(size == 0) - return 0; - - val = *(const uint8_t *)ptr; - tclass = (val >> 6); - if((val &= 0x1F) != 0x1F) { - /* - * Simple form: everything encoded in a single octet. - * Tag Class is encoded using two least significant bits. - */ - *tag_r = (val << 2) | tclass; - return 1; - } - - /* - * Each octet contains 7 bits of useful information. - * The MSB is 0 if it is the last octet of the tag. - */ - for(val = 0, ptr = ((const char *)ptr) + 1, skipped = 2; - skipped <= size; - ptr = ((const char *)ptr) + 1, skipped++) { - unsigned int oct = *(const uint8_t *)ptr; - if(oct & 0x80) { - val = (val << 7) | (oct & 0x7F); - /* - * Make sure there are at least 9 bits spare - * at the MS side of a value. - */ - if(val >> ((8 * sizeof(val)) - 9)) { - /* - * We would not be able to accomodate - * any more tag bits. - */ - return -1; - } - } else { - val = (val << 7) | oct; - *tag_r = (val << 2) | tclass; - return skipped; - } - } - - return 0; /* Want more */ -} - - -ssize_t -ber_tlv_tag_fwrite(ber_tlv_tag_t tag, FILE *f) { - char buf[sizeof("[APPLICATION ]") + 32]; - ssize_t ret; - - ret = ber_tlv_tag_snprint(tag, buf, sizeof(buf)); - if(ret >= (ssize_t)sizeof(buf) || ret < 2) { - errno = EPERM; - return -1; - } - - return fwrite(buf, 1, ret, f); -} - -ssize_t -ber_tlv_tag_snprint(ber_tlv_tag_t tag, char *buf, size_t size) { - const char *type = 0; - int ret; - - switch(tag & 0x3) { - case ASN_TAG_CLASS_UNIVERSAL: type = "UNIVERSAL "; break; - case ASN_TAG_CLASS_APPLICATION: type = "APPLICATION "; break; - case ASN_TAG_CLASS_CONTEXT: type = ""; break; - case ASN_TAG_CLASS_PRIVATE: type = "PRIVATE "; break; - } - - ret = snprintf(buf, size, "[%s%u]", type, ((unsigned)tag) >> 2); - if(ret <= 0 && size) buf[0] = '\0'; /* against broken libc's */ - - return ret; -} - -char * -ber_tlv_tag_string(ber_tlv_tag_t tag) { - static char buf[sizeof("[APPLICATION ]") + 32]; - - (void)ber_tlv_tag_snprint(tag, buf, sizeof(buf)); - - return buf; -} - - -size_t -ber_tlv_tag_serialize(ber_tlv_tag_t tag, void *bufp, size_t size) { - int tclass = BER_TAG_CLASS(tag); - ber_tlv_tag_t tval = BER_TAG_VALUE(tag); - uint8_t *buf = (uint8_t *)bufp; - uint8_t *end; - size_t required_size; - size_t i; - - if(tval <= 30) { - /* Encoded in 1 octet */ - if(size) buf[0] = (tclass << 6) | tval; - return 1; - } else if(size) { - *buf++ = (tclass << 6) | 0x1F; - size--; - } - - /* - * Compute the size of the subsequent bytes. - */ - for(required_size = 1, i = 7; i < 8 * sizeof(tval); i += 7) { - if(tval >> i) - required_size++; - else - break; - } - - if(size < required_size) - return required_size + 1; - - /* - * Fill in the buffer, space permitting. - */ - end = buf + required_size - 1; - for(i -= 7; buf < end; i -= 7, buf++) - *buf = 0x80 | ((tval >> i) & 0x7F); - *buf = (tval & 0x7F); /* Last octet without high bit */ - - return required_size + 1; -} - diff --git a/e2sim/previous/ASN1c/ber_tlv_tag.h b/e2sim/previous/ASN1c/ber_tlv_tag.h deleted file mode 100644 index 8eac6d9..0000000 --- a/e2sim/previous/ASN1c/ber_tlv_tag.h +++ /dev/null @@ -1,78 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/*- - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef _BER_TLV_TAG_H_ -#define _BER_TLV_TAG_H_ - -#ifdef __cplusplus -extern "C" { -#endif - -enum asn_tag_class { - ASN_TAG_CLASS_UNIVERSAL = 0, /* 0b00 */ - ASN_TAG_CLASS_APPLICATION = 1, /* 0b01 */ - ASN_TAG_CLASS_CONTEXT = 2, /* 0b10 */ - ASN_TAG_CLASS_PRIVATE = 3 /* 0b11 */ -}; -typedef unsigned ber_tlv_tag_t; /* BER TAG from Tag-Length-Value */ - -/* - * Tag class is encoded together with tag value for optimization purposes. - */ -#define BER_TAG_CLASS(tag) ((tag) & 0x3) -#define BER_TAG_VALUE(tag) ((tag) >> 2) -#define BER_TLV_CONSTRUCTED(tagptr) (((*(const uint8_t *)tagptr)&0x20)?1:0) - -#define BER_TAGS_EQUAL(tag1, tag2) ((tag1) == (tag2)) - -/* - * Several functions for printing the TAG in the canonical form - * (i.e. "[PRIVATE 0]"). - * Return values correspond to their libc counterparts (if any). - */ -ssize_t ber_tlv_tag_snprint(ber_tlv_tag_t tag, char *buf, size_t buflen); -ssize_t ber_tlv_tag_fwrite(ber_tlv_tag_t tag, FILE *); -char *ber_tlv_tag_string(ber_tlv_tag_t tag); - - -/* - * This function tries to fetch the tag from the input stream. - * RETURN VALUES: - * 0: More data expected than bufptr contains. - * -1: Fatal error deciphering tag. - * >0: Number of bytes used from bufptr. tag_r will contain the tag. - */ -ssize_t ber_fetch_tag(const void *bufptr, size_t size, ber_tlv_tag_t *tag_r); - -/* - * This function serializes the tag (T from TLV) in BER format. - * It always returns number of bytes necessary to represent the tag, - * it is a caller's responsibility to check the return value - * against the supplied buffer's size. - */ -size_t ber_tlv_tag_serialize(ber_tlv_tag_t tag, void *bufptr, size_t size); - -#ifdef __cplusplus -} -#endif - -#endif /* _BER_TLV_TAG_H_ */ diff --git a/e2sim/previous/ASN1c/constr_CHOICE.c b/e2sim/previous/ASN1c/constr_CHOICE.c deleted file mode 100644 index d78bfef..0000000 --- a/e2sim/previous/ASN1c/constr_CHOICE.c +++ /dev/null @@ -1,1551 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include - -/* - * Number of bytes left for this structure. - * (ctx->left) indicates the number of bytes _transferred_ for the structure. - * (size) contains the number of bytes in the buffer passed. - */ -#define LEFT ((size<(size_t)ctx->left)?size:(size_t)ctx->left) - -/* - * If the subprocessor function returns with an indication that it wants - * more data, it may well be a fatal decoding problem, because the - * size is constrained by the 's L, even if the buffer size allows - * reading more data. - * For example, consider the buffer containing the following TLVs: - * ... - * The TLV length clearly indicates that one byte is expected in V, but - * if the V processor returns with "want more data" even if the buffer - * contains way more data than the V processor have seen. - */ -#define SIZE_VIOLATION (ctx->left >= 0 && (size_t)ctx->left <= size) - -/* - * This macro "eats" the part of the buffer which is definitely "consumed", - * i.e. was correctly converted into local representation or rightfully skipped. - */ -#undef ADVANCE -#define ADVANCE(num_bytes) do { \ - size_t num = num_bytes; \ - ptr = ((const char *)ptr) + num;\ - size -= num; \ - if(ctx->left >= 0) \ - ctx->left -= num; \ - consumed_myself += num; \ - } while(0) - -/* - * Switch to the next phase of parsing. - */ -#undef NEXT_PHASE -#define NEXT_PHASE(ctx) do { \ - ctx->phase++; \ - ctx->step = 0; \ - } while(0) - -/* - * Return a standardized complex structure. - */ -#undef RETURN -#define RETURN(_code) do { \ - rval.code = _code; \ - rval.consumed = consumed_myself;\ - return rval; \ - } while(0) - -/* - * See the definitions. - */ -static unsigned _fetch_present_idx(const void *struct_ptr, unsigned off, - unsigned size); -static void _set_present_idx(void *sptr, unsigned offset, unsigned size, - unsigned pres); -static const void *_get_member_ptr(const asn_TYPE_descriptor_t *, - const void *sptr, asn_TYPE_member_t **elm, - unsigned *present); - -/* - * Tags are canonically sorted in the tag to member table. - */ -static int -_search4tag(const void *ap, const void *bp) { - const asn_TYPE_tag2member_t *a = (const asn_TYPE_tag2member_t *)ap; - const asn_TYPE_tag2member_t *b = (const asn_TYPE_tag2member_t *)bp; - - int a_class = BER_TAG_CLASS(a->el_tag); - int b_class = BER_TAG_CLASS(b->el_tag); - - if(a_class == b_class) { - ber_tlv_tag_t a_value = BER_TAG_VALUE(a->el_tag); - ber_tlv_tag_t b_value = BER_TAG_VALUE(b->el_tag); - - if(a_value == b_value) - return 0; - else if(a_value < b_value) - return -1; - else - return 1; - } else if(a_class < b_class) { - return -1; - } else { - return 1; - } -} - -/* - * The decoder of the CHOICE type. - */ -asn_dec_rval_t -CHOICE_decode_ber(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **struct_ptr, - const void *ptr, size_t size, int tag_mode) { - /* - * Bring closer parts of structure description. - */ - const asn_CHOICE_specifics_t *specs = - (const asn_CHOICE_specifics_t *)td->specifics; - asn_TYPE_member_t *elements = td->elements; - - /* - * Parts of the structure being constructed. - */ - void *st = *struct_ptr; /* Target structure. */ - asn_struct_ctx_t *ctx; /* Decoder context */ - - ber_tlv_tag_t tlv_tag; /* T from TLV */ - ssize_t tag_len; /* Length of TLV's T */ - asn_dec_rval_t rval; /* Return code from subparsers */ - - ssize_t consumed_myself = 0; /* Consumed bytes from ptr */ - - ASN_DEBUG("Decoding %s as CHOICE", td->name); - - /* - * Create the target structure if it is not present already. - */ - if(st == 0) { - st = *struct_ptr = CALLOC(1, specs->struct_size); - if(st == 0) { - RETURN(RC_FAIL); - } - } - - /* - * Restore parsing context. - */ - ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset); - - /* - * Start to parse where left previously - */ - switch(ctx->phase) { - case 0: - /* - * PHASE 0. - * Check that the set of tags associated with given structure - * perfectly fits our expectations. - */ - - if(tag_mode || td->tags_count) { - rval = ber_check_tags(opt_codec_ctx, td, ctx, ptr, size, - tag_mode, -1, &ctx->left, 0); - if(rval.code != RC_OK) { - ASN_DEBUG("%s tagging check failed: %d", - td->name, rval.code); - return rval; - } - - if(ctx->left >= 0) { - /* ?Substracted below! */ - ctx->left += rval.consumed; - } - ADVANCE(rval.consumed); - } else { - ctx->left = -1; - } - - NEXT_PHASE(ctx); - - ASN_DEBUG("Structure consumes %ld bytes, buffer %ld", - (long)ctx->left, (long)size); - - /* Fall through */ - case 1: - /* - * Fetch the T from TLV. - */ - tag_len = ber_fetch_tag(ptr, LEFT, &tlv_tag); - ASN_DEBUG("In %s CHOICE tag length %d", td->name, (int)tag_len); - switch(tag_len) { - case 0: if(!SIZE_VIOLATION) RETURN(RC_WMORE); - /* Fall through */ - case -1: RETURN(RC_FAIL); - } - - do { - const asn_TYPE_tag2member_t *t2m; - asn_TYPE_tag2member_t key; - - key.el_tag = tlv_tag; - t2m = (const asn_TYPE_tag2member_t *)bsearch(&key, - specs->tag2el, specs->tag2el_count, - sizeof(specs->tag2el[0]), _search4tag); - if(t2m) { - /* - * Found the element corresponding to the tag. - */ - NEXT_PHASE(ctx); - ctx->step = t2m->el_no; - break; - } else if(specs->ext_start == -1) { - ASN_DEBUG("Unexpected tag %s " - "in non-extensible CHOICE %s", - ber_tlv_tag_string(tlv_tag), td->name); - RETURN(RC_FAIL); - } else { - /* Skip this tag */ - ssize_t skip; - - ASN_DEBUG("Skipping unknown tag %s", - ber_tlv_tag_string(tlv_tag)); - - skip = ber_skip_length(opt_codec_ctx, - BER_TLV_CONSTRUCTED(ptr), - (const char *)ptr + tag_len, - LEFT - tag_len); - - switch(skip) { - case 0: if(!SIZE_VIOLATION) RETURN(RC_WMORE); - /* Fall through */ - case -1: RETURN(RC_FAIL); - } - - ADVANCE(skip + tag_len); - RETURN(RC_OK); - } - } while(0); - - case 2: - /* - * PHASE 2. - * Read in the element. - */ - do { - asn_TYPE_member_t *elm;/* CHOICE's element */ - void *memb_ptr; /* Pointer to the member */ - void **memb_ptr2; /* Pointer to that pointer */ - - elm = &elements[ctx->step]; - - /* - * Compute the position of the member inside a structure, - * and also a type of containment (it may be contained - * as pointer or using inline inclusion). - */ - if(elm->flags & ATF_POINTER) { - /* Member is a pointer to another structure */ - memb_ptr2 = (void **)((char *)st + elm->memb_offset); - } else { - /* - * A pointer to a pointer - * holding the start of the structure - */ - memb_ptr = (char *)st + elm->memb_offset; - memb_ptr2 = &memb_ptr; - } - /* Set presence to be able to free it properly at any time */ - _set_present_idx(st, specs->pres_offset, - specs->pres_size, ctx->step + 1); - /* - * Invoke the member fetch routine according to member's type - */ - rval = elm->type->op->ber_decoder(opt_codec_ctx, elm->type, - memb_ptr2, ptr, LEFT, elm->tag_mode); - switch(rval.code) { - case RC_OK: - break; - case RC_WMORE: /* More data expected */ - if(!SIZE_VIOLATION) { - ADVANCE(rval.consumed); - RETURN(RC_WMORE); - } - RETURN(RC_FAIL); - case RC_FAIL: /* Fatal error */ - RETURN(rval.code); - } /* switch(rval) */ - - ADVANCE(rval.consumed); - } while(0); - - NEXT_PHASE(ctx); - - /* Fall through */ - case 3: - ASN_DEBUG("CHOICE %s Leftover: %ld, size = %ld, tm=%d, tc=%d", - td->name, (long)ctx->left, (long)size, - tag_mode, td->tags_count); - - if(ctx->left > 0) { - /* - * The type must be fully decoded - * by the CHOICE member-specific decoder. - */ - RETURN(RC_FAIL); - } - - if(ctx->left == -1 - && !(tag_mode || td->tags_count)) { - /* - * This is an untagged CHOICE. - * It doesn't contain nothing - * except for the member itself, including all its tags. - * The decoding is completed. - */ - NEXT_PHASE(ctx); - break; - } - - /* - * Read in the "end of data chunks"'s. - */ - while(ctx->left < 0) { - ssize_t tl; - - tl = ber_fetch_tag(ptr, LEFT, &tlv_tag); - switch(tl) { - case 0: if(!SIZE_VIOLATION) RETURN(RC_WMORE); - /* Fall through */ - case -1: RETURN(RC_FAIL); - } - - /* - * Expected <0><0>... - */ - if(((const uint8_t *)ptr)[0] == 0) { - if(LEFT < 2) { - if(SIZE_VIOLATION) - RETURN(RC_FAIL); - else - RETURN(RC_WMORE); - } else if(((const uint8_t *)ptr)[1] == 0) { - /* - * Correctly finished with <0><0>. - */ - ADVANCE(2); - ctx->left++; - continue; - } - } else { - ASN_DEBUG("Unexpected continuation in %s", - td->name); - RETURN(RC_FAIL); - } - - /* UNREACHABLE */ - } - - NEXT_PHASE(ctx); - case 4: - /* No meaningful work here */ - break; - } - - RETURN(RC_OK); -} - -asn_enc_rval_t -CHOICE_encode_der(const asn_TYPE_descriptor_t *td, const void *sptr, - int tag_mode, ber_tlv_tag_t tag, asn_app_consume_bytes_f *cb, - void *app_key) { - const asn_CHOICE_specifics_t *specs = (const asn_CHOICE_specifics_t *)td->specifics; - asn_TYPE_member_t *elm; /* CHOICE element */ - asn_enc_rval_t erval = {0,0,0}; - const void *memb_ptr; - size_t computed_size = 0; - unsigned present; - - if(!sptr) ASN__ENCODE_FAILED; - - ASN_DEBUG("%s %s as CHOICE", - cb?"Encoding":"Estimating", td->name); - - present = _fetch_present_idx(sptr, - specs->pres_offset, specs->pres_size); - - /* - * If the structure was not initialized, it cannot be encoded: - * can't deduce what to encode in the choice type. - */ - if(present == 0 || present > td->elements_count) { - if(present == 0 && td->elements_count == 0) { - /* The CHOICE is empty?! */ - erval.encoded = 0; - ASN__ENCODED_OK(erval); - } - ASN__ENCODE_FAILED; - } - - /* - * Seek over the present member of the structure. - */ - elm = &td->elements[present-1]; - if(elm->flags & ATF_POINTER) { - memb_ptr = - *(const void *const *)((const char *)sptr + elm->memb_offset); - if(memb_ptr == 0) { - if(elm->optional) { - erval.encoded = 0; - ASN__ENCODED_OK(erval); - } - /* Mandatory element absent */ - ASN__ENCODE_FAILED; - } - } else { - memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); - } - - /* - * If the CHOICE itself is tagged EXPLICIT: - * T ::= [2] EXPLICIT CHOICE { ... } - * Then emit the appropriate tags. - */ - if(tag_mode == 1 || td->tags_count) { - /* - * For this, we need to pre-compute the member. - */ - ssize_t ret; - - /* Encode member with its tag */ - erval = elm->type->op->der_encoder(elm->type, memb_ptr, - elm->tag_mode, elm->tag, 0, 0); - if(erval.encoded == -1) - return erval; - - /* Encode CHOICE with parent or my own tag */ - ret = der_write_tags(td, erval.encoded, tag_mode, 1, tag, - cb, app_key); - if(ret == -1) - ASN__ENCODE_FAILED; - computed_size += ret; - } - - /* - * Encode the single underlying member. - */ - erval = elm->type->op->der_encoder(elm->type, memb_ptr, - elm->tag_mode, elm->tag, cb, app_key); - if(erval.encoded == -1) - return erval; - - ASN_DEBUG("Encoded CHOICE member in %ld bytes (+%ld)", - (long)erval.encoded, (long)computed_size); - - erval.encoded += computed_size; - - return erval; -} - -ber_tlv_tag_t -CHOICE_outmost_tag(const asn_TYPE_descriptor_t *td, const void *ptr, int tag_mode, ber_tlv_tag_t tag) { - const asn_CHOICE_specifics_t *specs = (const asn_CHOICE_specifics_t *)td->specifics; - unsigned present; - - assert(tag_mode == 0); (void)tag_mode; - assert(tag == 0); (void)tag; - - /* - * Figure out which CHOICE element is encoded. - */ - present = _fetch_present_idx(ptr, specs->pres_offset, specs->pres_size); - - if(present > 0 && present <= td->elements_count) { - const asn_TYPE_member_t *elm = &td->elements[present-1]; - const void *memb_ptr; - - if(elm->flags & ATF_POINTER) { - memb_ptr = *(const void * const *) - ((const char *)ptr + elm->memb_offset); - } else { - memb_ptr = (const void *) - ((const char *)ptr + elm->memb_offset); - } - - return asn_TYPE_outmost_tag(elm->type, memb_ptr, - elm->tag_mode, elm->tag); - } else { - return (ber_tlv_tag_t)-1; - } -} - -int -CHOICE_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const asn_CHOICE_specifics_t *specs = - (const asn_CHOICE_specifics_t *)td->specifics; - unsigned present; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - /* - * Figure out which CHOICE element is encoded. - */ - present = _fetch_present_idx(sptr, specs->pres_offset,specs->pres_size); - if(present > 0 && present <= td->elements_count) { - asn_TYPE_member_t *elm = &td->elements[present-1]; - const void *memb_ptr; - - if(elm->flags & ATF_POINTER) { - memb_ptr = *(const void * const *)((const char *)sptr + elm->memb_offset); - if(!memb_ptr) { - if(elm->optional) - return 0; - ASN__CTFAIL(app_key, td, sptr, - "%s: mandatory CHOICE element %s absent (%s:%d)", - td->name, elm->name, __FILE__, __LINE__); - return -1; - } - } else { - memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); - } - - if(elm->encoding_constraints.general_constraints) { - return elm->encoding_constraints.general_constraints(elm->type, memb_ptr, - ctfailcb, app_key); - } else { - return elm->type->encoding_constraints.general_constraints(elm->type, - memb_ptr, ctfailcb, app_key); - } - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: no CHOICE element given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -#undef XER_ADVANCE -#define XER_ADVANCE(num_bytes) do { \ - size_t num = num_bytes; \ - buf_ptr = (const void *)(((const char *)buf_ptr) + num); \ - size -= num; \ - consumed_myself += num; \ - } while(0) - -/* - * Decode the XER (XML) data. - */ -asn_dec_rval_t -CHOICE_decode_xer(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **struct_ptr, - const char *opt_mname, const void *buf_ptr, size_t size) { - /* - * Bring closer parts of structure description. - */ - const asn_CHOICE_specifics_t *specs = (const asn_CHOICE_specifics_t *)td->specifics; - const char *xml_tag = opt_mname ? opt_mname : td->xml_tag; - - /* - * Parts of the structure being constructed. - */ - void *st = *struct_ptr; /* Target structure. */ - asn_struct_ctx_t *ctx; /* Decoder context */ - - asn_dec_rval_t rval; /* Return value of a decoder */ - ssize_t consumed_myself = 0; /* Consumed bytes from ptr */ - size_t edx; /* Element index */ - - /* - * Create the target structure if it is not present already. - */ - if(st == 0) { - st = *struct_ptr = CALLOC(1, specs->struct_size); - if(st == 0) RETURN(RC_FAIL); - } - - /* - * Restore parsing context. - */ - ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset); - if(ctx->phase == 0 && !*xml_tag) - ctx->phase = 1; /* Skip the outer tag checking phase */ - - /* - * Phases of XER/XML processing: - * Phase 0: Check that the opening tag matches our expectations. - * Phase 1: Processing body and reacting on closing tag. - * Phase 2: Processing inner type. - * Phase 3: Only waiting for closing tag. - * Phase 4: Skipping unknown extensions. - * Phase 5: PHASED OUT - */ - for(edx = ctx->step; ctx->phase <= 4;) { - pxer_chunk_type_e ch_type; /* XER chunk type */ - ssize_t ch_size; /* Chunk size */ - xer_check_tag_e tcv; /* Tag check value */ - asn_TYPE_member_t *elm; - - /* - * Go inside the member. - */ - if(ctx->phase == 2) { - asn_dec_rval_t tmprval; - void *memb_ptr; /* Pointer to the member */ - void **memb_ptr2; /* Pointer to that pointer */ - unsigned old_present; - - elm = &td->elements[edx]; - - if(elm->flags & ATF_POINTER) { - /* Member is a pointer to another structure */ - memb_ptr2 = (void **)((char *)st - + elm->memb_offset); - } else { - memb_ptr = (char *)st + elm->memb_offset; - memb_ptr2 = &memb_ptr; - } - - /* Start/Continue decoding the inner member */ - tmprval = elm->type->op->xer_decoder(opt_codec_ctx, - elm->type, memb_ptr2, elm->name, - buf_ptr, size); - XER_ADVANCE(tmprval.consumed); - ASN_DEBUG("XER/CHOICE: itdf: [%s] code=%d", - elm->type->name, tmprval.code); - old_present = _fetch_present_idx(st, - specs->pres_offset, specs->pres_size); - assert(old_present == 0 || old_present == edx + 1); - /* Record what we've got */ - _set_present_idx(st, - specs->pres_offset, specs->pres_size, edx + 1); - if(tmprval.code != RC_OK) - RETURN(tmprval.code); - ctx->phase = 3; - /* Fall through */ - } - - /* No need to wait for closing tag; special mode. */ - if(ctx->phase == 3 && !*xml_tag) { - ctx->phase = 5; /* Phase out */ - RETURN(RC_OK); - } - - /* - * Get the next part of the XML stream. - */ - ch_size = xer_next_token(&ctx->context, buf_ptr, size, &ch_type); - if(ch_size == -1) { - RETURN(RC_FAIL); - } else { - switch(ch_type) { - case PXER_WMORE: - RETURN(RC_WMORE); - case PXER_COMMENT: /* Got XML comment */ - case PXER_TEXT: /* Ignore free-standing text */ - XER_ADVANCE(ch_size); /* Skip silently */ - continue; - case PXER_TAG: - break; /* Check the rest down there */ - } - } - - tcv = xer_check_tag(buf_ptr, ch_size, xml_tag); - ASN_DEBUG("XER/CHOICE checked [%c%c%c%c] vs [%s], tcv=%d", - ch_size>0?((const uint8_t *)buf_ptr)[0]:'?', - ch_size>1?((const uint8_t *)buf_ptr)[1]:'?', - ch_size>2?((const uint8_t *)buf_ptr)[2]:'?', - ch_size>3?((const uint8_t *)buf_ptr)[3]:'?', - xml_tag, tcv); - - /* Skip the extensions section */ - if(ctx->phase == 4) { - ASN_DEBUG("skip_unknown(%d, %ld)", - tcv, (long)ctx->left); - switch(xer_skip_unknown(tcv, &ctx->left)) { - case -1: - ctx->phase = 5; - RETURN(RC_FAIL); - case 1: - ctx->phase = 3; - /* Fall through */ - case 0: - XER_ADVANCE(ch_size); - continue; - case 2: - ctx->phase = 3; - break; - } - } - - switch(tcv) { - case XCT_BOTH: - break; /* No CHOICE? */ - case XCT_CLOSING: - if(ctx->phase != 3) - break; - XER_ADVANCE(ch_size); - ctx->phase = 5; /* Phase out */ - RETURN(RC_OK); - case XCT_OPENING: - if(ctx->phase == 0) { - XER_ADVANCE(ch_size); - ctx->phase = 1; /* Processing body phase */ - continue; - } - /* Fall through */ - case XCT_UNKNOWN_OP: - case XCT_UNKNOWN_BO: - - if(ctx->phase != 1) - break; /* Really unexpected */ - - /* - * Search which inner member corresponds to this tag. - */ - for(edx = 0; edx < td->elements_count; edx++) { - elm = &td->elements[edx]; - tcv = xer_check_tag(buf_ptr,ch_size,elm->name); - switch(tcv) { - case XCT_BOTH: - case XCT_OPENING: - /* - * Process this member. - */ - ctx->step = edx; - ctx->phase = 2; - break; - case XCT_UNKNOWN_OP: - case XCT_UNKNOWN_BO: - continue; - default: - edx = td->elements_count; - break; /* Phase out */ - } - break; - } - if(edx != td->elements_count) - continue; - - /* It is expected extension */ - if(specs->ext_start != -1) { - ASN_DEBUG("Got anticipated extension"); - /* - * Check for (XCT_BOTH or XCT_UNKNOWN_BO) - * By using a mask. Only record a pure - * tags. - */ - if(tcv & XCT_CLOSING) { - /* Found without body */ - ctx->phase = 3; /* Terminating */ - } else { - ctx->left = 1; - ctx->phase = 4; /* Skip ...'s */ - } - XER_ADVANCE(ch_size); - continue; - } - - /* Fall through */ - default: - break; - } - - ASN_DEBUG("Unexpected XML tag [%c%c%c%c] in CHOICE [%s]" - " (ph=%d, tag=%s)", - ch_size>0?((const uint8_t *)buf_ptr)[0]:'?', - ch_size>1?((const uint8_t *)buf_ptr)[1]:'?', - ch_size>2?((const uint8_t *)buf_ptr)[2]:'?', - ch_size>3?((const uint8_t *)buf_ptr)[3]:'?', - td->name, ctx->phase, xml_tag); - break; - } - - ctx->phase = 5; /* Phase out, just in case */ - RETURN(RC_FAIL); -} - - -asn_enc_rval_t -CHOICE_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, - enum xer_encoder_flags_e flags, asn_app_consume_bytes_f *cb, - void *app_key) { - const asn_CHOICE_specifics_t *specs = - (const asn_CHOICE_specifics_t *)td->specifics; - asn_enc_rval_t er = {0,0,0}; - unsigned present = 0; - - if(!sptr) - ASN__ENCODE_FAILED; - - /* - * Figure out which CHOICE element is encoded. - */ - present = _fetch_present_idx(sptr, specs->pres_offset,specs->pres_size); - - if(present == 0 || present > td->elements_count) { - ASN__ENCODE_FAILED; - } else { - asn_enc_rval_t tmper = {0,0,0}; - asn_TYPE_member_t *elm = &td->elements[present-1]; - const void *memb_ptr = NULL; - const char *mname = elm->name; - unsigned int mlen = strlen(mname); - - if(elm->flags & ATF_POINTER) { - memb_ptr = - *(const void *const *)((const char *)sptr + elm->memb_offset); - if(!memb_ptr) ASN__ENCODE_FAILED; - } else { - memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); - } - - er.encoded = 0; - - if(!(flags & XER_F_CANONICAL)) ASN__TEXT_INDENT(1, ilevel); - ASN__CALLBACK3("<", 1, mname, mlen, ">", 1); - - tmper = elm->type->op->xer_encoder(elm->type, memb_ptr, - ilevel + 1, flags, cb, app_key); - if(tmper.encoded == -1) return tmper; - er.encoded += tmper.encoded; - - ASN__CALLBACK3("", 1); - } - - if(!(flags & XER_F_CANONICAL)) ASN__TEXT_INDENT(1, ilevel - 1); - - ASN__ENCODED_OK(er); -cb_failed: - ASN__ENCODE_FAILED; -} - -asn_dec_rval_t -CHOICE_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, - asn_per_data_t *pd) { - const asn_CHOICE_specifics_t *specs = - (const asn_CHOICE_specifics_t *)td->specifics; - asn_dec_rval_t rv; - const asn_per_constraint_t *ct; - asn_TYPE_member_t *elm; /* CHOICE's element */ - void *memb_ptr; - void **memb_ptr2; - void *st = *sptr; - int value; - - if(ASN__STACK_OVERFLOW_CHECK(opt_codec_ctx)) - ASN__DECODE_FAILED; - - /* - * Create the target structure if it is not present already. - */ - if(!st) { - st = *sptr = CALLOC(1, specs->struct_size); - if(!st) ASN__DECODE_FAILED; - } - - if(constraints) ct = &constraints->value; - else if(td->encoding_constraints.per_constraints) ct = &td->encoding_constraints.per_constraints->value; - else ct = 0; - - if(ct && ct->flags & APC_EXTENSIBLE) { - value = per_get_few_bits(pd, 1); - if(value < 0) ASN__DECODE_STARVED; - if(value) ct = 0; /* Not restricted */ - } - - if(ct && ct->range_bits >= 0) { - value = per_get_few_bits(pd, ct->range_bits); - if(value < 0) ASN__DECODE_STARVED; - ASN_DEBUG("CHOICE %s got index %d in range %d", - td->name, value, ct->range_bits); - if(value > ct->upper_bound) - ASN__DECODE_FAILED; - } else { - if(specs->ext_start == -1) - ASN__DECODE_FAILED; - value = uper_get_nsnnwn(pd); - if(value < 0) ASN__DECODE_STARVED; - value += specs->ext_start; - if((unsigned)value >= td->elements_count) - ASN__DECODE_FAILED; - } - - /* Adjust if canonical order is different from natural order */ - if(specs->from_canonical_order) { - ASN_DEBUG("CHOICE presence from wire %d", value); - value = specs->from_canonical_order[value]; - ASN_DEBUG("CHOICE presence index effective %d", value); - } - - /* Set presence to be able to free it later */ - _set_present_idx(st, specs->pres_offset, specs->pres_size, value + 1); - - elm = &td->elements[value]; - if(elm->flags & ATF_POINTER) { - /* Member is a pointer to another structure */ - memb_ptr2 = (void **)((char *)st + elm->memb_offset); - } else { - memb_ptr = (char *)st + elm->memb_offset; - memb_ptr2 = &memb_ptr; - } - ASN_DEBUG("Discovered CHOICE %s encodes %s", td->name, elm->name); - - if(ct && ct->range_bits >= 0) { - rv = elm->type->op->uper_decoder(opt_codec_ctx, elm->type, - elm->encoding_constraints.per_constraints, memb_ptr2, pd); - } else { - rv = uper_open_type_get(opt_codec_ctx, elm->type, - elm->encoding_constraints.per_constraints, memb_ptr2, pd); - } - - if(rv.code != RC_OK) - ASN_DEBUG("Failed to decode %s in %s (CHOICE) %d", - elm->name, td->name, rv.code); - return rv; -} - -asn_enc_rval_t -CHOICE_encode_uper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, const void *sptr, - asn_per_outp_t *po) { - const asn_CHOICE_specifics_t *specs = (const asn_CHOICE_specifics_t *)td->specifics; - asn_TYPE_member_t *elm; /* CHOICE's element */ - const asn_per_constraint_t *ct; - const void *memb_ptr; - unsigned present; - int present_enc; - - if(!sptr) ASN__ENCODE_FAILED; - - ASN_DEBUG("Encoding %s as CHOICE", td->name); - - if(constraints) ct = &constraints->value; - else if(td->encoding_constraints.per_constraints) - ct = &td->encoding_constraints.per_constraints->value; - else ct = 0; - - present = _fetch_present_idx(sptr, specs->pres_offset, specs->pres_size); - - /* - * If the structure was not initialized properly, it cannot be encoded: - * can't deduce what to encode in the choice type. - */ - if(present == 0 || present > td->elements_count) - ASN__ENCODE_FAILED; - else - present--; - - ASN_DEBUG("Encoding %s CHOICE element %d", td->name, present); - - /* Adjust if canonical order is different from natural order */ - if(specs->to_canonical_order) - present_enc = specs->to_canonical_order[present]; - else - present_enc = present; - - if(ct && ct->range_bits >= 0) { - if(present_enc < ct->lower_bound - || present_enc > ct->upper_bound) { - if(ct->flags & APC_EXTENSIBLE) { - ASN_DEBUG( - "CHOICE member %d (enc %d) is an extension (%ld..%ld)", - present, present_enc, ct->lower_bound, ct->upper_bound); - if(per_put_few_bits(po, 1, 1)) - ASN__ENCODE_FAILED; - } else { - ASN__ENCODE_FAILED; - } - ct = 0; - } - } - if(ct && ct->flags & APC_EXTENSIBLE) { - ASN_DEBUG("CHOICE member %d (enc %d) is not an extension (%ld..%ld)", - present, present_enc, ct->lower_bound, ct->upper_bound); - if(per_put_few_bits(po, 0, 1)) - ASN__ENCODE_FAILED; - } - - - elm = &td->elements[present]; - ASN_DEBUG("CHOICE member \"%s\" %d (as %d)", elm->name, present, - present_enc); - if(elm->flags & ATF_POINTER) { - /* Member is a pointer to another structure */ - memb_ptr = - *(const void *const *)((const char *)sptr + elm->memb_offset); - if(!memb_ptr) ASN__ENCODE_FAILED; - } else { - memb_ptr = (const char *)sptr + elm->memb_offset; - } - - if(ct && ct->range_bits >= 0) { - if(per_put_few_bits(po, present_enc, ct->range_bits)) - ASN__ENCODE_FAILED; - - return elm->type->op->uper_encoder( - elm->type, elm->encoding_constraints.per_constraints, memb_ptr, po); - } else { - asn_enc_rval_t rval = {0,0,0}; - if(specs->ext_start == -1) ASN__ENCODE_FAILED; - if(uper_put_nsnnwn(po, present_enc - specs->ext_start)) - ASN__ENCODE_FAILED; - if(uper_open_type_put(elm->type, - elm->encoding_constraints.per_constraints, - memb_ptr, po)) - ASN__ENCODE_FAILED; - rval.encoded = 0; - ASN__ENCODED_OK(rval); - } -} - -asn_dec_rval_t -CHOICE_decode_aper(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, asn_per_data_t *pd) { - const asn_CHOICE_specifics_t *specs = (const asn_CHOICE_specifics_t *)td->specifics; - asn_dec_rval_t rv; - const asn_per_constraint_t *ct; - const asn_per_constraint_t *ext_ct = NULL; - asn_TYPE_member_t *elm; /* CHOICE's element */ - void *memb_ptr; - void **memb_ptr2; - void *st = *sptr; - int value; - - if(ASN__STACK_OVERFLOW_CHECK(opt_codec_ctx)) - ASN__DECODE_FAILED; - - /* - * Create the target structure if it is not present already. - */ - if(!st) { - st = *sptr = CALLOC(1, specs->struct_size); - if(!st) ASN__DECODE_FAILED; - } - - if(constraints) ct = &constraints->value; - else if(td->encoding_constraints.per_constraints) - ct = &td->encoding_constraints.per_constraints->value; - else ct = 0; - - if(ct && ct->flags & APC_EXTENSIBLE) { - value = per_get_few_bits(pd, 1); - if(value < 0) ASN__DECODE_STARVED; - if(value) { - ext_ct = ct; - ct = 0; /* Not restricted */ - } - } - - - if(ct && ct->range_bits >= 0) { - value = per_get_few_bits(pd, ct->range_bits); - if(value < 0) ASN__DECODE_STARVED; - ASN_DEBUG("CHOICE %s got index %d in range %d", - td->name, value, ct->range_bits); - if(value > ct->upper_bound) - ASN__DECODE_FAILED; - } else { - if(specs->ext_start == -1) - ASN__DECODE_FAILED; - value = aper_get_nsnnwn(pd, ext_ct->range_bits); - if(value < 0) ASN__DECODE_STARVED; - value += specs->ext_start; - if((unsigned)value >= td->elements_count) - ASN__DECODE_FAILED; - } - - /* Adjust if canonical order is different from natural order */ - if(specs->from_canonical_order) - value = specs->from_canonical_order[value]; - - /* Set presence to be able to free it later */ - _set_present_idx(st, specs->pres_offset, specs->pres_size, value + 1); - - elm = &td->elements[value]; - if(elm->flags & ATF_POINTER) { - /* Member is a pointer to another structure */ - memb_ptr2 = (void **)((char *)st + elm->memb_offset); - } else { - memb_ptr = (char *)st + elm->memb_offset; - memb_ptr2 = &memb_ptr; - } - ASN_DEBUG("Discovered CHOICE %s encodes %s", td->name, elm->name); - - if(ct && ct->range_bits >= 0) { - rv = elm->type->op->aper_decoder(opt_codec_ctx, elm->type, - elm->encoding_constraints.per_constraints, memb_ptr2, pd); - } else { - rv = aper_open_type_get(opt_codec_ctx, elm->type, - elm->encoding_constraints.per_constraints, memb_ptr2, pd); - } - - if(rv.code != RC_OK) - ASN_DEBUG("Failed to decode %s in %s (CHOICE) %d", - elm->name, td->name, rv.code); - return rv; -} - -asn_enc_rval_t -CHOICE_encode_aper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_per_outp_t *po) { - const asn_CHOICE_specifics_t *specs = (const asn_CHOICE_specifics_t *)td->specifics; - const asn_TYPE_member_t *elm; /* CHOICE's element */ - const asn_per_constraint_t *ct = NULL; - const asn_per_constraint_t *ext_ct = NULL; - const void *memb_ptr; - unsigned present; - int present_enc; - - if(!sptr) ASN__ENCODE_FAILED; - - ASN_DEBUG("Encoding %s as CHOICE using ALIGNED PER", td->name); - - if(constraints) ct = &constraints->value; - else if(td->encoding_constraints.per_constraints) - ct = &td->encoding_constraints.per_constraints->value; - else ct = NULL; - - present = _fetch_present_idx(sptr, - specs->pres_offset, specs->pres_size); - - /* - * If the structure was not initialized properly, it cannot be encoded: - * can't deduce what to encode in the choice type. - */ - if(present <= 0 || (unsigned)present > td->elements_count) - ASN__ENCODE_FAILED; - else - present--; - - /* Adjust if canonical order is different from natural order */ - if(specs->to_canonical_order) - present_enc = specs->to_canonical_order[present]; - else - present_enc = present; - - ASN_DEBUG("Encoding %s CHOICE element %d", td->name, present); - - if(ct && (ct->range_bits >= 0)) { - // Value is not within the range of the primary values ? - if(present < ct->lower_bound || present > ct->upper_bound) { - if(ct->flags & APC_EXTENSIBLE) { - ASN_DEBUG("CHOICE member %d (enc %d) is an extension (%ld..%ld)", - present, present_enc, ct->lower_bound, ct->upper_bound); - // X691/23.5 Extension marker = 1 - if(per_put_few_bits(po, 1, 1)) { - ASN__ENCODE_FAILED; - } - } else { - ASN__ENCODE_FAILED; - } - // no more need of constraint. - ext_ct = ct; - ct = NULL; - } - } - - if(ct && (ct->flags & APC_EXTENSIBLE)) { - ASN_DEBUG("CHOICE member %d (enc %d) is not an extension (%ld..%ld)", - present, present, ct->lower_bound, ct->upper_bound); - // X691.23.5 Extension marker = 0 - if(per_put_few_bits(po, 0, 1)) { - ASN__ENCODE_FAILED; - } - } - - elm = &td->elements[present]; - if(elm->flags & ATF_POINTER) { - /* Member is a pointer to another structure */ - memb_ptr = *(const void *const *)((const char *)sptr + elm->memb_offset); - if(!memb_ptr) ASN__ENCODE_FAILED; - } else { - memb_ptr = (const char *)sptr + elm->memb_offset; - } - - if(ct && (ct->range_bits >= 0)) { - // By construction (ct != 0), the alternative value is a non extended one. - // X691/23.7 X691/23.6 alternative value encoded as a range_bits bits value. - if(per_put_few_bits(po, present_enc, ct->range_bits)) - ASN__ENCODE_FAILED; - - return elm->type->op->aper_encoder(elm->type, elm->encoding_constraints.per_constraints, - memb_ptr, po); - } else { - asn_enc_rval_t rval = {0,0,0}; - if(specs->ext_start == -1) - ASN__ENCODE_FAILED; - // X691/23.8 normally encoded as a small non negative whole number - - if(ext_ct && aper_put_nsnnwn(po, ext_ct->range_bits, present_enc - specs->ext_start)) - ASN__ENCODE_FAILED; - if(aper_open_type_put(elm->type, elm->encoding_constraints.per_constraints, - memb_ptr, po)) - ASN__ENCODE_FAILED; - rval.encoded = 0; - ASN__ENCODED_OK(rval); - } -} - -int -CHOICE_print(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, - asn_app_consume_bytes_f *cb, void *app_key) { - const asn_CHOICE_specifics_t *specs = (const asn_CHOICE_specifics_t *)td->specifics; - unsigned present; - - if(!sptr) return (cb("", 8, app_key) < 0) ? -1 : 0; - - /* - * Figure out which CHOICE element is encoded. - */ - present = _fetch_present_idx(sptr, specs->pres_offset,specs->pres_size); - - /* - * Print that element. - */ - if(present > 0 && present <= td->elements_count) { - asn_TYPE_member_t *elm = &td->elements[present-1]; - const void *memb_ptr; - - if(elm->flags & ATF_POINTER) { - memb_ptr = *(const void * const *)((const char *)sptr + elm->memb_offset); - if(!memb_ptr) return (cb("", 8, app_key) < 0) ? -1 : 0; - } else { - memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); - } - - /* Print member's name and stuff */ - if(0) { - if(cb(elm->name, strlen(elm->name), app_key) < 0 - || cb(": ", 2, app_key) < 0) - return -1; - } - - return elm->type->op->print_struct(elm->type, memb_ptr, ilevel, - cb, app_key); - } else { - return (cb("", 8, app_key) < 0) ? -1 : 0; - } -} - -void -CHOICE_free(const asn_TYPE_descriptor_t *td, void *ptr, - enum asn_struct_free_method method) { - const asn_CHOICE_specifics_t *specs = - (const asn_CHOICE_specifics_t *)td->specifics; - unsigned present; - - if(!td || !ptr) - return; - - ASN_DEBUG("Freeing %s as CHOICE", td->name); - - /* - * Figure out which CHOICE element is encoded. - */ - present = _fetch_present_idx(ptr, specs->pres_offset, specs->pres_size); - - /* - * Free that element. - */ - if(present > 0 && present <= td->elements_count) { - asn_TYPE_member_t *elm = &td->elements[present-1]; - void *memb_ptr; - - if(elm->flags & ATF_POINTER) { - memb_ptr = *(void **)((char *)ptr + elm->memb_offset); - if(memb_ptr) - ASN_STRUCT_FREE(*elm->type, memb_ptr); - } else { - memb_ptr = (void *)((char *)ptr + elm->memb_offset); - ASN_STRUCT_FREE_CONTENTS_ONLY(*elm->type, memb_ptr); - } - } - - switch(method) { - case ASFM_FREE_EVERYTHING: - FREEMEM(ptr); - break; - case ASFM_FREE_UNDERLYING: - break; - case ASFM_FREE_UNDERLYING_AND_RESET: - memset(ptr, 0, specs->struct_size); - break; - } -} - - -/* - * The following functions functions offer protection against -fshort-enums, - * compatible with little- and big-endian machines. - * If assertion is triggered, either disable -fshort-enums, or add an entry - * here with the ->pres_size of your target stracture. - * Unless the target structure is packed, the ".present" member - * is guaranteed to be aligned properly. ASN.1 compiler itself does not - * produce packed code. - */ -static unsigned -_fetch_present_idx(const void *struct_ptr, unsigned pres_offset, - unsigned pres_size) { - const void *present_ptr; - unsigned present; - - present_ptr = ((const char *)struct_ptr) + pres_offset; - - switch(pres_size) { - case sizeof(int): present = *(const unsigned int *)present_ptr; break; - case sizeof(short): present = *(const unsigned short *)present_ptr; break; - case sizeof(char): present = *(const unsigned char *)present_ptr; break; - default: - /* ANSI C mandates enum to be equivalent to integer */ - assert(pres_size != sizeof(int)); - return 0; /* If not aborted, pass back safe value */ - } - - return present; -} - -static void -_set_present_idx(void *struct_ptr, unsigned pres_offset, unsigned pres_size, - unsigned present) { - void *present_ptr; - present_ptr = ((char *)struct_ptr) + pres_offset; - - switch(pres_size) { - case sizeof(int): *(unsigned int *)present_ptr = present; break; - case sizeof(short): *(unsigned short *)present_ptr = present; break; - case sizeof(char): *(unsigned char *)present_ptr = present; break; - default: - /* ANSI C mandates enum to be equivalent to integer */ - assert(pres_size != sizeof(int)); - } -} - -static const void * -_get_member_ptr(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_TYPE_member_t **elm_ptr, unsigned *present_out) { - const asn_CHOICE_specifics_t *specs = - (const asn_CHOICE_specifics_t *)td->specifics; - unsigned present; - - if(!sptr) { - *elm_ptr = NULL; - *present_out = 0; - return NULL; - } - - /* - * Figure out which CHOICE element is encoded. - */ - present = _fetch_present_idx(sptr, specs->pres_offset, specs->pres_size); - *present_out = present; - - /* - * The presence index is intentionally 1-based to avoid - * treating zeroed structure as a valid one. - */ - if(present > 0 && present <= td->elements_count) { - asn_TYPE_member_t *const elm = &td->elements[present - 1]; - const void *memb_ptr; - - if(elm->flags & ATF_POINTER) { - memb_ptr = - *(const void *const *)((const char *)sptr + elm->memb_offset); - } else { - memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); - } - *elm_ptr = elm; - return memb_ptr; - } else { - *elm_ptr = NULL; - return NULL; - } - -} - -int -CHOICE_compare(const asn_TYPE_descriptor_t *td, const void *aptr, const void *bptr) { - asn_TYPE_member_t *aelm; - asn_TYPE_member_t *belm; - unsigned apresent = 0; - unsigned bpresent = 0; - const void *amember = _get_member_ptr(td, aptr, &aelm, &apresent); - const void *bmember = _get_member_ptr(td, bptr, &belm, &bpresent); - - if(amember && bmember) { - if(apresent == bpresent) { - assert(aelm == belm); - return aelm->type->op->compare_struct(aelm->type, amember, bmember); - } else if(apresent < bpresent) { - return -1; - } else { - return 1; - } - } else if(!amember) { - return -1; - } else { - return 1; - } -} - -/* - * Return the 1-based choice variant presence index. - * Returns 0 in case of error. - */ -unsigned -CHOICE_variant_get_presence(const asn_TYPE_descriptor_t *td, const void *sptr) { - const asn_CHOICE_specifics_t *specs = - (const asn_CHOICE_specifics_t *)td->specifics; - return _fetch_present_idx(sptr, specs->pres_offset, specs->pres_size); -} - -/* - * Sets or resets the 1-based choice variant presence index. - * In case a previous index is not zero, the currently selected structure - * member is freed and zeroed-out first. - * Returns 0 on success and -1 on error. - */ -int -CHOICE_variant_set_presence(const asn_TYPE_descriptor_t *td, void *sptr, - unsigned present) { - const asn_CHOICE_specifics_t *specs = - (const asn_CHOICE_specifics_t *)td->specifics; - unsigned old_present; - - if(!sptr) { - return -1; - } - - if(present > td->elements_count) - return -1; - - old_present = - _fetch_present_idx(sptr, specs->pres_offset, specs->pres_size); - if(present == old_present) - return 0; - - if(old_present != 0) { - assert(old_present <= td->elements_count); - ASN_STRUCT_RESET(*td, sptr); - } - - _set_present_idx(sptr, specs->pres_offset, specs->pres_size, present); - - return 0; -} - - -asn_random_fill_result_t -CHOICE_random_fill(const asn_TYPE_descriptor_t *td, void **sptr, - const asn_encoding_constraints_t *constr, - size_t max_length) { - const asn_CHOICE_specifics_t *specs = - (const asn_CHOICE_specifics_t *)td->specifics; - asn_random_fill_result_t res; - asn_random_fill_result_t result_failed = {ARFILL_FAILED, 0}; - asn_random_fill_result_t result_skipped = {ARFILL_SKIPPED, 0}; - const asn_TYPE_member_t *elm; - unsigned present; - void *memb_ptr; /* Pointer to the member */ - void **memb_ptr2; /* Pointer to that pointer */ - void *st = *sptr; - - if(max_length == 0) return result_skipped; - - (void)constr; - - if(st == NULL) { - st = CALLOC(1, specs->struct_size); - if(st == NULL) { - return result_failed; - } - } - - present = asn_random_between(1, td->elements_count); - elm = &td->elements[present - 1]; - - if(elm->flags & ATF_POINTER) { - /* Member is a pointer to another structure */ - memb_ptr2 = (void **)((char *)st + elm->memb_offset); - } else { - memb_ptr = (char *)st + elm->memb_offset; - memb_ptr2 = &memb_ptr; - } - - res = elm->type->op->random_fill(elm->type, memb_ptr2, - &elm->encoding_constraints, max_length); - _set_present_idx(st, specs->pres_offset, specs->pres_size, present); - if(res.code == ARFILL_OK) { - *sptr = st; - } else { - if(st == *sptr) { - ASN_STRUCT_RESET(*td, st); - } else { - ASN_STRUCT_FREE(*td, st); - } - } - - return res; -} - - -asn_TYPE_operation_t asn_OP_CHOICE = { - CHOICE_free, - CHOICE_print, - CHOICE_compare, - CHOICE_decode_ber, - CHOICE_encode_der, - CHOICE_decode_xer, - CHOICE_encode_xer, -#ifdef ASN_DISABLE_OER_SUPPORT - 0, - 0, -#else - CHOICE_decode_oer, - CHOICE_encode_oer, -#endif /* ASN_DISABLE_OER_SUPPORT */ -#ifdef ASN_DISABLE_PER_SUPPORT - 0, - 0, - 0, - 0, -#else - CHOICE_decode_uper, - CHOICE_encode_uper, - CHOICE_decode_aper, - CHOICE_encode_aper, -#endif /* ASN_DISABLE_PER_SUPPORT */ - CHOICE_random_fill, - CHOICE_outmost_tag -}; diff --git a/e2sim/previous/ASN1c/constr_CHOICE.h b/e2sim/previous/ASN1c/constr_CHOICE.h deleted file mode 100644 index cd6c7e1..0000000 --- a/e2sim/previous/ASN1c/constr_CHOICE.h +++ /dev/null @@ -1,98 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef _CONSTR_CHOICE_H_ -#define _CONSTR_CHOICE_H_ - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct asn_CHOICE_specifics_s { - /* - * Target structure description. - */ - unsigned struct_size; /* Size of the target structure. */ - unsigned ctx_offset; /* Offset of the asn_codec_ctx_t member */ - unsigned pres_offset; /* Identifier of the present member */ - unsigned pres_size; /* Size of the identifier (enum) */ - - /* - * Tags to members mapping table. - */ - const asn_TYPE_tag2member_t *tag2el; - unsigned tag2el_count; - - /* Canonical ordering of CHOICE elements, for PER */ - const unsigned *to_canonical_order; - const unsigned *from_canonical_order; - - /* - * Extensions-related stuff. - */ - signed ext_start; /* First member of extensions, or -1 */ -} asn_CHOICE_specifics_t; - -/* - * A set specialized functions dealing with the CHOICE type. - */ -asn_struct_free_f CHOICE_free; -asn_struct_print_f CHOICE_print; -asn_struct_compare_f CHOICE_compare; -asn_constr_check_f CHOICE_constraint; -ber_type_decoder_f CHOICE_decode_ber; -der_type_encoder_f CHOICE_encode_der; -xer_type_decoder_f CHOICE_decode_xer; -xer_type_encoder_f CHOICE_encode_xer; -oer_type_decoder_f CHOICE_decode_oer; -oer_type_encoder_f CHOICE_encode_oer; -per_type_decoder_f CHOICE_decode_uper; -per_type_encoder_f CHOICE_encode_uper; -per_type_decoder_f CHOICE_decode_aper; -per_type_encoder_f CHOICE_encode_aper; -asn_outmost_tag_f CHOICE_outmost_tag; -asn_random_fill_f CHOICE_random_fill; -extern asn_TYPE_operation_t asn_OP_CHOICE; - -/* - * Return the 1-based choice variant presence index. - * Returns 0 in case of error. - */ -unsigned CHOICE_variant_get_presence(const asn_TYPE_descriptor_t *td, - const void *structure_ptr); - -/* - * Sets or resets the 1-based choice variant presence index. - * In case a previous index is not zero, the currently selected structure - * member is freed and zeroed-out first. - * Returns 0 on success and -1 on error. - */ -int CHOICE_variant_set_presence(const asn_TYPE_descriptor_t *td, - void *structure_ptr, unsigned present); - -#ifdef __cplusplus -} -#endif - -#endif /* _CONSTR_CHOICE_H_ */ diff --git a/e2sim/previous/ASN1c/constr_SEQUENCE.c b/e2sim/previous/ASN1c/constr_SEQUENCE.c deleted file mode 100644 index fc1ca72..0000000 --- a/e2sim/previous/ASN1c/constr_SEQUENCE.c +++ /dev/null @@ -1,2077 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Copyright (c) 2003-2017 Lev Walkin . - * All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include -#include - -/* - * Number of bytes left for this structure. - * (ctx->left) indicates the number of bytes _transferred_ for the structure. - * (size) contains the number of bytes in the buffer passed. - */ -#define LEFT ((size<(size_t)ctx->left)?size:(size_t)ctx->left) - -/* - * If the subprocessor function returns with an indication that it wants - * more data, it may well be a fatal decoding problem, because the - * size is constrained by the 's L, even if the buffer size allows - * reading more data. - * For example, consider the buffer containing the following TLVs: - * ... - * The TLV length clearly indicates that one byte is expected in V, but - * if the V processor returns with "want more data" even if the buffer - * contains way more data than the V processor have seen. - */ -#define SIZE_VIOLATION (ctx->left >= 0 && (size_t)ctx->left <= size) - -/* - * This macro "eats" the part of the buffer which is definitely "consumed", - * i.e. was correctly converted into local representation or rightfully skipped. - */ -#undef ADVANCE -#define ADVANCE(num_bytes) do { \ - size_t num = num_bytes; \ - ptr = ((const char *)ptr) + num; \ - size -= num; \ - if(ctx->left >= 0) \ - ctx->left -= num; \ - consumed_myself += num; \ - } while(0) - -/* - * Switch to the next phase of parsing. - */ -#undef NEXT_PHASE -#undef PHASE_OUT -#define NEXT_PHASE(ctx) do { \ - ctx->phase++; \ - ctx->step = 0; \ - } while(0) -#define PHASE_OUT(ctx) do { ctx->phase = 10; } while(0) - -/* - * Return a standardized complex structure. - */ -#undef RETURN -#define RETURN(_code) do { \ - rval.code = _code; \ - rval.consumed = consumed_myself;\ - return rval; \ - } while(0) - -/* - * Check whether we are inside the extensions group. - */ -#define IN_EXTENSION_GROUP(specs, memb_idx) \ - ((specs)->first_extension >= 0 \ - && (unsigned)(specs)->first_extension <= (memb_idx)) - -/* - * Tags are canonically sorted in the tag2element map. - */ -static int -_t2e_cmp(const void *ap, const void *bp) { - const asn_TYPE_tag2member_t *a = (const asn_TYPE_tag2member_t *)ap; - const asn_TYPE_tag2member_t *b = (const asn_TYPE_tag2member_t *)bp; - - int a_class = BER_TAG_CLASS(a->el_tag); - int b_class = BER_TAG_CLASS(b->el_tag); - - if(a_class == b_class) { - ber_tlv_tag_t a_value = BER_TAG_VALUE(a->el_tag); - ber_tlv_tag_t b_value = BER_TAG_VALUE(b->el_tag); - - if(a_value == b_value) { - if(a->el_no > b->el_no) - return 1; - /* - * Important: we do not check - * for a->el_no <= b->el_no! - */ - return 0; - } else if(a_value < b_value) - return -1; - else - return 1; - } else if(a_class < b_class) { - return -1; - } else { - return 1; - } -} - - -/* - * The decoder of the SEQUENCE type. - */ -asn_dec_rval_t -SEQUENCE_decode_ber(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **struct_ptr, - const void *ptr, size_t size, int tag_mode) { - /* - * Bring closer parts of structure description. - */ - const asn_SEQUENCE_specifics_t *specs = (const asn_SEQUENCE_specifics_t *)td->specifics; - const asn_TYPE_member_t *elements = td->elements; - - /* - * Parts of the structure being constructed. - */ - void *st = *struct_ptr; /* Target structure. */ - asn_struct_ctx_t *ctx; /* Decoder context */ - - ber_tlv_tag_t tlv_tag; /* T from TLV */ - asn_dec_rval_t rval; /* Return code from subparsers */ - - ssize_t consumed_myself = 0; /* Consumed bytes from ptr */ - size_t edx; /* SEQUENCE element's index */ - - ASN_DEBUG("Decoding %s as SEQUENCE", td->name); - - /* - * Create the target structure if it is not present already. - */ - if(st == 0) { - st = *struct_ptr = CALLOC(1, specs->struct_size); - if(st == 0) { - RETURN(RC_FAIL); - } - } - - /* - * Restore parsing context. - */ - ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset); - - /* - * Start to parse where left previously - */ - switch(ctx->phase) { - case 0: - /* - * PHASE 0. - * Check that the set of tags associated with given structure - * perfectly fits our expectations. - */ - - rval = ber_check_tags(opt_codec_ctx, td, ctx, ptr, size, - tag_mode, 1, &ctx->left, 0); - if(rval.code != RC_OK) { - ASN_DEBUG("%s tagging check failed: %d", - td->name, rval.code); - return rval; - } - - if(ctx->left >= 0) - ctx->left += rval.consumed; /* ?Substracted below! */ - ADVANCE(rval.consumed); - - NEXT_PHASE(ctx); - - ASN_DEBUG("Structure consumes %ld bytes, buffer %ld", - (long)ctx->left, (long)size); - - /* Fall through */ - case 1: - /* - * PHASE 1. - * From the place where we've left it previously, - * try to decode the next member from the list of - * this structure's elements. - * (ctx->step) stores the member being processed - * between invocations and the microphase {0,1} of parsing - * that member: - * step = ( * 2 + ). - */ - for(edx = ((size_t)ctx->step >> 1); edx < td->elements_count; - edx++, ctx->step = (ctx->step & ~1) + 2) { - void *memb_ptr; /* Pointer to the member */ - void **memb_ptr2; /* Pointer to that pointer */ - ssize_t tag_len; /* Length of TLV's T */ - size_t opt_edx_end; /* Next non-optional element */ - size_t n; - int use_bsearch; - - if(ctx->step & 1) - goto microphase2; - - /* - * MICROPHASE 1: Synchronize decoding. - */ - ASN_DEBUG("In %s SEQUENCE left %d, edx=%" ASN_PRI_SIZE " flags=%d" - " opt=%d ec=%d", - td->name, (int)ctx->left, edx, - elements[edx].flags, elements[edx].optional, - td->elements_count); - - if(ctx->left == 0 /* No more stuff is expected */ - && ( - /* Explicit OPTIONAL specification reaches the end */ - (edx + elements[edx].optional == td->elements_count) || - /* All extensions are optional */ - IN_EXTENSION_GROUP(specs, edx))) { - ASN_DEBUG("End of SEQUENCE %s", td->name); - /* - * Found the legitimate end of the structure. - */ - PHASE_OUT(ctx); - RETURN(RC_OK); - } - - /* - * Fetch the T from TLV. - */ - tag_len = ber_fetch_tag(ptr, LEFT, &tlv_tag); - ASN_DEBUG("Current tag in %s SEQUENCE for element %" ASN_PRI_SIZE " " - "(%s) is %s encoded in %d bytes, of frame %ld", - td->name, edx, elements[edx].name, - ber_tlv_tag_string(tlv_tag), (int)tag_len, (long)LEFT); - switch(tag_len) { - case 0: if(!SIZE_VIOLATION) RETURN(RC_WMORE); - /* Fall through */ - case -1: RETURN(RC_FAIL); - } - - if(ctx->left < 0 && ((const uint8_t *)ptr)[0] == 0) { - if(LEFT < 2) { - if(SIZE_VIOLATION) { - RETURN(RC_FAIL); - } else { - RETURN(RC_WMORE); - } - } else if(((const uint8_t *)ptr)[1] == 0) { - ASN_DEBUG("edx = %" ASN_PRI_SIZE ", opt = %d, ec=%d", edx, - elements[edx].optional, td->elements_count); - if((edx + elements[edx].optional == td->elements_count) - || IN_EXTENSION_GROUP(specs, edx)) { - /* - * Yeah, baby! Found the terminator - * of the indefinite length structure. - */ - /* - * Proceed to the canonical - * finalization function. - * No advancing is necessary. - */ - goto phase3; - } - } - } - - /* - * Find the next available type with this tag. - */ - use_bsearch = 0; - opt_edx_end = edx + elements[edx].optional + 1; - if(opt_edx_end > td->elements_count) - opt_edx_end = td->elements_count; /* Cap */ - else if(opt_edx_end - edx > 8) { - /* Limit the scope of linear search... */ - opt_edx_end = edx + 8; - use_bsearch = 1; - /* ... and resort to bsearch() */ - } - for(n = edx; n < opt_edx_end; n++) { - if(BER_TAGS_EQUAL(tlv_tag, elements[n].tag)) { - /* - * Found element corresponding to the tag - * being looked at. - * Reposition over the right element. - */ - edx = n; - ctx->step = 1 + 2 * edx; /* Remember! */ - goto microphase2; - } else if(elements[n].flags & ATF_ANY_TYPE) { - /* - * This is the ANY type, which may bear - * any flag whatsoever. - */ - edx = n; - ctx->step = 1 + 2 * edx; /* Remember! */ - goto microphase2; - } else if(elements[n].tag == (ber_tlv_tag_t)-1) { - use_bsearch = 1; - break; - } - } - if(use_bsearch) { - /* - * Resort to a binary search over - * sorted array of tags. - */ - const asn_TYPE_tag2member_t *t2m; - asn_TYPE_tag2member_t key = {0, 0, 0, 0}; - key.el_tag = tlv_tag; - key.el_no = edx; - t2m = (const asn_TYPE_tag2member_t *)bsearch(&key, - specs->tag2el, specs->tag2el_count, - sizeof(specs->tag2el[0]), _t2e_cmp); - if(t2m) { - const asn_TYPE_tag2member_t *best = 0; - const asn_TYPE_tag2member_t *t2m_f, *t2m_l; - size_t edx_max = edx + elements[edx].optional; - /* - * Rewind to the first element with that tag, - * `cause bsearch() does not guarantee order. - */ - t2m_f = t2m + t2m->toff_first; - t2m_l = t2m + t2m->toff_last; - for(t2m = t2m_f; t2m <= t2m_l; t2m++) { - if(t2m->el_no > edx_max) break; - if(t2m->el_no < edx) continue; - best = t2m; - } - if(best) { - edx = best->el_no; - ctx->step = 1 + 2 * edx; - goto microphase2; - } - } - n = opt_edx_end; - } - if(n == opt_edx_end) { - /* - * If tag is unknown, it may be either - * an unknown (thus, incorrect) tag, - * or an extension (...), - * or an end of the indefinite-length structure. - */ - if(!IN_EXTENSION_GROUP(specs, - edx + elements[edx].optional)) { - ASN_DEBUG("Unexpected tag %s (at %" ASN_PRI_SIZE ")", - ber_tlv_tag_string(tlv_tag), edx); - ASN_DEBUG("Expected tag %s (%s)%s", - ber_tlv_tag_string(elements[edx].tag), - elements[edx].name, - elements[edx].optional - ?" or alternatives":""); - RETURN(RC_FAIL); - } else { - /* Skip this tag */ - ssize_t skip; - edx += elements[edx].optional; - - ASN_DEBUG("Skipping unexpected %s (at %" ASN_PRI_SIZE ")", - ber_tlv_tag_string(tlv_tag), edx); - skip = ber_skip_length(opt_codec_ctx, - BER_TLV_CONSTRUCTED(ptr), - (const char *)ptr + tag_len, - LEFT - tag_len); - ASN_DEBUG("Skip length %d in %s", - (int)skip, td->name); - switch(skip) { - case 0: if(!SIZE_VIOLATION) RETURN(RC_WMORE); - /* Fall through */ - case -1: RETURN(RC_FAIL); - } - - ADVANCE(skip + tag_len); - ctx->step -= 2; - edx--; - continue; /* Try again with the next tag */ - } - } - - /* - * MICROPHASE 2: Invoke the member-specific decoder. - */ - ctx->step |= 1; /* Confirm entering next microphase */ - microphase2: - ASN_DEBUG("Inside SEQUENCE %s MF2", td->name); - - /* - * Compute the position of the member inside a structure, - * and also a type of containment (it may be contained - * as pointer or using inline inclusion). - */ - if(elements[edx].flags & ATF_POINTER) { - /* Member is a pointer to another structure */ - memb_ptr2 = (void **)((char *)st + elements[edx].memb_offset); - } else { - /* - * A pointer to a pointer - * holding the start of the structure - */ - memb_ptr = (char *)st + elements[edx].memb_offset; - memb_ptr2 = &memb_ptr; - } - /* - * Invoke the member fetch routine according to member's type - */ - if(elements[edx].flags & ATF_OPEN_TYPE) { - rval = OPEN_TYPE_ber_get(opt_codec_ctx, td, st, &elements[edx], ptr, LEFT); - } else { - rval = elements[edx].type->op->ber_decoder(opt_codec_ctx, - elements[edx].type, - memb_ptr2, ptr, LEFT, - elements[edx].tag_mode); - } - ASN_DEBUG("In %s SEQUENCE decoded %" ASN_PRI_SIZE " %s of %d " - "in %d bytes rval.code %d, size=%d", - td->name, edx, elements[edx].type->name, - (int)LEFT, (int)rval.consumed, rval.code, (int)size); - switch(rval.code) { - case RC_OK: - break; - case RC_WMORE: /* More data expected */ - if(!SIZE_VIOLATION) { - ADVANCE(rval.consumed); - RETURN(RC_WMORE); - } - ASN_DEBUG("Size violation (c->l=%ld <= s=%ld)", - (long)ctx->left, (long)size); - /* Fall through */ - case RC_FAIL: /* Fatal error */ - RETURN(RC_FAIL); - } /* switch(rval) */ - - ADVANCE(rval.consumed); - } /* for(all structure members) */ - - phase3: - ctx->phase = 3; - /* Fall through */ - case 3: /* 00 and other tags expected */ - case 4: /* only 00's expected */ - - ASN_DEBUG("SEQUENCE %s Leftover: %ld, size = %ld", - td->name, (long)ctx->left, (long)size); - - /* - * Skip everything until the end of the SEQUENCE. - */ - while(ctx->left) { - ssize_t tl, ll; - - tl = ber_fetch_tag(ptr, LEFT, &tlv_tag); - switch(tl) { - case 0: if(!SIZE_VIOLATION) RETURN(RC_WMORE); - /* Fall through */ - case -1: RETURN(RC_FAIL); - } - - /* - * If expected <0><0>... - */ - if(ctx->left < 0 - && ((const uint8_t *)ptr)[0] == 0) { - if(LEFT < 2) { - if(SIZE_VIOLATION) - RETURN(RC_FAIL); - else - RETURN(RC_WMORE); - } else if(((const uint8_t *)ptr)[1] == 0) { - /* - * Correctly finished with <0><0>. - */ - ADVANCE(2); - ctx->left++; - ctx->phase = 4; - continue; - } - } - - if(!IN_EXTENSION_GROUP(specs, td->elements_count) - || ctx->phase == 4) { - ASN_DEBUG("Unexpected continuation " - "of a non-extensible type " - "%s (SEQUENCE): %s", - td->name, - ber_tlv_tag_string(tlv_tag)); - RETURN(RC_FAIL); - } - - ll = ber_skip_length(opt_codec_ctx, - BER_TLV_CONSTRUCTED(ptr), - (const char *)ptr + tl, LEFT - tl); - switch(ll) { - case 0: if(!SIZE_VIOLATION) RETURN(RC_WMORE); - /* Fall through */ - case -1: RETURN(RC_FAIL); - } - - ADVANCE(tl + ll); - } - - PHASE_OUT(ctx); - } - - RETURN(RC_OK); -} - - -/* - * The DER encoder of the SEQUENCE type. - */ -asn_enc_rval_t -SEQUENCE_encode_der(const asn_TYPE_descriptor_t *td, const void *sptr, - int tag_mode, ber_tlv_tag_t tag, - asn_app_consume_bytes_f *cb, void *app_key) { - size_t computed_size = 0; - asn_enc_rval_t erval = {0,0,0}; - ssize_t ret; - size_t edx; - - ASN_DEBUG("%s %s as SEQUENCE", - cb?"Encoding":"Estimating", td->name); - - /* - * Gather the length of the underlying members sequence. - */ - for(edx = 0; edx < td->elements_count; edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - - const void *memb_ptr; /* Pointer to the member */ - const void *const *memb_ptr2; /* Pointer to that pointer */ - - if(elm->flags & ATF_POINTER) { - memb_ptr2 = - (const void *const *)((const char *)sptr + elm->memb_offset); - if(!*memb_ptr2) { - ASN_DEBUG("Element %s %" ASN_PRI_SIZE " not present", - elm->name, edx); - if(elm->optional) - continue; - /* Mandatory element is missing */ - ASN__ENCODE_FAILED; - } - } else { - memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); - memb_ptr2 = &memb_ptr; - } - - /* Eliminate default values */ - if(elm->default_value_cmp && elm->default_value_cmp(*memb_ptr2) == 0) - continue; - - erval = elm->type->op->der_encoder(elm->type, *memb_ptr2, - elm->tag_mode, elm->tag, - 0, 0); - if(erval.encoded == -1) - return erval; - computed_size += erval.encoded; - ASN_DEBUG("Member %" ASN_PRI_SIZE " %s estimated %ld bytes", - edx, elm->name, (long)erval.encoded); - } - - /* - * Encode the TLV for the sequence itself. - */ - ret = der_write_tags(td, computed_size, tag_mode, 1, tag, cb, app_key); - ASN_DEBUG("Wrote tags: %ld (+%ld)", (long)ret, (long)computed_size); - if(ret == -1) - ASN__ENCODE_FAILED; - erval.encoded = computed_size + ret; - - if(!cb) ASN__ENCODED_OK(erval); - - /* - * Encode all members. - */ - for(edx = 0; edx < td->elements_count; edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - asn_enc_rval_t tmperval = {0,0,0}; - const void *memb_ptr; /* Pointer to the member */ - const void *const *memb_ptr2; /* Pointer to that pointer */ - - if(elm->flags & ATF_POINTER) { - memb_ptr2 = - (const void *const *)((const char *)sptr + elm->memb_offset); - if(!*memb_ptr2) continue; - } else { - memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); - memb_ptr2 = &memb_ptr; - } - - /* Eliminate default values */ - if(elm->default_value_cmp && elm->default_value_cmp(*memb_ptr2) == 0) - continue; - - tmperval = elm->type->op->der_encoder(elm->type, *memb_ptr2, - elm->tag_mode, elm->tag, cb, app_key); - if(tmperval.encoded == -1) - return tmperval; - computed_size -= tmperval.encoded; - ASN_DEBUG("Member %" ASN_PRI_SIZE " %s of SEQUENCE %s encoded in %ld bytes", - edx, elm->name, td->name, (long)tmperval.encoded); - } - - if(computed_size != 0) - /* - * Encoded size is not equal to the computed size. - */ - ASN__ENCODE_FAILED; - - ASN__ENCODED_OK(erval); -} - - -#undef XER_ADVANCE -#define XER_ADVANCE(num_bytes) \ - do { \ - size_t num = (num_bytes); \ - ptr = ((const char *)ptr) + num; \ - size -= num; \ - consumed_myself += num; \ - } while(0) - -/* - * Decode the XER (XML) data. - */ -asn_dec_rval_t -SEQUENCE_decode_xer(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **struct_ptr, - const char *opt_mname, const void *ptr, size_t size) { - /* - * Bring closer parts of structure description. - */ - const asn_SEQUENCE_specifics_t *specs - = (const asn_SEQUENCE_specifics_t *)td->specifics; - asn_TYPE_member_t *elements = td->elements; - const char *xml_tag = opt_mname ? opt_mname : td->xml_tag; - - /* - * ... and parts of the structure being constructed. - */ - void *st = *struct_ptr; /* Target structure. */ - asn_struct_ctx_t *ctx; /* Decoder context */ - - asn_dec_rval_t rval; /* Return value from a decoder */ - ssize_t consumed_myself = 0; /* Consumed bytes from ptr */ - size_t edx; /* Element index */ - - /* - * Create the target structure if it is not present already. - */ - if(st == 0) { - st = *struct_ptr = CALLOC(1, specs->struct_size); - if(st == 0) RETURN(RC_FAIL); - } - - /* - * Restore parsing context. - */ - ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset); - - - /* - * Phases of XER/XML processing: - * Phase 0: Check that the opening tag matches our expectations. - * Phase 1: Processing body and reacting on closing tag. - * Phase 2: Processing inner type. - * Phase 3: Skipping unknown extensions. - * Phase 4: PHASED OUT - */ - for(edx = ctx->step; ctx->phase <= 3;) { - pxer_chunk_type_e ch_type; /* XER chunk type */ - ssize_t ch_size; /* Chunk size */ - xer_check_tag_e tcv; /* Tag check value */ - asn_TYPE_member_t *elm; - - /* - * Go inside the inner member of a sequence. - */ - if(ctx->phase == 2) { - asn_dec_rval_t tmprval; - void *memb_ptr_dontuse; /* Pointer to the member */ - void **memb_ptr2; /* Pointer to that pointer */ - - elm = &td->elements[edx]; - - if(elm->flags & ATF_POINTER) { - /* Member is a pointer to another structure */ - memb_ptr2 = (void **)((char *)st + elm->memb_offset); - } else { - memb_ptr_dontuse = (char *)st + elm->memb_offset; - memb_ptr2 = &memb_ptr_dontuse; /* Only use of memb_ptr_dontuse */ - } - - if(elm->flags & ATF_OPEN_TYPE) { - tmprval = OPEN_TYPE_xer_get(opt_codec_ctx, td, st, elm, ptr, size); - } else { - /* Invoke the inner type decoder, m.b. multiple times */ - tmprval = elm->type->op->xer_decoder(opt_codec_ctx, - elm->type, memb_ptr2, elm->name, - ptr, size); - } - XER_ADVANCE(tmprval.consumed); - if(tmprval.code != RC_OK) - RETURN(tmprval.code); - ctx->phase = 1; /* Back to body processing */ - ctx->step = ++edx; - ASN_DEBUG("XER/SEQUENCE phase => %d, step => %d", - ctx->phase, ctx->step); - /* Fall through */ - } - - /* - * Get the next part of the XML stream. - */ - ch_size = xer_next_token(&ctx->context, ptr, size, - &ch_type); - if(ch_size == -1) { - RETURN(RC_FAIL); - } else { - switch(ch_type) { - case PXER_WMORE: - RETURN(RC_WMORE); - case PXER_COMMENT: /* Got XML comment */ - case PXER_TEXT: /* Ignore free-standing text */ - XER_ADVANCE(ch_size); /* Skip silently */ - continue; - case PXER_TAG: - break; /* Check the rest down there */ - } - } - - tcv = xer_check_tag(ptr, ch_size, xml_tag); - ASN_DEBUG("XER/SEQUENCE: tcv = %d, ph=%d [%s]", - tcv, ctx->phase, xml_tag); - - /* Skip the extensions section */ - if(ctx->phase == 3) { - switch(xer_skip_unknown(tcv, &ctx->left)) { - case -1: - ctx->phase = 4; - RETURN(RC_FAIL); - case 0: - XER_ADVANCE(ch_size); - continue; - case 1: - XER_ADVANCE(ch_size); - ctx->phase = 1; - continue; - case 2: - ctx->phase = 1; - break; - } - } - - switch(tcv) { - case XCT_CLOSING: - if(ctx->phase == 0) break; - ctx->phase = 0; - /* Fall through */ - case XCT_BOTH: - if(ctx->phase == 0) { - if(edx >= td->elements_count || - /* Explicit OPTIONAL specs reaches the end */ - (edx + elements[edx].optional == td->elements_count) || - /* All extensions are optional */ - IN_EXTENSION_GROUP(specs, edx)) { - XER_ADVANCE(ch_size); - ctx->phase = 4; /* Phase out */ - RETURN(RC_OK); - } else { - ASN_DEBUG("Premature end of XER SEQUENCE"); - RETURN(RC_FAIL); - } - } - /* Fall through */ - case XCT_OPENING: - if(ctx->phase == 0) { - XER_ADVANCE(ch_size); - ctx->phase = 1; /* Processing body phase */ - continue; - } - /* Fall through */ - case XCT_UNKNOWN_OP: - case XCT_UNKNOWN_BO: - - ASN_DEBUG("XER/SEQUENCE: tcv=%d, ph=%d, edx=%" ASN_PRI_SIZE "", - tcv, ctx->phase, edx); - if(ctx->phase != 1) { - break; /* Really unexpected */ - } - - if(edx < td->elements_count) { - /* - * Search which member corresponds to this tag. - */ - size_t n; - size_t edx_end = edx + elements[edx].optional + 1; - if(edx_end > td->elements_count) - edx_end = td->elements_count; - for(n = edx; n < edx_end; n++) { - elm = &td->elements[n]; - tcv = xer_check_tag(ptr, ch_size, elm->name); - switch(tcv) { - case XCT_BOTH: - case XCT_OPENING: - /* - * Process this member. - */ - ctx->step = edx = n; - ctx->phase = 2; - break; - case XCT_UNKNOWN_OP: - case XCT_UNKNOWN_BO: - continue; - default: - n = edx_end; - break; /* Phase out */ - } - break; - } - if(n != edx_end) - continue; - } else { - ASN_DEBUG("Out of defined members: %" ASN_PRI_SIZE "/%u", - edx, td->elements_count); - } - - /* It is expected extension */ - if(IN_EXTENSION_GROUP(specs, - edx + (edx < td->elements_count - ? elements[edx].optional : 0))) { - ASN_DEBUG("Got anticipated extension at %" ASN_PRI_SIZE "", - edx); - /* - * Check for (XCT_BOTH or XCT_UNKNOWN_BO) - * By using a mask. Only record a pure - * tags. - */ - if(tcv & XCT_CLOSING) { - /* Found without body */ - } else { - ctx->left = 1; - ctx->phase = 3; /* Skip ...'s */ - } - XER_ADVANCE(ch_size); - continue; - } - - /* Fall through */ - default: - break; - } - - ASN_DEBUG("Unexpected XML tag in SEQUENCE [%c%c%c%c%c%c]", - size>0?((const char *)ptr)[0]:'.', - size>1?((const char *)ptr)[1]:'.', - size>2?((const char *)ptr)[2]:'.', - size>3?((const char *)ptr)[3]:'.', - size>4?((const char *)ptr)[4]:'.', - size>5?((const char *)ptr)[5]:'.'); - break; - } - - ctx->phase = 4; /* "Phase out" on hard failure */ - RETURN(RC_FAIL); -} - -asn_enc_rval_t -SEQUENCE_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, - int ilevel, enum xer_encoder_flags_e flags, - asn_app_consume_bytes_f *cb, void *app_key) { - asn_enc_rval_t er = {0,0,0}; - int xcan = (flags & XER_F_CANONICAL); - asn_TYPE_descriptor_t *tmp_def_val_td = 0; - void *tmp_def_val = 0; - size_t edx; - - if(!sptr) ASN__ENCODE_FAILED; - - er.encoded = 0; - - for(edx = 0; edx < td->elements_count; edx++) { - asn_enc_rval_t tmper = {0,0,0}; - asn_TYPE_member_t *elm = &td->elements[edx]; - const void *memb_ptr; - const char *mname = elm->name; - unsigned int mlen = strlen(mname); - - if(elm->flags & ATF_POINTER) { - memb_ptr = - *(const void *const *)((const char *)sptr + elm->memb_offset); - if(!memb_ptr) { - assert(tmp_def_val == 0); - if(elm->default_value_set) { - if(elm->default_value_set(&tmp_def_val)) { - ASN__ENCODE_FAILED; - } else { - memb_ptr = tmp_def_val; - tmp_def_val_td = elm->type; - } - } else if(elm->optional) { - continue; - } else { - /* Mandatory element is missing */ - ASN__ENCODE_FAILED; - } - } - } else { - memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); - } - - if(!xcan) ASN__TEXT_INDENT(1, ilevel); - ASN__CALLBACK3("<", 1, mname, mlen, ">", 1); - - /* Print the member itself */ - tmper = elm->type->op->xer_encoder(elm->type, memb_ptr, ilevel + 1, - flags, cb, app_key); - if(tmp_def_val) { - ASN_STRUCT_FREE(*tmp_def_val_td, tmp_def_val); - tmp_def_val = 0; - } - if(tmper.encoded == -1) return tmper; - er.encoded += tmper.encoded; - - ASN__CALLBACK3("", 1); - } - - if(!xcan) ASN__TEXT_INDENT(1, ilevel - 1); - - ASN__ENCODED_OK(er); -cb_failed: - if(tmp_def_val) ASN_STRUCT_FREE(*tmp_def_val_td, tmp_def_val); - ASN__ENCODE_FAILED; -} - -int -SEQUENCE_print(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, - asn_app_consume_bytes_f *cb, void *app_key) { - size_t edx; - int ret; - - if(!sptr) return (cb("", 8, app_key) < 0) ? -1 : 0; - - /* Dump preamble */ - if(cb(td->name, strlen(td->name), app_key) < 0 - || cb(" ::= {", 6, app_key) < 0) - return -1; - - for(edx = 0; edx < td->elements_count; edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - const void *memb_ptr; - - if(elm->flags & ATF_POINTER) { - memb_ptr = *(const void * const *)((const char *)sptr + elm->memb_offset); - if(!memb_ptr) { - if(elm->optional) continue; - /* Print line */ - /* Fall through */ - } - } else { - memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); - } - - /* Indentation */ - _i_INDENT(1); - - /* Print the member's name and stuff */ - if(cb(elm->name, strlen(elm->name), app_key) < 0 - || cb(": ", 2, app_key) < 0) - return -1; - - /* Print the member itself */ - ret = elm->type->op->print_struct(elm->type, memb_ptr, ilevel + 1, - cb, app_key); - if(ret) return ret; - } - - ilevel--; - _i_INDENT(1); - - return (cb("}", 1, app_key) < 0) ? -1 : 0; -} - -void -SEQUENCE_free(const asn_TYPE_descriptor_t *td, void *sptr, - enum asn_struct_free_method method) { - size_t edx; - const asn_SEQUENCE_specifics_t *specs = - (const asn_SEQUENCE_specifics_t *)td->specifics; - asn_struct_ctx_t *ctx; /* Decoder context */ - - if(!td || !sptr) - return; - - ASN_DEBUG("Freeing %s as SEQUENCE", td->name); - - for(edx = 0; edx < td->elements_count; edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - void *memb_ptr; - if(elm->flags & ATF_POINTER) { - memb_ptr = *(void **)((char *)sptr + elm->memb_offset); - if(memb_ptr) - ASN_STRUCT_FREE(*elm->type, memb_ptr); - } else { - memb_ptr = (void *)((char *)sptr + elm->memb_offset); - ASN_STRUCT_FREE_CONTENTS_ONLY(*elm->type, memb_ptr); - } - } - - /* Clean parsing context */ - ctx = (asn_struct_ctx_t *)((char *)sptr + specs->ctx_offset); - FREEMEM(ctx->ptr); - - switch(method) { - case ASFM_FREE_EVERYTHING: - FREEMEM(sptr); - break; - case ASFM_FREE_UNDERLYING: - break; - case ASFM_FREE_UNDERLYING_AND_RESET: - memset( - sptr, 0, - ((const asn_SEQUENCE_specifics_t *)(td->specifics))->struct_size); - break; - } -} - -int -SEQUENCE_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - size_t edx; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - /* - * Iterate over structure members and check their validity. - */ - for(edx = 0; edx < td->elements_count; edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - const void *memb_ptr; - - if(elm->flags & ATF_POINTER) { - memb_ptr = *(const void * const *)((const char *)sptr + elm->memb_offset); - if(!memb_ptr) { - if(elm->optional) - continue; - ASN__CTFAIL(app_key, td, sptr, - "%s: mandatory element %s absent (%s:%d)", - td->name, elm->name, __FILE__, __LINE__); - return -1; - } - } else { - memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); - } - - if(elm->encoding_constraints.general_constraints) { - int ret = elm->encoding_constraints.general_constraints(elm->type, memb_ptr, - ctfailcb, app_key); - if(ret) return ret; - } else { - return elm->type->encoding_constraints.general_constraints(elm->type, - memb_ptr, ctfailcb, app_key); - } - } - - return 0; -} - -#ifndef ASN_DISABLE_PER_SUPPORT - -asn_dec_rval_t -SEQUENCE_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, - asn_per_data_t *pd) { - const asn_SEQUENCE_specifics_t *specs = (const asn_SEQUENCE_specifics_t *)td->specifics; - void *st = *sptr; /* Target structure. */ - int extpresent; /* Extension additions are present */ - uint8_t *opres; /* Presence of optional root members */ - asn_per_data_t opmd; - asn_dec_rval_t rv; - size_t edx; - - (void)constraints; - - if(ASN__STACK_OVERFLOW_CHECK(opt_codec_ctx)) - ASN__DECODE_FAILED; - - if(!st) { - st = *sptr = CALLOC(1, specs->struct_size); - if(!st) ASN__DECODE_FAILED; - } - - ASN_DEBUG("Decoding %s as SEQUENCE (UPER)", td->name); - - /* Handle extensions */ - if(specs->first_extension < 0) { - extpresent = 0; - } else { - extpresent = per_get_few_bits(pd, 1); - if(extpresent < 0) ASN__DECODE_STARVED; - } - - /* Prepare a place and read-in the presence bitmap */ - memset(&opmd, 0, sizeof(opmd)); - if(specs->roms_count) { - opres = (uint8_t *)MALLOC(((specs->roms_count + 7) >> 3) + 1); - if(!opres) ASN__DECODE_FAILED; - /* Get the presence map */ - if(per_get_many_bits(pd, opres, 0, specs->roms_count)) { - FREEMEM(opres); - ASN__DECODE_STARVED; - } - opmd.buffer = opres; - opmd.nbits = specs->roms_count; - ASN_DEBUG("Read in presence bitmap for %s of %d bits (%x..)", - td->name, specs->roms_count, *opres); - } else { - opres = 0; - } - - /* - * Get the sequence ROOT elements. - */ - for(edx = 0; - edx < (specs->first_extension < 0 ? td->elements_count - : (size_t)specs->first_extension); - edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - void *memb_ptr; /* Pointer to the member */ - void **memb_ptr2; /* Pointer to that pointer */ - - assert(!IN_EXTENSION_GROUP(specs, edx)); - - /* Fetch the pointer to this member */ - if(elm->flags & ATF_POINTER) { - memb_ptr2 = (void **)((char *)st + elm->memb_offset); - } else { - memb_ptr = (char *)st + elm->memb_offset; - memb_ptr2 = &memb_ptr; - } - - /* Deal with optionality */ - if(elm->optional) { - int present = per_get_few_bits(&opmd, 1); - ASN_DEBUG("Member %s->%s is optional, p=%d (%d->%d)", - td->name, elm->name, present, - (int)opmd.nboff, (int)opmd.nbits); - if(present == 0) { - /* This element is not present */ - if(elm->default_value_set) { - /* Fill-in DEFAULT */ - if(elm->default_value_set(memb_ptr2)) { - FREEMEM(opres); - ASN__DECODE_FAILED; - } - ASN_DEBUG("Filled-in default"); - } - /* The member is just not present */ - continue; - } - /* Fall through */ - } - - /* Fetch the member from the stream */ - ASN_DEBUG("Decoding member \"%s\" in %s", elm->name, td->name); - - if(elm->flags & ATF_OPEN_TYPE) { - rv = OPEN_TYPE_uper_get(opt_codec_ctx, td, st, elm, pd); - } else { - rv = elm->type->op->uper_decoder(opt_codec_ctx, elm->type, - elm->encoding_constraints.per_constraints, memb_ptr2, pd); - } - if(rv.code != RC_OK) { - ASN_DEBUG("Failed decode %s in %s", - elm->name, td->name); - FREEMEM(opres); - return rv; - } - } - - /* Optionality map is not needed anymore */ - FREEMEM(opres); - - /* - * Deal with extensions. - */ - if(extpresent) { - ssize_t bmlength; - uint8_t *epres; /* Presence of extension members */ - asn_per_data_t epmd; - - bmlength = uper_get_nslength(pd); - if(bmlength < 0) ASN__DECODE_STARVED; - - ASN_DEBUG("Extensions %" ASN_PRI_SSIZE " present in %s", bmlength, td->name); - - epres = (uint8_t *)MALLOC((bmlength + 15) >> 3); - if(!epres) ASN__DECODE_STARVED; - - /* Get the extensions map */ - if(per_get_many_bits(pd, epres, 0, bmlength)) { - FREEMEM(epres); - ASN__DECODE_STARVED; - } - - memset(&epmd, 0, sizeof(epmd)); - epmd.buffer = epres; - epmd.nbits = bmlength; - ASN_DEBUG("Read in extensions bitmap for %s of %ld bits (%x..)", - td->name, (long)bmlength, *epres); - - /* Go over extensions and read them in */ - for(edx = specs->first_extension; edx < td->elements_count; edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - void *memb_ptr; /* Pointer to the member */ - void **memb_ptr2; /* Pointer to that pointer */ - int present; - - /* Fetch the pointer to this member */ - if(elm->flags & ATF_POINTER) { - memb_ptr2 = (void **)((char *)st + elm->memb_offset); - } else { - memb_ptr = (void *)((char *)st + elm->memb_offset); - memb_ptr2 = &memb_ptr; - } - - present = per_get_few_bits(&epmd, 1); - if(present <= 0) { - if(present < 0) break; /* No more extensions */ - continue; - } - - ASN_DEBUG("Decoding member %s in %s %p", elm->name, td->name, - *memb_ptr2); - rv = uper_open_type_get(opt_codec_ctx, elm->type, - elm->encoding_constraints.per_constraints, - memb_ptr2, pd); - if(rv.code != RC_OK) { - FREEMEM(epres); - return rv; - } - } - - /* Skip over overflow extensions which aren't present - * in this system's version of the protocol */ - for(;;) { - ASN_DEBUG("Getting overflow extensions"); - switch(per_get_few_bits(&epmd, 1)) { - case -1: break; - case 0: continue; - default: - if(uper_open_type_skip(opt_codec_ctx, pd)) { - FREEMEM(epres); - ASN__DECODE_STARVED; - } - ASN_DEBUG("Skipped overflow extension"); - continue; - } - break; - } - - FREEMEM(epres); - } - - if(specs->first_extension >= 0) { - unsigned i; - /* Fill DEFAULT members in extensions */ - for(i = specs->roms_count; i < specs->roms_count + specs->aoms_count; - i++) { - asn_TYPE_member_t *elm; - void **memb_ptr2; /* Pointer to member pointer */ - - edx = specs->oms[i]; - elm = &td->elements[edx]; - - if(!elm->default_value_set) continue; - - /* Fetch the pointer to this member */ - if(elm->flags & ATF_POINTER) { - memb_ptr2 = (void **)((char *)st + elm->memb_offset); - if(*memb_ptr2) continue; - } else { - continue; /* Extensions are all optionals */ - } - - /* Set default value */ - if(elm->default_value_set(memb_ptr2)) { - ASN__DECODE_FAILED; - } - } - } - - rv.consumed = 0; - rv.code = RC_OK; - return rv; -} - -static int -SEQUENCE__handle_extensions(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_per_outp_t *po1, asn_per_outp_t *po2) { - const asn_SEQUENCE_specifics_t *specs = - (const asn_SEQUENCE_specifics_t *)td->specifics; - int exts_present = 0; - int exts_count = 0; - size_t edx; - - if(specs->first_extension < 0) { - return 0; - } - - /* Find out which extensions are present */ - for(edx = specs->first_extension; edx < td->elements_count; edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - const void *memb_ptr; /* Pointer to the member */ - const void *const *memb_ptr2; /* Pointer to that pointer */ - int present; - - /* Fetch the pointer to this member */ - if(elm->flags & ATF_POINTER) { - memb_ptr2 = - (const void *const *)((const char *)sptr + elm->memb_offset); - present = (*memb_ptr2 != 0); - } else { - memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); - memb_ptr2 = &memb_ptr; - present = 1; - } - - ASN_DEBUG("checking %s:%s (@%" ASN_PRI_SIZE ") present => %d", elm->name, - elm->type->name, edx, present); - exts_count++; - exts_present += present; - - /* Encode as presence marker */ - if(po1 && per_put_few_bits(po1, present, 1)) { - return -1; - } - /* Encode as open type field */ - if(po2 && present - && uper_open_type_put(elm->type, - elm->encoding_constraints.per_constraints, - *memb_ptr2, po2)) - return -1; - } - - return exts_present ? exts_count : 0; -} - -asn_enc_rval_t -SEQUENCE_encode_uper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, const void *sptr, - asn_per_outp_t *po) { - const asn_SEQUENCE_specifics_t *specs - = (const asn_SEQUENCE_specifics_t *)td->specifics; - asn_enc_rval_t er = {0,0,0}; - int n_extensions; - size_t edx; - size_t i; - - (void)constraints; - - if(!sptr) - ASN__ENCODE_FAILED; - - er.encoded = 0; - - ASN_DEBUG("Encoding %s as SEQUENCE (UPER)", td->name); - - /* - * X.691#18.1 Whether structure is extensible - * and whether to encode extensions - */ - if(specs->first_extension < 0) { - n_extensions = 0; /* There are no extensions to encode */ - } else { - n_extensions = SEQUENCE__handle_extensions(td, sptr, 0, 0); - if(n_extensions < 0) ASN__ENCODE_FAILED; - if(per_put_few_bits(po, n_extensions ? 1 : 0, 1)) { - ASN__ENCODE_FAILED; - } - } - - /* Encode a presence bitmap */ - for(i = 0; i < specs->roms_count; i++) { - asn_TYPE_member_t *elm; - const void *memb_ptr; /* Pointer to the member */ - const void *const *memb_ptr2; /* Pointer to that pointer */ - int present; - - edx = specs->oms[i]; - elm = &td->elements[edx]; - - /* Fetch the pointer to this member */ - if(elm->flags & ATF_POINTER) { - memb_ptr2 = - (const void *const *)((const char *)sptr + elm->memb_offset); - present = (*memb_ptr2 != 0); - } else { - memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); - memb_ptr2 = &memb_ptr; - present = 1; - } - - /* Eliminate default values */ - if(present && elm->default_value_cmp - && elm->default_value_cmp(*memb_ptr2) == 0) - present = 0; - - ASN_DEBUG("Element %s %s %s->%s is %s", - elm->flags & ATF_POINTER ? "ptr" : "inline", - elm->default_value_cmp ? "def" : "wtv", - td->name, elm->name, present ? "present" : "absent"); - if(per_put_few_bits(po, present, 1)) - ASN__ENCODE_FAILED; - } - - /* - * Encode the sequence ROOT elements. - */ - ASN_DEBUG("first_extension = %d, elements = %d", specs->first_extension, - td->elements_count); - for(edx = 0; - edx < ((specs->first_extension < 0) ? td->elements_count - : (size_t)specs->first_extension); - edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - const void *memb_ptr; /* Pointer to the member */ - const void *const *memb_ptr2; /* Pointer to that pointer */ - - ASN_DEBUG("About to encode %s", elm->type->name); - - /* Fetch the pointer to this member */ - if(elm->flags & ATF_POINTER) { - memb_ptr2 = - (const void *const *)((const char *)sptr + elm->memb_offset); - if(!*memb_ptr2) { - ASN_DEBUG("Element %s %" ASN_PRI_SIZE " not present", - elm->name, edx); - if(elm->optional) - continue; - /* Mandatory element is missing */ - ASN__ENCODE_FAILED; - } - } else { - memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); - memb_ptr2 = &memb_ptr; - } - - /* Eliminate default values */ - if(elm->default_value_cmp && elm->default_value_cmp(*memb_ptr2) == 0) - continue; - - ASN_DEBUG("Encoding %s->%s:%s", td->name, elm->name, elm->type->name); - er = elm->type->op->uper_encoder( - elm->type, elm->encoding_constraints.per_constraints, *memb_ptr2, - po); - if(er.encoded == -1) return er; - } - - /* No extensions to encode */ - if(!n_extensions) ASN__ENCODED_OK(er); - - ASN_DEBUG("Length of extensions %d bit-map", n_extensions); - /* #18.8. Write down the presence bit-map length. */ - if(uper_put_nslength(po, n_extensions)) - ASN__ENCODE_FAILED; - - ASN_DEBUG("Bit-map of %d elements", n_extensions); - /* #18.7. Encoding the extensions presence bit-map. */ - /* TODO: act upon NOTE in #18.7 for canonical PER */ - if(SEQUENCE__handle_extensions(td, sptr, po, 0) != n_extensions) - ASN__ENCODE_FAILED; - - ASN_DEBUG("Writing %d extensions", n_extensions); - /* #18.9. Encode extensions as open type fields. */ - if(SEQUENCE__handle_extensions(td, sptr, 0, po) != n_extensions) - ASN__ENCODE_FAILED; - - ASN__ENCODED_OK(er); -} - -asn_dec_rval_t -SEQUENCE_decode_aper(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, asn_per_data_t *pd) { - const asn_SEQUENCE_specifics_t *specs = (const asn_SEQUENCE_specifics_t *)td->specifics; - void *st = *sptr; /* Target structure. */ - int extpresent; /* Extension additions are present */ - uint8_t *opres; /* Presence of optional root members */ - asn_per_data_t opmd; - asn_dec_rval_t rv; - size_t edx; - - (void)constraints; - - if(ASN__STACK_OVERFLOW_CHECK(opt_codec_ctx)) - ASN__DECODE_FAILED; - - if(!st) { - st = *sptr = CALLOC(1, specs->struct_size); - if(!st) ASN__DECODE_FAILED; - } - - ASN_DEBUG("Decoding %s as SEQUENCE (APER)", td->name); - - /* Handle extensions */ - if(specs->first_extension < 0) { - extpresent = 0; - } else { - extpresent = per_get_few_bits(pd, 1); - if(extpresent < 0) ASN__DECODE_STARVED; - } - - /* Prepare a place and read-in the presence bitmap */ - memset(&opmd, 0, sizeof(opmd)); - if(specs->roms_count) { - opres = (uint8_t *)MALLOC(((specs->roms_count + 7) >> 3) + 1); - if(!opres) ASN__DECODE_FAILED; - /* Get the presence map */ - if(per_get_many_bits(pd, opres, 0, specs->roms_count)) { - FREEMEM(opres); - ASN__DECODE_STARVED; - } - opmd.buffer = opres; - opmd.nbits = specs->roms_count; - ASN_DEBUG("Read in presence bitmap for %s of %d bits (%x..)", - td->name, specs->roms_count, *opres); - } else { - opres = 0; - } - - /* - * Get the sequence ROOT elements. - */ - for(edx = 0; edx < td->elements_count; edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - void *memb_ptr; /* Pointer to the member */ - void **memb_ptr2; /* Pointer to that pointer */ -#if 0 - int padding; -#endif - - if(IN_EXTENSION_GROUP(specs, edx)) - continue; - - /* Fetch the pointer to this member */ - if(elm->flags & ATF_POINTER) { - memb_ptr2 = (void **)((char *)st + elm->memb_offset); - } else { - memb_ptr = (char *)st + elm->memb_offset; - memb_ptr2 = &memb_ptr; - } -#if 0 - /* Get Padding */ - padding = (8 - (pd->moved % 8)) % 8; - if(padding > 0) - ASN_DEBUG("For element %s,offset= %ld Padding bits = %d", td->name, pd->moved, padding); -#if 0 /* old way of removing padding */ - per_get_few_bits(pd, padding); -#else /* Experimental fix proposed by @mhanna123 */ - if(edx != (td->elements_count-1)) - per_get_few_bits(pd, padding); - else { - if(specs->roms_count && (padding > 0)) - ASN_DEBUG(">>>>> not skipping padding of %d bits for element:%ld out of %d", padding, edx, td->elements_count); - else - per_get_few_bits(pd, padding); - } -#endif /* dealing with padding */ -#endif - /* Deal with optionality */ - if(elm->optional) { - int present = per_get_few_bits(&opmd, 1); - ASN_DEBUG("Member %s->%s is optional, p=%d (%d->%d)", - td->name, elm->name, present, - (int)opmd.nboff, (int)opmd.nbits); - if(present == 0) { - /* This element is not present */ - if(elm->default_value_set) { - /* Fill-in DEFAULT */ - if(elm->default_value_set(memb_ptr2)) { - FREEMEM(opres); - ASN__DECODE_FAILED; - } - ASN_DEBUG("Filled-in default"); - } - /* The member is just not present */ - continue; - } - /* Fall through */ - } - - /* Fetch the member from the stream */ - ASN_DEBUG("Decoding member \"%s\" in %s", elm->name, td->name); - - if(elm->flags & ATF_OPEN_TYPE) { - rv = OPEN_TYPE_aper_get(opt_codec_ctx, td, st, elm, pd); - } else { - rv = elm->type->op->aper_decoder(opt_codec_ctx, elm->type, - elm->encoding_constraints.per_constraints, memb_ptr2, pd); - } - if(rv.code != RC_OK) { - ASN_DEBUG("Failed decode %s in %s", - elm->name, td->name); - FREEMEM(opres); - return rv; - } - } - - /* Optionality map is not needed anymore */ - FREEMEM(opres); - - /* - * Deal with extensions. - */ - if(extpresent) { - ssize_t bmlength; - uint8_t *epres; /* Presence of extension members */ - asn_per_data_t epmd; - - bmlength = aper_get_nslength(pd); - if(bmlength < 0) ASN__DECODE_STARVED; - - ASN_DEBUG("Extensions %" ASN_PRI_SSIZE " present in %s", bmlength, td->name); - - epres = (uint8_t *)MALLOC((bmlength + 15) >> 3); - if(!epres) ASN__DECODE_STARVED; - - /* Get the extensions map */ - if(per_get_many_bits(pd, epres, 0, bmlength)) - ASN__DECODE_STARVED; - - memset(&epmd, 0, sizeof(epmd)); - epmd.buffer = epres; - epmd.nbits = bmlength; - ASN_DEBUG("Read in extensions bitmap for %s of %ld bits (%x..)", - td->name, bmlength, *epres); - - /* Go over extensions and read them in */ - for(edx = specs->first_extension; edx < td->elements_count; edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - void *memb_ptr; /* Pointer to the member */ - void **memb_ptr2; /* Pointer to that pointer */ - int present; - - if(!IN_EXTENSION_GROUP(specs, edx)) { - ASN_DEBUG("%ld is not extension", edx); - continue; - } - - /* Fetch the pointer to this member */ - if(elm->flags & ATF_POINTER) { - memb_ptr2 = (void **)((char *)st + elm->memb_offset); - } else { - memb_ptr = (void *)((char *)st + elm->memb_offset); - memb_ptr2 = &memb_ptr; - } - - present = per_get_few_bits(&epmd, 1); - if(present <= 0) { - if(present < 0) break; /* No more extensions */ - continue; - } - - ASN_DEBUG("Decoding member %s in %s %p", elm->name, td->name, *memb_ptr2); - rv = aper_open_type_get(opt_codec_ctx, elm->type, - elm->encoding_constraints.per_constraints, memb_ptr2, pd); - if(rv.code != RC_OK) { - FREEMEM(epres); - return rv; - } - } - - /* Skip over overflow extensions which aren't present - * in this system's version of the protocol */ - for(;;) { - ASN_DEBUG("Getting overflow extensions"); - switch(per_get_few_bits(&epmd, 1)) { - case -1: - break; - case 0: - continue; - default: - if(aper_open_type_skip(opt_codec_ctx, pd)) { - FREEMEM(epres); - ASN__DECODE_STARVED; - } - } - break; - } - - FREEMEM(epres); - } - - /* Fill DEFAULT members in extensions */ - for(edx = specs->roms_count; edx < specs->roms_count - + specs->aoms_count; edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - void **memb_ptr2; /* Pointer to member pointer */ - - if(!elm->default_value_set) continue; - - /* Fetch the pointer to this member */ - if(elm->flags & ATF_POINTER) { - memb_ptr2 = (void **)((char *)st - + elm->memb_offset); - if(*memb_ptr2) continue; - } else { - continue; /* Extensions are all optionals */ - } - - /* Set default value */ - if(elm->default_value_set(memb_ptr2)) { - ASN__DECODE_FAILED; - } - } - - rv.consumed = 0; - rv.code = RC_OK; - return rv; -} - -static int -SEQUENCE_handle_extensions_aper(const asn_TYPE_descriptor_t *td, - const void *sptr, - asn_per_outp_t *po1, asn_per_outp_t *po2) { - const asn_SEQUENCE_specifics_t *specs - = (const asn_SEQUENCE_specifics_t *)td->specifics; - int exts_present = 0; - int exts_count = 0; - size_t edx; - - if(specs->first_extension < 0) { - return 0; - } - - /* Find out which extensions are present */ - for(edx = specs->first_extension; edx < td->elements_count; edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - const void *memb_ptr; /* Pointer to the member */ - const void * const *memb_ptr2; /* Pointer to that pointer */ - int present; - - if(!IN_EXTENSION_GROUP(specs, edx)) { - ASN_DEBUG("%s (@%ld) is not extension", elm->type->name, edx); - continue; - } - - /* Fetch the pointer to this member */ - if(elm->flags & ATF_POINTER) { - memb_ptr2 = (const void * const *)((const char *)sptr + elm->memb_offset); - present = (*memb_ptr2 != 0); - } else { - memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); - memb_ptr2 = &memb_ptr; - present = 1; - } - - ASN_DEBUG("checking %s (@%ld) present => %d", - elm->type->name, edx, present); - exts_count++; - exts_present += present; - - /* Encode as presence marker */ - if(po1 && per_put_few_bits(po1, present, 1)) - return -1; - /* Encode as open type field */ - if(po2 && present && aper_open_type_put(elm->type, - elm->encoding_constraints.per_constraints, *memb_ptr2, po2)) - return -1; - - } - - return exts_present ? exts_count : 0; -} - -asn_enc_rval_t -SEQUENCE_encode_aper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_per_outp_t *po) { - const asn_SEQUENCE_specifics_t *specs - = (const asn_SEQUENCE_specifics_t *)td->specifics; - asn_enc_rval_t er = {0,0,0}; - int n_extensions; - size_t edx; - size_t i; - - (void)constraints; - - if(!sptr) - ASN__ENCODE_FAILED; - - er.encoded = 0; - - ASN_DEBUG("Encoding %s as SEQUENCE (APER)", td->name); - - /* - * X.691#18.1 Whether structure is extensible - * and whether to encode extensions - */ - if(specs->first_extension < 0) { - n_extensions = 0; /* There are no extensions to encode */ - } else { - n_extensions = SEQUENCE_handle_extensions_aper(td, sptr, 0, 0); - if(n_extensions < 0) ASN__ENCODE_FAILED; - if(per_put_few_bits(po, n_extensions ? 1 : 0, 1)) { - ASN__ENCODE_FAILED; - } - } - - /* Encode a presence bitmap */ - for(i = 0; i < specs->roms_count; i++) { - asn_TYPE_member_t *elm; - const void *memb_ptr; /* Pointer to the member */ - const void * const *memb_ptr2; /* Pointer to that pointer */ - int present; - - edx = specs->oms[i]; - elm = &td->elements[edx]; - - /* Fetch the pointer to this member */ - if(elm->flags & ATF_POINTER) { - memb_ptr2 = (const void * const *)((const char *)sptr + elm->memb_offset); - present = (*memb_ptr2 != 0); - } else { - memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); - memb_ptr2 = &memb_ptr; - present = 1; - } - - /* Eliminate default values */ - if(present && elm->default_value_cmp - && elm->default_value_cmp(memb_ptr2) == 1) - present = 0; - - ASN_DEBUG("Element %s %s %s->%s is %s", - elm->flags & ATF_POINTER ? "ptr" : "inline", - elm->default_value_cmp ? "def" : "wtv", - td->name, elm->name, present ? "present" : "absent"); - if(per_put_few_bits(po, present, 1)) - ASN__ENCODE_FAILED; - } - - /* - * Encode the sequence ROOT elements. - */ - ASN_DEBUG("first_extension = %d, elements = %d", specs->first_extension, - td->elements_count); - for(edx = 0; - edx < ((specs->first_extension < 0) ? td->elements_count - : (size_t)specs->first_extension); - edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - const void *memb_ptr; /* Pointer to the member */ - const void * const *memb_ptr2; /* Pointer to that pointer */ - - if(IN_EXTENSION_GROUP(specs, edx)) - continue; - - ASN_DEBUG("About to encode %s", elm->type->name); - - /* Fetch the pointer to this member */ - if(elm->flags & ATF_POINTER) { - memb_ptr2 = (const void * const *)((const char *)sptr + elm->memb_offset); - if(!*memb_ptr2) { - ASN_DEBUG("Element %s %ld not present", - elm->name, edx); - if(elm->optional) - continue; - /* Mandatory element is missing */ - ASN__ENCODE_FAILED; - } - } else { - memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); - memb_ptr2 = &memb_ptr; - } - - /* Eliminate default values */ - if(elm->default_value_cmp && elm->default_value_cmp(memb_ptr2) == 1) - continue; - - ASN_DEBUG("Encoding %s->%s", td->name, elm->name); - er = elm->type->op->aper_encoder(elm->type, elm->encoding_constraints.per_constraints, - *memb_ptr2, po); - if(er.encoded == -1) - return er; - } - - /* No extensions to encode */ - if(!n_extensions) ASN__ENCODED_OK(er); - - ASN_DEBUG("Length of %d bit-map", n_extensions); - /* #18.8. Write down the presence bit-map length. */ - if(aper_put_nslength(po, n_extensions)) - ASN__ENCODE_FAILED; - - ASN_DEBUG("Bit-map of %d elements", n_extensions); - /* #18.7. Encoding the extensions presence bit-map. */ - /* TODO: act upon NOTE in #18.7 for canonical PER */ - if(SEQUENCE_handle_extensions_aper(td, sptr, po, 0) != n_extensions) - ASN__ENCODE_FAILED; - - ASN_DEBUG("Writing %d extensions", n_extensions); - /* #18.9. Encode extensions as open type fields. */ - if(SEQUENCE_handle_extensions_aper(td, sptr, 0, po) != n_extensions) - ASN__ENCODE_FAILED; - - ASN__ENCODED_OK(er); -} - -#endif /* ASN_DISABLE_PER_SUPPORT */ - -int -SEQUENCE_compare(const asn_TYPE_descriptor_t *td, const void *aptr, - const void *bptr) { - size_t edx; - - for(edx = 0; edx < td->elements_count; edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - const void *amemb; - const void *bmemb; - int ret; - - if(elm->flags & ATF_POINTER) { - amemb = - *(const void *const *)((const char *)aptr + elm->memb_offset); - bmemb = - *(const void *const *)((const char *)bptr + elm->memb_offset); - if(!amemb) { - if(!bmemb) continue; - if(elm->default_value_cmp - && elm->default_value_cmp(bmemb) == 0) { - /* A is absent, but B is present and equal to DEFAULT */ - continue; - } - return -1; - } else if(!bmemb) { - if(elm->default_value_cmp - && elm->default_value_cmp(amemb) == 0) { - /* B is absent, but A is present and equal to DEFAULT */ - continue; - } - return 1; - } - } else { - amemb = (const void *)((const char *)aptr + elm->memb_offset); - bmemb = (const void *)((const char *)bptr + elm->memb_offset); - } - - ret = elm->type->op->compare_struct(elm->type, amemb, bmemb); - if(ret != 0) return ret; - } - - return 0; -} - -asn_TYPE_operation_t asn_OP_SEQUENCE = { - SEQUENCE_free, - SEQUENCE_print, - SEQUENCE_compare, - SEQUENCE_decode_ber, - SEQUENCE_encode_der, - SEQUENCE_decode_xer, - SEQUENCE_encode_xer, -#ifdef ASN_DISABLE_OER_SUPPORT - 0, - 0, -#else - SEQUENCE_decode_oer, - SEQUENCE_encode_oer, -#endif /* ASN_DISABLE_OER_SUPPORT */ -#ifdef ASN_DISABLE_PER_SUPPORT - 0, - 0, - 0, - 0, -#else - SEQUENCE_decode_uper, - SEQUENCE_encode_uper, - SEQUENCE_decode_aper, - SEQUENCE_encode_aper, -#endif /* ASN_DISABLE_PER_SUPPORT */ - SEQUENCE_random_fill, - 0 /* Use generic outmost tag fetcher */ -}; - - -asn_random_fill_result_t -SEQUENCE_random_fill(const asn_TYPE_descriptor_t *td, void **sptr, - const asn_encoding_constraints_t *constr, - size_t max_length) { - const asn_SEQUENCE_specifics_t *specs = - (const asn_SEQUENCE_specifics_t *)td->specifics; - asn_random_fill_result_t result_ok = {ARFILL_OK, 0}; - asn_random_fill_result_t result_failed = {ARFILL_FAILED, 0}; - asn_random_fill_result_t result_skipped = {ARFILL_SKIPPED, 0}; - void *st = *sptr; - size_t edx; - - if(max_length == 0) return result_skipped; - - (void)constr; - - if(st == NULL) { - st = CALLOC(1, specs->struct_size); - if(st == NULL) { - return result_failed; - } - } - - for(edx = 0; edx < td->elements_count; edx++) { - const asn_TYPE_member_t *elm = &td->elements[edx]; - void *memb_ptr; /* Pointer to the member */ - void **memb_ptr2; /* Pointer to that pointer */ - asn_random_fill_result_t tmpres; - - if(elm->optional && asn_random_between(0, 4) == 2) { - /* Sometimes decide not to fill the optional value */ - continue; - } - - if(elm->flags & ATF_POINTER) { - /* Member is a pointer to another structure */ - memb_ptr2 = (void **)((char *)st + elm->memb_offset); - } else { - memb_ptr = (char *)st + elm->memb_offset; - memb_ptr2 = &memb_ptr; - } - - tmpres = elm->type->op->random_fill( - elm->type, memb_ptr2, &elm->encoding_constraints, - max_length > result_ok.length ? max_length - result_ok.length : 0); - switch(tmpres.code) { - case ARFILL_OK: - result_ok.length += tmpres.length; - continue; - case ARFILL_SKIPPED: - assert(!(elm->flags & ATF_POINTER) || *memb_ptr2 == NULL); - continue; - case ARFILL_FAILED: - if(st == *sptr) { - ASN_STRUCT_RESET(*td, st); - } else { - ASN_STRUCT_FREE(*td, st); - } - return tmpres; - } - } - - *sptr = st; - - return result_ok; -} - diff --git a/e2sim/previous/ASN1c/constr_SEQUENCE.h b/e2sim/previous/ASN1c/constr_SEQUENCE.h deleted file mode 100644 index a7e81e5..0000000 --- a/e2sim/previous/ASN1c/constr_SEQUENCE.h +++ /dev/null @@ -1,86 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/*- - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef _CONSTR_SEQUENCE_H_ -#define _CONSTR_SEQUENCE_H_ - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct asn_SEQUENCE_specifics_s { - /* - * Target structure description. - */ - unsigned struct_size; /* Size of the target structure. */ - unsigned ctx_offset; /* Offset of the asn_struct_ctx_t member */ - - /* - * Tags to members mapping table (sorted). - */ - const asn_TYPE_tag2member_t *tag2el; - unsigned tag2el_count; - - /* - * Optional members of the extensions root (roms) or additions (aoms). - * Meaningful for PER. - */ - const int *oms; /* Optional MemberS */ - unsigned roms_count; /* Root optional members count */ - unsigned aoms_count; /* Additions optional members count */ - - /* - * Description of an extensions group. - * Root components are clustered at the beginning of the structure, - * whereas extensions are clustered at the end. -1 means not extensible. - */ - signed first_extension; /* First extension addition */ -} asn_SEQUENCE_specifics_t; - - -/* - * A set specialized functions dealing with the SEQUENCE type. - */ -asn_struct_free_f SEQUENCE_free; -asn_struct_print_f SEQUENCE_print; -asn_struct_compare_f SEQUENCE_compare; -asn_constr_check_f SEQUENCE_constraint; -ber_type_decoder_f SEQUENCE_decode_ber; -der_type_encoder_f SEQUENCE_encode_der; -xer_type_decoder_f SEQUENCE_decode_xer; -xer_type_encoder_f SEQUENCE_encode_xer; -oer_type_decoder_f SEQUENCE_decode_oer; -oer_type_encoder_f SEQUENCE_encode_oer; -per_type_decoder_f SEQUENCE_decode_uper; -per_type_encoder_f SEQUENCE_encode_uper; -per_type_decoder_f SEQUENCE_decode_aper; -per_type_encoder_f SEQUENCE_encode_aper; -asn_random_fill_f SEQUENCE_random_fill; -extern asn_TYPE_operation_t asn_OP_SEQUENCE; - -#ifdef __cplusplus -} -#endif - -#endif /* _CONSTR_SEQUENCE_H_ */ diff --git a/e2sim/previous/ASN1c/constr_SEQUENCE_OF.c b/e2sim/previous/ASN1c/constr_SEQUENCE_OF.c deleted file mode 100644 index f565a17..0000000 --- a/e2sim/previous/ASN1c/constr_SEQUENCE_OF.c +++ /dev/null @@ -1,376 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/*- - * Copyright (c) 2003, 2004, 2006 Lev Walkin . - * All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include - -/* - * The DER encoder of the SEQUENCE OF type. - */ -asn_enc_rval_t -SEQUENCE_OF_encode_der(const asn_TYPE_descriptor_t *td, const void *ptr, - int tag_mode, ber_tlv_tag_t tag, - asn_app_consume_bytes_f *cb, void *app_key) { - asn_TYPE_member_t *elm = td->elements; - const asn_anonymous_sequence_ *list = _A_CSEQUENCE_FROM_VOID(ptr); - size_t computed_size = 0; - ssize_t encoding_size = 0; - asn_enc_rval_t erval = {0,0,0}; - int edx; - - ASN_DEBUG("Estimating size of SEQUENCE OF %s", td->name); - - /* - * Gather the length of the underlying members sequence. - */ - for(edx = 0; edx < list->count; edx++) { - void *memb_ptr = list->array[edx]; - if(!memb_ptr) continue; - erval = elm->type->op->der_encoder(elm->type, memb_ptr, - 0, elm->tag, - 0, 0); - if(erval.encoded == -1) - return erval; - computed_size += erval.encoded; - } - - /* - * Encode the TLV for the sequence itself. - */ - encoding_size = der_write_tags(td, computed_size, tag_mode, 1, tag, - cb, app_key); - if(encoding_size == -1) { - erval.encoded = -1; - erval.failed_type = td; - erval.structure_ptr = ptr; - return erval; - } - - computed_size += encoding_size; - if(!cb) { - erval.encoded = computed_size; - ASN__ENCODED_OK(erval); - } - - ASN_DEBUG("Encoding members of SEQUENCE OF %s", td->name); - - /* - * Encode all members. - */ - for(edx = 0; edx < list->count; edx++) { - void *memb_ptr = list->array[edx]; - if(!memb_ptr) continue; - erval = elm->type->op->der_encoder(elm->type, memb_ptr, - 0, elm->tag, - cb, app_key); - if(erval.encoded == -1) - return erval; - encoding_size += erval.encoded; - } - - if(computed_size != (size_t)encoding_size) { - /* - * Encoded size is not equal to the computed size. - */ - erval.encoded = -1; - erval.failed_type = td; - erval.structure_ptr = ptr; - } else { - erval.encoded = computed_size; - erval.structure_ptr = 0; - erval.failed_type = 0; - } - - return erval; -} - -asn_enc_rval_t -SEQUENCE_OF_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, - int ilevel, enum xer_encoder_flags_e flags, - asn_app_consume_bytes_f *cb, void *app_key) { - asn_enc_rval_t er = {0,0,0}; - const asn_SET_OF_specifics_t *specs = (const asn_SET_OF_specifics_t *)td->specifics; - const asn_TYPE_member_t *elm = td->elements; - const asn_anonymous_sequence_ *list = _A_CSEQUENCE_FROM_VOID(sptr); - const char *mname = specs->as_XMLValueList - ? 0 - : ((*elm->name) ? elm->name : elm->type->xml_tag); - size_t mlen = mname ? strlen(mname) : 0; - int xcan = (flags & XER_F_CANONICAL); - int i; - - if(!sptr) ASN__ENCODE_FAILED; - - er.encoded = 0; - - for(i = 0; i < list->count; i++) { - asn_enc_rval_t tmper = {0,0,0}; - void *memb_ptr = list->array[i]; - if(!memb_ptr) continue; - - if(mname) { - if(!xcan) ASN__TEXT_INDENT(1, ilevel); - ASN__CALLBACK3("<", 1, mname, mlen, ">", 1); - } - - tmper = elm->type->op->xer_encoder(elm->type, memb_ptr, ilevel + 1, - flags, cb, app_key); - if(tmper.encoded == -1) return tmper; - er.encoded += tmper.encoded; - if(tmper.encoded == 0 && specs->as_XMLValueList) { - const char *name = elm->type->xml_tag; - size_t len = strlen(name); - if(!xcan) ASN__TEXT_INDENT(1, ilevel + 1); - ASN__CALLBACK3("<", 1, name, len, "/>", 2); - } - - if(mname) { - ASN__CALLBACK3("", 1); - } - } - - if(!xcan) ASN__TEXT_INDENT(1, ilevel - 1); - - ASN__ENCODED_OK(er); -cb_failed: - ASN__ENCODE_FAILED; -} - -#ifndef ASN_DISABLE_PER_SUPPORT - -asn_enc_rval_t -SEQUENCE_OF_encode_uper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_per_outp_t *po) { - const asn_anonymous_sequence_ *list; - const asn_per_constraint_t *ct; - asn_enc_rval_t er = {0,0,0}; - const asn_TYPE_member_t *elm = td->elements; - size_t encoded_edx; - - if(!sptr) ASN__ENCODE_FAILED; - list = _A_CSEQUENCE_FROM_VOID(sptr); - - er.encoded = 0; - - ASN_DEBUG("Encoding %s as SEQUENCE OF (%d)", td->name, list->count); - - if(constraints) ct = &constraints->size; - else if(td->encoding_constraints.per_constraints) - ct = &td->encoding_constraints.per_constraints->size; - else ct = 0; - - /* If extensible constraint, check if size is in root */ - if(ct) { - int not_in_root = - (list->count < ct->lower_bound || list->count > ct->upper_bound); - ASN_DEBUG("lb %ld ub %ld %s", ct->lower_bound, ct->upper_bound, - ct->flags & APC_EXTENSIBLE ? "ext" : "fix"); - if(ct->flags & APC_EXTENSIBLE) { - /* Declare whether size is in extension root */ - if(per_put_few_bits(po, not_in_root, 1)) ASN__ENCODE_FAILED; - if(not_in_root) ct = 0; - } else if(not_in_root && ct->effective_bits >= 0) { - ASN__ENCODE_FAILED; - } - - } - - if(ct && ct->effective_bits >= 0) { - /* X.691, #19.5: No length determinant */ - if(per_put_few_bits(po, list->count - ct->lower_bound, - ct->effective_bits)) - ASN__ENCODE_FAILED; - } else if(list->count == 0) { - /* When the list is empty add only the length determinant - * X.691, #20.6 and #11.9.4.1 - */ - if (uper_put_length(po, 0, 0)) { - ASN__ENCODE_FAILED; - } - ASN__ENCODED_OK(er); - } - - for(encoded_edx = 0; (ssize_t)encoded_edx < list->count;) { - ssize_t may_encode; - size_t edx; - int need_eom = 0; - - if(ct && ct->effective_bits >= 0) { - may_encode = list->count; - } else { - may_encode = - uper_put_length(po, list->count - encoded_edx, &need_eom); - if(may_encode < 0) ASN__ENCODE_FAILED; - } - - for(edx = encoded_edx; edx < encoded_edx + may_encode; edx++) { - void *memb_ptr = list->array[edx]; - if(!memb_ptr) ASN__ENCODE_FAILED; - er = elm->type->op->uper_encoder( - elm->type, elm->encoding_constraints.per_constraints, memb_ptr, - po); - if(er.encoded == -1) ASN__ENCODE_FAILED; - } - - if(need_eom && uper_put_length(po, 0, 0)) - ASN__ENCODE_FAILED; /* End of Message length */ - - encoded_edx += may_encode; - } - - ASN__ENCODED_OK(er); -} - -asn_enc_rval_t -SEQUENCE_OF_encode_aper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_per_outp_t *po) { - const asn_anonymous_sequence_ *list; - const asn_per_constraint_t *ct; - asn_enc_rval_t er = {0,0,0}; - asn_TYPE_member_t *elm = td->elements; - int seq; - - if(!sptr) ASN__ENCODE_FAILED; - list = _A_CSEQUENCE_FROM_VOID(sptr); - - er.encoded = 0; - - ASN_DEBUG("Encoding %s as SEQUENCE OF size (%d) using ALIGNED PER", td->name, list->count); - - if(constraints) ct = &constraints->size; - else if(td->encoding_constraints.per_constraints) - ct = &td->encoding_constraints.per_constraints->size; - else ct = 0; - - /* If extensible constraint, check if size is in root */ - if(ct) { - int not_in_root = (list->count < ct->lower_bound - || list->count > ct->upper_bound); - ASN_DEBUG("lb %ld ub %ld %s", - ct->lower_bound, ct->upper_bound, - ct->flags & APC_EXTENSIBLE ? "ext" : "fix"); - if(ct->flags & APC_EXTENSIBLE) { - /* Declare whether size is in extension root */ - if(per_put_few_bits(po, not_in_root, 1)) - ASN__ENCODE_FAILED; - if(not_in_root) ct = 0; - } else if(not_in_root && ct->effective_bits >= 0) - ASN__ENCODE_FAILED; - } - - if(ct && ct->effective_bits >= 0) { - /* X.691, #19.5: No length determinant */ -/* if(per_put_few_bits(po, list->count - ct->lower_bound, - ct->effective_bits)) - ASN__ENCODE_FAILED; -*/ - if (aper_put_length(po, ct->upper_bound - ct->lower_bound + 1, list->count - ct->lower_bound) < 0) - ASN__ENCODE_FAILED; - } - - for(seq = -1; seq < list->count;) { - ssize_t mayEncode; - if(seq < 0) seq = 0; - if(ct && ct->effective_bits >= 0) { - mayEncode = list->count; - } else { - mayEncode = aper_put_length(po, -1, list->count - seq); - if(mayEncode < 0) ASN__ENCODE_FAILED; - } - - while(mayEncode--) { - void *memb_ptr = list->array[seq++]; - if(!memb_ptr) ASN__ENCODE_FAILED; - er = elm->type->op->aper_encoder(elm->type, - elm->encoding_constraints.per_constraints, memb_ptr, po); - if(er.encoded == -1) - ASN__ENCODE_FAILED; - } - } - - ASN__ENCODED_OK(er); -} -#endif /* ASN_DISABLE_PER_SUPPORT */ - -int -SEQUENCE_OF_compare(const asn_TYPE_descriptor_t *td, const void *aptr, - const void *bptr) { - const asn_anonymous_sequence_ *a = _A_CSEQUENCE_FROM_VOID(aptr); - const asn_anonymous_sequence_ *b = _A_CSEQUENCE_FROM_VOID(bptr); - ssize_t idx; - - if(a && b) { - ssize_t common_length = (a->count < b->count ? a->count : b->count); - for(idx = 0; idx < common_length; idx++) { - int ret = td->elements->type->op->compare_struct( - td->elements->type, a->array[idx], b->array[idx]); - if(ret) return ret; - } - - if(idx < b->count) /* more elements in b */ - return -1; /* a is shorter, so put it first */ - if(idx < a->count) return 1; - - } else if(!a) { - return -1; - } else if(!b) { - return 1; - } - - return 0; -} - - -asn_TYPE_operation_t asn_OP_SEQUENCE_OF = { - SEQUENCE_OF_free, - SEQUENCE_OF_print, - SEQUENCE_OF_compare, - SEQUENCE_OF_decode_ber, - SEQUENCE_OF_encode_der, - SEQUENCE_OF_decode_xer, - SEQUENCE_OF_encode_xer, -#ifdef ASN_DISABLE_OER_SUPPORT - 0, - 0, -#else - SEQUENCE_OF_decode_oer, /* Same as SET OF decoder. */ - SEQUENCE_OF_encode_oer, /* Same as SET OF encoder */ -#endif /* ASN_DISABLE_OER_SUPPORT */ -#ifdef ASN_DISABLE_PER_SUPPORT - 0, - 0, - 0, - 0, -#else - SEQUENCE_OF_decode_uper, /* Same as SET OF decoder */ - SEQUENCE_OF_encode_uper, - SEQUENCE_OF_decode_aper, - SEQUENCE_OF_encode_aper, -#endif /* ASN_DISABLE_PER_SUPPORT */ - SEQUENCE_OF_random_fill, - 0 /* Use generic outmost tag fetcher */ -}; - diff --git a/e2sim/previous/ASN1c/constr_SEQUENCE_OF.h b/e2sim/previous/ASN1c/constr_SEQUENCE_OF.h deleted file mode 100644 index 890c66d..0000000 --- a/e2sim/previous/ASN1c/constr_SEQUENCE_OF.h +++ /dev/null @@ -1,59 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/*- - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef _CONSTR_SEQUENCE_OF_H_ -#define _CONSTR_SEQUENCE_OF_H_ - -#include -#include /* Implemented using SET OF */ - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * A set specialized functions dealing with the SEQUENCE OF type. - * Generally implemented using SET OF. - */ -asn_struct_compare_f SEQUENCE_OF_compare; -der_type_encoder_f SEQUENCE_OF_encode_der; -xer_type_encoder_f SEQUENCE_OF_encode_xer; -per_type_encoder_f SEQUENCE_OF_encode_uper; -per_type_encoder_f SEQUENCE_OF_encode_aper; -extern asn_TYPE_operation_t asn_OP_SEQUENCE_OF; - -#define SEQUENCE_OF_free SET_OF_free -#define SEQUENCE_OF_print SET_OF_print -#define SEQUENCE_OF_constraint SET_OF_constraint -#define SEQUENCE_OF_decode_ber SET_OF_decode_ber -#define SEQUENCE_OF_decode_xer SET_OF_decode_xer -#define SEQUENCE_OF_decode_oer SET_OF_decode_oer -#define SEQUENCE_OF_encode_oer SET_OF_encode_oer -#define SEQUENCE_OF_decode_uper SET_OF_decode_uper -#define SEQUENCE_OF_decode_aper SET_OF_decode_aper -#define SEQUENCE_OF_random_fill SET_OF_random_fill - -#ifdef __cplusplus -} -#endif - -#endif /* _CONSTR_SET_OF_H_ */ diff --git a/e2sim/previous/ASN1c/constr_SET_OF.c b/e2sim/previous/ASN1c/constr_SET_OF.c deleted file mode 100644 index 8737109..0000000 --- a/e2sim/previous/ASN1c/constr_SET_OF.c +++ /dev/null @@ -1,1459 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Copyright (c) 2003-2017 Lev Walkin . - * All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include - -/* - * Number of bytes left for this structure. - * (ctx->left) indicates the number of bytes _transferred_ for the structure. - * (size) contains the number of bytes in the buffer passed. - */ -#define LEFT ((size<(size_t)ctx->left)?size:(size_t)ctx->left) - -/* - * If the subprocessor function returns with an indication that it wants - * more data, it may well be a fatal decoding problem, because the - * size is constrained by the 's L, even if the buffer size allows - * reading more data. - * For example, consider the buffer containing the following TLVs: - * ... - * The TLV length clearly indicates that one byte is expected in V, but - * if the V processor returns with "want more data" even if the buffer - * contains way more data than the V processor have seen. - */ -#define SIZE_VIOLATION (ctx->left >= 0 && (size_t)ctx->left <= size) - -/* - * This macro "eats" the part of the buffer which is definitely "consumed", - * i.e. was correctly converted into local representation or rightfully skipped. - */ -#undef ADVANCE -#define ADVANCE(num_bytes) do { \ - size_t num = num_bytes; \ - ptr = ((const char *)ptr) + num;\ - size -= num; \ - if(ctx->left >= 0) \ - ctx->left -= num; \ - consumed_myself += num; \ - } while(0) - -/* - * Switch to the next phase of parsing. - */ -#undef NEXT_PHASE -#undef PHASE_OUT -#define NEXT_PHASE(ctx) do { \ - ctx->phase++; \ - ctx->step = 0; \ - } while(0) -#define PHASE_OUT(ctx) do { ctx->phase = 10; } while(0) - -/* - * Return a standardized complex structure. - */ -#undef RETURN -#define RETURN(_code) do { \ - rval.code = _code; \ - rval.consumed = consumed_myself;\ - return rval; \ - } while(0) - -/* - * The decoder of the SET OF type. - */ -asn_dec_rval_t -SET_OF_decode_ber(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **struct_ptr, - const void *ptr, size_t size, int tag_mode) { - /* - * Bring closer parts of structure description. - */ - const asn_SET_OF_specifics_t *specs = (const asn_SET_OF_specifics_t *)td->specifics; - const asn_TYPE_member_t *elm = td->elements; /* Single one */ - - /* - * Parts of the structure being constructed. - */ - void *st = *struct_ptr; /* Target structure. */ - asn_struct_ctx_t *ctx; /* Decoder context */ - - ber_tlv_tag_t tlv_tag; /* T from TLV */ - asn_dec_rval_t rval; /* Return code from subparsers */ - - ssize_t consumed_myself = 0; /* Consumed bytes from ptr */ - - ASN_DEBUG("Decoding %s as SET OF", td->name); - - /* - * Create the target structure if it is not present already. - */ - if(st == 0) { - st = *struct_ptr = CALLOC(1, specs->struct_size); - if(st == 0) { - RETURN(RC_FAIL); - } - } - - /* - * Restore parsing context. - */ - ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset); - - /* - * Start to parse where left previously - */ - switch(ctx->phase) { - case 0: - /* - * PHASE 0. - * Check that the set of tags associated with given structure - * perfectly fits our expectations. - */ - - rval = ber_check_tags(opt_codec_ctx, td, ctx, ptr, size, - tag_mode, 1, &ctx->left, 0); - if(rval.code != RC_OK) { - ASN_DEBUG("%s tagging check failed: %d", - td->name, rval.code); - return rval; - } - - if(ctx->left >= 0) - ctx->left += rval.consumed; /* ?Substracted below! */ - ADVANCE(rval.consumed); - - ASN_DEBUG("Structure consumes %ld bytes, " - "buffer %ld", (long)ctx->left, (long)size); - - NEXT_PHASE(ctx); - /* Fall through */ - case 1: - /* - * PHASE 1. - * From the place where we've left it previously, - * try to decode the next item. - */ - for(;; ctx->step = 0) { - ssize_t tag_len; /* Length of TLV's T */ - - if(ctx->step & 1) - goto microphase2; - - /* - * MICROPHASE 1: Synchronize decoding. - */ - - if(ctx->left == 0) { - ASN_DEBUG("End of SET OF %s", td->name); - /* - * No more things to decode. - * Exit out of here. - */ - PHASE_OUT(ctx); - RETURN(RC_OK); - } - - /* - * Fetch the T from TLV. - */ - tag_len = ber_fetch_tag(ptr, LEFT, &tlv_tag); - switch(tag_len) { - case 0: if(!SIZE_VIOLATION) RETURN(RC_WMORE); - /* Fall through */ - case -1: RETURN(RC_FAIL); - } - - if(ctx->left < 0 && ((const uint8_t *)ptr)[0] == 0) { - if(LEFT < 2) { - if(SIZE_VIOLATION) - RETURN(RC_FAIL); - else - RETURN(RC_WMORE); - } else if(((const uint8_t *)ptr)[1] == 0) { - /* - * Found the terminator of the - * indefinite length structure. - */ - break; - } - } - - /* Outmost tag may be unknown and cannot be fetched/compared */ - if(elm->tag != (ber_tlv_tag_t)-1) { - if(BER_TAGS_EQUAL(tlv_tag, elm->tag)) { - /* - * The new list member of expected type has arrived. - */ - } else { - ASN_DEBUG("Unexpected tag %s fixed SET OF %s", - ber_tlv_tag_string(tlv_tag), td->name); - ASN_DEBUG("%s SET OF has tag %s", - td->name, ber_tlv_tag_string(elm->tag)); - RETURN(RC_FAIL); - } - } - - /* - * MICROPHASE 2: Invoke the member-specific decoder. - */ - ctx->step |= 1; /* Confirm entering next microphase */ - microphase2: - - /* - * Invoke the member fetch routine according to member's type - */ - rval = elm->type->op->ber_decoder(opt_codec_ctx, - elm->type, &ctx->ptr, ptr, LEFT, 0); - ASN_DEBUG("In %s SET OF %s code %d consumed %d", - td->name, elm->type->name, - rval.code, (int)rval.consumed); - switch(rval.code) { - case RC_OK: - { - asn_anonymous_set_ *list = _A_SET_FROM_VOID(st); - if(ASN_SET_ADD(list, ctx->ptr) != 0) - RETURN(RC_FAIL); - else - ctx->ptr = 0; - } - break; - case RC_WMORE: /* More data expected */ - if(!SIZE_VIOLATION) { - ADVANCE(rval.consumed); - RETURN(RC_WMORE); - } - /* Fall through */ - case RC_FAIL: /* Fatal error */ - ASN_STRUCT_FREE(*elm->type, ctx->ptr); - ctx->ptr = 0; - RETURN(RC_FAIL); - } /* switch(rval) */ - - ADVANCE(rval.consumed); - } /* for(all list members) */ - - NEXT_PHASE(ctx); - case 2: - /* - * Read in all "end of content" TLVs. - */ - while(ctx->left < 0) { - if(LEFT < 2) { - if(LEFT > 0 && ((const char *)ptr)[0] != 0) { - /* Unexpected tag */ - RETURN(RC_FAIL); - } else { - RETURN(RC_WMORE); - } - } - if(((const char *)ptr)[0] == 0 - && ((const char *)ptr)[1] == 0) { - ADVANCE(2); - ctx->left++; - } else { - RETURN(RC_FAIL); - } - } - - PHASE_OUT(ctx); - } - - RETURN(RC_OK); -} - -/* - * Internally visible buffer holding a single encoded element. - */ -struct _el_buffer { - uint8_t *buf; - size_t length; - size_t allocated_size; - unsigned bits_unused; -}; -/* Append bytes to the above structure */ -static int _el_addbytes(const void *buffer, size_t size, void *el_buf_ptr) { - struct _el_buffer *el_buf = (struct _el_buffer *)el_buf_ptr; - - if(el_buf->length + size > el_buf->allocated_size) { - size_t new_size = el_buf->allocated_size ? el_buf->allocated_size : 8; - void *p; - - do { - new_size <<= 2; - } while(el_buf->length + size > new_size); - - p = REALLOC(el_buf->buf, new_size); - if(p) { - el_buf->buf = p; - el_buf->allocated_size = new_size; - } else { - return -1; - } - } - - memcpy(el_buf->buf + el_buf->length, buffer, size); - - el_buf->length += size; - return 0; -} - -static void assert_unused_bits(const struct _el_buffer* p) { - if(p->length) { - assert((p->buf[p->length-1] & ~(0xff << p->bits_unused)) == 0); - } else { - assert(p->bits_unused == 0); - } -} - -static int _el_buf_cmp(const void *ap, const void *bp) { - const struct _el_buffer *a = (const struct _el_buffer *)ap; - const struct _el_buffer *b = (const struct _el_buffer *)bp; - size_t common_len; - int ret = 0; - - if(a->length < b->length) - common_len = a->length; - else - common_len = b->length; - - if (a->buf && b->buf) { - ret = memcmp(a->buf, b->buf, common_len); - } - if(ret == 0) { - if(a->length < b->length) - ret = -1; - else if(a->length > b->length) - ret = 1; - /* Ignore unused bits. */ - assert_unused_bits(a); - assert_unused_bits(b); - } - - return ret; -} - -static void -SET_OF__encode_sorted_free(struct _el_buffer *el_buf, size_t count) { - size_t i; - - for(i = 0; i < count; i++) { - FREEMEM(el_buf[i].buf); - } - - FREEMEM(el_buf); -} - -enum SET_OF__encode_method { - SOES_DER, /* Distinguished Encoding Rules */ - SOES_CUPER /* Canonical Unaligned Packed Encoding Rules */ -}; - -static struct _el_buffer * -SET_OF__encode_sorted(const asn_TYPE_member_t *elm, - const asn_anonymous_set_ *list, - enum SET_OF__encode_method method) { - struct _el_buffer *encoded_els; - int edx; - - encoded_els = - (struct _el_buffer *)CALLOC(list->count, sizeof(encoded_els[0])); - if(encoded_els == NULL) { - return NULL; - } - - /* - * Encode all members. - */ - for(edx = 0; edx < list->count; edx++) { - const void *memb_ptr = list->array[edx]; - struct _el_buffer *encoding_el = &encoded_els[edx]; - asn_enc_rval_t erval = {0,0,0}; - - if(!memb_ptr) break; - - /* - * Encode the member into the prepared space. - */ - switch(method) { - case SOES_DER: - erval = elm->type->op->der_encoder(elm->type, memb_ptr, 0, elm->tag, - _el_addbytes, encoding_el); - break; - case SOES_CUPER: - erval = uper_encode(elm->type, - elm->encoding_constraints.per_constraints, - memb_ptr, _el_addbytes, encoding_el); - if(erval.encoded != -1) { - size_t extra_bits = erval.encoded % 8; - assert(encoding_el->length == (size_t)(erval.encoded + 7) / 8); - encoding_el->bits_unused = (8 - extra_bits) & 0x7; - } - break; - default: - assert(!"Unreachable"); - break; - } - if(erval.encoded < 0) break; - } - - if(edx == list->count) { - /* - * Sort the encoded elements according to their encoding. - */ - qsort(encoded_els, list->count, sizeof(encoded_els[0]), _el_buf_cmp); - - return encoded_els; - } else { - SET_OF__encode_sorted_free(encoded_els, edx); - return NULL; - } -} - - -/* - * The DER encoder of the SET OF type. - */ -asn_enc_rval_t -SET_OF_encode_der(const asn_TYPE_descriptor_t *td, const void *sptr, - int tag_mode, ber_tlv_tag_t tag, asn_app_consume_bytes_f *cb, - void *app_key) { - const asn_TYPE_member_t *elm = td->elements; - const asn_anonymous_set_ *list = _A_CSET_FROM_VOID(sptr); - size_t computed_size = 0; - ssize_t encoding_size = 0; - struct _el_buffer *encoded_els; - int edx; - - ASN_DEBUG("Estimating size for SET OF %s", td->name); - - /* - * Gather the length of the underlying members sequence. - */ - for(edx = 0; edx < list->count; edx++) { - void *memb_ptr = list->array[edx]; - asn_enc_rval_t erval = {0,0,0}; - - if(!memb_ptr) ASN__ENCODE_FAILED; - - erval = - elm->type->op->der_encoder(elm->type, memb_ptr, 0, elm->tag, 0, 0); - if(erval.encoded == -1) return erval; - computed_size += erval.encoded; - } - - - /* - * Encode the TLV for the sequence itself. - */ - encoding_size = - der_write_tags(td, computed_size, tag_mode, 1, tag, cb, app_key); - if(encoding_size < 0) { - ASN__ENCODE_FAILED; - } - computed_size += encoding_size; - - if(!cb || list->count == 0) { - asn_enc_rval_t erval = {0,0,0}; - erval.encoded = computed_size; - ASN__ENCODED_OK(erval); - } - - ASN_DEBUG("Encoding members of %s SET OF", td->name); - - /* - * DER mandates dynamic sorting of the SET OF elements - * according to their encodings. Build an array of the - * encoded elements. - */ - encoded_els = SET_OF__encode_sorted(elm, list, SOES_DER); - - /* - * Report encoded elements to the application. - * Dispose of temporary sorted members table. - */ - for(edx = 0; edx < list->count; edx++) { - struct _el_buffer *encoded_el = &encoded_els[edx]; - /* Report encoded chunks to the application */ - if(cb(encoded_el->buf, encoded_el->length, app_key) < 0) { - break; - } else { - encoding_size += encoded_el->length; - } - } - - SET_OF__encode_sorted_free(encoded_els, list->count); - - if(edx == list->count) { - asn_enc_rval_t erval = {0,0,0}; - assert(computed_size == (size_t)encoding_size); - erval.encoded = computed_size; - ASN__ENCODED_OK(erval); - } else { - ASN__ENCODE_FAILED; - } -} - -#undef XER_ADVANCE -#define XER_ADVANCE(num_bytes) do { \ - size_t num = num_bytes; \ - buf_ptr = ((const char *)buf_ptr) + num;\ - size -= num; \ - consumed_myself += num; \ - } while(0) - -/* - * Decode the XER (XML) data. - */ -asn_dec_rval_t -SET_OF_decode_xer(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **struct_ptr, - const char *opt_mname, const void *buf_ptr, size_t size) { - /* - * Bring closer parts of structure description. - */ - const asn_SET_OF_specifics_t *specs = (const asn_SET_OF_specifics_t *)td->specifics; - const asn_TYPE_member_t *element = td->elements; - const char *elm_tag; - const char *xml_tag = opt_mname ? opt_mname : td->xml_tag; - - /* - * ... and parts of the structure being constructed. - */ - void *st = *struct_ptr; /* Target structure. */ - asn_struct_ctx_t *ctx; /* Decoder context */ - - asn_dec_rval_t rval = {RC_OK, 0};/* Return value from a decoder */ - ssize_t consumed_myself = 0; /* Consumed bytes from ptr */ - - /* - * Create the target structure if it is not present already. - */ - if(st == 0) { - st = *struct_ptr = CALLOC(1, specs->struct_size); - if(st == 0) RETURN(RC_FAIL); - } - - /* Which tag is expected for the downstream */ - if(specs->as_XMLValueList) { - elm_tag = (specs->as_XMLValueList == 1) ? 0 : ""; - } else { - elm_tag = (*element->name) - ? element->name : element->type->xml_tag; - } - - /* - * Restore parsing context. - */ - ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset); - - /* - * Phases of XER/XML processing: - * Phase 0: Check that the opening tag matches our expectations. - * Phase 1: Processing body and reacting on closing tag. - * Phase 2: Processing inner type. - */ - for(; ctx->phase <= 2;) { - pxer_chunk_type_e ch_type; /* XER chunk type */ - ssize_t ch_size; /* Chunk size */ - xer_check_tag_e tcv; /* Tag check value */ - - /* - * Go inside the inner member of a set. - */ - if(ctx->phase == 2) { - asn_dec_rval_t tmprval = {RC_OK, 0}; - - /* Invoke the inner type decoder, m.b. multiple times */ - ASN_DEBUG("XER/SET OF element [%s]", elm_tag); - tmprval = element->type->op->xer_decoder(opt_codec_ctx, - element->type, &ctx->ptr, elm_tag, - buf_ptr, size); - if(tmprval.code == RC_OK) { - asn_anonymous_set_ *list = _A_SET_FROM_VOID(st); - if(ASN_SET_ADD(list, ctx->ptr) != 0) - RETURN(RC_FAIL); - ctx->ptr = 0; - XER_ADVANCE(tmprval.consumed); - } else { - XER_ADVANCE(tmprval.consumed); - RETURN(tmprval.code); - } - ctx->phase = 1; /* Back to body processing */ - ASN_DEBUG("XER/SET OF phase => %d", ctx->phase); - /* Fall through */ - } - - /* - * Get the next part of the XML stream. - */ - ch_size = xer_next_token(&ctx->context, - buf_ptr, size, &ch_type); - if(ch_size == -1) { - RETURN(RC_FAIL); - } else { - switch(ch_type) { - case PXER_WMORE: - RETURN(RC_WMORE); - case PXER_COMMENT: /* Got XML comment */ - case PXER_TEXT: /* Ignore free-standing text */ - XER_ADVANCE(ch_size); /* Skip silently */ - continue; - case PXER_TAG: - break; /* Check the rest down there */ - } - } - - tcv = xer_check_tag(buf_ptr, ch_size, xml_tag); - ASN_DEBUG("XER/SET OF: tcv = %d, ph=%d t=%s", - tcv, ctx->phase, xml_tag); - switch(tcv) { - case XCT_CLOSING: - if(ctx->phase == 0) break; - ctx->phase = 0; - /* Fall through */ - case XCT_BOTH: - if(ctx->phase == 0) { - /* No more things to decode */ - XER_ADVANCE(ch_size); - ctx->phase = 3; /* Phase out */ - RETURN(RC_OK); - } - /* Fall through */ - case XCT_OPENING: - if(ctx->phase == 0) { - XER_ADVANCE(ch_size); - ctx->phase = 1; /* Processing body phase */ - continue; - } - /* Fall through */ - case XCT_UNKNOWN_OP: - case XCT_UNKNOWN_BO: - - ASN_DEBUG("XER/SET OF: tcv=%d, ph=%d", tcv, ctx->phase); - if(ctx->phase == 1) { - /* - * Process a single possible member. - */ - ctx->phase = 2; - continue; - } - /* Fall through */ - default: - break; - } - - ASN_DEBUG("Unexpected XML tag in SET OF"); - break; - } - - ctx->phase = 3; /* "Phase out" on hard failure */ - RETURN(RC_FAIL); -} - - - -typedef struct xer_tmp_enc_s { - void *buffer; - size_t offset; - size_t size; -} xer_tmp_enc_t; -static int -SET_OF_encode_xer_callback(const void *buffer, size_t size, void *key) { - xer_tmp_enc_t *t = (xer_tmp_enc_t *)key; - if(t->offset + size >= t->size) { - size_t newsize = (t->size << 2) + size; - void *p = REALLOC(t->buffer, newsize); - if(!p) return -1; - t->buffer = p; - t->size = newsize; - } - memcpy((char *)t->buffer + t->offset, buffer, size); - t->offset += size; - return 0; -} -static int -SET_OF_xer_order(const void *aptr, const void *bptr) { - const xer_tmp_enc_t *a = (const xer_tmp_enc_t *)aptr; - const xer_tmp_enc_t *b = (const xer_tmp_enc_t *)bptr; - size_t minlen = a->offset; - int ret; - if(b->offset < minlen) minlen = b->offset; - /* Well-formed UTF-8 has this nice lexicographical property... */ - ret = memcmp(a->buffer, b->buffer, minlen); - if(ret != 0) return ret; - if(a->offset == b->offset) - return 0; - if(a->offset == minlen) - return -1; - return 1; -} - - -asn_enc_rval_t -SET_OF_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, - enum xer_encoder_flags_e flags, asn_app_consume_bytes_f *cb, - void *app_key) { - asn_enc_rval_t er = {0,0,0}; - const asn_SET_OF_specifics_t *specs = (const asn_SET_OF_specifics_t *)td->specifics; - const asn_TYPE_member_t *elm = td->elements; - const asn_anonymous_set_ *list = _A_CSET_FROM_VOID(sptr); - const char *mname = specs->as_XMLValueList - ? 0 : ((*elm->name) ? elm->name : elm->type->xml_tag); - size_t mlen = mname ? strlen(mname) : 0; - int xcan = (flags & XER_F_CANONICAL); - xer_tmp_enc_t *encs = 0; - size_t encs_count = 0; - void *original_app_key = app_key; - asn_app_consume_bytes_f *original_cb = cb; - int i; - - if(!sptr) ASN__ENCODE_FAILED; - - if(xcan) { - encs = (xer_tmp_enc_t *)MALLOC(list->count * sizeof(encs[0])); - if(!encs) ASN__ENCODE_FAILED; - cb = SET_OF_encode_xer_callback; - } - - er.encoded = 0; - - for(i = 0; i < list->count; i++) { - asn_enc_rval_t tmper = {0,0,0}; - - void *memb_ptr = list->array[i]; - if(!memb_ptr) continue; - - if(encs) { - memset(&encs[encs_count], 0, sizeof(encs[0])); - app_key = &encs[encs_count]; - encs_count++; - } - - if(mname) { - if(!xcan) ASN__TEXT_INDENT(1, ilevel); - ASN__CALLBACK3("<", 1, mname, mlen, ">", 1); - } - - if(!xcan && specs->as_XMLValueList == 1) - ASN__TEXT_INDENT(1, ilevel + 1); - tmper = elm->type->op->xer_encoder(elm->type, memb_ptr, - ilevel + (specs->as_XMLValueList != 2), - flags, cb, app_key); - if(tmper.encoded == -1) return tmper; - er.encoded += tmper.encoded; - if(tmper.encoded == 0 && specs->as_XMLValueList) { - const char *name = elm->type->xml_tag; - size_t len = strlen(name); - ASN__CALLBACK3("<", 1, name, len, "/>", 2); - } - - if(mname) { - ASN__CALLBACK3("", 1); - } - - } - - if(!xcan) ASN__TEXT_INDENT(1, ilevel - 1); - - if(encs) { - xer_tmp_enc_t *enc = encs; - xer_tmp_enc_t *end = encs + encs_count; - ssize_t control_size = 0; - - er.encoded = 0; - cb = original_cb; - app_key = original_app_key; - qsort(encs, encs_count, sizeof(encs[0]), SET_OF_xer_order); - - for(; enc < end; enc++) { - ASN__CALLBACK(enc->buffer, enc->offset); - FREEMEM(enc->buffer); - enc->buffer = 0; - control_size += enc->offset; - } - assert(control_size == er.encoded); - } - - goto cleanup; -cb_failed: - ASN__ENCODE_FAILED; -cleanup: - if(encs) { - size_t n; - for(n = 0; n < encs_count; n++) { - FREEMEM(encs[n].buffer); - } - FREEMEM(encs); - } - ASN__ENCODED_OK(er); -} - -int -SET_OF_print(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, - asn_app_consume_bytes_f *cb, void *app_key) { - asn_TYPE_member_t *elm = td->elements; - const asn_anonymous_set_ *list = _A_CSET_FROM_VOID(sptr); - int ret; - int i; - - if(!sptr) return (cb("", 8, app_key) < 0) ? -1 : 0; - - /* Dump preamble */ - if(cb(td->name, strlen(td->name), app_key) < 0 - || cb(" ::= {", 6, app_key) < 0) - return -1; - - for(i = 0; i < list->count; i++) { - const void *memb_ptr = list->array[i]; - if(!memb_ptr) continue; - - _i_INDENT(1); - - ret = elm->type->op->print_struct(elm->type, memb_ptr, - ilevel + 1, cb, app_key); - if(ret) return ret; - } - - ilevel--; - _i_INDENT(1); - - return (cb("}", 1, app_key) < 0) ? -1 : 0; -} - -void -SET_OF_free(const asn_TYPE_descriptor_t *td, void *ptr, - enum asn_struct_free_method method) { - if(td && ptr) { - const asn_SET_OF_specifics_t *specs; - asn_TYPE_member_t *elm = td->elements; - asn_anonymous_set_ *list = _A_SET_FROM_VOID(ptr); - asn_struct_ctx_t *ctx; /* Decoder context */ - int i; - - /* - * Could not use set_of_empty() because of (*free) - * incompatibility. - */ - for(i = 0; i < list->count; i++) { - void *memb_ptr = list->array[i]; - if(memb_ptr) - ASN_STRUCT_FREE(*elm->type, memb_ptr); - } - list->count = 0; /* No meaningful elements left */ - - asn_set_empty(list); /* Remove (list->array) */ - - specs = (const asn_SET_OF_specifics_t *)td->specifics; - ctx = (asn_struct_ctx_t *)((char *)ptr + specs->ctx_offset); - if(ctx->ptr) { - ASN_STRUCT_FREE(*elm->type, ctx->ptr); - ctx->ptr = 0; - } - - switch(method) { - case ASFM_FREE_EVERYTHING: - FREEMEM(ptr); - break; - case ASFM_FREE_UNDERLYING: - break; - case ASFM_FREE_UNDERLYING_AND_RESET: - memset(ptr, 0, specs->struct_size); - break; - } - } -} - -int -SET_OF_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const asn_TYPE_member_t *elm = td->elements; - asn_constr_check_f *constr; - const asn_anonymous_set_ *list = _A_CSET_FROM_VOID(sptr); - int i; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - constr = elm->encoding_constraints.general_constraints; - if(!constr) constr = elm->type->encoding_constraints.general_constraints; - - /* - * Iterate over the members of an array. - * Validate each in turn, until one fails. - */ - for(i = 0; i < list->count; i++) { - const void *memb_ptr = list->array[i]; - int ret; - - if(!memb_ptr) continue; - - ret = constr(elm->type, memb_ptr, ctfailcb, app_key); - if(ret) return ret; - } - - return 0; -} - -#ifndef ASN_DISABLE_PER_SUPPORT - -asn_dec_rval_t -SET_OF_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, - asn_per_data_t *pd) { - asn_dec_rval_t rv = {RC_OK, 0}; - const asn_SET_OF_specifics_t *specs = (const asn_SET_OF_specifics_t *)td->specifics; - const asn_TYPE_member_t *elm = td->elements; /* Single one */ - void *st = *sptr; - asn_anonymous_set_ *list; - const asn_per_constraint_t *ct; - int repeat = 0; - ssize_t nelems; - - if(ASN__STACK_OVERFLOW_CHECK(opt_codec_ctx)) - ASN__DECODE_FAILED; - - /* - * Create the target structure if it is not present already. - */ - if(!st) { - st = *sptr = CALLOC(1, specs->struct_size); - if(!st) ASN__DECODE_FAILED; - } - list = _A_SET_FROM_VOID(st); - - /* Figure out which constraints to use */ - if(constraints) ct = &constraints->size; - else if(td->encoding_constraints.per_constraints) - ct = &td->encoding_constraints.per_constraints->size; - else ct = 0; - - if(ct && ct->flags & APC_EXTENSIBLE) { - int value = per_get_few_bits(pd, 1); - if(value < 0) ASN__DECODE_STARVED; - if(value) ct = 0; /* Not restricted! */ - } - - if(ct && ct->effective_bits >= 0) { - /* X.691, #19.5: No length determinant */ - nelems = per_get_few_bits(pd, ct->effective_bits); - ASN_DEBUG("Preparing to fetch %ld+%ld elements from %s", - (long)nelems, ct->lower_bound, td->name); - if(nelems < 0) ASN__DECODE_STARVED; - nelems += ct->lower_bound; - } else { - nelems = -1; - } - - do { - int i; - if(nelems < 0) { - nelems = uper_get_length(pd, -1, 0, &repeat); - ASN_DEBUG("Got to decode %" ASN_PRI_SSIZE " elements (eff %d)", - nelems, (int)(ct ? ct->effective_bits : -1)); - if(nelems < 0) ASN__DECODE_STARVED; - } - - for(i = 0; i < nelems; i++) { - void *ptr = 0; - ASN_DEBUG("SET OF %s decoding", elm->type->name); - rv = elm->type->op->uper_decoder(opt_codec_ctx, elm->type, - elm->encoding_constraints.per_constraints, &ptr, pd); - ASN_DEBUG("%s SET OF %s decoded %d, %p", - td->name, elm->type->name, rv.code, ptr); - if(rv.code == RC_OK) { - if(ASN_SET_ADD(list, ptr) == 0) { - if(rv.consumed == 0 && nelems > 200) { - /* Protect from SET OF NULL compression bombs. */ - ASN__DECODE_FAILED; - } - continue; - } - ASN_DEBUG("Failed to add element into %s", - td->name); - /* Fall through */ - rv.code = RC_FAIL; - } else { - ASN_DEBUG("Failed decoding %s of %s (SET OF)", - elm->type->name, td->name); - } - if(ptr) ASN_STRUCT_FREE(*elm->type, ptr); - return rv; - } - - nelems = -1; /* Allow uper_get_length() */ - } while(repeat); - - ASN_DEBUG("Decoded %s as SET OF", td->name); - - rv.code = RC_OK; - rv.consumed = 0; - return rv; -} - -asn_enc_rval_t -SET_OF_encode_uper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, const void *sptr, - asn_per_outp_t *po) { - const asn_anonymous_set_ *list; - const asn_per_constraint_t *ct; - const asn_TYPE_member_t *elm = td->elements; - struct _el_buffer *encoded_els; - asn_enc_rval_t er = {0,0,0}; - size_t encoded_edx; - - if(!sptr) ASN__ENCODE_FAILED; - - list = _A_CSET_FROM_VOID(sptr); - - er.encoded = 0; - - ASN_DEBUG("Encoding %s as SEQUENCE OF (%d)", td->name, list->count); - - if(constraints) ct = &constraints->size; - else if(td->encoding_constraints.per_constraints) - ct = &td->encoding_constraints.per_constraints->size; - else ct = 0; - - /* If extensible constraint, check if size is in root */ - if(ct) { - int not_in_root = - (list->count < ct->lower_bound || list->count > ct->upper_bound); - ASN_DEBUG("lb %ld ub %ld %s", ct->lower_bound, ct->upper_bound, - ct->flags & APC_EXTENSIBLE ? "ext" : "fix"); - if(ct->flags & APC_EXTENSIBLE) { - /* Declare whether size is in extension root */ - if(per_put_few_bits(po, not_in_root, 1)) ASN__ENCODE_FAILED; - if(not_in_root) ct = 0; - } else if(not_in_root && ct->effective_bits >= 0) { - ASN__ENCODE_FAILED; - } - - } - - if(ct && ct->effective_bits >= 0) { - /* X.691, #19.5: No length determinant */ - if(per_put_few_bits(po, list->count - ct->lower_bound, - ct->effective_bits)) - ASN__ENCODE_FAILED; - } else if(list->count == 0) { - /* When the list is empty add only the length determinant - * X.691, #20.6 and #11.9.4.1 - */ - if (uper_put_length(po, 0, 0)) { - ASN__ENCODE_FAILED; - } - ASN__ENCODED_OK(er); - } - - - /* - * Canonical UPER #22.1 mandates dynamic sorting of the SET OF elements - * according to their encodings. Build an array of the encoded elements. - */ - encoded_els = SET_OF__encode_sorted(elm, list, SOES_CUPER); - - for(encoded_edx = 0; (ssize_t)encoded_edx < list->count;) { - ssize_t may_encode; - size_t edx; - int need_eom = 0; - - if(ct && ct->effective_bits >= 0) { - may_encode = list->count; - } else { - may_encode = - uper_put_length(po, list->count - encoded_edx, &need_eom); - if(may_encode < 0) ASN__ENCODE_FAILED; - } - - for(edx = encoded_edx; edx < encoded_edx + may_encode; edx++) { - const struct _el_buffer *el = &encoded_els[edx]; - if(asn_put_many_bits(po, el->buf, - (8 * el->length) - el->bits_unused) < 0) { - break; - } - } - - if(need_eom && uper_put_length(po, 0, 0)) - ASN__ENCODE_FAILED; /* End of Message length */ - - encoded_edx += may_encode; - } - - SET_OF__encode_sorted_free(encoded_els, list->count); - - if((ssize_t)encoded_edx == list->count) { - ASN__ENCODED_OK(er); - } else { - ASN__ENCODE_FAILED; - } -} - -asn_dec_rval_t -SET_OF_decode_aper(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, asn_per_data_t *pd) { - asn_dec_rval_t rv = {RC_OK, 0}; - const asn_SET_OF_specifics_t *specs = (const asn_SET_OF_specifics_t *)td->specifics; - const asn_TYPE_member_t *elm = td->elements; /* Single one */ - void *st = *sptr; - asn_anonymous_set_ *list; - const asn_per_constraint_t *ct; - int repeat = 0; - ssize_t nelems; - - if(ASN__STACK_OVERFLOW_CHECK(opt_codec_ctx)) - ASN__DECODE_FAILED; - - /* - * Create the target structure if it is not present already. - */ - if(!st) { - st = *sptr = CALLOC(1, specs->struct_size); - if(!st) ASN__DECODE_FAILED; - } - list = _A_SET_FROM_VOID(st); - - /* Figure out which constraints to use */ - if(constraints) ct = &constraints->size; - else if(td->encoding_constraints.per_constraints) - ct = &td->encoding_constraints.per_constraints->size; - else ct = 0; - - if(ct && ct->flags & APC_EXTENSIBLE) { - int value = per_get_few_bits(pd, 1); - if(value < 0) ASN__DECODE_STARVED; - if(value) ct = 0; /* Not restricted! */ - } - - if(ct && ct->effective_bits >= 0) { - /* X.691, #19.5: No length determinant */ - nelems = aper_get_nsnnwn(pd, ct->upper_bound - ct->lower_bound + 1); - ASN_DEBUG("Preparing to fetch %ld+%ld elements from %s", - (long)nelems, ct->lower_bound, td->name); - if(nelems < 0) ASN__DECODE_STARVED; - nelems += ct->lower_bound; - } else { - nelems = -1; - } - - do { - int i; - if(nelems < 0) { - nelems = aper_get_length(pd, ct ? ct->upper_bound - ct->lower_bound + 1 : -1, - ct ? ct->effective_bits : -1, &repeat); - ASN_DEBUG("Got to decode %d elements (eff %d)", - (int)nelems, (int)(ct ? ct->effective_bits : -1)); - if(nelems < 0) ASN__DECODE_STARVED; - } - - for(i = 0; i < nelems; i++) { - void *ptr = 0; - ASN_DEBUG("SET OF %s decoding", elm->type->name); - rv = elm->type->op->aper_decoder(opt_codec_ctx, elm->type, - elm->encoding_constraints.per_constraints, &ptr, pd); - ASN_DEBUG("%s SET OF %s decoded %d, %p", - td->name, elm->type->name, rv.code, ptr); - if(rv.code == RC_OK) { - if(ASN_SET_ADD(list, ptr) == 0) - continue; - ASN_DEBUG("Failed to add element into %s", - td->name); - /* Fall through */ - rv.code = RC_FAIL; - } else { - ASN_DEBUG("Failed decoding %s of %s (SET OF)", - elm->type->name, td->name); - } - if(ptr) ASN_STRUCT_FREE(*elm->type, ptr); - return rv; - } - - nelems = -1; /* Allow uper_get_length() */ - } while(repeat); - - ASN_DEBUG("Decoded %s as SET OF", td->name); - - rv.code = RC_OK; - rv.consumed = 0; - return rv; -} - -#endif /* ASN_DISABLE_PER_SUPPORT */ - -struct comparable_ptr { - const asn_TYPE_descriptor_t *td; - const void *sptr; -}; - -static int -SET_OF__compare_cb(const void *aptr, const void *bptr) { - const struct comparable_ptr *a = aptr; - const struct comparable_ptr *b = bptr; - assert(a->td == b->td); - return a->td->op->compare_struct(a->td, a->sptr, b->sptr); -} - -int -SET_OF_compare(const asn_TYPE_descriptor_t *td, const void *aptr, - const void *bptr) { - const asn_anonymous_set_ *a = _A_CSET_FROM_VOID(aptr); - const asn_anonymous_set_ *b = _A_CSET_FROM_VOID(bptr); - - if(a && b) { - struct comparable_ptr *asorted; - struct comparable_ptr *bsorted; - ssize_t common_length; - ssize_t idx; - - if(a->count == 0) { - if(b->count) return -1; - return 0; - } else if(b->count == 0) { - return 1; - } - - asorted = MALLOC(a->count * sizeof(asorted[0])); - bsorted = MALLOC(b->count * sizeof(bsorted[0])); - if(!asorted || !bsorted) { - FREEMEM(asorted); - FREEMEM(bsorted); - return -1; - } - - for(idx = 0; idx < a->count; idx++) { - asorted[idx].td = td->elements->type; - asorted[idx].sptr = a->array[idx]; - } - - for(idx = 0; idx < b->count; idx++) { - bsorted[idx].td = td->elements->type; - bsorted[idx].sptr = b->array[idx]; - } - - qsort(asorted, a->count, sizeof(asorted[0]), SET_OF__compare_cb); - qsort(bsorted, b->count, sizeof(bsorted[0]), SET_OF__compare_cb); - - common_length = (a->count < b->count ? a->count : b->count); - for(idx = 0; idx < common_length; idx++) { - int ret = td->elements->type->op->compare_struct( - td->elements->type, asorted[idx].sptr, bsorted[idx].sptr); - if(ret) { - FREEMEM(asorted); - FREEMEM(bsorted); - return ret; - } - } - - FREEMEM(asorted); - FREEMEM(bsorted); - - if(idx < b->count) /* more elements in b */ - return -1; /* a is shorter, so put it first */ - if(idx < a->count) return 1; - } else if(!a) { - return -1; - } else if(!b) { - return 1; - } - - return 0; -} - - -asn_TYPE_operation_t asn_OP_SET_OF = { - SET_OF_free, - SET_OF_print, - SET_OF_compare, - SET_OF_decode_ber, - SET_OF_encode_der, - SET_OF_decode_xer, - SET_OF_encode_xer, -#ifdef ASN_DISABLE_OER_SUPPORT - 0, - 0, -#else - SET_OF_decode_oer, - SET_OF_encode_oer, -#endif -#ifdef ASN_DISABLE_PER_SUPPORT - 0, - 0, - 0, - 0, -#else - SET_OF_decode_uper, - SET_OF_encode_uper, - SET_OF_decode_aper, - 0, /* SET_OF_encode_aper */ -#endif /* ASN_DISABLE_PER_SUPPORT */ - SET_OF_random_fill, - 0 /* Use generic outmost tag fetcher */ -}; - - -asn_random_fill_result_t -SET_OF_random_fill(const asn_TYPE_descriptor_t *td, void **sptr, - const asn_encoding_constraints_t *constraints, - size_t max_length) { - const asn_SET_OF_specifics_t *specs = - (const asn_SET_OF_specifics_t *)td->specifics; - asn_random_fill_result_t res_ok = {ARFILL_OK, 0}; - asn_random_fill_result_t result_failed = {ARFILL_FAILED, 0}; - asn_random_fill_result_t result_skipped = {ARFILL_SKIPPED, 0}; - const asn_TYPE_member_t *elm = td->elements; - void *st = *sptr; - long max_elements = 5; - long slb = 0; /* Lower size bound */ - long sub = 0; /* Upper size bound */ - size_t rnd_len; - - if(max_length == 0) return result_skipped; - - if(st == NULL) { - st = (*sptr = CALLOC(1, specs->struct_size)); - if(st == NULL) { - return result_failed; - } - } - - switch(asn_random_between(0, 6)) { - case 0: max_elements = 0; break; - case 1: max_elements = 1; break; - case 2: max_elements = 5; break; - case 3: max_elements = max_length; break; - case 4: max_elements = max_length / 2; break; - case 5: max_elements = max_length / 4; break; - default: break; - } - sub = slb + max_elements; - - if(!constraints || !constraints->per_constraints) - constraints = &td->encoding_constraints; - if(constraints->per_constraints) { - const asn_per_constraint_t *pc = &constraints->per_constraints->size; - if(pc->flags & APC_SEMI_CONSTRAINED) { - slb = pc->lower_bound; - sub = pc->lower_bound + max_elements; - } else if(pc->flags & APC_CONSTRAINED) { - slb = pc->lower_bound; - sub = pc->upper_bound; - if(sub - slb > max_elements) sub = slb + max_elements; - } - } - - /* Bias towards edges of allowed space */ - switch(asn_random_between(-1, 4)) { - default: - case -1: - /* Prepare lengths somewhat outside of constrained range. */ - if(constraints->per_constraints - && (constraints->per_constraints->size.flags & APC_EXTENSIBLE)) { - switch(asn_random_between(0, 5)) { - default: - case 0: - rnd_len = 0; - break; - case 1: - if(slb > 0) { - rnd_len = slb - 1; - } else { - rnd_len = 0; - } - break; - case 2: - rnd_len = asn_random_between(0, slb); - break; - case 3: - if(sub < (ssize_t)max_length) { - rnd_len = sub + 1; - } else { - rnd_len = max_length; - } - break; - case 4: - if(sub < (ssize_t)max_length) { - rnd_len = asn_random_between(sub + 1, max_length); - } else { - rnd_len = max_length; - } - break; - case 5: - rnd_len = max_length; - break; - } - break; - } - /* Fall through */ - case 0: - rnd_len = asn_random_between(slb, sub); - break; - case 1: - if(slb < sub) { - rnd_len = asn_random_between(slb + 1, sub); - break; - } - /* Fall through */ - case 2: - rnd_len = asn_random_between(slb, slb); - break; - case 3: - if(slb < sub) { - rnd_len = asn_random_between(slb, sub - 1); - break; - } - /* Fall through */ - case 4: - rnd_len = asn_random_between(sub, sub); - break; - } - - for(; rnd_len > 0; rnd_len--) { - asn_anonymous_set_ *list = _A_SET_FROM_VOID(st); - void *ptr = 0; - asn_random_fill_result_t tmpres = elm->type->op->random_fill( - elm->type, &ptr, &elm->encoding_constraints, - (max_length > res_ok.length ? max_length - res_ok.length : 0) - / rnd_len); - switch(tmpres.code) { - case ARFILL_OK: - ASN_SET_ADD(list, ptr); - res_ok.length += tmpres.length; - break; - case ARFILL_SKIPPED: - break; - case ARFILL_FAILED: - assert(ptr == 0); - return tmpres; - } - } - - return res_ok; -} - diff --git a/e2sim/previous/ASN1c/constr_SET_OF.h b/e2sim/previous/ASN1c/constr_SET_OF.h deleted file mode 100644 index dd2b681..0000000 --- a/e2sim/previous/ASN1c/constr_SET_OF.h +++ /dev/null @@ -1,67 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/*- - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef CONSTR_SET_OF_H -#define CONSTR_SET_OF_H - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct asn_SET_OF_specifics_s { - /* - * Target structure description. - */ - unsigned struct_size; /* Size of the target structure. */ - unsigned ctx_offset; /* Offset of the asn_struct_ctx_t member */ - - /* XER-specific stuff */ - int as_XMLValueList; /* The member type must be encoded like this */ -} asn_SET_OF_specifics_t; - -/* - * A set specialized functions dealing with the SET OF type. - */ -asn_struct_free_f SET_OF_free; -asn_struct_print_f SET_OF_print; -asn_struct_compare_f SET_OF_compare; -asn_constr_check_f SET_OF_constraint; -ber_type_decoder_f SET_OF_decode_ber; -der_type_encoder_f SET_OF_encode_der; -xer_type_decoder_f SET_OF_decode_xer; -xer_type_encoder_f SET_OF_encode_xer; -oer_type_decoder_f SET_OF_decode_oer; -oer_type_encoder_f SET_OF_encode_oer; -per_type_decoder_f SET_OF_decode_uper; -per_type_encoder_f SET_OF_encode_uper; -per_type_decoder_f SET_OF_decode_aper; -per_type_encoder_f SET_OF_encode_aper; -asn_random_fill_f SET_OF_random_fill; -extern asn_TYPE_operation_t asn_OP_SET_OF; - -#ifdef __cplusplus -} -#endif - -#endif /* CONSTR_SET_OF_H */ diff --git a/e2sim/previous/ASN1c/constr_TYPE.c b/e2sim/previous/ASN1c/constr_TYPE.c deleted file mode 100644 index 9479c06..0000000 --- a/e2sim/previous/ASN1c/constr_TYPE.c +++ /dev/null @@ -1,98 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/*- - * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include - -/* - * Version of the ASN.1 infrastructure shipped with compiler. - */ -int get_asn1c_environment_version() { return ASN1C_ENVIRONMENT_VERSION; } - -static asn_app_consume_bytes_f _print2fp; - -/* - * Return the outmost tag of the type. - */ -ber_tlv_tag_t -asn_TYPE_outmost_tag(const asn_TYPE_descriptor_t *type_descriptor, - const void *struct_ptr, int tag_mode, ber_tlv_tag_t tag) { - - if(tag_mode) - return tag; - - if(type_descriptor->tags_count) - return type_descriptor->tags[0]; - - return type_descriptor->op->outmost_tag(type_descriptor, struct_ptr, 0, 0); -} - -/* - * Print the target language's structure in human readable form. - */ -int -asn_fprint(FILE *stream, const asn_TYPE_descriptor_t *td, - const void *struct_ptr) { - if(!stream) stream = stdout; - if(!td || !struct_ptr) { - errno = EINVAL; - return -1; - } - - /* Invoke type-specific printer */ - if(td->op->print_struct(td, struct_ptr, 1, _print2fp, stream)) { - return -1; - } - - /* Terminate the output */ - if(_print2fp("\n", 1, stream)) { - return -1; - } - - return fflush(stream); -} - -/* Dump the data into the specified stdio stream */ -static int -_print2fp(const void *buffer, size_t size, void *app_key) { - FILE *stream = (FILE *)app_key; - - if(fwrite(buffer, 1, size, stream) != size) - return -1; - - return 0; -} - - -/* - * Some compilers do not support variable args macros. - * This function is a replacement of ASN_DEBUG() macro. - */ -void ASN_DEBUG_f(const char *fmt, ...); -void ASN_DEBUG_f(const char *fmt, ...) { - va_list ap; - va_start(ap, fmt); - vfprintf(stderr, fmt, ap); - fprintf(stderr, "\n"); - va_end(ap); -} diff --git a/e2sim/previous/ASN1c/constr_TYPE.h b/e2sim/previous/ASN1c/constr_TYPE.h deleted file mode 100644 index 59ac617..0000000 --- a/e2sim/previous/ASN1c/constr_TYPE.h +++ /dev/null @@ -1,280 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -/* - * This file contains the declaration structure called "ASN.1 Type Definition", - * which holds all information necessary for encoding and decoding routines. - * This structure even contains pointer to these encoding and decoding routines - * for each defined ASN.1 type. - */ -#ifndef _CONSTR_TYPE_H_ -#define _CONSTR_TYPE_H_ - -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -struct asn_TYPE_descriptor_s; /* Forward declaration */ -struct asn_TYPE_member_s; /* Forward declaration */ - -/* - * This type provides the context information for various ASN.1 routines, - * primarily ones doing decoding. A member _asn_ctx of this type must be - * included into certain target language's structures, such as compound types. - */ -typedef struct asn_struct_ctx_s { - short phase; /* Decoding phase */ - short step; /* Elementary step of a phase */ - int context; /* Other context information */ - void *ptr; /* Decoder-specific stuff (stack elements) */ - ber_tlv_len_t left; /* Number of bytes left, -1 for indefinite */ -} asn_struct_ctx_t; - -#include /* Basic Encoding Rules decoder */ -#include /* Distinguished Encoding Rules encoder */ -#include /* Decoder of XER (XML, text) */ -#include /* Encoder into XER (XML, text) */ -#include /* Packet Encoding Rules decoder */ -#include /* Packet Encoding Rules encoder */ -#include /* Subtype constraints support */ -#include /* Random structures support */ - -#ifdef ASN_DISABLE_OER_SUPPORT -typedef void (oer_type_decoder_f)(void); -typedef void (oer_type_encoder_f)(void); -typedef void asn_oer_constraints_t; -#else -#include /* Octet Encoding Rules encoder */ -#include /* Octet Encoding Rules encoder */ -#endif - -/* - * Free the structure according to its specification. - * Use one of ASN_STRUCT_{FREE,RESET,CONTENTS_ONLY} macros instead. - * Do not use directly. - */ -enum asn_struct_free_method { - ASFM_FREE_EVERYTHING, /* free(struct_ptr) and underlying members */ - ASFM_FREE_UNDERLYING, /* free underlying members */ - ASFM_FREE_UNDERLYING_AND_RESET /* FREE_UNDERLYING + memset(0) */ -}; -typedef void (asn_struct_free_f)( - const struct asn_TYPE_descriptor_s *type_descriptor, - void *struct_ptr, enum asn_struct_free_method); - -/* - * Free the structure including freeing the memory pointed to by ptr itself. - */ -#define ASN_STRUCT_FREE(asn_DEF, ptr) \ - (asn_DEF).op->free_struct(&(asn_DEF), (ptr), ASFM_FREE_EVERYTHING) - -/* - * Free the memory used by the members of the structure without freeing the - * the structure pointer itself. - * ZERO-OUT the structure to the safe clean state. - * (Retaining the pointer may be useful in case the structure is allocated - * statically or arranged on the stack, yet its elements are dynamic.) - */ -#define ASN_STRUCT_RESET(asn_DEF, ptr) \ - (asn_DEF).op->free_struct(&(asn_DEF), (ptr), ASFM_FREE_UNDERLYING_AND_RESET) - -/* - * Free memory used by the members of the structure without freeing - * the structure pointer itself. - * (Retaining the pointer may be useful in case the structure is allocated - * statically or arranged on the stack, yet its elements are dynamic.) - * AVOID using it in the application code; - * Use a safer ASN_STRUCT_RESET() instead. - */ -#define ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF, ptr) \ - (asn_DEF).op->free_struct(&(asn_DEF), (ptr), ASFM_FREE_UNDERLYING) - -/* - * Print the structure according to its specification. - */ -typedef int(asn_struct_print_f)( - const struct asn_TYPE_descriptor_s *type_descriptor, - const void *struct_ptr, - int level, /* Indentation level */ - asn_app_consume_bytes_f *callback, void *app_key); - -/* - * Compare two structs between each other. - * Returns <0 if struct_A is "smaller" than struct_B, >0 if "greater", - * and =0 if "equal to", for some type-specific, stable definition of - * "smaller", "greater" and "equal to". - */ -typedef int (asn_struct_compare_f)( - const struct asn_TYPE_descriptor_s *type_descriptor, - const void *struct_A, - const void *struct_B); - -/* - * Return the outmost tag of the type. - * If the type is untagged CHOICE, the dynamic operation is performed. - * NOTE: This function pointer type is only useful internally. - * Do not use it in your application. - */ -typedef ber_tlv_tag_t (asn_outmost_tag_f)( - const struct asn_TYPE_descriptor_s *type_descriptor, - const void *struct_ptr, int tag_mode, ber_tlv_tag_t tag); -/* The instance of the above function type; used internally. */ -asn_outmost_tag_f asn_TYPE_outmost_tag; - -/* - * Fetch the desired type of the Open Type based on the - * Information Object Set driven constraints. - */ -typedef struct asn_type_selector_result_s { - const struct asn_TYPE_descriptor_s *type_descriptor; /* Type encoded. */ - unsigned presence_index; /* Associated choice variant. */ -} asn_type_selector_result_t; -typedef asn_type_selector_result_t(asn_type_selector_f)( - const struct asn_TYPE_descriptor_s *parent_type_descriptor, - const void *parent_structure_ptr); - -/* - * Generalized functions for dealing with the speciic type. - * May be directly invoked by applications. - */ -typedef struct asn_TYPE_operation_s { - asn_struct_free_f *free_struct; /* Free the structure */ - asn_struct_print_f *print_struct; /* Human readable output */ - asn_struct_compare_f *compare_struct; /* Compare two structures */ - ber_type_decoder_f *ber_decoder; /* Generic BER decoder */ - der_type_encoder_f *der_encoder; /* Canonical DER encoder */ - xer_type_decoder_f *xer_decoder; /* Generic XER decoder */ - xer_type_encoder_f *xer_encoder; /* [Canonical] XER encoder */ - oer_type_decoder_f *oer_decoder; /* Generic OER decoder */ - oer_type_encoder_f *oer_encoder; /* Canonical OER encoder */ - per_type_decoder_f *uper_decoder; /* Unaligned PER decoder */ - per_type_encoder_f *uper_encoder; /* Unaligned PER encoder */ - per_type_decoder_f *aper_decoder; /* Aligned PER decoder */ - per_type_encoder_f *aper_encoder; /* Aligned PER encoder */ - asn_random_fill_f *random_fill; /* Initialize with a random value */ - asn_outmost_tag_f *outmost_tag; /* */ -} asn_TYPE_operation_t; - -/* - * A constraints tuple specifying both the OER and PER constraints. - */ -typedef struct asn_encoding_constraints_s { - const struct asn_oer_constraints_s *oer_constraints; - const struct asn_per_constraints_s *per_constraints; - asn_constr_check_f *general_constraints; -} asn_encoding_constraints_t; - -/* - * The definitive description of the destination language's structure. - */ -typedef struct asn_TYPE_descriptor_s { - const char *name; /* A name of the ASN.1 type. "" in some cases. */ - const char *xml_tag; /* Name used in XML tag */ - - /* - * Generalized functions for dealing with the specific type. - * May be directly invoked by applications. - */ - asn_TYPE_operation_t *op; - - /*********************************************************************** - * Internally useful members. Not to be used by applications directly. * - **********************************************************************/ - - /* - * Tags that are expected to occur. - */ - const ber_tlv_tag_t *tags; /* Effective tags sequence for this type */ - unsigned tags_count; /* Number of tags which are expected */ - const ber_tlv_tag_t *all_tags; /* Every tag for BER/containment */ - unsigned all_tags_count; /* Number of tags */ - - /* OER, PER, and general constraints */ - asn_encoding_constraints_t encoding_constraints; - - /* - * An ASN.1 production type members (members of SEQUENCE, SET, CHOICE). - */ - struct asn_TYPE_member_s *elements; - unsigned elements_count; - - /* - * Additional information describing the type, used by appropriate - * functions above. - */ - const void *specifics; -} asn_TYPE_descriptor_t; - -/* - * This type describes an element of the constructed type, - * i.e. SEQUENCE, SET, CHOICE, etc. - */ - enum asn_TYPE_flags_e { - ATF_NOFLAGS, - ATF_POINTER = 0x01, /* Represented by the pointer */ - ATF_OPEN_TYPE = 0x02, /* Open Type */ - ATF_ANY_TYPE = 0x04 /* ANY type (deprecated!) */ - }; -typedef struct asn_TYPE_member_s { - enum asn_TYPE_flags_e flags; /* Element's presentation flags */ - unsigned optional; /* Following optional members, including current */ - unsigned memb_offset; /* Offset of the element */ - ber_tlv_tag_t tag; /* Outmost (most immediate) tag */ - int tag_mode; /* IMPLICIT/no/EXPLICIT tag at current level */ - asn_TYPE_descriptor_t *type; /* Member type descriptor */ - asn_type_selector_f *type_selector; /* IoS runtime type selector */ - asn_encoding_constraints_t encoding_constraints; - int (*default_value_cmp)(const void *sptr); /* Compare DEFAULT */ - int (*default_value_set)(void **sptr); /* Set DEFAULT */ - const char *name; /* ASN.1 identifier of the element */ -} asn_TYPE_member_t; - -/* - * BER tag to element number mapping. - */ -typedef struct asn_TYPE_tag2member_s { - ber_tlv_tag_t el_tag; /* Outmost tag of the member */ - unsigned el_no; /* Index of the associated member, base 0 */ - int toff_first; /* First occurence of the el_tag, relative */ - int toff_last; /* Last occurence of the el_tag, relative */ -} asn_TYPE_tag2member_t; - -/* - * This function prints out the contents of the target language's structure - * (struct_ptr) into the file pointer (stream) in human readable form. - * RETURN VALUES: - * 0: The structure is printed. - * -1: Problem dumping the structure. - * (See also xer_fprint() in xer_encoder.h) - */ -int asn_fprint(FILE *stream, /* Destination stream descriptor */ - const asn_TYPE_descriptor_t *td, /* ASN.1 type descriptor */ - const void *struct_ptr); /* Structure to be printed */ - -#ifdef __cplusplus -} -#endif - -#endif /* _CONSTR_TYPE_H_ */ diff --git a/e2sim/previous/ASN1c/constraints.c b/e2sim/previous/ASN1c/constraints.c deleted file mode 100644 index 5051c34..0000000 --- a/e2sim/previous/ASN1c/constraints.c +++ /dev/null @@ -1,111 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -#include -#include - -int -asn_generic_no_constraint(const asn_TYPE_descriptor_t *type_descriptor, - const void *struct_ptr, - asn_app_constraint_failed_f *cb, void *key) { - (void)type_descriptor; /* Unused argument */ - (void)struct_ptr; /* Unused argument */ - (void)cb; /* Unused argument */ - (void)key; /* Unused argument */ - - /* Nothing to check */ - return 0; -} - -int -asn_generic_unknown_constraint(const asn_TYPE_descriptor_t *type_descriptor, - const void *struct_ptr, - asn_app_constraint_failed_f *cb, void *key) { - (void)type_descriptor; /* Unused argument */ - (void)struct_ptr; /* Unused argument */ - (void)cb; /* Unused argument */ - (void)key; /* Unused argument */ - - /* Unknown how to check */ - return 0; -} - -struct errbufDesc { - const asn_TYPE_descriptor_t *failed_type; - const void *failed_struct_ptr; - char *errbuf; - size_t errlen; -}; - -static void -_asn_i_ctfailcb(void *key, const asn_TYPE_descriptor_t *td, const void *sptr, - const char *fmt, ...) { - struct errbufDesc *arg = key; - va_list ap; - ssize_t vlen; - ssize_t maxlen; - - arg->failed_type = td; - arg->failed_struct_ptr = sptr; - - maxlen = arg->errlen; - if(maxlen <= 0) - return; - - va_start(ap, fmt); - vlen = vsnprintf(arg->errbuf, maxlen, fmt, ap); - va_end(ap); - if(vlen >= maxlen) { - arg->errbuf[maxlen-1] = '\0'; /* Ensuring libc correctness */ - arg->errlen = maxlen - 1; /* Not counting termination */ - return; - } else if(vlen >= 0) { - arg->errbuf[vlen] = '\0'; /* Ensuring libc correctness */ - arg->errlen = vlen; /* Not counting termination */ - } else { - /* - * The libc on this system is broken. - */ - vlen = sizeof("") - 1; - maxlen--; - arg->errlen = vlen < maxlen ? vlen : maxlen; - memcpy(arg->errbuf, "", arg->errlen); - arg->errbuf[arg->errlen] = 0; - } - - return; -} - -int -asn_check_constraints(const asn_TYPE_descriptor_t *type_descriptor, - const void *struct_ptr, char *errbuf, size_t *errlen) { - struct errbufDesc arg; - int ret; - - arg.failed_type = 0; - arg.failed_struct_ptr = 0; - arg.errbuf = errbuf; - arg.errlen = errlen ? *errlen : 0; - - ret = type_descriptor->encoding_constraints.general_constraints( - type_descriptor, struct_ptr, _asn_i_ctfailcb, &arg); - if(ret == -1 && errlen) *errlen = arg.errlen; - - return ret; -} - diff --git a/e2sim/previous/ASN1c/constraints.h b/e2sim/previous/ASN1c/constraints.h deleted file mode 100644 index 3b17311..0000000 --- a/e2sim/previous/ASN1c/constraints.h +++ /dev/null @@ -1,80 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/*- - * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef ASN1_CONSTRAINTS_VALIDATOR_H -#define ASN1_CONSTRAINTS_VALIDATOR_H - -#include /* Platform-dependent types */ - -#ifdef __cplusplus -extern "C" { -#endif - -struct asn_TYPE_descriptor_s; /* Forward declaration */ - -/* - * Validate the structure according to the ASN.1 constraints. - * If errbuf and errlen are given, they shall be pointing to the appropriate - * buffer space and its length before calling this function. Alternatively, - * they could be passed as NULL's. If constraints validation fails, - * errlen will contain the actual number of bytes taken from the errbuf - * to encode an error message (properly 0-terminated). - * - * RETURN VALUES: - * This function returns 0 in case all ASN.1 constraints are met - * and -1 if one or more constraints were failed. - */ -int asn_check_constraints( - const struct asn_TYPE_descriptor_s *type_descriptor, - const void *struct_ptr, /* Target language's structure */ - char *errbuf, /* Returned error description */ - size_t *errlen /* Length of the error description */ -); - - -/* - * Generic type for constraint checking callback, - * associated with every type descriptor. - */ -typedef int(asn_constr_check_f)( - const struct asn_TYPE_descriptor_s *type_descriptor, const void *struct_ptr, - asn_app_constraint_failed_f *optional_callback, /* Log the error */ - void *optional_app_key /* Opaque key passed to a callback */ -); - -/******************************* - * INTERNALLY USEFUL FUNCTIONS * - *******************************/ - -asn_constr_check_f asn_generic_no_constraint; /* No constraint whatsoever */ -asn_constr_check_f asn_generic_unknown_constraint; /* Not fully supported */ - -/* - * Invoke the callback with a complete error message. - */ -#define ASN__CTFAIL if(ctfailcb) ctfailcb - -#ifdef __cplusplus -} -#endif - -#endif /* ASN1_CONSTRAINTS_VALIDATOR_H */ diff --git a/e2sim/previous/ASN1c/converter-example.mk b/e2sim/previous/ASN1c/converter-example.mk deleted file mode 100644 index 73f73ed..0000000 --- a/e2sim/previous/ASN1c/converter-example.mk +++ /dev/null @@ -1,50 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ -include ./Makefile.am.libasncodec - -LIBS += -lm -CFLAGS += $(ASN_MODULE_CFLAGS) -DASN_PDU_COLLECTION -I. -ASN_LIBRARY ?= libasncodec.a -ASN_PROGRAM ?= converter-example -ASN_PROGRAM_SRCS ?= \ - ./converter-example.c\ - ./pdu_collection.c - -all: $(ASN_PROGRAM) - -$(ASN_PROGRAM): $(ASN_LIBRARY) $(ASN_PROGRAM_SRCS:.c=.o) - $(CC) $(CFLAGS) $(CPPFLAGS) -o $(ASN_PROGRAM) $(ASN_PROGRAM_SRCS:.c=.o) $(LDFLAGS) $(ASN_LIBRARY) $(LIBS) - -$(ASN_LIBRARY): $(ASN_MODULE_SRCS:.c=.o) - $(AR) rcs $@ $(ASN_MODULE_SRCS:.c=.o) - -.SUFFIXES: -.SUFFIXES: .c .o - -.c.o: - $(CC) $(CFLAGS) -o $@ -c $< - -clean: - rm -f $(ASN_PROGRAM) $(ASN_LIBRARY) - rm -f $(ASN_MODULE_SRCS:.c=.o) $(ASN_PROGRAM_SRCS:.c=.o) - -regen: regenerate-from-asn1-source - -regenerate-from-asn1-source: - asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D. ../../asnFiles/e2ap-v031.asn ../../asnFiles/X2AP-PDU-Contents.asn ../../asnFiles/X2AP-Constants.asn ../../asnFiles/X2AP-Containers.asn ../../asnFiles/X2AP-IEs.asn ../../asnFiles/X2AP-CommonDataTypes.asn ../../asnFiles/e2sm-gNB-X2-release-1-v041.asn - diff --git a/e2sim/previous/ASN1c/der_encoder.c b/e2sim/previous/ASN1c/der_encoder.c deleted file mode 100644 index a54f2f6..0000000 --- a/e2sim/previous/ASN1c/der_encoder.c +++ /dev/null @@ -1,212 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/*- - * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include - -static ssize_t der_write_TL(ber_tlv_tag_t tag, ber_tlv_len_t len, - asn_app_consume_bytes_f *cb, void *app_key, int constructed); - -/* - * The DER encoder of any type. - */ -asn_enc_rval_t -der_encode(const asn_TYPE_descriptor_t *type_descriptor, const void *struct_ptr, - asn_app_consume_bytes_f *consume_bytes, void *app_key) { - ASN_DEBUG("DER encoder invoked for %s", - type_descriptor->name); - - /* - * Invoke type-specific encoder. - */ - return type_descriptor->op->der_encoder( - type_descriptor, struct_ptr, /* Pointer to the destination structure */ - 0, 0, consume_bytes, app_key); -} - -/* - * Argument type and callback necessary for der_encode_to_buffer(). - */ -typedef struct enc_to_buf_arg { - void *buffer; - size_t left; -} enc_to_buf_arg; -static int encode_to_buffer_cb(const void *buffer, size_t size, void *key) { - enc_to_buf_arg *arg = (enc_to_buf_arg *)key; - - if(arg->left < size) - return -1; /* Data exceeds the available buffer size */ - - memcpy(arg->buffer, buffer, size); - arg->buffer = ((char *)arg->buffer) + size; - arg->left -= size; - - return 0; -} - -/* - * A variant of the der_encode() which encodes the data into the provided buffer - */ -asn_enc_rval_t -der_encode_to_buffer(const asn_TYPE_descriptor_t *type_descriptor, - const void *struct_ptr, void *buffer, size_t buffer_size) { - enc_to_buf_arg arg; - asn_enc_rval_t ec; - - arg.buffer = buffer; - arg.left = buffer_size; - - ec = type_descriptor->op->der_encoder(type_descriptor, - struct_ptr, /* Pointer to the destination structure */ - 0, 0, encode_to_buffer_cb, &arg); - if(ec.encoded != -1) { - assert(ec.encoded == (ssize_t)(buffer_size - arg.left)); - /* Return the encoded contents size */ - } - return ec; -} - - -/* - * Write out leading TL[v] sequence according to the type definition. - */ -ssize_t -der_write_tags(const asn_TYPE_descriptor_t *sd, size_t struct_length, - int tag_mode, int last_tag_form, - ber_tlv_tag_t tag, /* EXPLICIT or IMPLICIT tag */ - asn_app_consume_bytes_f *cb, void *app_key) { -#define ASN1_DER_MAX_TAGS_COUNT 4 - ber_tlv_tag_t - tags_buf_scratch[ASN1_DER_MAX_TAGS_COUNT * sizeof(ber_tlv_tag_t)]; - ssize_t lens[ASN1_DER_MAX_TAGS_COUNT * sizeof(ssize_t)]; - const ber_tlv_tag_t *tags; /* Copy of tags stream */ - int tags_count; /* Number of tags */ - size_t overall_length; - int i; - - ASN_DEBUG("Writing tags (%s, tm=%d, tc=%d, tag=%s, mtc=%d)", - sd->name, tag_mode, sd->tags_count, - ber_tlv_tag_string(tag), - tag_mode - ?(sd->tags_count+1 - -((tag_mode == -1) && sd->tags_count)) - :sd->tags_count - ); - - if(sd->tags_count + 1 > ASN1_DER_MAX_TAGS_COUNT) { - ASN_DEBUG("System limit %d on tags count", ASN1_DER_MAX_TAGS_COUNT); - return -1; - } - - if(tag_mode) { - /* - * Instead of doing shaman dance like we do in ber_check_tags(), - * allocate a small array on the stack - * and initialize it appropriately. - */ - int stag_offset; - ber_tlv_tag_t *tags_buf = tags_buf_scratch; - tags_count = sd->tags_count - + 1 /* EXPLICIT or IMPLICIT tag is given */ - - ((tag_mode == -1) && sd->tags_count); - /* Copy tags over */ - tags_buf[0] = tag; - stag_offset = -1 + ((tag_mode == -1) && sd->tags_count); - for(i = 1; i < tags_count; i++) - tags_buf[i] = sd->tags[i + stag_offset]; - tags = tags_buf; - } else { - tags = sd->tags; - tags_count = sd->tags_count; - } - - /* No tags to write */ - if(tags_count == 0) - return 0; - - /* - * Array of tags is initialized. - * Now, compute the size of the TLV pairs, from right to left. - */ - overall_length = struct_length; - for(i = tags_count - 1; i >= 0; --i) { - lens[i] = der_write_TL(tags[i], overall_length, 0, 0, 0); - if(lens[i] == -1) return -1; - overall_length += lens[i]; - lens[i] = overall_length - lens[i]; - } - - if(!cb) return overall_length - struct_length; - - ASN_DEBUG("Encoding %s TL sequence (%d elements)", sd->name, - tags_count); - - /* - * Encode the TL sequence for real. - */ - for(i = 0; i < tags_count; i++) { - ssize_t len; - int _constr; - - /* Check if this tag happens to be constructed */ - _constr = (last_tag_form || i < (tags_count - 1)); - - len = der_write_TL(tags[i], lens[i], cb, app_key, _constr); - if(len == -1) return -1; - } - - return overall_length - struct_length; -} - -static ssize_t -der_write_TL(ber_tlv_tag_t tag, ber_tlv_len_t len, - asn_app_consume_bytes_f *cb, void *app_key, - int constructed) { - uint8_t buf[32]; - size_t size = 0; - int buf_size = cb?sizeof(buf):0; - ssize_t tmp; - - /* Serialize tag (T from TLV) into possibly zero-length buffer */ - tmp = ber_tlv_tag_serialize(tag, buf, buf_size); - if(tmp == -1 || tmp > (ssize_t)sizeof(buf)) return -1; - size += tmp; - - /* Serialize length (L from TLV) into possibly zero-length buffer */ - tmp = der_tlv_length_serialize(len, buf+size, buf_size?buf_size-size:0); - if(tmp == -1) return -1; - size += tmp; - - if(size > sizeof(buf)) - return -1; - - /* - * If callback is specified, invoke it, and check its return value. - */ - if(cb) { - if(constructed) *buf |= 0x20; - if(cb(buf, size, app_key) < 0) - return -1; - } - - return size; -} diff --git a/e2sim/previous/ASN1c/der_encoder.h b/e2sim/previous/ASN1c/der_encoder.h deleted file mode 100644 index 7fa1163..0000000 --- a/e2sim/previous/ASN1c/der_encoder.h +++ /dev/null @@ -1,86 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/*- - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef _DER_ENCODER_H_ -#define _DER_ENCODER_H_ - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -struct asn_TYPE_descriptor_s; /* Forward declaration */ - -/* - * The DER encoder of any type. May be invoked by the application. - * Produces DER- and BER-compliant encoding. (DER is a subset of BER). - * - * NOTE: Use the ber_decode() function (ber_decoder.h) to decode data - * produced by der_encode(). - */ -asn_enc_rval_t der_encode(const struct asn_TYPE_descriptor_s *type_descriptor, - const void *struct_ptr, /* Structure to be encoded */ - asn_app_consume_bytes_f *consume_bytes_cb, - void *app_key /* Arbitrary callback argument */ -); - -/* A variant of der_encode() which encodes data into the pre-allocated buffer */ -asn_enc_rval_t der_encode_to_buffer( - const struct asn_TYPE_descriptor_s *type_descriptor, - const void *struct_ptr, /* Structure to be encoded */ - void *buffer, /* Pre-allocated buffer */ - size_t buffer_size /* Initial buffer size (maximum) */ -); - -/* - * Type of the generic DER encoder. - */ -typedef asn_enc_rval_t(der_type_encoder_f)( - const struct asn_TYPE_descriptor_s *type_descriptor, - const void *struct_ptr, /* Structure to be encoded */ - int tag_mode, /* {-1,0,1}: IMPLICIT, no, EXPLICIT */ - ber_tlv_tag_t tag, asn_app_consume_bytes_f *consume_bytes_cb, /* Callback */ - void *app_key /* Arbitrary callback argument */ -); - - -/******************************* - * INTERNALLY USEFUL FUNCTIONS * - *******************************/ - -/* - * Write out leading TL[v] sequence according to the type definition. - */ -ssize_t der_write_tags(const struct asn_TYPE_descriptor_s *type_descriptor, - size_t struct_length, - int tag_mode, /* {-1,0,1}: IMPLICIT, no, EXPLICIT */ - int last_tag_form, /* {0,!0}: prim, constructed */ - ber_tlv_tag_t tag, - asn_app_consume_bytes_f *consume_bytes_cb, - void *app_key); - -#ifdef __cplusplus -} -#endif - -#endif /* _DER_ENCODER_H_ */ diff --git a/e2sim/previous/ASN1c/pdu_collection.c b/e2sim/previous/ASN1c/pdu_collection.c deleted file mode 100644 index 6dbb55d..0000000 --- a/e2sim/previous/ASN1c/pdu_collection.c +++ /dev/null @@ -1,189 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - */ - -struct asn_TYPE_descriptor_s; /* Forward declaration */ - -extern struct asn_TYPE_descriptor_s asn_DEF_E2AP_PDU; -extern struct asn_TYPE_descriptor_s asn_DEF_HandoverRequest; -extern struct asn_TYPE_descriptor_s asn_DEF_HandoverRequestAcknowledge; -extern struct asn_TYPE_descriptor_s asn_DEF_HandoverPreparationFailure; -extern struct asn_TYPE_descriptor_s asn_DEF_HandoverReport; -extern struct asn_TYPE_descriptor_s asn_DEF_SNStatusTransfer; -extern struct asn_TYPE_descriptor_s asn_DEF_UEContextRelease; -extern struct asn_TYPE_descriptor_s asn_DEF_HandoverCancel; -extern struct asn_TYPE_descriptor_s asn_DEF_PrivateMessage; -extern struct asn_TYPE_descriptor_s asn_DEF_MobilityChangeRequest; -extern struct asn_TYPE_descriptor_s asn_DEF_MobilityChangeAcknowledge; -extern struct asn_TYPE_descriptor_s asn_DEF_MobilityChangeFailure; -extern struct asn_TYPE_descriptor_s asn_DEF_RLFIndication; -extern struct asn_TYPE_descriptor_s asn_DEF_CellActivationRequest; -extern struct asn_TYPE_descriptor_s asn_DEF_CellActivationResponse; -extern struct asn_TYPE_descriptor_s asn_DEF_CellActivationFailure; -extern struct asn_TYPE_descriptor_s asn_DEF_X2Release; -extern struct asn_TYPE_descriptor_s asn_DEF_X2APMessageTransfer; -extern struct asn_TYPE_descriptor_s asn_DEF_SeNBAdditionRequest; -extern struct asn_TYPE_descriptor_s asn_DEF_SeNBAdditionRequestAcknowledge; -extern struct asn_TYPE_descriptor_s asn_DEF_SeNBAdditionRequestReject; -extern struct asn_TYPE_descriptor_s asn_DEF_SeNBReconfigurationComplete; -extern struct asn_TYPE_descriptor_s asn_DEF_SeNBModificationRequest; -extern struct asn_TYPE_descriptor_s asn_DEF_SeNBModificationRequestAcknowledge; -extern struct asn_TYPE_descriptor_s asn_DEF_SeNBModificationRequestReject; -extern struct asn_TYPE_descriptor_s asn_DEF_SeNBModificationRequired; -extern struct asn_TYPE_descriptor_s asn_DEF_SeNBModificationConfirm; -extern struct asn_TYPE_descriptor_s asn_DEF_SeNBModificationRefuse; -extern struct asn_TYPE_descriptor_s asn_DEF_SeNBReleaseRequest; -extern struct asn_TYPE_descriptor_s asn_DEF_SeNBReleaseRequired; -extern struct asn_TYPE_descriptor_s asn_DEF_SeNBReleaseConfirm; -extern struct asn_TYPE_descriptor_s asn_DEF_SeNBCounterCheckRequest; -extern struct asn_TYPE_descriptor_s asn_DEF_X2RemovalRequest; -extern struct asn_TYPE_descriptor_s asn_DEF_X2RemovalResponse; -extern struct asn_TYPE_descriptor_s asn_DEF_X2RemovalFailure; -extern struct asn_TYPE_descriptor_s asn_DEF_RetrieveUEContextRequest; -extern struct asn_TYPE_descriptor_s asn_DEF_RetrieveUEContextResponse; -extern struct asn_TYPE_descriptor_s asn_DEF_RetrieveUEContextFailure; -extern struct asn_TYPE_descriptor_s asn_DEF_SgNBAdditionRequest; -extern struct asn_TYPE_descriptor_s asn_DEF_SgNBAdditionRequestAcknowledge; -extern struct asn_TYPE_descriptor_s asn_DEF_SgNBAdditionRequestReject; -extern struct asn_TYPE_descriptor_s asn_DEF_SgNBReconfigurationComplete; -extern struct asn_TYPE_descriptor_s asn_DEF_SgNBModificationRequest; -extern struct asn_TYPE_descriptor_s asn_DEF_SgNBModificationRequestAcknowledge; -extern struct asn_TYPE_descriptor_s asn_DEF_SgNBModificationRequestReject; -extern struct asn_TYPE_descriptor_s asn_DEF_SgNBModificationRequired; -extern struct asn_TYPE_descriptor_s asn_DEF_SgNBModificationConfirm; -extern struct asn_TYPE_descriptor_s asn_DEF_SgNBModificationRefuse; -extern struct asn_TYPE_descriptor_s asn_DEF_SgNBReleaseRequest; -extern struct asn_TYPE_descriptor_s asn_DEF_SgNBReleaseRequestAcknowledge; -extern struct asn_TYPE_descriptor_s asn_DEF_SgNBReleaseRequestReject; -extern struct asn_TYPE_descriptor_s asn_DEF_SgNBReleaseRequired; -extern struct asn_TYPE_descriptor_s asn_DEF_SgNBReleaseConfirm; -extern struct asn_TYPE_descriptor_s asn_DEF_SgNBCounterCheckRequest; -extern struct asn_TYPE_descriptor_s asn_DEF_SgNBChangeRequired; -extern struct asn_TYPE_descriptor_s asn_DEF_SgNBChangeConfirm; -extern struct asn_TYPE_descriptor_s asn_DEF_RRCTransfer; -extern struct asn_TYPE_descriptor_s asn_DEF_SgNBChangeRefuse; -extern struct asn_TYPE_descriptor_s asn_DEF_ENDCCellActivationRequest; -extern struct asn_TYPE_descriptor_s asn_DEF_ENDCCellActivationResponse; -extern struct asn_TYPE_descriptor_s asn_DEF_ENDCCellActivationFailure; -extern struct asn_TYPE_descriptor_s asn_DEF_SecondaryRATDataUsageReport; -extern struct asn_TYPE_descriptor_s asn_DEF_SgNBActivityNotification; -extern struct asn_TYPE_descriptor_s asn_DEF_ENDCPartialResetRequired; -extern struct asn_TYPE_descriptor_s asn_DEF_ENDCPartialResetConfirm; -extern struct asn_TYPE_descriptor_s asn_DEF_EUTRANRCellResourceCoordinationRequest; -extern struct asn_TYPE_descriptor_s asn_DEF_EUTRANRCellResourceCoordinationResponse; -extern struct asn_TYPE_descriptor_s asn_DEF_ENDCX2RemovalRequest; -extern struct asn_TYPE_descriptor_s asn_DEF_ENDCX2RemovalResponse; -extern struct asn_TYPE_descriptor_s asn_DEF_ENDCX2RemovalFailure; -extern struct asn_TYPE_descriptor_s asn_DEF_DataForwardingAddressIndication; -extern struct asn_TYPE_descriptor_s asn_DEF_E2SM_gNB_X2_eventTriggerDefinition; -extern struct asn_TYPE_descriptor_s asn_DEF_E2SM_gNB_X2_actionDefinition; -extern struct asn_TYPE_descriptor_s asn_DEF_E2SM_gNB_X2_indicationHeader; -extern struct asn_TYPE_descriptor_s asn_DEF_E2SM_gNB_X2_indicationMessage; -extern struct asn_TYPE_descriptor_s asn_DEF_E2SM_gNB_X2_callProcessID; -extern struct asn_TYPE_descriptor_s asn_DEF_E2SM_gNB_X2_controlHeader; -extern struct asn_TYPE_descriptor_s asn_DEF_E2SM_gNB_X2_controlMessage; - - -struct asn_TYPE_descriptor_s *asn_pdu_collection[] = { - /* From module E2AP-PDU-Descriptions in ../../asnFiles/e2ap-v031.asn */ - &asn_DEF_E2AP_PDU, - /* From module X2AP-PDU-Contents in ../../asnFiles/X2AP-PDU-Contents.asn */ - &asn_DEF_HandoverRequest, - &asn_DEF_HandoverRequestAcknowledge, - &asn_DEF_HandoverPreparationFailure, - &asn_DEF_HandoverReport, - &asn_DEF_SNStatusTransfer, - &asn_DEF_UEContextRelease, - &asn_DEF_HandoverCancel, - &asn_DEF_PrivateMessage, - &asn_DEF_MobilityChangeRequest, - &asn_DEF_MobilityChangeAcknowledge, - &asn_DEF_MobilityChangeFailure, - &asn_DEF_RLFIndication, - &asn_DEF_CellActivationRequest, - &asn_DEF_CellActivationResponse, - &asn_DEF_CellActivationFailure, - &asn_DEF_X2Release, - &asn_DEF_X2APMessageTransfer, - &asn_DEF_SeNBAdditionRequest, - &asn_DEF_SeNBAdditionRequestAcknowledge, - &asn_DEF_SeNBAdditionRequestReject, - &asn_DEF_SeNBReconfigurationComplete, - &asn_DEF_SeNBModificationRequest, - &asn_DEF_SeNBModificationRequestAcknowledge, - &asn_DEF_SeNBModificationRequestReject, - &asn_DEF_SeNBModificationRequired, - &asn_DEF_SeNBModificationConfirm, - &asn_DEF_SeNBModificationRefuse, - &asn_DEF_SeNBReleaseRequest, - &asn_DEF_SeNBReleaseRequired, - &asn_DEF_SeNBReleaseConfirm, - &asn_DEF_SeNBCounterCheckRequest, - &asn_DEF_X2RemovalRequest, - &asn_DEF_X2RemovalResponse, - &asn_DEF_X2RemovalFailure, - &asn_DEF_RetrieveUEContextRequest, - &asn_DEF_RetrieveUEContextResponse, - &asn_DEF_RetrieveUEContextFailure, - &asn_DEF_SgNBAdditionRequest, - &asn_DEF_SgNBAdditionRequestAcknowledge, - &asn_DEF_SgNBAdditionRequestReject, - &asn_DEF_SgNBReconfigurationComplete, - &asn_DEF_SgNBModificationRequest, - &asn_DEF_SgNBModificationRequestAcknowledge, - &asn_DEF_SgNBModificationRequestReject, - &asn_DEF_SgNBModificationRequired, - &asn_DEF_SgNBModificationConfirm, - &asn_DEF_SgNBModificationRefuse, - &asn_DEF_SgNBReleaseRequest, - &asn_DEF_SgNBReleaseRequestAcknowledge, - &asn_DEF_SgNBReleaseRequestReject, - &asn_DEF_SgNBReleaseRequired, - &asn_DEF_SgNBReleaseConfirm, - &asn_DEF_SgNBCounterCheckRequest, - &asn_DEF_SgNBChangeRequired, - &asn_DEF_SgNBChangeConfirm, - &asn_DEF_RRCTransfer, - &asn_DEF_SgNBChangeRefuse, - &asn_DEF_ENDCCellActivationRequest, - &asn_DEF_ENDCCellActivationResponse, - &asn_DEF_ENDCCellActivationFailure, - &asn_DEF_SecondaryRATDataUsageReport, - &asn_DEF_SgNBActivityNotification, - &asn_DEF_ENDCPartialResetRequired, - &asn_DEF_ENDCPartialResetConfirm, - &asn_DEF_EUTRANRCellResourceCoordinationRequest, - &asn_DEF_EUTRANRCellResourceCoordinationResponse, - &asn_DEF_ENDCX2RemovalRequest, - &asn_DEF_ENDCX2RemovalResponse, - &asn_DEF_ENDCX2RemovalFailure, - &asn_DEF_DataForwardingAddressIndication, - /* From module E2SM-gNB-X2-IEs in ../../asnFiles/e2sm-gNB-X2-release-1-v041.asn */ - &asn_DEF_E2SM_gNB_X2_eventTriggerDefinition, - &asn_DEF_E2SM_gNB_X2_actionDefinition, - &asn_DEF_E2SM_gNB_X2_indicationHeader, - &asn_DEF_E2SM_gNB_X2_indicationMessage, - &asn_DEF_E2SM_gNB_X2_callProcessID, - &asn_DEF_E2SM_gNB_X2_controlHeader, - &asn_DEF_E2SM_gNB_X2_controlMessage, - 0 -}; - diff --git a/e2sim/previous/ASN1c/per_decoder.c b/e2sim/previous/ASN1c/per_decoder.c deleted file mode 100644 index 36aa312..0000000 --- a/e2sim/previous/ASN1c/per_decoder.c +++ /dev/null @@ -1,203 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -#include -#include -#include - -/* - * Decode a "Production of a complete encoding", X.691#10.1. - * The complete encoding contains at least one byte, and is an integral - * multiple of 8 bytes. - */ -asn_dec_rval_t -uper_decode_complete(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **sptr, - const void *buffer, size_t size) { - asn_dec_rval_t rval; - - rval = uper_decode(opt_codec_ctx, td, sptr, buffer, size, 0, 0); - if(rval.consumed) { - /* - * We've always given 8-aligned data, - * so convert bits to integral bytes. - */ - rval.consumed += 7; - rval.consumed >>= 3; - } else if(rval.code == RC_OK) { - if(size) { - if(((const uint8_t *)buffer)[0] == 0) { - rval.consumed = 1; /* 1 byte */ - } else { - ASN_DEBUG("Expecting single zeroed byte"); - rval.code = RC_FAIL; - } - } else { - /* Must contain at least 8 bits. */ - rval.code = RC_WMORE; - } - } - - return rval; -} - -asn_dec_rval_t -uper_decode(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **sptr, const void *buffer, - size_t size, int skip_bits, int unused_bits) { - asn_codec_ctx_t s_codec_ctx; - asn_dec_rval_t rval; - asn_per_data_t pd; - - if(skip_bits < 0 || skip_bits > 7 - || unused_bits < 0 || unused_bits > 7 - || (unused_bits > 0 && !size)) - ASN__DECODE_FAILED; - - /* - * Stack checker requires that the codec context - * must be allocated on the stack. - */ - if(opt_codec_ctx) { - if(opt_codec_ctx->max_stack_size) { - s_codec_ctx = *opt_codec_ctx; - opt_codec_ctx = &s_codec_ctx; - } - } else { - /* If context is not given, be security-conscious anyway */ - memset(&s_codec_ctx, 0, sizeof(s_codec_ctx)); - s_codec_ctx.max_stack_size = ASN__DEFAULT_STACK_MAX; - opt_codec_ctx = &s_codec_ctx; - } - - /* Fill in the position indicator */ - memset(&pd, 0, sizeof(pd)); - pd.buffer = (const uint8_t *)buffer; - pd.nboff = skip_bits; - pd.nbits = 8 * size - unused_bits; /* 8 is CHAR_BIT from */ - if(pd.nboff > pd.nbits) - ASN__DECODE_FAILED; - - /* - * Invoke type-specific decoder. - */ - if(!td->op->uper_decoder) - ASN__DECODE_FAILED; /* PER is not compiled in */ - rval = td->op->uper_decoder(opt_codec_ctx, td, 0, sptr, &pd); - if(rval.code == RC_OK) { - /* Return the number of consumed bits */ - rval.consumed = ((pd.buffer - (const uint8_t *)buffer) << 3) - + pd.nboff - skip_bits; - ASN_DEBUG("PER decoding consumed %ld, counted %ld", - (long)rval.consumed, (long)pd.moved); - assert(rval.consumed == pd.moved); - } else { - /* PER codec is not a restartable */ - rval.consumed = 0; - } - return rval; -} - -asn_dec_rval_t -aper_decode_complete(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **sptr, - const void *buffer, size_t size) { - asn_dec_rval_t rval; - - rval = aper_decode(opt_codec_ctx, td, sptr, buffer, size, 0, 0); - if(rval.consumed) { - /* - * We've always given 8-aligned data, - * so convert bits to integral bytes. - */ - rval.consumed += 7; - rval.consumed >>= 3; - } else if(rval.code == RC_OK) { - if(size) { - if(((const uint8_t *)buffer)[0] == 0) { - rval.consumed = 1; /* 1 byte */ - } else { - ASN_DEBUG("Expecting single zeroed byte"); - rval.code = RC_FAIL; - } - } else { - /* Must contain at least 8 bits. */ - rval.code = RC_WMORE; - } - } - - return rval; -} - -asn_dec_rval_t -aper_decode(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **sptr, const void *buffer, - size_t size, int skip_bits, int unused_bits) { - asn_codec_ctx_t s_codec_ctx; - asn_dec_rval_t rval; - asn_per_data_t pd; - - if(skip_bits < 0 || skip_bits > 7 - || unused_bits < 0 || unused_bits > 7 - || (unused_bits > 0 && !size)) - ASN__DECODE_FAILED; - - /* - * Stack checker requires that the codec context - * must be allocated on the stack. - */ - if(opt_codec_ctx) { - if(opt_codec_ctx->max_stack_size) { - s_codec_ctx = *opt_codec_ctx; - opt_codec_ctx = &s_codec_ctx; - } - } else { - /* If context is not given, be security-conscious anyway */ - memset(&s_codec_ctx, 0, sizeof(s_codec_ctx)); - s_codec_ctx.max_stack_size = ASN__DEFAULT_STACK_MAX; - opt_codec_ctx = &s_codec_ctx; - } - - /* Fill in the position indicator */ - memset(&pd, 0, sizeof(pd)); - pd.buffer = (const uint8_t *)buffer; - pd.nboff = skip_bits; - pd.nbits = 8 * size - unused_bits; /* 8 is CHAR_BIT from */ - if(pd.nboff > pd.nbits) - ASN__DECODE_FAILED; - - /* - * Invoke type-specific decoder. - */ - if(!td->op->aper_decoder) - ASN__DECODE_FAILED; /* PER is not compiled in */ - rval = td->op->aper_decoder(opt_codec_ctx, td, 0, sptr, &pd); - if(rval.code == RC_OK) { - /* Return the number of consumed bits */ - rval.consumed = ((pd.buffer - (const uint8_t *)buffer) << 3) - + pd.nboff - skip_bits; - ASN_DEBUG("PER decoding consumed %zu, counted %zu", - rval.consumed, pd.moved); - assert(rval.consumed == pd.moved); - } else { - /* PER codec is not a restartable */ - rval.consumed = 0; - } - return rval; -} - diff --git a/e2sim/previous/ASN1c/per_decoder.h b/e2sim/previous/ASN1c/per_decoder.h deleted file mode 100644 index c230647..0000000 --- a/e2sim/previous/ASN1c/per_decoder.h +++ /dev/null @@ -1,100 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/*- - * Copyright (c) 2005-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef _PER_DECODER_H_ -#define _PER_DECODER_H_ - -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -struct asn_TYPE_descriptor_s; /* Forward declaration */ - -/* - * Unaligned PER decoder of a "complete encoding" as per X.691 (08/2015) #11.1. - * On success, this call always returns (.consumed >= 1), as per #11.1.3. - */ -asn_dec_rval_t uper_decode_complete( - const struct asn_codec_ctx_s *opt_codec_ctx, - const struct asn_TYPE_descriptor_s *type_descriptor, /* Type to decode */ - void **struct_ptr, /* Pointer to a target structure's pointer */ - const void *buffer, /* Data to be decoded */ - size_t size /* Size of data buffer */ -); - -/* - * Unaligned PER decoder of any ASN.1 type. May be invoked by the application. - * WARNING: This call returns the number of BITS read from the stream. Beware. - */ -asn_dec_rval_t uper_decode( - const struct asn_codec_ctx_s *opt_codec_ctx, - const struct asn_TYPE_descriptor_s *type_descriptor, /* Type to decode */ - void **struct_ptr, /* Pointer to a target structure's pointer */ - const void *buffer, /* Data to be decoded */ - size_t size, /* Size of the input data buffer, in bytes */ - int skip_bits, /* Number of unused leading bits, 0..7 */ - int unused_bits /* Number of unused tailing bits, 0..7 */ -); - -/* - * Aligned PER decoder of a "complete encoding" as per X.691#10.1. - * On success, this call always returns (.consumed >= 1), in BITS, as per X.691#10.1.3. - */ -asn_dec_rval_t aper_decode_complete( - const struct asn_codec_ctx_s *opt_codec_ctx, - const struct asn_TYPE_descriptor_s *type_descriptor, /* Type to decode */ - void **struct_ptr, /* Pointer to a target structure's pointer */ - const void *buffer, /* Data to be decoded */ - size_t size /* Size of data buffer */ - ); - -/* - * Aligned PER decoder of any ASN.1 type. May be invoked by the application. - * WARNING: This call returns the number of BITS read from the stream. Beware. - */ -asn_dec_rval_t aper_decode( - const struct asn_codec_ctx_s *opt_codec_ctx, - const struct asn_TYPE_descriptor_s *type_descriptor, /* Type to decode */ - void **struct_ptr, /* Pointer to a target structure's pointer */ - const void *buffer, /* Data to be decoded */ - size_t size, /* Size of data buffer */ - int skip_bits, /* Number of unused leading bits, 0..7 */ - int unused_bits /* Number of unused tailing bits, 0..7 */ - ); - -/* - * Type of the type-specific PER decoder function. - */ -typedef asn_dec_rval_t(per_type_decoder_f)( - const asn_codec_ctx_t *opt_codec_ctx, - const struct asn_TYPE_descriptor_s *type_descriptor, - const asn_per_constraints_t *constraints, void **struct_ptr, - asn_per_data_t *per_data); - -#ifdef __cplusplus -} -#endif - -#endif /* _PER_DECODER_H_ */ diff --git a/e2sim/previous/ASN1c/per_encoder.c b/e2sim/previous/ASN1c/per_encoder.c deleted file mode 100644 index 39bcd2d..0000000 --- a/e2sim/previous/ASN1c/per_encoder.c +++ /dev/null @@ -1,283 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -#include -#include -#include - -static int _uper_encode_flush_outp(asn_per_outp_t *po); - -static int -ignore_output(const void *data, size_t size, void *app_key) { - (void)data; - (void)size; - (void)app_key; - return 0; -} - -asn_enc_rval_t -uper_encode(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, const void *sptr, - asn_app_consume_bytes_f *cb, void *app_key) { - asn_per_outp_t po; - asn_enc_rval_t er = {0,0,0}; - - /* - * Invoke type-specific encoder. - */ - if(!td || !td->op->uper_encoder) - ASN__ENCODE_FAILED; /* PER is not compiled in */ - - po.buffer = po.tmpspace; - po.nboff = 0; - po.nbits = 8 * sizeof(po.tmpspace); - po.output = cb ? cb : ignore_output; - po.op_key = app_key; - po.flushed_bytes = 0; - - er = td->op->uper_encoder(td, constraints, sptr, &po); - if(er.encoded != -1) { - size_t bits_to_flush; - - bits_to_flush = ((po.buffer - po.tmpspace) << 3) + po.nboff; - - /* Set number of bits encoded to a firm value */ - er.encoded = (po.flushed_bytes << 3) + bits_to_flush; - - if(_uper_encode_flush_outp(&po)) ASN__ENCODE_FAILED; - } - - return er; -} - -/* - * Argument type and callback necessary for uper_encode_to_buffer(). - */ -typedef struct enc_to_buf_arg { - void *buffer; - size_t left; -} enc_to_buf_arg; -static int encode_to_buffer_cb(const void *buffer, size_t size, void *key) { - enc_to_buf_arg *arg = (enc_to_buf_arg *)key; - - if(arg->left < size) - return -1; /* Data exceeds the available buffer size */ - - memcpy(arg->buffer, buffer, size); - arg->buffer = ((char *)arg->buffer) + size; - arg->left -= size; - - return 0; -} - -asn_enc_rval_t -uper_encode_to_buffer(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, void *buffer, size_t buffer_size) { - enc_to_buf_arg key; - - key.buffer = buffer; - key.left = buffer_size; - - if(td) ASN_DEBUG("Encoding \"%s\" using UNALIGNED PER", td->name); - - return uper_encode(td, constraints, sptr, encode_to_buffer_cb, &key); -} - -typedef struct enc_dyn_arg { - void *buffer; - size_t length; - size_t allocated; -} enc_dyn_arg; -static int -encode_dyn_cb(const void *buffer, size_t size, void *key) { - enc_dyn_arg *arg = key; - if(arg->length + size >= arg->allocated) { - size_t new_size = arg->allocated ? arg->allocated : 8; - void *p; - - do { - new_size <<= 2; - } while(arg->length + size >= new_size); - - p = REALLOC(arg->buffer, new_size); - if(!p) { - FREEMEM(arg->buffer); - memset(arg, 0, sizeof(*arg)); - return -1; - } - arg->buffer = p; - arg->allocated = new_size; - } - memcpy(((char *)arg->buffer) + arg->length, buffer, size); - arg->length += size; - return 0; -} -ssize_t -uper_encode_to_new_buffer(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, void **buffer_r) { - asn_enc_rval_t er = {0,0,0}; - enc_dyn_arg key; - - memset(&key, 0, sizeof(key)); - - er = uper_encode(td, constraints, sptr, encode_dyn_cb, &key); - switch(er.encoded) { - case -1: - FREEMEM(key.buffer); - return -1; - case 0: - FREEMEM(key.buffer); - key.buffer = MALLOC(1); - if(key.buffer) { - *(char *)key.buffer = '\0'; - *buffer_r = key.buffer; - return 1; - } else { - return -1; - } - default: - *buffer_r = key.buffer; - ASN_DEBUG("Complete encoded in %ld bits", (long)er.encoded); - return ((er.encoded + 7) >> 3); - } -} - -/* - * Internally useful functions. - */ - -/* Flush partially filled buffer */ -static int -_uper_encode_flush_outp(asn_per_outp_t *po) { - uint8_t *buf; - - if(po->nboff == 0 && po->buffer == po->tmpspace) - return 0; - - buf = po->buffer + (po->nboff >> 3); - /* Make sure we account for the last, partially filled */ - if(po->nboff & 0x07) { - buf[0] &= 0xff << (8 - (po->nboff & 0x07)); - buf++; - } - - return po->output(po->tmpspace, buf - po->tmpspace, po->op_key); -} - -asn_enc_rval_t -aper_encode_to_buffer(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, void *buffer, size_t buffer_size) { - enc_to_buf_arg key; - - key.buffer = buffer; - key.left = buffer_size; - - if(td) ASN_DEBUG("Encoding \"%s\" using ALIGNED PER", td->name); - - return aper_encode(td, constraints, sptr, encode_to_buffer_cb, &key); -} - -ssize_t -aper_encode_to_new_buffer(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, void **buffer_r) { - asn_enc_rval_t er = {0,0,0}; - enc_dyn_arg key; - - memset(&key, 0, sizeof(key)); - - er = aper_encode(td, constraints, sptr, encode_dyn_cb, &key); - switch(er.encoded) { - case -1: - FREEMEM(key.buffer); - return -1; - case 0: - FREEMEM(key.buffer); - key.buffer = MALLOC(1); - if(key.buffer) { - *(char *)key.buffer = '\0'; - *buffer_r = key.buffer; - return 1; - } else { - return -1; - } - default: - *buffer_r = key.buffer; - ASN_DEBUG("Complete encoded in %ld bits", (long)er.encoded); - return ((er.encoded + 7) >> 3); - } -} - -static int -_aper_encode_flush_outp(asn_per_outp_t *po) { - uint8_t *buf; - - if(po->nboff == 0 && po->buffer == po->tmpspace) - return 0; - - buf = po->buffer + (po->nboff >> 3); - /* Make sure we account for the last, partially filled */ - if(po->nboff & 0x07) { - buf[0] &= 0xff << (8 - (po->nboff & 0x07)); - buf++; - } - - if (po->output) { - return po->output(po->tmpspace, buf - po->tmpspace, po->op_key); - } - return 0; -} - -asn_enc_rval_t -aper_encode(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_app_consume_bytes_f *cb, void *app_key) { - asn_per_outp_t po; - asn_enc_rval_t er = {0,0,0}; - - /* - * Invoke type-specific encoder. - */ - if(!td || !td->op->aper_encoder) - ASN__ENCODE_FAILED; /* PER is not compiled in */ - - po.buffer = po.tmpspace; - po.nboff = 0; - po.nbits = 8 * sizeof(po.tmpspace); - po.output = cb; - po.op_key = app_key; - po.flushed_bytes = 0; - - er = td->op->aper_encoder(td, constraints, sptr, &po); - if(er.encoded != -1) { - size_t bits_to_flush; - - bits_to_flush = ((po.buffer - po.tmpspace) << 3) + po.nboff; - - /* Set number of bits encoded to a firm value */ - er.encoded = (po.flushed_bytes << 3) + bits_to_flush; - - if(_aper_encode_flush_outp(&po)) - ASN__ENCODE_FAILED; - } - - return er; -} diff --git a/e2sim/previous/ASN1c/per_encoder.h b/e2sim/previous/ASN1c/per_encoder.h deleted file mode 100644 index 0aa86e7..0000000 --- a/e2sim/previous/ASN1c/per_encoder.h +++ /dev/null @@ -1,111 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/*- - * Copyright (c) 2006-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef _PER_ENCODER_H_ -#define _PER_ENCODER_H_ - -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -struct asn_TYPE_descriptor_s; /* Forward declaration */ - -/* - * Unaligned PER encoder of any ASN.1 type. May be invoked by the application. - * WARNING: This function returns the number of encoded bits in the .encoded - * field of the return value. Use the following formula to convert to bytes: - * bytes = ((.encoded + 7) / 8) - */ -asn_enc_rval_t uper_encode( - const struct asn_TYPE_descriptor_s *type_descriptor, - const asn_per_constraints_t *constraints, - const void *struct_ptr, /* Structure to be encoded */ - asn_app_consume_bytes_f *consume_bytes_cb, /* Data collector */ - void *app_key /* Arbitrary callback argument */ -); - -asn_enc_rval_t aper_encode( - const struct asn_TYPE_descriptor_s *type_descriptor, - const asn_per_constraints_t *constraints, - const void *struct_ptr, /* Structure to be encoded */ - asn_app_consume_bytes_f *consume_bytes_cb, /* Data collector */ - void *app_key /* Arbitrary callback argument */ -); - -/* - * A variant of uper_encode() which encodes data into the existing buffer - * WARNING: This function returns the number of encoded bits in the .encoded - * field of the return value. - */ -asn_enc_rval_t uper_encode_to_buffer( - const struct asn_TYPE_descriptor_s *type_descriptor, - const asn_per_constraints_t *constraints, - const void *struct_ptr, /* Structure to be encoded */ - void *buffer, /* Pre-allocated buffer */ - size_t buffer_size /* Initial buffer size (max) */ -); - -asn_enc_rval_t aper_encode_to_buffer( - const struct asn_TYPE_descriptor_s *type_descriptor, - const asn_per_constraints_t *constraints, - const void *struct_ptr, /* Structure to be encoded */ - void *buffer, /* Pre-allocated buffer */ - size_t buffer_size /* Initial buffer size (max) */ -); -/* - * A variant of uper_encode_to_buffer() which allocates buffer itself. - * Returns the number of bytes in the buffer or -1 in case of failure. - * WARNING: This function produces a "Production of the complete encoding", - * with length of at least one octet. Contrast this to precise bit-packing - * encoding of uper_encode() and uper_encode_to_buffer(). - */ -ssize_t uper_encode_to_new_buffer( - const struct asn_TYPE_descriptor_s *type_descriptor, - const asn_per_constraints_t *constraints, - const void *struct_ptr, /* Structure to be encoded */ - void **buffer_r /* Buffer allocated and returned */ -); - -ssize_t -aper_encode_to_new_buffer( - const struct asn_TYPE_descriptor_s *td, - const asn_per_constraints_t *constraints, - const void *sptr, - void **buffer_r -); - -/* - * Type of the generic PER encoder function. - */ -typedef asn_enc_rval_t(per_type_encoder_f)( - const struct asn_TYPE_descriptor_s *type_descriptor, - const asn_per_constraints_t *constraints, const void *struct_ptr, - asn_per_outp_t *per_output); - -#ifdef __cplusplus -} -#endif - -#endif /* _PER_ENCODER_H_ */ diff --git a/e2sim/previous/ASN1c/per_opentype.c b/e2sim/previous/ASN1c/per_opentype.c deleted file mode 100644 index 1238919..0000000 --- a/e2sim/previous/ASN1c/per_opentype.c +++ /dev/null @@ -1,551 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Copyright (c) 2007 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include -#include - -typedef struct uper_ugot_key { - asn_per_data_t oldpd; /* Old per data source */ - size_t unclaimed; - size_t ot_moved; /* Number of bits moved by OT processing */ - int repeat; -} uper_ugot_key; - -static int uper_ugot_refill(asn_per_data_t *pd); -static int per_skip_bits(asn_per_data_t *pd, int skip_nbits); -static asn_dec_rval_t uper_sot_suck(const asn_codec_ctx_t *, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - void **sptr, asn_per_data_t *pd); - -/* - * Encode an "open type field". - * #10.1, #10.2 - */ -int -uper_open_type_put(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, const void *sptr, - asn_per_outp_t *po) { - void *buf; - void *bptr; - ssize_t size; - - ASN_DEBUG("Open type put %s ...", td->name); - - size = uper_encode_to_new_buffer(td, constraints, sptr, &buf); - if(size <= 0) return -1; - - ASN_DEBUG("Open type put %s of length %" ASN_PRI_SSIZE " + overhead (1byte?)", td->name, - size); - - bptr = buf; - do { - int need_eom = 0; - ssize_t may_save = uper_put_length(po, size, &need_eom); - ASN_DEBUG("Prepending length %" ASN_PRI_SSIZE - " to %s and allowing to save %" ASN_PRI_SSIZE, - size, td->name, may_save); - if(may_save < 0) break; - if(per_put_many_bits(po, bptr, may_save * 8)) break; - bptr = (char *)bptr + may_save; - size -= may_save; - if(need_eom && uper_put_length(po, 0, 0)) { - FREEMEM(buf); - return -1; - } - } while(size); - - FREEMEM(buf); - if(size) return -1; - - return 0; -} - -static asn_dec_rval_t -uper_open_type_get_simple(const asn_codec_ctx_t *ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, - asn_per_data_t *pd) { - asn_dec_rval_t rv; - ssize_t chunk_bytes; - int repeat; - uint8_t *buf = 0; - size_t bufLen = 0; - size_t bufSize = 0; - asn_per_data_t spd; - size_t padding; - - ASN__STACK_OVERFLOW_CHECK(ctx); - - ASN_DEBUG("Getting open type %s...", td->name); - - do { - chunk_bytes = uper_get_length(pd, -1, 0, &repeat); - if(chunk_bytes < 0) { - FREEMEM(buf); - ASN__DECODE_STARVED; - } - if(bufLen + chunk_bytes > bufSize) { - void *ptr; - bufSize = chunk_bytes + (bufSize << 2); - ptr = REALLOC(buf, bufSize); - if(!ptr) { - FREEMEM(buf); - ASN__DECODE_FAILED; - } - buf = ptr; - } - if(per_get_many_bits(pd, buf + bufLen, 0, chunk_bytes << 3)) { - FREEMEM(buf); - ASN__DECODE_STARVED; - } - bufLen += chunk_bytes; - } while(repeat); - - ASN_DEBUG("Getting open type %s encoded in %ld bytes", td->name, - (long)bufLen); - - memset(&spd, 0, sizeof(spd)); - spd.buffer = buf; - spd.nbits = bufLen << 3; - - ASN_DEBUG_INDENT_ADD(+4); - rv = td->op->uper_decoder(ctx, td, constraints, sptr, &spd); - ASN_DEBUG_INDENT_ADD(-4); - - if(rv.code == RC_OK) { - /* Check padding validity */ - padding = spd.nbits - spd.nboff; - if (((padding > 0 && padding < 8) || - /* X.691#10.1.3 */ - (spd.nboff == 0 && spd.nbits == 8 && spd.buffer == buf)) && - per_get_few_bits(&spd, padding) == 0) { - /* Everything is cool */ - FREEMEM(buf); - return rv; - } - FREEMEM(buf); - if(padding >= 8) { - ASN_DEBUG("Too large padding %d in open type", (int)padding); - ASN__DECODE_FAILED; - } else { - ASN_DEBUG("No padding"); - } - } else { - FREEMEM(buf); - /* rv.code could be RC_WMORE, nonsense in this context */ - rv.code = RC_FAIL; /* Noone would give us more */ - } - - return rv; -} - -static asn_dec_rval_t CC_NOTUSED -uper_open_type_get_complex(const asn_codec_ctx_t *ctx, - const asn_TYPE_descriptor_t *td, - asn_per_constraints_t *constraints, void **sptr, - asn_per_data_t *pd) { - uper_ugot_key arg; - asn_dec_rval_t rv; - ssize_t padding; - - ASN__STACK_OVERFLOW_CHECK(ctx); - - ASN_DEBUG("Getting open type %s from %s", td->name, - asn_bit_data_string(pd)); - arg.oldpd = *pd; - arg.unclaimed = 0; - arg.ot_moved = 0; - arg.repeat = 1; - pd->refill = uper_ugot_refill; - pd->refill_key = &arg; - pd->nbits = pd->nboff; /* 0 good bits at this point, will refill */ - pd->moved = 0; /* This now counts the open type size in bits */ - - ASN_DEBUG_INDENT_ADD(+4); - rv = td->op->uper_decoder(ctx, td, constraints, sptr, pd); - ASN_DEBUG_INDENT_ADD(-4); - -#define UPDRESTOREPD do { \ - /* buffer and nboff are valid, preserve them. */ \ - pd->nbits = arg.oldpd.nbits - (pd->moved - arg.ot_moved); \ - pd->moved = arg.oldpd.moved + (pd->moved - arg.ot_moved); \ - pd->refill = arg.oldpd.refill; \ - pd->refill_key = arg.oldpd.refill_key; \ - } while(0) - - if(rv.code != RC_OK) { - UPDRESTOREPD; - return rv; - } - - ASN_DEBUG("OpenType %s pd%s old%s unclaimed=%d, repeat=%d", td->name, - asn_bit_data_string(pd), - asn_bit_data_string(&arg.oldpd), - (int)arg.unclaimed, (int)arg.repeat); - - padding = pd->moved % 8; - if(padding) { - int32_t pvalue; - if(padding > 7) { - ASN_DEBUG("Too large padding %d in open type", - (int)padding); - rv.code = RC_FAIL; - UPDRESTOREPD; - return rv; - } - padding = 8 - padding; - ASN_DEBUG("Getting padding of %d bits", (int)padding); - pvalue = per_get_few_bits(pd, padding); - switch(pvalue) { - case -1: - ASN_DEBUG("Padding skip failed"); - UPDRESTOREPD; - ASN__DECODE_STARVED; - case 0: break; - default: - ASN_DEBUG("Non-blank padding (%d bits 0x%02x)", - (int)padding, (int)pvalue); - UPDRESTOREPD; - ASN__DECODE_FAILED; - } - } - if(pd->nboff != pd->nbits) { - ASN_DEBUG("Open type %s overhead pd%s old%s", td->name, - asn_bit_data_string(pd), asn_bit_data_string(&arg.oldpd)); - if(1) { - UPDRESTOREPD; - ASN__DECODE_FAILED; - } else { - arg.unclaimed += pd->nbits - pd->nboff; - } - } - - /* Adjust pd back so it points to original data */ - UPDRESTOREPD; - - /* Skip data not consumed by the decoder */ - if(arg.unclaimed) { - ASN_DEBUG("Getting unclaimed %d", (int)arg.unclaimed); - switch(per_skip_bits(pd, arg.unclaimed)) { - case -1: - ASN_DEBUG("Claim of %d failed", (int)arg.unclaimed); - ASN__DECODE_STARVED; - case 0: - ASN_DEBUG("Got claim of %d", (int)arg.unclaimed); - break; - default: - /* Padding must be blank */ - ASN_DEBUG("Non-blank unconsumed padding"); - ASN__DECODE_FAILED; - } - arg.unclaimed = 0; - } - - if(arg.repeat) { - ASN_DEBUG("Not consumed the whole thing"); - rv.code = RC_FAIL; - return rv; - } - - return rv; -} - - -asn_dec_rval_t -uper_open_type_get(const asn_codec_ctx_t *ctx, const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, - asn_per_data_t *pd) { - return uper_open_type_get_simple(ctx, td, constraints, sptr, pd); -} - -int -uper_open_type_skip(const asn_codec_ctx_t *ctx, asn_per_data_t *pd) { - asn_TYPE_descriptor_t s_td; - asn_TYPE_operation_t s_op; - asn_dec_rval_t rv; - - s_td.name = ""; - s_td.op = &s_op; - s_op.uper_decoder = uper_sot_suck; - - rv = uper_open_type_get(ctx, &s_td, 0, 0, pd); - if(rv.code != RC_OK) - return -1; - else - return 0; -} - -/* - * Internal functions. - */ - -static asn_dec_rval_t -uper_sot_suck(const asn_codec_ctx_t *ctx, const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, - asn_per_data_t *pd) { - asn_dec_rval_t rv; - - (void)ctx; - (void)td; - (void)constraints; - (void)sptr; - - while(per_get_few_bits(pd, 1) >= 0); - - rv.code = RC_OK; - rv.consumed = pd->moved; - - return rv; -} - -static int -uper_ugot_refill(asn_per_data_t *pd) { - uper_ugot_key *arg = pd->refill_key; - ssize_t next_chunk_bytes, next_chunk_bits; - ssize_t avail; - - asn_per_data_t *oldpd = &arg->oldpd; - - ASN_DEBUG("REFILLING pd->moved=%ld, oldpd->moved=%ld", - (long)pd->moved, (long)oldpd->moved); - - /* Advance our position to where pd is */ - oldpd->buffer = pd->buffer; - oldpd->nboff = pd->nboff; - oldpd->nbits -= pd->moved - arg->ot_moved; - oldpd->moved += pd->moved - arg->ot_moved; - arg->ot_moved = pd->moved; - - if(arg->unclaimed) { - /* Refill the container */ - if(per_get_few_bits(oldpd, 1)) - return -1; - if(oldpd->nboff == 0) { - assert(0); - return -1; - } - pd->buffer = oldpd->buffer; - pd->nboff = oldpd->nboff - 1; - pd->nbits = oldpd->nbits; - ASN_DEBUG("UNCLAIMED <- return from (pd->moved=%ld)", - (long)pd->moved); - return 0; - } - - if(!arg->repeat) { - ASN_DEBUG("Want more but refill doesn't have it"); - return -1; - } - - next_chunk_bytes = uper_get_length(oldpd, -1, 0, &arg->repeat); - ASN_DEBUG("Open type LENGTH %ld bytes at off %ld, repeat %ld", - (long)next_chunk_bytes, (long)oldpd->moved, (long)arg->repeat); - if(next_chunk_bytes < 0) return -1; - if(next_chunk_bytes == 0) { - pd->refill = 0; /* No more refills, naturally */ - assert(!arg->repeat); /* Implementation guarantee */ - } - next_chunk_bits = next_chunk_bytes << 3; - avail = oldpd->nbits - oldpd->nboff; - if(avail >= next_chunk_bits) { - pd->nbits = oldpd->nboff + next_chunk_bits; - arg->unclaimed = 0; - ASN_DEBUG("!+Parent frame %ld bits, alloting %ld [%ld..%ld] (%ld)", - (long)next_chunk_bits, (long)oldpd->moved, - (long)oldpd->nboff, (long)oldpd->nbits, - (long)(oldpd->nbits - oldpd->nboff)); - } else { - pd->nbits = oldpd->nbits; - arg->unclaimed = next_chunk_bits - avail; - ASN_DEBUG("!-Parent frame %ld, require %ld, will claim %ld", - (long)avail, (long)next_chunk_bits, - (long)arg->unclaimed); - } - pd->buffer = oldpd->buffer; - pd->nboff = oldpd->nboff; - ASN_DEBUG("Refilled pd%s old%s", - asn_bit_data_string(pd), asn_bit_data_string(oldpd)); - return 0; -} - -static int -per_skip_bits(asn_per_data_t *pd, int skip_nbits) { - int hasNonZeroBits = 0; - while(skip_nbits > 0) { - int skip; - - /* per_get_few_bits() is more efficient when nbits <= 24 */ - if(skip_nbits < 24) - skip = skip_nbits; - else - skip = 24; - skip_nbits -= skip; - - switch(per_get_few_bits(pd, skip)) { - case -1: return -1; /* Starving */ - case 0: continue; /* Skipped empty space */ - default: hasNonZeroBits = 1; continue; - } - } - return hasNonZeroBits; -} - -static asn_dec_rval_t -aper_open_type_get_simple(const asn_codec_ctx_t *ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, asn_per_data_t *pd) { - asn_dec_rval_t rv; - ssize_t chunk_bytes; - int repeat; - uint8_t *buf = 0; - size_t bufLen = 0; - size_t bufSize = 0; - asn_per_data_t spd; - size_t padding; - - ASN__STACK_OVERFLOW_CHECK(ctx); - - ASN_DEBUG("Getting open type %s...", td->name); - - do { - chunk_bytes = aper_get_length(pd, -1, -1, &repeat); - if(chunk_bytes < 0) { - FREEMEM(buf); - ASN__DECODE_STARVED; - } - if(bufLen + chunk_bytes > bufSize) { - void *ptr; - bufSize = chunk_bytes + (bufSize << 2); - ptr = REALLOC(buf, bufSize); - if(!ptr) { - FREEMEM(buf); - ASN__DECODE_FAILED; - } - buf = ptr; - } - if(per_get_many_bits(pd, buf + bufLen, 0, chunk_bytes << 3)) { - FREEMEM(buf); - ASN__DECODE_STARVED; - } - bufLen += chunk_bytes; - } while(repeat); - - ASN_DEBUG("Getting open type %s encoded in %ld bytes", td->name, - (long)bufLen); - - memset(&spd, 0, sizeof(spd)); - spd.buffer = buf; - spd.nbits = bufLen << 3; - - ASN_DEBUG_INDENT_ADD(+4); - rv = td->op->aper_decoder(ctx, td, constraints, sptr, &spd); - ASN_DEBUG_INDENT_ADD(-4); - - if(rv.code == RC_OK) { - /* Check padding validity */ - padding = spd.nbits - spd.nboff; - if (((padding > 0 && padding < 8) || - /* X.691#10.1.3 */ - (spd.nboff == 0 && spd.nbits == 8 && spd.buffer == buf)) && - per_get_few_bits(&spd, padding) == 0) { - /* Everything is cool */ - FREEMEM(buf); - return rv; - } - FREEMEM(buf); - if(padding >= 8) { - ASN_DEBUG("Too large padding %d in open type", (int)padding); - ASN__DECODE_FAILED; - } else { - ASN_DEBUG("No padding"); - } - } else { - FREEMEM(buf); - /* rv.code could be RC_WMORE, nonsense in this context */ - rv.code = RC_FAIL; /* Noone would give us more */ - } - - return rv; -} - -int -aper_open_type_put(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_per_outp_t *po) { - void *buf; - void *bptr; - ssize_t size; - size_t toGo; - - ASN_DEBUG("Open type put %s ...", td->name); - - size = aper_encode_to_new_buffer(td, constraints, sptr, &buf); - if(size <= 0) return -1; - - for(bptr = buf, toGo = size; toGo;) { - ssize_t maySave = aper_put_length(po, -1, toGo); - if(maySave < 0) break; - if(per_put_many_bits(po, bptr, maySave * 8)) break; - bptr = (char *)bptr + maySave; - toGo -= maySave; - } - - FREEMEM(buf); - if(toGo) return -1; - - ASN_DEBUG("Open type put %s of length %ld + overhead (1byte?)", - td->name, size); - - return 0; -} - -asn_dec_rval_t -aper_open_type_get(const asn_codec_ctx_t *ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - void **sptr, asn_per_data_t *pd) { - - return aper_open_type_get_simple(ctx, td, constraints, sptr, pd); -} - -int -aper_open_type_skip(const asn_codec_ctx_t *ctx, asn_per_data_t *pd) { - asn_TYPE_descriptor_t s_td; - asn_dec_rval_t rv; - asn_TYPE_operation_t op_t; - - memset(&op_t, 0, sizeof(op_t)); - s_td.name = ""; - s_td.op = &op_t; - s_td.op->aper_decoder = uper_sot_suck; - - rv = aper_open_type_get(ctx, &s_td, 0, 0, pd); - if(rv.code != RC_OK) - return -1; - else - return 0; -} - - diff --git a/e2sim/previous/ASN1c/per_opentype.h b/e2sim/previous/ASN1c/per_opentype.h deleted file mode 100644 index eb1d1f2..0000000 --- a/e2sim/previous/ASN1c/per_opentype.h +++ /dev/null @@ -1,62 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Copyright (c) 2007-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef _PER_OPENTYPE_H_ -#define _PER_OPENTYPE_H_ - -#ifdef __cplusplus -extern "C" { -#endif - -asn_dec_rval_t uper_open_type_get(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - void **sptr, asn_per_data_t *pd); - -int uper_open_type_skip(const asn_codec_ctx_t *opt_codec_ctx, - asn_per_data_t *pd); - -/* - * X.691 (2015/08), #11.2 - * Returns -1 if error is encountered. 0 if all OK. - */ -int uper_open_type_put(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_per_outp_t *po); - -asn_dec_rval_t aper_open_type_get(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - void **sptr, asn_per_data_t *pd); - - -int aper_open_type_skip(const asn_codec_ctx_t *opt_codec_ctx, asn_per_data_t *pd); - -int aper_open_type_put(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_per_outp_t *po); - -#ifdef __cplusplus -} -#endif - -#endif /* _PER_OPENTYPE_H_ */ diff --git a/e2sim/previous/ASN1c/per_support.c b/e2sim/previous/ASN1c/per_support.c deleted file mode 100644 index 0d70e1c..0000000 --- a/e2sim/previous/ASN1c/per_support.c +++ /dev/null @@ -1,507 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Copyright (c) 2005-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include - -/* - * X.691-201508 #10.9 General rules for encoding a length determinant. - * Get the optionally constrained length "n" from the stream. - */ -ssize_t -uper_get_length(asn_per_data_t *pd, int ebits, size_t lower_bound, - int *repeat) { - ssize_t value; - - *repeat = 0; - - /* #11.9.4.1 Encoding if constrained (according to effective bits) */ - if(ebits >= 0 && ebits <= 16) { - value = per_get_few_bits(pd, ebits); - if(value >= 0) value += lower_bound; - return value; - } - - value = per_get_few_bits(pd, 8); - if((value & 0x80) == 0) { /* #11.9.3.6 */ - return (value & 0x7F); - } else if((value & 0x40) == 0) { /* #11.9.3.7 */ - /* bit 8 ... set to 1 and bit 7 ... set to zero */ - value = ((value & 0x3f) << 8) | per_get_few_bits(pd, 8); - return value; /* potential -1 from per_get_few_bits passes through. */ - } else if(value < 0) { - ASN_DEBUG("END of stream reached for PER"); - return -1; - } - value &= 0x3f; /* this is "m" from X.691, #11.9.3.8 */ - if(value < 1 || value > 4) { - return -1; /* Prohibited by #11.9.3.8 */ - } - *repeat = 1; - return (16384 * value); -} - -/* - * Get the normally small length "n". - * This procedure used to decode length of extensions bit-maps - * for SET and SEQUENCE types. - */ -ssize_t -uper_get_nslength(asn_per_data_t *pd) { - ssize_t length; - - ASN_DEBUG("Getting normally small length"); - - if(per_get_few_bits(pd, 1) == 0) { - length = per_get_few_bits(pd, 6) + 1; - if(length <= 0) return -1; - ASN_DEBUG("l=%d", (int)length); - return length; - } else { - int repeat; - length = uper_get_length(pd, -1, 0, &repeat); - if(length >= 0 && !repeat) return length; - return -1; /* Error, or do not support >16K extensions */ - } -} - -/* - * Get the normally small non-negative whole number. - * X.691, #10.6 - */ -ssize_t -uper_get_nsnnwn(asn_per_data_t *pd) { - ssize_t value; - - value = per_get_few_bits(pd, 7); - if(value & 64) { /* implicit (value < 0) */ - value &= 63; - value <<= 2; - value |= per_get_few_bits(pd, 2); - if(value & 128) /* implicit (value < 0) */ - return -1; - if(value == 0) - return 0; - if(value >= 3) - return -1; - value = per_get_few_bits(pd, 8 * value); - return value; - } - - return value; -} - -/* - * X.691-11/2008, #11.6 - * Encoding of a normally small non-negative whole number - */ -int -uper_put_nsnnwn(asn_per_outp_t *po, int n) { - int bytes; - - if(n <= 63) { - if(n < 0) return -1; - return per_put_few_bits(po, n, 7); - } - if(n < 256) - bytes = 1; - else if(n < 65536) - bytes = 2; - else if(n < 256 * 65536) - bytes = 3; - else - return -1; /* This is not a "normally small" value */ - if(per_put_few_bits(po, bytes, 8)) - return -1; - - return per_put_few_bits(po, n, 8 * bytes); -} - - -/* X.691-2008/11, #11.5.6 -> #11.3 */ -int uper_get_constrained_whole_number(asn_per_data_t *pd, unsigned long *out_value, int nbits) { - unsigned long lhalf; /* Lower half of the number*/ - long half; - - if(nbits <= 31) { - half = per_get_few_bits(pd, nbits); - if(half < 0) return -1; - *out_value = half; - return 0; - } - - if((size_t)nbits > 8 * sizeof(*out_value)) - return -1; /* RANGE */ - - half = per_get_few_bits(pd, 31); - if(half < 0) return -1; - - if(uper_get_constrained_whole_number(pd, &lhalf, nbits - 31)) - return -1; - - *out_value = ((unsigned long)half << (nbits - 31)) | lhalf; - return 0; -} - - -/* X.691-2008/11, #11.5.6 -> #11.3 */ -int -uper_put_constrained_whole_number_u(asn_per_outp_t *po, unsigned long v, - int nbits) { - if(nbits <= 31) { - return per_put_few_bits(po, v, nbits); - } else { - /* Put higher portion first, followed by lower 31-bit */ - if(uper_put_constrained_whole_number_u(po, v >> 31, nbits - 31)) - return -1; - return per_put_few_bits(po, v, 31); - } -} - -/* - * X.691 (08/2015) #11.9 "General rules for encoding a length determinant" - * Put the length "n" (or part of it) into the stream. - */ -ssize_t -uper_put_length(asn_per_outp_t *po, size_t length, int *need_eom) { - int dummy = 0; - if(!need_eom) need_eom = &dummy; - - if(length <= 127) { /* #11.9.3.6 */ - *need_eom = 0; - return per_put_few_bits(po, length, 8) - ? -1 : (ssize_t)length; - } else if(length < 16384) { /* #10.9.3.7 */ - *need_eom = 0; - return per_put_few_bits(po, length|0x8000, 16) - ? -1 : (ssize_t)length; - } - - *need_eom = 0 == (length & 16383); - length >>= 14; - if(length > 4) { - *need_eom = 0; - length = 4; - } - - return per_put_few_bits(po, 0xC0 | length, 8) - ? -1 : (ssize_t)(length << 14); - -} - - -/* - * Put the normally small length "n" into the stream. - * This procedure used to encode length of extensions bit-maps - * for SET and SEQUENCE types. - */ -int -uper_put_nslength(asn_per_outp_t *po, size_t length) { - if(length <= 64) { - /* #11.9.3.4 */ - if(length == 0) return -1; - return per_put_few_bits(po, length - 1, 7) ? -1 : 0; - } else { - int need_eom = 0; - if(uper_put_length(po, length, &need_eom) != (ssize_t)length - || need_eom) { - /* This might happen in case of >16K extensions */ - return -1; - } - } - - return 0; -} - -static int -per__long_range(long lb, long ub, unsigned long *range_r) { - unsigned long bounds_range; - if((ub < 0) == (lb < 0)) { - bounds_range = ub - lb; - } else if(lb < 0) { - assert(ub >= 0); - bounds_range = 1 + ((unsigned long)ub + (unsigned long)-(lb + 1)); - } else { - assert(!"Unreachable"); - return -1; - } - *range_r = bounds_range; - return 0; -} - -int -per_long_range_rebase(long v, long lb, long ub, unsigned long *output) { - unsigned long range; - - assert(lb <= ub); - - if(v < lb || v > ub || per__long_range(lb, ub, &range) < 0) { - /* Range error. */ - return -1; - } - - /* - * Fundamentally what we're doing is returning (v-lb). - * However, this triggers undefined behavior when the word width - * of signed (v) is the same as the size of unsigned (*output). - * In practice, it triggers the UndefinedSanitizer. Therefore we shall - * compute the ranges accurately to avoid C's undefined behavior. - */ - if((v < 0) == (lb < 0)) { - *output = v-lb; - return 0; - } else if(v < 0) { - unsigned long rebased = 1 + (unsigned long)-(v+1) + (unsigned long)lb; - assert(rebased <= range); /* By construction */ - *output = rebased; - return 0; - } else if(lb < 0) { - unsigned long rebased = 1 + (unsigned long)-(lb+1) + (unsigned long)v; - assert(rebased <= range); /* By construction */ - *output = rebased; - return 0; - } else { - assert(!"Unreachable"); - return -1; - } -} - -int -per_long_range_unrebase(unsigned long inp, long lb, long ub, long *outp) { - unsigned long range; - - if(per__long_range(lb, ub, &range) != 0) { - return -1; - } - - if(inp > range) { - /* - * We can encode something in the given number of bits that technically - * exceeds the range. This is an avenue for security errors, - * so we don't allow that. - */ - return -1; - } - - if(inp <= LONG_MAX) { - *outp = (long)inp + lb; - } else { - *outp = (lb + LONG_MAX + 1) + (long)((inp - LONG_MAX) - 1); - } - - return 0; -} - -int32_t -aper_get_align(asn_per_data_t *pd) { - - if(pd->nboff & 0x7) { - ASN_DEBUG("Aligning %ld bits", 8 - ((unsigned long)pd->nboff & 0x7)); - return per_get_few_bits(pd, 8 - (pd->nboff & 0x7)); - } - return 0; -} - -ssize_t -aper_get_length(asn_per_data_t *pd, int range, int ebits, int *repeat) { - ssize_t value; - - *repeat = 0; - - if (range <= 65536 && range >= 0) - return aper_get_nsnnwn(pd, range); - - if (aper_get_align(pd) < 0) - return -1; - - if(ebits >= 0) return per_get_few_bits(pd, ebits); - - value = per_get_few_bits(pd, 8); - if(value < 0) return -1; - if((value & 128) == 0) /* #10.9.3.6 */ - return (value & 0x7F); - if((value & 64) == 0) { /* #10.9.3.7 */ - value = ((value & 63) << 8) | per_get_few_bits(pd, 8); - if(value < 0) return -1; - return value; - } - value &= 63; /* this is "m" from X.691, #10.9.3.8 */ - if(value < 1 || value > 4) - return -1; - *repeat = 1; - return (16384 * value); -} - -ssize_t -aper_get_nslength(asn_per_data_t *pd) { - ssize_t length; - - ASN_DEBUG("Getting normally small length"); - - if(per_get_few_bits(pd, 1) == 0) { - length = per_get_few_bits(pd, 6) + 1; - if(length <= 0) return -1; - ASN_DEBUG("l=%ld", length); - return length; - } else { - int repeat; - length = aper_get_length(pd, -1, -1, &repeat); - if(length >= 0 && !repeat) return length; - return -1; /* Error, or do not support >16K extensions */ - } -} - -ssize_t -aper_get_nsnnwn(asn_per_data_t *pd, int range) { - ssize_t value; - int bytes = 0; - - ASN_DEBUG("getting nsnnwn with range %d", range); - - if(range <= 255) { - int i; - - if (range < 0) return -1; - /* 1 -> 8 bits */ - for (i = 1; i <= 8; i++) { - int upper = 1 << i; - if (upper >= range) - break; - } - value = per_get_few_bits(pd, i); - return value; - } else if (range == 256){ - /* 1 byte */ - bytes = 1; - } else if (range <= 65536) { - /* 2 bytes */ - bytes = 2; - } else { - return -1; - } - if (aper_get_align(pd) < 0) - return -1; - value = per_get_few_bits(pd, 8 * bytes); - return value; -} - -int aper_put_align(asn_per_outp_t *po) { - - if(po->nboff & 0x7) { - ASN_DEBUG("Aligning %ld bits", 8 - ((unsigned long)po->nboff & 0x7)); - if(per_put_few_bits(po, 0x00, (8 - (po->nboff & 0x7)))) - return -1; - } - return 0; -} - -ssize_t -aper_put_length(asn_per_outp_t *po, int range, size_t length) { - - ASN_DEBUG("APER put length %zu with range %d", length, range); - - /* 10.9 X.691 Note 2 */ - if (range <= 65536 && range >= 0) - return aper_put_nsnnwn(po, range, length); - - if (aper_put_align(po) < 0) - return -1; - - if(length <= 127) /* #10.9.3.6 */{ - return per_put_few_bits(po, length, 8) - ? -1 : (ssize_t)length; - } - else if(length < 16384) /* #10.9.3.7 */ - return per_put_few_bits(po, length|0x8000, 16) - ? -1 : (ssize_t)length; - - length >>= 14; - if(length > 4) length = 4; - - return per_put_few_bits(po, 0xC0 | length, 8) - ? -1 : (ssize_t)(length << 14); -} - - -int -aper_put_nslength(asn_per_outp_t *po, size_t length) { - - if(length <= 64) { - /* #10.9.3.4 */ - if(length == 0) return -1; - return per_put_few_bits(po, length-1, 7) ? -1 : 0; - } else { - if(aper_put_length(po, -1, length) != (ssize_t)length) { - /* This might happen in case of >16K extensions */ - return -1; - } - } - - return 0; -} - -int -aper_put_nsnnwn(asn_per_outp_t *po, int range, int number) { - int bytes; - - ASN_DEBUG("aper put nsnnwn %d with range %d", number, range); - /* 10.5.7.1 X.691 */ - if(range < 0) { - int i; - for (i = 1; ; i++) { - int bits = 1 << (8 * i); - if (number <= bits) - break; - } - bytes = i; - assert(i <= 4); - } - if(range <= 255) { - int i; - for (i = 1; i <= 8; i++) { - int bits = 1 << i; - if (range <= bits) - break; - } - return per_put_few_bits(po, number, i); - } else if(range == 256) { - bytes = 1; - } else if(range <= 65536) { - bytes = 2; - } else { /* Ranges > 64K */ - int i; - for (i = 1; ; i++) { - int bits = 1 << (8 * i); - if (range <= bits) - break; - } - assert(i <= 4); - bytes = i; - } - if(aper_put_align(po) < 0) /* Aligning on octet */ - return -1; -/* if(per_put_few_bits(po, bytes, 8)) - return -1; -*/ - return per_put_few_bits(po, number, 8 * bytes); -} diff --git a/e2sim/previous/ASN1c/per_support.h b/e2sim/previous/ASN1c/per_support.h deleted file mode 100644 index 38d90d8..0000000 --- a/e2sim/previous/ASN1c/per_support.h +++ /dev/null @@ -1,145 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Copyright (c) 2005-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef _PER_SUPPORT_H_ -#define _PER_SUPPORT_H_ - -#include /* Platform-specific types */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * Pre-computed PER constraints. - */ -typedef struct asn_per_constraint_s { - enum asn_per_constraint_flags { - APC_UNCONSTRAINED = 0x0, /* No PER visible constraints */ - APC_SEMI_CONSTRAINED = 0x1, /* Constrained at "lb" */ - APC_CONSTRAINED = 0x2, /* Fully constrained */ - APC_EXTENSIBLE = 0x4 /* May have extension */ - } flags; - int range_bits; /* Full number of bits in the range */ - int effective_bits; /* Effective bits */ - long lower_bound; /* "lb" value */ - long upper_bound; /* "ub" value */ -} asn_per_constraint_t; -typedef struct asn_per_constraints_s { - asn_per_constraint_t value; - asn_per_constraint_t size; - int (*value2code)(unsigned int value); - int (*code2value)(unsigned int code); -} asn_per_constraints_t; - -/* Temporary compatibility layer. Will get removed. */ -typedef struct asn_bit_data_s asn_per_data_t; -#define per_get_few_bits(data, bits) asn_get_few_bits(data, bits) -#define per_get_undo(data, bits) asn_get_undo(data, bits) -#define per_get_many_bits(data, dst, align, bits) \ - asn_get_many_bits(data, dst, align, bits) - -/* - * X.691 (08/2015) #11.9 "General rules for encoding a length determinant" - * Get the length "n" from the Unaligned PER stream. - */ -ssize_t uper_get_length(asn_per_data_t *pd, int effective_bound_bits, - size_t lower_bound, int *repeat); - -ssize_t aper_get_length(asn_per_data_t *pd, int range, - int effective_bound_bits, int *repeat); - -/* - * Get the normally small length "n". - */ -ssize_t uper_get_nslength(asn_per_data_t *pd); -ssize_t aper_get_nslength(asn_per_data_t *pd); - -/* - * Get the normally small non-negative whole number. - */ -ssize_t uper_get_nsnnwn(asn_per_data_t *pd); -ssize_t aper_get_nsnnwn(asn_per_data_t *pd, int range); - -/* X.691-2008/11, #11.5.6 */ -int uper_get_constrained_whole_number(asn_per_data_t *pd, unsigned long *v, int nbits); - - -/* Temporary compatibility layer. Will get removed. */ -typedef struct asn_bit_outp_s asn_per_outp_t; -#define per_put_few_bits(out, bits, obits) asn_put_few_bits(out, bits, obits) -#define per_put_many_bits(out, src, nbits) asn_put_many_bits(out, src, nbits) -#define per_put_aligned_flush(out) asn_put_aligned_flush(out) - - -/* - * Rebase the given value as an offset into the range specified by the - * lower bound (lb) and upper bound (ub). - * RETURN VALUES: - * -1: Conversion failed due to range problems. - * 0: Conversion was successful. - */ -int per_long_range_rebase(long v, long lb, long ub, unsigned long *output); -/* The inverse operation: restores the value by the offset and its bounds. */ -int per_long_range_unrebase(unsigned long inp, long lb, long ub, long *outp); - -/* X.691-2008/11, #11.5 */ -int uper_put_constrained_whole_number_u(asn_per_outp_t *po, unsigned long v, int nbits); - -/* - * X.691 (08/2015) #11.9 "General rules for encoding a length determinant" - * Put the length "whole_length" to the Unaligned PER stream. - * If (opt_need_eom) is given, it will be set to 1 if final 0-length is needed. - * In that case, invoke uper_put_length(po, 0, 0) after encoding the last block. - * This function returns the number of units which may be flushed - * in the next units saving iteration. - */ -ssize_t uper_put_length(asn_per_outp_t *po, size_t whole_length, - int *opt_need_eom); - -ssize_t aper_put_length(asn_per_outp_t *po, int range, size_t length); - -/* Align the current bit position to octet bundary */ -int aper_put_align(asn_per_outp_t *po); -int32_t aper_get_align(asn_per_data_t *pd); - -/* - * Put the normally small length "n" to the Unaligned PER stream. - * Returns 0 or -1. - */ -int uper_put_nslength(asn_per_outp_t *po, size_t length); - -int aper_put_nslength(asn_per_outp_t *po, size_t length); - -/* - * Put the normally small non-negative whole number. - */ -int uper_put_nsnnwn(asn_per_outp_t *po, int n); - -int aper_put_nsnnwn(asn_per_outp_t *po, int range, int number); - -#ifdef __cplusplus -} -#endif - -#endif /* _PER_SUPPORT_H_ */ diff --git a/e2sim/previous/ASN1c/xer_decoder.c b/e2sim/previous/ASN1c/xer_decoder.c deleted file mode 100644 index 3f8e876..0000000 --- a/e2sim/previous/ASN1c/xer_decoder.c +++ /dev/null @@ -1,387 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include /* XER/XML parsing support */ - - -/* - * Decode the XER encoding of a given type. - */ -asn_dec_rval_t -xer_decode(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **struct_ptr, - const void *buffer, size_t size) { - asn_codec_ctx_t s_codec_ctx; - - /* - * Stack checker requires that the codec context - * must be allocated on the stack. - */ - if(opt_codec_ctx) { - if(opt_codec_ctx->max_stack_size) { - s_codec_ctx = *opt_codec_ctx; - opt_codec_ctx = &s_codec_ctx; - } - } else { - /* If context is not given, be security-conscious anyway */ - memset(&s_codec_ctx, 0, sizeof(s_codec_ctx)); - s_codec_ctx.max_stack_size = ASN__DEFAULT_STACK_MAX; - opt_codec_ctx = &s_codec_ctx; - } - - /* - * Invoke type-specific decoder. - */ - return td->op->xer_decoder(opt_codec_ctx, td, struct_ptr, 0, buffer, size); -} - - - -struct xer__cb_arg { - pxml_chunk_type_e chunk_type; - size_t chunk_size; - const void *chunk_buf; - int callback_not_invoked; -}; - -static int -xer__token_cb(pxml_chunk_type_e type, const void *_chunk_data, size_t _chunk_size, void *key) { - struct xer__cb_arg *arg = (struct xer__cb_arg *)key; - arg->chunk_type = type; - arg->chunk_size = _chunk_size; - arg->chunk_buf = _chunk_data; - arg->callback_not_invoked = 0; - return -1; /* Terminate the XML parsing */ -} - -/* - * Fetch the next token from the XER/XML stream. - */ -ssize_t -xer_next_token(int *stateContext, const void *buffer, size_t size, pxer_chunk_type_e *ch_type) { - struct xer__cb_arg arg; - int new_stateContext = *stateContext; - ssize_t ret; - - arg.callback_not_invoked = 1; - ret = pxml_parse(&new_stateContext, buffer, size, xer__token_cb, &arg); - if(ret < 0) return -1; - if(arg.callback_not_invoked) { - assert(ret == 0); /* No data was consumed */ - *ch_type = PXER_WMORE; - return 0; /* Try again with more data */ - } else { - assert(arg.chunk_size); - assert(arg.chunk_buf == buffer); - } - - /* - * Translate the XML chunk types into more convenient ones. - */ - switch(arg.chunk_type) { - case PXML_TEXT: - *ch_type = PXER_TEXT; - break; - case PXML_TAG: - *ch_type = PXER_WMORE; - return 0; /* Want more */ - case PXML_TAG_END: - *ch_type = PXER_TAG; - break; - case PXML_COMMENT: - case PXML_COMMENT_END: - *ch_type = PXER_COMMENT; - break; - } - - *stateContext = new_stateContext; - return arg.chunk_size; -} - -#define CSLASH 0x2f /* '/' */ -#define LANGLE 0x3c /* '<' */ -#define RANGLE 0x3e /* '>' */ - -xer_check_tag_e -xer_check_tag(const void *buf_ptr, int size, const char *need_tag) { - const char *buf = (const char *)buf_ptr; - const char *end; - xer_check_tag_e ct = XCT_OPENING; - - if(size < 2 || buf[0] != LANGLE || buf[size-1] != RANGLE) { - if(size >= 2) - ASN_DEBUG("Broken XML tag: \"%c...%c\"", - buf[0], buf[size - 1]); - return XCT_BROKEN; - } - - /* - * Determine the tag class. - */ - if(buf[1] == CSLASH) { - buf += 2; /* advance past "" */ - ct = XCT_CLOSING; - if(size > 0 && buf[size-1] == CSLASH) - return XCT_BROKEN; /* */ - } else { - buf++; /* advance past "<" */ - size -= 2; /* strip "<" and ">" */ - if(size > 0 && buf[size-1] == CSLASH) { - ct = XCT_BOTH; - size--; /* One more, for "/" */ - } - } - - /* Sometimes we don't care about the tag */ - if(!need_tag || !*need_tag) - return (xer_check_tag_e)(XCT__UNK__MASK | ct); - - /* - * Determine the tag name. - */ - for(end = buf + size; buf < end; buf++, need_tag++) { - int b = *buf, n = *need_tag; - if(b != n) { - if(n == 0) { - switch(b) { - case 0x09: case 0x0a: case 0x0c: case 0x0d: - case 0x20: - /* "": whitespace is normal */ - return ct; - } - } - return (xer_check_tag_e)(XCT__UNK__MASK | ct); - } - if(b == 0) - return XCT_BROKEN; /* Embedded 0 in buf?! */ - } - if(*need_tag) - return (xer_check_tag_e)(XCT__UNK__MASK | ct); - - return ct; -} - - -#undef ADVANCE -#define ADVANCE(num_bytes) do { \ - size_t num = (num_bytes); \ - buf_ptr = ((const char *)buf_ptr) + num; \ - size -= num; \ - consumed_myself += num; \ - } while(0) - -#undef RETURN -#define RETURN(_code) do { \ - rval.code = _code; \ - rval.consumed = consumed_myself; \ - if(rval.code != RC_OK) \ - ASN_DEBUG("Failed with %d", rval.code); \ - return rval; \ - } while(0) - -#define XER_GOT_BODY(chunk_buf, chunk_size, size) do { \ - ssize_t converted_size = body_receiver \ - (struct_key, chunk_buf, chunk_size, \ - (size_t)chunk_size < size); \ - if(converted_size == -1) RETURN(RC_FAIL); \ - if(converted_size == 0 \ - && size == (size_t)chunk_size) \ - RETURN(RC_WMORE); \ - chunk_size = converted_size; \ - } while(0) -#define XER_GOT_EMPTY() do { \ - if(body_receiver(struct_key, 0, 0, size > 0) == -1) \ - RETURN(RC_FAIL); \ - } while(0) - -/* - * Generalized function for decoding the primitive values. - */ -asn_dec_rval_t -xer_decode_general(const asn_codec_ctx_t *opt_codec_ctx, - asn_struct_ctx_t *ctx, /* Type decoder context */ - void *struct_key, - const char *xml_tag, /* Expected XML tag */ - const void *buf_ptr, size_t size, - int (*opt_unexpected_tag_decoder) - (void *struct_key, const void *chunk_buf, size_t chunk_size), - ssize_t (*body_receiver) - (void *struct_key, const void *chunk_buf, size_t chunk_size, - int have_more) - ) { - - asn_dec_rval_t rval; - ssize_t consumed_myself = 0; - - (void)opt_codec_ctx; - - /* - * Phases of XER/XML processing: - * Phase 0: Check that the opening tag matches our expectations. - * Phase 1: Processing body and reacting on closing tag. - */ - if(ctx->phase > 1) RETURN(RC_FAIL); - for(;;) { - pxer_chunk_type_e ch_type; /* XER chunk type */ - ssize_t ch_size; /* Chunk size */ - xer_check_tag_e tcv; /* Tag check value */ - - /* - * Get the next part of the XML stream. - */ - ch_size = xer_next_token(&ctx->context, buf_ptr, size, - &ch_type); - if(ch_size == -1) { - RETURN(RC_FAIL); - } else { - switch(ch_type) { - case PXER_WMORE: - RETURN(RC_WMORE); - case PXER_COMMENT: /* Got XML comment */ - ADVANCE(ch_size); /* Skip silently */ - continue; - case PXER_TEXT: - if(ctx->phase == 0) { - /* - * We have to ignore whitespace here, - * but in order to be forward compatible - * with EXTENDED-XER (EMBED-VALUES, #25) - * any text is just ignored here. - */ - } else { - XER_GOT_BODY(buf_ptr, ch_size, size); - } - ADVANCE(ch_size); - continue; - case PXER_TAG: - break; /* Check the rest down there */ - } - } - - assert(ch_type == PXER_TAG && size); - - tcv = xer_check_tag(buf_ptr, ch_size, xml_tag); - /* - * Phase 0: - * Expecting the opening tag - * for the type being processed. - * Phase 1: - * Waiting for the closing XML tag. - */ - switch(tcv) { - case XCT_BOTH: - if(ctx->phase) break; - /* Finished decoding of an empty element */ - XER_GOT_EMPTY(); - ADVANCE(ch_size); - ctx->phase = 2; /* Phase out */ - RETURN(RC_OK); - case XCT_OPENING: - if(ctx->phase) break; - ADVANCE(ch_size); - ctx->phase = 1; /* Processing body phase */ - continue; - case XCT_CLOSING: - if(!ctx->phase) break; - ADVANCE(ch_size); - ctx->phase = 2; /* Phase out */ - RETURN(RC_OK); - case XCT_UNKNOWN_BO: - /* - * Certain tags in the body may be expected. - */ - if(opt_unexpected_tag_decoder - && opt_unexpected_tag_decoder(struct_key, - buf_ptr, ch_size) >= 0) { - /* Tag's processed fine */ - ADVANCE(ch_size); - if(!ctx->phase) { - /* We are not expecting - * the closing tag anymore. */ - ctx->phase = 2; /* Phase out */ - RETURN(RC_OK); - } - continue; - } - /* Fall through */ - default: - break; /* Unexpected tag */ - } - - ASN_DEBUG("Unexpected XML tag (expected \"%s\")", xml_tag); - break; /* Dark and mysterious things have just happened */ - } - - RETURN(RC_FAIL); -} - - -size_t -xer_whitespace_span(const void *chunk_buf, size_t chunk_size) { - const char *p = (const char *)chunk_buf; - const char *pend = p + chunk_size; - - for(; p < pend; p++) { - switch(*p) { - /* X.693, #8.1.4 - * HORISONTAL TAB (9) - * LINE FEED (10) - * CARRIAGE RETURN (13) - * SPACE (32) - */ - case 0x09: case 0x0a: case 0x0d: case 0x20: - continue; - default: - break; - } - break; - } - return (p - (const char *)chunk_buf); -} - -/* - * This is a vastly simplified, non-validating XML tree skipper. - */ -int -xer_skip_unknown(xer_check_tag_e tcv, ber_tlv_len_t *depth) { - assert(*depth > 0); - switch(tcv) { - case XCT_BOTH: - case XCT_UNKNOWN_BO: - /* These negate each other. */ - return 0; - case XCT_OPENING: - case XCT_UNKNOWN_OP: - ++(*depth); - return 0; - case XCT_CLOSING: - case XCT_UNKNOWN_CL: - if(--(*depth) == 0) - return (tcv == XCT_CLOSING) ? 2 : 1; - return 0; - default: - return -1; - } -} diff --git a/e2sim/previous/ASN1c/xer_decoder.h b/e2sim/previous/ASN1c/xer_decoder.h deleted file mode 100644 index 2c9d569..0000000 --- a/e2sim/previous/ASN1c/xer_decoder.h +++ /dev/null @@ -1,124 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/*- - * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef _XER_DECODER_H_ -#define _XER_DECODER_H_ - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -struct asn_TYPE_descriptor_s; /* Forward declaration */ - -/* - * The XER decoder of any ASN.1 type. May be invoked by the application. - * Decodes CANONICAL-XER and BASIC-XER. - */ -asn_dec_rval_t xer_decode( - const struct asn_codec_ctx_s *opt_codec_ctx, - const struct asn_TYPE_descriptor_s *type_descriptor, - void **struct_ptr, /* Pointer to a target structure's pointer */ - const void *buffer, /* Data to be decoded */ - size_t size /* Size of data buffer */ -); - -/* - * Type of the type-specific XER decoder function. - */ -typedef asn_dec_rval_t(xer_type_decoder_f)( - const asn_codec_ctx_t *opt_codec_ctx, - const struct asn_TYPE_descriptor_s *type_descriptor, void **struct_ptr, - const char *opt_mname, /* Member name */ - const void *buf_ptr, size_t size); - -/******************************* - * INTERNALLY USEFUL FUNCTIONS * - *******************************/ - -/* - * Generalized function for decoding the primitive values. - * Used by more specialized functions, such as OCTET_STRING_decode_xer_utf8 - * and others. This function should not be used by applications, as its API - * is subject to changes. - */ -asn_dec_rval_t xer_decode_general( - const asn_codec_ctx_t *opt_codec_ctx, - asn_struct_ctx_t *ctx, /* Type decoder context */ - void *struct_key, /* Treated as opaque pointer */ - const char *xml_tag, /* Expected XML tag name */ - const void *buf_ptr, size_t size, - int (*opt_unexpected_tag_decoder)(void *struct_key, const void *chunk_buf, - size_t chunk_size), - ssize_t (*body_receiver)(void *struct_key, const void *chunk_buf, - size_t chunk_size, int have_more)); - - -/* - * Fetch the next XER (XML) token from the stream. - * The function returns the number of bytes occupied by the chunk type, - * returned in the _ch_type. The _ch_type is only set (and valid) when - * the return value is >= 0. - */ - typedef enum pxer_chunk_type { - PXER_WMORE, /* Chunk type is not clear, more data expected. */ - PXER_TAG, /* Complete XER tag */ - PXER_TEXT, /* Plain text between XER tags */ - PXER_COMMENT /* A comment, may be part of */ - } pxer_chunk_type_e; -ssize_t xer_next_token(int *stateContext, - const void *buffer, size_t size, pxer_chunk_type_e *_ch_type); - -/* - * This function checks the buffer against the tag name is expected to occur. - */ - typedef enum xer_check_tag { - XCT_BROKEN = 0, /* The tag is broken */ - XCT_OPENING = 1, /* This is the tag */ - XCT_CLOSING = 2, /* This is the tag */ - XCT_BOTH = 3, /* This is the tag */ - XCT__UNK__MASK = 4, /* Mask of everything unexpected */ - XCT_UNKNOWN_OP = 5, /* Unexpected tag */ - XCT_UNKNOWN_CL = 6, /* Unexpected tag */ - XCT_UNKNOWN_BO = 7 /* Unexpected tag */ - } xer_check_tag_e; -xer_check_tag_e xer_check_tag(const void *buf_ptr, int size, - const char *need_tag); - -/* - * Get the number of bytes consisting entirely of XER whitespace characters. - * RETURN VALUES: - * >=0: Number of whitespace characters in the string. - */ -size_t xer_whitespace_span(const void *chunk_buf, size_t chunk_size); - -/* - * Skip the series of anticipated extensions. - */ -int xer_skip_unknown(xer_check_tag_e tcv, ber_tlv_len_t *depth); - -#ifdef __cplusplus -} -#endif - -#endif /* _XER_DECODER_H_ */ diff --git a/e2sim/previous/ASN1c/xer_encoder.c b/e2sim/previous/ASN1c/xer_encoder.c deleted file mode 100644 index 94a30f1..0000000 --- a/e2sim/previous/ASN1c/xer_encoder.c +++ /dev/null @@ -1,255 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/*- - * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include - -/* - * The XER encoder of any type. May be invoked by the application. - */ -asn_enc_rval_t -xer_encode(const asn_TYPE_descriptor_t *td, const void *sptr, - enum xer_encoder_flags_e xer_flags, asn_app_consume_bytes_f *cb, - void *app_key) { - asn_enc_rval_t er = {0, 0, 0}; - asn_enc_rval_t tmper; - const char *mname; - size_t mlen; - int xcan = (xer_flags & XER_F_CANONICAL) ? 1 : 2; - - if(!td || !sptr) goto cb_failed; - - mname = td->xml_tag; - mlen = strlen(mname); - - ASN__CALLBACK3("<", 1, mname, mlen, ">", 1); - - tmper = td->op->xer_encoder(td, sptr, 1, xer_flags, cb, app_key); - if(tmper.encoded == -1) return tmper; - er.encoded += tmper.encoded; - - ASN__CALLBACK3("\n", xcan); - - ASN__ENCODED_OK(er); -cb_failed: - ASN__ENCODE_FAILED; -} - -/* - * This is a helper function for xer_fprint, which directs all incoming data - * into the provided file descriptor. - */ -static int -xer__print2fp(const void *buffer, size_t size, void *app_key) { - FILE *stream = (FILE *)app_key; - - if(fwrite(buffer, 1, size, stream) != size) - return -1; - - return 0; -} - -int -xer_fprint(FILE *stream, const asn_TYPE_descriptor_t *td, const void *sptr) { - asn_enc_rval_t er = {0,0,0}; - - if(!stream) stream = stdout; - if(!td || !sptr) - return -1; - - er = xer_encode(td, sptr, XER_F_BASIC, xer__print2fp, stream); - if(er.encoded == -1) - return -1; - - return fflush(stream); -} - -struct xer_buffer { - char *buffer; - size_t buffer_size; - size_t allocated_size; -}; - -static int -xer__buffer_append(const void *buffer, size_t size, void *app_key) { - struct xer_buffer *xb = app_key; - - while(xb->buffer_size + size + 1 > xb->allocated_size) { - size_t new_size = 2 * (xb->allocated_size ? xb->allocated_size : 64); - char *new_buf = MALLOC(new_size); - if(!new_buf) return -1; - if (xb->buffer) { - memcpy(new_buf, xb->buffer, xb->buffer_size); - } - FREEMEM(xb->buffer); - xb->buffer = new_buf; - xb->allocated_size = new_size; - } - - memcpy(xb->buffer + xb->buffer_size, buffer, size); - xb->buffer_size += size; - xb->buffer[xb->buffer_size] = '\0'; - return 0; -} - -enum xer_equivalence_e -xer_equivalent(const struct asn_TYPE_descriptor_s *td, const void *struct1, - const void *struct2, FILE *opt_debug_stream) { - struct xer_buffer xb1 = {0, 0, 0}; - struct xer_buffer xb2 = {0, 0, 0}; - asn_enc_rval_t e1, e2; - asn_dec_rval_t rval; - void *sptr = NULL; - - if(!td || !struct1 || !struct2) { - if(opt_debug_stream) { - if(!td) fprintf(opt_debug_stream, "Type descriptor missing\n"); - if(!struct1) fprintf(opt_debug_stream, "Structure 1 missing\n"); - if(!struct2) fprintf(opt_debug_stream, "Structure 2 missing\n"); - } - return XEQ_FAILURE; - } - - e1 = xer_encode(td, struct1, XER_F_BASIC, xer__buffer_append, &xb1); - if(e1.encoded == -1) { - if(opt_debug_stream) { - fprintf(stderr, "XER Encoding of %s failed\n", td->name); - } - FREEMEM(xb1.buffer); - return XEQ_ENCODE1_FAILED; - } - - e2 = xer_encode(td, struct2, XER_F_BASIC, xer__buffer_append, &xb2); - if(e2.encoded == -1) { - if(opt_debug_stream) { - fprintf(stderr, "XER Encoding of %s failed\n", td->name); - } - FREEMEM(xb1.buffer); - FREEMEM(xb2.buffer); - return XEQ_ENCODE1_FAILED; - } - - if(xb1.buffer_size != xb2.buffer_size - || memcmp(xb1.buffer, xb2.buffer, xb1.buffer_size) != 0) { - if(opt_debug_stream) { - fprintf(opt_debug_stream, - "Structures XER-encoded into different byte streams:\n=== " - "Structure 1 ===\n%s\n=== Structure 2 ===\n%s\n", - xb1.buffer, xb2.buffer); - } - FREEMEM(xb1.buffer); - FREEMEM(xb2.buffer); - return XEQ_DIFFERENT; - } else { - if(opt_debug_stream) { - fprintf(opt_debug_stream, - "Both structures encoded into the same XER byte stream " - "of size %" ASN_PRI_SIZE ":\n%s", - xb1.buffer_size, xb1.buffer); - } - } - - rval = xer_decode(NULL, td, (void **)&sptr, xb1.buffer, - xb1.buffer_size); - switch(rval.code) { - case RC_OK: - break; - case RC_WMORE: - if(opt_debug_stream) { - fprintf(opt_debug_stream, - "Structure %s XER decode unexpectedly requires " - "more data:\n%s\n", - td->name, xb1.buffer); - } - /* Fall through */ - case RC_FAIL: - default: - if(opt_debug_stream) { - fprintf(opt_debug_stream, - "Structure %s XER decoding resulted in failure.\n", - td->name); - } - ASN_STRUCT_FREE(*td, sptr); - FREEMEM(xb1.buffer); - FREEMEM(xb2.buffer); - return XEQ_DECODE_FAILED; - } - - if(rval.consumed != xb1.buffer_size - && ((rval.consumed > xb1.buffer_size) - || xer_whitespace_span(xb1.buffer + rval.consumed, - xb1.buffer_size - rval.consumed) - != (xb1.buffer_size - rval.consumed))) { - if(opt_debug_stream) { - fprintf(opt_debug_stream, - "Round-trip decode of %s required less bytes (%" ASN_PRI_SIZE ") than " - "encoded (%" ASN_PRI_SIZE ")\n", - td->name, rval.consumed, xb1.buffer_size); - } - ASN_STRUCT_FREE(*td, sptr); - FREEMEM(xb1.buffer); - FREEMEM(xb2.buffer); - return XEQ_ROUND_TRIP_FAILED; - } - - /* - * Reuse xb2 to encode newly decoded structure. - */ - FREEMEM(xb2.buffer); - memset(&xb2, 0, sizeof(xb2)); - - e2 = xer_encode(td, sptr, XER_F_BASIC, xer__buffer_append, &xb2); - if(e2.encoded == -1) { - if(opt_debug_stream) { - fprintf(stderr, "XER Encoding of round-trip decode of %s failed\n", - td->name); - } - ASN_STRUCT_FREE(*td, sptr); - FREEMEM(xb1.buffer); - FREEMEM(xb2.buffer); - return XEQ_ROUND_TRIP_FAILED; - } - - ASN_STRUCT_FREE(*td, sptr); - sptr = 0; - - if(xb1.buffer_size != xb2.buffer_size - || memcmp(xb1.buffer, xb2.buffer, xb1.buffer_size) != 0) { - if(opt_debug_stream) { - fprintf(opt_debug_stream, - "XER Encoding of round-trip decode of %s resulted in " - "different byte stream:\n" - "=== Original ===\n%s\n" - "=== Round-tripped ===\n%s\n", - xb1.buffer, xb2.buffer, td->name); - } - FREEMEM(xb1.buffer); - FREEMEM(xb2.buffer); - return XEQ_ROUND_TRIP_FAILED; - } - - FREEMEM(xb1.buffer); - FREEMEM(xb2.buffer); - return XEQ_SUCCESS; -} - diff --git a/e2sim/previous/ASN1c/xer_encoder.h b/e2sim/previous/ASN1c/xer_encoder.h deleted file mode 100644 index 2489c54..0000000 --- a/e2sim/previous/ASN1c/xer_encoder.h +++ /dev/null @@ -1,101 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/*- - * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef _XER_ENCODER_H_ -#define _XER_ENCODER_H_ - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -struct asn_TYPE_descriptor_s; /* Forward declaration */ - -/* Flags used by the xer_encode() and (*xer_type_encoder_f), defined below */ -enum xer_encoder_flags_e { - /* Mode of encoding */ - XER_F_BASIC = 0x01, /* BASIC-XER (pretty-printing) */ - XER_F_CANONICAL = 0x02 /* Canonical XER (strict rules) */ -}; - -/* - * The XER encoder of any type. May be invoked by the application. - * Produces CANONICAL-XER and BASIC-XER depending on the (xer_flags). - */ -asn_enc_rval_t xer_encode(const struct asn_TYPE_descriptor_s *type_descriptor, - const void *struct_ptr, /* Structure to be encoded */ - enum xer_encoder_flags_e xer_flags, - asn_app_consume_bytes_f *consume_bytes_cb, - void *app_key /* Arbitrary callback argument */ -); - -/* - * The variant of the above function which dumps the BASIC-XER (XER_F_BASIC) - * output into the chosen file pointer. - * RETURN VALUES: - * 0: The structure is printed. - * -1: Problem printing the structure. - * WARNING: No sensible errno value is returned. - */ -int xer_fprint(FILE *stream, const struct asn_TYPE_descriptor_s *td, - const void *struct_ptr); - -/* - * A helper function that uses XER encoding/decoding to verify that: - * - Both structures encode into the same BASIC XER. - * - Both resulting XER byte streams can be decoded back. - * - Both decoded structures encode into the same BASIC XER (round-trip). - * All of this verifies equivalence between structures and a round-trip. - * ARGUMENTS: - * (opt_debug_stream) - If specified, prints ongoing details. - */ -enum xer_equivalence_e { - XEQ_SUCCESS, /* The only completely positive return value */ - XEQ_FAILURE, /* General failure */ - XEQ_ENCODE1_FAILED, /* First sructure XER encoding failed */ - XEQ_ENCODE2_FAILED, /* Second structure XER encoding failed */ - XEQ_DIFFERENT, /* Structures encoded into different XER */ - XEQ_DECODE_FAILED, /* Decode of the XER data failed */ - XEQ_ROUND_TRIP_FAILED /* Bad round-trip */ -}; -enum xer_equivalence_e xer_equivalent( - const struct asn_TYPE_descriptor_s *type_descriptor, const void *struct1, - const void *struct2, FILE *opt_debug_stream); - -/* - * Type of the generic XER encoder. - */ -typedef asn_enc_rval_t(xer_type_encoder_f)( - const struct asn_TYPE_descriptor_s *type_descriptor, - const void *struct_ptr, /* Structure to be encoded */ - int ilevel, /* Level of indentation */ - enum xer_encoder_flags_e xer_flags, - asn_app_consume_bytes_f *consume_bytes_cb, /* Callback */ - void *app_key /* Arbitrary callback argument */ -); - -#ifdef __cplusplus -} -#endif - -#endif /* _XER_ENCODER_H_ */ diff --git a/e2sim/previous/ASN1c/xer_support.c b/e2sim/previous/ASN1c/xer_support.c deleted file mode 100644 index 4219b3a..0000000 --- a/e2sim/previous/ASN1c/xer_support.c +++ /dev/null @@ -1,245 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Copyright (c) 2003, 2004 X/IO Labs, xiolabs.com. - * Copyright (c) 2003, 2004, 2005 Lev Walkin . - * All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include - -/* Parser states */ -typedef enum { - ST_TEXT, - ST_TAG_START, - ST_TAG_BODY, - ST_TAG_QUOTE_WAIT, - ST_TAG_QUOTED_STRING, - ST_TAG_UNQUOTED_STRING, - ST_COMMENT_WAIT_DASH1, /* ""[0] */ - ST_COMMENT_CLO_RT /* "-->"[1] */ -} pstate_e; - -static const int -_charclass[256] = { - 0,0,0,0,0,0,0,0, 0,1,1,0,1,1,0,0, - 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0, - 1,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0, - 2,2,2,2,2,2,2,2, 2,2,0,0,0,0,0,0, /* 01234567 89 */ - 0,3,3,3,3,3,3,3, 3,3,3,3,3,3,3,3, /* ABCDEFG HIJKLMNO */ - 3,3,3,3,3,3,3,3, 3,3,3,0,0,0,0,0, /* PQRSTUVW XYZ */ - 0,3,3,3,3,3,3,3, 3,3,3,3,3,3,3,3, /* abcdefg hijklmno */ - 3,3,3,3,3,3,3,3, 3,3,3,0,0,0,0,0 /* pqrstuvw xyz */ -}; -#define WHITESPACE(c) (_charclass[(unsigned char)(c)] == 1) -#define ALNUM(c) (_charclass[(unsigned char)(c)] >= 2) -#define ALPHA(c) (_charclass[(unsigned char)(c)] == 3) - -/* Aliases for characters, ASCII/UTF-8 */ -#define EXCLAM 0x21 /* '!' */ -#define CQUOTE 0x22 /* '"' */ -#define CDASH 0x2d /* '-' */ -#define CSLASH 0x2f /* '/' */ -#define LANGLE 0x3c /* '<' */ -#define CEQUAL 0x3d /* '=' */ -#define RANGLE 0x3e /* '>' */ -#define CQUEST 0x3f /* '?' */ - -/* Invoke token callback */ -#define TOKEN_CB_CALL(type, _ns, _current_too, _final) do { \ - int _ret; \ - pstate_e ns = _ns; \ - ssize_t _sz = (p - chunk_start) + _current_too; \ - if (!_sz) { \ - /* Shortcut */ \ - state = _ns; \ - break; \ - } \ - _ret = cb(type, chunk_start, _sz, key); \ - if(_ret < _sz) { \ - if(_current_too && _ret == -1) \ - state = ns; \ - goto finish; \ - } \ - chunk_start = p + _current_too; \ - state = ns; \ - } while(0) - -#define TOKEN_CB(_type, _ns, _current_too) \ - TOKEN_CB_CALL(_type, _ns, _current_too, 0) - -#define PXML_TAG_FINAL_CHUNK_TYPE PXML_TAG_END -#define PXML_COMMENT_FINAL_CHUNK_TYPE PXML_COMMENT_END - -#define TOKEN_CB_FINAL(_type, _ns, _current_too) \ - TOKEN_CB_CALL( _type ## _FINAL_CHUNK_TYPE , _ns, _current_too, 1) - -/* - * Parser itself - */ -ssize_t pxml_parse(int *stateContext, const void *xmlbuf, size_t size, pxml_callback_f *cb, void *key) { - pstate_e state = (pstate_e)*stateContext; - const char *chunk_start = (const char *)xmlbuf; - const char *p = chunk_start; - const char *end = p + size; - - for(; p < end; p++) { - int C = *(const unsigned char *)p; - switch(state) { - case ST_TEXT: - /* - * Initial state: we're in the middle of some text, - * or just have started. - */ - if (C == LANGLE) - /* We're now in the tag, probably */ - TOKEN_CB(PXML_TEXT, ST_TAG_START, 0); - break; - case ST_TAG_START: - if (ALPHA(C) || (C == CSLASH)) - state = ST_TAG_BODY; - else if (C == EXCLAM) - state = ST_COMMENT_WAIT_DASH1; - else - /* - * Not characters and not whitespace. - * Must be something like "3 < 4". - */ - TOKEN_CB(PXML_TEXT, ST_TEXT, 1);/* Flush as data */ - break; - case ST_TAG_BODY: - switch(C) { - case RANGLE: - /* End of the tag */ - TOKEN_CB_FINAL(PXML_TAG, ST_TEXT, 1); - break; - case LANGLE: - /* - * The previous tag wasn't completed, but still - * recognized as valid. (Mozilla-compatible) - */ - TOKEN_CB_FINAL(PXML_TAG, ST_TAG_START, 0); - break; - case CEQUAL: - state = ST_TAG_QUOTE_WAIT; - break; - } - break; - case ST_TAG_QUOTE_WAIT: - /* - * State after the equal sign ("=") in the tag. - */ - switch(C) { - case CQUOTE: - state = ST_TAG_QUOTED_STRING; - break; - case RANGLE: - /* End of the tag */ - TOKEN_CB_FINAL(PXML_TAG, ST_TEXT, 1); - break; - default: - if(!WHITESPACE(C)) - /* Unquoted string value */ - state = ST_TAG_UNQUOTED_STRING; - } - break; - case ST_TAG_QUOTED_STRING: - /* - * Tag attribute's string value in quotes. - */ - if(C == CQUOTE) { - /* Return back to the tag state */ - state = ST_TAG_BODY; - } - break; - case ST_TAG_UNQUOTED_STRING: - if(C == RANGLE) { - /* End of the tag */ - TOKEN_CB_FINAL(PXML_TAG, ST_TEXT, 1); - } else if(WHITESPACE(C)) { - /* Return back to the tag state */ - state = ST_TAG_BODY; - } - break; - case ST_COMMENT_WAIT_DASH1: - if(C == CDASH) { - state = ST_COMMENT_WAIT_DASH2; - } else { - /* Some ordinary tag. */ - state = ST_TAG_BODY; - } - break; - case ST_COMMENT_WAIT_DASH2: - if(C == CDASH) { - /* Seen "<--" */ - state = ST_COMMENT; - } else { - /* Some ordinary tag */ - state = ST_TAG_BODY; - } - break; - case ST_COMMENT: - if(C == CDASH) { - state = ST_COMMENT_CLO_DASH2; - } - break; - case ST_COMMENT_CLO_DASH2: - if(C == CDASH) { - state = ST_COMMENT_CLO_RT; - } else { - /* This is not an end of a comment */ - state = ST_COMMENT; - } - break; - case ST_COMMENT_CLO_RT: - if(C == RANGLE) { - TOKEN_CB_FINAL(PXML_COMMENT, ST_TEXT, 1); - } else if(C == CDASH) { - /* Maintain current state, still waiting for '>' */ - } else { - state = ST_COMMENT; - } - break; - } /* switch(*ptr) */ - } /* for() */ - - /* - * Flush the partially processed chunk, state permitting. - */ - if(p - chunk_start) { - switch (state) { - case ST_COMMENT: - TOKEN_CB(PXML_COMMENT, state, 0); - break; - case ST_TEXT: - TOKEN_CB(PXML_TEXT, state, 0); - break; - default: break; /* a no-op */ - } - } - -finish: - *stateContext = (int)state; - return chunk_start - (const char *)xmlbuf; -} - diff --git a/e2sim/previous/ASN1c/xer_support.h b/e2sim/previous/ASN1c/xer_support.h deleted file mode 100644 index 1df2656..0000000 --- a/e2sim/previous/ASN1c/xer_support.h +++ /dev/null @@ -1,73 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -/* - * Copyright (c) 2003, 2004 X/IO Labs, xiolabs.com. - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef _XER_SUPPORT_H_ -#define _XER_SUPPORT_H_ - -#include /* Platform-specific types */ - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * Types of data transferred to the application. - */ -typedef enum { - PXML_TEXT, /* Plain text between XML tags. */ - PXML_TAG, /* A tag, starting with '<'. */ - PXML_COMMENT, /* An XML comment, including "". */ - /* - * The following chunk types are reported if the chunk - * terminates the specified XML element. - */ - PXML_TAG_END, /* Tag ended */ - PXML_COMMENT_END /* Comment ended */ -} pxml_chunk_type_e; - -/* - * Callback function that is called by the parser when parsed data is - * available. The _opaque is the pointer to a field containing opaque user - * data specified in pxml_create() call. The chunk type is _type and the text - * data is the piece of buffer identified by _bufid (as supplied to - * pxml_feed() call) starting at offset _offset and of _size bytes size. - * The chunk is NOT '\0'-terminated. - */ -typedef int (pxml_callback_f)(pxml_chunk_type_e _type, - const void *_chunk_data, size_t _chunk_size, void *_key); - -/* - * Parse the given buffer as it were a chunk of XML data. - * Invoke the specified callback each time the meaninful data is found. - * This function returns number of bytes consumed from the bufer. - * It will always be lesser than or equal to the specified _size. - * The next invocation of this function must account the difference. - */ -ssize_t pxml_parse(int *_stateContext, const void *_buf, size_t _size, - pxml_callback_f *cb, void *_key); - -#ifdef __cplusplus -} -#endif - -#endif /* _XER_SUPPORT_H_ */ diff --git a/e2sim/previous/CMakeLists.txt b/e2sim/previous/CMakeLists.txt deleted file mode 100644 index c4e867a..0000000 --- a/e2sim/previous/CMakeLists.txt +++ /dev/null @@ -1,61 +0,0 @@ -#/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -#******************************************************************************/ - -cmake_minimum_required(VERSION 3.5.1) -set(CMAKE_CXX_COMPILER "/usr/bin/g++") -set(CMAKE_CXX_STANDARD 14) - -add_definitions("-D ASN_DISABLE_OER_SUPPORT") - -project(e2sim) - -set (E2SIM_ROOT ./) - -include_directories("${E2SIM_ROOT}/src") -include_directories("${E2SIM_ROOT}/src/DEF") -include_directories("${E2SIM_ROOT}/src/SCTP/") -include_directories("${E2SIM_ROOT}/src/E2AP") -include_directories("${E2SIM_ROOT}/src/E2AP/E2SM") -include_directories("${E2SIM_ROOT}/ASN1c") - -find_library( SCTP_STD_LIB sctp ) #needed for sctp_sendmsg - -#---------------------------------------------- -file(GLOB E2SIM_SOURCES - "${E2SIM_ROOT}/e2sim.cpp" - "${E2SIM_ROOT}/src/DEF/*.cpp" - "${E2SIM_ROOT}/src/SCTP/*.cpp" - "${E2SIM_ROOT}/src/E2AP/*.c" - "${E2SIM_ROOT}/src/E2AP/*.cpp" - "${E2SIM_ROOT}/ASN1c/*.c" - ) -add_executable(e2sim ${E2SIM_SOURCES}) -target_link_libraries( e2sim ${SCTP_STD_LIB} ) - -#---------------------------------------------- -file(GLOB RICSIM_SOURCES - "${E2SIM_ROOT}/ricsim.cpp" - "${E2SIM_ROOT}/src/DEF/*.cpp" - "${E2SIM_ROOT}/src/SCTP/*.cpp" - "${E2SIM_ROOT}/src/E2AP/*.c" - "${E2SIM_ROOT}/src/E2AP/*.cpp" - "${E2SIM_ROOT}/ASN1c/*.c" - ) -add_executable(ricsim ${RICSIM_SOURCES}) -target_link_libraries( ricsim ${SCTP_STD_LIB} ) diff --git a/e2sim/previous/README.md b/e2sim/previous/README.md deleted file mode 100644 index ed260c3..0000000 --- a/e2sim/previous/README.md +++ /dev/null @@ -1,95 +0,0 @@ -#/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -#******************************************************************************/ - - -# INSTALLATION (tested on Ubuntu 16.04) - 1. Install dependencies - $ sudo apt-get update - $ sudo apt-get install -y - build-essential - git - cmake - libsctp-dev - lksctp-tools - autoconf - automake - libtool - bison - flex - libboost-all-dev - $ sudo apt-get clean - - 2. SET ENVIRONMENT VARIABLE - Add this line to `~/.bashrc` - export E2SIM_DIR= - - 3. Build the official e2sim - $ ./build_e2sim - -# USAGE - $ $E2SIM_DIR/build/e2sim [SERVER IP] [PORT] - - By default, SERVER IP = 127.0.0.1, PORT = 36421 - The RIC (i.e., E2 Manager) will need to setup X2 or E2 connection to e2sim on - this SERVER IP and PORT - -# DOCKER - * Build docker image: run this command from $E2SIM_DIR - $ sudo docker build -f docker/Dockerfile -t [DOCKER_IMAGE]:[TAG] . - - * Example how to run docker container - $ sudo docker run --rm --net host -it [DOCKER_IMAGE]:[TAG] sh -c "./build/e2sim [SERVER IP] [PORT]" - ex: sudo docker run --rm --net host -it e2sim:1.0.0 sh -c "./build/e2sim 127.0.0.1 36422" - -# SUPPORTED MESSAGE FLOWS -- RESOURCE STATUS REQUEST (RIC -> RAN) version 1.4.0 November 16, 2019 -- RESOURCE STATUS RESPONSE (RAN -> RIC) -- RESOURCE STATUS UPDATE (RAN -> RIC) - -- RIC INDICATION (RAN -> RIC) version 1.3.0 September 13, 2019 - SgNBAdditionRequest - -- RIC SUBSCRIPTION REQUEST (RIC -> RAN) version 1.2.0 May 24, 2019 -- RIC SUBSCRIPTION RESPONSE (RAN -> RIC) -- RIC SUBSCRIPTION FAILURE (RAN -> RIC) - -- ENDC X2 SETUP REQUEST (RIC -> RAN) -- ENDC X2 SETUP RESPONSE (RAN -> RIC) - -- X2 SETUP REQUEST (RIC -> RAN) -- X2 SETUP RESPONSE (RAN -> RIC) - -# GENERATING ASN1C CODES FOR E2AP, E2SM, X2AP - 1. Install asn1c compiler - ./tools/install_asn1c - - 2. Generate asn1c codes using e2ap, e2sm and x2ap specs - This requires the following files in tools/asn_defs - - e2ap-v031.asn - - e2sm-gNB-X2-release-1-v041.asn - - x2ap-no-desc-15-04.asn - -# Change logs: - 11/16/2019: - Switch back to using asn1c compiler - - add support to Resource Status Request, Response, and Update (over X2) - 05/24/2019: add support for RIC SUBSCRIPTION REQUEST, RESPONSE, and FAILURE - 05/21/2019: add support for ENDC X2 SETUP - no longer use asn1c - all X2AP and E2AP messages are encapsulated into E2AP-PDU - 03/12/2019: currently supports sending and receiving X2 SETUP messages diff --git a/e2sim/previous/build_e2sim b/e2sim/previous/build_e2sim deleted file mode 100755 index 80a53c6..0000000 --- a/e2sim/previous/build_e2sim +++ /dev/null @@ -1,86 +0,0 @@ -#!/bin/bash -#/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -#******************************************************************************/ - -set -e - -E2SIM_VERSION='1.4.0' -export E2SIM_DIR=$PWD -source $E2SIM_DIR/tools/build_helper.bash -DOCKER_IMAGE='e2sim' - -print_help() { - echo " - This program installs E2 Simulator - You should have ubuntu 14.xx, updated, and the Linux kernel >= 3.14 - The program is run by default with no option - - USAGE: - ./build_e2sim [OPTIONS] - - OPTIONS: - --clean - Erase all files to make a rebuild from start - --docker - Build docker image - -h - Print this help - " -} - -function main(){ - case "$1" in - --clean) - echo_info "Will clean all previously producted files under build/" - rm -rf $E2SIM_DIR/build - echo_success "Clean Done" - exit - ;; - - --docker) - echo "Will build docker image ${DOCKER_IMAGE}:${E2SIM_VERSION}" - sudo docker build -f docker/Dockerfile -t $DOCKER_IMAGE:$E2SIM_VERSION . - exit - ;; - - "") - ;; - - -h) - print_help - exit 1;; - - *) - echo_error "Unknown option $1" - exit - esac - - BUILD_DIR=$E2SIM_DIR/build - mkdir -p $BUILD_DIR - - echo_info "Will build e2sim" - cd $BUILD_DIR - rm -rf CMakeCache.txt - cmake .. - make -j`nproc` - - echo_success "e2sim compiled" -} - -main "$@" diff --git a/e2sim/previous/docker/Dockerfile b/e2sim/previous/docker/Dockerfile deleted file mode 100644 index 1233a12..0000000 --- a/e2sim/previous/docker/Dockerfile +++ /dev/null @@ -1,54 +0,0 @@ -#/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -#******************************************************************************/ - -FROM ubuntu:16.04 - -# location in the container -ENV E2SIM_DIR /home/e2sim - -# Install necessary packages -RUN apt-get update \ - && apt-get install -y \ - build-essential \ - git \ - cmake \ - libsctp-dev \ - lksctp-tools \ - autoconf \ - automake \ - libtool \ - bison \ - flex \ - libboost-all-dev \ - iputils-ping \ - net-tools \ - nano \ - vim \ - tcpdump \ - net-tools \ - nmap \ - && apt-get clean - -# Copy E2Sim sources into the container -COPY ./ ${E2SIM_DIR} -WORKDIR ${E2SIM_DIR} - -#------------- Build E2SIM ----------------------- -RUN ./build_e2sim --clean -RUN ./build_e2sim diff --git a/e2sim/previous/docker/container-tag.yaml b/e2sim/previous/docker/container-tag.yaml deleted file mode 100644 index 5df0816..0000000 --- a/e2sim/previous/docker/container-tag.yaml +++ /dev/null @@ -1,2 +0,0 @@ ---- -tag: 0.1.1 diff --git a/e2sim/previous/docker/old/DockerFile_old b/e2sim/previous/docker/old/DockerFile_old deleted file mode 100644 index 17aa6bd..0000000 --- a/e2sim/previous/docker/old/DockerFile_old +++ /dev/null @@ -1,53 +0,0 @@ -# -# -# Copyright 2019 AT&T Intellectual Property -# Copyright 2019 Nokia -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -# Docker file to build container for E2 Simulator, for which it can be called -# to run both the E2 Agent and E2 Termination. -# Note: run docker comamnds from root directory of e2sim, e.g., $E2SIM_DIR -# -# build: $ sudo docker build -f docker/Dockerfile -t e2sim . - -FROM ubuntu:16.04 - - -# location in the container -ENV E2SIM_DIR /home/e2sim - -# Install necessary packages -RUN apt-get update \ - && apt-get install -y \ - build-essential \ - git \ - cmake \ - libsctp-dev \ - lksctp-tools \ - autoconf \ - automake \ - libtool \ - bison \ - flex \ - && apt-get clean - -# Install E2Sim -COPY ./ ${E2SIM_DIR} -WORKDIR ${E2SIM_DIR} -RUN ./docker/install_asn1c -RUN ./build_e2sim --clean -RUN ./build_e2sim - -CMD ./build/e2sim diff --git a/e2sim/previous/docker/old/Dockerfile b/e2sim/previous/docker/old/Dockerfile deleted file mode 100644 index 6cbfbf5..0000000 --- a/e2sim/previous/docker/old/Dockerfile +++ /dev/null @@ -1,42 +0,0 @@ -# -# -# Copyright 2019 AT&T Intellectual Property -# Copyright 2019 Nokia -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -FROM e2sim_base - -# ------------ COPY E2SIM codes ------------------ -COPY ./ ${E2SIM_DIR} -WORKDIR ${E2SIM_DIR} - -# ensure an empty rt is there if none is mounted at spinup -COPY docker/empty.rt /usr/local/route/local.rt - -#------------- Build E2SIM ----------------------- -RUN ./build_e2sim --clean -RUN ./build_e2sim - -#-------------- Configure rmr ------------------------- -ENV RMR_SEED_RT=/usr/local/route/local.rt -#export RMR_SEED_RT=$HOME/global_rmr_files/global_rmr_routes.rt - -ENV RMR_RTG_SVC=localhost:9990 -ENV E2TERM_RMR_RCV_PORT=48886 -ENV DEMO_SENDER_PTO=1 -ENV DEMO_MAX_PAYLOAD_BYTES=240 - -# --------------- Run E2Termination --------------------- -CMD ./build/e2sim diff --git a/e2sim/previous/docker/old/Dockerfile_base b/e2sim/previous/docker/old/Dockerfile_base deleted file mode 100644 index 7ac932b..0000000 --- a/e2sim/previous/docker/old/Dockerfile_base +++ /dev/null @@ -1,60 +0,0 @@ -# -# -# Copyright 2019 AT&T Intellectual Property -# Copyright 2019 Nokia -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -# Docker file to build container for E2 Simulator, for which it can be called -# to run both the E2 Agent and E2 Termination. -# Note: run docker comamnds from root directory of e2sim, e.g., $E2SIM_DIR -# -# build with 2 steps -# $ sudo docker build -f docker/Dockerfile_base -t e2sim_base . -# $ sudo docker build -f docker/Dockerfile -t e2sim . -# -# run e2 termination -# $ sudo docker run --rm --net host -it e2sim sh -c "./build/e2sim 127.0.0.2" - -FROM ubuntu:16.04 - - -# location in the container -ENV E2SIM_DIR /home/e2sim - -# Install necessary packages -RUN apt-get update \ - && apt-get install -y \ - build-essential \ - git \ - cmake \ - libsctp-dev \ - lksctp-tools \ - autoconf \ - automake \ - libtool \ - bison \ - flex - -# For rmr -RUN apt-get install -y bash vim ksh iputils-ping -RUN apt-get clean - -# Copy E2Sim to the container -COPY ./ ${E2SIM_DIR} -WORKDIR ${E2SIM_DIR} -RUN ./docker/install_asn1c - -#-------------INSTALL rmr ------------------------ -RUN ./docker/install_rmr diff --git a/e2sim/previous/docker/old/configure_rmr b/e2sim/previous/docker/old/configure_rmr deleted file mode 100755 index ff0a685..0000000 --- a/e2sim/previous/docker/old/configure_rmr +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/bash -# -# -# Copyright 2019 AT&T Intellectual Property -# Copyright 2019 Nokia -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - - -export RMR_SEED_RT=/usr/local/route/local.rt -#export RMR_SEED_RT=$HOME/global_rmr_files/global_rmr_routes.rt -export RMR_RTG_SVC=localhost:9990 -#export DUMMY_SENDER_RMR_RCV_PORT=48086 -export E2TERM_RMR_RCV_PORT=48886 -export DEMO_SENDER_PTO=1 -export DEMO_MAX_PAYLOAD_BYTES=240 diff --git a/e2sim/previous/docker/old/empty.rt b/e2sim/previous/docker/old/empty.rt deleted file mode 100644 index 0063bb9..0000000 --- a/e2sim/previous/docker/old/empty.rt +++ /dev/null @@ -1,5 +0,0 @@ -# an empty route table to put into an image so there is some file there -# if on image start nothing is mounted onto /usr/local/route - -newrt|start -newrt|end diff --git a/e2sim/previous/docker/old/install_asn1c b/e2sim/previous/docker/old/install_asn1c deleted file mode 100755 index daf4bfe..0000000 --- a/e2sim/previous/docker/old/install_asn1c +++ /dev/null @@ -1,29 +0,0 @@ -#!/bin/bash -# -# -# Copyright 2019 AT&T Intellectual Property -# Copyright 2019 Nokia -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -echo "Will install asn1c" -cd tools -rm -rf asn1c -git clone https://gitlab.eurecom.fr/oai/asn1c.git -cd asn1c -git checkout 0a7524184f16e7093990a31d8d4db487a16e5782 -autoreconf -iv -./configure -make -make install diff --git a/e2sim/previous/docker/old/install_rmr b/e2sim/previous/docker/old/install_rmr deleted file mode 100755 index 522df48..0000000 --- a/e2sim/previous/docker/old/install_rmr +++ /dev/null @@ -1,32 +0,0 @@ -#!/bin/bash -# -# -# Copyright 2019 AT&T Intellectual Property -# Copyright 2019 Nokia -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -# pull rmr to $E2SIM_DIR/ and checkout the 'stable' demo commit, -# then build and install in /usr/local - -echo "Will install rmr" -rm -rf rmr -git clone https://gerrit.oran-osc.org/r/ric-plt/lib/rmr -date; ls -al /usr/local/lib -cd rmr -git checkout 6735f136906ce2 -mkdir .build -cd .build -cmake .. -make install diff --git a/e2sim/previous/docker/old/local.rt b/e2sim/previous/docker/old/local.rt deleted file mode 100644 index 84ea983..0000000 --- a/e2sim/previous/docker/old/local.rt +++ /dev/null @@ -1,9 +0,0 @@ -newrt|start -#RMR_RCV_PORT of the receiver is 6560 -rte|0|localhost:6560 - -# this is needed so that receiver acks can be sent via rmr_rts_msg() calls -# here e2 agent is the name of the machine -# is the RMR_RCV_PORT of the sender -rte|89|e2agent:48086 -newrt|end diff --git a/e2sim/previous/e2apv1sim/ASN1c/ANY.c b/e2sim/previous/e2apv1sim/ASN1c/ANY.c deleted file mode 100644 index 0b81557..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/ANY.c +++ /dev/null @@ -1,450 +0,0 @@ -/* - * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include - -asn_OCTET_STRING_specifics_t asn_SPC_ANY_specs = { - sizeof(ANY_t), - offsetof(ANY_t, _asn_ctx), - ASN_OSUBV_ANY -}; -asn_TYPE_operation_t asn_OP_ANY = { - OCTET_STRING_free, - OCTET_STRING_print, - OCTET_STRING_compare, - OCTET_STRING_decode_ber, - OCTET_STRING_encode_der, - OCTET_STRING_decode_xer_hex, - ANY_encode_xer, -#ifdef ASN_DISABLE_OER_SUPPORT - 0, - 0, -#else - 0, - 0, -#endif /* ASN_DISABLE_OER_SUPPORT */ -#ifdef ASN_DISABLE_PER_SUPPORT - 0, 0, 0, 0, -#else - ANY_decode_uper, - ANY_encode_uper, - ANY_decode_aper, - ANY_encode_aper, -#endif /* ASN_DISABLE_PER_SUPPORT */ - 0, /* Random fill is not defined for ANY type */ - 0 /* Use generic outmost tag fetcher */ -}; -asn_TYPE_descriptor_t asn_DEF_ANY = { - "ANY", - "ANY", - &asn_OP_ANY, - 0, 0, 0, 0, - { 0, 0, asn_generic_no_constraint }, /* No constraints */ - 0, 0, /* No members */ - &asn_SPC_ANY_specs, -}; - -#undef RETURN -#define RETURN(_code) \ - do { \ - asn_dec_rval_t tmprval; \ - tmprval.code = _code; \ - tmprval.consumed = consumed_myself; \ - return tmprval; \ - } while(0) - -asn_enc_rval_t -ANY_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, - enum xer_encoder_flags_e flags, asn_app_consume_bytes_f *cb, - void *app_key) { - if(flags & XER_F_CANONICAL) { - /* - * Canonical XER-encoding of ANY type is not supported. - */ - ASN__ENCODE_FAILED; - } - - /* Dump as binary */ - return OCTET_STRING_encode_xer(td, sptr, ilevel, flags, cb, app_key); -} - -struct _callback_arg { - uint8_t *buffer; - size_t offset; - size_t size; -}; - -static int ANY__consume_bytes(const void *buffer, size_t size, void *key); - -int -ANY_fromType(ANY_t *st, asn_TYPE_descriptor_t *td, void *sptr) { - struct _callback_arg arg; - asn_enc_rval_t erval = {0,0,0}; - - if(!st || !td) { - errno = EINVAL; - return -1; - } - - if(!sptr) { - if(st->buf) FREEMEM(st->buf); - st->size = 0; - return 0; - } - - arg.offset = arg.size = 0; - arg.buffer = 0; - - erval = der_encode(td, sptr, ANY__consume_bytes, &arg); - if(erval.encoded == -1) { - if(arg.buffer) FREEMEM(arg.buffer); - return -1; - } - assert((size_t)erval.encoded == arg.offset); - - if(st->buf) FREEMEM(st->buf); - st->buf = arg.buffer; - st->size = arg.offset; - - return 0; -} - -int -ANY_fromType_aper(ANY_t *st, asn_TYPE_descriptor_t *td, void *sptr) { - uint8_t *buffer = NULL; - ssize_t erval; - - if(!st || !td) { - errno = EINVAL; - return -1; - } - - if(!sptr) { - if(st->buf) FREEMEM(st->buf); - st->size = 0; - return 0; - } - - erval = aper_encode_to_new_buffer(td, td->encoding_constraints.per_constraints, sptr, (void**)&buffer); - - if(erval == -1) { - if(buffer) FREEMEM(buffer); - return -1; - } - assert((size_t)erval > 0); - - if(st->buf) FREEMEM(st->buf); - st->buf = buffer; - st->size = erval; - - return 0; -} - -ANY_t * -ANY_new_fromType(asn_TYPE_descriptor_t *td, void *sptr) { - ANY_t tmp; - ANY_t *st; - - if(!td || !sptr) { - errno = EINVAL; - return 0; - } - - memset(&tmp, 0, sizeof(tmp)); - - if(ANY_fromType(&tmp, td, sptr)) return 0; - - st = (ANY_t *)CALLOC(1, sizeof(ANY_t)); - if(st) { - *st = tmp; - return st; - } else { - FREEMEM(tmp.buf); - return 0; - } -} - -ANY_t * -ANY_new_fromType_aper(asn_TYPE_descriptor_t *td, void *sptr) { - ANY_t tmp; - ANY_t *st; - - if(!td || !sptr) { - errno = EINVAL; - return 0; - } - - memset(&tmp, 0, sizeof(tmp)); - - if(ANY_fromType_aper(&tmp, td, sptr)) return 0; - - st = (ANY_t *)CALLOC(1, sizeof(ANY_t)); - if(st) { - *st = tmp; - return st; - } else { - FREEMEM(tmp.buf); - return 0; - } -} - -int -ANY_to_type(ANY_t *st, asn_TYPE_descriptor_t *td, void **struct_ptr) { - asn_dec_rval_t rval; - void *newst = 0; - - if(!st || !td || !struct_ptr) { - errno = EINVAL; - return -1; - } - - if(st->buf == 0) { - /* Nothing to convert, make it empty. */ - *struct_ptr = (void *)0; - return 0; - } - - rval = ber_decode(0, td, (void **)&newst, st->buf, st->size); - if(rval.code == RC_OK) { - *struct_ptr = newst; - return 0; - } else { - /* Remove possibly partially decoded data. */ - ASN_STRUCT_FREE(*td, newst); - return -1; - } -} - -int -ANY_to_type_aper(ANY_t *st, asn_TYPE_descriptor_t *td, void **struct_ptr) { - asn_dec_rval_t rval; - void *newst = 0; - - if(!st || !td || !struct_ptr) { - errno = EINVAL; - return -1; - } - - if(st->buf == 0) { - /* Nothing to convert, make it empty. */ - *struct_ptr = (void *)0; - return 0; - } - - rval = aper_decode(0, td, (void **)&newst, st->buf, st->size, 0, 0); - if(rval.code == RC_OK) { - *struct_ptr = newst; - return 0; - } else { - /* Remove possibly partially decoded data. */ - ASN_STRUCT_FREE(*td, newst); - return -1; - } -} - -static int ANY__consume_bytes(const void *buffer, size_t size, void *key) { - struct _callback_arg *arg = (struct _callback_arg *)key; - - if((arg->offset + size) >= arg->size) { - size_t nsize = (arg->size ? arg->size << 2 : 16) + size; - void *p = REALLOC(arg->buffer, nsize); - if(!p) return -1; - arg->buffer = (uint8_t *)p; - arg->size = nsize; - } - - memcpy(arg->buffer + arg->offset, buffer, size); - arg->offset += size; - assert(arg->offset < arg->size); - - return 0; -} - -#ifndef ASN_DISABLE_PER_SUPPORT - -asn_dec_rval_t -ANY_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, - asn_per_data_t *pd) { - const asn_OCTET_STRING_specifics_t *specs = - td->specifics ? (const asn_OCTET_STRING_specifics_t *)td->specifics - : &asn_SPC_ANY_specs; - size_t consumed_myself = 0; - int repeat; - ANY_t *st = (ANY_t *)*sptr; - - (void)opt_codec_ctx; - (void)constraints; - - /* - * Allocate the structure. - */ - if(!st) { - st = (ANY_t *)(*sptr = CALLOC(1, specs->struct_size)); - if(!st) RETURN(RC_FAIL); - } - - ASN_DEBUG("UPER Decoding ANY type"); - - st->size = 0; - do { - ssize_t raw_len; - ssize_t len_bytes; - ssize_t len_bits; - void *p; - int ret; - - /* Get the PER length */ - raw_len = uper_get_length(pd, -1, 0, &repeat); - if(raw_len < 0) RETURN(RC_WMORE); - if(raw_len == 0 && st->buf) break; - - ASN_DEBUG("Got PER length len %" ASN_PRI_SIZE ", %s (%s)", raw_len, - repeat ? "repeat" : "once", td->name); - len_bytes = raw_len; - len_bits = len_bytes * 8; - - p = REALLOC(st->buf, st->size + len_bytes + 1); - if(!p) RETURN(RC_FAIL); - st->buf = (uint8_t *)p; - - ret = per_get_many_bits(pd, &st->buf[st->size], 0, len_bits); - if(ret < 0) RETURN(RC_WMORE); - consumed_myself += len_bits; - st->size += len_bytes; - } while(repeat); - st->buf[st->size] = 0; /* nul-terminate */ - - RETURN(RC_OK); -} - -asn_enc_rval_t -ANY_encode_uper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, const void *sptr, - asn_per_outp_t *po) { - const ANY_t *st = (const ANY_t *)sptr; - asn_enc_rval_t er = {0, 0, 0}; - const uint8_t *buf; - size_t size; - int ret; - - (void)constraints; - - if(!st || (!st->buf && st->size)) ASN__ENCODE_FAILED; - - buf = st->buf; - size = st->size; - do { - int need_eom = 0; - ssize_t may_save = uper_put_length(po, size, &need_eom); - if(may_save < 0) ASN__ENCODE_FAILED; - - ret = per_put_many_bits(po, buf, may_save * 8); - if(ret) ASN__ENCODE_FAILED; - - buf += may_save; - size -= may_save; - assert(!(may_save & 0x07) || !size); - if(need_eom && uper_put_length(po, 0, 0)) - ASN__ENCODE_FAILED; /* End of Message length */ - } while(size); - - ASN__ENCODED_OK(er); -} - -asn_dec_rval_t -ANY_decode_aper(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, - asn_per_data_t *pd) { - const asn_OCTET_STRING_specifics_t *specs = - td->specifics ? (const asn_OCTET_STRING_specifics_t *)td->specifics - : &asn_SPC_ANY_specs; - size_t consumed_myself = 0; - int repeat; - ANY_t *st = (ANY_t *)*sptr; - - (void)opt_codec_ctx; - (void)constraints; - - /* - * Allocate the structure. - */ - if(!st) { - st = (ANY_t *)(*sptr = CALLOC(1, specs->struct_size)); - if(!st) RETURN(RC_FAIL); - } - - ASN_DEBUG("APER Decoding ANY type"); - - st->size = 0; - do { - ssize_t raw_len; - ssize_t len_bytes; - ssize_t len_bits; - void *p; - int ret; - - /* Get the PER length */ - raw_len = aper_get_length(pd, -1, 0, &repeat); - if(raw_len < 0) RETURN(RC_WMORE); - if(raw_len == 0 && st->buf) break; - - ASN_DEBUG("Got PER length len %" ASN_PRI_SIZE ", %s (%s)", raw_len, - repeat ? "repeat" : "once", td->name); - len_bytes = raw_len; - len_bits = len_bytes * 8; - - p = REALLOC(st->buf, st->size + len_bytes + 1); - if(!p) RETURN(RC_FAIL); - st->buf = (uint8_t *)p; - - ret = per_get_many_bits(pd, &st->buf[st->size], 0, len_bits); - if(ret < 0) RETURN(RC_WMORE); - consumed_myself += len_bits; - st->size += len_bytes; - } while(repeat); - st->buf[st->size] = 0; /* nul-terminate */ - - RETURN(RC_OK); -} - -asn_enc_rval_t -ANY_encode_aper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, const void *sptr, - asn_per_outp_t *po) { - const ANY_t *st = (const ANY_t *)sptr; - asn_enc_rval_t er = {0, 0, 0}; - const uint8_t *buf; - size_t size; - int ret; - - (void)constraints; - - if(!st || (!st->buf && st->size)) ASN__ENCODE_FAILED; - - buf = st->buf; - size = st->size; - do { - int need_eom = 0; - ssize_t may_save = uper_put_length(po, size, &need_eom); - if(may_save < 0) ASN__ENCODE_FAILED; - - ret = per_put_many_bits(po, buf, may_save * 8); - if(ret) ASN__ENCODE_FAILED; - - buf += may_save; - size -= may_save; - assert(!(may_save & 0x07) || !size); - if(need_eom && uper_put_length(po, 0, 0)) - ASN__ENCODE_FAILED; /* End of Message length */ - } while(size); - - ASN__ENCODED_OK(er); -} -#endif /* ASN_DISABLE_PER_SUPPORT */ - diff --git a/e2sim/previous/e2apv1sim/ASN1c/ANY.h b/e2sim/previous/e2apv1sim/ASN1c/ANY.h deleted file mode 100644 index b30381f..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/ANY.h +++ /dev/null @@ -1,65 +0,0 @@ -/*- - * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef ASN_TYPE_ANY_H -#define ASN_TYPE_ANY_H - -#include /* Implemented via OCTET STRING type */ - -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct ANY { - uint8_t *buf; /* BER-encoded ANY contents */ - int size; /* Size of the above buffer */ - - asn_struct_ctx_t _asn_ctx; /* Parsing across buffer boundaries */ -} ANY_t; - -extern asn_TYPE_descriptor_t asn_DEF_ANY; -extern asn_TYPE_operation_t asn_OP_ANY; -extern asn_OCTET_STRING_specifics_t asn_SPC_ANY_specs; - -asn_struct_free_f ANY_free; -asn_struct_print_f ANY_print; -ber_type_decoder_f ANY_decode_ber; -der_type_encoder_f ANY_encode_der; -xer_type_encoder_f ANY_encode_xer; -per_type_decoder_f ANY_decode_uper; -per_type_encoder_f ANY_encode_uper; -per_type_decoder_f ANY_decode_aper; -per_type_encoder_f ANY_encode_aper; - -#define ANY_free OCTET_STRING_free -#define ANY_print OCTET_STRING_print -#define ANY_compare OCTET_STRING_compare -#define ANY_constraint asn_generic_no_constraint -#define ANY_decode_ber OCTET_STRING_decode_ber -#define ANY_encode_der OCTET_STRING_encode_der -#define ANY_decode_xer OCTET_STRING_decode_xer_hex - -/****************************** - * Handy conversion routines. * - ******************************/ - -/* Convert another ASN.1 type into the ANY. This implies DER encoding. */ -int ANY_fromType(ANY_t *, asn_TYPE_descriptor_t *td, void *struct_ptr); -int ANY_fromType_aper(ANY_t *st, asn_TYPE_descriptor_t *td, void *sptr); -ANY_t *ANY_new_fromType(asn_TYPE_descriptor_t *td, void *struct_ptr); -ANY_t *ANY_new_fromType_aper(asn_TYPE_descriptor_t *td, void *sptr); - -/* Convert the contents of the ANY type into the specified type. */ -int ANY_to_type(ANY_t *, asn_TYPE_descriptor_t *td, void **struct_ptr); -int ANY_to_type_aper(ANY_t *, asn_TYPE_descriptor_t *td, void **struct_ptr); - -#define ANY_fromBuf(s, buf, size) OCTET_STRING_fromBuf((s), (buf), (size)) -#define ANY_new_fromBuf(buf, size) OCTET_STRING_new_fromBuf( \ - &asn_DEF_ANY, (buf), (size)) - -#ifdef __cplusplus -} -#endif - -#endif /* ASN_TYPE_ANY_H */ diff --git a/e2sim/previous/e2apv1sim/ASN1c/BIT_STRING.c b/e2sim/previous/e2apv1sim/ASN1c/BIT_STRING.c deleted file mode 100644 index e8d7354..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/BIT_STRING.c +++ /dev/null @@ -1,656 +0,0 @@ -/*- - * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include - -/* - * BIT STRING basic type description. - */ -static const ber_tlv_tag_t asn_DEF_BIT_STRING_tags[] = { - (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) -}; -asn_OCTET_STRING_specifics_t asn_SPC_BIT_STRING_specs = { - sizeof(BIT_STRING_t), - offsetof(BIT_STRING_t, _asn_ctx), - ASN_OSUBV_BIT -}; -asn_TYPE_operation_t asn_OP_BIT_STRING = { - OCTET_STRING_free, /* Implemented in terms of OCTET STRING */ - BIT_STRING_print, - BIT_STRING_compare, - OCTET_STRING_decode_ber, /* Implemented in terms of OCTET STRING */ - OCTET_STRING_encode_der, /* Implemented in terms of OCTET STRING */ - OCTET_STRING_decode_xer_binary, - BIT_STRING_encode_xer, -#ifdef ASN_DISABLE_OER_SUPPORT - 0, - 0, -#else - BIT_STRING_decode_oer, - BIT_STRING_encode_oer, -#endif /* ASN_DISABLE_OER_SUPPORT */ -#ifdef ASN_DISABLE_PER_SUPPORT - 0, - 0, - 0, - 0, -#else - BIT_STRING_decode_uper, /* Unaligned PER decoder */ - BIT_STRING_encode_uper, /* Unaligned PER encoder */ - OCTET_STRING_decode_aper, /* Aligned PER decoder */ - OCTET_STRING_encode_aper, /* Aligned PER encoder */ -#endif /* ASN_DISABLE_PER_SUPPORT */ - BIT_STRING_random_fill, - 0 /* Use generic outmost tag fetcher */ -}; -asn_TYPE_descriptor_t asn_DEF_BIT_STRING = { - "BIT STRING", - "BIT_STRING", - &asn_OP_BIT_STRING, - asn_DEF_BIT_STRING_tags, - sizeof(asn_DEF_BIT_STRING_tags) - / sizeof(asn_DEF_BIT_STRING_tags[0]), - asn_DEF_BIT_STRING_tags, /* Same as above */ - sizeof(asn_DEF_BIT_STRING_tags) - / sizeof(asn_DEF_BIT_STRING_tags[0]), - { 0, 0, BIT_STRING_constraint }, - 0, 0, /* No members */ - &asn_SPC_BIT_STRING_specs -}; - -/* - * BIT STRING generic constraint. - */ -int -BIT_STRING_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - - if(st && st->buf) { - if((st->size == 0 && st->bits_unused) - || st->bits_unused < 0 || st->bits_unused > 7) { - ASN__CTFAIL(app_key, td, sptr, - "%s: invalid padding byte (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - return 0; -} - -static const char *_bit_pattern[16] = { - "0000", "0001", "0010", "0011", "0100", "0101", "0110", "0111", - "1000", "1001", "1010", "1011", "1100", "1101", "1110", "1111" -}; - -asn_enc_rval_t -BIT_STRING_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, - int ilevel, enum xer_encoder_flags_e flags, - asn_app_consume_bytes_f *cb, void *app_key) { - asn_enc_rval_t er = {0, 0, 0}; - char scratch[128]; - char *p = scratch; - char *scend = scratch + (sizeof(scratch) - 10); - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - int xcan = (flags & XER_F_CANONICAL); - uint8_t *buf; - uint8_t *end; - - if(!st || !st->buf) - ASN__ENCODE_FAILED; - - er.encoded = 0; - - buf = st->buf; - end = buf + st->size - 1; /* Last byte is special */ - - /* - * Binary dump - */ - for(; buf < end; buf++) { - int v = *buf; - int nline = xcan?0:(((buf - st->buf) % 8) == 0); - if(p >= scend || nline) { - ASN__CALLBACK(scratch, p - scratch); - p = scratch; - if(nline) ASN__TEXT_INDENT(1, ilevel); - } - memcpy(p + 0, _bit_pattern[v >> 4], 4); - memcpy(p + 4, _bit_pattern[v & 0x0f], 4); - p += 8; - } - - if(!xcan && ((buf - st->buf) % 8) == 0) - ASN__TEXT_INDENT(1, ilevel); - ASN__CALLBACK(scratch, p - scratch); - p = scratch; - - if(buf == end) { - int v = *buf; - int ubits = st->bits_unused; - int i; - for(i = 7; i >= ubits; i--) - *p++ = (v & (1 << i)) ? 0x31 : 0x30; - ASN__CALLBACK(scratch, p - scratch); - } - - if(!xcan) ASN__TEXT_INDENT(1, ilevel - 1); - - ASN__ENCODED_OK(er); -cb_failed: - ASN__ENCODE_FAILED; -} - - -/* - * BIT STRING specific contents printer. - */ -int -BIT_STRING_print(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, - asn_app_consume_bytes_f *cb, void *app_key) { - const char * const h2c = "0123456789ABCDEF"; - char scratch[64]; - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - uint8_t *buf; - uint8_t *end; - char *p = scratch; - - (void)td; /* Unused argument */ - - if(!st || !st->buf) - return (cb("", 8, app_key) < 0) ? -1 : 0; - - ilevel++; - buf = st->buf; - end = buf + st->size; - - /* - * Hexadecimal dump. - */ - for(; buf < end; buf++) { - if((buf - st->buf) % 16 == 0 && (st->size > 16) - && buf != st->buf) { - _i_INDENT(1); - /* Dump the string */ - if(cb(scratch, p - scratch, app_key) < 0) return -1; - p = scratch; - } - *p++ = h2c[*buf >> 4]; - *p++ = h2c[*buf & 0x0F]; - *p++ = 0x20; - } - - if(p > scratch) { - p--; /* Eat the tailing space */ - - if((st->size > 16)) { - _i_INDENT(1); - } - - /* Dump the incomplete 16-bytes row */ - if(cb(scratch, p - scratch, app_key) < 0) - return -1; - } - - if(st->bits_unused) { - int ret = snprintf(scratch, sizeof(scratch), " (%d bit%s unused)", - st->bits_unused, st->bits_unused == 1 ? "" : "s"); - assert(ret > 0 && ret < (ssize_t)sizeof(scratch)); - if(ret > 0 && ret < (ssize_t)sizeof(scratch) - && cb(scratch, ret, app_key) < 0) - return -1; - } - - return 0; -} - -/* - * Non-destructively remove the trailing 0-bits from the given bit string. - */ -static const BIT_STRING_t * -BIT_STRING__compactify(const BIT_STRING_t *st, BIT_STRING_t *tmp) { - const uint8_t *b; - union { - const uint8_t *c_buf; - uint8_t *nc_buf; - } unconst; - - if(st->size == 0) { - assert(st->bits_unused == 0); - return st; - } else { - for(b = &st->buf[st->size - 1]; b > st->buf && *b == 0; b--) { - ; - } - /* b points to the last byte which may contain data */ - if(*b) { - int unused = 7; - uint8_t v = *b; - v &= -(int8_t)v; - if(v & 0x0F) unused -= 4; - if(v & 0x33) unused -= 2; - if(v & 0x55) unused -= 1; - tmp->size = b-st->buf + 1; - tmp->bits_unused = unused; - } else { - tmp->size = b-st->buf; - tmp->bits_unused = 0; - } - - assert(b >= st->buf); - } - - unconst.c_buf = st->buf; - tmp->buf = unconst.nc_buf; - return tmp; -} - -/* - * Lexicographically compare the common prefix of both strings, - * and if it is the same return -1 for the smallest string. - */ -int -BIT_STRING_compare(const asn_TYPE_descriptor_t *td, const void *aptr, - const void *bptr) { - /* - * Remove information about trailing bits, since - * X.680 (08/2015) #22.7 "ensure that different semantics are not" - * "associated with [values that differ only in] the trailing 0 bits." - */ - BIT_STRING_t compact_a, compact_b; - const BIT_STRING_t *a = BIT_STRING__compactify(aptr, &compact_a); - const BIT_STRING_t *b = BIT_STRING__compactify(bptr, &compact_b); - const asn_OCTET_STRING_specifics_t *specs = td->specifics; - - assert(specs && specs->subvariant == ASN_OSUBV_BIT); - - if(a && b) { - size_t common_prefix_size = a->size <= b->size ? a->size : b->size; - int ret = memcmp(a->buf, b->buf, common_prefix_size); - if(ret == 0) { - /* Figure out which string with equal prefixes is longer. */ - if(a->size < b->size) { - return -1; - } else if(a->size > b->size) { - return 1; - } else { - /* Figure out how many unused bits */ - if(a->bits_unused > b->bits_unused) { - return -1; - } else if(a->bits_unused < b->bits_unused) { - return 1; - } else { - return 0; - } - } - } else { - return ret; - } - } else if(!a && !b) { - return 0; - } else if(!a) { - return -1; - } else { - return 1; - } -} - -#ifndef ASN_DISABLE_PER_SUPPORT - -#undef RETURN -#define RETURN(_code) \ - do { \ - asn_dec_rval_t tmprval; \ - tmprval.code = _code; \ - tmprval.consumed = consumed_myself; \ - return tmprval; \ - } while(0) - -static asn_per_constraint_t asn_DEF_BIT_STRING_constraint_size = { - APC_SEMI_CONSTRAINED, -1, -1, 0, 0}; - -asn_dec_rval_t -BIT_STRING_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, - asn_per_data_t *pd) { - const asn_OCTET_STRING_specifics_t *specs = td->specifics - ? (const asn_OCTET_STRING_specifics_t *)td->specifics - : &asn_SPC_BIT_STRING_specs; - const asn_per_constraints_t *pc = - constraints ? constraints : td->encoding_constraints.per_constraints; - const asn_per_constraint_t *csiz; - asn_dec_rval_t rval = { RC_OK, 0 }; - BIT_STRING_t *st = (BIT_STRING_t *)*sptr; - ssize_t consumed_myself = 0; - int repeat; - - (void)opt_codec_ctx; - - if(pc) { - csiz = &pc->size; - } else { - csiz = &asn_DEF_BIT_STRING_constraint_size; - } - - if(specs->subvariant != ASN_OSUBV_BIT) { - ASN_DEBUG("Subvariant %d is not BIT OSUBV_BIT", specs->subvariant); - RETURN(RC_FAIL); - } - - /* - * Allocate the string. - */ - if(!st) { - st = (BIT_STRING_t *)(*sptr = CALLOC(1, specs->struct_size)); - if(!st) RETURN(RC_FAIL); - } - - ASN_DEBUG("PER Decoding %s size %ld .. %ld bits %d", - csiz->flags & APC_EXTENSIBLE ? "extensible" : "non-extensible", - csiz->lower_bound, csiz->upper_bound, csiz->effective_bits); - - if(csiz->flags & APC_EXTENSIBLE) { - int inext = per_get_few_bits(pd, 1); - if(inext < 0) RETURN(RC_WMORE); - if(inext) { - csiz = &asn_DEF_BIT_STRING_constraint_size; - } - } - - if(csiz->effective_bits >= 0) { - FREEMEM(st->buf); - st->size = (csiz->upper_bound + 7) >> 3; - st->buf = (uint8_t *)MALLOC(st->size + 1); - if(!st->buf) { st->size = 0; RETURN(RC_FAIL); } - } - - /* X.691, #16.5: zero-length encoding */ - /* X.691, #16.6: short fixed length encoding (up to 2 octets) */ - /* X.691, #16.7: long fixed length encoding (up to 64K octets) */ - if(csiz->effective_bits == 0) { - int ret; - ASN_DEBUG("Encoding BIT STRING size %ld", csiz->upper_bound); - ret = per_get_many_bits(pd, st->buf, 0, csiz->upper_bound); - if(ret < 0) RETURN(RC_WMORE); - consumed_myself += csiz->upper_bound; - st->buf[st->size] = 0; - st->bits_unused = (8 - (csiz->upper_bound & 0x7)) & 0x7; - RETURN(RC_OK); - } - - st->size = 0; - do { - ssize_t raw_len; - ssize_t len_bytes; - ssize_t len_bits; - void *p; - int ret; - - /* Get the PER length */ - raw_len = uper_get_length(pd, csiz->effective_bits, csiz->lower_bound, - &repeat); - if(raw_len < 0) RETURN(RC_WMORE); - if(raw_len == 0 && st->buf) break; - - ASN_DEBUG("Got PER length eb %ld, len %ld, %s (%s)", - (long)csiz->effective_bits, (long)raw_len, - repeat ? "repeat" : "once", td->name); - len_bits = raw_len; - len_bytes = (len_bits + 7) >> 3; - if(len_bits & 0x7) st->bits_unused = 8 - (len_bits & 0x7); - /* len_bits be multiple of 16K if repeat is set */ - p = REALLOC(st->buf, st->size + len_bytes + 1); - if(!p) RETURN(RC_FAIL); - st->buf = (uint8_t *)p; - - ret = per_get_many_bits(pd, &st->buf[st->size], 0, len_bits); - if(ret < 0) RETURN(RC_WMORE); - st->size += len_bytes; - } while(repeat); - st->buf[st->size] = 0; /* nul-terminate */ - - return rval; -} - -asn_enc_rval_t -BIT_STRING_encode_uper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_per_outp_t *po) { - const asn_OCTET_STRING_specifics_t *specs = - td->specifics ? (const asn_OCTET_STRING_specifics_t *)td->specifics - : &asn_SPC_BIT_STRING_specs; - const asn_per_constraints_t *pc = - constraints ? constraints : td->encoding_constraints.per_constraints; - const asn_per_constraint_t *csiz; - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - BIT_STRING_t compact_bstr; /* Do not modify this directly! */ - asn_enc_rval_t er = { 0, 0, 0 }; - int inext = 0; /* Lies not within extension root */ - size_t size_in_bits; - const uint8_t *buf; - int ret; - int ct_extensible; - - if(!st || (!st->buf && st->size)) - ASN__ENCODE_FAILED; - - if(specs->subvariant == ASN_OSUBV_BIT) { - if((st->size == 0 && st->bits_unused) || (st->bits_unused & ~7)) - ASN__ENCODE_FAILED; - } else { - ASN__ENCODE_FAILED; - } - - if(pc) { - csiz = &pc->size; - } else { - csiz = &asn_DEF_BIT_STRING_constraint_size; - } - ct_extensible = csiz->flags & APC_EXTENSIBLE; - - /* Figure out the size without the trailing bits */ - st = BIT_STRING__compactify(st, &compact_bstr); - size_in_bits = 8 * st->size - st->bits_unused; - - ASN_DEBUG( - "Encoding %s into %" ASN_PRI_SIZE " bits" - " (%ld..%ld, effective %d)%s", - td->name, size_in_bits, csiz->lower_bound, csiz->upper_bound, - csiz->effective_bits, ct_extensible ? " EXT" : ""); - - /* Figure out whether size lies within PER visible constraint */ - - if(csiz->effective_bits >= 0) { - if((ssize_t)size_in_bits > csiz->upper_bound) { - if(ct_extensible) { - csiz = &asn_DEF_BIT_STRING_constraint_size; - inext = 1; - } else { - ASN__ENCODE_FAILED; - } - } - } else { - inext = 0; - } - - if(ct_extensible) { - /* Declare whether length is [not] within extension root */ - if(per_put_few_bits(po, inext, 1)) - ASN__ENCODE_FAILED; - } - - if(csiz->effective_bits >= 0 && !inext) { - int add_trailer = (ssize_t)size_in_bits < csiz->lower_bound; - ASN_DEBUG( - "Encoding %" ASN_PRI_SIZE " bytes (%ld), length (in %d bits) trailer %d; actual " - "value %" ASN_PRI_SSIZE "", - st->size, size_in_bits - csiz->lower_bound, csiz->effective_bits, - add_trailer, - add_trailer ? 0 : (ssize_t)size_in_bits - csiz->lower_bound); - ret = per_put_few_bits( - po, add_trailer ? 0 : (ssize_t)size_in_bits - csiz->lower_bound, - csiz->effective_bits); - if(ret) ASN__ENCODE_FAILED; - ret = per_put_many_bits(po, st->buf, size_in_bits); - if(ret) ASN__ENCODE_FAILED; - if(add_trailer) { - static const uint8_t zeros[16]; - size_t trailing_zero_bits = csiz->lower_bound - size_in_bits; - while(trailing_zero_bits > 0) { - if(trailing_zero_bits > 8 * sizeof(zeros)) { - ret = per_put_many_bits(po, zeros, 8 * sizeof(zeros)); - trailing_zero_bits -= 8 * sizeof(zeros); - } else { - ret = per_put_many_bits(po, zeros, trailing_zero_bits); - trailing_zero_bits = 0; - } - if(ret) ASN__ENCODE_FAILED; - } - } - ASN__ENCODED_OK(er); - } - - ASN_DEBUG("Encoding %" ASN_PRI_SIZE " bytes", st->size); - - buf = st->buf; - do { - int need_eom = 0; - ssize_t maySave = uper_put_length(po, size_in_bits, &need_eom); - if(maySave < 0) ASN__ENCODE_FAILED; - - ASN_DEBUG("Encoding %" ASN_PRI_SSIZE " of %" ASN_PRI_SIZE "", maySave, size_in_bits); - - ret = per_put_many_bits(po, buf, maySave); - if(ret) ASN__ENCODE_FAILED; - - buf += maySave >> 3; - size_in_bits -= maySave; - assert(!(maySave & 0x07) || !size_in_bits); - if(need_eom && uper_put_length(po, 0, 0)) - ASN__ENCODE_FAILED; /* End of Message length */ - } while(size_in_bits); - - ASN__ENCODED_OK(er); -} - -#endif /* ASN_DISABLE_PER_SUPPORT */ - -asn_random_fill_result_t -BIT_STRING_random_fill(const asn_TYPE_descriptor_t *td, void **sptr, - const asn_encoding_constraints_t *constraints, - size_t max_length) { - const asn_OCTET_STRING_specifics_t *specs = - td->specifics ? (const asn_OCTET_STRING_specifics_t *)td->specifics - : &asn_SPC_BIT_STRING_specs; - asn_random_fill_result_t result_ok = {ARFILL_OK, 1}; - asn_random_fill_result_t result_failed = {ARFILL_FAILED, 0}; - asn_random_fill_result_t result_skipped = {ARFILL_SKIPPED, 0}; - static unsigned lengths[] = {0, 1, 2, 3, 4, 8, - 126, 127, 128, 16383, 16384, 16385, - 65534, 65535, 65536, 65537}; - uint8_t *buf; - uint8_t *bend; - uint8_t *b; - size_t rnd_bits, rnd_len; - BIT_STRING_t *st; - - if(max_length == 0) return result_skipped; - - switch(specs->subvariant) { - case ASN_OSUBV_ANY: - return result_failed; - case ASN_OSUBV_BIT: - break; - default: - break; - } - - /* Figure out how far we should go */ - rnd_bits = lengths[asn_random_between( - 0, sizeof(lengths) / sizeof(lengths[0]) - 1)]; - if(!constraints || !constraints->per_constraints) - constraints = &td->encoding_constraints; - if(constraints->per_constraints) { - const asn_per_constraint_t *pc = &constraints->per_constraints->size; - if(pc->flags & APC_CONSTRAINED) { - long suggested_upper_bound = pc->upper_bound < (ssize_t)max_length - ? pc->upper_bound - : (ssize_t)max_length; - if(max_length < (size_t)pc->lower_bound) { - return result_skipped; - } - if(pc->flags & APC_EXTENSIBLE) { - switch(asn_random_between(0, 5)) { - case 0: - if(pc->lower_bound > 0) { - rnd_bits = pc->lower_bound - 1; - break; - } - /* Fall through */ - case 1: - rnd_bits = pc->upper_bound + 1; - break; - case 2: - /* Keep rnd_bits from the table */ - if(rnd_bits < max_length) { - break; - } - /* Fall through */ - default: - rnd_bits = asn_random_between(pc->lower_bound, - suggested_upper_bound); - } - } else { - rnd_bits = - asn_random_between(pc->lower_bound, suggested_upper_bound); - } - } else { - rnd_bits = asn_random_between(0, max_length - 1); - } - } else if(rnd_bits >= max_length) { - rnd_bits = asn_random_between(0, max_length - 1); - } - - rnd_len = (rnd_bits + 7) / 8; - buf = CALLOC(1, rnd_len + 1); - if(!buf) return result_failed; - - bend = &buf[rnd_len]; - - for(b = buf; b < bend; b++) { - *(uint8_t *)b = asn_random_between(0, 255); - } - *b = 0; /* Zero-terminate just in case. */ - - if(*sptr) { - st = *sptr; - FREEMEM(st->buf); - } else { - st = (BIT_STRING_t *)(*sptr = CALLOC(1, specs->struct_size)); - if(!st) { - FREEMEM(buf); - return result_failed; - } - } - - st->buf = buf; - st->size = rnd_len; - st->bits_unused = (8 - (rnd_bits & 0x7)) & 0x7; - if(st->bits_unused) { - assert(st->size > 0); - st->buf[st->size-1] &= 0xff << st->bits_unused; - } - - result_ok.length = st->size; - return result_ok; -} diff --git a/e2sim/previous/e2apv1sim/ASN1c/BIT_STRING.h b/e2sim/previous/e2apv1sim/ASN1c/BIT_STRING.h deleted file mode 100644 index c1bdbbc..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/BIT_STRING.h +++ /dev/null @@ -1,48 +0,0 @@ -/*- - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef _BIT_STRING_H_ -#define _BIT_STRING_H_ - -#include /* Some help from OCTET STRING */ - -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct BIT_STRING_s { - uint8_t *buf; /* BIT STRING body */ - size_t size; /* Size of the above buffer */ - - int bits_unused;/* Unused trailing bits in the last octet (0..7) */ - - asn_struct_ctx_t _asn_ctx; /* Parsing across buffer boundaries */ -} BIT_STRING_t; - -extern asn_TYPE_descriptor_t asn_DEF_BIT_STRING; -extern asn_TYPE_operation_t asn_OP_BIT_STRING; -extern asn_OCTET_STRING_specifics_t asn_SPC_BIT_STRING_specs; - -asn_struct_print_f BIT_STRING_print; /* Human-readable output */ -asn_struct_compare_f BIT_STRING_compare; -asn_constr_check_f BIT_STRING_constraint; -xer_type_encoder_f BIT_STRING_encode_xer; -oer_type_decoder_f BIT_STRING_decode_oer; -oer_type_encoder_f BIT_STRING_encode_oer; -per_type_decoder_f BIT_STRING_decode_uper; -per_type_encoder_f BIT_STRING_encode_uper; -asn_random_fill_f BIT_STRING_random_fill; - -#define BIT_STRING_free OCTET_STRING_free -#define BIT_STRING_decode_ber OCTET_STRING_decode_ber -#define BIT_STRING_encode_der OCTET_STRING_encode_der -#define BIT_STRING_decode_xer OCTET_STRING_decode_xer_binary -#define BIT_STRING_decode_aper OCTET_STRING_decode_aper -#define BIT_STRING_encode_aper OCTET_STRING_encode_aper - -#ifdef __cplusplus -} -#endif - -#endif /* _BIT_STRING_H_ */ diff --git a/e2sim/previous/e2apv1sim/ASN1c/BIT_STRING_oer.c b/e2sim/previous/e2apv1sim/ASN1c/BIT_STRING_oer.c deleted file mode 100644 index aff5075..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/BIT_STRING_oer.c +++ /dev/null @@ -1,174 +0,0 @@ -/* - * Copyright (c) 2017 Lev Walkin . - * All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef ASN_DISABLE_OER_SUPPORT - -#include -#include -#include - -asn_dec_rval_t -BIT_STRING_decode_oer(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_oer_constraints_t *constraints, void **sptr, - const void *ptr, size_t size) { - BIT_STRING_t *st = (BIT_STRING_t *)*sptr; - const asn_oer_constraints_t *cts = - constraints ? constraints : td->encoding_constraints.oer_constraints; - ssize_t ct_size = cts ? cts->size : -1; - asn_dec_rval_t rval = {RC_OK, 0}; - size_t expected_length = 0; - - (void)opt_codec_ctx; - - if(!st) { - st = (BIT_STRING_t *)(*sptr = CALLOC(1, sizeof(*st))); - if(!st) ASN__DECODE_FAILED; - } - - if(ct_size >= 0) { - expected_length = (ct_size + 7) >> 3; - st->bits_unused = (8 - (ct_size & 7)) & 7; - } else { - /* - * X.696 (08/2015) #13.3.1 - * Encode length determinant as _number of octets_, but only - * if upper bound is not equal to lower bound. - */ - ssize_t len_len = oer_fetch_length(ptr, size, &expected_length); - if(len_len > 0) { - ptr = (const char *)ptr + len_len; - size -= len_len; - } else if(len_len == 0) { - ASN__DECODE_STARVED; - } else if(len_len < 0) { - ASN__DECODE_FAILED; - } - - if(expected_length < 1) { - ASN__DECODE_FAILED; - } else if(expected_length > size) { - ASN__DECODE_STARVED; - } - - st->bits_unused = ((const uint8_t *)ptr)[0]; - if(st->bits_unused & ~7) { - ASN_DEBUG("%s: unused bits outside of 0..7 range", td->name); - ASN__DECODE_FAILED; - } - ptr = (const char *)ptr + 1; - size--; - expected_length--; - rval.consumed = len_len + 1; - } - - if(size < expected_length) { - ASN__DECODE_STARVED; - } else { - uint8_t *buf = MALLOC(expected_length + 1); - if(buf == NULL) { - ASN__DECODE_FAILED; - } else { - memcpy(buf, ptr, expected_length); - buf[expected_length] = '\0'; - } - FREEMEM(st->buf); - st->buf = buf; - st->size = expected_length; - if(expected_length > 0) { - buf[expected_length - 1] &= (0xff << st->bits_unused); - } - - rval.consumed += expected_length; - return rval; - } -} - -/* - * Encode as Canonical OER. - */ -asn_enc_rval_t -BIT_STRING_encode_oer(const asn_TYPE_descriptor_t *td, - const asn_oer_constraints_t *constraints, - const void *sptr, asn_app_consume_bytes_f *cb, - void *app_key) { - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - asn_enc_rval_t erval = {0, 0, 0}; - const asn_oer_constraints_t *cts = - constraints ? constraints : td->encoding_constraints.oer_constraints; - ssize_t ct_size = cts ? cts->size : -1; - size_t trailing_zeros = 0; - int fix_last_byte = 0; - - if(!st) ASN__ENCODE_FAILED; - - if(st->bits_unused & ~7) { - ASN_DEBUG("BIT STRING unused bits %d out of 0..7 range", - st->bits_unused); - ASN__ENCODE_FAILED; - } - if(st->bits_unused && !(st->size && st->buf)) { - ASN_DEBUG("BIT STRING %s size 0 can't support unused bits %d", td->name, - st->bits_unused); - ASN__ENCODE_FAILED; - } - - if(ct_size >= 0) { - size_t ct_bytes = (ct_size + 7) >> 3; - if(st->size > ct_bytes) { - ASN_DEBUG("More bits in BIT STRING %s (%" ASN_PRI_SSIZE ") than constrained %" ASN_PRI_SSIZE "", - td->name, 8 * st->size - st->bits_unused, ct_size); - ASN__ENCODE_FAILED; - } - trailing_zeros = ct_bytes - st->size; /* Allow larger constraint */ - } else { - uint8_t ub = st->bits_unused & 7; - ssize_t len_len = oer_serialize_length(1 + st->size, cb, app_key); - if(len_len < 0) ASN__ENCODE_FAILED; - if(cb(&ub, 1, app_key) < 0) { - ASN__ENCODE_FAILED; - } - erval.encoded += len_len + 1; - } - - if(st->bits_unused) { - if(st->buf[st->size - 1] & (0xff << st->bits_unused)) { - fix_last_byte = 1; - } - } - - if(cb(st->buf, st->size - fix_last_byte, app_key) < 0) { - ASN__ENCODE_FAILED; - } - - if(fix_last_byte) { - uint8_t b = st->buf[st->size - 1] & (0xff << st->bits_unused); - if(cb(&b, 1, app_key) < 0) { - ASN__ENCODE_FAILED; - } - } - - erval.encoded += st->size; - - if(trailing_zeros) { - static uint8_t zeros[16]; - while(trailing_zeros > 0) { - int ret; - if(trailing_zeros < sizeof(zeros)) { - ret = cb(zeros, trailing_zeros, app_key); - erval.encoded += trailing_zeros; - } else { - ret = cb(zeros, sizeof(zeros), app_key); - erval.encoded += sizeof(zeros); - } - if(ret < 0) ASN__ENCODE_FAILED; - } - } - - return erval; -} - - -#endif /* ASN_DISABLE_OER_SUPPORT */ diff --git a/e2sim/previous/e2apv1sim/ASN1c/C-RNTI.c b/e2sim/previous/e2apv1sim/ASN1c/C-RNTI.c deleted file mode 100644 index e626083..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/C-RNTI.c +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "C-RNTI.h" - -int -C_RNTI_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - size = st->size; - - if((size == 2)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using OCTET_STRING, - * so here we adjust the DEF accordingly. - */ -static asn_oer_constraints_t asn_OER_type_C_RNTI_constr_1 CC_NOTUSED = { - { 0, 0 }, - 2 /* (SIZE(2..2)) */}; -asn_per_constraints_t asn_PER_type_C_RNTI_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 0, 0, 2, 2 } /* (SIZE(2..2)) */, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_C_RNTI_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_C_RNTI = { - "C-RNTI", - "C-RNTI", - &asn_OP_OCTET_STRING, - asn_DEF_C_RNTI_tags_1, - sizeof(asn_DEF_C_RNTI_tags_1) - /sizeof(asn_DEF_C_RNTI_tags_1[0]), /* 1 */ - asn_DEF_C_RNTI_tags_1, /* Same as above */ - sizeof(asn_DEF_C_RNTI_tags_1) - /sizeof(asn_DEF_C_RNTI_tags_1[0]), /* 1 */ - { &asn_OER_type_C_RNTI_constr_1, &asn_PER_type_C_RNTI_constr_1, C_RNTI_constraint }, - 0, 0, /* No members */ - &asn_SPC_OCTET_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/C-RNTI.h b/e2sim/previous/e2apv1sim/ASN1c/C-RNTI.h deleted file mode 100644 index 7366109..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/C-RNTI.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _C_RNTI_H_ -#define _C_RNTI_H_ - - -#include - -/* Including external dependencies */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* C-RNTI */ -typedef OCTET_STRING_t C_RNTI_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_C_RNTI_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_C_RNTI; -asn_struct_free_f C_RNTI_free; -asn_struct_print_f C_RNTI_print; -asn_constr_check_f C_RNTI_constraint; -ber_type_decoder_f C_RNTI_decode_ber; -der_type_encoder_f C_RNTI_encode_der; -xer_type_decoder_f C_RNTI_decode_xer; -xer_type_encoder_f C_RNTI_encode_xer; -oer_type_decoder_f C_RNTI_decode_oer; -oer_type_encoder_f C_RNTI_encode_oer; -per_type_decoder_f C_RNTI_decode_uper; -per_type_encoder_f C_RNTI_encode_uper; -per_type_decoder_f C_RNTI_decode_aper; -per_type_encoder_f C_RNTI_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _C_RNTI_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ASN1c/CU-CP-Usage-Report-CellResourceReportItem.c b/e2sim/previous/e2apv1sim/ASN1c/CU-CP-Usage-Report-CellResourceReportItem.c deleted file mode 100644 index c0b6775..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/CU-CP-Usage-Report-CellResourceReportItem.c +++ /dev/null @@ -1,139 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "CU-CP-Usage-Report-CellResourceReportItem.h" - -static int -memb_ueResourceReportList_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - /* Determine the number of elements */ - size = _A_CSEQUENCE_FROM_VOID(sptr)->count; - - if((size >= 1 && size <= 32)) { - /* Perform validation of the inner elements */ - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_oer_constraints_t asn_OER_type_ueResourceReportList_constr_3 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..32)) */}; -static asn_per_constraints_t asn_PER_type_ueResourceReportList_constr_3 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_ueResourceReportList_constr_3 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..32)) */}; -static asn_per_constraints_t asn_PER_memb_ueResourceReportList_constr_3 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_ueResourceReportList_3[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CU_CP_Usage_Report_UeResourceReportItem, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ueResourceReportList_tags_3[] = { - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_ueResourceReportList_specs_3 = { - sizeof(struct CU_CP_Usage_Report_CellResourceReportItem__ueResourceReportList), - offsetof(struct CU_CP_Usage_Report_CellResourceReportItem__ueResourceReportList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_ueResourceReportList_3 = { - "ueResourceReportList", - "ueResourceReportList", - &asn_OP_SEQUENCE_OF, - asn_DEF_ueResourceReportList_tags_3, - sizeof(asn_DEF_ueResourceReportList_tags_3) - /sizeof(asn_DEF_ueResourceReportList_tags_3[0]) - 1, /* 1 */ - asn_DEF_ueResourceReportList_tags_3, /* Same as above */ - sizeof(asn_DEF_ueResourceReportList_tags_3) - /sizeof(asn_DEF_ueResourceReportList_tags_3[0]), /* 2 */ - { &asn_OER_type_ueResourceReportList_constr_3, &asn_PER_type_ueResourceReportList_constr_3, SEQUENCE_OF_constraint }, - asn_MBR_ueResourceReportList_3, - 1, /* Single element */ - &asn_SPC_ueResourceReportList_specs_3 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_CU_CP_Usage_Report_CellResourceReportItem_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct CU_CP_Usage_Report_CellResourceReportItem, nRCGI), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NRCGI, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "nRCGI" - }, - { ATF_NOFLAGS, 0, offsetof(struct CU_CP_Usage_Report_CellResourceReportItem, ueResourceReportList), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - 0, - &asn_DEF_ueResourceReportList_3, - 0, - { &asn_OER_memb_ueResourceReportList_constr_3, &asn_PER_memb_ueResourceReportList_constr_3, memb_ueResourceReportList_constraint_1 }, - 0, 0, /* No default value */ - "ueResourceReportList" - }, -}; -static const ber_tlv_tag_t asn_DEF_CU_CP_Usage_Report_CellResourceReportItem_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_CU_CP_Usage_Report_CellResourceReportItem_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nRCGI */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ueResourceReportList */ -}; -asn_SEQUENCE_specifics_t asn_SPC_CU_CP_Usage_Report_CellResourceReportItem_specs_1 = { - sizeof(struct CU_CP_Usage_Report_CellResourceReportItem), - offsetof(struct CU_CP_Usage_Report_CellResourceReportItem, _asn_ctx), - asn_MAP_CU_CP_Usage_Report_CellResourceReportItem_tag2el_1, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 2, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_CU_CP_Usage_Report_CellResourceReportItem = { - "CU-CP-Usage-Report-CellResourceReportItem", - "CU-CP-Usage-Report-CellResourceReportItem", - &asn_OP_SEQUENCE, - asn_DEF_CU_CP_Usage_Report_CellResourceReportItem_tags_1, - sizeof(asn_DEF_CU_CP_Usage_Report_CellResourceReportItem_tags_1) - /sizeof(asn_DEF_CU_CP_Usage_Report_CellResourceReportItem_tags_1[0]), /* 1 */ - asn_DEF_CU_CP_Usage_Report_CellResourceReportItem_tags_1, /* Same as above */ - sizeof(asn_DEF_CU_CP_Usage_Report_CellResourceReportItem_tags_1) - /sizeof(asn_DEF_CU_CP_Usage_Report_CellResourceReportItem_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_CU_CP_Usage_Report_CellResourceReportItem_1, - 2, /* Elements count */ - &asn_SPC_CU_CP_Usage_Report_CellResourceReportItem_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/CU-CP-Usage-Report-CellResourceReportItem.h b/e2sim/previous/e2apv1sim/ASN1c/CU-CP-Usage-Report-CellResourceReportItem.h deleted file mode 100644 index 9fb9dd9..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/CU-CP-Usage-Report-CellResourceReportItem.h +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _CU_CP_Usage_Report_CellResourceReportItem_H_ -#define _CU_CP_Usage_Report_CellResourceReportItem_H_ - - -#include - -/* Including external dependencies */ -#include "NRCGI.h" -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct CU_CP_Usage_Report_UeResourceReportItem; - -/* CU-CP-Usage-Report-CellResourceReportItem */ -typedef struct CU_CP_Usage_Report_CellResourceReportItem { - NRCGI_t nRCGI; - struct CU_CP_Usage_Report_CellResourceReportItem__ueResourceReportList { - A_SEQUENCE_OF(struct CU_CP_Usage_Report_UeResourceReportItem) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } ueResourceReportList; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} CU_CP_Usage_Report_CellResourceReportItem_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_CU_CP_Usage_Report_CellResourceReportItem; -extern asn_SEQUENCE_specifics_t asn_SPC_CU_CP_Usage_Report_CellResourceReportItem_specs_1; -extern asn_TYPE_member_t asn_MBR_CU_CP_Usage_Report_CellResourceReportItem_1[2]; - -#ifdef __cplusplus -} -#endif - -/* Referred external types */ -#include "CU-CP-Usage-Report-UeResourceReportItem.h" - -#endif /* _CU_CP_Usage_Report_CellResourceReportItem_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ASN1c/CU-CP-Usage-Report-Per-UE.c b/e2sim/previous/e2apv1sim/ASN1c/CU-CP-Usage-Report-Per-UE.c deleted file mode 100644 index 22055b3..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/CU-CP-Usage-Report-Per-UE.c +++ /dev/null @@ -1,129 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "CU-CP-Usage-Report-Per-UE.h" - -static int -memb_cellResourceReportList_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - /* Determine the number of elements */ - size = _A_CSEQUENCE_FROM_VOID(sptr)->count; - - if((size >= 1 && size <= 16384)) { - /* Perform validation of the inner elements */ - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_oer_constraints_t asn_OER_type_cellResourceReportList_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..16384)) */}; -static asn_per_constraints_t asn_PER_type_cellResourceReportList_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 14, 14, 1, 16384 } /* (SIZE(1..16384)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_cellResourceReportList_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..16384)) */}; -static asn_per_constraints_t asn_PER_memb_cellResourceReportList_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 14, 14, 1, 16384 } /* (SIZE(1..16384)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_cellResourceReportList_2[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CU_CP_Usage_Report_CellResourceReportItem, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_cellResourceReportList_tags_2[] = { - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_cellResourceReportList_specs_2 = { - sizeof(struct CU_CP_Usage_Report_Per_UE__cellResourceReportList), - offsetof(struct CU_CP_Usage_Report_Per_UE__cellResourceReportList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_cellResourceReportList_2 = { - "cellResourceReportList", - "cellResourceReportList", - &asn_OP_SEQUENCE_OF, - asn_DEF_cellResourceReportList_tags_2, - sizeof(asn_DEF_cellResourceReportList_tags_2) - /sizeof(asn_DEF_cellResourceReportList_tags_2[0]) - 1, /* 1 */ - asn_DEF_cellResourceReportList_tags_2, /* Same as above */ - sizeof(asn_DEF_cellResourceReportList_tags_2) - /sizeof(asn_DEF_cellResourceReportList_tags_2[0]), /* 2 */ - { &asn_OER_type_cellResourceReportList_constr_2, &asn_PER_type_cellResourceReportList_constr_2, SEQUENCE_OF_constraint }, - asn_MBR_cellResourceReportList_2, - 1, /* Single element */ - &asn_SPC_cellResourceReportList_specs_2 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_CU_CP_Usage_Report_Per_UE_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct CU_CP_Usage_Report_Per_UE, cellResourceReportList), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - 0, - &asn_DEF_cellResourceReportList_2, - 0, - { &asn_OER_memb_cellResourceReportList_constr_2, &asn_PER_memb_cellResourceReportList_constr_2, memb_cellResourceReportList_constraint_1 }, - 0, 0, /* No default value */ - "cellResourceReportList" - }, -}; -static const ber_tlv_tag_t asn_DEF_CU_CP_Usage_Report_Per_UE_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_CU_CP_Usage_Report_Per_UE_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* cellResourceReportList */ -}; -asn_SEQUENCE_specifics_t asn_SPC_CU_CP_Usage_Report_Per_UE_specs_1 = { - sizeof(struct CU_CP_Usage_Report_Per_UE), - offsetof(struct CU_CP_Usage_Report_Per_UE, _asn_ctx), - asn_MAP_CU_CP_Usage_Report_Per_UE_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_CU_CP_Usage_Report_Per_UE = { - "CU-CP-Usage-Report-Per-UE", - "CU-CP-Usage-Report-Per-UE", - &asn_OP_SEQUENCE, - asn_DEF_CU_CP_Usage_Report_Per_UE_tags_1, - sizeof(asn_DEF_CU_CP_Usage_Report_Per_UE_tags_1) - /sizeof(asn_DEF_CU_CP_Usage_Report_Per_UE_tags_1[0]), /* 1 */ - asn_DEF_CU_CP_Usage_Report_Per_UE_tags_1, /* Same as above */ - sizeof(asn_DEF_CU_CP_Usage_Report_Per_UE_tags_1) - /sizeof(asn_DEF_CU_CP_Usage_Report_Per_UE_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_CU_CP_Usage_Report_Per_UE_1, - 1, /* Elements count */ - &asn_SPC_CU_CP_Usage_Report_Per_UE_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/CU-CP-Usage-Report-Per-UE.h b/e2sim/previous/e2apv1sim/ASN1c/CU-CP-Usage-Report-Per-UE.h deleted file mode 100644 index dad74ca..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/CU-CP-Usage-Report-Per-UE.h +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _CU_CP_Usage_Report_Per_UE_H_ -#define _CU_CP_Usage_Report_Per_UE_H_ - - -#include - -/* Including external dependencies */ -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct CU_CP_Usage_Report_CellResourceReportItem; - -/* CU-CP-Usage-Report-Per-UE */ -typedef struct CU_CP_Usage_Report_Per_UE { - struct CU_CP_Usage_Report_Per_UE__cellResourceReportList { - A_SEQUENCE_OF(struct CU_CP_Usage_Report_CellResourceReportItem) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } cellResourceReportList; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} CU_CP_Usage_Report_Per_UE_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_CU_CP_Usage_Report_Per_UE; -extern asn_SEQUENCE_specifics_t asn_SPC_CU_CP_Usage_Report_Per_UE_specs_1; -extern asn_TYPE_member_t asn_MBR_CU_CP_Usage_Report_Per_UE_1[1]; - -#ifdef __cplusplus -} -#endif - -/* Referred external types */ -#include "CU-CP-Usage-Report-CellResourceReportItem.h" - -#endif /* _CU_CP_Usage_Report_Per_UE_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ASN1c/CU-CP-Usage-Report-UeResourceReportItem.c b/e2sim/previous/e2apv1sim/ASN1c/CU-CP-Usage-Report-UeResourceReportItem.c deleted file mode 100644 index de4d8de..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/CU-CP-Usage-Report-UeResourceReportItem.c +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "CU-CP-Usage-Report-UeResourceReportItem.h" - -asn_TYPE_member_t asn_MBR_CU_CP_Usage_Report_UeResourceReportItem_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct CU_CP_Usage_Report_UeResourceReportItem, c_RNTI), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_C_RNTI, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "c-RNTI" - }, - { ATF_POINTER, 2, offsetof(struct CU_CP_Usage_Report_UeResourceReportItem, serving_Cell_RF_Type), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_OCTET_STRING, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "serving-Cell-RF-Type" - }, - { ATF_POINTER, 1, offsetof(struct CU_CP_Usage_Report_UeResourceReportItem, neighbor_Cell_RF), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_OCTET_STRING, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "neighbor-Cell-RF" - }, -}; -static const int asn_MAP_CU_CP_Usage_Report_UeResourceReportItem_oms_1[] = { 1, 2 }; -static const ber_tlv_tag_t asn_DEF_CU_CP_Usage_Report_UeResourceReportItem_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_CU_CP_Usage_Report_UeResourceReportItem_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* c-RNTI */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* serving-Cell-RF-Type */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* neighbor-Cell-RF */ -}; -asn_SEQUENCE_specifics_t asn_SPC_CU_CP_Usage_Report_UeResourceReportItem_specs_1 = { - sizeof(struct CU_CP_Usage_Report_UeResourceReportItem), - offsetof(struct CU_CP_Usage_Report_UeResourceReportItem, _asn_ctx), - asn_MAP_CU_CP_Usage_Report_UeResourceReportItem_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_CU_CP_Usage_Report_UeResourceReportItem_oms_1, /* Optional members */ - 2, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_CU_CP_Usage_Report_UeResourceReportItem = { - "CU-CP-Usage-Report-UeResourceReportItem", - "CU-CP-Usage-Report-UeResourceReportItem", - &asn_OP_SEQUENCE, - asn_DEF_CU_CP_Usage_Report_UeResourceReportItem_tags_1, - sizeof(asn_DEF_CU_CP_Usage_Report_UeResourceReportItem_tags_1) - /sizeof(asn_DEF_CU_CP_Usage_Report_UeResourceReportItem_tags_1[0]), /* 1 */ - asn_DEF_CU_CP_Usage_Report_UeResourceReportItem_tags_1, /* Same as above */ - sizeof(asn_DEF_CU_CP_Usage_Report_UeResourceReportItem_tags_1) - /sizeof(asn_DEF_CU_CP_Usage_Report_UeResourceReportItem_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_CU_CP_Usage_Report_UeResourceReportItem_1, - 3, /* Elements count */ - &asn_SPC_CU_CP_Usage_Report_UeResourceReportItem_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/CU-CP-Usage-Report-UeResourceReportItem.h b/e2sim/previous/e2apv1sim/ASN1c/CU-CP-Usage-Report-UeResourceReportItem.h deleted file mode 100644 index 11edd99..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/CU-CP-Usage-Report-UeResourceReportItem.h +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _CU_CP_Usage_Report_UeResourceReportItem_H_ -#define _CU_CP_Usage_Report_UeResourceReportItem_H_ - - -#include - -/* Including external dependencies */ -#include "C-RNTI.h" -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* CU-CP-Usage-Report-UeResourceReportItem */ -typedef struct CU_CP_Usage_Report_UeResourceReportItem { - C_RNTI_t c_RNTI; - OCTET_STRING_t *serving_Cell_RF_Type; /* OPTIONAL */ - OCTET_STRING_t *neighbor_Cell_RF; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} CU_CP_Usage_Report_UeResourceReportItem_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_CU_CP_Usage_Report_UeResourceReportItem; -extern asn_SEQUENCE_specifics_t asn_SPC_CU_CP_Usage_Report_UeResourceReportItem_specs_1; -extern asn_TYPE_member_t asn_MBR_CU_CP_Usage_Report_UeResourceReportItem_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _CU_CP_Usage_Report_UeResourceReportItem_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ASN1c/CU-UP-Usage-Report-CellResourceReportItem.c b/e2sim/previous/e2apv1sim/ASN1c/CU-UP-Usage-Report-CellResourceReportItem.c deleted file mode 100644 index 4781c55..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/CU-UP-Usage-Report-CellResourceReportItem.c +++ /dev/null @@ -1,139 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "CU-UP-Usage-Report-CellResourceReportItem.h" - -static int -memb_ueResourceReportList_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - /* Determine the number of elements */ - size = _A_CSEQUENCE_FROM_VOID(sptr)->count; - - if((size >= 1 && size <= 32)) { - /* Perform validation of the inner elements */ - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_oer_constraints_t asn_OER_type_ueResourceReportList_constr_3 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..32)) */}; -static asn_per_constraints_t asn_PER_type_ueResourceReportList_constr_3 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_ueResourceReportList_constr_3 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..32)) */}; -static asn_per_constraints_t asn_PER_memb_ueResourceReportList_constr_3 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_ueResourceReportList_3[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CU_UP_Usage_Report_UeResourceReportItem, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ueResourceReportList_tags_3[] = { - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_ueResourceReportList_specs_3 = { - sizeof(struct CU_UP_Usage_Report_CellResourceReportItem__ueResourceReportList), - offsetof(struct CU_UP_Usage_Report_CellResourceReportItem__ueResourceReportList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_ueResourceReportList_3 = { - "ueResourceReportList", - "ueResourceReportList", - &asn_OP_SEQUENCE_OF, - asn_DEF_ueResourceReportList_tags_3, - sizeof(asn_DEF_ueResourceReportList_tags_3) - /sizeof(asn_DEF_ueResourceReportList_tags_3[0]) - 1, /* 1 */ - asn_DEF_ueResourceReportList_tags_3, /* Same as above */ - sizeof(asn_DEF_ueResourceReportList_tags_3) - /sizeof(asn_DEF_ueResourceReportList_tags_3[0]), /* 2 */ - { &asn_OER_type_ueResourceReportList_constr_3, &asn_PER_type_ueResourceReportList_constr_3, SEQUENCE_OF_constraint }, - asn_MBR_ueResourceReportList_3, - 1, /* Single element */ - &asn_SPC_ueResourceReportList_specs_3 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_CU_UP_Usage_Report_CellResourceReportItem_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct CU_UP_Usage_Report_CellResourceReportItem, nRCGI), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NRCGI, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "nRCGI" - }, - { ATF_NOFLAGS, 0, offsetof(struct CU_UP_Usage_Report_CellResourceReportItem, ueResourceReportList), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - 0, - &asn_DEF_ueResourceReportList_3, - 0, - { &asn_OER_memb_ueResourceReportList_constr_3, &asn_PER_memb_ueResourceReportList_constr_3, memb_ueResourceReportList_constraint_1 }, - 0, 0, /* No default value */ - "ueResourceReportList" - }, -}; -static const ber_tlv_tag_t asn_DEF_CU_UP_Usage_Report_CellResourceReportItem_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_CU_UP_Usage_Report_CellResourceReportItem_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nRCGI */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ueResourceReportList */ -}; -asn_SEQUENCE_specifics_t asn_SPC_CU_UP_Usage_Report_CellResourceReportItem_specs_1 = { - sizeof(struct CU_UP_Usage_Report_CellResourceReportItem), - offsetof(struct CU_UP_Usage_Report_CellResourceReportItem, _asn_ctx), - asn_MAP_CU_UP_Usage_Report_CellResourceReportItem_tag2el_1, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 2, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_CU_UP_Usage_Report_CellResourceReportItem = { - "CU-UP-Usage-Report-CellResourceReportItem", - "CU-UP-Usage-Report-CellResourceReportItem", - &asn_OP_SEQUENCE, - asn_DEF_CU_UP_Usage_Report_CellResourceReportItem_tags_1, - sizeof(asn_DEF_CU_UP_Usage_Report_CellResourceReportItem_tags_1) - /sizeof(asn_DEF_CU_UP_Usage_Report_CellResourceReportItem_tags_1[0]), /* 1 */ - asn_DEF_CU_UP_Usage_Report_CellResourceReportItem_tags_1, /* Same as above */ - sizeof(asn_DEF_CU_UP_Usage_Report_CellResourceReportItem_tags_1) - /sizeof(asn_DEF_CU_UP_Usage_Report_CellResourceReportItem_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_CU_UP_Usage_Report_CellResourceReportItem_1, - 2, /* Elements count */ - &asn_SPC_CU_UP_Usage_Report_CellResourceReportItem_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/CU-UP-Usage-Report-CellResourceReportItem.h b/e2sim/previous/e2apv1sim/ASN1c/CU-UP-Usage-Report-CellResourceReportItem.h deleted file mode 100644 index f313f40..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/CU-UP-Usage-Report-CellResourceReportItem.h +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _CU_UP_Usage_Report_CellResourceReportItem_H_ -#define _CU_UP_Usage_Report_CellResourceReportItem_H_ - - -#include - -/* Including external dependencies */ -#include "NRCGI.h" -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct CU_UP_Usage_Report_UeResourceReportItem; - -/* CU-UP-Usage-Report-CellResourceReportItem */ -typedef struct CU_UP_Usage_Report_CellResourceReportItem { - NRCGI_t nRCGI; - struct CU_UP_Usage_Report_CellResourceReportItem__ueResourceReportList { - A_SEQUENCE_OF(struct CU_UP_Usage_Report_UeResourceReportItem) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } ueResourceReportList; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} CU_UP_Usage_Report_CellResourceReportItem_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_CU_UP_Usage_Report_CellResourceReportItem; -extern asn_SEQUENCE_specifics_t asn_SPC_CU_UP_Usage_Report_CellResourceReportItem_specs_1; -extern asn_TYPE_member_t asn_MBR_CU_UP_Usage_Report_CellResourceReportItem_1[2]; - -#ifdef __cplusplus -} -#endif - -/* Referred external types */ -#include "CU-UP-Usage-Report-UeResourceReportItem.h" - -#endif /* _CU_UP_Usage_Report_CellResourceReportItem_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ASN1c/CU-UP-Usage-Report-Per-UE.c b/e2sim/previous/e2apv1sim/ASN1c/CU-UP-Usage-Report-Per-UE.c deleted file mode 100644 index 5213281..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/CU-UP-Usage-Report-Per-UE.c +++ /dev/null @@ -1,129 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "CU-UP-Usage-Report-Per-UE.h" - -static int -memb_cellResourceReportList_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - /* Determine the number of elements */ - size = _A_CSEQUENCE_FROM_VOID(sptr)->count; - - if((size >= 1 && size <= 512)) { - /* Perform validation of the inner elements */ - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_oer_constraints_t asn_OER_type_cellResourceReportList_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..512)) */}; -static asn_per_constraints_t asn_PER_type_cellResourceReportList_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 9, 9, 1, 512 } /* (SIZE(1..512)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_cellResourceReportList_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..512)) */}; -static asn_per_constraints_t asn_PER_memb_cellResourceReportList_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 9, 9, 1, 512 } /* (SIZE(1..512)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_cellResourceReportList_2[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CU_UP_Usage_Report_CellResourceReportItem, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_cellResourceReportList_tags_2[] = { - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_cellResourceReportList_specs_2 = { - sizeof(struct CU_UP_Usage_Report_Per_UE__cellResourceReportList), - offsetof(struct CU_UP_Usage_Report_Per_UE__cellResourceReportList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_cellResourceReportList_2 = { - "cellResourceReportList", - "cellResourceReportList", - &asn_OP_SEQUENCE_OF, - asn_DEF_cellResourceReportList_tags_2, - sizeof(asn_DEF_cellResourceReportList_tags_2) - /sizeof(asn_DEF_cellResourceReportList_tags_2[0]) - 1, /* 1 */ - asn_DEF_cellResourceReportList_tags_2, /* Same as above */ - sizeof(asn_DEF_cellResourceReportList_tags_2) - /sizeof(asn_DEF_cellResourceReportList_tags_2[0]), /* 2 */ - { &asn_OER_type_cellResourceReportList_constr_2, &asn_PER_type_cellResourceReportList_constr_2, SEQUENCE_OF_constraint }, - asn_MBR_cellResourceReportList_2, - 1, /* Single element */ - &asn_SPC_cellResourceReportList_specs_2 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_CU_UP_Usage_Report_Per_UE_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct CU_UP_Usage_Report_Per_UE, cellResourceReportList), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - 0, - &asn_DEF_cellResourceReportList_2, - 0, - { &asn_OER_memb_cellResourceReportList_constr_2, &asn_PER_memb_cellResourceReportList_constr_2, memb_cellResourceReportList_constraint_1 }, - 0, 0, /* No default value */ - "cellResourceReportList" - }, -}; -static const ber_tlv_tag_t asn_DEF_CU_UP_Usage_Report_Per_UE_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_CU_UP_Usage_Report_Per_UE_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* cellResourceReportList */ -}; -asn_SEQUENCE_specifics_t asn_SPC_CU_UP_Usage_Report_Per_UE_specs_1 = { - sizeof(struct CU_UP_Usage_Report_Per_UE), - offsetof(struct CU_UP_Usage_Report_Per_UE, _asn_ctx), - asn_MAP_CU_UP_Usage_Report_Per_UE_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_CU_UP_Usage_Report_Per_UE = { - "CU-UP-Usage-Report-Per-UE", - "CU-UP-Usage-Report-Per-UE", - &asn_OP_SEQUENCE, - asn_DEF_CU_UP_Usage_Report_Per_UE_tags_1, - sizeof(asn_DEF_CU_UP_Usage_Report_Per_UE_tags_1) - /sizeof(asn_DEF_CU_UP_Usage_Report_Per_UE_tags_1[0]), /* 1 */ - asn_DEF_CU_UP_Usage_Report_Per_UE_tags_1, /* Same as above */ - sizeof(asn_DEF_CU_UP_Usage_Report_Per_UE_tags_1) - /sizeof(asn_DEF_CU_UP_Usage_Report_Per_UE_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_CU_UP_Usage_Report_Per_UE_1, - 1, /* Elements count */ - &asn_SPC_CU_UP_Usage_Report_Per_UE_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/CU-UP-Usage-Report-Per-UE.h b/e2sim/previous/e2apv1sim/ASN1c/CU-UP-Usage-Report-Per-UE.h deleted file mode 100644 index 71e6ed9..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/CU-UP-Usage-Report-Per-UE.h +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _CU_UP_Usage_Report_Per_UE_H_ -#define _CU_UP_Usage_Report_Per_UE_H_ - - -#include - -/* Including external dependencies */ -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct CU_UP_Usage_Report_CellResourceReportItem; - -/* CU-UP-Usage-Report-Per-UE */ -typedef struct CU_UP_Usage_Report_Per_UE { - struct CU_UP_Usage_Report_Per_UE__cellResourceReportList { - A_SEQUENCE_OF(struct CU_UP_Usage_Report_CellResourceReportItem) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } cellResourceReportList; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} CU_UP_Usage_Report_Per_UE_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_CU_UP_Usage_Report_Per_UE; -extern asn_SEQUENCE_specifics_t asn_SPC_CU_UP_Usage_Report_Per_UE_specs_1; -extern asn_TYPE_member_t asn_MBR_CU_UP_Usage_Report_Per_UE_1[1]; - -#ifdef __cplusplus -} -#endif - -/* Referred external types */ -#include "CU-UP-Usage-Report-CellResourceReportItem.h" - -#endif /* _CU_UP_Usage_Report_Per_UE_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ASN1c/CU-UP-Usage-Report-UeResourceReportItem.c b/e2sim/previous/e2apv1sim/ASN1c/CU-UP-Usage-Report-UeResourceReportItem.c deleted file mode 100644 index 1867379..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/CU-UP-Usage-Report-UeResourceReportItem.c +++ /dev/null @@ -1,150 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "CU-UP-Usage-Report-UeResourceReportItem.h" - -static int -memb_pDCPBytesDL_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const INTEGER_t *st = (const INTEGER_t *)sptr; - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if(asn_INTEGER2long(st, &value)) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value too large (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if((value >= 0 && value <= 10000000000)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_pDCPBytesUL_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const INTEGER_t *st = (const INTEGER_t *)sptr; - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if(asn_INTEGER2long(st, &value)) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value too large (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if((value >= 0 && value <= 10000000000)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_oer_constraints_t asn_OER_memb_pDCPBytesDL_constr_3 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_memb_pDCPBytesDL_constr_3 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 34, -1, 0, 10000000000 } /* (0..10000000000,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_pDCPBytesUL_constr_4 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_memb_pDCPBytesUL_constr_4 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 34, -1, 0, 10000000000 } /* (0..10000000000,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_CU_UP_Usage_Report_UeResourceReportItem_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct CU_UP_Usage_Report_UeResourceReportItem, c_RNTI), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_C_RNTI, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "c-RNTI" - }, - { ATF_POINTER, 2, offsetof(struct CU_UP_Usage_Report_UeResourceReportItem, pDCPBytesDL), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_INTEGER, - 0, - { &asn_OER_memb_pDCPBytesDL_constr_3, &asn_PER_memb_pDCPBytesDL_constr_3, memb_pDCPBytesDL_constraint_1 }, - 0, 0, /* No default value */ - "pDCPBytesDL" - }, - { ATF_POINTER, 1, offsetof(struct CU_UP_Usage_Report_UeResourceReportItem, pDCPBytesUL), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_INTEGER, - 0, - { &asn_OER_memb_pDCPBytesUL_constr_4, &asn_PER_memb_pDCPBytesUL_constr_4, memb_pDCPBytesUL_constraint_1 }, - 0, 0, /* No default value */ - "pDCPBytesUL" - }, -}; -static const int asn_MAP_CU_UP_Usage_Report_UeResourceReportItem_oms_1[] = { 1, 2 }; -static const ber_tlv_tag_t asn_DEF_CU_UP_Usage_Report_UeResourceReportItem_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_CU_UP_Usage_Report_UeResourceReportItem_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* c-RNTI */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* pDCPBytesDL */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* pDCPBytesUL */ -}; -asn_SEQUENCE_specifics_t asn_SPC_CU_UP_Usage_Report_UeResourceReportItem_specs_1 = { - sizeof(struct CU_UP_Usage_Report_UeResourceReportItem), - offsetof(struct CU_UP_Usage_Report_UeResourceReportItem, _asn_ctx), - asn_MAP_CU_UP_Usage_Report_UeResourceReportItem_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_CU_UP_Usage_Report_UeResourceReportItem_oms_1, /* Optional members */ - 2, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_CU_UP_Usage_Report_UeResourceReportItem = { - "CU-UP-Usage-Report-UeResourceReportItem", - "CU-UP-Usage-Report-UeResourceReportItem", - &asn_OP_SEQUENCE, - asn_DEF_CU_UP_Usage_Report_UeResourceReportItem_tags_1, - sizeof(asn_DEF_CU_UP_Usage_Report_UeResourceReportItem_tags_1) - /sizeof(asn_DEF_CU_UP_Usage_Report_UeResourceReportItem_tags_1[0]), /* 1 */ - asn_DEF_CU_UP_Usage_Report_UeResourceReportItem_tags_1, /* Same as above */ - sizeof(asn_DEF_CU_UP_Usage_Report_UeResourceReportItem_tags_1) - /sizeof(asn_DEF_CU_UP_Usage_Report_UeResourceReportItem_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_CU_UP_Usage_Report_UeResourceReportItem_1, - 3, /* Elements count */ - &asn_SPC_CU_UP_Usage_Report_UeResourceReportItem_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/CU-UP-Usage-Report-UeResourceReportItem.h b/e2sim/previous/e2apv1sim/ASN1c/CU-UP-Usage-Report-UeResourceReportItem.h deleted file mode 100644 index 3a3dec7..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/CU-UP-Usage-Report-UeResourceReportItem.h +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _CU_UP_Usage_Report_UeResourceReportItem_H_ -#define _CU_UP_Usage_Report_UeResourceReportItem_H_ - - -#include - -/* Including external dependencies */ -#include "C-RNTI.h" -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* CU-UP-Usage-Report-UeResourceReportItem */ -typedef struct CU_UP_Usage_Report_UeResourceReportItem { - C_RNTI_t c_RNTI; - INTEGER_t *pDCPBytesDL; /* OPTIONAL */ - INTEGER_t *pDCPBytesUL; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} CU_UP_Usage_Report_UeResourceReportItem_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_CU_UP_Usage_Report_UeResourceReportItem; -extern asn_SEQUENCE_specifics_t asn_SPC_CU_UP_Usage_Report_UeResourceReportItem_specs_1; -extern asn_TYPE_member_t asn_MBR_CU_UP_Usage_Report_UeResourceReportItem_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _CU_UP_Usage_Report_UeResourceReportItem_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ASN1c/CUUPMeasurement-Container.c b/e2sim/previous/e2apv1sim/ASN1c/CUUPMeasurement-Container.c deleted file mode 100644 index bd27283..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/CUUPMeasurement-Container.c +++ /dev/null @@ -1,129 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "CUUPMeasurement-Container.h" - -static int -memb_plmnList_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - /* Determine the number of elements */ - size = _A_CSEQUENCE_FROM_VOID(sptr)->count; - - if((size >= 1 && size <= 12)) { - /* Perform validation of the inner elements */ - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_oer_constraints_t asn_OER_type_plmnList_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..12)) */}; -static asn_per_constraints_t asn_PER_type_plmnList_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 4, 4, 1, 12 } /* (SIZE(1..12)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_plmnList_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..12)) */}; -static asn_per_constraints_t asn_PER_memb_plmnList_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 4, 4, 1, 12 } /* (SIZE(1..12)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_plmnList_2[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_PlmnID_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_plmnList_tags_2[] = { - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_plmnList_specs_2 = { - sizeof(struct CUUPMeasurement_Container__plmnList), - offsetof(struct CUUPMeasurement_Container__plmnList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_plmnList_2 = { - "plmnList", - "plmnList", - &asn_OP_SEQUENCE_OF, - asn_DEF_plmnList_tags_2, - sizeof(asn_DEF_plmnList_tags_2) - /sizeof(asn_DEF_plmnList_tags_2[0]) - 1, /* 1 */ - asn_DEF_plmnList_tags_2, /* Same as above */ - sizeof(asn_DEF_plmnList_tags_2) - /sizeof(asn_DEF_plmnList_tags_2[0]), /* 2 */ - { &asn_OER_type_plmnList_constr_2, &asn_PER_type_plmnList_constr_2, SEQUENCE_OF_constraint }, - asn_MBR_plmnList_2, - 1, /* Single element */ - &asn_SPC_plmnList_specs_2 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_CUUPMeasurement_Container_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct CUUPMeasurement_Container, plmnList), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - 0, - &asn_DEF_plmnList_2, - 0, - { &asn_OER_memb_plmnList_constr_2, &asn_PER_memb_plmnList_constr_2, memb_plmnList_constraint_1 }, - 0, 0, /* No default value */ - "plmnList" - }, -}; -static const ber_tlv_tag_t asn_DEF_CUUPMeasurement_Container_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_CUUPMeasurement_Container_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* plmnList */ -}; -asn_SEQUENCE_specifics_t asn_SPC_CUUPMeasurement_Container_specs_1 = { - sizeof(struct CUUPMeasurement_Container), - offsetof(struct CUUPMeasurement_Container, _asn_ctx), - asn_MAP_CUUPMeasurement_Container_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_CUUPMeasurement_Container = { - "CUUPMeasurement-Container", - "CUUPMeasurement-Container", - &asn_OP_SEQUENCE, - asn_DEF_CUUPMeasurement_Container_tags_1, - sizeof(asn_DEF_CUUPMeasurement_Container_tags_1) - /sizeof(asn_DEF_CUUPMeasurement_Container_tags_1[0]), /* 1 */ - asn_DEF_CUUPMeasurement_Container_tags_1, /* Same as above */ - sizeof(asn_DEF_CUUPMeasurement_Container_tags_1) - /sizeof(asn_DEF_CUUPMeasurement_Container_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_CUUPMeasurement_Container_1, - 1, /* Elements count */ - &asn_SPC_CUUPMeasurement_Container_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/CUUPMeasurement-Container.h b/e2sim/previous/e2apv1sim/ASN1c/CUUPMeasurement-Container.h deleted file mode 100644 index 14aafc3..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/CUUPMeasurement-Container.h +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _CUUPMeasurement_Container_H_ -#define _CUUPMeasurement_Container_H_ - - -#include - -/* Including external dependencies */ -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct PlmnID_List; - -/* CUUPMeasurement-Container */ -typedef struct CUUPMeasurement_Container { - struct CUUPMeasurement_Container__plmnList { - A_SEQUENCE_OF(struct PlmnID_List) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } plmnList; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} CUUPMeasurement_Container_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_CUUPMeasurement_Container; -extern asn_SEQUENCE_specifics_t asn_SPC_CUUPMeasurement_Container_specs_1; -extern asn_TYPE_member_t asn_MBR_CUUPMeasurement_Container_1[1]; - -#ifdef __cplusplus -} -#endif - -/* Referred external types */ -#include "PlmnID-List.h" - -#endif /* _CUUPMeasurement_Container_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ASN1c/Cause.c b/e2sim/previous/e2apv1sim/ASN1c/Cause.c deleted file mode 100644 index 1027911..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/Cause.c +++ /dev/null @@ -1,92 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "Cause.h" - -asn_per_constraints_t asn_PER_type_Cause_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 4 } /* (0..4,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_Cause_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct Cause, choice.ricRequest), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_CauseRIC, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ricRequest" - }, - { ATF_NOFLAGS, 0, offsetof(struct Cause, choice.ricService), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_CauseRICservice, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ricService" - }, - { ATF_NOFLAGS, 0, offsetof(struct Cause, choice.transport), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_CauseTransport, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "transport" - }, - { ATF_NOFLAGS, 0, offsetof(struct Cause, choice.protocol), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_CauseProtocol, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocol" - }, - { ATF_NOFLAGS, 0, offsetof(struct Cause, choice.misc), - (ASN_TAG_CLASS_CONTEXT | (4 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_CauseMisc, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "misc" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_Cause_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ricRequest */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ricService */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* transport */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* protocol */ - { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* misc */ -}; -asn_CHOICE_specifics_t asn_SPC_Cause_specs_1 = { - sizeof(struct Cause), - offsetof(struct Cause, _asn_ctx), - offsetof(struct Cause, present), - sizeof(((struct Cause *)0)->present), - asn_MAP_Cause_tag2el_1, - 5, /* Count of tags in the map */ - 0, 0, - 5 /* Extensions start */ -}; -asn_TYPE_descriptor_t asn_DEF_Cause = { - "Cause", - "Cause", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, &asn_PER_type_Cause_constr_1, CHOICE_constraint }, - asn_MBR_Cause_1, - 5, /* Elements count */ - &asn_SPC_Cause_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/Cause.h b/e2sim/previous/e2apv1sim/ASN1c/Cause.h deleted file mode 100644 index 1b829a6..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/Cause.h +++ /dev/null @@ -1,68 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _Cause_H_ -#define _Cause_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "CauseRIC.h" -#include "CauseRICservice.h" -#include "CauseTransport.h" -#include "CauseProtocol.h" -#include "CauseMisc.h" -#include "constr_CHOICE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum Cause_PR { - Cause_PR_NOTHING, /* No components present */ - Cause_PR_ricRequest, - Cause_PR_ricService, - Cause_PR_transport, - Cause_PR_protocol, - Cause_PR_misc - /* Extensions may appear below */ - -} Cause_PR; - -/* Cause */ -typedef struct Cause { - Cause_PR present; - union Cause_u { - CauseRIC_t ricRequest; - CauseRICservice_t ricService; - CauseTransport_t transport; - CauseProtocol_t protocol; - CauseMisc_t misc; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} Cause_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_Cause; -extern asn_CHOICE_specifics_t asn_SPC_Cause_specs_1; -extern asn_TYPE_member_t asn_MBR_Cause_1[5]; -extern asn_per_constraints_t asn_PER_type_Cause_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _Cause_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ASN1c/CauseMisc.c b/e2sim/previous/e2apv1sim/ASN1c/CauseMisc.c deleted file mode 100644 index 1709929..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/CauseMisc.c +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "CauseMisc.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_CauseMisc_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 3 } /* (0..3,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_CauseMisc_value2enum_1[] = { - { 0, 27, "control-processing-overload" }, - { 1, 16, "hardware-failure" }, - { 2, 15, "om-intervention" }, - { 3, 11, "unspecified" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_CauseMisc_enum2value_1[] = { - 0, /* control-processing-overload(0) */ - 1, /* hardware-failure(1) */ - 2, /* om-intervention(2) */ - 3 /* unspecified(3) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_CauseMisc_specs_1 = { - asn_MAP_CauseMisc_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_CauseMisc_enum2value_1, /* N => "tag"; sorted by N */ - 4, /* Number of elements in the maps */ - 5, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_CauseMisc_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_CauseMisc = { - "CauseMisc", - "CauseMisc", - &asn_OP_NativeEnumerated, - asn_DEF_CauseMisc_tags_1, - sizeof(asn_DEF_CauseMisc_tags_1) - /sizeof(asn_DEF_CauseMisc_tags_1[0]), /* 1 */ - asn_DEF_CauseMisc_tags_1, /* Same as above */ - sizeof(asn_DEF_CauseMisc_tags_1) - /sizeof(asn_DEF_CauseMisc_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_CauseMisc_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_CauseMisc_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/CauseMisc.h b/e2sim/previous/e2apv1sim/ASN1c/CauseMisc.h deleted file mode 100644 index d175009..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/CauseMisc.h +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _CauseMisc_H_ -#define _CauseMisc_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum CauseMisc { - CauseMisc_control_processing_overload = 0, - CauseMisc_hardware_failure = 1, - CauseMisc_om_intervention = 2, - CauseMisc_unspecified = 3 - /* - * Enumeration is extensible - */ -} e_CauseMisc; - -/* CauseMisc */ -typedef long CauseMisc_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_CauseMisc_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_CauseMisc; -extern const asn_INTEGER_specifics_t asn_SPC_CauseMisc_specs_1; -asn_struct_free_f CauseMisc_free; -asn_struct_print_f CauseMisc_print; -asn_constr_check_f CauseMisc_constraint; -ber_type_decoder_f CauseMisc_decode_ber; -der_type_encoder_f CauseMisc_encode_der; -xer_type_decoder_f CauseMisc_decode_xer; -xer_type_encoder_f CauseMisc_encode_xer; -per_type_decoder_f CauseMisc_decode_uper; -per_type_encoder_f CauseMisc_encode_uper; -per_type_decoder_f CauseMisc_decode_aper; -per_type_encoder_f CauseMisc_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _CauseMisc_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ASN1c/CauseProtocol.c b/e2sim/previous/e2apv1sim/ASN1c/CauseProtocol.c deleted file mode 100644 index e5b11b0..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/CauseProtocol.c +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "CauseProtocol.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_CauseProtocol_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 6 } /* (0..6,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_CauseProtocol_value2enum_1[] = { - { 0, 21, "transfer-syntax-error" }, - { 1, 28, "abstract-syntax-error-reject" }, - { 2, 39, "abstract-syntax-error-ignore-and-notify" }, - { 3, 42, "message-not-compatible-with-receiver-state" }, - { 4, 14, "semantic-error" }, - { 5, 49, "abstract-syntax-error-falsely-constructed-message" }, - { 6, 11, "unspecified" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_CauseProtocol_enum2value_1[] = { - 5, /* abstract-syntax-error-falsely-constructed-message(5) */ - 2, /* abstract-syntax-error-ignore-and-notify(2) */ - 1, /* abstract-syntax-error-reject(1) */ - 3, /* message-not-compatible-with-receiver-state(3) */ - 4, /* semantic-error(4) */ - 0, /* transfer-syntax-error(0) */ - 6 /* unspecified(6) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_CauseProtocol_specs_1 = { - asn_MAP_CauseProtocol_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_CauseProtocol_enum2value_1, /* N => "tag"; sorted by N */ - 7, /* Number of elements in the maps */ - 8, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_CauseProtocol_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_CauseProtocol = { - "CauseProtocol", - "CauseProtocol", - &asn_OP_NativeEnumerated, - asn_DEF_CauseProtocol_tags_1, - sizeof(asn_DEF_CauseProtocol_tags_1) - /sizeof(asn_DEF_CauseProtocol_tags_1[0]), /* 1 */ - asn_DEF_CauseProtocol_tags_1, /* Same as above */ - sizeof(asn_DEF_CauseProtocol_tags_1) - /sizeof(asn_DEF_CauseProtocol_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_CauseProtocol_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_CauseProtocol_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/CauseProtocol.h b/e2sim/previous/e2apv1sim/ASN1c/CauseProtocol.h deleted file mode 100644 index 72329ac..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/CauseProtocol.h +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _CauseProtocol_H_ -#define _CauseProtocol_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum CauseProtocol { - CauseProtocol_transfer_syntax_error = 0, - CauseProtocol_abstract_syntax_error_reject = 1, - CauseProtocol_abstract_syntax_error_ignore_and_notify = 2, - CauseProtocol_message_not_compatible_with_receiver_state = 3, - CauseProtocol_semantic_error = 4, - CauseProtocol_abstract_syntax_error_falsely_constructed_message = 5, - CauseProtocol_unspecified = 6 - /* - * Enumeration is extensible - */ -} e_CauseProtocol; - -/* CauseProtocol */ -typedef long CauseProtocol_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_CauseProtocol_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_CauseProtocol; -extern const asn_INTEGER_specifics_t asn_SPC_CauseProtocol_specs_1; -asn_struct_free_f CauseProtocol_free; -asn_struct_print_f CauseProtocol_print; -asn_constr_check_f CauseProtocol_constraint; -ber_type_decoder_f CauseProtocol_decode_ber; -der_type_encoder_f CauseProtocol_encode_der; -xer_type_decoder_f CauseProtocol_decode_xer; -xer_type_encoder_f CauseProtocol_encode_xer; -per_type_decoder_f CauseProtocol_decode_uper; -per_type_encoder_f CauseProtocol_encode_uper; -per_type_decoder_f CauseProtocol_decode_aper; -per_type_encoder_f CauseProtocol_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _CauseProtocol_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ASN1c/CauseRIC.c b/e2sim/previous/e2apv1sim/ASN1c/CauseRIC.c deleted file mode 100644 index 11d9e4e..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/CauseRIC.c +++ /dev/null @@ -1,73 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "CauseRIC.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_CauseRIC_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 4, 4, 0, 10 } /* (0..10,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_CauseRIC_value2enum_1[] = { - { 0, 23, "ran-function-id-Invalid" }, - { 1, 20, "action-not-supported" }, - { 2, 17, "excessive-actions" }, - { 3, 16, "duplicate-action" }, - { 4, 15, "duplicate-event" }, - { 5, 23, "function-resource-limit" }, - { 6, 18, "request-id-unknown" }, - { 7, 46, "inconsistent-action-subsequent-action-sequence" }, - { 8, 23, "control-message-invalid" }, - { 9, 23, "call-process-id-invalid" }, - { 10, 11, "unspecified" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_CauseRIC_enum2value_1[] = { - 1, /* action-not-supported(1) */ - 9, /* call-process-id-invalid(9) */ - 8, /* control-message-invalid(8) */ - 3, /* duplicate-action(3) */ - 4, /* duplicate-event(4) */ - 2, /* excessive-actions(2) */ - 5, /* function-resource-limit(5) */ - 7, /* inconsistent-action-subsequent-action-sequence(7) */ - 0, /* ran-function-id-Invalid(0) */ - 6, /* request-id-unknown(6) */ - 10 /* unspecified(10) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_CauseRIC_specs_1 = { - asn_MAP_CauseRIC_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_CauseRIC_enum2value_1, /* N => "tag"; sorted by N */ - 11, /* Number of elements in the maps */ - 12, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_CauseRIC_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_CauseRIC = { - "CauseRIC", - "CauseRIC", - &asn_OP_NativeEnumerated, - asn_DEF_CauseRIC_tags_1, - sizeof(asn_DEF_CauseRIC_tags_1) - /sizeof(asn_DEF_CauseRIC_tags_1[0]), /* 1 */ - asn_DEF_CauseRIC_tags_1, /* Same as above */ - sizeof(asn_DEF_CauseRIC_tags_1) - /sizeof(asn_DEF_CauseRIC_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_CauseRIC_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_CauseRIC_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/CauseRIC.h b/e2sim/previous/e2apv1sim/ASN1c/CauseRIC.h deleted file mode 100644 index 417532f..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/CauseRIC.h +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _CauseRIC_H_ -#define _CauseRIC_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum CauseRIC { - CauseRIC_ran_function_id_Invalid = 0, - CauseRIC_action_not_supported = 1, - CauseRIC_excessive_actions = 2, - CauseRIC_duplicate_action = 3, - CauseRIC_duplicate_event = 4, - CauseRIC_function_resource_limit = 5, - CauseRIC_request_id_unknown = 6, - CauseRIC_inconsistent_action_subsequent_action_sequence = 7, - CauseRIC_control_message_invalid = 8, - CauseRIC_call_process_id_invalid = 9, - CauseRIC_unspecified = 10 - /* - * Enumeration is extensible - */ -} e_CauseRIC; - -/* CauseRIC */ -typedef long CauseRIC_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_CauseRIC_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_CauseRIC; -extern const asn_INTEGER_specifics_t asn_SPC_CauseRIC_specs_1; -asn_struct_free_f CauseRIC_free; -asn_struct_print_f CauseRIC_print; -asn_constr_check_f CauseRIC_constraint; -ber_type_decoder_f CauseRIC_decode_ber; -der_type_encoder_f CauseRIC_encode_der; -xer_type_decoder_f CauseRIC_decode_xer; -xer_type_encoder_f CauseRIC_encode_xer; -per_type_decoder_f CauseRIC_decode_uper; -per_type_encoder_f CauseRIC_encode_uper; -per_type_decoder_f CauseRIC_decode_aper; -per_type_encoder_f CauseRIC_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _CauseRIC_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ASN1c/CauseRICservice.c b/e2sim/previous/e2apv1sim/ASN1c/CauseRICservice.c deleted file mode 100644 index 6773fd4..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/CauseRICservice.c +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "CauseRICservice.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_CauseRICservice_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 2 } /* (0..2,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_CauseRICservice_value2enum_1[] = { - { 0, 21, "function-not-required" }, - { 1, 19, "excessive-functions" }, - { 2, 18, "ric-resource-limit" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_CauseRICservice_enum2value_1[] = { - 1, /* excessive-functions(1) */ - 0, /* function-not-required(0) */ - 2 /* ric-resource-limit(2) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_CauseRICservice_specs_1 = { - asn_MAP_CauseRICservice_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_CauseRICservice_enum2value_1, /* N => "tag"; sorted by N */ - 3, /* Number of elements in the maps */ - 4, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_CauseRICservice_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_CauseRICservice = { - "CauseRICservice", - "CauseRICservice", - &asn_OP_NativeEnumerated, - asn_DEF_CauseRICservice_tags_1, - sizeof(asn_DEF_CauseRICservice_tags_1) - /sizeof(asn_DEF_CauseRICservice_tags_1[0]), /* 1 */ - asn_DEF_CauseRICservice_tags_1, /* Same as above */ - sizeof(asn_DEF_CauseRICservice_tags_1) - /sizeof(asn_DEF_CauseRICservice_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_CauseRICservice_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_CauseRICservice_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/CauseRICservice.h b/e2sim/previous/e2apv1sim/ASN1c/CauseRICservice.h deleted file mode 100644 index 4270eb3..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/CauseRICservice.h +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _CauseRICservice_H_ -#define _CauseRICservice_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum CauseRICservice { - CauseRICservice_function_not_required = 0, - CauseRICservice_excessive_functions = 1, - CauseRICservice_ric_resource_limit = 2 - /* - * Enumeration is extensible - */ -} e_CauseRICservice; - -/* CauseRICservice */ -typedef long CauseRICservice_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_CauseRICservice_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_CauseRICservice; -extern const asn_INTEGER_specifics_t asn_SPC_CauseRICservice_specs_1; -asn_struct_free_f CauseRICservice_free; -asn_struct_print_f CauseRICservice_print; -asn_constr_check_f CauseRICservice_constraint; -ber_type_decoder_f CauseRICservice_decode_ber; -der_type_encoder_f CauseRICservice_encode_der; -xer_type_decoder_f CauseRICservice_decode_xer; -xer_type_encoder_f CauseRICservice_encode_xer; -per_type_decoder_f CauseRICservice_decode_uper; -per_type_encoder_f CauseRICservice_encode_uper; -per_type_decoder_f CauseRICservice_decode_aper; -per_type_encoder_f CauseRICservice_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _CauseRICservice_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ASN1c/CauseTransport.c b/e2sim/previous/e2apv1sim/ASN1c/CauseTransport.c deleted file mode 100644 index 08a317d..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/CauseTransport.c +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "CauseTransport.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_CauseTransport_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_CauseTransport_value2enum_1[] = { - { 0, 11, "unspecified" }, - { 1, 30, "transport-resource-unavailable" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_CauseTransport_enum2value_1[] = { - 1, /* transport-resource-unavailable(1) */ - 0 /* unspecified(0) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_CauseTransport_specs_1 = { - asn_MAP_CauseTransport_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_CauseTransport_enum2value_1, /* N => "tag"; sorted by N */ - 2, /* Number of elements in the maps */ - 3, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_CauseTransport_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_CauseTransport = { - "CauseTransport", - "CauseTransport", - &asn_OP_NativeEnumerated, - asn_DEF_CauseTransport_tags_1, - sizeof(asn_DEF_CauseTransport_tags_1) - /sizeof(asn_DEF_CauseTransport_tags_1[0]), /* 1 */ - asn_DEF_CauseTransport_tags_1, /* Same as above */ - sizeof(asn_DEF_CauseTransport_tags_1) - /sizeof(asn_DEF_CauseTransport_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_CauseTransport_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_CauseTransport_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/CauseTransport.h b/e2sim/previous/e2apv1sim/ASN1c/CauseTransport.h deleted file mode 100644 index f3fe969..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/CauseTransport.h +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _CauseTransport_H_ -#define _CauseTransport_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum CauseTransport { - CauseTransport_unspecified = 0, - CauseTransport_transport_resource_unavailable = 1 - /* - * Enumeration is extensible - */ -} e_CauseTransport; - -/* CauseTransport */ -typedef long CauseTransport_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_CauseTransport_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_CauseTransport; -extern const asn_INTEGER_specifics_t asn_SPC_CauseTransport_specs_1; -asn_struct_free_f CauseTransport_free; -asn_struct_print_f CauseTransport_print; -asn_constr_check_f CauseTransport_constraint; -ber_type_decoder_f CauseTransport_decode_ber; -der_type_encoder_f CauseTransport_encode_der; -xer_type_decoder_f CauseTransport_decode_xer; -xer_type_encoder_f CauseTransport_encode_xer; -per_type_decoder_f CauseTransport_decode_uper; -per_type_encoder_f CauseTransport_encode_uper; -per_type_decoder_f CauseTransport_decode_aper; -per_type_encoder_f CauseTransport_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _CauseTransport_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ASN1c/CellResourceReportListItem.c b/e2sim/previous/e2apv1sim/ASN1c/CellResourceReportListItem.c deleted file mode 100644 index 670d42a..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/CellResourceReportListItem.c +++ /dev/null @@ -1,227 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "CellResourceReportListItem.h" - -static int -memb_dl_TotalofAvailablePRBs_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 273)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_ul_TotalofAvailablePRBs_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 273)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_servedPlmnPerCellList_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - /* Determine the number of elements */ - size = _A_CSEQUENCE_FROM_VOID(sptr)->count; - - if((size >= 1 && size <= 12)) { - /* Perform validation of the inner elements */ - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_oer_constraints_t asn_OER_type_servedPlmnPerCellList_constr_5 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..12)) */}; -static asn_per_constraints_t asn_PER_type_servedPlmnPerCellList_constr_5 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 4, 4, 1, 12 } /* (SIZE(1..12)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_dl_TotalofAvailablePRBs_constr_3 CC_NOTUSED = { - { 2, 1 } /* (0..273) */, - -1}; -static asn_per_constraints_t asn_PER_memb_dl_TotalofAvailablePRBs_constr_3 CC_NOTUSED = { - { APC_CONSTRAINED, 9, 9, 0, 273 } /* (0..273) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_ul_TotalofAvailablePRBs_constr_4 CC_NOTUSED = { - { 2, 1 } /* (0..273) */, - -1}; -static asn_per_constraints_t asn_PER_memb_ul_TotalofAvailablePRBs_constr_4 CC_NOTUSED = { - { APC_CONSTRAINED, 9, 9, 0, 273 } /* (0..273) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_servedPlmnPerCellList_constr_5 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..12)) */}; -static asn_per_constraints_t asn_PER_memb_servedPlmnPerCellList_constr_5 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 4, 4, 1, 12 } /* (SIZE(1..12)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_servedPlmnPerCellList_5[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ServedPlmnPerCellListItem, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_servedPlmnPerCellList_tags_5[] = { - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_servedPlmnPerCellList_specs_5 = { - sizeof(struct CellResourceReportListItem__servedPlmnPerCellList), - offsetof(struct CellResourceReportListItem__servedPlmnPerCellList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_servedPlmnPerCellList_5 = { - "servedPlmnPerCellList", - "servedPlmnPerCellList", - &asn_OP_SEQUENCE_OF, - asn_DEF_servedPlmnPerCellList_tags_5, - sizeof(asn_DEF_servedPlmnPerCellList_tags_5) - /sizeof(asn_DEF_servedPlmnPerCellList_tags_5[0]) - 1, /* 1 */ - asn_DEF_servedPlmnPerCellList_tags_5, /* Same as above */ - sizeof(asn_DEF_servedPlmnPerCellList_tags_5) - /sizeof(asn_DEF_servedPlmnPerCellList_tags_5[0]), /* 2 */ - { &asn_OER_type_servedPlmnPerCellList_constr_5, &asn_PER_type_servedPlmnPerCellList_constr_5, SEQUENCE_OF_constraint }, - asn_MBR_servedPlmnPerCellList_5, - 1, /* Single element */ - &asn_SPC_servedPlmnPerCellList_specs_5 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_CellResourceReportListItem_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct CellResourceReportListItem, nRCGI), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NRCGI, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "nRCGI" - }, - { ATF_POINTER, 2, offsetof(struct CellResourceReportListItem, dl_TotalofAvailablePRBs), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_dl_TotalofAvailablePRBs_constr_3, &asn_PER_memb_dl_TotalofAvailablePRBs_constr_3, memb_dl_TotalofAvailablePRBs_constraint_1 }, - 0, 0, /* No default value */ - "dl-TotalofAvailablePRBs" - }, - { ATF_POINTER, 1, offsetof(struct CellResourceReportListItem, ul_TotalofAvailablePRBs), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_ul_TotalofAvailablePRBs_constr_4, &asn_PER_memb_ul_TotalofAvailablePRBs_constr_4, memb_ul_TotalofAvailablePRBs_constraint_1 }, - 0, 0, /* No default value */ - "ul-TotalofAvailablePRBs" - }, - { ATF_NOFLAGS, 0, offsetof(struct CellResourceReportListItem, servedPlmnPerCellList), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - 0, - &asn_DEF_servedPlmnPerCellList_5, - 0, - { &asn_OER_memb_servedPlmnPerCellList_constr_5, &asn_PER_memb_servedPlmnPerCellList_constr_5, memb_servedPlmnPerCellList_constraint_1 }, - 0, 0, /* No default value */ - "servedPlmnPerCellList" - }, -}; -static const int asn_MAP_CellResourceReportListItem_oms_1[] = { 1, 2 }; -static const ber_tlv_tag_t asn_DEF_CellResourceReportListItem_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_CellResourceReportListItem_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nRCGI */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* dl-TotalofAvailablePRBs */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* ul-TotalofAvailablePRBs */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* servedPlmnPerCellList */ -}; -asn_SEQUENCE_specifics_t asn_SPC_CellResourceReportListItem_specs_1 = { - sizeof(struct CellResourceReportListItem), - offsetof(struct CellResourceReportListItem, _asn_ctx), - asn_MAP_CellResourceReportListItem_tag2el_1, - 4, /* Count of tags in the map */ - asn_MAP_CellResourceReportListItem_oms_1, /* Optional members */ - 2, 0, /* Root/Additions */ - 4, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_CellResourceReportListItem = { - "CellResourceReportListItem", - "CellResourceReportListItem", - &asn_OP_SEQUENCE, - asn_DEF_CellResourceReportListItem_tags_1, - sizeof(asn_DEF_CellResourceReportListItem_tags_1) - /sizeof(asn_DEF_CellResourceReportListItem_tags_1[0]), /* 1 */ - asn_DEF_CellResourceReportListItem_tags_1, /* Same as above */ - sizeof(asn_DEF_CellResourceReportListItem_tags_1) - /sizeof(asn_DEF_CellResourceReportListItem_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_CellResourceReportListItem_1, - 4, /* Elements count */ - &asn_SPC_CellResourceReportListItem_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/CellResourceReportListItem.h b/e2sim/previous/e2apv1sim/ASN1c/CellResourceReportListItem.h deleted file mode 100644 index 91bbf71..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/CellResourceReportListItem.h +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _CellResourceReportListItem_H_ -#define _CellResourceReportListItem_H_ - - -#include - -/* Including external dependencies */ -#include "NRCGI.h" -#include -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ServedPlmnPerCellListItem; - -/* CellResourceReportListItem */ -typedef struct CellResourceReportListItem { - NRCGI_t nRCGI; - long *dl_TotalofAvailablePRBs; /* OPTIONAL */ - long *ul_TotalofAvailablePRBs; /* OPTIONAL */ - struct CellResourceReportListItem__servedPlmnPerCellList { - A_SEQUENCE_OF(struct ServedPlmnPerCellListItem) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } servedPlmnPerCellList; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} CellResourceReportListItem_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_CellResourceReportListItem; -extern asn_SEQUENCE_specifics_t asn_SPC_CellResourceReportListItem_specs_1; -extern asn_TYPE_member_t asn_MBR_CellResourceReportListItem_1[4]; - -#ifdef __cplusplus -} -#endif - -/* Referred external types */ -#include "ServedPlmnPerCellListItem.h" - -#endif /* _CellResourceReportListItem_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ASN1c/Criticality.c b/e2sim/previous/e2apv1sim/ASN1c/Criticality.c deleted file mode 100644 index 217d8e5..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/Criticality.c +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-CommonDataTypes" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "Criticality.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_Criticality_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_Criticality_value2enum_1[] = { - { 0, 6, "reject" }, - { 1, 6, "ignore" }, - { 2, 6, "notify" } -}; -static const unsigned int asn_MAP_Criticality_enum2value_1[] = { - 1, /* ignore(1) */ - 2, /* notify(2) */ - 0 /* reject(0) */ -}; -const asn_INTEGER_specifics_t asn_SPC_Criticality_specs_1 = { - asn_MAP_Criticality_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_Criticality_enum2value_1, /* N => "tag"; sorted by N */ - 3, /* Number of elements in the maps */ - 0, /* Enumeration is not extensible */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_Criticality_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_Criticality = { - "Criticality", - "Criticality", - &asn_OP_NativeEnumerated, - asn_DEF_Criticality_tags_1, - sizeof(asn_DEF_Criticality_tags_1) - /sizeof(asn_DEF_Criticality_tags_1[0]), /* 1 */ - asn_DEF_Criticality_tags_1, /* Same as above */ - sizeof(asn_DEF_Criticality_tags_1) - /sizeof(asn_DEF_Criticality_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_Criticality_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_Criticality_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/Criticality.h b/e2sim/previous/e2apv1sim/ASN1c/Criticality.h deleted file mode 100644 index ab1ecf2..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/Criticality.h +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-CommonDataTypes" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _Criticality_H_ -#define _Criticality_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum Criticality { - Criticality_reject = 0, - Criticality_ignore = 1, - Criticality_notify = 2 -} e_Criticality; - -/* Criticality */ -typedef long Criticality_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_Criticality_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_Criticality; -extern const asn_INTEGER_specifics_t asn_SPC_Criticality_specs_1; -asn_struct_free_f Criticality_free; -asn_struct_print_f Criticality_print; -asn_constr_check_f Criticality_constraint; -ber_type_decoder_f Criticality_decode_ber; -der_type_encoder_f Criticality_encode_der; -xer_type_decoder_f Criticality_decode_xer; -xer_type_encoder_f Criticality_encode_xer; -per_type_decoder_f Criticality_decode_uper; -per_type_encoder_f Criticality_encode_uper; -per_type_decoder_f Criticality_decode_aper; -per_type_encoder_f Criticality_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _Criticality_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ASN1c/CriticalityDiagnostics-IE-Item.c b/e2sim/previous/e2apv1sim/ASN1c/CriticalityDiagnostics-IE-Item.c deleted file mode 100644 index 0306093..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/CriticalityDiagnostics-IE-Item.c +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "CriticalityDiagnostics-IE-Item.h" - -asn_TYPE_member_t asn_MBR_CriticalityDiagnostics_IE_Item_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct CriticalityDiagnostics_IE_Item, iECriticality), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iECriticality" - }, - { ATF_NOFLAGS, 0, offsetof(struct CriticalityDiagnostics_IE_Item, iE_ID), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct CriticalityDiagnostics_IE_Item, typeOfError), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_TypeOfError, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "typeOfError" - }, -}; -static const ber_tlv_tag_t asn_DEF_CriticalityDiagnostics_IE_Item_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_CriticalityDiagnostics_IE_Item_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* iECriticality */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* iE-ID */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* typeOfError */ -}; -asn_SEQUENCE_specifics_t asn_SPC_CriticalityDiagnostics_IE_Item_specs_1 = { - sizeof(struct CriticalityDiagnostics_IE_Item), - offsetof(struct CriticalityDiagnostics_IE_Item, _asn_ctx), - asn_MAP_CriticalityDiagnostics_IE_Item_tag2el_1, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_CriticalityDiagnostics_IE_Item = { - "CriticalityDiagnostics-IE-Item", - "CriticalityDiagnostics-IE-Item", - &asn_OP_SEQUENCE, - asn_DEF_CriticalityDiagnostics_IE_Item_tags_1, - sizeof(asn_DEF_CriticalityDiagnostics_IE_Item_tags_1) - /sizeof(asn_DEF_CriticalityDiagnostics_IE_Item_tags_1[0]), /* 1 */ - asn_DEF_CriticalityDiagnostics_IE_Item_tags_1, /* Same as above */ - sizeof(asn_DEF_CriticalityDiagnostics_IE_Item_tags_1) - /sizeof(asn_DEF_CriticalityDiagnostics_IE_Item_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_CriticalityDiagnostics_IE_Item_1, - 3, /* Elements count */ - &asn_SPC_CriticalityDiagnostics_IE_Item_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/CriticalityDiagnostics-IE-Item.h b/e2sim/previous/e2apv1sim/ASN1c/CriticalityDiagnostics-IE-Item.h deleted file mode 100644 index 1222f03..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/CriticalityDiagnostics-IE-Item.h +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _CriticalityDiagnostics_IE_Item_H_ -#define _CriticalityDiagnostics_IE_Item_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "Criticality.h" -#include "ProtocolIE-ID.h" -#include "TypeOfError.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* CriticalityDiagnostics-IE-Item */ -typedef struct CriticalityDiagnostics_IE_Item { - Criticality_t iECriticality; - ProtocolIE_ID_t iE_ID; - TypeOfError_t typeOfError; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} CriticalityDiagnostics_IE_Item_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_CriticalityDiagnostics_IE_Item; -extern asn_SEQUENCE_specifics_t asn_SPC_CriticalityDiagnostics_IE_Item_specs_1; -extern asn_TYPE_member_t asn_MBR_CriticalityDiagnostics_IE_Item_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _CriticalityDiagnostics_IE_Item_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ASN1c/CriticalityDiagnostics-IE-List.c b/e2sim/previous/e2apv1sim/ASN1c/CriticalityDiagnostics-IE-List.c deleted file mode 100644 index 502517f..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/CriticalityDiagnostics-IE-List.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "CriticalityDiagnostics-IE-List.h" - -#include "CriticalityDiagnostics-IE-Item.h" -asn_per_constraints_t asn_PER_type_CriticalityDiagnostics_IE_List_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 8, 8, 1, 256 } /* (SIZE(1..256)) */, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_CriticalityDiagnostics_IE_List_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CriticalityDiagnostics_IE_Item, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_CriticalityDiagnostics_IE_List_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_CriticalityDiagnostics_IE_List_specs_1 = { - sizeof(struct CriticalityDiagnostics_IE_List), - offsetof(struct CriticalityDiagnostics_IE_List, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_CriticalityDiagnostics_IE_List = { - "CriticalityDiagnostics-IE-List", - "CriticalityDiagnostics-IE-List", - &asn_OP_SEQUENCE_OF, - asn_DEF_CriticalityDiagnostics_IE_List_tags_1, - sizeof(asn_DEF_CriticalityDiagnostics_IE_List_tags_1) - /sizeof(asn_DEF_CriticalityDiagnostics_IE_List_tags_1[0]), /* 1 */ - asn_DEF_CriticalityDiagnostics_IE_List_tags_1, /* Same as above */ - sizeof(asn_DEF_CriticalityDiagnostics_IE_List_tags_1) - /sizeof(asn_DEF_CriticalityDiagnostics_IE_List_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_CriticalityDiagnostics_IE_List_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_CriticalityDiagnostics_IE_List_1, - 1, /* Single element */ - &asn_SPC_CriticalityDiagnostics_IE_List_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/CriticalityDiagnostics-IE-List.h b/e2sim/previous/e2apv1sim/ASN1c/CriticalityDiagnostics-IE-List.h deleted file mode 100644 index 3f0d07b..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/CriticalityDiagnostics-IE-List.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _CriticalityDiagnostics_IE_List_H_ -#define _CriticalityDiagnostics_IE_List_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct CriticalityDiagnostics_IE_Item; - -/* CriticalityDiagnostics-IE-List */ -typedef struct CriticalityDiagnostics_IE_List { - A_SEQUENCE_OF(struct CriticalityDiagnostics_IE_Item) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} CriticalityDiagnostics_IE_List_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_CriticalityDiagnostics_IE_List; -extern asn_SET_OF_specifics_t asn_SPC_CriticalityDiagnostics_IE_List_specs_1; -extern asn_TYPE_member_t asn_MBR_CriticalityDiagnostics_IE_List_1[1]; -extern asn_per_constraints_t asn_PER_type_CriticalityDiagnostics_IE_List_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _CriticalityDiagnostics_IE_List_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ASN1c/CriticalityDiagnostics.c b/e2sim/previous/e2apv1sim/ASN1c/CriticalityDiagnostics.c deleted file mode 100644 index 825808b..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/CriticalityDiagnostics.c +++ /dev/null @@ -1,94 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "CriticalityDiagnostics.h" - -#include "RICrequestID.h" -#include "CriticalityDiagnostics-IE-List.h" -static asn_TYPE_member_t asn_MBR_CriticalityDiagnostics_1[] = { - { ATF_POINTER, 5, offsetof(struct CriticalityDiagnostics, procedureCode), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProcedureCode, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "procedureCode" - }, - { ATF_POINTER, 4, offsetof(struct CriticalityDiagnostics, triggeringMessage), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_TriggeringMessage, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "triggeringMessage" - }, - { ATF_POINTER, 3, offsetof(struct CriticalityDiagnostics, procedureCriticality), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "procedureCriticality" - }, - { ATF_POINTER, 2, offsetof(struct CriticalityDiagnostics, ricRequestorID), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RICrequestID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ricRequestorID" - }, - { ATF_POINTER, 1, offsetof(struct CriticalityDiagnostics, iEsCriticalityDiagnostics), - (ASN_TAG_CLASS_CONTEXT | (4 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_CriticalityDiagnostics_IE_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iEsCriticalityDiagnostics" - }, -}; -static const int asn_MAP_CriticalityDiagnostics_oms_1[] = { 0, 1, 2, 3, 4 }; -static const ber_tlv_tag_t asn_DEF_CriticalityDiagnostics_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_CriticalityDiagnostics_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* procedureCode */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* triggeringMessage */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* procedureCriticality */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* ricRequestorID */ - { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* iEsCriticalityDiagnostics */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_CriticalityDiagnostics_specs_1 = { - sizeof(struct CriticalityDiagnostics), - offsetof(struct CriticalityDiagnostics, _asn_ctx), - asn_MAP_CriticalityDiagnostics_tag2el_1, - 5, /* Count of tags in the map */ - asn_MAP_CriticalityDiagnostics_oms_1, /* Optional members */ - 5, 0, /* Root/Additions */ - 5, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_CriticalityDiagnostics = { - "CriticalityDiagnostics", - "CriticalityDiagnostics", - &asn_OP_SEQUENCE, - asn_DEF_CriticalityDiagnostics_tags_1, - sizeof(asn_DEF_CriticalityDiagnostics_tags_1) - /sizeof(asn_DEF_CriticalityDiagnostics_tags_1[0]), /* 1 */ - asn_DEF_CriticalityDiagnostics_tags_1, /* Same as above */ - sizeof(asn_DEF_CriticalityDiagnostics_tags_1) - /sizeof(asn_DEF_CriticalityDiagnostics_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_CriticalityDiagnostics_1, - 5, /* Elements count */ - &asn_SPC_CriticalityDiagnostics_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/CriticalityDiagnostics.h b/e2sim/previous/e2apv1sim/ASN1c/CriticalityDiagnostics.h deleted file mode 100644 index 9cef6bf..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/CriticalityDiagnostics.h +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _CriticalityDiagnostics_H_ -#define _CriticalityDiagnostics_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProcedureCode.h" -#include "TriggeringMessage.h" -#include "Criticality.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct RICrequestID; -struct CriticalityDiagnostics_IE_List; - -/* CriticalityDiagnostics */ -typedef struct CriticalityDiagnostics { - ProcedureCode_t *procedureCode; /* OPTIONAL */ - TriggeringMessage_t *triggeringMessage; /* OPTIONAL */ - Criticality_t *procedureCriticality; /* OPTIONAL */ - struct RICrequestID *ricRequestorID; /* OPTIONAL */ - struct CriticalityDiagnostics_IE_List *iEsCriticalityDiagnostics; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} CriticalityDiagnostics_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_CriticalityDiagnostics; - -#ifdef __cplusplus -} -#endif - -#endif /* _CriticalityDiagnostics_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ASN1c/DU-Usage-Report-CellResourceReportItem.c b/e2sim/previous/e2apv1sim/ASN1c/DU-Usage-Report-CellResourceReportItem.c deleted file mode 100644 index eee9621..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/DU-Usage-Report-CellResourceReportItem.c +++ /dev/null @@ -1,139 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "DU-Usage-Report-CellResourceReportItem.h" - -static int -memb_ueResourceReportList_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - /* Determine the number of elements */ - size = _A_CSEQUENCE_FROM_VOID(sptr)->count; - - if((size >= 1 && size <= 32)) { - /* Perform validation of the inner elements */ - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_oer_constraints_t asn_OER_type_ueResourceReportList_constr_3 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..32)) */}; -static asn_per_constraints_t asn_PER_type_ueResourceReportList_constr_3 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_ueResourceReportList_constr_3 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..32)) */}; -static asn_per_constraints_t asn_PER_memb_ueResourceReportList_constr_3 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_ueResourceReportList_3[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_DU_Usage_Report_UeResourceReportItem, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ueResourceReportList_tags_3[] = { - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_ueResourceReportList_specs_3 = { - sizeof(struct DU_Usage_Report_CellResourceReportItem__ueResourceReportList), - offsetof(struct DU_Usage_Report_CellResourceReportItem__ueResourceReportList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_ueResourceReportList_3 = { - "ueResourceReportList", - "ueResourceReportList", - &asn_OP_SEQUENCE_OF, - asn_DEF_ueResourceReportList_tags_3, - sizeof(asn_DEF_ueResourceReportList_tags_3) - /sizeof(asn_DEF_ueResourceReportList_tags_3[0]) - 1, /* 1 */ - asn_DEF_ueResourceReportList_tags_3, /* Same as above */ - sizeof(asn_DEF_ueResourceReportList_tags_3) - /sizeof(asn_DEF_ueResourceReportList_tags_3[0]), /* 2 */ - { &asn_OER_type_ueResourceReportList_constr_3, &asn_PER_type_ueResourceReportList_constr_3, SEQUENCE_OF_constraint }, - asn_MBR_ueResourceReportList_3, - 1, /* Single element */ - &asn_SPC_ueResourceReportList_specs_3 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_DU_Usage_Report_CellResourceReportItem_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct DU_Usage_Report_CellResourceReportItem, nRCGI), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NRCGI, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "nRCGI" - }, - { ATF_NOFLAGS, 0, offsetof(struct DU_Usage_Report_CellResourceReportItem, ueResourceReportList), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - 0, - &asn_DEF_ueResourceReportList_3, - 0, - { &asn_OER_memb_ueResourceReportList_constr_3, &asn_PER_memb_ueResourceReportList_constr_3, memb_ueResourceReportList_constraint_1 }, - 0, 0, /* No default value */ - "ueResourceReportList" - }, -}; -static const ber_tlv_tag_t asn_DEF_DU_Usage_Report_CellResourceReportItem_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_DU_Usage_Report_CellResourceReportItem_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nRCGI */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ueResourceReportList */ -}; -asn_SEQUENCE_specifics_t asn_SPC_DU_Usage_Report_CellResourceReportItem_specs_1 = { - sizeof(struct DU_Usage_Report_CellResourceReportItem), - offsetof(struct DU_Usage_Report_CellResourceReportItem, _asn_ctx), - asn_MAP_DU_Usage_Report_CellResourceReportItem_tag2el_1, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 2, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_DU_Usage_Report_CellResourceReportItem = { - "DU-Usage-Report-CellResourceReportItem", - "DU-Usage-Report-CellResourceReportItem", - &asn_OP_SEQUENCE, - asn_DEF_DU_Usage_Report_CellResourceReportItem_tags_1, - sizeof(asn_DEF_DU_Usage_Report_CellResourceReportItem_tags_1) - /sizeof(asn_DEF_DU_Usage_Report_CellResourceReportItem_tags_1[0]), /* 1 */ - asn_DEF_DU_Usage_Report_CellResourceReportItem_tags_1, /* Same as above */ - sizeof(asn_DEF_DU_Usage_Report_CellResourceReportItem_tags_1) - /sizeof(asn_DEF_DU_Usage_Report_CellResourceReportItem_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_DU_Usage_Report_CellResourceReportItem_1, - 2, /* Elements count */ - &asn_SPC_DU_Usage_Report_CellResourceReportItem_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/DU-Usage-Report-CellResourceReportItem.h b/e2sim/previous/e2apv1sim/ASN1c/DU-Usage-Report-CellResourceReportItem.h deleted file mode 100644 index 4a72572..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/DU-Usage-Report-CellResourceReportItem.h +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _DU_Usage_Report_CellResourceReportItem_H_ -#define _DU_Usage_Report_CellResourceReportItem_H_ - - -#include - -/* Including external dependencies */ -#include "NRCGI.h" -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct DU_Usage_Report_UeResourceReportItem; - -/* DU-Usage-Report-CellResourceReportItem */ -typedef struct DU_Usage_Report_CellResourceReportItem { - NRCGI_t nRCGI; - struct DU_Usage_Report_CellResourceReportItem__ueResourceReportList { - A_SEQUENCE_OF(struct DU_Usage_Report_UeResourceReportItem) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } ueResourceReportList; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} DU_Usage_Report_CellResourceReportItem_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_DU_Usage_Report_CellResourceReportItem; -extern asn_SEQUENCE_specifics_t asn_SPC_DU_Usage_Report_CellResourceReportItem_specs_1; -extern asn_TYPE_member_t asn_MBR_DU_Usage_Report_CellResourceReportItem_1[2]; - -#ifdef __cplusplus -} -#endif - -/* Referred external types */ -#include "DU-Usage-Report-UeResourceReportItem.h" - -#endif /* _DU_Usage_Report_CellResourceReportItem_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ASN1c/DU-Usage-Report-Per-UE.c b/e2sim/previous/e2apv1sim/ASN1c/DU-Usage-Report-Per-UE.c deleted file mode 100644 index 9ba13af..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/DU-Usage-Report-Per-UE.c +++ /dev/null @@ -1,129 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "DU-Usage-Report-Per-UE.h" - -static int -memb_cellResourceReportList_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - /* Determine the number of elements */ - size = _A_CSEQUENCE_FROM_VOID(sptr)->count; - - if((size >= 1 && size <= 512)) { - /* Perform validation of the inner elements */ - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_oer_constraints_t asn_OER_type_cellResourceReportList_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..512)) */}; -static asn_per_constraints_t asn_PER_type_cellResourceReportList_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 9, 9, 1, 512 } /* (SIZE(1..512)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_cellResourceReportList_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..512)) */}; -static asn_per_constraints_t asn_PER_memb_cellResourceReportList_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 9, 9, 1, 512 } /* (SIZE(1..512)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_cellResourceReportList_2[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_DU_Usage_Report_CellResourceReportItem, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_cellResourceReportList_tags_2[] = { - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_cellResourceReportList_specs_2 = { - sizeof(struct DU_Usage_Report_Per_UE__cellResourceReportList), - offsetof(struct DU_Usage_Report_Per_UE__cellResourceReportList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_cellResourceReportList_2 = { - "cellResourceReportList", - "cellResourceReportList", - &asn_OP_SEQUENCE_OF, - asn_DEF_cellResourceReportList_tags_2, - sizeof(asn_DEF_cellResourceReportList_tags_2) - /sizeof(asn_DEF_cellResourceReportList_tags_2[0]) - 1, /* 1 */ - asn_DEF_cellResourceReportList_tags_2, /* Same as above */ - sizeof(asn_DEF_cellResourceReportList_tags_2) - /sizeof(asn_DEF_cellResourceReportList_tags_2[0]), /* 2 */ - { &asn_OER_type_cellResourceReportList_constr_2, &asn_PER_type_cellResourceReportList_constr_2, SEQUENCE_OF_constraint }, - asn_MBR_cellResourceReportList_2, - 1, /* Single element */ - &asn_SPC_cellResourceReportList_specs_2 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_DU_Usage_Report_Per_UE_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct DU_Usage_Report_Per_UE, cellResourceReportList), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - 0, - &asn_DEF_cellResourceReportList_2, - 0, - { &asn_OER_memb_cellResourceReportList_constr_2, &asn_PER_memb_cellResourceReportList_constr_2, memb_cellResourceReportList_constraint_1 }, - 0, 0, /* No default value */ - "cellResourceReportList" - }, -}; -static const ber_tlv_tag_t asn_DEF_DU_Usage_Report_Per_UE_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_DU_Usage_Report_Per_UE_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* cellResourceReportList */ -}; -asn_SEQUENCE_specifics_t asn_SPC_DU_Usage_Report_Per_UE_specs_1 = { - sizeof(struct DU_Usage_Report_Per_UE), - offsetof(struct DU_Usage_Report_Per_UE, _asn_ctx), - asn_MAP_DU_Usage_Report_Per_UE_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_DU_Usage_Report_Per_UE = { - "DU-Usage-Report-Per-UE", - "DU-Usage-Report-Per-UE", - &asn_OP_SEQUENCE, - asn_DEF_DU_Usage_Report_Per_UE_tags_1, - sizeof(asn_DEF_DU_Usage_Report_Per_UE_tags_1) - /sizeof(asn_DEF_DU_Usage_Report_Per_UE_tags_1[0]), /* 1 */ - asn_DEF_DU_Usage_Report_Per_UE_tags_1, /* Same as above */ - sizeof(asn_DEF_DU_Usage_Report_Per_UE_tags_1) - /sizeof(asn_DEF_DU_Usage_Report_Per_UE_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_DU_Usage_Report_Per_UE_1, - 1, /* Elements count */ - &asn_SPC_DU_Usage_Report_Per_UE_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/DU-Usage-Report-Per-UE.h b/e2sim/previous/e2apv1sim/ASN1c/DU-Usage-Report-Per-UE.h deleted file mode 100644 index 2fc44d1..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/DU-Usage-Report-Per-UE.h +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _DU_Usage_Report_Per_UE_H_ -#define _DU_Usage_Report_Per_UE_H_ - - -#include - -/* Including external dependencies */ -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct DU_Usage_Report_CellResourceReportItem; - -/* DU-Usage-Report-Per-UE */ -typedef struct DU_Usage_Report_Per_UE { - struct DU_Usage_Report_Per_UE__cellResourceReportList { - A_SEQUENCE_OF(struct DU_Usage_Report_CellResourceReportItem) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } cellResourceReportList; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} DU_Usage_Report_Per_UE_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_DU_Usage_Report_Per_UE; -extern asn_SEQUENCE_specifics_t asn_SPC_DU_Usage_Report_Per_UE_specs_1; -extern asn_TYPE_member_t asn_MBR_DU_Usage_Report_Per_UE_1[1]; - -#ifdef __cplusplus -} -#endif - -/* Referred external types */ -#include "DU-Usage-Report-CellResourceReportItem.h" - -#endif /* _DU_Usage_Report_Per_UE_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ASN1c/DU-Usage-Report-UeResourceReportItem.c b/e2sim/previous/e2apv1sim/ASN1c/DU-Usage-Report-UeResourceReportItem.c deleted file mode 100644 index 0bcafbe..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/DU-Usage-Report-UeResourceReportItem.c +++ /dev/null @@ -1,138 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "DU-Usage-Report-UeResourceReportItem.h" - -static int -memb_dl_PRBUsage_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 1000000000)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_ul_PRBUsage_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 1000000000)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_oer_constraints_t asn_OER_memb_dl_PRBUsage_constr_3 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_memb_dl_PRBUsage_constr_3 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 30, -1, 0, 1000000000 } /* (0..1000000000,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_ul_PRBUsage_constr_4 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_memb_ul_PRBUsage_constr_4 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 30, -1, 0, 1000000000 } /* (0..1000000000,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_DU_Usage_Report_UeResourceReportItem_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct DU_Usage_Report_UeResourceReportItem, c_RNTI), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_C_RNTI, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "c-RNTI" - }, - { ATF_POINTER, 2, offsetof(struct DU_Usage_Report_UeResourceReportItem, dl_PRBUsage), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_dl_PRBUsage_constr_3, &asn_PER_memb_dl_PRBUsage_constr_3, memb_dl_PRBUsage_constraint_1 }, - 0, 0, /* No default value */ - "dl-PRBUsage" - }, - { ATF_POINTER, 1, offsetof(struct DU_Usage_Report_UeResourceReportItem, ul_PRBUsage), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_ul_PRBUsage_constr_4, &asn_PER_memb_ul_PRBUsage_constr_4, memb_ul_PRBUsage_constraint_1 }, - 0, 0, /* No default value */ - "ul-PRBUsage" - }, -}; -static const int asn_MAP_DU_Usage_Report_UeResourceReportItem_oms_1[] = { 1, 2 }; -static const ber_tlv_tag_t asn_DEF_DU_Usage_Report_UeResourceReportItem_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_DU_Usage_Report_UeResourceReportItem_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* c-RNTI */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* dl-PRBUsage */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* ul-PRBUsage */ -}; -asn_SEQUENCE_specifics_t asn_SPC_DU_Usage_Report_UeResourceReportItem_specs_1 = { - sizeof(struct DU_Usage_Report_UeResourceReportItem), - offsetof(struct DU_Usage_Report_UeResourceReportItem, _asn_ctx), - asn_MAP_DU_Usage_Report_UeResourceReportItem_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_DU_Usage_Report_UeResourceReportItem_oms_1, /* Optional members */ - 2, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_DU_Usage_Report_UeResourceReportItem = { - "DU-Usage-Report-UeResourceReportItem", - "DU-Usage-Report-UeResourceReportItem", - &asn_OP_SEQUENCE, - asn_DEF_DU_Usage_Report_UeResourceReportItem_tags_1, - sizeof(asn_DEF_DU_Usage_Report_UeResourceReportItem_tags_1) - /sizeof(asn_DEF_DU_Usage_Report_UeResourceReportItem_tags_1[0]), /* 1 */ - asn_DEF_DU_Usage_Report_UeResourceReportItem_tags_1, /* Same as above */ - sizeof(asn_DEF_DU_Usage_Report_UeResourceReportItem_tags_1) - /sizeof(asn_DEF_DU_Usage_Report_UeResourceReportItem_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_DU_Usage_Report_UeResourceReportItem_1, - 3, /* Elements count */ - &asn_SPC_DU_Usage_Report_UeResourceReportItem_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/DU-Usage-Report-UeResourceReportItem.h b/e2sim/previous/e2apv1sim/ASN1c/DU-Usage-Report-UeResourceReportItem.h deleted file mode 100644 index e860272..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/DU-Usage-Report-UeResourceReportItem.h +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _DU_Usage_Report_UeResourceReportItem_H_ -#define _DU_Usage_Report_UeResourceReportItem_H_ - - -#include - -/* Including external dependencies */ -#include "C-RNTI.h" -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* DU-Usage-Report-UeResourceReportItem */ -typedef struct DU_Usage_Report_UeResourceReportItem { - C_RNTI_t c_RNTI; - long *dl_PRBUsage; /* OPTIONAL */ - long *ul_PRBUsage; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} DU_Usage_Report_UeResourceReportItem_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_DU_Usage_Report_UeResourceReportItem; -extern asn_SEQUENCE_specifics_t asn_SPC_DU_Usage_Report_UeResourceReportItem_specs_1; -extern asn_TYPE_member_t asn_MBR_DU_Usage_Report_UeResourceReportItem_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _DU_Usage_Report_UeResourceReportItem_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ASN1c/E2AP-PDU.c b/e2sim/previous/e2apv1sim/ASN1c/E2AP-PDU.c deleted file mode 100644 index 94650be..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/E2AP-PDU.c +++ /dev/null @@ -1,75 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Descriptions" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "E2AP-PDU.h" - -#include "InitiatingMessage.h" -#include "SuccessfulOutcome.h" -#include "UnsuccessfulOutcome.h" -static asn_per_constraints_t asn_PER_type_E2AP_PDU_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 2 } /* (0..2,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_E2AP_PDU_1[] = { - { ATF_POINTER, 0, offsetof(struct E2AP_PDU, choice.initiatingMessage), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_InitiatingMessage, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "initiatingMessage" - }, - { ATF_POINTER, 0, offsetof(struct E2AP_PDU, choice.successfulOutcome), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_SuccessfulOutcome, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "successfulOutcome" - }, - { ATF_POINTER, 0, offsetof(struct E2AP_PDU, choice.unsuccessfulOutcome), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_UnsuccessfulOutcome, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "unsuccessfulOutcome" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_E2AP_PDU_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* initiatingMessage */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* successfulOutcome */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* unsuccessfulOutcome */ -}; -static asn_CHOICE_specifics_t asn_SPC_E2AP_PDU_specs_1 = { - sizeof(struct E2AP_PDU), - offsetof(struct E2AP_PDU, _asn_ctx), - offsetof(struct E2AP_PDU, present), - sizeof(((struct E2AP_PDU *)0)->present), - asn_MAP_E2AP_PDU_tag2el_1, - 3, /* Count of tags in the map */ - 0, 0, - 3 /* Extensions start */ -}; -asn_TYPE_descriptor_t asn_DEF_E2AP_PDU = { - "E2AP-PDU", - "E2AP-PDU", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, &asn_PER_type_E2AP_PDU_constr_1, CHOICE_constraint }, - asn_MBR_E2AP_PDU_1, - 3, /* Elements count */ - &asn_SPC_E2AP_PDU_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/E2AP-PDU.h b/e2sim/previous/e2apv1sim/ASN1c/E2AP-PDU.h deleted file mode 100644 index 6f3f1c8..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/E2AP-PDU.h +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Descriptions" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _E2AP_PDU_H_ -#define _E2AP_PDU_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "constr_CHOICE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum E2AP_PDU_PR { - E2AP_PDU_PR_NOTHING, /* No components present */ - E2AP_PDU_PR_initiatingMessage, - E2AP_PDU_PR_successfulOutcome, - E2AP_PDU_PR_unsuccessfulOutcome - /* Extensions may appear below */ - -} E2AP_PDU_PR; - -/* Forward declarations */ -struct InitiatingMessage; -struct SuccessfulOutcome; -struct UnsuccessfulOutcome; - -/* E2AP-PDU */ -typedef struct E2AP_PDU { - E2AP_PDU_PR present; - union E2AP_PDU_u { - struct InitiatingMessage *initiatingMessage; - struct SuccessfulOutcome *successfulOutcome; - struct UnsuccessfulOutcome *unsuccessfulOutcome; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E2AP_PDU_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E2AP_PDU; - -#ifdef __cplusplus -} -#endif - -#endif /* _E2AP_PDU_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ASN1c/E2SM-KPM-ActionDefinition.c b/e2sim/previous/e2apv1sim/ASN1c/E2SM-KPM-ActionDefinition.c deleted file mode 100644 index abdf25d..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/E2SM-KPM-ActionDefinition.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "E2SM-KPM-ActionDefinition.h" - -static asn_TYPE_member_t asn_MBR_E2SM_KPM_ActionDefinition_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct E2SM_KPM_ActionDefinition, ric_Style_Type), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RIC_Style_Type, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ric-Style-Type" - }, -}; -static const ber_tlv_tag_t asn_DEF_E2SM_KPM_ActionDefinition_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E2SM_KPM_ActionDefinition_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* ric-Style-Type */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_E2SM_KPM_ActionDefinition_specs_1 = { - sizeof(struct E2SM_KPM_ActionDefinition), - offsetof(struct E2SM_KPM_ActionDefinition, _asn_ctx), - asn_MAP_E2SM_KPM_ActionDefinition_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E2SM_KPM_ActionDefinition = { - "E2SM-KPM-ActionDefinition", - "E2SM-KPM-ActionDefinition", - &asn_OP_SEQUENCE, - asn_DEF_E2SM_KPM_ActionDefinition_tags_1, - sizeof(asn_DEF_E2SM_KPM_ActionDefinition_tags_1) - /sizeof(asn_DEF_E2SM_KPM_ActionDefinition_tags_1[0]), /* 1 */ - asn_DEF_E2SM_KPM_ActionDefinition_tags_1, /* Same as above */ - sizeof(asn_DEF_E2SM_KPM_ActionDefinition_tags_1) - /sizeof(asn_DEF_E2SM_KPM_ActionDefinition_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E2SM_KPM_ActionDefinition_1, - 1, /* Elements count */ - &asn_SPC_E2SM_KPM_ActionDefinition_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/E2SM-KPM-ActionDefinition.h b/e2sim/previous/e2apv1sim/ASN1c/E2SM-KPM-ActionDefinition.h deleted file mode 100644 index 70b81dd..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/E2SM-KPM-ActionDefinition.h +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _E2SM_KPM_ActionDefinition_H_ -#define _E2SM_KPM_ActionDefinition_H_ - - -#include - -/* Including external dependencies */ -#include "RIC-Style-Type.h" -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* E2SM-KPM-ActionDefinition */ -typedef struct E2SM_KPM_ActionDefinition { - RIC_Style_Type_t ric_Style_Type; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E2SM_KPM_ActionDefinition_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E2SM_KPM_ActionDefinition; - -#ifdef __cplusplus -} -#endif - -#endif /* _E2SM_KPM_ActionDefinition_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ASN1c/E2SM-KPM-EventTriggerDefinition-Format1.c b/e2sim/previous/e2apv1sim/ASN1c/E2SM-KPM-EventTriggerDefinition-Format1.c deleted file mode 100644 index e0b48f2..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/E2SM-KPM-EventTriggerDefinition-Format1.c +++ /dev/null @@ -1,131 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "E2SM-KPM-EventTriggerDefinition-Format1.h" - -static int -memb_policyTest_List_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - /* Determine the number of elements */ - size = _A_CSEQUENCE_FROM_VOID(sptr)->count; - - if((size >= 1 && size <= 15)) { - /* Perform validation of the inner elements */ - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_oer_constraints_t asn_OER_type_policyTest_List_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..15)) */}; -static asn_per_constraints_t asn_PER_type_policyTest_List_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 4, 4, 1, 15 } /* (SIZE(1..15)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_policyTest_List_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..15)) */}; -static asn_per_constraints_t asn_PER_memb_policyTest_List_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 4, 4, 1, 15 } /* (SIZE(1..15)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_policyTest_List_2[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_Trigger_ConditionIE_Item, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_policyTest_List_tags_2[] = { - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_policyTest_List_specs_2 = { - sizeof(struct E2SM_KPM_EventTriggerDefinition_Format1__policyTest_List), - offsetof(struct E2SM_KPM_EventTriggerDefinition_Format1__policyTest_List, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_policyTest_List_2 = { - "policyTest-List", - "policyTest-List", - &asn_OP_SEQUENCE_OF, - asn_DEF_policyTest_List_tags_2, - sizeof(asn_DEF_policyTest_List_tags_2) - /sizeof(asn_DEF_policyTest_List_tags_2[0]) - 1, /* 1 */ - asn_DEF_policyTest_List_tags_2, /* Same as above */ - sizeof(asn_DEF_policyTest_List_tags_2) - /sizeof(asn_DEF_policyTest_List_tags_2[0]), /* 2 */ - { &asn_OER_type_policyTest_List_constr_2, &asn_PER_type_policyTest_List_constr_2, SEQUENCE_OF_constraint }, - asn_MBR_policyTest_List_2, - 1, /* Single element */ - &asn_SPC_policyTest_List_specs_2 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E2SM_KPM_EventTriggerDefinition_Format1_1[] = { - { ATF_POINTER, 1, offsetof(struct E2SM_KPM_EventTriggerDefinition_Format1, policyTest_List), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - 0, - &asn_DEF_policyTest_List_2, - 0, - { &asn_OER_memb_policyTest_List_constr_2, &asn_PER_memb_policyTest_List_constr_2, memb_policyTest_List_constraint_1 }, - 0, 0, /* No default value */ - "policyTest-List" - }, -}; -static const int asn_MAP_E2SM_KPM_EventTriggerDefinition_Format1_oms_1[] = { 0 }; -static const ber_tlv_tag_t asn_DEF_E2SM_KPM_EventTriggerDefinition_Format1_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E2SM_KPM_EventTriggerDefinition_Format1_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* policyTest-List */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E2SM_KPM_EventTriggerDefinition_Format1_specs_1 = { - sizeof(struct E2SM_KPM_EventTriggerDefinition_Format1), - offsetof(struct E2SM_KPM_EventTriggerDefinition_Format1, _asn_ctx), - asn_MAP_E2SM_KPM_EventTriggerDefinition_Format1_tag2el_1, - 1, /* Count of tags in the map */ - asn_MAP_E2SM_KPM_EventTriggerDefinition_Format1_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E2SM_KPM_EventTriggerDefinition_Format1 = { - "E2SM-KPM-EventTriggerDefinition-Format1", - "E2SM-KPM-EventTriggerDefinition-Format1", - &asn_OP_SEQUENCE, - asn_DEF_E2SM_KPM_EventTriggerDefinition_Format1_tags_1, - sizeof(asn_DEF_E2SM_KPM_EventTriggerDefinition_Format1_tags_1) - /sizeof(asn_DEF_E2SM_KPM_EventTriggerDefinition_Format1_tags_1[0]), /* 1 */ - asn_DEF_E2SM_KPM_EventTriggerDefinition_Format1_tags_1, /* Same as above */ - sizeof(asn_DEF_E2SM_KPM_EventTriggerDefinition_Format1_tags_1) - /sizeof(asn_DEF_E2SM_KPM_EventTriggerDefinition_Format1_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E2SM_KPM_EventTriggerDefinition_Format1_1, - 1, /* Elements count */ - &asn_SPC_E2SM_KPM_EventTriggerDefinition_Format1_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/E2SM-KPM-EventTriggerDefinition-Format1.h b/e2sim/previous/e2apv1sim/ASN1c/E2SM-KPM-EventTriggerDefinition-Format1.h deleted file mode 100644 index 44cbd92..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/E2SM-KPM-EventTriggerDefinition-Format1.h +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _E2SM_KPM_EventTriggerDefinition_Format1_H_ -#define _E2SM_KPM_EventTriggerDefinition_Format1_H_ - - -#include - -/* Including external dependencies */ -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct Trigger_ConditionIE_Item; - -/* E2SM-KPM-EventTriggerDefinition-Format1 */ -typedef struct E2SM_KPM_EventTriggerDefinition_Format1 { - struct E2SM_KPM_EventTriggerDefinition_Format1__policyTest_List { - A_SEQUENCE_OF(struct Trigger_ConditionIE_Item) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } *policyTest_List; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E2SM_KPM_EventTriggerDefinition_Format1_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E2SM_KPM_EventTriggerDefinition_Format1; -extern asn_SEQUENCE_specifics_t asn_SPC_E2SM_KPM_EventTriggerDefinition_Format1_specs_1; -extern asn_TYPE_member_t asn_MBR_E2SM_KPM_EventTriggerDefinition_Format1_1[1]; - -#ifdef __cplusplus -} -#endif - -/* Referred external types */ -#include "Trigger-ConditionIE-Item.h" - -#endif /* _E2SM_KPM_EventTriggerDefinition_Format1_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ASN1c/E2SM-KPM-EventTriggerDefinition.c b/e2sim/previous/e2apv1sim/ASN1c/E2SM-KPM-EventTriggerDefinition.c deleted file mode 100644 index 482e42c..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/E2SM-KPM-EventTriggerDefinition.c +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "E2SM-KPM-EventTriggerDefinition.h" - -static asn_oer_constraints_t asn_OER_type_E2SM_KPM_EventTriggerDefinition_constr_1 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_type_E2SM_KPM_EventTriggerDefinition_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 0, 0 } /* (0..0,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_E2SM_KPM_EventTriggerDefinition_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct E2SM_KPM_EventTriggerDefinition, choice.eventDefinition_Format1), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E2SM_KPM_EventTriggerDefinition_Format1, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "eventDefinition-Format1" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_E2SM_KPM_EventTriggerDefinition_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* eventDefinition-Format1 */ -}; -static asn_CHOICE_specifics_t asn_SPC_E2SM_KPM_EventTriggerDefinition_specs_1 = { - sizeof(struct E2SM_KPM_EventTriggerDefinition), - offsetof(struct E2SM_KPM_EventTriggerDefinition, _asn_ctx), - offsetof(struct E2SM_KPM_EventTriggerDefinition, present), - sizeof(((struct E2SM_KPM_EventTriggerDefinition *)0)->present), - asn_MAP_E2SM_KPM_EventTriggerDefinition_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, - 1 /* Extensions start */ -}; -asn_TYPE_descriptor_t asn_DEF_E2SM_KPM_EventTriggerDefinition = { - "E2SM-KPM-EventTriggerDefinition", - "E2SM-KPM-EventTriggerDefinition", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { &asn_OER_type_E2SM_KPM_EventTriggerDefinition_constr_1, &asn_PER_type_E2SM_KPM_EventTriggerDefinition_constr_1, CHOICE_constraint }, - asn_MBR_E2SM_KPM_EventTriggerDefinition_1, - 1, /* Elements count */ - &asn_SPC_E2SM_KPM_EventTriggerDefinition_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/E2SM-KPM-EventTriggerDefinition.h b/e2sim/previous/e2apv1sim/ASN1c/E2SM-KPM-EventTriggerDefinition.h deleted file mode 100644 index e96e600..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/E2SM-KPM-EventTriggerDefinition.h +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _E2SM_KPM_EventTriggerDefinition_H_ -#define _E2SM_KPM_EventTriggerDefinition_H_ - - -#include - -/* Including external dependencies */ -#include "E2SM-KPM-EventTriggerDefinition-Format1.h" -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum E2SM_KPM_EventTriggerDefinition_PR { - E2SM_KPM_EventTriggerDefinition_PR_NOTHING, /* No components present */ - E2SM_KPM_EventTriggerDefinition_PR_eventDefinition_Format1 - /* Extensions may appear below */ - -} E2SM_KPM_EventTriggerDefinition_PR; - -/* E2SM-KPM-EventTriggerDefinition */ -typedef struct E2SM_KPM_EventTriggerDefinition { - E2SM_KPM_EventTriggerDefinition_PR present; - union E2SM_KPM_EventTriggerDefinition_u { - E2SM_KPM_EventTriggerDefinition_Format1_t eventDefinition_Format1; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E2SM_KPM_EventTriggerDefinition_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E2SM_KPM_EventTriggerDefinition; - -#ifdef __cplusplus -} -#endif - -#endif /* _E2SM_KPM_EventTriggerDefinition_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ASN1c/E2SM-KPM-IndicationHeader-Format1.c b/e2sim/previous/e2apv1sim/ASN1c/E2SM-KPM-IndicationHeader-Format1.c deleted file mode 100644 index 2cccf8b..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/E2SM-KPM-IndicationHeader-Format1.c +++ /dev/null @@ -1,208 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "E2SM-KPM-IndicationHeader-Format1.h" - -static int -memb_fiveQI_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 255)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_qci_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 255)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_oer_constraints_t asn_OER_memb_fiveQI_constr_6 CC_NOTUSED = { - { 1, 1 } /* (0..255) */, - -1}; -static asn_per_constraints_t asn_PER_memb_fiveQI_constr_6 CC_NOTUSED = { - { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_qci_constr_7 CC_NOTUSED = { - { 1, 1 } /* (0..255) */, - -1}; -static asn_per_constraints_t asn_PER_memb_qci_constr_7 CC_NOTUSED = { - { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_E2SM_KPM_IndicationHeader_Format1_1[] = { - { ATF_POINTER, 10, offsetof(struct E2SM_KPM_IndicationHeader_Format1, id_GlobalKPMnode_ID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_GlobalKPMnode_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "id-GlobalKPMnode-ID" - }, - { ATF_POINTER, 9, offsetof(struct E2SM_KPM_IndicationHeader_Format1, nRCGI), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NRCGI, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "nRCGI" - }, - { ATF_POINTER, 8, offsetof(struct E2SM_KPM_IndicationHeader_Format1, pLMN_Identity), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_PLMN_Identity, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "pLMN-Identity" - }, - { ATF_POINTER, 7, offsetof(struct E2SM_KPM_IndicationHeader_Format1, sliceID), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_SNSSAI, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "sliceID" - }, - { ATF_POINTER, 6, offsetof(struct E2SM_KPM_IndicationHeader_Format1, fiveQI), - (ASN_TAG_CLASS_CONTEXT | (4 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_fiveQI_constr_6, &asn_PER_memb_fiveQI_constr_6, memb_fiveQI_constraint_1 }, - 0, 0, /* No default value */ - "fiveQI" - }, - { ATF_POINTER, 5, offsetof(struct E2SM_KPM_IndicationHeader_Format1, qci), - (ASN_TAG_CLASS_CONTEXT | (5 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_qci_constr_7, &asn_PER_memb_qci_constr_7, memb_qci_constraint_1 }, - 0, 0, /* No default value */ - "qci" - }, - { ATF_POINTER, 4, offsetof(struct E2SM_KPM_IndicationHeader_Format1, message_Type), - (ASN_TAG_CLASS_CONTEXT | (6 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_UE_Report_Type, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "message-Type" - }, - { ATF_POINTER, 3, offsetof(struct E2SM_KPM_IndicationHeader_Format1, gNB_DU_ID), - (ASN_TAG_CLASS_CONTEXT | (7 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GNB_DU_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "gNB-DU-ID" - }, - { ATF_POINTER, 2, offsetof(struct E2SM_KPM_IndicationHeader_Format1, gNB_Name), - (ASN_TAG_CLASS_CONTEXT | (8 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_GNB_Name, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "gNB-Name" - }, - { ATF_POINTER, 1, offsetof(struct E2SM_KPM_IndicationHeader_Format1, global_GNB_ID), - (ASN_TAG_CLASS_CONTEXT | (9 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GlobalgNB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "global-GNB-ID" - }, -}; -static const int asn_MAP_E2SM_KPM_IndicationHeader_Format1_oms_1[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; -static const ber_tlv_tag_t asn_DEF_E2SM_KPM_IndicationHeader_Format1_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E2SM_KPM_IndicationHeader_Format1_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id-GlobalKPMnode-ID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* nRCGI */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* pLMN-Identity */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* sliceID */ - { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* fiveQI */ - { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* qci */ - { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* message-Type */ - { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* gNB-DU-ID */ - { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* gNB-Name */ - { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 } /* global-GNB-ID */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E2SM_KPM_IndicationHeader_Format1_specs_1 = { - sizeof(struct E2SM_KPM_IndicationHeader_Format1), - offsetof(struct E2SM_KPM_IndicationHeader_Format1, _asn_ctx), - asn_MAP_E2SM_KPM_IndicationHeader_Format1_tag2el_1, - 10, /* Count of tags in the map */ - asn_MAP_E2SM_KPM_IndicationHeader_Format1_oms_1, /* Optional members */ - 10, 0, /* Root/Additions */ - 10, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E2SM_KPM_IndicationHeader_Format1 = { - "E2SM-KPM-IndicationHeader-Format1", - "E2SM-KPM-IndicationHeader-Format1", - &asn_OP_SEQUENCE, - asn_DEF_E2SM_KPM_IndicationHeader_Format1_tags_1, - sizeof(asn_DEF_E2SM_KPM_IndicationHeader_Format1_tags_1) - /sizeof(asn_DEF_E2SM_KPM_IndicationHeader_Format1_tags_1[0]), /* 1 */ - asn_DEF_E2SM_KPM_IndicationHeader_Format1_tags_1, /* Same as above */ - sizeof(asn_DEF_E2SM_KPM_IndicationHeader_Format1_tags_1) - /sizeof(asn_DEF_E2SM_KPM_IndicationHeader_Format1_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E2SM_KPM_IndicationHeader_Format1_1, - 10, /* Elements count */ - &asn_SPC_E2SM_KPM_IndicationHeader_Format1_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/E2SM-KPM-IndicationHeader-Format1.h b/e2sim/previous/e2apv1sim/ASN1c/E2SM-KPM-IndicationHeader-Format1.h deleted file mode 100644 index c46b715..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/E2SM-KPM-IndicationHeader-Format1.h +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _E2SM_KPM_IndicationHeader_Format1_H_ -#define _E2SM_KPM_IndicationHeader_Format1_H_ - - -#include - -/* Including external dependencies */ -#include "PLMN-Identity.h" -#include -#include "UE-Report-Type.h" -#include "GNB-DU-ID.h" -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct GlobalKPMnode_ID; -struct NRCGI; -struct SNSSAI; -struct GNB_Name; -struct GlobalgNB_ID; - -/* E2SM-KPM-IndicationHeader-Format1 */ -typedef struct E2SM_KPM_IndicationHeader_Format1 { - struct GlobalKPMnode_ID *id_GlobalKPMnode_ID; /* OPTIONAL */ - struct NRCGI *nRCGI; /* OPTIONAL */ - PLMN_Identity_t *pLMN_Identity; /* OPTIONAL */ - struct SNSSAI *sliceID; /* OPTIONAL */ - long *fiveQI; /* OPTIONAL */ - long *qci; /* OPTIONAL */ - UE_Report_Type_t *message_Type; /* OPTIONAL */ - GNB_DU_ID_t *gNB_DU_ID; /* OPTIONAL */ - struct GNB_Name *gNB_Name; /* OPTIONAL */ - struct GlobalgNB_ID *global_GNB_ID; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E2SM_KPM_IndicationHeader_Format1_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E2SM_KPM_IndicationHeader_Format1; -extern asn_SEQUENCE_specifics_t asn_SPC_E2SM_KPM_IndicationHeader_Format1_specs_1; -extern asn_TYPE_member_t asn_MBR_E2SM_KPM_IndicationHeader_Format1_1[10]; - -#ifdef __cplusplus -} -#endif - -/* Referred external types */ -#include "GlobalKPMnode-ID.h" -#include "NRCGI.h" -#include "SNSSAI.h" -#include "GNB-Name.h" -#include "GlobalgNB-ID.h" - -#endif /* _E2SM_KPM_IndicationHeader_Format1_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ASN1c/E2SM-KPM-IndicationHeader.c b/e2sim/previous/e2apv1sim/ASN1c/E2SM-KPM-IndicationHeader.c deleted file mode 100644 index c4fe730..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/E2SM-KPM-IndicationHeader.c +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "E2SM-KPM-IndicationHeader.h" - -static asn_oer_constraints_t asn_OER_type_E2SM_KPM_IndicationHeader_constr_1 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_type_E2SM_KPM_IndicationHeader_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 0, 0 } /* (0..0,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_E2SM_KPM_IndicationHeader_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct E2SM_KPM_IndicationHeader, choice.indicationHeader_Format1), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E2SM_KPM_IndicationHeader_Format1, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "indicationHeader-Format1" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_E2SM_KPM_IndicationHeader_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* indicationHeader-Format1 */ -}; -static asn_CHOICE_specifics_t asn_SPC_E2SM_KPM_IndicationHeader_specs_1 = { - sizeof(struct E2SM_KPM_IndicationHeader), - offsetof(struct E2SM_KPM_IndicationHeader, _asn_ctx), - offsetof(struct E2SM_KPM_IndicationHeader, present), - sizeof(((struct E2SM_KPM_IndicationHeader *)0)->present), - asn_MAP_E2SM_KPM_IndicationHeader_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, - 1 /* Extensions start */ -}; -asn_TYPE_descriptor_t asn_DEF_E2SM_KPM_IndicationHeader = { - "E2SM-KPM-IndicationHeader", - "E2SM-KPM-IndicationHeader", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { &asn_OER_type_E2SM_KPM_IndicationHeader_constr_1, &asn_PER_type_E2SM_KPM_IndicationHeader_constr_1, CHOICE_constraint }, - asn_MBR_E2SM_KPM_IndicationHeader_1, - 1, /* Elements count */ - &asn_SPC_E2SM_KPM_IndicationHeader_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/E2SM-KPM-IndicationHeader.h b/e2sim/previous/e2apv1sim/ASN1c/E2SM-KPM-IndicationHeader.h deleted file mode 100644 index 67dc86d..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/E2SM-KPM-IndicationHeader.h +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _E2SM_KPM_IndicationHeader_H_ -#define _E2SM_KPM_IndicationHeader_H_ - - -#include - -/* Including external dependencies */ -#include "E2SM-KPM-IndicationHeader-Format1.h" -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum E2SM_KPM_IndicationHeader_PR { - E2SM_KPM_IndicationHeader_PR_NOTHING, /* No components present */ - E2SM_KPM_IndicationHeader_PR_indicationHeader_Format1 - /* Extensions may appear below */ - -} E2SM_KPM_IndicationHeader_PR; - -/* E2SM-KPM-IndicationHeader */ -typedef struct E2SM_KPM_IndicationHeader { - E2SM_KPM_IndicationHeader_PR present; - union E2SM_KPM_IndicationHeader_u { - E2SM_KPM_IndicationHeader_Format1_t indicationHeader_Format1; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E2SM_KPM_IndicationHeader_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E2SM_KPM_IndicationHeader; - -#ifdef __cplusplus -} -#endif - -#endif /* _E2SM_KPM_IndicationHeader_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ASN1c/E2SM-KPM-IndicationMessage-Format1.c b/e2sim/previous/e2apv1sim/ASN1c/E2SM-KPM-IndicationMessage-Format1.c deleted file mode 100644 index 7bdebb0..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/E2SM-KPM-IndicationMessage-Format1.c +++ /dev/null @@ -1,129 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "E2SM-KPM-IndicationMessage-Format1.h" - -static int -memb_pm_Containers_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - /* Determine the number of elements */ - size = _A_CSEQUENCE_FROM_VOID(sptr)->count; - - if((size >= 1 && size <= 8)) { - /* Perform validation of the inner elements */ - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_oer_constraints_t asn_OER_type_pm_Containers_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..8)) */}; -static asn_per_constraints_t asn_PER_type_pm_Containers_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 3, 3, 1, 8 } /* (SIZE(1..8)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_pm_Containers_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..8)) */}; -static asn_per_constraints_t asn_PER_memb_pm_Containers_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 3, 3, 1, 8 } /* (SIZE(1..8)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_pm_Containers_2[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_PM_Containers_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_pm_Containers_tags_2[] = { - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_pm_Containers_specs_2 = { - sizeof(struct E2SM_KPM_IndicationMessage_Format1__pm_Containers), - offsetof(struct E2SM_KPM_IndicationMessage_Format1__pm_Containers, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_pm_Containers_2 = { - "pm-Containers", - "pm-Containers", - &asn_OP_SEQUENCE_OF, - asn_DEF_pm_Containers_tags_2, - sizeof(asn_DEF_pm_Containers_tags_2) - /sizeof(asn_DEF_pm_Containers_tags_2[0]) - 1, /* 1 */ - asn_DEF_pm_Containers_tags_2, /* Same as above */ - sizeof(asn_DEF_pm_Containers_tags_2) - /sizeof(asn_DEF_pm_Containers_tags_2[0]), /* 2 */ - { &asn_OER_type_pm_Containers_constr_2, &asn_PER_type_pm_Containers_constr_2, SEQUENCE_OF_constraint }, - asn_MBR_pm_Containers_2, - 1, /* Single element */ - &asn_SPC_pm_Containers_specs_2 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E2SM_KPM_IndicationMessage_Format1_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct E2SM_KPM_IndicationMessage_Format1, pm_Containers), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - 0, - &asn_DEF_pm_Containers_2, - 0, - { &asn_OER_memb_pm_Containers_constr_2, &asn_PER_memb_pm_Containers_constr_2, memb_pm_Containers_constraint_1 }, - 0, 0, /* No default value */ - "pm-Containers" - }, -}; -static const ber_tlv_tag_t asn_DEF_E2SM_KPM_IndicationMessage_Format1_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E2SM_KPM_IndicationMessage_Format1_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* pm-Containers */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E2SM_KPM_IndicationMessage_Format1_specs_1 = { - sizeof(struct E2SM_KPM_IndicationMessage_Format1), - offsetof(struct E2SM_KPM_IndicationMessage_Format1, _asn_ctx), - asn_MAP_E2SM_KPM_IndicationMessage_Format1_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E2SM_KPM_IndicationMessage_Format1 = { - "E2SM-KPM-IndicationMessage-Format1", - "E2SM-KPM-IndicationMessage-Format1", - &asn_OP_SEQUENCE, - asn_DEF_E2SM_KPM_IndicationMessage_Format1_tags_1, - sizeof(asn_DEF_E2SM_KPM_IndicationMessage_Format1_tags_1) - /sizeof(asn_DEF_E2SM_KPM_IndicationMessage_Format1_tags_1[0]), /* 1 */ - asn_DEF_E2SM_KPM_IndicationMessage_Format1_tags_1, /* Same as above */ - sizeof(asn_DEF_E2SM_KPM_IndicationMessage_Format1_tags_1) - /sizeof(asn_DEF_E2SM_KPM_IndicationMessage_Format1_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E2SM_KPM_IndicationMessage_Format1_1, - 1, /* Elements count */ - &asn_SPC_E2SM_KPM_IndicationMessage_Format1_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/E2SM-KPM-IndicationMessage-Format1.h b/e2sim/previous/e2apv1sim/ASN1c/E2SM-KPM-IndicationMessage-Format1.h deleted file mode 100644 index a05b652..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/E2SM-KPM-IndicationMessage-Format1.h +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _E2SM_KPM_IndicationMessage_Format1_H_ -#define _E2SM_KPM_IndicationMessage_Format1_H_ - - -#include - -/* Including external dependencies */ -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct PM_Containers_List; - -/* E2SM-KPM-IndicationMessage-Format1 */ -typedef struct E2SM_KPM_IndicationMessage_Format1 { - struct E2SM_KPM_IndicationMessage_Format1__pm_Containers { - A_SEQUENCE_OF(struct PM_Containers_List) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } pm_Containers; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E2SM_KPM_IndicationMessage_Format1_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E2SM_KPM_IndicationMessage_Format1; -extern asn_SEQUENCE_specifics_t asn_SPC_E2SM_KPM_IndicationMessage_Format1_specs_1; -extern asn_TYPE_member_t asn_MBR_E2SM_KPM_IndicationMessage_Format1_1[1]; - -#ifdef __cplusplus -} -#endif - -/* Referred external types */ -#include "PM-Containers-List.h" - -#endif /* _E2SM_KPM_IndicationMessage_Format1_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ASN1c/E2SM-KPM-IndicationMessage.c b/e2sim/previous/e2apv1sim/ASN1c/E2SM-KPM-IndicationMessage.c deleted file mode 100644 index 2eb4018..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/E2SM-KPM-IndicationMessage.c +++ /dev/null @@ -1,107 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "E2SM-KPM-IndicationMessage.h" - -static asn_oer_constraints_t asn_OER_type_indicationMessage_constr_3 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_type_indicationMessage_constr_3 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 0, 0 } /* (0..0,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_indicationMessage_3[] = { - { ATF_NOFLAGS, 0, offsetof(struct E2SM_KPM_IndicationMessage__indicationMessage, choice.indicationMessage_Format1), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E2SM_KPM_IndicationMessage_Format1, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "indicationMessage-Format1" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_indicationMessage_tag2el_3[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* indicationMessage-Format1 */ -}; -static asn_CHOICE_specifics_t asn_SPC_indicationMessage_specs_3 = { - sizeof(struct E2SM_KPM_IndicationMessage__indicationMessage), - offsetof(struct E2SM_KPM_IndicationMessage__indicationMessage, _asn_ctx), - offsetof(struct E2SM_KPM_IndicationMessage__indicationMessage, present), - sizeof(((struct E2SM_KPM_IndicationMessage__indicationMessage *)0)->present), - asn_MAP_indicationMessage_tag2el_3, - 1, /* Count of tags in the map */ - 0, 0, - 1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_indicationMessage_3 = { - "indicationMessage", - "indicationMessage", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { &asn_OER_type_indicationMessage_constr_3, &asn_PER_type_indicationMessage_constr_3, CHOICE_constraint }, - asn_MBR_indicationMessage_3, - 1, /* Elements count */ - &asn_SPC_indicationMessage_specs_3 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_E2SM_KPM_IndicationMessage_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct E2SM_KPM_IndicationMessage, ric_Style_Type), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RIC_Style_Type, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ric-Style-Type" - }, - { ATF_NOFLAGS, 0, offsetof(struct E2SM_KPM_IndicationMessage, indicationMessage), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_indicationMessage_3, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "indicationMessage" - }, -}; -static const ber_tlv_tag_t asn_DEF_E2SM_KPM_IndicationMessage_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E2SM_KPM_IndicationMessage_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ric-Style-Type */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* indicationMessage */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_E2SM_KPM_IndicationMessage_specs_1 = { - sizeof(struct E2SM_KPM_IndicationMessage), - offsetof(struct E2SM_KPM_IndicationMessage, _asn_ctx), - asn_MAP_E2SM_KPM_IndicationMessage_tag2el_1, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 2, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E2SM_KPM_IndicationMessage = { - "E2SM-KPM-IndicationMessage", - "E2SM-KPM-IndicationMessage", - &asn_OP_SEQUENCE, - asn_DEF_E2SM_KPM_IndicationMessage_tags_1, - sizeof(asn_DEF_E2SM_KPM_IndicationMessage_tags_1) - /sizeof(asn_DEF_E2SM_KPM_IndicationMessage_tags_1[0]), /* 1 */ - asn_DEF_E2SM_KPM_IndicationMessage_tags_1, /* Same as above */ - sizeof(asn_DEF_E2SM_KPM_IndicationMessage_tags_1) - /sizeof(asn_DEF_E2SM_KPM_IndicationMessage_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E2SM_KPM_IndicationMessage_1, - 2, /* Elements count */ - &asn_SPC_E2SM_KPM_IndicationMessage_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/E2SM-KPM-IndicationMessage.h b/e2sim/previous/e2apv1sim/ASN1c/E2SM-KPM-IndicationMessage.h deleted file mode 100644 index 77d4e3b..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/E2SM-KPM-IndicationMessage.h +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _E2SM_KPM_IndicationMessage_H_ -#define _E2SM_KPM_IndicationMessage_H_ - - -#include - -/* Including external dependencies */ -#include "RIC-Style-Type.h" -#include "E2SM-KPM-IndicationMessage-Format1.h" -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum E2SM_KPM_IndicationMessage__indicationMessage_PR { - E2SM_KPM_IndicationMessage__indicationMessage_PR_NOTHING, /* No components present */ - E2SM_KPM_IndicationMessage__indicationMessage_PR_indicationMessage_Format1 - /* Extensions may appear below */ - -} E2SM_KPM_IndicationMessage__indicationMessage_PR; - -/* E2SM-KPM-IndicationMessage */ -typedef struct E2SM_KPM_IndicationMessage { - RIC_Style_Type_t ric_Style_Type; - struct E2SM_KPM_IndicationMessage__indicationMessage { - E2SM_KPM_IndicationMessage__indicationMessage_PR present; - union E2SM_KPM_IndicationMessage__indicationMessage_u { - E2SM_KPM_IndicationMessage_Format1_t indicationMessage_Format1; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } indicationMessage; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E2SM_KPM_IndicationMessage_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E2SM_KPM_IndicationMessage; - -#ifdef __cplusplus -} -#endif - -#endif /* _E2SM_KPM_IndicationMessage_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ASN1c/E2SM-KPM-RANfunction-Description.c b/e2sim/previous/e2apv1sim/ASN1c/E2SM-KPM-RANfunction-Description.c deleted file mode 100644 index 226d0fb..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/E2SM-KPM-RANfunction-Description.c +++ /dev/null @@ -1,273 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "E2SM-KPM-RANfunction-Description.h" - -static int -memb_ric_EventTriggerStyle_List_constraint_3(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - /* Determine the number of elements */ - size = _A_CSEQUENCE_FROM_VOID(sptr)->count; - - if((size >= 1 && size <= 63)) { - /* Perform validation of the inner elements */ - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_ric_ReportStyle_List_constraint_3(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - /* Determine the number of elements */ - size = _A_CSEQUENCE_FROM_VOID(sptr)->count; - - if((size >= 1 && size <= 63)) { - /* Perform validation of the inner elements */ - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_oer_constraints_t asn_OER_type_ric_EventTriggerStyle_List_constr_4 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..63)) */}; -static asn_per_constraints_t asn_PER_type_ric_EventTriggerStyle_List_constr_4 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 6, 6, 1, 63 } /* (SIZE(1..63)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_type_ric_ReportStyle_List_constr_6 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..63)) */}; -static asn_per_constraints_t asn_PER_type_ric_ReportStyle_List_constr_6 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 6, 6, 1, 63 } /* (SIZE(1..63)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_ric_EventTriggerStyle_List_constr_4 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..63)) */}; -static asn_per_constraints_t asn_PER_memb_ric_EventTriggerStyle_List_constr_4 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 6, 6, 1, 63 } /* (SIZE(1..63)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_ric_ReportStyle_List_constr_6 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..63)) */}; -static asn_per_constraints_t asn_PER_memb_ric_ReportStyle_List_constr_6 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 6, 6, 1, 63 } /* (SIZE(1..63)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_ric_EventTriggerStyle_List_4[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RIC_EventTriggerStyle_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ric_EventTriggerStyle_List_tags_4[] = { - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_ric_EventTriggerStyle_List_specs_4 = { - sizeof(struct E2SM_KPM_RANfunction_Description__e2SM_KPM_RANfunction_Item__ric_EventTriggerStyle_List), - offsetof(struct E2SM_KPM_RANfunction_Description__e2SM_KPM_RANfunction_Item__ric_EventTriggerStyle_List, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_ric_EventTriggerStyle_List_4 = { - "ric-EventTriggerStyle-List", - "ric-EventTriggerStyle-List", - &asn_OP_SEQUENCE_OF, - asn_DEF_ric_EventTriggerStyle_List_tags_4, - sizeof(asn_DEF_ric_EventTriggerStyle_List_tags_4) - /sizeof(asn_DEF_ric_EventTriggerStyle_List_tags_4[0]) - 1, /* 1 */ - asn_DEF_ric_EventTriggerStyle_List_tags_4, /* Same as above */ - sizeof(asn_DEF_ric_EventTriggerStyle_List_tags_4) - /sizeof(asn_DEF_ric_EventTriggerStyle_List_tags_4[0]), /* 2 */ - { &asn_OER_type_ric_EventTriggerStyle_List_constr_4, &asn_PER_type_ric_EventTriggerStyle_List_constr_4, SEQUENCE_OF_constraint }, - asn_MBR_ric_EventTriggerStyle_List_4, - 1, /* Single element */ - &asn_SPC_ric_EventTriggerStyle_List_specs_4 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_ric_ReportStyle_List_6[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RIC_ReportStyle_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ric_ReportStyle_List_tags_6[] = { - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_ric_ReportStyle_List_specs_6 = { - sizeof(struct E2SM_KPM_RANfunction_Description__e2SM_KPM_RANfunction_Item__ric_ReportStyle_List), - offsetof(struct E2SM_KPM_RANfunction_Description__e2SM_KPM_RANfunction_Item__ric_ReportStyle_List, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_ric_ReportStyle_List_6 = { - "ric-ReportStyle-List", - "ric-ReportStyle-List", - &asn_OP_SEQUENCE_OF, - asn_DEF_ric_ReportStyle_List_tags_6, - sizeof(asn_DEF_ric_ReportStyle_List_tags_6) - /sizeof(asn_DEF_ric_ReportStyle_List_tags_6[0]) - 1, /* 1 */ - asn_DEF_ric_ReportStyle_List_tags_6, /* Same as above */ - sizeof(asn_DEF_ric_ReportStyle_List_tags_6) - /sizeof(asn_DEF_ric_ReportStyle_List_tags_6[0]), /* 2 */ - { &asn_OER_type_ric_ReportStyle_List_constr_6, &asn_PER_type_ric_ReportStyle_List_constr_6, SEQUENCE_OF_constraint }, - asn_MBR_ric_ReportStyle_List_6, - 1, /* Single element */ - &asn_SPC_ric_ReportStyle_List_specs_6 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_e2SM_KPM_RANfunction_Item_3[] = { - { ATF_POINTER, 2, offsetof(struct E2SM_KPM_RANfunction_Description__e2SM_KPM_RANfunction_Item, ric_EventTriggerStyle_List), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - 0, - &asn_DEF_ric_EventTriggerStyle_List_4, - 0, - { &asn_OER_memb_ric_EventTriggerStyle_List_constr_4, &asn_PER_memb_ric_EventTriggerStyle_List_constr_4, memb_ric_EventTriggerStyle_List_constraint_3 }, - 0, 0, /* No default value */ - "ric-EventTriggerStyle-List" - }, - { ATF_POINTER, 1, offsetof(struct E2SM_KPM_RANfunction_Description__e2SM_KPM_RANfunction_Item, ric_ReportStyle_List), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - 0, - &asn_DEF_ric_ReportStyle_List_6, - 0, - { &asn_OER_memb_ric_ReportStyle_List_constr_6, &asn_PER_memb_ric_ReportStyle_List_constr_6, memb_ric_ReportStyle_List_constraint_3 }, - 0, 0, /* No default value */ - "ric-ReportStyle-List" - }, -}; -static const int asn_MAP_e2SM_KPM_RANfunction_Item_oms_3[] = { 0, 1 }; -static const ber_tlv_tag_t asn_DEF_e2SM_KPM_RANfunction_Item_tags_3[] = { - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_e2SM_KPM_RANfunction_Item_tag2el_3[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ric-EventTriggerStyle-List */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ric-ReportStyle-List */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_e2SM_KPM_RANfunction_Item_specs_3 = { - sizeof(struct E2SM_KPM_RANfunction_Description__e2SM_KPM_RANfunction_Item), - offsetof(struct E2SM_KPM_RANfunction_Description__e2SM_KPM_RANfunction_Item, _asn_ctx), - asn_MAP_e2SM_KPM_RANfunction_Item_tag2el_3, - 2, /* Count of tags in the map */ - asn_MAP_e2SM_KPM_RANfunction_Item_oms_3, /* Optional members */ - 2, 0, /* Root/Additions */ - 2, /* First extension addition */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_e2SM_KPM_RANfunction_Item_3 = { - "e2SM-KPM-RANfunction-Item", - "e2SM-KPM-RANfunction-Item", - &asn_OP_SEQUENCE, - asn_DEF_e2SM_KPM_RANfunction_Item_tags_3, - sizeof(asn_DEF_e2SM_KPM_RANfunction_Item_tags_3) - /sizeof(asn_DEF_e2SM_KPM_RANfunction_Item_tags_3[0]) - 1, /* 1 */ - asn_DEF_e2SM_KPM_RANfunction_Item_tags_3, /* Same as above */ - sizeof(asn_DEF_e2SM_KPM_RANfunction_Item_tags_3) - /sizeof(asn_DEF_e2SM_KPM_RANfunction_Item_tags_3[0]), /* 2 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_e2SM_KPM_RANfunction_Item_3, - 2, /* Elements count */ - &asn_SPC_e2SM_KPM_RANfunction_Item_specs_3 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_E2SM_KPM_RANfunction_Description_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct E2SM_KPM_RANfunction_Description, ranFunction_Name), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RANfunction_Name, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ranFunction-Name" - }, - { ATF_NOFLAGS, 0, offsetof(struct E2SM_KPM_RANfunction_Description, e2SM_KPM_RANfunction_Item), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - 0, - &asn_DEF_e2SM_KPM_RANfunction_Item_3, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "e2SM-KPM-RANfunction-Item" - }, -}; -static const ber_tlv_tag_t asn_DEF_E2SM_KPM_RANfunction_Description_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E2SM_KPM_RANfunction_Description_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ranFunction-Name */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* e2SM-KPM-RANfunction-Item */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_E2SM_KPM_RANfunction_Description_specs_1 = { - sizeof(struct E2SM_KPM_RANfunction_Description), - offsetof(struct E2SM_KPM_RANfunction_Description, _asn_ctx), - asn_MAP_E2SM_KPM_RANfunction_Description_tag2el_1, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 2, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E2SM_KPM_RANfunction_Description = { - "E2SM-KPM-RANfunction-Description", - "E2SM-KPM-RANfunction-Description", - &asn_OP_SEQUENCE, - asn_DEF_E2SM_KPM_RANfunction_Description_tags_1, - sizeof(asn_DEF_E2SM_KPM_RANfunction_Description_tags_1) - /sizeof(asn_DEF_E2SM_KPM_RANfunction_Description_tags_1[0]), /* 1 */ - asn_DEF_E2SM_KPM_RANfunction_Description_tags_1, /* Same as above */ - sizeof(asn_DEF_E2SM_KPM_RANfunction_Description_tags_1) - /sizeof(asn_DEF_E2SM_KPM_RANfunction_Description_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E2SM_KPM_RANfunction_Description_1, - 2, /* Elements count */ - &asn_SPC_E2SM_KPM_RANfunction_Description_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/E2SM-KPM-RANfunction-Description.h b/e2sim/previous/e2apv1sim/ASN1c/E2SM-KPM-RANfunction-Description.h deleted file mode 100644 index 79d2dcf..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/E2SM-KPM-RANfunction-Description.h +++ /dev/null @@ -1,73 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _E2SM_KPM_RANfunction_Description_H_ -#define _E2SM_KPM_RANfunction_Description_H_ - - -#include - -/* Including external dependencies */ -#include "RANfunction-Name.h" -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct RIC_EventTriggerStyle_List; -struct RIC_ReportStyle_List; - -/* E2SM-KPM-RANfunction-Description */ -typedef struct E2SM_KPM_RANfunction_Description { - RANfunction_Name_t ranFunction_Name; - struct E2SM_KPM_RANfunction_Description__e2SM_KPM_RANfunction_Item { - struct E2SM_KPM_RANfunction_Description__e2SM_KPM_RANfunction_Item__ric_EventTriggerStyle_List { - A_SEQUENCE_OF(struct RIC_EventTriggerStyle_List) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } *ric_EventTriggerStyle_List; - struct E2SM_KPM_RANfunction_Description__e2SM_KPM_RANfunction_Item__ric_ReportStyle_List { - A_SEQUENCE_OF(struct RIC_ReportStyle_List) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } *ric_ReportStyle_List; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } e2SM_KPM_RANfunction_Item; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E2SM_KPM_RANfunction_Description_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E2SM_KPM_RANfunction_Description; - -#ifdef __cplusplus -} -#endif - -/* Referred external types */ -#include "RIC-EventTriggerStyle-List.h" -#include "RIC-ReportStyle-List.h" - -#endif /* _E2SM_KPM_RANfunction_Description_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ASN1c/E2setupFailure.c b/e2sim/previous/e2apv1sim/ASN1c/E2setupFailure.c deleted file mode 100644 index 49cae9b..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/E2setupFailure.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "E2setupFailure.h" - -asn_TYPE_member_t asn_MBR_E2setupFailure_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct E2setupFailure, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_1527P13, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_E2setupFailure_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E2setupFailure_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E2setupFailure_specs_1 = { - sizeof(struct E2setupFailure), - offsetof(struct E2setupFailure, _asn_ctx), - asn_MAP_E2setupFailure_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E2setupFailure = { - "E2setupFailure", - "E2setupFailure", - &asn_OP_SEQUENCE, - asn_DEF_E2setupFailure_tags_1, - sizeof(asn_DEF_E2setupFailure_tags_1) - /sizeof(asn_DEF_E2setupFailure_tags_1[0]), /* 1 */ - asn_DEF_E2setupFailure_tags_1, /* Same as above */ - sizeof(asn_DEF_E2setupFailure_tags_1) - /sizeof(asn_DEF_E2setupFailure_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E2setupFailure_1, - 1, /* Elements count */ - &asn_SPC_E2setupFailure_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/E2setupFailure.h b/e2sim/previous/e2apv1sim/ASN1c/E2setupFailure.h deleted file mode 100644 index 4dee64b..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/E2setupFailure.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _E2setupFailure_H_ -#define _E2setupFailure_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* E2setupFailure */ -typedef struct E2setupFailure { - ProtocolIE_Container_1527P13_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E2setupFailure_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E2setupFailure; -extern asn_SEQUENCE_specifics_t asn_SPC_E2setupFailure_specs_1; -extern asn_TYPE_member_t asn_MBR_E2setupFailure_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _E2setupFailure_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ASN1c/E2setupRequest.c b/e2sim/previous/e2apv1sim/ASN1c/E2setupRequest.c deleted file mode 100644 index cefa91b..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/E2setupRequest.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "E2setupRequest.h" - -asn_TYPE_member_t asn_MBR_E2setupRequest_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct E2setupRequest, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_1527P11, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_E2setupRequest_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E2setupRequest_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E2setupRequest_specs_1 = { - sizeof(struct E2setupRequest), - offsetof(struct E2setupRequest, _asn_ctx), - asn_MAP_E2setupRequest_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E2setupRequest = { - "E2setupRequest", - "E2setupRequest", - &asn_OP_SEQUENCE, - asn_DEF_E2setupRequest_tags_1, - sizeof(asn_DEF_E2setupRequest_tags_1) - /sizeof(asn_DEF_E2setupRequest_tags_1[0]), /* 1 */ - asn_DEF_E2setupRequest_tags_1, /* Same as above */ - sizeof(asn_DEF_E2setupRequest_tags_1) - /sizeof(asn_DEF_E2setupRequest_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E2setupRequest_1, - 1, /* Elements count */ - &asn_SPC_E2setupRequest_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/E2setupRequest.h b/e2sim/previous/e2apv1sim/ASN1c/E2setupRequest.h deleted file mode 100644 index 2b8b070..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/E2setupRequest.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _E2setupRequest_H_ -#define _E2setupRequest_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* E2setupRequest */ -typedef struct E2setupRequest { - ProtocolIE_Container_1527P11_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E2setupRequest_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E2setupRequest; -extern asn_SEQUENCE_specifics_t asn_SPC_E2setupRequest_specs_1; -extern asn_TYPE_member_t asn_MBR_E2setupRequest_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _E2setupRequest_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ASN1c/E2setupResponse.c b/e2sim/previous/e2apv1sim/ASN1c/E2setupResponse.c deleted file mode 100644 index b607aa1..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/E2setupResponse.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "E2setupResponse.h" - -asn_TYPE_member_t asn_MBR_E2setupResponse_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct E2setupResponse, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_1527P12, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_E2setupResponse_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E2setupResponse_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E2setupResponse_specs_1 = { - sizeof(struct E2setupResponse), - offsetof(struct E2setupResponse, _asn_ctx), - asn_MAP_E2setupResponse_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E2setupResponse = { - "E2setupResponse", - "E2setupResponse", - &asn_OP_SEQUENCE, - asn_DEF_E2setupResponse_tags_1, - sizeof(asn_DEF_E2setupResponse_tags_1) - /sizeof(asn_DEF_E2setupResponse_tags_1[0]), /* 1 */ - asn_DEF_E2setupResponse_tags_1, /* Same as above */ - sizeof(asn_DEF_E2setupResponse_tags_1) - /sizeof(asn_DEF_E2setupResponse_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E2setupResponse_1, - 1, /* Elements count */ - &asn_SPC_E2setupResponse_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/E2setupResponse.h b/e2sim/previous/e2apv1sim/ASN1c/E2setupResponse.h deleted file mode 100644 index ccec4bc..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/E2setupResponse.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _E2setupResponse_H_ -#define _E2setupResponse_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* E2setupResponse */ -typedef struct E2setupResponse { - ProtocolIE_Container_1527P12_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E2setupResponse_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E2setupResponse; -extern asn_SEQUENCE_specifics_t asn_SPC_E2setupResponse_specs_1; -extern asn_TYPE_member_t asn_MBR_E2setupResponse_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _E2setupResponse_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ASN1c/ENB-ID-Choice.c b/e2sim/previous/e2apv1sim/ASN1c/ENB-ID-Choice.c deleted file mode 100644 index 824871d..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/ENB-ID-Choice.c +++ /dev/null @@ -1,192 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "ENB-ID-Choice.h" - -static int -memb_enb_ID_macro_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if(st->size > 0) { - /* Size in bits */ - size = 8 * st->size - (st->bits_unused & 0x07); - } else { - size = 0; - } - - if((size == 20)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_enb_ID_shortmacro_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if(st->size > 0) { - /* Size in bits */ - size = 8 * st->size - (st->bits_unused & 0x07); - } else { - size = 0; - } - - if((size == 18)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_enb_ID_longmacro_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if(st->size > 0) { - /* Size in bits */ - size = 8 * st->size - (st->bits_unused & 0x07); - } else { - size = 0; - } - - if((size == 21)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_oer_constraints_t asn_OER_memb_enb_ID_macro_constr_2 CC_NOTUSED = { - { 0, 0 }, - 20 /* (SIZE(20..20)) */}; -static asn_per_constraints_t asn_PER_memb_enb_ID_macro_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 0, 0, 20, 20 } /* (SIZE(20..20)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_enb_ID_shortmacro_constr_3 CC_NOTUSED = { - { 0, 0 }, - 18 /* (SIZE(18..18)) */}; -static asn_per_constraints_t asn_PER_memb_enb_ID_shortmacro_constr_3 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 0, 0, 18, 18 } /* (SIZE(18..18)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_enb_ID_longmacro_constr_4 CC_NOTUSED = { - { 0, 0 }, - 21 /* (SIZE(21..21)) */}; -static asn_per_constraints_t asn_PER_memb_enb_ID_longmacro_constr_4 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 0, 0, 21, 21 } /* (SIZE(21..21)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_type_ENB_ID_Choice_constr_1 CC_NOTUSED = { - { 0, 0 }, - -1}; -asn_per_constraints_t asn_PER_type_ENB_ID_Choice_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 2 } /* (0..2,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_ENB_ID_Choice_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct ENB_ID_Choice, choice.enb_ID_macro), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_BIT_STRING, - 0, - { &asn_OER_memb_enb_ID_macro_constr_2, &asn_PER_memb_enb_ID_macro_constr_2, memb_enb_ID_macro_constraint_1 }, - 0, 0, /* No default value */ - "enb-ID-macro" - }, - { ATF_NOFLAGS, 0, offsetof(struct ENB_ID_Choice, choice.enb_ID_shortmacro), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_BIT_STRING, - 0, - { &asn_OER_memb_enb_ID_shortmacro_constr_3, &asn_PER_memb_enb_ID_shortmacro_constr_3, memb_enb_ID_shortmacro_constraint_1 }, - 0, 0, /* No default value */ - "enb-ID-shortmacro" - }, - { ATF_NOFLAGS, 0, offsetof(struct ENB_ID_Choice, choice.enb_ID_longmacro), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_BIT_STRING, - 0, - { &asn_OER_memb_enb_ID_longmacro_constr_4, &asn_PER_memb_enb_ID_longmacro_constr_4, memb_enb_ID_longmacro_constraint_1 }, - 0, 0, /* No default value */ - "enb-ID-longmacro" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_ENB_ID_Choice_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* enb-ID-macro */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* enb-ID-shortmacro */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* enb-ID-longmacro */ -}; -asn_CHOICE_specifics_t asn_SPC_ENB_ID_Choice_specs_1 = { - sizeof(struct ENB_ID_Choice), - offsetof(struct ENB_ID_Choice, _asn_ctx), - offsetof(struct ENB_ID_Choice, present), - sizeof(((struct ENB_ID_Choice *)0)->present), - asn_MAP_ENB_ID_Choice_tag2el_1, - 3, /* Count of tags in the map */ - 0, 0, - 3 /* Extensions start */ -}; -asn_TYPE_descriptor_t asn_DEF_ENB_ID_Choice = { - "ENB-ID-Choice", - "ENB-ID-Choice", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { &asn_OER_type_ENB_ID_Choice_constr_1, &asn_PER_type_ENB_ID_Choice_constr_1, CHOICE_constraint }, - asn_MBR_ENB_ID_Choice_1, - 3, /* Elements count */ - &asn_SPC_ENB_ID_Choice_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/ENB-ID-Choice.h b/e2sim/previous/e2apv1sim/ASN1c/ENB-ID-Choice.h deleted file mode 100644 index 7e142ae..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/ENB-ID-Choice.h +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _ENB_ID_Choice_H_ -#define _ENB_ID_Choice_H_ - - -#include - -/* Including external dependencies */ -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum ENB_ID_Choice_PR { - ENB_ID_Choice_PR_NOTHING, /* No components present */ - ENB_ID_Choice_PR_enb_ID_macro, - ENB_ID_Choice_PR_enb_ID_shortmacro, - ENB_ID_Choice_PR_enb_ID_longmacro - /* Extensions may appear below */ - -} ENB_ID_Choice_PR; - -/* ENB-ID-Choice */ -typedef struct ENB_ID_Choice { - ENB_ID_Choice_PR present; - union ENB_ID_Choice_u { - BIT_STRING_t enb_ID_macro; - BIT_STRING_t enb_ID_shortmacro; - BIT_STRING_t enb_ID_longmacro; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ENB_ID_Choice_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ENB_ID_Choice; -extern asn_CHOICE_specifics_t asn_SPC_ENB_ID_Choice_specs_1; -extern asn_TYPE_member_t asn_MBR_ENB_ID_Choice_1[3]; -extern asn_per_constraints_t asn_PER_type_ENB_ID_Choice_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _ENB_ID_Choice_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ASN1c/ENB-ID.c b/e2sim/previous/e2apv1sim/ASN1c/ENB-ID.c deleted file mode 100644 index 212c6fc..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/ENB-ID.c +++ /dev/null @@ -1,241 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "ENB-ID.h" - -static int -memb_macro_eNB_ID_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if(st->size > 0) { - /* Size in bits */ - size = 8 * st->size - (st->bits_unused & 0x07); - } else { - size = 0; - } - - if((size == 20)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_home_eNB_ID_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if(st->size > 0) { - /* Size in bits */ - size = 8 * st->size - (st->bits_unused & 0x07); - } else { - size = 0; - } - - if((size == 28)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_short_Macro_eNB_ID_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if(st->size > 0) { - /* Size in bits */ - size = 8 * st->size - (st->bits_unused & 0x07); - } else { - size = 0; - } - - if((size == 18)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_long_Macro_eNB_ID_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if(st->size > 0) { - /* Size in bits */ - size = 8 * st->size - (st->bits_unused & 0x07); - } else { - size = 0; - } - - if((size == 21)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_oer_constraints_t asn_OER_memb_macro_eNB_ID_constr_2 CC_NOTUSED = { - { 0, 0 }, - 20 /* (SIZE(20..20)) */}; -static asn_per_constraints_t asn_PER_memb_macro_eNB_ID_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 0, 0, 20, 20 } /* (SIZE(20..20)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_home_eNB_ID_constr_3 CC_NOTUSED = { - { 0, 0 }, - 28 /* (SIZE(28..28)) */}; -static asn_per_constraints_t asn_PER_memb_home_eNB_ID_constr_3 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 0, 0, 28, 28 } /* (SIZE(28..28)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_short_Macro_eNB_ID_constr_5 CC_NOTUSED = { - { 0, 0 }, - 18 /* (SIZE(18..18)) */}; -static asn_per_constraints_t asn_PER_memb_short_Macro_eNB_ID_constr_5 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 0, 0, 18, 18 } /* (SIZE(18..18)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_long_Macro_eNB_ID_constr_6 CC_NOTUSED = { - { 0, 0 }, - 21 /* (SIZE(21..21)) */}; -static asn_per_constraints_t asn_PER_memb_long_Macro_eNB_ID_constr_6 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 0, 0, 21, 21 } /* (SIZE(21..21)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_type_ENB_ID_constr_1 CC_NOTUSED = { - { 0, 0 }, - -1}; -asn_per_constraints_t asn_PER_type_ENB_ID_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_ENB_ID_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct ENB_ID, choice.macro_eNB_ID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_BIT_STRING, - 0, - { &asn_OER_memb_macro_eNB_ID_constr_2, &asn_PER_memb_macro_eNB_ID_constr_2, memb_macro_eNB_ID_constraint_1 }, - 0, 0, /* No default value */ - "macro-eNB-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct ENB_ID, choice.home_eNB_ID), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_BIT_STRING, - 0, - { &asn_OER_memb_home_eNB_ID_constr_3, &asn_PER_memb_home_eNB_ID_constr_3, memb_home_eNB_ID_constraint_1 }, - 0, 0, /* No default value */ - "home-eNB-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct ENB_ID, choice.short_Macro_eNB_ID), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_BIT_STRING, - 0, - { &asn_OER_memb_short_Macro_eNB_ID_constr_5, &asn_PER_memb_short_Macro_eNB_ID_constr_5, memb_short_Macro_eNB_ID_constraint_1 }, - 0, 0, /* No default value */ - "short-Macro-eNB-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct ENB_ID, choice.long_Macro_eNB_ID), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_BIT_STRING, - 0, - { &asn_OER_memb_long_Macro_eNB_ID_constr_6, &asn_PER_memb_long_Macro_eNB_ID_constr_6, memb_long_Macro_eNB_ID_constraint_1 }, - 0, 0, /* No default value */ - "long-Macro-eNB-ID" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_ENB_ID_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* macro-eNB-ID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* home-eNB-ID */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* short-Macro-eNB-ID */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* long-Macro-eNB-ID */ -}; -asn_CHOICE_specifics_t asn_SPC_ENB_ID_specs_1 = { - sizeof(struct ENB_ID), - offsetof(struct ENB_ID, _asn_ctx), - offsetof(struct ENB_ID, present), - sizeof(((struct ENB_ID *)0)->present), - asn_MAP_ENB_ID_tag2el_1, - 4, /* Count of tags in the map */ - 0, 0, - 2 /* Extensions start */ -}; -asn_TYPE_descriptor_t asn_DEF_ENB_ID = { - "ENB-ID", - "ENB-ID", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { &asn_OER_type_ENB_ID_constr_1, &asn_PER_type_ENB_ID_constr_1, CHOICE_constraint }, - asn_MBR_ENB_ID_1, - 4, /* Elements count */ - &asn_SPC_ENB_ID_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/ENB-ID.h b/e2sim/previous/e2apv1sim/ASN1c/ENB-ID.h deleted file mode 100644 index 8af6b41..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/ENB-ID.h +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _ENB_ID_H_ -#define _ENB_ID_H_ - - -#include - -/* Including external dependencies */ -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum ENB_ID_PR { - ENB_ID_PR_NOTHING, /* No components present */ - ENB_ID_PR_macro_eNB_ID, - ENB_ID_PR_home_eNB_ID, - /* Extensions may appear below */ - ENB_ID_PR_short_Macro_eNB_ID, - ENB_ID_PR_long_Macro_eNB_ID -} ENB_ID_PR; - -/* ENB-ID */ -typedef struct ENB_ID { - ENB_ID_PR present; - union ENB_ID_u { - BIT_STRING_t macro_eNB_ID; - BIT_STRING_t home_eNB_ID; - /* - * This type is extensible, - * possible extensions are below. - */ - BIT_STRING_t short_Macro_eNB_ID; - BIT_STRING_t long_Macro_eNB_ID; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ENB_ID_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ENB_ID; -extern asn_CHOICE_specifics_t asn_SPC_ENB_ID_specs_1; -extern asn_TYPE_member_t asn_MBR_ENB_ID_1[4]; -extern asn_per_constraints_t asn_PER_type_ENB_ID_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _ENB_ID_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ASN1c/ENGNB-ID.c b/e2sim/previous/e2apv1sim/ASN1c/ENGNB-ID.c deleted file mode 100644 index e8fc32f..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/ENGNB-ID.c +++ /dev/null @@ -1,94 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "ENGNB-ID.h" - -static int -memb_gNB_ID_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if(st->size > 0) { - /* Size in bits */ - size = 8 * st->size - (st->bits_unused & 0x07); - } else { - size = 0; - } - - if((size >= 22 && size <= 32)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_oer_constraints_t asn_OER_memb_gNB_ID_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(22..32)) */}; -static asn_per_constraints_t asn_PER_memb_gNB_ID_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 4, 4, 22, 32 } /* (SIZE(22..32)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_type_ENGNB_ID_constr_1 CC_NOTUSED = { - { 0, 0 }, - -1}; -asn_per_constraints_t asn_PER_type_ENGNB_ID_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 0, 0 } /* (0..0,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_ENGNB_ID_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct ENGNB_ID, choice.gNB_ID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_BIT_STRING, - 0, - { &asn_OER_memb_gNB_ID_constr_2, &asn_PER_memb_gNB_ID_constr_2, memb_gNB_ID_constraint_1 }, - 0, 0, /* No default value */ - "gNB-ID" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_ENGNB_ID_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* gNB-ID */ -}; -asn_CHOICE_specifics_t asn_SPC_ENGNB_ID_specs_1 = { - sizeof(struct ENGNB_ID), - offsetof(struct ENGNB_ID, _asn_ctx), - offsetof(struct ENGNB_ID, present), - sizeof(((struct ENGNB_ID *)0)->present), - asn_MAP_ENGNB_ID_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, - 1 /* Extensions start */ -}; -asn_TYPE_descriptor_t asn_DEF_ENGNB_ID = { - "ENGNB-ID", - "ENGNB-ID", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { &asn_OER_type_ENGNB_ID_constr_1, &asn_PER_type_ENGNB_ID_constr_1, CHOICE_constraint }, - asn_MBR_ENGNB_ID_1, - 1, /* Elements count */ - &asn_SPC_ENGNB_ID_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/ENGNB-ID.h b/e2sim/previous/e2apv1sim/ASN1c/ENGNB-ID.h deleted file mode 100644 index f97a53c..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/ENGNB-ID.h +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _ENGNB_ID_H_ -#define _ENGNB_ID_H_ - - -#include - -/* Including external dependencies */ -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum ENGNB_ID_PR { - ENGNB_ID_PR_NOTHING, /* No components present */ - ENGNB_ID_PR_gNB_ID - /* Extensions may appear below */ - -} ENGNB_ID_PR; - -/* ENGNB-ID */ -typedef struct ENGNB_ID { - ENGNB_ID_PR present; - union ENGNB_ID_u { - BIT_STRING_t gNB_ID; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ENGNB_ID_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ENGNB_ID; -extern asn_CHOICE_specifics_t asn_SPC_ENGNB_ID_specs_1; -extern asn_TYPE_member_t asn_MBR_ENGNB_ID_1[1]; -extern asn_per_constraints_t asn_PER_type_ENGNB_ID_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _ENGNB_ID_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ASN1c/EPC-CUUP-PM-Format.c b/e2sim/previous/e2apv1sim/ASN1c/EPC-CUUP-PM-Format.c deleted file mode 100644 index d8902f8..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/EPC-CUUP-PM-Format.c +++ /dev/null @@ -1,129 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "EPC-CUUP-PM-Format.h" - -static int -memb_perQCIReportList_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - /* Determine the number of elements */ - size = _A_CSEQUENCE_FROM_VOID(sptr)->count; - - if((size >= 1 && size <= 256)) { - /* Perform validation of the inner elements */ - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_oer_constraints_t asn_OER_type_perQCIReportList_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..256)) */}; -static asn_per_constraints_t asn_PER_type_perQCIReportList_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 8, 8, 1, 256 } /* (SIZE(1..256)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_perQCIReportList_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..256)) */}; -static asn_per_constraints_t asn_PER_memb_perQCIReportList_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 8, 8, 1, 256 } /* (SIZE(1..256)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_perQCIReportList_2[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_PerQCIReportListItemFormat, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_perQCIReportList_tags_2[] = { - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_perQCIReportList_specs_2 = { - sizeof(struct EPC_CUUP_PM_Format__perQCIReportList), - offsetof(struct EPC_CUUP_PM_Format__perQCIReportList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_perQCIReportList_2 = { - "perQCIReportList", - "perQCIReportList", - &asn_OP_SEQUENCE_OF, - asn_DEF_perQCIReportList_tags_2, - sizeof(asn_DEF_perQCIReportList_tags_2) - /sizeof(asn_DEF_perQCIReportList_tags_2[0]) - 1, /* 1 */ - asn_DEF_perQCIReportList_tags_2, /* Same as above */ - sizeof(asn_DEF_perQCIReportList_tags_2) - /sizeof(asn_DEF_perQCIReportList_tags_2[0]), /* 2 */ - { &asn_OER_type_perQCIReportList_constr_2, &asn_PER_type_perQCIReportList_constr_2, SEQUENCE_OF_constraint }, - asn_MBR_perQCIReportList_2, - 1, /* Single element */ - &asn_SPC_perQCIReportList_specs_2 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_EPC_CUUP_PM_Format_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct EPC_CUUP_PM_Format, perQCIReportList), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - 0, - &asn_DEF_perQCIReportList_2, - 0, - { &asn_OER_memb_perQCIReportList_constr_2, &asn_PER_memb_perQCIReportList_constr_2, memb_perQCIReportList_constraint_1 }, - 0, 0, /* No default value */ - "perQCIReportList" - }, -}; -static const ber_tlv_tag_t asn_DEF_EPC_CUUP_PM_Format_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_EPC_CUUP_PM_Format_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* perQCIReportList */ -}; -asn_SEQUENCE_specifics_t asn_SPC_EPC_CUUP_PM_Format_specs_1 = { - sizeof(struct EPC_CUUP_PM_Format), - offsetof(struct EPC_CUUP_PM_Format, _asn_ctx), - asn_MAP_EPC_CUUP_PM_Format_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_EPC_CUUP_PM_Format = { - "EPC-CUUP-PM-Format", - "EPC-CUUP-PM-Format", - &asn_OP_SEQUENCE, - asn_DEF_EPC_CUUP_PM_Format_tags_1, - sizeof(asn_DEF_EPC_CUUP_PM_Format_tags_1) - /sizeof(asn_DEF_EPC_CUUP_PM_Format_tags_1[0]), /* 1 */ - asn_DEF_EPC_CUUP_PM_Format_tags_1, /* Same as above */ - sizeof(asn_DEF_EPC_CUUP_PM_Format_tags_1) - /sizeof(asn_DEF_EPC_CUUP_PM_Format_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_EPC_CUUP_PM_Format_1, - 1, /* Elements count */ - &asn_SPC_EPC_CUUP_PM_Format_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/EPC-CUUP-PM-Format.h b/e2sim/previous/e2apv1sim/ASN1c/EPC-CUUP-PM-Format.h deleted file mode 100644 index b07125d..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/EPC-CUUP-PM-Format.h +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _EPC_CUUP_PM_Format_H_ -#define _EPC_CUUP_PM_Format_H_ - - -#include - -/* Including external dependencies */ -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct PerQCIReportListItemFormat; - -/* EPC-CUUP-PM-Format */ -typedef struct EPC_CUUP_PM_Format { - struct EPC_CUUP_PM_Format__perQCIReportList { - A_SEQUENCE_OF(struct PerQCIReportListItemFormat) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } perQCIReportList; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} EPC_CUUP_PM_Format_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_EPC_CUUP_PM_Format; -extern asn_SEQUENCE_specifics_t asn_SPC_EPC_CUUP_PM_Format_specs_1; -extern asn_TYPE_member_t asn_MBR_EPC_CUUP_PM_Format_1[1]; - -#ifdef __cplusplus -} -#endif - -/* Referred external types */ -#include "PerQCIReportListItemFormat.h" - -#endif /* _EPC_CUUP_PM_Format_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ASN1c/EPC-DU-PM-Container.c b/e2sim/previous/e2apv1sim/ASN1c/EPC-DU-PM-Container.c deleted file mode 100644 index 2ba5440..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/EPC-DU-PM-Container.c +++ /dev/null @@ -1,129 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "EPC-DU-PM-Container.h" - -static int -memb_perQCIReportList_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - /* Determine the number of elements */ - size = _A_CSEQUENCE_FROM_VOID(sptr)->count; - - if((size >= 1 && size <= 256)) { - /* Perform validation of the inner elements */ - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_oer_constraints_t asn_OER_type_perQCIReportList_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..256)) */}; -static asn_per_constraints_t asn_PER_type_perQCIReportList_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 8, 8, 1, 256 } /* (SIZE(1..256)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_perQCIReportList_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..256)) */}; -static asn_per_constraints_t asn_PER_memb_perQCIReportList_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 8, 8, 1, 256 } /* (SIZE(1..256)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_perQCIReportList_2[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_PerQCIReportListItem, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_perQCIReportList_tags_2[] = { - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_perQCIReportList_specs_2 = { - sizeof(struct EPC_DU_PM_Container__perQCIReportList), - offsetof(struct EPC_DU_PM_Container__perQCIReportList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_perQCIReportList_2 = { - "perQCIReportList", - "perQCIReportList", - &asn_OP_SEQUENCE_OF, - asn_DEF_perQCIReportList_tags_2, - sizeof(asn_DEF_perQCIReportList_tags_2) - /sizeof(asn_DEF_perQCIReportList_tags_2[0]) - 1, /* 1 */ - asn_DEF_perQCIReportList_tags_2, /* Same as above */ - sizeof(asn_DEF_perQCIReportList_tags_2) - /sizeof(asn_DEF_perQCIReportList_tags_2[0]), /* 2 */ - { &asn_OER_type_perQCIReportList_constr_2, &asn_PER_type_perQCIReportList_constr_2, SEQUENCE_OF_constraint }, - asn_MBR_perQCIReportList_2, - 1, /* Single element */ - &asn_SPC_perQCIReportList_specs_2 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_EPC_DU_PM_Container_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct EPC_DU_PM_Container, perQCIReportList), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - 0, - &asn_DEF_perQCIReportList_2, - 0, - { &asn_OER_memb_perQCIReportList_constr_2, &asn_PER_memb_perQCIReportList_constr_2, memb_perQCIReportList_constraint_1 }, - 0, 0, /* No default value */ - "perQCIReportList" - }, -}; -static const ber_tlv_tag_t asn_DEF_EPC_DU_PM_Container_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_EPC_DU_PM_Container_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* perQCIReportList */ -}; -asn_SEQUENCE_specifics_t asn_SPC_EPC_DU_PM_Container_specs_1 = { - sizeof(struct EPC_DU_PM_Container), - offsetof(struct EPC_DU_PM_Container, _asn_ctx), - asn_MAP_EPC_DU_PM_Container_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_EPC_DU_PM_Container = { - "EPC-DU-PM-Container", - "EPC-DU-PM-Container", - &asn_OP_SEQUENCE, - asn_DEF_EPC_DU_PM_Container_tags_1, - sizeof(asn_DEF_EPC_DU_PM_Container_tags_1) - /sizeof(asn_DEF_EPC_DU_PM_Container_tags_1[0]), /* 1 */ - asn_DEF_EPC_DU_PM_Container_tags_1, /* Same as above */ - sizeof(asn_DEF_EPC_DU_PM_Container_tags_1) - /sizeof(asn_DEF_EPC_DU_PM_Container_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_EPC_DU_PM_Container_1, - 1, /* Elements count */ - &asn_SPC_EPC_DU_PM_Container_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/EPC-DU-PM-Container.h b/e2sim/previous/e2apv1sim/ASN1c/EPC-DU-PM-Container.h deleted file mode 100644 index 198982e..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/EPC-DU-PM-Container.h +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _EPC_DU_PM_Container_H_ -#define _EPC_DU_PM_Container_H_ - - -#include - -/* Including external dependencies */ -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct PerQCIReportListItem; - -/* EPC-DU-PM-Container */ -typedef struct EPC_DU_PM_Container { - struct EPC_DU_PM_Container__perQCIReportList { - A_SEQUENCE_OF(struct PerQCIReportListItem) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } perQCIReportList; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} EPC_DU_PM_Container_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_EPC_DU_PM_Container; -extern asn_SEQUENCE_specifics_t asn_SPC_EPC_DU_PM_Container_specs_1; -extern asn_TYPE_member_t asn_MBR_EPC_DU_PM_Container_1[1]; - -#ifdef __cplusplus -} -#endif - -/* Referred external types */ -#include "PerQCIReportListItem.h" - -#endif /* _EPC_DU_PM_Container_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ASN1c/ErrorIndication.c b/e2sim/previous/e2apv1sim/ASN1c/ErrorIndication.c deleted file mode 100644 index e971c4f..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/ErrorIndication.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "ErrorIndication.h" - -asn_TYPE_member_t asn_MBR_ErrorIndication_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct ErrorIndication, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_1527P10, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_ErrorIndication_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ErrorIndication_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ErrorIndication_specs_1 = { - sizeof(struct ErrorIndication), - offsetof(struct ErrorIndication, _asn_ctx), - asn_MAP_ErrorIndication_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ErrorIndication = { - "ErrorIndication", - "ErrorIndication", - &asn_OP_SEQUENCE, - asn_DEF_ErrorIndication_tags_1, - sizeof(asn_DEF_ErrorIndication_tags_1) - /sizeof(asn_DEF_ErrorIndication_tags_1[0]), /* 1 */ - asn_DEF_ErrorIndication_tags_1, /* Same as above */ - sizeof(asn_DEF_ErrorIndication_tags_1) - /sizeof(asn_DEF_ErrorIndication_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ErrorIndication_1, - 1, /* Elements count */ - &asn_SPC_ErrorIndication_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/ErrorIndication.h b/e2sim/previous/e2apv1sim/ASN1c/ErrorIndication.h deleted file mode 100644 index a209847..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/ErrorIndication.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _ErrorIndication_H_ -#define _ErrorIndication_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* ErrorIndication */ -typedef struct ErrorIndication { - ProtocolIE_Container_1527P10_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ErrorIndication_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ErrorIndication; -extern asn_SEQUENCE_specifics_t asn_SPC_ErrorIndication_specs_1; -extern asn_TYPE_member_t asn_MBR_ErrorIndication_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _ErrorIndication_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ASN1c/FGC-CUUP-PM-Format.c b/e2sim/previous/e2apv1sim/ASN1c/FGC-CUUP-PM-Format.c deleted file mode 100644 index d8f7e44..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/FGC-CUUP-PM-Format.c +++ /dev/null @@ -1,129 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "FGC-CUUP-PM-Format.h" - -static int -memb_sliceToReportList_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - /* Determine the number of elements */ - size = _A_CSEQUENCE_FROM_VOID(sptr)->count; - - if((size >= 1 && size <= 1024)) { - /* Perform validation of the inner elements */ - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_oer_constraints_t asn_OER_type_sliceToReportList_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..1024)) */}; -static asn_per_constraints_t asn_PER_type_sliceToReportList_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 10, 10, 1, 1024 } /* (SIZE(1..1024)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_sliceToReportList_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..1024)) */}; -static asn_per_constraints_t asn_PER_memb_sliceToReportList_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 10, 10, 1, 1024 } /* (SIZE(1..1024)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_sliceToReportList_2[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_SliceToReportListItem, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_sliceToReportList_tags_2[] = { - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_sliceToReportList_specs_2 = { - sizeof(struct FGC_CUUP_PM_Format__sliceToReportList), - offsetof(struct FGC_CUUP_PM_Format__sliceToReportList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_sliceToReportList_2 = { - "sliceToReportList", - "sliceToReportList", - &asn_OP_SEQUENCE_OF, - asn_DEF_sliceToReportList_tags_2, - sizeof(asn_DEF_sliceToReportList_tags_2) - /sizeof(asn_DEF_sliceToReportList_tags_2[0]) - 1, /* 1 */ - asn_DEF_sliceToReportList_tags_2, /* Same as above */ - sizeof(asn_DEF_sliceToReportList_tags_2) - /sizeof(asn_DEF_sliceToReportList_tags_2[0]), /* 2 */ - { &asn_OER_type_sliceToReportList_constr_2, &asn_PER_type_sliceToReportList_constr_2, SEQUENCE_OF_constraint }, - asn_MBR_sliceToReportList_2, - 1, /* Single element */ - &asn_SPC_sliceToReportList_specs_2 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_FGC_CUUP_PM_Format_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct FGC_CUUP_PM_Format, sliceToReportList), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - 0, - &asn_DEF_sliceToReportList_2, - 0, - { &asn_OER_memb_sliceToReportList_constr_2, &asn_PER_memb_sliceToReportList_constr_2, memb_sliceToReportList_constraint_1 }, - 0, 0, /* No default value */ - "sliceToReportList" - }, -}; -static const ber_tlv_tag_t asn_DEF_FGC_CUUP_PM_Format_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_FGC_CUUP_PM_Format_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* sliceToReportList */ -}; -asn_SEQUENCE_specifics_t asn_SPC_FGC_CUUP_PM_Format_specs_1 = { - sizeof(struct FGC_CUUP_PM_Format), - offsetof(struct FGC_CUUP_PM_Format, _asn_ctx), - asn_MAP_FGC_CUUP_PM_Format_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_FGC_CUUP_PM_Format = { - "FGC-CUUP-PM-Format", - "FGC-CUUP-PM-Format", - &asn_OP_SEQUENCE, - asn_DEF_FGC_CUUP_PM_Format_tags_1, - sizeof(asn_DEF_FGC_CUUP_PM_Format_tags_1) - /sizeof(asn_DEF_FGC_CUUP_PM_Format_tags_1[0]), /* 1 */ - asn_DEF_FGC_CUUP_PM_Format_tags_1, /* Same as above */ - sizeof(asn_DEF_FGC_CUUP_PM_Format_tags_1) - /sizeof(asn_DEF_FGC_CUUP_PM_Format_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_FGC_CUUP_PM_Format_1, - 1, /* Elements count */ - &asn_SPC_FGC_CUUP_PM_Format_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/FGC-CUUP-PM-Format.h b/e2sim/previous/e2apv1sim/ASN1c/FGC-CUUP-PM-Format.h deleted file mode 100644 index a6e4aa8..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/FGC-CUUP-PM-Format.h +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _FGC_CUUP_PM_Format_H_ -#define _FGC_CUUP_PM_Format_H_ - - -#include - -/* Including external dependencies */ -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct SliceToReportListItem; - -/* FGC-CUUP-PM-Format */ -typedef struct FGC_CUUP_PM_Format { - struct FGC_CUUP_PM_Format__sliceToReportList { - A_SEQUENCE_OF(struct SliceToReportListItem) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } sliceToReportList; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} FGC_CUUP_PM_Format_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_FGC_CUUP_PM_Format; -extern asn_SEQUENCE_specifics_t asn_SPC_FGC_CUUP_PM_Format_specs_1; -extern asn_TYPE_member_t asn_MBR_FGC_CUUP_PM_Format_1[1]; - -#ifdef __cplusplus -} -#endif - -/* Referred external types */ -#include "SliceToReportListItem.h" - -#endif /* _FGC_CUUP_PM_Format_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ASN1c/FGC-DU-PM-Container.c b/e2sim/previous/e2apv1sim/ASN1c/FGC-DU-PM-Container.c deleted file mode 100644 index c0429ab..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/FGC-DU-PM-Container.c +++ /dev/null @@ -1,129 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "FGC-DU-PM-Container.h" - -static int -memb_slicePerPlmnPerCellList_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - /* Determine the number of elements */ - size = _A_CSEQUENCE_FROM_VOID(sptr)->count; - - if((size >= 1 && size <= 1024)) { - /* Perform validation of the inner elements */ - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_oer_constraints_t asn_OER_type_slicePerPlmnPerCellList_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..1024)) */}; -static asn_per_constraints_t asn_PER_type_slicePerPlmnPerCellList_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 10, 10, 1, 1024 } /* (SIZE(1..1024)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_slicePerPlmnPerCellList_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..1024)) */}; -static asn_per_constraints_t asn_PER_memb_slicePerPlmnPerCellList_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 10, 10, 1, 1024 } /* (SIZE(1..1024)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_slicePerPlmnPerCellList_2[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_SlicePerPlmnPerCellListItem, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_slicePerPlmnPerCellList_tags_2[] = { - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_slicePerPlmnPerCellList_specs_2 = { - sizeof(struct FGC_DU_PM_Container__slicePerPlmnPerCellList), - offsetof(struct FGC_DU_PM_Container__slicePerPlmnPerCellList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_slicePerPlmnPerCellList_2 = { - "slicePerPlmnPerCellList", - "slicePerPlmnPerCellList", - &asn_OP_SEQUENCE_OF, - asn_DEF_slicePerPlmnPerCellList_tags_2, - sizeof(asn_DEF_slicePerPlmnPerCellList_tags_2) - /sizeof(asn_DEF_slicePerPlmnPerCellList_tags_2[0]) - 1, /* 1 */ - asn_DEF_slicePerPlmnPerCellList_tags_2, /* Same as above */ - sizeof(asn_DEF_slicePerPlmnPerCellList_tags_2) - /sizeof(asn_DEF_slicePerPlmnPerCellList_tags_2[0]), /* 2 */ - { &asn_OER_type_slicePerPlmnPerCellList_constr_2, &asn_PER_type_slicePerPlmnPerCellList_constr_2, SEQUENCE_OF_constraint }, - asn_MBR_slicePerPlmnPerCellList_2, - 1, /* Single element */ - &asn_SPC_slicePerPlmnPerCellList_specs_2 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_FGC_DU_PM_Container_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct FGC_DU_PM_Container, slicePerPlmnPerCellList), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - 0, - &asn_DEF_slicePerPlmnPerCellList_2, - 0, - { &asn_OER_memb_slicePerPlmnPerCellList_constr_2, &asn_PER_memb_slicePerPlmnPerCellList_constr_2, memb_slicePerPlmnPerCellList_constraint_1 }, - 0, 0, /* No default value */ - "slicePerPlmnPerCellList" - }, -}; -static const ber_tlv_tag_t asn_DEF_FGC_DU_PM_Container_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_FGC_DU_PM_Container_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* slicePerPlmnPerCellList */ -}; -asn_SEQUENCE_specifics_t asn_SPC_FGC_DU_PM_Container_specs_1 = { - sizeof(struct FGC_DU_PM_Container), - offsetof(struct FGC_DU_PM_Container, _asn_ctx), - asn_MAP_FGC_DU_PM_Container_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_FGC_DU_PM_Container = { - "FGC-DU-PM-Container", - "FGC-DU-PM-Container", - &asn_OP_SEQUENCE, - asn_DEF_FGC_DU_PM_Container_tags_1, - sizeof(asn_DEF_FGC_DU_PM_Container_tags_1) - /sizeof(asn_DEF_FGC_DU_PM_Container_tags_1[0]), /* 1 */ - asn_DEF_FGC_DU_PM_Container_tags_1, /* Same as above */ - sizeof(asn_DEF_FGC_DU_PM_Container_tags_1) - /sizeof(asn_DEF_FGC_DU_PM_Container_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_FGC_DU_PM_Container_1, - 1, /* Elements count */ - &asn_SPC_FGC_DU_PM_Container_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/FGC-DU-PM-Container.h b/e2sim/previous/e2apv1sim/ASN1c/FGC-DU-PM-Container.h deleted file mode 100644 index 96debbb..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/FGC-DU-PM-Container.h +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _FGC_DU_PM_Container_H_ -#define _FGC_DU_PM_Container_H_ - - -#include - -/* Including external dependencies */ -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct SlicePerPlmnPerCellListItem; - -/* FGC-DU-PM-Container */ -typedef struct FGC_DU_PM_Container { - struct FGC_DU_PM_Container__slicePerPlmnPerCellList { - A_SEQUENCE_OF(struct SlicePerPlmnPerCellListItem) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } slicePerPlmnPerCellList; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} FGC_DU_PM_Container_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_FGC_DU_PM_Container; -extern asn_SEQUENCE_specifics_t asn_SPC_FGC_DU_PM_Container_specs_1; -extern asn_TYPE_member_t asn_MBR_FGC_DU_PM_Container_1[1]; - -#ifdef __cplusplus -} -#endif - -/* Referred external types */ -#include "SlicePerPlmnPerCellListItem.h" - -#endif /* _FGC_DU_PM_Container_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ASN1c/FQIPERSlicesPerPlmnListItem.c b/e2sim/previous/e2apv1sim/ASN1c/FQIPERSlicesPerPlmnListItem.c deleted file mode 100644 index 84d1741..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/FQIPERSlicesPerPlmnListItem.c +++ /dev/null @@ -1,183 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "FQIPERSlicesPerPlmnListItem.h" - -static int -memb_fiveQI_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 255)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_pDCPBytesDL_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const INTEGER_t *st = (const INTEGER_t *)sptr; - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if(asn_INTEGER2long(st, &value)) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value too large (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if((value >= 0 && value <= 10000000000)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_pDCPBytesUL_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const INTEGER_t *st = (const INTEGER_t *)sptr; - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if(asn_INTEGER2long(st, &value)) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value too large (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if((value >= 0 && value <= 10000000000)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_oer_constraints_t asn_OER_memb_fiveQI_constr_2 CC_NOTUSED = { - { 1, 1 } /* (0..255) */, - -1}; -static asn_per_constraints_t asn_PER_memb_fiveQI_constr_2 CC_NOTUSED = { - { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_pDCPBytesDL_constr_3 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_memb_pDCPBytesDL_constr_3 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 34, -1, 0, 10000000000 } /* (0..10000000000,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_pDCPBytesUL_constr_4 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_memb_pDCPBytesUL_constr_4 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 34, -1, 0, 10000000000 } /* (0..10000000000,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_FQIPERSlicesPerPlmnListItem_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct FQIPERSlicesPerPlmnListItem, fiveQI), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_fiveQI_constr_2, &asn_PER_memb_fiveQI_constr_2, memb_fiveQI_constraint_1 }, - 0, 0, /* No default value */ - "fiveQI" - }, - { ATF_POINTER, 2, offsetof(struct FQIPERSlicesPerPlmnListItem, pDCPBytesDL), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_INTEGER, - 0, - { &asn_OER_memb_pDCPBytesDL_constr_3, &asn_PER_memb_pDCPBytesDL_constr_3, memb_pDCPBytesDL_constraint_1 }, - 0, 0, /* No default value */ - "pDCPBytesDL" - }, - { ATF_POINTER, 1, offsetof(struct FQIPERSlicesPerPlmnListItem, pDCPBytesUL), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_INTEGER, - 0, - { &asn_OER_memb_pDCPBytesUL_constr_4, &asn_PER_memb_pDCPBytesUL_constr_4, memb_pDCPBytesUL_constraint_1 }, - 0, 0, /* No default value */ - "pDCPBytesUL" - }, -}; -static const int asn_MAP_FQIPERSlicesPerPlmnListItem_oms_1[] = { 1, 2 }; -static const ber_tlv_tag_t asn_DEF_FQIPERSlicesPerPlmnListItem_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_FQIPERSlicesPerPlmnListItem_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* fiveQI */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* pDCPBytesDL */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* pDCPBytesUL */ -}; -asn_SEQUENCE_specifics_t asn_SPC_FQIPERSlicesPerPlmnListItem_specs_1 = { - sizeof(struct FQIPERSlicesPerPlmnListItem), - offsetof(struct FQIPERSlicesPerPlmnListItem, _asn_ctx), - asn_MAP_FQIPERSlicesPerPlmnListItem_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_FQIPERSlicesPerPlmnListItem_oms_1, /* Optional members */ - 2, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_FQIPERSlicesPerPlmnListItem = { - "FQIPERSlicesPerPlmnListItem", - "FQIPERSlicesPerPlmnListItem", - &asn_OP_SEQUENCE, - asn_DEF_FQIPERSlicesPerPlmnListItem_tags_1, - sizeof(asn_DEF_FQIPERSlicesPerPlmnListItem_tags_1) - /sizeof(asn_DEF_FQIPERSlicesPerPlmnListItem_tags_1[0]), /* 1 */ - asn_DEF_FQIPERSlicesPerPlmnListItem_tags_1, /* Same as above */ - sizeof(asn_DEF_FQIPERSlicesPerPlmnListItem_tags_1) - /sizeof(asn_DEF_FQIPERSlicesPerPlmnListItem_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_FQIPERSlicesPerPlmnListItem_1, - 3, /* Elements count */ - &asn_SPC_FQIPERSlicesPerPlmnListItem_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/FQIPERSlicesPerPlmnListItem.h b/e2sim/previous/e2apv1sim/ASN1c/FQIPERSlicesPerPlmnListItem.h deleted file mode 100644 index a87a0d7..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/FQIPERSlicesPerPlmnListItem.h +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _FQIPERSlicesPerPlmnListItem_H_ -#define _FQIPERSlicesPerPlmnListItem_H_ - - -#include - -/* Including external dependencies */ -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* FQIPERSlicesPerPlmnListItem */ -typedef struct FQIPERSlicesPerPlmnListItem { - long fiveQI; - INTEGER_t *pDCPBytesDL; /* OPTIONAL */ - INTEGER_t *pDCPBytesUL; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} FQIPERSlicesPerPlmnListItem_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_FQIPERSlicesPerPlmnListItem; -extern asn_SEQUENCE_specifics_t asn_SPC_FQIPERSlicesPerPlmnListItem_specs_1; -extern asn_TYPE_member_t asn_MBR_FQIPERSlicesPerPlmnListItem_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _FQIPERSlicesPerPlmnListItem_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ASN1c/FQIPERSlicesPerPlmnPerCellListItem.c b/e2sim/previous/e2apv1sim/ASN1c/FQIPERSlicesPerPlmnPerCellListItem.c deleted file mode 100644 index d73d0db..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/FQIPERSlicesPerPlmnPerCellListItem.c +++ /dev/null @@ -1,171 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "FQIPERSlicesPerPlmnPerCellListItem.h" - -static int -memb_fiveQI_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 255)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_dl_PRBUsage_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 273)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_ul_PRBUsage_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 273)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_oer_constraints_t asn_OER_memb_fiveQI_constr_2 CC_NOTUSED = { - { 1, 1 } /* (0..255) */, - -1}; -static asn_per_constraints_t asn_PER_memb_fiveQI_constr_2 CC_NOTUSED = { - { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_dl_PRBUsage_constr_3 CC_NOTUSED = { - { 2, 1 } /* (0..273) */, - -1}; -static asn_per_constraints_t asn_PER_memb_dl_PRBUsage_constr_3 CC_NOTUSED = { - { APC_CONSTRAINED, 9, 9, 0, 273 } /* (0..273) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_ul_PRBUsage_constr_4 CC_NOTUSED = { - { 2, 1 } /* (0..273) */, - -1}; -static asn_per_constraints_t asn_PER_memb_ul_PRBUsage_constr_4 CC_NOTUSED = { - { APC_CONSTRAINED, 9, 9, 0, 273 } /* (0..273) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_FQIPERSlicesPerPlmnPerCellListItem_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct FQIPERSlicesPerPlmnPerCellListItem, fiveQI), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_fiveQI_constr_2, &asn_PER_memb_fiveQI_constr_2, memb_fiveQI_constraint_1 }, - 0, 0, /* No default value */ - "fiveQI" - }, - { ATF_POINTER, 2, offsetof(struct FQIPERSlicesPerPlmnPerCellListItem, dl_PRBUsage), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_dl_PRBUsage_constr_3, &asn_PER_memb_dl_PRBUsage_constr_3, memb_dl_PRBUsage_constraint_1 }, - 0, 0, /* No default value */ - "dl-PRBUsage" - }, - { ATF_POINTER, 1, offsetof(struct FQIPERSlicesPerPlmnPerCellListItem, ul_PRBUsage), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_ul_PRBUsage_constr_4, &asn_PER_memb_ul_PRBUsage_constr_4, memb_ul_PRBUsage_constraint_1 }, - 0, 0, /* No default value */ - "ul-PRBUsage" - }, -}; -static const int asn_MAP_FQIPERSlicesPerPlmnPerCellListItem_oms_1[] = { 1, 2 }; -static const ber_tlv_tag_t asn_DEF_FQIPERSlicesPerPlmnPerCellListItem_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_FQIPERSlicesPerPlmnPerCellListItem_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* fiveQI */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* dl-PRBUsage */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* ul-PRBUsage */ -}; -asn_SEQUENCE_specifics_t asn_SPC_FQIPERSlicesPerPlmnPerCellListItem_specs_1 = { - sizeof(struct FQIPERSlicesPerPlmnPerCellListItem), - offsetof(struct FQIPERSlicesPerPlmnPerCellListItem, _asn_ctx), - asn_MAP_FQIPERSlicesPerPlmnPerCellListItem_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_FQIPERSlicesPerPlmnPerCellListItem_oms_1, /* Optional members */ - 2, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_FQIPERSlicesPerPlmnPerCellListItem = { - "FQIPERSlicesPerPlmnPerCellListItem", - "FQIPERSlicesPerPlmnPerCellListItem", - &asn_OP_SEQUENCE, - asn_DEF_FQIPERSlicesPerPlmnPerCellListItem_tags_1, - sizeof(asn_DEF_FQIPERSlicesPerPlmnPerCellListItem_tags_1) - /sizeof(asn_DEF_FQIPERSlicesPerPlmnPerCellListItem_tags_1[0]), /* 1 */ - asn_DEF_FQIPERSlicesPerPlmnPerCellListItem_tags_1, /* Same as above */ - sizeof(asn_DEF_FQIPERSlicesPerPlmnPerCellListItem_tags_1) - /sizeof(asn_DEF_FQIPERSlicesPerPlmnPerCellListItem_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_FQIPERSlicesPerPlmnPerCellListItem_1, - 3, /* Elements count */ - &asn_SPC_FQIPERSlicesPerPlmnPerCellListItem_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/FQIPERSlicesPerPlmnPerCellListItem.h b/e2sim/previous/e2apv1sim/ASN1c/FQIPERSlicesPerPlmnPerCellListItem.h deleted file mode 100644 index 1b22e34..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/FQIPERSlicesPerPlmnPerCellListItem.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _FQIPERSlicesPerPlmnPerCellListItem_H_ -#define _FQIPERSlicesPerPlmnPerCellListItem_H_ - - -#include - -/* Including external dependencies */ -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* FQIPERSlicesPerPlmnPerCellListItem */ -typedef struct FQIPERSlicesPerPlmnPerCellListItem { - long fiveQI; - long *dl_PRBUsage; /* OPTIONAL */ - long *ul_PRBUsage; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} FQIPERSlicesPerPlmnPerCellListItem_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_FQIPERSlicesPerPlmnPerCellListItem; -extern asn_SEQUENCE_specifics_t asn_SPC_FQIPERSlicesPerPlmnPerCellListItem_specs_1; -extern asn_TYPE_member_t asn_MBR_FQIPERSlicesPerPlmnPerCellListItem_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _FQIPERSlicesPerPlmnPerCellListItem_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ASN1c/GNB-CU-CP-Name.c b/e2sim/previous/e2apv1sim/ASN1c/GNB-CU-CP-Name.c deleted file mode 100644 index 029ca92..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/GNB-CU-CP-Name.c +++ /dev/null @@ -1,109 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "GNB-CU-CP-Name.h" - -static const int permitted_alphabet_table_1[256] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */ - 1, 0, 0, 0, 0, 0, 0, 2, 3, 4, 0, 5, 6, 7, 8, 9, /* . '() +,-./ */ -10,11,12,13,14,15,16,17,18,19,20, 0, 0,21, 0,22, /* 0123456789: = ? */ - 0,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37, /* ABCDEFGHIJKLMNO */ -38,39,40,41,42,43,44,45,46,47,48, 0, 0, 0, 0, 0, /* PQRSTUVWXYZ */ - 0,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63, /* abcdefghijklmno */ -64,65,66,67,68,69,70,71,72,73,74, 0, 0, 0, 0, 0, /* pqrstuvwxyz */ -}; -static const int permitted_alphabet_code2value_1[74] = { -32,39,40,41,43,44,45,46,47,48,49,50,51,52,53,54, -55,56,57,58,61,63,65,66,67,68,69,70,71,72,73,74, -75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90, -97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112, -113,114,115,116,117,118,119,120,121,122,}; - - -static int check_permitted_alphabet_1(const void *sptr) { - const int *table = permitted_alphabet_table_1; - /* The underlying type is PrintableString */ - const PrintableString_t *st = (const PrintableString_t *)sptr; - const uint8_t *ch = st->buf; - const uint8_t *end = ch + st->size; - - for(; ch < end; ch++) { - uint8_t cv = *ch; - if(!table[cv]) return -1; - } - return 0; -} - -int -GNB_CU_CP_Name_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const PrintableString_t *st = (const PrintableString_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - size = st->size; - - if((size >= 1 && size <= 150) - && !check_permitted_alphabet_1(st)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int asn_PER_MAP_GNB_CU_CP_Name_1_v2c(unsigned int value) { - if(value >= sizeof(permitted_alphabet_table_1)/sizeof(permitted_alphabet_table_1[0])) - return -1; - return permitted_alphabet_table_1[value] - 1; -} -static int asn_PER_MAP_GNB_CU_CP_Name_1_c2v(unsigned int code) { - if(code >= sizeof(permitted_alphabet_code2value_1)/sizeof(permitted_alphabet_code2value_1[0])) - return -1; - return permitted_alphabet_code2value_1[code]; -} -/* - * This type is implemented using PrintableString, - * so here we adjust the DEF accordingly. - */ -static asn_oer_constraints_t asn_OER_type_GNB_CU_CP_Name_constr_1 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(0..MAX)) */}; -asn_per_constraints_t asn_PER_type_GNB_CU_CP_Name_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED, 7, 7, 32, 122 } /* (32..122) */, - { APC_CONSTRAINED | APC_EXTENSIBLE, 8, 8, 1, 150 } /* (SIZE(1..150,...)) */, - asn_PER_MAP_GNB_CU_CP_Name_1_v2c, /* Value to PER code map */ - asn_PER_MAP_GNB_CU_CP_Name_1_c2v /* PER code to value map */ -}; -static const ber_tlv_tag_t asn_DEF_GNB_CU_CP_Name_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (19 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_GNB_CU_CP_Name = { - "GNB-CU-CP-Name", - "GNB-CU-CP-Name", - &asn_OP_PrintableString, - asn_DEF_GNB_CU_CP_Name_tags_1, - sizeof(asn_DEF_GNB_CU_CP_Name_tags_1) - /sizeof(asn_DEF_GNB_CU_CP_Name_tags_1[0]), /* 1 */ - asn_DEF_GNB_CU_CP_Name_tags_1, /* Same as above */ - sizeof(asn_DEF_GNB_CU_CP_Name_tags_1) - /sizeof(asn_DEF_GNB_CU_CP_Name_tags_1[0]), /* 1 */ - { &asn_OER_type_GNB_CU_CP_Name_constr_1, &asn_PER_type_GNB_CU_CP_Name_constr_1, GNB_CU_CP_Name_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/GNB-CU-CP-Name.h b/e2sim/previous/e2apv1sim/ASN1c/GNB-CU-CP-Name.h deleted file mode 100644 index 1eb3404..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/GNB-CU-CP-Name.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _GNB_CU_CP_Name_H_ -#define _GNB_CU_CP_Name_H_ - - -#include - -/* Including external dependencies */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* GNB-CU-CP-Name */ -typedef PrintableString_t GNB_CU_CP_Name_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_GNB_CU_CP_Name_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_GNB_CU_CP_Name; -asn_struct_free_f GNB_CU_CP_Name_free; -asn_struct_print_f GNB_CU_CP_Name_print; -asn_constr_check_f GNB_CU_CP_Name_constraint; -ber_type_decoder_f GNB_CU_CP_Name_decode_ber; -der_type_encoder_f GNB_CU_CP_Name_encode_der; -xer_type_decoder_f GNB_CU_CP_Name_decode_xer; -xer_type_encoder_f GNB_CU_CP_Name_encode_xer; -oer_type_decoder_f GNB_CU_CP_Name_decode_oer; -oer_type_encoder_f GNB_CU_CP_Name_encode_oer; -per_type_decoder_f GNB_CU_CP_Name_decode_uper; -per_type_encoder_f GNB_CU_CP_Name_encode_uper; -per_type_decoder_f GNB_CU_CP_Name_decode_aper; -per_type_encoder_f GNB_CU_CP_Name_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _GNB_CU_CP_Name_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ASN1c/GNB-CU-UP-ID.c b/e2sim/previous/e2apv1sim/ASN1c/GNB-CU-UP-ID.c deleted file mode 100644 index 737a4f3..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/GNB-CU-UP-ID.c +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "GNB-CU-UP-ID.h" - -int -GNB_CU_UP_ID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const INTEGER_t *st = (const INTEGER_t *)sptr; - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if(asn_INTEGER2long(st, &value)) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value too large (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if((value >= 0 && value <= 68719476735)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using INTEGER, - * so here we adjust the DEF accordingly. - */ -static asn_oer_constraints_t asn_OER_type_GNB_CU_UP_ID_constr_1 CC_NOTUSED = { - { 8, 1 } /* (0..68719476735) */, - -1}; -asn_per_constraints_t asn_PER_type_GNB_CU_UP_ID_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED, 36, -1, 0, 68719476735 } /* (0..68719476735) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_GNB_CU_UP_ID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_GNB_CU_UP_ID = { - "GNB-CU-UP-ID", - "GNB-CU-UP-ID", - &asn_OP_INTEGER, - asn_DEF_GNB_CU_UP_ID_tags_1, - sizeof(asn_DEF_GNB_CU_UP_ID_tags_1) - /sizeof(asn_DEF_GNB_CU_UP_ID_tags_1[0]), /* 1 */ - asn_DEF_GNB_CU_UP_ID_tags_1, /* Same as above */ - sizeof(asn_DEF_GNB_CU_UP_ID_tags_1) - /sizeof(asn_DEF_GNB_CU_UP_ID_tags_1[0]), /* 1 */ - { &asn_OER_type_GNB_CU_UP_ID_constr_1, &asn_PER_type_GNB_CU_UP_ID_constr_1, GNB_CU_UP_ID_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/GNB-CU-UP-ID.h b/e2sim/previous/e2apv1sim/ASN1c/GNB-CU-UP-ID.h deleted file mode 100644 index e6b9c43..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/GNB-CU-UP-ID.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _GNB_CU_UP_ID_H_ -#define _GNB_CU_UP_ID_H_ - - -#include - -/* Including external dependencies */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* GNB-CU-UP-ID */ -typedef INTEGER_t GNB_CU_UP_ID_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_GNB_CU_UP_ID_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_GNB_CU_UP_ID; -asn_struct_free_f GNB_CU_UP_ID_free; -asn_struct_print_f GNB_CU_UP_ID_print; -asn_constr_check_f GNB_CU_UP_ID_constraint; -ber_type_decoder_f GNB_CU_UP_ID_decode_ber; -der_type_encoder_f GNB_CU_UP_ID_encode_der; -xer_type_decoder_f GNB_CU_UP_ID_decode_xer; -xer_type_encoder_f GNB_CU_UP_ID_encode_xer; -oer_type_decoder_f GNB_CU_UP_ID_decode_oer; -oer_type_encoder_f GNB_CU_UP_ID_encode_oer; -per_type_decoder_f GNB_CU_UP_ID_decode_uper; -per_type_encoder_f GNB_CU_UP_ID_encode_uper; -per_type_decoder_f GNB_CU_UP_ID_decode_aper; -per_type_encoder_f GNB_CU_UP_ID_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _GNB_CU_UP_ID_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ASN1c/GNB-CU-UP-Name.c b/e2sim/previous/e2apv1sim/ASN1c/GNB-CU-UP-Name.c deleted file mode 100644 index b64d5b1..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/GNB-CU-UP-Name.c +++ /dev/null @@ -1,109 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "GNB-CU-UP-Name.h" - -static const int permitted_alphabet_table_1[256] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */ - 1, 0, 0, 0, 0, 0, 0, 2, 3, 4, 0, 5, 6, 7, 8, 9, /* . '() +,-./ */ -10,11,12,13,14,15,16,17,18,19,20, 0, 0,21, 0,22, /* 0123456789: = ? */ - 0,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37, /* ABCDEFGHIJKLMNO */ -38,39,40,41,42,43,44,45,46,47,48, 0, 0, 0, 0, 0, /* PQRSTUVWXYZ */ - 0,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63, /* abcdefghijklmno */ -64,65,66,67,68,69,70,71,72,73,74, 0, 0, 0, 0, 0, /* pqrstuvwxyz */ -}; -static const int permitted_alphabet_code2value_1[74] = { -32,39,40,41,43,44,45,46,47,48,49,50,51,52,53,54, -55,56,57,58,61,63,65,66,67,68,69,70,71,72,73,74, -75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90, -97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112, -113,114,115,116,117,118,119,120,121,122,}; - - -static int check_permitted_alphabet_1(const void *sptr) { - const int *table = permitted_alphabet_table_1; - /* The underlying type is PrintableString */ - const PrintableString_t *st = (const PrintableString_t *)sptr; - const uint8_t *ch = st->buf; - const uint8_t *end = ch + st->size; - - for(; ch < end; ch++) { - uint8_t cv = *ch; - if(!table[cv]) return -1; - } - return 0; -} - -int -GNB_CU_UP_Name_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const PrintableString_t *st = (const PrintableString_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - size = st->size; - - if((size >= 1 && size <= 150) - && !check_permitted_alphabet_1(st)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int asn_PER_MAP_GNB_CU_UP_Name_1_v2c(unsigned int value) { - if(value >= sizeof(permitted_alphabet_table_1)/sizeof(permitted_alphabet_table_1[0])) - return -1; - return permitted_alphabet_table_1[value] - 1; -} -static int asn_PER_MAP_GNB_CU_UP_Name_1_c2v(unsigned int code) { - if(code >= sizeof(permitted_alphabet_code2value_1)/sizeof(permitted_alphabet_code2value_1[0])) - return -1; - return permitted_alphabet_code2value_1[code]; -} -/* - * This type is implemented using PrintableString, - * so here we adjust the DEF accordingly. - */ -static asn_oer_constraints_t asn_OER_type_GNB_CU_UP_Name_constr_1 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(0..MAX)) */}; -asn_per_constraints_t asn_PER_type_GNB_CU_UP_Name_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED, 7, 7, 32, 122 } /* (32..122) */, - { APC_CONSTRAINED | APC_EXTENSIBLE, 8, 8, 1, 150 } /* (SIZE(1..150,...)) */, - asn_PER_MAP_GNB_CU_UP_Name_1_v2c, /* Value to PER code map */ - asn_PER_MAP_GNB_CU_UP_Name_1_c2v /* PER code to value map */ -}; -static const ber_tlv_tag_t asn_DEF_GNB_CU_UP_Name_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (19 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_GNB_CU_UP_Name = { - "GNB-CU-UP-Name", - "GNB-CU-UP-Name", - &asn_OP_PrintableString, - asn_DEF_GNB_CU_UP_Name_tags_1, - sizeof(asn_DEF_GNB_CU_UP_Name_tags_1) - /sizeof(asn_DEF_GNB_CU_UP_Name_tags_1[0]), /* 1 */ - asn_DEF_GNB_CU_UP_Name_tags_1, /* Same as above */ - sizeof(asn_DEF_GNB_CU_UP_Name_tags_1) - /sizeof(asn_DEF_GNB_CU_UP_Name_tags_1[0]), /* 1 */ - { &asn_OER_type_GNB_CU_UP_Name_constr_1, &asn_PER_type_GNB_CU_UP_Name_constr_1, GNB_CU_UP_Name_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/GNB-CU-UP-Name.h b/e2sim/previous/e2apv1sim/ASN1c/GNB-CU-UP-Name.h deleted file mode 100644 index c1b9d7e..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/GNB-CU-UP-Name.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _GNB_CU_UP_Name_H_ -#define _GNB_CU_UP_Name_H_ - - -#include - -/* Including external dependencies */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* GNB-CU-UP-Name */ -typedef PrintableString_t GNB_CU_UP_Name_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_GNB_CU_UP_Name_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_GNB_CU_UP_Name; -asn_struct_free_f GNB_CU_UP_Name_free; -asn_struct_print_f GNB_CU_UP_Name_print; -asn_constr_check_f GNB_CU_UP_Name_constraint; -ber_type_decoder_f GNB_CU_UP_Name_decode_ber; -der_type_encoder_f GNB_CU_UP_Name_encode_der; -xer_type_decoder_f GNB_CU_UP_Name_decode_xer; -xer_type_encoder_f GNB_CU_UP_Name_encode_xer; -oer_type_decoder_f GNB_CU_UP_Name_decode_oer; -oer_type_encoder_f GNB_CU_UP_Name_encode_oer; -per_type_decoder_f GNB_CU_UP_Name_decode_uper; -per_type_encoder_f GNB_CU_UP_Name_encode_uper; -per_type_decoder_f GNB_CU_UP_Name_decode_aper; -per_type_encoder_f GNB_CU_UP_Name_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _GNB_CU_UP_Name_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ASN1c/GNB-DU-ID.c b/e2sim/previous/e2apv1sim/ASN1c/GNB-DU-ID.c deleted file mode 100644 index b43653e..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/GNB-DU-ID.c +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "GNB-DU-ID.h" - -int -GNB_DU_ID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const INTEGER_t *st = (const INTEGER_t *)sptr; - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if(asn_INTEGER2long(st, &value)) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value too large (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if((value >= 0 && value <= 68719476735)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using INTEGER, - * so here we adjust the DEF accordingly. - */ -static asn_oer_constraints_t asn_OER_type_GNB_DU_ID_constr_1 CC_NOTUSED = { - { 8, 1 } /* (0..68719476735) */, - -1}; -asn_per_constraints_t asn_PER_type_GNB_DU_ID_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED, 36, -1, 0, 68719476735 } /* (0..68719476735) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_GNB_DU_ID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_GNB_DU_ID = { - "GNB-DU-ID", - "GNB-DU-ID", - &asn_OP_INTEGER, - asn_DEF_GNB_DU_ID_tags_1, - sizeof(asn_DEF_GNB_DU_ID_tags_1) - /sizeof(asn_DEF_GNB_DU_ID_tags_1[0]), /* 1 */ - asn_DEF_GNB_DU_ID_tags_1, /* Same as above */ - sizeof(asn_DEF_GNB_DU_ID_tags_1) - /sizeof(asn_DEF_GNB_DU_ID_tags_1[0]), /* 1 */ - { &asn_OER_type_GNB_DU_ID_constr_1, &asn_PER_type_GNB_DU_ID_constr_1, GNB_DU_ID_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/GNB-DU-ID.h b/e2sim/previous/e2apv1sim/ASN1c/GNB-DU-ID.h deleted file mode 100644 index 65e23da..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/GNB-DU-ID.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _GNB_DU_ID_H_ -#define _GNB_DU_ID_H_ - - -#include - -/* Including external dependencies */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* GNB-DU-ID */ -typedef INTEGER_t GNB_DU_ID_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_GNB_DU_ID_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_GNB_DU_ID; -asn_struct_free_f GNB_DU_ID_free; -asn_struct_print_f GNB_DU_ID_print; -asn_constr_check_f GNB_DU_ID_constraint; -ber_type_decoder_f GNB_DU_ID_decode_ber; -der_type_encoder_f GNB_DU_ID_encode_der; -xer_type_decoder_f GNB_DU_ID_decode_xer; -xer_type_encoder_f GNB_DU_ID_encode_xer; -oer_type_decoder_f GNB_DU_ID_decode_oer; -oer_type_encoder_f GNB_DU_ID_encode_oer; -per_type_decoder_f GNB_DU_ID_decode_uper; -per_type_encoder_f GNB_DU_ID_encode_uper; -per_type_decoder_f GNB_DU_ID_decode_aper; -per_type_encoder_f GNB_DU_ID_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _GNB_DU_ID_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ASN1c/GNB-DU-Name.c b/e2sim/previous/e2apv1sim/ASN1c/GNB-DU-Name.c deleted file mode 100644 index 8ac789d..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/GNB-DU-Name.c +++ /dev/null @@ -1,109 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "GNB-DU-Name.h" - -static const int permitted_alphabet_table_1[256] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */ - 1, 0, 0, 0, 0, 0, 0, 2, 3, 4, 0, 5, 6, 7, 8, 9, /* . '() +,-./ */ -10,11,12,13,14,15,16,17,18,19,20, 0, 0,21, 0,22, /* 0123456789: = ? */ - 0,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37, /* ABCDEFGHIJKLMNO */ -38,39,40,41,42,43,44,45,46,47,48, 0, 0, 0, 0, 0, /* PQRSTUVWXYZ */ - 0,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63, /* abcdefghijklmno */ -64,65,66,67,68,69,70,71,72,73,74, 0, 0, 0, 0, 0, /* pqrstuvwxyz */ -}; -static const int permitted_alphabet_code2value_1[74] = { -32,39,40,41,43,44,45,46,47,48,49,50,51,52,53,54, -55,56,57,58,61,63,65,66,67,68,69,70,71,72,73,74, -75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90, -97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112, -113,114,115,116,117,118,119,120,121,122,}; - - -static int check_permitted_alphabet_1(const void *sptr) { - const int *table = permitted_alphabet_table_1; - /* The underlying type is PrintableString */ - const PrintableString_t *st = (const PrintableString_t *)sptr; - const uint8_t *ch = st->buf; - const uint8_t *end = ch + st->size; - - for(; ch < end; ch++) { - uint8_t cv = *ch; - if(!table[cv]) return -1; - } - return 0; -} - -int -GNB_DU_Name_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const PrintableString_t *st = (const PrintableString_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - size = st->size; - - if((size >= 1 && size <= 150) - && !check_permitted_alphabet_1(st)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int asn_PER_MAP_GNB_DU_Name_1_v2c(unsigned int value) { - if(value >= sizeof(permitted_alphabet_table_1)/sizeof(permitted_alphabet_table_1[0])) - return -1; - return permitted_alphabet_table_1[value] - 1; -} -static int asn_PER_MAP_GNB_DU_Name_1_c2v(unsigned int code) { - if(code >= sizeof(permitted_alphabet_code2value_1)/sizeof(permitted_alphabet_code2value_1[0])) - return -1; - return permitted_alphabet_code2value_1[code]; -} -/* - * This type is implemented using PrintableString, - * so here we adjust the DEF accordingly. - */ -static asn_oer_constraints_t asn_OER_type_GNB_DU_Name_constr_1 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(0..MAX)) */}; -asn_per_constraints_t asn_PER_type_GNB_DU_Name_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED, 7, 7, 32, 122 } /* (32..122) */, - { APC_CONSTRAINED | APC_EXTENSIBLE, 8, 8, 1, 150 } /* (SIZE(1..150,...)) */, - asn_PER_MAP_GNB_DU_Name_1_v2c, /* Value to PER code map */ - asn_PER_MAP_GNB_DU_Name_1_c2v /* PER code to value map */ -}; -static const ber_tlv_tag_t asn_DEF_GNB_DU_Name_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (19 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_GNB_DU_Name = { - "GNB-DU-Name", - "GNB-DU-Name", - &asn_OP_PrintableString, - asn_DEF_GNB_DU_Name_tags_1, - sizeof(asn_DEF_GNB_DU_Name_tags_1) - /sizeof(asn_DEF_GNB_DU_Name_tags_1[0]), /* 1 */ - asn_DEF_GNB_DU_Name_tags_1, /* Same as above */ - sizeof(asn_DEF_GNB_DU_Name_tags_1) - /sizeof(asn_DEF_GNB_DU_Name_tags_1[0]), /* 1 */ - { &asn_OER_type_GNB_DU_Name_constr_1, &asn_PER_type_GNB_DU_Name_constr_1, GNB_DU_Name_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/GNB-DU-Name.h b/e2sim/previous/e2apv1sim/ASN1c/GNB-DU-Name.h deleted file mode 100644 index e4994e6..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/GNB-DU-Name.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _GNB_DU_Name_H_ -#define _GNB_DU_Name_H_ - - -#include - -/* Including external dependencies */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* GNB-DU-Name */ -typedef PrintableString_t GNB_DU_Name_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_GNB_DU_Name_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_GNB_DU_Name; -asn_struct_free_f GNB_DU_Name_free; -asn_struct_print_f GNB_DU_Name_print; -asn_constr_check_f GNB_DU_Name_constraint; -ber_type_decoder_f GNB_DU_Name_decode_ber; -der_type_encoder_f GNB_DU_Name_encode_der; -xer_type_decoder_f GNB_DU_Name_decode_xer; -xer_type_encoder_f GNB_DU_Name_encode_xer; -oer_type_decoder_f GNB_DU_Name_decode_oer; -oer_type_encoder_f GNB_DU_Name_encode_oer; -per_type_decoder_f GNB_DU_Name_decode_uper; -per_type_encoder_f GNB_DU_Name_encode_uper; -per_type_decoder_f GNB_DU_Name_decode_aper; -per_type_encoder_f GNB_DU_Name_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _GNB_DU_Name_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ASN1c/GNB-ID-Choice.c b/e2sim/previous/e2apv1sim/ASN1c/GNB-ID-Choice.c deleted file mode 100644 index 81bc2b0..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/GNB-ID-Choice.c +++ /dev/null @@ -1,94 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "GNB-ID-Choice.h" - -static int -memb_gnb_ID_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if(st->size > 0) { - /* Size in bits */ - size = 8 * st->size - (st->bits_unused & 0x07); - } else { - size = 0; - } - - if((size >= 22 && size <= 32)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_oer_constraints_t asn_OER_memb_gnb_ID_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(22..32)) */}; -static asn_per_constraints_t asn_PER_memb_gnb_ID_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 4, 4, 22, 32 } /* (SIZE(22..32)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_type_GNB_ID_Choice_constr_1 CC_NOTUSED = { - { 0, 0 }, - -1}; -asn_per_constraints_t asn_PER_type_GNB_ID_Choice_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 0, 0 } /* (0..0,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_GNB_ID_Choice_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct GNB_ID_Choice, choice.gnb_ID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_BIT_STRING, - 0, - { &asn_OER_memb_gnb_ID_constr_2, &asn_PER_memb_gnb_ID_constr_2, memb_gnb_ID_constraint_1 }, - 0, 0, /* No default value */ - "gnb-ID" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_GNB_ID_Choice_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* gnb-ID */ -}; -asn_CHOICE_specifics_t asn_SPC_GNB_ID_Choice_specs_1 = { - sizeof(struct GNB_ID_Choice), - offsetof(struct GNB_ID_Choice, _asn_ctx), - offsetof(struct GNB_ID_Choice, present), - sizeof(((struct GNB_ID_Choice *)0)->present), - asn_MAP_GNB_ID_Choice_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, - 1 /* Extensions start */ -}; -asn_TYPE_descriptor_t asn_DEF_GNB_ID_Choice = { - "GNB-ID-Choice", - "GNB-ID-Choice", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { &asn_OER_type_GNB_ID_Choice_constr_1, &asn_PER_type_GNB_ID_Choice_constr_1, CHOICE_constraint }, - asn_MBR_GNB_ID_Choice_1, - 1, /* Elements count */ - &asn_SPC_GNB_ID_Choice_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/GNB-ID-Choice.h b/e2sim/previous/e2apv1sim/ASN1c/GNB-ID-Choice.h deleted file mode 100644 index cf5438c..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/GNB-ID-Choice.h +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _GNB_ID_Choice_H_ -#define _GNB_ID_Choice_H_ - - -#include - -/* Including external dependencies */ -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum GNB_ID_Choice_PR { - GNB_ID_Choice_PR_NOTHING, /* No components present */ - GNB_ID_Choice_PR_gnb_ID - /* Extensions may appear below */ - -} GNB_ID_Choice_PR; - -/* GNB-ID-Choice */ -typedef struct GNB_ID_Choice { - GNB_ID_Choice_PR present; - union GNB_ID_Choice_u { - BIT_STRING_t gnb_ID; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} GNB_ID_Choice_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_GNB_ID_Choice; -extern asn_CHOICE_specifics_t asn_SPC_GNB_ID_Choice_specs_1; -extern asn_TYPE_member_t asn_MBR_GNB_ID_Choice_1[1]; -extern asn_per_constraints_t asn_PER_type_GNB_ID_Choice_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _GNB_ID_Choice_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ASN1c/GNB-Name.c b/e2sim/previous/e2apv1sim/ASN1c/GNB-Name.c deleted file mode 100644 index aeee9d8..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/GNB-Name.c +++ /dev/null @@ -1,75 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "GNB-Name.h" - -static asn_oer_constraints_t asn_OER_type_GNB_Name_constr_1 CC_NOTUSED = { - { 0, 0 }, - -1}; -asn_per_constraints_t asn_PER_type_GNB_Name_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 2 } /* (0..2,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_GNB_Name_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct GNB_Name, choice.gNB_DU_Name), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GNB_DU_Name, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "gNB-DU-Name" - }, - { ATF_NOFLAGS, 0, offsetof(struct GNB_Name, choice.gNB_CU_CP_Name), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GNB_CU_CP_Name, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "gNB-CU-CP-Name" - }, - { ATF_NOFLAGS, 0, offsetof(struct GNB_Name, choice.gNB_CU_UP_Name), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GNB_CU_UP_Name, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "gNB-CU-UP-Name" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_GNB_Name_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* gNB-DU-Name */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* gNB-CU-CP-Name */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* gNB-CU-UP-Name */ -}; -asn_CHOICE_specifics_t asn_SPC_GNB_Name_specs_1 = { - sizeof(struct GNB_Name), - offsetof(struct GNB_Name, _asn_ctx), - offsetof(struct GNB_Name, present), - sizeof(((struct GNB_Name *)0)->present), - asn_MAP_GNB_Name_tag2el_1, - 3, /* Count of tags in the map */ - 0, 0, - 3 /* Extensions start */ -}; -asn_TYPE_descriptor_t asn_DEF_GNB_Name = { - "GNB-Name", - "GNB-Name", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { &asn_OER_type_GNB_Name_constr_1, &asn_PER_type_GNB_Name_constr_1, CHOICE_constraint }, - asn_MBR_GNB_Name_1, - 3, /* Elements count */ - &asn_SPC_GNB_Name_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/GNB-Name.h b/e2sim/previous/e2apv1sim/ASN1c/GNB-Name.h deleted file mode 100644 index 3c69172..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/GNB-Name.h +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _GNB_Name_H_ -#define _GNB_Name_H_ - - -#include - -/* Including external dependencies */ -#include "GNB-DU-Name.h" -#include "GNB-CU-CP-Name.h" -#include "GNB-CU-UP-Name.h" -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum GNB_Name_PR { - GNB_Name_PR_NOTHING, /* No components present */ - GNB_Name_PR_gNB_DU_Name, - GNB_Name_PR_gNB_CU_CP_Name, - GNB_Name_PR_gNB_CU_UP_Name - /* Extensions may appear below */ - -} GNB_Name_PR; - -/* GNB-Name */ -typedef struct GNB_Name { - GNB_Name_PR present; - union GNB_Name_u { - GNB_DU_Name_t gNB_DU_Name; - GNB_CU_CP_Name_t gNB_CU_CP_Name; - GNB_CU_UP_Name_t gNB_CU_UP_Name; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} GNB_Name_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_GNB_Name; -extern asn_CHOICE_specifics_t asn_SPC_GNB_Name_specs_1; -extern asn_TYPE_member_t asn_MBR_GNB_Name_1[3]; -extern asn_per_constraints_t asn_PER_type_GNB_Name_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _GNB_Name_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ASN1c/GlobalE2node-ID.c b/e2sim/previous/e2apv1sim/ASN1c/GlobalE2node-ID.c deleted file mode 100644 index 0b194e6..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/GlobalE2node-ID.c +++ /dev/null @@ -1,86 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "GlobalE2node-ID.h" - -#include "GlobalE2node-gNB-ID.h" -#include "GlobalE2node-en-gNB-ID.h" -#include "GlobalE2node-ng-eNB-ID.h" -#include "GlobalE2node-eNB-ID.h" -static asn_per_constraints_t asn_PER_type_GlobalE2node_ID_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 3 } /* (0..3,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_GlobalE2node_ID_1[] = { - { ATF_POINTER, 0, offsetof(struct GlobalE2node_ID, choice.gNB), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GlobalE2node_gNB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "gNB" - }, - { ATF_POINTER, 0, offsetof(struct GlobalE2node_ID, choice.en_gNB), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GlobalE2node_en_gNB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "en-gNB" - }, - { ATF_POINTER, 0, offsetof(struct GlobalE2node_ID, choice.ng_eNB), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GlobalE2node_ng_eNB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ng-eNB" - }, - { ATF_POINTER, 0, offsetof(struct GlobalE2node_ID, choice.eNB), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GlobalE2node_eNB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "eNB" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_GlobalE2node_ID_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* gNB */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* en-gNB */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* ng-eNB */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* eNB */ -}; -static asn_CHOICE_specifics_t asn_SPC_GlobalE2node_ID_specs_1 = { - sizeof(struct GlobalE2node_ID), - offsetof(struct GlobalE2node_ID, _asn_ctx), - offsetof(struct GlobalE2node_ID, present), - sizeof(((struct GlobalE2node_ID *)0)->present), - asn_MAP_GlobalE2node_ID_tag2el_1, - 4, /* Count of tags in the map */ - 0, 0, - 4 /* Extensions start */ -}; -asn_TYPE_descriptor_t asn_DEF_GlobalE2node_ID = { - "GlobalE2node-ID", - "GlobalE2node-ID", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, &asn_PER_type_GlobalE2node_ID_constr_1, CHOICE_constraint }, - asn_MBR_GlobalE2node_ID_1, - 4, /* Elements count */ - &asn_SPC_GlobalE2node_ID_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/GlobalE2node-ID.h b/e2sim/previous/e2apv1sim/ASN1c/GlobalE2node-ID.h deleted file mode 100644 index 339797e..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/GlobalE2node-ID.h +++ /dev/null @@ -1,64 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _GlobalE2node_ID_H_ -#define _GlobalE2node_ID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "constr_CHOICE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum GlobalE2node_ID_PR { - GlobalE2node_ID_PR_NOTHING, /* No components present */ - GlobalE2node_ID_PR_gNB, - GlobalE2node_ID_PR_en_gNB, - GlobalE2node_ID_PR_ng_eNB, - GlobalE2node_ID_PR_eNB - /* Extensions may appear below */ - -} GlobalE2node_ID_PR; - -/* Forward declarations */ -struct GlobalE2node_gNB_ID; -struct GlobalE2node_en_gNB_ID; -struct GlobalE2node_ng_eNB_ID; -struct GlobalE2node_eNB_ID; - -/* GlobalE2node-ID */ -typedef struct GlobalE2node_ID { - GlobalE2node_ID_PR present; - union GlobalE2node_ID_u { - struct GlobalE2node_gNB_ID *gNB; - struct GlobalE2node_en_gNB_ID *en_gNB; - struct GlobalE2node_ng_eNB_ID *ng_eNB; - struct GlobalE2node_eNB_ID *eNB; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} GlobalE2node_ID_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_GlobalE2node_ID; - -#ifdef __cplusplus -} -#endif - -#endif /* _GlobalE2node_ID_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ASN1c/GlobalE2node-eNB-ID.c b/e2sim/previous/e2apv1sim/ASN1c/GlobalE2node-eNB-ID.c deleted file mode 100644 index f31a018..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/GlobalE2node-eNB-ID.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "GlobalE2node-eNB-ID.h" - -asn_TYPE_member_t asn_MBR_GlobalE2node_eNB_ID_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct GlobalE2node_eNB_ID, global_eNB_ID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GlobalENB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "global-eNB-ID" - }, -}; -static const ber_tlv_tag_t asn_DEF_GlobalE2node_eNB_ID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_GlobalE2node_eNB_ID_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* global-eNB-ID */ -}; -asn_SEQUENCE_specifics_t asn_SPC_GlobalE2node_eNB_ID_specs_1 = { - sizeof(struct GlobalE2node_eNB_ID), - offsetof(struct GlobalE2node_eNB_ID, _asn_ctx), - asn_MAP_GlobalE2node_eNB_ID_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_GlobalE2node_eNB_ID = { - "GlobalE2node-eNB-ID", - "GlobalE2node-eNB-ID", - &asn_OP_SEQUENCE, - asn_DEF_GlobalE2node_eNB_ID_tags_1, - sizeof(asn_DEF_GlobalE2node_eNB_ID_tags_1) - /sizeof(asn_DEF_GlobalE2node_eNB_ID_tags_1[0]), /* 1 */ - asn_DEF_GlobalE2node_eNB_ID_tags_1, /* Same as above */ - sizeof(asn_DEF_GlobalE2node_eNB_ID_tags_1) - /sizeof(asn_DEF_GlobalE2node_eNB_ID_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_GlobalE2node_eNB_ID_1, - 1, /* Elements count */ - &asn_SPC_GlobalE2node_eNB_ID_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/GlobalE2node-eNB-ID.h b/e2sim/previous/e2apv1sim/ASN1c/GlobalE2node-eNB-ID.h deleted file mode 100644 index 6047414..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/GlobalE2node-eNB-ID.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _GlobalE2node_eNB_ID_H_ -#define _GlobalE2node_eNB_ID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "GlobalENB-ID.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* GlobalE2node-eNB-ID */ -typedef struct GlobalE2node_eNB_ID { - GlobalENB_ID_t global_eNB_ID; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} GlobalE2node_eNB_ID_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_GlobalE2node_eNB_ID; -extern asn_SEQUENCE_specifics_t asn_SPC_GlobalE2node_eNB_ID_specs_1; -extern asn_TYPE_member_t asn_MBR_GlobalE2node_eNB_ID_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _GlobalE2node_eNB_ID_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ASN1c/GlobalE2node-en-gNB-ID.c b/e2sim/previous/e2apv1sim/ASN1c/GlobalE2node-en-gNB-ID.c deleted file mode 100644 index 2728634..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/GlobalE2node-en-gNB-ID.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "GlobalE2node-en-gNB-ID.h" - -asn_TYPE_member_t asn_MBR_GlobalE2node_en_gNB_ID_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct GlobalE2node_en_gNB_ID, global_gNB_ID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GlobalenGNB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "global-gNB-ID" - }, -}; -static const ber_tlv_tag_t asn_DEF_GlobalE2node_en_gNB_ID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_GlobalE2node_en_gNB_ID_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* global-gNB-ID */ -}; -asn_SEQUENCE_specifics_t asn_SPC_GlobalE2node_en_gNB_ID_specs_1 = { - sizeof(struct GlobalE2node_en_gNB_ID), - offsetof(struct GlobalE2node_en_gNB_ID, _asn_ctx), - asn_MAP_GlobalE2node_en_gNB_ID_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_GlobalE2node_en_gNB_ID = { - "GlobalE2node-en-gNB-ID", - "GlobalE2node-en-gNB-ID", - &asn_OP_SEQUENCE, - asn_DEF_GlobalE2node_en_gNB_ID_tags_1, - sizeof(asn_DEF_GlobalE2node_en_gNB_ID_tags_1) - /sizeof(asn_DEF_GlobalE2node_en_gNB_ID_tags_1[0]), /* 1 */ - asn_DEF_GlobalE2node_en_gNB_ID_tags_1, /* Same as above */ - sizeof(asn_DEF_GlobalE2node_en_gNB_ID_tags_1) - /sizeof(asn_DEF_GlobalE2node_en_gNB_ID_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_GlobalE2node_en_gNB_ID_1, - 1, /* Elements count */ - &asn_SPC_GlobalE2node_en_gNB_ID_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/GlobalE2node-en-gNB-ID.h b/e2sim/previous/e2apv1sim/ASN1c/GlobalE2node-en-gNB-ID.h deleted file mode 100644 index 0bae91d..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/GlobalE2node-en-gNB-ID.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _GlobalE2node_en_gNB_ID_H_ -#define _GlobalE2node_en_gNB_ID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "GlobalenGNB-ID.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* GlobalE2node-en-gNB-ID */ -typedef struct GlobalE2node_en_gNB_ID { - GlobalenGNB_ID_t global_gNB_ID; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} GlobalE2node_en_gNB_ID_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_GlobalE2node_en_gNB_ID; -extern asn_SEQUENCE_specifics_t asn_SPC_GlobalE2node_en_gNB_ID_specs_1; -extern asn_TYPE_member_t asn_MBR_GlobalE2node_en_gNB_ID_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _GlobalE2node_en_gNB_ID_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ASN1c/GlobalE2node-gNB-ID.c b/e2sim/previous/e2apv1sim/ASN1c/GlobalE2node-gNB-ID.c deleted file mode 100644 index 25f0346..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/GlobalE2node-gNB-ID.c +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "GlobalE2node-gNB-ID.h" - -asn_TYPE_member_t asn_MBR_GlobalE2node_gNB_ID_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct GlobalE2node_gNB_ID, global_gNB_ID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GlobalgNB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "global-gNB-ID" - }, - { ATF_POINTER, 2, offsetof(struct GlobalE2node_gNB_ID, gNB_CU_UP_ID), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GNB_CU_UP_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "gNB-CU-UP-ID" - }, - { ATF_POINTER, 1, offsetof(struct GlobalE2node_gNB_ID, gNB_DU_ID), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GNB_DU_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "gNB-DU-ID" - }, -}; -static const int asn_MAP_GlobalE2node_gNB_ID_oms_1[] = { 1, 2 }; -static const ber_tlv_tag_t asn_DEF_GlobalE2node_gNB_ID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_GlobalE2node_gNB_ID_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* global-gNB-ID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* gNB-CU-UP-ID */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* gNB-DU-ID */ -}; -asn_SEQUENCE_specifics_t asn_SPC_GlobalE2node_gNB_ID_specs_1 = { - sizeof(struct GlobalE2node_gNB_ID), - offsetof(struct GlobalE2node_gNB_ID, _asn_ctx), - asn_MAP_GlobalE2node_gNB_ID_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_GlobalE2node_gNB_ID_oms_1, /* Optional members */ - 2, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_GlobalE2node_gNB_ID = { - "GlobalE2node-gNB-ID", - "GlobalE2node-gNB-ID", - &asn_OP_SEQUENCE, - asn_DEF_GlobalE2node_gNB_ID_tags_1, - sizeof(asn_DEF_GlobalE2node_gNB_ID_tags_1) - /sizeof(asn_DEF_GlobalE2node_gNB_ID_tags_1[0]), /* 1 */ - asn_DEF_GlobalE2node_gNB_ID_tags_1, /* Same as above */ - sizeof(asn_DEF_GlobalE2node_gNB_ID_tags_1) - /sizeof(asn_DEF_GlobalE2node_gNB_ID_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_GlobalE2node_gNB_ID_1, - 3, /* Elements count */ - &asn_SPC_GlobalE2node_gNB_ID_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/GlobalE2node-gNB-ID.h b/e2sim/previous/e2apv1sim/ASN1c/GlobalE2node-gNB-ID.h deleted file mode 100644 index 2f36099..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/GlobalE2node-gNB-ID.h +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _GlobalE2node_gNB_ID_H_ -#define _GlobalE2node_gNB_ID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "GlobalgNB-ID.h" -#include "GNB-CU-UP-ID.h" -#include "GNB-DU-ID.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* GlobalE2node-gNB-ID */ -typedef struct GlobalE2node_gNB_ID { - GlobalgNB_ID_t global_gNB_ID; - GNB_CU_UP_ID_t *gNB_CU_UP_ID; /* OPTIONAL */ - GNB_DU_ID_t *gNB_DU_ID; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} GlobalE2node_gNB_ID_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_GlobalE2node_gNB_ID; -extern asn_SEQUENCE_specifics_t asn_SPC_GlobalE2node_gNB_ID_specs_1; -extern asn_TYPE_member_t asn_MBR_GlobalE2node_gNB_ID_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _GlobalE2node_gNB_ID_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ASN1c/GlobalE2node-ng-eNB-ID.c b/e2sim/previous/e2apv1sim/ASN1c/GlobalE2node-ng-eNB-ID.c deleted file mode 100644 index 91e427b..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/GlobalE2node-ng-eNB-ID.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "GlobalE2node-ng-eNB-ID.h" - -asn_TYPE_member_t asn_MBR_GlobalE2node_ng_eNB_ID_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct GlobalE2node_ng_eNB_ID, global_ng_eNB_ID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GlobalngeNB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "global-ng-eNB-ID" - }, -}; -static const ber_tlv_tag_t asn_DEF_GlobalE2node_ng_eNB_ID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_GlobalE2node_ng_eNB_ID_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* global-ng-eNB-ID */ -}; -asn_SEQUENCE_specifics_t asn_SPC_GlobalE2node_ng_eNB_ID_specs_1 = { - sizeof(struct GlobalE2node_ng_eNB_ID), - offsetof(struct GlobalE2node_ng_eNB_ID, _asn_ctx), - asn_MAP_GlobalE2node_ng_eNB_ID_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_GlobalE2node_ng_eNB_ID = { - "GlobalE2node-ng-eNB-ID", - "GlobalE2node-ng-eNB-ID", - &asn_OP_SEQUENCE, - asn_DEF_GlobalE2node_ng_eNB_ID_tags_1, - sizeof(asn_DEF_GlobalE2node_ng_eNB_ID_tags_1) - /sizeof(asn_DEF_GlobalE2node_ng_eNB_ID_tags_1[0]), /* 1 */ - asn_DEF_GlobalE2node_ng_eNB_ID_tags_1, /* Same as above */ - sizeof(asn_DEF_GlobalE2node_ng_eNB_ID_tags_1) - /sizeof(asn_DEF_GlobalE2node_ng_eNB_ID_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_GlobalE2node_ng_eNB_ID_1, - 1, /* Elements count */ - &asn_SPC_GlobalE2node_ng_eNB_ID_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/GlobalE2node-ng-eNB-ID.h b/e2sim/previous/e2apv1sim/ASN1c/GlobalE2node-ng-eNB-ID.h deleted file mode 100644 index d6767bf..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/GlobalE2node-ng-eNB-ID.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _GlobalE2node_ng_eNB_ID_H_ -#define _GlobalE2node_ng_eNB_ID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "GlobalngeNB-ID.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* GlobalE2node-ng-eNB-ID */ -typedef struct GlobalE2node_ng_eNB_ID { - GlobalngeNB_ID_t global_ng_eNB_ID; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} GlobalE2node_ng_eNB_ID_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_GlobalE2node_ng_eNB_ID; -extern asn_SEQUENCE_specifics_t asn_SPC_GlobalE2node_ng_eNB_ID_specs_1; -extern asn_TYPE_member_t asn_MBR_GlobalE2node_ng_eNB_ID_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _GlobalE2node_ng_eNB_ID_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ASN1c/GlobalENB-ID.c b/e2sim/previous/e2apv1sim/ASN1c/GlobalENB-ID.c deleted file mode 100644 index 58f3724..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/GlobalENB-ID.c +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "GlobalENB-ID.h" - -asn_TYPE_member_t asn_MBR_GlobalENB_ID_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct GlobalENB_ID, pLMN_Identity), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_PLMN_Identity, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "pLMN-Identity" - }, - { ATF_NOFLAGS, 0, offsetof(struct GlobalENB_ID, eNB_ID), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_ENB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "eNB-ID" - }, -}; -static const ber_tlv_tag_t asn_DEF_GlobalENB_ID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_GlobalENB_ID_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pLMN-Identity */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* eNB-ID */ -}; -asn_SEQUENCE_specifics_t asn_SPC_GlobalENB_ID_specs_1 = { - sizeof(struct GlobalENB_ID), - offsetof(struct GlobalENB_ID, _asn_ctx), - asn_MAP_GlobalENB_ID_tag2el_1, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 2, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_GlobalENB_ID = { - "GlobalENB-ID", - "GlobalENB-ID", - &asn_OP_SEQUENCE, - asn_DEF_GlobalENB_ID_tags_1, - sizeof(asn_DEF_GlobalENB_ID_tags_1) - /sizeof(asn_DEF_GlobalENB_ID_tags_1[0]), /* 1 */ - asn_DEF_GlobalENB_ID_tags_1, /* Same as above */ - sizeof(asn_DEF_GlobalENB_ID_tags_1) - /sizeof(asn_DEF_GlobalENB_ID_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_GlobalENB_ID_1, - 2, /* Elements count */ - &asn_SPC_GlobalENB_ID_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/GlobalENB-ID.h b/e2sim/previous/e2apv1sim/ASN1c/GlobalENB-ID.h deleted file mode 100644 index bd653ae..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/GlobalENB-ID.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _GlobalENB_ID_H_ -#define _GlobalENB_ID_H_ - - -#include - -/* Including external dependencies */ -#include "PLMN-Identity.h" -#include "ENB-ID.h" -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* GlobalENB-ID */ -typedef struct GlobalENB_ID { - PLMN_Identity_t pLMN_Identity; - ENB_ID_t eNB_ID; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} GlobalENB_ID_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_GlobalENB_ID; -extern asn_SEQUENCE_specifics_t asn_SPC_GlobalENB_ID_specs_1; -extern asn_TYPE_member_t asn_MBR_GlobalENB_ID_1[2]; - -#ifdef __cplusplus -} -#endif - -#endif /* _GlobalENB_ID_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ASN1c/GlobalKPMnode-ID.c b/e2sim/previous/e2apv1sim/ASN1c/GlobalKPMnode-ID.c deleted file mode 100644 index 5202400..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/GlobalKPMnode-ID.c +++ /dev/null @@ -1,85 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "GlobalKPMnode-ID.h" - -static asn_oer_constraints_t asn_OER_type_GlobalKPMnode_ID_constr_1 CC_NOTUSED = { - { 0, 0 }, - -1}; -asn_per_constraints_t asn_PER_type_GlobalKPMnode_ID_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 3 } /* (0..3,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_GlobalKPMnode_ID_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct GlobalKPMnode_ID, choice.gNB), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GlobalKPMnode_gNB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "gNB" - }, - { ATF_NOFLAGS, 0, offsetof(struct GlobalKPMnode_ID, choice.en_gNB), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GlobalKPMnode_en_gNB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "en-gNB" - }, - { ATF_NOFLAGS, 0, offsetof(struct GlobalKPMnode_ID, choice.ng_eNB), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GlobalKPMnode_ng_eNB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ng-eNB" - }, - { ATF_NOFLAGS, 0, offsetof(struct GlobalKPMnode_ID, choice.eNB), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GlobalKPMnode_eNB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "eNB" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_GlobalKPMnode_ID_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* gNB */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* en-gNB */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* ng-eNB */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* eNB */ -}; -asn_CHOICE_specifics_t asn_SPC_GlobalKPMnode_ID_specs_1 = { - sizeof(struct GlobalKPMnode_ID), - offsetof(struct GlobalKPMnode_ID, _asn_ctx), - offsetof(struct GlobalKPMnode_ID, present), - sizeof(((struct GlobalKPMnode_ID *)0)->present), - asn_MAP_GlobalKPMnode_ID_tag2el_1, - 4, /* Count of tags in the map */ - 0, 0, - 4 /* Extensions start */ -}; -asn_TYPE_descriptor_t asn_DEF_GlobalKPMnode_ID = { - "GlobalKPMnode-ID", - "GlobalKPMnode-ID", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { &asn_OER_type_GlobalKPMnode_ID_constr_1, &asn_PER_type_GlobalKPMnode_ID_constr_1, CHOICE_constraint }, - asn_MBR_GlobalKPMnode_ID_1, - 4, /* Elements count */ - &asn_SPC_GlobalKPMnode_ID_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/GlobalKPMnode-ID.h b/e2sim/previous/e2apv1sim/ASN1c/GlobalKPMnode-ID.h deleted file mode 100644 index a93e881..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/GlobalKPMnode-ID.h +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _GlobalKPMnode_ID_H_ -#define _GlobalKPMnode_ID_H_ - - -#include - -/* Including external dependencies */ -#include "GlobalKPMnode-gNB-ID.h" -#include "GlobalKPMnode-en-gNB-ID.h" -#include "GlobalKPMnode-ng-eNB-ID.h" -#include "GlobalKPMnode-eNB-ID.h" -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum GlobalKPMnode_ID_PR { - GlobalKPMnode_ID_PR_NOTHING, /* No components present */ - GlobalKPMnode_ID_PR_gNB, - GlobalKPMnode_ID_PR_en_gNB, - GlobalKPMnode_ID_PR_ng_eNB, - GlobalKPMnode_ID_PR_eNB - /* Extensions may appear below */ - -} GlobalKPMnode_ID_PR; - -/* GlobalKPMnode-ID */ -typedef struct GlobalKPMnode_ID { - GlobalKPMnode_ID_PR present; - union GlobalKPMnode_ID_u { - GlobalKPMnode_gNB_ID_t gNB; - GlobalKPMnode_en_gNB_ID_t en_gNB; - GlobalKPMnode_ng_eNB_ID_t ng_eNB; - GlobalKPMnode_eNB_ID_t eNB; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} GlobalKPMnode_ID_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_GlobalKPMnode_ID; -extern asn_CHOICE_specifics_t asn_SPC_GlobalKPMnode_ID_specs_1; -extern asn_TYPE_member_t asn_MBR_GlobalKPMnode_ID_1[4]; -extern asn_per_constraints_t asn_PER_type_GlobalKPMnode_ID_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _GlobalKPMnode_ID_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ASN1c/GlobalKPMnode-eNB-ID.c b/e2sim/previous/e2apv1sim/ASN1c/GlobalKPMnode-eNB-ID.c deleted file mode 100644 index e4039b9..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/GlobalKPMnode-eNB-ID.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "GlobalKPMnode-eNB-ID.h" - -asn_TYPE_member_t asn_MBR_GlobalKPMnode_eNB_ID_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct GlobalKPMnode_eNB_ID, global_eNB_ID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GlobalENB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "global-eNB-ID" - }, -}; -static const ber_tlv_tag_t asn_DEF_GlobalKPMnode_eNB_ID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_GlobalKPMnode_eNB_ID_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* global-eNB-ID */ -}; -asn_SEQUENCE_specifics_t asn_SPC_GlobalKPMnode_eNB_ID_specs_1 = { - sizeof(struct GlobalKPMnode_eNB_ID), - offsetof(struct GlobalKPMnode_eNB_ID, _asn_ctx), - asn_MAP_GlobalKPMnode_eNB_ID_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_GlobalKPMnode_eNB_ID = { - "GlobalKPMnode-eNB-ID", - "GlobalKPMnode-eNB-ID", - &asn_OP_SEQUENCE, - asn_DEF_GlobalKPMnode_eNB_ID_tags_1, - sizeof(asn_DEF_GlobalKPMnode_eNB_ID_tags_1) - /sizeof(asn_DEF_GlobalKPMnode_eNB_ID_tags_1[0]), /* 1 */ - asn_DEF_GlobalKPMnode_eNB_ID_tags_1, /* Same as above */ - sizeof(asn_DEF_GlobalKPMnode_eNB_ID_tags_1) - /sizeof(asn_DEF_GlobalKPMnode_eNB_ID_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_GlobalKPMnode_eNB_ID_1, - 1, /* Elements count */ - &asn_SPC_GlobalKPMnode_eNB_ID_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/GlobalKPMnode-eNB-ID.h b/e2sim/previous/e2apv1sim/ASN1c/GlobalKPMnode-eNB-ID.h deleted file mode 100644 index 9941095..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/GlobalKPMnode-eNB-ID.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _GlobalKPMnode_eNB_ID_H_ -#define _GlobalKPMnode_eNB_ID_H_ - - -#include - -/* Including external dependencies */ -#include "GlobalENB-ID.h" -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* GlobalKPMnode-eNB-ID */ -typedef struct GlobalKPMnode_eNB_ID { - GlobalENB_ID_t global_eNB_ID; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} GlobalKPMnode_eNB_ID_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_GlobalKPMnode_eNB_ID; -extern asn_SEQUENCE_specifics_t asn_SPC_GlobalKPMnode_eNB_ID_specs_1; -extern asn_TYPE_member_t asn_MBR_GlobalKPMnode_eNB_ID_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _GlobalKPMnode_eNB_ID_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ASN1c/GlobalKPMnode-en-gNB-ID.c b/e2sim/previous/e2apv1sim/ASN1c/GlobalKPMnode-en-gNB-ID.c deleted file mode 100644 index 68e34d7..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/GlobalKPMnode-en-gNB-ID.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "GlobalKPMnode-en-gNB-ID.h" - -asn_TYPE_member_t asn_MBR_GlobalKPMnode_en_gNB_ID_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct GlobalKPMnode_en_gNB_ID, global_gNB_ID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GlobalenGNB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "global-gNB-ID" - }, -}; -static const ber_tlv_tag_t asn_DEF_GlobalKPMnode_en_gNB_ID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_GlobalKPMnode_en_gNB_ID_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* global-gNB-ID */ -}; -asn_SEQUENCE_specifics_t asn_SPC_GlobalKPMnode_en_gNB_ID_specs_1 = { - sizeof(struct GlobalKPMnode_en_gNB_ID), - offsetof(struct GlobalKPMnode_en_gNB_ID, _asn_ctx), - asn_MAP_GlobalKPMnode_en_gNB_ID_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_GlobalKPMnode_en_gNB_ID = { - "GlobalKPMnode-en-gNB-ID", - "GlobalKPMnode-en-gNB-ID", - &asn_OP_SEQUENCE, - asn_DEF_GlobalKPMnode_en_gNB_ID_tags_1, - sizeof(asn_DEF_GlobalKPMnode_en_gNB_ID_tags_1) - /sizeof(asn_DEF_GlobalKPMnode_en_gNB_ID_tags_1[0]), /* 1 */ - asn_DEF_GlobalKPMnode_en_gNB_ID_tags_1, /* Same as above */ - sizeof(asn_DEF_GlobalKPMnode_en_gNB_ID_tags_1) - /sizeof(asn_DEF_GlobalKPMnode_en_gNB_ID_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_GlobalKPMnode_en_gNB_ID_1, - 1, /* Elements count */ - &asn_SPC_GlobalKPMnode_en_gNB_ID_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/GlobalKPMnode-en-gNB-ID.h b/e2sim/previous/e2apv1sim/ASN1c/GlobalKPMnode-en-gNB-ID.h deleted file mode 100644 index 7994b62..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/GlobalKPMnode-en-gNB-ID.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _GlobalKPMnode_en_gNB_ID_H_ -#define _GlobalKPMnode_en_gNB_ID_H_ - - -#include - -/* Including external dependencies */ -#include "GlobalenGNB-ID.h" -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* GlobalKPMnode-en-gNB-ID */ -typedef struct GlobalKPMnode_en_gNB_ID { - GlobalenGNB_ID_t global_gNB_ID; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} GlobalKPMnode_en_gNB_ID_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_GlobalKPMnode_en_gNB_ID; -extern asn_SEQUENCE_specifics_t asn_SPC_GlobalKPMnode_en_gNB_ID_specs_1; -extern asn_TYPE_member_t asn_MBR_GlobalKPMnode_en_gNB_ID_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _GlobalKPMnode_en_gNB_ID_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ASN1c/GlobalKPMnode-gNB-ID.c b/e2sim/previous/e2apv1sim/ASN1c/GlobalKPMnode-gNB-ID.c deleted file mode 100644 index 49e21ba..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/GlobalKPMnode-gNB-ID.c +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "GlobalKPMnode-gNB-ID.h" - -asn_TYPE_member_t asn_MBR_GlobalKPMnode_gNB_ID_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct GlobalKPMnode_gNB_ID, global_gNB_ID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GlobalgNB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "global-gNB-ID" - }, - { ATF_POINTER, 2, offsetof(struct GlobalKPMnode_gNB_ID, gNB_CU_UP_ID), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GNB_CU_UP_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "gNB-CU-UP-ID" - }, - { ATF_POINTER, 1, offsetof(struct GlobalKPMnode_gNB_ID, gNB_DU_ID), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GNB_DU_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "gNB-DU-ID" - }, -}; -static const int asn_MAP_GlobalKPMnode_gNB_ID_oms_1[] = { 1, 2 }; -static const ber_tlv_tag_t asn_DEF_GlobalKPMnode_gNB_ID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_GlobalKPMnode_gNB_ID_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* global-gNB-ID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* gNB-CU-UP-ID */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* gNB-DU-ID */ -}; -asn_SEQUENCE_specifics_t asn_SPC_GlobalKPMnode_gNB_ID_specs_1 = { - sizeof(struct GlobalKPMnode_gNB_ID), - offsetof(struct GlobalKPMnode_gNB_ID, _asn_ctx), - asn_MAP_GlobalKPMnode_gNB_ID_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_GlobalKPMnode_gNB_ID_oms_1, /* Optional members */ - 2, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_GlobalKPMnode_gNB_ID = { - "GlobalKPMnode-gNB-ID", - "GlobalKPMnode-gNB-ID", - &asn_OP_SEQUENCE, - asn_DEF_GlobalKPMnode_gNB_ID_tags_1, - sizeof(asn_DEF_GlobalKPMnode_gNB_ID_tags_1) - /sizeof(asn_DEF_GlobalKPMnode_gNB_ID_tags_1[0]), /* 1 */ - asn_DEF_GlobalKPMnode_gNB_ID_tags_1, /* Same as above */ - sizeof(asn_DEF_GlobalKPMnode_gNB_ID_tags_1) - /sizeof(asn_DEF_GlobalKPMnode_gNB_ID_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_GlobalKPMnode_gNB_ID_1, - 3, /* Elements count */ - &asn_SPC_GlobalKPMnode_gNB_ID_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/GlobalKPMnode-gNB-ID.h b/e2sim/previous/e2apv1sim/ASN1c/GlobalKPMnode-gNB-ID.h deleted file mode 100644 index facef92..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/GlobalKPMnode-gNB-ID.h +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _GlobalKPMnode_gNB_ID_H_ -#define _GlobalKPMnode_gNB_ID_H_ - - -#include - -/* Including external dependencies */ -#include "GlobalgNB-ID.h" -#include "GNB-CU-UP-ID.h" -#include "GNB-DU-ID.h" -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* GlobalKPMnode-gNB-ID */ -typedef struct GlobalKPMnode_gNB_ID { - GlobalgNB_ID_t global_gNB_ID; - GNB_CU_UP_ID_t *gNB_CU_UP_ID; /* OPTIONAL */ - GNB_DU_ID_t *gNB_DU_ID; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} GlobalKPMnode_gNB_ID_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_GlobalKPMnode_gNB_ID; -extern asn_SEQUENCE_specifics_t asn_SPC_GlobalKPMnode_gNB_ID_specs_1; -extern asn_TYPE_member_t asn_MBR_GlobalKPMnode_gNB_ID_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _GlobalKPMnode_gNB_ID_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ASN1c/GlobalKPMnode-ng-eNB-ID.c b/e2sim/previous/e2apv1sim/ASN1c/GlobalKPMnode-ng-eNB-ID.c deleted file mode 100644 index 299fb25..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/GlobalKPMnode-ng-eNB-ID.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "GlobalKPMnode-ng-eNB-ID.h" - -asn_TYPE_member_t asn_MBR_GlobalKPMnode_ng_eNB_ID_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct GlobalKPMnode_ng_eNB_ID, global_ng_eNB_ID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GlobalngeNB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "global-ng-eNB-ID" - }, -}; -static const ber_tlv_tag_t asn_DEF_GlobalKPMnode_ng_eNB_ID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_GlobalKPMnode_ng_eNB_ID_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* global-ng-eNB-ID */ -}; -asn_SEQUENCE_specifics_t asn_SPC_GlobalKPMnode_ng_eNB_ID_specs_1 = { - sizeof(struct GlobalKPMnode_ng_eNB_ID), - offsetof(struct GlobalKPMnode_ng_eNB_ID, _asn_ctx), - asn_MAP_GlobalKPMnode_ng_eNB_ID_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_GlobalKPMnode_ng_eNB_ID = { - "GlobalKPMnode-ng-eNB-ID", - "GlobalKPMnode-ng-eNB-ID", - &asn_OP_SEQUENCE, - asn_DEF_GlobalKPMnode_ng_eNB_ID_tags_1, - sizeof(asn_DEF_GlobalKPMnode_ng_eNB_ID_tags_1) - /sizeof(asn_DEF_GlobalKPMnode_ng_eNB_ID_tags_1[0]), /* 1 */ - asn_DEF_GlobalKPMnode_ng_eNB_ID_tags_1, /* Same as above */ - sizeof(asn_DEF_GlobalKPMnode_ng_eNB_ID_tags_1) - /sizeof(asn_DEF_GlobalKPMnode_ng_eNB_ID_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_GlobalKPMnode_ng_eNB_ID_1, - 1, /* Elements count */ - &asn_SPC_GlobalKPMnode_ng_eNB_ID_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/GlobalKPMnode-ng-eNB-ID.h b/e2sim/previous/e2apv1sim/ASN1c/GlobalKPMnode-ng-eNB-ID.h deleted file mode 100644 index 9ad8057..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/GlobalKPMnode-ng-eNB-ID.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _GlobalKPMnode_ng_eNB_ID_H_ -#define _GlobalKPMnode_ng_eNB_ID_H_ - - -#include - -/* Including external dependencies */ -#include "GlobalngeNB-ID.h" -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* GlobalKPMnode-ng-eNB-ID */ -typedef struct GlobalKPMnode_ng_eNB_ID { - GlobalngeNB_ID_t global_ng_eNB_ID; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} GlobalKPMnode_ng_eNB_ID_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_GlobalKPMnode_ng_eNB_ID; -extern asn_SEQUENCE_specifics_t asn_SPC_GlobalKPMnode_ng_eNB_ID_specs_1; -extern asn_TYPE_member_t asn_MBR_GlobalKPMnode_ng_eNB_ID_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _GlobalKPMnode_ng_eNB_ID_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ASN1c/GlobalRIC-ID.c b/e2sim/previous/e2apv1sim/ASN1c/GlobalRIC-ID.c deleted file mode 100644 index f113921..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/GlobalRIC-ID.c +++ /dev/null @@ -1,96 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "GlobalRIC-ID.h" - -static int -memb_ric_ID_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if(st->size > 0) { - /* Size in bits */ - size = 8 * st->size - (st->bits_unused & 0x07); - } else { - size = 0; - } - - if((size == 20)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_per_constraints_t asn_PER_memb_ric_ID_constr_3 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 0, 0, 20, 20 } /* (SIZE(20..20)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_GlobalRIC_ID_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct GlobalRIC_ID, pLMN_Identity), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_PLMN_Identity, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "pLMN-Identity" - }, - { ATF_NOFLAGS, 0, offsetof(struct GlobalRIC_ID, ric_ID), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_BIT_STRING, - 0, - { 0, &asn_PER_memb_ric_ID_constr_3, memb_ric_ID_constraint_1 }, - 0, 0, /* No default value */ - "ric-ID" - }, -}; -static const ber_tlv_tag_t asn_DEF_GlobalRIC_ID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_GlobalRIC_ID_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pLMN-Identity */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ric-ID */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_GlobalRIC_ID_specs_1 = { - sizeof(struct GlobalRIC_ID), - offsetof(struct GlobalRIC_ID, _asn_ctx), - asn_MAP_GlobalRIC_ID_tag2el_1, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 2, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_GlobalRIC_ID = { - "GlobalRIC-ID", - "GlobalRIC-ID", - &asn_OP_SEQUENCE, - asn_DEF_GlobalRIC_ID_tags_1, - sizeof(asn_DEF_GlobalRIC_ID_tags_1) - /sizeof(asn_DEF_GlobalRIC_ID_tags_1[0]), /* 1 */ - asn_DEF_GlobalRIC_ID_tags_1, /* Same as above */ - sizeof(asn_DEF_GlobalRIC_ID_tags_1) - /sizeof(asn_DEF_GlobalRIC_ID_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_GlobalRIC_ID_1, - 2, /* Elements count */ - &asn_SPC_GlobalRIC_ID_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/GlobalRIC-ID.h b/e2sim/previous/e2apv1sim/ASN1c/GlobalRIC-ID.h deleted file mode 100644 index c1ab6be..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/GlobalRIC-ID.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _GlobalRIC_ID_H_ -#define _GlobalRIC_ID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "PLMN-Identity.h" -#include "BIT_STRING.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* GlobalRIC-ID */ -typedef struct GlobalRIC_ID { - PLMN_Identity_t pLMN_Identity; - BIT_STRING_t ric_ID; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} GlobalRIC_ID_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_GlobalRIC_ID; - -#ifdef __cplusplus -} -#endif - -#endif /* _GlobalRIC_ID_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ASN1c/GlobalenGNB-ID.c b/e2sim/previous/e2apv1sim/ASN1c/GlobalenGNB-ID.c deleted file mode 100644 index 07f8116..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/GlobalenGNB-ID.c +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "GlobalenGNB-ID.h" - -asn_TYPE_member_t asn_MBR_GlobalenGNB_ID_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct GlobalenGNB_ID, pLMN_Identity), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_PLMN_Identity, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "pLMN-Identity" - }, - { ATF_NOFLAGS, 0, offsetof(struct GlobalenGNB_ID, gNB_ID), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_ENGNB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "gNB-ID" - }, -}; -static const ber_tlv_tag_t asn_DEF_GlobalenGNB_ID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_GlobalenGNB_ID_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pLMN-Identity */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* gNB-ID */ -}; -asn_SEQUENCE_specifics_t asn_SPC_GlobalenGNB_ID_specs_1 = { - sizeof(struct GlobalenGNB_ID), - offsetof(struct GlobalenGNB_ID, _asn_ctx), - asn_MAP_GlobalenGNB_ID_tag2el_1, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 2, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_GlobalenGNB_ID = { - "GlobalenGNB-ID", - "GlobalenGNB-ID", - &asn_OP_SEQUENCE, - asn_DEF_GlobalenGNB_ID_tags_1, - sizeof(asn_DEF_GlobalenGNB_ID_tags_1) - /sizeof(asn_DEF_GlobalenGNB_ID_tags_1[0]), /* 1 */ - asn_DEF_GlobalenGNB_ID_tags_1, /* Same as above */ - sizeof(asn_DEF_GlobalenGNB_ID_tags_1) - /sizeof(asn_DEF_GlobalenGNB_ID_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_GlobalenGNB_ID_1, - 2, /* Elements count */ - &asn_SPC_GlobalenGNB_ID_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/GlobalenGNB-ID.h b/e2sim/previous/e2apv1sim/ASN1c/GlobalenGNB-ID.h deleted file mode 100644 index 1e254a7..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/GlobalenGNB-ID.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _GlobalenGNB_ID_H_ -#define _GlobalenGNB_ID_H_ - - -#include - -/* Including external dependencies */ -#include "PLMN-Identity.h" -#include "ENGNB-ID.h" -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* GlobalenGNB-ID */ -typedef struct GlobalenGNB_ID { - PLMN_Identity_t pLMN_Identity; - ENGNB_ID_t gNB_ID; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} GlobalenGNB_ID_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_GlobalenGNB_ID; -extern asn_SEQUENCE_specifics_t asn_SPC_GlobalenGNB_ID_specs_1; -extern asn_TYPE_member_t asn_MBR_GlobalenGNB_ID_1[2]; - -#ifdef __cplusplus -} -#endif - -#endif /* _GlobalenGNB_ID_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ASN1c/GlobalgNB-ID.c b/e2sim/previous/e2apv1sim/ASN1c/GlobalgNB-ID.c deleted file mode 100644 index bfcc098..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/GlobalgNB-ID.c +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "GlobalgNB-ID.h" - -asn_TYPE_member_t asn_MBR_GlobalgNB_ID_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct GlobalgNB_ID, plmn_id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_PLMN_Identity, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "plmn-id" - }, - { ATF_NOFLAGS, 0, offsetof(struct GlobalgNB_ID, gnb_id), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_GNB_ID_Choice, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "gnb-id" - }, -}; -static const ber_tlv_tag_t asn_DEF_GlobalgNB_ID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_GlobalgNB_ID_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* plmn-id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* gnb-id */ -}; -asn_SEQUENCE_specifics_t asn_SPC_GlobalgNB_ID_specs_1 = { - sizeof(struct GlobalgNB_ID), - offsetof(struct GlobalgNB_ID, _asn_ctx), - asn_MAP_GlobalgNB_ID_tag2el_1, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 2, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_GlobalgNB_ID = { - "GlobalgNB-ID", - "GlobalgNB-ID", - &asn_OP_SEQUENCE, - asn_DEF_GlobalgNB_ID_tags_1, - sizeof(asn_DEF_GlobalgNB_ID_tags_1) - /sizeof(asn_DEF_GlobalgNB_ID_tags_1[0]), /* 1 */ - asn_DEF_GlobalgNB_ID_tags_1, /* Same as above */ - sizeof(asn_DEF_GlobalgNB_ID_tags_1) - /sizeof(asn_DEF_GlobalgNB_ID_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_GlobalgNB_ID_1, - 2, /* Elements count */ - &asn_SPC_GlobalgNB_ID_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/GlobalgNB-ID.h b/e2sim/previous/e2apv1sim/ASN1c/GlobalgNB-ID.h deleted file mode 100644 index e31846d..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/GlobalgNB-ID.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _GlobalgNB_ID_H_ -#define _GlobalgNB_ID_H_ - - -#include - -/* Including external dependencies */ -#include "PLMN-Identity.h" -#include "GNB-ID-Choice.h" -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* GlobalgNB-ID */ -typedef struct GlobalgNB_ID { - PLMN_Identity_t plmn_id; - GNB_ID_Choice_t gnb_id; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} GlobalgNB_ID_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_GlobalgNB_ID; -extern asn_SEQUENCE_specifics_t asn_SPC_GlobalgNB_ID_specs_1; -extern asn_TYPE_member_t asn_MBR_GlobalgNB_ID_1[2]; - -#ifdef __cplusplus -} -#endif - -#endif /* _GlobalgNB_ID_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ASN1c/GlobalngeNB-ID.c b/e2sim/previous/e2apv1sim/ASN1c/GlobalngeNB-ID.c deleted file mode 100644 index d220e9a..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/GlobalngeNB-ID.c +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "GlobalngeNB-ID.h" - -asn_TYPE_member_t asn_MBR_GlobalngeNB_ID_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct GlobalngeNB_ID, plmn_id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_PLMN_Identity, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "plmn-id" - }, - { ATF_NOFLAGS, 0, offsetof(struct GlobalngeNB_ID, enb_id), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_ENB_ID_Choice, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "enb-id" - }, -}; -static const ber_tlv_tag_t asn_DEF_GlobalngeNB_ID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_GlobalngeNB_ID_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* plmn-id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* enb-id */ -}; -asn_SEQUENCE_specifics_t asn_SPC_GlobalngeNB_ID_specs_1 = { - sizeof(struct GlobalngeNB_ID), - offsetof(struct GlobalngeNB_ID, _asn_ctx), - asn_MAP_GlobalngeNB_ID_tag2el_1, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 2, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_GlobalngeNB_ID = { - "GlobalngeNB-ID", - "GlobalngeNB-ID", - &asn_OP_SEQUENCE, - asn_DEF_GlobalngeNB_ID_tags_1, - sizeof(asn_DEF_GlobalngeNB_ID_tags_1) - /sizeof(asn_DEF_GlobalngeNB_ID_tags_1[0]), /* 1 */ - asn_DEF_GlobalngeNB_ID_tags_1, /* Same as above */ - sizeof(asn_DEF_GlobalngeNB_ID_tags_1) - /sizeof(asn_DEF_GlobalngeNB_ID_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_GlobalngeNB_ID_1, - 2, /* Elements count */ - &asn_SPC_GlobalngeNB_ID_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/GlobalngeNB-ID.h b/e2sim/previous/e2apv1sim/ASN1c/GlobalngeNB-ID.h deleted file mode 100644 index e8246ca..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/GlobalngeNB-ID.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _GlobalngeNB_ID_H_ -#define _GlobalngeNB_ID_H_ - - -#include - -/* Including external dependencies */ -#include "PLMN-Identity.h" -#include "ENB-ID-Choice.h" -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* GlobalngeNB-ID */ -typedef struct GlobalngeNB_ID { - PLMN_Identity_t plmn_id; - ENB_ID_Choice_t enb_id; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} GlobalngeNB_ID_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_GlobalngeNB_ID; -extern asn_SEQUENCE_specifics_t asn_SPC_GlobalngeNB_ID_specs_1; -extern asn_TYPE_member_t asn_MBR_GlobalngeNB_ID_1[2]; - -#ifdef __cplusplus -} -#endif - -#endif /* _GlobalngeNB_ID_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ASN1c/INTEGER.c b/e2sim/previous/e2apv1sim/ASN1c/INTEGER.c deleted file mode 100644 index 2a2f4d7..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/INTEGER.c +++ /dev/null @@ -1,1735 +0,0 @@ -/*- - * Copyright (c) 2003-2014 Lev Walkin . - * All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include /* Encoder and decoder of a primitive type */ -#include - -/* - * INTEGER basic type description. - */ -static const ber_tlv_tag_t asn_DEF_INTEGER_tags[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_operation_t asn_OP_INTEGER = { - INTEGER_free, - INTEGER_print, - INTEGER_compare, - ber_decode_primitive, - INTEGER_encode_der, - INTEGER_decode_xer, - INTEGER_encode_xer, -#ifdef ASN_DISABLE_OER_SUPPORT - 0, - 0, -#else - INTEGER_decode_oer, /* OER decoder */ - INTEGER_encode_oer, /* Canonical OER encoder */ -#endif /* ASN_DISABLE_OER_SUPPORT */ -#ifdef ASN_DISABLE_PER_SUPPORT - 0, - 0, - 0, - 0, -#else - INTEGER_decode_uper, /* Unaligned PER decoder */ - INTEGER_encode_uper, /* Unaligned PER encoder */ - INTEGER_decode_aper, /* Aligned PER decoder */ - INTEGER_encode_aper, /* Aligned PER encoder */ -#endif /* ASN_DISABLE_PER_SUPPORT */ - INTEGER_random_fill, - 0 /* Use generic outmost tag fetcher */ -}; -asn_TYPE_descriptor_t asn_DEF_INTEGER = { - "INTEGER", - "INTEGER", - &asn_OP_INTEGER, - asn_DEF_INTEGER_tags, - sizeof(asn_DEF_INTEGER_tags) / sizeof(asn_DEF_INTEGER_tags[0]), - asn_DEF_INTEGER_tags, /* Same as above */ - sizeof(asn_DEF_INTEGER_tags) / sizeof(asn_DEF_INTEGER_tags[0]), - { 0, 0, asn_generic_no_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - -/* - * Encode INTEGER type using DER. - */ -asn_enc_rval_t -INTEGER_encode_der(const asn_TYPE_descriptor_t *td, const void *sptr, - int tag_mode, ber_tlv_tag_t tag, asn_app_consume_bytes_f *cb, - void *app_key) { - const INTEGER_t *st = (const INTEGER_t *)sptr; - asn_enc_rval_t rval; - INTEGER_t effective_integer; - - ASN_DEBUG("%s %s as INTEGER (tm=%d)", - cb?"Encoding":"Estimating", td->name, tag_mode); - - /* - * Canonicalize integer in the buffer. - * (Remove too long sign extension, remove some first 0x00 bytes) - */ - if(st->buf) { - uint8_t *buf = st->buf; - uint8_t *end1 = buf + st->size - 1; - int shift; - - /* Compute the number of superfluous leading bytes */ - for(; buf < end1; buf++) { - /* - * If the contents octets of an integer value encoding - * consist of more than one octet, then the bits of the - * first octet and bit 8 of the second octet: - * a) shall not all be ones; and - * b) shall not all be zero. - */ - switch(*buf) { - case 0x00: if((buf[1] & 0x80) == 0) - continue; - break; - case 0xff: if((buf[1] & 0x80)) - continue; - break; - } - break; - } - - /* Remove leading superfluous bytes from the integer */ - shift = buf - st->buf; - if(shift) { - union { - const uint8_t *c_buf; - uint8_t *nc_buf; - } unconst; - unconst.c_buf = st->buf; - effective_integer.buf = unconst.nc_buf + shift; - effective_integer.size = st->size - shift; - - st = &effective_integer; - } - } - - rval = der_encode_primitive(td, st, tag_mode, tag, cb, app_key); - if(rval.structure_ptr == &effective_integer) { - rval.structure_ptr = sptr; - } - return rval; -} - -static const asn_INTEGER_enum_map_t *INTEGER_map_enum2value( - const asn_INTEGER_specifics_t *specs, const char *lstart, - const char *lstop); - -/* - * INTEGER specific human-readable output. - */ -static ssize_t -INTEGER__dump(const asn_TYPE_descriptor_t *td, const INTEGER_t *st, asn_app_consume_bytes_f *cb, void *app_key, int plainOrXER) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - char scratch[32]; - uint8_t *buf = st->buf; - uint8_t *buf_end = st->buf + st->size; - intmax_t value; - ssize_t wrote = 0; - char *p; - int ret; - - if(specs && specs->field_unsigned) - ret = asn_INTEGER2umax(st, (uintmax_t *)&value); - else - ret = asn_INTEGER2imax(st, &value); - - /* Simple case: the integer size is small */ - if(ret == 0) { - const asn_INTEGER_enum_map_t *el; - el = (value >= 0 || !specs || !specs->field_unsigned) - ? INTEGER_map_value2enum(specs, value) : 0; - if(el) { - if(plainOrXER == 0) - return asn__format_to_callback(cb, app_key, - "%" ASN_PRIdMAX " (%s)", value, el->enum_name); - else - return asn__format_to_callback(cb, app_key, - "<%s/>", el->enum_name); - } else if(plainOrXER && specs && specs->strict_enumeration) { - ASN_DEBUG("ASN.1 forbids dealing with " - "unknown value of ENUMERATED type"); - errno = EPERM; - return -1; - } else { - return asn__format_to_callback(cb, app_key, - (specs && specs->field_unsigned) - ? "%" ASN_PRIuMAX - : "%" ASN_PRIdMAX, - value); - } - } else if(plainOrXER && specs && specs->strict_enumeration) { - /* - * Here and earlier, we cannot encode the ENUMERATED values - * if there is no corresponding identifier. - */ - ASN_DEBUG("ASN.1 forbids dealing with " - "unknown value of ENUMERATED type"); - errno = EPERM; - return -1; - } - - /* Output in the long xx:yy:zz... format */ - /* TODO: replace with generic algorithm (Knuth TAOCP Vol 2, 4.3.1) */ - for(p = scratch; buf < buf_end; buf++) { - const char * const h2c = "0123456789ABCDEF"; - if((p - scratch) >= (ssize_t)(sizeof(scratch) - 4)) { - /* Flush buffer */ - if(cb(scratch, p - scratch, app_key) < 0) - return -1; - wrote += p - scratch; - p = scratch; - } - *p++ = h2c[*buf >> 4]; - *p++ = h2c[*buf & 0x0F]; - *p++ = 0x3a; /* ":" */ - } - if(p != scratch) - p--; /* Remove the last ":" */ - - wrote += p - scratch; - return (cb(scratch, p - scratch, app_key) < 0) ? -1 : wrote; -} - -/* - * INTEGER specific human-readable output. - */ -int -INTEGER_print(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, - asn_app_consume_bytes_f *cb, void *app_key) { - const INTEGER_t *st = (const INTEGER_t *)sptr; - ssize_t ret; - - (void)ilevel; - - if(!st || !st->buf) - ret = cb("", 8, app_key); - else - ret = INTEGER__dump(td, st, cb, app_key, 0); - - return (ret < 0) ? -1 : 0; -} - -struct e2v_key { - const char *start; - const char *stop; - const asn_INTEGER_enum_map_t *vemap; - const unsigned int *evmap; -}; -static int -INTEGER__compar_enum2value(const void *kp, const void *am) { - const struct e2v_key *key = (const struct e2v_key *)kp; - const asn_INTEGER_enum_map_t *el = (const asn_INTEGER_enum_map_t *)am; - const char *ptr, *end, *name; - - /* Remap the element (sort by different criterion) */ - el = key->vemap + key->evmap[el - key->vemap]; - - /* Compare strings */ - for(ptr = key->start, end = key->stop, name = el->enum_name; - ptr < end; ptr++, name++) { - if(*ptr != *name || !*name) - return *(const unsigned char *)ptr - - *(const unsigned char *)name; - } - return name[0] ? -1 : 0; -} - -static const asn_INTEGER_enum_map_t * -INTEGER_map_enum2value(const asn_INTEGER_specifics_t *specs, const char *lstart, - const char *lstop) { - const asn_INTEGER_enum_map_t *el_found; - int count = specs ? specs->map_count : 0; - struct e2v_key key; - const char *lp; - - if(!count) return NULL; - - /* Guaranteed: assert(lstart < lstop); */ - /* Figure out the tag name */ - for(lstart++, lp = lstart; lp < lstop; lp++) { - switch(*lp) { - case 9: case 10: case 11: case 12: case 13: case 32: /* WSP */ - case 0x2f: /* '/' */ case 0x3e: /* '>' */ - break; - default: - continue; - } - break; - } - if(lp == lstop) return NULL; /* No tag found */ - lstop = lp; - - key.start = lstart; - key.stop = lstop; - key.vemap = specs->value2enum; - key.evmap = specs->enum2value; - el_found = (asn_INTEGER_enum_map_t *)bsearch(&key, - specs->value2enum, count, sizeof(specs->value2enum[0]), - INTEGER__compar_enum2value); - if(el_found) { - /* Remap enum2value into value2enum */ - el_found = key.vemap + key.evmap[el_found - key.vemap]; - } - return el_found; -} - -static int -INTEGER__compar_value2enum(const void *kp, const void *am) { - long a = *(const long *)kp; - const asn_INTEGER_enum_map_t *el = (const asn_INTEGER_enum_map_t *)am; - long b = el->nat_value; - if(a < b) return -1; - else if(a == b) return 0; - else return 1; -} - -const asn_INTEGER_enum_map_t * -INTEGER_map_value2enum(const asn_INTEGER_specifics_t *specs, long value) { - int count = specs ? specs->map_count : 0; - if(!count) return 0; - return (asn_INTEGER_enum_map_t *)bsearch(&value, specs->value2enum, - count, sizeof(specs->value2enum[0]), - INTEGER__compar_value2enum); -} - -static int -INTEGER_st_prealloc(INTEGER_t *st, int min_size) { - void *p = MALLOC(min_size + 1); - if(p) { - void *b = st->buf; - st->size = 0; - st->buf = p; - FREEMEM(b); - return 0; - } else { - return -1; - } -} - -/* - * Decode the chunk of XML text encoding INTEGER. - */ -static enum xer_pbd_rval -INTEGER__xer_body_decode(const asn_TYPE_descriptor_t *td, void *sptr, - const void *chunk_buf, size_t chunk_size) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - INTEGER_t *st = (INTEGER_t *)sptr; - intmax_t dec_value; - intmax_t hex_value = 0; - const char *lp; - const char *lstart = (const char *)chunk_buf; - const char *lstop = lstart + chunk_size; - enum { - ST_LEADSPACE, - ST_SKIPSPHEX, - ST_WAITDIGITS, - ST_DIGITS, - ST_DIGITS_TRAILSPACE, - ST_HEXDIGIT1, - ST_HEXDIGIT2, - ST_HEXDIGITS_TRAILSPACE, - ST_HEXCOLON, - ST_END_ENUM, - ST_UNEXPECTED - } state = ST_LEADSPACE; - const char *dec_value_start = 0; /* INVARIANT: always !0 in ST_DIGITS */ - const char *dec_value_end = 0; - - if(chunk_size) - ASN_DEBUG("INTEGER body %ld 0x%2x..0x%2x", - (long)chunk_size, *lstart, lstop[-1]); - - if(INTEGER_st_prealloc(st, (chunk_size/3) + 1)) - return XPBD_SYSTEM_FAILURE; - - /* - * We may have received a tag here. It will be processed inline. - * Use strtoul()-like code and serialize the result. - */ - for(lp = lstart; lp < lstop; lp++) { - int lv = *lp; - switch(lv) { - case 0x09: case 0x0a: case 0x0d: case 0x20: - switch(state) { - case ST_LEADSPACE: - case ST_DIGITS_TRAILSPACE: - case ST_HEXDIGITS_TRAILSPACE: - case ST_SKIPSPHEX: - continue; - case ST_DIGITS: - dec_value_end = lp; - state = ST_DIGITS_TRAILSPACE; - continue; - case ST_HEXCOLON: - state = ST_HEXDIGITS_TRAILSPACE; - continue; - default: - break; - } - break; - case 0x2d: /* '-' */ - if(state == ST_LEADSPACE) { - dec_value = 0; - dec_value_start = lp; - state = ST_WAITDIGITS; - continue; - } - break; - case 0x2b: /* '+' */ - if(state == ST_LEADSPACE) { - dec_value = 0; - dec_value_start = lp; - state = ST_WAITDIGITS; - continue; - } - break; - case 0x30: case 0x31: case 0x32: case 0x33: case 0x34: - case 0x35: case 0x36: case 0x37: case 0x38: case 0x39: - switch(state) { - case ST_DIGITS: continue; - case ST_SKIPSPHEX: /* Fall through */ - case ST_HEXDIGIT1: - hex_value = (lv - 0x30) << 4; - state = ST_HEXDIGIT2; - continue; - case ST_HEXDIGIT2: - hex_value += (lv - 0x30); - state = ST_HEXCOLON; - st->buf[st->size++] = (uint8_t)hex_value; - continue; - case ST_HEXCOLON: - return XPBD_BROKEN_ENCODING; - case ST_LEADSPACE: - dec_value = 0; - dec_value_start = lp; - /* FALL THROUGH */ - case ST_WAITDIGITS: - state = ST_DIGITS; - continue; - default: - break; - } - break; - case 0x3c: /* '<', start of XML encoded enumeration */ - if(state == ST_LEADSPACE) { - const asn_INTEGER_enum_map_t *el; - el = INTEGER_map_enum2value( - (const asn_INTEGER_specifics_t *) - td->specifics, lstart, lstop); - if(el) { - ASN_DEBUG("Found \"%s\" => %ld", - el->enum_name, el->nat_value); - dec_value = el->nat_value; - state = ST_END_ENUM; - lp = lstop - 1; - continue; - } - ASN_DEBUG("Unknown identifier for INTEGER"); - } - return XPBD_BROKEN_ENCODING; - case 0x3a: /* ':' */ - if(state == ST_HEXCOLON) { - /* This colon is expected */ - state = ST_HEXDIGIT1; - continue; - } else if(state == ST_DIGITS) { - /* The colon here means that we have - * decoded the first two hexadecimal - * places as a decimal value. - * Switch decoding mode. */ - ASN_DEBUG("INTEGER re-evaluate as hex form"); - state = ST_SKIPSPHEX; - dec_value_start = 0; - lp = lstart - 1; - continue; - } else { - ASN_DEBUG("state %d at %ld", state, (long)(lp - lstart)); - break; - } - /* [A-Fa-f] */ - case 0x41:case 0x42:case 0x43:case 0x44:case 0x45:case 0x46: - case 0x61:case 0x62:case 0x63:case 0x64:case 0x65:case 0x66: - switch(state) { - case ST_SKIPSPHEX: - case ST_LEADSPACE: /* Fall through */ - case ST_HEXDIGIT1: - hex_value = lv - ((lv < 0x61) ? 0x41 : 0x61); - hex_value += 10; - hex_value <<= 4; - state = ST_HEXDIGIT2; - continue; - case ST_HEXDIGIT2: - hex_value += lv - ((lv < 0x61) ? 0x41 : 0x61); - hex_value += 10; - st->buf[st->size++] = (uint8_t)hex_value; - state = ST_HEXCOLON; - continue; - case ST_DIGITS: - ASN_DEBUG("INTEGER re-evaluate as hex form"); - state = ST_SKIPSPHEX; - dec_value_start = 0; - lp = lstart - 1; - continue; - default: - break; - } - break; - } - - /* Found extra non-numeric stuff */ - ASN_DEBUG("INTEGER :: Found non-numeric 0x%2x at %ld", - lv, (long)(lp - lstart)); - state = ST_UNEXPECTED; - break; - } - - switch(state) { - case ST_END_ENUM: - /* Got a complete and valid enumeration encoded as a tag. */ - break; - case ST_DIGITS: - dec_value_end = lstop; - /* FALL THROUGH */ - case ST_DIGITS_TRAILSPACE: - /* The last symbol encountered was a digit. */ - switch(asn_strtoimax_lim(dec_value_start, &dec_value_end, &dec_value)) { - case ASN_STRTOX_OK: - if(specs && specs->field_unsigned && (uintmax_t) dec_value <= ULONG_MAX) { - break; - } else if(dec_value >= LONG_MIN && dec_value <= LONG_MAX) { - break; - } else { - /* - * We model INTEGER on long for XER, - * to avoid rewriting all the tests at once. - */ - ASN_DEBUG("INTEGER exceeds long range"); - } - /* Fall through */ - case ASN_STRTOX_ERROR_RANGE: - ASN_DEBUG("INTEGER decode %s hit range limit", td->name); - return XPBD_DECODER_LIMIT; - case ASN_STRTOX_ERROR_INVAL: - case ASN_STRTOX_EXPECT_MORE: - case ASN_STRTOX_EXTRA_DATA: - return XPBD_BROKEN_ENCODING; - } - break; - case ST_HEXCOLON: - case ST_HEXDIGITS_TRAILSPACE: - st->buf[st->size] = 0; /* Just in case termination */ - return XPBD_BODY_CONSUMED; - case ST_HEXDIGIT1: - case ST_HEXDIGIT2: - case ST_SKIPSPHEX: - return XPBD_BROKEN_ENCODING; - case ST_LEADSPACE: - /* Content not found */ - return XPBD_NOT_BODY_IGNORE; - case ST_WAITDIGITS: - case ST_UNEXPECTED: - ASN_DEBUG("INTEGER: No useful digits (state %d)", state); - return XPBD_BROKEN_ENCODING; /* No digits */ - } - - /* - * Convert the result of parsing of enumeration or a straight - * decimal value into a BER representation. - */ - if(asn_imax2INTEGER(st, dec_value)) { - ASN_DEBUG("INTEGER decode %s conversion failed", td->name); - return XPBD_SYSTEM_FAILURE; - } - - return XPBD_BODY_CONSUMED; -} - -asn_dec_rval_t -INTEGER_decode_xer(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **sptr, - const char *opt_mname, const void *buf_ptr, size_t size) { - return xer_decode_primitive(opt_codec_ctx, td, - sptr, sizeof(INTEGER_t), opt_mname, - buf_ptr, size, INTEGER__xer_body_decode); -} - -asn_enc_rval_t -INTEGER_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, - int ilevel, enum xer_encoder_flags_e flags, - asn_app_consume_bytes_f *cb, void *app_key) { - const INTEGER_t *st = (const INTEGER_t *)sptr; - asn_enc_rval_t er = {0,0,0}; - - (void)ilevel; - (void)flags; - - if(!st || !st->buf) - ASN__ENCODE_FAILED; - - er.encoded = INTEGER__dump(td, st, cb, app_key, 1); - if(er.encoded < 0) ASN__ENCODE_FAILED; - - ASN__ENCODED_OK(er); -} - -#ifndef ASN_DISABLE_PER_SUPPORT - -asn_dec_rval_t -INTEGER_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, - asn_per_data_t *pd) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - asn_dec_rval_t rval = { RC_OK, 0 }; - INTEGER_t *st = (INTEGER_t *)*sptr; - const asn_per_constraint_t *ct; - int repeat; - - (void)opt_codec_ctx; - - if(!st) { - st = (INTEGER_t *)(*sptr = CALLOC(1, sizeof(*st))); - if(!st) ASN__DECODE_FAILED; - } - - if(!constraints) constraints = td->encoding_constraints.per_constraints; - ct = constraints ? &constraints->value : 0; - - if(ct && ct->flags & APC_EXTENSIBLE) { - int inext = per_get_few_bits(pd, 1); - if(inext < 0) ASN__DECODE_STARVED; - if(inext) ct = 0; - } - - FREEMEM(st->buf); - st->buf = 0; - st->size = 0; - if(ct) { - if(ct->flags & APC_SEMI_CONSTRAINED) { - st->buf = (uint8_t *)CALLOC(1, 2); - if(!st->buf) ASN__DECODE_FAILED; - st->size = 1; - } else if(ct->flags & APC_CONSTRAINED && ct->range_bits >= 0) { - size_t size = (ct->range_bits + 7) >> 3; - st->buf = (uint8_t *)MALLOC(1 + size + 1); - if(!st->buf) ASN__DECODE_FAILED; - st->size = size; - } - } - - /* X.691-2008/11, #13.2.2, constrained whole number */ - if(ct && ct->flags != APC_UNCONSTRAINED) { - /* #11.5.6 */ - ASN_DEBUG("Integer with range %d bits", ct->range_bits); - if(ct->range_bits >= 0) { - if((size_t)ct->range_bits > 8 * sizeof(unsigned long)) - ASN__DECODE_FAILED; - - if(specs && specs->field_unsigned) { - unsigned long uvalue = 0; - if(uper_get_constrained_whole_number(pd, - &uvalue, ct->range_bits)) - ASN__DECODE_STARVED; - ASN_DEBUG("Got value %lu + low %ld", - uvalue, ct->lower_bound); - uvalue += ct->lower_bound; - if(asn_ulong2INTEGER(st, uvalue)) - ASN__DECODE_FAILED; - } else { - unsigned long uvalue = 0; - long svalue; - if(uper_get_constrained_whole_number(pd, - &uvalue, ct->range_bits)) - ASN__DECODE_STARVED; - ASN_DEBUG("Got value %lu + low %ld", - uvalue, ct->lower_bound); - if(per_long_range_unrebase(uvalue, ct->lower_bound, - ct->upper_bound, &svalue) - || asn_long2INTEGER(st, svalue)) { - ASN__DECODE_FAILED; - } - } - return rval; - } - } else { - ASN_DEBUG("Decoding unconstrained integer %s", td->name); - } - - /* X.691, #12.2.3, #12.2.4 */ - do { - ssize_t len = 0; - void *p = NULL; - int ret = 0; - - /* Get the PER length */ - len = uper_get_length(pd, -1, 0, &repeat); - if(len < 0) ASN__DECODE_STARVED; - - p = REALLOC(st->buf, st->size + len + 1); - if(!p) ASN__DECODE_FAILED; - st->buf = (uint8_t *)p; - - ret = per_get_many_bits(pd, &st->buf[st->size], 0, 8 * len); - if(ret < 0) ASN__DECODE_STARVED; - st->size += len; - } while(repeat); - st->buf[st->size] = 0; /* JIC */ - - /* #12.2.3 */ - if(ct && ct->lower_bound) { - /* - * TODO: replace by in-place arithmetics. - */ - long value = 0; - if(asn_INTEGER2long(st, &value)) - ASN__DECODE_FAILED; - if(asn_imax2INTEGER(st, value + ct->lower_bound)) - ASN__DECODE_FAILED; - } - - return rval; -} - -asn_enc_rval_t -INTEGER_encode_uper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, const void *sptr, - asn_per_outp_t *po) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - asn_enc_rval_t er = {0,0,0}; - const INTEGER_t *st = (const INTEGER_t *)sptr; - const uint8_t *buf; - const uint8_t *end; - const asn_per_constraint_t *ct; - long value = 0; - - if(!st || st->size == 0) ASN__ENCODE_FAILED; - - if(!constraints) constraints = td->encoding_constraints.per_constraints; - ct = constraints ? &constraints->value : 0; - - er.encoded = 0; - - if(ct) { - int inext = 0; - if(specs && specs->field_unsigned) { - unsigned long uval; - if(asn_INTEGER2ulong(st, &uval)) - ASN__ENCODE_FAILED; - /* Check proper range */ - if(ct->flags & APC_SEMI_CONSTRAINED) { - if(uval < (unsigned long)ct->lower_bound) - inext = 1; - } else if(ct->range_bits >= 0) { - if(uval < (unsigned long)ct->lower_bound - || uval > (unsigned long)ct->upper_bound) - inext = 1; - } - ASN_DEBUG("Value %lu (%02x/%" ASN_PRI_SIZE ") lb %lu ub %lu %s", - uval, st->buf[0], st->size, - ct->lower_bound, ct->upper_bound, - inext ? "ext" : "fix"); - value = uval; - } else { - if(asn_INTEGER2long(st, &value)) - ASN__ENCODE_FAILED; - /* Check proper range */ - if(ct->flags & APC_SEMI_CONSTRAINED) { - if(value < ct->lower_bound) - inext = 1; - } else if(ct->range_bits >= 0) { - if(value < ct->lower_bound - || value > ct->upper_bound) - inext = 1; - } - ASN_DEBUG("Value %ld (%02x/%" ASN_PRI_SIZE ") lb %ld ub %ld %s", - value, st->buf[0], st->size, - ct->lower_bound, ct->upper_bound, - inext ? "ext" : "fix"); - } - if(ct->flags & APC_EXTENSIBLE) { - if(per_put_few_bits(po, inext, 1)) - ASN__ENCODE_FAILED; - if(inext) ct = 0; - } else if(inext) { - ASN__ENCODE_FAILED; - } - } - - - /* X.691-11/2008, #13.2.2, test if constrained whole number */ - if(ct && ct->range_bits >= 0) { - unsigned long v; - /* #11.5.6 -> #11.3 */ - ASN_DEBUG("Encoding integer %ld (%lu) with range %d bits", - value, value - ct->lower_bound, ct->range_bits); - if(specs && specs->field_unsigned) { - if ( ((unsigned long)ct->lower_bound > (unsigned long)(ct->upper_bound) - || ((unsigned long)value < (unsigned long)ct->lower_bound)) - || ((unsigned long)value > (unsigned long)ct->upper_bound) - ) { - ASN_DEBUG("Value %lu to-be-encoded is outside the bounds [%lu, %lu]!", - value, ct->lower_bound, ct->upper_bound); - ASN__ENCODE_FAILED; - } - v = (unsigned long)value - (unsigned long)ct->lower_bound; - } else { - if(per_long_range_rebase(value, ct->lower_bound, ct->upper_bound, &v)) { - ASN__ENCODE_FAILED; - } - } - if(uper_put_constrained_whole_number_u(po, v, ct->range_bits)) - ASN__ENCODE_FAILED; - ASN__ENCODED_OK(er); - } - - if(ct && ct->lower_bound) { - ASN_DEBUG("Adjust lower bound to %ld", ct->lower_bound); - /* TODO: adjust lower bound */ - ASN__ENCODE_FAILED; - } - - for(buf = st->buf, end = st->buf + st->size; buf < end;) { - int need_eom = 0; - ssize_t mayEncode = uper_put_length(po, end - buf, &need_eom); - if(mayEncode < 0) - ASN__ENCODE_FAILED; - if(per_put_many_bits(po, buf, 8 * mayEncode)) - ASN__ENCODE_FAILED; - buf += mayEncode; - if(need_eom && uper_put_length(po, 0, 0)) ASN__ENCODE_FAILED; - } - - ASN__ENCODED_OK(er); -} - -asn_dec_rval_t -INTEGER_decode_aper(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, asn_per_data_t *pd) { - const asn_INTEGER_specifics_t *specs = (const asn_INTEGER_specifics_t *)td->specifics; - asn_dec_rval_t rval = { RC_OK, 0 }; - INTEGER_t *st = (INTEGER_t *)*sptr; - const asn_per_constraint_t *ct; - int repeat; - - (void)opt_codec_ctx; - - if(!st) { - st = (INTEGER_t *)(*sptr = CALLOC(1, sizeof(*st))); - if(!st) ASN__DECODE_FAILED; - } - - if(!constraints) constraints = td->encoding_constraints.per_constraints; - ct = constraints ? &constraints->value : 0; - - if(ct && ct->flags & APC_EXTENSIBLE) { - int inext = per_get_few_bits(pd, 1); - if(inext < 0) ASN__DECODE_STARVED; - if(inext) ct = 0; - } - - FREEMEM(st->buf); - st->buf = 0; - st->size = 0; - if(ct) { - if(ct->flags & APC_SEMI_CONSTRAINED) { - st->buf = (uint8_t *)CALLOC(1, 2); - if(!st->buf) ASN__DECODE_FAILED; - st->size = 1; - } else if(ct->flags & APC_CONSTRAINED && ct->range_bits >= 0) { - size_t size = (ct->range_bits + 7) >> 3; - st->buf = (uint8_t *)MALLOC(1 + size + 1); - if(!st->buf) ASN__DECODE_FAILED; - st->size = size; - } - } - - /* X.691, #12.2.2 */ - if(ct && ct->flags != APC_UNCONSTRAINED) { - /* #10.5.6 */ - ASN_DEBUG("Integer with range %d bits", ct->range_bits); - if(ct->range_bits >= 0) { - if (ct->range_bits > 16) { - int max_range_bytes = (ct->range_bits >> 3) + - (((ct->range_bits % 8) > 0) ? 1 : 0); - int length = 0, i; - long value = 0; - - for (i = 1; ; i++) { - int upper = 1 << i; - if (upper >= max_range_bytes) - break; - } - ASN_DEBUG("Can encode %d (%d bytes) in %d bits", ct->range_bits, - max_range_bytes, i); - - if ((length = per_get_few_bits(pd, i)) < 0) - ASN__DECODE_FAILED; - - /* X.691 #12.2.6 length determinant + lb (1) */ - length += 1; - ASN_DEBUG("Got length %d", length); - if (aper_get_align(pd) != 0) - ASN__DECODE_FAILED; - while (length--) { - int buf = per_get_few_bits(pd, 8); - if (buf < 0) - ASN__DECODE_FAILED; - value += (((long)buf) << (8 * length)); - } - - value += ct->lower_bound; - if((specs && specs->field_unsigned) - ? asn_uint642INTEGER(st, (unsigned long)value) - : asn_int642INTEGER(st, value)) - ASN__DECODE_FAILED; - ASN_DEBUG("Got value %ld + low %ld", - value, ct->lower_bound); - } else { - long value = 0; - if (ct->range_bits < 8) { - value = per_get_few_bits(pd, ct->range_bits); - if(value < 0) ASN__DECODE_STARVED; - } else if (ct->range_bits == 8) { - if (aper_get_align(pd) < 0) - ASN__DECODE_FAILED; - value = per_get_few_bits(pd, ct->range_bits); - if(value < 0) ASN__DECODE_STARVED; - } else { - /* Align */ - if (aper_get_align(pd) < 0) - ASN__DECODE_FAILED; - value = per_get_few_bits(pd, 16); - if(value < 0) ASN__DECODE_STARVED; - } - value += ct->lower_bound; - if((specs && specs->field_unsigned) - ? asn_ulong2INTEGER(st, value) - : asn_long2INTEGER(st, value)) - ASN__DECODE_FAILED; - ASN_DEBUG("Got value %ld + low %ld", - value, ct->lower_bound); - } - return rval; - } else { - ASN__DECODE_FAILED; - } - } else { - ASN_DEBUG("Decoding unconstrained integer %s", td->name); - } - - /* X.691, #12.2.3, #12.2.4 */ - do { - ssize_t len; - void *p; - int ret; - - /* Get the PER length */ - len = aper_get_length(pd, -1, -1, &repeat); - if(len < 0) ASN__DECODE_STARVED; - - p = REALLOC(st->buf, st->size + len + 1); - if(!p) ASN__DECODE_FAILED; - st->buf = (uint8_t *)p; - - ret = per_get_many_bits(pd, &st->buf[st->size], 0, 8 * len); - if(ret < 0) ASN__DECODE_STARVED; - st->size += len; - } while(repeat); - st->buf[st->size] = 0; /* JIC */ - - /* #12.2.3 */ - if(ct && ct->lower_bound) { - /* - * TODO: replace by in-place arithmetics. - */ - long value; - if(asn_INTEGER2long(st, &value)) - ASN__DECODE_FAILED; - if(asn_long2INTEGER(st, value + ct->lower_bound)) - ASN__DECODE_FAILED; - } - - return rval; -} - -asn_enc_rval_t -INTEGER_encode_aper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_per_outp_t *po) { - const asn_INTEGER_specifics_t *specs = (const asn_INTEGER_specifics_t *)td->specifics; - asn_enc_rval_t er = {0,0,0}; - const INTEGER_t *st = (const INTEGER_t *)sptr; - const uint8_t *buf; - const uint8_t *end; - const asn_per_constraint_t *ct; - long value = 0; - - if(!st || st->size == 0) ASN__ENCODE_FAILED; - - if(!constraints) constraints = td->encoding_constraints.per_constraints; - ct = constraints ? &constraints->value : 0; - - er.encoded = 0; - - if(ct) { - int inext = 0; - if(specs && specs->field_unsigned) { - unsigned long uval; - if(asn_INTEGER2ulong(st, &uval)) - ASN__ENCODE_FAILED; - /* Check proper range */ - if(ct->flags & APC_SEMI_CONSTRAINED) { - if(uval < (unsigned long)ct->lower_bound) - inext = 1; - } else if(ct->range_bits >= 0) { - if(uval < (unsigned long)ct->lower_bound - || uval > (unsigned long)ct->upper_bound) - inext = 1; - } - ASN_DEBUG("Value %lu (%02x/%lu) lb %ld ub %ld %s", - uval, st->buf[0], st->size, - ct->lower_bound, ct->upper_bound, - inext ? "ext" : "fix"); - value = uval; - } else { - if(asn_INTEGER2long(st, &value)) ASN__ENCODE_FAILED; - /* Check proper range */ - if(ct->flags & APC_SEMI_CONSTRAINED) { - if(value < ct->lower_bound) - inext = 1; - } else if(ct->range_bits >= 0) { - if(value < ct->lower_bound - || value > ct->upper_bound) - inext = 1; - } - ASN_DEBUG("Value %lu (%02x/%lu) lb %ld ub %ld %s", - value, st->buf[0], st->size, - ct->lower_bound, ct->upper_bound, - inext ? "ext" : "fix"); - } - if(ct->flags & APC_EXTENSIBLE) { - if(per_put_few_bits(po, inext, 1)) - ASN__ENCODE_FAILED; - if(inext) ct = 0; - } else if(inext) { - ASN__ENCODE_FAILED; - } - } - - /* X.691, #12.2.2 */ - if(ct && ct->range_bits >= 0) { - unsigned long v; - - /* #10.5.6 */ - ASN_DEBUG("Encoding integer %ld (%lu) with range %d bits", - value, value - ct->lower_bound, ct->range_bits); - - v = value - ct->lower_bound; - - /* #12 <= 8 -> alignment ? */ - if (ct->range_bits < 8) { - if(per_put_few_bits(po, 0x00 | v, ct->range_bits)) - ASN__ENCODE_FAILED; - } else if (ct->range_bits == 8) { - if(aper_put_align(po) < 0) - ASN__ENCODE_FAILED; - if(per_put_few_bits(po, 0x00 | v, ct->range_bits)) - ASN__ENCODE_FAILED; - } else if (ct->range_bits <= 16) { - /* Consume the bytes to align on octet */ - if(aper_put_align(po) < 0) - ASN__ENCODE_FAILED; - if(per_put_few_bits(po, 0x0000 | v, - 16)) - ASN__ENCODE_FAILED; - } else { - /* TODO: extend to >64 bits */ - int64_t v64 = v; - int i, j; - int max_range_bytes = (ct->range_bits >> 3) + - (((ct->range_bits % 8) > 0) ? 1 : 0); - - for (i = 1; ; i++) { - int upper = 1 << i; - if (upper >= max_range_bytes) - break; - } - - for (j = sizeof(int64_t) -1; j != 0; j--) { - int64_t val; - val = v64 >> (j * 8); - if (val != 0) - break; - } - - /* Putting length in the minimum number of bits ex: 5 = 3bits */ - if (per_put_few_bits(po, j, i)) - ASN__ENCODE_FAILED; - - /* Consume the bits to align on octet */ - if (aper_put_align(po) < 0) - ASN__ENCODE_FAILED; - /* Put the value */ - for (i = 0; i <= j; i++) { - if(per_put_few_bits(po, (v64 >> (8 * (j - i))) & 0xff, 8)) - ASN__ENCODE_FAILED; - } - } - ASN__ENCODED_OK(er); - } - - if(ct && ct->lower_bound) { - ASN_DEBUG("Adjust lower bound to %ld", ct->lower_bound); - /* TODO: adjust lower bound */ - ASN__ENCODE_FAILED; - } - - for(buf = st->buf, end = st->buf + st->size; buf < end;) { - ssize_t mayEncode = aper_put_length(po, -1, end - buf); - if(mayEncode < 0) - ASN__ENCODE_FAILED; - if(per_put_many_bits(po, buf, 8 * mayEncode)) - ASN__ENCODE_FAILED; - buf += mayEncode; - } - - ASN__ENCODED_OK(er); -} - -#endif /* ASN_DISABLE_PER_SUPPORT */ - -static intmax_t -asn__integer_convert(const uint8_t *b, const uint8_t *end) { - uintmax_t value; - - /* Perform the sign initialization */ - /* Actually value = -(*b >> 7); gains nothing, yet unreadable! */ - if((*b >> 7)) { - value = (uintmax_t)(-1); - } else { - value = 0; - } - - /* Conversion engine */ - for(; b < end; b++) { - value = (value << 8) | *b; - } - - return value; -} - -int -asn_INTEGER2imax(const INTEGER_t *iptr, intmax_t *lptr) { - uint8_t *b, *end; - size_t size; - - /* Sanity checking */ - if(!iptr || !iptr->buf || !lptr) { - errno = EINVAL; - return -1; - } - - /* Cache the begin/end of the buffer */ - b = iptr->buf; /* Start of the INTEGER buffer */ - size = iptr->size; - end = b + size; /* Where to stop */ - - if(size > sizeof(intmax_t)) { - uint8_t *end1 = end - 1; - /* - * Slightly more advanced processing, - * able to process INTEGERs with >sizeof(intmax_t) bytes - * when the actual value is small, e.g. for intmax_t == int32_t - * (0x0000000000abcdef INTEGER would yield a fine 0x00abcdef int32_t) - */ - /* Skip out the insignificant leading bytes */ - for(; b < end1; b++) { - switch(*b) { - case 0x00: if((b[1] & 0x80) == 0) continue; break; - case 0xff: if((b[1] & 0x80) != 0) continue; break; - } - break; - } - - size = end - b; - if(size > sizeof(intmax_t)) { - /* Still cannot fit the sizeof(intmax_t) */ - errno = ERANGE; - return -1; - } - } - - /* Shortcut processing of a corner case */ - if(end == b) { - *lptr = 0; - return 0; - } - - *lptr = asn__integer_convert(b, end); - return 0; -} - -/* FIXME: negative INTEGER values are silently interpreted as large unsigned ones. */ -int -asn_INTEGER2umax(const INTEGER_t *iptr, uintmax_t *lptr) { - uint8_t *b, *end; - uintmax_t value; - size_t size; - - if(!iptr || !iptr->buf || !lptr) { - errno = EINVAL; - return -1; - } - - b = iptr->buf; - size = iptr->size; - end = b + size; - - /* If all extra leading bytes are zeroes, ignore them */ - for(; size > sizeof(value); b++, size--) { - if(*b) { - /* Value won't fit into uintmax_t */ - errno = ERANGE; - return -1; - } - } - - /* Conversion engine */ - for(value = 0; b < end; b++) - value = (value << 8) | *b; - - *lptr = value; - return 0; -} - -int -asn_umax2INTEGER(INTEGER_t *st, uintmax_t value) { - uint8_t *buf; - uint8_t *end; - uint8_t *b; - int shr; - - if(value <= ((~(uintmax_t)0) >> 1)) { - return asn_imax2INTEGER(st, value); - } - - buf = (uint8_t *)MALLOC(1 + sizeof(value)); - if(!buf) return -1; - - end = buf + (sizeof(value) + 1); - buf[0] = 0; /* INTEGERs are signed. 0-byte indicates positive. */ - for(b = buf + 1, shr = (sizeof(value) - 1) * 8; b < end; shr -= 8, b++) - *b = (uint8_t)(value >> shr); - - if(st->buf) FREEMEM(st->buf); - st->buf = buf; - st->size = 1 + sizeof(value); - - return 0; -} - -int -asn_imax2INTEGER(INTEGER_t *st, intmax_t value) { - uint8_t *buf, *bp; - uint8_t *p; - uint8_t *pstart; - uint8_t *pend1; - int littleEndian = 1; /* Run-time detection */ - int add; - - if(!st) { - errno = EINVAL; - return -1; - } - - buf = (uint8_t *)(long *)MALLOC(sizeof(value)); - if(!buf) return -1; - - if(*(char *)&littleEndian) { - pstart = (uint8_t *)&value + sizeof(value) - 1; - pend1 = (uint8_t *)&value; - add = -1; - } else { - pstart = (uint8_t *)&value; - pend1 = pstart + sizeof(value) - 1; - add = 1; - } - - /* - * If the contents octet consists of more than one octet, - * then bits of the first octet and bit 8 of the second octet: - * a) shall not all be ones; and - * b) shall not all be zero. - */ - for(p = pstart; p != pend1; p += add) { - switch(*p) { - case 0x00: if((*(p+add) & 0x80) == 0) - continue; - break; - case 0xff: if((*(p+add) & 0x80)) - continue; - break; - } - break; - } - /* Copy the integer body */ - for(bp = buf, pend1 += add; p != pend1; p += add) - *bp++ = *p; - - if(st->buf) FREEMEM(st->buf); - st->buf = buf; - st->size = bp - buf; - - return 0; -} - -int -asn_INTEGER2long(const INTEGER_t *iptr, long *l) { - intmax_t v; - if(asn_INTEGER2imax(iptr, &v) == 0) { - if(v < LONG_MIN || v > LONG_MAX) { - errno = ERANGE; - return -1; - } - *l = v; - return 0; - } else { - return -1; - } -} - -int -asn_INTEGER2ulong(const INTEGER_t *iptr, unsigned long *l) { - uintmax_t v; - if(asn_INTEGER2umax(iptr, &v) == 0) { - if(v > ULONG_MAX) { - errno = ERANGE; - return -1; - } - *l = v; - return 0; - } else { - return -1; - } -} - -int -asn_long2INTEGER(INTEGER_t *st, long value) { - return asn_imax2INTEGER(st, value); -} - -int -asn_ulong2INTEGER(INTEGER_t *st, unsigned long value) { - return asn_imax2INTEGER(st, value); -} - - -int -asn_uint642INTEGER(INTEGER_t *st, uint64_t value) { - uint8_t *buf; - uint8_t *end; - uint8_t *b; - int shr; - - if(value <= INT64_MAX) - return asn_int642INTEGER(st, value); - - buf = (uint8_t *)MALLOC(1 + sizeof(value)); - if(!buf) return -1; - - end = buf + (sizeof(value) + 1); - buf[0] = 0; - for(b = buf + 1, shr = (sizeof(value)-1)*8; b < end; shr -= 8, b++) - *b = (uint8_t)(value >> shr); - - if(st->buf) FREEMEM(st->buf); - st->buf = buf; - st->size = 1 + sizeof(value); - - return 0; -} - -int -asn_int642INTEGER(INTEGER_t *st, int64_t value) { - uint8_t *buf, *bp; - uint8_t *p; - uint8_t *pstart; - uint8_t *pend1; - int littleEndian = 1; /* Run-time detection */ - int add; - - if(!st) { - errno = EINVAL; - return -1; - } - - buf = (uint8_t *)MALLOC(sizeof(value)); - if(!buf) return -1; - - if(*(char *)&littleEndian) { - pstart = (uint8_t *)&value + sizeof(value) - 1; - pend1 = (uint8_t *)&value; - add = -1; - } else { - pstart = (uint8_t *)&value; - pend1 = pstart + sizeof(value) - 1; - add = 1; - } - - /* - * If the contents octet consists of more than one octet, - * then bits of the first octet and bit 8 of the second octet: - * a) shall not all be ones; and - * b) shall not all be zero. - */ - for(p = pstart; p != pend1; p += add) { - switch(*p) { - case 0x00: if((*(p+add) & 0x80) == 0) - continue; - break; - case 0xff: if((*(p+add) & 0x80)) - continue; - break; - } - break; - } - /* Copy the integer body */ - for(pstart = p, bp = buf, pend1 += add; p != pend1; p += add) - *bp++ = *p; - - if(st->buf) FREEMEM(st->buf); - st->buf = buf; - st->size = bp - buf; - - return 0; -} - -/* - * Parse the number in the given string until the given *end position, - * returning the position after the last parsed character back using the - * same (*end) pointer. - * WARNING: This behavior is different from the standard strtol/strtoimax(3). - */ -enum asn_strtox_result_e -asn_strtoimax_lim(const char *str, const char **end, intmax_t *intp) { - int sign = 1; - intmax_t value; - -#define ASN1_INTMAX_MAX ((~(uintmax_t)0) >> 1) - const intmax_t upper_boundary = ASN1_INTMAX_MAX / 10; - intmax_t last_digit_max = ASN1_INTMAX_MAX % 10; -#undef ASN1_INTMAX_MAX - - if(str >= *end) return ASN_STRTOX_ERROR_INVAL; - - switch(*str) { - case '-': - last_digit_max++; - sign = -1; - /* FALL THROUGH */ - case '+': - str++; - if(str >= *end) { - *end = str; - return ASN_STRTOX_EXPECT_MORE; - } - } - - for(value = 0; str < (*end); str++) { - switch(*str) { - case 0x30: case 0x31: case 0x32: case 0x33: case 0x34: - case 0x35: case 0x36: case 0x37: case 0x38: case 0x39: { - int d = *str - '0'; - if(value < upper_boundary) { - value = value * 10 + d; - } else if(value == upper_boundary) { - if(d <= last_digit_max) { - if(sign > 0) { - value = value * 10 + d; - } else { - sign = 1; - value = -value * 10 - d; - } - } else { - *end = str; - return ASN_STRTOX_ERROR_RANGE; - } - } else { - *end = str; - return ASN_STRTOX_ERROR_RANGE; - } - } - continue; - default: - *end = str; - *intp = sign * value; - return ASN_STRTOX_EXTRA_DATA; - } - } - - *end = str; - *intp = sign * value; - return ASN_STRTOX_OK; -} - -/* - * Parse the number in the given string until the given *end position, - * returning the position after the last parsed character back using the - * same (*end) pointer. - * WARNING: This behavior is different from the standard strtoul/strtoumax(3). - */ -enum asn_strtox_result_e -asn_strtoumax_lim(const char *str, const char **end, uintmax_t *uintp) { - uintmax_t value; - -#define ASN1_UINTMAX_MAX ((~(uintmax_t)0)) - const uintmax_t upper_boundary = ASN1_UINTMAX_MAX / 10; - uintmax_t last_digit_max = ASN1_UINTMAX_MAX % 10; -#undef ASN1_UINTMAX_MAX - - if(str >= *end) return ASN_STRTOX_ERROR_INVAL; - - switch(*str) { - case '-': - return ASN_STRTOX_ERROR_INVAL; - case '+': - str++; - if(str >= *end) { - *end = str; - return ASN_STRTOX_EXPECT_MORE; - } - } - - for(value = 0; str < (*end); str++) { - switch(*str) { - case 0x30: case 0x31: case 0x32: case 0x33: case 0x34: - case 0x35: case 0x36: case 0x37: case 0x38: case 0x39: { - unsigned int d = *str - '0'; - if(value < upper_boundary) { - value = value * 10 + d; - } else if(value == upper_boundary) { - if(d <= last_digit_max) { - value = value * 10 + d; - } else { - *end = str; - return ASN_STRTOX_ERROR_RANGE; - } - } else { - *end = str; - return ASN_STRTOX_ERROR_RANGE; - } - } - continue; - default: - *end = str; - *uintp = value; - return ASN_STRTOX_EXTRA_DATA; - } - } - - *end = str; - *uintp = value; - return ASN_STRTOX_OK; -} - -enum asn_strtox_result_e -asn_strtol_lim(const char *str, const char **end, long *lp) { - intmax_t value; - switch(asn_strtoimax_lim(str, end, &value)) { - case ASN_STRTOX_ERROR_RANGE: - return ASN_STRTOX_ERROR_RANGE; - case ASN_STRTOX_ERROR_INVAL: - return ASN_STRTOX_ERROR_INVAL; - case ASN_STRTOX_EXPECT_MORE: - return ASN_STRTOX_EXPECT_MORE; - case ASN_STRTOX_OK: - if(value >= LONG_MIN && value <= LONG_MAX) { - *lp = value; - return ASN_STRTOX_OK; - } else { - return ASN_STRTOX_ERROR_RANGE; - } - case ASN_STRTOX_EXTRA_DATA: - if(value >= LONG_MIN && value <= LONG_MAX) { - *lp = value; - return ASN_STRTOX_EXTRA_DATA; - } else { - return ASN_STRTOX_ERROR_RANGE; - } - } - - assert(!"Unreachable"); - return ASN_STRTOX_ERROR_INVAL; -} - -enum asn_strtox_result_e -asn_strtoul_lim(const char *str, const char **end, unsigned long *ulp) { - uintmax_t value; - switch(asn_strtoumax_lim(str, end, &value)) { - case ASN_STRTOX_ERROR_RANGE: - return ASN_STRTOX_ERROR_RANGE; - case ASN_STRTOX_ERROR_INVAL: - return ASN_STRTOX_ERROR_INVAL; - case ASN_STRTOX_EXPECT_MORE: - return ASN_STRTOX_EXPECT_MORE; - case ASN_STRTOX_OK: - if(value <= ULONG_MAX) { - *ulp = value; - return ASN_STRTOX_OK; - } else { - return ASN_STRTOX_ERROR_RANGE; - } - case ASN_STRTOX_EXTRA_DATA: - if(value <= ULONG_MAX) { - *ulp = value; - return ASN_STRTOX_EXTRA_DATA; - } else { - return ASN_STRTOX_ERROR_RANGE; - } - } - - assert(!"Unreachable"); - return ASN_STRTOX_ERROR_INVAL; -} - -int -INTEGER_compare(const asn_TYPE_descriptor_t *td, const void *aptr, - const void *bptr) { - const INTEGER_t *a = aptr; - const INTEGER_t *b = bptr; - - (void)td; - - if(a && b) { - if(a->size && b->size) { - int sign_a = (a->buf[0] & 0x80) ? -1 : 1; - int sign_b = (b->buf[0] & 0x80) ? -1 : 1; - - if(sign_a < sign_b) return -1; - if(sign_a > sign_b) return 1; - - /* The shortest integer wins, unless comparing negatives */ - if(a->size < b->size) { - return -1 * sign_a; - } else if(a->size > b->size) { - return 1 * sign_b; - } - - return sign_a * memcmp(a->buf, b->buf, a->size); - } else if(a->size) { - int sign = (a->buf[0] & 0x80) ? -1 : 1; - return (1) * sign; - } else if(b->size) { - int sign = (a->buf[0] & 0x80) ? -1 : 1; - return (-1) * sign; - } else { - return 0; - } - } else if(!a && !b) { - return 0; - } else if(!a) { - return -1; - } else { - return 1; - } - -} - -asn_random_fill_result_t -INTEGER_random_fill(const asn_TYPE_descriptor_t *td, void **sptr, - const asn_encoding_constraints_t *constraints, - size_t max_length) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - asn_random_fill_result_t result_ok = {ARFILL_OK, 1}; - asn_random_fill_result_t result_failed = {ARFILL_FAILED, 0}; - asn_random_fill_result_t result_skipped = {ARFILL_SKIPPED, 0}; - INTEGER_t *st = *sptr; - const asn_INTEGER_enum_map_t *emap; - size_t emap_len; - intmax_t value; - int find_inside_map; - - if(max_length == 0) return result_skipped; - - if(st == NULL) { - st = (INTEGER_t *)CALLOC(1, sizeof(*st)); - if(st == NULL) { - return result_failed; - } - } - - if(specs) { - emap = specs->value2enum; - emap_len = specs->map_count; - if(specs->strict_enumeration) { - find_inside_map = emap_len > 0; - } else { - find_inside_map = emap_len ? asn_random_between(0, 1) : 0; - } - } else { - emap = 0; - emap_len = 0; - find_inside_map = 0; - } - - if(find_inside_map) { - assert(emap_len > 0); - value = emap[asn_random_between(0, emap_len - 1)].nat_value; - } else { - const asn_per_constraints_t *ct; - - static const long variants[] = { - -65536, -65535, -65534, -32769, -32768, -32767, -16385, -16384, - -16383, -257, -256, -255, -254, -129, -128, -127, - -126, -1, 0, 1, 126, 127, 128, 129, - 254, 255, 256, 257, 16383, 16384, 16385, 32767, - 32768, 32769, 65534, 65535, 65536, 65537}; - if(specs && specs->field_unsigned) { - assert(variants[18] == 0); - value = variants[asn_random_between( - 18, sizeof(variants) / sizeof(variants[0]) - 1)]; - } else { - value = variants[asn_random_between( - 0, sizeof(variants) / sizeof(variants[0]) - 1)]; - } - - if(!constraints) constraints = &td->encoding_constraints; - ct = constraints ? constraints->per_constraints : 0; - if(ct && (ct->value.flags & APC_CONSTRAINED)) { - if(value < ct->value.lower_bound || value > ct->value.upper_bound) { - value = asn_random_between(ct->value.lower_bound, - ct->value.upper_bound); - } - } - } - - if(asn_imax2INTEGER(st, value)) { - if(st == *sptr) { - ASN_STRUCT_RESET(*td, st); - } else { - ASN_STRUCT_FREE(*td, st); - } - return result_failed; - } else { - *sptr = st; - result_ok.length = st->size; - return result_ok; - } -} diff --git a/e2sim/previous/e2apv1sim/ASN1c/INTEGER.h b/e2sim/previous/e2apv1sim/ASN1c/INTEGER.h deleted file mode 100644 index f776c07..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/INTEGER.h +++ /dev/null @@ -1,108 +0,0 @@ -/*- - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef _INTEGER_H_ -#define _INTEGER_H_ - -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -typedef ASN__PRIMITIVE_TYPE_t INTEGER_t; - -extern asn_TYPE_descriptor_t asn_DEF_INTEGER; -extern asn_TYPE_operation_t asn_OP_INTEGER; - -/* Map with to integer value association */ -typedef struct asn_INTEGER_enum_map_s { - long nat_value; /* associated native integer value */ - size_t enum_len; /* strlen("tag") */ - const char *enum_name; /* "tag" */ -} asn_INTEGER_enum_map_t; - -/* This type describes an enumeration for INTEGER and ENUMERATED types */ -typedef struct asn_INTEGER_specifics_s { - const asn_INTEGER_enum_map_t *value2enum; /* N -> "tag"; sorted by N */ - const unsigned int *enum2value; /* "tag" => N; sorted by tag */ - int map_count; /* Elements in either map */ - int extension; /* This map is extensible */ - int strict_enumeration; /* Enumeration set is fixed */ - int field_width; /* Size of native integer */ - int field_unsigned; /* Signed=0, unsigned=1 */ -} asn_INTEGER_specifics_t; - -#define INTEGER_free ASN__PRIMITIVE_TYPE_free -#define INTEGER_decode_ber ber_decode_primitive -#define INTEGER_constraint asn_generic_no_constraint -asn_struct_print_f INTEGER_print; -asn_struct_compare_f INTEGER_compare; -der_type_encoder_f INTEGER_encode_der; -xer_type_decoder_f INTEGER_decode_xer; -xer_type_encoder_f INTEGER_encode_xer; -oer_type_decoder_f INTEGER_decode_oer; -oer_type_encoder_f INTEGER_encode_oer; -per_type_decoder_f INTEGER_decode_uper; -per_type_encoder_f INTEGER_encode_uper; -per_type_decoder_f INTEGER_decode_aper; -per_type_encoder_f INTEGER_encode_aper; -asn_random_fill_f INTEGER_random_fill; - -/*********************************** - * Some handy conversion routines. * - ***********************************/ - -/* - * Natiwe size-independent conversion of native integers to/from INTEGER. - * (l_size) is in bytes. - * Returns 0 if it was possible to convert, -1 otherwise. - * -1/EINVAL: Mandatory argument missing - * -1/ERANGE: Value encoded is out of range for long representation - * -1/ENOMEM: Memory allocation failed (in asn_*2INTEGER()). - */ -int asn_INTEGER2imax(const INTEGER_t *i, intmax_t *l); -int asn_INTEGER2umax(const INTEGER_t *i, uintmax_t *l); -int asn_imax2INTEGER(INTEGER_t *i, intmax_t l); -int asn_umax2INTEGER(INTEGER_t *i, uintmax_t l); - -/* - * Size-specific conversion helpers. - */ -int asn_INTEGER2long(const INTEGER_t *i, long *l); -int asn_INTEGER2ulong(const INTEGER_t *i, unsigned long *l); -int asn_long2INTEGER(INTEGER_t *i, long l); -int asn_ulong2INTEGER(INTEGER_t *i, unsigned long l); -int asn_int642INTEGER(INTEGER_t *i, int64_t l); -int asn_uint642INTEGER(INTEGER_t *i, uint64_t l); - -/* A version of strtol/strtoimax(3) with nicer error reporting. */ -enum asn_strtox_result_e { - ASN_STRTOX_ERROR_RANGE = -3, /* Input outside of supported numeric range */ - ASN_STRTOX_ERROR_INVAL = -2, /* Invalid data encountered (e.g., "+-") */ - ASN_STRTOX_EXPECT_MORE = -1, /* More data expected (e.g. "+") */ - ASN_STRTOX_OK = 0, /* Conversion succeded, number ends at (*end) */ - ASN_STRTOX_EXTRA_DATA = 1 /* Conversion succeded, but the string has extra stuff */ -}; -enum asn_strtox_result_e asn_strtol_lim(const char *str, const char **end, - long *l); -enum asn_strtox_result_e asn_strtoul_lim(const char *str, const char **end, - unsigned long *l); -enum asn_strtox_result_e asn_strtoimax_lim(const char *str, const char **end, - intmax_t *l); -enum asn_strtox_result_e asn_strtoumax_lim(const char *str, const char **end, - uintmax_t *l); - -/* - * Convert the integer value into the corresponding enumeration map entry. - */ -const asn_INTEGER_enum_map_t *INTEGER_map_value2enum( - const asn_INTEGER_specifics_t *specs, long value); - -#ifdef __cplusplus -} -#endif - -#endif /* _INTEGER_H_ */ diff --git a/e2sim/previous/e2apv1sim/ASN1c/INTEGER_oer.c b/e2sim/previous/e2apv1sim/ASN1c/INTEGER_oer.c deleted file mode 100644 index 110689b..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/INTEGER_oer.c +++ /dev/null @@ -1,179 +0,0 @@ -/* - * Copyright (c) 2017 Lev Walkin . - * All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef ASN_DISABLE_OER_SUPPORT - -#include -#include -#include - -asn_dec_rval_t -INTEGER_decode_oer(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_oer_constraints_t *constraints, void **sptr, - const void *ptr, size_t size) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - asn_dec_rval_t rval = {RC_OK, 0}; - INTEGER_t *st = (INTEGER_t *)*sptr; - struct asn_oer_constraint_number_s ct = {0, 0}; - size_t req_bytes; - - (void)opt_codec_ctx; - (void)specs; - - if(!st) { - st = (INTEGER_t *)(*sptr = CALLOC(1, sizeof(*st))); - if(!st) ASN__DECODE_FAILED; - } - - FREEMEM(st->buf); - st->buf = 0; - st->size = 0; - - if(!constraints) constraints = td->encoding_constraints.oer_constraints; - if(constraints) ct = constraints->value; - - if(ct.width) { - req_bytes = ct.width; - } else { - /* No lower bound and no upper bound, effectively */ - - ssize_t consumed = oer_fetch_length(ptr, size, &req_bytes); - if(consumed == 0) { - ASN__DECODE_STARVED; - } else if(consumed == -1) { - ASN__DECODE_FAILED; - } - rval.consumed += consumed; - ptr = (const char *)ptr + consumed; - size -= consumed; - } - - if(req_bytes > size) { - ASN__DECODE_STARVED; - } - - if(ct.positive) { - /* X.969 08/2015 10.2(a) */ - unsigned msb; /* Most significant bit */ - size_t useful_size; - - /* Check most significant bit */ - msb = *(const uint8_t *)ptr >> 7; /* yields 0 or 1 */ - useful_size = msb + req_bytes; - st->buf = (uint8_t *)MALLOC(useful_size + 1); - if(!st->buf) { - ASN__DECODE_FAILED; - } - - /* - * Record a large unsigned in a way not to confuse it - * with signed value. - */ - st->buf[0] = '\0'; - memcpy(st->buf + msb, ptr, req_bytes); - st->buf[useful_size] = '\0'; /* Just in case, 0-terminate */ - st->size = useful_size; - - rval.consumed += req_bytes; - return rval; - } else { - /* X.969 08/2015 10.2(b) */ - st->buf = (uint8_t *)MALLOC(req_bytes + 1); - if(!st->buf) { - ASN__DECODE_FAILED; - } - - memcpy(st->buf, ptr, req_bytes); - st->buf[req_bytes] = '\0'; /* Just in case, 0-terminate */ - st->size = req_bytes; - - rval.consumed += req_bytes; - return rval; - } -} - -/* - * Encode as Canonical OER. - */ -asn_enc_rval_t -INTEGER_encode_oer(const asn_TYPE_descriptor_t *td, - const asn_oer_constraints_t *constraints, const void *sptr, - asn_app_consume_bytes_f *cb, void *app_key) { - const INTEGER_t *st = sptr; - asn_enc_rval_t er = {0,0,0}; - struct asn_oer_constraint_number_s ct = {0, 0}; - const uint8_t *buf; - const uint8_t *end; - size_t useful_bytes; - size_t req_bytes = 0; - int sign = 0; - - if(!st || st->size == 0) ASN__ENCODE_FAILED; - - if(!constraints) constraints = td->encoding_constraints.oer_constraints; - if(constraints) ct = constraints->value; - - er.encoded = 0; - - buf = st->buf; - end = buf + st->size; - - sign = (buf && buf < end) ? buf[0] & 0x80 : 0; - - /* Ignore 9 leading zeroes or ones */ - if(ct.positive) { - if(sign) { - /* The value given is a signed value. Can't proceed. */ - ASN__ENCODE_FAILED; - } - /* Remove leading zeros. */ - for(; buf + 1 < end; buf++) { - if(buf[0] != 0x0) break; - } - } else { - for(; buf + 1 < end; buf++) { - if(buf[0] == 0x0 && (buf[1] & 0x80) == 0) { - continue; - } else if(buf[0] == 0xff && (buf[1] & 0x80) != 0) { - continue; - } - break; - } - } - - useful_bytes = end - buf; - if(ct.width) { - req_bytes = ct.width; - } else { - ssize_t r = oer_serialize_length(useful_bytes, cb, app_key); - if(r < 0) { - ASN__ENCODE_FAILED; - } - er.encoded += r; - req_bytes = useful_bytes; - } - - if(req_bytes < useful_bytes) { - ASN__ENCODE_FAILED; - } - - er.encoded += req_bytes; - - for(; req_bytes > useful_bytes; req_bytes--) { - if(cb(sign?"\xff":"\0", 1, app_key) < 0) { - ASN__ENCODE_FAILED; - } - } - - if(cb(buf, useful_bytes, app_key) < 0) { - ASN__ENCODE_FAILED; - } - - ASN__ENCODED_OK(er); -} - -#endif /* ASN_DISABLE_OER_SUPPORT */ diff --git a/e2sim/previous/e2apv1sim/ASN1c/InitiatingMessage.c b/e2sim/previous/e2apv1sim/ASN1c/InitiatingMessage.c deleted file mode 100644 index de67caf..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/InitiatingMessage.c +++ /dev/null @@ -1,389 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Descriptions" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "InitiatingMessage.h" - -static const long asn_VAL_1_id_RICsubscription = 8; -static const long asn_VAL_1_reject = 0; -static const long asn_VAL_2_id_RICsubscriptionDelete = 9; -static const long asn_VAL_2_reject = 0; -static const long asn_VAL_3_id_RICserviceUpdate = 7; -static const long asn_VAL_3_reject = 0; -static const long asn_VAL_4_id_RICcontrol = 4; -static const long asn_VAL_4_reject = 0; -static const long asn_VAL_5_id_E2setup = 1; -static const long asn_VAL_5_reject = 0; -static const long asn_VAL_6_id_Reset = 3; -static const long asn_VAL_6_reject = 0; -static const long asn_VAL_7_id_RICindication = 5; -static const long asn_VAL_7_ignore = 1; -static const long asn_VAL_8_id_RICserviceQuery = 6; -static const long asn_VAL_8_ignore = 1; -static const long asn_VAL_9_id_ErrorIndication = 2; -static const long asn_VAL_9_ignore = 1; -static const asn_ioc_cell_t asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1_rows[] = { - { "&InitiatingMessage", aioc__type, &asn_DEF_RICsubscriptionRequest }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionResponse }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_1_id_RICsubscription }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_1_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_RICsubscriptionDeleteRequest }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionDeleteResponse }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionDeleteFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_2_id_RICsubscriptionDelete }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_2_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_RICserviceUpdate }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_RICserviceUpdateAcknowledge }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RICserviceUpdateFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_3_id_RICserviceUpdate }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_3_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_RICcontrolRequest }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_RICcontrolAcknowledge }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RICcontrolFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_4_id_RICcontrol }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_4_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_E2setupRequest }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_E2setupResponse }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_E2setupFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_5_id_E2setup }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_5_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_ResetRequest }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_ResetResponse }, - { "&UnsuccessfulOutcome", }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_6_id_Reset }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_6_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_RICindication }, - { "&SuccessfulOutcome", }, - { "&UnsuccessfulOutcome", }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_7_id_RICindication }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_7_ignore }, - { "&InitiatingMessage", aioc__type, &asn_DEF_RICserviceQuery }, - { "&SuccessfulOutcome", }, - { "&UnsuccessfulOutcome", }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_8_id_RICserviceQuery }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_8_ignore }, - { "&InitiatingMessage", aioc__type, &asn_DEF_ErrorIndication }, - { "&SuccessfulOutcome", }, - { "&UnsuccessfulOutcome", }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_9_id_ErrorIndication }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_9_ignore } -}; -static const asn_ioc_set_t asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1[] = { - { 9, 5, asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1_rows } -}; -static int -memb_procedureCode_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 255)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_InitiatingMessage_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1; - size_t constraining_column = 3; /* &procedureCode */ - size_t for_column = 4; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct InitiatingMessage, procedureCode)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_InitiatingMessage_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1; - size_t constraining_column = 3; /* &procedureCode */ - size_t for_column = 0; /* &InitiatingMessage */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct InitiatingMessage, procedureCode)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_per_constraints_t asn_PER_memb_procedureCode_constr_2 CC_NOTUSED = { - { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_3 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_4 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_value_4[] = { - { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.RICsubscriptionRequest), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICsubscriptionRequest, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICsubscriptionRequest" - }, - { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.RICsubscriptionDeleteRequest), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICsubscriptionDeleteRequest, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICsubscriptionDeleteRequest" - }, - { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.RICserviceUpdate), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICserviceUpdate, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICserviceUpdate" - }, - { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.RICcontrolRequest), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICcontrolRequest, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICcontrolRequest" - }, - { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.E2setupRequest), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E2setupRequest, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "E2setupRequest" - }, - { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.ResetRequest), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ResetRequest, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ResetRequest" - }, - { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.RICindication), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICindication, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICindication" - }, - { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.RICserviceQuery), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICserviceQuery, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICserviceQuery" - }, - { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.ErrorIndication), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ErrorIndication, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ErrorIndication" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_4[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 8 }, /* RICsubscriptionRequest */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 7 }, /* RICsubscriptionDeleteRequest */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -2, 6 }, /* RICserviceUpdate */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -3, 5 }, /* RICcontrolRequest */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, -4, 4 }, /* E2setupRequest */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 5, -5, 3 }, /* ResetRequest */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 6, -6, 2 }, /* RICindication */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 7, -7, 1 }, /* RICserviceQuery */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 8, -8, 0 } /* ErrorIndication */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_4 = { - sizeof(struct InitiatingMessage__value), - offsetof(struct InitiatingMessage__value, _asn_ctx), - offsetof(struct InitiatingMessage__value, present), - sizeof(((struct InitiatingMessage__value *)0)->present), - asn_MAP_value_tag2el_4, - 9, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_4 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_4, - 9, /* Elements count */ - &asn_SPC_value_specs_4 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_InitiatingMessage_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage, procedureCode), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProcedureCode, - 0, - { 0, &asn_PER_memb_procedureCode_constr_2, memb_procedureCode_constraint_1 }, - 0, 0, /* No default value */ - "procedureCode" - }, - { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_InitiatingMessage_criticality_type, - { 0, &asn_PER_memb_criticality_constr_3, memb_criticality_constraint_1 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_4, - select_InitiatingMessage_value_type, - { 0, &asn_PER_memb_value_constr_4, memb_value_constraint_1 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_InitiatingMessage_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_InitiatingMessage_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* procedureCode */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_InitiatingMessage_specs_1 = { - sizeof(struct InitiatingMessage), - offsetof(struct InitiatingMessage, _asn_ctx), - asn_MAP_InitiatingMessage_tag2el_1, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_InitiatingMessage = { - "InitiatingMessage", - "InitiatingMessage", - &asn_OP_SEQUENCE, - asn_DEF_InitiatingMessage_tags_1, - sizeof(asn_DEF_InitiatingMessage_tags_1) - /sizeof(asn_DEF_InitiatingMessage_tags_1[0]), /* 1 */ - asn_DEF_InitiatingMessage_tags_1, /* Same as above */ - sizeof(asn_DEF_InitiatingMessage_tags_1) - /sizeof(asn_DEF_InitiatingMessage_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_InitiatingMessage_1, - 3, /* Elements count */ - &asn_SPC_InitiatingMessage_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/InitiatingMessage.h b/e2sim/previous/e2apv1sim/ASN1c/InitiatingMessage.h deleted file mode 100644 index a8a01f6..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/InitiatingMessage.h +++ /dev/null @@ -1,97 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Descriptions" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _InitiatingMessage_H_ -#define _InitiatingMessage_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProcedureCode.h" -#include "Criticality.h" -#include "ANY.h" -#include "asn_ioc.h" -#include "RICsubscriptionRequest.h" -#include "RICsubscriptionResponse.h" -#include "RICsubscriptionFailure.h" -#include "RICsubscriptionDeleteRequest.h" -#include "RICsubscriptionDeleteResponse.h" -#include "RICsubscriptionDeleteFailure.h" -#include "RICserviceUpdate.h" -#include "RICserviceUpdateAcknowledge.h" -#include "RICserviceUpdateFailure.h" -#include "RICcontrolRequest.h" -#include "RICcontrolAcknowledge.h" -#include "RICcontrolFailure.h" -#include "E2setupRequest.h" -#include "E2setupResponse.h" -#include "E2setupFailure.h" -#include "ResetRequest.h" -#include "ResetResponse.h" -#include "RICindication.h" -#include "RICserviceQuery.h" -#include "ErrorIndication.h" -#include "OPEN_TYPE.h" -#include "constr_CHOICE.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum InitiatingMessage__value_PR { - InitiatingMessage__value_PR_NOTHING, /* No components present */ - InitiatingMessage__value_PR_RICsubscriptionRequest, - InitiatingMessage__value_PR_RICsubscriptionDeleteRequest, - InitiatingMessage__value_PR_RICserviceUpdate, - InitiatingMessage__value_PR_RICcontrolRequest, - InitiatingMessage__value_PR_E2setupRequest, - InitiatingMessage__value_PR_ResetRequest, - InitiatingMessage__value_PR_RICindication, - InitiatingMessage__value_PR_RICserviceQuery, - InitiatingMessage__value_PR_ErrorIndication -} InitiatingMessage__value_PR; - -/* InitiatingMessage */ -typedef struct InitiatingMessage { - ProcedureCode_t procedureCode; - Criticality_t criticality; - struct InitiatingMessage__value { - InitiatingMessage__value_PR present; - union InitiatingMessage__value_u { - RICsubscriptionRequest_t RICsubscriptionRequest; - RICsubscriptionDeleteRequest_t RICsubscriptionDeleteRequest; - RICserviceUpdate_t RICserviceUpdate; - RICcontrolRequest_t RICcontrolRequest; - E2setupRequest_t E2setupRequest; - ResetRequest_t ResetRequest; - RICindication_t RICindication; - RICserviceQuery_t RICserviceQuery; - ErrorIndication_t ErrorIndication; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} InitiatingMessage_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_InitiatingMessage; -extern asn_SEQUENCE_specifics_t asn_SPC_InitiatingMessage_specs_1; -extern asn_TYPE_member_t asn_MBR_InitiatingMessage_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _InitiatingMessage_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ASN1c/Makefile.am.asn1convert b/e2sim/previous/e2apv1sim/ASN1c/Makefile.am.asn1convert deleted file mode 100644 index c1bec19..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/Makefile.am.asn1convert +++ /dev/null @@ -1,14 +0,0 @@ -include Makefile.am.libasncodec - -bin_PROGRAMS += asn1convert -asn1convert_CFLAGS = $(ASN_MODULE_CFLAGS) -DASN_PDU_COLLECTION -asn1convert_CPPFLAGS = -I$(top_srcdir)/ -asn1convert_LDADD = libasncodec.la -asn1convert_SOURCES = \ - converter-example.c\ - pdu_collection.c -regen: regenerate-from-asn1-source - -regenerate-from-asn1-source: - asn1c -fcompound-names /home/rshacham/e2sm-kpm-v01.02.asn - diff --git a/e2sim/previous/e2apv1sim/ASN1c/Makefile.am.libasncodec b/e2sim/previous/e2apv1sim/ASN1c/Makefile.am.libasncodec deleted file mode 100644 index 8abd4f1..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/Makefile.am.libasncodec +++ /dev/null @@ -1,240 +0,0 @@ -ASN_MODULE_SRCS= \ - GlobalKPMnode-ID.c \ - GlobalKPMnode-gNB-ID.c \ - GlobalgNB-ID.c \ - GNB-CU-UP-ID.c \ - GNB-DU-ID.c \ - GNB-ID-Choice.c \ - GlobalKPMnode-en-gNB-ID.c \ - GlobalenGNB-ID.c \ - ENGNB-ID.c \ - GlobalKPMnode-ng-eNB-ID.c \ - GlobalngeNB-ID.c \ - ENB-ID-Choice.c \ - GlobalKPMnode-eNB-ID.c \ - GlobalENB-ID.c \ - ENB-ID.c \ - NRCGI.c \ - PLMN-Identity.c \ - NRCellIdentity.c \ - SNSSAI.c \ - C-RNTI.c \ - RIC-Style-Type.c \ - RIC-Style-Name.c \ - RIC-Format-Type.c \ - E2SM-KPM-EventTriggerDefinition.c \ - E2SM-KPM-EventTriggerDefinition-Format1.c \ - E2SM-KPM-ActionDefinition.c \ - E2SM-KPM-IndicationHeader.c \ - E2SM-KPM-IndicationHeader-Format1.c \ - E2SM-KPM-IndicationMessage.c \ - E2SM-KPM-IndicationMessage-Format1.c \ - PM-Containers-List.c \ - E2SM-KPM-RANfunction-Description.c \ - NI-Type.c \ - RAN-Container.c \ - Timestamp.c \ - Trigger-ConditionIE-Item.c \ - RT-Period-IE.c \ - RANcallProcess-ID-string.c \ - RANfunction-Name.c \ - RIC-EventTriggerStyle-List.c \ - RIC-ReportStyle-List.c \ - PF-Container.c \ - GNB-Name.c \ - GNB-CU-CP-Name.c \ - GNB-DU-Name.c \ - GNB-CU-UP-Name.c \ - UE-Report-Type.c \ - ODU-PF-Container.c \ - CellResourceReportListItem.c \ - ServedPlmnPerCellListItem.c \ - FGC-DU-PM-Container.c \ - SlicePerPlmnPerCellListItem.c \ - FQIPERSlicesPerPlmnPerCellListItem.c \ - EPC-DU-PM-Container.c \ - PerQCIReportListItem.c \ - DU-Usage-Report-Per-UE.c \ - DU-Usage-Report-CellResourceReportItem.c \ - DU-Usage-Report-UeResourceReportItem.c \ - OCUCP-PF-Container.c \ - CU-CP-Usage-Report-Per-UE.c \ - CU-CP-Usage-Report-CellResourceReportItem.c \ - CU-CP-Usage-Report-UeResourceReportItem.c \ - OCUUP-PF-Container.c \ - PF-ContainerListItem.c \ - CUUPMeasurement-Container.c \ - PlmnID-List.c \ - FGC-CUUP-PM-Format.c \ - SliceToReportListItem.c \ - FQIPERSlicesPerPlmnListItem.c \ - EPC-CUUP-PM-Format.c \ - PerQCIReportListItemFormat.c \ - CU-UP-Usage-Report-Per-UE.c \ - CU-UP-Usage-Report-CellResourceReportItem.c \ - CU-UP-Usage-Report-UeResourceReportItem.c - -ASN_MODULE_HDRS= \ - GlobalKPMnode-ID.h \ - GlobalKPMnode-gNB-ID.h \ - GlobalgNB-ID.h \ - GNB-CU-UP-ID.h \ - GNB-DU-ID.h \ - GNB-ID-Choice.h \ - GlobalKPMnode-en-gNB-ID.h \ - GlobalenGNB-ID.h \ - ENGNB-ID.h \ - GlobalKPMnode-ng-eNB-ID.h \ - GlobalngeNB-ID.h \ - ENB-ID-Choice.h \ - GlobalKPMnode-eNB-ID.h \ - GlobalENB-ID.h \ - ENB-ID.h \ - NRCGI.h \ - PLMN-Identity.h \ - NRCellIdentity.h \ - SNSSAI.h \ - C-RNTI.h \ - RIC-Style-Type.h \ - RIC-Style-Name.h \ - RIC-Format-Type.h \ - E2SM-KPM-EventTriggerDefinition.h \ - E2SM-KPM-EventTriggerDefinition-Format1.h \ - E2SM-KPM-ActionDefinition.h \ - E2SM-KPM-IndicationHeader.h \ - E2SM-KPM-IndicationHeader-Format1.h \ - E2SM-KPM-IndicationMessage.h \ - E2SM-KPM-IndicationMessage-Format1.h \ - PM-Containers-List.h \ - E2SM-KPM-RANfunction-Description.h \ - NI-Type.h \ - RAN-Container.h \ - Timestamp.h \ - Trigger-ConditionIE-Item.h \ - RT-Period-IE.h \ - RANcallProcess-ID-string.h \ - RANfunction-Name.h \ - RIC-EventTriggerStyle-List.h \ - RIC-ReportStyle-List.h \ - PF-Container.h \ - GNB-Name.h \ - GNB-CU-CP-Name.h \ - GNB-DU-Name.h \ - GNB-CU-UP-Name.h \ - UE-Report-Type.h \ - ODU-PF-Container.h \ - CellResourceReportListItem.h \ - ServedPlmnPerCellListItem.h \ - FGC-DU-PM-Container.h \ - SlicePerPlmnPerCellListItem.h \ - FQIPERSlicesPerPlmnPerCellListItem.h \ - EPC-DU-PM-Container.h \ - PerQCIReportListItem.h \ - DU-Usage-Report-Per-UE.h \ - DU-Usage-Report-CellResourceReportItem.h \ - DU-Usage-Report-UeResourceReportItem.h \ - OCUCP-PF-Container.h \ - CU-CP-Usage-Report-Per-UE.h \ - CU-CP-Usage-Report-CellResourceReportItem.h \ - CU-CP-Usage-Report-UeResourceReportItem.h \ - OCUUP-PF-Container.h \ - PF-ContainerListItem.h \ - CUUPMeasurement-Container.h \ - PlmnID-List.h \ - FGC-CUUP-PM-Format.h \ - SliceToReportListItem.h \ - FQIPERSlicesPerPlmnListItem.h \ - EPC-CUUP-PM-Format.h \ - PerQCIReportListItemFormat.h \ - CU-UP-Usage-Report-Per-UE.h \ - CU-UP-Usage-Report-CellResourceReportItem.h \ - CU-UP-Usage-Report-UeResourceReportItem.h - -ASN_MODULE_HDRS+=OPEN_TYPE.h -ASN_MODULE_SRCS+=OPEN_TYPE.c -ASN_MODULE_HDRS+=constr_CHOICE.h -ASN_MODULE_HDRS+=INTEGER.h -ASN_MODULE_SRCS+=INTEGER.c -ASN_MODULE_HDRS+=NativeEnumerated.h -ASN_MODULE_SRCS+=NativeEnumerated.c -ASN_MODULE_HDRS+=NativeInteger.h -ASN_MODULE_SRCS+=NativeInteger.c -ASN_MODULE_HDRS+=PrintableString.h -ASN_MODULE_SRCS+=PrintableString.c -ASN_MODULE_HDRS+=OCTET_STRING.h -ASN_MODULE_HDRS+=asn_SEQUENCE_OF.h -ASN_MODULE_SRCS+=asn_SEQUENCE_OF.c -ASN_MODULE_HDRS+=asn_SET_OF.h -ASN_MODULE_SRCS+=asn_SET_OF.c -ASN_MODULE_SRCS+=constr_CHOICE.c -ASN_MODULE_HDRS+=constr_SEQUENCE.h -ASN_MODULE_SRCS+=constr_SEQUENCE.c -ASN_MODULE_HDRS+=constr_SEQUENCE_OF.h -ASN_MODULE_SRCS+=constr_SEQUENCE_OF.c -ASN_MODULE_HDRS+=constr_SET_OF.h -ASN_MODULE_SRCS+=constr_SET_OF.c -ASN_MODULE_HDRS+=asn_application.h -ASN_MODULE_SRCS+=asn_application.c -ASN_MODULE_HDRS+=asn_ioc.h -ASN_MODULE_HDRS+=asn_system.h -ASN_MODULE_HDRS+=asn_codecs.h -ASN_MODULE_HDRS+=asn_internal.h -ASN_MODULE_SRCS+=asn_internal.c -ASN_MODULE_HDRS+=asn_random_fill.h -ASN_MODULE_SRCS+=asn_random_fill.c -ASN_MODULE_HDRS+=asn_bit_data.h -ASN_MODULE_SRCS+=asn_bit_data.c -ASN_MODULE_SRCS+=OCTET_STRING.c -ASN_MODULE_HDRS+=BIT_STRING.h -ASN_MODULE_SRCS+=BIT_STRING.c -ASN_MODULE_SRCS+=asn_codecs_prim.c -ASN_MODULE_HDRS+=asn_codecs_prim.h -ASN_MODULE_HDRS+=ber_tlv_length.h -ASN_MODULE_SRCS+=ber_tlv_length.c -ASN_MODULE_HDRS+=ber_tlv_tag.h -ASN_MODULE_SRCS+=ber_tlv_tag.c -ASN_MODULE_HDRS+=ber_decoder.h -ASN_MODULE_SRCS+=ber_decoder.c -ASN_MODULE_HDRS+=der_encoder.h -ASN_MODULE_SRCS+=der_encoder.c -ASN_MODULE_HDRS+=constr_TYPE.h -ASN_MODULE_SRCS+=constr_TYPE.c -ASN_MODULE_HDRS+=constraints.h -ASN_MODULE_SRCS+=constraints.c -ASN_MODULE_HDRS+=xer_support.h -ASN_MODULE_SRCS+=xer_support.c -ASN_MODULE_HDRS+=xer_decoder.h -ASN_MODULE_SRCS+=xer_decoder.c -ASN_MODULE_HDRS+=xer_encoder.h -ASN_MODULE_SRCS+=xer_encoder.c -ASN_MODULE_HDRS+=per_support.h -ASN_MODULE_SRCS+=per_support.c -ASN_MODULE_HDRS+=per_decoder.h -ASN_MODULE_SRCS+=per_decoder.c -ASN_MODULE_HDRS+=per_encoder.h -ASN_MODULE_SRCS+=per_encoder.c -ASN_MODULE_HDRS+=per_opentype.h -ASN_MODULE_SRCS+=per_opentype.c -ASN_MODULE_HDRS+=oer_decoder.h -ASN_MODULE_HDRS+=oer_encoder.h -ASN_MODULE_HDRS+=oer_support.h -ASN_MODULE_SRCS+=oer_decoder.c -ASN_MODULE_SRCS+=oer_encoder.c -ASN_MODULE_SRCS+=oer_support.c -ASN_MODULE_SRCS+=OPEN_TYPE_oer.c -ASN_MODULE_SRCS+=INTEGER_oer.c -ASN_MODULE_SRCS+=BIT_STRING_oer.c -ASN_MODULE_SRCS+=OCTET_STRING_oer.c -ASN_MODULE_SRCS+=NativeInteger_oer.c -ASN_MODULE_SRCS+=NativeEnumerated_oer.c -ASN_MODULE_SRCS+=constr_CHOICE_oer.c -ASN_MODULE_SRCS+=constr_SEQUENCE_oer.c -ASN_MODULE_SRCS+=constr_SET_OF_oer.c - -ASN_MODULE_CFLAGS= - -lib_LTLIBRARIES+=libasncodec.la -libasncodec_la_SOURCES=$(ASN_MODULE_SRCS) $(ASN_MODULE_HDRS) -libasncodec_la_CPPFLAGS=-I$(top_srcdir)/ -libasncodec_la_CFLAGS=$(ASN_MODULE_CFLAGS) -libasncodec_la_LDFLAGS=-lm diff --git a/e2sim/previous/e2apv1sim/ASN1c/NI-Type.c b/e2sim/previous/e2apv1sim/ASN1c/NI-Type.c deleted file mode 100644 index 1162fd8..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/NI-Type.c +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "NI-Type.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -static asn_oer_constraints_t asn_OER_type_NI_Type_constr_1 CC_NOTUSED = { - { 0, 0 }, - -1}; -asn_per_constraints_t asn_PER_type_NI_Type_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 2 } /* (0..2,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_NI_Type_value2enum_1[] = { - { 0, 4, "x2-u" }, - { 1, 4, "xn-u" }, - { 2, 4, "f1-u" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_NI_Type_enum2value_1[] = { - 2, /* f1-u(2) */ - 0, /* x2-u(0) */ - 1 /* xn-u(1) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_NI_Type_specs_1 = { - asn_MAP_NI_Type_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_NI_Type_enum2value_1, /* N => "tag"; sorted by N */ - 3, /* Number of elements in the maps */ - 4, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_NI_Type_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_NI_Type = { - "NI-Type", - "NI-Type", - &asn_OP_NativeEnumerated, - asn_DEF_NI_Type_tags_1, - sizeof(asn_DEF_NI_Type_tags_1) - /sizeof(asn_DEF_NI_Type_tags_1[0]), /* 1 */ - asn_DEF_NI_Type_tags_1, /* Same as above */ - sizeof(asn_DEF_NI_Type_tags_1) - /sizeof(asn_DEF_NI_Type_tags_1[0]), /* 1 */ - { &asn_OER_type_NI_Type_constr_1, &asn_PER_type_NI_Type_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_NI_Type_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/NI-Type.h b/e2sim/previous/e2apv1sim/ASN1c/NI-Type.h deleted file mode 100644 index c696a44..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/NI-Type.h +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _NI_Type_H_ -#define _NI_Type_H_ - - -#include - -/* Including external dependencies */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum NI_Type { - NI_Type_x2_u = 0, - NI_Type_xn_u = 1, - NI_Type_f1_u = 2 - /* - * Enumeration is extensible - */ -} e_NI_Type; - -/* NI-Type */ -typedef long NI_Type_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_NI_Type_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_NI_Type; -extern const asn_INTEGER_specifics_t asn_SPC_NI_Type_specs_1; -asn_struct_free_f NI_Type_free; -asn_struct_print_f NI_Type_print; -asn_constr_check_f NI_Type_constraint; -ber_type_decoder_f NI_Type_decode_ber; -der_type_encoder_f NI_Type_encode_der; -xer_type_decoder_f NI_Type_decode_xer; -xer_type_encoder_f NI_Type_encode_xer; -oer_type_decoder_f NI_Type_decode_oer; -oer_type_encoder_f NI_Type_encode_oer; -per_type_decoder_f NI_Type_decode_uper; -per_type_encoder_f NI_Type_encode_uper; -per_type_decoder_f NI_Type_decode_aper; -per_type_encoder_f NI_Type_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _NI_Type_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ASN1c/NRCGI.c b/e2sim/previous/e2apv1sim/ASN1c/NRCGI.c deleted file mode 100644 index 94d8d4b..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/NRCGI.c +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "NRCGI.h" - -asn_TYPE_member_t asn_MBR_NRCGI_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct NRCGI, pLMN_Identity), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_PLMN_Identity, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "pLMN-Identity" - }, - { ATF_NOFLAGS, 0, offsetof(struct NRCGI, nRCellIdentity), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NRCellIdentity, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "nRCellIdentity" - }, -}; -static const ber_tlv_tag_t asn_DEF_NRCGI_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_NRCGI_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pLMN-Identity */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* nRCellIdentity */ -}; -asn_SEQUENCE_specifics_t asn_SPC_NRCGI_specs_1 = { - sizeof(struct NRCGI), - offsetof(struct NRCGI, _asn_ctx), - asn_MAP_NRCGI_tag2el_1, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_NRCGI = { - "NRCGI", - "NRCGI", - &asn_OP_SEQUENCE, - asn_DEF_NRCGI_tags_1, - sizeof(asn_DEF_NRCGI_tags_1) - /sizeof(asn_DEF_NRCGI_tags_1[0]), /* 1 */ - asn_DEF_NRCGI_tags_1, /* Same as above */ - sizeof(asn_DEF_NRCGI_tags_1) - /sizeof(asn_DEF_NRCGI_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_NRCGI_1, - 2, /* Elements count */ - &asn_SPC_NRCGI_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/NRCGI.h b/e2sim/previous/e2apv1sim/ASN1c/NRCGI.h deleted file mode 100644 index b4938d0..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/NRCGI.h +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _NRCGI_H_ -#define _NRCGI_H_ - - -#include - -/* Including external dependencies */ -#include "PLMN-Identity.h" -#include "NRCellIdentity.h" -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* NRCGI */ -typedef struct NRCGI { - PLMN_Identity_t pLMN_Identity; - NRCellIdentity_t nRCellIdentity; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} NRCGI_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_NRCGI; -extern asn_SEQUENCE_specifics_t asn_SPC_NRCGI_specs_1; -extern asn_TYPE_member_t asn_MBR_NRCGI_1[2]; - -#ifdef __cplusplus -} -#endif - -#endif /* _NRCGI_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ASN1c/NRCellIdentity.c b/e2sim/previous/e2apv1sim/ASN1c/NRCellIdentity.c deleted file mode 100644 index 8e0310e..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/NRCellIdentity.c +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "NRCellIdentity.h" - -int -NRCellIdentity_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if(st->size > 0) { - /* Size in bits */ - size = 8 * st->size - (st->bits_unused & 0x07); - } else { - size = 0; - } - - if((size == 36)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using BIT_STRING, - * so here we adjust the DEF accordingly. - */ -static asn_oer_constraints_t asn_OER_type_NRCellIdentity_constr_1 CC_NOTUSED = { - { 0, 0 }, - 36 /* (SIZE(36..36)) */}; -asn_per_constraints_t asn_PER_type_NRCellIdentity_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 0, 0, 36, 36 } /* (SIZE(36..36)) */, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_NRCellIdentity_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_NRCellIdentity = { - "NRCellIdentity", - "NRCellIdentity", - &asn_OP_BIT_STRING, - asn_DEF_NRCellIdentity_tags_1, - sizeof(asn_DEF_NRCellIdentity_tags_1) - /sizeof(asn_DEF_NRCellIdentity_tags_1[0]), /* 1 */ - asn_DEF_NRCellIdentity_tags_1, /* Same as above */ - sizeof(asn_DEF_NRCellIdentity_tags_1) - /sizeof(asn_DEF_NRCellIdentity_tags_1[0]), /* 1 */ - { &asn_OER_type_NRCellIdentity_constr_1, &asn_PER_type_NRCellIdentity_constr_1, NRCellIdentity_constraint }, - 0, 0, /* No members */ - &asn_SPC_BIT_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/NRCellIdentity.h b/e2sim/previous/e2apv1sim/ASN1c/NRCellIdentity.h deleted file mode 100644 index 701f381..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/NRCellIdentity.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _NRCellIdentity_H_ -#define _NRCellIdentity_H_ - - -#include - -/* Including external dependencies */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* NRCellIdentity */ -typedef BIT_STRING_t NRCellIdentity_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_NRCellIdentity_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_NRCellIdentity; -asn_struct_free_f NRCellIdentity_free; -asn_struct_print_f NRCellIdentity_print; -asn_constr_check_f NRCellIdentity_constraint; -ber_type_decoder_f NRCellIdentity_decode_ber; -der_type_encoder_f NRCellIdentity_encode_der; -xer_type_decoder_f NRCellIdentity_decode_xer; -xer_type_encoder_f NRCellIdentity_encode_xer; -oer_type_decoder_f NRCellIdentity_decode_oer; -oer_type_encoder_f NRCellIdentity_encode_oer; -per_type_decoder_f NRCellIdentity_decode_uper; -per_type_encoder_f NRCellIdentity_encode_uper; -per_type_decoder_f NRCellIdentity_decode_aper; -per_type_encoder_f NRCellIdentity_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _NRCellIdentity_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ASN1c/NativeEnumerated.c b/e2sim/previous/e2apv1sim/ASN1c/NativeEnumerated.c deleted file mode 100644 index 50ffb1d..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/NativeEnumerated.c +++ /dev/null @@ -1,367 +0,0 @@ -/*- - * Copyright (c) 2004, 2007 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -/* - * Read the NativeInteger.h for the explanation wrt. differences between - * INTEGER and NativeInteger. - * Basically, both are decoders and encoders of ASN.1 INTEGER type, but this - * implementation deals with the standard (machine-specific) representation - * of them instead of using the platform-independent buffer. - */ -#include -#include - -/* - * NativeEnumerated basic type description. - */ -static const ber_tlv_tag_t asn_DEF_NativeEnumerated_tags[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_operation_t asn_OP_NativeEnumerated = { - NativeInteger_free, - NativeInteger_print, - NativeInteger_compare, - NativeInteger_decode_ber, - NativeInteger_encode_der, - NativeInteger_decode_xer, - NativeEnumerated_encode_xer, -#ifdef ASN_DISABLE_OER_SUPPORT - 0, - 0, -#else - NativeEnumerated_decode_oer, - NativeEnumerated_encode_oer, -#endif /* ASN_DISABLE_OER_SUPPORT */ -#ifdef ASN_DISABLE_PER_SUPPORT - 0, - 0, - 0, - 0, -#else - NativeEnumerated_decode_uper, - NativeEnumerated_encode_uper, - NativeEnumerated_decode_aper, - NativeEnumerated_encode_aper, -#endif /* ASN_DISABLE_PER_SUPPORT */ - NativeEnumerated_random_fill, - 0 /* Use generic outmost tag fetcher */ -}; -asn_TYPE_descriptor_t asn_DEF_NativeEnumerated = { - "ENUMERATED", /* The ASN.1 type is still ENUMERATED */ - "ENUMERATED", - &asn_OP_NativeEnumerated, - asn_DEF_NativeEnumerated_tags, - sizeof(asn_DEF_NativeEnumerated_tags) / sizeof(asn_DEF_NativeEnumerated_tags[0]), - asn_DEF_NativeEnumerated_tags, /* Same as above */ - sizeof(asn_DEF_NativeEnumerated_tags) / sizeof(asn_DEF_NativeEnumerated_tags[0]), - { 0, 0, asn_generic_no_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - -asn_enc_rval_t -NativeEnumerated_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, - int ilevel, enum xer_encoder_flags_e flags, - asn_app_consume_bytes_f *cb, void *app_key) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - asn_enc_rval_t er = {0,0,0}; - const long *native = (const long *)sptr; - const asn_INTEGER_enum_map_t *el; - - (void)ilevel; - (void)flags; - - if(!native) ASN__ENCODE_FAILED; - - el = INTEGER_map_value2enum(specs, *native); - if(el) { - er.encoded = - asn__format_to_callback(cb, app_key, "<%s/>", el->enum_name); - if(er.encoded < 0) ASN__ENCODE_FAILED; - ASN__ENCODED_OK(er); - } else { - ASN_DEBUG( - "ASN.1 forbids dealing with " - "unknown value of ENUMERATED type"); - ASN__ENCODE_FAILED; - } -} - -asn_dec_rval_t -NativeEnumerated_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - void **sptr, asn_per_data_t *pd) { - const asn_INTEGER_specifics_t *specs = td->specifics; - asn_dec_rval_t rval = { RC_OK, 0 }; - long *native = (long *)*sptr; - const asn_per_constraint_t *ct = NULL; - long value; - - (void)opt_codec_ctx; - - if(constraints) ct = &constraints->value; - else if(td->encoding_constraints.per_constraints) - ct = &td->encoding_constraints.per_constraints->value; - else ASN__DECODE_FAILED; /* Mandatory! */ - if(!specs) ASN__DECODE_FAILED; - - if(!native) { - native = (long *)(*sptr = CALLOC(1, sizeof(*native))); - if(!native) ASN__DECODE_FAILED; - } - - ASN_DEBUG("Decoding %s as NativeEnumerated", td->name); - - if(ct && ct->flags & APC_EXTENSIBLE) { - int inext = per_get_few_bits(pd, 1); - if(inext < 0) ASN__DECODE_STARVED; - if(inext) ct = 0; - } - - if(ct && ct->range_bits >= 0) { - value = per_get_few_bits(pd, ct->range_bits); - if(value < 0) ASN__DECODE_STARVED; - if(value >= (specs->extension - ? specs->extension - 1 : specs->map_count)) - ASN__DECODE_FAILED; - } else { - if(!specs->extension) - ASN__DECODE_FAILED; - /* - * X.691, #10.6: normally small non-negative whole number; - */ - value = uper_get_nsnnwn(pd); - if(value < 0) ASN__DECODE_STARVED; - value += specs->extension - 1; - if(value >= specs->map_count) - ASN__DECODE_FAILED; - } - - *native = specs->value2enum[value].nat_value; - ASN_DEBUG("Decoded %s = %ld", td->name, *native); - - return rval; -} - -static int -NativeEnumerated__compar_value2enum(const void *ap, const void *bp) { - const asn_INTEGER_enum_map_t *a = ap; - const asn_INTEGER_enum_map_t *b = bp; - if(a->nat_value == b->nat_value) - return 0; - if(a->nat_value < b->nat_value) - return -1; - return 1; -} - -asn_enc_rval_t -NativeEnumerated_encode_uper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_per_outp_t *po) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - asn_enc_rval_t er = {0,0,0}; - long native, value; - const asn_per_constraint_t *ct = NULL; - int inext = 0; - asn_INTEGER_enum_map_t key; - const asn_INTEGER_enum_map_t *kf; - - if(!sptr) ASN__ENCODE_FAILED; - if(!specs) ASN__ENCODE_FAILED; - - if(constraints) ct = &constraints->value; - else if(td->encoding_constraints.per_constraints) - ct = &td->encoding_constraints.per_constraints->value; - else ASN__ENCODE_FAILED; /* Mandatory! */ - - ASN_DEBUG("Encoding %s as NativeEnumerated", td->name); - - er.encoded = 0; - - native = *(const long *)sptr; - - key.nat_value = native; - kf = bsearch(&key, specs->value2enum, specs->map_count, - sizeof(key), NativeEnumerated__compar_value2enum); - if(!kf) { - ASN_DEBUG("No element corresponds to %ld", native); - ASN__ENCODE_FAILED; - } - value = kf - specs->value2enum; - - if(ct && ct->range_bits >= 0) { - int cmpWith = specs->extension - ? specs->extension - 1 : specs->map_count; - if(value >= cmpWith) - inext = 1; - } - if(ct && ct->flags & APC_EXTENSIBLE) { - if(per_put_few_bits(po, inext, 1)) - ASN__ENCODE_FAILED; - if(inext) ct = 0; - } else if(inext) { - ASN__ENCODE_FAILED; - } - - if(ct && ct->range_bits >= 0) { - if(per_put_few_bits(po, value, ct->range_bits)) - ASN__ENCODE_FAILED; - ASN__ENCODED_OK(er); - } - - if(!specs->extension) - ASN__ENCODE_FAILED; - - /* - * X.691, #10.6: normally small non-negative whole number; - */ - ASN_DEBUG("value = %ld, ext = %d, inext = %d, res = %ld", - value, specs->extension, inext, - value - (inext ? (specs->extension - 1) : 0)); - if(uper_put_nsnnwn(po, value - (inext ? (specs->extension - 1) : 0))) - ASN__ENCODE_FAILED; - - ASN__ENCODED_OK(er); -} - -asn_dec_rval_t -NativeEnumerated_decode_aper(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - void **sptr, asn_per_data_t *pd) { - const asn_INTEGER_specifics_t *specs = (const asn_INTEGER_specifics_t *)td->specifics; - asn_dec_rval_t rval = { RC_OK, 0 }; - long *native = (long *)*sptr; - const asn_per_constraint_t *ct = NULL; - long value; - - (void)opt_codec_ctx; - - if(constraints) ct = &constraints->value; - else if(td->encoding_constraints.per_constraints) - ct = &td->encoding_constraints.per_constraints->value; - else ASN__DECODE_FAILED; /* Mandatory! */ - if(!specs) ASN__DECODE_FAILED; - - if(!native) { - native = (long *)(*sptr = CALLOC(1, sizeof(*native))); - if(!native) ASN__DECODE_FAILED; - } - - ASN_DEBUG("Decoding %s as NativeEnumerated", td->name); - - if(ct && ct->flags & APC_EXTENSIBLE) { - int inext = per_get_few_bits(pd, 1); - if(inext < 0) ASN__DECODE_STARVED; - if(inext) ct = 0; - } - - /* Deal with APER padding */ - if(ct && ct->upper_bound >= 255) { - int padding = 0; - padding = (8 - (pd->moved % 8)) % 8; - ASN_DEBUG("For NativeEnumerated %s,offset= %lu Padding bits = %d", td->name, pd->moved, padding); - ASN_DEBUG("For NativeEnumerated %s, upper bound = %lu", td->name, ct->upper_bound); - if(padding > 0) - per_get_few_bits(pd, padding); - } - - if(ct && ct->range_bits >= 0) { - value = per_get_few_bits(pd, ct->range_bits); - if(value < 0) ASN__DECODE_STARVED; - if(value >= (specs->extension - ? specs->extension - 1 : specs->map_count)) - ASN__DECODE_FAILED; - } else { - if(!specs->extension) - ASN__DECODE_FAILED; - /* - * X.691, #10.6: normally small non-negative whole number; - */ - value = uper_get_nsnnwn(pd); - if(value < 0) ASN__DECODE_STARVED; - value += specs->extension - 1; - if(value >= specs->map_count) - ASN__DECODE_FAILED; - } - - *native = specs->value2enum[value].nat_value; - ASN_DEBUG("Decoded %s = %ld", td->name, *native); - - return rval; -} - -asn_enc_rval_t -NativeEnumerated_encode_aper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_per_outp_t *po) { - const asn_INTEGER_specifics_t *specs = (const asn_INTEGER_specifics_t *)td->specifics; - asn_enc_rval_t er = {0,0,0}; - long native, value; - const asn_per_constraint_t *ct = NULL; - int inext = 0; - asn_INTEGER_enum_map_t key; - asn_INTEGER_enum_map_t *kf; - - if(!sptr) ASN__ENCODE_FAILED; - if(!specs) ASN__ENCODE_FAILED; - - if(constraints) ct = &constraints->value; - else if(td->encoding_constraints.per_constraints) - ct = &td->encoding_constraints.per_constraints->value; - else ASN__ENCODE_FAILED; /* Mandatory! */ - - ASN_DEBUG("Encoding %s as NativeEnumerated", td->name); - - er.encoded = 0; - - native = *(const long *)sptr; - if(native < 0) ASN__ENCODE_FAILED; - - key.nat_value = native; - kf = bsearch(&key, specs->value2enum, specs->map_count, - sizeof(key), NativeEnumerated__compar_value2enum); - if(!kf) { - ASN_DEBUG("No element corresponds to %ld", native); - ASN__ENCODE_FAILED; - } - value = kf - specs->value2enum; - - if(ct && ct->range_bits >= 0) { - int cmpWith = specs->extension - ? specs->extension - 1 : specs->map_count; - if(value >= cmpWith) - inext = 1; - } - if(ct && ct->flags & APC_EXTENSIBLE) { - if(per_put_few_bits(po, inext, 1)) - ASN__ENCODE_FAILED; - if(inext) ct = 0; - } else if(inext) { - ASN__ENCODE_FAILED; - } - - if(ct && ct->range_bits >= 0) { - if(per_put_few_bits(po, value, ct->range_bits)) - ASN__ENCODE_FAILED; - ASN__ENCODED_OK(er); - } - - if(!specs->extension) - ASN__ENCODE_FAILED; - - /* - * X.691, #10.6: normally small non-negative whole number; - */ - ASN_DEBUG("value = %ld, ext = %d, inext = %d, res = %ld", - value, specs->extension, inext, - value - (inext ? (specs->extension - 1) : 0)); - if(uper_put_nsnnwn(po, value - (inext ? (specs->extension - 1) : 0))) - ASN__ENCODE_FAILED; - - ASN__ENCODED_OK(er); -} diff --git a/e2sim/previous/e2apv1sim/ASN1c/NativeEnumerated.h b/e2sim/previous/e2apv1sim/ASN1c/NativeEnumerated.h deleted file mode 100644 index 459f0e6..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/NativeEnumerated.h +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -/* - * This type differs from the standard ENUMERATED in that it is modelled using - * the fixed machine type (long, int, short), so it can hold only values of - * limited length. There is no type (i.e., NativeEnumerated_t, any integer type - * will do). - * This type may be used when integer range is limited by subtype constraints. - */ -#ifndef _NativeEnumerated_H_ -#define _NativeEnumerated_H_ - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -extern asn_TYPE_descriptor_t asn_DEF_NativeEnumerated; -extern asn_TYPE_operation_t asn_OP_NativeEnumerated; - -xer_type_encoder_f NativeEnumerated_encode_xer; -oer_type_decoder_f NativeEnumerated_decode_oer; -oer_type_encoder_f NativeEnumerated_encode_oer; -per_type_decoder_f NativeEnumerated_decode_uper; -per_type_encoder_f NativeEnumerated_encode_uper; -per_type_decoder_f NativeEnumerated_decode_aper; -per_type_encoder_f NativeEnumerated_encode_aper; - -#define NativeEnumerated_free NativeInteger_free -#define NativeEnumerated_print NativeInteger_print -#define NativeEnumerated_compare NativeInteger_compare -#define NativeEnumerated_random_fill NativeInteger_random_fill -#define NativeEnumerated_constraint asn_generic_no_constraint -#define NativeEnumerated_decode_ber NativeInteger_decode_ber -#define NativeEnumerated_encode_der NativeInteger_encode_der -#define NativeEnumerated_decode_xer NativeInteger_decode_xer - -#ifdef __cplusplus -} -#endif - -#endif /* _NativeEnumerated_H_ */ diff --git a/e2sim/previous/e2apv1sim/ASN1c/NativeEnumerated_oer.c b/e2sim/previous/e2apv1sim/ASN1c/NativeEnumerated_oer.c deleted file mode 100644 index ee3c189..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/NativeEnumerated_oer.c +++ /dev/null @@ -1,149 +0,0 @@ -/* - * Copyright (c) 2017 Lev Walkin . - * All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef ASN_DISABLE_OER_SUPPORT - -#include -#include -#include - -static long -asn__nativeenumerated_convert(const uint8_t *b, const uint8_t *end) { - unsigned long value; - - /* Perform the sign initialization */ - /* Actually value = -(*b >> 7); gains nothing, yet unreadable! */ - if((*b >> 7)) { - value = (unsigned long)(-1); - } else { - value = 0; - } - - /* Conversion engine */ - for(; b < end; b++) { - value = (value << 8) | *b; - } - - return value; -} - -asn_dec_rval_t -NativeEnumerated_decode_oer(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_oer_constraints_t *constraints, - void **nint_ptr, const void *ptr, size_t size) { - asn_dec_rval_t rval = {RC_OK, 0}; - long *native = (long *)*nint_ptr; - const uint8_t *b = ptr; - - (void)opt_codec_ctx; - (void)constraints; - - if(size < 1) { - ASN__DECODE_STARVED; - } - - if((*b & 0x80) == 0) { - /* - * X.696 (08/2015) #11.2 Short form for Enumerated. - */ - if(!native) { - native = (long *)(*nint_ptr = CALLOC(1, sizeof(*native))); - if(!native) ASN__DECODE_FAILED; - } - - *native = *b; - rval.consumed = 1; - } else { - /* - * X.696 (08/2015) #11.4 Long form for Enumerated. - */ - size_t length = *b & 0x7f; - const uint8_t *bend; - long value; - - if(length < 1 || length > sizeof(*native)) { - ASN__DECODE_FAILED; - } - if((1 + length) > size) { - ASN__DECODE_STARVED; - } - b++; - bend = b + length; - - value = asn__nativeenumerated_convert(b, bend); - if(value < 0) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - if(specs && specs->field_unsigned) { - ASN__DECODE_FAILED; - } - } - - if(!native) { - native = (long *)(*nint_ptr = CALLOC(1, sizeof(*native))); - if(!native) ASN__DECODE_FAILED; - } - - *native = value; - - rval.consumed = (1 + length); - } - - return rval; -} - -/* - * Encode as Canonical OER. - */ -asn_enc_rval_t -NativeEnumerated_encode_oer(const asn_TYPE_descriptor_t *td, - const asn_oer_constraints_t *constraints, - const void *sptr, asn_app_consume_bytes_f *cb, - void *app_key) { - asn_enc_rval_t er = {0,0,0}; - long native; - - (void)constraints; - - if(!sptr) ASN__ENCODE_FAILED; - - native = *(const long *)sptr; - - if(native >= 0 && native <= 127) { - /* #11.2 Short form */ - uint8_t b = native; - er.encoded = 1; - if(cb(&b, er.encoded, app_key) < 0) { - ASN__ENCODE_FAILED; - } - ASN__ENCODED_OK(er); - } else { - /* #11.2 Long form */ - uint8_t buf[1 + sizeof(native)]; - uint8_t *b = &buf[sizeof(native)]; /* Last addressable */ - long final_pattern = -1 * (native < 0); - - for(;;) { - *b-- = native; - native >>= 8; - if(native == final_pattern) { - if(final_pattern) { - if((b[1] & 0x80)) break; - } else { - if(!(b[1] & 0x80)) break; - } - } - } - *b = 0x80 | (&buf[sizeof(native)] - b); - er.encoded = 1 + (&buf[sizeof(native)] - b); - if(cb(b, er.encoded, app_key) < 0) { - ASN__ENCODE_FAILED; - } - ASN__ENCODED_OK(er); - } -} - -#endif /* ASN_DISABLE_OER_SUPPORT */ diff --git a/e2sim/previous/e2apv1sim/ASN1c/NativeInteger.c b/e2sim/previous/e2apv1sim/ASN1c/NativeInteger.c deleted file mode 100644 index 316e872..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/NativeInteger.c +++ /dev/null @@ -1,550 +0,0 @@ -/*- - * Copyright (c) 2004, 2005, 2006 Lev Walkin . - * All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -/* - * Read the NativeInteger.h for the explanation wrt. differences between - * INTEGER and NativeInteger. - * Basically, both are decoders and encoders of ASN.1 INTEGER type, but this - * implementation deals with the standard (machine-specific) representation - * of them instead of using the platform-independent buffer. - */ -#include -#include - -/* - * NativeInteger basic type description. - */ -static const ber_tlv_tag_t asn_DEF_NativeInteger_tags[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_operation_t asn_OP_NativeInteger = { - NativeInteger_free, - NativeInteger_print, - NativeInteger_compare, - NativeInteger_decode_ber, - NativeInteger_encode_der, - NativeInteger_decode_xer, - NativeInteger_encode_xer, -#ifdef ASN_DISABLE_OER_SUPPORT - 0, - 0, -#else - NativeInteger_decode_oer, /* OER decoder */ - NativeInteger_encode_oer, /* Canonical OER encoder */ -#endif /* ASN_DISABLE_OER_SUPPORT */ -#ifdef ASN_DISABLE_PER_SUPPORT - 0, - 0, - 0, - 0, -#else - NativeInteger_decode_uper, /* Unaligned PER decoder */ - NativeInteger_encode_uper, /* Unaligned PER encoder */ - NativeInteger_decode_aper, /* Aligned PER decoder */ - NativeInteger_encode_aper, /* Aligned PER encoder */ -#endif /* ASN_DISABLE_PER_SUPPORT */ - NativeInteger_random_fill, - 0 /* Use generic outmost tag fetcher */ -}; -asn_TYPE_descriptor_t asn_DEF_NativeInteger = { - "INTEGER", /* The ASN.1 type is still INTEGER */ - "INTEGER", - &asn_OP_NativeInteger, - asn_DEF_NativeInteger_tags, - sizeof(asn_DEF_NativeInteger_tags) / sizeof(asn_DEF_NativeInteger_tags[0]), - asn_DEF_NativeInteger_tags, /* Same as above */ - sizeof(asn_DEF_NativeInteger_tags) / sizeof(asn_DEF_NativeInteger_tags[0]), - { 0, 0, asn_generic_no_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - -/* - * Decode INTEGER type. - */ -asn_dec_rval_t -NativeInteger_decode_ber(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **nint_ptr, - const void *buf_ptr, size_t size, int tag_mode) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - long *native = (long *)*nint_ptr; - asn_dec_rval_t rval; - ber_tlv_len_t length; - - /* - * If the structure is not there, allocate it. - */ - if(native == NULL) { - native = (long *)(*nint_ptr = CALLOC(1, sizeof(*native))); - if(native == NULL) { - rval.code = RC_FAIL; - rval.consumed = 0; - return rval; - } - } - - ASN_DEBUG("Decoding %s as INTEGER (tm=%d)", - td->name, tag_mode); - - /* - * Check tags. - */ - rval = ber_check_tags(opt_codec_ctx, td, 0, buf_ptr, size, - tag_mode, 0, &length, 0); - if(rval.code != RC_OK) - return rval; - - ASN_DEBUG("%s length is %d bytes", td->name, (int)length); - - /* - * Make sure we have this length. - */ - buf_ptr = ((const char *)buf_ptr) + rval.consumed; - size -= rval.consumed; - if(length > (ber_tlv_len_t)size) { - rval.code = RC_WMORE; - rval.consumed = 0; - return rval; - } - - /* - * ASN.1 encoded INTEGER: buf_ptr, length - * Fill the native, at the same time checking for overflow. - * If overflow occured, return with RC_FAIL. - */ - { - INTEGER_t tmp; - union { - const void *constbuf; - void *nonconstbuf; - } unconst_buf; - long l; - - unconst_buf.constbuf = buf_ptr; - tmp.buf = (uint8_t *)unconst_buf.nonconstbuf; - tmp.size = length; - - if((specs&&specs->field_unsigned) - ? asn_INTEGER2ulong(&tmp, (unsigned long *)&l) /* sic */ - : asn_INTEGER2long(&tmp, &l)) { - rval.code = RC_FAIL; - rval.consumed = 0; - return rval; - } - - *native = l; - } - - rval.code = RC_OK; - rval.consumed += length; - - ASN_DEBUG("Took %ld/%ld bytes to encode %s (%ld)", - (long)rval.consumed, (long)length, td->name, (long)*native); - - return rval; -} - -/* - * Encode the NativeInteger using the standard INTEGER type DER encoder. - */ -asn_enc_rval_t -NativeInteger_encode_der(const asn_TYPE_descriptor_t *sd, const void *ptr, - int tag_mode, ber_tlv_tag_t tag, - asn_app_consume_bytes_f *cb, void *app_key) { - unsigned long native = *(const unsigned long *)ptr; /* Disable sign ext. */ - asn_enc_rval_t erval = {0,0,0}; - INTEGER_t tmp; - -#ifdef WORDS_BIGENDIAN /* Opportunistic optimization */ - - tmp.buf = (uint8_t *)&native; - tmp.size = sizeof(native); - -#else /* Works even if WORDS_BIGENDIAN is not set where should've been */ - uint8_t buf[sizeof(native)]; - uint8_t *p; - - /* Prepare a fake INTEGER */ - for(p = buf + sizeof(buf) - 1; p >= buf; p--, native >>= 8) - *p = (uint8_t)native; - - tmp.buf = buf; - tmp.size = sizeof(buf); -#endif /* WORDS_BIGENDIAN */ - - /* Encode fake INTEGER */ - erval = INTEGER_encode_der(sd, &tmp, tag_mode, tag, cb, app_key); - if(erval.structure_ptr == &tmp) { - erval.structure_ptr = ptr; - } - return erval; -} - -/* - * Decode the chunk of XML text encoding INTEGER. - */ -asn_dec_rval_t -NativeInteger_decode_xer(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **sptr, - const char *opt_mname, const void *buf_ptr, - size_t size) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - asn_dec_rval_t rval; - INTEGER_t st; - void *st_ptr = (void *)&st; - long *native = (long *)*sptr; - - if(!native) { - native = (long *)(*sptr = CALLOC(1, sizeof(*native))); - if(!native) ASN__DECODE_FAILED; - } - - memset(&st, 0, sizeof(st)); - rval = INTEGER_decode_xer(opt_codec_ctx, td, &st_ptr, - opt_mname, buf_ptr, size); - if(rval.code == RC_OK) { - long l; - if((specs&&specs->field_unsigned) - ? asn_INTEGER2ulong(&st, (unsigned long *)&l) /* sic */ - : asn_INTEGER2long(&st, &l)) { - rval.code = RC_FAIL; - rval.consumed = 0; - } else { - *native = l; - } - } else { - /* - * Cannot restart from the middle; - * there is no place to save state in the native type. - * Request a continuation from the very beginning. - */ - rval.consumed = 0; - } - ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_INTEGER, &st); - return rval; -} - - -asn_enc_rval_t -NativeInteger_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, - int ilevel, enum xer_encoder_flags_e flags, - asn_app_consume_bytes_f *cb, void *app_key) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - char scratch[32]; /* Enough for 64-bit int */ - asn_enc_rval_t er = {0,0,0}; - const long *native = (const long *)sptr; - - (void)ilevel; - (void)flags; - - if(!native) ASN__ENCODE_FAILED; - - er.encoded = snprintf(scratch, sizeof(scratch), - (specs && specs->field_unsigned) - ? "%lu" : "%ld", *native); - if(er.encoded <= 0 || (size_t)er.encoded >= sizeof(scratch) - || cb(scratch, er.encoded, app_key) < 0) - ASN__ENCODE_FAILED; - - ASN__ENCODED_OK(er); -} - -#ifndef ASN_DISABLE_PER_SUPPORT - -asn_dec_rval_t -NativeInteger_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, - asn_per_data_t *pd) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - asn_dec_rval_t rval; - long *native = (long *)*sptr; - INTEGER_t tmpint; - void *tmpintptr = &tmpint; - - (void)opt_codec_ctx; - ASN_DEBUG("Decoding NativeInteger %s (UPER)", td->name); - - if(!native) { - native = (long *)(*sptr = CALLOC(1, sizeof(*native))); - if(!native) ASN__DECODE_FAILED; - } - - memset(&tmpint, 0, sizeof tmpint); - rval = INTEGER_decode_uper(opt_codec_ctx, td, constraints, - &tmpintptr, pd); - if(rval.code == RC_OK) { - if((specs&&specs->field_unsigned) - ? asn_INTEGER2ulong(&tmpint, (unsigned long *)native) - : asn_INTEGER2long(&tmpint, native)) - rval.code = RC_FAIL; - else - ASN_DEBUG("NativeInteger %s got value %ld", - td->name, *native); - } - ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_INTEGER, &tmpint); - - return rval; -} - -asn_enc_rval_t -NativeInteger_encode_uper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_per_outp_t *po) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - asn_enc_rval_t er = {0,0,0}; - long native; - INTEGER_t tmpint; - - if(!sptr) ASN__ENCODE_FAILED; - - native = *(const long *)sptr; - - ASN_DEBUG("Encoding NativeInteger %s %ld (UPER)", td->name, native); - - memset(&tmpint, 0, sizeof(tmpint)); - if((specs&&specs->field_unsigned) - ? asn_ulong2INTEGER(&tmpint, native) - : asn_long2INTEGER(&tmpint, native)) - ASN__ENCODE_FAILED; - er = INTEGER_encode_uper(td, constraints, &tmpint, po); - ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_INTEGER, &tmpint); - return er; -} - -asn_dec_rval_t -NativeInteger_decode_aper(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, asn_per_data_t *pd) { - - const asn_INTEGER_specifics_t *specs = (const asn_INTEGER_specifics_t *)td->specifics; - asn_dec_rval_t rval; - long *native = (long *)*sptr; - INTEGER_t tmpint; - void *tmpintptr = &tmpint; - - (void)opt_codec_ctx; - ASN_DEBUG("Decoding NativeInteger %s (APER)", td->name); - - if(!native) { - native = (long *)(*sptr = CALLOC(1, sizeof(*native))); - if(!native) ASN__DECODE_FAILED; - } - - memset(&tmpint, 0, sizeof tmpint); - rval = INTEGER_decode_aper(opt_codec_ctx, td, constraints, - &tmpintptr, pd); - if(rval.code == RC_OK) { - if((specs&&specs->field_unsigned) - ? asn_INTEGER2ulong(&tmpint, (unsigned long *)native) - : asn_INTEGER2long(&tmpint, native)) - rval.code = RC_FAIL; - else - ASN_DEBUG("NativeInteger %s got value %ld", - td->name, *native); - } - ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_INTEGER, &tmpint); - - return rval; -} - -asn_enc_rval_t -NativeInteger_encode_aper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_per_outp_t *po) { - - const asn_INTEGER_specifics_t *specs = (const asn_INTEGER_specifics_t *)td->specifics; - asn_enc_rval_t er = {0,0,0}; - long native; - INTEGER_t tmpint; - - if(!sptr) ASN__ENCODE_FAILED; - - native = *(const long *)sptr; - - ASN_DEBUG("Encoding NativeInteger %s %ld (APER)", td->name, native); - - memset(&tmpint, 0, sizeof(tmpint)); - if((specs&&specs->field_unsigned) - ? asn_ulong2INTEGER(&tmpint, (unsigned long)native) - : asn_long2INTEGER(&tmpint, native)) - ASN__ENCODE_FAILED; - er = INTEGER_encode_aper(td, constraints, &tmpint, po); - ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_INTEGER, &tmpint); - return er; -} - -#endif /* ASN_DISABLE_PER_SUPPORT */ - -/* - * INTEGER specific human-readable output. - */ -int -NativeInteger_print(const asn_TYPE_descriptor_t *td, const void *sptr, - int ilevel, asn_app_consume_bytes_f *cb, void *app_key) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - const long *native = (const long *)sptr; - char scratch[32]; /* Enough for 64-bit int */ - int ret; - - (void)td; /* Unused argument */ - (void)ilevel; /* Unused argument */ - - if(native) { - long value = *native; - ret = snprintf(scratch, sizeof(scratch), - (specs && specs->field_unsigned) ? "%lu" : "%ld", value); - assert(ret > 0 && (size_t)ret < sizeof(scratch)); - if(cb(scratch, ret, app_key) < 0) return -1; - if(specs && (value >= 0 || !specs->field_unsigned)) { - const asn_INTEGER_enum_map_t *el = - INTEGER_map_value2enum(specs, value); - if(el) { - if(cb(" (", 2, app_key) < 0) return -1; - if(cb(el->enum_name, el->enum_len, app_key) < 0) return -1; - if(cb(")", 1, app_key) < 0) return -1; - } - } - return 0; - } else { - return (cb("", 8, app_key) < 0) ? -1 : 0; - } -} - -void -NativeInteger_free(const asn_TYPE_descriptor_t *td, void *ptr, - enum asn_struct_free_method method) { - if(!td || !ptr) - return; - - ASN_DEBUG("Freeing %s as INTEGER (%d, %p, Native)", - td->name, method, ptr); - - switch(method) { - case ASFM_FREE_EVERYTHING: - FREEMEM(ptr); - break; - case ASFM_FREE_UNDERLYING: - break; - case ASFM_FREE_UNDERLYING_AND_RESET: - memset(ptr, 0, sizeof(long)); - break; - } -} - -int -NativeInteger_compare(const asn_TYPE_descriptor_t *td, const void *aptr, const void *bptr) { - (void)td; - - if(aptr && bptr) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - if(specs && specs->field_unsigned) { - const unsigned long *a = aptr; - const unsigned long *b = bptr; - if(*a < *b) { - return -1; - } else if(*a > *b) { - return 1; - } else { - return 0; - } - } else { - const long *a = aptr; - const long *b = bptr; - if(*a < *b) { - return -1; - } else if(*a > *b) { - return 1; - } else { - return 0; - } - } - } else if(!aptr) { - return -1; - } else { - return 1; - } -} - -asn_random_fill_result_t -NativeInteger_random_fill(const asn_TYPE_descriptor_t *td, void **sptr, - const asn_encoding_constraints_t *constraints, - size_t max_length) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - asn_random_fill_result_t result_ok = {ARFILL_OK, 1}; - asn_random_fill_result_t result_failed = {ARFILL_FAILED, 0}; - asn_random_fill_result_t result_skipped = {ARFILL_SKIPPED, 0}; - long *st = *sptr; - const asn_INTEGER_enum_map_t *emap; - size_t emap_len; - intmax_t value; - int find_inside_map; - - if(max_length == 0) return result_skipped; - - if(st == NULL) { - st = (long *)CALLOC(1, sizeof(*st)); - if(st == NULL) { - return result_failed; - } - } - - if(specs) { - emap = specs->value2enum; - emap_len = specs->map_count; - if(specs->strict_enumeration) { - find_inside_map = emap_len > 0; - } else { - find_inside_map = emap_len ? asn_random_between(0, 1) : 0; - } - } else { - emap = 0; - emap_len = 0; - find_inside_map = 0; - } - - if(find_inside_map) { - assert(emap_len > 0); - value = emap[asn_random_between(0, emap_len - 1)].nat_value; - } else { - const asn_per_constraints_t *ct; - - static const long variants[] = { - -65536, -65535, -65534, -32769, -32768, -32767, -16385, -16384, - -16383, -257, -256, -255, -254, -129, -128, -127, - -126, -1, 0, 1, 126, 127, 128, 129, - 254, 255, 256, 257, 16383, 16384, 16385, 32767, - 32768, 32769, 65534, 65535, 65536, 65537}; - if(specs && specs->field_unsigned) { - assert(variants[18] == 0); - value = variants[asn_random_between( - 18, sizeof(variants) / sizeof(variants[0]) - 1)]; - } else { - value = variants[asn_random_between( - 0, sizeof(variants) / sizeof(variants[0]) - 1)]; - } - - if(!constraints) constraints = &td->encoding_constraints; - ct = constraints ? constraints->per_constraints : 0; - if(ct && (ct->value.flags & APC_CONSTRAINED)) { - if(value < ct->value.lower_bound || value > ct->value.upper_bound) { - value = asn_random_between(ct->value.lower_bound, - ct->value.upper_bound); - } - } - } - - *sptr = st; - *st = value; - return result_ok; -} diff --git a/e2sim/previous/e2apv1sim/ASN1c/NativeInteger.h b/e2sim/previous/e2apv1sim/ASN1c/NativeInteger.h deleted file mode 100644 index c74406a..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/NativeInteger.h +++ /dev/null @@ -1,46 +0,0 @@ -/*- - * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -/* - * This type differs from the standard INTEGER in that it is modelled using - * the fixed machine type (long, int, short), so it can hold only values of - * limited length. There is no type (i.e., NativeInteger_t, any integer type - * will do). - * This type may be used when integer range is limited by subtype constraints. - */ -#ifndef _NativeInteger_H_ -#define _NativeInteger_H_ - -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -extern asn_TYPE_descriptor_t asn_DEF_NativeInteger; -extern asn_TYPE_operation_t asn_OP_NativeInteger; - -asn_struct_free_f NativeInteger_free; -asn_struct_print_f NativeInteger_print; -asn_struct_compare_f NativeInteger_compare; -ber_type_decoder_f NativeInteger_decode_ber; -der_type_encoder_f NativeInteger_encode_der; -xer_type_decoder_f NativeInteger_decode_xer; -xer_type_encoder_f NativeInteger_encode_xer; -oer_type_decoder_f NativeInteger_decode_oer; -oer_type_encoder_f NativeInteger_encode_oer; -per_type_decoder_f NativeInteger_decode_uper; -per_type_encoder_f NativeInteger_encode_uper; -per_type_decoder_f NativeInteger_decode_aper; -per_type_encoder_f NativeInteger_encode_aper; -asn_random_fill_f NativeInteger_random_fill; - -#define NativeInteger_constraint asn_generic_no_constraint - -#ifdef __cplusplus -} -#endif - -#endif /* _NativeInteger_H_ */ diff --git a/e2sim/previous/e2apv1sim/ASN1c/NativeInteger_oer.c b/e2sim/previous/e2apv1sim/ASN1c/NativeInteger_oer.c deleted file mode 100644 index 411413a..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/NativeInteger_oer.c +++ /dev/null @@ -1,99 +0,0 @@ -/* - * Copyright (c) 2017 Lev Walkin . - * All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef ASN_DISABLE_OER_SUPPORT - -#include -#include -#include - -asn_dec_rval_t -NativeInteger_decode_oer(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_oer_constraints_t *constraints, - void **nint_ptr, const void *ptr, size_t size) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - asn_dec_rval_t rval = {RC_OK, 0}; - long *native = (long *)*nint_ptr; - INTEGER_t tmpint; - INTEGER_t *tmpintptr = &tmpint; - - memset(&tmpint, 0, sizeof(tmpint)); - - if(!native) { - native = (long *)(*nint_ptr = CALLOC(1, sizeof(*native))); - if(!native) ASN__DECODE_FAILED; - } - - /* - * OPTIMIZATION: Encode directly rather than passing through INTEGER. - * Saves a memory allocation. - */ - rval = INTEGER_decode_oer(opt_codec_ctx, td, constraints, - (void **)&tmpintptr, ptr, size); - if(rval.code != RC_OK) { - ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_INTEGER, &tmpint); - return rval; - } - - if(specs && specs->field_unsigned) { - unsigned long ul; - int ok = asn_INTEGER2ulong(&tmpint, &ul) == 0; - ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_INTEGER, &tmpint); - if(ok) { - *native = ul; - } else { - rval.code = RC_FAIL; - return rval; - } - } else { - long l; - int ok = asn_INTEGER2long(&tmpint, &l) == 0; - ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_INTEGER, &tmpint); - if(ok) { - *native = l; - } else { - rval.code = RC_FAIL; - return rval; - } - } - - return rval; -} - -/* - * Encode as Canonical OER. - */ -asn_enc_rval_t -NativeInteger_encode_oer(const asn_TYPE_descriptor_t *td, - const asn_oer_constraints_t *constraints, - const void *sptr, asn_app_consume_bytes_f *cb, - void *app_key) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - INTEGER_t tmpint; - long native; - - if(!sptr) ASN__ENCODE_FAILED; - - native = *(const long *)sptr; - memset(&tmpint, 0, sizeof(tmpint)); - - ASN_DEBUG("Encoding %s %ld as NativeInteger", td ? td->name : "", native); - - if((specs && specs->field_unsigned) ? asn_ulong2INTEGER(&tmpint, native) - : asn_long2INTEGER(&tmpint, native)) { - ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_INTEGER, &tmpint); - ASN__ENCODE_FAILED; - } else { - asn_enc_rval_t er = - INTEGER_encode_oer(td, constraints, &tmpint, cb, app_key); - ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_INTEGER, &tmpint); - return er; - } -} - -#endif /* ASN_DISABLE_OER_SUPPORT */ diff --git a/e2sim/previous/e2apv1sim/ASN1c/OCTET_STRING.c b/e2sim/previous/e2apv1sim/ASN1c/OCTET_STRING.c deleted file mode 100644 index ae34c96..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/OCTET_STRING.c +++ /dev/null @@ -1,2411 +0,0 @@ -/*- - * Copyright (c) 2003-2017 Lev Walkin . - * All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include /* for .bits_unused member */ -#include - -/* - * OCTET STRING basic type description. - */ -static const ber_tlv_tag_t asn_DEF_OCTET_STRING_tags[] = { - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) -}; -asn_OCTET_STRING_specifics_t asn_SPC_OCTET_STRING_specs = { - sizeof(OCTET_STRING_t), - offsetof(OCTET_STRING_t, _asn_ctx), - ASN_OSUBV_STR -}; - -asn_TYPE_operation_t asn_OP_OCTET_STRING = { - OCTET_STRING_free, - OCTET_STRING_print, /* OCTET STRING generally means a non-ascii sequence */ - OCTET_STRING_compare, - OCTET_STRING_decode_ber, - OCTET_STRING_encode_der, - OCTET_STRING_decode_xer_hex, - OCTET_STRING_encode_xer, -#ifdef ASN_DISABLE_OER_SUPPORT - 0, - 0, -#else - OCTET_STRING_decode_oer, - OCTET_STRING_encode_oer, -#endif /* ASN_DISABLE_OER_SUPPORT */ -#ifdef ASN_DISABLE_PER_SUPPORT - 0, - 0, - 0, - 0, -#else - OCTET_STRING_decode_uper, /* Unaligned PER decoder */ - OCTET_STRING_encode_uper, /* Unaligned PER encoder */ - OCTET_STRING_decode_aper, /* Aligned PER decoder */ - OCTET_STRING_encode_aper, /* Aligned PER encoder */ -#endif /* ASN_DISABLE_PER_SUPPORT */ - OCTET_STRING_random_fill, - 0 /* Use generic outmost tag fetcher */ -}; -asn_TYPE_descriptor_t asn_DEF_OCTET_STRING = { - "OCTET STRING", /* Canonical name */ - "OCTET_STRING", /* XML tag name */ - &asn_OP_OCTET_STRING, - asn_DEF_OCTET_STRING_tags, - sizeof(asn_DEF_OCTET_STRING_tags) - / sizeof(asn_DEF_OCTET_STRING_tags[0]), - asn_DEF_OCTET_STRING_tags, /* Same as above */ - sizeof(asn_DEF_OCTET_STRING_tags) - / sizeof(asn_DEF_OCTET_STRING_tags[0]), - { 0, 0, asn_generic_no_constraint }, - 0, 0, /* No members */ - &asn_SPC_OCTET_STRING_specs -}; - -#undef _CH_PHASE -#undef NEXT_PHASE -#undef PREV_PHASE -#define _CH_PHASE(ctx, inc) do { \ - if(ctx->phase == 0) \ - ctx->context = 0; \ - ctx->phase += inc; \ - } while(0) -#define NEXT_PHASE(ctx) _CH_PHASE(ctx, +1) -#define PREV_PHASE(ctx) _CH_PHASE(ctx, -1) - -#undef ADVANCE -#define ADVANCE(num_bytes) do { \ - size_t num = (num_bytes); \ - buf_ptr = ((const char *)buf_ptr) + num; \ - size -= num; \ - consumed_myself += num; \ - } while(0) - -#undef RETURN -#define RETURN(_code) do { \ - asn_dec_rval_t tmprval; \ - tmprval.code = _code; \ - tmprval.consumed = consumed_myself; \ - return tmprval; \ - } while(0) - -#undef APPEND -#define APPEND(bufptr, bufsize) do { \ - size_t _bs = (bufsize); /* Append size */ \ - size_t _ns = ctx->context; /* Allocated now */ \ - size_t _es = st->size + _bs; /* Expected size */ \ - /* int is really a typeof(st->size): */ \ - if((int)_es < 0) RETURN(RC_FAIL); \ - if(_ns <= _es) { \ - void *ptr; \ - /* Be nice and round to the memory allocator */ \ - do { _ns = _ns ? _ns << 1 : 16; } \ - while(_ns <= _es); \ - /* int is really a typeof(st->size): */ \ - if((int)_ns < 0) RETURN(RC_FAIL); \ - ptr = REALLOC(st->buf, _ns); \ - if(ptr) { \ - st->buf = (uint8_t *)ptr; \ - ctx->context = _ns; \ - } else { \ - RETURN(RC_FAIL); \ - } \ - ASN_DEBUG("Reallocating into %ld", (long)_ns); \ - } \ - memcpy(st->buf + st->size, bufptr, _bs); \ - /* Convenient nul-termination */ \ - st->buf[_es] = '\0'; \ - st->size = _es; \ - } while(0) - -/* - * The main reason why ASN.1 is still alive is that too much time and effort - * is necessary for learning it more or less adequately, thus creating a gut - * necessity to demonstrate that aquired skill everywhere afterwards. - * No, I am not going to explain what the following stuff is. - */ -struct _stack_el { - ber_tlv_len_t left; /* What's left to read (or -1) */ - ber_tlv_len_t got; /* What was actually processed */ - unsigned cont_level; /* Depth of subcontainment */ - int want_nulls; /* Want null "end of content" octets? */ - int bits_chopped; /* Flag in BIT STRING mode */ - ber_tlv_tag_t tag; /* For debugging purposes */ - struct _stack_el *prev; - struct _stack_el *next; -}; -struct _stack { - struct _stack_el *tail; - struct _stack_el *cur_ptr; -}; - -static struct _stack_el * -OS__add_stack_el(struct _stack *st) { - struct _stack_el *nel; - - /* - * Reuse the old stack frame or allocate a new one. - */ - if(st->cur_ptr && st->cur_ptr->next) { - nel = st->cur_ptr->next; - nel->bits_chopped = 0; - nel->got = 0; - /* Retain the nel->cont_level, it's correct. */ - } else { - nel = (struct _stack_el *)CALLOC(1, sizeof(struct _stack_el)); - if(nel == NULL) - return NULL; - - if(st->tail) { - /* Increase a subcontainment depth */ - nel->cont_level = st->tail->cont_level + 1; - st->tail->next = nel; - } - nel->prev = st->tail; - st->tail = nel; - } - - st->cur_ptr = nel; - - return nel; -} - -static struct _stack * -_new_stack(void) { - return (struct _stack *)CALLOC(1, sizeof(struct _stack)); -} - -/* - * Decode OCTET STRING type. - */ -asn_dec_rval_t -OCTET_STRING_decode_ber(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **sptr, - const void *buf_ptr, size_t size, int tag_mode) { - const asn_OCTET_STRING_specifics_t *specs = td->specifics - ? (const asn_OCTET_STRING_specifics_t *)td->specifics - : &asn_SPC_OCTET_STRING_specs; - BIT_STRING_t *st = (BIT_STRING_t *)*sptr; - asn_dec_rval_t rval; - asn_struct_ctx_t *ctx; - ssize_t consumed_myself = 0; - struct _stack *stck; /* Expectations stack structure */ - struct _stack_el *sel = 0; /* Stack element */ - int tlv_constr; - enum asn_OS_Subvariant type_variant = specs->subvariant; - - ASN_DEBUG("Decoding %s as %s (frame %ld)", - td->name, - (type_variant == ASN_OSUBV_STR) ? - "OCTET STRING" : "OS-SpecialCase", - (long)size); - - /* - * Create the string if does not exist. - */ - if(st == NULL) { - st = (BIT_STRING_t *)(*sptr = CALLOC(1, specs->struct_size)); - if(st == NULL) RETURN(RC_FAIL); - } - - /* Restore parsing context */ - ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset); - - switch(ctx->phase) { - case 0: - /* - * Check tags. - */ - rval = ber_check_tags(opt_codec_ctx, td, ctx, - buf_ptr, size, tag_mode, -1, - &ctx->left, &tlv_constr); - if(rval.code != RC_OK) - return rval; - - if(tlv_constr) { - /* - * Complex operation, requires stack of expectations. - */ - ctx->ptr = _new_stack(); - if(!ctx->ptr) { - RETURN(RC_FAIL); - } - } else { - /* - * Jump into stackless primitive decoding. - */ - _CH_PHASE(ctx, 3); - if(type_variant == ASN_OSUBV_ANY && tag_mode != 1) - APPEND(buf_ptr, rval.consumed); - ADVANCE(rval.consumed); - goto phase3; - } - - NEXT_PHASE(ctx); - /* Fall through */ - case 1: - phase1: - /* - * Fill the stack with expectations. - */ - stck = (struct _stack *)ctx->ptr; - sel = stck->cur_ptr; - do { - ber_tlv_tag_t tlv_tag; - ber_tlv_len_t tlv_len; - ber_tlv_tag_t expected_tag; - ssize_t tl, ll, tlvl; - /* This one works even if (sel->left == -1) */ - size_t Left = ((!sel||(size_t)sel->left >= size) - ?size:(size_t)sel->left); - - - ASN_DEBUG("%p, s->l=%ld, s->wn=%ld, s->g=%ld\n", (void *)sel, - (long)(sel?sel->left:0), - (long)(sel?sel->want_nulls:0), - (long)(sel?sel->got:0) - ); - if(sel && sel->left <= 0 && sel->want_nulls == 0) { - if(sel->prev) { - struct _stack_el *prev = sel->prev; - if(prev->left != -1) { - if(prev->left < sel->got) - RETURN(RC_FAIL); - prev->left -= sel->got; - } - prev->got += sel->got; - sel = stck->cur_ptr = prev; - if(!sel) break; - tlv_constr = 1; - continue; - } else { - sel = stck->cur_ptr = 0; - break; /* Nothing to wait */ - } - } - - tl = ber_fetch_tag(buf_ptr, Left, &tlv_tag); - ASN_DEBUG("fetch tag(size=%ld,L=%ld), %sstack, left=%ld, wn=%ld, tl=%ld", - (long)size, (long)Left, sel?"":"!", - (long)(sel?sel->left:0), - (long)(sel?sel->want_nulls:0), - (long)tl); - switch(tl) { - case -1: RETURN(RC_FAIL); - case 0: RETURN(RC_WMORE); - } - - tlv_constr = BER_TLV_CONSTRUCTED(buf_ptr); - - ll = ber_fetch_length(tlv_constr, - (const char *)buf_ptr + tl,Left - tl,&tlv_len); - ASN_DEBUG("Got tag=%s, tc=%d, left=%ld, tl=%ld, len=%ld, ll=%ld", - ber_tlv_tag_string(tlv_tag), tlv_constr, - (long)Left, (long)tl, (long)tlv_len, (long)ll); - switch(ll) { - case -1: RETURN(RC_FAIL); - case 0: RETURN(RC_WMORE); - } - - if(sel && sel->want_nulls - && ((const uint8_t *)buf_ptr)[0] == 0 - && ((const uint8_t *)buf_ptr)[1] == 0) - { - - ASN_DEBUG("Eat EOC; wn=%d--", sel->want_nulls); - - if(type_variant == ASN_OSUBV_ANY - && (tag_mode != 1 || sel->cont_level)) - APPEND("\0\0", 2); - - ADVANCE(2); - sel->got += 2; - if(sel->left != -1) { - sel->left -= 2; /* assert(sel->left >= 2) */ - } - - sel->want_nulls--; - if(sel->want_nulls == 0) { - /* Move to the next expectation */ - sel->left = 0; - tlv_constr = 1; - } - - continue; - } - - /* - * Set up expected tags, - * depending on ASN.1 type being decoded. - */ - switch(type_variant) { - case ASN_OSUBV_BIT: - /* X.690: 8.6.4.1, NOTE 2 */ - /* Fall through */ - case ASN_OSUBV_STR: - default: - if(sel) { - unsigned level = sel->cont_level; - if(level < td->all_tags_count) { - expected_tag = td->all_tags[level]; - break; - } else if(td->all_tags_count) { - expected_tag = td->all_tags - [td->all_tags_count - 1]; - break; - } - /* else, Fall through */ - } - /* Fall through */ - case ASN_OSUBV_ANY: - expected_tag = tlv_tag; - break; - } - - - if(tlv_tag != expected_tag) { - char buf[2][32]; - ber_tlv_tag_snprint(tlv_tag, - buf[0], sizeof(buf[0])); - ber_tlv_tag_snprint(td->tags[td->tags_count-1], - buf[1], sizeof(buf[1])); - ASN_DEBUG("Tag does not match expectation: %s != %s", - buf[0], buf[1]); - RETURN(RC_FAIL); - } - - tlvl = tl + ll; /* Combined length of T and L encoding */ - if((tlv_len + tlvl) < 0) { - /* tlv_len value is too big */ - ASN_DEBUG("TLV encoding + length (%ld) is too big", - (long)tlv_len); - RETURN(RC_FAIL); - } - - /* - * Append a new expectation. - */ - sel = OS__add_stack_el(stck); - if(!sel) RETURN(RC_FAIL); - - sel->tag = tlv_tag; - - sel->want_nulls = (tlv_len==-1); - if(sel->prev && sel->prev->left != -1) { - /* Check that the parent frame is big enough */ - if(sel->prev->left < tlvl + (tlv_len==-1?0:tlv_len)) - RETURN(RC_FAIL); - if(tlv_len == -1) - sel->left = sel->prev->left - tlvl; - else - sel->left = tlv_len; - } else { - sel->left = tlv_len; - } - if(type_variant == ASN_OSUBV_ANY - && (tag_mode != 1 || sel->cont_level)) - APPEND(buf_ptr, tlvl); - sel->got += tlvl; - ADVANCE(tlvl); - - ASN_DEBUG("+EXPECT2 got=%ld left=%ld, wn=%d, clvl=%u", - (long)sel->got, (long)sel->left, - sel->want_nulls, sel->cont_level); - - } while(tlv_constr); - if(sel == NULL) { - /* Finished operation, "phase out" */ - ASN_DEBUG("Phase out"); - _CH_PHASE(ctx, +3); - break; - } - - NEXT_PHASE(ctx); - /* Fall through */ - case 2: - stck = (struct _stack *)ctx->ptr; - sel = stck->cur_ptr; - ASN_DEBUG("Phase 2: Need %ld bytes, size=%ld, alrg=%ld, wn=%d", - (long)sel->left, (long)size, (long)sel->got, - sel->want_nulls); - { - ber_tlv_len_t len; - - assert(sel->left >= 0); - - len = ((ber_tlv_len_t)size < sel->left) - ? (ber_tlv_len_t)size : sel->left; - if(len > 0) { - if(type_variant == ASN_OSUBV_BIT - && sel->bits_chopped == 0) { - /* Put the unused-bits-octet away */ - st->bits_unused = *(const uint8_t *)buf_ptr; - APPEND(((const char *)buf_ptr+1), (len - 1)); - sel->bits_chopped = 1; - } else { - APPEND(buf_ptr, len); - } - ADVANCE(len); - sel->left -= len; - sel->got += len; - } - - if(sel->left) { - ASN_DEBUG("OS left %ld, size = %ld, wn=%d\n", - (long)sel->left, (long)size, sel->want_nulls); - RETURN(RC_WMORE); - } - - PREV_PHASE(ctx); - goto phase1; - } - break; - case 3: - phase3: - /* - * Primitive form, no stack required. - */ - assert(ctx->left >= 0); - - if(size < (size_t)ctx->left) { - if(!size) RETURN(RC_WMORE); - if(type_variant == ASN_OSUBV_BIT && !ctx->context) { - st->bits_unused = *(const uint8_t *)buf_ptr; - ctx->left--; - ADVANCE(1); - } - APPEND(buf_ptr, size); - assert(ctx->context > 0); - ctx->left -= size; - ADVANCE(size); - RETURN(RC_WMORE); - } else { - if(type_variant == ASN_OSUBV_BIT - && !ctx->context && ctx->left) { - st->bits_unused = *(const uint8_t *)buf_ptr; - ctx->left--; - ADVANCE(1); - } - APPEND(buf_ptr, ctx->left); - ADVANCE(ctx->left); - ctx->left = 0; - - NEXT_PHASE(ctx); - } - break; - } - - if(sel) { - ASN_DEBUG("3sel p=%p, wn=%d, l=%ld, g=%ld, size=%ld", - (void *)sel->prev, sel->want_nulls, - (long)sel->left, (long)sel->got, (long)size); - if(sel->prev || sel->want_nulls > 1 || sel->left > 0) { - RETURN(RC_WMORE); - } - } - - /* - * BIT STRING-specific processing. - */ - if(type_variant == ASN_OSUBV_BIT) { - if(st->size) { - if(st->bits_unused < 0 || st->bits_unused > 7) { - RETURN(RC_FAIL); - } - /* Finalize BIT STRING: zero out unused bits. */ - st->buf[st->size-1] &= 0xff << st->bits_unused; - } else { - if(st->bits_unused) { - RETURN(RC_FAIL); - } - } - } - - ASN_DEBUG("Took %ld bytes to encode %s: [%s]:%ld", - (long)consumed_myself, td->name, - (type_variant == ASN_OSUBV_STR) ? (char *)st->buf : "", - (long)st->size); - - - RETURN(RC_OK); -} - -/* - * Encode OCTET STRING type using DER. - */ -asn_enc_rval_t -OCTET_STRING_encode_der(const asn_TYPE_descriptor_t *td, const void *sptr, - int tag_mode, ber_tlv_tag_t tag, - asn_app_consume_bytes_f *cb, void *app_key) { - asn_enc_rval_t er = { 0, 0, 0 }; - const asn_OCTET_STRING_specifics_t *specs = td->specifics - ? (const asn_OCTET_STRING_specifics_t *)td->specifics - : &asn_SPC_OCTET_STRING_specs; - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - enum asn_OS_Subvariant type_variant = specs->subvariant; - int fix_last_byte = 0; - - ASN_DEBUG("%s %s as OCTET STRING", - cb?"Estimating":"Encoding", td->name); - - /* - * Write tags. - */ - if(type_variant != ASN_OSUBV_ANY || tag_mode == 1) { - er.encoded = der_write_tags(td, - (type_variant == ASN_OSUBV_BIT) + st->size, - tag_mode, type_variant == ASN_OSUBV_ANY, tag, - cb, app_key); - if(er.encoded == -1) { - er.failed_type = td; - er.structure_ptr = sptr; - return er; - } - } else { - /* Disallow: [] IMPLICIT ANY */ - assert(type_variant != ASN_OSUBV_ANY || tag_mode != -1); - er.encoded = 0; - } - - if(!cb) { - er.encoded += (type_variant == ASN_OSUBV_BIT) + st->size; - ASN__ENCODED_OK(er); - } - - /* - * Prepare to deal with the last octet of BIT STRING. - */ - if(type_variant == ASN_OSUBV_BIT) { - uint8_t b = st->bits_unused & 0x07; - if(b && st->size) fix_last_byte = 1; - ASN__CALLBACK(&b, 1); - } - - /* Invoke callback for the main part of the buffer */ - ASN__CALLBACK(st->buf, st->size - fix_last_byte); - - /* The last octet should be stripped off the unused bits */ - if(fix_last_byte) { - uint8_t b = st->buf[st->size-1] & (0xff << st->bits_unused); - ASN__CALLBACK(&b, 1); - } - - ASN__ENCODED_OK(er); -cb_failed: - ASN__ENCODE_FAILED; -} - -asn_enc_rval_t -OCTET_STRING_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, - int ilevel, enum xer_encoder_flags_e flags, - asn_app_consume_bytes_f *cb, void *app_key) { - const char * const h2c = "0123456789ABCDEF"; - const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; - asn_enc_rval_t er = { 0, 0, 0 }; - char scratch[16 * 3 + 4]; - char *p = scratch; - uint8_t *buf; - uint8_t *end; - size_t i; - - if(!st || (!st->buf && st->size)) - ASN__ENCODE_FAILED; - - er.encoded = 0; - - /* - * Dump the contents of the buffer in hexadecimal. - */ - buf = st->buf; - end = buf + st->size; - if(flags & XER_F_CANONICAL) { - char *scend = scratch + (sizeof(scratch) - 2); - for(; buf < end; buf++) { - if(p >= scend) { - ASN__CALLBACK(scratch, p - scratch); - p = scratch; - } - *p++ = h2c[(*buf >> 4) & 0x0F]; - *p++ = h2c[*buf & 0x0F]; - } - - ASN__CALLBACK(scratch, p-scratch); /* Dump the rest */ - } else { - for(i = 0; buf < end; buf++, i++) { - if(!(i % 16) && (i || st->size > 16)) { - ASN__CALLBACK(scratch, p-scratch); - p = scratch; - ASN__TEXT_INDENT(1, ilevel); - } - *p++ = h2c[(*buf >> 4) & 0x0F]; - *p++ = h2c[*buf & 0x0F]; - *p++ = 0x20; - } - if(p - scratch) { - p--; /* Remove the tail space */ - ASN__CALLBACK(scratch, p-scratch); /* Dump the rest */ - if(st->size > 16) - ASN__TEXT_INDENT(1, ilevel-1); - } - } - - ASN__ENCODED_OK(er); -cb_failed: - ASN__ENCODE_FAILED; -} - -static const struct OCTET_STRING__xer_escape_table_s { - const char *string; - int size; -} OCTET_STRING__xer_escape_table[] = { -#define OSXET(s) { s, sizeof(s) - 1 } - OSXET("\074\156\165\154\057\076"), /* */ - OSXET("\074\163\157\150\057\076"), /* */ - OSXET("\074\163\164\170\057\076"), /* */ - OSXET("\074\145\164\170\057\076"), /* */ - OSXET("\074\145\157\164\057\076"), /* */ - OSXET("\074\145\156\161\057\076"), /* */ - OSXET("\074\141\143\153\057\076"), /* */ - OSXET("\074\142\145\154\057\076"), /* */ - OSXET("\074\142\163\057\076"), /* */ - OSXET("\011"), /* \t */ - OSXET("\012"), /* \n */ - OSXET("\074\166\164\057\076"), /* */ - OSXET("\074\146\146\057\076"), /* */ - OSXET("\015"), /* \r */ - OSXET("\074\163\157\057\076"), /* */ - OSXET("\074\163\151\057\076"), /* */ - OSXET("\074\144\154\145\057\076"), /* */ - OSXET("\074\144\143\061\057\076"), /* */ - OSXET("\074\144\143\062\057\076"), /* */ - OSXET("\074\144\143\063\057\076"), /* */ - OSXET("\074\144\143\064\057\076"), /* */ - OSXET("\074\156\141\153\057\076"), /* */ - OSXET("\074\163\171\156\057\076"), /* */ - OSXET("\074\145\164\142\057\076"), /* */ - OSXET("\074\143\141\156\057\076"), /* */ - OSXET("\074\145\155\057\076"), /* */ - OSXET("\074\163\165\142\057\076"), /* */ - OSXET("\074\145\163\143\057\076"), /* */ - OSXET("\074\151\163\064\057\076"), /* */ - OSXET("\074\151\163\063\057\076"), /* */ - OSXET("\074\151\163\062\057\076"), /* */ - OSXET("\074\151\163\061\057\076"), /* */ - { 0, 0 }, /* " " */ - { 0, 0 }, /* ! */ - { 0, 0 }, /* \" */ - { 0, 0 }, /* # */ - { 0, 0 }, /* $ */ - { 0, 0 }, /* % */ - OSXET("\046\141\155\160\073"), /* & */ - { 0, 0 }, /* ' */ - {0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0}, /* ()*+,-./ */ - {0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0}, /* 01234567 */ - {0,0},{0,0},{0,0},{0,0}, /* 89:; */ - OSXET("\046\154\164\073"), /* < */ - { 0, 0 }, /* = */ - OSXET("\046\147\164\073"), /* > */ -}; - -static int -OS__check_escaped_control_char(const void *buf, int size) { - size_t i; - /* - * Inefficient algorithm which translates the escape sequences - * defined above into characters. Returns -1 if not found. - * TODO: replace by a faster algorithm (bsearch(), hash or - * nested table lookups). - */ - for(i = 0; i < 32 /* Don't spend time on the bottom half */; i++) { - const struct OCTET_STRING__xer_escape_table_s *el; - el = &OCTET_STRING__xer_escape_table[i]; - if(el->size == size && memcmp(buf, el->string, size) == 0) - return i; - } - return -1; -} - -static int -OCTET_STRING__handle_control_chars(void *struct_ptr, const void *chunk_buf, size_t chunk_size) { - /* - * This might be one of the escape sequences - * for control characters. Check it out. - * #11.15.5 - */ - int control_char = OS__check_escaped_control_char(chunk_buf,chunk_size); - if(control_char >= 0) { - OCTET_STRING_t *st = (OCTET_STRING_t *)struct_ptr; - void *p = REALLOC(st->buf, st->size + 2); - if(p) { - st->buf = (uint8_t *)p; - st->buf[st->size++] = control_char; - st->buf[st->size] = '\0'; /* nul-termination */ - return 0; - } - } - - return -1; /* No, it's not */ -} - -asn_enc_rval_t -OCTET_STRING_encode_xer_utf8(const asn_TYPE_descriptor_t *td, const void *sptr, - int ilevel, enum xer_encoder_flags_e flags, - asn_app_consume_bytes_f *cb, void *app_key) { - const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; - asn_enc_rval_t er = { 0, 0, 0 }; - uint8_t *buf, *end; - uint8_t *ss; /* Sequence start */ - ssize_t encoded_len = 0; - - (void)ilevel; /* Unused argument */ - (void)flags; /* Unused argument */ - - if(!st || (!st->buf && st->size)) - ASN__ENCODE_FAILED; - - buf = st->buf; - end = buf + st->size; - for(ss = buf; buf < end; buf++) { - unsigned int ch = *buf; - int s_len; /* Special encoding sequence length */ - - /* - * Escape certain characters: X.680/11.15 - */ - if(ch < sizeof(OCTET_STRING__xer_escape_table) - /sizeof(OCTET_STRING__xer_escape_table[0]) - && (s_len = OCTET_STRING__xer_escape_table[ch].size)) { - if(((buf - ss) && cb(ss, buf - ss, app_key) < 0) - || cb(OCTET_STRING__xer_escape_table[ch].string, s_len, - app_key) < 0) - ASN__ENCODE_FAILED; - encoded_len += (buf - ss) + s_len; - ss = buf + 1; - } - } - - encoded_len += (buf - ss); - if((buf - ss) && cb(ss, buf - ss, app_key) < 0) - ASN__ENCODE_FAILED; - - er.encoded = encoded_len; - ASN__ENCODED_OK(er); -} - -/* - * Convert from hexadecimal format (cstring): "AB CD EF" - */ -static ssize_t OCTET_STRING__convert_hexadecimal(void *sptr, const void *chunk_buf, size_t chunk_size, int have_more) { - OCTET_STRING_t *st = (OCTET_STRING_t *)sptr; - const char *chunk_stop = (const char *)chunk_buf; - const char *p = chunk_stop; - const char *pend = p + chunk_size; - unsigned int clv = 0; - int half = 0; /* Half bit */ - uint8_t *buf; - - /* Reallocate buffer according to high cap estimation */ - size_t new_size = st->size + (chunk_size + 1) / 2; - void *nptr = REALLOC(st->buf, new_size + 1); - if(!nptr) return -1; - st->buf = (uint8_t *)nptr; - buf = st->buf + st->size; - - /* - * If something like " a b c " appears here, the " a b":3 will be - * converted, and the rest skipped. That is, unless buf_size is greater - * than chunk_size, then it'll be equivalent to "ABC0". - */ - for(; p < pend; p++) { - int ch = *(const unsigned char *)p; - switch(ch) { - case 0x09: case 0x0a: case 0x0c: case 0x0d: - case 0x20: - /* Ignore whitespace */ - continue; - case 0x30: case 0x31: case 0x32: case 0x33: case 0x34: /*01234*/ - case 0x35: case 0x36: case 0x37: case 0x38: case 0x39: /*56789*/ - clv = (clv << 4) + (ch - 0x30); - break; - case 0x41: case 0x42: case 0x43: /* ABC */ - case 0x44: case 0x45: case 0x46: /* DEF */ - clv = (clv << 4) + (ch - 0x41 + 10); - break; - case 0x61: case 0x62: case 0x63: /* abc */ - case 0x64: case 0x65: case 0x66: /* def */ - clv = (clv << 4) + (ch - 0x61 + 10); - break; - default: - *buf = 0; /* JIC */ - return -1; - } - if(half++) { - half = 0; - *buf++ = clv; - chunk_stop = p + 1; - } - } - - /* - * Check partial decoding. - */ - if(half) { - if(have_more) { - /* - * Partial specification is fine, - * because no more more PXER_TEXT data is available. - */ - *buf++ = clv << 4; - chunk_stop = p; - } - } else { - chunk_stop = p; - } - - st->size = buf - st->buf; /* Adjust the buffer size */ - assert(st->size <= new_size); - st->buf[st->size] = 0; /* Courtesy termination */ - - return (chunk_stop - (const char *)chunk_buf); /* Converted size */ -} - -/* - * Convert from binary format: "00101011101" - */ -static ssize_t OCTET_STRING__convert_binary(void *sptr, const void *chunk_buf, size_t chunk_size, int have_more) { - BIT_STRING_t *st = (BIT_STRING_t *)sptr; - const char *p = (const char *)chunk_buf; - const char *pend = p + chunk_size; - int bits_unused = st->bits_unused & 0x7; - uint8_t *buf; - - /* Reallocate buffer according to high cap estimation */ - size_t new_size = st->size + (chunk_size + 7) / 8; - void *nptr = REALLOC(st->buf, new_size + 1); - if(!nptr) return -1; - st->buf = (uint8_t *)nptr; - buf = st->buf + st->size; - - (void)have_more; - - if(bits_unused == 0) - bits_unused = 8; - else if(st->size) - buf--; - - /* - * Convert series of 0 and 1 into the octet string. - */ - for(; p < pend; p++) { - int ch = *(const unsigned char *)p; - switch(ch) { - case 0x09: case 0x0a: case 0x0c: case 0x0d: - case 0x20: - /* Ignore whitespace */ - break; - case 0x30: - case 0x31: - if(bits_unused-- <= 0) { - *++buf = 0; /* Clean the cell */ - bits_unused = 7; - } - *buf |= (ch&1) << bits_unused; - break; - default: - st->bits_unused = bits_unused; - return -1; - } - } - - if(bits_unused == 8) { - st->size = buf - st->buf; - st->bits_unused = 0; - } else { - st->size = buf - st->buf + 1; - st->bits_unused = bits_unused; - } - - assert(st->size <= new_size); - st->buf[st->size] = 0; /* Courtesy termination */ - - return chunk_size; /* Converted in full */ -} - -/* - * Something like strtod(), but with stricter rules. - */ -static int -OS__strtoent(int base, const char *buf, const char *end, int32_t *ret_value) { - const int32_t last_unicode_codepoint = 0x10ffff; - int32_t val = 0; - const char *p; - - for(p = buf; p < end; p++) { - int ch = *p; - - switch(ch) { - case 0x30: case 0x31: case 0x32: case 0x33: case 0x34: /*01234*/ - case 0x35: case 0x36: case 0x37: case 0x38: case 0x39: /*56789*/ - val = val * base + (ch - 0x30); - break; - case 0x41: case 0x42: case 0x43: /* ABC */ - case 0x44: case 0x45: case 0x46: /* DEF */ - val = val * base + (ch - 0x41 + 10); - break; - case 0x61: case 0x62: case 0x63: /* abc */ - case 0x64: case 0x65: case 0x66: /* def */ - val = val * base + (ch - 0x61 + 10); - break; - case 0x3b: /* ';' */ - *ret_value = val; - return (p - buf) + 1; - default: - return -1; /* Character set error */ - } - - /* Value exceeds the Unicode range. */ - if(val > last_unicode_codepoint) { - return -1; - } - } - - *ret_value = -1; - return (p - buf); -} - -/* - * Convert from the plain UTF-8 format, expanding entity references: "2 < 3" - */ -static ssize_t -OCTET_STRING__convert_entrefs(void *sptr, const void *chunk_buf, - size_t chunk_size, int have_more) { - OCTET_STRING_t *st = (OCTET_STRING_t *)sptr; - const char *p = (const char *)chunk_buf; - const char *pend = p + chunk_size; - uint8_t *buf; - - /* Reallocate buffer */ - size_t new_size = st->size + chunk_size; - void *nptr = REALLOC(st->buf, new_size + 1); - if(!nptr) return -1; - st->buf = (uint8_t *)nptr; - buf = st->buf + st->size; - - /* - * Convert series of 0 and 1 into the octet string. - */ - for(; p < pend; p++) { - int ch = *(const unsigned char *)p; - int len; /* Length of the rest of the chunk */ - - if(ch != 0x26 /* '&' */) { - *buf++ = ch; - continue; /* That was easy... */ - } - - /* - * Process entity reference. - */ - len = chunk_size - (p - (const char *)chunk_buf); - if(len == 1 /* "&" */) goto want_more; - if(p[1] == 0x23 /* '#' */) { - const char *pval; /* Pointer to start of digits */ - int32_t val = 0; /* Entity reference value */ - int base; - - if(len == 2 /* "&#" */) goto want_more; - if(p[2] == 0x78 /* 'x' */) - pval = p + 3, base = 16; - else - pval = p + 2, base = 10; - len = OS__strtoent(base, pval, p + len, &val); - if(len == -1) { - /* Invalid charset. Just copy verbatim. */ - *buf++ = ch; - continue; - } - if(!len || pval[len-1] != 0x3b) goto want_more; - assert(val > 0); - p += (pval - p) + len - 1; /* Advance past entref */ - - if(val < 0x80) { - *buf++ = (char)val; - } else if(val < 0x800) { - *buf++ = 0xc0 | ((val >> 6)); - *buf++ = 0x80 | ((val & 0x3f)); - } else if(val < 0x10000) { - *buf++ = 0xe0 | ((val >> 12)); - *buf++ = 0x80 | ((val >> 6) & 0x3f); - *buf++ = 0x80 | ((val & 0x3f)); - } else if(val < 0x200000) { - *buf++ = 0xf0 | ((val >> 18)); - *buf++ = 0x80 | ((val >> 12) & 0x3f); - *buf++ = 0x80 | ((val >> 6) & 0x3f); - *buf++ = 0x80 | ((val & 0x3f)); - } else if(val < 0x4000000) { - *buf++ = 0xf8 | ((val >> 24)); - *buf++ = 0x80 | ((val >> 18) & 0x3f); - *buf++ = 0x80 | ((val >> 12) & 0x3f); - *buf++ = 0x80 | ((val >> 6) & 0x3f); - *buf++ = 0x80 | ((val & 0x3f)); - } else { - *buf++ = 0xfc | ((val >> 30) & 0x1); - *buf++ = 0x80 | ((val >> 24) & 0x3f); - *buf++ = 0x80 | ((val >> 18) & 0x3f); - *buf++ = 0x80 | ((val >> 12) & 0x3f); - *buf++ = 0x80 | ((val >> 6) & 0x3f); - *buf++ = 0x80 | ((val & 0x3f)); - } - } else { - /* - * Ugly, limited parsing of & > < - */ - char *sc = (char *)memchr(p, 0x3b, len > 5 ? 5 : len); - if(!sc) goto want_more; - if((sc - p) == 4 - && p[1] == 0x61 /* 'a' */ - && p[2] == 0x6d /* 'm' */ - && p[3] == 0x70 /* 'p' */) { - *buf++ = 0x26; - p = sc; - continue; - } - if((sc - p) == 3) { - if(p[1] == 0x6c) { - *buf = 0x3c; /* '<' */ - } else if(p[1] == 0x67) { - *buf = 0x3e; /* '>' */ - } else { - /* Unsupported entity reference */ - *buf++ = ch; - continue; - } - if(p[2] != 0x74) { - /* Unsupported entity reference */ - *buf++ = ch; - continue; - } - buf++; - p = sc; - continue; - } - /* Unsupported entity reference */ - *buf++ = ch; - } - - continue; - want_more: - if(have_more) { - /* - * We know that no more data (of the same type) - * is coming. Copy the rest verbatim. - */ - *buf++ = ch; - continue; - } - chunk_size = (p - (const char *)chunk_buf); - /* Processing stalled: need more data */ - break; - } - - st->size = buf - st->buf; - assert(st->size <= new_size); - st->buf[st->size] = 0; /* Courtesy termination */ - - return chunk_size; /* Converted in full */ -} - -/* - * Decode OCTET STRING from the XML element's body. - */ -static asn_dec_rval_t -OCTET_STRING__decode_xer( - const asn_codec_ctx_t *opt_codec_ctx, const asn_TYPE_descriptor_t *td, - void **sptr, const char *opt_mname, const void *buf_ptr, size_t size, - int (*opt_unexpected_tag_decoder)(void *struct_ptr, const void *chunk_buf, - size_t chunk_size), - ssize_t (*body_receiver)(void *struct_ptr, const void *chunk_buf, - size_t chunk_size, int have_more)) { - OCTET_STRING_t *st = (OCTET_STRING_t *)*sptr; - const asn_OCTET_STRING_specifics_t *specs = td->specifics - ? (const asn_OCTET_STRING_specifics_t *)td->specifics - : &asn_SPC_OCTET_STRING_specs; - const char *xml_tag = opt_mname ? opt_mname : td->xml_tag; - asn_struct_ctx_t *ctx; /* Per-structure parser context */ - asn_dec_rval_t rval; /* Return value from the decoder */ - int st_allocated; - - /* - * Create the string if does not exist. - */ - if(!st) { - st = (OCTET_STRING_t *)CALLOC(1, specs->struct_size); - *sptr = (void *)st; - if(!st) goto sta_failed; - st_allocated = 1; - } else { - st_allocated = 0; - } - if(!st->buf) { - /* This is separate from above section */ - st->buf = (uint8_t *)CALLOC(1, 1); - if(!st->buf) { - if(st_allocated) { - *sptr = 0; - goto stb_failed; - } else { - goto sta_failed; - } - } - } - - /* Restore parsing context */ - ctx = (asn_struct_ctx_t *)(((char *)*sptr) + specs->ctx_offset); - - return xer_decode_general(opt_codec_ctx, ctx, *sptr, xml_tag, - buf_ptr, size, opt_unexpected_tag_decoder, body_receiver); - -stb_failed: - FREEMEM(st); -sta_failed: - rval.code = RC_FAIL; - rval.consumed = 0; - return rval; -} - -/* - * Decode OCTET STRING from the hexadecimal data. - */ -asn_dec_rval_t -OCTET_STRING_decode_xer_hex(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **sptr, - const char *opt_mname, const void *buf_ptr, - size_t size) { - return OCTET_STRING__decode_xer(opt_codec_ctx, td, sptr, opt_mname, - buf_ptr, size, 0, OCTET_STRING__convert_hexadecimal); -} - -/* - * Decode OCTET STRING from the binary (0/1) data. - */ -asn_dec_rval_t -OCTET_STRING_decode_xer_binary(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **sptr, - const char *opt_mname, const void *buf_ptr, - size_t size) { - return OCTET_STRING__decode_xer(opt_codec_ctx, td, sptr, opt_mname, - buf_ptr, size, 0, OCTET_STRING__convert_binary); -} - -/* - * Decode OCTET STRING from the string (ASCII/UTF-8) data. - */ -asn_dec_rval_t -OCTET_STRING_decode_xer_utf8(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **sptr, - const char *opt_mname, const void *buf_ptr, - size_t size) { - return OCTET_STRING__decode_xer(opt_codec_ctx, td, sptr, opt_mname, - buf_ptr, size, - OCTET_STRING__handle_control_chars, - OCTET_STRING__convert_entrefs); -} - -#ifndef ASN_DISABLE_PER_SUPPORT - -static int -OCTET_STRING_per_get_characters(asn_per_data_t *po, uint8_t *buf, - size_t units, unsigned int bpc, unsigned int unit_bits, - long lb, long ub, const asn_per_constraints_t *pc) { - uint8_t *end = buf + units * bpc; - - ASN_DEBUG("Expanding %d characters into (%ld..%ld):%d", - (int)units, lb, ub, unit_bits); - - /* X.691: 27.5.4 */ - if((unsigned long)ub <= ((unsigned long)2 << (unit_bits - 1))) { - /* Decode without translation */ - lb = 0; - } else if(pc && pc->code2value) { - if(unit_bits > 16) - return 1; /* FATAL: can't have constrained - * UniversalString with more than - * 16 million code points */ - for(; buf < end; buf += bpc) { - int value; - int code = per_get_few_bits(po, unit_bits); - if(code < 0) return -1; /* WMORE */ - value = pc->code2value(code); - if(value < 0) { - ASN_DEBUG("Code %d (0x%02x) is" - " not in map (%ld..%ld)", - code, code, lb, ub); - return 1; /* FATAL */ - } - switch(bpc) { - case 1: *buf = value; break; - case 2: buf[0] = value >> 8; buf[1] = value; break; - case 4: buf[0] = value >> 24; buf[1] = value >> 16; - buf[2] = value >> 8; buf[3] = value; break; - } - } - return 0; - } - - /* Shortcut the no-op copying to the aligned structure */ - if(lb == 0 && (unit_bits == 8 * bpc)) { - return per_get_many_bits(po, buf, 0, unit_bits * units); - } - - for(; buf < end; buf += bpc) { - int32_t code = per_get_few_bits(po, unit_bits); - int32_t ch = code + lb; - if(code < 0) return -1; /* WMORE */ - if(ch > ub) { - ASN_DEBUG("Code %d is out of range (%ld..%ld)", - ch, lb, ub); - return 1; /* FATAL */ - } - switch(bpc) { - case 1: *buf = ch; break; - case 2: buf[0] = ch >> 8; buf[1] = ch; break; - case 4: buf[0] = ch >> 24; buf[1] = ch >> 16; - buf[2] = ch >> 8; buf[3] = ch; break; - } - } - - return 0; -} - -static int -OCTET_STRING_per_put_characters(asn_per_outp_t *po, const uint8_t *buf, - size_t units, unsigned int bpc, unsigned int unit_bits, - long lb, long ub, const asn_per_constraints_t *pc) { - const uint8_t *end = buf + units * bpc; - - ASN_DEBUG("Squeezing %d characters into (%ld..%ld):%d (%d bpc)", - (int)units, lb, ub, unit_bits, bpc); - - /* X.691: 27.5.4 */ - if((unsigned long)ub <= ((unsigned long)2 << (unit_bits - 1))) { - /* Encode as is */ - lb = 0; - } else if(pc && pc->value2code) { - for(; buf < end; buf += bpc) { - int code; - uint32_t value; - switch(bpc) { - case 1: value = *(const uint8_t *)buf; break; - case 2: value = (buf[0] << 8) | buf[1]; break; - case 4: value = (buf[0] << 24) | (buf[1] << 16) - | (buf[2] << 8) | buf[3]; break; - default: return -1; - } - code = pc->value2code(value); - if(code < 0) { - ASN_DEBUG("Character %d (0x%02x) is" - " not in map (%ld..%ld)", - *buf, *buf, lb, ub); - return -1; - } - if(per_put_few_bits(po, code, unit_bits)) - return -1; - } - } - - /* Shortcut the no-op copying to the aligned structure */ - if(lb == 0 && (unit_bits == 8 * bpc)) { - return per_put_many_bits(po, buf, unit_bits * units); - } - - for(ub -= lb; buf < end; buf += bpc) { - int ch; - uint32_t value; - switch(bpc) { - case 1: - value = *(const uint8_t *)buf; - break; - case 2: - value = (buf[0] << 8) | buf[1]; - break; - case 4: - value = (buf[0] << 24) | (buf[1] << 16) | (buf[2] << 8) | buf[3]; - break; - default: - return -1; - } - ch = value - lb; - if(ch < 0 || ch > ub) { - ASN_DEBUG("Character %d (0x%02x) is out of range (%ld..%ld)", *buf, - value, lb, ub + lb); - return -1; - } - if(per_put_few_bits(po, ch, unit_bits)) return -1; - } - - return 0; -} - -static asn_per_constraints_t asn_DEF_OCTET_STRING_constraints = { - { APC_CONSTRAINED, 8, 8, 0, 255 }, - { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 }, - 0, 0 -}; - -asn_dec_rval_t -OCTET_STRING_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, - asn_per_data_t *pd) { - const asn_OCTET_STRING_specifics_t *specs = td->specifics - ? (const asn_OCTET_STRING_specifics_t *)td->specifics - : &asn_SPC_OCTET_STRING_specs; - const asn_per_constraints_t *pc = - constraints ? constraints : td->encoding_constraints.per_constraints; - const asn_per_constraint_t *cval; - const asn_per_constraint_t *csiz; - asn_dec_rval_t rval = { RC_OK, 0 }; - OCTET_STRING_t *st = (OCTET_STRING_t *)*sptr; - ssize_t consumed_myself = 0; - int repeat; - enum { - OS__BPC_CHAR = 1, - OS__BPC_U16 = 2, - OS__BPC_U32 = 4 - } bpc; /* Bytes per character */ - unsigned int unit_bits; - unsigned int canonical_unit_bits; - - (void)opt_codec_ctx; - - if(pc) { - cval = &pc->value; - csiz = &pc->size; - } else { - cval = &asn_DEF_OCTET_STRING_constraints.value; - csiz = &asn_DEF_OCTET_STRING_constraints.size; - } - - switch(specs->subvariant) { - default: - case ASN_OSUBV_ANY: - case ASN_OSUBV_BIT: - ASN_DEBUG("Unrecognized subvariant %d", specs->subvariant); - RETURN(RC_FAIL); - break; - case ASN_OSUBV_STR: - canonical_unit_bits = unit_bits = 8; - if(cval->flags & APC_CONSTRAINED) - unit_bits = cval->range_bits; - bpc = OS__BPC_CHAR; - break; - case ASN_OSUBV_U16: - canonical_unit_bits = unit_bits = 16; - if(cval->flags & APC_CONSTRAINED) - unit_bits = cval->range_bits; - bpc = OS__BPC_U16; - break; - case ASN_OSUBV_U32: - canonical_unit_bits = unit_bits = 32; - if(cval->flags & APC_CONSTRAINED) - unit_bits = cval->range_bits; - bpc = OS__BPC_U32; - break; - } - - /* - * Allocate the string. - */ - if(!st) { - st = (OCTET_STRING_t *)(*sptr = CALLOC(1, specs->struct_size)); - if(!st) RETURN(RC_FAIL); - } - - ASN_DEBUG("PER Decoding %s size %ld .. %ld bits %d", - csiz->flags & APC_EXTENSIBLE ? "extensible" : "non-extensible", - csiz->lower_bound, csiz->upper_bound, csiz->effective_bits); - - if(csiz->flags & APC_EXTENSIBLE) { - int inext = per_get_few_bits(pd, 1); - if(inext < 0) RETURN(RC_WMORE); - if(inext) { - csiz = &asn_DEF_OCTET_STRING_constraints.size; - unit_bits = canonical_unit_bits; - } - } - - if(csiz->effective_bits >= 0) { - FREEMEM(st->buf); - if(bpc) { - st->size = csiz->upper_bound * bpc; - } else { - st->size = (csiz->upper_bound + 7) >> 3; - } - st->buf = (uint8_t *)MALLOC(st->size + 1); - if(!st->buf) { st->size = 0; RETURN(RC_FAIL); } - } - - /* X.691, #16.5: zero-length encoding */ - /* X.691, #16.6: short fixed length encoding (up to 2 octets) */ - /* X.691, #16.7: long fixed length encoding (up to 64K octets) */ - if(csiz->effective_bits == 0) { - int ret; - if(bpc) { - ASN_DEBUG("Encoding OCTET STRING size %ld", - csiz->upper_bound); - ret = OCTET_STRING_per_get_characters(pd, st->buf, - csiz->upper_bound, bpc, unit_bits, - cval->lower_bound, cval->upper_bound, pc); - if(ret > 0) RETURN(RC_FAIL); - } else { - ASN_DEBUG("Encoding BIT STRING size %ld", - csiz->upper_bound); - ret = per_get_many_bits(pd, st->buf, 0, - unit_bits * csiz->upper_bound); - } - if(ret < 0) RETURN(RC_WMORE); - consumed_myself += unit_bits * csiz->upper_bound; - st->buf[st->size] = 0; - RETURN(RC_OK); - } - - st->size = 0; - do { - ssize_t raw_len; - ssize_t len_bytes; - void *p; - int ret; - - /* Get the PER length */ - raw_len = uper_get_length(pd, csiz->effective_bits, csiz->lower_bound, - &repeat); - if(raw_len < 0) RETURN(RC_WMORE); - if(raw_len == 0 && st->buf) break; - - ASN_DEBUG("Got PER length eb %ld, len %ld, %s (%s)", - (long)csiz->effective_bits, (long)raw_len, - repeat ? "repeat" : "once", td->name); - len_bytes = raw_len * bpc; - p = REALLOC(st->buf, st->size + len_bytes + 1); - if(!p) RETURN(RC_FAIL); - st->buf = (uint8_t *)p; - - ret = OCTET_STRING_per_get_characters(pd, &st->buf[st->size], raw_len, - bpc, unit_bits, cval->lower_bound, - cval->upper_bound, pc); - if(ret > 0) RETURN(RC_FAIL); - if(ret < 0) RETURN(RC_WMORE); - st->size += len_bytes; - } while(repeat); - st->buf[st->size] = 0; /* nul-terminate */ - - return rval; -} - -asn_enc_rval_t -OCTET_STRING_encode_uper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_per_outp_t *po) { - const asn_OCTET_STRING_specifics_t *specs = td->specifics - ? (const asn_OCTET_STRING_specifics_t *)td->specifics - : &asn_SPC_OCTET_STRING_specs; - const asn_per_constraints_t *pc = constraints ? constraints - : td->encoding_constraints.per_constraints; - const asn_per_constraint_t *cval; - const asn_per_constraint_t *csiz; - const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; - asn_enc_rval_t er = { 0, 0, 0 }; - int inext = 0; /* Lies not within extension root */ - unsigned int unit_bits; - unsigned int canonical_unit_bits; - size_t size_in_units; - const uint8_t *buf; - int ret; - enum { - OS__BPC_CHAR = 1, - OS__BPC_U16 = 2, - OS__BPC_U32 = 4 - } bpc; /* Bytes per character */ - int ct_extensible; - - if(!st || (!st->buf && st->size)) - ASN__ENCODE_FAILED; - - if(pc) { - cval = &pc->value; - csiz = &pc->size; - } else { - cval = &asn_DEF_OCTET_STRING_constraints.value; - csiz = &asn_DEF_OCTET_STRING_constraints.size; - } - ct_extensible = csiz->flags & APC_EXTENSIBLE; - - switch(specs->subvariant) { - default: - case ASN_OSUBV_ANY: - case ASN_OSUBV_BIT: - ASN__ENCODE_FAILED; - case ASN_OSUBV_STR: - canonical_unit_bits = unit_bits = 8; - if(cval->flags & APC_CONSTRAINED) - unit_bits = cval->range_bits; - bpc = OS__BPC_CHAR; - size_in_units = st->size; - break; - case ASN_OSUBV_U16: - canonical_unit_bits = unit_bits = 16; - if(cval->flags & APC_CONSTRAINED) - unit_bits = cval->range_bits; - bpc = OS__BPC_U16; - size_in_units = st->size >> 1; - if(st->size & 1) { - ASN_DEBUG("%s string size is not modulo 2", td->name); - ASN__ENCODE_FAILED; - } - break; - case ASN_OSUBV_U32: - canonical_unit_bits = unit_bits = 32; - if(cval->flags & APC_CONSTRAINED) - unit_bits = cval->range_bits; - bpc = OS__BPC_U32; - size_in_units = st->size >> 2; - if(st->size & 3) { - ASN_DEBUG("%s string size is not modulo 4", td->name); - ASN__ENCODE_FAILED; - } - break; - } - - ASN_DEBUG("Encoding %s into %" ASN_PRI_SIZE " units of %d bits" - " (%ld..%ld, effective %d)%s", - td->name, size_in_units, unit_bits, - csiz->lower_bound, csiz->upper_bound, - csiz->effective_bits, ct_extensible ? " EXT" : ""); - - /* Figure out whether size lies within PER visible constraint */ - - if(csiz->effective_bits >= 0) { - if((ssize_t)size_in_units < csiz->lower_bound - || (ssize_t)size_in_units > csiz->upper_bound) { - if(ct_extensible) { - csiz = &asn_DEF_OCTET_STRING_constraints.size; - unit_bits = canonical_unit_bits; - inext = 1; - } else { - ASN__ENCODE_FAILED; - } - } - } else { - inext = 0; - } - - if(ct_extensible) { - /* Declare whether length is [not] within extension root */ - if(per_put_few_bits(po, inext, 1)) - ASN__ENCODE_FAILED; - } - - if(csiz->effective_bits >= 0 && !inext) { - ASN_DEBUG("Encoding %" ASN_PRI_SIZE " bytes (%ld), length in %d bits", st->size, - size_in_units - csiz->lower_bound, csiz->effective_bits); - ret = per_put_few_bits(po, size_in_units - csiz->lower_bound, - csiz->effective_bits); - if(ret) ASN__ENCODE_FAILED; - ret = OCTET_STRING_per_put_characters(po, st->buf, size_in_units, bpc, - unit_bits, cval->lower_bound, - cval->upper_bound, pc); - if(ret) ASN__ENCODE_FAILED; - ASN__ENCODED_OK(er); - } - - ASN_DEBUG("Encoding %" ASN_PRI_SIZE " bytes", st->size); - - buf = st->buf; - ASN_DEBUG("Encoding %" ASN_PRI_SIZE " in units", size_in_units); - do { - int need_eom = 0; - ssize_t may_save = uper_put_length(po, size_in_units, &need_eom); - if(may_save < 0) ASN__ENCODE_FAILED; - - ASN_DEBUG("Encoding %" ASN_PRI_SSIZE " of %" ASN_PRI_SIZE "%s", may_save, size_in_units, - need_eom ? ",+EOM" : ""); - - ret = OCTET_STRING_per_put_characters(po, buf, may_save, bpc, unit_bits, - cval->lower_bound, - cval->upper_bound, pc); - if(ret) ASN__ENCODE_FAILED; - - buf += may_save * bpc; - size_in_units -= may_save; - assert(!(may_save & 0x07) || !size_in_units); - if(need_eom && uper_put_length(po, 0, 0)) - ASN__ENCODE_FAILED; /* End of Message length */ - } while(size_in_units); - - ASN__ENCODED_OK(er); -} - -asn_dec_rval_t -OCTET_STRING_decode_aper(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - void **sptr, asn_per_data_t *pd) { - - const asn_OCTET_STRING_specifics_t *specs = td->specifics - ? (const asn_OCTET_STRING_specifics_t *)td->specifics - : &asn_SPC_OCTET_STRING_specs; - const asn_per_constraints_t *pc = constraints ? constraints - : td->encoding_constraints.per_constraints; - const asn_per_constraint_t *cval; - const asn_per_constraint_t *csiz; - asn_dec_rval_t rval = { RC_OK, 0 }; - BIT_STRING_t *st = (BIT_STRING_t *)*sptr; - ssize_t consumed_myself = 0; - int repeat; - enum { - OS__BPC_BIT = 0, - OS__BPC_CHAR = 1, - OS__BPC_U16 = 2, - OS__BPC_U32 = 4 - } bpc; /* Bytes per character */ - unsigned int unit_bits; - unsigned int canonical_unit_bits; - - (void)opt_codec_ctx; - - if(pc) { - cval = &pc->value; - csiz = &pc->size; - } else { - cval = &asn_DEF_OCTET_STRING_constraints.value; - csiz = &asn_DEF_OCTET_STRING_constraints.size; - } - - switch(specs->subvariant) { - default: -/* case ASN_OSUBV_ANY: - ASN_DEBUG("Unrecognized subvariant %d", specs->subvariant); - RETURN(RC_FAIL); -*/ - case ASN_OSUBV_BIT: - canonical_unit_bits = unit_bits = 1; - bpc = OS__BPC_BIT; - break; - case ASN_OSUBV_ANY: - case ASN_OSUBV_STR: - canonical_unit_bits = unit_bits = 8; -/* if(cval->flags & APC_CONSTRAINED) - unit_bits = cval->range_bits; -*/ - bpc = OS__BPC_CHAR; - break; - case ASN_OSUBV_U16: - canonical_unit_bits = unit_bits = 16; - if(cval->flags & APC_CONSTRAINED) - unit_bits = cval->range_bits; - bpc = OS__BPC_U16; - break; - case ASN_OSUBV_U32: - canonical_unit_bits = unit_bits = 32; - if(cval->flags & APC_CONSTRAINED) - unit_bits = cval->range_bits; - bpc = OS__BPC_U32; - break; - } - - /* - * Allocate the string. - */ - if(!st) { - st = (BIT_STRING_t *)(*sptr = CALLOC(1, specs->struct_size)); - if(!st) RETURN(RC_FAIL); - } - - ASN_DEBUG("PER Decoding %s size %ld .. %ld bits %d", - csiz->flags & APC_EXTENSIBLE ? "extensible" : "non-extensible", - csiz->lower_bound, csiz->upper_bound, csiz->effective_bits); - - if(csiz->flags & APC_EXTENSIBLE) { - int inext = per_get_few_bits(pd, 1); - if(inext < 0) RETURN(RC_WMORE); - if(inext) { - csiz = &asn_DEF_OCTET_STRING_constraints.size; - cval = &asn_DEF_OCTET_STRING_constraints.value; - unit_bits = canonical_unit_bits; - } - } - - if(csiz->effective_bits >= 0) { - FREEMEM(st->buf); - if(bpc) { - st->size = csiz->upper_bound * bpc; - } else { - st->size = (csiz->upper_bound + 7) >> 3; - } - st->buf = (uint8_t *)MALLOC(st->size + 1); - if(!st->buf) { st->size = 0; RETURN(RC_FAIL); } - } - - /* X.691, #16.5: zero-length encoding */ - /* X.691, #16.6: short fixed length encoding (up to 2 octets) */ - /* X.691, #16.7: long fixed length encoding (up to 64K octets) */ - if(csiz->effective_bits == 0) { - int ret; - if (st->size > 2) { /* X.691 #16 NOTE 1 */ - if (aper_get_align(pd) < 0) - RETURN(RC_FAIL); - } - if(bpc) { - ASN_DEBUG("Decoding OCTET STRING size %ld", - csiz->upper_bound); - ret = OCTET_STRING_per_get_characters(pd, st->buf, - csiz->upper_bound, bpc, unit_bits, - cval->lower_bound, cval->upper_bound, pc); - if(ret > 0) RETURN(RC_FAIL); - } else { - ASN_DEBUG("Decoding BIT STRING size %ld", - csiz->upper_bound); - ret = per_get_many_bits(pd, st->buf, 0, - unit_bits * csiz->upper_bound); - } - if(ret < 0) RETURN(RC_WMORE); - consumed_myself += unit_bits * csiz->upper_bound; - st->buf[st->size] = 0; - if(bpc == 0) { - int ubs = (csiz->upper_bound & 0x7); - st->bits_unused = ubs ? 8 - ubs : 0; - } - RETURN(RC_OK); - } - - st->size = 0; - do { - ssize_t raw_len; - ssize_t len_bytes; - ssize_t len_bits; - void *p; - int ret; - - /* Get the PER length */ - if (csiz->upper_bound - csiz->lower_bound == 0) - /* Indefinite length case */ - raw_len = aper_get_length(pd, -1, csiz->effective_bits, &repeat); - else - raw_len = aper_get_length(pd, csiz->upper_bound - csiz->lower_bound + 1, csiz->effective_bits, &repeat); - repeat = 0; - if(raw_len < 0) RETURN(RC_WMORE); - raw_len += csiz->lower_bound; - - ASN_DEBUG("Got PER length eb %ld, len %ld, %s (%s)", - (long)csiz->effective_bits, (long)raw_len, - repeat ? "repeat" : "once", td->name); - - if (raw_len > 2) { /* X.691 #16 NOTE 1 */ - if (aper_get_align(pd) < 0) - RETURN(RC_FAIL); - } - - if(bpc) { - len_bytes = raw_len * bpc; - len_bits = len_bytes * unit_bits; - } else { - len_bits = raw_len; - len_bytes = (len_bits + 7) >> 3; - if(len_bits & 0x7) - st->bits_unused = 8 - (len_bits & 0x7); - /* len_bits be multiple of 16K if repeat is set */ - } - p = REALLOC(st->buf, st->size + len_bytes + 1); - if(!p) RETURN(RC_FAIL); - st->buf = (uint8_t *)p; - - if(bpc) { - ret = OCTET_STRING_per_get_characters(pd, - &st->buf[st->size], raw_len, bpc, unit_bits, - cval->lower_bound, cval->upper_bound, pc); - if(ret > 0) RETURN(RC_FAIL); - } else { - ret = per_get_many_bits(pd, &st->buf[st->size], - 0, len_bits); - } - if(ret < 0) RETURN(RC_WMORE); - st->size += len_bytes; - } while(repeat); - st->buf[st->size] = 0; /* nul-terminate */ - - return rval; -} - -asn_enc_rval_t -OCTET_STRING_encode_aper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_per_outp_t *po) { - - const asn_OCTET_STRING_specifics_t *specs = td->specifics - ? (const asn_OCTET_STRING_specifics_t *)td->specifics - : &asn_SPC_OCTET_STRING_specs; - const asn_per_constraints_t *pc = constraints ? constraints - : td->encoding_constraints.per_constraints; - const asn_per_constraint_t *cval; - const asn_per_constraint_t *csiz; - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - asn_enc_rval_t er = { 0, 0, 0 }; - int inext = 0; /* Lies not within extension root */ - unsigned int unit_bits; - unsigned int canonical_unit_bits; - unsigned int sizeinunits; - const uint8_t *buf; - int ret; - enum { - OS__BPC_BIT = 0, - OS__BPC_CHAR = 1, - OS__BPC_U16 = 2, - OS__BPC_U32 = 4 - } bpc; /* Bytes per character */ - int ct_extensible; - - if(!st || (!st->buf && st->size)) - ASN__ENCODE_FAILED; - - if(pc) { - cval = &pc->value; - csiz = &pc->size; - } else { - cval = &asn_DEF_OCTET_STRING_constraints.value; - csiz = &asn_DEF_OCTET_STRING_constraints.size; - } - ct_extensible = csiz->flags & APC_EXTENSIBLE; - - switch(specs->subvariant) { - default: - /* case ASN_OSUBV_ANY: - ASN__ENCODE_FAILED; - */ - case ASN_OSUBV_BIT: - canonical_unit_bits = unit_bits = 1; - bpc = OS__BPC_BIT; - sizeinunits = st->size * 8 - (st->bits_unused & 0x07); - ASN_DEBUG("BIT STRING of %d bytes", - sizeinunits); - break; - case ASN_OSUBV_ANY: - case ASN_OSUBV_STR: - canonical_unit_bits = unit_bits = 8; -/* if(cval->flags & APC_CONSTRAINED) - unit_bits = 8; -*/ - bpc = OS__BPC_CHAR; - sizeinunits = st->size; - break; - case ASN_OSUBV_U16: - canonical_unit_bits = unit_bits = 16; - if(cval->flags & APC_CONSTRAINED) - unit_bits = cval->range_bits; - bpc = OS__BPC_U16; - sizeinunits = st->size / 2; - break; - case ASN_OSUBV_U32: - canonical_unit_bits = unit_bits = 32; - if(cval->flags & APC_CONSTRAINED) - unit_bits = cval->range_bits; - bpc = OS__BPC_U32; - sizeinunits = st->size / 4; - break; - } - - ASN_DEBUG("Encoding %s into %d units of %d bits" - " (%ld..%ld, effective %d)%s", - td->name, sizeinunits, unit_bits, - csiz->lower_bound, csiz->upper_bound, - csiz->effective_bits, ct_extensible ? " EXT" : ""); - - /* Figure out wheter size lies within PER visible constraint */ - - if(csiz->effective_bits >= 0) { - if((int)sizeinunits < csiz->lower_bound - || (int)sizeinunits > csiz->upper_bound) { - if(ct_extensible) { - cval = &asn_DEF_OCTET_STRING_constraints.value; - csiz = &asn_DEF_OCTET_STRING_constraints.size; - unit_bits = canonical_unit_bits; - inext = 1; - } else - ASN__ENCODE_FAILED; - } - } else { - inext = 0; - } - - - if(ct_extensible) { - /* Declare whether length is [not] within extension root */ - if(per_put_few_bits(po, inext, 1)) - ASN__ENCODE_FAILED; - } - - /* X.691, #16.5: zero-length encoding */ - /* X.691, #16.6: short fixed length encoding (up to 2 octets) */ - /* X.691, #16.7: long fixed length encoding (up to 64K octets) */ - if(csiz->effective_bits >= 0) { - ASN_DEBUG("Encoding %lu bytes (%ld), length in %d bits", - st->size, sizeinunits - csiz->lower_bound, - csiz->effective_bits); - if (csiz->effective_bits > 0) { - ret = aper_put_length(po, csiz->upper_bound - csiz->lower_bound + 1, sizeinunits - csiz->lower_bound); - if(ret) ASN__ENCODE_FAILED; - } - /* EB MOD - AFAIU if lb != ub it is aligned whatever the number of bits */ - if ((st->size > 2) || (csiz->lower_bound != csiz->upper_bound)) { /* X.691 #16.11 */ - if (aper_put_align(po) < 0) - ASN__ENCODE_FAILED; - } - if(bpc) { - ret = OCTET_STRING_per_put_characters(po, st->buf, - sizeinunits, bpc, unit_bits, - cval->lower_bound, cval->upper_bound, pc); - } else { - ret = per_put_many_bits(po, st->buf, - sizeinunits * unit_bits); - } - if(ret) ASN__ENCODE_FAILED; - ASN__ENCODED_OK(er); - } - - ASN_DEBUG("Encoding %lu bytes", st->size); - - if(sizeinunits == 0) { - if(aper_put_length(po, -1, 0)) - ASN__ENCODE_FAILED; - ASN__ENCODED_OK(er); - } - - buf = st->buf; - while(sizeinunits) { - ssize_t maySave = aper_put_length(po, -1, sizeinunits); - - if(maySave < 0) ASN__ENCODE_FAILED; - - ASN_DEBUG("Encoding %ld of %ld", - (long)maySave, (long)sizeinunits); - - if(bpc) { - ret = OCTET_STRING_per_put_characters(po, buf, - maySave, bpc, unit_bits, - cval->lower_bound, cval->upper_bound, pc); - } else { - ret = per_put_many_bits(po, buf, maySave * unit_bits); - } - if(ret) ASN__ENCODE_FAILED; - - if(bpc) - buf += maySave * bpc; - else - buf += maySave >> 3; - sizeinunits -= maySave; - assert(!(maySave & 0x07) || !sizeinunits); - } - - ASN__ENCODED_OK(er); -} - -#endif /* ASN_DISABLE_PER_SUPPORT */ - -int -OCTET_STRING_print(const asn_TYPE_descriptor_t *td, const void *sptr, - int ilevel, asn_app_consume_bytes_f *cb, void *app_key) { - const char * const h2c = "0123456789ABCDEF"; - const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; - char scratch[16 * 3 + 4]; - char *p = scratch; - uint8_t *buf; - uint8_t *end; - size_t i; - - (void)td; /* Unused argument */ - - if(!st || (!st->buf && st->size)) - return (cb("", 8, app_key) < 0) ? -1 : 0; - - /* - * Dump the contents of the buffer in hexadecimal. - */ - buf = st->buf; - end = buf + st->size; - for(i = 0; buf < end; buf++, i++) { - if(!(i % 16) && (i || st->size > 16)) { - if(cb(scratch, p - scratch, app_key) < 0) - return -1; - _i_INDENT(1); - p = scratch; - } - *p++ = h2c[(*buf >> 4) & 0x0F]; - *p++ = h2c[*buf & 0x0F]; - *p++ = 0x20; - } - - if(p > scratch) { - p--; /* Remove the tail space */ - if(cb(scratch, p - scratch, app_key) < 0) - return -1; - } - - return 0; -} - -int -OCTET_STRING_print_utf8(const asn_TYPE_descriptor_t *td, const void *sptr, - int ilevel, asn_app_consume_bytes_f *cb, - void *app_key) { - const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; - - (void)td; /* Unused argument */ - (void)ilevel; /* Unused argument */ - - if(st && (st->buf || !st->size)) { - return (cb(st->buf, st->size, app_key) < 0) ? -1 : 0; - } else { - return (cb("", 8, app_key) < 0) ? -1 : 0; - } -} - -void -OCTET_STRING_free(const asn_TYPE_descriptor_t *td, void *sptr, - enum asn_struct_free_method method) { - OCTET_STRING_t *st = (OCTET_STRING_t *)sptr; - const asn_OCTET_STRING_specifics_t *specs; - asn_struct_ctx_t *ctx; - struct _stack *stck; - - if(!td || !st) - return; - - specs = td->specifics - ? (const asn_OCTET_STRING_specifics_t *)td->specifics - : &asn_SPC_OCTET_STRING_specs; - ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset); - - ASN_DEBUG("Freeing %s as OCTET STRING", td->name); - - if(st->buf) { - FREEMEM(st->buf); - st->buf = 0; - } - - /* - * Remove decode-time stack. - */ - stck = (struct _stack *)ctx->ptr; - if(stck) { - while(stck->tail) { - struct _stack_el *sel = stck->tail; - stck->tail = sel->prev; - FREEMEM(sel); - } - FREEMEM(stck); - } - - switch(method) { - case ASFM_FREE_EVERYTHING: - FREEMEM(sptr); - break; - case ASFM_FREE_UNDERLYING: - break; - case ASFM_FREE_UNDERLYING_AND_RESET: - memset(sptr, 0, - td->specifics - ? ((const asn_OCTET_STRING_specifics_t *)(td->specifics)) - ->struct_size - : sizeof(OCTET_STRING_t)); - break; - } -} - -/* - * Conversion routines. - */ -int -OCTET_STRING_fromBuf(OCTET_STRING_t *st, const char *str, int len) { - void *buf; - - if(st == 0 || (str == 0 && len)) { - errno = EINVAL; - return -1; - } - - /* - * Clear the OCTET STRING. - */ - if(str == NULL) { - FREEMEM(st->buf); - st->buf = 0; - st->size = 0; - return 0; - } - - /* Determine the original string size, if not explicitly given */ - if(len < 0) - len = strlen(str); - - /* Allocate and fill the memory */ - buf = MALLOC(len + 1); - if(buf == NULL) - return -1; - - memcpy(buf, str, len); - ((uint8_t *)buf)[len] = '\0'; /* Couldn't use memcpy(len+1)! */ - FREEMEM(st->buf); - st->buf = (uint8_t *)buf; - st->size = len; - - return 0; -} - -OCTET_STRING_t * -OCTET_STRING_new_fromBuf(const asn_TYPE_descriptor_t *td, const char *str, - int len) { - const asn_OCTET_STRING_specifics_t *specs = - td->specifics ? (const asn_OCTET_STRING_specifics_t *)td->specifics - : &asn_SPC_OCTET_STRING_specs; - OCTET_STRING_t *st; - - st = (OCTET_STRING_t *)CALLOC(1, specs->struct_size); - if(st && str && OCTET_STRING_fromBuf(st, str, len)) { - FREEMEM(st); - st = NULL; - } - - return st; -} - -/* - * Lexicographically compare the common prefix of both strings, - * and if it is the same return -1 for the smallest string. - */ -int -OCTET_STRING_compare(const asn_TYPE_descriptor_t *td, const void *aptr, - const void *bptr) { - const asn_OCTET_STRING_specifics_t *specs = td->specifics; - const OCTET_STRING_t *a = aptr; - const OCTET_STRING_t *b = bptr; - - assert(!specs || specs->subvariant != ASN_OSUBV_BIT); - - if(a && b) { - size_t common_prefix_size = a->size <= b->size ? a->size : b->size; - int ret = memcmp(a->buf, b->buf, common_prefix_size); - if(ret == 0) { - /* Figure out which string with equal prefixes is longer. */ - if(a->size < b->size) { - return -1; - } else if(a->size > b->size) { - return 1; - } else { - return 0; - } - } else { - return ret < 0 ? -1 : 1; - } - } else if(!a && !b) { - return 0; - } else if(!a) { - return -1; - } else { - return 1; - } - -} - -/* - * Biased function for randomizing character values around their limits. - */ -static uint32_t -OCTET_STRING__random_char(unsigned long lb, unsigned long ub) { - assert(lb <= ub); - switch(asn_random_between(0, 16)) { - case 0: - if(lb < ub) return lb + 1; - /* Fall through */ - case 1: - return lb; - case 2: - if(lb < ub) return ub - 1; - /* Fall through */ - case 3: - return ub; - default: - return asn_random_between(lb, ub); - } -} - - -size_t -OCTET_STRING_random_length_constrained( - const asn_TYPE_descriptor_t *td, - const asn_encoding_constraints_t *constraints, size_t max_length) { - const unsigned lengths[] = {0, 1, 2, 3, 4, 8, - 126, 127, 128, 16383, 16384, 16385, - 65534, 65535, 65536, 65537}; - size_t rnd_len; - - /* Figure out how far we should go */ - rnd_len = lengths[asn_random_between( - 0, sizeof(lengths) / sizeof(lengths[0]) - 1)]; - - if(!constraints || !constraints->per_constraints) - constraints = &td->encoding_constraints; - if(constraints->per_constraints) { - const asn_per_constraint_t *pc = &constraints->per_constraints->size; - if(pc->flags & APC_CONSTRAINED) { - long suggested_upper_bound = pc->upper_bound < (ssize_t)max_length - ? pc->upper_bound - : (ssize_t)max_length; - if(max_length <= (size_t)pc->lower_bound) { - return pc->lower_bound; - } - if(pc->flags & APC_EXTENSIBLE) { - switch(asn_random_between(0, 5)) { - case 0: - if(pc->lower_bound > 0) { - rnd_len = pc->lower_bound - 1; - break; - } - /* Fall through */ - case 1: - rnd_len = pc->upper_bound + 1; - break; - case 2: - /* Keep rnd_len from the table */ - if(rnd_len <= max_length) { - break; - } - /* Fall through */ - default: - rnd_len = asn_random_between(pc->lower_bound, - suggested_upper_bound); - } - } else { - rnd_len = - asn_random_between(pc->lower_bound, suggested_upper_bound); - } - } else { - rnd_len = asn_random_between(0, max_length); - } - } else if(rnd_len > max_length) { - rnd_len = asn_random_between(0, max_length); - } - - return rnd_len; -} - -asn_random_fill_result_t -OCTET_STRING_random_fill(const asn_TYPE_descriptor_t *td, void **sptr, - const asn_encoding_constraints_t *constraints, - size_t max_length) { - const asn_OCTET_STRING_specifics_t *specs = td->specifics - ? (const asn_OCTET_STRING_specifics_t *)td->specifics - : &asn_SPC_OCTET_STRING_specs; - asn_random_fill_result_t result_ok = {ARFILL_OK, 1}; - asn_random_fill_result_t result_failed = {ARFILL_FAILED, 0}; - asn_random_fill_result_t result_skipped = {ARFILL_SKIPPED, 0}; - unsigned int unit_bytes = 1; - unsigned long clb = 0; /* Lower bound on char */ - unsigned long cub = 255; /* Higher bound on char value */ - uint8_t *buf; - uint8_t *bend; - uint8_t *b; - size_t rnd_len; - OCTET_STRING_t *st; - - if(max_length == 0 && !*sptr) return result_skipped; - - switch(specs->subvariant) { - default: - case ASN_OSUBV_ANY: - return result_failed; - case ASN_OSUBV_BIT: - /* Handled by BIT_STRING itself. */ - return result_failed; - case ASN_OSUBV_STR: - unit_bytes = 1; - clb = 0; - cub = 255; - break; - case ASN_OSUBV_U16: - unit_bytes = 2; - clb = 0; - cub = 65535; - break; - case ASN_OSUBV_U32: - unit_bytes = 4; - clb = 0; - cub = 0x10FFFF; - break; - } - - if(!constraints || !constraints->per_constraints) - constraints = &td->encoding_constraints; - if(constraints->per_constraints) { - const asn_per_constraint_t *pc = &constraints->per_constraints->value; - if(pc->flags & APC_SEMI_CONSTRAINED) { - clb = pc->lower_bound; - } else if(pc->flags & APC_CONSTRAINED) { - clb = pc->lower_bound; - cub = pc->upper_bound; - } - } - - rnd_len = - OCTET_STRING_random_length_constrained(td, constraints, max_length); - - buf = CALLOC(unit_bytes, rnd_len + 1); - if(!buf) return result_failed; - - bend = &buf[unit_bytes * rnd_len]; - - switch(unit_bytes) { - case 1: - for(b = buf; b < bend; b += unit_bytes) { - *(uint8_t *)b = OCTET_STRING__random_char(clb, cub); - } - *(uint8_t *)b = 0; - break; - case 2: - for(b = buf; b < bend; b += unit_bytes) { - uint32_t code = OCTET_STRING__random_char(clb, cub); - b[0] = code >> 8; - b[1] = code; - } - *(uint16_t *)b = 0; - break; - case 4: - for(b = buf; b < bend; b += unit_bytes) { - uint32_t code = OCTET_STRING__random_char(clb, cub); - b[0] = code >> 24; - b[1] = code >> 16; - b[2] = code >> 8; - b[3] = code; - } - *(uint32_t *)b = 0; - break; - } - - if(*sptr) { - st = *sptr; - FREEMEM(st->buf); - } else { - st = (OCTET_STRING_t *)(*sptr = CALLOC(1, specs->struct_size)); - if(!st) { - FREEMEM(buf); - return result_failed; - } - } - - st->buf = buf; - st->size = unit_bytes * rnd_len; - - result_ok.length = st->size; - return result_ok; -} diff --git a/e2sim/previous/e2apv1sim/ASN1c/OCTET_STRING.h b/e2sim/previous/e2apv1sim/ASN1c/OCTET_STRING.h deleted file mode 100644 index c2f8bae..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/OCTET_STRING.h +++ /dev/null @@ -1,102 +0,0 @@ -/*- - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef _OCTET_STRING_H_ -#define _OCTET_STRING_H_ - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct OCTET_STRING { - uint8_t *buf; /* Buffer with consecutive OCTET_STRING bits */ - size_t size; /* Size of the buffer */ - - asn_struct_ctx_t _asn_ctx; /* Parsing across buffer boundaries */ -} OCTET_STRING_t; - -extern asn_TYPE_descriptor_t asn_DEF_OCTET_STRING; -extern asn_TYPE_operation_t asn_OP_OCTET_STRING; - -asn_struct_free_f OCTET_STRING_free; -asn_struct_print_f OCTET_STRING_print; -asn_struct_print_f OCTET_STRING_print_utf8; -asn_struct_compare_f OCTET_STRING_compare; -ber_type_decoder_f OCTET_STRING_decode_ber; -der_type_encoder_f OCTET_STRING_encode_der; -xer_type_decoder_f OCTET_STRING_decode_xer_hex; /* Hexadecimal */ -xer_type_decoder_f OCTET_STRING_decode_xer_binary; /* 01010111010 */ -xer_type_decoder_f OCTET_STRING_decode_xer_utf8; /* ASCII/UTF-8 */ -xer_type_encoder_f OCTET_STRING_encode_xer; -xer_type_encoder_f OCTET_STRING_encode_xer_utf8; -oer_type_decoder_f OCTET_STRING_decode_oer; -oer_type_encoder_f OCTET_STRING_encode_oer; -per_type_decoder_f OCTET_STRING_decode_uper; -per_type_encoder_f OCTET_STRING_encode_uper; -per_type_decoder_f OCTET_STRING_decode_aper; -per_type_encoder_f OCTET_STRING_encode_aper; -asn_random_fill_f OCTET_STRING_random_fill; - -#define OCTET_STRING_constraint asn_generic_no_constraint -#define OCTET_STRING_decode_xer OCTET_STRING_decode_xer_hex - -/****************************** - * Handy conversion routines. * - ******************************/ - -/* - * This function clears the previous value of the OCTET STRING (if any) - * and then allocates a new memory with the specified content (str/size). - * If size = -1, the size of the original string will be determined - * using strlen(str). - * If str equals to NULL, the function will silently clear the - * current contents of the OCTET STRING. - * Returns 0 if it was possible to perform operation, -1 otherwise. - */ -int OCTET_STRING_fromBuf(OCTET_STRING_t *s, const char *str, int size); - -/* Handy conversion from the C string into the OCTET STRING. */ -#define OCTET_STRING_fromString(s, str) OCTET_STRING_fromBuf(s, str, -1) - -/* - * Allocate and fill the new OCTET STRING and return a pointer to the newly - * allocated object. NULL is permitted in str: the function will just allocate - * empty OCTET STRING. - */ -OCTET_STRING_t *OCTET_STRING_new_fromBuf(const asn_TYPE_descriptor_t *td, - const char *str, int size); - -/**************************** - * Internally useful stuff. * - ****************************/ - -typedef struct asn_OCTET_STRING_specifics_s { - /* - * Target structure description. - */ - unsigned struct_size; /* Size of the structure */ - unsigned ctx_offset; /* Offset of the asn_struct_ctx_t member */ - - enum asn_OS_Subvariant { - ASN_OSUBV_ANY, /* The open type (ANY) */ - ASN_OSUBV_BIT, /* BIT STRING */ - ASN_OSUBV_STR, /* String types, not {BMP,Universal}String */ - ASN_OSUBV_U16, /* 16-bit character (BMPString) */ - ASN_OSUBV_U32 /* 32-bit character (UniversalString) */ - } subvariant; -} asn_OCTET_STRING_specifics_t; - -extern asn_OCTET_STRING_specifics_t asn_SPC_OCTET_STRING_specs; - -size_t OCTET_STRING_random_length_constrained( - const asn_TYPE_descriptor_t *, const asn_encoding_constraints_t *, - size_t max_length); - -#ifdef __cplusplus -} -#endif - -#endif /* _OCTET_STRING_H_ */ diff --git a/e2sim/previous/e2apv1sim/ASN1c/OCTET_STRING_oer.c b/e2sim/previous/e2apv1sim/ASN1c/OCTET_STRING_oer.c deleted file mode 100644 index c16faea..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/OCTET_STRING_oer.c +++ /dev/null @@ -1,171 +0,0 @@ -/* - * Copyright (c) 2017 Lev Walkin . - * All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef ASN_DISABLE_OER_SUPPORT - -#include -#include -#include - -asn_dec_rval_t -OCTET_STRING_decode_oer(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_oer_constraints_t *constraints, void **sptr, - const void *ptr, size_t size) { - const asn_OCTET_STRING_specifics_t *specs = - td->specifics ? (const asn_OCTET_STRING_specifics_t *)td->specifics - : &asn_SPC_OCTET_STRING_specs; - OCTET_STRING_t *st = (OCTET_STRING_t *)*sptr; - const asn_oer_constraints_t *cts = - constraints ? constraints : td->encoding_constraints.oer_constraints; - ssize_t ct_size = cts ? cts->size : -1; - asn_dec_rval_t rval = {RC_OK, 0}; - size_t expected_length = 0; - - size_t unit_bytes; - switch(specs->subvariant) { - default: - case ASN_OSUBV_BIT: - ASN_DEBUG("Invalid use of OCTET STRING to decode BIT STRING"); - ASN__DECODE_FAILED; - case ASN_OSUBV_ANY: - /* Fall through */ - case ASN_OSUBV_STR: - unit_bytes = 1; - break; - case ASN_OSUBV_U16: - unit_bytes = 2; - break; - case ASN_OSUBV_U32: - unit_bytes = 4; - break; - } - - (void)opt_codec_ctx; - - if(!st) { - st = (OCTET_STRING_t *)(*sptr = CALLOC(1, specs->struct_size)); - if(!st) ASN__DECODE_FAILED; - } - - if(ct_size >= 0) { - expected_length = unit_bytes * ct_size; - } else { - /* - * X.696 (08/2015) #27.2 - * Encode length determinant as _number of octets_, but only - * if upper bound is not equal to lower bound. - */ - ssize_t len_len = oer_fetch_length(ptr, size, &expected_length); - if(len_len > 0) { - rval.consumed = len_len; - ptr = (const char *)ptr + len_len; - size -= len_len; - } else if(len_len == 0) { - ASN__DECODE_STARVED; - } else if(len_len < 0) { - ASN__DECODE_FAILED; - } - - if(expected_length % unit_bytes != 0) { - ASN_DEBUG( - "Data size %" ASN_PRI_SIZE " bytes is not consistent with multiplier %" ASN_PRI_SIZE "", - expected_length, unit_bytes); - ASN__DECODE_FAILED; - } - } - - if(size < expected_length) { - ASN__DECODE_STARVED; - } else { - uint8_t *buf = MALLOC(expected_length + 1); - if(buf == NULL) { - ASN__DECODE_FAILED; - } else { - memcpy(buf, ptr, expected_length); - buf[expected_length] = '\0'; - } - FREEMEM(st->buf); - st->buf = buf; - st->size = expected_length; - - rval.consumed += expected_length; - return rval; - } -} - -/* - * Encode as Canonical OER. - */ -asn_enc_rval_t -OCTET_STRING_encode_oer(const asn_TYPE_descriptor_t *td, - const asn_oer_constraints_t *constraints, - const void *sptr, asn_app_consume_bytes_f *cb, - void *app_key) { - const asn_OCTET_STRING_specifics_t *specs = - td->specifics ? (const asn_OCTET_STRING_specifics_t *)td->specifics - : &asn_SPC_OCTET_STRING_specs; - const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; - const asn_oer_constraints_t *cts = - constraints ? constraints : td->encoding_constraints.oer_constraints; - ssize_t ct_size = cts ? cts->size : -1; - asn_enc_rval_t er = {0, 0, 0}; - - if(!st) ASN__ENCODE_FAILED; - - ASN_DEBUG("Encoding %s %" ASN_PRI_SIZE " as OCTET STRING", td ? td->name : "", st->size); - - if(ct_size >= 0) { - /* - * Check that available data matches the constraint - */ - size_t unit_bytes; - switch(specs->subvariant) { - default: - case ASN_OSUBV_BIT: - ASN_DEBUG("Invalid use of OCTET STRING to encode BIT STRING"); - ASN__ENCODE_FAILED; - case ASN_OSUBV_ANY: - /* Fall through */ - case ASN_OSUBV_STR: - unit_bytes = 1; - break; - case ASN_OSUBV_U16: - unit_bytes = 2; - break; - case ASN_OSUBV_U32: - unit_bytes = 4; - break; - } - - if(st->size != unit_bytes * (size_t)ct_size) { - ASN_DEBUG( - "Trying to encode %s (%" ASN_PRI_SIZE " bytes) which doesn't fit SIZE " - "constraint (%" ASN_PRI_SIZE ")", - td->name, st->size, ct_size); - ASN__ENCODE_FAILED; - } - } else { - /* - * X.696 (08/2015) #27.2 - * Encode length determinant as _number of octets_, but only - * if upper bound is not equal to lower bound. - */ - ssize_t ret = oer_serialize_length(st->size, cb, app_key); - if(ret < 0) { - ASN__ENCODE_FAILED; - } - er.encoded += ret; - } - - er.encoded += st->size; - if(cb(st->buf, st->size, app_key) < 0) { - ASN__ENCODE_FAILED; - } else { - ASN__ENCODED_OK(er); - } -} - -#endif /* ASN_DISABLE_OER_SUPPORT */ diff --git a/e2sim/previous/e2apv1sim/ASN1c/OCUCP-PF-Container.c b/e2sim/previous/e2apv1sim/ASN1c/OCUCP-PF-Container.c deleted file mode 100644 index 121932b..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/OCUCP-PF-Container.c +++ /dev/null @@ -1,140 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "OCUCP-PF-Container.h" - -static int -memb_numberOfActive_UEs_constraint_3(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 1 && value <= 65536)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_oer_constraints_t asn_OER_memb_numberOfActive_UEs_constr_4 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_memb_numberOfActive_UEs_constr_4 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 16, -1, 1, 65536 } /* (1..65536,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_cu_CP_Resource_Status_3[] = { - { ATF_POINTER, 1, offsetof(struct OCUCP_PF_Container__cu_CP_Resource_Status, numberOfActive_UEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_numberOfActive_UEs_constr_4, &asn_PER_memb_numberOfActive_UEs_constr_4, memb_numberOfActive_UEs_constraint_3 }, - 0, 0, /* No default value */ - "numberOfActive-UEs" - }, -}; -static const int asn_MAP_cu_CP_Resource_Status_oms_3[] = { 0 }; -static const ber_tlv_tag_t asn_DEF_cu_CP_Resource_Status_tags_3[] = { - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_cu_CP_Resource_Status_tag2el_3[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* numberOfActive-UEs */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_cu_CP_Resource_Status_specs_3 = { - sizeof(struct OCUCP_PF_Container__cu_CP_Resource_Status), - offsetof(struct OCUCP_PF_Container__cu_CP_Resource_Status, _asn_ctx), - asn_MAP_cu_CP_Resource_Status_tag2el_3, - 1, /* Count of tags in the map */ - asn_MAP_cu_CP_Resource_Status_oms_3, /* Optional members */ - 1, 0, /* Root/Additions */ - -1, /* First extension addition */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_cu_CP_Resource_Status_3 = { - "cu-CP-Resource-Status", - "cu-CP-Resource-Status", - &asn_OP_SEQUENCE, - asn_DEF_cu_CP_Resource_Status_tags_3, - sizeof(asn_DEF_cu_CP_Resource_Status_tags_3) - /sizeof(asn_DEF_cu_CP_Resource_Status_tags_3[0]) - 1, /* 1 */ - asn_DEF_cu_CP_Resource_Status_tags_3, /* Same as above */ - sizeof(asn_DEF_cu_CP_Resource_Status_tags_3) - /sizeof(asn_DEF_cu_CP_Resource_Status_tags_3[0]), /* 2 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_cu_CP_Resource_Status_3, - 1, /* Elements count */ - &asn_SPC_cu_CP_Resource_Status_specs_3 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_OCUCP_PF_Container_1[] = { - { ATF_POINTER, 1, offsetof(struct OCUCP_PF_Container, gNB_CU_CP_Name), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GNB_CU_CP_Name, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "gNB-CU-CP-Name" - }, - { ATF_NOFLAGS, 0, offsetof(struct OCUCP_PF_Container, cu_CP_Resource_Status), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - 0, - &asn_DEF_cu_CP_Resource_Status_3, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "cu-CP-Resource-Status" - }, -}; -static const int asn_MAP_OCUCP_PF_Container_oms_1[] = { 0 }; -static const ber_tlv_tag_t asn_DEF_OCUCP_PF_Container_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_OCUCP_PF_Container_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* gNB-CU-CP-Name */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* cu-CP-Resource-Status */ -}; -asn_SEQUENCE_specifics_t asn_SPC_OCUCP_PF_Container_specs_1 = { - sizeof(struct OCUCP_PF_Container), - offsetof(struct OCUCP_PF_Container, _asn_ctx), - asn_MAP_OCUCP_PF_Container_tag2el_1, - 2, /* Count of tags in the map */ - asn_MAP_OCUCP_PF_Container_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_OCUCP_PF_Container = { - "OCUCP-PF-Container", - "OCUCP-PF-Container", - &asn_OP_SEQUENCE, - asn_DEF_OCUCP_PF_Container_tags_1, - sizeof(asn_DEF_OCUCP_PF_Container_tags_1) - /sizeof(asn_DEF_OCUCP_PF_Container_tags_1[0]), /* 1 */ - asn_DEF_OCUCP_PF_Container_tags_1, /* Same as above */ - sizeof(asn_DEF_OCUCP_PF_Container_tags_1) - /sizeof(asn_DEF_OCUCP_PF_Container_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_OCUCP_PF_Container_1, - 2, /* Elements count */ - &asn_SPC_OCUCP_PF_Container_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/OCUCP-PF-Container.h b/e2sim/previous/e2apv1sim/ASN1c/OCUCP-PF-Container.h deleted file mode 100644 index aee0f21..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/OCUCP-PF-Container.h +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _OCUCP_PF_Container_H_ -#define _OCUCP_PF_Container_H_ - - -#include - -/* Including external dependencies */ -#include "GNB-CU-CP-Name.h" -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* OCUCP-PF-Container */ -typedef struct OCUCP_PF_Container { - GNB_CU_CP_Name_t *gNB_CU_CP_Name; /* OPTIONAL */ - struct OCUCP_PF_Container__cu_CP_Resource_Status { - long *numberOfActive_UEs; /* OPTIONAL */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } cu_CP_Resource_Status; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} OCUCP_PF_Container_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_OCUCP_PF_Container; -extern asn_SEQUENCE_specifics_t asn_SPC_OCUCP_PF_Container_specs_1; -extern asn_TYPE_member_t asn_MBR_OCUCP_PF_Container_1[2]; - -#ifdef __cplusplus -} -#endif - -#endif /* _OCUCP_PF_Container_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ASN1c/OCUUP-PF-Container.c b/e2sim/previous/e2apv1sim/ASN1c/OCUUP-PF-Container.c deleted file mode 100644 index e1f754e..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/OCUUP-PF-Container.c +++ /dev/null @@ -1,141 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "OCUUP-PF-Container.h" - -static int -memb_pf_ContainerList_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - /* Determine the number of elements */ - size = _A_CSEQUENCE_FROM_VOID(sptr)->count; - - if((size >= 1 && size <= 3)) { - /* Perform validation of the inner elements */ - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_oer_constraints_t asn_OER_type_pf_ContainerList_constr_3 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..3)) */}; -static asn_per_constraints_t asn_PER_type_pf_ContainerList_constr_3 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 2, 2, 1, 3 } /* (SIZE(1..3)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_pf_ContainerList_constr_3 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..3)) */}; -static asn_per_constraints_t asn_PER_memb_pf_ContainerList_constr_3 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 2, 2, 1, 3 } /* (SIZE(1..3)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_pf_ContainerList_3[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_PF_ContainerListItem, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_pf_ContainerList_tags_3[] = { - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_pf_ContainerList_specs_3 = { - sizeof(struct OCUUP_PF_Container__pf_ContainerList), - offsetof(struct OCUUP_PF_Container__pf_ContainerList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_pf_ContainerList_3 = { - "pf-ContainerList", - "pf-ContainerList", - &asn_OP_SEQUENCE_OF, - asn_DEF_pf_ContainerList_tags_3, - sizeof(asn_DEF_pf_ContainerList_tags_3) - /sizeof(asn_DEF_pf_ContainerList_tags_3[0]) - 1, /* 1 */ - asn_DEF_pf_ContainerList_tags_3, /* Same as above */ - sizeof(asn_DEF_pf_ContainerList_tags_3) - /sizeof(asn_DEF_pf_ContainerList_tags_3[0]), /* 2 */ - { &asn_OER_type_pf_ContainerList_constr_3, &asn_PER_type_pf_ContainerList_constr_3, SEQUENCE_OF_constraint }, - asn_MBR_pf_ContainerList_3, - 1, /* Single element */ - &asn_SPC_pf_ContainerList_specs_3 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_OCUUP_PF_Container_1[] = { - { ATF_POINTER, 1, offsetof(struct OCUUP_PF_Container, gNB_CU_UP_Name), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GNB_CU_UP_Name, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "gNB-CU-UP-Name" - }, - { ATF_NOFLAGS, 0, offsetof(struct OCUUP_PF_Container, pf_ContainerList), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - 0, - &asn_DEF_pf_ContainerList_3, - 0, - { &asn_OER_memb_pf_ContainerList_constr_3, &asn_PER_memb_pf_ContainerList_constr_3, memb_pf_ContainerList_constraint_1 }, - 0, 0, /* No default value */ - "pf-ContainerList" - }, -}; -static const int asn_MAP_OCUUP_PF_Container_oms_1[] = { 0 }; -static const ber_tlv_tag_t asn_DEF_OCUUP_PF_Container_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_OCUUP_PF_Container_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* gNB-CU-UP-Name */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* pf-ContainerList */ -}; -asn_SEQUENCE_specifics_t asn_SPC_OCUUP_PF_Container_specs_1 = { - sizeof(struct OCUUP_PF_Container), - offsetof(struct OCUUP_PF_Container, _asn_ctx), - asn_MAP_OCUUP_PF_Container_tag2el_1, - 2, /* Count of tags in the map */ - asn_MAP_OCUUP_PF_Container_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 2, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_OCUUP_PF_Container = { - "OCUUP-PF-Container", - "OCUUP-PF-Container", - &asn_OP_SEQUENCE, - asn_DEF_OCUUP_PF_Container_tags_1, - sizeof(asn_DEF_OCUUP_PF_Container_tags_1) - /sizeof(asn_DEF_OCUUP_PF_Container_tags_1[0]), /* 1 */ - asn_DEF_OCUUP_PF_Container_tags_1, /* Same as above */ - sizeof(asn_DEF_OCUUP_PF_Container_tags_1) - /sizeof(asn_DEF_OCUUP_PF_Container_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_OCUUP_PF_Container_1, - 2, /* Elements count */ - &asn_SPC_OCUUP_PF_Container_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/OCUUP-PF-Container.h b/e2sim/previous/e2apv1sim/ASN1c/OCUUP-PF-Container.h deleted file mode 100644 index 9f19985..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/OCUUP-PF-Container.h +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _OCUUP_PF_Container_H_ -#define _OCUUP_PF_Container_H_ - - -#include - -/* Including external dependencies */ -#include "GNB-CU-UP-Name.h" -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct PF_ContainerListItem; - -/* OCUUP-PF-Container */ -typedef struct OCUUP_PF_Container { - GNB_CU_UP_Name_t *gNB_CU_UP_Name; /* OPTIONAL */ - struct OCUUP_PF_Container__pf_ContainerList { - A_SEQUENCE_OF(struct PF_ContainerListItem) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } pf_ContainerList; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} OCUUP_PF_Container_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_OCUUP_PF_Container; -extern asn_SEQUENCE_specifics_t asn_SPC_OCUUP_PF_Container_specs_1; -extern asn_TYPE_member_t asn_MBR_OCUUP_PF_Container_1[2]; - -#ifdef __cplusplus -} -#endif - -/* Referred external types */ -#include "PF-ContainerListItem.h" - -#endif /* _OCUUP_PF_Container_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ASN1c/ODU-PF-Container.c b/e2sim/previous/e2apv1sim/ASN1c/ODU-PF-Container.c deleted file mode 100644 index a28d59a..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/ODU-PF-Container.c +++ /dev/null @@ -1,129 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "ODU-PF-Container.h" - -static int -memb_cellResourceReportList_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - /* Determine the number of elements */ - size = _A_CSEQUENCE_FROM_VOID(sptr)->count; - - if((size >= 1 && size <= 512)) { - /* Perform validation of the inner elements */ - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_oer_constraints_t asn_OER_type_cellResourceReportList_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..512)) */}; -static asn_per_constraints_t asn_PER_type_cellResourceReportList_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 9, 9, 1, 512 } /* (SIZE(1..512)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_cellResourceReportList_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..512)) */}; -static asn_per_constraints_t asn_PER_memb_cellResourceReportList_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 9, 9, 1, 512 } /* (SIZE(1..512)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_cellResourceReportList_2[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CellResourceReportListItem, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_cellResourceReportList_tags_2[] = { - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_cellResourceReportList_specs_2 = { - sizeof(struct ODU_PF_Container__cellResourceReportList), - offsetof(struct ODU_PF_Container__cellResourceReportList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_cellResourceReportList_2 = { - "cellResourceReportList", - "cellResourceReportList", - &asn_OP_SEQUENCE_OF, - asn_DEF_cellResourceReportList_tags_2, - sizeof(asn_DEF_cellResourceReportList_tags_2) - /sizeof(asn_DEF_cellResourceReportList_tags_2[0]) - 1, /* 1 */ - asn_DEF_cellResourceReportList_tags_2, /* Same as above */ - sizeof(asn_DEF_cellResourceReportList_tags_2) - /sizeof(asn_DEF_cellResourceReportList_tags_2[0]), /* 2 */ - { &asn_OER_type_cellResourceReportList_constr_2, &asn_PER_type_cellResourceReportList_constr_2, SEQUENCE_OF_constraint }, - asn_MBR_cellResourceReportList_2, - 1, /* Single element */ - &asn_SPC_cellResourceReportList_specs_2 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ODU_PF_Container_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct ODU_PF_Container, cellResourceReportList), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - 0, - &asn_DEF_cellResourceReportList_2, - 0, - { &asn_OER_memb_cellResourceReportList_constr_2, &asn_PER_memb_cellResourceReportList_constr_2, memb_cellResourceReportList_constraint_1 }, - 0, 0, /* No default value */ - "cellResourceReportList" - }, -}; -static const ber_tlv_tag_t asn_DEF_ODU_PF_Container_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ODU_PF_Container_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* cellResourceReportList */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ODU_PF_Container_specs_1 = { - sizeof(struct ODU_PF_Container), - offsetof(struct ODU_PF_Container, _asn_ctx), - asn_MAP_ODU_PF_Container_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ODU_PF_Container = { - "ODU-PF-Container", - "ODU-PF-Container", - &asn_OP_SEQUENCE, - asn_DEF_ODU_PF_Container_tags_1, - sizeof(asn_DEF_ODU_PF_Container_tags_1) - /sizeof(asn_DEF_ODU_PF_Container_tags_1[0]), /* 1 */ - asn_DEF_ODU_PF_Container_tags_1, /* Same as above */ - sizeof(asn_DEF_ODU_PF_Container_tags_1) - /sizeof(asn_DEF_ODU_PF_Container_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ODU_PF_Container_1, - 1, /* Elements count */ - &asn_SPC_ODU_PF_Container_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/ODU-PF-Container.h b/e2sim/previous/e2apv1sim/ASN1c/ODU-PF-Container.h deleted file mode 100644 index 4da50a3..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/ODU-PF-Container.h +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _ODU_PF_Container_H_ -#define _ODU_PF_Container_H_ - - -#include - -/* Including external dependencies */ -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct CellResourceReportListItem; - -/* ODU-PF-Container */ -typedef struct ODU_PF_Container { - struct ODU_PF_Container__cellResourceReportList { - A_SEQUENCE_OF(struct CellResourceReportListItem) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } cellResourceReportList; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ODU_PF_Container_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ODU_PF_Container; -extern asn_SEQUENCE_specifics_t asn_SPC_ODU_PF_Container_specs_1; -extern asn_TYPE_member_t asn_MBR_ODU_PF_Container_1[1]; - -#ifdef __cplusplus -} -#endif - -/* Referred external types */ -#include "CellResourceReportListItem.h" - -#endif /* _ODU_PF_Container_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ASN1c/OPEN_TYPE.c b/e2sim/previous/e2apv1sim/ASN1c/OPEN_TYPE.c deleted file mode 100644 index a54e99c..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/OPEN_TYPE.c +++ /dev/null @@ -1,509 +0,0 @@ -/* - * Copyright (c) 2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include -#include -#include - -asn_TYPE_operation_t asn_OP_OPEN_TYPE = { - OPEN_TYPE_free, - OPEN_TYPE_print, - OPEN_TYPE_compare, - OPEN_TYPE_decode_ber, - OPEN_TYPE_encode_der, - OPEN_TYPE_decode_xer, - OPEN_TYPE_encode_xer, -#ifdef ASN_DISABLE_OER_SUPPORT - 0, 0, /* No OER support, use "-gen-OER" to enable */ -#else - OPEN_TYPE_decode_oer, - OPEN_TYPE_encode_oer, -#endif -#ifdef ASN_DISABLE_PER_SUPPORT - 0, 0, 0, 0, -#else - OPEN_TYPE_decode_uper, - OPEN_TYPE_encode_uper, - OPEN_TYPE_decode_aper, - OPEN_TYPE_encode_aper, -#endif - 0, /* Random fill is not supported for open type */ - 0 /* Use generic outmost tag fetcher */ -}; - -#undef ADVANCE -#define ADVANCE(num_bytes) \ - do { \ - size_t num = num_bytes; \ - ptr = ((const char *)ptr) + num; \ - size -= num; \ - consumed_myself += num; \ - } while(0) - -asn_dec_rval_t -OPEN_TYPE_ber_get(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void *sptr, - const asn_TYPE_member_t *elm, const void *ptr, size_t size) { - size_t consumed_myself = 0; - asn_type_selector_result_t selected; - void *memb_ptr; /* Pointer to the member */ - void **memb_ptr2; /* Pointer to that pointer */ - void *inner_value; - asn_dec_rval_t rv; - - if(!(elm->flags & ATF_OPEN_TYPE)) { - ASN__DECODE_FAILED; - } - - if(!elm->type_selector) { - ASN_DEBUG("Type selector is not defined for Open Type %s->%s->%s", - td->name, elm->name, elm->type->name); - ASN__DECODE_FAILED; - } - - selected = elm->type_selector(td, sptr); - if(!selected.presence_index) { - ASN__DECODE_FAILED; - } - - /* Fetch the pointer to this member */ - if(elm->flags & ATF_POINTER) { - memb_ptr2 = (void **)((char *)sptr + elm->memb_offset); - } else { - memb_ptr = (char *)sptr + elm->memb_offset; - memb_ptr2 = &memb_ptr; - } - if(*memb_ptr2 != NULL) { - /* Make sure we reset the structure first before encoding */ - if(CHOICE_variant_set_presence(elm->type, *memb_ptr2, 0) != 0) { - ASN__DECODE_FAILED; - } - } - - inner_value = - (char *)*memb_ptr2 - + elm->type->elements[selected.presence_index - 1].memb_offset; - - ASN_DEBUG("presence %d\n", selected.presence_index); - - rv = selected.type_descriptor->op->ber_decoder( - opt_codec_ctx, selected.type_descriptor, &inner_value, ptr, size, - elm->tag_mode); - ADVANCE(rv.consumed); - rv.consumed = 0; - switch(rv.code) { - case RC_OK: - if(CHOICE_variant_set_presence(elm->type, *memb_ptr2, - selected.presence_index) - == 0) { - rv.code = RC_OK; - rv.consumed = consumed_myself; - return rv; - } else { - /* Oh, now a full-blown failure failure */ - } - /* Fall through */ - case RC_FAIL: - rv.consumed = consumed_myself; - /* Fall through */ - case RC_WMORE: - break; - } - - if(*memb_ptr2) { - if(elm->flags & ATF_POINTER) { - ASN_STRUCT_FREE(*selected.type_descriptor, inner_value); - *memb_ptr2 = NULL; - } else { - ASN_STRUCT_RESET(*selected.type_descriptor, - inner_value); - } - } - return rv; -} - -asn_dec_rval_t -OPEN_TYPE_xer_get(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void *sptr, - const asn_TYPE_member_t *elm, const void *ptr, size_t size) { - size_t consumed_myself = 0; - asn_type_selector_result_t selected; - void *memb_ptr; /* Pointer to the member */ - void **memb_ptr2; /* Pointer to that pointer */ - void *inner_value; - asn_dec_rval_t rv; - - int xer_context = 0; - ssize_t ch_size; - pxer_chunk_type_e ch_type; - - if(!(elm->flags & ATF_OPEN_TYPE)) { - ASN__DECODE_FAILED; - } - - if(!elm->type_selector) { - ASN_DEBUG("Type selector is not defined for Open Type %s->%s->%s", - td->name, elm->name, elm->type->name); - ASN__DECODE_FAILED; - } - - selected = elm->type_selector(td, sptr); - if(!selected.presence_index) { - ASN__DECODE_FAILED; - } - - /* Fetch the pointer to this member */ - assert(elm->flags == ATF_OPEN_TYPE); - if(elm->flags & ATF_POINTER) { - memb_ptr2 = (void **)((char *)sptr + elm->memb_offset); - } else { - memb_ptr = (char *)sptr + elm->memb_offset; - memb_ptr2 = &memb_ptr; - } - if(*memb_ptr2 != NULL) { - /* Make sure we reset the structure first before encoding */ - if(CHOICE_variant_set_presence(elm->type, *memb_ptr2, 0) - != 0) { - ASN__DECODE_FAILED; - } - } - - /* - * Confirm wrapper. - */ - for(;;) { - ch_size = xer_next_token(&xer_context, ptr, size, &ch_type); - if(ch_size < 0) { - ASN__DECODE_FAILED; - } else { - switch(ch_type) { - case PXER_WMORE: - ASN__DECODE_STARVED; - case PXER_COMMENT: - case PXER_TEXT: - ADVANCE(ch_size); - continue; - case PXER_TAG: - break; - } - break; - } - } - - /* - * Wrapper value confirmed. - */ - switch(xer_check_tag(ptr, ch_size, elm->name)) { - case XCT_OPENING: - ADVANCE(ch_size); - break; - case XCT_BROKEN: - default: - ASN__DECODE_FAILED; - } - - inner_value = - (char *)*memb_ptr2 - + elm->type->elements[selected.presence_index - 1].memb_offset; - - rv = selected.type_descriptor->op->xer_decoder( - opt_codec_ctx, selected.type_descriptor, &inner_value, NULL, ptr, size); - ADVANCE(rv.consumed); - rv.consumed = 0; - switch(rv.code) { - case RC_OK: - if(CHOICE_variant_set_presence(elm->type, *memb_ptr2, - selected.presence_index) - == 0) { - break; - } else { - rv.code = RC_FAIL; - } - /* Fall through */ - case RC_FAIL: - /* Point to a best position where failure occurred */ - rv.consumed = consumed_myself; - /* Fall through */ - case RC_WMORE: - /* Wrt. rv.consumed==0: - * In case a genuine RC_WMORE, the whole Open Type decoding - * will have to be restarted. - */ - if(*memb_ptr2) { - if(elm->flags & ATF_POINTER) { - ASN_STRUCT_FREE(*selected.type_descriptor, inner_value); - *memb_ptr2 = NULL; - } else { - ASN_STRUCT_RESET(*selected.type_descriptor, - inner_value); - } - } - return rv; - } - - /* - * Finalize wrapper. - */ - for(;;) { - ch_size = xer_next_token(&xer_context, ptr, size, &ch_type); - if(ch_size < 0) { - ASN__DECODE_FAILED; - } else { - switch(ch_type) { - case PXER_WMORE: - ASN__DECODE_STARVED; - case PXER_COMMENT: - case PXER_TEXT: - ADVANCE(ch_size); - continue; - case PXER_TAG: - break; - } - break; - } - } - - /* - * Wrapper value confirmed. - */ - switch(xer_check_tag(ptr, ch_size, elm->name)) { - case XCT_CLOSING: - ADVANCE(ch_size); - break; - case XCT_BROKEN: - default: - ASN__DECODE_FAILED; - } - - rv.consumed += consumed_myself; - - return rv; -} - - -#ifndef ASN_DISABLE_PER_SUPPORT - -asn_dec_rval_t -OPEN_TYPE_uper_get(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void *sptr, - const asn_TYPE_member_t *elm, asn_per_data_t *pd) { - asn_type_selector_result_t selected; - void *memb_ptr; /* Pointer to the member */ - void **memb_ptr2; /* Pointer to that pointer */ - void *inner_value; - asn_dec_rval_t rv; - - if(!(elm->flags & ATF_OPEN_TYPE)) { - ASN__DECODE_FAILED; - } - - if(!elm->type_selector) { - ASN_DEBUG("Type selector is not defined for Open Type %s->%s->%s", - td->name, elm->name, elm->type->name); - ASN__DECODE_FAILED; - } - - selected = elm->type_selector(td, sptr); - if(!selected.presence_index) { - ASN__DECODE_FAILED; - } - - /* Fetch the pointer to this member */ - assert(elm->flags == ATF_OPEN_TYPE); - if(elm->flags & ATF_POINTER) { - memb_ptr2 = (void **)((char *)sptr + elm->memb_offset); - } else { - memb_ptr = (char *)sptr + elm->memb_offset; - memb_ptr2 = &memb_ptr; - } - if(*memb_ptr2 != NULL) { - /* Make sure we reset the structure first before encoding */ - if(CHOICE_variant_set_presence(elm->type, *memb_ptr2, 0) - != 0) { - ASN__DECODE_FAILED; - } - } - - inner_value = - (char *)*memb_ptr2 - + elm->type->elements[selected.presence_index - 1].memb_offset; - - rv = uper_open_type_get(opt_codec_ctx, selected.type_descriptor, NULL, - &inner_value, pd); - switch(rv.code) { - case RC_OK: - if(CHOICE_variant_set_presence(elm->type, *memb_ptr2, - selected.presence_index) - == 0) { - break; - } else { - rv.code = RC_FAIL; - } - /* Fall through */ - case RC_WMORE: - case RC_FAIL: - if(*memb_ptr2) { - if(elm->flags & ATF_POINTER) { - ASN_STRUCT_FREE(*selected.type_descriptor, inner_value); - *memb_ptr2 = NULL; - } else { - ASN_STRUCT_RESET(*selected.type_descriptor, - inner_value); - } - } - } - return rv; -} - -asn_enc_rval_t -OPEN_TYPE_encode_uper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_per_outp_t *po) { - const void *memb_ptr; /* Pointer to the member */ - asn_TYPE_member_t *elm; /* CHOICE's element */ - asn_enc_rval_t er = {0,0,0}; - unsigned present; - - (void)constraints; - - present = CHOICE_variant_get_presence(td, sptr); - if(present == 0 || present > td->elements_count) { - ASN__ENCODE_FAILED; - } else { - present--; - } - - ASN_DEBUG("Encoding %s OPEN TYPE element %d", td->name, present); - - elm = &td->elements[present]; - if(elm->flags & ATF_POINTER) { - /* Member is a pointer to another structure */ - memb_ptr = - *(const void *const *)((const char *)sptr + elm->memb_offset); - if(!memb_ptr) ASN__ENCODE_FAILED; - } else { - memb_ptr = (const char *)sptr + elm->memb_offset; - } - - if(uper_open_type_put(elm->type, NULL, memb_ptr, po) < 0) { - ASN__ENCODE_FAILED; - } - - er.encoded = 0; - ASN__ENCODED_OK(er); -} - -asn_dec_rval_t -OPEN_TYPE_aper_get(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void *sptr, - const asn_TYPE_member_t *elm, asn_per_data_t *pd) { - asn_type_selector_result_t selected; - void *memb_ptr; /* Pointer to the member */ - void **memb_ptr2; /* Pointer to that pointer */ - void *inner_value; - asn_dec_rval_t rv; - - if(!(elm->flags & ATF_OPEN_TYPE)) { - ASN__DECODE_FAILED; - } - - if(!elm->type_selector) { - ASN_DEBUG("Type selector is not defined for Open Type %s->%s->%s", - td->name, elm->name, elm->type->name); - ASN__DECODE_FAILED; - } - - selected = elm->type_selector(td, sptr); - if(!selected.presence_index) { - ASN__DECODE_FAILED; - } - - /* Fetch the pointer to this member */ - assert(elm->flags == ATF_OPEN_TYPE); - if(elm->flags & ATF_POINTER) { - memb_ptr2 = (void **)((char *)sptr + elm->memb_offset); - } else { - memb_ptr = (char *)sptr + elm->memb_offset; - memb_ptr2 = &memb_ptr; - } - if(*memb_ptr2 != NULL) { - /* Make sure we reset the structure first before encoding */ - if(CHOICE_variant_set_presence(elm->type, *memb_ptr2, 0) - != 0) { - ASN__DECODE_FAILED; - } - } - - inner_value = - (char *)*memb_ptr2 - + elm->type->elements[selected.presence_index - 1].memb_offset; - - rv = aper_open_type_get(opt_codec_ctx, selected.type_descriptor, NULL, - &inner_value, pd); - switch(rv.code) { - case RC_OK: - if(CHOICE_variant_set_presence(elm->type, *memb_ptr2, - selected.presence_index) - == 0) { - break; - } else { - rv.code = RC_FAIL; - } - /* Fall through */ - case RC_WMORE: - case RC_FAIL: - if(*memb_ptr2) { - if(elm->flags & ATF_POINTER) { - ASN_STRUCT_FREE(*selected.type_descriptor, inner_value); - *memb_ptr2 = NULL; - } else { - ASN_STRUCT_RESET(*selected.type_descriptor, - inner_value); - } - } - } - return rv; -} - -asn_enc_rval_t -OPEN_TYPE_encode_aper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_per_outp_t *po) { - const void *memb_ptr; /* Pointer to the member */ - asn_TYPE_member_t *elm; /* CHOICE's element */ - asn_enc_rval_t er = {0,0,0}; - unsigned present; - - (void)constraints; - - present = CHOICE_variant_get_presence(td, sptr); - if(present == 0 || present > td->elements_count) { - ASN__ENCODE_FAILED; - } else { - present--; - } - - ASN_DEBUG("Encoding %s OPEN TYPE element %d", td->name, present); - - elm = &td->elements[present]; - if(elm->flags & ATF_POINTER) { - /* Member is a pointer to another structure */ - memb_ptr = - *(const void *const *)((const char *)sptr + elm->memb_offset); - if(!memb_ptr) ASN__ENCODE_FAILED; - } else { - memb_ptr = (const char *)sptr + elm->memb_offset; - } - - if(aper_open_type_put(elm->type, NULL, memb_ptr, po) < 0) { - ASN__ENCODE_FAILED; - } - - er.encoded = 0; - ASN__ENCODED_OK(er); -} - -#endif /* ASN_DISABLE_PER_SUPPORT */ diff --git a/e2sim/previous/e2apv1sim/ASN1c/OPEN_TYPE.h b/e2sim/previous/e2apv1sim/ASN1c/OPEN_TYPE.h deleted file mode 100644 index b0d023c..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/OPEN_TYPE.h +++ /dev/null @@ -1,77 +0,0 @@ -/*- - * Copyright (c) 2017-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef ASN_OPEN_TYPE_H -#define ASN_OPEN_TYPE_H - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -#define OPEN_TYPE_free CHOICE_free -#define OPEN_TYPE_print CHOICE_print -#define OPEN_TYPE_compare CHOICE_compare -#define OPEN_TYPE_constraint CHOICE_constraint -#define OPEN_TYPE_decode_ber NULL -#define OPEN_TYPE_encode_der CHOICE_encode_der -#define OPEN_TYPE_decode_xer NULL -#define OPEN_TYPE_encode_xer CHOICE_encode_xer -#define OPEN_TYPE_decode_oer NULL -#define OPEN_TYPE_encode_oer CHOICE_encode_oer -#define OPEN_TYPE_decode_uper NULL -#define OPEN_TYPE_decode_aper NULL - -extern asn_TYPE_operation_t asn_OP_OPEN_TYPE; - -/* - * Decode an Open Type which is potentially constraiend - * by the other members of the parent structure. - */ -asn_dec_rval_t OPEN_TYPE_ber_get(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *parent_type, - void *parent_structure, - const asn_TYPE_member_t *element, - const void *ptr, size_t size); - -asn_dec_rval_t OPEN_TYPE_xer_get(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *parent_type, - void *parent_structure, - const asn_TYPE_member_t *element, - const void *ptr, size_t size); - -asn_dec_rval_t OPEN_TYPE_oer_get(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *parent_type, - void *parent_structure, - asn_TYPE_member_t *element, const void *ptr, - size_t size); - -asn_dec_rval_t OPEN_TYPE_uper_get(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *parent_type, - void *parent_structure, - const asn_TYPE_member_t *element, - asn_per_data_t *pd); - -asn_dec_rval_t OPEN_TYPE_aper_get(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *parent_type, - void *parent_structure, - const asn_TYPE_member_t *element, - asn_per_data_t *pd); - -asn_enc_rval_t OPEN_TYPE_encode_uper( - const asn_TYPE_descriptor_t *type_descriptor, - const asn_per_constraints_t *constraints, const void *struct_ptr, - asn_per_outp_t *per_output); - -asn_enc_rval_t OPEN_TYPE_encode_aper( - const asn_TYPE_descriptor_t *type_descriptor, - const asn_per_constraints_t *constraints, const void *struct_ptr, - asn_per_outp_t *per_output); - -#ifdef __cplusplus -} -#endif - -#endif /* ASN_OPEN_TYPE_H */ diff --git a/e2sim/previous/e2apv1sim/ASN1c/OPEN_TYPE_oer.c b/e2sim/previous/e2apv1sim/ASN1c/OPEN_TYPE_oer.c deleted file mode 100644 index dd2f5c6..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/OPEN_TYPE_oer.c +++ /dev/null @@ -1,92 +0,0 @@ -/* - * Copyright (c) 2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include -#include - -asn_dec_rval_t -OPEN_TYPE_oer_get(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void *sptr, - asn_TYPE_member_t *elm, const void *ptr, size_t size) { - asn_type_selector_result_t selected; - void *memb_ptr; /* Pointer to the member */ - void **memb_ptr2; /* Pointer to that pointer */ - void *inner_value; - asn_dec_rval_t rv; - size_t ot_ret; - - - if(!(elm->flags & ATF_OPEN_TYPE)) { - ASN__DECODE_FAILED; - } - - if(!elm->type_selector) { - ASN_DEBUG("Type selector is not defined for Open Type %s->%s->%s", - td->name, elm->name, elm->type->name); - ASN__DECODE_FAILED; - } - - selected = elm->type_selector(td, sptr); - if(!selected.presence_index) { - ASN__DECODE_FAILED; - } - - /* Fetch the pointer to this member */ - if(elm->flags & ATF_POINTER) { - memb_ptr2 = (void **)((char *)sptr + elm->memb_offset); - } else { - memb_ptr = (char *)sptr + elm->memb_offset; - memb_ptr2 = &memb_ptr; - } - if(*memb_ptr2 != NULL) { - /* Make sure we reset the structure first before encoding */ - if(CHOICE_variant_set_presence(elm->type, *memb_ptr2, 0) != 0) { - ASN__DECODE_FAILED; - } - } - - inner_value = - (char *)*memb_ptr2 - + elm->type->elements[selected.presence_index - 1].memb_offset; - - ot_ret = oer_open_type_get(opt_codec_ctx, selected.type_descriptor, NULL, - &inner_value, ptr, size); - switch(ot_ret) { - default: - if(CHOICE_variant_set_presence(elm->type, *memb_ptr2, - selected.presence_index) - == 0) { - rv.code = RC_OK; - rv.consumed = ot_ret; - return rv; - } else { - /* Oh, now a full-blown failure failure */ - } - /* Fall through */ - case -1: - rv.code = RC_FAIL; - rv.consumed = ot_ret; - break; - case 0: - rv.code = RC_WMORE; - rv.consumed = 0; - break; - } - - if(*memb_ptr2) { - const asn_CHOICE_specifics_t *specs = - selected.type_descriptor->specifics; - if(elm->flags & ATF_POINTER) { - ASN_STRUCT_FREE(*selected.type_descriptor, inner_value); - *memb_ptr2 = NULL; - } else { - ASN_STRUCT_FREE_CONTENTS_ONLY(*selected.type_descriptor, - inner_value); - memset(*memb_ptr2, 0, specs->struct_size); - } - } - return rv; -} diff --git a/e2sim/previous/e2apv1sim/ASN1c/PF-Container.c b/e2sim/previous/e2apv1sim/ASN1c/PF-Container.c deleted file mode 100644 index ce46255..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/PF-Container.c +++ /dev/null @@ -1,75 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "PF-Container.h" - -static asn_oer_constraints_t asn_OER_type_PF_Container_constr_1 CC_NOTUSED = { - { 0, 0 }, - -1}; -asn_per_constraints_t asn_PER_type_PF_Container_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 2 } /* (0..2,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_PF_Container_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct PF_Container, choice.oDU), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ODU_PF_Container, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "oDU" - }, - { ATF_NOFLAGS, 0, offsetof(struct PF_Container, choice.oCU_CP), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_OCUCP_PF_Container, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "oCU-CP" - }, - { ATF_NOFLAGS, 0, offsetof(struct PF_Container, choice.oCU_UP), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_OCUUP_PF_Container, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "oCU-UP" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_PF_Container_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* oDU */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* oCU-CP */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* oCU-UP */ -}; -asn_CHOICE_specifics_t asn_SPC_PF_Container_specs_1 = { - sizeof(struct PF_Container), - offsetof(struct PF_Container, _asn_ctx), - offsetof(struct PF_Container, present), - sizeof(((struct PF_Container *)0)->present), - asn_MAP_PF_Container_tag2el_1, - 3, /* Count of tags in the map */ - 0, 0, - 3 /* Extensions start */ -}; -asn_TYPE_descriptor_t asn_DEF_PF_Container = { - "PF-Container", - "PF-Container", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { &asn_OER_type_PF_Container_constr_1, &asn_PER_type_PF_Container_constr_1, CHOICE_constraint }, - asn_MBR_PF_Container_1, - 3, /* Elements count */ - &asn_SPC_PF_Container_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/PF-Container.h b/e2sim/previous/e2apv1sim/ASN1c/PF-Container.h deleted file mode 100644 index 853642a..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/PF-Container.h +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _PF_Container_H_ -#define _PF_Container_H_ - - -#include - -/* Including external dependencies */ -#include "ODU-PF-Container.h" -#include "OCUCP-PF-Container.h" -#include "OCUUP-PF-Container.h" -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum PF_Container_PR { - PF_Container_PR_NOTHING, /* No components present */ - PF_Container_PR_oDU, - PF_Container_PR_oCU_CP, - PF_Container_PR_oCU_UP - /* Extensions may appear below */ - -} PF_Container_PR; - -/* PF-Container */ -typedef struct PF_Container { - PF_Container_PR present; - union PF_Container_u { - ODU_PF_Container_t oDU; - OCUCP_PF_Container_t oCU_CP; - OCUUP_PF_Container_t oCU_UP; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} PF_Container_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_PF_Container; -extern asn_CHOICE_specifics_t asn_SPC_PF_Container_specs_1; -extern asn_TYPE_member_t asn_MBR_PF_Container_1[3]; -extern asn_per_constraints_t asn_PER_type_PF_Container_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _PF_Container_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ASN1c/PF-ContainerListItem.c b/e2sim/previous/e2apv1sim/ASN1c/PF-ContainerListItem.c deleted file mode 100644 index e3aad2c..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/PF-ContainerListItem.c +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "PF-ContainerListItem.h" - -asn_TYPE_member_t asn_MBR_PF_ContainerListItem_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct PF_ContainerListItem, interface_type), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NI_Type, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "interface-type" - }, - { ATF_NOFLAGS, 0, offsetof(struct PF_ContainerListItem, o_CU_UP_PM_Container), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_CUUPMeasurement_Container, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "o-CU-UP-PM-Container" - }, -}; -static const ber_tlv_tag_t asn_DEF_PF_ContainerListItem_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_PF_ContainerListItem_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* interface-type */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* o-CU-UP-PM-Container */ -}; -asn_SEQUENCE_specifics_t asn_SPC_PF_ContainerListItem_specs_1 = { - sizeof(struct PF_ContainerListItem), - offsetof(struct PF_ContainerListItem, _asn_ctx), - asn_MAP_PF_ContainerListItem_tag2el_1, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 2, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_PF_ContainerListItem = { - "PF-ContainerListItem", - "PF-ContainerListItem", - &asn_OP_SEQUENCE, - asn_DEF_PF_ContainerListItem_tags_1, - sizeof(asn_DEF_PF_ContainerListItem_tags_1) - /sizeof(asn_DEF_PF_ContainerListItem_tags_1[0]), /* 1 */ - asn_DEF_PF_ContainerListItem_tags_1, /* Same as above */ - sizeof(asn_DEF_PF_ContainerListItem_tags_1) - /sizeof(asn_DEF_PF_ContainerListItem_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_PF_ContainerListItem_1, - 2, /* Elements count */ - &asn_SPC_PF_ContainerListItem_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/PF-ContainerListItem.h b/e2sim/previous/e2apv1sim/ASN1c/PF-ContainerListItem.h deleted file mode 100644 index bc4495e..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/PF-ContainerListItem.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _PF_ContainerListItem_H_ -#define _PF_ContainerListItem_H_ - - -#include - -/* Including external dependencies */ -#include "NI-Type.h" -#include "CUUPMeasurement-Container.h" -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* PF-ContainerListItem */ -typedef struct PF_ContainerListItem { - NI_Type_t interface_type; - CUUPMeasurement_Container_t o_CU_UP_PM_Container; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} PF_ContainerListItem_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_PF_ContainerListItem; -extern asn_SEQUENCE_specifics_t asn_SPC_PF_ContainerListItem_specs_1; -extern asn_TYPE_member_t asn_MBR_PF_ContainerListItem_1[2]; - -#ifdef __cplusplus -} -#endif - -#endif /* _PF_ContainerListItem_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ASN1c/PLMN-Identity.c b/e2sim/previous/e2apv1sim/ASN1c/PLMN-Identity.c deleted file mode 100644 index e3754f8..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/PLMN-Identity.c +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "PLMN-Identity.h" - -int -PLMN_Identity_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - size = st->size; - - if((size == 3)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using OCTET_STRING, - * so here we adjust the DEF accordingly. - */ -static asn_oer_constraints_t asn_OER_type_PLMN_Identity_constr_1 CC_NOTUSED = { - { 0, 0 }, - 3 /* (SIZE(3..3)) */}; -asn_per_constraints_t asn_PER_type_PLMN_Identity_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 0, 0, 3, 3 } /* (SIZE(3..3)) */, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_PLMN_Identity_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_PLMN_Identity = { - "PLMN-Identity", - "PLMN-Identity", - &asn_OP_OCTET_STRING, - asn_DEF_PLMN_Identity_tags_1, - sizeof(asn_DEF_PLMN_Identity_tags_1) - /sizeof(asn_DEF_PLMN_Identity_tags_1[0]), /* 1 */ - asn_DEF_PLMN_Identity_tags_1, /* Same as above */ - sizeof(asn_DEF_PLMN_Identity_tags_1) - /sizeof(asn_DEF_PLMN_Identity_tags_1[0]), /* 1 */ - { &asn_OER_type_PLMN_Identity_constr_1, &asn_PER_type_PLMN_Identity_constr_1, PLMN_Identity_constraint }, - 0, 0, /* No members */ - &asn_SPC_OCTET_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/PLMN-Identity.h b/e2sim/previous/e2apv1sim/ASN1c/PLMN-Identity.h deleted file mode 100644 index 6835400..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/PLMN-Identity.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _PLMN_Identity_H_ -#define _PLMN_Identity_H_ - - -#include - -/* Including external dependencies */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* PLMN-Identity */ -typedef OCTET_STRING_t PLMN_Identity_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_PLMN_Identity_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_PLMN_Identity; -asn_struct_free_f PLMN_Identity_free; -asn_struct_print_f PLMN_Identity_print; -asn_constr_check_f PLMN_Identity_constraint; -ber_type_decoder_f PLMN_Identity_decode_ber; -der_type_encoder_f PLMN_Identity_encode_der; -xer_type_decoder_f PLMN_Identity_decode_xer; -xer_type_encoder_f PLMN_Identity_encode_xer; -oer_type_decoder_f PLMN_Identity_decode_oer; -oer_type_encoder_f PLMN_Identity_encode_oer; -per_type_decoder_f PLMN_Identity_decode_uper; -per_type_encoder_f PLMN_Identity_encode_uper; -per_type_decoder_f PLMN_Identity_decode_aper; -per_type_encoder_f PLMN_Identity_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _PLMN_Identity_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ASN1c/PM-Containers-List.c b/e2sim/previous/e2apv1sim/ASN1c/PM-Containers-List.c deleted file mode 100644 index 326ec75..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/PM-Containers-List.c +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "PM-Containers-List.h" - -asn_TYPE_member_t asn_MBR_PM_Containers_List_1[] = { - { ATF_POINTER, 2, offsetof(struct PM_Containers_List, performanceContainer), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_PF_Container, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "performanceContainer" - }, - { ATF_POINTER, 1, offsetof(struct PM_Containers_List, theRANContainer), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RAN_Container, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "theRANContainer" - }, -}; -static const int asn_MAP_PM_Containers_List_oms_1[] = { 0, 1 }; -static const ber_tlv_tag_t asn_DEF_PM_Containers_List_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_PM_Containers_List_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* performanceContainer */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* theRANContainer */ -}; -asn_SEQUENCE_specifics_t asn_SPC_PM_Containers_List_specs_1 = { - sizeof(struct PM_Containers_List), - offsetof(struct PM_Containers_List, _asn_ctx), - asn_MAP_PM_Containers_List_tag2el_1, - 2, /* Count of tags in the map */ - asn_MAP_PM_Containers_List_oms_1, /* Optional members */ - 2, 0, /* Root/Additions */ - 2, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_PM_Containers_List = { - "PM-Containers-List", - "PM-Containers-List", - &asn_OP_SEQUENCE, - asn_DEF_PM_Containers_List_tags_1, - sizeof(asn_DEF_PM_Containers_List_tags_1) - /sizeof(asn_DEF_PM_Containers_List_tags_1[0]), /* 1 */ - asn_DEF_PM_Containers_List_tags_1, /* Same as above */ - sizeof(asn_DEF_PM_Containers_List_tags_1) - /sizeof(asn_DEF_PM_Containers_List_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_PM_Containers_List_1, - 2, /* Elements count */ - &asn_SPC_PM_Containers_List_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/PM-Containers-List.h b/e2sim/previous/e2apv1sim/ASN1c/PM-Containers-List.h deleted file mode 100644 index 0a99c3b..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/PM-Containers-List.h +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _PM_Containers_List_H_ -#define _PM_Containers_List_H_ - - -#include - -/* Including external dependencies */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct PF_Container; -struct RAN_Container; - -/* PM-Containers-List */ -typedef struct PM_Containers_List { - struct PF_Container *performanceContainer; /* OPTIONAL */ - struct RAN_Container *theRANContainer; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} PM_Containers_List_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_PM_Containers_List; -extern asn_SEQUENCE_specifics_t asn_SPC_PM_Containers_List_specs_1; -extern asn_TYPE_member_t asn_MBR_PM_Containers_List_1[2]; - -#ifdef __cplusplus -} -#endif - -/* Referred external types */ -#include "PF-Container.h" -#include "RAN-Container.h" - -#endif /* _PM_Containers_List_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ASN1c/PerQCIReportListItem.c b/e2sim/previous/e2apv1sim/ASN1c/PerQCIReportListItem.c deleted file mode 100644 index 1c57dfd..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/PerQCIReportListItem.c +++ /dev/null @@ -1,171 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "PerQCIReportListItem.h" - -static int -memb_qci_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 255)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_dl_PRBUsage_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 100)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_ul_PRBUsage_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 100)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_oer_constraints_t asn_OER_memb_qci_constr_2 CC_NOTUSED = { - { 1, 1 } /* (0..255) */, - -1}; -static asn_per_constraints_t asn_PER_memb_qci_constr_2 CC_NOTUSED = { - { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_dl_PRBUsage_constr_3 CC_NOTUSED = { - { 1, 1 } /* (0..100) */, - -1}; -static asn_per_constraints_t asn_PER_memb_dl_PRBUsage_constr_3 CC_NOTUSED = { - { APC_CONSTRAINED, 7, 7, 0, 100 } /* (0..100) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_ul_PRBUsage_constr_4 CC_NOTUSED = { - { 1, 1 } /* (0..100) */, - -1}; -static asn_per_constraints_t asn_PER_memb_ul_PRBUsage_constr_4 CC_NOTUSED = { - { APC_CONSTRAINED, 7, 7, 0, 100 } /* (0..100) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_PerQCIReportListItem_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct PerQCIReportListItem, qci), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_qci_constr_2, &asn_PER_memb_qci_constr_2, memb_qci_constraint_1 }, - 0, 0, /* No default value */ - "qci" - }, - { ATF_POINTER, 2, offsetof(struct PerQCIReportListItem, dl_PRBUsage), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_dl_PRBUsage_constr_3, &asn_PER_memb_dl_PRBUsage_constr_3, memb_dl_PRBUsage_constraint_1 }, - 0, 0, /* No default value */ - "dl-PRBUsage" - }, - { ATF_POINTER, 1, offsetof(struct PerQCIReportListItem, ul_PRBUsage), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_ul_PRBUsage_constr_4, &asn_PER_memb_ul_PRBUsage_constr_4, memb_ul_PRBUsage_constraint_1 }, - 0, 0, /* No default value */ - "ul-PRBUsage" - }, -}; -static const int asn_MAP_PerQCIReportListItem_oms_1[] = { 1, 2 }; -static const ber_tlv_tag_t asn_DEF_PerQCIReportListItem_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_PerQCIReportListItem_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* qci */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* dl-PRBUsage */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* ul-PRBUsage */ -}; -asn_SEQUENCE_specifics_t asn_SPC_PerQCIReportListItem_specs_1 = { - sizeof(struct PerQCIReportListItem), - offsetof(struct PerQCIReportListItem, _asn_ctx), - asn_MAP_PerQCIReportListItem_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_PerQCIReportListItem_oms_1, /* Optional members */ - 2, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_PerQCIReportListItem = { - "PerQCIReportListItem", - "PerQCIReportListItem", - &asn_OP_SEQUENCE, - asn_DEF_PerQCIReportListItem_tags_1, - sizeof(asn_DEF_PerQCIReportListItem_tags_1) - /sizeof(asn_DEF_PerQCIReportListItem_tags_1[0]), /* 1 */ - asn_DEF_PerQCIReportListItem_tags_1, /* Same as above */ - sizeof(asn_DEF_PerQCIReportListItem_tags_1) - /sizeof(asn_DEF_PerQCIReportListItem_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_PerQCIReportListItem_1, - 3, /* Elements count */ - &asn_SPC_PerQCIReportListItem_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/PerQCIReportListItem.h b/e2sim/previous/e2apv1sim/ASN1c/PerQCIReportListItem.h deleted file mode 100644 index 32508ea..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/PerQCIReportListItem.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _PerQCIReportListItem_H_ -#define _PerQCIReportListItem_H_ - - -#include - -/* Including external dependencies */ -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* PerQCIReportListItem */ -typedef struct PerQCIReportListItem { - long qci; - long *dl_PRBUsage; /* OPTIONAL */ - long *ul_PRBUsage; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} PerQCIReportListItem_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_PerQCIReportListItem; -extern asn_SEQUENCE_specifics_t asn_SPC_PerQCIReportListItem_specs_1; -extern asn_TYPE_member_t asn_MBR_PerQCIReportListItem_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _PerQCIReportListItem_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ASN1c/PerQCIReportListItemFormat.c b/e2sim/previous/e2apv1sim/ASN1c/PerQCIReportListItemFormat.c deleted file mode 100644 index 239cbd8..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/PerQCIReportListItemFormat.c +++ /dev/null @@ -1,183 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "PerQCIReportListItemFormat.h" - -static int -memb_qci_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 255)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_pDCPBytesDL_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const INTEGER_t *st = (const INTEGER_t *)sptr; - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if(asn_INTEGER2long(st, &value)) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value too large (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if((value >= 0 && value <= 10000000000)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_pDCPBytesUL_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const INTEGER_t *st = (const INTEGER_t *)sptr; - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if(asn_INTEGER2long(st, &value)) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value too large (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if((value >= 0 && value <= 10000000000)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_oer_constraints_t asn_OER_memb_qci_constr_2 CC_NOTUSED = { - { 1, 1 } /* (0..255) */, - -1}; -static asn_per_constraints_t asn_PER_memb_qci_constr_2 CC_NOTUSED = { - { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_pDCPBytesDL_constr_3 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_memb_pDCPBytesDL_constr_3 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 34, -1, 0, 10000000000 } /* (0..10000000000,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_pDCPBytesUL_constr_4 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_memb_pDCPBytesUL_constr_4 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 34, -1, 0, 10000000000 } /* (0..10000000000,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_PerQCIReportListItemFormat_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct PerQCIReportListItemFormat, qci), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_qci_constr_2, &asn_PER_memb_qci_constr_2, memb_qci_constraint_1 }, - 0, 0, /* No default value */ - "qci" - }, - { ATF_POINTER, 2, offsetof(struct PerQCIReportListItemFormat, pDCPBytesDL), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_INTEGER, - 0, - { &asn_OER_memb_pDCPBytesDL_constr_3, &asn_PER_memb_pDCPBytesDL_constr_3, memb_pDCPBytesDL_constraint_1 }, - 0, 0, /* No default value */ - "pDCPBytesDL" - }, - { ATF_POINTER, 1, offsetof(struct PerQCIReportListItemFormat, pDCPBytesUL), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_INTEGER, - 0, - { &asn_OER_memb_pDCPBytesUL_constr_4, &asn_PER_memb_pDCPBytesUL_constr_4, memb_pDCPBytesUL_constraint_1 }, - 0, 0, /* No default value */ - "pDCPBytesUL" - }, -}; -static const int asn_MAP_PerQCIReportListItemFormat_oms_1[] = { 1, 2 }; -static const ber_tlv_tag_t asn_DEF_PerQCIReportListItemFormat_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_PerQCIReportListItemFormat_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* qci */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* pDCPBytesDL */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* pDCPBytesUL */ -}; -asn_SEQUENCE_specifics_t asn_SPC_PerQCIReportListItemFormat_specs_1 = { - sizeof(struct PerQCIReportListItemFormat), - offsetof(struct PerQCIReportListItemFormat, _asn_ctx), - asn_MAP_PerQCIReportListItemFormat_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_PerQCIReportListItemFormat_oms_1, /* Optional members */ - 2, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_PerQCIReportListItemFormat = { - "PerQCIReportListItemFormat", - "PerQCIReportListItemFormat", - &asn_OP_SEQUENCE, - asn_DEF_PerQCIReportListItemFormat_tags_1, - sizeof(asn_DEF_PerQCIReportListItemFormat_tags_1) - /sizeof(asn_DEF_PerQCIReportListItemFormat_tags_1[0]), /* 1 */ - asn_DEF_PerQCIReportListItemFormat_tags_1, /* Same as above */ - sizeof(asn_DEF_PerQCIReportListItemFormat_tags_1) - /sizeof(asn_DEF_PerQCIReportListItemFormat_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_PerQCIReportListItemFormat_1, - 3, /* Elements count */ - &asn_SPC_PerQCIReportListItemFormat_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/PerQCIReportListItemFormat.h b/e2sim/previous/e2apv1sim/ASN1c/PerQCIReportListItemFormat.h deleted file mode 100644 index 7fb1ecf..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/PerQCIReportListItemFormat.h +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _PerQCIReportListItemFormat_H_ -#define _PerQCIReportListItemFormat_H_ - - -#include - -/* Including external dependencies */ -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* PerQCIReportListItemFormat */ -typedef struct PerQCIReportListItemFormat { - long qci; - INTEGER_t *pDCPBytesDL; /* OPTIONAL */ - INTEGER_t *pDCPBytesUL; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} PerQCIReportListItemFormat_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_PerQCIReportListItemFormat; -extern asn_SEQUENCE_specifics_t asn_SPC_PerQCIReportListItemFormat_specs_1; -extern asn_TYPE_member_t asn_MBR_PerQCIReportListItemFormat_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _PerQCIReportListItemFormat_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ASN1c/PlmnID-List.c b/e2sim/previous/e2apv1sim/ASN1c/PlmnID-List.c deleted file mode 100644 index 2126cf5..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/PlmnID-List.c +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "PlmnID-List.h" - -asn_TYPE_member_t asn_MBR_PlmnID_List_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct PlmnID_List, pLMN_Identity), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_PLMN_Identity, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "pLMN-Identity" - }, - { ATF_POINTER, 2, offsetof(struct PlmnID_List, cu_UP_PM_5GC), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_FGC_CUUP_PM_Format, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "cu-UP-PM-5GC" - }, - { ATF_POINTER, 1, offsetof(struct PlmnID_List, cu_UP_PM_EPC), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_EPC_CUUP_PM_Format, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "cu-UP-PM-EPC" - }, -}; -static const int asn_MAP_PlmnID_List_oms_1[] = { 1, 2 }; -static const ber_tlv_tag_t asn_DEF_PlmnID_List_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_PlmnID_List_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pLMN-Identity */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* cu-UP-PM-5GC */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* cu-UP-PM-EPC */ -}; -asn_SEQUENCE_specifics_t asn_SPC_PlmnID_List_specs_1 = { - sizeof(struct PlmnID_List), - offsetof(struct PlmnID_List, _asn_ctx), - asn_MAP_PlmnID_List_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_PlmnID_List_oms_1, /* Optional members */ - 2, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_PlmnID_List = { - "PlmnID-List", - "PlmnID-List", - &asn_OP_SEQUENCE, - asn_DEF_PlmnID_List_tags_1, - sizeof(asn_DEF_PlmnID_List_tags_1) - /sizeof(asn_DEF_PlmnID_List_tags_1[0]), /* 1 */ - asn_DEF_PlmnID_List_tags_1, /* Same as above */ - sizeof(asn_DEF_PlmnID_List_tags_1) - /sizeof(asn_DEF_PlmnID_List_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_PlmnID_List_1, - 3, /* Elements count */ - &asn_SPC_PlmnID_List_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/PlmnID-List.h b/e2sim/previous/e2apv1sim/ASN1c/PlmnID-List.h deleted file mode 100644 index 79d1dd5..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/PlmnID-List.h +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _PlmnID_List_H_ -#define _PlmnID_List_H_ - - -#include - -/* Including external dependencies */ -#include "PLMN-Identity.h" -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct FGC_CUUP_PM_Format; -struct EPC_CUUP_PM_Format; - -/* PlmnID-List */ -typedef struct PlmnID_List { - PLMN_Identity_t pLMN_Identity; - struct FGC_CUUP_PM_Format *cu_UP_PM_5GC; /* OPTIONAL */ - struct EPC_CUUP_PM_Format *cu_UP_PM_EPC; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} PlmnID_List_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_PlmnID_List; -extern asn_SEQUENCE_specifics_t asn_SPC_PlmnID_List_specs_1; -extern asn_TYPE_member_t asn_MBR_PlmnID_List_1[3]; - -#ifdef __cplusplus -} -#endif - -/* Referred external types */ -#include "FGC-CUUP-PM-Format.h" -#include "EPC-CUUP-PM-Format.h" - -#endif /* _PlmnID_List_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ASN1c/Presence.c b/e2sim/previous/e2apv1sim/ASN1c/Presence.c deleted file mode 100644 index 4f55ae3..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/Presence.c +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-CommonDataTypes" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "Presence.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_Presence_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_Presence_value2enum_1[] = { - { 0, 8, "optional" }, - { 1, 11, "conditional" }, - { 2, 9, "mandatory" } -}; -static const unsigned int asn_MAP_Presence_enum2value_1[] = { - 1, /* conditional(1) */ - 2, /* mandatory(2) */ - 0 /* optional(0) */ -}; -const asn_INTEGER_specifics_t asn_SPC_Presence_specs_1 = { - asn_MAP_Presence_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_Presence_enum2value_1, /* N => "tag"; sorted by N */ - 3, /* Number of elements in the maps */ - 0, /* Enumeration is not extensible */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_Presence_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_Presence = { - "Presence", - "Presence", - &asn_OP_NativeEnumerated, - asn_DEF_Presence_tags_1, - sizeof(asn_DEF_Presence_tags_1) - /sizeof(asn_DEF_Presence_tags_1[0]), /* 1 */ - asn_DEF_Presence_tags_1, /* Same as above */ - sizeof(asn_DEF_Presence_tags_1) - /sizeof(asn_DEF_Presence_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_Presence_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_Presence_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/Presence.h b/e2sim/previous/e2apv1sim/ASN1c/Presence.h deleted file mode 100644 index 8f93430..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/Presence.h +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-CommonDataTypes" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _Presence_H_ -#define _Presence_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum Presence { - Presence_optional = 0, - Presence_conditional = 1, - Presence_mandatory = 2 -} e_Presence; - -/* Presence */ -typedef long Presence_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_Presence_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_Presence; -extern const asn_INTEGER_specifics_t asn_SPC_Presence_specs_1; -asn_struct_free_f Presence_free; -asn_struct_print_f Presence_print; -asn_constr_check_f Presence_constraint; -ber_type_decoder_f Presence_decode_ber; -der_type_encoder_f Presence_encode_der; -xer_type_decoder_f Presence_decode_xer; -xer_type_encoder_f Presence_encode_xer; -per_type_decoder_f Presence_decode_uper; -per_type_encoder_f Presence_encode_uper; -per_type_decoder_f Presence_decode_aper; -per_type_encoder_f Presence_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _Presence_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ASN1c/PrintableString.c b/e2sim/previous/e2apv1sim/ASN1c/PrintableString.c deleted file mode 100644 index 8fc3939..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/PrintableString.c +++ /dev/null @@ -1,130 +0,0 @@ -/*- - * Copyright (c) 2003, 2004, 2006 Lev Walkin . - * All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include - -/* - * ASN.1:1984 (X.409) - */ -static const int _PrintableString_alphabet[256] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */ - 1, 0, 0, 0, 0, 0, 0, 2, 3, 4, 0, 5, 6, 7, 8, 9, /* . '() +,-./ */ -10,11,12,13,14,15,16,17,18,19,20, 0, 0,21, 0,22, /* 0123456789: = ? */ - 0,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37, /* ABCDEFGHIJKLMNO */ -38,39,40,41,42,43,44,45,46,47,48, 0, 0, 0, 0, 0, /* PQRSTUVWXYZ */ - 0,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63, /* abcdefghijklmno */ -64,65,66,67,68,69,70,71,72,73,74, 0, 0, 0, 0, 0, /* pqrstuvwxyz */ -}; -static const int _PrintableString_code2value[74] = { -32,39,40,41,43,44,45,46,47,48,49,50,51,52,53,54, -55,56,57,58,61,63,65,66,67,68,69,70,71,72,73,74, -75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90, -97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112, -113,114,115,116,117,118,119,120,121,122}; - -/* - * PrintableString basic type description. - */ -static const ber_tlv_tag_t asn_DEF_PrintableString_tags[] = { - (ASN_TAG_CLASS_UNIVERSAL | (19 << 2)), /* [UNIVERSAL 19] IMPLICIT ...*/ - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) /* ... OCTET STRING */ -}; -static int asn_DEF_PrintableString_v2c(unsigned int value) { - return _PrintableString_alphabet[value > 255 ? 0 : value] - 1; -} -static int asn_DEF_PrintableString_c2v(unsigned int code) { - if(code < 74) - return _PrintableString_code2value[code]; - return -1; -} -static asn_per_constraints_t asn_DEF_PrintableString_per_constraints = { - { APC_CONSTRAINED, 4, 4, 0x20, 0x39 }, /* Value */ - { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 }, /* Size */ - asn_DEF_PrintableString_v2c, - asn_DEF_PrintableString_c2v -}; -asn_TYPE_operation_t asn_OP_PrintableString = { - OCTET_STRING_free, - OCTET_STRING_print_utf8, /* ASCII subset */ - OCTET_STRING_compare, - OCTET_STRING_decode_ber, /* Implemented in terms of OCTET STRING */ - OCTET_STRING_encode_der, - OCTET_STRING_decode_xer_utf8, - OCTET_STRING_encode_xer_utf8, -#ifdef ASN_DISABLE_OER_SUPPORT - 0, - 0, -#else - OCTET_STRING_decode_oer, - OCTET_STRING_encode_oer, -#endif /* ASN_DISABLE_OER_SUPPORT */ -#ifdef ASN_DISABLE_PER_SUPPORT - 0, - 0, - 0, - 0, -#else - OCTET_STRING_decode_uper, - OCTET_STRING_encode_uper, - OCTET_STRING_decode_aper, - OCTET_STRING_encode_aper, -#endif /* ASN_DISABLE_PER_SUPPORT */ - OCTET_STRING_random_fill, - 0 /* Use generic outmost tag fetcher */ -}; -asn_TYPE_descriptor_t asn_DEF_PrintableString = { - "PrintableString", - "PrintableString", - &asn_OP_PrintableString, - asn_DEF_PrintableString_tags, - sizeof(asn_DEF_PrintableString_tags) - / sizeof(asn_DEF_PrintableString_tags[0]) - 1, - asn_DEF_PrintableString_tags, - sizeof(asn_DEF_PrintableString_tags) - / sizeof(asn_DEF_PrintableString_tags[0]), - { 0, &asn_DEF_PrintableString_per_constraints, PrintableString_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - - -int -PrintableString_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, - void *app_key) { - const PrintableString_t *st = (const PrintableString_t *)sptr; - - if(st && st->buf) { - uint8_t *buf = st->buf; - uint8_t *end = buf + st->size; - - /* - * Check the alphabet of the PrintableString. - * ASN.1:1984 (X.409) - */ - for(; buf < end; buf++) { - if(!_PrintableString_alphabet[*buf]) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value byte %ld (%d) " - "not in PrintableString alphabet " - "(%s:%d)", - td->name, - (long)((buf - st->buf) + 1), - *buf, - __FILE__, __LINE__); - return -1; - } - } - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - return 0; -} diff --git a/e2sim/previous/e2apv1sim/ASN1c/PrintableString.h b/e2sim/previous/e2apv1sim/ASN1c/PrintableString.h deleted file mode 100644 index 8c2b61a..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/PrintableString.h +++ /dev/null @@ -1,37 +0,0 @@ -/*- - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef _PrintableString_H_ -#define _PrintableString_H_ - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -typedef OCTET_STRING_t PrintableString_t; /* Implemented via OCTET STRING */ - -extern asn_TYPE_descriptor_t asn_DEF_PrintableString; -extern asn_TYPE_operation_t asn_OP_PrintableString; - -asn_constr_check_f PrintableString_constraint; - -#define PrintableString_free OCTET_STRING_free -#define PrintableString_print OCTET_STRING_print_utf8 -#define PrintableString_compare OCTET_STRING_compare -#define PrintableString_decode_ber OCTET_STRING_decode_ber -#define PrintableString_encode_der OCTET_STRING_encode_der -#define PrintableString_decode_xer OCTET_STRING_decode_xer_utf8 -#define PrintableString_encode_xer OCTET_STRING_encode_xer_utf8 -#define PrintableString_decode_uper OCTET_STRING_decode_uper -#define PrintableString_encode_uper OCTET_STRING_encode_uper -#define PrintableString_decode_aper OCTET_STRING_decode_aper -#define PrintableString_encode_aper OCTET_STRING_encode_aper - -#ifdef __cplusplus -} -#endif - -#endif /* _PrintableString_H_ */ diff --git a/e2sim/previous/e2apv1sim/ASN1c/ProcedureCode.c b/e2sim/previous/e2apv1sim/ASN1c/ProcedureCode.c deleted file mode 100644 index 0e488d4..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/ProcedureCode.c +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-CommonDataTypes" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "ProcedureCode.h" - -int -ProcedureCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 255)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using NativeInteger, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_ProcedureCode_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_ProcedureCode_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ProcedureCode = { - "ProcedureCode", - "ProcedureCode", - &asn_OP_NativeInteger, - asn_DEF_ProcedureCode_tags_1, - sizeof(asn_DEF_ProcedureCode_tags_1) - /sizeof(asn_DEF_ProcedureCode_tags_1[0]), /* 1 */ - asn_DEF_ProcedureCode_tags_1, /* Same as above */ - sizeof(asn_DEF_ProcedureCode_tags_1) - /sizeof(asn_DEF_ProcedureCode_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_ProcedureCode_constr_1, ProcedureCode_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/ProcedureCode.h b/e2sim/previous/e2apv1sim/ASN1c/ProcedureCode.h deleted file mode 100644 index a2e8fe8..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/ProcedureCode.h +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-CommonDataTypes" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _ProcedureCode_H_ -#define _ProcedureCode_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeInteger.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* ProcedureCode */ -typedef long ProcedureCode_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_ProcedureCode_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_ProcedureCode; -asn_struct_free_f ProcedureCode_free; -asn_struct_print_f ProcedureCode_print; -asn_constr_check_f ProcedureCode_constraint; -ber_type_decoder_f ProcedureCode_decode_ber; -der_type_encoder_f ProcedureCode_encode_der; -xer_type_decoder_f ProcedureCode_decode_xer; -xer_type_encoder_f ProcedureCode_encode_xer; -per_type_decoder_f ProcedureCode_decode_uper; -per_type_encoder_f ProcedureCode_encode_uper; -per_type_decoder_f ProcedureCode_decode_aper; -per_type_encoder_f ProcedureCode_encode_aper; -#define ProcedureCode_id_E2setup ((ProcedureCode_t)1) -#define ProcedureCode_id_ErrorIndication ((ProcedureCode_t)2) -#define ProcedureCode_id_Reset ((ProcedureCode_t)3) -#define ProcedureCode_id_RICcontrol ((ProcedureCode_t)4) -#define ProcedureCode_id_RICindication ((ProcedureCode_t)5) -#define ProcedureCode_id_RICserviceQuery ((ProcedureCode_t)6) -#define ProcedureCode_id_RICserviceUpdate ((ProcedureCode_t)7) -#define ProcedureCode_id_RICsubscription ((ProcedureCode_t)8) -#define ProcedureCode_id_RICsubscriptionDelete ((ProcedureCode_t)9) - -#ifdef __cplusplus -} -#endif - -#endif /* _ProcedureCode_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ASN1c/ProtocolIE-Container.c b/e2sim/previous/e2apv1sim/ASN1c/ProtocolIE-Container.c deleted file mode 100644 index 4046387..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/ProtocolIE-Container.c +++ /dev/null @@ -1,810 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-Containers" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "ProtocolIE-Container.h" - -#include "ProtocolIE-Field.h" -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P0_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P1_constr_3 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P2_constr_5 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P3_constr_7 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P4_constr_9 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P5_constr_11 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P6_constr_13 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P7_constr_15 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P8_constr_17 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P9_constr_19 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P10_constr_21 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P11_constr_23 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P12_constr_25 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P13_constr_27 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P14_constr_29 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P15_constr_31 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P16_constr_33 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P17_constr_35 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P18_constr_37 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P19_constr_39 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P0_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICsubscriptionRequest_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1527P0_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P0_specs_1 = { - sizeof(struct ProtocolIE_Container_1527P0), - offsetof(struct ProtocolIE_Container_1527P0, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P0 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1527P0_tags_1, - sizeof(asn_DEF_ProtocolIE_Container_1527P0_tags_1) - /sizeof(asn_DEF_ProtocolIE_Container_1527P0_tags_1[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1527P0_tags_1, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1527P0_tags_1) - /sizeof(asn_DEF_ProtocolIE_Container_1527P0_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_1527P0_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1527P0_1, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1527P0_specs_1 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P1_3[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICsubscriptionResponse_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1527P1_tags_3[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P1_specs_3 = { - sizeof(struct ProtocolIE_Container_1527P1), - offsetof(struct ProtocolIE_Container_1527P1, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P1 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1527P1_tags_3, - sizeof(asn_DEF_ProtocolIE_Container_1527P1_tags_3) - /sizeof(asn_DEF_ProtocolIE_Container_1527P1_tags_3[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1527P1_tags_3, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1527P1_tags_3) - /sizeof(asn_DEF_ProtocolIE_Container_1527P1_tags_3[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_1527P1_constr_3, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1527P1_3, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1527P1_specs_3 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P2_5[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICsubscriptionFailure_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1527P2_tags_5[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P2_specs_5 = { - sizeof(struct ProtocolIE_Container_1527P2), - offsetof(struct ProtocolIE_Container_1527P2, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P2 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1527P2_tags_5, - sizeof(asn_DEF_ProtocolIE_Container_1527P2_tags_5) - /sizeof(asn_DEF_ProtocolIE_Container_1527P2_tags_5[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1527P2_tags_5, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1527P2_tags_5) - /sizeof(asn_DEF_ProtocolIE_Container_1527P2_tags_5[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_1527P2_constr_5, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1527P2_5, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1527P2_specs_5 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P3_7[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICsubscriptionDeleteRequest_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1527P3_tags_7[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P3_specs_7 = { - sizeof(struct ProtocolIE_Container_1527P3), - offsetof(struct ProtocolIE_Container_1527P3, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P3 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1527P3_tags_7, - sizeof(asn_DEF_ProtocolIE_Container_1527P3_tags_7) - /sizeof(asn_DEF_ProtocolIE_Container_1527P3_tags_7[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1527P3_tags_7, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1527P3_tags_7) - /sizeof(asn_DEF_ProtocolIE_Container_1527P3_tags_7[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_1527P3_constr_7, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1527P3_7, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1527P3_specs_7 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P4_9[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICsubscriptionDeleteResponse_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1527P4_tags_9[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P4_specs_9 = { - sizeof(struct ProtocolIE_Container_1527P4), - offsetof(struct ProtocolIE_Container_1527P4, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P4 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1527P4_tags_9, - sizeof(asn_DEF_ProtocolIE_Container_1527P4_tags_9) - /sizeof(asn_DEF_ProtocolIE_Container_1527P4_tags_9[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1527P4_tags_9, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1527P4_tags_9) - /sizeof(asn_DEF_ProtocolIE_Container_1527P4_tags_9[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_1527P4_constr_9, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1527P4_9, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1527P4_specs_9 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P5_11[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICsubscriptionDeleteFailure_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1527P5_tags_11[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P5_specs_11 = { - sizeof(struct ProtocolIE_Container_1527P5), - offsetof(struct ProtocolIE_Container_1527P5, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P5 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1527P5_tags_11, - sizeof(asn_DEF_ProtocolIE_Container_1527P5_tags_11) - /sizeof(asn_DEF_ProtocolIE_Container_1527P5_tags_11[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1527P5_tags_11, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1527P5_tags_11) - /sizeof(asn_DEF_ProtocolIE_Container_1527P5_tags_11[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_1527P5_constr_11, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1527P5_11, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1527P5_specs_11 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P6_13[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICindication_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1527P6_tags_13[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P6_specs_13 = { - sizeof(struct ProtocolIE_Container_1527P6), - offsetof(struct ProtocolIE_Container_1527P6, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P6 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1527P6_tags_13, - sizeof(asn_DEF_ProtocolIE_Container_1527P6_tags_13) - /sizeof(asn_DEF_ProtocolIE_Container_1527P6_tags_13[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1527P6_tags_13, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1527P6_tags_13) - /sizeof(asn_DEF_ProtocolIE_Container_1527P6_tags_13[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_1527P6_constr_13, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1527P6_13, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1527P6_specs_13 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P7_15[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICcontrolRequest_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1527P7_tags_15[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P7_specs_15 = { - sizeof(struct ProtocolIE_Container_1527P7), - offsetof(struct ProtocolIE_Container_1527P7, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P7 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1527P7_tags_15, - sizeof(asn_DEF_ProtocolIE_Container_1527P7_tags_15) - /sizeof(asn_DEF_ProtocolIE_Container_1527P7_tags_15[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1527P7_tags_15, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1527P7_tags_15) - /sizeof(asn_DEF_ProtocolIE_Container_1527P7_tags_15[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_1527P7_constr_15, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1527P7_15, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1527P7_specs_15 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P8_17[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICcontrolAcknowledge_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1527P8_tags_17[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P8_specs_17 = { - sizeof(struct ProtocolIE_Container_1527P8), - offsetof(struct ProtocolIE_Container_1527P8, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P8 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1527P8_tags_17, - sizeof(asn_DEF_ProtocolIE_Container_1527P8_tags_17) - /sizeof(asn_DEF_ProtocolIE_Container_1527P8_tags_17[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1527P8_tags_17, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1527P8_tags_17) - /sizeof(asn_DEF_ProtocolIE_Container_1527P8_tags_17[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_1527P8_constr_17, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1527P8_17, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1527P8_specs_17 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P9_19[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICcontrolFailure_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1527P9_tags_19[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P9_specs_19 = { - sizeof(struct ProtocolIE_Container_1527P9), - offsetof(struct ProtocolIE_Container_1527P9, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P9 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1527P9_tags_19, - sizeof(asn_DEF_ProtocolIE_Container_1527P9_tags_19) - /sizeof(asn_DEF_ProtocolIE_Container_1527P9_tags_19[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1527P9_tags_19, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1527P9_tags_19) - /sizeof(asn_DEF_ProtocolIE_Container_1527P9_tags_19[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_1527P9_constr_19, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1527P9_19, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1527P9_specs_19 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P10_21[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ErrorIndication_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1527P10_tags_21[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P10_specs_21 = { - sizeof(struct ProtocolIE_Container_1527P10), - offsetof(struct ProtocolIE_Container_1527P10, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P10 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1527P10_tags_21, - sizeof(asn_DEF_ProtocolIE_Container_1527P10_tags_21) - /sizeof(asn_DEF_ProtocolIE_Container_1527P10_tags_21[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1527P10_tags_21, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1527P10_tags_21) - /sizeof(asn_DEF_ProtocolIE_Container_1527P10_tags_21[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_1527P10_constr_21, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1527P10_21, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1527P10_specs_21 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P11_23[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E2setupRequestIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1527P11_tags_23[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P11_specs_23 = { - sizeof(struct ProtocolIE_Container_1527P11), - offsetof(struct ProtocolIE_Container_1527P11, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P11 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1527P11_tags_23, - sizeof(asn_DEF_ProtocolIE_Container_1527P11_tags_23) - /sizeof(asn_DEF_ProtocolIE_Container_1527P11_tags_23[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1527P11_tags_23, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1527P11_tags_23) - /sizeof(asn_DEF_ProtocolIE_Container_1527P11_tags_23[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_1527P11_constr_23, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1527P11_23, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1527P11_specs_23 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P12_25[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E2setupResponseIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1527P12_tags_25[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P12_specs_25 = { - sizeof(struct ProtocolIE_Container_1527P12), - offsetof(struct ProtocolIE_Container_1527P12, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P12 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1527P12_tags_25, - sizeof(asn_DEF_ProtocolIE_Container_1527P12_tags_25) - /sizeof(asn_DEF_ProtocolIE_Container_1527P12_tags_25[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1527P12_tags_25, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1527P12_tags_25) - /sizeof(asn_DEF_ProtocolIE_Container_1527P12_tags_25[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_1527P12_constr_25, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1527P12_25, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1527P12_specs_25 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P13_27[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E2setupFailureIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1527P13_tags_27[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P13_specs_27 = { - sizeof(struct ProtocolIE_Container_1527P13), - offsetof(struct ProtocolIE_Container_1527P13, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P13 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1527P13_tags_27, - sizeof(asn_DEF_ProtocolIE_Container_1527P13_tags_27) - /sizeof(asn_DEF_ProtocolIE_Container_1527P13_tags_27[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1527P13_tags_27, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1527P13_tags_27) - /sizeof(asn_DEF_ProtocolIE_Container_1527P13_tags_27[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_1527P13_constr_27, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1527P13_27, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1527P13_specs_27 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P14_29[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ResetRequestIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1527P14_tags_29[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P14_specs_29 = { - sizeof(struct ProtocolIE_Container_1527P14), - offsetof(struct ProtocolIE_Container_1527P14, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P14 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1527P14_tags_29, - sizeof(asn_DEF_ProtocolIE_Container_1527P14_tags_29) - /sizeof(asn_DEF_ProtocolIE_Container_1527P14_tags_29[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1527P14_tags_29, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1527P14_tags_29) - /sizeof(asn_DEF_ProtocolIE_Container_1527P14_tags_29[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_1527P14_constr_29, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1527P14_29, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1527P14_specs_29 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P15_31[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ResetResponseIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1527P15_tags_31[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P15_specs_31 = { - sizeof(struct ProtocolIE_Container_1527P15), - offsetof(struct ProtocolIE_Container_1527P15, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P15 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1527P15_tags_31, - sizeof(asn_DEF_ProtocolIE_Container_1527P15_tags_31) - /sizeof(asn_DEF_ProtocolIE_Container_1527P15_tags_31[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1527P15_tags_31, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1527P15_tags_31) - /sizeof(asn_DEF_ProtocolIE_Container_1527P15_tags_31[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_1527P15_constr_31, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1527P15_31, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1527P15_specs_31 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P16_33[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICserviceUpdate_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1527P16_tags_33[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P16_specs_33 = { - sizeof(struct ProtocolIE_Container_1527P16), - offsetof(struct ProtocolIE_Container_1527P16, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P16 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1527P16_tags_33, - sizeof(asn_DEF_ProtocolIE_Container_1527P16_tags_33) - /sizeof(asn_DEF_ProtocolIE_Container_1527P16_tags_33[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1527P16_tags_33, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1527P16_tags_33) - /sizeof(asn_DEF_ProtocolIE_Container_1527P16_tags_33[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_1527P16_constr_33, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1527P16_33, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1527P16_specs_33 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P17_35[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICserviceUpdateAcknowledge_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1527P17_tags_35[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P17_specs_35 = { - sizeof(struct ProtocolIE_Container_1527P17), - offsetof(struct ProtocolIE_Container_1527P17, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P17 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1527P17_tags_35, - sizeof(asn_DEF_ProtocolIE_Container_1527P17_tags_35) - /sizeof(asn_DEF_ProtocolIE_Container_1527P17_tags_35[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1527P17_tags_35, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1527P17_tags_35) - /sizeof(asn_DEF_ProtocolIE_Container_1527P17_tags_35[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_1527P17_constr_35, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1527P17_35, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1527P17_specs_35 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P18_37[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICserviceUpdateFailure_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1527P18_tags_37[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P18_specs_37 = { - sizeof(struct ProtocolIE_Container_1527P18), - offsetof(struct ProtocolIE_Container_1527P18, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P18 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1527P18_tags_37, - sizeof(asn_DEF_ProtocolIE_Container_1527P18_tags_37) - /sizeof(asn_DEF_ProtocolIE_Container_1527P18_tags_37[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1527P18_tags_37, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1527P18_tags_37) - /sizeof(asn_DEF_ProtocolIE_Container_1527P18_tags_37[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_1527P18_constr_37, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1527P18_37, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1527P18_specs_37 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P19_39[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICserviceQuery_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1527P19_tags_39[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P19_specs_39 = { - sizeof(struct ProtocolIE_Container_1527P19), - offsetof(struct ProtocolIE_Container_1527P19, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P19 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1527P19_tags_39, - sizeof(asn_DEF_ProtocolIE_Container_1527P19_tags_39) - /sizeof(asn_DEF_ProtocolIE_Container_1527P19_tags_39[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1527P19_tags_39, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1527P19_tags_39) - /sizeof(asn_DEF_ProtocolIE_Container_1527P19_tags_39[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_1527P19_constr_39, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1527P19_39, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1527P19_specs_39 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/ProtocolIE-Container.h b/e2sim/previous/e2apv1sim/ASN1c/ProtocolIE-Container.h deleted file mode 100644 index 5034a64..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/ProtocolIE-Container.h +++ /dev/null @@ -1,253 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-Containers" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _ProtocolIE_Container_H_ -#define _ProtocolIE_Container_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct RICsubscriptionRequest_IEs; -struct RICsubscriptionResponse_IEs; -struct RICsubscriptionFailure_IEs; -struct RICsubscriptionDeleteRequest_IEs; -struct RICsubscriptionDeleteResponse_IEs; -struct RICsubscriptionDeleteFailure_IEs; -struct RICindication_IEs; -struct RICcontrolRequest_IEs; -struct RICcontrolAcknowledge_IEs; -struct RICcontrolFailure_IEs; -struct ErrorIndication_IEs; -struct E2setupRequestIEs; -struct E2setupResponseIEs; -struct E2setupFailureIEs; -struct ResetRequestIEs; -struct ResetResponseIEs; -struct RICserviceUpdate_IEs; -struct RICserviceUpdateAcknowledge_IEs; -struct RICserviceUpdateFailure_IEs; -struct RICserviceQuery_IEs; - -/* ProtocolIE-Container */ -typedef struct ProtocolIE_Container_1527P0 { - A_SEQUENCE_OF(struct RICsubscriptionRequest_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1527P0_t; -typedef struct ProtocolIE_Container_1527P1 { - A_SEQUENCE_OF(struct RICsubscriptionResponse_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1527P1_t; -typedef struct ProtocolIE_Container_1527P2 { - A_SEQUENCE_OF(struct RICsubscriptionFailure_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1527P2_t; -typedef struct ProtocolIE_Container_1527P3 { - A_SEQUENCE_OF(struct RICsubscriptionDeleteRequest_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1527P3_t; -typedef struct ProtocolIE_Container_1527P4 { - A_SEQUENCE_OF(struct RICsubscriptionDeleteResponse_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1527P4_t; -typedef struct ProtocolIE_Container_1527P5 { - A_SEQUENCE_OF(struct RICsubscriptionDeleteFailure_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1527P5_t; -typedef struct ProtocolIE_Container_1527P6 { - A_SEQUENCE_OF(struct RICindication_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1527P6_t; -typedef struct ProtocolIE_Container_1527P7 { - A_SEQUENCE_OF(struct RICcontrolRequest_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1527P7_t; -typedef struct ProtocolIE_Container_1527P8 { - A_SEQUENCE_OF(struct RICcontrolAcknowledge_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1527P8_t; -typedef struct ProtocolIE_Container_1527P9 { - A_SEQUENCE_OF(struct RICcontrolFailure_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1527P9_t; -typedef struct ProtocolIE_Container_1527P10 { - A_SEQUENCE_OF(struct ErrorIndication_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1527P10_t; -typedef struct ProtocolIE_Container_1527P11 { - A_SEQUENCE_OF(struct E2setupRequestIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1527P11_t; -typedef struct ProtocolIE_Container_1527P12 { - A_SEQUENCE_OF(struct E2setupResponseIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1527P12_t; -typedef struct ProtocolIE_Container_1527P13 { - A_SEQUENCE_OF(struct E2setupFailureIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1527P13_t; -typedef struct ProtocolIE_Container_1527P14 { - A_SEQUENCE_OF(struct ResetRequestIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1527P14_t; -typedef struct ProtocolIE_Container_1527P15 { - A_SEQUENCE_OF(struct ResetResponseIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1527P15_t; -typedef struct ProtocolIE_Container_1527P16 { - A_SEQUENCE_OF(struct RICserviceUpdate_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1527P16_t; -typedef struct ProtocolIE_Container_1527P17 { - A_SEQUENCE_OF(struct RICserviceUpdateAcknowledge_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1527P17_t; -typedef struct ProtocolIE_Container_1527P18 { - A_SEQUENCE_OF(struct RICserviceUpdateFailure_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1527P18_t; -typedef struct ProtocolIE_Container_1527P19 { - A_SEQUENCE_OF(struct RICserviceQuery_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1527P19_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P0; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P0_specs_1; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P0_1[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P0_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P1; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P1_specs_3; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P1_3[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P1_constr_3; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P2; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P2_specs_5; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P2_5[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P2_constr_5; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P3; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P3_specs_7; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P3_7[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P3_constr_7; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P4; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P4_specs_9; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P4_9[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P4_constr_9; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P5; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P5_specs_11; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P5_11[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P5_constr_11; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P6; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P6_specs_13; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P6_13[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P6_constr_13; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P7; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P7_specs_15; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P7_15[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P7_constr_15; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P8; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P8_specs_17; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P8_17[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P8_constr_17; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P9; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P9_specs_19; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P9_19[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P9_constr_19; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P10; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P10_specs_21; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P10_21[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P10_constr_21; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P11; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P11_specs_23; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P11_23[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P11_constr_23; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P12; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P12_specs_25; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P12_25[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P12_constr_25; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P13; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P13_specs_27; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P13_27[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P13_constr_27; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P14; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P14_specs_29; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P14_29[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P14_constr_29; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P15; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P15_specs_31; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P15_31[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P15_constr_31; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P16; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P16_specs_33; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P16_33[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P16_constr_33; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P17; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P17_specs_35; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P17_35[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P17_constr_35; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P18; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P18_specs_37; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P18_37[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P18_constr_37; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P19; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P19_specs_39; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P19_39[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P19_constr_39; - -#ifdef __cplusplus -} -#endif - -#endif /* _ProtocolIE_Container_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ASN1c/ProtocolIE-ContainerList.c b/e2sim/previous/e2apv1sim/ASN1c/ProtocolIE-ContainerList.c deleted file mode 100644 index c9d5808..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/ProtocolIE-ContainerList.c +++ /dev/null @@ -1,9 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-Containers" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "ProtocolIE-ContainerList.h" - diff --git a/e2sim/previous/e2apv1sim/ASN1c/ProtocolIE-ContainerList.h b/e2sim/previous/e2apv1sim/ASN1c/ProtocolIE-ContainerList.h deleted file mode 100644 index 3376410..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/ProtocolIE-ContainerList.h +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-Containers" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _ProtocolIE_ContainerList_H_ -#define _ProtocolIE_ContainerList_H_ - - -#include "asn_application.h" - -#ifdef __cplusplus -extern "C" { -#endif - -#ifdef __cplusplus -} -#endif - -#endif /* _ProtocolIE_ContainerList_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ASN1c/ProtocolIE-ContainerPair.c b/e2sim/previous/e2apv1sim/ASN1c/ProtocolIE-ContainerPair.c deleted file mode 100644 index ad1c8b8..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/ProtocolIE-ContainerPair.c +++ /dev/null @@ -1,9 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-Containers" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "ProtocolIE-ContainerPair.h" - diff --git a/e2sim/previous/e2apv1sim/ASN1c/ProtocolIE-ContainerPair.h b/e2sim/previous/e2apv1sim/ASN1c/ProtocolIE-ContainerPair.h deleted file mode 100644 index 5b730c7..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/ProtocolIE-ContainerPair.h +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-Containers" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _ProtocolIE_ContainerPair_H_ -#define _ProtocolIE_ContainerPair_H_ - - -#include "asn_application.h" - -#ifdef __cplusplus -extern "C" { -#endif - -#ifdef __cplusplus -} -#endif - -#endif /* _ProtocolIE_ContainerPair_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ASN1c/ProtocolIE-ContainerPairList.c b/e2sim/previous/e2apv1sim/ASN1c/ProtocolIE-ContainerPairList.c deleted file mode 100644 index f77445b..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/ProtocolIE-ContainerPairList.c +++ /dev/null @@ -1,9 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-Containers" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "ProtocolIE-ContainerPairList.h" - diff --git a/e2sim/previous/e2apv1sim/ASN1c/ProtocolIE-ContainerPairList.h b/e2sim/previous/e2apv1sim/ASN1c/ProtocolIE-ContainerPairList.h deleted file mode 100644 index 1837ac8..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/ProtocolIE-ContainerPairList.h +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-Containers" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _ProtocolIE_ContainerPairList_H_ -#define _ProtocolIE_ContainerPairList_H_ - - -#include "asn_application.h" - -#ifdef __cplusplus -extern "C" { -#endif - -#ifdef __cplusplus -} -#endif - -#endif /* _ProtocolIE_ContainerPairList_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ASN1c/ProtocolIE-Field.c b/e2sim/previous/e2apv1sim/ASN1c/ProtocolIE-Field.c deleted file mode 100644 index af5597c..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/ProtocolIE-Field.c +++ /dev/null @@ -1,7190 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-Containers" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "ProtocolIE-Field.h" - -static const long asn_VAL_4_id_RICaction_ToBeSetup_Item = 19; -static const long asn_VAL_4_ignore = 1; -static const long asn_VAL_4_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_RICaction_ToBeSetup_ItemIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_4_id_RICaction_ToBeSetup_Item }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_4_ignore }, - { "&Value", aioc__type, &asn_DEF_RICaction_ToBeSetup_Item }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_4_mandatory } -}; -static const asn_ioc_set_t asn_IOS_RICaction_ToBeSetup_ItemIEs_1[] = { - { 1, 4, asn_IOS_RICaction_ToBeSetup_ItemIEs_1_rows } -}; -static const long asn_VAL_9_id_RICaction_Admitted_Item = 14; -static const long asn_VAL_9_ignore = 1; -static const long asn_VAL_9_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_RICaction_Admitted_ItemIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_9_id_RICaction_Admitted_Item }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_9_ignore }, - { "&Value", aioc__type, &asn_DEF_RICaction_Admitted_Item }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_9_mandatory } -}; -static const asn_ioc_set_t asn_IOS_RICaction_Admitted_ItemIEs_1[] = { - { 1, 4, asn_IOS_RICaction_Admitted_ItemIEs_1_rows } -}; -static const long asn_VAL_10_id_RICaction_NotAdmitted_Item = 16; -static const long asn_VAL_10_ignore = 1; -static const long asn_VAL_10_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_RICaction_NotAdmitted_ItemIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_10_id_RICaction_NotAdmitted_Item }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_10_ignore }, - { "&Value", aioc__type, &asn_DEF_RICaction_NotAdmitted_Item }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_10_mandatory } -}; -static const asn_ioc_set_t asn_IOS_RICaction_NotAdmitted_ItemIEs_1[] = { - { 1, 4, asn_IOS_RICaction_NotAdmitted_ItemIEs_1_rows } -}; -static const long asn_VAL_64_id_RANfunction_Item = 8; -static const long asn_VAL_64_ignore = 1; -static const long asn_VAL_64_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_RANfunction_ItemIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_64_id_RANfunction_Item }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_64_ignore }, - { "&Value", aioc__type, &asn_DEF_RANfunction_Item }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_64_mandatory } -}; -static const asn_ioc_set_t asn_IOS_RANfunction_ItemIEs_1[] = { - { 1, 4, asn_IOS_RANfunction_ItemIEs_1_rows } -}; -static const long asn_VAL_65_id_RANfunctionID_Item = 6; -static const long asn_VAL_65_ignore = 1; -static const long asn_VAL_65_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_RANfunctionID_ItemIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_65_id_RANfunctionID_Item }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_65_ignore }, - { "&Value", aioc__type, &asn_DEF_RANfunctionID_Item }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_65_mandatory } -}; -static const asn_ioc_set_t asn_IOS_RANfunctionID_ItemIEs_1[] = { - { 1, 4, asn_IOS_RANfunctionID_ItemIEs_1_rows } -}; -static const long asn_VAL_68_id_RANfunctionIEcause_Item = 7; -static const long asn_VAL_68_ignore = 1; -static const long asn_VAL_68_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_RANfunctionIDcause_ItemIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_68_id_RANfunctionIEcause_Item }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_68_ignore }, - { "&Value", aioc__type, &asn_DEF_RANfunctionIDcause_Item }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_68_mandatory } -}; -static const asn_ioc_set_t asn_IOS_RANfunctionIDcause_ItemIEs_1[] = { - { 1, 4, asn_IOS_RANfunctionIDcause_ItemIEs_1_rows } -}; -static const long asn_VAL_1_id_RICrequestID = 29; -static const long asn_VAL_1_reject = 0; -static const long asn_VAL_1_mandatory = 2; -static const long asn_VAL_2_id_RANfunctionID = 5; -static const long asn_VAL_2_reject = 0; -static const long asn_VAL_2_mandatory = 2; -static const long asn_VAL_3_id_RICsubscriptionDetails = 30; -static const long asn_VAL_3_reject = 0; -static const long asn_VAL_3_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_RICsubscriptionRequest_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_1_id_RICrequestID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_1_reject }, - { "&Value", aioc__type, &asn_DEF_RICrequestID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_1_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_2_id_RANfunctionID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_2_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_2_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_3_id_RICsubscriptionDetails }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_3_reject }, - { "&Value", aioc__type, &asn_DEF_RICsubscriptionDetails }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_3_mandatory } -}; -static const asn_ioc_set_t asn_IOS_RICsubscriptionRequest_IEs_1[] = { - { 3, 4, asn_IOS_RICsubscriptionRequest_IEs_1_rows } -}; -static const long asn_VAL_5_id_RICrequestID = 29; -static const long asn_VAL_5_reject = 0; -static const long asn_VAL_5_mandatory = 2; -static const long asn_VAL_6_id_RANfunctionID = 5; -static const long asn_VAL_6_reject = 0; -static const long asn_VAL_6_mandatory = 2; -static const long asn_VAL_7_id_RICactions_Admitted = 17; -static const long asn_VAL_7_reject = 0; -static const long asn_VAL_7_mandatory = 2; -static const long asn_VAL_8_id_RICactions_NotAdmitted = 18; -static const long asn_VAL_8_reject = 0; -static const long asn_VAL_8_optional = 0; -static const asn_ioc_cell_t asn_IOS_RICsubscriptionResponse_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_5_id_RICrequestID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_5_reject }, - { "&Value", aioc__type, &asn_DEF_RICrequestID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_5_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_6_id_RANfunctionID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_6_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_6_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_7_id_RICactions_Admitted }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_7_reject }, - { "&Value", aioc__type, &asn_DEF_RICaction_Admitted_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_7_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_8_id_RICactions_NotAdmitted }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_8_reject }, - { "&Value", aioc__type, &asn_DEF_RICaction_NotAdmitted_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_8_optional } -}; -static const asn_ioc_set_t asn_IOS_RICsubscriptionResponse_IEs_1[] = { - { 4, 4, asn_IOS_RICsubscriptionResponse_IEs_1_rows } -}; -static const long asn_VAL_11_id_RICrequestID = 29; -static const long asn_VAL_11_reject = 0; -static const long asn_VAL_11_mandatory = 2; -static const long asn_VAL_12_id_RANfunctionID = 5; -static const long asn_VAL_12_reject = 0; -static const long asn_VAL_12_mandatory = 2; -static const long asn_VAL_13_id_RICactions_NotAdmitted = 18; -static const long asn_VAL_13_reject = 0; -static const long asn_VAL_13_mandatory = 2; -static const long asn_VAL_14_id_CriticalityDiagnostics = 2; -static const long asn_VAL_14_ignore = 1; -static const long asn_VAL_14_optional = 0; -static const asn_ioc_cell_t asn_IOS_RICsubscriptionFailure_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_11_id_RICrequestID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_11_reject }, - { "&Value", aioc__type, &asn_DEF_RICrequestID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_11_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_12_id_RANfunctionID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_12_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_12_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_13_id_RICactions_NotAdmitted }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_13_reject }, - { "&Value", aioc__type, &asn_DEF_RICaction_NotAdmitted_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_13_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_14_id_CriticalityDiagnostics }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_14_ignore }, - { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_14_optional } -}; -static const asn_ioc_set_t asn_IOS_RICsubscriptionFailure_IEs_1[] = { - { 4, 4, asn_IOS_RICsubscriptionFailure_IEs_1_rows } -}; -static const long asn_VAL_15_id_RICrequestID = 29; -static const long asn_VAL_15_reject = 0; -static const long asn_VAL_15_mandatory = 2; -static const long asn_VAL_16_id_RANfunctionID = 5; -static const long asn_VAL_16_reject = 0; -static const long asn_VAL_16_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_RICsubscriptionDeleteRequest_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_15_id_RICrequestID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_15_reject }, - { "&Value", aioc__type, &asn_DEF_RICrequestID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_15_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_16_id_RANfunctionID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_16_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_16_mandatory } -}; -static const asn_ioc_set_t asn_IOS_RICsubscriptionDeleteRequest_IEs_1[] = { - { 2, 4, asn_IOS_RICsubscriptionDeleteRequest_IEs_1_rows } -}; -static const long asn_VAL_17_id_RICrequestID = 29; -static const long asn_VAL_17_reject = 0; -static const long asn_VAL_17_mandatory = 2; -static const long asn_VAL_18_id_RANfunctionID = 5; -static const long asn_VAL_18_reject = 0; -static const long asn_VAL_18_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_RICsubscriptionDeleteResponse_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_17_id_RICrequestID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_17_reject }, - { "&Value", aioc__type, &asn_DEF_RICrequestID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_17_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_18_id_RANfunctionID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_18_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_18_mandatory } -}; -static const asn_ioc_set_t asn_IOS_RICsubscriptionDeleteResponse_IEs_1[] = { - { 2, 4, asn_IOS_RICsubscriptionDeleteResponse_IEs_1_rows } -}; -static const long asn_VAL_19_id_RICrequestID = 29; -static const long asn_VAL_19_reject = 0; -static const long asn_VAL_19_mandatory = 2; -static const long asn_VAL_20_id_RANfunctionID = 5; -static const long asn_VAL_20_reject = 0; -static const long asn_VAL_20_mandatory = 2; -static const long asn_VAL_21_id_Cause = 1; -static const long asn_VAL_21_ignore = 1; -static const long asn_VAL_21_mandatory = 2; -static const long asn_VAL_22_id_CriticalityDiagnostics = 2; -static const long asn_VAL_22_ignore = 1; -static const long asn_VAL_22_optional = 0; -static const asn_ioc_cell_t asn_IOS_RICsubscriptionDeleteFailure_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_19_id_RICrequestID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_19_reject }, - { "&Value", aioc__type, &asn_DEF_RICrequestID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_19_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_20_id_RANfunctionID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_20_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_20_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_21_id_Cause }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_21_ignore }, - { "&Value", aioc__type, &asn_DEF_Cause }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_21_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_22_id_CriticalityDiagnostics }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_22_ignore }, - { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_22_optional } -}; -static const asn_ioc_set_t asn_IOS_RICsubscriptionDeleteFailure_IEs_1[] = { - { 4, 4, asn_IOS_RICsubscriptionDeleteFailure_IEs_1_rows } -}; -static const long asn_VAL_23_id_RICrequestID = 29; -static const long asn_VAL_23_reject = 0; -static const long asn_VAL_23_mandatory = 2; -static const long asn_VAL_24_id_RANfunctionID = 5; -static const long asn_VAL_24_reject = 0; -static const long asn_VAL_24_mandatory = 2; -static const long asn_VAL_25_id_RICactionID = 15; -static const long asn_VAL_25_reject = 0; -static const long asn_VAL_25_mandatory = 2; -static const long asn_VAL_26_id_RICindicationSN = 27; -static const long asn_VAL_26_reject = 0; -static const long asn_VAL_26_optional = 0; -static const long asn_VAL_27_id_RICindicationType = 28; -static const long asn_VAL_27_reject = 0; -static const long asn_VAL_27_mandatory = 2; -static const long asn_VAL_28_id_RICindicationHeader = 25; -static const long asn_VAL_28_reject = 0; -static const long asn_VAL_28_mandatory = 2; -static const long asn_VAL_29_id_RICindicationMessage = 26; -static const long asn_VAL_29_reject = 0; -static const long asn_VAL_29_mandatory = 2; -static const long asn_VAL_30_id_RICcallProcessID = 20; -static const long asn_VAL_30_reject = 0; -static const long asn_VAL_30_optional = 0; -static const asn_ioc_cell_t asn_IOS_RICindication_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_23_id_RICrequestID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_23_reject }, - { "&Value", aioc__type, &asn_DEF_RICrequestID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_23_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_24_id_RANfunctionID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_24_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_24_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_25_id_RICactionID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_25_reject }, - { "&Value", aioc__type, &asn_DEF_RICactionID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_25_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_26_id_RICindicationSN }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_26_reject }, - { "&Value", aioc__type, &asn_DEF_RICindicationSN }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_26_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_27_id_RICindicationType }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_27_reject }, - { "&Value", aioc__type, &asn_DEF_RICindicationType }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_27_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_28_id_RICindicationHeader }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_28_reject }, - { "&Value", aioc__type, &asn_DEF_RICindicationHeader }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_28_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_29_id_RICindicationMessage }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_29_reject }, - { "&Value", aioc__type, &asn_DEF_RICindicationMessage }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_29_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_30_id_RICcallProcessID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_30_reject }, - { "&Value", aioc__type, &asn_DEF_RICcallProcessID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_30_optional } -}; -static const asn_ioc_set_t asn_IOS_RICindication_IEs_1[] = { - { 8, 4, asn_IOS_RICindication_IEs_1_rows } -}; -static const long asn_VAL_31_id_RICrequestID = 29; -static const long asn_VAL_31_reject = 0; -static const long asn_VAL_31_mandatory = 2; -static const long asn_VAL_32_id_RANfunctionID = 5; -static const long asn_VAL_32_reject = 0; -static const long asn_VAL_32_mandatory = 2; -static const long asn_VAL_33_id_RICcallProcessID = 20; -static const long asn_VAL_33_reject = 0; -static const long asn_VAL_33_optional = 0; -static const long asn_VAL_34_id_RICcontrolHeader = 22; -static const long asn_VAL_34_reject = 0; -static const long asn_VAL_34_mandatory = 2; -static const long asn_VAL_35_id_RICcontrolMessage = 23; -static const long asn_VAL_35_reject = 0; -static const long asn_VAL_35_mandatory = 2; -static const long asn_VAL_36_id_RICcontrolAckRequest = 21; -static const long asn_VAL_36_reject = 0; -static const long asn_VAL_36_optional = 0; -static const asn_ioc_cell_t asn_IOS_RICcontrolRequest_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_31_id_RICrequestID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_31_reject }, - { "&Value", aioc__type, &asn_DEF_RICrequestID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_31_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_32_id_RANfunctionID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_32_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_32_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_33_id_RICcallProcessID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_33_reject }, - { "&Value", aioc__type, &asn_DEF_RICcallProcessID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_33_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_34_id_RICcontrolHeader }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_34_reject }, - { "&Value", aioc__type, &asn_DEF_RICcontrolHeader }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_34_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_35_id_RICcontrolMessage }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_35_reject }, - { "&Value", aioc__type, &asn_DEF_RICcontrolMessage }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_35_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_36_id_RICcontrolAckRequest }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_36_reject }, - { "&Value", aioc__type, &asn_DEF_RICcontrolAckRequest }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_36_optional } -}; -static const asn_ioc_set_t asn_IOS_RICcontrolRequest_IEs_1[] = { - { 6, 4, asn_IOS_RICcontrolRequest_IEs_1_rows } -}; -static const long asn_VAL_37_id_RICrequestID = 29; -static const long asn_VAL_37_reject = 0; -static const long asn_VAL_37_mandatory = 2; -static const long asn_VAL_38_id_RANfunctionID = 5; -static const long asn_VAL_38_reject = 0; -static const long asn_VAL_38_mandatory = 2; -static const long asn_VAL_39_id_RICcallProcessID = 20; -static const long asn_VAL_39_reject = 0; -static const long asn_VAL_39_optional = 0; -static const long asn_VAL_40_id_RICcontrolStatus = 24; -static const long asn_VAL_40_reject = 0; -static const long asn_VAL_40_mandatory = 2; -static const long asn_VAL_41_id_RICcontrolOutcome = 32; -static const long asn_VAL_41_reject = 0; -static const long asn_VAL_41_optional = 0; -static const asn_ioc_cell_t asn_IOS_RICcontrolAcknowledge_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_37_id_RICrequestID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_37_reject }, - { "&Value", aioc__type, &asn_DEF_RICrequestID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_37_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_38_id_RANfunctionID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_38_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_38_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_39_id_RICcallProcessID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_39_reject }, - { "&Value", aioc__type, &asn_DEF_RICcallProcessID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_39_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_40_id_RICcontrolStatus }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_40_reject }, - { "&Value", aioc__type, &asn_DEF_RICcontrolStatus }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_40_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_41_id_RICcontrolOutcome }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_41_reject }, - { "&Value", aioc__type, &asn_DEF_RICcontrolOutcome }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_41_optional } -}; -static const asn_ioc_set_t asn_IOS_RICcontrolAcknowledge_IEs_1[] = { - { 5, 4, asn_IOS_RICcontrolAcknowledge_IEs_1_rows } -}; -static const long asn_VAL_42_id_RICrequestID = 29; -static const long asn_VAL_42_reject = 0; -static const long asn_VAL_42_mandatory = 2; -static const long asn_VAL_43_id_RANfunctionID = 5; -static const long asn_VAL_43_reject = 0; -static const long asn_VAL_43_mandatory = 2; -static const long asn_VAL_44_id_RICcallProcessID = 20; -static const long asn_VAL_44_reject = 0; -static const long asn_VAL_44_optional = 0; -static const long asn_VAL_45_id_Cause = 1; -static const long asn_VAL_45_ignore = 1; -static const long asn_VAL_45_mandatory = 2; -static const long asn_VAL_46_id_RICcontrolOutcome = 32; -static const long asn_VAL_46_reject = 0; -static const long asn_VAL_46_optional = 0; -static const asn_ioc_cell_t asn_IOS_RICcontrolFailure_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_42_id_RICrequestID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_42_reject }, - { "&Value", aioc__type, &asn_DEF_RICrequestID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_42_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_43_id_RANfunctionID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_43_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_43_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_44_id_RICcallProcessID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_44_reject }, - { "&Value", aioc__type, &asn_DEF_RICcallProcessID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_44_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_45_id_Cause }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_45_ignore }, - { "&Value", aioc__type, &asn_DEF_Cause }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_45_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_46_id_RICcontrolOutcome }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_46_reject }, - { "&Value", aioc__type, &asn_DEF_RICcontrolOutcome }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_46_optional } -}; -static const asn_ioc_set_t asn_IOS_RICcontrolFailure_IEs_1[] = { - { 5, 4, asn_IOS_RICcontrolFailure_IEs_1_rows } -}; -static const long asn_VAL_47_id_RICrequestID = 29; -static const long asn_VAL_47_reject = 0; -static const long asn_VAL_47_optional = 0; -static const long asn_VAL_48_id_RANfunctionID = 5; -static const long asn_VAL_48_reject = 0; -static const long asn_VAL_48_optional = 0; -static const long asn_VAL_49_id_Cause = 1; -static const long asn_VAL_49_ignore = 1; -static const long asn_VAL_49_optional = 0; -static const long asn_VAL_50_id_CriticalityDiagnostics = 2; -static const long asn_VAL_50_ignore = 1; -static const long asn_VAL_50_optional = 0; -static const asn_ioc_cell_t asn_IOS_ErrorIndication_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_47_id_RICrequestID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_47_reject }, - { "&Value", aioc__type, &asn_DEF_RICrequestID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_47_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_48_id_RANfunctionID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_48_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_48_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_49_id_Cause }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_49_ignore }, - { "&Value", aioc__type, &asn_DEF_Cause }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_49_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_50_id_CriticalityDiagnostics }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_50_ignore }, - { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_50_optional } -}; -static const asn_ioc_set_t asn_IOS_ErrorIndication_IEs_1[] = { - { 4, 4, asn_IOS_ErrorIndication_IEs_1_rows } -}; -static const long asn_VAL_51_id_GlobalE2node_ID = 3; -static const long asn_VAL_51_reject = 0; -static const long asn_VAL_51_mandatory = 2; -static const long asn_VAL_52_id_RANfunctionsAdded = 10; -static const long asn_VAL_52_reject = 0; -static const long asn_VAL_52_optional = 0; -static const asn_ioc_cell_t asn_IOS_E2setupRequestIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_51_id_GlobalE2node_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_51_reject }, - { "&Value", aioc__type, &asn_DEF_GlobalE2node_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_51_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_52_id_RANfunctionsAdded }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_52_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctions_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_52_optional } -}; -static const asn_ioc_set_t asn_IOS_E2setupRequestIEs_1[] = { - { 2, 4, asn_IOS_E2setupRequestIEs_1_rows } -}; -static const long asn_VAL_53_id_GlobalRIC_ID = 4; -static const long asn_VAL_53_reject = 0; -static const long asn_VAL_53_mandatory = 2; -static const long asn_VAL_54_id_RANfunctionsAccepted = 9; -static const long asn_VAL_54_reject = 0; -static const long asn_VAL_54_optional = 0; -static const long asn_VAL_55_id_RANfunctionsRejected = 13; -static const long asn_VAL_55_reject = 0; -static const long asn_VAL_55_optional = 0; -static const asn_ioc_cell_t asn_IOS_E2setupResponseIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_53_id_GlobalRIC_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_53_reject }, - { "&Value", aioc__type, &asn_DEF_GlobalRIC_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_53_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_54_id_RANfunctionsAccepted }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_54_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionsID_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_54_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_55_id_RANfunctionsRejected }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_55_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionsIDcause_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_55_optional } -}; -static const asn_ioc_set_t asn_IOS_E2setupResponseIEs_1[] = { - { 3, 4, asn_IOS_E2setupResponseIEs_1_rows } -}; -static const long asn_VAL_56_id_Cause = 1; -static const long asn_VAL_56_ignore = 1; -static const long asn_VAL_56_mandatory = 2; -static const long asn_VAL_57_id_TimeToWait = 31; -static const long asn_VAL_57_ignore = 1; -static const long asn_VAL_57_optional = 0; -static const long asn_VAL_58_id_CriticalityDiagnostics = 2; -static const long asn_VAL_58_ignore = 1; -static const long asn_VAL_58_optional = 0; -static const asn_ioc_cell_t asn_IOS_E2setupFailureIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_56_id_Cause }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_56_ignore }, - { "&Value", aioc__type, &asn_DEF_Cause }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_56_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_57_id_TimeToWait }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_57_ignore }, - { "&Value", aioc__type, &asn_DEF_TimeToWait }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_57_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_58_id_CriticalityDiagnostics }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_58_ignore }, - { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_58_optional } -}; -static const asn_ioc_set_t asn_IOS_E2setupFailureIEs_1[] = { - { 3, 4, asn_IOS_E2setupFailureIEs_1_rows } -}; -static const long asn_VAL_59_id_Cause = 1; -static const long asn_VAL_59_ignore = 1; -static const long asn_VAL_59_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_ResetRequestIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_59_id_Cause }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_59_ignore }, - { "&Value", aioc__type, &asn_DEF_Cause }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_59_mandatory } -}; -static const asn_ioc_set_t asn_IOS_ResetRequestIEs_1[] = { - { 1, 4, asn_IOS_ResetRequestIEs_1_rows } -}; -static const long asn_VAL_60_id_CriticalityDiagnostics = 2; -static const long asn_VAL_60_ignore = 1; -static const long asn_VAL_60_optional = 0; -static const asn_ioc_cell_t asn_IOS_ResetResponseIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_60_id_CriticalityDiagnostics }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_60_ignore }, - { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_60_optional } -}; -static const asn_ioc_set_t asn_IOS_ResetResponseIEs_1[] = { - { 1, 4, asn_IOS_ResetResponseIEs_1_rows } -}; -static const long asn_VAL_61_id_RANfunctionsAdded = 10; -static const long asn_VAL_61_reject = 0; -static const long asn_VAL_61_optional = 0; -static const long asn_VAL_62_id_RANfunctionsModified = 12; -static const long asn_VAL_62_reject = 0; -static const long asn_VAL_62_optional = 0; -static const long asn_VAL_63_id_RANfunctionsDeleted = 11; -static const long asn_VAL_63_reject = 0; -static const long asn_VAL_63_optional = 0; -static const asn_ioc_cell_t asn_IOS_RICserviceUpdate_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_61_id_RANfunctionsAdded }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_61_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctions_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_61_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_62_id_RANfunctionsModified }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_62_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctions_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_62_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_63_id_RANfunctionsDeleted }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_63_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionsID_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_63_optional } -}; -static const asn_ioc_set_t asn_IOS_RICserviceUpdate_IEs_1[] = { - { 3, 4, asn_IOS_RICserviceUpdate_IEs_1_rows } -}; -static const long asn_VAL_66_id_RANfunctionsAccepted = 9; -static const long asn_VAL_66_reject = 0; -static const long asn_VAL_66_optional = 0; -static const long asn_VAL_67_id_RANfunctionsRejected = 13; -static const long asn_VAL_67_reject = 0; -static const long asn_VAL_67_optional = 0; -static const asn_ioc_cell_t asn_IOS_RICserviceUpdateAcknowledge_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_66_id_RANfunctionsAccepted }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_66_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionsID_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_66_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_67_id_RANfunctionsRejected }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_67_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionsIDcause_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_67_optional } -}; -static const asn_ioc_set_t asn_IOS_RICserviceUpdateAcknowledge_IEs_1[] = { - { 2, 4, asn_IOS_RICserviceUpdateAcknowledge_IEs_1_rows } -}; -static const long asn_VAL_69_id_RANfunctionsRejected = 13; -static const long asn_VAL_69_ignore = 1; -static const long asn_VAL_69_optional = 0; -static const long asn_VAL_70_id_TimeToWait = 31; -static const long asn_VAL_70_ignore = 1; -static const long asn_VAL_70_optional = 0; -static const long asn_VAL_71_id_CriticalityDiagnostics = 2; -static const long asn_VAL_71_ignore = 1; -static const long asn_VAL_71_optional = 0; -static const asn_ioc_cell_t asn_IOS_RICserviceUpdateFailure_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_69_id_RANfunctionsRejected }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_69_ignore }, - { "&Value", aioc__type, &asn_DEF_RANfunctionsIDcause_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_69_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_70_id_TimeToWait }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_70_ignore }, - { "&Value", aioc__type, &asn_DEF_TimeToWait }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_70_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_71_id_CriticalityDiagnostics }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_71_ignore }, - { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_71_optional } -}; -static const asn_ioc_set_t asn_IOS_RICserviceUpdateFailure_IEs_1[] = { - { 3, 4, asn_IOS_RICserviceUpdateFailure_IEs_1_rows } -}; -static const long asn_VAL_72_id_RANfunctionsAccepted = 9; -static const long asn_VAL_72_reject = 0; -static const long asn_VAL_72_optional = 0; -static const asn_ioc_cell_t asn_IOS_RICserviceQuery_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_72_id_RANfunctionsAccepted }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_72_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionsID_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_72_optional } -}; -static const asn_ioc_set_t asn_IOS_RICserviceQuery_IEs_1[] = { - { 1, 4, asn_IOS_RICserviceQuery_IEs_1_rows } -}; -static int -memb_id_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_RICaction_ToBeSetup_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICaction_ToBeSetup_ItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICaction_ToBeSetup_ItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_RICaction_ToBeSetup_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICaction_ToBeSetup_ItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICaction_ToBeSetup_ItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_5(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_RICaction_Admitted_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICaction_Admitted_ItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICaction_Admitted_ItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_5(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_RICaction_Admitted_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICaction_Admitted_ItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICaction_Admitted_ItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_5(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_9(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_RICaction_NotAdmitted_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICaction_NotAdmitted_ItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICaction_NotAdmitted_ItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_9(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_RICaction_NotAdmitted_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICaction_NotAdmitted_ItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICaction_NotAdmitted_ItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_9(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_13(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_RANfunction_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RANfunction_ItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RANfunction_ItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_13(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_RANfunction_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RANfunction_ItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RANfunction_ItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_13(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_17(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_RANfunctionID_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RANfunctionID_ItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RANfunctionID_ItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_17(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_RANfunctionID_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RANfunctionID_ItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RANfunctionID_ItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_17(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_21(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_RANfunctionIDcause_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RANfunctionIDcause_ItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RANfunctionIDcause_ItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_21(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_RANfunctionIDcause_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RANfunctionIDcause_ItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RANfunctionIDcause_ItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_21(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_25(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_RICsubscriptionRequest_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionRequest_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionRequest_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_25(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_RICsubscriptionRequest_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionRequest_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionRequest_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_25(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_29(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_RICsubscriptionResponse_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionResponse_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionResponse_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_29(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_RICsubscriptionResponse_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionResponse_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionResponse_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_29(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_33(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_RICsubscriptionFailure_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionFailure_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionFailure_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_33(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_RICsubscriptionFailure_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionFailure_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionFailure_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_33(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_37(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_RICsubscriptionDeleteRequest_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionDeleteRequest_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionDeleteRequest_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_37(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_RICsubscriptionDeleteRequest_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionDeleteRequest_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionDeleteRequest_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_37(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_41(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_RICsubscriptionDeleteResponse_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionDeleteResponse_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionDeleteResponse_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_41(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_RICsubscriptionDeleteResponse_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionDeleteResponse_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionDeleteResponse_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_41(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_45(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_RICsubscriptionDeleteFailure_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionDeleteFailure_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionDeleteFailure_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_45(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_RICsubscriptionDeleteFailure_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionDeleteFailure_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionDeleteFailure_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_45(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_49(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_RICindication_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICindication_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICindication_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_49(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_RICindication_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICindication_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICindication_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_49(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_53(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_RICcontrolRequest_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICcontrolRequest_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICcontrolRequest_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_53(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_RICcontrolRequest_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICcontrolRequest_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICcontrolRequest_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_53(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_57(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_RICcontrolAcknowledge_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICcontrolAcknowledge_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICcontrolAcknowledge_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_57(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_RICcontrolAcknowledge_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICcontrolAcknowledge_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICcontrolAcknowledge_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_57(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_61(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_RICcontrolFailure_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICcontrolFailure_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICcontrolFailure_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_61(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_RICcontrolFailure_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICcontrolFailure_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICcontrolFailure_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_61(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_65(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_ErrorIndication_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_ErrorIndication_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ErrorIndication_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_65(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_ErrorIndication_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_ErrorIndication_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ErrorIndication_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_65(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_69(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_E2setupRequestIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E2setupRequestIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2setupRequestIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_69(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_E2setupRequestIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E2setupRequestIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2setupRequestIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_69(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_73(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_E2setupResponseIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E2setupResponseIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2setupResponseIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_73(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_E2setupResponseIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E2setupResponseIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2setupResponseIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_73(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_77(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_E2setupFailureIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E2setupFailureIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2setupFailureIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_77(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_E2setupFailureIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E2setupFailureIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2setupFailureIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_77(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_81(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_ResetRequestIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_ResetRequestIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ResetRequestIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_81(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_ResetRequestIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_ResetRequestIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ResetRequestIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_81(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_85(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_ResetResponseIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_ResetResponseIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ResetResponseIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_85(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_ResetResponseIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_ResetResponseIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ResetResponseIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_85(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_89(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_RICserviceUpdate_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICserviceUpdate_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICserviceUpdate_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_89(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_RICserviceUpdate_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICserviceUpdate_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICserviceUpdate_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_89(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_93(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_RICserviceUpdateAcknowledge_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICserviceUpdateAcknowledge_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICserviceUpdateAcknowledge_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_93(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_RICserviceUpdateAcknowledge_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICserviceUpdateAcknowledge_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICserviceUpdateAcknowledge_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_93(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_97(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_RICserviceUpdateFailure_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICserviceUpdateFailure_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICserviceUpdateFailure_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_97(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_RICserviceUpdateFailure_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICserviceUpdateFailure_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICserviceUpdateFailure_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_97(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_101(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_RICserviceQuery_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICserviceQuery_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICserviceQuery_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_101(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_RICserviceQuery_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICserviceQuery_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICserviceQuery_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_101(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_per_constraints_t asn_PER_memb_id_constr_2 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_3 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_4 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_6 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_7 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_8 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_10 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_11 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_12 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_14 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_15 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_16 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_18 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_19 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_20 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_22 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_23 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_24 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_26 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_27 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_28 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_30 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_31 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_32 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_34 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_35 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_36 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_38 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_39 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_40 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_42 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_43 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_44 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_46 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_47 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_48 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_50 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_51 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_52 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_54 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_55 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_56 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_58 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_59 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_60 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_62 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_63 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_64 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_66 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_67 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_68 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_70 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_71 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_72 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_74 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_75 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_76 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_78 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_79 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_80 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_82 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_83 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_84 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_86 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_87 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_88 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_90 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_91 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_92 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_94 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_95 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_96 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_98 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_99 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_100 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_102 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_103 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_104 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_value_4[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICaction_ToBeSetup_ItemIEs__value, choice.RICaction_ToBeSetup_Item), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICaction_ToBeSetup_Item, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICaction-ToBeSetup-Item" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_4[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RICaction-ToBeSetup-Item */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_4 = { - sizeof(struct RICaction_ToBeSetup_ItemIEs__value), - offsetof(struct RICaction_ToBeSetup_ItemIEs__value, _asn_ctx), - offsetof(struct RICaction_ToBeSetup_ItemIEs__value, present), - sizeof(((struct RICaction_ToBeSetup_ItemIEs__value *)0)->present), - asn_MAP_value_tag2el_4, - 1, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_4 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_4, - 1, /* Elements count */ - &asn_SPC_value_specs_4 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_RICaction_ToBeSetup_ItemIEs_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICaction_ToBeSetup_ItemIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_2, memb_id_constraint_1 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICaction_ToBeSetup_ItemIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_RICaction_ToBeSetup_ItemIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_3, memb_criticality_constraint_1 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICaction_ToBeSetup_ItemIEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_4, - select_RICaction_ToBeSetup_ItemIEs_value_type, - { 0, &asn_PER_memb_value_constr_4, memb_value_constraint_1 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICaction_ToBeSetup_ItemIEs_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICaction_ToBeSetup_ItemIEs_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICaction_ToBeSetup_ItemIEs_specs_1 = { - sizeof(struct RICaction_ToBeSetup_ItemIEs), - offsetof(struct RICaction_ToBeSetup_ItemIEs, _asn_ctx), - asn_MAP_RICaction_ToBeSetup_ItemIEs_tag2el_1, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICaction_ToBeSetup_ItemIEs = { - "RICaction-ToBeSetup-ItemIEs", - "RICaction-ToBeSetup-ItemIEs", - &asn_OP_SEQUENCE, - asn_DEF_RICaction_ToBeSetup_ItemIEs_tags_1, - sizeof(asn_DEF_RICaction_ToBeSetup_ItemIEs_tags_1) - /sizeof(asn_DEF_RICaction_ToBeSetup_ItemIEs_tags_1[0]), /* 1 */ - asn_DEF_RICaction_ToBeSetup_ItemIEs_tags_1, /* Same as above */ - sizeof(asn_DEF_RICaction_ToBeSetup_ItemIEs_tags_1) - /sizeof(asn_DEF_RICaction_ToBeSetup_ItemIEs_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICaction_ToBeSetup_ItemIEs_1, - 3, /* Elements count */ - &asn_SPC_RICaction_ToBeSetup_ItemIEs_specs_1 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_8[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICaction_Admitted_ItemIEs__value, choice.RICaction_Admitted_Item), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICaction_Admitted_Item, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICaction-Admitted-Item" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_8[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RICaction-Admitted-Item */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_8 = { - sizeof(struct RICaction_Admitted_ItemIEs__value), - offsetof(struct RICaction_Admitted_ItemIEs__value, _asn_ctx), - offsetof(struct RICaction_Admitted_ItemIEs__value, present), - sizeof(((struct RICaction_Admitted_ItemIEs__value *)0)->present), - asn_MAP_value_tag2el_8, - 1, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_8 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_8, - 1, /* Elements count */ - &asn_SPC_value_specs_8 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_RICaction_Admitted_ItemIEs_5[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICaction_Admitted_ItemIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_6, memb_id_constraint_5 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICaction_Admitted_ItemIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_RICaction_Admitted_ItemIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_7, memb_criticality_constraint_5 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICaction_Admitted_ItemIEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_8, - select_RICaction_Admitted_ItemIEs_value_type, - { 0, &asn_PER_memb_value_constr_8, memb_value_constraint_5 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICaction_Admitted_ItemIEs_tags_5[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICaction_Admitted_ItemIEs_tag2el_5[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICaction_Admitted_ItemIEs_specs_5 = { - sizeof(struct RICaction_Admitted_ItemIEs), - offsetof(struct RICaction_Admitted_ItemIEs, _asn_ctx), - asn_MAP_RICaction_Admitted_ItemIEs_tag2el_5, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICaction_Admitted_ItemIEs = { - "RICaction-Admitted-ItemIEs", - "RICaction-Admitted-ItemIEs", - &asn_OP_SEQUENCE, - asn_DEF_RICaction_Admitted_ItemIEs_tags_5, - sizeof(asn_DEF_RICaction_Admitted_ItemIEs_tags_5) - /sizeof(asn_DEF_RICaction_Admitted_ItemIEs_tags_5[0]), /* 1 */ - asn_DEF_RICaction_Admitted_ItemIEs_tags_5, /* Same as above */ - sizeof(asn_DEF_RICaction_Admitted_ItemIEs_tags_5) - /sizeof(asn_DEF_RICaction_Admitted_ItemIEs_tags_5[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICaction_Admitted_ItemIEs_5, - 3, /* Elements count */ - &asn_SPC_RICaction_Admitted_ItemIEs_specs_5 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_12[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICaction_NotAdmitted_ItemIEs__value, choice.RICaction_NotAdmitted_Item), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICaction_NotAdmitted_Item, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICaction-NotAdmitted-Item" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_12[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RICaction-NotAdmitted-Item */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_12 = { - sizeof(struct RICaction_NotAdmitted_ItemIEs__value), - offsetof(struct RICaction_NotAdmitted_ItemIEs__value, _asn_ctx), - offsetof(struct RICaction_NotAdmitted_ItemIEs__value, present), - sizeof(((struct RICaction_NotAdmitted_ItemIEs__value *)0)->present), - asn_MAP_value_tag2el_12, - 1, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_12 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_12, - 1, /* Elements count */ - &asn_SPC_value_specs_12 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_RICaction_NotAdmitted_ItemIEs_9[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICaction_NotAdmitted_ItemIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_10, memb_id_constraint_9 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICaction_NotAdmitted_ItemIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_RICaction_NotAdmitted_ItemIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_11, memb_criticality_constraint_9 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICaction_NotAdmitted_ItemIEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_12, - select_RICaction_NotAdmitted_ItemIEs_value_type, - { 0, &asn_PER_memb_value_constr_12, memb_value_constraint_9 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICaction_NotAdmitted_ItemIEs_tags_9[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICaction_NotAdmitted_ItemIEs_tag2el_9[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICaction_NotAdmitted_ItemIEs_specs_9 = { - sizeof(struct RICaction_NotAdmitted_ItemIEs), - offsetof(struct RICaction_NotAdmitted_ItemIEs, _asn_ctx), - asn_MAP_RICaction_NotAdmitted_ItemIEs_tag2el_9, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICaction_NotAdmitted_ItemIEs = { - "RICaction-NotAdmitted-ItemIEs", - "RICaction-NotAdmitted-ItemIEs", - &asn_OP_SEQUENCE, - asn_DEF_RICaction_NotAdmitted_ItemIEs_tags_9, - sizeof(asn_DEF_RICaction_NotAdmitted_ItemIEs_tags_9) - /sizeof(asn_DEF_RICaction_NotAdmitted_ItemIEs_tags_9[0]), /* 1 */ - asn_DEF_RICaction_NotAdmitted_ItemIEs_tags_9, /* Same as above */ - sizeof(asn_DEF_RICaction_NotAdmitted_ItemIEs_tags_9) - /sizeof(asn_DEF_RICaction_NotAdmitted_ItemIEs_tags_9[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICaction_NotAdmitted_ItemIEs_9, - 3, /* Elements count */ - &asn_SPC_RICaction_NotAdmitted_ItemIEs_specs_9 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_16[] = { - { ATF_NOFLAGS, 0, offsetof(struct RANfunction_ItemIEs__value, choice.RANfunction_Item), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RANfunction_Item, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RANfunction-Item" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_16[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RANfunction-Item */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_16 = { - sizeof(struct RANfunction_ItemIEs__value), - offsetof(struct RANfunction_ItemIEs__value, _asn_ctx), - offsetof(struct RANfunction_ItemIEs__value, present), - sizeof(((struct RANfunction_ItemIEs__value *)0)->present), - asn_MAP_value_tag2el_16, - 1, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_16 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_16, - 1, /* Elements count */ - &asn_SPC_value_specs_16 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_RANfunction_ItemIEs_13[] = { - { ATF_NOFLAGS, 0, offsetof(struct RANfunction_ItemIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_14, memb_id_constraint_13 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct RANfunction_ItemIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_RANfunction_ItemIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_15, memb_criticality_constraint_13 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RANfunction_ItemIEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_16, - select_RANfunction_ItemIEs_value_type, - { 0, &asn_PER_memb_value_constr_16, memb_value_constraint_13 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_RANfunction_ItemIEs_tags_13[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RANfunction_ItemIEs_tag2el_13[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RANfunction_ItemIEs_specs_13 = { - sizeof(struct RANfunction_ItemIEs), - offsetof(struct RANfunction_ItemIEs, _asn_ctx), - asn_MAP_RANfunction_ItemIEs_tag2el_13, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RANfunction_ItemIEs = { - "RANfunction-ItemIEs", - "RANfunction-ItemIEs", - &asn_OP_SEQUENCE, - asn_DEF_RANfunction_ItemIEs_tags_13, - sizeof(asn_DEF_RANfunction_ItemIEs_tags_13) - /sizeof(asn_DEF_RANfunction_ItemIEs_tags_13[0]), /* 1 */ - asn_DEF_RANfunction_ItemIEs_tags_13, /* Same as above */ - sizeof(asn_DEF_RANfunction_ItemIEs_tags_13) - /sizeof(asn_DEF_RANfunction_ItemIEs_tags_13[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RANfunction_ItemIEs_13, - 3, /* Elements count */ - &asn_SPC_RANfunction_ItemIEs_specs_13 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_20[] = { - { ATF_NOFLAGS, 0, offsetof(struct RANfunctionID_ItemIEs__value, choice.RANfunctionID_Item), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RANfunctionID_Item, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RANfunctionID-Item" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_20[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RANfunctionID-Item */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_20 = { - sizeof(struct RANfunctionID_ItemIEs__value), - offsetof(struct RANfunctionID_ItemIEs__value, _asn_ctx), - offsetof(struct RANfunctionID_ItemIEs__value, present), - sizeof(((struct RANfunctionID_ItemIEs__value *)0)->present), - asn_MAP_value_tag2el_20, - 1, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_20 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_20, - 1, /* Elements count */ - &asn_SPC_value_specs_20 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_RANfunctionID_ItemIEs_17[] = { - { ATF_NOFLAGS, 0, offsetof(struct RANfunctionID_ItemIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_18, memb_id_constraint_17 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct RANfunctionID_ItemIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_RANfunctionID_ItemIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_19, memb_criticality_constraint_17 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RANfunctionID_ItemIEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_20, - select_RANfunctionID_ItemIEs_value_type, - { 0, &asn_PER_memb_value_constr_20, memb_value_constraint_17 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_RANfunctionID_ItemIEs_tags_17[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RANfunctionID_ItemIEs_tag2el_17[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RANfunctionID_ItemIEs_specs_17 = { - sizeof(struct RANfunctionID_ItemIEs), - offsetof(struct RANfunctionID_ItemIEs, _asn_ctx), - asn_MAP_RANfunctionID_ItemIEs_tag2el_17, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RANfunctionID_ItemIEs = { - "RANfunctionID-ItemIEs", - "RANfunctionID-ItemIEs", - &asn_OP_SEQUENCE, - asn_DEF_RANfunctionID_ItemIEs_tags_17, - sizeof(asn_DEF_RANfunctionID_ItemIEs_tags_17) - /sizeof(asn_DEF_RANfunctionID_ItemIEs_tags_17[0]), /* 1 */ - asn_DEF_RANfunctionID_ItemIEs_tags_17, /* Same as above */ - sizeof(asn_DEF_RANfunctionID_ItemIEs_tags_17) - /sizeof(asn_DEF_RANfunctionID_ItemIEs_tags_17[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RANfunctionID_ItemIEs_17, - 3, /* Elements count */ - &asn_SPC_RANfunctionID_ItemIEs_specs_17 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_24[] = { - { ATF_NOFLAGS, 0, offsetof(struct RANfunctionIDcause_ItemIEs__value, choice.RANfunctionIDcause_Item), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RANfunctionIDcause_Item, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RANfunctionIDcause-Item" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_24[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RANfunctionIDcause-Item */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_24 = { - sizeof(struct RANfunctionIDcause_ItemIEs__value), - offsetof(struct RANfunctionIDcause_ItemIEs__value, _asn_ctx), - offsetof(struct RANfunctionIDcause_ItemIEs__value, present), - sizeof(((struct RANfunctionIDcause_ItemIEs__value *)0)->present), - asn_MAP_value_tag2el_24, - 1, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_24 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_24, - 1, /* Elements count */ - &asn_SPC_value_specs_24 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_RANfunctionIDcause_ItemIEs_21[] = { - { ATF_NOFLAGS, 0, offsetof(struct RANfunctionIDcause_ItemIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_22, memb_id_constraint_21 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct RANfunctionIDcause_ItemIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_RANfunctionIDcause_ItemIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_23, memb_criticality_constraint_21 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RANfunctionIDcause_ItemIEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_24, - select_RANfunctionIDcause_ItemIEs_value_type, - { 0, &asn_PER_memb_value_constr_24, memb_value_constraint_21 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_RANfunctionIDcause_ItemIEs_tags_21[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RANfunctionIDcause_ItemIEs_tag2el_21[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RANfunctionIDcause_ItemIEs_specs_21 = { - sizeof(struct RANfunctionIDcause_ItemIEs), - offsetof(struct RANfunctionIDcause_ItemIEs, _asn_ctx), - asn_MAP_RANfunctionIDcause_ItemIEs_tag2el_21, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RANfunctionIDcause_ItemIEs = { - "RANfunctionIDcause-ItemIEs", - "RANfunctionIDcause-ItemIEs", - &asn_OP_SEQUENCE, - asn_DEF_RANfunctionIDcause_ItemIEs_tags_21, - sizeof(asn_DEF_RANfunctionIDcause_ItemIEs_tags_21) - /sizeof(asn_DEF_RANfunctionIDcause_ItemIEs_tags_21[0]), /* 1 */ - asn_DEF_RANfunctionIDcause_ItemIEs_tags_21, /* Same as above */ - sizeof(asn_DEF_RANfunctionIDcause_ItemIEs_tags_21) - /sizeof(asn_DEF_RANfunctionIDcause_ItemIEs_tags_21[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RANfunctionIDcause_ItemIEs_21, - 3, /* Elements count */ - &asn_SPC_RANfunctionIDcause_ItemIEs_specs_21 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_28[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionRequest_IEs__value, choice.RICrequestID), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICrequestID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICrequestID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionRequest_IEs__value, choice.RANfunctionID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_RANfunctionID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RANfunctionID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionRequest_IEs__value, choice.RICsubscriptionDetails), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICsubscriptionDetails, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICsubscriptionDetails" - }, -}; -static const unsigned asn_MAP_value_to_canonical_28[] = { 1, 0, 2 }; -static const unsigned asn_MAP_value_from_canonical_28[] = { 1, 0, 2 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_28[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* RANfunctionID */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 1 }, /* RICrequestID */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -1, 0 } /* RICsubscriptionDetails */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_28 = { - sizeof(struct RICsubscriptionRequest_IEs__value), - offsetof(struct RICsubscriptionRequest_IEs__value, _asn_ctx), - offsetof(struct RICsubscriptionRequest_IEs__value, present), - sizeof(((struct RICsubscriptionRequest_IEs__value *)0)->present), - asn_MAP_value_tag2el_28, - 3, /* Count of tags in the map */ - asn_MAP_value_to_canonical_28, - asn_MAP_value_from_canonical_28, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_28 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_28, - 3, /* Elements count */ - &asn_SPC_value_specs_28 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_RICsubscriptionRequest_IEs_25[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionRequest_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_26, memb_id_constraint_25 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionRequest_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_RICsubscriptionRequest_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_27, memb_criticality_constraint_25 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionRequest_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_28, - select_RICsubscriptionRequest_IEs_value_type, - { 0, &asn_PER_memb_value_constr_28, memb_value_constraint_25 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICsubscriptionRequest_IEs_tags_25[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionRequest_IEs_tag2el_25[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionRequest_IEs_specs_25 = { - sizeof(struct RICsubscriptionRequest_IEs), - offsetof(struct RICsubscriptionRequest_IEs, _asn_ctx), - asn_MAP_RICsubscriptionRequest_IEs_tag2el_25, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICsubscriptionRequest_IEs = { - "RICsubscriptionRequest-IEs", - "RICsubscriptionRequest-IEs", - &asn_OP_SEQUENCE, - asn_DEF_RICsubscriptionRequest_IEs_tags_25, - sizeof(asn_DEF_RICsubscriptionRequest_IEs_tags_25) - /sizeof(asn_DEF_RICsubscriptionRequest_IEs_tags_25[0]), /* 1 */ - asn_DEF_RICsubscriptionRequest_IEs_tags_25, /* Same as above */ - sizeof(asn_DEF_RICsubscriptionRequest_IEs_tags_25) - /sizeof(asn_DEF_RICsubscriptionRequest_IEs_tags_25[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICsubscriptionRequest_IEs_25, - 3, /* Elements count */ - &asn_SPC_RICsubscriptionRequest_IEs_specs_25 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_32[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionResponse_IEs__value, choice.RICrequestID), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICrequestID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICrequestID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionResponse_IEs__value, choice.RANfunctionID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_RANfunctionID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RANfunctionID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionResponse_IEs__value, choice.RICaction_Admitted_List), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICaction_Admitted_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICaction-Admitted-List" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionResponse_IEs__value, choice.RICaction_NotAdmitted_List), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICaction_NotAdmitted_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICaction-NotAdmitted-List" - }, -}; -static const unsigned asn_MAP_value_to_canonical_32[] = { 1, 0, 2, 3 }; -static const unsigned asn_MAP_value_from_canonical_32[] = { 1, 0, 2, 3 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_32[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* RANfunctionID */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 2 }, /* RICrequestID */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -1, 1 }, /* RICaction-Admitted-List */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -2, 0 } /* RICaction-NotAdmitted-List */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_32 = { - sizeof(struct RICsubscriptionResponse_IEs__value), - offsetof(struct RICsubscriptionResponse_IEs__value, _asn_ctx), - offsetof(struct RICsubscriptionResponse_IEs__value, present), - sizeof(((struct RICsubscriptionResponse_IEs__value *)0)->present), - asn_MAP_value_tag2el_32, - 4, /* Count of tags in the map */ - asn_MAP_value_to_canonical_32, - asn_MAP_value_from_canonical_32, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_32 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_32, - 4, /* Elements count */ - &asn_SPC_value_specs_32 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_RICsubscriptionResponse_IEs_29[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionResponse_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_30, memb_id_constraint_29 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionResponse_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_RICsubscriptionResponse_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_31, memb_criticality_constraint_29 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionResponse_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_32, - select_RICsubscriptionResponse_IEs_value_type, - { 0, &asn_PER_memb_value_constr_32, memb_value_constraint_29 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICsubscriptionResponse_IEs_tags_29[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionResponse_IEs_tag2el_29[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionResponse_IEs_specs_29 = { - sizeof(struct RICsubscriptionResponse_IEs), - offsetof(struct RICsubscriptionResponse_IEs, _asn_ctx), - asn_MAP_RICsubscriptionResponse_IEs_tag2el_29, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICsubscriptionResponse_IEs = { - "RICsubscriptionResponse-IEs", - "RICsubscriptionResponse-IEs", - &asn_OP_SEQUENCE, - asn_DEF_RICsubscriptionResponse_IEs_tags_29, - sizeof(asn_DEF_RICsubscriptionResponse_IEs_tags_29) - /sizeof(asn_DEF_RICsubscriptionResponse_IEs_tags_29[0]), /* 1 */ - asn_DEF_RICsubscriptionResponse_IEs_tags_29, /* Same as above */ - sizeof(asn_DEF_RICsubscriptionResponse_IEs_tags_29) - /sizeof(asn_DEF_RICsubscriptionResponse_IEs_tags_29[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICsubscriptionResponse_IEs_29, - 3, /* Elements count */ - &asn_SPC_RICsubscriptionResponse_IEs_specs_29 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_36[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionFailure_IEs__value, choice.RICrequestID), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICrequestID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICrequestID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionFailure_IEs__value, choice.RANfunctionID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_RANfunctionID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RANfunctionID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionFailure_IEs__value, choice.RICaction_NotAdmitted_List), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICaction_NotAdmitted_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICaction-NotAdmitted-List" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionFailure_IEs__value, choice.CriticalityDiagnostics), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CriticalityDiagnostics, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "CriticalityDiagnostics" - }, -}; -static const unsigned asn_MAP_value_to_canonical_36[] = { 1, 0, 2, 3 }; -static const unsigned asn_MAP_value_from_canonical_36[] = { 1, 0, 2, 3 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_36[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* RANfunctionID */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 2 }, /* RICrequestID */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -1, 1 }, /* RICaction-NotAdmitted-List */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -2, 0 } /* CriticalityDiagnostics */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_36 = { - sizeof(struct RICsubscriptionFailure_IEs__value), - offsetof(struct RICsubscriptionFailure_IEs__value, _asn_ctx), - offsetof(struct RICsubscriptionFailure_IEs__value, present), - sizeof(((struct RICsubscriptionFailure_IEs__value *)0)->present), - asn_MAP_value_tag2el_36, - 4, /* Count of tags in the map */ - asn_MAP_value_to_canonical_36, - asn_MAP_value_from_canonical_36, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_36 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_36, - 4, /* Elements count */ - &asn_SPC_value_specs_36 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_RICsubscriptionFailure_IEs_33[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionFailure_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_34, memb_id_constraint_33 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionFailure_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_RICsubscriptionFailure_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_35, memb_criticality_constraint_33 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionFailure_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_36, - select_RICsubscriptionFailure_IEs_value_type, - { 0, &asn_PER_memb_value_constr_36, memb_value_constraint_33 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICsubscriptionFailure_IEs_tags_33[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionFailure_IEs_tag2el_33[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionFailure_IEs_specs_33 = { - sizeof(struct RICsubscriptionFailure_IEs), - offsetof(struct RICsubscriptionFailure_IEs, _asn_ctx), - asn_MAP_RICsubscriptionFailure_IEs_tag2el_33, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICsubscriptionFailure_IEs = { - "RICsubscriptionFailure-IEs", - "RICsubscriptionFailure-IEs", - &asn_OP_SEQUENCE, - asn_DEF_RICsubscriptionFailure_IEs_tags_33, - sizeof(asn_DEF_RICsubscriptionFailure_IEs_tags_33) - /sizeof(asn_DEF_RICsubscriptionFailure_IEs_tags_33[0]), /* 1 */ - asn_DEF_RICsubscriptionFailure_IEs_tags_33, /* Same as above */ - sizeof(asn_DEF_RICsubscriptionFailure_IEs_tags_33) - /sizeof(asn_DEF_RICsubscriptionFailure_IEs_tags_33[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICsubscriptionFailure_IEs_33, - 3, /* Elements count */ - &asn_SPC_RICsubscriptionFailure_IEs_specs_33 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_40[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteRequest_IEs__value, choice.RICrequestID), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICrequestID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICrequestID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteRequest_IEs__value, choice.RANfunctionID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_RANfunctionID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RANfunctionID" - }, -}; -static const unsigned asn_MAP_value_to_canonical_40[] = { 1, 0 }; -static const unsigned asn_MAP_value_from_canonical_40[] = { 1, 0 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_40[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* RANfunctionID */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RICrequestID */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_40 = { - sizeof(struct RICsubscriptionDeleteRequest_IEs__value), - offsetof(struct RICsubscriptionDeleteRequest_IEs__value, _asn_ctx), - offsetof(struct RICsubscriptionDeleteRequest_IEs__value, present), - sizeof(((struct RICsubscriptionDeleteRequest_IEs__value *)0)->present), - asn_MAP_value_tag2el_40, - 2, /* Count of tags in the map */ - asn_MAP_value_to_canonical_40, - asn_MAP_value_from_canonical_40, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_40 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_40, - 2, /* Elements count */ - &asn_SPC_value_specs_40 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteRequest_IEs_37[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteRequest_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_38, memb_id_constraint_37 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteRequest_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_RICsubscriptionDeleteRequest_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_39, memb_criticality_constraint_37 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteRequest_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_40, - select_RICsubscriptionDeleteRequest_IEs_value_type, - { 0, &asn_PER_memb_value_constr_40, memb_value_constraint_37 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICsubscriptionDeleteRequest_IEs_tags_37[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionDeleteRequest_IEs_tag2el_37[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteRequest_IEs_specs_37 = { - sizeof(struct RICsubscriptionDeleteRequest_IEs), - offsetof(struct RICsubscriptionDeleteRequest_IEs, _asn_ctx), - asn_MAP_RICsubscriptionDeleteRequest_IEs_tag2el_37, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDeleteRequest_IEs = { - "RICsubscriptionDeleteRequest-IEs", - "RICsubscriptionDeleteRequest-IEs", - &asn_OP_SEQUENCE, - asn_DEF_RICsubscriptionDeleteRequest_IEs_tags_37, - sizeof(asn_DEF_RICsubscriptionDeleteRequest_IEs_tags_37) - /sizeof(asn_DEF_RICsubscriptionDeleteRequest_IEs_tags_37[0]), /* 1 */ - asn_DEF_RICsubscriptionDeleteRequest_IEs_tags_37, /* Same as above */ - sizeof(asn_DEF_RICsubscriptionDeleteRequest_IEs_tags_37) - /sizeof(asn_DEF_RICsubscriptionDeleteRequest_IEs_tags_37[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICsubscriptionDeleteRequest_IEs_37, - 3, /* Elements count */ - &asn_SPC_RICsubscriptionDeleteRequest_IEs_specs_37 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_44[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteResponse_IEs__value, choice.RICrequestID), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICrequestID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICrequestID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteResponse_IEs__value, choice.RANfunctionID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_RANfunctionID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RANfunctionID" - }, -}; -static const unsigned asn_MAP_value_to_canonical_44[] = { 1, 0 }; -static const unsigned asn_MAP_value_from_canonical_44[] = { 1, 0 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_44[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* RANfunctionID */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RICrequestID */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_44 = { - sizeof(struct RICsubscriptionDeleteResponse_IEs__value), - offsetof(struct RICsubscriptionDeleteResponse_IEs__value, _asn_ctx), - offsetof(struct RICsubscriptionDeleteResponse_IEs__value, present), - sizeof(((struct RICsubscriptionDeleteResponse_IEs__value *)0)->present), - asn_MAP_value_tag2el_44, - 2, /* Count of tags in the map */ - asn_MAP_value_to_canonical_44, - asn_MAP_value_from_canonical_44, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_44 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_44, - 2, /* Elements count */ - &asn_SPC_value_specs_44 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteResponse_IEs_41[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteResponse_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_42, memb_id_constraint_41 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteResponse_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_RICsubscriptionDeleteResponse_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_43, memb_criticality_constraint_41 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteResponse_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_44, - select_RICsubscriptionDeleteResponse_IEs_value_type, - { 0, &asn_PER_memb_value_constr_44, memb_value_constraint_41 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICsubscriptionDeleteResponse_IEs_tags_41[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionDeleteResponse_IEs_tag2el_41[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteResponse_IEs_specs_41 = { - sizeof(struct RICsubscriptionDeleteResponse_IEs), - offsetof(struct RICsubscriptionDeleteResponse_IEs, _asn_ctx), - asn_MAP_RICsubscriptionDeleteResponse_IEs_tag2el_41, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDeleteResponse_IEs = { - "RICsubscriptionDeleteResponse-IEs", - "RICsubscriptionDeleteResponse-IEs", - &asn_OP_SEQUENCE, - asn_DEF_RICsubscriptionDeleteResponse_IEs_tags_41, - sizeof(asn_DEF_RICsubscriptionDeleteResponse_IEs_tags_41) - /sizeof(asn_DEF_RICsubscriptionDeleteResponse_IEs_tags_41[0]), /* 1 */ - asn_DEF_RICsubscriptionDeleteResponse_IEs_tags_41, /* Same as above */ - sizeof(asn_DEF_RICsubscriptionDeleteResponse_IEs_tags_41) - /sizeof(asn_DEF_RICsubscriptionDeleteResponse_IEs_tags_41[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICsubscriptionDeleteResponse_IEs_41, - 3, /* Elements count */ - &asn_SPC_RICsubscriptionDeleteResponse_IEs_specs_41 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_48[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteFailure_IEs__value, choice.RICrequestID), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICrequestID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICrequestID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteFailure_IEs__value, choice.RANfunctionID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_RANfunctionID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RANfunctionID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteFailure_IEs__value, choice.Cause), - -1 /* Ambiguous tag (CHOICE?) */, - 0, - &asn_DEF_Cause, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "Cause" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteFailure_IEs__value, choice.CriticalityDiagnostics), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CriticalityDiagnostics, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "CriticalityDiagnostics" - }, -}; -static const unsigned asn_MAP_value_to_canonical_48[] = { 1, 0, 3, 2 }; -static const unsigned asn_MAP_value_from_canonical_48[] = { 1, 0, 3, 2 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_48[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* RANfunctionID */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 1 }, /* RICrequestID */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -1, 0 }, /* CriticalityDiagnostics */ - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 2, 0, 0 }, /* ricRequest */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 2, 0, 0 }, /* ricService */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* transport */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 2, 0, 0 }, /* protocol */ - { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 2, 0, 0 } /* misc */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_48 = { - sizeof(struct RICsubscriptionDeleteFailure_IEs__value), - offsetof(struct RICsubscriptionDeleteFailure_IEs__value, _asn_ctx), - offsetof(struct RICsubscriptionDeleteFailure_IEs__value, present), - sizeof(((struct RICsubscriptionDeleteFailure_IEs__value *)0)->present), - asn_MAP_value_tag2el_48, - 8, /* Count of tags in the map */ - asn_MAP_value_to_canonical_48, - asn_MAP_value_from_canonical_48, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_48 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_48, - 4, /* Elements count */ - &asn_SPC_value_specs_48 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteFailure_IEs_45[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteFailure_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_46, memb_id_constraint_45 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteFailure_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_RICsubscriptionDeleteFailure_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_47, memb_criticality_constraint_45 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteFailure_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_48, - select_RICsubscriptionDeleteFailure_IEs_value_type, - { 0, &asn_PER_memb_value_constr_48, memb_value_constraint_45 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICsubscriptionDeleteFailure_IEs_tags_45[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionDeleteFailure_IEs_tag2el_45[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteFailure_IEs_specs_45 = { - sizeof(struct RICsubscriptionDeleteFailure_IEs), - offsetof(struct RICsubscriptionDeleteFailure_IEs, _asn_ctx), - asn_MAP_RICsubscriptionDeleteFailure_IEs_tag2el_45, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDeleteFailure_IEs = { - "RICsubscriptionDeleteFailure-IEs", - "RICsubscriptionDeleteFailure-IEs", - &asn_OP_SEQUENCE, - asn_DEF_RICsubscriptionDeleteFailure_IEs_tags_45, - sizeof(asn_DEF_RICsubscriptionDeleteFailure_IEs_tags_45) - /sizeof(asn_DEF_RICsubscriptionDeleteFailure_IEs_tags_45[0]), /* 1 */ - asn_DEF_RICsubscriptionDeleteFailure_IEs_tags_45, /* Same as above */ - sizeof(asn_DEF_RICsubscriptionDeleteFailure_IEs_tags_45) - /sizeof(asn_DEF_RICsubscriptionDeleteFailure_IEs_tags_45[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICsubscriptionDeleteFailure_IEs_45, - 3, /* Elements count */ - &asn_SPC_RICsubscriptionDeleteFailure_IEs_specs_45 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_52[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICindication_IEs__value, choice.RICrequestID), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICrequestID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICrequestID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICindication_IEs__value, choice.RANfunctionID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_RANfunctionID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RANfunctionID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICindication_IEs__value, choice.RICactionID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_RICactionID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICactionID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICindication_IEs__value, choice.RICindicationSN), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_RICindicationSN, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICindicationSN" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICindication_IEs__value, choice.RICindicationType), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_RICindicationType, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICindicationType" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICindication_IEs__value, choice.RICindicationHeader), - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), - 0, - &asn_DEF_RICindicationHeader, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICindicationHeader" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICindication_IEs__value, choice.RICindicationMessage), - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), - 0, - &asn_DEF_RICindicationMessage, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICindicationMessage" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICindication_IEs__value, choice.RICcallProcessID), - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), - 0, - &asn_DEF_RICcallProcessID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICcallProcessID" - }, -}; -static const unsigned asn_MAP_value_to_canonical_52[] = { 1, 2, 3, 5, 6, 7, 4, 0 }; -static const unsigned asn_MAP_value_from_canonical_52[] = { 7, 0, 1, 2, 6, 3, 4, 5 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_52[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 2 }, /* RANfunctionID */ - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 2, -1, 1 }, /* RICactionID */ - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 3, -2, 0 }, /* RICindicationSN */ - { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 5, 0, 2 }, /* RICindicationHeader */ - { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 6, -1, 1 }, /* RICindicationMessage */ - { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 7, -2, 0 }, /* RICcallProcessID */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 4, 0, 0 }, /* RICindicationType */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RICrequestID */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_52 = { - sizeof(struct RICindication_IEs__value), - offsetof(struct RICindication_IEs__value, _asn_ctx), - offsetof(struct RICindication_IEs__value, present), - sizeof(((struct RICindication_IEs__value *)0)->present), - asn_MAP_value_tag2el_52, - 8, /* Count of tags in the map */ - asn_MAP_value_to_canonical_52, - asn_MAP_value_from_canonical_52, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_52 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_52, - 8, /* Elements count */ - &asn_SPC_value_specs_52 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_RICindication_IEs_49[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICindication_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_50, memb_id_constraint_49 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICindication_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_RICindication_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_51, memb_criticality_constraint_49 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICindication_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_52, - select_RICindication_IEs_value_type, - { 0, &asn_PER_memb_value_constr_52, memb_value_constraint_49 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICindication_IEs_tags_49[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICindication_IEs_tag2el_49[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICindication_IEs_specs_49 = { - sizeof(struct RICindication_IEs), - offsetof(struct RICindication_IEs, _asn_ctx), - asn_MAP_RICindication_IEs_tag2el_49, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICindication_IEs = { - "RICindication-IEs", - "RICindication-IEs", - &asn_OP_SEQUENCE, - asn_DEF_RICindication_IEs_tags_49, - sizeof(asn_DEF_RICindication_IEs_tags_49) - /sizeof(asn_DEF_RICindication_IEs_tags_49[0]), /* 1 */ - asn_DEF_RICindication_IEs_tags_49, /* Same as above */ - sizeof(asn_DEF_RICindication_IEs_tags_49) - /sizeof(asn_DEF_RICindication_IEs_tags_49[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICindication_IEs_49, - 3, /* Elements count */ - &asn_SPC_RICindication_IEs_specs_49 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_56[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolRequest_IEs__value, choice.RICrequestID), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICrequestID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICrequestID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolRequest_IEs__value, choice.RANfunctionID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_RANfunctionID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RANfunctionID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolRequest_IEs__value, choice.RICcallProcessID), - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), - 0, - &asn_DEF_RICcallProcessID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICcallProcessID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolRequest_IEs__value, choice.RICcontrolHeader), - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), - 0, - &asn_DEF_RICcontrolHeader, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICcontrolHeader" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolRequest_IEs__value, choice.RICcontrolMessage), - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), - 0, - &asn_DEF_RICcontrolMessage, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICcontrolMessage" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolRequest_IEs__value, choice.RICcontrolAckRequest), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_RICcontrolAckRequest, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICcontrolAckRequest" - }, -}; -static const unsigned asn_MAP_value_to_canonical_56[] = { 1, 2, 3, 4, 5, 0 }; -static const unsigned asn_MAP_value_from_canonical_56[] = { 5, 0, 1, 2, 3, 4 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_56[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* RANfunctionID */ - { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 2, 0, 2 }, /* RICcallProcessID */ - { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 3, -1, 1 }, /* RICcontrolHeader */ - { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 4, -2, 0 }, /* RICcontrolMessage */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 5, 0, 0 }, /* RICcontrolAckRequest */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RICrequestID */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_56 = { - sizeof(struct RICcontrolRequest_IEs__value), - offsetof(struct RICcontrolRequest_IEs__value, _asn_ctx), - offsetof(struct RICcontrolRequest_IEs__value, present), - sizeof(((struct RICcontrolRequest_IEs__value *)0)->present), - asn_MAP_value_tag2el_56, - 6, /* Count of tags in the map */ - asn_MAP_value_to_canonical_56, - asn_MAP_value_from_canonical_56, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_56 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_56, - 6, /* Elements count */ - &asn_SPC_value_specs_56 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_RICcontrolRequest_IEs_53[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolRequest_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_54, memb_id_constraint_53 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolRequest_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_RICcontrolRequest_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_55, memb_criticality_constraint_53 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICcontrolRequest_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_56, - select_RICcontrolRequest_IEs_value_type, - { 0, &asn_PER_memb_value_constr_56, memb_value_constraint_53 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICcontrolRequest_IEs_tags_53[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICcontrolRequest_IEs_tag2el_53[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICcontrolRequest_IEs_specs_53 = { - sizeof(struct RICcontrolRequest_IEs), - offsetof(struct RICcontrolRequest_IEs, _asn_ctx), - asn_MAP_RICcontrolRequest_IEs_tag2el_53, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICcontrolRequest_IEs = { - "RICcontrolRequest-IEs", - "RICcontrolRequest-IEs", - &asn_OP_SEQUENCE, - asn_DEF_RICcontrolRequest_IEs_tags_53, - sizeof(asn_DEF_RICcontrolRequest_IEs_tags_53) - /sizeof(asn_DEF_RICcontrolRequest_IEs_tags_53[0]), /* 1 */ - asn_DEF_RICcontrolRequest_IEs_tags_53, /* Same as above */ - sizeof(asn_DEF_RICcontrolRequest_IEs_tags_53) - /sizeof(asn_DEF_RICcontrolRequest_IEs_tags_53[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICcontrolRequest_IEs_53, - 3, /* Elements count */ - &asn_SPC_RICcontrolRequest_IEs_specs_53 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_60[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolAcknowledge_IEs__value, choice.RICrequestID), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICrequestID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICrequestID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolAcknowledge_IEs__value, choice.RANfunctionID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_RANfunctionID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RANfunctionID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolAcknowledge_IEs__value, choice.RICcallProcessID), - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), - 0, - &asn_DEF_RICcallProcessID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICcallProcessID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolAcknowledge_IEs__value, choice.RICcontrolStatus), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_RICcontrolStatus, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICcontrolStatus" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolAcknowledge_IEs__value, choice.RICcontrolOutcome), - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), - 0, - &asn_DEF_RICcontrolOutcome, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICcontrolOutcome" - }, -}; -static const unsigned asn_MAP_value_to_canonical_60[] = { 1, 2, 4, 3, 0 }; -static const unsigned asn_MAP_value_from_canonical_60[] = { 4, 0, 1, 3, 2 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_60[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* RANfunctionID */ - { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 2, 0, 1 }, /* RICcallProcessID */ - { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 4, -1, 0 }, /* RICcontrolOutcome */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 3, 0, 0 }, /* RICcontrolStatus */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RICrequestID */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_60 = { - sizeof(struct RICcontrolAcknowledge_IEs__value), - offsetof(struct RICcontrolAcknowledge_IEs__value, _asn_ctx), - offsetof(struct RICcontrolAcknowledge_IEs__value, present), - sizeof(((struct RICcontrolAcknowledge_IEs__value *)0)->present), - asn_MAP_value_tag2el_60, - 5, /* Count of tags in the map */ - asn_MAP_value_to_canonical_60, - asn_MAP_value_from_canonical_60, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_60 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_60, - 5, /* Elements count */ - &asn_SPC_value_specs_60 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_RICcontrolAcknowledge_IEs_57[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolAcknowledge_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_58, memb_id_constraint_57 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolAcknowledge_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_RICcontrolAcknowledge_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_59, memb_criticality_constraint_57 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICcontrolAcknowledge_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_60, - select_RICcontrolAcknowledge_IEs_value_type, - { 0, &asn_PER_memb_value_constr_60, memb_value_constraint_57 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICcontrolAcknowledge_IEs_tags_57[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICcontrolAcknowledge_IEs_tag2el_57[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICcontrolAcknowledge_IEs_specs_57 = { - sizeof(struct RICcontrolAcknowledge_IEs), - offsetof(struct RICcontrolAcknowledge_IEs, _asn_ctx), - asn_MAP_RICcontrolAcknowledge_IEs_tag2el_57, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICcontrolAcknowledge_IEs = { - "RICcontrolAcknowledge-IEs", - "RICcontrolAcknowledge-IEs", - &asn_OP_SEQUENCE, - asn_DEF_RICcontrolAcknowledge_IEs_tags_57, - sizeof(asn_DEF_RICcontrolAcknowledge_IEs_tags_57) - /sizeof(asn_DEF_RICcontrolAcknowledge_IEs_tags_57[0]), /* 1 */ - asn_DEF_RICcontrolAcknowledge_IEs_tags_57, /* Same as above */ - sizeof(asn_DEF_RICcontrolAcknowledge_IEs_tags_57) - /sizeof(asn_DEF_RICcontrolAcknowledge_IEs_tags_57[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICcontrolAcknowledge_IEs_57, - 3, /* Elements count */ - &asn_SPC_RICcontrolAcknowledge_IEs_specs_57 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_64[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolFailure_IEs__value, choice.RICrequestID), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICrequestID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICrequestID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolFailure_IEs__value, choice.RANfunctionID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_RANfunctionID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RANfunctionID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolFailure_IEs__value, choice.RICcallProcessID), - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), - 0, - &asn_DEF_RICcallProcessID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICcallProcessID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolFailure_IEs__value, choice.Cause), - -1 /* Ambiguous tag (CHOICE?) */, - 0, - &asn_DEF_Cause, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "Cause" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolFailure_IEs__value, choice.RICcontrolOutcome), - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), - 0, - &asn_DEF_RICcontrolOutcome, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICcontrolOutcome" - }, -}; -static const unsigned asn_MAP_value_to_canonical_64[] = { 1, 2, 4, 0, 3 }; -static const unsigned asn_MAP_value_from_canonical_64[] = { 3, 0, 1, 4, 2 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_64[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* RANfunctionID */ - { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 2, 0, 1 }, /* RICcallProcessID */ - { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 4, -1, 0 }, /* RICcontrolOutcome */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 }, /* RICrequestID */ - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 3, 0, 0 }, /* ricRequest */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 3, 0, 0 }, /* ricService */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 3, 0, 0 }, /* transport */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* protocol */ - { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 3, 0, 0 } /* misc */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_64 = { - sizeof(struct RICcontrolFailure_IEs__value), - offsetof(struct RICcontrolFailure_IEs__value, _asn_ctx), - offsetof(struct RICcontrolFailure_IEs__value, present), - sizeof(((struct RICcontrolFailure_IEs__value *)0)->present), - asn_MAP_value_tag2el_64, - 9, /* Count of tags in the map */ - asn_MAP_value_to_canonical_64, - asn_MAP_value_from_canonical_64, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_64 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_64, - 5, /* Elements count */ - &asn_SPC_value_specs_64 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_RICcontrolFailure_IEs_61[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolFailure_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_62, memb_id_constraint_61 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolFailure_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_RICcontrolFailure_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_63, memb_criticality_constraint_61 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICcontrolFailure_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_64, - select_RICcontrolFailure_IEs_value_type, - { 0, &asn_PER_memb_value_constr_64, memb_value_constraint_61 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICcontrolFailure_IEs_tags_61[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICcontrolFailure_IEs_tag2el_61[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICcontrolFailure_IEs_specs_61 = { - sizeof(struct RICcontrolFailure_IEs), - offsetof(struct RICcontrolFailure_IEs, _asn_ctx), - asn_MAP_RICcontrolFailure_IEs_tag2el_61, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICcontrolFailure_IEs = { - "RICcontrolFailure-IEs", - "RICcontrolFailure-IEs", - &asn_OP_SEQUENCE, - asn_DEF_RICcontrolFailure_IEs_tags_61, - sizeof(asn_DEF_RICcontrolFailure_IEs_tags_61) - /sizeof(asn_DEF_RICcontrolFailure_IEs_tags_61[0]), /* 1 */ - asn_DEF_RICcontrolFailure_IEs_tags_61, /* Same as above */ - sizeof(asn_DEF_RICcontrolFailure_IEs_tags_61) - /sizeof(asn_DEF_RICcontrolFailure_IEs_tags_61[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICcontrolFailure_IEs_61, - 3, /* Elements count */ - &asn_SPC_RICcontrolFailure_IEs_specs_61 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_68[] = { - { ATF_NOFLAGS, 0, offsetof(struct ErrorIndication_IEs__value, choice.RICrequestID), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICrequestID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICrequestID" - }, - { ATF_NOFLAGS, 0, offsetof(struct ErrorIndication_IEs__value, choice.RANfunctionID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_RANfunctionID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RANfunctionID" - }, - { ATF_NOFLAGS, 0, offsetof(struct ErrorIndication_IEs__value, choice.Cause), - -1 /* Ambiguous tag (CHOICE?) */, - 0, - &asn_DEF_Cause, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "Cause" - }, - { ATF_NOFLAGS, 0, offsetof(struct ErrorIndication_IEs__value, choice.CriticalityDiagnostics), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CriticalityDiagnostics, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "CriticalityDiagnostics" - }, -}; -static const unsigned asn_MAP_value_to_canonical_68[] = { 1, 0, 3, 2 }; -static const unsigned asn_MAP_value_from_canonical_68[] = { 1, 0, 3, 2 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_68[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* RANfunctionID */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 1 }, /* RICrequestID */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -1, 0 }, /* CriticalityDiagnostics */ - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 2, 0, 0 }, /* ricRequest */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 2, 0, 0 }, /* ricService */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* transport */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 2, 0, 0 }, /* protocol */ - { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 2, 0, 0 } /* misc */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_68 = { - sizeof(struct ErrorIndication_IEs__value), - offsetof(struct ErrorIndication_IEs__value, _asn_ctx), - offsetof(struct ErrorIndication_IEs__value, present), - sizeof(((struct ErrorIndication_IEs__value *)0)->present), - asn_MAP_value_tag2el_68, - 8, /* Count of tags in the map */ - asn_MAP_value_to_canonical_68, - asn_MAP_value_from_canonical_68, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_68 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_68, - 4, /* Elements count */ - &asn_SPC_value_specs_68 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ErrorIndication_IEs_65[] = { - { ATF_NOFLAGS, 0, offsetof(struct ErrorIndication_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_66, memb_id_constraint_65 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct ErrorIndication_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_ErrorIndication_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_67, memb_criticality_constraint_65 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ErrorIndication_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_68, - select_ErrorIndication_IEs_value_type, - { 0, &asn_PER_memb_value_constr_68, memb_value_constraint_65 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_ErrorIndication_IEs_tags_65[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ErrorIndication_IEs_tag2el_65[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ErrorIndication_IEs_specs_65 = { - sizeof(struct ErrorIndication_IEs), - offsetof(struct ErrorIndication_IEs, _asn_ctx), - asn_MAP_ErrorIndication_IEs_tag2el_65, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ErrorIndication_IEs = { - "ErrorIndication-IEs", - "ErrorIndication-IEs", - &asn_OP_SEQUENCE, - asn_DEF_ErrorIndication_IEs_tags_65, - sizeof(asn_DEF_ErrorIndication_IEs_tags_65) - /sizeof(asn_DEF_ErrorIndication_IEs_tags_65[0]), /* 1 */ - asn_DEF_ErrorIndication_IEs_tags_65, /* Same as above */ - sizeof(asn_DEF_ErrorIndication_IEs_tags_65) - /sizeof(asn_DEF_ErrorIndication_IEs_tags_65[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ErrorIndication_IEs_65, - 3, /* Elements count */ - &asn_SPC_ErrorIndication_IEs_specs_65 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_72[] = { - { ATF_NOFLAGS, 0, offsetof(struct E2setupRequestIEs__value, choice.GlobalE2node_ID), - -1 /* Ambiguous tag (CHOICE?) */, - 0, - &asn_DEF_GlobalE2node_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "GlobalE2node-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct E2setupRequestIEs__value, choice.RANfunctions_List), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RANfunctions_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RANfunctions-List" - }, -}; -static const unsigned asn_MAP_value_to_canonical_72[] = { 1, 0 }; -static const unsigned asn_MAP_value_from_canonical_72[] = { 1, 0 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_72[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 0 }, /* RANfunctions-List */ - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* gNB */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 0, 0, 0 }, /* en-gNB */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 0, 0, 0 }, /* ng-eNB */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 0, 0, 0 } /* eNB */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_72 = { - sizeof(struct E2setupRequestIEs__value), - offsetof(struct E2setupRequestIEs__value, _asn_ctx), - offsetof(struct E2setupRequestIEs__value, present), - sizeof(((struct E2setupRequestIEs__value *)0)->present), - asn_MAP_value_tag2el_72, - 5, /* Count of tags in the map */ - asn_MAP_value_to_canonical_72, - asn_MAP_value_from_canonical_72, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_72 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_72, - 2, /* Elements count */ - &asn_SPC_value_specs_72 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E2setupRequestIEs_69[] = { - { ATF_NOFLAGS, 0, offsetof(struct E2setupRequestIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_70, memb_id_constraint_69 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E2setupRequestIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_E2setupRequestIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_71, memb_criticality_constraint_69 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E2setupRequestIEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_72, - select_E2setupRequestIEs_value_type, - { 0, &asn_PER_memb_value_constr_72, memb_value_constraint_69 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_E2setupRequestIEs_tags_69[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E2setupRequestIEs_tag2el_69[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E2setupRequestIEs_specs_69 = { - sizeof(struct E2setupRequestIEs), - offsetof(struct E2setupRequestIEs, _asn_ctx), - asn_MAP_E2setupRequestIEs_tag2el_69, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E2setupRequestIEs = { - "E2setupRequestIEs", - "E2setupRequestIEs", - &asn_OP_SEQUENCE, - asn_DEF_E2setupRequestIEs_tags_69, - sizeof(asn_DEF_E2setupRequestIEs_tags_69) - /sizeof(asn_DEF_E2setupRequestIEs_tags_69[0]), /* 1 */ - asn_DEF_E2setupRequestIEs_tags_69, /* Same as above */ - sizeof(asn_DEF_E2setupRequestIEs_tags_69) - /sizeof(asn_DEF_E2setupRequestIEs_tags_69[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E2setupRequestIEs_69, - 3, /* Elements count */ - &asn_SPC_E2setupRequestIEs_specs_69 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_76[] = { - { ATF_NOFLAGS, 0, offsetof(struct E2setupResponseIEs__value, choice.GlobalRIC_ID), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_GlobalRIC_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "GlobalRIC-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct E2setupResponseIEs__value, choice.RANfunctionsID_List), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RANfunctionsID_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RANfunctionsID-List" - }, - { ATF_NOFLAGS, 0, offsetof(struct E2setupResponseIEs__value, choice.RANfunctionsIDcause_List), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RANfunctionsIDcause_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RANfunctionsIDcause-List" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_76[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 2 }, /* GlobalRIC-ID */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 1 }, /* RANfunctionsID-List */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -2, 0 } /* RANfunctionsIDcause-List */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_76 = { - sizeof(struct E2setupResponseIEs__value), - offsetof(struct E2setupResponseIEs__value, _asn_ctx), - offsetof(struct E2setupResponseIEs__value, present), - sizeof(((struct E2setupResponseIEs__value *)0)->present), - asn_MAP_value_tag2el_76, - 3, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_76 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_76, - 3, /* Elements count */ - &asn_SPC_value_specs_76 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E2setupResponseIEs_73[] = { - { ATF_NOFLAGS, 0, offsetof(struct E2setupResponseIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_74, memb_id_constraint_73 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E2setupResponseIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_E2setupResponseIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_75, memb_criticality_constraint_73 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E2setupResponseIEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_76, - select_E2setupResponseIEs_value_type, - { 0, &asn_PER_memb_value_constr_76, memb_value_constraint_73 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_E2setupResponseIEs_tags_73[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E2setupResponseIEs_tag2el_73[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E2setupResponseIEs_specs_73 = { - sizeof(struct E2setupResponseIEs), - offsetof(struct E2setupResponseIEs, _asn_ctx), - asn_MAP_E2setupResponseIEs_tag2el_73, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E2setupResponseIEs = { - "E2setupResponseIEs", - "E2setupResponseIEs", - &asn_OP_SEQUENCE, - asn_DEF_E2setupResponseIEs_tags_73, - sizeof(asn_DEF_E2setupResponseIEs_tags_73) - /sizeof(asn_DEF_E2setupResponseIEs_tags_73[0]), /* 1 */ - asn_DEF_E2setupResponseIEs_tags_73, /* Same as above */ - sizeof(asn_DEF_E2setupResponseIEs_tags_73) - /sizeof(asn_DEF_E2setupResponseIEs_tags_73[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E2setupResponseIEs_73, - 3, /* Elements count */ - &asn_SPC_E2setupResponseIEs_specs_73 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_80[] = { - { ATF_NOFLAGS, 0, offsetof(struct E2setupFailureIEs__value, choice.Cause), - -1 /* Ambiguous tag (CHOICE?) */, - 0, - &asn_DEF_Cause, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "Cause" - }, - { ATF_NOFLAGS, 0, offsetof(struct E2setupFailureIEs__value, choice.TimeToWait), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_TimeToWait, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "TimeToWait" - }, - { ATF_NOFLAGS, 0, offsetof(struct E2setupFailureIEs__value, choice.CriticalityDiagnostics), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CriticalityDiagnostics, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "CriticalityDiagnostics" - }, -}; -static const unsigned asn_MAP_value_to_canonical_80[] = { 1, 2, 0 }; -static const unsigned asn_MAP_value_from_canonical_80[] = { 2, 0, 1 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_80[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 }, /* TimeToWait */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, 0, 0 }, /* CriticalityDiagnostics */ - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ricRequest */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 0, 0, 0 }, /* ricService */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 0, 0, 0 }, /* transport */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 0, 0, 0 }, /* protocol */ - { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 0, 0, 0 } /* misc */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_80 = { - sizeof(struct E2setupFailureIEs__value), - offsetof(struct E2setupFailureIEs__value, _asn_ctx), - offsetof(struct E2setupFailureIEs__value, present), - sizeof(((struct E2setupFailureIEs__value *)0)->present), - asn_MAP_value_tag2el_80, - 7, /* Count of tags in the map */ - asn_MAP_value_to_canonical_80, - asn_MAP_value_from_canonical_80, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_80 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_80, - 3, /* Elements count */ - &asn_SPC_value_specs_80 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E2setupFailureIEs_77[] = { - { ATF_NOFLAGS, 0, offsetof(struct E2setupFailureIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_78, memb_id_constraint_77 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E2setupFailureIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_E2setupFailureIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_79, memb_criticality_constraint_77 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E2setupFailureIEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_80, - select_E2setupFailureIEs_value_type, - { 0, &asn_PER_memb_value_constr_80, memb_value_constraint_77 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_E2setupFailureIEs_tags_77[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E2setupFailureIEs_tag2el_77[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E2setupFailureIEs_specs_77 = { - sizeof(struct E2setupFailureIEs), - offsetof(struct E2setupFailureIEs, _asn_ctx), - asn_MAP_E2setupFailureIEs_tag2el_77, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E2setupFailureIEs = { - "E2setupFailureIEs", - "E2setupFailureIEs", - &asn_OP_SEQUENCE, - asn_DEF_E2setupFailureIEs_tags_77, - sizeof(asn_DEF_E2setupFailureIEs_tags_77) - /sizeof(asn_DEF_E2setupFailureIEs_tags_77[0]), /* 1 */ - asn_DEF_E2setupFailureIEs_tags_77, /* Same as above */ - sizeof(asn_DEF_E2setupFailureIEs_tags_77) - /sizeof(asn_DEF_E2setupFailureIEs_tags_77[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E2setupFailureIEs_77, - 3, /* Elements count */ - &asn_SPC_E2setupFailureIEs_specs_77 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_84[] = { - { ATF_NOFLAGS, 0, offsetof(struct ResetRequestIEs__value, choice.Cause), - -1 /* Ambiguous tag (CHOICE?) */, - 0, - &asn_DEF_Cause, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "Cause" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_84[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ricRequest */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 0, 0, 0 }, /* ricService */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 0, 0, 0 }, /* transport */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 0, 0, 0 }, /* protocol */ - { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 0, 0, 0 } /* misc */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_84 = { - sizeof(struct ResetRequestIEs__value), - offsetof(struct ResetRequestIEs__value, _asn_ctx), - offsetof(struct ResetRequestIEs__value, present), - sizeof(((struct ResetRequestIEs__value *)0)->present), - asn_MAP_value_tag2el_84, - 5, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_84 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_84, - 1, /* Elements count */ - &asn_SPC_value_specs_84 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ResetRequestIEs_81[] = { - { ATF_NOFLAGS, 0, offsetof(struct ResetRequestIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_82, memb_id_constraint_81 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct ResetRequestIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_ResetRequestIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_83, memb_criticality_constraint_81 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ResetRequestIEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_84, - select_ResetRequestIEs_value_type, - { 0, &asn_PER_memb_value_constr_84, memb_value_constraint_81 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_ResetRequestIEs_tags_81[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ResetRequestIEs_tag2el_81[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ResetRequestIEs_specs_81 = { - sizeof(struct ResetRequestIEs), - offsetof(struct ResetRequestIEs, _asn_ctx), - asn_MAP_ResetRequestIEs_tag2el_81, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ResetRequestIEs = { - "ResetRequestIEs", - "ResetRequestIEs", - &asn_OP_SEQUENCE, - asn_DEF_ResetRequestIEs_tags_81, - sizeof(asn_DEF_ResetRequestIEs_tags_81) - /sizeof(asn_DEF_ResetRequestIEs_tags_81[0]), /* 1 */ - asn_DEF_ResetRequestIEs_tags_81, /* Same as above */ - sizeof(asn_DEF_ResetRequestIEs_tags_81) - /sizeof(asn_DEF_ResetRequestIEs_tags_81[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ResetRequestIEs_81, - 3, /* Elements count */ - &asn_SPC_ResetRequestIEs_specs_81 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_88[] = { - { ATF_NOFLAGS, 0, offsetof(struct ResetResponseIEs__value, choice.CriticalityDiagnostics), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CriticalityDiagnostics, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "CriticalityDiagnostics" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_88[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* CriticalityDiagnostics */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_88 = { - sizeof(struct ResetResponseIEs__value), - offsetof(struct ResetResponseIEs__value, _asn_ctx), - offsetof(struct ResetResponseIEs__value, present), - sizeof(((struct ResetResponseIEs__value *)0)->present), - asn_MAP_value_tag2el_88, - 1, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_88 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_88, - 1, /* Elements count */ - &asn_SPC_value_specs_88 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ResetResponseIEs_85[] = { - { ATF_NOFLAGS, 0, offsetof(struct ResetResponseIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_86, memb_id_constraint_85 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct ResetResponseIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_ResetResponseIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_87, memb_criticality_constraint_85 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ResetResponseIEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_88, - select_ResetResponseIEs_value_type, - { 0, &asn_PER_memb_value_constr_88, memb_value_constraint_85 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_ResetResponseIEs_tags_85[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ResetResponseIEs_tag2el_85[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ResetResponseIEs_specs_85 = { - sizeof(struct ResetResponseIEs), - offsetof(struct ResetResponseIEs, _asn_ctx), - asn_MAP_ResetResponseIEs_tag2el_85, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ResetResponseIEs = { - "ResetResponseIEs", - "ResetResponseIEs", - &asn_OP_SEQUENCE, - asn_DEF_ResetResponseIEs_tags_85, - sizeof(asn_DEF_ResetResponseIEs_tags_85) - /sizeof(asn_DEF_ResetResponseIEs_tags_85[0]), /* 1 */ - asn_DEF_ResetResponseIEs_tags_85, /* Same as above */ - sizeof(asn_DEF_ResetResponseIEs_tags_85) - /sizeof(asn_DEF_ResetResponseIEs_tags_85[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ResetResponseIEs_85, - 3, /* Elements count */ - &asn_SPC_ResetResponseIEs_specs_85 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_92[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdate_IEs__value, choice.RANfunctions_List), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RANfunctions_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RANfunctions-List" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdate_IEs__value, choice.RANfunctionsID_List), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RANfunctionsID_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RANfunctionsID-List" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_92[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 1 }, /* RANfunctions-List */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 0 } /* RANfunctionsID-List */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_92 = { - sizeof(struct RICserviceUpdate_IEs__value), - offsetof(struct RICserviceUpdate_IEs__value, _asn_ctx), - offsetof(struct RICserviceUpdate_IEs__value, present), - sizeof(((struct RICserviceUpdate_IEs__value *)0)->present), - asn_MAP_value_tag2el_92, - 2, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_92 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_92, - 2, /* Elements count */ - &asn_SPC_value_specs_92 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_RICserviceUpdate_IEs_89[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdate_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_90, memb_id_constraint_89 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdate_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_RICserviceUpdate_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_91, memb_criticality_constraint_89 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdate_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_92, - select_RICserviceUpdate_IEs_value_type, - { 0, &asn_PER_memb_value_constr_92, memb_value_constraint_89 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICserviceUpdate_IEs_tags_89[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICserviceUpdate_IEs_tag2el_89[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdate_IEs_specs_89 = { - sizeof(struct RICserviceUpdate_IEs), - offsetof(struct RICserviceUpdate_IEs, _asn_ctx), - asn_MAP_RICserviceUpdate_IEs_tag2el_89, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICserviceUpdate_IEs = { - "RICserviceUpdate-IEs", - "RICserviceUpdate-IEs", - &asn_OP_SEQUENCE, - asn_DEF_RICserviceUpdate_IEs_tags_89, - sizeof(asn_DEF_RICserviceUpdate_IEs_tags_89) - /sizeof(asn_DEF_RICserviceUpdate_IEs_tags_89[0]), /* 1 */ - asn_DEF_RICserviceUpdate_IEs_tags_89, /* Same as above */ - sizeof(asn_DEF_RICserviceUpdate_IEs_tags_89) - /sizeof(asn_DEF_RICserviceUpdate_IEs_tags_89[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICserviceUpdate_IEs_89, - 3, /* Elements count */ - &asn_SPC_RICserviceUpdate_IEs_specs_89 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_96[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateAcknowledge_IEs__value, choice.RANfunctionsID_List), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RANfunctionsID_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RANfunctionsID-List" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateAcknowledge_IEs__value, choice.RANfunctionsIDcause_List), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RANfunctionsIDcause_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RANfunctionsIDcause-List" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_96[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 1 }, /* RANfunctionsID-List */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 0 } /* RANfunctionsIDcause-List */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_96 = { - sizeof(struct RICserviceUpdateAcknowledge_IEs__value), - offsetof(struct RICserviceUpdateAcknowledge_IEs__value, _asn_ctx), - offsetof(struct RICserviceUpdateAcknowledge_IEs__value, present), - sizeof(((struct RICserviceUpdateAcknowledge_IEs__value *)0)->present), - asn_MAP_value_tag2el_96, - 2, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_96 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_96, - 2, /* Elements count */ - &asn_SPC_value_specs_96 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_RICserviceUpdateAcknowledge_IEs_93[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateAcknowledge_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_94, memb_id_constraint_93 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateAcknowledge_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_RICserviceUpdateAcknowledge_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_95, memb_criticality_constraint_93 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateAcknowledge_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_96, - select_RICserviceUpdateAcknowledge_IEs_value_type, - { 0, &asn_PER_memb_value_constr_96, memb_value_constraint_93 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICserviceUpdateAcknowledge_IEs_tags_93[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICserviceUpdateAcknowledge_IEs_tag2el_93[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdateAcknowledge_IEs_specs_93 = { - sizeof(struct RICserviceUpdateAcknowledge_IEs), - offsetof(struct RICserviceUpdateAcknowledge_IEs, _asn_ctx), - asn_MAP_RICserviceUpdateAcknowledge_IEs_tag2el_93, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICserviceUpdateAcknowledge_IEs = { - "RICserviceUpdateAcknowledge-IEs", - "RICserviceUpdateAcknowledge-IEs", - &asn_OP_SEQUENCE, - asn_DEF_RICserviceUpdateAcknowledge_IEs_tags_93, - sizeof(asn_DEF_RICserviceUpdateAcknowledge_IEs_tags_93) - /sizeof(asn_DEF_RICserviceUpdateAcknowledge_IEs_tags_93[0]), /* 1 */ - asn_DEF_RICserviceUpdateAcknowledge_IEs_tags_93, /* Same as above */ - sizeof(asn_DEF_RICserviceUpdateAcknowledge_IEs_tags_93) - /sizeof(asn_DEF_RICserviceUpdateAcknowledge_IEs_tags_93[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICserviceUpdateAcknowledge_IEs_93, - 3, /* Elements count */ - &asn_SPC_RICserviceUpdateAcknowledge_IEs_specs_93 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_100[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateFailure_IEs__value, choice.RANfunctionsIDcause_List), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RANfunctionsIDcause_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RANfunctionsIDcause-List" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateFailure_IEs__value, choice.TimeToWait), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_TimeToWait, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "TimeToWait" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateFailure_IEs__value, choice.CriticalityDiagnostics), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CriticalityDiagnostics, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "CriticalityDiagnostics" - }, -}; -static const unsigned asn_MAP_value_to_canonical_100[] = { 1, 0, 2 }; -static const unsigned asn_MAP_value_from_canonical_100[] = { 1, 0, 2 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_100[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 }, /* TimeToWait */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 1 }, /* RANfunctionsIDcause-List */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -1, 0 } /* CriticalityDiagnostics */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_100 = { - sizeof(struct RICserviceUpdateFailure_IEs__value), - offsetof(struct RICserviceUpdateFailure_IEs__value, _asn_ctx), - offsetof(struct RICserviceUpdateFailure_IEs__value, present), - sizeof(((struct RICserviceUpdateFailure_IEs__value *)0)->present), - asn_MAP_value_tag2el_100, - 3, /* Count of tags in the map */ - asn_MAP_value_to_canonical_100, - asn_MAP_value_from_canonical_100, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_100 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_100, - 3, /* Elements count */ - &asn_SPC_value_specs_100 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_RICserviceUpdateFailure_IEs_97[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateFailure_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_98, memb_id_constraint_97 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateFailure_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_RICserviceUpdateFailure_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_99, memb_criticality_constraint_97 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateFailure_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_100, - select_RICserviceUpdateFailure_IEs_value_type, - { 0, &asn_PER_memb_value_constr_100, memb_value_constraint_97 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICserviceUpdateFailure_IEs_tags_97[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICserviceUpdateFailure_IEs_tag2el_97[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdateFailure_IEs_specs_97 = { - sizeof(struct RICserviceUpdateFailure_IEs), - offsetof(struct RICserviceUpdateFailure_IEs, _asn_ctx), - asn_MAP_RICserviceUpdateFailure_IEs_tag2el_97, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICserviceUpdateFailure_IEs = { - "RICserviceUpdateFailure-IEs", - "RICserviceUpdateFailure-IEs", - &asn_OP_SEQUENCE, - asn_DEF_RICserviceUpdateFailure_IEs_tags_97, - sizeof(asn_DEF_RICserviceUpdateFailure_IEs_tags_97) - /sizeof(asn_DEF_RICserviceUpdateFailure_IEs_tags_97[0]), /* 1 */ - asn_DEF_RICserviceUpdateFailure_IEs_tags_97, /* Same as above */ - sizeof(asn_DEF_RICserviceUpdateFailure_IEs_tags_97) - /sizeof(asn_DEF_RICserviceUpdateFailure_IEs_tags_97[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICserviceUpdateFailure_IEs_97, - 3, /* Elements count */ - &asn_SPC_RICserviceUpdateFailure_IEs_specs_97 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_104[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICserviceQuery_IEs__value, choice.RANfunctionsID_List), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RANfunctionsID_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RANfunctionsID-List" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_104[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RANfunctionsID-List */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_104 = { - sizeof(struct RICserviceQuery_IEs__value), - offsetof(struct RICserviceQuery_IEs__value, _asn_ctx), - offsetof(struct RICserviceQuery_IEs__value, present), - sizeof(((struct RICserviceQuery_IEs__value *)0)->present), - asn_MAP_value_tag2el_104, - 1, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_104 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_104, - 1, /* Elements count */ - &asn_SPC_value_specs_104 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_RICserviceQuery_IEs_101[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICserviceQuery_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_102, memb_id_constraint_101 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICserviceQuery_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_RICserviceQuery_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_103, memb_criticality_constraint_101 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICserviceQuery_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_104, - select_RICserviceQuery_IEs_value_type, - { 0, &asn_PER_memb_value_constr_104, memb_value_constraint_101 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICserviceQuery_IEs_tags_101[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICserviceQuery_IEs_tag2el_101[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICserviceQuery_IEs_specs_101 = { - sizeof(struct RICserviceQuery_IEs), - offsetof(struct RICserviceQuery_IEs, _asn_ctx), - asn_MAP_RICserviceQuery_IEs_tag2el_101, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICserviceQuery_IEs = { - "RICserviceQuery-IEs", - "RICserviceQuery-IEs", - &asn_OP_SEQUENCE, - asn_DEF_RICserviceQuery_IEs_tags_101, - sizeof(asn_DEF_RICserviceQuery_IEs_tags_101) - /sizeof(asn_DEF_RICserviceQuery_IEs_tags_101[0]), /* 1 */ - asn_DEF_RICserviceQuery_IEs_tags_101, /* Same as above */ - sizeof(asn_DEF_RICserviceQuery_IEs_tags_101) - /sizeof(asn_DEF_RICserviceQuery_IEs_tags_101[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICserviceQuery_IEs_101, - 3, /* Elements count */ - &asn_SPC_RICserviceQuery_IEs_specs_101 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/ProtocolIE-Field.h b/e2sim/previous/e2apv1sim/ASN1c/ProtocolIE-Field.h deleted file mode 100644 index 573edcf..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/ProtocolIE-Field.h +++ /dev/null @@ -1,757 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-Containers" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _ProtocolIE_Field_H_ -#define _ProtocolIE_Field_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-ID.h" -#include "Criticality.h" -#include "ANY.h" -#include "asn_ioc.h" -#include "RICaction-ToBeSetup-Item.h" -#include "Presence.h" -#include "OPEN_TYPE.h" -#include "constr_CHOICE.h" -#include "constr_SEQUENCE.h" -#include "RICaction-Admitted-Item.h" -#include "RICaction-NotAdmitted-Item.h" -#include "RANfunction-Item.h" -#include "RANfunctionID-Item.h" -#include "RANfunctionIDcause-Item.h" -#include "RICrequestID.h" -#include "RANfunctionID.h" -#include "RICsubscriptionDetails.h" -#include "RICaction-Admitted-List.h" -#include "RICaction-NotAdmitted-List.h" -#include "CriticalityDiagnostics.h" -#include "Cause.h" -#include "RICactionID.h" -#include "RICindicationSN.h" -#include "RICindicationType.h" -#include "RICindicationHeader.h" -#include "RICindicationMessage.h" -#include "RICcallProcessID.h" -#include "RICcontrolHeader.h" -#include "RICcontrolMessage.h" -#include "RICcontrolAckRequest.h" -#include "RICcontrolStatus.h" -#include "RICcontrolOutcome.h" -#include "GlobalE2node-ID.h" -#include "RANfunctions-List.h" -#include "GlobalRIC-ID.h" -#include "RANfunctionsID-List.h" -#include "RANfunctionsIDcause-List.h" -#include "TimeToWait.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum RICaction_ToBeSetup_ItemIEs__value_PR { - RICaction_ToBeSetup_ItemIEs__value_PR_NOTHING, /* No components present */ - RICaction_ToBeSetup_ItemIEs__value_PR_RICaction_ToBeSetup_Item -} RICaction_ToBeSetup_ItemIEs__value_PR; -typedef enum RICaction_Admitted_ItemIEs__value_PR { - RICaction_Admitted_ItemIEs__value_PR_NOTHING, /* No components present */ - RICaction_Admitted_ItemIEs__value_PR_RICaction_Admitted_Item -} RICaction_Admitted_ItemIEs__value_PR; -typedef enum RICaction_NotAdmitted_ItemIEs__value_PR { - RICaction_NotAdmitted_ItemIEs__value_PR_NOTHING, /* No components present */ - RICaction_NotAdmitted_ItemIEs__value_PR_RICaction_NotAdmitted_Item -} RICaction_NotAdmitted_ItemIEs__value_PR; -typedef enum RANfunction_ItemIEs__value_PR { - RANfunction_ItemIEs__value_PR_NOTHING, /* No components present */ - RANfunction_ItemIEs__value_PR_RANfunction_Item -} RANfunction_ItemIEs__value_PR; -typedef enum RANfunctionID_ItemIEs__value_PR { - RANfunctionID_ItemIEs__value_PR_NOTHING, /* No components present */ - RANfunctionID_ItemIEs__value_PR_RANfunctionID_Item -} RANfunctionID_ItemIEs__value_PR; -typedef enum RANfunctionIDcause_ItemIEs__value_PR { - RANfunctionIDcause_ItemIEs__value_PR_NOTHING, /* No components present */ - RANfunctionIDcause_ItemIEs__value_PR_RANfunctionIDcause_Item -} RANfunctionIDcause_ItemIEs__value_PR; -typedef enum RICsubscriptionRequest_IEs__value_PR { - RICsubscriptionRequest_IEs__value_PR_NOTHING, /* No components present */ - RICsubscriptionRequest_IEs__value_PR_RICrequestID, - RICsubscriptionRequest_IEs__value_PR_RANfunctionID, - RICsubscriptionRequest_IEs__value_PR_RICsubscriptionDetails -} RICsubscriptionRequest_IEs__value_PR; -typedef enum RICsubscriptionResponse_IEs__value_PR { - RICsubscriptionResponse_IEs__value_PR_NOTHING, /* No components present */ - RICsubscriptionResponse_IEs__value_PR_RICrequestID, - RICsubscriptionResponse_IEs__value_PR_RANfunctionID, - RICsubscriptionResponse_IEs__value_PR_RICaction_Admitted_List, - RICsubscriptionResponse_IEs__value_PR_RICaction_NotAdmitted_List -} RICsubscriptionResponse_IEs__value_PR; -typedef enum RICsubscriptionFailure_IEs__value_PR { - RICsubscriptionFailure_IEs__value_PR_NOTHING, /* No components present */ - RICsubscriptionFailure_IEs__value_PR_RICrequestID, - RICsubscriptionFailure_IEs__value_PR_RANfunctionID, - RICsubscriptionFailure_IEs__value_PR_RICaction_NotAdmitted_List, - RICsubscriptionFailure_IEs__value_PR_CriticalityDiagnostics -} RICsubscriptionFailure_IEs__value_PR; -typedef enum RICsubscriptionDeleteRequest_IEs__value_PR { - RICsubscriptionDeleteRequest_IEs__value_PR_NOTHING, /* No components present */ - RICsubscriptionDeleteRequest_IEs__value_PR_RICrequestID, - RICsubscriptionDeleteRequest_IEs__value_PR_RANfunctionID -} RICsubscriptionDeleteRequest_IEs__value_PR; -typedef enum RICsubscriptionDeleteResponse_IEs__value_PR { - RICsubscriptionDeleteResponse_IEs__value_PR_NOTHING, /* No components present */ - RICsubscriptionDeleteResponse_IEs__value_PR_RICrequestID, - RICsubscriptionDeleteResponse_IEs__value_PR_RANfunctionID -} RICsubscriptionDeleteResponse_IEs__value_PR; -typedef enum RICsubscriptionDeleteFailure_IEs__value_PR { - RICsubscriptionDeleteFailure_IEs__value_PR_NOTHING, /* No components present */ - RICsubscriptionDeleteFailure_IEs__value_PR_RICrequestID, - RICsubscriptionDeleteFailure_IEs__value_PR_RANfunctionID, - RICsubscriptionDeleteFailure_IEs__value_PR_Cause, - RICsubscriptionDeleteFailure_IEs__value_PR_CriticalityDiagnostics -} RICsubscriptionDeleteFailure_IEs__value_PR; -typedef enum RICindication_IEs__value_PR { - RICindication_IEs__value_PR_NOTHING, /* No components present */ - RICindication_IEs__value_PR_RICrequestID, - RICindication_IEs__value_PR_RANfunctionID, - RICindication_IEs__value_PR_RICactionID, - RICindication_IEs__value_PR_RICindicationSN, - RICindication_IEs__value_PR_RICindicationType, - RICindication_IEs__value_PR_RICindicationHeader, - RICindication_IEs__value_PR_RICindicationMessage, - RICindication_IEs__value_PR_RICcallProcessID -} RICindication_IEs__value_PR; -typedef enum RICcontrolRequest_IEs__value_PR { - RICcontrolRequest_IEs__value_PR_NOTHING, /* No components present */ - RICcontrolRequest_IEs__value_PR_RICrequestID, - RICcontrolRequest_IEs__value_PR_RANfunctionID, - RICcontrolRequest_IEs__value_PR_RICcallProcessID, - RICcontrolRequest_IEs__value_PR_RICcontrolHeader, - RICcontrolRequest_IEs__value_PR_RICcontrolMessage, - RICcontrolRequest_IEs__value_PR_RICcontrolAckRequest -} RICcontrolRequest_IEs__value_PR; -typedef enum RICcontrolAcknowledge_IEs__value_PR { - RICcontrolAcknowledge_IEs__value_PR_NOTHING, /* No components present */ - RICcontrolAcknowledge_IEs__value_PR_RICrequestID, - RICcontrolAcknowledge_IEs__value_PR_RANfunctionID, - RICcontrolAcknowledge_IEs__value_PR_RICcallProcessID, - RICcontrolAcknowledge_IEs__value_PR_RICcontrolStatus, - RICcontrolAcknowledge_IEs__value_PR_RICcontrolOutcome -} RICcontrolAcknowledge_IEs__value_PR; -typedef enum RICcontrolFailure_IEs__value_PR { - RICcontrolFailure_IEs__value_PR_NOTHING, /* No components present */ - RICcontrolFailure_IEs__value_PR_RICrequestID, - RICcontrolFailure_IEs__value_PR_RANfunctionID, - RICcontrolFailure_IEs__value_PR_RICcallProcessID, - RICcontrolFailure_IEs__value_PR_Cause, - RICcontrolFailure_IEs__value_PR_RICcontrolOutcome -} RICcontrolFailure_IEs__value_PR; -typedef enum ErrorIndication_IEs__value_PR { - ErrorIndication_IEs__value_PR_NOTHING, /* No components present */ - ErrorIndication_IEs__value_PR_RICrequestID, - ErrorIndication_IEs__value_PR_RANfunctionID, - ErrorIndication_IEs__value_PR_Cause, - ErrorIndication_IEs__value_PR_CriticalityDiagnostics -} ErrorIndication_IEs__value_PR; -typedef enum E2setupRequestIEs__value_PR { - E2setupRequestIEs__value_PR_NOTHING, /* No components present */ - E2setupRequestIEs__value_PR_GlobalE2node_ID, - E2setupRequestIEs__value_PR_RANfunctions_List -} E2setupRequestIEs__value_PR; -typedef enum E2setupResponseIEs__value_PR { - E2setupResponseIEs__value_PR_NOTHING, /* No components present */ - E2setupResponseIEs__value_PR_GlobalRIC_ID, - E2setupResponseIEs__value_PR_RANfunctionsID_List, - E2setupResponseIEs__value_PR_RANfunctionsIDcause_List -} E2setupResponseIEs__value_PR; -typedef enum E2setupFailureIEs__value_PR { - E2setupFailureIEs__value_PR_NOTHING, /* No components present */ - E2setupFailureIEs__value_PR_Cause, - E2setupFailureIEs__value_PR_TimeToWait, - E2setupFailureIEs__value_PR_CriticalityDiagnostics -} E2setupFailureIEs__value_PR; -typedef enum ResetRequestIEs__value_PR { - ResetRequestIEs__value_PR_NOTHING, /* No components present */ - ResetRequestIEs__value_PR_Cause -} ResetRequestIEs__value_PR; -typedef enum ResetResponseIEs__value_PR { - ResetResponseIEs__value_PR_NOTHING, /* No components present */ - ResetResponseIEs__value_PR_CriticalityDiagnostics -} ResetResponseIEs__value_PR; -typedef enum RICserviceUpdate_IEs__value_PR { - RICserviceUpdate_IEs__value_PR_NOTHING, /* No components present */ - RICserviceUpdate_IEs__value_PR_RANfunctions_List, - RICserviceUpdate_IEs__value_PR_RANfunctionsID_List -} RICserviceUpdate_IEs__value_PR; -typedef enum RICserviceUpdateAcknowledge_IEs__value_PR { - RICserviceUpdateAcknowledge_IEs__value_PR_NOTHING, /* No components present */ - RICserviceUpdateAcknowledge_IEs__value_PR_RANfunctionsID_List, - RICserviceUpdateAcknowledge_IEs__value_PR_RANfunctionsIDcause_List -} RICserviceUpdateAcknowledge_IEs__value_PR; -typedef enum RICserviceUpdateFailure_IEs__value_PR { - RICserviceUpdateFailure_IEs__value_PR_NOTHING, /* No components present */ - RICserviceUpdateFailure_IEs__value_PR_RANfunctionsIDcause_List, - RICserviceUpdateFailure_IEs__value_PR_TimeToWait, - RICserviceUpdateFailure_IEs__value_PR_CriticalityDiagnostics -} RICserviceUpdateFailure_IEs__value_PR; -typedef enum RICserviceQuery_IEs__value_PR { - RICserviceQuery_IEs__value_PR_NOTHING, /* No components present */ - RICserviceQuery_IEs__value_PR_RANfunctionsID_List -} RICserviceQuery_IEs__value_PR; - -/* ProtocolIE-Field */ -typedef struct RICaction_ToBeSetup_ItemIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RICaction_ToBeSetup_ItemIEs__value { - RICaction_ToBeSetup_ItemIEs__value_PR present; - union RICaction_ToBeSetup_ItemIEs__value_u { - RICaction_ToBeSetup_Item_t RICaction_ToBeSetup_Item; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICaction_ToBeSetup_ItemIEs_t; -typedef struct RICaction_Admitted_ItemIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RICaction_Admitted_ItemIEs__value { - RICaction_Admitted_ItemIEs__value_PR present; - union RICaction_Admitted_ItemIEs__value_u { - RICaction_Admitted_Item_t RICaction_Admitted_Item; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICaction_Admitted_ItemIEs_t; -typedef struct RICaction_NotAdmitted_ItemIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RICaction_NotAdmitted_ItemIEs__value { - RICaction_NotAdmitted_ItemIEs__value_PR present; - union RICaction_NotAdmitted_ItemIEs__value_u { - RICaction_NotAdmitted_Item_t RICaction_NotAdmitted_Item; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICaction_NotAdmitted_ItemIEs_t; -typedef struct RANfunction_ItemIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RANfunction_ItemIEs__value { - RANfunction_ItemIEs__value_PR present; - union RANfunction_ItemIEs__value_u { - RANfunction_Item_t RANfunction_Item; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RANfunction_ItemIEs_t; -typedef struct RANfunctionID_ItemIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RANfunctionID_ItemIEs__value { - RANfunctionID_ItemIEs__value_PR present; - union RANfunctionID_ItemIEs__value_u { - RANfunctionID_Item_t RANfunctionID_Item; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RANfunctionID_ItemIEs_t; -typedef struct RANfunctionIDcause_ItemIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RANfunctionIDcause_ItemIEs__value { - RANfunctionIDcause_ItemIEs__value_PR present; - union RANfunctionIDcause_ItemIEs__value_u { - RANfunctionIDcause_Item_t RANfunctionIDcause_Item; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RANfunctionIDcause_ItemIEs_t; -typedef struct RICsubscriptionRequest_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RICsubscriptionRequest_IEs__value { - RICsubscriptionRequest_IEs__value_PR present; - union RICsubscriptionRequest_IEs__value_u { - RICrequestID_t RICrequestID; - RANfunctionID_t RANfunctionID; - RICsubscriptionDetails_t RICsubscriptionDetails; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICsubscriptionRequest_IEs_t; -typedef struct RICsubscriptionResponse_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RICsubscriptionResponse_IEs__value { - RICsubscriptionResponse_IEs__value_PR present; - union RICsubscriptionResponse_IEs__value_u { - RICrequestID_t RICrequestID; - RANfunctionID_t RANfunctionID; - RICaction_Admitted_List_t RICaction_Admitted_List; - RICaction_NotAdmitted_List_t RICaction_NotAdmitted_List; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICsubscriptionResponse_IEs_t; -typedef struct RICsubscriptionFailure_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RICsubscriptionFailure_IEs__value { - RICsubscriptionFailure_IEs__value_PR present; - union RICsubscriptionFailure_IEs__value_u { - RICrequestID_t RICrequestID; - RANfunctionID_t RANfunctionID; - RICaction_NotAdmitted_List_t RICaction_NotAdmitted_List; - CriticalityDiagnostics_t CriticalityDiagnostics; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICsubscriptionFailure_IEs_t; -typedef struct RICsubscriptionDeleteRequest_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RICsubscriptionDeleteRequest_IEs__value { - RICsubscriptionDeleteRequest_IEs__value_PR present; - union RICsubscriptionDeleteRequest_IEs__value_u { - RICrequestID_t RICrequestID; - RANfunctionID_t RANfunctionID; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICsubscriptionDeleteRequest_IEs_t; -typedef struct RICsubscriptionDeleteResponse_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RICsubscriptionDeleteResponse_IEs__value { - RICsubscriptionDeleteResponse_IEs__value_PR present; - union RICsubscriptionDeleteResponse_IEs__value_u { - RICrequestID_t RICrequestID; - RANfunctionID_t RANfunctionID; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICsubscriptionDeleteResponse_IEs_t; -typedef struct RICsubscriptionDeleteFailure_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RICsubscriptionDeleteFailure_IEs__value { - RICsubscriptionDeleteFailure_IEs__value_PR present; - union RICsubscriptionDeleteFailure_IEs__value_u { - RICrequestID_t RICrequestID; - RANfunctionID_t RANfunctionID; - Cause_t Cause; - CriticalityDiagnostics_t CriticalityDiagnostics; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICsubscriptionDeleteFailure_IEs_t; -typedef struct RICindication_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RICindication_IEs__value { - RICindication_IEs__value_PR present; - union RICindication_IEs__value_u { - RICrequestID_t RICrequestID; - RANfunctionID_t RANfunctionID; - RICactionID_t RICactionID; - RICindicationSN_t RICindicationSN; - RICindicationType_t RICindicationType; - RICindicationHeader_t RICindicationHeader; - RICindicationMessage_t RICindicationMessage; - RICcallProcessID_t RICcallProcessID; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICindication_IEs_t; -typedef struct RICcontrolRequest_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RICcontrolRequest_IEs__value { - RICcontrolRequest_IEs__value_PR present; - union RICcontrolRequest_IEs__value_u { - RICrequestID_t RICrequestID; - RANfunctionID_t RANfunctionID; - RICcallProcessID_t RICcallProcessID; - RICcontrolHeader_t RICcontrolHeader; - RICcontrolMessage_t RICcontrolMessage; - RICcontrolAckRequest_t RICcontrolAckRequest; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICcontrolRequest_IEs_t; -typedef struct RICcontrolAcknowledge_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RICcontrolAcknowledge_IEs__value { - RICcontrolAcknowledge_IEs__value_PR present; - union RICcontrolAcknowledge_IEs__value_u { - RICrequestID_t RICrequestID; - RANfunctionID_t RANfunctionID; - RICcallProcessID_t RICcallProcessID; - RICcontrolStatus_t RICcontrolStatus; - RICcontrolOutcome_t RICcontrolOutcome; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICcontrolAcknowledge_IEs_t; -typedef struct RICcontrolFailure_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RICcontrolFailure_IEs__value { - RICcontrolFailure_IEs__value_PR present; - union RICcontrolFailure_IEs__value_u { - RICrequestID_t RICrequestID; - RANfunctionID_t RANfunctionID; - RICcallProcessID_t RICcallProcessID; - Cause_t Cause; - RICcontrolOutcome_t RICcontrolOutcome; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICcontrolFailure_IEs_t; -typedef struct ErrorIndication_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct ErrorIndication_IEs__value { - ErrorIndication_IEs__value_PR present; - union ErrorIndication_IEs__value_u { - RICrequestID_t RICrequestID; - RANfunctionID_t RANfunctionID; - Cause_t Cause; - CriticalityDiagnostics_t CriticalityDiagnostics; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ErrorIndication_IEs_t; -typedef struct E2setupRequestIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct E2setupRequestIEs__value { - E2setupRequestIEs__value_PR present; - union E2setupRequestIEs__value_u { - GlobalE2node_ID_t GlobalE2node_ID; - RANfunctions_List_t RANfunctions_List; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E2setupRequestIEs_t; -typedef struct E2setupResponseIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct E2setupResponseIEs__value { - E2setupResponseIEs__value_PR present; - union E2setupResponseIEs__value_u { - GlobalRIC_ID_t GlobalRIC_ID; - RANfunctionsID_List_t RANfunctionsID_List; - RANfunctionsIDcause_List_t RANfunctionsIDcause_List; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E2setupResponseIEs_t; -typedef struct E2setupFailureIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct E2setupFailureIEs__value { - E2setupFailureIEs__value_PR present; - union E2setupFailureIEs__value_u { - Cause_t Cause; - TimeToWait_t TimeToWait; - CriticalityDiagnostics_t CriticalityDiagnostics; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E2setupFailureIEs_t; -typedef struct ResetRequestIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct ResetRequestIEs__value { - ResetRequestIEs__value_PR present; - union ResetRequestIEs__value_u { - Cause_t Cause; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ResetRequestIEs_t; -typedef struct ResetResponseIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct ResetResponseIEs__value { - ResetResponseIEs__value_PR present; - union ResetResponseIEs__value_u { - CriticalityDiagnostics_t CriticalityDiagnostics; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ResetResponseIEs_t; -typedef struct RICserviceUpdate_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RICserviceUpdate_IEs__value { - RICserviceUpdate_IEs__value_PR present; - union RICserviceUpdate_IEs__value_u { - RANfunctions_List_t RANfunctions_List; - RANfunctionsID_List_t RANfunctionsID_List; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICserviceUpdate_IEs_t; -typedef struct RICserviceUpdateAcknowledge_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RICserviceUpdateAcknowledge_IEs__value { - RICserviceUpdateAcknowledge_IEs__value_PR present; - union RICserviceUpdateAcknowledge_IEs__value_u { - RANfunctionsID_List_t RANfunctionsID_List; - RANfunctionsIDcause_List_t RANfunctionsIDcause_List; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICserviceUpdateAcknowledge_IEs_t; -typedef struct RICserviceUpdateFailure_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RICserviceUpdateFailure_IEs__value { - RICserviceUpdateFailure_IEs__value_PR present; - union RICserviceUpdateFailure_IEs__value_u { - RANfunctionsIDcause_List_t RANfunctionsIDcause_List; - TimeToWait_t TimeToWait; - CriticalityDiagnostics_t CriticalityDiagnostics; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICserviceUpdateFailure_IEs_t; -typedef struct RICserviceQuery_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RICserviceQuery_IEs__value { - RICserviceQuery_IEs__value_PR present; - union RICserviceQuery_IEs__value_u { - RANfunctionsID_List_t RANfunctionsID_List; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICserviceQuery_IEs_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICaction_ToBeSetup_ItemIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RICaction_ToBeSetup_ItemIEs_specs_1; -extern asn_TYPE_member_t asn_MBR_RICaction_ToBeSetup_ItemIEs_1[3]; -extern asn_TYPE_descriptor_t asn_DEF_RICaction_Admitted_ItemIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RICaction_Admitted_ItemIEs_specs_5; -extern asn_TYPE_member_t asn_MBR_RICaction_Admitted_ItemIEs_5[3]; -extern asn_TYPE_descriptor_t asn_DEF_RICaction_NotAdmitted_ItemIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RICaction_NotAdmitted_ItemIEs_specs_9; -extern asn_TYPE_member_t asn_MBR_RICaction_NotAdmitted_ItemIEs_9[3]; -extern asn_TYPE_descriptor_t asn_DEF_RANfunction_ItemIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RANfunction_ItemIEs_specs_13; -extern asn_TYPE_member_t asn_MBR_RANfunction_ItemIEs_13[3]; -extern asn_TYPE_descriptor_t asn_DEF_RANfunctionID_ItemIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RANfunctionID_ItemIEs_specs_17; -extern asn_TYPE_member_t asn_MBR_RANfunctionID_ItemIEs_17[3]; -extern asn_TYPE_descriptor_t asn_DEF_RANfunctionIDcause_ItemIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RANfunctionIDcause_ItemIEs_specs_21; -extern asn_TYPE_member_t asn_MBR_RANfunctionIDcause_ItemIEs_21[3]; -extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionRequest_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionRequest_IEs_specs_25; -extern asn_TYPE_member_t asn_MBR_RICsubscriptionRequest_IEs_25[3]; -extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionResponse_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionResponse_IEs_specs_29; -extern asn_TYPE_member_t asn_MBR_RICsubscriptionResponse_IEs_29[3]; -extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionFailure_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionFailure_IEs_specs_33; -extern asn_TYPE_member_t asn_MBR_RICsubscriptionFailure_IEs_33[3]; -extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDeleteRequest_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteRequest_IEs_specs_37; -extern asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteRequest_IEs_37[3]; -extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDeleteResponse_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteResponse_IEs_specs_41; -extern asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteResponse_IEs_41[3]; -extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDeleteFailure_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteFailure_IEs_specs_45; -extern asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteFailure_IEs_45[3]; -extern asn_TYPE_descriptor_t asn_DEF_RICindication_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RICindication_IEs_specs_49; -extern asn_TYPE_member_t asn_MBR_RICindication_IEs_49[3]; -extern asn_TYPE_descriptor_t asn_DEF_RICcontrolRequest_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RICcontrolRequest_IEs_specs_53; -extern asn_TYPE_member_t asn_MBR_RICcontrolRequest_IEs_53[3]; -extern asn_TYPE_descriptor_t asn_DEF_RICcontrolAcknowledge_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RICcontrolAcknowledge_IEs_specs_57; -extern asn_TYPE_member_t asn_MBR_RICcontrolAcknowledge_IEs_57[3]; -extern asn_TYPE_descriptor_t asn_DEF_RICcontrolFailure_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RICcontrolFailure_IEs_specs_61; -extern asn_TYPE_member_t asn_MBR_RICcontrolFailure_IEs_61[3]; -extern asn_TYPE_descriptor_t asn_DEF_ErrorIndication_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_ErrorIndication_IEs_specs_65; -extern asn_TYPE_member_t asn_MBR_ErrorIndication_IEs_65[3]; -extern asn_TYPE_descriptor_t asn_DEF_E2setupRequestIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E2setupRequestIEs_specs_69; -extern asn_TYPE_member_t asn_MBR_E2setupRequestIEs_69[3]; -extern asn_TYPE_descriptor_t asn_DEF_E2setupResponseIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E2setupResponseIEs_specs_73; -extern asn_TYPE_member_t asn_MBR_E2setupResponseIEs_73[3]; -extern asn_TYPE_descriptor_t asn_DEF_E2setupFailureIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E2setupFailureIEs_specs_77; -extern asn_TYPE_member_t asn_MBR_E2setupFailureIEs_77[3]; -extern asn_TYPE_descriptor_t asn_DEF_ResetRequestIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_ResetRequestIEs_specs_81; -extern asn_TYPE_member_t asn_MBR_ResetRequestIEs_81[3]; -extern asn_TYPE_descriptor_t asn_DEF_ResetResponseIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_ResetResponseIEs_specs_85; -extern asn_TYPE_member_t asn_MBR_ResetResponseIEs_85[3]; -extern asn_TYPE_descriptor_t asn_DEF_RICserviceUpdate_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdate_IEs_specs_89; -extern asn_TYPE_member_t asn_MBR_RICserviceUpdate_IEs_89[3]; -extern asn_TYPE_descriptor_t asn_DEF_RICserviceUpdateAcknowledge_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdateAcknowledge_IEs_specs_93; -extern asn_TYPE_member_t asn_MBR_RICserviceUpdateAcknowledge_IEs_93[3]; -extern asn_TYPE_descriptor_t asn_DEF_RICserviceUpdateFailure_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdateFailure_IEs_specs_97; -extern asn_TYPE_member_t asn_MBR_RICserviceUpdateFailure_IEs_97[3]; -extern asn_TYPE_descriptor_t asn_DEF_RICserviceQuery_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RICserviceQuery_IEs_specs_101; -extern asn_TYPE_member_t asn_MBR_RICserviceQuery_IEs_101[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _ProtocolIE_Field_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ASN1c/ProtocolIE-FieldPair.c b/e2sim/previous/e2apv1sim/ASN1c/ProtocolIE-FieldPair.c deleted file mode 100644 index 9c7e653..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/ProtocolIE-FieldPair.c +++ /dev/null @@ -1,9 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-Containers" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "ProtocolIE-FieldPair.h" - diff --git a/e2sim/previous/e2apv1sim/ASN1c/ProtocolIE-FieldPair.h b/e2sim/previous/e2apv1sim/ASN1c/ProtocolIE-FieldPair.h deleted file mode 100644 index 8193bd6..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/ProtocolIE-FieldPair.h +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-Containers" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _ProtocolIE_FieldPair_H_ -#define _ProtocolIE_FieldPair_H_ - - -#include "asn_application.h" - -#ifdef __cplusplus -extern "C" { -#endif - -#ifdef __cplusplus -} -#endif - -#endif /* _ProtocolIE_FieldPair_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ASN1c/ProtocolIE-ID.c b/e2sim/previous/e2apv1sim/ASN1c/ProtocolIE-ID.c deleted file mode 100644 index 9afe610..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/ProtocolIE-ID.c +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-CommonDataTypes" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "ProtocolIE-ID.h" - -int -ProtocolIE_ID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using NativeInteger, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_ProtocolIE_ID_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_ID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ID = { - "ProtocolIE-ID", - "ProtocolIE-ID", - &asn_OP_NativeInteger, - asn_DEF_ProtocolIE_ID_tags_1, - sizeof(asn_DEF_ProtocolIE_ID_tags_1) - /sizeof(asn_DEF_ProtocolIE_ID_tags_1[0]), /* 1 */ - asn_DEF_ProtocolIE_ID_tags_1, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_ID_tags_1) - /sizeof(asn_DEF_ProtocolIE_ID_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_ID_constr_1, ProtocolIE_ID_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/ProtocolIE-ID.h b/e2sim/previous/e2apv1sim/ASN1c/ProtocolIE-ID.h deleted file mode 100644 index f6d2261..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/ProtocolIE-ID.h +++ /dev/null @@ -1,76 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-CommonDataTypes" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _ProtocolIE_ID_H_ -#define _ProtocolIE_ID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeInteger.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* ProtocolIE-ID */ -typedef long ProtocolIE_ID_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_ProtocolIE_ID_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ID; -asn_struct_free_f ProtocolIE_ID_free; -asn_struct_print_f ProtocolIE_ID_print; -asn_constr_check_f ProtocolIE_ID_constraint; -ber_type_decoder_f ProtocolIE_ID_decode_ber; -der_type_encoder_f ProtocolIE_ID_encode_der; -xer_type_decoder_f ProtocolIE_ID_decode_xer; -xer_type_encoder_f ProtocolIE_ID_encode_xer; -per_type_decoder_f ProtocolIE_ID_decode_uper; -per_type_encoder_f ProtocolIE_ID_encode_uper; -per_type_decoder_f ProtocolIE_ID_decode_aper; -per_type_encoder_f ProtocolIE_ID_encode_aper; -#define ProtocolIE_ID_id_Cause ((ProtocolIE_ID_t)1) -#define ProtocolIE_ID_id_CriticalityDiagnostics ((ProtocolIE_ID_t)2) -#define ProtocolIE_ID_id_GlobalE2node_ID ((ProtocolIE_ID_t)3) -#define ProtocolIE_ID_id_GlobalRIC_ID ((ProtocolIE_ID_t)4) -#define ProtocolIE_ID_id_RANfunctionID ((ProtocolIE_ID_t)5) -#define ProtocolIE_ID_id_RANfunctionID_Item ((ProtocolIE_ID_t)6) -#define ProtocolIE_ID_id_RANfunctionIEcause_Item ((ProtocolIE_ID_t)7) -#define ProtocolIE_ID_id_RANfunction_Item ((ProtocolIE_ID_t)8) -#define ProtocolIE_ID_id_RANfunctionsAccepted ((ProtocolIE_ID_t)9) -#define ProtocolIE_ID_id_RANfunctionsAdded ((ProtocolIE_ID_t)10) -#define ProtocolIE_ID_id_RANfunctionsDeleted ((ProtocolIE_ID_t)11) -#define ProtocolIE_ID_id_RANfunctionsModified ((ProtocolIE_ID_t)12) -#define ProtocolIE_ID_id_RANfunctionsRejected ((ProtocolIE_ID_t)13) -#define ProtocolIE_ID_id_RICaction_Admitted_Item ((ProtocolIE_ID_t)14) -#define ProtocolIE_ID_id_RICactionID ((ProtocolIE_ID_t)15) -#define ProtocolIE_ID_id_RICaction_NotAdmitted_Item ((ProtocolIE_ID_t)16) -#define ProtocolIE_ID_id_RICactions_Admitted ((ProtocolIE_ID_t)17) -#define ProtocolIE_ID_id_RICactions_NotAdmitted ((ProtocolIE_ID_t)18) -#define ProtocolIE_ID_id_RICaction_ToBeSetup_Item ((ProtocolIE_ID_t)19) -#define ProtocolIE_ID_id_RICcallProcessID ((ProtocolIE_ID_t)20) -#define ProtocolIE_ID_id_RICcontrolAckRequest ((ProtocolIE_ID_t)21) -#define ProtocolIE_ID_id_RICcontrolHeader ((ProtocolIE_ID_t)22) -#define ProtocolIE_ID_id_RICcontrolMessage ((ProtocolIE_ID_t)23) -#define ProtocolIE_ID_id_RICcontrolStatus ((ProtocolIE_ID_t)24) -#define ProtocolIE_ID_id_RICindicationHeader ((ProtocolIE_ID_t)25) -#define ProtocolIE_ID_id_RICindicationMessage ((ProtocolIE_ID_t)26) -#define ProtocolIE_ID_id_RICindicationSN ((ProtocolIE_ID_t)27) -#define ProtocolIE_ID_id_RICindicationType ((ProtocolIE_ID_t)28) -#define ProtocolIE_ID_id_RICrequestID ((ProtocolIE_ID_t)29) -#define ProtocolIE_ID_id_RICsubscriptionDetails ((ProtocolIE_ID_t)30) -#define ProtocolIE_ID_id_TimeToWait ((ProtocolIE_ID_t)31) -#define ProtocolIE_ID_id_RICcontrolOutcome ((ProtocolIE_ID_t)32) - -#ifdef __cplusplus -} -#endif - -#endif /* _ProtocolIE_ID_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ASN1c/ProtocolIE-SingleContainer.c b/e2sim/previous/e2apv1sim/ASN1c/ProtocolIE-SingleContainer.c deleted file mode 100644 index c516962..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/ProtocolIE-SingleContainer.c +++ /dev/null @@ -1,147 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-Containers" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "ProtocolIE-SingleContainer.h" - -/* - * This type is implemented using RICaction_ToBeSetup_ItemIEs, - * so here we adjust the DEF accordingly. - */ -/* - * This type is implemented using RICaction_Admitted_ItemIEs, - * so here we adjust the DEF accordingly. - */ -/* - * This type is implemented using RICaction_NotAdmitted_ItemIEs, - * so here we adjust the DEF accordingly. - */ -/* - * This type is implemented using RANfunction_ItemIEs, - * so here we adjust the DEF accordingly. - */ -/* - * This type is implemented using RANfunctionID_ItemIEs, - * so here we adjust the DEF accordingly. - */ -/* - * This type is implemented using RANfunctionIDcause_ItemIEs, - * so here we adjust the DEF accordingly. - */ -static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_1530P0_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1530P0 = { - "ProtocolIE-SingleContainer", - "ProtocolIE-SingleContainer", - &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_SingleContainer_1530P0_tags_1, - sizeof(asn_DEF_ProtocolIE_SingleContainer_1530P0_tags_1) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1530P0_tags_1[0]), /* 1 */ - asn_DEF_ProtocolIE_SingleContainer_1530P0_tags_1, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_SingleContainer_1530P0_tags_1) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1530P0_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICaction_ToBeSetup_ItemIEs_1, - 3, /* Elements count */ - &asn_SPC_RICaction_ToBeSetup_ItemIEs_specs_1 /* Additional specs */ -}; - -static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_1530P1_tags_2[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1530P1 = { - "ProtocolIE-SingleContainer", - "ProtocolIE-SingleContainer", - &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_SingleContainer_1530P1_tags_2, - sizeof(asn_DEF_ProtocolIE_SingleContainer_1530P1_tags_2) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1530P1_tags_2[0]), /* 1 */ - asn_DEF_ProtocolIE_SingleContainer_1530P1_tags_2, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_SingleContainer_1530P1_tags_2) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1530P1_tags_2[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICaction_Admitted_ItemIEs_5, - 3, /* Elements count */ - &asn_SPC_RICaction_Admitted_ItemIEs_specs_5 /* Additional specs */ -}; - -static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_1530P2_tags_3[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1530P2 = { - "ProtocolIE-SingleContainer", - "ProtocolIE-SingleContainer", - &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_SingleContainer_1530P2_tags_3, - sizeof(asn_DEF_ProtocolIE_SingleContainer_1530P2_tags_3) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1530P2_tags_3[0]), /* 1 */ - asn_DEF_ProtocolIE_SingleContainer_1530P2_tags_3, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_SingleContainer_1530P2_tags_3) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1530P2_tags_3[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICaction_NotAdmitted_ItemIEs_9, - 3, /* Elements count */ - &asn_SPC_RICaction_NotAdmitted_ItemIEs_specs_9 /* Additional specs */ -}; - -static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_1530P3_tags_4[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1530P3 = { - "ProtocolIE-SingleContainer", - "ProtocolIE-SingleContainer", - &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_SingleContainer_1530P3_tags_4, - sizeof(asn_DEF_ProtocolIE_SingleContainer_1530P3_tags_4) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1530P3_tags_4[0]), /* 1 */ - asn_DEF_ProtocolIE_SingleContainer_1530P3_tags_4, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_SingleContainer_1530P3_tags_4) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1530P3_tags_4[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RANfunction_ItemIEs_13, - 3, /* Elements count */ - &asn_SPC_RANfunction_ItemIEs_specs_13 /* Additional specs */ -}; - -static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_1530P4_tags_5[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1530P4 = { - "ProtocolIE-SingleContainer", - "ProtocolIE-SingleContainer", - &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_SingleContainer_1530P4_tags_5, - sizeof(asn_DEF_ProtocolIE_SingleContainer_1530P4_tags_5) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1530P4_tags_5[0]), /* 1 */ - asn_DEF_ProtocolIE_SingleContainer_1530P4_tags_5, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_SingleContainer_1530P4_tags_5) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1530P4_tags_5[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RANfunctionID_ItemIEs_17, - 3, /* Elements count */ - &asn_SPC_RANfunctionID_ItemIEs_specs_17 /* Additional specs */ -}; - -static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_1530P5_tags_6[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1530P5 = { - "ProtocolIE-SingleContainer", - "ProtocolIE-SingleContainer", - &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_SingleContainer_1530P5_tags_6, - sizeof(asn_DEF_ProtocolIE_SingleContainer_1530P5_tags_6) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1530P5_tags_6[0]), /* 1 */ - asn_DEF_ProtocolIE_SingleContainer_1530P5_tags_6, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_SingleContainer_1530P5_tags_6) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1530P5_tags_6[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RANfunctionIDcause_ItemIEs_21, - 3, /* Elements count */ - &asn_SPC_RANfunctionIDcause_ItemIEs_specs_21 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/ProtocolIE-SingleContainer.h b/e2sim/previous/e2apv1sim/ASN1c/ProtocolIE-SingleContainer.h deleted file mode 100644 index b17c298..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/ProtocolIE-SingleContainer.h +++ /dev/null @@ -1,108 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-Containers" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _ProtocolIE_SingleContainer_H_ -#define _ProtocolIE_SingleContainer_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Field.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* ProtocolIE-SingleContainer */ -typedef RICaction_ToBeSetup_ItemIEs_t ProtocolIE_SingleContainer_1530P0_t; -typedef RICaction_Admitted_ItemIEs_t ProtocolIE_SingleContainer_1530P1_t; -typedef RICaction_NotAdmitted_ItemIEs_t ProtocolIE_SingleContainer_1530P2_t; -typedef RANfunction_ItemIEs_t ProtocolIE_SingleContainer_1530P3_t; -typedef RANfunctionID_ItemIEs_t ProtocolIE_SingleContainer_1530P4_t; -typedef RANfunctionIDcause_ItemIEs_t ProtocolIE_SingleContainer_1530P5_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1530P0; -asn_struct_free_f ProtocolIE_SingleContainer_1530P0_free; -asn_struct_print_f ProtocolIE_SingleContainer_1530P0_print; -asn_constr_check_f ProtocolIE_SingleContainer_1530P0_constraint; -ber_type_decoder_f ProtocolIE_SingleContainer_1530P0_decode_ber; -der_type_encoder_f ProtocolIE_SingleContainer_1530P0_encode_der; -xer_type_decoder_f ProtocolIE_SingleContainer_1530P0_decode_xer; -xer_type_encoder_f ProtocolIE_SingleContainer_1530P0_encode_xer; -per_type_decoder_f ProtocolIE_SingleContainer_1530P0_decode_uper; -per_type_encoder_f ProtocolIE_SingleContainer_1530P0_encode_uper; -per_type_decoder_f ProtocolIE_SingleContainer_1530P0_decode_aper; -per_type_encoder_f ProtocolIE_SingleContainer_1530P0_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1530P1; -asn_struct_free_f ProtocolIE_SingleContainer_1530P1_free; -asn_struct_print_f ProtocolIE_SingleContainer_1530P1_print; -asn_constr_check_f ProtocolIE_SingleContainer_1530P1_constraint; -ber_type_decoder_f ProtocolIE_SingleContainer_1530P1_decode_ber; -der_type_encoder_f ProtocolIE_SingleContainer_1530P1_encode_der; -xer_type_decoder_f ProtocolIE_SingleContainer_1530P1_decode_xer; -xer_type_encoder_f ProtocolIE_SingleContainer_1530P1_encode_xer; -per_type_decoder_f ProtocolIE_SingleContainer_1530P1_decode_uper; -per_type_encoder_f ProtocolIE_SingleContainer_1530P1_encode_uper; -per_type_decoder_f ProtocolIE_SingleContainer_1530P1_decode_aper; -per_type_encoder_f ProtocolIE_SingleContainer_1530P1_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1530P2; -asn_struct_free_f ProtocolIE_SingleContainer_1530P2_free; -asn_struct_print_f ProtocolIE_SingleContainer_1530P2_print; -asn_constr_check_f ProtocolIE_SingleContainer_1530P2_constraint; -ber_type_decoder_f ProtocolIE_SingleContainer_1530P2_decode_ber; -der_type_encoder_f ProtocolIE_SingleContainer_1530P2_encode_der; -xer_type_decoder_f ProtocolIE_SingleContainer_1530P2_decode_xer; -xer_type_encoder_f ProtocolIE_SingleContainer_1530P2_encode_xer; -per_type_decoder_f ProtocolIE_SingleContainer_1530P2_decode_uper; -per_type_encoder_f ProtocolIE_SingleContainer_1530P2_encode_uper; -per_type_decoder_f ProtocolIE_SingleContainer_1530P2_decode_aper; -per_type_encoder_f ProtocolIE_SingleContainer_1530P2_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1530P3; -asn_struct_free_f ProtocolIE_SingleContainer_1530P3_free; -asn_struct_print_f ProtocolIE_SingleContainer_1530P3_print; -asn_constr_check_f ProtocolIE_SingleContainer_1530P3_constraint; -ber_type_decoder_f ProtocolIE_SingleContainer_1530P3_decode_ber; -der_type_encoder_f ProtocolIE_SingleContainer_1530P3_encode_der; -xer_type_decoder_f ProtocolIE_SingleContainer_1530P3_decode_xer; -xer_type_encoder_f ProtocolIE_SingleContainer_1530P3_encode_xer; -per_type_decoder_f ProtocolIE_SingleContainer_1530P3_decode_uper; -per_type_encoder_f ProtocolIE_SingleContainer_1530P3_encode_uper; -per_type_decoder_f ProtocolIE_SingleContainer_1530P3_decode_aper; -per_type_encoder_f ProtocolIE_SingleContainer_1530P3_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1530P4; -asn_struct_free_f ProtocolIE_SingleContainer_1530P4_free; -asn_struct_print_f ProtocolIE_SingleContainer_1530P4_print; -asn_constr_check_f ProtocolIE_SingleContainer_1530P4_constraint; -ber_type_decoder_f ProtocolIE_SingleContainer_1530P4_decode_ber; -der_type_encoder_f ProtocolIE_SingleContainer_1530P4_encode_der; -xer_type_decoder_f ProtocolIE_SingleContainer_1530P4_decode_xer; -xer_type_encoder_f ProtocolIE_SingleContainer_1530P4_encode_xer; -per_type_decoder_f ProtocolIE_SingleContainer_1530P4_decode_uper; -per_type_encoder_f ProtocolIE_SingleContainer_1530P4_encode_uper; -per_type_decoder_f ProtocolIE_SingleContainer_1530P4_decode_aper; -per_type_encoder_f ProtocolIE_SingleContainer_1530P4_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1530P5; -asn_struct_free_f ProtocolIE_SingleContainer_1530P5_free; -asn_struct_print_f ProtocolIE_SingleContainer_1530P5_print; -asn_constr_check_f ProtocolIE_SingleContainer_1530P5_constraint; -ber_type_decoder_f ProtocolIE_SingleContainer_1530P5_decode_ber; -der_type_encoder_f ProtocolIE_SingleContainer_1530P5_encode_der; -xer_type_decoder_f ProtocolIE_SingleContainer_1530P5_decode_xer; -xer_type_encoder_f ProtocolIE_SingleContainer_1530P5_encode_xer; -per_type_decoder_f ProtocolIE_SingleContainer_1530P5_decode_uper; -per_type_encoder_f ProtocolIE_SingleContainer_1530P5_encode_uper; -per_type_decoder_f ProtocolIE_SingleContainer_1530P5_decode_aper; -per_type_encoder_f ProtocolIE_SingleContainer_1530P5_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _ProtocolIE_SingleContainer_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ASN1c/RAN-Container.c b/e2sim/previous/e2apv1sim/ASN1c/RAN-Container.c deleted file mode 100644 index 373508b..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/RAN-Container.c +++ /dev/null @@ -1,127 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "RAN-Container.h" - -static asn_oer_constraints_t asn_OER_type_reportContainer_constr_3 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_type_reportContainer_constr_3 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 2 } /* (0..2,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_reportContainer_3[] = { - { ATF_NOFLAGS, 0, offsetof(struct RAN_Container__reportContainer, choice.oDU_UE), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_DU_Usage_Report_Per_UE, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "oDU-UE" - }, - { ATF_NOFLAGS, 0, offsetof(struct RAN_Container__reportContainer, choice.oCU_CP_UE), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_CU_CP_Usage_Report_Per_UE, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "oCU-CP-UE" - }, - { ATF_NOFLAGS, 0, offsetof(struct RAN_Container__reportContainer, choice.oCU_UP_UE), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_CU_UP_Usage_Report_Per_UE, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "oCU-UP-UE" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_reportContainer_tag2el_3[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* oDU-UE */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* oCU-CP-UE */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* oCU-UP-UE */ -}; -static asn_CHOICE_specifics_t asn_SPC_reportContainer_specs_3 = { - sizeof(struct RAN_Container__reportContainer), - offsetof(struct RAN_Container__reportContainer, _asn_ctx), - offsetof(struct RAN_Container__reportContainer, present), - sizeof(((struct RAN_Container__reportContainer *)0)->present), - asn_MAP_reportContainer_tag2el_3, - 3, /* Count of tags in the map */ - 0, 0, - 3 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_reportContainer_3 = { - "reportContainer", - "reportContainer", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { &asn_OER_type_reportContainer_constr_3, &asn_PER_type_reportContainer_constr_3, CHOICE_constraint }, - asn_MBR_reportContainer_3, - 3, /* Elements count */ - &asn_SPC_reportContainer_specs_3 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_RAN_Container_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RAN_Container, timestamp), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Timestamp, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "timestamp" - }, - { ATF_NOFLAGS, 0, offsetof(struct RAN_Container, reportContainer), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_reportContainer_3, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "reportContainer" - }, -}; -static const ber_tlv_tag_t asn_DEF_RAN_Container_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RAN_Container_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* timestamp */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* reportContainer */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RAN_Container_specs_1 = { - sizeof(struct RAN_Container), - offsetof(struct RAN_Container, _asn_ctx), - asn_MAP_RAN_Container_tag2el_1, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 2, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RAN_Container = { - "RAN-Container", - "RAN-Container", - &asn_OP_SEQUENCE, - asn_DEF_RAN_Container_tags_1, - sizeof(asn_DEF_RAN_Container_tags_1) - /sizeof(asn_DEF_RAN_Container_tags_1[0]), /* 1 */ - asn_DEF_RAN_Container_tags_1, /* Same as above */ - sizeof(asn_DEF_RAN_Container_tags_1) - /sizeof(asn_DEF_RAN_Container_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RAN_Container_1, - 2, /* Elements count */ - &asn_SPC_RAN_Container_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/RAN-Container.h b/e2sim/previous/e2apv1sim/ASN1c/RAN-Container.h deleted file mode 100644 index 8184460..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/RAN-Container.h +++ /dev/null @@ -1,73 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _RAN_Container_H_ -#define _RAN_Container_H_ - - -#include - -/* Including external dependencies */ -#include "Timestamp.h" -#include "DU-Usage-Report-Per-UE.h" -#include "CU-CP-Usage-Report-Per-UE.h" -#include "CU-UP-Usage-Report-Per-UE.h" -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum RAN_Container__reportContainer_PR { - RAN_Container__reportContainer_PR_NOTHING, /* No components present */ - RAN_Container__reportContainer_PR_oDU_UE, - RAN_Container__reportContainer_PR_oCU_CP_UE, - RAN_Container__reportContainer_PR_oCU_UP_UE - /* Extensions may appear below */ - -} RAN_Container__reportContainer_PR; - -/* RAN-Container */ -typedef struct RAN_Container { - Timestamp_t timestamp; - struct RAN_Container__reportContainer { - RAN_Container__reportContainer_PR present; - union RAN_Container__reportContainer_u { - DU_Usage_Report_Per_UE_t oDU_UE; - CU_CP_Usage_Report_Per_UE_t oCU_CP_UE; - CU_UP_Usage_Report_Per_UE_t oCU_UP_UE; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } reportContainer; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RAN_Container_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RAN_Container; -extern asn_SEQUENCE_specifics_t asn_SPC_RAN_Container_specs_1; -extern asn_TYPE_member_t asn_MBR_RAN_Container_1[2]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RAN_Container_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ASN1c/RANcallProcess-ID-string.c b/e2sim/previous/e2apv1sim/ASN1c/RANcallProcess-ID-string.c deleted file mode 100644 index 4cd1b70..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/RANcallProcess-ID-string.c +++ /dev/null @@ -1,109 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "RANcallProcess-ID-string.h" - -static const int permitted_alphabet_table_1[256] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */ - 1, 0, 0, 0, 0, 0, 0, 2, 3, 4, 0, 5, 6, 7, 8, 9, /* . '() +,-./ */ -10,11,12,13,14,15,16,17,18,19,20, 0, 0,21, 0,22, /* 0123456789: = ? */ - 0,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37, /* ABCDEFGHIJKLMNO */ -38,39,40,41,42,43,44,45,46,47,48, 0, 0, 0, 0, 0, /* PQRSTUVWXYZ */ - 0,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63, /* abcdefghijklmno */ -64,65,66,67,68,69,70,71,72,73,74, 0, 0, 0, 0, 0, /* pqrstuvwxyz */ -}; -static const int permitted_alphabet_code2value_1[74] = { -32,39,40,41,43,44,45,46,47,48,49,50,51,52,53,54, -55,56,57,58,61,63,65,66,67,68,69,70,71,72,73,74, -75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90, -97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112, -113,114,115,116,117,118,119,120,121,122,}; - - -static int check_permitted_alphabet_1(const void *sptr) { - const int *table = permitted_alphabet_table_1; - /* The underlying type is PrintableString */ - const PrintableString_t *st = (const PrintableString_t *)sptr; - const uint8_t *ch = st->buf; - const uint8_t *end = ch + st->size; - - for(; ch < end; ch++) { - uint8_t cv = *ch; - if(!table[cv]) return -1; - } - return 0; -} - -int -RANcallProcess_ID_string_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const PrintableString_t *st = (const PrintableString_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - size = st->size; - - if((size >= 1 && size <= 150) - && !check_permitted_alphabet_1(st)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int asn_PER_MAP_RANcallProcess_ID_string_1_v2c(unsigned int value) { - if(value >= sizeof(permitted_alphabet_table_1)/sizeof(permitted_alphabet_table_1[0])) - return -1; - return permitted_alphabet_table_1[value] - 1; -} -static int asn_PER_MAP_RANcallProcess_ID_string_1_c2v(unsigned int code) { - if(code >= sizeof(permitted_alphabet_code2value_1)/sizeof(permitted_alphabet_code2value_1[0])) - return -1; - return permitted_alphabet_code2value_1[code]; -} -/* - * This type is implemented using PrintableString, - * so here we adjust the DEF accordingly. - */ -static asn_oer_constraints_t asn_OER_type_RANcallProcess_ID_string_constr_1 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(0..MAX)) */}; -static asn_per_constraints_t asn_PER_type_RANcallProcess_ID_string_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED, 7, 7, 32, 122 } /* (32..122) */, - { APC_CONSTRAINED | APC_EXTENSIBLE, 8, 8, 1, 150 } /* (SIZE(1..150,...)) */, - asn_PER_MAP_RANcallProcess_ID_string_1_v2c, /* Value to PER code map */ - asn_PER_MAP_RANcallProcess_ID_string_1_c2v /* PER code to value map */ -}; -static const ber_tlv_tag_t asn_DEF_RANcallProcess_ID_string_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (19 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RANcallProcess_ID_string = { - "RANcallProcess-ID-string", - "RANcallProcess-ID-string", - &asn_OP_PrintableString, - asn_DEF_RANcallProcess_ID_string_tags_1, - sizeof(asn_DEF_RANcallProcess_ID_string_tags_1) - /sizeof(asn_DEF_RANcallProcess_ID_string_tags_1[0]), /* 1 */ - asn_DEF_RANcallProcess_ID_string_tags_1, /* Same as above */ - sizeof(asn_DEF_RANcallProcess_ID_string_tags_1) - /sizeof(asn_DEF_RANcallProcess_ID_string_tags_1[0]), /* 1 */ - { &asn_OER_type_RANcallProcess_ID_string_constr_1, &asn_PER_type_RANcallProcess_ID_string_constr_1, RANcallProcess_ID_string_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/RANcallProcess-ID-string.h b/e2sim/previous/e2apv1sim/ASN1c/RANcallProcess-ID-string.h deleted file mode 100644 index 087cdc0..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/RANcallProcess-ID-string.h +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _RANcallProcess_ID_string_H_ -#define _RANcallProcess_ID_string_H_ - - -#include - -/* Including external dependencies */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* RANcallProcess-ID-string */ -typedef PrintableString_t RANcallProcess_ID_string_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RANcallProcess_ID_string; -asn_struct_free_f RANcallProcess_ID_string_free; -asn_struct_print_f RANcallProcess_ID_string_print; -asn_constr_check_f RANcallProcess_ID_string_constraint; -ber_type_decoder_f RANcallProcess_ID_string_decode_ber; -der_type_encoder_f RANcallProcess_ID_string_encode_der; -xer_type_decoder_f RANcallProcess_ID_string_decode_xer; -xer_type_encoder_f RANcallProcess_ID_string_encode_xer; -oer_type_decoder_f RANcallProcess_ID_string_decode_oer; -oer_type_encoder_f RANcallProcess_ID_string_encode_oer; -per_type_decoder_f RANcallProcess_ID_string_decode_uper; -per_type_encoder_f RANcallProcess_ID_string_encode_uper; -per_type_decoder_f RANcallProcess_ID_string_decode_aper; -per_type_encoder_f RANcallProcess_ID_string_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RANcallProcess_ID_string_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ASN1c/RANfunction-Item.c b/e2sim/previous/e2apv1sim/ASN1c/RANfunction-Item.c deleted file mode 100644 index f1554d0..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/RANfunction-Item.c +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RANfunction-Item.h" - -static asn_TYPE_member_t asn_MBR_RANfunction_Item_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RANfunction_Item, ranFunctionID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RANfunctionID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ranFunctionID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RANfunction_Item, ranFunctionDefinition), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RANfunctionDefinition, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ranFunctionDefinition" - }, - { ATF_NOFLAGS, 0, offsetof(struct RANfunction_Item, ranFunctionRevision), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RANfunctionRevision, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ranFunctionRevision" - }, -}; -static const ber_tlv_tag_t asn_DEF_RANfunction_Item_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RANfunction_Item_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ranFunctionID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ranFunctionDefinition */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* ranFunctionRevision */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_RANfunction_Item_specs_1 = { - sizeof(struct RANfunction_Item), - offsetof(struct RANfunction_Item, _asn_ctx), - asn_MAP_RANfunction_Item_tag2el_1, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RANfunction_Item = { - "RANfunction-Item", - "RANfunction-Item", - &asn_OP_SEQUENCE, - asn_DEF_RANfunction_Item_tags_1, - sizeof(asn_DEF_RANfunction_Item_tags_1) - /sizeof(asn_DEF_RANfunction_Item_tags_1[0]), /* 1 */ - asn_DEF_RANfunction_Item_tags_1, /* Same as above */ - sizeof(asn_DEF_RANfunction_Item_tags_1) - /sizeof(asn_DEF_RANfunction_Item_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RANfunction_Item_1, - 3, /* Elements count */ - &asn_SPC_RANfunction_Item_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/RANfunction-Item.h b/e2sim/previous/e2apv1sim/ASN1c/RANfunction-Item.h deleted file mode 100644 index e7fd073..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/RANfunction-Item.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RANfunction_Item_H_ -#define _RANfunction_Item_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "RANfunctionID.h" -#include "RANfunctionDefinition.h" -#include "RANfunctionRevision.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RANfunction-Item */ -typedef struct RANfunction_Item { - RANfunctionID_t ranFunctionID; - RANfunctionDefinition_t ranFunctionDefinition; - RANfunctionRevision_t ranFunctionRevision; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RANfunction_Item_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RANfunction_Item; - -#ifdef __cplusplus -} -#endif - -#endif /* _RANfunction_Item_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ASN1c/RANfunction-Name.c b/e2sim/previous/e2apv1sim/ASN1c/RANfunction-Name.c deleted file mode 100644 index 72a90a9..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/RANfunction-Name.c +++ /dev/null @@ -1,316 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "RANfunction-Name.h" - -static const int permitted_alphabet_table_2[256] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */ - 1, 0, 0, 0, 0, 0, 0, 2, 3, 4, 0, 5, 6, 7, 8, 9, /* . '() +,-./ */ -10,11,12,13,14,15,16,17,18,19,20, 0, 0,21, 0,22, /* 0123456789: = ? */ - 0,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37, /* ABCDEFGHIJKLMNO */ -38,39,40,41,42,43,44,45,46,47,48, 0, 0, 0, 0, 0, /* PQRSTUVWXYZ */ - 0,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63, /* abcdefghijklmno */ -64,65,66,67,68,69,70,71,72,73,74, 0, 0, 0, 0, 0, /* pqrstuvwxyz */ -}; -static const int permitted_alphabet_code2value_2[74] = { -32,39,40,41,43,44,45,46,47,48,49,50,51,52,53,54, -55,56,57,58,61,63,65,66,67,68,69,70,71,72,73,74, -75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90, -97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112, -113,114,115,116,117,118,119,120,121,122,}; - - -static int check_permitted_alphabet_2(const void *sptr) { - const int *table = permitted_alphabet_table_2; - /* The underlying type is PrintableString */ - const PrintableString_t *st = (const PrintableString_t *)sptr; - const uint8_t *ch = st->buf; - const uint8_t *end = ch + st->size; - - for(; ch < end; ch++) { - uint8_t cv = *ch; - if(!table[cv]) return -1; - } - return 0; -} - -static const int permitted_alphabet_table_3[256] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */ - 1, 0, 0, 0, 0, 0, 0, 2, 3, 4, 0, 5, 6, 7, 8, 9, /* . '() +,-./ */ -10,11,12,13,14,15,16,17,18,19,20, 0, 0,21, 0,22, /* 0123456789: = ? */ - 0,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37, /* ABCDEFGHIJKLMNO */ -38,39,40,41,42,43,44,45,46,47,48, 0, 0, 0, 0, 0, /* PQRSTUVWXYZ */ - 0,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63, /* abcdefghijklmno */ -64,65,66,67,68,69,70,71,72,73,74, 0, 0, 0, 0, 0, /* pqrstuvwxyz */ -}; -static const int permitted_alphabet_code2value_3[74] = { -32,39,40,41,43,44,45,46,47,48,49,50,51,52,53,54, -55,56,57,58,61,63,65,66,67,68,69,70,71,72,73,74, -75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90, -97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112, -113,114,115,116,117,118,119,120,121,122,}; - - -static int check_permitted_alphabet_3(const void *sptr) { - const int *table = permitted_alphabet_table_3; - /* The underlying type is PrintableString */ - const PrintableString_t *st = (const PrintableString_t *)sptr; - const uint8_t *ch = st->buf; - const uint8_t *end = ch + st->size; - - for(; ch < end; ch++) { - uint8_t cv = *ch; - if(!table[cv]) return -1; - } - return 0; -} - -static const int permitted_alphabet_table_4[256] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */ - 1, 0, 0, 0, 0, 0, 0, 2, 3, 4, 0, 5, 6, 7, 8, 9, /* . '() +,-./ */ -10,11,12,13,14,15,16,17,18,19,20, 0, 0,21, 0,22, /* 0123456789: = ? */ - 0,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37, /* ABCDEFGHIJKLMNO */ -38,39,40,41,42,43,44,45,46,47,48, 0, 0, 0, 0, 0, /* PQRSTUVWXYZ */ - 0,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63, /* abcdefghijklmno */ -64,65,66,67,68,69,70,71,72,73,74, 0, 0, 0, 0, 0, /* pqrstuvwxyz */ -}; -static const int permitted_alphabet_code2value_4[74] = { -32,39,40,41,43,44,45,46,47,48,49,50,51,52,53,54, -55,56,57,58,61,63,65,66,67,68,69,70,71,72,73,74, -75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90, -97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112, -113,114,115,116,117,118,119,120,121,122,}; - - -static int check_permitted_alphabet_4(const void *sptr) { - const int *table = permitted_alphabet_table_4; - /* The underlying type is PrintableString */ - const PrintableString_t *st = (const PrintableString_t *)sptr; - const uint8_t *ch = st->buf; - const uint8_t *end = ch + st->size; - - for(; ch < end; ch++) { - uint8_t cv = *ch; - if(!table[cv]) return -1; - } - return 0; -} - -static int -memb_ranFunction_ShortName_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const PrintableString_t *st = (const PrintableString_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - size = st->size; - - if((size >= 1 && size <= 150) - && !check_permitted_alphabet_2(st)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int asn_PER_MAP_ranFunction_ShortName_2_v2c(unsigned int value) { - if(value >= sizeof(permitted_alphabet_table_2)/sizeof(permitted_alphabet_table_2[0])) - return -1; - return permitted_alphabet_table_2[value] - 1; -} -static int asn_PER_MAP_ranFunction_ShortName_2_c2v(unsigned int code) { - if(code >= sizeof(permitted_alphabet_code2value_2)/sizeof(permitted_alphabet_code2value_2[0])) - return -1; - return permitted_alphabet_code2value_2[code]; -} -static int -memb_ranFunction_E2SM_OID_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const PrintableString_t *st = (const PrintableString_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - size = st->size; - - if((size >= 1 && size <= 1000) - && !check_permitted_alphabet_3(st)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int asn_PER_MAP_ranFunction_E2SM_OID_3_v2c(unsigned int value) { - if(value >= sizeof(permitted_alphabet_table_3)/sizeof(permitted_alphabet_table_3[0])) - return -1; - return permitted_alphabet_table_3[value] - 1; -} -static int asn_PER_MAP_ranFunction_E2SM_OID_3_c2v(unsigned int code) { - if(code >= sizeof(permitted_alphabet_code2value_3)/sizeof(permitted_alphabet_code2value_3[0])) - return -1; - return permitted_alphabet_code2value_3[code]; -} -static int -memb_ranFunction_Description_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const PrintableString_t *st = (const PrintableString_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - size = st->size; - - if((size >= 1 && size <= 150) - && !check_permitted_alphabet_4(st)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int asn_PER_MAP_ranFunction_Description_4_v2c(unsigned int value) { - if(value >= sizeof(permitted_alphabet_table_4)/sizeof(permitted_alphabet_table_4[0])) - return -1; - return permitted_alphabet_table_4[value] - 1; -} -static int asn_PER_MAP_ranFunction_Description_4_c2v(unsigned int code) { - if(code >= sizeof(permitted_alphabet_code2value_4)/sizeof(permitted_alphabet_code2value_4[0])) - return -1; - return permitted_alphabet_code2value_4[code]; -} -static asn_oer_constraints_t asn_OER_memb_ranFunction_ShortName_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(0..MAX)) */}; -static asn_per_constraints_t asn_PER_memb_ranFunction_ShortName_constr_2 CC_NOTUSED = { - { APC_CONSTRAINED, 7, 7, 32, 122 } /* (32..122) */, - { APC_CONSTRAINED | APC_EXTENSIBLE, 8, 8, 1, 150 } /* (SIZE(1..150,...)) */, - asn_PER_MAP_ranFunction_ShortName_2_v2c, /* Value to PER code map */ - asn_PER_MAP_ranFunction_ShortName_2_c2v /* PER code to value map */ -}; -static asn_oer_constraints_t asn_OER_memb_ranFunction_E2SM_OID_constr_3 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(0..MAX)) */}; -static asn_per_constraints_t asn_PER_memb_ranFunction_E2SM_OID_constr_3 CC_NOTUSED = { - { APC_CONSTRAINED, 7, 7, 32, 122 } /* (32..122) */, - { APC_CONSTRAINED | APC_EXTENSIBLE, 10, 10, 1, 1000 } /* (SIZE(1..1000,...)) */, - asn_PER_MAP_ranFunction_E2SM_OID_3_v2c, /* Value to PER code map */ - asn_PER_MAP_ranFunction_E2SM_OID_3_c2v /* PER code to value map */ -}; -static asn_oer_constraints_t asn_OER_memb_ranFunction_Description_constr_4 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(0..MAX)) */}; -static asn_per_constraints_t asn_PER_memb_ranFunction_Description_constr_4 CC_NOTUSED = { - { APC_CONSTRAINED, 7, 7, 32, 122 } /* (32..122) */, - { APC_CONSTRAINED | APC_EXTENSIBLE, 8, 8, 1, 150 } /* (SIZE(1..150,...)) */, - asn_PER_MAP_ranFunction_Description_4_v2c, /* Value to PER code map */ - asn_PER_MAP_ranFunction_Description_4_c2v /* PER code to value map */ -}; -asn_TYPE_member_t asn_MBR_RANfunction_Name_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RANfunction_Name, ranFunction_ShortName), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_PrintableString, - 0, - { &asn_OER_memb_ranFunction_ShortName_constr_2, &asn_PER_memb_ranFunction_ShortName_constr_2, memb_ranFunction_ShortName_constraint_1 }, - 0, 0, /* No default value */ - "ranFunction-ShortName" - }, - { ATF_NOFLAGS, 0, offsetof(struct RANfunction_Name, ranFunction_E2SM_OID), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_PrintableString, - 0, - { &asn_OER_memb_ranFunction_E2SM_OID_constr_3, &asn_PER_memb_ranFunction_E2SM_OID_constr_3, memb_ranFunction_E2SM_OID_constraint_1 }, - 0, 0, /* No default value */ - "ranFunction-E2SM-OID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RANfunction_Name, ranFunction_Description), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_PrintableString, - 0, - { &asn_OER_memb_ranFunction_Description_constr_4, &asn_PER_memb_ranFunction_Description_constr_4, memb_ranFunction_Description_constraint_1 }, - 0, 0, /* No default value */ - "ranFunction-Description" - }, - { ATF_POINTER, 1, offsetof(struct RANfunction_Name, ranFunction_Instance), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ranFunction-Instance" - }, -}; -static const int asn_MAP_RANfunction_Name_oms_1[] = { 3 }; -static const ber_tlv_tag_t asn_DEF_RANfunction_Name_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RANfunction_Name_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ranFunction-ShortName */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ranFunction-E2SM-OID */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* ranFunction-Description */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* ranFunction-Instance */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RANfunction_Name_specs_1 = { - sizeof(struct RANfunction_Name), - offsetof(struct RANfunction_Name, _asn_ctx), - asn_MAP_RANfunction_Name_tag2el_1, - 4, /* Count of tags in the map */ - asn_MAP_RANfunction_Name_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 4, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RANfunction_Name = { - "RANfunction-Name", - "RANfunction-Name", - &asn_OP_SEQUENCE, - asn_DEF_RANfunction_Name_tags_1, - sizeof(asn_DEF_RANfunction_Name_tags_1) - /sizeof(asn_DEF_RANfunction_Name_tags_1[0]), /* 1 */ - asn_DEF_RANfunction_Name_tags_1, /* Same as above */ - sizeof(asn_DEF_RANfunction_Name_tags_1) - /sizeof(asn_DEF_RANfunction_Name_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RANfunction_Name_1, - 4, /* Elements count */ - &asn_SPC_RANfunction_Name_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/RANfunction-Name.h b/e2sim/previous/e2apv1sim/ASN1c/RANfunction-Name.h deleted file mode 100644 index 0fe182b..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/RANfunction-Name.h +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _RANfunction_Name_H_ -#define _RANfunction_Name_H_ - - -#include - -/* Including external dependencies */ -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* RANfunction-Name */ -typedef struct RANfunction_Name { - PrintableString_t ranFunction_ShortName; - PrintableString_t ranFunction_E2SM_OID; - PrintableString_t ranFunction_Description; - long *ranFunction_Instance; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RANfunction_Name_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RANfunction_Name; -extern asn_SEQUENCE_specifics_t asn_SPC_RANfunction_Name_specs_1; -extern asn_TYPE_member_t asn_MBR_RANfunction_Name_1[4]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RANfunction_Name_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ASN1c/RANfunctionDefinition.c b/e2sim/previous/e2apv1sim/ASN1c/RANfunctionDefinition.c deleted file mode 100644 index 3d8697d..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/RANfunctionDefinition.c +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RANfunctionDefinition.h" - -/* - * This type is implemented using OCTET_STRING, - * so here we adjust the DEF accordingly. - */ -static const ber_tlv_tag_t asn_DEF_RANfunctionDefinition_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RANfunctionDefinition = { - "RANfunctionDefinition", - "RANfunctionDefinition", - &asn_OP_OCTET_STRING, - asn_DEF_RANfunctionDefinition_tags_1, - sizeof(asn_DEF_RANfunctionDefinition_tags_1) - /sizeof(asn_DEF_RANfunctionDefinition_tags_1[0]), /* 1 */ - asn_DEF_RANfunctionDefinition_tags_1, /* Same as above */ - sizeof(asn_DEF_RANfunctionDefinition_tags_1) - /sizeof(asn_DEF_RANfunctionDefinition_tags_1[0]), /* 1 */ - { 0, 0, OCTET_STRING_constraint }, - 0, 0, /* No members */ - &asn_SPC_OCTET_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/RANfunctionDefinition.h b/e2sim/previous/e2apv1sim/ASN1c/RANfunctionDefinition.h deleted file mode 100644 index 4e54dde..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/RANfunctionDefinition.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RANfunctionDefinition_H_ -#define _RANfunctionDefinition_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "OCTET_STRING.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RANfunctionDefinition */ -typedef OCTET_STRING_t RANfunctionDefinition_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RANfunctionDefinition; -asn_struct_free_f RANfunctionDefinition_free; -asn_struct_print_f RANfunctionDefinition_print; -asn_constr_check_f RANfunctionDefinition_constraint; -ber_type_decoder_f RANfunctionDefinition_decode_ber; -der_type_encoder_f RANfunctionDefinition_encode_der; -xer_type_decoder_f RANfunctionDefinition_decode_xer; -xer_type_encoder_f RANfunctionDefinition_encode_xer; -per_type_decoder_f RANfunctionDefinition_decode_uper; -per_type_encoder_f RANfunctionDefinition_encode_uper; -per_type_decoder_f RANfunctionDefinition_decode_aper; -per_type_encoder_f RANfunctionDefinition_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RANfunctionDefinition_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ASN1c/RANfunctionID-Item.c b/e2sim/previous/e2apv1sim/ASN1c/RANfunctionID-Item.c deleted file mode 100644 index 7661a88..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/RANfunctionID-Item.c +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RANfunctionID-Item.h" - -static asn_TYPE_member_t asn_MBR_RANfunctionID_Item_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RANfunctionID_Item, ranFunctionID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RANfunctionID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ranFunctionID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RANfunctionID_Item, ranFunctionRevision), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RANfunctionRevision, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ranFunctionRevision" - }, -}; -static const ber_tlv_tag_t asn_DEF_RANfunctionID_Item_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RANfunctionID_Item_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ranFunctionID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ranFunctionRevision */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_RANfunctionID_Item_specs_1 = { - sizeof(struct RANfunctionID_Item), - offsetof(struct RANfunctionID_Item, _asn_ctx), - asn_MAP_RANfunctionID_Item_tag2el_1, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 2, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RANfunctionID_Item = { - "RANfunctionID-Item", - "RANfunctionID-Item", - &asn_OP_SEQUENCE, - asn_DEF_RANfunctionID_Item_tags_1, - sizeof(asn_DEF_RANfunctionID_Item_tags_1) - /sizeof(asn_DEF_RANfunctionID_Item_tags_1[0]), /* 1 */ - asn_DEF_RANfunctionID_Item_tags_1, /* Same as above */ - sizeof(asn_DEF_RANfunctionID_Item_tags_1) - /sizeof(asn_DEF_RANfunctionID_Item_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RANfunctionID_Item_1, - 2, /* Elements count */ - &asn_SPC_RANfunctionID_Item_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/RANfunctionID-Item.h b/e2sim/previous/e2apv1sim/ASN1c/RANfunctionID-Item.h deleted file mode 100644 index 9b3be69..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/RANfunctionID-Item.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RANfunctionID_Item_H_ -#define _RANfunctionID_Item_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "RANfunctionID.h" -#include "RANfunctionRevision.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RANfunctionID-Item */ -typedef struct RANfunctionID_Item { - RANfunctionID_t ranFunctionID; - RANfunctionRevision_t ranFunctionRevision; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RANfunctionID_Item_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RANfunctionID_Item; - -#ifdef __cplusplus -} -#endif - -#endif /* _RANfunctionID_Item_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ASN1c/RANfunctionID.c b/e2sim/previous/e2apv1sim/ASN1c/RANfunctionID.c deleted file mode 100644 index fc95705..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/RANfunctionID.c +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RANfunctionID.h" - -int -RANfunctionID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 4095)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using NativeInteger, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_RANfunctionID_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED, 12, 12, 0, 4095 } /* (0..4095) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_RANfunctionID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RANfunctionID = { - "RANfunctionID", - "RANfunctionID", - &asn_OP_NativeInteger, - asn_DEF_RANfunctionID_tags_1, - sizeof(asn_DEF_RANfunctionID_tags_1) - /sizeof(asn_DEF_RANfunctionID_tags_1[0]), /* 1 */ - asn_DEF_RANfunctionID_tags_1, /* Same as above */ - sizeof(asn_DEF_RANfunctionID_tags_1) - /sizeof(asn_DEF_RANfunctionID_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_RANfunctionID_constr_1, RANfunctionID_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/RANfunctionID.h b/e2sim/previous/e2apv1sim/ASN1c/RANfunctionID.h deleted file mode 100644 index f0a61a0..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/RANfunctionID.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RANfunctionID_H_ -#define _RANfunctionID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeInteger.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RANfunctionID */ -typedef long RANfunctionID_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_RANfunctionID_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_RANfunctionID; -asn_struct_free_f RANfunctionID_free; -asn_struct_print_f RANfunctionID_print; -asn_constr_check_f RANfunctionID_constraint; -ber_type_decoder_f RANfunctionID_decode_ber; -der_type_encoder_f RANfunctionID_encode_der; -xer_type_decoder_f RANfunctionID_decode_xer; -xer_type_encoder_f RANfunctionID_encode_xer; -per_type_decoder_f RANfunctionID_decode_uper; -per_type_encoder_f RANfunctionID_encode_uper; -per_type_decoder_f RANfunctionID_decode_aper; -per_type_encoder_f RANfunctionID_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RANfunctionID_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ASN1c/RANfunctionIDcause-Item.c b/e2sim/previous/e2apv1sim/ASN1c/RANfunctionIDcause-Item.c deleted file mode 100644 index 985330a..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/RANfunctionIDcause-Item.c +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RANfunctionIDcause-Item.h" - -static asn_TYPE_member_t asn_MBR_RANfunctionIDcause_Item_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RANfunctionIDcause_Item, ranFunctionID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RANfunctionID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ranFunctionID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RANfunctionIDcause_Item, cause), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_Cause, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "cause" - }, -}; -static const ber_tlv_tag_t asn_DEF_RANfunctionIDcause_Item_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RANfunctionIDcause_Item_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ranFunctionID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* cause */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_RANfunctionIDcause_Item_specs_1 = { - sizeof(struct RANfunctionIDcause_Item), - offsetof(struct RANfunctionIDcause_Item, _asn_ctx), - asn_MAP_RANfunctionIDcause_Item_tag2el_1, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 2, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RANfunctionIDcause_Item = { - "RANfunctionIDcause-Item", - "RANfunctionIDcause-Item", - &asn_OP_SEQUENCE, - asn_DEF_RANfunctionIDcause_Item_tags_1, - sizeof(asn_DEF_RANfunctionIDcause_Item_tags_1) - /sizeof(asn_DEF_RANfunctionIDcause_Item_tags_1[0]), /* 1 */ - asn_DEF_RANfunctionIDcause_Item_tags_1, /* Same as above */ - sizeof(asn_DEF_RANfunctionIDcause_Item_tags_1) - /sizeof(asn_DEF_RANfunctionIDcause_Item_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RANfunctionIDcause_Item_1, - 2, /* Elements count */ - &asn_SPC_RANfunctionIDcause_Item_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/RANfunctionIDcause-Item.h b/e2sim/previous/e2apv1sim/ASN1c/RANfunctionIDcause-Item.h deleted file mode 100644 index 033ed53..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/RANfunctionIDcause-Item.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RANfunctionIDcause_Item_H_ -#define _RANfunctionIDcause_Item_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "RANfunctionID.h" -#include "Cause.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RANfunctionIDcause-Item */ -typedef struct RANfunctionIDcause_Item { - RANfunctionID_t ranFunctionID; - Cause_t cause; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RANfunctionIDcause_Item_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RANfunctionIDcause_Item; - -#ifdef __cplusplus -} -#endif - -#endif /* _RANfunctionIDcause_Item_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ASN1c/RANfunctionRevision.c b/e2sim/previous/e2apv1sim/ASN1c/RANfunctionRevision.c deleted file mode 100644 index a0b271b..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/RANfunctionRevision.c +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RANfunctionRevision.h" - -int -RANfunctionRevision_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 4095)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using NativeInteger, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_RANfunctionRevision_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED, 12, 12, 0, 4095 } /* (0..4095) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_RANfunctionRevision_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RANfunctionRevision = { - "RANfunctionRevision", - "RANfunctionRevision", - &asn_OP_NativeInteger, - asn_DEF_RANfunctionRevision_tags_1, - sizeof(asn_DEF_RANfunctionRevision_tags_1) - /sizeof(asn_DEF_RANfunctionRevision_tags_1[0]), /* 1 */ - asn_DEF_RANfunctionRevision_tags_1, /* Same as above */ - sizeof(asn_DEF_RANfunctionRevision_tags_1) - /sizeof(asn_DEF_RANfunctionRevision_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_RANfunctionRevision_constr_1, RANfunctionRevision_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/RANfunctionRevision.h b/e2sim/previous/e2apv1sim/ASN1c/RANfunctionRevision.h deleted file mode 100644 index 58ec9ba..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/RANfunctionRevision.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RANfunctionRevision_H_ -#define _RANfunctionRevision_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeInteger.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RANfunctionRevision */ -typedef long RANfunctionRevision_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_RANfunctionRevision_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_RANfunctionRevision; -asn_struct_free_f RANfunctionRevision_free; -asn_struct_print_f RANfunctionRevision_print; -asn_constr_check_f RANfunctionRevision_constraint; -ber_type_decoder_f RANfunctionRevision_decode_ber; -der_type_encoder_f RANfunctionRevision_encode_der; -xer_type_decoder_f RANfunctionRevision_decode_xer; -xer_type_encoder_f RANfunctionRevision_encode_xer; -per_type_decoder_f RANfunctionRevision_decode_uper; -per_type_encoder_f RANfunctionRevision_encode_uper; -per_type_decoder_f RANfunctionRevision_decode_aper; -per_type_encoder_f RANfunctionRevision_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RANfunctionRevision_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ASN1c/RANfunctions-List.c b/e2sim/previous/e2apv1sim/ASN1c/RANfunctions-List.c deleted file mode 100644 index f55d0a1..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/RANfunctions-List.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RANfunctions-List.h" - -#include "ProtocolIE-SingleContainer.h" -static asn_per_constraints_t asn_PER_type_RANfunctions_List_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 9, 9, 0, 256 } /* (SIZE(0..256)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_RANfunctions_List_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ProtocolIE_SingleContainer_1530P3, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_RANfunctions_List_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_RANfunctions_List_specs_1 = { - sizeof(struct RANfunctions_List), - offsetof(struct RANfunctions_List, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_RANfunctions_List = { - "RANfunctions-List", - "RANfunctions-List", - &asn_OP_SEQUENCE_OF, - asn_DEF_RANfunctions_List_tags_1, - sizeof(asn_DEF_RANfunctions_List_tags_1) - /sizeof(asn_DEF_RANfunctions_List_tags_1[0]), /* 1 */ - asn_DEF_RANfunctions_List_tags_1, /* Same as above */ - sizeof(asn_DEF_RANfunctions_List_tags_1) - /sizeof(asn_DEF_RANfunctions_List_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_RANfunctions_List_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_RANfunctions_List_1, - 1, /* Single element */ - &asn_SPC_RANfunctions_List_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/RANfunctions-List.h b/e2sim/previous/e2apv1sim/ASN1c/RANfunctions-List.h deleted file mode 100644 index 9e45736..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/RANfunctions-List.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RANfunctions_List_H_ -#define _RANfunctions_List_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolIE_SingleContainer; - -/* RANfunctions-List */ -typedef struct RANfunctions_List { - A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RANfunctions_List_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RANfunctions_List; - -#ifdef __cplusplus -} -#endif - -#endif /* _RANfunctions_List_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ASN1c/RANfunctionsID-List.c b/e2sim/previous/e2apv1sim/ASN1c/RANfunctionsID-List.c deleted file mode 100644 index c52b90c..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/RANfunctionsID-List.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RANfunctionsID-List.h" - -#include "ProtocolIE-SingleContainer.h" -static asn_per_constraints_t asn_PER_type_RANfunctionsID_List_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 9, 9, 0, 256 } /* (SIZE(0..256)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_RANfunctionsID_List_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ProtocolIE_SingleContainer_1530P4, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_RANfunctionsID_List_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_RANfunctionsID_List_specs_1 = { - sizeof(struct RANfunctionsID_List), - offsetof(struct RANfunctionsID_List, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_RANfunctionsID_List = { - "RANfunctionsID-List", - "RANfunctionsID-List", - &asn_OP_SEQUENCE_OF, - asn_DEF_RANfunctionsID_List_tags_1, - sizeof(asn_DEF_RANfunctionsID_List_tags_1) - /sizeof(asn_DEF_RANfunctionsID_List_tags_1[0]), /* 1 */ - asn_DEF_RANfunctionsID_List_tags_1, /* Same as above */ - sizeof(asn_DEF_RANfunctionsID_List_tags_1) - /sizeof(asn_DEF_RANfunctionsID_List_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_RANfunctionsID_List_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_RANfunctionsID_List_1, - 1, /* Single element */ - &asn_SPC_RANfunctionsID_List_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/RANfunctionsID-List.h b/e2sim/previous/e2apv1sim/ASN1c/RANfunctionsID-List.h deleted file mode 100644 index b8bd23c..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/RANfunctionsID-List.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RANfunctionsID_List_H_ -#define _RANfunctionsID_List_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolIE_SingleContainer; - -/* RANfunctionsID-List */ -typedef struct RANfunctionsID_List { - A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RANfunctionsID_List_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RANfunctionsID_List; - -#ifdef __cplusplus -} -#endif - -#endif /* _RANfunctionsID_List_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ASN1c/RANfunctionsIDcause-List.c b/e2sim/previous/e2apv1sim/ASN1c/RANfunctionsIDcause-List.c deleted file mode 100644 index fb5c08d..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/RANfunctionsIDcause-List.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RANfunctionsIDcause-List.h" - -#include "ProtocolIE-SingleContainer.h" -static asn_per_constraints_t asn_PER_type_RANfunctionsIDcause_List_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 9, 9, 0, 256 } /* (SIZE(0..256)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_RANfunctionsIDcause_List_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ProtocolIE_SingleContainer_1530P5, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_RANfunctionsIDcause_List_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_RANfunctionsIDcause_List_specs_1 = { - sizeof(struct RANfunctionsIDcause_List), - offsetof(struct RANfunctionsIDcause_List, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_RANfunctionsIDcause_List = { - "RANfunctionsIDcause-List", - "RANfunctionsIDcause-List", - &asn_OP_SEQUENCE_OF, - asn_DEF_RANfunctionsIDcause_List_tags_1, - sizeof(asn_DEF_RANfunctionsIDcause_List_tags_1) - /sizeof(asn_DEF_RANfunctionsIDcause_List_tags_1[0]), /* 1 */ - asn_DEF_RANfunctionsIDcause_List_tags_1, /* Same as above */ - sizeof(asn_DEF_RANfunctionsIDcause_List_tags_1) - /sizeof(asn_DEF_RANfunctionsIDcause_List_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_RANfunctionsIDcause_List_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_RANfunctionsIDcause_List_1, - 1, /* Single element */ - &asn_SPC_RANfunctionsIDcause_List_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/RANfunctionsIDcause-List.h b/e2sim/previous/e2apv1sim/ASN1c/RANfunctionsIDcause-List.h deleted file mode 100644 index 386c289..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/RANfunctionsIDcause-List.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RANfunctionsIDcause_List_H_ -#define _RANfunctionsIDcause_List_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolIE_SingleContainer; - -/* RANfunctionsIDcause-List */ -typedef struct RANfunctionsIDcause_List { - A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RANfunctionsIDcause_List_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RANfunctionsIDcause_List; - -#ifdef __cplusplus -} -#endif - -#endif /* _RANfunctionsIDcause_List_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ASN1c/RIC-EventTriggerStyle-List.c b/e2sim/previous/e2apv1sim/ASN1c/RIC-EventTriggerStyle-List.c deleted file mode 100644 index 246322a..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/RIC-EventTriggerStyle-List.c +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "RIC-EventTriggerStyle-List.h" - -asn_TYPE_member_t asn_MBR_RIC_EventTriggerStyle_List_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RIC_EventTriggerStyle_List, ric_EventTriggerStyle_Type), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RIC_Style_Type, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ric-EventTriggerStyle-Type" - }, - { ATF_NOFLAGS, 0, offsetof(struct RIC_EventTriggerStyle_List, ric_EventTriggerStyle_Name), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RIC_Style_Name, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ric-EventTriggerStyle-Name" - }, - { ATF_NOFLAGS, 0, offsetof(struct RIC_EventTriggerStyle_List, ric_EventTriggerFormat_Type), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RIC_Format_Type, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ric-EventTriggerFormat-Type" - }, -}; -static const ber_tlv_tag_t asn_DEF_RIC_EventTriggerStyle_List_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RIC_EventTriggerStyle_List_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ric-EventTriggerStyle-Type */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ric-EventTriggerStyle-Name */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* ric-EventTriggerFormat-Type */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RIC_EventTriggerStyle_List_specs_1 = { - sizeof(struct RIC_EventTriggerStyle_List), - offsetof(struct RIC_EventTriggerStyle_List, _asn_ctx), - asn_MAP_RIC_EventTriggerStyle_List_tag2el_1, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RIC_EventTriggerStyle_List = { - "RIC-EventTriggerStyle-List", - "RIC-EventTriggerStyle-List", - &asn_OP_SEQUENCE, - asn_DEF_RIC_EventTriggerStyle_List_tags_1, - sizeof(asn_DEF_RIC_EventTriggerStyle_List_tags_1) - /sizeof(asn_DEF_RIC_EventTriggerStyle_List_tags_1[0]), /* 1 */ - asn_DEF_RIC_EventTriggerStyle_List_tags_1, /* Same as above */ - sizeof(asn_DEF_RIC_EventTriggerStyle_List_tags_1) - /sizeof(asn_DEF_RIC_EventTriggerStyle_List_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RIC_EventTriggerStyle_List_1, - 3, /* Elements count */ - &asn_SPC_RIC_EventTriggerStyle_List_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/RIC-EventTriggerStyle-List.h b/e2sim/previous/e2apv1sim/ASN1c/RIC-EventTriggerStyle-List.h deleted file mode 100644 index 18a6a8a..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/RIC-EventTriggerStyle-List.h +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _RIC_EventTriggerStyle_List_H_ -#define _RIC_EventTriggerStyle_List_H_ - - -#include - -/* Including external dependencies */ -#include "RIC-Style-Type.h" -#include "RIC-Style-Name.h" -#include "RIC-Format-Type.h" -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* RIC-EventTriggerStyle-List */ -typedef struct RIC_EventTriggerStyle_List { - RIC_Style_Type_t ric_EventTriggerStyle_Type; - RIC_Style_Name_t ric_EventTriggerStyle_Name; - RIC_Format_Type_t ric_EventTriggerFormat_Type; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RIC_EventTriggerStyle_List_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RIC_EventTriggerStyle_List; -extern asn_SEQUENCE_specifics_t asn_SPC_RIC_EventTriggerStyle_List_specs_1; -extern asn_TYPE_member_t asn_MBR_RIC_EventTriggerStyle_List_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RIC_EventTriggerStyle_List_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ASN1c/RIC-Format-Type.c b/e2sim/previous/e2apv1sim/ASN1c/RIC-Format-Type.c deleted file mode 100644 index 53f0624..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/RIC-Format-Type.c +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "RIC-Format-Type.h" - -/* - * This type is implemented using NativeInteger, - * so here we adjust the DEF accordingly. - */ -static const ber_tlv_tag_t asn_DEF_RIC_Format_Type_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RIC_Format_Type = { - "RIC-Format-Type", - "RIC-Format-Type", - &asn_OP_NativeInteger, - asn_DEF_RIC_Format_Type_tags_1, - sizeof(asn_DEF_RIC_Format_Type_tags_1) - /sizeof(asn_DEF_RIC_Format_Type_tags_1[0]), /* 1 */ - asn_DEF_RIC_Format_Type_tags_1, /* Same as above */ - sizeof(asn_DEF_RIC_Format_Type_tags_1) - /sizeof(asn_DEF_RIC_Format_Type_tags_1[0]), /* 1 */ - { 0, 0, NativeInteger_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/RIC-Format-Type.h b/e2sim/previous/e2apv1sim/ASN1c/RIC-Format-Type.h deleted file mode 100644 index 81cec85..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/RIC-Format-Type.h +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _RIC_Format_Type_H_ -#define _RIC_Format_Type_H_ - - -#include - -/* Including external dependencies */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* RIC-Format-Type */ -typedef long RIC_Format_Type_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RIC_Format_Type; -asn_struct_free_f RIC_Format_Type_free; -asn_struct_print_f RIC_Format_Type_print; -asn_constr_check_f RIC_Format_Type_constraint; -ber_type_decoder_f RIC_Format_Type_decode_ber; -der_type_encoder_f RIC_Format_Type_encode_der; -xer_type_decoder_f RIC_Format_Type_decode_xer; -xer_type_encoder_f RIC_Format_Type_encode_xer; -oer_type_decoder_f RIC_Format_Type_decode_oer; -oer_type_encoder_f RIC_Format_Type_encode_oer; -per_type_decoder_f RIC_Format_Type_decode_uper; -per_type_encoder_f RIC_Format_Type_encode_uper; -per_type_decoder_f RIC_Format_Type_decode_aper; -per_type_encoder_f RIC_Format_Type_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RIC_Format_Type_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ASN1c/RIC-ReportStyle-List.c b/e2sim/previous/e2apv1sim/ASN1c/RIC-ReportStyle-List.c deleted file mode 100644 index 93d4a15..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/RIC-ReportStyle-List.c +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "RIC-ReportStyle-List.h" - -asn_TYPE_member_t asn_MBR_RIC_ReportStyle_List_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RIC_ReportStyle_List, ric_ReportStyle_Type), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RIC_Style_Type, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ric-ReportStyle-Type" - }, - { ATF_NOFLAGS, 0, offsetof(struct RIC_ReportStyle_List, ric_ReportStyle_Name), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RIC_Style_Name, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ric-ReportStyle-Name" - }, - { ATF_NOFLAGS, 0, offsetof(struct RIC_ReportStyle_List, ric_IndicationHeaderFormat_Type), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RIC_Format_Type, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ric-IndicationHeaderFormat-Type" - }, - { ATF_NOFLAGS, 0, offsetof(struct RIC_ReportStyle_List, ric_IndicationMessageFormat_Type), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RIC_Format_Type, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ric-IndicationMessageFormat-Type" - }, -}; -static const ber_tlv_tag_t asn_DEF_RIC_ReportStyle_List_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RIC_ReportStyle_List_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ric-ReportStyle-Type */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ric-ReportStyle-Name */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* ric-IndicationHeaderFormat-Type */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* ric-IndicationMessageFormat-Type */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RIC_ReportStyle_List_specs_1 = { - sizeof(struct RIC_ReportStyle_List), - offsetof(struct RIC_ReportStyle_List, _asn_ctx), - asn_MAP_RIC_ReportStyle_List_tag2el_1, - 4, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 4, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RIC_ReportStyle_List = { - "RIC-ReportStyle-List", - "RIC-ReportStyle-List", - &asn_OP_SEQUENCE, - asn_DEF_RIC_ReportStyle_List_tags_1, - sizeof(asn_DEF_RIC_ReportStyle_List_tags_1) - /sizeof(asn_DEF_RIC_ReportStyle_List_tags_1[0]), /* 1 */ - asn_DEF_RIC_ReportStyle_List_tags_1, /* Same as above */ - sizeof(asn_DEF_RIC_ReportStyle_List_tags_1) - /sizeof(asn_DEF_RIC_ReportStyle_List_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RIC_ReportStyle_List_1, - 4, /* Elements count */ - &asn_SPC_RIC_ReportStyle_List_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/RIC-ReportStyle-List.h b/e2sim/previous/e2apv1sim/ASN1c/RIC-ReportStyle-List.h deleted file mode 100644 index af886aa..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/RIC-ReportStyle-List.h +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _RIC_ReportStyle_List_H_ -#define _RIC_ReportStyle_List_H_ - - -#include - -/* Including external dependencies */ -#include "RIC-Style-Type.h" -#include "RIC-Style-Name.h" -#include "RIC-Format-Type.h" -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* RIC-ReportStyle-List */ -typedef struct RIC_ReportStyle_List { - RIC_Style_Type_t ric_ReportStyle_Type; - RIC_Style_Name_t ric_ReportStyle_Name; - RIC_Format_Type_t ric_IndicationHeaderFormat_Type; - RIC_Format_Type_t ric_IndicationMessageFormat_Type; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RIC_ReportStyle_List_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RIC_ReportStyle_List; -extern asn_SEQUENCE_specifics_t asn_SPC_RIC_ReportStyle_List_specs_1; -extern asn_TYPE_member_t asn_MBR_RIC_ReportStyle_List_1[4]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RIC_ReportStyle_List_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ASN1c/RIC-Style-Name.c b/e2sim/previous/e2apv1sim/ASN1c/RIC-Style-Name.c deleted file mode 100644 index 2c4a054..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/RIC-Style-Name.c +++ /dev/null @@ -1,109 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "RIC-Style-Name.h" - -static const int permitted_alphabet_table_1[256] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */ - 1, 0, 0, 0, 0, 0, 0, 2, 3, 4, 0, 5, 6, 7, 8, 9, /* . '() +,-./ */ -10,11,12,13,14,15,16,17,18,19,20, 0, 0,21, 0,22, /* 0123456789: = ? */ - 0,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37, /* ABCDEFGHIJKLMNO */ -38,39,40,41,42,43,44,45,46,47,48, 0, 0, 0, 0, 0, /* PQRSTUVWXYZ */ - 0,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63, /* abcdefghijklmno */ -64,65,66,67,68,69,70,71,72,73,74, 0, 0, 0, 0, 0, /* pqrstuvwxyz */ -}; -static const int permitted_alphabet_code2value_1[74] = { -32,39,40,41,43,44,45,46,47,48,49,50,51,52,53,54, -55,56,57,58,61,63,65,66,67,68,69,70,71,72,73,74, -75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90, -97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112, -113,114,115,116,117,118,119,120,121,122,}; - - -static int check_permitted_alphabet_1(const void *sptr) { - const int *table = permitted_alphabet_table_1; - /* The underlying type is PrintableString */ - const PrintableString_t *st = (const PrintableString_t *)sptr; - const uint8_t *ch = st->buf; - const uint8_t *end = ch + st->size; - - for(; ch < end; ch++) { - uint8_t cv = *ch; - if(!table[cv]) return -1; - } - return 0; -} - -int -RIC_Style_Name_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const PrintableString_t *st = (const PrintableString_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - size = st->size; - - if((size >= 1 && size <= 150) - && !check_permitted_alphabet_1(st)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int asn_PER_MAP_RIC_Style_Name_1_v2c(unsigned int value) { - if(value >= sizeof(permitted_alphabet_table_1)/sizeof(permitted_alphabet_table_1[0])) - return -1; - return permitted_alphabet_table_1[value] - 1; -} -static int asn_PER_MAP_RIC_Style_Name_1_c2v(unsigned int code) { - if(code >= sizeof(permitted_alphabet_code2value_1)/sizeof(permitted_alphabet_code2value_1[0])) - return -1; - return permitted_alphabet_code2value_1[code]; -} -/* - * This type is implemented using PrintableString, - * so here we adjust the DEF accordingly. - */ -static asn_oer_constraints_t asn_OER_type_RIC_Style_Name_constr_1 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(0..MAX)) */}; -asn_per_constraints_t asn_PER_type_RIC_Style_Name_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED, 7, 7, 32, 122 } /* (32..122) */, - { APC_CONSTRAINED | APC_EXTENSIBLE, 8, 8, 1, 150 } /* (SIZE(1..150,...)) */, - asn_PER_MAP_RIC_Style_Name_1_v2c, /* Value to PER code map */ - asn_PER_MAP_RIC_Style_Name_1_c2v /* PER code to value map */ -}; -static const ber_tlv_tag_t asn_DEF_RIC_Style_Name_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (19 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RIC_Style_Name = { - "RIC-Style-Name", - "RIC-Style-Name", - &asn_OP_PrintableString, - asn_DEF_RIC_Style_Name_tags_1, - sizeof(asn_DEF_RIC_Style_Name_tags_1) - /sizeof(asn_DEF_RIC_Style_Name_tags_1[0]), /* 1 */ - asn_DEF_RIC_Style_Name_tags_1, /* Same as above */ - sizeof(asn_DEF_RIC_Style_Name_tags_1) - /sizeof(asn_DEF_RIC_Style_Name_tags_1[0]), /* 1 */ - { &asn_OER_type_RIC_Style_Name_constr_1, &asn_PER_type_RIC_Style_Name_constr_1, RIC_Style_Name_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/RIC-Style-Name.h b/e2sim/previous/e2apv1sim/ASN1c/RIC-Style-Name.h deleted file mode 100644 index bb02b2c..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/RIC-Style-Name.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _RIC_Style_Name_H_ -#define _RIC_Style_Name_H_ - - -#include - -/* Including external dependencies */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* RIC-Style-Name */ -typedef PrintableString_t RIC_Style_Name_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_RIC_Style_Name_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_RIC_Style_Name; -asn_struct_free_f RIC_Style_Name_free; -asn_struct_print_f RIC_Style_Name_print; -asn_constr_check_f RIC_Style_Name_constraint; -ber_type_decoder_f RIC_Style_Name_decode_ber; -der_type_encoder_f RIC_Style_Name_encode_der; -xer_type_decoder_f RIC_Style_Name_decode_xer; -xer_type_encoder_f RIC_Style_Name_encode_xer; -oer_type_decoder_f RIC_Style_Name_decode_oer; -oer_type_encoder_f RIC_Style_Name_encode_oer; -per_type_decoder_f RIC_Style_Name_decode_uper; -per_type_encoder_f RIC_Style_Name_encode_uper; -per_type_decoder_f RIC_Style_Name_decode_aper; -per_type_encoder_f RIC_Style_Name_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RIC_Style_Name_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ASN1c/RIC-Style-Type.c b/e2sim/previous/e2apv1sim/ASN1c/RIC-Style-Type.c deleted file mode 100644 index 5324c4a..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/RIC-Style-Type.c +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "RIC-Style-Type.h" - -/* - * This type is implemented using NativeInteger, - * so here we adjust the DEF accordingly. - */ -static const ber_tlv_tag_t asn_DEF_RIC_Style_Type_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RIC_Style_Type = { - "RIC-Style-Type", - "RIC-Style-Type", - &asn_OP_NativeInteger, - asn_DEF_RIC_Style_Type_tags_1, - sizeof(asn_DEF_RIC_Style_Type_tags_1) - /sizeof(asn_DEF_RIC_Style_Type_tags_1[0]), /* 1 */ - asn_DEF_RIC_Style_Type_tags_1, /* Same as above */ - sizeof(asn_DEF_RIC_Style_Type_tags_1) - /sizeof(asn_DEF_RIC_Style_Type_tags_1[0]), /* 1 */ - { 0, 0, NativeInteger_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/RIC-Style-Type.h b/e2sim/previous/e2apv1sim/ASN1c/RIC-Style-Type.h deleted file mode 100644 index 9948bb0..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/RIC-Style-Type.h +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _RIC_Style_Type_H_ -#define _RIC_Style_Type_H_ - - -#include - -/* Including external dependencies */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* RIC-Style-Type */ -typedef long RIC_Style_Type_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RIC_Style_Type; -asn_struct_free_f RIC_Style_Type_free; -asn_struct_print_f RIC_Style_Type_print; -asn_constr_check_f RIC_Style_Type_constraint; -ber_type_decoder_f RIC_Style_Type_decode_ber; -der_type_encoder_f RIC_Style_Type_encode_der; -xer_type_decoder_f RIC_Style_Type_decode_xer; -xer_type_encoder_f RIC_Style_Type_encode_xer; -oer_type_decoder_f RIC_Style_Type_decode_oer; -oer_type_encoder_f RIC_Style_Type_encode_oer; -per_type_decoder_f RIC_Style_Type_decode_uper; -per_type_encoder_f RIC_Style_Type_encode_uper; -per_type_decoder_f RIC_Style_Type_decode_aper; -per_type_encoder_f RIC_Style_Type_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RIC_Style_Type_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ASN1c/RICaction-Admitted-Item.c b/e2sim/previous/e2apv1sim/ASN1c/RICaction-Admitted-Item.c deleted file mode 100644 index 0b566bb..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/RICaction-Admitted-Item.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICaction-Admitted-Item.h" - -static asn_TYPE_member_t asn_MBR_RICaction_Admitted_Item_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICaction_Admitted_Item, ricActionID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RICactionID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ricActionID" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICaction_Admitted_Item_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICaction_Admitted_Item_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* ricActionID */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_RICaction_Admitted_Item_specs_1 = { - sizeof(struct RICaction_Admitted_Item), - offsetof(struct RICaction_Admitted_Item, _asn_ctx), - asn_MAP_RICaction_Admitted_Item_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICaction_Admitted_Item = { - "RICaction-Admitted-Item", - "RICaction-Admitted-Item", - &asn_OP_SEQUENCE, - asn_DEF_RICaction_Admitted_Item_tags_1, - sizeof(asn_DEF_RICaction_Admitted_Item_tags_1) - /sizeof(asn_DEF_RICaction_Admitted_Item_tags_1[0]), /* 1 */ - asn_DEF_RICaction_Admitted_Item_tags_1, /* Same as above */ - sizeof(asn_DEF_RICaction_Admitted_Item_tags_1) - /sizeof(asn_DEF_RICaction_Admitted_Item_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICaction_Admitted_Item_1, - 1, /* Elements count */ - &asn_SPC_RICaction_Admitted_Item_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/RICaction-Admitted-Item.h b/e2sim/previous/e2apv1sim/ASN1c/RICaction-Admitted-Item.h deleted file mode 100644 index d7f13c1..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/RICaction-Admitted-Item.h +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICaction_Admitted_Item_H_ -#define _RICaction_Admitted_Item_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "RICactionID.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICaction-Admitted-Item */ -typedef struct RICaction_Admitted_Item { - RICactionID_t ricActionID; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICaction_Admitted_Item_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICaction_Admitted_Item; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICaction_Admitted_Item_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ASN1c/RICaction-Admitted-List.c b/e2sim/previous/e2apv1sim/ASN1c/RICaction-Admitted-List.c deleted file mode 100644 index 692fd38..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/RICaction-Admitted-List.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICaction-Admitted-List.h" - -#include "ProtocolIE-SingleContainer.h" -static asn_per_constraints_t asn_PER_type_RICaction_Admitted_List_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 4, 4, 1, 16 } /* (SIZE(1..16)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_RICaction_Admitted_List_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ProtocolIE_SingleContainer_1530P1, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICaction_Admitted_List_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_RICaction_Admitted_List_specs_1 = { - sizeof(struct RICaction_Admitted_List), - offsetof(struct RICaction_Admitted_List, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_RICaction_Admitted_List = { - "RICaction-Admitted-List", - "RICaction-Admitted-List", - &asn_OP_SEQUENCE_OF, - asn_DEF_RICaction_Admitted_List_tags_1, - sizeof(asn_DEF_RICaction_Admitted_List_tags_1) - /sizeof(asn_DEF_RICaction_Admitted_List_tags_1[0]), /* 1 */ - asn_DEF_RICaction_Admitted_List_tags_1, /* Same as above */ - sizeof(asn_DEF_RICaction_Admitted_List_tags_1) - /sizeof(asn_DEF_RICaction_Admitted_List_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_RICaction_Admitted_List_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_RICaction_Admitted_List_1, - 1, /* Single element */ - &asn_SPC_RICaction_Admitted_List_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/RICaction-Admitted-List.h b/e2sim/previous/e2apv1sim/ASN1c/RICaction-Admitted-List.h deleted file mode 100644 index 8eaf217..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/RICaction-Admitted-List.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICaction_Admitted_List_H_ -#define _RICaction_Admitted_List_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolIE_SingleContainer; - -/* RICaction-Admitted-List */ -typedef struct RICaction_Admitted_List { - A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICaction_Admitted_List_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICaction_Admitted_List; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICaction_Admitted_List_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ASN1c/RICaction-NotAdmitted-Item.c b/e2sim/previous/e2apv1sim/ASN1c/RICaction-NotAdmitted-Item.c deleted file mode 100644 index 515679d..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/RICaction-NotAdmitted-Item.c +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICaction-NotAdmitted-Item.h" - -static asn_TYPE_member_t asn_MBR_RICaction_NotAdmitted_Item_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICaction_NotAdmitted_Item, ricActionID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RICactionID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ricActionID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICaction_NotAdmitted_Item, cause), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_Cause, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "cause" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICaction_NotAdmitted_Item_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICaction_NotAdmitted_Item_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ricActionID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* cause */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_RICaction_NotAdmitted_Item_specs_1 = { - sizeof(struct RICaction_NotAdmitted_Item), - offsetof(struct RICaction_NotAdmitted_Item, _asn_ctx), - asn_MAP_RICaction_NotAdmitted_Item_tag2el_1, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 2, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICaction_NotAdmitted_Item = { - "RICaction-NotAdmitted-Item", - "RICaction-NotAdmitted-Item", - &asn_OP_SEQUENCE, - asn_DEF_RICaction_NotAdmitted_Item_tags_1, - sizeof(asn_DEF_RICaction_NotAdmitted_Item_tags_1) - /sizeof(asn_DEF_RICaction_NotAdmitted_Item_tags_1[0]), /* 1 */ - asn_DEF_RICaction_NotAdmitted_Item_tags_1, /* Same as above */ - sizeof(asn_DEF_RICaction_NotAdmitted_Item_tags_1) - /sizeof(asn_DEF_RICaction_NotAdmitted_Item_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICaction_NotAdmitted_Item_1, - 2, /* Elements count */ - &asn_SPC_RICaction_NotAdmitted_Item_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/RICaction-NotAdmitted-Item.h b/e2sim/previous/e2apv1sim/ASN1c/RICaction-NotAdmitted-Item.h deleted file mode 100644 index 48645e1..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/RICaction-NotAdmitted-Item.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICaction_NotAdmitted_Item_H_ -#define _RICaction_NotAdmitted_Item_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "RICactionID.h" -#include "Cause.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICaction-NotAdmitted-Item */ -typedef struct RICaction_NotAdmitted_Item { - RICactionID_t ricActionID; - Cause_t cause; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICaction_NotAdmitted_Item_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICaction_NotAdmitted_Item; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICaction_NotAdmitted_Item_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ASN1c/RICaction-NotAdmitted-List.c b/e2sim/previous/e2apv1sim/ASN1c/RICaction-NotAdmitted-List.c deleted file mode 100644 index 51f45f4..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/RICaction-NotAdmitted-List.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICaction-NotAdmitted-List.h" - -#include "ProtocolIE-SingleContainer.h" -static asn_per_constraints_t asn_PER_type_RICaction_NotAdmitted_List_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 5, 5, 0, 16 } /* (SIZE(0..16)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_RICaction_NotAdmitted_List_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ProtocolIE_SingleContainer_1530P2, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICaction_NotAdmitted_List_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_RICaction_NotAdmitted_List_specs_1 = { - sizeof(struct RICaction_NotAdmitted_List), - offsetof(struct RICaction_NotAdmitted_List, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_RICaction_NotAdmitted_List = { - "RICaction-NotAdmitted-List", - "RICaction-NotAdmitted-List", - &asn_OP_SEQUENCE_OF, - asn_DEF_RICaction_NotAdmitted_List_tags_1, - sizeof(asn_DEF_RICaction_NotAdmitted_List_tags_1) - /sizeof(asn_DEF_RICaction_NotAdmitted_List_tags_1[0]), /* 1 */ - asn_DEF_RICaction_NotAdmitted_List_tags_1, /* Same as above */ - sizeof(asn_DEF_RICaction_NotAdmitted_List_tags_1) - /sizeof(asn_DEF_RICaction_NotAdmitted_List_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_RICaction_NotAdmitted_List_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_RICaction_NotAdmitted_List_1, - 1, /* Single element */ - &asn_SPC_RICaction_NotAdmitted_List_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/RICaction-NotAdmitted-List.h b/e2sim/previous/e2apv1sim/ASN1c/RICaction-NotAdmitted-List.h deleted file mode 100644 index 95bbadf..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/RICaction-NotAdmitted-List.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICaction_NotAdmitted_List_H_ -#define _RICaction_NotAdmitted_List_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolIE_SingleContainer; - -/* RICaction-NotAdmitted-List */ -typedef struct RICaction_NotAdmitted_List { - A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICaction_NotAdmitted_List_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICaction_NotAdmitted_List; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICaction_NotAdmitted_List_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ASN1c/RICaction-ToBeSetup-Item.c b/e2sim/previous/e2apv1sim/ASN1c/RICaction-ToBeSetup-Item.c deleted file mode 100644 index 2e8bc94..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/RICaction-ToBeSetup-Item.c +++ /dev/null @@ -1,83 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICaction-ToBeSetup-Item.h" - -#include "RICsubsequentAction.h" -static asn_TYPE_member_t asn_MBR_RICaction_ToBeSetup_Item_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICaction_ToBeSetup_Item, ricActionID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RICactionID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ricActionID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICaction_ToBeSetup_Item, ricActionType), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RICactionType, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ricActionType" - }, - { ATF_POINTER, 2, offsetof(struct RICaction_ToBeSetup_Item, ricActionDefinition), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RICactionDefinition, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ricActionDefinition" - }, - { ATF_POINTER, 1, offsetof(struct RICaction_ToBeSetup_Item, ricSubsequentAction), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RICsubsequentAction, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ricSubsequentAction" - }, -}; -static const int asn_MAP_RICaction_ToBeSetup_Item_oms_1[] = { 2, 3 }; -static const ber_tlv_tag_t asn_DEF_RICaction_ToBeSetup_Item_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICaction_ToBeSetup_Item_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ricActionID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ricActionType */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* ricActionDefinition */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* ricSubsequentAction */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_RICaction_ToBeSetup_Item_specs_1 = { - sizeof(struct RICaction_ToBeSetup_Item), - offsetof(struct RICaction_ToBeSetup_Item, _asn_ctx), - asn_MAP_RICaction_ToBeSetup_Item_tag2el_1, - 4, /* Count of tags in the map */ - asn_MAP_RICaction_ToBeSetup_Item_oms_1, /* Optional members */ - 2, 0, /* Root/Additions */ - 4, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICaction_ToBeSetup_Item = { - "RICaction-ToBeSetup-Item", - "RICaction-ToBeSetup-Item", - &asn_OP_SEQUENCE, - asn_DEF_RICaction_ToBeSetup_Item_tags_1, - sizeof(asn_DEF_RICaction_ToBeSetup_Item_tags_1) - /sizeof(asn_DEF_RICaction_ToBeSetup_Item_tags_1[0]), /* 1 */ - asn_DEF_RICaction_ToBeSetup_Item_tags_1, /* Same as above */ - sizeof(asn_DEF_RICaction_ToBeSetup_Item_tags_1) - /sizeof(asn_DEF_RICaction_ToBeSetup_Item_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICaction_ToBeSetup_Item_1, - 4, /* Elements count */ - &asn_SPC_RICaction_ToBeSetup_Item_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/RICaction-ToBeSetup-Item.h b/e2sim/previous/e2apv1sim/ASN1c/RICaction-ToBeSetup-Item.h deleted file mode 100644 index c3f5d07..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/RICaction-ToBeSetup-Item.h +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICaction_ToBeSetup_Item_H_ -#define _RICaction_ToBeSetup_Item_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "RICactionID.h" -#include "RICactionType.h" -#include "RICactionDefinition.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct RICsubsequentAction; - -/* RICaction-ToBeSetup-Item */ -typedef struct RICaction_ToBeSetup_Item { - RICactionID_t ricActionID; - RICactionType_t ricActionType; - RICactionDefinition_t *ricActionDefinition; /* OPTIONAL */ - struct RICsubsequentAction *ricSubsequentAction; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICaction_ToBeSetup_Item_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICaction_ToBeSetup_Item; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICaction_ToBeSetup_Item_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ASN1c/RICactionDefinition.c b/e2sim/previous/e2apv1sim/ASN1c/RICactionDefinition.c deleted file mode 100644 index dd1d941..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/RICactionDefinition.c +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICactionDefinition.h" - -/* - * This type is implemented using OCTET_STRING, - * so here we adjust the DEF accordingly. - */ -static const ber_tlv_tag_t asn_DEF_RICactionDefinition_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RICactionDefinition = { - "RICactionDefinition", - "RICactionDefinition", - &asn_OP_OCTET_STRING, - asn_DEF_RICactionDefinition_tags_1, - sizeof(asn_DEF_RICactionDefinition_tags_1) - /sizeof(asn_DEF_RICactionDefinition_tags_1[0]), /* 1 */ - asn_DEF_RICactionDefinition_tags_1, /* Same as above */ - sizeof(asn_DEF_RICactionDefinition_tags_1) - /sizeof(asn_DEF_RICactionDefinition_tags_1[0]), /* 1 */ - { 0, 0, OCTET_STRING_constraint }, - 0, 0, /* No members */ - &asn_SPC_OCTET_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/RICactionDefinition.h b/e2sim/previous/e2apv1sim/ASN1c/RICactionDefinition.h deleted file mode 100644 index e1eeca6..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/RICactionDefinition.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICactionDefinition_H_ -#define _RICactionDefinition_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "OCTET_STRING.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICactionDefinition */ -typedef OCTET_STRING_t RICactionDefinition_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICactionDefinition; -asn_struct_free_f RICactionDefinition_free; -asn_struct_print_f RICactionDefinition_print; -asn_constr_check_f RICactionDefinition_constraint; -ber_type_decoder_f RICactionDefinition_decode_ber; -der_type_encoder_f RICactionDefinition_encode_der; -xer_type_decoder_f RICactionDefinition_decode_xer; -xer_type_encoder_f RICactionDefinition_encode_xer; -per_type_decoder_f RICactionDefinition_decode_uper; -per_type_encoder_f RICactionDefinition_encode_uper; -per_type_decoder_f RICactionDefinition_decode_aper; -per_type_encoder_f RICactionDefinition_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICactionDefinition_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ASN1c/RICactionID.c b/e2sim/previous/e2apv1sim/ASN1c/RICactionID.c deleted file mode 100644 index ecd1ea7..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/RICactionID.c +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICactionID.h" - -int -RICactionID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 255)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using NativeInteger, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_RICactionID_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_RICactionID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RICactionID = { - "RICactionID", - "RICactionID", - &asn_OP_NativeInteger, - asn_DEF_RICactionID_tags_1, - sizeof(asn_DEF_RICactionID_tags_1) - /sizeof(asn_DEF_RICactionID_tags_1[0]), /* 1 */ - asn_DEF_RICactionID_tags_1, /* Same as above */ - sizeof(asn_DEF_RICactionID_tags_1) - /sizeof(asn_DEF_RICactionID_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_RICactionID_constr_1, RICactionID_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/RICactionID.h b/e2sim/previous/e2apv1sim/ASN1c/RICactionID.h deleted file mode 100644 index b21d3a8..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/RICactionID.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICactionID_H_ -#define _RICactionID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeInteger.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICactionID */ -typedef long RICactionID_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_RICactionID_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_RICactionID; -asn_struct_free_f RICactionID_free; -asn_struct_print_f RICactionID_print; -asn_constr_check_f RICactionID_constraint; -ber_type_decoder_f RICactionID_decode_ber; -der_type_encoder_f RICactionID_encode_der; -xer_type_decoder_f RICactionID_decode_xer; -xer_type_encoder_f RICactionID_encode_xer; -per_type_decoder_f RICactionID_decode_uper; -per_type_encoder_f RICactionID_encode_uper; -per_type_decoder_f RICactionID_decode_aper; -per_type_encoder_f RICactionID_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICactionID_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ASN1c/RICactionType.c b/e2sim/previous/e2apv1sim/ASN1c/RICactionType.c deleted file mode 100644 index 69f2101..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/RICactionType.c +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICactionType.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_RICactionType_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 2 } /* (0..2,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_RICactionType_value2enum_1[] = { - { 0, 6, "report" }, - { 1, 6, "insert" }, - { 2, 6, "policy" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_RICactionType_enum2value_1[] = { - 1, /* insert(1) */ - 2, /* policy(2) */ - 0 /* report(0) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_RICactionType_specs_1 = { - asn_MAP_RICactionType_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_RICactionType_enum2value_1, /* N => "tag"; sorted by N */ - 3, /* Number of elements in the maps */ - 4, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_RICactionType_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RICactionType = { - "RICactionType", - "RICactionType", - &asn_OP_NativeEnumerated, - asn_DEF_RICactionType_tags_1, - sizeof(asn_DEF_RICactionType_tags_1) - /sizeof(asn_DEF_RICactionType_tags_1[0]), /* 1 */ - asn_DEF_RICactionType_tags_1, /* Same as above */ - sizeof(asn_DEF_RICactionType_tags_1) - /sizeof(asn_DEF_RICactionType_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_RICactionType_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_RICactionType_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/RICactionType.h b/e2sim/previous/e2apv1sim/ASN1c/RICactionType.h deleted file mode 100644 index b51809c..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/RICactionType.h +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICactionType_H_ -#define _RICactionType_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum RICactionType { - RICactionType_report = 0, - RICactionType_insert = 1, - RICactionType_policy = 2 - /* - * Enumeration is extensible - */ -} e_RICactionType; - -/* RICactionType */ -typedef long RICactionType_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_RICactionType_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_RICactionType; -extern const asn_INTEGER_specifics_t asn_SPC_RICactionType_specs_1; -asn_struct_free_f RICactionType_free; -asn_struct_print_f RICactionType_print; -asn_constr_check_f RICactionType_constraint; -ber_type_decoder_f RICactionType_decode_ber; -der_type_encoder_f RICactionType_encode_der; -xer_type_decoder_f RICactionType_decode_xer; -xer_type_encoder_f RICactionType_encode_xer; -per_type_decoder_f RICactionType_decode_uper; -per_type_encoder_f RICactionType_encode_uper; -per_type_decoder_f RICactionType_decode_aper; -per_type_encoder_f RICactionType_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICactionType_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ASN1c/RICactions-ToBeSetup-List.c b/e2sim/previous/e2apv1sim/ASN1c/RICactions-ToBeSetup-List.c deleted file mode 100644 index c1445fd..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/RICactions-ToBeSetup-List.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICactions-ToBeSetup-List.h" - -#include "ProtocolIE-SingleContainer.h" -asn_per_constraints_t asn_PER_type_RICactions_ToBeSetup_List_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 4, 4, 1, 16 } /* (SIZE(1..16)) */, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_RICactions_ToBeSetup_List_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ProtocolIE_SingleContainer_1530P0, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICactions_ToBeSetup_List_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_RICactions_ToBeSetup_List_specs_1 = { - sizeof(struct RICactions_ToBeSetup_List), - offsetof(struct RICactions_ToBeSetup_List, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_RICactions_ToBeSetup_List = { - "RICactions-ToBeSetup-List", - "RICactions-ToBeSetup-List", - &asn_OP_SEQUENCE_OF, - asn_DEF_RICactions_ToBeSetup_List_tags_1, - sizeof(asn_DEF_RICactions_ToBeSetup_List_tags_1) - /sizeof(asn_DEF_RICactions_ToBeSetup_List_tags_1[0]), /* 1 */ - asn_DEF_RICactions_ToBeSetup_List_tags_1, /* Same as above */ - sizeof(asn_DEF_RICactions_ToBeSetup_List_tags_1) - /sizeof(asn_DEF_RICactions_ToBeSetup_List_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_RICactions_ToBeSetup_List_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_RICactions_ToBeSetup_List_1, - 1, /* Single element */ - &asn_SPC_RICactions_ToBeSetup_List_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/RICactions-ToBeSetup-List.h b/e2sim/previous/e2apv1sim/ASN1c/RICactions-ToBeSetup-List.h deleted file mode 100644 index 7acfeb4..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/RICactions-ToBeSetup-List.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICactions_ToBeSetup_List_H_ -#define _RICactions_ToBeSetup_List_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolIE_SingleContainer; - -/* RICactions-ToBeSetup-List */ -typedef struct RICactions_ToBeSetup_List { - A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICactions_ToBeSetup_List_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICactions_ToBeSetup_List; -extern asn_SET_OF_specifics_t asn_SPC_RICactions_ToBeSetup_List_specs_1; -extern asn_TYPE_member_t asn_MBR_RICactions_ToBeSetup_List_1[1]; -extern asn_per_constraints_t asn_PER_type_RICactions_ToBeSetup_List_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICactions_ToBeSetup_List_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ASN1c/RICcallProcessID.c b/e2sim/previous/e2apv1sim/ASN1c/RICcallProcessID.c deleted file mode 100644 index a7d682f..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/RICcallProcessID.c +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICcallProcessID.h" - -/* - * This type is implemented using OCTET_STRING, - * so here we adjust the DEF accordingly. - */ -static const ber_tlv_tag_t asn_DEF_RICcallProcessID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RICcallProcessID = { - "RICcallProcessID", - "RICcallProcessID", - &asn_OP_OCTET_STRING, - asn_DEF_RICcallProcessID_tags_1, - sizeof(asn_DEF_RICcallProcessID_tags_1) - /sizeof(asn_DEF_RICcallProcessID_tags_1[0]), /* 1 */ - asn_DEF_RICcallProcessID_tags_1, /* Same as above */ - sizeof(asn_DEF_RICcallProcessID_tags_1) - /sizeof(asn_DEF_RICcallProcessID_tags_1[0]), /* 1 */ - { 0, 0, OCTET_STRING_constraint }, - 0, 0, /* No members */ - &asn_SPC_OCTET_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/RICcallProcessID.h b/e2sim/previous/e2apv1sim/ASN1c/RICcallProcessID.h deleted file mode 100644 index d388b85..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/RICcallProcessID.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICcallProcessID_H_ -#define _RICcallProcessID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "OCTET_STRING.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICcallProcessID */ -typedef OCTET_STRING_t RICcallProcessID_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICcallProcessID; -asn_struct_free_f RICcallProcessID_free; -asn_struct_print_f RICcallProcessID_print; -asn_constr_check_f RICcallProcessID_constraint; -ber_type_decoder_f RICcallProcessID_decode_ber; -der_type_encoder_f RICcallProcessID_encode_der; -xer_type_decoder_f RICcallProcessID_decode_xer; -xer_type_encoder_f RICcallProcessID_encode_xer; -per_type_decoder_f RICcallProcessID_decode_uper; -per_type_encoder_f RICcallProcessID_encode_uper; -per_type_decoder_f RICcallProcessID_decode_aper; -per_type_encoder_f RICcallProcessID_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICcallProcessID_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ASN1c/RICcontrolAckRequest.c b/e2sim/previous/e2apv1sim/ASN1c/RICcontrolAckRequest.c deleted file mode 100644 index d69a24c..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/RICcontrolAckRequest.c +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICcontrolAckRequest.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -static asn_per_constraints_t asn_PER_type_RICcontrolAckRequest_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 2 } /* (0..2,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_RICcontrolAckRequest_value2enum_1[] = { - { 0, 5, "noAck" }, - { 1, 3, "ack" }, - { 2, 4, "nAck" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_RICcontrolAckRequest_enum2value_1[] = { - 1, /* ack(1) */ - 2, /* nAck(2) */ - 0 /* noAck(0) */ - /* This list is extensible */ -}; -static const asn_INTEGER_specifics_t asn_SPC_RICcontrolAckRequest_specs_1 = { - asn_MAP_RICcontrolAckRequest_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_RICcontrolAckRequest_enum2value_1, /* N => "tag"; sorted by N */ - 3, /* Number of elements in the maps */ - 4, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_RICcontrolAckRequest_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RICcontrolAckRequest = { - "RICcontrolAckRequest", - "RICcontrolAckRequest", - &asn_OP_NativeEnumerated, - asn_DEF_RICcontrolAckRequest_tags_1, - sizeof(asn_DEF_RICcontrolAckRequest_tags_1) - /sizeof(asn_DEF_RICcontrolAckRequest_tags_1[0]), /* 1 */ - asn_DEF_RICcontrolAckRequest_tags_1, /* Same as above */ - sizeof(asn_DEF_RICcontrolAckRequest_tags_1) - /sizeof(asn_DEF_RICcontrolAckRequest_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_RICcontrolAckRequest_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_RICcontrolAckRequest_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/RICcontrolAckRequest.h b/e2sim/previous/e2apv1sim/ASN1c/RICcontrolAckRequest.h deleted file mode 100644 index 73f9da7..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/RICcontrolAckRequest.h +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICcontrolAckRequest_H_ -#define _RICcontrolAckRequest_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum RICcontrolAckRequest { - RICcontrolAckRequest_noAck = 0, - RICcontrolAckRequest_ack = 1, - RICcontrolAckRequest_nAck = 2 - /* - * Enumeration is extensible - */ -} e_RICcontrolAckRequest; - -/* RICcontrolAckRequest */ -typedef long RICcontrolAckRequest_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICcontrolAckRequest; -asn_struct_free_f RICcontrolAckRequest_free; -asn_struct_print_f RICcontrolAckRequest_print; -asn_constr_check_f RICcontrolAckRequest_constraint; -ber_type_decoder_f RICcontrolAckRequest_decode_ber; -der_type_encoder_f RICcontrolAckRequest_encode_der; -xer_type_decoder_f RICcontrolAckRequest_decode_xer; -xer_type_encoder_f RICcontrolAckRequest_encode_xer; -per_type_decoder_f RICcontrolAckRequest_decode_uper; -per_type_encoder_f RICcontrolAckRequest_encode_uper; -per_type_decoder_f RICcontrolAckRequest_decode_aper; -per_type_encoder_f RICcontrolAckRequest_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICcontrolAckRequest_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ASN1c/RICcontrolAcknowledge.c b/e2sim/previous/e2apv1sim/ASN1c/RICcontrolAcknowledge.c deleted file mode 100644 index eb3d6d2..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/RICcontrolAcknowledge.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICcontrolAcknowledge.h" - -asn_TYPE_member_t asn_MBR_RICcontrolAcknowledge_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolAcknowledge, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_1527P8, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICcontrolAcknowledge_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICcontrolAcknowledge_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICcontrolAcknowledge_specs_1 = { - sizeof(struct RICcontrolAcknowledge), - offsetof(struct RICcontrolAcknowledge, _asn_ctx), - asn_MAP_RICcontrolAcknowledge_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICcontrolAcknowledge = { - "RICcontrolAcknowledge", - "RICcontrolAcknowledge", - &asn_OP_SEQUENCE, - asn_DEF_RICcontrolAcknowledge_tags_1, - sizeof(asn_DEF_RICcontrolAcknowledge_tags_1) - /sizeof(asn_DEF_RICcontrolAcknowledge_tags_1[0]), /* 1 */ - asn_DEF_RICcontrolAcknowledge_tags_1, /* Same as above */ - sizeof(asn_DEF_RICcontrolAcknowledge_tags_1) - /sizeof(asn_DEF_RICcontrolAcknowledge_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICcontrolAcknowledge_1, - 1, /* Elements count */ - &asn_SPC_RICcontrolAcknowledge_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/RICcontrolAcknowledge.h b/e2sim/previous/e2apv1sim/ASN1c/RICcontrolAcknowledge.h deleted file mode 100644 index 63dbb73..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/RICcontrolAcknowledge.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICcontrolAcknowledge_H_ -#define _RICcontrolAcknowledge_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICcontrolAcknowledge */ -typedef struct RICcontrolAcknowledge { - ProtocolIE_Container_1527P8_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICcontrolAcknowledge_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICcontrolAcknowledge; -extern asn_SEQUENCE_specifics_t asn_SPC_RICcontrolAcknowledge_specs_1; -extern asn_TYPE_member_t asn_MBR_RICcontrolAcknowledge_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICcontrolAcknowledge_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ASN1c/RICcontrolFailure.c b/e2sim/previous/e2apv1sim/ASN1c/RICcontrolFailure.c deleted file mode 100644 index 044706c..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/RICcontrolFailure.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICcontrolFailure.h" - -asn_TYPE_member_t asn_MBR_RICcontrolFailure_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolFailure, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_1527P9, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICcontrolFailure_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICcontrolFailure_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICcontrolFailure_specs_1 = { - sizeof(struct RICcontrolFailure), - offsetof(struct RICcontrolFailure, _asn_ctx), - asn_MAP_RICcontrolFailure_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICcontrolFailure = { - "RICcontrolFailure", - "RICcontrolFailure", - &asn_OP_SEQUENCE, - asn_DEF_RICcontrolFailure_tags_1, - sizeof(asn_DEF_RICcontrolFailure_tags_1) - /sizeof(asn_DEF_RICcontrolFailure_tags_1[0]), /* 1 */ - asn_DEF_RICcontrolFailure_tags_1, /* Same as above */ - sizeof(asn_DEF_RICcontrolFailure_tags_1) - /sizeof(asn_DEF_RICcontrolFailure_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICcontrolFailure_1, - 1, /* Elements count */ - &asn_SPC_RICcontrolFailure_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/RICcontrolFailure.h b/e2sim/previous/e2apv1sim/ASN1c/RICcontrolFailure.h deleted file mode 100644 index 919f11c..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/RICcontrolFailure.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICcontrolFailure_H_ -#define _RICcontrolFailure_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICcontrolFailure */ -typedef struct RICcontrolFailure { - ProtocolIE_Container_1527P9_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICcontrolFailure_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICcontrolFailure; -extern asn_SEQUENCE_specifics_t asn_SPC_RICcontrolFailure_specs_1; -extern asn_TYPE_member_t asn_MBR_RICcontrolFailure_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICcontrolFailure_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ASN1c/RICcontrolHeader.c b/e2sim/previous/e2apv1sim/ASN1c/RICcontrolHeader.c deleted file mode 100644 index 2b0400b..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/RICcontrolHeader.c +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICcontrolHeader.h" - -/* - * This type is implemented using OCTET_STRING, - * so here we adjust the DEF accordingly. - */ -static const ber_tlv_tag_t asn_DEF_RICcontrolHeader_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RICcontrolHeader = { - "RICcontrolHeader", - "RICcontrolHeader", - &asn_OP_OCTET_STRING, - asn_DEF_RICcontrolHeader_tags_1, - sizeof(asn_DEF_RICcontrolHeader_tags_1) - /sizeof(asn_DEF_RICcontrolHeader_tags_1[0]), /* 1 */ - asn_DEF_RICcontrolHeader_tags_1, /* Same as above */ - sizeof(asn_DEF_RICcontrolHeader_tags_1) - /sizeof(asn_DEF_RICcontrolHeader_tags_1[0]), /* 1 */ - { 0, 0, OCTET_STRING_constraint }, - 0, 0, /* No members */ - &asn_SPC_OCTET_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/RICcontrolHeader.h b/e2sim/previous/e2apv1sim/ASN1c/RICcontrolHeader.h deleted file mode 100644 index f26977c..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/RICcontrolHeader.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICcontrolHeader_H_ -#define _RICcontrolHeader_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "OCTET_STRING.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICcontrolHeader */ -typedef OCTET_STRING_t RICcontrolHeader_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICcontrolHeader; -asn_struct_free_f RICcontrolHeader_free; -asn_struct_print_f RICcontrolHeader_print; -asn_constr_check_f RICcontrolHeader_constraint; -ber_type_decoder_f RICcontrolHeader_decode_ber; -der_type_encoder_f RICcontrolHeader_encode_der; -xer_type_decoder_f RICcontrolHeader_decode_xer; -xer_type_encoder_f RICcontrolHeader_encode_xer; -per_type_decoder_f RICcontrolHeader_decode_uper; -per_type_encoder_f RICcontrolHeader_encode_uper; -per_type_decoder_f RICcontrolHeader_decode_aper; -per_type_encoder_f RICcontrolHeader_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICcontrolHeader_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ASN1c/RICcontrolMessage.c b/e2sim/previous/e2apv1sim/ASN1c/RICcontrolMessage.c deleted file mode 100644 index f3df4b1..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/RICcontrolMessage.c +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICcontrolMessage.h" - -/* - * This type is implemented using OCTET_STRING, - * so here we adjust the DEF accordingly. - */ -static const ber_tlv_tag_t asn_DEF_RICcontrolMessage_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RICcontrolMessage = { - "RICcontrolMessage", - "RICcontrolMessage", - &asn_OP_OCTET_STRING, - asn_DEF_RICcontrolMessage_tags_1, - sizeof(asn_DEF_RICcontrolMessage_tags_1) - /sizeof(asn_DEF_RICcontrolMessage_tags_1[0]), /* 1 */ - asn_DEF_RICcontrolMessage_tags_1, /* Same as above */ - sizeof(asn_DEF_RICcontrolMessage_tags_1) - /sizeof(asn_DEF_RICcontrolMessage_tags_1[0]), /* 1 */ - { 0, 0, OCTET_STRING_constraint }, - 0, 0, /* No members */ - &asn_SPC_OCTET_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/RICcontrolMessage.h b/e2sim/previous/e2apv1sim/ASN1c/RICcontrolMessage.h deleted file mode 100644 index 5cc6cc3..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/RICcontrolMessage.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICcontrolMessage_H_ -#define _RICcontrolMessage_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "OCTET_STRING.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICcontrolMessage */ -typedef OCTET_STRING_t RICcontrolMessage_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICcontrolMessage; -asn_struct_free_f RICcontrolMessage_free; -asn_struct_print_f RICcontrolMessage_print; -asn_constr_check_f RICcontrolMessage_constraint; -ber_type_decoder_f RICcontrolMessage_decode_ber; -der_type_encoder_f RICcontrolMessage_encode_der; -xer_type_decoder_f RICcontrolMessage_decode_xer; -xer_type_encoder_f RICcontrolMessage_encode_xer; -per_type_decoder_f RICcontrolMessage_decode_uper; -per_type_encoder_f RICcontrolMessage_encode_uper; -per_type_decoder_f RICcontrolMessage_decode_aper; -per_type_encoder_f RICcontrolMessage_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICcontrolMessage_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ASN1c/RICcontrolOutcome.c b/e2sim/previous/e2apv1sim/ASN1c/RICcontrolOutcome.c deleted file mode 100644 index c40874d..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/RICcontrolOutcome.c +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICcontrolOutcome.h" - -/* - * This type is implemented using OCTET_STRING, - * so here we adjust the DEF accordingly. - */ -static const ber_tlv_tag_t asn_DEF_RICcontrolOutcome_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RICcontrolOutcome = { - "RICcontrolOutcome", - "RICcontrolOutcome", - &asn_OP_OCTET_STRING, - asn_DEF_RICcontrolOutcome_tags_1, - sizeof(asn_DEF_RICcontrolOutcome_tags_1) - /sizeof(asn_DEF_RICcontrolOutcome_tags_1[0]), /* 1 */ - asn_DEF_RICcontrolOutcome_tags_1, /* Same as above */ - sizeof(asn_DEF_RICcontrolOutcome_tags_1) - /sizeof(asn_DEF_RICcontrolOutcome_tags_1[0]), /* 1 */ - { 0, 0, OCTET_STRING_constraint }, - 0, 0, /* No members */ - &asn_SPC_OCTET_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/RICcontrolOutcome.h b/e2sim/previous/e2apv1sim/ASN1c/RICcontrolOutcome.h deleted file mode 100644 index 94481fc..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/RICcontrolOutcome.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICcontrolOutcome_H_ -#define _RICcontrolOutcome_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "OCTET_STRING.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICcontrolOutcome */ -typedef OCTET_STRING_t RICcontrolOutcome_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICcontrolOutcome; -asn_struct_free_f RICcontrolOutcome_free; -asn_struct_print_f RICcontrolOutcome_print; -asn_constr_check_f RICcontrolOutcome_constraint; -ber_type_decoder_f RICcontrolOutcome_decode_ber; -der_type_encoder_f RICcontrolOutcome_encode_der; -xer_type_decoder_f RICcontrolOutcome_decode_xer; -xer_type_encoder_f RICcontrolOutcome_encode_xer; -per_type_decoder_f RICcontrolOutcome_decode_uper; -per_type_encoder_f RICcontrolOutcome_encode_uper; -per_type_decoder_f RICcontrolOutcome_decode_aper; -per_type_encoder_f RICcontrolOutcome_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICcontrolOutcome_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ASN1c/RICcontrolRequest.c b/e2sim/previous/e2apv1sim/ASN1c/RICcontrolRequest.c deleted file mode 100644 index 2b54af3..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/RICcontrolRequest.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICcontrolRequest.h" - -asn_TYPE_member_t asn_MBR_RICcontrolRequest_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolRequest, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_1527P7, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICcontrolRequest_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICcontrolRequest_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICcontrolRequest_specs_1 = { - sizeof(struct RICcontrolRequest), - offsetof(struct RICcontrolRequest, _asn_ctx), - asn_MAP_RICcontrolRequest_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICcontrolRequest = { - "RICcontrolRequest", - "RICcontrolRequest", - &asn_OP_SEQUENCE, - asn_DEF_RICcontrolRequest_tags_1, - sizeof(asn_DEF_RICcontrolRequest_tags_1) - /sizeof(asn_DEF_RICcontrolRequest_tags_1[0]), /* 1 */ - asn_DEF_RICcontrolRequest_tags_1, /* Same as above */ - sizeof(asn_DEF_RICcontrolRequest_tags_1) - /sizeof(asn_DEF_RICcontrolRequest_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICcontrolRequest_1, - 1, /* Elements count */ - &asn_SPC_RICcontrolRequest_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/RICcontrolRequest.h b/e2sim/previous/e2apv1sim/ASN1c/RICcontrolRequest.h deleted file mode 100644 index f35e61d..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/RICcontrolRequest.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICcontrolRequest_H_ -#define _RICcontrolRequest_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICcontrolRequest */ -typedef struct RICcontrolRequest { - ProtocolIE_Container_1527P7_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICcontrolRequest_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICcontrolRequest; -extern asn_SEQUENCE_specifics_t asn_SPC_RICcontrolRequest_specs_1; -extern asn_TYPE_member_t asn_MBR_RICcontrolRequest_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICcontrolRequest_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ASN1c/RICcontrolStatus.c b/e2sim/previous/e2apv1sim/ASN1c/RICcontrolStatus.c deleted file mode 100644 index 8dc0c58..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/RICcontrolStatus.c +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICcontrolStatus.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -static asn_per_constraints_t asn_PER_type_RICcontrolStatus_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 2 } /* (0..2,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_RICcontrolStatus_value2enum_1[] = { - { 0, 7, "success" }, - { 1, 8, "rejected" }, - { 2, 6, "failed" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_RICcontrolStatus_enum2value_1[] = { - 2, /* failed(2) */ - 1, /* rejected(1) */ - 0 /* success(0) */ - /* This list is extensible */ -}; -static const asn_INTEGER_specifics_t asn_SPC_RICcontrolStatus_specs_1 = { - asn_MAP_RICcontrolStatus_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_RICcontrolStatus_enum2value_1, /* N => "tag"; sorted by N */ - 3, /* Number of elements in the maps */ - 4, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_RICcontrolStatus_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RICcontrolStatus = { - "RICcontrolStatus", - "RICcontrolStatus", - &asn_OP_NativeEnumerated, - asn_DEF_RICcontrolStatus_tags_1, - sizeof(asn_DEF_RICcontrolStatus_tags_1) - /sizeof(asn_DEF_RICcontrolStatus_tags_1[0]), /* 1 */ - asn_DEF_RICcontrolStatus_tags_1, /* Same as above */ - sizeof(asn_DEF_RICcontrolStatus_tags_1) - /sizeof(asn_DEF_RICcontrolStatus_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_RICcontrolStatus_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_RICcontrolStatus_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/RICcontrolStatus.h b/e2sim/previous/e2apv1sim/ASN1c/RICcontrolStatus.h deleted file mode 100644 index 627ebaa..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/RICcontrolStatus.h +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICcontrolStatus_H_ -#define _RICcontrolStatus_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum RICcontrolStatus { - RICcontrolStatus_success = 0, - RICcontrolStatus_rejected = 1, - RICcontrolStatus_failed = 2 - /* - * Enumeration is extensible - */ -} e_RICcontrolStatus; - -/* RICcontrolStatus */ -typedef long RICcontrolStatus_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICcontrolStatus; -asn_struct_free_f RICcontrolStatus_free; -asn_struct_print_f RICcontrolStatus_print; -asn_constr_check_f RICcontrolStatus_constraint; -ber_type_decoder_f RICcontrolStatus_decode_ber; -der_type_encoder_f RICcontrolStatus_encode_der; -xer_type_decoder_f RICcontrolStatus_decode_xer; -xer_type_encoder_f RICcontrolStatus_encode_xer; -per_type_decoder_f RICcontrolStatus_decode_uper; -per_type_encoder_f RICcontrolStatus_encode_uper; -per_type_decoder_f RICcontrolStatus_decode_aper; -per_type_encoder_f RICcontrolStatus_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICcontrolStatus_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ASN1c/RICeventTriggerDefinition.c b/e2sim/previous/e2apv1sim/ASN1c/RICeventTriggerDefinition.c deleted file mode 100644 index 4c892e0..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/RICeventTriggerDefinition.c +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICeventTriggerDefinition.h" - -/* - * This type is implemented using OCTET_STRING, - * so here we adjust the DEF accordingly. - */ -static const ber_tlv_tag_t asn_DEF_RICeventTriggerDefinition_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RICeventTriggerDefinition = { - "RICeventTriggerDefinition", - "RICeventTriggerDefinition", - &asn_OP_OCTET_STRING, - asn_DEF_RICeventTriggerDefinition_tags_1, - sizeof(asn_DEF_RICeventTriggerDefinition_tags_1) - /sizeof(asn_DEF_RICeventTriggerDefinition_tags_1[0]), /* 1 */ - asn_DEF_RICeventTriggerDefinition_tags_1, /* Same as above */ - sizeof(asn_DEF_RICeventTriggerDefinition_tags_1) - /sizeof(asn_DEF_RICeventTriggerDefinition_tags_1[0]), /* 1 */ - { 0, 0, OCTET_STRING_constraint }, - 0, 0, /* No members */ - &asn_SPC_OCTET_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/RICeventTriggerDefinition.h b/e2sim/previous/e2apv1sim/ASN1c/RICeventTriggerDefinition.h deleted file mode 100644 index f323980..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/RICeventTriggerDefinition.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICeventTriggerDefinition_H_ -#define _RICeventTriggerDefinition_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "OCTET_STRING.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICeventTriggerDefinition */ -typedef OCTET_STRING_t RICeventTriggerDefinition_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICeventTriggerDefinition; -asn_struct_free_f RICeventTriggerDefinition_free; -asn_struct_print_f RICeventTriggerDefinition_print; -asn_constr_check_f RICeventTriggerDefinition_constraint; -ber_type_decoder_f RICeventTriggerDefinition_decode_ber; -der_type_encoder_f RICeventTriggerDefinition_encode_der; -xer_type_decoder_f RICeventTriggerDefinition_decode_xer; -xer_type_encoder_f RICeventTriggerDefinition_encode_xer; -per_type_decoder_f RICeventTriggerDefinition_decode_uper; -per_type_encoder_f RICeventTriggerDefinition_encode_uper; -per_type_decoder_f RICeventTriggerDefinition_decode_aper; -per_type_encoder_f RICeventTriggerDefinition_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICeventTriggerDefinition_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ASN1c/RICindication.c b/e2sim/previous/e2apv1sim/ASN1c/RICindication.c deleted file mode 100644 index be2a72a..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/RICindication.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICindication.h" - -asn_TYPE_member_t asn_MBR_RICindication_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICindication, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_1527P6, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICindication_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICindication_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICindication_specs_1 = { - sizeof(struct RICindication), - offsetof(struct RICindication, _asn_ctx), - asn_MAP_RICindication_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICindication = { - "RICindication", - "RICindication", - &asn_OP_SEQUENCE, - asn_DEF_RICindication_tags_1, - sizeof(asn_DEF_RICindication_tags_1) - /sizeof(asn_DEF_RICindication_tags_1[0]), /* 1 */ - asn_DEF_RICindication_tags_1, /* Same as above */ - sizeof(asn_DEF_RICindication_tags_1) - /sizeof(asn_DEF_RICindication_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICindication_1, - 1, /* Elements count */ - &asn_SPC_RICindication_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/RICindication.h b/e2sim/previous/e2apv1sim/ASN1c/RICindication.h deleted file mode 100644 index 8a8173d..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/RICindication.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICindication_H_ -#define _RICindication_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICindication */ -typedef struct RICindication { - ProtocolIE_Container_1527P6_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICindication_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICindication; -extern asn_SEQUENCE_specifics_t asn_SPC_RICindication_specs_1; -extern asn_TYPE_member_t asn_MBR_RICindication_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICindication_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ASN1c/RICindicationHeader.c b/e2sim/previous/e2apv1sim/ASN1c/RICindicationHeader.c deleted file mode 100644 index 31e2f7f..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/RICindicationHeader.c +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICindicationHeader.h" - -/* - * This type is implemented using OCTET_STRING, - * so here we adjust the DEF accordingly. - */ -static const ber_tlv_tag_t asn_DEF_RICindicationHeader_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RICindicationHeader = { - "RICindicationHeader", - "RICindicationHeader", - &asn_OP_OCTET_STRING, - asn_DEF_RICindicationHeader_tags_1, - sizeof(asn_DEF_RICindicationHeader_tags_1) - /sizeof(asn_DEF_RICindicationHeader_tags_1[0]), /* 1 */ - asn_DEF_RICindicationHeader_tags_1, /* Same as above */ - sizeof(asn_DEF_RICindicationHeader_tags_1) - /sizeof(asn_DEF_RICindicationHeader_tags_1[0]), /* 1 */ - { 0, 0, OCTET_STRING_constraint }, - 0, 0, /* No members */ - &asn_SPC_OCTET_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/RICindicationHeader.h b/e2sim/previous/e2apv1sim/ASN1c/RICindicationHeader.h deleted file mode 100644 index 0d1448d..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/RICindicationHeader.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICindicationHeader_H_ -#define _RICindicationHeader_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "OCTET_STRING.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICindicationHeader */ -typedef OCTET_STRING_t RICindicationHeader_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICindicationHeader; -asn_struct_free_f RICindicationHeader_free; -asn_struct_print_f RICindicationHeader_print; -asn_constr_check_f RICindicationHeader_constraint; -ber_type_decoder_f RICindicationHeader_decode_ber; -der_type_encoder_f RICindicationHeader_encode_der; -xer_type_decoder_f RICindicationHeader_decode_xer; -xer_type_encoder_f RICindicationHeader_encode_xer; -per_type_decoder_f RICindicationHeader_decode_uper; -per_type_encoder_f RICindicationHeader_encode_uper; -per_type_decoder_f RICindicationHeader_decode_aper; -per_type_encoder_f RICindicationHeader_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICindicationHeader_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ASN1c/RICindicationMessage.c b/e2sim/previous/e2apv1sim/ASN1c/RICindicationMessage.c deleted file mode 100644 index 096f61d..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/RICindicationMessage.c +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICindicationMessage.h" - -/* - * This type is implemented using OCTET_STRING, - * so here we adjust the DEF accordingly. - */ -static const ber_tlv_tag_t asn_DEF_RICindicationMessage_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RICindicationMessage = { - "RICindicationMessage", - "RICindicationMessage", - &asn_OP_OCTET_STRING, - asn_DEF_RICindicationMessage_tags_1, - sizeof(asn_DEF_RICindicationMessage_tags_1) - /sizeof(asn_DEF_RICindicationMessage_tags_1[0]), /* 1 */ - asn_DEF_RICindicationMessage_tags_1, /* Same as above */ - sizeof(asn_DEF_RICindicationMessage_tags_1) - /sizeof(asn_DEF_RICindicationMessage_tags_1[0]), /* 1 */ - { 0, 0, OCTET_STRING_constraint }, - 0, 0, /* No members */ - &asn_SPC_OCTET_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/RICindicationMessage.h b/e2sim/previous/e2apv1sim/ASN1c/RICindicationMessage.h deleted file mode 100644 index 97ce63e..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/RICindicationMessage.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICindicationMessage_H_ -#define _RICindicationMessage_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "OCTET_STRING.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICindicationMessage */ -typedef OCTET_STRING_t RICindicationMessage_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICindicationMessage; -asn_struct_free_f RICindicationMessage_free; -asn_struct_print_f RICindicationMessage_print; -asn_constr_check_f RICindicationMessage_constraint; -ber_type_decoder_f RICindicationMessage_decode_ber; -der_type_encoder_f RICindicationMessage_encode_der; -xer_type_decoder_f RICindicationMessage_decode_xer; -xer_type_encoder_f RICindicationMessage_encode_xer; -per_type_decoder_f RICindicationMessage_decode_uper; -per_type_encoder_f RICindicationMessage_encode_uper; -per_type_decoder_f RICindicationMessage_decode_aper; -per_type_encoder_f RICindicationMessage_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICindicationMessage_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ASN1c/RICindicationSN.c b/e2sim/previous/e2apv1sim/ASN1c/RICindicationSN.c deleted file mode 100644 index 74782d8..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/RICindicationSN.c +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICindicationSN.h" - -int -RICindicationSN_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using NativeInteger, - * so here we adjust the DEF accordingly. - */ -static asn_per_constraints_t asn_PER_type_RICindicationSN_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_RICindicationSN_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RICindicationSN = { - "RICindicationSN", - "RICindicationSN", - &asn_OP_NativeInteger, - asn_DEF_RICindicationSN_tags_1, - sizeof(asn_DEF_RICindicationSN_tags_1) - /sizeof(asn_DEF_RICindicationSN_tags_1[0]), /* 1 */ - asn_DEF_RICindicationSN_tags_1, /* Same as above */ - sizeof(asn_DEF_RICindicationSN_tags_1) - /sizeof(asn_DEF_RICindicationSN_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_RICindicationSN_constr_1, RICindicationSN_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/RICindicationSN.h b/e2sim/previous/e2apv1sim/ASN1c/RICindicationSN.h deleted file mode 100644 index 30d8c55..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/RICindicationSN.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICindicationSN_H_ -#define _RICindicationSN_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeInteger.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICindicationSN */ -typedef long RICindicationSN_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICindicationSN; -asn_struct_free_f RICindicationSN_free; -asn_struct_print_f RICindicationSN_print; -asn_constr_check_f RICindicationSN_constraint; -ber_type_decoder_f RICindicationSN_decode_ber; -der_type_encoder_f RICindicationSN_encode_der; -xer_type_decoder_f RICindicationSN_decode_xer; -xer_type_encoder_f RICindicationSN_encode_xer; -per_type_decoder_f RICindicationSN_decode_uper; -per_type_encoder_f RICindicationSN_encode_uper; -per_type_decoder_f RICindicationSN_decode_aper; -per_type_encoder_f RICindicationSN_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICindicationSN_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ASN1c/RICindicationType.c b/e2sim/previous/e2apv1sim/ASN1c/RICindicationType.c deleted file mode 100644 index 81beabe..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/RICindicationType.c +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICindicationType.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -static asn_per_constraints_t asn_PER_type_RICindicationType_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_RICindicationType_value2enum_1[] = { - { 0, 6, "report" }, - { 1, 6, "insert" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_RICindicationType_enum2value_1[] = { - 1, /* insert(1) */ - 0 /* report(0) */ - /* This list is extensible */ -}; -static const asn_INTEGER_specifics_t asn_SPC_RICindicationType_specs_1 = { - asn_MAP_RICindicationType_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_RICindicationType_enum2value_1, /* N => "tag"; sorted by N */ - 2, /* Number of elements in the maps */ - 3, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_RICindicationType_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RICindicationType = { - "RICindicationType", - "RICindicationType", - &asn_OP_NativeEnumerated, - asn_DEF_RICindicationType_tags_1, - sizeof(asn_DEF_RICindicationType_tags_1) - /sizeof(asn_DEF_RICindicationType_tags_1[0]), /* 1 */ - asn_DEF_RICindicationType_tags_1, /* Same as above */ - sizeof(asn_DEF_RICindicationType_tags_1) - /sizeof(asn_DEF_RICindicationType_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_RICindicationType_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_RICindicationType_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/RICindicationType.h b/e2sim/previous/e2apv1sim/ASN1c/RICindicationType.h deleted file mode 100644 index ae14d7a..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/RICindicationType.h +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICindicationType_H_ -#define _RICindicationType_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum RICindicationType { - RICindicationType_report = 0, - RICindicationType_insert = 1 - /* - * Enumeration is extensible - */ -} e_RICindicationType; - -/* RICindicationType */ -typedef long RICindicationType_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICindicationType; -asn_struct_free_f RICindicationType_free; -asn_struct_print_f RICindicationType_print; -asn_constr_check_f RICindicationType_constraint; -ber_type_decoder_f RICindicationType_decode_ber; -der_type_encoder_f RICindicationType_encode_der; -xer_type_decoder_f RICindicationType_decode_xer; -xer_type_encoder_f RICindicationType_encode_xer; -per_type_decoder_f RICindicationType_decode_uper; -per_type_encoder_f RICindicationType_encode_uper; -per_type_decoder_f RICindicationType_decode_aper; -per_type_encoder_f RICindicationType_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICindicationType_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ASN1c/RICrequestID.c b/e2sim/previous/e2apv1sim/ASN1c/RICrequestID.c deleted file mode 100644 index dfe67b5..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/RICrequestID.c +++ /dev/null @@ -1,120 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICrequestID.h" - -static int -memb_ricRequestorID_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_ricInstanceID_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_per_constraints_t asn_PER_memb_ricRequestorID_constr_2 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_ricInstanceID_constr_3 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_RICrequestID_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICrequestID, ricRequestorID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { 0, &asn_PER_memb_ricRequestorID_constr_2, memb_ricRequestorID_constraint_1 }, - 0, 0, /* No default value */ - "ricRequestorID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICrequestID, ricInstanceID), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { 0, &asn_PER_memb_ricInstanceID_constr_3, memb_ricInstanceID_constraint_1 }, - 0, 0, /* No default value */ - "ricInstanceID" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICrequestID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICrequestID_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ricRequestorID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ricInstanceID */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICrequestID_specs_1 = { - sizeof(struct RICrequestID), - offsetof(struct RICrequestID, _asn_ctx), - asn_MAP_RICrequestID_tag2el_1, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 2, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICrequestID = { - "RICrequestID", - "RICrequestID", - &asn_OP_SEQUENCE, - asn_DEF_RICrequestID_tags_1, - sizeof(asn_DEF_RICrequestID_tags_1) - /sizeof(asn_DEF_RICrequestID_tags_1[0]), /* 1 */ - asn_DEF_RICrequestID_tags_1, /* Same as above */ - sizeof(asn_DEF_RICrequestID_tags_1) - /sizeof(asn_DEF_RICrequestID_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICrequestID_1, - 2, /* Elements count */ - &asn_SPC_RICrequestID_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/RICrequestID.h b/e2sim/previous/e2apv1sim/ASN1c/RICrequestID.h deleted file mode 100644 index 24636d4..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/RICrequestID.h +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICrequestID_H_ -#define _RICrequestID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeInteger.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICrequestID */ -typedef struct RICrequestID { - long ricRequestorID; - long ricInstanceID; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICrequestID_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICrequestID; -extern asn_SEQUENCE_specifics_t asn_SPC_RICrequestID_specs_1; -extern asn_TYPE_member_t asn_MBR_RICrequestID_1[2]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICrequestID_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ASN1c/RICserviceQuery.c b/e2sim/previous/e2apv1sim/ASN1c/RICserviceQuery.c deleted file mode 100644 index a2c83c8..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/RICserviceQuery.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICserviceQuery.h" - -asn_TYPE_member_t asn_MBR_RICserviceQuery_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICserviceQuery, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_1527P19, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICserviceQuery_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICserviceQuery_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICserviceQuery_specs_1 = { - sizeof(struct RICserviceQuery), - offsetof(struct RICserviceQuery, _asn_ctx), - asn_MAP_RICserviceQuery_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICserviceQuery = { - "RICserviceQuery", - "RICserviceQuery", - &asn_OP_SEQUENCE, - asn_DEF_RICserviceQuery_tags_1, - sizeof(asn_DEF_RICserviceQuery_tags_1) - /sizeof(asn_DEF_RICserviceQuery_tags_1[0]), /* 1 */ - asn_DEF_RICserviceQuery_tags_1, /* Same as above */ - sizeof(asn_DEF_RICserviceQuery_tags_1) - /sizeof(asn_DEF_RICserviceQuery_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICserviceQuery_1, - 1, /* Elements count */ - &asn_SPC_RICserviceQuery_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/RICserviceQuery.h b/e2sim/previous/e2apv1sim/ASN1c/RICserviceQuery.h deleted file mode 100644 index 7db0a4f..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/RICserviceQuery.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICserviceQuery_H_ -#define _RICserviceQuery_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICserviceQuery */ -typedef struct RICserviceQuery { - ProtocolIE_Container_1527P19_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICserviceQuery_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICserviceQuery; -extern asn_SEQUENCE_specifics_t asn_SPC_RICserviceQuery_specs_1; -extern asn_TYPE_member_t asn_MBR_RICserviceQuery_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICserviceQuery_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ASN1c/RICserviceUpdate.c b/e2sim/previous/e2apv1sim/ASN1c/RICserviceUpdate.c deleted file mode 100644 index 8ec4465..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/RICserviceUpdate.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICserviceUpdate.h" - -asn_TYPE_member_t asn_MBR_RICserviceUpdate_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdate, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_1527P16, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICserviceUpdate_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICserviceUpdate_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdate_specs_1 = { - sizeof(struct RICserviceUpdate), - offsetof(struct RICserviceUpdate, _asn_ctx), - asn_MAP_RICserviceUpdate_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICserviceUpdate = { - "RICserviceUpdate", - "RICserviceUpdate", - &asn_OP_SEQUENCE, - asn_DEF_RICserviceUpdate_tags_1, - sizeof(asn_DEF_RICserviceUpdate_tags_1) - /sizeof(asn_DEF_RICserviceUpdate_tags_1[0]), /* 1 */ - asn_DEF_RICserviceUpdate_tags_1, /* Same as above */ - sizeof(asn_DEF_RICserviceUpdate_tags_1) - /sizeof(asn_DEF_RICserviceUpdate_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICserviceUpdate_1, - 1, /* Elements count */ - &asn_SPC_RICserviceUpdate_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/RICserviceUpdate.h b/e2sim/previous/e2apv1sim/ASN1c/RICserviceUpdate.h deleted file mode 100644 index f9353cb..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/RICserviceUpdate.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICserviceUpdate_H_ -#define _RICserviceUpdate_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICserviceUpdate */ -typedef struct RICserviceUpdate { - ProtocolIE_Container_1527P16_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICserviceUpdate_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICserviceUpdate; -extern asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdate_specs_1; -extern asn_TYPE_member_t asn_MBR_RICserviceUpdate_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICserviceUpdate_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ASN1c/RICserviceUpdateAcknowledge.c b/e2sim/previous/e2apv1sim/ASN1c/RICserviceUpdateAcknowledge.c deleted file mode 100644 index fe21337..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/RICserviceUpdateAcknowledge.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICserviceUpdateAcknowledge.h" - -asn_TYPE_member_t asn_MBR_RICserviceUpdateAcknowledge_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateAcknowledge, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_1527P17, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICserviceUpdateAcknowledge_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICserviceUpdateAcknowledge_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdateAcknowledge_specs_1 = { - sizeof(struct RICserviceUpdateAcknowledge), - offsetof(struct RICserviceUpdateAcknowledge, _asn_ctx), - asn_MAP_RICserviceUpdateAcknowledge_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICserviceUpdateAcknowledge = { - "RICserviceUpdateAcknowledge", - "RICserviceUpdateAcknowledge", - &asn_OP_SEQUENCE, - asn_DEF_RICserviceUpdateAcknowledge_tags_1, - sizeof(asn_DEF_RICserviceUpdateAcknowledge_tags_1) - /sizeof(asn_DEF_RICserviceUpdateAcknowledge_tags_1[0]), /* 1 */ - asn_DEF_RICserviceUpdateAcknowledge_tags_1, /* Same as above */ - sizeof(asn_DEF_RICserviceUpdateAcknowledge_tags_1) - /sizeof(asn_DEF_RICserviceUpdateAcknowledge_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICserviceUpdateAcknowledge_1, - 1, /* Elements count */ - &asn_SPC_RICserviceUpdateAcknowledge_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/RICserviceUpdateAcknowledge.h b/e2sim/previous/e2apv1sim/ASN1c/RICserviceUpdateAcknowledge.h deleted file mode 100644 index ec27597..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/RICserviceUpdateAcknowledge.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICserviceUpdateAcknowledge_H_ -#define _RICserviceUpdateAcknowledge_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICserviceUpdateAcknowledge */ -typedef struct RICserviceUpdateAcknowledge { - ProtocolIE_Container_1527P17_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICserviceUpdateAcknowledge_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICserviceUpdateAcknowledge; -extern asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdateAcknowledge_specs_1; -extern asn_TYPE_member_t asn_MBR_RICserviceUpdateAcknowledge_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICserviceUpdateAcknowledge_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ASN1c/RICserviceUpdateFailure.c b/e2sim/previous/e2apv1sim/ASN1c/RICserviceUpdateFailure.c deleted file mode 100644 index 61334b4..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/RICserviceUpdateFailure.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICserviceUpdateFailure.h" - -asn_TYPE_member_t asn_MBR_RICserviceUpdateFailure_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateFailure, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_1527P18, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICserviceUpdateFailure_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICserviceUpdateFailure_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdateFailure_specs_1 = { - sizeof(struct RICserviceUpdateFailure), - offsetof(struct RICserviceUpdateFailure, _asn_ctx), - asn_MAP_RICserviceUpdateFailure_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICserviceUpdateFailure = { - "RICserviceUpdateFailure", - "RICserviceUpdateFailure", - &asn_OP_SEQUENCE, - asn_DEF_RICserviceUpdateFailure_tags_1, - sizeof(asn_DEF_RICserviceUpdateFailure_tags_1) - /sizeof(asn_DEF_RICserviceUpdateFailure_tags_1[0]), /* 1 */ - asn_DEF_RICserviceUpdateFailure_tags_1, /* Same as above */ - sizeof(asn_DEF_RICserviceUpdateFailure_tags_1) - /sizeof(asn_DEF_RICserviceUpdateFailure_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICserviceUpdateFailure_1, - 1, /* Elements count */ - &asn_SPC_RICserviceUpdateFailure_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/RICserviceUpdateFailure.h b/e2sim/previous/e2apv1sim/ASN1c/RICserviceUpdateFailure.h deleted file mode 100644 index 71e1e62..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/RICserviceUpdateFailure.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICserviceUpdateFailure_H_ -#define _RICserviceUpdateFailure_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICserviceUpdateFailure */ -typedef struct RICserviceUpdateFailure { - ProtocolIE_Container_1527P18_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICserviceUpdateFailure_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICserviceUpdateFailure; -extern asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdateFailure_specs_1; -extern asn_TYPE_member_t asn_MBR_RICserviceUpdateFailure_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICserviceUpdateFailure_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ASN1c/RICsubscriptionDeleteFailure.c b/e2sim/previous/e2apv1sim/ASN1c/RICsubscriptionDeleteFailure.c deleted file mode 100644 index 04b54c7..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/RICsubscriptionDeleteFailure.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICsubscriptionDeleteFailure.h" - -asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteFailure_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteFailure, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_1527P5, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICsubscriptionDeleteFailure_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionDeleteFailure_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteFailure_specs_1 = { - sizeof(struct RICsubscriptionDeleteFailure), - offsetof(struct RICsubscriptionDeleteFailure, _asn_ctx), - asn_MAP_RICsubscriptionDeleteFailure_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDeleteFailure = { - "RICsubscriptionDeleteFailure", - "RICsubscriptionDeleteFailure", - &asn_OP_SEQUENCE, - asn_DEF_RICsubscriptionDeleteFailure_tags_1, - sizeof(asn_DEF_RICsubscriptionDeleteFailure_tags_1) - /sizeof(asn_DEF_RICsubscriptionDeleteFailure_tags_1[0]), /* 1 */ - asn_DEF_RICsubscriptionDeleteFailure_tags_1, /* Same as above */ - sizeof(asn_DEF_RICsubscriptionDeleteFailure_tags_1) - /sizeof(asn_DEF_RICsubscriptionDeleteFailure_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICsubscriptionDeleteFailure_1, - 1, /* Elements count */ - &asn_SPC_RICsubscriptionDeleteFailure_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/RICsubscriptionDeleteFailure.h b/e2sim/previous/e2apv1sim/ASN1c/RICsubscriptionDeleteFailure.h deleted file mode 100644 index 1560efb..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/RICsubscriptionDeleteFailure.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICsubscriptionDeleteFailure_H_ -#define _RICsubscriptionDeleteFailure_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICsubscriptionDeleteFailure */ -typedef struct RICsubscriptionDeleteFailure { - ProtocolIE_Container_1527P5_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICsubscriptionDeleteFailure_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDeleteFailure; -extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteFailure_specs_1; -extern asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteFailure_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICsubscriptionDeleteFailure_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ASN1c/RICsubscriptionDeleteRequest.c b/e2sim/previous/e2apv1sim/ASN1c/RICsubscriptionDeleteRequest.c deleted file mode 100644 index 4ff78c6..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/RICsubscriptionDeleteRequest.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICsubscriptionDeleteRequest.h" - -asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteRequest_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteRequest, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_1527P3, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICsubscriptionDeleteRequest_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionDeleteRequest_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteRequest_specs_1 = { - sizeof(struct RICsubscriptionDeleteRequest), - offsetof(struct RICsubscriptionDeleteRequest, _asn_ctx), - asn_MAP_RICsubscriptionDeleteRequest_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDeleteRequest = { - "RICsubscriptionDeleteRequest", - "RICsubscriptionDeleteRequest", - &asn_OP_SEQUENCE, - asn_DEF_RICsubscriptionDeleteRequest_tags_1, - sizeof(asn_DEF_RICsubscriptionDeleteRequest_tags_1) - /sizeof(asn_DEF_RICsubscriptionDeleteRequest_tags_1[0]), /* 1 */ - asn_DEF_RICsubscriptionDeleteRequest_tags_1, /* Same as above */ - sizeof(asn_DEF_RICsubscriptionDeleteRequest_tags_1) - /sizeof(asn_DEF_RICsubscriptionDeleteRequest_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICsubscriptionDeleteRequest_1, - 1, /* Elements count */ - &asn_SPC_RICsubscriptionDeleteRequest_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/RICsubscriptionDeleteRequest.h b/e2sim/previous/e2apv1sim/ASN1c/RICsubscriptionDeleteRequest.h deleted file mode 100644 index f25c782..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/RICsubscriptionDeleteRequest.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICsubscriptionDeleteRequest_H_ -#define _RICsubscriptionDeleteRequest_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICsubscriptionDeleteRequest */ -typedef struct RICsubscriptionDeleteRequest { - ProtocolIE_Container_1527P3_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICsubscriptionDeleteRequest_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDeleteRequest; -extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteRequest_specs_1; -extern asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteRequest_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICsubscriptionDeleteRequest_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ASN1c/RICsubscriptionDeleteResponse.c b/e2sim/previous/e2apv1sim/ASN1c/RICsubscriptionDeleteResponse.c deleted file mode 100644 index 70a20c7..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/RICsubscriptionDeleteResponse.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICsubscriptionDeleteResponse.h" - -asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteResponse_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteResponse, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_1527P4, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICsubscriptionDeleteResponse_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionDeleteResponse_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteResponse_specs_1 = { - sizeof(struct RICsubscriptionDeleteResponse), - offsetof(struct RICsubscriptionDeleteResponse, _asn_ctx), - asn_MAP_RICsubscriptionDeleteResponse_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDeleteResponse = { - "RICsubscriptionDeleteResponse", - "RICsubscriptionDeleteResponse", - &asn_OP_SEQUENCE, - asn_DEF_RICsubscriptionDeleteResponse_tags_1, - sizeof(asn_DEF_RICsubscriptionDeleteResponse_tags_1) - /sizeof(asn_DEF_RICsubscriptionDeleteResponse_tags_1[0]), /* 1 */ - asn_DEF_RICsubscriptionDeleteResponse_tags_1, /* Same as above */ - sizeof(asn_DEF_RICsubscriptionDeleteResponse_tags_1) - /sizeof(asn_DEF_RICsubscriptionDeleteResponse_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICsubscriptionDeleteResponse_1, - 1, /* Elements count */ - &asn_SPC_RICsubscriptionDeleteResponse_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/RICsubscriptionDeleteResponse.h b/e2sim/previous/e2apv1sim/ASN1c/RICsubscriptionDeleteResponse.h deleted file mode 100644 index 9b93735..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/RICsubscriptionDeleteResponse.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICsubscriptionDeleteResponse_H_ -#define _RICsubscriptionDeleteResponse_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICsubscriptionDeleteResponse */ -typedef struct RICsubscriptionDeleteResponse { - ProtocolIE_Container_1527P4_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICsubscriptionDeleteResponse_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDeleteResponse; -extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteResponse_specs_1; -extern asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteResponse_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICsubscriptionDeleteResponse_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ASN1c/RICsubscriptionDetails.c b/e2sim/previous/e2apv1sim/ASN1c/RICsubscriptionDetails.c deleted file mode 100644 index 39475fd..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/RICsubscriptionDetails.c +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICsubscriptionDetails.h" - -static asn_TYPE_member_t asn_MBR_RICsubscriptionDetails_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDetails, ricEventTriggerDefinition), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RICeventTriggerDefinition, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ricEventTriggerDefinition" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDetails, ricAction_ToBeSetup_List), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RICactions_ToBeSetup_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ricAction-ToBeSetup-List" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICsubscriptionDetails_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionDetails_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ricEventTriggerDefinition */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ricAction-ToBeSetup-List */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDetails_specs_1 = { - sizeof(struct RICsubscriptionDetails), - offsetof(struct RICsubscriptionDetails, _asn_ctx), - asn_MAP_RICsubscriptionDetails_tag2el_1, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 2, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDetails = { - "RICsubscriptionDetails", - "RICsubscriptionDetails", - &asn_OP_SEQUENCE, - asn_DEF_RICsubscriptionDetails_tags_1, - sizeof(asn_DEF_RICsubscriptionDetails_tags_1) - /sizeof(asn_DEF_RICsubscriptionDetails_tags_1[0]), /* 1 */ - asn_DEF_RICsubscriptionDetails_tags_1, /* Same as above */ - sizeof(asn_DEF_RICsubscriptionDetails_tags_1) - /sizeof(asn_DEF_RICsubscriptionDetails_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICsubscriptionDetails_1, - 2, /* Elements count */ - &asn_SPC_RICsubscriptionDetails_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/RICsubscriptionDetails.h b/e2sim/previous/e2apv1sim/ASN1c/RICsubscriptionDetails.h deleted file mode 100644 index cd5b0f8..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/RICsubscriptionDetails.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICsubscriptionDetails_H_ -#define _RICsubscriptionDetails_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "RICeventTriggerDefinition.h" -#include "RICactions-ToBeSetup-List.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICsubscriptionDetails */ -typedef struct RICsubscriptionDetails { - RICeventTriggerDefinition_t ricEventTriggerDefinition; - RICactions_ToBeSetup_List_t ricAction_ToBeSetup_List; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICsubscriptionDetails_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDetails; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICsubscriptionDetails_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ASN1c/RICsubscriptionFailure.c b/e2sim/previous/e2apv1sim/ASN1c/RICsubscriptionFailure.c deleted file mode 100644 index f0a7a43..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/RICsubscriptionFailure.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICsubscriptionFailure.h" - -asn_TYPE_member_t asn_MBR_RICsubscriptionFailure_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionFailure, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_1527P2, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICsubscriptionFailure_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionFailure_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionFailure_specs_1 = { - sizeof(struct RICsubscriptionFailure), - offsetof(struct RICsubscriptionFailure, _asn_ctx), - asn_MAP_RICsubscriptionFailure_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICsubscriptionFailure = { - "RICsubscriptionFailure", - "RICsubscriptionFailure", - &asn_OP_SEQUENCE, - asn_DEF_RICsubscriptionFailure_tags_1, - sizeof(asn_DEF_RICsubscriptionFailure_tags_1) - /sizeof(asn_DEF_RICsubscriptionFailure_tags_1[0]), /* 1 */ - asn_DEF_RICsubscriptionFailure_tags_1, /* Same as above */ - sizeof(asn_DEF_RICsubscriptionFailure_tags_1) - /sizeof(asn_DEF_RICsubscriptionFailure_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICsubscriptionFailure_1, - 1, /* Elements count */ - &asn_SPC_RICsubscriptionFailure_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/RICsubscriptionFailure.h b/e2sim/previous/e2apv1sim/ASN1c/RICsubscriptionFailure.h deleted file mode 100644 index fb43397..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/RICsubscriptionFailure.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICsubscriptionFailure_H_ -#define _RICsubscriptionFailure_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICsubscriptionFailure */ -typedef struct RICsubscriptionFailure { - ProtocolIE_Container_1527P2_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICsubscriptionFailure_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionFailure; -extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionFailure_specs_1; -extern asn_TYPE_member_t asn_MBR_RICsubscriptionFailure_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICsubscriptionFailure_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ASN1c/RICsubscriptionRequest.c b/e2sim/previous/e2apv1sim/ASN1c/RICsubscriptionRequest.c deleted file mode 100644 index dcc451e..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/RICsubscriptionRequest.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICsubscriptionRequest.h" - -asn_TYPE_member_t asn_MBR_RICsubscriptionRequest_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionRequest, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_1527P0, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICsubscriptionRequest_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionRequest_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionRequest_specs_1 = { - sizeof(struct RICsubscriptionRequest), - offsetof(struct RICsubscriptionRequest, _asn_ctx), - asn_MAP_RICsubscriptionRequest_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICsubscriptionRequest = { - "RICsubscriptionRequest", - "RICsubscriptionRequest", - &asn_OP_SEQUENCE, - asn_DEF_RICsubscriptionRequest_tags_1, - sizeof(asn_DEF_RICsubscriptionRequest_tags_1) - /sizeof(asn_DEF_RICsubscriptionRequest_tags_1[0]), /* 1 */ - asn_DEF_RICsubscriptionRequest_tags_1, /* Same as above */ - sizeof(asn_DEF_RICsubscriptionRequest_tags_1) - /sizeof(asn_DEF_RICsubscriptionRequest_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICsubscriptionRequest_1, - 1, /* Elements count */ - &asn_SPC_RICsubscriptionRequest_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/RICsubscriptionRequest.h b/e2sim/previous/e2apv1sim/ASN1c/RICsubscriptionRequest.h deleted file mode 100644 index d6ed804..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/RICsubscriptionRequest.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICsubscriptionRequest_H_ -#define _RICsubscriptionRequest_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICsubscriptionRequest */ -typedef struct RICsubscriptionRequest { - ProtocolIE_Container_1527P0_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICsubscriptionRequest_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionRequest; -extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionRequest_specs_1; -extern asn_TYPE_member_t asn_MBR_RICsubscriptionRequest_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICsubscriptionRequest_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ASN1c/RICsubscriptionResponse.c b/e2sim/previous/e2apv1sim/ASN1c/RICsubscriptionResponse.c deleted file mode 100644 index 836322b..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/RICsubscriptionResponse.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICsubscriptionResponse.h" - -asn_TYPE_member_t asn_MBR_RICsubscriptionResponse_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionResponse, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_1527P1, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICsubscriptionResponse_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionResponse_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionResponse_specs_1 = { - sizeof(struct RICsubscriptionResponse), - offsetof(struct RICsubscriptionResponse, _asn_ctx), - asn_MAP_RICsubscriptionResponse_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICsubscriptionResponse = { - "RICsubscriptionResponse", - "RICsubscriptionResponse", - &asn_OP_SEQUENCE, - asn_DEF_RICsubscriptionResponse_tags_1, - sizeof(asn_DEF_RICsubscriptionResponse_tags_1) - /sizeof(asn_DEF_RICsubscriptionResponse_tags_1[0]), /* 1 */ - asn_DEF_RICsubscriptionResponse_tags_1, /* Same as above */ - sizeof(asn_DEF_RICsubscriptionResponse_tags_1) - /sizeof(asn_DEF_RICsubscriptionResponse_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICsubscriptionResponse_1, - 1, /* Elements count */ - &asn_SPC_RICsubscriptionResponse_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/RICsubscriptionResponse.h b/e2sim/previous/e2apv1sim/ASN1c/RICsubscriptionResponse.h deleted file mode 100644 index 64e2e45..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/RICsubscriptionResponse.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICsubscriptionResponse_H_ -#define _RICsubscriptionResponse_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICsubscriptionResponse */ -typedef struct RICsubscriptionResponse { - ProtocolIE_Container_1527P1_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICsubscriptionResponse_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionResponse; -extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionResponse_specs_1; -extern asn_TYPE_member_t asn_MBR_RICsubscriptionResponse_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICsubscriptionResponse_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ASN1c/RICsubsequentAction.c b/e2sim/previous/e2apv1sim/ASN1c/RICsubsequentAction.c deleted file mode 100644 index 1008fb1..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/RICsubsequentAction.c +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICsubsequentAction.h" - -asn_TYPE_member_t asn_MBR_RICsubsequentAction_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICsubsequentAction, ricSubsequentActionType), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RICsubsequentActionType, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ricSubsequentActionType" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubsequentAction, ricTimeToWait), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RICtimeToWait, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ricTimeToWait" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICsubsequentAction_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICsubsequentAction_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ricSubsequentActionType */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ricTimeToWait */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICsubsequentAction_specs_1 = { - sizeof(struct RICsubsequentAction), - offsetof(struct RICsubsequentAction, _asn_ctx), - asn_MAP_RICsubsequentAction_tag2el_1, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 2, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICsubsequentAction = { - "RICsubsequentAction", - "RICsubsequentAction", - &asn_OP_SEQUENCE, - asn_DEF_RICsubsequentAction_tags_1, - sizeof(asn_DEF_RICsubsequentAction_tags_1) - /sizeof(asn_DEF_RICsubsequentAction_tags_1[0]), /* 1 */ - asn_DEF_RICsubsequentAction_tags_1, /* Same as above */ - sizeof(asn_DEF_RICsubsequentAction_tags_1) - /sizeof(asn_DEF_RICsubsequentAction_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICsubsequentAction_1, - 2, /* Elements count */ - &asn_SPC_RICsubsequentAction_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/RICsubsequentAction.h b/e2sim/previous/e2apv1sim/ASN1c/RICsubsequentAction.h deleted file mode 100644 index dae24c8..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/RICsubsequentAction.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICsubsequentAction_H_ -#define _RICsubsequentAction_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "RICsubsequentActionType.h" -#include "RICtimeToWait.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICsubsequentAction */ -typedef struct RICsubsequentAction { - RICsubsequentActionType_t ricSubsequentActionType; - RICtimeToWait_t ricTimeToWait; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICsubsequentAction_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICsubsequentAction; -extern asn_SEQUENCE_specifics_t asn_SPC_RICsubsequentAction_specs_1; -extern asn_TYPE_member_t asn_MBR_RICsubsequentAction_1[2]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICsubsequentAction_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ASN1c/RICsubsequentActionType.c b/e2sim/previous/e2apv1sim/ASN1c/RICsubsequentActionType.c deleted file mode 100644 index c622986..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/RICsubsequentActionType.c +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICsubsequentActionType.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_RICsubsequentActionType_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_RICsubsequentActionType_value2enum_1[] = { - { 0, 8, "continue" }, - { 1, 4, "wait" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_RICsubsequentActionType_enum2value_1[] = { - 0, /* continue(0) */ - 1 /* wait(1) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_RICsubsequentActionType_specs_1 = { - asn_MAP_RICsubsequentActionType_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_RICsubsequentActionType_enum2value_1, /* N => "tag"; sorted by N */ - 2, /* Number of elements in the maps */ - 3, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_RICsubsequentActionType_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RICsubsequentActionType = { - "RICsubsequentActionType", - "RICsubsequentActionType", - &asn_OP_NativeEnumerated, - asn_DEF_RICsubsequentActionType_tags_1, - sizeof(asn_DEF_RICsubsequentActionType_tags_1) - /sizeof(asn_DEF_RICsubsequentActionType_tags_1[0]), /* 1 */ - asn_DEF_RICsubsequentActionType_tags_1, /* Same as above */ - sizeof(asn_DEF_RICsubsequentActionType_tags_1) - /sizeof(asn_DEF_RICsubsequentActionType_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_RICsubsequentActionType_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_RICsubsequentActionType_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/RICsubsequentActionType.h b/e2sim/previous/e2apv1sim/ASN1c/RICsubsequentActionType.h deleted file mode 100644 index 18f61c7..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/RICsubsequentActionType.h +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICsubsequentActionType_H_ -#define _RICsubsequentActionType_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum RICsubsequentActionType { - RICsubsequentActionType_continue = 0, - RICsubsequentActionType_wait = 1 - /* - * Enumeration is extensible - */ -} e_RICsubsequentActionType; - -/* RICsubsequentActionType */ -typedef long RICsubsequentActionType_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_RICsubsequentActionType_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_RICsubsequentActionType; -extern const asn_INTEGER_specifics_t asn_SPC_RICsubsequentActionType_specs_1; -asn_struct_free_f RICsubsequentActionType_free; -asn_struct_print_f RICsubsequentActionType_print; -asn_constr_check_f RICsubsequentActionType_constraint; -ber_type_decoder_f RICsubsequentActionType_decode_ber; -der_type_encoder_f RICsubsequentActionType_encode_der; -xer_type_decoder_f RICsubsequentActionType_decode_xer; -xer_type_encoder_f RICsubsequentActionType_encode_xer; -per_type_decoder_f RICsubsequentActionType_decode_uper; -per_type_encoder_f RICsubsequentActionType_encode_uper; -per_type_decoder_f RICsubsequentActionType_decode_aper; -per_type_encoder_f RICsubsequentActionType_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICsubsequentActionType_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ASN1c/RICtimeToWait.c b/e2sim/previous/e2apv1sim/ASN1c/RICtimeToWait.c deleted file mode 100644 index 159b5e3..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/RICtimeToWait.c +++ /dev/null @@ -1,87 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICtimeToWait.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_RICtimeToWait_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 5, 5, 0, 17 } /* (0..17,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_RICtimeToWait_value2enum_1[] = { - { 0, 4, "zero" }, - { 1, 4, "w1ms" }, - { 2, 4, "w2ms" }, - { 3, 4, "w5ms" }, - { 4, 5, "w10ms" }, - { 5, 5, "w20ms" }, - { 6, 5, "w30ms" }, - { 7, 5, "w40ms" }, - { 8, 5, "w50ms" }, - { 9, 6, "w100ms" }, - { 10, 6, "w200ms" }, - { 11, 6, "w500ms" }, - { 12, 3, "w1s" }, - { 13, 3, "w2s" }, - { 14, 3, "w5s" }, - { 15, 4, "w10s" }, - { 16, 4, "w20s" }, - { 17, 4, "w60s" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_RICtimeToWait_enum2value_1[] = { - 9, /* w100ms(9) */ - 4, /* w10ms(4) */ - 15, /* w10s(15) */ - 1, /* w1ms(1) */ - 12, /* w1s(12) */ - 10, /* w200ms(10) */ - 5, /* w20ms(5) */ - 16, /* w20s(16) */ - 2, /* w2ms(2) */ - 13, /* w2s(13) */ - 6, /* w30ms(6) */ - 7, /* w40ms(7) */ - 11, /* w500ms(11) */ - 8, /* w50ms(8) */ - 3, /* w5ms(3) */ - 14, /* w5s(14) */ - 17, /* w60s(17) */ - 0 /* zero(0) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_RICtimeToWait_specs_1 = { - asn_MAP_RICtimeToWait_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_RICtimeToWait_enum2value_1, /* N => "tag"; sorted by N */ - 18, /* Number of elements in the maps */ - 19, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_RICtimeToWait_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RICtimeToWait = { - "RICtimeToWait", - "RICtimeToWait", - &asn_OP_NativeEnumerated, - asn_DEF_RICtimeToWait_tags_1, - sizeof(asn_DEF_RICtimeToWait_tags_1) - /sizeof(asn_DEF_RICtimeToWait_tags_1[0]), /* 1 */ - asn_DEF_RICtimeToWait_tags_1, /* Same as above */ - sizeof(asn_DEF_RICtimeToWait_tags_1) - /sizeof(asn_DEF_RICtimeToWait_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_RICtimeToWait_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_RICtimeToWait_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/RICtimeToWait.h b/e2sim/previous/e2apv1sim/ASN1c/RICtimeToWait.h deleted file mode 100644 index 6bd2096..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/RICtimeToWait.h +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICtimeToWait_H_ -#define _RICtimeToWait_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum RICtimeToWait { - RICtimeToWait_zero = 0, - RICtimeToWait_w1ms = 1, - RICtimeToWait_w2ms = 2, - RICtimeToWait_w5ms = 3, - RICtimeToWait_w10ms = 4, - RICtimeToWait_w20ms = 5, - RICtimeToWait_w30ms = 6, - RICtimeToWait_w40ms = 7, - RICtimeToWait_w50ms = 8, - RICtimeToWait_w100ms = 9, - RICtimeToWait_w200ms = 10, - RICtimeToWait_w500ms = 11, - RICtimeToWait_w1s = 12, - RICtimeToWait_w2s = 13, - RICtimeToWait_w5s = 14, - RICtimeToWait_w10s = 15, - RICtimeToWait_w20s = 16, - RICtimeToWait_w60s = 17 - /* - * Enumeration is extensible - */ -} e_RICtimeToWait; - -/* RICtimeToWait */ -typedef long RICtimeToWait_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_RICtimeToWait_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_RICtimeToWait; -extern const asn_INTEGER_specifics_t asn_SPC_RICtimeToWait_specs_1; -asn_struct_free_f RICtimeToWait_free; -asn_struct_print_f RICtimeToWait_print; -asn_constr_check_f RICtimeToWait_constraint; -ber_type_decoder_f RICtimeToWait_decode_ber; -der_type_encoder_f RICtimeToWait_encode_der; -xer_type_decoder_f RICtimeToWait_decode_xer; -xer_type_encoder_f RICtimeToWait_encode_xer; -per_type_decoder_f RICtimeToWait_decode_uper; -per_type_encoder_f RICtimeToWait_encode_uper; -per_type_decoder_f RICtimeToWait_decode_aper; -per_type_encoder_f RICtimeToWait_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICtimeToWait_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ASN1c/RT-Period-IE.c b/e2sim/previous/e2apv1sim/ASN1c/RT-Period-IE.c deleted file mode 100644 index 5f99297..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/RT-Period-IE.c +++ /dev/null @@ -1,94 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "RT-Period-IE.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -static asn_oer_constraints_t asn_OER_type_RT_Period_IE_constr_1 CC_NOTUSED = { - { 0, 0 }, - -1}; -asn_per_constraints_t asn_PER_type_RT_Period_IE_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 5, 5, 0, 19 } /* (0..19,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_RT_Period_IE_value2enum_1[] = { - { 0, 4, "ms10" }, - { 1, 4, "ms20" }, - { 2, 4, "ms32" }, - { 3, 4, "ms40" }, - { 4, 4, "ms60" }, - { 5, 4, "ms64" }, - { 6, 4, "ms70" }, - { 7, 4, "ms80" }, - { 8, 5, "ms128" }, - { 9, 5, "ms160" }, - { 10, 5, "ms256" }, - { 11, 5, "ms320" }, - { 12, 5, "ms512" }, - { 13, 5, "ms640" }, - { 14, 6, "ms1024" }, - { 15, 6, "ms1280" }, - { 16, 6, "ms2048" }, - { 17, 6, "ms2560" }, - { 18, 6, "ms5120" }, - { 19, 7, "ms10240" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_RT_Period_IE_enum2value_1[] = { - 0, /* ms10(0) */ - 14, /* ms1024(14) */ - 19, /* ms10240(19) */ - 8, /* ms128(8) */ - 15, /* ms1280(15) */ - 9, /* ms160(9) */ - 1, /* ms20(1) */ - 16, /* ms2048(16) */ - 10, /* ms256(10) */ - 17, /* ms2560(17) */ - 2, /* ms32(2) */ - 11, /* ms320(11) */ - 3, /* ms40(3) */ - 12, /* ms512(12) */ - 18, /* ms5120(18) */ - 4, /* ms60(4) */ - 5, /* ms64(5) */ - 13, /* ms640(13) */ - 6, /* ms70(6) */ - 7 /* ms80(7) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_RT_Period_IE_specs_1 = { - asn_MAP_RT_Period_IE_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_RT_Period_IE_enum2value_1, /* N => "tag"; sorted by N */ - 20, /* Number of elements in the maps */ - 21, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_RT_Period_IE_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RT_Period_IE = { - "RT-Period-IE", - "RT-Period-IE", - &asn_OP_NativeEnumerated, - asn_DEF_RT_Period_IE_tags_1, - sizeof(asn_DEF_RT_Period_IE_tags_1) - /sizeof(asn_DEF_RT_Period_IE_tags_1[0]), /* 1 */ - asn_DEF_RT_Period_IE_tags_1, /* Same as above */ - sizeof(asn_DEF_RT_Period_IE_tags_1) - /sizeof(asn_DEF_RT_Period_IE_tags_1[0]), /* 1 */ - { &asn_OER_type_RT_Period_IE_constr_1, &asn_PER_type_RT_Period_IE_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_RT_Period_IE_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/RT-Period-IE.h b/e2sim/previous/e2apv1sim/ASN1c/RT-Period-IE.h deleted file mode 100644 index 30d2843..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/RT-Period-IE.h +++ /dev/null @@ -1,74 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _RT_Period_IE_H_ -#define _RT_Period_IE_H_ - - -#include - -/* Including external dependencies */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum RT_Period_IE { - RT_Period_IE_ms10 = 0, - RT_Period_IE_ms20 = 1, - RT_Period_IE_ms32 = 2, - RT_Period_IE_ms40 = 3, - RT_Period_IE_ms60 = 4, - RT_Period_IE_ms64 = 5, - RT_Period_IE_ms70 = 6, - RT_Period_IE_ms80 = 7, - RT_Period_IE_ms128 = 8, - RT_Period_IE_ms160 = 9, - RT_Period_IE_ms256 = 10, - RT_Period_IE_ms320 = 11, - RT_Period_IE_ms512 = 12, - RT_Period_IE_ms640 = 13, - RT_Period_IE_ms1024 = 14, - RT_Period_IE_ms1280 = 15, - RT_Period_IE_ms2048 = 16, - RT_Period_IE_ms2560 = 17, - RT_Period_IE_ms5120 = 18, - RT_Period_IE_ms10240 = 19 - /* - * Enumeration is extensible - */ -} e_RT_Period_IE; - -/* RT-Period-IE */ -typedef long RT_Period_IE_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_RT_Period_IE_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_RT_Period_IE; -extern const asn_INTEGER_specifics_t asn_SPC_RT_Period_IE_specs_1; -asn_struct_free_f RT_Period_IE_free; -asn_struct_print_f RT_Period_IE_print; -asn_constr_check_f RT_Period_IE_constraint; -ber_type_decoder_f RT_Period_IE_decode_ber; -der_type_encoder_f RT_Period_IE_encode_der; -xer_type_decoder_f RT_Period_IE_decode_xer; -xer_type_encoder_f RT_Period_IE_encode_xer; -oer_type_decoder_f RT_Period_IE_decode_oer; -oer_type_encoder_f RT_Period_IE_encode_oer; -per_type_decoder_f RT_Period_IE_decode_uper; -per_type_encoder_f RT_Period_IE_encode_uper; -per_type_decoder_f RT_Period_IE_decode_aper; -per_type_encoder_f RT_Period_IE_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RT_Period_IE_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ASN1c/ResetRequest.c b/e2sim/previous/e2apv1sim/ASN1c/ResetRequest.c deleted file mode 100644 index 3f96a6d..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/ResetRequest.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "ResetRequest.h" - -asn_TYPE_member_t asn_MBR_ResetRequest_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct ResetRequest, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_1527P14, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_ResetRequest_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ResetRequest_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ResetRequest_specs_1 = { - sizeof(struct ResetRequest), - offsetof(struct ResetRequest, _asn_ctx), - asn_MAP_ResetRequest_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ResetRequest = { - "ResetRequest", - "ResetRequest", - &asn_OP_SEQUENCE, - asn_DEF_ResetRequest_tags_1, - sizeof(asn_DEF_ResetRequest_tags_1) - /sizeof(asn_DEF_ResetRequest_tags_1[0]), /* 1 */ - asn_DEF_ResetRequest_tags_1, /* Same as above */ - sizeof(asn_DEF_ResetRequest_tags_1) - /sizeof(asn_DEF_ResetRequest_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ResetRequest_1, - 1, /* Elements count */ - &asn_SPC_ResetRequest_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/ResetRequest.h b/e2sim/previous/e2apv1sim/ASN1c/ResetRequest.h deleted file mode 100644 index e7f6ec8..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/ResetRequest.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _ResetRequest_H_ -#define _ResetRequest_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* ResetRequest */ -typedef struct ResetRequest { - ProtocolIE_Container_1527P14_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ResetRequest_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ResetRequest; -extern asn_SEQUENCE_specifics_t asn_SPC_ResetRequest_specs_1; -extern asn_TYPE_member_t asn_MBR_ResetRequest_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _ResetRequest_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ASN1c/ResetResponse.c b/e2sim/previous/e2apv1sim/ASN1c/ResetResponse.c deleted file mode 100644 index c8afcc4..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/ResetResponse.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "ResetResponse.h" - -asn_TYPE_member_t asn_MBR_ResetResponse_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct ResetResponse, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_1527P15, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_ResetResponse_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ResetResponse_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ResetResponse_specs_1 = { - sizeof(struct ResetResponse), - offsetof(struct ResetResponse, _asn_ctx), - asn_MAP_ResetResponse_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ResetResponse = { - "ResetResponse", - "ResetResponse", - &asn_OP_SEQUENCE, - asn_DEF_ResetResponse_tags_1, - sizeof(asn_DEF_ResetResponse_tags_1) - /sizeof(asn_DEF_ResetResponse_tags_1[0]), /* 1 */ - asn_DEF_ResetResponse_tags_1, /* Same as above */ - sizeof(asn_DEF_ResetResponse_tags_1) - /sizeof(asn_DEF_ResetResponse_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ResetResponse_1, - 1, /* Elements count */ - &asn_SPC_ResetResponse_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/ResetResponse.h b/e2sim/previous/e2apv1sim/ASN1c/ResetResponse.h deleted file mode 100644 index 08a576e..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/ResetResponse.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _ResetResponse_H_ -#define _ResetResponse_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* ResetResponse */ -typedef struct ResetResponse { - ProtocolIE_Container_1527P15_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ResetResponse_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ResetResponse; -extern asn_SEQUENCE_specifics_t asn_SPC_ResetResponse_specs_1; -extern asn_TYPE_member_t asn_MBR_ResetResponse_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _ResetResponse_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ASN1c/SNSSAI.c b/e2sim/previous/e2apv1sim/ASN1c/SNSSAI.c deleted file mode 100644 index 39afcad..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/SNSSAI.c +++ /dev/null @@ -1,130 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "SNSSAI.h" - -static int -memb_sST_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - size = st->size; - - if((size == 1)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_sD_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - size = st->size; - - if((size == 3)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_oer_constraints_t asn_OER_memb_sST_constr_2 CC_NOTUSED = { - { 0, 0 }, - 1 /* (SIZE(1..1)) */}; -static asn_per_constraints_t asn_PER_memb_sST_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 0, 0, 1, 1 } /* (SIZE(1..1)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_sD_constr_3 CC_NOTUSED = { - { 0, 0 }, - 3 /* (SIZE(3..3)) */}; -static asn_per_constraints_t asn_PER_memb_sD_constr_3 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 0, 0, 3, 3 } /* (SIZE(3..3)) */, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_SNSSAI_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct SNSSAI, sST), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_OCTET_STRING, - 0, - { &asn_OER_memb_sST_constr_2, &asn_PER_memb_sST_constr_2, memb_sST_constraint_1 }, - 0, 0, /* No default value */ - "sST" - }, - { ATF_POINTER, 1, offsetof(struct SNSSAI, sD), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_OCTET_STRING, - 0, - { &asn_OER_memb_sD_constr_3, &asn_PER_memb_sD_constr_3, memb_sD_constraint_1 }, - 0, 0, /* No default value */ - "sD" - }, -}; -static const int asn_MAP_SNSSAI_oms_1[] = { 1 }; -static const ber_tlv_tag_t asn_DEF_SNSSAI_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_SNSSAI_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sST */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* sD */ -}; -asn_SEQUENCE_specifics_t asn_SPC_SNSSAI_specs_1 = { - sizeof(struct SNSSAI), - offsetof(struct SNSSAI, _asn_ctx), - asn_MAP_SNSSAI_tag2el_1, - 2, /* Count of tags in the map */ - asn_MAP_SNSSAI_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_SNSSAI = { - "SNSSAI", - "SNSSAI", - &asn_OP_SEQUENCE, - asn_DEF_SNSSAI_tags_1, - sizeof(asn_DEF_SNSSAI_tags_1) - /sizeof(asn_DEF_SNSSAI_tags_1[0]), /* 1 */ - asn_DEF_SNSSAI_tags_1, /* Same as above */ - sizeof(asn_DEF_SNSSAI_tags_1) - /sizeof(asn_DEF_SNSSAI_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_SNSSAI_1, - 2, /* Elements count */ - &asn_SPC_SNSSAI_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/SNSSAI.h b/e2sim/previous/e2apv1sim/ASN1c/SNSSAI.h deleted file mode 100644 index b854e6f..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/SNSSAI.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _SNSSAI_H_ -#define _SNSSAI_H_ - - -#include - -/* Including external dependencies */ -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* SNSSAI */ -typedef struct SNSSAI { - OCTET_STRING_t sST; - OCTET_STRING_t *sD; /* OPTIONAL */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} SNSSAI_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_SNSSAI; -extern asn_SEQUENCE_specifics_t asn_SPC_SNSSAI_specs_1; -extern asn_TYPE_member_t asn_MBR_SNSSAI_1[2]; - -#ifdef __cplusplus -} -#endif - -#endif /* _SNSSAI_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ASN1c/ServedPlmnPerCellListItem.c b/e2sim/previous/e2apv1sim/ASN1c/ServedPlmnPerCellListItem.c deleted file mode 100644 index 52fbaf5..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/ServedPlmnPerCellListItem.c +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "ServedPlmnPerCellListItem.h" - -asn_TYPE_member_t asn_MBR_ServedPlmnPerCellListItem_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct ServedPlmnPerCellListItem, pLMN_Identity), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_PLMN_Identity, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "pLMN-Identity" - }, - { ATF_POINTER, 2, offsetof(struct ServedPlmnPerCellListItem, du_PM_5GC), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_FGC_DU_PM_Container, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "du-PM-5GC" - }, - { ATF_POINTER, 1, offsetof(struct ServedPlmnPerCellListItem, du_PM_EPC), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_EPC_DU_PM_Container, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "du-PM-EPC" - }, -}; -static const int asn_MAP_ServedPlmnPerCellListItem_oms_1[] = { 1, 2 }; -static const ber_tlv_tag_t asn_DEF_ServedPlmnPerCellListItem_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ServedPlmnPerCellListItem_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pLMN-Identity */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* du-PM-5GC */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* du-PM-EPC */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ServedPlmnPerCellListItem_specs_1 = { - sizeof(struct ServedPlmnPerCellListItem), - offsetof(struct ServedPlmnPerCellListItem, _asn_ctx), - asn_MAP_ServedPlmnPerCellListItem_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_ServedPlmnPerCellListItem_oms_1, /* Optional members */ - 2, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ServedPlmnPerCellListItem = { - "ServedPlmnPerCellListItem", - "ServedPlmnPerCellListItem", - &asn_OP_SEQUENCE, - asn_DEF_ServedPlmnPerCellListItem_tags_1, - sizeof(asn_DEF_ServedPlmnPerCellListItem_tags_1) - /sizeof(asn_DEF_ServedPlmnPerCellListItem_tags_1[0]), /* 1 */ - asn_DEF_ServedPlmnPerCellListItem_tags_1, /* Same as above */ - sizeof(asn_DEF_ServedPlmnPerCellListItem_tags_1) - /sizeof(asn_DEF_ServedPlmnPerCellListItem_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ServedPlmnPerCellListItem_1, - 3, /* Elements count */ - &asn_SPC_ServedPlmnPerCellListItem_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/ServedPlmnPerCellListItem.h b/e2sim/previous/e2apv1sim/ASN1c/ServedPlmnPerCellListItem.h deleted file mode 100644 index be5ecd6..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/ServedPlmnPerCellListItem.h +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _ServedPlmnPerCellListItem_H_ -#define _ServedPlmnPerCellListItem_H_ - - -#include - -/* Including external dependencies */ -#include "PLMN-Identity.h" -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct FGC_DU_PM_Container; -struct EPC_DU_PM_Container; - -/* ServedPlmnPerCellListItem */ -typedef struct ServedPlmnPerCellListItem { - PLMN_Identity_t pLMN_Identity; - struct FGC_DU_PM_Container *du_PM_5GC; /* OPTIONAL */ - struct EPC_DU_PM_Container *du_PM_EPC; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ServedPlmnPerCellListItem_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ServedPlmnPerCellListItem; -extern asn_SEQUENCE_specifics_t asn_SPC_ServedPlmnPerCellListItem_specs_1; -extern asn_TYPE_member_t asn_MBR_ServedPlmnPerCellListItem_1[3]; - -#ifdef __cplusplus -} -#endif - -/* Referred external types */ -#include "FGC-DU-PM-Container.h" -#include "EPC-DU-PM-Container.h" - -#endif /* _ServedPlmnPerCellListItem_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ASN1c/SlicePerPlmnPerCellListItem.c b/e2sim/previous/e2apv1sim/ASN1c/SlicePerPlmnPerCellListItem.c deleted file mode 100644 index a463803..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/SlicePerPlmnPerCellListItem.c +++ /dev/null @@ -1,139 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "SlicePerPlmnPerCellListItem.h" - -static int -memb_fQIPERSlicesPerPlmnPerCellList_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - /* Determine the number of elements */ - size = _A_CSEQUENCE_FROM_VOID(sptr)->count; - - if((size >= 1 && size <= 64)) { - /* Perform validation of the inner elements */ - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_oer_constraints_t asn_OER_type_fQIPERSlicesPerPlmnPerCellList_constr_3 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..64)) */}; -static asn_per_constraints_t asn_PER_type_fQIPERSlicesPerPlmnPerCellList_constr_3 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 6, 6, 1, 64 } /* (SIZE(1..64)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_fQIPERSlicesPerPlmnPerCellList_constr_3 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..64)) */}; -static asn_per_constraints_t asn_PER_memb_fQIPERSlicesPerPlmnPerCellList_constr_3 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 6, 6, 1, 64 } /* (SIZE(1..64)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_fQIPERSlicesPerPlmnPerCellList_3[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_FQIPERSlicesPerPlmnPerCellListItem, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_fQIPERSlicesPerPlmnPerCellList_tags_3[] = { - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_fQIPERSlicesPerPlmnPerCellList_specs_3 = { - sizeof(struct SlicePerPlmnPerCellListItem__fQIPERSlicesPerPlmnPerCellList), - offsetof(struct SlicePerPlmnPerCellListItem__fQIPERSlicesPerPlmnPerCellList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_fQIPERSlicesPerPlmnPerCellList_3 = { - "fQIPERSlicesPerPlmnPerCellList", - "fQIPERSlicesPerPlmnPerCellList", - &asn_OP_SEQUENCE_OF, - asn_DEF_fQIPERSlicesPerPlmnPerCellList_tags_3, - sizeof(asn_DEF_fQIPERSlicesPerPlmnPerCellList_tags_3) - /sizeof(asn_DEF_fQIPERSlicesPerPlmnPerCellList_tags_3[0]) - 1, /* 1 */ - asn_DEF_fQIPERSlicesPerPlmnPerCellList_tags_3, /* Same as above */ - sizeof(asn_DEF_fQIPERSlicesPerPlmnPerCellList_tags_3) - /sizeof(asn_DEF_fQIPERSlicesPerPlmnPerCellList_tags_3[0]), /* 2 */ - { &asn_OER_type_fQIPERSlicesPerPlmnPerCellList_constr_3, &asn_PER_type_fQIPERSlicesPerPlmnPerCellList_constr_3, SEQUENCE_OF_constraint }, - asn_MBR_fQIPERSlicesPerPlmnPerCellList_3, - 1, /* Single element */ - &asn_SPC_fQIPERSlicesPerPlmnPerCellList_specs_3 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_SlicePerPlmnPerCellListItem_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct SlicePerPlmnPerCellListItem, sliceID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_SNSSAI, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "sliceID" - }, - { ATF_NOFLAGS, 0, offsetof(struct SlicePerPlmnPerCellListItem, fQIPERSlicesPerPlmnPerCellList), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - 0, - &asn_DEF_fQIPERSlicesPerPlmnPerCellList_3, - 0, - { &asn_OER_memb_fQIPERSlicesPerPlmnPerCellList_constr_3, &asn_PER_memb_fQIPERSlicesPerPlmnPerCellList_constr_3, memb_fQIPERSlicesPerPlmnPerCellList_constraint_1 }, - 0, 0, /* No default value */ - "fQIPERSlicesPerPlmnPerCellList" - }, -}; -static const ber_tlv_tag_t asn_DEF_SlicePerPlmnPerCellListItem_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_SlicePerPlmnPerCellListItem_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sliceID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* fQIPERSlicesPerPlmnPerCellList */ -}; -asn_SEQUENCE_specifics_t asn_SPC_SlicePerPlmnPerCellListItem_specs_1 = { - sizeof(struct SlicePerPlmnPerCellListItem), - offsetof(struct SlicePerPlmnPerCellListItem, _asn_ctx), - asn_MAP_SlicePerPlmnPerCellListItem_tag2el_1, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 2, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_SlicePerPlmnPerCellListItem = { - "SlicePerPlmnPerCellListItem", - "SlicePerPlmnPerCellListItem", - &asn_OP_SEQUENCE, - asn_DEF_SlicePerPlmnPerCellListItem_tags_1, - sizeof(asn_DEF_SlicePerPlmnPerCellListItem_tags_1) - /sizeof(asn_DEF_SlicePerPlmnPerCellListItem_tags_1[0]), /* 1 */ - asn_DEF_SlicePerPlmnPerCellListItem_tags_1, /* Same as above */ - sizeof(asn_DEF_SlicePerPlmnPerCellListItem_tags_1) - /sizeof(asn_DEF_SlicePerPlmnPerCellListItem_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_SlicePerPlmnPerCellListItem_1, - 2, /* Elements count */ - &asn_SPC_SlicePerPlmnPerCellListItem_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/SlicePerPlmnPerCellListItem.h b/e2sim/previous/e2apv1sim/ASN1c/SlicePerPlmnPerCellListItem.h deleted file mode 100644 index 1d704d5..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/SlicePerPlmnPerCellListItem.h +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _SlicePerPlmnPerCellListItem_H_ -#define _SlicePerPlmnPerCellListItem_H_ - - -#include - -/* Including external dependencies */ -#include "SNSSAI.h" -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct FQIPERSlicesPerPlmnPerCellListItem; - -/* SlicePerPlmnPerCellListItem */ -typedef struct SlicePerPlmnPerCellListItem { - SNSSAI_t sliceID; - struct SlicePerPlmnPerCellListItem__fQIPERSlicesPerPlmnPerCellList { - A_SEQUENCE_OF(struct FQIPERSlicesPerPlmnPerCellListItem) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } fQIPERSlicesPerPlmnPerCellList; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} SlicePerPlmnPerCellListItem_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_SlicePerPlmnPerCellListItem; -extern asn_SEQUENCE_specifics_t asn_SPC_SlicePerPlmnPerCellListItem_specs_1; -extern asn_TYPE_member_t asn_MBR_SlicePerPlmnPerCellListItem_1[2]; - -#ifdef __cplusplus -} -#endif - -/* Referred external types */ -#include "FQIPERSlicesPerPlmnPerCellListItem.h" - -#endif /* _SlicePerPlmnPerCellListItem_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ASN1c/SliceToReportListItem.c b/e2sim/previous/e2apv1sim/ASN1c/SliceToReportListItem.c deleted file mode 100644 index ae32ba9..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/SliceToReportListItem.c +++ /dev/null @@ -1,139 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "SliceToReportListItem.h" - -static int -memb_fQIPERSlicesPerPlmnList_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - /* Determine the number of elements */ - size = _A_CSEQUENCE_FROM_VOID(sptr)->count; - - if((size >= 1 && size <= 64)) { - /* Perform validation of the inner elements */ - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_oer_constraints_t asn_OER_type_fQIPERSlicesPerPlmnList_constr_3 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..64)) */}; -static asn_per_constraints_t asn_PER_type_fQIPERSlicesPerPlmnList_constr_3 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 6, 6, 1, 64 } /* (SIZE(1..64)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_fQIPERSlicesPerPlmnList_constr_3 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..64)) */}; -static asn_per_constraints_t asn_PER_memb_fQIPERSlicesPerPlmnList_constr_3 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 6, 6, 1, 64 } /* (SIZE(1..64)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_fQIPERSlicesPerPlmnList_3[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_FQIPERSlicesPerPlmnListItem, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_fQIPERSlicesPerPlmnList_tags_3[] = { - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_fQIPERSlicesPerPlmnList_specs_3 = { - sizeof(struct SliceToReportListItem__fQIPERSlicesPerPlmnList), - offsetof(struct SliceToReportListItem__fQIPERSlicesPerPlmnList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_fQIPERSlicesPerPlmnList_3 = { - "fQIPERSlicesPerPlmnList", - "fQIPERSlicesPerPlmnList", - &asn_OP_SEQUENCE_OF, - asn_DEF_fQIPERSlicesPerPlmnList_tags_3, - sizeof(asn_DEF_fQIPERSlicesPerPlmnList_tags_3) - /sizeof(asn_DEF_fQIPERSlicesPerPlmnList_tags_3[0]) - 1, /* 1 */ - asn_DEF_fQIPERSlicesPerPlmnList_tags_3, /* Same as above */ - sizeof(asn_DEF_fQIPERSlicesPerPlmnList_tags_3) - /sizeof(asn_DEF_fQIPERSlicesPerPlmnList_tags_3[0]), /* 2 */ - { &asn_OER_type_fQIPERSlicesPerPlmnList_constr_3, &asn_PER_type_fQIPERSlicesPerPlmnList_constr_3, SEQUENCE_OF_constraint }, - asn_MBR_fQIPERSlicesPerPlmnList_3, - 1, /* Single element */ - &asn_SPC_fQIPERSlicesPerPlmnList_specs_3 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_SliceToReportListItem_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct SliceToReportListItem, sliceID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_SNSSAI, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "sliceID" - }, - { ATF_NOFLAGS, 0, offsetof(struct SliceToReportListItem, fQIPERSlicesPerPlmnList), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - 0, - &asn_DEF_fQIPERSlicesPerPlmnList_3, - 0, - { &asn_OER_memb_fQIPERSlicesPerPlmnList_constr_3, &asn_PER_memb_fQIPERSlicesPerPlmnList_constr_3, memb_fQIPERSlicesPerPlmnList_constraint_1 }, - 0, 0, /* No default value */ - "fQIPERSlicesPerPlmnList" - }, -}; -static const ber_tlv_tag_t asn_DEF_SliceToReportListItem_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_SliceToReportListItem_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sliceID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* fQIPERSlicesPerPlmnList */ -}; -asn_SEQUENCE_specifics_t asn_SPC_SliceToReportListItem_specs_1 = { - sizeof(struct SliceToReportListItem), - offsetof(struct SliceToReportListItem, _asn_ctx), - asn_MAP_SliceToReportListItem_tag2el_1, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 2, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_SliceToReportListItem = { - "SliceToReportListItem", - "SliceToReportListItem", - &asn_OP_SEQUENCE, - asn_DEF_SliceToReportListItem_tags_1, - sizeof(asn_DEF_SliceToReportListItem_tags_1) - /sizeof(asn_DEF_SliceToReportListItem_tags_1[0]), /* 1 */ - asn_DEF_SliceToReportListItem_tags_1, /* Same as above */ - sizeof(asn_DEF_SliceToReportListItem_tags_1) - /sizeof(asn_DEF_SliceToReportListItem_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_SliceToReportListItem_1, - 2, /* Elements count */ - &asn_SPC_SliceToReportListItem_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/SliceToReportListItem.h b/e2sim/previous/e2apv1sim/ASN1c/SliceToReportListItem.h deleted file mode 100644 index c25b20a..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/SliceToReportListItem.h +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _SliceToReportListItem_H_ -#define _SliceToReportListItem_H_ - - -#include - -/* Including external dependencies */ -#include "SNSSAI.h" -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct FQIPERSlicesPerPlmnListItem; - -/* SliceToReportListItem */ -typedef struct SliceToReportListItem { - SNSSAI_t sliceID; - struct SliceToReportListItem__fQIPERSlicesPerPlmnList { - A_SEQUENCE_OF(struct FQIPERSlicesPerPlmnListItem) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } fQIPERSlicesPerPlmnList; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} SliceToReportListItem_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_SliceToReportListItem; -extern asn_SEQUENCE_specifics_t asn_SPC_SliceToReportListItem_specs_1; -extern asn_TYPE_member_t asn_MBR_SliceToReportListItem_1[2]; - -#ifdef __cplusplus -} -#endif - -/* Referred external types */ -#include "FQIPERSlicesPerPlmnListItem.h" - -#endif /* _SliceToReportListItem_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ASN1c/SuccessfulOutcome.c b/e2sim/previous/e2apv1sim/ASN1c/SuccessfulOutcome.c deleted file mode 100644 index 55bad07..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/SuccessfulOutcome.c +++ /dev/null @@ -1,359 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Descriptions" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "SuccessfulOutcome.h" - -static const long asn_VAL_1_id_RICsubscription = 8; -static const long asn_VAL_1_reject = 0; -static const long asn_VAL_2_id_RICsubscriptionDelete = 9; -static const long asn_VAL_2_reject = 0; -static const long asn_VAL_3_id_RICserviceUpdate = 7; -static const long asn_VAL_3_reject = 0; -static const long asn_VAL_4_id_RICcontrol = 4; -static const long asn_VAL_4_reject = 0; -static const long asn_VAL_5_id_E2setup = 1; -static const long asn_VAL_5_reject = 0; -static const long asn_VAL_6_id_Reset = 3; -static const long asn_VAL_6_reject = 0; -static const long asn_VAL_7_id_RICindication = 5; -static const long asn_VAL_7_ignore = 1; -static const long asn_VAL_8_id_RICserviceQuery = 6; -static const long asn_VAL_8_ignore = 1; -static const long asn_VAL_9_id_ErrorIndication = 2; -static const long asn_VAL_9_ignore = 1; -static const asn_ioc_cell_t asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1_rows[] = { - { "&InitiatingMessage", aioc__type, &asn_DEF_RICsubscriptionRequest }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionResponse }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_1_id_RICsubscription }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_1_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_RICsubscriptionDeleteRequest }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionDeleteResponse }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionDeleteFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_2_id_RICsubscriptionDelete }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_2_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_RICserviceUpdate }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_RICserviceUpdateAcknowledge }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RICserviceUpdateFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_3_id_RICserviceUpdate }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_3_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_RICcontrolRequest }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_RICcontrolAcknowledge }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RICcontrolFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_4_id_RICcontrol }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_4_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_E2setupRequest }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_E2setupResponse }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_E2setupFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_5_id_E2setup }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_5_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_ResetRequest }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_ResetResponse }, - { "&UnsuccessfulOutcome", }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_6_id_Reset }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_6_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_RICindication }, - { "&SuccessfulOutcome", }, - { "&UnsuccessfulOutcome", }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_7_id_RICindication }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_7_ignore }, - { "&InitiatingMessage", aioc__type, &asn_DEF_RICserviceQuery }, - { "&SuccessfulOutcome", }, - { "&UnsuccessfulOutcome", }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_8_id_RICserviceQuery }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_8_ignore }, - { "&InitiatingMessage", aioc__type, &asn_DEF_ErrorIndication }, - { "&SuccessfulOutcome", }, - { "&UnsuccessfulOutcome", }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_9_id_ErrorIndication }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_9_ignore } -}; -static const asn_ioc_set_t asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1[] = { - { 9, 5, asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1_rows } -}; -static int -memb_procedureCode_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 255)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_SuccessfulOutcome_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1; - size_t constraining_column = 3; /* &procedureCode */ - size_t for_column = 4; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SuccessfulOutcome, procedureCode)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_SuccessfulOutcome_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1; - size_t constraining_column = 3; /* &procedureCode */ - size_t for_column = 1; /* &SuccessfulOutcome */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SuccessfulOutcome, procedureCode)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_per_constraints_t asn_PER_memb_procedureCode_constr_2 CC_NOTUSED = { - { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_3 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_4 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_value_4[] = { - { ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome__value, choice.RICsubscriptionResponse), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICsubscriptionResponse, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICsubscriptionResponse" - }, - { ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome__value, choice.RICsubscriptionDeleteResponse), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICsubscriptionDeleteResponse, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICsubscriptionDeleteResponse" - }, - { ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome__value, choice.RICserviceUpdateAcknowledge), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICserviceUpdateAcknowledge, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICserviceUpdateAcknowledge" - }, - { ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome__value, choice.RICcontrolAcknowledge), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICcontrolAcknowledge, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICcontrolAcknowledge" - }, - { ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome__value, choice.E2setupResponse), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E2setupResponse, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "E2setupResponse" - }, - { ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome__value, choice.ResetResponse), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ResetResponse, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ResetResponse" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_4[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 5 }, /* RICsubscriptionResponse */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 4 }, /* RICsubscriptionDeleteResponse */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -2, 3 }, /* RICserviceUpdateAcknowledge */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -3, 2 }, /* RICcontrolAcknowledge */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, -4, 1 }, /* E2setupResponse */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 5, -5, 0 } /* ResetResponse */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_4 = { - sizeof(struct SuccessfulOutcome__value), - offsetof(struct SuccessfulOutcome__value, _asn_ctx), - offsetof(struct SuccessfulOutcome__value, present), - sizeof(((struct SuccessfulOutcome__value *)0)->present), - asn_MAP_value_tag2el_4, - 6, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_4 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_4, - 6, /* Elements count */ - &asn_SPC_value_specs_4 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_SuccessfulOutcome_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome, procedureCode), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProcedureCode, - 0, - { 0, &asn_PER_memb_procedureCode_constr_2, memb_procedureCode_constraint_1 }, - 0, 0, /* No default value */ - "procedureCode" - }, - { ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_SuccessfulOutcome_criticality_type, - { 0, &asn_PER_memb_criticality_constr_3, memb_criticality_constraint_1 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_4, - select_SuccessfulOutcome_value_type, - { 0, &asn_PER_memb_value_constr_4, memb_value_constraint_1 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_SuccessfulOutcome_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_SuccessfulOutcome_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* procedureCode */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_SuccessfulOutcome_specs_1 = { - sizeof(struct SuccessfulOutcome), - offsetof(struct SuccessfulOutcome, _asn_ctx), - asn_MAP_SuccessfulOutcome_tag2el_1, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_SuccessfulOutcome = { - "SuccessfulOutcome", - "SuccessfulOutcome", - &asn_OP_SEQUENCE, - asn_DEF_SuccessfulOutcome_tags_1, - sizeof(asn_DEF_SuccessfulOutcome_tags_1) - /sizeof(asn_DEF_SuccessfulOutcome_tags_1[0]), /* 1 */ - asn_DEF_SuccessfulOutcome_tags_1, /* Same as above */ - sizeof(asn_DEF_SuccessfulOutcome_tags_1) - /sizeof(asn_DEF_SuccessfulOutcome_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_SuccessfulOutcome_1, - 3, /* Elements count */ - &asn_SPC_SuccessfulOutcome_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/SuccessfulOutcome.h b/e2sim/previous/e2apv1sim/ASN1c/SuccessfulOutcome.h deleted file mode 100644 index fd04d94..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/SuccessfulOutcome.h +++ /dev/null @@ -1,91 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Descriptions" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _SuccessfulOutcome_H_ -#define _SuccessfulOutcome_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProcedureCode.h" -#include "Criticality.h" -#include "ANY.h" -#include "asn_ioc.h" -#include "RICsubscriptionRequest.h" -#include "RICsubscriptionResponse.h" -#include "RICsubscriptionFailure.h" -#include "RICsubscriptionDeleteRequest.h" -#include "RICsubscriptionDeleteResponse.h" -#include "RICsubscriptionDeleteFailure.h" -#include "RICserviceUpdate.h" -#include "RICserviceUpdateAcknowledge.h" -#include "RICserviceUpdateFailure.h" -#include "RICcontrolRequest.h" -#include "RICcontrolAcknowledge.h" -#include "RICcontrolFailure.h" -#include "E2setupRequest.h" -#include "E2setupResponse.h" -#include "E2setupFailure.h" -#include "ResetRequest.h" -#include "ResetResponse.h" -#include "RICindication.h" -#include "RICserviceQuery.h" -#include "ErrorIndication.h" -#include "OPEN_TYPE.h" -#include "constr_CHOICE.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum SuccessfulOutcome__value_PR { - SuccessfulOutcome__value_PR_NOTHING, /* No components present */ - SuccessfulOutcome__value_PR_RICsubscriptionResponse, - SuccessfulOutcome__value_PR_RICsubscriptionDeleteResponse, - SuccessfulOutcome__value_PR_RICserviceUpdateAcknowledge, - SuccessfulOutcome__value_PR_RICcontrolAcknowledge, - SuccessfulOutcome__value_PR_E2setupResponse, - SuccessfulOutcome__value_PR_ResetResponse -} SuccessfulOutcome__value_PR; - -/* SuccessfulOutcome */ -typedef struct SuccessfulOutcome { - ProcedureCode_t procedureCode; - Criticality_t criticality; - struct SuccessfulOutcome__value { - SuccessfulOutcome__value_PR present; - union SuccessfulOutcome__value_u { - RICsubscriptionResponse_t RICsubscriptionResponse; - RICsubscriptionDeleteResponse_t RICsubscriptionDeleteResponse; - RICserviceUpdateAcknowledge_t RICserviceUpdateAcknowledge; - RICcontrolAcknowledge_t RICcontrolAcknowledge; - E2setupResponse_t E2setupResponse; - ResetResponse_t ResetResponse; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} SuccessfulOutcome_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_SuccessfulOutcome; -extern asn_SEQUENCE_specifics_t asn_SPC_SuccessfulOutcome_specs_1; -extern asn_TYPE_member_t asn_MBR_SuccessfulOutcome_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _SuccessfulOutcome_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ASN1c/TimeToWait.c b/e2sim/previous/e2apv1sim/ASN1c/TimeToWait.c deleted file mode 100644 index c4eec34..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/TimeToWait.c +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "TimeToWait.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -static asn_per_constraints_t asn_PER_type_TimeToWait_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 5 } /* (0..5,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_TimeToWait_value2enum_1[] = { - { 0, 3, "v1s" }, - { 1, 3, "v2s" }, - { 2, 3, "v5s" }, - { 3, 4, "v10s" }, - { 4, 4, "v20s" }, - { 5, 4, "v60s" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_TimeToWait_enum2value_1[] = { - 3, /* v10s(3) */ - 0, /* v1s(0) */ - 4, /* v20s(4) */ - 1, /* v2s(1) */ - 2, /* v5s(2) */ - 5 /* v60s(5) */ - /* This list is extensible */ -}; -static const asn_INTEGER_specifics_t asn_SPC_TimeToWait_specs_1 = { - asn_MAP_TimeToWait_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_TimeToWait_enum2value_1, /* N => "tag"; sorted by N */ - 6, /* Number of elements in the maps */ - 7, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_TimeToWait_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_TimeToWait = { - "TimeToWait", - "TimeToWait", - &asn_OP_NativeEnumerated, - asn_DEF_TimeToWait_tags_1, - sizeof(asn_DEF_TimeToWait_tags_1) - /sizeof(asn_DEF_TimeToWait_tags_1[0]), /* 1 */ - asn_DEF_TimeToWait_tags_1, /* Same as above */ - sizeof(asn_DEF_TimeToWait_tags_1) - /sizeof(asn_DEF_TimeToWait_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_TimeToWait_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_TimeToWait_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/TimeToWait.h b/e2sim/previous/e2apv1sim/ASN1c/TimeToWait.h deleted file mode 100644 index 6fad8ee..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/TimeToWait.h +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _TimeToWait_H_ -#define _TimeToWait_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum TimeToWait { - TimeToWait_v1s = 0, - TimeToWait_v2s = 1, - TimeToWait_v5s = 2, - TimeToWait_v10s = 3, - TimeToWait_v20s = 4, - TimeToWait_v60s = 5 - /* - * Enumeration is extensible - */ -} e_TimeToWait; - -/* TimeToWait */ -typedef long TimeToWait_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_TimeToWait; -asn_struct_free_f TimeToWait_free; -asn_struct_print_f TimeToWait_print; -asn_constr_check_f TimeToWait_constraint; -ber_type_decoder_f TimeToWait_decode_ber; -der_type_encoder_f TimeToWait_encode_der; -xer_type_decoder_f TimeToWait_decode_xer; -xer_type_encoder_f TimeToWait_encode_xer; -per_type_decoder_f TimeToWait_decode_uper; -per_type_encoder_f TimeToWait_encode_uper; -per_type_decoder_f TimeToWait_decode_aper; -per_type_encoder_f TimeToWait_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _TimeToWait_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ASN1c/Timestamp.c b/e2sim/previous/e2apv1sim/ASN1c/Timestamp.c deleted file mode 100644 index 4087751..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/Timestamp.c +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "Timestamp.h" - -/* - * This type is implemented using OCTET_STRING, - * so here we adjust the DEF accordingly. - */ -static const ber_tlv_tag_t asn_DEF_Timestamp_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_Timestamp = { - "Timestamp", - "Timestamp", - &asn_OP_OCTET_STRING, - asn_DEF_Timestamp_tags_1, - sizeof(asn_DEF_Timestamp_tags_1) - /sizeof(asn_DEF_Timestamp_tags_1[0]), /* 1 */ - asn_DEF_Timestamp_tags_1, /* Same as above */ - sizeof(asn_DEF_Timestamp_tags_1) - /sizeof(asn_DEF_Timestamp_tags_1[0]), /* 1 */ - { 0, 0, OCTET_STRING_constraint }, - 0, 0, /* No members */ - &asn_SPC_OCTET_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/Timestamp.h b/e2sim/previous/e2apv1sim/ASN1c/Timestamp.h deleted file mode 100644 index f77ac4a..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/Timestamp.h +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _Timestamp_H_ -#define _Timestamp_H_ - - -#include - -/* Including external dependencies */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Timestamp */ -typedef OCTET_STRING_t Timestamp_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_Timestamp; -asn_struct_free_f Timestamp_free; -asn_struct_print_f Timestamp_print; -asn_constr_check_f Timestamp_constraint; -ber_type_decoder_f Timestamp_decode_ber; -der_type_encoder_f Timestamp_encode_der; -xer_type_decoder_f Timestamp_decode_xer; -xer_type_encoder_f Timestamp_encode_xer; -oer_type_decoder_f Timestamp_decode_oer; -oer_type_encoder_f Timestamp_encode_oer; -per_type_decoder_f Timestamp_decode_uper; -per_type_encoder_f Timestamp_encode_uper; -per_type_decoder_f Timestamp_decode_aper; -per_type_encoder_f Timestamp_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _Timestamp_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ASN1c/Trigger-ConditionIE-Item.c b/e2sim/previous/e2apv1sim/ASN1c/Trigger-ConditionIE-Item.c deleted file mode 100644 index 069fd1d..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/Trigger-ConditionIE-Item.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "Trigger-ConditionIE-Item.h" - -asn_TYPE_member_t asn_MBR_Trigger_ConditionIE_Item_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct Trigger_ConditionIE_Item, report_Period_IE), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RT_Period_IE, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "report-Period-IE" - }, -}; -static const ber_tlv_tag_t asn_DEF_Trigger_ConditionIE_Item_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_Trigger_ConditionIE_Item_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* report-Period-IE */ -}; -asn_SEQUENCE_specifics_t asn_SPC_Trigger_ConditionIE_Item_specs_1 = { - sizeof(struct Trigger_ConditionIE_Item), - offsetof(struct Trigger_ConditionIE_Item, _asn_ctx), - asn_MAP_Trigger_ConditionIE_Item_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_Trigger_ConditionIE_Item = { - "Trigger-ConditionIE-Item", - "Trigger-ConditionIE-Item", - &asn_OP_SEQUENCE, - asn_DEF_Trigger_ConditionIE_Item_tags_1, - sizeof(asn_DEF_Trigger_ConditionIE_Item_tags_1) - /sizeof(asn_DEF_Trigger_ConditionIE_Item_tags_1[0]), /* 1 */ - asn_DEF_Trigger_ConditionIE_Item_tags_1, /* Same as above */ - sizeof(asn_DEF_Trigger_ConditionIE_Item_tags_1) - /sizeof(asn_DEF_Trigger_ConditionIE_Item_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_Trigger_ConditionIE_Item_1, - 1, /* Elements count */ - &asn_SPC_Trigger_ConditionIE_Item_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/Trigger-ConditionIE-Item.h b/e2sim/previous/e2apv1sim/ASN1c/Trigger-ConditionIE-Item.h deleted file mode 100644 index 173b46a..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/Trigger-ConditionIE-Item.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _Trigger_ConditionIE_Item_H_ -#define _Trigger_ConditionIE_Item_H_ - - -#include - -/* Including external dependencies */ -#include "RT-Period-IE.h" -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Trigger-ConditionIE-Item */ -typedef struct Trigger_ConditionIE_Item { - RT_Period_IE_t report_Period_IE; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} Trigger_ConditionIE_Item_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_Trigger_ConditionIE_Item; -extern asn_SEQUENCE_specifics_t asn_SPC_Trigger_ConditionIE_Item_specs_1; -extern asn_TYPE_member_t asn_MBR_Trigger_ConditionIE_Item_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _Trigger_ConditionIE_Item_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ASN1c/TriggeringMessage.c b/e2sim/previous/e2apv1sim/ASN1c/TriggeringMessage.c deleted file mode 100644 index 45dcd5f..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/TriggeringMessage.c +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-CommonDataTypes" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "TriggeringMessage.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_TriggeringMessage_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_TriggeringMessage_value2enum_1[] = { - { 0, 18, "initiating-message" }, - { 1, 18, "successful-outcome" }, - { 2, 21, "unsuccessfull-outcome" } -}; -static const unsigned int asn_MAP_TriggeringMessage_enum2value_1[] = { - 0, /* initiating-message(0) */ - 1, /* successful-outcome(1) */ - 2 /* unsuccessfull-outcome(2) */ -}; -const asn_INTEGER_specifics_t asn_SPC_TriggeringMessage_specs_1 = { - asn_MAP_TriggeringMessage_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_TriggeringMessage_enum2value_1, /* N => "tag"; sorted by N */ - 3, /* Number of elements in the maps */ - 0, /* Enumeration is not extensible */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_TriggeringMessage_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_TriggeringMessage = { - "TriggeringMessage", - "TriggeringMessage", - &asn_OP_NativeEnumerated, - asn_DEF_TriggeringMessage_tags_1, - sizeof(asn_DEF_TriggeringMessage_tags_1) - /sizeof(asn_DEF_TriggeringMessage_tags_1[0]), /* 1 */ - asn_DEF_TriggeringMessage_tags_1, /* Same as above */ - sizeof(asn_DEF_TriggeringMessage_tags_1) - /sizeof(asn_DEF_TriggeringMessage_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_TriggeringMessage_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_TriggeringMessage_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/TriggeringMessage.h b/e2sim/previous/e2apv1sim/ASN1c/TriggeringMessage.h deleted file mode 100644 index 734cefa..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/TriggeringMessage.h +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-CommonDataTypes" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _TriggeringMessage_H_ -#define _TriggeringMessage_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum TriggeringMessage { - TriggeringMessage_initiating_message = 0, - TriggeringMessage_successful_outcome = 1, - TriggeringMessage_unsuccessfull_outcome = 2 -} e_TriggeringMessage; - -/* TriggeringMessage */ -typedef long TriggeringMessage_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_TriggeringMessage_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_TriggeringMessage; -extern const asn_INTEGER_specifics_t asn_SPC_TriggeringMessage_specs_1; -asn_struct_free_f TriggeringMessage_free; -asn_struct_print_f TriggeringMessage_print; -asn_constr_check_f TriggeringMessage_constraint; -ber_type_decoder_f TriggeringMessage_decode_ber; -der_type_encoder_f TriggeringMessage_encode_der; -xer_type_decoder_f TriggeringMessage_decode_xer; -xer_type_encoder_f TriggeringMessage_encode_xer; -per_type_decoder_f TriggeringMessage_decode_uper; -per_type_encoder_f TriggeringMessage_encode_uper; -per_type_decoder_f TriggeringMessage_decode_aper; -per_type_encoder_f TriggeringMessage_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _TriggeringMessage_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ASN1c/TypeOfError.c b/e2sim/previous/e2apv1sim/ASN1c/TypeOfError.c deleted file mode 100644 index 76beba5..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/TypeOfError.c +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "TypeOfError.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_TypeOfError_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_TypeOfError_value2enum_1[] = { - { 0, 14, "not-understood" }, - { 1, 7, "missing" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_TypeOfError_enum2value_1[] = { - 1, /* missing(1) */ - 0 /* not-understood(0) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_TypeOfError_specs_1 = { - asn_MAP_TypeOfError_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_TypeOfError_enum2value_1, /* N => "tag"; sorted by N */ - 2, /* Number of elements in the maps */ - 3, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_TypeOfError_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_TypeOfError = { - "TypeOfError", - "TypeOfError", - &asn_OP_NativeEnumerated, - asn_DEF_TypeOfError_tags_1, - sizeof(asn_DEF_TypeOfError_tags_1) - /sizeof(asn_DEF_TypeOfError_tags_1[0]), /* 1 */ - asn_DEF_TypeOfError_tags_1, /* Same as above */ - sizeof(asn_DEF_TypeOfError_tags_1) - /sizeof(asn_DEF_TypeOfError_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_TypeOfError_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_TypeOfError_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/TypeOfError.h b/e2sim/previous/e2apv1sim/ASN1c/TypeOfError.h deleted file mode 100644 index 9451b1e..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/TypeOfError.h +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _TypeOfError_H_ -#define _TypeOfError_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum TypeOfError { - TypeOfError_not_understood = 0, - TypeOfError_missing = 1 - /* - * Enumeration is extensible - */ -} e_TypeOfError; - -/* TypeOfError */ -typedef long TypeOfError_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_TypeOfError_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_TypeOfError; -extern const asn_INTEGER_specifics_t asn_SPC_TypeOfError_specs_1; -asn_struct_free_f TypeOfError_free; -asn_struct_print_f TypeOfError_print; -asn_constr_check_f TypeOfError_constraint; -ber_type_decoder_f TypeOfError_decode_ber; -der_type_encoder_f TypeOfError_encode_der; -xer_type_decoder_f TypeOfError_decode_xer; -xer_type_encoder_f TypeOfError_encode_xer; -per_type_decoder_f TypeOfError_decode_uper; -per_type_encoder_f TypeOfError_encode_uper; -per_type_decoder_f TypeOfError_decode_aper; -per_type_encoder_f TypeOfError_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _TypeOfError_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ASN1c/UE-Report-Type.c b/e2sim/previous/e2apv1sim/ASN1c/UE-Report-Type.c deleted file mode 100644 index 1966c27..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/UE-Report-Type.c +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "UE-Report-Type.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -static asn_oer_constraints_t asn_OER_type_UE_Report_Type_constr_1 CC_NOTUSED = { - { 0, 0 }, - -1}; -asn_per_constraints_t asn_PER_type_UE_Report_Type_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 2 } /* (0..2,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_UE_Report_Type_value2enum_1[] = { - { 0, 17, "oDU-Report-Per-UE" }, - { 1, 20, "oCU-CP-Report-Per-UE" }, - { 2, 20, "oCU-UP-Report-Per-UE" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_UE_Report_Type_enum2value_1[] = { - 1, /* oCU-CP-Report-Per-UE(1) */ - 2, /* oCU-UP-Report-Per-UE(2) */ - 0 /* oDU-Report-Per-UE(0) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_UE_Report_Type_specs_1 = { - asn_MAP_UE_Report_Type_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_UE_Report_Type_enum2value_1, /* N => "tag"; sorted by N */ - 3, /* Number of elements in the maps */ - 4, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_UE_Report_Type_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_UE_Report_Type = { - "UE-Report-Type", - "UE-Report-Type", - &asn_OP_NativeEnumerated, - asn_DEF_UE_Report_Type_tags_1, - sizeof(asn_DEF_UE_Report_Type_tags_1) - /sizeof(asn_DEF_UE_Report_Type_tags_1[0]), /* 1 */ - asn_DEF_UE_Report_Type_tags_1, /* Same as above */ - sizeof(asn_DEF_UE_Report_Type_tags_1) - /sizeof(asn_DEF_UE_Report_Type_tags_1[0]), /* 1 */ - { &asn_OER_type_UE_Report_Type_constr_1, &asn_PER_type_UE_Report_Type_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_UE_Report_Type_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/UE-Report-Type.h b/e2sim/previous/e2apv1sim/ASN1c/UE-Report-Type.h deleted file mode 100644 index 02e7cb5..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/UE-Report-Type.h +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _UE_Report_Type_H_ -#define _UE_Report_Type_H_ - - -#include - -/* Including external dependencies */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum UE_Report_Type { - UE_Report_Type_oDU_Report_Per_UE = 0, - UE_Report_Type_oCU_CP_Report_Per_UE = 1, - UE_Report_Type_oCU_UP_Report_Per_UE = 2 - /* - * Enumeration is extensible - */ -} e_UE_Report_Type; - -/* UE-Report-Type */ -typedef long UE_Report_Type_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_UE_Report_Type_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_UE_Report_Type; -extern const asn_INTEGER_specifics_t asn_SPC_UE_Report_Type_specs_1; -asn_struct_free_f UE_Report_Type_free; -asn_struct_print_f UE_Report_Type_print; -asn_constr_check_f UE_Report_Type_constraint; -ber_type_decoder_f UE_Report_Type_decode_ber; -der_type_encoder_f UE_Report_Type_encode_der; -xer_type_decoder_f UE_Report_Type_decode_xer; -xer_type_encoder_f UE_Report_Type_encode_xer; -oer_type_decoder_f UE_Report_Type_decode_oer; -oer_type_encoder_f UE_Report_Type_encode_oer; -per_type_decoder_f UE_Report_Type_decode_uper; -per_type_encoder_f UE_Report_Type_encode_uper; -per_type_decoder_f UE_Report_Type_decode_aper; -per_type_encoder_f UE_Report_Type_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _UE_Report_Type_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ASN1c/UnsuccessfulOutcome.c b/e2sim/previous/e2apv1sim/ASN1c/UnsuccessfulOutcome.c deleted file mode 100644 index 327134e..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/UnsuccessfulOutcome.c +++ /dev/null @@ -1,349 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Descriptions" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "UnsuccessfulOutcome.h" - -static const long asn_VAL_1_id_RICsubscription = 8; -static const long asn_VAL_1_reject = 0; -static const long asn_VAL_2_id_RICsubscriptionDelete = 9; -static const long asn_VAL_2_reject = 0; -static const long asn_VAL_3_id_RICserviceUpdate = 7; -static const long asn_VAL_3_reject = 0; -static const long asn_VAL_4_id_RICcontrol = 4; -static const long asn_VAL_4_reject = 0; -static const long asn_VAL_5_id_E2setup = 1; -static const long asn_VAL_5_reject = 0; -static const long asn_VAL_6_id_Reset = 3; -static const long asn_VAL_6_reject = 0; -static const long asn_VAL_7_id_RICindication = 5; -static const long asn_VAL_7_ignore = 1; -static const long asn_VAL_8_id_RICserviceQuery = 6; -static const long asn_VAL_8_ignore = 1; -static const long asn_VAL_9_id_ErrorIndication = 2; -static const long asn_VAL_9_ignore = 1; -static const asn_ioc_cell_t asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1_rows[] = { - { "&InitiatingMessage", aioc__type, &asn_DEF_RICsubscriptionRequest }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionResponse }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_1_id_RICsubscription }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_1_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_RICsubscriptionDeleteRequest }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionDeleteResponse }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionDeleteFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_2_id_RICsubscriptionDelete }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_2_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_RICserviceUpdate }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_RICserviceUpdateAcknowledge }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RICserviceUpdateFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_3_id_RICserviceUpdate }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_3_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_RICcontrolRequest }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_RICcontrolAcknowledge }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RICcontrolFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_4_id_RICcontrol }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_4_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_E2setupRequest }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_E2setupResponse }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_E2setupFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_5_id_E2setup }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_5_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_ResetRequest }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_ResetResponse }, - { "&UnsuccessfulOutcome", }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_6_id_Reset }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_6_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_RICindication }, - { "&SuccessfulOutcome", }, - { "&UnsuccessfulOutcome", }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_7_id_RICindication }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_7_ignore }, - { "&InitiatingMessage", aioc__type, &asn_DEF_RICserviceQuery }, - { "&SuccessfulOutcome", }, - { "&UnsuccessfulOutcome", }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_8_id_RICserviceQuery }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_8_ignore }, - { "&InitiatingMessage", aioc__type, &asn_DEF_ErrorIndication }, - { "&SuccessfulOutcome", }, - { "&UnsuccessfulOutcome", }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_9_id_ErrorIndication }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_9_ignore } -}; -static const asn_ioc_set_t asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1[] = { - { 9, 5, asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1_rows } -}; -static int -memb_procedureCode_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 255)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_UnsuccessfulOutcome_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1; - size_t constraining_column = 3; /* &procedureCode */ - size_t for_column = 4; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct UnsuccessfulOutcome, procedureCode)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_UnsuccessfulOutcome_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1; - size_t constraining_column = 3; /* &procedureCode */ - size_t for_column = 2; /* &UnsuccessfulOutcome */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct UnsuccessfulOutcome, procedureCode)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_per_constraints_t asn_PER_memb_procedureCode_constr_2 CC_NOTUSED = { - { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_3 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_4 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_value_4[] = { - { ATF_NOFLAGS, 0, offsetof(struct UnsuccessfulOutcome__value, choice.RICsubscriptionFailure), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICsubscriptionFailure, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICsubscriptionFailure" - }, - { ATF_NOFLAGS, 0, offsetof(struct UnsuccessfulOutcome__value, choice.RICsubscriptionDeleteFailure), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICsubscriptionDeleteFailure, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICsubscriptionDeleteFailure" - }, - { ATF_NOFLAGS, 0, offsetof(struct UnsuccessfulOutcome__value, choice.RICserviceUpdateFailure), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICserviceUpdateFailure, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICserviceUpdateFailure" - }, - { ATF_NOFLAGS, 0, offsetof(struct UnsuccessfulOutcome__value, choice.RICcontrolFailure), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICcontrolFailure, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICcontrolFailure" - }, - { ATF_NOFLAGS, 0, offsetof(struct UnsuccessfulOutcome__value, choice.E2setupFailure), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E2setupFailure, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "E2setupFailure" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_4[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 4 }, /* RICsubscriptionFailure */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 3 }, /* RICsubscriptionDeleteFailure */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -2, 2 }, /* RICserviceUpdateFailure */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -3, 1 }, /* RICcontrolFailure */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, -4, 0 } /* E2setupFailure */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_4 = { - sizeof(struct UnsuccessfulOutcome__value), - offsetof(struct UnsuccessfulOutcome__value, _asn_ctx), - offsetof(struct UnsuccessfulOutcome__value, present), - sizeof(((struct UnsuccessfulOutcome__value *)0)->present), - asn_MAP_value_tag2el_4, - 5, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_4 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_4, - 5, /* Elements count */ - &asn_SPC_value_specs_4 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_UnsuccessfulOutcome_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct UnsuccessfulOutcome, procedureCode), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProcedureCode, - 0, - { 0, &asn_PER_memb_procedureCode_constr_2, memb_procedureCode_constraint_1 }, - 0, 0, /* No default value */ - "procedureCode" - }, - { ATF_NOFLAGS, 0, offsetof(struct UnsuccessfulOutcome, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_UnsuccessfulOutcome_criticality_type, - { 0, &asn_PER_memb_criticality_constr_3, memb_criticality_constraint_1 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct UnsuccessfulOutcome, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_4, - select_UnsuccessfulOutcome_value_type, - { 0, &asn_PER_memb_value_constr_4, memb_value_constraint_1 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_UnsuccessfulOutcome_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_UnsuccessfulOutcome_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* procedureCode */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_UnsuccessfulOutcome_specs_1 = { - sizeof(struct UnsuccessfulOutcome), - offsetof(struct UnsuccessfulOutcome, _asn_ctx), - asn_MAP_UnsuccessfulOutcome_tag2el_1, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_UnsuccessfulOutcome = { - "UnsuccessfulOutcome", - "UnsuccessfulOutcome", - &asn_OP_SEQUENCE, - asn_DEF_UnsuccessfulOutcome_tags_1, - sizeof(asn_DEF_UnsuccessfulOutcome_tags_1) - /sizeof(asn_DEF_UnsuccessfulOutcome_tags_1[0]), /* 1 */ - asn_DEF_UnsuccessfulOutcome_tags_1, /* Same as above */ - sizeof(asn_DEF_UnsuccessfulOutcome_tags_1) - /sizeof(asn_DEF_UnsuccessfulOutcome_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_UnsuccessfulOutcome_1, - 3, /* Elements count */ - &asn_SPC_UnsuccessfulOutcome_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/UnsuccessfulOutcome.h b/e2sim/previous/e2apv1sim/ASN1c/UnsuccessfulOutcome.h deleted file mode 100644 index 7762209..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/UnsuccessfulOutcome.h +++ /dev/null @@ -1,89 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Descriptions" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _UnsuccessfulOutcome_H_ -#define _UnsuccessfulOutcome_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProcedureCode.h" -#include "Criticality.h" -#include "ANY.h" -#include "asn_ioc.h" -#include "RICsubscriptionRequest.h" -#include "RICsubscriptionResponse.h" -#include "RICsubscriptionFailure.h" -#include "RICsubscriptionDeleteRequest.h" -#include "RICsubscriptionDeleteResponse.h" -#include "RICsubscriptionDeleteFailure.h" -#include "RICserviceUpdate.h" -#include "RICserviceUpdateAcknowledge.h" -#include "RICserviceUpdateFailure.h" -#include "RICcontrolRequest.h" -#include "RICcontrolAcknowledge.h" -#include "RICcontrolFailure.h" -#include "E2setupRequest.h" -#include "E2setupResponse.h" -#include "E2setupFailure.h" -#include "ResetRequest.h" -#include "ResetResponse.h" -#include "RICindication.h" -#include "RICserviceQuery.h" -#include "ErrorIndication.h" -#include "OPEN_TYPE.h" -#include "constr_CHOICE.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum UnsuccessfulOutcome__value_PR { - UnsuccessfulOutcome__value_PR_NOTHING, /* No components present */ - UnsuccessfulOutcome__value_PR_RICsubscriptionFailure, - UnsuccessfulOutcome__value_PR_RICsubscriptionDeleteFailure, - UnsuccessfulOutcome__value_PR_RICserviceUpdateFailure, - UnsuccessfulOutcome__value_PR_RICcontrolFailure, - UnsuccessfulOutcome__value_PR_E2setupFailure -} UnsuccessfulOutcome__value_PR; - -/* UnsuccessfulOutcome */ -typedef struct UnsuccessfulOutcome { - ProcedureCode_t procedureCode; - Criticality_t criticality; - struct UnsuccessfulOutcome__value { - UnsuccessfulOutcome__value_PR present; - union UnsuccessfulOutcome__value_u { - RICsubscriptionFailure_t RICsubscriptionFailure; - RICsubscriptionDeleteFailure_t RICsubscriptionDeleteFailure; - RICserviceUpdateFailure_t RICserviceUpdateFailure; - RICcontrolFailure_t RICcontrolFailure; - E2setupFailure_t E2setupFailure; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} UnsuccessfulOutcome_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_UnsuccessfulOutcome; -extern asn_SEQUENCE_specifics_t asn_SPC_UnsuccessfulOutcome_specs_1; -extern asn_TYPE_member_t asn_MBR_UnsuccessfulOutcome_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _UnsuccessfulOutcome_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ASN1c/asn_SEQUENCE_OF.c b/e2sim/previous/e2apv1sim/ASN1c/asn_SEQUENCE_OF.c deleted file mode 100644 index ec952fc..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/asn_SEQUENCE_OF.c +++ /dev/null @@ -1,41 +0,0 @@ -/*- - * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include - -typedef A_SEQUENCE_OF(void) asn_sequence; - -void -asn_sequence_del(void *asn_sequence_of_x, int number, int _do_free) { - asn_sequence *as = (asn_sequence *)asn_sequence_of_x; - - if(as) { - void *ptr; - int n; - - if(number < 0 || number >= as->count) - return; /* Nothing to delete */ - - if(_do_free && as->free) { - ptr = as->array[number]; - } else { - ptr = 0; - } - - /* - * Shift all elements to the left to hide the gap. - */ - --as->count; - for(n = number; n < as->count; n++) - as->array[n] = as->array[n+1]; - - /* - * Invoke the third-party function only when the state - * of the parent structure is consistent. - */ - if(ptr) as->free(ptr); - } -} - diff --git a/e2sim/previous/e2apv1sim/ASN1c/asn_SEQUENCE_OF.h b/e2sim/previous/e2apv1sim/ASN1c/asn_SEQUENCE_OF.h deleted file mode 100644 index e35bc44..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/asn_SEQUENCE_OF.h +++ /dev/null @@ -1,52 +0,0 @@ -/*- - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef ASN_SEQUENCE_OF_H -#define ASN_SEQUENCE_OF_H - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * SEQUENCE OF is the same as SET OF with a tiny difference: - * the delete operation preserves the initial order of elements - * and thus MAY operate in non-constant time. - */ -#define A_SEQUENCE_OF(type) A_SET_OF(type) - -#define ASN_SEQUENCE_ADD(headptr, ptr) \ - asn_sequence_add((headptr), (ptr)) - -/*********************************************** - * Implementation of the SEQUENCE OF structure. - */ - -#define asn_sequence_add asn_set_add -#define asn_sequence_empty asn_set_empty - -/* - * Delete the element from the set by its number (base 0). - * This is NOT a constant-time operation. - * The order of elements is preserved. - * If _do_free is given AND the (*free) is initialized, the element - * will be freed using the custom (*free) function as well. - */ -void asn_sequence_del(void *asn_sequence_of_x, int number, int _do_free); - -/* - * Cope with different conversions requirements to/from void in C and C++. - * This is mostly useful for support library. - */ -typedef A_SEQUENCE_OF(void) asn_anonymous_sequence_; -#define _A_SEQUENCE_FROM_VOID(ptr) ((asn_anonymous_sequence_ *)(ptr)) -#define _A_CSEQUENCE_FROM_VOID(ptr) ((const asn_anonymous_sequence_ *)(ptr)) - -#ifdef __cplusplus -} -#endif - -#endif /* ASN_SEQUENCE_OF_H */ diff --git a/e2sim/previous/e2apv1sim/ASN1c/asn_SET_OF.c b/e2sim/previous/e2apv1sim/ASN1c/asn_SET_OF.c deleted file mode 100644 index 944f2cb..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/asn_SET_OF.c +++ /dev/null @@ -1,88 +0,0 @@ -/*- - * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include - -/* - * Add another element into the set. - */ -int -asn_set_add(void *asn_set_of_x, void *ptr) { - asn_anonymous_set_ *as = _A_SET_FROM_VOID(asn_set_of_x); - - if(as == 0 || ptr == 0) { - errno = EINVAL; /* Invalid arguments */ - return -1; - } - - /* - * Make sure there's enough space to insert an element. - */ - if(as->count == as->size) { - int _newsize = as->size ? (as->size << 1) : 4; - void *_new_arr; - _new_arr = REALLOC(as->array, _newsize * sizeof(as->array[0])); - if(_new_arr) { - as->array = (void **)_new_arr; - as->size = _newsize; - } else { - /* ENOMEM */ - return -1; - } - } - - as->array[as->count++] = ptr; - - return 0; -} - -void -asn_set_del(void *asn_set_of_x, int number, int _do_free) { - asn_anonymous_set_ *as = _A_SET_FROM_VOID(asn_set_of_x); - - if(as) { - void *ptr; - if(number < 0 || number >= as->count) - return; - - if(_do_free && as->free) { - ptr = as->array[number]; - } else { - ptr = 0; - } - - as->array[number] = as->array[--as->count]; - - /* - * Invoke the third-party function only when the state - * of the parent structure is consistent. - */ - if(ptr) as->free(ptr); - } -} - -/* - * Free the contents of the set, do not free the set itself. - */ -void -asn_set_empty(void *asn_set_of_x) { - asn_anonymous_set_ *as = _A_SET_FROM_VOID(asn_set_of_x); - - if(as) { - if(as->array) { - if(as->free) { - while(as->count--) - as->free(as->array[as->count]); - } - FREEMEM(as->array); - as->array = 0; - } - as->count = 0; - as->size = 0; - } - -} - diff --git a/e2sim/previous/e2apv1sim/ASN1c/asn_SET_OF.h b/e2sim/previous/e2apv1sim/ASN1c/asn_SET_OF.h deleted file mode 100644 index 882e1a4..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/asn_SET_OF.h +++ /dev/null @@ -1,72 +0,0 @@ -/*- - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef ASN_SET_OF_H -#define ASN_SET_OF_H - -#ifdef __cplusplus -#define A_SET_OF(type) \ - struct { \ - type **array; \ - int count; /* Meaningful size */ \ - int size; /* Allocated size */ \ - void (*free)(decltype(*array)); \ - } -#else /* C */ -#define A_SET_OF(type) \ - struct { \ - type **array; \ - int count; /* Meaningful size */ \ - int size; /* Allocated size */ \ - void (*free)(type *); \ - } -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -#define ASN_SET_ADD(headptr, ptr) \ - asn_set_add((headptr), (ptr)) - -/******************************************* - * Implementation of the SET OF structure. - */ - -/* - * Add another structure into the set by its pointer. - * RETURN VALUES: - * 0 for success and -1/errno for failure. - */ -int asn_set_add(void *asn_set_of_x, void *ptr); - -/* - * Delete the element from the set by its number (base 0). - * This is a constant-time operation. The order of elements before the - * deleted ones is guaranteed, the order of elements after the deleted - * one is NOT guaranteed. - * If _do_free is given AND the (*free) is initialized, the element - * will be freed using the custom (*free) function as well. - */ -void asn_set_del(void *asn_set_of_x, int number, int _do_free); - -/* - * Empty the contents of the set. Will free the elements, if (*free) is given. - * Will NOT free the set itself. - */ -void asn_set_empty(void *asn_set_of_x); - -/* - * Cope with different conversions requirements to/from void in C and C++. - * This is mostly useful for support library. - */ -typedef A_SET_OF(void) asn_anonymous_set_; -#define _A_SET_FROM_VOID(ptr) ((asn_anonymous_set_ *)(ptr)) -#define _A_CSET_FROM_VOID(ptr) ((const asn_anonymous_set_ *)(ptr)) - -#ifdef __cplusplus -} -#endif - -#endif /* ASN_SET_OF_H */ diff --git a/e2sim/previous/e2apv1sim/ASN1c/asn_application.c b/e2sim/previous/e2apv1sim/ASN1c/asn_application.c deleted file mode 100644 index 2bff460..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/asn_application.c +++ /dev/null @@ -1,481 +0,0 @@ -/* - * Copyright (c) 2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include - -static asn_enc_rval_t asn_encode_internal(const asn_codec_ctx_t *opt_codec_ctx, - enum asn_transfer_syntax syntax, - const asn_TYPE_descriptor_t *td, - const void *sptr, - asn_app_consume_bytes_f *callback, - void *callback_key); - - -struct callback_count_bytes_key { - asn_app_consume_bytes_f *callback; - void *callback_key; - size_t computed_size; -}; - -/* - * Encoder which just counts bytes that come through it. - */ -static int -callback_count_bytes_cb(const void *data, size_t size, void *keyp) { - struct callback_count_bytes_key *key = keyp; - int ret; - - ret = key->callback(data, size, key->callback_key); - if(ret >= 0) { - key->computed_size += size; - } - - return ret; -} - -struct overrun_encoder_key { - void *buffer; - size_t buffer_size; - size_t computed_size; -}; - -struct dynamic_encoder_key { - void *buffer; - size_t buffer_size; - size_t computed_size; -}; - -struct callback_failure_catch_key { - asn_app_consume_bytes_f *callback; - void *callback_key; - int callback_failed; -}; - -/* - * Encoder which doesn't stop counting bytes - * even if it reaches the end of the buffer. - */ -static int -overrun_encoder_cb(const void *data, size_t size, void *keyp) { - struct overrun_encoder_key *key = keyp; - - if(key->computed_size + size > key->buffer_size) { - /* - * Avoid accident on the next call: - * stop adding bytes to the buffer. - */ - key->buffer_size = 0; - } else { - memcpy((char *)key->buffer + key->computed_size, data, size); - } - key->computed_size += size; - - return 0; -} - -/* - * Encoder which dynamically allocates output, and continues - * to count even if allocation failed. - */ -static int -dynamic_encoder_cb(const void *data, size_t size, void *keyp) { - struct dynamic_encoder_key *key = keyp; - - if(key->buffer) { - if(key->computed_size + size >= key->buffer_size) { - void *p; - size_t new_size = key->buffer_size; - - do { - new_size *= 2; - } while(new_size <= key->computed_size + size); - - p = REALLOC(key->buffer, new_size); - if(p) { - key->buffer = p; - key->buffer_size = new_size; - } else { - FREEMEM(key->buffer); - key->buffer = 0; - key->buffer_size = 0; - key->computed_size += size; - return 0; - } - } - memcpy((char *)key->buffer + key->computed_size, data, size); - } - - key->computed_size += size; - - return 0; -} - -/* - * Encoder which help convert the application level encoder failure into EIO. - */ -static int -callback_failure_catch_cb(const void *data, size_t size, void *keyp) { - struct callback_failure_catch_key *key = keyp; - int ret; - - ret = key->callback(data, size, key->callback_key); - if(ret < 0) { - key->callback_failed = 1; - } - - return ret; -} - -asn_enc_rval_t -asn_encode(const asn_codec_ctx_t *opt_codec_ctx, - enum asn_transfer_syntax syntax, const asn_TYPE_descriptor_t *td, - const void *sptr, asn_app_consume_bytes_f *callback, void *callback_key) { - struct callback_failure_catch_key cb_key; - asn_enc_rval_t er = {0,0,0}; - - if(!callback) { - errno = EINVAL; - ASN__ENCODE_FAILED; - } - - cb_key.callback = callback; - cb_key.callback_key = callback_key; - cb_key.callback_failed = 0; - - er = asn_encode_internal(opt_codec_ctx, syntax, td, sptr, - callback_failure_catch_cb, &cb_key); - if(cb_key.callback_failed) { - assert(er.encoded == -1); - assert(errno == EBADF); - errno = EIO; - } - - return er; -} - -asn_enc_rval_t -asn_encode_to_buffer(const asn_codec_ctx_t *opt_codec_ctx, - enum asn_transfer_syntax syntax, - const asn_TYPE_descriptor_t *td, const void *sptr, - void *buffer, size_t buffer_size) { - struct overrun_encoder_key buf_key; - asn_enc_rval_t er = {0,0,0}; - - if(buffer_size > 0 && !buffer) { - errno = EINVAL; - ASN__ENCODE_FAILED; - } - - buf_key.buffer = buffer; - buf_key.buffer_size = buffer_size; - buf_key.computed_size = 0; - - er = asn_encode_internal(opt_codec_ctx, syntax, td, sptr, - overrun_encoder_cb, &buf_key); - - if(er.encoded >= 0 && (size_t)er.encoded != buf_key.computed_size) { - ASN_DEBUG("asn_encode() returned %" ASN_PRI_SSIZE - " yet produced %" ASN_PRI_SIZE " bytes", - er.encoded, buf_key.computed_size); - assert(er.encoded < 0 || (size_t)er.encoded == buf_key.computed_size); - } - - return er; -} - -asn_encode_to_new_buffer_result_t -asn_encode_to_new_buffer(const asn_codec_ctx_t *opt_codec_ctx, - enum asn_transfer_syntax syntax, - const asn_TYPE_descriptor_t *td, const void *sptr) { - struct dynamic_encoder_key buf_key; - asn_encode_to_new_buffer_result_t res; - - buf_key.buffer_size = 16; - buf_key.buffer = MALLOC(buf_key.buffer_size); - buf_key.computed_size = 0; - - res.result = asn_encode_internal(opt_codec_ctx, syntax, td, sptr, - dynamic_encoder_cb, &buf_key); - - if(res.result.encoded >= 0 - && (size_t)res.result.encoded != buf_key.computed_size) { - ASN_DEBUG("asn_encode() returned %" ASN_PRI_SSIZE - " yet produced %" ASN_PRI_SIZE " bytes", - res.result.encoded, buf_key.computed_size); - assert(res.result.encoded < 0 - || (size_t)res.result.encoded == buf_key.computed_size); - } - - res.buffer = buf_key.buffer; - - /* 0-terminate just in case. */ - if(res.buffer) { - assert(buf_key.computed_size < buf_key.buffer_size); - ((char *)res.buffer)[buf_key.computed_size] = '\0'; - } - - return res; -} - -static asn_enc_rval_t -asn_encode_internal(const asn_codec_ctx_t *opt_codec_ctx, - enum asn_transfer_syntax syntax, - const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_consume_bytes_f *callback, void *callback_key) { - asn_enc_rval_t er = {0,0,0}; - enum xer_encoder_flags_e xer_flags = XER_F_CANONICAL; - - (void)opt_codec_ctx; /* Parameters are not checked on encode yet. */ - - if(!td || !sptr) { - errno = EINVAL; - ASN__ENCODE_FAILED; - } - - switch(syntax) { - case ATS_NONSTANDARD_PLAINTEXT: - if(td->op->print_struct) { - struct callback_count_bytes_key cb_key; - cb_key.callback = callback; - cb_key.callback_key = callback_key; - cb_key.computed_size = 0; - if(td->op->print_struct(td, sptr, 1, callback_count_bytes_cb, - &cb_key) - < 0 - || callback_count_bytes_cb("\n", 1, &cb_key) < 0) { - errno = EBADF; /* Structure has incorrect form. */ - er.encoded = -1; - er.failed_type = td; - er.structure_ptr = sptr; - } else { - er.encoded = cb_key.computed_size; - er.failed_type = 0; - er.structure_ptr = 0; - } - } else { - errno = ENOENT; /* Transfer syntax is not defined for this type. */ - ASN__ENCODE_FAILED; - } - break; - - case ATS_RANDOM: - errno = ENOENT; /* Randomization doesn't make sense on output. */ - ASN__ENCODE_FAILED; - - case ATS_BER: - /* BER is a superset of DER. */ - /* Fall through. */ - case ATS_DER: - if(td->op->der_encoder) { - er = der_encode(td, sptr, callback, callback_key); - if(er.encoded == -1) { - if(er.failed_type && er.failed_type->op->der_encoder) { - errno = EBADF; /* Structure has incorrect form. */ - } else { - errno = ENOENT; /* DER is not defined for this type. */ - } - } - } else { - errno = ENOENT; /* Transfer syntax is not defined for this type. */ - ASN__ENCODE_FAILED; - } - break; - case ATS_CER: - errno = ENOENT; /* Transfer syntax is not defined for any type. */ - ASN__ENCODE_FAILED; - -#ifdef ASN_DISABLE_OER_SUPPORT - case ATS_BASIC_OER: - case ATS_CANONICAL_OER: - errno = ENOENT; /* PER is not defined. */ - ASN__ENCODE_FAILED; - break; -#else /* ASN_DISABLE_OER_SUPPORT */ - case ATS_BASIC_OER: - /* CANONICAL-OER is a superset of BASIC-OER. */ - /* Fall through. */ - case ATS_CANONICAL_OER: - if(td->op->oer_encoder) { - er = oer_encode(td, sptr, callback, callback_key); - if(er.encoded == -1) { - if(er.failed_type && er.failed_type->op->oer_encoder) { - errno = EBADF; /* Structure has incorrect form. */ - } else { - errno = ENOENT; /* OER is not defined for this type. */ - } - } - } else { - errno = ENOENT; /* Transfer syntax is not defined for this type. */ - ASN__ENCODE_FAILED; - } - break; -#endif /* ASN_DISABLE_OER_SUPPORT */ - -#ifdef ASN_DISABLE_PER_SUPPORT - case ATS_UNALIGNED_BASIC_PER: - case ATS_UNALIGNED_CANONICAL_PER: - case ATS_ALIGNED_BASIC_PER: - case ATS_ALIGNED_CANONICAL_PER: - errno = ENOENT; /* PER is not defined. */ - ASN__ENCODE_FAILED; - break; -#else /* ASN_DISABLE_PER_SUPPORT */ - case ATS_UNALIGNED_BASIC_PER: - /* CANONICAL-UPER is a superset of BASIC-UPER. */ - /* Fall through. */ - case ATS_UNALIGNED_CANONICAL_PER: - if(td->op->uper_encoder) { - er = uper_encode(td, 0, sptr, callback, callback_key); - if(er.encoded == -1) { - if(er.failed_type && er.failed_type->op->uper_encoder) { - errno = EBADF; /* Structure has incorrect form. */ - } else { - errno = ENOENT; /* UPER is not defined for this type. */ - } - } else { - ASN_DEBUG("Complete encoded in %ld bits", (long)er.encoded); - if(er.encoded == 0) { - /* Enforce "Complete Encoding" of X.691 #11.1 */ - if(callback("\0", 1, callback_key) < 0) { - errno = EBADF; - ASN__ENCODE_FAILED; - } - er.encoded = 8; /* Exactly 8 zero bits is added. */ - } - /* Convert bits into bytes */ - er.encoded = (er.encoded + 7) >> 3; - } - } else { - errno = ENOENT; /* Transfer syntax is not defined for this type. */ - ASN__ENCODE_FAILED; - } - break; - case ATS_ALIGNED_BASIC_PER: - /* CANONICAL-APER is a superset of BASIC-APER. */ - /* Fall through. */ - case ATS_ALIGNED_CANONICAL_PER: - if(td->op->aper_encoder) { - er = aper_encode(td, 0, sptr, callback, callback_key); - if(er.encoded == -1) { - if(er.failed_type && er.failed_type->op->aper_encoder) { - errno = EBADF; /* Structure has incorrect form. */ - } else { - errno = ENOENT; /* APER is not defined for this type. */ - } - } else { - ASN_DEBUG("Complete encoded in %ld bits", (long)er.encoded); - if(er.encoded == 0) { - /* Enforce "Complete Encoding" of X.691 #11.1 */ - if(callback("\0", 1, callback_key) < 0) { - errno = EBADF; - ASN__ENCODE_FAILED; - } - er.encoded = 8; /* Exactly 8 zero bits is added. */ - } - /* Convert bits into bytes */ - er.encoded = (er.encoded + 7) >> 3; - } - } else { - errno = ENOENT; /* Transfer syntax is not defined for this type. */ - ASN__ENCODE_FAILED; - } - break; -#endif /* ASN_DISABLE_PER_SUPPORT */ - - case ATS_BASIC_XER: - /* CANONICAL-XER is a superset of BASIC-XER. */ - xer_flags &= ~XER_F_CANONICAL; - xer_flags |= XER_F_BASIC; - /* Fall through. */ - case ATS_CANONICAL_XER: - if(td->op->xer_encoder) { - er = xer_encode(td, sptr, xer_flags, callback, callback_key); - if(er.encoded == -1) { - if(er.failed_type && er.failed_type->op->xer_encoder) { - errno = EBADF; /* Structure has incorrect form. */ - } else { - errno = ENOENT; /* XER is not defined for this type. */ - } - } - } else { - errno = ENOENT; /* Transfer syntax is not defined for this type. */ - ASN__ENCODE_FAILED; - } - break; - - default: - errno = ENOENT; - ASN__ENCODE_FAILED; - } - - return er; -} - -asn_dec_rval_t -asn_decode(const asn_codec_ctx_t *opt_codec_ctx, - enum asn_transfer_syntax syntax, const asn_TYPE_descriptor_t *td, - void **sptr, const void *buffer, size_t size) { - if(!td || !td->op || !sptr || (size && !buffer)) { - ASN__DECODE_FAILED; - } - - switch(syntax) { - case ATS_CER: - case ATS_NONSTANDARD_PLAINTEXT: - default: - errno = ENOENT; - ASN__DECODE_FAILED; - - case ATS_RANDOM: - if(!td->op->random_fill) { - ASN__DECODE_FAILED; - } else { - if(asn_random_fill(td, sptr, 16000) == 0) { - asn_dec_rval_t ret = {RC_OK, 0}; - return ret; - } else { - ASN__DECODE_FAILED; - } - } - break; - - case ATS_DER: - case ATS_BER: - return ber_decode(opt_codec_ctx, td, sptr, buffer, size); - - case ATS_BASIC_OER: - case ATS_CANONICAL_OER: -#ifdef ASN_DISABLE_OER_SUPPORT - errno = ENOENT; - ASN__DECODE_FAILED; -#else - return oer_decode(opt_codec_ctx, td, sptr, buffer, size); -#endif - - case ATS_UNALIGNED_BASIC_PER: - case ATS_UNALIGNED_CANONICAL_PER: -#ifdef ASN_DISABLE_PER_SUPPORT - errno = ENOENT; - ASN__DECODE_FAILED; -#else - return uper_decode_complete(opt_codec_ctx, td, sptr, buffer, size); -#endif - - case ATS_ALIGNED_BASIC_PER: - case ATS_ALIGNED_CANONICAL_PER: -#ifdef ASN_DISABLE_PER_SUPPORT - errno = ENOENT; - ASN__DECODE_FAILED; -#else - return aper_decode_complete(opt_codec_ctx, td, sptr, buffer, size); -#endif - - case ATS_BASIC_XER: - case ATS_CANONICAL_XER: - return xer_decode(opt_codec_ctx, td, sptr, buffer, size); - } -} - diff --git a/e2sim/previous/e2apv1sim/ASN1c/asn_application.h b/e2sim/previous/e2apv1sim/ASN1c/asn_application.h deleted file mode 100644 index 034f646..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/asn_application.h +++ /dev/null @@ -1,171 +0,0 @@ -/*- - * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -/* - * Application-level ASN.1 callbacks. - */ -#ifndef ASN_APPLICATION_H -#define ASN_APPLICATION_H - -#include "asn_system.h" /* for platform-dependent types */ -#include "asn_codecs.h" /* for ASN.1 codecs specifics */ - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * A selection of ASN.1 Transfer Syntaxes to use with generalized - * encoders and decoders declared further in this .h file. - */ -enum asn_transfer_syntax { - /* Avoid appearance of a default transfer syntax. */ - ATS_INVALID = 0, - /* Plaintext output (not conforming to any standard), for debugging. */ - ATS_NONSTANDARD_PLAINTEXT, - /* Returns a randomly generated structure. */ - ATS_RANDOM, - /* - * X.690: - * BER: Basic Encoding Rules. - * DER: Distinguished Encoding Rules. - * CER: Canonical Encoding Rules. - * DER and CER are more strict variants of BER. - */ - ATS_BER, - ATS_DER, - ATS_CER, /* Only decoding is supported */ - /* - * X.696: - * OER: Octet Encoding Rules. - * CANONICAL-OER is a more strict variant of BASIC-OER. - */ - ATS_BASIC_OER, - ATS_CANONICAL_OER, - /* - * X.691: - * PER: Packed Encoding Rules. - * CANONICAL-PER is a more strict variant of BASIC-PER. - * NOTE: Produces or consumes a complete encoding (X.691 (08/2015) #11.1). - */ - ATS_UNALIGNED_BASIC_PER, - ATS_UNALIGNED_CANONICAL_PER, - ATS_ALIGNED_BASIC_PER, - ATS_ALIGNED_CANONICAL_PER, - /* - * X.693: - * XER: XML Encoding Rules. - * CANONICAL-XER is a more strict variant of BASIC-XER. - */ - ATS_BASIC_XER, - ATS_CANONICAL_XER -}; - -/* - * A generic encoder for any supported transfer syntax. - * RETURN VALUES: - * The (.encoded) field of the return value is REDEFINED to mean the following: - * >=0: The computed size of the encoded data. Can exceed the (buffer_size). - * -1: Error encoding the structure. See the error code in (errno): - * EINVAL: Incorrect parameters to the function, such as NULLs. - * ENOENT: Encoding transfer syntax is not defined (for this type). - * EBADF: The structure has invalid form or content constraint failed. - * The (.failed_type) and (.structure_ptr) MIGHT be set to the appropriate - * values at the place of failure, if at all possible. - * WARNING: The (.encoded) field of the return value can exceed the buffer_size. - * This is similar to snprintf(3) contract which might return values - * greater than the buffer size. - */ -asn_enc_rval_t asn_encode_to_buffer( - const asn_codec_ctx_t *opt_codec_parameters, /* See asn_codecs.h */ - enum asn_transfer_syntax, - const struct asn_TYPE_descriptor_s *type_to_encode, - const void *structure_to_encode, void *buffer, size_t buffer_size); - -/* - * A variant of asn_encode_to_buffer() with automatically allocated buffer. - * RETURN VALUES: - * On success, returns a newly allocated (.buffer) containing the whole message. - * The message size is returned in (.result.encoded). - * On failure: - * (.buffer) is NULL, - * (.result.encoded) as in asn_encode_to_buffer(), - * The errno codes as in asn_encode_to_buffer(), plus the following: - * ENOMEM: Memory allocation failed due to system or internal limits. - * The user is responsible for freeing the (.buffer). - */ -typedef struct asn_encode_to_new_buffer_result_s { - void *buffer; /* NULL if failed to encode. */ - asn_enc_rval_t result; -} asn_encode_to_new_buffer_result_t; -asn_encode_to_new_buffer_result_t asn_encode_to_new_buffer( - const asn_codec_ctx_t *opt_codec_parameters, /* See asn_codecs.h */ - enum asn_transfer_syntax, - const struct asn_TYPE_descriptor_s *type_to_encode, - const void *structure_to_encode); - - -/* - * Generic type of an application-defined callback to return various - * types of data to the application. - * EXPECTED RETURN VALUES: - * -1: Failed to consume bytes. Abort the mission. - * Non-negative return values indicate success, and ignored. - */ -typedef int(asn_app_consume_bytes_f)(const void *buffer, size_t size, - void *application_specific_key); - - -/* - * A generic encoder for any supported transfer syntax. - * Returns the comprehensive encoding result descriptor (see asn_codecs.h). - * RETURN VALUES: - * The negative (.encoded) field of the return values is accompanied with the - * following error codes (errno): - * EINVAL: Incorrect parameters to the function, such as NULLs. - * ENOENT: Encoding transfer syntax is not defined (for this type). - * EBADF: The structure has invalid form or content constraint failed. - * EIO: The (callback) has returned negative value during encoding. - */ -asn_enc_rval_t asn_encode( - const asn_codec_ctx_t *opt_codec_parameters, /* See asn_codecs.h */ - enum asn_transfer_syntax, - const struct asn_TYPE_descriptor_s *type_to_encode, - const void *structure_to_encode, - asn_app_consume_bytes_f *callback, void *callback_key); - - -/* - * A generic decoder for any supported transfer syntax. - */ -asn_dec_rval_t asn_decode( - const asn_codec_ctx_t *opt_codec_parameters, enum asn_transfer_syntax, - const struct asn_TYPE_descriptor_s *type_to_decode, - void **structure_ptr, /* Pointer to a target structure's pointer */ - const void *buffer, /* Data to be decoded */ - size_t size /* Size of that buffer */ -); - - -/* - * A callback of this type is called whenever constraint validation fails - * on some ASN.1 type. See "constraints.h" for more details on constraint - * validation. - * This callback specifies a descriptor of the ASN.1 type which failed - * the constraint check, as well as human readable message on what - * particular constraint has failed. - */ -typedef void (asn_app_constraint_failed_f)(void *application_specific_key, - const struct asn_TYPE_descriptor_s *type_descriptor_which_failed, - const void *structure_which_failed_ptr, - const char *error_message_format, ...) CC_PRINTFLIKE(4, 5); - - -#ifdef __cplusplus -} -#endif - -#include "constr_TYPE.h" /* for asn_TYPE_descriptor_t */ - -#endif /* ASN_APPLICATION_H */ diff --git a/e2sim/previous/e2apv1sim/ASN1c/asn_bit_data.c b/e2sim/previous/e2apv1sim/ASN1c/asn_bit_data.c deleted file mode 100644 index fe4b89b..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/asn_bit_data.c +++ /dev/null @@ -1,333 +0,0 @@ -/* - * Copyright (c) 2005-2017 Lev Walkin . - * All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include - -/* - * Create a contiguous non-refillable bit data structure. - * Can be freed by FREEMEM(). - */ -asn_bit_data_t * -asn_bit_data_new_contiguous(const void *data, size_t size_bits) { - size_t size_bytes = (size_bits + 7) / 8; - asn_bit_data_t *pd; - uint8_t *bytes; - - /* Get the extensions map */ - pd = CALLOC(1, sizeof(*pd) + size_bytes + 1); - if(!pd) { - return NULL; - } - bytes = (void *)(((char *)pd) + sizeof(*pd)); - memcpy(bytes, data, size_bytes); - bytes[size_bytes] = 0; - pd->buffer = bytes; - pd->nboff = 0; - pd->nbits = size_bits; - - return pd; -} - - -char * -asn_bit_data_string(asn_bit_data_t *pd) { - static char buf[2][32]; - static int n; - n = (n+1) % 2; - snprintf(buf[n], sizeof(buf[n]), - "{m=%" ASN_PRI_SIZE " span %" ASN_PRI_SIZE "[%" ASN_PRI_SIZE - "..%" ASN_PRI_SIZE "] (%" ASN_PRI_SIZE ")}", - pd->moved, ((uintptr_t)(pd->buffer) & 0xf), pd->nboff, pd->nbits, - pd->nbits - pd->nboff); - return buf[n]; -} - -void -asn_get_undo(asn_bit_data_t *pd, int nbits) { - if((ssize_t)pd->nboff < nbits) { - assert((ssize_t)pd->nboff < nbits); - } else { - pd->nboff -= nbits; - pd->moved -= nbits; - } -} - -/* - * Extract a small number of bits (<= 31) from the specified PER data pointer. - */ -int32_t -asn_get_few_bits(asn_bit_data_t *pd, int nbits) { - size_t off; /* Next after last bit offset */ - ssize_t nleft; /* Number of bits left in this stream */ - uint32_t accum; - const uint8_t *buf; - - if(nbits < 0) - return -1; - - nleft = pd->nbits - pd->nboff; - if(nbits > nleft) { - int32_t tailv, vhead; - if(!pd->refill || nbits > 31) return -1; - /* Accumulate unused bytes before refill */ - ASN_DEBUG("Obtain the rest %d bits (want %d)", - (int)nleft, (int)nbits); - tailv = asn_get_few_bits(pd, nleft); - if(tailv < 0) return -1; - /* Refill (replace pd contents with new data) */ - if(pd->refill(pd)) - return -1; - nbits -= nleft; - vhead = asn_get_few_bits(pd, nbits); - /* Combine the rest of previous pd with the head of new one */ - tailv = (tailv << nbits) | vhead; /* Could == -1 */ - return tailv; - } - - /* - * Normalize position indicator. - */ - if(pd->nboff >= 8) { - pd->buffer += (pd->nboff >> 3); - pd->nbits -= (pd->nboff & ~0x07); - pd->nboff &= 0x07; - } - pd->moved += nbits; - pd->nboff += nbits; - off = pd->nboff; - buf = pd->buffer; - - /* - * Extract specified number of bits. - */ - if(off <= 8) - accum = nbits ? (buf[0]) >> (8 - off) : 0; - else if(off <= 16) - accum = ((buf[0] << 8) + buf[1]) >> (16 - off); - else if(off <= 24) - accum = ((buf[0] << 16) + (buf[1] << 8) + buf[2]) >> (24 - off); - else if(off <= 31) - accum = (((uint32_t)buf[0] << 24) + (buf[1] << 16) - + (buf[2] << 8) + (buf[3])) >> (32 - off); - else if(nbits <= 31) { - asn_bit_data_t tpd = *pd; - /* Here are we with our 31-bits limit plus 1..7 bits offset. */ - asn_get_undo(&tpd, nbits); - /* The number of available bits in the stream allow - * for the following operations to take place without - * invoking the ->refill() function */ - accum = asn_get_few_bits(&tpd, nbits - 24) << 24; - accum |= asn_get_few_bits(&tpd, 24); - } else { - asn_get_undo(pd, nbits); - return -1; - } - - accum &= (((uint32_t)1 << nbits) - 1); - - ASN_DEBUG(" [PER got %2d<=%2d bits => span %d %+ld[%d..%d]:%02x (%d) => 0x%x]", - (int)nbits, (int)nleft, - (int)pd->moved, - (((long)pd->buffer) & 0xf), - (int)pd->nboff, (int)pd->nbits, - ((pd->buffer != NULL)?pd->buffer[0]:0), - (int)(pd->nbits - pd->nboff), - (int)accum); - - return accum; -} - -/* - * Extract a large number of bits from the specified PER data pointer. - */ -int -asn_get_many_bits(asn_bit_data_t *pd, uint8_t *dst, int alright, int nbits) { - int32_t value; - - if(alright && (nbits & 7)) { - /* Perform right alignment of a first few bits */ - value = asn_get_few_bits(pd, nbits & 0x07); - if(value < 0) return -1; - *dst++ = value; /* value is already right-aligned */ - nbits &= ~7; - } - - while(nbits) { - if(nbits >= 24) { - value = asn_get_few_bits(pd, 24); - if(value < 0) return -1; - *(dst++) = value >> 16; - *(dst++) = value >> 8; - *(dst++) = value; - nbits -= 24; - } else { - value = asn_get_few_bits(pd, nbits); - if(value < 0) return -1; - if(nbits & 7) { /* implies left alignment */ - value <<= 8 - (nbits & 7), - nbits += 8 - (nbits & 7); - if(nbits > 24) - *dst++ = value >> 24; - } - if(nbits > 16) - *dst++ = value >> 16; - if(nbits > 8) - *dst++ = value >> 8; - *dst++ = value; - break; - } - } - - return 0; -} - -/* - * Put a small number of bits (<= 31). - */ -int -asn_put_few_bits(asn_bit_outp_t *po, uint32_t bits, int obits) { - size_t off; /* Next after last bit offset */ - size_t omsk; /* Existing last byte meaningful bits mask */ - uint8_t *buf; - - if(obits <= 0 || obits >= 32) return obits ? -1 : 0; - - ASN_DEBUG("[PER put %d bits %x to %p+%d bits]", - obits, (int)bits, (void *)po->buffer, (int)po->nboff); - - /* - * Normalize position indicator. - */ - if(po->nboff >= 8) { - po->buffer += (po->nboff >> 3); - po->nbits -= (po->nboff & ~0x07); - po->nboff &= 0x07; - } - - /* - * Flush whole-bytes output, if necessary. - */ - if(po->nboff + obits > po->nbits) { - size_t complete_bytes; - if(!po->buffer) po->buffer = po->tmpspace; - complete_bytes = (po->buffer - po->tmpspace); - ASN_DEBUG("[PER output %ld complete + %ld]", - (long)complete_bytes, (long)po->flushed_bytes); - if(po->output(po->tmpspace, complete_bytes, po->op_key) < 0) - return -1; - if(po->nboff) - po->tmpspace[0] = po->buffer[0]; - po->buffer = po->tmpspace; - po->nbits = 8 * sizeof(po->tmpspace); - po->flushed_bytes += complete_bytes; - } - - /* - * Now, due to sizeof(tmpspace), we are guaranteed large enough space. - */ - buf = po->buffer; - omsk = ~((1 << (8 - po->nboff)) - 1); - off = (po->nboff + obits); - - /* Clear data of debris before meaningful bits */ - bits &= (((uint32_t)1 << obits) - 1); - - ASN_DEBUG("[PER out %d %u/%x (t=%d,o=%d) %x&%x=%x]", obits, - (int)bits, (int)bits, - (int)po->nboff, (int)off, - buf[0], (int)(omsk&0xff), - (int)(buf[0] & omsk)); - - if(off <= 8) /* Completely within 1 byte */ - po->nboff = off, - bits <<= (8 - off), - buf[0] = (buf[0] & omsk) | bits; - else if(off <= 16) - po->nboff = off, - bits <<= (16 - off), - buf[0] = (buf[0] & omsk) | (bits >> 8), - buf[1] = bits; - else if(off <= 24) - po->nboff = off, - bits <<= (24 - off), - buf[0] = (buf[0] & omsk) | (bits >> 16), - buf[1] = bits >> 8, - buf[2] = bits; - else if(off <= 31) - po->nboff = off, - bits <<= (32 - off), - buf[0] = (buf[0] & omsk) | (bits >> 24), - buf[1] = bits >> 16, - buf[2] = bits >> 8, - buf[3] = bits; - else { - if(asn_put_few_bits(po, bits >> (obits - 24), 24)) return -1; - if(asn_put_few_bits(po, bits, obits - 24)) return -1; - } - - ASN_DEBUG("[PER out %u/%x => %02x buf+%ld]", - (int)bits, (int)bits, buf[0], - (long)(po->buffer - po->tmpspace)); - - return 0; -} - - -/* - * Output a large number of bits. - */ -int -asn_put_many_bits(asn_bit_outp_t *po, const uint8_t *src, int nbits) { - - while(nbits) { - uint32_t value; - - if(nbits >= 24) { - value = (src[0] << 16) | (src[1] << 8) | src[2]; - src += 3; - nbits -= 24; - if(asn_put_few_bits(po, value, 24)) - return -1; - } else { - value = src[0]; - if(nbits > 8) - value = (value << 8) | src[1]; - if(nbits > 16) - value = (value << 8) | src[2]; - if(nbits & 0x07) - value >>= (8 - (nbits & 0x07)); - if(asn_put_few_bits(po, value, nbits)) - return -1; - break; - } - } - - return 0; -} - - -int -asn_put_aligned_flush(asn_bit_outp_t *po) { - uint32_t unused_bits = (0x7 & (8 - (po->nboff & 0x07))); - size_t complete_bytes = - (po->buffer ? po->buffer - po->tmpspace : 0) + ((po->nboff + 7) >> 3); - - if(unused_bits) { - po->buffer[po->nboff >> 3] &= ~0u << unused_bits; - } - - if(po->output(po->tmpspace, complete_bytes, po->op_key) < 0) { - return -1; - } else { - po->buffer = po->tmpspace; - po->nboff = 0; - po->nbits = 8 * sizeof(po->tmpspace); - po->flushed_bytes += complete_bytes; - return 0; - } -} - diff --git a/e2sim/previous/e2apv1sim/ASN1c/asn_bit_data.h b/e2sim/previous/e2apv1sim/ASN1c/asn_bit_data.h deleted file mode 100644 index 59de7af..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/asn_bit_data.h +++ /dev/null @@ -1,83 +0,0 @@ -/* - * Copyright (c) 2005-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef ASN_BIT_DATA -#define ASN_BIT_DATA - -#include /* Platform-specific types */ - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * This structure describes a position inside an incoming PER bit stream. - */ -typedef struct asn_bit_data_s { - const uint8_t *buffer; /* Pointer to the octet stream */ - size_t nboff; /* Bit offset to the meaningful bit */ - size_t nbits; /* Number of bits in the stream */ - size_t moved; /* Number of bits moved through this bit stream */ - int (*refill)(struct asn_bit_data_s *); - void *refill_key; -} asn_bit_data_t; - -/* - * Create a contiguous non-refillable bit data structure. - * Can be freed by FREEMEM(). - */ -asn_bit_data_t *asn_bit_data_new_contiguous(const void *data, size_t size_bits); - -/* - * Extract a small number of bits (<= 31) from the specified PER data pointer. - * This function returns -1 if the specified number of bits could not be - * extracted due to EOD or other conditions. - */ -int32_t asn_get_few_bits(asn_bit_data_t *, int get_nbits); - -/* Undo the immediately preceeding "get_few_bits" operation */ -void asn_get_undo(asn_bit_data_t *, int get_nbits); - -/* - * Extract a large number of bits from the specified PER data pointer. - * This function returns -1 if the specified number of bits could not be - * extracted due to EOD or other conditions. - */ -int asn_get_many_bits(asn_bit_data_t *, uint8_t *dst, int right_align, - int get_nbits); - -/* Non-thread-safe debugging function, don't use it */ -char *asn_bit_data_string(asn_bit_data_t *); - -/* - * This structure supports forming bit output. - */ -typedef struct asn_bit_outp_s { - uint8_t *buffer; /* Pointer into the (tmpspace) */ - size_t nboff; /* Bit offset to the meaningful bit */ - size_t nbits; /* Number of bits left in (tmpspace) */ - uint8_t tmpspace[32]; /* Preliminary storage to hold data */ - int (*output)(const void *data, size_t size, void *op_key); - void *op_key; /* Key for (output) data callback */ - size_t flushed_bytes; /* Bytes already flushed through (output) */ -} asn_bit_outp_t; - -/* Output a small number of bits (<= 31) */ -int asn_put_few_bits(asn_bit_outp_t *, uint32_t bits, int obits); - -/* Output a large number of bits */ -int asn_put_many_bits(asn_bit_outp_t *, const uint8_t *src, int put_nbits); - -/* - * Flush whole bytes (0 or more) through (outper) member. - * The least significant bits which are not used are guaranteed to be set to 0. - * Returns -1 if callback returns -1. Otherwise, 0. - */ -int asn_put_aligned_flush(asn_bit_outp_t *); - -#ifdef __cplusplus -} -#endif - -#endif /* ASN_BIT_DATA */ diff --git a/e2sim/previous/e2apv1sim/ASN1c/asn_codecs.h b/e2sim/previous/e2apv1sim/ASN1c/asn_codecs.h deleted file mode 100644 index e75c270..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/asn_codecs.h +++ /dev/null @@ -1,108 +0,0 @@ -/* - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef ASN_CODECS_H -#define ASN_CODECS_H - -#ifdef __cplusplus -extern "C" { -#endif - -struct asn_TYPE_descriptor_s; /* Forward declaration */ - -/* - * This structure defines a set of parameters that may be passed - * to every ASN.1 encoder or decoder function. - * WARNING: if max_stack_size member is set, and you are calling the - * function pointers of the asn_TYPE_descriptor_t directly, - * this structure must be ALLOCATED ON THE STACK! - * If you can't always satisfy this requirement, use ber_decode(), - * xer_decode() and uper_decode() functions instead. - */ -typedef struct asn_codec_ctx_s { - /* - * Limit the decoder routines to use no (much) more stack than a given - * number of bytes. Most of decoders are stack-based, and this - * would protect against stack overflows if the number of nested - * encodings is high. - * The OCTET STRING, BIT STRING and ANY BER decoders are heap-based, - * and are safe from this kind of overflow. - * A value from getrlimit(RLIMIT_STACK) may be used to initialize - * this variable. Be careful in multithreaded environments, as the - * stack size is rather limited. - */ - size_t max_stack_size; /* 0 disables stack bounds checking */ -} asn_codec_ctx_t; - -/* - * Type of the return value of the encoding functions (der_encode, xer_encode). - */ -typedef struct asn_enc_rval_s { - /* - * Number of bytes encoded. - * -1 indicates failure to encode the structure. - * In this case, the members below this one are meaningful. - */ - ssize_t encoded; - - /* - * Members meaningful when (encoded == -1), for post mortem analysis. - */ - - /* Type which cannot be encoded */ - const struct asn_TYPE_descriptor_s *failed_type; - - /* Pointer to the structure of that type */ - const void *structure_ptr; -} asn_enc_rval_t; -#define ASN__ENCODE_FAILED do { \ - asn_enc_rval_t tmp_error; \ - tmp_error.encoded = -1; \ - tmp_error.failed_type = td; \ - tmp_error.structure_ptr = sptr; \ - ASN_DEBUG("Failed to encode element %s", td ? td->name : ""); \ - return tmp_error; \ -} while(0) -#define ASN__ENCODED_OK(rval) do { \ - rval.structure_ptr = 0; \ - rval.failed_type = 0; \ - return rval; \ -} while(0) - -/* - * Type of the return value of the decoding functions (ber_decode, xer_decode) - * - * Please note that the number of consumed bytes is ALWAYS meaningful, - * even if code==RC_FAIL. This is to indicate the number of successfully - * decoded bytes, hence providing a possibility to fail with more diagnostics - * (i.e., print the offending remainder of the buffer). - */ -enum asn_dec_rval_code_e { - RC_OK, /* Decoded successfully */ - RC_WMORE, /* More data expected, call again */ - RC_FAIL /* Failure to decode data */ -}; -typedef struct asn_dec_rval_s { - enum asn_dec_rval_code_e code; /* Result code */ - size_t consumed; /* Number of bytes consumed */ -} asn_dec_rval_t; -#define ASN__DECODE_FAILED do { \ - asn_dec_rval_t tmp_error; \ - tmp_error.code = RC_FAIL; \ - tmp_error.consumed = 0; \ - ASN_DEBUG("Failed to decode element %s", td ? td->name : ""); \ - return tmp_error; \ -} while(0) -#define ASN__DECODE_STARVED do { \ - asn_dec_rval_t tmp_error; \ - tmp_error.code = RC_WMORE; \ - tmp_error.consumed = 0; \ - return tmp_error; \ -} while(0) - -#ifdef __cplusplus -} -#endif - -#endif /* ASN_CODECS_H */ diff --git a/e2sim/previous/e2apv1sim/ASN1c/asn_codecs_prim.c b/e2sim/previous/e2apv1sim/ASN1c/asn_codecs_prim.c deleted file mode 100644 index fc24247..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/asn_codecs_prim.c +++ /dev/null @@ -1,317 +0,0 @@ -/*- - * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include - -/* - * Decode an always-primitive type. - */ -asn_dec_rval_t -ber_decode_primitive(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **sptr, - const void *buf_ptr, size_t size, int tag_mode) { - ASN__PRIMITIVE_TYPE_t *st = (ASN__PRIMITIVE_TYPE_t *)*sptr; - asn_dec_rval_t rval; - ber_tlv_len_t length = 0; /* =0 to avoid [incorrect] warning. */ - - /* - * If the structure is not there, allocate it. - */ - if(st == NULL) { - st = (ASN__PRIMITIVE_TYPE_t *)CALLOC(1, sizeof(*st)); - if(st == NULL) ASN__DECODE_FAILED; - *sptr = (void *)st; - } - - ASN_DEBUG("Decoding %s as plain primitive (tm=%d)", - td->name, tag_mode); - - /* - * Check tags and extract value length. - */ - rval = ber_check_tags(opt_codec_ctx, td, 0, buf_ptr, size, - tag_mode, 0, &length, 0); - if(rval.code != RC_OK) - return rval; - - ASN_DEBUG("%s length is %d bytes", td->name, (int)length); - - /* - * Make sure we have this length. - */ - buf_ptr = ((const char *)buf_ptr) + rval.consumed; - size -= rval.consumed; - if(length > (ber_tlv_len_t)size) { - rval.code = RC_WMORE; - rval.consumed = 0; - return rval; - } - - st->size = (int)length; - /* The following better be optimized away. */ - if(sizeof(st->size) != sizeof(length) - && (ber_tlv_len_t)st->size != length) { - st->size = 0; - ASN__DECODE_FAILED; - } - - st->buf = (uint8_t *)MALLOC(length + 1); - if(!st->buf) { - st->size = 0; - ASN__DECODE_FAILED; - } - - memcpy(st->buf, buf_ptr, length); - st->buf[length] = '\0'; /* Just in case */ - - rval.code = RC_OK; - rval.consumed += length; - - ASN_DEBUG("Took %ld/%ld bytes to encode %s", - (long)rval.consumed, - (long)length, td->name); - - return rval; -} - -/* - * Encode an always-primitive type using DER. - */ -asn_enc_rval_t -der_encode_primitive(const asn_TYPE_descriptor_t *td, const void *sptr, - int tag_mode, ber_tlv_tag_t tag, - asn_app_consume_bytes_f *cb, void *app_key) { - asn_enc_rval_t erval = {0,0,0}; - const ASN__PRIMITIVE_TYPE_t *st = (const ASN__PRIMITIVE_TYPE_t *)sptr; - - ASN_DEBUG("%s %s as a primitive type (tm=%d)", - cb?"Encoding":"Estimating", td->name, tag_mode); - - erval.encoded = der_write_tags(td, st->size, tag_mode, 0, tag, - cb, app_key); - ASN_DEBUG("%s wrote tags %d", td->name, (int)erval.encoded); - if(erval.encoded == -1) { - erval.failed_type = td; - erval.structure_ptr = sptr; - return erval; - } - - if(cb && st->buf) { - if(cb(st->buf, st->size, app_key) < 0) { - erval.encoded = -1; - erval.failed_type = td; - erval.structure_ptr = sptr; - return erval; - } - } else { - assert(st->buf || st->size == 0); - } - - erval.encoded += st->size; - ASN__ENCODED_OK(erval); -} - -void -ASN__PRIMITIVE_TYPE_free(const asn_TYPE_descriptor_t *td, void *sptr, - enum asn_struct_free_method method) { - ASN__PRIMITIVE_TYPE_t *st = (ASN__PRIMITIVE_TYPE_t *)sptr; - - if(!td || !sptr) - return; - - ASN_DEBUG("Freeing %s as a primitive type", td->name); - - if(st->buf) - FREEMEM(st->buf); - - switch(method) { - case ASFM_FREE_EVERYTHING: - FREEMEM(sptr); - break; - case ASFM_FREE_UNDERLYING: - break; - case ASFM_FREE_UNDERLYING_AND_RESET: - memset(sptr, 0, sizeof(ASN__PRIMITIVE_TYPE_t)); - break; - } -} - - -/* - * Local internal type passed around as an argument. - */ -struct xdp_arg_s { - const asn_TYPE_descriptor_t *type_descriptor; - void *struct_key; - xer_primitive_body_decoder_f *prim_body_decoder; - int decoded_something; - int want_more; -}; - -/* - * Since some kinds of primitive values can be encoded using value-specific - * tags (, , etc), the primitive decoder must - * be supplied with such tags to parse them as needed. - */ -static int -xer_decode__unexpected_tag(void *key, const void *chunk_buf, size_t chunk_size) { - struct xdp_arg_s *arg = (struct xdp_arg_s *)key; - enum xer_pbd_rval bret; - - /* - * The chunk_buf is guaranteed to start at '<'. - */ - assert(chunk_size && ((const char *)chunk_buf)[0] == 0x3c); - - /* - * Decoding was performed once already. Prohibit doing it again. - */ - if(arg->decoded_something) - return -1; - - bret = arg->prim_body_decoder(arg->type_descriptor, - arg->struct_key, chunk_buf, chunk_size); - switch(bret) { - case XPBD_SYSTEM_FAILURE: - case XPBD_DECODER_LIMIT: - case XPBD_BROKEN_ENCODING: - break; - case XPBD_BODY_CONSUMED: - /* Tag decoded successfully */ - arg->decoded_something = 1; - /* Fall through */ - case XPBD_NOT_BODY_IGNORE: /* Safe to proceed further */ - return 0; - } - - return -1; -} - -static ssize_t -xer_decode__primitive_body(void *key, const void *chunk_buf, size_t chunk_size, int have_more) { - struct xdp_arg_s *arg = (struct xdp_arg_s *)key; - enum xer_pbd_rval bret; - size_t lead_wsp_size; - - if(arg->decoded_something) { - if(xer_whitespace_span(chunk_buf, chunk_size) == chunk_size) { - /* - * Example: - * "123 " - * ^- chunk_buf position. - */ - return chunk_size; - } - /* - * Decoding was done once already. Prohibit doing it again. - */ - return -1; - } - - if(!have_more) { - /* - * If we've received something like "1", we can't really - * tell whether it is really `1` or `123`, until we know - * that there is no more data coming. - * The have_more argument will be set to 1 once something - * like this is available to the caller of this callback: - * "1want_more = 1; - return -1; - } - - lead_wsp_size = xer_whitespace_span(chunk_buf, chunk_size); - chunk_buf = (const char *)chunk_buf + lead_wsp_size; - chunk_size -= lead_wsp_size; - - bret = arg->prim_body_decoder(arg->type_descriptor, - arg->struct_key, chunk_buf, chunk_size); - switch(bret) { - case XPBD_SYSTEM_FAILURE: - case XPBD_DECODER_LIMIT: - case XPBD_BROKEN_ENCODING: - break; - case XPBD_BODY_CONSUMED: - /* Tag decoded successfully */ - arg->decoded_something = 1; - /* Fall through */ - case XPBD_NOT_BODY_IGNORE: /* Safe to proceed further */ - return lead_wsp_size + chunk_size; - } - - return -1; -} - - -asn_dec_rval_t -xer_decode_primitive(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **sptr, - size_t struct_size, const char *opt_mname, - const void *buf_ptr, size_t size, - xer_primitive_body_decoder_f *prim_body_decoder) { - const char *xml_tag = opt_mname ? opt_mname : td->xml_tag; - asn_struct_ctx_t s_ctx; - struct xdp_arg_s s_arg; - asn_dec_rval_t rc; - - /* - * Create the structure if does not exist. - */ - if(!*sptr) { - *sptr = CALLOC(1, struct_size); - if(!*sptr) ASN__DECODE_FAILED; - } - - memset(&s_ctx, 0, sizeof(s_ctx)); - s_arg.type_descriptor = td; - s_arg.struct_key = *sptr; - s_arg.prim_body_decoder = prim_body_decoder; - s_arg.decoded_something = 0; - s_arg.want_more = 0; - - rc = xer_decode_general(opt_codec_ctx, &s_ctx, &s_arg, - xml_tag, buf_ptr, size, - xer_decode__unexpected_tag, xer_decode__primitive_body); - switch(rc.code) { - case RC_OK: - if(!s_arg.decoded_something) { - char ch; - ASN_DEBUG("Primitive body is not recognized, " - "supplying empty one"); - /* - * Decoding opportunity has come and gone. - * Where's the result? - * Try to feed with empty body, see if it eats it. - */ - if(prim_body_decoder(s_arg.type_descriptor, - s_arg.struct_key, &ch, 0) - != XPBD_BODY_CONSUMED) { - /* - * This decoder does not like empty stuff. - */ - ASN__DECODE_FAILED; - } - } - break; - case RC_WMORE: - /* - * Redo the whole thing later. - * We don't have a context to save intermediate parsing state. - */ - rc.consumed = 0; - break; - case RC_FAIL: - rc.consumed = 0; - if(s_arg.want_more) - rc.code = RC_WMORE; - else - ASN__DECODE_FAILED; - break; - } - return rc; -} - diff --git a/e2sim/previous/e2apv1sim/ASN1c/asn_codecs_prim.h b/e2sim/previous/e2apv1sim/ASN1c/asn_codecs_prim.h deleted file mode 100644 index fbc5576..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/asn_codecs_prim.h +++ /dev/null @@ -1,51 +0,0 @@ -/*- - * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef ASN_CODECS_PRIM_H -#define ASN_CODECS_PRIM_H - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct ASN__PRIMITIVE_TYPE_s { - uint8_t *buf; /* Buffer with consecutive primitive encoding bytes */ - size_t size; /* Size of the buffer */ -} ASN__PRIMITIVE_TYPE_t; /* Do not use this type directly! */ - -asn_struct_free_f ASN__PRIMITIVE_TYPE_free; -ber_type_decoder_f ber_decode_primitive; -der_type_encoder_f der_encode_primitive; - -/* - * A callback specification for the xer_decode_primitive() function below. - */ -enum xer_pbd_rval { - XPBD_SYSTEM_FAILURE, /* System failure (memory shortage, etc) */ - XPBD_DECODER_LIMIT, /* Hit some decoder limitation or deficiency */ - XPBD_BROKEN_ENCODING, /* Encoding of a primitive body is broken */ - XPBD_NOT_BODY_IGNORE, /* Not a body format, but safe to ignore */ - XPBD_BODY_CONSUMED /* Body is recognized and consumed */ -}; -typedef enum xer_pbd_rval(xer_primitive_body_decoder_f)( - const asn_TYPE_descriptor_t *td, void *struct_ptr, const void *chunk_buf, - size_t chunk_size); - -/* - * Specific function to decode simple primitive types. - * Also see xer_decode_general() in xer_decoder.h - */ -asn_dec_rval_t xer_decode_primitive( - const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *type_descriptor, void **struct_ptr, - size_t struct_size, const char *opt_mname, const void *buf_ptr, size_t size, - xer_primitive_body_decoder_f *prim_body_decoder); - -#ifdef __cplusplus -} -#endif - -#endif /* ASN_CODECS_PRIM_H */ diff --git a/e2sim/previous/e2apv1sim/ASN1c/asn_constant.h b/e2sim/previous/e2apv1sim/ASN1c/asn_constant.h deleted file mode 100644 index af5a0fd..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/asn_constant.h +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - */ - -#ifndef _ASN_CONSTANT_H -#define _ASN_CONSTANT_H - -#ifdef __cplusplus -extern "C" { -#endif - -#define maxofMessageProtocolTests (15) -#define maxofRICstyles (63) -#define maxnoofQCI (256) -#define maxnoofQoSFlows (64) -#define maxnoofSliceItems (1024) -#define maxnoofContainerListItems (3) -#define maxCellingNBDU (512) -#define maxofContainers (8) -#define maxPLMN (12) -#define maxofRANparamters (65536) -#define maxUeReport (32) -#define maxCellingNB (16384) - - -#ifdef __cplusplus -} -#endif - -#endif /* _ASN_CONSTANT_H */ diff --git a/e2sim/previous/e2apv1sim/ASN1c/asn_internal.c b/e2sim/previous/e2apv1sim/ASN1c/asn_internal.c deleted file mode 100644 index 1aff95f..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/asn_internal.c +++ /dev/null @@ -1,48 +0,0 @@ -#include - -ssize_t -asn__format_to_callback(int (*cb)(const void *, size_t, void *key), void *key, - const char *fmt, ...) { - char scratch[64]; - char *buf = scratch; - size_t buf_size = sizeof(scratch); - int wrote; - int cb_ret; - - do { - va_list args; - va_start(args, fmt); - - wrote = vsnprintf(buf, buf_size, fmt, args); - if(wrote < (ssize_t)buf_size) { - if(wrote < 0) { - if(buf != scratch) FREEMEM(buf); - va_end(args); - return -1; - } - break; - } - - buf_size <<= 1; - if(buf == scratch) { - buf = MALLOC(buf_size); - if(!buf) return -1; - } else { - void *p = REALLOC(buf, buf_size); - if(!p) { - FREEMEM(buf); - return -1; - } - buf = p; - } - } while(1); - - cb_ret = cb(buf, wrote, key); - if(buf != scratch) FREEMEM(buf); - if(cb_ret < 0) { - return -1; - } - - return wrote; -} - diff --git a/e2sim/previous/e2apv1sim/ASN1c/asn_internal.h b/e2sim/previous/e2apv1sim/ASN1c/asn_internal.h deleted file mode 100644 index c4105ad..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/asn_internal.h +++ /dev/null @@ -1,159 +0,0 @@ -/* - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -/* - * Declarations internally useful for the ASN.1 support code. - */ -#ifndef ASN_INTERNAL_H -#define ASN_INTERNAL_H -#define __EXTENSIONS__ /* for Sun */ - -#include "asn_application.h" /* Application-visible API */ - -#ifndef __NO_ASSERT_H__ /* Include assert.h only for internal use. */ -#include /* for assert() macro */ -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -/* Environment version might be used to avoid running with the old library */ -#define ASN1C_ENVIRONMENT_VERSION 923 /* Compile-time version */ -int get_asn1c_environment_version(void); /* Run-time version */ - -#define CALLOC(nmemb, size) calloc(nmemb, size) -#define MALLOC(size) malloc(size) -#define REALLOC(oldptr, size) realloc(oldptr, size) -#define FREEMEM(ptr) free(ptr) - -#define asn_debug_indent 0 -#define ASN_DEBUG_INDENT_ADD(i) do{}while(0) - -#ifdef EMIT_ASN_DEBUG -#warning "Use ASN_EMIT_DEBUG instead of EMIT_ASN_DEBUG" -#define ASN_EMIT_DEBUG EMIT_ASN_DEBUG -#endif - -/* - * A macro for debugging the ASN.1 internals. - * You may enable or override it. - */ -#ifndef ASN_DEBUG /* If debugging code is not defined elsewhere... */ -#if ASN_EMIT_DEBUG == 1 /* And it was asked to emit this code... */ -#if !defined(BELL_LABS) /* Bell Labs */ - //#if __STDC_VERSION__ >= 199901L -#ifdef ASN_THREAD_SAFE -/* Thread safety requires sacrifice in output indentation: - * Retain empty definition of ASN_DEBUG_INDENT_ADD. */ -#else /* !ASN_THREAD_SAFE */ -#undef ASN_DEBUG_INDENT_ADD -#undef asn_debug_indent -int asn_debug_indent; -#define ASN_DEBUG_INDENT_ADD(i) do { asn_debug_indent += i; } while(0) -#endif /* ASN_THREAD_SAFE */ -#if defined(BELL_LABS) /* Bell Labs version */ -extern int logAsn1c(const char *filename, int linenumber, const char *format, ...); -#define ASN_DEBUG(fmt, args...) do { \ - (void) logAsn1c(__FILE__, __LINE__, fmt, ##args); \ - } while(0) -#else -#define ASN_DEBUG(fmt, args...) do { \ - int adi = asn_debug_indent; \ - while(adi--) fprintf(stderr, " "); \ - fprintf(stderr, fmt, ##args); \ - fprintf(stderr, " (%s:%d)\n", \ - __FILE__, __LINE__); \ - } while(0) -#endif /* BELL_LABS */ -#else /* !C99 */ -void CC_PRINTFLIKE(1, 2) ASN_DEBUG_f(const char *fmt, ...); -#define ASN_DEBUG ASN_DEBUG_f -#endif /* C99 */ -#else /* ASN_EMIT_DEBUG != 1 */ -#if __STDC_VERSION__ >= 199901L -#define ASN_DEBUG(...) do{}while(0) -#else /* not C99 */ -static void CC_PRINTFLIKE(1, 2) ASN_DEBUG(const char *fmt, ...) { (void)fmt; } -#endif /* C99 or better */ -#endif /* ASN_EMIT_DEBUG */ -#endif /* ASN_DEBUG */ - -/* - * Print to a callback. - * The callback is expected to return negative values on error. - * 0 and positive values are treated as success. - * RETURN VALUES: - * -1: Failed to format or invoke the callback. - * >0: Size of the data that got delivered to the callback. - */ -ssize_t CC_PRINTFLIKE(3, 4) -asn__format_to_callback( - int (*callback)(const void *, size_t, void *key), void *key, - const char *fmt, ...); - -/* - * Invoke the application-supplied callback and fail, if something is wrong. - */ -#define ASN__E_cbc(buf, size) (cb((buf), (size), app_key) < 0) -#define ASN__E_CALLBACK(size, foo) \ - do { \ - if(foo) goto cb_failed; \ - er.encoded += (size); \ - } while(0) -#define ASN__CALLBACK(buf, size) ASN__E_CALLBACK(size, ASN__E_cbc(buf, size)) -#define ASN__CALLBACK2(buf1, size1, buf2, size2) \ - ASN__E_CALLBACK((size1) + (size2), \ - ASN__E_cbc(buf1, size1) || ASN__E_cbc(buf2, size2)) -#define ASN__CALLBACK3(buf1, size1, buf2, size2, buf3, size3) \ - ASN__E_CALLBACK((size1) + (size2) + (size3), \ - ASN__E_cbc(buf1, size1) || ASN__E_cbc(buf2, size2) \ - || ASN__E_cbc(buf3, size3)) - -#define ASN__TEXT_INDENT(nl, level) \ - do { \ - int tmp_level = (level); \ - int tmp_nl = ((nl) != 0); \ - int tmp_i; \ - if(tmp_nl) ASN__CALLBACK("\n", 1); \ - if(tmp_level < 0) tmp_level = 0; \ - for(tmp_i = 0; tmp_i < tmp_level; tmp_i++) ASN__CALLBACK(" ", 4); \ - } while(0) - -#define _i_INDENT(nl) do { \ - int tmp_i; \ - if((nl) && cb("\n", 1, app_key) < 0) \ - return -1; \ - for(tmp_i = 0; tmp_i < ilevel; tmp_i++) \ - if(cb(" ", 4, app_key) < 0) \ - return -1; \ - } while(0) - -/* - * Check stack against overflow, if limit is set. - */ -#define ASN__DEFAULT_STACK_MAX (30000) -static int CC_NOTUSED -ASN__STACK_OVERFLOW_CHECK(const asn_codec_ctx_t *ctx) { - if(ctx && ctx->max_stack_size) { - - /* ctx MUST be allocated on the stack */ - ptrdiff_t usedstack = ((const char *)ctx - (const char *)&ctx); - if(usedstack > 0) usedstack = -usedstack; /* grows up! */ - - /* double negative required to avoid int wrap-around */ - if(usedstack < -(ptrdiff_t)ctx->max_stack_size) { - ASN_DEBUG("Stack limit %ld reached", - (long)ctx->max_stack_size); - return -1; - } - } - return 0; -} - -#ifdef __cplusplus -} -#endif - -#endif /* ASN_INTERNAL_H */ diff --git a/e2sim/previous/e2apv1sim/ASN1c/asn_ioc.h b/e2sim/previous/e2apv1sim/ASN1c/asn_ioc.h deleted file mode 100644 index 7de210e..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/asn_ioc.h +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Run-time support for Information Object Classes. - * Copyright (c) 2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef ASN_IOC_H -#define ASN_IOC_H - -#include /* Platform-specific types */ - -#ifdef __cplusplus -extern "C" { -#endif - -struct asn_TYPE_descriptor_s; -struct asn_ioc_cell_s; - -/* - * X.681, #13 - */ -typedef struct asn_ioc_set_s { - size_t rows_count; - size_t columns_count; - const struct asn_ioc_cell_s *rows; -} asn_ioc_set_t; - - -typedef struct asn_ioc_cell_s { - const char *field_name; /* Is equal to corresponding column_name */ - enum { - aioc__undefined = 0, - aioc__value, - aioc__type, - aioc__open_type, - } cell_kind; - struct asn_TYPE_descriptor_s *type_descriptor; - const void *value_sptr; - struct { - size_t types_count; - struct { - unsigned choice_position; - } *types; - } open_type; -} asn_ioc_cell_t; - - -#ifdef __cplusplus -} -#endif - -#endif /* ASN_IOC_H */ diff --git a/e2sim/previous/e2apv1sim/ASN1c/asn_random_fill.c b/e2sim/previous/e2apv1sim/ASN1c/asn_random_fill.c deleted file mode 100644 index 819cf70..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/asn_random_fill.c +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Copyright (c) 2017 Lev Walkin . - * All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include - -int -asn_random_fill(const struct asn_TYPE_descriptor_s *td, void **struct_ptr, - size_t length) { - - if(td && td->op->random_fill) { - asn_random_fill_result_t res = - td->op->random_fill(td, struct_ptr, 0, length); - return (res.code == ARFILL_OK) ? 0 : -1; - } else { - return -1; - } -} - -static uintmax_t -asn__intmax_range(intmax_t lb, intmax_t ub) { - assert(lb <= ub); - if((ub < 0) == (lb < 0)) { - return ub - lb; - } else if(lb < 0) { - return 1 + ((uintmax_t)ub + (uintmax_t)-(lb + 1)); - } else { - assert(!"Unreachable"); - return 0; - } -} - -intmax_t -asn_random_between(intmax_t lb, intmax_t rb) { - if(lb == rb) { - return lb; - } else { - const uintmax_t intmax_max = ((~(uintmax_t)0) >> 1); - uintmax_t range = asn__intmax_range(lb, rb); - uintmax_t value = 0; - uintmax_t got_entropy = 0; - - assert(RAND_MAX > 0xffffff); /* Seen 7ffffffd! */ - assert(range < intmax_max); - - for(; got_entropy < range;) { - got_entropy = (got_entropy << 24) | 0xffffff; - value = (value << 24) | (random() % 0xffffff); - } - - return lb + (intmax_t)(value % (range + 1)); - } -} diff --git a/e2sim/previous/e2apv1sim/ASN1c/asn_random_fill.h b/e2sim/previous/e2apv1sim/ASN1c/asn_random_fill.h deleted file mode 100644 index 47f9b8a..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/asn_random_fill.h +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Copyright (c) 2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef ASN_RANDOM_FILL -#define ASN_RANDOM_FILL - -/* Forward declarations */ -struct asn_TYPE_descriptor_s; -struct asn_encoding_constraints_s; - -/* - * Initialize a structure with random data according to the type specification - * and optional member constraints. - * ARGUMENTS: - * (max_length) - See (approx_max_length_limit). - * (memb_constraints) - Member constraints, if exist. - * The type can be constrained differently according - * to PER and OER specifications, so we find a value - * at the intersection of these constraints. - * In case the return differs from ARFILL_OK, the (struct_ptr) contents - * and (current_length) value remain in their original state. - */ -typedef struct asn_random_fill_result_s { - enum { - ARFILL_FAILED = -1, /* System error (memory?) */ - ARFILL_OK = 0, /* Initialization succeeded */ - ARFILL_SKIPPED = 1 /* Not done due to (length?) constraint */ - } code; - size_t length; /* Approximate number of bytes created. */ -} asn_random_fill_result_t; -typedef asn_random_fill_result_t(asn_random_fill_f)( - const struct asn_TYPE_descriptor_s *td, void **struct_ptr, - const struct asn_encoding_constraints_s *memb_constraints, - size_t max_length); - -/* - * Returns 0 if the structure was properly initialized, -1 otherwise. - * The (approx_max_length_limit) specifies the approximate limit of the - * resulting structure in units closely resembling bytes. The actual result - * might be several times larger or smaller than the length limit. - */ -int asn_random_fill(const struct asn_TYPE_descriptor_s *td, void **struct_ptr, - size_t approx_max_length_limit); - -/* - * Returns a random number between min and max. - */ -intmax_t asn_random_between(intmax_t min, intmax_t max); - -#endif /* ASN_RANDOM_FILL */ diff --git a/e2sim/previous/e2apv1sim/ASN1c/asn_system.h b/e2sim/previous/e2apv1sim/ASN1c/asn_system.h deleted file mode 100644 index fa8cf11..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/asn_system.h +++ /dev/null @@ -1,150 +0,0 @@ -/* - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -/* - * Miscellaneous system-dependent types. - */ -#ifndef ASN_SYSTEM_H -#define ASN_SYSTEM_H - -#ifdef HAVE_CONFIG_H -#include "config.h" -#endif - -#ifndef _DEFAULT_SOURCE -#define _DEFAULT_SOURCE 1 -#endif - -#ifndef _BSD_SOURCE -#define _BSD_SOURCE /* for snprintf() on some linux systems */ -#endif - -#include /* For snprintf(3) */ -#include /* For *alloc(3) */ -#include /* For memcpy(3) */ -#include /* For size_t */ -#include /* For LONG_MAX */ -#include /* For va_start */ -#include /* for offsetof and ptrdiff_t */ - -#ifdef _WIN32 - -#include -#define snprintf _snprintf -#define vsnprintf _vsnprintf - -/* To avoid linking with ws2_32.lib, here's the definition of ntohl() */ -#define sys_ntohl(l) ((((l) << 24) & 0xff000000) \ - | (((l) << 8) & 0xff0000) \ - | (((l) >> 8) & 0xff00) \ - | ((l >> 24) & 0xff)) - -#ifdef _MSC_VER /* MSVS.Net */ -#ifndef __cplusplus -#define inline __inline -#endif -#ifndef ASSUMESTDTYPES /* Standard types have been defined elsewhere */ -#define ssize_t SSIZE_T -#if _MSC_VER < 1600 -typedef char int8_t; -typedef short int16_t; -typedef int int32_t; -typedef unsigned char uint8_t; -typedef unsigned short uint16_t; -typedef unsigned int uint32_t; -#else /* _MSC_VER >= 1600 */ -#include -#endif /* _MSC_VER < 1600 */ -#endif /* ASSUMESTDTYPES */ -#define WIN32_LEAN_AND_MEAN -#include -#include -#define isnan _isnan -#define finite _finite -#define copysign _copysign -#define ilogb _logb -#else /* !_MSC_VER */ -#include -#endif /* _MSC_VER */ - -#else /* !_WIN32 */ - -#if defined(__vxworks) -#include -#else /* !defined(__vxworks) */ - -#include /* C99 specifies this file */ -#include /* for ntohl() */ -#define sys_ntohl(foo) ntohl(foo) -#endif /* defined(__vxworks) */ - -#endif /* _WIN32 */ - -#if __GNUC__ >= 3 || defined(__clang__) -#define CC_ATTRIBUTE(attr) __attribute__((attr)) -#else -#define CC_ATTRIBUTE(attr) -#endif -#define CC_PRINTFLIKE(fmt, var) CC_ATTRIBUTE(format(printf, fmt, var)) -#define CC_NOTUSED CC_ATTRIBUTE(unused) -#ifndef CC_ATTR_NO_SANITIZE -#define CC_ATTR_NO_SANITIZE(what) CC_ATTRIBUTE(no_sanitize(what)) -#endif - -/* Figure out if thread safety is requested */ -#if !defined(ASN_THREAD_SAFE) && (defined(THREAD_SAFE) || defined(_REENTRANT)) -#define ASN_THREAD_SAFE -#endif /* Thread safety */ - -#ifndef offsetof /* If not defined by */ -#define offsetof(s, m) ((ptrdiff_t)&(((s *)0)->m) - (ptrdiff_t)((s *)0)) -#endif /* offsetof */ - -#ifndef MIN /* Suitable for comparing primitive types (integers) */ -#if defined(__GNUC__) -#define MIN(a,b) ({ __typeof a _a = a; __typeof b _b = b; \ - ((_a)<(_b)?(_a):(_b)); }) -#else /* !__GNUC__ */ -#define MIN(a,b) ((a)<(b)?(a):(b)) /* Unsafe variant */ -#endif /* __GNUC__ */ -#endif /* MIN */ - -#if __STDC_VERSION__ >= 199901L -#ifndef SIZE_MAX -#define SIZE_MAX ((~((size_t)0)) >> 1) -#endif - -#ifndef RSIZE_MAX /* C11, Annex K */ -#define RSIZE_MAX (SIZE_MAX >> 1) -#endif -#ifndef RSSIZE_MAX /* Halve signed size even further than unsigned */ -#define RSSIZE_MAX ((ssize_t)(RSIZE_MAX >> 1)) -#endif -#else /* Old compiler */ -#undef SIZE_MAX -#undef RSIZE_MAX -#undef RSSIZE_MAX -#define SIZE_MAX ((~((size_t)0)) >> 1) -#define RSIZE_MAX (SIZE_MAX >> 1) -#define RSSIZE_MAX ((ssize_t)(RSIZE_MAX >> 1)) -#endif - -#if __STDC_VERSION__ >= 199901L -#define ASN_PRI_SIZE "zu" -#define ASN_PRI_SSIZE "zd" -#define ASN_PRIuMAX PRIuMAX -#define ASN_PRIdMAX PRIdMAX -#else -#define ASN_PRI_SIZE "lu" -#define ASN_PRI_SSIZE "ld" -#if LLONG_MAX > LONG_MAX -#define ASN_PRIuMAX "llu" -#define ASN_PRIdMAX "lld" -#else -#define ASN_PRIuMAX "lu" -#define ASN_PRIdMAX "ld" -#endif -#endif - -#endif /* ASN_SYSTEM_H */ diff --git a/e2sim/previous/e2apv1sim/ASN1c/ber_decoder.c b/e2sim/previous/e2apv1sim/ASN1c/ber_decoder.c deleted file mode 100644 index 75d6016..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/ber_decoder.c +++ /dev/null @@ -1,283 +0,0 @@ -/*- - * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include - -#undef ADVANCE -#define ADVANCE(num_bytes) do { \ - size_t num = num_bytes; \ - ptr = ((const char *)ptr) + num; \ - size -= num; \ - consumed_myself += num; \ - } while(0) -#undef RETURN -#define RETURN(_code) do { \ - asn_dec_rval_t rval; \ - rval.code = _code; \ - if(opt_ctx) opt_ctx->step = step; /* Save context */ \ - if(_code == RC_OK || opt_ctx) \ - rval.consumed = consumed_myself; \ - else \ - rval.consumed = 0; /* Context-free */ \ - return rval; \ - } while(0) - -/* - * The BER decoder of any type. - */ -asn_dec_rval_t -ber_decode(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *type_descriptor, void **struct_ptr, - const void *ptr, size_t size) { - asn_codec_ctx_t s_codec_ctx; - - /* - * Stack checker requires that the codec context - * must be allocated on the stack. - */ - if(opt_codec_ctx) { - if(opt_codec_ctx->max_stack_size) { - s_codec_ctx = *opt_codec_ctx; - opt_codec_ctx = &s_codec_ctx; - } - } else { - /* If context is not given, be security-conscious anyway */ - memset(&s_codec_ctx, 0, sizeof(s_codec_ctx)); - s_codec_ctx.max_stack_size = ASN__DEFAULT_STACK_MAX; - opt_codec_ctx = &s_codec_ctx; - } - - /* - * Invoke type-specific decoder. - */ - return type_descriptor->op->ber_decoder(opt_codec_ctx, type_descriptor, - struct_ptr, /* Pointer to the destination structure */ - ptr, size, /* Buffer and its size */ - 0 /* Default tag mode is 0 */ - ); -} - -/* - * Check the set of >> tags matches the definition. - */ -asn_dec_rval_t -ber_check_tags(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, asn_struct_ctx_t *opt_ctx, - const void *ptr, size_t size, int tag_mode, int last_tag_form, - ber_tlv_len_t *last_length, int *opt_tlv_form) { - ssize_t consumed_myself = 0; - ssize_t tag_len; - ssize_t len_len; - ber_tlv_tag_t tlv_tag; - ber_tlv_len_t tlv_len; - ber_tlv_len_t limit_len = -1; - int expect_00_terminators = 0; - int tlv_constr = -1; /* If CHOICE, opt_tlv_form is not given */ - int step = opt_ctx ? opt_ctx->step : 0; /* Where we left previously */ - int tagno; - - /* - * Make sure we didn't exceed the maximum stack size. - */ - if(ASN__STACK_OVERFLOW_CHECK(opt_codec_ctx)) - RETURN(RC_FAIL); - - /* - * So what does all this implicit skip stuff mean? - * Imagine two types, - * A ::= [5] IMPLICIT T - * B ::= [2] EXPLICIT T - * Where T is defined as - * T ::= [4] IMPLICIT SEQUENCE { ... } - * - * Let's say, we are starting to decode type A, given the - * following TLV stream: <5> <0>. What does this mean? - * It means that the type A contains type T which is, - * in turn, empty. - * Remember though, that we are still in A. We cannot - * just pass control to the type T decoder. Why? Because - * the type T decoder expects <4> <0>, not <5> <0>. - * So, we must make sure we are going to receive <5> while - * still in A, then pass control to the T decoder, indicating - * that the tag <4> was implicitly skipped. The decoder of T - * hence will be prepared to treat <4> as valid tag, and decode - * it appropriately. - */ - - tagno = step /* Continuing where left previously */ - + (tag_mode==1?-1:0) - ; - ASN_DEBUG("ber_check_tags(%s, size=%ld, tm=%d, step=%d, tagno=%d)", - td->name, (long)size, tag_mode, step, tagno); - /* assert(td->tags_count >= 1) May not be the case for CHOICE or ANY */ - - if(tag_mode == 0 && tagno == (int)td->tags_count) { - /* - * This must be the _untagged_ ANY type, - * which outermost tag isn't known in advance. - * Fetch the tag and length separately. - */ - tag_len = ber_fetch_tag(ptr, size, &tlv_tag); - switch(tag_len) { - case -1: RETURN(RC_FAIL); - case 0: RETURN(RC_WMORE); - } - tlv_constr = BER_TLV_CONSTRUCTED(ptr); - len_len = ber_fetch_length(tlv_constr, - (const char *)ptr + tag_len, size - tag_len, &tlv_len); - switch(len_len) { - case -1: RETURN(RC_FAIL); - case 0: RETURN(RC_WMORE); - } - ASN_DEBUG("Advancing %ld in ANY case", - (long)(tag_len + len_len)); - ADVANCE(tag_len + len_len); - } else { - assert(tagno < (int)td->tags_count); /* At least one loop */ - } - for((void)tagno; tagno < (int)td->tags_count; tagno++, step++) { - - /* - * Fetch and process T from TLV. - */ - tag_len = ber_fetch_tag(ptr, size, &tlv_tag); - ASN_DEBUG("Fetching tag from {%p,%ld}: " - "len %ld, step %d, tagno %d got %s", - ptr, (long)size, - (long)tag_len, step, tagno, - ber_tlv_tag_string(tlv_tag)); - switch(tag_len) { - case -1: RETURN(RC_FAIL); - case 0: RETURN(RC_WMORE); - } - - tlv_constr = BER_TLV_CONSTRUCTED(ptr); - - /* - * If {I}, don't check anything. - * If {I,B,C}, check B and C unless we're at I. - */ - if(tag_mode != 0 && step == 0) { - /* - * We don't expect tag to match here. - * It's just because we don't know how the tag - * is supposed to look like. - */ - } else { - assert(tagno >= 0); /* Guaranteed by the code above */ - if(tlv_tag != td->tags[tagno]) { - /* - * Unexpected tag. Too bad. - */ - ASN_DEBUG("Expected: %s, " - "expectation failed (tn=%d, tm=%d)", - ber_tlv_tag_string(td->tags[tagno]), - tagno, tag_mode - ); - RETURN(RC_FAIL); - } - } - - /* - * Attention: if there are more tags expected, - * ensure that the current tag is presented - * in constructed form (it contains other tags!). - * If this one is the last one, check that the tag form - * matches the one given in descriptor. - */ - if(tagno < ((int)td->tags_count - 1)) { - if(tlv_constr == 0) { - ASN_DEBUG("tlv_constr = %d, expfail", - tlv_constr); - RETURN(RC_FAIL); - } - } else { - if(last_tag_form != tlv_constr - && last_tag_form != -1) { - ASN_DEBUG("last_tag_form %d != %d", - last_tag_form, tlv_constr); - RETURN(RC_FAIL); - } - } - - /* - * Fetch and process L from TLV. - */ - len_len = ber_fetch_length(tlv_constr, - (const char *)ptr + tag_len, size - tag_len, &tlv_len); - ASN_DEBUG("Fetching len = %ld", (long)len_len); - switch(len_len) { - case -1: RETURN(RC_FAIL); - case 0: RETURN(RC_WMORE); - } - - /* - * FIXME - * As of today, the chain of tags - * must either contain several indefinite length TLVs, - * or several definite length ones. - * No mixing is allowed. - */ - if(tlv_len == -1) { - /* - * Indefinite length. - */ - if(limit_len == -1) { - expect_00_terminators++; - } else { - ASN_DEBUG("Unexpected indefinite length " - "in a chain of definite lengths"); - RETURN(RC_FAIL); - } - ADVANCE(tag_len + len_len); - continue; - } else { - if(expect_00_terminators) { - ASN_DEBUG("Unexpected definite length " - "in a chain of indefinite lengths"); - RETURN(RC_FAIL); - } - } - - /* - * Check that multiple TLVs specify ever decreasing length, - * which is consistent. - */ - if(limit_len == -1) { - limit_len = tlv_len + tag_len + len_len; - if(limit_len < 0) { - /* Too great tlv_len value? */ - RETURN(RC_FAIL); - } - } else if(limit_len != tlv_len + tag_len + len_len) { - /* - * Inner TLV specifies length which is inconsistent - * with the outer TLV's length value. - */ - ASN_DEBUG("Outer TLV is %ld and inner is %ld", - (long)limit_len, (long)tlv_len); - RETURN(RC_FAIL); - } - - ADVANCE(tag_len + len_len); - - limit_len -= (tag_len + len_len); - if((ssize_t)size > limit_len) { - /* - * Make sure that we won't consume more bytes - * from the parent frame than the inferred limit. - */ - size = limit_len; - } - } - - if(opt_tlv_form) - *opt_tlv_form = tlv_constr; - if(expect_00_terminators) - *last_length = -expect_00_terminators; - else - *last_length = tlv_len; - - RETURN(RC_OK); -} diff --git a/e2sim/previous/e2apv1sim/ASN1c/ber_decoder.h b/e2sim/previous/e2apv1sim/ASN1c/ber_decoder.h deleted file mode 100644 index 1ac2a5e..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/ber_decoder.h +++ /dev/null @@ -1,66 +0,0 @@ -/*- - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef _BER_DECODER_H_ -#define _BER_DECODER_H_ - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -struct asn_TYPE_descriptor_s; /* Forward declaration */ -struct asn_codec_ctx_s; /* Forward declaration */ - -/* - * The BER decoder of any type. - * This function may be invoked directly from the application. - * Decodes BER, DER and CER data (DER and CER are different subsets of BER). - * - * NOTE: Use the der_encode() function (der_encoder.h) to produce encoding - * which is compliant with ber_decode(). - */ -asn_dec_rval_t ber_decode( - const struct asn_codec_ctx_s *opt_codec_ctx, - const struct asn_TYPE_descriptor_s *type_descriptor, - void **struct_ptr, /* Pointer to a target structure's pointer */ - const void *buffer, /* Data to be decoded */ - size_t size /* Size of that buffer */ -); - -/* - * Type of generic function which decodes the byte stream into the structure. - */ -typedef asn_dec_rval_t(ber_type_decoder_f)( - const struct asn_codec_ctx_s *opt_codec_ctx, - const struct asn_TYPE_descriptor_s *type_descriptor, void **struct_ptr, - const void *buf_ptr, size_t size, int tag_mode); - -/******************************* - * INTERNALLY USEFUL FUNCTIONS * - *******************************/ - -/* - * Check that all tags correspond to the type definition (as given in head). - * On return, last_length would contain either a non-negative length of the - * value part of the last TLV, or the negative number of expected - * "end of content" sequences. The number may only be negative if the - * head->last_tag_form is non-zero. - */ -asn_dec_rval_t ber_check_tags( - const struct asn_codec_ctx_s *opt_codec_ctx, /* codec options */ - const struct asn_TYPE_descriptor_s *type_descriptor, - asn_struct_ctx_t *opt_ctx, /* saved decoding context */ - const void *ptr, size_t size, - int tag_mode, /* {-1,0,1}: IMPLICIT, no, EXPLICIT */ - int last_tag_form, /* {-1,0:1}: any, primitive, constr */ - ber_tlv_len_t *last_length, int *opt_tlv_form /* optional tag form */ -); - -#ifdef __cplusplus -} -#endif - -#endif /* _BER_DECODER_H_ */ diff --git a/e2sim/previous/e2apv1sim/ASN1c/ber_tlv_length.c b/e2sim/previous/e2apv1sim/ASN1c/ber_tlv_length.c deleted file mode 100644 index 0a0deec..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/ber_tlv_length.c +++ /dev/null @@ -1,168 +0,0 @@ -/*- - * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include - -ssize_t -ber_fetch_length(int _is_constructed, const void *bufptr, size_t size, - ber_tlv_len_t *len_r) { - const uint8_t *buf = (const uint8_t *)bufptr; - unsigned oct; - - if(size == 0) - return 0; /* Want more */ - - oct = *(const uint8_t *)buf; - if((oct & 0x80) == 0) { - /* - * Short definite length. - */ - *len_r = oct; /* & 0x7F */ - return 1; - } else { - ber_tlv_len_t len; - size_t skipped; - - if(_is_constructed && oct == 0x80) { - *len_r = -1; /* Indefinite length */ - return 1; - } - - if(oct == 0xff) { - /* Reserved in standard for future use. */ - return -1; - } - - oct &= 0x7F; /* Leave only the 7 LS bits */ - for(len = 0, buf++, skipped = 1; - oct && (++skipped <= size); buf++, oct--) { - - /* Verify that we won't overflow. */ - if(!(len >> ((8 * sizeof(len)) - (8+1)))) { - len = (len << 8) | *buf; - } else { - /* Too large length value. */ - return -1; - } - } - - if(oct == 0) { - if(len < 0 || len > RSSIZE_MAX) { - /* Length value out of sane range. */ - return -1; - } - - *len_r = len; - return skipped; - } - - return 0; /* Want more */ - } - -} - -ssize_t -ber_skip_length(const asn_codec_ctx_t *opt_codec_ctx, - int _is_constructed, const void *ptr, size_t size) { - ber_tlv_len_t vlen; /* Length of V in TLV */ - ssize_t tl; /* Length of L in TLV */ - ssize_t ll; /* Length of L in TLV */ - size_t skip; - - /* - * Make sure we didn't exceed the maximum stack size. - */ - if(ASN__STACK_OVERFLOW_CHECK(opt_codec_ctx)) - return -1; - - /* - * Determine the size of L in TLV. - */ - ll = ber_fetch_length(_is_constructed, ptr, size, &vlen); - if(ll <= 0) return ll; - - /* - * Definite length. - */ - if(vlen >= 0) { - skip = ll + vlen; - if(skip > size) - return 0; /* Want more */ - return skip; - } - - /* - * Indefinite length! - */ - ASN_DEBUG("Skipping indefinite length"); - for(skip = ll, ptr = ((const char *)ptr) + ll, size -= ll;;) { - ber_tlv_tag_t tag; - - /* Fetch the tag */ - tl = ber_fetch_tag(ptr, size, &tag); - if(tl <= 0) return tl; - - ll = ber_skip_length(opt_codec_ctx, - BER_TLV_CONSTRUCTED(ptr), - ((const char *)ptr) + tl, size - tl); - if(ll <= 0) return ll; - - skip += tl + ll; - - /* - * This may be the end of the indefinite length structure, - * two consecutive 0 octets. - * Check if it is true. - */ - if(((const uint8_t *)ptr)[0] == 0 - && ((const uint8_t *)ptr)[1] == 0) - return skip; - - ptr = ((const char *)ptr) + tl + ll; - size -= tl + ll; - } - - /* UNREACHABLE */ -} - -size_t -der_tlv_length_serialize(ber_tlv_len_t len, void *bufp, size_t size) { - size_t required_size; /* Size of len encoding */ - uint8_t *buf = (uint8_t *)bufp; - uint8_t *end; - int i; - - if(len <= 127) { - /* Encoded in 1 octet */ - if(size) *buf = (uint8_t)len; - return 1; - } - - /* - * Compute the size of the subsequent bytes. - */ - for(required_size = 1, i = 8; i < 8 * (int)sizeof(len); i += 8) { - if(len >> i) - required_size++; - else - break; - } - - if(size <= required_size) - return required_size + 1; - - *buf++ = (uint8_t)(0x80 | required_size); /* Length of the encoding */ - - /* - * Produce the len encoding, space permitting. - */ - end = buf + required_size; - for(i -= 8; buf < end; i -= 8, buf++) - *buf = (uint8_t)(len >> i); - - return required_size + 1; -} - diff --git a/e2sim/previous/e2apv1sim/ASN1c/ber_tlv_length.h b/e2sim/previous/e2apv1sim/ASN1c/ber_tlv_length.h deleted file mode 100644 index d1e4d48..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/ber_tlv_length.h +++ /dev/null @@ -1,50 +0,0 @@ -/*- - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef _BER_TLV_LENGTH_H_ -#define _BER_TLV_LENGTH_H_ - -#ifdef __cplusplus -extern "C" { -#endif - -typedef ssize_t ber_tlv_len_t; - -/* - * This function tries to fetch the length of the BER TLV value and place it - * in *len_r. - * RETURN VALUES: - * 0: More data expected than bufptr contains. - * -1: Fatal error deciphering length. - * >0: Number of bytes used from bufptr. - * On return with >0, len_r is constrained as -1..MAX, where -1 mean - * that the value is of indefinite length. - */ -ssize_t ber_fetch_length(int _is_constructed, const void *bufptr, size_t size, - ber_tlv_len_t *len_r); - -/* - * This function expects bufptr to be positioned over L in TLV. - * It returns number of bytes occupied by L and V together, suitable - * for skipping. The function properly handles indefinite length. - * RETURN VALUES: - * Standard {-1,0,>0} convention. - */ -ssize_t ber_skip_length( - const struct asn_codec_ctx_s *opt_codec_ctx, /* optional context */ - int _is_constructed, const void *bufptr, size_t size); - -/* - * This function serializes the length (L from TLV) in DER format. - * It always returns number of bytes necessary to represent the length, - * it is a caller's responsibility to check the return value - * against the supplied buffer's size. - */ -size_t der_tlv_length_serialize(ber_tlv_len_t len, void *bufptr, size_t size); - -#ifdef __cplusplus -} -#endif - -#endif /* _BER_TLV_LENGTH_H_ */ diff --git a/e2sim/previous/e2apv1sim/ASN1c/ber_tlv_tag.c b/e2sim/previous/e2apv1sim/ASN1c/ber_tlv_tag.c deleted file mode 100644 index 4a7d732..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/ber_tlv_tag.c +++ /dev/null @@ -1,144 +0,0 @@ -/*- - * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include - -ssize_t -ber_fetch_tag(const void *ptr, size_t size, ber_tlv_tag_t *tag_r) { - ber_tlv_tag_t val; - ber_tlv_tag_t tclass; - size_t skipped; - - if(size == 0) - return 0; - - val = *(const uint8_t *)ptr; - tclass = (val >> 6); - if((val &= 0x1F) != 0x1F) { - /* - * Simple form: everything encoded in a single octet. - * Tag Class is encoded using two least significant bits. - */ - *tag_r = (val << 2) | tclass; - return 1; - } - - /* - * Each octet contains 7 bits of useful information. - * The MSB is 0 if it is the last octet of the tag. - */ - for(val = 0, ptr = ((const char *)ptr) + 1, skipped = 2; - skipped <= size; - ptr = ((const char *)ptr) + 1, skipped++) { - unsigned int oct = *(const uint8_t *)ptr; - if(oct & 0x80) { - val = (val << 7) | (oct & 0x7F); - /* - * Make sure there are at least 9 bits spare - * at the MS side of a value. - */ - if(val >> ((8 * sizeof(val)) - 9)) { - /* - * We would not be able to accomodate - * any more tag bits. - */ - return -1; - } - } else { - val = (val << 7) | oct; - *tag_r = (val << 2) | tclass; - return skipped; - } - } - - return 0; /* Want more */ -} - - -ssize_t -ber_tlv_tag_fwrite(ber_tlv_tag_t tag, FILE *f) { - char buf[sizeof("[APPLICATION ]") + 32]; - ssize_t ret; - - ret = ber_tlv_tag_snprint(tag, buf, sizeof(buf)); - if(ret >= (ssize_t)sizeof(buf) || ret < 2) { - errno = EPERM; - return -1; - } - - return fwrite(buf, 1, ret, f); -} - -ssize_t -ber_tlv_tag_snprint(ber_tlv_tag_t tag, char *buf, size_t size) { - const char *type = 0; - int ret; - - switch(tag & 0x3) { - case ASN_TAG_CLASS_UNIVERSAL: type = "UNIVERSAL "; break; - case ASN_TAG_CLASS_APPLICATION: type = "APPLICATION "; break; - case ASN_TAG_CLASS_CONTEXT: type = ""; break; - case ASN_TAG_CLASS_PRIVATE: type = "PRIVATE "; break; - } - - ret = snprintf(buf, size, "[%s%u]", type, ((unsigned)tag) >> 2); - if(ret <= 0 && size) buf[0] = '\0'; /* against broken libc's */ - - return ret; -} - -char * -ber_tlv_tag_string(ber_tlv_tag_t tag) { - static char buf[sizeof("[APPLICATION ]") + 32]; - - (void)ber_tlv_tag_snprint(tag, buf, sizeof(buf)); - - return buf; -} - - -size_t -ber_tlv_tag_serialize(ber_tlv_tag_t tag, void *bufp, size_t size) { - int tclass = BER_TAG_CLASS(tag); - ber_tlv_tag_t tval = BER_TAG_VALUE(tag); - uint8_t *buf = (uint8_t *)bufp; - uint8_t *end; - size_t required_size; - size_t i; - - if(tval <= 30) { - /* Encoded in 1 octet */ - if(size) buf[0] = (tclass << 6) | tval; - return 1; - } else if(size) { - *buf++ = (tclass << 6) | 0x1F; - size--; - } - - /* - * Compute the size of the subsequent bytes. - */ - for(required_size = 1, i = 7; i < 8 * sizeof(tval); i += 7) { - if(tval >> i) - required_size++; - else - break; - } - - if(size < required_size) - return required_size + 1; - - /* - * Fill in the buffer, space permitting. - */ - end = buf + required_size - 1; - for(i -= 7; buf < end; i -= 7, buf++) - *buf = 0x80 | ((tval >> i) & 0x7F); - *buf = (tval & 0x7F); /* Last octet without high bit */ - - return required_size + 1; -} - diff --git a/e2sim/previous/e2apv1sim/ASN1c/ber_tlv_tag.h b/e2sim/previous/e2apv1sim/ASN1c/ber_tlv_tag.h deleted file mode 100644 index ce227ad..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/ber_tlv_tag.h +++ /dev/null @@ -1,60 +0,0 @@ -/*- - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef _BER_TLV_TAG_H_ -#define _BER_TLV_TAG_H_ - -#ifdef __cplusplus -extern "C" { -#endif - -enum asn_tag_class { - ASN_TAG_CLASS_UNIVERSAL = 0, /* 0b00 */ - ASN_TAG_CLASS_APPLICATION = 1, /* 0b01 */ - ASN_TAG_CLASS_CONTEXT = 2, /* 0b10 */ - ASN_TAG_CLASS_PRIVATE = 3 /* 0b11 */ -}; -typedef unsigned ber_tlv_tag_t; /* BER TAG from Tag-Length-Value */ - -/* - * Tag class is encoded together with tag value for optimization purposes. - */ -#define BER_TAG_CLASS(tag) ((tag) & 0x3) -#define BER_TAG_VALUE(tag) ((tag) >> 2) -#define BER_TLV_CONSTRUCTED(tagptr) (((*(const uint8_t *)tagptr)&0x20)?1:0) - -#define BER_TAGS_EQUAL(tag1, tag2) ((tag1) == (tag2)) - -/* - * Several functions for printing the TAG in the canonical form - * (i.e. "[PRIVATE 0]"). - * Return values correspond to their libc counterparts (if any). - */ -ssize_t ber_tlv_tag_snprint(ber_tlv_tag_t tag, char *buf, size_t buflen); -ssize_t ber_tlv_tag_fwrite(ber_tlv_tag_t tag, FILE *); -char *ber_tlv_tag_string(ber_tlv_tag_t tag); - - -/* - * This function tries to fetch the tag from the input stream. - * RETURN VALUES: - * 0: More data expected than bufptr contains. - * -1: Fatal error deciphering tag. - * >0: Number of bytes used from bufptr. tag_r will contain the tag. - */ -ssize_t ber_fetch_tag(const void *bufptr, size_t size, ber_tlv_tag_t *tag_r); - -/* - * This function serializes the tag (T from TLV) in BER format. - * It always returns number of bytes necessary to represent the tag, - * it is a caller's responsibility to check the return value - * against the supplied buffer's size. - */ -size_t ber_tlv_tag_serialize(ber_tlv_tag_t tag, void *bufptr, size_t size); - -#ifdef __cplusplus -} -#endif - -#endif /* _BER_TLV_TAG_H_ */ diff --git a/e2sim/previous/e2apv1sim/ASN1c/constr_CHOICE.c b/e2sim/previous/e2apv1sim/ASN1c/constr_CHOICE.c deleted file mode 100644 index 86dcbb0..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/constr_CHOICE.c +++ /dev/null @@ -1,1533 +0,0 @@ -/* - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include - -/* - * Number of bytes left for this structure. - * (ctx->left) indicates the number of bytes _transferred_ for the structure. - * (size) contains the number of bytes in the buffer passed. - */ -#define LEFT ((size<(size_t)ctx->left)?size:(size_t)ctx->left) - -/* - * If the subprocessor function returns with an indication that it wants - * more data, it may well be a fatal decoding problem, because the - * size is constrained by the 's L, even if the buffer size allows - * reading more data. - * For example, consider the buffer containing the following TLVs: - * ... - * The TLV length clearly indicates that one byte is expected in V, but - * if the V processor returns with "want more data" even if the buffer - * contains way more data than the V processor have seen. - */ -#define SIZE_VIOLATION (ctx->left >= 0 && (size_t)ctx->left <= size) - -/* - * This macro "eats" the part of the buffer which is definitely "consumed", - * i.e. was correctly converted into local representation or rightfully skipped. - */ -#undef ADVANCE -#define ADVANCE(num_bytes) do { \ - size_t num = num_bytes; \ - ptr = ((const char *)ptr) + num;\ - size -= num; \ - if(ctx->left >= 0) \ - ctx->left -= num; \ - consumed_myself += num; \ - } while(0) - -/* - * Switch to the next phase of parsing. - */ -#undef NEXT_PHASE -#define NEXT_PHASE(ctx) do { \ - ctx->phase++; \ - ctx->step = 0; \ - } while(0) - -/* - * Return a standardized complex structure. - */ -#undef RETURN -#define RETURN(_code) do { \ - rval.code = _code; \ - rval.consumed = consumed_myself;\ - return rval; \ - } while(0) - -/* - * See the definitions. - */ -static unsigned _fetch_present_idx(const void *struct_ptr, unsigned off, - unsigned size); -static void _set_present_idx(void *sptr, unsigned offset, unsigned size, - unsigned pres); -static const void *_get_member_ptr(const asn_TYPE_descriptor_t *, - const void *sptr, asn_TYPE_member_t **elm, - unsigned *present); - -/* - * Tags are canonically sorted in the tag to member table. - */ -static int -_search4tag(const void *ap, const void *bp) { - const asn_TYPE_tag2member_t *a = (const asn_TYPE_tag2member_t *)ap; - const asn_TYPE_tag2member_t *b = (const asn_TYPE_tag2member_t *)bp; - - int a_class = BER_TAG_CLASS(a->el_tag); - int b_class = BER_TAG_CLASS(b->el_tag); - - if(a_class == b_class) { - ber_tlv_tag_t a_value = BER_TAG_VALUE(a->el_tag); - ber_tlv_tag_t b_value = BER_TAG_VALUE(b->el_tag); - - if(a_value == b_value) - return 0; - else if(a_value < b_value) - return -1; - else - return 1; - } else if(a_class < b_class) { - return -1; - } else { - return 1; - } -} - -/* - * The decoder of the CHOICE type. - */ -asn_dec_rval_t -CHOICE_decode_ber(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **struct_ptr, - const void *ptr, size_t size, int tag_mode) { - /* - * Bring closer parts of structure description. - */ - const asn_CHOICE_specifics_t *specs = - (const asn_CHOICE_specifics_t *)td->specifics; - asn_TYPE_member_t *elements = td->elements; - - /* - * Parts of the structure being constructed. - */ - void *st = *struct_ptr; /* Target structure. */ - asn_struct_ctx_t *ctx; /* Decoder context */ - - ber_tlv_tag_t tlv_tag; /* T from TLV */ - ssize_t tag_len; /* Length of TLV's T */ - asn_dec_rval_t rval; /* Return code from subparsers */ - - ssize_t consumed_myself = 0; /* Consumed bytes from ptr */ - - ASN_DEBUG("Decoding %s as CHOICE", td->name); - - /* - * Create the target structure if it is not present already. - */ - if(st == 0) { - st = *struct_ptr = CALLOC(1, specs->struct_size); - if(st == 0) { - RETURN(RC_FAIL); - } - } - - /* - * Restore parsing context. - */ - ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset); - - /* - * Start to parse where left previously - */ - switch(ctx->phase) { - case 0: - /* - * PHASE 0. - * Check that the set of tags associated with given structure - * perfectly fits our expectations. - */ - - if(tag_mode || td->tags_count) { - rval = ber_check_tags(opt_codec_ctx, td, ctx, ptr, size, - tag_mode, -1, &ctx->left, 0); - if(rval.code != RC_OK) { - ASN_DEBUG("%s tagging check failed: %d", - td->name, rval.code); - return rval; - } - - if(ctx->left >= 0) { - /* ?Substracted below! */ - ctx->left += rval.consumed; - } - ADVANCE(rval.consumed); - } else { - ctx->left = -1; - } - - NEXT_PHASE(ctx); - - ASN_DEBUG("Structure consumes %ld bytes, buffer %ld", - (long)ctx->left, (long)size); - - /* Fall through */ - case 1: - /* - * Fetch the T from TLV. - */ - tag_len = ber_fetch_tag(ptr, LEFT, &tlv_tag); - ASN_DEBUG("In %s CHOICE tag length %d", td->name, (int)tag_len); - switch(tag_len) { - case 0: if(!SIZE_VIOLATION) RETURN(RC_WMORE); - /* Fall through */ - case -1: RETURN(RC_FAIL); - } - - do { - const asn_TYPE_tag2member_t *t2m; - asn_TYPE_tag2member_t key; - - key.el_tag = tlv_tag; - t2m = (const asn_TYPE_tag2member_t *)bsearch(&key, - specs->tag2el, specs->tag2el_count, - sizeof(specs->tag2el[0]), _search4tag); - if(t2m) { - /* - * Found the element corresponding to the tag. - */ - NEXT_PHASE(ctx); - ctx->step = t2m->el_no; - break; - } else if(specs->ext_start == -1) { - ASN_DEBUG("Unexpected tag %s " - "in non-extensible CHOICE %s", - ber_tlv_tag_string(tlv_tag), td->name); - RETURN(RC_FAIL); - } else { - /* Skip this tag */ - ssize_t skip; - - ASN_DEBUG("Skipping unknown tag %s", - ber_tlv_tag_string(tlv_tag)); - - skip = ber_skip_length(opt_codec_ctx, - BER_TLV_CONSTRUCTED(ptr), - (const char *)ptr + tag_len, - LEFT - tag_len); - - switch(skip) { - case 0: if(!SIZE_VIOLATION) RETURN(RC_WMORE); - /* Fall through */ - case -1: RETURN(RC_FAIL); - } - - ADVANCE(skip + tag_len); - RETURN(RC_OK); - } - } while(0); - - case 2: - /* - * PHASE 2. - * Read in the element. - */ - do { - asn_TYPE_member_t *elm;/* CHOICE's element */ - void *memb_ptr; /* Pointer to the member */ - void **memb_ptr2; /* Pointer to that pointer */ - - elm = &elements[ctx->step]; - - /* - * Compute the position of the member inside a structure, - * and also a type of containment (it may be contained - * as pointer or using inline inclusion). - */ - if(elm->flags & ATF_POINTER) { - /* Member is a pointer to another structure */ - memb_ptr2 = (void **)((char *)st + elm->memb_offset); - } else { - /* - * A pointer to a pointer - * holding the start of the structure - */ - memb_ptr = (char *)st + elm->memb_offset; - memb_ptr2 = &memb_ptr; - } - /* Set presence to be able to free it properly at any time */ - _set_present_idx(st, specs->pres_offset, - specs->pres_size, ctx->step + 1); - /* - * Invoke the member fetch routine according to member's type - */ - rval = elm->type->op->ber_decoder(opt_codec_ctx, elm->type, - memb_ptr2, ptr, LEFT, elm->tag_mode); - switch(rval.code) { - case RC_OK: - break; - case RC_WMORE: /* More data expected */ - if(!SIZE_VIOLATION) { - ADVANCE(rval.consumed); - RETURN(RC_WMORE); - } - RETURN(RC_FAIL); - case RC_FAIL: /* Fatal error */ - RETURN(rval.code); - } /* switch(rval) */ - - ADVANCE(rval.consumed); - } while(0); - - NEXT_PHASE(ctx); - - /* Fall through */ - case 3: - ASN_DEBUG("CHOICE %s Leftover: %ld, size = %ld, tm=%d, tc=%d", - td->name, (long)ctx->left, (long)size, - tag_mode, td->tags_count); - - if(ctx->left > 0) { - /* - * The type must be fully decoded - * by the CHOICE member-specific decoder. - */ - RETURN(RC_FAIL); - } - - if(ctx->left == -1 - && !(tag_mode || td->tags_count)) { - /* - * This is an untagged CHOICE. - * It doesn't contain nothing - * except for the member itself, including all its tags. - * The decoding is completed. - */ - NEXT_PHASE(ctx); - break; - } - - /* - * Read in the "end of data chunks"'s. - */ - while(ctx->left < 0) { - ssize_t tl; - - tl = ber_fetch_tag(ptr, LEFT, &tlv_tag); - switch(tl) { - case 0: if(!SIZE_VIOLATION) RETURN(RC_WMORE); - /* Fall through */ - case -1: RETURN(RC_FAIL); - } - - /* - * Expected <0><0>... - */ - if(((const uint8_t *)ptr)[0] == 0) { - if(LEFT < 2) { - if(SIZE_VIOLATION) - RETURN(RC_FAIL); - else - RETURN(RC_WMORE); - } else if(((const uint8_t *)ptr)[1] == 0) { - /* - * Correctly finished with <0><0>. - */ - ADVANCE(2); - ctx->left++; - continue; - } - } else { - ASN_DEBUG("Unexpected continuation in %s", - td->name); - RETURN(RC_FAIL); - } - - /* UNREACHABLE */ - } - - NEXT_PHASE(ctx); - case 4: - /* No meaningful work here */ - break; - } - - RETURN(RC_OK); -} - -asn_enc_rval_t -CHOICE_encode_der(const asn_TYPE_descriptor_t *td, const void *sptr, - int tag_mode, ber_tlv_tag_t tag, asn_app_consume_bytes_f *cb, - void *app_key) { - const asn_CHOICE_specifics_t *specs = (const asn_CHOICE_specifics_t *)td->specifics; - asn_TYPE_member_t *elm; /* CHOICE element */ - asn_enc_rval_t erval = {0,0,0}; - const void *memb_ptr; - size_t computed_size = 0; - unsigned present; - - if(!sptr) ASN__ENCODE_FAILED; - - ASN_DEBUG("%s %s as CHOICE", - cb?"Encoding":"Estimating", td->name); - - present = _fetch_present_idx(sptr, - specs->pres_offset, specs->pres_size); - - /* - * If the structure was not initialized, it cannot be encoded: - * can't deduce what to encode in the choice type. - */ - if(present == 0 || present > td->elements_count) { - if(present == 0 && td->elements_count == 0) { - /* The CHOICE is empty?! */ - erval.encoded = 0; - ASN__ENCODED_OK(erval); - } - ASN__ENCODE_FAILED; - } - - /* - * Seek over the present member of the structure. - */ - elm = &td->elements[present-1]; - if(elm->flags & ATF_POINTER) { - memb_ptr = - *(const void *const *)((const char *)sptr + elm->memb_offset); - if(memb_ptr == 0) { - if(elm->optional) { - erval.encoded = 0; - ASN__ENCODED_OK(erval); - } - /* Mandatory element absent */ - ASN__ENCODE_FAILED; - } - } else { - memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); - } - - /* - * If the CHOICE itself is tagged EXPLICIT: - * T ::= [2] EXPLICIT CHOICE { ... } - * Then emit the appropriate tags. - */ - if(tag_mode == 1 || td->tags_count) { - /* - * For this, we need to pre-compute the member. - */ - ssize_t ret; - - /* Encode member with its tag */ - erval = elm->type->op->der_encoder(elm->type, memb_ptr, - elm->tag_mode, elm->tag, 0, 0); - if(erval.encoded == -1) - return erval; - - /* Encode CHOICE with parent or my own tag */ - ret = der_write_tags(td, erval.encoded, tag_mode, 1, tag, - cb, app_key); - if(ret == -1) - ASN__ENCODE_FAILED; - computed_size += ret; - } - - /* - * Encode the single underlying member. - */ - erval = elm->type->op->der_encoder(elm->type, memb_ptr, - elm->tag_mode, elm->tag, cb, app_key); - if(erval.encoded == -1) - return erval; - - ASN_DEBUG("Encoded CHOICE member in %ld bytes (+%ld)", - (long)erval.encoded, (long)computed_size); - - erval.encoded += computed_size; - - return erval; -} - -ber_tlv_tag_t -CHOICE_outmost_tag(const asn_TYPE_descriptor_t *td, const void *ptr, int tag_mode, ber_tlv_tag_t tag) { - const asn_CHOICE_specifics_t *specs = (const asn_CHOICE_specifics_t *)td->specifics; - unsigned present; - - assert(tag_mode == 0); (void)tag_mode; - assert(tag == 0); (void)tag; - - /* - * Figure out which CHOICE element is encoded. - */ - present = _fetch_present_idx(ptr, specs->pres_offset, specs->pres_size); - - if(present > 0 && present <= td->elements_count) { - const asn_TYPE_member_t *elm = &td->elements[present-1]; - const void *memb_ptr; - - if(elm->flags & ATF_POINTER) { - memb_ptr = *(const void * const *) - ((const char *)ptr + elm->memb_offset); - } else { - memb_ptr = (const void *) - ((const char *)ptr + elm->memb_offset); - } - - return asn_TYPE_outmost_tag(elm->type, memb_ptr, - elm->tag_mode, elm->tag); - } else { - return (ber_tlv_tag_t)-1; - } -} - -int -CHOICE_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const asn_CHOICE_specifics_t *specs = - (const asn_CHOICE_specifics_t *)td->specifics; - unsigned present; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - /* - * Figure out which CHOICE element is encoded. - */ - present = _fetch_present_idx(sptr, specs->pres_offset,specs->pres_size); - if(present > 0 && present <= td->elements_count) { - asn_TYPE_member_t *elm = &td->elements[present-1]; - const void *memb_ptr; - - if(elm->flags & ATF_POINTER) { - memb_ptr = *(const void * const *)((const char *)sptr + elm->memb_offset); - if(!memb_ptr) { - if(elm->optional) - return 0; - ASN__CTFAIL(app_key, td, sptr, - "%s: mandatory CHOICE element %s absent (%s:%d)", - td->name, elm->name, __FILE__, __LINE__); - return -1; - } - } else { - memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); - } - - if(elm->encoding_constraints.general_constraints) { - return elm->encoding_constraints.general_constraints(elm->type, memb_ptr, - ctfailcb, app_key); - } else { - return elm->type->encoding_constraints.general_constraints(elm->type, - memb_ptr, ctfailcb, app_key); - } - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: no CHOICE element given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -#undef XER_ADVANCE -#define XER_ADVANCE(num_bytes) do { \ - size_t num = num_bytes; \ - buf_ptr = (const void *)(((const char *)buf_ptr) + num); \ - size -= num; \ - consumed_myself += num; \ - } while(0) - -/* - * Decode the XER (XML) data. - */ -asn_dec_rval_t -CHOICE_decode_xer(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **struct_ptr, - const char *opt_mname, const void *buf_ptr, size_t size) { - /* - * Bring closer parts of structure description. - */ - const asn_CHOICE_specifics_t *specs = (const asn_CHOICE_specifics_t *)td->specifics; - const char *xml_tag = opt_mname ? opt_mname : td->xml_tag; - - /* - * Parts of the structure being constructed. - */ - void *st = *struct_ptr; /* Target structure. */ - asn_struct_ctx_t *ctx; /* Decoder context */ - - asn_dec_rval_t rval; /* Return value of a decoder */ - ssize_t consumed_myself = 0; /* Consumed bytes from ptr */ - size_t edx; /* Element index */ - - /* - * Create the target structure if it is not present already. - */ - if(st == 0) { - st = *struct_ptr = CALLOC(1, specs->struct_size); - if(st == 0) RETURN(RC_FAIL); - } - - /* - * Restore parsing context. - */ - ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset); - if(ctx->phase == 0 && !*xml_tag) - ctx->phase = 1; /* Skip the outer tag checking phase */ - - /* - * Phases of XER/XML processing: - * Phase 0: Check that the opening tag matches our expectations. - * Phase 1: Processing body and reacting on closing tag. - * Phase 2: Processing inner type. - * Phase 3: Only waiting for closing tag. - * Phase 4: Skipping unknown extensions. - * Phase 5: PHASED OUT - */ - for(edx = ctx->step; ctx->phase <= 4;) { - pxer_chunk_type_e ch_type; /* XER chunk type */ - ssize_t ch_size; /* Chunk size */ - xer_check_tag_e tcv; /* Tag check value */ - asn_TYPE_member_t *elm; - - /* - * Go inside the member. - */ - if(ctx->phase == 2) { - asn_dec_rval_t tmprval; - void *memb_ptr; /* Pointer to the member */ - void **memb_ptr2; /* Pointer to that pointer */ - unsigned old_present; - - elm = &td->elements[edx]; - - if(elm->flags & ATF_POINTER) { - /* Member is a pointer to another structure */ - memb_ptr2 = (void **)((char *)st - + elm->memb_offset); - } else { - memb_ptr = (char *)st + elm->memb_offset; - memb_ptr2 = &memb_ptr; - } - - /* Start/Continue decoding the inner member */ - tmprval = elm->type->op->xer_decoder(opt_codec_ctx, - elm->type, memb_ptr2, elm->name, - buf_ptr, size); - XER_ADVANCE(tmprval.consumed); - ASN_DEBUG("XER/CHOICE: itdf: [%s] code=%d", - elm->type->name, tmprval.code); - old_present = _fetch_present_idx(st, - specs->pres_offset, specs->pres_size); - assert(old_present == 0 || old_present == edx + 1); - /* Record what we've got */ - _set_present_idx(st, - specs->pres_offset, specs->pres_size, edx + 1); - if(tmprval.code != RC_OK) - RETURN(tmprval.code); - ctx->phase = 3; - /* Fall through */ - } - - /* No need to wait for closing tag; special mode. */ - if(ctx->phase == 3 && !*xml_tag) { - ctx->phase = 5; /* Phase out */ - RETURN(RC_OK); - } - - /* - * Get the next part of the XML stream. - */ - ch_size = xer_next_token(&ctx->context, buf_ptr, size, &ch_type); - if(ch_size == -1) { - RETURN(RC_FAIL); - } else { - switch(ch_type) { - case PXER_WMORE: - RETURN(RC_WMORE); - case PXER_COMMENT: /* Got XML comment */ - case PXER_TEXT: /* Ignore free-standing text */ - XER_ADVANCE(ch_size); /* Skip silently */ - continue; - case PXER_TAG: - break; /* Check the rest down there */ - } - } - - tcv = xer_check_tag(buf_ptr, ch_size, xml_tag); - ASN_DEBUG("XER/CHOICE checked [%c%c%c%c] vs [%s], tcv=%d", - ch_size>0?((const uint8_t *)buf_ptr)[0]:'?', - ch_size>1?((const uint8_t *)buf_ptr)[1]:'?', - ch_size>2?((const uint8_t *)buf_ptr)[2]:'?', - ch_size>3?((const uint8_t *)buf_ptr)[3]:'?', - xml_tag, tcv); - - /* Skip the extensions section */ - if(ctx->phase == 4) { - ASN_DEBUG("skip_unknown(%d, %ld)", - tcv, (long)ctx->left); - switch(xer_skip_unknown(tcv, &ctx->left)) { - case -1: - ctx->phase = 5; - RETURN(RC_FAIL); - case 1: - ctx->phase = 3; - /* Fall through */ - case 0: - XER_ADVANCE(ch_size); - continue; - case 2: - ctx->phase = 3; - break; - } - } - - switch(tcv) { - case XCT_BOTH: - break; /* No CHOICE? */ - case XCT_CLOSING: - if(ctx->phase != 3) - break; - XER_ADVANCE(ch_size); - ctx->phase = 5; /* Phase out */ - RETURN(RC_OK); - case XCT_OPENING: - if(ctx->phase == 0) { - XER_ADVANCE(ch_size); - ctx->phase = 1; /* Processing body phase */ - continue; - } - /* Fall through */ - case XCT_UNKNOWN_OP: - case XCT_UNKNOWN_BO: - - if(ctx->phase != 1) - break; /* Really unexpected */ - - /* - * Search which inner member corresponds to this tag. - */ - for(edx = 0; edx < td->elements_count; edx++) { - elm = &td->elements[edx]; - tcv = xer_check_tag(buf_ptr,ch_size,elm->name); - switch(tcv) { - case XCT_BOTH: - case XCT_OPENING: - /* - * Process this member. - */ - ctx->step = edx; - ctx->phase = 2; - break; - case XCT_UNKNOWN_OP: - case XCT_UNKNOWN_BO: - continue; - default: - edx = td->elements_count; - break; /* Phase out */ - } - break; - } - if(edx != td->elements_count) - continue; - - /* It is expected extension */ - if(specs->ext_start != -1) { - ASN_DEBUG("Got anticipated extension"); - /* - * Check for (XCT_BOTH or XCT_UNKNOWN_BO) - * By using a mask. Only record a pure - * tags. - */ - if(tcv & XCT_CLOSING) { - /* Found without body */ - ctx->phase = 3; /* Terminating */ - } else { - ctx->left = 1; - ctx->phase = 4; /* Skip ...'s */ - } - XER_ADVANCE(ch_size); - continue; - } - - /* Fall through */ - default: - break; - } - - ASN_DEBUG("Unexpected XML tag [%c%c%c%c] in CHOICE [%s]" - " (ph=%d, tag=%s)", - ch_size>0?((const uint8_t *)buf_ptr)[0]:'?', - ch_size>1?((const uint8_t *)buf_ptr)[1]:'?', - ch_size>2?((const uint8_t *)buf_ptr)[2]:'?', - ch_size>3?((const uint8_t *)buf_ptr)[3]:'?', - td->name, ctx->phase, xml_tag); - break; - } - - ctx->phase = 5; /* Phase out, just in case */ - RETURN(RC_FAIL); -} - - -asn_enc_rval_t -CHOICE_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, - enum xer_encoder_flags_e flags, asn_app_consume_bytes_f *cb, - void *app_key) { - const asn_CHOICE_specifics_t *specs = - (const asn_CHOICE_specifics_t *)td->specifics; - asn_enc_rval_t er = {0,0,0}; - unsigned present = 0; - - if(!sptr) - ASN__ENCODE_FAILED; - - /* - * Figure out which CHOICE element is encoded. - */ - present = _fetch_present_idx(sptr, specs->pres_offset,specs->pres_size); - - if(present == 0 || present > td->elements_count) { - ASN__ENCODE_FAILED; - } else { - asn_enc_rval_t tmper = {0,0,0}; - asn_TYPE_member_t *elm = &td->elements[present-1]; - const void *memb_ptr = NULL; - const char *mname = elm->name; - unsigned int mlen = strlen(mname); - - if(elm->flags & ATF_POINTER) { - memb_ptr = - *(const void *const *)((const char *)sptr + elm->memb_offset); - if(!memb_ptr) ASN__ENCODE_FAILED; - } else { - memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); - } - - er.encoded = 0; - - if(!(flags & XER_F_CANONICAL)) ASN__TEXT_INDENT(1, ilevel); - ASN__CALLBACK3("<", 1, mname, mlen, ">", 1); - - tmper = elm->type->op->xer_encoder(elm->type, memb_ptr, - ilevel + 1, flags, cb, app_key); - if(tmper.encoded == -1) return tmper; - er.encoded += tmper.encoded; - - ASN__CALLBACK3("", 1); - } - - if(!(flags & XER_F_CANONICAL)) ASN__TEXT_INDENT(1, ilevel - 1); - - ASN__ENCODED_OK(er); -cb_failed: - ASN__ENCODE_FAILED; -} - -asn_dec_rval_t -CHOICE_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, - asn_per_data_t *pd) { - const asn_CHOICE_specifics_t *specs = - (const asn_CHOICE_specifics_t *)td->specifics; - asn_dec_rval_t rv; - const asn_per_constraint_t *ct; - asn_TYPE_member_t *elm; /* CHOICE's element */ - void *memb_ptr; - void **memb_ptr2; - void *st = *sptr; - int value; - - if(ASN__STACK_OVERFLOW_CHECK(opt_codec_ctx)) - ASN__DECODE_FAILED; - - /* - * Create the target structure if it is not present already. - */ - if(!st) { - st = *sptr = CALLOC(1, specs->struct_size); - if(!st) ASN__DECODE_FAILED; - } - - if(constraints) ct = &constraints->value; - else if(td->encoding_constraints.per_constraints) ct = &td->encoding_constraints.per_constraints->value; - else ct = 0; - - if(ct && ct->flags & APC_EXTENSIBLE) { - value = per_get_few_bits(pd, 1); - if(value < 0) ASN__DECODE_STARVED; - if(value) ct = 0; /* Not restricted */ - } - - if(ct && ct->range_bits >= 0) { - value = per_get_few_bits(pd, ct->range_bits); - if(value < 0) ASN__DECODE_STARVED; - ASN_DEBUG("CHOICE %s got index %d in range %d", - td->name, value, ct->range_bits); - if(value > ct->upper_bound) - ASN__DECODE_FAILED; - } else { - if(specs->ext_start == -1) - ASN__DECODE_FAILED; - value = uper_get_nsnnwn(pd); - if(value < 0) ASN__DECODE_STARVED; - value += specs->ext_start; - if((unsigned)value >= td->elements_count) - ASN__DECODE_FAILED; - } - - /* Adjust if canonical order is different from natural order */ - if(specs->from_canonical_order) { - ASN_DEBUG("CHOICE presence from wire %d", value); - value = specs->from_canonical_order[value]; - ASN_DEBUG("CHOICE presence index effective %d", value); - } - - /* Set presence to be able to free it later */ - _set_present_idx(st, specs->pres_offset, specs->pres_size, value + 1); - - elm = &td->elements[value]; - if(elm->flags & ATF_POINTER) { - /* Member is a pointer to another structure */ - memb_ptr2 = (void **)((char *)st + elm->memb_offset); - } else { - memb_ptr = (char *)st + elm->memb_offset; - memb_ptr2 = &memb_ptr; - } - ASN_DEBUG("Discovered CHOICE %s encodes %s", td->name, elm->name); - - if(ct && ct->range_bits >= 0) { - rv = elm->type->op->uper_decoder(opt_codec_ctx, elm->type, - elm->encoding_constraints.per_constraints, memb_ptr2, pd); - } else { - rv = uper_open_type_get(opt_codec_ctx, elm->type, - elm->encoding_constraints.per_constraints, memb_ptr2, pd); - } - - if(rv.code != RC_OK) - ASN_DEBUG("Failed to decode %s in %s (CHOICE) %d", - elm->name, td->name, rv.code); - return rv; -} - -asn_enc_rval_t -CHOICE_encode_uper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, const void *sptr, - asn_per_outp_t *po) { - const asn_CHOICE_specifics_t *specs = (const asn_CHOICE_specifics_t *)td->specifics; - asn_TYPE_member_t *elm; /* CHOICE's element */ - const asn_per_constraint_t *ct; - const void *memb_ptr; - unsigned present; - int present_enc; - - if(!sptr) ASN__ENCODE_FAILED; - - ASN_DEBUG("Encoding %s as CHOICE", td->name); - - if(constraints) ct = &constraints->value; - else if(td->encoding_constraints.per_constraints) - ct = &td->encoding_constraints.per_constraints->value; - else ct = 0; - - present = _fetch_present_idx(sptr, specs->pres_offset, specs->pres_size); - - /* - * If the structure was not initialized properly, it cannot be encoded: - * can't deduce what to encode in the choice type. - */ - if(present == 0 || present > td->elements_count) - ASN__ENCODE_FAILED; - else - present--; - - ASN_DEBUG("Encoding %s CHOICE element %d", td->name, present); - - /* Adjust if canonical order is different from natural order */ - if(specs->to_canonical_order) - present_enc = specs->to_canonical_order[present]; - else - present_enc = present; - - if(ct && ct->range_bits >= 0) { - if(present_enc < ct->lower_bound - || present_enc > ct->upper_bound) { - if(ct->flags & APC_EXTENSIBLE) { - ASN_DEBUG( - "CHOICE member %d (enc %d) is an extension (%ld..%ld)", - present, present_enc, ct->lower_bound, ct->upper_bound); - if(per_put_few_bits(po, 1, 1)) - ASN__ENCODE_FAILED; - } else { - ASN__ENCODE_FAILED; - } - ct = 0; - } - } - if(ct && ct->flags & APC_EXTENSIBLE) { - ASN_DEBUG("CHOICE member %d (enc %d) is not an extension (%ld..%ld)", - present, present_enc, ct->lower_bound, ct->upper_bound); - if(per_put_few_bits(po, 0, 1)) - ASN__ENCODE_FAILED; - } - - - elm = &td->elements[present]; - ASN_DEBUG("CHOICE member \"%s\" %d (as %d)", elm->name, present, - present_enc); - if(elm->flags & ATF_POINTER) { - /* Member is a pointer to another structure */ - memb_ptr = - *(const void *const *)((const char *)sptr + elm->memb_offset); - if(!memb_ptr) ASN__ENCODE_FAILED; - } else { - memb_ptr = (const char *)sptr + elm->memb_offset; - } - - if(ct && ct->range_bits >= 0) { - if(per_put_few_bits(po, present_enc, ct->range_bits)) - ASN__ENCODE_FAILED; - - return elm->type->op->uper_encoder( - elm->type, elm->encoding_constraints.per_constraints, memb_ptr, po); - } else { - asn_enc_rval_t rval = {0,0,0}; - if(specs->ext_start == -1) ASN__ENCODE_FAILED; - if(uper_put_nsnnwn(po, present_enc - specs->ext_start)) - ASN__ENCODE_FAILED; - if(uper_open_type_put(elm->type, - elm->encoding_constraints.per_constraints, - memb_ptr, po)) - ASN__ENCODE_FAILED; - rval.encoded = 0; - ASN__ENCODED_OK(rval); - } -} - -asn_dec_rval_t -CHOICE_decode_aper(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, asn_per_data_t *pd) { - const asn_CHOICE_specifics_t *specs = (const asn_CHOICE_specifics_t *)td->specifics; - asn_dec_rval_t rv; - const asn_per_constraint_t *ct; - const asn_per_constraint_t *ext_ct = NULL; - asn_TYPE_member_t *elm; /* CHOICE's element */ - void *memb_ptr; - void **memb_ptr2; - void *st = *sptr; - int value; - - if(ASN__STACK_OVERFLOW_CHECK(opt_codec_ctx)) - ASN__DECODE_FAILED; - - /* - * Create the target structure if it is not present already. - */ - if(!st) { - st = *sptr = CALLOC(1, specs->struct_size); - if(!st) ASN__DECODE_FAILED; - } - - if(constraints) ct = &constraints->value; - else if(td->encoding_constraints.per_constraints) - ct = &td->encoding_constraints.per_constraints->value; - else ct = 0; - - if(ct && ct->flags & APC_EXTENSIBLE) { - value = per_get_few_bits(pd, 1); - if(value < 0) ASN__DECODE_STARVED; - if(value) { - ext_ct = ct; - ct = 0; /* Not restricted */ - } - } - - - if(ct && ct->range_bits >= 0) { - value = per_get_few_bits(pd, ct->range_bits); - if(value < 0) ASN__DECODE_STARVED; - ASN_DEBUG("CHOICE %s got index %d in range %d", - td->name, value, ct->range_bits); - if(value > ct->upper_bound) - ASN__DECODE_FAILED; - } else { - if(specs->ext_start == -1) - ASN__DECODE_FAILED; - value = aper_get_nsnnwn(pd, ext_ct->range_bits); - if(value < 0) ASN__DECODE_STARVED; - value += specs->ext_start; - if((unsigned)value >= td->elements_count) - ASN__DECODE_FAILED; - } - - /* Adjust if canonical order is different from natural order */ - if(specs->from_canonical_order) - value = specs->from_canonical_order[value]; - - /* Set presence to be able to free it later */ - _set_present_idx(st, specs->pres_offset, specs->pres_size, value + 1); - - elm = &td->elements[value]; - if(elm->flags & ATF_POINTER) { - /* Member is a pointer to another structure */ - memb_ptr2 = (void **)((char *)st + elm->memb_offset); - } else { - memb_ptr = (char *)st + elm->memb_offset; - memb_ptr2 = &memb_ptr; - } - ASN_DEBUG("Discovered CHOICE %s encodes %s", td->name, elm->name); - - if(ct && ct->range_bits >= 0) { - rv = elm->type->op->aper_decoder(opt_codec_ctx, elm->type, - elm->encoding_constraints.per_constraints, memb_ptr2, pd); - } else { - rv = aper_open_type_get(opt_codec_ctx, elm->type, - elm->encoding_constraints.per_constraints, memb_ptr2, pd); - } - - if(rv.code != RC_OK) - ASN_DEBUG("Failed to decode %s in %s (CHOICE) %d", - elm->name, td->name, rv.code); - return rv; -} - -asn_enc_rval_t -CHOICE_encode_aper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_per_outp_t *po) { - const asn_CHOICE_specifics_t *specs = (const asn_CHOICE_specifics_t *)td->specifics; - const asn_TYPE_member_t *elm; /* CHOICE's element */ - const asn_per_constraint_t *ct = NULL; - const asn_per_constraint_t *ext_ct = NULL; - const void *memb_ptr; - unsigned present; - int present_enc; - - if(!sptr) ASN__ENCODE_FAILED; - - ASN_DEBUG("Encoding %s as CHOICE using ALIGNED PER", td->name); - - if(constraints) ct = &constraints->value; - else if(td->encoding_constraints.per_constraints) - ct = &td->encoding_constraints.per_constraints->value; - else ct = NULL; - - present = _fetch_present_idx(sptr, - specs->pres_offset, specs->pres_size); - - /* - * If the structure was not initialized properly, it cannot be encoded: - * can't deduce what to encode in the choice type. - */ - if(present <= 0 || (unsigned)present > td->elements_count) - ASN__ENCODE_FAILED; - else - present--; - - /* Adjust if canonical order is different from natural order */ - if(specs->to_canonical_order) - present_enc = specs->to_canonical_order[present]; - else - present_enc = present; - - ASN_DEBUG("Encoding %s CHOICE element %d", td->name, present); - - if(ct && (ct->range_bits >= 0)) { - // Value is not within the range of the primary values ? - if(present < ct->lower_bound || present > ct->upper_bound) { - if(ct->flags & APC_EXTENSIBLE) { - ASN_DEBUG("CHOICE member %d (enc %d) is an extension (%ld..%ld)", - present, present_enc, ct->lower_bound, ct->upper_bound); - // X691/23.5 Extension marker = 1 - if(per_put_few_bits(po, 1, 1)) { - ASN__ENCODE_FAILED; - } - } else { - ASN__ENCODE_FAILED; - } - // no more need of constraint. - ext_ct = ct; - ct = NULL; - } - } - - if(ct && (ct->flags & APC_EXTENSIBLE)) { - ASN_DEBUG("CHOICE member %d (enc %d) is not an extension (%ld..%ld)", - present, present, ct->lower_bound, ct->upper_bound); - // X691.23.5 Extension marker = 0 - if(per_put_few_bits(po, 0, 1)) { - ASN__ENCODE_FAILED; - } - } - - elm = &td->elements[present]; - if(elm->flags & ATF_POINTER) { - /* Member is a pointer to another structure */ - memb_ptr = *(const void *const *)((const char *)sptr + elm->memb_offset); - if(!memb_ptr) ASN__ENCODE_FAILED; - } else { - memb_ptr = (const char *)sptr + elm->memb_offset; - } - - if(ct && (ct->range_bits >= 0)) { - // By construction (ct != 0), the alternative value is a non extended one. - // X691/23.7 X691/23.6 alternative value encoded as a range_bits bits value. - if(per_put_few_bits(po, present_enc, ct->range_bits)) - ASN__ENCODE_FAILED; - - return elm->type->op->aper_encoder(elm->type, elm->encoding_constraints.per_constraints, - memb_ptr, po); - } else { - asn_enc_rval_t rval = {0,0,0}; - if(specs->ext_start == -1) - ASN__ENCODE_FAILED; - // X691/23.8 normally encoded as a small non negative whole number - - if(ext_ct && aper_put_nsnnwn(po, ext_ct->range_bits, present_enc - specs->ext_start)) - ASN__ENCODE_FAILED; - if(aper_open_type_put(elm->type, elm->encoding_constraints.per_constraints, - memb_ptr, po)) - ASN__ENCODE_FAILED; - rval.encoded = 0; - ASN__ENCODED_OK(rval); - } -} - -int -CHOICE_print(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, - asn_app_consume_bytes_f *cb, void *app_key) { - const asn_CHOICE_specifics_t *specs = (const asn_CHOICE_specifics_t *)td->specifics; - unsigned present; - - if(!sptr) return (cb("", 8, app_key) < 0) ? -1 : 0; - - /* - * Figure out which CHOICE element is encoded. - */ - present = _fetch_present_idx(sptr, specs->pres_offset,specs->pres_size); - - /* - * Print that element. - */ - if(present > 0 && present <= td->elements_count) { - asn_TYPE_member_t *elm = &td->elements[present-1]; - const void *memb_ptr; - - if(elm->flags & ATF_POINTER) { - memb_ptr = *(const void * const *)((const char *)sptr + elm->memb_offset); - if(!memb_ptr) return (cb("", 8, app_key) < 0) ? -1 : 0; - } else { - memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); - } - - /* Print member's name and stuff */ - if(0) { - if(cb(elm->name, strlen(elm->name), app_key) < 0 - || cb(": ", 2, app_key) < 0) - return -1; - } - - return elm->type->op->print_struct(elm->type, memb_ptr, ilevel, - cb, app_key); - } else { - return (cb("", 8, app_key) < 0) ? -1 : 0; - } -} - -void -CHOICE_free(const asn_TYPE_descriptor_t *td, void *ptr, - enum asn_struct_free_method method) { - const asn_CHOICE_specifics_t *specs = - (const asn_CHOICE_specifics_t *)td->specifics; - unsigned present; - - if(!td || !ptr) - return; - - ASN_DEBUG("Freeing %s as CHOICE", td->name); - - /* - * Figure out which CHOICE element is encoded. - */ - present = _fetch_present_idx(ptr, specs->pres_offset, specs->pres_size); - - /* - * Free that element. - */ - if(present > 0 && present <= td->elements_count) { - asn_TYPE_member_t *elm = &td->elements[present-1]; - void *memb_ptr; - - if(elm->flags & ATF_POINTER) { - memb_ptr = *(void **)((char *)ptr + elm->memb_offset); - if(memb_ptr) - ASN_STRUCT_FREE(*elm->type, memb_ptr); - } else { - memb_ptr = (void *)((char *)ptr + elm->memb_offset); - ASN_STRUCT_FREE_CONTENTS_ONLY(*elm->type, memb_ptr); - } - } - - switch(method) { - case ASFM_FREE_EVERYTHING: - FREEMEM(ptr); - break; - case ASFM_FREE_UNDERLYING: - break; - case ASFM_FREE_UNDERLYING_AND_RESET: - memset(ptr, 0, specs->struct_size); - break; - } -} - - -/* - * The following functions functions offer protection against -fshort-enums, - * compatible with little- and big-endian machines. - * If assertion is triggered, either disable -fshort-enums, or add an entry - * here with the ->pres_size of your target stracture. - * Unless the target structure is packed, the ".present" member - * is guaranteed to be aligned properly. ASN.1 compiler itself does not - * produce packed code. - */ -static unsigned -_fetch_present_idx(const void *struct_ptr, unsigned pres_offset, - unsigned pres_size) { - const void *present_ptr; - unsigned present; - - present_ptr = ((const char *)struct_ptr) + pres_offset; - - switch(pres_size) { - case sizeof(int): present = *(const unsigned int *)present_ptr; break; - case sizeof(short): present = *(const unsigned short *)present_ptr; break; - case sizeof(char): present = *(const unsigned char *)present_ptr; break; - default: - /* ANSI C mandates enum to be equivalent to integer */ - assert(pres_size != sizeof(int)); - return 0; /* If not aborted, pass back safe value */ - } - - return present; -} - -static void -_set_present_idx(void *struct_ptr, unsigned pres_offset, unsigned pres_size, - unsigned present) { - void *present_ptr; - present_ptr = ((char *)struct_ptr) + pres_offset; - - switch(pres_size) { - case sizeof(int): *(unsigned int *)present_ptr = present; break; - case sizeof(short): *(unsigned short *)present_ptr = present; break; - case sizeof(char): *(unsigned char *)present_ptr = present; break; - default: - /* ANSI C mandates enum to be equivalent to integer */ - assert(pres_size != sizeof(int)); - } -} - -static const void * -_get_member_ptr(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_TYPE_member_t **elm_ptr, unsigned *present_out) { - const asn_CHOICE_specifics_t *specs = - (const asn_CHOICE_specifics_t *)td->specifics; - unsigned present; - - if(!sptr) { - *elm_ptr = NULL; - *present_out = 0; - return NULL; - } - - /* - * Figure out which CHOICE element is encoded. - */ - present = _fetch_present_idx(sptr, specs->pres_offset, specs->pres_size); - *present_out = present; - - /* - * The presence index is intentionally 1-based to avoid - * treating zeroed structure as a valid one. - */ - if(present > 0 && present <= td->elements_count) { - asn_TYPE_member_t *const elm = &td->elements[present - 1]; - const void *memb_ptr; - - if(elm->flags & ATF_POINTER) { - memb_ptr = - *(const void *const *)((const char *)sptr + elm->memb_offset); - } else { - memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); - } - *elm_ptr = elm; - return memb_ptr; - } else { - *elm_ptr = NULL; - return NULL; - } - -} - -int -CHOICE_compare(const asn_TYPE_descriptor_t *td, const void *aptr, const void *bptr) { - asn_TYPE_member_t *aelm; - asn_TYPE_member_t *belm; - unsigned apresent = 0; - unsigned bpresent = 0; - const void *amember = _get_member_ptr(td, aptr, &aelm, &apresent); - const void *bmember = _get_member_ptr(td, bptr, &belm, &bpresent); - - if(amember && bmember) { - if(apresent == bpresent) { - assert(aelm == belm); - return aelm->type->op->compare_struct(aelm->type, amember, bmember); - } else if(apresent < bpresent) { - return -1; - } else { - return 1; - } - } else if(!amember) { - return -1; - } else { - return 1; - } -} - -/* - * Return the 1-based choice variant presence index. - * Returns 0 in case of error. - */ -unsigned -CHOICE_variant_get_presence(const asn_TYPE_descriptor_t *td, const void *sptr) { - const asn_CHOICE_specifics_t *specs = - (const asn_CHOICE_specifics_t *)td->specifics; - return _fetch_present_idx(sptr, specs->pres_offset, specs->pres_size); -} - -/* - * Sets or resets the 1-based choice variant presence index. - * In case a previous index is not zero, the currently selected structure - * member is freed and zeroed-out first. - * Returns 0 on success and -1 on error. - */ -int -CHOICE_variant_set_presence(const asn_TYPE_descriptor_t *td, void *sptr, - unsigned present) { - const asn_CHOICE_specifics_t *specs = - (const asn_CHOICE_specifics_t *)td->specifics; - unsigned old_present; - - if(!sptr) { - return -1; - } - - if(present > td->elements_count) - return -1; - - old_present = - _fetch_present_idx(sptr, specs->pres_offset, specs->pres_size); - if(present == old_present) - return 0; - - if(old_present != 0) { - assert(old_present <= td->elements_count); - ASN_STRUCT_RESET(*td, sptr); - } - - _set_present_idx(sptr, specs->pres_offset, specs->pres_size, present); - - return 0; -} - - -asn_random_fill_result_t -CHOICE_random_fill(const asn_TYPE_descriptor_t *td, void **sptr, - const asn_encoding_constraints_t *constr, - size_t max_length) { - const asn_CHOICE_specifics_t *specs = - (const asn_CHOICE_specifics_t *)td->specifics; - asn_random_fill_result_t res; - asn_random_fill_result_t result_failed = {ARFILL_FAILED, 0}; - asn_random_fill_result_t result_skipped = {ARFILL_SKIPPED, 0}; - const asn_TYPE_member_t *elm; - unsigned present; - void *memb_ptr; /* Pointer to the member */ - void **memb_ptr2; /* Pointer to that pointer */ - void *st = *sptr; - - if(max_length == 0) return result_skipped; - - (void)constr; - - if(st == NULL) { - st = CALLOC(1, specs->struct_size); - if(st == NULL) { - return result_failed; - } - } - - present = asn_random_between(1, td->elements_count); - elm = &td->elements[present - 1]; - - if(elm->flags & ATF_POINTER) { - /* Member is a pointer to another structure */ - memb_ptr2 = (void **)((char *)st + elm->memb_offset); - } else { - memb_ptr = (char *)st + elm->memb_offset; - memb_ptr2 = &memb_ptr; - } - - res = elm->type->op->random_fill(elm->type, memb_ptr2, - &elm->encoding_constraints, max_length); - _set_present_idx(st, specs->pres_offset, specs->pres_size, present); - if(res.code == ARFILL_OK) { - *sptr = st; - } else { - if(st == *sptr) { - ASN_STRUCT_RESET(*td, st); - } else { - ASN_STRUCT_FREE(*td, st); - } - } - - return res; -} - - -asn_TYPE_operation_t asn_OP_CHOICE = { - CHOICE_free, - CHOICE_print, - CHOICE_compare, - CHOICE_decode_ber, - CHOICE_encode_der, - CHOICE_decode_xer, - CHOICE_encode_xer, -#ifdef ASN_DISABLE_OER_SUPPORT - 0, - 0, -#else - CHOICE_decode_oer, - CHOICE_encode_oer, -#endif /* ASN_DISABLE_OER_SUPPORT */ -#ifdef ASN_DISABLE_PER_SUPPORT - 0, - 0, - 0, - 0, -#else - CHOICE_decode_uper, - CHOICE_encode_uper, - CHOICE_decode_aper, - CHOICE_encode_aper, -#endif /* ASN_DISABLE_PER_SUPPORT */ - CHOICE_random_fill, - CHOICE_outmost_tag -}; diff --git a/e2sim/previous/e2apv1sim/ASN1c/constr_CHOICE.h b/e2sim/previous/e2apv1sim/ASN1c/constr_CHOICE.h deleted file mode 100644 index a1999ed..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/constr_CHOICE.h +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef _CONSTR_CHOICE_H_ -#define _CONSTR_CHOICE_H_ - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct asn_CHOICE_specifics_s { - /* - * Target structure description. - */ - unsigned struct_size; /* Size of the target structure. */ - unsigned ctx_offset; /* Offset of the asn_codec_ctx_t member */ - unsigned pres_offset; /* Identifier of the present member */ - unsigned pres_size; /* Size of the identifier (enum) */ - - /* - * Tags to members mapping table. - */ - const asn_TYPE_tag2member_t *tag2el; - unsigned tag2el_count; - - /* Canonical ordering of CHOICE elements, for PER */ - const unsigned *to_canonical_order; - const unsigned *from_canonical_order; - - /* - * Extensions-related stuff. - */ - signed ext_start; /* First member of extensions, or -1 */ -} asn_CHOICE_specifics_t; - -/* - * A set specialized functions dealing with the CHOICE type. - */ -asn_struct_free_f CHOICE_free; -asn_struct_print_f CHOICE_print; -asn_struct_compare_f CHOICE_compare; -asn_constr_check_f CHOICE_constraint; -ber_type_decoder_f CHOICE_decode_ber; -der_type_encoder_f CHOICE_encode_der; -xer_type_decoder_f CHOICE_decode_xer; -xer_type_encoder_f CHOICE_encode_xer; -oer_type_decoder_f CHOICE_decode_oer; -oer_type_encoder_f CHOICE_encode_oer; -per_type_decoder_f CHOICE_decode_uper; -per_type_encoder_f CHOICE_encode_uper; -per_type_decoder_f CHOICE_decode_aper; -per_type_encoder_f CHOICE_encode_aper; -asn_outmost_tag_f CHOICE_outmost_tag; -asn_random_fill_f CHOICE_random_fill; -extern asn_TYPE_operation_t asn_OP_CHOICE; - -/* - * Return the 1-based choice variant presence index. - * Returns 0 in case of error. - */ -unsigned CHOICE_variant_get_presence(const asn_TYPE_descriptor_t *td, - const void *structure_ptr); - -/* - * Sets or resets the 1-based choice variant presence index. - * In case a previous index is not zero, the currently selected structure - * member is freed and zeroed-out first. - * Returns 0 on success and -1 on error. - */ -int CHOICE_variant_set_presence(const asn_TYPE_descriptor_t *td, - void *structure_ptr, unsigned present); - -#ifdef __cplusplus -} -#endif - -#endif /* _CONSTR_CHOICE_H_ */ diff --git a/e2sim/previous/e2apv1sim/ASN1c/constr_CHOICE_oer.c b/e2sim/previous/e2apv1sim/ASN1c/constr_CHOICE_oer.c deleted file mode 100644 index a4c591c..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/constr_CHOICE_oer.c +++ /dev/null @@ -1,380 +0,0 @@ -/* - * Copyright (c) 2017 Lev Walkin . - * All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef ASN_DISABLE_OER_SUPPORT - -#include -#include -#include - -/* - * Return a standardized complex structure. - */ -#undef RETURN -#define RETURN(_code) \ - do { \ - asn_dec_rval_t rval; \ - rval.code = _code; \ - rval.consumed = consumed_myself; \ - return rval; \ - } while(0) - -#undef ADVANCE -#define ADVANCE(num_bytes) \ - do { \ - size_t num = num_bytes; \ - ptr = ((const char *)ptr) + num; \ - size -= num; \ - consumed_myself += num; \ - } while(0) - -/* - * Switch to the next phase of parsing. - */ -#undef NEXT_PHASE -#define NEXT_PHASE(ctx) \ - do { \ - ctx->phase++; \ - ctx->step = 0; \ - } while(0) -#undef SET_PHASE -#define SET_PHASE(ctx, value) \ - do { \ - ctx->phase = value; \ - ctx->step = 0; \ - } while(0) - -/* - * Tags are canonically sorted in the tag to member table. - */ -static int -_search4tag(const void *ap, const void *bp) { - const asn_TYPE_tag2member_t *a = (const asn_TYPE_tag2member_t *)ap; - const asn_TYPE_tag2member_t *b = (const asn_TYPE_tag2member_t *)bp; - - int a_class = BER_TAG_CLASS(a->el_tag); - int b_class = BER_TAG_CLASS(b->el_tag); - - if(a_class == b_class) { - ber_tlv_tag_t a_value = BER_TAG_VALUE(a->el_tag); - ber_tlv_tag_t b_value = BER_TAG_VALUE(b->el_tag); - - if(a_value == b_value) - return 0; - else if(a_value < b_value) - return -1; - else - return 1; - } else if(a_class < b_class) { - return -1; - } else { - return 1; - } -} - -/* - * X.696 (08/2015) #8.7 Encoding of tags - */ -static ssize_t -oer_fetch_tag(const void *ptr, size_t size, ber_tlv_tag_t *tag_r) { - ber_tlv_tag_t val; - ber_tlv_tag_t tclass; - size_t skipped; - - if(size == 0) - return 0; - - val = *(const uint8_t *)ptr; - tclass = (val >> 6); - if((val & 0x3F) != 0x3F) { - /* #8.7.1 */ - *tag_r = ((val & 0x3F) << 2) | tclass; - return 1; - } - - /* - * Each octet contains 7 bits of useful information. - * The MSB is 0 if it is the last octet of the tag. - */ - for(val = 0, ptr = ((const char *)ptr) + 1, skipped = 2; skipped <= size; - ptr = ((const char *)ptr) + 1, skipped++) { - unsigned int oct = *(const uint8_t *)ptr; - if(oct & 0x80) { - val = (val << 7) | (oct & 0x7F); - /* - * Make sure there are at least 9 bits spare - * at the MS side of a value. - */ - if(val >> ((8 * sizeof(val)) - 9)) { - /* - * We would not be able to accomodate - * any more tag bits. - */ - return -1; - } - } else { - val = (val << 7) | oct; - *tag_r = (val << 2) | tclass; - return skipped; - } - } - - return 0; /* Want more */ -} - -asn_dec_rval_t -CHOICE_decode_oer(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_oer_constraints_t *constraints, void **struct_ptr, - const void *ptr, size_t size) { - /* - * Bring closer parts of structure description. - */ - const asn_CHOICE_specifics_t *specs = - (const asn_CHOICE_specifics_t *)td->specifics; - asn_TYPE_member_t *elements = td->elements; - - /* - * Parts of the structure being constructed. - */ - void *st = *struct_ptr; /* Target structure. */ - asn_struct_ctx_t *ctx; /* Decoder context */ - - ssize_t consumed_myself = 0; /* Consumed bytes from ptr */ - - (void)constraints; - - ASN_DEBUG("Decoding %s as CHOICE", td->name); - - /* - * Create the target structure if it is not present already. - */ - if(st == 0) { - st = *struct_ptr = CALLOC(1, specs->struct_size); - if(st == 0) { - RETURN(RC_FAIL); - } - } - - /* - * Restore parsing context. - */ - ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset); - switch(ctx->phase) { - case 0: { - /* - * Discover the tag. - */ - ber_tlv_tag_t tlv_tag; /* T from TLV */ - ssize_t tag_len; /* Length of TLV's T */ - - tag_len = oer_fetch_tag(ptr, size, &tlv_tag); - switch(tag_len) { - case 0: - ASN__DECODE_STARVED; - case -1: - ASN__DECODE_FAILED; - } - - do { - const asn_TYPE_tag2member_t *t2m; - asn_TYPE_tag2member_t key = {0, 0, 0, 0}; - key.el_tag = tlv_tag; - - t2m = (const asn_TYPE_tag2member_t *)bsearch( - &key, specs->tag2el, specs->tag2el_count, - sizeof(specs->tag2el[0]), _search4tag); - if(t2m) { - /* - * Found the element corresponding to the tag. - */ - NEXT_PHASE(ctx); - ctx->step = t2m->el_no; - break; - } else if(specs->ext_start == -1) { - ASN_DEBUG( - "Unexpected tag %s " - "in non-extensible CHOICE %s", - ber_tlv_tag_string(tlv_tag), td->name); - RETURN(RC_FAIL); - } else { - /* Skip open type extension */ - ASN_DEBUG( - "Not implemented skipping open type extension for tag %s", - ber_tlv_tag_string(tlv_tag)); - RETURN(RC_FAIL); - } - } while(0); - - - ADVANCE(tag_len); - } - /* Fall through */ - case 1: { - asn_TYPE_member_t *elm = &elements[ctx->step]; /* CHOICE's element */ - void *memb_ptr; /* Pointer to the member */ - void **memb_ptr2; /* Pointer to that pointer */ - asn_dec_rval_t rval = {0,0}; - - /* - * Compute the position of the member inside a structure, - * and also a type of containment (it may be contained - * as pointer or using inline inclusion). - */ - if(elm->flags & ATF_POINTER) { - /* Member is a pointer to another structure */ - memb_ptr2 = (void **)((char *)st + elm->memb_offset); - } else { - /* - * A pointer to a pointer - * holding the start of the structure - */ - memb_ptr = (char *)st + elm->memb_offset; - memb_ptr2 = &memb_ptr; - } - - /* Set presence to be able to free it properly at any time */ - (void)CHOICE_variant_set_presence(td, st, ctx->step + 1); - - if(specs->ext_start >= 0 && specs->ext_start <= ctx->step) { - ssize_t got = - oer_open_type_get(opt_codec_ctx, elm->type, - elm->encoding_constraints.oer_constraints, - memb_ptr2, ptr, size); - if(got < 0) ASN__DECODE_FAILED; - if(got == 0) ASN__DECODE_STARVED; - rval.code = RC_OK; - rval.consumed = got; - } else { - rval = elm->type->op->oer_decoder( - opt_codec_ctx, elm->type, - elm->encoding_constraints.oer_constraints, memb_ptr2, ptr, - size); - } - rval.consumed += consumed_myself; - switch(rval.code) { - case RC_OK: - NEXT_PHASE(ctx); - case RC_WMORE: - break; - case RC_FAIL: - SET_PHASE(ctx, 3); /* => 3 */ - } - return rval; - } - case 2: - /* Already decoded everything */ - RETURN(RC_OK); - case 3: - /* Failed to decode, after all */ - RETURN(RC_FAIL); - } - - RETURN(RC_FAIL); -} - -/* - * X.696 (08/2015) #8.7 Encoding of tags - */ -static ssize_t -oer_put_tag(ber_tlv_tag_t tag, asn_app_consume_bytes_f *cb, void *app_key) { - uint8_t tclass = BER_TAG_CLASS(tag); - ber_tlv_tag_t tval = BER_TAG_VALUE(tag); - - if(tval < 0x3F) { - uint8_t b = (uint8_t)((tclass << 6) | tval); - if(cb(&b, 1, app_key) < 0) { - return -1; - } - return 1; - } else { - uint8_t buf[1 + 2 * sizeof(tval)]; - uint8_t *b = &buf[sizeof(buf)-1]; /* Last addressable */ - size_t encoded; - for(; ; tval >>= 7) { - if(tval >> 7) { - *b-- = 0x80 | (tval & 0x7f); - } else { - *b-- = tval & 0x7f; - break; - } - } - *b = (uint8_t)((tclass << 6) | 0x3F); - encoded = sizeof(buf) - (b - buf); - if(cb(b, encoded, app_key) < 0) { - return -1; - } - return encoded; - } - -} - -/* - * Encode as Canonical OER. - */ -asn_enc_rval_t -CHOICE_encode_oer(const asn_TYPE_descriptor_t *td, - const asn_oer_constraints_t *constraints, const void *sptr, - asn_app_consume_bytes_f *cb, void *app_key) { - const asn_CHOICE_specifics_t *specs = - (const asn_CHOICE_specifics_t *)td->specifics; - asn_TYPE_member_t *elm; /* CHOICE element */ - unsigned present; - const void *memb_ptr; - ber_tlv_tag_t tag; - ssize_t tag_len; - asn_enc_rval_t er = {0, 0, 0}; - - (void)constraints; - - if(!sptr) ASN__ENCODE_FAILED; - - ASN_DEBUG("OER %s encoding as CHOICE", td->name); - - present = CHOICE_variant_get_presence(td, sptr); - if(present == 0 || present > td->elements_count) { - ASN_DEBUG("CHOICE %s member is not selected", td->name); - ASN__ENCODE_FAILED; - } - - elm = &td->elements[present-1]; - if(elm->flags & ATF_POINTER) { - memb_ptr = - *(const void *const *)((const char *)sptr + elm->memb_offset); - if(memb_ptr == 0) { - /* Mandatory element absent */ - ASN__ENCODE_FAILED; - } - } else { - memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); - } - - tag = asn_TYPE_outmost_tag(elm->type, memb_ptr, elm->tag_mode, elm->tag); - if(tag == 0) { - ASN__ENCODE_FAILED; - } - - tag_len = oer_put_tag(tag, cb, app_key); - if(tag_len < 0) { - ASN__ENCODE_FAILED; - } - - if(specs->ext_start >= 0 && (unsigned)specs->ext_start <= (present-1)) { - ssize_t encoded = oer_open_type_put(elm->type, - elm->encoding_constraints.oer_constraints, - memb_ptr, cb, app_key); - if(encoded < 0) ASN__ENCODE_FAILED; - er.encoded = tag_len + encoded; - } else { - er = elm->type->op->oer_encoder( - elm->type, elm->encoding_constraints.oer_constraints, memb_ptr, cb, - app_key); - if(er.encoded >= 0) er.encoded += tag_len; - } - - return er; -} - -#endif /* ASN_DISABLE_OER_SUPPORT */ diff --git a/e2sim/previous/e2apv1sim/ASN1c/constr_SEQUENCE.c b/e2sim/previous/e2apv1sim/ASN1c/constr_SEQUENCE.c deleted file mode 100644 index 43dcac7..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/constr_SEQUENCE.c +++ /dev/null @@ -1,2059 +0,0 @@ -/* - * Copyright (c) 2003-2017 Lev Walkin . - * All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include -#include - -/* - * Number of bytes left for this structure. - * (ctx->left) indicates the number of bytes _transferred_ for the structure. - * (size) contains the number of bytes in the buffer passed. - */ -#define LEFT ((size<(size_t)ctx->left)?size:(size_t)ctx->left) - -/* - * If the subprocessor function returns with an indication that it wants - * more data, it may well be a fatal decoding problem, because the - * size is constrained by the 's L, even if the buffer size allows - * reading more data. - * For example, consider the buffer containing the following TLVs: - * ... - * The TLV length clearly indicates that one byte is expected in V, but - * if the V processor returns with "want more data" even if the buffer - * contains way more data than the V processor have seen. - */ -#define SIZE_VIOLATION (ctx->left >= 0 && (size_t)ctx->left <= size) - -/* - * This macro "eats" the part of the buffer which is definitely "consumed", - * i.e. was correctly converted into local representation or rightfully skipped. - */ -#undef ADVANCE -#define ADVANCE(num_bytes) do { \ - size_t num = num_bytes; \ - ptr = ((const char *)ptr) + num; \ - size -= num; \ - if(ctx->left >= 0) \ - ctx->left -= num; \ - consumed_myself += num; \ - } while(0) - -/* - * Switch to the next phase of parsing. - */ -#undef NEXT_PHASE -#undef PHASE_OUT -#define NEXT_PHASE(ctx) do { \ - ctx->phase++; \ - ctx->step = 0; \ - } while(0) -#define PHASE_OUT(ctx) do { ctx->phase = 10; } while(0) - -/* - * Return a standardized complex structure. - */ -#undef RETURN -#define RETURN(_code) do { \ - rval.code = _code; \ - rval.consumed = consumed_myself;\ - return rval; \ - } while(0) - -/* - * Check whether we are inside the extensions group. - */ -#define IN_EXTENSION_GROUP(specs, memb_idx) \ - ((specs)->first_extension >= 0 \ - && (unsigned)(specs)->first_extension <= (memb_idx)) - -/* - * Tags are canonically sorted in the tag2element map. - */ -static int -_t2e_cmp(const void *ap, const void *bp) { - const asn_TYPE_tag2member_t *a = (const asn_TYPE_tag2member_t *)ap; - const asn_TYPE_tag2member_t *b = (const asn_TYPE_tag2member_t *)bp; - - int a_class = BER_TAG_CLASS(a->el_tag); - int b_class = BER_TAG_CLASS(b->el_tag); - - if(a_class == b_class) { - ber_tlv_tag_t a_value = BER_TAG_VALUE(a->el_tag); - ber_tlv_tag_t b_value = BER_TAG_VALUE(b->el_tag); - - if(a_value == b_value) { - if(a->el_no > b->el_no) - return 1; - /* - * Important: we do not check - * for a->el_no <= b->el_no! - */ - return 0; - } else if(a_value < b_value) - return -1; - else - return 1; - } else if(a_class < b_class) { - return -1; - } else { - return 1; - } -} - - -/* - * The decoder of the SEQUENCE type. - */ -asn_dec_rval_t -SEQUENCE_decode_ber(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **struct_ptr, - const void *ptr, size_t size, int tag_mode) { - /* - * Bring closer parts of structure description. - */ - const asn_SEQUENCE_specifics_t *specs = (const asn_SEQUENCE_specifics_t *)td->specifics; - const asn_TYPE_member_t *elements = td->elements; - - /* - * Parts of the structure being constructed. - */ - void *st = *struct_ptr; /* Target structure. */ - asn_struct_ctx_t *ctx; /* Decoder context */ - - ber_tlv_tag_t tlv_tag; /* T from TLV */ - asn_dec_rval_t rval; /* Return code from subparsers */ - - ssize_t consumed_myself = 0; /* Consumed bytes from ptr */ - size_t edx; /* SEQUENCE element's index */ - - ASN_DEBUG("Decoding %s as SEQUENCE", td->name); - - /* - * Create the target structure if it is not present already. - */ - if(st == 0) { - st = *struct_ptr = CALLOC(1, specs->struct_size); - if(st == 0) { - RETURN(RC_FAIL); - } - } - - /* - * Restore parsing context. - */ - ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset); - - /* - * Start to parse where left previously - */ - switch(ctx->phase) { - case 0: - /* - * PHASE 0. - * Check that the set of tags associated with given structure - * perfectly fits our expectations. - */ - - rval = ber_check_tags(opt_codec_ctx, td, ctx, ptr, size, - tag_mode, 1, &ctx->left, 0); - if(rval.code != RC_OK) { - ASN_DEBUG("%s tagging check failed: %d", - td->name, rval.code); - return rval; - } - - if(ctx->left >= 0) - ctx->left += rval.consumed; /* ?Substracted below! */ - ADVANCE(rval.consumed); - - NEXT_PHASE(ctx); - - ASN_DEBUG("Structure consumes %ld bytes, buffer %ld", - (long)ctx->left, (long)size); - - /* Fall through */ - case 1: - /* - * PHASE 1. - * From the place where we've left it previously, - * try to decode the next member from the list of - * this structure's elements. - * (ctx->step) stores the member being processed - * between invocations and the microphase {0,1} of parsing - * that member: - * step = ( * 2 + ). - */ - for(edx = ((size_t)ctx->step >> 1); edx < td->elements_count; - edx++, ctx->step = (ctx->step & ~1) + 2) { - void *memb_ptr; /* Pointer to the member */ - void **memb_ptr2; /* Pointer to that pointer */ - ssize_t tag_len; /* Length of TLV's T */ - size_t opt_edx_end; /* Next non-optional element */ - size_t n; - int use_bsearch; - - if(ctx->step & 1) - goto microphase2; - - /* - * MICROPHASE 1: Synchronize decoding. - */ - ASN_DEBUG("In %s SEQUENCE left %d, edx=%" ASN_PRI_SIZE " flags=%d" - " opt=%d ec=%d", - td->name, (int)ctx->left, edx, - elements[edx].flags, elements[edx].optional, - td->elements_count); - - if(ctx->left == 0 /* No more stuff is expected */ - && ( - /* Explicit OPTIONAL specification reaches the end */ - (edx + elements[edx].optional == td->elements_count) || - /* All extensions are optional */ - IN_EXTENSION_GROUP(specs, edx))) { - ASN_DEBUG("End of SEQUENCE %s", td->name); - /* - * Found the legitimate end of the structure. - */ - PHASE_OUT(ctx); - RETURN(RC_OK); - } - - /* - * Fetch the T from TLV. - */ - tag_len = ber_fetch_tag(ptr, LEFT, &tlv_tag); - ASN_DEBUG("Current tag in %s SEQUENCE for element %" ASN_PRI_SIZE " " - "(%s) is %s encoded in %d bytes, of frame %ld", - td->name, edx, elements[edx].name, - ber_tlv_tag_string(tlv_tag), (int)tag_len, (long)LEFT); - switch(tag_len) { - case 0: if(!SIZE_VIOLATION) RETURN(RC_WMORE); - /* Fall through */ - case -1: RETURN(RC_FAIL); - } - - if(ctx->left < 0 && ((const uint8_t *)ptr)[0] == 0) { - if(LEFT < 2) { - if(SIZE_VIOLATION) { - RETURN(RC_FAIL); - } else { - RETURN(RC_WMORE); - } - } else if(((const uint8_t *)ptr)[1] == 0) { - ASN_DEBUG("edx = %" ASN_PRI_SIZE ", opt = %d, ec=%d", edx, - elements[edx].optional, td->elements_count); - if((edx + elements[edx].optional == td->elements_count) - || IN_EXTENSION_GROUP(specs, edx)) { - /* - * Yeah, baby! Found the terminator - * of the indefinite length structure. - */ - /* - * Proceed to the canonical - * finalization function. - * No advancing is necessary. - */ - goto phase3; - } - } - } - - /* - * Find the next available type with this tag. - */ - use_bsearch = 0; - opt_edx_end = edx + elements[edx].optional + 1; - if(opt_edx_end > td->elements_count) - opt_edx_end = td->elements_count; /* Cap */ - else if(opt_edx_end - edx > 8) { - /* Limit the scope of linear search... */ - opt_edx_end = edx + 8; - use_bsearch = 1; - /* ... and resort to bsearch() */ - } - for(n = edx; n < opt_edx_end; n++) { - if(BER_TAGS_EQUAL(tlv_tag, elements[n].tag)) { - /* - * Found element corresponding to the tag - * being looked at. - * Reposition over the right element. - */ - edx = n; - ctx->step = 1 + 2 * edx; /* Remember! */ - goto microphase2; - } else if(elements[n].flags & ATF_ANY_TYPE) { - /* - * This is the ANY type, which may bear - * any flag whatsoever. - */ - edx = n; - ctx->step = 1 + 2 * edx; /* Remember! */ - goto microphase2; - } else if(elements[n].tag == (ber_tlv_tag_t)-1) { - use_bsearch = 1; - break; - } - } - if(use_bsearch) { - /* - * Resort to a binary search over - * sorted array of tags. - */ - const asn_TYPE_tag2member_t *t2m; - asn_TYPE_tag2member_t key = {0, 0, 0, 0}; - key.el_tag = tlv_tag; - key.el_no = edx; - t2m = (const asn_TYPE_tag2member_t *)bsearch(&key, - specs->tag2el, specs->tag2el_count, - sizeof(specs->tag2el[0]), _t2e_cmp); - if(t2m) { - const asn_TYPE_tag2member_t *best = 0; - const asn_TYPE_tag2member_t *t2m_f, *t2m_l; - size_t edx_max = edx + elements[edx].optional; - /* - * Rewind to the first element with that tag, - * `cause bsearch() does not guarantee order. - */ - t2m_f = t2m + t2m->toff_first; - t2m_l = t2m + t2m->toff_last; - for(t2m = t2m_f; t2m <= t2m_l; t2m++) { - if(t2m->el_no > edx_max) break; - if(t2m->el_no < edx) continue; - best = t2m; - } - if(best) { - edx = best->el_no; - ctx->step = 1 + 2 * edx; - goto microphase2; - } - } - n = opt_edx_end; - } - if(n == opt_edx_end) { - /* - * If tag is unknown, it may be either - * an unknown (thus, incorrect) tag, - * or an extension (...), - * or an end of the indefinite-length structure. - */ - if(!IN_EXTENSION_GROUP(specs, - edx + elements[edx].optional)) { - ASN_DEBUG("Unexpected tag %s (at %" ASN_PRI_SIZE ")", - ber_tlv_tag_string(tlv_tag), edx); - ASN_DEBUG("Expected tag %s (%s)%s", - ber_tlv_tag_string(elements[edx].tag), - elements[edx].name, - elements[edx].optional - ?" or alternatives":""); - RETURN(RC_FAIL); - } else { - /* Skip this tag */ - ssize_t skip; - edx += elements[edx].optional; - - ASN_DEBUG("Skipping unexpected %s (at %" ASN_PRI_SIZE ")", - ber_tlv_tag_string(tlv_tag), edx); - skip = ber_skip_length(opt_codec_ctx, - BER_TLV_CONSTRUCTED(ptr), - (const char *)ptr + tag_len, - LEFT - tag_len); - ASN_DEBUG("Skip length %d in %s", - (int)skip, td->name); - switch(skip) { - case 0: if(!SIZE_VIOLATION) RETURN(RC_WMORE); - /* Fall through */ - case -1: RETURN(RC_FAIL); - } - - ADVANCE(skip + tag_len); - ctx->step -= 2; - edx--; - continue; /* Try again with the next tag */ - } - } - - /* - * MICROPHASE 2: Invoke the member-specific decoder. - */ - ctx->step |= 1; /* Confirm entering next microphase */ - microphase2: - ASN_DEBUG("Inside SEQUENCE %s MF2", td->name); - - /* - * Compute the position of the member inside a structure, - * and also a type of containment (it may be contained - * as pointer or using inline inclusion). - */ - if(elements[edx].flags & ATF_POINTER) { - /* Member is a pointer to another structure */ - memb_ptr2 = (void **)((char *)st + elements[edx].memb_offset); - } else { - /* - * A pointer to a pointer - * holding the start of the structure - */ - memb_ptr = (char *)st + elements[edx].memb_offset; - memb_ptr2 = &memb_ptr; - } - /* - * Invoke the member fetch routine according to member's type - */ - if(elements[edx].flags & ATF_OPEN_TYPE) { - rval = OPEN_TYPE_ber_get(opt_codec_ctx, td, st, &elements[edx], ptr, LEFT); - } else { - rval = elements[edx].type->op->ber_decoder(opt_codec_ctx, - elements[edx].type, - memb_ptr2, ptr, LEFT, - elements[edx].tag_mode); - } - ASN_DEBUG("In %s SEQUENCE decoded %" ASN_PRI_SIZE " %s of %d " - "in %d bytes rval.code %d, size=%d", - td->name, edx, elements[edx].type->name, - (int)LEFT, (int)rval.consumed, rval.code, (int)size); - switch(rval.code) { - case RC_OK: - break; - case RC_WMORE: /* More data expected */ - if(!SIZE_VIOLATION) { - ADVANCE(rval.consumed); - RETURN(RC_WMORE); - } - ASN_DEBUG("Size violation (c->l=%ld <= s=%ld)", - (long)ctx->left, (long)size); - /* Fall through */ - case RC_FAIL: /* Fatal error */ - RETURN(RC_FAIL); - } /* switch(rval) */ - - ADVANCE(rval.consumed); - } /* for(all structure members) */ - - phase3: - ctx->phase = 3; - /* Fall through */ - case 3: /* 00 and other tags expected */ - case 4: /* only 00's expected */ - - ASN_DEBUG("SEQUENCE %s Leftover: %ld, size = %ld", - td->name, (long)ctx->left, (long)size); - - /* - * Skip everything until the end of the SEQUENCE. - */ - while(ctx->left) { - ssize_t tl, ll; - - tl = ber_fetch_tag(ptr, LEFT, &tlv_tag); - switch(tl) { - case 0: if(!SIZE_VIOLATION) RETURN(RC_WMORE); - /* Fall through */ - case -1: RETURN(RC_FAIL); - } - - /* - * If expected <0><0>... - */ - if(ctx->left < 0 - && ((const uint8_t *)ptr)[0] == 0) { - if(LEFT < 2) { - if(SIZE_VIOLATION) - RETURN(RC_FAIL); - else - RETURN(RC_WMORE); - } else if(((const uint8_t *)ptr)[1] == 0) { - /* - * Correctly finished with <0><0>. - */ - ADVANCE(2); - ctx->left++; - ctx->phase = 4; - continue; - } - } - - if(!IN_EXTENSION_GROUP(specs, td->elements_count) - || ctx->phase == 4) { - ASN_DEBUG("Unexpected continuation " - "of a non-extensible type " - "%s (SEQUENCE): %s", - td->name, - ber_tlv_tag_string(tlv_tag)); - RETURN(RC_FAIL); - } - - ll = ber_skip_length(opt_codec_ctx, - BER_TLV_CONSTRUCTED(ptr), - (const char *)ptr + tl, LEFT - tl); - switch(ll) { - case 0: if(!SIZE_VIOLATION) RETURN(RC_WMORE); - /* Fall through */ - case -1: RETURN(RC_FAIL); - } - - ADVANCE(tl + ll); - } - - PHASE_OUT(ctx); - } - - RETURN(RC_OK); -} - - -/* - * The DER encoder of the SEQUENCE type. - */ -asn_enc_rval_t -SEQUENCE_encode_der(const asn_TYPE_descriptor_t *td, const void *sptr, - int tag_mode, ber_tlv_tag_t tag, - asn_app_consume_bytes_f *cb, void *app_key) { - size_t computed_size = 0; - asn_enc_rval_t erval = {0,0,0}; - ssize_t ret; - size_t edx; - - ASN_DEBUG("%s %s as SEQUENCE", - cb?"Encoding":"Estimating", td->name); - - /* - * Gather the length of the underlying members sequence. - */ - for(edx = 0; edx < td->elements_count; edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - - const void *memb_ptr; /* Pointer to the member */ - const void *const *memb_ptr2; /* Pointer to that pointer */ - - if(elm->flags & ATF_POINTER) { - memb_ptr2 = - (const void *const *)((const char *)sptr + elm->memb_offset); - if(!*memb_ptr2) { - ASN_DEBUG("Element %s %" ASN_PRI_SIZE " not present", - elm->name, edx); - if(elm->optional) - continue; - /* Mandatory element is missing */ - ASN__ENCODE_FAILED; - } - } else { - memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); - memb_ptr2 = &memb_ptr; - } - - /* Eliminate default values */ - if(elm->default_value_cmp && elm->default_value_cmp(*memb_ptr2) == 0) - continue; - - erval = elm->type->op->der_encoder(elm->type, *memb_ptr2, - elm->tag_mode, elm->tag, - 0, 0); - if(erval.encoded == -1) - return erval; - computed_size += erval.encoded; - ASN_DEBUG("Member %" ASN_PRI_SIZE " %s estimated %ld bytes", - edx, elm->name, (long)erval.encoded); - } - - /* - * Encode the TLV for the sequence itself. - */ - ret = der_write_tags(td, computed_size, tag_mode, 1, tag, cb, app_key); - ASN_DEBUG("Wrote tags: %ld (+%ld)", (long)ret, (long)computed_size); - if(ret == -1) - ASN__ENCODE_FAILED; - erval.encoded = computed_size + ret; - - if(!cb) ASN__ENCODED_OK(erval); - - /* - * Encode all members. - */ - for(edx = 0; edx < td->elements_count; edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - asn_enc_rval_t tmperval = {0,0,0}; - const void *memb_ptr; /* Pointer to the member */ - const void *const *memb_ptr2; /* Pointer to that pointer */ - - if(elm->flags & ATF_POINTER) { - memb_ptr2 = - (const void *const *)((const char *)sptr + elm->memb_offset); - if(!*memb_ptr2) continue; - } else { - memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); - memb_ptr2 = &memb_ptr; - } - - /* Eliminate default values */ - if(elm->default_value_cmp && elm->default_value_cmp(*memb_ptr2) == 0) - continue; - - tmperval = elm->type->op->der_encoder(elm->type, *memb_ptr2, - elm->tag_mode, elm->tag, cb, app_key); - if(tmperval.encoded == -1) - return tmperval; - computed_size -= tmperval.encoded; - ASN_DEBUG("Member %" ASN_PRI_SIZE " %s of SEQUENCE %s encoded in %ld bytes", - edx, elm->name, td->name, (long)tmperval.encoded); - } - - if(computed_size != 0) - /* - * Encoded size is not equal to the computed size. - */ - ASN__ENCODE_FAILED; - - ASN__ENCODED_OK(erval); -} - - -#undef XER_ADVANCE -#define XER_ADVANCE(num_bytes) \ - do { \ - size_t num = (num_bytes); \ - ptr = ((const char *)ptr) + num; \ - size -= num; \ - consumed_myself += num; \ - } while(0) - -/* - * Decode the XER (XML) data. - */ -asn_dec_rval_t -SEQUENCE_decode_xer(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **struct_ptr, - const char *opt_mname, const void *ptr, size_t size) { - /* - * Bring closer parts of structure description. - */ - const asn_SEQUENCE_specifics_t *specs - = (const asn_SEQUENCE_specifics_t *)td->specifics; - asn_TYPE_member_t *elements = td->elements; - const char *xml_tag = opt_mname ? opt_mname : td->xml_tag; - - /* - * ... and parts of the structure being constructed. - */ - void *st = *struct_ptr; /* Target structure. */ - asn_struct_ctx_t *ctx; /* Decoder context */ - - asn_dec_rval_t rval; /* Return value from a decoder */ - ssize_t consumed_myself = 0; /* Consumed bytes from ptr */ - size_t edx; /* Element index */ - - /* - * Create the target structure if it is not present already. - */ - if(st == 0) { - st = *struct_ptr = CALLOC(1, specs->struct_size); - if(st == 0) RETURN(RC_FAIL); - } - - /* - * Restore parsing context. - */ - ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset); - - - /* - * Phases of XER/XML processing: - * Phase 0: Check that the opening tag matches our expectations. - * Phase 1: Processing body and reacting on closing tag. - * Phase 2: Processing inner type. - * Phase 3: Skipping unknown extensions. - * Phase 4: PHASED OUT - */ - for(edx = ctx->step; ctx->phase <= 3;) { - pxer_chunk_type_e ch_type; /* XER chunk type */ - ssize_t ch_size; /* Chunk size */ - xer_check_tag_e tcv; /* Tag check value */ - asn_TYPE_member_t *elm; - - /* - * Go inside the inner member of a sequence. - */ - if(ctx->phase == 2) { - asn_dec_rval_t tmprval; - void *memb_ptr_dontuse; /* Pointer to the member */ - void **memb_ptr2; /* Pointer to that pointer */ - - elm = &td->elements[edx]; - - if(elm->flags & ATF_POINTER) { - /* Member is a pointer to another structure */ - memb_ptr2 = (void **)((char *)st + elm->memb_offset); - } else { - memb_ptr_dontuse = (char *)st + elm->memb_offset; - memb_ptr2 = &memb_ptr_dontuse; /* Only use of memb_ptr_dontuse */ - } - - if(elm->flags & ATF_OPEN_TYPE) { - tmprval = OPEN_TYPE_xer_get(opt_codec_ctx, td, st, elm, ptr, size); - } else { - /* Invoke the inner type decoder, m.b. multiple times */ - tmprval = elm->type->op->xer_decoder(opt_codec_ctx, - elm->type, memb_ptr2, elm->name, - ptr, size); - } - XER_ADVANCE(tmprval.consumed); - if(tmprval.code != RC_OK) - RETURN(tmprval.code); - ctx->phase = 1; /* Back to body processing */ - ctx->step = ++edx; - ASN_DEBUG("XER/SEQUENCE phase => %d, step => %d", - ctx->phase, ctx->step); - /* Fall through */ - } - - /* - * Get the next part of the XML stream. - */ - ch_size = xer_next_token(&ctx->context, ptr, size, - &ch_type); - if(ch_size == -1) { - RETURN(RC_FAIL); - } else { - switch(ch_type) { - case PXER_WMORE: - RETURN(RC_WMORE); - case PXER_COMMENT: /* Got XML comment */ - case PXER_TEXT: /* Ignore free-standing text */ - XER_ADVANCE(ch_size); /* Skip silently */ - continue; - case PXER_TAG: - break; /* Check the rest down there */ - } - } - - tcv = xer_check_tag(ptr, ch_size, xml_tag); - ASN_DEBUG("XER/SEQUENCE: tcv = %d, ph=%d [%s]", - tcv, ctx->phase, xml_tag); - - /* Skip the extensions section */ - if(ctx->phase == 3) { - switch(xer_skip_unknown(tcv, &ctx->left)) { - case -1: - ctx->phase = 4; - RETURN(RC_FAIL); - case 0: - XER_ADVANCE(ch_size); - continue; - case 1: - XER_ADVANCE(ch_size); - ctx->phase = 1; - continue; - case 2: - ctx->phase = 1; - break; - } - } - - switch(tcv) { - case XCT_CLOSING: - if(ctx->phase == 0) break; - ctx->phase = 0; - /* Fall through */ - case XCT_BOTH: - if(ctx->phase == 0) { - if(edx >= td->elements_count || - /* Explicit OPTIONAL specs reaches the end */ - (edx + elements[edx].optional == td->elements_count) || - /* All extensions are optional */ - IN_EXTENSION_GROUP(specs, edx)) { - XER_ADVANCE(ch_size); - ctx->phase = 4; /* Phase out */ - RETURN(RC_OK); - } else { - ASN_DEBUG("Premature end of XER SEQUENCE"); - RETURN(RC_FAIL); - } - } - /* Fall through */ - case XCT_OPENING: - if(ctx->phase == 0) { - XER_ADVANCE(ch_size); - ctx->phase = 1; /* Processing body phase */ - continue; - } - /* Fall through */ - case XCT_UNKNOWN_OP: - case XCT_UNKNOWN_BO: - - ASN_DEBUG("XER/SEQUENCE: tcv=%d, ph=%d, edx=%" ASN_PRI_SIZE "", - tcv, ctx->phase, edx); - if(ctx->phase != 1) { - break; /* Really unexpected */ - } - - if(edx < td->elements_count) { - /* - * Search which member corresponds to this tag. - */ - size_t n; - size_t edx_end = edx + elements[edx].optional + 1; - if(edx_end > td->elements_count) - edx_end = td->elements_count; - for(n = edx; n < edx_end; n++) { - elm = &td->elements[n]; - tcv = xer_check_tag(ptr, ch_size, elm->name); - switch(tcv) { - case XCT_BOTH: - case XCT_OPENING: - /* - * Process this member. - */ - ctx->step = edx = n; - ctx->phase = 2; - break; - case XCT_UNKNOWN_OP: - case XCT_UNKNOWN_BO: - continue; - default: - n = edx_end; - break; /* Phase out */ - } - break; - } - if(n != edx_end) - continue; - } else { - ASN_DEBUG("Out of defined members: %" ASN_PRI_SIZE "/%u", - edx, td->elements_count); - } - - /* It is expected extension */ - if(IN_EXTENSION_GROUP(specs, - edx + (edx < td->elements_count - ? elements[edx].optional : 0))) { - ASN_DEBUG("Got anticipated extension at %" ASN_PRI_SIZE "", - edx); - /* - * Check for (XCT_BOTH or XCT_UNKNOWN_BO) - * By using a mask. Only record a pure - * tags. - */ - if(tcv & XCT_CLOSING) { - /* Found without body */ - } else { - ctx->left = 1; - ctx->phase = 3; /* Skip ...'s */ - } - XER_ADVANCE(ch_size); - continue; - } - - /* Fall through */ - default: - break; - } - - ASN_DEBUG("Unexpected XML tag in SEQUENCE [%c%c%c%c%c%c]", - size>0?((const char *)ptr)[0]:'.', - size>1?((const char *)ptr)[1]:'.', - size>2?((const char *)ptr)[2]:'.', - size>3?((const char *)ptr)[3]:'.', - size>4?((const char *)ptr)[4]:'.', - size>5?((const char *)ptr)[5]:'.'); - break; - } - - ctx->phase = 4; /* "Phase out" on hard failure */ - RETURN(RC_FAIL); -} - -asn_enc_rval_t -SEQUENCE_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, - int ilevel, enum xer_encoder_flags_e flags, - asn_app_consume_bytes_f *cb, void *app_key) { - asn_enc_rval_t er = {0,0,0}; - int xcan = (flags & XER_F_CANONICAL); - asn_TYPE_descriptor_t *tmp_def_val_td = 0; - void *tmp_def_val = 0; - size_t edx; - - if(!sptr) ASN__ENCODE_FAILED; - - er.encoded = 0; - - for(edx = 0; edx < td->elements_count; edx++) { - asn_enc_rval_t tmper = {0,0,0}; - asn_TYPE_member_t *elm = &td->elements[edx]; - const void *memb_ptr; - const char *mname = elm->name; - unsigned int mlen = strlen(mname); - - if(elm->flags & ATF_POINTER) { - memb_ptr = - *(const void *const *)((const char *)sptr + elm->memb_offset); - if(!memb_ptr) { - assert(tmp_def_val == 0); - if(elm->default_value_set) { - if(elm->default_value_set(&tmp_def_val)) { - ASN__ENCODE_FAILED; - } else { - memb_ptr = tmp_def_val; - tmp_def_val_td = elm->type; - } - } else if(elm->optional) { - continue; - } else { - /* Mandatory element is missing */ - ASN__ENCODE_FAILED; - } - } - } else { - memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); - } - - if(!xcan) ASN__TEXT_INDENT(1, ilevel); - ASN__CALLBACK3("<", 1, mname, mlen, ">", 1); - - /* Print the member itself */ - tmper = elm->type->op->xer_encoder(elm->type, memb_ptr, ilevel + 1, - flags, cb, app_key); - if(tmp_def_val) { - ASN_STRUCT_FREE(*tmp_def_val_td, tmp_def_val); - tmp_def_val = 0; - } - if(tmper.encoded == -1) return tmper; - er.encoded += tmper.encoded; - - ASN__CALLBACK3("", 1); - } - - if(!xcan) ASN__TEXT_INDENT(1, ilevel - 1); - - ASN__ENCODED_OK(er); -cb_failed: - if(tmp_def_val) ASN_STRUCT_FREE(*tmp_def_val_td, tmp_def_val); - ASN__ENCODE_FAILED; -} - -int -SEQUENCE_print(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, - asn_app_consume_bytes_f *cb, void *app_key) { - size_t edx; - int ret; - - if(!sptr) return (cb("", 8, app_key) < 0) ? -1 : 0; - - /* Dump preamble */ - if(cb(td->name, strlen(td->name), app_key) < 0 - || cb(" ::= {", 6, app_key) < 0) - return -1; - - for(edx = 0; edx < td->elements_count; edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - const void *memb_ptr; - - if(elm->flags & ATF_POINTER) { - memb_ptr = *(const void * const *)((const char *)sptr + elm->memb_offset); - if(!memb_ptr) { - if(elm->optional) continue; - /* Print line */ - /* Fall through */ - } - } else { - memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); - } - - /* Indentation */ - _i_INDENT(1); - - /* Print the member's name and stuff */ - if(cb(elm->name, strlen(elm->name), app_key) < 0 - || cb(": ", 2, app_key) < 0) - return -1; - - /* Print the member itself */ - ret = elm->type->op->print_struct(elm->type, memb_ptr, ilevel + 1, - cb, app_key); - if(ret) return ret; - } - - ilevel--; - _i_INDENT(1); - - return (cb("}", 1, app_key) < 0) ? -1 : 0; -} - -void -SEQUENCE_free(const asn_TYPE_descriptor_t *td, void *sptr, - enum asn_struct_free_method method) { - size_t edx; - const asn_SEQUENCE_specifics_t *specs = - (const asn_SEQUENCE_specifics_t *)td->specifics; - asn_struct_ctx_t *ctx; /* Decoder context */ - - if(!td || !sptr) - return; - - ASN_DEBUG("Freeing %s as SEQUENCE", td->name); - - for(edx = 0; edx < td->elements_count; edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - void *memb_ptr; - if(elm->flags & ATF_POINTER) { - memb_ptr = *(void **)((char *)sptr + elm->memb_offset); - if(memb_ptr) - ASN_STRUCT_FREE(*elm->type, memb_ptr); - } else { - memb_ptr = (void *)((char *)sptr + elm->memb_offset); - ASN_STRUCT_FREE_CONTENTS_ONLY(*elm->type, memb_ptr); - } - } - - /* Clean parsing context */ - ctx = (asn_struct_ctx_t *)((char *)sptr + specs->ctx_offset); - FREEMEM(ctx->ptr); - - switch(method) { - case ASFM_FREE_EVERYTHING: - FREEMEM(sptr); - break; - case ASFM_FREE_UNDERLYING: - break; - case ASFM_FREE_UNDERLYING_AND_RESET: - memset( - sptr, 0, - ((const asn_SEQUENCE_specifics_t *)(td->specifics))->struct_size); - break; - } -} - -int -SEQUENCE_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - size_t edx; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - /* - * Iterate over structure members and check their validity. - */ - for(edx = 0; edx < td->elements_count; edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - const void *memb_ptr; - - if(elm->flags & ATF_POINTER) { - memb_ptr = *(const void * const *)((const char *)sptr + elm->memb_offset); - if(!memb_ptr) { - if(elm->optional) - continue; - ASN__CTFAIL(app_key, td, sptr, - "%s: mandatory element %s absent (%s:%d)", - td->name, elm->name, __FILE__, __LINE__); - return -1; - } - } else { - memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); - } - - if(elm->encoding_constraints.general_constraints) { - int ret = elm->encoding_constraints.general_constraints(elm->type, memb_ptr, - ctfailcb, app_key); - if(ret) return ret; - } else { - return elm->type->encoding_constraints.general_constraints(elm->type, - memb_ptr, ctfailcb, app_key); - } - } - - return 0; -} - -#ifndef ASN_DISABLE_PER_SUPPORT - -asn_dec_rval_t -SEQUENCE_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, - asn_per_data_t *pd) { - const asn_SEQUENCE_specifics_t *specs = (const asn_SEQUENCE_specifics_t *)td->specifics; - void *st = *sptr; /* Target structure. */ - int extpresent; /* Extension additions are present */ - uint8_t *opres; /* Presence of optional root members */ - asn_per_data_t opmd; - asn_dec_rval_t rv; - size_t edx; - - (void)constraints; - - if(ASN__STACK_OVERFLOW_CHECK(opt_codec_ctx)) - ASN__DECODE_FAILED; - - if(!st) { - st = *sptr = CALLOC(1, specs->struct_size); - if(!st) ASN__DECODE_FAILED; - } - - ASN_DEBUG("Decoding %s as SEQUENCE (UPER)", td->name); - - /* Handle extensions */ - if(specs->first_extension < 0) { - extpresent = 0; - } else { - extpresent = per_get_few_bits(pd, 1); - if(extpresent < 0) ASN__DECODE_STARVED; - } - - /* Prepare a place and read-in the presence bitmap */ - memset(&opmd, 0, sizeof(opmd)); - if(specs->roms_count) { - opres = (uint8_t *)MALLOC(((specs->roms_count + 7) >> 3) + 1); - if(!opres) ASN__DECODE_FAILED; - /* Get the presence map */ - if(per_get_many_bits(pd, opres, 0, specs->roms_count)) { - FREEMEM(opres); - ASN__DECODE_STARVED; - } - opmd.buffer = opres; - opmd.nbits = specs->roms_count; - ASN_DEBUG("Read in presence bitmap for %s of %d bits (%x..)", - td->name, specs->roms_count, *opres); - } else { - opres = 0; - } - - /* - * Get the sequence ROOT elements. - */ - for(edx = 0; - edx < (specs->first_extension < 0 ? td->elements_count - : (size_t)specs->first_extension); - edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - void *memb_ptr; /* Pointer to the member */ - void **memb_ptr2; /* Pointer to that pointer */ - - assert(!IN_EXTENSION_GROUP(specs, edx)); - - /* Fetch the pointer to this member */ - if(elm->flags & ATF_POINTER) { - memb_ptr2 = (void **)((char *)st + elm->memb_offset); - } else { - memb_ptr = (char *)st + elm->memb_offset; - memb_ptr2 = &memb_ptr; - } - - /* Deal with optionality */ - if(elm->optional) { - int present = per_get_few_bits(&opmd, 1); - ASN_DEBUG("Member %s->%s is optional, p=%d (%d->%d)", - td->name, elm->name, present, - (int)opmd.nboff, (int)opmd.nbits); - if(present == 0) { - /* This element is not present */ - if(elm->default_value_set) { - /* Fill-in DEFAULT */ - if(elm->default_value_set(memb_ptr2)) { - FREEMEM(opres); - ASN__DECODE_FAILED; - } - ASN_DEBUG("Filled-in default"); - } - /* The member is just not present */ - continue; - } - /* Fall through */ - } - - /* Fetch the member from the stream */ - ASN_DEBUG("Decoding member \"%s\" in %s", elm->name, td->name); - - if(elm->flags & ATF_OPEN_TYPE) { - rv = OPEN_TYPE_uper_get(opt_codec_ctx, td, st, elm, pd); - } else { - rv = elm->type->op->uper_decoder(opt_codec_ctx, elm->type, - elm->encoding_constraints.per_constraints, memb_ptr2, pd); - } - if(rv.code != RC_OK) { - ASN_DEBUG("Failed decode %s in %s", - elm->name, td->name); - FREEMEM(opres); - return rv; - } - } - - /* Optionality map is not needed anymore */ - FREEMEM(opres); - - /* - * Deal with extensions. - */ - if(extpresent) { - ssize_t bmlength; - uint8_t *epres; /* Presence of extension members */ - asn_per_data_t epmd; - - bmlength = uper_get_nslength(pd); - if(bmlength < 0) ASN__DECODE_STARVED; - - ASN_DEBUG("Extensions %" ASN_PRI_SSIZE " present in %s", bmlength, td->name); - - epres = (uint8_t *)MALLOC((bmlength + 15) >> 3); - if(!epres) ASN__DECODE_STARVED; - - /* Get the extensions map */ - if(per_get_many_bits(pd, epres, 0, bmlength)) { - FREEMEM(epres); - ASN__DECODE_STARVED; - } - - memset(&epmd, 0, sizeof(epmd)); - epmd.buffer = epres; - epmd.nbits = bmlength; - ASN_DEBUG("Read in extensions bitmap for %s of %ld bits (%x..)", - td->name, (long)bmlength, *epres); - - /* Go over extensions and read them in */ - for(edx = specs->first_extension; edx < td->elements_count; edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - void *memb_ptr; /* Pointer to the member */ - void **memb_ptr2; /* Pointer to that pointer */ - int present; - - /* Fetch the pointer to this member */ - if(elm->flags & ATF_POINTER) { - memb_ptr2 = (void **)((char *)st + elm->memb_offset); - } else { - memb_ptr = (void *)((char *)st + elm->memb_offset); - memb_ptr2 = &memb_ptr; - } - - present = per_get_few_bits(&epmd, 1); - if(present <= 0) { - if(present < 0) break; /* No more extensions */ - continue; - } - - ASN_DEBUG("Decoding member %s in %s %p", elm->name, td->name, - *memb_ptr2); - rv = uper_open_type_get(opt_codec_ctx, elm->type, - elm->encoding_constraints.per_constraints, - memb_ptr2, pd); - if(rv.code != RC_OK) { - FREEMEM(epres); - return rv; - } - } - - /* Skip over overflow extensions which aren't present - * in this system's version of the protocol */ - for(;;) { - ASN_DEBUG("Getting overflow extensions"); - switch(per_get_few_bits(&epmd, 1)) { - case -1: break; - case 0: continue; - default: - if(uper_open_type_skip(opt_codec_ctx, pd)) { - FREEMEM(epres); - ASN__DECODE_STARVED; - } - ASN_DEBUG("Skipped overflow extension"); - continue; - } - break; - } - - FREEMEM(epres); - } - - if(specs->first_extension >= 0) { - unsigned i; - /* Fill DEFAULT members in extensions */ - for(i = specs->roms_count; i < specs->roms_count + specs->aoms_count; - i++) { - asn_TYPE_member_t *elm; - void **memb_ptr2; /* Pointer to member pointer */ - - edx = specs->oms[i]; - elm = &td->elements[edx]; - - if(!elm->default_value_set) continue; - - /* Fetch the pointer to this member */ - if(elm->flags & ATF_POINTER) { - memb_ptr2 = (void **)((char *)st + elm->memb_offset); - if(*memb_ptr2) continue; - } else { - continue; /* Extensions are all optionals */ - } - - /* Set default value */ - if(elm->default_value_set(memb_ptr2)) { - ASN__DECODE_FAILED; - } - } - } - - rv.consumed = 0; - rv.code = RC_OK; - return rv; -} - -static int -SEQUENCE__handle_extensions(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_per_outp_t *po1, asn_per_outp_t *po2) { - const asn_SEQUENCE_specifics_t *specs = - (const asn_SEQUENCE_specifics_t *)td->specifics; - int exts_present = 0; - int exts_count = 0; - size_t edx; - - if(specs->first_extension < 0) { - return 0; - } - - /* Find out which extensions are present */ - for(edx = specs->first_extension; edx < td->elements_count; edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - const void *memb_ptr; /* Pointer to the member */ - const void *const *memb_ptr2; /* Pointer to that pointer */ - int present; - - /* Fetch the pointer to this member */ - if(elm->flags & ATF_POINTER) { - memb_ptr2 = - (const void *const *)((const char *)sptr + elm->memb_offset); - present = (*memb_ptr2 != 0); - } else { - memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); - memb_ptr2 = &memb_ptr; - present = 1; - } - - ASN_DEBUG("checking %s:%s (@%" ASN_PRI_SIZE ") present => %d", elm->name, - elm->type->name, edx, present); - exts_count++; - exts_present += present; - - /* Encode as presence marker */ - if(po1 && per_put_few_bits(po1, present, 1)) { - return -1; - } - /* Encode as open type field */ - if(po2 && present - && uper_open_type_put(elm->type, - elm->encoding_constraints.per_constraints, - *memb_ptr2, po2)) - return -1; - } - - return exts_present ? exts_count : 0; -} - -asn_enc_rval_t -SEQUENCE_encode_uper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, const void *sptr, - asn_per_outp_t *po) { - const asn_SEQUENCE_specifics_t *specs - = (const asn_SEQUENCE_specifics_t *)td->specifics; - asn_enc_rval_t er = {0,0,0}; - int n_extensions; - size_t edx; - size_t i; - - (void)constraints; - - if(!sptr) - ASN__ENCODE_FAILED; - - er.encoded = 0; - - ASN_DEBUG("Encoding %s as SEQUENCE (UPER)", td->name); - - /* - * X.691#18.1 Whether structure is extensible - * and whether to encode extensions - */ - if(specs->first_extension < 0) { - n_extensions = 0; /* There are no extensions to encode */ - } else { - n_extensions = SEQUENCE__handle_extensions(td, sptr, 0, 0); - if(n_extensions < 0) ASN__ENCODE_FAILED; - if(per_put_few_bits(po, n_extensions ? 1 : 0, 1)) { - ASN__ENCODE_FAILED; - } - } - - /* Encode a presence bitmap */ - for(i = 0; i < specs->roms_count; i++) { - asn_TYPE_member_t *elm; - const void *memb_ptr; /* Pointer to the member */ - const void *const *memb_ptr2; /* Pointer to that pointer */ - int present; - - edx = specs->oms[i]; - elm = &td->elements[edx]; - - /* Fetch the pointer to this member */ - if(elm->flags & ATF_POINTER) { - memb_ptr2 = - (const void *const *)((const char *)sptr + elm->memb_offset); - present = (*memb_ptr2 != 0); - } else { - memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); - memb_ptr2 = &memb_ptr; - present = 1; - } - - /* Eliminate default values */ - if(present && elm->default_value_cmp - && elm->default_value_cmp(*memb_ptr2) == 0) - present = 0; - - ASN_DEBUG("Element %s %s %s->%s is %s", - elm->flags & ATF_POINTER ? "ptr" : "inline", - elm->default_value_cmp ? "def" : "wtv", - td->name, elm->name, present ? "present" : "absent"); - if(per_put_few_bits(po, present, 1)) - ASN__ENCODE_FAILED; - } - - /* - * Encode the sequence ROOT elements. - */ - ASN_DEBUG("first_extension = %d, elements = %d", specs->first_extension, - td->elements_count); - for(edx = 0; - edx < ((specs->first_extension < 0) ? td->elements_count - : (size_t)specs->first_extension); - edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - const void *memb_ptr; /* Pointer to the member */ - const void *const *memb_ptr2; /* Pointer to that pointer */ - - ASN_DEBUG("About to encode %s", elm->type->name); - - /* Fetch the pointer to this member */ - if(elm->flags & ATF_POINTER) { - memb_ptr2 = - (const void *const *)((const char *)sptr + elm->memb_offset); - if(!*memb_ptr2) { - ASN_DEBUG("Element %s %" ASN_PRI_SIZE " not present", - elm->name, edx); - if(elm->optional) - continue; - /* Mandatory element is missing */ - ASN__ENCODE_FAILED; - } - } else { - memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); - memb_ptr2 = &memb_ptr; - } - - /* Eliminate default values */ - if(elm->default_value_cmp && elm->default_value_cmp(*memb_ptr2) == 0) - continue; - - ASN_DEBUG("Encoding %s->%s:%s", td->name, elm->name, elm->type->name); - er = elm->type->op->uper_encoder( - elm->type, elm->encoding_constraints.per_constraints, *memb_ptr2, - po); - if(er.encoded == -1) return er; - } - - /* No extensions to encode */ - if(!n_extensions) ASN__ENCODED_OK(er); - - ASN_DEBUG("Length of extensions %d bit-map", n_extensions); - /* #18.8. Write down the presence bit-map length. */ - if(uper_put_nslength(po, n_extensions)) - ASN__ENCODE_FAILED; - - ASN_DEBUG("Bit-map of %d elements", n_extensions); - /* #18.7. Encoding the extensions presence bit-map. */ - /* TODO: act upon NOTE in #18.7 for canonical PER */ - if(SEQUENCE__handle_extensions(td, sptr, po, 0) != n_extensions) - ASN__ENCODE_FAILED; - - ASN_DEBUG("Writing %d extensions", n_extensions); - /* #18.9. Encode extensions as open type fields. */ - if(SEQUENCE__handle_extensions(td, sptr, 0, po) != n_extensions) - ASN__ENCODE_FAILED; - - ASN__ENCODED_OK(er); -} - -asn_dec_rval_t -SEQUENCE_decode_aper(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, asn_per_data_t *pd) { - const asn_SEQUENCE_specifics_t *specs = (const asn_SEQUENCE_specifics_t *)td->specifics; - void *st = *sptr; /* Target structure. */ - int extpresent; /* Extension additions are present */ - uint8_t *opres; /* Presence of optional root members */ - asn_per_data_t opmd; - asn_dec_rval_t rv; - size_t edx; - - (void)constraints; - - if(ASN__STACK_OVERFLOW_CHECK(opt_codec_ctx)) - ASN__DECODE_FAILED; - - if(!st) { - st = *sptr = CALLOC(1, specs->struct_size); - if(!st) ASN__DECODE_FAILED; - } - - ASN_DEBUG("Decoding %s as SEQUENCE (APER)", td->name); - - /* Handle extensions */ - if(specs->first_extension < 0) { - extpresent = 0; - } else { - extpresent = per_get_few_bits(pd, 1); - if(extpresent < 0) ASN__DECODE_STARVED; - } - - /* Prepare a place and read-in the presence bitmap */ - memset(&opmd, 0, sizeof(opmd)); - if(specs->roms_count) { - opres = (uint8_t *)MALLOC(((specs->roms_count + 7) >> 3) + 1); - if(!opres) ASN__DECODE_FAILED; - /* Get the presence map */ - if(per_get_many_bits(pd, opres, 0, specs->roms_count)) { - FREEMEM(opres); - ASN__DECODE_STARVED; - } - opmd.buffer = opres; - opmd.nbits = specs->roms_count; - ASN_DEBUG("Read in presence bitmap for %s of %d bits (%x..)", - td->name, specs->roms_count, *opres); - } else { - opres = 0; - } - - /* - * Get the sequence ROOT elements. - */ - for(edx = 0; edx < td->elements_count; edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - void *memb_ptr; /* Pointer to the member */ - void **memb_ptr2; /* Pointer to that pointer */ -#if 0 - int padding; -#endif - - if(IN_EXTENSION_GROUP(specs, edx)) - continue; - - /* Fetch the pointer to this member */ - if(elm->flags & ATF_POINTER) { - memb_ptr2 = (void **)((char *)st + elm->memb_offset); - } else { - memb_ptr = (char *)st + elm->memb_offset; - memb_ptr2 = &memb_ptr; - } -#if 0 - /* Get Padding */ - padding = (8 - (pd->moved % 8)) % 8; - if(padding > 0) - ASN_DEBUG("For element %s,offset= %ld Padding bits = %d", td->name, pd->moved, padding); -#if 0 /* old way of removing padding */ - per_get_few_bits(pd, padding); -#else /* Experimental fix proposed by @mhanna123 */ - if(edx != (td->elements_count-1)) - per_get_few_bits(pd, padding); - else { - if(specs->roms_count && (padding > 0)) - ASN_DEBUG(">>>>> not skipping padding of %d bits for element:%ld out of %d", padding, edx, td->elements_count); - else - per_get_few_bits(pd, padding); - } -#endif /* dealing with padding */ -#endif - /* Deal with optionality */ - if(elm->optional) { - int present = per_get_few_bits(&opmd, 1); - ASN_DEBUG("Member %s->%s is optional, p=%d (%d->%d)", - td->name, elm->name, present, - (int)opmd.nboff, (int)opmd.nbits); - if(present == 0) { - /* This element is not present */ - if(elm->default_value_set) { - /* Fill-in DEFAULT */ - if(elm->default_value_set(memb_ptr2)) { - FREEMEM(opres); - ASN__DECODE_FAILED; - } - ASN_DEBUG("Filled-in default"); - } - /* The member is just not present */ - continue; - } - /* Fall through */ - } - - /* Fetch the member from the stream */ - ASN_DEBUG("Decoding member \"%s\" in %s", elm->name, td->name); - - if(elm->flags & ATF_OPEN_TYPE) { - rv = OPEN_TYPE_aper_get(opt_codec_ctx, td, st, elm, pd); - } else { - rv = elm->type->op->aper_decoder(opt_codec_ctx, elm->type, - elm->encoding_constraints.per_constraints, memb_ptr2, pd); - } - if(rv.code != RC_OK) { - ASN_DEBUG("Failed decode %s in %s", - elm->name, td->name); - FREEMEM(opres); - return rv; - } - } - - /* Optionality map is not needed anymore */ - FREEMEM(opres); - - /* - * Deal with extensions. - */ - if(extpresent) { - ssize_t bmlength; - uint8_t *epres; /* Presence of extension members */ - asn_per_data_t epmd; - - bmlength = aper_get_nslength(pd); - if(bmlength < 0) ASN__DECODE_STARVED; - - ASN_DEBUG("Extensions %" ASN_PRI_SSIZE " present in %s", bmlength, td->name); - - epres = (uint8_t *)MALLOC((bmlength + 15) >> 3); - if(!epres) ASN__DECODE_STARVED; - - /* Get the extensions map */ - if(per_get_many_bits(pd, epres, 0, bmlength)) - ASN__DECODE_STARVED; - - memset(&epmd, 0, sizeof(epmd)); - epmd.buffer = epres; - epmd.nbits = bmlength; - ASN_DEBUG("Read in extensions bitmap for %s of %ld bits (%x..)", - td->name, bmlength, *epres); - - /* Go over extensions and read them in */ - for(edx = specs->first_extension; edx < td->elements_count; edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - void *memb_ptr; /* Pointer to the member */ - void **memb_ptr2; /* Pointer to that pointer */ - int present; - - if(!IN_EXTENSION_GROUP(specs, edx)) { - ASN_DEBUG("%ld is not extension", edx); - continue; - } - - /* Fetch the pointer to this member */ - if(elm->flags & ATF_POINTER) { - memb_ptr2 = (void **)((char *)st + elm->memb_offset); - } else { - memb_ptr = (void *)((char *)st + elm->memb_offset); - memb_ptr2 = &memb_ptr; - } - - present = per_get_few_bits(&epmd, 1); - if(present <= 0) { - if(present < 0) break; /* No more extensions */ - continue; - } - - ASN_DEBUG("Decoding member %s in %s %p", elm->name, td->name, *memb_ptr2); - rv = aper_open_type_get(opt_codec_ctx, elm->type, - elm->encoding_constraints.per_constraints, memb_ptr2, pd); - if(rv.code != RC_OK) { - FREEMEM(epres); - return rv; - } - } - - /* Skip over overflow extensions which aren't present - * in this system's version of the protocol */ - for(;;) { - ASN_DEBUG("Getting overflow extensions"); - switch(per_get_few_bits(&epmd, 1)) { - case -1: - break; - case 0: - continue; - default: - if(aper_open_type_skip(opt_codec_ctx, pd)) { - FREEMEM(epres); - ASN__DECODE_STARVED; - } - } - break; - } - - FREEMEM(epres); - } - - /* Fill DEFAULT members in extensions */ - for(edx = specs->roms_count; edx < specs->roms_count - + specs->aoms_count; edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - void **memb_ptr2; /* Pointer to member pointer */ - - if(!elm->default_value_set) continue; - - /* Fetch the pointer to this member */ - if(elm->flags & ATF_POINTER) { - memb_ptr2 = (void **)((char *)st - + elm->memb_offset); - if(*memb_ptr2) continue; - } else { - continue; /* Extensions are all optionals */ - } - - /* Set default value */ - if(elm->default_value_set(memb_ptr2)) { - ASN__DECODE_FAILED; - } - } - - rv.consumed = 0; - rv.code = RC_OK; - return rv; -} - -static int -SEQUENCE_handle_extensions_aper(const asn_TYPE_descriptor_t *td, - const void *sptr, - asn_per_outp_t *po1, asn_per_outp_t *po2) { - const asn_SEQUENCE_specifics_t *specs - = (const asn_SEQUENCE_specifics_t *)td->specifics; - int exts_present = 0; - int exts_count = 0; - size_t edx; - - if(specs->first_extension < 0) { - return 0; - } - - /* Find out which extensions are present */ - for(edx = specs->first_extension; edx < td->elements_count; edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - const void *memb_ptr; /* Pointer to the member */ - const void * const *memb_ptr2; /* Pointer to that pointer */ - int present; - - if(!IN_EXTENSION_GROUP(specs, edx)) { - ASN_DEBUG("%s (@%ld) is not extension", elm->type->name, edx); - continue; - } - - /* Fetch the pointer to this member */ - if(elm->flags & ATF_POINTER) { - memb_ptr2 = (const void * const *)((const char *)sptr + elm->memb_offset); - present = (*memb_ptr2 != 0); - } else { - memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); - memb_ptr2 = &memb_ptr; - present = 1; - } - - ASN_DEBUG("checking %s (@%ld) present => %d", - elm->type->name, edx, present); - exts_count++; - exts_present += present; - - /* Encode as presence marker */ - if(po1 && per_put_few_bits(po1, present, 1)) - return -1; - /* Encode as open type field */ - if(po2 && present && aper_open_type_put(elm->type, - elm->encoding_constraints.per_constraints, *memb_ptr2, po2)) - return -1; - - } - - return exts_present ? exts_count : 0; -} - -asn_enc_rval_t -SEQUENCE_encode_aper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_per_outp_t *po) { - const asn_SEQUENCE_specifics_t *specs - = (const asn_SEQUENCE_specifics_t *)td->specifics; - asn_enc_rval_t er = {0,0,0}; - int n_extensions; - size_t edx; - size_t i; - - (void)constraints; - - if(!sptr) - ASN__ENCODE_FAILED; - - er.encoded = 0; - - ASN_DEBUG("Encoding %s as SEQUENCE (APER)", td->name); - - /* - * X.691#18.1 Whether structure is extensible - * and whether to encode extensions - */ - if(specs->first_extension < 0) { - n_extensions = 0; /* There are no extensions to encode */ - } else { - n_extensions = SEQUENCE_handle_extensions_aper(td, sptr, 0, 0); - if(n_extensions < 0) ASN__ENCODE_FAILED; - if(per_put_few_bits(po, n_extensions ? 1 : 0, 1)) { - ASN__ENCODE_FAILED; - } - } - - /* Encode a presence bitmap */ - for(i = 0; i < specs->roms_count; i++) { - asn_TYPE_member_t *elm; - const void *memb_ptr; /* Pointer to the member */ - const void * const *memb_ptr2; /* Pointer to that pointer */ - int present; - - edx = specs->oms[i]; - elm = &td->elements[edx]; - - /* Fetch the pointer to this member */ - if(elm->flags & ATF_POINTER) { - memb_ptr2 = (const void * const *)((const char *)sptr + elm->memb_offset); - present = (*memb_ptr2 != 0); - } else { - memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); - memb_ptr2 = &memb_ptr; - present = 1; - } - - /* Eliminate default values */ - if(present && elm->default_value_cmp - && elm->default_value_cmp(memb_ptr2) == 1) - present = 0; - - ASN_DEBUG("Element %s %s %s->%s is %s", - elm->flags & ATF_POINTER ? "ptr" : "inline", - elm->default_value_cmp ? "def" : "wtv", - td->name, elm->name, present ? "present" : "absent"); - if(per_put_few_bits(po, present, 1)) - ASN__ENCODE_FAILED; - } - - /* - * Encode the sequence ROOT elements. - */ - ASN_DEBUG("first_extension = %d, elements = %d", specs->first_extension, - td->elements_count); - for(edx = 0; - edx < ((specs->first_extension < 0) ? td->elements_count - : (size_t)specs->first_extension); - edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - const void *memb_ptr; /* Pointer to the member */ - const void * const *memb_ptr2; /* Pointer to that pointer */ - - if(IN_EXTENSION_GROUP(specs, edx)) - continue; - - ASN_DEBUG("About to encode %s", elm->type->name); - - /* Fetch the pointer to this member */ - if(elm->flags & ATF_POINTER) { - memb_ptr2 = (const void * const *)((const char *)sptr + elm->memb_offset); - if(!*memb_ptr2) { - ASN_DEBUG("Element %s %ld not present", - elm->name, edx); - if(elm->optional) - continue; - /* Mandatory element is missing */ - ASN__ENCODE_FAILED; - } - } else { - memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); - memb_ptr2 = &memb_ptr; - } - - /* Eliminate default values */ - if(elm->default_value_cmp && elm->default_value_cmp(memb_ptr2) == 1) - continue; - - ASN_DEBUG("Encoding %s->%s", td->name, elm->name); - er = elm->type->op->aper_encoder(elm->type, elm->encoding_constraints.per_constraints, - *memb_ptr2, po); - if(er.encoded == -1) - return er; - } - - /* No extensions to encode */ - if(!n_extensions) ASN__ENCODED_OK(er); - - ASN_DEBUG("Length of %d bit-map", n_extensions); - /* #18.8. Write down the presence bit-map length. */ - if(aper_put_nslength(po, n_extensions)) - ASN__ENCODE_FAILED; - - ASN_DEBUG("Bit-map of %d elements", n_extensions); - /* #18.7. Encoding the extensions presence bit-map. */ - /* TODO: act upon NOTE in #18.7 for canonical PER */ - if(SEQUENCE_handle_extensions_aper(td, sptr, po, 0) != n_extensions) - ASN__ENCODE_FAILED; - - ASN_DEBUG("Writing %d extensions", n_extensions); - /* #18.9. Encode extensions as open type fields. */ - if(SEQUENCE_handle_extensions_aper(td, sptr, 0, po) != n_extensions) - ASN__ENCODE_FAILED; - - ASN__ENCODED_OK(er); -} - -#endif /* ASN_DISABLE_PER_SUPPORT */ - -int -SEQUENCE_compare(const asn_TYPE_descriptor_t *td, const void *aptr, - const void *bptr) { - size_t edx; - - for(edx = 0; edx < td->elements_count; edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - const void *amemb; - const void *bmemb; - int ret; - - if(elm->flags & ATF_POINTER) { - amemb = - *(const void *const *)((const char *)aptr + elm->memb_offset); - bmemb = - *(const void *const *)((const char *)bptr + elm->memb_offset); - if(!amemb) { - if(!bmemb) continue; - if(elm->default_value_cmp - && elm->default_value_cmp(bmemb) == 0) { - /* A is absent, but B is present and equal to DEFAULT */ - continue; - } - return -1; - } else if(!bmemb) { - if(elm->default_value_cmp - && elm->default_value_cmp(amemb) == 0) { - /* B is absent, but A is present and equal to DEFAULT */ - continue; - } - return 1; - } - } else { - amemb = (const void *)((const char *)aptr + elm->memb_offset); - bmemb = (const void *)((const char *)bptr + elm->memb_offset); - } - - ret = elm->type->op->compare_struct(elm->type, amemb, bmemb); - if(ret != 0) return ret; - } - - return 0; -} - -asn_TYPE_operation_t asn_OP_SEQUENCE = { - SEQUENCE_free, - SEQUENCE_print, - SEQUENCE_compare, - SEQUENCE_decode_ber, - SEQUENCE_encode_der, - SEQUENCE_decode_xer, - SEQUENCE_encode_xer, -#ifdef ASN_DISABLE_OER_SUPPORT - 0, - 0, -#else - SEQUENCE_decode_oer, - SEQUENCE_encode_oer, -#endif /* ASN_DISABLE_OER_SUPPORT */ -#ifdef ASN_DISABLE_PER_SUPPORT - 0, - 0, - 0, - 0, -#else - SEQUENCE_decode_uper, - SEQUENCE_encode_uper, - SEQUENCE_decode_aper, - SEQUENCE_encode_aper, -#endif /* ASN_DISABLE_PER_SUPPORT */ - SEQUENCE_random_fill, - 0 /* Use generic outmost tag fetcher */ -}; - - -asn_random_fill_result_t -SEQUENCE_random_fill(const asn_TYPE_descriptor_t *td, void **sptr, - const asn_encoding_constraints_t *constr, - size_t max_length) { - const asn_SEQUENCE_specifics_t *specs = - (const asn_SEQUENCE_specifics_t *)td->specifics; - asn_random_fill_result_t result_ok = {ARFILL_OK, 0}; - asn_random_fill_result_t result_failed = {ARFILL_FAILED, 0}; - asn_random_fill_result_t result_skipped = {ARFILL_SKIPPED, 0}; - void *st = *sptr; - size_t edx; - - if(max_length == 0) return result_skipped; - - (void)constr; - - if(st == NULL) { - st = CALLOC(1, specs->struct_size); - if(st == NULL) { - return result_failed; - } - } - - for(edx = 0; edx < td->elements_count; edx++) { - const asn_TYPE_member_t *elm = &td->elements[edx]; - void *memb_ptr; /* Pointer to the member */ - void **memb_ptr2; /* Pointer to that pointer */ - asn_random_fill_result_t tmpres; - - if(elm->optional && asn_random_between(0, 4) == 2) { - /* Sometimes decide not to fill the optional value */ - continue; - } - - if(elm->flags & ATF_POINTER) { - /* Member is a pointer to another structure */ - memb_ptr2 = (void **)((char *)st + elm->memb_offset); - } else { - memb_ptr = (char *)st + elm->memb_offset; - memb_ptr2 = &memb_ptr; - } - - tmpres = elm->type->op->random_fill( - elm->type, memb_ptr2, &elm->encoding_constraints, - max_length > result_ok.length ? max_length - result_ok.length : 0); - switch(tmpres.code) { - case ARFILL_OK: - result_ok.length += tmpres.length; - continue; - case ARFILL_SKIPPED: - assert(!(elm->flags & ATF_POINTER) || *memb_ptr2 == NULL); - continue; - case ARFILL_FAILED: - if(st == *sptr) { - ASN_STRUCT_RESET(*td, st); - } else { - ASN_STRUCT_FREE(*td, st); - } - return tmpres; - } - } - - *sptr = st; - - return result_ok; -} - diff --git a/e2sim/previous/e2apv1sim/ASN1c/constr_SEQUENCE.h b/e2sim/previous/e2apv1sim/ASN1c/constr_SEQUENCE.h deleted file mode 100644 index a22ed3a..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/constr_SEQUENCE.h +++ /dev/null @@ -1,68 +0,0 @@ -/*- - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef _CONSTR_SEQUENCE_H_ -#define _CONSTR_SEQUENCE_H_ - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct asn_SEQUENCE_specifics_s { - /* - * Target structure description. - */ - unsigned struct_size; /* Size of the target structure. */ - unsigned ctx_offset; /* Offset of the asn_struct_ctx_t member */ - - /* - * Tags to members mapping table (sorted). - */ - const asn_TYPE_tag2member_t *tag2el; - unsigned tag2el_count; - - /* - * Optional members of the extensions root (roms) or additions (aoms). - * Meaningful for PER. - */ - const int *oms; /* Optional MemberS */ - unsigned roms_count; /* Root optional members count */ - unsigned aoms_count; /* Additions optional members count */ - - /* - * Description of an extensions group. - * Root components are clustered at the beginning of the structure, - * whereas extensions are clustered at the end. -1 means not extensible. - */ - signed first_extension; /* First extension addition */ -} asn_SEQUENCE_specifics_t; - - -/* - * A set specialized functions dealing with the SEQUENCE type. - */ -asn_struct_free_f SEQUENCE_free; -asn_struct_print_f SEQUENCE_print; -asn_struct_compare_f SEQUENCE_compare; -asn_constr_check_f SEQUENCE_constraint; -ber_type_decoder_f SEQUENCE_decode_ber; -der_type_encoder_f SEQUENCE_encode_der; -xer_type_decoder_f SEQUENCE_decode_xer; -xer_type_encoder_f SEQUENCE_encode_xer; -oer_type_decoder_f SEQUENCE_decode_oer; -oer_type_encoder_f SEQUENCE_encode_oer; -per_type_decoder_f SEQUENCE_decode_uper; -per_type_encoder_f SEQUENCE_encode_uper; -per_type_decoder_f SEQUENCE_decode_aper; -per_type_encoder_f SEQUENCE_encode_aper; -asn_random_fill_f SEQUENCE_random_fill; -extern asn_TYPE_operation_t asn_OP_SEQUENCE; - -#ifdef __cplusplus -} -#endif - -#endif /* _CONSTR_SEQUENCE_H_ */ diff --git a/e2sim/previous/e2apv1sim/ASN1c/constr_SEQUENCE_OF.c b/e2sim/previous/e2apv1sim/ASN1c/constr_SEQUENCE_OF.c deleted file mode 100644 index 10f18cf..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/constr_SEQUENCE_OF.c +++ /dev/null @@ -1,358 +0,0 @@ -/*- - * Copyright (c) 2003, 2004, 2006 Lev Walkin . - * All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include - -/* - * The DER encoder of the SEQUENCE OF type. - */ -asn_enc_rval_t -SEQUENCE_OF_encode_der(const asn_TYPE_descriptor_t *td, const void *ptr, - int tag_mode, ber_tlv_tag_t tag, - asn_app_consume_bytes_f *cb, void *app_key) { - asn_TYPE_member_t *elm = td->elements; - const asn_anonymous_sequence_ *list = _A_CSEQUENCE_FROM_VOID(ptr); - size_t computed_size = 0; - ssize_t encoding_size = 0; - asn_enc_rval_t erval = {0,0,0}; - int edx; - - ASN_DEBUG("Estimating size of SEQUENCE OF %s", td->name); - - /* - * Gather the length of the underlying members sequence. - */ - for(edx = 0; edx < list->count; edx++) { - void *memb_ptr = list->array[edx]; - if(!memb_ptr) continue; - erval = elm->type->op->der_encoder(elm->type, memb_ptr, - 0, elm->tag, - 0, 0); - if(erval.encoded == -1) - return erval; - computed_size += erval.encoded; - } - - /* - * Encode the TLV for the sequence itself. - */ - encoding_size = der_write_tags(td, computed_size, tag_mode, 1, tag, - cb, app_key); - if(encoding_size == -1) { - erval.encoded = -1; - erval.failed_type = td; - erval.structure_ptr = ptr; - return erval; - } - - computed_size += encoding_size; - if(!cb) { - erval.encoded = computed_size; - ASN__ENCODED_OK(erval); - } - - ASN_DEBUG("Encoding members of SEQUENCE OF %s", td->name); - - /* - * Encode all members. - */ - for(edx = 0; edx < list->count; edx++) { - void *memb_ptr = list->array[edx]; - if(!memb_ptr) continue; - erval = elm->type->op->der_encoder(elm->type, memb_ptr, - 0, elm->tag, - cb, app_key); - if(erval.encoded == -1) - return erval; - encoding_size += erval.encoded; - } - - if(computed_size != (size_t)encoding_size) { - /* - * Encoded size is not equal to the computed size. - */ - erval.encoded = -1; - erval.failed_type = td; - erval.structure_ptr = ptr; - } else { - erval.encoded = computed_size; - erval.structure_ptr = 0; - erval.failed_type = 0; - } - - return erval; -} - -asn_enc_rval_t -SEQUENCE_OF_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, - int ilevel, enum xer_encoder_flags_e flags, - asn_app_consume_bytes_f *cb, void *app_key) { - asn_enc_rval_t er = {0,0,0}; - const asn_SET_OF_specifics_t *specs = (const asn_SET_OF_specifics_t *)td->specifics; - const asn_TYPE_member_t *elm = td->elements; - const asn_anonymous_sequence_ *list = _A_CSEQUENCE_FROM_VOID(sptr); - const char *mname = specs->as_XMLValueList - ? 0 - : ((*elm->name) ? elm->name : elm->type->xml_tag); - size_t mlen = mname ? strlen(mname) : 0; - int xcan = (flags & XER_F_CANONICAL); - int i; - - if(!sptr) ASN__ENCODE_FAILED; - - er.encoded = 0; - - for(i = 0; i < list->count; i++) { - asn_enc_rval_t tmper = {0,0,0}; - void *memb_ptr = list->array[i]; - if(!memb_ptr) continue; - - if(mname) { - if(!xcan) ASN__TEXT_INDENT(1, ilevel); - ASN__CALLBACK3("<", 1, mname, mlen, ">", 1); - } - - tmper = elm->type->op->xer_encoder(elm->type, memb_ptr, ilevel + 1, - flags, cb, app_key); - if(tmper.encoded == -1) return tmper; - er.encoded += tmper.encoded; - if(tmper.encoded == 0 && specs->as_XMLValueList) { - const char *name = elm->type->xml_tag; - size_t len = strlen(name); - if(!xcan) ASN__TEXT_INDENT(1, ilevel + 1); - ASN__CALLBACK3("<", 1, name, len, "/>", 2); - } - - if(mname) { - ASN__CALLBACK3("", 1); - } - } - - if(!xcan) ASN__TEXT_INDENT(1, ilevel - 1); - - ASN__ENCODED_OK(er); -cb_failed: - ASN__ENCODE_FAILED; -} - -#ifndef ASN_DISABLE_PER_SUPPORT - -asn_enc_rval_t -SEQUENCE_OF_encode_uper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_per_outp_t *po) { - const asn_anonymous_sequence_ *list; - const asn_per_constraint_t *ct; - asn_enc_rval_t er = {0,0,0}; - const asn_TYPE_member_t *elm = td->elements; - size_t encoded_edx; - - if(!sptr) ASN__ENCODE_FAILED; - list = _A_CSEQUENCE_FROM_VOID(sptr); - - er.encoded = 0; - - ASN_DEBUG("Encoding %s as SEQUENCE OF (%d)", td->name, list->count); - - if(constraints) ct = &constraints->size; - else if(td->encoding_constraints.per_constraints) - ct = &td->encoding_constraints.per_constraints->size; - else ct = 0; - - /* If extensible constraint, check if size is in root */ - if(ct) { - int not_in_root = - (list->count < ct->lower_bound || list->count > ct->upper_bound); - ASN_DEBUG("lb %ld ub %ld %s", ct->lower_bound, ct->upper_bound, - ct->flags & APC_EXTENSIBLE ? "ext" : "fix"); - if(ct->flags & APC_EXTENSIBLE) { - /* Declare whether size is in extension root */ - if(per_put_few_bits(po, not_in_root, 1)) ASN__ENCODE_FAILED; - if(not_in_root) ct = 0; - } else if(not_in_root && ct->effective_bits >= 0) { - ASN__ENCODE_FAILED; - } - - } - - if(ct && ct->effective_bits >= 0) { - /* X.691, #19.5: No length determinant */ - if(per_put_few_bits(po, list->count - ct->lower_bound, - ct->effective_bits)) - ASN__ENCODE_FAILED; - } else if(list->count == 0) { - /* When the list is empty add only the length determinant - * X.691, #20.6 and #11.9.4.1 - */ - if (uper_put_length(po, 0, 0)) { - ASN__ENCODE_FAILED; - } - ASN__ENCODED_OK(er); - } - - for(encoded_edx = 0; (ssize_t)encoded_edx < list->count;) { - ssize_t may_encode; - size_t edx; - int need_eom = 0; - - if(ct && ct->effective_bits >= 0) { - may_encode = list->count; - } else { - may_encode = - uper_put_length(po, list->count - encoded_edx, &need_eom); - if(may_encode < 0) ASN__ENCODE_FAILED; - } - - for(edx = encoded_edx; edx < encoded_edx + may_encode; edx++) { - void *memb_ptr = list->array[edx]; - if(!memb_ptr) ASN__ENCODE_FAILED; - er = elm->type->op->uper_encoder( - elm->type, elm->encoding_constraints.per_constraints, memb_ptr, - po); - if(er.encoded == -1) ASN__ENCODE_FAILED; - } - - if(need_eom && uper_put_length(po, 0, 0)) - ASN__ENCODE_FAILED; /* End of Message length */ - - encoded_edx += may_encode; - } - - ASN__ENCODED_OK(er); -} - -asn_enc_rval_t -SEQUENCE_OF_encode_aper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_per_outp_t *po) { - const asn_anonymous_sequence_ *list; - const asn_per_constraint_t *ct; - asn_enc_rval_t er = {0,0,0}; - asn_TYPE_member_t *elm = td->elements; - int seq; - - if(!sptr) ASN__ENCODE_FAILED; - list = _A_CSEQUENCE_FROM_VOID(sptr); - - er.encoded = 0; - - ASN_DEBUG("Encoding %s as SEQUENCE OF size (%d) using ALIGNED PER", td->name, list->count); - - if(constraints) ct = &constraints->size; - else if(td->encoding_constraints.per_constraints) - ct = &td->encoding_constraints.per_constraints->size; - else ct = 0; - - /* If extensible constraint, check if size is in root */ - if(ct) { - int not_in_root = (list->count < ct->lower_bound - || list->count > ct->upper_bound); - ASN_DEBUG("lb %ld ub %ld %s", - ct->lower_bound, ct->upper_bound, - ct->flags & APC_EXTENSIBLE ? "ext" : "fix"); - if(ct->flags & APC_EXTENSIBLE) { - /* Declare whether size is in extension root */ - if(per_put_few_bits(po, not_in_root, 1)) - ASN__ENCODE_FAILED; - if(not_in_root) ct = 0; - } else if(not_in_root && ct->effective_bits >= 0) - ASN__ENCODE_FAILED; - } - - if(ct && ct->effective_bits >= 0) { - /* X.691, #19.5: No length determinant */ -/* if(per_put_few_bits(po, list->count - ct->lower_bound, - ct->effective_bits)) - ASN__ENCODE_FAILED; -*/ - if (aper_put_length(po, ct->upper_bound - ct->lower_bound + 1, list->count - ct->lower_bound) < 0) - ASN__ENCODE_FAILED; - } - - for(seq = -1; seq < list->count;) { - ssize_t mayEncode; - if(seq < 0) seq = 0; - if(ct && ct->effective_bits >= 0) { - mayEncode = list->count; - } else { - mayEncode = aper_put_length(po, -1, list->count - seq); - if(mayEncode < 0) ASN__ENCODE_FAILED; - } - - while(mayEncode--) { - void *memb_ptr = list->array[seq++]; - if(!memb_ptr) ASN__ENCODE_FAILED; - er = elm->type->op->aper_encoder(elm->type, - elm->encoding_constraints.per_constraints, memb_ptr, po); - if(er.encoded == -1) - ASN__ENCODE_FAILED; - } - } - - ASN__ENCODED_OK(er); -} -#endif /* ASN_DISABLE_PER_SUPPORT */ - -int -SEQUENCE_OF_compare(const asn_TYPE_descriptor_t *td, const void *aptr, - const void *bptr) { - const asn_anonymous_sequence_ *a = _A_CSEQUENCE_FROM_VOID(aptr); - const asn_anonymous_sequence_ *b = _A_CSEQUENCE_FROM_VOID(bptr); - ssize_t idx; - - if(a && b) { - ssize_t common_length = (a->count < b->count ? a->count : b->count); - for(idx = 0; idx < common_length; idx++) { - int ret = td->elements->type->op->compare_struct( - td->elements->type, a->array[idx], b->array[idx]); - if(ret) return ret; - } - - if(idx < b->count) /* more elements in b */ - return -1; /* a is shorter, so put it first */ - if(idx < a->count) return 1; - - } else if(!a) { - return -1; - } else if(!b) { - return 1; - } - - return 0; -} - - -asn_TYPE_operation_t asn_OP_SEQUENCE_OF = { - SEQUENCE_OF_free, - SEQUENCE_OF_print, - SEQUENCE_OF_compare, - SEQUENCE_OF_decode_ber, - SEQUENCE_OF_encode_der, - SEQUENCE_OF_decode_xer, - SEQUENCE_OF_encode_xer, -#ifdef ASN_DISABLE_OER_SUPPORT - 0, - 0, -#else - SEQUENCE_OF_decode_oer, /* Same as SET OF decoder. */ - SEQUENCE_OF_encode_oer, /* Same as SET OF encoder */ -#endif /* ASN_DISABLE_OER_SUPPORT */ -#ifdef ASN_DISABLE_PER_SUPPORT - 0, - 0, - 0, - 0, -#else - SEQUENCE_OF_decode_uper, /* Same as SET OF decoder */ - SEQUENCE_OF_encode_uper, - SEQUENCE_OF_decode_aper, - SEQUENCE_OF_encode_aper, -#endif /* ASN_DISABLE_PER_SUPPORT */ - SEQUENCE_OF_random_fill, - 0 /* Use generic outmost tag fetcher */ -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/constr_SEQUENCE_OF.h b/e2sim/previous/e2apv1sim/ASN1c/constr_SEQUENCE_OF.h deleted file mode 100644 index 6857f0f..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/constr_SEQUENCE_OF.h +++ /dev/null @@ -1,41 +0,0 @@ -/*- - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef _CONSTR_SEQUENCE_OF_H_ -#define _CONSTR_SEQUENCE_OF_H_ - -#include -#include /* Implemented using SET OF */ - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * A set specialized functions dealing with the SEQUENCE OF type. - * Generally implemented using SET OF. - */ -asn_struct_compare_f SEQUENCE_OF_compare; -der_type_encoder_f SEQUENCE_OF_encode_der; -xer_type_encoder_f SEQUENCE_OF_encode_xer; -per_type_encoder_f SEQUENCE_OF_encode_uper; -per_type_encoder_f SEQUENCE_OF_encode_aper; -extern asn_TYPE_operation_t asn_OP_SEQUENCE_OF; - -#define SEQUENCE_OF_free SET_OF_free -#define SEQUENCE_OF_print SET_OF_print -#define SEQUENCE_OF_constraint SET_OF_constraint -#define SEQUENCE_OF_decode_ber SET_OF_decode_ber -#define SEQUENCE_OF_decode_xer SET_OF_decode_xer -#define SEQUENCE_OF_decode_oer SET_OF_decode_oer -#define SEQUENCE_OF_encode_oer SET_OF_encode_oer -#define SEQUENCE_OF_decode_uper SET_OF_decode_uper -#define SEQUENCE_OF_decode_aper SET_OF_decode_aper -#define SEQUENCE_OF_random_fill SET_OF_random_fill - -#ifdef __cplusplus -} -#endif - -#endif /* _CONSTR_SET_OF_H_ */ diff --git a/e2sim/previous/e2apv1sim/ASN1c/constr_SEQUENCE_oer.c b/e2sim/previous/e2apv1sim/ASN1c/constr_SEQUENCE_oer.c deleted file mode 100644 index ecb589c..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/constr_SEQUENCE_oer.c +++ /dev/null @@ -1,561 +0,0 @@ -/* - * Copyright (c) 2017 Lev Walkin . - * All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef ASN_DISABLE_OER_SUPPORT - -#include -#include -#include -#include - -/* - * This macro "eats" the part of the buffer which is definitely "consumed", - * i.e. was correctly converted into local representation or rightfully skipped. - */ -#undef ADVANCE -#define ADVANCE(num_bytes) \ - do { \ - size_t num = num_bytes; \ - ptr = ((const char *)ptr) + num; \ - size -= num; \ - consumed_myself += num; \ - } while(0) - -/* - * Switch to the next phase of parsing. - */ -#undef NEXT_PHASE -#undef PHASE_OUT -#define NEXT_PHASE(ctx) \ - do { \ - ctx->phase++; \ - ctx->step = 0; \ - } while(0) - -/* - * Check whether we are inside the extensions group. - */ -#define IN_EXTENSION_GROUP(specs, memb_idx) \ - ((specs)->first_extension >= 0 \ - && (unsigned)(specs)->first_extension <= (memb_idx)) - -#define IN_ROOT_GROUP_PRED(edx) \ - edx < (specs->first_extension < 0 ? td->elements_count \ - : (size_t)specs->first_extension) - -#define FOR_IN_ROOT_GROUP(edx) for(edx = 0; IN_ROOT_GROUP_PRED(edx); edx++) - -/* - * Return a standardized complex structure. - */ -#undef RETURN -#define RETURN(_code) do { \ - rval.code = _code; \ - rval.consumed = consumed_myself;\ - return rval; \ - } while(0) - -/* - * Return pointer to a member. - */ -static void ** -element_ptrptr(void *struct_ptr, asn_TYPE_member_t *elm, void **tmp_save_ptr) { - if(elm->flags & ATF_POINTER) { - /* Member is a pointer to another structure */ - return (void **)((char *)struct_ptr + elm->memb_offset); - } else { - assert(tmp_save_ptr); - *tmp_save_ptr = (void *)((char *)struct_ptr + elm->memb_offset); - return tmp_save_ptr; - } -} - -static const void * -element_ptr(const void *struct_ptr, const asn_TYPE_member_t *elm) { - if(elm->flags & ATF_POINTER) { - /* Member is a pointer to another structure */ - return *(const void *const *)((const char *)struct_ptr - + elm->memb_offset); - } else { - return (const void *)((const char *)struct_ptr + elm->memb_offset); - } -} - -asn_dec_rval_t -SEQUENCE_decode_oer(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_oer_constraints_t *constraints, void **struct_ptr, - const void *ptr, size_t size) { - const asn_SEQUENCE_specifics_t *specs = - (const asn_SEQUENCE_specifics_t *)td->specifics; - asn_dec_rval_t rval = {RC_OK, 0}; - void *st = *struct_ptr; /* Target structure */ - asn_struct_ctx_t *ctx; /* Decoder context */ - size_t consumed_myself = 0; /* Consumed bytes from ptr. */ - - (void)constraints; - - if(ASN__STACK_OVERFLOW_CHECK(opt_codec_ctx)) - ASN__DECODE_FAILED; - - /* - * Create the target structure if it is not present already. - */ - if(st == 0) { - st = *struct_ptr = CALLOC(1, specs->struct_size); - if(st == 0) { - RETURN(RC_FAIL); - } - } - - /* - * Restore parsing context. - */ - ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset); - - /* - * Start to parse where left previously. - */ - switch(ctx->phase) { - case 0: { - /* - * Fetch preamble. - */ - asn_bit_data_t *preamble; - int has_extensions_bit = (specs->first_extension >= 0); - size_t preamble_bits = (has_extensions_bit + specs->roms_count); - size_t preamble_bytes = ((7 + preamble_bits) >> 3); - - ASN_DEBUG("OER SEQUENCE %s Decoding PHASE 0", td->name); - - ASN_DEBUG( - "Expecting preamble bits %" ASN_PRI_SIZE " for %s (including %d extension bits)", - preamble_bits, td->name, has_extensions_bit); - - if(preamble_bytes > size) { - ASN__DECODE_STARVED; - } - - preamble = asn_bit_data_new_contiguous(ptr, preamble_bits); - if(!preamble) { - RETURN(RC_FAIL); - } - preamble->nboff = has_extensions_bit; - ctx->ptr = preamble; - ADVANCE(preamble_bytes); - } - NEXT_PHASE(ctx); - /* FALL THROUGH */ - case 1: { - /* Decode components of the extension root */ - asn_bit_data_t *preamble = ctx->ptr; - size_t edx; - - ASN_DEBUG("OER SEQUENCE %s Decoding PHASE 1 (Root)", td->name); - - assert(preamble); - - for(edx = (ctx->step >> 1); IN_ROOT_GROUP_PRED(edx); - edx++, ctx->step = (ctx->step & ~1) + 2) { - asn_TYPE_member_t *elm = &td->elements[edx]; - - ASN_DEBUG("Decoding %s->%s", td->name, elm->name); - - assert(!IN_EXTENSION_GROUP(specs, edx)); - - if(ctx->step & 1) { - goto microphase2_decode_continues; - } - - - if(elm->optional) { - int32_t present = asn_get_few_bits(preamble, 1); - if(present < 0) { - ASN_DEBUG("Presence map ended prematurely: %d", present); - RETURN(RC_FAIL); - } else if(present == 0) { - if(elm->default_value_set) { - /* Fill-in DEFAULT */ - void *tmp; - if(elm->default_value_set( - element_ptrptr(st, elm, &tmp))) { - RETURN(RC_FAIL); - } - } - /* The member is not present. */ - continue; - } - /* Present OPTIONAL or DEFAULT component. */ - } - - /* - * MICROPHASE 2: Invoke the member-specific decoder. - */ - ctx->step |= 1; /* Confirm entering next microphase */ - microphase2_decode_continues: - if(elm->flags & ATF_OPEN_TYPE) { - rval = OPEN_TYPE_oer_get(opt_codec_ctx, td, st, elm, ptr, size); - } else { - void *save_memb_ptr; /* Temporary reference. */ - void **memb_ptr2; /* Pointer to a pointer to a memmber */ - - memb_ptr2 = element_ptrptr(st, elm, &save_memb_ptr); - - rval = elm->type->op->oer_decoder( - opt_codec_ctx, elm->type, - elm->encoding_constraints.oer_constraints, memb_ptr2, ptr, - size); - } - switch(rval.code) { - case RC_OK: - ADVANCE(rval.consumed); - break; - case RC_WMORE: - ASN_DEBUG("More bytes needed at element %s \"%s\"", td->name, - elm->name); - ADVANCE(rval.consumed); - RETURN(RC_WMORE); - case RC_FAIL: - ASN_DEBUG("Decoding failed at element %s \"%s\"", td->name, - elm->name); - RETURN(RC_FAIL); - } - } /* for(all root members) */ - - } - NEXT_PHASE(ctx); - /* FALL THROUGH */ - case 2: - assert(ctx->ptr); - { - /* Cleanup preamble. */ - asn_bit_data_t *preamble = ctx->ptr; - asn_bit_data_t *extadds; - int has_extensions_bit = (specs->first_extension >= 0); - int extensions_present = - has_extensions_bit - && (preamble->buffer == NULL - || (((const uint8_t *)preamble->buffer)[0] & 0x80)); - uint8_t unused_bits; - size_t len = 0; - ssize_t len_len; - - ASN_DEBUG("OER SEQUENCE %s Decoding PHASE 2", td->name); - - preamble->buffer = 0; /* Will do extensions_present==1 next time. */ - - if(!extensions_present) { - ctx->phase = 10; - RETURN(RC_OK); - } - - /* - * X.696 (08/2015) #16.1 (c), #16.4 - * Read in the extension addition presence bitmap. - */ - - len_len = oer_fetch_length(ptr, size, &len); - if(len_len > 0) { - ADVANCE(len_len); - } else if(len_len < 0) { - RETURN(RC_FAIL); - } else { - RETURN(RC_WMORE); - } - - if(len == 0) { - /* 16.4.1-2 */ - RETURN(RC_FAIL); - } else if(len > size) { - RETURN(RC_WMORE); - } - - /* Account for unused bits */ - unused_bits = 0x7 & *(const uint8_t *)ptr; - ADVANCE(1); - len--; - if(unused_bits && len == 0) { - RETURN(RC_FAIL); - } - - /* Get the extensions map */ - extadds = asn_bit_data_new_contiguous(ptr, len * 8 - unused_bits); - if(!extadds) { - RETURN(RC_FAIL); - } - FREEMEM(preamble); - ctx->ptr = extadds; - ADVANCE(len); - } - NEXT_PHASE(ctx); - ctx->step = - (specs->first_extension < 0 ? td->elements_count - : (size_t)specs->first_extension); - /* Fall through */ - case 3: - ASN_DEBUG("OER SEQUENCE %s Decoding PHASE 3 (Extensions)", td->name); - for(; ctx->step < (signed)td->elements_count; ctx->step++) { - asn_bit_data_t *extadds = ctx->ptr; - size_t edx = ctx->step; - asn_TYPE_member_t *elm = &td->elements[edx]; - void *tmp_memb_ptr; - void **memb_ptr2 = element_ptrptr(st, elm, &tmp_memb_ptr); - - switch(asn_get_few_bits(extadds, 1)) { - case -1: - /* - * Not every one of our extensions is known to the remote side. - * Continue filling in their defaults though. - */ - /* Fall through */ - case 0: - /* Fill-in DEFAULT */ - if(elm->default_value_set - && elm->default_value_set(memb_ptr2)) { - RETURN(RC_FAIL); - } - continue; - case 1: { - /* Read OER open type */ - ssize_t ot_size = - oer_open_type_get(opt_codec_ctx, elm->type, - elm->encoding_constraints.oer_constraints, - memb_ptr2, ptr, size); - assert(ot_size <= (ssize_t)size); - if(ot_size > 0) { - ADVANCE(ot_size); - } else if(ot_size < 0) { - RETURN(RC_FAIL); - } else { - /* Roll back open type parsing */ - asn_get_undo(extadds, 1); - RETURN(RC_WMORE); - } - break; - } - default: - RETURN(RC_FAIL); - } - } - - NEXT_PHASE(ctx); - /* Fall through */ - case 4: - ASN_DEBUG("OER SEQUENCE %s Decoding PHASE 4", td->name); - /* Read in the rest of Open Types while ignoring them */ - for(;;) { - asn_bit_data_t *extadds = ctx->ptr; - switch(asn_get_few_bits(extadds, 1)) { - case 0: - continue; - case 1: { - ssize_t skipped = oer_open_type_skip(ptr, size); - if(skipped > 0) { - ADVANCE(skipped); - } else if(skipped < 0) { - RETURN(RC_FAIL); - } else { - asn_get_undo(extadds, 1); - RETURN(RC_WMORE); - } - continue; - } - case -1: - /* No more Open Type encoded components */ - break; - default: - RETURN(RC_FAIL); - } - break; - } - } - - RETURN(RC_OK); -} - -/* - * Encode as Canonical OER. - */ -asn_enc_rval_t -SEQUENCE_encode_oer(const asn_TYPE_descriptor_t *td, - const asn_oer_constraints_t *constraints, const void *sptr, - asn_app_consume_bytes_f *cb, void *app_key) { - const asn_SEQUENCE_specifics_t *specs = (const asn_SEQUENCE_specifics_t *)td->specifics; - size_t computed_size = 0; - int has_extensions_bit = (specs->first_extension >= 0); - size_t preamble_bits = (has_extensions_bit + specs->roms_count); - uint32_t has_extensions = 0; - size_t edx; - int ret; - - (void)constraints; - - if(preamble_bits) { - asn_bit_outp_t preamble; - - memset(&preamble, 0, sizeof(preamble)); - preamble.output = cb; - preamble.op_key = app_key; - - if(has_extensions_bit) { - for(edx = specs->first_extension; edx < td->elements_count; edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - const void *memb_ptr = element_ptr(sptr, elm); - if(memb_ptr) { - if(elm->default_value_cmp - && elm->default_value_cmp(memb_ptr) == 0) { - /* Do not encode default values in extensions */ - } else { - has_extensions = 1; - break; - } - } - } - ret = asn_put_few_bits(&preamble, has_extensions, 1); - assert(ret == 0); - if(ret < 0) { - ASN__ENCODE_FAILED; - } - } - - /* - * Encode optional components bitmap. - */ - if(specs->roms_count) { - FOR_IN_ROOT_GROUP(edx) { - asn_TYPE_member_t *elm = &td->elements[edx]; - - if(IN_EXTENSION_GROUP(specs, edx)) break; - - if(elm->optional) { - const void *memb_ptr = element_ptr(sptr, elm); - uint32_t has_component = memb_ptr != NULL; - if(has_component && elm->default_value_cmp - && elm->default_value_cmp(memb_ptr) == 0) { - has_component = 0; - } - ret = asn_put_few_bits(&preamble, has_component, 1); - if(ret < 0) { - ASN__ENCODE_FAILED; - } - } - } - } - - asn_put_aligned_flush(&preamble); - computed_size += preamble.flushed_bytes; - } /* if(preamble_bits) */ - - /* - * Put root components and extensions root. - */ - for(edx = 0; edx < td->elements_count; edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - asn_enc_rval_t er = {0,0,0}; - const void *memb_ptr; - - if(IN_EXTENSION_GROUP(specs, edx)) break; - - memb_ptr = element_ptr(sptr, elm); - if(memb_ptr) { - if(elm->default_value_cmp - && elm->default_value_cmp(memb_ptr) == 0) { - /* Skip default values in encoding */ - continue; - } - } else { - if(elm->optional) continue; - /* Mandatory element is missing */ - ASN__ENCODE_FAILED; - } - if(!elm->type->op->oer_encoder) { - ASN_DEBUG("OER encoder is not defined for type %s", elm->type->name); - ASN__ENCODE_FAILED; - } - er = elm->type->op->oer_encoder( - elm->type, elm->encoding_constraints.oer_constraints, memb_ptr, cb, - app_key); - if(er.encoded == -1) { - ASN_DEBUG("... while encoding %s member \"%s\"\n", td->name, - elm->name); - return er; - } - computed_size += er.encoded; - } - - /* - * Before encode extensions, encode extensions additions presense bitmap - # X.696 (08/2015) #16.4. - */ - if(has_extensions) { - asn_bit_outp_t extadds; - - /* Special case allowing us to use exactly one byte for #8.6 */ - size_t aoms_length_bits = specs->aoms_count; - size_t aoms_length_bytes = (7 + aoms_length_bits) >> 3; - uint8_t unused_bits = 0x07 & (8 - (aoms_length_bits & 0x07)); - - assert(1 + aoms_length_bytes <= 127); - - memset(&extadds, 0, sizeof(extadds)); - extadds.output = cb; - extadds.op_key = app_key; - - /* #8.6 length determinant */ - ret = asn_put_few_bits(&extadds, (1 + aoms_length_bytes), 8); - if(ret < 0) ASN__ENCODE_FAILED; - - /* Number of unused bytes, #16.4.2 */ - ret = asn_put_few_bits(&extadds, unused_bits, 8); - if(ret < 0) ASN__ENCODE_FAILED; - - /* Encode presence bitmap #16.4.3 */ - for(edx = specs->first_extension; edx < td->elements_count; edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - const void *memb_ptr = element_ptr(sptr, elm); - if(memb_ptr && elm->default_value_cmp - && elm->default_value_cmp(memb_ptr) == 0) { - memb_ptr = 0; /* Do not encode default value. */ - } - ret |= asn_put_few_bits(&extadds, memb_ptr ? 1 : 0, 1); - } - if(ret < 0) ASN__ENCODE_FAILED; - - asn_put_aligned_flush(&extadds); - computed_size += extadds.flushed_bytes; - - /* Now, encode extensions */ - for(edx = specs->first_extension; edx < td->elements_count; edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - const void *memb_ptr = element_ptr(sptr, elm); - - if(memb_ptr) { - if(elm->default_value_cmp - && elm->default_value_cmp(memb_ptr) == 0) { - /* Do not encode default value. */ - } else { - ssize_t wrote = oer_open_type_put( - elm->type, elm->encoding_constraints.oer_constraints, - memb_ptr, cb, app_key); - if(wrote == -1) { - ASN__ENCODE_FAILED; - } - computed_size += wrote; - } - } else if(!elm->optional) { - ASN__ENCODE_FAILED; - } - } - } /* if(has_extensions) */ - - - { - asn_enc_rval_t er = {0, 0, 0}; - er.encoded = computed_size; - ASN__ENCODED_OK(er); - } -} - -#endif /* ASN_DISABLE_OER_SUPPORT */ diff --git a/e2sim/previous/e2apv1sim/ASN1c/constr_SET_OF.c b/e2sim/previous/e2apv1sim/ASN1c/constr_SET_OF.c deleted file mode 100644 index bf1dc27..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/constr_SET_OF.c +++ /dev/null @@ -1,1441 +0,0 @@ -/* - * Copyright (c) 2003-2017 Lev Walkin . - * All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include - -/* - * Number of bytes left for this structure. - * (ctx->left) indicates the number of bytes _transferred_ for the structure. - * (size) contains the number of bytes in the buffer passed. - */ -#define LEFT ((size<(size_t)ctx->left)?size:(size_t)ctx->left) - -/* - * If the subprocessor function returns with an indication that it wants - * more data, it may well be a fatal decoding problem, because the - * size is constrained by the 's L, even if the buffer size allows - * reading more data. - * For example, consider the buffer containing the following TLVs: - * ... - * The TLV length clearly indicates that one byte is expected in V, but - * if the V processor returns with "want more data" even if the buffer - * contains way more data than the V processor have seen. - */ -#define SIZE_VIOLATION (ctx->left >= 0 && (size_t)ctx->left <= size) - -/* - * This macro "eats" the part of the buffer which is definitely "consumed", - * i.e. was correctly converted into local representation or rightfully skipped. - */ -#undef ADVANCE -#define ADVANCE(num_bytes) do { \ - size_t num = num_bytes; \ - ptr = ((const char *)ptr) + num;\ - size -= num; \ - if(ctx->left >= 0) \ - ctx->left -= num; \ - consumed_myself += num; \ - } while(0) - -/* - * Switch to the next phase of parsing. - */ -#undef NEXT_PHASE -#undef PHASE_OUT -#define NEXT_PHASE(ctx) do { \ - ctx->phase++; \ - ctx->step = 0; \ - } while(0) -#define PHASE_OUT(ctx) do { ctx->phase = 10; } while(0) - -/* - * Return a standardized complex structure. - */ -#undef RETURN -#define RETURN(_code) do { \ - rval.code = _code; \ - rval.consumed = consumed_myself;\ - return rval; \ - } while(0) - -/* - * The decoder of the SET OF type. - */ -asn_dec_rval_t -SET_OF_decode_ber(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **struct_ptr, - const void *ptr, size_t size, int tag_mode) { - /* - * Bring closer parts of structure description. - */ - const asn_SET_OF_specifics_t *specs = (const asn_SET_OF_specifics_t *)td->specifics; - const asn_TYPE_member_t *elm = td->elements; /* Single one */ - - /* - * Parts of the structure being constructed. - */ - void *st = *struct_ptr; /* Target structure. */ - asn_struct_ctx_t *ctx; /* Decoder context */ - - ber_tlv_tag_t tlv_tag; /* T from TLV */ - asn_dec_rval_t rval; /* Return code from subparsers */ - - ssize_t consumed_myself = 0; /* Consumed bytes from ptr */ - - ASN_DEBUG("Decoding %s as SET OF", td->name); - - /* - * Create the target structure if it is not present already. - */ - if(st == 0) { - st = *struct_ptr = CALLOC(1, specs->struct_size); - if(st == 0) { - RETURN(RC_FAIL); - } - } - - /* - * Restore parsing context. - */ - ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset); - - /* - * Start to parse where left previously - */ - switch(ctx->phase) { - case 0: - /* - * PHASE 0. - * Check that the set of tags associated with given structure - * perfectly fits our expectations. - */ - - rval = ber_check_tags(opt_codec_ctx, td, ctx, ptr, size, - tag_mode, 1, &ctx->left, 0); - if(rval.code != RC_OK) { - ASN_DEBUG("%s tagging check failed: %d", - td->name, rval.code); - return rval; - } - - if(ctx->left >= 0) - ctx->left += rval.consumed; /* ?Substracted below! */ - ADVANCE(rval.consumed); - - ASN_DEBUG("Structure consumes %ld bytes, " - "buffer %ld", (long)ctx->left, (long)size); - - NEXT_PHASE(ctx); - /* Fall through */ - case 1: - /* - * PHASE 1. - * From the place where we've left it previously, - * try to decode the next item. - */ - for(;; ctx->step = 0) { - ssize_t tag_len; /* Length of TLV's T */ - - if(ctx->step & 1) - goto microphase2; - - /* - * MICROPHASE 1: Synchronize decoding. - */ - - if(ctx->left == 0) { - ASN_DEBUG("End of SET OF %s", td->name); - /* - * No more things to decode. - * Exit out of here. - */ - PHASE_OUT(ctx); - RETURN(RC_OK); - } - - /* - * Fetch the T from TLV. - */ - tag_len = ber_fetch_tag(ptr, LEFT, &tlv_tag); - switch(tag_len) { - case 0: if(!SIZE_VIOLATION) RETURN(RC_WMORE); - /* Fall through */ - case -1: RETURN(RC_FAIL); - } - - if(ctx->left < 0 && ((const uint8_t *)ptr)[0] == 0) { - if(LEFT < 2) { - if(SIZE_VIOLATION) - RETURN(RC_FAIL); - else - RETURN(RC_WMORE); - } else if(((const uint8_t *)ptr)[1] == 0) { - /* - * Found the terminator of the - * indefinite length structure. - */ - break; - } - } - - /* Outmost tag may be unknown and cannot be fetched/compared */ - if(elm->tag != (ber_tlv_tag_t)-1) { - if(BER_TAGS_EQUAL(tlv_tag, elm->tag)) { - /* - * The new list member of expected type has arrived. - */ - } else { - ASN_DEBUG("Unexpected tag %s fixed SET OF %s", - ber_tlv_tag_string(tlv_tag), td->name); - ASN_DEBUG("%s SET OF has tag %s", - td->name, ber_tlv_tag_string(elm->tag)); - RETURN(RC_FAIL); - } - } - - /* - * MICROPHASE 2: Invoke the member-specific decoder. - */ - ctx->step |= 1; /* Confirm entering next microphase */ - microphase2: - - /* - * Invoke the member fetch routine according to member's type - */ - rval = elm->type->op->ber_decoder(opt_codec_ctx, - elm->type, &ctx->ptr, ptr, LEFT, 0); - ASN_DEBUG("In %s SET OF %s code %d consumed %d", - td->name, elm->type->name, - rval.code, (int)rval.consumed); - switch(rval.code) { - case RC_OK: - { - asn_anonymous_set_ *list = _A_SET_FROM_VOID(st); - if(ASN_SET_ADD(list, ctx->ptr) != 0) - RETURN(RC_FAIL); - else - ctx->ptr = 0; - } - break; - case RC_WMORE: /* More data expected */ - if(!SIZE_VIOLATION) { - ADVANCE(rval.consumed); - RETURN(RC_WMORE); - } - /* Fall through */ - case RC_FAIL: /* Fatal error */ - ASN_STRUCT_FREE(*elm->type, ctx->ptr); - ctx->ptr = 0; - RETURN(RC_FAIL); - } /* switch(rval) */ - - ADVANCE(rval.consumed); - } /* for(all list members) */ - - NEXT_PHASE(ctx); - case 2: - /* - * Read in all "end of content" TLVs. - */ - while(ctx->left < 0) { - if(LEFT < 2) { - if(LEFT > 0 && ((const char *)ptr)[0] != 0) { - /* Unexpected tag */ - RETURN(RC_FAIL); - } else { - RETURN(RC_WMORE); - } - } - if(((const char *)ptr)[0] == 0 - && ((const char *)ptr)[1] == 0) { - ADVANCE(2); - ctx->left++; - } else { - RETURN(RC_FAIL); - } - } - - PHASE_OUT(ctx); - } - - RETURN(RC_OK); -} - -/* - * Internally visible buffer holding a single encoded element. - */ -struct _el_buffer { - uint8_t *buf; - size_t length; - size_t allocated_size; - unsigned bits_unused; -}; -/* Append bytes to the above structure */ -static int _el_addbytes(const void *buffer, size_t size, void *el_buf_ptr) { - struct _el_buffer *el_buf = (struct _el_buffer *)el_buf_ptr; - - if(el_buf->length + size > el_buf->allocated_size) { - size_t new_size = el_buf->allocated_size ? el_buf->allocated_size : 8; - void *p; - - do { - new_size <<= 2; - } while(el_buf->length + size > new_size); - - p = REALLOC(el_buf->buf, new_size); - if(p) { - el_buf->buf = p; - el_buf->allocated_size = new_size; - } else { - return -1; - } - } - - memcpy(el_buf->buf + el_buf->length, buffer, size); - - el_buf->length += size; - return 0; -} - -static void assert_unused_bits(const struct _el_buffer* p) { - if(p->length) { - assert((p->buf[p->length-1] & ~(0xff << p->bits_unused)) == 0); - } else { - assert(p->bits_unused == 0); - } -} - -static int _el_buf_cmp(const void *ap, const void *bp) { - const struct _el_buffer *a = (const struct _el_buffer *)ap; - const struct _el_buffer *b = (const struct _el_buffer *)bp; - size_t common_len; - int ret = 0; - - if(a->length < b->length) - common_len = a->length; - else - common_len = b->length; - - if (a->buf && b->buf) { - ret = memcmp(a->buf, b->buf, common_len); - } - if(ret == 0) { - if(a->length < b->length) - ret = -1; - else if(a->length > b->length) - ret = 1; - /* Ignore unused bits. */ - assert_unused_bits(a); - assert_unused_bits(b); - } - - return ret; -} - -static void -SET_OF__encode_sorted_free(struct _el_buffer *el_buf, size_t count) { - size_t i; - - for(i = 0; i < count; i++) { - FREEMEM(el_buf[i].buf); - } - - FREEMEM(el_buf); -} - -enum SET_OF__encode_method { - SOES_DER, /* Distinguished Encoding Rules */ - SOES_CUPER /* Canonical Unaligned Packed Encoding Rules */ -}; - -static struct _el_buffer * -SET_OF__encode_sorted(const asn_TYPE_member_t *elm, - const asn_anonymous_set_ *list, - enum SET_OF__encode_method method) { - struct _el_buffer *encoded_els; - int edx; - - encoded_els = - (struct _el_buffer *)CALLOC(list->count, sizeof(encoded_els[0])); - if(encoded_els == NULL) { - return NULL; - } - - /* - * Encode all members. - */ - for(edx = 0; edx < list->count; edx++) { - const void *memb_ptr = list->array[edx]; - struct _el_buffer *encoding_el = &encoded_els[edx]; - asn_enc_rval_t erval = {0,0,0}; - - if(!memb_ptr) break; - - /* - * Encode the member into the prepared space. - */ - switch(method) { - case SOES_DER: - erval = elm->type->op->der_encoder(elm->type, memb_ptr, 0, elm->tag, - _el_addbytes, encoding_el); - break; - case SOES_CUPER: - erval = uper_encode(elm->type, - elm->encoding_constraints.per_constraints, - memb_ptr, _el_addbytes, encoding_el); - if(erval.encoded != -1) { - size_t extra_bits = erval.encoded % 8; - assert(encoding_el->length == (size_t)(erval.encoded + 7) / 8); - encoding_el->bits_unused = (8 - extra_bits) & 0x7; - } - break; - default: - assert(!"Unreachable"); - break; - } - if(erval.encoded < 0) break; - } - - if(edx == list->count) { - /* - * Sort the encoded elements according to their encoding. - */ - qsort(encoded_els, list->count, sizeof(encoded_els[0]), _el_buf_cmp); - - return encoded_els; - } else { - SET_OF__encode_sorted_free(encoded_els, edx); - return NULL; - } -} - - -/* - * The DER encoder of the SET OF type. - */ -asn_enc_rval_t -SET_OF_encode_der(const asn_TYPE_descriptor_t *td, const void *sptr, - int tag_mode, ber_tlv_tag_t tag, asn_app_consume_bytes_f *cb, - void *app_key) { - const asn_TYPE_member_t *elm = td->elements; - const asn_anonymous_set_ *list = _A_CSET_FROM_VOID(sptr); - size_t computed_size = 0; - ssize_t encoding_size = 0; - struct _el_buffer *encoded_els; - int edx; - - ASN_DEBUG("Estimating size for SET OF %s", td->name); - - /* - * Gather the length of the underlying members sequence. - */ - for(edx = 0; edx < list->count; edx++) { - void *memb_ptr = list->array[edx]; - asn_enc_rval_t erval = {0,0,0}; - - if(!memb_ptr) ASN__ENCODE_FAILED; - - erval = - elm->type->op->der_encoder(elm->type, memb_ptr, 0, elm->tag, 0, 0); - if(erval.encoded == -1) return erval; - computed_size += erval.encoded; - } - - - /* - * Encode the TLV for the sequence itself. - */ - encoding_size = - der_write_tags(td, computed_size, tag_mode, 1, tag, cb, app_key); - if(encoding_size < 0) { - ASN__ENCODE_FAILED; - } - computed_size += encoding_size; - - if(!cb || list->count == 0) { - asn_enc_rval_t erval = {0,0,0}; - erval.encoded = computed_size; - ASN__ENCODED_OK(erval); - } - - ASN_DEBUG("Encoding members of %s SET OF", td->name); - - /* - * DER mandates dynamic sorting of the SET OF elements - * according to their encodings. Build an array of the - * encoded elements. - */ - encoded_els = SET_OF__encode_sorted(elm, list, SOES_DER); - - /* - * Report encoded elements to the application. - * Dispose of temporary sorted members table. - */ - for(edx = 0; edx < list->count; edx++) { - struct _el_buffer *encoded_el = &encoded_els[edx]; - /* Report encoded chunks to the application */ - if(cb(encoded_el->buf, encoded_el->length, app_key) < 0) { - break; - } else { - encoding_size += encoded_el->length; - } - } - - SET_OF__encode_sorted_free(encoded_els, list->count); - - if(edx == list->count) { - asn_enc_rval_t erval = {0,0,0}; - assert(computed_size == (size_t)encoding_size); - erval.encoded = computed_size; - ASN__ENCODED_OK(erval); - } else { - ASN__ENCODE_FAILED; - } -} - -#undef XER_ADVANCE -#define XER_ADVANCE(num_bytes) do { \ - size_t num = num_bytes; \ - buf_ptr = ((const char *)buf_ptr) + num;\ - size -= num; \ - consumed_myself += num; \ - } while(0) - -/* - * Decode the XER (XML) data. - */ -asn_dec_rval_t -SET_OF_decode_xer(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **struct_ptr, - const char *opt_mname, const void *buf_ptr, size_t size) { - /* - * Bring closer parts of structure description. - */ - const asn_SET_OF_specifics_t *specs = (const asn_SET_OF_specifics_t *)td->specifics; - const asn_TYPE_member_t *element = td->elements; - const char *elm_tag; - const char *xml_tag = opt_mname ? opt_mname : td->xml_tag; - - /* - * ... and parts of the structure being constructed. - */ - void *st = *struct_ptr; /* Target structure. */ - asn_struct_ctx_t *ctx; /* Decoder context */ - - asn_dec_rval_t rval = {RC_OK, 0};/* Return value from a decoder */ - ssize_t consumed_myself = 0; /* Consumed bytes from ptr */ - - /* - * Create the target structure if it is not present already. - */ - if(st == 0) { - st = *struct_ptr = CALLOC(1, specs->struct_size); - if(st == 0) RETURN(RC_FAIL); - } - - /* Which tag is expected for the downstream */ - if(specs->as_XMLValueList) { - elm_tag = (specs->as_XMLValueList == 1) ? 0 : ""; - } else { - elm_tag = (*element->name) - ? element->name : element->type->xml_tag; - } - - /* - * Restore parsing context. - */ - ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset); - - /* - * Phases of XER/XML processing: - * Phase 0: Check that the opening tag matches our expectations. - * Phase 1: Processing body and reacting on closing tag. - * Phase 2: Processing inner type. - */ - for(; ctx->phase <= 2;) { - pxer_chunk_type_e ch_type; /* XER chunk type */ - ssize_t ch_size; /* Chunk size */ - xer_check_tag_e tcv; /* Tag check value */ - - /* - * Go inside the inner member of a set. - */ - if(ctx->phase == 2) { - asn_dec_rval_t tmprval = {RC_OK, 0}; - - /* Invoke the inner type decoder, m.b. multiple times */ - ASN_DEBUG("XER/SET OF element [%s]", elm_tag); - tmprval = element->type->op->xer_decoder(opt_codec_ctx, - element->type, &ctx->ptr, elm_tag, - buf_ptr, size); - if(tmprval.code == RC_OK) { - asn_anonymous_set_ *list = _A_SET_FROM_VOID(st); - if(ASN_SET_ADD(list, ctx->ptr) != 0) - RETURN(RC_FAIL); - ctx->ptr = 0; - XER_ADVANCE(tmprval.consumed); - } else { - XER_ADVANCE(tmprval.consumed); - RETURN(tmprval.code); - } - ctx->phase = 1; /* Back to body processing */ - ASN_DEBUG("XER/SET OF phase => %d", ctx->phase); - /* Fall through */ - } - - /* - * Get the next part of the XML stream. - */ - ch_size = xer_next_token(&ctx->context, - buf_ptr, size, &ch_type); - if(ch_size == -1) { - RETURN(RC_FAIL); - } else { - switch(ch_type) { - case PXER_WMORE: - RETURN(RC_WMORE); - case PXER_COMMENT: /* Got XML comment */ - case PXER_TEXT: /* Ignore free-standing text */ - XER_ADVANCE(ch_size); /* Skip silently */ - continue; - case PXER_TAG: - break; /* Check the rest down there */ - } - } - - tcv = xer_check_tag(buf_ptr, ch_size, xml_tag); - ASN_DEBUG("XER/SET OF: tcv = %d, ph=%d t=%s", - tcv, ctx->phase, xml_tag); - switch(tcv) { - case XCT_CLOSING: - if(ctx->phase == 0) break; - ctx->phase = 0; - /* Fall through */ - case XCT_BOTH: - if(ctx->phase == 0) { - /* No more things to decode */ - XER_ADVANCE(ch_size); - ctx->phase = 3; /* Phase out */ - RETURN(RC_OK); - } - /* Fall through */ - case XCT_OPENING: - if(ctx->phase == 0) { - XER_ADVANCE(ch_size); - ctx->phase = 1; /* Processing body phase */ - continue; - } - /* Fall through */ - case XCT_UNKNOWN_OP: - case XCT_UNKNOWN_BO: - - ASN_DEBUG("XER/SET OF: tcv=%d, ph=%d", tcv, ctx->phase); - if(ctx->phase == 1) { - /* - * Process a single possible member. - */ - ctx->phase = 2; - continue; - } - /* Fall through */ - default: - break; - } - - ASN_DEBUG("Unexpected XML tag in SET OF"); - break; - } - - ctx->phase = 3; /* "Phase out" on hard failure */ - RETURN(RC_FAIL); -} - - - -typedef struct xer_tmp_enc_s { - void *buffer; - size_t offset; - size_t size; -} xer_tmp_enc_t; -static int -SET_OF_encode_xer_callback(const void *buffer, size_t size, void *key) { - xer_tmp_enc_t *t = (xer_tmp_enc_t *)key; - if(t->offset + size >= t->size) { - size_t newsize = (t->size << 2) + size; - void *p = REALLOC(t->buffer, newsize); - if(!p) return -1; - t->buffer = p; - t->size = newsize; - } - memcpy((char *)t->buffer + t->offset, buffer, size); - t->offset += size; - return 0; -} -static int -SET_OF_xer_order(const void *aptr, const void *bptr) { - const xer_tmp_enc_t *a = (const xer_tmp_enc_t *)aptr; - const xer_tmp_enc_t *b = (const xer_tmp_enc_t *)bptr; - size_t minlen = a->offset; - int ret; - if(b->offset < minlen) minlen = b->offset; - /* Well-formed UTF-8 has this nice lexicographical property... */ - ret = memcmp(a->buffer, b->buffer, minlen); - if(ret != 0) return ret; - if(a->offset == b->offset) - return 0; - if(a->offset == minlen) - return -1; - return 1; -} - - -asn_enc_rval_t -SET_OF_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, - enum xer_encoder_flags_e flags, asn_app_consume_bytes_f *cb, - void *app_key) { - asn_enc_rval_t er = {0,0,0}; - const asn_SET_OF_specifics_t *specs = (const asn_SET_OF_specifics_t *)td->specifics; - const asn_TYPE_member_t *elm = td->elements; - const asn_anonymous_set_ *list = _A_CSET_FROM_VOID(sptr); - const char *mname = specs->as_XMLValueList - ? 0 : ((*elm->name) ? elm->name : elm->type->xml_tag); - size_t mlen = mname ? strlen(mname) : 0; - int xcan = (flags & XER_F_CANONICAL); - xer_tmp_enc_t *encs = 0; - size_t encs_count = 0; - void *original_app_key = app_key; - asn_app_consume_bytes_f *original_cb = cb; - int i; - - if(!sptr) ASN__ENCODE_FAILED; - - if(xcan) { - encs = (xer_tmp_enc_t *)MALLOC(list->count * sizeof(encs[0])); - if(!encs) ASN__ENCODE_FAILED; - cb = SET_OF_encode_xer_callback; - } - - er.encoded = 0; - - for(i = 0; i < list->count; i++) { - asn_enc_rval_t tmper = {0,0,0}; - - void *memb_ptr = list->array[i]; - if(!memb_ptr) continue; - - if(encs) { - memset(&encs[encs_count], 0, sizeof(encs[0])); - app_key = &encs[encs_count]; - encs_count++; - } - - if(mname) { - if(!xcan) ASN__TEXT_INDENT(1, ilevel); - ASN__CALLBACK3("<", 1, mname, mlen, ">", 1); - } - - if(!xcan && specs->as_XMLValueList == 1) - ASN__TEXT_INDENT(1, ilevel + 1); - tmper = elm->type->op->xer_encoder(elm->type, memb_ptr, - ilevel + (specs->as_XMLValueList != 2), - flags, cb, app_key); - if(tmper.encoded == -1) return tmper; - er.encoded += tmper.encoded; - if(tmper.encoded == 0 && specs->as_XMLValueList) { - const char *name = elm->type->xml_tag; - size_t len = strlen(name); - ASN__CALLBACK3("<", 1, name, len, "/>", 2); - } - - if(mname) { - ASN__CALLBACK3("", 1); - } - - } - - if(!xcan) ASN__TEXT_INDENT(1, ilevel - 1); - - if(encs) { - xer_tmp_enc_t *enc = encs; - xer_tmp_enc_t *end = encs + encs_count; - ssize_t control_size = 0; - - er.encoded = 0; - cb = original_cb; - app_key = original_app_key; - qsort(encs, encs_count, sizeof(encs[0]), SET_OF_xer_order); - - for(; enc < end; enc++) { - ASN__CALLBACK(enc->buffer, enc->offset); - FREEMEM(enc->buffer); - enc->buffer = 0; - control_size += enc->offset; - } - assert(control_size == er.encoded); - } - - goto cleanup; -cb_failed: - ASN__ENCODE_FAILED; -cleanup: - if(encs) { - size_t n; - for(n = 0; n < encs_count; n++) { - FREEMEM(encs[n].buffer); - } - FREEMEM(encs); - } - ASN__ENCODED_OK(er); -} - -int -SET_OF_print(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, - asn_app_consume_bytes_f *cb, void *app_key) { - asn_TYPE_member_t *elm = td->elements; - const asn_anonymous_set_ *list = _A_CSET_FROM_VOID(sptr); - int ret; - int i; - - if(!sptr) return (cb("", 8, app_key) < 0) ? -1 : 0; - - /* Dump preamble */ - if(cb(td->name, strlen(td->name), app_key) < 0 - || cb(" ::= {", 6, app_key) < 0) - return -1; - - for(i = 0; i < list->count; i++) { - const void *memb_ptr = list->array[i]; - if(!memb_ptr) continue; - - _i_INDENT(1); - - ret = elm->type->op->print_struct(elm->type, memb_ptr, - ilevel + 1, cb, app_key); - if(ret) return ret; - } - - ilevel--; - _i_INDENT(1); - - return (cb("}", 1, app_key) < 0) ? -1 : 0; -} - -void -SET_OF_free(const asn_TYPE_descriptor_t *td, void *ptr, - enum asn_struct_free_method method) { - if(td && ptr) { - const asn_SET_OF_specifics_t *specs; - asn_TYPE_member_t *elm = td->elements; - asn_anonymous_set_ *list = _A_SET_FROM_VOID(ptr); - asn_struct_ctx_t *ctx; /* Decoder context */ - int i; - - /* - * Could not use set_of_empty() because of (*free) - * incompatibility. - */ - for(i = 0; i < list->count; i++) { - void *memb_ptr = list->array[i]; - if(memb_ptr) - ASN_STRUCT_FREE(*elm->type, memb_ptr); - } - list->count = 0; /* No meaningful elements left */ - - asn_set_empty(list); /* Remove (list->array) */ - - specs = (const asn_SET_OF_specifics_t *)td->specifics; - ctx = (asn_struct_ctx_t *)((char *)ptr + specs->ctx_offset); - if(ctx->ptr) { - ASN_STRUCT_FREE(*elm->type, ctx->ptr); - ctx->ptr = 0; - } - - switch(method) { - case ASFM_FREE_EVERYTHING: - FREEMEM(ptr); - break; - case ASFM_FREE_UNDERLYING: - break; - case ASFM_FREE_UNDERLYING_AND_RESET: - memset(ptr, 0, specs->struct_size); - break; - } - } -} - -int -SET_OF_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const asn_TYPE_member_t *elm = td->elements; - asn_constr_check_f *constr; - const asn_anonymous_set_ *list = _A_CSET_FROM_VOID(sptr); - int i; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - constr = elm->encoding_constraints.general_constraints; - if(!constr) constr = elm->type->encoding_constraints.general_constraints; - - /* - * Iterate over the members of an array. - * Validate each in turn, until one fails. - */ - for(i = 0; i < list->count; i++) { - const void *memb_ptr = list->array[i]; - int ret; - - if(!memb_ptr) continue; - - ret = constr(elm->type, memb_ptr, ctfailcb, app_key); - if(ret) return ret; - } - - return 0; -} - -#ifndef ASN_DISABLE_PER_SUPPORT - -asn_dec_rval_t -SET_OF_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, - asn_per_data_t *pd) { - asn_dec_rval_t rv = {RC_OK, 0}; - const asn_SET_OF_specifics_t *specs = (const asn_SET_OF_specifics_t *)td->specifics; - const asn_TYPE_member_t *elm = td->elements; /* Single one */ - void *st = *sptr; - asn_anonymous_set_ *list; - const asn_per_constraint_t *ct; - int repeat = 0; - ssize_t nelems; - - if(ASN__STACK_OVERFLOW_CHECK(opt_codec_ctx)) - ASN__DECODE_FAILED; - - /* - * Create the target structure if it is not present already. - */ - if(!st) { - st = *sptr = CALLOC(1, specs->struct_size); - if(!st) ASN__DECODE_FAILED; - } - list = _A_SET_FROM_VOID(st); - - /* Figure out which constraints to use */ - if(constraints) ct = &constraints->size; - else if(td->encoding_constraints.per_constraints) - ct = &td->encoding_constraints.per_constraints->size; - else ct = 0; - - if(ct && ct->flags & APC_EXTENSIBLE) { - int value = per_get_few_bits(pd, 1); - if(value < 0) ASN__DECODE_STARVED; - if(value) ct = 0; /* Not restricted! */ - } - - if(ct && ct->effective_bits >= 0) { - /* X.691, #19.5: No length determinant */ - nelems = per_get_few_bits(pd, ct->effective_bits); - ASN_DEBUG("Preparing to fetch %ld+%ld elements from %s", - (long)nelems, ct->lower_bound, td->name); - if(nelems < 0) ASN__DECODE_STARVED; - nelems += ct->lower_bound; - } else { - nelems = -1; - } - - do { - int i; - if(nelems < 0) { - nelems = uper_get_length(pd, -1, 0, &repeat); - ASN_DEBUG("Got to decode %" ASN_PRI_SSIZE " elements (eff %d)", - nelems, (int)(ct ? ct->effective_bits : -1)); - if(nelems < 0) ASN__DECODE_STARVED; - } - - for(i = 0; i < nelems; i++) { - void *ptr = 0; - ASN_DEBUG("SET OF %s decoding", elm->type->name); - rv = elm->type->op->uper_decoder(opt_codec_ctx, elm->type, - elm->encoding_constraints.per_constraints, &ptr, pd); - ASN_DEBUG("%s SET OF %s decoded %d, %p", - td->name, elm->type->name, rv.code, ptr); - if(rv.code == RC_OK) { - if(ASN_SET_ADD(list, ptr) == 0) { - if(rv.consumed == 0 && nelems > 200) { - /* Protect from SET OF NULL compression bombs. */ - ASN__DECODE_FAILED; - } - continue; - } - ASN_DEBUG("Failed to add element into %s", - td->name); - /* Fall through */ - rv.code = RC_FAIL; - } else { - ASN_DEBUG("Failed decoding %s of %s (SET OF)", - elm->type->name, td->name); - } - if(ptr) ASN_STRUCT_FREE(*elm->type, ptr); - return rv; - } - - nelems = -1; /* Allow uper_get_length() */ - } while(repeat); - - ASN_DEBUG("Decoded %s as SET OF", td->name); - - rv.code = RC_OK; - rv.consumed = 0; - return rv; -} - -asn_enc_rval_t -SET_OF_encode_uper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, const void *sptr, - asn_per_outp_t *po) { - const asn_anonymous_set_ *list; - const asn_per_constraint_t *ct; - const asn_TYPE_member_t *elm = td->elements; - struct _el_buffer *encoded_els; - asn_enc_rval_t er = {0,0,0}; - size_t encoded_edx; - - if(!sptr) ASN__ENCODE_FAILED; - - list = _A_CSET_FROM_VOID(sptr); - - er.encoded = 0; - - ASN_DEBUG("Encoding %s as SEQUENCE OF (%d)", td->name, list->count); - - if(constraints) ct = &constraints->size; - else if(td->encoding_constraints.per_constraints) - ct = &td->encoding_constraints.per_constraints->size; - else ct = 0; - - /* If extensible constraint, check if size is in root */ - if(ct) { - int not_in_root = - (list->count < ct->lower_bound || list->count > ct->upper_bound); - ASN_DEBUG("lb %ld ub %ld %s", ct->lower_bound, ct->upper_bound, - ct->flags & APC_EXTENSIBLE ? "ext" : "fix"); - if(ct->flags & APC_EXTENSIBLE) { - /* Declare whether size is in extension root */ - if(per_put_few_bits(po, not_in_root, 1)) ASN__ENCODE_FAILED; - if(not_in_root) ct = 0; - } else if(not_in_root && ct->effective_bits >= 0) { - ASN__ENCODE_FAILED; - } - - } - - if(ct && ct->effective_bits >= 0) { - /* X.691, #19.5: No length determinant */ - if(per_put_few_bits(po, list->count - ct->lower_bound, - ct->effective_bits)) - ASN__ENCODE_FAILED; - } else if(list->count == 0) { - /* When the list is empty add only the length determinant - * X.691, #20.6 and #11.9.4.1 - */ - if (uper_put_length(po, 0, 0)) { - ASN__ENCODE_FAILED; - } - ASN__ENCODED_OK(er); - } - - - /* - * Canonical UPER #22.1 mandates dynamic sorting of the SET OF elements - * according to their encodings. Build an array of the encoded elements. - */ - encoded_els = SET_OF__encode_sorted(elm, list, SOES_CUPER); - - for(encoded_edx = 0; (ssize_t)encoded_edx < list->count;) { - ssize_t may_encode; - size_t edx; - int need_eom = 0; - - if(ct && ct->effective_bits >= 0) { - may_encode = list->count; - } else { - may_encode = - uper_put_length(po, list->count - encoded_edx, &need_eom); - if(may_encode < 0) ASN__ENCODE_FAILED; - } - - for(edx = encoded_edx; edx < encoded_edx + may_encode; edx++) { - const struct _el_buffer *el = &encoded_els[edx]; - if(asn_put_many_bits(po, el->buf, - (8 * el->length) - el->bits_unused) < 0) { - break; - } - } - - if(need_eom && uper_put_length(po, 0, 0)) - ASN__ENCODE_FAILED; /* End of Message length */ - - encoded_edx += may_encode; - } - - SET_OF__encode_sorted_free(encoded_els, list->count); - - if((ssize_t)encoded_edx == list->count) { - ASN__ENCODED_OK(er); - } else { - ASN__ENCODE_FAILED; - } -} - -asn_dec_rval_t -SET_OF_decode_aper(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, asn_per_data_t *pd) { - asn_dec_rval_t rv = {RC_OK, 0}; - const asn_SET_OF_specifics_t *specs = (const asn_SET_OF_specifics_t *)td->specifics; - const asn_TYPE_member_t *elm = td->elements; /* Single one */ - void *st = *sptr; - asn_anonymous_set_ *list; - const asn_per_constraint_t *ct; - int repeat = 0; - ssize_t nelems; - - if(ASN__STACK_OVERFLOW_CHECK(opt_codec_ctx)) - ASN__DECODE_FAILED; - - /* - * Create the target structure if it is not present already. - */ - if(!st) { - st = *sptr = CALLOC(1, specs->struct_size); - if(!st) ASN__DECODE_FAILED; - } - list = _A_SET_FROM_VOID(st); - - /* Figure out which constraints to use */ - if(constraints) ct = &constraints->size; - else if(td->encoding_constraints.per_constraints) - ct = &td->encoding_constraints.per_constraints->size; - else ct = 0; - - if(ct && ct->flags & APC_EXTENSIBLE) { - int value = per_get_few_bits(pd, 1); - if(value < 0) ASN__DECODE_STARVED; - if(value) ct = 0; /* Not restricted! */ - } - - if(ct && ct->effective_bits >= 0) { - /* X.691, #19.5: No length determinant */ - nelems = aper_get_nsnnwn(pd, ct->upper_bound - ct->lower_bound + 1); - ASN_DEBUG("Preparing to fetch %ld+%ld elements from %s", - (long)nelems, ct->lower_bound, td->name); - if(nelems < 0) ASN__DECODE_STARVED; - nelems += ct->lower_bound; - } else { - nelems = -1; - } - - do { - int i; - if(nelems < 0) { - nelems = aper_get_length(pd, ct ? ct->upper_bound - ct->lower_bound + 1 : -1, - ct ? ct->effective_bits : -1, &repeat); - ASN_DEBUG("Got to decode %d elements (eff %d)", - (int)nelems, (int)(ct ? ct->effective_bits : -1)); - if(nelems < 0) ASN__DECODE_STARVED; - } - - for(i = 0; i < nelems; i++) { - void *ptr = 0; - ASN_DEBUG("SET OF %s decoding", elm->type->name); - rv = elm->type->op->aper_decoder(opt_codec_ctx, elm->type, - elm->encoding_constraints.per_constraints, &ptr, pd); - ASN_DEBUG("%s SET OF %s decoded %d, %p", - td->name, elm->type->name, rv.code, ptr); - if(rv.code == RC_OK) { - if(ASN_SET_ADD(list, ptr) == 0) - continue; - ASN_DEBUG("Failed to add element into %s", - td->name); - /* Fall through */ - rv.code = RC_FAIL; - } else { - ASN_DEBUG("Failed decoding %s of %s (SET OF)", - elm->type->name, td->name); - } - if(ptr) ASN_STRUCT_FREE(*elm->type, ptr); - return rv; - } - - nelems = -1; /* Allow uper_get_length() */ - } while(repeat); - - ASN_DEBUG("Decoded %s as SET OF", td->name); - - rv.code = RC_OK; - rv.consumed = 0; - return rv; -} - -#endif /* ASN_DISABLE_PER_SUPPORT */ - -struct comparable_ptr { - const asn_TYPE_descriptor_t *td; - const void *sptr; -}; - -static int -SET_OF__compare_cb(const void *aptr, const void *bptr) { - const struct comparable_ptr *a = aptr; - const struct comparable_ptr *b = bptr; - assert(a->td == b->td); - return a->td->op->compare_struct(a->td, a->sptr, b->sptr); -} - -int -SET_OF_compare(const asn_TYPE_descriptor_t *td, const void *aptr, - const void *bptr) { - const asn_anonymous_set_ *a = _A_CSET_FROM_VOID(aptr); - const asn_anonymous_set_ *b = _A_CSET_FROM_VOID(bptr); - - if(a && b) { - struct comparable_ptr *asorted; - struct comparable_ptr *bsorted; - ssize_t common_length; - ssize_t idx; - - if(a->count == 0) { - if(b->count) return -1; - return 0; - } else if(b->count == 0) { - return 1; - } - - asorted = MALLOC(a->count * sizeof(asorted[0])); - bsorted = MALLOC(b->count * sizeof(bsorted[0])); - if(!asorted || !bsorted) { - FREEMEM(asorted); - FREEMEM(bsorted); - return -1; - } - - for(idx = 0; idx < a->count; idx++) { - asorted[idx].td = td->elements->type; - asorted[idx].sptr = a->array[idx]; - } - - for(idx = 0; idx < b->count; idx++) { - bsorted[idx].td = td->elements->type; - bsorted[idx].sptr = b->array[idx]; - } - - qsort(asorted, a->count, sizeof(asorted[0]), SET_OF__compare_cb); - qsort(bsorted, b->count, sizeof(bsorted[0]), SET_OF__compare_cb); - - common_length = (a->count < b->count ? a->count : b->count); - for(idx = 0; idx < common_length; idx++) { - int ret = td->elements->type->op->compare_struct( - td->elements->type, asorted[idx].sptr, bsorted[idx].sptr); - if(ret) { - FREEMEM(asorted); - FREEMEM(bsorted); - return ret; - } - } - - FREEMEM(asorted); - FREEMEM(bsorted); - - if(idx < b->count) /* more elements in b */ - return -1; /* a is shorter, so put it first */ - if(idx < a->count) return 1; - } else if(!a) { - return -1; - } else if(!b) { - return 1; - } - - return 0; -} - - -asn_TYPE_operation_t asn_OP_SET_OF = { - SET_OF_free, - SET_OF_print, - SET_OF_compare, - SET_OF_decode_ber, - SET_OF_encode_der, - SET_OF_decode_xer, - SET_OF_encode_xer, -#ifdef ASN_DISABLE_OER_SUPPORT - 0, - 0, -#else - SET_OF_decode_oer, - SET_OF_encode_oer, -#endif -#ifdef ASN_DISABLE_PER_SUPPORT - 0, - 0, - 0, - 0, -#else - SET_OF_decode_uper, - SET_OF_encode_uper, - SET_OF_decode_aper, - 0, /* SET_OF_encode_aper */ -#endif /* ASN_DISABLE_PER_SUPPORT */ - SET_OF_random_fill, - 0 /* Use generic outmost tag fetcher */ -}; - - -asn_random_fill_result_t -SET_OF_random_fill(const asn_TYPE_descriptor_t *td, void **sptr, - const asn_encoding_constraints_t *constraints, - size_t max_length) { - const asn_SET_OF_specifics_t *specs = - (const asn_SET_OF_specifics_t *)td->specifics; - asn_random_fill_result_t res_ok = {ARFILL_OK, 0}; - asn_random_fill_result_t result_failed = {ARFILL_FAILED, 0}; - asn_random_fill_result_t result_skipped = {ARFILL_SKIPPED, 0}; - const asn_TYPE_member_t *elm = td->elements; - void *st = *sptr; - long max_elements = 5; - long slb = 0; /* Lower size bound */ - long sub = 0; /* Upper size bound */ - size_t rnd_len; - - if(max_length == 0) return result_skipped; - - if(st == NULL) { - st = (*sptr = CALLOC(1, specs->struct_size)); - if(st == NULL) { - return result_failed; - } - } - - switch(asn_random_between(0, 6)) { - case 0: max_elements = 0; break; - case 1: max_elements = 1; break; - case 2: max_elements = 5; break; - case 3: max_elements = max_length; break; - case 4: max_elements = max_length / 2; break; - case 5: max_elements = max_length / 4; break; - default: break; - } - sub = slb + max_elements; - - if(!constraints || !constraints->per_constraints) - constraints = &td->encoding_constraints; - if(constraints->per_constraints) { - const asn_per_constraint_t *pc = &constraints->per_constraints->size; - if(pc->flags & APC_SEMI_CONSTRAINED) { - slb = pc->lower_bound; - sub = pc->lower_bound + max_elements; - } else if(pc->flags & APC_CONSTRAINED) { - slb = pc->lower_bound; - sub = pc->upper_bound; - if(sub - slb > max_elements) sub = slb + max_elements; - } - } - - /* Bias towards edges of allowed space */ - switch(asn_random_between(-1, 4)) { - default: - case -1: - /* Prepare lengths somewhat outside of constrained range. */ - if(constraints->per_constraints - && (constraints->per_constraints->size.flags & APC_EXTENSIBLE)) { - switch(asn_random_between(0, 5)) { - default: - case 0: - rnd_len = 0; - break; - case 1: - if(slb > 0) { - rnd_len = slb - 1; - } else { - rnd_len = 0; - } - break; - case 2: - rnd_len = asn_random_between(0, slb); - break; - case 3: - if(sub < (ssize_t)max_length) { - rnd_len = sub + 1; - } else { - rnd_len = max_length; - } - break; - case 4: - if(sub < (ssize_t)max_length) { - rnd_len = asn_random_between(sub + 1, max_length); - } else { - rnd_len = max_length; - } - break; - case 5: - rnd_len = max_length; - break; - } - break; - } - /* Fall through */ - case 0: - rnd_len = asn_random_between(slb, sub); - break; - case 1: - if(slb < sub) { - rnd_len = asn_random_between(slb + 1, sub); - break; - } - /* Fall through */ - case 2: - rnd_len = asn_random_between(slb, slb); - break; - case 3: - if(slb < sub) { - rnd_len = asn_random_between(slb, sub - 1); - break; - } - /* Fall through */ - case 4: - rnd_len = asn_random_between(sub, sub); - break; - } - - for(; rnd_len > 0; rnd_len--) { - asn_anonymous_set_ *list = _A_SET_FROM_VOID(st); - void *ptr = 0; - asn_random_fill_result_t tmpres = elm->type->op->random_fill( - elm->type, &ptr, &elm->encoding_constraints, - (max_length > res_ok.length ? max_length - res_ok.length : 0) - / rnd_len); - switch(tmpres.code) { - case ARFILL_OK: - ASN_SET_ADD(list, ptr); - res_ok.length += tmpres.length; - break; - case ARFILL_SKIPPED: - break; - case ARFILL_FAILED: - assert(ptr == 0); - return tmpres; - } - } - - return res_ok; -} - diff --git a/e2sim/previous/e2apv1sim/ASN1c/constr_SET_OF.h b/e2sim/previous/e2apv1sim/ASN1c/constr_SET_OF.h deleted file mode 100644 index 7681062..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/constr_SET_OF.h +++ /dev/null @@ -1,49 +0,0 @@ -/*- - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef CONSTR_SET_OF_H -#define CONSTR_SET_OF_H - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct asn_SET_OF_specifics_s { - /* - * Target structure description. - */ - unsigned struct_size; /* Size of the target structure. */ - unsigned ctx_offset; /* Offset of the asn_struct_ctx_t member */ - - /* XER-specific stuff */ - int as_XMLValueList; /* The member type must be encoded like this */ -} asn_SET_OF_specifics_t; - -/* - * A set specialized functions dealing with the SET OF type. - */ -asn_struct_free_f SET_OF_free; -asn_struct_print_f SET_OF_print; -asn_struct_compare_f SET_OF_compare; -asn_constr_check_f SET_OF_constraint; -ber_type_decoder_f SET_OF_decode_ber; -der_type_encoder_f SET_OF_encode_der; -xer_type_decoder_f SET_OF_decode_xer; -xer_type_encoder_f SET_OF_encode_xer; -oer_type_decoder_f SET_OF_decode_oer; -oer_type_encoder_f SET_OF_encode_oer; -per_type_decoder_f SET_OF_decode_uper; -per_type_encoder_f SET_OF_encode_uper; -per_type_decoder_f SET_OF_decode_aper; -per_type_encoder_f SET_OF_encode_aper; -asn_random_fill_f SET_OF_random_fill; -extern asn_TYPE_operation_t asn_OP_SET_OF; - -#ifdef __cplusplus -} -#endif - -#endif /* CONSTR_SET_OF_H */ diff --git a/e2sim/previous/e2apv1sim/ASN1c/constr_SET_OF_oer.c b/e2sim/previous/e2apv1sim/ASN1c/constr_SET_OF_oer.c deleted file mode 100644 index 5200518..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/constr_SET_OF_oer.c +++ /dev/null @@ -1,285 +0,0 @@ -/* - * Copyright (c) 2017 Lev Walkin . - * All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef ASN_DISABLE_OER_SUPPORT - -#include -#include -#include -#include - -/* - * This macro "eats" the part of the buffer which is definitely "consumed", - * i.e. was correctly converted into local representation or rightfully skipped. - */ -#undef ADVANCE -#define ADVANCE(num_bytes) \ - do { \ - size_t num = num_bytes; \ - ptr = ((const char *)ptr) + num; \ - size -= num; \ - consumed_myself += num; \ - } while(0) - -/* - * Switch to the next phase of parsing. - */ -#undef NEXT_PHASE -#define NEXT_PHASE(ctx) \ - do { \ - ctx->phase++; \ - ctx->step = 0; \ - } while(0) -#undef SET_PHASE -#define SET_PHASE(ctx, value) \ - do { \ - ctx->phase = value; \ - ctx->step = 0; \ - } while(0) - -/* - * Return a standardized complex structure. - */ -#undef RETURN -#define RETURN(_code) \ - do { \ - asn_dec_rval_t rval; \ - rval.code = _code; \ - rval.consumed = consumed_myself; \ - return rval; \ - } while(0) - -/* - * The SEQUENCE OF and SET OF values utilize a "quantity field". - * It is is a pointless combination of #8.6 (length determinant, capable - * of encoding tiny and huge numbers in the shortest possible number of octets) - * and the variable sized integer. What could have been encoded by #8.6 alone - * is required to be encoded by #8.6 followed by that number of unsigned octets. - * This doesn't make too much sense. It seems that the original version of OER - * standard have been using the unconstrained unsigned integer as a quantity - * field, and this legacy have gone through ISO/ITU-T standardization process. - */ -static ssize_t -oer_fetch_quantity(const void *ptr, size_t size, size_t *qty_r) { - const uint8_t *b; - const uint8_t *bend; - size_t len = 0; - size_t qty; - - ssize_t len_len = oer_fetch_length(ptr, size, &len); - if(len_len <= 0) { - *qty_r = 0; - return len_len; - } - - if((len_len + len) > size) { - *qty_r = 0; - return 0; - } - - b = (const uint8_t *)ptr + len_len; - bend = b + len; - - /* Skip the leading 0-bytes */ - for(; b < bend && *b == 0; b++) { - } - - if((bend - b) > (ssize_t)sizeof(size_t)) { - /* Length is not representable by the native size_t type */ - *qty_r = 0; - return -1; - } - - for(qty = 0; b < bend; b++) { - qty = (qty << 8) + *b; - } - - if(qty > RSIZE_MAX) { /* A bit of C11 validation */ - *qty_r = 0; - return -1; - } - - *qty_r = qty; - assert((size_t)len_len + len == (size_t)(bend - (const uint8_t *)ptr)); - return len_len + len; -} - -asn_dec_rval_t -SET_OF_decode_oer(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_oer_constraints_t *constraints, void **struct_ptr, - const void *ptr, size_t size) { - const asn_SET_OF_specifics_t *specs = (const asn_SET_OF_specifics_t *)td->specifics; - asn_dec_rval_t rval = {RC_OK, 0}; - void *st = *struct_ptr; /* Target structure */ - asn_struct_ctx_t *ctx; /* Decoder context */ - size_t consumed_myself = 0; /* Consumed bytes from ptr. */ - - (void)constraints; - - if(ASN__STACK_OVERFLOW_CHECK(opt_codec_ctx)) - ASN__DECODE_FAILED; - - /* - * Create the target structure if it is not present already. - */ - if(st == 0) { - st = *struct_ptr = CALLOC(1, specs->struct_size); - if(st == 0) { - RETURN(RC_FAIL); - } - } - - /* - * Restore parsing context. - */ - ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset); - - /* - * Start to parse where left previously. - */ - switch(ctx->phase) { - case 0: { - /* - * Fetch number of elements to decode. - */ - size_t length = 0; - size_t len_size = oer_fetch_quantity(ptr, size, &length); - switch(len_size) { - case 0: - RETURN(RC_WMORE); - case -1: - RETURN(RC_FAIL); - default: - ADVANCE(len_size); - ctx->left = length; - } - } - NEXT_PHASE(ctx); - /* FALL THROUGH */ - case 1: { - /* Decode components of the extension root */ - asn_TYPE_member_t *elm = td->elements; - asn_anonymous_set_ *list = _A_SET_FROM_VOID(st); - const void *base_ptr = ptr; - ber_tlv_len_t base_ctx_left = ctx->left; - - assert(td->elements_count == 1); - - ASN_DEBUG("OER SET OF %s Decoding PHASE 1", td->name); - - for(; ctx->left > 0; ctx->left--) { - asn_dec_rval_t rv = elm->type->op->oer_decoder( - opt_codec_ctx, elm->type, - elm->encoding_constraints.oer_constraints, &ctx->ptr, ptr, - size); - ADVANCE(rv.consumed); - switch(rv.code) { - case RC_OK: - if(ASN_SET_ADD(list, ctx->ptr) != 0) { - RETURN(RC_FAIL); - } else { - ctx->ptr = 0; - /* - * This check is to avoid compression bomb with - * specs like SEQUENCE/SET OF NULL which don't - * consume data at all. - */ - if(rv.consumed == 0 && base_ptr == ptr - && (base_ctx_left - ctx->left) > 200) { - ASN__DECODE_FAILED; - } - break; - } - case RC_WMORE: - RETURN(RC_WMORE); - case RC_FAIL: - ASN_STRUCT_FREE(*elm->type, ctx->ptr); - ctx->ptr = 0; - SET_PHASE(ctx, 3); - RETURN(RC_FAIL); - } - } - /* Decoded decently. */ - NEXT_PHASE(ctx); - } - /* Fall through */ - case 2: - /* Ignore fully decoded */ - assert(ctx->left == 0); - RETURN(RC_OK); - case 3: - /* Failed to decode. */ - RETURN(RC_FAIL); - } - - return rval; -} - -static ssize_t -oer_put_quantity(size_t qty, asn_app_consume_bytes_f *cb, void *app_key) { - uint8_t buf[1 + sizeof(size_t)]; - uint8_t *b = &buf[sizeof(size_t)]; /* Last addressable */ - size_t encoded; - - do { - *b-- = qty; - qty >>= 8; - } while(qty); - - *b = sizeof(buf) - (b-buf) - 1; - encoded = sizeof(buf) - (b-buf); - if(cb(b, encoded, app_key) < 0) - return -1; - return encoded; -} - -/* - * Encode as Canonical OER. - */ -asn_enc_rval_t -SET_OF_encode_oer(const asn_TYPE_descriptor_t *td, - const asn_oer_constraints_t *constraints, const void *sptr, - asn_app_consume_bytes_f *cb, void *app_key) { - const asn_TYPE_member_t *elm; - const asn_anonymous_set_ *list; - size_t computed_size = 0; - ssize_t qty_len; - int n; - - (void)constraints; - - if(!sptr) ASN__ENCODE_FAILED; - - elm = td->elements; - list = _A_CSET_FROM_VOID(sptr); - - qty_len = oer_put_quantity(list->count, cb, app_key); - if(qty_len < 0) { - ASN__ENCODE_FAILED; - } - computed_size += qty_len; - - for(n = 0; n < list->count; n++) { - void *memb_ptr = list->array[n]; - asn_enc_rval_t er = {0,0,0}; - er = elm->type->op->oer_encoder( - elm->type, elm->encoding_constraints.oer_constraints, memb_ptr, cb, - app_key); - if(er.encoded < 0) { - return er; - } else { - computed_size += er.encoded; - } - } - - { - asn_enc_rval_t erval = {0,0,0}; - erval.encoded = computed_size; - ASN__ENCODED_OK(erval); - } -} - -#endif /* ASN_DISABLE_OER_SUPPORT */ diff --git a/e2sim/previous/e2apv1sim/ASN1c/constr_TYPE.c b/e2sim/previous/e2apv1sim/ASN1c/constr_TYPE.c deleted file mode 100644 index aefaefd..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/constr_TYPE.c +++ /dev/null @@ -1,80 +0,0 @@ -/*- - * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include - -/* - * Version of the ASN.1 infrastructure shipped with compiler. - */ -int get_asn1c_environment_version() { return ASN1C_ENVIRONMENT_VERSION; } - -static asn_app_consume_bytes_f _print2fp; - -/* - * Return the outmost tag of the type. - */ -ber_tlv_tag_t -asn_TYPE_outmost_tag(const asn_TYPE_descriptor_t *type_descriptor, - const void *struct_ptr, int tag_mode, ber_tlv_tag_t tag) { - - if(tag_mode) - return tag; - - if(type_descriptor->tags_count) - return type_descriptor->tags[0]; - - return type_descriptor->op->outmost_tag(type_descriptor, struct_ptr, 0, 0); -} - -/* - * Print the target language's structure in human readable form. - */ -int -asn_fprint(FILE *stream, const asn_TYPE_descriptor_t *td, - const void *struct_ptr) { - if(!stream) stream = stdout; - if(!td || !struct_ptr) { - errno = EINVAL; - return -1; - } - - /* Invoke type-specific printer */ - if(td->op->print_struct(td, struct_ptr, 1, _print2fp, stream)) { - return -1; - } - - /* Terminate the output */ - if(_print2fp("\n", 1, stream)) { - return -1; - } - - return fflush(stream); -} - -/* Dump the data into the specified stdio stream */ -static int -_print2fp(const void *buffer, size_t size, void *app_key) { - FILE *stream = (FILE *)app_key; - - if(fwrite(buffer, 1, size, stream) != size) - return -1; - - return 0; -} - - -/* - * Some compilers do not support variable args macros. - * This function is a replacement of ASN_DEBUG() macro. - */ -void ASN_DEBUG_f(const char *fmt, ...); -void ASN_DEBUG_f(const char *fmt, ...) { - va_list ap; - va_start(ap, fmt); - vfprintf(stderr, fmt, ap); - fprintf(stderr, "\n"); - va_end(ap); -} diff --git a/e2sim/previous/e2apv1sim/ASN1c/constr_TYPE.h b/e2sim/previous/e2apv1sim/ASN1c/constr_TYPE.h deleted file mode 100644 index d80dea5..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/constr_TYPE.h +++ /dev/null @@ -1,262 +0,0 @@ -/* - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -/* - * This file contains the declaration structure called "ASN.1 Type Definition", - * which holds all information necessary for encoding and decoding routines. - * This structure even contains pointer to these encoding and decoding routines - * for each defined ASN.1 type. - */ -#ifndef _CONSTR_TYPE_H_ -#define _CONSTR_TYPE_H_ - -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -struct asn_TYPE_descriptor_s; /* Forward declaration */ -struct asn_TYPE_member_s; /* Forward declaration */ - -/* - * This type provides the context information for various ASN.1 routines, - * primarily ones doing decoding. A member _asn_ctx of this type must be - * included into certain target language's structures, such as compound types. - */ -typedef struct asn_struct_ctx_s { - short phase; /* Decoding phase */ - short step; /* Elementary step of a phase */ - int context; /* Other context information */ - void *ptr; /* Decoder-specific stuff (stack elements) */ - ber_tlv_len_t left; /* Number of bytes left, -1 for indefinite */ -} asn_struct_ctx_t; - -#include /* Basic Encoding Rules decoder */ -#include /* Distinguished Encoding Rules encoder */ -#include /* Decoder of XER (XML, text) */ -#include /* Encoder into XER (XML, text) */ -#include /* Packet Encoding Rules decoder */ -#include /* Packet Encoding Rules encoder */ -#include /* Subtype constraints support */ -#include /* Random structures support */ - -#ifdef ASN_DISABLE_OER_SUPPORT -typedef void (oer_type_decoder_f)(void); -typedef void (oer_type_encoder_f)(void); -typedef void asn_oer_constraints_t; -#else -#include /* Octet Encoding Rules encoder */ -#include /* Octet Encoding Rules encoder */ -#endif - -/* - * Free the structure according to its specification. - * Use one of ASN_STRUCT_{FREE,RESET,CONTENTS_ONLY} macros instead. - * Do not use directly. - */ -enum asn_struct_free_method { - ASFM_FREE_EVERYTHING, /* free(struct_ptr) and underlying members */ - ASFM_FREE_UNDERLYING, /* free underlying members */ - ASFM_FREE_UNDERLYING_AND_RESET /* FREE_UNDERLYING + memset(0) */ -}; -typedef void (asn_struct_free_f)( - const struct asn_TYPE_descriptor_s *type_descriptor, - void *struct_ptr, enum asn_struct_free_method); - -/* - * Free the structure including freeing the memory pointed to by ptr itself. - */ -#define ASN_STRUCT_FREE(asn_DEF, ptr) \ - (asn_DEF).op->free_struct(&(asn_DEF), (ptr), ASFM_FREE_EVERYTHING) - -/* - * Free the memory used by the members of the structure without freeing the - * the structure pointer itself. - * ZERO-OUT the structure to the safe clean state. - * (Retaining the pointer may be useful in case the structure is allocated - * statically or arranged on the stack, yet its elements are dynamic.) - */ -#define ASN_STRUCT_RESET(asn_DEF, ptr) \ - (asn_DEF).op->free_struct(&(asn_DEF), (ptr), ASFM_FREE_UNDERLYING_AND_RESET) - -/* - * Free memory used by the members of the structure without freeing - * the structure pointer itself. - * (Retaining the pointer may be useful in case the structure is allocated - * statically or arranged on the stack, yet its elements are dynamic.) - * AVOID using it in the application code; - * Use a safer ASN_STRUCT_RESET() instead. - */ -#define ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF, ptr) \ - (asn_DEF).op->free_struct(&(asn_DEF), (ptr), ASFM_FREE_UNDERLYING) - -/* - * Print the structure according to its specification. - */ -typedef int(asn_struct_print_f)( - const struct asn_TYPE_descriptor_s *type_descriptor, - const void *struct_ptr, - int level, /* Indentation level */ - asn_app_consume_bytes_f *callback, void *app_key); - -/* - * Compare two structs between each other. - * Returns <0 if struct_A is "smaller" than struct_B, >0 if "greater", - * and =0 if "equal to", for some type-specific, stable definition of - * "smaller", "greater" and "equal to". - */ -typedef int (asn_struct_compare_f)( - const struct asn_TYPE_descriptor_s *type_descriptor, - const void *struct_A, - const void *struct_B); - -/* - * Return the outmost tag of the type. - * If the type is untagged CHOICE, the dynamic operation is performed. - * NOTE: This function pointer type is only useful internally. - * Do not use it in your application. - */ -typedef ber_tlv_tag_t (asn_outmost_tag_f)( - const struct asn_TYPE_descriptor_s *type_descriptor, - const void *struct_ptr, int tag_mode, ber_tlv_tag_t tag); -/* The instance of the above function type; used internally. */ -asn_outmost_tag_f asn_TYPE_outmost_tag; - -/* - * Fetch the desired type of the Open Type based on the - * Information Object Set driven constraints. - */ -typedef struct asn_type_selector_result_s { - const struct asn_TYPE_descriptor_s *type_descriptor; /* Type encoded. */ - unsigned presence_index; /* Associated choice variant. */ -} asn_type_selector_result_t; -typedef asn_type_selector_result_t(asn_type_selector_f)( - const struct asn_TYPE_descriptor_s *parent_type_descriptor, - const void *parent_structure_ptr); - -/* - * Generalized functions for dealing with the speciic type. - * May be directly invoked by applications. - */ -typedef struct asn_TYPE_operation_s { - asn_struct_free_f *free_struct; /* Free the structure */ - asn_struct_print_f *print_struct; /* Human readable output */ - asn_struct_compare_f *compare_struct; /* Compare two structures */ - ber_type_decoder_f *ber_decoder; /* Generic BER decoder */ - der_type_encoder_f *der_encoder; /* Canonical DER encoder */ - xer_type_decoder_f *xer_decoder; /* Generic XER decoder */ - xer_type_encoder_f *xer_encoder; /* [Canonical] XER encoder */ - oer_type_decoder_f *oer_decoder; /* Generic OER decoder */ - oer_type_encoder_f *oer_encoder; /* Canonical OER encoder */ - per_type_decoder_f *uper_decoder; /* Unaligned PER decoder */ - per_type_encoder_f *uper_encoder; /* Unaligned PER encoder */ - per_type_decoder_f *aper_decoder; /* Aligned PER decoder */ - per_type_encoder_f *aper_encoder; /* Aligned PER encoder */ - asn_random_fill_f *random_fill; /* Initialize with a random value */ - asn_outmost_tag_f *outmost_tag; /* */ -} asn_TYPE_operation_t; - -/* - * A constraints tuple specifying both the OER and PER constraints. - */ -typedef struct asn_encoding_constraints_s { - const struct asn_oer_constraints_s *oer_constraints; - const struct asn_per_constraints_s *per_constraints; - asn_constr_check_f *general_constraints; -} asn_encoding_constraints_t; - -/* - * The definitive description of the destination language's structure. - */ -typedef struct asn_TYPE_descriptor_s { - const char *name; /* A name of the ASN.1 type. "" in some cases. */ - const char *xml_tag; /* Name used in XML tag */ - - /* - * Generalized functions for dealing with the specific type. - * May be directly invoked by applications. - */ - asn_TYPE_operation_t *op; - - /*********************************************************************** - * Internally useful members. Not to be used by applications directly. * - **********************************************************************/ - - /* - * Tags that are expected to occur. - */ - const ber_tlv_tag_t *tags; /* Effective tags sequence for this type */ - unsigned tags_count; /* Number of tags which are expected */ - const ber_tlv_tag_t *all_tags; /* Every tag for BER/containment */ - unsigned all_tags_count; /* Number of tags */ - - /* OER, PER, and general constraints */ - asn_encoding_constraints_t encoding_constraints; - - /* - * An ASN.1 production type members (members of SEQUENCE, SET, CHOICE). - */ - struct asn_TYPE_member_s *elements; - unsigned elements_count; - - /* - * Additional information describing the type, used by appropriate - * functions above. - */ - const void *specifics; -} asn_TYPE_descriptor_t; - -/* - * This type describes an element of the constructed type, - * i.e. SEQUENCE, SET, CHOICE, etc. - */ - enum asn_TYPE_flags_e { - ATF_NOFLAGS, - ATF_POINTER = 0x01, /* Represented by the pointer */ - ATF_OPEN_TYPE = 0x02, /* Open Type */ - ATF_ANY_TYPE = 0x04 /* ANY type (deprecated!) */ - }; -typedef struct asn_TYPE_member_s { - enum asn_TYPE_flags_e flags; /* Element's presentation flags */ - unsigned optional; /* Following optional members, including current */ - unsigned memb_offset; /* Offset of the element */ - ber_tlv_tag_t tag; /* Outmost (most immediate) tag */ - int tag_mode; /* IMPLICIT/no/EXPLICIT tag at current level */ - asn_TYPE_descriptor_t *type; /* Member type descriptor */ - asn_type_selector_f *type_selector; /* IoS runtime type selector */ - asn_encoding_constraints_t encoding_constraints; - int (*default_value_cmp)(const void *sptr); /* Compare DEFAULT */ - int (*default_value_set)(void **sptr); /* Set DEFAULT */ - const char *name; /* ASN.1 identifier of the element */ -} asn_TYPE_member_t; - -/* - * BER tag to element number mapping. - */ -typedef struct asn_TYPE_tag2member_s { - ber_tlv_tag_t el_tag; /* Outmost tag of the member */ - unsigned el_no; /* Index of the associated member, base 0 */ - int toff_first; /* First occurence of the el_tag, relative */ - int toff_last; /* Last occurence of the el_tag, relative */ -} asn_TYPE_tag2member_t; - -/* - * This function prints out the contents of the target language's structure - * (struct_ptr) into the file pointer (stream) in human readable form. - * RETURN VALUES: - * 0: The structure is printed. - * -1: Problem dumping the structure. - * (See also xer_fprint() in xer_encoder.h) - */ -int asn_fprint(FILE *stream, /* Destination stream descriptor */ - const asn_TYPE_descriptor_t *td, /* ASN.1 type descriptor */ - const void *struct_ptr); /* Structure to be printed */ - -#ifdef __cplusplus -} -#endif - -#endif /* _CONSTR_TYPE_H_ */ diff --git a/e2sim/previous/e2apv1sim/ASN1c/constraints.c b/e2sim/previous/e2apv1sim/ASN1c/constraints.c deleted file mode 100644 index df3c6c1..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/constraints.c +++ /dev/null @@ -1,93 +0,0 @@ -#include -#include - -int -asn_generic_no_constraint(const asn_TYPE_descriptor_t *type_descriptor, - const void *struct_ptr, - asn_app_constraint_failed_f *cb, void *key) { - (void)type_descriptor; /* Unused argument */ - (void)struct_ptr; /* Unused argument */ - (void)cb; /* Unused argument */ - (void)key; /* Unused argument */ - - /* Nothing to check */ - return 0; -} - -int -asn_generic_unknown_constraint(const asn_TYPE_descriptor_t *type_descriptor, - const void *struct_ptr, - asn_app_constraint_failed_f *cb, void *key) { - (void)type_descriptor; /* Unused argument */ - (void)struct_ptr; /* Unused argument */ - (void)cb; /* Unused argument */ - (void)key; /* Unused argument */ - - /* Unknown how to check */ - return 0; -} - -struct errbufDesc { - const asn_TYPE_descriptor_t *failed_type; - const void *failed_struct_ptr; - char *errbuf; - size_t errlen; -}; - -static void -_asn_i_ctfailcb(void *key, const asn_TYPE_descriptor_t *td, const void *sptr, - const char *fmt, ...) { - struct errbufDesc *arg = key; - va_list ap; - ssize_t vlen; - ssize_t maxlen; - - arg->failed_type = td; - arg->failed_struct_ptr = sptr; - - maxlen = arg->errlen; - if(maxlen <= 0) - return; - - va_start(ap, fmt); - vlen = vsnprintf(arg->errbuf, maxlen, fmt, ap); - va_end(ap); - if(vlen >= maxlen) { - arg->errbuf[maxlen-1] = '\0'; /* Ensuring libc correctness */ - arg->errlen = maxlen - 1; /* Not counting termination */ - return; - } else if(vlen >= 0) { - arg->errbuf[vlen] = '\0'; /* Ensuring libc correctness */ - arg->errlen = vlen; /* Not counting termination */ - } else { - /* - * The libc on this system is broken. - */ - vlen = sizeof("") - 1; - maxlen--; - arg->errlen = vlen < maxlen ? vlen : maxlen; - memcpy(arg->errbuf, "", arg->errlen); - arg->errbuf[arg->errlen] = 0; - } - - return; -} - -int -asn_check_constraints(const asn_TYPE_descriptor_t *type_descriptor, - const void *struct_ptr, char *errbuf, size_t *errlen) { - struct errbufDesc arg; - int ret; - - arg.failed_type = 0; - arg.failed_struct_ptr = 0; - arg.errbuf = errbuf; - arg.errlen = errlen ? *errlen : 0; - - ret = type_descriptor->encoding_constraints.general_constraints( - type_descriptor, struct_ptr, _asn_i_ctfailcb, &arg); - if(ret == -1 && errlen) *errlen = arg.errlen; - - return ret; -} - diff --git a/e2sim/previous/e2apv1sim/ASN1c/constraints.h b/e2sim/previous/e2apv1sim/ASN1c/constraints.h deleted file mode 100644 index 0bd86a9..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/constraints.h +++ /dev/null @@ -1,62 +0,0 @@ -/*- - * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef ASN1_CONSTRAINTS_VALIDATOR_H -#define ASN1_CONSTRAINTS_VALIDATOR_H - -#include /* Platform-dependent types */ - -#ifdef __cplusplus -extern "C" { -#endif - -struct asn_TYPE_descriptor_s; /* Forward declaration */ - -/* - * Validate the structure according to the ASN.1 constraints. - * If errbuf and errlen are given, they shall be pointing to the appropriate - * buffer space and its length before calling this function. Alternatively, - * they could be passed as NULL's. If constraints validation fails, - * errlen will contain the actual number of bytes taken from the errbuf - * to encode an error message (properly 0-terminated). - * - * RETURN VALUES: - * This function returns 0 in case all ASN.1 constraints are met - * and -1 if one or more constraints were failed. - */ -int asn_check_constraints( - const struct asn_TYPE_descriptor_s *type_descriptor, - const void *struct_ptr, /* Target language's structure */ - char *errbuf, /* Returned error description */ - size_t *errlen /* Length of the error description */ -); - - -/* - * Generic type for constraint checking callback, - * associated with every type descriptor. - */ -typedef int(asn_constr_check_f)( - const struct asn_TYPE_descriptor_s *type_descriptor, const void *struct_ptr, - asn_app_constraint_failed_f *optional_callback, /* Log the error */ - void *optional_app_key /* Opaque key passed to a callback */ -); - -/******************************* - * INTERNALLY USEFUL FUNCTIONS * - *******************************/ - -asn_constr_check_f asn_generic_no_constraint; /* No constraint whatsoever */ -asn_constr_check_f asn_generic_unknown_constraint; /* Not fully supported */ - -/* - * Invoke the callback with a complete error message. - */ -#define ASN__CTFAIL if(ctfailcb) ctfailcb - -#ifdef __cplusplus -} -#endif - -#endif /* ASN1_CONSTRAINTS_VALIDATOR_H */ diff --git a/e2sim/previous/e2apv1sim/ASN1c/converter-example.mk b/e2sim/previous/e2apv1sim/ASN1c/converter-example.mk deleted file mode 100644 index 0109476..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/converter-example.mk +++ /dev/null @@ -1,33 +0,0 @@ -include Makefile.am.libasncodec - -LIBS += -lm -CFLAGS += $(ASN_MODULE_CFLAGS) -DASN_PDU_COLLECTION -I. -ASN_LIBRARY ?= libasncodec.a -ASN_PROGRAM ?= converter-example -ASN_PROGRAM_SRCS ?= \ - converter-example.c\ - pdu_collection.c - -all: $(ASN_PROGRAM) - -$(ASN_PROGRAM): $(ASN_LIBRARY) $(ASN_PROGRAM_SRCS:.c=.o) - $(CC) $(CFLAGS) $(CPPFLAGS) -o $(ASN_PROGRAM) $(ASN_PROGRAM_SRCS:.c=.o) $(LDFLAGS) $(ASN_LIBRARY) $(LIBS) - -$(ASN_LIBRARY): $(ASN_MODULE_SRCS:.c=.o) - $(AR) rcs $@ $(ASN_MODULE_SRCS:.c=.o) - -.SUFFIXES: -.SUFFIXES: .c .o - -.c.o: - $(CC) $(CFLAGS) -o $@ -c $< - -clean: - rm -f $(ASN_PROGRAM) $(ASN_LIBRARY) - rm -f $(ASN_MODULE_SRCS:.c=.o) $(ASN_PROGRAM_SRCS:.c=.o) - -regen: regenerate-from-asn1-source - -regenerate-from-asn1-source: - asn1c -fcompound-names /home/rshacham/e2sm-kpm-v01.02.asn - diff --git a/e2sim/previous/e2apv1sim/ASN1c/der_encoder.c b/e2sim/previous/e2apv1sim/ASN1c/der_encoder.c deleted file mode 100644 index 2c6a6f7..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/der_encoder.c +++ /dev/null @@ -1,194 +0,0 @@ -/*- - * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include - -static ssize_t der_write_TL(ber_tlv_tag_t tag, ber_tlv_len_t len, - asn_app_consume_bytes_f *cb, void *app_key, int constructed); - -/* - * The DER encoder of any type. - */ -asn_enc_rval_t -der_encode(const asn_TYPE_descriptor_t *type_descriptor, const void *struct_ptr, - asn_app_consume_bytes_f *consume_bytes, void *app_key) { - ASN_DEBUG("DER encoder invoked for %s", - type_descriptor->name); - - /* - * Invoke type-specific encoder. - */ - return type_descriptor->op->der_encoder( - type_descriptor, struct_ptr, /* Pointer to the destination structure */ - 0, 0, consume_bytes, app_key); -} - -/* - * Argument type and callback necessary for der_encode_to_buffer(). - */ -typedef struct enc_to_buf_arg { - void *buffer; - size_t left; -} enc_to_buf_arg; -static int encode_to_buffer_cb(const void *buffer, size_t size, void *key) { - enc_to_buf_arg *arg = (enc_to_buf_arg *)key; - - if(arg->left < size) - return -1; /* Data exceeds the available buffer size */ - - memcpy(arg->buffer, buffer, size); - arg->buffer = ((char *)arg->buffer) + size; - arg->left -= size; - - return 0; -} - -/* - * A variant of the der_encode() which encodes the data into the provided buffer - */ -asn_enc_rval_t -der_encode_to_buffer(const asn_TYPE_descriptor_t *type_descriptor, - const void *struct_ptr, void *buffer, size_t buffer_size) { - enc_to_buf_arg arg; - asn_enc_rval_t ec; - - arg.buffer = buffer; - arg.left = buffer_size; - - ec = type_descriptor->op->der_encoder(type_descriptor, - struct_ptr, /* Pointer to the destination structure */ - 0, 0, encode_to_buffer_cb, &arg); - if(ec.encoded != -1) { - assert(ec.encoded == (ssize_t)(buffer_size - arg.left)); - /* Return the encoded contents size */ - } - return ec; -} - - -/* - * Write out leading TL[v] sequence according to the type definition. - */ -ssize_t -der_write_tags(const asn_TYPE_descriptor_t *sd, size_t struct_length, - int tag_mode, int last_tag_form, - ber_tlv_tag_t tag, /* EXPLICIT or IMPLICIT tag */ - asn_app_consume_bytes_f *cb, void *app_key) { -#define ASN1_DER_MAX_TAGS_COUNT 4 - ber_tlv_tag_t - tags_buf_scratch[ASN1_DER_MAX_TAGS_COUNT * sizeof(ber_tlv_tag_t)]; - ssize_t lens[ASN1_DER_MAX_TAGS_COUNT * sizeof(ssize_t)]; - const ber_tlv_tag_t *tags; /* Copy of tags stream */ - int tags_count; /* Number of tags */ - size_t overall_length; - int i; - - ASN_DEBUG("Writing tags (%s, tm=%d, tc=%d, tag=%s, mtc=%d)", - sd->name, tag_mode, sd->tags_count, - ber_tlv_tag_string(tag), - tag_mode - ?(sd->tags_count+1 - -((tag_mode == -1) && sd->tags_count)) - :sd->tags_count - ); - - if(sd->tags_count + 1 > ASN1_DER_MAX_TAGS_COUNT) { - ASN_DEBUG("System limit %d on tags count", ASN1_DER_MAX_TAGS_COUNT); - return -1; - } - - if(tag_mode) { - /* - * Instead of doing shaman dance like we do in ber_check_tags(), - * allocate a small array on the stack - * and initialize it appropriately. - */ - int stag_offset; - ber_tlv_tag_t *tags_buf = tags_buf_scratch; - tags_count = sd->tags_count - + 1 /* EXPLICIT or IMPLICIT tag is given */ - - ((tag_mode == -1) && sd->tags_count); - /* Copy tags over */ - tags_buf[0] = tag; - stag_offset = -1 + ((tag_mode == -1) && sd->tags_count); - for(i = 1; i < tags_count; i++) - tags_buf[i] = sd->tags[i + stag_offset]; - tags = tags_buf; - } else { - tags = sd->tags; - tags_count = sd->tags_count; - } - - /* No tags to write */ - if(tags_count == 0) - return 0; - - /* - * Array of tags is initialized. - * Now, compute the size of the TLV pairs, from right to left. - */ - overall_length = struct_length; - for(i = tags_count - 1; i >= 0; --i) { - lens[i] = der_write_TL(tags[i], overall_length, 0, 0, 0); - if(lens[i] == -1) return -1; - overall_length += lens[i]; - lens[i] = overall_length - lens[i]; - } - - if(!cb) return overall_length - struct_length; - - ASN_DEBUG("Encoding %s TL sequence (%d elements)", sd->name, - tags_count); - - /* - * Encode the TL sequence for real. - */ - for(i = 0; i < tags_count; i++) { - ssize_t len; - int _constr; - - /* Check if this tag happens to be constructed */ - _constr = (last_tag_form || i < (tags_count - 1)); - - len = der_write_TL(tags[i], lens[i], cb, app_key, _constr); - if(len == -1) return -1; - } - - return overall_length - struct_length; -} - -static ssize_t -der_write_TL(ber_tlv_tag_t tag, ber_tlv_len_t len, - asn_app_consume_bytes_f *cb, void *app_key, - int constructed) { - uint8_t buf[32]; - size_t size = 0; - int buf_size = cb?sizeof(buf):0; - ssize_t tmp; - - /* Serialize tag (T from TLV) into possibly zero-length buffer */ - tmp = ber_tlv_tag_serialize(tag, buf, buf_size); - if(tmp == -1 || tmp > (ssize_t)sizeof(buf)) return -1; - size += tmp; - - /* Serialize length (L from TLV) into possibly zero-length buffer */ - tmp = der_tlv_length_serialize(len, buf+size, buf_size?buf_size-size:0); - if(tmp == -1) return -1; - size += tmp; - - if(size > sizeof(buf)) - return -1; - - /* - * If callback is specified, invoke it, and check its return value. - */ - if(cb) { - if(constructed) *buf |= 0x20; - if(cb(buf, size, app_key) < 0) - return -1; - } - - return size; -} diff --git a/e2sim/previous/e2apv1sim/ASN1c/der_encoder.h b/e2sim/previous/e2apv1sim/ASN1c/der_encoder.h deleted file mode 100644 index e93944e..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/der_encoder.h +++ /dev/null @@ -1,68 +0,0 @@ -/*- - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef _DER_ENCODER_H_ -#define _DER_ENCODER_H_ - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -struct asn_TYPE_descriptor_s; /* Forward declaration */ - -/* - * The DER encoder of any type. May be invoked by the application. - * Produces DER- and BER-compliant encoding. (DER is a subset of BER). - * - * NOTE: Use the ber_decode() function (ber_decoder.h) to decode data - * produced by der_encode(). - */ -asn_enc_rval_t der_encode(const struct asn_TYPE_descriptor_s *type_descriptor, - const void *struct_ptr, /* Structure to be encoded */ - asn_app_consume_bytes_f *consume_bytes_cb, - void *app_key /* Arbitrary callback argument */ -); - -/* A variant of der_encode() which encodes data into the pre-allocated buffer */ -asn_enc_rval_t der_encode_to_buffer( - const struct asn_TYPE_descriptor_s *type_descriptor, - const void *struct_ptr, /* Structure to be encoded */ - void *buffer, /* Pre-allocated buffer */ - size_t buffer_size /* Initial buffer size (maximum) */ -); - -/* - * Type of the generic DER encoder. - */ -typedef asn_enc_rval_t(der_type_encoder_f)( - const struct asn_TYPE_descriptor_s *type_descriptor, - const void *struct_ptr, /* Structure to be encoded */ - int tag_mode, /* {-1,0,1}: IMPLICIT, no, EXPLICIT */ - ber_tlv_tag_t tag, asn_app_consume_bytes_f *consume_bytes_cb, /* Callback */ - void *app_key /* Arbitrary callback argument */ -); - - -/******************************* - * INTERNALLY USEFUL FUNCTIONS * - *******************************/ - -/* - * Write out leading TL[v] sequence according to the type definition. - */ -ssize_t der_write_tags(const struct asn_TYPE_descriptor_s *type_descriptor, - size_t struct_length, - int tag_mode, /* {-1,0,1}: IMPLICIT, no, EXPLICIT */ - int last_tag_form, /* {0,!0}: prim, constructed */ - ber_tlv_tag_t tag, - asn_app_consume_bytes_f *consume_bytes_cb, - void *app_key); - -#ifdef __cplusplus -} -#endif - -#endif /* _DER_ENCODER_H_ */ diff --git a/e2sim/previous/e2apv1sim/ASN1c/oer_decoder.c b/e2sim/previous/e2apv1sim/ASN1c/oer_decoder.c deleted file mode 100644 index 0701738..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/oer_decoder.c +++ /dev/null @@ -1,152 +0,0 @@ -/* - * Copyright (c) 2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include - -/* - * The OER decoder of any type. - */ -asn_dec_rval_t -oer_decode(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *type_descriptor, void **struct_ptr, - const void *ptr, size_t size) { - asn_codec_ctx_t s_codec_ctx; - - /* - * Stack checker requires that the codec context - * must be allocated on the stack. - */ - if(opt_codec_ctx) { - if(opt_codec_ctx->max_stack_size) { - s_codec_ctx = *opt_codec_ctx; - opt_codec_ctx = &s_codec_ctx; - } - } else { - /* If context is not given, be security-conscious anyway */ - memset(&s_codec_ctx, 0, sizeof(s_codec_ctx)); - s_codec_ctx.max_stack_size = ASN__DEFAULT_STACK_MAX; - opt_codec_ctx = &s_codec_ctx; - } - - /* - * Invoke type-specific decoder. - */ - return type_descriptor->op->oer_decoder(opt_codec_ctx, type_descriptor, 0, - struct_ptr, /* Pointer to the destination structure */ - ptr, size /* Buffer and its size */ - ); -} - -/* - * Open Type is encoded as a length (#8.6) followed by that number of bytes. - * Since we're just skipping, reading the length would be enough. - */ -ssize_t -oer_open_type_skip(const void *bufptr, size_t size) { - size_t len = 0; - return oer_fetch_length(bufptr, size, &len); -} - -/* - * Read the Open Type (X.696 (08/2015), #30). - * RETURN VALUES: - * 0: More data expected than bufptr contains. - * -1: Fatal error deciphering length. - * >0: Number of bytes used from bufptr. - */ -ssize_t -oer_open_type_get(const asn_codec_ctx_t *opt_codec_ctx, - const struct asn_TYPE_descriptor_s *td, - const asn_oer_constraints_t *constraints, void **struct_ptr, - const void *bufptr, size_t size) { - asn_dec_rval_t dr; - size_t container_len = 0; - ssize_t len_len; - enum asn_struct_free_method dispose_method = - (*struct_ptr) ? ASFM_FREE_UNDERLYING_AND_RESET : ASFM_FREE_EVERYTHING; - - /* Get the size of a length determinant */ - len_len = oer_fetch_length(bufptr, size, &container_len); - if(len_len <= 0) { - return len_len; /* Error or more data expected */ - } - - /* - * len_len can't be bigger than size, but size without len_len - * should be bigger or equal to container length - */ - if(size - len_len < container_len) { - /* More data is expected */ - return 0; - } - - dr = td->op->oer_decoder(opt_codec_ctx, td, constraints, struct_ptr, - (const uint8_t *)bufptr + len_len, container_len); - if(dr.code == RC_OK) { - return len_len + container_len; - } else { - /* Even if RC_WMORE, we can't get more data into a closed container. */ - td->op->free_struct(td, *struct_ptr, dispose_method); - *struct_ptr = NULL; - return -1; - } -} - - -asn_dec_rval_t -oer_decode_primitive(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_oer_constraints_t *constraints, void **sptr, - const void *ptr, size_t size) { - ASN__PRIMITIVE_TYPE_t *st = (ASN__PRIMITIVE_TYPE_t *)*sptr; - asn_dec_rval_t rval = {RC_OK, 0}; - size_t expected_length = 0; - ssize_t len_len; - - (void)td; - (void)opt_codec_ctx; - (void)constraints; - - if(!st) { - st = (ASN__PRIMITIVE_TYPE_t *)(*sptr = CALLOC( - 1, sizeof(ASN__PRIMITIVE_TYPE_t))); - if(!st) ASN__DECODE_FAILED; - } - - - /* - * X.696 (08/2015) #27.2 - * Encode length determinant as _number of octets_, but only - * if upper bound is not equal to lower bound. - */ - len_len = oer_fetch_length(ptr, size, &expected_length); - if(len_len > 0) { - rval.consumed = len_len; - ptr = (const char *)ptr + len_len; - size -= len_len; - } else if(len_len == 0) { - ASN__DECODE_STARVED; - } else if(len_len < 0) { - ASN__DECODE_FAILED; - } - - if(size < expected_length) { - ASN__DECODE_STARVED; - } else { - uint8_t *buf = MALLOC(expected_length + 1); - if(buf == NULL) { - ASN__DECODE_FAILED; - } else { - memcpy(buf, ptr, expected_length); - buf[expected_length] = '\0'; - } - FREEMEM(st->buf); - st->buf = buf; - st->size = expected_length; - - rval.consumed += expected_length; - return rval; - } -} diff --git a/e2sim/previous/e2apv1sim/ASN1c/oer_decoder.h b/e2sim/previous/e2apv1sim/ASN1c/oer_decoder.h deleted file mode 100644 index 40992e9..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/oer_decoder.h +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Copyright (c) 2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef OER_DECODER_H -#define OER_DECODER_H - -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -struct asn_TYPE_descriptor_s; /* Forward declaration */ -struct asn_codec_ctx_s; /* Forward declaration */ - -/* - * The Octet Encoding Rules (OER, X.696 08/2015) decoder for any given type. - * This function may be invoked directly by the application. - * Parses CANONICAL-OER and BASIC-OER. - */ -asn_dec_rval_t oer_decode(const struct asn_codec_ctx_s *opt_codec_ctx, - const struct asn_TYPE_descriptor_s *type_descriptor, - void **struct_ptr, /* Pointer to a target structure's pointer */ - const void *buffer, /* Data to be decoded */ - size_t size /* Size of that buffer */ - ); - -/* - * Type of generic function which decodes the byte stream into the structure. - */ -typedef asn_dec_rval_t(oer_type_decoder_f)( - const struct asn_codec_ctx_s *opt_codec_ctx, - const struct asn_TYPE_descriptor_s *type_descriptor, - const asn_oer_constraints_t *constraints, - void **struct_ptr, - const void *buf_ptr, - size_t size); - -/* - * Swallow the Open Type (X.696 (08/2015), #30) into /dev/null. - * RETURN VALUES: - * -1: Fatal error deciphering length. - * 0: More data expected than bufptr contains. - * >0: Number of bytes used from bufptr. - */ -ssize_t oer_open_type_skip(const void *bufptr, size_t size); - -/* - * Read the Open Type (X.696 (08/2015), #30). - * RETURN VALUES: - * 0: More data expected than bufptr contains. - * -1: Fatal error deciphering length. - * >0: Number of bytes used from bufptr. - */ -ssize_t oer_open_type_get(const asn_codec_ctx_t *opt_codec_ctx, - const struct asn_TYPE_descriptor_s *td, - const asn_oer_constraints_t *constraints, - void **struct_ptr, const void *bufptr, size_t size); - -/* - * Length-prefixed buffer decoding for primitive types. - */ -oer_type_decoder_f oer_decode_primitive; - - -#ifdef __cplusplus -} -#endif - -#endif /* OER_DECODER_H */ diff --git a/e2sim/previous/e2apv1sim/ASN1c/oer_encoder.c b/e2sim/previous/e2apv1sim/ASN1c/oer_encoder.c deleted file mode 100644 index a284cc2..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/oer_encoder.c +++ /dev/null @@ -1,141 +0,0 @@ -/* - * Copyright (c) 2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include - -/* - * The OER encoder of any type. - */ -asn_enc_rval_t -oer_encode(const asn_TYPE_descriptor_t *type_descriptor, const void *struct_ptr, - asn_app_consume_bytes_f *consume_bytes, void *app_key) { - ASN_DEBUG("OER encoder invoked for %s", type_descriptor->name); - - /* - * Invoke type-specific encoder. - */ - return type_descriptor->op->oer_encoder( - type_descriptor, 0, - struct_ptr, /* Pointer to the destination structure */ - consume_bytes, app_key); -} - -/* - * Argument type and callback necessary for oer_encode_to_buffer(). - */ -typedef struct enc_to_buf_arg { - void *buffer; - size_t left; -} enc_to_buf_arg; -static int -encode_to_buffer_cb(const void *buffer, size_t size, void *key) { - enc_to_buf_arg *arg = (enc_to_buf_arg *)key; - - if(arg->left < size) return -1; /* Data exceeds the available buffer size */ - - memcpy(arg->buffer, buffer, size); - arg->buffer = ((char *)arg->buffer) + size; - arg->left -= size; - - return 0; -} - -/* - * A variant of the oer_encode() which encodes the data into the provided buffer - */ -asn_enc_rval_t -oer_encode_to_buffer(const asn_TYPE_descriptor_t *type_descriptor, - const asn_oer_constraints_t *constraints, - const void *struct_ptr, /* Structure to be encoded */ - void *buffer, /* Pre-allocated buffer */ - size_t buffer_size /* Initial buffer size (maximum) */ -) { - enc_to_buf_arg arg; - asn_enc_rval_t ec; - - arg.buffer = buffer; - arg.left = buffer_size; - - if(type_descriptor->op->oer_encoder == NULL) { - ec.encoded = -1; - ec.failed_type = type_descriptor; - ec.structure_ptr = struct_ptr; - ASN_DEBUG("OER encoder is not defined for %s", - type_descriptor->name); - } else { - ec = type_descriptor->op->oer_encoder( - type_descriptor, constraints, - struct_ptr, /* Pointer to the destination structure */ - encode_to_buffer_cb, &arg); - if(ec.encoded != -1) { - assert(ec.encoded == (ssize_t)(buffer_size - arg.left)); - /* Return the encoded contents size */ - } - } - return ec; -} - -asn_enc_rval_t -oer_encode_primitive(const asn_TYPE_descriptor_t *td, - const asn_oer_constraints_t *constraints, const void *sptr, - asn_app_consume_bytes_f *cb, void *app_key) { - const ASN__PRIMITIVE_TYPE_t *st = (const ASN__PRIMITIVE_TYPE_t *)sptr; - asn_enc_rval_t er = {0, 0, 0}; - ssize_t ret; - - (void)constraints; - - if(!st) ASN__ENCODE_FAILED; - - ASN_DEBUG("Encoding %s (%" ASN_PRI_SIZE " bytes)", td ? td->name : "", st->size); - - /* - * X.696 (08/2015) #27.2 - */ - ret = oer_serialize_length(st->size, cb, app_key); - if(ret < 0) { - ASN__ENCODE_FAILED; - } - er.encoded += ret; - - er.encoded += st->size; - if(cb(st->buf, st->size, app_key) < 0) { - ASN__ENCODE_FAILED; - } else { - ASN__ENCODED_OK(er); - } -} - -static int -oer__count_bytes(const void *buffer, size_t size, void *bytes_ptr) { - size_t *bytes = bytes_ptr; - (void)buffer; - *bytes += size; - return 0; -} - -ssize_t -oer_open_type_put(const asn_TYPE_descriptor_t *td, - const asn_oer_constraints_t *constraints, const void *sptr, - asn_app_consume_bytes_f *cb, void *app_key) { - size_t serialized_byte_count = 0; - asn_enc_rval_t er = {0,0,0}; - ssize_t len_len; - - er = td->op->oer_encoder(td, constraints, sptr, oer__count_bytes, - &serialized_byte_count); - if(er.encoded < 0) return -1; - assert(serialized_byte_count == (size_t)er.encoded); - - len_len = oer_serialize_length(serialized_byte_count, cb, app_key); - if(len_len == -1) return -1; - - er = td->op->oer_encoder(td, constraints, sptr, cb, app_key); - if(er.encoded < 0) return -1; - assert(serialized_byte_count == (size_t)er.encoded); - - return len_len + er.encoded; -} - diff --git a/e2sim/previous/e2apv1sim/ASN1c/oer_encoder.h b/e2sim/previous/e2apv1sim/ASN1c/oer_encoder.h deleted file mode 100644 index 6a7b681..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/oer_encoder.h +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Copyright (c) 2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef OER_ENCODER_H -#define OER_ENCODER_H - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -struct asn_TYPE_descriptor_s; /* Forward declaration */ - -/* - * The Octet Encoding Rules (OER, X.696 08/2015) encoder for any type. - * This function may be invoked directly by the application. - * Produces CANONICAL-OER output compatible with CANONICAL-OER - * and BASIC-OER decoders. - */ -asn_enc_rval_t oer_encode(const struct asn_TYPE_descriptor_s *type_descriptor, - const void *struct_ptr, /* Structure to be encoded */ - asn_app_consume_bytes_f *consume_bytes_cb, - void *app_key /* Arbitrary callback argument */ -); - -/* A variant of oer_encode() which encodes data into the pre-allocated buffer */ -asn_enc_rval_t oer_encode_to_buffer( - const struct asn_TYPE_descriptor_s *type_descriptor, - const asn_oer_constraints_t *constraints, - const void *struct_ptr, /* Structure to be encoded */ - void *buffer, /* Pre-allocated buffer */ - size_t buffer_size /* Initial buffer size (maximum) */ -); - -/* - * Type of the generic OER encoder. - */ -typedef asn_enc_rval_t(oer_type_encoder_f)( - const struct asn_TYPE_descriptor_s *type_descriptor, - const asn_oer_constraints_t *constraints, - const void *struct_ptr, /* Structure to be encoded */ - asn_app_consume_bytes_f *consume_bytes_cb, /* Callback */ - void *app_key /* Arbitrary callback argument */ -); - -/* - * Write out the Open Type (X.696 (08/2015), #30). - * RETURN VALUES: - * -1: Fatal error encoding the type. - * >0: Number of bytes serialized. - */ -ssize_t oer_open_type_put(const struct asn_TYPE_descriptor_s *td, - const asn_oer_constraints_t *constraints, - const void *struct_ptr, - asn_app_consume_bytes_f *consume_bytes_cb, - void *app_key); - - -/* - * Length-prefixed buffer encoding for primitive types. - */ -oer_type_encoder_f oer_encode_primitive; - -#ifdef __cplusplus -} -#endif - -#endif /* OER_ENCODER_H */ diff --git a/e2sim/previous/e2apv1sim/ASN1c/oer_support.c b/e2sim/previous/e2apv1sim/ASN1c/oer_support.c deleted file mode 100644 index b15a3bc..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/oer_support.c +++ /dev/null @@ -1,122 +0,0 @@ -/* - * Copyright (c) 2017 Lev Walkin . - * All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include - -#include - -/* - * Fetch the length determinant (X.696 08/2015, #8.6) into *len_r. - * RETURN VALUES: - * 0: More data expected than bufptr contains. - * -1: Fatal error deciphering length. - * >0: Number of bytes used from bufptr. - */ -ssize_t -oer_fetch_length(const void *bufptr, size_t size, size_t *len_r) { - uint8_t first_byte; - size_t len_len; /* Length of the length determinant */ - const uint8_t *b; - const uint8_t *bend; - size_t len; - - if(size == 0) { - *len_r = 0; - return 0; - } - - first_byte = *(const uint8_t *)bufptr; - if((first_byte & 0x80) == 0) { /* Short form */ - *len_r = first_byte; /* 0..127 */ - return 1; - } - - len_len = (first_byte & 0x7f); - if((1 + len_len) > size) { - *len_r = 0; - return 0; - } - - b = (const uint8_t *)bufptr + 1; - bend = b + len_len; - - for(; b < bend && *b == 0; b++) { - /* Skip the leading 0-bytes */ - } - - if((bend - b) > (ssize_t)sizeof(size_t)) { - /* Length is not representable by the native size_t type */ - *len_r = 0; - return -1; - } - - for(len = 0; b < bend; b++) { - len = (len << 8) + *b; - } - - if(len > RSIZE_MAX) { /* A bit of C11 validation */ - *len_r = 0; - return -1; - } - - *len_r = len; - assert(len_len + 1 == (size_t)(bend - (const uint8_t *)bufptr)); - return len_len + 1; -} - - -/* - * Serialize OER length. Returns the number of bytes serialized - * or -1 if a given callback returned with negative result. - */ -ssize_t -oer_serialize_length(size_t length, asn_app_consume_bytes_f *cb, - void *app_key) { - uint8_t scratch[1 + sizeof(length)]; - uint8_t *sp = scratch; - int littleEndian = 1; /* Run-time detection */ - const uint8_t *pstart; - const uint8_t *pend; - const uint8_t *p; - int add; - - if(length <= 127) { - uint8_t b = length; - if(cb(&b, 1, app_key) < 0) { - return -1; - } - return 1; - } - - if(*(char *)&littleEndian) { - pstart = (const uint8_t *)&length + sizeof(length) - 1; - pend = (const uint8_t *)&length; - add = -1; - } else { - pstart = (const uint8_t *)&length; - pend = pstart + sizeof(length); - add = 1; - } - - for(p = pstart; p != pend; p += add) { - /* Skip leading zeros. */ - if(*p) break; - } - - for(sp = scratch + 1; ; p += add) { - *sp++ = *p; - if(p == pend) break; - } - assert((sp - scratch) - 1 <= 0x7f); - scratch[0] = 0x80 + ((sp - scratch) - 1); - - if(cb(scratch, sp - scratch, app_key) < 0) { - return -1; - } - - return sp - scratch; -} - diff --git a/e2sim/previous/e2apv1sim/ASN1c/oer_support.h b/e2sim/previous/e2apv1sim/ASN1c/oer_support.h deleted file mode 100644 index dbc9b5f..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/oer_support.h +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright (c) 2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef OER_SUPPORT_H -#define OER_SUPPORT_H - -#include /* Platform-specific types */ - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * Pre-computed OER constraints. - */ -typedef struct asn_oer_constraint_number_s { - unsigned width; /* ±8,4,2,1 fixed bytes */ - unsigned positive; /* 1 for unsigned number, 0 for signed */ -} asn_oer_constraint_number_t; -typedef struct asn_oer_constraints_s { - asn_oer_constraint_number_t value; - ssize_t size; /* -1 (no constraint) or >= 0 */ -} asn_oer_constraints_t; - - -/* - * Fetch the length determinant (X.696 (08/2015), #8.6) into *len_r. - * RETURN VALUES: - * 0: More data expected than bufptr contains. - * -1: Fatal error deciphering length. - * >0: Number of bytes used from bufptr. - */ -ssize_t oer_fetch_length(const void *bufptr, size_t size, size_t *len_r); - -/* - * Serialize OER length. Returns the number of bytes serialized - * or -1 if a given callback returned with negative result. - */ -ssize_t oer_serialize_length(size_t length, asn_app_consume_bytes_f *cb, void *app_key); - - -#ifdef __cplusplus -} -#endif - -#endif /* OER_SUPPORT_H */ diff --git a/e2sim/previous/e2apv1sim/ASN1c/pdu_collection.c b/e2sim/previous/e2apv1sim/ASN1c/pdu_collection.c deleted file mode 100644 index 0d559a4..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/pdu_collection.c +++ /dev/null @@ -1,25 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - */ - -struct asn_TYPE_descriptor_s; /* Forward declaration */ - -extern struct asn_TYPE_descriptor_s asn_DEF_E2SM_KPM_EventTriggerDefinition; -extern struct asn_TYPE_descriptor_s asn_DEF_E2SM_KPM_ActionDefinition; -extern struct asn_TYPE_descriptor_s asn_DEF_E2SM_KPM_IndicationHeader; -extern struct asn_TYPE_descriptor_s asn_DEF_E2SM_KPM_IndicationMessage; -extern struct asn_TYPE_descriptor_s asn_DEF_E2SM_KPM_RANfunction_Description; -extern struct asn_TYPE_descriptor_s asn_DEF_RANcallProcess_ID_string; - - -struct asn_TYPE_descriptor_s *asn_pdu_collection[] = { - /* From module E2SM-KPM-IEs in /home/rshacham/e2sm-kpm-v01.02.asn */ - &asn_DEF_E2SM_KPM_EventTriggerDefinition, - &asn_DEF_E2SM_KPM_ActionDefinition, - &asn_DEF_E2SM_KPM_IndicationHeader, - &asn_DEF_E2SM_KPM_IndicationMessage, - &asn_DEF_E2SM_KPM_RANfunction_Description, - &asn_DEF_RANcallProcess_ID_string, - 0 -}; - diff --git a/e2sim/previous/e2apv1sim/ASN1c/per_decoder.c b/e2sim/previous/e2apv1sim/ASN1c/per_decoder.c deleted file mode 100644 index 8a3e39d..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/per_decoder.c +++ /dev/null @@ -1,185 +0,0 @@ -#include -#include -#include - -/* - * Decode a "Production of a complete encoding", X.691#10.1. - * The complete encoding contains at least one byte, and is an integral - * multiple of 8 bytes. - */ -asn_dec_rval_t -uper_decode_complete(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **sptr, - const void *buffer, size_t size) { - asn_dec_rval_t rval; - - rval = uper_decode(opt_codec_ctx, td, sptr, buffer, size, 0, 0); - if(rval.consumed) { - /* - * We've always given 8-aligned data, - * so convert bits to integral bytes. - */ - rval.consumed += 7; - rval.consumed >>= 3; - } else if(rval.code == RC_OK) { - if(size) { - if(((const uint8_t *)buffer)[0] == 0) { - rval.consumed = 1; /* 1 byte */ - } else { - ASN_DEBUG("Expecting single zeroed byte"); - rval.code = RC_FAIL; - } - } else { - /* Must contain at least 8 bits. */ - rval.code = RC_WMORE; - } - } - - return rval; -} - -asn_dec_rval_t -uper_decode(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **sptr, const void *buffer, - size_t size, int skip_bits, int unused_bits) { - asn_codec_ctx_t s_codec_ctx; - asn_dec_rval_t rval; - asn_per_data_t pd; - - if(skip_bits < 0 || skip_bits > 7 - || unused_bits < 0 || unused_bits > 7 - || (unused_bits > 0 && !size)) - ASN__DECODE_FAILED; - - /* - * Stack checker requires that the codec context - * must be allocated on the stack. - */ - if(opt_codec_ctx) { - if(opt_codec_ctx->max_stack_size) { - s_codec_ctx = *opt_codec_ctx; - opt_codec_ctx = &s_codec_ctx; - } - } else { - /* If context is not given, be security-conscious anyway */ - memset(&s_codec_ctx, 0, sizeof(s_codec_ctx)); - s_codec_ctx.max_stack_size = ASN__DEFAULT_STACK_MAX; - opt_codec_ctx = &s_codec_ctx; - } - - /* Fill in the position indicator */ - memset(&pd, 0, sizeof(pd)); - pd.buffer = (const uint8_t *)buffer; - pd.nboff = skip_bits; - pd.nbits = 8 * size - unused_bits; /* 8 is CHAR_BIT from */ - if(pd.nboff > pd.nbits) - ASN__DECODE_FAILED; - - /* - * Invoke type-specific decoder. - */ - if(!td->op->uper_decoder) - ASN__DECODE_FAILED; /* PER is not compiled in */ - rval = td->op->uper_decoder(opt_codec_ctx, td, 0, sptr, &pd); - if(rval.code == RC_OK) { - /* Return the number of consumed bits */ - rval.consumed = ((pd.buffer - (const uint8_t *)buffer) << 3) - + pd.nboff - skip_bits; - ASN_DEBUG("PER decoding consumed %ld, counted %ld", - (long)rval.consumed, (long)pd.moved); - assert(rval.consumed == pd.moved); - } else { - /* PER codec is not a restartable */ - rval.consumed = 0; - } - return rval; -} - -asn_dec_rval_t -aper_decode_complete(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **sptr, - const void *buffer, size_t size) { - asn_dec_rval_t rval; - - rval = aper_decode(opt_codec_ctx, td, sptr, buffer, size, 0, 0); - if(rval.consumed) { - /* - * We've always given 8-aligned data, - * so convert bits to integral bytes. - */ - rval.consumed += 7; - rval.consumed >>= 3; - } else if(rval.code == RC_OK) { - if(size) { - if(((const uint8_t *)buffer)[0] == 0) { - rval.consumed = 1; /* 1 byte */ - } else { - ASN_DEBUG("Expecting single zeroed byte"); - rval.code = RC_FAIL; - } - } else { - /* Must contain at least 8 bits. */ - rval.code = RC_WMORE; - } - } - - return rval; -} - -asn_dec_rval_t -aper_decode(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **sptr, const void *buffer, - size_t size, int skip_bits, int unused_bits) { - asn_codec_ctx_t s_codec_ctx; - asn_dec_rval_t rval; - asn_per_data_t pd; - - if(skip_bits < 0 || skip_bits > 7 - || unused_bits < 0 || unused_bits > 7 - || (unused_bits > 0 && !size)) - ASN__DECODE_FAILED; - - /* - * Stack checker requires that the codec context - * must be allocated on the stack. - */ - if(opt_codec_ctx) { - if(opt_codec_ctx->max_stack_size) { - s_codec_ctx = *opt_codec_ctx; - opt_codec_ctx = &s_codec_ctx; - } - } else { - /* If context is not given, be security-conscious anyway */ - memset(&s_codec_ctx, 0, sizeof(s_codec_ctx)); - s_codec_ctx.max_stack_size = ASN__DEFAULT_STACK_MAX; - opt_codec_ctx = &s_codec_ctx; - } - - /* Fill in the position indicator */ - memset(&pd, 0, sizeof(pd)); - pd.buffer = (const uint8_t *)buffer; - pd.nboff = skip_bits; - pd.nbits = 8 * size - unused_bits; /* 8 is CHAR_BIT from */ - if(pd.nboff > pd.nbits) - ASN__DECODE_FAILED; - - /* - * Invoke type-specific decoder. - */ - if(!td->op->aper_decoder) - ASN__DECODE_FAILED; /* PER is not compiled in */ - rval = td->op->aper_decoder(opt_codec_ctx, td, 0, sptr, &pd); - if(rval.code == RC_OK) { - /* Return the number of consumed bits */ - rval.consumed = ((pd.buffer - (const uint8_t *)buffer) << 3) - + pd.nboff - skip_bits; - ASN_DEBUG("PER decoding consumed %zu, counted %zu", - rval.consumed, pd.moved); - assert(rval.consumed == pd.moved); - } else { - /* PER codec is not a restartable */ - rval.consumed = 0; - } - return rval; -} - diff --git a/e2sim/previous/e2apv1sim/ASN1c/per_decoder.h b/e2sim/previous/e2apv1sim/ASN1c/per_decoder.h deleted file mode 100644 index eea474a..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/per_decoder.h +++ /dev/null @@ -1,82 +0,0 @@ -/*- - * Copyright (c) 2005-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef _PER_DECODER_H_ -#define _PER_DECODER_H_ - -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -struct asn_TYPE_descriptor_s; /* Forward declaration */ - -/* - * Unaligned PER decoder of a "complete encoding" as per X.691 (08/2015) #11.1. - * On success, this call always returns (.consumed >= 1), as per #11.1.3. - */ -asn_dec_rval_t uper_decode_complete( - const struct asn_codec_ctx_s *opt_codec_ctx, - const struct asn_TYPE_descriptor_s *type_descriptor, /* Type to decode */ - void **struct_ptr, /* Pointer to a target structure's pointer */ - const void *buffer, /* Data to be decoded */ - size_t size /* Size of data buffer */ -); - -/* - * Unaligned PER decoder of any ASN.1 type. May be invoked by the application. - * WARNING: This call returns the number of BITS read from the stream. Beware. - */ -asn_dec_rval_t uper_decode( - const struct asn_codec_ctx_s *opt_codec_ctx, - const struct asn_TYPE_descriptor_s *type_descriptor, /* Type to decode */ - void **struct_ptr, /* Pointer to a target structure's pointer */ - const void *buffer, /* Data to be decoded */ - size_t size, /* Size of the input data buffer, in bytes */ - int skip_bits, /* Number of unused leading bits, 0..7 */ - int unused_bits /* Number of unused tailing bits, 0..7 */ -); - -/* - * Aligned PER decoder of a "complete encoding" as per X.691#10.1. - * On success, this call always returns (.consumed >= 1), in BITS, as per X.691#10.1.3. - */ -asn_dec_rval_t aper_decode_complete( - const struct asn_codec_ctx_s *opt_codec_ctx, - const struct asn_TYPE_descriptor_s *type_descriptor, /* Type to decode */ - void **struct_ptr, /* Pointer to a target structure's pointer */ - const void *buffer, /* Data to be decoded */ - size_t size /* Size of data buffer */ - ); - -/* - * Aligned PER decoder of any ASN.1 type. May be invoked by the application. - * WARNING: This call returns the number of BITS read from the stream. Beware. - */ -asn_dec_rval_t aper_decode( - const struct asn_codec_ctx_s *opt_codec_ctx, - const struct asn_TYPE_descriptor_s *type_descriptor, /* Type to decode */ - void **struct_ptr, /* Pointer to a target structure's pointer */ - const void *buffer, /* Data to be decoded */ - size_t size, /* Size of data buffer */ - int skip_bits, /* Number of unused leading bits, 0..7 */ - int unused_bits /* Number of unused tailing bits, 0..7 */ - ); - -/* - * Type of the type-specific PER decoder function. - */ -typedef asn_dec_rval_t(per_type_decoder_f)( - const asn_codec_ctx_t *opt_codec_ctx, - const struct asn_TYPE_descriptor_s *type_descriptor, - const asn_per_constraints_t *constraints, void **struct_ptr, - asn_per_data_t *per_data); - -#ifdef __cplusplus -} -#endif - -#endif /* _PER_DECODER_H_ */ diff --git a/e2sim/previous/e2apv1sim/ASN1c/per_encoder.c b/e2sim/previous/e2apv1sim/ASN1c/per_encoder.c deleted file mode 100644 index a35e1f0..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/per_encoder.c +++ /dev/null @@ -1,265 +0,0 @@ -#include -#include -#include - -static int _uper_encode_flush_outp(asn_per_outp_t *po); - -static int -ignore_output(const void *data, size_t size, void *app_key) { - (void)data; - (void)size; - (void)app_key; - return 0; -} - -asn_enc_rval_t -uper_encode(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, const void *sptr, - asn_app_consume_bytes_f *cb, void *app_key) { - asn_per_outp_t po; - asn_enc_rval_t er = {0,0,0}; - - /* - * Invoke type-specific encoder. - */ - if(!td || !td->op->uper_encoder) - ASN__ENCODE_FAILED; /* PER is not compiled in */ - - po.buffer = po.tmpspace; - po.nboff = 0; - po.nbits = 8 * sizeof(po.tmpspace); - po.output = cb ? cb : ignore_output; - po.op_key = app_key; - po.flushed_bytes = 0; - - er = td->op->uper_encoder(td, constraints, sptr, &po); - if(er.encoded != -1) { - size_t bits_to_flush; - - bits_to_flush = ((po.buffer - po.tmpspace) << 3) + po.nboff; - - /* Set number of bits encoded to a firm value */ - er.encoded = (po.flushed_bytes << 3) + bits_to_flush; - - if(_uper_encode_flush_outp(&po)) ASN__ENCODE_FAILED; - } - - return er; -} - -/* - * Argument type and callback necessary for uper_encode_to_buffer(). - */ -typedef struct enc_to_buf_arg { - void *buffer; - size_t left; -} enc_to_buf_arg; -static int encode_to_buffer_cb(const void *buffer, size_t size, void *key) { - enc_to_buf_arg *arg = (enc_to_buf_arg *)key; - - if(arg->left < size) - return -1; /* Data exceeds the available buffer size */ - - memcpy(arg->buffer, buffer, size); - arg->buffer = ((char *)arg->buffer) + size; - arg->left -= size; - - return 0; -} - -asn_enc_rval_t -uper_encode_to_buffer(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, void *buffer, size_t buffer_size) { - enc_to_buf_arg key; - - key.buffer = buffer; - key.left = buffer_size; - - if(td) ASN_DEBUG("Encoding \"%s\" using UNALIGNED PER", td->name); - - return uper_encode(td, constraints, sptr, encode_to_buffer_cb, &key); -} - -typedef struct enc_dyn_arg { - void *buffer; - size_t length; - size_t allocated; -} enc_dyn_arg; -static int -encode_dyn_cb(const void *buffer, size_t size, void *key) { - enc_dyn_arg *arg = key; - if(arg->length + size >= arg->allocated) { - size_t new_size = arg->allocated ? arg->allocated : 8; - void *p; - - do { - new_size <<= 2; - } while(arg->length + size >= new_size); - - p = REALLOC(arg->buffer, new_size); - if(!p) { - FREEMEM(arg->buffer); - memset(arg, 0, sizeof(*arg)); - return -1; - } - arg->buffer = p; - arg->allocated = new_size; - } - memcpy(((char *)arg->buffer) + arg->length, buffer, size); - arg->length += size; - return 0; -} -ssize_t -uper_encode_to_new_buffer(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, void **buffer_r) { - asn_enc_rval_t er = {0,0,0}; - enc_dyn_arg key; - - memset(&key, 0, sizeof(key)); - - er = uper_encode(td, constraints, sptr, encode_dyn_cb, &key); - switch(er.encoded) { - case -1: - FREEMEM(key.buffer); - return -1; - case 0: - FREEMEM(key.buffer); - key.buffer = MALLOC(1); - if(key.buffer) { - *(char *)key.buffer = '\0'; - *buffer_r = key.buffer; - return 1; - } else { - return -1; - } - default: - *buffer_r = key.buffer; - ASN_DEBUG("Complete encoded in %ld bits", (long)er.encoded); - return ((er.encoded + 7) >> 3); - } -} - -/* - * Internally useful functions. - */ - -/* Flush partially filled buffer */ -static int -_uper_encode_flush_outp(asn_per_outp_t *po) { - uint8_t *buf; - - if(po->nboff == 0 && po->buffer == po->tmpspace) - return 0; - - buf = po->buffer + (po->nboff >> 3); - /* Make sure we account for the last, partially filled */ - if(po->nboff & 0x07) { - buf[0] &= 0xff << (8 - (po->nboff & 0x07)); - buf++; - } - - return po->output(po->tmpspace, buf - po->tmpspace, po->op_key); -} - -asn_enc_rval_t -aper_encode_to_buffer(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, void *buffer, size_t buffer_size) { - enc_to_buf_arg key; - - key.buffer = buffer; - key.left = buffer_size; - - if(td) ASN_DEBUG("Encoding \"%s\" using ALIGNED PER", td->name); - - return aper_encode(td, constraints, sptr, encode_to_buffer_cb, &key); -} - -ssize_t -aper_encode_to_new_buffer(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, void **buffer_r) { - asn_enc_rval_t er = {0,0,0}; - enc_dyn_arg key; - - memset(&key, 0, sizeof(key)); - - er = aper_encode(td, constraints, sptr, encode_dyn_cb, &key); - switch(er.encoded) { - case -1: - FREEMEM(key.buffer); - return -1; - case 0: - FREEMEM(key.buffer); - key.buffer = MALLOC(1); - if(key.buffer) { - *(char *)key.buffer = '\0'; - *buffer_r = key.buffer; - return 1; - } else { - return -1; - } - default: - *buffer_r = key.buffer; - ASN_DEBUG("Complete encoded in %ld bits", (long)er.encoded); - return ((er.encoded + 7) >> 3); - } -} - -static int -_aper_encode_flush_outp(asn_per_outp_t *po) { - uint8_t *buf; - - if(po->nboff == 0 && po->buffer == po->tmpspace) - return 0; - - buf = po->buffer + (po->nboff >> 3); - /* Make sure we account for the last, partially filled */ - if(po->nboff & 0x07) { - buf[0] &= 0xff << (8 - (po->nboff & 0x07)); - buf++; - } - - if (po->output) { - return po->output(po->tmpspace, buf - po->tmpspace, po->op_key); - } - return 0; -} - -asn_enc_rval_t -aper_encode(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_app_consume_bytes_f *cb, void *app_key) { - asn_per_outp_t po; - asn_enc_rval_t er = {0,0,0}; - - /* - * Invoke type-specific encoder. - */ - if(!td || !td->op->aper_encoder) - ASN__ENCODE_FAILED; /* PER is not compiled in */ - - po.buffer = po.tmpspace; - po.nboff = 0; - po.nbits = 8 * sizeof(po.tmpspace); - po.output = cb; - po.op_key = app_key; - po.flushed_bytes = 0; - - er = td->op->aper_encoder(td, constraints, sptr, &po); - if(er.encoded != -1) { - size_t bits_to_flush; - - bits_to_flush = ((po.buffer - po.tmpspace) << 3) + po.nboff; - - /* Set number of bits encoded to a firm value */ - er.encoded = (po.flushed_bytes << 3) + bits_to_flush; - - if(_aper_encode_flush_outp(&po)) - ASN__ENCODE_FAILED; - } - - return er; -} diff --git a/e2sim/previous/e2apv1sim/ASN1c/per_encoder.h b/e2sim/previous/e2apv1sim/ASN1c/per_encoder.h deleted file mode 100644 index b615ef0..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/per_encoder.h +++ /dev/null @@ -1,93 +0,0 @@ -/*- - * Copyright (c) 2006-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef _PER_ENCODER_H_ -#define _PER_ENCODER_H_ - -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -struct asn_TYPE_descriptor_s; /* Forward declaration */ - -/* - * Unaligned PER encoder of any ASN.1 type. May be invoked by the application. - * WARNING: This function returns the number of encoded bits in the .encoded - * field of the return value. Use the following formula to convert to bytes: - * bytes = ((.encoded + 7) / 8) - */ -asn_enc_rval_t uper_encode( - const struct asn_TYPE_descriptor_s *type_descriptor, - const asn_per_constraints_t *constraints, - const void *struct_ptr, /* Structure to be encoded */ - asn_app_consume_bytes_f *consume_bytes_cb, /* Data collector */ - void *app_key /* Arbitrary callback argument */ -); - -asn_enc_rval_t aper_encode( - const struct asn_TYPE_descriptor_s *type_descriptor, - const asn_per_constraints_t *constraints, - const void *struct_ptr, /* Structure to be encoded */ - asn_app_consume_bytes_f *consume_bytes_cb, /* Data collector */ - void *app_key /* Arbitrary callback argument */ -); - -/* - * A variant of uper_encode() which encodes data into the existing buffer - * WARNING: This function returns the number of encoded bits in the .encoded - * field of the return value. - */ -asn_enc_rval_t uper_encode_to_buffer( - const struct asn_TYPE_descriptor_s *type_descriptor, - const asn_per_constraints_t *constraints, - const void *struct_ptr, /* Structure to be encoded */ - void *buffer, /* Pre-allocated buffer */ - size_t buffer_size /* Initial buffer size (max) */ -); - -asn_enc_rval_t aper_encode_to_buffer( - const struct asn_TYPE_descriptor_s *type_descriptor, - const asn_per_constraints_t *constraints, - const void *struct_ptr, /* Structure to be encoded */ - void *buffer, /* Pre-allocated buffer */ - size_t buffer_size /* Initial buffer size (max) */ -); -/* - * A variant of uper_encode_to_buffer() which allocates buffer itself. - * Returns the number of bytes in the buffer or -1 in case of failure. - * WARNING: This function produces a "Production of the complete encoding", - * with length of at least one octet. Contrast this to precise bit-packing - * encoding of uper_encode() and uper_encode_to_buffer(). - */ -ssize_t uper_encode_to_new_buffer( - const struct asn_TYPE_descriptor_s *type_descriptor, - const asn_per_constraints_t *constraints, - const void *struct_ptr, /* Structure to be encoded */ - void **buffer_r /* Buffer allocated and returned */ -); - -ssize_t -aper_encode_to_new_buffer( - const struct asn_TYPE_descriptor_s *td, - const asn_per_constraints_t *constraints, - const void *sptr, - void **buffer_r -); - -/* - * Type of the generic PER encoder function. - */ -typedef asn_enc_rval_t(per_type_encoder_f)( - const struct asn_TYPE_descriptor_s *type_descriptor, - const asn_per_constraints_t *constraints, const void *struct_ptr, - asn_per_outp_t *per_output); - -#ifdef __cplusplus -} -#endif - -#endif /* _PER_ENCODER_H_ */ diff --git a/e2sim/previous/e2apv1sim/ASN1c/per_opentype.c b/e2sim/previous/e2apv1sim/ASN1c/per_opentype.c deleted file mode 100644 index 28f3cb6..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/per_opentype.c +++ /dev/null @@ -1,533 +0,0 @@ -/* - * Copyright (c) 2007 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include -#include - -typedef struct uper_ugot_key { - asn_per_data_t oldpd; /* Old per data source */ - size_t unclaimed; - size_t ot_moved; /* Number of bits moved by OT processing */ - int repeat; -} uper_ugot_key; - -static int uper_ugot_refill(asn_per_data_t *pd); -static int per_skip_bits(asn_per_data_t *pd, int skip_nbits); -static asn_dec_rval_t uper_sot_suck(const asn_codec_ctx_t *, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - void **sptr, asn_per_data_t *pd); - -/* - * Encode an "open type field". - * #10.1, #10.2 - */ -int -uper_open_type_put(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, const void *sptr, - asn_per_outp_t *po) { - void *buf; - void *bptr; - ssize_t size; - - ASN_DEBUG("Open type put %s ...", td->name); - - size = uper_encode_to_new_buffer(td, constraints, sptr, &buf); - if(size <= 0) return -1; - - ASN_DEBUG("Open type put %s of length %" ASN_PRI_SSIZE " + overhead (1byte?)", td->name, - size); - - bptr = buf; - do { - int need_eom = 0; - ssize_t may_save = uper_put_length(po, size, &need_eom); - ASN_DEBUG("Prepending length %" ASN_PRI_SSIZE - " to %s and allowing to save %" ASN_PRI_SSIZE, - size, td->name, may_save); - if(may_save < 0) break; - if(per_put_many_bits(po, bptr, may_save * 8)) break; - bptr = (char *)bptr + may_save; - size -= may_save; - if(need_eom && uper_put_length(po, 0, 0)) { - FREEMEM(buf); - return -1; - } - } while(size); - - FREEMEM(buf); - if(size) return -1; - - return 0; -} - -static asn_dec_rval_t -uper_open_type_get_simple(const asn_codec_ctx_t *ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, - asn_per_data_t *pd) { - asn_dec_rval_t rv; - ssize_t chunk_bytes; - int repeat; - uint8_t *buf = 0; - size_t bufLen = 0; - size_t bufSize = 0; - asn_per_data_t spd; - size_t padding; - - ASN__STACK_OVERFLOW_CHECK(ctx); - - ASN_DEBUG("Getting open type %s...", td->name); - - do { - chunk_bytes = uper_get_length(pd, -1, 0, &repeat); - if(chunk_bytes < 0) { - FREEMEM(buf); - ASN__DECODE_STARVED; - } - if(bufLen + chunk_bytes > bufSize) { - void *ptr; - bufSize = chunk_bytes + (bufSize << 2); - ptr = REALLOC(buf, bufSize); - if(!ptr) { - FREEMEM(buf); - ASN__DECODE_FAILED; - } - buf = ptr; - } - if(per_get_many_bits(pd, buf + bufLen, 0, chunk_bytes << 3)) { - FREEMEM(buf); - ASN__DECODE_STARVED; - } - bufLen += chunk_bytes; - } while(repeat); - - ASN_DEBUG("Getting open type %s encoded in %ld bytes", td->name, - (long)bufLen); - - memset(&spd, 0, sizeof(spd)); - spd.buffer = buf; - spd.nbits = bufLen << 3; - - ASN_DEBUG_INDENT_ADD(+4); - rv = td->op->uper_decoder(ctx, td, constraints, sptr, &spd); - ASN_DEBUG_INDENT_ADD(-4); - - if(rv.code == RC_OK) { - /* Check padding validity */ - padding = spd.nbits - spd.nboff; - if (((padding > 0 && padding < 8) || - /* X.691#10.1.3 */ - (spd.nboff == 0 && spd.nbits == 8 && spd.buffer == buf)) && - per_get_few_bits(&spd, padding) == 0) { - /* Everything is cool */ - FREEMEM(buf); - return rv; - } - FREEMEM(buf); - if(padding >= 8) { - ASN_DEBUG("Too large padding %d in open type", (int)padding); - ASN__DECODE_FAILED; - } else { - ASN_DEBUG("No padding"); - } - } else { - FREEMEM(buf); - /* rv.code could be RC_WMORE, nonsense in this context */ - rv.code = RC_FAIL; /* Noone would give us more */ - } - - return rv; -} - -static asn_dec_rval_t CC_NOTUSED -uper_open_type_get_complex(const asn_codec_ctx_t *ctx, - const asn_TYPE_descriptor_t *td, - asn_per_constraints_t *constraints, void **sptr, - asn_per_data_t *pd) { - uper_ugot_key arg; - asn_dec_rval_t rv; - ssize_t padding; - - ASN__STACK_OVERFLOW_CHECK(ctx); - - ASN_DEBUG("Getting open type %s from %s", td->name, - asn_bit_data_string(pd)); - arg.oldpd = *pd; - arg.unclaimed = 0; - arg.ot_moved = 0; - arg.repeat = 1; - pd->refill = uper_ugot_refill; - pd->refill_key = &arg; - pd->nbits = pd->nboff; /* 0 good bits at this point, will refill */ - pd->moved = 0; /* This now counts the open type size in bits */ - - ASN_DEBUG_INDENT_ADD(+4); - rv = td->op->uper_decoder(ctx, td, constraints, sptr, pd); - ASN_DEBUG_INDENT_ADD(-4); - -#define UPDRESTOREPD do { \ - /* buffer and nboff are valid, preserve them. */ \ - pd->nbits = arg.oldpd.nbits - (pd->moved - arg.ot_moved); \ - pd->moved = arg.oldpd.moved + (pd->moved - arg.ot_moved); \ - pd->refill = arg.oldpd.refill; \ - pd->refill_key = arg.oldpd.refill_key; \ - } while(0) - - if(rv.code != RC_OK) { - UPDRESTOREPD; - return rv; - } - - ASN_DEBUG("OpenType %s pd%s old%s unclaimed=%d, repeat=%d", td->name, - asn_bit_data_string(pd), - asn_bit_data_string(&arg.oldpd), - (int)arg.unclaimed, (int)arg.repeat); - - padding = pd->moved % 8; - if(padding) { - int32_t pvalue; - if(padding > 7) { - ASN_DEBUG("Too large padding %d in open type", - (int)padding); - rv.code = RC_FAIL; - UPDRESTOREPD; - return rv; - } - padding = 8 - padding; - ASN_DEBUG("Getting padding of %d bits", (int)padding); - pvalue = per_get_few_bits(pd, padding); - switch(pvalue) { - case -1: - ASN_DEBUG("Padding skip failed"); - UPDRESTOREPD; - ASN__DECODE_STARVED; - case 0: break; - default: - ASN_DEBUG("Non-blank padding (%d bits 0x%02x)", - (int)padding, (int)pvalue); - UPDRESTOREPD; - ASN__DECODE_FAILED; - } - } - if(pd->nboff != pd->nbits) { - ASN_DEBUG("Open type %s overhead pd%s old%s", td->name, - asn_bit_data_string(pd), asn_bit_data_string(&arg.oldpd)); - if(1) { - UPDRESTOREPD; - ASN__DECODE_FAILED; - } else { - arg.unclaimed += pd->nbits - pd->nboff; - } - } - - /* Adjust pd back so it points to original data */ - UPDRESTOREPD; - - /* Skip data not consumed by the decoder */ - if(arg.unclaimed) { - ASN_DEBUG("Getting unclaimed %d", (int)arg.unclaimed); - switch(per_skip_bits(pd, arg.unclaimed)) { - case -1: - ASN_DEBUG("Claim of %d failed", (int)arg.unclaimed); - ASN__DECODE_STARVED; - case 0: - ASN_DEBUG("Got claim of %d", (int)arg.unclaimed); - break; - default: - /* Padding must be blank */ - ASN_DEBUG("Non-blank unconsumed padding"); - ASN__DECODE_FAILED; - } - arg.unclaimed = 0; - } - - if(arg.repeat) { - ASN_DEBUG("Not consumed the whole thing"); - rv.code = RC_FAIL; - return rv; - } - - return rv; -} - - -asn_dec_rval_t -uper_open_type_get(const asn_codec_ctx_t *ctx, const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, - asn_per_data_t *pd) { - return uper_open_type_get_simple(ctx, td, constraints, sptr, pd); -} - -int -uper_open_type_skip(const asn_codec_ctx_t *ctx, asn_per_data_t *pd) { - asn_TYPE_descriptor_t s_td; - asn_TYPE_operation_t s_op; - asn_dec_rval_t rv; - - s_td.name = ""; - s_td.op = &s_op; - s_op.uper_decoder = uper_sot_suck; - - rv = uper_open_type_get(ctx, &s_td, 0, 0, pd); - if(rv.code != RC_OK) - return -1; - else - return 0; -} - -/* - * Internal functions. - */ - -static asn_dec_rval_t -uper_sot_suck(const asn_codec_ctx_t *ctx, const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, - asn_per_data_t *pd) { - asn_dec_rval_t rv; - - (void)ctx; - (void)td; - (void)constraints; - (void)sptr; - - while(per_get_few_bits(pd, 1) >= 0); - - rv.code = RC_OK; - rv.consumed = pd->moved; - - return rv; -} - -static int -uper_ugot_refill(asn_per_data_t *pd) { - uper_ugot_key *arg = pd->refill_key; - ssize_t next_chunk_bytes, next_chunk_bits; - ssize_t avail; - - asn_per_data_t *oldpd = &arg->oldpd; - - ASN_DEBUG("REFILLING pd->moved=%ld, oldpd->moved=%ld", - (long)pd->moved, (long)oldpd->moved); - - /* Advance our position to where pd is */ - oldpd->buffer = pd->buffer; - oldpd->nboff = pd->nboff; - oldpd->nbits -= pd->moved - arg->ot_moved; - oldpd->moved += pd->moved - arg->ot_moved; - arg->ot_moved = pd->moved; - - if(arg->unclaimed) { - /* Refill the container */ - if(per_get_few_bits(oldpd, 1)) - return -1; - if(oldpd->nboff == 0) { - assert(0); - return -1; - } - pd->buffer = oldpd->buffer; - pd->nboff = oldpd->nboff - 1; - pd->nbits = oldpd->nbits; - ASN_DEBUG("UNCLAIMED <- return from (pd->moved=%ld)", - (long)pd->moved); - return 0; - } - - if(!arg->repeat) { - ASN_DEBUG("Want more but refill doesn't have it"); - return -1; - } - - next_chunk_bytes = uper_get_length(oldpd, -1, 0, &arg->repeat); - ASN_DEBUG("Open type LENGTH %ld bytes at off %ld, repeat %ld", - (long)next_chunk_bytes, (long)oldpd->moved, (long)arg->repeat); - if(next_chunk_bytes < 0) return -1; - if(next_chunk_bytes == 0) { - pd->refill = 0; /* No more refills, naturally */ - assert(!arg->repeat); /* Implementation guarantee */ - } - next_chunk_bits = next_chunk_bytes << 3; - avail = oldpd->nbits - oldpd->nboff; - if(avail >= next_chunk_bits) { - pd->nbits = oldpd->nboff + next_chunk_bits; - arg->unclaimed = 0; - ASN_DEBUG("!+Parent frame %ld bits, alloting %ld [%ld..%ld] (%ld)", - (long)next_chunk_bits, (long)oldpd->moved, - (long)oldpd->nboff, (long)oldpd->nbits, - (long)(oldpd->nbits - oldpd->nboff)); - } else { - pd->nbits = oldpd->nbits; - arg->unclaimed = next_chunk_bits - avail; - ASN_DEBUG("!-Parent frame %ld, require %ld, will claim %ld", - (long)avail, (long)next_chunk_bits, - (long)arg->unclaimed); - } - pd->buffer = oldpd->buffer; - pd->nboff = oldpd->nboff; - ASN_DEBUG("Refilled pd%s old%s", - asn_bit_data_string(pd), asn_bit_data_string(oldpd)); - return 0; -} - -static int -per_skip_bits(asn_per_data_t *pd, int skip_nbits) { - int hasNonZeroBits = 0; - while(skip_nbits > 0) { - int skip; - - /* per_get_few_bits() is more efficient when nbits <= 24 */ - if(skip_nbits < 24) - skip = skip_nbits; - else - skip = 24; - skip_nbits -= skip; - - switch(per_get_few_bits(pd, skip)) { - case -1: return -1; /* Starving */ - case 0: continue; /* Skipped empty space */ - default: hasNonZeroBits = 1; continue; - } - } - return hasNonZeroBits; -} - -static asn_dec_rval_t -aper_open_type_get_simple(const asn_codec_ctx_t *ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, asn_per_data_t *pd) { - asn_dec_rval_t rv; - ssize_t chunk_bytes; - int repeat; - uint8_t *buf = 0; - size_t bufLen = 0; - size_t bufSize = 0; - asn_per_data_t spd; - size_t padding; - - ASN__STACK_OVERFLOW_CHECK(ctx); - - ASN_DEBUG("Getting open type %s...", td->name); - - do { - chunk_bytes = aper_get_length(pd, -1, -1, &repeat); - if(chunk_bytes < 0) { - FREEMEM(buf); - ASN__DECODE_STARVED; - } - if(bufLen + chunk_bytes > bufSize) { - void *ptr; - bufSize = chunk_bytes + (bufSize << 2); - ptr = REALLOC(buf, bufSize); - if(!ptr) { - FREEMEM(buf); - ASN__DECODE_FAILED; - } - buf = ptr; - } - if(per_get_many_bits(pd, buf + bufLen, 0, chunk_bytes << 3)) { - FREEMEM(buf); - ASN__DECODE_STARVED; - } - bufLen += chunk_bytes; - } while(repeat); - - ASN_DEBUG("Getting open type %s encoded in %ld bytes", td->name, - (long)bufLen); - - memset(&spd, 0, sizeof(spd)); - spd.buffer = buf; - spd.nbits = bufLen << 3; - - ASN_DEBUG_INDENT_ADD(+4); - rv = td->op->aper_decoder(ctx, td, constraints, sptr, &spd); - ASN_DEBUG_INDENT_ADD(-4); - - if(rv.code == RC_OK) { - /* Check padding validity */ - padding = spd.nbits - spd.nboff; - if (((padding > 0 && padding < 8) || - /* X.691#10.1.3 */ - (spd.nboff == 0 && spd.nbits == 8 && spd.buffer == buf)) && - per_get_few_bits(&spd, padding) == 0) { - /* Everything is cool */ - FREEMEM(buf); - return rv; - } - FREEMEM(buf); - if(padding >= 8) { - ASN_DEBUG("Too large padding %d in open type", (int)padding); - ASN__DECODE_FAILED; - } else { - ASN_DEBUG("No padding"); - } - } else { - FREEMEM(buf); - /* rv.code could be RC_WMORE, nonsense in this context */ - rv.code = RC_FAIL; /* Noone would give us more */ - } - - return rv; -} - -int -aper_open_type_put(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_per_outp_t *po) { - void *buf; - void *bptr; - ssize_t size; - size_t toGo; - - ASN_DEBUG("Open type put %s ...", td->name); - - size = aper_encode_to_new_buffer(td, constraints, sptr, &buf); - if(size <= 0) return -1; - - for(bptr = buf, toGo = size; toGo;) { - ssize_t maySave = aper_put_length(po, -1, toGo); - if(maySave < 0) break; - if(per_put_many_bits(po, bptr, maySave * 8)) break; - bptr = (char *)bptr + maySave; - toGo -= maySave; - } - - FREEMEM(buf); - if(toGo) return -1; - - ASN_DEBUG("Open type put %s of length %ld + overhead (1byte?)", - td->name, size); - - return 0; -} - -asn_dec_rval_t -aper_open_type_get(const asn_codec_ctx_t *ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - void **sptr, asn_per_data_t *pd) { - - return aper_open_type_get_simple(ctx, td, constraints, sptr, pd); -} - -int -aper_open_type_skip(const asn_codec_ctx_t *ctx, asn_per_data_t *pd) { - asn_TYPE_descriptor_t s_td; - asn_dec_rval_t rv; - asn_TYPE_operation_t op_t; - - memset(&op_t, 0, sizeof(op_t)); - s_td.name = ""; - s_td.op = &op_t; - s_td.op->aper_decoder = uper_sot_suck; - - rv = aper_open_type_get(ctx, &s_td, 0, 0, pd); - if(rv.code != RC_OK) - return -1; - else - return 0; -} - - diff --git a/e2sim/previous/e2apv1sim/ASN1c/per_opentype.h b/e2sim/previous/e2apv1sim/ASN1c/per_opentype.h deleted file mode 100644 index 1493b2d..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/per_opentype.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Copyright (c) 2007-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef _PER_OPENTYPE_H_ -#define _PER_OPENTYPE_H_ - -#ifdef __cplusplus -extern "C" { -#endif - -asn_dec_rval_t uper_open_type_get(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - void **sptr, asn_per_data_t *pd); - -int uper_open_type_skip(const asn_codec_ctx_t *opt_codec_ctx, - asn_per_data_t *pd); - -/* - * X.691 (2015/08), #11.2 - * Returns -1 if error is encountered. 0 if all OK. - */ -int uper_open_type_put(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_per_outp_t *po); - -asn_dec_rval_t aper_open_type_get(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - void **sptr, asn_per_data_t *pd); - - -int aper_open_type_skip(const asn_codec_ctx_t *opt_codec_ctx, asn_per_data_t *pd); - -int aper_open_type_put(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_per_outp_t *po); - -#ifdef __cplusplus -} -#endif - -#endif /* _PER_OPENTYPE_H_ */ diff --git a/e2sim/previous/e2apv1sim/ASN1c/per_support.c b/e2sim/previous/e2apv1sim/ASN1c/per_support.c deleted file mode 100644 index 2285677..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/per_support.c +++ /dev/null @@ -1,489 +0,0 @@ -/* - * Copyright (c) 2005-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include - -/* - * X.691-201508 #10.9 General rules for encoding a length determinant. - * Get the optionally constrained length "n" from the stream. - */ -ssize_t -uper_get_length(asn_per_data_t *pd, int ebits, size_t lower_bound, - int *repeat) { - ssize_t value; - - *repeat = 0; - - /* #11.9.4.1 Encoding if constrained (according to effective bits) */ - if(ebits >= 0 && ebits <= 16) { - value = per_get_few_bits(pd, ebits); - if(value >= 0) value += lower_bound; - return value; - } - - value = per_get_few_bits(pd, 8); - if((value & 0x80) == 0) { /* #11.9.3.6 */ - return (value & 0x7F); - } else if((value & 0x40) == 0) { /* #11.9.3.7 */ - /* bit 8 ... set to 1 and bit 7 ... set to zero */ - value = ((value & 0x3f) << 8) | per_get_few_bits(pd, 8); - return value; /* potential -1 from per_get_few_bits passes through. */ - } else if(value < 0) { - ASN_DEBUG("END of stream reached for PER"); - return -1; - } - value &= 0x3f; /* this is "m" from X.691, #11.9.3.8 */ - if(value < 1 || value > 4) { - return -1; /* Prohibited by #11.9.3.8 */ - } - *repeat = 1; - return (16384 * value); -} - -/* - * Get the normally small length "n". - * This procedure used to decode length of extensions bit-maps - * for SET and SEQUENCE types. - */ -ssize_t -uper_get_nslength(asn_per_data_t *pd) { - ssize_t length; - - ASN_DEBUG("Getting normally small length"); - - if(per_get_few_bits(pd, 1) == 0) { - length = per_get_few_bits(pd, 6) + 1; - if(length <= 0) return -1; - ASN_DEBUG("l=%d", (int)length); - return length; - } else { - int repeat; - length = uper_get_length(pd, -1, 0, &repeat); - if(length >= 0 && !repeat) return length; - return -1; /* Error, or do not support >16K extensions */ - } -} - -/* - * Get the normally small non-negative whole number. - * X.691, #10.6 - */ -ssize_t -uper_get_nsnnwn(asn_per_data_t *pd) { - ssize_t value; - - value = per_get_few_bits(pd, 7); - if(value & 64) { /* implicit (value < 0) */ - value &= 63; - value <<= 2; - value |= per_get_few_bits(pd, 2); - if(value & 128) /* implicit (value < 0) */ - return -1; - if(value == 0) - return 0; - if(value >= 3) - return -1; - value = per_get_few_bits(pd, 8 * value); - return value; - } - - return value; -} - -/* - * X.691-11/2008, #11.6 - * Encoding of a normally small non-negative whole number - */ -int -uper_put_nsnnwn(asn_per_outp_t *po, int n) { - int bytes; - - if(n <= 63) { - if(n < 0) return -1; - return per_put_few_bits(po, n, 7); - } - if(n < 256) - bytes = 1; - else if(n < 65536) - bytes = 2; - else if(n < 256 * 65536) - bytes = 3; - else - return -1; /* This is not a "normally small" value */ - if(per_put_few_bits(po, bytes, 8)) - return -1; - - return per_put_few_bits(po, n, 8 * bytes); -} - - -/* X.691-2008/11, #11.5.6 -> #11.3 */ -int uper_get_constrained_whole_number(asn_per_data_t *pd, unsigned long *out_value, int nbits) { - unsigned long lhalf; /* Lower half of the number*/ - long half; - - if(nbits <= 31) { - half = per_get_few_bits(pd, nbits); - if(half < 0) return -1; - *out_value = half; - return 0; - } - - if((size_t)nbits > 8 * sizeof(*out_value)) - return -1; /* RANGE */ - - half = per_get_few_bits(pd, 31); - if(half < 0) return -1; - - if(uper_get_constrained_whole_number(pd, &lhalf, nbits - 31)) - return -1; - - *out_value = ((unsigned long)half << (nbits - 31)) | lhalf; - return 0; -} - - -/* X.691-2008/11, #11.5.6 -> #11.3 */ -int -uper_put_constrained_whole_number_u(asn_per_outp_t *po, unsigned long v, - int nbits) { - if(nbits <= 31) { - return per_put_few_bits(po, v, nbits); - } else { - /* Put higher portion first, followed by lower 31-bit */ - if(uper_put_constrained_whole_number_u(po, v >> 31, nbits - 31)) - return -1; - return per_put_few_bits(po, v, 31); - } -} - -/* - * X.691 (08/2015) #11.9 "General rules for encoding a length determinant" - * Put the length "n" (or part of it) into the stream. - */ -ssize_t -uper_put_length(asn_per_outp_t *po, size_t length, int *need_eom) { - int dummy = 0; - if(!need_eom) need_eom = &dummy; - - if(length <= 127) { /* #11.9.3.6 */ - *need_eom = 0; - return per_put_few_bits(po, length, 8) - ? -1 : (ssize_t)length; - } else if(length < 16384) { /* #10.9.3.7 */ - *need_eom = 0; - return per_put_few_bits(po, length|0x8000, 16) - ? -1 : (ssize_t)length; - } - - *need_eom = 0 == (length & 16383); - length >>= 14; - if(length > 4) { - *need_eom = 0; - length = 4; - } - - return per_put_few_bits(po, 0xC0 | length, 8) - ? -1 : (ssize_t)(length << 14); - -} - - -/* - * Put the normally small length "n" into the stream. - * This procedure used to encode length of extensions bit-maps - * for SET and SEQUENCE types. - */ -int -uper_put_nslength(asn_per_outp_t *po, size_t length) { - if(length <= 64) { - /* #11.9.3.4 */ - if(length == 0) return -1; - return per_put_few_bits(po, length - 1, 7) ? -1 : 0; - } else { - int need_eom = 0; - if(uper_put_length(po, length, &need_eom) != (ssize_t)length - || need_eom) { - /* This might happen in case of >16K extensions */ - return -1; - } - } - - return 0; -} - -static int -per__long_range(long lb, long ub, unsigned long *range_r) { - unsigned long bounds_range; - if((ub < 0) == (lb < 0)) { - bounds_range = ub - lb; - } else if(lb < 0) { - assert(ub >= 0); - bounds_range = 1 + ((unsigned long)ub + (unsigned long)-(lb + 1)); - } else { - assert(!"Unreachable"); - return -1; - } - *range_r = bounds_range; - return 0; -} - -int -per_long_range_rebase(long v, long lb, long ub, unsigned long *output) { - unsigned long range; - - assert(lb <= ub); - - if(v < lb || v > ub || per__long_range(lb, ub, &range) < 0) { - /* Range error. */ - return -1; - } - - /* - * Fundamentally what we're doing is returning (v-lb). - * However, this triggers undefined behavior when the word width - * of signed (v) is the same as the size of unsigned (*output). - * In practice, it triggers the UndefinedSanitizer. Therefore we shall - * compute the ranges accurately to avoid C's undefined behavior. - */ - if((v < 0) == (lb < 0)) { - *output = v-lb; - return 0; - } else if(v < 0) { - unsigned long rebased = 1 + (unsigned long)-(v+1) + (unsigned long)lb; - assert(rebased <= range); /* By construction */ - *output = rebased; - return 0; - } else if(lb < 0) { - unsigned long rebased = 1 + (unsigned long)-(lb+1) + (unsigned long)v; - assert(rebased <= range); /* By construction */ - *output = rebased; - return 0; - } else { - assert(!"Unreachable"); - return -1; - } -} - -int -per_long_range_unrebase(unsigned long inp, long lb, long ub, long *outp) { - unsigned long range; - - if(per__long_range(lb, ub, &range) != 0) { - return -1; - } - - if(inp > range) { - /* - * We can encode something in the given number of bits that technically - * exceeds the range. This is an avenue for security errors, - * so we don't allow that. - */ - return -1; - } - - if(inp <= LONG_MAX) { - *outp = (long)inp + lb; - } else { - *outp = (lb + LONG_MAX + 1) + (long)((inp - LONG_MAX) - 1); - } - - return 0; -} - -int32_t -aper_get_align(asn_per_data_t *pd) { - - if(pd->nboff & 0x7) { - ASN_DEBUG("Aligning %ld bits", 8 - ((unsigned long)pd->nboff & 0x7)); - return per_get_few_bits(pd, 8 - (pd->nboff & 0x7)); - } - return 0; -} - -ssize_t -aper_get_length(asn_per_data_t *pd, int range, int ebits, int *repeat) { - ssize_t value; - - *repeat = 0; - - if (range <= 65536 && range >= 0) - return aper_get_nsnnwn(pd, range); - - if (aper_get_align(pd) < 0) - return -1; - - if(ebits >= 0) return per_get_few_bits(pd, ebits); - - value = per_get_few_bits(pd, 8); - if(value < 0) return -1; - if((value & 128) == 0) /* #10.9.3.6 */ - return (value & 0x7F); - if((value & 64) == 0) { /* #10.9.3.7 */ - value = ((value & 63) << 8) | per_get_few_bits(pd, 8); - if(value < 0) return -1; - return value; - } - value &= 63; /* this is "m" from X.691, #10.9.3.8 */ - if(value < 1 || value > 4) - return -1; - *repeat = 1; - return (16384 * value); -} - -ssize_t -aper_get_nslength(asn_per_data_t *pd) { - ssize_t length; - - ASN_DEBUG("Getting normally small length"); - - if(per_get_few_bits(pd, 1) == 0) { - length = per_get_few_bits(pd, 6) + 1; - if(length <= 0) return -1; - ASN_DEBUG("l=%ld", length); - return length; - } else { - int repeat; - length = aper_get_length(pd, -1, -1, &repeat); - if(length >= 0 && !repeat) return length; - return -1; /* Error, or do not support >16K extensions */ - } -} - -ssize_t -aper_get_nsnnwn(asn_per_data_t *pd, int range) { - ssize_t value; - int bytes = 0; - - ASN_DEBUG("getting nsnnwn with range %d", range); - - if(range <= 255) { - int i; - - if (range < 0) return -1; - /* 1 -> 8 bits */ - for (i = 1; i <= 8; i++) { - int upper = 1 << i; - if (upper >= range) - break; - } - value = per_get_few_bits(pd, i); - return value; - } else if (range == 256){ - /* 1 byte */ - bytes = 1; - } else if (range <= 65536) { - /* 2 bytes */ - bytes = 2; - } else { - return -1; - } - if (aper_get_align(pd) < 0) - return -1; - value = per_get_few_bits(pd, 8 * bytes); - return value; -} - -int aper_put_align(asn_per_outp_t *po) { - - if(po->nboff & 0x7) { - ASN_DEBUG("Aligning %ld bits", 8 - ((unsigned long)po->nboff & 0x7)); - if(per_put_few_bits(po, 0x00, (8 - (po->nboff & 0x7)))) - return -1; - } - return 0; -} - -ssize_t -aper_put_length(asn_per_outp_t *po, int range, size_t length) { - - ASN_DEBUG("APER put length %zu with range %d", length, range); - - /* 10.9 X.691 Note 2 */ - if (range <= 65536 && range >= 0) - return aper_put_nsnnwn(po, range, length); - - if (aper_put_align(po) < 0) - return -1; - - if(length <= 127) /* #10.9.3.6 */{ - return per_put_few_bits(po, length, 8) - ? -1 : (ssize_t)length; - } - else if(length < 16384) /* #10.9.3.7 */ - return per_put_few_bits(po, length|0x8000, 16) - ? -1 : (ssize_t)length; - - length >>= 14; - if(length > 4) length = 4; - - return per_put_few_bits(po, 0xC0 | length, 8) - ? -1 : (ssize_t)(length << 14); -} - - -int -aper_put_nslength(asn_per_outp_t *po, size_t length) { - - if(length <= 64) { - /* #10.9.3.4 */ - if(length == 0) return -1; - return per_put_few_bits(po, length-1, 7) ? -1 : 0; - } else { - if(aper_put_length(po, -1, length) != (ssize_t)length) { - /* This might happen in case of >16K extensions */ - return -1; - } - } - - return 0; -} - -int -aper_put_nsnnwn(asn_per_outp_t *po, int range, int number) { - int bytes; - - ASN_DEBUG("aper put nsnnwn %d with range %d", number, range); - /* 10.5.7.1 X.691 */ - if(range < 0) { - int i; - for (i = 1; ; i++) { - int bits = 1 << (8 * i); - if (number <= bits) - break; - } - bytes = i; - assert(i <= 4); - } - if(range <= 255) { - int i; - for (i = 1; i <= 8; i++) { - int bits = 1 << i; - if (range <= bits) - break; - } - return per_put_few_bits(po, number, i); - } else if(range == 256) { - bytes = 1; - } else if(range <= 65536) { - bytes = 2; - } else { /* Ranges > 64K */ - int i; - for (i = 1; ; i++) { - int bits = 1 << (8 * i); - if (range <= bits) - break; - } - assert(i <= 4); - bytes = i; - } - if(aper_put_align(po) < 0) /* Aligning on octet */ - return -1; -/* if(per_put_few_bits(po, bytes, 8)) - return -1; -*/ - return per_put_few_bits(po, number, 8 * bytes); -} diff --git a/e2sim/previous/e2apv1sim/ASN1c/per_support.h b/e2sim/previous/e2apv1sim/ASN1c/per_support.h deleted file mode 100644 index 23079c9..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/per_support.h +++ /dev/null @@ -1,127 +0,0 @@ -/* - * Copyright (c) 2005-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef _PER_SUPPORT_H_ -#define _PER_SUPPORT_H_ - -#include /* Platform-specific types */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * Pre-computed PER constraints. - */ -typedef struct asn_per_constraint_s { - enum asn_per_constraint_flags { - APC_UNCONSTRAINED = 0x0, /* No PER visible constraints */ - APC_SEMI_CONSTRAINED = 0x1, /* Constrained at "lb" */ - APC_CONSTRAINED = 0x2, /* Fully constrained */ - APC_EXTENSIBLE = 0x4 /* May have extension */ - } flags; - int range_bits; /* Full number of bits in the range */ - int effective_bits; /* Effective bits */ - long lower_bound; /* "lb" value */ - long upper_bound; /* "ub" value */ -} asn_per_constraint_t; -typedef struct asn_per_constraints_s { - asn_per_constraint_t value; - asn_per_constraint_t size; - int (*value2code)(unsigned int value); - int (*code2value)(unsigned int code); -} asn_per_constraints_t; - -/* Temporary compatibility layer. Will get removed. */ -typedef struct asn_bit_data_s asn_per_data_t; -#define per_get_few_bits(data, bits) asn_get_few_bits(data, bits) -#define per_get_undo(data, bits) asn_get_undo(data, bits) -#define per_get_many_bits(data, dst, align, bits) \ - asn_get_many_bits(data, dst, align, bits) - -/* - * X.691 (08/2015) #11.9 "General rules for encoding a length determinant" - * Get the length "n" from the Unaligned PER stream. - */ -ssize_t uper_get_length(asn_per_data_t *pd, int effective_bound_bits, - size_t lower_bound, int *repeat); - -ssize_t aper_get_length(asn_per_data_t *pd, int range, - int effective_bound_bits, int *repeat); - -/* - * Get the normally small length "n". - */ -ssize_t uper_get_nslength(asn_per_data_t *pd); -ssize_t aper_get_nslength(asn_per_data_t *pd); - -/* - * Get the normally small non-negative whole number. - */ -ssize_t uper_get_nsnnwn(asn_per_data_t *pd); -ssize_t aper_get_nsnnwn(asn_per_data_t *pd, int range); - -/* X.691-2008/11, #11.5.6 */ -int uper_get_constrained_whole_number(asn_per_data_t *pd, unsigned long *v, int nbits); - - -/* Temporary compatibility layer. Will get removed. */ -typedef struct asn_bit_outp_s asn_per_outp_t; -#define per_put_few_bits(out, bits, obits) asn_put_few_bits(out, bits, obits) -#define per_put_many_bits(out, src, nbits) asn_put_many_bits(out, src, nbits) -#define per_put_aligned_flush(out) asn_put_aligned_flush(out) - - -/* - * Rebase the given value as an offset into the range specified by the - * lower bound (lb) and upper bound (ub). - * RETURN VALUES: - * -1: Conversion failed due to range problems. - * 0: Conversion was successful. - */ -int per_long_range_rebase(long v, long lb, long ub, unsigned long *output); -/* The inverse operation: restores the value by the offset and its bounds. */ -int per_long_range_unrebase(unsigned long inp, long lb, long ub, long *outp); - -/* X.691-2008/11, #11.5 */ -int uper_put_constrained_whole_number_u(asn_per_outp_t *po, unsigned long v, int nbits); - -/* - * X.691 (08/2015) #11.9 "General rules for encoding a length determinant" - * Put the length "whole_length" to the Unaligned PER stream. - * If (opt_need_eom) is given, it will be set to 1 if final 0-length is needed. - * In that case, invoke uper_put_length(po, 0, 0) after encoding the last block. - * This function returns the number of units which may be flushed - * in the next units saving iteration. - */ -ssize_t uper_put_length(asn_per_outp_t *po, size_t whole_length, - int *opt_need_eom); - -ssize_t aper_put_length(asn_per_outp_t *po, int range, size_t length); - -/* Align the current bit position to octet bundary */ -int aper_put_align(asn_per_outp_t *po); -int32_t aper_get_align(asn_per_data_t *pd); - -/* - * Put the normally small length "n" to the Unaligned PER stream. - * Returns 0 or -1. - */ -int uper_put_nslength(asn_per_outp_t *po, size_t length); - -int aper_put_nslength(asn_per_outp_t *po, size_t length); - -/* - * Put the normally small non-negative whole number. - */ -int uper_put_nsnnwn(asn_per_outp_t *po, int n); - -int aper_put_nsnnwn(asn_per_outp_t *po, int range, int number); - -#ifdef __cplusplus -} -#endif - -#endif /* _PER_SUPPORT_H_ */ diff --git a/e2sim/previous/e2apv1sim/ASN1c/xer_decoder.c b/e2sim/previous/e2apv1sim/ASN1c/xer_decoder.c deleted file mode 100644 index 5b87703..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/xer_decoder.c +++ /dev/null @@ -1,369 +0,0 @@ -/* - * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include /* XER/XML parsing support */ - - -/* - * Decode the XER encoding of a given type. - */ -asn_dec_rval_t -xer_decode(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **struct_ptr, - const void *buffer, size_t size) { - asn_codec_ctx_t s_codec_ctx; - - /* - * Stack checker requires that the codec context - * must be allocated on the stack. - */ - if(opt_codec_ctx) { - if(opt_codec_ctx->max_stack_size) { - s_codec_ctx = *opt_codec_ctx; - opt_codec_ctx = &s_codec_ctx; - } - } else { - /* If context is not given, be security-conscious anyway */ - memset(&s_codec_ctx, 0, sizeof(s_codec_ctx)); - s_codec_ctx.max_stack_size = ASN__DEFAULT_STACK_MAX; - opt_codec_ctx = &s_codec_ctx; - } - - /* - * Invoke type-specific decoder. - */ - return td->op->xer_decoder(opt_codec_ctx, td, struct_ptr, 0, buffer, size); -} - - - -struct xer__cb_arg { - pxml_chunk_type_e chunk_type; - size_t chunk_size; - const void *chunk_buf; - int callback_not_invoked; -}; - -static int -xer__token_cb(pxml_chunk_type_e type, const void *_chunk_data, size_t _chunk_size, void *key) { - struct xer__cb_arg *arg = (struct xer__cb_arg *)key; - arg->chunk_type = type; - arg->chunk_size = _chunk_size; - arg->chunk_buf = _chunk_data; - arg->callback_not_invoked = 0; - return -1; /* Terminate the XML parsing */ -} - -/* - * Fetch the next token from the XER/XML stream. - */ -ssize_t -xer_next_token(int *stateContext, const void *buffer, size_t size, pxer_chunk_type_e *ch_type) { - struct xer__cb_arg arg; - int new_stateContext = *stateContext; - ssize_t ret; - - arg.callback_not_invoked = 1; - ret = pxml_parse(&new_stateContext, buffer, size, xer__token_cb, &arg); - if(ret < 0) return -1; - if(arg.callback_not_invoked) { - assert(ret == 0); /* No data was consumed */ - *ch_type = PXER_WMORE; - return 0; /* Try again with more data */ - } else { - assert(arg.chunk_size); - assert(arg.chunk_buf == buffer); - } - - /* - * Translate the XML chunk types into more convenient ones. - */ - switch(arg.chunk_type) { - case PXML_TEXT: - *ch_type = PXER_TEXT; - break; - case PXML_TAG: - *ch_type = PXER_WMORE; - return 0; /* Want more */ - case PXML_TAG_END: - *ch_type = PXER_TAG; - break; - case PXML_COMMENT: - case PXML_COMMENT_END: - *ch_type = PXER_COMMENT; - break; - } - - *stateContext = new_stateContext; - return arg.chunk_size; -} - -#define CSLASH 0x2f /* '/' */ -#define LANGLE 0x3c /* '<' */ -#define RANGLE 0x3e /* '>' */ - -xer_check_tag_e -xer_check_tag(const void *buf_ptr, int size, const char *need_tag) { - const char *buf = (const char *)buf_ptr; - const char *end; - xer_check_tag_e ct = XCT_OPENING; - - if(size < 2 || buf[0] != LANGLE || buf[size-1] != RANGLE) { - if(size >= 2) - ASN_DEBUG("Broken XML tag: \"%c...%c\"", - buf[0], buf[size - 1]); - return XCT_BROKEN; - } - - /* - * Determine the tag class. - */ - if(buf[1] == CSLASH) { - buf += 2; /* advance past "" */ - ct = XCT_CLOSING; - if(size > 0 && buf[size-1] == CSLASH) - return XCT_BROKEN; /* */ - } else { - buf++; /* advance past "<" */ - size -= 2; /* strip "<" and ">" */ - if(size > 0 && buf[size-1] == CSLASH) { - ct = XCT_BOTH; - size--; /* One more, for "/" */ - } - } - - /* Sometimes we don't care about the tag */ - if(!need_tag || !*need_tag) - return (xer_check_tag_e)(XCT__UNK__MASK | ct); - - /* - * Determine the tag name. - */ - for(end = buf + size; buf < end; buf++, need_tag++) { - int b = *buf, n = *need_tag; - if(b != n) { - if(n == 0) { - switch(b) { - case 0x09: case 0x0a: case 0x0c: case 0x0d: - case 0x20: - /* "": whitespace is normal */ - return ct; - } - } - return (xer_check_tag_e)(XCT__UNK__MASK | ct); - } - if(b == 0) - return XCT_BROKEN; /* Embedded 0 in buf?! */ - } - if(*need_tag) - return (xer_check_tag_e)(XCT__UNK__MASK | ct); - - return ct; -} - - -#undef ADVANCE -#define ADVANCE(num_bytes) do { \ - size_t num = (num_bytes); \ - buf_ptr = ((const char *)buf_ptr) + num; \ - size -= num; \ - consumed_myself += num; \ - } while(0) - -#undef RETURN -#define RETURN(_code) do { \ - rval.code = _code; \ - rval.consumed = consumed_myself; \ - if(rval.code != RC_OK) \ - ASN_DEBUG("Failed with %d", rval.code); \ - return rval; \ - } while(0) - -#define XER_GOT_BODY(chunk_buf, chunk_size, size) do { \ - ssize_t converted_size = body_receiver \ - (struct_key, chunk_buf, chunk_size, \ - (size_t)chunk_size < size); \ - if(converted_size == -1) RETURN(RC_FAIL); \ - if(converted_size == 0 \ - && size == (size_t)chunk_size) \ - RETURN(RC_WMORE); \ - chunk_size = converted_size; \ - } while(0) -#define XER_GOT_EMPTY() do { \ - if(body_receiver(struct_key, 0, 0, size > 0) == -1) \ - RETURN(RC_FAIL); \ - } while(0) - -/* - * Generalized function for decoding the primitive values. - */ -asn_dec_rval_t -xer_decode_general(const asn_codec_ctx_t *opt_codec_ctx, - asn_struct_ctx_t *ctx, /* Type decoder context */ - void *struct_key, - const char *xml_tag, /* Expected XML tag */ - const void *buf_ptr, size_t size, - int (*opt_unexpected_tag_decoder) - (void *struct_key, const void *chunk_buf, size_t chunk_size), - ssize_t (*body_receiver) - (void *struct_key, const void *chunk_buf, size_t chunk_size, - int have_more) - ) { - - asn_dec_rval_t rval; - ssize_t consumed_myself = 0; - - (void)opt_codec_ctx; - - /* - * Phases of XER/XML processing: - * Phase 0: Check that the opening tag matches our expectations. - * Phase 1: Processing body and reacting on closing tag. - */ - if(ctx->phase > 1) RETURN(RC_FAIL); - for(;;) { - pxer_chunk_type_e ch_type; /* XER chunk type */ - ssize_t ch_size; /* Chunk size */ - xer_check_tag_e tcv; /* Tag check value */ - - /* - * Get the next part of the XML stream. - */ - ch_size = xer_next_token(&ctx->context, buf_ptr, size, - &ch_type); - if(ch_size == -1) { - RETURN(RC_FAIL); - } else { - switch(ch_type) { - case PXER_WMORE: - RETURN(RC_WMORE); - case PXER_COMMENT: /* Got XML comment */ - ADVANCE(ch_size); /* Skip silently */ - continue; - case PXER_TEXT: - if(ctx->phase == 0) { - /* - * We have to ignore whitespace here, - * but in order to be forward compatible - * with EXTENDED-XER (EMBED-VALUES, #25) - * any text is just ignored here. - */ - } else { - XER_GOT_BODY(buf_ptr, ch_size, size); - } - ADVANCE(ch_size); - continue; - case PXER_TAG: - break; /* Check the rest down there */ - } - } - - assert(ch_type == PXER_TAG && size); - - tcv = xer_check_tag(buf_ptr, ch_size, xml_tag); - /* - * Phase 0: - * Expecting the opening tag - * for the type being processed. - * Phase 1: - * Waiting for the closing XML tag. - */ - switch(tcv) { - case XCT_BOTH: - if(ctx->phase) break; - /* Finished decoding of an empty element */ - XER_GOT_EMPTY(); - ADVANCE(ch_size); - ctx->phase = 2; /* Phase out */ - RETURN(RC_OK); - case XCT_OPENING: - if(ctx->phase) break; - ADVANCE(ch_size); - ctx->phase = 1; /* Processing body phase */ - continue; - case XCT_CLOSING: - if(!ctx->phase) break; - ADVANCE(ch_size); - ctx->phase = 2; /* Phase out */ - RETURN(RC_OK); - case XCT_UNKNOWN_BO: - /* - * Certain tags in the body may be expected. - */ - if(opt_unexpected_tag_decoder - && opt_unexpected_tag_decoder(struct_key, - buf_ptr, ch_size) >= 0) { - /* Tag's processed fine */ - ADVANCE(ch_size); - if(!ctx->phase) { - /* We are not expecting - * the closing tag anymore. */ - ctx->phase = 2; /* Phase out */ - RETURN(RC_OK); - } - continue; - } - /* Fall through */ - default: - break; /* Unexpected tag */ - } - - ASN_DEBUG("Unexpected XML tag (expected \"%s\")", xml_tag); - break; /* Dark and mysterious things have just happened */ - } - - RETURN(RC_FAIL); -} - - -size_t -xer_whitespace_span(const void *chunk_buf, size_t chunk_size) { - const char *p = (const char *)chunk_buf; - const char *pend = p + chunk_size; - - for(; p < pend; p++) { - switch(*p) { - /* X.693, #8.1.4 - * HORISONTAL TAB (9) - * LINE FEED (10) - * CARRIAGE RETURN (13) - * SPACE (32) - */ - case 0x09: case 0x0a: case 0x0d: case 0x20: - continue; - default: - break; - } - break; - } - return (p - (const char *)chunk_buf); -} - -/* - * This is a vastly simplified, non-validating XML tree skipper. - */ -int -xer_skip_unknown(xer_check_tag_e tcv, ber_tlv_len_t *depth) { - assert(*depth > 0); - switch(tcv) { - case XCT_BOTH: - case XCT_UNKNOWN_BO: - /* These negate each other. */ - return 0; - case XCT_OPENING: - case XCT_UNKNOWN_OP: - ++(*depth); - return 0; - case XCT_CLOSING: - case XCT_UNKNOWN_CL: - if(--(*depth) == 0) - return (tcv == XCT_CLOSING) ? 2 : 1; - return 0; - default: - return -1; - } -} diff --git a/e2sim/previous/e2apv1sim/ASN1c/xer_decoder.h b/e2sim/previous/e2apv1sim/ASN1c/xer_decoder.h deleted file mode 100644 index b951c41..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/xer_decoder.h +++ /dev/null @@ -1,106 +0,0 @@ -/*- - * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef _XER_DECODER_H_ -#define _XER_DECODER_H_ - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -struct asn_TYPE_descriptor_s; /* Forward declaration */ - -/* - * The XER decoder of any ASN.1 type. May be invoked by the application. - * Decodes CANONICAL-XER and BASIC-XER. - */ -asn_dec_rval_t xer_decode( - const struct asn_codec_ctx_s *opt_codec_ctx, - const struct asn_TYPE_descriptor_s *type_descriptor, - void **struct_ptr, /* Pointer to a target structure's pointer */ - const void *buffer, /* Data to be decoded */ - size_t size /* Size of data buffer */ -); - -/* - * Type of the type-specific XER decoder function. - */ -typedef asn_dec_rval_t(xer_type_decoder_f)( - const asn_codec_ctx_t *opt_codec_ctx, - const struct asn_TYPE_descriptor_s *type_descriptor, void **struct_ptr, - const char *opt_mname, /* Member name */ - const void *buf_ptr, size_t size); - -/******************************* - * INTERNALLY USEFUL FUNCTIONS * - *******************************/ - -/* - * Generalized function for decoding the primitive values. - * Used by more specialized functions, such as OCTET_STRING_decode_xer_utf8 - * and others. This function should not be used by applications, as its API - * is subject to changes. - */ -asn_dec_rval_t xer_decode_general( - const asn_codec_ctx_t *opt_codec_ctx, - asn_struct_ctx_t *ctx, /* Type decoder context */ - void *struct_key, /* Treated as opaque pointer */ - const char *xml_tag, /* Expected XML tag name */ - const void *buf_ptr, size_t size, - int (*opt_unexpected_tag_decoder)(void *struct_key, const void *chunk_buf, - size_t chunk_size), - ssize_t (*body_receiver)(void *struct_key, const void *chunk_buf, - size_t chunk_size, int have_more)); - - -/* - * Fetch the next XER (XML) token from the stream. - * The function returns the number of bytes occupied by the chunk type, - * returned in the _ch_type. The _ch_type is only set (and valid) when - * the return value is >= 0. - */ - typedef enum pxer_chunk_type { - PXER_WMORE, /* Chunk type is not clear, more data expected. */ - PXER_TAG, /* Complete XER tag */ - PXER_TEXT, /* Plain text between XER tags */ - PXER_COMMENT /* A comment, may be part of */ - } pxer_chunk_type_e; -ssize_t xer_next_token(int *stateContext, - const void *buffer, size_t size, pxer_chunk_type_e *_ch_type); - -/* - * This function checks the buffer against the tag name is expected to occur. - */ - typedef enum xer_check_tag { - XCT_BROKEN = 0, /* The tag is broken */ - XCT_OPENING = 1, /* This is the tag */ - XCT_CLOSING = 2, /* This is the tag */ - XCT_BOTH = 3, /* This is the tag */ - XCT__UNK__MASK = 4, /* Mask of everything unexpected */ - XCT_UNKNOWN_OP = 5, /* Unexpected tag */ - XCT_UNKNOWN_CL = 6, /* Unexpected tag */ - XCT_UNKNOWN_BO = 7 /* Unexpected tag */ - } xer_check_tag_e; -xer_check_tag_e xer_check_tag(const void *buf_ptr, int size, - const char *need_tag); - -/* - * Get the number of bytes consisting entirely of XER whitespace characters. - * RETURN VALUES: - * >=0: Number of whitespace characters in the string. - */ -size_t xer_whitespace_span(const void *chunk_buf, size_t chunk_size); - -/* - * Skip the series of anticipated extensions. - */ -int xer_skip_unknown(xer_check_tag_e tcv, ber_tlv_len_t *depth); - -#ifdef __cplusplus -} -#endif - -#endif /* _XER_DECODER_H_ */ diff --git a/e2sim/previous/e2apv1sim/ASN1c/xer_encoder.c b/e2sim/previous/e2apv1sim/ASN1c/xer_encoder.c deleted file mode 100644 index 4177ede..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/xer_encoder.c +++ /dev/null @@ -1,237 +0,0 @@ -/*- - * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include - -/* - * The XER encoder of any type. May be invoked by the application. - */ -asn_enc_rval_t -xer_encode(const asn_TYPE_descriptor_t *td, const void *sptr, - enum xer_encoder_flags_e xer_flags, asn_app_consume_bytes_f *cb, - void *app_key) { - asn_enc_rval_t er = {0, 0, 0}; - asn_enc_rval_t tmper; - const char *mname; - size_t mlen; - int xcan = (xer_flags & XER_F_CANONICAL) ? 1 : 2; - - if(!td || !sptr) goto cb_failed; - - mname = td->xml_tag; - mlen = strlen(mname); - - ASN__CALLBACK3("<", 1, mname, mlen, ">", 1); - - tmper = td->op->xer_encoder(td, sptr, 1, xer_flags, cb, app_key); - if(tmper.encoded == -1) return tmper; - er.encoded += tmper.encoded; - - ASN__CALLBACK3("\n", xcan); - - ASN__ENCODED_OK(er); -cb_failed: - ASN__ENCODE_FAILED; -} - -/* - * This is a helper function for xer_fprint, which directs all incoming data - * into the provided file descriptor. - */ -static int -xer__print2fp(const void *buffer, size_t size, void *app_key) { - FILE *stream = (FILE *)app_key; - - if(fwrite(buffer, 1, size, stream) != size) - return -1; - - return 0; -} - -int -xer_fprint(FILE *stream, const asn_TYPE_descriptor_t *td, const void *sptr) { - asn_enc_rval_t er = {0,0,0}; - - if(!stream) stream = stdout; - if(!td || !sptr) - return -1; - - er = xer_encode(td, sptr, XER_F_BASIC, xer__print2fp, stream); - if(er.encoded == -1) - return -1; - - return fflush(stream); -} - -struct xer_buffer { - char *buffer; - size_t buffer_size; - size_t allocated_size; -}; - -static int -xer__buffer_append(const void *buffer, size_t size, void *app_key) { - struct xer_buffer *xb = app_key; - - while(xb->buffer_size + size + 1 > xb->allocated_size) { - size_t new_size = 2 * (xb->allocated_size ? xb->allocated_size : 64); - char *new_buf = MALLOC(new_size); - if(!new_buf) return -1; - if (xb->buffer) { - memcpy(new_buf, xb->buffer, xb->buffer_size); - } - FREEMEM(xb->buffer); - xb->buffer = new_buf; - xb->allocated_size = new_size; - } - - memcpy(xb->buffer + xb->buffer_size, buffer, size); - xb->buffer_size += size; - xb->buffer[xb->buffer_size] = '\0'; - return 0; -} - -enum xer_equivalence_e -xer_equivalent(const struct asn_TYPE_descriptor_s *td, const void *struct1, - const void *struct2, FILE *opt_debug_stream) { - struct xer_buffer xb1 = {0, 0, 0}; - struct xer_buffer xb2 = {0, 0, 0}; - asn_enc_rval_t e1, e2; - asn_dec_rval_t rval; - void *sptr = NULL; - - if(!td || !struct1 || !struct2) { - if(opt_debug_stream) { - if(!td) fprintf(opt_debug_stream, "Type descriptor missing\n"); - if(!struct1) fprintf(opt_debug_stream, "Structure 1 missing\n"); - if(!struct2) fprintf(opt_debug_stream, "Structure 2 missing\n"); - } - return XEQ_FAILURE; - } - - e1 = xer_encode(td, struct1, XER_F_BASIC, xer__buffer_append, &xb1); - if(e1.encoded == -1) { - if(opt_debug_stream) { - fprintf(stderr, "XER Encoding of %s failed\n", td->name); - } - FREEMEM(xb1.buffer); - return XEQ_ENCODE1_FAILED; - } - - e2 = xer_encode(td, struct2, XER_F_BASIC, xer__buffer_append, &xb2); - if(e2.encoded == -1) { - if(opt_debug_stream) { - fprintf(stderr, "XER Encoding of %s failed\n", td->name); - } - FREEMEM(xb1.buffer); - FREEMEM(xb2.buffer); - return XEQ_ENCODE1_FAILED; - } - - if(xb1.buffer_size != xb2.buffer_size - || memcmp(xb1.buffer, xb2.buffer, xb1.buffer_size) != 0) { - if(opt_debug_stream) { - fprintf(opt_debug_stream, - "Structures XER-encoded into different byte streams:\n=== " - "Structure 1 ===\n%s\n=== Structure 2 ===\n%s\n", - xb1.buffer, xb2.buffer); - } - FREEMEM(xb1.buffer); - FREEMEM(xb2.buffer); - return XEQ_DIFFERENT; - } else { - if(opt_debug_stream) { - fprintf(opt_debug_stream, - "Both structures encoded into the same XER byte stream " - "of size %" ASN_PRI_SIZE ":\n%s", - xb1.buffer_size, xb1.buffer); - } - } - - rval = xer_decode(NULL, td, (void **)&sptr, xb1.buffer, - xb1.buffer_size); - switch(rval.code) { - case RC_OK: - break; - case RC_WMORE: - if(opt_debug_stream) { - fprintf(opt_debug_stream, - "Structure %s XER decode unexpectedly requires " - "more data:\n%s\n", - td->name, xb1.buffer); - } - /* Fall through */ - case RC_FAIL: - default: - if(opt_debug_stream) { - fprintf(opt_debug_stream, - "Structure %s XER decoding resulted in failure.\n", - td->name); - } - ASN_STRUCT_FREE(*td, sptr); - FREEMEM(xb1.buffer); - FREEMEM(xb2.buffer); - return XEQ_DECODE_FAILED; - } - - if(rval.consumed != xb1.buffer_size - && ((rval.consumed > xb1.buffer_size) - || xer_whitespace_span(xb1.buffer + rval.consumed, - xb1.buffer_size - rval.consumed) - != (xb1.buffer_size - rval.consumed))) { - if(opt_debug_stream) { - fprintf(opt_debug_stream, - "Round-trip decode of %s required less bytes (%" ASN_PRI_SIZE ") than " - "encoded (%" ASN_PRI_SIZE ")\n", - td->name, rval.consumed, xb1.buffer_size); - } - ASN_STRUCT_FREE(*td, sptr); - FREEMEM(xb1.buffer); - FREEMEM(xb2.buffer); - return XEQ_ROUND_TRIP_FAILED; - } - - /* - * Reuse xb2 to encode newly decoded structure. - */ - FREEMEM(xb2.buffer); - memset(&xb2, 0, sizeof(xb2)); - - e2 = xer_encode(td, sptr, XER_F_BASIC, xer__buffer_append, &xb2); - if(e2.encoded == -1) { - if(opt_debug_stream) { - fprintf(stderr, "XER Encoding of round-trip decode of %s failed\n", - td->name); - } - ASN_STRUCT_FREE(*td, sptr); - FREEMEM(xb1.buffer); - FREEMEM(xb2.buffer); - return XEQ_ROUND_TRIP_FAILED; - } - - ASN_STRUCT_FREE(*td, sptr); - sptr = 0; - - if(xb1.buffer_size != xb2.buffer_size - || memcmp(xb1.buffer, xb2.buffer, xb1.buffer_size) != 0) { - if(opt_debug_stream) { - fprintf(opt_debug_stream, - "XER Encoding of round-trip decode of %s resulted in " - "different byte stream:\n" - "=== Original ===\n%s\n" - "=== Round-tripped ===\n%s\n", - xb1.buffer, xb2.buffer, td->name); - } - FREEMEM(xb1.buffer); - FREEMEM(xb2.buffer); - return XEQ_ROUND_TRIP_FAILED; - } - - FREEMEM(xb1.buffer); - FREEMEM(xb2.buffer); - return XEQ_SUCCESS; -} - diff --git a/e2sim/previous/e2apv1sim/ASN1c/xer_encoder.h b/e2sim/previous/e2apv1sim/ASN1c/xer_encoder.h deleted file mode 100644 index 9d75922..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/xer_encoder.h +++ /dev/null @@ -1,83 +0,0 @@ -/*- - * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef _XER_ENCODER_H_ -#define _XER_ENCODER_H_ - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -struct asn_TYPE_descriptor_s; /* Forward declaration */ - -/* Flags used by the xer_encode() and (*xer_type_encoder_f), defined below */ -enum xer_encoder_flags_e { - /* Mode of encoding */ - XER_F_BASIC = 0x01, /* BASIC-XER (pretty-printing) */ - XER_F_CANONICAL = 0x02 /* Canonical XER (strict rules) */ -}; - -/* - * The XER encoder of any type. May be invoked by the application. - * Produces CANONICAL-XER and BASIC-XER depending on the (xer_flags). - */ -asn_enc_rval_t xer_encode(const struct asn_TYPE_descriptor_s *type_descriptor, - const void *struct_ptr, /* Structure to be encoded */ - enum xer_encoder_flags_e xer_flags, - asn_app_consume_bytes_f *consume_bytes_cb, - void *app_key /* Arbitrary callback argument */ -); - -/* - * The variant of the above function which dumps the BASIC-XER (XER_F_BASIC) - * output into the chosen file pointer. - * RETURN VALUES: - * 0: The structure is printed. - * -1: Problem printing the structure. - * WARNING: No sensible errno value is returned. - */ -int xer_fprint(FILE *stream, const struct asn_TYPE_descriptor_s *td, - const void *struct_ptr); - -/* - * A helper function that uses XER encoding/decoding to verify that: - * - Both structures encode into the same BASIC XER. - * - Both resulting XER byte streams can be decoded back. - * - Both decoded structures encode into the same BASIC XER (round-trip). - * All of this verifies equivalence between structures and a round-trip. - * ARGUMENTS: - * (opt_debug_stream) - If specified, prints ongoing details. - */ -enum xer_equivalence_e { - XEQ_SUCCESS, /* The only completely positive return value */ - XEQ_FAILURE, /* General failure */ - XEQ_ENCODE1_FAILED, /* First sructure XER encoding failed */ - XEQ_ENCODE2_FAILED, /* Second structure XER encoding failed */ - XEQ_DIFFERENT, /* Structures encoded into different XER */ - XEQ_DECODE_FAILED, /* Decode of the XER data failed */ - XEQ_ROUND_TRIP_FAILED /* Bad round-trip */ -}; -enum xer_equivalence_e xer_equivalent( - const struct asn_TYPE_descriptor_s *type_descriptor, const void *struct1, - const void *struct2, FILE *opt_debug_stream); - -/* - * Type of the generic XER encoder. - */ -typedef asn_enc_rval_t(xer_type_encoder_f)( - const struct asn_TYPE_descriptor_s *type_descriptor, - const void *struct_ptr, /* Structure to be encoded */ - int ilevel, /* Level of indentation */ - enum xer_encoder_flags_e xer_flags, - asn_app_consume_bytes_f *consume_bytes_cb, /* Callback */ - void *app_key /* Arbitrary callback argument */ -); - -#ifdef __cplusplus -} -#endif - -#endif /* _XER_ENCODER_H_ */ diff --git a/e2sim/previous/e2apv1sim/ASN1c/xer_support.c b/e2sim/previous/e2apv1sim/ASN1c/xer_support.c deleted file mode 100644 index 36b4bfb..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/xer_support.c +++ /dev/null @@ -1,227 +0,0 @@ -/* - * Copyright (c) 2003, 2004 X/IO Labs, xiolabs.com. - * Copyright (c) 2003, 2004, 2005 Lev Walkin . - * All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include - -/* Parser states */ -typedef enum { - ST_TEXT, - ST_TAG_START, - ST_TAG_BODY, - ST_TAG_QUOTE_WAIT, - ST_TAG_QUOTED_STRING, - ST_TAG_UNQUOTED_STRING, - ST_COMMENT_WAIT_DASH1, /* ""[0] */ - ST_COMMENT_CLO_RT /* "-->"[1] */ -} pstate_e; - -static const int -_charclass[256] = { - 0,0,0,0,0,0,0,0, 0,1,1,0,1,1,0,0, - 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0, - 1,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0, - 2,2,2,2,2,2,2,2, 2,2,0,0,0,0,0,0, /* 01234567 89 */ - 0,3,3,3,3,3,3,3, 3,3,3,3,3,3,3,3, /* ABCDEFG HIJKLMNO */ - 3,3,3,3,3,3,3,3, 3,3,3,0,0,0,0,0, /* PQRSTUVW XYZ */ - 0,3,3,3,3,3,3,3, 3,3,3,3,3,3,3,3, /* abcdefg hijklmno */ - 3,3,3,3,3,3,3,3, 3,3,3,0,0,0,0,0 /* pqrstuvw xyz */ -}; -#define WHITESPACE(c) (_charclass[(unsigned char)(c)] == 1) -#define ALNUM(c) (_charclass[(unsigned char)(c)] >= 2) -#define ALPHA(c) (_charclass[(unsigned char)(c)] == 3) - -/* Aliases for characters, ASCII/UTF-8 */ -#define EXCLAM 0x21 /* '!' */ -#define CQUOTE 0x22 /* '"' */ -#define CDASH 0x2d /* '-' */ -#define CSLASH 0x2f /* '/' */ -#define LANGLE 0x3c /* '<' */ -#define CEQUAL 0x3d /* '=' */ -#define RANGLE 0x3e /* '>' */ -#define CQUEST 0x3f /* '?' */ - -/* Invoke token callback */ -#define TOKEN_CB_CALL(type, _ns, _current_too, _final) do { \ - int _ret; \ - pstate_e ns = _ns; \ - ssize_t _sz = (p - chunk_start) + _current_too; \ - if (!_sz) { \ - /* Shortcut */ \ - state = _ns; \ - break; \ - } \ - _ret = cb(type, chunk_start, _sz, key); \ - if(_ret < _sz) { \ - if(_current_too && _ret == -1) \ - state = ns; \ - goto finish; \ - } \ - chunk_start = p + _current_too; \ - state = ns; \ - } while(0) - -#define TOKEN_CB(_type, _ns, _current_too) \ - TOKEN_CB_CALL(_type, _ns, _current_too, 0) - -#define PXML_TAG_FINAL_CHUNK_TYPE PXML_TAG_END -#define PXML_COMMENT_FINAL_CHUNK_TYPE PXML_COMMENT_END - -#define TOKEN_CB_FINAL(_type, _ns, _current_too) \ - TOKEN_CB_CALL( _type ## _FINAL_CHUNK_TYPE , _ns, _current_too, 1) - -/* - * Parser itself - */ -ssize_t pxml_parse(int *stateContext, const void *xmlbuf, size_t size, pxml_callback_f *cb, void *key) { - pstate_e state = (pstate_e)*stateContext; - const char *chunk_start = (const char *)xmlbuf; - const char *p = chunk_start; - const char *end = p + size; - - for(; p < end; p++) { - int C = *(const unsigned char *)p; - switch(state) { - case ST_TEXT: - /* - * Initial state: we're in the middle of some text, - * or just have started. - */ - if (C == LANGLE) - /* We're now in the tag, probably */ - TOKEN_CB(PXML_TEXT, ST_TAG_START, 0); - break; - case ST_TAG_START: - if (ALPHA(C) || (C == CSLASH)) - state = ST_TAG_BODY; - else if (C == EXCLAM) - state = ST_COMMENT_WAIT_DASH1; - else - /* - * Not characters and not whitespace. - * Must be something like "3 < 4". - */ - TOKEN_CB(PXML_TEXT, ST_TEXT, 1);/* Flush as data */ - break; - case ST_TAG_BODY: - switch(C) { - case RANGLE: - /* End of the tag */ - TOKEN_CB_FINAL(PXML_TAG, ST_TEXT, 1); - break; - case LANGLE: - /* - * The previous tag wasn't completed, but still - * recognized as valid. (Mozilla-compatible) - */ - TOKEN_CB_FINAL(PXML_TAG, ST_TAG_START, 0); - break; - case CEQUAL: - state = ST_TAG_QUOTE_WAIT; - break; - } - break; - case ST_TAG_QUOTE_WAIT: - /* - * State after the equal sign ("=") in the tag. - */ - switch(C) { - case CQUOTE: - state = ST_TAG_QUOTED_STRING; - break; - case RANGLE: - /* End of the tag */ - TOKEN_CB_FINAL(PXML_TAG, ST_TEXT, 1); - break; - default: - if(!WHITESPACE(C)) - /* Unquoted string value */ - state = ST_TAG_UNQUOTED_STRING; - } - break; - case ST_TAG_QUOTED_STRING: - /* - * Tag attribute's string value in quotes. - */ - if(C == CQUOTE) { - /* Return back to the tag state */ - state = ST_TAG_BODY; - } - break; - case ST_TAG_UNQUOTED_STRING: - if(C == RANGLE) { - /* End of the tag */ - TOKEN_CB_FINAL(PXML_TAG, ST_TEXT, 1); - } else if(WHITESPACE(C)) { - /* Return back to the tag state */ - state = ST_TAG_BODY; - } - break; - case ST_COMMENT_WAIT_DASH1: - if(C == CDASH) { - state = ST_COMMENT_WAIT_DASH2; - } else { - /* Some ordinary tag. */ - state = ST_TAG_BODY; - } - break; - case ST_COMMENT_WAIT_DASH2: - if(C == CDASH) { - /* Seen "<--" */ - state = ST_COMMENT; - } else { - /* Some ordinary tag */ - state = ST_TAG_BODY; - } - break; - case ST_COMMENT: - if(C == CDASH) { - state = ST_COMMENT_CLO_DASH2; - } - break; - case ST_COMMENT_CLO_DASH2: - if(C == CDASH) { - state = ST_COMMENT_CLO_RT; - } else { - /* This is not an end of a comment */ - state = ST_COMMENT; - } - break; - case ST_COMMENT_CLO_RT: - if(C == RANGLE) { - TOKEN_CB_FINAL(PXML_COMMENT, ST_TEXT, 1); - } else if(C == CDASH) { - /* Maintain current state, still waiting for '>' */ - } else { - state = ST_COMMENT; - } - break; - } /* switch(*ptr) */ - } /* for() */ - - /* - * Flush the partially processed chunk, state permitting. - */ - if(p - chunk_start) { - switch (state) { - case ST_COMMENT: - TOKEN_CB(PXML_COMMENT, state, 0); - break; - case ST_TEXT: - TOKEN_CB(PXML_TEXT, state, 0); - break; - default: break; /* a no-op */ - } - } - -finish: - *stateContext = (int)state; - return chunk_start - (const char *)xmlbuf; -} - diff --git a/e2sim/previous/e2apv1sim/ASN1c/xer_support.h b/e2sim/previous/e2apv1sim/ASN1c/xer_support.h deleted file mode 100644 index c3a36e7..0000000 --- a/e2sim/previous/e2apv1sim/ASN1c/xer_support.h +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Copyright (c) 2003, 2004 X/IO Labs, xiolabs.com. - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef _XER_SUPPORT_H_ -#define _XER_SUPPORT_H_ - -#include /* Platform-specific types */ - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * Types of data transferred to the application. - */ -typedef enum { - PXML_TEXT, /* Plain text between XML tags. */ - PXML_TAG, /* A tag, starting with '<'. */ - PXML_COMMENT, /* An XML comment, including "". */ - /* - * The following chunk types are reported if the chunk - * terminates the specified XML element. - */ - PXML_TAG_END, /* Tag ended */ - PXML_COMMENT_END /* Comment ended */ -} pxml_chunk_type_e; - -/* - * Callback function that is called by the parser when parsed data is - * available. The _opaque is the pointer to a field containing opaque user - * data specified in pxml_create() call. The chunk type is _type and the text - * data is the piece of buffer identified by _bufid (as supplied to - * pxml_feed() call) starting at offset _offset and of _size bytes size. - * The chunk is NOT '\0'-terminated. - */ -typedef int (pxml_callback_f)(pxml_chunk_type_e _type, - const void *_chunk_data, size_t _chunk_size, void *_key); - -/* - * Parse the given buffer as it were a chunk of XML data. - * Invoke the specified callback each time the meaninful data is found. - * This function returns number of bytes consumed from the bufer. - * It will always be lesser than or equal to the specified _size. - * The next invocation of this function must account the difference. - */ -ssize_t pxml_parse(int *_stateContext, const void *_buf, size_t _size, - pxml_callback_f *cb, void *_key); - -#ifdef __cplusplus -} -#endif - -#endif /* _XER_SUPPORT_H_ */ diff --git a/e2sim/previous/e2apv1sim/CMakeLists.txt b/e2sim/previous/e2apv1sim/CMakeLists.txt deleted file mode 100644 index ab5778a..0000000 --- a/e2sim/previous/e2apv1sim/CMakeLists.txt +++ /dev/null @@ -1,79 +0,0 @@ -#/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -#******************************************************************************/ - -cmake_minimum_required(VERSION 3.5.1) -set(CMAKE_CXX_COMPILER "/usr/bin/g++") -set(CMAKE_CXX_STANDARD 14) - - - -project(e2sim) - -set (E2SIM_ROOT ./) - - -include_directories("${E2SIM_ROOT}") -include_directories("${E2SIM_ROOT}/src") -include_directories("${E2SIM_ROOT}/src/DEF") -include_directories("${E2SIM_ROOT}/src/SCTP/") -include_directories("${E2SIM_ROOT}/src/E2AP") -include_directories("${E2SIM_ROOT}/src/E2AP/E2SM") -include_directories("${E2SIM_ROOT}/ASN1c") - - -#set(CMAKE_THREAD_PREFER_PTHREAD TRUE) -set(THREADS_PREFER_PTHREAD_FLAG ON) - -find_library( SCTP_STD_LIB sctp ) #needed for sctp_sendmsgf -find_package( Threads REQUIRED ) - -#---------------------------------------------- -file(GLOB E2SIM_SOURCES - "${E2SIM_ROOT}/e2sim.cpp" - "${E2SIM_ROOT}/encode_kpm.cpp" - "${E2SIM_ROOT}/kpm_callbacks.cpp" - "${E2SIM_ROOT}/encode_e2apv1.cpp" - "${E2SIM_ROOT}/src/DEF/*.cpp" - "${E2SIM_ROOT}/src/SCTP/*.cpp" - "${E2SIM_ROOT}/src/E2AP/*.c" - "${E2SIM_ROOT}/src/E2AP/*.cpp" - "${E2SIM_ROOT}/ASN1c/*.c" - - ) - -add_executable(e2sim ${E2SIM_SOURCES}) -target_link_libraries( e2sim ${SCTP_STD_LIB} ) -target_link_libraries( e2sim Threads::Threads ) - -#---------------------------------------------- -file(GLOB RICSIM_SOURCES - - "${E2SIM_ROOT}/ricsim.cpp" - "${E2SIM_ROOT}/encode_kpm.cpp" - "${E2SIM_ROOT}/encode_e2apv1.cpp" - "${E2SIM_ROOT}/kpm_callbacks.cpp" - "${E2SIM_ROOT}/src/DEF/*.cpp" - "${E2SIM_ROOT}/src/SCTP/*.cpp" - "${E2SIM_ROOT}/src/E2AP/*.c" - "${E2SIM_ROOT}/src/E2AP/*.cpp" - "${E2SIM_ROOT}/ASN1c/*.c" - ) -add_executable(ricsim ${RICSIM_SOURCES}) -target_link_libraries( ricsim ${SCTP_STD_LIB} ) -target_link_libraries( e2sim Threads::Threads ) diff --git a/e2sim/previous/e2apv1sim/Dockerfile b/e2sim/previous/e2apv1sim/Dockerfile deleted file mode 100644 index 348fe48..0000000 --- a/e2sim/previous/e2apv1sim/Dockerfile +++ /dev/null @@ -1,55 +0,0 @@ -#/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -#******************************************************************************/ - -FROM ubuntu:16.04 - -# location in the container -ENV E2SIM_DIR /home/e2sim - -# Install necessary packages -RUN apt-get update \ - && apt-get install -y \ - build-essential \ - git \ - cmake \ - libsctp-dev \ - lksctp-tools \ - autoconf \ - automake \ - libtool \ - bison \ - flex \ - libboost-all-dev \ - iputils-ping \ - net-tools \ - nano \ - vim \ - tcpdump \ - net-tools \ - nmap \ - && apt-get clean - -# Copy E2Sim sources into the container -COPY ./ ${E2SIM_DIR} -WORKDIR ${E2SIM_DIR} - -#------------- Build E2SIM ----------------------- -RUN ./build_e2sim --clean -RUN ./build_e2sim -CMD ./build/e2sim 10.107.70.168 36422 \ No newline at end of file diff --git a/e2sim/previous/e2apv1sim/README.md b/e2sim/previous/e2apv1sim/README.md deleted file mode 100644 index 4277232..0000000 --- a/e2sim/previous/e2apv1sim/README.md +++ /dev/null @@ -1,62 +0,0 @@ -#/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -#******************************************************************************/ - -This is an update to E2 Simulator, based on E2AP v1. - - - -# INSTALLATION (tested on Ubuntu 16.04) - 1. Install dependencies - $ sudo apt-get update - $ sudo apt-get install -y - build-essential - git - cmake - libsctp-dev - lksctp-tools - autoconf - automake - libtool - bison - flex - libboost-all-dev - $ sudo apt-get clean - - 2. SET ENVIRONMENT VARIABLE - Add this line to `~/.bashrc` - export E2SIM_DIR= - - 3. Build the official e2sim - $ ./build_e2sim - -# USAGE - $ $E2SIM_DIR/build/e2sim [SERVER IP] [PORT] - - By default, SERVER IP = 127.0.0.1, PORT = 36421 - The RIC (i.e., E2 Manager) will need to setup X2 or E2 connection to e2sim on - this SERVER IP and PORT - -# DOCKER - * Build docker image: run this command from $E2SIM_DIR - $ sudo docker build -f docker/Dockerfile -t [DOCKER_IMAGE]:[TAG] . - - * Example how to run docker container - $ sudo docker run --rm --net host -it [DOCKER_IMAGE]:[TAG] sh -c "./build/e2sim [SERVER IP] [PORT]" - ex: sudo docker run --rm --net host -it e2sim:1.0.0 sh -c "./build/e2sim 127.0.0.1 36422" - diff --git a/e2sim/previous/e2apv1sim/build_e2sim b/e2sim/previous/e2apv1sim/build_e2sim deleted file mode 100755 index 80a53c6..0000000 --- a/e2sim/previous/e2apv1sim/build_e2sim +++ /dev/null @@ -1,86 +0,0 @@ -#!/bin/bash -#/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -#******************************************************************************/ - -set -e - -E2SIM_VERSION='1.4.0' -export E2SIM_DIR=$PWD -source $E2SIM_DIR/tools/build_helper.bash -DOCKER_IMAGE='e2sim' - -print_help() { - echo " - This program installs E2 Simulator - You should have ubuntu 14.xx, updated, and the Linux kernel >= 3.14 - The program is run by default with no option - - USAGE: - ./build_e2sim [OPTIONS] - - OPTIONS: - --clean - Erase all files to make a rebuild from start - --docker - Build docker image - -h - Print this help - " -} - -function main(){ - case "$1" in - --clean) - echo_info "Will clean all previously producted files under build/" - rm -rf $E2SIM_DIR/build - echo_success "Clean Done" - exit - ;; - - --docker) - echo "Will build docker image ${DOCKER_IMAGE}:${E2SIM_VERSION}" - sudo docker build -f docker/Dockerfile -t $DOCKER_IMAGE:$E2SIM_VERSION . - exit - ;; - - "") - ;; - - -h) - print_help - exit 1;; - - *) - echo_error "Unknown option $1" - exit - esac - - BUILD_DIR=$E2SIM_DIR/build - mkdir -p $BUILD_DIR - - echo_info "Will build e2sim" - cd $BUILD_DIR - rm -rf CMakeCache.txt - cmake .. - make -j`nproc` - - echo_success "e2sim compiled" -} - -main "$@" diff --git a/e2sim/previous/e2apv1sim/cellMeasReport.txt b/e2sim/previous/e2apv1sim/cellMeasReport.txt deleted file mode 100644 index 2c0890f..0000000 --- a/e2sim/previous/e2apv1sim/cellMeasReport.txt +++ /dev/null @@ -1,40 +0,0 @@ -{ - "cellMeasReport": { - "du-id": 1000, - "cellMeasReportList": [ - - { - "nrCellIdentity": 0, - "pdcpByteMeasReport": { - "measTimestampPdcpBytes": "2020-04-09 14:33:33,559", - "measPeriodPdcpBytes": 10, - "pdcpBytesDl": 0, - "pdcpBytesUl": 0 - }, - "prbMeasReport": { - "measTimestampPrb": "2020-04-09 14:33:33,559", - "measPeriodPrb": 0, - "availPrbDl": 0, - "availPrbUl": 0 - } - }, - - { - "nrCellIdentity": 1, - "pdcpByteMeasReport": { - "measTimestampPdcpBytes": "2020-04-09 14:33:33,559", - "measPeriodPdcpBytes": 0, - "pdcpBytesDl": 0, - "pdcpBytesUl": 0 - }, - "prbMeasReport": { - "measTimestampPrb": "2020-04-09 14:33:33,559", - "measPeriodPrb": 0, - "availPrbDl": 0, - "availPrbUl": 0 - } - } - ] - } -} - diff --git a/e2sim/previous/e2apv1sim/docker/Dockerfile b/e2sim/previous/e2apv1sim/docker/Dockerfile deleted file mode 100644 index 1233a12..0000000 --- a/e2sim/previous/e2apv1sim/docker/Dockerfile +++ /dev/null @@ -1,54 +0,0 @@ -#/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -#******************************************************************************/ - -FROM ubuntu:16.04 - -# location in the container -ENV E2SIM_DIR /home/e2sim - -# Install necessary packages -RUN apt-get update \ - && apt-get install -y \ - build-essential \ - git \ - cmake \ - libsctp-dev \ - lksctp-tools \ - autoconf \ - automake \ - libtool \ - bison \ - flex \ - libboost-all-dev \ - iputils-ping \ - net-tools \ - nano \ - vim \ - tcpdump \ - net-tools \ - nmap \ - && apt-get clean - -# Copy E2Sim sources into the container -COPY ./ ${E2SIM_DIR} -WORKDIR ${E2SIM_DIR} - -#------------- Build E2SIM ----------------------- -RUN ./build_e2sim --clean -RUN ./build_e2sim diff --git a/e2sim/previous/e2apv1sim/docker/container-tag.yaml b/e2sim/previous/e2apv1sim/docker/container-tag.yaml deleted file mode 100644 index 5df0816..0000000 --- a/e2sim/previous/e2apv1sim/docker/container-tag.yaml +++ /dev/null @@ -1,2 +0,0 @@ ---- -tag: 0.1.1 diff --git a/e2sim/previous/e2apv1sim/docker/old/DockerFile_old b/e2sim/previous/e2apv1sim/docker/old/DockerFile_old deleted file mode 100644 index 17aa6bd..0000000 --- a/e2sim/previous/e2apv1sim/docker/old/DockerFile_old +++ /dev/null @@ -1,53 +0,0 @@ -# -# -# Copyright 2019 AT&T Intellectual Property -# Copyright 2019 Nokia -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -# Docker file to build container for E2 Simulator, for which it can be called -# to run both the E2 Agent and E2 Termination. -# Note: run docker comamnds from root directory of e2sim, e.g., $E2SIM_DIR -# -# build: $ sudo docker build -f docker/Dockerfile -t e2sim . - -FROM ubuntu:16.04 - - -# location in the container -ENV E2SIM_DIR /home/e2sim - -# Install necessary packages -RUN apt-get update \ - && apt-get install -y \ - build-essential \ - git \ - cmake \ - libsctp-dev \ - lksctp-tools \ - autoconf \ - automake \ - libtool \ - bison \ - flex \ - && apt-get clean - -# Install E2Sim -COPY ./ ${E2SIM_DIR} -WORKDIR ${E2SIM_DIR} -RUN ./docker/install_asn1c -RUN ./build_e2sim --clean -RUN ./build_e2sim - -CMD ./build/e2sim diff --git a/e2sim/previous/e2apv1sim/docker/old/Dockerfile b/e2sim/previous/e2apv1sim/docker/old/Dockerfile deleted file mode 100644 index 6cbfbf5..0000000 --- a/e2sim/previous/e2apv1sim/docker/old/Dockerfile +++ /dev/null @@ -1,42 +0,0 @@ -# -# -# Copyright 2019 AT&T Intellectual Property -# Copyright 2019 Nokia -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -FROM e2sim_base - -# ------------ COPY E2SIM codes ------------------ -COPY ./ ${E2SIM_DIR} -WORKDIR ${E2SIM_DIR} - -# ensure an empty rt is there if none is mounted at spinup -COPY docker/empty.rt /usr/local/route/local.rt - -#------------- Build E2SIM ----------------------- -RUN ./build_e2sim --clean -RUN ./build_e2sim - -#-------------- Configure rmr ------------------------- -ENV RMR_SEED_RT=/usr/local/route/local.rt -#export RMR_SEED_RT=$HOME/global_rmr_files/global_rmr_routes.rt - -ENV RMR_RTG_SVC=localhost:9990 -ENV E2TERM_RMR_RCV_PORT=48886 -ENV DEMO_SENDER_PTO=1 -ENV DEMO_MAX_PAYLOAD_BYTES=240 - -# --------------- Run E2Termination --------------------- -CMD ./build/e2sim diff --git a/e2sim/previous/e2apv1sim/docker/old/Dockerfile_base b/e2sim/previous/e2apv1sim/docker/old/Dockerfile_base deleted file mode 100644 index 7ac932b..0000000 --- a/e2sim/previous/e2apv1sim/docker/old/Dockerfile_base +++ /dev/null @@ -1,60 +0,0 @@ -# -# -# Copyright 2019 AT&T Intellectual Property -# Copyright 2019 Nokia -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -# Docker file to build container for E2 Simulator, for which it can be called -# to run both the E2 Agent and E2 Termination. -# Note: run docker comamnds from root directory of e2sim, e.g., $E2SIM_DIR -# -# build with 2 steps -# $ sudo docker build -f docker/Dockerfile_base -t e2sim_base . -# $ sudo docker build -f docker/Dockerfile -t e2sim . -# -# run e2 termination -# $ sudo docker run --rm --net host -it e2sim sh -c "./build/e2sim 127.0.0.2" - -FROM ubuntu:16.04 - - -# location in the container -ENV E2SIM_DIR /home/e2sim - -# Install necessary packages -RUN apt-get update \ - && apt-get install -y \ - build-essential \ - git \ - cmake \ - libsctp-dev \ - lksctp-tools \ - autoconf \ - automake \ - libtool \ - bison \ - flex - -# For rmr -RUN apt-get install -y bash vim ksh iputils-ping -RUN apt-get clean - -# Copy E2Sim to the container -COPY ./ ${E2SIM_DIR} -WORKDIR ${E2SIM_DIR} -RUN ./docker/install_asn1c - -#-------------INSTALL rmr ------------------------ -RUN ./docker/install_rmr diff --git a/e2sim/previous/e2apv1sim/docker/old/configure_rmr b/e2sim/previous/e2apv1sim/docker/old/configure_rmr deleted file mode 100755 index ff0a685..0000000 --- a/e2sim/previous/e2apv1sim/docker/old/configure_rmr +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/bash -# -# -# Copyright 2019 AT&T Intellectual Property -# Copyright 2019 Nokia -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - - -export RMR_SEED_RT=/usr/local/route/local.rt -#export RMR_SEED_RT=$HOME/global_rmr_files/global_rmr_routes.rt -export RMR_RTG_SVC=localhost:9990 -#export DUMMY_SENDER_RMR_RCV_PORT=48086 -export E2TERM_RMR_RCV_PORT=48886 -export DEMO_SENDER_PTO=1 -export DEMO_MAX_PAYLOAD_BYTES=240 diff --git a/e2sim/previous/e2apv1sim/docker/old/empty.rt b/e2sim/previous/e2apv1sim/docker/old/empty.rt deleted file mode 100644 index 0063bb9..0000000 --- a/e2sim/previous/e2apv1sim/docker/old/empty.rt +++ /dev/null @@ -1,5 +0,0 @@ -# an empty route table to put into an image so there is some file there -# if on image start nothing is mounted onto /usr/local/route - -newrt|start -newrt|end diff --git a/e2sim/previous/e2apv1sim/docker/old/install_asn1c b/e2sim/previous/e2apv1sim/docker/old/install_asn1c deleted file mode 100755 index daf4bfe..0000000 --- a/e2sim/previous/e2apv1sim/docker/old/install_asn1c +++ /dev/null @@ -1,29 +0,0 @@ -#!/bin/bash -# -# -# Copyright 2019 AT&T Intellectual Property -# Copyright 2019 Nokia -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -echo "Will install asn1c" -cd tools -rm -rf asn1c -git clone https://gitlab.eurecom.fr/oai/asn1c.git -cd asn1c -git checkout 0a7524184f16e7093990a31d8d4db487a16e5782 -autoreconf -iv -./configure -make -make install diff --git a/e2sim/previous/e2apv1sim/docker/old/install_rmr b/e2sim/previous/e2apv1sim/docker/old/install_rmr deleted file mode 100755 index 522df48..0000000 --- a/e2sim/previous/e2apv1sim/docker/old/install_rmr +++ /dev/null @@ -1,32 +0,0 @@ -#!/bin/bash -# -# -# Copyright 2019 AT&T Intellectual Property -# Copyright 2019 Nokia -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -# pull rmr to $E2SIM_DIR/ and checkout the 'stable' demo commit, -# then build and install in /usr/local - -echo "Will install rmr" -rm -rf rmr -git clone https://gerrit.oran-osc.org/r/ric-plt/lib/rmr -date; ls -al /usr/local/lib -cd rmr -git checkout 6735f136906ce2 -mkdir .build -cd .build -cmake .. -make install diff --git a/e2sim/previous/e2apv1sim/docker/old/local.rt b/e2sim/previous/e2apv1sim/docker/old/local.rt deleted file mode 100644 index 84ea983..0000000 --- a/e2sim/previous/e2apv1sim/docker/old/local.rt +++ /dev/null @@ -1,9 +0,0 @@ -newrt|start -#RMR_RCV_PORT of the receiver is 6560 -rte|0|localhost:6560 - -# this is needed so that receiver acks can be sent via rmr_rts_msg() calls -# here e2 agent is the name of the machine -# is the RMR_RCV_PORT of the sender -rte|89|e2agent:48086 -newrt|end diff --git a/e2sim/previous/e2apv1sim/e2sim.cpp b/e2sim/previous/e2apv1sim/e2sim.cpp deleted file mode 100644 index 72785b7..0000000 --- a/e2sim/previous/e2apv1sim/e2sim.cpp +++ /dev/null @@ -1,174 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -#include -#include -#include -#include -#include - - -#include "e2sim_defs.h" -#include "e2sim_sctp.hpp" -#include "e2ap_message_handler.hpp" -#include "encode_e2apv1.hpp" - -using namespace std; - -int client_fd = 0; - -void encode_and_send_sctp_data(E2AP_PDU_t* pdu) -{ - uint8_t *buf; - sctp_buffer_t data; - - data.len = e2ap_asn1c_encode_pdu(pdu, &buf); - memcpy(data.buffer, buf, min(data.len, MAX_SCTP_BUFFER)); - - sctp_send_data(client_fd, data); -} - -void encode_and_send_sctp_data(E2AP_PDU_t* pdu, int client_fd) -{ - uint8_t *buf; - sctp_buffer_t data; - - printf("Calling encode_and_send_sctp_data\n"); - - printf("client_fd is %d\n", client_fd); - - data.len = e2ap_asn1c_encode_pdu(pdu, &buf); - - printf("after encoding pdu\n"); - - memcpy(data.buffer, buf, min(data.len, MAX_SCTP_BUFFER)); - - printf("calling sctp_send_data\n"); - - sctp_send_data(client_fd, data); -} - -void wait_for_sctp_data() -{ - sctp_buffer_t recv_buf; - if(sctp_receive_data(client_fd, recv_buf) > 0) - { - LOG_I("[SCTP] Received new data of size %d", recv_buf.len); - e2ap_handle_sctp_data(client_fd, recv_buf, false); - } -} - - -int main(int argc, char* argv[]){ - - printf("Start E2 Agent (E2 Simulator\n"); - - ifstream simfile; - string line; - - simfile.open("simulation.txt", ios::in); - - if (simfile.is_open()) { - - while (getline(simfile, line)) { - cout << line << "\n"; - } - - simfile.close(); - - } - - - printf("encoding now the user level - DU\n"); - - E2SM_KPM_IndicationMessage_t *indMsg = - (E2SM_KPM_IndicationMessage_t*)calloc(1,sizeof(E2SM_KPM_IndicationMessage_t)); - - //encode_kpm_report_rancontainer_du(indMsg); - encode_kpm_report_style1(indMsg); - - - - bool xmlenc = false; - - options_t ops = read_input_options(argc, argv); - - printf("After reading input options\n"); - - //E2 Agent will automatically restart upon sctp disconnection - // int server_fd = sctp_start_server(ops.server_ip, ops.server_port); - - client_fd = sctp_start_client(ops.server_ip, ops.server_port); - E2AP_PDU_t* pdu_setup = (E2AP_PDU_t*)calloc(1,sizeof(E2AP_PDU)); - - printf("After starting client\n"); - printf("client_fd value is %d\n", client_fd); - - // generate_e2apv1_subscription_request(pdu_setup); - generate_e2apv1_setup_request(pdu_setup); - - printf("After generating e2setup req\n"); - - xer_fprint(stderr, &asn_DEF_E2AP_PDU, pdu_setup); - - printf("After XER Encoding\n"); - - auto buffer_size = MAX_SCTP_BUFFER; - unsigned char buffer[MAX_SCTP_BUFFER]; - - sctp_buffer_t data; - - char *error_buf = (char*)calloc(300, sizeof(char)); - size_t errlen; - - asn_check_constraints(&asn_DEF_E2AP_PDU, pdu_setup, error_buf, &errlen); - printf("error length %d\n", errlen); - printf("error buf %s\n", error_buf); - - auto er = asn_encode_to_buffer(nullptr, ATS_ALIGNED_BASIC_PER, &asn_DEF_E2AP_PDU, pdu_setup, buffer, buffer_size); - //auto er = asn_encode_to_buffer(nullptr, ATS_BASIC_XER, &asn_DEF_E2AP_PDU, pdu_setup, buffer, buffer_size); - data.len = er.encoded; - - fprintf(stderr, "er encded is %d\n", er.encoded); - - memcpy(data.buffer, buffer, er.encoded); - - if(sctp_send_data(client_fd, data) > 0) { - LOG_I("[SCTP] Sent E2-SETUP-REQUEST"); - } else { - LOG_E("[SCTP] Unable to send E2-SETUP-REQUEST to peer"); - } - - sctp_buffer_t recv_buf; - - LOG_I("[SCTP] Waiting for SCTP data"); - - while(1) //constantly looking for data on SCTP interface - { - if(sctp_receive_data(client_fd, recv_buf) <= 0) - break; - - LOG_I("[SCTP] Received new data of size %d", recv_buf.len); - - e2ap_handle_sctp_data(client_fd, recv_buf, xmlenc); - if (xmlenc) xmlenc = false; - } - - return 0; -} diff --git a/e2sim/previous/e2apv1sim/e2sim.hpp b/e2sim/previous/e2apv1sim/e2sim.hpp deleted file mode 100644 index 9af2552..0000000 --- a/e2sim/previous/e2apv1sim/e2sim.hpp +++ /dev/null @@ -1,5 +0,0 @@ -#include "E2AP-PDU.h" - -void encode_and_send_sctp_data(E2AP_PDU_t* pdu); - -void encode_and_send_sctp_data(E2AP_PDU_t* pdu, int socket_fd); diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/ANY.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/ANY.c deleted file mode 100644 index 0b81557..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/ANY.c +++ /dev/null @@ -1,450 +0,0 @@ -/* - * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include - -asn_OCTET_STRING_specifics_t asn_SPC_ANY_specs = { - sizeof(ANY_t), - offsetof(ANY_t, _asn_ctx), - ASN_OSUBV_ANY -}; -asn_TYPE_operation_t asn_OP_ANY = { - OCTET_STRING_free, - OCTET_STRING_print, - OCTET_STRING_compare, - OCTET_STRING_decode_ber, - OCTET_STRING_encode_der, - OCTET_STRING_decode_xer_hex, - ANY_encode_xer, -#ifdef ASN_DISABLE_OER_SUPPORT - 0, - 0, -#else - 0, - 0, -#endif /* ASN_DISABLE_OER_SUPPORT */ -#ifdef ASN_DISABLE_PER_SUPPORT - 0, 0, 0, 0, -#else - ANY_decode_uper, - ANY_encode_uper, - ANY_decode_aper, - ANY_encode_aper, -#endif /* ASN_DISABLE_PER_SUPPORT */ - 0, /* Random fill is not defined for ANY type */ - 0 /* Use generic outmost tag fetcher */ -}; -asn_TYPE_descriptor_t asn_DEF_ANY = { - "ANY", - "ANY", - &asn_OP_ANY, - 0, 0, 0, 0, - { 0, 0, asn_generic_no_constraint }, /* No constraints */ - 0, 0, /* No members */ - &asn_SPC_ANY_specs, -}; - -#undef RETURN -#define RETURN(_code) \ - do { \ - asn_dec_rval_t tmprval; \ - tmprval.code = _code; \ - tmprval.consumed = consumed_myself; \ - return tmprval; \ - } while(0) - -asn_enc_rval_t -ANY_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, - enum xer_encoder_flags_e flags, asn_app_consume_bytes_f *cb, - void *app_key) { - if(flags & XER_F_CANONICAL) { - /* - * Canonical XER-encoding of ANY type is not supported. - */ - ASN__ENCODE_FAILED; - } - - /* Dump as binary */ - return OCTET_STRING_encode_xer(td, sptr, ilevel, flags, cb, app_key); -} - -struct _callback_arg { - uint8_t *buffer; - size_t offset; - size_t size; -}; - -static int ANY__consume_bytes(const void *buffer, size_t size, void *key); - -int -ANY_fromType(ANY_t *st, asn_TYPE_descriptor_t *td, void *sptr) { - struct _callback_arg arg; - asn_enc_rval_t erval = {0,0,0}; - - if(!st || !td) { - errno = EINVAL; - return -1; - } - - if(!sptr) { - if(st->buf) FREEMEM(st->buf); - st->size = 0; - return 0; - } - - arg.offset = arg.size = 0; - arg.buffer = 0; - - erval = der_encode(td, sptr, ANY__consume_bytes, &arg); - if(erval.encoded == -1) { - if(arg.buffer) FREEMEM(arg.buffer); - return -1; - } - assert((size_t)erval.encoded == arg.offset); - - if(st->buf) FREEMEM(st->buf); - st->buf = arg.buffer; - st->size = arg.offset; - - return 0; -} - -int -ANY_fromType_aper(ANY_t *st, asn_TYPE_descriptor_t *td, void *sptr) { - uint8_t *buffer = NULL; - ssize_t erval; - - if(!st || !td) { - errno = EINVAL; - return -1; - } - - if(!sptr) { - if(st->buf) FREEMEM(st->buf); - st->size = 0; - return 0; - } - - erval = aper_encode_to_new_buffer(td, td->encoding_constraints.per_constraints, sptr, (void**)&buffer); - - if(erval == -1) { - if(buffer) FREEMEM(buffer); - return -1; - } - assert((size_t)erval > 0); - - if(st->buf) FREEMEM(st->buf); - st->buf = buffer; - st->size = erval; - - return 0; -} - -ANY_t * -ANY_new_fromType(asn_TYPE_descriptor_t *td, void *sptr) { - ANY_t tmp; - ANY_t *st; - - if(!td || !sptr) { - errno = EINVAL; - return 0; - } - - memset(&tmp, 0, sizeof(tmp)); - - if(ANY_fromType(&tmp, td, sptr)) return 0; - - st = (ANY_t *)CALLOC(1, sizeof(ANY_t)); - if(st) { - *st = tmp; - return st; - } else { - FREEMEM(tmp.buf); - return 0; - } -} - -ANY_t * -ANY_new_fromType_aper(asn_TYPE_descriptor_t *td, void *sptr) { - ANY_t tmp; - ANY_t *st; - - if(!td || !sptr) { - errno = EINVAL; - return 0; - } - - memset(&tmp, 0, sizeof(tmp)); - - if(ANY_fromType_aper(&tmp, td, sptr)) return 0; - - st = (ANY_t *)CALLOC(1, sizeof(ANY_t)); - if(st) { - *st = tmp; - return st; - } else { - FREEMEM(tmp.buf); - return 0; - } -} - -int -ANY_to_type(ANY_t *st, asn_TYPE_descriptor_t *td, void **struct_ptr) { - asn_dec_rval_t rval; - void *newst = 0; - - if(!st || !td || !struct_ptr) { - errno = EINVAL; - return -1; - } - - if(st->buf == 0) { - /* Nothing to convert, make it empty. */ - *struct_ptr = (void *)0; - return 0; - } - - rval = ber_decode(0, td, (void **)&newst, st->buf, st->size); - if(rval.code == RC_OK) { - *struct_ptr = newst; - return 0; - } else { - /* Remove possibly partially decoded data. */ - ASN_STRUCT_FREE(*td, newst); - return -1; - } -} - -int -ANY_to_type_aper(ANY_t *st, asn_TYPE_descriptor_t *td, void **struct_ptr) { - asn_dec_rval_t rval; - void *newst = 0; - - if(!st || !td || !struct_ptr) { - errno = EINVAL; - return -1; - } - - if(st->buf == 0) { - /* Nothing to convert, make it empty. */ - *struct_ptr = (void *)0; - return 0; - } - - rval = aper_decode(0, td, (void **)&newst, st->buf, st->size, 0, 0); - if(rval.code == RC_OK) { - *struct_ptr = newst; - return 0; - } else { - /* Remove possibly partially decoded data. */ - ASN_STRUCT_FREE(*td, newst); - return -1; - } -} - -static int ANY__consume_bytes(const void *buffer, size_t size, void *key) { - struct _callback_arg *arg = (struct _callback_arg *)key; - - if((arg->offset + size) >= arg->size) { - size_t nsize = (arg->size ? arg->size << 2 : 16) + size; - void *p = REALLOC(arg->buffer, nsize); - if(!p) return -1; - arg->buffer = (uint8_t *)p; - arg->size = nsize; - } - - memcpy(arg->buffer + arg->offset, buffer, size); - arg->offset += size; - assert(arg->offset < arg->size); - - return 0; -} - -#ifndef ASN_DISABLE_PER_SUPPORT - -asn_dec_rval_t -ANY_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, - asn_per_data_t *pd) { - const asn_OCTET_STRING_specifics_t *specs = - td->specifics ? (const asn_OCTET_STRING_specifics_t *)td->specifics - : &asn_SPC_ANY_specs; - size_t consumed_myself = 0; - int repeat; - ANY_t *st = (ANY_t *)*sptr; - - (void)opt_codec_ctx; - (void)constraints; - - /* - * Allocate the structure. - */ - if(!st) { - st = (ANY_t *)(*sptr = CALLOC(1, specs->struct_size)); - if(!st) RETURN(RC_FAIL); - } - - ASN_DEBUG("UPER Decoding ANY type"); - - st->size = 0; - do { - ssize_t raw_len; - ssize_t len_bytes; - ssize_t len_bits; - void *p; - int ret; - - /* Get the PER length */ - raw_len = uper_get_length(pd, -1, 0, &repeat); - if(raw_len < 0) RETURN(RC_WMORE); - if(raw_len == 0 && st->buf) break; - - ASN_DEBUG("Got PER length len %" ASN_PRI_SIZE ", %s (%s)", raw_len, - repeat ? "repeat" : "once", td->name); - len_bytes = raw_len; - len_bits = len_bytes * 8; - - p = REALLOC(st->buf, st->size + len_bytes + 1); - if(!p) RETURN(RC_FAIL); - st->buf = (uint8_t *)p; - - ret = per_get_many_bits(pd, &st->buf[st->size], 0, len_bits); - if(ret < 0) RETURN(RC_WMORE); - consumed_myself += len_bits; - st->size += len_bytes; - } while(repeat); - st->buf[st->size] = 0; /* nul-terminate */ - - RETURN(RC_OK); -} - -asn_enc_rval_t -ANY_encode_uper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, const void *sptr, - asn_per_outp_t *po) { - const ANY_t *st = (const ANY_t *)sptr; - asn_enc_rval_t er = {0, 0, 0}; - const uint8_t *buf; - size_t size; - int ret; - - (void)constraints; - - if(!st || (!st->buf && st->size)) ASN__ENCODE_FAILED; - - buf = st->buf; - size = st->size; - do { - int need_eom = 0; - ssize_t may_save = uper_put_length(po, size, &need_eom); - if(may_save < 0) ASN__ENCODE_FAILED; - - ret = per_put_many_bits(po, buf, may_save * 8); - if(ret) ASN__ENCODE_FAILED; - - buf += may_save; - size -= may_save; - assert(!(may_save & 0x07) || !size); - if(need_eom && uper_put_length(po, 0, 0)) - ASN__ENCODE_FAILED; /* End of Message length */ - } while(size); - - ASN__ENCODED_OK(er); -} - -asn_dec_rval_t -ANY_decode_aper(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, - asn_per_data_t *pd) { - const asn_OCTET_STRING_specifics_t *specs = - td->specifics ? (const asn_OCTET_STRING_specifics_t *)td->specifics - : &asn_SPC_ANY_specs; - size_t consumed_myself = 0; - int repeat; - ANY_t *st = (ANY_t *)*sptr; - - (void)opt_codec_ctx; - (void)constraints; - - /* - * Allocate the structure. - */ - if(!st) { - st = (ANY_t *)(*sptr = CALLOC(1, specs->struct_size)); - if(!st) RETURN(RC_FAIL); - } - - ASN_DEBUG("APER Decoding ANY type"); - - st->size = 0; - do { - ssize_t raw_len; - ssize_t len_bytes; - ssize_t len_bits; - void *p; - int ret; - - /* Get the PER length */ - raw_len = aper_get_length(pd, -1, 0, &repeat); - if(raw_len < 0) RETURN(RC_WMORE); - if(raw_len == 0 && st->buf) break; - - ASN_DEBUG("Got PER length len %" ASN_PRI_SIZE ", %s (%s)", raw_len, - repeat ? "repeat" : "once", td->name); - len_bytes = raw_len; - len_bits = len_bytes * 8; - - p = REALLOC(st->buf, st->size + len_bytes + 1); - if(!p) RETURN(RC_FAIL); - st->buf = (uint8_t *)p; - - ret = per_get_many_bits(pd, &st->buf[st->size], 0, len_bits); - if(ret < 0) RETURN(RC_WMORE); - consumed_myself += len_bits; - st->size += len_bytes; - } while(repeat); - st->buf[st->size] = 0; /* nul-terminate */ - - RETURN(RC_OK); -} - -asn_enc_rval_t -ANY_encode_aper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, const void *sptr, - asn_per_outp_t *po) { - const ANY_t *st = (const ANY_t *)sptr; - asn_enc_rval_t er = {0, 0, 0}; - const uint8_t *buf; - size_t size; - int ret; - - (void)constraints; - - if(!st || (!st->buf && st->size)) ASN__ENCODE_FAILED; - - buf = st->buf; - size = st->size; - do { - int need_eom = 0; - ssize_t may_save = uper_put_length(po, size, &need_eom); - if(may_save < 0) ASN__ENCODE_FAILED; - - ret = per_put_many_bits(po, buf, may_save * 8); - if(ret) ASN__ENCODE_FAILED; - - buf += may_save; - size -= may_save; - assert(!(may_save & 0x07) || !size); - if(need_eom && uper_put_length(po, 0, 0)) - ASN__ENCODE_FAILED; /* End of Message length */ - } while(size); - - ASN__ENCODED_OK(er); -} -#endif /* ASN_DISABLE_PER_SUPPORT */ - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/ANY.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/ANY.h deleted file mode 100644 index b30381f..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/ANY.h +++ /dev/null @@ -1,65 +0,0 @@ -/*- - * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef ASN_TYPE_ANY_H -#define ASN_TYPE_ANY_H - -#include /* Implemented via OCTET STRING type */ - -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct ANY { - uint8_t *buf; /* BER-encoded ANY contents */ - int size; /* Size of the above buffer */ - - asn_struct_ctx_t _asn_ctx; /* Parsing across buffer boundaries */ -} ANY_t; - -extern asn_TYPE_descriptor_t asn_DEF_ANY; -extern asn_TYPE_operation_t asn_OP_ANY; -extern asn_OCTET_STRING_specifics_t asn_SPC_ANY_specs; - -asn_struct_free_f ANY_free; -asn_struct_print_f ANY_print; -ber_type_decoder_f ANY_decode_ber; -der_type_encoder_f ANY_encode_der; -xer_type_encoder_f ANY_encode_xer; -per_type_decoder_f ANY_decode_uper; -per_type_encoder_f ANY_encode_uper; -per_type_decoder_f ANY_decode_aper; -per_type_encoder_f ANY_encode_aper; - -#define ANY_free OCTET_STRING_free -#define ANY_print OCTET_STRING_print -#define ANY_compare OCTET_STRING_compare -#define ANY_constraint asn_generic_no_constraint -#define ANY_decode_ber OCTET_STRING_decode_ber -#define ANY_encode_der OCTET_STRING_encode_der -#define ANY_decode_xer OCTET_STRING_decode_xer_hex - -/****************************** - * Handy conversion routines. * - ******************************/ - -/* Convert another ASN.1 type into the ANY. This implies DER encoding. */ -int ANY_fromType(ANY_t *, asn_TYPE_descriptor_t *td, void *struct_ptr); -int ANY_fromType_aper(ANY_t *st, asn_TYPE_descriptor_t *td, void *sptr); -ANY_t *ANY_new_fromType(asn_TYPE_descriptor_t *td, void *struct_ptr); -ANY_t *ANY_new_fromType_aper(asn_TYPE_descriptor_t *td, void *sptr); - -/* Convert the contents of the ANY type into the specified type. */ -int ANY_to_type(ANY_t *, asn_TYPE_descriptor_t *td, void **struct_ptr); -int ANY_to_type_aper(ANY_t *, asn_TYPE_descriptor_t *td, void **struct_ptr); - -#define ANY_fromBuf(s, buf, size) OCTET_STRING_fromBuf((s), (buf), (size)) -#define ANY_new_fromBuf(buf, size) OCTET_STRING_new_fromBuf( \ - &asn_DEF_ANY, (buf), (size)) - -#ifdef __cplusplus -} -#endif - -#endif /* ASN_TYPE_ANY_H */ diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/BIT_STRING.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/BIT_STRING.c deleted file mode 100644 index e8d7354..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/BIT_STRING.c +++ /dev/null @@ -1,656 +0,0 @@ -/*- - * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include - -/* - * BIT STRING basic type description. - */ -static const ber_tlv_tag_t asn_DEF_BIT_STRING_tags[] = { - (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) -}; -asn_OCTET_STRING_specifics_t asn_SPC_BIT_STRING_specs = { - sizeof(BIT_STRING_t), - offsetof(BIT_STRING_t, _asn_ctx), - ASN_OSUBV_BIT -}; -asn_TYPE_operation_t asn_OP_BIT_STRING = { - OCTET_STRING_free, /* Implemented in terms of OCTET STRING */ - BIT_STRING_print, - BIT_STRING_compare, - OCTET_STRING_decode_ber, /* Implemented in terms of OCTET STRING */ - OCTET_STRING_encode_der, /* Implemented in terms of OCTET STRING */ - OCTET_STRING_decode_xer_binary, - BIT_STRING_encode_xer, -#ifdef ASN_DISABLE_OER_SUPPORT - 0, - 0, -#else - BIT_STRING_decode_oer, - BIT_STRING_encode_oer, -#endif /* ASN_DISABLE_OER_SUPPORT */ -#ifdef ASN_DISABLE_PER_SUPPORT - 0, - 0, - 0, - 0, -#else - BIT_STRING_decode_uper, /* Unaligned PER decoder */ - BIT_STRING_encode_uper, /* Unaligned PER encoder */ - OCTET_STRING_decode_aper, /* Aligned PER decoder */ - OCTET_STRING_encode_aper, /* Aligned PER encoder */ -#endif /* ASN_DISABLE_PER_SUPPORT */ - BIT_STRING_random_fill, - 0 /* Use generic outmost tag fetcher */ -}; -asn_TYPE_descriptor_t asn_DEF_BIT_STRING = { - "BIT STRING", - "BIT_STRING", - &asn_OP_BIT_STRING, - asn_DEF_BIT_STRING_tags, - sizeof(asn_DEF_BIT_STRING_tags) - / sizeof(asn_DEF_BIT_STRING_tags[0]), - asn_DEF_BIT_STRING_tags, /* Same as above */ - sizeof(asn_DEF_BIT_STRING_tags) - / sizeof(asn_DEF_BIT_STRING_tags[0]), - { 0, 0, BIT_STRING_constraint }, - 0, 0, /* No members */ - &asn_SPC_BIT_STRING_specs -}; - -/* - * BIT STRING generic constraint. - */ -int -BIT_STRING_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - - if(st && st->buf) { - if((st->size == 0 && st->bits_unused) - || st->bits_unused < 0 || st->bits_unused > 7) { - ASN__CTFAIL(app_key, td, sptr, - "%s: invalid padding byte (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - return 0; -} - -static const char *_bit_pattern[16] = { - "0000", "0001", "0010", "0011", "0100", "0101", "0110", "0111", - "1000", "1001", "1010", "1011", "1100", "1101", "1110", "1111" -}; - -asn_enc_rval_t -BIT_STRING_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, - int ilevel, enum xer_encoder_flags_e flags, - asn_app_consume_bytes_f *cb, void *app_key) { - asn_enc_rval_t er = {0, 0, 0}; - char scratch[128]; - char *p = scratch; - char *scend = scratch + (sizeof(scratch) - 10); - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - int xcan = (flags & XER_F_CANONICAL); - uint8_t *buf; - uint8_t *end; - - if(!st || !st->buf) - ASN__ENCODE_FAILED; - - er.encoded = 0; - - buf = st->buf; - end = buf + st->size - 1; /* Last byte is special */ - - /* - * Binary dump - */ - for(; buf < end; buf++) { - int v = *buf; - int nline = xcan?0:(((buf - st->buf) % 8) == 0); - if(p >= scend || nline) { - ASN__CALLBACK(scratch, p - scratch); - p = scratch; - if(nline) ASN__TEXT_INDENT(1, ilevel); - } - memcpy(p + 0, _bit_pattern[v >> 4], 4); - memcpy(p + 4, _bit_pattern[v & 0x0f], 4); - p += 8; - } - - if(!xcan && ((buf - st->buf) % 8) == 0) - ASN__TEXT_INDENT(1, ilevel); - ASN__CALLBACK(scratch, p - scratch); - p = scratch; - - if(buf == end) { - int v = *buf; - int ubits = st->bits_unused; - int i; - for(i = 7; i >= ubits; i--) - *p++ = (v & (1 << i)) ? 0x31 : 0x30; - ASN__CALLBACK(scratch, p - scratch); - } - - if(!xcan) ASN__TEXT_INDENT(1, ilevel - 1); - - ASN__ENCODED_OK(er); -cb_failed: - ASN__ENCODE_FAILED; -} - - -/* - * BIT STRING specific contents printer. - */ -int -BIT_STRING_print(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, - asn_app_consume_bytes_f *cb, void *app_key) { - const char * const h2c = "0123456789ABCDEF"; - char scratch[64]; - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - uint8_t *buf; - uint8_t *end; - char *p = scratch; - - (void)td; /* Unused argument */ - - if(!st || !st->buf) - return (cb("", 8, app_key) < 0) ? -1 : 0; - - ilevel++; - buf = st->buf; - end = buf + st->size; - - /* - * Hexadecimal dump. - */ - for(; buf < end; buf++) { - if((buf - st->buf) % 16 == 0 && (st->size > 16) - && buf != st->buf) { - _i_INDENT(1); - /* Dump the string */ - if(cb(scratch, p - scratch, app_key) < 0) return -1; - p = scratch; - } - *p++ = h2c[*buf >> 4]; - *p++ = h2c[*buf & 0x0F]; - *p++ = 0x20; - } - - if(p > scratch) { - p--; /* Eat the tailing space */ - - if((st->size > 16)) { - _i_INDENT(1); - } - - /* Dump the incomplete 16-bytes row */ - if(cb(scratch, p - scratch, app_key) < 0) - return -1; - } - - if(st->bits_unused) { - int ret = snprintf(scratch, sizeof(scratch), " (%d bit%s unused)", - st->bits_unused, st->bits_unused == 1 ? "" : "s"); - assert(ret > 0 && ret < (ssize_t)sizeof(scratch)); - if(ret > 0 && ret < (ssize_t)sizeof(scratch) - && cb(scratch, ret, app_key) < 0) - return -1; - } - - return 0; -} - -/* - * Non-destructively remove the trailing 0-bits from the given bit string. - */ -static const BIT_STRING_t * -BIT_STRING__compactify(const BIT_STRING_t *st, BIT_STRING_t *tmp) { - const uint8_t *b; - union { - const uint8_t *c_buf; - uint8_t *nc_buf; - } unconst; - - if(st->size == 0) { - assert(st->bits_unused == 0); - return st; - } else { - for(b = &st->buf[st->size - 1]; b > st->buf && *b == 0; b--) { - ; - } - /* b points to the last byte which may contain data */ - if(*b) { - int unused = 7; - uint8_t v = *b; - v &= -(int8_t)v; - if(v & 0x0F) unused -= 4; - if(v & 0x33) unused -= 2; - if(v & 0x55) unused -= 1; - tmp->size = b-st->buf + 1; - tmp->bits_unused = unused; - } else { - tmp->size = b-st->buf; - tmp->bits_unused = 0; - } - - assert(b >= st->buf); - } - - unconst.c_buf = st->buf; - tmp->buf = unconst.nc_buf; - return tmp; -} - -/* - * Lexicographically compare the common prefix of both strings, - * and if it is the same return -1 for the smallest string. - */ -int -BIT_STRING_compare(const asn_TYPE_descriptor_t *td, const void *aptr, - const void *bptr) { - /* - * Remove information about trailing bits, since - * X.680 (08/2015) #22.7 "ensure that different semantics are not" - * "associated with [values that differ only in] the trailing 0 bits." - */ - BIT_STRING_t compact_a, compact_b; - const BIT_STRING_t *a = BIT_STRING__compactify(aptr, &compact_a); - const BIT_STRING_t *b = BIT_STRING__compactify(bptr, &compact_b); - const asn_OCTET_STRING_specifics_t *specs = td->specifics; - - assert(specs && specs->subvariant == ASN_OSUBV_BIT); - - if(a && b) { - size_t common_prefix_size = a->size <= b->size ? a->size : b->size; - int ret = memcmp(a->buf, b->buf, common_prefix_size); - if(ret == 0) { - /* Figure out which string with equal prefixes is longer. */ - if(a->size < b->size) { - return -1; - } else if(a->size > b->size) { - return 1; - } else { - /* Figure out how many unused bits */ - if(a->bits_unused > b->bits_unused) { - return -1; - } else if(a->bits_unused < b->bits_unused) { - return 1; - } else { - return 0; - } - } - } else { - return ret; - } - } else if(!a && !b) { - return 0; - } else if(!a) { - return -1; - } else { - return 1; - } -} - -#ifndef ASN_DISABLE_PER_SUPPORT - -#undef RETURN -#define RETURN(_code) \ - do { \ - asn_dec_rval_t tmprval; \ - tmprval.code = _code; \ - tmprval.consumed = consumed_myself; \ - return tmprval; \ - } while(0) - -static asn_per_constraint_t asn_DEF_BIT_STRING_constraint_size = { - APC_SEMI_CONSTRAINED, -1, -1, 0, 0}; - -asn_dec_rval_t -BIT_STRING_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, - asn_per_data_t *pd) { - const asn_OCTET_STRING_specifics_t *specs = td->specifics - ? (const asn_OCTET_STRING_specifics_t *)td->specifics - : &asn_SPC_BIT_STRING_specs; - const asn_per_constraints_t *pc = - constraints ? constraints : td->encoding_constraints.per_constraints; - const asn_per_constraint_t *csiz; - asn_dec_rval_t rval = { RC_OK, 0 }; - BIT_STRING_t *st = (BIT_STRING_t *)*sptr; - ssize_t consumed_myself = 0; - int repeat; - - (void)opt_codec_ctx; - - if(pc) { - csiz = &pc->size; - } else { - csiz = &asn_DEF_BIT_STRING_constraint_size; - } - - if(specs->subvariant != ASN_OSUBV_BIT) { - ASN_DEBUG("Subvariant %d is not BIT OSUBV_BIT", specs->subvariant); - RETURN(RC_FAIL); - } - - /* - * Allocate the string. - */ - if(!st) { - st = (BIT_STRING_t *)(*sptr = CALLOC(1, specs->struct_size)); - if(!st) RETURN(RC_FAIL); - } - - ASN_DEBUG("PER Decoding %s size %ld .. %ld bits %d", - csiz->flags & APC_EXTENSIBLE ? "extensible" : "non-extensible", - csiz->lower_bound, csiz->upper_bound, csiz->effective_bits); - - if(csiz->flags & APC_EXTENSIBLE) { - int inext = per_get_few_bits(pd, 1); - if(inext < 0) RETURN(RC_WMORE); - if(inext) { - csiz = &asn_DEF_BIT_STRING_constraint_size; - } - } - - if(csiz->effective_bits >= 0) { - FREEMEM(st->buf); - st->size = (csiz->upper_bound + 7) >> 3; - st->buf = (uint8_t *)MALLOC(st->size + 1); - if(!st->buf) { st->size = 0; RETURN(RC_FAIL); } - } - - /* X.691, #16.5: zero-length encoding */ - /* X.691, #16.6: short fixed length encoding (up to 2 octets) */ - /* X.691, #16.7: long fixed length encoding (up to 64K octets) */ - if(csiz->effective_bits == 0) { - int ret; - ASN_DEBUG("Encoding BIT STRING size %ld", csiz->upper_bound); - ret = per_get_many_bits(pd, st->buf, 0, csiz->upper_bound); - if(ret < 0) RETURN(RC_WMORE); - consumed_myself += csiz->upper_bound; - st->buf[st->size] = 0; - st->bits_unused = (8 - (csiz->upper_bound & 0x7)) & 0x7; - RETURN(RC_OK); - } - - st->size = 0; - do { - ssize_t raw_len; - ssize_t len_bytes; - ssize_t len_bits; - void *p; - int ret; - - /* Get the PER length */ - raw_len = uper_get_length(pd, csiz->effective_bits, csiz->lower_bound, - &repeat); - if(raw_len < 0) RETURN(RC_WMORE); - if(raw_len == 0 && st->buf) break; - - ASN_DEBUG("Got PER length eb %ld, len %ld, %s (%s)", - (long)csiz->effective_bits, (long)raw_len, - repeat ? "repeat" : "once", td->name); - len_bits = raw_len; - len_bytes = (len_bits + 7) >> 3; - if(len_bits & 0x7) st->bits_unused = 8 - (len_bits & 0x7); - /* len_bits be multiple of 16K if repeat is set */ - p = REALLOC(st->buf, st->size + len_bytes + 1); - if(!p) RETURN(RC_FAIL); - st->buf = (uint8_t *)p; - - ret = per_get_many_bits(pd, &st->buf[st->size], 0, len_bits); - if(ret < 0) RETURN(RC_WMORE); - st->size += len_bytes; - } while(repeat); - st->buf[st->size] = 0; /* nul-terminate */ - - return rval; -} - -asn_enc_rval_t -BIT_STRING_encode_uper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_per_outp_t *po) { - const asn_OCTET_STRING_specifics_t *specs = - td->specifics ? (const asn_OCTET_STRING_specifics_t *)td->specifics - : &asn_SPC_BIT_STRING_specs; - const asn_per_constraints_t *pc = - constraints ? constraints : td->encoding_constraints.per_constraints; - const asn_per_constraint_t *csiz; - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - BIT_STRING_t compact_bstr; /* Do not modify this directly! */ - asn_enc_rval_t er = { 0, 0, 0 }; - int inext = 0; /* Lies not within extension root */ - size_t size_in_bits; - const uint8_t *buf; - int ret; - int ct_extensible; - - if(!st || (!st->buf && st->size)) - ASN__ENCODE_FAILED; - - if(specs->subvariant == ASN_OSUBV_BIT) { - if((st->size == 0 && st->bits_unused) || (st->bits_unused & ~7)) - ASN__ENCODE_FAILED; - } else { - ASN__ENCODE_FAILED; - } - - if(pc) { - csiz = &pc->size; - } else { - csiz = &asn_DEF_BIT_STRING_constraint_size; - } - ct_extensible = csiz->flags & APC_EXTENSIBLE; - - /* Figure out the size without the trailing bits */ - st = BIT_STRING__compactify(st, &compact_bstr); - size_in_bits = 8 * st->size - st->bits_unused; - - ASN_DEBUG( - "Encoding %s into %" ASN_PRI_SIZE " bits" - " (%ld..%ld, effective %d)%s", - td->name, size_in_bits, csiz->lower_bound, csiz->upper_bound, - csiz->effective_bits, ct_extensible ? " EXT" : ""); - - /* Figure out whether size lies within PER visible constraint */ - - if(csiz->effective_bits >= 0) { - if((ssize_t)size_in_bits > csiz->upper_bound) { - if(ct_extensible) { - csiz = &asn_DEF_BIT_STRING_constraint_size; - inext = 1; - } else { - ASN__ENCODE_FAILED; - } - } - } else { - inext = 0; - } - - if(ct_extensible) { - /* Declare whether length is [not] within extension root */ - if(per_put_few_bits(po, inext, 1)) - ASN__ENCODE_FAILED; - } - - if(csiz->effective_bits >= 0 && !inext) { - int add_trailer = (ssize_t)size_in_bits < csiz->lower_bound; - ASN_DEBUG( - "Encoding %" ASN_PRI_SIZE " bytes (%ld), length (in %d bits) trailer %d; actual " - "value %" ASN_PRI_SSIZE "", - st->size, size_in_bits - csiz->lower_bound, csiz->effective_bits, - add_trailer, - add_trailer ? 0 : (ssize_t)size_in_bits - csiz->lower_bound); - ret = per_put_few_bits( - po, add_trailer ? 0 : (ssize_t)size_in_bits - csiz->lower_bound, - csiz->effective_bits); - if(ret) ASN__ENCODE_FAILED; - ret = per_put_many_bits(po, st->buf, size_in_bits); - if(ret) ASN__ENCODE_FAILED; - if(add_trailer) { - static const uint8_t zeros[16]; - size_t trailing_zero_bits = csiz->lower_bound - size_in_bits; - while(trailing_zero_bits > 0) { - if(trailing_zero_bits > 8 * sizeof(zeros)) { - ret = per_put_many_bits(po, zeros, 8 * sizeof(zeros)); - trailing_zero_bits -= 8 * sizeof(zeros); - } else { - ret = per_put_many_bits(po, zeros, trailing_zero_bits); - trailing_zero_bits = 0; - } - if(ret) ASN__ENCODE_FAILED; - } - } - ASN__ENCODED_OK(er); - } - - ASN_DEBUG("Encoding %" ASN_PRI_SIZE " bytes", st->size); - - buf = st->buf; - do { - int need_eom = 0; - ssize_t maySave = uper_put_length(po, size_in_bits, &need_eom); - if(maySave < 0) ASN__ENCODE_FAILED; - - ASN_DEBUG("Encoding %" ASN_PRI_SSIZE " of %" ASN_PRI_SIZE "", maySave, size_in_bits); - - ret = per_put_many_bits(po, buf, maySave); - if(ret) ASN__ENCODE_FAILED; - - buf += maySave >> 3; - size_in_bits -= maySave; - assert(!(maySave & 0x07) || !size_in_bits); - if(need_eom && uper_put_length(po, 0, 0)) - ASN__ENCODE_FAILED; /* End of Message length */ - } while(size_in_bits); - - ASN__ENCODED_OK(er); -} - -#endif /* ASN_DISABLE_PER_SUPPORT */ - -asn_random_fill_result_t -BIT_STRING_random_fill(const asn_TYPE_descriptor_t *td, void **sptr, - const asn_encoding_constraints_t *constraints, - size_t max_length) { - const asn_OCTET_STRING_specifics_t *specs = - td->specifics ? (const asn_OCTET_STRING_specifics_t *)td->specifics - : &asn_SPC_BIT_STRING_specs; - asn_random_fill_result_t result_ok = {ARFILL_OK, 1}; - asn_random_fill_result_t result_failed = {ARFILL_FAILED, 0}; - asn_random_fill_result_t result_skipped = {ARFILL_SKIPPED, 0}; - static unsigned lengths[] = {0, 1, 2, 3, 4, 8, - 126, 127, 128, 16383, 16384, 16385, - 65534, 65535, 65536, 65537}; - uint8_t *buf; - uint8_t *bend; - uint8_t *b; - size_t rnd_bits, rnd_len; - BIT_STRING_t *st; - - if(max_length == 0) return result_skipped; - - switch(specs->subvariant) { - case ASN_OSUBV_ANY: - return result_failed; - case ASN_OSUBV_BIT: - break; - default: - break; - } - - /* Figure out how far we should go */ - rnd_bits = lengths[asn_random_between( - 0, sizeof(lengths) / sizeof(lengths[0]) - 1)]; - if(!constraints || !constraints->per_constraints) - constraints = &td->encoding_constraints; - if(constraints->per_constraints) { - const asn_per_constraint_t *pc = &constraints->per_constraints->size; - if(pc->flags & APC_CONSTRAINED) { - long suggested_upper_bound = pc->upper_bound < (ssize_t)max_length - ? pc->upper_bound - : (ssize_t)max_length; - if(max_length < (size_t)pc->lower_bound) { - return result_skipped; - } - if(pc->flags & APC_EXTENSIBLE) { - switch(asn_random_between(0, 5)) { - case 0: - if(pc->lower_bound > 0) { - rnd_bits = pc->lower_bound - 1; - break; - } - /* Fall through */ - case 1: - rnd_bits = pc->upper_bound + 1; - break; - case 2: - /* Keep rnd_bits from the table */ - if(rnd_bits < max_length) { - break; - } - /* Fall through */ - default: - rnd_bits = asn_random_between(pc->lower_bound, - suggested_upper_bound); - } - } else { - rnd_bits = - asn_random_between(pc->lower_bound, suggested_upper_bound); - } - } else { - rnd_bits = asn_random_between(0, max_length - 1); - } - } else if(rnd_bits >= max_length) { - rnd_bits = asn_random_between(0, max_length - 1); - } - - rnd_len = (rnd_bits + 7) / 8; - buf = CALLOC(1, rnd_len + 1); - if(!buf) return result_failed; - - bend = &buf[rnd_len]; - - for(b = buf; b < bend; b++) { - *(uint8_t *)b = asn_random_between(0, 255); - } - *b = 0; /* Zero-terminate just in case. */ - - if(*sptr) { - st = *sptr; - FREEMEM(st->buf); - } else { - st = (BIT_STRING_t *)(*sptr = CALLOC(1, specs->struct_size)); - if(!st) { - FREEMEM(buf); - return result_failed; - } - } - - st->buf = buf; - st->size = rnd_len; - st->bits_unused = (8 - (rnd_bits & 0x7)) & 0x7; - if(st->bits_unused) { - assert(st->size > 0); - st->buf[st->size-1] &= 0xff << st->bits_unused; - } - - result_ok.length = st->size; - return result_ok; -} diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/BIT_STRING.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/BIT_STRING.h deleted file mode 100644 index c1bdbbc..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/BIT_STRING.h +++ /dev/null @@ -1,48 +0,0 @@ -/*- - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef _BIT_STRING_H_ -#define _BIT_STRING_H_ - -#include /* Some help from OCTET STRING */ - -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct BIT_STRING_s { - uint8_t *buf; /* BIT STRING body */ - size_t size; /* Size of the above buffer */ - - int bits_unused;/* Unused trailing bits in the last octet (0..7) */ - - asn_struct_ctx_t _asn_ctx; /* Parsing across buffer boundaries */ -} BIT_STRING_t; - -extern asn_TYPE_descriptor_t asn_DEF_BIT_STRING; -extern asn_TYPE_operation_t asn_OP_BIT_STRING; -extern asn_OCTET_STRING_specifics_t asn_SPC_BIT_STRING_specs; - -asn_struct_print_f BIT_STRING_print; /* Human-readable output */ -asn_struct_compare_f BIT_STRING_compare; -asn_constr_check_f BIT_STRING_constraint; -xer_type_encoder_f BIT_STRING_encode_xer; -oer_type_decoder_f BIT_STRING_decode_oer; -oer_type_encoder_f BIT_STRING_encode_oer; -per_type_decoder_f BIT_STRING_decode_uper; -per_type_encoder_f BIT_STRING_encode_uper; -asn_random_fill_f BIT_STRING_random_fill; - -#define BIT_STRING_free OCTET_STRING_free -#define BIT_STRING_decode_ber OCTET_STRING_decode_ber -#define BIT_STRING_encode_der OCTET_STRING_encode_der -#define BIT_STRING_decode_xer OCTET_STRING_decode_xer_binary -#define BIT_STRING_decode_aper OCTET_STRING_decode_aper -#define BIT_STRING_encode_aper OCTET_STRING_encode_aper - -#ifdef __cplusplus -} -#endif - -#endif /* _BIT_STRING_H_ */ diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/BIT_STRING_oer.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/BIT_STRING_oer.c deleted file mode 100644 index aff5075..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/BIT_STRING_oer.c +++ /dev/null @@ -1,174 +0,0 @@ -/* - * Copyright (c) 2017 Lev Walkin . - * All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef ASN_DISABLE_OER_SUPPORT - -#include -#include -#include - -asn_dec_rval_t -BIT_STRING_decode_oer(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_oer_constraints_t *constraints, void **sptr, - const void *ptr, size_t size) { - BIT_STRING_t *st = (BIT_STRING_t *)*sptr; - const asn_oer_constraints_t *cts = - constraints ? constraints : td->encoding_constraints.oer_constraints; - ssize_t ct_size = cts ? cts->size : -1; - asn_dec_rval_t rval = {RC_OK, 0}; - size_t expected_length = 0; - - (void)opt_codec_ctx; - - if(!st) { - st = (BIT_STRING_t *)(*sptr = CALLOC(1, sizeof(*st))); - if(!st) ASN__DECODE_FAILED; - } - - if(ct_size >= 0) { - expected_length = (ct_size + 7) >> 3; - st->bits_unused = (8 - (ct_size & 7)) & 7; - } else { - /* - * X.696 (08/2015) #13.3.1 - * Encode length determinant as _number of octets_, but only - * if upper bound is not equal to lower bound. - */ - ssize_t len_len = oer_fetch_length(ptr, size, &expected_length); - if(len_len > 0) { - ptr = (const char *)ptr + len_len; - size -= len_len; - } else if(len_len == 0) { - ASN__DECODE_STARVED; - } else if(len_len < 0) { - ASN__DECODE_FAILED; - } - - if(expected_length < 1) { - ASN__DECODE_FAILED; - } else if(expected_length > size) { - ASN__DECODE_STARVED; - } - - st->bits_unused = ((const uint8_t *)ptr)[0]; - if(st->bits_unused & ~7) { - ASN_DEBUG("%s: unused bits outside of 0..7 range", td->name); - ASN__DECODE_FAILED; - } - ptr = (const char *)ptr + 1; - size--; - expected_length--; - rval.consumed = len_len + 1; - } - - if(size < expected_length) { - ASN__DECODE_STARVED; - } else { - uint8_t *buf = MALLOC(expected_length + 1); - if(buf == NULL) { - ASN__DECODE_FAILED; - } else { - memcpy(buf, ptr, expected_length); - buf[expected_length] = '\0'; - } - FREEMEM(st->buf); - st->buf = buf; - st->size = expected_length; - if(expected_length > 0) { - buf[expected_length - 1] &= (0xff << st->bits_unused); - } - - rval.consumed += expected_length; - return rval; - } -} - -/* - * Encode as Canonical OER. - */ -asn_enc_rval_t -BIT_STRING_encode_oer(const asn_TYPE_descriptor_t *td, - const asn_oer_constraints_t *constraints, - const void *sptr, asn_app_consume_bytes_f *cb, - void *app_key) { - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - asn_enc_rval_t erval = {0, 0, 0}; - const asn_oer_constraints_t *cts = - constraints ? constraints : td->encoding_constraints.oer_constraints; - ssize_t ct_size = cts ? cts->size : -1; - size_t trailing_zeros = 0; - int fix_last_byte = 0; - - if(!st) ASN__ENCODE_FAILED; - - if(st->bits_unused & ~7) { - ASN_DEBUG("BIT STRING unused bits %d out of 0..7 range", - st->bits_unused); - ASN__ENCODE_FAILED; - } - if(st->bits_unused && !(st->size && st->buf)) { - ASN_DEBUG("BIT STRING %s size 0 can't support unused bits %d", td->name, - st->bits_unused); - ASN__ENCODE_FAILED; - } - - if(ct_size >= 0) { - size_t ct_bytes = (ct_size + 7) >> 3; - if(st->size > ct_bytes) { - ASN_DEBUG("More bits in BIT STRING %s (%" ASN_PRI_SSIZE ") than constrained %" ASN_PRI_SSIZE "", - td->name, 8 * st->size - st->bits_unused, ct_size); - ASN__ENCODE_FAILED; - } - trailing_zeros = ct_bytes - st->size; /* Allow larger constraint */ - } else { - uint8_t ub = st->bits_unused & 7; - ssize_t len_len = oer_serialize_length(1 + st->size, cb, app_key); - if(len_len < 0) ASN__ENCODE_FAILED; - if(cb(&ub, 1, app_key) < 0) { - ASN__ENCODE_FAILED; - } - erval.encoded += len_len + 1; - } - - if(st->bits_unused) { - if(st->buf[st->size - 1] & (0xff << st->bits_unused)) { - fix_last_byte = 1; - } - } - - if(cb(st->buf, st->size - fix_last_byte, app_key) < 0) { - ASN__ENCODE_FAILED; - } - - if(fix_last_byte) { - uint8_t b = st->buf[st->size - 1] & (0xff << st->bits_unused); - if(cb(&b, 1, app_key) < 0) { - ASN__ENCODE_FAILED; - } - } - - erval.encoded += st->size; - - if(trailing_zeros) { - static uint8_t zeros[16]; - while(trailing_zeros > 0) { - int ret; - if(trailing_zeros < sizeof(zeros)) { - ret = cb(zeros, trailing_zeros, app_key); - erval.encoded += trailing_zeros; - } else { - ret = cb(zeros, sizeof(zeros), app_key); - erval.encoded += sizeof(zeros); - } - if(ret < 0) ASN__ENCODE_FAILED; - } - } - - return erval; -} - - -#endif /* ASN_DISABLE_OER_SUPPORT */ diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/C-RNTI.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/C-RNTI.c deleted file mode 100644 index e626083..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/C-RNTI.c +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "C-RNTI.h" - -int -C_RNTI_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - size = st->size; - - if((size == 2)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using OCTET_STRING, - * so here we adjust the DEF accordingly. - */ -static asn_oer_constraints_t asn_OER_type_C_RNTI_constr_1 CC_NOTUSED = { - { 0, 0 }, - 2 /* (SIZE(2..2)) */}; -asn_per_constraints_t asn_PER_type_C_RNTI_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 0, 0, 2, 2 } /* (SIZE(2..2)) */, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_C_RNTI_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_C_RNTI = { - "C-RNTI", - "C-RNTI", - &asn_OP_OCTET_STRING, - asn_DEF_C_RNTI_tags_1, - sizeof(asn_DEF_C_RNTI_tags_1) - /sizeof(asn_DEF_C_RNTI_tags_1[0]), /* 1 */ - asn_DEF_C_RNTI_tags_1, /* Same as above */ - sizeof(asn_DEF_C_RNTI_tags_1) - /sizeof(asn_DEF_C_RNTI_tags_1[0]), /* 1 */ - { &asn_OER_type_C_RNTI_constr_1, &asn_PER_type_C_RNTI_constr_1, C_RNTI_constraint }, - 0, 0, /* No members */ - &asn_SPC_OCTET_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/C-RNTI.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/C-RNTI.h deleted file mode 100644 index 7366109..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/C-RNTI.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _C_RNTI_H_ -#define _C_RNTI_H_ - - -#include - -/* Including external dependencies */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* C-RNTI */ -typedef OCTET_STRING_t C_RNTI_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_C_RNTI_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_C_RNTI; -asn_struct_free_f C_RNTI_free; -asn_struct_print_f C_RNTI_print; -asn_constr_check_f C_RNTI_constraint; -ber_type_decoder_f C_RNTI_decode_ber; -der_type_encoder_f C_RNTI_encode_der; -xer_type_decoder_f C_RNTI_decode_xer; -xer_type_encoder_f C_RNTI_encode_xer; -oer_type_decoder_f C_RNTI_decode_oer; -oer_type_encoder_f C_RNTI_encode_oer; -per_type_decoder_f C_RNTI_decode_uper; -per_type_encoder_f C_RNTI_encode_uper; -per_type_decoder_f C_RNTI_decode_aper; -per_type_encoder_f C_RNTI_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _C_RNTI_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/CU-CP-Usage-Report-CellResourceReportItem.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/CU-CP-Usage-Report-CellResourceReportItem.c deleted file mode 100644 index c0b6775..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/CU-CP-Usage-Report-CellResourceReportItem.c +++ /dev/null @@ -1,139 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "CU-CP-Usage-Report-CellResourceReportItem.h" - -static int -memb_ueResourceReportList_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - /* Determine the number of elements */ - size = _A_CSEQUENCE_FROM_VOID(sptr)->count; - - if((size >= 1 && size <= 32)) { - /* Perform validation of the inner elements */ - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_oer_constraints_t asn_OER_type_ueResourceReportList_constr_3 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..32)) */}; -static asn_per_constraints_t asn_PER_type_ueResourceReportList_constr_3 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_ueResourceReportList_constr_3 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..32)) */}; -static asn_per_constraints_t asn_PER_memb_ueResourceReportList_constr_3 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_ueResourceReportList_3[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CU_CP_Usage_Report_UeResourceReportItem, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ueResourceReportList_tags_3[] = { - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_ueResourceReportList_specs_3 = { - sizeof(struct CU_CP_Usage_Report_CellResourceReportItem__ueResourceReportList), - offsetof(struct CU_CP_Usage_Report_CellResourceReportItem__ueResourceReportList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_ueResourceReportList_3 = { - "ueResourceReportList", - "ueResourceReportList", - &asn_OP_SEQUENCE_OF, - asn_DEF_ueResourceReportList_tags_3, - sizeof(asn_DEF_ueResourceReportList_tags_3) - /sizeof(asn_DEF_ueResourceReportList_tags_3[0]) - 1, /* 1 */ - asn_DEF_ueResourceReportList_tags_3, /* Same as above */ - sizeof(asn_DEF_ueResourceReportList_tags_3) - /sizeof(asn_DEF_ueResourceReportList_tags_3[0]), /* 2 */ - { &asn_OER_type_ueResourceReportList_constr_3, &asn_PER_type_ueResourceReportList_constr_3, SEQUENCE_OF_constraint }, - asn_MBR_ueResourceReportList_3, - 1, /* Single element */ - &asn_SPC_ueResourceReportList_specs_3 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_CU_CP_Usage_Report_CellResourceReportItem_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct CU_CP_Usage_Report_CellResourceReportItem, nRCGI), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NRCGI, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "nRCGI" - }, - { ATF_NOFLAGS, 0, offsetof(struct CU_CP_Usage_Report_CellResourceReportItem, ueResourceReportList), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - 0, - &asn_DEF_ueResourceReportList_3, - 0, - { &asn_OER_memb_ueResourceReportList_constr_3, &asn_PER_memb_ueResourceReportList_constr_3, memb_ueResourceReportList_constraint_1 }, - 0, 0, /* No default value */ - "ueResourceReportList" - }, -}; -static const ber_tlv_tag_t asn_DEF_CU_CP_Usage_Report_CellResourceReportItem_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_CU_CP_Usage_Report_CellResourceReportItem_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nRCGI */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ueResourceReportList */ -}; -asn_SEQUENCE_specifics_t asn_SPC_CU_CP_Usage_Report_CellResourceReportItem_specs_1 = { - sizeof(struct CU_CP_Usage_Report_CellResourceReportItem), - offsetof(struct CU_CP_Usage_Report_CellResourceReportItem, _asn_ctx), - asn_MAP_CU_CP_Usage_Report_CellResourceReportItem_tag2el_1, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 2, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_CU_CP_Usage_Report_CellResourceReportItem = { - "CU-CP-Usage-Report-CellResourceReportItem", - "CU-CP-Usage-Report-CellResourceReportItem", - &asn_OP_SEQUENCE, - asn_DEF_CU_CP_Usage_Report_CellResourceReportItem_tags_1, - sizeof(asn_DEF_CU_CP_Usage_Report_CellResourceReportItem_tags_1) - /sizeof(asn_DEF_CU_CP_Usage_Report_CellResourceReportItem_tags_1[0]), /* 1 */ - asn_DEF_CU_CP_Usage_Report_CellResourceReportItem_tags_1, /* Same as above */ - sizeof(asn_DEF_CU_CP_Usage_Report_CellResourceReportItem_tags_1) - /sizeof(asn_DEF_CU_CP_Usage_Report_CellResourceReportItem_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_CU_CP_Usage_Report_CellResourceReportItem_1, - 2, /* Elements count */ - &asn_SPC_CU_CP_Usage_Report_CellResourceReportItem_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/CU-CP-Usage-Report-CellResourceReportItem.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/CU-CP-Usage-Report-CellResourceReportItem.h deleted file mode 100644 index 9fb9dd9..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/CU-CP-Usage-Report-CellResourceReportItem.h +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _CU_CP_Usage_Report_CellResourceReportItem_H_ -#define _CU_CP_Usage_Report_CellResourceReportItem_H_ - - -#include - -/* Including external dependencies */ -#include "NRCGI.h" -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct CU_CP_Usage_Report_UeResourceReportItem; - -/* CU-CP-Usage-Report-CellResourceReportItem */ -typedef struct CU_CP_Usage_Report_CellResourceReportItem { - NRCGI_t nRCGI; - struct CU_CP_Usage_Report_CellResourceReportItem__ueResourceReportList { - A_SEQUENCE_OF(struct CU_CP_Usage_Report_UeResourceReportItem) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } ueResourceReportList; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} CU_CP_Usage_Report_CellResourceReportItem_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_CU_CP_Usage_Report_CellResourceReportItem; -extern asn_SEQUENCE_specifics_t asn_SPC_CU_CP_Usage_Report_CellResourceReportItem_specs_1; -extern asn_TYPE_member_t asn_MBR_CU_CP_Usage_Report_CellResourceReportItem_1[2]; - -#ifdef __cplusplus -} -#endif - -/* Referred external types */ -#include "CU-CP-Usage-Report-UeResourceReportItem.h" - -#endif /* _CU_CP_Usage_Report_CellResourceReportItem_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/CU-CP-Usage-Report-Per-UE.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/CU-CP-Usage-Report-Per-UE.c deleted file mode 100644 index 22055b3..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/CU-CP-Usage-Report-Per-UE.c +++ /dev/null @@ -1,129 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "CU-CP-Usage-Report-Per-UE.h" - -static int -memb_cellResourceReportList_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - /* Determine the number of elements */ - size = _A_CSEQUENCE_FROM_VOID(sptr)->count; - - if((size >= 1 && size <= 16384)) { - /* Perform validation of the inner elements */ - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_oer_constraints_t asn_OER_type_cellResourceReportList_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..16384)) */}; -static asn_per_constraints_t asn_PER_type_cellResourceReportList_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 14, 14, 1, 16384 } /* (SIZE(1..16384)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_cellResourceReportList_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..16384)) */}; -static asn_per_constraints_t asn_PER_memb_cellResourceReportList_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 14, 14, 1, 16384 } /* (SIZE(1..16384)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_cellResourceReportList_2[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CU_CP_Usage_Report_CellResourceReportItem, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_cellResourceReportList_tags_2[] = { - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_cellResourceReportList_specs_2 = { - sizeof(struct CU_CP_Usage_Report_Per_UE__cellResourceReportList), - offsetof(struct CU_CP_Usage_Report_Per_UE__cellResourceReportList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_cellResourceReportList_2 = { - "cellResourceReportList", - "cellResourceReportList", - &asn_OP_SEQUENCE_OF, - asn_DEF_cellResourceReportList_tags_2, - sizeof(asn_DEF_cellResourceReportList_tags_2) - /sizeof(asn_DEF_cellResourceReportList_tags_2[0]) - 1, /* 1 */ - asn_DEF_cellResourceReportList_tags_2, /* Same as above */ - sizeof(asn_DEF_cellResourceReportList_tags_2) - /sizeof(asn_DEF_cellResourceReportList_tags_2[0]), /* 2 */ - { &asn_OER_type_cellResourceReportList_constr_2, &asn_PER_type_cellResourceReportList_constr_2, SEQUENCE_OF_constraint }, - asn_MBR_cellResourceReportList_2, - 1, /* Single element */ - &asn_SPC_cellResourceReportList_specs_2 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_CU_CP_Usage_Report_Per_UE_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct CU_CP_Usage_Report_Per_UE, cellResourceReportList), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - 0, - &asn_DEF_cellResourceReportList_2, - 0, - { &asn_OER_memb_cellResourceReportList_constr_2, &asn_PER_memb_cellResourceReportList_constr_2, memb_cellResourceReportList_constraint_1 }, - 0, 0, /* No default value */ - "cellResourceReportList" - }, -}; -static const ber_tlv_tag_t asn_DEF_CU_CP_Usage_Report_Per_UE_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_CU_CP_Usage_Report_Per_UE_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* cellResourceReportList */ -}; -asn_SEQUENCE_specifics_t asn_SPC_CU_CP_Usage_Report_Per_UE_specs_1 = { - sizeof(struct CU_CP_Usage_Report_Per_UE), - offsetof(struct CU_CP_Usage_Report_Per_UE, _asn_ctx), - asn_MAP_CU_CP_Usage_Report_Per_UE_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_CU_CP_Usage_Report_Per_UE = { - "CU-CP-Usage-Report-Per-UE", - "CU-CP-Usage-Report-Per-UE", - &asn_OP_SEQUENCE, - asn_DEF_CU_CP_Usage_Report_Per_UE_tags_1, - sizeof(asn_DEF_CU_CP_Usage_Report_Per_UE_tags_1) - /sizeof(asn_DEF_CU_CP_Usage_Report_Per_UE_tags_1[0]), /* 1 */ - asn_DEF_CU_CP_Usage_Report_Per_UE_tags_1, /* Same as above */ - sizeof(asn_DEF_CU_CP_Usage_Report_Per_UE_tags_1) - /sizeof(asn_DEF_CU_CP_Usage_Report_Per_UE_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_CU_CP_Usage_Report_Per_UE_1, - 1, /* Elements count */ - &asn_SPC_CU_CP_Usage_Report_Per_UE_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/CU-CP-Usage-Report-Per-UE.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/CU-CP-Usage-Report-Per-UE.h deleted file mode 100644 index dad74ca..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/CU-CP-Usage-Report-Per-UE.h +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _CU_CP_Usage_Report_Per_UE_H_ -#define _CU_CP_Usage_Report_Per_UE_H_ - - -#include - -/* Including external dependencies */ -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct CU_CP_Usage_Report_CellResourceReportItem; - -/* CU-CP-Usage-Report-Per-UE */ -typedef struct CU_CP_Usage_Report_Per_UE { - struct CU_CP_Usage_Report_Per_UE__cellResourceReportList { - A_SEQUENCE_OF(struct CU_CP_Usage_Report_CellResourceReportItem) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } cellResourceReportList; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} CU_CP_Usage_Report_Per_UE_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_CU_CP_Usage_Report_Per_UE; -extern asn_SEQUENCE_specifics_t asn_SPC_CU_CP_Usage_Report_Per_UE_specs_1; -extern asn_TYPE_member_t asn_MBR_CU_CP_Usage_Report_Per_UE_1[1]; - -#ifdef __cplusplus -} -#endif - -/* Referred external types */ -#include "CU-CP-Usage-Report-CellResourceReportItem.h" - -#endif /* _CU_CP_Usage_Report_Per_UE_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/CU-CP-Usage-Report-UeResourceReportItem.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/CU-CP-Usage-Report-UeResourceReportItem.c deleted file mode 100644 index de4d8de..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/CU-CP-Usage-Report-UeResourceReportItem.c +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "CU-CP-Usage-Report-UeResourceReportItem.h" - -asn_TYPE_member_t asn_MBR_CU_CP_Usage_Report_UeResourceReportItem_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct CU_CP_Usage_Report_UeResourceReportItem, c_RNTI), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_C_RNTI, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "c-RNTI" - }, - { ATF_POINTER, 2, offsetof(struct CU_CP_Usage_Report_UeResourceReportItem, serving_Cell_RF_Type), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_OCTET_STRING, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "serving-Cell-RF-Type" - }, - { ATF_POINTER, 1, offsetof(struct CU_CP_Usage_Report_UeResourceReportItem, neighbor_Cell_RF), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_OCTET_STRING, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "neighbor-Cell-RF" - }, -}; -static const int asn_MAP_CU_CP_Usage_Report_UeResourceReportItem_oms_1[] = { 1, 2 }; -static const ber_tlv_tag_t asn_DEF_CU_CP_Usage_Report_UeResourceReportItem_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_CU_CP_Usage_Report_UeResourceReportItem_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* c-RNTI */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* serving-Cell-RF-Type */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* neighbor-Cell-RF */ -}; -asn_SEQUENCE_specifics_t asn_SPC_CU_CP_Usage_Report_UeResourceReportItem_specs_1 = { - sizeof(struct CU_CP_Usage_Report_UeResourceReportItem), - offsetof(struct CU_CP_Usage_Report_UeResourceReportItem, _asn_ctx), - asn_MAP_CU_CP_Usage_Report_UeResourceReportItem_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_CU_CP_Usage_Report_UeResourceReportItem_oms_1, /* Optional members */ - 2, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_CU_CP_Usage_Report_UeResourceReportItem = { - "CU-CP-Usage-Report-UeResourceReportItem", - "CU-CP-Usage-Report-UeResourceReportItem", - &asn_OP_SEQUENCE, - asn_DEF_CU_CP_Usage_Report_UeResourceReportItem_tags_1, - sizeof(asn_DEF_CU_CP_Usage_Report_UeResourceReportItem_tags_1) - /sizeof(asn_DEF_CU_CP_Usage_Report_UeResourceReportItem_tags_1[0]), /* 1 */ - asn_DEF_CU_CP_Usage_Report_UeResourceReportItem_tags_1, /* Same as above */ - sizeof(asn_DEF_CU_CP_Usage_Report_UeResourceReportItem_tags_1) - /sizeof(asn_DEF_CU_CP_Usage_Report_UeResourceReportItem_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_CU_CP_Usage_Report_UeResourceReportItem_1, - 3, /* Elements count */ - &asn_SPC_CU_CP_Usage_Report_UeResourceReportItem_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/CU-CP-Usage-Report-UeResourceReportItem.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/CU-CP-Usage-Report-UeResourceReportItem.h deleted file mode 100644 index 11edd99..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/CU-CP-Usage-Report-UeResourceReportItem.h +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _CU_CP_Usage_Report_UeResourceReportItem_H_ -#define _CU_CP_Usage_Report_UeResourceReportItem_H_ - - -#include - -/* Including external dependencies */ -#include "C-RNTI.h" -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* CU-CP-Usage-Report-UeResourceReportItem */ -typedef struct CU_CP_Usage_Report_UeResourceReportItem { - C_RNTI_t c_RNTI; - OCTET_STRING_t *serving_Cell_RF_Type; /* OPTIONAL */ - OCTET_STRING_t *neighbor_Cell_RF; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} CU_CP_Usage_Report_UeResourceReportItem_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_CU_CP_Usage_Report_UeResourceReportItem; -extern asn_SEQUENCE_specifics_t asn_SPC_CU_CP_Usage_Report_UeResourceReportItem_specs_1; -extern asn_TYPE_member_t asn_MBR_CU_CP_Usage_Report_UeResourceReportItem_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _CU_CP_Usage_Report_UeResourceReportItem_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/CU-UP-Usage-Report-CellResourceReportItem.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/CU-UP-Usage-Report-CellResourceReportItem.c deleted file mode 100644 index 4781c55..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/CU-UP-Usage-Report-CellResourceReportItem.c +++ /dev/null @@ -1,139 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "CU-UP-Usage-Report-CellResourceReportItem.h" - -static int -memb_ueResourceReportList_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - /* Determine the number of elements */ - size = _A_CSEQUENCE_FROM_VOID(sptr)->count; - - if((size >= 1 && size <= 32)) { - /* Perform validation of the inner elements */ - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_oer_constraints_t asn_OER_type_ueResourceReportList_constr_3 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..32)) */}; -static asn_per_constraints_t asn_PER_type_ueResourceReportList_constr_3 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_ueResourceReportList_constr_3 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..32)) */}; -static asn_per_constraints_t asn_PER_memb_ueResourceReportList_constr_3 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_ueResourceReportList_3[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CU_UP_Usage_Report_UeResourceReportItem, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ueResourceReportList_tags_3[] = { - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_ueResourceReportList_specs_3 = { - sizeof(struct CU_UP_Usage_Report_CellResourceReportItem__ueResourceReportList), - offsetof(struct CU_UP_Usage_Report_CellResourceReportItem__ueResourceReportList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_ueResourceReportList_3 = { - "ueResourceReportList", - "ueResourceReportList", - &asn_OP_SEQUENCE_OF, - asn_DEF_ueResourceReportList_tags_3, - sizeof(asn_DEF_ueResourceReportList_tags_3) - /sizeof(asn_DEF_ueResourceReportList_tags_3[0]) - 1, /* 1 */ - asn_DEF_ueResourceReportList_tags_3, /* Same as above */ - sizeof(asn_DEF_ueResourceReportList_tags_3) - /sizeof(asn_DEF_ueResourceReportList_tags_3[0]), /* 2 */ - { &asn_OER_type_ueResourceReportList_constr_3, &asn_PER_type_ueResourceReportList_constr_3, SEQUENCE_OF_constraint }, - asn_MBR_ueResourceReportList_3, - 1, /* Single element */ - &asn_SPC_ueResourceReportList_specs_3 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_CU_UP_Usage_Report_CellResourceReportItem_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct CU_UP_Usage_Report_CellResourceReportItem, nRCGI), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NRCGI, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "nRCGI" - }, - { ATF_NOFLAGS, 0, offsetof(struct CU_UP_Usage_Report_CellResourceReportItem, ueResourceReportList), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - 0, - &asn_DEF_ueResourceReportList_3, - 0, - { &asn_OER_memb_ueResourceReportList_constr_3, &asn_PER_memb_ueResourceReportList_constr_3, memb_ueResourceReportList_constraint_1 }, - 0, 0, /* No default value */ - "ueResourceReportList" - }, -}; -static const ber_tlv_tag_t asn_DEF_CU_UP_Usage_Report_CellResourceReportItem_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_CU_UP_Usage_Report_CellResourceReportItem_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nRCGI */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ueResourceReportList */ -}; -asn_SEQUENCE_specifics_t asn_SPC_CU_UP_Usage_Report_CellResourceReportItem_specs_1 = { - sizeof(struct CU_UP_Usage_Report_CellResourceReportItem), - offsetof(struct CU_UP_Usage_Report_CellResourceReportItem, _asn_ctx), - asn_MAP_CU_UP_Usage_Report_CellResourceReportItem_tag2el_1, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 2, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_CU_UP_Usage_Report_CellResourceReportItem = { - "CU-UP-Usage-Report-CellResourceReportItem", - "CU-UP-Usage-Report-CellResourceReportItem", - &asn_OP_SEQUENCE, - asn_DEF_CU_UP_Usage_Report_CellResourceReportItem_tags_1, - sizeof(asn_DEF_CU_UP_Usage_Report_CellResourceReportItem_tags_1) - /sizeof(asn_DEF_CU_UP_Usage_Report_CellResourceReportItem_tags_1[0]), /* 1 */ - asn_DEF_CU_UP_Usage_Report_CellResourceReportItem_tags_1, /* Same as above */ - sizeof(asn_DEF_CU_UP_Usage_Report_CellResourceReportItem_tags_1) - /sizeof(asn_DEF_CU_UP_Usage_Report_CellResourceReportItem_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_CU_UP_Usage_Report_CellResourceReportItem_1, - 2, /* Elements count */ - &asn_SPC_CU_UP_Usage_Report_CellResourceReportItem_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/CU-UP-Usage-Report-CellResourceReportItem.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/CU-UP-Usage-Report-CellResourceReportItem.h deleted file mode 100644 index f313f40..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/CU-UP-Usage-Report-CellResourceReportItem.h +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _CU_UP_Usage_Report_CellResourceReportItem_H_ -#define _CU_UP_Usage_Report_CellResourceReportItem_H_ - - -#include - -/* Including external dependencies */ -#include "NRCGI.h" -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct CU_UP_Usage_Report_UeResourceReportItem; - -/* CU-UP-Usage-Report-CellResourceReportItem */ -typedef struct CU_UP_Usage_Report_CellResourceReportItem { - NRCGI_t nRCGI; - struct CU_UP_Usage_Report_CellResourceReportItem__ueResourceReportList { - A_SEQUENCE_OF(struct CU_UP_Usage_Report_UeResourceReportItem) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } ueResourceReportList; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} CU_UP_Usage_Report_CellResourceReportItem_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_CU_UP_Usage_Report_CellResourceReportItem; -extern asn_SEQUENCE_specifics_t asn_SPC_CU_UP_Usage_Report_CellResourceReportItem_specs_1; -extern asn_TYPE_member_t asn_MBR_CU_UP_Usage_Report_CellResourceReportItem_1[2]; - -#ifdef __cplusplus -} -#endif - -/* Referred external types */ -#include "CU-UP-Usage-Report-UeResourceReportItem.h" - -#endif /* _CU_UP_Usage_Report_CellResourceReportItem_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/CU-UP-Usage-Report-Per-UE.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/CU-UP-Usage-Report-Per-UE.c deleted file mode 100644 index 5213281..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/CU-UP-Usage-Report-Per-UE.c +++ /dev/null @@ -1,129 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "CU-UP-Usage-Report-Per-UE.h" - -static int -memb_cellResourceReportList_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - /* Determine the number of elements */ - size = _A_CSEQUENCE_FROM_VOID(sptr)->count; - - if((size >= 1 && size <= 512)) { - /* Perform validation of the inner elements */ - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_oer_constraints_t asn_OER_type_cellResourceReportList_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..512)) */}; -static asn_per_constraints_t asn_PER_type_cellResourceReportList_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 9, 9, 1, 512 } /* (SIZE(1..512)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_cellResourceReportList_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..512)) */}; -static asn_per_constraints_t asn_PER_memb_cellResourceReportList_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 9, 9, 1, 512 } /* (SIZE(1..512)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_cellResourceReportList_2[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CU_UP_Usage_Report_CellResourceReportItem, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_cellResourceReportList_tags_2[] = { - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_cellResourceReportList_specs_2 = { - sizeof(struct CU_UP_Usage_Report_Per_UE__cellResourceReportList), - offsetof(struct CU_UP_Usage_Report_Per_UE__cellResourceReportList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_cellResourceReportList_2 = { - "cellResourceReportList", - "cellResourceReportList", - &asn_OP_SEQUENCE_OF, - asn_DEF_cellResourceReportList_tags_2, - sizeof(asn_DEF_cellResourceReportList_tags_2) - /sizeof(asn_DEF_cellResourceReportList_tags_2[0]) - 1, /* 1 */ - asn_DEF_cellResourceReportList_tags_2, /* Same as above */ - sizeof(asn_DEF_cellResourceReportList_tags_2) - /sizeof(asn_DEF_cellResourceReportList_tags_2[0]), /* 2 */ - { &asn_OER_type_cellResourceReportList_constr_2, &asn_PER_type_cellResourceReportList_constr_2, SEQUENCE_OF_constraint }, - asn_MBR_cellResourceReportList_2, - 1, /* Single element */ - &asn_SPC_cellResourceReportList_specs_2 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_CU_UP_Usage_Report_Per_UE_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct CU_UP_Usage_Report_Per_UE, cellResourceReportList), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - 0, - &asn_DEF_cellResourceReportList_2, - 0, - { &asn_OER_memb_cellResourceReportList_constr_2, &asn_PER_memb_cellResourceReportList_constr_2, memb_cellResourceReportList_constraint_1 }, - 0, 0, /* No default value */ - "cellResourceReportList" - }, -}; -static const ber_tlv_tag_t asn_DEF_CU_UP_Usage_Report_Per_UE_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_CU_UP_Usage_Report_Per_UE_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* cellResourceReportList */ -}; -asn_SEQUENCE_specifics_t asn_SPC_CU_UP_Usage_Report_Per_UE_specs_1 = { - sizeof(struct CU_UP_Usage_Report_Per_UE), - offsetof(struct CU_UP_Usage_Report_Per_UE, _asn_ctx), - asn_MAP_CU_UP_Usage_Report_Per_UE_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_CU_UP_Usage_Report_Per_UE = { - "CU-UP-Usage-Report-Per-UE", - "CU-UP-Usage-Report-Per-UE", - &asn_OP_SEQUENCE, - asn_DEF_CU_UP_Usage_Report_Per_UE_tags_1, - sizeof(asn_DEF_CU_UP_Usage_Report_Per_UE_tags_1) - /sizeof(asn_DEF_CU_UP_Usage_Report_Per_UE_tags_1[0]), /* 1 */ - asn_DEF_CU_UP_Usage_Report_Per_UE_tags_1, /* Same as above */ - sizeof(asn_DEF_CU_UP_Usage_Report_Per_UE_tags_1) - /sizeof(asn_DEF_CU_UP_Usage_Report_Per_UE_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_CU_UP_Usage_Report_Per_UE_1, - 1, /* Elements count */ - &asn_SPC_CU_UP_Usage_Report_Per_UE_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/CU-UP-Usage-Report-Per-UE.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/CU-UP-Usage-Report-Per-UE.h deleted file mode 100644 index 71e6ed9..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/CU-UP-Usage-Report-Per-UE.h +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _CU_UP_Usage_Report_Per_UE_H_ -#define _CU_UP_Usage_Report_Per_UE_H_ - - -#include - -/* Including external dependencies */ -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct CU_UP_Usage_Report_CellResourceReportItem; - -/* CU-UP-Usage-Report-Per-UE */ -typedef struct CU_UP_Usage_Report_Per_UE { - struct CU_UP_Usage_Report_Per_UE__cellResourceReportList { - A_SEQUENCE_OF(struct CU_UP_Usage_Report_CellResourceReportItem) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } cellResourceReportList; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} CU_UP_Usage_Report_Per_UE_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_CU_UP_Usage_Report_Per_UE; -extern asn_SEQUENCE_specifics_t asn_SPC_CU_UP_Usage_Report_Per_UE_specs_1; -extern asn_TYPE_member_t asn_MBR_CU_UP_Usage_Report_Per_UE_1[1]; - -#ifdef __cplusplus -} -#endif - -/* Referred external types */ -#include "CU-UP-Usage-Report-CellResourceReportItem.h" - -#endif /* _CU_UP_Usage_Report_Per_UE_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/CU-UP-Usage-Report-UeResourceReportItem.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/CU-UP-Usage-Report-UeResourceReportItem.c deleted file mode 100644 index 1867379..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/CU-UP-Usage-Report-UeResourceReportItem.c +++ /dev/null @@ -1,150 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "CU-UP-Usage-Report-UeResourceReportItem.h" - -static int -memb_pDCPBytesDL_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const INTEGER_t *st = (const INTEGER_t *)sptr; - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if(asn_INTEGER2long(st, &value)) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value too large (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if((value >= 0 && value <= 10000000000)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_pDCPBytesUL_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const INTEGER_t *st = (const INTEGER_t *)sptr; - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if(asn_INTEGER2long(st, &value)) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value too large (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if((value >= 0 && value <= 10000000000)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_oer_constraints_t asn_OER_memb_pDCPBytesDL_constr_3 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_memb_pDCPBytesDL_constr_3 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 34, -1, 0, 10000000000 } /* (0..10000000000,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_pDCPBytesUL_constr_4 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_memb_pDCPBytesUL_constr_4 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 34, -1, 0, 10000000000 } /* (0..10000000000,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_CU_UP_Usage_Report_UeResourceReportItem_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct CU_UP_Usage_Report_UeResourceReportItem, c_RNTI), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_C_RNTI, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "c-RNTI" - }, - { ATF_POINTER, 2, offsetof(struct CU_UP_Usage_Report_UeResourceReportItem, pDCPBytesDL), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_INTEGER, - 0, - { &asn_OER_memb_pDCPBytesDL_constr_3, &asn_PER_memb_pDCPBytesDL_constr_3, memb_pDCPBytesDL_constraint_1 }, - 0, 0, /* No default value */ - "pDCPBytesDL" - }, - { ATF_POINTER, 1, offsetof(struct CU_UP_Usage_Report_UeResourceReportItem, pDCPBytesUL), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_INTEGER, - 0, - { &asn_OER_memb_pDCPBytesUL_constr_4, &asn_PER_memb_pDCPBytesUL_constr_4, memb_pDCPBytesUL_constraint_1 }, - 0, 0, /* No default value */ - "pDCPBytesUL" - }, -}; -static const int asn_MAP_CU_UP_Usage_Report_UeResourceReportItem_oms_1[] = { 1, 2 }; -static const ber_tlv_tag_t asn_DEF_CU_UP_Usage_Report_UeResourceReportItem_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_CU_UP_Usage_Report_UeResourceReportItem_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* c-RNTI */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* pDCPBytesDL */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* pDCPBytesUL */ -}; -asn_SEQUENCE_specifics_t asn_SPC_CU_UP_Usage_Report_UeResourceReportItem_specs_1 = { - sizeof(struct CU_UP_Usage_Report_UeResourceReportItem), - offsetof(struct CU_UP_Usage_Report_UeResourceReportItem, _asn_ctx), - asn_MAP_CU_UP_Usage_Report_UeResourceReportItem_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_CU_UP_Usage_Report_UeResourceReportItem_oms_1, /* Optional members */ - 2, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_CU_UP_Usage_Report_UeResourceReportItem = { - "CU-UP-Usage-Report-UeResourceReportItem", - "CU-UP-Usage-Report-UeResourceReportItem", - &asn_OP_SEQUENCE, - asn_DEF_CU_UP_Usage_Report_UeResourceReportItem_tags_1, - sizeof(asn_DEF_CU_UP_Usage_Report_UeResourceReportItem_tags_1) - /sizeof(asn_DEF_CU_UP_Usage_Report_UeResourceReportItem_tags_1[0]), /* 1 */ - asn_DEF_CU_UP_Usage_Report_UeResourceReportItem_tags_1, /* Same as above */ - sizeof(asn_DEF_CU_UP_Usage_Report_UeResourceReportItem_tags_1) - /sizeof(asn_DEF_CU_UP_Usage_Report_UeResourceReportItem_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_CU_UP_Usage_Report_UeResourceReportItem_1, - 3, /* Elements count */ - &asn_SPC_CU_UP_Usage_Report_UeResourceReportItem_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/CU-UP-Usage-Report-UeResourceReportItem.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/CU-UP-Usage-Report-UeResourceReportItem.h deleted file mode 100644 index 3a3dec7..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/CU-UP-Usage-Report-UeResourceReportItem.h +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _CU_UP_Usage_Report_UeResourceReportItem_H_ -#define _CU_UP_Usage_Report_UeResourceReportItem_H_ - - -#include - -/* Including external dependencies */ -#include "C-RNTI.h" -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* CU-UP-Usage-Report-UeResourceReportItem */ -typedef struct CU_UP_Usage_Report_UeResourceReportItem { - C_RNTI_t c_RNTI; - INTEGER_t *pDCPBytesDL; /* OPTIONAL */ - INTEGER_t *pDCPBytesUL; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} CU_UP_Usage_Report_UeResourceReportItem_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_CU_UP_Usage_Report_UeResourceReportItem; -extern asn_SEQUENCE_specifics_t asn_SPC_CU_UP_Usage_Report_UeResourceReportItem_specs_1; -extern asn_TYPE_member_t asn_MBR_CU_UP_Usage_Report_UeResourceReportItem_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _CU_UP_Usage_Report_UeResourceReportItem_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/CUUPMeasurement-Container.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/CUUPMeasurement-Container.c deleted file mode 100644 index bd27283..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/CUUPMeasurement-Container.c +++ /dev/null @@ -1,129 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "CUUPMeasurement-Container.h" - -static int -memb_plmnList_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - /* Determine the number of elements */ - size = _A_CSEQUENCE_FROM_VOID(sptr)->count; - - if((size >= 1 && size <= 12)) { - /* Perform validation of the inner elements */ - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_oer_constraints_t asn_OER_type_plmnList_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..12)) */}; -static asn_per_constraints_t asn_PER_type_plmnList_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 4, 4, 1, 12 } /* (SIZE(1..12)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_plmnList_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..12)) */}; -static asn_per_constraints_t asn_PER_memb_plmnList_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 4, 4, 1, 12 } /* (SIZE(1..12)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_plmnList_2[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_PlmnID_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_plmnList_tags_2[] = { - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_plmnList_specs_2 = { - sizeof(struct CUUPMeasurement_Container__plmnList), - offsetof(struct CUUPMeasurement_Container__plmnList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_plmnList_2 = { - "plmnList", - "plmnList", - &asn_OP_SEQUENCE_OF, - asn_DEF_plmnList_tags_2, - sizeof(asn_DEF_plmnList_tags_2) - /sizeof(asn_DEF_plmnList_tags_2[0]) - 1, /* 1 */ - asn_DEF_plmnList_tags_2, /* Same as above */ - sizeof(asn_DEF_plmnList_tags_2) - /sizeof(asn_DEF_plmnList_tags_2[0]), /* 2 */ - { &asn_OER_type_plmnList_constr_2, &asn_PER_type_plmnList_constr_2, SEQUENCE_OF_constraint }, - asn_MBR_plmnList_2, - 1, /* Single element */ - &asn_SPC_plmnList_specs_2 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_CUUPMeasurement_Container_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct CUUPMeasurement_Container, plmnList), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - 0, - &asn_DEF_plmnList_2, - 0, - { &asn_OER_memb_plmnList_constr_2, &asn_PER_memb_plmnList_constr_2, memb_plmnList_constraint_1 }, - 0, 0, /* No default value */ - "plmnList" - }, -}; -static const ber_tlv_tag_t asn_DEF_CUUPMeasurement_Container_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_CUUPMeasurement_Container_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* plmnList */ -}; -asn_SEQUENCE_specifics_t asn_SPC_CUUPMeasurement_Container_specs_1 = { - sizeof(struct CUUPMeasurement_Container), - offsetof(struct CUUPMeasurement_Container, _asn_ctx), - asn_MAP_CUUPMeasurement_Container_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_CUUPMeasurement_Container = { - "CUUPMeasurement-Container", - "CUUPMeasurement-Container", - &asn_OP_SEQUENCE, - asn_DEF_CUUPMeasurement_Container_tags_1, - sizeof(asn_DEF_CUUPMeasurement_Container_tags_1) - /sizeof(asn_DEF_CUUPMeasurement_Container_tags_1[0]), /* 1 */ - asn_DEF_CUUPMeasurement_Container_tags_1, /* Same as above */ - sizeof(asn_DEF_CUUPMeasurement_Container_tags_1) - /sizeof(asn_DEF_CUUPMeasurement_Container_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_CUUPMeasurement_Container_1, - 1, /* Elements count */ - &asn_SPC_CUUPMeasurement_Container_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/CUUPMeasurement-Container.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/CUUPMeasurement-Container.h deleted file mode 100644 index 14aafc3..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/CUUPMeasurement-Container.h +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _CUUPMeasurement_Container_H_ -#define _CUUPMeasurement_Container_H_ - - -#include - -/* Including external dependencies */ -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct PlmnID_List; - -/* CUUPMeasurement-Container */ -typedef struct CUUPMeasurement_Container { - struct CUUPMeasurement_Container__plmnList { - A_SEQUENCE_OF(struct PlmnID_List) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } plmnList; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} CUUPMeasurement_Container_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_CUUPMeasurement_Container; -extern asn_SEQUENCE_specifics_t asn_SPC_CUUPMeasurement_Container_specs_1; -extern asn_TYPE_member_t asn_MBR_CUUPMeasurement_Container_1[1]; - -#ifdef __cplusplus -} -#endif - -/* Referred external types */ -#include "PlmnID-List.h" - -#endif /* _CUUPMeasurement_Container_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/Cause.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/Cause.c deleted file mode 100644 index 1027911..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/Cause.c +++ /dev/null @@ -1,92 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "Cause.h" - -asn_per_constraints_t asn_PER_type_Cause_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 4 } /* (0..4,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_Cause_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct Cause, choice.ricRequest), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_CauseRIC, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ricRequest" - }, - { ATF_NOFLAGS, 0, offsetof(struct Cause, choice.ricService), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_CauseRICservice, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ricService" - }, - { ATF_NOFLAGS, 0, offsetof(struct Cause, choice.transport), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_CauseTransport, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "transport" - }, - { ATF_NOFLAGS, 0, offsetof(struct Cause, choice.protocol), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_CauseProtocol, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocol" - }, - { ATF_NOFLAGS, 0, offsetof(struct Cause, choice.misc), - (ASN_TAG_CLASS_CONTEXT | (4 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_CauseMisc, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "misc" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_Cause_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ricRequest */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ricService */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* transport */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* protocol */ - { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* misc */ -}; -asn_CHOICE_specifics_t asn_SPC_Cause_specs_1 = { - sizeof(struct Cause), - offsetof(struct Cause, _asn_ctx), - offsetof(struct Cause, present), - sizeof(((struct Cause *)0)->present), - asn_MAP_Cause_tag2el_1, - 5, /* Count of tags in the map */ - 0, 0, - 5 /* Extensions start */ -}; -asn_TYPE_descriptor_t asn_DEF_Cause = { - "Cause", - "Cause", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, &asn_PER_type_Cause_constr_1, CHOICE_constraint }, - asn_MBR_Cause_1, - 5, /* Elements count */ - &asn_SPC_Cause_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/Cause.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/Cause.h deleted file mode 100644 index 1b829a6..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/Cause.h +++ /dev/null @@ -1,68 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _Cause_H_ -#define _Cause_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "CauseRIC.h" -#include "CauseRICservice.h" -#include "CauseTransport.h" -#include "CauseProtocol.h" -#include "CauseMisc.h" -#include "constr_CHOICE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum Cause_PR { - Cause_PR_NOTHING, /* No components present */ - Cause_PR_ricRequest, - Cause_PR_ricService, - Cause_PR_transport, - Cause_PR_protocol, - Cause_PR_misc - /* Extensions may appear below */ - -} Cause_PR; - -/* Cause */ -typedef struct Cause { - Cause_PR present; - union Cause_u { - CauseRIC_t ricRequest; - CauseRICservice_t ricService; - CauseTransport_t transport; - CauseProtocol_t protocol; - CauseMisc_t misc; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} Cause_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_Cause; -extern asn_CHOICE_specifics_t asn_SPC_Cause_specs_1; -extern asn_TYPE_member_t asn_MBR_Cause_1[5]; -extern asn_per_constraints_t asn_PER_type_Cause_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _Cause_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/CauseMisc.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/CauseMisc.c deleted file mode 100644 index 1709929..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/CauseMisc.c +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "CauseMisc.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_CauseMisc_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 3 } /* (0..3,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_CauseMisc_value2enum_1[] = { - { 0, 27, "control-processing-overload" }, - { 1, 16, "hardware-failure" }, - { 2, 15, "om-intervention" }, - { 3, 11, "unspecified" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_CauseMisc_enum2value_1[] = { - 0, /* control-processing-overload(0) */ - 1, /* hardware-failure(1) */ - 2, /* om-intervention(2) */ - 3 /* unspecified(3) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_CauseMisc_specs_1 = { - asn_MAP_CauseMisc_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_CauseMisc_enum2value_1, /* N => "tag"; sorted by N */ - 4, /* Number of elements in the maps */ - 5, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_CauseMisc_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_CauseMisc = { - "CauseMisc", - "CauseMisc", - &asn_OP_NativeEnumerated, - asn_DEF_CauseMisc_tags_1, - sizeof(asn_DEF_CauseMisc_tags_1) - /sizeof(asn_DEF_CauseMisc_tags_1[0]), /* 1 */ - asn_DEF_CauseMisc_tags_1, /* Same as above */ - sizeof(asn_DEF_CauseMisc_tags_1) - /sizeof(asn_DEF_CauseMisc_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_CauseMisc_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_CauseMisc_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/CauseMisc.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/CauseMisc.h deleted file mode 100644 index d175009..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/CauseMisc.h +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _CauseMisc_H_ -#define _CauseMisc_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum CauseMisc { - CauseMisc_control_processing_overload = 0, - CauseMisc_hardware_failure = 1, - CauseMisc_om_intervention = 2, - CauseMisc_unspecified = 3 - /* - * Enumeration is extensible - */ -} e_CauseMisc; - -/* CauseMisc */ -typedef long CauseMisc_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_CauseMisc_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_CauseMisc; -extern const asn_INTEGER_specifics_t asn_SPC_CauseMisc_specs_1; -asn_struct_free_f CauseMisc_free; -asn_struct_print_f CauseMisc_print; -asn_constr_check_f CauseMisc_constraint; -ber_type_decoder_f CauseMisc_decode_ber; -der_type_encoder_f CauseMisc_encode_der; -xer_type_decoder_f CauseMisc_decode_xer; -xer_type_encoder_f CauseMisc_encode_xer; -per_type_decoder_f CauseMisc_decode_uper; -per_type_encoder_f CauseMisc_encode_uper; -per_type_decoder_f CauseMisc_decode_aper; -per_type_encoder_f CauseMisc_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _CauseMisc_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/CauseProtocol.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/CauseProtocol.c deleted file mode 100644 index e5b11b0..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/CauseProtocol.c +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "CauseProtocol.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_CauseProtocol_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 6 } /* (0..6,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_CauseProtocol_value2enum_1[] = { - { 0, 21, "transfer-syntax-error" }, - { 1, 28, "abstract-syntax-error-reject" }, - { 2, 39, "abstract-syntax-error-ignore-and-notify" }, - { 3, 42, "message-not-compatible-with-receiver-state" }, - { 4, 14, "semantic-error" }, - { 5, 49, "abstract-syntax-error-falsely-constructed-message" }, - { 6, 11, "unspecified" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_CauseProtocol_enum2value_1[] = { - 5, /* abstract-syntax-error-falsely-constructed-message(5) */ - 2, /* abstract-syntax-error-ignore-and-notify(2) */ - 1, /* abstract-syntax-error-reject(1) */ - 3, /* message-not-compatible-with-receiver-state(3) */ - 4, /* semantic-error(4) */ - 0, /* transfer-syntax-error(0) */ - 6 /* unspecified(6) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_CauseProtocol_specs_1 = { - asn_MAP_CauseProtocol_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_CauseProtocol_enum2value_1, /* N => "tag"; sorted by N */ - 7, /* Number of elements in the maps */ - 8, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_CauseProtocol_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_CauseProtocol = { - "CauseProtocol", - "CauseProtocol", - &asn_OP_NativeEnumerated, - asn_DEF_CauseProtocol_tags_1, - sizeof(asn_DEF_CauseProtocol_tags_1) - /sizeof(asn_DEF_CauseProtocol_tags_1[0]), /* 1 */ - asn_DEF_CauseProtocol_tags_1, /* Same as above */ - sizeof(asn_DEF_CauseProtocol_tags_1) - /sizeof(asn_DEF_CauseProtocol_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_CauseProtocol_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_CauseProtocol_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/CauseProtocol.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/CauseProtocol.h deleted file mode 100644 index 72329ac..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/CauseProtocol.h +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _CauseProtocol_H_ -#define _CauseProtocol_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum CauseProtocol { - CauseProtocol_transfer_syntax_error = 0, - CauseProtocol_abstract_syntax_error_reject = 1, - CauseProtocol_abstract_syntax_error_ignore_and_notify = 2, - CauseProtocol_message_not_compatible_with_receiver_state = 3, - CauseProtocol_semantic_error = 4, - CauseProtocol_abstract_syntax_error_falsely_constructed_message = 5, - CauseProtocol_unspecified = 6 - /* - * Enumeration is extensible - */ -} e_CauseProtocol; - -/* CauseProtocol */ -typedef long CauseProtocol_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_CauseProtocol_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_CauseProtocol; -extern const asn_INTEGER_specifics_t asn_SPC_CauseProtocol_specs_1; -asn_struct_free_f CauseProtocol_free; -asn_struct_print_f CauseProtocol_print; -asn_constr_check_f CauseProtocol_constraint; -ber_type_decoder_f CauseProtocol_decode_ber; -der_type_encoder_f CauseProtocol_encode_der; -xer_type_decoder_f CauseProtocol_decode_xer; -xer_type_encoder_f CauseProtocol_encode_xer; -per_type_decoder_f CauseProtocol_decode_uper; -per_type_encoder_f CauseProtocol_encode_uper; -per_type_decoder_f CauseProtocol_decode_aper; -per_type_encoder_f CauseProtocol_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _CauseProtocol_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/CauseRIC.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/CauseRIC.c deleted file mode 100644 index 11d9e4e..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/CauseRIC.c +++ /dev/null @@ -1,73 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "CauseRIC.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_CauseRIC_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 4, 4, 0, 10 } /* (0..10,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_CauseRIC_value2enum_1[] = { - { 0, 23, "ran-function-id-Invalid" }, - { 1, 20, "action-not-supported" }, - { 2, 17, "excessive-actions" }, - { 3, 16, "duplicate-action" }, - { 4, 15, "duplicate-event" }, - { 5, 23, "function-resource-limit" }, - { 6, 18, "request-id-unknown" }, - { 7, 46, "inconsistent-action-subsequent-action-sequence" }, - { 8, 23, "control-message-invalid" }, - { 9, 23, "call-process-id-invalid" }, - { 10, 11, "unspecified" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_CauseRIC_enum2value_1[] = { - 1, /* action-not-supported(1) */ - 9, /* call-process-id-invalid(9) */ - 8, /* control-message-invalid(8) */ - 3, /* duplicate-action(3) */ - 4, /* duplicate-event(4) */ - 2, /* excessive-actions(2) */ - 5, /* function-resource-limit(5) */ - 7, /* inconsistent-action-subsequent-action-sequence(7) */ - 0, /* ran-function-id-Invalid(0) */ - 6, /* request-id-unknown(6) */ - 10 /* unspecified(10) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_CauseRIC_specs_1 = { - asn_MAP_CauseRIC_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_CauseRIC_enum2value_1, /* N => "tag"; sorted by N */ - 11, /* Number of elements in the maps */ - 12, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_CauseRIC_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_CauseRIC = { - "CauseRIC", - "CauseRIC", - &asn_OP_NativeEnumerated, - asn_DEF_CauseRIC_tags_1, - sizeof(asn_DEF_CauseRIC_tags_1) - /sizeof(asn_DEF_CauseRIC_tags_1[0]), /* 1 */ - asn_DEF_CauseRIC_tags_1, /* Same as above */ - sizeof(asn_DEF_CauseRIC_tags_1) - /sizeof(asn_DEF_CauseRIC_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_CauseRIC_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_CauseRIC_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/CauseRIC.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/CauseRIC.h deleted file mode 100644 index 417532f..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/CauseRIC.h +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _CauseRIC_H_ -#define _CauseRIC_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum CauseRIC { - CauseRIC_ran_function_id_Invalid = 0, - CauseRIC_action_not_supported = 1, - CauseRIC_excessive_actions = 2, - CauseRIC_duplicate_action = 3, - CauseRIC_duplicate_event = 4, - CauseRIC_function_resource_limit = 5, - CauseRIC_request_id_unknown = 6, - CauseRIC_inconsistent_action_subsequent_action_sequence = 7, - CauseRIC_control_message_invalid = 8, - CauseRIC_call_process_id_invalid = 9, - CauseRIC_unspecified = 10 - /* - * Enumeration is extensible - */ -} e_CauseRIC; - -/* CauseRIC */ -typedef long CauseRIC_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_CauseRIC_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_CauseRIC; -extern const asn_INTEGER_specifics_t asn_SPC_CauseRIC_specs_1; -asn_struct_free_f CauseRIC_free; -asn_struct_print_f CauseRIC_print; -asn_constr_check_f CauseRIC_constraint; -ber_type_decoder_f CauseRIC_decode_ber; -der_type_encoder_f CauseRIC_encode_der; -xer_type_decoder_f CauseRIC_decode_xer; -xer_type_encoder_f CauseRIC_encode_xer; -per_type_decoder_f CauseRIC_decode_uper; -per_type_encoder_f CauseRIC_encode_uper; -per_type_decoder_f CauseRIC_decode_aper; -per_type_encoder_f CauseRIC_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _CauseRIC_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/CauseRICservice.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/CauseRICservice.c deleted file mode 100644 index 6773fd4..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/CauseRICservice.c +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "CauseRICservice.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_CauseRICservice_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 2 } /* (0..2,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_CauseRICservice_value2enum_1[] = { - { 0, 21, "function-not-required" }, - { 1, 19, "excessive-functions" }, - { 2, 18, "ric-resource-limit" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_CauseRICservice_enum2value_1[] = { - 1, /* excessive-functions(1) */ - 0, /* function-not-required(0) */ - 2 /* ric-resource-limit(2) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_CauseRICservice_specs_1 = { - asn_MAP_CauseRICservice_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_CauseRICservice_enum2value_1, /* N => "tag"; sorted by N */ - 3, /* Number of elements in the maps */ - 4, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_CauseRICservice_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_CauseRICservice = { - "CauseRICservice", - "CauseRICservice", - &asn_OP_NativeEnumerated, - asn_DEF_CauseRICservice_tags_1, - sizeof(asn_DEF_CauseRICservice_tags_1) - /sizeof(asn_DEF_CauseRICservice_tags_1[0]), /* 1 */ - asn_DEF_CauseRICservice_tags_1, /* Same as above */ - sizeof(asn_DEF_CauseRICservice_tags_1) - /sizeof(asn_DEF_CauseRICservice_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_CauseRICservice_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_CauseRICservice_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/CauseRICservice.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/CauseRICservice.h deleted file mode 100644 index 4270eb3..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/CauseRICservice.h +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _CauseRICservice_H_ -#define _CauseRICservice_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum CauseRICservice { - CauseRICservice_function_not_required = 0, - CauseRICservice_excessive_functions = 1, - CauseRICservice_ric_resource_limit = 2 - /* - * Enumeration is extensible - */ -} e_CauseRICservice; - -/* CauseRICservice */ -typedef long CauseRICservice_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_CauseRICservice_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_CauseRICservice; -extern const asn_INTEGER_specifics_t asn_SPC_CauseRICservice_specs_1; -asn_struct_free_f CauseRICservice_free; -asn_struct_print_f CauseRICservice_print; -asn_constr_check_f CauseRICservice_constraint; -ber_type_decoder_f CauseRICservice_decode_ber; -der_type_encoder_f CauseRICservice_encode_der; -xer_type_decoder_f CauseRICservice_decode_xer; -xer_type_encoder_f CauseRICservice_encode_xer; -per_type_decoder_f CauseRICservice_decode_uper; -per_type_encoder_f CauseRICservice_encode_uper; -per_type_decoder_f CauseRICservice_decode_aper; -per_type_encoder_f CauseRICservice_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _CauseRICservice_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/CauseTransport.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/CauseTransport.c deleted file mode 100644 index 08a317d..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/CauseTransport.c +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "CauseTransport.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_CauseTransport_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_CauseTransport_value2enum_1[] = { - { 0, 11, "unspecified" }, - { 1, 30, "transport-resource-unavailable" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_CauseTransport_enum2value_1[] = { - 1, /* transport-resource-unavailable(1) */ - 0 /* unspecified(0) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_CauseTransport_specs_1 = { - asn_MAP_CauseTransport_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_CauseTransport_enum2value_1, /* N => "tag"; sorted by N */ - 2, /* Number of elements in the maps */ - 3, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_CauseTransport_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_CauseTransport = { - "CauseTransport", - "CauseTransport", - &asn_OP_NativeEnumerated, - asn_DEF_CauseTransport_tags_1, - sizeof(asn_DEF_CauseTransport_tags_1) - /sizeof(asn_DEF_CauseTransport_tags_1[0]), /* 1 */ - asn_DEF_CauseTransport_tags_1, /* Same as above */ - sizeof(asn_DEF_CauseTransport_tags_1) - /sizeof(asn_DEF_CauseTransport_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_CauseTransport_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_CauseTransport_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/CauseTransport.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/CauseTransport.h deleted file mode 100644 index f3fe969..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/CauseTransport.h +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _CauseTransport_H_ -#define _CauseTransport_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum CauseTransport { - CauseTransport_unspecified = 0, - CauseTransport_transport_resource_unavailable = 1 - /* - * Enumeration is extensible - */ -} e_CauseTransport; - -/* CauseTransport */ -typedef long CauseTransport_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_CauseTransport_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_CauseTransport; -extern const asn_INTEGER_specifics_t asn_SPC_CauseTransport_specs_1; -asn_struct_free_f CauseTransport_free; -asn_struct_print_f CauseTransport_print; -asn_constr_check_f CauseTransport_constraint; -ber_type_decoder_f CauseTransport_decode_ber; -der_type_encoder_f CauseTransport_encode_der; -xer_type_decoder_f CauseTransport_decode_xer; -xer_type_encoder_f CauseTransport_encode_xer; -per_type_decoder_f CauseTransport_decode_uper; -per_type_encoder_f CauseTransport_encode_uper; -per_type_decoder_f CauseTransport_decode_aper; -per_type_encoder_f CauseTransport_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _CauseTransport_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/CellResourceReportListItem.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/CellResourceReportListItem.c deleted file mode 100644 index 670d42a..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/CellResourceReportListItem.c +++ /dev/null @@ -1,227 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "CellResourceReportListItem.h" - -static int -memb_dl_TotalofAvailablePRBs_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 273)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_ul_TotalofAvailablePRBs_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 273)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_servedPlmnPerCellList_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - /* Determine the number of elements */ - size = _A_CSEQUENCE_FROM_VOID(sptr)->count; - - if((size >= 1 && size <= 12)) { - /* Perform validation of the inner elements */ - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_oer_constraints_t asn_OER_type_servedPlmnPerCellList_constr_5 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..12)) */}; -static asn_per_constraints_t asn_PER_type_servedPlmnPerCellList_constr_5 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 4, 4, 1, 12 } /* (SIZE(1..12)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_dl_TotalofAvailablePRBs_constr_3 CC_NOTUSED = { - { 2, 1 } /* (0..273) */, - -1}; -static asn_per_constraints_t asn_PER_memb_dl_TotalofAvailablePRBs_constr_3 CC_NOTUSED = { - { APC_CONSTRAINED, 9, 9, 0, 273 } /* (0..273) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_ul_TotalofAvailablePRBs_constr_4 CC_NOTUSED = { - { 2, 1 } /* (0..273) */, - -1}; -static asn_per_constraints_t asn_PER_memb_ul_TotalofAvailablePRBs_constr_4 CC_NOTUSED = { - { APC_CONSTRAINED, 9, 9, 0, 273 } /* (0..273) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_servedPlmnPerCellList_constr_5 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..12)) */}; -static asn_per_constraints_t asn_PER_memb_servedPlmnPerCellList_constr_5 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 4, 4, 1, 12 } /* (SIZE(1..12)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_servedPlmnPerCellList_5[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ServedPlmnPerCellListItem, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_servedPlmnPerCellList_tags_5[] = { - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_servedPlmnPerCellList_specs_5 = { - sizeof(struct CellResourceReportListItem__servedPlmnPerCellList), - offsetof(struct CellResourceReportListItem__servedPlmnPerCellList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_servedPlmnPerCellList_5 = { - "servedPlmnPerCellList", - "servedPlmnPerCellList", - &asn_OP_SEQUENCE_OF, - asn_DEF_servedPlmnPerCellList_tags_5, - sizeof(asn_DEF_servedPlmnPerCellList_tags_5) - /sizeof(asn_DEF_servedPlmnPerCellList_tags_5[0]) - 1, /* 1 */ - asn_DEF_servedPlmnPerCellList_tags_5, /* Same as above */ - sizeof(asn_DEF_servedPlmnPerCellList_tags_5) - /sizeof(asn_DEF_servedPlmnPerCellList_tags_5[0]), /* 2 */ - { &asn_OER_type_servedPlmnPerCellList_constr_5, &asn_PER_type_servedPlmnPerCellList_constr_5, SEQUENCE_OF_constraint }, - asn_MBR_servedPlmnPerCellList_5, - 1, /* Single element */ - &asn_SPC_servedPlmnPerCellList_specs_5 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_CellResourceReportListItem_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct CellResourceReportListItem, nRCGI), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NRCGI, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "nRCGI" - }, - { ATF_POINTER, 2, offsetof(struct CellResourceReportListItem, dl_TotalofAvailablePRBs), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_dl_TotalofAvailablePRBs_constr_3, &asn_PER_memb_dl_TotalofAvailablePRBs_constr_3, memb_dl_TotalofAvailablePRBs_constraint_1 }, - 0, 0, /* No default value */ - "dl-TotalofAvailablePRBs" - }, - { ATF_POINTER, 1, offsetof(struct CellResourceReportListItem, ul_TotalofAvailablePRBs), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_ul_TotalofAvailablePRBs_constr_4, &asn_PER_memb_ul_TotalofAvailablePRBs_constr_4, memb_ul_TotalofAvailablePRBs_constraint_1 }, - 0, 0, /* No default value */ - "ul-TotalofAvailablePRBs" - }, - { ATF_NOFLAGS, 0, offsetof(struct CellResourceReportListItem, servedPlmnPerCellList), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - 0, - &asn_DEF_servedPlmnPerCellList_5, - 0, - { &asn_OER_memb_servedPlmnPerCellList_constr_5, &asn_PER_memb_servedPlmnPerCellList_constr_5, memb_servedPlmnPerCellList_constraint_1 }, - 0, 0, /* No default value */ - "servedPlmnPerCellList" - }, -}; -static const int asn_MAP_CellResourceReportListItem_oms_1[] = { 1, 2 }; -static const ber_tlv_tag_t asn_DEF_CellResourceReportListItem_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_CellResourceReportListItem_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nRCGI */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* dl-TotalofAvailablePRBs */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* ul-TotalofAvailablePRBs */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* servedPlmnPerCellList */ -}; -asn_SEQUENCE_specifics_t asn_SPC_CellResourceReportListItem_specs_1 = { - sizeof(struct CellResourceReportListItem), - offsetof(struct CellResourceReportListItem, _asn_ctx), - asn_MAP_CellResourceReportListItem_tag2el_1, - 4, /* Count of tags in the map */ - asn_MAP_CellResourceReportListItem_oms_1, /* Optional members */ - 2, 0, /* Root/Additions */ - 4, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_CellResourceReportListItem = { - "CellResourceReportListItem", - "CellResourceReportListItem", - &asn_OP_SEQUENCE, - asn_DEF_CellResourceReportListItem_tags_1, - sizeof(asn_DEF_CellResourceReportListItem_tags_1) - /sizeof(asn_DEF_CellResourceReportListItem_tags_1[0]), /* 1 */ - asn_DEF_CellResourceReportListItem_tags_1, /* Same as above */ - sizeof(asn_DEF_CellResourceReportListItem_tags_1) - /sizeof(asn_DEF_CellResourceReportListItem_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_CellResourceReportListItem_1, - 4, /* Elements count */ - &asn_SPC_CellResourceReportListItem_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/CellResourceReportListItem.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/CellResourceReportListItem.h deleted file mode 100644 index 91bbf71..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/CellResourceReportListItem.h +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _CellResourceReportListItem_H_ -#define _CellResourceReportListItem_H_ - - -#include - -/* Including external dependencies */ -#include "NRCGI.h" -#include -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ServedPlmnPerCellListItem; - -/* CellResourceReportListItem */ -typedef struct CellResourceReportListItem { - NRCGI_t nRCGI; - long *dl_TotalofAvailablePRBs; /* OPTIONAL */ - long *ul_TotalofAvailablePRBs; /* OPTIONAL */ - struct CellResourceReportListItem__servedPlmnPerCellList { - A_SEQUENCE_OF(struct ServedPlmnPerCellListItem) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } servedPlmnPerCellList; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} CellResourceReportListItem_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_CellResourceReportListItem; -extern asn_SEQUENCE_specifics_t asn_SPC_CellResourceReportListItem_specs_1; -extern asn_TYPE_member_t asn_MBR_CellResourceReportListItem_1[4]; - -#ifdef __cplusplus -} -#endif - -/* Referred external types */ -#include "ServedPlmnPerCellListItem.h" - -#endif /* _CellResourceReportListItem_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/Criticality.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/Criticality.c deleted file mode 100644 index 217d8e5..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/Criticality.c +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-CommonDataTypes" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "Criticality.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_Criticality_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_Criticality_value2enum_1[] = { - { 0, 6, "reject" }, - { 1, 6, "ignore" }, - { 2, 6, "notify" } -}; -static const unsigned int asn_MAP_Criticality_enum2value_1[] = { - 1, /* ignore(1) */ - 2, /* notify(2) */ - 0 /* reject(0) */ -}; -const asn_INTEGER_specifics_t asn_SPC_Criticality_specs_1 = { - asn_MAP_Criticality_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_Criticality_enum2value_1, /* N => "tag"; sorted by N */ - 3, /* Number of elements in the maps */ - 0, /* Enumeration is not extensible */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_Criticality_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_Criticality = { - "Criticality", - "Criticality", - &asn_OP_NativeEnumerated, - asn_DEF_Criticality_tags_1, - sizeof(asn_DEF_Criticality_tags_1) - /sizeof(asn_DEF_Criticality_tags_1[0]), /* 1 */ - asn_DEF_Criticality_tags_1, /* Same as above */ - sizeof(asn_DEF_Criticality_tags_1) - /sizeof(asn_DEF_Criticality_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_Criticality_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_Criticality_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/Criticality.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/Criticality.h deleted file mode 100644 index ab1ecf2..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/Criticality.h +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-CommonDataTypes" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _Criticality_H_ -#define _Criticality_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum Criticality { - Criticality_reject = 0, - Criticality_ignore = 1, - Criticality_notify = 2 -} e_Criticality; - -/* Criticality */ -typedef long Criticality_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_Criticality_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_Criticality; -extern const asn_INTEGER_specifics_t asn_SPC_Criticality_specs_1; -asn_struct_free_f Criticality_free; -asn_struct_print_f Criticality_print; -asn_constr_check_f Criticality_constraint; -ber_type_decoder_f Criticality_decode_ber; -der_type_encoder_f Criticality_encode_der; -xer_type_decoder_f Criticality_decode_xer; -xer_type_encoder_f Criticality_encode_xer; -per_type_decoder_f Criticality_decode_uper; -per_type_encoder_f Criticality_encode_uper; -per_type_decoder_f Criticality_decode_aper; -per_type_encoder_f Criticality_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _Criticality_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/CriticalityDiagnostics-IE-Item.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/CriticalityDiagnostics-IE-Item.c deleted file mode 100644 index 0306093..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/CriticalityDiagnostics-IE-Item.c +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "CriticalityDiagnostics-IE-Item.h" - -asn_TYPE_member_t asn_MBR_CriticalityDiagnostics_IE_Item_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct CriticalityDiagnostics_IE_Item, iECriticality), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iECriticality" - }, - { ATF_NOFLAGS, 0, offsetof(struct CriticalityDiagnostics_IE_Item, iE_ID), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct CriticalityDiagnostics_IE_Item, typeOfError), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_TypeOfError, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "typeOfError" - }, -}; -static const ber_tlv_tag_t asn_DEF_CriticalityDiagnostics_IE_Item_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_CriticalityDiagnostics_IE_Item_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* iECriticality */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* iE-ID */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* typeOfError */ -}; -asn_SEQUENCE_specifics_t asn_SPC_CriticalityDiagnostics_IE_Item_specs_1 = { - sizeof(struct CriticalityDiagnostics_IE_Item), - offsetof(struct CriticalityDiagnostics_IE_Item, _asn_ctx), - asn_MAP_CriticalityDiagnostics_IE_Item_tag2el_1, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_CriticalityDiagnostics_IE_Item = { - "CriticalityDiagnostics-IE-Item", - "CriticalityDiagnostics-IE-Item", - &asn_OP_SEQUENCE, - asn_DEF_CriticalityDiagnostics_IE_Item_tags_1, - sizeof(asn_DEF_CriticalityDiagnostics_IE_Item_tags_1) - /sizeof(asn_DEF_CriticalityDiagnostics_IE_Item_tags_1[0]), /* 1 */ - asn_DEF_CriticalityDiagnostics_IE_Item_tags_1, /* Same as above */ - sizeof(asn_DEF_CriticalityDiagnostics_IE_Item_tags_1) - /sizeof(asn_DEF_CriticalityDiagnostics_IE_Item_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_CriticalityDiagnostics_IE_Item_1, - 3, /* Elements count */ - &asn_SPC_CriticalityDiagnostics_IE_Item_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/CriticalityDiagnostics-IE-Item.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/CriticalityDiagnostics-IE-Item.h deleted file mode 100644 index 1222f03..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/CriticalityDiagnostics-IE-Item.h +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _CriticalityDiagnostics_IE_Item_H_ -#define _CriticalityDiagnostics_IE_Item_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "Criticality.h" -#include "ProtocolIE-ID.h" -#include "TypeOfError.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* CriticalityDiagnostics-IE-Item */ -typedef struct CriticalityDiagnostics_IE_Item { - Criticality_t iECriticality; - ProtocolIE_ID_t iE_ID; - TypeOfError_t typeOfError; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} CriticalityDiagnostics_IE_Item_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_CriticalityDiagnostics_IE_Item; -extern asn_SEQUENCE_specifics_t asn_SPC_CriticalityDiagnostics_IE_Item_specs_1; -extern asn_TYPE_member_t asn_MBR_CriticalityDiagnostics_IE_Item_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _CriticalityDiagnostics_IE_Item_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/CriticalityDiagnostics-IE-List.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/CriticalityDiagnostics-IE-List.c deleted file mode 100644 index 502517f..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/CriticalityDiagnostics-IE-List.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "CriticalityDiagnostics-IE-List.h" - -#include "CriticalityDiagnostics-IE-Item.h" -asn_per_constraints_t asn_PER_type_CriticalityDiagnostics_IE_List_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 8, 8, 1, 256 } /* (SIZE(1..256)) */, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_CriticalityDiagnostics_IE_List_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CriticalityDiagnostics_IE_Item, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_CriticalityDiagnostics_IE_List_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_CriticalityDiagnostics_IE_List_specs_1 = { - sizeof(struct CriticalityDiagnostics_IE_List), - offsetof(struct CriticalityDiagnostics_IE_List, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_CriticalityDiagnostics_IE_List = { - "CriticalityDiagnostics-IE-List", - "CriticalityDiagnostics-IE-List", - &asn_OP_SEQUENCE_OF, - asn_DEF_CriticalityDiagnostics_IE_List_tags_1, - sizeof(asn_DEF_CriticalityDiagnostics_IE_List_tags_1) - /sizeof(asn_DEF_CriticalityDiagnostics_IE_List_tags_1[0]), /* 1 */ - asn_DEF_CriticalityDiagnostics_IE_List_tags_1, /* Same as above */ - sizeof(asn_DEF_CriticalityDiagnostics_IE_List_tags_1) - /sizeof(asn_DEF_CriticalityDiagnostics_IE_List_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_CriticalityDiagnostics_IE_List_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_CriticalityDiagnostics_IE_List_1, - 1, /* Single element */ - &asn_SPC_CriticalityDiagnostics_IE_List_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/CriticalityDiagnostics-IE-List.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/CriticalityDiagnostics-IE-List.h deleted file mode 100644 index 3f0d07b..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/CriticalityDiagnostics-IE-List.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _CriticalityDiagnostics_IE_List_H_ -#define _CriticalityDiagnostics_IE_List_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct CriticalityDiagnostics_IE_Item; - -/* CriticalityDiagnostics-IE-List */ -typedef struct CriticalityDiagnostics_IE_List { - A_SEQUENCE_OF(struct CriticalityDiagnostics_IE_Item) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} CriticalityDiagnostics_IE_List_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_CriticalityDiagnostics_IE_List; -extern asn_SET_OF_specifics_t asn_SPC_CriticalityDiagnostics_IE_List_specs_1; -extern asn_TYPE_member_t asn_MBR_CriticalityDiagnostics_IE_List_1[1]; -extern asn_per_constraints_t asn_PER_type_CriticalityDiagnostics_IE_List_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _CriticalityDiagnostics_IE_List_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/CriticalityDiagnostics.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/CriticalityDiagnostics.c deleted file mode 100644 index 825808b..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/CriticalityDiagnostics.c +++ /dev/null @@ -1,94 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "CriticalityDiagnostics.h" - -#include "RICrequestID.h" -#include "CriticalityDiagnostics-IE-List.h" -static asn_TYPE_member_t asn_MBR_CriticalityDiagnostics_1[] = { - { ATF_POINTER, 5, offsetof(struct CriticalityDiagnostics, procedureCode), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProcedureCode, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "procedureCode" - }, - { ATF_POINTER, 4, offsetof(struct CriticalityDiagnostics, triggeringMessage), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_TriggeringMessage, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "triggeringMessage" - }, - { ATF_POINTER, 3, offsetof(struct CriticalityDiagnostics, procedureCriticality), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "procedureCriticality" - }, - { ATF_POINTER, 2, offsetof(struct CriticalityDiagnostics, ricRequestorID), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RICrequestID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ricRequestorID" - }, - { ATF_POINTER, 1, offsetof(struct CriticalityDiagnostics, iEsCriticalityDiagnostics), - (ASN_TAG_CLASS_CONTEXT | (4 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_CriticalityDiagnostics_IE_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iEsCriticalityDiagnostics" - }, -}; -static const int asn_MAP_CriticalityDiagnostics_oms_1[] = { 0, 1, 2, 3, 4 }; -static const ber_tlv_tag_t asn_DEF_CriticalityDiagnostics_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_CriticalityDiagnostics_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* procedureCode */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* triggeringMessage */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* procedureCriticality */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* ricRequestorID */ - { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* iEsCriticalityDiagnostics */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_CriticalityDiagnostics_specs_1 = { - sizeof(struct CriticalityDiagnostics), - offsetof(struct CriticalityDiagnostics, _asn_ctx), - asn_MAP_CriticalityDiagnostics_tag2el_1, - 5, /* Count of tags in the map */ - asn_MAP_CriticalityDiagnostics_oms_1, /* Optional members */ - 5, 0, /* Root/Additions */ - 5, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_CriticalityDiagnostics = { - "CriticalityDiagnostics", - "CriticalityDiagnostics", - &asn_OP_SEQUENCE, - asn_DEF_CriticalityDiagnostics_tags_1, - sizeof(asn_DEF_CriticalityDiagnostics_tags_1) - /sizeof(asn_DEF_CriticalityDiagnostics_tags_1[0]), /* 1 */ - asn_DEF_CriticalityDiagnostics_tags_1, /* Same as above */ - sizeof(asn_DEF_CriticalityDiagnostics_tags_1) - /sizeof(asn_DEF_CriticalityDiagnostics_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_CriticalityDiagnostics_1, - 5, /* Elements count */ - &asn_SPC_CriticalityDiagnostics_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/CriticalityDiagnostics.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/CriticalityDiagnostics.h deleted file mode 100644 index 9cef6bf..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/CriticalityDiagnostics.h +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _CriticalityDiagnostics_H_ -#define _CriticalityDiagnostics_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProcedureCode.h" -#include "TriggeringMessage.h" -#include "Criticality.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct RICrequestID; -struct CriticalityDiagnostics_IE_List; - -/* CriticalityDiagnostics */ -typedef struct CriticalityDiagnostics { - ProcedureCode_t *procedureCode; /* OPTIONAL */ - TriggeringMessage_t *triggeringMessage; /* OPTIONAL */ - Criticality_t *procedureCriticality; /* OPTIONAL */ - struct RICrequestID *ricRequestorID; /* OPTIONAL */ - struct CriticalityDiagnostics_IE_List *iEsCriticalityDiagnostics; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} CriticalityDiagnostics_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_CriticalityDiagnostics; - -#ifdef __cplusplus -} -#endif - -#endif /* _CriticalityDiagnostics_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/DU-Usage-Report-CellResourceReportItem.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/DU-Usage-Report-CellResourceReportItem.c deleted file mode 100644 index eee9621..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/DU-Usage-Report-CellResourceReportItem.c +++ /dev/null @@ -1,139 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "DU-Usage-Report-CellResourceReportItem.h" - -static int -memb_ueResourceReportList_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - /* Determine the number of elements */ - size = _A_CSEQUENCE_FROM_VOID(sptr)->count; - - if((size >= 1 && size <= 32)) { - /* Perform validation of the inner elements */ - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_oer_constraints_t asn_OER_type_ueResourceReportList_constr_3 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..32)) */}; -static asn_per_constraints_t asn_PER_type_ueResourceReportList_constr_3 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_ueResourceReportList_constr_3 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..32)) */}; -static asn_per_constraints_t asn_PER_memb_ueResourceReportList_constr_3 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_ueResourceReportList_3[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_DU_Usage_Report_UeResourceReportItem, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ueResourceReportList_tags_3[] = { - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_ueResourceReportList_specs_3 = { - sizeof(struct DU_Usage_Report_CellResourceReportItem__ueResourceReportList), - offsetof(struct DU_Usage_Report_CellResourceReportItem__ueResourceReportList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_ueResourceReportList_3 = { - "ueResourceReportList", - "ueResourceReportList", - &asn_OP_SEQUENCE_OF, - asn_DEF_ueResourceReportList_tags_3, - sizeof(asn_DEF_ueResourceReportList_tags_3) - /sizeof(asn_DEF_ueResourceReportList_tags_3[0]) - 1, /* 1 */ - asn_DEF_ueResourceReportList_tags_3, /* Same as above */ - sizeof(asn_DEF_ueResourceReportList_tags_3) - /sizeof(asn_DEF_ueResourceReportList_tags_3[0]), /* 2 */ - { &asn_OER_type_ueResourceReportList_constr_3, &asn_PER_type_ueResourceReportList_constr_3, SEQUENCE_OF_constraint }, - asn_MBR_ueResourceReportList_3, - 1, /* Single element */ - &asn_SPC_ueResourceReportList_specs_3 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_DU_Usage_Report_CellResourceReportItem_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct DU_Usage_Report_CellResourceReportItem, nRCGI), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NRCGI, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "nRCGI" - }, - { ATF_NOFLAGS, 0, offsetof(struct DU_Usage_Report_CellResourceReportItem, ueResourceReportList), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - 0, - &asn_DEF_ueResourceReportList_3, - 0, - { &asn_OER_memb_ueResourceReportList_constr_3, &asn_PER_memb_ueResourceReportList_constr_3, memb_ueResourceReportList_constraint_1 }, - 0, 0, /* No default value */ - "ueResourceReportList" - }, -}; -static const ber_tlv_tag_t asn_DEF_DU_Usage_Report_CellResourceReportItem_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_DU_Usage_Report_CellResourceReportItem_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nRCGI */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ueResourceReportList */ -}; -asn_SEQUENCE_specifics_t asn_SPC_DU_Usage_Report_CellResourceReportItem_specs_1 = { - sizeof(struct DU_Usage_Report_CellResourceReportItem), - offsetof(struct DU_Usage_Report_CellResourceReportItem, _asn_ctx), - asn_MAP_DU_Usage_Report_CellResourceReportItem_tag2el_1, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 2, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_DU_Usage_Report_CellResourceReportItem = { - "DU-Usage-Report-CellResourceReportItem", - "DU-Usage-Report-CellResourceReportItem", - &asn_OP_SEQUENCE, - asn_DEF_DU_Usage_Report_CellResourceReportItem_tags_1, - sizeof(asn_DEF_DU_Usage_Report_CellResourceReportItem_tags_1) - /sizeof(asn_DEF_DU_Usage_Report_CellResourceReportItem_tags_1[0]), /* 1 */ - asn_DEF_DU_Usage_Report_CellResourceReportItem_tags_1, /* Same as above */ - sizeof(asn_DEF_DU_Usage_Report_CellResourceReportItem_tags_1) - /sizeof(asn_DEF_DU_Usage_Report_CellResourceReportItem_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_DU_Usage_Report_CellResourceReportItem_1, - 2, /* Elements count */ - &asn_SPC_DU_Usage_Report_CellResourceReportItem_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/DU-Usage-Report-CellResourceReportItem.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/DU-Usage-Report-CellResourceReportItem.h deleted file mode 100644 index 4a72572..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/DU-Usage-Report-CellResourceReportItem.h +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _DU_Usage_Report_CellResourceReportItem_H_ -#define _DU_Usage_Report_CellResourceReportItem_H_ - - -#include - -/* Including external dependencies */ -#include "NRCGI.h" -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct DU_Usage_Report_UeResourceReportItem; - -/* DU-Usage-Report-CellResourceReportItem */ -typedef struct DU_Usage_Report_CellResourceReportItem { - NRCGI_t nRCGI; - struct DU_Usage_Report_CellResourceReportItem__ueResourceReportList { - A_SEQUENCE_OF(struct DU_Usage_Report_UeResourceReportItem) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } ueResourceReportList; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} DU_Usage_Report_CellResourceReportItem_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_DU_Usage_Report_CellResourceReportItem; -extern asn_SEQUENCE_specifics_t asn_SPC_DU_Usage_Report_CellResourceReportItem_specs_1; -extern asn_TYPE_member_t asn_MBR_DU_Usage_Report_CellResourceReportItem_1[2]; - -#ifdef __cplusplus -} -#endif - -/* Referred external types */ -#include "DU-Usage-Report-UeResourceReportItem.h" - -#endif /* _DU_Usage_Report_CellResourceReportItem_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/DU-Usage-Report-Per-UE.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/DU-Usage-Report-Per-UE.c deleted file mode 100644 index 9ba13af..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/DU-Usage-Report-Per-UE.c +++ /dev/null @@ -1,129 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "DU-Usage-Report-Per-UE.h" - -static int -memb_cellResourceReportList_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - /* Determine the number of elements */ - size = _A_CSEQUENCE_FROM_VOID(sptr)->count; - - if((size >= 1 && size <= 512)) { - /* Perform validation of the inner elements */ - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_oer_constraints_t asn_OER_type_cellResourceReportList_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..512)) */}; -static asn_per_constraints_t asn_PER_type_cellResourceReportList_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 9, 9, 1, 512 } /* (SIZE(1..512)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_cellResourceReportList_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..512)) */}; -static asn_per_constraints_t asn_PER_memb_cellResourceReportList_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 9, 9, 1, 512 } /* (SIZE(1..512)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_cellResourceReportList_2[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_DU_Usage_Report_CellResourceReportItem, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_cellResourceReportList_tags_2[] = { - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_cellResourceReportList_specs_2 = { - sizeof(struct DU_Usage_Report_Per_UE__cellResourceReportList), - offsetof(struct DU_Usage_Report_Per_UE__cellResourceReportList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_cellResourceReportList_2 = { - "cellResourceReportList", - "cellResourceReportList", - &asn_OP_SEQUENCE_OF, - asn_DEF_cellResourceReportList_tags_2, - sizeof(asn_DEF_cellResourceReportList_tags_2) - /sizeof(asn_DEF_cellResourceReportList_tags_2[0]) - 1, /* 1 */ - asn_DEF_cellResourceReportList_tags_2, /* Same as above */ - sizeof(asn_DEF_cellResourceReportList_tags_2) - /sizeof(asn_DEF_cellResourceReportList_tags_2[0]), /* 2 */ - { &asn_OER_type_cellResourceReportList_constr_2, &asn_PER_type_cellResourceReportList_constr_2, SEQUENCE_OF_constraint }, - asn_MBR_cellResourceReportList_2, - 1, /* Single element */ - &asn_SPC_cellResourceReportList_specs_2 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_DU_Usage_Report_Per_UE_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct DU_Usage_Report_Per_UE, cellResourceReportList), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - 0, - &asn_DEF_cellResourceReportList_2, - 0, - { &asn_OER_memb_cellResourceReportList_constr_2, &asn_PER_memb_cellResourceReportList_constr_2, memb_cellResourceReportList_constraint_1 }, - 0, 0, /* No default value */ - "cellResourceReportList" - }, -}; -static const ber_tlv_tag_t asn_DEF_DU_Usage_Report_Per_UE_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_DU_Usage_Report_Per_UE_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* cellResourceReportList */ -}; -asn_SEQUENCE_specifics_t asn_SPC_DU_Usage_Report_Per_UE_specs_1 = { - sizeof(struct DU_Usage_Report_Per_UE), - offsetof(struct DU_Usage_Report_Per_UE, _asn_ctx), - asn_MAP_DU_Usage_Report_Per_UE_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_DU_Usage_Report_Per_UE = { - "DU-Usage-Report-Per-UE", - "DU-Usage-Report-Per-UE", - &asn_OP_SEQUENCE, - asn_DEF_DU_Usage_Report_Per_UE_tags_1, - sizeof(asn_DEF_DU_Usage_Report_Per_UE_tags_1) - /sizeof(asn_DEF_DU_Usage_Report_Per_UE_tags_1[0]), /* 1 */ - asn_DEF_DU_Usage_Report_Per_UE_tags_1, /* Same as above */ - sizeof(asn_DEF_DU_Usage_Report_Per_UE_tags_1) - /sizeof(asn_DEF_DU_Usage_Report_Per_UE_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_DU_Usage_Report_Per_UE_1, - 1, /* Elements count */ - &asn_SPC_DU_Usage_Report_Per_UE_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/DU-Usage-Report-Per-UE.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/DU-Usage-Report-Per-UE.h deleted file mode 100644 index 2fc44d1..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/DU-Usage-Report-Per-UE.h +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _DU_Usage_Report_Per_UE_H_ -#define _DU_Usage_Report_Per_UE_H_ - - -#include - -/* Including external dependencies */ -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct DU_Usage_Report_CellResourceReportItem; - -/* DU-Usage-Report-Per-UE */ -typedef struct DU_Usage_Report_Per_UE { - struct DU_Usage_Report_Per_UE__cellResourceReportList { - A_SEQUENCE_OF(struct DU_Usage_Report_CellResourceReportItem) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } cellResourceReportList; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} DU_Usage_Report_Per_UE_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_DU_Usage_Report_Per_UE; -extern asn_SEQUENCE_specifics_t asn_SPC_DU_Usage_Report_Per_UE_specs_1; -extern asn_TYPE_member_t asn_MBR_DU_Usage_Report_Per_UE_1[1]; - -#ifdef __cplusplus -} -#endif - -/* Referred external types */ -#include "DU-Usage-Report-CellResourceReportItem.h" - -#endif /* _DU_Usage_Report_Per_UE_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/DU-Usage-Report-UeResourceReportItem.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/DU-Usage-Report-UeResourceReportItem.c deleted file mode 100644 index 0bcafbe..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/DU-Usage-Report-UeResourceReportItem.c +++ /dev/null @@ -1,138 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "DU-Usage-Report-UeResourceReportItem.h" - -static int -memb_dl_PRBUsage_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 1000000000)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_ul_PRBUsage_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 1000000000)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_oer_constraints_t asn_OER_memb_dl_PRBUsage_constr_3 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_memb_dl_PRBUsage_constr_3 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 30, -1, 0, 1000000000 } /* (0..1000000000,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_ul_PRBUsage_constr_4 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_memb_ul_PRBUsage_constr_4 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 30, -1, 0, 1000000000 } /* (0..1000000000,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_DU_Usage_Report_UeResourceReportItem_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct DU_Usage_Report_UeResourceReportItem, c_RNTI), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_C_RNTI, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "c-RNTI" - }, - { ATF_POINTER, 2, offsetof(struct DU_Usage_Report_UeResourceReportItem, dl_PRBUsage), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_dl_PRBUsage_constr_3, &asn_PER_memb_dl_PRBUsage_constr_3, memb_dl_PRBUsage_constraint_1 }, - 0, 0, /* No default value */ - "dl-PRBUsage" - }, - { ATF_POINTER, 1, offsetof(struct DU_Usage_Report_UeResourceReportItem, ul_PRBUsage), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_ul_PRBUsage_constr_4, &asn_PER_memb_ul_PRBUsage_constr_4, memb_ul_PRBUsage_constraint_1 }, - 0, 0, /* No default value */ - "ul-PRBUsage" - }, -}; -static const int asn_MAP_DU_Usage_Report_UeResourceReportItem_oms_1[] = { 1, 2 }; -static const ber_tlv_tag_t asn_DEF_DU_Usage_Report_UeResourceReportItem_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_DU_Usage_Report_UeResourceReportItem_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* c-RNTI */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* dl-PRBUsage */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* ul-PRBUsage */ -}; -asn_SEQUENCE_specifics_t asn_SPC_DU_Usage_Report_UeResourceReportItem_specs_1 = { - sizeof(struct DU_Usage_Report_UeResourceReportItem), - offsetof(struct DU_Usage_Report_UeResourceReportItem, _asn_ctx), - asn_MAP_DU_Usage_Report_UeResourceReportItem_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_DU_Usage_Report_UeResourceReportItem_oms_1, /* Optional members */ - 2, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_DU_Usage_Report_UeResourceReportItem = { - "DU-Usage-Report-UeResourceReportItem", - "DU-Usage-Report-UeResourceReportItem", - &asn_OP_SEQUENCE, - asn_DEF_DU_Usage_Report_UeResourceReportItem_tags_1, - sizeof(asn_DEF_DU_Usage_Report_UeResourceReportItem_tags_1) - /sizeof(asn_DEF_DU_Usage_Report_UeResourceReportItem_tags_1[0]), /* 1 */ - asn_DEF_DU_Usage_Report_UeResourceReportItem_tags_1, /* Same as above */ - sizeof(asn_DEF_DU_Usage_Report_UeResourceReportItem_tags_1) - /sizeof(asn_DEF_DU_Usage_Report_UeResourceReportItem_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_DU_Usage_Report_UeResourceReportItem_1, - 3, /* Elements count */ - &asn_SPC_DU_Usage_Report_UeResourceReportItem_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/DU-Usage-Report-UeResourceReportItem.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/DU-Usage-Report-UeResourceReportItem.h deleted file mode 100644 index e860272..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/DU-Usage-Report-UeResourceReportItem.h +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _DU_Usage_Report_UeResourceReportItem_H_ -#define _DU_Usage_Report_UeResourceReportItem_H_ - - -#include - -/* Including external dependencies */ -#include "C-RNTI.h" -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* DU-Usage-Report-UeResourceReportItem */ -typedef struct DU_Usage_Report_UeResourceReportItem { - C_RNTI_t c_RNTI; - long *dl_PRBUsage; /* OPTIONAL */ - long *ul_PRBUsage; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} DU_Usage_Report_UeResourceReportItem_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_DU_Usage_Report_UeResourceReportItem; -extern asn_SEQUENCE_specifics_t asn_SPC_DU_Usage_Report_UeResourceReportItem_specs_1; -extern asn_TYPE_member_t asn_MBR_DU_Usage_Report_UeResourceReportItem_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _DU_Usage_Report_UeResourceReportItem_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/E2AP-PDU.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/E2AP-PDU.c deleted file mode 100644 index 94650be..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/E2AP-PDU.c +++ /dev/null @@ -1,75 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Descriptions" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "E2AP-PDU.h" - -#include "InitiatingMessage.h" -#include "SuccessfulOutcome.h" -#include "UnsuccessfulOutcome.h" -static asn_per_constraints_t asn_PER_type_E2AP_PDU_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 2 } /* (0..2,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_E2AP_PDU_1[] = { - { ATF_POINTER, 0, offsetof(struct E2AP_PDU, choice.initiatingMessage), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_InitiatingMessage, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "initiatingMessage" - }, - { ATF_POINTER, 0, offsetof(struct E2AP_PDU, choice.successfulOutcome), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_SuccessfulOutcome, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "successfulOutcome" - }, - { ATF_POINTER, 0, offsetof(struct E2AP_PDU, choice.unsuccessfulOutcome), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_UnsuccessfulOutcome, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "unsuccessfulOutcome" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_E2AP_PDU_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* initiatingMessage */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* successfulOutcome */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* unsuccessfulOutcome */ -}; -static asn_CHOICE_specifics_t asn_SPC_E2AP_PDU_specs_1 = { - sizeof(struct E2AP_PDU), - offsetof(struct E2AP_PDU, _asn_ctx), - offsetof(struct E2AP_PDU, present), - sizeof(((struct E2AP_PDU *)0)->present), - asn_MAP_E2AP_PDU_tag2el_1, - 3, /* Count of tags in the map */ - 0, 0, - 3 /* Extensions start */ -}; -asn_TYPE_descriptor_t asn_DEF_E2AP_PDU = { - "E2AP-PDU", - "E2AP-PDU", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, &asn_PER_type_E2AP_PDU_constr_1, CHOICE_constraint }, - asn_MBR_E2AP_PDU_1, - 3, /* Elements count */ - &asn_SPC_E2AP_PDU_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/E2AP-PDU.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/E2AP-PDU.h deleted file mode 100644 index 6f3f1c8..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/E2AP-PDU.h +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Descriptions" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _E2AP_PDU_H_ -#define _E2AP_PDU_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "constr_CHOICE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum E2AP_PDU_PR { - E2AP_PDU_PR_NOTHING, /* No components present */ - E2AP_PDU_PR_initiatingMessage, - E2AP_PDU_PR_successfulOutcome, - E2AP_PDU_PR_unsuccessfulOutcome - /* Extensions may appear below */ - -} E2AP_PDU_PR; - -/* Forward declarations */ -struct InitiatingMessage; -struct SuccessfulOutcome; -struct UnsuccessfulOutcome; - -/* E2AP-PDU */ -typedef struct E2AP_PDU { - E2AP_PDU_PR present; - union E2AP_PDU_u { - struct InitiatingMessage *initiatingMessage; - struct SuccessfulOutcome *successfulOutcome; - struct UnsuccessfulOutcome *unsuccessfulOutcome; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E2AP_PDU_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E2AP_PDU; - -#ifdef __cplusplus -} -#endif - -#endif /* _E2AP_PDU_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/E2SM-KPM-ActionDefinition.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/E2SM-KPM-ActionDefinition.c deleted file mode 100644 index abdf25d..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/E2SM-KPM-ActionDefinition.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "E2SM-KPM-ActionDefinition.h" - -static asn_TYPE_member_t asn_MBR_E2SM_KPM_ActionDefinition_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct E2SM_KPM_ActionDefinition, ric_Style_Type), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RIC_Style_Type, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ric-Style-Type" - }, -}; -static const ber_tlv_tag_t asn_DEF_E2SM_KPM_ActionDefinition_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E2SM_KPM_ActionDefinition_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* ric-Style-Type */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_E2SM_KPM_ActionDefinition_specs_1 = { - sizeof(struct E2SM_KPM_ActionDefinition), - offsetof(struct E2SM_KPM_ActionDefinition, _asn_ctx), - asn_MAP_E2SM_KPM_ActionDefinition_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E2SM_KPM_ActionDefinition = { - "E2SM-KPM-ActionDefinition", - "E2SM-KPM-ActionDefinition", - &asn_OP_SEQUENCE, - asn_DEF_E2SM_KPM_ActionDefinition_tags_1, - sizeof(asn_DEF_E2SM_KPM_ActionDefinition_tags_1) - /sizeof(asn_DEF_E2SM_KPM_ActionDefinition_tags_1[0]), /* 1 */ - asn_DEF_E2SM_KPM_ActionDefinition_tags_1, /* Same as above */ - sizeof(asn_DEF_E2SM_KPM_ActionDefinition_tags_1) - /sizeof(asn_DEF_E2SM_KPM_ActionDefinition_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E2SM_KPM_ActionDefinition_1, - 1, /* Elements count */ - &asn_SPC_E2SM_KPM_ActionDefinition_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/E2SM-KPM-ActionDefinition.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/E2SM-KPM-ActionDefinition.h deleted file mode 100644 index 70b81dd..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/E2SM-KPM-ActionDefinition.h +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _E2SM_KPM_ActionDefinition_H_ -#define _E2SM_KPM_ActionDefinition_H_ - - -#include - -/* Including external dependencies */ -#include "RIC-Style-Type.h" -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* E2SM-KPM-ActionDefinition */ -typedef struct E2SM_KPM_ActionDefinition { - RIC_Style_Type_t ric_Style_Type; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E2SM_KPM_ActionDefinition_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E2SM_KPM_ActionDefinition; - -#ifdef __cplusplus -} -#endif - -#endif /* _E2SM_KPM_ActionDefinition_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/E2SM-KPM-EventTriggerDefinition-Format1.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/E2SM-KPM-EventTriggerDefinition-Format1.c deleted file mode 100644 index e0b48f2..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/E2SM-KPM-EventTriggerDefinition-Format1.c +++ /dev/null @@ -1,131 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "E2SM-KPM-EventTriggerDefinition-Format1.h" - -static int -memb_policyTest_List_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - /* Determine the number of elements */ - size = _A_CSEQUENCE_FROM_VOID(sptr)->count; - - if((size >= 1 && size <= 15)) { - /* Perform validation of the inner elements */ - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_oer_constraints_t asn_OER_type_policyTest_List_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..15)) */}; -static asn_per_constraints_t asn_PER_type_policyTest_List_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 4, 4, 1, 15 } /* (SIZE(1..15)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_policyTest_List_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..15)) */}; -static asn_per_constraints_t asn_PER_memb_policyTest_List_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 4, 4, 1, 15 } /* (SIZE(1..15)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_policyTest_List_2[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_Trigger_ConditionIE_Item, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_policyTest_List_tags_2[] = { - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_policyTest_List_specs_2 = { - sizeof(struct E2SM_KPM_EventTriggerDefinition_Format1__policyTest_List), - offsetof(struct E2SM_KPM_EventTriggerDefinition_Format1__policyTest_List, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_policyTest_List_2 = { - "policyTest-List", - "policyTest-List", - &asn_OP_SEQUENCE_OF, - asn_DEF_policyTest_List_tags_2, - sizeof(asn_DEF_policyTest_List_tags_2) - /sizeof(asn_DEF_policyTest_List_tags_2[0]) - 1, /* 1 */ - asn_DEF_policyTest_List_tags_2, /* Same as above */ - sizeof(asn_DEF_policyTest_List_tags_2) - /sizeof(asn_DEF_policyTest_List_tags_2[0]), /* 2 */ - { &asn_OER_type_policyTest_List_constr_2, &asn_PER_type_policyTest_List_constr_2, SEQUENCE_OF_constraint }, - asn_MBR_policyTest_List_2, - 1, /* Single element */ - &asn_SPC_policyTest_List_specs_2 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E2SM_KPM_EventTriggerDefinition_Format1_1[] = { - { ATF_POINTER, 1, offsetof(struct E2SM_KPM_EventTriggerDefinition_Format1, policyTest_List), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - 0, - &asn_DEF_policyTest_List_2, - 0, - { &asn_OER_memb_policyTest_List_constr_2, &asn_PER_memb_policyTest_List_constr_2, memb_policyTest_List_constraint_1 }, - 0, 0, /* No default value */ - "policyTest-List" - }, -}; -static const int asn_MAP_E2SM_KPM_EventTriggerDefinition_Format1_oms_1[] = { 0 }; -static const ber_tlv_tag_t asn_DEF_E2SM_KPM_EventTriggerDefinition_Format1_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E2SM_KPM_EventTriggerDefinition_Format1_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* policyTest-List */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E2SM_KPM_EventTriggerDefinition_Format1_specs_1 = { - sizeof(struct E2SM_KPM_EventTriggerDefinition_Format1), - offsetof(struct E2SM_KPM_EventTriggerDefinition_Format1, _asn_ctx), - asn_MAP_E2SM_KPM_EventTriggerDefinition_Format1_tag2el_1, - 1, /* Count of tags in the map */ - asn_MAP_E2SM_KPM_EventTriggerDefinition_Format1_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E2SM_KPM_EventTriggerDefinition_Format1 = { - "E2SM-KPM-EventTriggerDefinition-Format1", - "E2SM-KPM-EventTriggerDefinition-Format1", - &asn_OP_SEQUENCE, - asn_DEF_E2SM_KPM_EventTriggerDefinition_Format1_tags_1, - sizeof(asn_DEF_E2SM_KPM_EventTriggerDefinition_Format1_tags_1) - /sizeof(asn_DEF_E2SM_KPM_EventTriggerDefinition_Format1_tags_1[0]), /* 1 */ - asn_DEF_E2SM_KPM_EventTriggerDefinition_Format1_tags_1, /* Same as above */ - sizeof(asn_DEF_E2SM_KPM_EventTriggerDefinition_Format1_tags_1) - /sizeof(asn_DEF_E2SM_KPM_EventTriggerDefinition_Format1_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E2SM_KPM_EventTriggerDefinition_Format1_1, - 1, /* Elements count */ - &asn_SPC_E2SM_KPM_EventTriggerDefinition_Format1_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/E2SM-KPM-EventTriggerDefinition-Format1.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/E2SM-KPM-EventTriggerDefinition-Format1.h deleted file mode 100644 index 44cbd92..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/E2SM-KPM-EventTriggerDefinition-Format1.h +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _E2SM_KPM_EventTriggerDefinition_Format1_H_ -#define _E2SM_KPM_EventTriggerDefinition_Format1_H_ - - -#include - -/* Including external dependencies */ -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct Trigger_ConditionIE_Item; - -/* E2SM-KPM-EventTriggerDefinition-Format1 */ -typedef struct E2SM_KPM_EventTriggerDefinition_Format1 { - struct E2SM_KPM_EventTriggerDefinition_Format1__policyTest_List { - A_SEQUENCE_OF(struct Trigger_ConditionIE_Item) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } *policyTest_List; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E2SM_KPM_EventTriggerDefinition_Format1_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E2SM_KPM_EventTriggerDefinition_Format1; -extern asn_SEQUENCE_specifics_t asn_SPC_E2SM_KPM_EventTriggerDefinition_Format1_specs_1; -extern asn_TYPE_member_t asn_MBR_E2SM_KPM_EventTriggerDefinition_Format1_1[1]; - -#ifdef __cplusplus -} -#endif - -/* Referred external types */ -#include "Trigger-ConditionIE-Item.h" - -#endif /* _E2SM_KPM_EventTriggerDefinition_Format1_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/E2SM-KPM-EventTriggerDefinition.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/E2SM-KPM-EventTriggerDefinition.c deleted file mode 100644 index 482e42c..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/E2SM-KPM-EventTriggerDefinition.c +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "E2SM-KPM-EventTriggerDefinition.h" - -static asn_oer_constraints_t asn_OER_type_E2SM_KPM_EventTriggerDefinition_constr_1 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_type_E2SM_KPM_EventTriggerDefinition_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 0, 0 } /* (0..0,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_E2SM_KPM_EventTriggerDefinition_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct E2SM_KPM_EventTriggerDefinition, choice.eventDefinition_Format1), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E2SM_KPM_EventTriggerDefinition_Format1, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "eventDefinition-Format1" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_E2SM_KPM_EventTriggerDefinition_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* eventDefinition-Format1 */ -}; -static asn_CHOICE_specifics_t asn_SPC_E2SM_KPM_EventTriggerDefinition_specs_1 = { - sizeof(struct E2SM_KPM_EventTriggerDefinition), - offsetof(struct E2SM_KPM_EventTriggerDefinition, _asn_ctx), - offsetof(struct E2SM_KPM_EventTriggerDefinition, present), - sizeof(((struct E2SM_KPM_EventTriggerDefinition *)0)->present), - asn_MAP_E2SM_KPM_EventTriggerDefinition_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, - 1 /* Extensions start */ -}; -asn_TYPE_descriptor_t asn_DEF_E2SM_KPM_EventTriggerDefinition = { - "E2SM-KPM-EventTriggerDefinition", - "E2SM-KPM-EventTriggerDefinition", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { &asn_OER_type_E2SM_KPM_EventTriggerDefinition_constr_1, &asn_PER_type_E2SM_KPM_EventTriggerDefinition_constr_1, CHOICE_constraint }, - asn_MBR_E2SM_KPM_EventTriggerDefinition_1, - 1, /* Elements count */ - &asn_SPC_E2SM_KPM_EventTriggerDefinition_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/E2SM-KPM-EventTriggerDefinition.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/E2SM-KPM-EventTriggerDefinition.h deleted file mode 100644 index e96e600..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/E2SM-KPM-EventTriggerDefinition.h +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _E2SM_KPM_EventTriggerDefinition_H_ -#define _E2SM_KPM_EventTriggerDefinition_H_ - - -#include - -/* Including external dependencies */ -#include "E2SM-KPM-EventTriggerDefinition-Format1.h" -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum E2SM_KPM_EventTriggerDefinition_PR { - E2SM_KPM_EventTriggerDefinition_PR_NOTHING, /* No components present */ - E2SM_KPM_EventTriggerDefinition_PR_eventDefinition_Format1 - /* Extensions may appear below */ - -} E2SM_KPM_EventTriggerDefinition_PR; - -/* E2SM-KPM-EventTriggerDefinition */ -typedef struct E2SM_KPM_EventTriggerDefinition { - E2SM_KPM_EventTriggerDefinition_PR present; - union E2SM_KPM_EventTriggerDefinition_u { - E2SM_KPM_EventTriggerDefinition_Format1_t eventDefinition_Format1; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E2SM_KPM_EventTriggerDefinition_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E2SM_KPM_EventTriggerDefinition; - -#ifdef __cplusplus -} -#endif - -#endif /* _E2SM_KPM_EventTriggerDefinition_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/E2SM-KPM-IndicationHeader-Format1.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/E2SM-KPM-IndicationHeader-Format1.c deleted file mode 100644 index 2cccf8b..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/E2SM-KPM-IndicationHeader-Format1.c +++ /dev/null @@ -1,208 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "E2SM-KPM-IndicationHeader-Format1.h" - -static int -memb_fiveQI_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 255)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_qci_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 255)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_oer_constraints_t asn_OER_memb_fiveQI_constr_6 CC_NOTUSED = { - { 1, 1 } /* (0..255) */, - -1}; -static asn_per_constraints_t asn_PER_memb_fiveQI_constr_6 CC_NOTUSED = { - { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_qci_constr_7 CC_NOTUSED = { - { 1, 1 } /* (0..255) */, - -1}; -static asn_per_constraints_t asn_PER_memb_qci_constr_7 CC_NOTUSED = { - { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_E2SM_KPM_IndicationHeader_Format1_1[] = { - { ATF_POINTER, 10, offsetof(struct E2SM_KPM_IndicationHeader_Format1, id_GlobalKPMnode_ID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_GlobalKPMnode_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "id-GlobalKPMnode-ID" - }, - { ATF_POINTER, 9, offsetof(struct E2SM_KPM_IndicationHeader_Format1, nRCGI), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NRCGI, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "nRCGI" - }, - { ATF_POINTER, 8, offsetof(struct E2SM_KPM_IndicationHeader_Format1, pLMN_Identity), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_PLMN_Identity, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "pLMN-Identity" - }, - { ATF_POINTER, 7, offsetof(struct E2SM_KPM_IndicationHeader_Format1, sliceID), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_SNSSAI, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "sliceID" - }, - { ATF_POINTER, 6, offsetof(struct E2SM_KPM_IndicationHeader_Format1, fiveQI), - (ASN_TAG_CLASS_CONTEXT | (4 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_fiveQI_constr_6, &asn_PER_memb_fiveQI_constr_6, memb_fiveQI_constraint_1 }, - 0, 0, /* No default value */ - "fiveQI" - }, - { ATF_POINTER, 5, offsetof(struct E2SM_KPM_IndicationHeader_Format1, qci), - (ASN_TAG_CLASS_CONTEXT | (5 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_qci_constr_7, &asn_PER_memb_qci_constr_7, memb_qci_constraint_1 }, - 0, 0, /* No default value */ - "qci" - }, - { ATF_POINTER, 4, offsetof(struct E2SM_KPM_IndicationHeader_Format1, message_Type), - (ASN_TAG_CLASS_CONTEXT | (6 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_UE_Report_Type, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "message-Type" - }, - { ATF_POINTER, 3, offsetof(struct E2SM_KPM_IndicationHeader_Format1, gNB_DU_ID), - (ASN_TAG_CLASS_CONTEXT | (7 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GNB_DU_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "gNB-DU-ID" - }, - { ATF_POINTER, 2, offsetof(struct E2SM_KPM_IndicationHeader_Format1, gNB_Name), - (ASN_TAG_CLASS_CONTEXT | (8 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_GNB_Name, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "gNB-Name" - }, - { ATF_POINTER, 1, offsetof(struct E2SM_KPM_IndicationHeader_Format1, global_GNB_ID), - (ASN_TAG_CLASS_CONTEXT | (9 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GlobalgNB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "global-GNB-ID" - }, -}; -static const int asn_MAP_E2SM_KPM_IndicationHeader_Format1_oms_1[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; -static const ber_tlv_tag_t asn_DEF_E2SM_KPM_IndicationHeader_Format1_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E2SM_KPM_IndicationHeader_Format1_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id-GlobalKPMnode-ID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* nRCGI */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* pLMN-Identity */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* sliceID */ - { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* fiveQI */ - { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* qci */ - { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* message-Type */ - { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* gNB-DU-ID */ - { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* gNB-Name */ - { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 } /* global-GNB-ID */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E2SM_KPM_IndicationHeader_Format1_specs_1 = { - sizeof(struct E2SM_KPM_IndicationHeader_Format1), - offsetof(struct E2SM_KPM_IndicationHeader_Format1, _asn_ctx), - asn_MAP_E2SM_KPM_IndicationHeader_Format1_tag2el_1, - 10, /* Count of tags in the map */ - asn_MAP_E2SM_KPM_IndicationHeader_Format1_oms_1, /* Optional members */ - 10, 0, /* Root/Additions */ - 10, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E2SM_KPM_IndicationHeader_Format1 = { - "E2SM-KPM-IndicationHeader-Format1", - "E2SM-KPM-IndicationHeader-Format1", - &asn_OP_SEQUENCE, - asn_DEF_E2SM_KPM_IndicationHeader_Format1_tags_1, - sizeof(asn_DEF_E2SM_KPM_IndicationHeader_Format1_tags_1) - /sizeof(asn_DEF_E2SM_KPM_IndicationHeader_Format1_tags_1[0]), /* 1 */ - asn_DEF_E2SM_KPM_IndicationHeader_Format1_tags_1, /* Same as above */ - sizeof(asn_DEF_E2SM_KPM_IndicationHeader_Format1_tags_1) - /sizeof(asn_DEF_E2SM_KPM_IndicationHeader_Format1_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E2SM_KPM_IndicationHeader_Format1_1, - 10, /* Elements count */ - &asn_SPC_E2SM_KPM_IndicationHeader_Format1_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/E2SM-KPM-IndicationHeader-Format1.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/E2SM-KPM-IndicationHeader-Format1.h deleted file mode 100644 index c46b715..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/E2SM-KPM-IndicationHeader-Format1.h +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _E2SM_KPM_IndicationHeader_Format1_H_ -#define _E2SM_KPM_IndicationHeader_Format1_H_ - - -#include - -/* Including external dependencies */ -#include "PLMN-Identity.h" -#include -#include "UE-Report-Type.h" -#include "GNB-DU-ID.h" -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct GlobalKPMnode_ID; -struct NRCGI; -struct SNSSAI; -struct GNB_Name; -struct GlobalgNB_ID; - -/* E2SM-KPM-IndicationHeader-Format1 */ -typedef struct E2SM_KPM_IndicationHeader_Format1 { - struct GlobalKPMnode_ID *id_GlobalKPMnode_ID; /* OPTIONAL */ - struct NRCGI *nRCGI; /* OPTIONAL */ - PLMN_Identity_t *pLMN_Identity; /* OPTIONAL */ - struct SNSSAI *sliceID; /* OPTIONAL */ - long *fiveQI; /* OPTIONAL */ - long *qci; /* OPTIONAL */ - UE_Report_Type_t *message_Type; /* OPTIONAL */ - GNB_DU_ID_t *gNB_DU_ID; /* OPTIONAL */ - struct GNB_Name *gNB_Name; /* OPTIONAL */ - struct GlobalgNB_ID *global_GNB_ID; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E2SM_KPM_IndicationHeader_Format1_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E2SM_KPM_IndicationHeader_Format1; -extern asn_SEQUENCE_specifics_t asn_SPC_E2SM_KPM_IndicationHeader_Format1_specs_1; -extern asn_TYPE_member_t asn_MBR_E2SM_KPM_IndicationHeader_Format1_1[10]; - -#ifdef __cplusplus -} -#endif - -/* Referred external types */ -#include "GlobalKPMnode-ID.h" -#include "NRCGI.h" -#include "SNSSAI.h" -#include "GNB-Name.h" -#include "GlobalgNB-ID.h" - -#endif /* _E2SM_KPM_IndicationHeader_Format1_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/E2SM-KPM-IndicationHeader.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/E2SM-KPM-IndicationHeader.c deleted file mode 100644 index c4fe730..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/E2SM-KPM-IndicationHeader.c +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "E2SM-KPM-IndicationHeader.h" - -static asn_oer_constraints_t asn_OER_type_E2SM_KPM_IndicationHeader_constr_1 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_type_E2SM_KPM_IndicationHeader_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 0, 0 } /* (0..0,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_E2SM_KPM_IndicationHeader_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct E2SM_KPM_IndicationHeader, choice.indicationHeader_Format1), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E2SM_KPM_IndicationHeader_Format1, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "indicationHeader-Format1" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_E2SM_KPM_IndicationHeader_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* indicationHeader-Format1 */ -}; -static asn_CHOICE_specifics_t asn_SPC_E2SM_KPM_IndicationHeader_specs_1 = { - sizeof(struct E2SM_KPM_IndicationHeader), - offsetof(struct E2SM_KPM_IndicationHeader, _asn_ctx), - offsetof(struct E2SM_KPM_IndicationHeader, present), - sizeof(((struct E2SM_KPM_IndicationHeader *)0)->present), - asn_MAP_E2SM_KPM_IndicationHeader_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, - 1 /* Extensions start */ -}; -asn_TYPE_descriptor_t asn_DEF_E2SM_KPM_IndicationHeader = { - "E2SM-KPM-IndicationHeader", - "E2SM-KPM-IndicationHeader", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { &asn_OER_type_E2SM_KPM_IndicationHeader_constr_1, &asn_PER_type_E2SM_KPM_IndicationHeader_constr_1, CHOICE_constraint }, - asn_MBR_E2SM_KPM_IndicationHeader_1, - 1, /* Elements count */ - &asn_SPC_E2SM_KPM_IndicationHeader_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/E2SM-KPM-IndicationHeader.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/E2SM-KPM-IndicationHeader.h deleted file mode 100644 index 67dc86d..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/E2SM-KPM-IndicationHeader.h +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _E2SM_KPM_IndicationHeader_H_ -#define _E2SM_KPM_IndicationHeader_H_ - - -#include - -/* Including external dependencies */ -#include "E2SM-KPM-IndicationHeader-Format1.h" -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum E2SM_KPM_IndicationHeader_PR { - E2SM_KPM_IndicationHeader_PR_NOTHING, /* No components present */ - E2SM_KPM_IndicationHeader_PR_indicationHeader_Format1 - /* Extensions may appear below */ - -} E2SM_KPM_IndicationHeader_PR; - -/* E2SM-KPM-IndicationHeader */ -typedef struct E2SM_KPM_IndicationHeader { - E2SM_KPM_IndicationHeader_PR present; - union E2SM_KPM_IndicationHeader_u { - E2SM_KPM_IndicationHeader_Format1_t indicationHeader_Format1; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E2SM_KPM_IndicationHeader_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E2SM_KPM_IndicationHeader; - -#ifdef __cplusplus -} -#endif - -#endif /* _E2SM_KPM_IndicationHeader_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/E2SM-KPM-IndicationMessage-Format1.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/E2SM-KPM-IndicationMessage-Format1.c deleted file mode 100644 index 7bdebb0..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/E2SM-KPM-IndicationMessage-Format1.c +++ /dev/null @@ -1,129 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "E2SM-KPM-IndicationMessage-Format1.h" - -static int -memb_pm_Containers_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - /* Determine the number of elements */ - size = _A_CSEQUENCE_FROM_VOID(sptr)->count; - - if((size >= 1 && size <= 8)) { - /* Perform validation of the inner elements */ - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_oer_constraints_t asn_OER_type_pm_Containers_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..8)) */}; -static asn_per_constraints_t asn_PER_type_pm_Containers_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 3, 3, 1, 8 } /* (SIZE(1..8)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_pm_Containers_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..8)) */}; -static asn_per_constraints_t asn_PER_memb_pm_Containers_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 3, 3, 1, 8 } /* (SIZE(1..8)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_pm_Containers_2[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_PM_Containers_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_pm_Containers_tags_2[] = { - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_pm_Containers_specs_2 = { - sizeof(struct E2SM_KPM_IndicationMessage_Format1__pm_Containers), - offsetof(struct E2SM_KPM_IndicationMessage_Format1__pm_Containers, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_pm_Containers_2 = { - "pm-Containers", - "pm-Containers", - &asn_OP_SEQUENCE_OF, - asn_DEF_pm_Containers_tags_2, - sizeof(asn_DEF_pm_Containers_tags_2) - /sizeof(asn_DEF_pm_Containers_tags_2[0]) - 1, /* 1 */ - asn_DEF_pm_Containers_tags_2, /* Same as above */ - sizeof(asn_DEF_pm_Containers_tags_2) - /sizeof(asn_DEF_pm_Containers_tags_2[0]), /* 2 */ - { &asn_OER_type_pm_Containers_constr_2, &asn_PER_type_pm_Containers_constr_2, SEQUENCE_OF_constraint }, - asn_MBR_pm_Containers_2, - 1, /* Single element */ - &asn_SPC_pm_Containers_specs_2 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E2SM_KPM_IndicationMessage_Format1_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct E2SM_KPM_IndicationMessage_Format1, pm_Containers), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - 0, - &asn_DEF_pm_Containers_2, - 0, - { &asn_OER_memb_pm_Containers_constr_2, &asn_PER_memb_pm_Containers_constr_2, memb_pm_Containers_constraint_1 }, - 0, 0, /* No default value */ - "pm-Containers" - }, -}; -static const ber_tlv_tag_t asn_DEF_E2SM_KPM_IndicationMessage_Format1_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E2SM_KPM_IndicationMessage_Format1_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* pm-Containers */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E2SM_KPM_IndicationMessage_Format1_specs_1 = { - sizeof(struct E2SM_KPM_IndicationMessage_Format1), - offsetof(struct E2SM_KPM_IndicationMessage_Format1, _asn_ctx), - asn_MAP_E2SM_KPM_IndicationMessage_Format1_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E2SM_KPM_IndicationMessage_Format1 = { - "E2SM-KPM-IndicationMessage-Format1", - "E2SM-KPM-IndicationMessage-Format1", - &asn_OP_SEQUENCE, - asn_DEF_E2SM_KPM_IndicationMessage_Format1_tags_1, - sizeof(asn_DEF_E2SM_KPM_IndicationMessage_Format1_tags_1) - /sizeof(asn_DEF_E2SM_KPM_IndicationMessage_Format1_tags_1[0]), /* 1 */ - asn_DEF_E2SM_KPM_IndicationMessage_Format1_tags_1, /* Same as above */ - sizeof(asn_DEF_E2SM_KPM_IndicationMessage_Format1_tags_1) - /sizeof(asn_DEF_E2SM_KPM_IndicationMessage_Format1_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E2SM_KPM_IndicationMessage_Format1_1, - 1, /* Elements count */ - &asn_SPC_E2SM_KPM_IndicationMessage_Format1_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/E2SM-KPM-IndicationMessage-Format1.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/E2SM-KPM-IndicationMessage-Format1.h deleted file mode 100644 index a05b652..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/E2SM-KPM-IndicationMessage-Format1.h +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _E2SM_KPM_IndicationMessage_Format1_H_ -#define _E2SM_KPM_IndicationMessage_Format1_H_ - - -#include - -/* Including external dependencies */ -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct PM_Containers_List; - -/* E2SM-KPM-IndicationMessage-Format1 */ -typedef struct E2SM_KPM_IndicationMessage_Format1 { - struct E2SM_KPM_IndicationMessage_Format1__pm_Containers { - A_SEQUENCE_OF(struct PM_Containers_List) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } pm_Containers; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E2SM_KPM_IndicationMessage_Format1_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E2SM_KPM_IndicationMessage_Format1; -extern asn_SEQUENCE_specifics_t asn_SPC_E2SM_KPM_IndicationMessage_Format1_specs_1; -extern asn_TYPE_member_t asn_MBR_E2SM_KPM_IndicationMessage_Format1_1[1]; - -#ifdef __cplusplus -} -#endif - -/* Referred external types */ -#include "PM-Containers-List.h" - -#endif /* _E2SM_KPM_IndicationMessage_Format1_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/E2SM-KPM-IndicationMessage.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/E2SM-KPM-IndicationMessage.c deleted file mode 100644 index 2eb4018..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/E2SM-KPM-IndicationMessage.c +++ /dev/null @@ -1,107 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "E2SM-KPM-IndicationMessage.h" - -static asn_oer_constraints_t asn_OER_type_indicationMessage_constr_3 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_type_indicationMessage_constr_3 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 0, 0 } /* (0..0,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_indicationMessage_3[] = { - { ATF_NOFLAGS, 0, offsetof(struct E2SM_KPM_IndicationMessage__indicationMessage, choice.indicationMessage_Format1), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E2SM_KPM_IndicationMessage_Format1, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "indicationMessage-Format1" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_indicationMessage_tag2el_3[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* indicationMessage-Format1 */ -}; -static asn_CHOICE_specifics_t asn_SPC_indicationMessage_specs_3 = { - sizeof(struct E2SM_KPM_IndicationMessage__indicationMessage), - offsetof(struct E2SM_KPM_IndicationMessage__indicationMessage, _asn_ctx), - offsetof(struct E2SM_KPM_IndicationMessage__indicationMessage, present), - sizeof(((struct E2SM_KPM_IndicationMessage__indicationMessage *)0)->present), - asn_MAP_indicationMessage_tag2el_3, - 1, /* Count of tags in the map */ - 0, 0, - 1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_indicationMessage_3 = { - "indicationMessage", - "indicationMessage", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { &asn_OER_type_indicationMessage_constr_3, &asn_PER_type_indicationMessage_constr_3, CHOICE_constraint }, - asn_MBR_indicationMessage_3, - 1, /* Elements count */ - &asn_SPC_indicationMessage_specs_3 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_E2SM_KPM_IndicationMessage_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct E2SM_KPM_IndicationMessage, ric_Style_Type), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RIC_Style_Type, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ric-Style-Type" - }, - { ATF_NOFLAGS, 0, offsetof(struct E2SM_KPM_IndicationMessage, indicationMessage), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_indicationMessage_3, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "indicationMessage" - }, -}; -static const ber_tlv_tag_t asn_DEF_E2SM_KPM_IndicationMessage_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E2SM_KPM_IndicationMessage_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ric-Style-Type */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* indicationMessage */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_E2SM_KPM_IndicationMessage_specs_1 = { - sizeof(struct E2SM_KPM_IndicationMessage), - offsetof(struct E2SM_KPM_IndicationMessage, _asn_ctx), - asn_MAP_E2SM_KPM_IndicationMessage_tag2el_1, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 2, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E2SM_KPM_IndicationMessage = { - "E2SM-KPM-IndicationMessage", - "E2SM-KPM-IndicationMessage", - &asn_OP_SEQUENCE, - asn_DEF_E2SM_KPM_IndicationMessage_tags_1, - sizeof(asn_DEF_E2SM_KPM_IndicationMessage_tags_1) - /sizeof(asn_DEF_E2SM_KPM_IndicationMessage_tags_1[0]), /* 1 */ - asn_DEF_E2SM_KPM_IndicationMessage_tags_1, /* Same as above */ - sizeof(asn_DEF_E2SM_KPM_IndicationMessage_tags_1) - /sizeof(asn_DEF_E2SM_KPM_IndicationMessage_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E2SM_KPM_IndicationMessage_1, - 2, /* Elements count */ - &asn_SPC_E2SM_KPM_IndicationMessage_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/E2SM-KPM-IndicationMessage.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/E2SM-KPM-IndicationMessage.h deleted file mode 100644 index 77d4e3b..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/E2SM-KPM-IndicationMessage.h +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _E2SM_KPM_IndicationMessage_H_ -#define _E2SM_KPM_IndicationMessage_H_ - - -#include - -/* Including external dependencies */ -#include "RIC-Style-Type.h" -#include "E2SM-KPM-IndicationMessage-Format1.h" -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum E2SM_KPM_IndicationMessage__indicationMessage_PR { - E2SM_KPM_IndicationMessage__indicationMessage_PR_NOTHING, /* No components present */ - E2SM_KPM_IndicationMessage__indicationMessage_PR_indicationMessage_Format1 - /* Extensions may appear below */ - -} E2SM_KPM_IndicationMessage__indicationMessage_PR; - -/* E2SM-KPM-IndicationMessage */ -typedef struct E2SM_KPM_IndicationMessage { - RIC_Style_Type_t ric_Style_Type; - struct E2SM_KPM_IndicationMessage__indicationMessage { - E2SM_KPM_IndicationMessage__indicationMessage_PR present; - union E2SM_KPM_IndicationMessage__indicationMessage_u { - E2SM_KPM_IndicationMessage_Format1_t indicationMessage_Format1; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } indicationMessage; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E2SM_KPM_IndicationMessage_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E2SM_KPM_IndicationMessage; - -#ifdef __cplusplus -} -#endif - -#endif /* _E2SM_KPM_IndicationMessage_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/E2SM-KPM-RANfunction-Description.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/E2SM-KPM-RANfunction-Description.c deleted file mode 100644 index 226d0fb..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/E2SM-KPM-RANfunction-Description.c +++ /dev/null @@ -1,273 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "E2SM-KPM-RANfunction-Description.h" - -static int -memb_ric_EventTriggerStyle_List_constraint_3(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - /* Determine the number of elements */ - size = _A_CSEQUENCE_FROM_VOID(sptr)->count; - - if((size >= 1 && size <= 63)) { - /* Perform validation of the inner elements */ - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_ric_ReportStyle_List_constraint_3(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - /* Determine the number of elements */ - size = _A_CSEQUENCE_FROM_VOID(sptr)->count; - - if((size >= 1 && size <= 63)) { - /* Perform validation of the inner elements */ - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_oer_constraints_t asn_OER_type_ric_EventTriggerStyle_List_constr_4 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..63)) */}; -static asn_per_constraints_t asn_PER_type_ric_EventTriggerStyle_List_constr_4 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 6, 6, 1, 63 } /* (SIZE(1..63)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_type_ric_ReportStyle_List_constr_6 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..63)) */}; -static asn_per_constraints_t asn_PER_type_ric_ReportStyle_List_constr_6 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 6, 6, 1, 63 } /* (SIZE(1..63)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_ric_EventTriggerStyle_List_constr_4 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..63)) */}; -static asn_per_constraints_t asn_PER_memb_ric_EventTriggerStyle_List_constr_4 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 6, 6, 1, 63 } /* (SIZE(1..63)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_ric_ReportStyle_List_constr_6 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..63)) */}; -static asn_per_constraints_t asn_PER_memb_ric_ReportStyle_List_constr_6 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 6, 6, 1, 63 } /* (SIZE(1..63)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_ric_EventTriggerStyle_List_4[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RIC_EventTriggerStyle_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ric_EventTriggerStyle_List_tags_4[] = { - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_ric_EventTriggerStyle_List_specs_4 = { - sizeof(struct E2SM_KPM_RANfunction_Description__e2SM_KPM_RANfunction_Item__ric_EventTriggerStyle_List), - offsetof(struct E2SM_KPM_RANfunction_Description__e2SM_KPM_RANfunction_Item__ric_EventTriggerStyle_List, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_ric_EventTriggerStyle_List_4 = { - "ric-EventTriggerStyle-List", - "ric-EventTriggerStyle-List", - &asn_OP_SEQUENCE_OF, - asn_DEF_ric_EventTriggerStyle_List_tags_4, - sizeof(asn_DEF_ric_EventTriggerStyle_List_tags_4) - /sizeof(asn_DEF_ric_EventTriggerStyle_List_tags_4[0]) - 1, /* 1 */ - asn_DEF_ric_EventTriggerStyle_List_tags_4, /* Same as above */ - sizeof(asn_DEF_ric_EventTriggerStyle_List_tags_4) - /sizeof(asn_DEF_ric_EventTriggerStyle_List_tags_4[0]), /* 2 */ - { &asn_OER_type_ric_EventTriggerStyle_List_constr_4, &asn_PER_type_ric_EventTriggerStyle_List_constr_4, SEQUENCE_OF_constraint }, - asn_MBR_ric_EventTriggerStyle_List_4, - 1, /* Single element */ - &asn_SPC_ric_EventTriggerStyle_List_specs_4 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_ric_ReportStyle_List_6[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RIC_ReportStyle_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ric_ReportStyle_List_tags_6[] = { - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_ric_ReportStyle_List_specs_6 = { - sizeof(struct E2SM_KPM_RANfunction_Description__e2SM_KPM_RANfunction_Item__ric_ReportStyle_List), - offsetof(struct E2SM_KPM_RANfunction_Description__e2SM_KPM_RANfunction_Item__ric_ReportStyle_List, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_ric_ReportStyle_List_6 = { - "ric-ReportStyle-List", - "ric-ReportStyle-List", - &asn_OP_SEQUENCE_OF, - asn_DEF_ric_ReportStyle_List_tags_6, - sizeof(asn_DEF_ric_ReportStyle_List_tags_6) - /sizeof(asn_DEF_ric_ReportStyle_List_tags_6[0]) - 1, /* 1 */ - asn_DEF_ric_ReportStyle_List_tags_6, /* Same as above */ - sizeof(asn_DEF_ric_ReportStyle_List_tags_6) - /sizeof(asn_DEF_ric_ReportStyle_List_tags_6[0]), /* 2 */ - { &asn_OER_type_ric_ReportStyle_List_constr_6, &asn_PER_type_ric_ReportStyle_List_constr_6, SEQUENCE_OF_constraint }, - asn_MBR_ric_ReportStyle_List_6, - 1, /* Single element */ - &asn_SPC_ric_ReportStyle_List_specs_6 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_e2SM_KPM_RANfunction_Item_3[] = { - { ATF_POINTER, 2, offsetof(struct E2SM_KPM_RANfunction_Description__e2SM_KPM_RANfunction_Item, ric_EventTriggerStyle_List), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - 0, - &asn_DEF_ric_EventTriggerStyle_List_4, - 0, - { &asn_OER_memb_ric_EventTriggerStyle_List_constr_4, &asn_PER_memb_ric_EventTriggerStyle_List_constr_4, memb_ric_EventTriggerStyle_List_constraint_3 }, - 0, 0, /* No default value */ - "ric-EventTriggerStyle-List" - }, - { ATF_POINTER, 1, offsetof(struct E2SM_KPM_RANfunction_Description__e2SM_KPM_RANfunction_Item, ric_ReportStyle_List), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - 0, - &asn_DEF_ric_ReportStyle_List_6, - 0, - { &asn_OER_memb_ric_ReportStyle_List_constr_6, &asn_PER_memb_ric_ReportStyle_List_constr_6, memb_ric_ReportStyle_List_constraint_3 }, - 0, 0, /* No default value */ - "ric-ReportStyle-List" - }, -}; -static const int asn_MAP_e2SM_KPM_RANfunction_Item_oms_3[] = { 0, 1 }; -static const ber_tlv_tag_t asn_DEF_e2SM_KPM_RANfunction_Item_tags_3[] = { - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_e2SM_KPM_RANfunction_Item_tag2el_3[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ric-EventTriggerStyle-List */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ric-ReportStyle-List */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_e2SM_KPM_RANfunction_Item_specs_3 = { - sizeof(struct E2SM_KPM_RANfunction_Description__e2SM_KPM_RANfunction_Item), - offsetof(struct E2SM_KPM_RANfunction_Description__e2SM_KPM_RANfunction_Item, _asn_ctx), - asn_MAP_e2SM_KPM_RANfunction_Item_tag2el_3, - 2, /* Count of tags in the map */ - asn_MAP_e2SM_KPM_RANfunction_Item_oms_3, /* Optional members */ - 2, 0, /* Root/Additions */ - 2, /* First extension addition */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_e2SM_KPM_RANfunction_Item_3 = { - "e2SM-KPM-RANfunction-Item", - "e2SM-KPM-RANfunction-Item", - &asn_OP_SEQUENCE, - asn_DEF_e2SM_KPM_RANfunction_Item_tags_3, - sizeof(asn_DEF_e2SM_KPM_RANfunction_Item_tags_3) - /sizeof(asn_DEF_e2SM_KPM_RANfunction_Item_tags_3[0]) - 1, /* 1 */ - asn_DEF_e2SM_KPM_RANfunction_Item_tags_3, /* Same as above */ - sizeof(asn_DEF_e2SM_KPM_RANfunction_Item_tags_3) - /sizeof(asn_DEF_e2SM_KPM_RANfunction_Item_tags_3[0]), /* 2 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_e2SM_KPM_RANfunction_Item_3, - 2, /* Elements count */ - &asn_SPC_e2SM_KPM_RANfunction_Item_specs_3 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_E2SM_KPM_RANfunction_Description_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct E2SM_KPM_RANfunction_Description, ranFunction_Name), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RANfunction_Name, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ranFunction-Name" - }, - { ATF_NOFLAGS, 0, offsetof(struct E2SM_KPM_RANfunction_Description, e2SM_KPM_RANfunction_Item), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - 0, - &asn_DEF_e2SM_KPM_RANfunction_Item_3, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "e2SM-KPM-RANfunction-Item" - }, -}; -static const ber_tlv_tag_t asn_DEF_E2SM_KPM_RANfunction_Description_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E2SM_KPM_RANfunction_Description_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ranFunction-Name */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* e2SM-KPM-RANfunction-Item */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_E2SM_KPM_RANfunction_Description_specs_1 = { - sizeof(struct E2SM_KPM_RANfunction_Description), - offsetof(struct E2SM_KPM_RANfunction_Description, _asn_ctx), - asn_MAP_E2SM_KPM_RANfunction_Description_tag2el_1, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 2, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E2SM_KPM_RANfunction_Description = { - "E2SM-KPM-RANfunction-Description", - "E2SM-KPM-RANfunction-Description", - &asn_OP_SEQUENCE, - asn_DEF_E2SM_KPM_RANfunction_Description_tags_1, - sizeof(asn_DEF_E2SM_KPM_RANfunction_Description_tags_1) - /sizeof(asn_DEF_E2SM_KPM_RANfunction_Description_tags_1[0]), /* 1 */ - asn_DEF_E2SM_KPM_RANfunction_Description_tags_1, /* Same as above */ - sizeof(asn_DEF_E2SM_KPM_RANfunction_Description_tags_1) - /sizeof(asn_DEF_E2SM_KPM_RANfunction_Description_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E2SM_KPM_RANfunction_Description_1, - 2, /* Elements count */ - &asn_SPC_E2SM_KPM_RANfunction_Description_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/E2SM-KPM-RANfunction-Description.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/E2SM-KPM-RANfunction-Description.h deleted file mode 100644 index 79d2dcf..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/E2SM-KPM-RANfunction-Description.h +++ /dev/null @@ -1,73 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _E2SM_KPM_RANfunction_Description_H_ -#define _E2SM_KPM_RANfunction_Description_H_ - - -#include - -/* Including external dependencies */ -#include "RANfunction-Name.h" -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct RIC_EventTriggerStyle_List; -struct RIC_ReportStyle_List; - -/* E2SM-KPM-RANfunction-Description */ -typedef struct E2SM_KPM_RANfunction_Description { - RANfunction_Name_t ranFunction_Name; - struct E2SM_KPM_RANfunction_Description__e2SM_KPM_RANfunction_Item { - struct E2SM_KPM_RANfunction_Description__e2SM_KPM_RANfunction_Item__ric_EventTriggerStyle_List { - A_SEQUENCE_OF(struct RIC_EventTriggerStyle_List) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } *ric_EventTriggerStyle_List; - struct E2SM_KPM_RANfunction_Description__e2SM_KPM_RANfunction_Item__ric_ReportStyle_List { - A_SEQUENCE_OF(struct RIC_ReportStyle_List) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } *ric_ReportStyle_List; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } e2SM_KPM_RANfunction_Item; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E2SM_KPM_RANfunction_Description_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E2SM_KPM_RANfunction_Description; - -#ifdef __cplusplus -} -#endif - -/* Referred external types */ -#include "RIC-EventTriggerStyle-List.h" -#include "RIC-ReportStyle-List.h" - -#endif /* _E2SM_KPM_RANfunction_Description_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/E2setupFailure.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/E2setupFailure.c deleted file mode 100644 index 49cae9b..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/E2setupFailure.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "E2setupFailure.h" - -asn_TYPE_member_t asn_MBR_E2setupFailure_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct E2setupFailure, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_1527P13, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_E2setupFailure_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E2setupFailure_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E2setupFailure_specs_1 = { - sizeof(struct E2setupFailure), - offsetof(struct E2setupFailure, _asn_ctx), - asn_MAP_E2setupFailure_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E2setupFailure = { - "E2setupFailure", - "E2setupFailure", - &asn_OP_SEQUENCE, - asn_DEF_E2setupFailure_tags_1, - sizeof(asn_DEF_E2setupFailure_tags_1) - /sizeof(asn_DEF_E2setupFailure_tags_1[0]), /* 1 */ - asn_DEF_E2setupFailure_tags_1, /* Same as above */ - sizeof(asn_DEF_E2setupFailure_tags_1) - /sizeof(asn_DEF_E2setupFailure_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E2setupFailure_1, - 1, /* Elements count */ - &asn_SPC_E2setupFailure_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/E2setupFailure.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/E2setupFailure.h deleted file mode 100644 index 4dee64b..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/E2setupFailure.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _E2setupFailure_H_ -#define _E2setupFailure_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* E2setupFailure */ -typedef struct E2setupFailure { - ProtocolIE_Container_1527P13_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E2setupFailure_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E2setupFailure; -extern asn_SEQUENCE_specifics_t asn_SPC_E2setupFailure_specs_1; -extern asn_TYPE_member_t asn_MBR_E2setupFailure_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _E2setupFailure_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/E2setupRequest.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/E2setupRequest.c deleted file mode 100644 index cefa91b..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/E2setupRequest.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "E2setupRequest.h" - -asn_TYPE_member_t asn_MBR_E2setupRequest_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct E2setupRequest, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_1527P11, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_E2setupRequest_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E2setupRequest_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E2setupRequest_specs_1 = { - sizeof(struct E2setupRequest), - offsetof(struct E2setupRequest, _asn_ctx), - asn_MAP_E2setupRequest_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E2setupRequest = { - "E2setupRequest", - "E2setupRequest", - &asn_OP_SEQUENCE, - asn_DEF_E2setupRequest_tags_1, - sizeof(asn_DEF_E2setupRequest_tags_1) - /sizeof(asn_DEF_E2setupRequest_tags_1[0]), /* 1 */ - asn_DEF_E2setupRequest_tags_1, /* Same as above */ - sizeof(asn_DEF_E2setupRequest_tags_1) - /sizeof(asn_DEF_E2setupRequest_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E2setupRequest_1, - 1, /* Elements count */ - &asn_SPC_E2setupRequest_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/E2setupRequest.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/E2setupRequest.h deleted file mode 100644 index 2b8b070..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/E2setupRequest.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _E2setupRequest_H_ -#define _E2setupRequest_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* E2setupRequest */ -typedef struct E2setupRequest { - ProtocolIE_Container_1527P11_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E2setupRequest_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E2setupRequest; -extern asn_SEQUENCE_specifics_t asn_SPC_E2setupRequest_specs_1; -extern asn_TYPE_member_t asn_MBR_E2setupRequest_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _E2setupRequest_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/E2setupResponse.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/E2setupResponse.c deleted file mode 100644 index b607aa1..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/E2setupResponse.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "E2setupResponse.h" - -asn_TYPE_member_t asn_MBR_E2setupResponse_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct E2setupResponse, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_1527P12, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_E2setupResponse_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E2setupResponse_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E2setupResponse_specs_1 = { - sizeof(struct E2setupResponse), - offsetof(struct E2setupResponse, _asn_ctx), - asn_MAP_E2setupResponse_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E2setupResponse = { - "E2setupResponse", - "E2setupResponse", - &asn_OP_SEQUENCE, - asn_DEF_E2setupResponse_tags_1, - sizeof(asn_DEF_E2setupResponse_tags_1) - /sizeof(asn_DEF_E2setupResponse_tags_1[0]), /* 1 */ - asn_DEF_E2setupResponse_tags_1, /* Same as above */ - sizeof(asn_DEF_E2setupResponse_tags_1) - /sizeof(asn_DEF_E2setupResponse_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E2setupResponse_1, - 1, /* Elements count */ - &asn_SPC_E2setupResponse_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/E2setupResponse.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/E2setupResponse.h deleted file mode 100644 index ccec4bc..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/E2setupResponse.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _E2setupResponse_H_ -#define _E2setupResponse_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* E2setupResponse */ -typedef struct E2setupResponse { - ProtocolIE_Container_1527P12_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E2setupResponse_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E2setupResponse; -extern asn_SEQUENCE_specifics_t asn_SPC_E2setupResponse_specs_1; -extern asn_TYPE_member_t asn_MBR_E2setupResponse_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _E2setupResponse_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/ENB-ID-Choice.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/ENB-ID-Choice.c deleted file mode 100644 index 824871d..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/ENB-ID-Choice.c +++ /dev/null @@ -1,192 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "ENB-ID-Choice.h" - -static int -memb_enb_ID_macro_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if(st->size > 0) { - /* Size in bits */ - size = 8 * st->size - (st->bits_unused & 0x07); - } else { - size = 0; - } - - if((size == 20)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_enb_ID_shortmacro_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if(st->size > 0) { - /* Size in bits */ - size = 8 * st->size - (st->bits_unused & 0x07); - } else { - size = 0; - } - - if((size == 18)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_enb_ID_longmacro_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if(st->size > 0) { - /* Size in bits */ - size = 8 * st->size - (st->bits_unused & 0x07); - } else { - size = 0; - } - - if((size == 21)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_oer_constraints_t asn_OER_memb_enb_ID_macro_constr_2 CC_NOTUSED = { - { 0, 0 }, - 20 /* (SIZE(20..20)) */}; -static asn_per_constraints_t asn_PER_memb_enb_ID_macro_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 0, 0, 20, 20 } /* (SIZE(20..20)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_enb_ID_shortmacro_constr_3 CC_NOTUSED = { - { 0, 0 }, - 18 /* (SIZE(18..18)) */}; -static asn_per_constraints_t asn_PER_memb_enb_ID_shortmacro_constr_3 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 0, 0, 18, 18 } /* (SIZE(18..18)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_enb_ID_longmacro_constr_4 CC_NOTUSED = { - { 0, 0 }, - 21 /* (SIZE(21..21)) */}; -static asn_per_constraints_t asn_PER_memb_enb_ID_longmacro_constr_4 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 0, 0, 21, 21 } /* (SIZE(21..21)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_type_ENB_ID_Choice_constr_1 CC_NOTUSED = { - { 0, 0 }, - -1}; -asn_per_constraints_t asn_PER_type_ENB_ID_Choice_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 2 } /* (0..2,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_ENB_ID_Choice_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct ENB_ID_Choice, choice.enb_ID_macro), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_BIT_STRING, - 0, - { &asn_OER_memb_enb_ID_macro_constr_2, &asn_PER_memb_enb_ID_macro_constr_2, memb_enb_ID_macro_constraint_1 }, - 0, 0, /* No default value */ - "enb-ID-macro" - }, - { ATF_NOFLAGS, 0, offsetof(struct ENB_ID_Choice, choice.enb_ID_shortmacro), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_BIT_STRING, - 0, - { &asn_OER_memb_enb_ID_shortmacro_constr_3, &asn_PER_memb_enb_ID_shortmacro_constr_3, memb_enb_ID_shortmacro_constraint_1 }, - 0, 0, /* No default value */ - "enb-ID-shortmacro" - }, - { ATF_NOFLAGS, 0, offsetof(struct ENB_ID_Choice, choice.enb_ID_longmacro), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_BIT_STRING, - 0, - { &asn_OER_memb_enb_ID_longmacro_constr_4, &asn_PER_memb_enb_ID_longmacro_constr_4, memb_enb_ID_longmacro_constraint_1 }, - 0, 0, /* No default value */ - "enb-ID-longmacro" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_ENB_ID_Choice_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* enb-ID-macro */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* enb-ID-shortmacro */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* enb-ID-longmacro */ -}; -asn_CHOICE_specifics_t asn_SPC_ENB_ID_Choice_specs_1 = { - sizeof(struct ENB_ID_Choice), - offsetof(struct ENB_ID_Choice, _asn_ctx), - offsetof(struct ENB_ID_Choice, present), - sizeof(((struct ENB_ID_Choice *)0)->present), - asn_MAP_ENB_ID_Choice_tag2el_1, - 3, /* Count of tags in the map */ - 0, 0, - 3 /* Extensions start */ -}; -asn_TYPE_descriptor_t asn_DEF_ENB_ID_Choice = { - "ENB-ID-Choice", - "ENB-ID-Choice", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { &asn_OER_type_ENB_ID_Choice_constr_1, &asn_PER_type_ENB_ID_Choice_constr_1, CHOICE_constraint }, - asn_MBR_ENB_ID_Choice_1, - 3, /* Elements count */ - &asn_SPC_ENB_ID_Choice_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/ENB-ID-Choice.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/ENB-ID-Choice.h deleted file mode 100644 index 7e142ae..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/ENB-ID-Choice.h +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _ENB_ID_Choice_H_ -#define _ENB_ID_Choice_H_ - - -#include - -/* Including external dependencies */ -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum ENB_ID_Choice_PR { - ENB_ID_Choice_PR_NOTHING, /* No components present */ - ENB_ID_Choice_PR_enb_ID_macro, - ENB_ID_Choice_PR_enb_ID_shortmacro, - ENB_ID_Choice_PR_enb_ID_longmacro - /* Extensions may appear below */ - -} ENB_ID_Choice_PR; - -/* ENB-ID-Choice */ -typedef struct ENB_ID_Choice { - ENB_ID_Choice_PR present; - union ENB_ID_Choice_u { - BIT_STRING_t enb_ID_macro; - BIT_STRING_t enb_ID_shortmacro; - BIT_STRING_t enb_ID_longmacro; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ENB_ID_Choice_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ENB_ID_Choice; -extern asn_CHOICE_specifics_t asn_SPC_ENB_ID_Choice_specs_1; -extern asn_TYPE_member_t asn_MBR_ENB_ID_Choice_1[3]; -extern asn_per_constraints_t asn_PER_type_ENB_ID_Choice_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _ENB_ID_Choice_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/ENB-ID.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/ENB-ID.c deleted file mode 100644 index 212c6fc..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/ENB-ID.c +++ /dev/null @@ -1,241 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "ENB-ID.h" - -static int -memb_macro_eNB_ID_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if(st->size > 0) { - /* Size in bits */ - size = 8 * st->size - (st->bits_unused & 0x07); - } else { - size = 0; - } - - if((size == 20)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_home_eNB_ID_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if(st->size > 0) { - /* Size in bits */ - size = 8 * st->size - (st->bits_unused & 0x07); - } else { - size = 0; - } - - if((size == 28)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_short_Macro_eNB_ID_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if(st->size > 0) { - /* Size in bits */ - size = 8 * st->size - (st->bits_unused & 0x07); - } else { - size = 0; - } - - if((size == 18)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_long_Macro_eNB_ID_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if(st->size > 0) { - /* Size in bits */ - size = 8 * st->size - (st->bits_unused & 0x07); - } else { - size = 0; - } - - if((size == 21)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_oer_constraints_t asn_OER_memb_macro_eNB_ID_constr_2 CC_NOTUSED = { - { 0, 0 }, - 20 /* (SIZE(20..20)) */}; -static asn_per_constraints_t asn_PER_memb_macro_eNB_ID_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 0, 0, 20, 20 } /* (SIZE(20..20)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_home_eNB_ID_constr_3 CC_NOTUSED = { - { 0, 0 }, - 28 /* (SIZE(28..28)) */}; -static asn_per_constraints_t asn_PER_memb_home_eNB_ID_constr_3 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 0, 0, 28, 28 } /* (SIZE(28..28)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_short_Macro_eNB_ID_constr_5 CC_NOTUSED = { - { 0, 0 }, - 18 /* (SIZE(18..18)) */}; -static asn_per_constraints_t asn_PER_memb_short_Macro_eNB_ID_constr_5 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 0, 0, 18, 18 } /* (SIZE(18..18)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_long_Macro_eNB_ID_constr_6 CC_NOTUSED = { - { 0, 0 }, - 21 /* (SIZE(21..21)) */}; -static asn_per_constraints_t asn_PER_memb_long_Macro_eNB_ID_constr_6 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 0, 0, 21, 21 } /* (SIZE(21..21)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_type_ENB_ID_constr_1 CC_NOTUSED = { - { 0, 0 }, - -1}; -asn_per_constraints_t asn_PER_type_ENB_ID_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_ENB_ID_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct ENB_ID, choice.macro_eNB_ID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_BIT_STRING, - 0, - { &asn_OER_memb_macro_eNB_ID_constr_2, &asn_PER_memb_macro_eNB_ID_constr_2, memb_macro_eNB_ID_constraint_1 }, - 0, 0, /* No default value */ - "macro-eNB-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct ENB_ID, choice.home_eNB_ID), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_BIT_STRING, - 0, - { &asn_OER_memb_home_eNB_ID_constr_3, &asn_PER_memb_home_eNB_ID_constr_3, memb_home_eNB_ID_constraint_1 }, - 0, 0, /* No default value */ - "home-eNB-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct ENB_ID, choice.short_Macro_eNB_ID), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_BIT_STRING, - 0, - { &asn_OER_memb_short_Macro_eNB_ID_constr_5, &asn_PER_memb_short_Macro_eNB_ID_constr_5, memb_short_Macro_eNB_ID_constraint_1 }, - 0, 0, /* No default value */ - "short-Macro-eNB-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct ENB_ID, choice.long_Macro_eNB_ID), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_BIT_STRING, - 0, - { &asn_OER_memb_long_Macro_eNB_ID_constr_6, &asn_PER_memb_long_Macro_eNB_ID_constr_6, memb_long_Macro_eNB_ID_constraint_1 }, - 0, 0, /* No default value */ - "long-Macro-eNB-ID" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_ENB_ID_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* macro-eNB-ID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* home-eNB-ID */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* short-Macro-eNB-ID */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* long-Macro-eNB-ID */ -}; -asn_CHOICE_specifics_t asn_SPC_ENB_ID_specs_1 = { - sizeof(struct ENB_ID), - offsetof(struct ENB_ID, _asn_ctx), - offsetof(struct ENB_ID, present), - sizeof(((struct ENB_ID *)0)->present), - asn_MAP_ENB_ID_tag2el_1, - 4, /* Count of tags in the map */ - 0, 0, - 2 /* Extensions start */ -}; -asn_TYPE_descriptor_t asn_DEF_ENB_ID = { - "ENB-ID", - "ENB-ID", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { &asn_OER_type_ENB_ID_constr_1, &asn_PER_type_ENB_ID_constr_1, CHOICE_constraint }, - asn_MBR_ENB_ID_1, - 4, /* Elements count */ - &asn_SPC_ENB_ID_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/ENB-ID.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/ENB-ID.h deleted file mode 100644 index 8af6b41..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/ENB-ID.h +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _ENB_ID_H_ -#define _ENB_ID_H_ - - -#include - -/* Including external dependencies */ -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum ENB_ID_PR { - ENB_ID_PR_NOTHING, /* No components present */ - ENB_ID_PR_macro_eNB_ID, - ENB_ID_PR_home_eNB_ID, - /* Extensions may appear below */ - ENB_ID_PR_short_Macro_eNB_ID, - ENB_ID_PR_long_Macro_eNB_ID -} ENB_ID_PR; - -/* ENB-ID */ -typedef struct ENB_ID { - ENB_ID_PR present; - union ENB_ID_u { - BIT_STRING_t macro_eNB_ID; - BIT_STRING_t home_eNB_ID; - /* - * This type is extensible, - * possible extensions are below. - */ - BIT_STRING_t short_Macro_eNB_ID; - BIT_STRING_t long_Macro_eNB_ID; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ENB_ID_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ENB_ID; -extern asn_CHOICE_specifics_t asn_SPC_ENB_ID_specs_1; -extern asn_TYPE_member_t asn_MBR_ENB_ID_1[4]; -extern asn_per_constraints_t asn_PER_type_ENB_ID_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _ENB_ID_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/ENGNB-ID.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/ENGNB-ID.c deleted file mode 100644 index e8fc32f..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/ENGNB-ID.c +++ /dev/null @@ -1,94 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "ENGNB-ID.h" - -static int -memb_gNB_ID_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if(st->size > 0) { - /* Size in bits */ - size = 8 * st->size - (st->bits_unused & 0x07); - } else { - size = 0; - } - - if((size >= 22 && size <= 32)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_oer_constraints_t asn_OER_memb_gNB_ID_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(22..32)) */}; -static asn_per_constraints_t asn_PER_memb_gNB_ID_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 4, 4, 22, 32 } /* (SIZE(22..32)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_type_ENGNB_ID_constr_1 CC_NOTUSED = { - { 0, 0 }, - -1}; -asn_per_constraints_t asn_PER_type_ENGNB_ID_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 0, 0 } /* (0..0,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_ENGNB_ID_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct ENGNB_ID, choice.gNB_ID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_BIT_STRING, - 0, - { &asn_OER_memb_gNB_ID_constr_2, &asn_PER_memb_gNB_ID_constr_2, memb_gNB_ID_constraint_1 }, - 0, 0, /* No default value */ - "gNB-ID" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_ENGNB_ID_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* gNB-ID */ -}; -asn_CHOICE_specifics_t asn_SPC_ENGNB_ID_specs_1 = { - sizeof(struct ENGNB_ID), - offsetof(struct ENGNB_ID, _asn_ctx), - offsetof(struct ENGNB_ID, present), - sizeof(((struct ENGNB_ID *)0)->present), - asn_MAP_ENGNB_ID_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, - 1 /* Extensions start */ -}; -asn_TYPE_descriptor_t asn_DEF_ENGNB_ID = { - "ENGNB-ID", - "ENGNB-ID", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { &asn_OER_type_ENGNB_ID_constr_1, &asn_PER_type_ENGNB_ID_constr_1, CHOICE_constraint }, - asn_MBR_ENGNB_ID_1, - 1, /* Elements count */ - &asn_SPC_ENGNB_ID_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/ENGNB-ID.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/ENGNB-ID.h deleted file mode 100644 index f97a53c..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/ENGNB-ID.h +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _ENGNB_ID_H_ -#define _ENGNB_ID_H_ - - -#include - -/* Including external dependencies */ -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum ENGNB_ID_PR { - ENGNB_ID_PR_NOTHING, /* No components present */ - ENGNB_ID_PR_gNB_ID - /* Extensions may appear below */ - -} ENGNB_ID_PR; - -/* ENGNB-ID */ -typedef struct ENGNB_ID { - ENGNB_ID_PR present; - union ENGNB_ID_u { - BIT_STRING_t gNB_ID; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ENGNB_ID_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ENGNB_ID; -extern asn_CHOICE_specifics_t asn_SPC_ENGNB_ID_specs_1; -extern asn_TYPE_member_t asn_MBR_ENGNB_ID_1[1]; -extern asn_per_constraints_t asn_PER_type_ENGNB_ID_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _ENGNB_ID_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/EPC-CUUP-PM-Format.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/EPC-CUUP-PM-Format.c deleted file mode 100644 index d8902f8..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/EPC-CUUP-PM-Format.c +++ /dev/null @@ -1,129 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "EPC-CUUP-PM-Format.h" - -static int -memb_perQCIReportList_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - /* Determine the number of elements */ - size = _A_CSEQUENCE_FROM_VOID(sptr)->count; - - if((size >= 1 && size <= 256)) { - /* Perform validation of the inner elements */ - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_oer_constraints_t asn_OER_type_perQCIReportList_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..256)) */}; -static asn_per_constraints_t asn_PER_type_perQCIReportList_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 8, 8, 1, 256 } /* (SIZE(1..256)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_perQCIReportList_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..256)) */}; -static asn_per_constraints_t asn_PER_memb_perQCIReportList_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 8, 8, 1, 256 } /* (SIZE(1..256)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_perQCIReportList_2[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_PerQCIReportListItemFormat, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_perQCIReportList_tags_2[] = { - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_perQCIReportList_specs_2 = { - sizeof(struct EPC_CUUP_PM_Format__perQCIReportList), - offsetof(struct EPC_CUUP_PM_Format__perQCIReportList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_perQCIReportList_2 = { - "perQCIReportList", - "perQCIReportList", - &asn_OP_SEQUENCE_OF, - asn_DEF_perQCIReportList_tags_2, - sizeof(asn_DEF_perQCIReportList_tags_2) - /sizeof(asn_DEF_perQCIReportList_tags_2[0]) - 1, /* 1 */ - asn_DEF_perQCIReportList_tags_2, /* Same as above */ - sizeof(asn_DEF_perQCIReportList_tags_2) - /sizeof(asn_DEF_perQCIReportList_tags_2[0]), /* 2 */ - { &asn_OER_type_perQCIReportList_constr_2, &asn_PER_type_perQCIReportList_constr_2, SEQUENCE_OF_constraint }, - asn_MBR_perQCIReportList_2, - 1, /* Single element */ - &asn_SPC_perQCIReportList_specs_2 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_EPC_CUUP_PM_Format_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct EPC_CUUP_PM_Format, perQCIReportList), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - 0, - &asn_DEF_perQCIReportList_2, - 0, - { &asn_OER_memb_perQCIReportList_constr_2, &asn_PER_memb_perQCIReportList_constr_2, memb_perQCIReportList_constraint_1 }, - 0, 0, /* No default value */ - "perQCIReportList" - }, -}; -static const ber_tlv_tag_t asn_DEF_EPC_CUUP_PM_Format_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_EPC_CUUP_PM_Format_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* perQCIReportList */ -}; -asn_SEQUENCE_specifics_t asn_SPC_EPC_CUUP_PM_Format_specs_1 = { - sizeof(struct EPC_CUUP_PM_Format), - offsetof(struct EPC_CUUP_PM_Format, _asn_ctx), - asn_MAP_EPC_CUUP_PM_Format_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_EPC_CUUP_PM_Format = { - "EPC-CUUP-PM-Format", - "EPC-CUUP-PM-Format", - &asn_OP_SEQUENCE, - asn_DEF_EPC_CUUP_PM_Format_tags_1, - sizeof(asn_DEF_EPC_CUUP_PM_Format_tags_1) - /sizeof(asn_DEF_EPC_CUUP_PM_Format_tags_1[0]), /* 1 */ - asn_DEF_EPC_CUUP_PM_Format_tags_1, /* Same as above */ - sizeof(asn_DEF_EPC_CUUP_PM_Format_tags_1) - /sizeof(asn_DEF_EPC_CUUP_PM_Format_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_EPC_CUUP_PM_Format_1, - 1, /* Elements count */ - &asn_SPC_EPC_CUUP_PM_Format_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/EPC-CUUP-PM-Format.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/EPC-CUUP-PM-Format.h deleted file mode 100644 index b07125d..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/EPC-CUUP-PM-Format.h +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _EPC_CUUP_PM_Format_H_ -#define _EPC_CUUP_PM_Format_H_ - - -#include - -/* Including external dependencies */ -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct PerQCIReportListItemFormat; - -/* EPC-CUUP-PM-Format */ -typedef struct EPC_CUUP_PM_Format { - struct EPC_CUUP_PM_Format__perQCIReportList { - A_SEQUENCE_OF(struct PerQCIReportListItemFormat) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } perQCIReportList; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} EPC_CUUP_PM_Format_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_EPC_CUUP_PM_Format; -extern asn_SEQUENCE_specifics_t asn_SPC_EPC_CUUP_PM_Format_specs_1; -extern asn_TYPE_member_t asn_MBR_EPC_CUUP_PM_Format_1[1]; - -#ifdef __cplusplus -} -#endif - -/* Referred external types */ -#include "PerQCIReportListItemFormat.h" - -#endif /* _EPC_CUUP_PM_Format_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/EPC-DU-PM-Container.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/EPC-DU-PM-Container.c deleted file mode 100644 index 2ba5440..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/EPC-DU-PM-Container.c +++ /dev/null @@ -1,129 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "EPC-DU-PM-Container.h" - -static int -memb_perQCIReportList_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - /* Determine the number of elements */ - size = _A_CSEQUENCE_FROM_VOID(sptr)->count; - - if((size >= 1 && size <= 256)) { - /* Perform validation of the inner elements */ - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_oer_constraints_t asn_OER_type_perQCIReportList_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..256)) */}; -static asn_per_constraints_t asn_PER_type_perQCIReportList_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 8, 8, 1, 256 } /* (SIZE(1..256)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_perQCIReportList_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..256)) */}; -static asn_per_constraints_t asn_PER_memb_perQCIReportList_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 8, 8, 1, 256 } /* (SIZE(1..256)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_perQCIReportList_2[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_PerQCIReportListItem, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_perQCIReportList_tags_2[] = { - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_perQCIReportList_specs_2 = { - sizeof(struct EPC_DU_PM_Container__perQCIReportList), - offsetof(struct EPC_DU_PM_Container__perQCIReportList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_perQCIReportList_2 = { - "perQCIReportList", - "perQCIReportList", - &asn_OP_SEQUENCE_OF, - asn_DEF_perQCIReportList_tags_2, - sizeof(asn_DEF_perQCIReportList_tags_2) - /sizeof(asn_DEF_perQCIReportList_tags_2[0]) - 1, /* 1 */ - asn_DEF_perQCIReportList_tags_2, /* Same as above */ - sizeof(asn_DEF_perQCIReportList_tags_2) - /sizeof(asn_DEF_perQCIReportList_tags_2[0]), /* 2 */ - { &asn_OER_type_perQCIReportList_constr_2, &asn_PER_type_perQCIReportList_constr_2, SEQUENCE_OF_constraint }, - asn_MBR_perQCIReportList_2, - 1, /* Single element */ - &asn_SPC_perQCIReportList_specs_2 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_EPC_DU_PM_Container_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct EPC_DU_PM_Container, perQCIReportList), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - 0, - &asn_DEF_perQCIReportList_2, - 0, - { &asn_OER_memb_perQCIReportList_constr_2, &asn_PER_memb_perQCIReportList_constr_2, memb_perQCIReportList_constraint_1 }, - 0, 0, /* No default value */ - "perQCIReportList" - }, -}; -static const ber_tlv_tag_t asn_DEF_EPC_DU_PM_Container_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_EPC_DU_PM_Container_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* perQCIReportList */ -}; -asn_SEQUENCE_specifics_t asn_SPC_EPC_DU_PM_Container_specs_1 = { - sizeof(struct EPC_DU_PM_Container), - offsetof(struct EPC_DU_PM_Container, _asn_ctx), - asn_MAP_EPC_DU_PM_Container_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_EPC_DU_PM_Container = { - "EPC-DU-PM-Container", - "EPC-DU-PM-Container", - &asn_OP_SEQUENCE, - asn_DEF_EPC_DU_PM_Container_tags_1, - sizeof(asn_DEF_EPC_DU_PM_Container_tags_1) - /sizeof(asn_DEF_EPC_DU_PM_Container_tags_1[0]), /* 1 */ - asn_DEF_EPC_DU_PM_Container_tags_1, /* Same as above */ - sizeof(asn_DEF_EPC_DU_PM_Container_tags_1) - /sizeof(asn_DEF_EPC_DU_PM_Container_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_EPC_DU_PM_Container_1, - 1, /* Elements count */ - &asn_SPC_EPC_DU_PM_Container_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/EPC-DU-PM-Container.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/EPC-DU-PM-Container.h deleted file mode 100644 index 198982e..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/EPC-DU-PM-Container.h +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _EPC_DU_PM_Container_H_ -#define _EPC_DU_PM_Container_H_ - - -#include - -/* Including external dependencies */ -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct PerQCIReportListItem; - -/* EPC-DU-PM-Container */ -typedef struct EPC_DU_PM_Container { - struct EPC_DU_PM_Container__perQCIReportList { - A_SEQUENCE_OF(struct PerQCIReportListItem) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } perQCIReportList; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} EPC_DU_PM_Container_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_EPC_DU_PM_Container; -extern asn_SEQUENCE_specifics_t asn_SPC_EPC_DU_PM_Container_specs_1; -extern asn_TYPE_member_t asn_MBR_EPC_DU_PM_Container_1[1]; - -#ifdef __cplusplus -} -#endif - -/* Referred external types */ -#include "PerQCIReportListItem.h" - -#endif /* _EPC_DU_PM_Container_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/ErrorIndication.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/ErrorIndication.c deleted file mode 100644 index e971c4f..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/ErrorIndication.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "ErrorIndication.h" - -asn_TYPE_member_t asn_MBR_ErrorIndication_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct ErrorIndication, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_1527P10, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_ErrorIndication_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ErrorIndication_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ErrorIndication_specs_1 = { - sizeof(struct ErrorIndication), - offsetof(struct ErrorIndication, _asn_ctx), - asn_MAP_ErrorIndication_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ErrorIndication = { - "ErrorIndication", - "ErrorIndication", - &asn_OP_SEQUENCE, - asn_DEF_ErrorIndication_tags_1, - sizeof(asn_DEF_ErrorIndication_tags_1) - /sizeof(asn_DEF_ErrorIndication_tags_1[0]), /* 1 */ - asn_DEF_ErrorIndication_tags_1, /* Same as above */ - sizeof(asn_DEF_ErrorIndication_tags_1) - /sizeof(asn_DEF_ErrorIndication_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ErrorIndication_1, - 1, /* Elements count */ - &asn_SPC_ErrorIndication_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/ErrorIndication.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/ErrorIndication.h deleted file mode 100644 index a209847..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/ErrorIndication.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _ErrorIndication_H_ -#define _ErrorIndication_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* ErrorIndication */ -typedef struct ErrorIndication { - ProtocolIE_Container_1527P10_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ErrorIndication_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ErrorIndication; -extern asn_SEQUENCE_specifics_t asn_SPC_ErrorIndication_specs_1; -extern asn_TYPE_member_t asn_MBR_ErrorIndication_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _ErrorIndication_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/FGC-CUUP-PM-Format.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/FGC-CUUP-PM-Format.c deleted file mode 100644 index d8f7e44..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/FGC-CUUP-PM-Format.c +++ /dev/null @@ -1,129 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "FGC-CUUP-PM-Format.h" - -static int -memb_sliceToReportList_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - /* Determine the number of elements */ - size = _A_CSEQUENCE_FROM_VOID(sptr)->count; - - if((size >= 1 && size <= 1024)) { - /* Perform validation of the inner elements */ - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_oer_constraints_t asn_OER_type_sliceToReportList_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..1024)) */}; -static asn_per_constraints_t asn_PER_type_sliceToReportList_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 10, 10, 1, 1024 } /* (SIZE(1..1024)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_sliceToReportList_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..1024)) */}; -static asn_per_constraints_t asn_PER_memb_sliceToReportList_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 10, 10, 1, 1024 } /* (SIZE(1..1024)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_sliceToReportList_2[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_SliceToReportListItem, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_sliceToReportList_tags_2[] = { - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_sliceToReportList_specs_2 = { - sizeof(struct FGC_CUUP_PM_Format__sliceToReportList), - offsetof(struct FGC_CUUP_PM_Format__sliceToReportList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_sliceToReportList_2 = { - "sliceToReportList", - "sliceToReportList", - &asn_OP_SEQUENCE_OF, - asn_DEF_sliceToReportList_tags_2, - sizeof(asn_DEF_sliceToReportList_tags_2) - /sizeof(asn_DEF_sliceToReportList_tags_2[0]) - 1, /* 1 */ - asn_DEF_sliceToReportList_tags_2, /* Same as above */ - sizeof(asn_DEF_sliceToReportList_tags_2) - /sizeof(asn_DEF_sliceToReportList_tags_2[0]), /* 2 */ - { &asn_OER_type_sliceToReportList_constr_2, &asn_PER_type_sliceToReportList_constr_2, SEQUENCE_OF_constraint }, - asn_MBR_sliceToReportList_2, - 1, /* Single element */ - &asn_SPC_sliceToReportList_specs_2 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_FGC_CUUP_PM_Format_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct FGC_CUUP_PM_Format, sliceToReportList), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - 0, - &asn_DEF_sliceToReportList_2, - 0, - { &asn_OER_memb_sliceToReportList_constr_2, &asn_PER_memb_sliceToReportList_constr_2, memb_sliceToReportList_constraint_1 }, - 0, 0, /* No default value */ - "sliceToReportList" - }, -}; -static const ber_tlv_tag_t asn_DEF_FGC_CUUP_PM_Format_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_FGC_CUUP_PM_Format_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* sliceToReportList */ -}; -asn_SEQUENCE_specifics_t asn_SPC_FGC_CUUP_PM_Format_specs_1 = { - sizeof(struct FGC_CUUP_PM_Format), - offsetof(struct FGC_CUUP_PM_Format, _asn_ctx), - asn_MAP_FGC_CUUP_PM_Format_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_FGC_CUUP_PM_Format = { - "FGC-CUUP-PM-Format", - "FGC-CUUP-PM-Format", - &asn_OP_SEQUENCE, - asn_DEF_FGC_CUUP_PM_Format_tags_1, - sizeof(asn_DEF_FGC_CUUP_PM_Format_tags_1) - /sizeof(asn_DEF_FGC_CUUP_PM_Format_tags_1[0]), /* 1 */ - asn_DEF_FGC_CUUP_PM_Format_tags_1, /* Same as above */ - sizeof(asn_DEF_FGC_CUUP_PM_Format_tags_1) - /sizeof(asn_DEF_FGC_CUUP_PM_Format_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_FGC_CUUP_PM_Format_1, - 1, /* Elements count */ - &asn_SPC_FGC_CUUP_PM_Format_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/FGC-CUUP-PM-Format.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/FGC-CUUP-PM-Format.h deleted file mode 100644 index a6e4aa8..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/FGC-CUUP-PM-Format.h +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _FGC_CUUP_PM_Format_H_ -#define _FGC_CUUP_PM_Format_H_ - - -#include - -/* Including external dependencies */ -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct SliceToReportListItem; - -/* FGC-CUUP-PM-Format */ -typedef struct FGC_CUUP_PM_Format { - struct FGC_CUUP_PM_Format__sliceToReportList { - A_SEQUENCE_OF(struct SliceToReportListItem) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } sliceToReportList; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} FGC_CUUP_PM_Format_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_FGC_CUUP_PM_Format; -extern asn_SEQUENCE_specifics_t asn_SPC_FGC_CUUP_PM_Format_specs_1; -extern asn_TYPE_member_t asn_MBR_FGC_CUUP_PM_Format_1[1]; - -#ifdef __cplusplus -} -#endif - -/* Referred external types */ -#include "SliceToReportListItem.h" - -#endif /* _FGC_CUUP_PM_Format_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/FGC-DU-PM-Container.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/FGC-DU-PM-Container.c deleted file mode 100644 index c0429ab..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/FGC-DU-PM-Container.c +++ /dev/null @@ -1,129 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "FGC-DU-PM-Container.h" - -static int -memb_slicePerPlmnPerCellList_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - /* Determine the number of elements */ - size = _A_CSEQUENCE_FROM_VOID(sptr)->count; - - if((size >= 1 && size <= 1024)) { - /* Perform validation of the inner elements */ - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_oer_constraints_t asn_OER_type_slicePerPlmnPerCellList_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..1024)) */}; -static asn_per_constraints_t asn_PER_type_slicePerPlmnPerCellList_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 10, 10, 1, 1024 } /* (SIZE(1..1024)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_slicePerPlmnPerCellList_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..1024)) */}; -static asn_per_constraints_t asn_PER_memb_slicePerPlmnPerCellList_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 10, 10, 1, 1024 } /* (SIZE(1..1024)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_slicePerPlmnPerCellList_2[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_SlicePerPlmnPerCellListItem, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_slicePerPlmnPerCellList_tags_2[] = { - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_slicePerPlmnPerCellList_specs_2 = { - sizeof(struct FGC_DU_PM_Container__slicePerPlmnPerCellList), - offsetof(struct FGC_DU_PM_Container__slicePerPlmnPerCellList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_slicePerPlmnPerCellList_2 = { - "slicePerPlmnPerCellList", - "slicePerPlmnPerCellList", - &asn_OP_SEQUENCE_OF, - asn_DEF_slicePerPlmnPerCellList_tags_2, - sizeof(asn_DEF_slicePerPlmnPerCellList_tags_2) - /sizeof(asn_DEF_slicePerPlmnPerCellList_tags_2[0]) - 1, /* 1 */ - asn_DEF_slicePerPlmnPerCellList_tags_2, /* Same as above */ - sizeof(asn_DEF_slicePerPlmnPerCellList_tags_2) - /sizeof(asn_DEF_slicePerPlmnPerCellList_tags_2[0]), /* 2 */ - { &asn_OER_type_slicePerPlmnPerCellList_constr_2, &asn_PER_type_slicePerPlmnPerCellList_constr_2, SEQUENCE_OF_constraint }, - asn_MBR_slicePerPlmnPerCellList_2, - 1, /* Single element */ - &asn_SPC_slicePerPlmnPerCellList_specs_2 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_FGC_DU_PM_Container_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct FGC_DU_PM_Container, slicePerPlmnPerCellList), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - 0, - &asn_DEF_slicePerPlmnPerCellList_2, - 0, - { &asn_OER_memb_slicePerPlmnPerCellList_constr_2, &asn_PER_memb_slicePerPlmnPerCellList_constr_2, memb_slicePerPlmnPerCellList_constraint_1 }, - 0, 0, /* No default value */ - "slicePerPlmnPerCellList" - }, -}; -static const ber_tlv_tag_t asn_DEF_FGC_DU_PM_Container_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_FGC_DU_PM_Container_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* slicePerPlmnPerCellList */ -}; -asn_SEQUENCE_specifics_t asn_SPC_FGC_DU_PM_Container_specs_1 = { - sizeof(struct FGC_DU_PM_Container), - offsetof(struct FGC_DU_PM_Container, _asn_ctx), - asn_MAP_FGC_DU_PM_Container_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_FGC_DU_PM_Container = { - "FGC-DU-PM-Container", - "FGC-DU-PM-Container", - &asn_OP_SEQUENCE, - asn_DEF_FGC_DU_PM_Container_tags_1, - sizeof(asn_DEF_FGC_DU_PM_Container_tags_1) - /sizeof(asn_DEF_FGC_DU_PM_Container_tags_1[0]), /* 1 */ - asn_DEF_FGC_DU_PM_Container_tags_1, /* Same as above */ - sizeof(asn_DEF_FGC_DU_PM_Container_tags_1) - /sizeof(asn_DEF_FGC_DU_PM_Container_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_FGC_DU_PM_Container_1, - 1, /* Elements count */ - &asn_SPC_FGC_DU_PM_Container_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/FGC-DU-PM-Container.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/FGC-DU-PM-Container.h deleted file mode 100644 index 96debbb..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/FGC-DU-PM-Container.h +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _FGC_DU_PM_Container_H_ -#define _FGC_DU_PM_Container_H_ - - -#include - -/* Including external dependencies */ -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct SlicePerPlmnPerCellListItem; - -/* FGC-DU-PM-Container */ -typedef struct FGC_DU_PM_Container { - struct FGC_DU_PM_Container__slicePerPlmnPerCellList { - A_SEQUENCE_OF(struct SlicePerPlmnPerCellListItem) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } slicePerPlmnPerCellList; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} FGC_DU_PM_Container_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_FGC_DU_PM_Container; -extern asn_SEQUENCE_specifics_t asn_SPC_FGC_DU_PM_Container_specs_1; -extern asn_TYPE_member_t asn_MBR_FGC_DU_PM_Container_1[1]; - -#ifdef __cplusplus -} -#endif - -/* Referred external types */ -#include "SlicePerPlmnPerCellListItem.h" - -#endif /* _FGC_DU_PM_Container_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/FQIPERSlicesPerPlmnListItem.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/FQIPERSlicesPerPlmnListItem.c deleted file mode 100644 index 84d1741..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/FQIPERSlicesPerPlmnListItem.c +++ /dev/null @@ -1,183 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "FQIPERSlicesPerPlmnListItem.h" - -static int -memb_fiveQI_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 255)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_pDCPBytesDL_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const INTEGER_t *st = (const INTEGER_t *)sptr; - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if(asn_INTEGER2long(st, &value)) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value too large (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if((value >= 0 && value <= 10000000000)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_pDCPBytesUL_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const INTEGER_t *st = (const INTEGER_t *)sptr; - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if(asn_INTEGER2long(st, &value)) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value too large (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if((value >= 0 && value <= 10000000000)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_oer_constraints_t asn_OER_memb_fiveQI_constr_2 CC_NOTUSED = { - { 1, 1 } /* (0..255) */, - -1}; -static asn_per_constraints_t asn_PER_memb_fiveQI_constr_2 CC_NOTUSED = { - { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_pDCPBytesDL_constr_3 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_memb_pDCPBytesDL_constr_3 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 34, -1, 0, 10000000000 } /* (0..10000000000,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_pDCPBytesUL_constr_4 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_memb_pDCPBytesUL_constr_4 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 34, -1, 0, 10000000000 } /* (0..10000000000,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_FQIPERSlicesPerPlmnListItem_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct FQIPERSlicesPerPlmnListItem, fiveQI), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_fiveQI_constr_2, &asn_PER_memb_fiveQI_constr_2, memb_fiveQI_constraint_1 }, - 0, 0, /* No default value */ - "fiveQI" - }, - { ATF_POINTER, 2, offsetof(struct FQIPERSlicesPerPlmnListItem, pDCPBytesDL), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_INTEGER, - 0, - { &asn_OER_memb_pDCPBytesDL_constr_3, &asn_PER_memb_pDCPBytesDL_constr_3, memb_pDCPBytesDL_constraint_1 }, - 0, 0, /* No default value */ - "pDCPBytesDL" - }, - { ATF_POINTER, 1, offsetof(struct FQIPERSlicesPerPlmnListItem, pDCPBytesUL), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_INTEGER, - 0, - { &asn_OER_memb_pDCPBytesUL_constr_4, &asn_PER_memb_pDCPBytesUL_constr_4, memb_pDCPBytesUL_constraint_1 }, - 0, 0, /* No default value */ - "pDCPBytesUL" - }, -}; -static const int asn_MAP_FQIPERSlicesPerPlmnListItem_oms_1[] = { 1, 2 }; -static const ber_tlv_tag_t asn_DEF_FQIPERSlicesPerPlmnListItem_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_FQIPERSlicesPerPlmnListItem_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* fiveQI */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* pDCPBytesDL */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* pDCPBytesUL */ -}; -asn_SEQUENCE_specifics_t asn_SPC_FQIPERSlicesPerPlmnListItem_specs_1 = { - sizeof(struct FQIPERSlicesPerPlmnListItem), - offsetof(struct FQIPERSlicesPerPlmnListItem, _asn_ctx), - asn_MAP_FQIPERSlicesPerPlmnListItem_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_FQIPERSlicesPerPlmnListItem_oms_1, /* Optional members */ - 2, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_FQIPERSlicesPerPlmnListItem = { - "FQIPERSlicesPerPlmnListItem", - "FQIPERSlicesPerPlmnListItem", - &asn_OP_SEQUENCE, - asn_DEF_FQIPERSlicesPerPlmnListItem_tags_1, - sizeof(asn_DEF_FQIPERSlicesPerPlmnListItem_tags_1) - /sizeof(asn_DEF_FQIPERSlicesPerPlmnListItem_tags_1[0]), /* 1 */ - asn_DEF_FQIPERSlicesPerPlmnListItem_tags_1, /* Same as above */ - sizeof(asn_DEF_FQIPERSlicesPerPlmnListItem_tags_1) - /sizeof(asn_DEF_FQIPERSlicesPerPlmnListItem_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_FQIPERSlicesPerPlmnListItem_1, - 3, /* Elements count */ - &asn_SPC_FQIPERSlicesPerPlmnListItem_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/FQIPERSlicesPerPlmnListItem.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/FQIPERSlicesPerPlmnListItem.h deleted file mode 100644 index a87a0d7..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/FQIPERSlicesPerPlmnListItem.h +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _FQIPERSlicesPerPlmnListItem_H_ -#define _FQIPERSlicesPerPlmnListItem_H_ - - -#include - -/* Including external dependencies */ -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* FQIPERSlicesPerPlmnListItem */ -typedef struct FQIPERSlicesPerPlmnListItem { - long fiveQI; - INTEGER_t *pDCPBytesDL; /* OPTIONAL */ - INTEGER_t *pDCPBytesUL; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} FQIPERSlicesPerPlmnListItem_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_FQIPERSlicesPerPlmnListItem; -extern asn_SEQUENCE_specifics_t asn_SPC_FQIPERSlicesPerPlmnListItem_specs_1; -extern asn_TYPE_member_t asn_MBR_FQIPERSlicesPerPlmnListItem_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _FQIPERSlicesPerPlmnListItem_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/FQIPERSlicesPerPlmnPerCellListItem.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/FQIPERSlicesPerPlmnPerCellListItem.c deleted file mode 100644 index d73d0db..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/FQIPERSlicesPerPlmnPerCellListItem.c +++ /dev/null @@ -1,171 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "FQIPERSlicesPerPlmnPerCellListItem.h" - -static int -memb_fiveQI_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 255)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_dl_PRBUsage_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 273)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_ul_PRBUsage_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 273)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_oer_constraints_t asn_OER_memb_fiveQI_constr_2 CC_NOTUSED = { - { 1, 1 } /* (0..255) */, - -1}; -static asn_per_constraints_t asn_PER_memb_fiveQI_constr_2 CC_NOTUSED = { - { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_dl_PRBUsage_constr_3 CC_NOTUSED = { - { 2, 1 } /* (0..273) */, - -1}; -static asn_per_constraints_t asn_PER_memb_dl_PRBUsage_constr_3 CC_NOTUSED = { - { APC_CONSTRAINED, 9, 9, 0, 273 } /* (0..273) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_ul_PRBUsage_constr_4 CC_NOTUSED = { - { 2, 1 } /* (0..273) */, - -1}; -static asn_per_constraints_t asn_PER_memb_ul_PRBUsage_constr_4 CC_NOTUSED = { - { APC_CONSTRAINED, 9, 9, 0, 273 } /* (0..273) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_FQIPERSlicesPerPlmnPerCellListItem_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct FQIPERSlicesPerPlmnPerCellListItem, fiveQI), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_fiveQI_constr_2, &asn_PER_memb_fiveQI_constr_2, memb_fiveQI_constraint_1 }, - 0, 0, /* No default value */ - "fiveQI" - }, - { ATF_POINTER, 2, offsetof(struct FQIPERSlicesPerPlmnPerCellListItem, dl_PRBUsage), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_dl_PRBUsage_constr_3, &asn_PER_memb_dl_PRBUsage_constr_3, memb_dl_PRBUsage_constraint_1 }, - 0, 0, /* No default value */ - "dl-PRBUsage" - }, - { ATF_POINTER, 1, offsetof(struct FQIPERSlicesPerPlmnPerCellListItem, ul_PRBUsage), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_ul_PRBUsage_constr_4, &asn_PER_memb_ul_PRBUsage_constr_4, memb_ul_PRBUsage_constraint_1 }, - 0, 0, /* No default value */ - "ul-PRBUsage" - }, -}; -static const int asn_MAP_FQIPERSlicesPerPlmnPerCellListItem_oms_1[] = { 1, 2 }; -static const ber_tlv_tag_t asn_DEF_FQIPERSlicesPerPlmnPerCellListItem_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_FQIPERSlicesPerPlmnPerCellListItem_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* fiveQI */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* dl-PRBUsage */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* ul-PRBUsage */ -}; -asn_SEQUENCE_specifics_t asn_SPC_FQIPERSlicesPerPlmnPerCellListItem_specs_1 = { - sizeof(struct FQIPERSlicesPerPlmnPerCellListItem), - offsetof(struct FQIPERSlicesPerPlmnPerCellListItem, _asn_ctx), - asn_MAP_FQIPERSlicesPerPlmnPerCellListItem_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_FQIPERSlicesPerPlmnPerCellListItem_oms_1, /* Optional members */ - 2, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_FQIPERSlicesPerPlmnPerCellListItem = { - "FQIPERSlicesPerPlmnPerCellListItem", - "FQIPERSlicesPerPlmnPerCellListItem", - &asn_OP_SEQUENCE, - asn_DEF_FQIPERSlicesPerPlmnPerCellListItem_tags_1, - sizeof(asn_DEF_FQIPERSlicesPerPlmnPerCellListItem_tags_1) - /sizeof(asn_DEF_FQIPERSlicesPerPlmnPerCellListItem_tags_1[0]), /* 1 */ - asn_DEF_FQIPERSlicesPerPlmnPerCellListItem_tags_1, /* Same as above */ - sizeof(asn_DEF_FQIPERSlicesPerPlmnPerCellListItem_tags_1) - /sizeof(asn_DEF_FQIPERSlicesPerPlmnPerCellListItem_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_FQIPERSlicesPerPlmnPerCellListItem_1, - 3, /* Elements count */ - &asn_SPC_FQIPERSlicesPerPlmnPerCellListItem_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/FQIPERSlicesPerPlmnPerCellListItem.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/FQIPERSlicesPerPlmnPerCellListItem.h deleted file mode 100644 index 1b22e34..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/FQIPERSlicesPerPlmnPerCellListItem.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _FQIPERSlicesPerPlmnPerCellListItem_H_ -#define _FQIPERSlicesPerPlmnPerCellListItem_H_ - - -#include - -/* Including external dependencies */ -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* FQIPERSlicesPerPlmnPerCellListItem */ -typedef struct FQIPERSlicesPerPlmnPerCellListItem { - long fiveQI; - long *dl_PRBUsage; /* OPTIONAL */ - long *ul_PRBUsage; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} FQIPERSlicesPerPlmnPerCellListItem_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_FQIPERSlicesPerPlmnPerCellListItem; -extern asn_SEQUENCE_specifics_t asn_SPC_FQIPERSlicesPerPlmnPerCellListItem_specs_1; -extern asn_TYPE_member_t asn_MBR_FQIPERSlicesPerPlmnPerCellListItem_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _FQIPERSlicesPerPlmnPerCellListItem_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/GNB-CU-CP-Name.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/GNB-CU-CP-Name.c deleted file mode 100644 index 029ca92..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/GNB-CU-CP-Name.c +++ /dev/null @@ -1,109 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "GNB-CU-CP-Name.h" - -static const int permitted_alphabet_table_1[256] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */ - 1, 0, 0, 0, 0, 0, 0, 2, 3, 4, 0, 5, 6, 7, 8, 9, /* . '() +,-./ */ -10,11,12,13,14,15,16,17,18,19,20, 0, 0,21, 0,22, /* 0123456789: = ? */ - 0,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37, /* ABCDEFGHIJKLMNO */ -38,39,40,41,42,43,44,45,46,47,48, 0, 0, 0, 0, 0, /* PQRSTUVWXYZ */ - 0,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63, /* abcdefghijklmno */ -64,65,66,67,68,69,70,71,72,73,74, 0, 0, 0, 0, 0, /* pqrstuvwxyz */ -}; -static const int permitted_alphabet_code2value_1[74] = { -32,39,40,41,43,44,45,46,47,48,49,50,51,52,53,54, -55,56,57,58,61,63,65,66,67,68,69,70,71,72,73,74, -75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90, -97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112, -113,114,115,116,117,118,119,120,121,122,}; - - -static int check_permitted_alphabet_1(const void *sptr) { - const int *table = permitted_alphabet_table_1; - /* The underlying type is PrintableString */ - const PrintableString_t *st = (const PrintableString_t *)sptr; - const uint8_t *ch = st->buf; - const uint8_t *end = ch + st->size; - - for(; ch < end; ch++) { - uint8_t cv = *ch; - if(!table[cv]) return -1; - } - return 0; -} - -int -GNB_CU_CP_Name_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const PrintableString_t *st = (const PrintableString_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - size = st->size; - - if((size >= 1 && size <= 150) - && !check_permitted_alphabet_1(st)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int asn_PER_MAP_GNB_CU_CP_Name_1_v2c(unsigned int value) { - if(value >= sizeof(permitted_alphabet_table_1)/sizeof(permitted_alphabet_table_1[0])) - return -1; - return permitted_alphabet_table_1[value] - 1; -} -static int asn_PER_MAP_GNB_CU_CP_Name_1_c2v(unsigned int code) { - if(code >= sizeof(permitted_alphabet_code2value_1)/sizeof(permitted_alphabet_code2value_1[0])) - return -1; - return permitted_alphabet_code2value_1[code]; -} -/* - * This type is implemented using PrintableString, - * so here we adjust the DEF accordingly. - */ -static asn_oer_constraints_t asn_OER_type_GNB_CU_CP_Name_constr_1 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(0..MAX)) */}; -asn_per_constraints_t asn_PER_type_GNB_CU_CP_Name_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED, 7, 7, 32, 122 } /* (32..122) */, - { APC_CONSTRAINED | APC_EXTENSIBLE, 8, 8, 1, 150 } /* (SIZE(1..150,...)) */, - asn_PER_MAP_GNB_CU_CP_Name_1_v2c, /* Value to PER code map */ - asn_PER_MAP_GNB_CU_CP_Name_1_c2v /* PER code to value map */ -}; -static const ber_tlv_tag_t asn_DEF_GNB_CU_CP_Name_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (19 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_GNB_CU_CP_Name = { - "GNB-CU-CP-Name", - "GNB-CU-CP-Name", - &asn_OP_PrintableString, - asn_DEF_GNB_CU_CP_Name_tags_1, - sizeof(asn_DEF_GNB_CU_CP_Name_tags_1) - /sizeof(asn_DEF_GNB_CU_CP_Name_tags_1[0]), /* 1 */ - asn_DEF_GNB_CU_CP_Name_tags_1, /* Same as above */ - sizeof(asn_DEF_GNB_CU_CP_Name_tags_1) - /sizeof(asn_DEF_GNB_CU_CP_Name_tags_1[0]), /* 1 */ - { &asn_OER_type_GNB_CU_CP_Name_constr_1, &asn_PER_type_GNB_CU_CP_Name_constr_1, GNB_CU_CP_Name_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/GNB-CU-CP-Name.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/GNB-CU-CP-Name.h deleted file mode 100644 index 1eb3404..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/GNB-CU-CP-Name.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _GNB_CU_CP_Name_H_ -#define _GNB_CU_CP_Name_H_ - - -#include - -/* Including external dependencies */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* GNB-CU-CP-Name */ -typedef PrintableString_t GNB_CU_CP_Name_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_GNB_CU_CP_Name_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_GNB_CU_CP_Name; -asn_struct_free_f GNB_CU_CP_Name_free; -asn_struct_print_f GNB_CU_CP_Name_print; -asn_constr_check_f GNB_CU_CP_Name_constraint; -ber_type_decoder_f GNB_CU_CP_Name_decode_ber; -der_type_encoder_f GNB_CU_CP_Name_encode_der; -xer_type_decoder_f GNB_CU_CP_Name_decode_xer; -xer_type_encoder_f GNB_CU_CP_Name_encode_xer; -oer_type_decoder_f GNB_CU_CP_Name_decode_oer; -oer_type_encoder_f GNB_CU_CP_Name_encode_oer; -per_type_decoder_f GNB_CU_CP_Name_decode_uper; -per_type_encoder_f GNB_CU_CP_Name_encode_uper; -per_type_decoder_f GNB_CU_CP_Name_decode_aper; -per_type_encoder_f GNB_CU_CP_Name_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _GNB_CU_CP_Name_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/GNB-CU-UP-ID.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/GNB-CU-UP-ID.c deleted file mode 100644 index 737a4f3..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/GNB-CU-UP-ID.c +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "GNB-CU-UP-ID.h" - -int -GNB_CU_UP_ID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const INTEGER_t *st = (const INTEGER_t *)sptr; - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if(asn_INTEGER2long(st, &value)) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value too large (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if((value >= 0 && value <= 68719476735)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using INTEGER, - * so here we adjust the DEF accordingly. - */ -static asn_oer_constraints_t asn_OER_type_GNB_CU_UP_ID_constr_1 CC_NOTUSED = { - { 8, 1 } /* (0..68719476735) */, - -1}; -asn_per_constraints_t asn_PER_type_GNB_CU_UP_ID_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED, 36, -1, 0, 68719476735 } /* (0..68719476735) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_GNB_CU_UP_ID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_GNB_CU_UP_ID = { - "GNB-CU-UP-ID", - "GNB-CU-UP-ID", - &asn_OP_INTEGER, - asn_DEF_GNB_CU_UP_ID_tags_1, - sizeof(asn_DEF_GNB_CU_UP_ID_tags_1) - /sizeof(asn_DEF_GNB_CU_UP_ID_tags_1[0]), /* 1 */ - asn_DEF_GNB_CU_UP_ID_tags_1, /* Same as above */ - sizeof(asn_DEF_GNB_CU_UP_ID_tags_1) - /sizeof(asn_DEF_GNB_CU_UP_ID_tags_1[0]), /* 1 */ - { &asn_OER_type_GNB_CU_UP_ID_constr_1, &asn_PER_type_GNB_CU_UP_ID_constr_1, GNB_CU_UP_ID_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/GNB-CU-UP-ID.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/GNB-CU-UP-ID.h deleted file mode 100644 index e6b9c43..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/GNB-CU-UP-ID.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _GNB_CU_UP_ID_H_ -#define _GNB_CU_UP_ID_H_ - - -#include - -/* Including external dependencies */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* GNB-CU-UP-ID */ -typedef INTEGER_t GNB_CU_UP_ID_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_GNB_CU_UP_ID_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_GNB_CU_UP_ID; -asn_struct_free_f GNB_CU_UP_ID_free; -asn_struct_print_f GNB_CU_UP_ID_print; -asn_constr_check_f GNB_CU_UP_ID_constraint; -ber_type_decoder_f GNB_CU_UP_ID_decode_ber; -der_type_encoder_f GNB_CU_UP_ID_encode_der; -xer_type_decoder_f GNB_CU_UP_ID_decode_xer; -xer_type_encoder_f GNB_CU_UP_ID_encode_xer; -oer_type_decoder_f GNB_CU_UP_ID_decode_oer; -oer_type_encoder_f GNB_CU_UP_ID_encode_oer; -per_type_decoder_f GNB_CU_UP_ID_decode_uper; -per_type_encoder_f GNB_CU_UP_ID_encode_uper; -per_type_decoder_f GNB_CU_UP_ID_decode_aper; -per_type_encoder_f GNB_CU_UP_ID_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _GNB_CU_UP_ID_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/GNB-CU-UP-Name.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/GNB-CU-UP-Name.c deleted file mode 100644 index b64d5b1..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/GNB-CU-UP-Name.c +++ /dev/null @@ -1,109 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "GNB-CU-UP-Name.h" - -static const int permitted_alphabet_table_1[256] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */ - 1, 0, 0, 0, 0, 0, 0, 2, 3, 4, 0, 5, 6, 7, 8, 9, /* . '() +,-./ */ -10,11,12,13,14,15,16,17,18,19,20, 0, 0,21, 0,22, /* 0123456789: = ? */ - 0,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37, /* ABCDEFGHIJKLMNO */ -38,39,40,41,42,43,44,45,46,47,48, 0, 0, 0, 0, 0, /* PQRSTUVWXYZ */ - 0,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63, /* abcdefghijklmno */ -64,65,66,67,68,69,70,71,72,73,74, 0, 0, 0, 0, 0, /* pqrstuvwxyz */ -}; -static const int permitted_alphabet_code2value_1[74] = { -32,39,40,41,43,44,45,46,47,48,49,50,51,52,53,54, -55,56,57,58,61,63,65,66,67,68,69,70,71,72,73,74, -75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90, -97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112, -113,114,115,116,117,118,119,120,121,122,}; - - -static int check_permitted_alphabet_1(const void *sptr) { - const int *table = permitted_alphabet_table_1; - /* The underlying type is PrintableString */ - const PrintableString_t *st = (const PrintableString_t *)sptr; - const uint8_t *ch = st->buf; - const uint8_t *end = ch + st->size; - - for(; ch < end; ch++) { - uint8_t cv = *ch; - if(!table[cv]) return -1; - } - return 0; -} - -int -GNB_CU_UP_Name_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const PrintableString_t *st = (const PrintableString_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - size = st->size; - - if((size >= 1 && size <= 150) - && !check_permitted_alphabet_1(st)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int asn_PER_MAP_GNB_CU_UP_Name_1_v2c(unsigned int value) { - if(value >= sizeof(permitted_alphabet_table_1)/sizeof(permitted_alphabet_table_1[0])) - return -1; - return permitted_alphabet_table_1[value] - 1; -} -static int asn_PER_MAP_GNB_CU_UP_Name_1_c2v(unsigned int code) { - if(code >= sizeof(permitted_alphabet_code2value_1)/sizeof(permitted_alphabet_code2value_1[0])) - return -1; - return permitted_alphabet_code2value_1[code]; -} -/* - * This type is implemented using PrintableString, - * so here we adjust the DEF accordingly. - */ -static asn_oer_constraints_t asn_OER_type_GNB_CU_UP_Name_constr_1 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(0..MAX)) */}; -asn_per_constraints_t asn_PER_type_GNB_CU_UP_Name_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED, 7, 7, 32, 122 } /* (32..122) */, - { APC_CONSTRAINED | APC_EXTENSIBLE, 8, 8, 1, 150 } /* (SIZE(1..150,...)) */, - asn_PER_MAP_GNB_CU_UP_Name_1_v2c, /* Value to PER code map */ - asn_PER_MAP_GNB_CU_UP_Name_1_c2v /* PER code to value map */ -}; -static const ber_tlv_tag_t asn_DEF_GNB_CU_UP_Name_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (19 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_GNB_CU_UP_Name = { - "GNB-CU-UP-Name", - "GNB-CU-UP-Name", - &asn_OP_PrintableString, - asn_DEF_GNB_CU_UP_Name_tags_1, - sizeof(asn_DEF_GNB_CU_UP_Name_tags_1) - /sizeof(asn_DEF_GNB_CU_UP_Name_tags_1[0]), /* 1 */ - asn_DEF_GNB_CU_UP_Name_tags_1, /* Same as above */ - sizeof(asn_DEF_GNB_CU_UP_Name_tags_1) - /sizeof(asn_DEF_GNB_CU_UP_Name_tags_1[0]), /* 1 */ - { &asn_OER_type_GNB_CU_UP_Name_constr_1, &asn_PER_type_GNB_CU_UP_Name_constr_1, GNB_CU_UP_Name_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/GNB-CU-UP-Name.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/GNB-CU-UP-Name.h deleted file mode 100644 index c1b9d7e..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/GNB-CU-UP-Name.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _GNB_CU_UP_Name_H_ -#define _GNB_CU_UP_Name_H_ - - -#include - -/* Including external dependencies */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* GNB-CU-UP-Name */ -typedef PrintableString_t GNB_CU_UP_Name_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_GNB_CU_UP_Name_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_GNB_CU_UP_Name; -asn_struct_free_f GNB_CU_UP_Name_free; -asn_struct_print_f GNB_CU_UP_Name_print; -asn_constr_check_f GNB_CU_UP_Name_constraint; -ber_type_decoder_f GNB_CU_UP_Name_decode_ber; -der_type_encoder_f GNB_CU_UP_Name_encode_der; -xer_type_decoder_f GNB_CU_UP_Name_decode_xer; -xer_type_encoder_f GNB_CU_UP_Name_encode_xer; -oer_type_decoder_f GNB_CU_UP_Name_decode_oer; -oer_type_encoder_f GNB_CU_UP_Name_encode_oer; -per_type_decoder_f GNB_CU_UP_Name_decode_uper; -per_type_encoder_f GNB_CU_UP_Name_encode_uper; -per_type_decoder_f GNB_CU_UP_Name_decode_aper; -per_type_encoder_f GNB_CU_UP_Name_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _GNB_CU_UP_Name_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/GNB-DU-ID.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/GNB-DU-ID.c deleted file mode 100644 index b43653e..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/GNB-DU-ID.c +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "GNB-DU-ID.h" - -int -GNB_DU_ID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const INTEGER_t *st = (const INTEGER_t *)sptr; - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if(asn_INTEGER2long(st, &value)) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value too large (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if((value >= 0 && value <= 68719476735)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using INTEGER, - * so here we adjust the DEF accordingly. - */ -static asn_oer_constraints_t asn_OER_type_GNB_DU_ID_constr_1 CC_NOTUSED = { - { 8, 1 } /* (0..68719476735) */, - -1}; -asn_per_constraints_t asn_PER_type_GNB_DU_ID_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED, 36, -1, 0, 68719476735 } /* (0..68719476735) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_GNB_DU_ID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_GNB_DU_ID = { - "GNB-DU-ID", - "GNB-DU-ID", - &asn_OP_INTEGER, - asn_DEF_GNB_DU_ID_tags_1, - sizeof(asn_DEF_GNB_DU_ID_tags_1) - /sizeof(asn_DEF_GNB_DU_ID_tags_1[0]), /* 1 */ - asn_DEF_GNB_DU_ID_tags_1, /* Same as above */ - sizeof(asn_DEF_GNB_DU_ID_tags_1) - /sizeof(asn_DEF_GNB_DU_ID_tags_1[0]), /* 1 */ - { &asn_OER_type_GNB_DU_ID_constr_1, &asn_PER_type_GNB_DU_ID_constr_1, GNB_DU_ID_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/GNB-DU-ID.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/GNB-DU-ID.h deleted file mode 100644 index 65e23da..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/GNB-DU-ID.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _GNB_DU_ID_H_ -#define _GNB_DU_ID_H_ - - -#include - -/* Including external dependencies */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* GNB-DU-ID */ -typedef INTEGER_t GNB_DU_ID_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_GNB_DU_ID_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_GNB_DU_ID; -asn_struct_free_f GNB_DU_ID_free; -asn_struct_print_f GNB_DU_ID_print; -asn_constr_check_f GNB_DU_ID_constraint; -ber_type_decoder_f GNB_DU_ID_decode_ber; -der_type_encoder_f GNB_DU_ID_encode_der; -xer_type_decoder_f GNB_DU_ID_decode_xer; -xer_type_encoder_f GNB_DU_ID_encode_xer; -oer_type_decoder_f GNB_DU_ID_decode_oer; -oer_type_encoder_f GNB_DU_ID_encode_oer; -per_type_decoder_f GNB_DU_ID_decode_uper; -per_type_encoder_f GNB_DU_ID_encode_uper; -per_type_decoder_f GNB_DU_ID_decode_aper; -per_type_encoder_f GNB_DU_ID_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _GNB_DU_ID_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/GNB-DU-Name.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/GNB-DU-Name.c deleted file mode 100644 index 8ac789d..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/GNB-DU-Name.c +++ /dev/null @@ -1,109 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "GNB-DU-Name.h" - -static const int permitted_alphabet_table_1[256] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */ - 1, 0, 0, 0, 0, 0, 0, 2, 3, 4, 0, 5, 6, 7, 8, 9, /* . '() +,-./ */ -10,11,12,13,14,15,16,17,18,19,20, 0, 0,21, 0,22, /* 0123456789: = ? */ - 0,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37, /* ABCDEFGHIJKLMNO */ -38,39,40,41,42,43,44,45,46,47,48, 0, 0, 0, 0, 0, /* PQRSTUVWXYZ */ - 0,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63, /* abcdefghijklmno */ -64,65,66,67,68,69,70,71,72,73,74, 0, 0, 0, 0, 0, /* pqrstuvwxyz */ -}; -static const int permitted_alphabet_code2value_1[74] = { -32,39,40,41,43,44,45,46,47,48,49,50,51,52,53,54, -55,56,57,58,61,63,65,66,67,68,69,70,71,72,73,74, -75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90, -97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112, -113,114,115,116,117,118,119,120,121,122,}; - - -static int check_permitted_alphabet_1(const void *sptr) { - const int *table = permitted_alphabet_table_1; - /* The underlying type is PrintableString */ - const PrintableString_t *st = (const PrintableString_t *)sptr; - const uint8_t *ch = st->buf; - const uint8_t *end = ch + st->size; - - for(; ch < end; ch++) { - uint8_t cv = *ch; - if(!table[cv]) return -1; - } - return 0; -} - -int -GNB_DU_Name_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const PrintableString_t *st = (const PrintableString_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - size = st->size; - - if((size >= 1 && size <= 150) - && !check_permitted_alphabet_1(st)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int asn_PER_MAP_GNB_DU_Name_1_v2c(unsigned int value) { - if(value >= sizeof(permitted_alphabet_table_1)/sizeof(permitted_alphabet_table_1[0])) - return -1; - return permitted_alphabet_table_1[value] - 1; -} -static int asn_PER_MAP_GNB_DU_Name_1_c2v(unsigned int code) { - if(code >= sizeof(permitted_alphabet_code2value_1)/sizeof(permitted_alphabet_code2value_1[0])) - return -1; - return permitted_alphabet_code2value_1[code]; -} -/* - * This type is implemented using PrintableString, - * so here we adjust the DEF accordingly. - */ -static asn_oer_constraints_t asn_OER_type_GNB_DU_Name_constr_1 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(0..MAX)) */}; -asn_per_constraints_t asn_PER_type_GNB_DU_Name_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED, 7, 7, 32, 122 } /* (32..122) */, - { APC_CONSTRAINED | APC_EXTENSIBLE, 8, 8, 1, 150 } /* (SIZE(1..150,...)) */, - asn_PER_MAP_GNB_DU_Name_1_v2c, /* Value to PER code map */ - asn_PER_MAP_GNB_DU_Name_1_c2v /* PER code to value map */ -}; -static const ber_tlv_tag_t asn_DEF_GNB_DU_Name_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (19 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_GNB_DU_Name = { - "GNB-DU-Name", - "GNB-DU-Name", - &asn_OP_PrintableString, - asn_DEF_GNB_DU_Name_tags_1, - sizeof(asn_DEF_GNB_DU_Name_tags_1) - /sizeof(asn_DEF_GNB_DU_Name_tags_1[0]), /* 1 */ - asn_DEF_GNB_DU_Name_tags_1, /* Same as above */ - sizeof(asn_DEF_GNB_DU_Name_tags_1) - /sizeof(asn_DEF_GNB_DU_Name_tags_1[0]), /* 1 */ - { &asn_OER_type_GNB_DU_Name_constr_1, &asn_PER_type_GNB_DU_Name_constr_1, GNB_DU_Name_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/GNB-DU-Name.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/GNB-DU-Name.h deleted file mode 100644 index e4994e6..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/GNB-DU-Name.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _GNB_DU_Name_H_ -#define _GNB_DU_Name_H_ - - -#include - -/* Including external dependencies */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* GNB-DU-Name */ -typedef PrintableString_t GNB_DU_Name_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_GNB_DU_Name_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_GNB_DU_Name; -asn_struct_free_f GNB_DU_Name_free; -asn_struct_print_f GNB_DU_Name_print; -asn_constr_check_f GNB_DU_Name_constraint; -ber_type_decoder_f GNB_DU_Name_decode_ber; -der_type_encoder_f GNB_DU_Name_encode_der; -xer_type_decoder_f GNB_DU_Name_decode_xer; -xer_type_encoder_f GNB_DU_Name_encode_xer; -oer_type_decoder_f GNB_DU_Name_decode_oer; -oer_type_encoder_f GNB_DU_Name_encode_oer; -per_type_decoder_f GNB_DU_Name_decode_uper; -per_type_encoder_f GNB_DU_Name_encode_uper; -per_type_decoder_f GNB_DU_Name_decode_aper; -per_type_encoder_f GNB_DU_Name_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _GNB_DU_Name_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/GNB-ID-Choice.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/GNB-ID-Choice.c deleted file mode 100644 index 81bc2b0..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/GNB-ID-Choice.c +++ /dev/null @@ -1,94 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "GNB-ID-Choice.h" - -static int -memb_gnb_ID_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if(st->size > 0) { - /* Size in bits */ - size = 8 * st->size - (st->bits_unused & 0x07); - } else { - size = 0; - } - - if((size >= 22 && size <= 32)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_oer_constraints_t asn_OER_memb_gnb_ID_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(22..32)) */}; -static asn_per_constraints_t asn_PER_memb_gnb_ID_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 4, 4, 22, 32 } /* (SIZE(22..32)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_type_GNB_ID_Choice_constr_1 CC_NOTUSED = { - { 0, 0 }, - -1}; -asn_per_constraints_t asn_PER_type_GNB_ID_Choice_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 0, 0 } /* (0..0,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_GNB_ID_Choice_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct GNB_ID_Choice, choice.gnb_ID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_BIT_STRING, - 0, - { &asn_OER_memb_gnb_ID_constr_2, &asn_PER_memb_gnb_ID_constr_2, memb_gnb_ID_constraint_1 }, - 0, 0, /* No default value */ - "gnb-ID" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_GNB_ID_Choice_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* gnb-ID */ -}; -asn_CHOICE_specifics_t asn_SPC_GNB_ID_Choice_specs_1 = { - sizeof(struct GNB_ID_Choice), - offsetof(struct GNB_ID_Choice, _asn_ctx), - offsetof(struct GNB_ID_Choice, present), - sizeof(((struct GNB_ID_Choice *)0)->present), - asn_MAP_GNB_ID_Choice_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, - 1 /* Extensions start */ -}; -asn_TYPE_descriptor_t asn_DEF_GNB_ID_Choice = { - "GNB-ID-Choice", - "GNB-ID-Choice", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { &asn_OER_type_GNB_ID_Choice_constr_1, &asn_PER_type_GNB_ID_Choice_constr_1, CHOICE_constraint }, - asn_MBR_GNB_ID_Choice_1, - 1, /* Elements count */ - &asn_SPC_GNB_ID_Choice_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/GNB-ID-Choice.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/GNB-ID-Choice.h deleted file mode 100644 index cf5438c..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/GNB-ID-Choice.h +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _GNB_ID_Choice_H_ -#define _GNB_ID_Choice_H_ - - -#include - -/* Including external dependencies */ -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum GNB_ID_Choice_PR { - GNB_ID_Choice_PR_NOTHING, /* No components present */ - GNB_ID_Choice_PR_gnb_ID - /* Extensions may appear below */ - -} GNB_ID_Choice_PR; - -/* GNB-ID-Choice */ -typedef struct GNB_ID_Choice { - GNB_ID_Choice_PR present; - union GNB_ID_Choice_u { - BIT_STRING_t gnb_ID; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} GNB_ID_Choice_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_GNB_ID_Choice; -extern asn_CHOICE_specifics_t asn_SPC_GNB_ID_Choice_specs_1; -extern asn_TYPE_member_t asn_MBR_GNB_ID_Choice_1[1]; -extern asn_per_constraints_t asn_PER_type_GNB_ID_Choice_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _GNB_ID_Choice_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/GNB-Name.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/GNB-Name.c deleted file mode 100644 index aeee9d8..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/GNB-Name.c +++ /dev/null @@ -1,75 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "GNB-Name.h" - -static asn_oer_constraints_t asn_OER_type_GNB_Name_constr_1 CC_NOTUSED = { - { 0, 0 }, - -1}; -asn_per_constraints_t asn_PER_type_GNB_Name_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 2 } /* (0..2,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_GNB_Name_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct GNB_Name, choice.gNB_DU_Name), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GNB_DU_Name, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "gNB-DU-Name" - }, - { ATF_NOFLAGS, 0, offsetof(struct GNB_Name, choice.gNB_CU_CP_Name), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GNB_CU_CP_Name, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "gNB-CU-CP-Name" - }, - { ATF_NOFLAGS, 0, offsetof(struct GNB_Name, choice.gNB_CU_UP_Name), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GNB_CU_UP_Name, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "gNB-CU-UP-Name" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_GNB_Name_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* gNB-DU-Name */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* gNB-CU-CP-Name */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* gNB-CU-UP-Name */ -}; -asn_CHOICE_specifics_t asn_SPC_GNB_Name_specs_1 = { - sizeof(struct GNB_Name), - offsetof(struct GNB_Name, _asn_ctx), - offsetof(struct GNB_Name, present), - sizeof(((struct GNB_Name *)0)->present), - asn_MAP_GNB_Name_tag2el_1, - 3, /* Count of tags in the map */ - 0, 0, - 3 /* Extensions start */ -}; -asn_TYPE_descriptor_t asn_DEF_GNB_Name = { - "GNB-Name", - "GNB-Name", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { &asn_OER_type_GNB_Name_constr_1, &asn_PER_type_GNB_Name_constr_1, CHOICE_constraint }, - asn_MBR_GNB_Name_1, - 3, /* Elements count */ - &asn_SPC_GNB_Name_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/GNB-Name.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/GNB-Name.h deleted file mode 100644 index 3c69172..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/GNB-Name.h +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _GNB_Name_H_ -#define _GNB_Name_H_ - - -#include - -/* Including external dependencies */ -#include "GNB-DU-Name.h" -#include "GNB-CU-CP-Name.h" -#include "GNB-CU-UP-Name.h" -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum GNB_Name_PR { - GNB_Name_PR_NOTHING, /* No components present */ - GNB_Name_PR_gNB_DU_Name, - GNB_Name_PR_gNB_CU_CP_Name, - GNB_Name_PR_gNB_CU_UP_Name - /* Extensions may appear below */ - -} GNB_Name_PR; - -/* GNB-Name */ -typedef struct GNB_Name { - GNB_Name_PR present; - union GNB_Name_u { - GNB_DU_Name_t gNB_DU_Name; - GNB_CU_CP_Name_t gNB_CU_CP_Name; - GNB_CU_UP_Name_t gNB_CU_UP_Name; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} GNB_Name_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_GNB_Name; -extern asn_CHOICE_specifics_t asn_SPC_GNB_Name_specs_1; -extern asn_TYPE_member_t asn_MBR_GNB_Name_1[3]; -extern asn_per_constraints_t asn_PER_type_GNB_Name_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _GNB_Name_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/GlobalE2node-ID.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/GlobalE2node-ID.c deleted file mode 100644 index 0b194e6..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/GlobalE2node-ID.c +++ /dev/null @@ -1,86 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "GlobalE2node-ID.h" - -#include "GlobalE2node-gNB-ID.h" -#include "GlobalE2node-en-gNB-ID.h" -#include "GlobalE2node-ng-eNB-ID.h" -#include "GlobalE2node-eNB-ID.h" -static asn_per_constraints_t asn_PER_type_GlobalE2node_ID_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 3 } /* (0..3,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_GlobalE2node_ID_1[] = { - { ATF_POINTER, 0, offsetof(struct GlobalE2node_ID, choice.gNB), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GlobalE2node_gNB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "gNB" - }, - { ATF_POINTER, 0, offsetof(struct GlobalE2node_ID, choice.en_gNB), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GlobalE2node_en_gNB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "en-gNB" - }, - { ATF_POINTER, 0, offsetof(struct GlobalE2node_ID, choice.ng_eNB), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GlobalE2node_ng_eNB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ng-eNB" - }, - { ATF_POINTER, 0, offsetof(struct GlobalE2node_ID, choice.eNB), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GlobalE2node_eNB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "eNB" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_GlobalE2node_ID_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* gNB */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* en-gNB */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* ng-eNB */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* eNB */ -}; -static asn_CHOICE_specifics_t asn_SPC_GlobalE2node_ID_specs_1 = { - sizeof(struct GlobalE2node_ID), - offsetof(struct GlobalE2node_ID, _asn_ctx), - offsetof(struct GlobalE2node_ID, present), - sizeof(((struct GlobalE2node_ID *)0)->present), - asn_MAP_GlobalE2node_ID_tag2el_1, - 4, /* Count of tags in the map */ - 0, 0, - 4 /* Extensions start */ -}; -asn_TYPE_descriptor_t asn_DEF_GlobalE2node_ID = { - "GlobalE2node-ID", - "GlobalE2node-ID", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, &asn_PER_type_GlobalE2node_ID_constr_1, CHOICE_constraint }, - asn_MBR_GlobalE2node_ID_1, - 4, /* Elements count */ - &asn_SPC_GlobalE2node_ID_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/GlobalE2node-ID.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/GlobalE2node-ID.h deleted file mode 100644 index 339797e..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/GlobalE2node-ID.h +++ /dev/null @@ -1,64 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _GlobalE2node_ID_H_ -#define _GlobalE2node_ID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "constr_CHOICE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum GlobalE2node_ID_PR { - GlobalE2node_ID_PR_NOTHING, /* No components present */ - GlobalE2node_ID_PR_gNB, - GlobalE2node_ID_PR_en_gNB, - GlobalE2node_ID_PR_ng_eNB, - GlobalE2node_ID_PR_eNB - /* Extensions may appear below */ - -} GlobalE2node_ID_PR; - -/* Forward declarations */ -struct GlobalE2node_gNB_ID; -struct GlobalE2node_en_gNB_ID; -struct GlobalE2node_ng_eNB_ID; -struct GlobalE2node_eNB_ID; - -/* GlobalE2node-ID */ -typedef struct GlobalE2node_ID { - GlobalE2node_ID_PR present; - union GlobalE2node_ID_u { - struct GlobalE2node_gNB_ID *gNB; - struct GlobalE2node_en_gNB_ID *en_gNB; - struct GlobalE2node_ng_eNB_ID *ng_eNB; - struct GlobalE2node_eNB_ID *eNB; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} GlobalE2node_ID_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_GlobalE2node_ID; - -#ifdef __cplusplus -} -#endif - -#endif /* _GlobalE2node_ID_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/GlobalE2node-eNB-ID.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/GlobalE2node-eNB-ID.c deleted file mode 100644 index f31a018..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/GlobalE2node-eNB-ID.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "GlobalE2node-eNB-ID.h" - -asn_TYPE_member_t asn_MBR_GlobalE2node_eNB_ID_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct GlobalE2node_eNB_ID, global_eNB_ID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GlobalENB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "global-eNB-ID" - }, -}; -static const ber_tlv_tag_t asn_DEF_GlobalE2node_eNB_ID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_GlobalE2node_eNB_ID_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* global-eNB-ID */ -}; -asn_SEQUENCE_specifics_t asn_SPC_GlobalE2node_eNB_ID_specs_1 = { - sizeof(struct GlobalE2node_eNB_ID), - offsetof(struct GlobalE2node_eNB_ID, _asn_ctx), - asn_MAP_GlobalE2node_eNB_ID_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_GlobalE2node_eNB_ID = { - "GlobalE2node-eNB-ID", - "GlobalE2node-eNB-ID", - &asn_OP_SEQUENCE, - asn_DEF_GlobalE2node_eNB_ID_tags_1, - sizeof(asn_DEF_GlobalE2node_eNB_ID_tags_1) - /sizeof(asn_DEF_GlobalE2node_eNB_ID_tags_1[0]), /* 1 */ - asn_DEF_GlobalE2node_eNB_ID_tags_1, /* Same as above */ - sizeof(asn_DEF_GlobalE2node_eNB_ID_tags_1) - /sizeof(asn_DEF_GlobalE2node_eNB_ID_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_GlobalE2node_eNB_ID_1, - 1, /* Elements count */ - &asn_SPC_GlobalE2node_eNB_ID_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/GlobalE2node-eNB-ID.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/GlobalE2node-eNB-ID.h deleted file mode 100644 index 6047414..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/GlobalE2node-eNB-ID.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _GlobalE2node_eNB_ID_H_ -#define _GlobalE2node_eNB_ID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "GlobalENB-ID.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* GlobalE2node-eNB-ID */ -typedef struct GlobalE2node_eNB_ID { - GlobalENB_ID_t global_eNB_ID; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} GlobalE2node_eNB_ID_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_GlobalE2node_eNB_ID; -extern asn_SEQUENCE_specifics_t asn_SPC_GlobalE2node_eNB_ID_specs_1; -extern asn_TYPE_member_t asn_MBR_GlobalE2node_eNB_ID_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _GlobalE2node_eNB_ID_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/GlobalE2node-en-gNB-ID.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/GlobalE2node-en-gNB-ID.c deleted file mode 100644 index 2728634..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/GlobalE2node-en-gNB-ID.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "GlobalE2node-en-gNB-ID.h" - -asn_TYPE_member_t asn_MBR_GlobalE2node_en_gNB_ID_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct GlobalE2node_en_gNB_ID, global_gNB_ID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GlobalenGNB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "global-gNB-ID" - }, -}; -static const ber_tlv_tag_t asn_DEF_GlobalE2node_en_gNB_ID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_GlobalE2node_en_gNB_ID_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* global-gNB-ID */ -}; -asn_SEQUENCE_specifics_t asn_SPC_GlobalE2node_en_gNB_ID_specs_1 = { - sizeof(struct GlobalE2node_en_gNB_ID), - offsetof(struct GlobalE2node_en_gNB_ID, _asn_ctx), - asn_MAP_GlobalE2node_en_gNB_ID_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_GlobalE2node_en_gNB_ID = { - "GlobalE2node-en-gNB-ID", - "GlobalE2node-en-gNB-ID", - &asn_OP_SEQUENCE, - asn_DEF_GlobalE2node_en_gNB_ID_tags_1, - sizeof(asn_DEF_GlobalE2node_en_gNB_ID_tags_1) - /sizeof(asn_DEF_GlobalE2node_en_gNB_ID_tags_1[0]), /* 1 */ - asn_DEF_GlobalE2node_en_gNB_ID_tags_1, /* Same as above */ - sizeof(asn_DEF_GlobalE2node_en_gNB_ID_tags_1) - /sizeof(asn_DEF_GlobalE2node_en_gNB_ID_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_GlobalE2node_en_gNB_ID_1, - 1, /* Elements count */ - &asn_SPC_GlobalE2node_en_gNB_ID_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/GlobalE2node-en-gNB-ID.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/GlobalE2node-en-gNB-ID.h deleted file mode 100644 index 0bae91d..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/GlobalE2node-en-gNB-ID.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _GlobalE2node_en_gNB_ID_H_ -#define _GlobalE2node_en_gNB_ID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "GlobalenGNB-ID.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* GlobalE2node-en-gNB-ID */ -typedef struct GlobalE2node_en_gNB_ID { - GlobalenGNB_ID_t global_gNB_ID; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} GlobalE2node_en_gNB_ID_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_GlobalE2node_en_gNB_ID; -extern asn_SEQUENCE_specifics_t asn_SPC_GlobalE2node_en_gNB_ID_specs_1; -extern asn_TYPE_member_t asn_MBR_GlobalE2node_en_gNB_ID_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _GlobalE2node_en_gNB_ID_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/GlobalE2node-gNB-ID.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/GlobalE2node-gNB-ID.c deleted file mode 100644 index 25f0346..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/GlobalE2node-gNB-ID.c +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "GlobalE2node-gNB-ID.h" - -asn_TYPE_member_t asn_MBR_GlobalE2node_gNB_ID_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct GlobalE2node_gNB_ID, global_gNB_ID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GlobalgNB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "global-gNB-ID" - }, - { ATF_POINTER, 2, offsetof(struct GlobalE2node_gNB_ID, gNB_CU_UP_ID), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GNB_CU_UP_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "gNB-CU-UP-ID" - }, - { ATF_POINTER, 1, offsetof(struct GlobalE2node_gNB_ID, gNB_DU_ID), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GNB_DU_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "gNB-DU-ID" - }, -}; -static const int asn_MAP_GlobalE2node_gNB_ID_oms_1[] = { 1, 2 }; -static const ber_tlv_tag_t asn_DEF_GlobalE2node_gNB_ID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_GlobalE2node_gNB_ID_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* global-gNB-ID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* gNB-CU-UP-ID */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* gNB-DU-ID */ -}; -asn_SEQUENCE_specifics_t asn_SPC_GlobalE2node_gNB_ID_specs_1 = { - sizeof(struct GlobalE2node_gNB_ID), - offsetof(struct GlobalE2node_gNB_ID, _asn_ctx), - asn_MAP_GlobalE2node_gNB_ID_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_GlobalE2node_gNB_ID_oms_1, /* Optional members */ - 2, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_GlobalE2node_gNB_ID = { - "GlobalE2node-gNB-ID", - "GlobalE2node-gNB-ID", - &asn_OP_SEQUENCE, - asn_DEF_GlobalE2node_gNB_ID_tags_1, - sizeof(asn_DEF_GlobalE2node_gNB_ID_tags_1) - /sizeof(asn_DEF_GlobalE2node_gNB_ID_tags_1[0]), /* 1 */ - asn_DEF_GlobalE2node_gNB_ID_tags_1, /* Same as above */ - sizeof(asn_DEF_GlobalE2node_gNB_ID_tags_1) - /sizeof(asn_DEF_GlobalE2node_gNB_ID_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_GlobalE2node_gNB_ID_1, - 3, /* Elements count */ - &asn_SPC_GlobalE2node_gNB_ID_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/GlobalE2node-gNB-ID.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/GlobalE2node-gNB-ID.h deleted file mode 100644 index 2f36099..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/GlobalE2node-gNB-ID.h +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _GlobalE2node_gNB_ID_H_ -#define _GlobalE2node_gNB_ID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "GlobalgNB-ID.h" -#include "GNB-CU-UP-ID.h" -#include "GNB-DU-ID.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* GlobalE2node-gNB-ID */ -typedef struct GlobalE2node_gNB_ID { - GlobalgNB_ID_t global_gNB_ID; - GNB_CU_UP_ID_t *gNB_CU_UP_ID; /* OPTIONAL */ - GNB_DU_ID_t *gNB_DU_ID; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} GlobalE2node_gNB_ID_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_GlobalE2node_gNB_ID; -extern asn_SEQUENCE_specifics_t asn_SPC_GlobalE2node_gNB_ID_specs_1; -extern asn_TYPE_member_t asn_MBR_GlobalE2node_gNB_ID_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _GlobalE2node_gNB_ID_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/GlobalE2node-ng-eNB-ID.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/GlobalE2node-ng-eNB-ID.c deleted file mode 100644 index 91e427b..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/GlobalE2node-ng-eNB-ID.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "GlobalE2node-ng-eNB-ID.h" - -asn_TYPE_member_t asn_MBR_GlobalE2node_ng_eNB_ID_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct GlobalE2node_ng_eNB_ID, global_ng_eNB_ID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GlobalngeNB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "global-ng-eNB-ID" - }, -}; -static const ber_tlv_tag_t asn_DEF_GlobalE2node_ng_eNB_ID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_GlobalE2node_ng_eNB_ID_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* global-ng-eNB-ID */ -}; -asn_SEQUENCE_specifics_t asn_SPC_GlobalE2node_ng_eNB_ID_specs_1 = { - sizeof(struct GlobalE2node_ng_eNB_ID), - offsetof(struct GlobalE2node_ng_eNB_ID, _asn_ctx), - asn_MAP_GlobalE2node_ng_eNB_ID_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_GlobalE2node_ng_eNB_ID = { - "GlobalE2node-ng-eNB-ID", - "GlobalE2node-ng-eNB-ID", - &asn_OP_SEQUENCE, - asn_DEF_GlobalE2node_ng_eNB_ID_tags_1, - sizeof(asn_DEF_GlobalE2node_ng_eNB_ID_tags_1) - /sizeof(asn_DEF_GlobalE2node_ng_eNB_ID_tags_1[0]), /* 1 */ - asn_DEF_GlobalE2node_ng_eNB_ID_tags_1, /* Same as above */ - sizeof(asn_DEF_GlobalE2node_ng_eNB_ID_tags_1) - /sizeof(asn_DEF_GlobalE2node_ng_eNB_ID_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_GlobalE2node_ng_eNB_ID_1, - 1, /* Elements count */ - &asn_SPC_GlobalE2node_ng_eNB_ID_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/GlobalE2node-ng-eNB-ID.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/GlobalE2node-ng-eNB-ID.h deleted file mode 100644 index d6767bf..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/GlobalE2node-ng-eNB-ID.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _GlobalE2node_ng_eNB_ID_H_ -#define _GlobalE2node_ng_eNB_ID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "GlobalngeNB-ID.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* GlobalE2node-ng-eNB-ID */ -typedef struct GlobalE2node_ng_eNB_ID { - GlobalngeNB_ID_t global_ng_eNB_ID; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} GlobalE2node_ng_eNB_ID_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_GlobalE2node_ng_eNB_ID; -extern asn_SEQUENCE_specifics_t asn_SPC_GlobalE2node_ng_eNB_ID_specs_1; -extern asn_TYPE_member_t asn_MBR_GlobalE2node_ng_eNB_ID_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _GlobalE2node_ng_eNB_ID_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/GlobalENB-ID.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/GlobalENB-ID.c deleted file mode 100644 index 58f3724..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/GlobalENB-ID.c +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "GlobalENB-ID.h" - -asn_TYPE_member_t asn_MBR_GlobalENB_ID_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct GlobalENB_ID, pLMN_Identity), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_PLMN_Identity, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "pLMN-Identity" - }, - { ATF_NOFLAGS, 0, offsetof(struct GlobalENB_ID, eNB_ID), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_ENB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "eNB-ID" - }, -}; -static const ber_tlv_tag_t asn_DEF_GlobalENB_ID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_GlobalENB_ID_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pLMN-Identity */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* eNB-ID */ -}; -asn_SEQUENCE_specifics_t asn_SPC_GlobalENB_ID_specs_1 = { - sizeof(struct GlobalENB_ID), - offsetof(struct GlobalENB_ID, _asn_ctx), - asn_MAP_GlobalENB_ID_tag2el_1, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 2, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_GlobalENB_ID = { - "GlobalENB-ID", - "GlobalENB-ID", - &asn_OP_SEQUENCE, - asn_DEF_GlobalENB_ID_tags_1, - sizeof(asn_DEF_GlobalENB_ID_tags_1) - /sizeof(asn_DEF_GlobalENB_ID_tags_1[0]), /* 1 */ - asn_DEF_GlobalENB_ID_tags_1, /* Same as above */ - sizeof(asn_DEF_GlobalENB_ID_tags_1) - /sizeof(asn_DEF_GlobalENB_ID_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_GlobalENB_ID_1, - 2, /* Elements count */ - &asn_SPC_GlobalENB_ID_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/GlobalENB-ID.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/GlobalENB-ID.h deleted file mode 100644 index bd653ae..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/GlobalENB-ID.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _GlobalENB_ID_H_ -#define _GlobalENB_ID_H_ - - -#include - -/* Including external dependencies */ -#include "PLMN-Identity.h" -#include "ENB-ID.h" -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* GlobalENB-ID */ -typedef struct GlobalENB_ID { - PLMN_Identity_t pLMN_Identity; - ENB_ID_t eNB_ID; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} GlobalENB_ID_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_GlobalENB_ID; -extern asn_SEQUENCE_specifics_t asn_SPC_GlobalENB_ID_specs_1; -extern asn_TYPE_member_t asn_MBR_GlobalENB_ID_1[2]; - -#ifdef __cplusplus -} -#endif - -#endif /* _GlobalENB_ID_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/GlobalKPMnode-ID.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/GlobalKPMnode-ID.c deleted file mode 100644 index 5202400..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/GlobalKPMnode-ID.c +++ /dev/null @@ -1,85 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "GlobalKPMnode-ID.h" - -static asn_oer_constraints_t asn_OER_type_GlobalKPMnode_ID_constr_1 CC_NOTUSED = { - { 0, 0 }, - -1}; -asn_per_constraints_t asn_PER_type_GlobalKPMnode_ID_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 3 } /* (0..3,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_GlobalKPMnode_ID_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct GlobalKPMnode_ID, choice.gNB), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GlobalKPMnode_gNB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "gNB" - }, - { ATF_NOFLAGS, 0, offsetof(struct GlobalKPMnode_ID, choice.en_gNB), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GlobalKPMnode_en_gNB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "en-gNB" - }, - { ATF_NOFLAGS, 0, offsetof(struct GlobalKPMnode_ID, choice.ng_eNB), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GlobalKPMnode_ng_eNB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ng-eNB" - }, - { ATF_NOFLAGS, 0, offsetof(struct GlobalKPMnode_ID, choice.eNB), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GlobalKPMnode_eNB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "eNB" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_GlobalKPMnode_ID_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* gNB */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* en-gNB */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* ng-eNB */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* eNB */ -}; -asn_CHOICE_specifics_t asn_SPC_GlobalKPMnode_ID_specs_1 = { - sizeof(struct GlobalKPMnode_ID), - offsetof(struct GlobalKPMnode_ID, _asn_ctx), - offsetof(struct GlobalKPMnode_ID, present), - sizeof(((struct GlobalKPMnode_ID *)0)->present), - asn_MAP_GlobalKPMnode_ID_tag2el_1, - 4, /* Count of tags in the map */ - 0, 0, - 4 /* Extensions start */ -}; -asn_TYPE_descriptor_t asn_DEF_GlobalKPMnode_ID = { - "GlobalKPMnode-ID", - "GlobalKPMnode-ID", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { &asn_OER_type_GlobalKPMnode_ID_constr_1, &asn_PER_type_GlobalKPMnode_ID_constr_1, CHOICE_constraint }, - asn_MBR_GlobalKPMnode_ID_1, - 4, /* Elements count */ - &asn_SPC_GlobalKPMnode_ID_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/GlobalKPMnode-ID.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/GlobalKPMnode-ID.h deleted file mode 100644 index a93e881..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/GlobalKPMnode-ID.h +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _GlobalKPMnode_ID_H_ -#define _GlobalKPMnode_ID_H_ - - -#include - -/* Including external dependencies */ -#include "GlobalKPMnode-gNB-ID.h" -#include "GlobalKPMnode-en-gNB-ID.h" -#include "GlobalKPMnode-ng-eNB-ID.h" -#include "GlobalKPMnode-eNB-ID.h" -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum GlobalKPMnode_ID_PR { - GlobalKPMnode_ID_PR_NOTHING, /* No components present */ - GlobalKPMnode_ID_PR_gNB, - GlobalKPMnode_ID_PR_en_gNB, - GlobalKPMnode_ID_PR_ng_eNB, - GlobalKPMnode_ID_PR_eNB - /* Extensions may appear below */ - -} GlobalKPMnode_ID_PR; - -/* GlobalKPMnode-ID */ -typedef struct GlobalKPMnode_ID { - GlobalKPMnode_ID_PR present; - union GlobalKPMnode_ID_u { - GlobalKPMnode_gNB_ID_t gNB; - GlobalKPMnode_en_gNB_ID_t en_gNB; - GlobalKPMnode_ng_eNB_ID_t ng_eNB; - GlobalKPMnode_eNB_ID_t eNB; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} GlobalKPMnode_ID_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_GlobalKPMnode_ID; -extern asn_CHOICE_specifics_t asn_SPC_GlobalKPMnode_ID_specs_1; -extern asn_TYPE_member_t asn_MBR_GlobalKPMnode_ID_1[4]; -extern asn_per_constraints_t asn_PER_type_GlobalKPMnode_ID_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _GlobalKPMnode_ID_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/GlobalKPMnode-eNB-ID.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/GlobalKPMnode-eNB-ID.c deleted file mode 100644 index e4039b9..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/GlobalKPMnode-eNB-ID.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "GlobalKPMnode-eNB-ID.h" - -asn_TYPE_member_t asn_MBR_GlobalKPMnode_eNB_ID_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct GlobalKPMnode_eNB_ID, global_eNB_ID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GlobalENB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "global-eNB-ID" - }, -}; -static const ber_tlv_tag_t asn_DEF_GlobalKPMnode_eNB_ID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_GlobalKPMnode_eNB_ID_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* global-eNB-ID */ -}; -asn_SEQUENCE_specifics_t asn_SPC_GlobalKPMnode_eNB_ID_specs_1 = { - sizeof(struct GlobalKPMnode_eNB_ID), - offsetof(struct GlobalKPMnode_eNB_ID, _asn_ctx), - asn_MAP_GlobalKPMnode_eNB_ID_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_GlobalKPMnode_eNB_ID = { - "GlobalKPMnode-eNB-ID", - "GlobalKPMnode-eNB-ID", - &asn_OP_SEQUENCE, - asn_DEF_GlobalKPMnode_eNB_ID_tags_1, - sizeof(asn_DEF_GlobalKPMnode_eNB_ID_tags_1) - /sizeof(asn_DEF_GlobalKPMnode_eNB_ID_tags_1[0]), /* 1 */ - asn_DEF_GlobalKPMnode_eNB_ID_tags_1, /* Same as above */ - sizeof(asn_DEF_GlobalKPMnode_eNB_ID_tags_1) - /sizeof(asn_DEF_GlobalKPMnode_eNB_ID_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_GlobalKPMnode_eNB_ID_1, - 1, /* Elements count */ - &asn_SPC_GlobalKPMnode_eNB_ID_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/GlobalKPMnode-eNB-ID.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/GlobalKPMnode-eNB-ID.h deleted file mode 100644 index 9941095..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/GlobalKPMnode-eNB-ID.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _GlobalKPMnode_eNB_ID_H_ -#define _GlobalKPMnode_eNB_ID_H_ - - -#include - -/* Including external dependencies */ -#include "GlobalENB-ID.h" -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* GlobalKPMnode-eNB-ID */ -typedef struct GlobalKPMnode_eNB_ID { - GlobalENB_ID_t global_eNB_ID; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} GlobalKPMnode_eNB_ID_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_GlobalKPMnode_eNB_ID; -extern asn_SEQUENCE_specifics_t asn_SPC_GlobalKPMnode_eNB_ID_specs_1; -extern asn_TYPE_member_t asn_MBR_GlobalKPMnode_eNB_ID_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _GlobalKPMnode_eNB_ID_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/GlobalKPMnode-en-gNB-ID.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/GlobalKPMnode-en-gNB-ID.c deleted file mode 100644 index 68e34d7..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/GlobalKPMnode-en-gNB-ID.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "GlobalKPMnode-en-gNB-ID.h" - -asn_TYPE_member_t asn_MBR_GlobalKPMnode_en_gNB_ID_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct GlobalKPMnode_en_gNB_ID, global_gNB_ID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GlobalenGNB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "global-gNB-ID" - }, -}; -static const ber_tlv_tag_t asn_DEF_GlobalKPMnode_en_gNB_ID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_GlobalKPMnode_en_gNB_ID_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* global-gNB-ID */ -}; -asn_SEQUENCE_specifics_t asn_SPC_GlobalKPMnode_en_gNB_ID_specs_1 = { - sizeof(struct GlobalKPMnode_en_gNB_ID), - offsetof(struct GlobalKPMnode_en_gNB_ID, _asn_ctx), - asn_MAP_GlobalKPMnode_en_gNB_ID_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_GlobalKPMnode_en_gNB_ID = { - "GlobalKPMnode-en-gNB-ID", - "GlobalKPMnode-en-gNB-ID", - &asn_OP_SEQUENCE, - asn_DEF_GlobalKPMnode_en_gNB_ID_tags_1, - sizeof(asn_DEF_GlobalKPMnode_en_gNB_ID_tags_1) - /sizeof(asn_DEF_GlobalKPMnode_en_gNB_ID_tags_1[0]), /* 1 */ - asn_DEF_GlobalKPMnode_en_gNB_ID_tags_1, /* Same as above */ - sizeof(asn_DEF_GlobalKPMnode_en_gNB_ID_tags_1) - /sizeof(asn_DEF_GlobalKPMnode_en_gNB_ID_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_GlobalKPMnode_en_gNB_ID_1, - 1, /* Elements count */ - &asn_SPC_GlobalKPMnode_en_gNB_ID_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/GlobalKPMnode-en-gNB-ID.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/GlobalKPMnode-en-gNB-ID.h deleted file mode 100644 index 7994b62..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/GlobalKPMnode-en-gNB-ID.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _GlobalKPMnode_en_gNB_ID_H_ -#define _GlobalKPMnode_en_gNB_ID_H_ - - -#include - -/* Including external dependencies */ -#include "GlobalenGNB-ID.h" -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* GlobalKPMnode-en-gNB-ID */ -typedef struct GlobalKPMnode_en_gNB_ID { - GlobalenGNB_ID_t global_gNB_ID; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} GlobalKPMnode_en_gNB_ID_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_GlobalKPMnode_en_gNB_ID; -extern asn_SEQUENCE_specifics_t asn_SPC_GlobalKPMnode_en_gNB_ID_specs_1; -extern asn_TYPE_member_t asn_MBR_GlobalKPMnode_en_gNB_ID_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _GlobalKPMnode_en_gNB_ID_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/GlobalKPMnode-gNB-ID.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/GlobalKPMnode-gNB-ID.c deleted file mode 100644 index 49e21ba..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/GlobalKPMnode-gNB-ID.c +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "GlobalKPMnode-gNB-ID.h" - -asn_TYPE_member_t asn_MBR_GlobalKPMnode_gNB_ID_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct GlobalKPMnode_gNB_ID, global_gNB_ID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GlobalgNB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "global-gNB-ID" - }, - { ATF_POINTER, 2, offsetof(struct GlobalKPMnode_gNB_ID, gNB_CU_UP_ID), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GNB_CU_UP_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "gNB-CU-UP-ID" - }, - { ATF_POINTER, 1, offsetof(struct GlobalKPMnode_gNB_ID, gNB_DU_ID), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GNB_DU_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "gNB-DU-ID" - }, -}; -static const int asn_MAP_GlobalKPMnode_gNB_ID_oms_1[] = { 1, 2 }; -static const ber_tlv_tag_t asn_DEF_GlobalKPMnode_gNB_ID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_GlobalKPMnode_gNB_ID_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* global-gNB-ID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* gNB-CU-UP-ID */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* gNB-DU-ID */ -}; -asn_SEQUENCE_specifics_t asn_SPC_GlobalKPMnode_gNB_ID_specs_1 = { - sizeof(struct GlobalKPMnode_gNB_ID), - offsetof(struct GlobalKPMnode_gNB_ID, _asn_ctx), - asn_MAP_GlobalKPMnode_gNB_ID_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_GlobalKPMnode_gNB_ID_oms_1, /* Optional members */ - 2, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_GlobalKPMnode_gNB_ID = { - "GlobalKPMnode-gNB-ID", - "GlobalKPMnode-gNB-ID", - &asn_OP_SEQUENCE, - asn_DEF_GlobalKPMnode_gNB_ID_tags_1, - sizeof(asn_DEF_GlobalKPMnode_gNB_ID_tags_1) - /sizeof(asn_DEF_GlobalKPMnode_gNB_ID_tags_1[0]), /* 1 */ - asn_DEF_GlobalKPMnode_gNB_ID_tags_1, /* Same as above */ - sizeof(asn_DEF_GlobalKPMnode_gNB_ID_tags_1) - /sizeof(asn_DEF_GlobalKPMnode_gNB_ID_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_GlobalKPMnode_gNB_ID_1, - 3, /* Elements count */ - &asn_SPC_GlobalKPMnode_gNB_ID_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/GlobalKPMnode-gNB-ID.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/GlobalKPMnode-gNB-ID.h deleted file mode 100644 index facef92..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/GlobalKPMnode-gNB-ID.h +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _GlobalKPMnode_gNB_ID_H_ -#define _GlobalKPMnode_gNB_ID_H_ - - -#include - -/* Including external dependencies */ -#include "GlobalgNB-ID.h" -#include "GNB-CU-UP-ID.h" -#include "GNB-DU-ID.h" -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* GlobalKPMnode-gNB-ID */ -typedef struct GlobalKPMnode_gNB_ID { - GlobalgNB_ID_t global_gNB_ID; - GNB_CU_UP_ID_t *gNB_CU_UP_ID; /* OPTIONAL */ - GNB_DU_ID_t *gNB_DU_ID; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} GlobalKPMnode_gNB_ID_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_GlobalKPMnode_gNB_ID; -extern asn_SEQUENCE_specifics_t asn_SPC_GlobalKPMnode_gNB_ID_specs_1; -extern asn_TYPE_member_t asn_MBR_GlobalKPMnode_gNB_ID_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _GlobalKPMnode_gNB_ID_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/GlobalKPMnode-ng-eNB-ID.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/GlobalKPMnode-ng-eNB-ID.c deleted file mode 100644 index 299fb25..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/GlobalKPMnode-ng-eNB-ID.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "GlobalKPMnode-ng-eNB-ID.h" - -asn_TYPE_member_t asn_MBR_GlobalKPMnode_ng_eNB_ID_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct GlobalKPMnode_ng_eNB_ID, global_ng_eNB_ID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GlobalngeNB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "global-ng-eNB-ID" - }, -}; -static const ber_tlv_tag_t asn_DEF_GlobalKPMnode_ng_eNB_ID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_GlobalKPMnode_ng_eNB_ID_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* global-ng-eNB-ID */ -}; -asn_SEQUENCE_specifics_t asn_SPC_GlobalKPMnode_ng_eNB_ID_specs_1 = { - sizeof(struct GlobalKPMnode_ng_eNB_ID), - offsetof(struct GlobalKPMnode_ng_eNB_ID, _asn_ctx), - asn_MAP_GlobalKPMnode_ng_eNB_ID_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_GlobalKPMnode_ng_eNB_ID = { - "GlobalKPMnode-ng-eNB-ID", - "GlobalKPMnode-ng-eNB-ID", - &asn_OP_SEQUENCE, - asn_DEF_GlobalKPMnode_ng_eNB_ID_tags_1, - sizeof(asn_DEF_GlobalKPMnode_ng_eNB_ID_tags_1) - /sizeof(asn_DEF_GlobalKPMnode_ng_eNB_ID_tags_1[0]), /* 1 */ - asn_DEF_GlobalKPMnode_ng_eNB_ID_tags_1, /* Same as above */ - sizeof(asn_DEF_GlobalKPMnode_ng_eNB_ID_tags_1) - /sizeof(asn_DEF_GlobalKPMnode_ng_eNB_ID_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_GlobalKPMnode_ng_eNB_ID_1, - 1, /* Elements count */ - &asn_SPC_GlobalKPMnode_ng_eNB_ID_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/GlobalKPMnode-ng-eNB-ID.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/GlobalKPMnode-ng-eNB-ID.h deleted file mode 100644 index 9ad8057..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/GlobalKPMnode-ng-eNB-ID.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _GlobalKPMnode_ng_eNB_ID_H_ -#define _GlobalKPMnode_ng_eNB_ID_H_ - - -#include - -/* Including external dependencies */ -#include "GlobalngeNB-ID.h" -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* GlobalKPMnode-ng-eNB-ID */ -typedef struct GlobalKPMnode_ng_eNB_ID { - GlobalngeNB_ID_t global_ng_eNB_ID; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} GlobalKPMnode_ng_eNB_ID_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_GlobalKPMnode_ng_eNB_ID; -extern asn_SEQUENCE_specifics_t asn_SPC_GlobalKPMnode_ng_eNB_ID_specs_1; -extern asn_TYPE_member_t asn_MBR_GlobalKPMnode_ng_eNB_ID_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _GlobalKPMnode_ng_eNB_ID_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/GlobalRIC-ID.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/GlobalRIC-ID.c deleted file mode 100644 index f113921..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/GlobalRIC-ID.c +++ /dev/null @@ -1,96 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "GlobalRIC-ID.h" - -static int -memb_ric_ID_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if(st->size > 0) { - /* Size in bits */ - size = 8 * st->size - (st->bits_unused & 0x07); - } else { - size = 0; - } - - if((size == 20)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_per_constraints_t asn_PER_memb_ric_ID_constr_3 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 0, 0, 20, 20 } /* (SIZE(20..20)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_GlobalRIC_ID_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct GlobalRIC_ID, pLMN_Identity), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_PLMN_Identity, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "pLMN-Identity" - }, - { ATF_NOFLAGS, 0, offsetof(struct GlobalRIC_ID, ric_ID), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_BIT_STRING, - 0, - { 0, &asn_PER_memb_ric_ID_constr_3, memb_ric_ID_constraint_1 }, - 0, 0, /* No default value */ - "ric-ID" - }, -}; -static const ber_tlv_tag_t asn_DEF_GlobalRIC_ID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_GlobalRIC_ID_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pLMN-Identity */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ric-ID */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_GlobalRIC_ID_specs_1 = { - sizeof(struct GlobalRIC_ID), - offsetof(struct GlobalRIC_ID, _asn_ctx), - asn_MAP_GlobalRIC_ID_tag2el_1, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 2, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_GlobalRIC_ID = { - "GlobalRIC-ID", - "GlobalRIC-ID", - &asn_OP_SEQUENCE, - asn_DEF_GlobalRIC_ID_tags_1, - sizeof(asn_DEF_GlobalRIC_ID_tags_1) - /sizeof(asn_DEF_GlobalRIC_ID_tags_1[0]), /* 1 */ - asn_DEF_GlobalRIC_ID_tags_1, /* Same as above */ - sizeof(asn_DEF_GlobalRIC_ID_tags_1) - /sizeof(asn_DEF_GlobalRIC_ID_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_GlobalRIC_ID_1, - 2, /* Elements count */ - &asn_SPC_GlobalRIC_ID_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/GlobalRIC-ID.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/GlobalRIC-ID.h deleted file mode 100644 index c1ab6be..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/GlobalRIC-ID.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _GlobalRIC_ID_H_ -#define _GlobalRIC_ID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "PLMN-Identity.h" -#include "BIT_STRING.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* GlobalRIC-ID */ -typedef struct GlobalRIC_ID { - PLMN_Identity_t pLMN_Identity; - BIT_STRING_t ric_ID; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} GlobalRIC_ID_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_GlobalRIC_ID; - -#ifdef __cplusplus -} -#endif - -#endif /* _GlobalRIC_ID_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/GlobalenGNB-ID.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/GlobalenGNB-ID.c deleted file mode 100644 index 07f8116..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/GlobalenGNB-ID.c +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "GlobalenGNB-ID.h" - -asn_TYPE_member_t asn_MBR_GlobalenGNB_ID_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct GlobalenGNB_ID, pLMN_Identity), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_PLMN_Identity, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "pLMN-Identity" - }, - { ATF_NOFLAGS, 0, offsetof(struct GlobalenGNB_ID, gNB_ID), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_ENGNB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "gNB-ID" - }, -}; -static const ber_tlv_tag_t asn_DEF_GlobalenGNB_ID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_GlobalenGNB_ID_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pLMN-Identity */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* gNB-ID */ -}; -asn_SEQUENCE_specifics_t asn_SPC_GlobalenGNB_ID_specs_1 = { - sizeof(struct GlobalenGNB_ID), - offsetof(struct GlobalenGNB_ID, _asn_ctx), - asn_MAP_GlobalenGNB_ID_tag2el_1, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 2, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_GlobalenGNB_ID = { - "GlobalenGNB-ID", - "GlobalenGNB-ID", - &asn_OP_SEQUENCE, - asn_DEF_GlobalenGNB_ID_tags_1, - sizeof(asn_DEF_GlobalenGNB_ID_tags_1) - /sizeof(asn_DEF_GlobalenGNB_ID_tags_1[0]), /* 1 */ - asn_DEF_GlobalenGNB_ID_tags_1, /* Same as above */ - sizeof(asn_DEF_GlobalenGNB_ID_tags_1) - /sizeof(asn_DEF_GlobalenGNB_ID_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_GlobalenGNB_ID_1, - 2, /* Elements count */ - &asn_SPC_GlobalenGNB_ID_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/GlobalenGNB-ID.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/GlobalenGNB-ID.h deleted file mode 100644 index 1e254a7..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/GlobalenGNB-ID.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _GlobalenGNB_ID_H_ -#define _GlobalenGNB_ID_H_ - - -#include - -/* Including external dependencies */ -#include "PLMN-Identity.h" -#include "ENGNB-ID.h" -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* GlobalenGNB-ID */ -typedef struct GlobalenGNB_ID { - PLMN_Identity_t pLMN_Identity; - ENGNB_ID_t gNB_ID; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} GlobalenGNB_ID_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_GlobalenGNB_ID; -extern asn_SEQUENCE_specifics_t asn_SPC_GlobalenGNB_ID_specs_1; -extern asn_TYPE_member_t asn_MBR_GlobalenGNB_ID_1[2]; - -#ifdef __cplusplus -} -#endif - -#endif /* _GlobalenGNB_ID_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/GlobalgNB-ID.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/GlobalgNB-ID.c deleted file mode 100644 index bfcc098..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/GlobalgNB-ID.c +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "GlobalgNB-ID.h" - -asn_TYPE_member_t asn_MBR_GlobalgNB_ID_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct GlobalgNB_ID, plmn_id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_PLMN_Identity, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "plmn-id" - }, - { ATF_NOFLAGS, 0, offsetof(struct GlobalgNB_ID, gnb_id), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_GNB_ID_Choice, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "gnb-id" - }, -}; -static const ber_tlv_tag_t asn_DEF_GlobalgNB_ID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_GlobalgNB_ID_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* plmn-id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* gnb-id */ -}; -asn_SEQUENCE_specifics_t asn_SPC_GlobalgNB_ID_specs_1 = { - sizeof(struct GlobalgNB_ID), - offsetof(struct GlobalgNB_ID, _asn_ctx), - asn_MAP_GlobalgNB_ID_tag2el_1, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 2, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_GlobalgNB_ID = { - "GlobalgNB-ID", - "GlobalgNB-ID", - &asn_OP_SEQUENCE, - asn_DEF_GlobalgNB_ID_tags_1, - sizeof(asn_DEF_GlobalgNB_ID_tags_1) - /sizeof(asn_DEF_GlobalgNB_ID_tags_1[0]), /* 1 */ - asn_DEF_GlobalgNB_ID_tags_1, /* Same as above */ - sizeof(asn_DEF_GlobalgNB_ID_tags_1) - /sizeof(asn_DEF_GlobalgNB_ID_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_GlobalgNB_ID_1, - 2, /* Elements count */ - &asn_SPC_GlobalgNB_ID_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/GlobalgNB-ID.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/GlobalgNB-ID.h deleted file mode 100644 index e31846d..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/GlobalgNB-ID.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _GlobalgNB_ID_H_ -#define _GlobalgNB_ID_H_ - - -#include - -/* Including external dependencies */ -#include "PLMN-Identity.h" -#include "GNB-ID-Choice.h" -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* GlobalgNB-ID */ -typedef struct GlobalgNB_ID { - PLMN_Identity_t plmn_id; - GNB_ID_Choice_t gnb_id; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} GlobalgNB_ID_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_GlobalgNB_ID; -extern asn_SEQUENCE_specifics_t asn_SPC_GlobalgNB_ID_specs_1; -extern asn_TYPE_member_t asn_MBR_GlobalgNB_ID_1[2]; - -#ifdef __cplusplus -} -#endif - -#endif /* _GlobalgNB_ID_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/GlobalngeNB-ID.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/GlobalngeNB-ID.c deleted file mode 100644 index d220e9a..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/GlobalngeNB-ID.c +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "GlobalngeNB-ID.h" - -asn_TYPE_member_t asn_MBR_GlobalngeNB_ID_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct GlobalngeNB_ID, plmn_id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_PLMN_Identity, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "plmn-id" - }, - { ATF_NOFLAGS, 0, offsetof(struct GlobalngeNB_ID, enb_id), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_ENB_ID_Choice, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "enb-id" - }, -}; -static const ber_tlv_tag_t asn_DEF_GlobalngeNB_ID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_GlobalngeNB_ID_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* plmn-id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* enb-id */ -}; -asn_SEQUENCE_specifics_t asn_SPC_GlobalngeNB_ID_specs_1 = { - sizeof(struct GlobalngeNB_ID), - offsetof(struct GlobalngeNB_ID, _asn_ctx), - asn_MAP_GlobalngeNB_ID_tag2el_1, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 2, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_GlobalngeNB_ID = { - "GlobalngeNB-ID", - "GlobalngeNB-ID", - &asn_OP_SEQUENCE, - asn_DEF_GlobalngeNB_ID_tags_1, - sizeof(asn_DEF_GlobalngeNB_ID_tags_1) - /sizeof(asn_DEF_GlobalngeNB_ID_tags_1[0]), /* 1 */ - asn_DEF_GlobalngeNB_ID_tags_1, /* Same as above */ - sizeof(asn_DEF_GlobalngeNB_ID_tags_1) - /sizeof(asn_DEF_GlobalngeNB_ID_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_GlobalngeNB_ID_1, - 2, /* Elements count */ - &asn_SPC_GlobalngeNB_ID_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/GlobalngeNB-ID.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/GlobalngeNB-ID.h deleted file mode 100644 index e8246ca..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/GlobalngeNB-ID.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _GlobalngeNB_ID_H_ -#define _GlobalngeNB_ID_H_ - - -#include - -/* Including external dependencies */ -#include "PLMN-Identity.h" -#include "ENB-ID-Choice.h" -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* GlobalngeNB-ID */ -typedef struct GlobalngeNB_ID { - PLMN_Identity_t plmn_id; - ENB_ID_Choice_t enb_id; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} GlobalngeNB_ID_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_GlobalngeNB_ID; -extern asn_SEQUENCE_specifics_t asn_SPC_GlobalngeNB_ID_specs_1; -extern asn_TYPE_member_t asn_MBR_GlobalngeNB_ID_1[2]; - -#ifdef __cplusplus -} -#endif - -#endif /* _GlobalngeNB_ID_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/INTEGER.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/INTEGER.c deleted file mode 100644 index 2a2f4d7..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/INTEGER.c +++ /dev/null @@ -1,1735 +0,0 @@ -/*- - * Copyright (c) 2003-2014 Lev Walkin . - * All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include /* Encoder and decoder of a primitive type */ -#include - -/* - * INTEGER basic type description. - */ -static const ber_tlv_tag_t asn_DEF_INTEGER_tags[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_operation_t asn_OP_INTEGER = { - INTEGER_free, - INTEGER_print, - INTEGER_compare, - ber_decode_primitive, - INTEGER_encode_der, - INTEGER_decode_xer, - INTEGER_encode_xer, -#ifdef ASN_DISABLE_OER_SUPPORT - 0, - 0, -#else - INTEGER_decode_oer, /* OER decoder */ - INTEGER_encode_oer, /* Canonical OER encoder */ -#endif /* ASN_DISABLE_OER_SUPPORT */ -#ifdef ASN_DISABLE_PER_SUPPORT - 0, - 0, - 0, - 0, -#else - INTEGER_decode_uper, /* Unaligned PER decoder */ - INTEGER_encode_uper, /* Unaligned PER encoder */ - INTEGER_decode_aper, /* Aligned PER decoder */ - INTEGER_encode_aper, /* Aligned PER encoder */ -#endif /* ASN_DISABLE_PER_SUPPORT */ - INTEGER_random_fill, - 0 /* Use generic outmost tag fetcher */ -}; -asn_TYPE_descriptor_t asn_DEF_INTEGER = { - "INTEGER", - "INTEGER", - &asn_OP_INTEGER, - asn_DEF_INTEGER_tags, - sizeof(asn_DEF_INTEGER_tags) / sizeof(asn_DEF_INTEGER_tags[0]), - asn_DEF_INTEGER_tags, /* Same as above */ - sizeof(asn_DEF_INTEGER_tags) / sizeof(asn_DEF_INTEGER_tags[0]), - { 0, 0, asn_generic_no_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - -/* - * Encode INTEGER type using DER. - */ -asn_enc_rval_t -INTEGER_encode_der(const asn_TYPE_descriptor_t *td, const void *sptr, - int tag_mode, ber_tlv_tag_t tag, asn_app_consume_bytes_f *cb, - void *app_key) { - const INTEGER_t *st = (const INTEGER_t *)sptr; - asn_enc_rval_t rval; - INTEGER_t effective_integer; - - ASN_DEBUG("%s %s as INTEGER (tm=%d)", - cb?"Encoding":"Estimating", td->name, tag_mode); - - /* - * Canonicalize integer in the buffer. - * (Remove too long sign extension, remove some first 0x00 bytes) - */ - if(st->buf) { - uint8_t *buf = st->buf; - uint8_t *end1 = buf + st->size - 1; - int shift; - - /* Compute the number of superfluous leading bytes */ - for(; buf < end1; buf++) { - /* - * If the contents octets of an integer value encoding - * consist of more than one octet, then the bits of the - * first octet and bit 8 of the second octet: - * a) shall not all be ones; and - * b) shall not all be zero. - */ - switch(*buf) { - case 0x00: if((buf[1] & 0x80) == 0) - continue; - break; - case 0xff: if((buf[1] & 0x80)) - continue; - break; - } - break; - } - - /* Remove leading superfluous bytes from the integer */ - shift = buf - st->buf; - if(shift) { - union { - const uint8_t *c_buf; - uint8_t *nc_buf; - } unconst; - unconst.c_buf = st->buf; - effective_integer.buf = unconst.nc_buf + shift; - effective_integer.size = st->size - shift; - - st = &effective_integer; - } - } - - rval = der_encode_primitive(td, st, tag_mode, tag, cb, app_key); - if(rval.structure_ptr == &effective_integer) { - rval.structure_ptr = sptr; - } - return rval; -} - -static const asn_INTEGER_enum_map_t *INTEGER_map_enum2value( - const asn_INTEGER_specifics_t *specs, const char *lstart, - const char *lstop); - -/* - * INTEGER specific human-readable output. - */ -static ssize_t -INTEGER__dump(const asn_TYPE_descriptor_t *td, const INTEGER_t *st, asn_app_consume_bytes_f *cb, void *app_key, int plainOrXER) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - char scratch[32]; - uint8_t *buf = st->buf; - uint8_t *buf_end = st->buf + st->size; - intmax_t value; - ssize_t wrote = 0; - char *p; - int ret; - - if(specs && specs->field_unsigned) - ret = asn_INTEGER2umax(st, (uintmax_t *)&value); - else - ret = asn_INTEGER2imax(st, &value); - - /* Simple case: the integer size is small */ - if(ret == 0) { - const asn_INTEGER_enum_map_t *el; - el = (value >= 0 || !specs || !specs->field_unsigned) - ? INTEGER_map_value2enum(specs, value) : 0; - if(el) { - if(plainOrXER == 0) - return asn__format_to_callback(cb, app_key, - "%" ASN_PRIdMAX " (%s)", value, el->enum_name); - else - return asn__format_to_callback(cb, app_key, - "<%s/>", el->enum_name); - } else if(plainOrXER && specs && specs->strict_enumeration) { - ASN_DEBUG("ASN.1 forbids dealing with " - "unknown value of ENUMERATED type"); - errno = EPERM; - return -1; - } else { - return asn__format_to_callback(cb, app_key, - (specs && specs->field_unsigned) - ? "%" ASN_PRIuMAX - : "%" ASN_PRIdMAX, - value); - } - } else if(plainOrXER && specs && specs->strict_enumeration) { - /* - * Here and earlier, we cannot encode the ENUMERATED values - * if there is no corresponding identifier. - */ - ASN_DEBUG("ASN.1 forbids dealing with " - "unknown value of ENUMERATED type"); - errno = EPERM; - return -1; - } - - /* Output in the long xx:yy:zz... format */ - /* TODO: replace with generic algorithm (Knuth TAOCP Vol 2, 4.3.1) */ - for(p = scratch; buf < buf_end; buf++) { - const char * const h2c = "0123456789ABCDEF"; - if((p - scratch) >= (ssize_t)(sizeof(scratch) - 4)) { - /* Flush buffer */ - if(cb(scratch, p - scratch, app_key) < 0) - return -1; - wrote += p - scratch; - p = scratch; - } - *p++ = h2c[*buf >> 4]; - *p++ = h2c[*buf & 0x0F]; - *p++ = 0x3a; /* ":" */ - } - if(p != scratch) - p--; /* Remove the last ":" */ - - wrote += p - scratch; - return (cb(scratch, p - scratch, app_key) < 0) ? -1 : wrote; -} - -/* - * INTEGER specific human-readable output. - */ -int -INTEGER_print(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, - asn_app_consume_bytes_f *cb, void *app_key) { - const INTEGER_t *st = (const INTEGER_t *)sptr; - ssize_t ret; - - (void)ilevel; - - if(!st || !st->buf) - ret = cb("", 8, app_key); - else - ret = INTEGER__dump(td, st, cb, app_key, 0); - - return (ret < 0) ? -1 : 0; -} - -struct e2v_key { - const char *start; - const char *stop; - const asn_INTEGER_enum_map_t *vemap; - const unsigned int *evmap; -}; -static int -INTEGER__compar_enum2value(const void *kp, const void *am) { - const struct e2v_key *key = (const struct e2v_key *)kp; - const asn_INTEGER_enum_map_t *el = (const asn_INTEGER_enum_map_t *)am; - const char *ptr, *end, *name; - - /* Remap the element (sort by different criterion) */ - el = key->vemap + key->evmap[el - key->vemap]; - - /* Compare strings */ - for(ptr = key->start, end = key->stop, name = el->enum_name; - ptr < end; ptr++, name++) { - if(*ptr != *name || !*name) - return *(const unsigned char *)ptr - - *(const unsigned char *)name; - } - return name[0] ? -1 : 0; -} - -static const asn_INTEGER_enum_map_t * -INTEGER_map_enum2value(const asn_INTEGER_specifics_t *specs, const char *lstart, - const char *lstop) { - const asn_INTEGER_enum_map_t *el_found; - int count = specs ? specs->map_count : 0; - struct e2v_key key; - const char *lp; - - if(!count) return NULL; - - /* Guaranteed: assert(lstart < lstop); */ - /* Figure out the tag name */ - for(lstart++, lp = lstart; lp < lstop; lp++) { - switch(*lp) { - case 9: case 10: case 11: case 12: case 13: case 32: /* WSP */ - case 0x2f: /* '/' */ case 0x3e: /* '>' */ - break; - default: - continue; - } - break; - } - if(lp == lstop) return NULL; /* No tag found */ - lstop = lp; - - key.start = lstart; - key.stop = lstop; - key.vemap = specs->value2enum; - key.evmap = specs->enum2value; - el_found = (asn_INTEGER_enum_map_t *)bsearch(&key, - specs->value2enum, count, sizeof(specs->value2enum[0]), - INTEGER__compar_enum2value); - if(el_found) { - /* Remap enum2value into value2enum */ - el_found = key.vemap + key.evmap[el_found - key.vemap]; - } - return el_found; -} - -static int -INTEGER__compar_value2enum(const void *kp, const void *am) { - long a = *(const long *)kp; - const asn_INTEGER_enum_map_t *el = (const asn_INTEGER_enum_map_t *)am; - long b = el->nat_value; - if(a < b) return -1; - else if(a == b) return 0; - else return 1; -} - -const asn_INTEGER_enum_map_t * -INTEGER_map_value2enum(const asn_INTEGER_specifics_t *specs, long value) { - int count = specs ? specs->map_count : 0; - if(!count) return 0; - return (asn_INTEGER_enum_map_t *)bsearch(&value, specs->value2enum, - count, sizeof(specs->value2enum[0]), - INTEGER__compar_value2enum); -} - -static int -INTEGER_st_prealloc(INTEGER_t *st, int min_size) { - void *p = MALLOC(min_size + 1); - if(p) { - void *b = st->buf; - st->size = 0; - st->buf = p; - FREEMEM(b); - return 0; - } else { - return -1; - } -} - -/* - * Decode the chunk of XML text encoding INTEGER. - */ -static enum xer_pbd_rval -INTEGER__xer_body_decode(const asn_TYPE_descriptor_t *td, void *sptr, - const void *chunk_buf, size_t chunk_size) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - INTEGER_t *st = (INTEGER_t *)sptr; - intmax_t dec_value; - intmax_t hex_value = 0; - const char *lp; - const char *lstart = (const char *)chunk_buf; - const char *lstop = lstart + chunk_size; - enum { - ST_LEADSPACE, - ST_SKIPSPHEX, - ST_WAITDIGITS, - ST_DIGITS, - ST_DIGITS_TRAILSPACE, - ST_HEXDIGIT1, - ST_HEXDIGIT2, - ST_HEXDIGITS_TRAILSPACE, - ST_HEXCOLON, - ST_END_ENUM, - ST_UNEXPECTED - } state = ST_LEADSPACE; - const char *dec_value_start = 0; /* INVARIANT: always !0 in ST_DIGITS */ - const char *dec_value_end = 0; - - if(chunk_size) - ASN_DEBUG("INTEGER body %ld 0x%2x..0x%2x", - (long)chunk_size, *lstart, lstop[-1]); - - if(INTEGER_st_prealloc(st, (chunk_size/3) + 1)) - return XPBD_SYSTEM_FAILURE; - - /* - * We may have received a tag here. It will be processed inline. - * Use strtoul()-like code and serialize the result. - */ - for(lp = lstart; lp < lstop; lp++) { - int lv = *lp; - switch(lv) { - case 0x09: case 0x0a: case 0x0d: case 0x20: - switch(state) { - case ST_LEADSPACE: - case ST_DIGITS_TRAILSPACE: - case ST_HEXDIGITS_TRAILSPACE: - case ST_SKIPSPHEX: - continue; - case ST_DIGITS: - dec_value_end = lp; - state = ST_DIGITS_TRAILSPACE; - continue; - case ST_HEXCOLON: - state = ST_HEXDIGITS_TRAILSPACE; - continue; - default: - break; - } - break; - case 0x2d: /* '-' */ - if(state == ST_LEADSPACE) { - dec_value = 0; - dec_value_start = lp; - state = ST_WAITDIGITS; - continue; - } - break; - case 0x2b: /* '+' */ - if(state == ST_LEADSPACE) { - dec_value = 0; - dec_value_start = lp; - state = ST_WAITDIGITS; - continue; - } - break; - case 0x30: case 0x31: case 0x32: case 0x33: case 0x34: - case 0x35: case 0x36: case 0x37: case 0x38: case 0x39: - switch(state) { - case ST_DIGITS: continue; - case ST_SKIPSPHEX: /* Fall through */ - case ST_HEXDIGIT1: - hex_value = (lv - 0x30) << 4; - state = ST_HEXDIGIT2; - continue; - case ST_HEXDIGIT2: - hex_value += (lv - 0x30); - state = ST_HEXCOLON; - st->buf[st->size++] = (uint8_t)hex_value; - continue; - case ST_HEXCOLON: - return XPBD_BROKEN_ENCODING; - case ST_LEADSPACE: - dec_value = 0; - dec_value_start = lp; - /* FALL THROUGH */ - case ST_WAITDIGITS: - state = ST_DIGITS; - continue; - default: - break; - } - break; - case 0x3c: /* '<', start of XML encoded enumeration */ - if(state == ST_LEADSPACE) { - const asn_INTEGER_enum_map_t *el; - el = INTEGER_map_enum2value( - (const asn_INTEGER_specifics_t *) - td->specifics, lstart, lstop); - if(el) { - ASN_DEBUG("Found \"%s\" => %ld", - el->enum_name, el->nat_value); - dec_value = el->nat_value; - state = ST_END_ENUM; - lp = lstop - 1; - continue; - } - ASN_DEBUG("Unknown identifier for INTEGER"); - } - return XPBD_BROKEN_ENCODING; - case 0x3a: /* ':' */ - if(state == ST_HEXCOLON) { - /* This colon is expected */ - state = ST_HEXDIGIT1; - continue; - } else if(state == ST_DIGITS) { - /* The colon here means that we have - * decoded the first two hexadecimal - * places as a decimal value. - * Switch decoding mode. */ - ASN_DEBUG("INTEGER re-evaluate as hex form"); - state = ST_SKIPSPHEX; - dec_value_start = 0; - lp = lstart - 1; - continue; - } else { - ASN_DEBUG("state %d at %ld", state, (long)(lp - lstart)); - break; - } - /* [A-Fa-f] */ - case 0x41:case 0x42:case 0x43:case 0x44:case 0x45:case 0x46: - case 0x61:case 0x62:case 0x63:case 0x64:case 0x65:case 0x66: - switch(state) { - case ST_SKIPSPHEX: - case ST_LEADSPACE: /* Fall through */ - case ST_HEXDIGIT1: - hex_value = lv - ((lv < 0x61) ? 0x41 : 0x61); - hex_value += 10; - hex_value <<= 4; - state = ST_HEXDIGIT2; - continue; - case ST_HEXDIGIT2: - hex_value += lv - ((lv < 0x61) ? 0x41 : 0x61); - hex_value += 10; - st->buf[st->size++] = (uint8_t)hex_value; - state = ST_HEXCOLON; - continue; - case ST_DIGITS: - ASN_DEBUG("INTEGER re-evaluate as hex form"); - state = ST_SKIPSPHEX; - dec_value_start = 0; - lp = lstart - 1; - continue; - default: - break; - } - break; - } - - /* Found extra non-numeric stuff */ - ASN_DEBUG("INTEGER :: Found non-numeric 0x%2x at %ld", - lv, (long)(lp - lstart)); - state = ST_UNEXPECTED; - break; - } - - switch(state) { - case ST_END_ENUM: - /* Got a complete and valid enumeration encoded as a tag. */ - break; - case ST_DIGITS: - dec_value_end = lstop; - /* FALL THROUGH */ - case ST_DIGITS_TRAILSPACE: - /* The last symbol encountered was a digit. */ - switch(asn_strtoimax_lim(dec_value_start, &dec_value_end, &dec_value)) { - case ASN_STRTOX_OK: - if(specs && specs->field_unsigned && (uintmax_t) dec_value <= ULONG_MAX) { - break; - } else if(dec_value >= LONG_MIN && dec_value <= LONG_MAX) { - break; - } else { - /* - * We model INTEGER on long for XER, - * to avoid rewriting all the tests at once. - */ - ASN_DEBUG("INTEGER exceeds long range"); - } - /* Fall through */ - case ASN_STRTOX_ERROR_RANGE: - ASN_DEBUG("INTEGER decode %s hit range limit", td->name); - return XPBD_DECODER_LIMIT; - case ASN_STRTOX_ERROR_INVAL: - case ASN_STRTOX_EXPECT_MORE: - case ASN_STRTOX_EXTRA_DATA: - return XPBD_BROKEN_ENCODING; - } - break; - case ST_HEXCOLON: - case ST_HEXDIGITS_TRAILSPACE: - st->buf[st->size] = 0; /* Just in case termination */ - return XPBD_BODY_CONSUMED; - case ST_HEXDIGIT1: - case ST_HEXDIGIT2: - case ST_SKIPSPHEX: - return XPBD_BROKEN_ENCODING; - case ST_LEADSPACE: - /* Content not found */ - return XPBD_NOT_BODY_IGNORE; - case ST_WAITDIGITS: - case ST_UNEXPECTED: - ASN_DEBUG("INTEGER: No useful digits (state %d)", state); - return XPBD_BROKEN_ENCODING; /* No digits */ - } - - /* - * Convert the result of parsing of enumeration or a straight - * decimal value into a BER representation. - */ - if(asn_imax2INTEGER(st, dec_value)) { - ASN_DEBUG("INTEGER decode %s conversion failed", td->name); - return XPBD_SYSTEM_FAILURE; - } - - return XPBD_BODY_CONSUMED; -} - -asn_dec_rval_t -INTEGER_decode_xer(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **sptr, - const char *opt_mname, const void *buf_ptr, size_t size) { - return xer_decode_primitive(opt_codec_ctx, td, - sptr, sizeof(INTEGER_t), opt_mname, - buf_ptr, size, INTEGER__xer_body_decode); -} - -asn_enc_rval_t -INTEGER_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, - int ilevel, enum xer_encoder_flags_e flags, - asn_app_consume_bytes_f *cb, void *app_key) { - const INTEGER_t *st = (const INTEGER_t *)sptr; - asn_enc_rval_t er = {0,0,0}; - - (void)ilevel; - (void)flags; - - if(!st || !st->buf) - ASN__ENCODE_FAILED; - - er.encoded = INTEGER__dump(td, st, cb, app_key, 1); - if(er.encoded < 0) ASN__ENCODE_FAILED; - - ASN__ENCODED_OK(er); -} - -#ifndef ASN_DISABLE_PER_SUPPORT - -asn_dec_rval_t -INTEGER_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, - asn_per_data_t *pd) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - asn_dec_rval_t rval = { RC_OK, 0 }; - INTEGER_t *st = (INTEGER_t *)*sptr; - const asn_per_constraint_t *ct; - int repeat; - - (void)opt_codec_ctx; - - if(!st) { - st = (INTEGER_t *)(*sptr = CALLOC(1, sizeof(*st))); - if(!st) ASN__DECODE_FAILED; - } - - if(!constraints) constraints = td->encoding_constraints.per_constraints; - ct = constraints ? &constraints->value : 0; - - if(ct && ct->flags & APC_EXTENSIBLE) { - int inext = per_get_few_bits(pd, 1); - if(inext < 0) ASN__DECODE_STARVED; - if(inext) ct = 0; - } - - FREEMEM(st->buf); - st->buf = 0; - st->size = 0; - if(ct) { - if(ct->flags & APC_SEMI_CONSTRAINED) { - st->buf = (uint8_t *)CALLOC(1, 2); - if(!st->buf) ASN__DECODE_FAILED; - st->size = 1; - } else if(ct->flags & APC_CONSTRAINED && ct->range_bits >= 0) { - size_t size = (ct->range_bits + 7) >> 3; - st->buf = (uint8_t *)MALLOC(1 + size + 1); - if(!st->buf) ASN__DECODE_FAILED; - st->size = size; - } - } - - /* X.691-2008/11, #13.2.2, constrained whole number */ - if(ct && ct->flags != APC_UNCONSTRAINED) { - /* #11.5.6 */ - ASN_DEBUG("Integer with range %d bits", ct->range_bits); - if(ct->range_bits >= 0) { - if((size_t)ct->range_bits > 8 * sizeof(unsigned long)) - ASN__DECODE_FAILED; - - if(specs && specs->field_unsigned) { - unsigned long uvalue = 0; - if(uper_get_constrained_whole_number(pd, - &uvalue, ct->range_bits)) - ASN__DECODE_STARVED; - ASN_DEBUG("Got value %lu + low %ld", - uvalue, ct->lower_bound); - uvalue += ct->lower_bound; - if(asn_ulong2INTEGER(st, uvalue)) - ASN__DECODE_FAILED; - } else { - unsigned long uvalue = 0; - long svalue; - if(uper_get_constrained_whole_number(pd, - &uvalue, ct->range_bits)) - ASN__DECODE_STARVED; - ASN_DEBUG("Got value %lu + low %ld", - uvalue, ct->lower_bound); - if(per_long_range_unrebase(uvalue, ct->lower_bound, - ct->upper_bound, &svalue) - || asn_long2INTEGER(st, svalue)) { - ASN__DECODE_FAILED; - } - } - return rval; - } - } else { - ASN_DEBUG("Decoding unconstrained integer %s", td->name); - } - - /* X.691, #12.2.3, #12.2.4 */ - do { - ssize_t len = 0; - void *p = NULL; - int ret = 0; - - /* Get the PER length */ - len = uper_get_length(pd, -1, 0, &repeat); - if(len < 0) ASN__DECODE_STARVED; - - p = REALLOC(st->buf, st->size + len + 1); - if(!p) ASN__DECODE_FAILED; - st->buf = (uint8_t *)p; - - ret = per_get_many_bits(pd, &st->buf[st->size], 0, 8 * len); - if(ret < 0) ASN__DECODE_STARVED; - st->size += len; - } while(repeat); - st->buf[st->size] = 0; /* JIC */ - - /* #12.2.3 */ - if(ct && ct->lower_bound) { - /* - * TODO: replace by in-place arithmetics. - */ - long value = 0; - if(asn_INTEGER2long(st, &value)) - ASN__DECODE_FAILED; - if(asn_imax2INTEGER(st, value + ct->lower_bound)) - ASN__DECODE_FAILED; - } - - return rval; -} - -asn_enc_rval_t -INTEGER_encode_uper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, const void *sptr, - asn_per_outp_t *po) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - asn_enc_rval_t er = {0,0,0}; - const INTEGER_t *st = (const INTEGER_t *)sptr; - const uint8_t *buf; - const uint8_t *end; - const asn_per_constraint_t *ct; - long value = 0; - - if(!st || st->size == 0) ASN__ENCODE_FAILED; - - if(!constraints) constraints = td->encoding_constraints.per_constraints; - ct = constraints ? &constraints->value : 0; - - er.encoded = 0; - - if(ct) { - int inext = 0; - if(specs && specs->field_unsigned) { - unsigned long uval; - if(asn_INTEGER2ulong(st, &uval)) - ASN__ENCODE_FAILED; - /* Check proper range */ - if(ct->flags & APC_SEMI_CONSTRAINED) { - if(uval < (unsigned long)ct->lower_bound) - inext = 1; - } else if(ct->range_bits >= 0) { - if(uval < (unsigned long)ct->lower_bound - || uval > (unsigned long)ct->upper_bound) - inext = 1; - } - ASN_DEBUG("Value %lu (%02x/%" ASN_PRI_SIZE ") lb %lu ub %lu %s", - uval, st->buf[0], st->size, - ct->lower_bound, ct->upper_bound, - inext ? "ext" : "fix"); - value = uval; - } else { - if(asn_INTEGER2long(st, &value)) - ASN__ENCODE_FAILED; - /* Check proper range */ - if(ct->flags & APC_SEMI_CONSTRAINED) { - if(value < ct->lower_bound) - inext = 1; - } else if(ct->range_bits >= 0) { - if(value < ct->lower_bound - || value > ct->upper_bound) - inext = 1; - } - ASN_DEBUG("Value %ld (%02x/%" ASN_PRI_SIZE ") lb %ld ub %ld %s", - value, st->buf[0], st->size, - ct->lower_bound, ct->upper_bound, - inext ? "ext" : "fix"); - } - if(ct->flags & APC_EXTENSIBLE) { - if(per_put_few_bits(po, inext, 1)) - ASN__ENCODE_FAILED; - if(inext) ct = 0; - } else if(inext) { - ASN__ENCODE_FAILED; - } - } - - - /* X.691-11/2008, #13.2.2, test if constrained whole number */ - if(ct && ct->range_bits >= 0) { - unsigned long v; - /* #11.5.6 -> #11.3 */ - ASN_DEBUG("Encoding integer %ld (%lu) with range %d bits", - value, value - ct->lower_bound, ct->range_bits); - if(specs && specs->field_unsigned) { - if ( ((unsigned long)ct->lower_bound > (unsigned long)(ct->upper_bound) - || ((unsigned long)value < (unsigned long)ct->lower_bound)) - || ((unsigned long)value > (unsigned long)ct->upper_bound) - ) { - ASN_DEBUG("Value %lu to-be-encoded is outside the bounds [%lu, %lu]!", - value, ct->lower_bound, ct->upper_bound); - ASN__ENCODE_FAILED; - } - v = (unsigned long)value - (unsigned long)ct->lower_bound; - } else { - if(per_long_range_rebase(value, ct->lower_bound, ct->upper_bound, &v)) { - ASN__ENCODE_FAILED; - } - } - if(uper_put_constrained_whole_number_u(po, v, ct->range_bits)) - ASN__ENCODE_FAILED; - ASN__ENCODED_OK(er); - } - - if(ct && ct->lower_bound) { - ASN_DEBUG("Adjust lower bound to %ld", ct->lower_bound); - /* TODO: adjust lower bound */ - ASN__ENCODE_FAILED; - } - - for(buf = st->buf, end = st->buf + st->size; buf < end;) { - int need_eom = 0; - ssize_t mayEncode = uper_put_length(po, end - buf, &need_eom); - if(mayEncode < 0) - ASN__ENCODE_FAILED; - if(per_put_many_bits(po, buf, 8 * mayEncode)) - ASN__ENCODE_FAILED; - buf += mayEncode; - if(need_eom && uper_put_length(po, 0, 0)) ASN__ENCODE_FAILED; - } - - ASN__ENCODED_OK(er); -} - -asn_dec_rval_t -INTEGER_decode_aper(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, asn_per_data_t *pd) { - const asn_INTEGER_specifics_t *specs = (const asn_INTEGER_specifics_t *)td->specifics; - asn_dec_rval_t rval = { RC_OK, 0 }; - INTEGER_t *st = (INTEGER_t *)*sptr; - const asn_per_constraint_t *ct; - int repeat; - - (void)opt_codec_ctx; - - if(!st) { - st = (INTEGER_t *)(*sptr = CALLOC(1, sizeof(*st))); - if(!st) ASN__DECODE_FAILED; - } - - if(!constraints) constraints = td->encoding_constraints.per_constraints; - ct = constraints ? &constraints->value : 0; - - if(ct && ct->flags & APC_EXTENSIBLE) { - int inext = per_get_few_bits(pd, 1); - if(inext < 0) ASN__DECODE_STARVED; - if(inext) ct = 0; - } - - FREEMEM(st->buf); - st->buf = 0; - st->size = 0; - if(ct) { - if(ct->flags & APC_SEMI_CONSTRAINED) { - st->buf = (uint8_t *)CALLOC(1, 2); - if(!st->buf) ASN__DECODE_FAILED; - st->size = 1; - } else if(ct->flags & APC_CONSTRAINED && ct->range_bits >= 0) { - size_t size = (ct->range_bits + 7) >> 3; - st->buf = (uint8_t *)MALLOC(1 + size + 1); - if(!st->buf) ASN__DECODE_FAILED; - st->size = size; - } - } - - /* X.691, #12.2.2 */ - if(ct && ct->flags != APC_UNCONSTRAINED) { - /* #10.5.6 */ - ASN_DEBUG("Integer with range %d bits", ct->range_bits); - if(ct->range_bits >= 0) { - if (ct->range_bits > 16) { - int max_range_bytes = (ct->range_bits >> 3) + - (((ct->range_bits % 8) > 0) ? 1 : 0); - int length = 0, i; - long value = 0; - - for (i = 1; ; i++) { - int upper = 1 << i; - if (upper >= max_range_bytes) - break; - } - ASN_DEBUG("Can encode %d (%d bytes) in %d bits", ct->range_bits, - max_range_bytes, i); - - if ((length = per_get_few_bits(pd, i)) < 0) - ASN__DECODE_FAILED; - - /* X.691 #12.2.6 length determinant + lb (1) */ - length += 1; - ASN_DEBUG("Got length %d", length); - if (aper_get_align(pd) != 0) - ASN__DECODE_FAILED; - while (length--) { - int buf = per_get_few_bits(pd, 8); - if (buf < 0) - ASN__DECODE_FAILED; - value += (((long)buf) << (8 * length)); - } - - value += ct->lower_bound; - if((specs && specs->field_unsigned) - ? asn_uint642INTEGER(st, (unsigned long)value) - : asn_int642INTEGER(st, value)) - ASN__DECODE_FAILED; - ASN_DEBUG("Got value %ld + low %ld", - value, ct->lower_bound); - } else { - long value = 0; - if (ct->range_bits < 8) { - value = per_get_few_bits(pd, ct->range_bits); - if(value < 0) ASN__DECODE_STARVED; - } else if (ct->range_bits == 8) { - if (aper_get_align(pd) < 0) - ASN__DECODE_FAILED; - value = per_get_few_bits(pd, ct->range_bits); - if(value < 0) ASN__DECODE_STARVED; - } else { - /* Align */ - if (aper_get_align(pd) < 0) - ASN__DECODE_FAILED; - value = per_get_few_bits(pd, 16); - if(value < 0) ASN__DECODE_STARVED; - } - value += ct->lower_bound; - if((specs && specs->field_unsigned) - ? asn_ulong2INTEGER(st, value) - : asn_long2INTEGER(st, value)) - ASN__DECODE_FAILED; - ASN_DEBUG("Got value %ld + low %ld", - value, ct->lower_bound); - } - return rval; - } else { - ASN__DECODE_FAILED; - } - } else { - ASN_DEBUG("Decoding unconstrained integer %s", td->name); - } - - /* X.691, #12.2.3, #12.2.4 */ - do { - ssize_t len; - void *p; - int ret; - - /* Get the PER length */ - len = aper_get_length(pd, -1, -1, &repeat); - if(len < 0) ASN__DECODE_STARVED; - - p = REALLOC(st->buf, st->size + len + 1); - if(!p) ASN__DECODE_FAILED; - st->buf = (uint8_t *)p; - - ret = per_get_many_bits(pd, &st->buf[st->size], 0, 8 * len); - if(ret < 0) ASN__DECODE_STARVED; - st->size += len; - } while(repeat); - st->buf[st->size] = 0; /* JIC */ - - /* #12.2.3 */ - if(ct && ct->lower_bound) { - /* - * TODO: replace by in-place arithmetics. - */ - long value; - if(asn_INTEGER2long(st, &value)) - ASN__DECODE_FAILED; - if(asn_long2INTEGER(st, value + ct->lower_bound)) - ASN__DECODE_FAILED; - } - - return rval; -} - -asn_enc_rval_t -INTEGER_encode_aper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_per_outp_t *po) { - const asn_INTEGER_specifics_t *specs = (const asn_INTEGER_specifics_t *)td->specifics; - asn_enc_rval_t er = {0,0,0}; - const INTEGER_t *st = (const INTEGER_t *)sptr; - const uint8_t *buf; - const uint8_t *end; - const asn_per_constraint_t *ct; - long value = 0; - - if(!st || st->size == 0) ASN__ENCODE_FAILED; - - if(!constraints) constraints = td->encoding_constraints.per_constraints; - ct = constraints ? &constraints->value : 0; - - er.encoded = 0; - - if(ct) { - int inext = 0; - if(specs && specs->field_unsigned) { - unsigned long uval; - if(asn_INTEGER2ulong(st, &uval)) - ASN__ENCODE_FAILED; - /* Check proper range */ - if(ct->flags & APC_SEMI_CONSTRAINED) { - if(uval < (unsigned long)ct->lower_bound) - inext = 1; - } else if(ct->range_bits >= 0) { - if(uval < (unsigned long)ct->lower_bound - || uval > (unsigned long)ct->upper_bound) - inext = 1; - } - ASN_DEBUG("Value %lu (%02x/%lu) lb %ld ub %ld %s", - uval, st->buf[0], st->size, - ct->lower_bound, ct->upper_bound, - inext ? "ext" : "fix"); - value = uval; - } else { - if(asn_INTEGER2long(st, &value)) ASN__ENCODE_FAILED; - /* Check proper range */ - if(ct->flags & APC_SEMI_CONSTRAINED) { - if(value < ct->lower_bound) - inext = 1; - } else if(ct->range_bits >= 0) { - if(value < ct->lower_bound - || value > ct->upper_bound) - inext = 1; - } - ASN_DEBUG("Value %lu (%02x/%lu) lb %ld ub %ld %s", - value, st->buf[0], st->size, - ct->lower_bound, ct->upper_bound, - inext ? "ext" : "fix"); - } - if(ct->flags & APC_EXTENSIBLE) { - if(per_put_few_bits(po, inext, 1)) - ASN__ENCODE_FAILED; - if(inext) ct = 0; - } else if(inext) { - ASN__ENCODE_FAILED; - } - } - - /* X.691, #12.2.2 */ - if(ct && ct->range_bits >= 0) { - unsigned long v; - - /* #10.5.6 */ - ASN_DEBUG("Encoding integer %ld (%lu) with range %d bits", - value, value - ct->lower_bound, ct->range_bits); - - v = value - ct->lower_bound; - - /* #12 <= 8 -> alignment ? */ - if (ct->range_bits < 8) { - if(per_put_few_bits(po, 0x00 | v, ct->range_bits)) - ASN__ENCODE_FAILED; - } else if (ct->range_bits == 8) { - if(aper_put_align(po) < 0) - ASN__ENCODE_FAILED; - if(per_put_few_bits(po, 0x00 | v, ct->range_bits)) - ASN__ENCODE_FAILED; - } else if (ct->range_bits <= 16) { - /* Consume the bytes to align on octet */ - if(aper_put_align(po) < 0) - ASN__ENCODE_FAILED; - if(per_put_few_bits(po, 0x0000 | v, - 16)) - ASN__ENCODE_FAILED; - } else { - /* TODO: extend to >64 bits */ - int64_t v64 = v; - int i, j; - int max_range_bytes = (ct->range_bits >> 3) + - (((ct->range_bits % 8) > 0) ? 1 : 0); - - for (i = 1; ; i++) { - int upper = 1 << i; - if (upper >= max_range_bytes) - break; - } - - for (j = sizeof(int64_t) -1; j != 0; j--) { - int64_t val; - val = v64 >> (j * 8); - if (val != 0) - break; - } - - /* Putting length in the minimum number of bits ex: 5 = 3bits */ - if (per_put_few_bits(po, j, i)) - ASN__ENCODE_FAILED; - - /* Consume the bits to align on octet */ - if (aper_put_align(po) < 0) - ASN__ENCODE_FAILED; - /* Put the value */ - for (i = 0; i <= j; i++) { - if(per_put_few_bits(po, (v64 >> (8 * (j - i))) & 0xff, 8)) - ASN__ENCODE_FAILED; - } - } - ASN__ENCODED_OK(er); - } - - if(ct && ct->lower_bound) { - ASN_DEBUG("Adjust lower bound to %ld", ct->lower_bound); - /* TODO: adjust lower bound */ - ASN__ENCODE_FAILED; - } - - for(buf = st->buf, end = st->buf + st->size; buf < end;) { - ssize_t mayEncode = aper_put_length(po, -1, end - buf); - if(mayEncode < 0) - ASN__ENCODE_FAILED; - if(per_put_many_bits(po, buf, 8 * mayEncode)) - ASN__ENCODE_FAILED; - buf += mayEncode; - } - - ASN__ENCODED_OK(er); -} - -#endif /* ASN_DISABLE_PER_SUPPORT */ - -static intmax_t -asn__integer_convert(const uint8_t *b, const uint8_t *end) { - uintmax_t value; - - /* Perform the sign initialization */ - /* Actually value = -(*b >> 7); gains nothing, yet unreadable! */ - if((*b >> 7)) { - value = (uintmax_t)(-1); - } else { - value = 0; - } - - /* Conversion engine */ - for(; b < end; b++) { - value = (value << 8) | *b; - } - - return value; -} - -int -asn_INTEGER2imax(const INTEGER_t *iptr, intmax_t *lptr) { - uint8_t *b, *end; - size_t size; - - /* Sanity checking */ - if(!iptr || !iptr->buf || !lptr) { - errno = EINVAL; - return -1; - } - - /* Cache the begin/end of the buffer */ - b = iptr->buf; /* Start of the INTEGER buffer */ - size = iptr->size; - end = b + size; /* Where to stop */ - - if(size > sizeof(intmax_t)) { - uint8_t *end1 = end - 1; - /* - * Slightly more advanced processing, - * able to process INTEGERs with >sizeof(intmax_t) bytes - * when the actual value is small, e.g. for intmax_t == int32_t - * (0x0000000000abcdef INTEGER would yield a fine 0x00abcdef int32_t) - */ - /* Skip out the insignificant leading bytes */ - for(; b < end1; b++) { - switch(*b) { - case 0x00: if((b[1] & 0x80) == 0) continue; break; - case 0xff: if((b[1] & 0x80) != 0) continue; break; - } - break; - } - - size = end - b; - if(size > sizeof(intmax_t)) { - /* Still cannot fit the sizeof(intmax_t) */ - errno = ERANGE; - return -1; - } - } - - /* Shortcut processing of a corner case */ - if(end == b) { - *lptr = 0; - return 0; - } - - *lptr = asn__integer_convert(b, end); - return 0; -} - -/* FIXME: negative INTEGER values are silently interpreted as large unsigned ones. */ -int -asn_INTEGER2umax(const INTEGER_t *iptr, uintmax_t *lptr) { - uint8_t *b, *end; - uintmax_t value; - size_t size; - - if(!iptr || !iptr->buf || !lptr) { - errno = EINVAL; - return -1; - } - - b = iptr->buf; - size = iptr->size; - end = b + size; - - /* If all extra leading bytes are zeroes, ignore them */ - for(; size > sizeof(value); b++, size--) { - if(*b) { - /* Value won't fit into uintmax_t */ - errno = ERANGE; - return -1; - } - } - - /* Conversion engine */ - for(value = 0; b < end; b++) - value = (value << 8) | *b; - - *lptr = value; - return 0; -} - -int -asn_umax2INTEGER(INTEGER_t *st, uintmax_t value) { - uint8_t *buf; - uint8_t *end; - uint8_t *b; - int shr; - - if(value <= ((~(uintmax_t)0) >> 1)) { - return asn_imax2INTEGER(st, value); - } - - buf = (uint8_t *)MALLOC(1 + sizeof(value)); - if(!buf) return -1; - - end = buf + (sizeof(value) + 1); - buf[0] = 0; /* INTEGERs are signed. 0-byte indicates positive. */ - for(b = buf + 1, shr = (sizeof(value) - 1) * 8; b < end; shr -= 8, b++) - *b = (uint8_t)(value >> shr); - - if(st->buf) FREEMEM(st->buf); - st->buf = buf; - st->size = 1 + sizeof(value); - - return 0; -} - -int -asn_imax2INTEGER(INTEGER_t *st, intmax_t value) { - uint8_t *buf, *bp; - uint8_t *p; - uint8_t *pstart; - uint8_t *pend1; - int littleEndian = 1; /* Run-time detection */ - int add; - - if(!st) { - errno = EINVAL; - return -1; - } - - buf = (uint8_t *)(long *)MALLOC(sizeof(value)); - if(!buf) return -1; - - if(*(char *)&littleEndian) { - pstart = (uint8_t *)&value + sizeof(value) - 1; - pend1 = (uint8_t *)&value; - add = -1; - } else { - pstart = (uint8_t *)&value; - pend1 = pstart + sizeof(value) - 1; - add = 1; - } - - /* - * If the contents octet consists of more than one octet, - * then bits of the first octet and bit 8 of the second octet: - * a) shall not all be ones; and - * b) shall not all be zero. - */ - for(p = pstart; p != pend1; p += add) { - switch(*p) { - case 0x00: if((*(p+add) & 0x80) == 0) - continue; - break; - case 0xff: if((*(p+add) & 0x80)) - continue; - break; - } - break; - } - /* Copy the integer body */ - for(bp = buf, pend1 += add; p != pend1; p += add) - *bp++ = *p; - - if(st->buf) FREEMEM(st->buf); - st->buf = buf; - st->size = bp - buf; - - return 0; -} - -int -asn_INTEGER2long(const INTEGER_t *iptr, long *l) { - intmax_t v; - if(asn_INTEGER2imax(iptr, &v) == 0) { - if(v < LONG_MIN || v > LONG_MAX) { - errno = ERANGE; - return -1; - } - *l = v; - return 0; - } else { - return -1; - } -} - -int -asn_INTEGER2ulong(const INTEGER_t *iptr, unsigned long *l) { - uintmax_t v; - if(asn_INTEGER2umax(iptr, &v) == 0) { - if(v > ULONG_MAX) { - errno = ERANGE; - return -1; - } - *l = v; - return 0; - } else { - return -1; - } -} - -int -asn_long2INTEGER(INTEGER_t *st, long value) { - return asn_imax2INTEGER(st, value); -} - -int -asn_ulong2INTEGER(INTEGER_t *st, unsigned long value) { - return asn_imax2INTEGER(st, value); -} - - -int -asn_uint642INTEGER(INTEGER_t *st, uint64_t value) { - uint8_t *buf; - uint8_t *end; - uint8_t *b; - int shr; - - if(value <= INT64_MAX) - return asn_int642INTEGER(st, value); - - buf = (uint8_t *)MALLOC(1 + sizeof(value)); - if(!buf) return -1; - - end = buf + (sizeof(value) + 1); - buf[0] = 0; - for(b = buf + 1, shr = (sizeof(value)-1)*8; b < end; shr -= 8, b++) - *b = (uint8_t)(value >> shr); - - if(st->buf) FREEMEM(st->buf); - st->buf = buf; - st->size = 1 + sizeof(value); - - return 0; -} - -int -asn_int642INTEGER(INTEGER_t *st, int64_t value) { - uint8_t *buf, *bp; - uint8_t *p; - uint8_t *pstart; - uint8_t *pend1; - int littleEndian = 1; /* Run-time detection */ - int add; - - if(!st) { - errno = EINVAL; - return -1; - } - - buf = (uint8_t *)MALLOC(sizeof(value)); - if(!buf) return -1; - - if(*(char *)&littleEndian) { - pstart = (uint8_t *)&value + sizeof(value) - 1; - pend1 = (uint8_t *)&value; - add = -1; - } else { - pstart = (uint8_t *)&value; - pend1 = pstart + sizeof(value) - 1; - add = 1; - } - - /* - * If the contents octet consists of more than one octet, - * then bits of the first octet and bit 8 of the second octet: - * a) shall not all be ones; and - * b) shall not all be zero. - */ - for(p = pstart; p != pend1; p += add) { - switch(*p) { - case 0x00: if((*(p+add) & 0x80) == 0) - continue; - break; - case 0xff: if((*(p+add) & 0x80)) - continue; - break; - } - break; - } - /* Copy the integer body */ - for(pstart = p, bp = buf, pend1 += add; p != pend1; p += add) - *bp++ = *p; - - if(st->buf) FREEMEM(st->buf); - st->buf = buf; - st->size = bp - buf; - - return 0; -} - -/* - * Parse the number in the given string until the given *end position, - * returning the position after the last parsed character back using the - * same (*end) pointer. - * WARNING: This behavior is different from the standard strtol/strtoimax(3). - */ -enum asn_strtox_result_e -asn_strtoimax_lim(const char *str, const char **end, intmax_t *intp) { - int sign = 1; - intmax_t value; - -#define ASN1_INTMAX_MAX ((~(uintmax_t)0) >> 1) - const intmax_t upper_boundary = ASN1_INTMAX_MAX / 10; - intmax_t last_digit_max = ASN1_INTMAX_MAX % 10; -#undef ASN1_INTMAX_MAX - - if(str >= *end) return ASN_STRTOX_ERROR_INVAL; - - switch(*str) { - case '-': - last_digit_max++; - sign = -1; - /* FALL THROUGH */ - case '+': - str++; - if(str >= *end) { - *end = str; - return ASN_STRTOX_EXPECT_MORE; - } - } - - for(value = 0; str < (*end); str++) { - switch(*str) { - case 0x30: case 0x31: case 0x32: case 0x33: case 0x34: - case 0x35: case 0x36: case 0x37: case 0x38: case 0x39: { - int d = *str - '0'; - if(value < upper_boundary) { - value = value * 10 + d; - } else if(value == upper_boundary) { - if(d <= last_digit_max) { - if(sign > 0) { - value = value * 10 + d; - } else { - sign = 1; - value = -value * 10 - d; - } - } else { - *end = str; - return ASN_STRTOX_ERROR_RANGE; - } - } else { - *end = str; - return ASN_STRTOX_ERROR_RANGE; - } - } - continue; - default: - *end = str; - *intp = sign * value; - return ASN_STRTOX_EXTRA_DATA; - } - } - - *end = str; - *intp = sign * value; - return ASN_STRTOX_OK; -} - -/* - * Parse the number in the given string until the given *end position, - * returning the position after the last parsed character back using the - * same (*end) pointer. - * WARNING: This behavior is different from the standard strtoul/strtoumax(3). - */ -enum asn_strtox_result_e -asn_strtoumax_lim(const char *str, const char **end, uintmax_t *uintp) { - uintmax_t value; - -#define ASN1_UINTMAX_MAX ((~(uintmax_t)0)) - const uintmax_t upper_boundary = ASN1_UINTMAX_MAX / 10; - uintmax_t last_digit_max = ASN1_UINTMAX_MAX % 10; -#undef ASN1_UINTMAX_MAX - - if(str >= *end) return ASN_STRTOX_ERROR_INVAL; - - switch(*str) { - case '-': - return ASN_STRTOX_ERROR_INVAL; - case '+': - str++; - if(str >= *end) { - *end = str; - return ASN_STRTOX_EXPECT_MORE; - } - } - - for(value = 0; str < (*end); str++) { - switch(*str) { - case 0x30: case 0x31: case 0x32: case 0x33: case 0x34: - case 0x35: case 0x36: case 0x37: case 0x38: case 0x39: { - unsigned int d = *str - '0'; - if(value < upper_boundary) { - value = value * 10 + d; - } else if(value == upper_boundary) { - if(d <= last_digit_max) { - value = value * 10 + d; - } else { - *end = str; - return ASN_STRTOX_ERROR_RANGE; - } - } else { - *end = str; - return ASN_STRTOX_ERROR_RANGE; - } - } - continue; - default: - *end = str; - *uintp = value; - return ASN_STRTOX_EXTRA_DATA; - } - } - - *end = str; - *uintp = value; - return ASN_STRTOX_OK; -} - -enum asn_strtox_result_e -asn_strtol_lim(const char *str, const char **end, long *lp) { - intmax_t value; - switch(asn_strtoimax_lim(str, end, &value)) { - case ASN_STRTOX_ERROR_RANGE: - return ASN_STRTOX_ERROR_RANGE; - case ASN_STRTOX_ERROR_INVAL: - return ASN_STRTOX_ERROR_INVAL; - case ASN_STRTOX_EXPECT_MORE: - return ASN_STRTOX_EXPECT_MORE; - case ASN_STRTOX_OK: - if(value >= LONG_MIN && value <= LONG_MAX) { - *lp = value; - return ASN_STRTOX_OK; - } else { - return ASN_STRTOX_ERROR_RANGE; - } - case ASN_STRTOX_EXTRA_DATA: - if(value >= LONG_MIN && value <= LONG_MAX) { - *lp = value; - return ASN_STRTOX_EXTRA_DATA; - } else { - return ASN_STRTOX_ERROR_RANGE; - } - } - - assert(!"Unreachable"); - return ASN_STRTOX_ERROR_INVAL; -} - -enum asn_strtox_result_e -asn_strtoul_lim(const char *str, const char **end, unsigned long *ulp) { - uintmax_t value; - switch(asn_strtoumax_lim(str, end, &value)) { - case ASN_STRTOX_ERROR_RANGE: - return ASN_STRTOX_ERROR_RANGE; - case ASN_STRTOX_ERROR_INVAL: - return ASN_STRTOX_ERROR_INVAL; - case ASN_STRTOX_EXPECT_MORE: - return ASN_STRTOX_EXPECT_MORE; - case ASN_STRTOX_OK: - if(value <= ULONG_MAX) { - *ulp = value; - return ASN_STRTOX_OK; - } else { - return ASN_STRTOX_ERROR_RANGE; - } - case ASN_STRTOX_EXTRA_DATA: - if(value <= ULONG_MAX) { - *ulp = value; - return ASN_STRTOX_EXTRA_DATA; - } else { - return ASN_STRTOX_ERROR_RANGE; - } - } - - assert(!"Unreachable"); - return ASN_STRTOX_ERROR_INVAL; -} - -int -INTEGER_compare(const asn_TYPE_descriptor_t *td, const void *aptr, - const void *bptr) { - const INTEGER_t *a = aptr; - const INTEGER_t *b = bptr; - - (void)td; - - if(a && b) { - if(a->size && b->size) { - int sign_a = (a->buf[0] & 0x80) ? -1 : 1; - int sign_b = (b->buf[0] & 0x80) ? -1 : 1; - - if(sign_a < sign_b) return -1; - if(sign_a > sign_b) return 1; - - /* The shortest integer wins, unless comparing negatives */ - if(a->size < b->size) { - return -1 * sign_a; - } else if(a->size > b->size) { - return 1 * sign_b; - } - - return sign_a * memcmp(a->buf, b->buf, a->size); - } else if(a->size) { - int sign = (a->buf[0] & 0x80) ? -1 : 1; - return (1) * sign; - } else if(b->size) { - int sign = (a->buf[0] & 0x80) ? -1 : 1; - return (-1) * sign; - } else { - return 0; - } - } else if(!a && !b) { - return 0; - } else if(!a) { - return -1; - } else { - return 1; - } - -} - -asn_random_fill_result_t -INTEGER_random_fill(const asn_TYPE_descriptor_t *td, void **sptr, - const asn_encoding_constraints_t *constraints, - size_t max_length) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - asn_random_fill_result_t result_ok = {ARFILL_OK, 1}; - asn_random_fill_result_t result_failed = {ARFILL_FAILED, 0}; - asn_random_fill_result_t result_skipped = {ARFILL_SKIPPED, 0}; - INTEGER_t *st = *sptr; - const asn_INTEGER_enum_map_t *emap; - size_t emap_len; - intmax_t value; - int find_inside_map; - - if(max_length == 0) return result_skipped; - - if(st == NULL) { - st = (INTEGER_t *)CALLOC(1, sizeof(*st)); - if(st == NULL) { - return result_failed; - } - } - - if(specs) { - emap = specs->value2enum; - emap_len = specs->map_count; - if(specs->strict_enumeration) { - find_inside_map = emap_len > 0; - } else { - find_inside_map = emap_len ? asn_random_between(0, 1) : 0; - } - } else { - emap = 0; - emap_len = 0; - find_inside_map = 0; - } - - if(find_inside_map) { - assert(emap_len > 0); - value = emap[asn_random_between(0, emap_len - 1)].nat_value; - } else { - const asn_per_constraints_t *ct; - - static const long variants[] = { - -65536, -65535, -65534, -32769, -32768, -32767, -16385, -16384, - -16383, -257, -256, -255, -254, -129, -128, -127, - -126, -1, 0, 1, 126, 127, 128, 129, - 254, 255, 256, 257, 16383, 16384, 16385, 32767, - 32768, 32769, 65534, 65535, 65536, 65537}; - if(specs && specs->field_unsigned) { - assert(variants[18] == 0); - value = variants[asn_random_between( - 18, sizeof(variants) / sizeof(variants[0]) - 1)]; - } else { - value = variants[asn_random_between( - 0, sizeof(variants) / sizeof(variants[0]) - 1)]; - } - - if(!constraints) constraints = &td->encoding_constraints; - ct = constraints ? constraints->per_constraints : 0; - if(ct && (ct->value.flags & APC_CONSTRAINED)) { - if(value < ct->value.lower_bound || value > ct->value.upper_bound) { - value = asn_random_between(ct->value.lower_bound, - ct->value.upper_bound); - } - } - } - - if(asn_imax2INTEGER(st, value)) { - if(st == *sptr) { - ASN_STRUCT_RESET(*td, st); - } else { - ASN_STRUCT_FREE(*td, st); - } - return result_failed; - } else { - *sptr = st; - result_ok.length = st->size; - return result_ok; - } -} diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/INTEGER.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/INTEGER.h deleted file mode 100644 index f776c07..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/INTEGER.h +++ /dev/null @@ -1,108 +0,0 @@ -/*- - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef _INTEGER_H_ -#define _INTEGER_H_ - -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -typedef ASN__PRIMITIVE_TYPE_t INTEGER_t; - -extern asn_TYPE_descriptor_t asn_DEF_INTEGER; -extern asn_TYPE_operation_t asn_OP_INTEGER; - -/* Map with to integer value association */ -typedef struct asn_INTEGER_enum_map_s { - long nat_value; /* associated native integer value */ - size_t enum_len; /* strlen("tag") */ - const char *enum_name; /* "tag" */ -} asn_INTEGER_enum_map_t; - -/* This type describes an enumeration for INTEGER and ENUMERATED types */ -typedef struct asn_INTEGER_specifics_s { - const asn_INTEGER_enum_map_t *value2enum; /* N -> "tag"; sorted by N */ - const unsigned int *enum2value; /* "tag" => N; sorted by tag */ - int map_count; /* Elements in either map */ - int extension; /* This map is extensible */ - int strict_enumeration; /* Enumeration set is fixed */ - int field_width; /* Size of native integer */ - int field_unsigned; /* Signed=0, unsigned=1 */ -} asn_INTEGER_specifics_t; - -#define INTEGER_free ASN__PRIMITIVE_TYPE_free -#define INTEGER_decode_ber ber_decode_primitive -#define INTEGER_constraint asn_generic_no_constraint -asn_struct_print_f INTEGER_print; -asn_struct_compare_f INTEGER_compare; -der_type_encoder_f INTEGER_encode_der; -xer_type_decoder_f INTEGER_decode_xer; -xer_type_encoder_f INTEGER_encode_xer; -oer_type_decoder_f INTEGER_decode_oer; -oer_type_encoder_f INTEGER_encode_oer; -per_type_decoder_f INTEGER_decode_uper; -per_type_encoder_f INTEGER_encode_uper; -per_type_decoder_f INTEGER_decode_aper; -per_type_encoder_f INTEGER_encode_aper; -asn_random_fill_f INTEGER_random_fill; - -/*********************************** - * Some handy conversion routines. * - ***********************************/ - -/* - * Natiwe size-independent conversion of native integers to/from INTEGER. - * (l_size) is in bytes. - * Returns 0 if it was possible to convert, -1 otherwise. - * -1/EINVAL: Mandatory argument missing - * -1/ERANGE: Value encoded is out of range for long representation - * -1/ENOMEM: Memory allocation failed (in asn_*2INTEGER()). - */ -int asn_INTEGER2imax(const INTEGER_t *i, intmax_t *l); -int asn_INTEGER2umax(const INTEGER_t *i, uintmax_t *l); -int asn_imax2INTEGER(INTEGER_t *i, intmax_t l); -int asn_umax2INTEGER(INTEGER_t *i, uintmax_t l); - -/* - * Size-specific conversion helpers. - */ -int asn_INTEGER2long(const INTEGER_t *i, long *l); -int asn_INTEGER2ulong(const INTEGER_t *i, unsigned long *l); -int asn_long2INTEGER(INTEGER_t *i, long l); -int asn_ulong2INTEGER(INTEGER_t *i, unsigned long l); -int asn_int642INTEGER(INTEGER_t *i, int64_t l); -int asn_uint642INTEGER(INTEGER_t *i, uint64_t l); - -/* A version of strtol/strtoimax(3) with nicer error reporting. */ -enum asn_strtox_result_e { - ASN_STRTOX_ERROR_RANGE = -3, /* Input outside of supported numeric range */ - ASN_STRTOX_ERROR_INVAL = -2, /* Invalid data encountered (e.g., "+-") */ - ASN_STRTOX_EXPECT_MORE = -1, /* More data expected (e.g. "+") */ - ASN_STRTOX_OK = 0, /* Conversion succeded, number ends at (*end) */ - ASN_STRTOX_EXTRA_DATA = 1 /* Conversion succeded, but the string has extra stuff */ -}; -enum asn_strtox_result_e asn_strtol_lim(const char *str, const char **end, - long *l); -enum asn_strtox_result_e asn_strtoul_lim(const char *str, const char **end, - unsigned long *l); -enum asn_strtox_result_e asn_strtoimax_lim(const char *str, const char **end, - intmax_t *l); -enum asn_strtox_result_e asn_strtoumax_lim(const char *str, const char **end, - uintmax_t *l); - -/* - * Convert the integer value into the corresponding enumeration map entry. - */ -const asn_INTEGER_enum_map_t *INTEGER_map_value2enum( - const asn_INTEGER_specifics_t *specs, long value); - -#ifdef __cplusplus -} -#endif - -#endif /* _INTEGER_H_ */ diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/INTEGER_oer.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/INTEGER_oer.c deleted file mode 100644 index 110689b..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/INTEGER_oer.c +++ /dev/null @@ -1,179 +0,0 @@ -/* - * Copyright (c) 2017 Lev Walkin . - * All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef ASN_DISABLE_OER_SUPPORT - -#include -#include -#include - -asn_dec_rval_t -INTEGER_decode_oer(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_oer_constraints_t *constraints, void **sptr, - const void *ptr, size_t size) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - asn_dec_rval_t rval = {RC_OK, 0}; - INTEGER_t *st = (INTEGER_t *)*sptr; - struct asn_oer_constraint_number_s ct = {0, 0}; - size_t req_bytes; - - (void)opt_codec_ctx; - (void)specs; - - if(!st) { - st = (INTEGER_t *)(*sptr = CALLOC(1, sizeof(*st))); - if(!st) ASN__DECODE_FAILED; - } - - FREEMEM(st->buf); - st->buf = 0; - st->size = 0; - - if(!constraints) constraints = td->encoding_constraints.oer_constraints; - if(constraints) ct = constraints->value; - - if(ct.width) { - req_bytes = ct.width; - } else { - /* No lower bound and no upper bound, effectively */ - - ssize_t consumed = oer_fetch_length(ptr, size, &req_bytes); - if(consumed == 0) { - ASN__DECODE_STARVED; - } else if(consumed == -1) { - ASN__DECODE_FAILED; - } - rval.consumed += consumed; - ptr = (const char *)ptr + consumed; - size -= consumed; - } - - if(req_bytes > size) { - ASN__DECODE_STARVED; - } - - if(ct.positive) { - /* X.969 08/2015 10.2(a) */ - unsigned msb; /* Most significant bit */ - size_t useful_size; - - /* Check most significant bit */ - msb = *(const uint8_t *)ptr >> 7; /* yields 0 or 1 */ - useful_size = msb + req_bytes; - st->buf = (uint8_t *)MALLOC(useful_size + 1); - if(!st->buf) { - ASN__DECODE_FAILED; - } - - /* - * Record a large unsigned in a way not to confuse it - * with signed value. - */ - st->buf[0] = '\0'; - memcpy(st->buf + msb, ptr, req_bytes); - st->buf[useful_size] = '\0'; /* Just in case, 0-terminate */ - st->size = useful_size; - - rval.consumed += req_bytes; - return rval; - } else { - /* X.969 08/2015 10.2(b) */ - st->buf = (uint8_t *)MALLOC(req_bytes + 1); - if(!st->buf) { - ASN__DECODE_FAILED; - } - - memcpy(st->buf, ptr, req_bytes); - st->buf[req_bytes] = '\0'; /* Just in case, 0-terminate */ - st->size = req_bytes; - - rval.consumed += req_bytes; - return rval; - } -} - -/* - * Encode as Canonical OER. - */ -asn_enc_rval_t -INTEGER_encode_oer(const asn_TYPE_descriptor_t *td, - const asn_oer_constraints_t *constraints, const void *sptr, - asn_app_consume_bytes_f *cb, void *app_key) { - const INTEGER_t *st = sptr; - asn_enc_rval_t er = {0,0,0}; - struct asn_oer_constraint_number_s ct = {0, 0}; - const uint8_t *buf; - const uint8_t *end; - size_t useful_bytes; - size_t req_bytes = 0; - int sign = 0; - - if(!st || st->size == 0) ASN__ENCODE_FAILED; - - if(!constraints) constraints = td->encoding_constraints.oer_constraints; - if(constraints) ct = constraints->value; - - er.encoded = 0; - - buf = st->buf; - end = buf + st->size; - - sign = (buf && buf < end) ? buf[0] & 0x80 : 0; - - /* Ignore 9 leading zeroes or ones */ - if(ct.positive) { - if(sign) { - /* The value given is a signed value. Can't proceed. */ - ASN__ENCODE_FAILED; - } - /* Remove leading zeros. */ - for(; buf + 1 < end; buf++) { - if(buf[0] != 0x0) break; - } - } else { - for(; buf + 1 < end; buf++) { - if(buf[0] == 0x0 && (buf[1] & 0x80) == 0) { - continue; - } else if(buf[0] == 0xff && (buf[1] & 0x80) != 0) { - continue; - } - break; - } - } - - useful_bytes = end - buf; - if(ct.width) { - req_bytes = ct.width; - } else { - ssize_t r = oer_serialize_length(useful_bytes, cb, app_key); - if(r < 0) { - ASN__ENCODE_FAILED; - } - er.encoded += r; - req_bytes = useful_bytes; - } - - if(req_bytes < useful_bytes) { - ASN__ENCODE_FAILED; - } - - er.encoded += req_bytes; - - for(; req_bytes > useful_bytes; req_bytes--) { - if(cb(sign?"\xff":"\0", 1, app_key) < 0) { - ASN__ENCODE_FAILED; - } - } - - if(cb(buf, useful_bytes, app_key) < 0) { - ASN__ENCODE_FAILED; - } - - ASN__ENCODED_OK(er); -} - -#endif /* ASN_DISABLE_OER_SUPPORT */ diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/InitiatingMessage.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/InitiatingMessage.c deleted file mode 100644 index de67caf..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/InitiatingMessage.c +++ /dev/null @@ -1,389 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Descriptions" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "InitiatingMessage.h" - -static const long asn_VAL_1_id_RICsubscription = 8; -static const long asn_VAL_1_reject = 0; -static const long asn_VAL_2_id_RICsubscriptionDelete = 9; -static const long asn_VAL_2_reject = 0; -static const long asn_VAL_3_id_RICserviceUpdate = 7; -static const long asn_VAL_3_reject = 0; -static const long asn_VAL_4_id_RICcontrol = 4; -static const long asn_VAL_4_reject = 0; -static const long asn_VAL_5_id_E2setup = 1; -static const long asn_VAL_5_reject = 0; -static const long asn_VAL_6_id_Reset = 3; -static const long asn_VAL_6_reject = 0; -static const long asn_VAL_7_id_RICindication = 5; -static const long asn_VAL_7_ignore = 1; -static const long asn_VAL_8_id_RICserviceQuery = 6; -static const long asn_VAL_8_ignore = 1; -static const long asn_VAL_9_id_ErrorIndication = 2; -static const long asn_VAL_9_ignore = 1; -static const asn_ioc_cell_t asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1_rows[] = { - { "&InitiatingMessage", aioc__type, &asn_DEF_RICsubscriptionRequest }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionResponse }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_1_id_RICsubscription }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_1_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_RICsubscriptionDeleteRequest }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionDeleteResponse }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionDeleteFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_2_id_RICsubscriptionDelete }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_2_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_RICserviceUpdate }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_RICserviceUpdateAcknowledge }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RICserviceUpdateFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_3_id_RICserviceUpdate }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_3_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_RICcontrolRequest }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_RICcontrolAcknowledge }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RICcontrolFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_4_id_RICcontrol }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_4_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_E2setupRequest }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_E2setupResponse }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_E2setupFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_5_id_E2setup }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_5_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_ResetRequest }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_ResetResponse }, - { "&UnsuccessfulOutcome", }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_6_id_Reset }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_6_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_RICindication }, - { "&SuccessfulOutcome", }, - { "&UnsuccessfulOutcome", }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_7_id_RICindication }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_7_ignore }, - { "&InitiatingMessage", aioc__type, &asn_DEF_RICserviceQuery }, - { "&SuccessfulOutcome", }, - { "&UnsuccessfulOutcome", }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_8_id_RICserviceQuery }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_8_ignore }, - { "&InitiatingMessage", aioc__type, &asn_DEF_ErrorIndication }, - { "&SuccessfulOutcome", }, - { "&UnsuccessfulOutcome", }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_9_id_ErrorIndication }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_9_ignore } -}; -static const asn_ioc_set_t asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1[] = { - { 9, 5, asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1_rows } -}; -static int -memb_procedureCode_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 255)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_InitiatingMessage_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1; - size_t constraining_column = 3; /* &procedureCode */ - size_t for_column = 4; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct InitiatingMessage, procedureCode)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_InitiatingMessage_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1; - size_t constraining_column = 3; /* &procedureCode */ - size_t for_column = 0; /* &InitiatingMessage */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct InitiatingMessage, procedureCode)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_per_constraints_t asn_PER_memb_procedureCode_constr_2 CC_NOTUSED = { - { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_3 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_4 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_value_4[] = { - { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.RICsubscriptionRequest), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICsubscriptionRequest, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICsubscriptionRequest" - }, - { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.RICsubscriptionDeleteRequest), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICsubscriptionDeleteRequest, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICsubscriptionDeleteRequest" - }, - { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.RICserviceUpdate), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICserviceUpdate, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICserviceUpdate" - }, - { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.RICcontrolRequest), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICcontrolRequest, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICcontrolRequest" - }, - { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.E2setupRequest), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E2setupRequest, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "E2setupRequest" - }, - { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.ResetRequest), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ResetRequest, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ResetRequest" - }, - { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.RICindication), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICindication, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICindication" - }, - { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.RICserviceQuery), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICserviceQuery, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICserviceQuery" - }, - { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.ErrorIndication), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ErrorIndication, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ErrorIndication" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_4[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 8 }, /* RICsubscriptionRequest */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 7 }, /* RICsubscriptionDeleteRequest */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -2, 6 }, /* RICserviceUpdate */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -3, 5 }, /* RICcontrolRequest */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, -4, 4 }, /* E2setupRequest */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 5, -5, 3 }, /* ResetRequest */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 6, -6, 2 }, /* RICindication */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 7, -7, 1 }, /* RICserviceQuery */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 8, -8, 0 } /* ErrorIndication */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_4 = { - sizeof(struct InitiatingMessage__value), - offsetof(struct InitiatingMessage__value, _asn_ctx), - offsetof(struct InitiatingMessage__value, present), - sizeof(((struct InitiatingMessage__value *)0)->present), - asn_MAP_value_tag2el_4, - 9, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_4 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_4, - 9, /* Elements count */ - &asn_SPC_value_specs_4 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_InitiatingMessage_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage, procedureCode), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProcedureCode, - 0, - { 0, &asn_PER_memb_procedureCode_constr_2, memb_procedureCode_constraint_1 }, - 0, 0, /* No default value */ - "procedureCode" - }, - { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_InitiatingMessage_criticality_type, - { 0, &asn_PER_memb_criticality_constr_3, memb_criticality_constraint_1 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_4, - select_InitiatingMessage_value_type, - { 0, &asn_PER_memb_value_constr_4, memb_value_constraint_1 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_InitiatingMessage_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_InitiatingMessage_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* procedureCode */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_InitiatingMessage_specs_1 = { - sizeof(struct InitiatingMessage), - offsetof(struct InitiatingMessage, _asn_ctx), - asn_MAP_InitiatingMessage_tag2el_1, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_InitiatingMessage = { - "InitiatingMessage", - "InitiatingMessage", - &asn_OP_SEQUENCE, - asn_DEF_InitiatingMessage_tags_1, - sizeof(asn_DEF_InitiatingMessage_tags_1) - /sizeof(asn_DEF_InitiatingMessage_tags_1[0]), /* 1 */ - asn_DEF_InitiatingMessage_tags_1, /* Same as above */ - sizeof(asn_DEF_InitiatingMessage_tags_1) - /sizeof(asn_DEF_InitiatingMessage_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_InitiatingMessage_1, - 3, /* Elements count */ - &asn_SPC_InitiatingMessage_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/InitiatingMessage.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/InitiatingMessage.h deleted file mode 100644 index a8a01f6..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/InitiatingMessage.h +++ /dev/null @@ -1,97 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Descriptions" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _InitiatingMessage_H_ -#define _InitiatingMessage_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProcedureCode.h" -#include "Criticality.h" -#include "ANY.h" -#include "asn_ioc.h" -#include "RICsubscriptionRequest.h" -#include "RICsubscriptionResponse.h" -#include "RICsubscriptionFailure.h" -#include "RICsubscriptionDeleteRequest.h" -#include "RICsubscriptionDeleteResponse.h" -#include "RICsubscriptionDeleteFailure.h" -#include "RICserviceUpdate.h" -#include "RICserviceUpdateAcknowledge.h" -#include "RICserviceUpdateFailure.h" -#include "RICcontrolRequest.h" -#include "RICcontrolAcknowledge.h" -#include "RICcontrolFailure.h" -#include "E2setupRequest.h" -#include "E2setupResponse.h" -#include "E2setupFailure.h" -#include "ResetRequest.h" -#include "ResetResponse.h" -#include "RICindication.h" -#include "RICserviceQuery.h" -#include "ErrorIndication.h" -#include "OPEN_TYPE.h" -#include "constr_CHOICE.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum InitiatingMessage__value_PR { - InitiatingMessage__value_PR_NOTHING, /* No components present */ - InitiatingMessage__value_PR_RICsubscriptionRequest, - InitiatingMessage__value_PR_RICsubscriptionDeleteRequest, - InitiatingMessage__value_PR_RICserviceUpdate, - InitiatingMessage__value_PR_RICcontrolRequest, - InitiatingMessage__value_PR_E2setupRequest, - InitiatingMessage__value_PR_ResetRequest, - InitiatingMessage__value_PR_RICindication, - InitiatingMessage__value_PR_RICserviceQuery, - InitiatingMessage__value_PR_ErrorIndication -} InitiatingMessage__value_PR; - -/* InitiatingMessage */ -typedef struct InitiatingMessage { - ProcedureCode_t procedureCode; - Criticality_t criticality; - struct InitiatingMessage__value { - InitiatingMessage__value_PR present; - union InitiatingMessage__value_u { - RICsubscriptionRequest_t RICsubscriptionRequest; - RICsubscriptionDeleteRequest_t RICsubscriptionDeleteRequest; - RICserviceUpdate_t RICserviceUpdate; - RICcontrolRequest_t RICcontrolRequest; - E2setupRequest_t E2setupRequest; - ResetRequest_t ResetRequest; - RICindication_t RICindication; - RICserviceQuery_t RICserviceQuery; - ErrorIndication_t ErrorIndication; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} InitiatingMessage_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_InitiatingMessage; -extern asn_SEQUENCE_specifics_t asn_SPC_InitiatingMessage_specs_1; -extern asn_TYPE_member_t asn_MBR_InitiatingMessage_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _InitiatingMessage_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/Makefile.am.asn1convert b/e2sim/previous/e2apv1sim/e2sim/ASN1c/Makefile.am.asn1convert deleted file mode 100644 index c1bec19..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/Makefile.am.asn1convert +++ /dev/null @@ -1,14 +0,0 @@ -include Makefile.am.libasncodec - -bin_PROGRAMS += asn1convert -asn1convert_CFLAGS = $(ASN_MODULE_CFLAGS) -DASN_PDU_COLLECTION -asn1convert_CPPFLAGS = -I$(top_srcdir)/ -asn1convert_LDADD = libasncodec.la -asn1convert_SOURCES = \ - converter-example.c\ - pdu_collection.c -regen: regenerate-from-asn1-source - -regenerate-from-asn1-source: - asn1c -fcompound-names /home/rshacham/e2sm-kpm-v01.02.asn - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/Makefile.am.libasncodec b/e2sim/previous/e2apv1sim/e2sim/ASN1c/Makefile.am.libasncodec deleted file mode 100644 index 8abd4f1..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/Makefile.am.libasncodec +++ /dev/null @@ -1,240 +0,0 @@ -ASN_MODULE_SRCS= \ - GlobalKPMnode-ID.c \ - GlobalKPMnode-gNB-ID.c \ - GlobalgNB-ID.c \ - GNB-CU-UP-ID.c \ - GNB-DU-ID.c \ - GNB-ID-Choice.c \ - GlobalKPMnode-en-gNB-ID.c \ - GlobalenGNB-ID.c \ - ENGNB-ID.c \ - GlobalKPMnode-ng-eNB-ID.c \ - GlobalngeNB-ID.c \ - ENB-ID-Choice.c \ - GlobalKPMnode-eNB-ID.c \ - GlobalENB-ID.c \ - ENB-ID.c \ - NRCGI.c \ - PLMN-Identity.c \ - NRCellIdentity.c \ - SNSSAI.c \ - C-RNTI.c \ - RIC-Style-Type.c \ - RIC-Style-Name.c \ - RIC-Format-Type.c \ - E2SM-KPM-EventTriggerDefinition.c \ - E2SM-KPM-EventTriggerDefinition-Format1.c \ - E2SM-KPM-ActionDefinition.c \ - E2SM-KPM-IndicationHeader.c \ - E2SM-KPM-IndicationHeader-Format1.c \ - E2SM-KPM-IndicationMessage.c \ - E2SM-KPM-IndicationMessage-Format1.c \ - PM-Containers-List.c \ - E2SM-KPM-RANfunction-Description.c \ - NI-Type.c \ - RAN-Container.c \ - Timestamp.c \ - Trigger-ConditionIE-Item.c \ - RT-Period-IE.c \ - RANcallProcess-ID-string.c \ - RANfunction-Name.c \ - RIC-EventTriggerStyle-List.c \ - RIC-ReportStyle-List.c \ - PF-Container.c \ - GNB-Name.c \ - GNB-CU-CP-Name.c \ - GNB-DU-Name.c \ - GNB-CU-UP-Name.c \ - UE-Report-Type.c \ - ODU-PF-Container.c \ - CellResourceReportListItem.c \ - ServedPlmnPerCellListItem.c \ - FGC-DU-PM-Container.c \ - SlicePerPlmnPerCellListItem.c \ - FQIPERSlicesPerPlmnPerCellListItem.c \ - EPC-DU-PM-Container.c \ - PerQCIReportListItem.c \ - DU-Usage-Report-Per-UE.c \ - DU-Usage-Report-CellResourceReportItem.c \ - DU-Usage-Report-UeResourceReportItem.c \ - OCUCP-PF-Container.c \ - CU-CP-Usage-Report-Per-UE.c \ - CU-CP-Usage-Report-CellResourceReportItem.c \ - CU-CP-Usage-Report-UeResourceReportItem.c \ - OCUUP-PF-Container.c \ - PF-ContainerListItem.c \ - CUUPMeasurement-Container.c \ - PlmnID-List.c \ - FGC-CUUP-PM-Format.c \ - SliceToReportListItem.c \ - FQIPERSlicesPerPlmnListItem.c \ - EPC-CUUP-PM-Format.c \ - PerQCIReportListItemFormat.c \ - CU-UP-Usage-Report-Per-UE.c \ - CU-UP-Usage-Report-CellResourceReportItem.c \ - CU-UP-Usage-Report-UeResourceReportItem.c - -ASN_MODULE_HDRS= \ - GlobalKPMnode-ID.h \ - GlobalKPMnode-gNB-ID.h \ - GlobalgNB-ID.h \ - GNB-CU-UP-ID.h \ - GNB-DU-ID.h \ - GNB-ID-Choice.h \ - GlobalKPMnode-en-gNB-ID.h \ - GlobalenGNB-ID.h \ - ENGNB-ID.h \ - GlobalKPMnode-ng-eNB-ID.h \ - GlobalngeNB-ID.h \ - ENB-ID-Choice.h \ - GlobalKPMnode-eNB-ID.h \ - GlobalENB-ID.h \ - ENB-ID.h \ - NRCGI.h \ - PLMN-Identity.h \ - NRCellIdentity.h \ - SNSSAI.h \ - C-RNTI.h \ - RIC-Style-Type.h \ - RIC-Style-Name.h \ - RIC-Format-Type.h \ - E2SM-KPM-EventTriggerDefinition.h \ - E2SM-KPM-EventTriggerDefinition-Format1.h \ - E2SM-KPM-ActionDefinition.h \ - E2SM-KPM-IndicationHeader.h \ - E2SM-KPM-IndicationHeader-Format1.h \ - E2SM-KPM-IndicationMessage.h \ - E2SM-KPM-IndicationMessage-Format1.h \ - PM-Containers-List.h \ - E2SM-KPM-RANfunction-Description.h \ - NI-Type.h \ - RAN-Container.h \ - Timestamp.h \ - Trigger-ConditionIE-Item.h \ - RT-Period-IE.h \ - RANcallProcess-ID-string.h \ - RANfunction-Name.h \ - RIC-EventTriggerStyle-List.h \ - RIC-ReportStyle-List.h \ - PF-Container.h \ - GNB-Name.h \ - GNB-CU-CP-Name.h \ - GNB-DU-Name.h \ - GNB-CU-UP-Name.h \ - UE-Report-Type.h \ - ODU-PF-Container.h \ - CellResourceReportListItem.h \ - ServedPlmnPerCellListItem.h \ - FGC-DU-PM-Container.h \ - SlicePerPlmnPerCellListItem.h \ - FQIPERSlicesPerPlmnPerCellListItem.h \ - EPC-DU-PM-Container.h \ - PerQCIReportListItem.h \ - DU-Usage-Report-Per-UE.h \ - DU-Usage-Report-CellResourceReportItem.h \ - DU-Usage-Report-UeResourceReportItem.h \ - OCUCP-PF-Container.h \ - CU-CP-Usage-Report-Per-UE.h \ - CU-CP-Usage-Report-CellResourceReportItem.h \ - CU-CP-Usage-Report-UeResourceReportItem.h \ - OCUUP-PF-Container.h \ - PF-ContainerListItem.h \ - CUUPMeasurement-Container.h \ - PlmnID-List.h \ - FGC-CUUP-PM-Format.h \ - SliceToReportListItem.h \ - FQIPERSlicesPerPlmnListItem.h \ - EPC-CUUP-PM-Format.h \ - PerQCIReportListItemFormat.h \ - CU-UP-Usage-Report-Per-UE.h \ - CU-UP-Usage-Report-CellResourceReportItem.h \ - CU-UP-Usage-Report-UeResourceReportItem.h - -ASN_MODULE_HDRS+=OPEN_TYPE.h -ASN_MODULE_SRCS+=OPEN_TYPE.c -ASN_MODULE_HDRS+=constr_CHOICE.h -ASN_MODULE_HDRS+=INTEGER.h -ASN_MODULE_SRCS+=INTEGER.c -ASN_MODULE_HDRS+=NativeEnumerated.h -ASN_MODULE_SRCS+=NativeEnumerated.c -ASN_MODULE_HDRS+=NativeInteger.h -ASN_MODULE_SRCS+=NativeInteger.c -ASN_MODULE_HDRS+=PrintableString.h -ASN_MODULE_SRCS+=PrintableString.c -ASN_MODULE_HDRS+=OCTET_STRING.h -ASN_MODULE_HDRS+=asn_SEQUENCE_OF.h -ASN_MODULE_SRCS+=asn_SEQUENCE_OF.c -ASN_MODULE_HDRS+=asn_SET_OF.h -ASN_MODULE_SRCS+=asn_SET_OF.c -ASN_MODULE_SRCS+=constr_CHOICE.c -ASN_MODULE_HDRS+=constr_SEQUENCE.h -ASN_MODULE_SRCS+=constr_SEQUENCE.c -ASN_MODULE_HDRS+=constr_SEQUENCE_OF.h -ASN_MODULE_SRCS+=constr_SEQUENCE_OF.c -ASN_MODULE_HDRS+=constr_SET_OF.h -ASN_MODULE_SRCS+=constr_SET_OF.c -ASN_MODULE_HDRS+=asn_application.h -ASN_MODULE_SRCS+=asn_application.c -ASN_MODULE_HDRS+=asn_ioc.h -ASN_MODULE_HDRS+=asn_system.h -ASN_MODULE_HDRS+=asn_codecs.h -ASN_MODULE_HDRS+=asn_internal.h -ASN_MODULE_SRCS+=asn_internal.c -ASN_MODULE_HDRS+=asn_random_fill.h -ASN_MODULE_SRCS+=asn_random_fill.c -ASN_MODULE_HDRS+=asn_bit_data.h -ASN_MODULE_SRCS+=asn_bit_data.c -ASN_MODULE_SRCS+=OCTET_STRING.c -ASN_MODULE_HDRS+=BIT_STRING.h -ASN_MODULE_SRCS+=BIT_STRING.c -ASN_MODULE_SRCS+=asn_codecs_prim.c -ASN_MODULE_HDRS+=asn_codecs_prim.h -ASN_MODULE_HDRS+=ber_tlv_length.h -ASN_MODULE_SRCS+=ber_tlv_length.c -ASN_MODULE_HDRS+=ber_tlv_tag.h -ASN_MODULE_SRCS+=ber_tlv_tag.c -ASN_MODULE_HDRS+=ber_decoder.h -ASN_MODULE_SRCS+=ber_decoder.c -ASN_MODULE_HDRS+=der_encoder.h -ASN_MODULE_SRCS+=der_encoder.c -ASN_MODULE_HDRS+=constr_TYPE.h -ASN_MODULE_SRCS+=constr_TYPE.c -ASN_MODULE_HDRS+=constraints.h -ASN_MODULE_SRCS+=constraints.c -ASN_MODULE_HDRS+=xer_support.h -ASN_MODULE_SRCS+=xer_support.c -ASN_MODULE_HDRS+=xer_decoder.h -ASN_MODULE_SRCS+=xer_decoder.c -ASN_MODULE_HDRS+=xer_encoder.h -ASN_MODULE_SRCS+=xer_encoder.c -ASN_MODULE_HDRS+=per_support.h -ASN_MODULE_SRCS+=per_support.c -ASN_MODULE_HDRS+=per_decoder.h -ASN_MODULE_SRCS+=per_decoder.c -ASN_MODULE_HDRS+=per_encoder.h -ASN_MODULE_SRCS+=per_encoder.c -ASN_MODULE_HDRS+=per_opentype.h -ASN_MODULE_SRCS+=per_opentype.c -ASN_MODULE_HDRS+=oer_decoder.h -ASN_MODULE_HDRS+=oer_encoder.h -ASN_MODULE_HDRS+=oer_support.h -ASN_MODULE_SRCS+=oer_decoder.c -ASN_MODULE_SRCS+=oer_encoder.c -ASN_MODULE_SRCS+=oer_support.c -ASN_MODULE_SRCS+=OPEN_TYPE_oer.c -ASN_MODULE_SRCS+=INTEGER_oer.c -ASN_MODULE_SRCS+=BIT_STRING_oer.c -ASN_MODULE_SRCS+=OCTET_STRING_oer.c -ASN_MODULE_SRCS+=NativeInteger_oer.c -ASN_MODULE_SRCS+=NativeEnumerated_oer.c -ASN_MODULE_SRCS+=constr_CHOICE_oer.c -ASN_MODULE_SRCS+=constr_SEQUENCE_oer.c -ASN_MODULE_SRCS+=constr_SET_OF_oer.c - -ASN_MODULE_CFLAGS= - -lib_LTLIBRARIES+=libasncodec.la -libasncodec_la_SOURCES=$(ASN_MODULE_SRCS) $(ASN_MODULE_HDRS) -libasncodec_la_CPPFLAGS=-I$(top_srcdir)/ -libasncodec_la_CFLAGS=$(ASN_MODULE_CFLAGS) -libasncodec_la_LDFLAGS=-lm diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/NI-Type.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/NI-Type.c deleted file mode 100644 index 1162fd8..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/NI-Type.c +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "NI-Type.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -static asn_oer_constraints_t asn_OER_type_NI_Type_constr_1 CC_NOTUSED = { - { 0, 0 }, - -1}; -asn_per_constraints_t asn_PER_type_NI_Type_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 2 } /* (0..2,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_NI_Type_value2enum_1[] = { - { 0, 4, "x2-u" }, - { 1, 4, "xn-u" }, - { 2, 4, "f1-u" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_NI_Type_enum2value_1[] = { - 2, /* f1-u(2) */ - 0, /* x2-u(0) */ - 1 /* xn-u(1) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_NI_Type_specs_1 = { - asn_MAP_NI_Type_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_NI_Type_enum2value_1, /* N => "tag"; sorted by N */ - 3, /* Number of elements in the maps */ - 4, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_NI_Type_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_NI_Type = { - "NI-Type", - "NI-Type", - &asn_OP_NativeEnumerated, - asn_DEF_NI_Type_tags_1, - sizeof(asn_DEF_NI_Type_tags_1) - /sizeof(asn_DEF_NI_Type_tags_1[0]), /* 1 */ - asn_DEF_NI_Type_tags_1, /* Same as above */ - sizeof(asn_DEF_NI_Type_tags_1) - /sizeof(asn_DEF_NI_Type_tags_1[0]), /* 1 */ - { &asn_OER_type_NI_Type_constr_1, &asn_PER_type_NI_Type_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_NI_Type_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/NI-Type.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/NI-Type.h deleted file mode 100644 index c696a44..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/NI-Type.h +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _NI_Type_H_ -#define _NI_Type_H_ - - -#include - -/* Including external dependencies */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum NI_Type { - NI_Type_x2_u = 0, - NI_Type_xn_u = 1, - NI_Type_f1_u = 2 - /* - * Enumeration is extensible - */ -} e_NI_Type; - -/* NI-Type */ -typedef long NI_Type_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_NI_Type_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_NI_Type; -extern const asn_INTEGER_specifics_t asn_SPC_NI_Type_specs_1; -asn_struct_free_f NI_Type_free; -asn_struct_print_f NI_Type_print; -asn_constr_check_f NI_Type_constraint; -ber_type_decoder_f NI_Type_decode_ber; -der_type_encoder_f NI_Type_encode_der; -xer_type_decoder_f NI_Type_decode_xer; -xer_type_encoder_f NI_Type_encode_xer; -oer_type_decoder_f NI_Type_decode_oer; -oer_type_encoder_f NI_Type_encode_oer; -per_type_decoder_f NI_Type_decode_uper; -per_type_encoder_f NI_Type_encode_uper; -per_type_decoder_f NI_Type_decode_aper; -per_type_encoder_f NI_Type_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _NI_Type_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/NRCGI.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/NRCGI.c deleted file mode 100644 index 94d8d4b..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/NRCGI.c +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "NRCGI.h" - -asn_TYPE_member_t asn_MBR_NRCGI_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct NRCGI, pLMN_Identity), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_PLMN_Identity, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "pLMN-Identity" - }, - { ATF_NOFLAGS, 0, offsetof(struct NRCGI, nRCellIdentity), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NRCellIdentity, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "nRCellIdentity" - }, -}; -static const ber_tlv_tag_t asn_DEF_NRCGI_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_NRCGI_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pLMN-Identity */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* nRCellIdentity */ -}; -asn_SEQUENCE_specifics_t asn_SPC_NRCGI_specs_1 = { - sizeof(struct NRCGI), - offsetof(struct NRCGI, _asn_ctx), - asn_MAP_NRCGI_tag2el_1, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_NRCGI = { - "NRCGI", - "NRCGI", - &asn_OP_SEQUENCE, - asn_DEF_NRCGI_tags_1, - sizeof(asn_DEF_NRCGI_tags_1) - /sizeof(asn_DEF_NRCGI_tags_1[0]), /* 1 */ - asn_DEF_NRCGI_tags_1, /* Same as above */ - sizeof(asn_DEF_NRCGI_tags_1) - /sizeof(asn_DEF_NRCGI_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_NRCGI_1, - 2, /* Elements count */ - &asn_SPC_NRCGI_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/NRCGI.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/NRCGI.h deleted file mode 100644 index b4938d0..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/NRCGI.h +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _NRCGI_H_ -#define _NRCGI_H_ - - -#include - -/* Including external dependencies */ -#include "PLMN-Identity.h" -#include "NRCellIdentity.h" -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* NRCGI */ -typedef struct NRCGI { - PLMN_Identity_t pLMN_Identity; - NRCellIdentity_t nRCellIdentity; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} NRCGI_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_NRCGI; -extern asn_SEQUENCE_specifics_t asn_SPC_NRCGI_specs_1; -extern asn_TYPE_member_t asn_MBR_NRCGI_1[2]; - -#ifdef __cplusplus -} -#endif - -#endif /* _NRCGI_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/NRCellIdentity.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/NRCellIdentity.c deleted file mode 100644 index 8e0310e..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/NRCellIdentity.c +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "NRCellIdentity.h" - -int -NRCellIdentity_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if(st->size > 0) { - /* Size in bits */ - size = 8 * st->size - (st->bits_unused & 0x07); - } else { - size = 0; - } - - if((size == 36)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using BIT_STRING, - * so here we adjust the DEF accordingly. - */ -static asn_oer_constraints_t asn_OER_type_NRCellIdentity_constr_1 CC_NOTUSED = { - { 0, 0 }, - 36 /* (SIZE(36..36)) */}; -asn_per_constraints_t asn_PER_type_NRCellIdentity_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 0, 0, 36, 36 } /* (SIZE(36..36)) */, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_NRCellIdentity_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_NRCellIdentity = { - "NRCellIdentity", - "NRCellIdentity", - &asn_OP_BIT_STRING, - asn_DEF_NRCellIdentity_tags_1, - sizeof(asn_DEF_NRCellIdentity_tags_1) - /sizeof(asn_DEF_NRCellIdentity_tags_1[0]), /* 1 */ - asn_DEF_NRCellIdentity_tags_1, /* Same as above */ - sizeof(asn_DEF_NRCellIdentity_tags_1) - /sizeof(asn_DEF_NRCellIdentity_tags_1[0]), /* 1 */ - { &asn_OER_type_NRCellIdentity_constr_1, &asn_PER_type_NRCellIdentity_constr_1, NRCellIdentity_constraint }, - 0, 0, /* No members */ - &asn_SPC_BIT_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/NRCellIdentity.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/NRCellIdentity.h deleted file mode 100644 index 701f381..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/NRCellIdentity.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _NRCellIdentity_H_ -#define _NRCellIdentity_H_ - - -#include - -/* Including external dependencies */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* NRCellIdentity */ -typedef BIT_STRING_t NRCellIdentity_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_NRCellIdentity_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_NRCellIdentity; -asn_struct_free_f NRCellIdentity_free; -asn_struct_print_f NRCellIdentity_print; -asn_constr_check_f NRCellIdentity_constraint; -ber_type_decoder_f NRCellIdentity_decode_ber; -der_type_encoder_f NRCellIdentity_encode_der; -xer_type_decoder_f NRCellIdentity_decode_xer; -xer_type_encoder_f NRCellIdentity_encode_xer; -oer_type_decoder_f NRCellIdentity_decode_oer; -oer_type_encoder_f NRCellIdentity_encode_oer; -per_type_decoder_f NRCellIdentity_decode_uper; -per_type_encoder_f NRCellIdentity_encode_uper; -per_type_decoder_f NRCellIdentity_decode_aper; -per_type_encoder_f NRCellIdentity_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _NRCellIdentity_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/NativeEnumerated.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/NativeEnumerated.c deleted file mode 100644 index 50ffb1d..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/NativeEnumerated.c +++ /dev/null @@ -1,367 +0,0 @@ -/*- - * Copyright (c) 2004, 2007 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -/* - * Read the NativeInteger.h for the explanation wrt. differences between - * INTEGER and NativeInteger. - * Basically, both are decoders and encoders of ASN.1 INTEGER type, but this - * implementation deals with the standard (machine-specific) representation - * of them instead of using the platform-independent buffer. - */ -#include -#include - -/* - * NativeEnumerated basic type description. - */ -static const ber_tlv_tag_t asn_DEF_NativeEnumerated_tags[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_operation_t asn_OP_NativeEnumerated = { - NativeInteger_free, - NativeInteger_print, - NativeInteger_compare, - NativeInteger_decode_ber, - NativeInteger_encode_der, - NativeInteger_decode_xer, - NativeEnumerated_encode_xer, -#ifdef ASN_DISABLE_OER_SUPPORT - 0, - 0, -#else - NativeEnumerated_decode_oer, - NativeEnumerated_encode_oer, -#endif /* ASN_DISABLE_OER_SUPPORT */ -#ifdef ASN_DISABLE_PER_SUPPORT - 0, - 0, - 0, - 0, -#else - NativeEnumerated_decode_uper, - NativeEnumerated_encode_uper, - NativeEnumerated_decode_aper, - NativeEnumerated_encode_aper, -#endif /* ASN_DISABLE_PER_SUPPORT */ - NativeEnumerated_random_fill, - 0 /* Use generic outmost tag fetcher */ -}; -asn_TYPE_descriptor_t asn_DEF_NativeEnumerated = { - "ENUMERATED", /* The ASN.1 type is still ENUMERATED */ - "ENUMERATED", - &asn_OP_NativeEnumerated, - asn_DEF_NativeEnumerated_tags, - sizeof(asn_DEF_NativeEnumerated_tags) / sizeof(asn_DEF_NativeEnumerated_tags[0]), - asn_DEF_NativeEnumerated_tags, /* Same as above */ - sizeof(asn_DEF_NativeEnumerated_tags) / sizeof(asn_DEF_NativeEnumerated_tags[0]), - { 0, 0, asn_generic_no_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - -asn_enc_rval_t -NativeEnumerated_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, - int ilevel, enum xer_encoder_flags_e flags, - asn_app_consume_bytes_f *cb, void *app_key) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - asn_enc_rval_t er = {0,0,0}; - const long *native = (const long *)sptr; - const asn_INTEGER_enum_map_t *el; - - (void)ilevel; - (void)flags; - - if(!native) ASN__ENCODE_FAILED; - - el = INTEGER_map_value2enum(specs, *native); - if(el) { - er.encoded = - asn__format_to_callback(cb, app_key, "<%s/>", el->enum_name); - if(er.encoded < 0) ASN__ENCODE_FAILED; - ASN__ENCODED_OK(er); - } else { - ASN_DEBUG( - "ASN.1 forbids dealing with " - "unknown value of ENUMERATED type"); - ASN__ENCODE_FAILED; - } -} - -asn_dec_rval_t -NativeEnumerated_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - void **sptr, asn_per_data_t *pd) { - const asn_INTEGER_specifics_t *specs = td->specifics; - asn_dec_rval_t rval = { RC_OK, 0 }; - long *native = (long *)*sptr; - const asn_per_constraint_t *ct = NULL; - long value; - - (void)opt_codec_ctx; - - if(constraints) ct = &constraints->value; - else if(td->encoding_constraints.per_constraints) - ct = &td->encoding_constraints.per_constraints->value; - else ASN__DECODE_FAILED; /* Mandatory! */ - if(!specs) ASN__DECODE_FAILED; - - if(!native) { - native = (long *)(*sptr = CALLOC(1, sizeof(*native))); - if(!native) ASN__DECODE_FAILED; - } - - ASN_DEBUG("Decoding %s as NativeEnumerated", td->name); - - if(ct && ct->flags & APC_EXTENSIBLE) { - int inext = per_get_few_bits(pd, 1); - if(inext < 0) ASN__DECODE_STARVED; - if(inext) ct = 0; - } - - if(ct && ct->range_bits >= 0) { - value = per_get_few_bits(pd, ct->range_bits); - if(value < 0) ASN__DECODE_STARVED; - if(value >= (specs->extension - ? specs->extension - 1 : specs->map_count)) - ASN__DECODE_FAILED; - } else { - if(!specs->extension) - ASN__DECODE_FAILED; - /* - * X.691, #10.6: normally small non-negative whole number; - */ - value = uper_get_nsnnwn(pd); - if(value < 0) ASN__DECODE_STARVED; - value += specs->extension - 1; - if(value >= specs->map_count) - ASN__DECODE_FAILED; - } - - *native = specs->value2enum[value].nat_value; - ASN_DEBUG("Decoded %s = %ld", td->name, *native); - - return rval; -} - -static int -NativeEnumerated__compar_value2enum(const void *ap, const void *bp) { - const asn_INTEGER_enum_map_t *a = ap; - const asn_INTEGER_enum_map_t *b = bp; - if(a->nat_value == b->nat_value) - return 0; - if(a->nat_value < b->nat_value) - return -1; - return 1; -} - -asn_enc_rval_t -NativeEnumerated_encode_uper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_per_outp_t *po) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - asn_enc_rval_t er = {0,0,0}; - long native, value; - const asn_per_constraint_t *ct = NULL; - int inext = 0; - asn_INTEGER_enum_map_t key; - const asn_INTEGER_enum_map_t *kf; - - if(!sptr) ASN__ENCODE_FAILED; - if(!specs) ASN__ENCODE_FAILED; - - if(constraints) ct = &constraints->value; - else if(td->encoding_constraints.per_constraints) - ct = &td->encoding_constraints.per_constraints->value; - else ASN__ENCODE_FAILED; /* Mandatory! */ - - ASN_DEBUG("Encoding %s as NativeEnumerated", td->name); - - er.encoded = 0; - - native = *(const long *)sptr; - - key.nat_value = native; - kf = bsearch(&key, specs->value2enum, specs->map_count, - sizeof(key), NativeEnumerated__compar_value2enum); - if(!kf) { - ASN_DEBUG("No element corresponds to %ld", native); - ASN__ENCODE_FAILED; - } - value = kf - specs->value2enum; - - if(ct && ct->range_bits >= 0) { - int cmpWith = specs->extension - ? specs->extension - 1 : specs->map_count; - if(value >= cmpWith) - inext = 1; - } - if(ct && ct->flags & APC_EXTENSIBLE) { - if(per_put_few_bits(po, inext, 1)) - ASN__ENCODE_FAILED; - if(inext) ct = 0; - } else if(inext) { - ASN__ENCODE_FAILED; - } - - if(ct && ct->range_bits >= 0) { - if(per_put_few_bits(po, value, ct->range_bits)) - ASN__ENCODE_FAILED; - ASN__ENCODED_OK(er); - } - - if(!specs->extension) - ASN__ENCODE_FAILED; - - /* - * X.691, #10.6: normally small non-negative whole number; - */ - ASN_DEBUG("value = %ld, ext = %d, inext = %d, res = %ld", - value, specs->extension, inext, - value - (inext ? (specs->extension - 1) : 0)); - if(uper_put_nsnnwn(po, value - (inext ? (specs->extension - 1) : 0))) - ASN__ENCODE_FAILED; - - ASN__ENCODED_OK(er); -} - -asn_dec_rval_t -NativeEnumerated_decode_aper(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - void **sptr, asn_per_data_t *pd) { - const asn_INTEGER_specifics_t *specs = (const asn_INTEGER_specifics_t *)td->specifics; - asn_dec_rval_t rval = { RC_OK, 0 }; - long *native = (long *)*sptr; - const asn_per_constraint_t *ct = NULL; - long value; - - (void)opt_codec_ctx; - - if(constraints) ct = &constraints->value; - else if(td->encoding_constraints.per_constraints) - ct = &td->encoding_constraints.per_constraints->value; - else ASN__DECODE_FAILED; /* Mandatory! */ - if(!specs) ASN__DECODE_FAILED; - - if(!native) { - native = (long *)(*sptr = CALLOC(1, sizeof(*native))); - if(!native) ASN__DECODE_FAILED; - } - - ASN_DEBUG("Decoding %s as NativeEnumerated", td->name); - - if(ct && ct->flags & APC_EXTENSIBLE) { - int inext = per_get_few_bits(pd, 1); - if(inext < 0) ASN__DECODE_STARVED; - if(inext) ct = 0; - } - - /* Deal with APER padding */ - if(ct && ct->upper_bound >= 255) { - int padding = 0; - padding = (8 - (pd->moved % 8)) % 8; - ASN_DEBUG("For NativeEnumerated %s,offset= %lu Padding bits = %d", td->name, pd->moved, padding); - ASN_DEBUG("For NativeEnumerated %s, upper bound = %lu", td->name, ct->upper_bound); - if(padding > 0) - per_get_few_bits(pd, padding); - } - - if(ct && ct->range_bits >= 0) { - value = per_get_few_bits(pd, ct->range_bits); - if(value < 0) ASN__DECODE_STARVED; - if(value >= (specs->extension - ? specs->extension - 1 : specs->map_count)) - ASN__DECODE_FAILED; - } else { - if(!specs->extension) - ASN__DECODE_FAILED; - /* - * X.691, #10.6: normally small non-negative whole number; - */ - value = uper_get_nsnnwn(pd); - if(value < 0) ASN__DECODE_STARVED; - value += specs->extension - 1; - if(value >= specs->map_count) - ASN__DECODE_FAILED; - } - - *native = specs->value2enum[value].nat_value; - ASN_DEBUG("Decoded %s = %ld", td->name, *native); - - return rval; -} - -asn_enc_rval_t -NativeEnumerated_encode_aper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_per_outp_t *po) { - const asn_INTEGER_specifics_t *specs = (const asn_INTEGER_specifics_t *)td->specifics; - asn_enc_rval_t er = {0,0,0}; - long native, value; - const asn_per_constraint_t *ct = NULL; - int inext = 0; - asn_INTEGER_enum_map_t key; - asn_INTEGER_enum_map_t *kf; - - if(!sptr) ASN__ENCODE_FAILED; - if(!specs) ASN__ENCODE_FAILED; - - if(constraints) ct = &constraints->value; - else if(td->encoding_constraints.per_constraints) - ct = &td->encoding_constraints.per_constraints->value; - else ASN__ENCODE_FAILED; /* Mandatory! */ - - ASN_DEBUG("Encoding %s as NativeEnumerated", td->name); - - er.encoded = 0; - - native = *(const long *)sptr; - if(native < 0) ASN__ENCODE_FAILED; - - key.nat_value = native; - kf = bsearch(&key, specs->value2enum, specs->map_count, - sizeof(key), NativeEnumerated__compar_value2enum); - if(!kf) { - ASN_DEBUG("No element corresponds to %ld", native); - ASN__ENCODE_FAILED; - } - value = kf - specs->value2enum; - - if(ct && ct->range_bits >= 0) { - int cmpWith = specs->extension - ? specs->extension - 1 : specs->map_count; - if(value >= cmpWith) - inext = 1; - } - if(ct && ct->flags & APC_EXTENSIBLE) { - if(per_put_few_bits(po, inext, 1)) - ASN__ENCODE_FAILED; - if(inext) ct = 0; - } else if(inext) { - ASN__ENCODE_FAILED; - } - - if(ct && ct->range_bits >= 0) { - if(per_put_few_bits(po, value, ct->range_bits)) - ASN__ENCODE_FAILED; - ASN__ENCODED_OK(er); - } - - if(!specs->extension) - ASN__ENCODE_FAILED; - - /* - * X.691, #10.6: normally small non-negative whole number; - */ - ASN_DEBUG("value = %ld, ext = %d, inext = %d, res = %ld", - value, specs->extension, inext, - value - (inext ? (specs->extension - 1) : 0)); - if(uper_put_nsnnwn(po, value - (inext ? (specs->extension - 1) : 0))) - ASN__ENCODE_FAILED; - - ASN__ENCODED_OK(er); -} diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/NativeEnumerated.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/NativeEnumerated.h deleted file mode 100644 index 459f0e6..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/NativeEnumerated.h +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -/* - * This type differs from the standard ENUMERATED in that it is modelled using - * the fixed machine type (long, int, short), so it can hold only values of - * limited length. There is no type (i.e., NativeEnumerated_t, any integer type - * will do). - * This type may be used when integer range is limited by subtype constraints. - */ -#ifndef _NativeEnumerated_H_ -#define _NativeEnumerated_H_ - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -extern asn_TYPE_descriptor_t asn_DEF_NativeEnumerated; -extern asn_TYPE_operation_t asn_OP_NativeEnumerated; - -xer_type_encoder_f NativeEnumerated_encode_xer; -oer_type_decoder_f NativeEnumerated_decode_oer; -oer_type_encoder_f NativeEnumerated_encode_oer; -per_type_decoder_f NativeEnumerated_decode_uper; -per_type_encoder_f NativeEnumerated_encode_uper; -per_type_decoder_f NativeEnumerated_decode_aper; -per_type_encoder_f NativeEnumerated_encode_aper; - -#define NativeEnumerated_free NativeInteger_free -#define NativeEnumerated_print NativeInteger_print -#define NativeEnumerated_compare NativeInteger_compare -#define NativeEnumerated_random_fill NativeInteger_random_fill -#define NativeEnumerated_constraint asn_generic_no_constraint -#define NativeEnumerated_decode_ber NativeInteger_decode_ber -#define NativeEnumerated_encode_der NativeInteger_encode_der -#define NativeEnumerated_decode_xer NativeInteger_decode_xer - -#ifdef __cplusplus -} -#endif - -#endif /* _NativeEnumerated_H_ */ diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/NativeEnumerated_oer.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/NativeEnumerated_oer.c deleted file mode 100644 index ee3c189..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/NativeEnumerated_oer.c +++ /dev/null @@ -1,149 +0,0 @@ -/* - * Copyright (c) 2017 Lev Walkin . - * All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef ASN_DISABLE_OER_SUPPORT - -#include -#include -#include - -static long -asn__nativeenumerated_convert(const uint8_t *b, const uint8_t *end) { - unsigned long value; - - /* Perform the sign initialization */ - /* Actually value = -(*b >> 7); gains nothing, yet unreadable! */ - if((*b >> 7)) { - value = (unsigned long)(-1); - } else { - value = 0; - } - - /* Conversion engine */ - for(; b < end; b++) { - value = (value << 8) | *b; - } - - return value; -} - -asn_dec_rval_t -NativeEnumerated_decode_oer(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_oer_constraints_t *constraints, - void **nint_ptr, const void *ptr, size_t size) { - asn_dec_rval_t rval = {RC_OK, 0}; - long *native = (long *)*nint_ptr; - const uint8_t *b = ptr; - - (void)opt_codec_ctx; - (void)constraints; - - if(size < 1) { - ASN__DECODE_STARVED; - } - - if((*b & 0x80) == 0) { - /* - * X.696 (08/2015) #11.2 Short form for Enumerated. - */ - if(!native) { - native = (long *)(*nint_ptr = CALLOC(1, sizeof(*native))); - if(!native) ASN__DECODE_FAILED; - } - - *native = *b; - rval.consumed = 1; - } else { - /* - * X.696 (08/2015) #11.4 Long form for Enumerated. - */ - size_t length = *b & 0x7f; - const uint8_t *bend; - long value; - - if(length < 1 || length > sizeof(*native)) { - ASN__DECODE_FAILED; - } - if((1 + length) > size) { - ASN__DECODE_STARVED; - } - b++; - bend = b + length; - - value = asn__nativeenumerated_convert(b, bend); - if(value < 0) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - if(specs && specs->field_unsigned) { - ASN__DECODE_FAILED; - } - } - - if(!native) { - native = (long *)(*nint_ptr = CALLOC(1, sizeof(*native))); - if(!native) ASN__DECODE_FAILED; - } - - *native = value; - - rval.consumed = (1 + length); - } - - return rval; -} - -/* - * Encode as Canonical OER. - */ -asn_enc_rval_t -NativeEnumerated_encode_oer(const asn_TYPE_descriptor_t *td, - const asn_oer_constraints_t *constraints, - const void *sptr, asn_app_consume_bytes_f *cb, - void *app_key) { - asn_enc_rval_t er = {0,0,0}; - long native; - - (void)constraints; - - if(!sptr) ASN__ENCODE_FAILED; - - native = *(const long *)sptr; - - if(native >= 0 && native <= 127) { - /* #11.2 Short form */ - uint8_t b = native; - er.encoded = 1; - if(cb(&b, er.encoded, app_key) < 0) { - ASN__ENCODE_FAILED; - } - ASN__ENCODED_OK(er); - } else { - /* #11.2 Long form */ - uint8_t buf[1 + sizeof(native)]; - uint8_t *b = &buf[sizeof(native)]; /* Last addressable */ - long final_pattern = -1 * (native < 0); - - for(;;) { - *b-- = native; - native >>= 8; - if(native == final_pattern) { - if(final_pattern) { - if((b[1] & 0x80)) break; - } else { - if(!(b[1] & 0x80)) break; - } - } - } - *b = 0x80 | (&buf[sizeof(native)] - b); - er.encoded = 1 + (&buf[sizeof(native)] - b); - if(cb(b, er.encoded, app_key) < 0) { - ASN__ENCODE_FAILED; - } - ASN__ENCODED_OK(er); - } -} - -#endif /* ASN_DISABLE_OER_SUPPORT */ diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/NativeInteger.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/NativeInteger.c deleted file mode 100644 index 316e872..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/NativeInteger.c +++ /dev/null @@ -1,550 +0,0 @@ -/*- - * Copyright (c) 2004, 2005, 2006 Lev Walkin . - * All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -/* - * Read the NativeInteger.h for the explanation wrt. differences between - * INTEGER and NativeInteger. - * Basically, both are decoders and encoders of ASN.1 INTEGER type, but this - * implementation deals with the standard (machine-specific) representation - * of them instead of using the platform-independent buffer. - */ -#include -#include - -/* - * NativeInteger basic type description. - */ -static const ber_tlv_tag_t asn_DEF_NativeInteger_tags[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_operation_t asn_OP_NativeInteger = { - NativeInteger_free, - NativeInteger_print, - NativeInteger_compare, - NativeInteger_decode_ber, - NativeInteger_encode_der, - NativeInteger_decode_xer, - NativeInteger_encode_xer, -#ifdef ASN_DISABLE_OER_SUPPORT - 0, - 0, -#else - NativeInteger_decode_oer, /* OER decoder */ - NativeInteger_encode_oer, /* Canonical OER encoder */ -#endif /* ASN_DISABLE_OER_SUPPORT */ -#ifdef ASN_DISABLE_PER_SUPPORT - 0, - 0, - 0, - 0, -#else - NativeInteger_decode_uper, /* Unaligned PER decoder */ - NativeInteger_encode_uper, /* Unaligned PER encoder */ - NativeInteger_decode_aper, /* Aligned PER decoder */ - NativeInteger_encode_aper, /* Aligned PER encoder */ -#endif /* ASN_DISABLE_PER_SUPPORT */ - NativeInteger_random_fill, - 0 /* Use generic outmost tag fetcher */ -}; -asn_TYPE_descriptor_t asn_DEF_NativeInteger = { - "INTEGER", /* The ASN.1 type is still INTEGER */ - "INTEGER", - &asn_OP_NativeInteger, - asn_DEF_NativeInteger_tags, - sizeof(asn_DEF_NativeInteger_tags) / sizeof(asn_DEF_NativeInteger_tags[0]), - asn_DEF_NativeInteger_tags, /* Same as above */ - sizeof(asn_DEF_NativeInteger_tags) / sizeof(asn_DEF_NativeInteger_tags[0]), - { 0, 0, asn_generic_no_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - -/* - * Decode INTEGER type. - */ -asn_dec_rval_t -NativeInteger_decode_ber(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **nint_ptr, - const void *buf_ptr, size_t size, int tag_mode) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - long *native = (long *)*nint_ptr; - asn_dec_rval_t rval; - ber_tlv_len_t length; - - /* - * If the structure is not there, allocate it. - */ - if(native == NULL) { - native = (long *)(*nint_ptr = CALLOC(1, sizeof(*native))); - if(native == NULL) { - rval.code = RC_FAIL; - rval.consumed = 0; - return rval; - } - } - - ASN_DEBUG("Decoding %s as INTEGER (tm=%d)", - td->name, tag_mode); - - /* - * Check tags. - */ - rval = ber_check_tags(opt_codec_ctx, td, 0, buf_ptr, size, - tag_mode, 0, &length, 0); - if(rval.code != RC_OK) - return rval; - - ASN_DEBUG("%s length is %d bytes", td->name, (int)length); - - /* - * Make sure we have this length. - */ - buf_ptr = ((const char *)buf_ptr) + rval.consumed; - size -= rval.consumed; - if(length > (ber_tlv_len_t)size) { - rval.code = RC_WMORE; - rval.consumed = 0; - return rval; - } - - /* - * ASN.1 encoded INTEGER: buf_ptr, length - * Fill the native, at the same time checking for overflow. - * If overflow occured, return with RC_FAIL. - */ - { - INTEGER_t tmp; - union { - const void *constbuf; - void *nonconstbuf; - } unconst_buf; - long l; - - unconst_buf.constbuf = buf_ptr; - tmp.buf = (uint8_t *)unconst_buf.nonconstbuf; - tmp.size = length; - - if((specs&&specs->field_unsigned) - ? asn_INTEGER2ulong(&tmp, (unsigned long *)&l) /* sic */ - : asn_INTEGER2long(&tmp, &l)) { - rval.code = RC_FAIL; - rval.consumed = 0; - return rval; - } - - *native = l; - } - - rval.code = RC_OK; - rval.consumed += length; - - ASN_DEBUG("Took %ld/%ld bytes to encode %s (%ld)", - (long)rval.consumed, (long)length, td->name, (long)*native); - - return rval; -} - -/* - * Encode the NativeInteger using the standard INTEGER type DER encoder. - */ -asn_enc_rval_t -NativeInteger_encode_der(const asn_TYPE_descriptor_t *sd, const void *ptr, - int tag_mode, ber_tlv_tag_t tag, - asn_app_consume_bytes_f *cb, void *app_key) { - unsigned long native = *(const unsigned long *)ptr; /* Disable sign ext. */ - asn_enc_rval_t erval = {0,0,0}; - INTEGER_t tmp; - -#ifdef WORDS_BIGENDIAN /* Opportunistic optimization */ - - tmp.buf = (uint8_t *)&native; - tmp.size = sizeof(native); - -#else /* Works even if WORDS_BIGENDIAN is not set where should've been */ - uint8_t buf[sizeof(native)]; - uint8_t *p; - - /* Prepare a fake INTEGER */ - for(p = buf + sizeof(buf) - 1; p >= buf; p--, native >>= 8) - *p = (uint8_t)native; - - tmp.buf = buf; - tmp.size = sizeof(buf); -#endif /* WORDS_BIGENDIAN */ - - /* Encode fake INTEGER */ - erval = INTEGER_encode_der(sd, &tmp, tag_mode, tag, cb, app_key); - if(erval.structure_ptr == &tmp) { - erval.structure_ptr = ptr; - } - return erval; -} - -/* - * Decode the chunk of XML text encoding INTEGER. - */ -asn_dec_rval_t -NativeInteger_decode_xer(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **sptr, - const char *opt_mname, const void *buf_ptr, - size_t size) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - asn_dec_rval_t rval; - INTEGER_t st; - void *st_ptr = (void *)&st; - long *native = (long *)*sptr; - - if(!native) { - native = (long *)(*sptr = CALLOC(1, sizeof(*native))); - if(!native) ASN__DECODE_FAILED; - } - - memset(&st, 0, sizeof(st)); - rval = INTEGER_decode_xer(opt_codec_ctx, td, &st_ptr, - opt_mname, buf_ptr, size); - if(rval.code == RC_OK) { - long l; - if((specs&&specs->field_unsigned) - ? asn_INTEGER2ulong(&st, (unsigned long *)&l) /* sic */ - : asn_INTEGER2long(&st, &l)) { - rval.code = RC_FAIL; - rval.consumed = 0; - } else { - *native = l; - } - } else { - /* - * Cannot restart from the middle; - * there is no place to save state in the native type. - * Request a continuation from the very beginning. - */ - rval.consumed = 0; - } - ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_INTEGER, &st); - return rval; -} - - -asn_enc_rval_t -NativeInteger_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, - int ilevel, enum xer_encoder_flags_e flags, - asn_app_consume_bytes_f *cb, void *app_key) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - char scratch[32]; /* Enough for 64-bit int */ - asn_enc_rval_t er = {0,0,0}; - const long *native = (const long *)sptr; - - (void)ilevel; - (void)flags; - - if(!native) ASN__ENCODE_FAILED; - - er.encoded = snprintf(scratch, sizeof(scratch), - (specs && specs->field_unsigned) - ? "%lu" : "%ld", *native); - if(er.encoded <= 0 || (size_t)er.encoded >= sizeof(scratch) - || cb(scratch, er.encoded, app_key) < 0) - ASN__ENCODE_FAILED; - - ASN__ENCODED_OK(er); -} - -#ifndef ASN_DISABLE_PER_SUPPORT - -asn_dec_rval_t -NativeInteger_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, - asn_per_data_t *pd) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - asn_dec_rval_t rval; - long *native = (long *)*sptr; - INTEGER_t tmpint; - void *tmpintptr = &tmpint; - - (void)opt_codec_ctx; - ASN_DEBUG("Decoding NativeInteger %s (UPER)", td->name); - - if(!native) { - native = (long *)(*sptr = CALLOC(1, sizeof(*native))); - if(!native) ASN__DECODE_FAILED; - } - - memset(&tmpint, 0, sizeof tmpint); - rval = INTEGER_decode_uper(opt_codec_ctx, td, constraints, - &tmpintptr, pd); - if(rval.code == RC_OK) { - if((specs&&specs->field_unsigned) - ? asn_INTEGER2ulong(&tmpint, (unsigned long *)native) - : asn_INTEGER2long(&tmpint, native)) - rval.code = RC_FAIL; - else - ASN_DEBUG("NativeInteger %s got value %ld", - td->name, *native); - } - ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_INTEGER, &tmpint); - - return rval; -} - -asn_enc_rval_t -NativeInteger_encode_uper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_per_outp_t *po) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - asn_enc_rval_t er = {0,0,0}; - long native; - INTEGER_t tmpint; - - if(!sptr) ASN__ENCODE_FAILED; - - native = *(const long *)sptr; - - ASN_DEBUG("Encoding NativeInteger %s %ld (UPER)", td->name, native); - - memset(&tmpint, 0, sizeof(tmpint)); - if((specs&&specs->field_unsigned) - ? asn_ulong2INTEGER(&tmpint, native) - : asn_long2INTEGER(&tmpint, native)) - ASN__ENCODE_FAILED; - er = INTEGER_encode_uper(td, constraints, &tmpint, po); - ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_INTEGER, &tmpint); - return er; -} - -asn_dec_rval_t -NativeInteger_decode_aper(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, asn_per_data_t *pd) { - - const asn_INTEGER_specifics_t *specs = (const asn_INTEGER_specifics_t *)td->specifics; - asn_dec_rval_t rval; - long *native = (long *)*sptr; - INTEGER_t tmpint; - void *tmpintptr = &tmpint; - - (void)opt_codec_ctx; - ASN_DEBUG("Decoding NativeInteger %s (APER)", td->name); - - if(!native) { - native = (long *)(*sptr = CALLOC(1, sizeof(*native))); - if(!native) ASN__DECODE_FAILED; - } - - memset(&tmpint, 0, sizeof tmpint); - rval = INTEGER_decode_aper(opt_codec_ctx, td, constraints, - &tmpintptr, pd); - if(rval.code == RC_OK) { - if((specs&&specs->field_unsigned) - ? asn_INTEGER2ulong(&tmpint, (unsigned long *)native) - : asn_INTEGER2long(&tmpint, native)) - rval.code = RC_FAIL; - else - ASN_DEBUG("NativeInteger %s got value %ld", - td->name, *native); - } - ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_INTEGER, &tmpint); - - return rval; -} - -asn_enc_rval_t -NativeInteger_encode_aper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_per_outp_t *po) { - - const asn_INTEGER_specifics_t *specs = (const asn_INTEGER_specifics_t *)td->specifics; - asn_enc_rval_t er = {0,0,0}; - long native; - INTEGER_t tmpint; - - if(!sptr) ASN__ENCODE_FAILED; - - native = *(const long *)sptr; - - ASN_DEBUG("Encoding NativeInteger %s %ld (APER)", td->name, native); - - memset(&tmpint, 0, sizeof(tmpint)); - if((specs&&specs->field_unsigned) - ? asn_ulong2INTEGER(&tmpint, (unsigned long)native) - : asn_long2INTEGER(&tmpint, native)) - ASN__ENCODE_FAILED; - er = INTEGER_encode_aper(td, constraints, &tmpint, po); - ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_INTEGER, &tmpint); - return er; -} - -#endif /* ASN_DISABLE_PER_SUPPORT */ - -/* - * INTEGER specific human-readable output. - */ -int -NativeInteger_print(const asn_TYPE_descriptor_t *td, const void *sptr, - int ilevel, asn_app_consume_bytes_f *cb, void *app_key) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - const long *native = (const long *)sptr; - char scratch[32]; /* Enough for 64-bit int */ - int ret; - - (void)td; /* Unused argument */ - (void)ilevel; /* Unused argument */ - - if(native) { - long value = *native; - ret = snprintf(scratch, sizeof(scratch), - (specs && specs->field_unsigned) ? "%lu" : "%ld", value); - assert(ret > 0 && (size_t)ret < sizeof(scratch)); - if(cb(scratch, ret, app_key) < 0) return -1; - if(specs && (value >= 0 || !specs->field_unsigned)) { - const asn_INTEGER_enum_map_t *el = - INTEGER_map_value2enum(specs, value); - if(el) { - if(cb(" (", 2, app_key) < 0) return -1; - if(cb(el->enum_name, el->enum_len, app_key) < 0) return -1; - if(cb(")", 1, app_key) < 0) return -1; - } - } - return 0; - } else { - return (cb("", 8, app_key) < 0) ? -1 : 0; - } -} - -void -NativeInteger_free(const asn_TYPE_descriptor_t *td, void *ptr, - enum asn_struct_free_method method) { - if(!td || !ptr) - return; - - ASN_DEBUG("Freeing %s as INTEGER (%d, %p, Native)", - td->name, method, ptr); - - switch(method) { - case ASFM_FREE_EVERYTHING: - FREEMEM(ptr); - break; - case ASFM_FREE_UNDERLYING: - break; - case ASFM_FREE_UNDERLYING_AND_RESET: - memset(ptr, 0, sizeof(long)); - break; - } -} - -int -NativeInteger_compare(const asn_TYPE_descriptor_t *td, const void *aptr, const void *bptr) { - (void)td; - - if(aptr && bptr) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - if(specs && specs->field_unsigned) { - const unsigned long *a = aptr; - const unsigned long *b = bptr; - if(*a < *b) { - return -1; - } else if(*a > *b) { - return 1; - } else { - return 0; - } - } else { - const long *a = aptr; - const long *b = bptr; - if(*a < *b) { - return -1; - } else if(*a > *b) { - return 1; - } else { - return 0; - } - } - } else if(!aptr) { - return -1; - } else { - return 1; - } -} - -asn_random_fill_result_t -NativeInteger_random_fill(const asn_TYPE_descriptor_t *td, void **sptr, - const asn_encoding_constraints_t *constraints, - size_t max_length) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - asn_random_fill_result_t result_ok = {ARFILL_OK, 1}; - asn_random_fill_result_t result_failed = {ARFILL_FAILED, 0}; - asn_random_fill_result_t result_skipped = {ARFILL_SKIPPED, 0}; - long *st = *sptr; - const asn_INTEGER_enum_map_t *emap; - size_t emap_len; - intmax_t value; - int find_inside_map; - - if(max_length == 0) return result_skipped; - - if(st == NULL) { - st = (long *)CALLOC(1, sizeof(*st)); - if(st == NULL) { - return result_failed; - } - } - - if(specs) { - emap = specs->value2enum; - emap_len = specs->map_count; - if(specs->strict_enumeration) { - find_inside_map = emap_len > 0; - } else { - find_inside_map = emap_len ? asn_random_between(0, 1) : 0; - } - } else { - emap = 0; - emap_len = 0; - find_inside_map = 0; - } - - if(find_inside_map) { - assert(emap_len > 0); - value = emap[asn_random_between(0, emap_len - 1)].nat_value; - } else { - const asn_per_constraints_t *ct; - - static const long variants[] = { - -65536, -65535, -65534, -32769, -32768, -32767, -16385, -16384, - -16383, -257, -256, -255, -254, -129, -128, -127, - -126, -1, 0, 1, 126, 127, 128, 129, - 254, 255, 256, 257, 16383, 16384, 16385, 32767, - 32768, 32769, 65534, 65535, 65536, 65537}; - if(specs && specs->field_unsigned) { - assert(variants[18] == 0); - value = variants[asn_random_between( - 18, sizeof(variants) / sizeof(variants[0]) - 1)]; - } else { - value = variants[asn_random_between( - 0, sizeof(variants) / sizeof(variants[0]) - 1)]; - } - - if(!constraints) constraints = &td->encoding_constraints; - ct = constraints ? constraints->per_constraints : 0; - if(ct && (ct->value.flags & APC_CONSTRAINED)) { - if(value < ct->value.lower_bound || value > ct->value.upper_bound) { - value = asn_random_between(ct->value.lower_bound, - ct->value.upper_bound); - } - } - } - - *sptr = st; - *st = value; - return result_ok; -} diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/NativeInteger.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/NativeInteger.h deleted file mode 100644 index c74406a..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/NativeInteger.h +++ /dev/null @@ -1,46 +0,0 @@ -/*- - * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -/* - * This type differs from the standard INTEGER in that it is modelled using - * the fixed machine type (long, int, short), so it can hold only values of - * limited length. There is no type (i.e., NativeInteger_t, any integer type - * will do). - * This type may be used when integer range is limited by subtype constraints. - */ -#ifndef _NativeInteger_H_ -#define _NativeInteger_H_ - -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -extern asn_TYPE_descriptor_t asn_DEF_NativeInteger; -extern asn_TYPE_operation_t asn_OP_NativeInteger; - -asn_struct_free_f NativeInteger_free; -asn_struct_print_f NativeInteger_print; -asn_struct_compare_f NativeInteger_compare; -ber_type_decoder_f NativeInteger_decode_ber; -der_type_encoder_f NativeInteger_encode_der; -xer_type_decoder_f NativeInteger_decode_xer; -xer_type_encoder_f NativeInteger_encode_xer; -oer_type_decoder_f NativeInteger_decode_oer; -oer_type_encoder_f NativeInteger_encode_oer; -per_type_decoder_f NativeInteger_decode_uper; -per_type_encoder_f NativeInteger_encode_uper; -per_type_decoder_f NativeInteger_decode_aper; -per_type_encoder_f NativeInteger_encode_aper; -asn_random_fill_f NativeInteger_random_fill; - -#define NativeInteger_constraint asn_generic_no_constraint - -#ifdef __cplusplus -} -#endif - -#endif /* _NativeInteger_H_ */ diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/NativeInteger_oer.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/NativeInteger_oer.c deleted file mode 100644 index 411413a..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/NativeInteger_oer.c +++ /dev/null @@ -1,99 +0,0 @@ -/* - * Copyright (c) 2017 Lev Walkin . - * All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef ASN_DISABLE_OER_SUPPORT - -#include -#include -#include - -asn_dec_rval_t -NativeInteger_decode_oer(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_oer_constraints_t *constraints, - void **nint_ptr, const void *ptr, size_t size) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - asn_dec_rval_t rval = {RC_OK, 0}; - long *native = (long *)*nint_ptr; - INTEGER_t tmpint; - INTEGER_t *tmpintptr = &tmpint; - - memset(&tmpint, 0, sizeof(tmpint)); - - if(!native) { - native = (long *)(*nint_ptr = CALLOC(1, sizeof(*native))); - if(!native) ASN__DECODE_FAILED; - } - - /* - * OPTIMIZATION: Encode directly rather than passing through INTEGER. - * Saves a memory allocation. - */ - rval = INTEGER_decode_oer(opt_codec_ctx, td, constraints, - (void **)&tmpintptr, ptr, size); - if(rval.code != RC_OK) { - ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_INTEGER, &tmpint); - return rval; - } - - if(specs && specs->field_unsigned) { - unsigned long ul; - int ok = asn_INTEGER2ulong(&tmpint, &ul) == 0; - ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_INTEGER, &tmpint); - if(ok) { - *native = ul; - } else { - rval.code = RC_FAIL; - return rval; - } - } else { - long l; - int ok = asn_INTEGER2long(&tmpint, &l) == 0; - ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_INTEGER, &tmpint); - if(ok) { - *native = l; - } else { - rval.code = RC_FAIL; - return rval; - } - } - - return rval; -} - -/* - * Encode as Canonical OER. - */ -asn_enc_rval_t -NativeInteger_encode_oer(const asn_TYPE_descriptor_t *td, - const asn_oer_constraints_t *constraints, - const void *sptr, asn_app_consume_bytes_f *cb, - void *app_key) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - INTEGER_t tmpint; - long native; - - if(!sptr) ASN__ENCODE_FAILED; - - native = *(const long *)sptr; - memset(&tmpint, 0, sizeof(tmpint)); - - ASN_DEBUG("Encoding %s %ld as NativeInteger", td ? td->name : "", native); - - if((specs && specs->field_unsigned) ? asn_ulong2INTEGER(&tmpint, native) - : asn_long2INTEGER(&tmpint, native)) { - ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_INTEGER, &tmpint); - ASN__ENCODE_FAILED; - } else { - asn_enc_rval_t er = - INTEGER_encode_oer(td, constraints, &tmpint, cb, app_key); - ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_INTEGER, &tmpint); - return er; - } -} - -#endif /* ASN_DISABLE_OER_SUPPORT */ diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/OCTET_STRING.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/OCTET_STRING.c deleted file mode 100644 index ae34c96..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/OCTET_STRING.c +++ /dev/null @@ -1,2411 +0,0 @@ -/*- - * Copyright (c) 2003-2017 Lev Walkin . - * All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include /* for .bits_unused member */ -#include - -/* - * OCTET STRING basic type description. - */ -static const ber_tlv_tag_t asn_DEF_OCTET_STRING_tags[] = { - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) -}; -asn_OCTET_STRING_specifics_t asn_SPC_OCTET_STRING_specs = { - sizeof(OCTET_STRING_t), - offsetof(OCTET_STRING_t, _asn_ctx), - ASN_OSUBV_STR -}; - -asn_TYPE_operation_t asn_OP_OCTET_STRING = { - OCTET_STRING_free, - OCTET_STRING_print, /* OCTET STRING generally means a non-ascii sequence */ - OCTET_STRING_compare, - OCTET_STRING_decode_ber, - OCTET_STRING_encode_der, - OCTET_STRING_decode_xer_hex, - OCTET_STRING_encode_xer, -#ifdef ASN_DISABLE_OER_SUPPORT - 0, - 0, -#else - OCTET_STRING_decode_oer, - OCTET_STRING_encode_oer, -#endif /* ASN_DISABLE_OER_SUPPORT */ -#ifdef ASN_DISABLE_PER_SUPPORT - 0, - 0, - 0, - 0, -#else - OCTET_STRING_decode_uper, /* Unaligned PER decoder */ - OCTET_STRING_encode_uper, /* Unaligned PER encoder */ - OCTET_STRING_decode_aper, /* Aligned PER decoder */ - OCTET_STRING_encode_aper, /* Aligned PER encoder */ -#endif /* ASN_DISABLE_PER_SUPPORT */ - OCTET_STRING_random_fill, - 0 /* Use generic outmost tag fetcher */ -}; -asn_TYPE_descriptor_t asn_DEF_OCTET_STRING = { - "OCTET STRING", /* Canonical name */ - "OCTET_STRING", /* XML tag name */ - &asn_OP_OCTET_STRING, - asn_DEF_OCTET_STRING_tags, - sizeof(asn_DEF_OCTET_STRING_tags) - / sizeof(asn_DEF_OCTET_STRING_tags[0]), - asn_DEF_OCTET_STRING_tags, /* Same as above */ - sizeof(asn_DEF_OCTET_STRING_tags) - / sizeof(asn_DEF_OCTET_STRING_tags[0]), - { 0, 0, asn_generic_no_constraint }, - 0, 0, /* No members */ - &asn_SPC_OCTET_STRING_specs -}; - -#undef _CH_PHASE -#undef NEXT_PHASE -#undef PREV_PHASE -#define _CH_PHASE(ctx, inc) do { \ - if(ctx->phase == 0) \ - ctx->context = 0; \ - ctx->phase += inc; \ - } while(0) -#define NEXT_PHASE(ctx) _CH_PHASE(ctx, +1) -#define PREV_PHASE(ctx) _CH_PHASE(ctx, -1) - -#undef ADVANCE -#define ADVANCE(num_bytes) do { \ - size_t num = (num_bytes); \ - buf_ptr = ((const char *)buf_ptr) + num; \ - size -= num; \ - consumed_myself += num; \ - } while(0) - -#undef RETURN -#define RETURN(_code) do { \ - asn_dec_rval_t tmprval; \ - tmprval.code = _code; \ - tmprval.consumed = consumed_myself; \ - return tmprval; \ - } while(0) - -#undef APPEND -#define APPEND(bufptr, bufsize) do { \ - size_t _bs = (bufsize); /* Append size */ \ - size_t _ns = ctx->context; /* Allocated now */ \ - size_t _es = st->size + _bs; /* Expected size */ \ - /* int is really a typeof(st->size): */ \ - if((int)_es < 0) RETURN(RC_FAIL); \ - if(_ns <= _es) { \ - void *ptr; \ - /* Be nice and round to the memory allocator */ \ - do { _ns = _ns ? _ns << 1 : 16; } \ - while(_ns <= _es); \ - /* int is really a typeof(st->size): */ \ - if((int)_ns < 0) RETURN(RC_FAIL); \ - ptr = REALLOC(st->buf, _ns); \ - if(ptr) { \ - st->buf = (uint8_t *)ptr; \ - ctx->context = _ns; \ - } else { \ - RETURN(RC_FAIL); \ - } \ - ASN_DEBUG("Reallocating into %ld", (long)_ns); \ - } \ - memcpy(st->buf + st->size, bufptr, _bs); \ - /* Convenient nul-termination */ \ - st->buf[_es] = '\0'; \ - st->size = _es; \ - } while(0) - -/* - * The main reason why ASN.1 is still alive is that too much time and effort - * is necessary for learning it more or less adequately, thus creating a gut - * necessity to demonstrate that aquired skill everywhere afterwards. - * No, I am not going to explain what the following stuff is. - */ -struct _stack_el { - ber_tlv_len_t left; /* What's left to read (or -1) */ - ber_tlv_len_t got; /* What was actually processed */ - unsigned cont_level; /* Depth of subcontainment */ - int want_nulls; /* Want null "end of content" octets? */ - int bits_chopped; /* Flag in BIT STRING mode */ - ber_tlv_tag_t tag; /* For debugging purposes */ - struct _stack_el *prev; - struct _stack_el *next; -}; -struct _stack { - struct _stack_el *tail; - struct _stack_el *cur_ptr; -}; - -static struct _stack_el * -OS__add_stack_el(struct _stack *st) { - struct _stack_el *nel; - - /* - * Reuse the old stack frame or allocate a new one. - */ - if(st->cur_ptr && st->cur_ptr->next) { - nel = st->cur_ptr->next; - nel->bits_chopped = 0; - nel->got = 0; - /* Retain the nel->cont_level, it's correct. */ - } else { - nel = (struct _stack_el *)CALLOC(1, sizeof(struct _stack_el)); - if(nel == NULL) - return NULL; - - if(st->tail) { - /* Increase a subcontainment depth */ - nel->cont_level = st->tail->cont_level + 1; - st->tail->next = nel; - } - nel->prev = st->tail; - st->tail = nel; - } - - st->cur_ptr = nel; - - return nel; -} - -static struct _stack * -_new_stack(void) { - return (struct _stack *)CALLOC(1, sizeof(struct _stack)); -} - -/* - * Decode OCTET STRING type. - */ -asn_dec_rval_t -OCTET_STRING_decode_ber(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **sptr, - const void *buf_ptr, size_t size, int tag_mode) { - const asn_OCTET_STRING_specifics_t *specs = td->specifics - ? (const asn_OCTET_STRING_specifics_t *)td->specifics - : &asn_SPC_OCTET_STRING_specs; - BIT_STRING_t *st = (BIT_STRING_t *)*sptr; - asn_dec_rval_t rval; - asn_struct_ctx_t *ctx; - ssize_t consumed_myself = 0; - struct _stack *stck; /* Expectations stack structure */ - struct _stack_el *sel = 0; /* Stack element */ - int tlv_constr; - enum asn_OS_Subvariant type_variant = specs->subvariant; - - ASN_DEBUG("Decoding %s as %s (frame %ld)", - td->name, - (type_variant == ASN_OSUBV_STR) ? - "OCTET STRING" : "OS-SpecialCase", - (long)size); - - /* - * Create the string if does not exist. - */ - if(st == NULL) { - st = (BIT_STRING_t *)(*sptr = CALLOC(1, specs->struct_size)); - if(st == NULL) RETURN(RC_FAIL); - } - - /* Restore parsing context */ - ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset); - - switch(ctx->phase) { - case 0: - /* - * Check tags. - */ - rval = ber_check_tags(opt_codec_ctx, td, ctx, - buf_ptr, size, tag_mode, -1, - &ctx->left, &tlv_constr); - if(rval.code != RC_OK) - return rval; - - if(tlv_constr) { - /* - * Complex operation, requires stack of expectations. - */ - ctx->ptr = _new_stack(); - if(!ctx->ptr) { - RETURN(RC_FAIL); - } - } else { - /* - * Jump into stackless primitive decoding. - */ - _CH_PHASE(ctx, 3); - if(type_variant == ASN_OSUBV_ANY && tag_mode != 1) - APPEND(buf_ptr, rval.consumed); - ADVANCE(rval.consumed); - goto phase3; - } - - NEXT_PHASE(ctx); - /* Fall through */ - case 1: - phase1: - /* - * Fill the stack with expectations. - */ - stck = (struct _stack *)ctx->ptr; - sel = stck->cur_ptr; - do { - ber_tlv_tag_t tlv_tag; - ber_tlv_len_t tlv_len; - ber_tlv_tag_t expected_tag; - ssize_t tl, ll, tlvl; - /* This one works even if (sel->left == -1) */ - size_t Left = ((!sel||(size_t)sel->left >= size) - ?size:(size_t)sel->left); - - - ASN_DEBUG("%p, s->l=%ld, s->wn=%ld, s->g=%ld\n", (void *)sel, - (long)(sel?sel->left:0), - (long)(sel?sel->want_nulls:0), - (long)(sel?sel->got:0) - ); - if(sel && sel->left <= 0 && sel->want_nulls == 0) { - if(sel->prev) { - struct _stack_el *prev = sel->prev; - if(prev->left != -1) { - if(prev->left < sel->got) - RETURN(RC_FAIL); - prev->left -= sel->got; - } - prev->got += sel->got; - sel = stck->cur_ptr = prev; - if(!sel) break; - tlv_constr = 1; - continue; - } else { - sel = stck->cur_ptr = 0; - break; /* Nothing to wait */ - } - } - - tl = ber_fetch_tag(buf_ptr, Left, &tlv_tag); - ASN_DEBUG("fetch tag(size=%ld,L=%ld), %sstack, left=%ld, wn=%ld, tl=%ld", - (long)size, (long)Left, sel?"":"!", - (long)(sel?sel->left:0), - (long)(sel?sel->want_nulls:0), - (long)tl); - switch(tl) { - case -1: RETURN(RC_FAIL); - case 0: RETURN(RC_WMORE); - } - - tlv_constr = BER_TLV_CONSTRUCTED(buf_ptr); - - ll = ber_fetch_length(tlv_constr, - (const char *)buf_ptr + tl,Left - tl,&tlv_len); - ASN_DEBUG("Got tag=%s, tc=%d, left=%ld, tl=%ld, len=%ld, ll=%ld", - ber_tlv_tag_string(tlv_tag), tlv_constr, - (long)Left, (long)tl, (long)tlv_len, (long)ll); - switch(ll) { - case -1: RETURN(RC_FAIL); - case 0: RETURN(RC_WMORE); - } - - if(sel && sel->want_nulls - && ((const uint8_t *)buf_ptr)[0] == 0 - && ((const uint8_t *)buf_ptr)[1] == 0) - { - - ASN_DEBUG("Eat EOC; wn=%d--", sel->want_nulls); - - if(type_variant == ASN_OSUBV_ANY - && (tag_mode != 1 || sel->cont_level)) - APPEND("\0\0", 2); - - ADVANCE(2); - sel->got += 2; - if(sel->left != -1) { - sel->left -= 2; /* assert(sel->left >= 2) */ - } - - sel->want_nulls--; - if(sel->want_nulls == 0) { - /* Move to the next expectation */ - sel->left = 0; - tlv_constr = 1; - } - - continue; - } - - /* - * Set up expected tags, - * depending on ASN.1 type being decoded. - */ - switch(type_variant) { - case ASN_OSUBV_BIT: - /* X.690: 8.6.4.1, NOTE 2 */ - /* Fall through */ - case ASN_OSUBV_STR: - default: - if(sel) { - unsigned level = sel->cont_level; - if(level < td->all_tags_count) { - expected_tag = td->all_tags[level]; - break; - } else if(td->all_tags_count) { - expected_tag = td->all_tags - [td->all_tags_count - 1]; - break; - } - /* else, Fall through */ - } - /* Fall through */ - case ASN_OSUBV_ANY: - expected_tag = tlv_tag; - break; - } - - - if(tlv_tag != expected_tag) { - char buf[2][32]; - ber_tlv_tag_snprint(tlv_tag, - buf[0], sizeof(buf[0])); - ber_tlv_tag_snprint(td->tags[td->tags_count-1], - buf[1], sizeof(buf[1])); - ASN_DEBUG("Tag does not match expectation: %s != %s", - buf[0], buf[1]); - RETURN(RC_FAIL); - } - - tlvl = tl + ll; /* Combined length of T and L encoding */ - if((tlv_len + tlvl) < 0) { - /* tlv_len value is too big */ - ASN_DEBUG("TLV encoding + length (%ld) is too big", - (long)tlv_len); - RETURN(RC_FAIL); - } - - /* - * Append a new expectation. - */ - sel = OS__add_stack_el(stck); - if(!sel) RETURN(RC_FAIL); - - sel->tag = tlv_tag; - - sel->want_nulls = (tlv_len==-1); - if(sel->prev && sel->prev->left != -1) { - /* Check that the parent frame is big enough */ - if(sel->prev->left < tlvl + (tlv_len==-1?0:tlv_len)) - RETURN(RC_FAIL); - if(tlv_len == -1) - sel->left = sel->prev->left - tlvl; - else - sel->left = tlv_len; - } else { - sel->left = tlv_len; - } - if(type_variant == ASN_OSUBV_ANY - && (tag_mode != 1 || sel->cont_level)) - APPEND(buf_ptr, tlvl); - sel->got += tlvl; - ADVANCE(tlvl); - - ASN_DEBUG("+EXPECT2 got=%ld left=%ld, wn=%d, clvl=%u", - (long)sel->got, (long)sel->left, - sel->want_nulls, sel->cont_level); - - } while(tlv_constr); - if(sel == NULL) { - /* Finished operation, "phase out" */ - ASN_DEBUG("Phase out"); - _CH_PHASE(ctx, +3); - break; - } - - NEXT_PHASE(ctx); - /* Fall through */ - case 2: - stck = (struct _stack *)ctx->ptr; - sel = stck->cur_ptr; - ASN_DEBUG("Phase 2: Need %ld bytes, size=%ld, alrg=%ld, wn=%d", - (long)sel->left, (long)size, (long)sel->got, - sel->want_nulls); - { - ber_tlv_len_t len; - - assert(sel->left >= 0); - - len = ((ber_tlv_len_t)size < sel->left) - ? (ber_tlv_len_t)size : sel->left; - if(len > 0) { - if(type_variant == ASN_OSUBV_BIT - && sel->bits_chopped == 0) { - /* Put the unused-bits-octet away */ - st->bits_unused = *(const uint8_t *)buf_ptr; - APPEND(((const char *)buf_ptr+1), (len - 1)); - sel->bits_chopped = 1; - } else { - APPEND(buf_ptr, len); - } - ADVANCE(len); - sel->left -= len; - sel->got += len; - } - - if(sel->left) { - ASN_DEBUG("OS left %ld, size = %ld, wn=%d\n", - (long)sel->left, (long)size, sel->want_nulls); - RETURN(RC_WMORE); - } - - PREV_PHASE(ctx); - goto phase1; - } - break; - case 3: - phase3: - /* - * Primitive form, no stack required. - */ - assert(ctx->left >= 0); - - if(size < (size_t)ctx->left) { - if(!size) RETURN(RC_WMORE); - if(type_variant == ASN_OSUBV_BIT && !ctx->context) { - st->bits_unused = *(const uint8_t *)buf_ptr; - ctx->left--; - ADVANCE(1); - } - APPEND(buf_ptr, size); - assert(ctx->context > 0); - ctx->left -= size; - ADVANCE(size); - RETURN(RC_WMORE); - } else { - if(type_variant == ASN_OSUBV_BIT - && !ctx->context && ctx->left) { - st->bits_unused = *(const uint8_t *)buf_ptr; - ctx->left--; - ADVANCE(1); - } - APPEND(buf_ptr, ctx->left); - ADVANCE(ctx->left); - ctx->left = 0; - - NEXT_PHASE(ctx); - } - break; - } - - if(sel) { - ASN_DEBUG("3sel p=%p, wn=%d, l=%ld, g=%ld, size=%ld", - (void *)sel->prev, sel->want_nulls, - (long)sel->left, (long)sel->got, (long)size); - if(sel->prev || sel->want_nulls > 1 || sel->left > 0) { - RETURN(RC_WMORE); - } - } - - /* - * BIT STRING-specific processing. - */ - if(type_variant == ASN_OSUBV_BIT) { - if(st->size) { - if(st->bits_unused < 0 || st->bits_unused > 7) { - RETURN(RC_FAIL); - } - /* Finalize BIT STRING: zero out unused bits. */ - st->buf[st->size-1] &= 0xff << st->bits_unused; - } else { - if(st->bits_unused) { - RETURN(RC_FAIL); - } - } - } - - ASN_DEBUG("Took %ld bytes to encode %s: [%s]:%ld", - (long)consumed_myself, td->name, - (type_variant == ASN_OSUBV_STR) ? (char *)st->buf : "", - (long)st->size); - - - RETURN(RC_OK); -} - -/* - * Encode OCTET STRING type using DER. - */ -asn_enc_rval_t -OCTET_STRING_encode_der(const asn_TYPE_descriptor_t *td, const void *sptr, - int tag_mode, ber_tlv_tag_t tag, - asn_app_consume_bytes_f *cb, void *app_key) { - asn_enc_rval_t er = { 0, 0, 0 }; - const asn_OCTET_STRING_specifics_t *specs = td->specifics - ? (const asn_OCTET_STRING_specifics_t *)td->specifics - : &asn_SPC_OCTET_STRING_specs; - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - enum asn_OS_Subvariant type_variant = specs->subvariant; - int fix_last_byte = 0; - - ASN_DEBUG("%s %s as OCTET STRING", - cb?"Estimating":"Encoding", td->name); - - /* - * Write tags. - */ - if(type_variant != ASN_OSUBV_ANY || tag_mode == 1) { - er.encoded = der_write_tags(td, - (type_variant == ASN_OSUBV_BIT) + st->size, - tag_mode, type_variant == ASN_OSUBV_ANY, tag, - cb, app_key); - if(er.encoded == -1) { - er.failed_type = td; - er.structure_ptr = sptr; - return er; - } - } else { - /* Disallow: [] IMPLICIT ANY */ - assert(type_variant != ASN_OSUBV_ANY || tag_mode != -1); - er.encoded = 0; - } - - if(!cb) { - er.encoded += (type_variant == ASN_OSUBV_BIT) + st->size; - ASN__ENCODED_OK(er); - } - - /* - * Prepare to deal with the last octet of BIT STRING. - */ - if(type_variant == ASN_OSUBV_BIT) { - uint8_t b = st->bits_unused & 0x07; - if(b && st->size) fix_last_byte = 1; - ASN__CALLBACK(&b, 1); - } - - /* Invoke callback for the main part of the buffer */ - ASN__CALLBACK(st->buf, st->size - fix_last_byte); - - /* The last octet should be stripped off the unused bits */ - if(fix_last_byte) { - uint8_t b = st->buf[st->size-1] & (0xff << st->bits_unused); - ASN__CALLBACK(&b, 1); - } - - ASN__ENCODED_OK(er); -cb_failed: - ASN__ENCODE_FAILED; -} - -asn_enc_rval_t -OCTET_STRING_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, - int ilevel, enum xer_encoder_flags_e flags, - asn_app_consume_bytes_f *cb, void *app_key) { - const char * const h2c = "0123456789ABCDEF"; - const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; - asn_enc_rval_t er = { 0, 0, 0 }; - char scratch[16 * 3 + 4]; - char *p = scratch; - uint8_t *buf; - uint8_t *end; - size_t i; - - if(!st || (!st->buf && st->size)) - ASN__ENCODE_FAILED; - - er.encoded = 0; - - /* - * Dump the contents of the buffer in hexadecimal. - */ - buf = st->buf; - end = buf + st->size; - if(flags & XER_F_CANONICAL) { - char *scend = scratch + (sizeof(scratch) - 2); - for(; buf < end; buf++) { - if(p >= scend) { - ASN__CALLBACK(scratch, p - scratch); - p = scratch; - } - *p++ = h2c[(*buf >> 4) & 0x0F]; - *p++ = h2c[*buf & 0x0F]; - } - - ASN__CALLBACK(scratch, p-scratch); /* Dump the rest */ - } else { - for(i = 0; buf < end; buf++, i++) { - if(!(i % 16) && (i || st->size > 16)) { - ASN__CALLBACK(scratch, p-scratch); - p = scratch; - ASN__TEXT_INDENT(1, ilevel); - } - *p++ = h2c[(*buf >> 4) & 0x0F]; - *p++ = h2c[*buf & 0x0F]; - *p++ = 0x20; - } - if(p - scratch) { - p--; /* Remove the tail space */ - ASN__CALLBACK(scratch, p-scratch); /* Dump the rest */ - if(st->size > 16) - ASN__TEXT_INDENT(1, ilevel-1); - } - } - - ASN__ENCODED_OK(er); -cb_failed: - ASN__ENCODE_FAILED; -} - -static const struct OCTET_STRING__xer_escape_table_s { - const char *string; - int size; -} OCTET_STRING__xer_escape_table[] = { -#define OSXET(s) { s, sizeof(s) - 1 } - OSXET("\074\156\165\154\057\076"), /* */ - OSXET("\074\163\157\150\057\076"), /* */ - OSXET("\074\163\164\170\057\076"), /* */ - OSXET("\074\145\164\170\057\076"), /* */ - OSXET("\074\145\157\164\057\076"), /* */ - OSXET("\074\145\156\161\057\076"), /* */ - OSXET("\074\141\143\153\057\076"), /* */ - OSXET("\074\142\145\154\057\076"), /* */ - OSXET("\074\142\163\057\076"), /* */ - OSXET("\011"), /* \t */ - OSXET("\012"), /* \n */ - OSXET("\074\166\164\057\076"), /* */ - OSXET("\074\146\146\057\076"), /* */ - OSXET("\015"), /* \r */ - OSXET("\074\163\157\057\076"), /* */ - OSXET("\074\163\151\057\076"), /* */ - OSXET("\074\144\154\145\057\076"), /* */ - OSXET("\074\144\143\061\057\076"), /* */ - OSXET("\074\144\143\062\057\076"), /* */ - OSXET("\074\144\143\063\057\076"), /* */ - OSXET("\074\144\143\064\057\076"), /* */ - OSXET("\074\156\141\153\057\076"), /* */ - OSXET("\074\163\171\156\057\076"), /* */ - OSXET("\074\145\164\142\057\076"), /* */ - OSXET("\074\143\141\156\057\076"), /* */ - OSXET("\074\145\155\057\076"), /* */ - OSXET("\074\163\165\142\057\076"), /* */ - OSXET("\074\145\163\143\057\076"), /* */ - OSXET("\074\151\163\064\057\076"), /* */ - OSXET("\074\151\163\063\057\076"), /* */ - OSXET("\074\151\163\062\057\076"), /* */ - OSXET("\074\151\163\061\057\076"), /* */ - { 0, 0 }, /* " " */ - { 0, 0 }, /* ! */ - { 0, 0 }, /* \" */ - { 0, 0 }, /* # */ - { 0, 0 }, /* $ */ - { 0, 0 }, /* % */ - OSXET("\046\141\155\160\073"), /* & */ - { 0, 0 }, /* ' */ - {0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0}, /* ()*+,-./ */ - {0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0}, /* 01234567 */ - {0,0},{0,0},{0,0},{0,0}, /* 89:; */ - OSXET("\046\154\164\073"), /* < */ - { 0, 0 }, /* = */ - OSXET("\046\147\164\073"), /* > */ -}; - -static int -OS__check_escaped_control_char(const void *buf, int size) { - size_t i; - /* - * Inefficient algorithm which translates the escape sequences - * defined above into characters. Returns -1 if not found. - * TODO: replace by a faster algorithm (bsearch(), hash or - * nested table lookups). - */ - for(i = 0; i < 32 /* Don't spend time on the bottom half */; i++) { - const struct OCTET_STRING__xer_escape_table_s *el; - el = &OCTET_STRING__xer_escape_table[i]; - if(el->size == size && memcmp(buf, el->string, size) == 0) - return i; - } - return -1; -} - -static int -OCTET_STRING__handle_control_chars(void *struct_ptr, const void *chunk_buf, size_t chunk_size) { - /* - * This might be one of the escape sequences - * for control characters. Check it out. - * #11.15.5 - */ - int control_char = OS__check_escaped_control_char(chunk_buf,chunk_size); - if(control_char >= 0) { - OCTET_STRING_t *st = (OCTET_STRING_t *)struct_ptr; - void *p = REALLOC(st->buf, st->size + 2); - if(p) { - st->buf = (uint8_t *)p; - st->buf[st->size++] = control_char; - st->buf[st->size] = '\0'; /* nul-termination */ - return 0; - } - } - - return -1; /* No, it's not */ -} - -asn_enc_rval_t -OCTET_STRING_encode_xer_utf8(const asn_TYPE_descriptor_t *td, const void *sptr, - int ilevel, enum xer_encoder_flags_e flags, - asn_app_consume_bytes_f *cb, void *app_key) { - const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; - asn_enc_rval_t er = { 0, 0, 0 }; - uint8_t *buf, *end; - uint8_t *ss; /* Sequence start */ - ssize_t encoded_len = 0; - - (void)ilevel; /* Unused argument */ - (void)flags; /* Unused argument */ - - if(!st || (!st->buf && st->size)) - ASN__ENCODE_FAILED; - - buf = st->buf; - end = buf + st->size; - for(ss = buf; buf < end; buf++) { - unsigned int ch = *buf; - int s_len; /* Special encoding sequence length */ - - /* - * Escape certain characters: X.680/11.15 - */ - if(ch < sizeof(OCTET_STRING__xer_escape_table) - /sizeof(OCTET_STRING__xer_escape_table[0]) - && (s_len = OCTET_STRING__xer_escape_table[ch].size)) { - if(((buf - ss) && cb(ss, buf - ss, app_key) < 0) - || cb(OCTET_STRING__xer_escape_table[ch].string, s_len, - app_key) < 0) - ASN__ENCODE_FAILED; - encoded_len += (buf - ss) + s_len; - ss = buf + 1; - } - } - - encoded_len += (buf - ss); - if((buf - ss) && cb(ss, buf - ss, app_key) < 0) - ASN__ENCODE_FAILED; - - er.encoded = encoded_len; - ASN__ENCODED_OK(er); -} - -/* - * Convert from hexadecimal format (cstring): "AB CD EF" - */ -static ssize_t OCTET_STRING__convert_hexadecimal(void *sptr, const void *chunk_buf, size_t chunk_size, int have_more) { - OCTET_STRING_t *st = (OCTET_STRING_t *)sptr; - const char *chunk_stop = (const char *)chunk_buf; - const char *p = chunk_stop; - const char *pend = p + chunk_size; - unsigned int clv = 0; - int half = 0; /* Half bit */ - uint8_t *buf; - - /* Reallocate buffer according to high cap estimation */ - size_t new_size = st->size + (chunk_size + 1) / 2; - void *nptr = REALLOC(st->buf, new_size + 1); - if(!nptr) return -1; - st->buf = (uint8_t *)nptr; - buf = st->buf + st->size; - - /* - * If something like " a b c " appears here, the " a b":3 will be - * converted, and the rest skipped. That is, unless buf_size is greater - * than chunk_size, then it'll be equivalent to "ABC0". - */ - for(; p < pend; p++) { - int ch = *(const unsigned char *)p; - switch(ch) { - case 0x09: case 0x0a: case 0x0c: case 0x0d: - case 0x20: - /* Ignore whitespace */ - continue; - case 0x30: case 0x31: case 0x32: case 0x33: case 0x34: /*01234*/ - case 0x35: case 0x36: case 0x37: case 0x38: case 0x39: /*56789*/ - clv = (clv << 4) + (ch - 0x30); - break; - case 0x41: case 0x42: case 0x43: /* ABC */ - case 0x44: case 0x45: case 0x46: /* DEF */ - clv = (clv << 4) + (ch - 0x41 + 10); - break; - case 0x61: case 0x62: case 0x63: /* abc */ - case 0x64: case 0x65: case 0x66: /* def */ - clv = (clv << 4) + (ch - 0x61 + 10); - break; - default: - *buf = 0; /* JIC */ - return -1; - } - if(half++) { - half = 0; - *buf++ = clv; - chunk_stop = p + 1; - } - } - - /* - * Check partial decoding. - */ - if(half) { - if(have_more) { - /* - * Partial specification is fine, - * because no more more PXER_TEXT data is available. - */ - *buf++ = clv << 4; - chunk_stop = p; - } - } else { - chunk_stop = p; - } - - st->size = buf - st->buf; /* Adjust the buffer size */ - assert(st->size <= new_size); - st->buf[st->size] = 0; /* Courtesy termination */ - - return (chunk_stop - (const char *)chunk_buf); /* Converted size */ -} - -/* - * Convert from binary format: "00101011101" - */ -static ssize_t OCTET_STRING__convert_binary(void *sptr, const void *chunk_buf, size_t chunk_size, int have_more) { - BIT_STRING_t *st = (BIT_STRING_t *)sptr; - const char *p = (const char *)chunk_buf; - const char *pend = p + chunk_size; - int bits_unused = st->bits_unused & 0x7; - uint8_t *buf; - - /* Reallocate buffer according to high cap estimation */ - size_t new_size = st->size + (chunk_size + 7) / 8; - void *nptr = REALLOC(st->buf, new_size + 1); - if(!nptr) return -1; - st->buf = (uint8_t *)nptr; - buf = st->buf + st->size; - - (void)have_more; - - if(bits_unused == 0) - bits_unused = 8; - else if(st->size) - buf--; - - /* - * Convert series of 0 and 1 into the octet string. - */ - for(; p < pend; p++) { - int ch = *(const unsigned char *)p; - switch(ch) { - case 0x09: case 0x0a: case 0x0c: case 0x0d: - case 0x20: - /* Ignore whitespace */ - break; - case 0x30: - case 0x31: - if(bits_unused-- <= 0) { - *++buf = 0; /* Clean the cell */ - bits_unused = 7; - } - *buf |= (ch&1) << bits_unused; - break; - default: - st->bits_unused = bits_unused; - return -1; - } - } - - if(bits_unused == 8) { - st->size = buf - st->buf; - st->bits_unused = 0; - } else { - st->size = buf - st->buf + 1; - st->bits_unused = bits_unused; - } - - assert(st->size <= new_size); - st->buf[st->size] = 0; /* Courtesy termination */ - - return chunk_size; /* Converted in full */ -} - -/* - * Something like strtod(), but with stricter rules. - */ -static int -OS__strtoent(int base, const char *buf, const char *end, int32_t *ret_value) { - const int32_t last_unicode_codepoint = 0x10ffff; - int32_t val = 0; - const char *p; - - for(p = buf; p < end; p++) { - int ch = *p; - - switch(ch) { - case 0x30: case 0x31: case 0x32: case 0x33: case 0x34: /*01234*/ - case 0x35: case 0x36: case 0x37: case 0x38: case 0x39: /*56789*/ - val = val * base + (ch - 0x30); - break; - case 0x41: case 0x42: case 0x43: /* ABC */ - case 0x44: case 0x45: case 0x46: /* DEF */ - val = val * base + (ch - 0x41 + 10); - break; - case 0x61: case 0x62: case 0x63: /* abc */ - case 0x64: case 0x65: case 0x66: /* def */ - val = val * base + (ch - 0x61 + 10); - break; - case 0x3b: /* ';' */ - *ret_value = val; - return (p - buf) + 1; - default: - return -1; /* Character set error */ - } - - /* Value exceeds the Unicode range. */ - if(val > last_unicode_codepoint) { - return -1; - } - } - - *ret_value = -1; - return (p - buf); -} - -/* - * Convert from the plain UTF-8 format, expanding entity references: "2 < 3" - */ -static ssize_t -OCTET_STRING__convert_entrefs(void *sptr, const void *chunk_buf, - size_t chunk_size, int have_more) { - OCTET_STRING_t *st = (OCTET_STRING_t *)sptr; - const char *p = (const char *)chunk_buf; - const char *pend = p + chunk_size; - uint8_t *buf; - - /* Reallocate buffer */ - size_t new_size = st->size + chunk_size; - void *nptr = REALLOC(st->buf, new_size + 1); - if(!nptr) return -1; - st->buf = (uint8_t *)nptr; - buf = st->buf + st->size; - - /* - * Convert series of 0 and 1 into the octet string. - */ - for(; p < pend; p++) { - int ch = *(const unsigned char *)p; - int len; /* Length of the rest of the chunk */ - - if(ch != 0x26 /* '&' */) { - *buf++ = ch; - continue; /* That was easy... */ - } - - /* - * Process entity reference. - */ - len = chunk_size - (p - (const char *)chunk_buf); - if(len == 1 /* "&" */) goto want_more; - if(p[1] == 0x23 /* '#' */) { - const char *pval; /* Pointer to start of digits */ - int32_t val = 0; /* Entity reference value */ - int base; - - if(len == 2 /* "&#" */) goto want_more; - if(p[2] == 0x78 /* 'x' */) - pval = p + 3, base = 16; - else - pval = p + 2, base = 10; - len = OS__strtoent(base, pval, p + len, &val); - if(len == -1) { - /* Invalid charset. Just copy verbatim. */ - *buf++ = ch; - continue; - } - if(!len || pval[len-1] != 0x3b) goto want_more; - assert(val > 0); - p += (pval - p) + len - 1; /* Advance past entref */ - - if(val < 0x80) { - *buf++ = (char)val; - } else if(val < 0x800) { - *buf++ = 0xc0 | ((val >> 6)); - *buf++ = 0x80 | ((val & 0x3f)); - } else if(val < 0x10000) { - *buf++ = 0xe0 | ((val >> 12)); - *buf++ = 0x80 | ((val >> 6) & 0x3f); - *buf++ = 0x80 | ((val & 0x3f)); - } else if(val < 0x200000) { - *buf++ = 0xf0 | ((val >> 18)); - *buf++ = 0x80 | ((val >> 12) & 0x3f); - *buf++ = 0x80 | ((val >> 6) & 0x3f); - *buf++ = 0x80 | ((val & 0x3f)); - } else if(val < 0x4000000) { - *buf++ = 0xf8 | ((val >> 24)); - *buf++ = 0x80 | ((val >> 18) & 0x3f); - *buf++ = 0x80 | ((val >> 12) & 0x3f); - *buf++ = 0x80 | ((val >> 6) & 0x3f); - *buf++ = 0x80 | ((val & 0x3f)); - } else { - *buf++ = 0xfc | ((val >> 30) & 0x1); - *buf++ = 0x80 | ((val >> 24) & 0x3f); - *buf++ = 0x80 | ((val >> 18) & 0x3f); - *buf++ = 0x80 | ((val >> 12) & 0x3f); - *buf++ = 0x80 | ((val >> 6) & 0x3f); - *buf++ = 0x80 | ((val & 0x3f)); - } - } else { - /* - * Ugly, limited parsing of & > < - */ - char *sc = (char *)memchr(p, 0x3b, len > 5 ? 5 : len); - if(!sc) goto want_more; - if((sc - p) == 4 - && p[1] == 0x61 /* 'a' */ - && p[2] == 0x6d /* 'm' */ - && p[3] == 0x70 /* 'p' */) { - *buf++ = 0x26; - p = sc; - continue; - } - if((sc - p) == 3) { - if(p[1] == 0x6c) { - *buf = 0x3c; /* '<' */ - } else if(p[1] == 0x67) { - *buf = 0x3e; /* '>' */ - } else { - /* Unsupported entity reference */ - *buf++ = ch; - continue; - } - if(p[2] != 0x74) { - /* Unsupported entity reference */ - *buf++ = ch; - continue; - } - buf++; - p = sc; - continue; - } - /* Unsupported entity reference */ - *buf++ = ch; - } - - continue; - want_more: - if(have_more) { - /* - * We know that no more data (of the same type) - * is coming. Copy the rest verbatim. - */ - *buf++ = ch; - continue; - } - chunk_size = (p - (const char *)chunk_buf); - /* Processing stalled: need more data */ - break; - } - - st->size = buf - st->buf; - assert(st->size <= new_size); - st->buf[st->size] = 0; /* Courtesy termination */ - - return chunk_size; /* Converted in full */ -} - -/* - * Decode OCTET STRING from the XML element's body. - */ -static asn_dec_rval_t -OCTET_STRING__decode_xer( - const asn_codec_ctx_t *opt_codec_ctx, const asn_TYPE_descriptor_t *td, - void **sptr, const char *opt_mname, const void *buf_ptr, size_t size, - int (*opt_unexpected_tag_decoder)(void *struct_ptr, const void *chunk_buf, - size_t chunk_size), - ssize_t (*body_receiver)(void *struct_ptr, const void *chunk_buf, - size_t chunk_size, int have_more)) { - OCTET_STRING_t *st = (OCTET_STRING_t *)*sptr; - const asn_OCTET_STRING_specifics_t *specs = td->specifics - ? (const asn_OCTET_STRING_specifics_t *)td->specifics - : &asn_SPC_OCTET_STRING_specs; - const char *xml_tag = opt_mname ? opt_mname : td->xml_tag; - asn_struct_ctx_t *ctx; /* Per-structure parser context */ - asn_dec_rval_t rval; /* Return value from the decoder */ - int st_allocated; - - /* - * Create the string if does not exist. - */ - if(!st) { - st = (OCTET_STRING_t *)CALLOC(1, specs->struct_size); - *sptr = (void *)st; - if(!st) goto sta_failed; - st_allocated = 1; - } else { - st_allocated = 0; - } - if(!st->buf) { - /* This is separate from above section */ - st->buf = (uint8_t *)CALLOC(1, 1); - if(!st->buf) { - if(st_allocated) { - *sptr = 0; - goto stb_failed; - } else { - goto sta_failed; - } - } - } - - /* Restore parsing context */ - ctx = (asn_struct_ctx_t *)(((char *)*sptr) + specs->ctx_offset); - - return xer_decode_general(opt_codec_ctx, ctx, *sptr, xml_tag, - buf_ptr, size, opt_unexpected_tag_decoder, body_receiver); - -stb_failed: - FREEMEM(st); -sta_failed: - rval.code = RC_FAIL; - rval.consumed = 0; - return rval; -} - -/* - * Decode OCTET STRING from the hexadecimal data. - */ -asn_dec_rval_t -OCTET_STRING_decode_xer_hex(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **sptr, - const char *opt_mname, const void *buf_ptr, - size_t size) { - return OCTET_STRING__decode_xer(opt_codec_ctx, td, sptr, opt_mname, - buf_ptr, size, 0, OCTET_STRING__convert_hexadecimal); -} - -/* - * Decode OCTET STRING from the binary (0/1) data. - */ -asn_dec_rval_t -OCTET_STRING_decode_xer_binary(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **sptr, - const char *opt_mname, const void *buf_ptr, - size_t size) { - return OCTET_STRING__decode_xer(opt_codec_ctx, td, sptr, opt_mname, - buf_ptr, size, 0, OCTET_STRING__convert_binary); -} - -/* - * Decode OCTET STRING from the string (ASCII/UTF-8) data. - */ -asn_dec_rval_t -OCTET_STRING_decode_xer_utf8(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **sptr, - const char *opt_mname, const void *buf_ptr, - size_t size) { - return OCTET_STRING__decode_xer(opt_codec_ctx, td, sptr, opt_mname, - buf_ptr, size, - OCTET_STRING__handle_control_chars, - OCTET_STRING__convert_entrefs); -} - -#ifndef ASN_DISABLE_PER_SUPPORT - -static int -OCTET_STRING_per_get_characters(asn_per_data_t *po, uint8_t *buf, - size_t units, unsigned int bpc, unsigned int unit_bits, - long lb, long ub, const asn_per_constraints_t *pc) { - uint8_t *end = buf + units * bpc; - - ASN_DEBUG("Expanding %d characters into (%ld..%ld):%d", - (int)units, lb, ub, unit_bits); - - /* X.691: 27.5.4 */ - if((unsigned long)ub <= ((unsigned long)2 << (unit_bits - 1))) { - /* Decode without translation */ - lb = 0; - } else if(pc && pc->code2value) { - if(unit_bits > 16) - return 1; /* FATAL: can't have constrained - * UniversalString with more than - * 16 million code points */ - for(; buf < end; buf += bpc) { - int value; - int code = per_get_few_bits(po, unit_bits); - if(code < 0) return -1; /* WMORE */ - value = pc->code2value(code); - if(value < 0) { - ASN_DEBUG("Code %d (0x%02x) is" - " not in map (%ld..%ld)", - code, code, lb, ub); - return 1; /* FATAL */ - } - switch(bpc) { - case 1: *buf = value; break; - case 2: buf[0] = value >> 8; buf[1] = value; break; - case 4: buf[0] = value >> 24; buf[1] = value >> 16; - buf[2] = value >> 8; buf[3] = value; break; - } - } - return 0; - } - - /* Shortcut the no-op copying to the aligned structure */ - if(lb == 0 && (unit_bits == 8 * bpc)) { - return per_get_many_bits(po, buf, 0, unit_bits * units); - } - - for(; buf < end; buf += bpc) { - int32_t code = per_get_few_bits(po, unit_bits); - int32_t ch = code + lb; - if(code < 0) return -1; /* WMORE */ - if(ch > ub) { - ASN_DEBUG("Code %d is out of range (%ld..%ld)", - ch, lb, ub); - return 1; /* FATAL */ - } - switch(bpc) { - case 1: *buf = ch; break; - case 2: buf[0] = ch >> 8; buf[1] = ch; break; - case 4: buf[0] = ch >> 24; buf[1] = ch >> 16; - buf[2] = ch >> 8; buf[3] = ch; break; - } - } - - return 0; -} - -static int -OCTET_STRING_per_put_characters(asn_per_outp_t *po, const uint8_t *buf, - size_t units, unsigned int bpc, unsigned int unit_bits, - long lb, long ub, const asn_per_constraints_t *pc) { - const uint8_t *end = buf + units * bpc; - - ASN_DEBUG("Squeezing %d characters into (%ld..%ld):%d (%d bpc)", - (int)units, lb, ub, unit_bits, bpc); - - /* X.691: 27.5.4 */ - if((unsigned long)ub <= ((unsigned long)2 << (unit_bits - 1))) { - /* Encode as is */ - lb = 0; - } else if(pc && pc->value2code) { - for(; buf < end; buf += bpc) { - int code; - uint32_t value; - switch(bpc) { - case 1: value = *(const uint8_t *)buf; break; - case 2: value = (buf[0] << 8) | buf[1]; break; - case 4: value = (buf[0] << 24) | (buf[1] << 16) - | (buf[2] << 8) | buf[3]; break; - default: return -1; - } - code = pc->value2code(value); - if(code < 0) { - ASN_DEBUG("Character %d (0x%02x) is" - " not in map (%ld..%ld)", - *buf, *buf, lb, ub); - return -1; - } - if(per_put_few_bits(po, code, unit_bits)) - return -1; - } - } - - /* Shortcut the no-op copying to the aligned structure */ - if(lb == 0 && (unit_bits == 8 * bpc)) { - return per_put_many_bits(po, buf, unit_bits * units); - } - - for(ub -= lb; buf < end; buf += bpc) { - int ch; - uint32_t value; - switch(bpc) { - case 1: - value = *(const uint8_t *)buf; - break; - case 2: - value = (buf[0] << 8) | buf[1]; - break; - case 4: - value = (buf[0] << 24) | (buf[1] << 16) | (buf[2] << 8) | buf[3]; - break; - default: - return -1; - } - ch = value - lb; - if(ch < 0 || ch > ub) { - ASN_DEBUG("Character %d (0x%02x) is out of range (%ld..%ld)", *buf, - value, lb, ub + lb); - return -1; - } - if(per_put_few_bits(po, ch, unit_bits)) return -1; - } - - return 0; -} - -static asn_per_constraints_t asn_DEF_OCTET_STRING_constraints = { - { APC_CONSTRAINED, 8, 8, 0, 255 }, - { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 }, - 0, 0 -}; - -asn_dec_rval_t -OCTET_STRING_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, - asn_per_data_t *pd) { - const asn_OCTET_STRING_specifics_t *specs = td->specifics - ? (const asn_OCTET_STRING_specifics_t *)td->specifics - : &asn_SPC_OCTET_STRING_specs; - const asn_per_constraints_t *pc = - constraints ? constraints : td->encoding_constraints.per_constraints; - const asn_per_constraint_t *cval; - const asn_per_constraint_t *csiz; - asn_dec_rval_t rval = { RC_OK, 0 }; - OCTET_STRING_t *st = (OCTET_STRING_t *)*sptr; - ssize_t consumed_myself = 0; - int repeat; - enum { - OS__BPC_CHAR = 1, - OS__BPC_U16 = 2, - OS__BPC_U32 = 4 - } bpc; /* Bytes per character */ - unsigned int unit_bits; - unsigned int canonical_unit_bits; - - (void)opt_codec_ctx; - - if(pc) { - cval = &pc->value; - csiz = &pc->size; - } else { - cval = &asn_DEF_OCTET_STRING_constraints.value; - csiz = &asn_DEF_OCTET_STRING_constraints.size; - } - - switch(specs->subvariant) { - default: - case ASN_OSUBV_ANY: - case ASN_OSUBV_BIT: - ASN_DEBUG("Unrecognized subvariant %d", specs->subvariant); - RETURN(RC_FAIL); - break; - case ASN_OSUBV_STR: - canonical_unit_bits = unit_bits = 8; - if(cval->flags & APC_CONSTRAINED) - unit_bits = cval->range_bits; - bpc = OS__BPC_CHAR; - break; - case ASN_OSUBV_U16: - canonical_unit_bits = unit_bits = 16; - if(cval->flags & APC_CONSTRAINED) - unit_bits = cval->range_bits; - bpc = OS__BPC_U16; - break; - case ASN_OSUBV_U32: - canonical_unit_bits = unit_bits = 32; - if(cval->flags & APC_CONSTRAINED) - unit_bits = cval->range_bits; - bpc = OS__BPC_U32; - break; - } - - /* - * Allocate the string. - */ - if(!st) { - st = (OCTET_STRING_t *)(*sptr = CALLOC(1, specs->struct_size)); - if(!st) RETURN(RC_FAIL); - } - - ASN_DEBUG("PER Decoding %s size %ld .. %ld bits %d", - csiz->flags & APC_EXTENSIBLE ? "extensible" : "non-extensible", - csiz->lower_bound, csiz->upper_bound, csiz->effective_bits); - - if(csiz->flags & APC_EXTENSIBLE) { - int inext = per_get_few_bits(pd, 1); - if(inext < 0) RETURN(RC_WMORE); - if(inext) { - csiz = &asn_DEF_OCTET_STRING_constraints.size; - unit_bits = canonical_unit_bits; - } - } - - if(csiz->effective_bits >= 0) { - FREEMEM(st->buf); - if(bpc) { - st->size = csiz->upper_bound * bpc; - } else { - st->size = (csiz->upper_bound + 7) >> 3; - } - st->buf = (uint8_t *)MALLOC(st->size + 1); - if(!st->buf) { st->size = 0; RETURN(RC_FAIL); } - } - - /* X.691, #16.5: zero-length encoding */ - /* X.691, #16.6: short fixed length encoding (up to 2 octets) */ - /* X.691, #16.7: long fixed length encoding (up to 64K octets) */ - if(csiz->effective_bits == 0) { - int ret; - if(bpc) { - ASN_DEBUG("Encoding OCTET STRING size %ld", - csiz->upper_bound); - ret = OCTET_STRING_per_get_characters(pd, st->buf, - csiz->upper_bound, bpc, unit_bits, - cval->lower_bound, cval->upper_bound, pc); - if(ret > 0) RETURN(RC_FAIL); - } else { - ASN_DEBUG("Encoding BIT STRING size %ld", - csiz->upper_bound); - ret = per_get_many_bits(pd, st->buf, 0, - unit_bits * csiz->upper_bound); - } - if(ret < 0) RETURN(RC_WMORE); - consumed_myself += unit_bits * csiz->upper_bound; - st->buf[st->size] = 0; - RETURN(RC_OK); - } - - st->size = 0; - do { - ssize_t raw_len; - ssize_t len_bytes; - void *p; - int ret; - - /* Get the PER length */ - raw_len = uper_get_length(pd, csiz->effective_bits, csiz->lower_bound, - &repeat); - if(raw_len < 0) RETURN(RC_WMORE); - if(raw_len == 0 && st->buf) break; - - ASN_DEBUG("Got PER length eb %ld, len %ld, %s (%s)", - (long)csiz->effective_bits, (long)raw_len, - repeat ? "repeat" : "once", td->name); - len_bytes = raw_len * bpc; - p = REALLOC(st->buf, st->size + len_bytes + 1); - if(!p) RETURN(RC_FAIL); - st->buf = (uint8_t *)p; - - ret = OCTET_STRING_per_get_characters(pd, &st->buf[st->size], raw_len, - bpc, unit_bits, cval->lower_bound, - cval->upper_bound, pc); - if(ret > 0) RETURN(RC_FAIL); - if(ret < 0) RETURN(RC_WMORE); - st->size += len_bytes; - } while(repeat); - st->buf[st->size] = 0; /* nul-terminate */ - - return rval; -} - -asn_enc_rval_t -OCTET_STRING_encode_uper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_per_outp_t *po) { - const asn_OCTET_STRING_specifics_t *specs = td->specifics - ? (const asn_OCTET_STRING_specifics_t *)td->specifics - : &asn_SPC_OCTET_STRING_specs; - const asn_per_constraints_t *pc = constraints ? constraints - : td->encoding_constraints.per_constraints; - const asn_per_constraint_t *cval; - const asn_per_constraint_t *csiz; - const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; - asn_enc_rval_t er = { 0, 0, 0 }; - int inext = 0; /* Lies not within extension root */ - unsigned int unit_bits; - unsigned int canonical_unit_bits; - size_t size_in_units; - const uint8_t *buf; - int ret; - enum { - OS__BPC_CHAR = 1, - OS__BPC_U16 = 2, - OS__BPC_U32 = 4 - } bpc; /* Bytes per character */ - int ct_extensible; - - if(!st || (!st->buf && st->size)) - ASN__ENCODE_FAILED; - - if(pc) { - cval = &pc->value; - csiz = &pc->size; - } else { - cval = &asn_DEF_OCTET_STRING_constraints.value; - csiz = &asn_DEF_OCTET_STRING_constraints.size; - } - ct_extensible = csiz->flags & APC_EXTENSIBLE; - - switch(specs->subvariant) { - default: - case ASN_OSUBV_ANY: - case ASN_OSUBV_BIT: - ASN__ENCODE_FAILED; - case ASN_OSUBV_STR: - canonical_unit_bits = unit_bits = 8; - if(cval->flags & APC_CONSTRAINED) - unit_bits = cval->range_bits; - bpc = OS__BPC_CHAR; - size_in_units = st->size; - break; - case ASN_OSUBV_U16: - canonical_unit_bits = unit_bits = 16; - if(cval->flags & APC_CONSTRAINED) - unit_bits = cval->range_bits; - bpc = OS__BPC_U16; - size_in_units = st->size >> 1; - if(st->size & 1) { - ASN_DEBUG("%s string size is not modulo 2", td->name); - ASN__ENCODE_FAILED; - } - break; - case ASN_OSUBV_U32: - canonical_unit_bits = unit_bits = 32; - if(cval->flags & APC_CONSTRAINED) - unit_bits = cval->range_bits; - bpc = OS__BPC_U32; - size_in_units = st->size >> 2; - if(st->size & 3) { - ASN_DEBUG("%s string size is not modulo 4", td->name); - ASN__ENCODE_FAILED; - } - break; - } - - ASN_DEBUG("Encoding %s into %" ASN_PRI_SIZE " units of %d bits" - " (%ld..%ld, effective %d)%s", - td->name, size_in_units, unit_bits, - csiz->lower_bound, csiz->upper_bound, - csiz->effective_bits, ct_extensible ? " EXT" : ""); - - /* Figure out whether size lies within PER visible constraint */ - - if(csiz->effective_bits >= 0) { - if((ssize_t)size_in_units < csiz->lower_bound - || (ssize_t)size_in_units > csiz->upper_bound) { - if(ct_extensible) { - csiz = &asn_DEF_OCTET_STRING_constraints.size; - unit_bits = canonical_unit_bits; - inext = 1; - } else { - ASN__ENCODE_FAILED; - } - } - } else { - inext = 0; - } - - if(ct_extensible) { - /* Declare whether length is [not] within extension root */ - if(per_put_few_bits(po, inext, 1)) - ASN__ENCODE_FAILED; - } - - if(csiz->effective_bits >= 0 && !inext) { - ASN_DEBUG("Encoding %" ASN_PRI_SIZE " bytes (%ld), length in %d bits", st->size, - size_in_units - csiz->lower_bound, csiz->effective_bits); - ret = per_put_few_bits(po, size_in_units - csiz->lower_bound, - csiz->effective_bits); - if(ret) ASN__ENCODE_FAILED; - ret = OCTET_STRING_per_put_characters(po, st->buf, size_in_units, bpc, - unit_bits, cval->lower_bound, - cval->upper_bound, pc); - if(ret) ASN__ENCODE_FAILED; - ASN__ENCODED_OK(er); - } - - ASN_DEBUG("Encoding %" ASN_PRI_SIZE " bytes", st->size); - - buf = st->buf; - ASN_DEBUG("Encoding %" ASN_PRI_SIZE " in units", size_in_units); - do { - int need_eom = 0; - ssize_t may_save = uper_put_length(po, size_in_units, &need_eom); - if(may_save < 0) ASN__ENCODE_FAILED; - - ASN_DEBUG("Encoding %" ASN_PRI_SSIZE " of %" ASN_PRI_SIZE "%s", may_save, size_in_units, - need_eom ? ",+EOM" : ""); - - ret = OCTET_STRING_per_put_characters(po, buf, may_save, bpc, unit_bits, - cval->lower_bound, - cval->upper_bound, pc); - if(ret) ASN__ENCODE_FAILED; - - buf += may_save * bpc; - size_in_units -= may_save; - assert(!(may_save & 0x07) || !size_in_units); - if(need_eom && uper_put_length(po, 0, 0)) - ASN__ENCODE_FAILED; /* End of Message length */ - } while(size_in_units); - - ASN__ENCODED_OK(er); -} - -asn_dec_rval_t -OCTET_STRING_decode_aper(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - void **sptr, asn_per_data_t *pd) { - - const asn_OCTET_STRING_specifics_t *specs = td->specifics - ? (const asn_OCTET_STRING_specifics_t *)td->specifics - : &asn_SPC_OCTET_STRING_specs; - const asn_per_constraints_t *pc = constraints ? constraints - : td->encoding_constraints.per_constraints; - const asn_per_constraint_t *cval; - const asn_per_constraint_t *csiz; - asn_dec_rval_t rval = { RC_OK, 0 }; - BIT_STRING_t *st = (BIT_STRING_t *)*sptr; - ssize_t consumed_myself = 0; - int repeat; - enum { - OS__BPC_BIT = 0, - OS__BPC_CHAR = 1, - OS__BPC_U16 = 2, - OS__BPC_U32 = 4 - } bpc; /* Bytes per character */ - unsigned int unit_bits; - unsigned int canonical_unit_bits; - - (void)opt_codec_ctx; - - if(pc) { - cval = &pc->value; - csiz = &pc->size; - } else { - cval = &asn_DEF_OCTET_STRING_constraints.value; - csiz = &asn_DEF_OCTET_STRING_constraints.size; - } - - switch(specs->subvariant) { - default: -/* case ASN_OSUBV_ANY: - ASN_DEBUG("Unrecognized subvariant %d", specs->subvariant); - RETURN(RC_FAIL); -*/ - case ASN_OSUBV_BIT: - canonical_unit_bits = unit_bits = 1; - bpc = OS__BPC_BIT; - break; - case ASN_OSUBV_ANY: - case ASN_OSUBV_STR: - canonical_unit_bits = unit_bits = 8; -/* if(cval->flags & APC_CONSTRAINED) - unit_bits = cval->range_bits; -*/ - bpc = OS__BPC_CHAR; - break; - case ASN_OSUBV_U16: - canonical_unit_bits = unit_bits = 16; - if(cval->flags & APC_CONSTRAINED) - unit_bits = cval->range_bits; - bpc = OS__BPC_U16; - break; - case ASN_OSUBV_U32: - canonical_unit_bits = unit_bits = 32; - if(cval->flags & APC_CONSTRAINED) - unit_bits = cval->range_bits; - bpc = OS__BPC_U32; - break; - } - - /* - * Allocate the string. - */ - if(!st) { - st = (BIT_STRING_t *)(*sptr = CALLOC(1, specs->struct_size)); - if(!st) RETURN(RC_FAIL); - } - - ASN_DEBUG("PER Decoding %s size %ld .. %ld bits %d", - csiz->flags & APC_EXTENSIBLE ? "extensible" : "non-extensible", - csiz->lower_bound, csiz->upper_bound, csiz->effective_bits); - - if(csiz->flags & APC_EXTENSIBLE) { - int inext = per_get_few_bits(pd, 1); - if(inext < 0) RETURN(RC_WMORE); - if(inext) { - csiz = &asn_DEF_OCTET_STRING_constraints.size; - cval = &asn_DEF_OCTET_STRING_constraints.value; - unit_bits = canonical_unit_bits; - } - } - - if(csiz->effective_bits >= 0) { - FREEMEM(st->buf); - if(bpc) { - st->size = csiz->upper_bound * bpc; - } else { - st->size = (csiz->upper_bound + 7) >> 3; - } - st->buf = (uint8_t *)MALLOC(st->size + 1); - if(!st->buf) { st->size = 0; RETURN(RC_FAIL); } - } - - /* X.691, #16.5: zero-length encoding */ - /* X.691, #16.6: short fixed length encoding (up to 2 octets) */ - /* X.691, #16.7: long fixed length encoding (up to 64K octets) */ - if(csiz->effective_bits == 0) { - int ret; - if (st->size > 2) { /* X.691 #16 NOTE 1 */ - if (aper_get_align(pd) < 0) - RETURN(RC_FAIL); - } - if(bpc) { - ASN_DEBUG("Decoding OCTET STRING size %ld", - csiz->upper_bound); - ret = OCTET_STRING_per_get_characters(pd, st->buf, - csiz->upper_bound, bpc, unit_bits, - cval->lower_bound, cval->upper_bound, pc); - if(ret > 0) RETURN(RC_FAIL); - } else { - ASN_DEBUG("Decoding BIT STRING size %ld", - csiz->upper_bound); - ret = per_get_many_bits(pd, st->buf, 0, - unit_bits * csiz->upper_bound); - } - if(ret < 0) RETURN(RC_WMORE); - consumed_myself += unit_bits * csiz->upper_bound; - st->buf[st->size] = 0; - if(bpc == 0) { - int ubs = (csiz->upper_bound & 0x7); - st->bits_unused = ubs ? 8 - ubs : 0; - } - RETURN(RC_OK); - } - - st->size = 0; - do { - ssize_t raw_len; - ssize_t len_bytes; - ssize_t len_bits; - void *p; - int ret; - - /* Get the PER length */ - if (csiz->upper_bound - csiz->lower_bound == 0) - /* Indefinite length case */ - raw_len = aper_get_length(pd, -1, csiz->effective_bits, &repeat); - else - raw_len = aper_get_length(pd, csiz->upper_bound - csiz->lower_bound + 1, csiz->effective_bits, &repeat); - repeat = 0; - if(raw_len < 0) RETURN(RC_WMORE); - raw_len += csiz->lower_bound; - - ASN_DEBUG("Got PER length eb %ld, len %ld, %s (%s)", - (long)csiz->effective_bits, (long)raw_len, - repeat ? "repeat" : "once", td->name); - - if (raw_len > 2) { /* X.691 #16 NOTE 1 */ - if (aper_get_align(pd) < 0) - RETURN(RC_FAIL); - } - - if(bpc) { - len_bytes = raw_len * bpc; - len_bits = len_bytes * unit_bits; - } else { - len_bits = raw_len; - len_bytes = (len_bits + 7) >> 3; - if(len_bits & 0x7) - st->bits_unused = 8 - (len_bits & 0x7); - /* len_bits be multiple of 16K if repeat is set */ - } - p = REALLOC(st->buf, st->size + len_bytes + 1); - if(!p) RETURN(RC_FAIL); - st->buf = (uint8_t *)p; - - if(bpc) { - ret = OCTET_STRING_per_get_characters(pd, - &st->buf[st->size], raw_len, bpc, unit_bits, - cval->lower_bound, cval->upper_bound, pc); - if(ret > 0) RETURN(RC_FAIL); - } else { - ret = per_get_many_bits(pd, &st->buf[st->size], - 0, len_bits); - } - if(ret < 0) RETURN(RC_WMORE); - st->size += len_bytes; - } while(repeat); - st->buf[st->size] = 0; /* nul-terminate */ - - return rval; -} - -asn_enc_rval_t -OCTET_STRING_encode_aper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_per_outp_t *po) { - - const asn_OCTET_STRING_specifics_t *specs = td->specifics - ? (const asn_OCTET_STRING_specifics_t *)td->specifics - : &asn_SPC_OCTET_STRING_specs; - const asn_per_constraints_t *pc = constraints ? constraints - : td->encoding_constraints.per_constraints; - const asn_per_constraint_t *cval; - const asn_per_constraint_t *csiz; - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - asn_enc_rval_t er = { 0, 0, 0 }; - int inext = 0; /* Lies not within extension root */ - unsigned int unit_bits; - unsigned int canonical_unit_bits; - unsigned int sizeinunits; - const uint8_t *buf; - int ret; - enum { - OS__BPC_BIT = 0, - OS__BPC_CHAR = 1, - OS__BPC_U16 = 2, - OS__BPC_U32 = 4 - } bpc; /* Bytes per character */ - int ct_extensible; - - if(!st || (!st->buf && st->size)) - ASN__ENCODE_FAILED; - - if(pc) { - cval = &pc->value; - csiz = &pc->size; - } else { - cval = &asn_DEF_OCTET_STRING_constraints.value; - csiz = &asn_DEF_OCTET_STRING_constraints.size; - } - ct_extensible = csiz->flags & APC_EXTENSIBLE; - - switch(specs->subvariant) { - default: - /* case ASN_OSUBV_ANY: - ASN__ENCODE_FAILED; - */ - case ASN_OSUBV_BIT: - canonical_unit_bits = unit_bits = 1; - bpc = OS__BPC_BIT; - sizeinunits = st->size * 8 - (st->bits_unused & 0x07); - ASN_DEBUG("BIT STRING of %d bytes", - sizeinunits); - break; - case ASN_OSUBV_ANY: - case ASN_OSUBV_STR: - canonical_unit_bits = unit_bits = 8; -/* if(cval->flags & APC_CONSTRAINED) - unit_bits = 8; -*/ - bpc = OS__BPC_CHAR; - sizeinunits = st->size; - break; - case ASN_OSUBV_U16: - canonical_unit_bits = unit_bits = 16; - if(cval->flags & APC_CONSTRAINED) - unit_bits = cval->range_bits; - bpc = OS__BPC_U16; - sizeinunits = st->size / 2; - break; - case ASN_OSUBV_U32: - canonical_unit_bits = unit_bits = 32; - if(cval->flags & APC_CONSTRAINED) - unit_bits = cval->range_bits; - bpc = OS__BPC_U32; - sizeinunits = st->size / 4; - break; - } - - ASN_DEBUG("Encoding %s into %d units of %d bits" - " (%ld..%ld, effective %d)%s", - td->name, sizeinunits, unit_bits, - csiz->lower_bound, csiz->upper_bound, - csiz->effective_bits, ct_extensible ? " EXT" : ""); - - /* Figure out wheter size lies within PER visible constraint */ - - if(csiz->effective_bits >= 0) { - if((int)sizeinunits < csiz->lower_bound - || (int)sizeinunits > csiz->upper_bound) { - if(ct_extensible) { - cval = &asn_DEF_OCTET_STRING_constraints.value; - csiz = &asn_DEF_OCTET_STRING_constraints.size; - unit_bits = canonical_unit_bits; - inext = 1; - } else - ASN__ENCODE_FAILED; - } - } else { - inext = 0; - } - - - if(ct_extensible) { - /* Declare whether length is [not] within extension root */ - if(per_put_few_bits(po, inext, 1)) - ASN__ENCODE_FAILED; - } - - /* X.691, #16.5: zero-length encoding */ - /* X.691, #16.6: short fixed length encoding (up to 2 octets) */ - /* X.691, #16.7: long fixed length encoding (up to 64K octets) */ - if(csiz->effective_bits >= 0) { - ASN_DEBUG("Encoding %lu bytes (%ld), length in %d bits", - st->size, sizeinunits - csiz->lower_bound, - csiz->effective_bits); - if (csiz->effective_bits > 0) { - ret = aper_put_length(po, csiz->upper_bound - csiz->lower_bound + 1, sizeinunits - csiz->lower_bound); - if(ret) ASN__ENCODE_FAILED; - } - /* EB MOD - AFAIU if lb != ub it is aligned whatever the number of bits */ - if ((st->size > 2) || (csiz->lower_bound != csiz->upper_bound)) { /* X.691 #16.11 */ - if (aper_put_align(po) < 0) - ASN__ENCODE_FAILED; - } - if(bpc) { - ret = OCTET_STRING_per_put_characters(po, st->buf, - sizeinunits, bpc, unit_bits, - cval->lower_bound, cval->upper_bound, pc); - } else { - ret = per_put_many_bits(po, st->buf, - sizeinunits * unit_bits); - } - if(ret) ASN__ENCODE_FAILED; - ASN__ENCODED_OK(er); - } - - ASN_DEBUG("Encoding %lu bytes", st->size); - - if(sizeinunits == 0) { - if(aper_put_length(po, -1, 0)) - ASN__ENCODE_FAILED; - ASN__ENCODED_OK(er); - } - - buf = st->buf; - while(sizeinunits) { - ssize_t maySave = aper_put_length(po, -1, sizeinunits); - - if(maySave < 0) ASN__ENCODE_FAILED; - - ASN_DEBUG("Encoding %ld of %ld", - (long)maySave, (long)sizeinunits); - - if(bpc) { - ret = OCTET_STRING_per_put_characters(po, buf, - maySave, bpc, unit_bits, - cval->lower_bound, cval->upper_bound, pc); - } else { - ret = per_put_many_bits(po, buf, maySave * unit_bits); - } - if(ret) ASN__ENCODE_FAILED; - - if(bpc) - buf += maySave * bpc; - else - buf += maySave >> 3; - sizeinunits -= maySave; - assert(!(maySave & 0x07) || !sizeinunits); - } - - ASN__ENCODED_OK(er); -} - -#endif /* ASN_DISABLE_PER_SUPPORT */ - -int -OCTET_STRING_print(const asn_TYPE_descriptor_t *td, const void *sptr, - int ilevel, asn_app_consume_bytes_f *cb, void *app_key) { - const char * const h2c = "0123456789ABCDEF"; - const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; - char scratch[16 * 3 + 4]; - char *p = scratch; - uint8_t *buf; - uint8_t *end; - size_t i; - - (void)td; /* Unused argument */ - - if(!st || (!st->buf && st->size)) - return (cb("", 8, app_key) < 0) ? -1 : 0; - - /* - * Dump the contents of the buffer in hexadecimal. - */ - buf = st->buf; - end = buf + st->size; - for(i = 0; buf < end; buf++, i++) { - if(!(i % 16) && (i || st->size > 16)) { - if(cb(scratch, p - scratch, app_key) < 0) - return -1; - _i_INDENT(1); - p = scratch; - } - *p++ = h2c[(*buf >> 4) & 0x0F]; - *p++ = h2c[*buf & 0x0F]; - *p++ = 0x20; - } - - if(p > scratch) { - p--; /* Remove the tail space */ - if(cb(scratch, p - scratch, app_key) < 0) - return -1; - } - - return 0; -} - -int -OCTET_STRING_print_utf8(const asn_TYPE_descriptor_t *td, const void *sptr, - int ilevel, asn_app_consume_bytes_f *cb, - void *app_key) { - const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; - - (void)td; /* Unused argument */ - (void)ilevel; /* Unused argument */ - - if(st && (st->buf || !st->size)) { - return (cb(st->buf, st->size, app_key) < 0) ? -1 : 0; - } else { - return (cb("", 8, app_key) < 0) ? -1 : 0; - } -} - -void -OCTET_STRING_free(const asn_TYPE_descriptor_t *td, void *sptr, - enum asn_struct_free_method method) { - OCTET_STRING_t *st = (OCTET_STRING_t *)sptr; - const asn_OCTET_STRING_specifics_t *specs; - asn_struct_ctx_t *ctx; - struct _stack *stck; - - if(!td || !st) - return; - - specs = td->specifics - ? (const asn_OCTET_STRING_specifics_t *)td->specifics - : &asn_SPC_OCTET_STRING_specs; - ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset); - - ASN_DEBUG("Freeing %s as OCTET STRING", td->name); - - if(st->buf) { - FREEMEM(st->buf); - st->buf = 0; - } - - /* - * Remove decode-time stack. - */ - stck = (struct _stack *)ctx->ptr; - if(stck) { - while(stck->tail) { - struct _stack_el *sel = stck->tail; - stck->tail = sel->prev; - FREEMEM(sel); - } - FREEMEM(stck); - } - - switch(method) { - case ASFM_FREE_EVERYTHING: - FREEMEM(sptr); - break; - case ASFM_FREE_UNDERLYING: - break; - case ASFM_FREE_UNDERLYING_AND_RESET: - memset(sptr, 0, - td->specifics - ? ((const asn_OCTET_STRING_specifics_t *)(td->specifics)) - ->struct_size - : sizeof(OCTET_STRING_t)); - break; - } -} - -/* - * Conversion routines. - */ -int -OCTET_STRING_fromBuf(OCTET_STRING_t *st, const char *str, int len) { - void *buf; - - if(st == 0 || (str == 0 && len)) { - errno = EINVAL; - return -1; - } - - /* - * Clear the OCTET STRING. - */ - if(str == NULL) { - FREEMEM(st->buf); - st->buf = 0; - st->size = 0; - return 0; - } - - /* Determine the original string size, if not explicitly given */ - if(len < 0) - len = strlen(str); - - /* Allocate and fill the memory */ - buf = MALLOC(len + 1); - if(buf == NULL) - return -1; - - memcpy(buf, str, len); - ((uint8_t *)buf)[len] = '\0'; /* Couldn't use memcpy(len+1)! */ - FREEMEM(st->buf); - st->buf = (uint8_t *)buf; - st->size = len; - - return 0; -} - -OCTET_STRING_t * -OCTET_STRING_new_fromBuf(const asn_TYPE_descriptor_t *td, const char *str, - int len) { - const asn_OCTET_STRING_specifics_t *specs = - td->specifics ? (const asn_OCTET_STRING_specifics_t *)td->specifics - : &asn_SPC_OCTET_STRING_specs; - OCTET_STRING_t *st; - - st = (OCTET_STRING_t *)CALLOC(1, specs->struct_size); - if(st && str && OCTET_STRING_fromBuf(st, str, len)) { - FREEMEM(st); - st = NULL; - } - - return st; -} - -/* - * Lexicographically compare the common prefix of both strings, - * and if it is the same return -1 for the smallest string. - */ -int -OCTET_STRING_compare(const asn_TYPE_descriptor_t *td, const void *aptr, - const void *bptr) { - const asn_OCTET_STRING_specifics_t *specs = td->specifics; - const OCTET_STRING_t *a = aptr; - const OCTET_STRING_t *b = bptr; - - assert(!specs || specs->subvariant != ASN_OSUBV_BIT); - - if(a && b) { - size_t common_prefix_size = a->size <= b->size ? a->size : b->size; - int ret = memcmp(a->buf, b->buf, common_prefix_size); - if(ret == 0) { - /* Figure out which string with equal prefixes is longer. */ - if(a->size < b->size) { - return -1; - } else if(a->size > b->size) { - return 1; - } else { - return 0; - } - } else { - return ret < 0 ? -1 : 1; - } - } else if(!a && !b) { - return 0; - } else if(!a) { - return -1; - } else { - return 1; - } - -} - -/* - * Biased function for randomizing character values around their limits. - */ -static uint32_t -OCTET_STRING__random_char(unsigned long lb, unsigned long ub) { - assert(lb <= ub); - switch(asn_random_between(0, 16)) { - case 0: - if(lb < ub) return lb + 1; - /* Fall through */ - case 1: - return lb; - case 2: - if(lb < ub) return ub - 1; - /* Fall through */ - case 3: - return ub; - default: - return asn_random_between(lb, ub); - } -} - - -size_t -OCTET_STRING_random_length_constrained( - const asn_TYPE_descriptor_t *td, - const asn_encoding_constraints_t *constraints, size_t max_length) { - const unsigned lengths[] = {0, 1, 2, 3, 4, 8, - 126, 127, 128, 16383, 16384, 16385, - 65534, 65535, 65536, 65537}; - size_t rnd_len; - - /* Figure out how far we should go */ - rnd_len = lengths[asn_random_between( - 0, sizeof(lengths) / sizeof(lengths[0]) - 1)]; - - if(!constraints || !constraints->per_constraints) - constraints = &td->encoding_constraints; - if(constraints->per_constraints) { - const asn_per_constraint_t *pc = &constraints->per_constraints->size; - if(pc->flags & APC_CONSTRAINED) { - long suggested_upper_bound = pc->upper_bound < (ssize_t)max_length - ? pc->upper_bound - : (ssize_t)max_length; - if(max_length <= (size_t)pc->lower_bound) { - return pc->lower_bound; - } - if(pc->flags & APC_EXTENSIBLE) { - switch(asn_random_between(0, 5)) { - case 0: - if(pc->lower_bound > 0) { - rnd_len = pc->lower_bound - 1; - break; - } - /* Fall through */ - case 1: - rnd_len = pc->upper_bound + 1; - break; - case 2: - /* Keep rnd_len from the table */ - if(rnd_len <= max_length) { - break; - } - /* Fall through */ - default: - rnd_len = asn_random_between(pc->lower_bound, - suggested_upper_bound); - } - } else { - rnd_len = - asn_random_between(pc->lower_bound, suggested_upper_bound); - } - } else { - rnd_len = asn_random_between(0, max_length); - } - } else if(rnd_len > max_length) { - rnd_len = asn_random_between(0, max_length); - } - - return rnd_len; -} - -asn_random_fill_result_t -OCTET_STRING_random_fill(const asn_TYPE_descriptor_t *td, void **sptr, - const asn_encoding_constraints_t *constraints, - size_t max_length) { - const asn_OCTET_STRING_specifics_t *specs = td->specifics - ? (const asn_OCTET_STRING_specifics_t *)td->specifics - : &asn_SPC_OCTET_STRING_specs; - asn_random_fill_result_t result_ok = {ARFILL_OK, 1}; - asn_random_fill_result_t result_failed = {ARFILL_FAILED, 0}; - asn_random_fill_result_t result_skipped = {ARFILL_SKIPPED, 0}; - unsigned int unit_bytes = 1; - unsigned long clb = 0; /* Lower bound on char */ - unsigned long cub = 255; /* Higher bound on char value */ - uint8_t *buf; - uint8_t *bend; - uint8_t *b; - size_t rnd_len; - OCTET_STRING_t *st; - - if(max_length == 0 && !*sptr) return result_skipped; - - switch(specs->subvariant) { - default: - case ASN_OSUBV_ANY: - return result_failed; - case ASN_OSUBV_BIT: - /* Handled by BIT_STRING itself. */ - return result_failed; - case ASN_OSUBV_STR: - unit_bytes = 1; - clb = 0; - cub = 255; - break; - case ASN_OSUBV_U16: - unit_bytes = 2; - clb = 0; - cub = 65535; - break; - case ASN_OSUBV_U32: - unit_bytes = 4; - clb = 0; - cub = 0x10FFFF; - break; - } - - if(!constraints || !constraints->per_constraints) - constraints = &td->encoding_constraints; - if(constraints->per_constraints) { - const asn_per_constraint_t *pc = &constraints->per_constraints->value; - if(pc->flags & APC_SEMI_CONSTRAINED) { - clb = pc->lower_bound; - } else if(pc->flags & APC_CONSTRAINED) { - clb = pc->lower_bound; - cub = pc->upper_bound; - } - } - - rnd_len = - OCTET_STRING_random_length_constrained(td, constraints, max_length); - - buf = CALLOC(unit_bytes, rnd_len + 1); - if(!buf) return result_failed; - - bend = &buf[unit_bytes * rnd_len]; - - switch(unit_bytes) { - case 1: - for(b = buf; b < bend; b += unit_bytes) { - *(uint8_t *)b = OCTET_STRING__random_char(clb, cub); - } - *(uint8_t *)b = 0; - break; - case 2: - for(b = buf; b < bend; b += unit_bytes) { - uint32_t code = OCTET_STRING__random_char(clb, cub); - b[0] = code >> 8; - b[1] = code; - } - *(uint16_t *)b = 0; - break; - case 4: - for(b = buf; b < bend; b += unit_bytes) { - uint32_t code = OCTET_STRING__random_char(clb, cub); - b[0] = code >> 24; - b[1] = code >> 16; - b[2] = code >> 8; - b[3] = code; - } - *(uint32_t *)b = 0; - break; - } - - if(*sptr) { - st = *sptr; - FREEMEM(st->buf); - } else { - st = (OCTET_STRING_t *)(*sptr = CALLOC(1, specs->struct_size)); - if(!st) { - FREEMEM(buf); - return result_failed; - } - } - - st->buf = buf; - st->size = unit_bytes * rnd_len; - - result_ok.length = st->size; - return result_ok; -} diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/OCTET_STRING.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/OCTET_STRING.h deleted file mode 100644 index c2f8bae..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/OCTET_STRING.h +++ /dev/null @@ -1,102 +0,0 @@ -/*- - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef _OCTET_STRING_H_ -#define _OCTET_STRING_H_ - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct OCTET_STRING { - uint8_t *buf; /* Buffer with consecutive OCTET_STRING bits */ - size_t size; /* Size of the buffer */ - - asn_struct_ctx_t _asn_ctx; /* Parsing across buffer boundaries */ -} OCTET_STRING_t; - -extern asn_TYPE_descriptor_t asn_DEF_OCTET_STRING; -extern asn_TYPE_operation_t asn_OP_OCTET_STRING; - -asn_struct_free_f OCTET_STRING_free; -asn_struct_print_f OCTET_STRING_print; -asn_struct_print_f OCTET_STRING_print_utf8; -asn_struct_compare_f OCTET_STRING_compare; -ber_type_decoder_f OCTET_STRING_decode_ber; -der_type_encoder_f OCTET_STRING_encode_der; -xer_type_decoder_f OCTET_STRING_decode_xer_hex; /* Hexadecimal */ -xer_type_decoder_f OCTET_STRING_decode_xer_binary; /* 01010111010 */ -xer_type_decoder_f OCTET_STRING_decode_xer_utf8; /* ASCII/UTF-8 */ -xer_type_encoder_f OCTET_STRING_encode_xer; -xer_type_encoder_f OCTET_STRING_encode_xer_utf8; -oer_type_decoder_f OCTET_STRING_decode_oer; -oer_type_encoder_f OCTET_STRING_encode_oer; -per_type_decoder_f OCTET_STRING_decode_uper; -per_type_encoder_f OCTET_STRING_encode_uper; -per_type_decoder_f OCTET_STRING_decode_aper; -per_type_encoder_f OCTET_STRING_encode_aper; -asn_random_fill_f OCTET_STRING_random_fill; - -#define OCTET_STRING_constraint asn_generic_no_constraint -#define OCTET_STRING_decode_xer OCTET_STRING_decode_xer_hex - -/****************************** - * Handy conversion routines. * - ******************************/ - -/* - * This function clears the previous value of the OCTET STRING (if any) - * and then allocates a new memory with the specified content (str/size). - * If size = -1, the size of the original string will be determined - * using strlen(str). - * If str equals to NULL, the function will silently clear the - * current contents of the OCTET STRING. - * Returns 0 if it was possible to perform operation, -1 otherwise. - */ -int OCTET_STRING_fromBuf(OCTET_STRING_t *s, const char *str, int size); - -/* Handy conversion from the C string into the OCTET STRING. */ -#define OCTET_STRING_fromString(s, str) OCTET_STRING_fromBuf(s, str, -1) - -/* - * Allocate and fill the new OCTET STRING and return a pointer to the newly - * allocated object. NULL is permitted in str: the function will just allocate - * empty OCTET STRING. - */ -OCTET_STRING_t *OCTET_STRING_new_fromBuf(const asn_TYPE_descriptor_t *td, - const char *str, int size); - -/**************************** - * Internally useful stuff. * - ****************************/ - -typedef struct asn_OCTET_STRING_specifics_s { - /* - * Target structure description. - */ - unsigned struct_size; /* Size of the structure */ - unsigned ctx_offset; /* Offset of the asn_struct_ctx_t member */ - - enum asn_OS_Subvariant { - ASN_OSUBV_ANY, /* The open type (ANY) */ - ASN_OSUBV_BIT, /* BIT STRING */ - ASN_OSUBV_STR, /* String types, not {BMP,Universal}String */ - ASN_OSUBV_U16, /* 16-bit character (BMPString) */ - ASN_OSUBV_U32 /* 32-bit character (UniversalString) */ - } subvariant; -} asn_OCTET_STRING_specifics_t; - -extern asn_OCTET_STRING_specifics_t asn_SPC_OCTET_STRING_specs; - -size_t OCTET_STRING_random_length_constrained( - const asn_TYPE_descriptor_t *, const asn_encoding_constraints_t *, - size_t max_length); - -#ifdef __cplusplus -} -#endif - -#endif /* _OCTET_STRING_H_ */ diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/OCTET_STRING_oer.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/OCTET_STRING_oer.c deleted file mode 100644 index c16faea..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/OCTET_STRING_oer.c +++ /dev/null @@ -1,171 +0,0 @@ -/* - * Copyright (c) 2017 Lev Walkin . - * All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef ASN_DISABLE_OER_SUPPORT - -#include -#include -#include - -asn_dec_rval_t -OCTET_STRING_decode_oer(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_oer_constraints_t *constraints, void **sptr, - const void *ptr, size_t size) { - const asn_OCTET_STRING_specifics_t *specs = - td->specifics ? (const asn_OCTET_STRING_specifics_t *)td->specifics - : &asn_SPC_OCTET_STRING_specs; - OCTET_STRING_t *st = (OCTET_STRING_t *)*sptr; - const asn_oer_constraints_t *cts = - constraints ? constraints : td->encoding_constraints.oer_constraints; - ssize_t ct_size = cts ? cts->size : -1; - asn_dec_rval_t rval = {RC_OK, 0}; - size_t expected_length = 0; - - size_t unit_bytes; - switch(specs->subvariant) { - default: - case ASN_OSUBV_BIT: - ASN_DEBUG("Invalid use of OCTET STRING to decode BIT STRING"); - ASN__DECODE_FAILED; - case ASN_OSUBV_ANY: - /* Fall through */ - case ASN_OSUBV_STR: - unit_bytes = 1; - break; - case ASN_OSUBV_U16: - unit_bytes = 2; - break; - case ASN_OSUBV_U32: - unit_bytes = 4; - break; - } - - (void)opt_codec_ctx; - - if(!st) { - st = (OCTET_STRING_t *)(*sptr = CALLOC(1, specs->struct_size)); - if(!st) ASN__DECODE_FAILED; - } - - if(ct_size >= 0) { - expected_length = unit_bytes * ct_size; - } else { - /* - * X.696 (08/2015) #27.2 - * Encode length determinant as _number of octets_, but only - * if upper bound is not equal to lower bound. - */ - ssize_t len_len = oer_fetch_length(ptr, size, &expected_length); - if(len_len > 0) { - rval.consumed = len_len; - ptr = (const char *)ptr + len_len; - size -= len_len; - } else if(len_len == 0) { - ASN__DECODE_STARVED; - } else if(len_len < 0) { - ASN__DECODE_FAILED; - } - - if(expected_length % unit_bytes != 0) { - ASN_DEBUG( - "Data size %" ASN_PRI_SIZE " bytes is not consistent with multiplier %" ASN_PRI_SIZE "", - expected_length, unit_bytes); - ASN__DECODE_FAILED; - } - } - - if(size < expected_length) { - ASN__DECODE_STARVED; - } else { - uint8_t *buf = MALLOC(expected_length + 1); - if(buf == NULL) { - ASN__DECODE_FAILED; - } else { - memcpy(buf, ptr, expected_length); - buf[expected_length] = '\0'; - } - FREEMEM(st->buf); - st->buf = buf; - st->size = expected_length; - - rval.consumed += expected_length; - return rval; - } -} - -/* - * Encode as Canonical OER. - */ -asn_enc_rval_t -OCTET_STRING_encode_oer(const asn_TYPE_descriptor_t *td, - const asn_oer_constraints_t *constraints, - const void *sptr, asn_app_consume_bytes_f *cb, - void *app_key) { - const asn_OCTET_STRING_specifics_t *specs = - td->specifics ? (const asn_OCTET_STRING_specifics_t *)td->specifics - : &asn_SPC_OCTET_STRING_specs; - const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; - const asn_oer_constraints_t *cts = - constraints ? constraints : td->encoding_constraints.oer_constraints; - ssize_t ct_size = cts ? cts->size : -1; - asn_enc_rval_t er = {0, 0, 0}; - - if(!st) ASN__ENCODE_FAILED; - - ASN_DEBUG("Encoding %s %" ASN_PRI_SIZE " as OCTET STRING", td ? td->name : "", st->size); - - if(ct_size >= 0) { - /* - * Check that available data matches the constraint - */ - size_t unit_bytes; - switch(specs->subvariant) { - default: - case ASN_OSUBV_BIT: - ASN_DEBUG("Invalid use of OCTET STRING to encode BIT STRING"); - ASN__ENCODE_FAILED; - case ASN_OSUBV_ANY: - /* Fall through */ - case ASN_OSUBV_STR: - unit_bytes = 1; - break; - case ASN_OSUBV_U16: - unit_bytes = 2; - break; - case ASN_OSUBV_U32: - unit_bytes = 4; - break; - } - - if(st->size != unit_bytes * (size_t)ct_size) { - ASN_DEBUG( - "Trying to encode %s (%" ASN_PRI_SIZE " bytes) which doesn't fit SIZE " - "constraint (%" ASN_PRI_SIZE ")", - td->name, st->size, ct_size); - ASN__ENCODE_FAILED; - } - } else { - /* - * X.696 (08/2015) #27.2 - * Encode length determinant as _number of octets_, but only - * if upper bound is not equal to lower bound. - */ - ssize_t ret = oer_serialize_length(st->size, cb, app_key); - if(ret < 0) { - ASN__ENCODE_FAILED; - } - er.encoded += ret; - } - - er.encoded += st->size; - if(cb(st->buf, st->size, app_key) < 0) { - ASN__ENCODE_FAILED; - } else { - ASN__ENCODED_OK(er); - } -} - -#endif /* ASN_DISABLE_OER_SUPPORT */ diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/OCUCP-PF-Container.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/OCUCP-PF-Container.c deleted file mode 100644 index 121932b..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/OCUCP-PF-Container.c +++ /dev/null @@ -1,140 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "OCUCP-PF-Container.h" - -static int -memb_numberOfActive_UEs_constraint_3(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 1 && value <= 65536)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_oer_constraints_t asn_OER_memb_numberOfActive_UEs_constr_4 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_memb_numberOfActive_UEs_constr_4 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 16, -1, 1, 65536 } /* (1..65536,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_cu_CP_Resource_Status_3[] = { - { ATF_POINTER, 1, offsetof(struct OCUCP_PF_Container__cu_CP_Resource_Status, numberOfActive_UEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_numberOfActive_UEs_constr_4, &asn_PER_memb_numberOfActive_UEs_constr_4, memb_numberOfActive_UEs_constraint_3 }, - 0, 0, /* No default value */ - "numberOfActive-UEs" - }, -}; -static const int asn_MAP_cu_CP_Resource_Status_oms_3[] = { 0 }; -static const ber_tlv_tag_t asn_DEF_cu_CP_Resource_Status_tags_3[] = { - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_cu_CP_Resource_Status_tag2el_3[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* numberOfActive-UEs */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_cu_CP_Resource_Status_specs_3 = { - sizeof(struct OCUCP_PF_Container__cu_CP_Resource_Status), - offsetof(struct OCUCP_PF_Container__cu_CP_Resource_Status, _asn_ctx), - asn_MAP_cu_CP_Resource_Status_tag2el_3, - 1, /* Count of tags in the map */ - asn_MAP_cu_CP_Resource_Status_oms_3, /* Optional members */ - 1, 0, /* Root/Additions */ - -1, /* First extension addition */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_cu_CP_Resource_Status_3 = { - "cu-CP-Resource-Status", - "cu-CP-Resource-Status", - &asn_OP_SEQUENCE, - asn_DEF_cu_CP_Resource_Status_tags_3, - sizeof(asn_DEF_cu_CP_Resource_Status_tags_3) - /sizeof(asn_DEF_cu_CP_Resource_Status_tags_3[0]) - 1, /* 1 */ - asn_DEF_cu_CP_Resource_Status_tags_3, /* Same as above */ - sizeof(asn_DEF_cu_CP_Resource_Status_tags_3) - /sizeof(asn_DEF_cu_CP_Resource_Status_tags_3[0]), /* 2 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_cu_CP_Resource_Status_3, - 1, /* Elements count */ - &asn_SPC_cu_CP_Resource_Status_specs_3 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_OCUCP_PF_Container_1[] = { - { ATF_POINTER, 1, offsetof(struct OCUCP_PF_Container, gNB_CU_CP_Name), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GNB_CU_CP_Name, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "gNB-CU-CP-Name" - }, - { ATF_NOFLAGS, 0, offsetof(struct OCUCP_PF_Container, cu_CP_Resource_Status), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - 0, - &asn_DEF_cu_CP_Resource_Status_3, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "cu-CP-Resource-Status" - }, -}; -static const int asn_MAP_OCUCP_PF_Container_oms_1[] = { 0 }; -static const ber_tlv_tag_t asn_DEF_OCUCP_PF_Container_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_OCUCP_PF_Container_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* gNB-CU-CP-Name */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* cu-CP-Resource-Status */ -}; -asn_SEQUENCE_specifics_t asn_SPC_OCUCP_PF_Container_specs_1 = { - sizeof(struct OCUCP_PF_Container), - offsetof(struct OCUCP_PF_Container, _asn_ctx), - asn_MAP_OCUCP_PF_Container_tag2el_1, - 2, /* Count of tags in the map */ - asn_MAP_OCUCP_PF_Container_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_OCUCP_PF_Container = { - "OCUCP-PF-Container", - "OCUCP-PF-Container", - &asn_OP_SEQUENCE, - asn_DEF_OCUCP_PF_Container_tags_1, - sizeof(asn_DEF_OCUCP_PF_Container_tags_1) - /sizeof(asn_DEF_OCUCP_PF_Container_tags_1[0]), /* 1 */ - asn_DEF_OCUCP_PF_Container_tags_1, /* Same as above */ - sizeof(asn_DEF_OCUCP_PF_Container_tags_1) - /sizeof(asn_DEF_OCUCP_PF_Container_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_OCUCP_PF_Container_1, - 2, /* Elements count */ - &asn_SPC_OCUCP_PF_Container_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/OCUCP-PF-Container.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/OCUCP-PF-Container.h deleted file mode 100644 index aee0f21..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/OCUCP-PF-Container.h +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _OCUCP_PF_Container_H_ -#define _OCUCP_PF_Container_H_ - - -#include - -/* Including external dependencies */ -#include "GNB-CU-CP-Name.h" -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* OCUCP-PF-Container */ -typedef struct OCUCP_PF_Container { - GNB_CU_CP_Name_t *gNB_CU_CP_Name; /* OPTIONAL */ - struct OCUCP_PF_Container__cu_CP_Resource_Status { - long *numberOfActive_UEs; /* OPTIONAL */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } cu_CP_Resource_Status; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} OCUCP_PF_Container_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_OCUCP_PF_Container; -extern asn_SEQUENCE_specifics_t asn_SPC_OCUCP_PF_Container_specs_1; -extern asn_TYPE_member_t asn_MBR_OCUCP_PF_Container_1[2]; - -#ifdef __cplusplus -} -#endif - -#endif /* _OCUCP_PF_Container_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/OCUUP-PF-Container.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/OCUUP-PF-Container.c deleted file mode 100644 index e1f754e..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/OCUUP-PF-Container.c +++ /dev/null @@ -1,141 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "OCUUP-PF-Container.h" - -static int -memb_pf_ContainerList_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - /* Determine the number of elements */ - size = _A_CSEQUENCE_FROM_VOID(sptr)->count; - - if((size >= 1 && size <= 3)) { - /* Perform validation of the inner elements */ - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_oer_constraints_t asn_OER_type_pf_ContainerList_constr_3 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..3)) */}; -static asn_per_constraints_t asn_PER_type_pf_ContainerList_constr_3 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 2, 2, 1, 3 } /* (SIZE(1..3)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_pf_ContainerList_constr_3 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..3)) */}; -static asn_per_constraints_t asn_PER_memb_pf_ContainerList_constr_3 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 2, 2, 1, 3 } /* (SIZE(1..3)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_pf_ContainerList_3[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_PF_ContainerListItem, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_pf_ContainerList_tags_3[] = { - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_pf_ContainerList_specs_3 = { - sizeof(struct OCUUP_PF_Container__pf_ContainerList), - offsetof(struct OCUUP_PF_Container__pf_ContainerList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_pf_ContainerList_3 = { - "pf-ContainerList", - "pf-ContainerList", - &asn_OP_SEQUENCE_OF, - asn_DEF_pf_ContainerList_tags_3, - sizeof(asn_DEF_pf_ContainerList_tags_3) - /sizeof(asn_DEF_pf_ContainerList_tags_3[0]) - 1, /* 1 */ - asn_DEF_pf_ContainerList_tags_3, /* Same as above */ - sizeof(asn_DEF_pf_ContainerList_tags_3) - /sizeof(asn_DEF_pf_ContainerList_tags_3[0]), /* 2 */ - { &asn_OER_type_pf_ContainerList_constr_3, &asn_PER_type_pf_ContainerList_constr_3, SEQUENCE_OF_constraint }, - asn_MBR_pf_ContainerList_3, - 1, /* Single element */ - &asn_SPC_pf_ContainerList_specs_3 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_OCUUP_PF_Container_1[] = { - { ATF_POINTER, 1, offsetof(struct OCUUP_PF_Container, gNB_CU_UP_Name), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GNB_CU_UP_Name, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "gNB-CU-UP-Name" - }, - { ATF_NOFLAGS, 0, offsetof(struct OCUUP_PF_Container, pf_ContainerList), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - 0, - &asn_DEF_pf_ContainerList_3, - 0, - { &asn_OER_memb_pf_ContainerList_constr_3, &asn_PER_memb_pf_ContainerList_constr_3, memb_pf_ContainerList_constraint_1 }, - 0, 0, /* No default value */ - "pf-ContainerList" - }, -}; -static const int asn_MAP_OCUUP_PF_Container_oms_1[] = { 0 }; -static const ber_tlv_tag_t asn_DEF_OCUUP_PF_Container_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_OCUUP_PF_Container_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* gNB-CU-UP-Name */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* pf-ContainerList */ -}; -asn_SEQUENCE_specifics_t asn_SPC_OCUUP_PF_Container_specs_1 = { - sizeof(struct OCUUP_PF_Container), - offsetof(struct OCUUP_PF_Container, _asn_ctx), - asn_MAP_OCUUP_PF_Container_tag2el_1, - 2, /* Count of tags in the map */ - asn_MAP_OCUUP_PF_Container_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 2, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_OCUUP_PF_Container = { - "OCUUP-PF-Container", - "OCUUP-PF-Container", - &asn_OP_SEQUENCE, - asn_DEF_OCUUP_PF_Container_tags_1, - sizeof(asn_DEF_OCUUP_PF_Container_tags_1) - /sizeof(asn_DEF_OCUUP_PF_Container_tags_1[0]), /* 1 */ - asn_DEF_OCUUP_PF_Container_tags_1, /* Same as above */ - sizeof(asn_DEF_OCUUP_PF_Container_tags_1) - /sizeof(asn_DEF_OCUUP_PF_Container_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_OCUUP_PF_Container_1, - 2, /* Elements count */ - &asn_SPC_OCUUP_PF_Container_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/OCUUP-PF-Container.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/OCUUP-PF-Container.h deleted file mode 100644 index 9f19985..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/OCUUP-PF-Container.h +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _OCUUP_PF_Container_H_ -#define _OCUUP_PF_Container_H_ - - -#include - -/* Including external dependencies */ -#include "GNB-CU-UP-Name.h" -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct PF_ContainerListItem; - -/* OCUUP-PF-Container */ -typedef struct OCUUP_PF_Container { - GNB_CU_UP_Name_t *gNB_CU_UP_Name; /* OPTIONAL */ - struct OCUUP_PF_Container__pf_ContainerList { - A_SEQUENCE_OF(struct PF_ContainerListItem) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } pf_ContainerList; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} OCUUP_PF_Container_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_OCUUP_PF_Container; -extern asn_SEQUENCE_specifics_t asn_SPC_OCUUP_PF_Container_specs_1; -extern asn_TYPE_member_t asn_MBR_OCUUP_PF_Container_1[2]; - -#ifdef __cplusplus -} -#endif - -/* Referred external types */ -#include "PF-ContainerListItem.h" - -#endif /* _OCUUP_PF_Container_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/ODU-PF-Container.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/ODU-PF-Container.c deleted file mode 100644 index a28d59a..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/ODU-PF-Container.c +++ /dev/null @@ -1,129 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "ODU-PF-Container.h" - -static int -memb_cellResourceReportList_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - /* Determine the number of elements */ - size = _A_CSEQUENCE_FROM_VOID(sptr)->count; - - if((size >= 1 && size <= 512)) { - /* Perform validation of the inner elements */ - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_oer_constraints_t asn_OER_type_cellResourceReportList_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..512)) */}; -static asn_per_constraints_t asn_PER_type_cellResourceReportList_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 9, 9, 1, 512 } /* (SIZE(1..512)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_cellResourceReportList_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..512)) */}; -static asn_per_constraints_t asn_PER_memb_cellResourceReportList_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 9, 9, 1, 512 } /* (SIZE(1..512)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_cellResourceReportList_2[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CellResourceReportListItem, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_cellResourceReportList_tags_2[] = { - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_cellResourceReportList_specs_2 = { - sizeof(struct ODU_PF_Container__cellResourceReportList), - offsetof(struct ODU_PF_Container__cellResourceReportList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_cellResourceReportList_2 = { - "cellResourceReportList", - "cellResourceReportList", - &asn_OP_SEQUENCE_OF, - asn_DEF_cellResourceReportList_tags_2, - sizeof(asn_DEF_cellResourceReportList_tags_2) - /sizeof(asn_DEF_cellResourceReportList_tags_2[0]) - 1, /* 1 */ - asn_DEF_cellResourceReportList_tags_2, /* Same as above */ - sizeof(asn_DEF_cellResourceReportList_tags_2) - /sizeof(asn_DEF_cellResourceReportList_tags_2[0]), /* 2 */ - { &asn_OER_type_cellResourceReportList_constr_2, &asn_PER_type_cellResourceReportList_constr_2, SEQUENCE_OF_constraint }, - asn_MBR_cellResourceReportList_2, - 1, /* Single element */ - &asn_SPC_cellResourceReportList_specs_2 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ODU_PF_Container_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct ODU_PF_Container, cellResourceReportList), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - 0, - &asn_DEF_cellResourceReportList_2, - 0, - { &asn_OER_memb_cellResourceReportList_constr_2, &asn_PER_memb_cellResourceReportList_constr_2, memb_cellResourceReportList_constraint_1 }, - 0, 0, /* No default value */ - "cellResourceReportList" - }, -}; -static const ber_tlv_tag_t asn_DEF_ODU_PF_Container_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ODU_PF_Container_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* cellResourceReportList */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ODU_PF_Container_specs_1 = { - sizeof(struct ODU_PF_Container), - offsetof(struct ODU_PF_Container, _asn_ctx), - asn_MAP_ODU_PF_Container_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ODU_PF_Container = { - "ODU-PF-Container", - "ODU-PF-Container", - &asn_OP_SEQUENCE, - asn_DEF_ODU_PF_Container_tags_1, - sizeof(asn_DEF_ODU_PF_Container_tags_1) - /sizeof(asn_DEF_ODU_PF_Container_tags_1[0]), /* 1 */ - asn_DEF_ODU_PF_Container_tags_1, /* Same as above */ - sizeof(asn_DEF_ODU_PF_Container_tags_1) - /sizeof(asn_DEF_ODU_PF_Container_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ODU_PF_Container_1, - 1, /* Elements count */ - &asn_SPC_ODU_PF_Container_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/ODU-PF-Container.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/ODU-PF-Container.h deleted file mode 100644 index 4da50a3..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/ODU-PF-Container.h +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _ODU_PF_Container_H_ -#define _ODU_PF_Container_H_ - - -#include - -/* Including external dependencies */ -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct CellResourceReportListItem; - -/* ODU-PF-Container */ -typedef struct ODU_PF_Container { - struct ODU_PF_Container__cellResourceReportList { - A_SEQUENCE_OF(struct CellResourceReportListItem) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } cellResourceReportList; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ODU_PF_Container_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ODU_PF_Container; -extern asn_SEQUENCE_specifics_t asn_SPC_ODU_PF_Container_specs_1; -extern asn_TYPE_member_t asn_MBR_ODU_PF_Container_1[1]; - -#ifdef __cplusplus -} -#endif - -/* Referred external types */ -#include "CellResourceReportListItem.h" - -#endif /* _ODU_PF_Container_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/OPEN_TYPE.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/OPEN_TYPE.c deleted file mode 100644 index a54e99c..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/OPEN_TYPE.c +++ /dev/null @@ -1,509 +0,0 @@ -/* - * Copyright (c) 2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include -#include -#include - -asn_TYPE_operation_t asn_OP_OPEN_TYPE = { - OPEN_TYPE_free, - OPEN_TYPE_print, - OPEN_TYPE_compare, - OPEN_TYPE_decode_ber, - OPEN_TYPE_encode_der, - OPEN_TYPE_decode_xer, - OPEN_TYPE_encode_xer, -#ifdef ASN_DISABLE_OER_SUPPORT - 0, 0, /* No OER support, use "-gen-OER" to enable */ -#else - OPEN_TYPE_decode_oer, - OPEN_TYPE_encode_oer, -#endif -#ifdef ASN_DISABLE_PER_SUPPORT - 0, 0, 0, 0, -#else - OPEN_TYPE_decode_uper, - OPEN_TYPE_encode_uper, - OPEN_TYPE_decode_aper, - OPEN_TYPE_encode_aper, -#endif - 0, /* Random fill is not supported for open type */ - 0 /* Use generic outmost tag fetcher */ -}; - -#undef ADVANCE -#define ADVANCE(num_bytes) \ - do { \ - size_t num = num_bytes; \ - ptr = ((const char *)ptr) + num; \ - size -= num; \ - consumed_myself += num; \ - } while(0) - -asn_dec_rval_t -OPEN_TYPE_ber_get(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void *sptr, - const asn_TYPE_member_t *elm, const void *ptr, size_t size) { - size_t consumed_myself = 0; - asn_type_selector_result_t selected; - void *memb_ptr; /* Pointer to the member */ - void **memb_ptr2; /* Pointer to that pointer */ - void *inner_value; - asn_dec_rval_t rv; - - if(!(elm->flags & ATF_OPEN_TYPE)) { - ASN__DECODE_FAILED; - } - - if(!elm->type_selector) { - ASN_DEBUG("Type selector is not defined for Open Type %s->%s->%s", - td->name, elm->name, elm->type->name); - ASN__DECODE_FAILED; - } - - selected = elm->type_selector(td, sptr); - if(!selected.presence_index) { - ASN__DECODE_FAILED; - } - - /* Fetch the pointer to this member */ - if(elm->flags & ATF_POINTER) { - memb_ptr2 = (void **)((char *)sptr + elm->memb_offset); - } else { - memb_ptr = (char *)sptr + elm->memb_offset; - memb_ptr2 = &memb_ptr; - } - if(*memb_ptr2 != NULL) { - /* Make sure we reset the structure first before encoding */ - if(CHOICE_variant_set_presence(elm->type, *memb_ptr2, 0) != 0) { - ASN__DECODE_FAILED; - } - } - - inner_value = - (char *)*memb_ptr2 - + elm->type->elements[selected.presence_index - 1].memb_offset; - - ASN_DEBUG("presence %d\n", selected.presence_index); - - rv = selected.type_descriptor->op->ber_decoder( - opt_codec_ctx, selected.type_descriptor, &inner_value, ptr, size, - elm->tag_mode); - ADVANCE(rv.consumed); - rv.consumed = 0; - switch(rv.code) { - case RC_OK: - if(CHOICE_variant_set_presence(elm->type, *memb_ptr2, - selected.presence_index) - == 0) { - rv.code = RC_OK; - rv.consumed = consumed_myself; - return rv; - } else { - /* Oh, now a full-blown failure failure */ - } - /* Fall through */ - case RC_FAIL: - rv.consumed = consumed_myself; - /* Fall through */ - case RC_WMORE: - break; - } - - if(*memb_ptr2) { - if(elm->flags & ATF_POINTER) { - ASN_STRUCT_FREE(*selected.type_descriptor, inner_value); - *memb_ptr2 = NULL; - } else { - ASN_STRUCT_RESET(*selected.type_descriptor, - inner_value); - } - } - return rv; -} - -asn_dec_rval_t -OPEN_TYPE_xer_get(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void *sptr, - const asn_TYPE_member_t *elm, const void *ptr, size_t size) { - size_t consumed_myself = 0; - asn_type_selector_result_t selected; - void *memb_ptr; /* Pointer to the member */ - void **memb_ptr2; /* Pointer to that pointer */ - void *inner_value; - asn_dec_rval_t rv; - - int xer_context = 0; - ssize_t ch_size; - pxer_chunk_type_e ch_type; - - if(!(elm->flags & ATF_OPEN_TYPE)) { - ASN__DECODE_FAILED; - } - - if(!elm->type_selector) { - ASN_DEBUG("Type selector is not defined for Open Type %s->%s->%s", - td->name, elm->name, elm->type->name); - ASN__DECODE_FAILED; - } - - selected = elm->type_selector(td, sptr); - if(!selected.presence_index) { - ASN__DECODE_FAILED; - } - - /* Fetch the pointer to this member */ - assert(elm->flags == ATF_OPEN_TYPE); - if(elm->flags & ATF_POINTER) { - memb_ptr2 = (void **)((char *)sptr + elm->memb_offset); - } else { - memb_ptr = (char *)sptr + elm->memb_offset; - memb_ptr2 = &memb_ptr; - } - if(*memb_ptr2 != NULL) { - /* Make sure we reset the structure first before encoding */ - if(CHOICE_variant_set_presence(elm->type, *memb_ptr2, 0) - != 0) { - ASN__DECODE_FAILED; - } - } - - /* - * Confirm wrapper. - */ - for(;;) { - ch_size = xer_next_token(&xer_context, ptr, size, &ch_type); - if(ch_size < 0) { - ASN__DECODE_FAILED; - } else { - switch(ch_type) { - case PXER_WMORE: - ASN__DECODE_STARVED; - case PXER_COMMENT: - case PXER_TEXT: - ADVANCE(ch_size); - continue; - case PXER_TAG: - break; - } - break; - } - } - - /* - * Wrapper value confirmed. - */ - switch(xer_check_tag(ptr, ch_size, elm->name)) { - case XCT_OPENING: - ADVANCE(ch_size); - break; - case XCT_BROKEN: - default: - ASN__DECODE_FAILED; - } - - inner_value = - (char *)*memb_ptr2 - + elm->type->elements[selected.presence_index - 1].memb_offset; - - rv = selected.type_descriptor->op->xer_decoder( - opt_codec_ctx, selected.type_descriptor, &inner_value, NULL, ptr, size); - ADVANCE(rv.consumed); - rv.consumed = 0; - switch(rv.code) { - case RC_OK: - if(CHOICE_variant_set_presence(elm->type, *memb_ptr2, - selected.presence_index) - == 0) { - break; - } else { - rv.code = RC_FAIL; - } - /* Fall through */ - case RC_FAIL: - /* Point to a best position where failure occurred */ - rv.consumed = consumed_myself; - /* Fall through */ - case RC_WMORE: - /* Wrt. rv.consumed==0: - * In case a genuine RC_WMORE, the whole Open Type decoding - * will have to be restarted. - */ - if(*memb_ptr2) { - if(elm->flags & ATF_POINTER) { - ASN_STRUCT_FREE(*selected.type_descriptor, inner_value); - *memb_ptr2 = NULL; - } else { - ASN_STRUCT_RESET(*selected.type_descriptor, - inner_value); - } - } - return rv; - } - - /* - * Finalize wrapper. - */ - for(;;) { - ch_size = xer_next_token(&xer_context, ptr, size, &ch_type); - if(ch_size < 0) { - ASN__DECODE_FAILED; - } else { - switch(ch_type) { - case PXER_WMORE: - ASN__DECODE_STARVED; - case PXER_COMMENT: - case PXER_TEXT: - ADVANCE(ch_size); - continue; - case PXER_TAG: - break; - } - break; - } - } - - /* - * Wrapper value confirmed. - */ - switch(xer_check_tag(ptr, ch_size, elm->name)) { - case XCT_CLOSING: - ADVANCE(ch_size); - break; - case XCT_BROKEN: - default: - ASN__DECODE_FAILED; - } - - rv.consumed += consumed_myself; - - return rv; -} - - -#ifndef ASN_DISABLE_PER_SUPPORT - -asn_dec_rval_t -OPEN_TYPE_uper_get(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void *sptr, - const asn_TYPE_member_t *elm, asn_per_data_t *pd) { - asn_type_selector_result_t selected; - void *memb_ptr; /* Pointer to the member */ - void **memb_ptr2; /* Pointer to that pointer */ - void *inner_value; - asn_dec_rval_t rv; - - if(!(elm->flags & ATF_OPEN_TYPE)) { - ASN__DECODE_FAILED; - } - - if(!elm->type_selector) { - ASN_DEBUG("Type selector is not defined for Open Type %s->%s->%s", - td->name, elm->name, elm->type->name); - ASN__DECODE_FAILED; - } - - selected = elm->type_selector(td, sptr); - if(!selected.presence_index) { - ASN__DECODE_FAILED; - } - - /* Fetch the pointer to this member */ - assert(elm->flags == ATF_OPEN_TYPE); - if(elm->flags & ATF_POINTER) { - memb_ptr2 = (void **)((char *)sptr + elm->memb_offset); - } else { - memb_ptr = (char *)sptr + elm->memb_offset; - memb_ptr2 = &memb_ptr; - } - if(*memb_ptr2 != NULL) { - /* Make sure we reset the structure first before encoding */ - if(CHOICE_variant_set_presence(elm->type, *memb_ptr2, 0) - != 0) { - ASN__DECODE_FAILED; - } - } - - inner_value = - (char *)*memb_ptr2 - + elm->type->elements[selected.presence_index - 1].memb_offset; - - rv = uper_open_type_get(opt_codec_ctx, selected.type_descriptor, NULL, - &inner_value, pd); - switch(rv.code) { - case RC_OK: - if(CHOICE_variant_set_presence(elm->type, *memb_ptr2, - selected.presence_index) - == 0) { - break; - } else { - rv.code = RC_FAIL; - } - /* Fall through */ - case RC_WMORE: - case RC_FAIL: - if(*memb_ptr2) { - if(elm->flags & ATF_POINTER) { - ASN_STRUCT_FREE(*selected.type_descriptor, inner_value); - *memb_ptr2 = NULL; - } else { - ASN_STRUCT_RESET(*selected.type_descriptor, - inner_value); - } - } - } - return rv; -} - -asn_enc_rval_t -OPEN_TYPE_encode_uper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_per_outp_t *po) { - const void *memb_ptr; /* Pointer to the member */ - asn_TYPE_member_t *elm; /* CHOICE's element */ - asn_enc_rval_t er = {0,0,0}; - unsigned present; - - (void)constraints; - - present = CHOICE_variant_get_presence(td, sptr); - if(present == 0 || present > td->elements_count) { - ASN__ENCODE_FAILED; - } else { - present--; - } - - ASN_DEBUG("Encoding %s OPEN TYPE element %d", td->name, present); - - elm = &td->elements[present]; - if(elm->flags & ATF_POINTER) { - /* Member is a pointer to another structure */ - memb_ptr = - *(const void *const *)((const char *)sptr + elm->memb_offset); - if(!memb_ptr) ASN__ENCODE_FAILED; - } else { - memb_ptr = (const char *)sptr + elm->memb_offset; - } - - if(uper_open_type_put(elm->type, NULL, memb_ptr, po) < 0) { - ASN__ENCODE_FAILED; - } - - er.encoded = 0; - ASN__ENCODED_OK(er); -} - -asn_dec_rval_t -OPEN_TYPE_aper_get(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void *sptr, - const asn_TYPE_member_t *elm, asn_per_data_t *pd) { - asn_type_selector_result_t selected; - void *memb_ptr; /* Pointer to the member */ - void **memb_ptr2; /* Pointer to that pointer */ - void *inner_value; - asn_dec_rval_t rv; - - if(!(elm->flags & ATF_OPEN_TYPE)) { - ASN__DECODE_FAILED; - } - - if(!elm->type_selector) { - ASN_DEBUG("Type selector is not defined for Open Type %s->%s->%s", - td->name, elm->name, elm->type->name); - ASN__DECODE_FAILED; - } - - selected = elm->type_selector(td, sptr); - if(!selected.presence_index) { - ASN__DECODE_FAILED; - } - - /* Fetch the pointer to this member */ - assert(elm->flags == ATF_OPEN_TYPE); - if(elm->flags & ATF_POINTER) { - memb_ptr2 = (void **)((char *)sptr + elm->memb_offset); - } else { - memb_ptr = (char *)sptr + elm->memb_offset; - memb_ptr2 = &memb_ptr; - } - if(*memb_ptr2 != NULL) { - /* Make sure we reset the structure first before encoding */ - if(CHOICE_variant_set_presence(elm->type, *memb_ptr2, 0) - != 0) { - ASN__DECODE_FAILED; - } - } - - inner_value = - (char *)*memb_ptr2 - + elm->type->elements[selected.presence_index - 1].memb_offset; - - rv = aper_open_type_get(opt_codec_ctx, selected.type_descriptor, NULL, - &inner_value, pd); - switch(rv.code) { - case RC_OK: - if(CHOICE_variant_set_presence(elm->type, *memb_ptr2, - selected.presence_index) - == 0) { - break; - } else { - rv.code = RC_FAIL; - } - /* Fall through */ - case RC_WMORE: - case RC_FAIL: - if(*memb_ptr2) { - if(elm->flags & ATF_POINTER) { - ASN_STRUCT_FREE(*selected.type_descriptor, inner_value); - *memb_ptr2 = NULL; - } else { - ASN_STRUCT_RESET(*selected.type_descriptor, - inner_value); - } - } - } - return rv; -} - -asn_enc_rval_t -OPEN_TYPE_encode_aper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_per_outp_t *po) { - const void *memb_ptr; /* Pointer to the member */ - asn_TYPE_member_t *elm; /* CHOICE's element */ - asn_enc_rval_t er = {0,0,0}; - unsigned present; - - (void)constraints; - - present = CHOICE_variant_get_presence(td, sptr); - if(present == 0 || present > td->elements_count) { - ASN__ENCODE_FAILED; - } else { - present--; - } - - ASN_DEBUG("Encoding %s OPEN TYPE element %d", td->name, present); - - elm = &td->elements[present]; - if(elm->flags & ATF_POINTER) { - /* Member is a pointer to another structure */ - memb_ptr = - *(const void *const *)((const char *)sptr + elm->memb_offset); - if(!memb_ptr) ASN__ENCODE_FAILED; - } else { - memb_ptr = (const char *)sptr + elm->memb_offset; - } - - if(aper_open_type_put(elm->type, NULL, memb_ptr, po) < 0) { - ASN__ENCODE_FAILED; - } - - er.encoded = 0; - ASN__ENCODED_OK(er); -} - -#endif /* ASN_DISABLE_PER_SUPPORT */ diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/OPEN_TYPE.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/OPEN_TYPE.h deleted file mode 100644 index b0d023c..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/OPEN_TYPE.h +++ /dev/null @@ -1,77 +0,0 @@ -/*- - * Copyright (c) 2017-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef ASN_OPEN_TYPE_H -#define ASN_OPEN_TYPE_H - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -#define OPEN_TYPE_free CHOICE_free -#define OPEN_TYPE_print CHOICE_print -#define OPEN_TYPE_compare CHOICE_compare -#define OPEN_TYPE_constraint CHOICE_constraint -#define OPEN_TYPE_decode_ber NULL -#define OPEN_TYPE_encode_der CHOICE_encode_der -#define OPEN_TYPE_decode_xer NULL -#define OPEN_TYPE_encode_xer CHOICE_encode_xer -#define OPEN_TYPE_decode_oer NULL -#define OPEN_TYPE_encode_oer CHOICE_encode_oer -#define OPEN_TYPE_decode_uper NULL -#define OPEN_TYPE_decode_aper NULL - -extern asn_TYPE_operation_t asn_OP_OPEN_TYPE; - -/* - * Decode an Open Type which is potentially constraiend - * by the other members of the parent structure. - */ -asn_dec_rval_t OPEN_TYPE_ber_get(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *parent_type, - void *parent_structure, - const asn_TYPE_member_t *element, - const void *ptr, size_t size); - -asn_dec_rval_t OPEN_TYPE_xer_get(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *parent_type, - void *parent_structure, - const asn_TYPE_member_t *element, - const void *ptr, size_t size); - -asn_dec_rval_t OPEN_TYPE_oer_get(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *parent_type, - void *parent_structure, - asn_TYPE_member_t *element, const void *ptr, - size_t size); - -asn_dec_rval_t OPEN_TYPE_uper_get(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *parent_type, - void *parent_structure, - const asn_TYPE_member_t *element, - asn_per_data_t *pd); - -asn_dec_rval_t OPEN_TYPE_aper_get(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *parent_type, - void *parent_structure, - const asn_TYPE_member_t *element, - asn_per_data_t *pd); - -asn_enc_rval_t OPEN_TYPE_encode_uper( - const asn_TYPE_descriptor_t *type_descriptor, - const asn_per_constraints_t *constraints, const void *struct_ptr, - asn_per_outp_t *per_output); - -asn_enc_rval_t OPEN_TYPE_encode_aper( - const asn_TYPE_descriptor_t *type_descriptor, - const asn_per_constraints_t *constraints, const void *struct_ptr, - asn_per_outp_t *per_output); - -#ifdef __cplusplus -} -#endif - -#endif /* ASN_OPEN_TYPE_H */ diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/OPEN_TYPE_oer.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/OPEN_TYPE_oer.c deleted file mode 100644 index dd2f5c6..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/OPEN_TYPE_oer.c +++ /dev/null @@ -1,92 +0,0 @@ -/* - * Copyright (c) 2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include -#include - -asn_dec_rval_t -OPEN_TYPE_oer_get(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void *sptr, - asn_TYPE_member_t *elm, const void *ptr, size_t size) { - asn_type_selector_result_t selected; - void *memb_ptr; /* Pointer to the member */ - void **memb_ptr2; /* Pointer to that pointer */ - void *inner_value; - asn_dec_rval_t rv; - size_t ot_ret; - - - if(!(elm->flags & ATF_OPEN_TYPE)) { - ASN__DECODE_FAILED; - } - - if(!elm->type_selector) { - ASN_DEBUG("Type selector is not defined for Open Type %s->%s->%s", - td->name, elm->name, elm->type->name); - ASN__DECODE_FAILED; - } - - selected = elm->type_selector(td, sptr); - if(!selected.presence_index) { - ASN__DECODE_FAILED; - } - - /* Fetch the pointer to this member */ - if(elm->flags & ATF_POINTER) { - memb_ptr2 = (void **)((char *)sptr + elm->memb_offset); - } else { - memb_ptr = (char *)sptr + elm->memb_offset; - memb_ptr2 = &memb_ptr; - } - if(*memb_ptr2 != NULL) { - /* Make sure we reset the structure first before encoding */ - if(CHOICE_variant_set_presence(elm->type, *memb_ptr2, 0) != 0) { - ASN__DECODE_FAILED; - } - } - - inner_value = - (char *)*memb_ptr2 - + elm->type->elements[selected.presence_index - 1].memb_offset; - - ot_ret = oer_open_type_get(opt_codec_ctx, selected.type_descriptor, NULL, - &inner_value, ptr, size); - switch(ot_ret) { - default: - if(CHOICE_variant_set_presence(elm->type, *memb_ptr2, - selected.presence_index) - == 0) { - rv.code = RC_OK; - rv.consumed = ot_ret; - return rv; - } else { - /* Oh, now a full-blown failure failure */ - } - /* Fall through */ - case -1: - rv.code = RC_FAIL; - rv.consumed = ot_ret; - break; - case 0: - rv.code = RC_WMORE; - rv.consumed = 0; - break; - } - - if(*memb_ptr2) { - const asn_CHOICE_specifics_t *specs = - selected.type_descriptor->specifics; - if(elm->flags & ATF_POINTER) { - ASN_STRUCT_FREE(*selected.type_descriptor, inner_value); - *memb_ptr2 = NULL; - } else { - ASN_STRUCT_FREE_CONTENTS_ONLY(*selected.type_descriptor, - inner_value); - memset(*memb_ptr2, 0, specs->struct_size); - } - } - return rv; -} diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/PF-Container.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/PF-Container.c deleted file mode 100644 index ce46255..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/PF-Container.c +++ /dev/null @@ -1,75 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "PF-Container.h" - -static asn_oer_constraints_t asn_OER_type_PF_Container_constr_1 CC_NOTUSED = { - { 0, 0 }, - -1}; -asn_per_constraints_t asn_PER_type_PF_Container_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 2 } /* (0..2,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_PF_Container_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct PF_Container, choice.oDU), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ODU_PF_Container, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "oDU" - }, - { ATF_NOFLAGS, 0, offsetof(struct PF_Container, choice.oCU_CP), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_OCUCP_PF_Container, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "oCU-CP" - }, - { ATF_NOFLAGS, 0, offsetof(struct PF_Container, choice.oCU_UP), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_OCUUP_PF_Container, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "oCU-UP" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_PF_Container_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* oDU */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* oCU-CP */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* oCU-UP */ -}; -asn_CHOICE_specifics_t asn_SPC_PF_Container_specs_1 = { - sizeof(struct PF_Container), - offsetof(struct PF_Container, _asn_ctx), - offsetof(struct PF_Container, present), - sizeof(((struct PF_Container *)0)->present), - asn_MAP_PF_Container_tag2el_1, - 3, /* Count of tags in the map */ - 0, 0, - 3 /* Extensions start */ -}; -asn_TYPE_descriptor_t asn_DEF_PF_Container = { - "PF-Container", - "PF-Container", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { &asn_OER_type_PF_Container_constr_1, &asn_PER_type_PF_Container_constr_1, CHOICE_constraint }, - asn_MBR_PF_Container_1, - 3, /* Elements count */ - &asn_SPC_PF_Container_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/PF-Container.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/PF-Container.h deleted file mode 100644 index 853642a..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/PF-Container.h +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _PF_Container_H_ -#define _PF_Container_H_ - - -#include - -/* Including external dependencies */ -#include "ODU-PF-Container.h" -#include "OCUCP-PF-Container.h" -#include "OCUUP-PF-Container.h" -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum PF_Container_PR { - PF_Container_PR_NOTHING, /* No components present */ - PF_Container_PR_oDU, - PF_Container_PR_oCU_CP, - PF_Container_PR_oCU_UP - /* Extensions may appear below */ - -} PF_Container_PR; - -/* PF-Container */ -typedef struct PF_Container { - PF_Container_PR present; - union PF_Container_u { - ODU_PF_Container_t oDU; - OCUCP_PF_Container_t oCU_CP; - OCUUP_PF_Container_t oCU_UP; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} PF_Container_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_PF_Container; -extern asn_CHOICE_specifics_t asn_SPC_PF_Container_specs_1; -extern asn_TYPE_member_t asn_MBR_PF_Container_1[3]; -extern asn_per_constraints_t asn_PER_type_PF_Container_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _PF_Container_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/PF-ContainerListItem.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/PF-ContainerListItem.c deleted file mode 100644 index e3aad2c..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/PF-ContainerListItem.c +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "PF-ContainerListItem.h" - -asn_TYPE_member_t asn_MBR_PF_ContainerListItem_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct PF_ContainerListItem, interface_type), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NI_Type, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "interface-type" - }, - { ATF_NOFLAGS, 0, offsetof(struct PF_ContainerListItem, o_CU_UP_PM_Container), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_CUUPMeasurement_Container, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "o-CU-UP-PM-Container" - }, -}; -static const ber_tlv_tag_t asn_DEF_PF_ContainerListItem_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_PF_ContainerListItem_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* interface-type */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* o-CU-UP-PM-Container */ -}; -asn_SEQUENCE_specifics_t asn_SPC_PF_ContainerListItem_specs_1 = { - sizeof(struct PF_ContainerListItem), - offsetof(struct PF_ContainerListItem, _asn_ctx), - asn_MAP_PF_ContainerListItem_tag2el_1, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 2, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_PF_ContainerListItem = { - "PF-ContainerListItem", - "PF-ContainerListItem", - &asn_OP_SEQUENCE, - asn_DEF_PF_ContainerListItem_tags_1, - sizeof(asn_DEF_PF_ContainerListItem_tags_1) - /sizeof(asn_DEF_PF_ContainerListItem_tags_1[0]), /* 1 */ - asn_DEF_PF_ContainerListItem_tags_1, /* Same as above */ - sizeof(asn_DEF_PF_ContainerListItem_tags_1) - /sizeof(asn_DEF_PF_ContainerListItem_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_PF_ContainerListItem_1, - 2, /* Elements count */ - &asn_SPC_PF_ContainerListItem_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/PF-ContainerListItem.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/PF-ContainerListItem.h deleted file mode 100644 index bc4495e..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/PF-ContainerListItem.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _PF_ContainerListItem_H_ -#define _PF_ContainerListItem_H_ - - -#include - -/* Including external dependencies */ -#include "NI-Type.h" -#include "CUUPMeasurement-Container.h" -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* PF-ContainerListItem */ -typedef struct PF_ContainerListItem { - NI_Type_t interface_type; - CUUPMeasurement_Container_t o_CU_UP_PM_Container; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} PF_ContainerListItem_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_PF_ContainerListItem; -extern asn_SEQUENCE_specifics_t asn_SPC_PF_ContainerListItem_specs_1; -extern asn_TYPE_member_t asn_MBR_PF_ContainerListItem_1[2]; - -#ifdef __cplusplus -} -#endif - -#endif /* _PF_ContainerListItem_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/PLMN-Identity.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/PLMN-Identity.c deleted file mode 100644 index e3754f8..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/PLMN-Identity.c +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "PLMN-Identity.h" - -int -PLMN_Identity_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - size = st->size; - - if((size == 3)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using OCTET_STRING, - * so here we adjust the DEF accordingly. - */ -static asn_oer_constraints_t asn_OER_type_PLMN_Identity_constr_1 CC_NOTUSED = { - { 0, 0 }, - 3 /* (SIZE(3..3)) */}; -asn_per_constraints_t asn_PER_type_PLMN_Identity_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 0, 0, 3, 3 } /* (SIZE(3..3)) */, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_PLMN_Identity_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_PLMN_Identity = { - "PLMN-Identity", - "PLMN-Identity", - &asn_OP_OCTET_STRING, - asn_DEF_PLMN_Identity_tags_1, - sizeof(asn_DEF_PLMN_Identity_tags_1) - /sizeof(asn_DEF_PLMN_Identity_tags_1[0]), /* 1 */ - asn_DEF_PLMN_Identity_tags_1, /* Same as above */ - sizeof(asn_DEF_PLMN_Identity_tags_1) - /sizeof(asn_DEF_PLMN_Identity_tags_1[0]), /* 1 */ - { &asn_OER_type_PLMN_Identity_constr_1, &asn_PER_type_PLMN_Identity_constr_1, PLMN_Identity_constraint }, - 0, 0, /* No members */ - &asn_SPC_OCTET_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/PLMN-Identity.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/PLMN-Identity.h deleted file mode 100644 index 6835400..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/PLMN-Identity.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _PLMN_Identity_H_ -#define _PLMN_Identity_H_ - - -#include - -/* Including external dependencies */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* PLMN-Identity */ -typedef OCTET_STRING_t PLMN_Identity_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_PLMN_Identity_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_PLMN_Identity; -asn_struct_free_f PLMN_Identity_free; -asn_struct_print_f PLMN_Identity_print; -asn_constr_check_f PLMN_Identity_constraint; -ber_type_decoder_f PLMN_Identity_decode_ber; -der_type_encoder_f PLMN_Identity_encode_der; -xer_type_decoder_f PLMN_Identity_decode_xer; -xer_type_encoder_f PLMN_Identity_encode_xer; -oer_type_decoder_f PLMN_Identity_decode_oer; -oer_type_encoder_f PLMN_Identity_encode_oer; -per_type_decoder_f PLMN_Identity_decode_uper; -per_type_encoder_f PLMN_Identity_encode_uper; -per_type_decoder_f PLMN_Identity_decode_aper; -per_type_encoder_f PLMN_Identity_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _PLMN_Identity_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/PM-Containers-List.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/PM-Containers-List.c deleted file mode 100644 index 326ec75..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/PM-Containers-List.c +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "PM-Containers-List.h" - -asn_TYPE_member_t asn_MBR_PM_Containers_List_1[] = { - { ATF_POINTER, 2, offsetof(struct PM_Containers_List, performanceContainer), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_PF_Container, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "performanceContainer" - }, - { ATF_POINTER, 1, offsetof(struct PM_Containers_List, theRANContainer), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RAN_Container, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "theRANContainer" - }, -}; -static const int asn_MAP_PM_Containers_List_oms_1[] = { 0, 1 }; -static const ber_tlv_tag_t asn_DEF_PM_Containers_List_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_PM_Containers_List_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* performanceContainer */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* theRANContainer */ -}; -asn_SEQUENCE_specifics_t asn_SPC_PM_Containers_List_specs_1 = { - sizeof(struct PM_Containers_List), - offsetof(struct PM_Containers_List, _asn_ctx), - asn_MAP_PM_Containers_List_tag2el_1, - 2, /* Count of tags in the map */ - asn_MAP_PM_Containers_List_oms_1, /* Optional members */ - 2, 0, /* Root/Additions */ - 2, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_PM_Containers_List = { - "PM-Containers-List", - "PM-Containers-List", - &asn_OP_SEQUENCE, - asn_DEF_PM_Containers_List_tags_1, - sizeof(asn_DEF_PM_Containers_List_tags_1) - /sizeof(asn_DEF_PM_Containers_List_tags_1[0]), /* 1 */ - asn_DEF_PM_Containers_List_tags_1, /* Same as above */ - sizeof(asn_DEF_PM_Containers_List_tags_1) - /sizeof(asn_DEF_PM_Containers_List_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_PM_Containers_List_1, - 2, /* Elements count */ - &asn_SPC_PM_Containers_List_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/PM-Containers-List.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/PM-Containers-List.h deleted file mode 100644 index 0a99c3b..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/PM-Containers-List.h +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _PM_Containers_List_H_ -#define _PM_Containers_List_H_ - - -#include - -/* Including external dependencies */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct PF_Container; -struct RAN_Container; - -/* PM-Containers-List */ -typedef struct PM_Containers_List { - struct PF_Container *performanceContainer; /* OPTIONAL */ - struct RAN_Container *theRANContainer; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} PM_Containers_List_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_PM_Containers_List; -extern asn_SEQUENCE_specifics_t asn_SPC_PM_Containers_List_specs_1; -extern asn_TYPE_member_t asn_MBR_PM_Containers_List_1[2]; - -#ifdef __cplusplus -} -#endif - -/* Referred external types */ -#include "PF-Container.h" -#include "RAN-Container.h" - -#endif /* _PM_Containers_List_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/PerQCIReportListItem.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/PerQCIReportListItem.c deleted file mode 100644 index 1c57dfd..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/PerQCIReportListItem.c +++ /dev/null @@ -1,171 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "PerQCIReportListItem.h" - -static int -memb_qci_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 255)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_dl_PRBUsage_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 100)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_ul_PRBUsage_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 100)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_oer_constraints_t asn_OER_memb_qci_constr_2 CC_NOTUSED = { - { 1, 1 } /* (0..255) */, - -1}; -static asn_per_constraints_t asn_PER_memb_qci_constr_2 CC_NOTUSED = { - { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_dl_PRBUsage_constr_3 CC_NOTUSED = { - { 1, 1 } /* (0..100) */, - -1}; -static asn_per_constraints_t asn_PER_memb_dl_PRBUsage_constr_3 CC_NOTUSED = { - { APC_CONSTRAINED, 7, 7, 0, 100 } /* (0..100) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_ul_PRBUsage_constr_4 CC_NOTUSED = { - { 1, 1 } /* (0..100) */, - -1}; -static asn_per_constraints_t asn_PER_memb_ul_PRBUsage_constr_4 CC_NOTUSED = { - { APC_CONSTRAINED, 7, 7, 0, 100 } /* (0..100) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_PerQCIReportListItem_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct PerQCIReportListItem, qci), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_qci_constr_2, &asn_PER_memb_qci_constr_2, memb_qci_constraint_1 }, - 0, 0, /* No default value */ - "qci" - }, - { ATF_POINTER, 2, offsetof(struct PerQCIReportListItem, dl_PRBUsage), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_dl_PRBUsage_constr_3, &asn_PER_memb_dl_PRBUsage_constr_3, memb_dl_PRBUsage_constraint_1 }, - 0, 0, /* No default value */ - "dl-PRBUsage" - }, - { ATF_POINTER, 1, offsetof(struct PerQCIReportListItem, ul_PRBUsage), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_ul_PRBUsage_constr_4, &asn_PER_memb_ul_PRBUsage_constr_4, memb_ul_PRBUsage_constraint_1 }, - 0, 0, /* No default value */ - "ul-PRBUsage" - }, -}; -static const int asn_MAP_PerQCIReportListItem_oms_1[] = { 1, 2 }; -static const ber_tlv_tag_t asn_DEF_PerQCIReportListItem_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_PerQCIReportListItem_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* qci */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* dl-PRBUsage */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* ul-PRBUsage */ -}; -asn_SEQUENCE_specifics_t asn_SPC_PerQCIReportListItem_specs_1 = { - sizeof(struct PerQCIReportListItem), - offsetof(struct PerQCIReportListItem, _asn_ctx), - asn_MAP_PerQCIReportListItem_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_PerQCIReportListItem_oms_1, /* Optional members */ - 2, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_PerQCIReportListItem = { - "PerQCIReportListItem", - "PerQCIReportListItem", - &asn_OP_SEQUENCE, - asn_DEF_PerQCIReportListItem_tags_1, - sizeof(asn_DEF_PerQCIReportListItem_tags_1) - /sizeof(asn_DEF_PerQCIReportListItem_tags_1[0]), /* 1 */ - asn_DEF_PerQCIReportListItem_tags_1, /* Same as above */ - sizeof(asn_DEF_PerQCIReportListItem_tags_1) - /sizeof(asn_DEF_PerQCIReportListItem_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_PerQCIReportListItem_1, - 3, /* Elements count */ - &asn_SPC_PerQCIReportListItem_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/PerQCIReportListItem.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/PerQCIReportListItem.h deleted file mode 100644 index 32508ea..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/PerQCIReportListItem.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _PerQCIReportListItem_H_ -#define _PerQCIReportListItem_H_ - - -#include - -/* Including external dependencies */ -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* PerQCIReportListItem */ -typedef struct PerQCIReportListItem { - long qci; - long *dl_PRBUsage; /* OPTIONAL */ - long *ul_PRBUsage; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} PerQCIReportListItem_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_PerQCIReportListItem; -extern asn_SEQUENCE_specifics_t asn_SPC_PerQCIReportListItem_specs_1; -extern asn_TYPE_member_t asn_MBR_PerQCIReportListItem_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _PerQCIReportListItem_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/PerQCIReportListItemFormat.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/PerQCIReportListItemFormat.c deleted file mode 100644 index 239cbd8..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/PerQCIReportListItemFormat.c +++ /dev/null @@ -1,183 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "PerQCIReportListItemFormat.h" - -static int -memb_qci_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 255)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_pDCPBytesDL_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const INTEGER_t *st = (const INTEGER_t *)sptr; - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if(asn_INTEGER2long(st, &value)) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value too large (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if((value >= 0 && value <= 10000000000)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_pDCPBytesUL_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const INTEGER_t *st = (const INTEGER_t *)sptr; - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if(asn_INTEGER2long(st, &value)) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value too large (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if((value >= 0 && value <= 10000000000)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_oer_constraints_t asn_OER_memb_qci_constr_2 CC_NOTUSED = { - { 1, 1 } /* (0..255) */, - -1}; -static asn_per_constraints_t asn_PER_memb_qci_constr_2 CC_NOTUSED = { - { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_pDCPBytesDL_constr_3 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_memb_pDCPBytesDL_constr_3 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 34, -1, 0, 10000000000 } /* (0..10000000000,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_pDCPBytesUL_constr_4 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_memb_pDCPBytesUL_constr_4 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 34, -1, 0, 10000000000 } /* (0..10000000000,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_PerQCIReportListItemFormat_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct PerQCIReportListItemFormat, qci), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_qci_constr_2, &asn_PER_memb_qci_constr_2, memb_qci_constraint_1 }, - 0, 0, /* No default value */ - "qci" - }, - { ATF_POINTER, 2, offsetof(struct PerQCIReportListItemFormat, pDCPBytesDL), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_INTEGER, - 0, - { &asn_OER_memb_pDCPBytesDL_constr_3, &asn_PER_memb_pDCPBytesDL_constr_3, memb_pDCPBytesDL_constraint_1 }, - 0, 0, /* No default value */ - "pDCPBytesDL" - }, - { ATF_POINTER, 1, offsetof(struct PerQCIReportListItemFormat, pDCPBytesUL), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_INTEGER, - 0, - { &asn_OER_memb_pDCPBytesUL_constr_4, &asn_PER_memb_pDCPBytesUL_constr_4, memb_pDCPBytesUL_constraint_1 }, - 0, 0, /* No default value */ - "pDCPBytesUL" - }, -}; -static const int asn_MAP_PerQCIReportListItemFormat_oms_1[] = { 1, 2 }; -static const ber_tlv_tag_t asn_DEF_PerQCIReportListItemFormat_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_PerQCIReportListItemFormat_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* qci */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* pDCPBytesDL */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* pDCPBytesUL */ -}; -asn_SEQUENCE_specifics_t asn_SPC_PerQCIReportListItemFormat_specs_1 = { - sizeof(struct PerQCIReportListItemFormat), - offsetof(struct PerQCIReportListItemFormat, _asn_ctx), - asn_MAP_PerQCIReportListItemFormat_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_PerQCIReportListItemFormat_oms_1, /* Optional members */ - 2, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_PerQCIReportListItemFormat = { - "PerQCIReportListItemFormat", - "PerQCIReportListItemFormat", - &asn_OP_SEQUENCE, - asn_DEF_PerQCIReportListItemFormat_tags_1, - sizeof(asn_DEF_PerQCIReportListItemFormat_tags_1) - /sizeof(asn_DEF_PerQCIReportListItemFormat_tags_1[0]), /* 1 */ - asn_DEF_PerQCIReportListItemFormat_tags_1, /* Same as above */ - sizeof(asn_DEF_PerQCIReportListItemFormat_tags_1) - /sizeof(asn_DEF_PerQCIReportListItemFormat_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_PerQCIReportListItemFormat_1, - 3, /* Elements count */ - &asn_SPC_PerQCIReportListItemFormat_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/PerQCIReportListItemFormat.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/PerQCIReportListItemFormat.h deleted file mode 100644 index 7fb1ecf..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/PerQCIReportListItemFormat.h +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _PerQCIReportListItemFormat_H_ -#define _PerQCIReportListItemFormat_H_ - - -#include - -/* Including external dependencies */ -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* PerQCIReportListItemFormat */ -typedef struct PerQCIReportListItemFormat { - long qci; - INTEGER_t *pDCPBytesDL; /* OPTIONAL */ - INTEGER_t *pDCPBytesUL; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} PerQCIReportListItemFormat_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_PerQCIReportListItemFormat; -extern asn_SEQUENCE_specifics_t asn_SPC_PerQCIReportListItemFormat_specs_1; -extern asn_TYPE_member_t asn_MBR_PerQCIReportListItemFormat_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _PerQCIReportListItemFormat_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/PlmnID-List.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/PlmnID-List.c deleted file mode 100644 index 2126cf5..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/PlmnID-List.c +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "PlmnID-List.h" - -asn_TYPE_member_t asn_MBR_PlmnID_List_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct PlmnID_List, pLMN_Identity), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_PLMN_Identity, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "pLMN-Identity" - }, - { ATF_POINTER, 2, offsetof(struct PlmnID_List, cu_UP_PM_5GC), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_FGC_CUUP_PM_Format, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "cu-UP-PM-5GC" - }, - { ATF_POINTER, 1, offsetof(struct PlmnID_List, cu_UP_PM_EPC), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_EPC_CUUP_PM_Format, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "cu-UP-PM-EPC" - }, -}; -static const int asn_MAP_PlmnID_List_oms_1[] = { 1, 2 }; -static const ber_tlv_tag_t asn_DEF_PlmnID_List_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_PlmnID_List_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pLMN-Identity */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* cu-UP-PM-5GC */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* cu-UP-PM-EPC */ -}; -asn_SEQUENCE_specifics_t asn_SPC_PlmnID_List_specs_1 = { - sizeof(struct PlmnID_List), - offsetof(struct PlmnID_List, _asn_ctx), - asn_MAP_PlmnID_List_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_PlmnID_List_oms_1, /* Optional members */ - 2, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_PlmnID_List = { - "PlmnID-List", - "PlmnID-List", - &asn_OP_SEQUENCE, - asn_DEF_PlmnID_List_tags_1, - sizeof(asn_DEF_PlmnID_List_tags_1) - /sizeof(asn_DEF_PlmnID_List_tags_1[0]), /* 1 */ - asn_DEF_PlmnID_List_tags_1, /* Same as above */ - sizeof(asn_DEF_PlmnID_List_tags_1) - /sizeof(asn_DEF_PlmnID_List_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_PlmnID_List_1, - 3, /* Elements count */ - &asn_SPC_PlmnID_List_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/PlmnID-List.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/PlmnID-List.h deleted file mode 100644 index 79d1dd5..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/PlmnID-List.h +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _PlmnID_List_H_ -#define _PlmnID_List_H_ - - -#include - -/* Including external dependencies */ -#include "PLMN-Identity.h" -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct FGC_CUUP_PM_Format; -struct EPC_CUUP_PM_Format; - -/* PlmnID-List */ -typedef struct PlmnID_List { - PLMN_Identity_t pLMN_Identity; - struct FGC_CUUP_PM_Format *cu_UP_PM_5GC; /* OPTIONAL */ - struct EPC_CUUP_PM_Format *cu_UP_PM_EPC; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} PlmnID_List_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_PlmnID_List; -extern asn_SEQUENCE_specifics_t asn_SPC_PlmnID_List_specs_1; -extern asn_TYPE_member_t asn_MBR_PlmnID_List_1[3]; - -#ifdef __cplusplus -} -#endif - -/* Referred external types */ -#include "FGC-CUUP-PM-Format.h" -#include "EPC-CUUP-PM-Format.h" - -#endif /* _PlmnID_List_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/Presence.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/Presence.c deleted file mode 100644 index 4f55ae3..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/Presence.c +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-CommonDataTypes" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "Presence.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_Presence_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_Presence_value2enum_1[] = { - { 0, 8, "optional" }, - { 1, 11, "conditional" }, - { 2, 9, "mandatory" } -}; -static const unsigned int asn_MAP_Presence_enum2value_1[] = { - 1, /* conditional(1) */ - 2, /* mandatory(2) */ - 0 /* optional(0) */ -}; -const asn_INTEGER_specifics_t asn_SPC_Presence_specs_1 = { - asn_MAP_Presence_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_Presence_enum2value_1, /* N => "tag"; sorted by N */ - 3, /* Number of elements in the maps */ - 0, /* Enumeration is not extensible */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_Presence_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_Presence = { - "Presence", - "Presence", - &asn_OP_NativeEnumerated, - asn_DEF_Presence_tags_1, - sizeof(asn_DEF_Presence_tags_1) - /sizeof(asn_DEF_Presence_tags_1[0]), /* 1 */ - asn_DEF_Presence_tags_1, /* Same as above */ - sizeof(asn_DEF_Presence_tags_1) - /sizeof(asn_DEF_Presence_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_Presence_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_Presence_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/Presence.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/Presence.h deleted file mode 100644 index 8f93430..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/Presence.h +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-CommonDataTypes" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _Presence_H_ -#define _Presence_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum Presence { - Presence_optional = 0, - Presence_conditional = 1, - Presence_mandatory = 2 -} e_Presence; - -/* Presence */ -typedef long Presence_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_Presence_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_Presence; -extern const asn_INTEGER_specifics_t asn_SPC_Presence_specs_1; -asn_struct_free_f Presence_free; -asn_struct_print_f Presence_print; -asn_constr_check_f Presence_constraint; -ber_type_decoder_f Presence_decode_ber; -der_type_encoder_f Presence_encode_der; -xer_type_decoder_f Presence_decode_xer; -xer_type_encoder_f Presence_encode_xer; -per_type_decoder_f Presence_decode_uper; -per_type_encoder_f Presence_encode_uper; -per_type_decoder_f Presence_decode_aper; -per_type_encoder_f Presence_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _Presence_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/PrintableString.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/PrintableString.c deleted file mode 100644 index 8fc3939..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/PrintableString.c +++ /dev/null @@ -1,130 +0,0 @@ -/*- - * Copyright (c) 2003, 2004, 2006 Lev Walkin . - * All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include - -/* - * ASN.1:1984 (X.409) - */ -static const int _PrintableString_alphabet[256] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */ - 1, 0, 0, 0, 0, 0, 0, 2, 3, 4, 0, 5, 6, 7, 8, 9, /* . '() +,-./ */ -10,11,12,13,14,15,16,17,18,19,20, 0, 0,21, 0,22, /* 0123456789: = ? */ - 0,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37, /* ABCDEFGHIJKLMNO */ -38,39,40,41,42,43,44,45,46,47,48, 0, 0, 0, 0, 0, /* PQRSTUVWXYZ */ - 0,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63, /* abcdefghijklmno */ -64,65,66,67,68,69,70,71,72,73,74, 0, 0, 0, 0, 0, /* pqrstuvwxyz */ -}; -static const int _PrintableString_code2value[74] = { -32,39,40,41,43,44,45,46,47,48,49,50,51,52,53,54, -55,56,57,58,61,63,65,66,67,68,69,70,71,72,73,74, -75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90, -97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112, -113,114,115,116,117,118,119,120,121,122}; - -/* - * PrintableString basic type description. - */ -static const ber_tlv_tag_t asn_DEF_PrintableString_tags[] = { - (ASN_TAG_CLASS_UNIVERSAL | (19 << 2)), /* [UNIVERSAL 19] IMPLICIT ...*/ - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) /* ... OCTET STRING */ -}; -static int asn_DEF_PrintableString_v2c(unsigned int value) { - return _PrintableString_alphabet[value > 255 ? 0 : value] - 1; -} -static int asn_DEF_PrintableString_c2v(unsigned int code) { - if(code < 74) - return _PrintableString_code2value[code]; - return -1; -} -static asn_per_constraints_t asn_DEF_PrintableString_per_constraints = { - { APC_CONSTRAINED, 4, 4, 0x20, 0x39 }, /* Value */ - { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 }, /* Size */ - asn_DEF_PrintableString_v2c, - asn_DEF_PrintableString_c2v -}; -asn_TYPE_operation_t asn_OP_PrintableString = { - OCTET_STRING_free, - OCTET_STRING_print_utf8, /* ASCII subset */ - OCTET_STRING_compare, - OCTET_STRING_decode_ber, /* Implemented in terms of OCTET STRING */ - OCTET_STRING_encode_der, - OCTET_STRING_decode_xer_utf8, - OCTET_STRING_encode_xer_utf8, -#ifdef ASN_DISABLE_OER_SUPPORT - 0, - 0, -#else - OCTET_STRING_decode_oer, - OCTET_STRING_encode_oer, -#endif /* ASN_DISABLE_OER_SUPPORT */ -#ifdef ASN_DISABLE_PER_SUPPORT - 0, - 0, - 0, - 0, -#else - OCTET_STRING_decode_uper, - OCTET_STRING_encode_uper, - OCTET_STRING_decode_aper, - OCTET_STRING_encode_aper, -#endif /* ASN_DISABLE_PER_SUPPORT */ - OCTET_STRING_random_fill, - 0 /* Use generic outmost tag fetcher */ -}; -asn_TYPE_descriptor_t asn_DEF_PrintableString = { - "PrintableString", - "PrintableString", - &asn_OP_PrintableString, - asn_DEF_PrintableString_tags, - sizeof(asn_DEF_PrintableString_tags) - / sizeof(asn_DEF_PrintableString_tags[0]) - 1, - asn_DEF_PrintableString_tags, - sizeof(asn_DEF_PrintableString_tags) - / sizeof(asn_DEF_PrintableString_tags[0]), - { 0, &asn_DEF_PrintableString_per_constraints, PrintableString_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - - -int -PrintableString_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, - void *app_key) { - const PrintableString_t *st = (const PrintableString_t *)sptr; - - if(st && st->buf) { - uint8_t *buf = st->buf; - uint8_t *end = buf + st->size; - - /* - * Check the alphabet of the PrintableString. - * ASN.1:1984 (X.409) - */ - for(; buf < end; buf++) { - if(!_PrintableString_alphabet[*buf]) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value byte %ld (%d) " - "not in PrintableString alphabet " - "(%s:%d)", - td->name, - (long)((buf - st->buf) + 1), - *buf, - __FILE__, __LINE__); - return -1; - } - } - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - return 0; -} diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/PrintableString.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/PrintableString.h deleted file mode 100644 index 8c2b61a..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/PrintableString.h +++ /dev/null @@ -1,37 +0,0 @@ -/*- - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef _PrintableString_H_ -#define _PrintableString_H_ - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -typedef OCTET_STRING_t PrintableString_t; /* Implemented via OCTET STRING */ - -extern asn_TYPE_descriptor_t asn_DEF_PrintableString; -extern asn_TYPE_operation_t asn_OP_PrintableString; - -asn_constr_check_f PrintableString_constraint; - -#define PrintableString_free OCTET_STRING_free -#define PrintableString_print OCTET_STRING_print_utf8 -#define PrintableString_compare OCTET_STRING_compare -#define PrintableString_decode_ber OCTET_STRING_decode_ber -#define PrintableString_encode_der OCTET_STRING_encode_der -#define PrintableString_decode_xer OCTET_STRING_decode_xer_utf8 -#define PrintableString_encode_xer OCTET_STRING_encode_xer_utf8 -#define PrintableString_decode_uper OCTET_STRING_decode_uper -#define PrintableString_encode_uper OCTET_STRING_encode_uper -#define PrintableString_decode_aper OCTET_STRING_decode_aper -#define PrintableString_encode_aper OCTET_STRING_encode_aper - -#ifdef __cplusplus -} -#endif - -#endif /* _PrintableString_H_ */ diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/ProcedureCode.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/ProcedureCode.c deleted file mode 100644 index 0e488d4..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/ProcedureCode.c +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-CommonDataTypes" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "ProcedureCode.h" - -int -ProcedureCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 255)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using NativeInteger, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_ProcedureCode_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_ProcedureCode_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ProcedureCode = { - "ProcedureCode", - "ProcedureCode", - &asn_OP_NativeInteger, - asn_DEF_ProcedureCode_tags_1, - sizeof(asn_DEF_ProcedureCode_tags_1) - /sizeof(asn_DEF_ProcedureCode_tags_1[0]), /* 1 */ - asn_DEF_ProcedureCode_tags_1, /* Same as above */ - sizeof(asn_DEF_ProcedureCode_tags_1) - /sizeof(asn_DEF_ProcedureCode_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_ProcedureCode_constr_1, ProcedureCode_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/ProcedureCode.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/ProcedureCode.h deleted file mode 100644 index a2e8fe8..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/ProcedureCode.h +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-CommonDataTypes" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _ProcedureCode_H_ -#define _ProcedureCode_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeInteger.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* ProcedureCode */ -typedef long ProcedureCode_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_ProcedureCode_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_ProcedureCode; -asn_struct_free_f ProcedureCode_free; -asn_struct_print_f ProcedureCode_print; -asn_constr_check_f ProcedureCode_constraint; -ber_type_decoder_f ProcedureCode_decode_ber; -der_type_encoder_f ProcedureCode_encode_der; -xer_type_decoder_f ProcedureCode_decode_xer; -xer_type_encoder_f ProcedureCode_encode_xer; -per_type_decoder_f ProcedureCode_decode_uper; -per_type_encoder_f ProcedureCode_encode_uper; -per_type_decoder_f ProcedureCode_decode_aper; -per_type_encoder_f ProcedureCode_encode_aper; -#define ProcedureCode_id_E2setup ((ProcedureCode_t)1) -#define ProcedureCode_id_ErrorIndication ((ProcedureCode_t)2) -#define ProcedureCode_id_Reset ((ProcedureCode_t)3) -#define ProcedureCode_id_RICcontrol ((ProcedureCode_t)4) -#define ProcedureCode_id_RICindication ((ProcedureCode_t)5) -#define ProcedureCode_id_RICserviceQuery ((ProcedureCode_t)6) -#define ProcedureCode_id_RICserviceUpdate ((ProcedureCode_t)7) -#define ProcedureCode_id_RICsubscription ((ProcedureCode_t)8) -#define ProcedureCode_id_RICsubscriptionDelete ((ProcedureCode_t)9) - -#ifdef __cplusplus -} -#endif - -#endif /* _ProcedureCode_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/ProtocolIE-Container.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/ProtocolIE-Container.c deleted file mode 100644 index 4046387..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/ProtocolIE-Container.c +++ /dev/null @@ -1,810 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-Containers" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "ProtocolIE-Container.h" - -#include "ProtocolIE-Field.h" -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P0_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P1_constr_3 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P2_constr_5 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P3_constr_7 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P4_constr_9 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P5_constr_11 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P6_constr_13 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P7_constr_15 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P8_constr_17 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P9_constr_19 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P10_constr_21 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P11_constr_23 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P12_constr_25 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P13_constr_27 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P14_constr_29 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P15_constr_31 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P16_constr_33 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P17_constr_35 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P18_constr_37 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P19_constr_39 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P0_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICsubscriptionRequest_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1527P0_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P0_specs_1 = { - sizeof(struct ProtocolIE_Container_1527P0), - offsetof(struct ProtocolIE_Container_1527P0, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P0 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1527P0_tags_1, - sizeof(asn_DEF_ProtocolIE_Container_1527P0_tags_1) - /sizeof(asn_DEF_ProtocolIE_Container_1527P0_tags_1[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1527P0_tags_1, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1527P0_tags_1) - /sizeof(asn_DEF_ProtocolIE_Container_1527P0_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_1527P0_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1527P0_1, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1527P0_specs_1 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P1_3[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICsubscriptionResponse_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1527P1_tags_3[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P1_specs_3 = { - sizeof(struct ProtocolIE_Container_1527P1), - offsetof(struct ProtocolIE_Container_1527P1, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P1 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1527P1_tags_3, - sizeof(asn_DEF_ProtocolIE_Container_1527P1_tags_3) - /sizeof(asn_DEF_ProtocolIE_Container_1527P1_tags_3[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1527P1_tags_3, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1527P1_tags_3) - /sizeof(asn_DEF_ProtocolIE_Container_1527P1_tags_3[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_1527P1_constr_3, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1527P1_3, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1527P1_specs_3 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P2_5[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICsubscriptionFailure_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1527P2_tags_5[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P2_specs_5 = { - sizeof(struct ProtocolIE_Container_1527P2), - offsetof(struct ProtocolIE_Container_1527P2, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P2 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1527P2_tags_5, - sizeof(asn_DEF_ProtocolIE_Container_1527P2_tags_5) - /sizeof(asn_DEF_ProtocolIE_Container_1527P2_tags_5[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1527P2_tags_5, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1527P2_tags_5) - /sizeof(asn_DEF_ProtocolIE_Container_1527P2_tags_5[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_1527P2_constr_5, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1527P2_5, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1527P2_specs_5 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P3_7[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICsubscriptionDeleteRequest_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1527P3_tags_7[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P3_specs_7 = { - sizeof(struct ProtocolIE_Container_1527P3), - offsetof(struct ProtocolIE_Container_1527P3, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P3 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1527P3_tags_7, - sizeof(asn_DEF_ProtocolIE_Container_1527P3_tags_7) - /sizeof(asn_DEF_ProtocolIE_Container_1527P3_tags_7[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1527P3_tags_7, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1527P3_tags_7) - /sizeof(asn_DEF_ProtocolIE_Container_1527P3_tags_7[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_1527P3_constr_7, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1527P3_7, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1527P3_specs_7 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P4_9[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICsubscriptionDeleteResponse_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1527P4_tags_9[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P4_specs_9 = { - sizeof(struct ProtocolIE_Container_1527P4), - offsetof(struct ProtocolIE_Container_1527P4, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P4 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1527P4_tags_9, - sizeof(asn_DEF_ProtocolIE_Container_1527P4_tags_9) - /sizeof(asn_DEF_ProtocolIE_Container_1527P4_tags_9[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1527P4_tags_9, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1527P4_tags_9) - /sizeof(asn_DEF_ProtocolIE_Container_1527P4_tags_9[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_1527P4_constr_9, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1527P4_9, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1527P4_specs_9 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P5_11[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICsubscriptionDeleteFailure_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1527P5_tags_11[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P5_specs_11 = { - sizeof(struct ProtocolIE_Container_1527P5), - offsetof(struct ProtocolIE_Container_1527P5, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P5 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1527P5_tags_11, - sizeof(asn_DEF_ProtocolIE_Container_1527P5_tags_11) - /sizeof(asn_DEF_ProtocolIE_Container_1527P5_tags_11[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1527P5_tags_11, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1527P5_tags_11) - /sizeof(asn_DEF_ProtocolIE_Container_1527P5_tags_11[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_1527P5_constr_11, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1527P5_11, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1527P5_specs_11 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P6_13[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICindication_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1527P6_tags_13[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P6_specs_13 = { - sizeof(struct ProtocolIE_Container_1527P6), - offsetof(struct ProtocolIE_Container_1527P6, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P6 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1527P6_tags_13, - sizeof(asn_DEF_ProtocolIE_Container_1527P6_tags_13) - /sizeof(asn_DEF_ProtocolIE_Container_1527P6_tags_13[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1527P6_tags_13, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1527P6_tags_13) - /sizeof(asn_DEF_ProtocolIE_Container_1527P6_tags_13[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_1527P6_constr_13, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1527P6_13, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1527P6_specs_13 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P7_15[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICcontrolRequest_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1527P7_tags_15[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P7_specs_15 = { - sizeof(struct ProtocolIE_Container_1527P7), - offsetof(struct ProtocolIE_Container_1527P7, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P7 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1527P7_tags_15, - sizeof(asn_DEF_ProtocolIE_Container_1527P7_tags_15) - /sizeof(asn_DEF_ProtocolIE_Container_1527P7_tags_15[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1527P7_tags_15, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1527P7_tags_15) - /sizeof(asn_DEF_ProtocolIE_Container_1527P7_tags_15[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_1527P7_constr_15, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1527P7_15, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1527P7_specs_15 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P8_17[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICcontrolAcknowledge_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1527P8_tags_17[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P8_specs_17 = { - sizeof(struct ProtocolIE_Container_1527P8), - offsetof(struct ProtocolIE_Container_1527P8, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P8 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1527P8_tags_17, - sizeof(asn_DEF_ProtocolIE_Container_1527P8_tags_17) - /sizeof(asn_DEF_ProtocolIE_Container_1527P8_tags_17[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1527P8_tags_17, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1527P8_tags_17) - /sizeof(asn_DEF_ProtocolIE_Container_1527P8_tags_17[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_1527P8_constr_17, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1527P8_17, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1527P8_specs_17 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P9_19[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICcontrolFailure_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1527P9_tags_19[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P9_specs_19 = { - sizeof(struct ProtocolIE_Container_1527P9), - offsetof(struct ProtocolIE_Container_1527P9, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P9 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1527P9_tags_19, - sizeof(asn_DEF_ProtocolIE_Container_1527P9_tags_19) - /sizeof(asn_DEF_ProtocolIE_Container_1527P9_tags_19[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1527P9_tags_19, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1527P9_tags_19) - /sizeof(asn_DEF_ProtocolIE_Container_1527P9_tags_19[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_1527P9_constr_19, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1527P9_19, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1527P9_specs_19 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P10_21[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ErrorIndication_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1527P10_tags_21[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P10_specs_21 = { - sizeof(struct ProtocolIE_Container_1527P10), - offsetof(struct ProtocolIE_Container_1527P10, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P10 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1527P10_tags_21, - sizeof(asn_DEF_ProtocolIE_Container_1527P10_tags_21) - /sizeof(asn_DEF_ProtocolIE_Container_1527P10_tags_21[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1527P10_tags_21, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1527P10_tags_21) - /sizeof(asn_DEF_ProtocolIE_Container_1527P10_tags_21[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_1527P10_constr_21, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1527P10_21, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1527P10_specs_21 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P11_23[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E2setupRequestIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1527P11_tags_23[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P11_specs_23 = { - sizeof(struct ProtocolIE_Container_1527P11), - offsetof(struct ProtocolIE_Container_1527P11, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P11 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1527P11_tags_23, - sizeof(asn_DEF_ProtocolIE_Container_1527P11_tags_23) - /sizeof(asn_DEF_ProtocolIE_Container_1527P11_tags_23[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1527P11_tags_23, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1527P11_tags_23) - /sizeof(asn_DEF_ProtocolIE_Container_1527P11_tags_23[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_1527P11_constr_23, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1527P11_23, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1527P11_specs_23 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P12_25[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E2setupResponseIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1527P12_tags_25[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P12_specs_25 = { - sizeof(struct ProtocolIE_Container_1527P12), - offsetof(struct ProtocolIE_Container_1527P12, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P12 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1527P12_tags_25, - sizeof(asn_DEF_ProtocolIE_Container_1527P12_tags_25) - /sizeof(asn_DEF_ProtocolIE_Container_1527P12_tags_25[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1527P12_tags_25, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1527P12_tags_25) - /sizeof(asn_DEF_ProtocolIE_Container_1527P12_tags_25[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_1527P12_constr_25, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1527P12_25, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1527P12_specs_25 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P13_27[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E2setupFailureIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1527P13_tags_27[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P13_specs_27 = { - sizeof(struct ProtocolIE_Container_1527P13), - offsetof(struct ProtocolIE_Container_1527P13, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P13 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1527P13_tags_27, - sizeof(asn_DEF_ProtocolIE_Container_1527P13_tags_27) - /sizeof(asn_DEF_ProtocolIE_Container_1527P13_tags_27[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1527P13_tags_27, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1527P13_tags_27) - /sizeof(asn_DEF_ProtocolIE_Container_1527P13_tags_27[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_1527P13_constr_27, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1527P13_27, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1527P13_specs_27 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P14_29[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ResetRequestIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1527P14_tags_29[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P14_specs_29 = { - sizeof(struct ProtocolIE_Container_1527P14), - offsetof(struct ProtocolIE_Container_1527P14, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P14 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1527P14_tags_29, - sizeof(asn_DEF_ProtocolIE_Container_1527P14_tags_29) - /sizeof(asn_DEF_ProtocolIE_Container_1527P14_tags_29[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1527P14_tags_29, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1527P14_tags_29) - /sizeof(asn_DEF_ProtocolIE_Container_1527P14_tags_29[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_1527P14_constr_29, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1527P14_29, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1527P14_specs_29 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P15_31[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ResetResponseIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1527P15_tags_31[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P15_specs_31 = { - sizeof(struct ProtocolIE_Container_1527P15), - offsetof(struct ProtocolIE_Container_1527P15, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P15 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1527P15_tags_31, - sizeof(asn_DEF_ProtocolIE_Container_1527P15_tags_31) - /sizeof(asn_DEF_ProtocolIE_Container_1527P15_tags_31[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1527P15_tags_31, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1527P15_tags_31) - /sizeof(asn_DEF_ProtocolIE_Container_1527P15_tags_31[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_1527P15_constr_31, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1527P15_31, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1527P15_specs_31 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P16_33[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICserviceUpdate_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1527P16_tags_33[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P16_specs_33 = { - sizeof(struct ProtocolIE_Container_1527P16), - offsetof(struct ProtocolIE_Container_1527P16, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P16 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1527P16_tags_33, - sizeof(asn_DEF_ProtocolIE_Container_1527P16_tags_33) - /sizeof(asn_DEF_ProtocolIE_Container_1527P16_tags_33[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1527P16_tags_33, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1527P16_tags_33) - /sizeof(asn_DEF_ProtocolIE_Container_1527P16_tags_33[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_1527P16_constr_33, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1527P16_33, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1527P16_specs_33 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P17_35[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICserviceUpdateAcknowledge_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1527P17_tags_35[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P17_specs_35 = { - sizeof(struct ProtocolIE_Container_1527P17), - offsetof(struct ProtocolIE_Container_1527P17, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P17 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1527P17_tags_35, - sizeof(asn_DEF_ProtocolIE_Container_1527P17_tags_35) - /sizeof(asn_DEF_ProtocolIE_Container_1527P17_tags_35[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1527P17_tags_35, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1527P17_tags_35) - /sizeof(asn_DEF_ProtocolIE_Container_1527P17_tags_35[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_1527P17_constr_35, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1527P17_35, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1527P17_specs_35 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P18_37[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICserviceUpdateFailure_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1527P18_tags_37[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P18_specs_37 = { - sizeof(struct ProtocolIE_Container_1527P18), - offsetof(struct ProtocolIE_Container_1527P18, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P18 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1527P18_tags_37, - sizeof(asn_DEF_ProtocolIE_Container_1527P18_tags_37) - /sizeof(asn_DEF_ProtocolIE_Container_1527P18_tags_37[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1527P18_tags_37, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1527P18_tags_37) - /sizeof(asn_DEF_ProtocolIE_Container_1527P18_tags_37[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_1527P18_constr_37, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1527P18_37, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1527P18_specs_37 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P19_39[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICserviceQuery_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1527P19_tags_39[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P19_specs_39 = { - sizeof(struct ProtocolIE_Container_1527P19), - offsetof(struct ProtocolIE_Container_1527P19, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P19 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1527P19_tags_39, - sizeof(asn_DEF_ProtocolIE_Container_1527P19_tags_39) - /sizeof(asn_DEF_ProtocolIE_Container_1527P19_tags_39[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1527P19_tags_39, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1527P19_tags_39) - /sizeof(asn_DEF_ProtocolIE_Container_1527P19_tags_39[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_1527P19_constr_39, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1527P19_39, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1527P19_specs_39 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/ProtocolIE-Container.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/ProtocolIE-Container.h deleted file mode 100644 index 5034a64..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/ProtocolIE-Container.h +++ /dev/null @@ -1,253 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-Containers" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _ProtocolIE_Container_H_ -#define _ProtocolIE_Container_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct RICsubscriptionRequest_IEs; -struct RICsubscriptionResponse_IEs; -struct RICsubscriptionFailure_IEs; -struct RICsubscriptionDeleteRequest_IEs; -struct RICsubscriptionDeleteResponse_IEs; -struct RICsubscriptionDeleteFailure_IEs; -struct RICindication_IEs; -struct RICcontrolRequest_IEs; -struct RICcontrolAcknowledge_IEs; -struct RICcontrolFailure_IEs; -struct ErrorIndication_IEs; -struct E2setupRequestIEs; -struct E2setupResponseIEs; -struct E2setupFailureIEs; -struct ResetRequestIEs; -struct ResetResponseIEs; -struct RICserviceUpdate_IEs; -struct RICserviceUpdateAcknowledge_IEs; -struct RICserviceUpdateFailure_IEs; -struct RICserviceQuery_IEs; - -/* ProtocolIE-Container */ -typedef struct ProtocolIE_Container_1527P0 { - A_SEQUENCE_OF(struct RICsubscriptionRequest_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1527P0_t; -typedef struct ProtocolIE_Container_1527P1 { - A_SEQUENCE_OF(struct RICsubscriptionResponse_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1527P1_t; -typedef struct ProtocolIE_Container_1527P2 { - A_SEQUENCE_OF(struct RICsubscriptionFailure_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1527P2_t; -typedef struct ProtocolIE_Container_1527P3 { - A_SEQUENCE_OF(struct RICsubscriptionDeleteRequest_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1527P3_t; -typedef struct ProtocolIE_Container_1527P4 { - A_SEQUENCE_OF(struct RICsubscriptionDeleteResponse_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1527P4_t; -typedef struct ProtocolIE_Container_1527P5 { - A_SEQUENCE_OF(struct RICsubscriptionDeleteFailure_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1527P5_t; -typedef struct ProtocolIE_Container_1527P6 { - A_SEQUENCE_OF(struct RICindication_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1527P6_t; -typedef struct ProtocolIE_Container_1527P7 { - A_SEQUENCE_OF(struct RICcontrolRequest_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1527P7_t; -typedef struct ProtocolIE_Container_1527P8 { - A_SEQUENCE_OF(struct RICcontrolAcknowledge_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1527P8_t; -typedef struct ProtocolIE_Container_1527P9 { - A_SEQUENCE_OF(struct RICcontrolFailure_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1527P9_t; -typedef struct ProtocolIE_Container_1527P10 { - A_SEQUENCE_OF(struct ErrorIndication_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1527P10_t; -typedef struct ProtocolIE_Container_1527P11 { - A_SEQUENCE_OF(struct E2setupRequestIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1527P11_t; -typedef struct ProtocolIE_Container_1527P12 { - A_SEQUENCE_OF(struct E2setupResponseIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1527P12_t; -typedef struct ProtocolIE_Container_1527P13 { - A_SEQUENCE_OF(struct E2setupFailureIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1527P13_t; -typedef struct ProtocolIE_Container_1527P14 { - A_SEQUENCE_OF(struct ResetRequestIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1527P14_t; -typedef struct ProtocolIE_Container_1527P15 { - A_SEQUENCE_OF(struct ResetResponseIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1527P15_t; -typedef struct ProtocolIE_Container_1527P16 { - A_SEQUENCE_OF(struct RICserviceUpdate_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1527P16_t; -typedef struct ProtocolIE_Container_1527P17 { - A_SEQUENCE_OF(struct RICserviceUpdateAcknowledge_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1527P17_t; -typedef struct ProtocolIE_Container_1527P18 { - A_SEQUENCE_OF(struct RICserviceUpdateFailure_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1527P18_t; -typedef struct ProtocolIE_Container_1527P19 { - A_SEQUENCE_OF(struct RICserviceQuery_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1527P19_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P0; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P0_specs_1; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P0_1[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P0_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P1; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P1_specs_3; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P1_3[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P1_constr_3; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P2; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P2_specs_5; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P2_5[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P2_constr_5; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P3; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P3_specs_7; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P3_7[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P3_constr_7; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P4; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P4_specs_9; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P4_9[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P4_constr_9; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P5; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P5_specs_11; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P5_11[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P5_constr_11; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P6; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P6_specs_13; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P6_13[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P6_constr_13; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P7; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P7_specs_15; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P7_15[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P7_constr_15; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P8; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P8_specs_17; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P8_17[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P8_constr_17; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P9; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P9_specs_19; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P9_19[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P9_constr_19; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P10; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P10_specs_21; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P10_21[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P10_constr_21; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P11; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P11_specs_23; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P11_23[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P11_constr_23; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P12; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P12_specs_25; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P12_25[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P12_constr_25; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P13; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P13_specs_27; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P13_27[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P13_constr_27; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P14; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P14_specs_29; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P14_29[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P14_constr_29; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P15; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P15_specs_31; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P15_31[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P15_constr_31; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P16; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P16_specs_33; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P16_33[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P16_constr_33; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P17; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P17_specs_35; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P17_35[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P17_constr_35; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P18; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P18_specs_37; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P18_37[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P18_constr_37; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P19; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P19_specs_39; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P19_39[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P19_constr_39; - -#ifdef __cplusplus -} -#endif - -#endif /* _ProtocolIE_Container_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/ProtocolIE-ContainerList.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/ProtocolIE-ContainerList.c deleted file mode 100644 index c9d5808..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/ProtocolIE-ContainerList.c +++ /dev/null @@ -1,9 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-Containers" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "ProtocolIE-ContainerList.h" - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/ProtocolIE-ContainerList.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/ProtocolIE-ContainerList.h deleted file mode 100644 index 3376410..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/ProtocolIE-ContainerList.h +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-Containers" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _ProtocolIE_ContainerList_H_ -#define _ProtocolIE_ContainerList_H_ - - -#include "asn_application.h" - -#ifdef __cplusplus -extern "C" { -#endif - -#ifdef __cplusplus -} -#endif - -#endif /* _ProtocolIE_ContainerList_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/ProtocolIE-ContainerPair.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/ProtocolIE-ContainerPair.c deleted file mode 100644 index ad1c8b8..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/ProtocolIE-ContainerPair.c +++ /dev/null @@ -1,9 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-Containers" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "ProtocolIE-ContainerPair.h" - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/ProtocolIE-ContainerPair.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/ProtocolIE-ContainerPair.h deleted file mode 100644 index 5b730c7..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/ProtocolIE-ContainerPair.h +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-Containers" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _ProtocolIE_ContainerPair_H_ -#define _ProtocolIE_ContainerPair_H_ - - -#include "asn_application.h" - -#ifdef __cplusplus -extern "C" { -#endif - -#ifdef __cplusplus -} -#endif - -#endif /* _ProtocolIE_ContainerPair_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/ProtocolIE-ContainerPairList.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/ProtocolIE-ContainerPairList.c deleted file mode 100644 index f77445b..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/ProtocolIE-ContainerPairList.c +++ /dev/null @@ -1,9 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-Containers" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "ProtocolIE-ContainerPairList.h" - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/ProtocolIE-ContainerPairList.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/ProtocolIE-ContainerPairList.h deleted file mode 100644 index 1837ac8..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/ProtocolIE-ContainerPairList.h +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-Containers" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _ProtocolIE_ContainerPairList_H_ -#define _ProtocolIE_ContainerPairList_H_ - - -#include "asn_application.h" - -#ifdef __cplusplus -extern "C" { -#endif - -#ifdef __cplusplus -} -#endif - -#endif /* _ProtocolIE_ContainerPairList_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/ProtocolIE-Field.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/ProtocolIE-Field.c deleted file mode 100644 index af5597c..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/ProtocolIE-Field.c +++ /dev/null @@ -1,7190 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-Containers" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "ProtocolIE-Field.h" - -static const long asn_VAL_4_id_RICaction_ToBeSetup_Item = 19; -static const long asn_VAL_4_ignore = 1; -static const long asn_VAL_4_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_RICaction_ToBeSetup_ItemIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_4_id_RICaction_ToBeSetup_Item }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_4_ignore }, - { "&Value", aioc__type, &asn_DEF_RICaction_ToBeSetup_Item }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_4_mandatory } -}; -static const asn_ioc_set_t asn_IOS_RICaction_ToBeSetup_ItemIEs_1[] = { - { 1, 4, asn_IOS_RICaction_ToBeSetup_ItemIEs_1_rows } -}; -static const long asn_VAL_9_id_RICaction_Admitted_Item = 14; -static const long asn_VAL_9_ignore = 1; -static const long asn_VAL_9_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_RICaction_Admitted_ItemIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_9_id_RICaction_Admitted_Item }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_9_ignore }, - { "&Value", aioc__type, &asn_DEF_RICaction_Admitted_Item }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_9_mandatory } -}; -static const asn_ioc_set_t asn_IOS_RICaction_Admitted_ItemIEs_1[] = { - { 1, 4, asn_IOS_RICaction_Admitted_ItemIEs_1_rows } -}; -static const long asn_VAL_10_id_RICaction_NotAdmitted_Item = 16; -static const long asn_VAL_10_ignore = 1; -static const long asn_VAL_10_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_RICaction_NotAdmitted_ItemIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_10_id_RICaction_NotAdmitted_Item }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_10_ignore }, - { "&Value", aioc__type, &asn_DEF_RICaction_NotAdmitted_Item }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_10_mandatory } -}; -static const asn_ioc_set_t asn_IOS_RICaction_NotAdmitted_ItemIEs_1[] = { - { 1, 4, asn_IOS_RICaction_NotAdmitted_ItemIEs_1_rows } -}; -static const long asn_VAL_64_id_RANfunction_Item = 8; -static const long asn_VAL_64_ignore = 1; -static const long asn_VAL_64_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_RANfunction_ItemIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_64_id_RANfunction_Item }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_64_ignore }, - { "&Value", aioc__type, &asn_DEF_RANfunction_Item }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_64_mandatory } -}; -static const asn_ioc_set_t asn_IOS_RANfunction_ItemIEs_1[] = { - { 1, 4, asn_IOS_RANfunction_ItemIEs_1_rows } -}; -static const long asn_VAL_65_id_RANfunctionID_Item = 6; -static const long asn_VAL_65_ignore = 1; -static const long asn_VAL_65_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_RANfunctionID_ItemIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_65_id_RANfunctionID_Item }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_65_ignore }, - { "&Value", aioc__type, &asn_DEF_RANfunctionID_Item }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_65_mandatory } -}; -static const asn_ioc_set_t asn_IOS_RANfunctionID_ItemIEs_1[] = { - { 1, 4, asn_IOS_RANfunctionID_ItemIEs_1_rows } -}; -static const long asn_VAL_68_id_RANfunctionIEcause_Item = 7; -static const long asn_VAL_68_ignore = 1; -static const long asn_VAL_68_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_RANfunctionIDcause_ItemIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_68_id_RANfunctionIEcause_Item }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_68_ignore }, - { "&Value", aioc__type, &asn_DEF_RANfunctionIDcause_Item }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_68_mandatory } -}; -static const asn_ioc_set_t asn_IOS_RANfunctionIDcause_ItemIEs_1[] = { - { 1, 4, asn_IOS_RANfunctionIDcause_ItemIEs_1_rows } -}; -static const long asn_VAL_1_id_RICrequestID = 29; -static const long asn_VAL_1_reject = 0; -static const long asn_VAL_1_mandatory = 2; -static const long asn_VAL_2_id_RANfunctionID = 5; -static const long asn_VAL_2_reject = 0; -static const long asn_VAL_2_mandatory = 2; -static const long asn_VAL_3_id_RICsubscriptionDetails = 30; -static const long asn_VAL_3_reject = 0; -static const long asn_VAL_3_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_RICsubscriptionRequest_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_1_id_RICrequestID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_1_reject }, - { "&Value", aioc__type, &asn_DEF_RICrequestID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_1_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_2_id_RANfunctionID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_2_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_2_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_3_id_RICsubscriptionDetails }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_3_reject }, - { "&Value", aioc__type, &asn_DEF_RICsubscriptionDetails }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_3_mandatory } -}; -static const asn_ioc_set_t asn_IOS_RICsubscriptionRequest_IEs_1[] = { - { 3, 4, asn_IOS_RICsubscriptionRequest_IEs_1_rows } -}; -static const long asn_VAL_5_id_RICrequestID = 29; -static const long asn_VAL_5_reject = 0; -static const long asn_VAL_5_mandatory = 2; -static const long asn_VAL_6_id_RANfunctionID = 5; -static const long asn_VAL_6_reject = 0; -static const long asn_VAL_6_mandatory = 2; -static const long asn_VAL_7_id_RICactions_Admitted = 17; -static const long asn_VAL_7_reject = 0; -static const long asn_VAL_7_mandatory = 2; -static const long asn_VAL_8_id_RICactions_NotAdmitted = 18; -static const long asn_VAL_8_reject = 0; -static const long asn_VAL_8_optional = 0; -static const asn_ioc_cell_t asn_IOS_RICsubscriptionResponse_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_5_id_RICrequestID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_5_reject }, - { "&Value", aioc__type, &asn_DEF_RICrequestID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_5_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_6_id_RANfunctionID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_6_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_6_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_7_id_RICactions_Admitted }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_7_reject }, - { "&Value", aioc__type, &asn_DEF_RICaction_Admitted_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_7_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_8_id_RICactions_NotAdmitted }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_8_reject }, - { "&Value", aioc__type, &asn_DEF_RICaction_NotAdmitted_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_8_optional } -}; -static const asn_ioc_set_t asn_IOS_RICsubscriptionResponse_IEs_1[] = { - { 4, 4, asn_IOS_RICsubscriptionResponse_IEs_1_rows } -}; -static const long asn_VAL_11_id_RICrequestID = 29; -static const long asn_VAL_11_reject = 0; -static const long asn_VAL_11_mandatory = 2; -static const long asn_VAL_12_id_RANfunctionID = 5; -static const long asn_VAL_12_reject = 0; -static const long asn_VAL_12_mandatory = 2; -static const long asn_VAL_13_id_RICactions_NotAdmitted = 18; -static const long asn_VAL_13_reject = 0; -static const long asn_VAL_13_mandatory = 2; -static const long asn_VAL_14_id_CriticalityDiagnostics = 2; -static const long asn_VAL_14_ignore = 1; -static const long asn_VAL_14_optional = 0; -static const asn_ioc_cell_t asn_IOS_RICsubscriptionFailure_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_11_id_RICrequestID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_11_reject }, - { "&Value", aioc__type, &asn_DEF_RICrequestID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_11_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_12_id_RANfunctionID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_12_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_12_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_13_id_RICactions_NotAdmitted }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_13_reject }, - { "&Value", aioc__type, &asn_DEF_RICaction_NotAdmitted_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_13_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_14_id_CriticalityDiagnostics }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_14_ignore }, - { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_14_optional } -}; -static const asn_ioc_set_t asn_IOS_RICsubscriptionFailure_IEs_1[] = { - { 4, 4, asn_IOS_RICsubscriptionFailure_IEs_1_rows } -}; -static const long asn_VAL_15_id_RICrequestID = 29; -static const long asn_VAL_15_reject = 0; -static const long asn_VAL_15_mandatory = 2; -static const long asn_VAL_16_id_RANfunctionID = 5; -static const long asn_VAL_16_reject = 0; -static const long asn_VAL_16_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_RICsubscriptionDeleteRequest_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_15_id_RICrequestID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_15_reject }, - { "&Value", aioc__type, &asn_DEF_RICrequestID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_15_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_16_id_RANfunctionID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_16_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_16_mandatory } -}; -static const asn_ioc_set_t asn_IOS_RICsubscriptionDeleteRequest_IEs_1[] = { - { 2, 4, asn_IOS_RICsubscriptionDeleteRequest_IEs_1_rows } -}; -static const long asn_VAL_17_id_RICrequestID = 29; -static const long asn_VAL_17_reject = 0; -static const long asn_VAL_17_mandatory = 2; -static const long asn_VAL_18_id_RANfunctionID = 5; -static const long asn_VAL_18_reject = 0; -static const long asn_VAL_18_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_RICsubscriptionDeleteResponse_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_17_id_RICrequestID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_17_reject }, - { "&Value", aioc__type, &asn_DEF_RICrequestID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_17_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_18_id_RANfunctionID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_18_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_18_mandatory } -}; -static const asn_ioc_set_t asn_IOS_RICsubscriptionDeleteResponse_IEs_1[] = { - { 2, 4, asn_IOS_RICsubscriptionDeleteResponse_IEs_1_rows } -}; -static const long asn_VAL_19_id_RICrequestID = 29; -static const long asn_VAL_19_reject = 0; -static const long asn_VAL_19_mandatory = 2; -static const long asn_VAL_20_id_RANfunctionID = 5; -static const long asn_VAL_20_reject = 0; -static const long asn_VAL_20_mandatory = 2; -static const long asn_VAL_21_id_Cause = 1; -static const long asn_VAL_21_ignore = 1; -static const long asn_VAL_21_mandatory = 2; -static const long asn_VAL_22_id_CriticalityDiagnostics = 2; -static const long asn_VAL_22_ignore = 1; -static const long asn_VAL_22_optional = 0; -static const asn_ioc_cell_t asn_IOS_RICsubscriptionDeleteFailure_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_19_id_RICrequestID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_19_reject }, - { "&Value", aioc__type, &asn_DEF_RICrequestID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_19_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_20_id_RANfunctionID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_20_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_20_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_21_id_Cause }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_21_ignore }, - { "&Value", aioc__type, &asn_DEF_Cause }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_21_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_22_id_CriticalityDiagnostics }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_22_ignore }, - { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_22_optional } -}; -static const asn_ioc_set_t asn_IOS_RICsubscriptionDeleteFailure_IEs_1[] = { - { 4, 4, asn_IOS_RICsubscriptionDeleteFailure_IEs_1_rows } -}; -static const long asn_VAL_23_id_RICrequestID = 29; -static const long asn_VAL_23_reject = 0; -static const long asn_VAL_23_mandatory = 2; -static const long asn_VAL_24_id_RANfunctionID = 5; -static const long asn_VAL_24_reject = 0; -static const long asn_VAL_24_mandatory = 2; -static const long asn_VAL_25_id_RICactionID = 15; -static const long asn_VAL_25_reject = 0; -static const long asn_VAL_25_mandatory = 2; -static const long asn_VAL_26_id_RICindicationSN = 27; -static const long asn_VAL_26_reject = 0; -static const long asn_VAL_26_optional = 0; -static const long asn_VAL_27_id_RICindicationType = 28; -static const long asn_VAL_27_reject = 0; -static const long asn_VAL_27_mandatory = 2; -static const long asn_VAL_28_id_RICindicationHeader = 25; -static const long asn_VAL_28_reject = 0; -static const long asn_VAL_28_mandatory = 2; -static const long asn_VAL_29_id_RICindicationMessage = 26; -static const long asn_VAL_29_reject = 0; -static const long asn_VAL_29_mandatory = 2; -static const long asn_VAL_30_id_RICcallProcessID = 20; -static const long asn_VAL_30_reject = 0; -static const long asn_VAL_30_optional = 0; -static const asn_ioc_cell_t asn_IOS_RICindication_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_23_id_RICrequestID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_23_reject }, - { "&Value", aioc__type, &asn_DEF_RICrequestID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_23_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_24_id_RANfunctionID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_24_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_24_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_25_id_RICactionID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_25_reject }, - { "&Value", aioc__type, &asn_DEF_RICactionID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_25_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_26_id_RICindicationSN }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_26_reject }, - { "&Value", aioc__type, &asn_DEF_RICindicationSN }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_26_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_27_id_RICindicationType }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_27_reject }, - { "&Value", aioc__type, &asn_DEF_RICindicationType }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_27_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_28_id_RICindicationHeader }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_28_reject }, - { "&Value", aioc__type, &asn_DEF_RICindicationHeader }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_28_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_29_id_RICindicationMessage }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_29_reject }, - { "&Value", aioc__type, &asn_DEF_RICindicationMessage }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_29_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_30_id_RICcallProcessID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_30_reject }, - { "&Value", aioc__type, &asn_DEF_RICcallProcessID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_30_optional } -}; -static const asn_ioc_set_t asn_IOS_RICindication_IEs_1[] = { - { 8, 4, asn_IOS_RICindication_IEs_1_rows } -}; -static const long asn_VAL_31_id_RICrequestID = 29; -static const long asn_VAL_31_reject = 0; -static const long asn_VAL_31_mandatory = 2; -static const long asn_VAL_32_id_RANfunctionID = 5; -static const long asn_VAL_32_reject = 0; -static const long asn_VAL_32_mandatory = 2; -static const long asn_VAL_33_id_RICcallProcessID = 20; -static const long asn_VAL_33_reject = 0; -static const long asn_VAL_33_optional = 0; -static const long asn_VAL_34_id_RICcontrolHeader = 22; -static const long asn_VAL_34_reject = 0; -static const long asn_VAL_34_mandatory = 2; -static const long asn_VAL_35_id_RICcontrolMessage = 23; -static const long asn_VAL_35_reject = 0; -static const long asn_VAL_35_mandatory = 2; -static const long asn_VAL_36_id_RICcontrolAckRequest = 21; -static const long asn_VAL_36_reject = 0; -static const long asn_VAL_36_optional = 0; -static const asn_ioc_cell_t asn_IOS_RICcontrolRequest_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_31_id_RICrequestID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_31_reject }, - { "&Value", aioc__type, &asn_DEF_RICrequestID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_31_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_32_id_RANfunctionID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_32_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_32_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_33_id_RICcallProcessID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_33_reject }, - { "&Value", aioc__type, &asn_DEF_RICcallProcessID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_33_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_34_id_RICcontrolHeader }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_34_reject }, - { "&Value", aioc__type, &asn_DEF_RICcontrolHeader }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_34_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_35_id_RICcontrolMessage }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_35_reject }, - { "&Value", aioc__type, &asn_DEF_RICcontrolMessage }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_35_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_36_id_RICcontrolAckRequest }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_36_reject }, - { "&Value", aioc__type, &asn_DEF_RICcontrolAckRequest }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_36_optional } -}; -static const asn_ioc_set_t asn_IOS_RICcontrolRequest_IEs_1[] = { - { 6, 4, asn_IOS_RICcontrolRequest_IEs_1_rows } -}; -static const long asn_VAL_37_id_RICrequestID = 29; -static const long asn_VAL_37_reject = 0; -static const long asn_VAL_37_mandatory = 2; -static const long asn_VAL_38_id_RANfunctionID = 5; -static const long asn_VAL_38_reject = 0; -static const long asn_VAL_38_mandatory = 2; -static const long asn_VAL_39_id_RICcallProcessID = 20; -static const long asn_VAL_39_reject = 0; -static const long asn_VAL_39_optional = 0; -static const long asn_VAL_40_id_RICcontrolStatus = 24; -static const long asn_VAL_40_reject = 0; -static const long asn_VAL_40_mandatory = 2; -static const long asn_VAL_41_id_RICcontrolOutcome = 32; -static const long asn_VAL_41_reject = 0; -static const long asn_VAL_41_optional = 0; -static const asn_ioc_cell_t asn_IOS_RICcontrolAcknowledge_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_37_id_RICrequestID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_37_reject }, - { "&Value", aioc__type, &asn_DEF_RICrequestID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_37_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_38_id_RANfunctionID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_38_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_38_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_39_id_RICcallProcessID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_39_reject }, - { "&Value", aioc__type, &asn_DEF_RICcallProcessID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_39_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_40_id_RICcontrolStatus }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_40_reject }, - { "&Value", aioc__type, &asn_DEF_RICcontrolStatus }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_40_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_41_id_RICcontrolOutcome }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_41_reject }, - { "&Value", aioc__type, &asn_DEF_RICcontrolOutcome }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_41_optional } -}; -static const asn_ioc_set_t asn_IOS_RICcontrolAcknowledge_IEs_1[] = { - { 5, 4, asn_IOS_RICcontrolAcknowledge_IEs_1_rows } -}; -static const long asn_VAL_42_id_RICrequestID = 29; -static const long asn_VAL_42_reject = 0; -static const long asn_VAL_42_mandatory = 2; -static const long asn_VAL_43_id_RANfunctionID = 5; -static const long asn_VAL_43_reject = 0; -static const long asn_VAL_43_mandatory = 2; -static const long asn_VAL_44_id_RICcallProcessID = 20; -static const long asn_VAL_44_reject = 0; -static const long asn_VAL_44_optional = 0; -static const long asn_VAL_45_id_Cause = 1; -static const long asn_VAL_45_ignore = 1; -static const long asn_VAL_45_mandatory = 2; -static const long asn_VAL_46_id_RICcontrolOutcome = 32; -static const long asn_VAL_46_reject = 0; -static const long asn_VAL_46_optional = 0; -static const asn_ioc_cell_t asn_IOS_RICcontrolFailure_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_42_id_RICrequestID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_42_reject }, - { "&Value", aioc__type, &asn_DEF_RICrequestID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_42_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_43_id_RANfunctionID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_43_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_43_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_44_id_RICcallProcessID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_44_reject }, - { "&Value", aioc__type, &asn_DEF_RICcallProcessID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_44_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_45_id_Cause }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_45_ignore }, - { "&Value", aioc__type, &asn_DEF_Cause }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_45_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_46_id_RICcontrolOutcome }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_46_reject }, - { "&Value", aioc__type, &asn_DEF_RICcontrolOutcome }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_46_optional } -}; -static const asn_ioc_set_t asn_IOS_RICcontrolFailure_IEs_1[] = { - { 5, 4, asn_IOS_RICcontrolFailure_IEs_1_rows } -}; -static const long asn_VAL_47_id_RICrequestID = 29; -static const long asn_VAL_47_reject = 0; -static const long asn_VAL_47_optional = 0; -static const long asn_VAL_48_id_RANfunctionID = 5; -static const long asn_VAL_48_reject = 0; -static const long asn_VAL_48_optional = 0; -static const long asn_VAL_49_id_Cause = 1; -static const long asn_VAL_49_ignore = 1; -static const long asn_VAL_49_optional = 0; -static const long asn_VAL_50_id_CriticalityDiagnostics = 2; -static const long asn_VAL_50_ignore = 1; -static const long asn_VAL_50_optional = 0; -static const asn_ioc_cell_t asn_IOS_ErrorIndication_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_47_id_RICrequestID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_47_reject }, - { "&Value", aioc__type, &asn_DEF_RICrequestID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_47_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_48_id_RANfunctionID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_48_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_48_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_49_id_Cause }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_49_ignore }, - { "&Value", aioc__type, &asn_DEF_Cause }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_49_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_50_id_CriticalityDiagnostics }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_50_ignore }, - { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_50_optional } -}; -static const asn_ioc_set_t asn_IOS_ErrorIndication_IEs_1[] = { - { 4, 4, asn_IOS_ErrorIndication_IEs_1_rows } -}; -static const long asn_VAL_51_id_GlobalE2node_ID = 3; -static const long asn_VAL_51_reject = 0; -static const long asn_VAL_51_mandatory = 2; -static const long asn_VAL_52_id_RANfunctionsAdded = 10; -static const long asn_VAL_52_reject = 0; -static const long asn_VAL_52_optional = 0; -static const asn_ioc_cell_t asn_IOS_E2setupRequestIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_51_id_GlobalE2node_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_51_reject }, - { "&Value", aioc__type, &asn_DEF_GlobalE2node_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_51_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_52_id_RANfunctionsAdded }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_52_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctions_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_52_optional } -}; -static const asn_ioc_set_t asn_IOS_E2setupRequestIEs_1[] = { - { 2, 4, asn_IOS_E2setupRequestIEs_1_rows } -}; -static const long asn_VAL_53_id_GlobalRIC_ID = 4; -static const long asn_VAL_53_reject = 0; -static const long asn_VAL_53_mandatory = 2; -static const long asn_VAL_54_id_RANfunctionsAccepted = 9; -static const long asn_VAL_54_reject = 0; -static const long asn_VAL_54_optional = 0; -static const long asn_VAL_55_id_RANfunctionsRejected = 13; -static const long asn_VAL_55_reject = 0; -static const long asn_VAL_55_optional = 0; -static const asn_ioc_cell_t asn_IOS_E2setupResponseIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_53_id_GlobalRIC_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_53_reject }, - { "&Value", aioc__type, &asn_DEF_GlobalRIC_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_53_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_54_id_RANfunctionsAccepted }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_54_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionsID_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_54_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_55_id_RANfunctionsRejected }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_55_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionsIDcause_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_55_optional } -}; -static const asn_ioc_set_t asn_IOS_E2setupResponseIEs_1[] = { - { 3, 4, asn_IOS_E2setupResponseIEs_1_rows } -}; -static const long asn_VAL_56_id_Cause = 1; -static const long asn_VAL_56_ignore = 1; -static const long asn_VAL_56_mandatory = 2; -static const long asn_VAL_57_id_TimeToWait = 31; -static const long asn_VAL_57_ignore = 1; -static const long asn_VAL_57_optional = 0; -static const long asn_VAL_58_id_CriticalityDiagnostics = 2; -static const long asn_VAL_58_ignore = 1; -static const long asn_VAL_58_optional = 0; -static const asn_ioc_cell_t asn_IOS_E2setupFailureIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_56_id_Cause }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_56_ignore }, - { "&Value", aioc__type, &asn_DEF_Cause }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_56_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_57_id_TimeToWait }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_57_ignore }, - { "&Value", aioc__type, &asn_DEF_TimeToWait }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_57_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_58_id_CriticalityDiagnostics }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_58_ignore }, - { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_58_optional } -}; -static const asn_ioc_set_t asn_IOS_E2setupFailureIEs_1[] = { - { 3, 4, asn_IOS_E2setupFailureIEs_1_rows } -}; -static const long asn_VAL_59_id_Cause = 1; -static const long asn_VAL_59_ignore = 1; -static const long asn_VAL_59_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_ResetRequestIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_59_id_Cause }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_59_ignore }, - { "&Value", aioc__type, &asn_DEF_Cause }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_59_mandatory } -}; -static const asn_ioc_set_t asn_IOS_ResetRequestIEs_1[] = { - { 1, 4, asn_IOS_ResetRequestIEs_1_rows } -}; -static const long asn_VAL_60_id_CriticalityDiagnostics = 2; -static const long asn_VAL_60_ignore = 1; -static const long asn_VAL_60_optional = 0; -static const asn_ioc_cell_t asn_IOS_ResetResponseIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_60_id_CriticalityDiagnostics }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_60_ignore }, - { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_60_optional } -}; -static const asn_ioc_set_t asn_IOS_ResetResponseIEs_1[] = { - { 1, 4, asn_IOS_ResetResponseIEs_1_rows } -}; -static const long asn_VAL_61_id_RANfunctionsAdded = 10; -static const long asn_VAL_61_reject = 0; -static const long asn_VAL_61_optional = 0; -static const long asn_VAL_62_id_RANfunctionsModified = 12; -static const long asn_VAL_62_reject = 0; -static const long asn_VAL_62_optional = 0; -static const long asn_VAL_63_id_RANfunctionsDeleted = 11; -static const long asn_VAL_63_reject = 0; -static const long asn_VAL_63_optional = 0; -static const asn_ioc_cell_t asn_IOS_RICserviceUpdate_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_61_id_RANfunctionsAdded }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_61_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctions_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_61_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_62_id_RANfunctionsModified }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_62_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctions_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_62_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_63_id_RANfunctionsDeleted }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_63_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionsID_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_63_optional } -}; -static const asn_ioc_set_t asn_IOS_RICserviceUpdate_IEs_1[] = { - { 3, 4, asn_IOS_RICserviceUpdate_IEs_1_rows } -}; -static const long asn_VAL_66_id_RANfunctionsAccepted = 9; -static const long asn_VAL_66_reject = 0; -static const long asn_VAL_66_optional = 0; -static const long asn_VAL_67_id_RANfunctionsRejected = 13; -static const long asn_VAL_67_reject = 0; -static const long asn_VAL_67_optional = 0; -static const asn_ioc_cell_t asn_IOS_RICserviceUpdateAcknowledge_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_66_id_RANfunctionsAccepted }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_66_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionsID_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_66_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_67_id_RANfunctionsRejected }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_67_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionsIDcause_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_67_optional } -}; -static const asn_ioc_set_t asn_IOS_RICserviceUpdateAcknowledge_IEs_1[] = { - { 2, 4, asn_IOS_RICserviceUpdateAcknowledge_IEs_1_rows } -}; -static const long asn_VAL_69_id_RANfunctionsRejected = 13; -static const long asn_VAL_69_ignore = 1; -static const long asn_VAL_69_optional = 0; -static const long asn_VAL_70_id_TimeToWait = 31; -static const long asn_VAL_70_ignore = 1; -static const long asn_VAL_70_optional = 0; -static const long asn_VAL_71_id_CriticalityDiagnostics = 2; -static const long asn_VAL_71_ignore = 1; -static const long asn_VAL_71_optional = 0; -static const asn_ioc_cell_t asn_IOS_RICserviceUpdateFailure_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_69_id_RANfunctionsRejected }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_69_ignore }, - { "&Value", aioc__type, &asn_DEF_RANfunctionsIDcause_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_69_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_70_id_TimeToWait }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_70_ignore }, - { "&Value", aioc__type, &asn_DEF_TimeToWait }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_70_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_71_id_CriticalityDiagnostics }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_71_ignore }, - { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_71_optional } -}; -static const asn_ioc_set_t asn_IOS_RICserviceUpdateFailure_IEs_1[] = { - { 3, 4, asn_IOS_RICserviceUpdateFailure_IEs_1_rows } -}; -static const long asn_VAL_72_id_RANfunctionsAccepted = 9; -static const long asn_VAL_72_reject = 0; -static const long asn_VAL_72_optional = 0; -static const asn_ioc_cell_t asn_IOS_RICserviceQuery_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_72_id_RANfunctionsAccepted }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_72_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionsID_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_72_optional } -}; -static const asn_ioc_set_t asn_IOS_RICserviceQuery_IEs_1[] = { - { 1, 4, asn_IOS_RICserviceQuery_IEs_1_rows } -}; -static int -memb_id_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_RICaction_ToBeSetup_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICaction_ToBeSetup_ItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICaction_ToBeSetup_ItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_RICaction_ToBeSetup_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICaction_ToBeSetup_ItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICaction_ToBeSetup_ItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_5(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_RICaction_Admitted_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICaction_Admitted_ItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICaction_Admitted_ItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_5(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_RICaction_Admitted_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICaction_Admitted_ItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICaction_Admitted_ItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_5(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_9(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_RICaction_NotAdmitted_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICaction_NotAdmitted_ItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICaction_NotAdmitted_ItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_9(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_RICaction_NotAdmitted_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICaction_NotAdmitted_ItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICaction_NotAdmitted_ItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_9(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_13(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_RANfunction_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RANfunction_ItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RANfunction_ItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_13(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_RANfunction_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RANfunction_ItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RANfunction_ItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_13(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_17(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_RANfunctionID_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RANfunctionID_ItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RANfunctionID_ItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_17(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_RANfunctionID_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RANfunctionID_ItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RANfunctionID_ItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_17(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_21(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_RANfunctionIDcause_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RANfunctionIDcause_ItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RANfunctionIDcause_ItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_21(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_RANfunctionIDcause_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RANfunctionIDcause_ItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RANfunctionIDcause_ItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_21(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_25(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_RICsubscriptionRequest_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionRequest_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionRequest_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_25(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_RICsubscriptionRequest_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionRequest_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionRequest_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_25(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_29(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_RICsubscriptionResponse_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionResponse_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionResponse_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_29(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_RICsubscriptionResponse_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionResponse_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionResponse_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_29(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_33(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_RICsubscriptionFailure_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionFailure_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionFailure_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_33(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_RICsubscriptionFailure_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionFailure_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionFailure_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_33(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_37(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_RICsubscriptionDeleteRequest_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionDeleteRequest_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionDeleteRequest_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_37(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_RICsubscriptionDeleteRequest_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionDeleteRequest_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionDeleteRequest_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_37(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_41(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_RICsubscriptionDeleteResponse_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionDeleteResponse_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionDeleteResponse_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_41(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_RICsubscriptionDeleteResponse_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionDeleteResponse_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionDeleteResponse_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_41(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_45(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_RICsubscriptionDeleteFailure_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionDeleteFailure_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionDeleteFailure_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_45(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_RICsubscriptionDeleteFailure_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionDeleteFailure_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionDeleteFailure_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_45(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_49(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_RICindication_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICindication_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICindication_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_49(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_RICindication_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICindication_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICindication_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_49(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_53(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_RICcontrolRequest_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICcontrolRequest_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICcontrolRequest_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_53(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_RICcontrolRequest_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICcontrolRequest_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICcontrolRequest_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_53(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_57(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_RICcontrolAcknowledge_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICcontrolAcknowledge_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICcontrolAcknowledge_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_57(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_RICcontrolAcknowledge_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICcontrolAcknowledge_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICcontrolAcknowledge_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_57(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_61(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_RICcontrolFailure_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICcontrolFailure_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICcontrolFailure_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_61(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_RICcontrolFailure_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICcontrolFailure_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICcontrolFailure_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_61(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_65(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_ErrorIndication_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_ErrorIndication_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ErrorIndication_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_65(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_ErrorIndication_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_ErrorIndication_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ErrorIndication_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_65(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_69(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_E2setupRequestIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E2setupRequestIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2setupRequestIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_69(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_E2setupRequestIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E2setupRequestIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2setupRequestIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_69(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_73(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_E2setupResponseIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E2setupResponseIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2setupResponseIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_73(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_E2setupResponseIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E2setupResponseIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2setupResponseIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_73(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_77(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_E2setupFailureIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E2setupFailureIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2setupFailureIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_77(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_E2setupFailureIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E2setupFailureIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2setupFailureIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_77(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_81(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_ResetRequestIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_ResetRequestIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ResetRequestIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_81(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_ResetRequestIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_ResetRequestIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ResetRequestIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_81(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_85(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_ResetResponseIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_ResetResponseIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ResetResponseIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_85(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_ResetResponseIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_ResetResponseIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ResetResponseIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_85(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_89(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_RICserviceUpdate_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICserviceUpdate_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICserviceUpdate_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_89(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_RICserviceUpdate_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICserviceUpdate_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICserviceUpdate_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_89(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_93(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_RICserviceUpdateAcknowledge_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICserviceUpdateAcknowledge_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICserviceUpdateAcknowledge_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_93(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_RICserviceUpdateAcknowledge_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICserviceUpdateAcknowledge_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICserviceUpdateAcknowledge_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_93(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_97(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_RICserviceUpdateFailure_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICserviceUpdateFailure_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICserviceUpdateFailure_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_97(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_RICserviceUpdateFailure_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICserviceUpdateFailure_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICserviceUpdateFailure_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_97(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_101(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_RICserviceQuery_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICserviceQuery_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICserviceQuery_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_101(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_RICserviceQuery_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICserviceQuery_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICserviceQuery_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_101(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_per_constraints_t asn_PER_memb_id_constr_2 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_3 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_4 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_6 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_7 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_8 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_10 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_11 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_12 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_14 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_15 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_16 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_18 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_19 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_20 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_22 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_23 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_24 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_26 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_27 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_28 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_30 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_31 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_32 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_34 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_35 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_36 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_38 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_39 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_40 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_42 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_43 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_44 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_46 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_47 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_48 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_50 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_51 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_52 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_54 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_55 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_56 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_58 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_59 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_60 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_62 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_63 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_64 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_66 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_67 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_68 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_70 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_71 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_72 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_74 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_75 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_76 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_78 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_79 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_80 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_82 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_83 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_84 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_86 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_87 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_88 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_90 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_91 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_92 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_94 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_95 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_96 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_98 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_99 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_100 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_102 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_103 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_104 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_value_4[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICaction_ToBeSetup_ItemIEs__value, choice.RICaction_ToBeSetup_Item), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICaction_ToBeSetup_Item, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICaction-ToBeSetup-Item" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_4[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RICaction-ToBeSetup-Item */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_4 = { - sizeof(struct RICaction_ToBeSetup_ItemIEs__value), - offsetof(struct RICaction_ToBeSetup_ItemIEs__value, _asn_ctx), - offsetof(struct RICaction_ToBeSetup_ItemIEs__value, present), - sizeof(((struct RICaction_ToBeSetup_ItemIEs__value *)0)->present), - asn_MAP_value_tag2el_4, - 1, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_4 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_4, - 1, /* Elements count */ - &asn_SPC_value_specs_4 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_RICaction_ToBeSetup_ItemIEs_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICaction_ToBeSetup_ItemIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_2, memb_id_constraint_1 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICaction_ToBeSetup_ItemIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_RICaction_ToBeSetup_ItemIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_3, memb_criticality_constraint_1 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICaction_ToBeSetup_ItemIEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_4, - select_RICaction_ToBeSetup_ItemIEs_value_type, - { 0, &asn_PER_memb_value_constr_4, memb_value_constraint_1 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICaction_ToBeSetup_ItemIEs_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICaction_ToBeSetup_ItemIEs_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICaction_ToBeSetup_ItemIEs_specs_1 = { - sizeof(struct RICaction_ToBeSetup_ItemIEs), - offsetof(struct RICaction_ToBeSetup_ItemIEs, _asn_ctx), - asn_MAP_RICaction_ToBeSetup_ItemIEs_tag2el_1, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICaction_ToBeSetup_ItemIEs = { - "RICaction-ToBeSetup-ItemIEs", - "RICaction-ToBeSetup-ItemIEs", - &asn_OP_SEQUENCE, - asn_DEF_RICaction_ToBeSetup_ItemIEs_tags_1, - sizeof(asn_DEF_RICaction_ToBeSetup_ItemIEs_tags_1) - /sizeof(asn_DEF_RICaction_ToBeSetup_ItemIEs_tags_1[0]), /* 1 */ - asn_DEF_RICaction_ToBeSetup_ItemIEs_tags_1, /* Same as above */ - sizeof(asn_DEF_RICaction_ToBeSetup_ItemIEs_tags_1) - /sizeof(asn_DEF_RICaction_ToBeSetup_ItemIEs_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICaction_ToBeSetup_ItemIEs_1, - 3, /* Elements count */ - &asn_SPC_RICaction_ToBeSetup_ItemIEs_specs_1 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_8[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICaction_Admitted_ItemIEs__value, choice.RICaction_Admitted_Item), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICaction_Admitted_Item, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICaction-Admitted-Item" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_8[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RICaction-Admitted-Item */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_8 = { - sizeof(struct RICaction_Admitted_ItemIEs__value), - offsetof(struct RICaction_Admitted_ItemIEs__value, _asn_ctx), - offsetof(struct RICaction_Admitted_ItemIEs__value, present), - sizeof(((struct RICaction_Admitted_ItemIEs__value *)0)->present), - asn_MAP_value_tag2el_8, - 1, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_8 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_8, - 1, /* Elements count */ - &asn_SPC_value_specs_8 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_RICaction_Admitted_ItemIEs_5[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICaction_Admitted_ItemIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_6, memb_id_constraint_5 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICaction_Admitted_ItemIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_RICaction_Admitted_ItemIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_7, memb_criticality_constraint_5 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICaction_Admitted_ItemIEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_8, - select_RICaction_Admitted_ItemIEs_value_type, - { 0, &asn_PER_memb_value_constr_8, memb_value_constraint_5 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICaction_Admitted_ItemIEs_tags_5[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICaction_Admitted_ItemIEs_tag2el_5[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICaction_Admitted_ItemIEs_specs_5 = { - sizeof(struct RICaction_Admitted_ItemIEs), - offsetof(struct RICaction_Admitted_ItemIEs, _asn_ctx), - asn_MAP_RICaction_Admitted_ItemIEs_tag2el_5, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICaction_Admitted_ItemIEs = { - "RICaction-Admitted-ItemIEs", - "RICaction-Admitted-ItemIEs", - &asn_OP_SEQUENCE, - asn_DEF_RICaction_Admitted_ItemIEs_tags_5, - sizeof(asn_DEF_RICaction_Admitted_ItemIEs_tags_5) - /sizeof(asn_DEF_RICaction_Admitted_ItemIEs_tags_5[0]), /* 1 */ - asn_DEF_RICaction_Admitted_ItemIEs_tags_5, /* Same as above */ - sizeof(asn_DEF_RICaction_Admitted_ItemIEs_tags_5) - /sizeof(asn_DEF_RICaction_Admitted_ItemIEs_tags_5[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICaction_Admitted_ItemIEs_5, - 3, /* Elements count */ - &asn_SPC_RICaction_Admitted_ItemIEs_specs_5 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_12[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICaction_NotAdmitted_ItemIEs__value, choice.RICaction_NotAdmitted_Item), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICaction_NotAdmitted_Item, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICaction-NotAdmitted-Item" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_12[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RICaction-NotAdmitted-Item */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_12 = { - sizeof(struct RICaction_NotAdmitted_ItemIEs__value), - offsetof(struct RICaction_NotAdmitted_ItemIEs__value, _asn_ctx), - offsetof(struct RICaction_NotAdmitted_ItemIEs__value, present), - sizeof(((struct RICaction_NotAdmitted_ItemIEs__value *)0)->present), - asn_MAP_value_tag2el_12, - 1, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_12 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_12, - 1, /* Elements count */ - &asn_SPC_value_specs_12 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_RICaction_NotAdmitted_ItemIEs_9[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICaction_NotAdmitted_ItemIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_10, memb_id_constraint_9 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICaction_NotAdmitted_ItemIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_RICaction_NotAdmitted_ItemIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_11, memb_criticality_constraint_9 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICaction_NotAdmitted_ItemIEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_12, - select_RICaction_NotAdmitted_ItemIEs_value_type, - { 0, &asn_PER_memb_value_constr_12, memb_value_constraint_9 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICaction_NotAdmitted_ItemIEs_tags_9[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICaction_NotAdmitted_ItemIEs_tag2el_9[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICaction_NotAdmitted_ItemIEs_specs_9 = { - sizeof(struct RICaction_NotAdmitted_ItemIEs), - offsetof(struct RICaction_NotAdmitted_ItemIEs, _asn_ctx), - asn_MAP_RICaction_NotAdmitted_ItemIEs_tag2el_9, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICaction_NotAdmitted_ItemIEs = { - "RICaction-NotAdmitted-ItemIEs", - "RICaction-NotAdmitted-ItemIEs", - &asn_OP_SEQUENCE, - asn_DEF_RICaction_NotAdmitted_ItemIEs_tags_9, - sizeof(asn_DEF_RICaction_NotAdmitted_ItemIEs_tags_9) - /sizeof(asn_DEF_RICaction_NotAdmitted_ItemIEs_tags_9[0]), /* 1 */ - asn_DEF_RICaction_NotAdmitted_ItemIEs_tags_9, /* Same as above */ - sizeof(asn_DEF_RICaction_NotAdmitted_ItemIEs_tags_9) - /sizeof(asn_DEF_RICaction_NotAdmitted_ItemIEs_tags_9[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICaction_NotAdmitted_ItemIEs_9, - 3, /* Elements count */ - &asn_SPC_RICaction_NotAdmitted_ItemIEs_specs_9 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_16[] = { - { ATF_NOFLAGS, 0, offsetof(struct RANfunction_ItemIEs__value, choice.RANfunction_Item), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RANfunction_Item, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RANfunction-Item" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_16[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RANfunction-Item */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_16 = { - sizeof(struct RANfunction_ItemIEs__value), - offsetof(struct RANfunction_ItemIEs__value, _asn_ctx), - offsetof(struct RANfunction_ItemIEs__value, present), - sizeof(((struct RANfunction_ItemIEs__value *)0)->present), - asn_MAP_value_tag2el_16, - 1, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_16 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_16, - 1, /* Elements count */ - &asn_SPC_value_specs_16 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_RANfunction_ItemIEs_13[] = { - { ATF_NOFLAGS, 0, offsetof(struct RANfunction_ItemIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_14, memb_id_constraint_13 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct RANfunction_ItemIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_RANfunction_ItemIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_15, memb_criticality_constraint_13 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RANfunction_ItemIEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_16, - select_RANfunction_ItemIEs_value_type, - { 0, &asn_PER_memb_value_constr_16, memb_value_constraint_13 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_RANfunction_ItemIEs_tags_13[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RANfunction_ItemIEs_tag2el_13[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RANfunction_ItemIEs_specs_13 = { - sizeof(struct RANfunction_ItemIEs), - offsetof(struct RANfunction_ItemIEs, _asn_ctx), - asn_MAP_RANfunction_ItemIEs_tag2el_13, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RANfunction_ItemIEs = { - "RANfunction-ItemIEs", - "RANfunction-ItemIEs", - &asn_OP_SEQUENCE, - asn_DEF_RANfunction_ItemIEs_tags_13, - sizeof(asn_DEF_RANfunction_ItemIEs_tags_13) - /sizeof(asn_DEF_RANfunction_ItemIEs_tags_13[0]), /* 1 */ - asn_DEF_RANfunction_ItemIEs_tags_13, /* Same as above */ - sizeof(asn_DEF_RANfunction_ItemIEs_tags_13) - /sizeof(asn_DEF_RANfunction_ItemIEs_tags_13[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RANfunction_ItemIEs_13, - 3, /* Elements count */ - &asn_SPC_RANfunction_ItemIEs_specs_13 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_20[] = { - { ATF_NOFLAGS, 0, offsetof(struct RANfunctionID_ItemIEs__value, choice.RANfunctionID_Item), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RANfunctionID_Item, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RANfunctionID-Item" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_20[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RANfunctionID-Item */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_20 = { - sizeof(struct RANfunctionID_ItemIEs__value), - offsetof(struct RANfunctionID_ItemIEs__value, _asn_ctx), - offsetof(struct RANfunctionID_ItemIEs__value, present), - sizeof(((struct RANfunctionID_ItemIEs__value *)0)->present), - asn_MAP_value_tag2el_20, - 1, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_20 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_20, - 1, /* Elements count */ - &asn_SPC_value_specs_20 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_RANfunctionID_ItemIEs_17[] = { - { ATF_NOFLAGS, 0, offsetof(struct RANfunctionID_ItemIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_18, memb_id_constraint_17 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct RANfunctionID_ItemIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_RANfunctionID_ItemIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_19, memb_criticality_constraint_17 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RANfunctionID_ItemIEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_20, - select_RANfunctionID_ItemIEs_value_type, - { 0, &asn_PER_memb_value_constr_20, memb_value_constraint_17 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_RANfunctionID_ItemIEs_tags_17[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RANfunctionID_ItemIEs_tag2el_17[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RANfunctionID_ItemIEs_specs_17 = { - sizeof(struct RANfunctionID_ItemIEs), - offsetof(struct RANfunctionID_ItemIEs, _asn_ctx), - asn_MAP_RANfunctionID_ItemIEs_tag2el_17, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RANfunctionID_ItemIEs = { - "RANfunctionID-ItemIEs", - "RANfunctionID-ItemIEs", - &asn_OP_SEQUENCE, - asn_DEF_RANfunctionID_ItemIEs_tags_17, - sizeof(asn_DEF_RANfunctionID_ItemIEs_tags_17) - /sizeof(asn_DEF_RANfunctionID_ItemIEs_tags_17[0]), /* 1 */ - asn_DEF_RANfunctionID_ItemIEs_tags_17, /* Same as above */ - sizeof(asn_DEF_RANfunctionID_ItemIEs_tags_17) - /sizeof(asn_DEF_RANfunctionID_ItemIEs_tags_17[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RANfunctionID_ItemIEs_17, - 3, /* Elements count */ - &asn_SPC_RANfunctionID_ItemIEs_specs_17 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_24[] = { - { ATF_NOFLAGS, 0, offsetof(struct RANfunctionIDcause_ItemIEs__value, choice.RANfunctionIDcause_Item), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RANfunctionIDcause_Item, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RANfunctionIDcause-Item" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_24[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RANfunctionIDcause-Item */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_24 = { - sizeof(struct RANfunctionIDcause_ItemIEs__value), - offsetof(struct RANfunctionIDcause_ItemIEs__value, _asn_ctx), - offsetof(struct RANfunctionIDcause_ItemIEs__value, present), - sizeof(((struct RANfunctionIDcause_ItemIEs__value *)0)->present), - asn_MAP_value_tag2el_24, - 1, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_24 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_24, - 1, /* Elements count */ - &asn_SPC_value_specs_24 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_RANfunctionIDcause_ItemIEs_21[] = { - { ATF_NOFLAGS, 0, offsetof(struct RANfunctionIDcause_ItemIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_22, memb_id_constraint_21 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct RANfunctionIDcause_ItemIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_RANfunctionIDcause_ItemIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_23, memb_criticality_constraint_21 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RANfunctionIDcause_ItemIEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_24, - select_RANfunctionIDcause_ItemIEs_value_type, - { 0, &asn_PER_memb_value_constr_24, memb_value_constraint_21 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_RANfunctionIDcause_ItemIEs_tags_21[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RANfunctionIDcause_ItemIEs_tag2el_21[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RANfunctionIDcause_ItemIEs_specs_21 = { - sizeof(struct RANfunctionIDcause_ItemIEs), - offsetof(struct RANfunctionIDcause_ItemIEs, _asn_ctx), - asn_MAP_RANfunctionIDcause_ItemIEs_tag2el_21, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RANfunctionIDcause_ItemIEs = { - "RANfunctionIDcause-ItemIEs", - "RANfunctionIDcause-ItemIEs", - &asn_OP_SEQUENCE, - asn_DEF_RANfunctionIDcause_ItemIEs_tags_21, - sizeof(asn_DEF_RANfunctionIDcause_ItemIEs_tags_21) - /sizeof(asn_DEF_RANfunctionIDcause_ItemIEs_tags_21[0]), /* 1 */ - asn_DEF_RANfunctionIDcause_ItemIEs_tags_21, /* Same as above */ - sizeof(asn_DEF_RANfunctionIDcause_ItemIEs_tags_21) - /sizeof(asn_DEF_RANfunctionIDcause_ItemIEs_tags_21[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RANfunctionIDcause_ItemIEs_21, - 3, /* Elements count */ - &asn_SPC_RANfunctionIDcause_ItemIEs_specs_21 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_28[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionRequest_IEs__value, choice.RICrequestID), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICrequestID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICrequestID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionRequest_IEs__value, choice.RANfunctionID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_RANfunctionID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RANfunctionID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionRequest_IEs__value, choice.RICsubscriptionDetails), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICsubscriptionDetails, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICsubscriptionDetails" - }, -}; -static const unsigned asn_MAP_value_to_canonical_28[] = { 1, 0, 2 }; -static const unsigned asn_MAP_value_from_canonical_28[] = { 1, 0, 2 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_28[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* RANfunctionID */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 1 }, /* RICrequestID */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -1, 0 } /* RICsubscriptionDetails */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_28 = { - sizeof(struct RICsubscriptionRequest_IEs__value), - offsetof(struct RICsubscriptionRequest_IEs__value, _asn_ctx), - offsetof(struct RICsubscriptionRequest_IEs__value, present), - sizeof(((struct RICsubscriptionRequest_IEs__value *)0)->present), - asn_MAP_value_tag2el_28, - 3, /* Count of tags in the map */ - asn_MAP_value_to_canonical_28, - asn_MAP_value_from_canonical_28, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_28 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_28, - 3, /* Elements count */ - &asn_SPC_value_specs_28 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_RICsubscriptionRequest_IEs_25[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionRequest_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_26, memb_id_constraint_25 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionRequest_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_RICsubscriptionRequest_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_27, memb_criticality_constraint_25 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionRequest_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_28, - select_RICsubscriptionRequest_IEs_value_type, - { 0, &asn_PER_memb_value_constr_28, memb_value_constraint_25 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICsubscriptionRequest_IEs_tags_25[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionRequest_IEs_tag2el_25[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionRequest_IEs_specs_25 = { - sizeof(struct RICsubscriptionRequest_IEs), - offsetof(struct RICsubscriptionRequest_IEs, _asn_ctx), - asn_MAP_RICsubscriptionRequest_IEs_tag2el_25, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICsubscriptionRequest_IEs = { - "RICsubscriptionRequest-IEs", - "RICsubscriptionRequest-IEs", - &asn_OP_SEQUENCE, - asn_DEF_RICsubscriptionRequest_IEs_tags_25, - sizeof(asn_DEF_RICsubscriptionRequest_IEs_tags_25) - /sizeof(asn_DEF_RICsubscriptionRequest_IEs_tags_25[0]), /* 1 */ - asn_DEF_RICsubscriptionRequest_IEs_tags_25, /* Same as above */ - sizeof(asn_DEF_RICsubscriptionRequest_IEs_tags_25) - /sizeof(asn_DEF_RICsubscriptionRequest_IEs_tags_25[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICsubscriptionRequest_IEs_25, - 3, /* Elements count */ - &asn_SPC_RICsubscriptionRequest_IEs_specs_25 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_32[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionResponse_IEs__value, choice.RICrequestID), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICrequestID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICrequestID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionResponse_IEs__value, choice.RANfunctionID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_RANfunctionID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RANfunctionID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionResponse_IEs__value, choice.RICaction_Admitted_List), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICaction_Admitted_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICaction-Admitted-List" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionResponse_IEs__value, choice.RICaction_NotAdmitted_List), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICaction_NotAdmitted_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICaction-NotAdmitted-List" - }, -}; -static const unsigned asn_MAP_value_to_canonical_32[] = { 1, 0, 2, 3 }; -static const unsigned asn_MAP_value_from_canonical_32[] = { 1, 0, 2, 3 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_32[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* RANfunctionID */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 2 }, /* RICrequestID */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -1, 1 }, /* RICaction-Admitted-List */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -2, 0 } /* RICaction-NotAdmitted-List */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_32 = { - sizeof(struct RICsubscriptionResponse_IEs__value), - offsetof(struct RICsubscriptionResponse_IEs__value, _asn_ctx), - offsetof(struct RICsubscriptionResponse_IEs__value, present), - sizeof(((struct RICsubscriptionResponse_IEs__value *)0)->present), - asn_MAP_value_tag2el_32, - 4, /* Count of tags in the map */ - asn_MAP_value_to_canonical_32, - asn_MAP_value_from_canonical_32, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_32 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_32, - 4, /* Elements count */ - &asn_SPC_value_specs_32 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_RICsubscriptionResponse_IEs_29[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionResponse_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_30, memb_id_constraint_29 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionResponse_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_RICsubscriptionResponse_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_31, memb_criticality_constraint_29 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionResponse_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_32, - select_RICsubscriptionResponse_IEs_value_type, - { 0, &asn_PER_memb_value_constr_32, memb_value_constraint_29 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICsubscriptionResponse_IEs_tags_29[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionResponse_IEs_tag2el_29[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionResponse_IEs_specs_29 = { - sizeof(struct RICsubscriptionResponse_IEs), - offsetof(struct RICsubscriptionResponse_IEs, _asn_ctx), - asn_MAP_RICsubscriptionResponse_IEs_tag2el_29, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICsubscriptionResponse_IEs = { - "RICsubscriptionResponse-IEs", - "RICsubscriptionResponse-IEs", - &asn_OP_SEQUENCE, - asn_DEF_RICsubscriptionResponse_IEs_tags_29, - sizeof(asn_DEF_RICsubscriptionResponse_IEs_tags_29) - /sizeof(asn_DEF_RICsubscriptionResponse_IEs_tags_29[0]), /* 1 */ - asn_DEF_RICsubscriptionResponse_IEs_tags_29, /* Same as above */ - sizeof(asn_DEF_RICsubscriptionResponse_IEs_tags_29) - /sizeof(asn_DEF_RICsubscriptionResponse_IEs_tags_29[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICsubscriptionResponse_IEs_29, - 3, /* Elements count */ - &asn_SPC_RICsubscriptionResponse_IEs_specs_29 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_36[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionFailure_IEs__value, choice.RICrequestID), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICrequestID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICrequestID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionFailure_IEs__value, choice.RANfunctionID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_RANfunctionID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RANfunctionID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionFailure_IEs__value, choice.RICaction_NotAdmitted_List), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICaction_NotAdmitted_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICaction-NotAdmitted-List" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionFailure_IEs__value, choice.CriticalityDiagnostics), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CriticalityDiagnostics, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "CriticalityDiagnostics" - }, -}; -static const unsigned asn_MAP_value_to_canonical_36[] = { 1, 0, 2, 3 }; -static const unsigned asn_MAP_value_from_canonical_36[] = { 1, 0, 2, 3 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_36[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* RANfunctionID */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 2 }, /* RICrequestID */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -1, 1 }, /* RICaction-NotAdmitted-List */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -2, 0 } /* CriticalityDiagnostics */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_36 = { - sizeof(struct RICsubscriptionFailure_IEs__value), - offsetof(struct RICsubscriptionFailure_IEs__value, _asn_ctx), - offsetof(struct RICsubscriptionFailure_IEs__value, present), - sizeof(((struct RICsubscriptionFailure_IEs__value *)0)->present), - asn_MAP_value_tag2el_36, - 4, /* Count of tags in the map */ - asn_MAP_value_to_canonical_36, - asn_MAP_value_from_canonical_36, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_36 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_36, - 4, /* Elements count */ - &asn_SPC_value_specs_36 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_RICsubscriptionFailure_IEs_33[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionFailure_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_34, memb_id_constraint_33 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionFailure_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_RICsubscriptionFailure_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_35, memb_criticality_constraint_33 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionFailure_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_36, - select_RICsubscriptionFailure_IEs_value_type, - { 0, &asn_PER_memb_value_constr_36, memb_value_constraint_33 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICsubscriptionFailure_IEs_tags_33[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionFailure_IEs_tag2el_33[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionFailure_IEs_specs_33 = { - sizeof(struct RICsubscriptionFailure_IEs), - offsetof(struct RICsubscriptionFailure_IEs, _asn_ctx), - asn_MAP_RICsubscriptionFailure_IEs_tag2el_33, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICsubscriptionFailure_IEs = { - "RICsubscriptionFailure-IEs", - "RICsubscriptionFailure-IEs", - &asn_OP_SEQUENCE, - asn_DEF_RICsubscriptionFailure_IEs_tags_33, - sizeof(asn_DEF_RICsubscriptionFailure_IEs_tags_33) - /sizeof(asn_DEF_RICsubscriptionFailure_IEs_tags_33[0]), /* 1 */ - asn_DEF_RICsubscriptionFailure_IEs_tags_33, /* Same as above */ - sizeof(asn_DEF_RICsubscriptionFailure_IEs_tags_33) - /sizeof(asn_DEF_RICsubscriptionFailure_IEs_tags_33[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICsubscriptionFailure_IEs_33, - 3, /* Elements count */ - &asn_SPC_RICsubscriptionFailure_IEs_specs_33 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_40[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteRequest_IEs__value, choice.RICrequestID), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICrequestID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICrequestID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteRequest_IEs__value, choice.RANfunctionID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_RANfunctionID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RANfunctionID" - }, -}; -static const unsigned asn_MAP_value_to_canonical_40[] = { 1, 0 }; -static const unsigned asn_MAP_value_from_canonical_40[] = { 1, 0 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_40[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* RANfunctionID */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RICrequestID */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_40 = { - sizeof(struct RICsubscriptionDeleteRequest_IEs__value), - offsetof(struct RICsubscriptionDeleteRequest_IEs__value, _asn_ctx), - offsetof(struct RICsubscriptionDeleteRequest_IEs__value, present), - sizeof(((struct RICsubscriptionDeleteRequest_IEs__value *)0)->present), - asn_MAP_value_tag2el_40, - 2, /* Count of tags in the map */ - asn_MAP_value_to_canonical_40, - asn_MAP_value_from_canonical_40, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_40 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_40, - 2, /* Elements count */ - &asn_SPC_value_specs_40 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteRequest_IEs_37[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteRequest_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_38, memb_id_constraint_37 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteRequest_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_RICsubscriptionDeleteRequest_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_39, memb_criticality_constraint_37 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteRequest_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_40, - select_RICsubscriptionDeleteRequest_IEs_value_type, - { 0, &asn_PER_memb_value_constr_40, memb_value_constraint_37 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICsubscriptionDeleteRequest_IEs_tags_37[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionDeleteRequest_IEs_tag2el_37[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteRequest_IEs_specs_37 = { - sizeof(struct RICsubscriptionDeleteRequest_IEs), - offsetof(struct RICsubscriptionDeleteRequest_IEs, _asn_ctx), - asn_MAP_RICsubscriptionDeleteRequest_IEs_tag2el_37, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDeleteRequest_IEs = { - "RICsubscriptionDeleteRequest-IEs", - "RICsubscriptionDeleteRequest-IEs", - &asn_OP_SEQUENCE, - asn_DEF_RICsubscriptionDeleteRequest_IEs_tags_37, - sizeof(asn_DEF_RICsubscriptionDeleteRequest_IEs_tags_37) - /sizeof(asn_DEF_RICsubscriptionDeleteRequest_IEs_tags_37[0]), /* 1 */ - asn_DEF_RICsubscriptionDeleteRequest_IEs_tags_37, /* Same as above */ - sizeof(asn_DEF_RICsubscriptionDeleteRequest_IEs_tags_37) - /sizeof(asn_DEF_RICsubscriptionDeleteRequest_IEs_tags_37[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICsubscriptionDeleteRequest_IEs_37, - 3, /* Elements count */ - &asn_SPC_RICsubscriptionDeleteRequest_IEs_specs_37 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_44[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteResponse_IEs__value, choice.RICrequestID), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICrequestID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICrequestID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteResponse_IEs__value, choice.RANfunctionID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_RANfunctionID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RANfunctionID" - }, -}; -static const unsigned asn_MAP_value_to_canonical_44[] = { 1, 0 }; -static const unsigned asn_MAP_value_from_canonical_44[] = { 1, 0 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_44[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* RANfunctionID */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RICrequestID */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_44 = { - sizeof(struct RICsubscriptionDeleteResponse_IEs__value), - offsetof(struct RICsubscriptionDeleteResponse_IEs__value, _asn_ctx), - offsetof(struct RICsubscriptionDeleteResponse_IEs__value, present), - sizeof(((struct RICsubscriptionDeleteResponse_IEs__value *)0)->present), - asn_MAP_value_tag2el_44, - 2, /* Count of tags in the map */ - asn_MAP_value_to_canonical_44, - asn_MAP_value_from_canonical_44, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_44 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_44, - 2, /* Elements count */ - &asn_SPC_value_specs_44 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteResponse_IEs_41[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteResponse_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_42, memb_id_constraint_41 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteResponse_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_RICsubscriptionDeleteResponse_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_43, memb_criticality_constraint_41 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteResponse_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_44, - select_RICsubscriptionDeleteResponse_IEs_value_type, - { 0, &asn_PER_memb_value_constr_44, memb_value_constraint_41 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICsubscriptionDeleteResponse_IEs_tags_41[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionDeleteResponse_IEs_tag2el_41[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteResponse_IEs_specs_41 = { - sizeof(struct RICsubscriptionDeleteResponse_IEs), - offsetof(struct RICsubscriptionDeleteResponse_IEs, _asn_ctx), - asn_MAP_RICsubscriptionDeleteResponse_IEs_tag2el_41, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDeleteResponse_IEs = { - "RICsubscriptionDeleteResponse-IEs", - "RICsubscriptionDeleteResponse-IEs", - &asn_OP_SEQUENCE, - asn_DEF_RICsubscriptionDeleteResponse_IEs_tags_41, - sizeof(asn_DEF_RICsubscriptionDeleteResponse_IEs_tags_41) - /sizeof(asn_DEF_RICsubscriptionDeleteResponse_IEs_tags_41[0]), /* 1 */ - asn_DEF_RICsubscriptionDeleteResponse_IEs_tags_41, /* Same as above */ - sizeof(asn_DEF_RICsubscriptionDeleteResponse_IEs_tags_41) - /sizeof(asn_DEF_RICsubscriptionDeleteResponse_IEs_tags_41[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICsubscriptionDeleteResponse_IEs_41, - 3, /* Elements count */ - &asn_SPC_RICsubscriptionDeleteResponse_IEs_specs_41 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_48[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteFailure_IEs__value, choice.RICrequestID), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICrequestID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICrequestID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteFailure_IEs__value, choice.RANfunctionID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_RANfunctionID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RANfunctionID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteFailure_IEs__value, choice.Cause), - -1 /* Ambiguous tag (CHOICE?) */, - 0, - &asn_DEF_Cause, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "Cause" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteFailure_IEs__value, choice.CriticalityDiagnostics), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CriticalityDiagnostics, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "CriticalityDiagnostics" - }, -}; -static const unsigned asn_MAP_value_to_canonical_48[] = { 1, 0, 3, 2 }; -static const unsigned asn_MAP_value_from_canonical_48[] = { 1, 0, 3, 2 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_48[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* RANfunctionID */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 1 }, /* RICrequestID */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -1, 0 }, /* CriticalityDiagnostics */ - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 2, 0, 0 }, /* ricRequest */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 2, 0, 0 }, /* ricService */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* transport */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 2, 0, 0 }, /* protocol */ - { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 2, 0, 0 } /* misc */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_48 = { - sizeof(struct RICsubscriptionDeleteFailure_IEs__value), - offsetof(struct RICsubscriptionDeleteFailure_IEs__value, _asn_ctx), - offsetof(struct RICsubscriptionDeleteFailure_IEs__value, present), - sizeof(((struct RICsubscriptionDeleteFailure_IEs__value *)0)->present), - asn_MAP_value_tag2el_48, - 8, /* Count of tags in the map */ - asn_MAP_value_to_canonical_48, - asn_MAP_value_from_canonical_48, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_48 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_48, - 4, /* Elements count */ - &asn_SPC_value_specs_48 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteFailure_IEs_45[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteFailure_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_46, memb_id_constraint_45 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteFailure_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_RICsubscriptionDeleteFailure_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_47, memb_criticality_constraint_45 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteFailure_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_48, - select_RICsubscriptionDeleteFailure_IEs_value_type, - { 0, &asn_PER_memb_value_constr_48, memb_value_constraint_45 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICsubscriptionDeleteFailure_IEs_tags_45[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionDeleteFailure_IEs_tag2el_45[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteFailure_IEs_specs_45 = { - sizeof(struct RICsubscriptionDeleteFailure_IEs), - offsetof(struct RICsubscriptionDeleteFailure_IEs, _asn_ctx), - asn_MAP_RICsubscriptionDeleteFailure_IEs_tag2el_45, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDeleteFailure_IEs = { - "RICsubscriptionDeleteFailure-IEs", - "RICsubscriptionDeleteFailure-IEs", - &asn_OP_SEQUENCE, - asn_DEF_RICsubscriptionDeleteFailure_IEs_tags_45, - sizeof(asn_DEF_RICsubscriptionDeleteFailure_IEs_tags_45) - /sizeof(asn_DEF_RICsubscriptionDeleteFailure_IEs_tags_45[0]), /* 1 */ - asn_DEF_RICsubscriptionDeleteFailure_IEs_tags_45, /* Same as above */ - sizeof(asn_DEF_RICsubscriptionDeleteFailure_IEs_tags_45) - /sizeof(asn_DEF_RICsubscriptionDeleteFailure_IEs_tags_45[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICsubscriptionDeleteFailure_IEs_45, - 3, /* Elements count */ - &asn_SPC_RICsubscriptionDeleteFailure_IEs_specs_45 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_52[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICindication_IEs__value, choice.RICrequestID), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICrequestID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICrequestID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICindication_IEs__value, choice.RANfunctionID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_RANfunctionID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RANfunctionID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICindication_IEs__value, choice.RICactionID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_RICactionID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICactionID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICindication_IEs__value, choice.RICindicationSN), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_RICindicationSN, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICindicationSN" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICindication_IEs__value, choice.RICindicationType), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_RICindicationType, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICindicationType" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICindication_IEs__value, choice.RICindicationHeader), - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), - 0, - &asn_DEF_RICindicationHeader, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICindicationHeader" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICindication_IEs__value, choice.RICindicationMessage), - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), - 0, - &asn_DEF_RICindicationMessage, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICindicationMessage" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICindication_IEs__value, choice.RICcallProcessID), - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), - 0, - &asn_DEF_RICcallProcessID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICcallProcessID" - }, -}; -static const unsigned asn_MAP_value_to_canonical_52[] = { 1, 2, 3, 5, 6, 7, 4, 0 }; -static const unsigned asn_MAP_value_from_canonical_52[] = { 7, 0, 1, 2, 6, 3, 4, 5 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_52[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 2 }, /* RANfunctionID */ - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 2, -1, 1 }, /* RICactionID */ - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 3, -2, 0 }, /* RICindicationSN */ - { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 5, 0, 2 }, /* RICindicationHeader */ - { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 6, -1, 1 }, /* RICindicationMessage */ - { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 7, -2, 0 }, /* RICcallProcessID */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 4, 0, 0 }, /* RICindicationType */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RICrequestID */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_52 = { - sizeof(struct RICindication_IEs__value), - offsetof(struct RICindication_IEs__value, _asn_ctx), - offsetof(struct RICindication_IEs__value, present), - sizeof(((struct RICindication_IEs__value *)0)->present), - asn_MAP_value_tag2el_52, - 8, /* Count of tags in the map */ - asn_MAP_value_to_canonical_52, - asn_MAP_value_from_canonical_52, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_52 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_52, - 8, /* Elements count */ - &asn_SPC_value_specs_52 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_RICindication_IEs_49[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICindication_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_50, memb_id_constraint_49 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICindication_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_RICindication_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_51, memb_criticality_constraint_49 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICindication_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_52, - select_RICindication_IEs_value_type, - { 0, &asn_PER_memb_value_constr_52, memb_value_constraint_49 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICindication_IEs_tags_49[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICindication_IEs_tag2el_49[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICindication_IEs_specs_49 = { - sizeof(struct RICindication_IEs), - offsetof(struct RICindication_IEs, _asn_ctx), - asn_MAP_RICindication_IEs_tag2el_49, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICindication_IEs = { - "RICindication-IEs", - "RICindication-IEs", - &asn_OP_SEQUENCE, - asn_DEF_RICindication_IEs_tags_49, - sizeof(asn_DEF_RICindication_IEs_tags_49) - /sizeof(asn_DEF_RICindication_IEs_tags_49[0]), /* 1 */ - asn_DEF_RICindication_IEs_tags_49, /* Same as above */ - sizeof(asn_DEF_RICindication_IEs_tags_49) - /sizeof(asn_DEF_RICindication_IEs_tags_49[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICindication_IEs_49, - 3, /* Elements count */ - &asn_SPC_RICindication_IEs_specs_49 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_56[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolRequest_IEs__value, choice.RICrequestID), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICrequestID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICrequestID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolRequest_IEs__value, choice.RANfunctionID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_RANfunctionID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RANfunctionID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolRequest_IEs__value, choice.RICcallProcessID), - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), - 0, - &asn_DEF_RICcallProcessID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICcallProcessID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolRequest_IEs__value, choice.RICcontrolHeader), - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), - 0, - &asn_DEF_RICcontrolHeader, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICcontrolHeader" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolRequest_IEs__value, choice.RICcontrolMessage), - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), - 0, - &asn_DEF_RICcontrolMessage, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICcontrolMessage" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolRequest_IEs__value, choice.RICcontrolAckRequest), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_RICcontrolAckRequest, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICcontrolAckRequest" - }, -}; -static const unsigned asn_MAP_value_to_canonical_56[] = { 1, 2, 3, 4, 5, 0 }; -static const unsigned asn_MAP_value_from_canonical_56[] = { 5, 0, 1, 2, 3, 4 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_56[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* RANfunctionID */ - { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 2, 0, 2 }, /* RICcallProcessID */ - { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 3, -1, 1 }, /* RICcontrolHeader */ - { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 4, -2, 0 }, /* RICcontrolMessage */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 5, 0, 0 }, /* RICcontrolAckRequest */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RICrequestID */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_56 = { - sizeof(struct RICcontrolRequest_IEs__value), - offsetof(struct RICcontrolRequest_IEs__value, _asn_ctx), - offsetof(struct RICcontrolRequest_IEs__value, present), - sizeof(((struct RICcontrolRequest_IEs__value *)0)->present), - asn_MAP_value_tag2el_56, - 6, /* Count of tags in the map */ - asn_MAP_value_to_canonical_56, - asn_MAP_value_from_canonical_56, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_56 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_56, - 6, /* Elements count */ - &asn_SPC_value_specs_56 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_RICcontrolRequest_IEs_53[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolRequest_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_54, memb_id_constraint_53 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolRequest_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_RICcontrolRequest_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_55, memb_criticality_constraint_53 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICcontrolRequest_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_56, - select_RICcontrolRequest_IEs_value_type, - { 0, &asn_PER_memb_value_constr_56, memb_value_constraint_53 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICcontrolRequest_IEs_tags_53[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICcontrolRequest_IEs_tag2el_53[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICcontrolRequest_IEs_specs_53 = { - sizeof(struct RICcontrolRequest_IEs), - offsetof(struct RICcontrolRequest_IEs, _asn_ctx), - asn_MAP_RICcontrolRequest_IEs_tag2el_53, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICcontrolRequest_IEs = { - "RICcontrolRequest-IEs", - "RICcontrolRequest-IEs", - &asn_OP_SEQUENCE, - asn_DEF_RICcontrolRequest_IEs_tags_53, - sizeof(asn_DEF_RICcontrolRequest_IEs_tags_53) - /sizeof(asn_DEF_RICcontrolRequest_IEs_tags_53[0]), /* 1 */ - asn_DEF_RICcontrolRequest_IEs_tags_53, /* Same as above */ - sizeof(asn_DEF_RICcontrolRequest_IEs_tags_53) - /sizeof(asn_DEF_RICcontrolRequest_IEs_tags_53[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICcontrolRequest_IEs_53, - 3, /* Elements count */ - &asn_SPC_RICcontrolRequest_IEs_specs_53 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_60[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolAcknowledge_IEs__value, choice.RICrequestID), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICrequestID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICrequestID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolAcknowledge_IEs__value, choice.RANfunctionID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_RANfunctionID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RANfunctionID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolAcknowledge_IEs__value, choice.RICcallProcessID), - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), - 0, - &asn_DEF_RICcallProcessID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICcallProcessID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolAcknowledge_IEs__value, choice.RICcontrolStatus), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_RICcontrolStatus, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICcontrolStatus" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolAcknowledge_IEs__value, choice.RICcontrolOutcome), - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), - 0, - &asn_DEF_RICcontrolOutcome, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICcontrolOutcome" - }, -}; -static const unsigned asn_MAP_value_to_canonical_60[] = { 1, 2, 4, 3, 0 }; -static const unsigned asn_MAP_value_from_canonical_60[] = { 4, 0, 1, 3, 2 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_60[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* RANfunctionID */ - { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 2, 0, 1 }, /* RICcallProcessID */ - { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 4, -1, 0 }, /* RICcontrolOutcome */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 3, 0, 0 }, /* RICcontrolStatus */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RICrequestID */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_60 = { - sizeof(struct RICcontrolAcknowledge_IEs__value), - offsetof(struct RICcontrolAcknowledge_IEs__value, _asn_ctx), - offsetof(struct RICcontrolAcknowledge_IEs__value, present), - sizeof(((struct RICcontrolAcknowledge_IEs__value *)0)->present), - asn_MAP_value_tag2el_60, - 5, /* Count of tags in the map */ - asn_MAP_value_to_canonical_60, - asn_MAP_value_from_canonical_60, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_60 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_60, - 5, /* Elements count */ - &asn_SPC_value_specs_60 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_RICcontrolAcknowledge_IEs_57[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolAcknowledge_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_58, memb_id_constraint_57 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolAcknowledge_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_RICcontrolAcknowledge_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_59, memb_criticality_constraint_57 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICcontrolAcknowledge_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_60, - select_RICcontrolAcknowledge_IEs_value_type, - { 0, &asn_PER_memb_value_constr_60, memb_value_constraint_57 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICcontrolAcknowledge_IEs_tags_57[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICcontrolAcknowledge_IEs_tag2el_57[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICcontrolAcknowledge_IEs_specs_57 = { - sizeof(struct RICcontrolAcknowledge_IEs), - offsetof(struct RICcontrolAcknowledge_IEs, _asn_ctx), - asn_MAP_RICcontrolAcknowledge_IEs_tag2el_57, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICcontrolAcknowledge_IEs = { - "RICcontrolAcknowledge-IEs", - "RICcontrolAcknowledge-IEs", - &asn_OP_SEQUENCE, - asn_DEF_RICcontrolAcknowledge_IEs_tags_57, - sizeof(asn_DEF_RICcontrolAcknowledge_IEs_tags_57) - /sizeof(asn_DEF_RICcontrolAcknowledge_IEs_tags_57[0]), /* 1 */ - asn_DEF_RICcontrolAcknowledge_IEs_tags_57, /* Same as above */ - sizeof(asn_DEF_RICcontrolAcknowledge_IEs_tags_57) - /sizeof(asn_DEF_RICcontrolAcknowledge_IEs_tags_57[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICcontrolAcknowledge_IEs_57, - 3, /* Elements count */ - &asn_SPC_RICcontrolAcknowledge_IEs_specs_57 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_64[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolFailure_IEs__value, choice.RICrequestID), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICrequestID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICrequestID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolFailure_IEs__value, choice.RANfunctionID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_RANfunctionID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RANfunctionID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolFailure_IEs__value, choice.RICcallProcessID), - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), - 0, - &asn_DEF_RICcallProcessID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICcallProcessID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolFailure_IEs__value, choice.Cause), - -1 /* Ambiguous tag (CHOICE?) */, - 0, - &asn_DEF_Cause, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "Cause" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolFailure_IEs__value, choice.RICcontrolOutcome), - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), - 0, - &asn_DEF_RICcontrolOutcome, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICcontrolOutcome" - }, -}; -static const unsigned asn_MAP_value_to_canonical_64[] = { 1, 2, 4, 0, 3 }; -static const unsigned asn_MAP_value_from_canonical_64[] = { 3, 0, 1, 4, 2 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_64[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* RANfunctionID */ - { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 2, 0, 1 }, /* RICcallProcessID */ - { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 4, -1, 0 }, /* RICcontrolOutcome */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 }, /* RICrequestID */ - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 3, 0, 0 }, /* ricRequest */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 3, 0, 0 }, /* ricService */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 3, 0, 0 }, /* transport */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* protocol */ - { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 3, 0, 0 } /* misc */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_64 = { - sizeof(struct RICcontrolFailure_IEs__value), - offsetof(struct RICcontrolFailure_IEs__value, _asn_ctx), - offsetof(struct RICcontrolFailure_IEs__value, present), - sizeof(((struct RICcontrolFailure_IEs__value *)0)->present), - asn_MAP_value_tag2el_64, - 9, /* Count of tags in the map */ - asn_MAP_value_to_canonical_64, - asn_MAP_value_from_canonical_64, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_64 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_64, - 5, /* Elements count */ - &asn_SPC_value_specs_64 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_RICcontrolFailure_IEs_61[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolFailure_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_62, memb_id_constraint_61 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolFailure_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_RICcontrolFailure_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_63, memb_criticality_constraint_61 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICcontrolFailure_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_64, - select_RICcontrolFailure_IEs_value_type, - { 0, &asn_PER_memb_value_constr_64, memb_value_constraint_61 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICcontrolFailure_IEs_tags_61[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICcontrolFailure_IEs_tag2el_61[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICcontrolFailure_IEs_specs_61 = { - sizeof(struct RICcontrolFailure_IEs), - offsetof(struct RICcontrolFailure_IEs, _asn_ctx), - asn_MAP_RICcontrolFailure_IEs_tag2el_61, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICcontrolFailure_IEs = { - "RICcontrolFailure-IEs", - "RICcontrolFailure-IEs", - &asn_OP_SEQUENCE, - asn_DEF_RICcontrolFailure_IEs_tags_61, - sizeof(asn_DEF_RICcontrolFailure_IEs_tags_61) - /sizeof(asn_DEF_RICcontrolFailure_IEs_tags_61[0]), /* 1 */ - asn_DEF_RICcontrolFailure_IEs_tags_61, /* Same as above */ - sizeof(asn_DEF_RICcontrolFailure_IEs_tags_61) - /sizeof(asn_DEF_RICcontrolFailure_IEs_tags_61[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICcontrolFailure_IEs_61, - 3, /* Elements count */ - &asn_SPC_RICcontrolFailure_IEs_specs_61 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_68[] = { - { ATF_NOFLAGS, 0, offsetof(struct ErrorIndication_IEs__value, choice.RICrequestID), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICrequestID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICrequestID" - }, - { ATF_NOFLAGS, 0, offsetof(struct ErrorIndication_IEs__value, choice.RANfunctionID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_RANfunctionID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RANfunctionID" - }, - { ATF_NOFLAGS, 0, offsetof(struct ErrorIndication_IEs__value, choice.Cause), - -1 /* Ambiguous tag (CHOICE?) */, - 0, - &asn_DEF_Cause, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "Cause" - }, - { ATF_NOFLAGS, 0, offsetof(struct ErrorIndication_IEs__value, choice.CriticalityDiagnostics), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CriticalityDiagnostics, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "CriticalityDiagnostics" - }, -}; -static const unsigned asn_MAP_value_to_canonical_68[] = { 1, 0, 3, 2 }; -static const unsigned asn_MAP_value_from_canonical_68[] = { 1, 0, 3, 2 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_68[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* RANfunctionID */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 1 }, /* RICrequestID */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -1, 0 }, /* CriticalityDiagnostics */ - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 2, 0, 0 }, /* ricRequest */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 2, 0, 0 }, /* ricService */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* transport */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 2, 0, 0 }, /* protocol */ - { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 2, 0, 0 } /* misc */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_68 = { - sizeof(struct ErrorIndication_IEs__value), - offsetof(struct ErrorIndication_IEs__value, _asn_ctx), - offsetof(struct ErrorIndication_IEs__value, present), - sizeof(((struct ErrorIndication_IEs__value *)0)->present), - asn_MAP_value_tag2el_68, - 8, /* Count of tags in the map */ - asn_MAP_value_to_canonical_68, - asn_MAP_value_from_canonical_68, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_68 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_68, - 4, /* Elements count */ - &asn_SPC_value_specs_68 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ErrorIndication_IEs_65[] = { - { ATF_NOFLAGS, 0, offsetof(struct ErrorIndication_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_66, memb_id_constraint_65 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct ErrorIndication_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_ErrorIndication_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_67, memb_criticality_constraint_65 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ErrorIndication_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_68, - select_ErrorIndication_IEs_value_type, - { 0, &asn_PER_memb_value_constr_68, memb_value_constraint_65 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_ErrorIndication_IEs_tags_65[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ErrorIndication_IEs_tag2el_65[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ErrorIndication_IEs_specs_65 = { - sizeof(struct ErrorIndication_IEs), - offsetof(struct ErrorIndication_IEs, _asn_ctx), - asn_MAP_ErrorIndication_IEs_tag2el_65, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ErrorIndication_IEs = { - "ErrorIndication-IEs", - "ErrorIndication-IEs", - &asn_OP_SEQUENCE, - asn_DEF_ErrorIndication_IEs_tags_65, - sizeof(asn_DEF_ErrorIndication_IEs_tags_65) - /sizeof(asn_DEF_ErrorIndication_IEs_tags_65[0]), /* 1 */ - asn_DEF_ErrorIndication_IEs_tags_65, /* Same as above */ - sizeof(asn_DEF_ErrorIndication_IEs_tags_65) - /sizeof(asn_DEF_ErrorIndication_IEs_tags_65[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ErrorIndication_IEs_65, - 3, /* Elements count */ - &asn_SPC_ErrorIndication_IEs_specs_65 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_72[] = { - { ATF_NOFLAGS, 0, offsetof(struct E2setupRequestIEs__value, choice.GlobalE2node_ID), - -1 /* Ambiguous tag (CHOICE?) */, - 0, - &asn_DEF_GlobalE2node_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "GlobalE2node-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct E2setupRequestIEs__value, choice.RANfunctions_List), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RANfunctions_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RANfunctions-List" - }, -}; -static const unsigned asn_MAP_value_to_canonical_72[] = { 1, 0 }; -static const unsigned asn_MAP_value_from_canonical_72[] = { 1, 0 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_72[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 0 }, /* RANfunctions-List */ - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* gNB */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 0, 0, 0 }, /* en-gNB */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 0, 0, 0 }, /* ng-eNB */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 0, 0, 0 } /* eNB */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_72 = { - sizeof(struct E2setupRequestIEs__value), - offsetof(struct E2setupRequestIEs__value, _asn_ctx), - offsetof(struct E2setupRequestIEs__value, present), - sizeof(((struct E2setupRequestIEs__value *)0)->present), - asn_MAP_value_tag2el_72, - 5, /* Count of tags in the map */ - asn_MAP_value_to_canonical_72, - asn_MAP_value_from_canonical_72, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_72 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_72, - 2, /* Elements count */ - &asn_SPC_value_specs_72 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E2setupRequestIEs_69[] = { - { ATF_NOFLAGS, 0, offsetof(struct E2setupRequestIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_70, memb_id_constraint_69 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E2setupRequestIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_E2setupRequestIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_71, memb_criticality_constraint_69 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E2setupRequestIEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_72, - select_E2setupRequestIEs_value_type, - { 0, &asn_PER_memb_value_constr_72, memb_value_constraint_69 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_E2setupRequestIEs_tags_69[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E2setupRequestIEs_tag2el_69[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E2setupRequestIEs_specs_69 = { - sizeof(struct E2setupRequestIEs), - offsetof(struct E2setupRequestIEs, _asn_ctx), - asn_MAP_E2setupRequestIEs_tag2el_69, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E2setupRequestIEs = { - "E2setupRequestIEs", - "E2setupRequestIEs", - &asn_OP_SEQUENCE, - asn_DEF_E2setupRequestIEs_tags_69, - sizeof(asn_DEF_E2setupRequestIEs_tags_69) - /sizeof(asn_DEF_E2setupRequestIEs_tags_69[0]), /* 1 */ - asn_DEF_E2setupRequestIEs_tags_69, /* Same as above */ - sizeof(asn_DEF_E2setupRequestIEs_tags_69) - /sizeof(asn_DEF_E2setupRequestIEs_tags_69[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E2setupRequestIEs_69, - 3, /* Elements count */ - &asn_SPC_E2setupRequestIEs_specs_69 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_76[] = { - { ATF_NOFLAGS, 0, offsetof(struct E2setupResponseIEs__value, choice.GlobalRIC_ID), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_GlobalRIC_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "GlobalRIC-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct E2setupResponseIEs__value, choice.RANfunctionsID_List), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RANfunctionsID_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RANfunctionsID-List" - }, - { ATF_NOFLAGS, 0, offsetof(struct E2setupResponseIEs__value, choice.RANfunctionsIDcause_List), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RANfunctionsIDcause_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RANfunctionsIDcause-List" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_76[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 2 }, /* GlobalRIC-ID */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 1 }, /* RANfunctionsID-List */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -2, 0 } /* RANfunctionsIDcause-List */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_76 = { - sizeof(struct E2setupResponseIEs__value), - offsetof(struct E2setupResponseIEs__value, _asn_ctx), - offsetof(struct E2setupResponseIEs__value, present), - sizeof(((struct E2setupResponseIEs__value *)0)->present), - asn_MAP_value_tag2el_76, - 3, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_76 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_76, - 3, /* Elements count */ - &asn_SPC_value_specs_76 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E2setupResponseIEs_73[] = { - { ATF_NOFLAGS, 0, offsetof(struct E2setupResponseIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_74, memb_id_constraint_73 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E2setupResponseIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_E2setupResponseIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_75, memb_criticality_constraint_73 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E2setupResponseIEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_76, - select_E2setupResponseIEs_value_type, - { 0, &asn_PER_memb_value_constr_76, memb_value_constraint_73 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_E2setupResponseIEs_tags_73[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E2setupResponseIEs_tag2el_73[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E2setupResponseIEs_specs_73 = { - sizeof(struct E2setupResponseIEs), - offsetof(struct E2setupResponseIEs, _asn_ctx), - asn_MAP_E2setupResponseIEs_tag2el_73, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E2setupResponseIEs = { - "E2setupResponseIEs", - "E2setupResponseIEs", - &asn_OP_SEQUENCE, - asn_DEF_E2setupResponseIEs_tags_73, - sizeof(asn_DEF_E2setupResponseIEs_tags_73) - /sizeof(asn_DEF_E2setupResponseIEs_tags_73[0]), /* 1 */ - asn_DEF_E2setupResponseIEs_tags_73, /* Same as above */ - sizeof(asn_DEF_E2setupResponseIEs_tags_73) - /sizeof(asn_DEF_E2setupResponseIEs_tags_73[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E2setupResponseIEs_73, - 3, /* Elements count */ - &asn_SPC_E2setupResponseIEs_specs_73 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_80[] = { - { ATF_NOFLAGS, 0, offsetof(struct E2setupFailureIEs__value, choice.Cause), - -1 /* Ambiguous tag (CHOICE?) */, - 0, - &asn_DEF_Cause, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "Cause" - }, - { ATF_NOFLAGS, 0, offsetof(struct E2setupFailureIEs__value, choice.TimeToWait), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_TimeToWait, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "TimeToWait" - }, - { ATF_NOFLAGS, 0, offsetof(struct E2setupFailureIEs__value, choice.CriticalityDiagnostics), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CriticalityDiagnostics, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "CriticalityDiagnostics" - }, -}; -static const unsigned asn_MAP_value_to_canonical_80[] = { 1, 2, 0 }; -static const unsigned asn_MAP_value_from_canonical_80[] = { 2, 0, 1 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_80[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 }, /* TimeToWait */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, 0, 0 }, /* CriticalityDiagnostics */ - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ricRequest */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 0, 0, 0 }, /* ricService */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 0, 0, 0 }, /* transport */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 0, 0, 0 }, /* protocol */ - { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 0, 0, 0 } /* misc */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_80 = { - sizeof(struct E2setupFailureIEs__value), - offsetof(struct E2setupFailureIEs__value, _asn_ctx), - offsetof(struct E2setupFailureIEs__value, present), - sizeof(((struct E2setupFailureIEs__value *)0)->present), - asn_MAP_value_tag2el_80, - 7, /* Count of tags in the map */ - asn_MAP_value_to_canonical_80, - asn_MAP_value_from_canonical_80, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_80 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_80, - 3, /* Elements count */ - &asn_SPC_value_specs_80 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E2setupFailureIEs_77[] = { - { ATF_NOFLAGS, 0, offsetof(struct E2setupFailureIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_78, memb_id_constraint_77 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E2setupFailureIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_E2setupFailureIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_79, memb_criticality_constraint_77 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E2setupFailureIEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_80, - select_E2setupFailureIEs_value_type, - { 0, &asn_PER_memb_value_constr_80, memb_value_constraint_77 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_E2setupFailureIEs_tags_77[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E2setupFailureIEs_tag2el_77[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E2setupFailureIEs_specs_77 = { - sizeof(struct E2setupFailureIEs), - offsetof(struct E2setupFailureIEs, _asn_ctx), - asn_MAP_E2setupFailureIEs_tag2el_77, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E2setupFailureIEs = { - "E2setupFailureIEs", - "E2setupFailureIEs", - &asn_OP_SEQUENCE, - asn_DEF_E2setupFailureIEs_tags_77, - sizeof(asn_DEF_E2setupFailureIEs_tags_77) - /sizeof(asn_DEF_E2setupFailureIEs_tags_77[0]), /* 1 */ - asn_DEF_E2setupFailureIEs_tags_77, /* Same as above */ - sizeof(asn_DEF_E2setupFailureIEs_tags_77) - /sizeof(asn_DEF_E2setupFailureIEs_tags_77[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E2setupFailureIEs_77, - 3, /* Elements count */ - &asn_SPC_E2setupFailureIEs_specs_77 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_84[] = { - { ATF_NOFLAGS, 0, offsetof(struct ResetRequestIEs__value, choice.Cause), - -1 /* Ambiguous tag (CHOICE?) */, - 0, - &asn_DEF_Cause, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "Cause" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_84[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ricRequest */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 0, 0, 0 }, /* ricService */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 0, 0, 0 }, /* transport */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 0, 0, 0 }, /* protocol */ - { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 0, 0, 0 } /* misc */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_84 = { - sizeof(struct ResetRequestIEs__value), - offsetof(struct ResetRequestIEs__value, _asn_ctx), - offsetof(struct ResetRequestIEs__value, present), - sizeof(((struct ResetRequestIEs__value *)0)->present), - asn_MAP_value_tag2el_84, - 5, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_84 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_84, - 1, /* Elements count */ - &asn_SPC_value_specs_84 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ResetRequestIEs_81[] = { - { ATF_NOFLAGS, 0, offsetof(struct ResetRequestIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_82, memb_id_constraint_81 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct ResetRequestIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_ResetRequestIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_83, memb_criticality_constraint_81 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ResetRequestIEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_84, - select_ResetRequestIEs_value_type, - { 0, &asn_PER_memb_value_constr_84, memb_value_constraint_81 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_ResetRequestIEs_tags_81[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ResetRequestIEs_tag2el_81[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ResetRequestIEs_specs_81 = { - sizeof(struct ResetRequestIEs), - offsetof(struct ResetRequestIEs, _asn_ctx), - asn_MAP_ResetRequestIEs_tag2el_81, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ResetRequestIEs = { - "ResetRequestIEs", - "ResetRequestIEs", - &asn_OP_SEQUENCE, - asn_DEF_ResetRequestIEs_tags_81, - sizeof(asn_DEF_ResetRequestIEs_tags_81) - /sizeof(asn_DEF_ResetRequestIEs_tags_81[0]), /* 1 */ - asn_DEF_ResetRequestIEs_tags_81, /* Same as above */ - sizeof(asn_DEF_ResetRequestIEs_tags_81) - /sizeof(asn_DEF_ResetRequestIEs_tags_81[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ResetRequestIEs_81, - 3, /* Elements count */ - &asn_SPC_ResetRequestIEs_specs_81 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_88[] = { - { ATF_NOFLAGS, 0, offsetof(struct ResetResponseIEs__value, choice.CriticalityDiagnostics), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CriticalityDiagnostics, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "CriticalityDiagnostics" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_88[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* CriticalityDiagnostics */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_88 = { - sizeof(struct ResetResponseIEs__value), - offsetof(struct ResetResponseIEs__value, _asn_ctx), - offsetof(struct ResetResponseIEs__value, present), - sizeof(((struct ResetResponseIEs__value *)0)->present), - asn_MAP_value_tag2el_88, - 1, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_88 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_88, - 1, /* Elements count */ - &asn_SPC_value_specs_88 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ResetResponseIEs_85[] = { - { ATF_NOFLAGS, 0, offsetof(struct ResetResponseIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_86, memb_id_constraint_85 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct ResetResponseIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_ResetResponseIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_87, memb_criticality_constraint_85 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ResetResponseIEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_88, - select_ResetResponseIEs_value_type, - { 0, &asn_PER_memb_value_constr_88, memb_value_constraint_85 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_ResetResponseIEs_tags_85[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ResetResponseIEs_tag2el_85[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ResetResponseIEs_specs_85 = { - sizeof(struct ResetResponseIEs), - offsetof(struct ResetResponseIEs, _asn_ctx), - asn_MAP_ResetResponseIEs_tag2el_85, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ResetResponseIEs = { - "ResetResponseIEs", - "ResetResponseIEs", - &asn_OP_SEQUENCE, - asn_DEF_ResetResponseIEs_tags_85, - sizeof(asn_DEF_ResetResponseIEs_tags_85) - /sizeof(asn_DEF_ResetResponseIEs_tags_85[0]), /* 1 */ - asn_DEF_ResetResponseIEs_tags_85, /* Same as above */ - sizeof(asn_DEF_ResetResponseIEs_tags_85) - /sizeof(asn_DEF_ResetResponseIEs_tags_85[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ResetResponseIEs_85, - 3, /* Elements count */ - &asn_SPC_ResetResponseIEs_specs_85 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_92[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdate_IEs__value, choice.RANfunctions_List), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RANfunctions_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RANfunctions-List" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdate_IEs__value, choice.RANfunctionsID_List), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RANfunctionsID_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RANfunctionsID-List" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_92[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 1 }, /* RANfunctions-List */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 0 } /* RANfunctionsID-List */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_92 = { - sizeof(struct RICserviceUpdate_IEs__value), - offsetof(struct RICserviceUpdate_IEs__value, _asn_ctx), - offsetof(struct RICserviceUpdate_IEs__value, present), - sizeof(((struct RICserviceUpdate_IEs__value *)0)->present), - asn_MAP_value_tag2el_92, - 2, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_92 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_92, - 2, /* Elements count */ - &asn_SPC_value_specs_92 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_RICserviceUpdate_IEs_89[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdate_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_90, memb_id_constraint_89 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdate_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_RICserviceUpdate_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_91, memb_criticality_constraint_89 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdate_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_92, - select_RICserviceUpdate_IEs_value_type, - { 0, &asn_PER_memb_value_constr_92, memb_value_constraint_89 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICserviceUpdate_IEs_tags_89[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICserviceUpdate_IEs_tag2el_89[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdate_IEs_specs_89 = { - sizeof(struct RICserviceUpdate_IEs), - offsetof(struct RICserviceUpdate_IEs, _asn_ctx), - asn_MAP_RICserviceUpdate_IEs_tag2el_89, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICserviceUpdate_IEs = { - "RICserviceUpdate-IEs", - "RICserviceUpdate-IEs", - &asn_OP_SEQUENCE, - asn_DEF_RICserviceUpdate_IEs_tags_89, - sizeof(asn_DEF_RICserviceUpdate_IEs_tags_89) - /sizeof(asn_DEF_RICserviceUpdate_IEs_tags_89[0]), /* 1 */ - asn_DEF_RICserviceUpdate_IEs_tags_89, /* Same as above */ - sizeof(asn_DEF_RICserviceUpdate_IEs_tags_89) - /sizeof(asn_DEF_RICserviceUpdate_IEs_tags_89[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICserviceUpdate_IEs_89, - 3, /* Elements count */ - &asn_SPC_RICserviceUpdate_IEs_specs_89 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_96[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateAcknowledge_IEs__value, choice.RANfunctionsID_List), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RANfunctionsID_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RANfunctionsID-List" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateAcknowledge_IEs__value, choice.RANfunctionsIDcause_List), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RANfunctionsIDcause_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RANfunctionsIDcause-List" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_96[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 1 }, /* RANfunctionsID-List */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 0 } /* RANfunctionsIDcause-List */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_96 = { - sizeof(struct RICserviceUpdateAcknowledge_IEs__value), - offsetof(struct RICserviceUpdateAcknowledge_IEs__value, _asn_ctx), - offsetof(struct RICserviceUpdateAcknowledge_IEs__value, present), - sizeof(((struct RICserviceUpdateAcknowledge_IEs__value *)0)->present), - asn_MAP_value_tag2el_96, - 2, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_96 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_96, - 2, /* Elements count */ - &asn_SPC_value_specs_96 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_RICserviceUpdateAcknowledge_IEs_93[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateAcknowledge_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_94, memb_id_constraint_93 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateAcknowledge_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_RICserviceUpdateAcknowledge_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_95, memb_criticality_constraint_93 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateAcknowledge_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_96, - select_RICserviceUpdateAcknowledge_IEs_value_type, - { 0, &asn_PER_memb_value_constr_96, memb_value_constraint_93 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICserviceUpdateAcknowledge_IEs_tags_93[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICserviceUpdateAcknowledge_IEs_tag2el_93[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdateAcknowledge_IEs_specs_93 = { - sizeof(struct RICserviceUpdateAcknowledge_IEs), - offsetof(struct RICserviceUpdateAcknowledge_IEs, _asn_ctx), - asn_MAP_RICserviceUpdateAcknowledge_IEs_tag2el_93, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICserviceUpdateAcknowledge_IEs = { - "RICserviceUpdateAcknowledge-IEs", - "RICserviceUpdateAcknowledge-IEs", - &asn_OP_SEQUENCE, - asn_DEF_RICserviceUpdateAcknowledge_IEs_tags_93, - sizeof(asn_DEF_RICserviceUpdateAcknowledge_IEs_tags_93) - /sizeof(asn_DEF_RICserviceUpdateAcknowledge_IEs_tags_93[0]), /* 1 */ - asn_DEF_RICserviceUpdateAcknowledge_IEs_tags_93, /* Same as above */ - sizeof(asn_DEF_RICserviceUpdateAcknowledge_IEs_tags_93) - /sizeof(asn_DEF_RICserviceUpdateAcknowledge_IEs_tags_93[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICserviceUpdateAcknowledge_IEs_93, - 3, /* Elements count */ - &asn_SPC_RICserviceUpdateAcknowledge_IEs_specs_93 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_100[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateFailure_IEs__value, choice.RANfunctionsIDcause_List), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RANfunctionsIDcause_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RANfunctionsIDcause-List" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateFailure_IEs__value, choice.TimeToWait), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_TimeToWait, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "TimeToWait" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateFailure_IEs__value, choice.CriticalityDiagnostics), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CriticalityDiagnostics, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "CriticalityDiagnostics" - }, -}; -static const unsigned asn_MAP_value_to_canonical_100[] = { 1, 0, 2 }; -static const unsigned asn_MAP_value_from_canonical_100[] = { 1, 0, 2 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_100[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 }, /* TimeToWait */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 1 }, /* RANfunctionsIDcause-List */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -1, 0 } /* CriticalityDiagnostics */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_100 = { - sizeof(struct RICserviceUpdateFailure_IEs__value), - offsetof(struct RICserviceUpdateFailure_IEs__value, _asn_ctx), - offsetof(struct RICserviceUpdateFailure_IEs__value, present), - sizeof(((struct RICserviceUpdateFailure_IEs__value *)0)->present), - asn_MAP_value_tag2el_100, - 3, /* Count of tags in the map */ - asn_MAP_value_to_canonical_100, - asn_MAP_value_from_canonical_100, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_100 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_100, - 3, /* Elements count */ - &asn_SPC_value_specs_100 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_RICserviceUpdateFailure_IEs_97[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateFailure_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_98, memb_id_constraint_97 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateFailure_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_RICserviceUpdateFailure_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_99, memb_criticality_constraint_97 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateFailure_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_100, - select_RICserviceUpdateFailure_IEs_value_type, - { 0, &asn_PER_memb_value_constr_100, memb_value_constraint_97 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICserviceUpdateFailure_IEs_tags_97[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICserviceUpdateFailure_IEs_tag2el_97[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdateFailure_IEs_specs_97 = { - sizeof(struct RICserviceUpdateFailure_IEs), - offsetof(struct RICserviceUpdateFailure_IEs, _asn_ctx), - asn_MAP_RICserviceUpdateFailure_IEs_tag2el_97, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICserviceUpdateFailure_IEs = { - "RICserviceUpdateFailure-IEs", - "RICserviceUpdateFailure-IEs", - &asn_OP_SEQUENCE, - asn_DEF_RICserviceUpdateFailure_IEs_tags_97, - sizeof(asn_DEF_RICserviceUpdateFailure_IEs_tags_97) - /sizeof(asn_DEF_RICserviceUpdateFailure_IEs_tags_97[0]), /* 1 */ - asn_DEF_RICserviceUpdateFailure_IEs_tags_97, /* Same as above */ - sizeof(asn_DEF_RICserviceUpdateFailure_IEs_tags_97) - /sizeof(asn_DEF_RICserviceUpdateFailure_IEs_tags_97[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICserviceUpdateFailure_IEs_97, - 3, /* Elements count */ - &asn_SPC_RICserviceUpdateFailure_IEs_specs_97 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_104[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICserviceQuery_IEs__value, choice.RANfunctionsID_List), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RANfunctionsID_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RANfunctionsID-List" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_104[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RANfunctionsID-List */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_104 = { - sizeof(struct RICserviceQuery_IEs__value), - offsetof(struct RICserviceQuery_IEs__value, _asn_ctx), - offsetof(struct RICserviceQuery_IEs__value, present), - sizeof(((struct RICserviceQuery_IEs__value *)0)->present), - asn_MAP_value_tag2el_104, - 1, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_104 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_104, - 1, /* Elements count */ - &asn_SPC_value_specs_104 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_RICserviceQuery_IEs_101[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICserviceQuery_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_102, memb_id_constraint_101 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICserviceQuery_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_RICserviceQuery_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_103, memb_criticality_constraint_101 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICserviceQuery_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_104, - select_RICserviceQuery_IEs_value_type, - { 0, &asn_PER_memb_value_constr_104, memb_value_constraint_101 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICserviceQuery_IEs_tags_101[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICserviceQuery_IEs_tag2el_101[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICserviceQuery_IEs_specs_101 = { - sizeof(struct RICserviceQuery_IEs), - offsetof(struct RICserviceQuery_IEs, _asn_ctx), - asn_MAP_RICserviceQuery_IEs_tag2el_101, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICserviceQuery_IEs = { - "RICserviceQuery-IEs", - "RICserviceQuery-IEs", - &asn_OP_SEQUENCE, - asn_DEF_RICserviceQuery_IEs_tags_101, - sizeof(asn_DEF_RICserviceQuery_IEs_tags_101) - /sizeof(asn_DEF_RICserviceQuery_IEs_tags_101[0]), /* 1 */ - asn_DEF_RICserviceQuery_IEs_tags_101, /* Same as above */ - sizeof(asn_DEF_RICserviceQuery_IEs_tags_101) - /sizeof(asn_DEF_RICserviceQuery_IEs_tags_101[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICserviceQuery_IEs_101, - 3, /* Elements count */ - &asn_SPC_RICserviceQuery_IEs_specs_101 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/ProtocolIE-Field.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/ProtocolIE-Field.h deleted file mode 100644 index 573edcf..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/ProtocolIE-Field.h +++ /dev/null @@ -1,757 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-Containers" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _ProtocolIE_Field_H_ -#define _ProtocolIE_Field_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-ID.h" -#include "Criticality.h" -#include "ANY.h" -#include "asn_ioc.h" -#include "RICaction-ToBeSetup-Item.h" -#include "Presence.h" -#include "OPEN_TYPE.h" -#include "constr_CHOICE.h" -#include "constr_SEQUENCE.h" -#include "RICaction-Admitted-Item.h" -#include "RICaction-NotAdmitted-Item.h" -#include "RANfunction-Item.h" -#include "RANfunctionID-Item.h" -#include "RANfunctionIDcause-Item.h" -#include "RICrequestID.h" -#include "RANfunctionID.h" -#include "RICsubscriptionDetails.h" -#include "RICaction-Admitted-List.h" -#include "RICaction-NotAdmitted-List.h" -#include "CriticalityDiagnostics.h" -#include "Cause.h" -#include "RICactionID.h" -#include "RICindicationSN.h" -#include "RICindicationType.h" -#include "RICindicationHeader.h" -#include "RICindicationMessage.h" -#include "RICcallProcessID.h" -#include "RICcontrolHeader.h" -#include "RICcontrolMessage.h" -#include "RICcontrolAckRequest.h" -#include "RICcontrolStatus.h" -#include "RICcontrolOutcome.h" -#include "GlobalE2node-ID.h" -#include "RANfunctions-List.h" -#include "GlobalRIC-ID.h" -#include "RANfunctionsID-List.h" -#include "RANfunctionsIDcause-List.h" -#include "TimeToWait.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum RICaction_ToBeSetup_ItemIEs__value_PR { - RICaction_ToBeSetup_ItemIEs__value_PR_NOTHING, /* No components present */ - RICaction_ToBeSetup_ItemIEs__value_PR_RICaction_ToBeSetup_Item -} RICaction_ToBeSetup_ItemIEs__value_PR; -typedef enum RICaction_Admitted_ItemIEs__value_PR { - RICaction_Admitted_ItemIEs__value_PR_NOTHING, /* No components present */ - RICaction_Admitted_ItemIEs__value_PR_RICaction_Admitted_Item -} RICaction_Admitted_ItemIEs__value_PR; -typedef enum RICaction_NotAdmitted_ItemIEs__value_PR { - RICaction_NotAdmitted_ItemIEs__value_PR_NOTHING, /* No components present */ - RICaction_NotAdmitted_ItemIEs__value_PR_RICaction_NotAdmitted_Item -} RICaction_NotAdmitted_ItemIEs__value_PR; -typedef enum RANfunction_ItemIEs__value_PR { - RANfunction_ItemIEs__value_PR_NOTHING, /* No components present */ - RANfunction_ItemIEs__value_PR_RANfunction_Item -} RANfunction_ItemIEs__value_PR; -typedef enum RANfunctionID_ItemIEs__value_PR { - RANfunctionID_ItemIEs__value_PR_NOTHING, /* No components present */ - RANfunctionID_ItemIEs__value_PR_RANfunctionID_Item -} RANfunctionID_ItemIEs__value_PR; -typedef enum RANfunctionIDcause_ItemIEs__value_PR { - RANfunctionIDcause_ItemIEs__value_PR_NOTHING, /* No components present */ - RANfunctionIDcause_ItemIEs__value_PR_RANfunctionIDcause_Item -} RANfunctionIDcause_ItemIEs__value_PR; -typedef enum RICsubscriptionRequest_IEs__value_PR { - RICsubscriptionRequest_IEs__value_PR_NOTHING, /* No components present */ - RICsubscriptionRequest_IEs__value_PR_RICrequestID, - RICsubscriptionRequest_IEs__value_PR_RANfunctionID, - RICsubscriptionRequest_IEs__value_PR_RICsubscriptionDetails -} RICsubscriptionRequest_IEs__value_PR; -typedef enum RICsubscriptionResponse_IEs__value_PR { - RICsubscriptionResponse_IEs__value_PR_NOTHING, /* No components present */ - RICsubscriptionResponse_IEs__value_PR_RICrequestID, - RICsubscriptionResponse_IEs__value_PR_RANfunctionID, - RICsubscriptionResponse_IEs__value_PR_RICaction_Admitted_List, - RICsubscriptionResponse_IEs__value_PR_RICaction_NotAdmitted_List -} RICsubscriptionResponse_IEs__value_PR; -typedef enum RICsubscriptionFailure_IEs__value_PR { - RICsubscriptionFailure_IEs__value_PR_NOTHING, /* No components present */ - RICsubscriptionFailure_IEs__value_PR_RICrequestID, - RICsubscriptionFailure_IEs__value_PR_RANfunctionID, - RICsubscriptionFailure_IEs__value_PR_RICaction_NotAdmitted_List, - RICsubscriptionFailure_IEs__value_PR_CriticalityDiagnostics -} RICsubscriptionFailure_IEs__value_PR; -typedef enum RICsubscriptionDeleteRequest_IEs__value_PR { - RICsubscriptionDeleteRequest_IEs__value_PR_NOTHING, /* No components present */ - RICsubscriptionDeleteRequest_IEs__value_PR_RICrequestID, - RICsubscriptionDeleteRequest_IEs__value_PR_RANfunctionID -} RICsubscriptionDeleteRequest_IEs__value_PR; -typedef enum RICsubscriptionDeleteResponse_IEs__value_PR { - RICsubscriptionDeleteResponse_IEs__value_PR_NOTHING, /* No components present */ - RICsubscriptionDeleteResponse_IEs__value_PR_RICrequestID, - RICsubscriptionDeleteResponse_IEs__value_PR_RANfunctionID -} RICsubscriptionDeleteResponse_IEs__value_PR; -typedef enum RICsubscriptionDeleteFailure_IEs__value_PR { - RICsubscriptionDeleteFailure_IEs__value_PR_NOTHING, /* No components present */ - RICsubscriptionDeleteFailure_IEs__value_PR_RICrequestID, - RICsubscriptionDeleteFailure_IEs__value_PR_RANfunctionID, - RICsubscriptionDeleteFailure_IEs__value_PR_Cause, - RICsubscriptionDeleteFailure_IEs__value_PR_CriticalityDiagnostics -} RICsubscriptionDeleteFailure_IEs__value_PR; -typedef enum RICindication_IEs__value_PR { - RICindication_IEs__value_PR_NOTHING, /* No components present */ - RICindication_IEs__value_PR_RICrequestID, - RICindication_IEs__value_PR_RANfunctionID, - RICindication_IEs__value_PR_RICactionID, - RICindication_IEs__value_PR_RICindicationSN, - RICindication_IEs__value_PR_RICindicationType, - RICindication_IEs__value_PR_RICindicationHeader, - RICindication_IEs__value_PR_RICindicationMessage, - RICindication_IEs__value_PR_RICcallProcessID -} RICindication_IEs__value_PR; -typedef enum RICcontrolRequest_IEs__value_PR { - RICcontrolRequest_IEs__value_PR_NOTHING, /* No components present */ - RICcontrolRequest_IEs__value_PR_RICrequestID, - RICcontrolRequest_IEs__value_PR_RANfunctionID, - RICcontrolRequest_IEs__value_PR_RICcallProcessID, - RICcontrolRequest_IEs__value_PR_RICcontrolHeader, - RICcontrolRequest_IEs__value_PR_RICcontrolMessage, - RICcontrolRequest_IEs__value_PR_RICcontrolAckRequest -} RICcontrolRequest_IEs__value_PR; -typedef enum RICcontrolAcknowledge_IEs__value_PR { - RICcontrolAcknowledge_IEs__value_PR_NOTHING, /* No components present */ - RICcontrolAcknowledge_IEs__value_PR_RICrequestID, - RICcontrolAcknowledge_IEs__value_PR_RANfunctionID, - RICcontrolAcknowledge_IEs__value_PR_RICcallProcessID, - RICcontrolAcknowledge_IEs__value_PR_RICcontrolStatus, - RICcontrolAcknowledge_IEs__value_PR_RICcontrolOutcome -} RICcontrolAcknowledge_IEs__value_PR; -typedef enum RICcontrolFailure_IEs__value_PR { - RICcontrolFailure_IEs__value_PR_NOTHING, /* No components present */ - RICcontrolFailure_IEs__value_PR_RICrequestID, - RICcontrolFailure_IEs__value_PR_RANfunctionID, - RICcontrolFailure_IEs__value_PR_RICcallProcessID, - RICcontrolFailure_IEs__value_PR_Cause, - RICcontrolFailure_IEs__value_PR_RICcontrolOutcome -} RICcontrolFailure_IEs__value_PR; -typedef enum ErrorIndication_IEs__value_PR { - ErrorIndication_IEs__value_PR_NOTHING, /* No components present */ - ErrorIndication_IEs__value_PR_RICrequestID, - ErrorIndication_IEs__value_PR_RANfunctionID, - ErrorIndication_IEs__value_PR_Cause, - ErrorIndication_IEs__value_PR_CriticalityDiagnostics -} ErrorIndication_IEs__value_PR; -typedef enum E2setupRequestIEs__value_PR { - E2setupRequestIEs__value_PR_NOTHING, /* No components present */ - E2setupRequestIEs__value_PR_GlobalE2node_ID, - E2setupRequestIEs__value_PR_RANfunctions_List -} E2setupRequestIEs__value_PR; -typedef enum E2setupResponseIEs__value_PR { - E2setupResponseIEs__value_PR_NOTHING, /* No components present */ - E2setupResponseIEs__value_PR_GlobalRIC_ID, - E2setupResponseIEs__value_PR_RANfunctionsID_List, - E2setupResponseIEs__value_PR_RANfunctionsIDcause_List -} E2setupResponseIEs__value_PR; -typedef enum E2setupFailureIEs__value_PR { - E2setupFailureIEs__value_PR_NOTHING, /* No components present */ - E2setupFailureIEs__value_PR_Cause, - E2setupFailureIEs__value_PR_TimeToWait, - E2setupFailureIEs__value_PR_CriticalityDiagnostics -} E2setupFailureIEs__value_PR; -typedef enum ResetRequestIEs__value_PR { - ResetRequestIEs__value_PR_NOTHING, /* No components present */ - ResetRequestIEs__value_PR_Cause -} ResetRequestIEs__value_PR; -typedef enum ResetResponseIEs__value_PR { - ResetResponseIEs__value_PR_NOTHING, /* No components present */ - ResetResponseIEs__value_PR_CriticalityDiagnostics -} ResetResponseIEs__value_PR; -typedef enum RICserviceUpdate_IEs__value_PR { - RICserviceUpdate_IEs__value_PR_NOTHING, /* No components present */ - RICserviceUpdate_IEs__value_PR_RANfunctions_List, - RICserviceUpdate_IEs__value_PR_RANfunctionsID_List -} RICserviceUpdate_IEs__value_PR; -typedef enum RICserviceUpdateAcknowledge_IEs__value_PR { - RICserviceUpdateAcknowledge_IEs__value_PR_NOTHING, /* No components present */ - RICserviceUpdateAcknowledge_IEs__value_PR_RANfunctionsID_List, - RICserviceUpdateAcknowledge_IEs__value_PR_RANfunctionsIDcause_List -} RICserviceUpdateAcknowledge_IEs__value_PR; -typedef enum RICserviceUpdateFailure_IEs__value_PR { - RICserviceUpdateFailure_IEs__value_PR_NOTHING, /* No components present */ - RICserviceUpdateFailure_IEs__value_PR_RANfunctionsIDcause_List, - RICserviceUpdateFailure_IEs__value_PR_TimeToWait, - RICserviceUpdateFailure_IEs__value_PR_CriticalityDiagnostics -} RICserviceUpdateFailure_IEs__value_PR; -typedef enum RICserviceQuery_IEs__value_PR { - RICserviceQuery_IEs__value_PR_NOTHING, /* No components present */ - RICserviceQuery_IEs__value_PR_RANfunctionsID_List -} RICserviceQuery_IEs__value_PR; - -/* ProtocolIE-Field */ -typedef struct RICaction_ToBeSetup_ItemIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RICaction_ToBeSetup_ItemIEs__value { - RICaction_ToBeSetup_ItemIEs__value_PR present; - union RICaction_ToBeSetup_ItemIEs__value_u { - RICaction_ToBeSetup_Item_t RICaction_ToBeSetup_Item; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICaction_ToBeSetup_ItemIEs_t; -typedef struct RICaction_Admitted_ItemIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RICaction_Admitted_ItemIEs__value { - RICaction_Admitted_ItemIEs__value_PR present; - union RICaction_Admitted_ItemIEs__value_u { - RICaction_Admitted_Item_t RICaction_Admitted_Item; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICaction_Admitted_ItemIEs_t; -typedef struct RICaction_NotAdmitted_ItemIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RICaction_NotAdmitted_ItemIEs__value { - RICaction_NotAdmitted_ItemIEs__value_PR present; - union RICaction_NotAdmitted_ItemIEs__value_u { - RICaction_NotAdmitted_Item_t RICaction_NotAdmitted_Item; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICaction_NotAdmitted_ItemIEs_t; -typedef struct RANfunction_ItemIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RANfunction_ItemIEs__value { - RANfunction_ItemIEs__value_PR present; - union RANfunction_ItemIEs__value_u { - RANfunction_Item_t RANfunction_Item; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RANfunction_ItemIEs_t; -typedef struct RANfunctionID_ItemIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RANfunctionID_ItemIEs__value { - RANfunctionID_ItemIEs__value_PR present; - union RANfunctionID_ItemIEs__value_u { - RANfunctionID_Item_t RANfunctionID_Item; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RANfunctionID_ItemIEs_t; -typedef struct RANfunctionIDcause_ItemIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RANfunctionIDcause_ItemIEs__value { - RANfunctionIDcause_ItemIEs__value_PR present; - union RANfunctionIDcause_ItemIEs__value_u { - RANfunctionIDcause_Item_t RANfunctionIDcause_Item; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RANfunctionIDcause_ItemIEs_t; -typedef struct RICsubscriptionRequest_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RICsubscriptionRequest_IEs__value { - RICsubscriptionRequest_IEs__value_PR present; - union RICsubscriptionRequest_IEs__value_u { - RICrequestID_t RICrequestID; - RANfunctionID_t RANfunctionID; - RICsubscriptionDetails_t RICsubscriptionDetails; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICsubscriptionRequest_IEs_t; -typedef struct RICsubscriptionResponse_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RICsubscriptionResponse_IEs__value { - RICsubscriptionResponse_IEs__value_PR present; - union RICsubscriptionResponse_IEs__value_u { - RICrequestID_t RICrequestID; - RANfunctionID_t RANfunctionID; - RICaction_Admitted_List_t RICaction_Admitted_List; - RICaction_NotAdmitted_List_t RICaction_NotAdmitted_List; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICsubscriptionResponse_IEs_t; -typedef struct RICsubscriptionFailure_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RICsubscriptionFailure_IEs__value { - RICsubscriptionFailure_IEs__value_PR present; - union RICsubscriptionFailure_IEs__value_u { - RICrequestID_t RICrequestID; - RANfunctionID_t RANfunctionID; - RICaction_NotAdmitted_List_t RICaction_NotAdmitted_List; - CriticalityDiagnostics_t CriticalityDiagnostics; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICsubscriptionFailure_IEs_t; -typedef struct RICsubscriptionDeleteRequest_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RICsubscriptionDeleteRequest_IEs__value { - RICsubscriptionDeleteRequest_IEs__value_PR present; - union RICsubscriptionDeleteRequest_IEs__value_u { - RICrequestID_t RICrequestID; - RANfunctionID_t RANfunctionID; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICsubscriptionDeleteRequest_IEs_t; -typedef struct RICsubscriptionDeleteResponse_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RICsubscriptionDeleteResponse_IEs__value { - RICsubscriptionDeleteResponse_IEs__value_PR present; - union RICsubscriptionDeleteResponse_IEs__value_u { - RICrequestID_t RICrequestID; - RANfunctionID_t RANfunctionID; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICsubscriptionDeleteResponse_IEs_t; -typedef struct RICsubscriptionDeleteFailure_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RICsubscriptionDeleteFailure_IEs__value { - RICsubscriptionDeleteFailure_IEs__value_PR present; - union RICsubscriptionDeleteFailure_IEs__value_u { - RICrequestID_t RICrequestID; - RANfunctionID_t RANfunctionID; - Cause_t Cause; - CriticalityDiagnostics_t CriticalityDiagnostics; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICsubscriptionDeleteFailure_IEs_t; -typedef struct RICindication_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RICindication_IEs__value { - RICindication_IEs__value_PR present; - union RICindication_IEs__value_u { - RICrequestID_t RICrequestID; - RANfunctionID_t RANfunctionID; - RICactionID_t RICactionID; - RICindicationSN_t RICindicationSN; - RICindicationType_t RICindicationType; - RICindicationHeader_t RICindicationHeader; - RICindicationMessage_t RICindicationMessage; - RICcallProcessID_t RICcallProcessID; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICindication_IEs_t; -typedef struct RICcontrolRequest_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RICcontrolRequest_IEs__value { - RICcontrolRequest_IEs__value_PR present; - union RICcontrolRequest_IEs__value_u { - RICrequestID_t RICrequestID; - RANfunctionID_t RANfunctionID; - RICcallProcessID_t RICcallProcessID; - RICcontrolHeader_t RICcontrolHeader; - RICcontrolMessage_t RICcontrolMessage; - RICcontrolAckRequest_t RICcontrolAckRequest; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICcontrolRequest_IEs_t; -typedef struct RICcontrolAcknowledge_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RICcontrolAcknowledge_IEs__value { - RICcontrolAcknowledge_IEs__value_PR present; - union RICcontrolAcknowledge_IEs__value_u { - RICrequestID_t RICrequestID; - RANfunctionID_t RANfunctionID; - RICcallProcessID_t RICcallProcessID; - RICcontrolStatus_t RICcontrolStatus; - RICcontrolOutcome_t RICcontrolOutcome; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICcontrolAcknowledge_IEs_t; -typedef struct RICcontrolFailure_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RICcontrolFailure_IEs__value { - RICcontrolFailure_IEs__value_PR present; - union RICcontrolFailure_IEs__value_u { - RICrequestID_t RICrequestID; - RANfunctionID_t RANfunctionID; - RICcallProcessID_t RICcallProcessID; - Cause_t Cause; - RICcontrolOutcome_t RICcontrolOutcome; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICcontrolFailure_IEs_t; -typedef struct ErrorIndication_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct ErrorIndication_IEs__value { - ErrorIndication_IEs__value_PR present; - union ErrorIndication_IEs__value_u { - RICrequestID_t RICrequestID; - RANfunctionID_t RANfunctionID; - Cause_t Cause; - CriticalityDiagnostics_t CriticalityDiagnostics; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ErrorIndication_IEs_t; -typedef struct E2setupRequestIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct E2setupRequestIEs__value { - E2setupRequestIEs__value_PR present; - union E2setupRequestIEs__value_u { - GlobalE2node_ID_t GlobalE2node_ID; - RANfunctions_List_t RANfunctions_List; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E2setupRequestIEs_t; -typedef struct E2setupResponseIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct E2setupResponseIEs__value { - E2setupResponseIEs__value_PR present; - union E2setupResponseIEs__value_u { - GlobalRIC_ID_t GlobalRIC_ID; - RANfunctionsID_List_t RANfunctionsID_List; - RANfunctionsIDcause_List_t RANfunctionsIDcause_List; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E2setupResponseIEs_t; -typedef struct E2setupFailureIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct E2setupFailureIEs__value { - E2setupFailureIEs__value_PR present; - union E2setupFailureIEs__value_u { - Cause_t Cause; - TimeToWait_t TimeToWait; - CriticalityDiagnostics_t CriticalityDiagnostics; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E2setupFailureIEs_t; -typedef struct ResetRequestIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct ResetRequestIEs__value { - ResetRequestIEs__value_PR present; - union ResetRequestIEs__value_u { - Cause_t Cause; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ResetRequestIEs_t; -typedef struct ResetResponseIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct ResetResponseIEs__value { - ResetResponseIEs__value_PR present; - union ResetResponseIEs__value_u { - CriticalityDiagnostics_t CriticalityDiagnostics; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ResetResponseIEs_t; -typedef struct RICserviceUpdate_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RICserviceUpdate_IEs__value { - RICserviceUpdate_IEs__value_PR present; - union RICserviceUpdate_IEs__value_u { - RANfunctions_List_t RANfunctions_List; - RANfunctionsID_List_t RANfunctionsID_List; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICserviceUpdate_IEs_t; -typedef struct RICserviceUpdateAcknowledge_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RICserviceUpdateAcknowledge_IEs__value { - RICserviceUpdateAcknowledge_IEs__value_PR present; - union RICserviceUpdateAcknowledge_IEs__value_u { - RANfunctionsID_List_t RANfunctionsID_List; - RANfunctionsIDcause_List_t RANfunctionsIDcause_List; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICserviceUpdateAcknowledge_IEs_t; -typedef struct RICserviceUpdateFailure_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RICserviceUpdateFailure_IEs__value { - RICserviceUpdateFailure_IEs__value_PR present; - union RICserviceUpdateFailure_IEs__value_u { - RANfunctionsIDcause_List_t RANfunctionsIDcause_List; - TimeToWait_t TimeToWait; - CriticalityDiagnostics_t CriticalityDiagnostics; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICserviceUpdateFailure_IEs_t; -typedef struct RICserviceQuery_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RICserviceQuery_IEs__value { - RICserviceQuery_IEs__value_PR present; - union RICserviceQuery_IEs__value_u { - RANfunctionsID_List_t RANfunctionsID_List; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICserviceQuery_IEs_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICaction_ToBeSetup_ItemIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RICaction_ToBeSetup_ItemIEs_specs_1; -extern asn_TYPE_member_t asn_MBR_RICaction_ToBeSetup_ItemIEs_1[3]; -extern asn_TYPE_descriptor_t asn_DEF_RICaction_Admitted_ItemIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RICaction_Admitted_ItemIEs_specs_5; -extern asn_TYPE_member_t asn_MBR_RICaction_Admitted_ItemIEs_5[3]; -extern asn_TYPE_descriptor_t asn_DEF_RICaction_NotAdmitted_ItemIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RICaction_NotAdmitted_ItemIEs_specs_9; -extern asn_TYPE_member_t asn_MBR_RICaction_NotAdmitted_ItemIEs_9[3]; -extern asn_TYPE_descriptor_t asn_DEF_RANfunction_ItemIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RANfunction_ItemIEs_specs_13; -extern asn_TYPE_member_t asn_MBR_RANfunction_ItemIEs_13[3]; -extern asn_TYPE_descriptor_t asn_DEF_RANfunctionID_ItemIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RANfunctionID_ItemIEs_specs_17; -extern asn_TYPE_member_t asn_MBR_RANfunctionID_ItemIEs_17[3]; -extern asn_TYPE_descriptor_t asn_DEF_RANfunctionIDcause_ItemIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RANfunctionIDcause_ItemIEs_specs_21; -extern asn_TYPE_member_t asn_MBR_RANfunctionIDcause_ItemIEs_21[3]; -extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionRequest_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionRequest_IEs_specs_25; -extern asn_TYPE_member_t asn_MBR_RICsubscriptionRequest_IEs_25[3]; -extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionResponse_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionResponse_IEs_specs_29; -extern asn_TYPE_member_t asn_MBR_RICsubscriptionResponse_IEs_29[3]; -extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionFailure_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionFailure_IEs_specs_33; -extern asn_TYPE_member_t asn_MBR_RICsubscriptionFailure_IEs_33[3]; -extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDeleteRequest_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteRequest_IEs_specs_37; -extern asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteRequest_IEs_37[3]; -extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDeleteResponse_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteResponse_IEs_specs_41; -extern asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteResponse_IEs_41[3]; -extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDeleteFailure_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteFailure_IEs_specs_45; -extern asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteFailure_IEs_45[3]; -extern asn_TYPE_descriptor_t asn_DEF_RICindication_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RICindication_IEs_specs_49; -extern asn_TYPE_member_t asn_MBR_RICindication_IEs_49[3]; -extern asn_TYPE_descriptor_t asn_DEF_RICcontrolRequest_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RICcontrolRequest_IEs_specs_53; -extern asn_TYPE_member_t asn_MBR_RICcontrolRequest_IEs_53[3]; -extern asn_TYPE_descriptor_t asn_DEF_RICcontrolAcknowledge_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RICcontrolAcknowledge_IEs_specs_57; -extern asn_TYPE_member_t asn_MBR_RICcontrolAcknowledge_IEs_57[3]; -extern asn_TYPE_descriptor_t asn_DEF_RICcontrolFailure_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RICcontrolFailure_IEs_specs_61; -extern asn_TYPE_member_t asn_MBR_RICcontrolFailure_IEs_61[3]; -extern asn_TYPE_descriptor_t asn_DEF_ErrorIndication_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_ErrorIndication_IEs_specs_65; -extern asn_TYPE_member_t asn_MBR_ErrorIndication_IEs_65[3]; -extern asn_TYPE_descriptor_t asn_DEF_E2setupRequestIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E2setupRequestIEs_specs_69; -extern asn_TYPE_member_t asn_MBR_E2setupRequestIEs_69[3]; -extern asn_TYPE_descriptor_t asn_DEF_E2setupResponseIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E2setupResponseIEs_specs_73; -extern asn_TYPE_member_t asn_MBR_E2setupResponseIEs_73[3]; -extern asn_TYPE_descriptor_t asn_DEF_E2setupFailureIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E2setupFailureIEs_specs_77; -extern asn_TYPE_member_t asn_MBR_E2setupFailureIEs_77[3]; -extern asn_TYPE_descriptor_t asn_DEF_ResetRequestIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_ResetRequestIEs_specs_81; -extern asn_TYPE_member_t asn_MBR_ResetRequestIEs_81[3]; -extern asn_TYPE_descriptor_t asn_DEF_ResetResponseIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_ResetResponseIEs_specs_85; -extern asn_TYPE_member_t asn_MBR_ResetResponseIEs_85[3]; -extern asn_TYPE_descriptor_t asn_DEF_RICserviceUpdate_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdate_IEs_specs_89; -extern asn_TYPE_member_t asn_MBR_RICserviceUpdate_IEs_89[3]; -extern asn_TYPE_descriptor_t asn_DEF_RICserviceUpdateAcknowledge_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdateAcknowledge_IEs_specs_93; -extern asn_TYPE_member_t asn_MBR_RICserviceUpdateAcknowledge_IEs_93[3]; -extern asn_TYPE_descriptor_t asn_DEF_RICserviceUpdateFailure_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdateFailure_IEs_specs_97; -extern asn_TYPE_member_t asn_MBR_RICserviceUpdateFailure_IEs_97[3]; -extern asn_TYPE_descriptor_t asn_DEF_RICserviceQuery_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RICserviceQuery_IEs_specs_101; -extern asn_TYPE_member_t asn_MBR_RICserviceQuery_IEs_101[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _ProtocolIE_Field_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/ProtocolIE-FieldPair.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/ProtocolIE-FieldPair.c deleted file mode 100644 index 9c7e653..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/ProtocolIE-FieldPair.c +++ /dev/null @@ -1,9 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-Containers" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "ProtocolIE-FieldPair.h" - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/ProtocolIE-FieldPair.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/ProtocolIE-FieldPair.h deleted file mode 100644 index 8193bd6..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/ProtocolIE-FieldPair.h +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-Containers" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _ProtocolIE_FieldPair_H_ -#define _ProtocolIE_FieldPair_H_ - - -#include "asn_application.h" - -#ifdef __cplusplus -extern "C" { -#endif - -#ifdef __cplusplus -} -#endif - -#endif /* _ProtocolIE_FieldPair_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/ProtocolIE-ID.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/ProtocolIE-ID.c deleted file mode 100644 index 9afe610..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/ProtocolIE-ID.c +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-CommonDataTypes" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "ProtocolIE-ID.h" - -int -ProtocolIE_ID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using NativeInteger, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_ProtocolIE_ID_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_ID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ID = { - "ProtocolIE-ID", - "ProtocolIE-ID", - &asn_OP_NativeInteger, - asn_DEF_ProtocolIE_ID_tags_1, - sizeof(asn_DEF_ProtocolIE_ID_tags_1) - /sizeof(asn_DEF_ProtocolIE_ID_tags_1[0]), /* 1 */ - asn_DEF_ProtocolIE_ID_tags_1, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_ID_tags_1) - /sizeof(asn_DEF_ProtocolIE_ID_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_ID_constr_1, ProtocolIE_ID_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/ProtocolIE-ID.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/ProtocolIE-ID.h deleted file mode 100644 index f6d2261..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/ProtocolIE-ID.h +++ /dev/null @@ -1,76 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-CommonDataTypes" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _ProtocolIE_ID_H_ -#define _ProtocolIE_ID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeInteger.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* ProtocolIE-ID */ -typedef long ProtocolIE_ID_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_ProtocolIE_ID_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ID; -asn_struct_free_f ProtocolIE_ID_free; -asn_struct_print_f ProtocolIE_ID_print; -asn_constr_check_f ProtocolIE_ID_constraint; -ber_type_decoder_f ProtocolIE_ID_decode_ber; -der_type_encoder_f ProtocolIE_ID_encode_der; -xer_type_decoder_f ProtocolIE_ID_decode_xer; -xer_type_encoder_f ProtocolIE_ID_encode_xer; -per_type_decoder_f ProtocolIE_ID_decode_uper; -per_type_encoder_f ProtocolIE_ID_encode_uper; -per_type_decoder_f ProtocolIE_ID_decode_aper; -per_type_encoder_f ProtocolIE_ID_encode_aper; -#define ProtocolIE_ID_id_Cause ((ProtocolIE_ID_t)1) -#define ProtocolIE_ID_id_CriticalityDiagnostics ((ProtocolIE_ID_t)2) -#define ProtocolIE_ID_id_GlobalE2node_ID ((ProtocolIE_ID_t)3) -#define ProtocolIE_ID_id_GlobalRIC_ID ((ProtocolIE_ID_t)4) -#define ProtocolIE_ID_id_RANfunctionID ((ProtocolIE_ID_t)5) -#define ProtocolIE_ID_id_RANfunctionID_Item ((ProtocolIE_ID_t)6) -#define ProtocolIE_ID_id_RANfunctionIEcause_Item ((ProtocolIE_ID_t)7) -#define ProtocolIE_ID_id_RANfunction_Item ((ProtocolIE_ID_t)8) -#define ProtocolIE_ID_id_RANfunctionsAccepted ((ProtocolIE_ID_t)9) -#define ProtocolIE_ID_id_RANfunctionsAdded ((ProtocolIE_ID_t)10) -#define ProtocolIE_ID_id_RANfunctionsDeleted ((ProtocolIE_ID_t)11) -#define ProtocolIE_ID_id_RANfunctionsModified ((ProtocolIE_ID_t)12) -#define ProtocolIE_ID_id_RANfunctionsRejected ((ProtocolIE_ID_t)13) -#define ProtocolIE_ID_id_RICaction_Admitted_Item ((ProtocolIE_ID_t)14) -#define ProtocolIE_ID_id_RICactionID ((ProtocolIE_ID_t)15) -#define ProtocolIE_ID_id_RICaction_NotAdmitted_Item ((ProtocolIE_ID_t)16) -#define ProtocolIE_ID_id_RICactions_Admitted ((ProtocolIE_ID_t)17) -#define ProtocolIE_ID_id_RICactions_NotAdmitted ((ProtocolIE_ID_t)18) -#define ProtocolIE_ID_id_RICaction_ToBeSetup_Item ((ProtocolIE_ID_t)19) -#define ProtocolIE_ID_id_RICcallProcessID ((ProtocolIE_ID_t)20) -#define ProtocolIE_ID_id_RICcontrolAckRequest ((ProtocolIE_ID_t)21) -#define ProtocolIE_ID_id_RICcontrolHeader ((ProtocolIE_ID_t)22) -#define ProtocolIE_ID_id_RICcontrolMessage ((ProtocolIE_ID_t)23) -#define ProtocolIE_ID_id_RICcontrolStatus ((ProtocolIE_ID_t)24) -#define ProtocolIE_ID_id_RICindicationHeader ((ProtocolIE_ID_t)25) -#define ProtocolIE_ID_id_RICindicationMessage ((ProtocolIE_ID_t)26) -#define ProtocolIE_ID_id_RICindicationSN ((ProtocolIE_ID_t)27) -#define ProtocolIE_ID_id_RICindicationType ((ProtocolIE_ID_t)28) -#define ProtocolIE_ID_id_RICrequestID ((ProtocolIE_ID_t)29) -#define ProtocolIE_ID_id_RICsubscriptionDetails ((ProtocolIE_ID_t)30) -#define ProtocolIE_ID_id_TimeToWait ((ProtocolIE_ID_t)31) -#define ProtocolIE_ID_id_RICcontrolOutcome ((ProtocolIE_ID_t)32) - -#ifdef __cplusplus -} -#endif - -#endif /* _ProtocolIE_ID_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/ProtocolIE-SingleContainer.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/ProtocolIE-SingleContainer.c deleted file mode 100644 index c516962..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/ProtocolIE-SingleContainer.c +++ /dev/null @@ -1,147 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-Containers" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "ProtocolIE-SingleContainer.h" - -/* - * This type is implemented using RICaction_ToBeSetup_ItemIEs, - * so here we adjust the DEF accordingly. - */ -/* - * This type is implemented using RICaction_Admitted_ItemIEs, - * so here we adjust the DEF accordingly. - */ -/* - * This type is implemented using RICaction_NotAdmitted_ItemIEs, - * so here we adjust the DEF accordingly. - */ -/* - * This type is implemented using RANfunction_ItemIEs, - * so here we adjust the DEF accordingly. - */ -/* - * This type is implemented using RANfunctionID_ItemIEs, - * so here we adjust the DEF accordingly. - */ -/* - * This type is implemented using RANfunctionIDcause_ItemIEs, - * so here we adjust the DEF accordingly. - */ -static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_1530P0_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1530P0 = { - "ProtocolIE-SingleContainer", - "ProtocolIE-SingleContainer", - &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_SingleContainer_1530P0_tags_1, - sizeof(asn_DEF_ProtocolIE_SingleContainer_1530P0_tags_1) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1530P0_tags_1[0]), /* 1 */ - asn_DEF_ProtocolIE_SingleContainer_1530P0_tags_1, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_SingleContainer_1530P0_tags_1) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1530P0_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICaction_ToBeSetup_ItemIEs_1, - 3, /* Elements count */ - &asn_SPC_RICaction_ToBeSetup_ItemIEs_specs_1 /* Additional specs */ -}; - -static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_1530P1_tags_2[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1530P1 = { - "ProtocolIE-SingleContainer", - "ProtocolIE-SingleContainer", - &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_SingleContainer_1530P1_tags_2, - sizeof(asn_DEF_ProtocolIE_SingleContainer_1530P1_tags_2) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1530P1_tags_2[0]), /* 1 */ - asn_DEF_ProtocolIE_SingleContainer_1530P1_tags_2, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_SingleContainer_1530P1_tags_2) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1530P1_tags_2[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICaction_Admitted_ItemIEs_5, - 3, /* Elements count */ - &asn_SPC_RICaction_Admitted_ItemIEs_specs_5 /* Additional specs */ -}; - -static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_1530P2_tags_3[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1530P2 = { - "ProtocolIE-SingleContainer", - "ProtocolIE-SingleContainer", - &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_SingleContainer_1530P2_tags_3, - sizeof(asn_DEF_ProtocolIE_SingleContainer_1530P2_tags_3) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1530P2_tags_3[0]), /* 1 */ - asn_DEF_ProtocolIE_SingleContainer_1530P2_tags_3, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_SingleContainer_1530P2_tags_3) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1530P2_tags_3[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICaction_NotAdmitted_ItemIEs_9, - 3, /* Elements count */ - &asn_SPC_RICaction_NotAdmitted_ItemIEs_specs_9 /* Additional specs */ -}; - -static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_1530P3_tags_4[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1530P3 = { - "ProtocolIE-SingleContainer", - "ProtocolIE-SingleContainer", - &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_SingleContainer_1530P3_tags_4, - sizeof(asn_DEF_ProtocolIE_SingleContainer_1530P3_tags_4) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1530P3_tags_4[0]), /* 1 */ - asn_DEF_ProtocolIE_SingleContainer_1530P3_tags_4, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_SingleContainer_1530P3_tags_4) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1530P3_tags_4[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RANfunction_ItemIEs_13, - 3, /* Elements count */ - &asn_SPC_RANfunction_ItemIEs_specs_13 /* Additional specs */ -}; - -static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_1530P4_tags_5[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1530P4 = { - "ProtocolIE-SingleContainer", - "ProtocolIE-SingleContainer", - &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_SingleContainer_1530P4_tags_5, - sizeof(asn_DEF_ProtocolIE_SingleContainer_1530P4_tags_5) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1530P4_tags_5[0]), /* 1 */ - asn_DEF_ProtocolIE_SingleContainer_1530P4_tags_5, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_SingleContainer_1530P4_tags_5) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1530P4_tags_5[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RANfunctionID_ItemIEs_17, - 3, /* Elements count */ - &asn_SPC_RANfunctionID_ItemIEs_specs_17 /* Additional specs */ -}; - -static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_1530P5_tags_6[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1530P5 = { - "ProtocolIE-SingleContainer", - "ProtocolIE-SingleContainer", - &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_SingleContainer_1530P5_tags_6, - sizeof(asn_DEF_ProtocolIE_SingleContainer_1530P5_tags_6) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1530P5_tags_6[0]), /* 1 */ - asn_DEF_ProtocolIE_SingleContainer_1530P5_tags_6, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_SingleContainer_1530P5_tags_6) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1530P5_tags_6[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RANfunctionIDcause_ItemIEs_21, - 3, /* Elements count */ - &asn_SPC_RANfunctionIDcause_ItemIEs_specs_21 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/ProtocolIE-SingleContainer.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/ProtocolIE-SingleContainer.h deleted file mode 100644 index b17c298..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/ProtocolIE-SingleContainer.h +++ /dev/null @@ -1,108 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-Containers" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _ProtocolIE_SingleContainer_H_ -#define _ProtocolIE_SingleContainer_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Field.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* ProtocolIE-SingleContainer */ -typedef RICaction_ToBeSetup_ItemIEs_t ProtocolIE_SingleContainer_1530P0_t; -typedef RICaction_Admitted_ItemIEs_t ProtocolIE_SingleContainer_1530P1_t; -typedef RICaction_NotAdmitted_ItemIEs_t ProtocolIE_SingleContainer_1530P2_t; -typedef RANfunction_ItemIEs_t ProtocolIE_SingleContainer_1530P3_t; -typedef RANfunctionID_ItemIEs_t ProtocolIE_SingleContainer_1530P4_t; -typedef RANfunctionIDcause_ItemIEs_t ProtocolIE_SingleContainer_1530P5_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1530P0; -asn_struct_free_f ProtocolIE_SingleContainer_1530P0_free; -asn_struct_print_f ProtocolIE_SingleContainer_1530P0_print; -asn_constr_check_f ProtocolIE_SingleContainer_1530P0_constraint; -ber_type_decoder_f ProtocolIE_SingleContainer_1530P0_decode_ber; -der_type_encoder_f ProtocolIE_SingleContainer_1530P0_encode_der; -xer_type_decoder_f ProtocolIE_SingleContainer_1530P0_decode_xer; -xer_type_encoder_f ProtocolIE_SingleContainer_1530P0_encode_xer; -per_type_decoder_f ProtocolIE_SingleContainer_1530P0_decode_uper; -per_type_encoder_f ProtocolIE_SingleContainer_1530P0_encode_uper; -per_type_decoder_f ProtocolIE_SingleContainer_1530P0_decode_aper; -per_type_encoder_f ProtocolIE_SingleContainer_1530P0_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1530P1; -asn_struct_free_f ProtocolIE_SingleContainer_1530P1_free; -asn_struct_print_f ProtocolIE_SingleContainer_1530P1_print; -asn_constr_check_f ProtocolIE_SingleContainer_1530P1_constraint; -ber_type_decoder_f ProtocolIE_SingleContainer_1530P1_decode_ber; -der_type_encoder_f ProtocolIE_SingleContainer_1530P1_encode_der; -xer_type_decoder_f ProtocolIE_SingleContainer_1530P1_decode_xer; -xer_type_encoder_f ProtocolIE_SingleContainer_1530P1_encode_xer; -per_type_decoder_f ProtocolIE_SingleContainer_1530P1_decode_uper; -per_type_encoder_f ProtocolIE_SingleContainer_1530P1_encode_uper; -per_type_decoder_f ProtocolIE_SingleContainer_1530P1_decode_aper; -per_type_encoder_f ProtocolIE_SingleContainer_1530P1_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1530P2; -asn_struct_free_f ProtocolIE_SingleContainer_1530P2_free; -asn_struct_print_f ProtocolIE_SingleContainer_1530P2_print; -asn_constr_check_f ProtocolIE_SingleContainer_1530P2_constraint; -ber_type_decoder_f ProtocolIE_SingleContainer_1530P2_decode_ber; -der_type_encoder_f ProtocolIE_SingleContainer_1530P2_encode_der; -xer_type_decoder_f ProtocolIE_SingleContainer_1530P2_decode_xer; -xer_type_encoder_f ProtocolIE_SingleContainer_1530P2_encode_xer; -per_type_decoder_f ProtocolIE_SingleContainer_1530P2_decode_uper; -per_type_encoder_f ProtocolIE_SingleContainer_1530P2_encode_uper; -per_type_decoder_f ProtocolIE_SingleContainer_1530P2_decode_aper; -per_type_encoder_f ProtocolIE_SingleContainer_1530P2_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1530P3; -asn_struct_free_f ProtocolIE_SingleContainer_1530P3_free; -asn_struct_print_f ProtocolIE_SingleContainer_1530P3_print; -asn_constr_check_f ProtocolIE_SingleContainer_1530P3_constraint; -ber_type_decoder_f ProtocolIE_SingleContainer_1530P3_decode_ber; -der_type_encoder_f ProtocolIE_SingleContainer_1530P3_encode_der; -xer_type_decoder_f ProtocolIE_SingleContainer_1530P3_decode_xer; -xer_type_encoder_f ProtocolIE_SingleContainer_1530P3_encode_xer; -per_type_decoder_f ProtocolIE_SingleContainer_1530P3_decode_uper; -per_type_encoder_f ProtocolIE_SingleContainer_1530P3_encode_uper; -per_type_decoder_f ProtocolIE_SingleContainer_1530P3_decode_aper; -per_type_encoder_f ProtocolIE_SingleContainer_1530P3_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1530P4; -asn_struct_free_f ProtocolIE_SingleContainer_1530P4_free; -asn_struct_print_f ProtocolIE_SingleContainer_1530P4_print; -asn_constr_check_f ProtocolIE_SingleContainer_1530P4_constraint; -ber_type_decoder_f ProtocolIE_SingleContainer_1530P4_decode_ber; -der_type_encoder_f ProtocolIE_SingleContainer_1530P4_encode_der; -xer_type_decoder_f ProtocolIE_SingleContainer_1530P4_decode_xer; -xer_type_encoder_f ProtocolIE_SingleContainer_1530P4_encode_xer; -per_type_decoder_f ProtocolIE_SingleContainer_1530P4_decode_uper; -per_type_encoder_f ProtocolIE_SingleContainer_1530P4_encode_uper; -per_type_decoder_f ProtocolIE_SingleContainer_1530P4_decode_aper; -per_type_encoder_f ProtocolIE_SingleContainer_1530P4_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1530P5; -asn_struct_free_f ProtocolIE_SingleContainer_1530P5_free; -asn_struct_print_f ProtocolIE_SingleContainer_1530P5_print; -asn_constr_check_f ProtocolIE_SingleContainer_1530P5_constraint; -ber_type_decoder_f ProtocolIE_SingleContainer_1530P5_decode_ber; -der_type_encoder_f ProtocolIE_SingleContainer_1530P5_encode_der; -xer_type_decoder_f ProtocolIE_SingleContainer_1530P5_decode_xer; -xer_type_encoder_f ProtocolIE_SingleContainer_1530P5_encode_xer; -per_type_decoder_f ProtocolIE_SingleContainer_1530P5_decode_uper; -per_type_encoder_f ProtocolIE_SingleContainer_1530P5_encode_uper; -per_type_decoder_f ProtocolIE_SingleContainer_1530P5_decode_aper; -per_type_encoder_f ProtocolIE_SingleContainer_1530P5_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _ProtocolIE_SingleContainer_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RAN-Container.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/RAN-Container.c deleted file mode 100644 index 373508b..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RAN-Container.c +++ /dev/null @@ -1,127 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "RAN-Container.h" - -static asn_oer_constraints_t asn_OER_type_reportContainer_constr_3 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_type_reportContainer_constr_3 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 2 } /* (0..2,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_reportContainer_3[] = { - { ATF_NOFLAGS, 0, offsetof(struct RAN_Container__reportContainer, choice.oDU_UE), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_DU_Usage_Report_Per_UE, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "oDU-UE" - }, - { ATF_NOFLAGS, 0, offsetof(struct RAN_Container__reportContainer, choice.oCU_CP_UE), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_CU_CP_Usage_Report_Per_UE, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "oCU-CP-UE" - }, - { ATF_NOFLAGS, 0, offsetof(struct RAN_Container__reportContainer, choice.oCU_UP_UE), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_CU_UP_Usage_Report_Per_UE, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "oCU-UP-UE" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_reportContainer_tag2el_3[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* oDU-UE */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* oCU-CP-UE */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* oCU-UP-UE */ -}; -static asn_CHOICE_specifics_t asn_SPC_reportContainer_specs_3 = { - sizeof(struct RAN_Container__reportContainer), - offsetof(struct RAN_Container__reportContainer, _asn_ctx), - offsetof(struct RAN_Container__reportContainer, present), - sizeof(((struct RAN_Container__reportContainer *)0)->present), - asn_MAP_reportContainer_tag2el_3, - 3, /* Count of tags in the map */ - 0, 0, - 3 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_reportContainer_3 = { - "reportContainer", - "reportContainer", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { &asn_OER_type_reportContainer_constr_3, &asn_PER_type_reportContainer_constr_3, CHOICE_constraint }, - asn_MBR_reportContainer_3, - 3, /* Elements count */ - &asn_SPC_reportContainer_specs_3 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_RAN_Container_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RAN_Container, timestamp), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Timestamp, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "timestamp" - }, - { ATF_NOFLAGS, 0, offsetof(struct RAN_Container, reportContainer), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_reportContainer_3, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "reportContainer" - }, -}; -static const ber_tlv_tag_t asn_DEF_RAN_Container_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RAN_Container_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* timestamp */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* reportContainer */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RAN_Container_specs_1 = { - sizeof(struct RAN_Container), - offsetof(struct RAN_Container, _asn_ctx), - asn_MAP_RAN_Container_tag2el_1, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 2, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RAN_Container = { - "RAN-Container", - "RAN-Container", - &asn_OP_SEQUENCE, - asn_DEF_RAN_Container_tags_1, - sizeof(asn_DEF_RAN_Container_tags_1) - /sizeof(asn_DEF_RAN_Container_tags_1[0]), /* 1 */ - asn_DEF_RAN_Container_tags_1, /* Same as above */ - sizeof(asn_DEF_RAN_Container_tags_1) - /sizeof(asn_DEF_RAN_Container_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RAN_Container_1, - 2, /* Elements count */ - &asn_SPC_RAN_Container_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RAN-Container.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/RAN-Container.h deleted file mode 100644 index 8184460..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RAN-Container.h +++ /dev/null @@ -1,73 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _RAN_Container_H_ -#define _RAN_Container_H_ - - -#include - -/* Including external dependencies */ -#include "Timestamp.h" -#include "DU-Usage-Report-Per-UE.h" -#include "CU-CP-Usage-Report-Per-UE.h" -#include "CU-UP-Usage-Report-Per-UE.h" -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum RAN_Container__reportContainer_PR { - RAN_Container__reportContainer_PR_NOTHING, /* No components present */ - RAN_Container__reportContainer_PR_oDU_UE, - RAN_Container__reportContainer_PR_oCU_CP_UE, - RAN_Container__reportContainer_PR_oCU_UP_UE - /* Extensions may appear below */ - -} RAN_Container__reportContainer_PR; - -/* RAN-Container */ -typedef struct RAN_Container { - Timestamp_t timestamp; - struct RAN_Container__reportContainer { - RAN_Container__reportContainer_PR present; - union RAN_Container__reportContainer_u { - DU_Usage_Report_Per_UE_t oDU_UE; - CU_CP_Usage_Report_Per_UE_t oCU_CP_UE; - CU_UP_Usage_Report_Per_UE_t oCU_UP_UE; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } reportContainer; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RAN_Container_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RAN_Container; -extern asn_SEQUENCE_specifics_t asn_SPC_RAN_Container_specs_1; -extern asn_TYPE_member_t asn_MBR_RAN_Container_1[2]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RAN_Container_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RANcallProcess-ID-string.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/RANcallProcess-ID-string.c deleted file mode 100644 index 4cd1b70..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RANcallProcess-ID-string.c +++ /dev/null @@ -1,109 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "RANcallProcess-ID-string.h" - -static const int permitted_alphabet_table_1[256] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */ - 1, 0, 0, 0, 0, 0, 0, 2, 3, 4, 0, 5, 6, 7, 8, 9, /* . '() +,-./ */ -10,11,12,13,14,15,16,17,18,19,20, 0, 0,21, 0,22, /* 0123456789: = ? */ - 0,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37, /* ABCDEFGHIJKLMNO */ -38,39,40,41,42,43,44,45,46,47,48, 0, 0, 0, 0, 0, /* PQRSTUVWXYZ */ - 0,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63, /* abcdefghijklmno */ -64,65,66,67,68,69,70,71,72,73,74, 0, 0, 0, 0, 0, /* pqrstuvwxyz */ -}; -static const int permitted_alphabet_code2value_1[74] = { -32,39,40,41,43,44,45,46,47,48,49,50,51,52,53,54, -55,56,57,58,61,63,65,66,67,68,69,70,71,72,73,74, -75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90, -97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112, -113,114,115,116,117,118,119,120,121,122,}; - - -static int check_permitted_alphabet_1(const void *sptr) { - const int *table = permitted_alphabet_table_1; - /* The underlying type is PrintableString */ - const PrintableString_t *st = (const PrintableString_t *)sptr; - const uint8_t *ch = st->buf; - const uint8_t *end = ch + st->size; - - for(; ch < end; ch++) { - uint8_t cv = *ch; - if(!table[cv]) return -1; - } - return 0; -} - -int -RANcallProcess_ID_string_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const PrintableString_t *st = (const PrintableString_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - size = st->size; - - if((size >= 1 && size <= 150) - && !check_permitted_alphabet_1(st)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int asn_PER_MAP_RANcallProcess_ID_string_1_v2c(unsigned int value) { - if(value >= sizeof(permitted_alphabet_table_1)/sizeof(permitted_alphabet_table_1[0])) - return -1; - return permitted_alphabet_table_1[value] - 1; -} -static int asn_PER_MAP_RANcallProcess_ID_string_1_c2v(unsigned int code) { - if(code >= sizeof(permitted_alphabet_code2value_1)/sizeof(permitted_alphabet_code2value_1[0])) - return -1; - return permitted_alphabet_code2value_1[code]; -} -/* - * This type is implemented using PrintableString, - * so here we adjust the DEF accordingly. - */ -static asn_oer_constraints_t asn_OER_type_RANcallProcess_ID_string_constr_1 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(0..MAX)) */}; -static asn_per_constraints_t asn_PER_type_RANcallProcess_ID_string_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED, 7, 7, 32, 122 } /* (32..122) */, - { APC_CONSTRAINED | APC_EXTENSIBLE, 8, 8, 1, 150 } /* (SIZE(1..150,...)) */, - asn_PER_MAP_RANcallProcess_ID_string_1_v2c, /* Value to PER code map */ - asn_PER_MAP_RANcallProcess_ID_string_1_c2v /* PER code to value map */ -}; -static const ber_tlv_tag_t asn_DEF_RANcallProcess_ID_string_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (19 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RANcallProcess_ID_string = { - "RANcallProcess-ID-string", - "RANcallProcess-ID-string", - &asn_OP_PrintableString, - asn_DEF_RANcallProcess_ID_string_tags_1, - sizeof(asn_DEF_RANcallProcess_ID_string_tags_1) - /sizeof(asn_DEF_RANcallProcess_ID_string_tags_1[0]), /* 1 */ - asn_DEF_RANcallProcess_ID_string_tags_1, /* Same as above */ - sizeof(asn_DEF_RANcallProcess_ID_string_tags_1) - /sizeof(asn_DEF_RANcallProcess_ID_string_tags_1[0]), /* 1 */ - { &asn_OER_type_RANcallProcess_ID_string_constr_1, &asn_PER_type_RANcallProcess_ID_string_constr_1, RANcallProcess_ID_string_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RANcallProcess-ID-string.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/RANcallProcess-ID-string.h deleted file mode 100644 index 087cdc0..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RANcallProcess-ID-string.h +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _RANcallProcess_ID_string_H_ -#define _RANcallProcess_ID_string_H_ - - -#include - -/* Including external dependencies */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* RANcallProcess-ID-string */ -typedef PrintableString_t RANcallProcess_ID_string_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RANcallProcess_ID_string; -asn_struct_free_f RANcallProcess_ID_string_free; -asn_struct_print_f RANcallProcess_ID_string_print; -asn_constr_check_f RANcallProcess_ID_string_constraint; -ber_type_decoder_f RANcallProcess_ID_string_decode_ber; -der_type_encoder_f RANcallProcess_ID_string_encode_der; -xer_type_decoder_f RANcallProcess_ID_string_decode_xer; -xer_type_encoder_f RANcallProcess_ID_string_encode_xer; -oer_type_decoder_f RANcallProcess_ID_string_decode_oer; -oer_type_encoder_f RANcallProcess_ID_string_encode_oer; -per_type_decoder_f RANcallProcess_ID_string_decode_uper; -per_type_encoder_f RANcallProcess_ID_string_encode_uper; -per_type_decoder_f RANcallProcess_ID_string_decode_aper; -per_type_encoder_f RANcallProcess_ID_string_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RANcallProcess_ID_string_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RANfunction-Item.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/RANfunction-Item.c deleted file mode 100644 index f1554d0..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RANfunction-Item.c +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RANfunction-Item.h" - -static asn_TYPE_member_t asn_MBR_RANfunction_Item_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RANfunction_Item, ranFunctionID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RANfunctionID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ranFunctionID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RANfunction_Item, ranFunctionDefinition), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RANfunctionDefinition, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ranFunctionDefinition" - }, - { ATF_NOFLAGS, 0, offsetof(struct RANfunction_Item, ranFunctionRevision), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RANfunctionRevision, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ranFunctionRevision" - }, -}; -static const ber_tlv_tag_t asn_DEF_RANfunction_Item_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RANfunction_Item_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ranFunctionID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ranFunctionDefinition */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* ranFunctionRevision */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_RANfunction_Item_specs_1 = { - sizeof(struct RANfunction_Item), - offsetof(struct RANfunction_Item, _asn_ctx), - asn_MAP_RANfunction_Item_tag2el_1, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RANfunction_Item = { - "RANfunction-Item", - "RANfunction-Item", - &asn_OP_SEQUENCE, - asn_DEF_RANfunction_Item_tags_1, - sizeof(asn_DEF_RANfunction_Item_tags_1) - /sizeof(asn_DEF_RANfunction_Item_tags_1[0]), /* 1 */ - asn_DEF_RANfunction_Item_tags_1, /* Same as above */ - sizeof(asn_DEF_RANfunction_Item_tags_1) - /sizeof(asn_DEF_RANfunction_Item_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RANfunction_Item_1, - 3, /* Elements count */ - &asn_SPC_RANfunction_Item_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RANfunction-Item.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/RANfunction-Item.h deleted file mode 100644 index e7fd073..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RANfunction-Item.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RANfunction_Item_H_ -#define _RANfunction_Item_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "RANfunctionID.h" -#include "RANfunctionDefinition.h" -#include "RANfunctionRevision.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RANfunction-Item */ -typedef struct RANfunction_Item { - RANfunctionID_t ranFunctionID; - RANfunctionDefinition_t ranFunctionDefinition; - RANfunctionRevision_t ranFunctionRevision; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RANfunction_Item_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RANfunction_Item; - -#ifdef __cplusplus -} -#endif - -#endif /* _RANfunction_Item_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RANfunction-Name.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/RANfunction-Name.c deleted file mode 100644 index 72a90a9..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RANfunction-Name.c +++ /dev/null @@ -1,316 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "RANfunction-Name.h" - -static const int permitted_alphabet_table_2[256] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */ - 1, 0, 0, 0, 0, 0, 0, 2, 3, 4, 0, 5, 6, 7, 8, 9, /* . '() +,-./ */ -10,11,12,13,14,15,16,17,18,19,20, 0, 0,21, 0,22, /* 0123456789: = ? */ - 0,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37, /* ABCDEFGHIJKLMNO */ -38,39,40,41,42,43,44,45,46,47,48, 0, 0, 0, 0, 0, /* PQRSTUVWXYZ */ - 0,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63, /* abcdefghijklmno */ -64,65,66,67,68,69,70,71,72,73,74, 0, 0, 0, 0, 0, /* pqrstuvwxyz */ -}; -static const int permitted_alphabet_code2value_2[74] = { -32,39,40,41,43,44,45,46,47,48,49,50,51,52,53,54, -55,56,57,58,61,63,65,66,67,68,69,70,71,72,73,74, -75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90, -97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112, -113,114,115,116,117,118,119,120,121,122,}; - - -static int check_permitted_alphabet_2(const void *sptr) { - const int *table = permitted_alphabet_table_2; - /* The underlying type is PrintableString */ - const PrintableString_t *st = (const PrintableString_t *)sptr; - const uint8_t *ch = st->buf; - const uint8_t *end = ch + st->size; - - for(; ch < end; ch++) { - uint8_t cv = *ch; - if(!table[cv]) return -1; - } - return 0; -} - -static const int permitted_alphabet_table_3[256] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */ - 1, 0, 0, 0, 0, 0, 0, 2, 3, 4, 0, 5, 6, 7, 8, 9, /* . '() +,-./ */ -10,11,12,13,14,15,16,17,18,19,20, 0, 0,21, 0,22, /* 0123456789: = ? */ - 0,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37, /* ABCDEFGHIJKLMNO */ -38,39,40,41,42,43,44,45,46,47,48, 0, 0, 0, 0, 0, /* PQRSTUVWXYZ */ - 0,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63, /* abcdefghijklmno */ -64,65,66,67,68,69,70,71,72,73,74, 0, 0, 0, 0, 0, /* pqrstuvwxyz */ -}; -static const int permitted_alphabet_code2value_3[74] = { -32,39,40,41,43,44,45,46,47,48,49,50,51,52,53,54, -55,56,57,58,61,63,65,66,67,68,69,70,71,72,73,74, -75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90, -97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112, -113,114,115,116,117,118,119,120,121,122,}; - - -static int check_permitted_alphabet_3(const void *sptr) { - const int *table = permitted_alphabet_table_3; - /* The underlying type is PrintableString */ - const PrintableString_t *st = (const PrintableString_t *)sptr; - const uint8_t *ch = st->buf; - const uint8_t *end = ch + st->size; - - for(; ch < end; ch++) { - uint8_t cv = *ch; - if(!table[cv]) return -1; - } - return 0; -} - -static const int permitted_alphabet_table_4[256] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */ - 1, 0, 0, 0, 0, 0, 0, 2, 3, 4, 0, 5, 6, 7, 8, 9, /* . '() +,-./ */ -10,11,12,13,14,15,16,17,18,19,20, 0, 0,21, 0,22, /* 0123456789: = ? */ - 0,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37, /* ABCDEFGHIJKLMNO */ -38,39,40,41,42,43,44,45,46,47,48, 0, 0, 0, 0, 0, /* PQRSTUVWXYZ */ - 0,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63, /* abcdefghijklmno */ -64,65,66,67,68,69,70,71,72,73,74, 0, 0, 0, 0, 0, /* pqrstuvwxyz */ -}; -static const int permitted_alphabet_code2value_4[74] = { -32,39,40,41,43,44,45,46,47,48,49,50,51,52,53,54, -55,56,57,58,61,63,65,66,67,68,69,70,71,72,73,74, -75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90, -97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112, -113,114,115,116,117,118,119,120,121,122,}; - - -static int check_permitted_alphabet_4(const void *sptr) { - const int *table = permitted_alphabet_table_4; - /* The underlying type is PrintableString */ - const PrintableString_t *st = (const PrintableString_t *)sptr; - const uint8_t *ch = st->buf; - const uint8_t *end = ch + st->size; - - for(; ch < end; ch++) { - uint8_t cv = *ch; - if(!table[cv]) return -1; - } - return 0; -} - -static int -memb_ranFunction_ShortName_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const PrintableString_t *st = (const PrintableString_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - size = st->size; - - if((size >= 1 && size <= 150) - && !check_permitted_alphabet_2(st)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int asn_PER_MAP_ranFunction_ShortName_2_v2c(unsigned int value) { - if(value >= sizeof(permitted_alphabet_table_2)/sizeof(permitted_alphabet_table_2[0])) - return -1; - return permitted_alphabet_table_2[value] - 1; -} -static int asn_PER_MAP_ranFunction_ShortName_2_c2v(unsigned int code) { - if(code >= sizeof(permitted_alphabet_code2value_2)/sizeof(permitted_alphabet_code2value_2[0])) - return -1; - return permitted_alphabet_code2value_2[code]; -} -static int -memb_ranFunction_E2SM_OID_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const PrintableString_t *st = (const PrintableString_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - size = st->size; - - if((size >= 1 && size <= 1000) - && !check_permitted_alphabet_3(st)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int asn_PER_MAP_ranFunction_E2SM_OID_3_v2c(unsigned int value) { - if(value >= sizeof(permitted_alphabet_table_3)/sizeof(permitted_alphabet_table_3[0])) - return -1; - return permitted_alphabet_table_3[value] - 1; -} -static int asn_PER_MAP_ranFunction_E2SM_OID_3_c2v(unsigned int code) { - if(code >= sizeof(permitted_alphabet_code2value_3)/sizeof(permitted_alphabet_code2value_3[0])) - return -1; - return permitted_alphabet_code2value_3[code]; -} -static int -memb_ranFunction_Description_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const PrintableString_t *st = (const PrintableString_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - size = st->size; - - if((size >= 1 && size <= 150) - && !check_permitted_alphabet_4(st)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int asn_PER_MAP_ranFunction_Description_4_v2c(unsigned int value) { - if(value >= sizeof(permitted_alphabet_table_4)/sizeof(permitted_alphabet_table_4[0])) - return -1; - return permitted_alphabet_table_4[value] - 1; -} -static int asn_PER_MAP_ranFunction_Description_4_c2v(unsigned int code) { - if(code >= sizeof(permitted_alphabet_code2value_4)/sizeof(permitted_alphabet_code2value_4[0])) - return -1; - return permitted_alphabet_code2value_4[code]; -} -static asn_oer_constraints_t asn_OER_memb_ranFunction_ShortName_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(0..MAX)) */}; -static asn_per_constraints_t asn_PER_memb_ranFunction_ShortName_constr_2 CC_NOTUSED = { - { APC_CONSTRAINED, 7, 7, 32, 122 } /* (32..122) */, - { APC_CONSTRAINED | APC_EXTENSIBLE, 8, 8, 1, 150 } /* (SIZE(1..150,...)) */, - asn_PER_MAP_ranFunction_ShortName_2_v2c, /* Value to PER code map */ - asn_PER_MAP_ranFunction_ShortName_2_c2v /* PER code to value map */ -}; -static asn_oer_constraints_t asn_OER_memb_ranFunction_E2SM_OID_constr_3 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(0..MAX)) */}; -static asn_per_constraints_t asn_PER_memb_ranFunction_E2SM_OID_constr_3 CC_NOTUSED = { - { APC_CONSTRAINED, 7, 7, 32, 122 } /* (32..122) */, - { APC_CONSTRAINED | APC_EXTENSIBLE, 10, 10, 1, 1000 } /* (SIZE(1..1000,...)) */, - asn_PER_MAP_ranFunction_E2SM_OID_3_v2c, /* Value to PER code map */ - asn_PER_MAP_ranFunction_E2SM_OID_3_c2v /* PER code to value map */ -}; -static asn_oer_constraints_t asn_OER_memb_ranFunction_Description_constr_4 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(0..MAX)) */}; -static asn_per_constraints_t asn_PER_memb_ranFunction_Description_constr_4 CC_NOTUSED = { - { APC_CONSTRAINED, 7, 7, 32, 122 } /* (32..122) */, - { APC_CONSTRAINED | APC_EXTENSIBLE, 8, 8, 1, 150 } /* (SIZE(1..150,...)) */, - asn_PER_MAP_ranFunction_Description_4_v2c, /* Value to PER code map */ - asn_PER_MAP_ranFunction_Description_4_c2v /* PER code to value map */ -}; -asn_TYPE_member_t asn_MBR_RANfunction_Name_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RANfunction_Name, ranFunction_ShortName), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_PrintableString, - 0, - { &asn_OER_memb_ranFunction_ShortName_constr_2, &asn_PER_memb_ranFunction_ShortName_constr_2, memb_ranFunction_ShortName_constraint_1 }, - 0, 0, /* No default value */ - "ranFunction-ShortName" - }, - { ATF_NOFLAGS, 0, offsetof(struct RANfunction_Name, ranFunction_E2SM_OID), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_PrintableString, - 0, - { &asn_OER_memb_ranFunction_E2SM_OID_constr_3, &asn_PER_memb_ranFunction_E2SM_OID_constr_3, memb_ranFunction_E2SM_OID_constraint_1 }, - 0, 0, /* No default value */ - "ranFunction-E2SM-OID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RANfunction_Name, ranFunction_Description), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_PrintableString, - 0, - { &asn_OER_memb_ranFunction_Description_constr_4, &asn_PER_memb_ranFunction_Description_constr_4, memb_ranFunction_Description_constraint_1 }, - 0, 0, /* No default value */ - "ranFunction-Description" - }, - { ATF_POINTER, 1, offsetof(struct RANfunction_Name, ranFunction_Instance), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ranFunction-Instance" - }, -}; -static const int asn_MAP_RANfunction_Name_oms_1[] = { 3 }; -static const ber_tlv_tag_t asn_DEF_RANfunction_Name_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RANfunction_Name_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ranFunction-ShortName */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ranFunction-E2SM-OID */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* ranFunction-Description */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* ranFunction-Instance */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RANfunction_Name_specs_1 = { - sizeof(struct RANfunction_Name), - offsetof(struct RANfunction_Name, _asn_ctx), - asn_MAP_RANfunction_Name_tag2el_1, - 4, /* Count of tags in the map */ - asn_MAP_RANfunction_Name_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 4, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RANfunction_Name = { - "RANfunction-Name", - "RANfunction-Name", - &asn_OP_SEQUENCE, - asn_DEF_RANfunction_Name_tags_1, - sizeof(asn_DEF_RANfunction_Name_tags_1) - /sizeof(asn_DEF_RANfunction_Name_tags_1[0]), /* 1 */ - asn_DEF_RANfunction_Name_tags_1, /* Same as above */ - sizeof(asn_DEF_RANfunction_Name_tags_1) - /sizeof(asn_DEF_RANfunction_Name_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RANfunction_Name_1, - 4, /* Elements count */ - &asn_SPC_RANfunction_Name_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RANfunction-Name.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/RANfunction-Name.h deleted file mode 100644 index 0fe182b..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RANfunction-Name.h +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _RANfunction_Name_H_ -#define _RANfunction_Name_H_ - - -#include - -/* Including external dependencies */ -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* RANfunction-Name */ -typedef struct RANfunction_Name { - PrintableString_t ranFunction_ShortName; - PrintableString_t ranFunction_E2SM_OID; - PrintableString_t ranFunction_Description; - long *ranFunction_Instance; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RANfunction_Name_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RANfunction_Name; -extern asn_SEQUENCE_specifics_t asn_SPC_RANfunction_Name_specs_1; -extern asn_TYPE_member_t asn_MBR_RANfunction_Name_1[4]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RANfunction_Name_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RANfunctionDefinition.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/RANfunctionDefinition.c deleted file mode 100644 index 3d8697d..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RANfunctionDefinition.c +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RANfunctionDefinition.h" - -/* - * This type is implemented using OCTET_STRING, - * so here we adjust the DEF accordingly. - */ -static const ber_tlv_tag_t asn_DEF_RANfunctionDefinition_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RANfunctionDefinition = { - "RANfunctionDefinition", - "RANfunctionDefinition", - &asn_OP_OCTET_STRING, - asn_DEF_RANfunctionDefinition_tags_1, - sizeof(asn_DEF_RANfunctionDefinition_tags_1) - /sizeof(asn_DEF_RANfunctionDefinition_tags_1[0]), /* 1 */ - asn_DEF_RANfunctionDefinition_tags_1, /* Same as above */ - sizeof(asn_DEF_RANfunctionDefinition_tags_1) - /sizeof(asn_DEF_RANfunctionDefinition_tags_1[0]), /* 1 */ - { 0, 0, OCTET_STRING_constraint }, - 0, 0, /* No members */ - &asn_SPC_OCTET_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RANfunctionDefinition.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/RANfunctionDefinition.h deleted file mode 100644 index 4e54dde..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RANfunctionDefinition.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RANfunctionDefinition_H_ -#define _RANfunctionDefinition_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "OCTET_STRING.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RANfunctionDefinition */ -typedef OCTET_STRING_t RANfunctionDefinition_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RANfunctionDefinition; -asn_struct_free_f RANfunctionDefinition_free; -asn_struct_print_f RANfunctionDefinition_print; -asn_constr_check_f RANfunctionDefinition_constraint; -ber_type_decoder_f RANfunctionDefinition_decode_ber; -der_type_encoder_f RANfunctionDefinition_encode_der; -xer_type_decoder_f RANfunctionDefinition_decode_xer; -xer_type_encoder_f RANfunctionDefinition_encode_xer; -per_type_decoder_f RANfunctionDefinition_decode_uper; -per_type_encoder_f RANfunctionDefinition_encode_uper; -per_type_decoder_f RANfunctionDefinition_decode_aper; -per_type_encoder_f RANfunctionDefinition_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RANfunctionDefinition_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RANfunctionID-Item.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/RANfunctionID-Item.c deleted file mode 100644 index 7661a88..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RANfunctionID-Item.c +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RANfunctionID-Item.h" - -static asn_TYPE_member_t asn_MBR_RANfunctionID_Item_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RANfunctionID_Item, ranFunctionID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RANfunctionID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ranFunctionID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RANfunctionID_Item, ranFunctionRevision), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RANfunctionRevision, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ranFunctionRevision" - }, -}; -static const ber_tlv_tag_t asn_DEF_RANfunctionID_Item_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RANfunctionID_Item_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ranFunctionID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ranFunctionRevision */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_RANfunctionID_Item_specs_1 = { - sizeof(struct RANfunctionID_Item), - offsetof(struct RANfunctionID_Item, _asn_ctx), - asn_MAP_RANfunctionID_Item_tag2el_1, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 2, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RANfunctionID_Item = { - "RANfunctionID-Item", - "RANfunctionID-Item", - &asn_OP_SEQUENCE, - asn_DEF_RANfunctionID_Item_tags_1, - sizeof(asn_DEF_RANfunctionID_Item_tags_1) - /sizeof(asn_DEF_RANfunctionID_Item_tags_1[0]), /* 1 */ - asn_DEF_RANfunctionID_Item_tags_1, /* Same as above */ - sizeof(asn_DEF_RANfunctionID_Item_tags_1) - /sizeof(asn_DEF_RANfunctionID_Item_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RANfunctionID_Item_1, - 2, /* Elements count */ - &asn_SPC_RANfunctionID_Item_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RANfunctionID-Item.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/RANfunctionID-Item.h deleted file mode 100644 index 9b3be69..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RANfunctionID-Item.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RANfunctionID_Item_H_ -#define _RANfunctionID_Item_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "RANfunctionID.h" -#include "RANfunctionRevision.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RANfunctionID-Item */ -typedef struct RANfunctionID_Item { - RANfunctionID_t ranFunctionID; - RANfunctionRevision_t ranFunctionRevision; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RANfunctionID_Item_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RANfunctionID_Item; - -#ifdef __cplusplus -} -#endif - -#endif /* _RANfunctionID_Item_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RANfunctionID.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/RANfunctionID.c deleted file mode 100644 index fc95705..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RANfunctionID.c +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RANfunctionID.h" - -int -RANfunctionID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 4095)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using NativeInteger, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_RANfunctionID_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED, 12, 12, 0, 4095 } /* (0..4095) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_RANfunctionID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RANfunctionID = { - "RANfunctionID", - "RANfunctionID", - &asn_OP_NativeInteger, - asn_DEF_RANfunctionID_tags_1, - sizeof(asn_DEF_RANfunctionID_tags_1) - /sizeof(asn_DEF_RANfunctionID_tags_1[0]), /* 1 */ - asn_DEF_RANfunctionID_tags_1, /* Same as above */ - sizeof(asn_DEF_RANfunctionID_tags_1) - /sizeof(asn_DEF_RANfunctionID_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_RANfunctionID_constr_1, RANfunctionID_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RANfunctionID.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/RANfunctionID.h deleted file mode 100644 index f0a61a0..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RANfunctionID.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RANfunctionID_H_ -#define _RANfunctionID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeInteger.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RANfunctionID */ -typedef long RANfunctionID_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_RANfunctionID_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_RANfunctionID; -asn_struct_free_f RANfunctionID_free; -asn_struct_print_f RANfunctionID_print; -asn_constr_check_f RANfunctionID_constraint; -ber_type_decoder_f RANfunctionID_decode_ber; -der_type_encoder_f RANfunctionID_encode_der; -xer_type_decoder_f RANfunctionID_decode_xer; -xer_type_encoder_f RANfunctionID_encode_xer; -per_type_decoder_f RANfunctionID_decode_uper; -per_type_encoder_f RANfunctionID_encode_uper; -per_type_decoder_f RANfunctionID_decode_aper; -per_type_encoder_f RANfunctionID_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RANfunctionID_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RANfunctionIDcause-Item.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/RANfunctionIDcause-Item.c deleted file mode 100644 index 985330a..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RANfunctionIDcause-Item.c +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RANfunctionIDcause-Item.h" - -static asn_TYPE_member_t asn_MBR_RANfunctionIDcause_Item_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RANfunctionIDcause_Item, ranFunctionID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RANfunctionID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ranFunctionID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RANfunctionIDcause_Item, cause), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_Cause, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "cause" - }, -}; -static const ber_tlv_tag_t asn_DEF_RANfunctionIDcause_Item_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RANfunctionIDcause_Item_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ranFunctionID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* cause */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_RANfunctionIDcause_Item_specs_1 = { - sizeof(struct RANfunctionIDcause_Item), - offsetof(struct RANfunctionIDcause_Item, _asn_ctx), - asn_MAP_RANfunctionIDcause_Item_tag2el_1, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 2, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RANfunctionIDcause_Item = { - "RANfunctionIDcause-Item", - "RANfunctionIDcause-Item", - &asn_OP_SEQUENCE, - asn_DEF_RANfunctionIDcause_Item_tags_1, - sizeof(asn_DEF_RANfunctionIDcause_Item_tags_1) - /sizeof(asn_DEF_RANfunctionIDcause_Item_tags_1[0]), /* 1 */ - asn_DEF_RANfunctionIDcause_Item_tags_1, /* Same as above */ - sizeof(asn_DEF_RANfunctionIDcause_Item_tags_1) - /sizeof(asn_DEF_RANfunctionIDcause_Item_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RANfunctionIDcause_Item_1, - 2, /* Elements count */ - &asn_SPC_RANfunctionIDcause_Item_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RANfunctionIDcause-Item.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/RANfunctionIDcause-Item.h deleted file mode 100644 index 033ed53..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RANfunctionIDcause-Item.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RANfunctionIDcause_Item_H_ -#define _RANfunctionIDcause_Item_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "RANfunctionID.h" -#include "Cause.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RANfunctionIDcause-Item */ -typedef struct RANfunctionIDcause_Item { - RANfunctionID_t ranFunctionID; - Cause_t cause; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RANfunctionIDcause_Item_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RANfunctionIDcause_Item; - -#ifdef __cplusplus -} -#endif - -#endif /* _RANfunctionIDcause_Item_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RANfunctionRevision.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/RANfunctionRevision.c deleted file mode 100644 index a0b271b..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RANfunctionRevision.c +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RANfunctionRevision.h" - -int -RANfunctionRevision_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 4095)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using NativeInteger, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_RANfunctionRevision_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED, 12, 12, 0, 4095 } /* (0..4095) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_RANfunctionRevision_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RANfunctionRevision = { - "RANfunctionRevision", - "RANfunctionRevision", - &asn_OP_NativeInteger, - asn_DEF_RANfunctionRevision_tags_1, - sizeof(asn_DEF_RANfunctionRevision_tags_1) - /sizeof(asn_DEF_RANfunctionRevision_tags_1[0]), /* 1 */ - asn_DEF_RANfunctionRevision_tags_1, /* Same as above */ - sizeof(asn_DEF_RANfunctionRevision_tags_1) - /sizeof(asn_DEF_RANfunctionRevision_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_RANfunctionRevision_constr_1, RANfunctionRevision_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RANfunctionRevision.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/RANfunctionRevision.h deleted file mode 100644 index 58ec9ba..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RANfunctionRevision.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RANfunctionRevision_H_ -#define _RANfunctionRevision_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeInteger.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RANfunctionRevision */ -typedef long RANfunctionRevision_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_RANfunctionRevision_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_RANfunctionRevision; -asn_struct_free_f RANfunctionRevision_free; -asn_struct_print_f RANfunctionRevision_print; -asn_constr_check_f RANfunctionRevision_constraint; -ber_type_decoder_f RANfunctionRevision_decode_ber; -der_type_encoder_f RANfunctionRevision_encode_der; -xer_type_decoder_f RANfunctionRevision_decode_xer; -xer_type_encoder_f RANfunctionRevision_encode_xer; -per_type_decoder_f RANfunctionRevision_decode_uper; -per_type_encoder_f RANfunctionRevision_encode_uper; -per_type_decoder_f RANfunctionRevision_decode_aper; -per_type_encoder_f RANfunctionRevision_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RANfunctionRevision_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RANfunctions-List.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/RANfunctions-List.c deleted file mode 100644 index f55d0a1..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RANfunctions-List.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RANfunctions-List.h" - -#include "ProtocolIE-SingleContainer.h" -static asn_per_constraints_t asn_PER_type_RANfunctions_List_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 9, 9, 0, 256 } /* (SIZE(0..256)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_RANfunctions_List_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ProtocolIE_SingleContainer_1530P3, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_RANfunctions_List_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_RANfunctions_List_specs_1 = { - sizeof(struct RANfunctions_List), - offsetof(struct RANfunctions_List, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_RANfunctions_List = { - "RANfunctions-List", - "RANfunctions-List", - &asn_OP_SEQUENCE_OF, - asn_DEF_RANfunctions_List_tags_1, - sizeof(asn_DEF_RANfunctions_List_tags_1) - /sizeof(asn_DEF_RANfunctions_List_tags_1[0]), /* 1 */ - asn_DEF_RANfunctions_List_tags_1, /* Same as above */ - sizeof(asn_DEF_RANfunctions_List_tags_1) - /sizeof(asn_DEF_RANfunctions_List_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_RANfunctions_List_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_RANfunctions_List_1, - 1, /* Single element */ - &asn_SPC_RANfunctions_List_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RANfunctions-List.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/RANfunctions-List.h deleted file mode 100644 index 9e45736..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RANfunctions-List.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RANfunctions_List_H_ -#define _RANfunctions_List_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolIE_SingleContainer; - -/* RANfunctions-List */ -typedef struct RANfunctions_List { - A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RANfunctions_List_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RANfunctions_List; - -#ifdef __cplusplus -} -#endif - -#endif /* _RANfunctions_List_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RANfunctionsID-List.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/RANfunctionsID-List.c deleted file mode 100644 index c52b90c..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RANfunctionsID-List.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RANfunctionsID-List.h" - -#include "ProtocolIE-SingleContainer.h" -static asn_per_constraints_t asn_PER_type_RANfunctionsID_List_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 9, 9, 0, 256 } /* (SIZE(0..256)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_RANfunctionsID_List_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ProtocolIE_SingleContainer_1530P4, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_RANfunctionsID_List_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_RANfunctionsID_List_specs_1 = { - sizeof(struct RANfunctionsID_List), - offsetof(struct RANfunctionsID_List, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_RANfunctionsID_List = { - "RANfunctionsID-List", - "RANfunctionsID-List", - &asn_OP_SEQUENCE_OF, - asn_DEF_RANfunctionsID_List_tags_1, - sizeof(asn_DEF_RANfunctionsID_List_tags_1) - /sizeof(asn_DEF_RANfunctionsID_List_tags_1[0]), /* 1 */ - asn_DEF_RANfunctionsID_List_tags_1, /* Same as above */ - sizeof(asn_DEF_RANfunctionsID_List_tags_1) - /sizeof(asn_DEF_RANfunctionsID_List_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_RANfunctionsID_List_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_RANfunctionsID_List_1, - 1, /* Single element */ - &asn_SPC_RANfunctionsID_List_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RANfunctionsID-List.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/RANfunctionsID-List.h deleted file mode 100644 index b8bd23c..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RANfunctionsID-List.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RANfunctionsID_List_H_ -#define _RANfunctionsID_List_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolIE_SingleContainer; - -/* RANfunctionsID-List */ -typedef struct RANfunctionsID_List { - A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RANfunctionsID_List_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RANfunctionsID_List; - -#ifdef __cplusplus -} -#endif - -#endif /* _RANfunctionsID_List_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RANfunctionsIDcause-List.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/RANfunctionsIDcause-List.c deleted file mode 100644 index fb5c08d..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RANfunctionsIDcause-List.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RANfunctionsIDcause-List.h" - -#include "ProtocolIE-SingleContainer.h" -static asn_per_constraints_t asn_PER_type_RANfunctionsIDcause_List_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 9, 9, 0, 256 } /* (SIZE(0..256)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_RANfunctionsIDcause_List_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ProtocolIE_SingleContainer_1530P5, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_RANfunctionsIDcause_List_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_RANfunctionsIDcause_List_specs_1 = { - sizeof(struct RANfunctionsIDcause_List), - offsetof(struct RANfunctionsIDcause_List, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_RANfunctionsIDcause_List = { - "RANfunctionsIDcause-List", - "RANfunctionsIDcause-List", - &asn_OP_SEQUENCE_OF, - asn_DEF_RANfunctionsIDcause_List_tags_1, - sizeof(asn_DEF_RANfunctionsIDcause_List_tags_1) - /sizeof(asn_DEF_RANfunctionsIDcause_List_tags_1[0]), /* 1 */ - asn_DEF_RANfunctionsIDcause_List_tags_1, /* Same as above */ - sizeof(asn_DEF_RANfunctionsIDcause_List_tags_1) - /sizeof(asn_DEF_RANfunctionsIDcause_List_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_RANfunctionsIDcause_List_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_RANfunctionsIDcause_List_1, - 1, /* Single element */ - &asn_SPC_RANfunctionsIDcause_List_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RANfunctionsIDcause-List.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/RANfunctionsIDcause-List.h deleted file mode 100644 index 386c289..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RANfunctionsIDcause-List.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RANfunctionsIDcause_List_H_ -#define _RANfunctionsIDcause_List_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolIE_SingleContainer; - -/* RANfunctionsIDcause-List */ -typedef struct RANfunctionsIDcause_List { - A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RANfunctionsIDcause_List_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RANfunctionsIDcause_List; - -#ifdef __cplusplus -} -#endif - -#endif /* _RANfunctionsIDcause_List_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RIC-EventTriggerStyle-List.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/RIC-EventTriggerStyle-List.c deleted file mode 100644 index 246322a..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RIC-EventTriggerStyle-List.c +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "RIC-EventTriggerStyle-List.h" - -asn_TYPE_member_t asn_MBR_RIC_EventTriggerStyle_List_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RIC_EventTriggerStyle_List, ric_EventTriggerStyle_Type), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RIC_Style_Type, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ric-EventTriggerStyle-Type" - }, - { ATF_NOFLAGS, 0, offsetof(struct RIC_EventTriggerStyle_List, ric_EventTriggerStyle_Name), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RIC_Style_Name, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ric-EventTriggerStyle-Name" - }, - { ATF_NOFLAGS, 0, offsetof(struct RIC_EventTriggerStyle_List, ric_EventTriggerFormat_Type), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RIC_Format_Type, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ric-EventTriggerFormat-Type" - }, -}; -static const ber_tlv_tag_t asn_DEF_RIC_EventTriggerStyle_List_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RIC_EventTriggerStyle_List_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ric-EventTriggerStyle-Type */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ric-EventTriggerStyle-Name */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* ric-EventTriggerFormat-Type */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RIC_EventTriggerStyle_List_specs_1 = { - sizeof(struct RIC_EventTriggerStyle_List), - offsetof(struct RIC_EventTriggerStyle_List, _asn_ctx), - asn_MAP_RIC_EventTriggerStyle_List_tag2el_1, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RIC_EventTriggerStyle_List = { - "RIC-EventTriggerStyle-List", - "RIC-EventTriggerStyle-List", - &asn_OP_SEQUENCE, - asn_DEF_RIC_EventTriggerStyle_List_tags_1, - sizeof(asn_DEF_RIC_EventTriggerStyle_List_tags_1) - /sizeof(asn_DEF_RIC_EventTriggerStyle_List_tags_1[0]), /* 1 */ - asn_DEF_RIC_EventTriggerStyle_List_tags_1, /* Same as above */ - sizeof(asn_DEF_RIC_EventTriggerStyle_List_tags_1) - /sizeof(asn_DEF_RIC_EventTriggerStyle_List_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RIC_EventTriggerStyle_List_1, - 3, /* Elements count */ - &asn_SPC_RIC_EventTriggerStyle_List_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RIC-EventTriggerStyle-List.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/RIC-EventTriggerStyle-List.h deleted file mode 100644 index 18a6a8a..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RIC-EventTriggerStyle-List.h +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _RIC_EventTriggerStyle_List_H_ -#define _RIC_EventTriggerStyle_List_H_ - - -#include - -/* Including external dependencies */ -#include "RIC-Style-Type.h" -#include "RIC-Style-Name.h" -#include "RIC-Format-Type.h" -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* RIC-EventTriggerStyle-List */ -typedef struct RIC_EventTriggerStyle_List { - RIC_Style_Type_t ric_EventTriggerStyle_Type; - RIC_Style_Name_t ric_EventTriggerStyle_Name; - RIC_Format_Type_t ric_EventTriggerFormat_Type; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RIC_EventTriggerStyle_List_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RIC_EventTriggerStyle_List; -extern asn_SEQUENCE_specifics_t asn_SPC_RIC_EventTriggerStyle_List_specs_1; -extern asn_TYPE_member_t asn_MBR_RIC_EventTriggerStyle_List_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RIC_EventTriggerStyle_List_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RIC-Format-Type.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/RIC-Format-Type.c deleted file mode 100644 index 53f0624..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RIC-Format-Type.c +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "RIC-Format-Type.h" - -/* - * This type is implemented using NativeInteger, - * so here we adjust the DEF accordingly. - */ -static const ber_tlv_tag_t asn_DEF_RIC_Format_Type_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RIC_Format_Type = { - "RIC-Format-Type", - "RIC-Format-Type", - &asn_OP_NativeInteger, - asn_DEF_RIC_Format_Type_tags_1, - sizeof(asn_DEF_RIC_Format_Type_tags_1) - /sizeof(asn_DEF_RIC_Format_Type_tags_1[0]), /* 1 */ - asn_DEF_RIC_Format_Type_tags_1, /* Same as above */ - sizeof(asn_DEF_RIC_Format_Type_tags_1) - /sizeof(asn_DEF_RIC_Format_Type_tags_1[0]), /* 1 */ - { 0, 0, NativeInteger_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RIC-Format-Type.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/RIC-Format-Type.h deleted file mode 100644 index 81cec85..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RIC-Format-Type.h +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _RIC_Format_Type_H_ -#define _RIC_Format_Type_H_ - - -#include - -/* Including external dependencies */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* RIC-Format-Type */ -typedef long RIC_Format_Type_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RIC_Format_Type; -asn_struct_free_f RIC_Format_Type_free; -asn_struct_print_f RIC_Format_Type_print; -asn_constr_check_f RIC_Format_Type_constraint; -ber_type_decoder_f RIC_Format_Type_decode_ber; -der_type_encoder_f RIC_Format_Type_encode_der; -xer_type_decoder_f RIC_Format_Type_decode_xer; -xer_type_encoder_f RIC_Format_Type_encode_xer; -oer_type_decoder_f RIC_Format_Type_decode_oer; -oer_type_encoder_f RIC_Format_Type_encode_oer; -per_type_decoder_f RIC_Format_Type_decode_uper; -per_type_encoder_f RIC_Format_Type_encode_uper; -per_type_decoder_f RIC_Format_Type_decode_aper; -per_type_encoder_f RIC_Format_Type_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RIC_Format_Type_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RIC-ReportStyle-List.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/RIC-ReportStyle-List.c deleted file mode 100644 index 93d4a15..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RIC-ReportStyle-List.c +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "RIC-ReportStyle-List.h" - -asn_TYPE_member_t asn_MBR_RIC_ReportStyle_List_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RIC_ReportStyle_List, ric_ReportStyle_Type), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RIC_Style_Type, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ric-ReportStyle-Type" - }, - { ATF_NOFLAGS, 0, offsetof(struct RIC_ReportStyle_List, ric_ReportStyle_Name), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RIC_Style_Name, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ric-ReportStyle-Name" - }, - { ATF_NOFLAGS, 0, offsetof(struct RIC_ReportStyle_List, ric_IndicationHeaderFormat_Type), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RIC_Format_Type, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ric-IndicationHeaderFormat-Type" - }, - { ATF_NOFLAGS, 0, offsetof(struct RIC_ReportStyle_List, ric_IndicationMessageFormat_Type), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RIC_Format_Type, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ric-IndicationMessageFormat-Type" - }, -}; -static const ber_tlv_tag_t asn_DEF_RIC_ReportStyle_List_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RIC_ReportStyle_List_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ric-ReportStyle-Type */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ric-ReportStyle-Name */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* ric-IndicationHeaderFormat-Type */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* ric-IndicationMessageFormat-Type */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RIC_ReportStyle_List_specs_1 = { - sizeof(struct RIC_ReportStyle_List), - offsetof(struct RIC_ReportStyle_List, _asn_ctx), - asn_MAP_RIC_ReportStyle_List_tag2el_1, - 4, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 4, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RIC_ReportStyle_List = { - "RIC-ReportStyle-List", - "RIC-ReportStyle-List", - &asn_OP_SEQUENCE, - asn_DEF_RIC_ReportStyle_List_tags_1, - sizeof(asn_DEF_RIC_ReportStyle_List_tags_1) - /sizeof(asn_DEF_RIC_ReportStyle_List_tags_1[0]), /* 1 */ - asn_DEF_RIC_ReportStyle_List_tags_1, /* Same as above */ - sizeof(asn_DEF_RIC_ReportStyle_List_tags_1) - /sizeof(asn_DEF_RIC_ReportStyle_List_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RIC_ReportStyle_List_1, - 4, /* Elements count */ - &asn_SPC_RIC_ReportStyle_List_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RIC-ReportStyle-List.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/RIC-ReportStyle-List.h deleted file mode 100644 index af886aa..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RIC-ReportStyle-List.h +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _RIC_ReportStyle_List_H_ -#define _RIC_ReportStyle_List_H_ - - -#include - -/* Including external dependencies */ -#include "RIC-Style-Type.h" -#include "RIC-Style-Name.h" -#include "RIC-Format-Type.h" -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* RIC-ReportStyle-List */ -typedef struct RIC_ReportStyle_List { - RIC_Style_Type_t ric_ReportStyle_Type; - RIC_Style_Name_t ric_ReportStyle_Name; - RIC_Format_Type_t ric_IndicationHeaderFormat_Type; - RIC_Format_Type_t ric_IndicationMessageFormat_Type; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RIC_ReportStyle_List_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RIC_ReportStyle_List; -extern asn_SEQUENCE_specifics_t asn_SPC_RIC_ReportStyle_List_specs_1; -extern asn_TYPE_member_t asn_MBR_RIC_ReportStyle_List_1[4]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RIC_ReportStyle_List_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RIC-Style-Name.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/RIC-Style-Name.c deleted file mode 100644 index 2c4a054..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RIC-Style-Name.c +++ /dev/null @@ -1,109 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "RIC-Style-Name.h" - -static const int permitted_alphabet_table_1[256] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */ - 1, 0, 0, 0, 0, 0, 0, 2, 3, 4, 0, 5, 6, 7, 8, 9, /* . '() +,-./ */ -10,11,12,13,14,15,16,17,18,19,20, 0, 0,21, 0,22, /* 0123456789: = ? */ - 0,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37, /* ABCDEFGHIJKLMNO */ -38,39,40,41,42,43,44,45,46,47,48, 0, 0, 0, 0, 0, /* PQRSTUVWXYZ */ - 0,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63, /* abcdefghijklmno */ -64,65,66,67,68,69,70,71,72,73,74, 0, 0, 0, 0, 0, /* pqrstuvwxyz */ -}; -static const int permitted_alphabet_code2value_1[74] = { -32,39,40,41,43,44,45,46,47,48,49,50,51,52,53,54, -55,56,57,58,61,63,65,66,67,68,69,70,71,72,73,74, -75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90, -97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112, -113,114,115,116,117,118,119,120,121,122,}; - - -static int check_permitted_alphabet_1(const void *sptr) { - const int *table = permitted_alphabet_table_1; - /* The underlying type is PrintableString */ - const PrintableString_t *st = (const PrintableString_t *)sptr; - const uint8_t *ch = st->buf; - const uint8_t *end = ch + st->size; - - for(; ch < end; ch++) { - uint8_t cv = *ch; - if(!table[cv]) return -1; - } - return 0; -} - -int -RIC_Style_Name_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const PrintableString_t *st = (const PrintableString_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - size = st->size; - - if((size >= 1 && size <= 150) - && !check_permitted_alphabet_1(st)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int asn_PER_MAP_RIC_Style_Name_1_v2c(unsigned int value) { - if(value >= sizeof(permitted_alphabet_table_1)/sizeof(permitted_alphabet_table_1[0])) - return -1; - return permitted_alphabet_table_1[value] - 1; -} -static int asn_PER_MAP_RIC_Style_Name_1_c2v(unsigned int code) { - if(code >= sizeof(permitted_alphabet_code2value_1)/sizeof(permitted_alphabet_code2value_1[0])) - return -1; - return permitted_alphabet_code2value_1[code]; -} -/* - * This type is implemented using PrintableString, - * so here we adjust the DEF accordingly. - */ -static asn_oer_constraints_t asn_OER_type_RIC_Style_Name_constr_1 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(0..MAX)) */}; -asn_per_constraints_t asn_PER_type_RIC_Style_Name_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED, 7, 7, 32, 122 } /* (32..122) */, - { APC_CONSTRAINED | APC_EXTENSIBLE, 8, 8, 1, 150 } /* (SIZE(1..150,...)) */, - asn_PER_MAP_RIC_Style_Name_1_v2c, /* Value to PER code map */ - asn_PER_MAP_RIC_Style_Name_1_c2v /* PER code to value map */ -}; -static const ber_tlv_tag_t asn_DEF_RIC_Style_Name_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (19 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RIC_Style_Name = { - "RIC-Style-Name", - "RIC-Style-Name", - &asn_OP_PrintableString, - asn_DEF_RIC_Style_Name_tags_1, - sizeof(asn_DEF_RIC_Style_Name_tags_1) - /sizeof(asn_DEF_RIC_Style_Name_tags_1[0]), /* 1 */ - asn_DEF_RIC_Style_Name_tags_1, /* Same as above */ - sizeof(asn_DEF_RIC_Style_Name_tags_1) - /sizeof(asn_DEF_RIC_Style_Name_tags_1[0]), /* 1 */ - { &asn_OER_type_RIC_Style_Name_constr_1, &asn_PER_type_RIC_Style_Name_constr_1, RIC_Style_Name_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RIC-Style-Name.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/RIC-Style-Name.h deleted file mode 100644 index bb02b2c..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RIC-Style-Name.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _RIC_Style_Name_H_ -#define _RIC_Style_Name_H_ - - -#include - -/* Including external dependencies */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* RIC-Style-Name */ -typedef PrintableString_t RIC_Style_Name_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_RIC_Style_Name_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_RIC_Style_Name; -asn_struct_free_f RIC_Style_Name_free; -asn_struct_print_f RIC_Style_Name_print; -asn_constr_check_f RIC_Style_Name_constraint; -ber_type_decoder_f RIC_Style_Name_decode_ber; -der_type_encoder_f RIC_Style_Name_encode_der; -xer_type_decoder_f RIC_Style_Name_decode_xer; -xer_type_encoder_f RIC_Style_Name_encode_xer; -oer_type_decoder_f RIC_Style_Name_decode_oer; -oer_type_encoder_f RIC_Style_Name_encode_oer; -per_type_decoder_f RIC_Style_Name_decode_uper; -per_type_encoder_f RIC_Style_Name_encode_uper; -per_type_decoder_f RIC_Style_Name_decode_aper; -per_type_encoder_f RIC_Style_Name_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RIC_Style_Name_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RIC-Style-Type.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/RIC-Style-Type.c deleted file mode 100644 index 5324c4a..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RIC-Style-Type.c +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "RIC-Style-Type.h" - -/* - * This type is implemented using NativeInteger, - * so here we adjust the DEF accordingly. - */ -static const ber_tlv_tag_t asn_DEF_RIC_Style_Type_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RIC_Style_Type = { - "RIC-Style-Type", - "RIC-Style-Type", - &asn_OP_NativeInteger, - asn_DEF_RIC_Style_Type_tags_1, - sizeof(asn_DEF_RIC_Style_Type_tags_1) - /sizeof(asn_DEF_RIC_Style_Type_tags_1[0]), /* 1 */ - asn_DEF_RIC_Style_Type_tags_1, /* Same as above */ - sizeof(asn_DEF_RIC_Style_Type_tags_1) - /sizeof(asn_DEF_RIC_Style_Type_tags_1[0]), /* 1 */ - { 0, 0, NativeInteger_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RIC-Style-Type.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/RIC-Style-Type.h deleted file mode 100644 index 9948bb0..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RIC-Style-Type.h +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _RIC_Style_Type_H_ -#define _RIC_Style_Type_H_ - - -#include - -/* Including external dependencies */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* RIC-Style-Type */ -typedef long RIC_Style_Type_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RIC_Style_Type; -asn_struct_free_f RIC_Style_Type_free; -asn_struct_print_f RIC_Style_Type_print; -asn_constr_check_f RIC_Style_Type_constraint; -ber_type_decoder_f RIC_Style_Type_decode_ber; -der_type_encoder_f RIC_Style_Type_encode_der; -xer_type_decoder_f RIC_Style_Type_decode_xer; -xer_type_encoder_f RIC_Style_Type_encode_xer; -oer_type_decoder_f RIC_Style_Type_decode_oer; -oer_type_encoder_f RIC_Style_Type_encode_oer; -per_type_decoder_f RIC_Style_Type_decode_uper; -per_type_encoder_f RIC_Style_Type_encode_uper; -per_type_decoder_f RIC_Style_Type_decode_aper; -per_type_encoder_f RIC_Style_Type_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RIC_Style_Type_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICaction-Admitted-Item.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICaction-Admitted-Item.c deleted file mode 100644 index 0b566bb..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICaction-Admitted-Item.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICaction-Admitted-Item.h" - -static asn_TYPE_member_t asn_MBR_RICaction_Admitted_Item_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICaction_Admitted_Item, ricActionID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RICactionID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ricActionID" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICaction_Admitted_Item_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICaction_Admitted_Item_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* ricActionID */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_RICaction_Admitted_Item_specs_1 = { - sizeof(struct RICaction_Admitted_Item), - offsetof(struct RICaction_Admitted_Item, _asn_ctx), - asn_MAP_RICaction_Admitted_Item_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICaction_Admitted_Item = { - "RICaction-Admitted-Item", - "RICaction-Admitted-Item", - &asn_OP_SEQUENCE, - asn_DEF_RICaction_Admitted_Item_tags_1, - sizeof(asn_DEF_RICaction_Admitted_Item_tags_1) - /sizeof(asn_DEF_RICaction_Admitted_Item_tags_1[0]), /* 1 */ - asn_DEF_RICaction_Admitted_Item_tags_1, /* Same as above */ - sizeof(asn_DEF_RICaction_Admitted_Item_tags_1) - /sizeof(asn_DEF_RICaction_Admitted_Item_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICaction_Admitted_Item_1, - 1, /* Elements count */ - &asn_SPC_RICaction_Admitted_Item_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICaction-Admitted-Item.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICaction-Admitted-Item.h deleted file mode 100644 index d7f13c1..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICaction-Admitted-Item.h +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICaction_Admitted_Item_H_ -#define _RICaction_Admitted_Item_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "RICactionID.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICaction-Admitted-Item */ -typedef struct RICaction_Admitted_Item { - RICactionID_t ricActionID; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICaction_Admitted_Item_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICaction_Admitted_Item; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICaction_Admitted_Item_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICaction-Admitted-List.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICaction-Admitted-List.c deleted file mode 100644 index 692fd38..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICaction-Admitted-List.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICaction-Admitted-List.h" - -#include "ProtocolIE-SingleContainer.h" -static asn_per_constraints_t asn_PER_type_RICaction_Admitted_List_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 4, 4, 1, 16 } /* (SIZE(1..16)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_RICaction_Admitted_List_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ProtocolIE_SingleContainer_1530P1, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICaction_Admitted_List_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_RICaction_Admitted_List_specs_1 = { - sizeof(struct RICaction_Admitted_List), - offsetof(struct RICaction_Admitted_List, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_RICaction_Admitted_List = { - "RICaction-Admitted-List", - "RICaction-Admitted-List", - &asn_OP_SEQUENCE_OF, - asn_DEF_RICaction_Admitted_List_tags_1, - sizeof(asn_DEF_RICaction_Admitted_List_tags_1) - /sizeof(asn_DEF_RICaction_Admitted_List_tags_1[0]), /* 1 */ - asn_DEF_RICaction_Admitted_List_tags_1, /* Same as above */ - sizeof(asn_DEF_RICaction_Admitted_List_tags_1) - /sizeof(asn_DEF_RICaction_Admitted_List_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_RICaction_Admitted_List_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_RICaction_Admitted_List_1, - 1, /* Single element */ - &asn_SPC_RICaction_Admitted_List_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICaction-Admitted-List.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICaction-Admitted-List.h deleted file mode 100644 index 8eaf217..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICaction-Admitted-List.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICaction_Admitted_List_H_ -#define _RICaction_Admitted_List_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolIE_SingleContainer; - -/* RICaction-Admitted-List */ -typedef struct RICaction_Admitted_List { - A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICaction_Admitted_List_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICaction_Admitted_List; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICaction_Admitted_List_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICaction-NotAdmitted-Item.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICaction-NotAdmitted-Item.c deleted file mode 100644 index 515679d..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICaction-NotAdmitted-Item.c +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICaction-NotAdmitted-Item.h" - -static asn_TYPE_member_t asn_MBR_RICaction_NotAdmitted_Item_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICaction_NotAdmitted_Item, ricActionID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RICactionID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ricActionID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICaction_NotAdmitted_Item, cause), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_Cause, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "cause" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICaction_NotAdmitted_Item_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICaction_NotAdmitted_Item_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ricActionID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* cause */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_RICaction_NotAdmitted_Item_specs_1 = { - sizeof(struct RICaction_NotAdmitted_Item), - offsetof(struct RICaction_NotAdmitted_Item, _asn_ctx), - asn_MAP_RICaction_NotAdmitted_Item_tag2el_1, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 2, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICaction_NotAdmitted_Item = { - "RICaction-NotAdmitted-Item", - "RICaction-NotAdmitted-Item", - &asn_OP_SEQUENCE, - asn_DEF_RICaction_NotAdmitted_Item_tags_1, - sizeof(asn_DEF_RICaction_NotAdmitted_Item_tags_1) - /sizeof(asn_DEF_RICaction_NotAdmitted_Item_tags_1[0]), /* 1 */ - asn_DEF_RICaction_NotAdmitted_Item_tags_1, /* Same as above */ - sizeof(asn_DEF_RICaction_NotAdmitted_Item_tags_1) - /sizeof(asn_DEF_RICaction_NotAdmitted_Item_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICaction_NotAdmitted_Item_1, - 2, /* Elements count */ - &asn_SPC_RICaction_NotAdmitted_Item_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICaction-NotAdmitted-Item.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICaction-NotAdmitted-Item.h deleted file mode 100644 index 48645e1..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICaction-NotAdmitted-Item.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICaction_NotAdmitted_Item_H_ -#define _RICaction_NotAdmitted_Item_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "RICactionID.h" -#include "Cause.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICaction-NotAdmitted-Item */ -typedef struct RICaction_NotAdmitted_Item { - RICactionID_t ricActionID; - Cause_t cause; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICaction_NotAdmitted_Item_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICaction_NotAdmitted_Item; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICaction_NotAdmitted_Item_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICaction-NotAdmitted-List.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICaction-NotAdmitted-List.c deleted file mode 100644 index 51f45f4..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICaction-NotAdmitted-List.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICaction-NotAdmitted-List.h" - -#include "ProtocolIE-SingleContainer.h" -static asn_per_constraints_t asn_PER_type_RICaction_NotAdmitted_List_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 5, 5, 0, 16 } /* (SIZE(0..16)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_RICaction_NotAdmitted_List_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ProtocolIE_SingleContainer_1530P2, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICaction_NotAdmitted_List_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_RICaction_NotAdmitted_List_specs_1 = { - sizeof(struct RICaction_NotAdmitted_List), - offsetof(struct RICaction_NotAdmitted_List, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_RICaction_NotAdmitted_List = { - "RICaction-NotAdmitted-List", - "RICaction-NotAdmitted-List", - &asn_OP_SEQUENCE_OF, - asn_DEF_RICaction_NotAdmitted_List_tags_1, - sizeof(asn_DEF_RICaction_NotAdmitted_List_tags_1) - /sizeof(asn_DEF_RICaction_NotAdmitted_List_tags_1[0]), /* 1 */ - asn_DEF_RICaction_NotAdmitted_List_tags_1, /* Same as above */ - sizeof(asn_DEF_RICaction_NotAdmitted_List_tags_1) - /sizeof(asn_DEF_RICaction_NotAdmitted_List_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_RICaction_NotAdmitted_List_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_RICaction_NotAdmitted_List_1, - 1, /* Single element */ - &asn_SPC_RICaction_NotAdmitted_List_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICaction-NotAdmitted-List.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICaction-NotAdmitted-List.h deleted file mode 100644 index 95bbadf..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICaction-NotAdmitted-List.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICaction_NotAdmitted_List_H_ -#define _RICaction_NotAdmitted_List_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolIE_SingleContainer; - -/* RICaction-NotAdmitted-List */ -typedef struct RICaction_NotAdmitted_List { - A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICaction_NotAdmitted_List_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICaction_NotAdmitted_List; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICaction_NotAdmitted_List_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICaction-ToBeSetup-Item.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICaction-ToBeSetup-Item.c deleted file mode 100644 index 2e8bc94..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICaction-ToBeSetup-Item.c +++ /dev/null @@ -1,83 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICaction-ToBeSetup-Item.h" - -#include "RICsubsequentAction.h" -static asn_TYPE_member_t asn_MBR_RICaction_ToBeSetup_Item_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICaction_ToBeSetup_Item, ricActionID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RICactionID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ricActionID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICaction_ToBeSetup_Item, ricActionType), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RICactionType, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ricActionType" - }, - { ATF_POINTER, 2, offsetof(struct RICaction_ToBeSetup_Item, ricActionDefinition), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RICactionDefinition, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ricActionDefinition" - }, - { ATF_POINTER, 1, offsetof(struct RICaction_ToBeSetup_Item, ricSubsequentAction), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RICsubsequentAction, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ricSubsequentAction" - }, -}; -static const int asn_MAP_RICaction_ToBeSetup_Item_oms_1[] = { 2, 3 }; -static const ber_tlv_tag_t asn_DEF_RICaction_ToBeSetup_Item_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICaction_ToBeSetup_Item_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ricActionID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ricActionType */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* ricActionDefinition */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* ricSubsequentAction */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_RICaction_ToBeSetup_Item_specs_1 = { - sizeof(struct RICaction_ToBeSetup_Item), - offsetof(struct RICaction_ToBeSetup_Item, _asn_ctx), - asn_MAP_RICaction_ToBeSetup_Item_tag2el_1, - 4, /* Count of tags in the map */ - asn_MAP_RICaction_ToBeSetup_Item_oms_1, /* Optional members */ - 2, 0, /* Root/Additions */ - 4, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICaction_ToBeSetup_Item = { - "RICaction-ToBeSetup-Item", - "RICaction-ToBeSetup-Item", - &asn_OP_SEQUENCE, - asn_DEF_RICaction_ToBeSetup_Item_tags_1, - sizeof(asn_DEF_RICaction_ToBeSetup_Item_tags_1) - /sizeof(asn_DEF_RICaction_ToBeSetup_Item_tags_1[0]), /* 1 */ - asn_DEF_RICaction_ToBeSetup_Item_tags_1, /* Same as above */ - sizeof(asn_DEF_RICaction_ToBeSetup_Item_tags_1) - /sizeof(asn_DEF_RICaction_ToBeSetup_Item_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICaction_ToBeSetup_Item_1, - 4, /* Elements count */ - &asn_SPC_RICaction_ToBeSetup_Item_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICaction-ToBeSetup-Item.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICaction-ToBeSetup-Item.h deleted file mode 100644 index c3f5d07..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICaction-ToBeSetup-Item.h +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICaction_ToBeSetup_Item_H_ -#define _RICaction_ToBeSetup_Item_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "RICactionID.h" -#include "RICactionType.h" -#include "RICactionDefinition.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct RICsubsequentAction; - -/* RICaction-ToBeSetup-Item */ -typedef struct RICaction_ToBeSetup_Item { - RICactionID_t ricActionID; - RICactionType_t ricActionType; - RICactionDefinition_t *ricActionDefinition; /* OPTIONAL */ - struct RICsubsequentAction *ricSubsequentAction; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICaction_ToBeSetup_Item_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICaction_ToBeSetup_Item; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICaction_ToBeSetup_Item_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICactionDefinition.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICactionDefinition.c deleted file mode 100644 index dd1d941..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICactionDefinition.c +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICactionDefinition.h" - -/* - * This type is implemented using OCTET_STRING, - * so here we adjust the DEF accordingly. - */ -static const ber_tlv_tag_t asn_DEF_RICactionDefinition_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RICactionDefinition = { - "RICactionDefinition", - "RICactionDefinition", - &asn_OP_OCTET_STRING, - asn_DEF_RICactionDefinition_tags_1, - sizeof(asn_DEF_RICactionDefinition_tags_1) - /sizeof(asn_DEF_RICactionDefinition_tags_1[0]), /* 1 */ - asn_DEF_RICactionDefinition_tags_1, /* Same as above */ - sizeof(asn_DEF_RICactionDefinition_tags_1) - /sizeof(asn_DEF_RICactionDefinition_tags_1[0]), /* 1 */ - { 0, 0, OCTET_STRING_constraint }, - 0, 0, /* No members */ - &asn_SPC_OCTET_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICactionDefinition.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICactionDefinition.h deleted file mode 100644 index e1eeca6..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICactionDefinition.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICactionDefinition_H_ -#define _RICactionDefinition_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "OCTET_STRING.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICactionDefinition */ -typedef OCTET_STRING_t RICactionDefinition_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICactionDefinition; -asn_struct_free_f RICactionDefinition_free; -asn_struct_print_f RICactionDefinition_print; -asn_constr_check_f RICactionDefinition_constraint; -ber_type_decoder_f RICactionDefinition_decode_ber; -der_type_encoder_f RICactionDefinition_encode_der; -xer_type_decoder_f RICactionDefinition_decode_xer; -xer_type_encoder_f RICactionDefinition_encode_xer; -per_type_decoder_f RICactionDefinition_decode_uper; -per_type_encoder_f RICactionDefinition_encode_uper; -per_type_decoder_f RICactionDefinition_decode_aper; -per_type_encoder_f RICactionDefinition_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICactionDefinition_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICactionID.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICactionID.c deleted file mode 100644 index ecd1ea7..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICactionID.c +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICactionID.h" - -int -RICactionID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 255)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using NativeInteger, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_RICactionID_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_RICactionID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RICactionID = { - "RICactionID", - "RICactionID", - &asn_OP_NativeInteger, - asn_DEF_RICactionID_tags_1, - sizeof(asn_DEF_RICactionID_tags_1) - /sizeof(asn_DEF_RICactionID_tags_1[0]), /* 1 */ - asn_DEF_RICactionID_tags_1, /* Same as above */ - sizeof(asn_DEF_RICactionID_tags_1) - /sizeof(asn_DEF_RICactionID_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_RICactionID_constr_1, RICactionID_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICactionID.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICactionID.h deleted file mode 100644 index b21d3a8..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICactionID.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICactionID_H_ -#define _RICactionID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeInteger.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICactionID */ -typedef long RICactionID_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_RICactionID_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_RICactionID; -asn_struct_free_f RICactionID_free; -asn_struct_print_f RICactionID_print; -asn_constr_check_f RICactionID_constraint; -ber_type_decoder_f RICactionID_decode_ber; -der_type_encoder_f RICactionID_encode_der; -xer_type_decoder_f RICactionID_decode_xer; -xer_type_encoder_f RICactionID_encode_xer; -per_type_decoder_f RICactionID_decode_uper; -per_type_encoder_f RICactionID_encode_uper; -per_type_decoder_f RICactionID_decode_aper; -per_type_encoder_f RICactionID_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICactionID_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICactionType.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICactionType.c deleted file mode 100644 index 69f2101..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICactionType.c +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICactionType.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_RICactionType_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 2 } /* (0..2,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_RICactionType_value2enum_1[] = { - { 0, 6, "report" }, - { 1, 6, "insert" }, - { 2, 6, "policy" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_RICactionType_enum2value_1[] = { - 1, /* insert(1) */ - 2, /* policy(2) */ - 0 /* report(0) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_RICactionType_specs_1 = { - asn_MAP_RICactionType_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_RICactionType_enum2value_1, /* N => "tag"; sorted by N */ - 3, /* Number of elements in the maps */ - 4, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_RICactionType_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RICactionType = { - "RICactionType", - "RICactionType", - &asn_OP_NativeEnumerated, - asn_DEF_RICactionType_tags_1, - sizeof(asn_DEF_RICactionType_tags_1) - /sizeof(asn_DEF_RICactionType_tags_1[0]), /* 1 */ - asn_DEF_RICactionType_tags_1, /* Same as above */ - sizeof(asn_DEF_RICactionType_tags_1) - /sizeof(asn_DEF_RICactionType_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_RICactionType_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_RICactionType_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICactionType.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICactionType.h deleted file mode 100644 index b51809c..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICactionType.h +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICactionType_H_ -#define _RICactionType_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum RICactionType { - RICactionType_report = 0, - RICactionType_insert = 1, - RICactionType_policy = 2 - /* - * Enumeration is extensible - */ -} e_RICactionType; - -/* RICactionType */ -typedef long RICactionType_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_RICactionType_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_RICactionType; -extern const asn_INTEGER_specifics_t asn_SPC_RICactionType_specs_1; -asn_struct_free_f RICactionType_free; -asn_struct_print_f RICactionType_print; -asn_constr_check_f RICactionType_constraint; -ber_type_decoder_f RICactionType_decode_ber; -der_type_encoder_f RICactionType_encode_der; -xer_type_decoder_f RICactionType_decode_xer; -xer_type_encoder_f RICactionType_encode_xer; -per_type_decoder_f RICactionType_decode_uper; -per_type_encoder_f RICactionType_encode_uper; -per_type_decoder_f RICactionType_decode_aper; -per_type_encoder_f RICactionType_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICactionType_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICactions-ToBeSetup-List.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICactions-ToBeSetup-List.c deleted file mode 100644 index c1445fd..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICactions-ToBeSetup-List.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICactions-ToBeSetup-List.h" - -#include "ProtocolIE-SingleContainer.h" -asn_per_constraints_t asn_PER_type_RICactions_ToBeSetup_List_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 4, 4, 1, 16 } /* (SIZE(1..16)) */, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_RICactions_ToBeSetup_List_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ProtocolIE_SingleContainer_1530P0, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICactions_ToBeSetup_List_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_RICactions_ToBeSetup_List_specs_1 = { - sizeof(struct RICactions_ToBeSetup_List), - offsetof(struct RICactions_ToBeSetup_List, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_RICactions_ToBeSetup_List = { - "RICactions-ToBeSetup-List", - "RICactions-ToBeSetup-List", - &asn_OP_SEQUENCE_OF, - asn_DEF_RICactions_ToBeSetup_List_tags_1, - sizeof(asn_DEF_RICactions_ToBeSetup_List_tags_1) - /sizeof(asn_DEF_RICactions_ToBeSetup_List_tags_1[0]), /* 1 */ - asn_DEF_RICactions_ToBeSetup_List_tags_1, /* Same as above */ - sizeof(asn_DEF_RICactions_ToBeSetup_List_tags_1) - /sizeof(asn_DEF_RICactions_ToBeSetup_List_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_RICactions_ToBeSetup_List_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_RICactions_ToBeSetup_List_1, - 1, /* Single element */ - &asn_SPC_RICactions_ToBeSetup_List_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICactions-ToBeSetup-List.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICactions-ToBeSetup-List.h deleted file mode 100644 index 7acfeb4..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICactions-ToBeSetup-List.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICactions_ToBeSetup_List_H_ -#define _RICactions_ToBeSetup_List_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolIE_SingleContainer; - -/* RICactions-ToBeSetup-List */ -typedef struct RICactions_ToBeSetup_List { - A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICactions_ToBeSetup_List_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICactions_ToBeSetup_List; -extern asn_SET_OF_specifics_t asn_SPC_RICactions_ToBeSetup_List_specs_1; -extern asn_TYPE_member_t asn_MBR_RICactions_ToBeSetup_List_1[1]; -extern asn_per_constraints_t asn_PER_type_RICactions_ToBeSetup_List_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICactions_ToBeSetup_List_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICcallProcessID.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICcallProcessID.c deleted file mode 100644 index a7d682f..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICcallProcessID.c +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICcallProcessID.h" - -/* - * This type is implemented using OCTET_STRING, - * so here we adjust the DEF accordingly. - */ -static const ber_tlv_tag_t asn_DEF_RICcallProcessID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RICcallProcessID = { - "RICcallProcessID", - "RICcallProcessID", - &asn_OP_OCTET_STRING, - asn_DEF_RICcallProcessID_tags_1, - sizeof(asn_DEF_RICcallProcessID_tags_1) - /sizeof(asn_DEF_RICcallProcessID_tags_1[0]), /* 1 */ - asn_DEF_RICcallProcessID_tags_1, /* Same as above */ - sizeof(asn_DEF_RICcallProcessID_tags_1) - /sizeof(asn_DEF_RICcallProcessID_tags_1[0]), /* 1 */ - { 0, 0, OCTET_STRING_constraint }, - 0, 0, /* No members */ - &asn_SPC_OCTET_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICcallProcessID.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICcallProcessID.h deleted file mode 100644 index d388b85..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICcallProcessID.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICcallProcessID_H_ -#define _RICcallProcessID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "OCTET_STRING.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICcallProcessID */ -typedef OCTET_STRING_t RICcallProcessID_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICcallProcessID; -asn_struct_free_f RICcallProcessID_free; -asn_struct_print_f RICcallProcessID_print; -asn_constr_check_f RICcallProcessID_constraint; -ber_type_decoder_f RICcallProcessID_decode_ber; -der_type_encoder_f RICcallProcessID_encode_der; -xer_type_decoder_f RICcallProcessID_decode_xer; -xer_type_encoder_f RICcallProcessID_encode_xer; -per_type_decoder_f RICcallProcessID_decode_uper; -per_type_encoder_f RICcallProcessID_encode_uper; -per_type_decoder_f RICcallProcessID_decode_aper; -per_type_encoder_f RICcallProcessID_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICcallProcessID_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICcontrolAckRequest.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICcontrolAckRequest.c deleted file mode 100644 index d69a24c..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICcontrolAckRequest.c +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICcontrolAckRequest.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -static asn_per_constraints_t asn_PER_type_RICcontrolAckRequest_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 2 } /* (0..2,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_RICcontrolAckRequest_value2enum_1[] = { - { 0, 5, "noAck" }, - { 1, 3, "ack" }, - { 2, 4, "nAck" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_RICcontrolAckRequest_enum2value_1[] = { - 1, /* ack(1) */ - 2, /* nAck(2) */ - 0 /* noAck(0) */ - /* This list is extensible */ -}; -static const asn_INTEGER_specifics_t asn_SPC_RICcontrolAckRequest_specs_1 = { - asn_MAP_RICcontrolAckRequest_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_RICcontrolAckRequest_enum2value_1, /* N => "tag"; sorted by N */ - 3, /* Number of elements in the maps */ - 4, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_RICcontrolAckRequest_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RICcontrolAckRequest = { - "RICcontrolAckRequest", - "RICcontrolAckRequest", - &asn_OP_NativeEnumerated, - asn_DEF_RICcontrolAckRequest_tags_1, - sizeof(asn_DEF_RICcontrolAckRequest_tags_1) - /sizeof(asn_DEF_RICcontrolAckRequest_tags_1[0]), /* 1 */ - asn_DEF_RICcontrolAckRequest_tags_1, /* Same as above */ - sizeof(asn_DEF_RICcontrolAckRequest_tags_1) - /sizeof(asn_DEF_RICcontrolAckRequest_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_RICcontrolAckRequest_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_RICcontrolAckRequest_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICcontrolAckRequest.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICcontrolAckRequest.h deleted file mode 100644 index 73f9da7..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICcontrolAckRequest.h +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICcontrolAckRequest_H_ -#define _RICcontrolAckRequest_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum RICcontrolAckRequest { - RICcontrolAckRequest_noAck = 0, - RICcontrolAckRequest_ack = 1, - RICcontrolAckRequest_nAck = 2 - /* - * Enumeration is extensible - */ -} e_RICcontrolAckRequest; - -/* RICcontrolAckRequest */ -typedef long RICcontrolAckRequest_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICcontrolAckRequest; -asn_struct_free_f RICcontrolAckRequest_free; -asn_struct_print_f RICcontrolAckRequest_print; -asn_constr_check_f RICcontrolAckRequest_constraint; -ber_type_decoder_f RICcontrolAckRequest_decode_ber; -der_type_encoder_f RICcontrolAckRequest_encode_der; -xer_type_decoder_f RICcontrolAckRequest_decode_xer; -xer_type_encoder_f RICcontrolAckRequest_encode_xer; -per_type_decoder_f RICcontrolAckRequest_decode_uper; -per_type_encoder_f RICcontrolAckRequest_encode_uper; -per_type_decoder_f RICcontrolAckRequest_decode_aper; -per_type_encoder_f RICcontrolAckRequest_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICcontrolAckRequest_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICcontrolAcknowledge.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICcontrolAcknowledge.c deleted file mode 100644 index eb3d6d2..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICcontrolAcknowledge.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICcontrolAcknowledge.h" - -asn_TYPE_member_t asn_MBR_RICcontrolAcknowledge_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolAcknowledge, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_1527P8, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICcontrolAcknowledge_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICcontrolAcknowledge_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICcontrolAcknowledge_specs_1 = { - sizeof(struct RICcontrolAcknowledge), - offsetof(struct RICcontrolAcknowledge, _asn_ctx), - asn_MAP_RICcontrolAcknowledge_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICcontrolAcknowledge = { - "RICcontrolAcknowledge", - "RICcontrolAcknowledge", - &asn_OP_SEQUENCE, - asn_DEF_RICcontrolAcknowledge_tags_1, - sizeof(asn_DEF_RICcontrolAcknowledge_tags_1) - /sizeof(asn_DEF_RICcontrolAcknowledge_tags_1[0]), /* 1 */ - asn_DEF_RICcontrolAcknowledge_tags_1, /* Same as above */ - sizeof(asn_DEF_RICcontrolAcknowledge_tags_1) - /sizeof(asn_DEF_RICcontrolAcknowledge_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICcontrolAcknowledge_1, - 1, /* Elements count */ - &asn_SPC_RICcontrolAcknowledge_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICcontrolAcknowledge.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICcontrolAcknowledge.h deleted file mode 100644 index 63dbb73..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICcontrolAcknowledge.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICcontrolAcknowledge_H_ -#define _RICcontrolAcknowledge_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICcontrolAcknowledge */ -typedef struct RICcontrolAcknowledge { - ProtocolIE_Container_1527P8_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICcontrolAcknowledge_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICcontrolAcknowledge; -extern asn_SEQUENCE_specifics_t asn_SPC_RICcontrolAcknowledge_specs_1; -extern asn_TYPE_member_t asn_MBR_RICcontrolAcknowledge_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICcontrolAcknowledge_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICcontrolFailure.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICcontrolFailure.c deleted file mode 100644 index 044706c..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICcontrolFailure.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICcontrolFailure.h" - -asn_TYPE_member_t asn_MBR_RICcontrolFailure_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolFailure, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_1527P9, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICcontrolFailure_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICcontrolFailure_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICcontrolFailure_specs_1 = { - sizeof(struct RICcontrolFailure), - offsetof(struct RICcontrolFailure, _asn_ctx), - asn_MAP_RICcontrolFailure_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICcontrolFailure = { - "RICcontrolFailure", - "RICcontrolFailure", - &asn_OP_SEQUENCE, - asn_DEF_RICcontrolFailure_tags_1, - sizeof(asn_DEF_RICcontrolFailure_tags_1) - /sizeof(asn_DEF_RICcontrolFailure_tags_1[0]), /* 1 */ - asn_DEF_RICcontrolFailure_tags_1, /* Same as above */ - sizeof(asn_DEF_RICcontrolFailure_tags_1) - /sizeof(asn_DEF_RICcontrolFailure_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICcontrolFailure_1, - 1, /* Elements count */ - &asn_SPC_RICcontrolFailure_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICcontrolFailure.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICcontrolFailure.h deleted file mode 100644 index 919f11c..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICcontrolFailure.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICcontrolFailure_H_ -#define _RICcontrolFailure_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICcontrolFailure */ -typedef struct RICcontrolFailure { - ProtocolIE_Container_1527P9_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICcontrolFailure_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICcontrolFailure; -extern asn_SEQUENCE_specifics_t asn_SPC_RICcontrolFailure_specs_1; -extern asn_TYPE_member_t asn_MBR_RICcontrolFailure_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICcontrolFailure_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICcontrolHeader.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICcontrolHeader.c deleted file mode 100644 index 2b0400b..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICcontrolHeader.c +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICcontrolHeader.h" - -/* - * This type is implemented using OCTET_STRING, - * so here we adjust the DEF accordingly. - */ -static const ber_tlv_tag_t asn_DEF_RICcontrolHeader_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RICcontrolHeader = { - "RICcontrolHeader", - "RICcontrolHeader", - &asn_OP_OCTET_STRING, - asn_DEF_RICcontrolHeader_tags_1, - sizeof(asn_DEF_RICcontrolHeader_tags_1) - /sizeof(asn_DEF_RICcontrolHeader_tags_1[0]), /* 1 */ - asn_DEF_RICcontrolHeader_tags_1, /* Same as above */ - sizeof(asn_DEF_RICcontrolHeader_tags_1) - /sizeof(asn_DEF_RICcontrolHeader_tags_1[0]), /* 1 */ - { 0, 0, OCTET_STRING_constraint }, - 0, 0, /* No members */ - &asn_SPC_OCTET_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICcontrolHeader.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICcontrolHeader.h deleted file mode 100644 index f26977c..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICcontrolHeader.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICcontrolHeader_H_ -#define _RICcontrolHeader_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "OCTET_STRING.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICcontrolHeader */ -typedef OCTET_STRING_t RICcontrolHeader_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICcontrolHeader; -asn_struct_free_f RICcontrolHeader_free; -asn_struct_print_f RICcontrolHeader_print; -asn_constr_check_f RICcontrolHeader_constraint; -ber_type_decoder_f RICcontrolHeader_decode_ber; -der_type_encoder_f RICcontrolHeader_encode_der; -xer_type_decoder_f RICcontrolHeader_decode_xer; -xer_type_encoder_f RICcontrolHeader_encode_xer; -per_type_decoder_f RICcontrolHeader_decode_uper; -per_type_encoder_f RICcontrolHeader_encode_uper; -per_type_decoder_f RICcontrolHeader_decode_aper; -per_type_encoder_f RICcontrolHeader_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICcontrolHeader_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICcontrolMessage.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICcontrolMessage.c deleted file mode 100644 index f3df4b1..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICcontrolMessage.c +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICcontrolMessage.h" - -/* - * This type is implemented using OCTET_STRING, - * so here we adjust the DEF accordingly. - */ -static const ber_tlv_tag_t asn_DEF_RICcontrolMessage_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RICcontrolMessage = { - "RICcontrolMessage", - "RICcontrolMessage", - &asn_OP_OCTET_STRING, - asn_DEF_RICcontrolMessage_tags_1, - sizeof(asn_DEF_RICcontrolMessage_tags_1) - /sizeof(asn_DEF_RICcontrolMessage_tags_1[0]), /* 1 */ - asn_DEF_RICcontrolMessage_tags_1, /* Same as above */ - sizeof(asn_DEF_RICcontrolMessage_tags_1) - /sizeof(asn_DEF_RICcontrolMessage_tags_1[0]), /* 1 */ - { 0, 0, OCTET_STRING_constraint }, - 0, 0, /* No members */ - &asn_SPC_OCTET_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICcontrolMessage.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICcontrolMessage.h deleted file mode 100644 index 5cc6cc3..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICcontrolMessage.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICcontrolMessage_H_ -#define _RICcontrolMessage_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "OCTET_STRING.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICcontrolMessage */ -typedef OCTET_STRING_t RICcontrolMessage_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICcontrolMessage; -asn_struct_free_f RICcontrolMessage_free; -asn_struct_print_f RICcontrolMessage_print; -asn_constr_check_f RICcontrolMessage_constraint; -ber_type_decoder_f RICcontrolMessage_decode_ber; -der_type_encoder_f RICcontrolMessage_encode_der; -xer_type_decoder_f RICcontrolMessage_decode_xer; -xer_type_encoder_f RICcontrolMessage_encode_xer; -per_type_decoder_f RICcontrolMessage_decode_uper; -per_type_encoder_f RICcontrolMessage_encode_uper; -per_type_decoder_f RICcontrolMessage_decode_aper; -per_type_encoder_f RICcontrolMessage_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICcontrolMessage_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICcontrolOutcome.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICcontrolOutcome.c deleted file mode 100644 index c40874d..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICcontrolOutcome.c +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICcontrolOutcome.h" - -/* - * This type is implemented using OCTET_STRING, - * so here we adjust the DEF accordingly. - */ -static const ber_tlv_tag_t asn_DEF_RICcontrolOutcome_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RICcontrolOutcome = { - "RICcontrolOutcome", - "RICcontrolOutcome", - &asn_OP_OCTET_STRING, - asn_DEF_RICcontrolOutcome_tags_1, - sizeof(asn_DEF_RICcontrolOutcome_tags_1) - /sizeof(asn_DEF_RICcontrolOutcome_tags_1[0]), /* 1 */ - asn_DEF_RICcontrolOutcome_tags_1, /* Same as above */ - sizeof(asn_DEF_RICcontrolOutcome_tags_1) - /sizeof(asn_DEF_RICcontrolOutcome_tags_1[0]), /* 1 */ - { 0, 0, OCTET_STRING_constraint }, - 0, 0, /* No members */ - &asn_SPC_OCTET_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICcontrolOutcome.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICcontrolOutcome.h deleted file mode 100644 index 94481fc..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICcontrolOutcome.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICcontrolOutcome_H_ -#define _RICcontrolOutcome_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "OCTET_STRING.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICcontrolOutcome */ -typedef OCTET_STRING_t RICcontrolOutcome_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICcontrolOutcome; -asn_struct_free_f RICcontrolOutcome_free; -asn_struct_print_f RICcontrolOutcome_print; -asn_constr_check_f RICcontrolOutcome_constraint; -ber_type_decoder_f RICcontrolOutcome_decode_ber; -der_type_encoder_f RICcontrolOutcome_encode_der; -xer_type_decoder_f RICcontrolOutcome_decode_xer; -xer_type_encoder_f RICcontrolOutcome_encode_xer; -per_type_decoder_f RICcontrolOutcome_decode_uper; -per_type_encoder_f RICcontrolOutcome_encode_uper; -per_type_decoder_f RICcontrolOutcome_decode_aper; -per_type_encoder_f RICcontrolOutcome_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICcontrolOutcome_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICcontrolRequest.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICcontrolRequest.c deleted file mode 100644 index 2b54af3..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICcontrolRequest.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICcontrolRequest.h" - -asn_TYPE_member_t asn_MBR_RICcontrolRequest_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolRequest, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_1527P7, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICcontrolRequest_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICcontrolRequest_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICcontrolRequest_specs_1 = { - sizeof(struct RICcontrolRequest), - offsetof(struct RICcontrolRequest, _asn_ctx), - asn_MAP_RICcontrolRequest_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICcontrolRequest = { - "RICcontrolRequest", - "RICcontrolRequest", - &asn_OP_SEQUENCE, - asn_DEF_RICcontrolRequest_tags_1, - sizeof(asn_DEF_RICcontrolRequest_tags_1) - /sizeof(asn_DEF_RICcontrolRequest_tags_1[0]), /* 1 */ - asn_DEF_RICcontrolRequest_tags_1, /* Same as above */ - sizeof(asn_DEF_RICcontrolRequest_tags_1) - /sizeof(asn_DEF_RICcontrolRequest_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICcontrolRequest_1, - 1, /* Elements count */ - &asn_SPC_RICcontrolRequest_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICcontrolRequest.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICcontrolRequest.h deleted file mode 100644 index f35e61d..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICcontrolRequest.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICcontrolRequest_H_ -#define _RICcontrolRequest_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICcontrolRequest */ -typedef struct RICcontrolRequest { - ProtocolIE_Container_1527P7_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICcontrolRequest_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICcontrolRequest; -extern asn_SEQUENCE_specifics_t asn_SPC_RICcontrolRequest_specs_1; -extern asn_TYPE_member_t asn_MBR_RICcontrolRequest_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICcontrolRequest_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICcontrolStatus.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICcontrolStatus.c deleted file mode 100644 index 8dc0c58..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICcontrolStatus.c +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICcontrolStatus.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -static asn_per_constraints_t asn_PER_type_RICcontrolStatus_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 2 } /* (0..2,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_RICcontrolStatus_value2enum_1[] = { - { 0, 7, "success" }, - { 1, 8, "rejected" }, - { 2, 6, "failed" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_RICcontrolStatus_enum2value_1[] = { - 2, /* failed(2) */ - 1, /* rejected(1) */ - 0 /* success(0) */ - /* This list is extensible */ -}; -static const asn_INTEGER_specifics_t asn_SPC_RICcontrolStatus_specs_1 = { - asn_MAP_RICcontrolStatus_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_RICcontrolStatus_enum2value_1, /* N => "tag"; sorted by N */ - 3, /* Number of elements in the maps */ - 4, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_RICcontrolStatus_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RICcontrolStatus = { - "RICcontrolStatus", - "RICcontrolStatus", - &asn_OP_NativeEnumerated, - asn_DEF_RICcontrolStatus_tags_1, - sizeof(asn_DEF_RICcontrolStatus_tags_1) - /sizeof(asn_DEF_RICcontrolStatus_tags_1[0]), /* 1 */ - asn_DEF_RICcontrolStatus_tags_1, /* Same as above */ - sizeof(asn_DEF_RICcontrolStatus_tags_1) - /sizeof(asn_DEF_RICcontrolStatus_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_RICcontrolStatus_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_RICcontrolStatus_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICcontrolStatus.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICcontrolStatus.h deleted file mode 100644 index 627ebaa..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICcontrolStatus.h +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICcontrolStatus_H_ -#define _RICcontrolStatus_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum RICcontrolStatus { - RICcontrolStatus_success = 0, - RICcontrolStatus_rejected = 1, - RICcontrolStatus_failed = 2 - /* - * Enumeration is extensible - */ -} e_RICcontrolStatus; - -/* RICcontrolStatus */ -typedef long RICcontrolStatus_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICcontrolStatus; -asn_struct_free_f RICcontrolStatus_free; -asn_struct_print_f RICcontrolStatus_print; -asn_constr_check_f RICcontrolStatus_constraint; -ber_type_decoder_f RICcontrolStatus_decode_ber; -der_type_encoder_f RICcontrolStatus_encode_der; -xer_type_decoder_f RICcontrolStatus_decode_xer; -xer_type_encoder_f RICcontrolStatus_encode_xer; -per_type_decoder_f RICcontrolStatus_decode_uper; -per_type_encoder_f RICcontrolStatus_encode_uper; -per_type_decoder_f RICcontrolStatus_decode_aper; -per_type_encoder_f RICcontrolStatus_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICcontrolStatus_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICeventTriggerDefinition.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICeventTriggerDefinition.c deleted file mode 100644 index 4c892e0..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICeventTriggerDefinition.c +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICeventTriggerDefinition.h" - -/* - * This type is implemented using OCTET_STRING, - * so here we adjust the DEF accordingly. - */ -static const ber_tlv_tag_t asn_DEF_RICeventTriggerDefinition_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RICeventTriggerDefinition = { - "RICeventTriggerDefinition", - "RICeventTriggerDefinition", - &asn_OP_OCTET_STRING, - asn_DEF_RICeventTriggerDefinition_tags_1, - sizeof(asn_DEF_RICeventTriggerDefinition_tags_1) - /sizeof(asn_DEF_RICeventTriggerDefinition_tags_1[0]), /* 1 */ - asn_DEF_RICeventTriggerDefinition_tags_1, /* Same as above */ - sizeof(asn_DEF_RICeventTriggerDefinition_tags_1) - /sizeof(asn_DEF_RICeventTriggerDefinition_tags_1[0]), /* 1 */ - { 0, 0, OCTET_STRING_constraint }, - 0, 0, /* No members */ - &asn_SPC_OCTET_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICeventTriggerDefinition.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICeventTriggerDefinition.h deleted file mode 100644 index f323980..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICeventTriggerDefinition.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICeventTriggerDefinition_H_ -#define _RICeventTriggerDefinition_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "OCTET_STRING.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICeventTriggerDefinition */ -typedef OCTET_STRING_t RICeventTriggerDefinition_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICeventTriggerDefinition; -asn_struct_free_f RICeventTriggerDefinition_free; -asn_struct_print_f RICeventTriggerDefinition_print; -asn_constr_check_f RICeventTriggerDefinition_constraint; -ber_type_decoder_f RICeventTriggerDefinition_decode_ber; -der_type_encoder_f RICeventTriggerDefinition_encode_der; -xer_type_decoder_f RICeventTriggerDefinition_decode_xer; -xer_type_encoder_f RICeventTriggerDefinition_encode_xer; -per_type_decoder_f RICeventTriggerDefinition_decode_uper; -per_type_encoder_f RICeventTriggerDefinition_encode_uper; -per_type_decoder_f RICeventTriggerDefinition_decode_aper; -per_type_encoder_f RICeventTriggerDefinition_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICeventTriggerDefinition_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICindication.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICindication.c deleted file mode 100644 index be2a72a..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICindication.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICindication.h" - -asn_TYPE_member_t asn_MBR_RICindication_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICindication, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_1527P6, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICindication_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICindication_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICindication_specs_1 = { - sizeof(struct RICindication), - offsetof(struct RICindication, _asn_ctx), - asn_MAP_RICindication_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICindication = { - "RICindication", - "RICindication", - &asn_OP_SEQUENCE, - asn_DEF_RICindication_tags_1, - sizeof(asn_DEF_RICindication_tags_1) - /sizeof(asn_DEF_RICindication_tags_1[0]), /* 1 */ - asn_DEF_RICindication_tags_1, /* Same as above */ - sizeof(asn_DEF_RICindication_tags_1) - /sizeof(asn_DEF_RICindication_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICindication_1, - 1, /* Elements count */ - &asn_SPC_RICindication_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICindication.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICindication.h deleted file mode 100644 index 8a8173d..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICindication.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICindication_H_ -#define _RICindication_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICindication */ -typedef struct RICindication { - ProtocolIE_Container_1527P6_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICindication_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICindication; -extern asn_SEQUENCE_specifics_t asn_SPC_RICindication_specs_1; -extern asn_TYPE_member_t asn_MBR_RICindication_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICindication_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICindicationHeader.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICindicationHeader.c deleted file mode 100644 index 31e2f7f..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICindicationHeader.c +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICindicationHeader.h" - -/* - * This type is implemented using OCTET_STRING, - * so here we adjust the DEF accordingly. - */ -static const ber_tlv_tag_t asn_DEF_RICindicationHeader_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RICindicationHeader = { - "RICindicationHeader", - "RICindicationHeader", - &asn_OP_OCTET_STRING, - asn_DEF_RICindicationHeader_tags_1, - sizeof(asn_DEF_RICindicationHeader_tags_1) - /sizeof(asn_DEF_RICindicationHeader_tags_1[0]), /* 1 */ - asn_DEF_RICindicationHeader_tags_1, /* Same as above */ - sizeof(asn_DEF_RICindicationHeader_tags_1) - /sizeof(asn_DEF_RICindicationHeader_tags_1[0]), /* 1 */ - { 0, 0, OCTET_STRING_constraint }, - 0, 0, /* No members */ - &asn_SPC_OCTET_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICindicationHeader.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICindicationHeader.h deleted file mode 100644 index 0d1448d..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICindicationHeader.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICindicationHeader_H_ -#define _RICindicationHeader_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "OCTET_STRING.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICindicationHeader */ -typedef OCTET_STRING_t RICindicationHeader_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICindicationHeader; -asn_struct_free_f RICindicationHeader_free; -asn_struct_print_f RICindicationHeader_print; -asn_constr_check_f RICindicationHeader_constraint; -ber_type_decoder_f RICindicationHeader_decode_ber; -der_type_encoder_f RICindicationHeader_encode_der; -xer_type_decoder_f RICindicationHeader_decode_xer; -xer_type_encoder_f RICindicationHeader_encode_xer; -per_type_decoder_f RICindicationHeader_decode_uper; -per_type_encoder_f RICindicationHeader_encode_uper; -per_type_decoder_f RICindicationHeader_decode_aper; -per_type_encoder_f RICindicationHeader_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICindicationHeader_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICindicationMessage.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICindicationMessage.c deleted file mode 100644 index 096f61d..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICindicationMessage.c +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICindicationMessage.h" - -/* - * This type is implemented using OCTET_STRING, - * so here we adjust the DEF accordingly. - */ -static const ber_tlv_tag_t asn_DEF_RICindicationMessage_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RICindicationMessage = { - "RICindicationMessage", - "RICindicationMessage", - &asn_OP_OCTET_STRING, - asn_DEF_RICindicationMessage_tags_1, - sizeof(asn_DEF_RICindicationMessage_tags_1) - /sizeof(asn_DEF_RICindicationMessage_tags_1[0]), /* 1 */ - asn_DEF_RICindicationMessage_tags_1, /* Same as above */ - sizeof(asn_DEF_RICindicationMessage_tags_1) - /sizeof(asn_DEF_RICindicationMessage_tags_1[0]), /* 1 */ - { 0, 0, OCTET_STRING_constraint }, - 0, 0, /* No members */ - &asn_SPC_OCTET_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICindicationMessage.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICindicationMessage.h deleted file mode 100644 index 97ce63e..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICindicationMessage.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICindicationMessage_H_ -#define _RICindicationMessage_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "OCTET_STRING.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICindicationMessage */ -typedef OCTET_STRING_t RICindicationMessage_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICindicationMessage; -asn_struct_free_f RICindicationMessage_free; -asn_struct_print_f RICindicationMessage_print; -asn_constr_check_f RICindicationMessage_constraint; -ber_type_decoder_f RICindicationMessage_decode_ber; -der_type_encoder_f RICindicationMessage_encode_der; -xer_type_decoder_f RICindicationMessage_decode_xer; -xer_type_encoder_f RICindicationMessage_encode_xer; -per_type_decoder_f RICindicationMessage_decode_uper; -per_type_encoder_f RICindicationMessage_encode_uper; -per_type_decoder_f RICindicationMessage_decode_aper; -per_type_encoder_f RICindicationMessage_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICindicationMessage_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICindicationSN.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICindicationSN.c deleted file mode 100644 index 74782d8..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICindicationSN.c +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICindicationSN.h" - -int -RICindicationSN_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using NativeInteger, - * so here we adjust the DEF accordingly. - */ -static asn_per_constraints_t asn_PER_type_RICindicationSN_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_RICindicationSN_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RICindicationSN = { - "RICindicationSN", - "RICindicationSN", - &asn_OP_NativeInteger, - asn_DEF_RICindicationSN_tags_1, - sizeof(asn_DEF_RICindicationSN_tags_1) - /sizeof(asn_DEF_RICindicationSN_tags_1[0]), /* 1 */ - asn_DEF_RICindicationSN_tags_1, /* Same as above */ - sizeof(asn_DEF_RICindicationSN_tags_1) - /sizeof(asn_DEF_RICindicationSN_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_RICindicationSN_constr_1, RICindicationSN_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICindicationSN.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICindicationSN.h deleted file mode 100644 index 30d8c55..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICindicationSN.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICindicationSN_H_ -#define _RICindicationSN_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeInteger.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICindicationSN */ -typedef long RICindicationSN_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICindicationSN; -asn_struct_free_f RICindicationSN_free; -asn_struct_print_f RICindicationSN_print; -asn_constr_check_f RICindicationSN_constraint; -ber_type_decoder_f RICindicationSN_decode_ber; -der_type_encoder_f RICindicationSN_encode_der; -xer_type_decoder_f RICindicationSN_decode_xer; -xer_type_encoder_f RICindicationSN_encode_xer; -per_type_decoder_f RICindicationSN_decode_uper; -per_type_encoder_f RICindicationSN_encode_uper; -per_type_decoder_f RICindicationSN_decode_aper; -per_type_encoder_f RICindicationSN_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICindicationSN_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICindicationType.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICindicationType.c deleted file mode 100644 index 81beabe..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICindicationType.c +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICindicationType.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -static asn_per_constraints_t asn_PER_type_RICindicationType_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_RICindicationType_value2enum_1[] = { - { 0, 6, "report" }, - { 1, 6, "insert" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_RICindicationType_enum2value_1[] = { - 1, /* insert(1) */ - 0 /* report(0) */ - /* This list is extensible */ -}; -static const asn_INTEGER_specifics_t asn_SPC_RICindicationType_specs_1 = { - asn_MAP_RICindicationType_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_RICindicationType_enum2value_1, /* N => "tag"; sorted by N */ - 2, /* Number of elements in the maps */ - 3, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_RICindicationType_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RICindicationType = { - "RICindicationType", - "RICindicationType", - &asn_OP_NativeEnumerated, - asn_DEF_RICindicationType_tags_1, - sizeof(asn_DEF_RICindicationType_tags_1) - /sizeof(asn_DEF_RICindicationType_tags_1[0]), /* 1 */ - asn_DEF_RICindicationType_tags_1, /* Same as above */ - sizeof(asn_DEF_RICindicationType_tags_1) - /sizeof(asn_DEF_RICindicationType_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_RICindicationType_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_RICindicationType_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICindicationType.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICindicationType.h deleted file mode 100644 index ae14d7a..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICindicationType.h +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICindicationType_H_ -#define _RICindicationType_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum RICindicationType { - RICindicationType_report = 0, - RICindicationType_insert = 1 - /* - * Enumeration is extensible - */ -} e_RICindicationType; - -/* RICindicationType */ -typedef long RICindicationType_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICindicationType; -asn_struct_free_f RICindicationType_free; -asn_struct_print_f RICindicationType_print; -asn_constr_check_f RICindicationType_constraint; -ber_type_decoder_f RICindicationType_decode_ber; -der_type_encoder_f RICindicationType_encode_der; -xer_type_decoder_f RICindicationType_decode_xer; -xer_type_encoder_f RICindicationType_encode_xer; -per_type_decoder_f RICindicationType_decode_uper; -per_type_encoder_f RICindicationType_encode_uper; -per_type_decoder_f RICindicationType_decode_aper; -per_type_encoder_f RICindicationType_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICindicationType_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICrequestID.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICrequestID.c deleted file mode 100644 index dfe67b5..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICrequestID.c +++ /dev/null @@ -1,120 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICrequestID.h" - -static int -memb_ricRequestorID_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_ricInstanceID_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_per_constraints_t asn_PER_memb_ricRequestorID_constr_2 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_ricInstanceID_constr_3 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_RICrequestID_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICrequestID, ricRequestorID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { 0, &asn_PER_memb_ricRequestorID_constr_2, memb_ricRequestorID_constraint_1 }, - 0, 0, /* No default value */ - "ricRequestorID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICrequestID, ricInstanceID), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { 0, &asn_PER_memb_ricInstanceID_constr_3, memb_ricInstanceID_constraint_1 }, - 0, 0, /* No default value */ - "ricInstanceID" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICrequestID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICrequestID_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ricRequestorID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ricInstanceID */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICrequestID_specs_1 = { - sizeof(struct RICrequestID), - offsetof(struct RICrequestID, _asn_ctx), - asn_MAP_RICrequestID_tag2el_1, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 2, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICrequestID = { - "RICrequestID", - "RICrequestID", - &asn_OP_SEQUENCE, - asn_DEF_RICrequestID_tags_1, - sizeof(asn_DEF_RICrequestID_tags_1) - /sizeof(asn_DEF_RICrequestID_tags_1[0]), /* 1 */ - asn_DEF_RICrequestID_tags_1, /* Same as above */ - sizeof(asn_DEF_RICrequestID_tags_1) - /sizeof(asn_DEF_RICrequestID_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICrequestID_1, - 2, /* Elements count */ - &asn_SPC_RICrequestID_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICrequestID.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICrequestID.h deleted file mode 100644 index 24636d4..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICrequestID.h +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICrequestID_H_ -#define _RICrequestID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeInteger.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICrequestID */ -typedef struct RICrequestID { - long ricRequestorID; - long ricInstanceID; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICrequestID_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICrequestID; -extern asn_SEQUENCE_specifics_t asn_SPC_RICrequestID_specs_1; -extern asn_TYPE_member_t asn_MBR_RICrequestID_1[2]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICrequestID_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICserviceQuery.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICserviceQuery.c deleted file mode 100644 index a2c83c8..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICserviceQuery.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICserviceQuery.h" - -asn_TYPE_member_t asn_MBR_RICserviceQuery_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICserviceQuery, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_1527P19, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICserviceQuery_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICserviceQuery_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICserviceQuery_specs_1 = { - sizeof(struct RICserviceQuery), - offsetof(struct RICserviceQuery, _asn_ctx), - asn_MAP_RICserviceQuery_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICserviceQuery = { - "RICserviceQuery", - "RICserviceQuery", - &asn_OP_SEQUENCE, - asn_DEF_RICserviceQuery_tags_1, - sizeof(asn_DEF_RICserviceQuery_tags_1) - /sizeof(asn_DEF_RICserviceQuery_tags_1[0]), /* 1 */ - asn_DEF_RICserviceQuery_tags_1, /* Same as above */ - sizeof(asn_DEF_RICserviceQuery_tags_1) - /sizeof(asn_DEF_RICserviceQuery_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICserviceQuery_1, - 1, /* Elements count */ - &asn_SPC_RICserviceQuery_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICserviceQuery.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICserviceQuery.h deleted file mode 100644 index 7db0a4f..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICserviceQuery.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICserviceQuery_H_ -#define _RICserviceQuery_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICserviceQuery */ -typedef struct RICserviceQuery { - ProtocolIE_Container_1527P19_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICserviceQuery_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICserviceQuery; -extern asn_SEQUENCE_specifics_t asn_SPC_RICserviceQuery_specs_1; -extern asn_TYPE_member_t asn_MBR_RICserviceQuery_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICserviceQuery_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICserviceUpdate.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICserviceUpdate.c deleted file mode 100644 index 8ec4465..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICserviceUpdate.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICserviceUpdate.h" - -asn_TYPE_member_t asn_MBR_RICserviceUpdate_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdate, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_1527P16, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICserviceUpdate_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICserviceUpdate_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdate_specs_1 = { - sizeof(struct RICserviceUpdate), - offsetof(struct RICserviceUpdate, _asn_ctx), - asn_MAP_RICserviceUpdate_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICserviceUpdate = { - "RICserviceUpdate", - "RICserviceUpdate", - &asn_OP_SEQUENCE, - asn_DEF_RICserviceUpdate_tags_1, - sizeof(asn_DEF_RICserviceUpdate_tags_1) - /sizeof(asn_DEF_RICserviceUpdate_tags_1[0]), /* 1 */ - asn_DEF_RICserviceUpdate_tags_1, /* Same as above */ - sizeof(asn_DEF_RICserviceUpdate_tags_1) - /sizeof(asn_DEF_RICserviceUpdate_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICserviceUpdate_1, - 1, /* Elements count */ - &asn_SPC_RICserviceUpdate_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICserviceUpdate.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICserviceUpdate.h deleted file mode 100644 index f9353cb..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICserviceUpdate.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICserviceUpdate_H_ -#define _RICserviceUpdate_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICserviceUpdate */ -typedef struct RICserviceUpdate { - ProtocolIE_Container_1527P16_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICserviceUpdate_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICserviceUpdate; -extern asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdate_specs_1; -extern asn_TYPE_member_t asn_MBR_RICserviceUpdate_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICserviceUpdate_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICserviceUpdateAcknowledge.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICserviceUpdateAcknowledge.c deleted file mode 100644 index fe21337..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICserviceUpdateAcknowledge.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICserviceUpdateAcknowledge.h" - -asn_TYPE_member_t asn_MBR_RICserviceUpdateAcknowledge_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateAcknowledge, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_1527P17, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICserviceUpdateAcknowledge_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICserviceUpdateAcknowledge_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdateAcknowledge_specs_1 = { - sizeof(struct RICserviceUpdateAcknowledge), - offsetof(struct RICserviceUpdateAcknowledge, _asn_ctx), - asn_MAP_RICserviceUpdateAcknowledge_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICserviceUpdateAcknowledge = { - "RICserviceUpdateAcknowledge", - "RICserviceUpdateAcknowledge", - &asn_OP_SEQUENCE, - asn_DEF_RICserviceUpdateAcknowledge_tags_1, - sizeof(asn_DEF_RICserviceUpdateAcknowledge_tags_1) - /sizeof(asn_DEF_RICserviceUpdateAcknowledge_tags_1[0]), /* 1 */ - asn_DEF_RICserviceUpdateAcknowledge_tags_1, /* Same as above */ - sizeof(asn_DEF_RICserviceUpdateAcknowledge_tags_1) - /sizeof(asn_DEF_RICserviceUpdateAcknowledge_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICserviceUpdateAcknowledge_1, - 1, /* Elements count */ - &asn_SPC_RICserviceUpdateAcknowledge_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICserviceUpdateAcknowledge.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICserviceUpdateAcknowledge.h deleted file mode 100644 index ec27597..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICserviceUpdateAcknowledge.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICserviceUpdateAcknowledge_H_ -#define _RICserviceUpdateAcknowledge_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICserviceUpdateAcknowledge */ -typedef struct RICserviceUpdateAcknowledge { - ProtocolIE_Container_1527P17_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICserviceUpdateAcknowledge_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICserviceUpdateAcknowledge; -extern asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdateAcknowledge_specs_1; -extern asn_TYPE_member_t asn_MBR_RICserviceUpdateAcknowledge_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICserviceUpdateAcknowledge_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICserviceUpdateFailure.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICserviceUpdateFailure.c deleted file mode 100644 index 61334b4..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICserviceUpdateFailure.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICserviceUpdateFailure.h" - -asn_TYPE_member_t asn_MBR_RICserviceUpdateFailure_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateFailure, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_1527P18, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICserviceUpdateFailure_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICserviceUpdateFailure_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdateFailure_specs_1 = { - sizeof(struct RICserviceUpdateFailure), - offsetof(struct RICserviceUpdateFailure, _asn_ctx), - asn_MAP_RICserviceUpdateFailure_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICserviceUpdateFailure = { - "RICserviceUpdateFailure", - "RICserviceUpdateFailure", - &asn_OP_SEQUENCE, - asn_DEF_RICserviceUpdateFailure_tags_1, - sizeof(asn_DEF_RICserviceUpdateFailure_tags_1) - /sizeof(asn_DEF_RICserviceUpdateFailure_tags_1[0]), /* 1 */ - asn_DEF_RICserviceUpdateFailure_tags_1, /* Same as above */ - sizeof(asn_DEF_RICserviceUpdateFailure_tags_1) - /sizeof(asn_DEF_RICserviceUpdateFailure_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICserviceUpdateFailure_1, - 1, /* Elements count */ - &asn_SPC_RICserviceUpdateFailure_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICserviceUpdateFailure.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICserviceUpdateFailure.h deleted file mode 100644 index 71e1e62..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICserviceUpdateFailure.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICserviceUpdateFailure_H_ -#define _RICserviceUpdateFailure_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICserviceUpdateFailure */ -typedef struct RICserviceUpdateFailure { - ProtocolIE_Container_1527P18_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICserviceUpdateFailure_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICserviceUpdateFailure; -extern asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdateFailure_specs_1; -extern asn_TYPE_member_t asn_MBR_RICserviceUpdateFailure_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICserviceUpdateFailure_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICsubscriptionDeleteFailure.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICsubscriptionDeleteFailure.c deleted file mode 100644 index 04b54c7..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICsubscriptionDeleteFailure.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICsubscriptionDeleteFailure.h" - -asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteFailure_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteFailure, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_1527P5, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICsubscriptionDeleteFailure_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionDeleteFailure_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteFailure_specs_1 = { - sizeof(struct RICsubscriptionDeleteFailure), - offsetof(struct RICsubscriptionDeleteFailure, _asn_ctx), - asn_MAP_RICsubscriptionDeleteFailure_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDeleteFailure = { - "RICsubscriptionDeleteFailure", - "RICsubscriptionDeleteFailure", - &asn_OP_SEQUENCE, - asn_DEF_RICsubscriptionDeleteFailure_tags_1, - sizeof(asn_DEF_RICsubscriptionDeleteFailure_tags_1) - /sizeof(asn_DEF_RICsubscriptionDeleteFailure_tags_1[0]), /* 1 */ - asn_DEF_RICsubscriptionDeleteFailure_tags_1, /* Same as above */ - sizeof(asn_DEF_RICsubscriptionDeleteFailure_tags_1) - /sizeof(asn_DEF_RICsubscriptionDeleteFailure_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICsubscriptionDeleteFailure_1, - 1, /* Elements count */ - &asn_SPC_RICsubscriptionDeleteFailure_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICsubscriptionDeleteFailure.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICsubscriptionDeleteFailure.h deleted file mode 100644 index 1560efb..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICsubscriptionDeleteFailure.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICsubscriptionDeleteFailure_H_ -#define _RICsubscriptionDeleteFailure_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICsubscriptionDeleteFailure */ -typedef struct RICsubscriptionDeleteFailure { - ProtocolIE_Container_1527P5_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICsubscriptionDeleteFailure_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDeleteFailure; -extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteFailure_specs_1; -extern asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteFailure_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICsubscriptionDeleteFailure_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICsubscriptionDeleteRequest.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICsubscriptionDeleteRequest.c deleted file mode 100644 index 4ff78c6..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICsubscriptionDeleteRequest.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICsubscriptionDeleteRequest.h" - -asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteRequest_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteRequest, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_1527P3, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICsubscriptionDeleteRequest_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionDeleteRequest_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteRequest_specs_1 = { - sizeof(struct RICsubscriptionDeleteRequest), - offsetof(struct RICsubscriptionDeleteRequest, _asn_ctx), - asn_MAP_RICsubscriptionDeleteRequest_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDeleteRequest = { - "RICsubscriptionDeleteRequest", - "RICsubscriptionDeleteRequest", - &asn_OP_SEQUENCE, - asn_DEF_RICsubscriptionDeleteRequest_tags_1, - sizeof(asn_DEF_RICsubscriptionDeleteRequest_tags_1) - /sizeof(asn_DEF_RICsubscriptionDeleteRequest_tags_1[0]), /* 1 */ - asn_DEF_RICsubscriptionDeleteRequest_tags_1, /* Same as above */ - sizeof(asn_DEF_RICsubscriptionDeleteRequest_tags_1) - /sizeof(asn_DEF_RICsubscriptionDeleteRequest_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICsubscriptionDeleteRequest_1, - 1, /* Elements count */ - &asn_SPC_RICsubscriptionDeleteRequest_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICsubscriptionDeleteRequest.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICsubscriptionDeleteRequest.h deleted file mode 100644 index f25c782..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICsubscriptionDeleteRequest.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICsubscriptionDeleteRequest_H_ -#define _RICsubscriptionDeleteRequest_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICsubscriptionDeleteRequest */ -typedef struct RICsubscriptionDeleteRequest { - ProtocolIE_Container_1527P3_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICsubscriptionDeleteRequest_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDeleteRequest; -extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteRequest_specs_1; -extern asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteRequest_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICsubscriptionDeleteRequest_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICsubscriptionDeleteResponse.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICsubscriptionDeleteResponse.c deleted file mode 100644 index 70a20c7..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICsubscriptionDeleteResponse.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICsubscriptionDeleteResponse.h" - -asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteResponse_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteResponse, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_1527P4, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICsubscriptionDeleteResponse_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionDeleteResponse_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteResponse_specs_1 = { - sizeof(struct RICsubscriptionDeleteResponse), - offsetof(struct RICsubscriptionDeleteResponse, _asn_ctx), - asn_MAP_RICsubscriptionDeleteResponse_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDeleteResponse = { - "RICsubscriptionDeleteResponse", - "RICsubscriptionDeleteResponse", - &asn_OP_SEQUENCE, - asn_DEF_RICsubscriptionDeleteResponse_tags_1, - sizeof(asn_DEF_RICsubscriptionDeleteResponse_tags_1) - /sizeof(asn_DEF_RICsubscriptionDeleteResponse_tags_1[0]), /* 1 */ - asn_DEF_RICsubscriptionDeleteResponse_tags_1, /* Same as above */ - sizeof(asn_DEF_RICsubscriptionDeleteResponse_tags_1) - /sizeof(asn_DEF_RICsubscriptionDeleteResponse_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICsubscriptionDeleteResponse_1, - 1, /* Elements count */ - &asn_SPC_RICsubscriptionDeleteResponse_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICsubscriptionDeleteResponse.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICsubscriptionDeleteResponse.h deleted file mode 100644 index 9b93735..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICsubscriptionDeleteResponse.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICsubscriptionDeleteResponse_H_ -#define _RICsubscriptionDeleteResponse_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICsubscriptionDeleteResponse */ -typedef struct RICsubscriptionDeleteResponse { - ProtocolIE_Container_1527P4_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICsubscriptionDeleteResponse_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDeleteResponse; -extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteResponse_specs_1; -extern asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteResponse_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICsubscriptionDeleteResponse_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICsubscriptionDetails.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICsubscriptionDetails.c deleted file mode 100644 index 39475fd..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICsubscriptionDetails.c +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICsubscriptionDetails.h" - -static asn_TYPE_member_t asn_MBR_RICsubscriptionDetails_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDetails, ricEventTriggerDefinition), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RICeventTriggerDefinition, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ricEventTriggerDefinition" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDetails, ricAction_ToBeSetup_List), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RICactions_ToBeSetup_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ricAction-ToBeSetup-List" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICsubscriptionDetails_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionDetails_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ricEventTriggerDefinition */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ricAction-ToBeSetup-List */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDetails_specs_1 = { - sizeof(struct RICsubscriptionDetails), - offsetof(struct RICsubscriptionDetails, _asn_ctx), - asn_MAP_RICsubscriptionDetails_tag2el_1, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 2, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDetails = { - "RICsubscriptionDetails", - "RICsubscriptionDetails", - &asn_OP_SEQUENCE, - asn_DEF_RICsubscriptionDetails_tags_1, - sizeof(asn_DEF_RICsubscriptionDetails_tags_1) - /sizeof(asn_DEF_RICsubscriptionDetails_tags_1[0]), /* 1 */ - asn_DEF_RICsubscriptionDetails_tags_1, /* Same as above */ - sizeof(asn_DEF_RICsubscriptionDetails_tags_1) - /sizeof(asn_DEF_RICsubscriptionDetails_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICsubscriptionDetails_1, - 2, /* Elements count */ - &asn_SPC_RICsubscriptionDetails_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICsubscriptionDetails.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICsubscriptionDetails.h deleted file mode 100644 index cd5b0f8..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICsubscriptionDetails.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICsubscriptionDetails_H_ -#define _RICsubscriptionDetails_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "RICeventTriggerDefinition.h" -#include "RICactions-ToBeSetup-List.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICsubscriptionDetails */ -typedef struct RICsubscriptionDetails { - RICeventTriggerDefinition_t ricEventTriggerDefinition; - RICactions_ToBeSetup_List_t ricAction_ToBeSetup_List; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICsubscriptionDetails_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDetails; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICsubscriptionDetails_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICsubscriptionFailure.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICsubscriptionFailure.c deleted file mode 100644 index f0a7a43..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICsubscriptionFailure.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICsubscriptionFailure.h" - -asn_TYPE_member_t asn_MBR_RICsubscriptionFailure_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionFailure, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_1527P2, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICsubscriptionFailure_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionFailure_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionFailure_specs_1 = { - sizeof(struct RICsubscriptionFailure), - offsetof(struct RICsubscriptionFailure, _asn_ctx), - asn_MAP_RICsubscriptionFailure_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICsubscriptionFailure = { - "RICsubscriptionFailure", - "RICsubscriptionFailure", - &asn_OP_SEQUENCE, - asn_DEF_RICsubscriptionFailure_tags_1, - sizeof(asn_DEF_RICsubscriptionFailure_tags_1) - /sizeof(asn_DEF_RICsubscriptionFailure_tags_1[0]), /* 1 */ - asn_DEF_RICsubscriptionFailure_tags_1, /* Same as above */ - sizeof(asn_DEF_RICsubscriptionFailure_tags_1) - /sizeof(asn_DEF_RICsubscriptionFailure_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICsubscriptionFailure_1, - 1, /* Elements count */ - &asn_SPC_RICsubscriptionFailure_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICsubscriptionFailure.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICsubscriptionFailure.h deleted file mode 100644 index fb43397..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICsubscriptionFailure.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICsubscriptionFailure_H_ -#define _RICsubscriptionFailure_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICsubscriptionFailure */ -typedef struct RICsubscriptionFailure { - ProtocolIE_Container_1527P2_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICsubscriptionFailure_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionFailure; -extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionFailure_specs_1; -extern asn_TYPE_member_t asn_MBR_RICsubscriptionFailure_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICsubscriptionFailure_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICsubscriptionRequest.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICsubscriptionRequest.c deleted file mode 100644 index dcc451e..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICsubscriptionRequest.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICsubscriptionRequest.h" - -asn_TYPE_member_t asn_MBR_RICsubscriptionRequest_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionRequest, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_1527P0, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICsubscriptionRequest_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionRequest_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionRequest_specs_1 = { - sizeof(struct RICsubscriptionRequest), - offsetof(struct RICsubscriptionRequest, _asn_ctx), - asn_MAP_RICsubscriptionRequest_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICsubscriptionRequest = { - "RICsubscriptionRequest", - "RICsubscriptionRequest", - &asn_OP_SEQUENCE, - asn_DEF_RICsubscriptionRequest_tags_1, - sizeof(asn_DEF_RICsubscriptionRequest_tags_1) - /sizeof(asn_DEF_RICsubscriptionRequest_tags_1[0]), /* 1 */ - asn_DEF_RICsubscriptionRequest_tags_1, /* Same as above */ - sizeof(asn_DEF_RICsubscriptionRequest_tags_1) - /sizeof(asn_DEF_RICsubscriptionRequest_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICsubscriptionRequest_1, - 1, /* Elements count */ - &asn_SPC_RICsubscriptionRequest_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICsubscriptionRequest.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICsubscriptionRequest.h deleted file mode 100644 index d6ed804..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICsubscriptionRequest.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICsubscriptionRequest_H_ -#define _RICsubscriptionRequest_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICsubscriptionRequest */ -typedef struct RICsubscriptionRequest { - ProtocolIE_Container_1527P0_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICsubscriptionRequest_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionRequest; -extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionRequest_specs_1; -extern asn_TYPE_member_t asn_MBR_RICsubscriptionRequest_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICsubscriptionRequest_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICsubscriptionResponse.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICsubscriptionResponse.c deleted file mode 100644 index 836322b..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICsubscriptionResponse.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICsubscriptionResponse.h" - -asn_TYPE_member_t asn_MBR_RICsubscriptionResponse_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionResponse, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_1527P1, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICsubscriptionResponse_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionResponse_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionResponse_specs_1 = { - sizeof(struct RICsubscriptionResponse), - offsetof(struct RICsubscriptionResponse, _asn_ctx), - asn_MAP_RICsubscriptionResponse_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICsubscriptionResponse = { - "RICsubscriptionResponse", - "RICsubscriptionResponse", - &asn_OP_SEQUENCE, - asn_DEF_RICsubscriptionResponse_tags_1, - sizeof(asn_DEF_RICsubscriptionResponse_tags_1) - /sizeof(asn_DEF_RICsubscriptionResponse_tags_1[0]), /* 1 */ - asn_DEF_RICsubscriptionResponse_tags_1, /* Same as above */ - sizeof(asn_DEF_RICsubscriptionResponse_tags_1) - /sizeof(asn_DEF_RICsubscriptionResponse_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICsubscriptionResponse_1, - 1, /* Elements count */ - &asn_SPC_RICsubscriptionResponse_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICsubscriptionResponse.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICsubscriptionResponse.h deleted file mode 100644 index 64e2e45..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICsubscriptionResponse.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICsubscriptionResponse_H_ -#define _RICsubscriptionResponse_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICsubscriptionResponse */ -typedef struct RICsubscriptionResponse { - ProtocolIE_Container_1527P1_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICsubscriptionResponse_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionResponse; -extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionResponse_specs_1; -extern asn_TYPE_member_t asn_MBR_RICsubscriptionResponse_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICsubscriptionResponse_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICsubsequentAction.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICsubsequentAction.c deleted file mode 100644 index 1008fb1..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICsubsequentAction.c +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICsubsequentAction.h" - -asn_TYPE_member_t asn_MBR_RICsubsequentAction_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICsubsequentAction, ricSubsequentActionType), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RICsubsequentActionType, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ricSubsequentActionType" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubsequentAction, ricTimeToWait), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RICtimeToWait, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ricTimeToWait" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICsubsequentAction_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICsubsequentAction_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ricSubsequentActionType */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ricTimeToWait */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICsubsequentAction_specs_1 = { - sizeof(struct RICsubsequentAction), - offsetof(struct RICsubsequentAction, _asn_ctx), - asn_MAP_RICsubsequentAction_tag2el_1, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 2, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICsubsequentAction = { - "RICsubsequentAction", - "RICsubsequentAction", - &asn_OP_SEQUENCE, - asn_DEF_RICsubsequentAction_tags_1, - sizeof(asn_DEF_RICsubsequentAction_tags_1) - /sizeof(asn_DEF_RICsubsequentAction_tags_1[0]), /* 1 */ - asn_DEF_RICsubsequentAction_tags_1, /* Same as above */ - sizeof(asn_DEF_RICsubsequentAction_tags_1) - /sizeof(asn_DEF_RICsubsequentAction_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICsubsequentAction_1, - 2, /* Elements count */ - &asn_SPC_RICsubsequentAction_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICsubsequentAction.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICsubsequentAction.h deleted file mode 100644 index dae24c8..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICsubsequentAction.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICsubsequentAction_H_ -#define _RICsubsequentAction_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "RICsubsequentActionType.h" -#include "RICtimeToWait.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICsubsequentAction */ -typedef struct RICsubsequentAction { - RICsubsequentActionType_t ricSubsequentActionType; - RICtimeToWait_t ricTimeToWait; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICsubsequentAction_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICsubsequentAction; -extern asn_SEQUENCE_specifics_t asn_SPC_RICsubsequentAction_specs_1; -extern asn_TYPE_member_t asn_MBR_RICsubsequentAction_1[2]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICsubsequentAction_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICsubsequentActionType.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICsubsequentActionType.c deleted file mode 100644 index c622986..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICsubsequentActionType.c +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICsubsequentActionType.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_RICsubsequentActionType_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_RICsubsequentActionType_value2enum_1[] = { - { 0, 8, "continue" }, - { 1, 4, "wait" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_RICsubsequentActionType_enum2value_1[] = { - 0, /* continue(0) */ - 1 /* wait(1) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_RICsubsequentActionType_specs_1 = { - asn_MAP_RICsubsequentActionType_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_RICsubsequentActionType_enum2value_1, /* N => "tag"; sorted by N */ - 2, /* Number of elements in the maps */ - 3, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_RICsubsequentActionType_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RICsubsequentActionType = { - "RICsubsequentActionType", - "RICsubsequentActionType", - &asn_OP_NativeEnumerated, - asn_DEF_RICsubsequentActionType_tags_1, - sizeof(asn_DEF_RICsubsequentActionType_tags_1) - /sizeof(asn_DEF_RICsubsequentActionType_tags_1[0]), /* 1 */ - asn_DEF_RICsubsequentActionType_tags_1, /* Same as above */ - sizeof(asn_DEF_RICsubsequentActionType_tags_1) - /sizeof(asn_DEF_RICsubsequentActionType_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_RICsubsequentActionType_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_RICsubsequentActionType_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICsubsequentActionType.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICsubsequentActionType.h deleted file mode 100644 index 18f61c7..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICsubsequentActionType.h +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICsubsequentActionType_H_ -#define _RICsubsequentActionType_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum RICsubsequentActionType { - RICsubsequentActionType_continue = 0, - RICsubsequentActionType_wait = 1 - /* - * Enumeration is extensible - */ -} e_RICsubsequentActionType; - -/* RICsubsequentActionType */ -typedef long RICsubsequentActionType_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_RICsubsequentActionType_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_RICsubsequentActionType; -extern const asn_INTEGER_specifics_t asn_SPC_RICsubsequentActionType_specs_1; -asn_struct_free_f RICsubsequentActionType_free; -asn_struct_print_f RICsubsequentActionType_print; -asn_constr_check_f RICsubsequentActionType_constraint; -ber_type_decoder_f RICsubsequentActionType_decode_ber; -der_type_encoder_f RICsubsequentActionType_encode_der; -xer_type_decoder_f RICsubsequentActionType_decode_xer; -xer_type_encoder_f RICsubsequentActionType_encode_xer; -per_type_decoder_f RICsubsequentActionType_decode_uper; -per_type_encoder_f RICsubsequentActionType_encode_uper; -per_type_decoder_f RICsubsequentActionType_decode_aper; -per_type_encoder_f RICsubsequentActionType_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICsubsequentActionType_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICtimeToWait.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICtimeToWait.c deleted file mode 100644 index 159b5e3..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICtimeToWait.c +++ /dev/null @@ -1,87 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICtimeToWait.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_RICtimeToWait_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 5, 5, 0, 17 } /* (0..17,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_RICtimeToWait_value2enum_1[] = { - { 0, 4, "zero" }, - { 1, 4, "w1ms" }, - { 2, 4, "w2ms" }, - { 3, 4, "w5ms" }, - { 4, 5, "w10ms" }, - { 5, 5, "w20ms" }, - { 6, 5, "w30ms" }, - { 7, 5, "w40ms" }, - { 8, 5, "w50ms" }, - { 9, 6, "w100ms" }, - { 10, 6, "w200ms" }, - { 11, 6, "w500ms" }, - { 12, 3, "w1s" }, - { 13, 3, "w2s" }, - { 14, 3, "w5s" }, - { 15, 4, "w10s" }, - { 16, 4, "w20s" }, - { 17, 4, "w60s" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_RICtimeToWait_enum2value_1[] = { - 9, /* w100ms(9) */ - 4, /* w10ms(4) */ - 15, /* w10s(15) */ - 1, /* w1ms(1) */ - 12, /* w1s(12) */ - 10, /* w200ms(10) */ - 5, /* w20ms(5) */ - 16, /* w20s(16) */ - 2, /* w2ms(2) */ - 13, /* w2s(13) */ - 6, /* w30ms(6) */ - 7, /* w40ms(7) */ - 11, /* w500ms(11) */ - 8, /* w50ms(8) */ - 3, /* w5ms(3) */ - 14, /* w5s(14) */ - 17, /* w60s(17) */ - 0 /* zero(0) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_RICtimeToWait_specs_1 = { - asn_MAP_RICtimeToWait_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_RICtimeToWait_enum2value_1, /* N => "tag"; sorted by N */ - 18, /* Number of elements in the maps */ - 19, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_RICtimeToWait_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RICtimeToWait = { - "RICtimeToWait", - "RICtimeToWait", - &asn_OP_NativeEnumerated, - asn_DEF_RICtimeToWait_tags_1, - sizeof(asn_DEF_RICtimeToWait_tags_1) - /sizeof(asn_DEF_RICtimeToWait_tags_1[0]), /* 1 */ - asn_DEF_RICtimeToWait_tags_1, /* Same as above */ - sizeof(asn_DEF_RICtimeToWait_tags_1) - /sizeof(asn_DEF_RICtimeToWait_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_RICtimeToWait_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_RICtimeToWait_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICtimeToWait.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICtimeToWait.h deleted file mode 100644 index 6bd2096..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RICtimeToWait.h +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICtimeToWait_H_ -#define _RICtimeToWait_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum RICtimeToWait { - RICtimeToWait_zero = 0, - RICtimeToWait_w1ms = 1, - RICtimeToWait_w2ms = 2, - RICtimeToWait_w5ms = 3, - RICtimeToWait_w10ms = 4, - RICtimeToWait_w20ms = 5, - RICtimeToWait_w30ms = 6, - RICtimeToWait_w40ms = 7, - RICtimeToWait_w50ms = 8, - RICtimeToWait_w100ms = 9, - RICtimeToWait_w200ms = 10, - RICtimeToWait_w500ms = 11, - RICtimeToWait_w1s = 12, - RICtimeToWait_w2s = 13, - RICtimeToWait_w5s = 14, - RICtimeToWait_w10s = 15, - RICtimeToWait_w20s = 16, - RICtimeToWait_w60s = 17 - /* - * Enumeration is extensible - */ -} e_RICtimeToWait; - -/* RICtimeToWait */ -typedef long RICtimeToWait_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_RICtimeToWait_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_RICtimeToWait; -extern const asn_INTEGER_specifics_t asn_SPC_RICtimeToWait_specs_1; -asn_struct_free_f RICtimeToWait_free; -asn_struct_print_f RICtimeToWait_print; -asn_constr_check_f RICtimeToWait_constraint; -ber_type_decoder_f RICtimeToWait_decode_ber; -der_type_encoder_f RICtimeToWait_encode_der; -xer_type_decoder_f RICtimeToWait_decode_xer; -xer_type_encoder_f RICtimeToWait_encode_xer; -per_type_decoder_f RICtimeToWait_decode_uper; -per_type_encoder_f RICtimeToWait_encode_uper; -per_type_decoder_f RICtimeToWait_decode_aper; -per_type_encoder_f RICtimeToWait_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICtimeToWait_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RT-Period-IE.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/RT-Period-IE.c deleted file mode 100644 index 5f99297..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RT-Period-IE.c +++ /dev/null @@ -1,94 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "RT-Period-IE.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -static asn_oer_constraints_t asn_OER_type_RT_Period_IE_constr_1 CC_NOTUSED = { - { 0, 0 }, - -1}; -asn_per_constraints_t asn_PER_type_RT_Period_IE_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 5, 5, 0, 19 } /* (0..19,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_RT_Period_IE_value2enum_1[] = { - { 0, 4, "ms10" }, - { 1, 4, "ms20" }, - { 2, 4, "ms32" }, - { 3, 4, "ms40" }, - { 4, 4, "ms60" }, - { 5, 4, "ms64" }, - { 6, 4, "ms70" }, - { 7, 4, "ms80" }, - { 8, 5, "ms128" }, - { 9, 5, "ms160" }, - { 10, 5, "ms256" }, - { 11, 5, "ms320" }, - { 12, 5, "ms512" }, - { 13, 5, "ms640" }, - { 14, 6, "ms1024" }, - { 15, 6, "ms1280" }, - { 16, 6, "ms2048" }, - { 17, 6, "ms2560" }, - { 18, 6, "ms5120" }, - { 19, 7, "ms10240" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_RT_Period_IE_enum2value_1[] = { - 0, /* ms10(0) */ - 14, /* ms1024(14) */ - 19, /* ms10240(19) */ - 8, /* ms128(8) */ - 15, /* ms1280(15) */ - 9, /* ms160(9) */ - 1, /* ms20(1) */ - 16, /* ms2048(16) */ - 10, /* ms256(10) */ - 17, /* ms2560(17) */ - 2, /* ms32(2) */ - 11, /* ms320(11) */ - 3, /* ms40(3) */ - 12, /* ms512(12) */ - 18, /* ms5120(18) */ - 4, /* ms60(4) */ - 5, /* ms64(5) */ - 13, /* ms640(13) */ - 6, /* ms70(6) */ - 7 /* ms80(7) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_RT_Period_IE_specs_1 = { - asn_MAP_RT_Period_IE_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_RT_Period_IE_enum2value_1, /* N => "tag"; sorted by N */ - 20, /* Number of elements in the maps */ - 21, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_RT_Period_IE_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RT_Period_IE = { - "RT-Period-IE", - "RT-Period-IE", - &asn_OP_NativeEnumerated, - asn_DEF_RT_Period_IE_tags_1, - sizeof(asn_DEF_RT_Period_IE_tags_1) - /sizeof(asn_DEF_RT_Period_IE_tags_1[0]), /* 1 */ - asn_DEF_RT_Period_IE_tags_1, /* Same as above */ - sizeof(asn_DEF_RT_Period_IE_tags_1) - /sizeof(asn_DEF_RT_Period_IE_tags_1[0]), /* 1 */ - { &asn_OER_type_RT_Period_IE_constr_1, &asn_PER_type_RT_Period_IE_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_RT_Period_IE_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RT-Period-IE.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/RT-Period-IE.h deleted file mode 100644 index 30d2843..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/RT-Period-IE.h +++ /dev/null @@ -1,74 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _RT_Period_IE_H_ -#define _RT_Period_IE_H_ - - -#include - -/* Including external dependencies */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum RT_Period_IE { - RT_Period_IE_ms10 = 0, - RT_Period_IE_ms20 = 1, - RT_Period_IE_ms32 = 2, - RT_Period_IE_ms40 = 3, - RT_Period_IE_ms60 = 4, - RT_Period_IE_ms64 = 5, - RT_Period_IE_ms70 = 6, - RT_Period_IE_ms80 = 7, - RT_Period_IE_ms128 = 8, - RT_Period_IE_ms160 = 9, - RT_Period_IE_ms256 = 10, - RT_Period_IE_ms320 = 11, - RT_Period_IE_ms512 = 12, - RT_Period_IE_ms640 = 13, - RT_Period_IE_ms1024 = 14, - RT_Period_IE_ms1280 = 15, - RT_Period_IE_ms2048 = 16, - RT_Period_IE_ms2560 = 17, - RT_Period_IE_ms5120 = 18, - RT_Period_IE_ms10240 = 19 - /* - * Enumeration is extensible - */ -} e_RT_Period_IE; - -/* RT-Period-IE */ -typedef long RT_Period_IE_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_RT_Period_IE_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_RT_Period_IE; -extern const asn_INTEGER_specifics_t asn_SPC_RT_Period_IE_specs_1; -asn_struct_free_f RT_Period_IE_free; -asn_struct_print_f RT_Period_IE_print; -asn_constr_check_f RT_Period_IE_constraint; -ber_type_decoder_f RT_Period_IE_decode_ber; -der_type_encoder_f RT_Period_IE_encode_der; -xer_type_decoder_f RT_Period_IE_decode_xer; -xer_type_encoder_f RT_Period_IE_encode_xer; -oer_type_decoder_f RT_Period_IE_decode_oer; -oer_type_encoder_f RT_Period_IE_encode_oer; -per_type_decoder_f RT_Period_IE_decode_uper; -per_type_encoder_f RT_Period_IE_encode_uper; -per_type_decoder_f RT_Period_IE_decode_aper; -per_type_encoder_f RT_Period_IE_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RT_Period_IE_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/ResetRequest.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/ResetRequest.c deleted file mode 100644 index 3f96a6d..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/ResetRequest.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "ResetRequest.h" - -asn_TYPE_member_t asn_MBR_ResetRequest_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct ResetRequest, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_1527P14, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_ResetRequest_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ResetRequest_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ResetRequest_specs_1 = { - sizeof(struct ResetRequest), - offsetof(struct ResetRequest, _asn_ctx), - asn_MAP_ResetRequest_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ResetRequest = { - "ResetRequest", - "ResetRequest", - &asn_OP_SEQUENCE, - asn_DEF_ResetRequest_tags_1, - sizeof(asn_DEF_ResetRequest_tags_1) - /sizeof(asn_DEF_ResetRequest_tags_1[0]), /* 1 */ - asn_DEF_ResetRequest_tags_1, /* Same as above */ - sizeof(asn_DEF_ResetRequest_tags_1) - /sizeof(asn_DEF_ResetRequest_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ResetRequest_1, - 1, /* Elements count */ - &asn_SPC_ResetRequest_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/ResetRequest.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/ResetRequest.h deleted file mode 100644 index e7f6ec8..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/ResetRequest.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _ResetRequest_H_ -#define _ResetRequest_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* ResetRequest */ -typedef struct ResetRequest { - ProtocolIE_Container_1527P14_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ResetRequest_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ResetRequest; -extern asn_SEQUENCE_specifics_t asn_SPC_ResetRequest_specs_1; -extern asn_TYPE_member_t asn_MBR_ResetRequest_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _ResetRequest_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/ResetResponse.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/ResetResponse.c deleted file mode 100644 index c8afcc4..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/ResetResponse.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "ResetResponse.h" - -asn_TYPE_member_t asn_MBR_ResetResponse_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct ResetResponse, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_1527P15, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_ResetResponse_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ResetResponse_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ResetResponse_specs_1 = { - sizeof(struct ResetResponse), - offsetof(struct ResetResponse, _asn_ctx), - asn_MAP_ResetResponse_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ResetResponse = { - "ResetResponse", - "ResetResponse", - &asn_OP_SEQUENCE, - asn_DEF_ResetResponse_tags_1, - sizeof(asn_DEF_ResetResponse_tags_1) - /sizeof(asn_DEF_ResetResponse_tags_1[0]), /* 1 */ - asn_DEF_ResetResponse_tags_1, /* Same as above */ - sizeof(asn_DEF_ResetResponse_tags_1) - /sizeof(asn_DEF_ResetResponse_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ResetResponse_1, - 1, /* Elements count */ - &asn_SPC_ResetResponse_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/ResetResponse.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/ResetResponse.h deleted file mode 100644 index 08a576e..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/ResetResponse.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _ResetResponse_H_ -#define _ResetResponse_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* ResetResponse */ -typedef struct ResetResponse { - ProtocolIE_Container_1527P15_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ResetResponse_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ResetResponse; -extern asn_SEQUENCE_specifics_t asn_SPC_ResetResponse_specs_1; -extern asn_TYPE_member_t asn_MBR_ResetResponse_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _ResetResponse_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/SNSSAI.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/SNSSAI.c deleted file mode 100644 index 39afcad..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/SNSSAI.c +++ /dev/null @@ -1,130 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "SNSSAI.h" - -static int -memb_sST_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - size = st->size; - - if((size == 1)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_sD_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - size = st->size; - - if((size == 3)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_oer_constraints_t asn_OER_memb_sST_constr_2 CC_NOTUSED = { - { 0, 0 }, - 1 /* (SIZE(1..1)) */}; -static asn_per_constraints_t asn_PER_memb_sST_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 0, 0, 1, 1 } /* (SIZE(1..1)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_sD_constr_3 CC_NOTUSED = { - { 0, 0 }, - 3 /* (SIZE(3..3)) */}; -static asn_per_constraints_t asn_PER_memb_sD_constr_3 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 0, 0, 3, 3 } /* (SIZE(3..3)) */, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_SNSSAI_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct SNSSAI, sST), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_OCTET_STRING, - 0, - { &asn_OER_memb_sST_constr_2, &asn_PER_memb_sST_constr_2, memb_sST_constraint_1 }, - 0, 0, /* No default value */ - "sST" - }, - { ATF_POINTER, 1, offsetof(struct SNSSAI, sD), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_OCTET_STRING, - 0, - { &asn_OER_memb_sD_constr_3, &asn_PER_memb_sD_constr_3, memb_sD_constraint_1 }, - 0, 0, /* No default value */ - "sD" - }, -}; -static const int asn_MAP_SNSSAI_oms_1[] = { 1 }; -static const ber_tlv_tag_t asn_DEF_SNSSAI_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_SNSSAI_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sST */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* sD */ -}; -asn_SEQUENCE_specifics_t asn_SPC_SNSSAI_specs_1 = { - sizeof(struct SNSSAI), - offsetof(struct SNSSAI, _asn_ctx), - asn_MAP_SNSSAI_tag2el_1, - 2, /* Count of tags in the map */ - asn_MAP_SNSSAI_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_SNSSAI = { - "SNSSAI", - "SNSSAI", - &asn_OP_SEQUENCE, - asn_DEF_SNSSAI_tags_1, - sizeof(asn_DEF_SNSSAI_tags_1) - /sizeof(asn_DEF_SNSSAI_tags_1[0]), /* 1 */ - asn_DEF_SNSSAI_tags_1, /* Same as above */ - sizeof(asn_DEF_SNSSAI_tags_1) - /sizeof(asn_DEF_SNSSAI_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_SNSSAI_1, - 2, /* Elements count */ - &asn_SPC_SNSSAI_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/SNSSAI.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/SNSSAI.h deleted file mode 100644 index b854e6f..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/SNSSAI.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _SNSSAI_H_ -#define _SNSSAI_H_ - - -#include - -/* Including external dependencies */ -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* SNSSAI */ -typedef struct SNSSAI { - OCTET_STRING_t sST; - OCTET_STRING_t *sD; /* OPTIONAL */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} SNSSAI_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_SNSSAI; -extern asn_SEQUENCE_specifics_t asn_SPC_SNSSAI_specs_1; -extern asn_TYPE_member_t asn_MBR_SNSSAI_1[2]; - -#ifdef __cplusplus -} -#endif - -#endif /* _SNSSAI_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/ServedPlmnPerCellListItem.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/ServedPlmnPerCellListItem.c deleted file mode 100644 index 52fbaf5..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/ServedPlmnPerCellListItem.c +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "ServedPlmnPerCellListItem.h" - -asn_TYPE_member_t asn_MBR_ServedPlmnPerCellListItem_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct ServedPlmnPerCellListItem, pLMN_Identity), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_PLMN_Identity, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "pLMN-Identity" - }, - { ATF_POINTER, 2, offsetof(struct ServedPlmnPerCellListItem, du_PM_5GC), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_FGC_DU_PM_Container, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "du-PM-5GC" - }, - { ATF_POINTER, 1, offsetof(struct ServedPlmnPerCellListItem, du_PM_EPC), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_EPC_DU_PM_Container, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "du-PM-EPC" - }, -}; -static const int asn_MAP_ServedPlmnPerCellListItem_oms_1[] = { 1, 2 }; -static const ber_tlv_tag_t asn_DEF_ServedPlmnPerCellListItem_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ServedPlmnPerCellListItem_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pLMN-Identity */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* du-PM-5GC */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* du-PM-EPC */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ServedPlmnPerCellListItem_specs_1 = { - sizeof(struct ServedPlmnPerCellListItem), - offsetof(struct ServedPlmnPerCellListItem, _asn_ctx), - asn_MAP_ServedPlmnPerCellListItem_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_ServedPlmnPerCellListItem_oms_1, /* Optional members */ - 2, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ServedPlmnPerCellListItem = { - "ServedPlmnPerCellListItem", - "ServedPlmnPerCellListItem", - &asn_OP_SEQUENCE, - asn_DEF_ServedPlmnPerCellListItem_tags_1, - sizeof(asn_DEF_ServedPlmnPerCellListItem_tags_1) - /sizeof(asn_DEF_ServedPlmnPerCellListItem_tags_1[0]), /* 1 */ - asn_DEF_ServedPlmnPerCellListItem_tags_1, /* Same as above */ - sizeof(asn_DEF_ServedPlmnPerCellListItem_tags_1) - /sizeof(asn_DEF_ServedPlmnPerCellListItem_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ServedPlmnPerCellListItem_1, - 3, /* Elements count */ - &asn_SPC_ServedPlmnPerCellListItem_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/ServedPlmnPerCellListItem.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/ServedPlmnPerCellListItem.h deleted file mode 100644 index be5ecd6..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/ServedPlmnPerCellListItem.h +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _ServedPlmnPerCellListItem_H_ -#define _ServedPlmnPerCellListItem_H_ - - -#include - -/* Including external dependencies */ -#include "PLMN-Identity.h" -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct FGC_DU_PM_Container; -struct EPC_DU_PM_Container; - -/* ServedPlmnPerCellListItem */ -typedef struct ServedPlmnPerCellListItem { - PLMN_Identity_t pLMN_Identity; - struct FGC_DU_PM_Container *du_PM_5GC; /* OPTIONAL */ - struct EPC_DU_PM_Container *du_PM_EPC; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ServedPlmnPerCellListItem_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ServedPlmnPerCellListItem; -extern asn_SEQUENCE_specifics_t asn_SPC_ServedPlmnPerCellListItem_specs_1; -extern asn_TYPE_member_t asn_MBR_ServedPlmnPerCellListItem_1[3]; - -#ifdef __cplusplus -} -#endif - -/* Referred external types */ -#include "FGC-DU-PM-Container.h" -#include "EPC-DU-PM-Container.h" - -#endif /* _ServedPlmnPerCellListItem_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/SlicePerPlmnPerCellListItem.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/SlicePerPlmnPerCellListItem.c deleted file mode 100644 index a463803..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/SlicePerPlmnPerCellListItem.c +++ /dev/null @@ -1,139 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "SlicePerPlmnPerCellListItem.h" - -static int -memb_fQIPERSlicesPerPlmnPerCellList_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - /* Determine the number of elements */ - size = _A_CSEQUENCE_FROM_VOID(sptr)->count; - - if((size >= 1 && size <= 64)) { - /* Perform validation of the inner elements */ - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_oer_constraints_t asn_OER_type_fQIPERSlicesPerPlmnPerCellList_constr_3 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..64)) */}; -static asn_per_constraints_t asn_PER_type_fQIPERSlicesPerPlmnPerCellList_constr_3 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 6, 6, 1, 64 } /* (SIZE(1..64)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_fQIPERSlicesPerPlmnPerCellList_constr_3 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..64)) */}; -static asn_per_constraints_t asn_PER_memb_fQIPERSlicesPerPlmnPerCellList_constr_3 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 6, 6, 1, 64 } /* (SIZE(1..64)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_fQIPERSlicesPerPlmnPerCellList_3[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_FQIPERSlicesPerPlmnPerCellListItem, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_fQIPERSlicesPerPlmnPerCellList_tags_3[] = { - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_fQIPERSlicesPerPlmnPerCellList_specs_3 = { - sizeof(struct SlicePerPlmnPerCellListItem__fQIPERSlicesPerPlmnPerCellList), - offsetof(struct SlicePerPlmnPerCellListItem__fQIPERSlicesPerPlmnPerCellList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_fQIPERSlicesPerPlmnPerCellList_3 = { - "fQIPERSlicesPerPlmnPerCellList", - "fQIPERSlicesPerPlmnPerCellList", - &asn_OP_SEQUENCE_OF, - asn_DEF_fQIPERSlicesPerPlmnPerCellList_tags_3, - sizeof(asn_DEF_fQIPERSlicesPerPlmnPerCellList_tags_3) - /sizeof(asn_DEF_fQIPERSlicesPerPlmnPerCellList_tags_3[0]) - 1, /* 1 */ - asn_DEF_fQIPERSlicesPerPlmnPerCellList_tags_3, /* Same as above */ - sizeof(asn_DEF_fQIPERSlicesPerPlmnPerCellList_tags_3) - /sizeof(asn_DEF_fQIPERSlicesPerPlmnPerCellList_tags_3[0]), /* 2 */ - { &asn_OER_type_fQIPERSlicesPerPlmnPerCellList_constr_3, &asn_PER_type_fQIPERSlicesPerPlmnPerCellList_constr_3, SEQUENCE_OF_constraint }, - asn_MBR_fQIPERSlicesPerPlmnPerCellList_3, - 1, /* Single element */ - &asn_SPC_fQIPERSlicesPerPlmnPerCellList_specs_3 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_SlicePerPlmnPerCellListItem_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct SlicePerPlmnPerCellListItem, sliceID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_SNSSAI, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "sliceID" - }, - { ATF_NOFLAGS, 0, offsetof(struct SlicePerPlmnPerCellListItem, fQIPERSlicesPerPlmnPerCellList), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - 0, - &asn_DEF_fQIPERSlicesPerPlmnPerCellList_3, - 0, - { &asn_OER_memb_fQIPERSlicesPerPlmnPerCellList_constr_3, &asn_PER_memb_fQIPERSlicesPerPlmnPerCellList_constr_3, memb_fQIPERSlicesPerPlmnPerCellList_constraint_1 }, - 0, 0, /* No default value */ - "fQIPERSlicesPerPlmnPerCellList" - }, -}; -static const ber_tlv_tag_t asn_DEF_SlicePerPlmnPerCellListItem_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_SlicePerPlmnPerCellListItem_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sliceID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* fQIPERSlicesPerPlmnPerCellList */ -}; -asn_SEQUENCE_specifics_t asn_SPC_SlicePerPlmnPerCellListItem_specs_1 = { - sizeof(struct SlicePerPlmnPerCellListItem), - offsetof(struct SlicePerPlmnPerCellListItem, _asn_ctx), - asn_MAP_SlicePerPlmnPerCellListItem_tag2el_1, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 2, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_SlicePerPlmnPerCellListItem = { - "SlicePerPlmnPerCellListItem", - "SlicePerPlmnPerCellListItem", - &asn_OP_SEQUENCE, - asn_DEF_SlicePerPlmnPerCellListItem_tags_1, - sizeof(asn_DEF_SlicePerPlmnPerCellListItem_tags_1) - /sizeof(asn_DEF_SlicePerPlmnPerCellListItem_tags_1[0]), /* 1 */ - asn_DEF_SlicePerPlmnPerCellListItem_tags_1, /* Same as above */ - sizeof(asn_DEF_SlicePerPlmnPerCellListItem_tags_1) - /sizeof(asn_DEF_SlicePerPlmnPerCellListItem_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_SlicePerPlmnPerCellListItem_1, - 2, /* Elements count */ - &asn_SPC_SlicePerPlmnPerCellListItem_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/SlicePerPlmnPerCellListItem.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/SlicePerPlmnPerCellListItem.h deleted file mode 100644 index 1d704d5..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/SlicePerPlmnPerCellListItem.h +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _SlicePerPlmnPerCellListItem_H_ -#define _SlicePerPlmnPerCellListItem_H_ - - -#include - -/* Including external dependencies */ -#include "SNSSAI.h" -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct FQIPERSlicesPerPlmnPerCellListItem; - -/* SlicePerPlmnPerCellListItem */ -typedef struct SlicePerPlmnPerCellListItem { - SNSSAI_t sliceID; - struct SlicePerPlmnPerCellListItem__fQIPERSlicesPerPlmnPerCellList { - A_SEQUENCE_OF(struct FQIPERSlicesPerPlmnPerCellListItem) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } fQIPERSlicesPerPlmnPerCellList; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} SlicePerPlmnPerCellListItem_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_SlicePerPlmnPerCellListItem; -extern asn_SEQUENCE_specifics_t asn_SPC_SlicePerPlmnPerCellListItem_specs_1; -extern asn_TYPE_member_t asn_MBR_SlicePerPlmnPerCellListItem_1[2]; - -#ifdef __cplusplus -} -#endif - -/* Referred external types */ -#include "FQIPERSlicesPerPlmnPerCellListItem.h" - -#endif /* _SlicePerPlmnPerCellListItem_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/SliceToReportListItem.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/SliceToReportListItem.c deleted file mode 100644 index ae32ba9..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/SliceToReportListItem.c +++ /dev/null @@ -1,139 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "SliceToReportListItem.h" - -static int -memb_fQIPERSlicesPerPlmnList_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - /* Determine the number of elements */ - size = _A_CSEQUENCE_FROM_VOID(sptr)->count; - - if((size >= 1 && size <= 64)) { - /* Perform validation of the inner elements */ - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_oer_constraints_t asn_OER_type_fQIPERSlicesPerPlmnList_constr_3 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..64)) */}; -static asn_per_constraints_t asn_PER_type_fQIPERSlicesPerPlmnList_constr_3 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 6, 6, 1, 64 } /* (SIZE(1..64)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_fQIPERSlicesPerPlmnList_constr_3 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..64)) */}; -static asn_per_constraints_t asn_PER_memb_fQIPERSlicesPerPlmnList_constr_3 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 6, 6, 1, 64 } /* (SIZE(1..64)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_fQIPERSlicesPerPlmnList_3[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_FQIPERSlicesPerPlmnListItem, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_fQIPERSlicesPerPlmnList_tags_3[] = { - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_fQIPERSlicesPerPlmnList_specs_3 = { - sizeof(struct SliceToReportListItem__fQIPERSlicesPerPlmnList), - offsetof(struct SliceToReportListItem__fQIPERSlicesPerPlmnList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_fQIPERSlicesPerPlmnList_3 = { - "fQIPERSlicesPerPlmnList", - "fQIPERSlicesPerPlmnList", - &asn_OP_SEQUENCE_OF, - asn_DEF_fQIPERSlicesPerPlmnList_tags_3, - sizeof(asn_DEF_fQIPERSlicesPerPlmnList_tags_3) - /sizeof(asn_DEF_fQIPERSlicesPerPlmnList_tags_3[0]) - 1, /* 1 */ - asn_DEF_fQIPERSlicesPerPlmnList_tags_3, /* Same as above */ - sizeof(asn_DEF_fQIPERSlicesPerPlmnList_tags_3) - /sizeof(asn_DEF_fQIPERSlicesPerPlmnList_tags_3[0]), /* 2 */ - { &asn_OER_type_fQIPERSlicesPerPlmnList_constr_3, &asn_PER_type_fQIPERSlicesPerPlmnList_constr_3, SEQUENCE_OF_constraint }, - asn_MBR_fQIPERSlicesPerPlmnList_3, - 1, /* Single element */ - &asn_SPC_fQIPERSlicesPerPlmnList_specs_3 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_SliceToReportListItem_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct SliceToReportListItem, sliceID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_SNSSAI, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "sliceID" - }, - { ATF_NOFLAGS, 0, offsetof(struct SliceToReportListItem, fQIPERSlicesPerPlmnList), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - 0, - &asn_DEF_fQIPERSlicesPerPlmnList_3, - 0, - { &asn_OER_memb_fQIPERSlicesPerPlmnList_constr_3, &asn_PER_memb_fQIPERSlicesPerPlmnList_constr_3, memb_fQIPERSlicesPerPlmnList_constraint_1 }, - 0, 0, /* No default value */ - "fQIPERSlicesPerPlmnList" - }, -}; -static const ber_tlv_tag_t asn_DEF_SliceToReportListItem_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_SliceToReportListItem_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sliceID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* fQIPERSlicesPerPlmnList */ -}; -asn_SEQUENCE_specifics_t asn_SPC_SliceToReportListItem_specs_1 = { - sizeof(struct SliceToReportListItem), - offsetof(struct SliceToReportListItem, _asn_ctx), - asn_MAP_SliceToReportListItem_tag2el_1, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 2, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_SliceToReportListItem = { - "SliceToReportListItem", - "SliceToReportListItem", - &asn_OP_SEQUENCE, - asn_DEF_SliceToReportListItem_tags_1, - sizeof(asn_DEF_SliceToReportListItem_tags_1) - /sizeof(asn_DEF_SliceToReportListItem_tags_1[0]), /* 1 */ - asn_DEF_SliceToReportListItem_tags_1, /* Same as above */ - sizeof(asn_DEF_SliceToReportListItem_tags_1) - /sizeof(asn_DEF_SliceToReportListItem_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_SliceToReportListItem_1, - 2, /* Elements count */ - &asn_SPC_SliceToReportListItem_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/SliceToReportListItem.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/SliceToReportListItem.h deleted file mode 100644 index c25b20a..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/SliceToReportListItem.h +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _SliceToReportListItem_H_ -#define _SliceToReportListItem_H_ - - -#include - -/* Including external dependencies */ -#include "SNSSAI.h" -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct FQIPERSlicesPerPlmnListItem; - -/* SliceToReportListItem */ -typedef struct SliceToReportListItem { - SNSSAI_t sliceID; - struct SliceToReportListItem__fQIPERSlicesPerPlmnList { - A_SEQUENCE_OF(struct FQIPERSlicesPerPlmnListItem) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } fQIPERSlicesPerPlmnList; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} SliceToReportListItem_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_SliceToReportListItem; -extern asn_SEQUENCE_specifics_t asn_SPC_SliceToReportListItem_specs_1; -extern asn_TYPE_member_t asn_MBR_SliceToReportListItem_1[2]; - -#ifdef __cplusplus -} -#endif - -/* Referred external types */ -#include "FQIPERSlicesPerPlmnListItem.h" - -#endif /* _SliceToReportListItem_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/SuccessfulOutcome.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/SuccessfulOutcome.c deleted file mode 100644 index 55bad07..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/SuccessfulOutcome.c +++ /dev/null @@ -1,359 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Descriptions" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "SuccessfulOutcome.h" - -static const long asn_VAL_1_id_RICsubscription = 8; -static const long asn_VAL_1_reject = 0; -static const long asn_VAL_2_id_RICsubscriptionDelete = 9; -static const long asn_VAL_2_reject = 0; -static const long asn_VAL_3_id_RICserviceUpdate = 7; -static const long asn_VAL_3_reject = 0; -static const long asn_VAL_4_id_RICcontrol = 4; -static const long asn_VAL_4_reject = 0; -static const long asn_VAL_5_id_E2setup = 1; -static const long asn_VAL_5_reject = 0; -static const long asn_VAL_6_id_Reset = 3; -static const long asn_VAL_6_reject = 0; -static const long asn_VAL_7_id_RICindication = 5; -static const long asn_VAL_7_ignore = 1; -static const long asn_VAL_8_id_RICserviceQuery = 6; -static const long asn_VAL_8_ignore = 1; -static const long asn_VAL_9_id_ErrorIndication = 2; -static const long asn_VAL_9_ignore = 1; -static const asn_ioc_cell_t asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1_rows[] = { - { "&InitiatingMessage", aioc__type, &asn_DEF_RICsubscriptionRequest }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionResponse }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_1_id_RICsubscription }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_1_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_RICsubscriptionDeleteRequest }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionDeleteResponse }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionDeleteFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_2_id_RICsubscriptionDelete }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_2_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_RICserviceUpdate }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_RICserviceUpdateAcknowledge }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RICserviceUpdateFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_3_id_RICserviceUpdate }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_3_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_RICcontrolRequest }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_RICcontrolAcknowledge }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RICcontrolFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_4_id_RICcontrol }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_4_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_E2setupRequest }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_E2setupResponse }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_E2setupFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_5_id_E2setup }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_5_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_ResetRequest }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_ResetResponse }, - { "&UnsuccessfulOutcome", }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_6_id_Reset }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_6_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_RICindication }, - { "&SuccessfulOutcome", }, - { "&UnsuccessfulOutcome", }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_7_id_RICindication }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_7_ignore }, - { "&InitiatingMessage", aioc__type, &asn_DEF_RICserviceQuery }, - { "&SuccessfulOutcome", }, - { "&UnsuccessfulOutcome", }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_8_id_RICserviceQuery }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_8_ignore }, - { "&InitiatingMessage", aioc__type, &asn_DEF_ErrorIndication }, - { "&SuccessfulOutcome", }, - { "&UnsuccessfulOutcome", }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_9_id_ErrorIndication }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_9_ignore } -}; -static const asn_ioc_set_t asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1[] = { - { 9, 5, asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1_rows } -}; -static int -memb_procedureCode_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 255)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_SuccessfulOutcome_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1; - size_t constraining_column = 3; /* &procedureCode */ - size_t for_column = 4; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SuccessfulOutcome, procedureCode)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_SuccessfulOutcome_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1; - size_t constraining_column = 3; /* &procedureCode */ - size_t for_column = 1; /* &SuccessfulOutcome */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SuccessfulOutcome, procedureCode)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_per_constraints_t asn_PER_memb_procedureCode_constr_2 CC_NOTUSED = { - { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_3 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_4 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_value_4[] = { - { ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome__value, choice.RICsubscriptionResponse), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICsubscriptionResponse, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICsubscriptionResponse" - }, - { ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome__value, choice.RICsubscriptionDeleteResponse), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICsubscriptionDeleteResponse, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICsubscriptionDeleteResponse" - }, - { ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome__value, choice.RICserviceUpdateAcknowledge), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICserviceUpdateAcknowledge, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICserviceUpdateAcknowledge" - }, - { ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome__value, choice.RICcontrolAcknowledge), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICcontrolAcknowledge, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICcontrolAcknowledge" - }, - { ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome__value, choice.E2setupResponse), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E2setupResponse, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "E2setupResponse" - }, - { ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome__value, choice.ResetResponse), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ResetResponse, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ResetResponse" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_4[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 5 }, /* RICsubscriptionResponse */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 4 }, /* RICsubscriptionDeleteResponse */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -2, 3 }, /* RICserviceUpdateAcknowledge */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -3, 2 }, /* RICcontrolAcknowledge */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, -4, 1 }, /* E2setupResponse */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 5, -5, 0 } /* ResetResponse */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_4 = { - sizeof(struct SuccessfulOutcome__value), - offsetof(struct SuccessfulOutcome__value, _asn_ctx), - offsetof(struct SuccessfulOutcome__value, present), - sizeof(((struct SuccessfulOutcome__value *)0)->present), - asn_MAP_value_tag2el_4, - 6, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_4 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_4, - 6, /* Elements count */ - &asn_SPC_value_specs_4 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_SuccessfulOutcome_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome, procedureCode), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProcedureCode, - 0, - { 0, &asn_PER_memb_procedureCode_constr_2, memb_procedureCode_constraint_1 }, - 0, 0, /* No default value */ - "procedureCode" - }, - { ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_SuccessfulOutcome_criticality_type, - { 0, &asn_PER_memb_criticality_constr_3, memb_criticality_constraint_1 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_4, - select_SuccessfulOutcome_value_type, - { 0, &asn_PER_memb_value_constr_4, memb_value_constraint_1 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_SuccessfulOutcome_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_SuccessfulOutcome_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* procedureCode */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_SuccessfulOutcome_specs_1 = { - sizeof(struct SuccessfulOutcome), - offsetof(struct SuccessfulOutcome, _asn_ctx), - asn_MAP_SuccessfulOutcome_tag2el_1, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_SuccessfulOutcome = { - "SuccessfulOutcome", - "SuccessfulOutcome", - &asn_OP_SEQUENCE, - asn_DEF_SuccessfulOutcome_tags_1, - sizeof(asn_DEF_SuccessfulOutcome_tags_1) - /sizeof(asn_DEF_SuccessfulOutcome_tags_1[0]), /* 1 */ - asn_DEF_SuccessfulOutcome_tags_1, /* Same as above */ - sizeof(asn_DEF_SuccessfulOutcome_tags_1) - /sizeof(asn_DEF_SuccessfulOutcome_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_SuccessfulOutcome_1, - 3, /* Elements count */ - &asn_SPC_SuccessfulOutcome_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/SuccessfulOutcome.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/SuccessfulOutcome.h deleted file mode 100644 index fd04d94..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/SuccessfulOutcome.h +++ /dev/null @@ -1,91 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Descriptions" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _SuccessfulOutcome_H_ -#define _SuccessfulOutcome_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProcedureCode.h" -#include "Criticality.h" -#include "ANY.h" -#include "asn_ioc.h" -#include "RICsubscriptionRequest.h" -#include "RICsubscriptionResponse.h" -#include "RICsubscriptionFailure.h" -#include "RICsubscriptionDeleteRequest.h" -#include "RICsubscriptionDeleteResponse.h" -#include "RICsubscriptionDeleteFailure.h" -#include "RICserviceUpdate.h" -#include "RICserviceUpdateAcknowledge.h" -#include "RICserviceUpdateFailure.h" -#include "RICcontrolRequest.h" -#include "RICcontrolAcknowledge.h" -#include "RICcontrolFailure.h" -#include "E2setupRequest.h" -#include "E2setupResponse.h" -#include "E2setupFailure.h" -#include "ResetRequest.h" -#include "ResetResponse.h" -#include "RICindication.h" -#include "RICserviceQuery.h" -#include "ErrorIndication.h" -#include "OPEN_TYPE.h" -#include "constr_CHOICE.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum SuccessfulOutcome__value_PR { - SuccessfulOutcome__value_PR_NOTHING, /* No components present */ - SuccessfulOutcome__value_PR_RICsubscriptionResponse, - SuccessfulOutcome__value_PR_RICsubscriptionDeleteResponse, - SuccessfulOutcome__value_PR_RICserviceUpdateAcknowledge, - SuccessfulOutcome__value_PR_RICcontrolAcknowledge, - SuccessfulOutcome__value_PR_E2setupResponse, - SuccessfulOutcome__value_PR_ResetResponse -} SuccessfulOutcome__value_PR; - -/* SuccessfulOutcome */ -typedef struct SuccessfulOutcome { - ProcedureCode_t procedureCode; - Criticality_t criticality; - struct SuccessfulOutcome__value { - SuccessfulOutcome__value_PR present; - union SuccessfulOutcome__value_u { - RICsubscriptionResponse_t RICsubscriptionResponse; - RICsubscriptionDeleteResponse_t RICsubscriptionDeleteResponse; - RICserviceUpdateAcknowledge_t RICserviceUpdateAcknowledge; - RICcontrolAcknowledge_t RICcontrolAcknowledge; - E2setupResponse_t E2setupResponse; - ResetResponse_t ResetResponse; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} SuccessfulOutcome_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_SuccessfulOutcome; -extern asn_SEQUENCE_specifics_t asn_SPC_SuccessfulOutcome_specs_1; -extern asn_TYPE_member_t asn_MBR_SuccessfulOutcome_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _SuccessfulOutcome_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/TimeToWait.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/TimeToWait.c deleted file mode 100644 index c4eec34..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/TimeToWait.c +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "TimeToWait.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -static asn_per_constraints_t asn_PER_type_TimeToWait_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 5 } /* (0..5,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_TimeToWait_value2enum_1[] = { - { 0, 3, "v1s" }, - { 1, 3, "v2s" }, - { 2, 3, "v5s" }, - { 3, 4, "v10s" }, - { 4, 4, "v20s" }, - { 5, 4, "v60s" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_TimeToWait_enum2value_1[] = { - 3, /* v10s(3) */ - 0, /* v1s(0) */ - 4, /* v20s(4) */ - 1, /* v2s(1) */ - 2, /* v5s(2) */ - 5 /* v60s(5) */ - /* This list is extensible */ -}; -static const asn_INTEGER_specifics_t asn_SPC_TimeToWait_specs_1 = { - asn_MAP_TimeToWait_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_TimeToWait_enum2value_1, /* N => "tag"; sorted by N */ - 6, /* Number of elements in the maps */ - 7, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_TimeToWait_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_TimeToWait = { - "TimeToWait", - "TimeToWait", - &asn_OP_NativeEnumerated, - asn_DEF_TimeToWait_tags_1, - sizeof(asn_DEF_TimeToWait_tags_1) - /sizeof(asn_DEF_TimeToWait_tags_1[0]), /* 1 */ - asn_DEF_TimeToWait_tags_1, /* Same as above */ - sizeof(asn_DEF_TimeToWait_tags_1) - /sizeof(asn_DEF_TimeToWait_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_TimeToWait_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_TimeToWait_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/TimeToWait.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/TimeToWait.h deleted file mode 100644 index 6fad8ee..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/TimeToWait.h +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _TimeToWait_H_ -#define _TimeToWait_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum TimeToWait { - TimeToWait_v1s = 0, - TimeToWait_v2s = 1, - TimeToWait_v5s = 2, - TimeToWait_v10s = 3, - TimeToWait_v20s = 4, - TimeToWait_v60s = 5 - /* - * Enumeration is extensible - */ -} e_TimeToWait; - -/* TimeToWait */ -typedef long TimeToWait_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_TimeToWait; -asn_struct_free_f TimeToWait_free; -asn_struct_print_f TimeToWait_print; -asn_constr_check_f TimeToWait_constraint; -ber_type_decoder_f TimeToWait_decode_ber; -der_type_encoder_f TimeToWait_encode_der; -xer_type_decoder_f TimeToWait_decode_xer; -xer_type_encoder_f TimeToWait_encode_xer; -per_type_decoder_f TimeToWait_decode_uper; -per_type_encoder_f TimeToWait_encode_uper; -per_type_decoder_f TimeToWait_decode_aper; -per_type_encoder_f TimeToWait_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _TimeToWait_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/Timestamp.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/Timestamp.c deleted file mode 100644 index 4087751..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/Timestamp.c +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "Timestamp.h" - -/* - * This type is implemented using OCTET_STRING, - * so here we adjust the DEF accordingly. - */ -static const ber_tlv_tag_t asn_DEF_Timestamp_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_Timestamp = { - "Timestamp", - "Timestamp", - &asn_OP_OCTET_STRING, - asn_DEF_Timestamp_tags_1, - sizeof(asn_DEF_Timestamp_tags_1) - /sizeof(asn_DEF_Timestamp_tags_1[0]), /* 1 */ - asn_DEF_Timestamp_tags_1, /* Same as above */ - sizeof(asn_DEF_Timestamp_tags_1) - /sizeof(asn_DEF_Timestamp_tags_1[0]), /* 1 */ - { 0, 0, OCTET_STRING_constraint }, - 0, 0, /* No members */ - &asn_SPC_OCTET_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/Timestamp.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/Timestamp.h deleted file mode 100644 index f77ac4a..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/Timestamp.h +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _Timestamp_H_ -#define _Timestamp_H_ - - -#include - -/* Including external dependencies */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Timestamp */ -typedef OCTET_STRING_t Timestamp_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_Timestamp; -asn_struct_free_f Timestamp_free; -asn_struct_print_f Timestamp_print; -asn_constr_check_f Timestamp_constraint; -ber_type_decoder_f Timestamp_decode_ber; -der_type_encoder_f Timestamp_encode_der; -xer_type_decoder_f Timestamp_decode_xer; -xer_type_encoder_f Timestamp_encode_xer; -oer_type_decoder_f Timestamp_decode_oer; -oer_type_encoder_f Timestamp_encode_oer; -per_type_decoder_f Timestamp_decode_uper; -per_type_encoder_f Timestamp_encode_uper; -per_type_decoder_f Timestamp_decode_aper; -per_type_encoder_f Timestamp_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _Timestamp_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/Trigger-ConditionIE-Item.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/Trigger-ConditionIE-Item.c deleted file mode 100644 index 069fd1d..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/Trigger-ConditionIE-Item.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "Trigger-ConditionIE-Item.h" - -asn_TYPE_member_t asn_MBR_Trigger_ConditionIE_Item_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct Trigger_ConditionIE_Item, report_Period_IE), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RT_Period_IE, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "report-Period-IE" - }, -}; -static const ber_tlv_tag_t asn_DEF_Trigger_ConditionIE_Item_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_Trigger_ConditionIE_Item_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* report-Period-IE */ -}; -asn_SEQUENCE_specifics_t asn_SPC_Trigger_ConditionIE_Item_specs_1 = { - sizeof(struct Trigger_ConditionIE_Item), - offsetof(struct Trigger_ConditionIE_Item, _asn_ctx), - asn_MAP_Trigger_ConditionIE_Item_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_Trigger_ConditionIE_Item = { - "Trigger-ConditionIE-Item", - "Trigger-ConditionIE-Item", - &asn_OP_SEQUENCE, - asn_DEF_Trigger_ConditionIE_Item_tags_1, - sizeof(asn_DEF_Trigger_ConditionIE_Item_tags_1) - /sizeof(asn_DEF_Trigger_ConditionIE_Item_tags_1[0]), /* 1 */ - asn_DEF_Trigger_ConditionIE_Item_tags_1, /* Same as above */ - sizeof(asn_DEF_Trigger_ConditionIE_Item_tags_1) - /sizeof(asn_DEF_Trigger_ConditionIE_Item_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_Trigger_ConditionIE_Item_1, - 1, /* Elements count */ - &asn_SPC_Trigger_ConditionIE_Item_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/Trigger-ConditionIE-Item.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/Trigger-ConditionIE-Item.h deleted file mode 100644 index 173b46a..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/Trigger-ConditionIE-Item.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _Trigger_ConditionIE_Item_H_ -#define _Trigger_ConditionIE_Item_H_ - - -#include - -/* Including external dependencies */ -#include "RT-Period-IE.h" -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Trigger-ConditionIE-Item */ -typedef struct Trigger_ConditionIE_Item { - RT_Period_IE_t report_Period_IE; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} Trigger_ConditionIE_Item_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_Trigger_ConditionIE_Item; -extern asn_SEQUENCE_specifics_t asn_SPC_Trigger_ConditionIE_Item_specs_1; -extern asn_TYPE_member_t asn_MBR_Trigger_ConditionIE_Item_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _Trigger_ConditionIE_Item_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/TriggeringMessage.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/TriggeringMessage.c deleted file mode 100644 index 45dcd5f..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/TriggeringMessage.c +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-CommonDataTypes" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "TriggeringMessage.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_TriggeringMessage_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_TriggeringMessage_value2enum_1[] = { - { 0, 18, "initiating-message" }, - { 1, 18, "successful-outcome" }, - { 2, 21, "unsuccessfull-outcome" } -}; -static const unsigned int asn_MAP_TriggeringMessage_enum2value_1[] = { - 0, /* initiating-message(0) */ - 1, /* successful-outcome(1) */ - 2 /* unsuccessfull-outcome(2) */ -}; -const asn_INTEGER_specifics_t asn_SPC_TriggeringMessage_specs_1 = { - asn_MAP_TriggeringMessage_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_TriggeringMessage_enum2value_1, /* N => "tag"; sorted by N */ - 3, /* Number of elements in the maps */ - 0, /* Enumeration is not extensible */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_TriggeringMessage_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_TriggeringMessage = { - "TriggeringMessage", - "TriggeringMessage", - &asn_OP_NativeEnumerated, - asn_DEF_TriggeringMessage_tags_1, - sizeof(asn_DEF_TriggeringMessage_tags_1) - /sizeof(asn_DEF_TriggeringMessage_tags_1[0]), /* 1 */ - asn_DEF_TriggeringMessage_tags_1, /* Same as above */ - sizeof(asn_DEF_TriggeringMessage_tags_1) - /sizeof(asn_DEF_TriggeringMessage_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_TriggeringMessage_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_TriggeringMessage_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/TriggeringMessage.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/TriggeringMessage.h deleted file mode 100644 index 734cefa..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/TriggeringMessage.h +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-CommonDataTypes" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _TriggeringMessage_H_ -#define _TriggeringMessage_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum TriggeringMessage { - TriggeringMessage_initiating_message = 0, - TriggeringMessage_successful_outcome = 1, - TriggeringMessage_unsuccessfull_outcome = 2 -} e_TriggeringMessage; - -/* TriggeringMessage */ -typedef long TriggeringMessage_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_TriggeringMessage_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_TriggeringMessage; -extern const asn_INTEGER_specifics_t asn_SPC_TriggeringMessage_specs_1; -asn_struct_free_f TriggeringMessage_free; -asn_struct_print_f TriggeringMessage_print; -asn_constr_check_f TriggeringMessage_constraint; -ber_type_decoder_f TriggeringMessage_decode_ber; -der_type_encoder_f TriggeringMessage_encode_der; -xer_type_decoder_f TriggeringMessage_decode_xer; -xer_type_encoder_f TriggeringMessage_encode_xer; -per_type_decoder_f TriggeringMessage_decode_uper; -per_type_encoder_f TriggeringMessage_encode_uper; -per_type_decoder_f TriggeringMessage_decode_aper; -per_type_encoder_f TriggeringMessage_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _TriggeringMessage_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/TypeOfError.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/TypeOfError.c deleted file mode 100644 index 76beba5..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/TypeOfError.c +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "TypeOfError.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_TypeOfError_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_TypeOfError_value2enum_1[] = { - { 0, 14, "not-understood" }, - { 1, 7, "missing" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_TypeOfError_enum2value_1[] = { - 1, /* missing(1) */ - 0 /* not-understood(0) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_TypeOfError_specs_1 = { - asn_MAP_TypeOfError_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_TypeOfError_enum2value_1, /* N => "tag"; sorted by N */ - 2, /* Number of elements in the maps */ - 3, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_TypeOfError_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_TypeOfError = { - "TypeOfError", - "TypeOfError", - &asn_OP_NativeEnumerated, - asn_DEF_TypeOfError_tags_1, - sizeof(asn_DEF_TypeOfError_tags_1) - /sizeof(asn_DEF_TypeOfError_tags_1[0]), /* 1 */ - asn_DEF_TypeOfError_tags_1, /* Same as above */ - sizeof(asn_DEF_TypeOfError_tags_1) - /sizeof(asn_DEF_TypeOfError_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_TypeOfError_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_TypeOfError_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/TypeOfError.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/TypeOfError.h deleted file mode 100644 index 9451b1e..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/TypeOfError.h +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _TypeOfError_H_ -#define _TypeOfError_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum TypeOfError { - TypeOfError_not_understood = 0, - TypeOfError_missing = 1 - /* - * Enumeration is extensible - */ -} e_TypeOfError; - -/* TypeOfError */ -typedef long TypeOfError_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_TypeOfError_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_TypeOfError; -extern const asn_INTEGER_specifics_t asn_SPC_TypeOfError_specs_1; -asn_struct_free_f TypeOfError_free; -asn_struct_print_f TypeOfError_print; -asn_constr_check_f TypeOfError_constraint; -ber_type_decoder_f TypeOfError_decode_ber; -der_type_encoder_f TypeOfError_encode_der; -xer_type_decoder_f TypeOfError_decode_xer; -xer_type_encoder_f TypeOfError_encode_xer; -per_type_decoder_f TypeOfError_decode_uper; -per_type_encoder_f TypeOfError_encode_uper; -per_type_decoder_f TypeOfError_decode_aper; -per_type_encoder_f TypeOfError_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _TypeOfError_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/UE-Report-Type.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/UE-Report-Type.c deleted file mode 100644 index 1966c27..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/UE-Report-Type.c +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "UE-Report-Type.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -static asn_oer_constraints_t asn_OER_type_UE_Report_Type_constr_1 CC_NOTUSED = { - { 0, 0 }, - -1}; -asn_per_constraints_t asn_PER_type_UE_Report_Type_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 2 } /* (0..2,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_UE_Report_Type_value2enum_1[] = { - { 0, 17, "oDU-Report-Per-UE" }, - { 1, 20, "oCU-CP-Report-Per-UE" }, - { 2, 20, "oCU-UP-Report-Per-UE" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_UE_Report_Type_enum2value_1[] = { - 1, /* oCU-CP-Report-Per-UE(1) */ - 2, /* oCU-UP-Report-Per-UE(2) */ - 0 /* oDU-Report-Per-UE(0) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_UE_Report_Type_specs_1 = { - asn_MAP_UE_Report_Type_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_UE_Report_Type_enum2value_1, /* N => "tag"; sorted by N */ - 3, /* Number of elements in the maps */ - 4, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_UE_Report_Type_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_UE_Report_Type = { - "UE-Report-Type", - "UE-Report-Type", - &asn_OP_NativeEnumerated, - asn_DEF_UE_Report_Type_tags_1, - sizeof(asn_DEF_UE_Report_Type_tags_1) - /sizeof(asn_DEF_UE_Report_Type_tags_1[0]), /* 1 */ - asn_DEF_UE_Report_Type_tags_1, /* Same as above */ - sizeof(asn_DEF_UE_Report_Type_tags_1) - /sizeof(asn_DEF_UE_Report_Type_tags_1[0]), /* 1 */ - { &asn_OER_type_UE_Report_Type_constr_1, &asn_PER_type_UE_Report_Type_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_UE_Report_Type_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/UE-Report-Type.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/UE-Report-Type.h deleted file mode 100644 index 02e7cb5..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/UE-Report-Type.h +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _UE_Report_Type_H_ -#define _UE_Report_Type_H_ - - -#include - -/* Including external dependencies */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum UE_Report_Type { - UE_Report_Type_oDU_Report_Per_UE = 0, - UE_Report_Type_oCU_CP_Report_Per_UE = 1, - UE_Report_Type_oCU_UP_Report_Per_UE = 2 - /* - * Enumeration is extensible - */ -} e_UE_Report_Type; - -/* UE-Report-Type */ -typedef long UE_Report_Type_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_UE_Report_Type_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_UE_Report_Type; -extern const asn_INTEGER_specifics_t asn_SPC_UE_Report_Type_specs_1; -asn_struct_free_f UE_Report_Type_free; -asn_struct_print_f UE_Report_Type_print; -asn_constr_check_f UE_Report_Type_constraint; -ber_type_decoder_f UE_Report_Type_decode_ber; -der_type_encoder_f UE_Report_Type_encode_der; -xer_type_decoder_f UE_Report_Type_decode_xer; -xer_type_encoder_f UE_Report_Type_encode_xer; -oer_type_decoder_f UE_Report_Type_decode_oer; -oer_type_encoder_f UE_Report_Type_encode_oer; -per_type_decoder_f UE_Report_Type_decode_uper; -per_type_encoder_f UE_Report_Type_encode_uper; -per_type_decoder_f UE_Report_Type_decode_aper; -per_type_encoder_f UE_Report_Type_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _UE_Report_Type_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/UnsuccessfulOutcome.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/UnsuccessfulOutcome.c deleted file mode 100644 index 327134e..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/UnsuccessfulOutcome.c +++ /dev/null @@ -1,349 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Descriptions" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "UnsuccessfulOutcome.h" - -static const long asn_VAL_1_id_RICsubscription = 8; -static const long asn_VAL_1_reject = 0; -static const long asn_VAL_2_id_RICsubscriptionDelete = 9; -static const long asn_VAL_2_reject = 0; -static const long asn_VAL_3_id_RICserviceUpdate = 7; -static const long asn_VAL_3_reject = 0; -static const long asn_VAL_4_id_RICcontrol = 4; -static const long asn_VAL_4_reject = 0; -static const long asn_VAL_5_id_E2setup = 1; -static const long asn_VAL_5_reject = 0; -static const long asn_VAL_6_id_Reset = 3; -static const long asn_VAL_6_reject = 0; -static const long asn_VAL_7_id_RICindication = 5; -static const long asn_VAL_7_ignore = 1; -static const long asn_VAL_8_id_RICserviceQuery = 6; -static const long asn_VAL_8_ignore = 1; -static const long asn_VAL_9_id_ErrorIndication = 2; -static const long asn_VAL_9_ignore = 1; -static const asn_ioc_cell_t asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1_rows[] = { - { "&InitiatingMessage", aioc__type, &asn_DEF_RICsubscriptionRequest }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionResponse }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_1_id_RICsubscription }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_1_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_RICsubscriptionDeleteRequest }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionDeleteResponse }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionDeleteFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_2_id_RICsubscriptionDelete }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_2_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_RICserviceUpdate }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_RICserviceUpdateAcknowledge }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RICserviceUpdateFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_3_id_RICserviceUpdate }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_3_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_RICcontrolRequest }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_RICcontrolAcknowledge }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RICcontrolFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_4_id_RICcontrol }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_4_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_E2setupRequest }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_E2setupResponse }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_E2setupFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_5_id_E2setup }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_5_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_ResetRequest }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_ResetResponse }, - { "&UnsuccessfulOutcome", }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_6_id_Reset }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_6_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_RICindication }, - { "&SuccessfulOutcome", }, - { "&UnsuccessfulOutcome", }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_7_id_RICindication }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_7_ignore }, - { "&InitiatingMessage", aioc__type, &asn_DEF_RICserviceQuery }, - { "&SuccessfulOutcome", }, - { "&UnsuccessfulOutcome", }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_8_id_RICserviceQuery }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_8_ignore }, - { "&InitiatingMessage", aioc__type, &asn_DEF_ErrorIndication }, - { "&SuccessfulOutcome", }, - { "&UnsuccessfulOutcome", }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_9_id_ErrorIndication }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_9_ignore } -}; -static const asn_ioc_set_t asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1[] = { - { 9, 5, asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1_rows } -}; -static int -memb_procedureCode_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 255)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_UnsuccessfulOutcome_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1; - size_t constraining_column = 3; /* &procedureCode */ - size_t for_column = 4; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct UnsuccessfulOutcome, procedureCode)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_UnsuccessfulOutcome_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1; - size_t constraining_column = 3; /* &procedureCode */ - size_t for_column = 2; /* &UnsuccessfulOutcome */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct UnsuccessfulOutcome, procedureCode)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_per_constraints_t asn_PER_memb_procedureCode_constr_2 CC_NOTUSED = { - { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_3 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_4 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_value_4[] = { - { ATF_NOFLAGS, 0, offsetof(struct UnsuccessfulOutcome__value, choice.RICsubscriptionFailure), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICsubscriptionFailure, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICsubscriptionFailure" - }, - { ATF_NOFLAGS, 0, offsetof(struct UnsuccessfulOutcome__value, choice.RICsubscriptionDeleteFailure), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICsubscriptionDeleteFailure, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICsubscriptionDeleteFailure" - }, - { ATF_NOFLAGS, 0, offsetof(struct UnsuccessfulOutcome__value, choice.RICserviceUpdateFailure), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICserviceUpdateFailure, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICserviceUpdateFailure" - }, - { ATF_NOFLAGS, 0, offsetof(struct UnsuccessfulOutcome__value, choice.RICcontrolFailure), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICcontrolFailure, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICcontrolFailure" - }, - { ATF_NOFLAGS, 0, offsetof(struct UnsuccessfulOutcome__value, choice.E2setupFailure), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E2setupFailure, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "E2setupFailure" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_4[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 4 }, /* RICsubscriptionFailure */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 3 }, /* RICsubscriptionDeleteFailure */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -2, 2 }, /* RICserviceUpdateFailure */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -3, 1 }, /* RICcontrolFailure */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, -4, 0 } /* E2setupFailure */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_4 = { - sizeof(struct UnsuccessfulOutcome__value), - offsetof(struct UnsuccessfulOutcome__value, _asn_ctx), - offsetof(struct UnsuccessfulOutcome__value, present), - sizeof(((struct UnsuccessfulOutcome__value *)0)->present), - asn_MAP_value_tag2el_4, - 5, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_4 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_4, - 5, /* Elements count */ - &asn_SPC_value_specs_4 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_UnsuccessfulOutcome_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct UnsuccessfulOutcome, procedureCode), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProcedureCode, - 0, - { 0, &asn_PER_memb_procedureCode_constr_2, memb_procedureCode_constraint_1 }, - 0, 0, /* No default value */ - "procedureCode" - }, - { ATF_NOFLAGS, 0, offsetof(struct UnsuccessfulOutcome, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_UnsuccessfulOutcome_criticality_type, - { 0, &asn_PER_memb_criticality_constr_3, memb_criticality_constraint_1 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct UnsuccessfulOutcome, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_4, - select_UnsuccessfulOutcome_value_type, - { 0, &asn_PER_memb_value_constr_4, memb_value_constraint_1 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_UnsuccessfulOutcome_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_UnsuccessfulOutcome_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* procedureCode */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_UnsuccessfulOutcome_specs_1 = { - sizeof(struct UnsuccessfulOutcome), - offsetof(struct UnsuccessfulOutcome, _asn_ctx), - asn_MAP_UnsuccessfulOutcome_tag2el_1, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_UnsuccessfulOutcome = { - "UnsuccessfulOutcome", - "UnsuccessfulOutcome", - &asn_OP_SEQUENCE, - asn_DEF_UnsuccessfulOutcome_tags_1, - sizeof(asn_DEF_UnsuccessfulOutcome_tags_1) - /sizeof(asn_DEF_UnsuccessfulOutcome_tags_1[0]), /* 1 */ - asn_DEF_UnsuccessfulOutcome_tags_1, /* Same as above */ - sizeof(asn_DEF_UnsuccessfulOutcome_tags_1) - /sizeof(asn_DEF_UnsuccessfulOutcome_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_UnsuccessfulOutcome_1, - 3, /* Elements count */ - &asn_SPC_UnsuccessfulOutcome_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/UnsuccessfulOutcome.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/UnsuccessfulOutcome.h deleted file mode 100644 index 7762209..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/UnsuccessfulOutcome.h +++ /dev/null @@ -1,89 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Descriptions" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _UnsuccessfulOutcome_H_ -#define _UnsuccessfulOutcome_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProcedureCode.h" -#include "Criticality.h" -#include "ANY.h" -#include "asn_ioc.h" -#include "RICsubscriptionRequest.h" -#include "RICsubscriptionResponse.h" -#include "RICsubscriptionFailure.h" -#include "RICsubscriptionDeleteRequest.h" -#include "RICsubscriptionDeleteResponse.h" -#include "RICsubscriptionDeleteFailure.h" -#include "RICserviceUpdate.h" -#include "RICserviceUpdateAcknowledge.h" -#include "RICserviceUpdateFailure.h" -#include "RICcontrolRequest.h" -#include "RICcontrolAcknowledge.h" -#include "RICcontrolFailure.h" -#include "E2setupRequest.h" -#include "E2setupResponse.h" -#include "E2setupFailure.h" -#include "ResetRequest.h" -#include "ResetResponse.h" -#include "RICindication.h" -#include "RICserviceQuery.h" -#include "ErrorIndication.h" -#include "OPEN_TYPE.h" -#include "constr_CHOICE.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum UnsuccessfulOutcome__value_PR { - UnsuccessfulOutcome__value_PR_NOTHING, /* No components present */ - UnsuccessfulOutcome__value_PR_RICsubscriptionFailure, - UnsuccessfulOutcome__value_PR_RICsubscriptionDeleteFailure, - UnsuccessfulOutcome__value_PR_RICserviceUpdateFailure, - UnsuccessfulOutcome__value_PR_RICcontrolFailure, - UnsuccessfulOutcome__value_PR_E2setupFailure -} UnsuccessfulOutcome__value_PR; - -/* UnsuccessfulOutcome */ -typedef struct UnsuccessfulOutcome { - ProcedureCode_t procedureCode; - Criticality_t criticality; - struct UnsuccessfulOutcome__value { - UnsuccessfulOutcome__value_PR present; - union UnsuccessfulOutcome__value_u { - RICsubscriptionFailure_t RICsubscriptionFailure; - RICsubscriptionDeleteFailure_t RICsubscriptionDeleteFailure; - RICserviceUpdateFailure_t RICserviceUpdateFailure; - RICcontrolFailure_t RICcontrolFailure; - E2setupFailure_t E2setupFailure; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} UnsuccessfulOutcome_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_UnsuccessfulOutcome; -extern asn_SEQUENCE_specifics_t asn_SPC_UnsuccessfulOutcome_specs_1; -extern asn_TYPE_member_t asn_MBR_UnsuccessfulOutcome_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _UnsuccessfulOutcome_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/asn_SEQUENCE_OF.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/asn_SEQUENCE_OF.c deleted file mode 100644 index ec952fc..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/asn_SEQUENCE_OF.c +++ /dev/null @@ -1,41 +0,0 @@ -/*- - * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include - -typedef A_SEQUENCE_OF(void) asn_sequence; - -void -asn_sequence_del(void *asn_sequence_of_x, int number, int _do_free) { - asn_sequence *as = (asn_sequence *)asn_sequence_of_x; - - if(as) { - void *ptr; - int n; - - if(number < 0 || number >= as->count) - return; /* Nothing to delete */ - - if(_do_free && as->free) { - ptr = as->array[number]; - } else { - ptr = 0; - } - - /* - * Shift all elements to the left to hide the gap. - */ - --as->count; - for(n = number; n < as->count; n++) - as->array[n] = as->array[n+1]; - - /* - * Invoke the third-party function only when the state - * of the parent structure is consistent. - */ - if(ptr) as->free(ptr); - } -} - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/asn_SEQUENCE_OF.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/asn_SEQUENCE_OF.h deleted file mode 100644 index e35bc44..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/asn_SEQUENCE_OF.h +++ /dev/null @@ -1,52 +0,0 @@ -/*- - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef ASN_SEQUENCE_OF_H -#define ASN_SEQUENCE_OF_H - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * SEQUENCE OF is the same as SET OF with a tiny difference: - * the delete operation preserves the initial order of elements - * and thus MAY operate in non-constant time. - */ -#define A_SEQUENCE_OF(type) A_SET_OF(type) - -#define ASN_SEQUENCE_ADD(headptr, ptr) \ - asn_sequence_add((headptr), (ptr)) - -/*********************************************** - * Implementation of the SEQUENCE OF structure. - */ - -#define asn_sequence_add asn_set_add -#define asn_sequence_empty asn_set_empty - -/* - * Delete the element from the set by its number (base 0). - * This is NOT a constant-time operation. - * The order of elements is preserved. - * If _do_free is given AND the (*free) is initialized, the element - * will be freed using the custom (*free) function as well. - */ -void asn_sequence_del(void *asn_sequence_of_x, int number, int _do_free); - -/* - * Cope with different conversions requirements to/from void in C and C++. - * This is mostly useful for support library. - */ -typedef A_SEQUENCE_OF(void) asn_anonymous_sequence_; -#define _A_SEQUENCE_FROM_VOID(ptr) ((asn_anonymous_sequence_ *)(ptr)) -#define _A_CSEQUENCE_FROM_VOID(ptr) ((const asn_anonymous_sequence_ *)(ptr)) - -#ifdef __cplusplus -} -#endif - -#endif /* ASN_SEQUENCE_OF_H */ diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/asn_SET_OF.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/asn_SET_OF.c deleted file mode 100644 index 944f2cb..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/asn_SET_OF.c +++ /dev/null @@ -1,88 +0,0 @@ -/*- - * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include - -/* - * Add another element into the set. - */ -int -asn_set_add(void *asn_set_of_x, void *ptr) { - asn_anonymous_set_ *as = _A_SET_FROM_VOID(asn_set_of_x); - - if(as == 0 || ptr == 0) { - errno = EINVAL; /* Invalid arguments */ - return -1; - } - - /* - * Make sure there's enough space to insert an element. - */ - if(as->count == as->size) { - int _newsize = as->size ? (as->size << 1) : 4; - void *_new_arr; - _new_arr = REALLOC(as->array, _newsize * sizeof(as->array[0])); - if(_new_arr) { - as->array = (void **)_new_arr; - as->size = _newsize; - } else { - /* ENOMEM */ - return -1; - } - } - - as->array[as->count++] = ptr; - - return 0; -} - -void -asn_set_del(void *asn_set_of_x, int number, int _do_free) { - asn_anonymous_set_ *as = _A_SET_FROM_VOID(asn_set_of_x); - - if(as) { - void *ptr; - if(number < 0 || number >= as->count) - return; - - if(_do_free && as->free) { - ptr = as->array[number]; - } else { - ptr = 0; - } - - as->array[number] = as->array[--as->count]; - - /* - * Invoke the third-party function only when the state - * of the parent structure is consistent. - */ - if(ptr) as->free(ptr); - } -} - -/* - * Free the contents of the set, do not free the set itself. - */ -void -asn_set_empty(void *asn_set_of_x) { - asn_anonymous_set_ *as = _A_SET_FROM_VOID(asn_set_of_x); - - if(as) { - if(as->array) { - if(as->free) { - while(as->count--) - as->free(as->array[as->count]); - } - FREEMEM(as->array); - as->array = 0; - } - as->count = 0; - as->size = 0; - } - -} - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/asn_SET_OF.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/asn_SET_OF.h deleted file mode 100644 index 882e1a4..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/asn_SET_OF.h +++ /dev/null @@ -1,72 +0,0 @@ -/*- - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef ASN_SET_OF_H -#define ASN_SET_OF_H - -#ifdef __cplusplus -#define A_SET_OF(type) \ - struct { \ - type **array; \ - int count; /* Meaningful size */ \ - int size; /* Allocated size */ \ - void (*free)(decltype(*array)); \ - } -#else /* C */ -#define A_SET_OF(type) \ - struct { \ - type **array; \ - int count; /* Meaningful size */ \ - int size; /* Allocated size */ \ - void (*free)(type *); \ - } -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -#define ASN_SET_ADD(headptr, ptr) \ - asn_set_add((headptr), (ptr)) - -/******************************************* - * Implementation of the SET OF structure. - */ - -/* - * Add another structure into the set by its pointer. - * RETURN VALUES: - * 0 for success and -1/errno for failure. - */ -int asn_set_add(void *asn_set_of_x, void *ptr); - -/* - * Delete the element from the set by its number (base 0). - * This is a constant-time operation. The order of elements before the - * deleted ones is guaranteed, the order of elements after the deleted - * one is NOT guaranteed. - * If _do_free is given AND the (*free) is initialized, the element - * will be freed using the custom (*free) function as well. - */ -void asn_set_del(void *asn_set_of_x, int number, int _do_free); - -/* - * Empty the contents of the set. Will free the elements, if (*free) is given. - * Will NOT free the set itself. - */ -void asn_set_empty(void *asn_set_of_x); - -/* - * Cope with different conversions requirements to/from void in C and C++. - * This is mostly useful for support library. - */ -typedef A_SET_OF(void) asn_anonymous_set_; -#define _A_SET_FROM_VOID(ptr) ((asn_anonymous_set_ *)(ptr)) -#define _A_CSET_FROM_VOID(ptr) ((const asn_anonymous_set_ *)(ptr)) - -#ifdef __cplusplus -} -#endif - -#endif /* ASN_SET_OF_H */ diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/asn_application.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/asn_application.c deleted file mode 100644 index 2bff460..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/asn_application.c +++ /dev/null @@ -1,481 +0,0 @@ -/* - * Copyright (c) 2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include - -static asn_enc_rval_t asn_encode_internal(const asn_codec_ctx_t *opt_codec_ctx, - enum asn_transfer_syntax syntax, - const asn_TYPE_descriptor_t *td, - const void *sptr, - asn_app_consume_bytes_f *callback, - void *callback_key); - - -struct callback_count_bytes_key { - asn_app_consume_bytes_f *callback; - void *callback_key; - size_t computed_size; -}; - -/* - * Encoder which just counts bytes that come through it. - */ -static int -callback_count_bytes_cb(const void *data, size_t size, void *keyp) { - struct callback_count_bytes_key *key = keyp; - int ret; - - ret = key->callback(data, size, key->callback_key); - if(ret >= 0) { - key->computed_size += size; - } - - return ret; -} - -struct overrun_encoder_key { - void *buffer; - size_t buffer_size; - size_t computed_size; -}; - -struct dynamic_encoder_key { - void *buffer; - size_t buffer_size; - size_t computed_size; -}; - -struct callback_failure_catch_key { - asn_app_consume_bytes_f *callback; - void *callback_key; - int callback_failed; -}; - -/* - * Encoder which doesn't stop counting bytes - * even if it reaches the end of the buffer. - */ -static int -overrun_encoder_cb(const void *data, size_t size, void *keyp) { - struct overrun_encoder_key *key = keyp; - - if(key->computed_size + size > key->buffer_size) { - /* - * Avoid accident on the next call: - * stop adding bytes to the buffer. - */ - key->buffer_size = 0; - } else { - memcpy((char *)key->buffer + key->computed_size, data, size); - } - key->computed_size += size; - - return 0; -} - -/* - * Encoder which dynamically allocates output, and continues - * to count even if allocation failed. - */ -static int -dynamic_encoder_cb(const void *data, size_t size, void *keyp) { - struct dynamic_encoder_key *key = keyp; - - if(key->buffer) { - if(key->computed_size + size >= key->buffer_size) { - void *p; - size_t new_size = key->buffer_size; - - do { - new_size *= 2; - } while(new_size <= key->computed_size + size); - - p = REALLOC(key->buffer, new_size); - if(p) { - key->buffer = p; - key->buffer_size = new_size; - } else { - FREEMEM(key->buffer); - key->buffer = 0; - key->buffer_size = 0; - key->computed_size += size; - return 0; - } - } - memcpy((char *)key->buffer + key->computed_size, data, size); - } - - key->computed_size += size; - - return 0; -} - -/* - * Encoder which help convert the application level encoder failure into EIO. - */ -static int -callback_failure_catch_cb(const void *data, size_t size, void *keyp) { - struct callback_failure_catch_key *key = keyp; - int ret; - - ret = key->callback(data, size, key->callback_key); - if(ret < 0) { - key->callback_failed = 1; - } - - return ret; -} - -asn_enc_rval_t -asn_encode(const asn_codec_ctx_t *opt_codec_ctx, - enum asn_transfer_syntax syntax, const asn_TYPE_descriptor_t *td, - const void *sptr, asn_app_consume_bytes_f *callback, void *callback_key) { - struct callback_failure_catch_key cb_key; - asn_enc_rval_t er = {0,0,0}; - - if(!callback) { - errno = EINVAL; - ASN__ENCODE_FAILED; - } - - cb_key.callback = callback; - cb_key.callback_key = callback_key; - cb_key.callback_failed = 0; - - er = asn_encode_internal(opt_codec_ctx, syntax, td, sptr, - callback_failure_catch_cb, &cb_key); - if(cb_key.callback_failed) { - assert(er.encoded == -1); - assert(errno == EBADF); - errno = EIO; - } - - return er; -} - -asn_enc_rval_t -asn_encode_to_buffer(const asn_codec_ctx_t *opt_codec_ctx, - enum asn_transfer_syntax syntax, - const asn_TYPE_descriptor_t *td, const void *sptr, - void *buffer, size_t buffer_size) { - struct overrun_encoder_key buf_key; - asn_enc_rval_t er = {0,0,0}; - - if(buffer_size > 0 && !buffer) { - errno = EINVAL; - ASN__ENCODE_FAILED; - } - - buf_key.buffer = buffer; - buf_key.buffer_size = buffer_size; - buf_key.computed_size = 0; - - er = asn_encode_internal(opt_codec_ctx, syntax, td, sptr, - overrun_encoder_cb, &buf_key); - - if(er.encoded >= 0 && (size_t)er.encoded != buf_key.computed_size) { - ASN_DEBUG("asn_encode() returned %" ASN_PRI_SSIZE - " yet produced %" ASN_PRI_SIZE " bytes", - er.encoded, buf_key.computed_size); - assert(er.encoded < 0 || (size_t)er.encoded == buf_key.computed_size); - } - - return er; -} - -asn_encode_to_new_buffer_result_t -asn_encode_to_new_buffer(const asn_codec_ctx_t *opt_codec_ctx, - enum asn_transfer_syntax syntax, - const asn_TYPE_descriptor_t *td, const void *sptr) { - struct dynamic_encoder_key buf_key; - asn_encode_to_new_buffer_result_t res; - - buf_key.buffer_size = 16; - buf_key.buffer = MALLOC(buf_key.buffer_size); - buf_key.computed_size = 0; - - res.result = asn_encode_internal(opt_codec_ctx, syntax, td, sptr, - dynamic_encoder_cb, &buf_key); - - if(res.result.encoded >= 0 - && (size_t)res.result.encoded != buf_key.computed_size) { - ASN_DEBUG("asn_encode() returned %" ASN_PRI_SSIZE - " yet produced %" ASN_PRI_SIZE " bytes", - res.result.encoded, buf_key.computed_size); - assert(res.result.encoded < 0 - || (size_t)res.result.encoded == buf_key.computed_size); - } - - res.buffer = buf_key.buffer; - - /* 0-terminate just in case. */ - if(res.buffer) { - assert(buf_key.computed_size < buf_key.buffer_size); - ((char *)res.buffer)[buf_key.computed_size] = '\0'; - } - - return res; -} - -static asn_enc_rval_t -asn_encode_internal(const asn_codec_ctx_t *opt_codec_ctx, - enum asn_transfer_syntax syntax, - const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_consume_bytes_f *callback, void *callback_key) { - asn_enc_rval_t er = {0,0,0}; - enum xer_encoder_flags_e xer_flags = XER_F_CANONICAL; - - (void)opt_codec_ctx; /* Parameters are not checked on encode yet. */ - - if(!td || !sptr) { - errno = EINVAL; - ASN__ENCODE_FAILED; - } - - switch(syntax) { - case ATS_NONSTANDARD_PLAINTEXT: - if(td->op->print_struct) { - struct callback_count_bytes_key cb_key; - cb_key.callback = callback; - cb_key.callback_key = callback_key; - cb_key.computed_size = 0; - if(td->op->print_struct(td, sptr, 1, callback_count_bytes_cb, - &cb_key) - < 0 - || callback_count_bytes_cb("\n", 1, &cb_key) < 0) { - errno = EBADF; /* Structure has incorrect form. */ - er.encoded = -1; - er.failed_type = td; - er.structure_ptr = sptr; - } else { - er.encoded = cb_key.computed_size; - er.failed_type = 0; - er.structure_ptr = 0; - } - } else { - errno = ENOENT; /* Transfer syntax is not defined for this type. */ - ASN__ENCODE_FAILED; - } - break; - - case ATS_RANDOM: - errno = ENOENT; /* Randomization doesn't make sense on output. */ - ASN__ENCODE_FAILED; - - case ATS_BER: - /* BER is a superset of DER. */ - /* Fall through. */ - case ATS_DER: - if(td->op->der_encoder) { - er = der_encode(td, sptr, callback, callback_key); - if(er.encoded == -1) { - if(er.failed_type && er.failed_type->op->der_encoder) { - errno = EBADF; /* Structure has incorrect form. */ - } else { - errno = ENOENT; /* DER is not defined for this type. */ - } - } - } else { - errno = ENOENT; /* Transfer syntax is not defined for this type. */ - ASN__ENCODE_FAILED; - } - break; - case ATS_CER: - errno = ENOENT; /* Transfer syntax is not defined for any type. */ - ASN__ENCODE_FAILED; - -#ifdef ASN_DISABLE_OER_SUPPORT - case ATS_BASIC_OER: - case ATS_CANONICAL_OER: - errno = ENOENT; /* PER is not defined. */ - ASN__ENCODE_FAILED; - break; -#else /* ASN_DISABLE_OER_SUPPORT */ - case ATS_BASIC_OER: - /* CANONICAL-OER is a superset of BASIC-OER. */ - /* Fall through. */ - case ATS_CANONICAL_OER: - if(td->op->oer_encoder) { - er = oer_encode(td, sptr, callback, callback_key); - if(er.encoded == -1) { - if(er.failed_type && er.failed_type->op->oer_encoder) { - errno = EBADF; /* Structure has incorrect form. */ - } else { - errno = ENOENT; /* OER is not defined for this type. */ - } - } - } else { - errno = ENOENT; /* Transfer syntax is not defined for this type. */ - ASN__ENCODE_FAILED; - } - break; -#endif /* ASN_DISABLE_OER_SUPPORT */ - -#ifdef ASN_DISABLE_PER_SUPPORT - case ATS_UNALIGNED_BASIC_PER: - case ATS_UNALIGNED_CANONICAL_PER: - case ATS_ALIGNED_BASIC_PER: - case ATS_ALIGNED_CANONICAL_PER: - errno = ENOENT; /* PER is not defined. */ - ASN__ENCODE_FAILED; - break; -#else /* ASN_DISABLE_PER_SUPPORT */ - case ATS_UNALIGNED_BASIC_PER: - /* CANONICAL-UPER is a superset of BASIC-UPER. */ - /* Fall through. */ - case ATS_UNALIGNED_CANONICAL_PER: - if(td->op->uper_encoder) { - er = uper_encode(td, 0, sptr, callback, callback_key); - if(er.encoded == -1) { - if(er.failed_type && er.failed_type->op->uper_encoder) { - errno = EBADF; /* Structure has incorrect form. */ - } else { - errno = ENOENT; /* UPER is not defined for this type. */ - } - } else { - ASN_DEBUG("Complete encoded in %ld bits", (long)er.encoded); - if(er.encoded == 0) { - /* Enforce "Complete Encoding" of X.691 #11.1 */ - if(callback("\0", 1, callback_key) < 0) { - errno = EBADF; - ASN__ENCODE_FAILED; - } - er.encoded = 8; /* Exactly 8 zero bits is added. */ - } - /* Convert bits into bytes */ - er.encoded = (er.encoded + 7) >> 3; - } - } else { - errno = ENOENT; /* Transfer syntax is not defined for this type. */ - ASN__ENCODE_FAILED; - } - break; - case ATS_ALIGNED_BASIC_PER: - /* CANONICAL-APER is a superset of BASIC-APER. */ - /* Fall through. */ - case ATS_ALIGNED_CANONICAL_PER: - if(td->op->aper_encoder) { - er = aper_encode(td, 0, sptr, callback, callback_key); - if(er.encoded == -1) { - if(er.failed_type && er.failed_type->op->aper_encoder) { - errno = EBADF; /* Structure has incorrect form. */ - } else { - errno = ENOENT; /* APER is not defined for this type. */ - } - } else { - ASN_DEBUG("Complete encoded in %ld bits", (long)er.encoded); - if(er.encoded == 0) { - /* Enforce "Complete Encoding" of X.691 #11.1 */ - if(callback("\0", 1, callback_key) < 0) { - errno = EBADF; - ASN__ENCODE_FAILED; - } - er.encoded = 8; /* Exactly 8 zero bits is added. */ - } - /* Convert bits into bytes */ - er.encoded = (er.encoded + 7) >> 3; - } - } else { - errno = ENOENT; /* Transfer syntax is not defined for this type. */ - ASN__ENCODE_FAILED; - } - break; -#endif /* ASN_DISABLE_PER_SUPPORT */ - - case ATS_BASIC_XER: - /* CANONICAL-XER is a superset of BASIC-XER. */ - xer_flags &= ~XER_F_CANONICAL; - xer_flags |= XER_F_BASIC; - /* Fall through. */ - case ATS_CANONICAL_XER: - if(td->op->xer_encoder) { - er = xer_encode(td, sptr, xer_flags, callback, callback_key); - if(er.encoded == -1) { - if(er.failed_type && er.failed_type->op->xer_encoder) { - errno = EBADF; /* Structure has incorrect form. */ - } else { - errno = ENOENT; /* XER is not defined for this type. */ - } - } - } else { - errno = ENOENT; /* Transfer syntax is not defined for this type. */ - ASN__ENCODE_FAILED; - } - break; - - default: - errno = ENOENT; - ASN__ENCODE_FAILED; - } - - return er; -} - -asn_dec_rval_t -asn_decode(const asn_codec_ctx_t *opt_codec_ctx, - enum asn_transfer_syntax syntax, const asn_TYPE_descriptor_t *td, - void **sptr, const void *buffer, size_t size) { - if(!td || !td->op || !sptr || (size && !buffer)) { - ASN__DECODE_FAILED; - } - - switch(syntax) { - case ATS_CER: - case ATS_NONSTANDARD_PLAINTEXT: - default: - errno = ENOENT; - ASN__DECODE_FAILED; - - case ATS_RANDOM: - if(!td->op->random_fill) { - ASN__DECODE_FAILED; - } else { - if(asn_random_fill(td, sptr, 16000) == 0) { - asn_dec_rval_t ret = {RC_OK, 0}; - return ret; - } else { - ASN__DECODE_FAILED; - } - } - break; - - case ATS_DER: - case ATS_BER: - return ber_decode(opt_codec_ctx, td, sptr, buffer, size); - - case ATS_BASIC_OER: - case ATS_CANONICAL_OER: -#ifdef ASN_DISABLE_OER_SUPPORT - errno = ENOENT; - ASN__DECODE_FAILED; -#else - return oer_decode(opt_codec_ctx, td, sptr, buffer, size); -#endif - - case ATS_UNALIGNED_BASIC_PER: - case ATS_UNALIGNED_CANONICAL_PER: -#ifdef ASN_DISABLE_PER_SUPPORT - errno = ENOENT; - ASN__DECODE_FAILED; -#else - return uper_decode_complete(opt_codec_ctx, td, sptr, buffer, size); -#endif - - case ATS_ALIGNED_BASIC_PER: - case ATS_ALIGNED_CANONICAL_PER: -#ifdef ASN_DISABLE_PER_SUPPORT - errno = ENOENT; - ASN__DECODE_FAILED; -#else - return aper_decode_complete(opt_codec_ctx, td, sptr, buffer, size); -#endif - - case ATS_BASIC_XER: - case ATS_CANONICAL_XER: - return xer_decode(opt_codec_ctx, td, sptr, buffer, size); - } -} - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/asn_application.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/asn_application.h deleted file mode 100644 index 034f646..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/asn_application.h +++ /dev/null @@ -1,171 +0,0 @@ -/*- - * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -/* - * Application-level ASN.1 callbacks. - */ -#ifndef ASN_APPLICATION_H -#define ASN_APPLICATION_H - -#include "asn_system.h" /* for platform-dependent types */ -#include "asn_codecs.h" /* for ASN.1 codecs specifics */ - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * A selection of ASN.1 Transfer Syntaxes to use with generalized - * encoders and decoders declared further in this .h file. - */ -enum asn_transfer_syntax { - /* Avoid appearance of a default transfer syntax. */ - ATS_INVALID = 0, - /* Plaintext output (not conforming to any standard), for debugging. */ - ATS_NONSTANDARD_PLAINTEXT, - /* Returns a randomly generated structure. */ - ATS_RANDOM, - /* - * X.690: - * BER: Basic Encoding Rules. - * DER: Distinguished Encoding Rules. - * CER: Canonical Encoding Rules. - * DER and CER are more strict variants of BER. - */ - ATS_BER, - ATS_DER, - ATS_CER, /* Only decoding is supported */ - /* - * X.696: - * OER: Octet Encoding Rules. - * CANONICAL-OER is a more strict variant of BASIC-OER. - */ - ATS_BASIC_OER, - ATS_CANONICAL_OER, - /* - * X.691: - * PER: Packed Encoding Rules. - * CANONICAL-PER is a more strict variant of BASIC-PER. - * NOTE: Produces or consumes a complete encoding (X.691 (08/2015) #11.1). - */ - ATS_UNALIGNED_BASIC_PER, - ATS_UNALIGNED_CANONICAL_PER, - ATS_ALIGNED_BASIC_PER, - ATS_ALIGNED_CANONICAL_PER, - /* - * X.693: - * XER: XML Encoding Rules. - * CANONICAL-XER is a more strict variant of BASIC-XER. - */ - ATS_BASIC_XER, - ATS_CANONICAL_XER -}; - -/* - * A generic encoder for any supported transfer syntax. - * RETURN VALUES: - * The (.encoded) field of the return value is REDEFINED to mean the following: - * >=0: The computed size of the encoded data. Can exceed the (buffer_size). - * -1: Error encoding the structure. See the error code in (errno): - * EINVAL: Incorrect parameters to the function, such as NULLs. - * ENOENT: Encoding transfer syntax is not defined (for this type). - * EBADF: The structure has invalid form or content constraint failed. - * The (.failed_type) and (.structure_ptr) MIGHT be set to the appropriate - * values at the place of failure, if at all possible. - * WARNING: The (.encoded) field of the return value can exceed the buffer_size. - * This is similar to snprintf(3) contract which might return values - * greater than the buffer size. - */ -asn_enc_rval_t asn_encode_to_buffer( - const asn_codec_ctx_t *opt_codec_parameters, /* See asn_codecs.h */ - enum asn_transfer_syntax, - const struct asn_TYPE_descriptor_s *type_to_encode, - const void *structure_to_encode, void *buffer, size_t buffer_size); - -/* - * A variant of asn_encode_to_buffer() with automatically allocated buffer. - * RETURN VALUES: - * On success, returns a newly allocated (.buffer) containing the whole message. - * The message size is returned in (.result.encoded). - * On failure: - * (.buffer) is NULL, - * (.result.encoded) as in asn_encode_to_buffer(), - * The errno codes as in asn_encode_to_buffer(), plus the following: - * ENOMEM: Memory allocation failed due to system or internal limits. - * The user is responsible for freeing the (.buffer). - */ -typedef struct asn_encode_to_new_buffer_result_s { - void *buffer; /* NULL if failed to encode. */ - asn_enc_rval_t result; -} asn_encode_to_new_buffer_result_t; -asn_encode_to_new_buffer_result_t asn_encode_to_new_buffer( - const asn_codec_ctx_t *opt_codec_parameters, /* See asn_codecs.h */ - enum asn_transfer_syntax, - const struct asn_TYPE_descriptor_s *type_to_encode, - const void *structure_to_encode); - - -/* - * Generic type of an application-defined callback to return various - * types of data to the application. - * EXPECTED RETURN VALUES: - * -1: Failed to consume bytes. Abort the mission. - * Non-negative return values indicate success, and ignored. - */ -typedef int(asn_app_consume_bytes_f)(const void *buffer, size_t size, - void *application_specific_key); - - -/* - * A generic encoder for any supported transfer syntax. - * Returns the comprehensive encoding result descriptor (see asn_codecs.h). - * RETURN VALUES: - * The negative (.encoded) field of the return values is accompanied with the - * following error codes (errno): - * EINVAL: Incorrect parameters to the function, such as NULLs. - * ENOENT: Encoding transfer syntax is not defined (for this type). - * EBADF: The structure has invalid form or content constraint failed. - * EIO: The (callback) has returned negative value during encoding. - */ -asn_enc_rval_t asn_encode( - const asn_codec_ctx_t *opt_codec_parameters, /* See asn_codecs.h */ - enum asn_transfer_syntax, - const struct asn_TYPE_descriptor_s *type_to_encode, - const void *structure_to_encode, - asn_app_consume_bytes_f *callback, void *callback_key); - - -/* - * A generic decoder for any supported transfer syntax. - */ -asn_dec_rval_t asn_decode( - const asn_codec_ctx_t *opt_codec_parameters, enum asn_transfer_syntax, - const struct asn_TYPE_descriptor_s *type_to_decode, - void **structure_ptr, /* Pointer to a target structure's pointer */ - const void *buffer, /* Data to be decoded */ - size_t size /* Size of that buffer */ -); - - -/* - * A callback of this type is called whenever constraint validation fails - * on some ASN.1 type. See "constraints.h" for more details on constraint - * validation. - * This callback specifies a descriptor of the ASN.1 type which failed - * the constraint check, as well as human readable message on what - * particular constraint has failed. - */ -typedef void (asn_app_constraint_failed_f)(void *application_specific_key, - const struct asn_TYPE_descriptor_s *type_descriptor_which_failed, - const void *structure_which_failed_ptr, - const char *error_message_format, ...) CC_PRINTFLIKE(4, 5); - - -#ifdef __cplusplus -} -#endif - -#include "constr_TYPE.h" /* for asn_TYPE_descriptor_t */ - -#endif /* ASN_APPLICATION_H */ diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/asn_bit_data.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/asn_bit_data.c deleted file mode 100644 index fe4b89b..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/asn_bit_data.c +++ /dev/null @@ -1,333 +0,0 @@ -/* - * Copyright (c) 2005-2017 Lev Walkin . - * All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include - -/* - * Create a contiguous non-refillable bit data structure. - * Can be freed by FREEMEM(). - */ -asn_bit_data_t * -asn_bit_data_new_contiguous(const void *data, size_t size_bits) { - size_t size_bytes = (size_bits + 7) / 8; - asn_bit_data_t *pd; - uint8_t *bytes; - - /* Get the extensions map */ - pd = CALLOC(1, sizeof(*pd) + size_bytes + 1); - if(!pd) { - return NULL; - } - bytes = (void *)(((char *)pd) + sizeof(*pd)); - memcpy(bytes, data, size_bytes); - bytes[size_bytes] = 0; - pd->buffer = bytes; - pd->nboff = 0; - pd->nbits = size_bits; - - return pd; -} - - -char * -asn_bit_data_string(asn_bit_data_t *pd) { - static char buf[2][32]; - static int n; - n = (n+1) % 2; - snprintf(buf[n], sizeof(buf[n]), - "{m=%" ASN_PRI_SIZE " span %" ASN_PRI_SIZE "[%" ASN_PRI_SIZE - "..%" ASN_PRI_SIZE "] (%" ASN_PRI_SIZE ")}", - pd->moved, ((uintptr_t)(pd->buffer) & 0xf), pd->nboff, pd->nbits, - pd->nbits - pd->nboff); - return buf[n]; -} - -void -asn_get_undo(asn_bit_data_t *pd, int nbits) { - if((ssize_t)pd->nboff < nbits) { - assert((ssize_t)pd->nboff < nbits); - } else { - pd->nboff -= nbits; - pd->moved -= nbits; - } -} - -/* - * Extract a small number of bits (<= 31) from the specified PER data pointer. - */ -int32_t -asn_get_few_bits(asn_bit_data_t *pd, int nbits) { - size_t off; /* Next after last bit offset */ - ssize_t nleft; /* Number of bits left in this stream */ - uint32_t accum; - const uint8_t *buf; - - if(nbits < 0) - return -1; - - nleft = pd->nbits - pd->nboff; - if(nbits > nleft) { - int32_t tailv, vhead; - if(!pd->refill || nbits > 31) return -1; - /* Accumulate unused bytes before refill */ - ASN_DEBUG("Obtain the rest %d bits (want %d)", - (int)nleft, (int)nbits); - tailv = asn_get_few_bits(pd, nleft); - if(tailv < 0) return -1; - /* Refill (replace pd contents with new data) */ - if(pd->refill(pd)) - return -1; - nbits -= nleft; - vhead = asn_get_few_bits(pd, nbits); - /* Combine the rest of previous pd with the head of new one */ - tailv = (tailv << nbits) | vhead; /* Could == -1 */ - return tailv; - } - - /* - * Normalize position indicator. - */ - if(pd->nboff >= 8) { - pd->buffer += (pd->nboff >> 3); - pd->nbits -= (pd->nboff & ~0x07); - pd->nboff &= 0x07; - } - pd->moved += nbits; - pd->nboff += nbits; - off = pd->nboff; - buf = pd->buffer; - - /* - * Extract specified number of bits. - */ - if(off <= 8) - accum = nbits ? (buf[0]) >> (8 - off) : 0; - else if(off <= 16) - accum = ((buf[0] << 8) + buf[1]) >> (16 - off); - else if(off <= 24) - accum = ((buf[0] << 16) + (buf[1] << 8) + buf[2]) >> (24 - off); - else if(off <= 31) - accum = (((uint32_t)buf[0] << 24) + (buf[1] << 16) - + (buf[2] << 8) + (buf[3])) >> (32 - off); - else if(nbits <= 31) { - asn_bit_data_t tpd = *pd; - /* Here are we with our 31-bits limit plus 1..7 bits offset. */ - asn_get_undo(&tpd, nbits); - /* The number of available bits in the stream allow - * for the following operations to take place without - * invoking the ->refill() function */ - accum = asn_get_few_bits(&tpd, nbits - 24) << 24; - accum |= asn_get_few_bits(&tpd, 24); - } else { - asn_get_undo(pd, nbits); - return -1; - } - - accum &= (((uint32_t)1 << nbits) - 1); - - ASN_DEBUG(" [PER got %2d<=%2d bits => span %d %+ld[%d..%d]:%02x (%d) => 0x%x]", - (int)nbits, (int)nleft, - (int)pd->moved, - (((long)pd->buffer) & 0xf), - (int)pd->nboff, (int)pd->nbits, - ((pd->buffer != NULL)?pd->buffer[0]:0), - (int)(pd->nbits - pd->nboff), - (int)accum); - - return accum; -} - -/* - * Extract a large number of bits from the specified PER data pointer. - */ -int -asn_get_many_bits(asn_bit_data_t *pd, uint8_t *dst, int alright, int nbits) { - int32_t value; - - if(alright && (nbits & 7)) { - /* Perform right alignment of a first few bits */ - value = asn_get_few_bits(pd, nbits & 0x07); - if(value < 0) return -1; - *dst++ = value; /* value is already right-aligned */ - nbits &= ~7; - } - - while(nbits) { - if(nbits >= 24) { - value = asn_get_few_bits(pd, 24); - if(value < 0) return -1; - *(dst++) = value >> 16; - *(dst++) = value >> 8; - *(dst++) = value; - nbits -= 24; - } else { - value = asn_get_few_bits(pd, nbits); - if(value < 0) return -1; - if(nbits & 7) { /* implies left alignment */ - value <<= 8 - (nbits & 7), - nbits += 8 - (nbits & 7); - if(nbits > 24) - *dst++ = value >> 24; - } - if(nbits > 16) - *dst++ = value >> 16; - if(nbits > 8) - *dst++ = value >> 8; - *dst++ = value; - break; - } - } - - return 0; -} - -/* - * Put a small number of bits (<= 31). - */ -int -asn_put_few_bits(asn_bit_outp_t *po, uint32_t bits, int obits) { - size_t off; /* Next after last bit offset */ - size_t omsk; /* Existing last byte meaningful bits mask */ - uint8_t *buf; - - if(obits <= 0 || obits >= 32) return obits ? -1 : 0; - - ASN_DEBUG("[PER put %d bits %x to %p+%d bits]", - obits, (int)bits, (void *)po->buffer, (int)po->nboff); - - /* - * Normalize position indicator. - */ - if(po->nboff >= 8) { - po->buffer += (po->nboff >> 3); - po->nbits -= (po->nboff & ~0x07); - po->nboff &= 0x07; - } - - /* - * Flush whole-bytes output, if necessary. - */ - if(po->nboff + obits > po->nbits) { - size_t complete_bytes; - if(!po->buffer) po->buffer = po->tmpspace; - complete_bytes = (po->buffer - po->tmpspace); - ASN_DEBUG("[PER output %ld complete + %ld]", - (long)complete_bytes, (long)po->flushed_bytes); - if(po->output(po->tmpspace, complete_bytes, po->op_key) < 0) - return -1; - if(po->nboff) - po->tmpspace[0] = po->buffer[0]; - po->buffer = po->tmpspace; - po->nbits = 8 * sizeof(po->tmpspace); - po->flushed_bytes += complete_bytes; - } - - /* - * Now, due to sizeof(tmpspace), we are guaranteed large enough space. - */ - buf = po->buffer; - omsk = ~((1 << (8 - po->nboff)) - 1); - off = (po->nboff + obits); - - /* Clear data of debris before meaningful bits */ - bits &= (((uint32_t)1 << obits) - 1); - - ASN_DEBUG("[PER out %d %u/%x (t=%d,o=%d) %x&%x=%x]", obits, - (int)bits, (int)bits, - (int)po->nboff, (int)off, - buf[0], (int)(omsk&0xff), - (int)(buf[0] & omsk)); - - if(off <= 8) /* Completely within 1 byte */ - po->nboff = off, - bits <<= (8 - off), - buf[0] = (buf[0] & omsk) | bits; - else if(off <= 16) - po->nboff = off, - bits <<= (16 - off), - buf[0] = (buf[0] & omsk) | (bits >> 8), - buf[1] = bits; - else if(off <= 24) - po->nboff = off, - bits <<= (24 - off), - buf[0] = (buf[0] & omsk) | (bits >> 16), - buf[1] = bits >> 8, - buf[2] = bits; - else if(off <= 31) - po->nboff = off, - bits <<= (32 - off), - buf[0] = (buf[0] & omsk) | (bits >> 24), - buf[1] = bits >> 16, - buf[2] = bits >> 8, - buf[3] = bits; - else { - if(asn_put_few_bits(po, bits >> (obits - 24), 24)) return -1; - if(asn_put_few_bits(po, bits, obits - 24)) return -1; - } - - ASN_DEBUG("[PER out %u/%x => %02x buf+%ld]", - (int)bits, (int)bits, buf[0], - (long)(po->buffer - po->tmpspace)); - - return 0; -} - - -/* - * Output a large number of bits. - */ -int -asn_put_many_bits(asn_bit_outp_t *po, const uint8_t *src, int nbits) { - - while(nbits) { - uint32_t value; - - if(nbits >= 24) { - value = (src[0] << 16) | (src[1] << 8) | src[2]; - src += 3; - nbits -= 24; - if(asn_put_few_bits(po, value, 24)) - return -1; - } else { - value = src[0]; - if(nbits > 8) - value = (value << 8) | src[1]; - if(nbits > 16) - value = (value << 8) | src[2]; - if(nbits & 0x07) - value >>= (8 - (nbits & 0x07)); - if(asn_put_few_bits(po, value, nbits)) - return -1; - break; - } - } - - return 0; -} - - -int -asn_put_aligned_flush(asn_bit_outp_t *po) { - uint32_t unused_bits = (0x7 & (8 - (po->nboff & 0x07))); - size_t complete_bytes = - (po->buffer ? po->buffer - po->tmpspace : 0) + ((po->nboff + 7) >> 3); - - if(unused_bits) { - po->buffer[po->nboff >> 3] &= ~0u << unused_bits; - } - - if(po->output(po->tmpspace, complete_bytes, po->op_key) < 0) { - return -1; - } else { - po->buffer = po->tmpspace; - po->nboff = 0; - po->nbits = 8 * sizeof(po->tmpspace); - po->flushed_bytes += complete_bytes; - return 0; - } -} - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/asn_bit_data.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/asn_bit_data.h deleted file mode 100644 index 59de7af..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/asn_bit_data.h +++ /dev/null @@ -1,83 +0,0 @@ -/* - * Copyright (c) 2005-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef ASN_BIT_DATA -#define ASN_BIT_DATA - -#include /* Platform-specific types */ - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * This structure describes a position inside an incoming PER bit stream. - */ -typedef struct asn_bit_data_s { - const uint8_t *buffer; /* Pointer to the octet stream */ - size_t nboff; /* Bit offset to the meaningful bit */ - size_t nbits; /* Number of bits in the stream */ - size_t moved; /* Number of bits moved through this bit stream */ - int (*refill)(struct asn_bit_data_s *); - void *refill_key; -} asn_bit_data_t; - -/* - * Create a contiguous non-refillable bit data structure. - * Can be freed by FREEMEM(). - */ -asn_bit_data_t *asn_bit_data_new_contiguous(const void *data, size_t size_bits); - -/* - * Extract a small number of bits (<= 31) from the specified PER data pointer. - * This function returns -1 if the specified number of bits could not be - * extracted due to EOD or other conditions. - */ -int32_t asn_get_few_bits(asn_bit_data_t *, int get_nbits); - -/* Undo the immediately preceeding "get_few_bits" operation */ -void asn_get_undo(asn_bit_data_t *, int get_nbits); - -/* - * Extract a large number of bits from the specified PER data pointer. - * This function returns -1 if the specified number of bits could not be - * extracted due to EOD or other conditions. - */ -int asn_get_many_bits(asn_bit_data_t *, uint8_t *dst, int right_align, - int get_nbits); - -/* Non-thread-safe debugging function, don't use it */ -char *asn_bit_data_string(asn_bit_data_t *); - -/* - * This structure supports forming bit output. - */ -typedef struct asn_bit_outp_s { - uint8_t *buffer; /* Pointer into the (tmpspace) */ - size_t nboff; /* Bit offset to the meaningful bit */ - size_t nbits; /* Number of bits left in (tmpspace) */ - uint8_t tmpspace[32]; /* Preliminary storage to hold data */ - int (*output)(const void *data, size_t size, void *op_key); - void *op_key; /* Key for (output) data callback */ - size_t flushed_bytes; /* Bytes already flushed through (output) */ -} asn_bit_outp_t; - -/* Output a small number of bits (<= 31) */ -int asn_put_few_bits(asn_bit_outp_t *, uint32_t bits, int obits); - -/* Output a large number of bits */ -int asn_put_many_bits(asn_bit_outp_t *, const uint8_t *src, int put_nbits); - -/* - * Flush whole bytes (0 or more) through (outper) member. - * The least significant bits which are not used are guaranteed to be set to 0. - * Returns -1 if callback returns -1. Otherwise, 0. - */ -int asn_put_aligned_flush(asn_bit_outp_t *); - -#ifdef __cplusplus -} -#endif - -#endif /* ASN_BIT_DATA */ diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/asn_codecs.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/asn_codecs.h deleted file mode 100644 index e75c270..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/asn_codecs.h +++ /dev/null @@ -1,108 +0,0 @@ -/* - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef ASN_CODECS_H -#define ASN_CODECS_H - -#ifdef __cplusplus -extern "C" { -#endif - -struct asn_TYPE_descriptor_s; /* Forward declaration */ - -/* - * This structure defines a set of parameters that may be passed - * to every ASN.1 encoder or decoder function. - * WARNING: if max_stack_size member is set, and you are calling the - * function pointers of the asn_TYPE_descriptor_t directly, - * this structure must be ALLOCATED ON THE STACK! - * If you can't always satisfy this requirement, use ber_decode(), - * xer_decode() and uper_decode() functions instead. - */ -typedef struct asn_codec_ctx_s { - /* - * Limit the decoder routines to use no (much) more stack than a given - * number of bytes. Most of decoders are stack-based, and this - * would protect against stack overflows if the number of nested - * encodings is high. - * The OCTET STRING, BIT STRING and ANY BER decoders are heap-based, - * and are safe from this kind of overflow. - * A value from getrlimit(RLIMIT_STACK) may be used to initialize - * this variable. Be careful in multithreaded environments, as the - * stack size is rather limited. - */ - size_t max_stack_size; /* 0 disables stack bounds checking */ -} asn_codec_ctx_t; - -/* - * Type of the return value of the encoding functions (der_encode, xer_encode). - */ -typedef struct asn_enc_rval_s { - /* - * Number of bytes encoded. - * -1 indicates failure to encode the structure. - * In this case, the members below this one are meaningful. - */ - ssize_t encoded; - - /* - * Members meaningful when (encoded == -1), for post mortem analysis. - */ - - /* Type which cannot be encoded */ - const struct asn_TYPE_descriptor_s *failed_type; - - /* Pointer to the structure of that type */ - const void *structure_ptr; -} asn_enc_rval_t; -#define ASN__ENCODE_FAILED do { \ - asn_enc_rval_t tmp_error; \ - tmp_error.encoded = -1; \ - tmp_error.failed_type = td; \ - tmp_error.structure_ptr = sptr; \ - ASN_DEBUG("Failed to encode element %s", td ? td->name : ""); \ - return tmp_error; \ -} while(0) -#define ASN__ENCODED_OK(rval) do { \ - rval.structure_ptr = 0; \ - rval.failed_type = 0; \ - return rval; \ -} while(0) - -/* - * Type of the return value of the decoding functions (ber_decode, xer_decode) - * - * Please note that the number of consumed bytes is ALWAYS meaningful, - * even if code==RC_FAIL. This is to indicate the number of successfully - * decoded bytes, hence providing a possibility to fail with more diagnostics - * (i.e., print the offending remainder of the buffer). - */ -enum asn_dec_rval_code_e { - RC_OK, /* Decoded successfully */ - RC_WMORE, /* More data expected, call again */ - RC_FAIL /* Failure to decode data */ -}; -typedef struct asn_dec_rval_s { - enum asn_dec_rval_code_e code; /* Result code */ - size_t consumed; /* Number of bytes consumed */ -} asn_dec_rval_t; -#define ASN__DECODE_FAILED do { \ - asn_dec_rval_t tmp_error; \ - tmp_error.code = RC_FAIL; \ - tmp_error.consumed = 0; \ - ASN_DEBUG("Failed to decode element %s", td ? td->name : ""); \ - return tmp_error; \ -} while(0) -#define ASN__DECODE_STARVED do { \ - asn_dec_rval_t tmp_error; \ - tmp_error.code = RC_WMORE; \ - tmp_error.consumed = 0; \ - return tmp_error; \ -} while(0) - -#ifdef __cplusplus -} -#endif - -#endif /* ASN_CODECS_H */ diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/asn_codecs_prim.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/asn_codecs_prim.c deleted file mode 100644 index fc24247..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/asn_codecs_prim.c +++ /dev/null @@ -1,317 +0,0 @@ -/*- - * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include - -/* - * Decode an always-primitive type. - */ -asn_dec_rval_t -ber_decode_primitive(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **sptr, - const void *buf_ptr, size_t size, int tag_mode) { - ASN__PRIMITIVE_TYPE_t *st = (ASN__PRIMITIVE_TYPE_t *)*sptr; - asn_dec_rval_t rval; - ber_tlv_len_t length = 0; /* =0 to avoid [incorrect] warning. */ - - /* - * If the structure is not there, allocate it. - */ - if(st == NULL) { - st = (ASN__PRIMITIVE_TYPE_t *)CALLOC(1, sizeof(*st)); - if(st == NULL) ASN__DECODE_FAILED; - *sptr = (void *)st; - } - - ASN_DEBUG("Decoding %s as plain primitive (tm=%d)", - td->name, tag_mode); - - /* - * Check tags and extract value length. - */ - rval = ber_check_tags(opt_codec_ctx, td, 0, buf_ptr, size, - tag_mode, 0, &length, 0); - if(rval.code != RC_OK) - return rval; - - ASN_DEBUG("%s length is %d bytes", td->name, (int)length); - - /* - * Make sure we have this length. - */ - buf_ptr = ((const char *)buf_ptr) + rval.consumed; - size -= rval.consumed; - if(length > (ber_tlv_len_t)size) { - rval.code = RC_WMORE; - rval.consumed = 0; - return rval; - } - - st->size = (int)length; - /* The following better be optimized away. */ - if(sizeof(st->size) != sizeof(length) - && (ber_tlv_len_t)st->size != length) { - st->size = 0; - ASN__DECODE_FAILED; - } - - st->buf = (uint8_t *)MALLOC(length + 1); - if(!st->buf) { - st->size = 0; - ASN__DECODE_FAILED; - } - - memcpy(st->buf, buf_ptr, length); - st->buf[length] = '\0'; /* Just in case */ - - rval.code = RC_OK; - rval.consumed += length; - - ASN_DEBUG("Took %ld/%ld bytes to encode %s", - (long)rval.consumed, - (long)length, td->name); - - return rval; -} - -/* - * Encode an always-primitive type using DER. - */ -asn_enc_rval_t -der_encode_primitive(const asn_TYPE_descriptor_t *td, const void *sptr, - int tag_mode, ber_tlv_tag_t tag, - asn_app_consume_bytes_f *cb, void *app_key) { - asn_enc_rval_t erval = {0,0,0}; - const ASN__PRIMITIVE_TYPE_t *st = (const ASN__PRIMITIVE_TYPE_t *)sptr; - - ASN_DEBUG("%s %s as a primitive type (tm=%d)", - cb?"Encoding":"Estimating", td->name, tag_mode); - - erval.encoded = der_write_tags(td, st->size, tag_mode, 0, tag, - cb, app_key); - ASN_DEBUG("%s wrote tags %d", td->name, (int)erval.encoded); - if(erval.encoded == -1) { - erval.failed_type = td; - erval.structure_ptr = sptr; - return erval; - } - - if(cb && st->buf) { - if(cb(st->buf, st->size, app_key) < 0) { - erval.encoded = -1; - erval.failed_type = td; - erval.structure_ptr = sptr; - return erval; - } - } else { - assert(st->buf || st->size == 0); - } - - erval.encoded += st->size; - ASN__ENCODED_OK(erval); -} - -void -ASN__PRIMITIVE_TYPE_free(const asn_TYPE_descriptor_t *td, void *sptr, - enum asn_struct_free_method method) { - ASN__PRIMITIVE_TYPE_t *st = (ASN__PRIMITIVE_TYPE_t *)sptr; - - if(!td || !sptr) - return; - - ASN_DEBUG("Freeing %s as a primitive type", td->name); - - if(st->buf) - FREEMEM(st->buf); - - switch(method) { - case ASFM_FREE_EVERYTHING: - FREEMEM(sptr); - break; - case ASFM_FREE_UNDERLYING: - break; - case ASFM_FREE_UNDERLYING_AND_RESET: - memset(sptr, 0, sizeof(ASN__PRIMITIVE_TYPE_t)); - break; - } -} - - -/* - * Local internal type passed around as an argument. - */ -struct xdp_arg_s { - const asn_TYPE_descriptor_t *type_descriptor; - void *struct_key; - xer_primitive_body_decoder_f *prim_body_decoder; - int decoded_something; - int want_more; -}; - -/* - * Since some kinds of primitive values can be encoded using value-specific - * tags (, , etc), the primitive decoder must - * be supplied with such tags to parse them as needed. - */ -static int -xer_decode__unexpected_tag(void *key, const void *chunk_buf, size_t chunk_size) { - struct xdp_arg_s *arg = (struct xdp_arg_s *)key; - enum xer_pbd_rval bret; - - /* - * The chunk_buf is guaranteed to start at '<'. - */ - assert(chunk_size && ((const char *)chunk_buf)[0] == 0x3c); - - /* - * Decoding was performed once already. Prohibit doing it again. - */ - if(arg->decoded_something) - return -1; - - bret = arg->prim_body_decoder(arg->type_descriptor, - arg->struct_key, chunk_buf, chunk_size); - switch(bret) { - case XPBD_SYSTEM_FAILURE: - case XPBD_DECODER_LIMIT: - case XPBD_BROKEN_ENCODING: - break; - case XPBD_BODY_CONSUMED: - /* Tag decoded successfully */ - arg->decoded_something = 1; - /* Fall through */ - case XPBD_NOT_BODY_IGNORE: /* Safe to proceed further */ - return 0; - } - - return -1; -} - -static ssize_t -xer_decode__primitive_body(void *key, const void *chunk_buf, size_t chunk_size, int have_more) { - struct xdp_arg_s *arg = (struct xdp_arg_s *)key; - enum xer_pbd_rval bret; - size_t lead_wsp_size; - - if(arg->decoded_something) { - if(xer_whitespace_span(chunk_buf, chunk_size) == chunk_size) { - /* - * Example: - * "123 " - * ^- chunk_buf position. - */ - return chunk_size; - } - /* - * Decoding was done once already. Prohibit doing it again. - */ - return -1; - } - - if(!have_more) { - /* - * If we've received something like "1", we can't really - * tell whether it is really `1` or `123`, until we know - * that there is no more data coming. - * The have_more argument will be set to 1 once something - * like this is available to the caller of this callback: - * "1want_more = 1; - return -1; - } - - lead_wsp_size = xer_whitespace_span(chunk_buf, chunk_size); - chunk_buf = (const char *)chunk_buf + lead_wsp_size; - chunk_size -= lead_wsp_size; - - bret = arg->prim_body_decoder(arg->type_descriptor, - arg->struct_key, chunk_buf, chunk_size); - switch(bret) { - case XPBD_SYSTEM_FAILURE: - case XPBD_DECODER_LIMIT: - case XPBD_BROKEN_ENCODING: - break; - case XPBD_BODY_CONSUMED: - /* Tag decoded successfully */ - arg->decoded_something = 1; - /* Fall through */ - case XPBD_NOT_BODY_IGNORE: /* Safe to proceed further */ - return lead_wsp_size + chunk_size; - } - - return -1; -} - - -asn_dec_rval_t -xer_decode_primitive(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **sptr, - size_t struct_size, const char *opt_mname, - const void *buf_ptr, size_t size, - xer_primitive_body_decoder_f *prim_body_decoder) { - const char *xml_tag = opt_mname ? opt_mname : td->xml_tag; - asn_struct_ctx_t s_ctx; - struct xdp_arg_s s_arg; - asn_dec_rval_t rc; - - /* - * Create the structure if does not exist. - */ - if(!*sptr) { - *sptr = CALLOC(1, struct_size); - if(!*sptr) ASN__DECODE_FAILED; - } - - memset(&s_ctx, 0, sizeof(s_ctx)); - s_arg.type_descriptor = td; - s_arg.struct_key = *sptr; - s_arg.prim_body_decoder = prim_body_decoder; - s_arg.decoded_something = 0; - s_arg.want_more = 0; - - rc = xer_decode_general(opt_codec_ctx, &s_ctx, &s_arg, - xml_tag, buf_ptr, size, - xer_decode__unexpected_tag, xer_decode__primitive_body); - switch(rc.code) { - case RC_OK: - if(!s_arg.decoded_something) { - char ch; - ASN_DEBUG("Primitive body is not recognized, " - "supplying empty one"); - /* - * Decoding opportunity has come and gone. - * Where's the result? - * Try to feed with empty body, see if it eats it. - */ - if(prim_body_decoder(s_arg.type_descriptor, - s_arg.struct_key, &ch, 0) - != XPBD_BODY_CONSUMED) { - /* - * This decoder does not like empty stuff. - */ - ASN__DECODE_FAILED; - } - } - break; - case RC_WMORE: - /* - * Redo the whole thing later. - * We don't have a context to save intermediate parsing state. - */ - rc.consumed = 0; - break; - case RC_FAIL: - rc.consumed = 0; - if(s_arg.want_more) - rc.code = RC_WMORE; - else - ASN__DECODE_FAILED; - break; - } - return rc; -} - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/asn_codecs_prim.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/asn_codecs_prim.h deleted file mode 100644 index fbc5576..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/asn_codecs_prim.h +++ /dev/null @@ -1,51 +0,0 @@ -/*- - * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef ASN_CODECS_PRIM_H -#define ASN_CODECS_PRIM_H - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct ASN__PRIMITIVE_TYPE_s { - uint8_t *buf; /* Buffer with consecutive primitive encoding bytes */ - size_t size; /* Size of the buffer */ -} ASN__PRIMITIVE_TYPE_t; /* Do not use this type directly! */ - -asn_struct_free_f ASN__PRIMITIVE_TYPE_free; -ber_type_decoder_f ber_decode_primitive; -der_type_encoder_f der_encode_primitive; - -/* - * A callback specification for the xer_decode_primitive() function below. - */ -enum xer_pbd_rval { - XPBD_SYSTEM_FAILURE, /* System failure (memory shortage, etc) */ - XPBD_DECODER_LIMIT, /* Hit some decoder limitation or deficiency */ - XPBD_BROKEN_ENCODING, /* Encoding of a primitive body is broken */ - XPBD_NOT_BODY_IGNORE, /* Not a body format, but safe to ignore */ - XPBD_BODY_CONSUMED /* Body is recognized and consumed */ -}; -typedef enum xer_pbd_rval(xer_primitive_body_decoder_f)( - const asn_TYPE_descriptor_t *td, void *struct_ptr, const void *chunk_buf, - size_t chunk_size); - -/* - * Specific function to decode simple primitive types. - * Also see xer_decode_general() in xer_decoder.h - */ -asn_dec_rval_t xer_decode_primitive( - const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *type_descriptor, void **struct_ptr, - size_t struct_size, const char *opt_mname, const void *buf_ptr, size_t size, - xer_primitive_body_decoder_f *prim_body_decoder); - -#ifdef __cplusplus -} -#endif - -#endif /* ASN_CODECS_PRIM_H */ diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/asn_constant.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/asn_constant.h deleted file mode 100644 index af5a0fd..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/asn_constant.h +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - */ - -#ifndef _ASN_CONSTANT_H -#define _ASN_CONSTANT_H - -#ifdef __cplusplus -extern "C" { -#endif - -#define maxofMessageProtocolTests (15) -#define maxofRICstyles (63) -#define maxnoofQCI (256) -#define maxnoofQoSFlows (64) -#define maxnoofSliceItems (1024) -#define maxnoofContainerListItems (3) -#define maxCellingNBDU (512) -#define maxofContainers (8) -#define maxPLMN (12) -#define maxofRANparamters (65536) -#define maxUeReport (32) -#define maxCellingNB (16384) - - -#ifdef __cplusplus -} -#endif - -#endif /* _ASN_CONSTANT_H */ diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/asn_internal.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/asn_internal.c deleted file mode 100644 index 1aff95f..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/asn_internal.c +++ /dev/null @@ -1,48 +0,0 @@ -#include - -ssize_t -asn__format_to_callback(int (*cb)(const void *, size_t, void *key), void *key, - const char *fmt, ...) { - char scratch[64]; - char *buf = scratch; - size_t buf_size = sizeof(scratch); - int wrote; - int cb_ret; - - do { - va_list args; - va_start(args, fmt); - - wrote = vsnprintf(buf, buf_size, fmt, args); - if(wrote < (ssize_t)buf_size) { - if(wrote < 0) { - if(buf != scratch) FREEMEM(buf); - va_end(args); - return -1; - } - break; - } - - buf_size <<= 1; - if(buf == scratch) { - buf = MALLOC(buf_size); - if(!buf) return -1; - } else { - void *p = REALLOC(buf, buf_size); - if(!p) { - FREEMEM(buf); - return -1; - } - buf = p; - } - } while(1); - - cb_ret = cb(buf, wrote, key); - if(buf != scratch) FREEMEM(buf); - if(cb_ret < 0) { - return -1; - } - - return wrote; -} - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/asn_internal.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/asn_internal.h deleted file mode 100644 index c4105ad..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/asn_internal.h +++ /dev/null @@ -1,159 +0,0 @@ -/* - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -/* - * Declarations internally useful for the ASN.1 support code. - */ -#ifndef ASN_INTERNAL_H -#define ASN_INTERNAL_H -#define __EXTENSIONS__ /* for Sun */ - -#include "asn_application.h" /* Application-visible API */ - -#ifndef __NO_ASSERT_H__ /* Include assert.h only for internal use. */ -#include /* for assert() macro */ -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -/* Environment version might be used to avoid running with the old library */ -#define ASN1C_ENVIRONMENT_VERSION 923 /* Compile-time version */ -int get_asn1c_environment_version(void); /* Run-time version */ - -#define CALLOC(nmemb, size) calloc(nmemb, size) -#define MALLOC(size) malloc(size) -#define REALLOC(oldptr, size) realloc(oldptr, size) -#define FREEMEM(ptr) free(ptr) - -#define asn_debug_indent 0 -#define ASN_DEBUG_INDENT_ADD(i) do{}while(0) - -#ifdef EMIT_ASN_DEBUG -#warning "Use ASN_EMIT_DEBUG instead of EMIT_ASN_DEBUG" -#define ASN_EMIT_DEBUG EMIT_ASN_DEBUG -#endif - -/* - * A macro for debugging the ASN.1 internals. - * You may enable or override it. - */ -#ifndef ASN_DEBUG /* If debugging code is not defined elsewhere... */ -#if ASN_EMIT_DEBUG == 1 /* And it was asked to emit this code... */ -#if !defined(BELL_LABS) /* Bell Labs */ - //#if __STDC_VERSION__ >= 199901L -#ifdef ASN_THREAD_SAFE -/* Thread safety requires sacrifice in output indentation: - * Retain empty definition of ASN_DEBUG_INDENT_ADD. */ -#else /* !ASN_THREAD_SAFE */ -#undef ASN_DEBUG_INDENT_ADD -#undef asn_debug_indent -int asn_debug_indent; -#define ASN_DEBUG_INDENT_ADD(i) do { asn_debug_indent += i; } while(0) -#endif /* ASN_THREAD_SAFE */ -#if defined(BELL_LABS) /* Bell Labs version */ -extern int logAsn1c(const char *filename, int linenumber, const char *format, ...); -#define ASN_DEBUG(fmt, args...) do { \ - (void) logAsn1c(__FILE__, __LINE__, fmt, ##args); \ - } while(0) -#else -#define ASN_DEBUG(fmt, args...) do { \ - int adi = asn_debug_indent; \ - while(adi--) fprintf(stderr, " "); \ - fprintf(stderr, fmt, ##args); \ - fprintf(stderr, " (%s:%d)\n", \ - __FILE__, __LINE__); \ - } while(0) -#endif /* BELL_LABS */ -#else /* !C99 */ -void CC_PRINTFLIKE(1, 2) ASN_DEBUG_f(const char *fmt, ...); -#define ASN_DEBUG ASN_DEBUG_f -#endif /* C99 */ -#else /* ASN_EMIT_DEBUG != 1 */ -#if __STDC_VERSION__ >= 199901L -#define ASN_DEBUG(...) do{}while(0) -#else /* not C99 */ -static void CC_PRINTFLIKE(1, 2) ASN_DEBUG(const char *fmt, ...) { (void)fmt; } -#endif /* C99 or better */ -#endif /* ASN_EMIT_DEBUG */ -#endif /* ASN_DEBUG */ - -/* - * Print to a callback. - * The callback is expected to return negative values on error. - * 0 and positive values are treated as success. - * RETURN VALUES: - * -1: Failed to format or invoke the callback. - * >0: Size of the data that got delivered to the callback. - */ -ssize_t CC_PRINTFLIKE(3, 4) -asn__format_to_callback( - int (*callback)(const void *, size_t, void *key), void *key, - const char *fmt, ...); - -/* - * Invoke the application-supplied callback and fail, if something is wrong. - */ -#define ASN__E_cbc(buf, size) (cb((buf), (size), app_key) < 0) -#define ASN__E_CALLBACK(size, foo) \ - do { \ - if(foo) goto cb_failed; \ - er.encoded += (size); \ - } while(0) -#define ASN__CALLBACK(buf, size) ASN__E_CALLBACK(size, ASN__E_cbc(buf, size)) -#define ASN__CALLBACK2(buf1, size1, buf2, size2) \ - ASN__E_CALLBACK((size1) + (size2), \ - ASN__E_cbc(buf1, size1) || ASN__E_cbc(buf2, size2)) -#define ASN__CALLBACK3(buf1, size1, buf2, size2, buf3, size3) \ - ASN__E_CALLBACK((size1) + (size2) + (size3), \ - ASN__E_cbc(buf1, size1) || ASN__E_cbc(buf2, size2) \ - || ASN__E_cbc(buf3, size3)) - -#define ASN__TEXT_INDENT(nl, level) \ - do { \ - int tmp_level = (level); \ - int tmp_nl = ((nl) != 0); \ - int tmp_i; \ - if(tmp_nl) ASN__CALLBACK("\n", 1); \ - if(tmp_level < 0) tmp_level = 0; \ - for(tmp_i = 0; tmp_i < tmp_level; tmp_i++) ASN__CALLBACK(" ", 4); \ - } while(0) - -#define _i_INDENT(nl) do { \ - int tmp_i; \ - if((nl) && cb("\n", 1, app_key) < 0) \ - return -1; \ - for(tmp_i = 0; tmp_i < ilevel; tmp_i++) \ - if(cb(" ", 4, app_key) < 0) \ - return -1; \ - } while(0) - -/* - * Check stack against overflow, if limit is set. - */ -#define ASN__DEFAULT_STACK_MAX (30000) -static int CC_NOTUSED -ASN__STACK_OVERFLOW_CHECK(const asn_codec_ctx_t *ctx) { - if(ctx && ctx->max_stack_size) { - - /* ctx MUST be allocated on the stack */ - ptrdiff_t usedstack = ((const char *)ctx - (const char *)&ctx); - if(usedstack > 0) usedstack = -usedstack; /* grows up! */ - - /* double negative required to avoid int wrap-around */ - if(usedstack < -(ptrdiff_t)ctx->max_stack_size) { - ASN_DEBUG("Stack limit %ld reached", - (long)ctx->max_stack_size); - return -1; - } - } - return 0; -} - -#ifdef __cplusplus -} -#endif - -#endif /* ASN_INTERNAL_H */ diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/asn_ioc.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/asn_ioc.h deleted file mode 100644 index 7de210e..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/asn_ioc.h +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Run-time support for Information Object Classes. - * Copyright (c) 2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef ASN_IOC_H -#define ASN_IOC_H - -#include /* Platform-specific types */ - -#ifdef __cplusplus -extern "C" { -#endif - -struct asn_TYPE_descriptor_s; -struct asn_ioc_cell_s; - -/* - * X.681, #13 - */ -typedef struct asn_ioc_set_s { - size_t rows_count; - size_t columns_count; - const struct asn_ioc_cell_s *rows; -} asn_ioc_set_t; - - -typedef struct asn_ioc_cell_s { - const char *field_name; /* Is equal to corresponding column_name */ - enum { - aioc__undefined = 0, - aioc__value, - aioc__type, - aioc__open_type, - } cell_kind; - struct asn_TYPE_descriptor_s *type_descriptor; - const void *value_sptr; - struct { - size_t types_count; - struct { - unsigned choice_position; - } *types; - } open_type; -} asn_ioc_cell_t; - - -#ifdef __cplusplus -} -#endif - -#endif /* ASN_IOC_H */ diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/asn_random_fill.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/asn_random_fill.c deleted file mode 100644 index 819cf70..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/asn_random_fill.c +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Copyright (c) 2017 Lev Walkin . - * All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include - -int -asn_random_fill(const struct asn_TYPE_descriptor_s *td, void **struct_ptr, - size_t length) { - - if(td && td->op->random_fill) { - asn_random_fill_result_t res = - td->op->random_fill(td, struct_ptr, 0, length); - return (res.code == ARFILL_OK) ? 0 : -1; - } else { - return -1; - } -} - -static uintmax_t -asn__intmax_range(intmax_t lb, intmax_t ub) { - assert(lb <= ub); - if((ub < 0) == (lb < 0)) { - return ub - lb; - } else if(lb < 0) { - return 1 + ((uintmax_t)ub + (uintmax_t)-(lb + 1)); - } else { - assert(!"Unreachable"); - return 0; - } -} - -intmax_t -asn_random_between(intmax_t lb, intmax_t rb) { - if(lb == rb) { - return lb; - } else { - const uintmax_t intmax_max = ((~(uintmax_t)0) >> 1); - uintmax_t range = asn__intmax_range(lb, rb); - uintmax_t value = 0; - uintmax_t got_entropy = 0; - - assert(RAND_MAX > 0xffffff); /* Seen 7ffffffd! */ - assert(range < intmax_max); - - for(; got_entropy < range;) { - got_entropy = (got_entropy << 24) | 0xffffff; - value = (value << 24) | (random() % 0xffffff); - } - - return lb + (intmax_t)(value % (range + 1)); - } -} diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/asn_random_fill.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/asn_random_fill.h deleted file mode 100644 index 47f9b8a..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/asn_random_fill.h +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Copyright (c) 2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef ASN_RANDOM_FILL -#define ASN_RANDOM_FILL - -/* Forward declarations */ -struct asn_TYPE_descriptor_s; -struct asn_encoding_constraints_s; - -/* - * Initialize a structure with random data according to the type specification - * and optional member constraints. - * ARGUMENTS: - * (max_length) - See (approx_max_length_limit). - * (memb_constraints) - Member constraints, if exist. - * The type can be constrained differently according - * to PER and OER specifications, so we find a value - * at the intersection of these constraints. - * In case the return differs from ARFILL_OK, the (struct_ptr) contents - * and (current_length) value remain in their original state. - */ -typedef struct asn_random_fill_result_s { - enum { - ARFILL_FAILED = -1, /* System error (memory?) */ - ARFILL_OK = 0, /* Initialization succeeded */ - ARFILL_SKIPPED = 1 /* Not done due to (length?) constraint */ - } code; - size_t length; /* Approximate number of bytes created. */ -} asn_random_fill_result_t; -typedef asn_random_fill_result_t(asn_random_fill_f)( - const struct asn_TYPE_descriptor_s *td, void **struct_ptr, - const struct asn_encoding_constraints_s *memb_constraints, - size_t max_length); - -/* - * Returns 0 if the structure was properly initialized, -1 otherwise. - * The (approx_max_length_limit) specifies the approximate limit of the - * resulting structure in units closely resembling bytes. The actual result - * might be several times larger or smaller than the length limit. - */ -int asn_random_fill(const struct asn_TYPE_descriptor_s *td, void **struct_ptr, - size_t approx_max_length_limit); - -/* - * Returns a random number between min and max. - */ -intmax_t asn_random_between(intmax_t min, intmax_t max); - -#endif /* ASN_RANDOM_FILL */ diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/asn_system.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/asn_system.h deleted file mode 100644 index fa8cf11..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/asn_system.h +++ /dev/null @@ -1,150 +0,0 @@ -/* - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -/* - * Miscellaneous system-dependent types. - */ -#ifndef ASN_SYSTEM_H -#define ASN_SYSTEM_H - -#ifdef HAVE_CONFIG_H -#include "config.h" -#endif - -#ifndef _DEFAULT_SOURCE -#define _DEFAULT_SOURCE 1 -#endif - -#ifndef _BSD_SOURCE -#define _BSD_SOURCE /* for snprintf() on some linux systems */ -#endif - -#include /* For snprintf(3) */ -#include /* For *alloc(3) */ -#include /* For memcpy(3) */ -#include /* For size_t */ -#include /* For LONG_MAX */ -#include /* For va_start */ -#include /* for offsetof and ptrdiff_t */ - -#ifdef _WIN32 - -#include -#define snprintf _snprintf -#define vsnprintf _vsnprintf - -/* To avoid linking with ws2_32.lib, here's the definition of ntohl() */ -#define sys_ntohl(l) ((((l) << 24) & 0xff000000) \ - | (((l) << 8) & 0xff0000) \ - | (((l) >> 8) & 0xff00) \ - | ((l >> 24) & 0xff)) - -#ifdef _MSC_VER /* MSVS.Net */ -#ifndef __cplusplus -#define inline __inline -#endif -#ifndef ASSUMESTDTYPES /* Standard types have been defined elsewhere */ -#define ssize_t SSIZE_T -#if _MSC_VER < 1600 -typedef char int8_t; -typedef short int16_t; -typedef int int32_t; -typedef unsigned char uint8_t; -typedef unsigned short uint16_t; -typedef unsigned int uint32_t; -#else /* _MSC_VER >= 1600 */ -#include -#endif /* _MSC_VER < 1600 */ -#endif /* ASSUMESTDTYPES */ -#define WIN32_LEAN_AND_MEAN -#include -#include -#define isnan _isnan -#define finite _finite -#define copysign _copysign -#define ilogb _logb -#else /* !_MSC_VER */ -#include -#endif /* _MSC_VER */ - -#else /* !_WIN32 */ - -#if defined(__vxworks) -#include -#else /* !defined(__vxworks) */ - -#include /* C99 specifies this file */ -#include /* for ntohl() */ -#define sys_ntohl(foo) ntohl(foo) -#endif /* defined(__vxworks) */ - -#endif /* _WIN32 */ - -#if __GNUC__ >= 3 || defined(__clang__) -#define CC_ATTRIBUTE(attr) __attribute__((attr)) -#else -#define CC_ATTRIBUTE(attr) -#endif -#define CC_PRINTFLIKE(fmt, var) CC_ATTRIBUTE(format(printf, fmt, var)) -#define CC_NOTUSED CC_ATTRIBUTE(unused) -#ifndef CC_ATTR_NO_SANITIZE -#define CC_ATTR_NO_SANITIZE(what) CC_ATTRIBUTE(no_sanitize(what)) -#endif - -/* Figure out if thread safety is requested */ -#if !defined(ASN_THREAD_SAFE) && (defined(THREAD_SAFE) || defined(_REENTRANT)) -#define ASN_THREAD_SAFE -#endif /* Thread safety */ - -#ifndef offsetof /* If not defined by */ -#define offsetof(s, m) ((ptrdiff_t)&(((s *)0)->m) - (ptrdiff_t)((s *)0)) -#endif /* offsetof */ - -#ifndef MIN /* Suitable for comparing primitive types (integers) */ -#if defined(__GNUC__) -#define MIN(a,b) ({ __typeof a _a = a; __typeof b _b = b; \ - ((_a)<(_b)?(_a):(_b)); }) -#else /* !__GNUC__ */ -#define MIN(a,b) ((a)<(b)?(a):(b)) /* Unsafe variant */ -#endif /* __GNUC__ */ -#endif /* MIN */ - -#if __STDC_VERSION__ >= 199901L -#ifndef SIZE_MAX -#define SIZE_MAX ((~((size_t)0)) >> 1) -#endif - -#ifndef RSIZE_MAX /* C11, Annex K */ -#define RSIZE_MAX (SIZE_MAX >> 1) -#endif -#ifndef RSSIZE_MAX /* Halve signed size even further than unsigned */ -#define RSSIZE_MAX ((ssize_t)(RSIZE_MAX >> 1)) -#endif -#else /* Old compiler */ -#undef SIZE_MAX -#undef RSIZE_MAX -#undef RSSIZE_MAX -#define SIZE_MAX ((~((size_t)0)) >> 1) -#define RSIZE_MAX (SIZE_MAX >> 1) -#define RSSIZE_MAX ((ssize_t)(RSIZE_MAX >> 1)) -#endif - -#if __STDC_VERSION__ >= 199901L -#define ASN_PRI_SIZE "zu" -#define ASN_PRI_SSIZE "zd" -#define ASN_PRIuMAX PRIuMAX -#define ASN_PRIdMAX PRIdMAX -#else -#define ASN_PRI_SIZE "lu" -#define ASN_PRI_SSIZE "ld" -#if LLONG_MAX > LONG_MAX -#define ASN_PRIuMAX "llu" -#define ASN_PRIdMAX "lld" -#else -#define ASN_PRIuMAX "lu" -#define ASN_PRIdMAX "ld" -#endif -#endif - -#endif /* ASN_SYSTEM_H */ diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/ber_decoder.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/ber_decoder.c deleted file mode 100644 index 75d6016..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/ber_decoder.c +++ /dev/null @@ -1,283 +0,0 @@ -/*- - * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include - -#undef ADVANCE -#define ADVANCE(num_bytes) do { \ - size_t num = num_bytes; \ - ptr = ((const char *)ptr) + num; \ - size -= num; \ - consumed_myself += num; \ - } while(0) -#undef RETURN -#define RETURN(_code) do { \ - asn_dec_rval_t rval; \ - rval.code = _code; \ - if(opt_ctx) opt_ctx->step = step; /* Save context */ \ - if(_code == RC_OK || opt_ctx) \ - rval.consumed = consumed_myself; \ - else \ - rval.consumed = 0; /* Context-free */ \ - return rval; \ - } while(0) - -/* - * The BER decoder of any type. - */ -asn_dec_rval_t -ber_decode(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *type_descriptor, void **struct_ptr, - const void *ptr, size_t size) { - asn_codec_ctx_t s_codec_ctx; - - /* - * Stack checker requires that the codec context - * must be allocated on the stack. - */ - if(opt_codec_ctx) { - if(opt_codec_ctx->max_stack_size) { - s_codec_ctx = *opt_codec_ctx; - opt_codec_ctx = &s_codec_ctx; - } - } else { - /* If context is not given, be security-conscious anyway */ - memset(&s_codec_ctx, 0, sizeof(s_codec_ctx)); - s_codec_ctx.max_stack_size = ASN__DEFAULT_STACK_MAX; - opt_codec_ctx = &s_codec_ctx; - } - - /* - * Invoke type-specific decoder. - */ - return type_descriptor->op->ber_decoder(opt_codec_ctx, type_descriptor, - struct_ptr, /* Pointer to the destination structure */ - ptr, size, /* Buffer and its size */ - 0 /* Default tag mode is 0 */ - ); -} - -/* - * Check the set of >> tags matches the definition. - */ -asn_dec_rval_t -ber_check_tags(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, asn_struct_ctx_t *opt_ctx, - const void *ptr, size_t size, int tag_mode, int last_tag_form, - ber_tlv_len_t *last_length, int *opt_tlv_form) { - ssize_t consumed_myself = 0; - ssize_t tag_len; - ssize_t len_len; - ber_tlv_tag_t tlv_tag; - ber_tlv_len_t tlv_len; - ber_tlv_len_t limit_len = -1; - int expect_00_terminators = 0; - int tlv_constr = -1; /* If CHOICE, opt_tlv_form is not given */ - int step = opt_ctx ? opt_ctx->step : 0; /* Where we left previously */ - int tagno; - - /* - * Make sure we didn't exceed the maximum stack size. - */ - if(ASN__STACK_OVERFLOW_CHECK(opt_codec_ctx)) - RETURN(RC_FAIL); - - /* - * So what does all this implicit skip stuff mean? - * Imagine two types, - * A ::= [5] IMPLICIT T - * B ::= [2] EXPLICIT T - * Where T is defined as - * T ::= [4] IMPLICIT SEQUENCE { ... } - * - * Let's say, we are starting to decode type A, given the - * following TLV stream: <5> <0>. What does this mean? - * It means that the type A contains type T which is, - * in turn, empty. - * Remember though, that we are still in A. We cannot - * just pass control to the type T decoder. Why? Because - * the type T decoder expects <4> <0>, not <5> <0>. - * So, we must make sure we are going to receive <5> while - * still in A, then pass control to the T decoder, indicating - * that the tag <4> was implicitly skipped. The decoder of T - * hence will be prepared to treat <4> as valid tag, and decode - * it appropriately. - */ - - tagno = step /* Continuing where left previously */ - + (tag_mode==1?-1:0) - ; - ASN_DEBUG("ber_check_tags(%s, size=%ld, tm=%d, step=%d, tagno=%d)", - td->name, (long)size, tag_mode, step, tagno); - /* assert(td->tags_count >= 1) May not be the case for CHOICE or ANY */ - - if(tag_mode == 0 && tagno == (int)td->tags_count) { - /* - * This must be the _untagged_ ANY type, - * which outermost tag isn't known in advance. - * Fetch the tag and length separately. - */ - tag_len = ber_fetch_tag(ptr, size, &tlv_tag); - switch(tag_len) { - case -1: RETURN(RC_FAIL); - case 0: RETURN(RC_WMORE); - } - tlv_constr = BER_TLV_CONSTRUCTED(ptr); - len_len = ber_fetch_length(tlv_constr, - (const char *)ptr + tag_len, size - tag_len, &tlv_len); - switch(len_len) { - case -1: RETURN(RC_FAIL); - case 0: RETURN(RC_WMORE); - } - ASN_DEBUG("Advancing %ld in ANY case", - (long)(tag_len + len_len)); - ADVANCE(tag_len + len_len); - } else { - assert(tagno < (int)td->tags_count); /* At least one loop */ - } - for((void)tagno; tagno < (int)td->tags_count; tagno++, step++) { - - /* - * Fetch and process T from TLV. - */ - tag_len = ber_fetch_tag(ptr, size, &tlv_tag); - ASN_DEBUG("Fetching tag from {%p,%ld}: " - "len %ld, step %d, tagno %d got %s", - ptr, (long)size, - (long)tag_len, step, tagno, - ber_tlv_tag_string(tlv_tag)); - switch(tag_len) { - case -1: RETURN(RC_FAIL); - case 0: RETURN(RC_WMORE); - } - - tlv_constr = BER_TLV_CONSTRUCTED(ptr); - - /* - * If {I}, don't check anything. - * If {I,B,C}, check B and C unless we're at I. - */ - if(tag_mode != 0 && step == 0) { - /* - * We don't expect tag to match here. - * It's just because we don't know how the tag - * is supposed to look like. - */ - } else { - assert(tagno >= 0); /* Guaranteed by the code above */ - if(tlv_tag != td->tags[tagno]) { - /* - * Unexpected tag. Too bad. - */ - ASN_DEBUG("Expected: %s, " - "expectation failed (tn=%d, tm=%d)", - ber_tlv_tag_string(td->tags[tagno]), - tagno, tag_mode - ); - RETURN(RC_FAIL); - } - } - - /* - * Attention: if there are more tags expected, - * ensure that the current tag is presented - * in constructed form (it contains other tags!). - * If this one is the last one, check that the tag form - * matches the one given in descriptor. - */ - if(tagno < ((int)td->tags_count - 1)) { - if(tlv_constr == 0) { - ASN_DEBUG("tlv_constr = %d, expfail", - tlv_constr); - RETURN(RC_FAIL); - } - } else { - if(last_tag_form != tlv_constr - && last_tag_form != -1) { - ASN_DEBUG("last_tag_form %d != %d", - last_tag_form, tlv_constr); - RETURN(RC_FAIL); - } - } - - /* - * Fetch and process L from TLV. - */ - len_len = ber_fetch_length(tlv_constr, - (const char *)ptr + tag_len, size - tag_len, &tlv_len); - ASN_DEBUG("Fetching len = %ld", (long)len_len); - switch(len_len) { - case -1: RETURN(RC_FAIL); - case 0: RETURN(RC_WMORE); - } - - /* - * FIXME - * As of today, the chain of tags - * must either contain several indefinite length TLVs, - * or several definite length ones. - * No mixing is allowed. - */ - if(tlv_len == -1) { - /* - * Indefinite length. - */ - if(limit_len == -1) { - expect_00_terminators++; - } else { - ASN_DEBUG("Unexpected indefinite length " - "in a chain of definite lengths"); - RETURN(RC_FAIL); - } - ADVANCE(tag_len + len_len); - continue; - } else { - if(expect_00_terminators) { - ASN_DEBUG("Unexpected definite length " - "in a chain of indefinite lengths"); - RETURN(RC_FAIL); - } - } - - /* - * Check that multiple TLVs specify ever decreasing length, - * which is consistent. - */ - if(limit_len == -1) { - limit_len = tlv_len + tag_len + len_len; - if(limit_len < 0) { - /* Too great tlv_len value? */ - RETURN(RC_FAIL); - } - } else if(limit_len != tlv_len + tag_len + len_len) { - /* - * Inner TLV specifies length which is inconsistent - * with the outer TLV's length value. - */ - ASN_DEBUG("Outer TLV is %ld and inner is %ld", - (long)limit_len, (long)tlv_len); - RETURN(RC_FAIL); - } - - ADVANCE(tag_len + len_len); - - limit_len -= (tag_len + len_len); - if((ssize_t)size > limit_len) { - /* - * Make sure that we won't consume more bytes - * from the parent frame than the inferred limit. - */ - size = limit_len; - } - } - - if(opt_tlv_form) - *opt_tlv_form = tlv_constr; - if(expect_00_terminators) - *last_length = -expect_00_terminators; - else - *last_length = tlv_len; - - RETURN(RC_OK); -} diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/ber_decoder.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/ber_decoder.h deleted file mode 100644 index 1ac2a5e..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/ber_decoder.h +++ /dev/null @@ -1,66 +0,0 @@ -/*- - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef _BER_DECODER_H_ -#define _BER_DECODER_H_ - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -struct asn_TYPE_descriptor_s; /* Forward declaration */ -struct asn_codec_ctx_s; /* Forward declaration */ - -/* - * The BER decoder of any type. - * This function may be invoked directly from the application. - * Decodes BER, DER and CER data (DER and CER are different subsets of BER). - * - * NOTE: Use the der_encode() function (der_encoder.h) to produce encoding - * which is compliant with ber_decode(). - */ -asn_dec_rval_t ber_decode( - const struct asn_codec_ctx_s *opt_codec_ctx, - const struct asn_TYPE_descriptor_s *type_descriptor, - void **struct_ptr, /* Pointer to a target structure's pointer */ - const void *buffer, /* Data to be decoded */ - size_t size /* Size of that buffer */ -); - -/* - * Type of generic function which decodes the byte stream into the structure. - */ -typedef asn_dec_rval_t(ber_type_decoder_f)( - const struct asn_codec_ctx_s *opt_codec_ctx, - const struct asn_TYPE_descriptor_s *type_descriptor, void **struct_ptr, - const void *buf_ptr, size_t size, int tag_mode); - -/******************************* - * INTERNALLY USEFUL FUNCTIONS * - *******************************/ - -/* - * Check that all tags correspond to the type definition (as given in head). - * On return, last_length would contain either a non-negative length of the - * value part of the last TLV, or the negative number of expected - * "end of content" sequences. The number may only be negative if the - * head->last_tag_form is non-zero. - */ -asn_dec_rval_t ber_check_tags( - const struct asn_codec_ctx_s *opt_codec_ctx, /* codec options */ - const struct asn_TYPE_descriptor_s *type_descriptor, - asn_struct_ctx_t *opt_ctx, /* saved decoding context */ - const void *ptr, size_t size, - int tag_mode, /* {-1,0,1}: IMPLICIT, no, EXPLICIT */ - int last_tag_form, /* {-1,0:1}: any, primitive, constr */ - ber_tlv_len_t *last_length, int *opt_tlv_form /* optional tag form */ -); - -#ifdef __cplusplus -} -#endif - -#endif /* _BER_DECODER_H_ */ diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/ber_tlv_length.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/ber_tlv_length.c deleted file mode 100644 index 0a0deec..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/ber_tlv_length.c +++ /dev/null @@ -1,168 +0,0 @@ -/*- - * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include - -ssize_t -ber_fetch_length(int _is_constructed, const void *bufptr, size_t size, - ber_tlv_len_t *len_r) { - const uint8_t *buf = (const uint8_t *)bufptr; - unsigned oct; - - if(size == 0) - return 0; /* Want more */ - - oct = *(const uint8_t *)buf; - if((oct & 0x80) == 0) { - /* - * Short definite length. - */ - *len_r = oct; /* & 0x7F */ - return 1; - } else { - ber_tlv_len_t len; - size_t skipped; - - if(_is_constructed && oct == 0x80) { - *len_r = -1; /* Indefinite length */ - return 1; - } - - if(oct == 0xff) { - /* Reserved in standard for future use. */ - return -1; - } - - oct &= 0x7F; /* Leave only the 7 LS bits */ - for(len = 0, buf++, skipped = 1; - oct && (++skipped <= size); buf++, oct--) { - - /* Verify that we won't overflow. */ - if(!(len >> ((8 * sizeof(len)) - (8+1)))) { - len = (len << 8) | *buf; - } else { - /* Too large length value. */ - return -1; - } - } - - if(oct == 0) { - if(len < 0 || len > RSSIZE_MAX) { - /* Length value out of sane range. */ - return -1; - } - - *len_r = len; - return skipped; - } - - return 0; /* Want more */ - } - -} - -ssize_t -ber_skip_length(const asn_codec_ctx_t *opt_codec_ctx, - int _is_constructed, const void *ptr, size_t size) { - ber_tlv_len_t vlen; /* Length of V in TLV */ - ssize_t tl; /* Length of L in TLV */ - ssize_t ll; /* Length of L in TLV */ - size_t skip; - - /* - * Make sure we didn't exceed the maximum stack size. - */ - if(ASN__STACK_OVERFLOW_CHECK(opt_codec_ctx)) - return -1; - - /* - * Determine the size of L in TLV. - */ - ll = ber_fetch_length(_is_constructed, ptr, size, &vlen); - if(ll <= 0) return ll; - - /* - * Definite length. - */ - if(vlen >= 0) { - skip = ll + vlen; - if(skip > size) - return 0; /* Want more */ - return skip; - } - - /* - * Indefinite length! - */ - ASN_DEBUG("Skipping indefinite length"); - for(skip = ll, ptr = ((const char *)ptr) + ll, size -= ll;;) { - ber_tlv_tag_t tag; - - /* Fetch the tag */ - tl = ber_fetch_tag(ptr, size, &tag); - if(tl <= 0) return tl; - - ll = ber_skip_length(opt_codec_ctx, - BER_TLV_CONSTRUCTED(ptr), - ((const char *)ptr) + tl, size - tl); - if(ll <= 0) return ll; - - skip += tl + ll; - - /* - * This may be the end of the indefinite length structure, - * two consecutive 0 octets. - * Check if it is true. - */ - if(((const uint8_t *)ptr)[0] == 0 - && ((const uint8_t *)ptr)[1] == 0) - return skip; - - ptr = ((const char *)ptr) + tl + ll; - size -= tl + ll; - } - - /* UNREACHABLE */ -} - -size_t -der_tlv_length_serialize(ber_tlv_len_t len, void *bufp, size_t size) { - size_t required_size; /* Size of len encoding */ - uint8_t *buf = (uint8_t *)bufp; - uint8_t *end; - int i; - - if(len <= 127) { - /* Encoded in 1 octet */ - if(size) *buf = (uint8_t)len; - return 1; - } - - /* - * Compute the size of the subsequent bytes. - */ - for(required_size = 1, i = 8; i < 8 * (int)sizeof(len); i += 8) { - if(len >> i) - required_size++; - else - break; - } - - if(size <= required_size) - return required_size + 1; - - *buf++ = (uint8_t)(0x80 | required_size); /* Length of the encoding */ - - /* - * Produce the len encoding, space permitting. - */ - end = buf + required_size; - for(i -= 8; buf < end; i -= 8, buf++) - *buf = (uint8_t)(len >> i); - - return required_size + 1; -} - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/ber_tlv_length.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/ber_tlv_length.h deleted file mode 100644 index d1e4d48..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/ber_tlv_length.h +++ /dev/null @@ -1,50 +0,0 @@ -/*- - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef _BER_TLV_LENGTH_H_ -#define _BER_TLV_LENGTH_H_ - -#ifdef __cplusplus -extern "C" { -#endif - -typedef ssize_t ber_tlv_len_t; - -/* - * This function tries to fetch the length of the BER TLV value and place it - * in *len_r. - * RETURN VALUES: - * 0: More data expected than bufptr contains. - * -1: Fatal error deciphering length. - * >0: Number of bytes used from bufptr. - * On return with >0, len_r is constrained as -1..MAX, where -1 mean - * that the value is of indefinite length. - */ -ssize_t ber_fetch_length(int _is_constructed, const void *bufptr, size_t size, - ber_tlv_len_t *len_r); - -/* - * This function expects bufptr to be positioned over L in TLV. - * It returns number of bytes occupied by L and V together, suitable - * for skipping. The function properly handles indefinite length. - * RETURN VALUES: - * Standard {-1,0,>0} convention. - */ -ssize_t ber_skip_length( - const struct asn_codec_ctx_s *opt_codec_ctx, /* optional context */ - int _is_constructed, const void *bufptr, size_t size); - -/* - * This function serializes the length (L from TLV) in DER format. - * It always returns number of bytes necessary to represent the length, - * it is a caller's responsibility to check the return value - * against the supplied buffer's size. - */ -size_t der_tlv_length_serialize(ber_tlv_len_t len, void *bufptr, size_t size); - -#ifdef __cplusplus -} -#endif - -#endif /* _BER_TLV_LENGTH_H_ */ diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/ber_tlv_tag.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/ber_tlv_tag.c deleted file mode 100644 index 4a7d732..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/ber_tlv_tag.c +++ /dev/null @@ -1,144 +0,0 @@ -/*- - * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include - -ssize_t -ber_fetch_tag(const void *ptr, size_t size, ber_tlv_tag_t *tag_r) { - ber_tlv_tag_t val; - ber_tlv_tag_t tclass; - size_t skipped; - - if(size == 0) - return 0; - - val = *(const uint8_t *)ptr; - tclass = (val >> 6); - if((val &= 0x1F) != 0x1F) { - /* - * Simple form: everything encoded in a single octet. - * Tag Class is encoded using two least significant bits. - */ - *tag_r = (val << 2) | tclass; - return 1; - } - - /* - * Each octet contains 7 bits of useful information. - * The MSB is 0 if it is the last octet of the tag. - */ - for(val = 0, ptr = ((const char *)ptr) + 1, skipped = 2; - skipped <= size; - ptr = ((const char *)ptr) + 1, skipped++) { - unsigned int oct = *(const uint8_t *)ptr; - if(oct & 0x80) { - val = (val << 7) | (oct & 0x7F); - /* - * Make sure there are at least 9 bits spare - * at the MS side of a value. - */ - if(val >> ((8 * sizeof(val)) - 9)) { - /* - * We would not be able to accomodate - * any more tag bits. - */ - return -1; - } - } else { - val = (val << 7) | oct; - *tag_r = (val << 2) | tclass; - return skipped; - } - } - - return 0; /* Want more */ -} - - -ssize_t -ber_tlv_tag_fwrite(ber_tlv_tag_t tag, FILE *f) { - char buf[sizeof("[APPLICATION ]") + 32]; - ssize_t ret; - - ret = ber_tlv_tag_snprint(tag, buf, sizeof(buf)); - if(ret >= (ssize_t)sizeof(buf) || ret < 2) { - errno = EPERM; - return -1; - } - - return fwrite(buf, 1, ret, f); -} - -ssize_t -ber_tlv_tag_snprint(ber_tlv_tag_t tag, char *buf, size_t size) { - const char *type = 0; - int ret; - - switch(tag & 0x3) { - case ASN_TAG_CLASS_UNIVERSAL: type = "UNIVERSAL "; break; - case ASN_TAG_CLASS_APPLICATION: type = "APPLICATION "; break; - case ASN_TAG_CLASS_CONTEXT: type = ""; break; - case ASN_TAG_CLASS_PRIVATE: type = "PRIVATE "; break; - } - - ret = snprintf(buf, size, "[%s%u]", type, ((unsigned)tag) >> 2); - if(ret <= 0 && size) buf[0] = '\0'; /* against broken libc's */ - - return ret; -} - -char * -ber_tlv_tag_string(ber_tlv_tag_t tag) { - static char buf[sizeof("[APPLICATION ]") + 32]; - - (void)ber_tlv_tag_snprint(tag, buf, sizeof(buf)); - - return buf; -} - - -size_t -ber_tlv_tag_serialize(ber_tlv_tag_t tag, void *bufp, size_t size) { - int tclass = BER_TAG_CLASS(tag); - ber_tlv_tag_t tval = BER_TAG_VALUE(tag); - uint8_t *buf = (uint8_t *)bufp; - uint8_t *end; - size_t required_size; - size_t i; - - if(tval <= 30) { - /* Encoded in 1 octet */ - if(size) buf[0] = (tclass << 6) | tval; - return 1; - } else if(size) { - *buf++ = (tclass << 6) | 0x1F; - size--; - } - - /* - * Compute the size of the subsequent bytes. - */ - for(required_size = 1, i = 7; i < 8 * sizeof(tval); i += 7) { - if(tval >> i) - required_size++; - else - break; - } - - if(size < required_size) - return required_size + 1; - - /* - * Fill in the buffer, space permitting. - */ - end = buf + required_size - 1; - for(i -= 7; buf < end; i -= 7, buf++) - *buf = 0x80 | ((tval >> i) & 0x7F); - *buf = (tval & 0x7F); /* Last octet without high bit */ - - return required_size + 1; -} - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/ber_tlv_tag.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/ber_tlv_tag.h deleted file mode 100644 index ce227ad..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/ber_tlv_tag.h +++ /dev/null @@ -1,60 +0,0 @@ -/*- - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef _BER_TLV_TAG_H_ -#define _BER_TLV_TAG_H_ - -#ifdef __cplusplus -extern "C" { -#endif - -enum asn_tag_class { - ASN_TAG_CLASS_UNIVERSAL = 0, /* 0b00 */ - ASN_TAG_CLASS_APPLICATION = 1, /* 0b01 */ - ASN_TAG_CLASS_CONTEXT = 2, /* 0b10 */ - ASN_TAG_CLASS_PRIVATE = 3 /* 0b11 */ -}; -typedef unsigned ber_tlv_tag_t; /* BER TAG from Tag-Length-Value */ - -/* - * Tag class is encoded together with tag value for optimization purposes. - */ -#define BER_TAG_CLASS(tag) ((tag) & 0x3) -#define BER_TAG_VALUE(tag) ((tag) >> 2) -#define BER_TLV_CONSTRUCTED(tagptr) (((*(const uint8_t *)tagptr)&0x20)?1:0) - -#define BER_TAGS_EQUAL(tag1, tag2) ((tag1) == (tag2)) - -/* - * Several functions for printing the TAG in the canonical form - * (i.e. "[PRIVATE 0]"). - * Return values correspond to their libc counterparts (if any). - */ -ssize_t ber_tlv_tag_snprint(ber_tlv_tag_t tag, char *buf, size_t buflen); -ssize_t ber_tlv_tag_fwrite(ber_tlv_tag_t tag, FILE *); -char *ber_tlv_tag_string(ber_tlv_tag_t tag); - - -/* - * This function tries to fetch the tag from the input stream. - * RETURN VALUES: - * 0: More data expected than bufptr contains. - * -1: Fatal error deciphering tag. - * >0: Number of bytes used from bufptr. tag_r will contain the tag. - */ -ssize_t ber_fetch_tag(const void *bufptr, size_t size, ber_tlv_tag_t *tag_r); - -/* - * This function serializes the tag (T from TLV) in BER format. - * It always returns number of bytes necessary to represent the tag, - * it is a caller's responsibility to check the return value - * against the supplied buffer's size. - */ -size_t ber_tlv_tag_serialize(ber_tlv_tag_t tag, void *bufptr, size_t size); - -#ifdef __cplusplus -} -#endif - -#endif /* _BER_TLV_TAG_H_ */ diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/constr_CHOICE.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/constr_CHOICE.c deleted file mode 100644 index 86dcbb0..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/constr_CHOICE.c +++ /dev/null @@ -1,1533 +0,0 @@ -/* - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include - -/* - * Number of bytes left for this structure. - * (ctx->left) indicates the number of bytes _transferred_ for the structure. - * (size) contains the number of bytes in the buffer passed. - */ -#define LEFT ((size<(size_t)ctx->left)?size:(size_t)ctx->left) - -/* - * If the subprocessor function returns with an indication that it wants - * more data, it may well be a fatal decoding problem, because the - * size is constrained by the 's L, even if the buffer size allows - * reading more data. - * For example, consider the buffer containing the following TLVs: - * ... - * The TLV length clearly indicates that one byte is expected in V, but - * if the V processor returns with "want more data" even if the buffer - * contains way more data than the V processor have seen. - */ -#define SIZE_VIOLATION (ctx->left >= 0 && (size_t)ctx->left <= size) - -/* - * This macro "eats" the part of the buffer which is definitely "consumed", - * i.e. was correctly converted into local representation or rightfully skipped. - */ -#undef ADVANCE -#define ADVANCE(num_bytes) do { \ - size_t num = num_bytes; \ - ptr = ((const char *)ptr) + num;\ - size -= num; \ - if(ctx->left >= 0) \ - ctx->left -= num; \ - consumed_myself += num; \ - } while(0) - -/* - * Switch to the next phase of parsing. - */ -#undef NEXT_PHASE -#define NEXT_PHASE(ctx) do { \ - ctx->phase++; \ - ctx->step = 0; \ - } while(0) - -/* - * Return a standardized complex structure. - */ -#undef RETURN -#define RETURN(_code) do { \ - rval.code = _code; \ - rval.consumed = consumed_myself;\ - return rval; \ - } while(0) - -/* - * See the definitions. - */ -static unsigned _fetch_present_idx(const void *struct_ptr, unsigned off, - unsigned size); -static void _set_present_idx(void *sptr, unsigned offset, unsigned size, - unsigned pres); -static const void *_get_member_ptr(const asn_TYPE_descriptor_t *, - const void *sptr, asn_TYPE_member_t **elm, - unsigned *present); - -/* - * Tags are canonically sorted in the tag to member table. - */ -static int -_search4tag(const void *ap, const void *bp) { - const asn_TYPE_tag2member_t *a = (const asn_TYPE_tag2member_t *)ap; - const asn_TYPE_tag2member_t *b = (const asn_TYPE_tag2member_t *)bp; - - int a_class = BER_TAG_CLASS(a->el_tag); - int b_class = BER_TAG_CLASS(b->el_tag); - - if(a_class == b_class) { - ber_tlv_tag_t a_value = BER_TAG_VALUE(a->el_tag); - ber_tlv_tag_t b_value = BER_TAG_VALUE(b->el_tag); - - if(a_value == b_value) - return 0; - else if(a_value < b_value) - return -1; - else - return 1; - } else if(a_class < b_class) { - return -1; - } else { - return 1; - } -} - -/* - * The decoder of the CHOICE type. - */ -asn_dec_rval_t -CHOICE_decode_ber(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **struct_ptr, - const void *ptr, size_t size, int tag_mode) { - /* - * Bring closer parts of structure description. - */ - const asn_CHOICE_specifics_t *specs = - (const asn_CHOICE_specifics_t *)td->specifics; - asn_TYPE_member_t *elements = td->elements; - - /* - * Parts of the structure being constructed. - */ - void *st = *struct_ptr; /* Target structure. */ - asn_struct_ctx_t *ctx; /* Decoder context */ - - ber_tlv_tag_t tlv_tag; /* T from TLV */ - ssize_t tag_len; /* Length of TLV's T */ - asn_dec_rval_t rval; /* Return code from subparsers */ - - ssize_t consumed_myself = 0; /* Consumed bytes from ptr */ - - ASN_DEBUG("Decoding %s as CHOICE", td->name); - - /* - * Create the target structure if it is not present already. - */ - if(st == 0) { - st = *struct_ptr = CALLOC(1, specs->struct_size); - if(st == 0) { - RETURN(RC_FAIL); - } - } - - /* - * Restore parsing context. - */ - ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset); - - /* - * Start to parse where left previously - */ - switch(ctx->phase) { - case 0: - /* - * PHASE 0. - * Check that the set of tags associated with given structure - * perfectly fits our expectations. - */ - - if(tag_mode || td->tags_count) { - rval = ber_check_tags(opt_codec_ctx, td, ctx, ptr, size, - tag_mode, -1, &ctx->left, 0); - if(rval.code != RC_OK) { - ASN_DEBUG("%s tagging check failed: %d", - td->name, rval.code); - return rval; - } - - if(ctx->left >= 0) { - /* ?Substracted below! */ - ctx->left += rval.consumed; - } - ADVANCE(rval.consumed); - } else { - ctx->left = -1; - } - - NEXT_PHASE(ctx); - - ASN_DEBUG("Structure consumes %ld bytes, buffer %ld", - (long)ctx->left, (long)size); - - /* Fall through */ - case 1: - /* - * Fetch the T from TLV. - */ - tag_len = ber_fetch_tag(ptr, LEFT, &tlv_tag); - ASN_DEBUG("In %s CHOICE tag length %d", td->name, (int)tag_len); - switch(tag_len) { - case 0: if(!SIZE_VIOLATION) RETURN(RC_WMORE); - /* Fall through */ - case -1: RETURN(RC_FAIL); - } - - do { - const asn_TYPE_tag2member_t *t2m; - asn_TYPE_tag2member_t key; - - key.el_tag = tlv_tag; - t2m = (const asn_TYPE_tag2member_t *)bsearch(&key, - specs->tag2el, specs->tag2el_count, - sizeof(specs->tag2el[0]), _search4tag); - if(t2m) { - /* - * Found the element corresponding to the tag. - */ - NEXT_PHASE(ctx); - ctx->step = t2m->el_no; - break; - } else if(specs->ext_start == -1) { - ASN_DEBUG("Unexpected tag %s " - "in non-extensible CHOICE %s", - ber_tlv_tag_string(tlv_tag), td->name); - RETURN(RC_FAIL); - } else { - /* Skip this tag */ - ssize_t skip; - - ASN_DEBUG("Skipping unknown tag %s", - ber_tlv_tag_string(tlv_tag)); - - skip = ber_skip_length(opt_codec_ctx, - BER_TLV_CONSTRUCTED(ptr), - (const char *)ptr + tag_len, - LEFT - tag_len); - - switch(skip) { - case 0: if(!SIZE_VIOLATION) RETURN(RC_WMORE); - /* Fall through */ - case -1: RETURN(RC_FAIL); - } - - ADVANCE(skip + tag_len); - RETURN(RC_OK); - } - } while(0); - - case 2: - /* - * PHASE 2. - * Read in the element. - */ - do { - asn_TYPE_member_t *elm;/* CHOICE's element */ - void *memb_ptr; /* Pointer to the member */ - void **memb_ptr2; /* Pointer to that pointer */ - - elm = &elements[ctx->step]; - - /* - * Compute the position of the member inside a structure, - * and also a type of containment (it may be contained - * as pointer or using inline inclusion). - */ - if(elm->flags & ATF_POINTER) { - /* Member is a pointer to another structure */ - memb_ptr2 = (void **)((char *)st + elm->memb_offset); - } else { - /* - * A pointer to a pointer - * holding the start of the structure - */ - memb_ptr = (char *)st + elm->memb_offset; - memb_ptr2 = &memb_ptr; - } - /* Set presence to be able to free it properly at any time */ - _set_present_idx(st, specs->pres_offset, - specs->pres_size, ctx->step + 1); - /* - * Invoke the member fetch routine according to member's type - */ - rval = elm->type->op->ber_decoder(opt_codec_ctx, elm->type, - memb_ptr2, ptr, LEFT, elm->tag_mode); - switch(rval.code) { - case RC_OK: - break; - case RC_WMORE: /* More data expected */ - if(!SIZE_VIOLATION) { - ADVANCE(rval.consumed); - RETURN(RC_WMORE); - } - RETURN(RC_FAIL); - case RC_FAIL: /* Fatal error */ - RETURN(rval.code); - } /* switch(rval) */ - - ADVANCE(rval.consumed); - } while(0); - - NEXT_PHASE(ctx); - - /* Fall through */ - case 3: - ASN_DEBUG("CHOICE %s Leftover: %ld, size = %ld, tm=%d, tc=%d", - td->name, (long)ctx->left, (long)size, - tag_mode, td->tags_count); - - if(ctx->left > 0) { - /* - * The type must be fully decoded - * by the CHOICE member-specific decoder. - */ - RETURN(RC_FAIL); - } - - if(ctx->left == -1 - && !(tag_mode || td->tags_count)) { - /* - * This is an untagged CHOICE. - * It doesn't contain nothing - * except for the member itself, including all its tags. - * The decoding is completed. - */ - NEXT_PHASE(ctx); - break; - } - - /* - * Read in the "end of data chunks"'s. - */ - while(ctx->left < 0) { - ssize_t tl; - - tl = ber_fetch_tag(ptr, LEFT, &tlv_tag); - switch(tl) { - case 0: if(!SIZE_VIOLATION) RETURN(RC_WMORE); - /* Fall through */ - case -1: RETURN(RC_FAIL); - } - - /* - * Expected <0><0>... - */ - if(((const uint8_t *)ptr)[0] == 0) { - if(LEFT < 2) { - if(SIZE_VIOLATION) - RETURN(RC_FAIL); - else - RETURN(RC_WMORE); - } else if(((const uint8_t *)ptr)[1] == 0) { - /* - * Correctly finished with <0><0>. - */ - ADVANCE(2); - ctx->left++; - continue; - } - } else { - ASN_DEBUG("Unexpected continuation in %s", - td->name); - RETURN(RC_FAIL); - } - - /* UNREACHABLE */ - } - - NEXT_PHASE(ctx); - case 4: - /* No meaningful work here */ - break; - } - - RETURN(RC_OK); -} - -asn_enc_rval_t -CHOICE_encode_der(const asn_TYPE_descriptor_t *td, const void *sptr, - int tag_mode, ber_tlv_tag_t tag, asn_app_consume_bytes_f *cb, - void *app_key) { - const asn_CHOICE_specifics_t *specs = (const asn_CHOICE_specifics_t *)td->specifics; - asn_TYPE_member_t *elm; /* CHOICE element */ - asn_enc_rval_t erval = {0,0,0}; - const void *memb_ptr; - size_t computed_size = 0; - unsigned present; - - if(!sptr) ASN__ENCODE_FAILED; - - ASN_DEBUG("%s %s as CHOICE", - cb?"Encoding":"Estimating", td->name); - - present = _fetch_present_idx(sptr, - specs->pres_offset, specs->pres_size); - - /* - * If the structure was not initialized, it cannot be encoded: - * can't deduce what to encode in the choice type. - */ - if(present == 0 || present > td->elements_count) { - if(present == 0 && td->elements_count == 0) { - /* The CHOICE is empty?! */ - erval.encoded = 0; - ASN__ENCODED_OK(erval); - } - ASN__ENCODE_FAILED; - } - - /* - * Seek over the present member of the structure. - */ - elm = &td->elements[present-1]; - if(elm->flags & ATF_POINTER) { - memb_ptr = - *(const void *const *)((const char *)sptr + elm->memb_offset); - if(memb_ptr == 0) { - if(elm->optional) { - erval.encoded = 0; - ASN__ENCODED_OK(erval); - } - /* Mandatory element absent */ - ASN__ENCODE_FAILED; - } - } else { - memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); - } - - /* - * If the CHOICE itself is tagged EXPLICIT: - * T ::= [2] EXPLICIT CHOICE { ... } - * Then emit the appropriate tags. - */ - if(tag_mode == 1 || td->tags_count) { - /* - * For this, we need to pre-compute the member. - */ - ssize_t ret; - - /* Encode member with its tag */ - erval = elm->type->op->der_encoder(elm->type, memb_ptr, - elm->tag_mode, elm->tag, 0, 0); - if(erval.encoded == -1) - return erval; - - /* Encode CHOICE with parent or my own tag */ - ret = der_write_tags(td, erval.encoded, tag_mode, 1, tag, - cb, app_key); - if(ret == -1) - ASN__ENCODE_FAILED; - computed_size += ret; - } - - /* - * Encode the single underlying member. - */ - erval = elm->type->op->der_encoder(elm->type, memb_ptr, - elm->tag_mode, elm->tag, cb, app_key); - if(erval.encoded == -1) - return erval; - - ASN_DEBUG("Encoded CHOICE member in %ld bytes (+%ld)", - (long)erval.encoded, (long)computed_size); - - erval.encoded += computed_size; - - return erval; -} - -ber_tlv_tag_t -CHOICE_outmost_tag(const asn_TYPE_descriptor_t *td, const void *ptr, int tag_mode, ber_tlv_tag_t tag) { - const asn_CHOICE_specifics_t *specs = (const asn_CHOICE_specifics_t *)td->specifics; - unsigned present; - - assert(tag_mode == 0); (void)tag_mode; - assert(tag == 0); (void)tag; - - /* - * Figure out which CHOICE element is encoded. - */ - present = _fetch_present_idx(ptr, specs->pres_offset, specs->pres_size); - - if(present > 0 && present <= td->elements_count) { - const asn_TYPE_member_t *elm = &td->elements[present-1]; - const void *memb_ptr; - - if(elm->flags & ATF_POINTER) { - memb_ptr = *(const void * const *) - ((const char *)ptr + elm->memb_offset); - } else { - memb_ptr = (const void *) - ((const char *)ptr + elm->memb_offset); - } - - return asn_TYPE_outmost_tag(elm->type, memb_ptr, - elm->tag_mode, elm->tag); - } else { - return (ber_tlv_tag_t)-1; - } -} - -int -CHOICE_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const asn_CHOICE_specifics_t *specs = - (const asn_CHOICE_specifics_t *)td->specifics; - unsigned present; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - /* - * Figure out which CHOICE element is encoded. - */ - present = _fetch_present_idx(sptr, specs->pres_offset,specs->pres_size); - if(present > 0 && present <= td->elements_count) { - asn_TYPE_member_t *elm = &td->elements[present-1]; - const void *memb_ptr; - - if(elm->flags & ATF_POINTER) { - memb_ptr = *(const void * const *)((const char *)sptr + elm->memb_offset); - if(!memb_ptr) { - if(elm->optional) - return 0; - ASN__CTFAIL(app_key, td, sptr, - "%s: mandatory CHOICE element %s absent (%s:%d)", - td->name, elm->name, __FILE__, __LINE__); - return -1; - } - } else { - memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); - } - - if(elm->encoding_constraints.general_constraints) { - return elm->encoding_constraints.general_constraints(elm->type, memb_ptr, - ctfailcb, app_key); - } else { - return elm->type->encoding_constraints.general_constraints(elm->type, - memb_ptr, ctfailcb, app_key); - } - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: no CHOICE element given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -#undef XER_ADVANCE -#define XER_ADVANCE(num_bytes) do { \ - size_t num = num_bytes; \ - buf_ptr = (const void *)(((const char *)buf_ptr) + num); \ - size -= num; \ - consumed_myself += num; \ - } while(0) - -/* - * Decode the XER (XML) data. - */ -asn_dec_rval_t -CHOICE_decode_xer(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **struct_ptr, - const char *opt_mname, const void *buf_ptr, size_t size) { - /* - * Bring closer parts of structure description. - */ - const asn_CHOICE_specifics_t *specs = (const asn_CHOICE_specifics_t *)td->specifics; - const char *xml_tag = opt_mname ? opt_mname : td->xml_tag; - - /* - * Parts of the structure being constructed. - */ - void *st = *struct_ptr; /* Target structure. */ - asn_struct_ctx_t *ctx; /* Decoder context */ - - asn_dec_rval_t rval; /* Return value of a decoder */ - ssize_t consumed_myself = 0; /* Consumed bytes from ptr */ - size_t edx; /* Element index */ - - /* - * Create the target structure if it is not present already. - */ - if(st == 0) { - st = *struct_ptr = CALLOC(1, specs->struct_size); - if(st == 0) RETURN(RC_FAIL); - } - - /* - * Restore parsing context. - */ - ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset); - if(ctx->phase == 0 && !*xml_tag) - ctx->phase = 1; /* Skip the outer tag checking phase */ - - /* - * Phases of XER/XML processing: - * Phase 0: Check that the opening tag matches our expectations. - * Phase 1: Processing body and reacting on closing tag. - * Phase 2: Processing inner type. - * Phase 3: Only waiting for closing tag. - * Phase 4: Skipping unknown extensions. - * Phase 5: PHASED OUT - */ - for(edx = ctx->step; ctx->phase <= 4;) { - pxer_chunk_type_e ch_type; /* XER chunk type */ - ssize_t ch_size; /* Chunk size */ - xer_check_tag_e tcv; /* Tag check value */ - asn_TYPE_member_t *elm; - - /* - * Go inside the member. - */ - if(ctx->phase == 2) { - asn_dec_rval_t tmprval; - void *memb_ptr; /* Pointer to the member */ - void **memb_ptr2; /* Pointer to that pointer */ - unsigned old_present; - - elm = &td->elements[edx]; - - if(elm->flags & ATF_POINTER) { - /* Member is a pointer to another structure */ - memb_ptr2 = (void **)((char *)st - + elm->memb_offset); - } else { - memb_ptr = (char *)st + elm->memb_offset; - memb_ptr2 = &memb_ptr; - } - - /* Start/Continue decoding the inner member */ - tmprval = elm->type->op->xer_decoder(opt_codec_ctx, - elm->type, memb_ptr2, elm->name, - buf_ptr, size); - XER_ADVANCE(tmprval.consumed); - ASN_DEBUG("XER/CHOICE: itdf: [%s] code=%d", - elm->type->name, tmprval.code); - old_present = _fetch_present_idx(st, - specs->pres_offset, specs->pres_size); - assert(old_present == 0 || old_present == edx + 1); - /* Record what we've got */ - _set_present_idx(st, - specs->pres_offset, specs->pres_size, edx + 1); - if(tmprval.code != RC_OK) - RETURN(tmprval.code); - ctx->phase = 3; - /* Fall through */ - } - - /* No need to wait for closing tag; special mode. */ - if(ctx->phase == 3 && !*xml_tag) { - ctx->phase = 5; /* Phase out */ - RETURN(RC_OK); - } - - /* - * Get the next part of the XML stream. - */ - ch_size = xer_next_token(&ctx->context, buf_ptr, size, &ch_type); - if(ch_size == -1) { - RETURN(RC_FAIL); - } else { - switch(ch_type) { - case PXER_WMORE: - RETURN(RC_WMORE); - case PXER_COMMENT: /* Got XML comment */ - case PXER_TEXT: /* Ignore free-standing text */ - XER_ADVANCE(ch_size); /* Skip silently */ - continue; - case PXER_TAG: - break; /* Check the rest down there */ - } - } - - tcv = xer_check_tag(buf_ptr, ch_size, xml_tag); - ASN_DEBUG("XER/CHOICE checked [%c%c%c%c] vs [%s], tcv=%d", - ch_size>0?((const uint8_t *)buf_ptr)[0]:'?', - ch_size>1?((const uint8_t *)buf_ptr)[1]:'?', - ch_size>2?((const uint8_t *)buf_ptr)[2]:'?', - ch_size>3?((const uint8_t *)buf_ptr)[3]:'?', - xml_tag, tcv); - - /* Skip the extensions section */ - if(ctx->phase == 4) { - ASN_DEBUG("skip_unknown(%d, %ld)", - tcv, (long)ctx->left); - switch(xer_skip_unknown(tcv, &ctx->left)) { - case -1: - ctx->phase = 5; - RETURN(RC_FAIL); - case 1: - ctx->phase = 3; - /* Fall through */ - case 0: - XER_ADVANCE(ch_size); - continue; - case 2: - ctx->phase = 3; - break; - } - } - - switch(tcv) { - case XCT_BOTH: - break; /* No CHOICE? */ - case XCT_CLOSING: - if(ctx->phase != 3) - break; - XER_ADVANCE(ch_size); - ctx->phase = 5; /* Phase out */ - RETURN(RC_OK); - case XCT_OPENING: - if(ctx->phase == 0) { - XER_ADVANCE(ch_size); - ctx->phase = 1; /* Processing body phase */ - continue; - } - /* Fall through */ - case XCT_UNKNOWN_OP: - case XCT_UNKNOWN_BO: - - if(ctx->phase != 1) - break; /* Really unexpected */ - - /* - * Search which inner member corresponds to this tag. - */ - for(edx = 0; edx < td->elements_count; edx++) { - elm = &td->elements[edx]; - tcv = xer_check_tag(buf_ptr,ch_size,elm->name); - switch(tcv) { - case XCT_BOTH: - case XCT_OPENING: - /* - * Process this member. - */ - ctx->step = edx; - ctx->phase = 2; - break; - case XCT_UNKNOWN_OP: - case XCT_UNKNOWN_BO: - continue; - default: - edx = td->elements_count; - break; /* Phase out */ - } - break; - } - if(edx != td->elements_count) - continue; - - /* It is expected extension */ - if(specs->ext_start != -1) { - ASN_DEBUG("Got anticipated extension"); - /* - * Check for (XCT_BOTH or XCT_UNKNOWN_BO) - * By using a mask. Only record a pure - * tags. - */ - if(tcv & XCT_CLOSING) { - /* Found without body */ - ctx->phase = 3; /* Terminating */ - } else { - ctx->left = 1; - ctx->phase = 4; /* Skip ...'s */ - } - XER_ADVANCE(ch_size); - continue; - } - - /* Fall through */ - default: - break; - } - - ASN_DEBUG("Unexpected XML tag [%c%c%c%c] in CHOICE [%s]" - " (ph=%d, tag=%s)", - ch_size>0?((const uint8_t *)buf_ptr)[0]:'?', - ch_size>1?((const uint8_t *)buf_ptr)[1]:'?', - ch_size>2?((const uint8_t *)buf_ptr)[2]:'?', - ch_size>3?((const uint8_t *)buf_ptr)[3]:'?', - td->name, ctx->phase, xml_tag); - break; - } - - ctx->phase = 5; /* Phase out, just in case */ - RETURN(RC_FAIL); -} - - -asn_enc_rval_t -CHOICE_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, - enum xer_encoder_flags_e flags, asn_app_consume_bytes_f *cb, - void *app_key) { - const asn_CHOICE_specifics_t *specs = - (const asn_CHOICE_specifics_t *)td->specifics; - asn_enc_rval_t er = {0,0,0}; - unsigned present = 0; - - if(!sptr) - ASN__ENCODE_FAILED; - - /* - * Figure out which CHOICE element is encoded. - */ - present = _fetch_present_idx(sptr, specs->pres_offset,specs->pres_size); - - if(present == 0 || present > td->elements_count) { - ASN__ENCODE_FAILED; - } else { - asn_enc_rval_t tmper = {0,0,0}; - asn_TYPE_member_t *elm = &td->elements[present-1]; - const void *memb_ptr = NULL; - const char *mname = elm->name; - unsigned int mlen = strlen(mname); - - if(elm->flags & ATF_POINTER) { - memb_ptr = - *(const void *const *)((const char *)sptr + elm->memb_offset); - if(!memb_ptr) ASN__ENCODE_FAILED; - } else { - memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); - } - - er.encoded = 0; - - if(!(flags & XER_F_CANONICAL)) ASN__TEXT_INDENT(1, ilevel); - ASN__CALLBACK3("<", 1, mname, mlen, ">", 1); - - tmper = elm->type->op->xer_encoder(elm->type, memb_ptr, - ilevel + 1, flags, cb, app_key); - if(tmper.encoded == -1) return tmper; - er.encoded += tmper.encoded; - - ASN__CALLBACK3("", 1); - } - - if(!(flags & XER_F_CANONICAL)) ASN__TEXT_INDENT(1, ilevel - 1); - - ASN__ENCODED_OK(er); -cb_failed: - ASN__ENCODE_FAILED; -} - -asn_dec_rval_t -CHOICE_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, - asn_per_data_t *pd) { - const asn_CHOICE_specifics_t *specs = - (const asn_CHOICE_specifics_t *)td->specifics; - asn_dec_rval_t rv; - const asn_per_constraint_t *ct; - asn_TYPE_member_t *elm; /* CHOICE's element */ - void *memb_ptr; - void **memb_ptr2; - void *st = *sptr; - int value; - - if(ASN__STACK_OVERFLOW_CHECK(opt_codec_ctx)) - ASN__DECODE_FAILED; - - /* - * Create the target structure if it is not present already. - */ - if(!st) { - st = *sptr = CALLOC(1, specs->struct_size); - if(!st) ASN__DECODE_FAILED; - } - - if(constraints) ct = &constraints->value; - else if(td->encoding_constraints.per_constraints) ct = &td->encoding_constraints.per_constraints->value; - else ct = 0; - - if(ct && ct->flags & APC_EXTENSIBLE) { - value = per_get_few_bits(pd, 1); - if(value < 0) ASN__DECODE_STARVED; - if(value) ct = 0; /* Not restricted */ - } - - if(ct && ct->range_bits >= 0) { - value = per_get_few_bits(pd, ct->range_bits); - if(value < 0) ASN__DECODE_STARVED; - ASN_DEBUG("CHOICE %s got index %d in range %d", - td->name, value, ct->range_bits); - if(value > ct->upper_bound) - ASN__DECODE_FAILED; - } else { - if(specs->ext_start == -1) - ASN__DECODE_FAILED; - value = uper_get_nsnnwn(pd); - if(value < 0) ASN__DECODE_STARVED; - value += specs->ext_start; - if((unsigned)value >= td->elements_count) - ASN__DECODE_FAILED; - } - - /* Adjust if canonical order is different from natural order */ - if(specs->from_canonical_order) { - ASN_DEBUG("CHOICE presence from wire %d", value); - value = specs->from_canonical_order[value]; - ASN_DEBUG("CHOICE presence index effective %d", value); - } - - /* Set presence to be able to free it later */ - _set_present_idx(st, specs->pres_offset, specs->pres_size, value + 1); - - elm = &td->elements[value]; - if(elm->flags & ATF_POINTER) { - /* Member is a pointer to another structure */ - memb_ptr2 = (void **)((char *)st + elm->memb_offset); - } else { - memb_ptr = (char *)st + elm->memb_offset; - memb_ptr2 = &memb_ptr; - } - ASN_DEBUG("Discovered CHOICE %s encodes %s", td->name, elm->name); - - if(ct && ct->range_bits >= 0) { - rv = elm->type->op->uper_decoder(opt_codec_ctx, elm->type, - elm->encoding_constraints.per_constraints, memb_ptr2, pd); - } else { - rv = uper_open_type_get(opt_codec_ctx, elm->type, - elm->encoding_constraints.per_constraints, memb_ptr2, pd); - } - - if(rv.code != RC_OK) - ASN_DEBUG("Failed to decode %s in %s (CHOICE) %d", - elm->name, td->name, rv.code); - return rv; -} - -asn_enc_rval_t -CHOICE_encode_uper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, const void *sptr, - asn_per_outp_t *po) { - const asn_CHOICE_specifics_t *specs = (const asn_CHOICE_specifics_t *)td->specifics; - asn_TYPE_member_t *elm; /* CHOICE's element */ - const asn_per_constraint_t *ct; - const void *memb_ptr; - unsigned present; - int present_enc; - - if(!sptr) ASN__ENCODE_FAILED; - - ASN_DEBUG("Encoding %s as CHOICE", td->name); - - if(constraints) ct = &constraints->value; - else if(td->encoding_constraints.per_constraints) - ct = &td->encoding_constraints.per_constraints->value; - else ct = 0; - - present = _fetch_present_idx(sptr, specs->pres_offset, specs->pres_size); - - /* - * If the structure was not initialized properly, it cannot be encoded: - * can't deduce what to encode in the choice type. - */ - if(present == 0 || present > td->elements_count) - ASN__ENCODE_FAILED; - else - present--; - - ASN_DEBUG("Encoding %s CHOICE element %d", td->name, present); - - /* Adjust if canonical order is different from natural order */ - if(specs->to_canonical_order) - present_enc = specs->to_canonical_order[present]; - else - present_enc = present; - - if(ct && ct->range_bits >= 0) { - if(present_enc < ct->lower_bound - || present_enc > ct->upper_bound) { - if(ct->flags & APC_EXTENSIBLE) { - ASN_DEBUG( - "CHOICE member %d (enc %d) is an extension (%ld..%ld)", - present, present_enc, ct->lower_bound, ct->upper_bound); - if(per_put_few_bits(po, 1, 1)) - ASN__ENCODE_FAILED; - } else { - ASN__ENCODE_FAILED; - } - ct = 0; - } - } - if(ct && ct->flags & APC_EXTENSIBLE) { - ASN_DEBUG("CHOICE member %d (enc %d) is not an extension (%ld..%ld)", - present, present_enc, ct->lower_bound, ct->upper_bound); - if(per_put_few_bits(po, 0, 1)) - ASN__ENCODE_FAILED; - } - - - elm = &td->elements[present]; - ASN_DEBUG("CHOICE member \"%s\" %d (as %d)", elm->name, present, - present_enc); - if(elm->flags & ATF_POINTER) { - /* Member is a pointer to another structure */ - memb_ptr = - *(const void *const *)((const char *)sptr + elm->memb_offset); - if(!memb_ptr) ASN__ENCODE_FAILED; - } else { - memb_ptr = (const char *)sptr + elm->memb_offset; - } - - if(ct && ct->range_bits >= 0) { - if(per_put_few_bits(po, present_enc, ct->range_bits)) - ASN__ENCODE_FAILED; - - return elm->type->op->uper_encoder( - elm->type, elm->encoding_constraints.per_constraints, memb_ptr, po); - } else { - asn_enc_rval_t rval = {0,0,0}; - if(specs->ext_start == -1) ASN__ENCODE_FAILED; - if(uper_put_nsnnwn(po, present_enc - specs->ext_start)) - ASN__ENCODE_FAILED; - if(uper_open_type_put(elm->type, - elm->encoding_constraints.per_constraints, - memb_ptr, po)) - ASN__ENCODE_FAILED; - rval.encoded = 0; - ASN__ENCODED_OK(rval); - } -} - -asn_dec_rval_t -CHOICE_decode_aper(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, asn_per_data_t *pd) { - const asn_CHOICE_specifics_t *specs = (const asn_CHOICE_specifics_t *)td->specifics; - asn_dec_rval_t rv; - const asn_per_constraint_t *ct; - const asn_per_constraint_t *ext_ct = NULL; - asn_TYPE_member_t *elm; /* CHOICE's element */ - void *memb_ptr; - void **memb_ptr2; - void *st = *sptr; - int value; - - if(ASN__STACK_OVERFLOW_CHECK(opt_codec_ctx)) - ASN__DECODE_FAILED; - - /* - * Create the target structure if it is not present already. - */ - if(!st) { - st = *sptr = CALLOC(1, specs->struct_size); - if(!st) ASN__DECODE_FAILED; - } - - if(constraints) ct = &constraints->value; - else if(td->encoding_constraints.per_constraints) - ct = &td->encoding_constraints.per_constraints->value; - else ct = 0; - - if(ct && ct->flags & APC_EXTENSIBLE) { - value = per_get_few_bits(pd, 1); - if(value < 0) ASN__DECODE_STARVED; - if(value) { - ext_ct = ct; - ct = 0; /* Not restricted */ - } - } - - - if(ct && ct->range_bits >= 0) { - value = per_get_few_bits(pd, ct->range_bits); - if(value < 0) ASN__DECODE_STARVED; - ASN_DEBUG("CHOICE %s got index %d in range %d", - td->name, value, ct->range_bits); - if(value > ct->upper_bound) - ASN__DECODE_FAILED; - } else { - if(specs->ext_start == -1) - ASN__DECODE_FAILED; - value = aper_get_nsnnwn(pd, ext_ct->range_bits); - if(value < 0) ASN__DECODE_STARVED; - value += specs->ext_start; - if((unsigned)value >= td->elements_count) - ASN__DECODE_FAILED; - } - - /* Adjust if canonical order is different from natural order */ - if(specs->from_canonical_order) - value = specs->from_canonical_order[value]; - - /* Set presence to be able to free it later */ - _set_present_idx(st, specs->pres_offset, specs->pres_size, value + 1); - - elm = &td->elements[value]; - if(elm->flags & ATF_POINTER) { - /* Member is a pointer to another structure */ - memb_ptr2 = (void **)((char *)st + elm->memb_offset); - } else { - memb_ptr = (char *)st + elm->memb_offset; - memb_ptr2 = &memb_ptr; - } - ASN_DEBUG("Discovered CHOICE %s encodes %s", td->name, elm->name); - - if(ct && ct->range_bits >= 0) { - rv = elm->type->op->aper_decoder(opt_codec_ctx, elm->type, - elm->encoding_constraints.per_constraints, memb_ptr2, pd); - } else { - rv = aper_open_type_get(opt_codec_ctx, elm->type, - elm->encoding_constraints.per_constraints, memb_ptr2, pd); - } - - if(rv.code != RC_OK) - ASN_DEBUG("Failed to decode %s in %s (CHOICE) %d", - elm->name, td->name, rv.code); - return rv; -} - -asn_enc_rval_t -CHOICE_encode_aper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_per_outp_t *po) { - const asn_CHOICE_specifics_t *specs = (const asn_CHOICE_specifics_t *)td->specifics; - const asn_TYPE_member_t *elm; /* CHOICE's element */ - const asn_per_constraint_t *ct = NULL; - const asn_per_constraint_t *ext_ct = NULL; - const void *memb_ptr; - unsigned present; - int present_enc; - - if(!sptr) ASN__ENCODE_FAILED; - - ASN_DEBUG("Encoding %s as CHOICE using ALIGNED PER", td->name); - - if(constraints) ct = &constraints->value; - else if(td->encoding_constraints.per_constraints) - ct = &td->encoding_constraints.per_constraints->value; - else ct = NULL; - - present = _fetch_present_idx(sptr, - specs->pres_offset, specs->pres_size); - - /* - * If the structure was not initialized properly, it cannot be encoded: - * can't deduce what to encode in the choice type. - */ - if(present <= 0 || (unsigned)present > td->elements_count) - ASN__ENCODE_FAILED; - else - present--; - - /* Adjust if canonical order is different from natural order */ - if(specs->to_canonical_order) - present_enc = specs->to_canonical_order[present]; - else - present_enc = present; - - ASN_DEBUG("Encoding %s CHOICE element %d", td->name, present); - - if(ct && (ct->range_bits >= 0)) { - // Value is not within the range of the primary values ? - if(present < ct->lower_bound || present > ct->upper_bound) { - if(ct->flags & APC_EXTENSIBLE) { - ASN_DEBUG("CHOICE member %d (enc %d) is an extension (%ld..%ld)", - present, present_enc, ct->lower_bound, ct->upper_bound); - // X691/23.5 Extension marker = 1 - if(per_put_few_bits(po, 1, 1)) { - ASN__ENCODE_FAILED; - } - } else { - ASN__ENCODE_FAILED; - } - // no more need of constraint. - ext_ct = ct; - ct = NULL; - } - } - - if(ct && (ct->flags & APC_EXTENSIBLE)) { - ASN_DEBUG("CHOICE member %d (enc %d) is not an extension (%ld..%ld)", - present, present, ct->lower_bound, ct->upper_bound); - // X691.23.5 Extension marker = 0 - if(per_put_few_bits(po, 0, 1)) { - ASN__ENCODE_FAILED; - } - } - - elm = &td->elements[present]; - if(elm->flags & ATF_POINTER) { - /* Member is a pointer to another structure */ - memb_ptr = *(const void *const *)((const char *)sptr + elm->memb_offset); - if(!memb_ptr) ASN__ENCODE_FAILED; - } else { - memb_ptr = (const char *)sptr + elm->memb_offset; - } - - if(ct && (ct->range_bits >= 0)) { - // By construction (ct != 0), the alternative value is a non extended one. - // X691/23.7 X691/23.6 alternative value encoded as a range_bits bits value. - if(per_put_few_bits(po, present_enc, ct->range_bits)) - ASN__ENCODE_FAILED; - - return elm->type->op->aper_encoder(elm->type, elm->encoding_constraints.per_constraints, - memb_ptr, po); - } else { - asn_enc_rval_t rval = {0,0,0}; - if(specs->ext_start == -1) - ASN__ENCODE_FAILED; - // X691/23.8 normally encoded as a small non negative whole number - - if(ext_ct && aper_put_nsnnwn(po, ext_ct->range_bits, present_enc - specs->ext_start)) - ASN__ENCODE_FAILED; - if(aper_open_type_put(elm->type, elm->encoding_constraints.per_constraints, - memb_ptr, po)) - ASN__ENCODE_FAILED; - rval.encoded = 0; - ASN__ENCODED_OK(rval); - } -} - -int -CHOICE_print(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, - asn_app_consume_bytes_f *cb, void *app_key) { - const asn_CHOICE_specifics_t *specs = (const asn_CHOICE_specifics_t *)td->specifics; - unsigned present; - - if(!sptr) return (cb("", 8, app_key) < 0) ? -1 : 0; - - /* - * Figure out which CHOICE element is encoded. - */ - present = _fetch_present_idx(sptr, specs->pres_offset,specs->pres_size); - - /* - * Print that element. - */ - if(present > 0 && present <= td->elements_count) { - asn_TYPE_member_t *elm = &td->elements[present-1]; - const void *memb_ptr; - - if(elm->flags & ATF_POINTER) { - memb_ptr = *(const void * const *)((const char *)sptr + elm->memb_offset); - if(!memb_ptr) return (cb("", 8, app_key) < 0) ? -1 : 0; - } else { - memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); - } - - /* Print member's name and stuff */ - if(0) { - if(cb(elm->name, strlen(elm->name), app_key) < 0 - || cb(": ", 2, app_key) < 0) - return -1; - } - - return elm->type->op->print_struct(elm->type, memb_ptr, ilevel, - cb, app_key); - } else { - return (cb("", 8, app_key) < 0) ? -1 : 0; - } -} - -void -CHOICE_free(const asn_TYPE_descriptor_t *td, void *ptr, - enum asn_struct_free_method method) { - const asn_CHOICE_specifics_t *specs = - (const asn_CHOICE_specifics_t *)td->specifics; - unsigned present; - - if(!td || !ptr) - return; - - ASN_DEBUG("Freeing %s as CHOICE", td->name); - - /* - * Figure out which CHOICE element is encoded. - */ - present = _fetch_present_idx(ptr, specs->pres_offset, specs->pres_size); - - /* - * Free that element. - */ - if(present > 0 && present <= td->elements_count) { - asn_TYPE_member_t *elm = &td->elements[present-1]; - void *memb_ptr; - - if(elm->flags & ATF_POINTER) { - memb_ptr = *(void **)((char *)ptr + elm->memb_offset); - if(memb_ptr) - ASN_STRUCT_FREE(*elm->type, memb_ptr); - } else { - memb_ptr = (void *)((char *)ptr + elm->memb_offset); - ASN_STRUCT_FREE_CONTENTS_ONLY(*elm->type, memb_ptr); - } - } - - switch(method) { - case ASFM_FREE_EVERYTHING: - FREEMEM(ptr); - break; - case ASFM_FREE_UNDERLYING: - break; - case ASFM_FREE_UNDERLYING_AND_RESET: - memset(ptr, 0, specs->struct_size); - break; - } -} - - -/* - * The following functions functions offer protection against -fshort-enums, - * compatible with little- and big-endian machines. - * If assertion is triggered, either disable -fshort-enums, or add an entry - * here with the ->pres_size of your target stracture. - * Unless the target structure is packed, the ".present" member - * is guaranteed to be aligned properly. ASN.1 compiler itself does not - * produce packed code. - */ -static unsigned -_fetch_present_idx(const void *struct_ptr, unsigned pres_offset, - unsigned pres_size) { - const void *present_ptr; - unsigned present; - - present_ptr = ((const char *)struct_ptr) + pres_offset; - - switch(pres_size) { - case sizeof(int): present = *(const unsigned int *)present_ptr; break; - case sizeof(short): present = *(const unsigned short *)present_ptr; break; - case sizeof(char): present = *(const unsigned char *)present_ptr; break; - default: - /* ANSI C mandates enum to be equivalent to integer */ - assert(pres_size != sizeof(int)); - return 0; /* If not aborted, pass back safe value */ - } - - return present; -} - -static void -_set_present_idx(void *struct_ptr, unsigned pres_offset, unsigned pres_size, - unsigned present) { - void *present_ptr; - present_ptr = ((char *)struct_ptr) + pres_offset; - - switch(pres_size) { - case sizeof(int): *(unsigned int *)present_ptr = present; break; - case sizeof(short): *(unsigned short *)present_ptr = present; break; - case sizeof(char): *(unsigned char *)present_ptr = present; break; - default: - /* ANSI C mandates enum to be equivalent to integer */ - assert(pres_size != sizeof(int)); - } -} - -static const void * -_get_member_ptr(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_TYPE_member_t **elm_ptr, unsigned *present_out) { - const asn_CHOICE_specifics_t *specs = - (const asn_CHOICE_specifics_t *)td->specifics; - unsigned present; - - if(!sptr) { - *elm_ptr = NULL; - *present_out = 0; - return NULL; - } - - /* - * Figure out which CHOICE element is encoded. - */ - present = _fetch_present_idx(sptr, specs->pres_offset, specs->pres_size); - *present_out = present; - - /* - * The presence index is intentionally 1-based to avoid - * treating zeroed structure as a valid one. - */ - if(present > 0 && present <= td->elements_count) { - asn_TYPE_member_t *const elm = &td->elements[present - 1]; - const void *memb_ptr; - - if(elm->flags & ATF_POINTER) { - memb_ptr = - *(const void *const *)((const char *)sptr + elm->memb_offset); - } else { - memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); - } - *elm_ptr = elm; - return memb_ptr; - } else { - *elm_ptr = NULL; - return NULL; - } - -} - -int -CHOICE_compare(const asn_TYPE_descriptor_t *td, const void *aptr, const void *bptr) { - asn_TYPE_member_t *aelm; - asn_TYPE_member_t *belm; - unsigned apresent = 0; - unsigned bpresent = 0; - const void *amember = _get_member_ptr(td, aptr, &aelm, &apresent); - const void *bmember = _get_member_ptr(td, bptr, &belm, &bpresent); - - if(amember && bmember) { - if(apresent == bpresent) { - assert(aelm == belm); - return aelm->type->op->compare_struct(aelm->type, amember, bmember); - } else if(apresent < bpresent) { - return -1; - } else { - return 1; - } - } else if(!amember) { - return -1; - } else { - return 1; - } -} - -/* - * Return the 1-based choice variant presence index. - * Returns 0 in case of error. - */ -unsigned -CHOICE_variant_get_presence(const asn_TYPE_descriptor_t *td, const void *sptr) { - const asn_CHOICE_specifics_t *specs = - (const asn_CHOICE_specifics_t *)td->specifics; - return _fetch_present_idx(sptr, specs->pres_offset, specs->pres_size); -} - -/* - * Sets or resets the 1-based choice variant presence index. - * In case a previous index is not zero, the currently selected structure - * member is freed and zeroed-out first. - * Returns 0 on success and -1 on error. - */ -int -CHOICE_variant_set_presence(const asn_TYPE_descriptor_t *td, void *sptr, - unsigned present) { - const asn_CHOICE_specifics_t *specs = - (const asn_CHOICE_specifics_t *)td->specifics; - unsigned old_present; - - if(!sptr) { - return -1; - } - - if(present > td->elements_count) - return -1; - - old_present = - _fetch_present_idx(sptr, specs->pres_offset, specs->pres_size); - if(present == old_present) - return 0; - - if(old_present != 0) { - assert(old_present <= td->elements_count); - ASN_STRUCT_RESET(*td, sptr); - } - - _set_present_idx(sptr, specs->pres_offset, specs->pres_size, present); - - return 0; -} - - -asn_random_fill_result_t -CHOICE_random_fill(const asn_TYPE_descriptor_t *td, void **sptr, - const asn_encoding_constraints_t *constr, - size_t max_length) { - const asn_CHOICE_specifics_t *specs = - (const asn_CHOICE_specifics_t *)td->specifics; - asn_random_fill_result_t res; - asn_random_fill_result_t result_failed = {ARFILL_FAILED, 0}; - asn_random_fill_result_t result_skipped = {ARFILL_SKIPPED, 0}; - const asn_TYPE_member_t *elm; - unsigned present; - void *memb_ptr; /* Pointer to the member */ - void **memb_ptr2; /* Pointer to that pointer */ - void *st = *sptr; - - if(max_length == 0) return result_skipped; - - (void)constr; - - if(st == NULL) { - st = CALLOC(1, specs->struct_size); - if(st == NULL) { - return result_failed; - } - } - - present = asn_random_between(1, td->elements_count); - elm = &td->elements[present - 1]; - - if(elm->flags & ATF_POINTER) { - /* Member is a pointer to another structure */ - memb_ptr2 = (void **)((char *)st + elm->memb_offset); - } else { - memb_ptr = (char *)st + elm->memb_offset; - memb_ptr2 = &memb_ptr; - } - - res = elm->type->op->random_fill(elm->type, memb_ptr2, - &elm->encoding_constraints, max_length); - _set_present_idx(st, specs->pres_offset, specs->pres_size, present); - if(res.code == ARFILL_OK) { - *sptr = st; - } else { - if(st == *sptr) { - ASN_STRUCT_RESET(*td, st); - } else { - ASN_STRUCT_FREE(*td, st); - } - } - - return res; -} - - -asn_TYPE_operation_t asn_OP_CHOICE = { - CHOICE_free, - CHOICE_print, - CHOICE_compare, - CHOICE_decode_ber, - CHOICE_encode_der, - CHOICE_decode_xer, - CHOICE_encode_xer, -#ifdef ASN_DISABLE_OER_SUPPORT - 0, - 0, -#else - CHOICE_decode_oer, - CHOICE_encode_oer, -#endif /* ASN_DISABLE_OER_SUPPORT */ -#ifdef ASN_DISABLE_PER_SUPPORT - 0, - 0, - 0, - 0, -#else - CHOICE_decode_uper, - CHOICE_encode_uper, - CHOICE_decode_aper, - CHOICE_encode_aper, -#endif /* ASN_DISABLE_PER_SUPPORT */ - CHOICE_random_fill, - CHOICE_outmost_tag -}; diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/constr_CHOICE.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/constr_CHOICE.h deleted file mode 100644 index a1999ed..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/constr_CHOICE.h +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef _CONSTR_CHOICE_H_ -#define _CONSTR_CHOICE_H_ - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct asn_CHOICE_specifics_s { - /* - * Target structure description. - */ - unsigned struct_size; /* Size of the target structure. */ - unsigned ctx_offset; /* Offset of the asn_codec_ctx_t member */ - unsigned pres_offset; /* Identifier of the present member */ - unsigned pres_size; /* Size of the identifier (enum) */ - - /* - * Tags to members mapping table. - */ - const asn_TYPE_tag2member_t *tag2el; - unsigned tag2el_count; - - /* Canonical ordering of CHOICE elements, for PER */ - const unsigned *to_canonical_order; - const unsigned *from_canonical_order; - - /* - * Extensions-related stuff. - */ - signed ext_start; /* First member of extensions, or -1 */ -} asn_CHOICE_specifics_t; - -/* - * A set specialized functions dealing with the CHOICE type. - */ -asn_struct_free_f CHOICE_free; -asn_struct_print_f CHOICE_print; -asn_struct_compare_f CHOICE_compare; -asn_constr_check_f CHOICE_constraint; -ber_type_decoder_f CHOICE_decode_ber; -der_type_encoder_f CHOICE_encode_der; -xer_type_decoder_f CHOICE_decode_xer; -xer_type_encoder_f CHOICE_encode_xer; -oer_type_decoder_f CHOICE_decode_oer; -oer_type_encoder_f CHOICE_encode_oer; -per_type_decoder_f CHOICE_decode_uper; -per_type_encoder_f CHOICE_encode_uper; -per_type_decoder_f CHOICE_decode_aper; -per_type_encoder_f CHOICE_encode_aper; -asn_outmost_tag_f CHOICE_outmost_tag; -asn_random_fill_f CHOICE_random_fill; -extern asn_TYPE_operation_t asn_OP_CHOICE; - -/* - * Return the 1-based choice variant presence index. - * Returns 0 in case of error. - */ -unsigned CHOICE_variant_get_presence(const asn_TYPE_descriptor_t *td, - const void *structure_ptr); - -/* - * Sets or resets the 1-based choice variant presence index. - * In case a previous index is not zero, the currently selected structure - * member is freed and zeroed-out first. - * Returns 0 on success and -1 on error. - */ -int CHOICE_variant_set_presence(const asn_TYPE_descriptor_t *td, - void *structure_ptr, unsigned present); - -#ifdef __cplusplus -} -#endif - -#endif /* _CONSTR_CHOICE_H_ */ diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/constr_CHOICE_oer.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/constr_CHOICE_oer.c deleted file mode 100644 index a4c591c..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/constr_CHOICE_oer.c +++ /dev/null @@ -1,380 +0,0 @@ -/* - * Copyright (c) 2017 Lev Walkin . - * All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef ASN_DISABLE_OER_SUPPORT - -#include -#include -#include - -/* - * Return a standardized complex structure. - */ -#undef RETURN -#define RETURN(_code) \ - do { \ - asn_dec_rval_t rval; \ - rval.code = _code; \ - rval.consumed = consumed_myself; \ - return rval; \ - } while(0) - -#undef ADVANCE -#define ADVANCE(num_bytes) \ - do { \ - size_t num = num_bytes; \ - ptr = ((const char *)ptr) + num; \ - size -= num; \ - consumed_myself += num; \ - } while(0) - -/* - * Switch to the next phase of parsing. - */ -#undef NEXT_PHASE -#define NEXT_PHASE(ctx) \ - do { \ - ctx->phase++; \ - ctx->step = 0; \ - } while(0) -#undef SET_PHASE -#define SET_PHASE(ctx, value) \ - do { \ - ctx->phase = value; \ - ctx->step = 0; \ - } while(0) - -/* - * Tags are canonically sorted in the tag to member table. - */ -static int -_search4tag(const void *ap, const void *bp) { - const asn_TYPE_tag2member_t *a = (const asn_TYPE_tag2member_t *)ap; - const asn_TYPE_tag2member_t *b = (const asn_TYPE_tag2member_t *)bp; - - int a_class = BER_TAG_CLASS(a->el_tag); - int b_class = BER_TAG_CLASS(b->el_tag); - - if(a_class == b_class) { - ber_tlv_tag_t a_value = BER_TAG_VALUE(a->el_tag); - ber_tlv_tag_t b_value = BER_TAG_VALUE(b->el_tag); - - if(a_value == b_value) - return 0; - else if(a_value < b_value) - return -1; - else - return 1; - } else if(a_class < b_class) { - return -1; - } else { - return 1; - } -} - -/* - * X.696 (08/2015) #8.7 Encoding of tags - */ -static ssize_t -oer_fetch_tag(const void *ptr, size_t size, ber_tlv_tag_t *tag_r) { - ber_tlv_tag_t val; - ber_tlv_tag_t tclass; - size_t skipped; - - if(size == 0) - return 0; - - val = *(const uint8_t *)ptr; - tclass = (val >> 6); - if((val & 0x3F) != 0x3F) { - /* #8.7.1 */ - *tag_r = ((val & 0x3F) << 2) | tclass; - return 1; - } - - /* - * Each octet contains 7 bits of useful information. - * The MSB is 0 if it is the last octet of the tag. - */ - for(val = 0, ptr = ((const char *)ptr) + 1, skipped = 2; skipped <= size; - ptr = ((const char *)ptr) + 1, skipped++) { - unsigned int oct = *(const uint8_t *)ptr; - if(oct & 0x80) { - val = (val << 7) | (oct & 0x7F); - /* - * Make sure there are at least 9 bits spare - * at the MS side of a value. - */ - if(val >> ((8 * sizeof(val)) - 9)) { - /* - * We would not be able to accomodate - * any more tag bits. - */ - return -1; - } - } else { - val = (val << 7) | oct; - *tag_r = (val << 2) | tclass; - return skipped; - } - } - - return 0; /* Want more */ -} - -asn_dec_rval_t -CHOICE_decode_oer(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_oer_constraints_t *constraints, void **struct_ptr, - const void *ptr, size_t size) { - /* - * Bring closer parts of structure description. - */ - const asn_CHOICE_specifics_t *specs = - (const asn_CHOICE_specifics_t *)td->specifics; - asn_TYPE_member_t *elements = td->elements; - - /* - * Parts of the structure being constructed. - */ - void *st = *struct_ptr; /* Target structure. */ - asn_struct_ctx_t *ctx; /* Decoder context */ - - ssize_t consumed_myself = 0; /* Consumed bytes from ptr */ - - (void)constraints; - - ASN_DEBUG("Decoding %s as CHOICE", td->name); - - /* - * Create the target structure if it is not present already. - */ - if(st == 0) { - st = *struct_ptr = CALLOC(1, specs->struct_size); - if(st == 0) { - RETURN(RC_FAIL); - } - } - - /* - * Restore parsing context. - */ - ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset); - switch(ctx->phase) { - case 0: { - /* - * Discover the tag. - */ - ber_tlv_tag_t tlv_tag; /* T from TLV */ - ssize_t tag_len; /* Length of TLV's T */ - - tag_len = oer_fetch_tag(ptr, size, &tlv_tag); - switch(tag_len) { - case 0: - ASN__DECODE_STARVED; - case -1: - ASN__DECODE_FAILED; - } - - do { - const asn_TYPE_tag2member_t *t2m; - asn_TYPE_tag2member_t key = {0, 0, 0, 0}; - key.el_tag = tlv_tag; - - t2m = (const asn_TYPE_tag2member_t *)bsearch( - &key, specs->tag2el, specs->tag2el_count, - sizeof(specs->tag2el[0]), _search4tag); - if(t2m) { - /* - * Found the element corresponding to the tag. - */ - NEXT_PHASE(ctx); - ctx->step = t2m->el_no; - break; - } else if(specs->ext_start == -1) { - ASN_DEBUG( - "Unexpected tag %s " - "in non-extensible CHOICE %s", - ber_tlv_tag_string(tlv_tag), td->name); - RETURN(RC_FAIL); - } else { - /* Skip open type extension */ - ASN_DEBUG( - "Not implemented skipping open type extension for tag %s", - ber_tlv_tag_string(tlv_tag)); - RETURN(RC_FAIL); - } - } while(0); - - - ADVANCE(tag_len); - } - /* Fall through */ - case 1: { - asn_TYPE_member_t *elm = &elements[ctx->step]; /* CHOICE's element */ - void *memb_ptr; /* Pointer to the member */ - void **memb_ptr2; /* Pointer to that pointer */ - asn_dec_rval_t rval = {0,0}; - - /* - * Compute the position of the member inside a structure, - * and also a type of containment (it may be contained - * as pointer or using inline inclusion). - */ - if(elm->flags & ATF_POINTER) { - /* Member is a pointer to another structure */ - memb_ptr2 = (void **)((char *)st + elm->memb_offset); - } else { - /* - * A pointer to a pointer - * holding the start of the structure - */ - memb_ptr = (char *)st + elm->memb_offset; - memb_ptr2 = &memb_ptr; - } - - /* Set presence to be able to free it properly at any time */ - (void)CHOICE_variant_set_presence(td, st, ctx->step + 1); - - if(specs->ext_start >= 0 && specs->ext_start <= ctx->step) { - ssize_t got = - oer_open_type_get(opt_codec_ctx, elm->type, - elm->encoding_constraints.oer_constraints, - memb_ptr2, ptr, size); - if(got < 0) ASN__DECODE_FAILED; - if(got == 0) ASN__DECODE_STARVED; - rval.code = RC_OK; - rval.consumed = got; - } else { - rval = elm->type->op->oer_decoder( - opt_codec_ctx, elm->type, - elm->encoding_constraints.oer_constraints, memb_ptr2, ptr, - size); - } - rval.consumed += consumed_myself; - switch(rval.code) { - case RC_OK: - NEXT_PHASE(ctx); - case RC_WMORE: - break; - case RC_FAIL: - SET_PHASE(ctx, 3); /* => 3 */ - } - return rval; - } - case 2: - /* Already decoded everything */ - RETURN(RC_OK); - case 3: - /* Failed to decode, after all */ - RETURN(RC_FAIL); - } - - RETURN(RC_FAIL); -} - -/* - * X.696 (08/2015) #8.7 Encoding of tags - */ -static ssize_t -oer_put_tag(ber_tlv_tag_t tag, asn_app_consume_bytes_f *cb, void *app_key) { - uint8_t tclass = BER_TAG_CLASS(tag); - ber_tlv_tag_t tval = BER_TAG_VALUE(tag); - - if(tval < 0x3F) { - uint8_t b = (uint8_t)((tclass << 6) | tval); - if(cb(&b, 1, app_key) < 0) { - return -1; - } - return 1; - } else { - uint8_t buf[1 + 2 * sizeof(tval)]; - uint8_t *b = &buf[sizeof(buf)-1]; /* Last addressable */ - size_t encoded; - for(; ; tval >>= 7) { - if(tval >> 7) { - *b-- = 0x80 | (tval & 0x7f); - } else { - *b-- = tval & 0x7f; - break; - } - } - *b = (uint8_t)((tclass << 6) | 0x3F); - encoded = sizeof(buf) - (b - buf); - if(cb(b, encoded, app_key) < 0) { - return -1; - } - return encoded; - } - -} - -/* - * Encode as Canonical OER. - */ -asn_enc_rval_t -CHOICE_encode_oer(const asn_TYPE_descriptor_t *td, - const asn_oer_constraints_t *constraints, const void *sptr, - asn_app_consume_bytes_f *cb, void *app_key) { - const asn_CHOICE_specifics_t *specs = - (const asn_CHOICE_specifics_t *)td->specifics; - asn_TYPE_member_t *elm; /* CHOICE element */ - unsigned present; - const void *memb_ptr; - ber_tlv_tag_t tag; - ssize_t tag_len; - asn_enc_rval_t er = {0, 0, 0}; - - (void)constraints; - - if(!sptr) ASN__ENCODE_FAILED; - - ASN_DEBUG("OER %s encoding as CHOICE", td->name); - - present = CHOICE_variant_get_presence(td, sptr); - if(present == 0 || present > td->elements_count) { - ASN_DEBUG("CHOICE %s member is not selected", td->name); - ASN__ENCODE_FAILED; - } - - elm = &td->elements[present-1]; - if(elm->flags & ATF_POINTER) { - memb_ptr = - *(const void *const *)((const char *)sptr + elm->memb_offset); - if(memb_ptr == 0) { - /* Mandatory element absent */ - ASN__ENCODE_FAILED; - } - } else { - memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); - } - - tag = asn_TYPE_outmost_tag(elm->type, memb_ptr, elm->tag_mode, elm->tag); - if(tag == 0) { - ASN__ENCODE_FAILED; - } - - tag_len = oer_put_tag(tag, cb, app_key); - if(tag_len < 0) { - ASN__ENCODE_FAILED; - } - - if(specs->ext_start >= 0 && (unsigned)specs->ext_start <= (present-1)) { - ssize_t encoded = oer_open_type_put(elm->type, - elm->encoding_constraints.oer_constraints, - memb_ptr, cb, app_key); - if(encoded < 0) ASN__ENCODE_FAILED; - er.encoded = tag_len + encoded; - } else { - er = elm->type->op->oer_encoder( - elm->type, elm->encoding_constraints.oer_constraints, memb_ptr, cb, - app_key); - if(er.encoded >= 0) er.encoded += tag_len; - } - - return er; -} - -#endif /* ASN_DISABLE_OER_SUPPORT */ diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/constr_SEQUENCE.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/constr_SEQUENCE.c deleted file mode 100644 index 43dcac7..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/constr_SEQUENCE.c +++ /dev/null @@ -1,2059 +0,0 @@ -/* - * Copyright (c) 2003-2017 Lev Walkin . - * All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include -#include - -/* - * Number of bytes left for this structure. - * (ctx->left) indicates the number of bytes _transferred_ for the structure. - * (size) contains the number of bytes in the buffer passed. - */ -#define LEFT ((size<(size_t)ctx->left)?size:(size_t)ctx->left) - -/* - * If the subprocessor function returns with an indication that it wants - * more data, it may well be a fatal decoding problem, because the - * size is constrained by the 's L, even if the buffer size allows - * reading more data. - * For example, consider the buffer containing the following TLVs: - * ... - * The TLV length clearly indicates that one byte is expected in V, but - * if the V processor returns with "want more data" even if the buffer - * contains way more data than the V processor have seen. - */ -#define SIZE_VIOLATION (ctx->left >= 0 && (size_t)ctx->left <= size) - -/* - * This macro "eats" the part of the buffer which is definitely "consumed", - * i.e. was correctly converted into local representation or rightfully skipped. - */ -#undef ADVANCE -#define ADVANCE(num_bytes) do { \ - size_t num = num_bytes; \ - ptr = ((const char *)ptr) + num; \ - size -= num; \ - if(ctx->left >= 0) \ - ctx->left -= num; \ - consumed_myself += num; \ - } while(0) - -/* - * Switch to the next phase of parsing. - */ -#undef NEXT_PHASE -#undef PHASE_OUT -#define NEXT_PHASE(ctx) do { \ - ctx->phase++; \ - ctx->step = 0; \ - } while(0) -#define PHASE_OUT(ctx) do { ctx->phase = 10; } while(0) - -/* - * Return a standardized complex structure. - */ -#undef RETURN -#define RETURN(_code) do { \ - rval.code = _code; \ - rval.consumed = consumed_myself;\ - return rval; \ - } while(0) - -/* - * Check whether we are inside the extensions group. - */ -#define IN_EXTENSION_GROUP(specs, memb_idx) \ - ((specs)->first_extension >= 0 \ - && (unsigned)(specs)->first_extension <= (memb_idx)) - -/* - * Tags are canonically sorted in the tag2element map. - */ -static int -_t2e_cmp(const void *ap, const void *bp) { - const asn_TYPE_tag2member_t *a = (const asn_TYPE_tag2member_t *)ap; - const asn_TYPE_tag2member_t *b = (const asn_TYPE_tag2member_t *)bp; - - int a_class = BER_TAG_CLASS(a->el_tag); - int b_class = BER_TAG_CLASS(b->el_tag); - - if(a_class == b_class) { - ber_tlv_tag_t a_value = BER_TAG_VALUE(a->el_tag); - ber_tlv_tag_t b_value = BER_TAG_VALUE(b->el_tag); - - if(a_value == b_value) { - if(a->el_no > b->el_no) - return 1; - /* - * Important: we do not check - * for a->el_no <= b->el_no! - */ - return 0; - } else if(a_value < b_value) - return -1; - else - return 1; - } else if(a_class < b_class) { - return -1; - } else { - return 1; - } -} - - -/* - * The decoder of the SEQUENCE type. - */ -asn_dec_rval_t -SEQUENCE_decode_ber(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **struct_ptr, - const void *ptr, size_t size, int tag_mode) { - /* - * Bring closer parts of structure description. - */ - const asn_SEQUENCE_specifics_t *specs = (const asn_SEQUENCE_specifics_t *)td->specifics; - const asn_TYPE_member_t *elements = td->elements; - - /* - * Parts of the structure being constructed. - */ - void *st = *struct_ptr; /* Target structure. */ - asn_struct_ctx_t *ctx; /* Decoder context */ - - ber_tlv_tag_t tlv_tag; /* T from TLV */ - asn_dec_rval_t rval; /* Return code from subparsers */ - - ssize_t consumed_myself = 0; /* Consumed bytes from ptr */ - size_t edx; /* SEQUENCE element's index */ - - ASN_DEBUG("Decoding %s as SEQUENCE", td->name); - - /* - * Create the target structure if it is not present already. - */ - if(st == 0) { - st = *struct_ptr = CALLOC(1, specs->struct_size); - if(st == 0) { - RETURN(RC_FAIL); - } - } - - /* - * Restore parsing context. - */ - ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset); - - /* - * Start to parse where left previously - */ - switch(ctx->phase) { - case 0: - /* - * PHASE 0. - * Check that the set of tags associated with given structure - * perfectly fits our expectations. - */ - - rval = ber_check_tags(opt_codec_ctx, td, ctx, ptr, size, - tag_mode, 1, &ctx->left, 0); - if(rval.code != RC_OK) { - ASN_DEBUG("%s tagging check failed: %d", - td->name, rval.code); - return rval; - } - - if(ctx->left >= 0) - ctx->left += rval.consumed; /* ?Substracted below! */ - ADVANCE(rval.consumed); - - NEXT_PHASE(ctx); - - ASN_DEBUG("Structure consumes %ld bytes, buffer %ld", - (long)ctx->left, (long)size); - - /* Fall through */ - case 1: - /* - * PHASE 1. - * From the place where we've left it previously, - * try to decode the next member from the list of - * this structure's elements. - * (ctx->step) stores the member being processed - * between invocations and the microphase {0,1} of parsing - * that member: - * step = ( * 2 + ). - */ - for(edx = ((size_t)ctx->step >> 1); edx < td->elements_count; - edx++, ctx->step = (ctx->step & ~1) + 2) { - void *memb_ptr; /* Pointer to the member */ - void **memb_ptr2; /* Pointer to that pointer */ - ssize_t tag_len; /* Length of TLV's T */ - size_t opt_edx_end; /* Next non-optional element */ - size_t n; - int use_bsearch; - - if(ctx->step & 1) - goto microphase2; - - /* - * MICROPHASE 1: Synchronize decoding. - */ - ASN_DEBUG("In %s SEQUENCE left %d, edx=%" ASN_PRI_SIZE " flags=%d" - " opt=%d ec=%d", - td->name, (int)ctx->left, edx, - elements[edx].flags, elements[edx].optional, - td->elements_count); - - if(ctx->left == 0 /* No more stuff is expected */ - && ( - /* Explicit OPTIONAL specification reaches the end */ - (edx + elements[edx].optional == td->elements_count) || - /* All extensions are optional */ - IN_EXTENSION_GROUP(specs, edx))) { - ASN_DEBUG("End of SEQUENCE %s", td->name); - /* - * Found the legitimate end of the structure. - */ - PHASE_OUT(ctx); - RETURN(RC_OK); - } - - /* - * Fetch the T from TLV. - */ - tag_len = ber_fetch_tag(ptr, LEFT, &tlv_tag); - ASN_DEBUG("Current tag in %s SEQUENCE for element %" ASN_PRI_SIZE " " - "(%s) is %s encoded in %d bytes, of frame %ld", - td->name, edx, elements[edx].name, - ber_tlv_tag_string(tlv_tag), (int)tag_len, (long)LEFT); - switch(tag_len) { - case 0: if(!SIZE_VIOLATION) RETURN(RC_WMORE); - /* Fall through */ - case -1: RETURN(RC_FAIL); - } - - if(ctx->left < 0 && ((const uint8_t *)ptr)[0] == 0) { - if(LEFT < 2) { - if(SIZE_VIOLATION) { - RETURN(RC_FAIL); - } else { - RETURN(RC_WMORE); - } - } else if(((const uint8_t *)ptr)[1] == 0) { - ASN_DEBUG("edx = %" ASN_PRI_SIZE ", opt = %d, ec=%d", edx, - elements[edx].optional, td->elements_count); - if((edx + elements[edx].optional == td->elements_count) - || IN_EXTENSION_GROUP(specs, edx)) { - /* - * Yeah, baby! Found the terminator - * of the indefinite length structure. - */ - /* - * Proceed to the canonical - * finalization function. - * No advancing is necessary. - */ - goto phase3; - } - } - } - - /* - * Find the next available type with this tag. - */ - use_bsearch = 0; - opt_edx_end = edx + elements[edx].optional + 1; - if(opt_edx_end > td->elements_count) - opt_edx_end = td->elements_count; /* Cap */ - else if(opt_edx_end - edx > 8) { - /* Limit the scope of linear search... */ - opt_edx_end = edx + 8; - use_bsearch = 1; - /* ... and resort to bsearch() */ - } - for(n = edx; n < opt_edx_end; n++) { - if(BER_TAGS_EQUAL(tlv_tag, elements[n].tag)) { - /* - * Found element corresponding to the tag - * being looked at. - * Reposition over the right element. - */ - edx = n; - ctx->step = 1 + 2 * edx; /* Remember! */ - goto microphase2; - } else if(elements[n].flags & ATF_ANY_TYPE) { - /* - * This is the ANY type, which may bear - * any flag whatsoever. - */ - edx = n; - ctx->step = 1 + 2 * edx; /* Remember! */ - goto microphase2; - } else if(elements[n].tag == (ber_tlv_tag_t)-1) { - use_bsearch = 1; - break; - } - } - if(use_bsearch) { - /* - * Resort to a binary search over - * sorted array of tags. - */ - const asn_TYPE_tag2member_t *t2m; - asn_TYPE_tag2member_t key = {0, 0, 0, 0}; - key.el_tag = tlv_tag; - key.el_no = edx; - t2m = (const asn_TYPE_tag2member_t *)bsearch(&key, - specs->tag2el, specs->tag2el_count, - sizeof(specs->tag2el[0]), _t2e_cmp); - if(t2m) { - const asn_TYPE_tag2member_t *best = 0; - const asn_TYPE_tag2member_t *t2m_f, *t2m_l; - size_t edx_max = edx + elements[edx].optional; - /* - * Rewind to the first element with that tag, - * `cause bsearch() does not guarantee order. - */ - t2m_f = t2m + t2m->toff_first; - t2m_l = t2m + t2m->toff_last; - for(t2m = t2m_f; t2m <= t2m_l; t2m++) { - if(t2m->el_no > edx_max) break; - if(t2m->el_no < edx) continue; - best = t2m; - } - if(best) { - edx = best->el_no; - ctx->step = 1 + 2 * edx; - goto microphase2; - } - } - n = opt_edx_end; - } - if(n == opt_edx_end) { - /* - * If tag is unknown, it may be either - * an unknown (thus, incorrect) tag, - * or an extension (...), - * or an end of the indefinite-length structure. - */ - if(!IN_EXTENSION_GROUP(specs, - edx + elements[edx].optional)) { - ASN_DEBUG("Unexpected tag %s (at %" ASN_PRI_SIZE ")", - ber_tlv_tag_string(tlv_tag), edx); - ASN_DEBUG("Expected tag %s (%s)%s", - ber_tlv_tag_string(elements[edx].tag), - elements[edx].name, - elements[edx].optional - ?" or alternatives":""); - RETURN(RC_FAIL); - } else { - /* Skip this tag */ - ssize_t skip; - edx += elements[edx].optional; - - ASN_DEBUG("Skipping unexpected %s (at %" ASN_PRI_SIZE ")", - ber_tlv_tag_string(tlv_tag), edx); - skip = ber_skip_length(opt_codec_ctx, - BER_TLV_CONSTRUCTED(ptr), - (const char *)ptr + tag_len, - LEFT - tag_len); - ASN_DEBUG("Skip length %d in %s", - (int)skip, td->name); - switch(skip) { - case 0: if(!SIZE_VIOLATION) RETURN(RC_WMORE); - /* Fall through */ - case -1: RETURN(RC_FAIL); - } - - ADVANCE(skip + tag_len); - ctx->step -= 2; - edx--; - continue; /* Try again with the next tag */ - } - } - - /* - * MICROPHASE 2: Invoke the member-specific decoder. - */ - ctx->step |= 1; /* Confirm entering next microphase */ - microphase2: - ASN_DEBUG("Inside SEQUENCE %s MF2", td->name); - - /* - * Compute the position of the member inside a structure, - * and also a type of containment (it may be contained - * as pointer or using inline inclusion). - */ - if(elements[edx].flags & ATF_POINTER) { - /* Member is a pointer to another structure */ - memb_ptr2 = (void **)((char *)st + elements[edx].memb_offset); - } else { - /* - * A pointer to a pointer - * holding the start of the structure - */ - memb_ptr = (char *)st + elements[edx].memb_offset; - memb_ptr2 = &memb_ptr; - } - /* - * Invoke the member fetch routine according to member's type - */ - if(elements[edx].flags & ATF_OPEN_TYPE) { - rval = OPEN_TYPE_ber_get(opt_codec_ctx, td, st, &elements[edx], ptr, LEFT); - } else { - rval = elements[edx].type->op->ber_decoder(opt_codec_ctx, - elements[edx].type, - memb_ptr2, ptr, LEFT, - elements[edx].tag_mode); - } - ASN_DEBUG("In %s SEQUENCE decoded %" ASN_PRI_SIZE " %s of %d " - "in %d bytes rval.code %d, size=%d", - td->name, edx, elements[edx].type->name, - (int)LEFT, (int)rval.consumed, rval.code, (int)size); - switch(rval.code) { - case RC_OK: - break; - case RC_WMORE: /* More data expected */ - if(!SIZE_VIOLATION) { - ADVANCE(rval.consumed); - RETURN(RC_WMORE); - } - ASN_DEBUG("Size violation (c->l=%ld <= s=%ld)", - (long)ctx->left, (long)size); - /* Fall through */ - case RC_FAIL: /* Fatal error */ - RETURN(RC_FAIL); - } /* switch(rval) */ - - ADVANCE(rval.consumed); - } /* for(all structure members) */ - - phase3: - ctx->phase = 3; - /* Fall through */ - case 3: /* 00 and other tags expected */ - case 4: /* only 00's expected */ - - ASN_DEBUG("SEQUENCE %s Leftover: %ld, size = %ld", - td->name, (long)ctx->left, (long)size); - - /* - * Skip everything until the end of the SEQUENCE. - */ - while(ctx->left) { - ssize_t tl, ll; - - tl = ber_fetch_tag(ptr, LEFT, &tlv_tag); - switch(tl) { - case 0: if(!SIZE_VIOLATION) RETURN(RC_WMORE); - /* Fall through */ - case -1: RETURN(RC_FAIL); - } - - /* - * If expected <0><0>... - */ - if(ctx->left < 0 - && ((const uint8_t *)ptr)[0] == 0) { - if(LEFT < 2) { - if(SIZE_VIOLATION) - RETURN(RC_FAIL); - else - RETURN(RC_WMORE); - } else if(((const uint8_t *)ptr)[1] == 0) { - /* - * Correctly finished with <0><0>. - */ - ADVANCE(2); - ctx->left++; - ctx->phase = 4; - continue; - } - } - - if(!IN_EXTENSION_GROUP(specs, td->elements_count) - || ctx->phase == 4) { - ASN_DEBUG("Unexpected continuation " - "of a non-extensible type " - "%s (SEQUENCE): %s", - td->name, - ber_tlv_tag_string(tlv_tag)); - RETURN(RC_FAIL); - } - - ll = ber_skip_length(opt_codec_ctx, - BER_TLV_CONSTRUCTED(ptr), - (const char *)ptr + tl, LEFT - tl); - switch(ll) { - case 0: if(!SIZE_VIOLATION) RETURN(RC_WMORE); - /* Fall through */ - case -1: RETURN(RC_FAIL); - } - - ADVANCE(tl + ll); - } - - PHASE_OUT(ctx); - } - - RETURN(RC_OK); -} - - -/* - * The DER encoder of the SEQUENCE type. - */ -asn_enc_rval_t -SEQUENCE_encode_der(const asn_TYPE_descriptor_t *td, const void *sptr, - int tag_mode, ber_tlv_tag_t tag, - asn_app_consume_bytes_f *cb, void *app_key) { - size_t computed_size = 0; - asn_enc_rval_t erval = {0,0,0}; - ssize_t ret; - size_t edx; - - ASN_DEBUG("%s %s as SEQUENCE", - cb?"Encoding":"Estimating", td->name); - - /* - * Gather the length of the underlying members sequence. - */ - for(edx = 0; edx < td->elements_count; edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - - const void *memb_ptr; /* Pointer to the member */ - const void *const *memb_ptr2; /* Pointer to that pointer */ - - if(elm->flags & ATF_POINTER) { - memb_ptr2 = - (const void *const *)((const char *)sptr + elm->memb_offset); - if(!*memb_ptr2) { - ASN_DEBUG("Element %s %" ASN_PRI_SIZE " not present", - elm->name, edx); - if(elm->optional) - continue; - /* Mandatory element is missing */ - ASN__ENCODE_FAILED; - } - } else { - memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); - memb_ptr2 = &memb_ptr; - } - - /* Eliminate default values */ - if(elm->default_value_cmp && elm->default_value_cmp(*memb_ptr2) == 0) - continue; - - erval = elm->type->op->der_encoder(elm->type, *memb_ptr2, - elm->tag_mode, elm->tag, - 0, 0); - if(erval.encoded == -1) - return erval; - computed_size += erval.encoded; - ASN_DEBUG("Member %" ASN_PRI_SIZE " %s estimated %ld bytes", - edx, elm->name, (long)erval.encoded); - } - - /* - * Encode the TLV for the sequence itself. - */ - ret = der_write_tags(td, computed_size, tag_mode, 1, tag, cb, app_key); - ASN_DEBUG("Wrote tags: %ld (+%ld)", (long)ret, (long)computed_size); - if(ret == -1) - ASN__ENCODE_FAILED; - erval.encoded = computed_size + ret; - - if(!cb) ASN__ENCODED_OK(erval); - - /* - * Encode all members. - */ - for(edx = 0; edx < td->elements_count; edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - asn_enc_rval_t tmperval = {0,0,0}; - const void *memb_ptr; /* Pointer to the member */ - const void *const *memb_ptr2; /* Pointer to that pointer */ - - if(elm->flags & ATF_POINTER) { - memb_ptr2 = - (const void *const *)((const char *)sptr + elm->memb_offset); - if(!*memb_ptr2) continue; - } else { - memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); - memb_ptr2 = &memb_ptr; - } - - /* Eliminate default values */ - if(elm->default_value_cmp && elm->default_value_cmp(*memb_ptr2) == 0) - continue; - - tmperval = elm->type->op->der_encoder(elm->type, *memb_ptr2, - elm->tag_mode, elm->tag, cb, app_key); - if(tmperval.encoded == -1) - return tmperval; - computed_size -= tmperval.encoded; - ASN_DEBUG("Member %" ASN_PRI_SIZE " %s of SEQUENCE %s encoded in %ld bytes", - edx, elm->name, td->name, (long)tmperval.encoded); - } - - if(computed_size != 0) - /* - * Encoded size is not equal to the computed size. - */ - ASN__ENCODE_FAILED; - - ASN__ENCODED_OK(erval); -} - - -#undef XER_ADVANCE -#define XER_ADVANCE(num_bytes) \ - do { \ - size_t num = (num_bytes); \ - ptr = ((const char *)ptr) + num; \ - size -= num; \ - consumed_myself += num; \ - } while(0) - -/* - * Decode the XER (XML) data. - */ -asn_dec_rval_t -SEQUENCE_decode_xer(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **struct_ptr, - const char *opt_mname, const void *ptr, size_t size) { - /* - * Bring closer parts of structure description. - */ - const asn_SEQUENCE_specifics_t *specs - = (const asn_SEQUENCE_specifics_t *)td->specifics; - asn_TYPE_member_t *elements = td->elements; - const char *xml_tag = opt_mname ? opt_mname : td->xml_tag; - - /* - * ... and parts of the structure being constructed. - */ - void *st = *struct_ptr; /* Target structure. */ - asn_struct_ctx_t *ctx; /* Decoder context */ - - asn_dec_rval_t rval; /* Return value from a decoder */ - ssize_t consumed_myself = 0; /* Consumed bytes from ptr */ - size_t edx; /* Element index */ - - /* - * Create the target structure if it is not present already. - */ - if(st == 0) { - st = *struct_ptr = CALLOC(1, specs->struct_size); - if(st == 0) RETURN(RC_FAIL); - } - - /* - * Restore parsing context. - */ - ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset); - - - /* - * Phases of XER/XML processing: - * Phase 0: Check that the opening tag matches our expectations. - * Phase 1: Processing body and reacting on closing tag. - * Phase 2: Processing inner type. - * Phase 3: Skipping unknown extensions. - * Phase 4: PHASED OUT - */ - for(edx = ctx->step; ctx->phase <= 3;) { - pxer_chunk_type_e ch_type; /* XER chunk type */ - ssize_t ch_size; /* Chunk size */ - xer_check_tag_e tcv; /* Tag check value */ - asn_TYPE_member_t *elm; - - /* - * Go inside the inner member of a sequence. - */ - if(ctx->phase == 2) { - asn_dec_rval_t tmprval; - void *memb_ptr_dontuse; /* Pointer to the member */ - void **memb_ptr2; /* Pointer to that pointer */ - - elm = &td->elements[edx]; - - if(elm->flags & ATF_POINTER) { - /* Member is a pointer to another structure */ - memb_ptr2 = (void **)((char *)st + elm->memb_offset); - } else { - memb_ptr_dontuse = (char *)st + elm->memb_offset; - memb_ptr2 = &memb_ptr_dontuse; /* Only use of memb_ptr_dontuse */ - } - - if(elm->flags & ATF_OPEN_TYPE) { - tmprval = OPEN_TYPE_xer_get(opt_codec_ctx, td, st, elm, ptr, size); - } else { - /* Invoke the inner type decoder, m.b. multiple times */ - tmprval = elm->type->op->xer_decoder(opt_codec_ctx, - elm->type, memb_ptr2, elm->name, - ptr, size); - } - XER_ADVANCE(tmprval.consumed); - if(tmprval.code != RC_OK) - RETURN(tmprval.code); - ctx->phase = 1; /* Back to body processing */ - ctx->step = ++edx; - ASN_DEBUG("XER/SEQUENCE phase => %d, step => %d", - ctx->phase, ctx->step); - /* Fall through */ - } - - /* - * Get the next part of the XML stream. - */ - ch_size = xer_next_token(&ctx->context, ptr, size, - &ch_type); - if(ch_size == -1) { - RETURN(RC_FAIL); - } else { - switch(ch_type) { - case PXER_WMORE: - RETURN(RC_WMORE); - case PXER_COMMENT: /* Got XML comment */ - case PXER_TEXT: /* Ignore free-standing text */ - XER_ADVANCE(ch_size); /* Skip silently */ - continue; - case PXER_TAG: - break; /* Check the rest down there */ - } - } - - tcv = xer_check_tag(ptr, ch_size, xml_tag); - ASN_DEBUG("XER/SEQUENCE: tcv = %d, ph=%d [%s]", - tcv, ctx->phase, xml_tag); - - /* Skip the extensions section */ - if(ctx->phase == 3) { - switch(xer_skip_unknown(tcv, &ctx->left)) { - case -1: - ctx->phase = 4; - RETURN(RC_FAIL); - case 0: - XER_ADVANCE(ch_size); - continue; - case 1: - XER_ADVANCE(ch_size); - ctx->phase = 1; - continue; - case 2: - ctx->phase = 1; - break; - } - } - - switch(tcv) { - case XCT_CLOSING: - if(ctx->phase == 0) break; - ctx->phase = 0; - /* Fall through */ - case XCT_BOTH: - if(ctx->phase == 0) { - if(edx >= td->elements_count || - /* Explicit OPTIONAL specs reaches the end */ - (edx + elements[edx].optional == td->elements_count) || - /* All extensions are optional */ - IN_EXTENSION_GROUP(specs, edx)) { - XER_ADVANCE(ch_size); - ctx->phase = 4; /* Phase out */ - RETURN(RC_OK); - } else { - ASN_DEBUG("Premature end of XER SEQUENCE"); - RETURN(RC_FAIL); - } - } - /* Fall through */ - case XCT_OPENING: - if(ctx->phase == 0) { - XER_ADVANCE(ch_size); - ctx->phase = 1; /* Processing body phase */ - continue; - } - /* Fall through */ - case XCT_UNKNOWN_OP: - case XCT_UNKNOWN_BO: - - ASN_DEBUG("XER/SEQUENCE: tcv=%d, ph=%d, edx=%" ASN_PRI_SIZE "", - tcv, ctx->phase, edx); - if(ctx->phase != 1) { - break; /* Really unexpected */ - } - - if(edx < td->elements_count) { - /* - * Search which member corresponds to this tag. - */ - size_t n; - size_t edx_end = edx + elements[edx].optional + 1; - if(edx_end > td->elements_count) - edx_end = td->elements_count; - for(n = edx; n < edx_end; n++) { - elm = &td->elements[n]; - tcv = xer_check_tag(ptr, ch_size, elm->name); - switch(tcv) { - case XCT_BOTH: - case XCT_OPENING: - /* - * Process this member. - */ - ctx->step = edx = n; - ctx->phase = 2; - break; - case XCT_UNKNOWN_OP: - case XCT_UNKNOWN_BO: - continue; - default: - n = edx_end; - break; /* Phase out */ - } - break; - } - if(n != edx_end) - continue; - } else { - ASN_DEBUG("Out of defined members: %" ASN_PRI_SIZE "/%u", - edx, td->elements_count); - } - - /* It is expected extension */ - if(IN_EXTENSION_GROUP(specs, - edx + (edx < td->elements_count - ? elements[edx].optional : 0))) { - ASN_DEBUG("Got anticipated extension at %" ASN_PRI_SIZE "", - edx); - /* - * Check for (XCT_BOTH or XCT_UNKNOWN_BO) - * By using a mask. Only record a pure - * tags. - */ - if(tcv & XCT_CLOSING) { - /* Found without body */ - } else { - ctx->left = 1; - ctx->phase = 3; /* Skip ...'s */ - } - XER_ADVANCE(ch_size); - continue; - } - - /* Fall through */ - default: - break; - } - - ASN_DEBUG("Unexpected XML tag in SEQUENCE [%c%c%c%c%c%c]", - size>0?((const char *)ptr)[0]:'.', - size>1?((const char *)ptr)[1]:'.', - size>2?((const char *)ptr)[2]:'.', - size>3?((const char *)ptr)[3]:'.', - size>4?((const char *)ptr)[4]:'.', - size>5?((const char *)ptr)[5]:'.'); - break; - } - - ctx->phase = 4; /* "Phase out" on hard failure */ - RETURN(RC_FAIL); -} - -asn_enc_rval_t -SEQUENCE_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, - int ilevel, enum xer_encoder_flags_e flags, - asn_app_consume_bytes_f *cb, void *app_key) { - asn_enc_rval_t er = {0,0,0}; - int xcan = (flags & XER_F_CANONICAL); - asn_TYPE_descriptor_t *tmp_def_val_td = 0; - void *tmp_def_val = 0; - size_t edx; - - if(!sptr) ASN__ENCODE_FAILED; - - er.encoded = 0; - - for(edx = 0; edx < td->elements_count; edx++) { - asn_enc_rval_t tmper = {0,0,0}; - asn_TYPE_member_t *elm = &td->elements[edx]; - const void *memb_ptr; - const char *mname = elm->name; - unsigned int mlen = strlen(mname); - - if(elm->flags & ATF_POINTER) { - memb_ptr = - *(const void *const *)((const char *)sptr + elm->memb_offset); - if(!memb_ptr) { - assert(tmp_def_val == 0); - if(elm->default_value_set) { - if(elm->default_value_set(&tmp_def_val)) { - ASN__ENCODE_FAILED; - } else { - memb_ptr = tmp_def_val; - tmp_def_val_td = elm->type; - } - } else if(elm->optional) { - continue; - } else { - /* Mandatory element is missing */ - ASN__ENCODE_FAILED; - } - } - } else { - memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); - } - - if(!xcan) ASN__TEXT_INDENT(1, ilevel); - ASN__CALLBACK3("<", 1, mname, mlen, ">", 1); - - /* Print the member itself */ - tmper = elm->type->op->xer_encoder(elm->type, memb_ptr, ilevel + 1, - flags, cb, app_key); - if(tmp_def_val) { - ASN_STRUCT_FREE(*tmp_def_val_td, tmp_def_val); - tmp_def_val = 0; - } - if(tmper.encoded == -1) return tmper; - er.encoded += tmper.encoded; - - ASN__CALLBACK3("", 1); - } - - if(!xcan) ASN__TEXT_INDENT(1, ilevel - 1); - - ASN__ENCODED_OK(er); -cb_failed: - if(tmp_def_val) ASN_STRUCT_FREE(*tmp_def_val_td, tmp_def_val); - ASN__ENCODE_FAILED; -} - -int -SEQUENCE_print(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, - asn_app_consume_bytes_f *cb, void *app_key) { - size_t edx; - int ret; - - if(!sptr) return (cb("", 8, app_key) < 0) ? -1 : 0; - - /* Dump preamble */ - if(cb(td->name, strlen(td->name), app_key) < 0 - || cb(" ::= {", 6, app_key) < 0) - return -1; - - for(edx = 0; edx < td->elements_count; edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - const void *memb_ptr; - - if(elm->flags & ATF_POINTER) { - memb_ptr = *(const void * const *)((const char *)sptr + elm->memb_offset); - if(!memb_ptr) { - if(elm->optional) continue; - /* Print line */ - /* Fall through */ - } - } else { - memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); - } - - /* Indentation */ - _i_INDENT(1); - - /* Print the member's name and stuff */ - if(cb(elm->name, strlen(elm->name), app_key) < 0 - || cb(": ", 2, app_key) < 0) - return -1; - - /* Print the member itself */ - ret = elm->type->op->print_struct(elm->type, memb_ptr, ilevel + 1, - cb, app_key); - if(ret) return ret; - } - - ilevel--; - _i_INDENT(1); - - return (cb("}", 1, app_key) < 0) ? -1 : 0; -} - -void -SEQUENCE_free(const asn_TYPE_descriptor_t *td, void *sptr, - enum asn_struct_free_method method) { - size_t edx; - const asn_SEQUENCE_specifics_t *specs = - (const asn_SEQUENCE_specifics_t *)td->specifics; - asn_struct_ctx_t *ctx; /* Decoder context */ - - if(!td || !sptr) - return; - - ASN_DEBUG("Freeing %s as SEQUENCE", td->name); - - for(edx = 0; edx < td->elements_count; edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - void *memb_ptr; - if(elm->flags & ATF_POINTER) { - memb_ptr = *(void **)((char *)sptr + elm->memb_offset); - if(memb_ptr) - ASN_STRUCT_FREE(*elm->type, memb_ptr); - } else { - memb_ptr = (void *)((char *)sptr + elm->memb_offset); - ASN_STRUCT_FREE_CONTENTS_ONLY(*elm->type, memb_ptr); - } - } - - /* Clean parsing context */ - ctx = (asn_struct_ctx_t *)((char *)sptr + specs->ctx_offset); - FREEMEM(ctx->ptr); - - switch(method) { - case ASFM_FREE_EVERYTHING: - FREEMEM(sptr); - break; - case ASFM_FREE_UNDERLYING: - break; - case ASFM_FREE_UNDERLYING_AND_RESET: - memset( - sptr, 0, - ((const asn_SEQUENCE_specifics_t *)(td->specifics))->struct_size); - break; - } -} - -int -SEQUENCE_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - size_t edx; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - /* - * Iterate over structure members and check their validity. - */ - for(edx = 0; edx < td->elements_count; edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - const void *memb_ptr; - - if(elm->flags & ATF_POINTER) { - memb_ptr = *(const void * const *)((const char *)sptr + elm->memb_offset); - if(!memb_ptr) { - if(elm->optional) - continue; - ASN__CTFAIL(app_key, td, sptr, - "%s: mandatory element %s absent (%s:%d)", - td->name, elm->name, __FILE__, __LINE__); - return -1; - } - } else { - memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); - } - - if(elm->encoding_constraints.general_constraints) { - int ret = elm->encoding_constraints.general_constraints(elm->type, memb_ptr, - ctfailcb, app_key); - if(ret) return ret; - } else { - return elm->type->encoding_constraints.general_constraints(elm->type, - memb_ptr, ctfailcb, app_key); - } - } - - return 0; -} - -#ifndef ASN_DISABLE_PER_SUPPORT - -asn_dec_rval_t -SEQUENCE_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, - asn_per_data_t *pd) { - const asn_SEQUENCE_specifics_t *specs = (const asn_SEQUENCE_specifics_t *)td->specifics; - void *st = *sptr; /* Target structure. */ - int extpresent; /* Extension additions are present */ - uint8_t *opres; /* Presence of optional root members */ - asn_per_data_t opmd; - asn_dec_rval_t rv; - size_t edx; - - (void)constraints; - - if(ASN__STACK_OVERFLOW_CHECK(opt_codec_ctx)) - ASN__DECODE_FAILED; - - if(!st) { - st = *sptr = CALLOC(1, specs->struct_size); - if(!st) ASN__DECODE_FAILED; - } - - ASN_DEBUG("Decoding %s as SEQUENCE (UPER)", td->name); - - /* Handle extensions */ - if(specs->first_extension < 0) { - extpresent = 0; - } else { - extpresent = per_get_few_bits(pd, 1); - if(extpresent < 0) ASN__DECODE_STARVED; - } - - /* Prepare a place and read-in the presence bitmap */ - memset(&opmd, 0, sizeof(opmd)); - if(specs->roms_count) { - opres = (uint8_t *)MALLOC(((specs->roms_count + 7) >> 3) + 1); - if(!opres) ASN__DECODE_FAILED; - /* Get the presence map */ - if(per_get_many_bits(pd, opres, 0, specs->roms_count)) { - FREEMEM(opres); - ASN__DECODE_STARVED; - } - opmd.buffer = opres; - opmd.nbits = specs->roms_count; - ASN_DEBUG("Read in presence bitmap for %s of %d bits (%x..)", - td->name, specs->roms_count, *opres); - } else { - opres = 0; - } - - /* - * Get the sequence ROOT elements. - */ - for(edx = 0; - edx < (specs->first_extension < 0 ? td->elements_count - : (size_t)specs->first_extension); - edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - void *memb_ptr; /* Pointer to the member */ - void **memb_ptr2; /* Pointer to that pointer */ - - assert(!IN_EXTENSION_GROUP(specs, edx)); - - /* Fetch the pointer to this member */ - if(elm->flags & ATF_POINTER) { - memb_ptr2 = (void **)((char *)st + elm->memb_offset); - } else { - memb_ptr = (char *)st + elm->memb_offset; - memb_ptr2 = &memb_ptr; - } - - /* Deal with optionality */ - if(elm->optional) { - int present = per_get_few_bits(&opmd, 1); - ASN_DEBUG("Member %s->%s is optional, p=%d (%d->%d)", - td->name, elm->name, present, - (int)opmd.nboff, (int)opmd.nbits); - if(present == 0) { - /* This element is not present */ - if(elm->default_value_set) { - /* Fill-in DEFAULT */ - if(elm->default_value_set(memb_ptr2)) { - FREEMEM(opres); - ASN__DECODE_FAILED; - } - ASN_DEBUG("Filled-in default"); - } - /* The member is just not present */ - continue; - } - /* Fall through */ - } - - /* Fetch the member from the stream */ - ASN_DEBUG("Decoding member \"%s\" in %s", elm->name, td->name); - - if(elm->flags & ATF_OPEN_TYPE) { - rv = OPEN_TYPE_uper_get(opt_codec_ctx, td, st, elm, pd); - } else { - rv = elm->type->op->uper_decoder(opt_codec_ctx, elm->type, - elm->encoding_constraints.per_constraints, memb_ptr2, pd); - } - if(rv.code != RC_OK) { - ASN_DEBUG("Failed decode %s in %s", - elm->name, td->name); - FREEMEM(opres); - return rv; - } - } - - /* Optionality map is not needed anymore */ - FREEMEM(opres); - - /* - * Deal with extensions. - */ - if(extpresent) { - ssize_t bmlength; - uint8_t *epres; /* Presence of extension members */ - asn_per_data_t epmd; - - bmlength = uper_get_nslength(pd); - if(bmlength < 0) ASN__DECODE_STARVED; - - ASN_DEBUG("Extensions %" ASN_PRI_SSIZE " present in %s", bmlength, td->name); - - epres = (uint8_t *)MALLOC((bmlength + 15) >> 3); - if(!epres) ASN__DECODE_STARVED; - - /* Get the extensions map */ - if(per_get_many_bits(pd, epres, 0, bmlength)) { - FREEMEM(epres); - ASN__DECODE_STARVED; - } - - memset(&epmd, 0, sizeof(epmd)); - epmd.buffer = epres; - epmd.nbits = bmlength; - ASN_DEBUG("Read in extensions bitmap for %s of %ld bits (%x..)", - td->name, (long)bmlength, *epres); - - /* Go over extensions and read them in */ - for(edx = specs->first_extension; edx < td->elements_count; edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - void *memb_ptr; /* Pointer to the member */ - void **memb_ptr2; /* Pointer to that pointer */ - int present; - - /* Fetch the pointer to this member */ - if(elm->flags & ATF_POINTER) { - memb_ptr2 = (void **)((char *)st + elm->memb_offset); - } else { - memb_ptr = (void *)((char *)st + elm->memb_offset); - memb_ptr2 = &memb_ptr; - } - - present = per_get_few_bits(&epmd, 1); - if(present <= 0) { - if(present < 0) break; /* No more extensions */ - continue; - } - - ASN_DEBUG("Decoding member %s in %s %p", elm->name, td->name, - *memb_ptr2); - rv = uper_open_type_get(opt_codec_ctx, elm->type, - elm->encoding_constraints.per_constraints, - memb_ptr2, pd); - if(rv.code != RC_OK) { - FREEMEM(epres); - return rv; - } - } - - /* Skip over overflow extensions which aren't present - * in this system's version of the protocol */ - for(;;) { - ASN_DEBUG("Getting overflow extensions"); - switch(per_get_few_bits(&epmd, 1)) { - case -1: break; - case 0: continue; - default: - if(uper_open_type_skip(opt_codec_ctx, pd)) { - FREEMEM(epres); - ASN__DECODE_STARVED; - } - ASN_DEBUG("Skipped overflow extension"); - continue; - } - break; - } - - FREEMEM(epres); - } - - if(specs->first_extension >= 0) { - unsigned i; - /* Fill DEFAULT members in extensions */ - for(i = specs->roms_count; i < specs->roms_count + specs->aoms_count; - i++) { - asn_TYPE_member_t *elm; - void **memb_ptr2; /* Pointer to member pointer */ - - edx = specs->oms[i]; - elm = &td->elements[edx]; - - if(!elm->default_value_set) continue; - - /* Fetch the pointer to this member */ - if(elm->flags & ATF_POINTER) { - memb_ptr2 = (void **)((char *)st + elm->memb_offset); - if(*memb_ptr2) continue; - } else { - continue; /* Extensions are all optionals */ - } - - /* Set default value */ - if(elm->default_value_set(memb_ptr2)) { - ASN__DECODE_FAILED; - } - } - } - - rv.consumed = 0; - rv.code = RC_OK; - return rv; -} - -static int -SEQUENCE__handle_extensions(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_per_outp_t *po1, asn_per_outp_t *po2) { - const asn_SEQUENCE_specifics_t *specs = - (const asn_SEQUENCE_specifics_t *)td->specifics; - int exts_present = 0; - int exts_count = 0; - size_t edx; - - if(specs->first_extension < 0) { - return 0; - } - - /* Find out which extensions are present */ - for(edx = specs->first_extension; edx < td->elements_count; edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - const void *memb_ptr; /* Pointer to the member */ - const void *const *memb_ptr2; /* Pointer to that pointer */ - int present; - - /* Fetch the pointer to this member */ - if(elm->flags & ATF_POINTER) { - memb_ptr2 = - (const void *const *)((const char *)sptr + elm->memb_offset); - present = (*memb_ptr2 != 0); - } else { - memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); - memb_ptr2 = &memb_ptr; - present = 1; - } - - ASN_DEBUG("checking %s:%s (@%" ASN_PRI_SIZE ") present => %d", elm->name, - elm->type->name, edx, present); - exts_count++; - exts_present += present; - - /* Encode as presence marker */ - if(po1 && per_put_few_bits(po1, present, 1)) { - return -1; - } - /* Encode as open type field */ - if(po2 && present - && uper_open_type_put(elm->type, - elm->encoding_constraints.per_constraints, - *memb_ptr2, po2)) - return -1; - } - - return exts_present ? exts_count : 0; -} - -asn_enc_rval_t -SEQUENCE_encode_uper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, const void *sptr, - asn_per_outp_t *po) { - const asn_SEQUENCE_specifics_t *specs - = (const asn_SEQUENCE_specifics_t *)td->specifics; - asn_enc_rval_t er = {0,0,0}; - int n_extensions; - size_t edx; - size_t i; - - (void)constraints; - - if(!sptr) - ASN__ENCODE_FAILED; - - er.encoded = 0; - - ASN_DEBUG("Encoding %s as SEQUENCE (UPER)", td->name); - - /* - * X.691#18.1 Whether structure is extensible - * and whether to encode extensions - */ - if(specs->first_extension < 0) { - n_extensions = 0; /* There are no extensions to encode */ - } else { - n_extensions = SEQUENCE__handle_extensions(td, sptr, 0, 0); - if(n_extensions < 0) ASN__ENCODE_FAILED; - if(per_put_few_bits(po, n_extensions ? 1 : 0, 1)) { - ASN__ENCODE_FAILED; - } - } - - /* Encode a presence bitmap */ - for(i = 0; i < specs->roms_count; i++) { - asn_TYPE_member_t *elm; - const void *memb_ptr; /* Pointer to the member */ - const void *const *memb_ptr2; /* Pointer to that pointer */ - int present; - - edx = specs->oms[i]; - elm = &td->elements[edx]; - - /* Fetch the pointer to this member */ - if(elm->flags & ATF_POINTER) { - memb_ptr2 = - (const void *const *)((const char *)sptr + elm->memb_offset); - present = (*memb_ptr2 != 0); - } else { - memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); - memb_ptr2 = &memb_ptr; - present = 1; - } - - /* Eliminate default values */ - if(present && elm->default_value_cmp - && elm->default_value_cmp(*memb_ptr2) == 0) - present = 0; - - ASN_DEBUG("Element %s %s %s->%s is %s", - elm->flags & ATF_POINTER ? "ptr" : "inline", - elm->default_value_cmp ? "def" : "wtv", - td->name, elm->name, present ? "present" : "absent"); - if(per_put_few_bits(po, present, 1)) - ASN__ENCODE_FAILED; - } - - /* - * Encode the sequence ROOT elements. - */ - ASN_DEBUG("first_extension = %d, elements = %d", specs->first_extension, - td->elements_count); - for(edx = 0; - edx < ((specs->first_extension < 0) ? td->elements_count - : (size_t)specs->first_extension); - edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - const void *memb_ptr; /* Pointer to the member */ - const void *const *memb_ptr2; /* Pointer to that pointer */ - - ASN_DEBUG("About to encode %s", elm->type->name); - - /* Fetch the pointer to this member */ - if(elm->flags & ATF_POINTER) { - memb_ptr2 = - (const void *const *)((const char *)sptr + elm->memb_offset); - if(!*memb_ptr2) { - ASN_DEBUG("Element %s %" ASN_PRI_SIZE " not present", - elm->name, edx); - if(elm->optional) - continue; - /* Mandatory element is missing */ - ASN__ENCODE_FAILED; - } - } else { - memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); - memb_ptr2 = &memb_ptr; - } - - /* Eliminate default values */ - if(elm->default_value_cmp && elm->default_value_cmp(*memb_ptr2) == 0) - continue; - - ASN_DEBUG("Encoding %s->%s:%s", td->name, elm->name, elm->type->name); - er = elm->type->op->uper_encoder( - elm->type, elm->encoding_constraints.per_constraints, *memb_ptr2, - po); - if(er.encoded == -1) return er; - } - - /* No extensions to encode */ - if(!n_extensions) ASN__ENCODED_OK(er); - - ASN_DEBUG("Length of extensions %d bit-map", n_extensions); - /* #18.8. Write down the presence bit-map length. */ - if(uper_put_nslength(po, n_extensions)) - ASN__ENCODE_FAILED; - - ASN_DEBUG("Bit-map of %d elements", n_extensions); - /* #18.7. Encoding the extensions presence bit-map. */ - /* TODO: act upon NOTE in #18.7 for canonical PER */ - if(SEQUENCE__handle_extensions(td, sptr, po, 0) != n_extensions) - ASN__ENCODE_FAILED; - - ASN_DEBUG("Writing %d extensions", n_extensions); - /* #18.9. Encode extensions as open type fields. */ - if(SEQUENCE__handle_extensions(td, sptr, 0, po) != n_extensions) - ASN__ENCODE_FAILED; - - ASN__ENCODED_OK(er); -} - -asn_dec_rval_t -SEQUENCE_decode_aper(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, asn_per_data_t *pd) { - const asn_SEQUENCE_specifics_t *specs = (const asn_SEQUENCE_specifics_t *)td->specifics; - void *st = *sptr; /* Target structure. */ - int extpresent; /* Extension additions are present */ - uint8_t *opres; /* Presence of optional root members */ - asn_per_data_t opmd; - asn_dec_rval_t rv; - size_t edx; - - (void)constraints; - - if(ASN__STACK_OVERFLOW_CHECK(opt_codec_ctx)) - ASN__DECODE_FAILED; - - if(!st) { - st = *sptr = CALLOC(1, specs->struct_size); - if(!st) ASN__DECODE_FAILED; - } - - ASN_DEBUG("Decoding %s as SEQUENCE (APER)", td->name); - - /* Handle extensions */ - if(specs->first_extension < 0) { - extpresent = 0; - } else { - extpresent = per_get_few_bits(pd, 1); - if(extpresent < 0) ASN__DECODE_STARVED; - } - - /* Prepare a place and read-in the presence bitmap */ - memset(&opmd, 0, sizeof(opmd)); - if(specs->roms_count) { - opres = (uint8_t *)MALLOC(((specs->roms_count + 7) >> 3) + 1); - if(!opres) ASN__DECODE_FAILED; - /* Get the presence map */ - if(per_get_many_bits(pd, opres, 0, specs->roms_count)) { - FREEMEM(opres); - ASN__DECODE_STARVED; - } - opmd.buffer = opres; - opmd.nbits = specs->roms_count; - ASN_DEBUG("Read in presence bitmap for %s of %d bits (%x..)", - td->name, specs->roms_count, *opres); - } else { - opres = 0; - } - - /* - * Get the sequence ROOT elements. - */ - for(edx = 0; edx < td->elements_count; edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - void *memb_ptr; /* Pointer to the member */ - void **memb_ptr2; /* Pointer to that pointer */ -#if 0 - int padding; -#endif - - if(IN_EXTENSION_GROUP(specs, edx)) - continue; - - /* Fetch the pointer to this member */ - if(elm->flags & ATF_POINTER) { - memb_ptr2 = (void **)((char *)st + elm->memb_offset); - } else { - memb_ptr = (char *)st + elm->memb_offset; - memb_ptr2 = &memb_ptr; - } -#if 0 - /* Get Padding */ - padding = (8 - (pd->moved % 8)) % 8; - if(padding > 0) - ASN_DEBUG("For element %s,offset= %ld Padding bits = %d", td->name, pd->moved, padding); -#if 0 /* old way of removing padding */ - per_get_few_bits(pd, padding); -#else /* Experimental fix proposed by @mhanna123 */ - if(edx != (td->elements_count-1)) - per_get_few_bits(pd, padding); - else { - if(specs->roms_count && (padding > 0)) - ASN_DEBUG(">>>>> not skipping padding of %d bits for element:%ld out of %d", padding, edx, td->elements_count); - else - per_get_few_bits(pd, padding); - } -#endif /* dealing with padding */ -#endif - /* Deal with optionality */ - if(elm->optional) { - int present = per_get_few_bits(&opmd, 1); - ASN_DEBUG("Member %s->%s is optional, p=%d (%d->%d)", - td->name, elm->name, present, - (int)opmd.nboff, (int)opmd.nbits); - if(present == 0) { - /* This element is not present */ - if(elm->default_value_set) { - /* Fill-in DEFAULT */ - if(elm->default_value_set(memb_ptr2)) { - FREEMEM(opres); - ASN__DECODE_FAILED; - } - ASN_DEBUG("Filled-in default"); - } - /* The member is just not present */ - continue; - } - /* Fall through */ - } - - /* Fetch the member from the stream */ - ASN_DEBUG("Decoding member \"%s\" in %s", elm->name, td->name); - - if(elm->flags & ATF_OPEN_TYPE) { - rv = OPEN_TYPE_aper_get(opt_codec_ctx, td, st, elm, pd); - } else { - rv = elm->type->op->aper_decoder(opt_codec_ctx, elm->type, - elm->encoding_constraints.per_constraints, memb_ptr2, pd); - } - if(rv.code != RC_OK) { - ASN_DEBUG("Failed decode %s in %s", - elm->name, td->name); - FREEMEM(opres); - return rv; - } - } - - /* Optionality map is not needed anymore */ - FREEMEM(opres); - - /* - * Deal with extensions. - */ - if(extpresent) { - ssize_t bmlength; - uint8_t *epres; /* Presence of extension members */ - asn_per_data_t epmd; - - bmlength = aper_get_nslength(pd); - if(bmlength < 0) ASN__DECODE_STARVED; - - ASN_DEBUG("Extensions %" ASN_PRI_SSIZE " present in %s", bmlength, td->name); - - epres = (uint8_t *)MALLOC((bmlength + 15) >> 3); - if(!epres) ASN__DECODE_STARVED; - - /* Get the extensions map */ - if(per_get_many_bits(pd, epres, 0, bmlength)) - ASN__DECODE_STARVED; - - memset(&epmd, 0, sizeof(epmd)); - epmd.buffer = epres; - epmd.nbits = bmlength; - ASN_DEBUG("Read in extensions bitmap for %s of %ld bits (%x..)", - td->name, bmlength, *epres); - - /* Go over extensions and read them in */ - for(edx = specs->first_extension; edx < td->elements_count; edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - void *memb_ptr; /* Pointer to the member */ - void **memb_ptr2; /* Pointer to that pointer */ - int present; - - if(!IN_EXTENSION_GROUP(specs, edx)) { - ASN_DEBUG("%ld is not extension", edx); - continue; - } - - /* Fetch the pointer to this member */ - if(elm->flags & ATF_POINTER) { - memb_ptr2 = (void **)((char *)st + elm->memb_offset); - } else { - memb_ptr = (void *)((char *)st + elm->memb_offset); - memb_ptr2 = &memb_ptr; - } - - present = per_get_few_bits(&epmd, 1); - if(present <= 0) { - if(present < 0) break; /* No more extensions */ - continue; - } - - ASN_DEBUG("Decoding member %s in %s %p", elm->name, td->name, *memb_ptr2); - rv = aper_open_type_get(opt_codec_ctx, elm->type, - elm->encoding_constraints.per_constraints, memb_ptr2, pd); - if(rv.code != RC_OK) { - FREEMEM(epres); - return rv; - } - } - - /* Skip over overflow extensions which aren't present - * in this system's version of the protocol */ - for(;;) { - ASN_DEBUG("Getting overflow extensions"); - switch(per_get_few_bits(&epmd, 1)) { - case -1: - break; - case 0: - continue; - default: - if(aper_open_type_skip(opt_codec_ctx, pd)) { - FREEMEM(epres); - ASN__DECODE_STARVED; - } - } - break; - } - - FREEMEM(epres); - } - - /* Fill DEFAULT members in extensions */ - for(edx = specs->roms_count; edx < specs->roms_count - + specs->aoms_count; edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - void **memb_ptr2; /* Pointer to member pointer */ - - if(!elm->default_value_set) continue; - - /* Fetch the pointer to this member */ - if(elm->flags & ATF_POINTER) { - memb_ptr2 = (void **)((char *)st - + elm->memb_offset); - if(*memb_ptr2) continue; - } else { - continue; /* Extensions are all optionals */ - } - - /* Set default value */ - if(elm->default_value_set(memb_ptr2)) { - ASN__DECODE_FAILED; - } - } - - rv.consumed = 0; - rv.code = RC_OK; - return rv; -} - -static int -SEQUENCE_handle_extensions_aper(const asn_TYPE_descriptor_t *td, - const void *sptr, - asn_per_outp_t *po1, asn_per_outp_t *po2) { - const asn_SEQUENCE_specifics_t *specs - = (const asn_SEQUENCE_specifics_t *)td->specifics; - int exts_present = 0; - int exts_count = 0; - size_t edx; - - if(specs->first_extension < 0) { - return 0; - } - - /* Find out which extensions are present */ - for(edx = specs->first_extension; edx < td->elements_count; edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - const void *memb_ptr; /* Pointer to the member */ - const void * const *memb_ptr2; /* Pointer to that pointer */ - int present; - - if(!IN_EXTENSION_GROUP(specs, edx)) { - ASN_DEBUG("%s (@%ld) is not extension", elm->type->name, edx); - continue; - } - - /* Fetch the pointer to this member */ - if(elm->flags & ATF_POINTER) { - memb_ptr2 = (const void * const *)((const char *)sptr + elm->memb_offset); - present = (*memb_ptr2 != 0); - } else { - memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); - memb_ptr2 = &memb_ptr; - present = 1; - } - - ASN_DEBUG("checking %s (@%ld) present => %d", - elm->type->name, edx, present); - exts_count++; - exts_present += present; - - /* Encode as presence marker */ - if(po1 && per_put_few_bits(po1, present, 1)) - return -1; - /* Encode as open type field */ - if(po2 && present && aper_open_type_put(elm->type, - elm->encoding_constraints.per_constraints, *memb_ptr2, po2)) - return -1; - - } - - return exts_present ? exts_count : 0; -} - -asn_enc_rval_t -SEQUENCE_encode_aper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_per_outp_t *po) { - const asn_SEQUENCE_specifics_t *specs - = (const asn_SEQUENCE_specifics_t *)td->specifics; - asn_enc_rval_t er = {0,0,0}; - int n_extensions; - size_t edx; - size_t i; - - (void)constraints; - - if(!sptr) - ASN__ENCODE_FAILED; - - er.encoded = 0; - - ASN_DEBUG("Encoding %s as SEQUENCE (APER)", td->name); - - /* - * X.691#18.1 Whether structure is extensible - * and whether to encode extensions - */ - if(specs->first_extension < 0) { - n_extensions = 0; /* There are no extensions to encode */ - } else { - n_extensions = SEQUENCE_handle_extensions_aper(td, sptr, 0, 0); - if(n_extensions < 0) ASN__ENCODE_FAILED; - if(per_put_few_bits(po, n_extensions ? 1 : 0, 1)) { - ASN__ENCODE_FAILED; - } - } - - /* Encode a presence bitmap */ - for(i = 0; i < specs->roms_count; i++) { - asn_TYPE_member_t *elm; - const void *memb_ptr; /* Pointer to the member */ - const void * const *memb_ptr2; /* Pointer to that pointer */ - int present; - - edx = specs->oms[i]; - elm = &td->elements[edx]; - - /* Fetch the pointer to this member */ - if(elm->flags & ATF_POINTER) { - memb_ptr2 = (const void * const *)((const char *)sptr + elm->memb_offset); - present = (*memb_ptr2 != 0); - } else { - memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); - memb_ptr2 = &memb_ptr; - present = 1; - } - - /* Eliminate default values */ - if(present && elm->default_value_cmp - && elm->default_value_cmp(memb_ptr2) == 1) - present = 0; - - ASN_DEBUG("Element %s %s %s->%s is %s", - elm->flags & ATF_POINTER ? "ptr" : "inline", - elm->default_value_cmp ? "def" : "wtv", - td->name, elm->name, present ? "present" : "absent"); - if(per_put_few_bits(po, present, 1)) - ASN__ENCODE_FAILED; - } - - /* - * Encode the sequence ROOT elements. - */ - ASN_DEBUG("first_extension = %d, elements = %d", specs->first_extension, - td->elements_count); - for(edx = 0; - edx < ((specs->first_extension < 0) ? td->elements_count - : (size_t)specs->first_extension); - edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - const void *memb_ptr; /* Pointer to the member */ - const void * const *memb_ptr2; /* Pointer to that pointer */ - - if(IN_EXTENSION_GROUP(specs, edx)) - continue; - - ASN_DEBUG("About to encode %s", elm->type->name); - - /* Fetch the pointer to this member */ - if(elm->flags & ATF_POINTER) { - memb_ptr2 = (const void * const *)((const char *)sptr + elm->memb_offset); - if(!*memb_ptr2) { - ASN_DEBUG("Element %s %ld not present", - elm->name, edx); - if(elm->optional) - continue; - /* Mandatory element is missing */ - ASN__ENCODE_FAILED; - } - } else { - memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); - memb_ptr2 = &memb_ptr; - } - - /* Eliminate default values */ - if(elm->default_value_cmp && elm->default_value_cmp(memb_ptr2) == 1) - continue; - - ASN_DEBUG("Encoding %s->%s", td->name, elm->name); - er = elm->type->op->aper_encoder(elm->type, elm->encoding_constraints.per_constraints, - *memb_ptr2, po); - if(er.encoded == -1) - return er; - } - - /* No extensions to encode */ - if(!n_extensions) ASN__ENCODED_OK(er); - - ASN_DEBUG("Length of %d bit-map", n_extensions); - /* #18.8. Write down the presence bit-map length. */ - if(aper_put_nslength(po, n_extensions)) - ASN__ENCODE_FAILED; - - ASN_DEBUG("Bit-map of %d elements", n_extensions); - /* #18.7. Encoding the extensions presence bit-map. */ - /* TODO: act upon NOTE in #18.7 for canonical PER */ - if(SEQUENCE_handle_extensions_aper(td, sptr, po, 0) != n_extensions) - ASN__ENCODE_FAILED; - - ASN_DEBUG("Writing %d extensions", n_extensions); - /* #18.9. Encode extensions as open type fields. */ - if(SEQUENCE_handle_extensions_aper(td, sptr, 0, po) != n_extensions) - ASN__ENCODE_FAILED; - - ASN__ENCODED_OK(er); -} - -#endif /* ASN_DISABLE_PER_SUPPORT */ - -int -SEQUENCE_compare(const asn_TYPE_descriptor_t *td, const void *aptr, - const void *bptr) { - size_t edx; - - for(edx = 0; edx < td->elements_count; edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - const void *amemb; - const void *bmemb; - int ret; - - if(elm->flags & ATF_POINTER) { - amemb = - *(const void *const *)((const char *)aptr + elm->memb_offset); - bmemb = - *(const void *const *)((const char *)bptr + elm->memb_offset); - if(!amemb) { - if(!bmemb) continue; - if(elm->default_value_cmp - && elm->default_value_cmp(bmemb) == 0) { - /* A is absent, but B is present and equal to DEFAULT */ - continue; - } - return -1; - } else if(!bmemb) { - if(elm->default_value_cmp - && elm->default_value_cmp(amemb) == 0) { - /* B is absent, but A is present and equal to DEFAULT */ - continue; - } - return 1; - } - } else { - amemb = (const void *)((const char *)aptr + elm->memb_offset); - bmemb = (const void *)((const char *)bptr + elm->memb_offset); - } - - ret = elm->type->op->compare_struct(elm->type, amemb, bmemb); - if(ret != 0) return ret; - } - - return 0; -} - -asn_TYPE_operation_t asn_OP_SEQUENCE = { - SEQUENCE_free, - SEQUENCE_print, - SEQUENCE_compare, - SEQUENCE_decode_ber, - SEQUENCE_encode_der, - SEQUENCE_decode_xer, - SEQUENCE_encode_xer, -#ifdef ASN_DISABLE_OER_SUPPORT - 0, - 0, -#else - SEQUENCE_decode_oer, - SEQUENCE_encode_oer, -#endif /* ASN_DISABLE_OER_SUPPORT */ -#ifdef ASN_DISABLE_PER_SUPPORT - 0, - 0, - 0, - 0, -#else - SEQUENCE_decode_uper, - SEQUENCE_encode_uper, - SEQUENCE_decode_aper, - SEQUENCE_encode_aper, -#endif /* ASN_DISABLE_PER_SUPPORT */ - SEQUENCE_random_fill, - 0 /* Use generic outmost tag fetcher */ -}; - - -asn_random_fill_result_t -SEQUENCE_random_fill(const asn_TYPE_descriptor_t *td, void **sptr, - const asn_encoding_constraints_t *constr, - size_t max_length) { - const asn_SEQUENCE_specifics_t *specs = - (const asn_SEQUENCE_specifics_t *)td->specifics; - asn_random_fill_result_t result_ok = {ARFILL_OK, 0}; - asn_random_fill_result_t result_failed = {ARFILL_FAILED, 0}; - asn_random_fill_result_t result_skipped = {ARFILL_SKIPPED, 0}; - void *st = *sptr; - size_t edx; - - if(max_length == 0) return result_skipped; - - (void)constr; - - if(st == NULL) { - st = CALLOC(1, specs->struct_size); - if(st == NULL) { - return result_failed; - } - } - - for(edx = 0; edx < td->elements_count; edx++) { - const asn_TYPE_member_t *elm = &td->elements[edx]; - void *memb_ptr; /* Pointer to the member */ - void **memb_ptr2; /* Pointer to that pointer */ - asn_random_fill_result_t tmpres; - - if(elm->optional && asn_random_between(0, 4) == 2) { - /* Sometimes decide not to fill the optional value */ - continue; - } - - if(elm->flags & ATF_POINTER) { - /* Member is a pointer to another structure */ - memb_ptr2 = (void **)((char *)st + elm->memb_offset); - } else { - memb_ptr = (char *)st + elm->memb_offset; - memb_ptr2 = &memb_ptr; - } - - tmpres = elm->type->op->random_fill( - elm->type, memb_ptr2, &elm->encoding_constraints, - max_length > result_ok.length ? max_length - result_ok.length : 0); - switch(tmpres.code) { - case ARFILL_OK: - result_ok.length += tmpres.length; - continue; - case ARFILL_SKIPPED: - assert(!(elm->flags & ATF_POINTER) || *memb_ptr2 == NULL); - continue; - case ARFILL_FAILED: - if(st == *sptr) { - ASN_STRUCT_RESET(*td, st); - } else { - ASN_STRUCT_FREE(*td, st); - } - return tmpres; - } - } - - *sptr = st; - - return result_ok; -} - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/constr_SEQUENCE.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/constr_SEQUENCE.h deleted file mode 100644 index a22ed3a..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/constr_SEQUENCE.h +++ /dev/null @@ -1,68 +0,0 @@ -/*- - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef _CONSTR_SEQUENCE_H_ -#define _CONSTR_SEQUENCE_H_ - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct asn_SEQUENCE_specifics_s { - /* - * Target structure description. - */ - unsigned struct_size; /* Size of the target structure. */ - unsigned ctx_offset; /* Offset of the asn_struct_ctx_t member */ - - /* - * Tags to members mapping table (sorted). - */ - const asn_TYPE_tag2member_t *tag2el; - unsigned tag2el_count; - - /* - * Optional members of the extensions root (roms) or additions (aoms). - * Meaningful for PER. - */ - const int *oms; /* Optional MemberS */ - unsigned roms_count; /* Root optional members count */ - unsigned aoms_count; /* Additions optional members count */ - - /* - * Description of an extensions group. - * Root components are clustered at the beginning of the structure, - * whereas extensions are clustered at the end. -1 means not extensible. - */ - signed first_extension; /* First extension addition */ -} asn_SEQUENCE_specifics_t; - - -/* - * A set specialized functions dealing with the SEQUENCE type. - */ -asn_struct_free_f SEQUENCE_free; -asn_struct_print_f SEQUENCE_print; -asn_struct_compare_f SEQUENCE_compare; -asn_constr_check_f SEQUENCE_constraint; -ber_type_decoder_f SEQUENCE_decode_ber; -der_type_encoder_f SEQUENCE_encode_der; -xer_type_decoder_f SEQUENCE_decode_xer; -xer_type_encoder_f SEQUENCE_encode_xer; -oer_type_decoder_f SEQUENCE_decode_oer; -oer_type_encoder_f SEQUENCE_encode_oer; -per_type_decoder_f SEQUENCE_decode_uper; -per_type_encoder_f SEQUENCE_encode_uper; -per_type_decoder_f SEQUENCE_decode_aper; -per_type_encoder_f SEQUENCE_encode_aper; -asn_random_fill_f SEQUENCE_random_fill; -extern asn_TYPE_operation_t asn_OP_SEQUENCE; - -#ifdef __cplusplus -} -#endif - -#endif /* _CONSTR_SEQUENCE_H_ */ diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/constr_SEQUENCE_OF.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/constr_SEQUENCE_OF.c deleted file mode 100644 index 10f18cf..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/constr_SEQUENCE_OF.c +++ /dev/null @@ -1,358 +0,0 @@ -/*- - * Copyright (c) 2003, 2004, 2006 Lev Walkin . - * All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include - -/* - * The DER encoder of the SEQUENCE OF type. - */ -asn_enc_rval_t -SEQUENCE_OF_encode_der(const asn_TYPE_descriptor_t *td, const void *ptr, - int tag_mode, ber_tlv_tag_t tag, - asn_app_consume_bytes_f *cb, void *app_key) { - asn_TYPE_member_t *elm = td->elements; - const asn_anonymous_sequence_ *list = _A_CSEQUENCE_FROM_VOID(ptr); - size_t computed_size = 0; - ssize_t encoding_size = 0; - asn_enc_rval_t erval = {0,0,0}; - int edx; - - ASN_DEBUG("Estimating size of SEQUENCE OF %s", td->name); - - /* - * Gather the length of the underlying members sequence. - */ - for(edx = 0; edx < list->count; edx++) { - void *memb_ptr = list->array[edx]; - if(!memb_ptr) continue; - erval = elm->type->op->der_encoder(elm->type, memb_ptr, - 0, elm->tag, - 0, 0); - if(erval.encoded == -1) - return erval; - computed_size += erval.encoded; - } - - /* - * Encode the TLV for the sequence itself. - */ - encoding_size = der_write_tags(td, computed_size, tag_mode, 1, tag, - cb, app_key); - if(encoding_size == -1) { - erval.encoded = -1; - erval.failed_type = td; - erval.structure_ptr = ptr; - return erval; - } - - computed_size += encoding_size; - if(!cb) { - erval.encoded = computed_size; - ASN__ENCODED_OK(erval); - } - - ASN_DEBUG("Encoding members of SEQUENCE OF %s", td->name); - - /* - * Encode all members. - */ - for(edx = 0; edx < list->count; edx++) { - void *memb_ptr = list->array[edx]; - if(!memb_ptr) continue; - erval = elm->type->op->der_encoder(elm->type, memb_ptr, - 0, elm->tag, - cb, app_key); - if(erval.encoded == -1) - return erval; - encoding_size += erval.encoded; - } - - if(computed_size != (size_t)encoding_size) { - /* - * Encoded size is not equal to the computed size. - */ - erval.encoded = -1; - erval.failed_type = td; - erval.structure_ptr = ptr; - } else { - erval.encoded = computed_size; - erval.structure_ptr = 0; - erval.failed_type = 0; - } - - return erval; -} - -asn_enc_rval_t -SEQUENCE_OF_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, - int ilevel, enum xer_encoder_flags_e flags, - asn_app_consume_bytes_f *cb, void *app_key) { - asn_enc_rval_t er = {0,0,0}; - const asn_SET_OF_specifics_t *specs = (const asn_SET_OF_specifics_t *)td->specifics; - const asn_TYPE_member_t *elm = td->elements; - const asn_anonymous_sequence_ *list = _A_CSEQUENCE_FROM_VOID(sptr); - const char *mname = specs->as_XMLValueList - ? 0 - : ((*elm->name) ? elm->name : elm->type->xml_tag); - size_t mlen = mname ? strlen(mname) : 0; - int xcan = (flags & XER_F_CANONICAL); - int i; - - if(!sptr) ASN__ENCODE_FAILED; - - er.encoded = 0; - - for(i = 0; i < list->count; i++) { - asn_enc_rval_t tmper = {0,0,0}; - void *memb_ptr = list->array[i]; - if(!memb_ptr) continue; - - if(mname) { - if(!xcan) ASN__TEXT_INDENT(1, ilevel); - ASN__CALLBACK3("<", 1, mname, mlen, ">", 1); - } - - tmper = elm->type->op->xer_encoder(elm->type, memb_ptr, ilevel + 1, - flags, cb, app_key); - if(tmper.encoded == -1) return tmper; - er.encoded += tmper.encoded; - if(tmper.encoded == 0 && specs->as_XMLValueList) { - const char *name = elm->type->xml_tag; - size_t len = strlen(name); - if(!xcan) ASN__TEXT_INDENT(1, ilevel + 1); - ASN__CALLBACK3("<", 1, name, len, "/>", 2); - } - - if(mname) { - ASN__CALLBACK3("", 1); - } - } - - if(!xcan) ASN__TEXT_INDENT(1, ilevel - 1); - - ASN__ENCODED_OK(er); -cb_failed: - ASN__ENCODE_FAILED; -} - -#ifndef ASN_DISABLE_PER_SUPPORT - -asn_enc_rval_t -SEQUENCE_OF_encode_uper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_per_outp_t *po) { - const asn_anonymous_sequence_ *list; - const asn_per_constraint_t *ct; - asn_enc_rval_t er = {0,0,0}; - const asn_TYPE_member_t *elm = td->elements; - size_t encoded_edx; - - if(!sptr) ASN__ENCODE_FAILED; - list = _A_CSEQUENCE_FROM_VOID(sptr); - - er.encoded = 0; - - ASN_DEBUG("Encoding %s as SEQUENCE OF (%d)", td->name, list->count); - - if(constraints) ct = &constraints->size; - else if(td->encoding_constraints.per_constraints) - ct = &td->encoding_constraints.per_constraints->size; - else ct = 0; - - /* If extensible constraint, check if size is in root */ - if(ct) { - int not_in_root = - (list->count < ct->lower_bound || list->count > ct->upper_bound); - ASN_DEBUG("lb %ld ub %ld %s", ct->lower_bound, ct->upper_bound, - ct->flags & APC_EXTENSIBLE ? "ext" : "fix"); - if(ct->flags & APC_EXTENSIBLE) { - /* Declare whether size is in extension root */ - if(per_put_few_bits(po, not_in_root, 1)) ASN__ENCODE_FAILED; - if(not_in_root) ct = 0; - } else if(not_in_root && ct->effective_bits >= 0) { - ASN__ENCODE_FAILED; - } - - } - - if(ct && ct->effective_bits >= 0) { - /* X.691, #19.5: No length determinant */ - if(per_put_few_bits(po, list->count - ct->lower_bound, - ct->effective_bits)) - ASN__ENCODE_FAILED; - } else if(list->count == 0) { - /* When the list is empty add only the length determinant - * X.691, #20.6 and #11.9.4.1 - */ - if (uper_put_length(po, 0, 0)) { - ASN__ENCODE_FAILED; - } - ASN__ENCODED_OK(er); - } - - for(encoded_edx = 0; (ssize_t)encoded_edx < list->count;) { - ssize_t may_encode; - size_t edx; - int need_eom = 0; - - if(ct && ct->effective_bits >= 0) { - may_encode = list->count; - } else { - may_encode = - uper_put_length(po, list->count - encoded_edx, &need_eom); - if(may_encode < 0) ASN__ENCODE_FAILED; - } - - for(edx = encoded_edx; edx < encoded_edx + may_encode; edx++) { - void *memb_ptr = list->array[edx]; - if(!memb_ptr) ASN__ENCODE_FAILED; - er = elm->type->op->uper_encoder( - elm->type, elm->encoding_constraints.per_constraints, memb_ptr, - po); - if(er.encoded == -1) ASN__ENCODE_FAILED; - } - - if(need_eom && uper_put_length(po, 0, 0)) - ASN__ENCODE_FAILED; /* End of Message length */ - - encoded_edx += may_encode; - } - - ASN__ENCODED_OK(er); -} - -asn_enc_rval_t -SEQUENCE_OF_encode_aper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_per_outp_t *po) { - const asn_anonymous_sequence_ *list; - const asn_per_constraint_t *ct; - asn_enc_rval_t er = {0,0,0}; - asn_TYPE_member_t *elm = td->elements; - int seq; - - if(!sptr) ASN__ENCODE_FAILED; - list = _A_CSEQUENCE_FROM_VOID(sptr); - - er.encoded = 0; - - ASN_DEBUG("Encoding %s as SEQUENCE OF size (%d) using ALIGNED PER", td->name, list->count); - - if(constraints) ct = &constraints->size; - else if(td->encoding_constraints.per_constraints) - ct = &td->encoding_constraints.per_constraints->size; - else ct = 0; - - /* If extensible constraint, check if size is in root */ - if(ct) { - int not_in_root = (list->count < ct->lower_bound - || list->count > ct->upper_bound); - ASN_DEBUG("lb %ld ub %ld %s", - ct->lower_bound, ct->upper_bound, - ct->flags & APC_EXTENSIBLE ? "ext" : "fix"); - if(ct->flags & APC_EXTENSIBLE) { - /* Declare whether size is in extension root */ - if(per_put_few_bits(po, not_in_root, 1)) - ASN__ENCODE_FAILED; - if(not_in_root) ct = 0; - } else if(not_in_root && ct->effective_bits >= 0) - ASN__ENCODE_FAILED; - } - - if(ct && ct->effective_bits >= 0) { - /* X.691, #19.5: No length determinant */ -/* if(per_put_few_bits(po, list->count - ct->lower_bound, - ct->effective_bits)) - ASN__ENCODE_FAILED; -*/ - if (aper_put_length(po, ct->upper_bound - ct->lower_bound + 1, list->count - ct->lower_bound) < 0) - ASN__ENCODE_FAILED; - } - - for(seq = -1; seq < list->count;) { - ssize_t mayEncode; - if(seq < 0) seq = 0; - if(ct && ct->effective_bits >= 0) { - mayEncode = list->count; - } else { - mayEncode = aper_put_length(po, -1, list->count - seq); - if(mayEncode < 0) ASN__ENCODE_FAILED; - } - - while(mayEncode--) { - void *memb_ptr = list->array[seq++]; - if(!memb_ptr) ASN__ENCODE_FAILED; - er = elm->type->op->aper_encoder(elm->type, - elm->encoding_constraints.per_constraints, memb_ptr, po); - if(er.encoded == -1) - ASN__ENCODE_FAILED; - } - } - - ASN__ENCODED_OK(er); -} -#endif /* ASN_DISABLE_PER_SUPPORT */ - -int -SEQUENCE_OF_compare(const asn_TYPE_descriptor_t *td, const void *aptr, - const void *bptr) { - const asn_anonymous_sequence_ *a = _A_CSEQUENCE_FROM_VOID(aptr); - const asn_anonymous_sequence_ *b = _A_CSEQUENCE_FROM_VOID(bptr); - ssize_t idx; - - if(a && b) { - ssize_t common_length = (a->count < b->count ? a->count : b->count); - for(idx = 0; idx < common_length; idx++) { - int ret = td->elements->type->op->compare_struct( - td->elements->type, a->array[idx], b->array[idx]); - if(ret) return ret; - } - - if(idx < b->count) /* more elements in b */ - return -1; /* a is shorter, so put it first */ - if(idx < a->count) return 1; - - } else if(!a) { - return -1; - } else if(!b) { - return 1; - } - - return 0; -} - - -asn_TYPE_operation_t asn_OP_SEQUENCE_OF = { - SEQUENCE_OF_free, - SEQUENCE_OF_print, - SEQUENCE_OF_compare, - SEQUENCE_OF_decode_ber, - SEQUENCE_OF_encode_der, - SEQUENCE_OF_decode_xer, - SEQUENCE_OF_encode_xer, -#ifdef ASN_DISABLE_OER_SUPPORT - 0, - 0, -#else - SEQUENCE_OF_decode_oer, /* Same as SET OF decoder. */ - SEQUENCE_OF_encode_oer, /* Same as SET OF encoder */ -#endif /* ASN_DISABLE_OER_SUPPORT */ -#ifdef ASN_DISABLE_PER_SUPPORT - 0, - 0, - 0, - 0, -#else - SEQUENCE_OF_decode_uper, /* Same as SET OF decoder */ - SEQUENCE_OF_encode_uper, - SEQUENCE_OF_decode_aper, - SEQUENCE_OF_encode_aper, -#endif /* ASN_DISABLE_PER_SUPPORT */ - SEQUENCE_OF_random_fill, - 0 /* Use generic outmost tag fetcher */ -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/constr_SEQUENCE_OF.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/constr_SEQUENCE_OF.h deleted file mode 100644 index 6857f0f..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/constr_SEQUENCE_OF.h +++ /dev/null @@ -1,41 +0,0 @@ -/*- - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef _CONSTR_SEQUENCE_OF_H_ -#define _CONSTR_SEQUENCE_OF_H_ - -#include -#include /* Implemented using SET OF */ - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * A set specialized functions dealing with the SEQUENCE OF type. - * Generally implemented using SET OF. - */ -asn_struct_compare_f SEQUENCE_OF_compare; -der_type_encoder_f SEQUENCE_OF_encode_der; -xer_type_encoder_f SEQUENCE_OF_encode_xer; -per_type_encoder_f SEQUENCE_OF_encode_uper; -per_type_encoder_f SEQUENCE_OF_encode_aper; -extern asn_TYPE_operation_t asn_OP_SEQUENCE_OF; - -#define SEQUENCE_OF_free SET_OF_free -#define SEQUENCE_OF_print SET_OF_print -#define SEQUENCE_OF_constraint SET_OF_constraint -#define SEQUENCE_OF_decode_ber SET_OF_decode_ber -#define SEQUENCE_OF_decode_xer SET_OF_decode_xer -#define SEQUENCE_OF_decode_oer SET_OF_decode_oer -#define SEQUENCE_OF_encode_oer SET_OF_encode_oer -#define SEQUENCE_OF_decode_uper SET_OF_decode_uper -#define SEQUENCE_OF_decode_aper SET_OF_decode_aper -#define SEQUENCE_OF_random_fill SET_OF_random_fill - -#ifdef __cplusplus -} -#endif - -#endif /* _CONSTR_SET_OF_H_ */ diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/constr_SEQUENCE_oer.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/constr_SEQUENCE_oer.c deleted file mode 100644 index ecb589c..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/constr_SEQUENCE_oer.c +++ /dev/null @@ -1,561 +0,0 @@ -/* - * Copyright (c) 2017 Lev Walkin . - * All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef ASN_DISABLE_OER_SUPPORT - -#include -#include -#include -#include - -/* - * This macro "eats" the part of the buffer which is definitely "consumed", - * i.e. was correctly converted into local representation or rightfully skipped. - */ -#undef ADVANCE -#define ADVANCE(num_bytes) \ - do { \ - size_t num = num_bytes; \ - ptr = ((const char *)ptr) + num; \ - size -= num; \ - consumed_myself += num; \ - } while(0) - -/* - * Switch to the next phase of parsing. - */ -#undef NEXT_PHASE -#undef PHASE_OUT -#define NEXT_PHASE(ctx) \ - do { \ - ctx->phase++; \ - ctx->step = 0; \ - } while(0) - -/* - * Check whether we are inside the extensions group. - */ -#define IN_EXTENSION_GROUP(specs, memb_idx) \ - ((specs)->first_extension >= 0 \ - && (unsigned)(specs)->first_extension <= (memb_idx)) - -#define IN_ROOT_GROUP_PRED(edx) \ - edx < (specs->first_extension < 0 ? td->elements_count \ - : (size_t)specs->first_extension) - -#define FOR_IN_ROOT_GROUP(edx) for(edx = 0; IN_ROOT_GROUP_PRED(edx); edx++) - -/* - * Return a standardized complex structure. - */ -#undef RETURN -#define RETURN(_code) do { \ - rval.code = _code; \ - rval.consumed = consumed_myself;\ - return rval; \ - } while(0) - -/* - * Return pointer to a member. - */ -static void ** -element_ptrptr(void *struct_ptr, asn_TYPE_member_t *elm, void **tmp_save_ptr) { - if(elm->flags & ATF_POINTER) { - /* Member is a pointer to another structure */ - return (void **)((char *)struct_ptr + elm->memb_offset); - } else { - assert(tmp_save_ptr); - *tmp_save_ptr = (void *)((char *)struct_ptr + elm->memb_offset); - return tmp_save_ptr; - } -} - -static const void * -element_ptr(const void *struct_ptr, const asn_TYPE_member_t *elm) { - if(elm->flags & ATF_POINTER) { - /* Member is a pointer to another structure */ - return *(const void *const *)((const char *)struct_ptr - + elm->memb_offset); - } else { - return (const void *)((const char *)struct_ptr + elm->memb_offset); - } -} - -asn_dec_rval_t -SEQUENCE_decode_oer(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_oer_constraints_t *constraints, void **struct_ptr, - const void *ptr, size_t size) { - const asn_SEQUENCE_specifics_t *specs = - (const asn_SEQUENCE_specifics_t *)td->specifics; - asn_dec_rval_t rval = {RC_OK, 0}; - void *st = *struct_ptr; /* Target structure */ - asn_struct_ctx_t *ctx; /* Decoder context */ - size_t consumed_myself = 0; /* Consumed bytes from ptr. */ - - (void)constraints; - - if(ASN__STACK_OVERFLOW_CHECK(opt_codec_ctx)) - ASN__DECODE_FAILED; - - /* - * Create the target structure if it is not present already. - */ - if(st == 0) { - st = *struct_ptr = CALLOC(1, specs->struct_size); - if(st == 0) { - RETURN(RC_FAIL); - } - } - - /* - * Restore parsing context. - */ - ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset); - - /* - * Start to parse where left previously. - */ - switch(ctx->phase) { - case 0: { - /* - * Fetch preamble. - */ - asn_bit_data_t *preamble; - int has_extensions_bit = (specs->first_extension >= 0); - size_t preamble_bits = (has_extensions_bit + specs->roms_count); - size_t preamble_bytes = ((7 + preamble_bits) >> 3); - - ASN_DEBUG("OER SEQUENCE %s Decoding PHASE 0", td->name); - - ASN_DEBUG( - "Expecting preamble bits %" ASN_PRI_SIZE " for %s (including %d extension bits)", - preamble_bits, td->name, has_extensions_bit); - - if(preamble_bytes > size) { - ASN__DECODE_STARVED; - } - - preamble = asn_bit_data_new_contiguous(ptr, preamble_bits); - if(!preamble) { - RETURN(RC_FAIL); - } - preamble->nboff = has_extensions_bit; - ctx->ptr = preamble; - ADVANCE(preamble_bytes); - } - NEXT_PHASE(ctx); - /* FALL THROUGH */ - case 1: { - /* Decode components of the extension root */ - asn_bit_data_t *preamble = ctx->ptr; - size_t edx; - - ASN_DEBUG("OER SEQUENCE %s Decoding PHASE 1 (Root)", td->name); - - assert(preamble); - - for(edx = (ctx->step >> 1); IN_ROOT_GROUP_PRED(edx); - edx++, ctx->step = (ctx->step & ~1) + 2) { - asn_TYPE_member_t *elm = &td->elements[edx]; - - ASN_DEBUG("Decoding %s->%s", td->name, elm->name); - - assert(!IN_EXTENSION_GROUP(specs, edx)); - - if(ctx->step & 1) { - goto microphase2_decode_continues; - } - - - if(elm->optional) { - int32_t present = asn_get_few_bits(preamble, 1); - if(present < 0) { - ASN_DEBUG("Presence map ended prematurely: %d", present); - RETURN(RC_FAIL); - } else if(present == 0) { - if(elm->default_value_set) { - /* Fill-in DEFAULT */ - void *tmp; - if(elm->default_value_set( - element_ptrptr(st, elm, &tmp))) { - RETURN(RC_FAIL); - } - } - /* The member is not present. */ - continue; - } - /* Present OPTIONAL or DEFAULT component. */ - } - - /* - * MICROPHASE 2: Invoke the member-specific decoder. - */ - ctx->step |= 1; /* Confirm entering next microphase */ - microphase2_decode_continues: - if(elm->flags & ATF_OPEN_TYPE) { - rval = OPEN_TYPE_oer_get(opt_codec_ctx, td, st, elm, ptr, size); - } else { - void *save_memb_ptr; /* Temporary reference. */ - void **memb_ptr2; /* Pointer to a pointer to a memmber */ - - memb_ptr2 = element_ptrptr(st, elm, &save_memb_ptr); - - rval = elm->type->op->oer_decoder( - opt_codec_ctx, elm->type, - elm->encoding_constraints.oer_constraints, memb_ptr2, ptr, - size); - } - switch(rval.code) { - case RC_OK: - ADVANCE(rval.consumed); - break; - case RC_WMORE: - ASN_DEBUG("More bytes needed at element %s \"%s\"", td->name, - elm->name); - ADVANCE(rval.consumed); - RETURN(RC_WMORE); - case RC_FAIL: - ASN_DEBUG("Decoding failed at element %s \"%s\"", td->name, - elm->name); - RETURN(RC_FAIL); - } - } /* for(all root members) */ - - } - NEXT_PHASE(ctx); - /* FALL THROUGH */ - case 2: - assert(ctx->ptr); - { - /* Cleanup preamble. */ - asn_bit_data_t *preamble = ctx->ptr; - asn_bit_data_t *extadds; - int has_extensions_bit = (specs->first_extension >= 0); - int extensions_present = - has_extensions_bit - && (preamble->buffer == NULL - || (((const uint8_t *)preamble->buffer)[0] & 0x80)); - uint8_t unused_bits; - size_t len = 0; - ssize_t len_len; - - ASN_DEBUG("OER SEQUENCE %s Decoding PHASE 2", td->name); - - preamble->buffer = 0; /* Will do extensions_present==1 next time. */ - - if(!extensions_present) { - ctx->phase = 10; - RETURN(RC_OK); - } - - /* - * X.696 (08/2015) #16.1 (c), #16.4 - * Read in the extension addition presence bitmap. - */ - - len_len = oer_fetch_length(ptr, size, &len); - if(len_len > 0) { - ADVANCE(len_len); - } else if(len_len < 0) { - RETURN(RC_FAIL); - } else { - RETURN(RC_WMORE); - } - - if(len == 0) { - /* 16.4.1-2 */ - RETURN(RC_FAIL); - } else if(len > size) { - RETURN(RC_WMORE); - } - - /* Account for unused bits */ - unused_bits = 0x7 & *(const uint8_t *)ptr; - ADVANCE(1); - len--; - if(unused_bits && len == 0) { - RETURN(RC_FAIL); - } - - /* Get the extensions map */ - extadds = asn_bit_data_new_contiguous(ptr, len * 8 - unused_bits); - if(!extadds) { - RETURN(RC_FAIL); - } - FREEMEM(preamble); - ctx->ptr = extadds; - ADVANCE(len); - } - NEXT_PHASE(ctx); - ctx->step = - (specs->first_extension < 0 ? td->elements_count - : (size_t)specs->first_extension); - /* Fall through */ - case 3: - ASN_DEBUG("OER SEQUENCE %s Decoding PHASE 3 (Extensions)", td->name); - for(; ctx->step < (signed)td->elements_count; ctx->step++) { - asn_bit_data_t *extadds = ctx->ptr; - size_t edx = ctx->step; - asn_TYPE_member_t *elm = &td->elements[edx]; - void *tmp_memb_ptr; - void **memb_ptr2 = element_ptrptr(st, elm, &tmp_memb_ptr); - - switch(asn_get_few_bits(extadds, 1)) { - case -1: - /* - * Not every one of our extensions is known to the remote side. - * Continue filling in their defaults though. - */ - /* Fall through */ - case 0: - /* Fill-in DEFAULT */ - if(elm->default_value_set - && elm->default_value_set(memb_ptr2)) { - RETURN(RC_FAIL); - } - continue; - case 1: { - /* Read OER open type */ - ssize_t ot_size = - oer_open_type_get(opt_codec_ctx, elm->type, - elm->encoding_constraints.oer_constraints, - memb_ptr2, ptr, size); - assert(ot_size <= (ssize_t)size); - if(ot_size > 0) { - ADVANCE(ot_size); - } else if(ot_size < 0) { - RETURN(RC_FAIL); - } else { - /* Roll back open type parsing */ - asn_get_undo(extadds, 1); - RETURN(RC_WMORE); - } - break; - } - default: - RETURN(RC_FAIL); - } - } - - NEXT_PHASE(ctx); - /* Fall through */ - case 4: - ASN_DEBUG("OER SEQUENCE %s Decoding PHASE 4", td->name); - /* Read in the rest of Open Types while ignoring them */ - for(;;) { - asn_bit_data_t *extadds = ctx->ptr; - switch(asn_get_few_bits(extadds, 1)) { - case 0: - continue; - case 1: { - ssize_t skipped = oer_open_type_skip(ptr, size); - if(skipped > 0) { - ADVANCE(skipped); - } else if(skipped < 0) { - RETURN(RC_FAIL); - } else { - asn_get_undo(extadds, 1); - RETURN(RC_WMORE); - } - continue; - } - case -1: - /* No more Open Type encoded components */ - break; - default: - RETURN(RC_FAIL); - } - break; - } - } - - RETURN(RC_OK); -} - -/* - * Encode as Canonical OER. - */ -asn_enc_rval_t -SEQUENCE_encode_oer(const asn_TYPE_descriptor_t *td, - const asn_oer_constraints_t *constraints, const void *sptr, - asn_app_consume_bytes_f *cb, void *app_key) { - const asn_SEQUENCE_specifics_t *specs = (const asn_SEQUENCE_specifics_t *)td->specifics; - size_t computed_size = 0; - int has_extensions_bit = (specs->first_extension >= 0); - size_t preamble_bits = (has_extensions_bit + specs->roms_count); - uint32_t has_extensions = 0; - size_t edx; - int ret; - - (void)constraints; - - if(preamble_bits) { - asn_bit_outp_t preamble; - - memset(&preamble, 0, sizeof(preamble)); - preamble.output = cb; - preamble.op_key = app_key; - - if(has_extensions_bit) { - for(edx = specs->first_extension; edx < td->elements_count; edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - const void *memb_ptr = element_ptr(sptr, elm); - if(memb_ptr) { - if(elm->default_value_cmp - && elm->default_value_cmp(memb_ptr) == 0) { - /* Do not encode default values in extensions */ - } else { - has_extensions = 1; - break; - } - } - } - ret = asn_put_few_bits(&preamble, has_extensions, 1); - assert(ret == 0); - if(ret < 0) { - ASN__ENCODE_FAILED; - } - } - - /* - * Encode optional components bitmap. - */ - if(specs->roms_count) { - FOR_IN_ROOT_GROUP(edx) { - asn_TYPE_member_t *elm = &td->elements[edx]; - - if(IN_EXTENSION_GROUP(specs, edx)) break; - - if(elm->optional) { - const void *memb_ptr = element_ptr(sptr, elm); - uint32_t has_component = memb_ptr != NULL; - if(has_component && elm->default_value_cmp - && elm->default_value_cmp(memb_ptr) == 0) { - has_component = 0; - } - ret = asn_put_few_bits(&preamble, has_component, 1); - if(ret < 0) { - ASN__ENCODE_FAILED; - } - } - } - } - - asn_put_aligned_flush(&preamble); - computed_size += preamble.flushed_bytes; - } /* if(preamble_bits) */ - - /* - * Put root components and extensions root. - */ - for(edx = 0; edx < td->elements_count; edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - asn_enc_rval_t er = {0,0,0}; - const void *memb_ptr; - - if(IN_EXTENSION_GROUP(specs, edx)) break; - - memb_ptr = element_ptr(sptr, elm); - if(memb_ptr) { - if(elm->default_value_cmp - && elm->default_value_cmp(memb_ptr) == 0) { - /* Skip default values in encoding */ - continue; - } - } else { - if(elm->optional) continue; - /* Mandatory element is missing */ - ASN__ENCODE_FAILED; - } - if(!elm->type->op->oer_encoder) { - ASN_DEBUG("OER encoder is not defined for type %s", elm->type->name); - ASN__ENCODE_FAILED; - } - er = elm->type->op->oer_encoder( - elm->type, elm->encoding_constraints.oer_constraints, memb_ptr, cb, - app_key); - if(er.encoded == -1) { - ASN_DEBUG("... while encoding %s member \"%s\"\n", td->name, - elm->name); - return er; - } - computed_size += er.encoded; - } - - /* - * Before encode extensions, encode extensions additions presense bitmap - # X.696 (08/2015) #16.4. - */ - if(has_extensions) { - asn_bit_outp_t extadds; - - /* Special case allowing us to use exactly one byte for #8.6 */ - size_t aoms_length_bits = specs->aoms_count; - size_t aoms_length_bytes = (7 + aoms_length_bits) >> 3; - uint8_t unused_bits = 0x07 & (8 - (aoms_length_bits & 0x07)); - - assert(1 + aoms_length_bytes <= 127); - - memset(&extadds, 0, sizeof(extadds)); - extadds.output = cb; - extadds.op_key = app_key; - - /* #8.6 length determinant */ - ret = asn_put_few_bits(&extadds, (1 + aoms_length_bytes), 8); - if(ret < 0) ASN__ENCODE_FAILED; - - /* Number of unused bytes, #16.4.2 */ - ret = asn_put_few_bits(&extadds, unused_bits, 8); - if(ret < 0) ASN__ENCODE_FAILED; - - /* Encode presence bitmap #16.4.3 */ - for(edx = specs->first_extension; edx < td->elements_count; edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - const void *memb_ptr = element_ptr(sptr, elm); - if(memb_ptr && elm->default_value_cmp - && elm->default_value_cmp(memb_ptr) == 0) { - memb_ptr = 0; /* Do not encode default value. */ - } - ret |= asn_put_few_bits(&extadds, memb_ptr ? 1 : 0, 1); - } - if(ret < 0) ASN__ENCODE_FAILED; - - asn_put_aligned_flush(&extadds); - computed_size += extadds.flushed_bytes; - - /* Now, encode extensions */ - for(edx = specs->first_extension; edx < td->elements_count; edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - const void *memb_ptr = element_ptr(sptr, elm); - - if(memb_ptr) { - if(elm->default_value_cmp - && elm->default_value_cmp(memb_ptr) == 0) { - /* Do not encode default value. */ - } else { - ssize_t wrote = oer_open_type_put( - elm->type, elm->encoding_constraints.oer_constraints, - memb_ptr, cb, app_key); - if(wrote == -1) { - ASN__ENCODE_FAILED; - } - computed_size += wrote; - } - } else if(!elm->optional) { - ASN__ENCODE_FAILED; - } - } - } /* if(has_extensions) */ - - - { - asn_enc_rval_t er = {0, 0, 0}; - er.encoded = computed_size; - ASN__ENCODED_OK(er); - } -} - -#endif /* ASN_DISABLE_OER_SUPPORT */ diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/constr_SET_OF.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/constr_SET_OF.c deleted file mode 100644 index bf1dc27..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/constr_SET_OF.c +++ /dev/null @@ -1,1441 +0,0 @@ -/* - * Copyright (c) 2003-2017 Lev Walkin . - * All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include - -/* - * Number of bytes left for this structure. - * (ctx->left) indicates the number of bytes _transferred_ for the structure. - * (size) contains the number of bytes in the buffer passed. - */ -#define LEFT ((size<(size_t)ctx->left)?size:(size_t)ctx->left) - -/* - * If the subprocessor function returns with an indication that it wants - * more data, it may well be a fatal decoding problem, because the - * size is constrained by the 's L, even if the buffer size allows - * reading more data. - * For example, consider the buffer containing the following TLVs: - * ... - * The TLV length clearly indicates that one byte is expected in V, but - * if the V processor returns with "want more data" even if the buffer - * contains way more data than the V processor have seen. - */ -#define SIZE_VIOLATION (ctx->left >= 0 && (size_t)ctx->left <= size) - -/* - * This macro "eats" the part of the buffer which is definitely "consumed", - * i.e. was correctly converted into local representation or rightfully skipped. - */ -#undef ADVANCE -#define ADVANCE(num_bytes) do { \ - size_t num = num_bytes; \ - ptr = ((const char *)ptr) + num;\ - size -= num; \ - if(ctx->left >= 0) \ - ctx->left -= num; \ - consumed_myself += num; \ - } while(0) - -/* - * Switch to the next phase of parsing. - */ -#undef NEXT_PHASE -#undef PHASE_OUT -#define NEXT_PHASE(ctx) do { \ - ctx->phase++; \ - ctx->step = 0; \ - } while(0) -#define PHASE_OUT(ctx) do { ctx->phase = 10; } while(0) - -/* - * Return a standardized complex structure. - */ -#undef RETURN -#define RETURN(_code) do { \ - rval.code = _code; \ - rval.consumed = consumed_myself;\ - return rval; \ - } while(0) - -/* - * The decoder of the SET OF type. - */ -asn_dec_rval_t -SET_OF_decode_ber(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **struct_ptr, - const void *ptr, size_t size, int tag_mode) { - /* - * Bring closer parts of structure description. - */ - const asn_SET_OF_specifics_t *specs = (const asn_SET_OF_specifics_t *)td->specifics; - const asn_TYPE_member_t *elm = td->elements; /* Single one */ - - /* - * Parts of the structure being constructed. - */ - void *st = *struct_ptr; /* Target structure. */ - asn_struct_ctx_t *ctx; /* Decoder context */ - - ber_tlv_tag_t tlv_tag; /* T from TLV */ - asn_dec_rval_t rval; /* Return code from subparsers */ - - ssize_t consumed_myself = 0; /* Consumed bytes from ptr */ - - ASN_DEBUG("Decoding %s as SET OF", td->name); - - /* - * Create the target structure if it is not present already. - */ - if(st == 0) { - st = *struct_ptr = CALLOC(1, specs->struct_size); - if(st == 0) { - RETURN(RC_FAIL); - } - } - - /* - * Restore parsing context. - */ - ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset); - - /* - * Start to parse where left previously - */ - switch(ctx->phase) { - case 0: - /* - * PHASE 0. - * Check that the set of tags associated with given structure - * perfectly fits our expectations. - */ - - rval = ber_check_tags(opt_codec_ctx, td, ctx, ptr, size, - tag_mode, 1, &ctx->left, 0); - if(rval.code != RC_OK) { - ASN_DEBUG("%s tagging check failed: %d", - td->name, rval.code); - return rval; - } - - if(ctx->left >= 0) - ctx->left += rval.consumed; /* ?Substracted below! */ - ADVANCE(rval.consumed); - - ASN_DEBUG("Structure consumes %ld bytes, " - "buffer %ld", (long)ctx->left, (long)size); - - NEXT_PHASE(ctx); - /* Fall through */ - case 1: - /* - * PHASE 1. - * From the place where we've left it previously, - * try to decode the next item. - */ - for(;; ctx->step = 0) { - ssize_t tag_len; /* Length of TLV's T */ - - if(ctx->step & 1) - goto microphase2; - - /* - * MICROPHASE 1: Synchronize decoding. - */ - - if(ctx->left == 0) { - ASN_DEBUG("End of SET OF %s", td->name); - /* - * No more things to decode. - * Exit out of here. - */ - PHASE_OUT(ctx); - RETURN(RC_OK); - } - - /* - * Fetch the T from TLV. - */ - tag_len = ber_fetch_tag(ptr, LEFT, &tlv_tag); - switch(tag_len) { - case 0: if(!SIZE_VIOLATION) RETURN(RC_WMORE); - /* Fall through */ - case -1: RETURN(RC_FAIL); - } - - if(ctx->left < 0 && ((const uint8_t *)ptr)[0] == 0) { - if(LEFT < 2) { - if(SIZE_VIOLATION) - RETURN(RC_FAIL); - else - RETURN(RC_WMORE); - } else if(((const uint8_t *)ptr)[1] == 0) { - /* - * Found the terminator of the - * indefinite length structure. - */ - break; - } - } - - /* Outmost tag may be unknown and cannot be fetched/compared */ - if(elm->tag != (ber_tlv_tag_t)-1) { - if(BER_TAGS_EQUAL(tlv_tag, elm->tag)) { - /* - * The new list member of expected type has arrived. - */ - } else { - ASN_DEBUG("Unexpected tag %s fixed SET OF %s", - ber_tlv_tag_string(tlv_tag), td->name); - ASN_DEBUG("%s SET OF has tag %s", - td->name, ber_tlv_tag_string(elm->tag)); - RETURN(RC_FAIL); - } - } - - /* - * MICROPHASE 2: Invoke the member-specific decoder. - */ - ctx->step |= 1; /* Confirm entering next microphase */ - microphase2: - - /* - * Invoke the member fetch routine according to member's type - */ - rval = elm->type->op->ber_decoder(opt_codec_ctx, - elm->type, &ctx->ptr, ptr, LEFT, 0); - ASN_DEBUG("In %s SET OF %s code %d consumed %d", - td->name, elm->type->name, - rval.code, (int)rval.consumed); - switch(rval.code) { - case RC_OK: - { - asn_anonymous_set_ *list = _A_SET_FROM_VOID(st); - if(ASN_SET_ADD(list, ctx->ptr) != 0) - RETURN(RC_FAIL); - else - ctx->ptr = 0; - } - break; - case RC_WMORE: /* More data expected */ - if(!SIZE_VIOLATION) { - ADVANCE(rval.consumed); - RETURN(RC_WMORE); - } - /* Fall through */ - case RC_FAIL: /* Fatal error */ - ASN_STRUCT_FREE(*elm->type, ctx->ptr); - ctx->ptr = 0; - RETURN(RC_FAIL); - } /* switch(rval) */ - - ADVANCE(rval.consumed); - } /* for(all list members) */ - - NEXT_PHASE(ctx); - case 2: - /* - * Read in all "end of content" TLVs. - */ - while(ctx->left < 0) { - if(LEFT < 2) { - if(LEFT > 0 && ((const char *)ptr)[0] != 0) { - /* Unexpected tag */ - RETURN(RC_FAIL); - } else { - RETURN(RC_WMORE); - } - } - if(((const char *)ptr)[0] == 0 - && ((const char *)ptr)[1] == 0) { - ADVANCE(2); - ctx->left++; - } else { - RETURN(RC_FAIL); - } - } - - PHASE_OUT(ctx); - } - - RETURN(RC_OK); -} - -/* - * Internally visible buffer holding a single encoded element. - */ -struct _el_buffer { - uint8_t *buf; - size_t length; - size_t allocated_size; - unsigned bits_unused; -}; -/* Append bytes to the above structure */ -static int _el_addbytes(const void *buffer, size_t size, void *el_buf_ptr) { - struct _el_buffer *el_buf = (struct _el_buffer *)el_buf_ptr; - - if(el_buf->length + size > el_buf->allocated_size) { - size_t new_size = el_buf->allocated_size ? el_buf->allocated_size : 8; - void *p; - - do { - new_size <<= 2; - } while(el_buf->length + size > new_size); - - p = REALLOC(el_buf->buf, new_size); - if(p) { - el_buf->buf = p; - el_buf->allocated_size = new_size; - } else { - return -1; - } - } - - memcpy(el_buf->buf + el_buf->length, buffer, size); - - el_buf->length += size; - return 0; -} - -static void assert_unused_bits(const struct _el_buffer* p) { - if(p->length) { - assert((p->buf[p->length-1] & ~(0xff << p->bits_unused)) == 0); - } else { - assert(p->bits_unused == 0); - } -} - -static int _el_buf_cmp(const void *ap, const void *bp) { - const struct _el_buffer *a = (const struct _el_buffer *)ap; - const struct _el_buffer *b = (const struct _el_buffer *)bp; - size_t common_len; - int ret = 0; - - if(a->length < b->length) - common_len = a->length; - else - common_len = b->length; - - if (a->buf && b->buf) { - ret = memcmp(a->buf, b->buf, common_len); - } - if(ret == 0) { - if(a->length < b->length) - ret = -1; - else if(a->length > b->length) - ret = 1; - /* Ignore unused bits. */ - assert_unused_bits(a); - assert_unused_bits(b); - } - - return ret; -} - -static void -SET_OF__encode_sorted_free(struct _el_buffer *el_buf, size_t count) { - size_t i; - - for(i = 0; i < count; i++) { - FREEMEM(el_buf[i].buf); - } - - FREEMEM(el_buf); -} - -enum SET_OF__encode_method { - SOES_DER, /* Distinguished Encoding Rules */ - SOES_CUPER /* Canonical Unaligned Packed Encoding Rules */ -}; - -static struct _el_buffer * -SET_OF__encode_sorted(const asn_TYPE_member_t *elm, - const asn_anonymous_set_ *list, - enum SET_OF__encode_method method) { - struct _el_buffer *encoded_els; - int edx; - - encoded_els = - (struct _el_buffer *)CALLOC(list->count, sizeof(encoded_els[0])); - if(encoded_els == NULL) { - return NULL; - } - - /* - * Encode all members. - */ - for(edx = 0; edx < list->count; edx++) { - const void *memb_ptr = list->array[edx]; - struct _el_buffer *encoding_el = &encoded_els[edx]; - asn_enc_rval_t erval = {0,0,0}; - - if(!memb_ptr) break; - - /* - * Encode the member into the prepared space. - */ - switch(method) { - case SOES_DER: - erval = elm->type->op->der_encoder(elm->type, memb_ptr, 0, elm->tag, - _el_addbytes, encoding_el); - break; - case SOES_CUPER: - erval = uper_encode(elm->type, - elm->encoding_constraints.per_constraints, - memb_ptr, _el_addbytes, encoding_el); - if(erval.encoded != -1) { - size_t extra_bits = erval.encoded % 8; - assert(encoding_el->length == (size_t)(erval.encoded + 7) / 8); - encoding_el->bits_unused = (8 - extra_bits) & 0x7; - } - break; - default: - assert(!"Unreachable"); - break; - } - if(erval.encoded < 0) break; - } - - if(edx == list->count) { - /* - * Sort the encoded elements according to their encoding. - */ - qsort(encoded_els, list->count, sizeof(encoded_els[0]), _el_buf_cmp); - - return encoded_els; - } else { - SET_OF__encode_sorted_free(encoded_els, edx); - return NULL; - } -} - - -/* - * The DER encoder of the SET OF type. - */ -asn_enc_rval_t -SET_OF_encode_der(const asn_TYPE_descriptor_t *td, const void *sptr, - int tag_mode, ber_tlv_tag_t tag, asn_app_consume_bytes_f *cb, - void *app_key) { - const asn_TYPE_member_t *elm = td->elements; - const asn_anonymous_set_ *list = _A_CSET_FROM_VOID(sptr); - size_t computed_size = 0; - ssize_t encoding_size = 0; - struct _el_buffer *encoded_els; - int edx; - - ASN_DEBUG("Estimating size for SET OF %s", td->name); - - /* - * Gather the length of the underlying members sequence. - */ - for(edx = 0; edx < list->count; edx++) { - void *memb_ptr = list->array[edx]; - asn_enc_rval_t erval = {0,0,0}; - - if(!memb_ptr) ASN__ENCODE_FAILED; - - erval = - elm->type->op->der_encoder(elm->type, memb_ptr, 0, elm->tag, 0, 0); - if(erval.encoded == -1) return erval; - computed_size += erval.encoded; - } - - - /* - * Encode the TLV for the sequence itself. - */ - encoding_size = - der_write_tags(td, computed_size, tag_mode, 1, tag, cb, app_key); - if(encoding_size < 0) { - ASN__ENCODE_FAILED; - } - computed_size += encoding_size; - - if(!cb || list->count == 0) { - asn_enc_rval_t erval = {0,0,0}; - erval.encoded = computed_size; - ASN__ENCODED_OK(erval); - } - - ASN_DEBUG("Encoding members of %s SET OF", td->name); - - /* - * DER mandates dynamic sorting of the SET OF elements - * according to their encodings. Build an array of the - * encoded elements. - */ - encoded_els = SET_OF__encode_sorted(elm, list, SOES_DER); - - /* - * Report encoded elements to the application. - * Dispose of temporary sorted members table. - */ - for(edx = 0; edx < list->count; edx++) { - struct _el_buffer *encoded_el = &encoded_els[edx]; - /* Report encoded chunks to the application */ - if(cb(encoded_el->buf, encoded_el->length, app_key) < 0) { - break; - } else { - encoding_size += encoded_el->length; - } - } - - SET_OF__encode_sorted_free(encoded_els, list->count); - - if(edx == list->count) { - asn_enc_rval_t erval = {0,0,0}; - assert(computed_size == (size_t)encoding_size); - erval.encoded = computed_size; - ASN__ENCODED_OK(erval); - } else { - ASN__ENCODE_FAILED; - } -} - -#undef XER_ADVANCE -#define XER_ADVANCE(num_bytes) do { \ - size_t num = num_bytes; \ - buf_ptr = ((const char *)buf_ptr) + num;\ - size -= num; \ - consumed_myself += num; \ - } while(0) - -/* - * Decode the XER (XML) data. - */ -asn_dec_rval_t -SET_OF_decode_xer(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **struct_ptr, - const char *opt_mname, const void *buf_ptr, size_t size) { - /* - * Bring closer parts of structure description. - */ - const asn_SET_OF_specifics_t *specs = (const asn_SET_OF_specifics_t *)td->specifics; - const asn_TYPE_member_t *element = td->elements; - const char *elm_tag; - const char *xml_tag = opt_mname ? opt_mname : td->xml_tag; - - /* - * ... and parts of the structure being constructed. - */ - void *st = *struct_ptr; /* Target structure. */ - asn_struct_ctx_t *ctx; /* Decoder context */ - - asn_dec_rval_t rval = {RC_OK, 0};/* Return value from a decoder */ - ssize_t consumed_myself = 0; /* Consumed bytes from ptr */ - - /* - * Create the target structure if it is not present already. - */ - if(st == 0) { - st = *struct_ptr = CALLOC(1, specs->struct_size); - if(st == 0) RETURN(RC_FAIL); - } - - /* Which tag is expected for the downstream */ - if(specs->as_XMLValueList) { - elm_tag = (specs->as_XMLValueList == 1) ? 0 : ""; - } else { - elm_tag = (*element->name) - ? element->name : element->type->xml_tag; - } - - /* - * Restore parsing context. - */ - ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset); - - /* - * Phases of XER/XML processing: - * Phase 0: Check that the opening tag matches our expectations. - * Phase 1: Processing body and reacting on closing tag. - * Phase 2: Processing inner type. - */ - for(; ctx->phase <= 2;) { - pxer_chunk_type_e ch_type; /* XER chunk type */ - ssize_t ch_size; /* Chunk size */ - xer_check_tag_e tcv; /* Tag check value */ - - /* - * Go inside the inner member of a set. - */ - if(ctx->phase == 2) { - asn_dec_rval_t tmprval = {RC_OK, 0}; - - /* Invoke the inner type decoder, m.b. multiple times */ - ASN_DEBUG("XER/SET OF element [%s]", elm_tag); - tmprval = element->type->op->xer_decoder(opt_codec_ctx, - element->type, &ctx->ptr, elm_tag, - buf_ptr, size); - if(tmprval.code == RC_OK) { - asn_anonymous_set_ *list = _A_SET_FROM_VOID(st); - if(ASN_SET_ADD(list, ctx->ptr) != 0) - RETURN(RC_FAIL); - ctx->ptr = 0; - XER_ADVANCE(tmprval.consumed); - } else { - XER_ADVANCE(tmprval.consumed); - RETURN(tmprval.code); - } - ctx->phase = 1; /* Back to body processing */ - ASN_DEBUG("XER/SET OF phase => %d", ctx->phase); - /* Fall through */ - } - - /* - * Get the next part of the XML stream. - */ - ch_size = xer_next_token(&ctx->context, - buf_ptr, size, &ch_type); - if(ch_size == -1) { - RETURN(RC_FAIL); - } else { - switch(ch_type) { - case PXER_WMORE: - RETURN(RC_WMORE); - case PXER_COMMENT: /* Got XML comment */ - case PXER_TEXT: /* Ignore free-standing text */ - XER_ADVANCE(ch_size); /* Skip silently */ - continue; - case PXER_TAG: - break; /* Check the rest down there */ - } - } - - tcv = xer_check_tag(buf_ptr, ch_size, xml_tag); - ASN_DEBUG("XER/SET OF: tcv = %d, ph=%d t=%s", - tcv, ctx->phase, xml_tag); - switch(tcv) { - case XCT_CLOSING: - if(ctx->phase == 0) break; - ctx->phase = 0; - /* Fall through */ - case XCT_BOTH: - if(ctx->phase == 0) { - /* No more things to decode */ - XER_ADVANCE(ch_size); - ctx->phase = 3; /* Phase out */ - RETURN(RC_OK); - } - /* Fall through */ - case XCT_OPENING: - if(ctx->phase == 0) { - XER_ADVANCE(ch_size); - ctx->phase = 1; /* Processing body phase */ - continue; - } - /* Fall through */ - case XCT_UNKNOWN_OP: - case XCT_UNKNOWN_BO: - - ASN_DEBUG("XER/SET OF: tcv=%d, ph=%d", tcv, ctx->phase); - if(ctx->phase == 1) { - /* - * Process a single possible member. - */ - ctx->phase = 2; - continue; - } - /* Fall through */ - default: - break; - } - - ASN_DEBUG("Unexpected XML tag in SET OF"); - break; - } - - ctx->phase = 3; /* "Phase out" on hard failure */ - RETURN(RC_FAIL); -} - - - -typedef struct xer_tmp_enc_s { - void *buffer; - size_t offset; - size_t size; -} xer_tmp_enc_t; -static int -SET_OF_encode_xer_callback(const void *buffer, size_t size, void *key) { - xer_tmp_enc_t *t = (xer_tmp_enc_t *)key; - if(t->offset + size >= t->size) { - size_t newsize = (t->size << 2) + size; - void *p = REALLOC(t->buffer, newsize); - if(!p) return -1; - t->buffer = p; - t->size = newsize; - } - memcpy((char *)t->buffer + t->offset, buffer, size); - t->offset += size; - return 0; -} -static int -SET_OF_xer_order(const void *aptr, const void *bptr) { - const xer_tmp_enc_t *a = (const xer_tmp_enc_t *)aptr; - const xer_tmp_enc_t *b = (const xer_tmp_enc_t *)bptr; - size_t minlen = a->offset; - int ret; - if(b->offset < minlen) minlen = b->offset; - /* Well-formed UTF-8 has this nice lexicographical property... */ - ret = memcmp(a->buffer, b->buffer, minlen); - if(ret != 0) return ret; - if(a->offset == b->offset) - return 0; - if(a->offset == minlen) - return -1; - return 1; -} - - -asn_enc_rval_t -SET_OF_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, - enum xer_encoder_flags_e flags, asn_app_consume_bytes_f *cb, - void *app_key) { - asn_enc_rval_t er = {0,0,0}; - const asn_SET_OF_specifics_t *specs = (const asn_SET_OF_specifics_t *)td->specifics; - const asn_TYPE_member_t *elm = td->elements; - const asn_anonymous_set_ *list = _A_CSET_FROM_VOID(sptr); - const char *mname = specs->as_XMLValueList - ? 0 : ((*elm->name) ? elm->name : elm->type->xml_tag); - size_t mlen = mname ? strlen(mname) : 0; - int xcan = (flags & XER_F_CANONICAL); - xer_tmp_enc_t *encs = 0; - size_t encs_count = 0; - void *original_app_key = app_key; - asn_app_consume_bytes_f *original_cb = cb; - int i; - - if(!sptr) ASN__ENCODE_FAILED; - - if(xcan) { - encs = (xer_tmp_enc_t *)MALLOC(list->count * sizeof(encs[0])); - if(!encs) ASN__ENCODE_FAILED; - cb = SET_OF_encode_xer_callback; - } - - er.encoded = 0; - - for(i = 0; i < list->count; i++) { - asn_enc_rval_t tmper = {0,0,0}; - - void *memb_ptr = list->array[i]; - if(!memb_ptr) continue; - - if(encs) { - memset(&encs[encs_count], 0, sizeof(encs[0])); - app_key = &encs[encs_count]; - encs_count++; - } - - if(mname) { - if(!xcan) ASN__TEXT_INDENT(1, ilevel); - ASN__CALLBACK3("<", 1, mname, mlen, ">", 1); - } - - if(!xcan && specs->as_XMLValueList == 1) - ASN__TEXT_INDENT(1, ilevel + 1); - tmper = elm->type->op->xer_encoder(elm->type, memb_ptr, - ilevel + (specs->as_XMLValueList != 2), - flags, cb, app_key); - if(tmper.encoded == -1) return tmper; - er.encoded += tmper.encoded; - if(tmper.encoded == 0 && specs->as_XMLValueList) { - const char *name = elm->type->xml_tag; - size_t len = strlen(name); - ASN__CALLBACK3("<", 1, name, len, "/>", 2); - } - - if(mname) { - ASN__CALLBACK3("", 1); - } - - } - - if(!xcan) ASN__TEXT_INDENT(1, ilevel - 1); - - if(encs) { - xer_tmp_enc_t *enc = encs; - xer_tmp_enc_t *end = encs + encs_count; - ssize_t control_size = 0; - - er.encoded = 0; - cb = original_cb; - app_key = original_app_key; - qsort(encs, encs_count, sizeof(encs[0]), SET_OF_xer_order); - - for(; enc < end; enc++) { - ASN__CALLBACK(enc->buffer, enc->offset); - FREEMEM(enc->buffer); - enc->buffer = 0; - control_size += enc->offset; - } - assert(control_size == er.encoded); - } - - goto cleanup; -cb_failed: - ASN__ENCODE_FAILED; -cleanup: - if(encs) { - size_t n; - for(n = 0; n < encs_count; n++) { - FREEMEM(encs[n].buffer); - } - FREEMEM(encs); - } - ASN__ENCODED_OK(er); -} - -int -SET_OF_print(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, - asn_app_consume_bytes_f *cb, void *app_key) { - asn_TYPE_member_t *elm = td->elements; - const asn_anonymous_set_ *list = _A_CSET_FROM_VOID(sptr); - int ret; - int i; - - if(!sptr) return (cb("", 8, app_key) < 0) ? -1 : 0; - - /* Dump preamble */ - if(cb(td->name, strlen(td->name), app_key) < 0 - || cb(" ::= {", 6, app_key) < 0) - return -1; - - for(i = 0; i < list->count; i++) { - const void *memb_ptr = list->array[i]; - if(!memb_ptr) continue; - - _i_INDENT(1); - - ret = elm->type->op->print_struct(elm->type, memb_ptr, - ilevel + 1, cb, app_key); - if(ret) return ret; - } - - ilevel--; - _i_INDENT(1); - - return (cb("}", 1, app_key) < 0) ? -1 : 0; -} - -void -SET_OF_free(const asn_TYPE_descriptor_t *td, void *ptr, - enum asn_struct_free_method method) { - if(td && ptr) { - const asn_SET_OF_specifics_t *specs; - asn_TYPE_member_t *elm = td->elements; - asn_anonymous_set_ *list = _A_SET_FROM_VOID(ptr); - asn_struct_ctx_t *ctx; /* Decoder context */ - int i; - - /* - * Could not use set_of_empty() because of (*free) - * incompatibility. - */ - for(i = 0; i < list->count; i++) { - void *memb_ptr = list->array[i]; - if(memb_ptr) - ASN_STRUCT_FREE(*elm->type, memb_ptr); - } - list->count = 0; /* No meaningful elements left */ - - asn_set_empty(list); /* Remove (list->array) */ - - specs = (const asn_SET_OF_specifics_t *)td->specifics; - ctx = (asn_struct_ctx_t *)((char *)ptr + specs->ctx_offset); - if(ctx->ptr) { - ASN_STRUCT_FREE(*elm->type, ctx->ptr); - ctx->ptr = 0; - } - - switch(method) { - case ASFM_FREE_EVERYTHING: - FREEMEM(ptr); - break; - case ASFM_FREE_UNDERLYING: - break; - case ASFM_FREE_UNDERLYING_AND_RESET: - memset(ptr, 0, specs->struct_size); - break; - } - } -} - -int -SET_OF_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const asn_TYPE_member_t *elm = td->elements; - asn_constr_check_f *constr; - const asn_anonymous_set_ *list = _A_CSET_FROM_VOID(sptr); - int i; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - constr = elm->encoding_constraints.general_constraints; - if(!constr) constr = elm->type->encoding_constraints.general_constraints; - - /* - * Iterate over the members of an array. - * Validate each in turn, until one fails. - */ - for(i = 0; i < list->count; i++) { - const void *memb_ptr = list->array[i]; - int ret; - - if(!memb_ptr) continue; - - ret = constr(elm->type, memb_ptr, ctfailcb, app_key); - if(ret) return ret; - } - - return 0; -} - -#ifndef ASN_DISABLE_PER_SUPPORT - -asn_dec_rval_t -SET_OF_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, - asn_per_data_t *pd) { - asn_dec_rval_t rv = {RC_OK, 0}; - const asn_SET_OF_specifics_t *specs = (const asn_SET_OF_specifics_t *)td->specifics; - const asn_TYPE_member_t *elm = td->elements; /* Single one */ - void *st = *sptr; - asn_anonymous_set_ *list; - const asn_per_constraint_t *ct; - int repeat = 0; - ssize_t nelems; - - if(ASN__STACK_OVERFLOW_CHECK(opt_codec_ctx)) - ASN__DECODE_FAILED; - - /* - * Create the target structure if it is not present already. - */ - if(!st) { - st = *sptr = CALLOC(1, specs->struct_size); - if(!st) ASN__DECODE_FAILED; - } - list = _A_SET_FROM_VOID(st); - - /* Figure out which constraints to use */ - if(constraints) ct = &constraints->size; - else if(td->encoding_constraints.per_constraints) - ct = &td->encoding_constraints.per_constraints->size; - else ct = 0; - - if(ct && ct->flags & APC_EXTENSIBLE) { - int value = per_get_few_bits(pd, 1); - if(value < 0) ASN__DECODE_STARVED; - if(value) ct = 0; /* Not restricted! */ - } - - if(ct && ct->effective_bits >= 0) { - /* X.691, #19.5: No length determinant */ - nelems = per_get_few_bits(pd, ct->effective_bits); - ASN_DEBUG("Preparing to fetch %ld+%ld elements from %s", - (long)nelems, ct->lower_bound, td->name); - if(nelems < 0) ASN__DECODE_STARVED; - nelems += ct->lower_bound; - } else { - nelems = -1; - } - - do { - int i; - if(nelems < 0) { - nelems = uper_get_length(pd, -1, 0, &repeat); - ASN_DEBUG("Got to decode %" ASN_PRI_SSIZE " elements (eff %d)", - nelems, (int)(ct ? ct->effective_bits : -1)); - if(nelems < 0) ASN__DECODE_STARVED; - } - - for(i = 0; i < nelems; i++) { - void *ptr = 0; - ASN_DEBUG("SET OF %s decoding", elm->type->name); - rv = elm->type->op->uper_decoder(opt_codec_ctx, elm->type, - elm->encoding_constraints.per_constraints, &ptr, pd); - ASN_DEBUG("%s SET OF %s decoded %d, %p", - td->name, elm->type->name, rv.code, ptr); - if(rv.code == RC_OK) { - if(ASN_SET_ADD(list, ptr) == 0) { - if(rv.consumed == 0 && nelems > 200) { - /* Protect from SET OF NULL compression bombs. */ - ASN__DECODE_FAILED; - } - continue; - } - ASN_DEBUG("Failed to add element into %s", - td->name); - /* Fall through */ - rv.code = RC_FAIL; - } else { - ASN_DEBUG("Failed decoding %s of %s (SET OF)", - elm->type->name, td->name); - } - if(ptr) ASN_STRUCT_FREE(*elm->type, ptr); - return rv; - } - - nelems = -1; /* Allow uper_get_length() */ - } while(repeat); - - ASN_DEBUG("Decoded %s as SET OF", td->name); - - rv.code = RC_OK; - rv.consumed = 0; - return rv; -} - -asn_enc_rval_t -SET_OF_encode_uper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, const void *sptr, - asn_per_outp_t *po) { - const asn_anonymous_set_ *list; - const asn_per_constraint_t *ct; - const asn_TYPE_member_t *elm = td->elements; - struct _el_buffer *encoded_els; - asn_enc_rval_t er = {0,0,0}; - size_t encoded_edx; - - if(!sptr) ASN__ENCODE_FAILED; - - list = _A_CSET_FROM_VOID(sptr); - - er.encoded = 0; - - ASN_DEBUG("Encoding %s as SEQUENCE OF (%d)", td->name, list->count); - - if(constraints) ct = &constraints->size; - else if(td->encoding_constraints.per_constraints) - ct = &td->encoding_constraints.per_constraints->size; - else ct = 0; - - /* If extensible constraint, check if size is in root */ - if(ct) { - int not_in_root = - (list->count < ct->lower_bound || list->count > ct->upper_bound); - ASN_DEBUG("lb %ld ub %ld %s", ct->lower_bound, ct->upper_bound, - ct->flags & APC_EXTENSIBLE ? "ext" : "fix"); - if(ct->flags & APC_EXTENSIBLE) { - /* Declare whether size is in extension root */ - if(per_put_few_bits(po, not_in_root, 1)) ASN__ENCODE_FAILED; - if(not_in_root) ct = 0; - } else if(not_in_root && ct->effective_bits >= 0) { - ASN__ENCODE_FAILED; - } - - } - - if(ct && ct->effective_bits >= 0) { - /* X.691, #19.5: No length determinant */ - if(per_put_few_bits(po, list->count - ct->lower_bound, - ct->effective_bits)) - ASN__ENCODE_FAILED; - } else if(list->count == 0) { - /* When the list is empty add only the length determinant - * X.691, #20.6 and #11.9.4.1 - */ - if (uper_put_length(po, 0, 0)) { - ASN__ENCODE_FAILED; - } - ASN__ENCODED_OK(er); - } - - - /* - * Canonical UPER #22.1 mandates dynamic sorting of the SET OF elements - * according to their encodings. Build an array of the encoded elements. - */ - encoded_els = SET_OF__encode_sorted(elm, list, SOES_CUPER); - - for(encoded_edx = 0; (ssize_t)encoded_edx < list->count;) { - ssize_t may_encode; - size_t edx; - int need_eom = 0; - - if(ct && ct->effective_bits >= 0) { - may_encode = list->count; - } else { - may_encode = - uper_put_length(po, list->count - encoded_edx, &need_eom); - if(may_encode < 0) ASN__ENCODE_FAILED; - } - - for(edx = encoded_edx; edx < encoded_edx + may_encode; edx++) { - const struct _el_buffer *el = &encoded_els[edx]; - if(asn_put_many_bits(po, el->buf, - (8 * el->length) - el->bits_unused) < 0) { - break; - } - } - - if(need_eom && uper_put_length(po, 0, 0)) - ASN__ENCODE_FAILED; /* End of Message length */ - - encoded_edx += may_encode; - } - - SET_OF__encode_sorted_free(encoded_els, list->count); - - if((ssize_t)encoded_edx == list->count) { - ASN__ENCODED_OK(er); - } else { - ASN__ENCODE_FAILED; - } -} - -asn_dec_rval_t -SET_OF_decode_aper(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, asn_per_data_t *pd) { - asn_dec_rval_t rv = {RC_OK, 0}; - const asn_SET_OF_specifics_t *specs = (const asn_SET_OF_specifics_t *)td->specifics; - const asn_TYPE_member_t *elm = td->elements; /* Single one */ - void *st = *sptr; - asn_anonymous_set_ *list; - const asn_per_constraint_t *ct; - int repeat = 0; - ssize_t nelems; - - if(ASN__STACK_OVERFLOW_CHECK(opt_codec_ctx)) - ASN__DECODE_FAILED; - - /* - * Create the target structure if it is not present already. - */ - if(!st) { - st = *sptr = CALLOC(1, specs->struct_size); - if(!st) ASN__DECODE_FAILED; - } - list = _A_SET_FROM_VOID(st); - - /* Figure out which constraints to use */ - if(constraints) ct = &constraints->size; - else if(td->encoding_constraints.per_constraints) - ct = &td->encoding_constraints.per_constraints->size; - else ct = 0; - - if(ct && ct->flags & APC_EXTENSIBLE) { - int value = per_get_few_bits(pd, 1); - if(value < 0) ASN__DECODE_STARVED; - if(value) ct = 0; /* Not restricted! */ - } - - if(ct && ct->effective_bits >= 0) { - /* X.691, #19.5: No length determinant */ - nelems = aper_get_nsnnwn(pd, ct->upper_bound - ct->lower_bound + 1); - ASN_DEBUG("Preparing to fetch %ld+%ld elements from %s", - (long)nelems, ct->lower_bound, td->name); - if(nelems < 0) ASN__DECODE_STARVED; - nelems += ct->lower_bound; - } else { - nelems = -1; - } - - do { - int i; - if(nelems < 0) { - nelems = aper_get_length(pd, ct ? ct->upper_bound - ct->lower_bound + 1 : -1, - ct ? ct->effective_bits : -1, &repeat); - ASN_DEBUG("Got to decode %d elements (eff %d)", - (int)nelems, (int)(ct ? ct->effective_bits : -1)); - if(nelems < 0) ASN__DECODE_STARVED; - } - - for(i = 0; i < nelems; i++) { - void *ptr = 0; - ASN_DEBUG("SET OF %s decoding", elm->type->name); - rv = elm->type->op->aper_decoder(opt_codec_ctx, elm->type, - elm->encoding_constraints.per_constraints, &ptr, pd); - ASN_DEBUG("%s SET OF %s decoded %d, %p", - td->name, elm->type->name, rv.code, ptr); - if(rv.code == RC_OK) { - if(ASN_SET_ADD(list, ptr) == 0) - continue; - ASN_DEBUG("Failed to add element into %s", - td->name); - /* Fall through */ - rv.code = RC_FAIL; - } else { - ASN_DEBUG("Failed decoding %s of %s (SET OF)", - elm->type->name, td->name); - } - if(ptr) ASN_STRUCT_FREE(*elm->type, ptr); - return rv; - } - - nelems = -1; /* Allow uper_get_length() */ - } while(repeat); - - ASN_DEBUG("Decoded %s as SET OF", td->name); - - rv.code = RC_OK; - rv.consumed = 0; - return rv; -} - -#endif /* ASN_DISABLE_PER_SUPPORT */ - -struct comparable_ptr { - const asn_TYPE_descriptor_t *td; - const void *sptr; -}; - -static int -SET_OF__compare_cb(const void *aptr, const void *bptr) { - const struct comparable_ptr *a = aptr; - const struct comparable_ptr *b = bptr; - assert(a->td == b->td); - return a->td->op->compare_struct(a->td, a->sptr, b->sptr); -} - -int -SET_OF_compare(const asn_TYPE_descriptor_t *td, const void *aptr, - const void *bptr) { - const asn_anonymous_set_ *a = _A_CSET_FROM_VOID(aptr); - const asn_anonymous_set_ *b = _A_CSET_FROM_VOID(bptr); - - if(a && b) { - struct comparable_ptr *asorted; - struct comparable_ptr *bsorted; - ssize_t common_length; - ssize_t idx; - - if(a->count == 0) { - if(b->count) return -1; - return 0; - } else if(b->count == 0) { - return 1; - } - - asorted = MALLOC(a->count * sizeof(asorted[0])); - bsorted = MALLOC(b->count * sizeof(bsorted[0])); - if(!asorted || !bsorted) { - FREEMEM(asorted); - FREEMEM(bsorted); - return -1; - } - - for(idx = 0; idx < a->count; idx++) { - asorted[idx].td = td->elements->type; - asorted[idx].sptr = a->array[idx]; - } - - for(idx = 0; idx < b->count; idx++) { - bsorted[idx].td = td->elements->type; - bsorted[idx].sptr = b->array[idx]; - } - - qsort(asorted, a->count, sizeof(asorted[0]), SET_OF__compare_cb); - qsort(bsorted, b->count, sizeof(bsorted[0]), SET_OF__compare_cb); - - common_length = (a->count < b->count ? a->count : b->count); - for(idx = 0; idx < common_length; idx++) { - int ret = td->elements->type->op->compare_struct( - td->elements->type, asorted[idx].sptr, bsorted[idx].sptr); - if(ret) { - FREEMEM(asorted); - FREEMEM(bsorted); - return ret; - } - } - - FREEMEM(asorted); - FREEMEM(bsorted); - - if(idx < b->count) /* more elements in b */ - return -1; /* a is shorter, so put it first */ - if(idx < a->count) return 1; - } else if(!a) { - return -1; - } else if(!b) { - return 1; - } - - return 0; -} - - -asn_TYPE_operation_t asn_OP_SET_OF = { - SET_OF_free, - SET_OF_print, - SET_OF_compare, - SET_OF_decode_ber, - SET_OF_encode_der, - SET_OF_decode_xer, - SET_OF_encode_xer, -#ifdef ASN_DISABLE_OER_SUPPORT - 0, - 0, -#else - SET_OF_decode_oer, - SET_OF_encode_oer, -#endif -#ifdef ASN_DISABLE_PER_SUPPORT - 0, - 0, - 0, - 0, -#else - SET_OF_decode_uper, - SET_OF_encode_uper, - SET_OF_decode_aper, - 0, /* SET_OF_encode_aper */ -#endif /* ASN_DISABLE_PER_SUPPORT */ - SET_OF_random_fill, - 0 /* Use generic outmost tag fetcher */ -}; - - -asn_random_fill_result_t -SET_OF_random_fill(const asn_TYPE_descriptor_t *td, void **sptr, - const asn_encoding_constraints_t *constraints, - size_t max_length) { - const asn_SET_OF_specifics_t *specs = - (const asn_SET_OF_specifics_t *)td->specifics; - asn_random_fill_result_t res_ok = {ARFILL_OK, 0}; - asn_random_fill_result_t result_failed = {ARFILL_FAILED, 0}; - asn_random_fill_result_t result_skipped = {ARFILL_SKIPPED, 0}; - const asn_TYPE_member_t *elm = td->elements; - void *st = *sptr; - long max_elements = 5; - long slb = 0; /* Lower size bound */ - long sub = 0; /* Upper size bound */ - size_t rnd_len; - - if(max_length == 0) return result_skipped; - - if(st == NULL) { - st = (*sptr = CALLOC(1, specs->struct_size)); - if(st == NULL) { - return result_failed; - } - } - - switch(asn_random_between(0, 6)) { - case 0: max_elements = 0; break; - case 1: max_elements = 1; break; - case 2: max_elements = 5; break; - case 3: max_elements = max_length; break; - case 4: max_elements = max_length / 2; break; - case 5: max_elements = max_length / 4; break; - default: break; - } - sub = slb + max_elements; - - if(!constraints || !constraints->per_constraints) - constraints = &td->encoding_constraints; - if(constraints->per_constraints) { - const asn_per_constraint_t *pc = &constraints->per_constraints->size; - if(pc->flags & APC_SEMI_CONSTRAINED) { - slb = pc->lower_bound; - sub = pc->lower_bound + max_elements; - } else if(pc->flags & APC_CONSTRAINED) { - slb = pc->lower_bound; - sub = pc->upper_bound; - if(sub - slb > max_elements) sub = slb + max_elements; - } - } - - /* Bias towards edges of allowed space */ - switch(asn_random_between(-1, 4)) { - default: - case -1: - /* Prepare lengths somewhat outside of constrained range. */ - if(constraints->per_constraints - && (constraints->per_constraints->size.flags & APC_EXTENSIBLE)) { - switch(asn_random_between(0, 5)) { - default: - case 0: - rnd_len = 0; - break; - case 1: - if(slb > 0) { - rnd_len = slb - 1; - } else { - rnd_len = 0; - } - break; - case 2: - rnd_len = asn_random_between(0, slb); - break; - case 3: - if(sub < (ssize_t)max_length) { - rnd_len = sub + 1; - } else { - rnd_len = max_length; - } - break; - case 4: - if(sub < (ssize_t)max_length) { - rnd_len = asn_random_between(sub + 1, max_length); - } else { - rnd_len = max_length; - } - break; - case 5: - rnd_len = max_length; - break; - } - break; - } - /* Fall through */ - case 0: - rnd_len = asn_random_between(slb, sub); - break; - case 1: - if(slb < sub) { - rnd_len = asn_random_between(slb + 1, sub); - break; - } - /* Fall through */ - case 2: - rnd_len = asn_random_between(slb, slb); - break; - case 3: - if(slb < sub) { - rnd_len = asn_random_between(slb, sub - 1); - break; - } - /* Fall through */ - case 4: - rnd_len = asn_random_between(sub, sub); - break; - } - - for(; rnd_len > 0; rnd_len--) { - asn_anonymous_set_ *list = _A_SET_FROM_VOID(st); - void *ptr = 0; - asn_random_fill_result_t tmpres = elm->type->op->random_fill( - elm->type, &ptr, &elm->encoding_constraints, - (max_length > res_ok.length ? max_length - res_ok.length : 0) - / rnd_len); - switch(tmpres.code) { - case ARFILL_OK: - ASN_SET_ADD(list, ptr); - res_ok.length += tmpres.length; - break; - case ARFILL_SKIPPED: - break; - case ARFILL_FAILED: - assert(ptr == 0); - return tmpres; - } - } - - return res_ok; -} - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/constr_SET_OF.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/constr_SET_OF.h deleted file mode 100644 index 7681062..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/constr_SET_OF.h +++ /dev/null @@ -1,49 +0,0 @@ -/*- - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef CONSTR_SET_OF_H -#define CONSTR_SET_OF_H - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct asn_SET_OF_specifics_s { - /* - * Target structure description. - */ - unsigned struct_size; /* Size of the target structure. */ - unsigned ctx_offset; /* Offset of the asn_struct_ctx_t member */ - - /* XER-specific stuff */ - int as_XMLValueList; /* The member type must be encoded like this */ -} asn_SET_OF_specifics_t; - -/* - * A set specialized functions dealing with the SET OF type. - */ -asn_struct_free_f SET_OF_free; -asn_struct_print_f SET_OF_print; -asn_struct_compare_f SET_OF_compare; -asn_constr_check_f SET_OF_constraint; -ber_type_decoder_f SET_OF_decode_ber; -der_type_encoder_f SET_OF_encode_der; -xer_type_decoder_f SET_OF_decode_xer; -xer_type_encoder_f SET_OF_encode_xer; -oer_type_decoder_f SET_OF_decode_oer; -oer_type_encoder_f SET_OF_encode_oer; -per_type_decoder_f SET_OF_decode_uper; -per_type_encoder_f SET_OF_encode_uper; -per_type_decoder_f SET_OF_decode_aper; -per_type_encoder_f SET_OF_encode_aper; -asn_random_fill_f SET_OF_random_fill; -extern asn_TYPE_operation_t asn_OP_SET_OF; - -#ifdef __cplusplus -} -#endif - -#endif /* CONSTR_SET_OF_H */ diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/constr_SET_OF_oer.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/constr_SET_OF_oer.c deleted file mode 100644 index 5200518..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/constr_SET_OF_oer.c +++ /dev/null @@ -1,285 +0,0 @@ -/* - * Copyright (c) 2017 Lev Walkin . - * All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef ASN_DISABLE_OER_SUPPORT - -#include -#include -#include -#include - -/* - * This macro "eats" the part of the buffer which is definitely "consumed", - * i.e. was correctly converted into local representation or rightfully skipped. - */ -#undef ADVANCE -#define ADVANCE(num_bytes) \ - do { \ - size_t num = num_bytes; \ - ptr = ((const char *)ptr) + num; \ - size -= num; \ - consumed_myself += num; \ - } while(0) - -/* - * Switch to the next phase of parsing. - */ -#undef NEXT_PHASE -#define NEXT_PHASE(ctx) \ - do { \ - ctx->phase++; \ - ctx->step = 0; \ - } while(0) -#undef SET_PHASE -#define SET_PHASE(ctx, value) \ - do { \ - ctx->phase = value; \ - ctx->step = 0; \ - } while(0) - -/* - * Return a standardized complex structure. - */ -#undef RETURN -#define RETURN(_code) \ - do { \ - asn_dec_rval_t rval; \ - rval.code = _code; \ - rval.consumed = consumed_myself; \ - return rval; \ - } while(0) - -/* - * The SEQUENCE OF and SET OF values utilize a "quantity field". - * It is is a pointless combination of #8.6 (length determinant, capable - * of encoding tiny and huge numbers in the shortest possible number of octets) - * and the variable sized integer. What could have been encoded by #8.6 alone - * is required to be encoded by #8.6 followed by that number of unsigned octets. - * This doesn't make too much sense. It seems that the original version of OER - * standard have been using the unconstrained unsigned integer as a quantity - * field, and this legacy have gone through ISO/ITU-T standardization process. - */ -static ssize_t -oer_fetch_quantity(const void *ptr, size_t size, size_t *qty_r) { - const uint8_t *b; - const uint8_t *bend; - size_t len = 0; - size_t qty; - - ssize_t len_len = oer_fetch_length(ptr, size, &len); - if(len_len <= 0) { - *qty_r = 0; - return len_len; - } - - if((len_len + len) > size) { - *qty_r = 0; - return 0; - } - - b = (const uint8_t *)ptr + len_len; - bend = b + len; - - /* Skip the leading 0-bytes */ - for(; b < bend && *b == 0; b++) { - } - - if((bend - b) > (ssize_t)sizeof(size_t)) { - /* Length is not representable by the native size_t type */ - *qty_r = 0; - return -1; - } - - for(qty = 0; b < bend; b++) { - qty = (qty << 8) + *b; - } - - if(qty > RSIZE_MAX) { /* A bit of C11 validation */ - *qty_r = 0; - return -1; - } - - *qty_r = qty; - assert((size_t)len_len + len == (size_t)(bend - (const uint8_t *)ptr)); - return len_len + len; -} - -asn_dec_rval_t -SET_OF_decode_oer(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_oer_constraints_t *constraints, void **struct_ptr, - const void *ptr, size_t size) { - const asn_SET_OF_specifics_t *specs = (const asn_SET_OF_specifics_t *)td->specifics; - asn_dec_rval_t rval = {RC_OK, 0}; - void *st = *struct_ptr; /* Target structure */ - asn_struct_ctx_t *ctx; /* Decoder context */ - size_t consumed_myself = 0; /* Consumed bytes from ptr. */ - - (void)constraints; - - if(ASN__STACK_OVERFLOW_CHECK(opt_codec_ctx)) - ASN__DECODE_FAILED; - - /* - * Create the target structure if it is not present already. - */ - if(st == 0) { - st = *struct_ptr = CALLOC(1, specs->struct_size); - if(st == 0) { - RETURN(RC_FAIL); - } - } - - /* - * Restore parsing context. - */ - ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset); - - /* - * Start to parse where left previously. - */ - switch(ctx->phase) { - case 0: { - /* - * Fetch number of elements to decode. - */ - size_t length = 0; - size_t len_size = oer_fetch_quantity(ptr, size, &length); - switch(len_size) { - case 0: - RETURN(RC_WMORE); - case -1: - RETURN(RC_FAIL); - default: - ADVANCE(len_size); - ctx->left = length; - } - } - NEXT_PHASE(ctx); - /* FALL THROUGH */ - case 1: { - /* Decode components of the extension root */ - asn_TYPE_member_t *elm = td->elements; - asn_anonymous_set_ *list = _A_SET_FROM_VOID(st); - const void *base_ptr = ptr; - ber_tlv_len_t base_ctx_left = ctx->left; - - assert(td->elements_count == 1); - - ASN_DEBUG("OER SET OF %s Decoding PHASE 1", td->name); - - for(; ctx->left > 0; ctx->left--) { - asn_dec_rval_t rv = elm->type->op->oer_decoder( - opt_codec_ctx, elm->type, - elm->encoding_constraints.oer_constraints, &ctx->ptr, ptr, - size); - ADVANCE(rv.consumed); - switch(rv.code) { - case RC_OK: - if(ASN_SET_ADD(list, ctx->ptr) != 0) { - RETURN(RC_FAIL); - } else { - ctx->ptr = 0; - /* - * This check is to avoid compression bomb with - * specs like SEQUENCE/SET OF NULL which don't - * consume data at all. - */ - if(rv.consumed == 0 && base_ptr == ptr - && (base_ctx_left - ctx->left) > 200) { - ASN__DECODE_FAILED; - } - break; - } - case RC_WMORE: - RETURN(RC_WMORE); - case RC_FAIL: - ASN_STRUCT_FREE(*elm->type, ctx->ptr); - ctx->ptr = 0; - SET_PHASE(ctx, 3); - RETURN(RC_FAIL); - } - } - /* Decoded decently. */ - NEXT_PHASE(ctx); - } - /* Fall through */ - case 2: - /* Ignore fully decoded */ - assert(ctx->left == 0); - RETURN(RC_OK); - case 3: - /* Failed to decode. */ - RETURN(RC_FAIL); - } - - return rval; -} - -static ssize_t -oer_put_quantity(size_t qty, asn_app_consume_bytes_f *cb, void *app_key) { - uint8_t buf[1 + sizeof(size_t)]; - uint8_t *b = &buf[sizeof(size_t)]; /* Last addressable */ - size_t encoded; - - do { - *b-- = qty; - qty >>= 8; - } while(qty); - - *b = sizeof(buf) - (b-buf) - 1; - encoded = sizeof(buf) - (b-buf); - if(cb(b, encoded, app_key) < 0) - return -1; - return encoded; -} - -/* - * Encode as Canonical OER. - */ -asn_enc_rval_t -SET_OF_encode_oer(const asn_TYPE_descriptor_t *td, - const asn_oer_constraints_t *constraints, const void *sptr, - asn_app_consume_bytes_f *cb, void *app_key) { - const asn_TYPE_member_t *elm; - const asn_anonymous_set_ *list; - size_t computed_size = 0; - ssize_t qty_len; - int n; - - (void)constraints; - - if(!sptr) ASN__ENCODE_FAILED; - - elm = td->elements; - list = _A_CSET_FROM_VOID(sptr); - - qty_len = oer_put_quantity(list->count, cb, app_key); - if(qty_len < 0) { - ASN__ENCODE_FAILED; - } - computed_size += qty_len; - - for(n = 0; n < list->count; n++) { - void *memb_ptr = list->array[n]; - asn_enc_rval_t er = {0,0,0}; - er = elm->type->op->oer_encoder( - elm->type, elm->encoding_constraints.oer_constraints, memb_ptr, cb, - app_key); - if(er.encoded < 0) { - return er; - } else { - computed_size += er.encoded; - } - } - - { - asn_enc_rval_t erval = {0,0,0}; - erval.encoded = computed_size; - ASN__ENCODED_OK(erval); - } -} - -#endif /* ASN_DISABLE_OER_SUPPORT */ diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/constr_TYPE.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/constr_TYPE.c deleted file mode 100644 index aefaefd..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/constr_TYPE.c +++ /dev/null @@ -1,80 +0,0 @@ -/*- - * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include - -/* - * Version of the ASN.1 infrastructure shipped with compiler. - */ -int get_asn1c_environment_version() { return ASN1C_ENVIRONMENT_VERSION; } - -static asn_app_consume_bytes_f _print2fp; - -/* - * Return the outmost tag of the type. - */ -ber_tlv_tag_t -asn_TYPE_outmost_tag(const asn_TYPE_descriptor_t *type_descriptor, - const void *struct_ptr, int tag_mode, ber_tlv_tag_t tag) { - - if(tag_mode) - return tag; - - if(type_descriptor->tags_count) - return type_descriptor->tags[0]; - - return type_descriptor->op->outmost_tag(type_descriptor, struct_ptr, 0, 0); -} - -/* - * Print the target language's structure in human readable form. - */ -int -asn_fprint(FILE *stream, const asn_TYPE_descriptor_t *td, - const void *struct_ptr) { - if(!stream) stream = stdout; - if(!td || !struct_ptr) { - errno = EINVAL; - return -1; - } - - /* Invoke type-specific printer */ - if(td->op->print_struct(td, struct_ptr, 1, _print2fp, stream)) { - return -1; - } - - /* Terminate the output */ - if(_print2fp("\n", 1, stream)) { - return -1; - } - - return fflush(stream); -} - -/* Dump the data into the specified stdio stream */ -static int -_print2fp(const void *buffer, size_t size, void *app_key) { - FILE *stream = (FILE *)app_key; - - if(fwrite(buffer, 1, size, stream) != size) - return -1; - - return 0; -} - - -/* - * Some compilers do not support variable args macros. - * This function is a replacement of ASN_DEBUG() macro. - */ -void ASN_DEBUG_f(const char *fmt, ...); -void ASN_DEBUG_f(const char *fmt, ...) { - va_list ap; - va_start(ap, fmt); - vfprintf(stderr, fmt, ap); - fprintf(stderr, "\n"); - va_end(ap); -} diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/constr_TYPE.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/constr_TYPE.h deleted file mode 100644 index d80dea5..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/constr_TYPE.h +++ /dev/null @@ -1,262 +0,0 @@ -/* - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -/* - * This file contains the declaration structure called "ASN.1 Type Definition", - * which holds all information necessary for encoding and decoding routines. - * This structure even contains pointer to these encoding and decoding routines - * for each defined ASN.1 type. - */ -#ifndef _CONSTR_TYPE_H_ -#define _CONSTR_TYPE_H_ - -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -struct asn_TYPE_descriptor_s; /* Forward declaration */ -struct asn_TYPE_member_s; /* Forward declaration */ - -/* - * This type provides the context information for various ASN.1 routines, - * primarily ones doing decoding. A member _asn_ctx of this type must be - * included into certain target language's structures, such as compound types. - */ -typedef struct asn_struct_ctx_s { - short phase; /* Decoding phase */ - short step; /* Elementary step of a phase */ - int context; /* Other context information */ - void *ptr; /* Decoder-specific stuff (stack elements) */ - ber_tlv_len_t left; /* Number of bytes left, -1 for indefinite */ -} asn_struct_ctx_t; - -#include /* Basic Encoding Rules decoder */ -#include /* Distinguished Encoding Rules encoder */ -#include /* Decoder of XER (XML, text) */ -#include /* Encoder into XER (XML, text) */ -#include /* Packet Encoding Rules decoder */ -#include /* Packet Encoding Rules encoder */ -#include /* Subtype constraints support */ -#include /* Random structures support */ - -#ifdef ASN_DISABLE_OER_SUPPORT -typedef void (oer_type_decoder_f)(void); -typedef void (oer_type_encoder_f)(void); -typedef void asn_oer_constraints_t; -#else -#include /* Octet Encoding Rules encoder */ -#include /* Octet Encoding Rules encoder */ -#endif - -/* - * Free the structure according to its specification. - * Use one of ASN_STRUCT_{FREE,RESET,CONTENTS_ONLY} macros instead. - * Do not use directly. - */ -enum asn_struct_free_method { - ASFM_FREE_EVERYTHING, /* free(struct_ptr) and underlying members */ - ASFM_FREE_UNDERLYING, /* free underlying members */ - ASFM_FREE_UNDERLYING_AND_RESET /* FREE_UNDERLYING + memset(0) */ -}; -typedef void (asn_struct_free_f)( - const struct asn_TYPE_descriptor_s *type_descriptor, - void *struct_ptr, enum asn_struct_free_method); - -/* - * Free the structure including freeing the memory pointed to by ptr itself. - */ -#define ASN_STRUCT_FREE(asn_DEF, ptr) \ - (asn_DEF).op->free_struct(&(asn_DEF), (ptr), ASFM_FREE_EVERYTHING) - -/* - * Free the memory used by the members of the structure without freeing the - * the structure pointer itself. - * ZERO-OUT the structure to the safe clean state. - * (Retaining the pointer may be useful in case the structure is allocated - * statically or arranged on the stack, yet its elements are dynamic.) - */ -#define ASN_STRUCT_RESET(asn_DEF, ptr) \ - (asn_DEF).op->free_struct(&(asn_DEF), (ptr), ASFM_FREE_UNDERLYING_AND_RESET) - -/* - * Free memory used by the members of the structure without freeing - * the structure pointer itself. - * (Retaining the pointer may be useful in case the structure is allocated - * statically or arranged on the stack, yet its elements are dynamic.) - * AVOID using it in the application code; - * Use a safer ASN_STRUCT_RESET() instead. - */ -#define ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF, ptr) \ - (asn_DEF).op->free_struct(&(asn_DEF), (ptr), ASFM_FREE_UNDERLYING) - -/* - * Print the structure according to its specification. - */ -typedef int(asn_struct_print_f)( - const struct asn_TYPE_descriptor_s *type_descriptor, - const void *struct_ptr, - int level, /* Indentation level */ - asn_app_consume_bytes_f *callback, void *app_key); - -/* - * Compare two structs between each other. - * Returns <0 if struct_A is "smaller" than struct_B, >0 if "greater", - * and =0 if "equal to", for some type-specific, stable definition of - * "smaller", "greater" and "equal to". - */ -typedef int (asn_struct_compare_f)( - const struct asn_TYPE_descriptor_s *type_descriptor, - const void *struct_A, - const void *struct_B); - -/* - * Return the outmost tag of the type. - * If the type is untagged CHOICE, the dynamic operation is performed. - * NOTE: This function pointer type is only useful internally. - * Do not use it in your application. - */ -typedef ber_tlv_tag_t (asn_outmost_tag_f)( - const struct asn_TYPE_descriptor_s *type_descriptor, - const void *struct_ptr, int tag_mode, ber_tlv_tag_t tag); -/* The instance of the above function type; used internally. */ -asn_outmost_tag_f asn_TYPE_outmost_tag; - -/* - * Fetch the desired type of the Open Type based on the - * Information Object Set driven constraints. - */ -typedef struct asn_type_selector_result_s { - const struct asn_TYPE_descriptor_s *type_descriptor; /* Type encoded. */ - unsigned presence_index; /* Associated choice variant. */ -} asn_type_selector_result_t; -typedef asn_type_selector_result_t(asn_type_selector_f)( - const struct asn_TYPE_descriptor_s *parent_type_descriptor, - const void *parent_structure_ptr); - -/* - * Generalized functions for dealing with the speciic type. - * May be directly invoked by applications. - */ -typedef struct asn_TYPE_operation_s { - asn_struct_free_f *free_struct; /* Free the structure */ - asn_struct_print_f *print_struct; /* Human readable output */ - asn_struct_compare_f *compare_struct; /* Compare two structures */ - ber_type_decoder_f *ber_decoder; /* Generic BER decoder */ - der_type_encoder_f *der_encoder; /* Canonical DER encoder */ - xer_type_decoder_f *xer_decoder; /* Generic XER decoder */ - xer_type_encoder_f *xer_encoder; /* [Canonical] XER encoder */ - oer_type_decoder_f *oer_decoder; /* Generic OER decoder */ - oer_type_encoder_f *oer_encoder; /* Canonical OER encoder */ - per_type_decoder_f *uper_decoder; /* Unaligned PER decoder */ - per_type_encoder_f *uper_encoder; /* Unaligned PER encoder */ - per_type_decoder_f *aper_decoder; /* Aligned PER decoder */ - per_type_encoder_f *aper_encoder; /* Aligned PER encoder */ - asn_random_fill_f *random_fill; /* Initialize with a random value */ - asn_outmost_tag_f *outmost_tag; /* */ -} asn_TYPE_operation_t; - -/* - * A constraints tuple specifying both the OER and PER constraints. - */ -typedef struct asn_encoding_constraints_s { - const struct asn_oer_constraints_s *oer_constraints; - const struct asn_per_constraints_s *per_constraints; - asn_constr_check_f *general_constraints; -} asn_encoding_constraints_t; - -/* - * The definitive description of the destination language's structure. - */ -typedef struct asn_TYPE_descriptor_s { - const char *name; /* A name of the ASN.1 type. "" in some cases. */ - const char *xml_tag; /* Name used in XML tag */ - - /* - * Generalized functions for dealing with the specific type. - * May be directly invoked by applications. - */ - asn_TYPE_operation_t *op; - - /*********************************************************************** - * Internally useful members. Not to be used by applications directly. * - **********************************************************************/ - - /* - * Tags that are expected to occur. - */ - const ber_tlv_tag_t *tags; /* Effective tags sequence for this type */ - unsigned tags_count; /* Number of tags which are expected */ - const ber_tlv_tag_t *all_tags; /* Every tag for BER/containment */ - unsigned all_tags_count; /* Number of tags */ - - /* OER, PER, and general constraints */ - asn_encoding_constraints_t encoding_constraints; - - /* - * An ASN.1 production type members (members of SEQUENCE, SET, CHOICE). - */ - struct asn_TYPE_member_s *elements; - unsigned elements_count; - - /* - * Additional information describing the type, used by appropriate - * functions above. - */ - const void *specifics; -} asn_TYPE_descriptor_t; - -/* - * This type describes an element of the constructed type, - * i.e. SEQUENCE, SET, CHOICE, etc. - */ - enum asn_TYPE_flags_e { - ATF_NOFLAGS, - ATF_POINTER = 0x01, /* Represented by the pointer */ - ATF_OPEN_TYPE = 0x02, /* Open Type */ - ATF_ANY_TYPE = 0x04 /* ANY type (deprecated!) */ - }; -typedef struct asn_TYPE_member_s { - enum asn_TYPE_flags_e flags; /* Element's presentation flags */ - unsigned optional; /* Following optional members, including current */ - unsigned memb_offset; /* Offset of the element */ - ber_tlv_tag_t tag; /* Outmost (most immediate) tag */ - int tag_mode; /* IMPLICIT/no/EXPLICIT tag at current level */ - asn_TYPE_descriptor_t *type; /* Member type descriptor */ - asn_type_selector_f *type_selector; /* IoS runtime type selector */ - asn_encoding_constraints_t encoding_constraints; - int (*default_value_cmp)(const void *sptr); /* Compare DEFAULT */ - int (*default_value_set)(void **sptr); /* Set DEFAULT */ - const char *name; /* ASN.1 identifier of the element */ -} asn_TYPE_member_t; - -/* - * BER tag to element number mapping. - */ -typedef struct asn_TYPE_tag2member_s { - ber_tlv_tag_t el_tag; /* Outmost tag of the member */ - unsigned el_no; /* Index of the associated member, base 0 */ - int toff_first; /* First occurence of the el_tag, relative */ - int toff_last; /* Last occurence of the el_tag, relative */ -} asn_TYPE_tag2member_t; - -/* - * This function prints out the contents of the target language's structure - * (struct_ptr) into the file pointer (stream) in human readable form. - * RETURN VALUES: - * 0: The structure is printed. - * -1: Problem dumping the structure. - * (See also xer_fprint() in xer_encoder.h) - */ -int asn_fprint(FILE *stream, /* Destination stream descriptor */ - const asn_TYPE_descriptor_t *td, /* ASN.1 type descriptor */ - const void *struct_ptr); /* Structure to be printed */ - -#ifdef __cplusplus -} -#endif - -#endif /* _CONSTR_TYPE_H_ */ diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/constraints.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/constraints.c deleted file mode 100644 index df3c6c1..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/constraints.c +++ /dev/null @@ -1,93 +0,0 @@ -#include -#include - -int -asn_generic_no_constraint(const asn_TYPE_descriptor_t *type_descriptor, - const void *struct_ptr, - asn_app_constraint_failed_f *cb, void *key) { - (void)type_descriptor; /* Unused argument */ - (void)struct_ptr; /* Unused argument */ - (void)cb; /* Unused argument */ - (void)key; /* Unused argument */ - - /* Nothing to check */ - return 0; -} - -int -asn_generic_unknown_constraint(const asn_TYPE_descriptor_t *type_descriptor, - const void *struct_ptr, - asn_app_constraint_failed_f *cb, void *key) { - (void)type_descriptor; /* Unused argument */ - (void)struct_ptr; /* Unused argument */ - (void)cb; /* Unused argument */ - (void)key; /* Unused argument */ - - /* Unknown how to check */ - return 0; -} - -struct errbufDesc { - const asn_TYPE_descriptor_t *failed_type; - const void *failed_struct_ptr; - char *errbuf; - size_t errlen; -}; - -static void -_asn_i_ctfailcb(void *key, const asn_TYPE_descriptor_t *td, const void *sptr, - const char *fmt, ...) { - struct errbufDesc *arg = key; - va_list ap; - ssize_t vlen; - ssize_t maxlen; - - arg->failed_type = td; - arg->failed_struct_ptr = sptr; - - maxlen = arg->errlen; - if(maxlen <= 0) - return; - - va_start(ap, fmt); - vlen = vsnprintf(arg->errbuf, maxlen, fmt, ap); - va_end(ap); - if(vlen >= maxlen) { - arg->errbuf[maxlen-1] = '\0'; /* Ensuring libc correctness */ - arg->errlen = maxlen - 1; /* Not counting termination */ - return; - } else if(vlen >= 0) { - arg->errbuf[vlen] = '\0'; /* Ensuring libc correctness */ - arg->errlen = vlen; /* Not counting termination */ - } else { - /* - * The libc on this system is broken. - */ - vlen = sizeof("") - 1; - maxlen--; - arg->errlen = vlen < maxlen ? vlen : maxlen; - memcpy(arg->errbuf, "", arg->errlen); - arg->errbuf[arg->errlen] = 0; - } - - return; -} - -int -asn_check_constraints(const asn_TYPE_descriptor_t *type_descriptor, - const void *struct_ptr, char *errbuf, size_t *errlen) { - struct errbufDesc arg; - int ret; - - arg.failed_type = 0; - arg.failed_struct_ptr = 0; - arg.errbuf = errbuf; - arg.errlen = errlen ? *errlen : 0; - - ret = type_descriptor->encoding_constraints.general_constraints( - type_descriptor, struct_ptr, _asn_i_ctfailcb, &arg); - if(ret == -1 && errlen) *errlen = arg.errlen; - - return ret; -} - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/constraints.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/constraints.h deleted file mode 100644 index 0bd86a9..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/constraints.h +++ /dev/null @@ -1,62 +0,0 @@ -/*- - * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef ASN1_CONSTRAINTS_VALIDATOR_H -#define ASN1_CONSTRAINTS_VALIDATOR_H - -#include /* Platform-dependent types */ - -#ifdef __cplusplus -extern "C" { -#endif - -struct asn_TYPE_descriptor_s; /* Forward declaration */ - -/* - * Validate the structure according to the ASN.1 constraints. - * If errbuf and errlen are given, they shall be pointing to the appropriate - * buffer space and its length before calling this function. Alternatively, - * they could be passed as NULL's. If constraints validation fails, - * errlen will contain the actual number of bytes taken from the errbuf - * to encode an error message (properly 0-terminated). - * - * RETURN VALUES: - * This function returns 0 in case all ASN.1 constraints are met - * and -1 if one or more constraints were failed. - */ -int asn_check_constraints( - const struct asn_TYPE_descriptor_s *type_descriptor, - const void *struct_ptr, /* Target language's structure */ - char *errbuf, /* Returned error description */ - size_t *errlen /* Length of the error description */ -); - - -/* - * Generic type for constraint checking callback, - * associated with every type descriptor. - */ -typedef int(asn_constr_check_f)( - const struct asn_TYPE_descriptor_s *type_descriptor, const void *struct_ptr, - asn_app_constraint_failed_f *optional_callback, /* Log the error */ - void *optional_app_key /* Opaque key passed to a callback */ -); - -/******************************* - * INTERNALLY USEFUL FUNCTIONS * - *******************************/ - -asn_constr_check_f asn_generic_no_constraint; /* No constraint whatsoever */ -asn_constr_check_f asn_generic_unknown_constraint; /* Not fully supported */ - -/* - * Invoke the callback with a complete error message. - */ -#define ASN__CTFAIL if(ctfailcb) ctfailcb - -#ifdef __cplusplus -} -#endif - -#endif /* ASN1_CONSTRAINTS_VALIDATOR_H */ diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/converter-example.mk b/e2sim/previous/e2apv1sim/e2sim/ASN1c/converter-example.mk deleted file mode 100644 index 0109476..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/converter-example.mk +++ /dev/null @@ -1,33 +0,0 @@ -include Makefile.am.libasncodec - -LIBS += -lm -CFLAGS += $(ASN_MODULE_CFLAGS) -DASN_PDU_COLLECTION -I. -ASN_LIBRARY ?= libasncodec.a -ASN_PROGRAM ?= converter-example -ASN_PROGRAM_SRCS ?= \ - converter-example.c\ - pdu_collection.c - -all: $(ASN_PROGRAM) - -$(ASN_PROGRAM): $(ASN_LIBRARY) $(ASN_PROGRAM_SRCS:.c=.o) - $(CC) $(CFLAGS) $(CPPFLAGS) -o $(ASN_PROGRAM) $(ASN_PROGRAM_SRCS:.c=.o) $(LDFLAGS) $(ASN_LIBRARY) $(LIBS) - -$(ASN_LIBRARY): $(ASN_MODULE_SRCS:.c=.o) - $(AR) rcs $@ $(ASN_MODULE_SRCS:.c=.o) - -.SUFFIXES: -.SUFFIXES: .c .o - -.c.o: - $(CC) $(CFLAGS) -o $@ -c $< - -clean: - rm -f $(ASN_PROGRAM) $(ASN_LIBRARY) - rm -f $(ASN_MODULE_SRCS:.c=.o) $(ASN_PROGRAM_SRCS:.c=.o) - -regen: regenerate-from-asn1-source - -regenerate-from-asn1-source: - asn1c -fcompound-names /home/rshacham/e2sm-kpm-v01.02.asn - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/der_encoder.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/der_encoder.c deleted file mode 100644 index 2c6a6f7..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/der_encoder.c +++ /dev/null @@ -1,194 +0,0 @@ -/*- - * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include - -static ssize_t der_write_TL(ber_tlv_tag_t tag, ber_tlv_len_t len, - asn_app_consume_bytes_f *cb, void *app_key, int constructed); - -/* - * The DER encoder of any type. - */ -asn_enc_rval_t -der_encode(const asn_TYPE_descriptor_t *type_descriptor, const void *struct_ptr, - asn_app_consume_bytes_f *consume_bytes, void *app_key) { - ASN_DEBUG("DER encoder invoked for %s", - type_descriptor->name); - - /* - * Invoke type-specific encoder. - */ - return type_descriptor->op->der_encoder( - type_descriptor, struct_ptr, /* Pointer to the destination structure */ - 0, 0, consume_bytes, app_key); -} - -/* - * Argument type and callback necessary for der_encode_to_buffer(). - */ -typedef struct enc_to_buf_arg { - void *buffer; - size_t left; -} enc_to_buf_arg; -static int encode_to_buffer_cb(const void *buffer, size_t size, void *key) { - enc_to_buf_arg *arg = (enc_to_buf_arg *)key; - - if(arg->left < size) - return -1; /* Data exceeds the available buffer size */ - - memcpy(arg->buffer, buffer, size); - arg->buffer = ((char *)arg->buffer) + size; - arg->left -= size; - - return 0; -} - -/* - * A variant of the der_encode() which encodes the data into the provided buffer - */ -asn_enc_rval_t -der_encode_to_buffer(const asn_TYPE_descriptor_t *type_descriptor, - const void *struct_ptr, void *buffer, size_t buffer_size) { - enc_to_buf_arg arg; - asn_enc_rval_t ec; - - arg.buffer = buffer; - arg.left = buffer_size; - - ec = type_descriptor->op->der_encoder(type_descriptor, - struct_ptr, /* Pointer to the destination structure */ - 0, 0, encode_to_buffer_cb, &arg); - if(ec.encoded != -1) { - assert(ec.encoded == (ssize_t)(buffer_size - arg.left)); - /* Return the encoded contents size */ - } - return ec; -} - - -/* - * Write out leading TL[v] sequence according to the type definition. - */ -ssize_t -der_write_tags(const asn_TYPE_descriptor_t *sd, size_t struct_length, - int tag_mode, int last_tag_form, - ber_tlv_tag_t tag, /* EXPLICIT or IMPLICIT tag */ - asn_app_consume_bytes_f *cb, void *app_key) { -#define ASN1_DER_MAX_TAGS_COUNT 4 - ber_tlv_tag_t - tags_buf_scratch[ASN1_DER_MAX_TAGS_COUNT * sizeof(ber_tlv_tag_t)]; - ssize_t lens[ASN1_DER_MAX_TAGS_COUNT * sizeof(ssize_t)]; - const ber_tlv_tag_t *tags; /* Copy of tags stream */ - int tags_count; /* Number of tags */ - size_t overall_length; - int i; - - ASN_DEBUG("Writing tags (%s, tm=%d, tc=%d, tag=%s, mtc=%d)", - sd->name, tag_mode, sd->tags_count, - ber_tlv_tag_string(tag), - tag_mode - ?(sd->tags_count+1 - -((tag_mode == -1) && sd->tags_count)) - :sd->tags_count - ); - - if(sd->tags_count + 1 > ASN1_DER_MAX_TAGS_COUNT) { - ASN_DEBUG("System limit %d on tags count", ASN1_DER_MAX_TAGS_COUNT); - return -1; - } - - if(tag_mode) { - /* - * Instead of doing shaman dance like we do in ber_check_tags(), - * allocate a small array on the stack - * and initialize it appropriately. - */ - int stag_offset; - ber_tlv_tag_t *tags_buf = tags_buf_scratch; - tags_count = sd->tags_count - + 1 /* EXPLICIT or IMPLICIT tag is given */ - - ((tag_mode == -1) && sd->tags_count); - /* Copy tags over */ - tags_buf[0] = tag; - stag_offset = -1 + ((tag_mode == -1) && sd->tags_count); - for(i = 1; i < tags_count; i++) - tags_buf[i] = sd->tags[i + stag_offset]; - tags = tags_buf; - } else { - tags = sd->tags; - tags_count = sd->tags_count; - } - - /* No tags to write */ - if(tags_count == 0) - return 0; - - /* - * Array of tags is initialized. - * Now, compute the size of the TLV pairs, from right to left. - */ - overall_length = struct_length; - for(i = tags_count - 1; i >= 0; --i) { - lens[i] = der_write_TL(tags[i], overall_length, 0, 0, 0); - if(lens[i] == -1) return -1; - overall_length += lens[i]; - lens[i] = overall_length - lens[i]; - } - - if(!cb) return overall_length - struct_length; - - ASN_DEBUG("Encoding %s TL sequence (%d elements)", sd->name, - tags_count); - - /* - * Encode the TL sequence for real. - */ - for(i = 0; i < tags_count; i++) { - ssize_t len; - int _constr; - - /* Check if this tag happens to be constructed */ - _constr = (last_tag_form || i < (tags_count - 1)); - - len = der_write_TL(tags[i], lens[i], cb, app_key, _constr); - if(len == -1) return -1; - } - - return overall_length - struct_length; -} - -static ssize_t -der_write_TL(ber_tlv_tag_t tag, ber_tlv_len_t len, - asn_app_consume_bytes_f *cb, void *app_key, - int constructed) { - uint8_t buf[32]; - size_t size = 0; - int buf_size = cb?sizeof(buf):0; - ssize_t tmp; - - /* Serialize tag (T from TLV) into possibly zero-length buffer */ - tmp = ber_tlv_tag_serialize(tag, buf, buf_size); - if(tmp == -1 || tmp > (ssize_t)sizeof(buf)) return -1; - size += tmp; - - /* Serialize length (L from TLV) into possibly zero-length buffer */ - tmp = der_tlv_length_serialize(len, buf+size, buf_size?buf_size-size:0); - if(tmp == -1) return -1; - size += tmp; - - if(size > sizeof(buf)) - return -1; - - /* - * If callback is specified, invoke it, and check its return value. - */ - if(cb) { - if(constructed) *buf |= 0x20; - if(cb(buf, size, app_key) < 0) - return -1; - } - - return size; -} diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/der_encoder.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/der_encoder.h deleted file mode 100644 index e93944e..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/der_encoder.h +++ /dev/null @@ -1,68 +0,0 @@ -/*- - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef _DER_ENCODER_H_ -#define _DER_ENCODER_H_ - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -struct asn_TYPE_descriptor_s; /* Forward declaration */ - -/* - * The DER encoder of any type. May be invoked by the application. - * Produces DER- and BER-compliant encoding. (DER is a subset of BER). - * - * NOTE: Use the ber_decode() function (ber_decoder.h) to decode data - * produced by der_encode(). - */ -asn_enc_rval_t der_encode(const struct asn_TYPE_descriptor_s *type_descriptor, - const void *struct_ptr, /* Structure to be encoded */ - asn_app_consume_bytes_f *consume_bytes_cb, - void *app_key /* Arbitrary callback argument */ -); - -/* A variant of der_encode() which encodes data into the pre-allocated buffer */ -asn_enc_rval_t der_encode_to_buffer( - const struct asn_TYPE_descriptor_s *type_descriptor, - const void *struct_ptr, /* Structure to be encoded */ - void *buffer, /* Pre-allocated buffer */ - size_t buffer_size /* Initial buffer size (maximum) */ -); - -/* - * Type of the generic DER encoder. - */ -typedef asn_enc_rval_t(der_type_encoder_f)( - const struct asn_TYPE_descriptor_s *type_descriptor, - const void *struct_ptr, /* Structure to be encoded */ - int tag_mode, /* {-1,0,1}: IMPLICIT, no, EXPLICIT */ - ber_tlv_tag_t tag, asn_app_consume_bytes_f *consume_bytes_cb, /* Callback */ - void *app_key /* Arbitrary callback argument */ -); - - -/******************************* - * INTERNALLY USEFUL FUNCTIONS * - *******************************/ - -/* - * Write out leading TL[v] sequence according to the type definition. - */ -ssize_t der_write_tags(const struct asn_TYPE_descriptor_s *type_descriptor, - size_t struct_length, - int tag_mode, /* {-1,0,1}: IMPLICIT, no, EXPLICIT */ - int last_tag_form, /* {0,!0}: prim, constructed */ - ber_tlv_tag_t tag, - asn_app_consume_bytes_f *consume_bytes_cb, - void *app_key); - -#ifdef __cplusplus -} -#endif - -#endif /* _DER_ENCODER_H_ */ diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/oer_decoder.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/oer_decoder.c deleted file mode 100644 index 0701738..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/oer_decoder.c +++ /dev/null @@ -1,152 +0,0 @@ -/* - * Copyright (c) 2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include - -/* - * The OER decoder of any type. - */ -asn_dec_rval_t -oer_decode(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *type_descriptor, void **struct_ptr, - const void *ptr, size_t size) { - asn_codec_ctx_t s_codec_ctx; - - /* - * Stack checker requires that the codec context - * must be allocated on the stack. - */ - if(opt_codec_ctx) { - if(opt_codec_ctx->max_stack_size) { - s_codec_ctx = *opt_codec_ctx; - opt_codec_ctx = &s_codec_ctx; - } - } else { - /* If context is not given, be security-conscious anyway */ - memset(&s_codec_ctx, 0, sizeof(s_codec_ctx)); - s_codec_ctx.max_stack_size = ASN__DEFAULT_STACK_MAX; - opt_codec_ctx = &s_codec_ctx; - } - - /* - * Invoke type-specific decoder. - */ - return type_descriptor->op->oer_decoder(opt_codec_ctx, type_descriptor, 0, - struct_ptr, /* Pointer to the destination structure */ - ptr, size /* Buffer and its size */ - ); -} - -/* - * Open Type is encoded as a length (#8.6) followed by that number of bytes. - * Since we're just skipping, reading the length would be enough. - */ -ssize_t -oer_open_type_skip(const void *bufptr, size_t size) { - size_t len = 0; - return oer_fetch_length(bufptr, size, &len); -} - -/* - * Read the Open Type (X.696 (08/2015), #30). - * RETURN VALUES: - * 0: More data expected than bufptr contains. - * -1: Fatal error deciphering length. - * >0: Number of bytes used from bufptr. - */ -ssize_t -oer_open_type_get(const asn_codec_ctx_t *opt_codec_ctx, - const struct asn_TYPE_descriptor_s *td, - const asn_oer_constraints_t *constraints, void **struct_ptr, - const void *bufptr, size_t size) { - asn_dec_rval_t dr; - size_t container_len = 0; - ssize_t len_len; - enum asn_struct_free_method dispose_method = - (*struct_ptr) ? ASFM_FREE_UNDERLYING_AND_RESET : ASFM_FREE_EVERYTHING; - - /* Get the size of a length determinant */ - len_len = oer_fetch_length(bufptr, size, &container_len); - if(len_len <= 0) { - return len_len; /* Error or more data expected */ - } - - /* - * len_len can't be bigger than size, but size without len_len - * should be bigger or equal to container length - */ - if(size - len_len < container_len) { - /* More data is expected */ - return 0; - } - - dr = td->op->oer_decoder(opt_codec_ctx, td, constraints, struct_ptr, - (const uint8_t *)bufptr + len_len, container_len); - if(dr.code == RC_OK) { - return len_len + container_len; - } else { - /* Even if RC_WMORE, we can't get more data into a closed container. */ - td->op->free_struct(td, *struct_ptr, dispose_method); - *struct_ptr = NULL; - return -1; - } -} - - -asn_dec_rval_t -oer_decode_primitive(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_oer_constraints_t *constraints, void **sptr, - const void *ptr, size_t size) { - ASN__PRIMITIVE_TYPE_t *st = (ASN__PRIMITIVE_TYPE_t *)*sptr; - asn_dec_rval_t rval = {RC_OK, 0}; - size_t expected_length = 0; - ssize_t len_len; - - (void)td; - (void)opt_codec_ctx; - (void)constraints; - - if(!st) { - st = (ASN__PRIMITIVE_TYPE_t *)(*sptr = CALLOC( - 1, sizeof(ASN__PRIMITIVE_TYPE_t))); - if(!st) ASN__DECODE_FAILED; - } - - - /* - * X.696 (08/2015) #27.2 - * Encode length determinant as _number of octets_, but only - * if upper bound is not equal to lower bound. - */ - len_len = oer_fetch_length(ptr, size, &expected_length); - if(len_len > 0) { - rval.consumed = len_len; - ptr = (const char *)ptr + len_len; - size -= len_len; - } else if(len_len == 0) { - ASN__DECODE_STARVED; - } else if(len_len < 0) { - ASN__DECODE_FAILED; - } - - if(size < expected_length) { - ASN__DECODE_STARVED; - } else { - uint8_t *buf = MALLOC(expected_length + 1); - if(buf == NULL) { - ASN__DECODE_FAILED; - } else { - memcpy(buf, ptr, expected_length); - buf[expected_length] = '\0'; - } - FREEMEM(st->buf); - st->buf = buf; - st->size = expected_length; - - rval.consumed += expected_length; - return rval; - } -} diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/oer_decoder.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/oer_decoder.h deleted file mode 100644 index 40992e9..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/oer_decoder.h +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Copyright (c) 2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef OER_DECODER_H -#define OER_DECODER_H - -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -struct asn_TYPE_descriptor_s; /* Forward declaration */ -struct asn_codec_ctx_s; /* Forward declaration */ - -/* - * The Octet Encoding Rules (OER, X.696 08/2015) decoder for any given type. - * This function may be invoked directly by the application. - * Parses CANONICAL-OER and BASIC-OER. - */ -asn_dec_rval_t oer_decode(const struct asn_codec_ctx_s *opt_codec_ctx, - const struct asn_TYPE_descriptor_s *type_descriptor, - void **struct_ptr, /* Pointer to a target structure's pointer */ - const void *buffer, /* Data to be decoded */ - size_t size /* Size of that buffer */ - ); - -/* - * Type of generic function which decodes the byte stream into the structure. - */ -typedef asn_dec_rval_t(oer_type_decoder_f)( - const struct asn_codec_ctx_s *opt_codec_ctx, - const struct asn_TYPE_descriptor_s *type_descriptor, - const asn_oer_constraints_t *constraints, - void **struct_ptr, - const void *buf_ptr, - size_t size); - -/* - * Swallow the Open Type (X.696 (08/2015), #30) into /dev/null. - * RETURN VALUES: - * -1: Fatal error deciphering length. - * 0: More data expected than bufptr contains. - * >0: Number of bytes used from bufptr. - */ -ssize_t oer_open_type_skip(const void *bufptr, size_t size); - -/* - * Read the Open Type (X.696 (08/2015), #30). - * RETURN VALUES: - * 0: More data expected than bufptr contains. - * -1: Fatal error deciphering length. - * >0: Number of bytes used from bufptr. - */ -ssize_t oer_open_type_get(const asn_codec_ctx_t *opt_codec_ctx, - const struct asn_TYPE_descriptor_s *td, - const asn_oer_constraints_t *constraints, - void **struct_ptr, const void *bufptr, size_t size); - -/* - * Length-prefixed buffer decoding for primitive types. - */ -oer_type_decoder_f oer_decode_primitive; - - -#ifdef __cplusplus -} -#endif - -#endif /* OER_DECODER_H */ diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/oer_encoder.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/oer_encoder.c deleted file mode 100644 index a284cc2..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/oer_encoder.c +++ /dev/null @@ -1,141 +0,0 @@ -/* - * Copyright (c) 2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include - -/* - * The OER encoder of any type. - */ -asn_enc_rval_t -oer_encode(const asn_TYPE_descriptor_t *type_descriptor, const void *struct_ptr, - asn_app_consume_bytes_f *consume_bytes, void *app_key) { - ASN_DEBUG("OER encoder invoked for %s", type_descriptor->name); - - /* - * Invoke type-specific encoder. - */ - return type_descriptor->op->oer_encoder( - type_descriptor, 0, - struct_ptr, /* Pointer to the destination structure */ - consume_bytes, app_key); -} - -/* - * Argument type and callback necessary for oer_encode_to_buffer(). - */ -typedef struct enc_to_buf_arg { - void *buffer; - size_t left; -} enc_to_buf_arg; -static int -encode_to_buffer_cb(const void *buffer, size_t size, void *key) { - enc_to_buf_arg *arg = (enc_to_buf_arg *)key; - - if(arg->left < size) return -1; /* Data exceeds the available buffer size */ - - memcpy(arg->buffer, buffer, size); - arg->buffer = ((char *)arg->buffer) + size; - arg->left -= size; - - return 0; -} - -/* - * A variant of the oer_encode() which encodes the data into the provided buffer - */ -asn_enc_rval_t -oer_encode_to_buffer(const asn_TYPE_descriptor_t *type_descriptor, - const asn_oer_constraints_t *constraints, - const void *struct_ptr, /* Structure to be encoded */ - void *buffer, /* Pre-allocated buffer */ - size_t buffer_size /* Initial buffer size (maximum) */ -) { - enc_to_buf_arg arg; - asn_enc_rval_t ec; - - arg.buffer = buffer; - arg.left = buffer_size; - - if(type_descriptor->op->oer_encoder == NULL) { - ec.encoded = -1; - ec.failed_type = type_descriptor; - ec.structure_ptr = struct_ptr; - ASN_DEBUG("OER encoder is not defined for %s", - type_descriptor->name); - } else { - ec = type_descriptor->op->oer_encoder( - type_descriptor, constraints, - struct_ptr, /* Pointer to the destination structure */ - encode_to_buffer_cb, &arg); - if(ec.encoded != -1) { - assert(ec.encoded == (ssize_t)(buffer_size - arg.left)); - /* Return the encoded contents size */ - } - } - return ec; -} - -asn_enc_rval_t -oer_encode_primitive(const asn_TYPE_descriptor_t *td, - const asn_oer_constraints_t *constraints, const void *sptr, - asn_app_consume_bytes_f *cb, void *app_key) { - const ASN__PRIMITIVE_TYPE_t *st = (const ASN__PRIMITIVE_TYPE_t *)sptr; - asn_enc_rval_t er = {0, 0, 0}; - ssize_t ret; - - (void)constraints; - - if(!st) ASN__ENCODE_FAILED; - - ASN_DEBUG("Encoding %s (%" ASN_PRI_SIZE " bytes)", td ? td->name : "", st->size); - - /* - * X.696 (08/2015) #27.2 - */ - ret = oer_serialize_length(st->size, cb, app_key); - if(ret < 0) { - ASN__ENCODE_FAILED; - } - er.encoded += ret; - - er.encoded += st->size; - if(cb(st->buf, st->size, app_key) < 0) { - ASN__ENCODE_FAILED; - } else { - ASN__ENCODED_OK(er); - } -} - -static int -oer__count_bytes(const void *buffer, size_t size, void *bytes_ptr) { - size_t *bytes = bytes_ptr; - (void)buffer; - *bytes += size; - return 0; -} - -ssize_t -oer_open_type_put(const asn_TYPE_descriptor_t *td, - const asn_oer_constraints_t *constraints, const void *sptr, - asn_app_consume_bytes_f *cb, void *app_key) { - size_t serialized_byte_count = 0; - asn_enc_rval_t er = {0,0,0}; - ssize_t len_len; - - er = td->op->oer_encoder(td, constraints, sptr, oer__count_bytes, - &serialized_byte_count); - if(er.encoded < 0) return -1; - assert(serialized_byte_count == (size_t)er.encoded); - - len_len = oer_serialize_length(serialized_byte_count, cb, app_key); - if(len_len == -1) return -1; - - er = td->op->oer_encoder(td, constraints, sptr, cb, app_key); - if(er.encoded < 0) return -1; - assert(serialized_byte_count == (size_t)er.encoded); - - return len_len + er.encoded; -} - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/oer_encoder.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/oer_encoder.h deleted file mode 100644 index 6a7b681..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/oer_encoder.h +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Copyright (c) 2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef OER_ENCODER_H -#define OER_ENCODER_H - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -struct asn_TYPE_descriptor_s; /* Forward declaration */ - -/* - * The Octet Encoding Rules (OER, X.696 08/2015) encoder for any type. - * This function may be invoked directly by the application. - * Produces CANONICAL-OER output compatible with CANONICAL-OER - * and BASIC-OER decoders. - */ -asn_enc_rval_t oer_encode(const struct asn_TYPE_descriptor_s *type_descriptor, - const void *struct_ptr, /* Structure to be encoded */ - asn_app_consume_bytes_f *consume_bytes_cb, - void *app_key /* Arbitrary callback argument */ -); - -/* A variant of oer_encode() which encodes data into the pre-allocated buffer */ -asn_enc_rval_t oer_encode_to_buffer( - const struct asn_TYPE_descriptor_s *type_descriptor, - const asn_oer_constraints_t *constraints, - const void *struct_ptr, /* Structure to be encoded */ - void *buffer, /* Pre-allocated buffer */ - size_t buffer_size /* Initial buffer size (maximum) */ -); - -/* - * Type of the generic OER encoder. - */ -typedef asn_enc_rval_t(oer_type_encoder_f)( - const struct asn_TYPE_descriptor_s *type_descriptor, - const asn_oer_constraints_t *constraints, - const void *struct_ptr, /* Structure to be encoded */ - asn_app_consume_bytes_f *consume_bytes_cb, /* Callback */ - void *app_key /* Arbitrary callback argument */ -); - -/* - * Write out the Open Type (X.696 (08/2015), #30). - * RETURN VALUES: - * -1: Fatal error encoding the type. - * >0: Number of bytes serialized. - */ -ssize_t oer_open_type_put(const struct asn_TYPE_descriptor_s *td, - const asn_oer_constraints_t *constraints, - const void *struct_ptr, - asn_app_consume_bytes_f *consume_bytes_cb, - void *app_key); - - -/* - * Length-prefixed buffer encoding for primitive types. - */ -oer_type_encoder_f oer_encode_primitive; - -#ifdef __cplusplus -} -#endif - -#endif /* OER_ENCODER_H */ diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/oer_support.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/oer_support.c deleted file mode 100644 index b15a3bc..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/oer_support.c +++ /dev/null @@ -1,122 +0,0 @@ -/* - * Copyright (c) 2017 Lev Walkin . - * All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include - -#include - -/* - * Fetch the length determinant (X.696 08/2015, #8.6) into *len_r. - * RETURN VALUES: - * 0: More data expected than bufptr contains. - * -1: Fatal error deciphering length. - * >0: Number of bytes used from bufptr. - */ -ssize_t -oer_fetch_length(const void *bufptr, size_t size, size_t *len_r) { - uint8_t first_byte; - size_t len_len; /* Length of the length determinant */ - const uint8_t *b; - const uint8_t *bend; - size_t len; - - if(size == 0) { - *len_r = 0; - return 0; - } - - first_byte = *(const uint8_t *)bufptr; - if((first_byte & 0x80) == 0) { /* Short form */ - *len_r = first_byte; /* 0..127 */ - return 1; - } - - len_len = (first_byte & 0x7f); - if((1 + len_len) > size) { - *len_r = 0; - return 0; - } - - b = (const uint8_t *)bufptr + 1; - bend = b + len_len; - - for(; b < bend && *b == 0; b++) { - /* Skip the leading 0-bytes */ - } - - if((bend - b) > (ssize_t)sizeof(size_t)) { - /* Length is not representable by the native size_t type */ - *len_r = 0; - return -1; - } - - for(len = 0; b < bend; b++) { - len = (len << 8) + *b; - } - - if(len > RSIZE_MAX) { /* A bit of C11 validation */ - *len_r = 0; - return -1; - } - - *len_r = len; - assert(len_len + 1 == (size_t)(bend - (const uint8_t *)bufptr)); - return len_len + 1; -} - - -/* - * Serialize OER length. Returns the number of bytes serialized - * or -1 if a given callback returned with negative result. - */ -ssize_t -oer_serialize_length(size_t length, asn_app_consume_bytes_f *cb, - void *app_key) { - uint8_t scratch[1 + sizeof(length)]; - uint8_t *sp = scratch; - int littleEndian = 1; /* Run-time detection */ - const uint8_t *pstart; - const uint8_t *pend; - const uint8_t *p; - int add; - - if(length <= 127) { - uint8_t b = length; - if(cb(&b, 1, app_key) < 0) { - return -1; - } - return 1; - } - - if(*(char *)&littleEndian) { - pstart = (const uint8_t *)&length + sizeof(length) - 1; - pend = (const uint8_t *)&length; - add = -1; - } else { - pstart = (const uint8_t *)&length; - pend = pstart + sizeof(length); - add = 1; - } - - for(p = pstart; p != pend; p += add) { - /* Skip leading zeros. */ - if(*p) break; - } - - for(sp = scratch + 1; ; p += add) { - *sp++ = *p; - if(p == pend) break; - } - assert((sp - scratch) - 1 <= 0x7f); - scratch[0] = 0x80 + ((sp - scratch) - 1); - - if(cb(scratch, sp - scratch, app_key) < 0) { - return -1; - } - - return sp - scratch; -} - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/oer_support.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/oer_support.h deleted file mode 100644 index dbc9b5f..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/oer_support.h +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright (c) 2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef OER_SUPPORT_H -#define OER_SUPPORT_H - -#include /* Platform-specific types */ - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * Pre-computed OER constraints. - */ -typedef struct asn_oer_constraint_number_s { - unsigned width; /* ±8,4,2,1 fixed bytes */ - unsigned positive; /* 1 for unsigned number, 0 for signed */ -} asn_oer_constraint_number_t; -typedef struct asn_oer_constraints_s { - asn_oer_constraint_number_t value; - ssize_t size; /* -1 (no constraint) or >= 0 */ -} asn_oer_constraints_t; - - -/* - * Fetch the length determinant (X.696 (08/2015), #8.6) into *len_r. - * RETURN VALUES: - * 0: More data expected than bufptr contains. - * -1: Fatal error deciphering length. - * >0: Number of bytes used from bufptr. - */ -ssize_t oer_fetch_length(const void *bufptr, size_t size, size_t *len_r); - -/* - * Serialize OER length. Returns the number of bytes serialized - * or -1 if a given callback returned with negative result. - */ -ssize_t oer_serialize_length(size_t length, asn_app_consume_bytes_f *cb, void *app_key); - - -#ifdef __cplusplus -} -#endif - -#endif /* OER_SUPPORT_H */ diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/pdu_collection.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/pdu_collection.c deleted file mode 100644 index 0d559a4..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/pdu_collection.c +++ /dev/null @@ -1,25 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - */ - -struct asn_TYPE_descriptor_s; /* Forward declaration */ - -extern struct asn_TYPE_descriptor_s asn_DEF_E2SM_KPM_EventTriggerDefinition; -extern struct asn_TYPE_descriptor_s asn_DEF_E2SM_KPM_ActionDefinition; -extern struct asn_TYPE_descriptor_s asn_DEF_E2SM_KPM_IndicationHeader; -extern struct asn_TYPE_descriptor_s asn_DEF_E2SM_KPM_IndicationMessage; -extern struct asn_TYPE_descriptor_s asn_DEF_E2SM_KPM_RANfunction_Description; -extern struct asn_TYPE_descriptor_s asn_DEF_RANcallProcess_ID_string; - - -struct asn_TYPE_descriptor_s *asn_pdu_collection[] = { - /* From module E2SM-KPM-IEs in /home/rshacham/e2sm-kpm-v01.02.asn */ - &asn_DEF_E2SM_KPM_EventTriggerDefinition, - &asn_DEF_E2SM_KPM_ActionDefinition, - &asn_DEF_E2SM_KPM_IndicationHeader, - &asn_DEF_E2SM_KPM_IndicationMessage, - &asn_DEF_E2SM_KPM_RANfunction_Description, - &asn_DEF_RANcallProcess_ID_string, - 0 -}; - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/per_decoder.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/per_decoder.c deleted file mode 100644 index 8a3e39d..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/per_decoder.c +++ /dev/null @@ -1,185 +0,0 @@ -#include -#include -#include - -/* - * Decode a "Production of a complete encoding", X.691#10.1. - * The complete encoding contains at least one byte, and is an integral - * multiple of 8 bytes. - */ -asn_dec_rval_t -uper_decode_complete(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **sptr, - const void *buffer, size_t size) { - asn_dec_rval_t rval; - - rval = uper_decode(opt_codec_ctx, td, sptr, buffer, size, 0, 0); - if(rval.consumed) { - /* - * We've always given 8-aligned data, - * so convert bits to integral bytes. - */ - rval.consumed += 7; - rval.consumed >>= 3; - } else if(rval.code == RC_OK) { - if(size) { - if(((const uint8_t *)buffer)[0] == 0) { - rval.consumed = 1; /* 1 byte */ - } else { - ASN_DEBUG("Expecting single zeroed byte"); - rval.code = RC_FAIL; - } - } else { - /* Must contain at least 8 bits. */ - rval.code = RC_WMORE; - } - } - - return rval; -} - -asn_dec_rval_t -uper_decode(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **sptr, const void *buffer, - size_t size, int skip_bits, int unused_bits) { - asn_codec_ctx_t s_codec_ctx; - asn_dec_rval_t rval; - asn_per_data_t pd; - - if(skip_bits < 0 || skip_bits > 7 - || unused_bits < 0 || unused_bits > 7 - || (unused_bits > 0 && !size)) - ASN__DECODE_FAILED; - - /* - * Stack checker requires that the codec context - * must be allocated on the stack. - */ - if(opt_codec_ctx) { - if(opt_codec_ctx->max_stack_size) { - s_codec_ctx = *opt_codec_ctx; - opt_codec_ctx = &s_codec_ctx; - } - } else { - /* If context is not given, be security-conscious anyway */ - memset(&s_codec_ctx, 0, sizeof(s_codec_ctx)); - s_codec_ctx.max_stack_size = ASN__DEFAULT_STACK_MAX; - opt_codec_ctx = &s_codec_ctx; - } - - /* Fill in the position indicator */ - memset(&pd, 0, sizeof(pd)); - pd.buffer = (const uint8_t *)buffer; - pd.nboff = skip_bits; - pd.nbits = 8 * size - unused_bits; /* 8 is CHAR_BIT from */ - if(pd.nboff > pd.nbits) - ASN__DECODE_FAILED; - - /* - * Invoke type-specific decoder. - */ - if(!td->op->uper_decoder) - ASN__DECODE_FAILED; /* PER is not compiled in */ - rval = td->op->uper_decoder(opt_codec_ctx, td, 0, sptr, &pd); - if(rval.code == RC_OK) { - /* Return the number of consumed bits */ - rval.consumed = ((pd.buffer - (const uint8_t *)buffer) << 3) - + pd.nboff - skip_bits; - ASN_DEBUG("PER decoding consumed %ld, counted %ld", - (long)rval.consumed, (long)pd.moved); - assert(rval.consumed == pd.moved); - } else { - /* PER codec is not a restartable */ - rval.consumed = 0; - } - return rval; -} - -asn_dec_rval_t -aper_decode_complete(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **sptr, - const void *buffer, size_t size) { - asn_dec_rval_t rval; - - rval = aper_decode(opt_codec_ctx, td, sptr, buffer, size, 0, 0); - if(rval.consumed) { - /* - * We've always given 8-aligned data, - * so convert bits to integral bytes. - */ - rval.consumed += 7; - rval.consumed >>= 3; - } else if(rval.code == RC_OK) { - if(size) { - if(((const uint8_t *)buffer)[0] == 0) { - rval.consumed = 1; /* 1 byte */ - } else { - ASN_DEBUG("Expecting single zeroed byte"); - rval.code = RC_FAIL; - } - } else { - /* Must contain at least 8 bits. */ - rval.code = RC_WMORE; - } - } - - return rval; -} - -asn_dec_rval_t -aper_decode(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **sptr, const void *buffer, - size_t size, int skip_bits, int unused_bits) { - asn_codec_ctx_t s_codec_ctx; - asn_dec_rval_t rval; - asn_per_data_t pd; - - if(skip_bits < 0 || skip_bits > 7 - || unused_bits < 0 || unused_bits > 7 - || (unused_bits > 0 && !size)) - ASN__DECODE_FAILED; - - /* - * Stack checker requires that the codec context - * must be allocated on the stack. - */ - if(opt_codec_ctx) { - if(opt_codec_ctx->max_stack_size) { - s_codec_ctx = *opt_codec_ctx; - opt_codec_ctx = &s_codec_ctx; - } - } else { - /* If context is not given, be security-conscious anyway */ - memset(&s_codec_ctx, 0, sizeof(s_codec_ctx)); - s_codec_ctx.max_stack_size = ASN__DEFAULT_STACK_MAX; - opt_codec_ctx = &s_codec_ctx; - } - - /* Fill in the position indicator */ - memset(&pd, 0, sizeof(pd)); - pd.buffer = (const uint8_t *)buffer; - pd.nboff = skip_bits; - pd.nbits = 8 * size - unused_bits; /* 8 is CHAR_BIT from */ - if(pd.nboff > pd.nbits) - ASN__DECODE_FAILED; - - /* - * Invoke type-specific decoder. - */ - if(!td->op->aper_decoder) - ASN__DECODE_FAILED; /* PER is not compiled in */ - rval = td->op->aper_decoder(opt_codec_ctx, td, 0, sptr, &pd); - if(rval.code == RC_OK) { - /* Return the number of consumed bits */ - rval.consumed = ((pd.buffer - (const uint8_t *)buffer) << 3) - + pd.nboff - skip_bits; - ASN_DEBUG("PER decoding consumed %zu, counted %zu", - rval.consumed, pd.moved); - assert(rval.consumed == pd.moved); - } else { - /* PER codec is not a restartable */ - rval.consumed = 0; - } - return rval; -} - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/per_decoder.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/per_decoder.h deleted file mode 100644 index eea474a..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/per_decoder.h +++ /dev/null @@ -1,82 +0,0 @@ -/*- - * Copyright (c) 2005-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef _PER_DECODER_H_ -#define _PER_DECODER_H_ - -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -struct asn_TYPE_descriptor_s; /* Forward declaration */ - -/* - * Unaligned PER decoder of a "complete encoding" as per X.691 (08/2015) #11.1. - * On success, this call always returns (.consumed >= 1), as per #11.1.3. - */ -asn_dec_rval_t uper_decode_complete( - const struct asn_codec_ctx_s *opt_codec_ctx, - const struct asn_TYPE_descriptor_s *type_descriptor, /* Type to decode */ - void **struct_ptr, /* Pointer to a target structure's pointer */ - const void *buffer, /* Data to be decoded */ - size_t size /* Size of data buffer */ -); - -/* - * Unaligned PER decoder of any ASN.1 type. May be invoked by the application. - * WARNING: This call returns the number of BITS read from the stream. Beware. - */ -asn_dec_rval_t uper_decode( - const struct asn_codec_ctx_s *opt_codec_ctx, - const struct asn_TYPE_descriptor_s *type_descriptor, /* Type to decode */ - void **struct_ptr, /* Pointer to a target structure's pointer */ - const void *buffer, /* Data to be decoded */ - size_t size, /* Size of the input data buffer, in bytes */ - int skip_bits, /* Number of unused leading bits, 0..7 */ - int unused_bits /* Number of unused tailing bits, 0..7 */ -); - -/* - * Aligned PER decoder of a "complete encoding" as per X.691#10.1. - * On success, this call always returns (.consumed >= 1), in BITS, as per X.691#10.1.3. - */ -asn_dec_rval_t aper_decode_complete( - const struct asn_codec_ctx_s *opt_codec_ctx, - const struct asn_TYPE_descriptor_s *type_descriptor, /* Type to decode */ - void **struct_ptr, /* Pointer to a target structure's pointer */ - const void *buffer, /* Data to be decoded */ - size_t size /* Size of data buffer */ - ); - -/* - * Aligned PER decoder of any ASN.1 type. May be invoked by the application. - * WARNING: This call returns the number of BITS read from the stream. Beware. - */ -asn_dec_rval_t aper_decode( - const struct asn_codec_ctx_s *opt_codec_ctx, - const struct asn_TYPE_descriptor_s *type_descriptor, /* Type to decode */ - void **struct_ptr, /* Pointer to a target structure's pointer */ - const void *buffer, /* Data to be decoded */ - size_t size, /* Size of data buffer */ - int skip_bits, /* Number of unused leading bits, 0..7 */ - int unused_bits /* Number of unused tailing bits, 0..7 */ - ); - -/* - * Type of the type-specific PER decoder function. - */ -typedef asn_dec_rval_t(per_type_decoder_f)( - const asn_codec_ctx_t *opt_codec_ctx, - const struct asn_TYPE_descriptor_s *type_descriptor, - const asn_per_constraints_t *constraints, void **struct_ptr, - asn_per_data_t *per_data); - -#ifdef __cplusplus -} -#endif - -#endif /* _PER_DECODER_H_ */ diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/per_encoder.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/per_encoder.c deleted file mode 100644 index a35e1f0..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/per_encoder.c +++ /dev/null @@ -1,265 +0,0 @@ -#include -#include -#include - -static int _uper_encode_flush_outp(asn_per_outp_t *po); - -static int -ignore_output(const void *data, size_t size, void *app_key) { - (void)data; - (void)size; - (void)app_key; - return 0; -} - -asn_enc_rval_t -uper_encode(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, const void *sptr, - asn_app_consume_bytes_f *cb, void *app_key) { - asn_per_outp_t po; - asn_enc_rval_t er = {0,0,0}; - - /* - * Invoke type-specific encoder. - */ - if(!td || !td->op->uper_encoder) - ASN__ENCODE_FAILED; /* PER is not compiled in */ - - po.buffer = po.tmpspace; - po.nboff = 0; - po.nbits = 8 * sizeof(po.tmpspace); - po.output = cb ? cb : ignore_output; - po.op_key = app_key; - po.flushed_bytes = 0; - - er = td->op->uper_encoder(td, constraints, sptr, &po); - if(er.encoded != -1) { - size_t bits_to_flush; - - bits_to_flush = ((po.buffer - po.tmpspace) << 3) + po.nboff; - - /* Set number of bits encoded to a firm value */ - er.encoded = (po.flushed_bytes << 3) + bits_to_flush; - - if(_uper_encode_flush_outp(&po)) ASN__ENCODE_FAILED; - } - - return er; -} - -/* - * Argument type and callback necessary for uper_encode_to_buffer(). - */ -typedef struct enc_to_buf_arg { - void *buffer; - size_t left; -} enc_to_buf_arg; -static int encode_to_buffer_cb(const void *buffer, size_t size, void *key) { - enc_to_buf_arg *arg = (enc_to_buf_arg *)key; - - if(arg->left < size) - return -1; /* Data exceeds the available buffer size */ - - memcpy(arg->buffer, buffer, size); - arg->buffer = ((char *)arg->buffer) + size; - arg->left -= size; - - return 0; -} - -asn_enc_rval_t -uper_encode_to_buffer(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, void *buffer, size_t buffer_size) { - enc_to_buf_arg key; - - key.buffer = buffer; - key.left = buffer_size; - - if(td) ASN_DEBUG("Encoding \"%s\" using UNALIGNED PER", td->name); - - return uper_encode(td, constraints, sptr, encode_to_buffer_cb, &key); -} - -typedef struct enc_dyn_arg { - void *buffer; - size_t length; - size_t allocated; -} enc_dyn_arg; -static int -encode_dyn_cb(const void *buffer, size_t size, void *key) { - enc_dyn_arg *arg = key; - if(arg->length + size >= arg->allocated) { - size_t new_size = arg->allocated ? arg->allocated : 8; - void *p; - - do { - new_size <<= 2; - } while(arg->length + size >= new_size); - - p = REALLOC(arg->buffer, new_size); - if(!p) { - FREEMEM(arg->buffer); - memset(arg, 0, sizeof(*arg)); - return -1; - } - arg->buffer = p; - arg->allocated = new_size; - } - memcpy(((char *)arg->buffer) + arg->length, buffer, size); - arg->length += size; - return 0; -} -ssize_t -uper_encode_to_new_buffer(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, void **buffer_r) { - asn_enc_rval_t er = {0,0,0}; - enc_dyn_arg key; - - memset(&key, 0, sizeof(key)); - - er = uper_encode(td, constraints, sptr, encode_dyn_cb, &key); - switch(er.encoded) { - case -1: - FREEMEM(key.buffer); - return -1; - case 0: - FREEMEM(key.buffer); - key.buffer = MALLOC(1); - if(key.buffer) { - *(char *)key.buffer = '\0'; - *buffer_r = key.buffer; - return 1; - } else { - return -1; - } - default: - *buffer_r = key.buffer; - ASN_DEBUG("Complete encoded in %ld bits", (long)er.encoded); - return ((er.encoded + 7) >> 3); - } -} - -/* - * Internally useful functions. - */ - -/* Flush partially filled buffer */ -static int -_uper_encode_flush_outp(asn_per_outp_t *po) { - uint8_t *buf; - - if(po->nboff == 0 && po->buffer == po->tmpspace) - return 0; - - buf = po->buffer + (po->nboff >> 3); - /* Make sure we account for the last, partially filled */ - if(po->nboff & 0x07) { - buf[0] &= 0xff << (8 - (po->nboff & 0x07)); - buf++; - } - - return po->output(po->tmpspace, buf - po->tmpspace, po->op_key); -} - -asn_enc_rval_t -aper_encode_to_buffer(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, void *buffer, size_t buffer_size) { - enc_to_buf_arg key; - - key.buffer = buffer; - key.left = buffer_size; - - if(td) ASN_DEBUG("Encoding \"%s\" using ALIGNED PER", td->name); - - return aper_encode(td, constraints, sptr, encode_to_buffer_cb, &key); -} - -ssize_t -aper_encode_to_new_buffer(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, void **buffer_r) { - asn_enc_rval_t er = {0,0,0}; - enc_dyn_arg key; - - memset(&key, 0, sizeof(key)); - - er = aper_encode(td, constraints, sptr, encode_dyn_cb, &key); - switch(er.encoded) { - case -1: - FREEMEM(key.buffer); - return -1; - case 0: - FREEMEM(key.buffer); - key.buffer = MALLOC(1); - if(key.buffer) { - *(char *)key.buffer = '\0'; - *buffer_r = key.buffer; - return 1; - } else { - return -1; - } - default: - *buffer_r = key.buffer; - ASN_DEBUG("Complete encoded in %ld bits", (long)er.encoded); - return ((er.encoded + 7) >> 3); - } -} - -static int -_aper_encode_flush_outp(asn_per_outp_t *po) { - uint8_t *buf; - - if(po->nboff == 0 && po->buffer == po->tmpspace) - return 0; - - buf = po->buffer + (po->nboff >> 3); - /* Make sure we account for the last, partially filled */ - if(po->nboff & 0x07) { - buf[0] &= 0xff << (8 - (po->nboff & 0x07)); - buf++; - } - - if (po->output) { - return po->output(po->tmpspace, buf - po->tmpspace, po->op_key); - } - return 0; -} - -asn_enc_rval_t -aper_encode(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_app_consume_bytes_f *cb, void *app_key) { - asn_per_outp_t po; - asn_enc_rval_t er = {0,0,0}; - - /* - * Invoke type-specific encoder. - */ - if(!td || !td->op->aper_encoder) - ASN__ENCODE_FAILED; /* PER is not compiled in */ - - po.buffer = po.tmpspace; - po.nboff = 0; - po.nbits = 8 * sizeof(po.tmpspace); - po.output = cb; - po.op_key = app_key; - po.flushed_bytes = 0; - - er = td->op->aper_encoder(td, constraints, sptr, &po); - if(er.encoded != -1) { - size_t bits_to_flush; - - bits_to_flush = ((po.buffer - po.tmpspace) << 3) + po.nboff; - - /* Set number of bits encoded to a firm value */ - er.encoded = (po.flushed_bytes << 3) + bits_to_flush; - - if(_aper_encode_flush_outp(&po)) - ASN__ENCODE_FAILED; - } - - return er; -} diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/per_encoder.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/per_encoder.h deleted file mode 100644 index b615ef0..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/per_encoder.h +++ /dev/null @@ -1,93 +0,0 @@ -/*- - * Copyright (c) 2006-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef _PER_ENCODER_H_ -#define _PER_ENCODER_H_ - -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -struct asn_TYPE_descriptor_s; /* Forward declaration */ - -/* - * Unaligned PER encoder of any ASN.1 type. May be invoked by the application. - * WARNING: This function returns the number of encoded bits in the .encoded - * field of the return value. Use the following formula to convert to bytes: - * bytes = ((.encoded + 7) / 8) - */ -asn_enc_rval_t uper_encode( - const struct asn_TYPE_descriptor_s *type_descriptor, - const asn_per_constraints_t *constraints, - const void *struct_ptr, /* Structure to be encoded */ - asn_app_consume_bytes_f *consume_bytes_cb, /* Data collector */ - void *app_key /* Arbitrary callback argument */ -); - -asn_enc_rval_t aper_encode( - const struct asn_TYPE_descriptor_s *type_descriptor, - const asn_per_constraints_t *constraints, - const void *struct_ptr, /* Structure to be encoded */ - asn_app_consume_bytes_f *consume_bytes_cb, /* Data collector */ - void *app_key /* Arbitrary callback argument */ -); - -/* - * A variant of uper_encode() which encodes data into the existing buffer - * WARNING: This function returns the number of encoded bits in the .encoded - * field of the return value. - */ -asn_enc_rval_t uper_encode_to_buffer( - const struct asn_TYPE_descriptor_s *type_descriptor, - const asn_per_constraints_t *constraints, - const void *struct_ptr, /* Structure to be encoded */ - void *buffer, /* Pre-allocated buffer */ - size_t buffer_size /* Initial buffer size (max) */ -); - -asn_enc_rval_t aper_encode_to_buffer( - const struct asn_TYPE_descriptor_s *type_descriptor, - const asn_per_constraints_t *constraints, - const void *struct_ptr, /* Structure to be encoded */ - void *buffer, /* Pre-allocated buffer */ - size_t buffer_size /* Initial buffer size (max) */ -); -/* - * A variant of uper_encode_to_buffer() which allocates buffer itself. - * Returns the number of bytes in the buffer or -1 in case of failure. - * WARNING: This function produces a "Production of the complete encoding", - * with length of at least one octet. Contrast this to precise bit-packing - * encoding of uper_encode() and uper_encode_to_buffer(). - */ -ssize_t uper_encode_to_new_buffer( - const struct asn_TYPE_descriptor_s *type_descriptor, - const asn_per_constraints_t *constraints, - const void *struct_ptr, /* Structure to be encoded */ - void **buffer_r /* Buffer allocated and returned */ -); - -ssize_t -aper_encode_to_new_buffer( - const struct asn_TYPE_descriptor_s *td, - const asn_per_constraints_t *constraints, - const void *sptr, - void **buffer_r -); - -/* - * Type of the generic PER encoder function. - */ -typedef asn_enc_rval_t(per_type_encoder_f)( - const struct asn_TYPE_descriptor_s *type_descriptor, - const asn_per_constraints_t *constraints, const void *struct_ptr, - asn_per_outp_t *per_output); - -#ifdef __cplusplus -} -#endif - -#endif /* _PER_ENCODER_H_ */ diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/per_opentype.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/per_opentype.c deleted file mode 100644 index 28f3cb6..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/per_opentype.c +++ /dev/null @@ -1,533 +0,0 @@ -/* - * Copyright (c) 2007 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include -#include - -typedef struct uper_ugot_key { - asn_per_data_t oldpd; /* Old per data source */ - size_t unclaimed; - size_t ot_moved; /* Number of bits moved by OT processing */ - int repeat; -} uper_ugot_key; - -static int uper_ugot_refill(asn_per_data_t *pd); -static int per_skip_bits(asn_per_data_t *pd, int skip_nbits); -static asn_dec_rval_t uper_sot_suck(const asn_codec_ctx_t *, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - void **sptr, asn_per_data_t *pd); - -/* - * Encode an "open type field". - * #10.1, #10.2 - */ -int -uper_open_type_put(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, const void *sptr, - asn_per_outp_t *po) { - void *buf; - void *bptr; - ssize_t size; - - ASN_DEBUG("Open type put %s ...", td->name); - - size = uper_encode_to_new_buffer(td, constraints, sptr, &buf); - if(size <= 0) return -1; - - ASN_DEBUG("Open type put %s of length %" ASN_PRI_SSIZE " + overhead (1byte?)", td->name, - size); - - bptr = buf; - do { - int need_eom = 0; - ssize_t may_save = uper_put_length(po, size, &need_eom); - ASN_DEBUG("Prepending length %" ASN_PRI_SSIZE - " to %s and allowing to save %" ASN_PRI_SSIZE, - size, td->name, may_save); - if(may_save < 0) break; - if(per_put_many_bits(po, bptr, may_save * 8)) break; - bptr = (char *)bptr + may_save; - size -= may_save; - if(need_eom && uper_put_length(po, 0, 0)) { - FREEMEM(buf); - return -1; - } - } while(size); - - FREEMEM(buf); - if(size) return -1; - - return 0; -} - -static asn_dec_rval_t -uper_open_type_get_simple(const asn_codec_ctx_t *ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, - asn_per_data_t *pd) { - asn_dec_rval_t rv; - ssize_t chunk_bytes; - int repeat; - uint8_t *buf = 0; - size_t bufLen = 0; - size_t bufSize = 0; - asn_per_data_t spd; - size_t padding; - - ASN__STACK_OVERFLOW_CHECK(ctx); - - ASN_DEBUG("Getting open type %s...", td->name); - - do { - chunk_bytes = uper_get_length(pd, -1, 0, &repeat); - if(chunk_bytes < 0) { - FREEMEM(buf); - ASN__DECODE_STARVED; - } - if(bufLen + chunk_bytes > bufSize) { - void *ptr; - bufSize = chunk_bytes + (bufSize << 2); - ptr = REALLOC(buf, bufSize); - if(!ptr) { - FREEMEM(buf); - ASN__DECODE_FAILED; - } - buf = ptr; - } - if(per_get_many_bits(pd, buf + bufLen, 0, chunk_bytes << 3)) { - FREEMEM(buf); - ASN__DECODE_STARVED; - } - bufLen += chunk_bytes; - } while(repeat); - - ASN_DEBUG("Getting open type %s encoded in %ld bytes", td->name, - (long)bufLen); - - memset(&spd, 0, sizeof(spd)); - spd.buffer = buf; - spd.nbits = bufLen << 3; - - ASN_DEBUG_INDENT_ADD(+4); - rv = td->op->uper_decoder(ctx, td, constraints, sptr, &spd); - ASN_DEBUG_INDENT_ADD(-4); - - if(rv.code == RC_OK) { - /* Check padding validity */ - padding = spd.nbits - spd.nboff; - if (((padding > 0 && padding < 8) || - /* X.691#10.1.3 */ - (spd.nboff == 0 && spd.nbits == 8 && spd.buffer == buf)) && - per_get_few_bits(&spd, padding) == 0) { - /* Everything is cool */ - FREEMEM(buf); - return rv; - } - FREEMEM(buf); - if(padding >= 8) { - ASN_DEBUG("Too large padding %d in open type", (int)padding); - ASN__DECODE_FAILED; - } else { - ASN_DEBUG("No padding"); - } - } else { - FREEMEM(buf); - /* rv.code could be RC_WMORE, nonsense in this context */ - rv.code = RC_FAIL; /* Noone would give us more */ - } - - return rv; -} - -static asn_dec_rval_t CC_NOTUSED -uper_open_type_get_complex(const asn_codec_ctx_t *ctx, - const asn_TYPE_descriptor_t *td, - asn_per_constraints_t *constraints, void **sptr, - asn_per_data_t *pd) { - uper_ugot_key arg; - asn_dec_rval_t rv; - ssize_t padding; - - ASN__STACK_OVERFLOW_CHECK(ctx); - - ASN_DEBUG("Getting open type %s from %s", td->name, - asn_bit_data_string(pd)); - arg.oldpd = *pd; - arg.unclaimed = 0; - arg.ot_moved = 0; - arg.repeat = 1; - pd->refill = uper_ugot_refill; - pd->refill_key = &arg; - pd->nbits = pd->nboff; /* 0 good bits at this point, will refill */ - pd->moved = 0; /* This now counts the open type size in bits */ - - ASN_DEBUG_INDENT_ADD(+4); - rv = td->op->uper_decoder(ctx, td, constraints, sptr, pd); - ASN_DEBUG_INDENT_ADD(-4); - -#define UPDRESTOREPD do { \ - /* buffer and nboff are valid, preserve them. */ \ - pd->nbits = arg.oldpd.nbits - (pd->moved - arg.ot_moved); \ - pd->moved = arg.oldpd.moved + (pd->moved - arg.ot_moved); \ - pd->refill = arg.oldpd.refill; \ - pd->refill_key = arg.oldpd.refill_key; \ - } while(0) - - if(rv.code != RC_OK) { - UPDRESTOREPD; - return rv; - } - - ASN_DEBUG("OpenType %s pd%s old%s unclaimed=%d, repeat=%d", td->name, - asn_bit_data_string(pd), - asn_bit_data_string(&arg.oldpd), - (int)arg.unclaimed, (int)arg.repeat); - - padding = pd->moved % 8; - if(padding) { - int32_t pvalue; - if(padding > 7) { - ASN_DEBUG("Too large padding %d in open type", - (int)padding); - rv.code = RC_FAIL; - UPDRESTOREPD; - return rv; - } - padding = 8 - padding; - ASN_DEBUG("Getting padding of %d bits", (int)padding); - pvalue = per_get_few_bits(pd, padding); - switch(pvalue) { - case -1: - ASN_DEBUG("Padding skip failed"); - UPDRESTOREPD; - ASN__DECODE_STARVED; - case 0: break; - default: - ASN_DEBUG("Non-blank padding (%d bits 0x%02x)", - (int)padding, (int)pvalue); - UPDRESTOREPD; - ASN__DECODE_FAILED; - } - } - if(pd->nboff != pd->nbits) { - ASN_DEBUG("Open type %s overhead pd%s old%s", td->name, - asn_bit_data_string(pd), asn_bit_data_string(&arg.oldpd)); - if(1) { - UPDRESTOREPD; - ASN__DECODE_FAILED; - } else { - arg.unclaimed += pd->nbits - pd->nboff; - } - } - - /* Adjust pd back so it points to original data */ - UPDRESTOREPD; - - /* Skip data not consumed by the decoder */ - if(arg.unclaimed) { - ASN_DEBUG("Getting unclaimed %d", (int)arg.unclaimed); - switch(per_skip_bits(pd, arg.unclaimed)) { - case -1: - ASN_DEBUG("Claim of %d failed", (int)arg.unclaimed); - ASN__DECODE_STARVED; - case 0: - ASN_DEBUG("Got claim of %d", (int)arg.unclaimed); - break; - default: - /* Padding must be blank */ - ASN_DEBUG("Non-blank unconsumed padding"); - ASN__DECODE_FAILED; - } - arg.unclaimed = 0; - } - - if(arg.repeat) { - ASN_DEBUG("Not consumed the whole thing"); - rv.code = RC_FAIL; - return rv; - } - - return rv; -} - - -asn_dec_rval_t -uper_open_type_get(const asn_codec_ctx_t *ctx, const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, - asn_per_data_t *pd) { - return uper_open_type_get_simple(ctx, td, constraints, sptr, pd); -} - -int -uper_open_type_skip(const asn_codec_ctx_t *ctx, asn_per_data_t *pd) { - asn_TYPE_descriptor_t s_td; - asn_TYPE_operation_t s_op; - asn_dec_rval_t rv; - - s_td.name = ""; - s_td.op = &s_op; - s_op.uper_decoder = uper_sot_suck; - - rv = uper_open_type_get(ctx, &s_td, 0, 0, pd); - if(rv.code != RC_OK) - return -1; - else - return 0; -} - -/* - * Internal functions. - */ - -static asn_dec_rval_t -uper_sot_suck(const asn_codec_ctx_t *ctx, const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, - asn_per_data_t *pd) { - asn_dec_rval_t rv; - - (void)ctx; - (void)td; - (void)constraints; - (void)sptr; - - while(per_get_few_bits(pd, 1) >= 0); - - rv.code = RC_OK; - rv.consumed = pd->moved; - - return rv; -} - -static int -uper_ugot_refill(asn_per_data_t *pd) { - uper_ugot_key *arg = pd->refill_key; - ssize_t next_chunk_bytes, next_chunk_bits; - ssize_t avail; - - asn_per_data_t *oldpd = &arg->oldpd; - - ASN_DEBUG("REFILLING pd->moved=%ld, oldpd->moved=%ld", - (long)pd->moved, (long)oldpd->moved); - - /* Advance our position to where pd is */ - oldpd->buffer = pd->buffer; - oldpd->nboff = pd->nboff; - oldpd->nbits -= pd->moved - arg->ot_moved; - oldpd->moved += pd->moved - arg->ot_moved; - arg->ot_moved = pd->moved; - - if(arg->unclaimed) { - /* Refill the container */ - if(per_get_few_bits(oldpd, 1)) - return -1; - if(oldpd->nboff == 0) { - assert(0); - return -1; - } - pd->buffer = oldpd->buffer; - pd->nboff = oldpd->nboff - 1; - pd->nbits = oldpd->nbits; - ASN_DEBUG("UNCLAIMED <- return from (pd->moved=%ld)", - (long)pd->moved); - return 0; - } - - if(!arg->repeat) { - ASN_DEBUG("Want more but refill doesn't have it"); - return -1; - } - - next_chunk_bytes = uper_get_length(oldpd, -1, 0, &arg->repeat); - ASN_DEBUG("Open type LENGTH %ld bytes at off %ld, repeat %ld", - (long)next_chunk_bytes, (long)oldpd->moved, (long)arg->repeat); - if(next_chunk_bytes < 0) return -1; - if(next_chunk_bytes == 0) { - pd->refill = 0; /* No more refills, naturally */ - assert(!arg->repeat); /* Implementation guarantee */ - } - next_chunk_bits = next_chunk_bytes << 3; - avail = oldpd->nbits - oldpd->nboff; - if(avail >= next_chunk_bits) { - pd->nbits = oldpd->nboff + next_chunk_bits; - arg->unclaimed = 0; - ASN_DEBUG("!+Parent frame %ld bits, alloting %ld [%ld..%ld] (%ld)", - (long)next_chunk_bits, (long)oldpd->moved, - (long)oldpd->nboff, (long)oldpd->nbits, - (long)(oldpd->nbits - oldpd->nboff)); - } else { - pd->nbits = oldpd->nbits; - arg->unclaimed = next_chunk_bits - avail; - ASN_DEBUG("!-Parent frame %ld, require %ld, will claim %ld", - (long)avail, (long)next_chunk_bits, - (long)arg->unclaimed); - } - pd->buffer = oldpd->buffer; - pd->nboff = oldpd->nboff; - ASN_DEBUG("Refilled pd%s old%s", - asn_bit_data_string(pd), asn_bit_data_string(oldpd)); - return 0; -} - -static int -per_skip_bits(asn_per_data_t *pd, int skip_nbits) { - int hasNonZeroBits = 0; - while(skip_nbits > 0) { - int skip; - - /* per_get_few_bits() is more efficient when nbits <= 24 */ - if(skip_nbits < 24) - skip = skip_nbits; - else - skip = 24; - skip_nbits -= skip; - - switch(per_get_few_bits(pd, skip)) { - case -1: return -1; /* Starving */ - case 0: continue; /* Skipped empty space */ - default: hasNonZeroBits = 1; continue; - } - } - return hasNonZeroBits; -} - -static asn_dec_rval_t -aper_open_type_get_simple(const asn_codec_ctx_t *ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, asn_per_data_t *pd) { - asn_dec_rval_t rv; - ssize_t chunk_bytes; - int repeat; - uint8_t *buf = 0; - size_t bufLen = 0; - size_t bufSize = 0; - asn_per_data_t spd; - size_t padding; - - ASN__STACK_OVERFLOW_CHECK(ctx); - - ASN_DEBUG("Getting open type %s...", td->name); - - do { - chunk_bytes = aper_get_length(pd, -1, -1, &repeat); - if(chunk_bytes < 0) { - FREEMEM(buf); - ASN__DECODE_STARVED; - } - if(bufLen + chunk_bytes > bufSize) { - void *ptr; - bufSize = chunk_bytes + (bufSize << 2); - ptr = REALLOC(buf, bufSize); - if(!ptr) { - FREEMEM(buf); - ASN__DECODE_FAILED; - } - buf = ptr; - } - if(per_get_many_bits(pd, buf + bufLen, 0, chunk_bytes << 3)) { - FREEMEM(buf); - ASN__DECODE_STARVED; - } - bufLen += chunk_bytes; - } while(repeat); - - ASN_DEBUG("Getting open type %s encoded in %ld bytes", td->name, - (long)bufLen); - - memset(&spd, 0, sizeof(spd)); - spd.buffer = buf; - spd.nbits = bufLen << 3; - - ASN_DEBUG_INDENT_ADD(+4); - rv = td->op->aper_decoder(ctx, td, constraints, sptr, &spd); - ASN_DEBUG_INDENT_ADD(-4); - - if(rv.code == RC_OK) { - /* Check padding validity */ - padding = spd.nbits - spd.nboff; - if (((padding > 0 && padding < 8) || - /* X.691#10.1.3 */ - (spd.nboff == 0 && spd.nbits == 8 && spd.buffer == buf)) && - per_get_few_bits(&spd, padding) == 0) { - /* Everything is cool */ - FREEMEM(buf); - return rv; - } - FREEMEM(buf); - if(padding >= 8) { - ASN_DEBUG("Too large padding %d in open type", (int)padding); - ASN__DECODE_FAILED; - } else { - ASN_DEBUG("No padding"); - } - } else { - FREEMEM(buf); - /* rv.code could be RC_WMORE, nonsense in this context */ - rv.code = RC_FAIL; /* Noone would give us more */ - } - - return rv; -} - -int -aper_open_type_put(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_per_outp_t *po) { - void *buf; - void *bptr; - ssize_t size; - size_t toGo; - - ASN_DEBUG("Open type put %s ...", td->name); - - size = aper_encode_to_new_buffer(td, constraints, sptr, &buf); - if(size <= 0) return -1; - - for(bptr = buf, toGo = size; toGo;) { - ssize_t maySave = aper_put_length(po, -1, toGo); - if(maySave < 0) break; - if(per_put_many_bits(po, bptr, maySave * 8)) break; - bptr = (char *)bptr + maySave; - toGo -= maySave; - } - - FREEMEM(buf); - if(toGo) return -1; - - ASN_DEBUG("Open type put %s of length %ld + overhead (1byte?)", - td->name, size); - - return 0; -} - -asn_dec_rval_t -aper_open_type_get(const asn_codec_ctx_t *ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - void **sptr, asn_per_data_t *pd) { - - return aper_open_type_get_simple(ctx, td, constraints, sptr, pd); -} - -int -aper_open_type_skip(const asn_codec_ctx_t *ctx, asn_per_data_t *pd) { - asn_TYPE_descriptor_t s_td; - asn_dec_rval_t rv; - asn_TYPE_operation_t op_t; - - memset(&op_t, 0, sizeof(op_t)); - s_td.name = ""; - s_td.op = &op_t; - s_td.op->aper_decoder = uper_sot_suck; - - rv = aper_open_type_get(ctx, &s_td, 0, 0, pd); - if(rv.code != RC_OK) - return -1; - else - return 0; -} - - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/per_opentype.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/per_opentype.h deleted file mode 100644 index 1493b2d..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/per_opentype.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Copyright (c) 2007-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef _PER_OPENTYPE_H_ -#define _PER_OPENTYPE_H_ - -#ifdef __cplusplus -extern "C" { -#endif - -asn_dec_rval_t uper_open_type_get(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - void **sptr, asn_per_data_t *pd); - -int uper_open_type_skip(const asn_codec_ctx_t *opt_codec_ctx, - asn_per_data_t *pd); - -/* - * X.691 (2015/08), #11.2 - * Returns -1 if error is encountered. 0 if all OK. - */ -int uper_open_type_put(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_per_outp_t *po); - -asn_dec_rval_t aper_open_type_get(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - void **sptr, asn_per_data_t *pd); - - -int aper_open_type_skip(const asn_codec_ctx_t *opt_codec_ctx, asn_per_data_t *pd); - -int aper_open_type_put(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_per_outp_t *po); - -#ifdef __cplusplus -} -#endif - -#endif /* _PER_OPENTYPE_H_ */ diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/per_support.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/per_support.c deleted file mode 100644 index 2285677..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/per_support.c +++ /dev/null @@ -1,489 +0,0 @@ -/* - * Copyright (c) 2005-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include - -/* - * X.691-201508 #10.9 General rules for encoding a length determinant. - * Get the optionally constrained length "n" from the stream. - */ -ssize_t -uper_get_length(asn_per_data_t *pd, int ebits, size_t lower_bound, - int *repeat) { - ssize_t value; - - *repeat = 0; - - /* #11.9.4.1 Encoding if constrained (according to effective bits) */ - if(ebits >= 0 && ebits <= 16) { - value = per_get_few_bits(pd, ebits); - if(value >= 0) value += lower_bound; - return value; - } - - value = per_get_few_bits(pd, 8); - if((value & 0x80) == 0) { /* #11.9.3.6 */ - return (value & 0x7F); - } else if((value & 0x40) == 0) { /* #11.9.3.7 */ - /* bit 8 ... set to 1 and bit 7 ... set to zero */ - value = ((value & 0x3f) << 8) | per_get_few_bits(pd, 8); - return value; /* potential -1 from per_get_few_bits passes through. */ - } else if(value < 0) { - ASN_DEBUG("END of stream reached for PER"); - return -1; - } - value &= 0x3f; /* this is "m" from X.691, #11.9.3.8 */ - if(value < 1 || value > 4) { - return -1; /* Prohibited by #11.9.3.8 */ - } - *repeat = 1; - return (16384 * value); -} - -/* - * Get the normally small length "n". - * This procedure used to decode length of extensions bit-maps - * for SET and SEQUENCE types. - */ -ssize_t -uper_get_nslength(asn_per_data_t *pd) { - ssize_t length; - - ASN_DEBUG("Getting normally small length"); - - if(per_get_few_bits(pd, 1) == 0) { - length = per_get_few_bits(pd, 6) + 1; - if(length <= 0) return -1; - ASN_DEBUG("l=%d", (int)length); - return length; - } else { - int repeat; - length = uper_get_length(pd, -1, 0, &repeat); - if(length >= 0 && !repeat) return length; - return -1; /* Error, or do not support >16K extensions */ - } -} - -/* - * Get the normally small non-negative whole number. - * X.691, #10.6 - */ -ssize_t -uper_get_nsnnwn(asn_per_data_t *pd) { - ssize_t value; - - value = per_get_few_bits(pd, 7); - if(value & 64) { /* implicit (value < 0) */ - value &= 63; - value <<= 2; - value |= per_get_few_bits(pd, 2); - if(value & 128) /* implicit (value < 0) */ - return -1; - if(value == 0) - return 0; - if(value >= 3) - return -1; - value = per_get_few_bits(pd, 8 * value); - return value; - } - - return value; -} - -/* - * X.691-11/2008, #11.6 - * Encoding of a normally small non-negative whole number - */ -int -uper_put_nsnnwn(asn_per_outp_t *po, int n) { - int bytes; - - if(n <= 63) { - if(n < 0) return -1; - return per_put_few_bits(po, n, 7); - } - if(n < 256) - bytes = 1; - else if(n < 65536) - bytes = 2; - else if(n < 256 * 65536) - bytes = 3; - else - return -1; /* This is not a "normally small" value */ - if(per_put_few_bits(po, bytes, 8)) - return -1; - - return per_put_few_bits(po, n, 8 * bytes); -} - - -/* X.691-2008/11, #11.5.6 -> #11.3 */ -int uper_get_constrained_whole_number(asn_per_data_t *pd, unsigned long *out_value, int nbits) { - unsigned long lhalf; /* Lower half of the number*/ - long half; - - if(nbits <= 31) { - half = per_get_few_bits(pd, nbits); - if(half < 0) return -1; - *out_value = half; - return 0; - } - - if((size_t)nbits > 8 * sizeof(*out_value)) - return -1; /* RANGE */ - - half = per_get_few_bits(pd, 31); - if(half < 0) return -1; - - if(uper_get_constrained_whole_number(pd, &lhalf, nbits - 31)) - return -1; - - *out_value = ((unsigned long)half << (nbits - 31)) | lhalf; - return 0; -} - - -/* X.691-2008/11, #11.5.6 -> #11.3 */ -int -uper_put_constrained_whole_number_u(asn_per_outp_t *po, unsigned long v, - int nbits) { - if(nbits <= 31) { - return per_put_few_bits(po, v, nbits); - } else { - /* Put higher portion first, followed by lower 31-bit */ - if(uper_put_constrained_whole_number_u(po, v >> 31, nbits - 31)) - return -1; - return per_put_few_bits(po, v, 31); - } -} - -/* - * X.691 (08/2015) #11.9 "General rules for encoding a length determinant" - * Put the length "n" (or part of it) into the stream. - */ -ssize_t -uper_put_length(asn_per_outp_t *po, size_t length, int *need_eom) { - int dummy = 0; - if(!need_eom) need_eom = &dummy; - - if(length <= 127) { /* #11.9.3.6 */ - *need_eom = 0; - return per_put_few_bits(po, length, 8) - ? -1 : (ssize_t)length; - } else if(length < 16384) { /* #10.9.3.7 */ - *need_eom = 0; - return per_put_few_bits(po, length|0x8000, 16) - ? -1 : (ssize_t)length; - } - - *need_eom = 0 == (length & 16383); - length >>= 14; - if(length > 4) { - *need_eom = 0; - length = 4; - } - - return per_put_few_bits(po, 0xC0 | length, 8) - ? -1 : (ssize_t)(length << 14); - -} - - -/* - * Put the normally small length "n" into the stream. - * This procedure used to encode length of extensions bit-maps - * for SET and SEQUENCE types. - */ -int -uper_put_nslength(asn_per_outp_t *po, size_t length) { - if(length <= 64) { - /* #11.9.3.4 */ - if(length == 0) return -1; - return per_put_few_bits(po, length - 1, 7) ? -1 : 0; - } else { - int need_eom = 0; - if(uper_put_length(po, length, &need_eom) != (ssize_t)length - || need_eom) { - /* This might happen in case of >16K extensions */ - return -1; - } - } - - return 0; -} - -static int -per__long_range(long lb, long ub, unsigned long *range_r) { - unsigned long bounds_range; - if((ub < 0) == (lb < 0)) { - bounds_range = ub - lb; - } else if(lb < 0) { - assert(ub >= 0); - bounds_range = 1 + ((unsigned long)ub + (unsigned long)-(lb + 1)); - } else { - assert(!"Unreachable"); - return -1; - } - *range_r = bounds_range; - return 0; -} - -int -per_long_range_rebase(long v, long lb, long ub, unsigned long *output) { - unsigned long range; - - assert(lb <= ub); - - if(v < lb || v > ub || per__long_range(lb, ub, &range) < 0) { - /* Range error. */ - return -1; - } - - /* - * Fundamentally what we're doing is returning (v-lb). - * However, this triggers undefined behavior when the word width - * of signed (v) is the same as the size of unsigned (*output). - * In practice, it triggers the UndefinedSanitizer. Therefore we shall - * compute the ranges accurately to avoid C's undefined behavior. - */ - if((v < 0) == (lb < 0)) { - *output = v-lb; - return 0; - } else if(v < 0) { - unsigned long rebased = 1 + (unsigned long)-(v+1) + (unsigned long)lb; - assert(rebased <= range); /* By construction */ - *output = rebased; - return 0; - } else if(lb < 0) { - unsigned long rebased = 1 + (unsigned long)-(lb+1) + (unsigned long)v; - assert(rebased <= range); /* By construction */ - *output = rebased; - return 0; - } else { - assert(!"Unreachable"); - return -1; - } -} - -int -per_long_range_unrebase(unsigned long inp, long lb, long ub, long *outp) { - unsigned long range; - - if(per__long_range(lb, ub, &range) != 0) { - return -1; - } - - if(inp > range) { - /* - * We can encode something in the given number of bits that technically - * exceeds the range. This is an avenue for security errors, - * so we don't allow that. - */ - return -1; - } - - if(inp <= LONG_MAX) { - *outp = (long)inp + lb; - } else { - *outp = (lb + LONG_MAX + 1) + (long)((inp - LONG_MAX) - 1); - } - - return 0; -} - -int32_t -aper_get_align(asn_per_data_t *pd) { - - if(pd->nboff & 0x7) { - ASN_DEBUG("Aligning %ld bits", 8 - ((unsigned long)pd->nboff & 0x7)); - return per_get_few_bits(pd, 8 - (pd->nboff & 0x7)); - } - return 0; -} - -ssize_t -aper_get_length(asn_per_data_t *pd, int range, int ebits, int *repeat) { - ssize_t value; - - *repeat = 0; - - if (range <= 65536 && range >= 0) - return aper_get_nsnnwn(pd, range); - - if (aper_get_align(pd) < 0) - return -1; - - if(ebits >= 0) return per_get_few_bits(pd, ebits); - - value = per_get_few_bits(pd, 8); - if(value < 0) return -1; - if((value & 128) == 0) /* #10.9.3.6 */ - return (value & 0x7F); - if((value & 64) == 0) { /* #10.9.3.7 */ - value = ((value & 63) << 8) | per_get_few_bits(pd, 8); - if(value < 0) return -1; - return value; - } - value &= 63; /* this is "m" from X.691, #10.9.3.8 */ - if(value < 1 || value > 4) - return -1; - *repeat = 1; - return (16384 * value); -} - -ssize_t -aper_get_nslength(asn_per_data_t *pd) { - ssize_t length; - - ASN_DEBUG("Getting normally small length"); - - if(per_get_few_bits(pd, 1) == 0) { - length = per_get_few_bits(pd, 6) + 1; - if(length <= 0) return -1; - ASN_DEBUG("l=%ld", length); - return length; - } else { - int repeat; - length = aper_get_length(pd, -1, -1, &repeat); - if(length >= 0 && !repeat) return length; - return -1; /* Error, or do not support >16K extensions */ - } -} - -ssize_t -aper_get_nsnnwn(asn_per_data_t *pd, int range) { - ssize_t value; - int bytes = 0; - - ASN_DEBUG("getting nsnnwn with range %d", range); - - if(range <= 255) { - int i; - - if (range < 0) return -1; - /* 1 -> 8 bits */ - for (i = 1; i <= 8; i++) { - int upper = 1 << i; - if (upper >= range) - break; - } - value = per_get_few_bits(pd, i); - return value; - } else if (range == 256){ - /* 1 byte */ - bytes = 1; - } else if (range <= 65536) { - /* 2 bytes */ - bytes = 2; - } else { - return -1; - } - if (aper_get_align(pd) < 0) - return -1; - value = per_get_few_bits(pd, 8 * bytes); - return value; -} - -int aper_put_align(asn_per_outp_t *po) { - - if(po->nboff & 0x7) { - ASN_DEBUG("Aligning %ld bits", 8 - ((unsigned long)po->nboff & 0x7)); - if(per_put_few_bits(po, 0x00, (8 - (po->nboff & 0x7)))) - return -1; - } - return 0; -} - -ssize_t -aper_put_length(asn_per_outp_t *po, int range, size_t length) { - - ASN_DEBUG("APER put length %zu with range %d", length, range); - - /* 10.9 X.691 Note 2 */ - if (range <= 65536 && range >= 0) - return aper_put_nsnnwn(po, range, length); - - if (aper_put_align(po) < 0) - return -1; - - if(length <= 127) /* #10.9.3.6 */{ - return per_put_few_bits(po, length, 8) - ? -1 : (ssize_t)length; - } - else if(length < 16384) /* #10.9.3.7 */ - return per_put_few_bits(po, length|0x8000, 16) - ? -1 : (ssize_t)length; - - length >>= 14; - if(length > 4) length = 4; - - return per_put_few_bits(po, 0xC0 | length, 8) - ? -1 : (ssize_t)(length << 14); -} - - -int -aper_put_nslength(asn_per_outp_t *po, size_t length) { - - if(length <= 64) { - /* #10.9.3.4 */ - if(length == 0) return -1; - return per_put_few_bits(po, length-1, 7) ? -1 : 0; - } else { - if(aper_put_length(po, -1, length) != (ssize_t)length) { - /* This might happen in case of >16K extensions */ - return -1; - } - } - - return 0; -} - -int -aper_put_nsnnwn(asn_per_outp_t *po, int range, int number) { - int bytes; - - ASN_DEBUG("aper put nsnnwn %d with range %d", number, range); - /* 10.5.7.1 X.691 */ - if(range < 0) { - int i; - for (i = 1; ; i++) { - int bits = 1 << (8 * i); - if (number <= bits) - break; - } - bytes = i; - assert(i <= 4); - } - if(range <= 255) { - int i; - for (i = 1; i <= 8; i++) { - int bits = 1 << i; - if (range <= bits) - break; - } - return per_put_few_bits(po, number, i); - } else if(range == 256) { - bytes = 1; - } else if(range <= 65536) { - bytes = 2; - } else { /* Ranges > 64K */ - int i; - for (i = 1; ; i++) { - int bits = 1 << (8 * i); - if (range <= bits) - break; - } - assert(i <= 4); - bytes = i; - } - if(aper_put_align(po) < 0) /* Aligning on octet */ - return -1; -/* if(per_put_few_bits(po, bytes, 8)) - return -1; -*/ - return per_put_few_bits(po, number, 8 * bytes); -} diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/per_support.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/per_support.h deleted file mode 100644 index 23079c9..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/per_support.h +++ /dev/null @@ -1,127 +0,0 @@ -/* - * Copyright (c) 2005-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef _PER_SUPPORT_H_ -#define _PER_SUPPORT_H_ - -#include /* Platform-specific types */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * Pre-computed PER constraints. - */ -typedef struct asn_per_constraint_s { - enum asn_per_constraint_flags { - APC_UNCONSTRAINED = 0x0, /* No PER visible constraints */ - APC_SEMI_CONSTRAINED = 0x1, /* Constrained at "lb" */ - APC_CONSTRAINED = 0x2, /* Fully constrained */ - APC_EXTENSIBLE = 0x4 /* May have extension */ - } flags; - int range_bits; /* Full number of bits in the range */ - int effective_bits; /* Effective bits */ - long lower_bound; /* "lb" value */ - long upper_bound; /* "ub" value */ -} asn_per_constraint_t; -typedef struct asn_per_constraints_s { - asn_per_constraint_t value; - asn_per_constraint_t size; - int (*value2code)(unsigned int value); - int (*code2value)(unsigned int code); -} asn_per_constraints_t; - -/* Temporary compatibility layer. Will get removed. */ -typedef struct asn_bit_data_s asn_per_data_t; -#define per_get_few_bits(data, bits) asn_get_few_bits(data, bits) -#define per_get_undo(data, bits) asn_get_undo(data, bits) -#define per_get_many_bits(data, dst, align, bits) \ - asn_get_many_bits(data, dst, align, bits) - -/* - * X.691 (08/2015) #11.9 "General rules for encoding a length determinant" - * Get the length "n" from the Unaligned PER stream. - */ -ssize_t uper_get_length(asn_per_data_t *pd, int effective_bound_bits, - size_t lower_bound, int *repeat); - -ssize_t aper_get_length(asn_per_data_t *pd, int range, - int effective_bound_bits, int *repeat); - -/* - * Get the normally small length "n". - */ -ssize_t uper_get_nslength(asn_per_data_t *pd); -ssize_t aper_get_nslength(asn_per_data_t *pd); - -/* - * Get the normally small non-negative whole number. - */ -ssize_t uper_get_nsnnwn(asn_per_data_t *pd); -ssize_t aper_get_nsnnwn(asn_per_data_t *pd, int range); - -/* X.691-2008/11, #11.5.6 */ -int uper_get_constrained_whole_number(asn_per_data_t *pd, unsigned long *v, int nbits); - - -/* Temporary compatibility layer. Will get removed. */ -typedef struct asn_bit_outp_s asn_per_outp_t; -#define per_put_few_bits(out, bits, obits) asn_put_few_bits(out, bits, obits) -#define per_put_many_bits(out, src, nbits) asn_put_many_bits(out, src, nbits) -#define per_put_aligned_flush(out) asn_put_aligned_flush(out) - - -/* - * Rebase the given value as an offset into the range specified by the - * lower bound (lb) and upper bound (ub). - * RETURN VALUES: - * -1: Conversion failed due to range problems. - * 0: Conversion was successful. - */ -int per_long_range_rebase(long v, long lb, long ub, unsigned long *output); -/* The inverse operation: restores the value by the offset and its bounds. */ -int per_long_range_unrebase(unsigned long inp, long lb, long ub, long *outp); - -/* X.691-2008/11, #11.5 */ -int uper_put_constrained_whole_number_u(asn_per_outp_t *po, unsigned long v, int nbits); - -/* - * X.691 (08/2015) #11.9 "General rules for encoding a length determinant" - * Put the length "whole_length" to the Unaligned PER stream. - * If (opt_need_eom) is given, it will be set to 1 if final 0-length is needed. - * In that case, invoke uper_put_length(po, 0, 0) after encoding the last block. - * This function returns the number of units which may be flushed - * in the next units saving iteration. - */ -ssize_t uper_put_length(asn_per_outp_t *po, size_t whole_length, - int *opt_need_eom); - -ssize_t aper_put_length(asn_per_outp_t *po, int range, size_t length); - -/* Align the current bit position to octet bundary */ -int aper_put_align(asn_per_outp_t *po); -int32_t aper_get_align(asn_per_data_t *pd); - -/* - * Put the normally small length "n" to the Unaligned PER stream. - * Returns 0 or -1. - */ -int uper_put_nslength(asn_per_outp_t *po, size_t length); - -int aper_put_nslength(asn_per_outp_t *po, size_t length); - -/* - * Put the normally small non-negative whole number. - */ -int uper_put_nsnnwn(asn_per_outp_t *po, int n); - -int aper_put_nsnnwn(asn_per_outp_t *po, int range, int number); - -#ifdef __cplusplus -} -#endif - -#endif /* _PER_SUPPORT_H_ */ diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/xer_decoder.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/xer_decoder.c deleted file mode 100644 index 5b87703..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/xer_decoder.c +++ /dev/null @@ -1,369 +0,0 @@ -/* - * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include /* XER/XML parsing support */ - - -/* - * Decode the XER encoding of a given type. - */ -asn_dec_rval_t -xer_decode(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **struct_ptr, - const void *buffer, size_t size) { - asn_codec_ctx_t s_codec_ctx; - - /* - * Stack checker requires that the codec context - * must be allocated on the stack. - */ - if(opt_codec_ctx) { - if(opt_codec_ctx->max_stack_size) { - s_codec_ctx = *opt_codec_ctx; - opt_codec_ctx = &s_codec_ctx; - } - } else { - /* If context is not given, be security-conscious anyway */ - memset(&s_codec_ctx, 0, sizeof(s_codec_ctx)); - s_codec_ctx.max_stack_size = ASN__DEFAULT_STACK_MAX; - opt_codec_ctx = &s_codec_ctx; - } - - /* - * Invoke type-specific decoder. - */ - return td->op->xer_decoder(opt_codec_ctx, td, struct_ptr, 0, buffer, size); -} - - - -struct xer__cb_arg { - pxml_chunk_type_e chunk_type; - size_t chunk_size; - const void *chunk_buf; - int callback_not_invoked; -}; - -static int -xer__token_cb(pxml_chunk_type_e type, const void *_chunk_data, size_t _chunk_size, void *key) { - struct xer__cb_arg *arg = (struct xer__cb_arg *)key; - arg->chunk_type = type; - arg->chunk_size = _chunk_size; - arg->chunk_buf = _chunk_data; - arg->callback_not_invoked = 0; - return -1; /* Terminate the XML parsing */ -} - -/* - * Fetch the next token from the XER/XML stream. - */ -ssize_t -xer_next_token(int *stateContext, const void *buffer, size_t size, pxer_chunk_type_e *ch_type) { - struct xer__cb_arg arg; - int new_stateContext = *stateContext; - ssize_t ret; - - arg.callback_not_invoked = 1; - ret = pxml_parse(&new_stateContext, buffer, size, xer__token_cb, &arg); - if(ret < 0) return -1; - if(arg.callback_not_invoked) { - assert(ret == 0); /* No data was consumed */ - *ch_type = PXER_WMORE; - return 0; /* Try again with more data */ - } else { - assert(arg.chunk_size); - assert(arg.chunk_buf == buffer); - } - - /* - * Translate the XML chunk types into more convenient ones. - */ - switch(arg.chunk_type) { - case PXML_TEXT: - *ch_type = PXER_TEXT; - break; - case PXML_TAG: - *ch_type = PXER_WMORE; - return 0; /* Want more */ - case PXML_TAG_END: - *ch_type = PXER_TAG; - break; - case PXML_COMMENT: - case PXML_COMMENT_END: - *ch_type = PXER_COMMENT; - break; - } - - *stateContext = new_stateContext; - return arg.chunk_size; -} - -#define CSLASH 0x2f /* '/' */ -#define LANGLE 0x3c /* '<' */ -#define RANGLE 0x3e /* '>' */ - -xer_check_tag_e -xer_check_tag(const void *buf_ptr, int size, const char *need_tag) { - const char *buf = (const char *)buf_ptr; - const char *end; - xer_check_tag_e ct = XCT_OPENING; - - if(size < 2 || buf[0] != LANGLE || buf[size-1] != RANGLE) { - if(size >= 2) - ASN_DEBUG("Broken XML tag: \"%c...%c\"", - buf[0], buf[size - 1]); - return XCT_BROKEN; - } - - /* - * Determine the tag class. - */ - if(buf[1] == CSLASH) { - buf += 2; /* advance past "" */ - ct = XCT_CLOSING; - if(size > 0 && buf[size-1] == CSLASH) - return XCT_BROKEN; /* */ - } else { - buf++; /* advance past "<" */ - size -= 2; /* strip "<" and ">" */ - if(size > 0 && buf[size-1] == CSLASH) { - ct = XCT_BOTH; - size--; /* One more, for "/" */ - } - } - - /* Sometimes we don't care about the tag */ - if(!need_tag || !*need_tag) - return (xer_check_tag_e)(XCT__UNK__MASK | ct); - - /* - * Determine the tag name. - */ - for(end = buf + size; buf < end; buf++, need_tag++) { - int b = *buf, n = *need_tag; - if(b != n) { - if(n == 0) { - switch(b) { - case 0x09: case 0x0a: case 0x0c: case 0x0d: - case 0x20: - /* "": whitespace is normal */ - return ct; - } - } - return (xer_check_tag_e)(XCT__UNK__MASK | ct); - } - if(b == 0) - return XCT_BROKEN; /* Embedded 0 in buf?! */ - } - if(*need_tag) - return (xer_check_tag_e)(XCT__UNK__MASK | ct); - - return ct; -} - - -#undef ADVANCE -#define ADVANCE(num_bytes) do { \ - size_t num = (num_bytes); \ - buf_ptr = ((const char *)buf_ptr) + num; \ - size -= num; \ - consumed_myself += num; \ - } while(0) - -#undef RETURN -#define RETURN(_code) do { \ - rval.code = _code; \ - rval.consumed = consumed_myself; \ - if(rval.code != RC_OK) \ - ASN_DEBUG("Failed with %d", rval.code); \ - return rval; \ - } while(0) - -#define XER_GOT_BODY(chunk_buf, chunk_size, size) do { \ - ssize_t converted_size = body_receiver \ - (struct_key, chunk_buf, chunk_size, \ - (size_t)chunk_size < size); \ - if(converted_size == -1) RETURN(RC_FAIL); \ - if(converted_size == 0 \ - && size == (size_t)chunk_size) \ - RETURN(RC_WMORE); \ - chunk_size = converted_size; \ - } while(0) -#define XER_GOT_EMPTY() do { \ - if(body_receiver(struct_key, 0, 0, size > 0) == -1) \ - RETURN(RC_FAIL); \ - } while(0) - -/* - * Generalized function for decoding the primitive values. - */ -asn_dec_rval_t -xer_decode_general(const asn_codec_ctx_t *opt_codec_ctx, - asn_struct_ctx_t *ctx, /* Type decoder context */ - void *struct_key, - const char *xml_tag, /* Expected XML tag */ - const void *buf_ptr, size_t size, - int (*opt_unexpected_tag_decoder) - (void *struct_key, const void *chunk_buf, size_t chunk_size), - ssize_t (*body_receiver) - (void *struct_key, const void *chunk_buf, size_t chunk_size, - int have_more) - ) { - - asn_dec_rval_t rval; - ssize_t consumed_myself = 0; - - (void)opt_codec_ctx; - - /* - * Phases of XER/XML processing: - * Phase 0: Check that the opening tag matches our expectations. - * Phase 1: Processing body and reacting on closing tag. - */ - if(ctx->phase > 1) RETURN(RC_FAIL); - for(;;) { - pxer_chunk_type_e ch_type; /* XER chunk type */ - ssize_t ch_size; /* Chunk size */ - xer_check_tag_e tcv; /* Tag check value */ - - /* - * Get the next part of the XML stream. - */ - ch_size = xer_next_token(&ctx->context, buf_ptr, size, - &ch_type); - if(ch_size == -1) { - RETURN(RC_FAIL); - } else { - switch(ch_type) { - case PXER_WMORE: - RETURN(RC_WMORE); - case PXER_COMMENT: /* Got XML comment */ - ADVANCE(ch_size); /* Skip silently */ - continue; - case PXER_TEXT: - if(ctx->phase == 0) { - /* - * We have to ignore whitespace here, - * but in order to be forward compatible - * with EXTENDED-XER (EMBED-VALUES, #25) - * any text is just ignored here. - */ - } else { - XER_GOT_BODY(buf_ptr, ch_size, size); - } - ADVANCE(ch_size); - continue; - case PXER_TAG: - break; /* Check the rest down there */ - } - } - - assert(ch_type == PXER_TAG && size); - - tcv = xer_check_tag(buf_ptr, ch_size, xml_tag); - /* - * Phase 0: - * Expecting the opening tag - * for the type being processed. - * Phase 1: - * Waiting for the closing XML tag. - */ - switch(tcv) { - case XCT_BOTH: - if(ctx->phase) break; - /* Finished decoding of an empty element */ - XER_GOT_EMPTY(); - ADVANCE(ch_size); - ctx->phase = 2; /* Phase out */ - RETURN(RC_OK); - case XCT_OPENING: - if(ctx->phase) break; - ADVANCE(ch_size); - ctx->phase = 1; /* Processing body phase */ - continue; - case XCT_CLOSING: - if(!ctx->phase) break; - ADVANCE(ch_size); - ctx->phase = 2; /* Phase out */ - RETURN(RC_OK); - case XCT_UNKNOWN_BO: - /* - * Certain tags in the body may be expected. - */ - if(opt_unexpected_tag_decoder - && opt_unexpected_tag_decoder(struct_key, - buf_ptr, ch_size) >= 0) { - /* Tag's processed fine */ - ADVANCE(ch_size); - if(!ctx->phase) { - /* We are not expecting - * the closing tag anymore. */ - ctx->phase = 2; /* Phase out */ - RETURN(RC_OK); - } - continue; - } - /* Fall through */ - default: - break; /* Unexpected tag */ - } - - ASN_DEBUG("Unexpected XML tag (expected \"%s\")", xml_tag); - break; /* Dark and mysterious things have just happened */ - } - - RETURN(RC_FAIL); -} - - -size_t -xer_whitespace_span(const void *chunk_buf, size_t chunk_size) { - const char *p = (const char *)chunk_buf; - const char *pend = p + chunk_size; - - for(; p < pend; p++) { - switch(*p) { - /* X.693, #8.1.4 - * HORISONTAL TAB (9) - * LINE FEED (10) - * CARRIAGE RETURN (13) - * SPACE (32) - */ - case 0x09: case 0x0a: case 0x0d: case 0x20: - continue; - default: - break; - } - break; - } - return (p - (const char *)chunk_buf); -} - -/* - * This is a vastly simplified, non-validating XML tree skipper. - */ -int -xer_skip_unknown(xer_check_tag_e tcv, ber_tlv_len_t *depth) { - assert(*depth > 0); - switch(tcv) { - case XCT_BOTH: - case XCT_UNKNOWN_BO: - /* These negate each other. */ - return 0; - case XCT_OPENING: - case XCT_UNKNOWN_OP: - ++(*depth); - return 0; - case XCT_CLOSING: - case XCT_UNKNOWN_CL: - if(--(*depth) == 0) - return (tcv == XCT_CLOSING) ? 2 : 1; - return 0; - default: - return -1; - } -} diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/xer_decoder.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/xer_decoder.h deleted file mode 100644 index b951c41..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/xer_decoder.h +++ /dev/null @@ -1,106 +0,0 @@ -/*- - * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef _XER_DECODER_H_ -#define _XER_DECODER_H_ - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -struct asn_TYPE_descriptor_s; /* Forward declaration */ - -/* - * The XER decoder of any ASN.1 type. May be invoked by the application. - * Decodes CANONICAL-XER and BASIC-XER. - */ -asn_dec_rval_t xer_decode( - const struct asn_codec_ctx_s *opt_codec_ctx, - const struct asn_TYPE_descriptor_s *type_descriptor, - void **struct_ptr, /* Pointer to a target structure's pointer */ - const void *buffer, /* Data to be decoded */ - size_t size /* Size of data buffer */ -); - -/* - * Type of the type-specific XER decoder function. - */ -typedef asn_dec_rval_t(xer_type_decoder_f)( - const asn_codec_ctx_t *opt_codec_ctx, - const struct asn_TYPE_descriptor_s *type_descriptor, void **struct_ptr, - const char *opt_mname, /* Member name */ - const void *buf_ptr, size_t size); - -/******************************* - * INTERNALLY USEFUL FUNCTIONS * - *******************************/ - -/* - * Generalized function for decoding the primitive values. - * Used by more specialized functions, such as OCTET_STRING_decode_xer_utf8 - * and others. This function should not be used by applications, as its API - * is subject to changes. - */ -asn_dec_rval_t xer_decode_general( - const asn_codec_ctx_t *opt_codec_ctx, - asn_struct_ctx_t *ctx, /* Type decoder context */ - void *struct_key, /* Treated as opaque pointer */ - const char *xml_tag, /* Expected XML tag name */ - const void *buf_ptr, size_t size, - int (*opt_unexpected_tag_decoder)(void *struct_key, const void *chunk_buf, - size_t chunk_size), - ssize_t (*body_receiver)(void *struct_key, const void *chunk_buf, - size_t chunk_size, int have_more)); - - -/* - * Fetch the next XER (XML) token from the stream. - * The function returns the number of bytes occupied by the chunk type, - * returned in the _ch_type. The _ch_type is only set (and valid) when - * the return value is >= 0. - */ - typedef enum pxer_chunk_type { - PXER_WMORE, /* Chunk type is not clear, more data expected. */ - PXER_TAG, /* Complete XER tag */ - PXER_TEXT, /* Plain text between XER tags */ - PXER_COMMENT /* A comment, may be part of */ - } pxer_chunk_type_e; -ssize_t xer_next_token(int *stateContext, - const void *buffer, size_t size, pxer_chunk_type_e *_ch_type); - -/* - * This function checks the buffer against the tag name is expected to occur. - */ - typedef enum xer_check_tag { - XCT_BROKEN = 0, /* The tag is broken */ - XCT_OPENING = 1, /* This is the tag */ - XCT_CLOSING = 2, /* This is the tag */ - XCT_BOTH = 3, /* This is the tag */ - XCT__UNK__MASK = 4, /* Mask of everything unexpected */ - XCT_UNKNOWN_OP = 5, /* Unexpected tag */ - XCT_UNKNOWN_CL = 6, /* Unexpected tag */ - XCT_UNKNOWN_BO = 7 /* Unexpected tag */ - } xer_check_tag_e; -xer_check_tag_e xer_check_tag(const void *buf_ptr, int size, - const char *need_tag); - -/* - * Get the number of bytes consisting entirely of XER whitespace characters. - * RETURN VALUES: - * >=0: Number of whitespace characters in the string. - */ -size_t xer_whitespace_span(const void *chunk_buf, size_t chunk_size); - -/* - * Skip the series of anticipated extensions. - */ -int xer_skip_unknown(xer_check_tag_e tcv, ber_tlv_len_t *depth); - -#ifdef __cplusplus -} -#endif - -#endif /* _XER_DECODER_H_ */ diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/xer_encoder.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/xer_encoder.c deleted file mode 100644 index 4177ede..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/xer_encoder.c +++ /dev/null @@ -1,237 +0,0 @@ -/*- - * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include - -/* - * The XER encoder of any type. May be invoked by the application. - */ -asn_enc_rval_t -xer_encode(const asn_TYPE_descriptor_t *td, const void *sptr, - enum xer_encoder_flags_e xer_flags, asn_app_consume_bytes_f *cb, - void *app_key) { - asn_enc_rval_t er = {0, 0, 0}; - asn_enc_rval_t tmper; - const char *mname; - size_t mlen; - int xcan = (xer_flags & XER_F_CANONICAL) ? 1 : 2; - - if(!td || !sptr) goto cb_failed; - - mname = td->xml_tag; - mlen = strlen(mname); - - ASN__CALLBACK3("<", 1, mname, mlen, ">", 1); - - tmper = td->op->xer_encoder(td, sptr, 1, xer_flags, cb, app_key); - if(tmper.encoded == -1) return tmper; - er.encoded += tmper.encoded; - - ASN__CALLBACK3("\n", xcan); - - ASN__ENCODED_OK(er); -cb_failed: - ASN__ENCODE_FAILED; -} - -/* - * This is a helper function for xer_fprint, which directs all incoming data - * into the provided file descriptor. - */ -static int -xer__print2fp(const void *buffer, size_t size, void *app_key) { - FILE *stream = (FILE *)app_key; - - if(fwrite(buffer, 1, size, stream) != size) - return -1; - - return 0; -} - -int -xer_fprint(FILE *stream, const asn_TYPE_descriptor_t *td, const void *sptr) { - asn_enc_rval_t er = {0,0,0}; - - if(!stream) stream = stdout; - if(!td || !sptr) - return -1; - - er = xer_encode(td, sptr, XER_F_BASIC, xer__print2fp, stream); - if(er.encoded == -1) - return -1; - - return fflush(stream); -} - -struct xer_buffer { - char *buffer; - size_t buffer_size; - size_t allocated_size; -}; - -static int -xer__buffer_append(const void *buffer, size_t size, void *app_key) { - struct xer_buffer *xb = app_key; - - while(xb->buffer_size + size + 1 > xb->allocated_size) { - size_t new_size = 2 * (xb->allocated_size ? xb->allocated_size : 64); - char *new_buf = MALLOC(new_size); - if(!new_buf) return -1; - if (xb->buffer) { - memcpy(new_buf, xb->buffer, xb->buffer_size); - } - FREEMEM(xb->buffer); - xb->buffer = new_buf; - xb->allocated_size = new_size; - } - - memcpy(xb->buffer + xb->buffer_size, buffer, size); - xb->buffer_size += size; - xb->buffer[xb->buffer_size] = '\0'; - return 0; -} - -enum xer_equivalence_e -xer_equivalent(const struct asn_TYPE_descriptor_s *td, const void *struct1, - const void *struct2, FILE *opt_debug_stream) { - struct xer_buffer xb1 = {0, 0, 0}; - struct xer_buffer xb2 = {0, 0, 0}; - asn_enc_rval_t e1, e2; - asn_dec_rval_t rval; - void *sptr = NULL; - - if(!td || !struct1 || !struct2) { - if(opt_debug_stream) { - if(!td) fprintf(opt_debug_stream, "Type descriptor missing\n"); - if(!struct1) fprintf(opt_debug_stream, "Structure 1 missing\n"); - if(!struct2) fprintf(opt_debug_stream, "Structure 2 missing\n"); - } - return XEQ_FAILURE; - } - - e1 = xer_encode(td, struct1, XER_F_BASIC, xer__buffer_append, &xb1); - if(e1.encoded == -1) { - if(opt_debug_stream) { - fprintf(stderr, "XER Encoding of %s failed\n", td->name); - } - FREEMEM(xb1.buffer); - return XEQ_ENCODE1_FAILED; - } - - e2 = xer_encode(td, struct2, XER_F_BASIC, xer__buffer_append, &xb2); - if(e2.encoded == -1) { - if(opt_debug_stream) { - fprintf(stderr, "XER Encoding of %s failed\n", td->name); - } - FREEMEM(xb1.buffer); - FREEMEM(xb2.buffer); - return XEQ_ENCODE1_FAILED; - } - - if(xb1.buffer_size != xb2.buffer_size - || memcmp(xb1.buffer, xb2.buffer, xb1.buffer_size) != 0) { - if(opt_debug_stream) { - fprintf(opt_debug_stream, - "Structures XER-encoded into different byte streams:\n=== " - "Structure 1 ===\n%s\n=== Structure 2 ===\n%s\n", - xb1.buffer, xb2.buffer); - } - FREEMEM(xb1.buffer); - FREEMEM(xb2.buffer); - return XEQ_DIFFERENT; - } else { - if(opt_debug_stream) { - fprintf(opt_debug_stream, - "Both structures encoded into the same XER byte stream " - "of size %" ASN_PRI_SIZE ":\n%s", - xb1.buffer_size, xb1.buffer); - } - } - - rval = xer_decode(NULL, td, (void **)&sptr, xb1.buffer, - xb1.buffer_size); - switch(rval.code) { - case RC_OK: - break; - case RC_WMORE: - if(opt_debug_stream) { - fprintf(opt_debug_stream, - "Structure %s XER decode unexpectedly requires " - "more data:\n%s\n", - td->name, xb1.buffer); - } - /* Fall through */ - case RC_FAIL: - default: - if(opt_debug_stream) { - fprintf(opt_debug_stream, - "Structure %s XER decoding resulted in failure.\n", - td->name); - } - ASN_STRUCT_FREE(*td, sptr); - FREEMEM(xb1.buffer); - FREEMEM(xb2.buffer); - return XEQ_DECODE_FAILED; - } - - if(rval.consumed != xb1.buffer_size - && ((rval.consumed > xb1.buffer_size) - || xer_whitespace_span(xb1.buffer + rval.consumed, - xb1.buffer_size - rval.consumed) - != (xb1.buffer_size - rval.consumed))) { - if(opt_debug_stream) { - fprintf(opt_debug_stream, - "Round-trip decode of %s required less bytes (%" ASN_PRI_SIZE ") than " - "encoded (%" ASN_PRI_SIZE ")\n", - td->name, rval.consumed, xb1.buffer_size); - } - ASN_STRUCT_FREE(*td, sptr); - FREEMEM(xb1.buffer); - FREEMEM(xb2.buffer); - return XEQ_ROUND_TRIP_FAILED; - } - - /* - * Reuse xb2 to encode newly decoded structure. - */ - FREEMEM(xb2.buffer); - memset(&xb2, 0, sizeof(xb2)); - - e2 = xer_encode(td, sptr, XER_F_BASIC, xer__buffer_append, &xb2); - if(e2.encoded == -1) { - if(opt_debug_stream) { - fprintf(stderr, "XER Encoding of round-trip decode of %s failed\n", - td->name); - } - ASN_STRUCT_FREE(*td, sptr); - FREEMEM(xb1.buffer); - FREEMEM(xb2.buffer); - return XEQ_ROUND_TRIP_FAILED; - } - - ASN_STRUCT_FREE(*td, sptr); - sptr = 0; - - if(xb1.buffer_size != xb2.buffer_size - || memcmp(xb1.buffer, xb2.buffer, xb1.buffer_size) != 0) { - if(opt_debug_stream) { - fprintf(opt_debug_stream, - "XER Encoding of round-trip decode of %s resulted in " - "different byte stream:\n" - "=== Original ===\n%s\n" - "=== Round-tripped ===\n%s\n", - xb1.buffer, xb2.buffer, td->name); - } - FREEMEM(xb1.buffer); - FREEMEM(xb2.buffer); - return XEQ_ROUND_TRIP_FAILED; - } - - FREEMEM(xb1.buffer); - FREEMEM(xb2.buffer); - return XEQ_SUCCESS; -} - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/xer_encoder.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/xer_encoder.h deleted file mode 100644 index 9d75922..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/xer_encoder.h +++ /dev/null @@ -1,83 +0,0 @@ -/*- - * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef _XER_ENCODER_H_ -#define _XER_ENCODER_H_ - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -struct asn_TYPE_descriptor_s; /* Forward declaration */ - -/* Flags used by the xer_encode() and (*xer_type_encoder_f), defined below */ -enum xer_encoder_flags_e { - /* Mode of encoding */ - XER_F_BASIC = 0x01, /* BASIC-XER (pretty-printing) */ - XER_F_CANONICAL = 0x02 /* Canonical XER (strict rules) */ -}; - -/* - * The XER encoder of any type. May be invoked by the application. - * Produces CANONICAL-XER and BASIC-XER depending on the (xer_flags). - */ -asn_enc_rval_t xer_encode(const struct asn_TYPE_descriptor_s *type_descriptor, - const void *struct_ptr, /* Structure to be encoded */ - enum xer_encoder_flags_e xer_flags, - asn_app_consume_bytes_f *consume_bytes_cb, - void *app_key /* Arbitrary callback argument */ -); - -/* - * The variant of the above function which dumps the BASIC-XER (XER_F_BASIC) - * output into the chosen file pointer. - * RETURN VALUES: - * 0: The structure is printed. - * -1: Problem printing the structure. - * WARNING: No sensible errno value is returned. - */ -int xer_fprint(FILE *stream, const struct asn_TYPE_descriptor_s *td, - const void *struct_ptr); - -/* - * A helper function that uses XER encoding/decoding to verify that: - * - Both structures encode into the same BASIC XER. - * - Both resulting XER byte streams can be decoded back. - * - Both decoded structures encode into the same BASIC XER (round-trip). - * All of this verifies equivalence between structures and a round-trip. - * ARGUMENTS: - * (opt_debug_stream) - If specified, prints ongoing details. - */ -enum xer_equivalence_e { - XEQ_SUCCESS, /* The only completely positive return value */ - XEQ_FAILURE, /* General failure */ - XEQ_ENCODE1_FAILED, /* First sructure XER encoding failed */ - XEQ_ENCODE2_FAILED, /* Second structure XER encoding failed */ - XEQ_DIFFERENT, /* Structures encoded into different XER */ - XEQ_DECODE_FAILED, /* Decode of the XER data failed */ - XEQ_ROUND_TRIP_FAILED /* Bad round-trip */ -}; -enum xer_equivalence_e xer_equivalent( - const struct asn_TYPE_descriptor_s *type_descriptor, const void *struct1, - const void *struct2, FILE *opt_debug_stream); - -/* - * Type of the generic XER encoder. - */ -typedef asn_enc_rval_t(xer_type_encoder_f)( - const struct asn_TYPE_descriptor_s *type_descriptor, - const void *struct_ptr, /* Structure to be encoded */ - int ilevel, /* Level of indentation */ - enum xer_encoder_flags_e xer_flags, - asn_app_consume_bytes_f *consume_bytes_cb, /* Callback */ - void *app_key /* Arbitrary callback argument */ -); - -#ifdef __cplusplus -} -#endif - -#endif /* _XER_ENCODER_H_ */ diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/xer_support.c b/e2sim/previous/e2apv1sim/e2sim/ASN1c/xer_support.c deleted file mode 100644 index 36b4bfb..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/xer_support.c +++ /dev/null @@ -1,227 +0,0 @@ -/* - * Copyright (c) 2003, 2004 X/IO Labs, xiolabs.com. - * Copyright (c) 2003, 2004, 2005 Lev Walkin . - * All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include - -/* Parser states */ -typedef enum { - ST_TEXT, - ST_TAG_START, - ST_TAG_BODY, - ST_TAG_QUOTE_WAIT, - ST_TAG_QUOTED_STRING, - ST_TAG_UNQUOTED_STRING, - ST_COMMENT_WAIT_DASH1, /* ""[0] */ - ST_COMMENT_CLO_RT /* "-->"[1] */ -} pstate_e; - -static const int -_charclass[256] = { - 0,0,0,0,0,0,0,0, 0,1,1,0,1,1,0,0, - 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0, - 1,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0, - 2,2,2,2,2,2,2,2, 2,2,0,0,0,0,0,0, /* 01234567 89 */ - 0,3,3,3,3,3,3,3, 3,3,3,3,3,3,3,3, /* ABCDEFG HIJKLMNO */ - 3,3,3,3,3,3,3,3, 3,3,3,0,0,0,0,0, /* PQRSTUVW XYZ */ - 0,3,3,3,3,3,3,3, 3,3,3,3,3,3,3,3, /* abcdefg hijklmno */ - 3,3,3,3,3,3,3,3, 3,3,3,0,0,0,0,0 /* pqrstuvw xyz */ -}; -#define WHITESPACE(c) (_charclass[(unsigned char)(c)] == 1) -#define ALNUM(c) (_charclass[(unsigned char)(c)] >= 2) -#define ALPHA(c) (_charclass[(unsigned char)(c)] == 3) - -/* Aliases for characters, ASCII/UTF-8 */ -#define EXCLAM 0x21 /* '!' */ -#define CQUOTE 0x22 /* '"' */ -#define CDASH 0x2d /* '-' */ -#define CSLASH 0x2f /* '/' */ -#define LANGLE 0x3c /* '<' */ -#define CEQUAL 0x3d /* '=' */ -#define RANGLE 0x3e /* '>' */ -#define CQUEST 0x3f /* '?' */ - -/* Invoke token callback */ -#define TOKEN_CB_CALL(type, _ns, _current_too, _final) do { \ - int _ret; \ - pstate_e ns = _ns; \ - ssize_t _sz = (p - chunk_start) + _current_too; \ - if (!_sz) { \ - /* Shortcut */ \ - state = _ns; \ - break; \ - } \ - _ret = cb(type, chunk_start, _sz, key); \ - if(_ret < _sz) { \ - if(_current_too && _ret == -1) \ - state = ns; \ - goto finish; \ - } \ - chunk_start = p + _current_too; \ - state = ns; \ - } while(0) - -#define TOKEN_CB(_type, _ns, _current_too) \ - TOKEN_CB_CALL(_type, _ns, _current_too, 0) - -#define PXML_TAG_FINAL_CHUNK_TYPE PXML_TAG_END -#define PXML_COMMENT_FINAL_CHUNK_TYPE PXML_COMMENT_END - -#define TOKEN_CB_FINAL(_type, _ns, _current_too) \ - TOKEN_CB_CALL( _type ## _FINAL_CHUNK_TYPE , _ns, _current_too, 1) - -/* - * Parser itself - */ -ssize_t pxml_parse(int *stateContext, const void *xmlbuf, size_t size, pxml_callback_f *cb, void *key) { - pstate_e state = (pstate_e)*stateContext; - const char *chunk_start = (const char *)xmlbuf; - const char *p = chunk_start; - const char *end = p + size; - - for(; p < end; p++) { - int C = *(const unsigned char *)p; - switch(state) { - case ST_TEXT: - /* - * Initial state: we're in the middle of some text, - * or just have started. - */ - if (C == LANGLE) - /* We're now in the tag, probably */ - TOKEN_CB(PXML_TEXT, ST_TAG_START, 0); - break; - case ST_TAG_START: - if (ALPHA(C) || (C == CSLASH)) - state = ST_TAG_BODY; - else if (C == EXCLAM) - state = ST_COMMENT_WAIT_DASH1; - else - /* - * Not characters and not whitespace. - * Must be something like "3 < 4". - */ - TOKEN_CB(PXML_TEXT, ST_TEXT, 1);/* Flush as data */ - break; - case ST_TAG_BODY: - switch(C) { - case RANGLE: - /* End of the tag */ - TOKEN_CB_FINAL(PXML_TAG, ST_TEXT, 1); - break; - case LANGLE: - /* - * The previous tag wasn't completed, but still - * recognized as valid. (Mozilla-compatible) - */ - TOKEN_CB_FINAL(PXML_TAG, ST_TAG_START, 0); - break; - case CEQUAL: - state = ST_TAG_QUOTE_WAIT; - break; - } - break; - case ST_TAG_QUOTE_WAIT: - /* - * State after the equal sign ("=") in the tag. - */ - switch(C) { - case CQUOTE: - state = ST_TAG_QUOTED_STRING; - break; - case RANGLE: - /* End of the tag */ - TOKEN_CB_FINAL(PXML_TAG, ST_TEXT, 1); - break; - default: - if(!WHITESPACE(C)) - /* Unquoted string value */ - state = ST_TAG_UNQUOTED_STRING; - } - break; - case ST_TAG_QUOTED_STRING: - /* - * Tag attribute's string value in quotes. - */ - if(C == CQUOTE) { - /* Return back to the tag state */ - state = ST_TAG_BODY; - } - break; - case ST_TAG_UNQUOTED_STRING: - if(C == RANGLE) { - /* End of the tag */ - TOKEN_CB_FINAL(PXML_TAG, ST_TEXT, 1); - } else if(WHITESPACE(C)) { - /* Return back to the tag state */ - state = ST_TAG_BODY; - } - break; - case ST_COMMENT_WAIT_DASH1: - if(C == CDASH) { - state = ST_COMMENT_WAIT_DASH2; - } else { - /* Some ordinary tag. */ - state = ST_TAG_BODY; - } - break; - case ST_COMMENT_WAIT_DASH2: - if(C == CDASH) { - /* Seen "<--" */ - state = ST_COMMENT; - } else { - /* Some ordinary tag */ - state = ST_TAG_BODY; - } - break; - case ST_COMMENT: - if(C == CDASH) { - state = ST_COMMENT_CLO_DASH2; - } - break; - case ST_COMMENT_CLO_DASH2: - if(C == CDASH) { - state = ST_COMMENT_CLO_RT; - } else { - /* This is not an end of a comment */ - state = ST_COMMENT; - } - break; - case ST_COMMENT_CLO_RT: - if(C == RANGLE) { - TOKEN_CB_FINAL(PXML_COMMENT, ST_TEXT, 1); - } else if(C == CDASH) { - /* Maintain current state, still waiting for '>' */ - } else { - state = ST_COMMENT; - } - break; - } /* switch(*ptr) */ - } /* for() */ - - /* - * Flush the partially processed chunk, state permitting. - */ - if(p - chunk_start) { - switch (state) { - case ST_COMMENT: - TOKEN_CB(PXML_COMMENT, state, 0); - break; - case ST_TEXT: - TOKEN_CB(PXML_TEXT, state, 0); - break; - default: break; /* a no-op */ - } - } - -finish: - *stateContext = (int)state; - return chunk_start - (const char *)xmlbuf; -} - diff --git a/e2sim/previous/e2apv1sim/e2sim/ASN1c/xer_support.h b/e2sim/previous/e2apv1sim/e2sim/ASN1c/xer_support.h deleted file mode 100644 index c3a36e7..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ASN1c/xer_support.h +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Copyright (c) 2003, 2004 X/IO Labs, xiolabs.com. - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef _XER_SUPPORT_H_ -#define _XER_SUPPORT_H_ - -#include /* Platform-specific types */ - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * Types of data transferred to the application. - */ -typedef enum { - PXML_TEXT, /* Plain text between XML tags. */ - PXML_TAG, /* A tag, starting with '<'. */ - PXML_COMMENT, /* An XML comment, including "". */ - /* - * The following chunk types are reported if the chunk - * terminates the specified XML element. - */ - PXML_TAG_END, /* Tag ended */ - PXML_COMMENT_END /* Comment ended */ -} pxml_chunk_type_e; - -/* - * Callback function that is called by the parser when parsed data is - * available. The _opaque is the pointer to a field containing opaque user - * data specified in pxml_create() call. The chunk type is _type and the text - * data is the piece of buffer identified by _bufid (as supplied to - * pxml_feed() call) starting at offset _offset and of _size bytes size. - * The chunk is NOT '\0'-terminated. - */ -typedef int (pxml_callback_f)(pxml_chunk_type_e _type, - const void *_chunk_data, size_t _chunk_size, void *_key); - -/* - * Parse the given buffer as it were a chunk of XML data. - * Invoke the specified callback each time the meaninful data is found. - * This function returns number of bytes consumed from the bufer. - * It will always be lesser than or equal to the specified _size. - * The next invocation of this function must account the difference. - */ -ssize_t pxml_parse(int *_stateContext, const void *_buf, size_t _size, - pxml_callback_f *cb, void *_key); - -#ifdef __cplusplus -} -#endif - -#endif /* _XER_SUPPORT_H_ */ diff --git a/e2sim/previous/e2apv1sim/e2sim/CMakeLists.txt b/e2sim/previous/e2apv1sim/e2sim/CMakeLists.txt deleted file mode 100644 index fe21e5e..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/CMakeLists.txt +++ /dev/null @@ -1,80 +0,0 @@ -#/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -#******************************************************************************/ - -cmake_minimum_required(VERSION 3.5.1) -set(CMAKE_CXX_COMPILER "/usr/bin/g++") -set(CMAKE_CXX_STANDARD 14) - - - -project(e2sim) - -set (E2SIM_ROOT ./) - - -include_directories("${E2SIM_ROOT}") -include_directories("${E2SIM_ROOT}/src") -include_directories("${E2SIM_ROOT}/src/DEF") -include_directories("${E2SIM_ROOT}/src/SCTP/") -include_directories("${E2SIM_ROOT}/src/E2AP") -include_directories("${E2SIM_ROOT}/src/E2AP/E2SM") -include_directories("${E2SIM_ROOT}/ASN1c") - - -#set(CMAKE_THREAD_PREFER_PTHREAD TRUE) -set(THREADS_PREFER_PTHREAD_FLAG ON) - -find_library( SCTP_STD_LIB sctp ) #needed for sctp_sendmsgf -find_package( Threads REQUIRED ) - -#---------------------------------------------- -file(GLOB E2SIM_SOURCES - "${E2SIM_ROOT}/e2sim.cpp" - "${E2SIM_ROOT}/encode_kpm.cpp" - "${E2SIM_ROOT}/kpm_callbacks.cpp" - "${E2SIM_ROOT}/encode_e2apv1.cpp" - "${E2SIM_ROOT}/src/DEF/*.cpp" - "${E2SIM_ROOT}/src/SCTP/*.cpp" - "${E2SIM_ROOT}/src/E2AP/*.c" - "${E2SIM_ROOT}/src/E2AP/*.cpp" - "${E2SIM_ROOT}/ASN1c/*.c" - - ) - -#add_executable(e2sim ${E2SIM_SOURCES}) -add_executable(kpm_callbacks ${E2SIM_SOURCES}) -#target_link_libraries( e2sim ${SCTP_STD_LIB} ) -target_link_libraries( kpm_callbacks ${SCTP_STD_LIB} ) -#target_link_libraries( e2sim Threads::Threads ) -target_link_libraries( kpm_callbacks Threads::Threads ) - -#---------------------------------------------- -#file(GLOB RICSIM_SOURCES - -# "${E2SIM_ROOT}/ricsim.cpp" -# "${E2SIM_ROOT}/encode_e2apv1.cpp" -# "${E2SIM_ROOT}/src/DEF/*.cpp" -# "${E2SIM_ROOT}/src/SCTP/*.cpp" -# "${E2SIM_ROOT}/src/E2APr/*.c" -# "${E2SIM_ROOT}/src/E2APr/*.cpp" -# "${E2SIM_ROOT}/ASN1c/*.c" -# ) -#add_executable(ricsim ${RICSIM_SOURCES}) -#target_link_libraries( ricsim ${SCTP_STD_LIB} ) - diff --git a/e2sim/previous/e2apv1sim/e2sim/Dockerfile b/e2sim/previous/e2apv1sim/e2sim/Dockerfile deleted file mode 100644 index 348fe48..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/Dockerfile +++ /dev/null @@ -1,55 +0,0 @@ -#/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -#******************************************************************************/ - -FROM ubuntu:16.04 - -# location in the container -ENV E2SIM_DIR /home/e2sim - -# Install necessary packages -RUN apt-get update \ - && apt-get install -y \ - build-essential \ - git \ - cmake \ - libsctp-dev \ - lksctp-tools \ - autoconf \ - automake \ - libtool \ - bison \ - flex \ - libboost-all-dev \ - iputils-ping \ - net-tools \ - nano \ - vim \ - tcpdump \ - net-tools \ - nmap \ - && apt-get clean - -# Copy E2Sim sources into the container -COPY ./ ${E2SIM_DIR} -WORKDIR ${E2SIM_DIR} - -#------------- Build E2SIM ----------------------- -RUN ./build_e2sim --clean -RUN ./build_e2sim -CMD ./build/e2sim 10.107.70.168 36422 \ No newline at end of file diff --git a/e2sim/previous/e2apv1sim/e2sim/README.md b/e2sim/previous/e2apv1sim/e2sim/README.md deleted file mode 100644 index 4277232..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/README.md +++ /dev/null @@ -1,62 +0,0 @@ -#/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -#******************************************************************************/ - -This is an update to E2 Simulator, based on E2AP v1. - - - -# INSTALLATION (tested on Ubuntu 16.04) - 1. Install dependencies - $ sudo apt-get update - $ sudo apt-get install -y - build-essential - git - cmake - libsctp-dev - lksctp-tools - autoconf - automake - libtool - bison - flex - libboost-all-dev - $ sudo apt-get clean - - 2. SET ENVIRONMENT VARIABLE - Add this line to `~/.bashrc` - export E2SIM_DIR= - - 3. Build the official e2sim - $ ./build_e2sim - -# USAGE - $ $E2SIM_DIR/build/e2sim [SERVER IP] [PORT] - - By default, SERVER IP = 127.0.0.1, PORT = 36421 - The RIC (i.e., E2 Manager) will need to setup X2 or E2 connection to e2sim on - this SERVER IP and PORT - -# DOCKER - * Build docker image: run this command from $E2SIM_DIR - $ sudo docker build -f docker/Dockerfile -t [DOCKER_IMAGE]:[TAG] . - - * Example how to run docker container - $ sudo docker run --rm --net host -it [DOCKER_IMAGE]:[TAG] sh -c "./build/e2sim [SERVER IP] [PORT]" - ex: sudo docker run --rm --net host -it e2sim:1.0.0 sh -c "./build/e2sim 127.0.0.1 36422" - diff --git a/e2sim/previous/e2apv1sim/e2sim/build_e2sim b/e2sim/previous/e2apv1sim/e2sim/build_e2sim deleted file mode 100755 index 80a53c6..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/build_e2sim +++ /dev/null @@ -1,86 +0,0 @@ -#!/bin/bash -#/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -#******************************************************************************/ - -set -e - -E2SIM_VERSION='1.4.0' -export E2SIM_DIR=$PWD -source $E2SIM_DIR/tools/build_helper.bash -DOCKER_IMAGE='e2sim' - -print_help() { - echo " - This program installs E2 Simulator - You should have ubuntu 14.xx, updated, and the Linux kernel >= 3.14 - The program is run by default with no option - - USAGE: - ./build_e2sim [OPTIONS] - - OPTIONS: - --clean - Erase all files to make a rebuild from start - --docker - Build docker image - -h - Print this help - " -} - -function main(){ - case "$1" in - --clean) - echo_info "Will clean all previously producted files under build/" - rm -rf $E2SIM_DIR/build - echo_success "Clean Done" - exit - ;; - - --docker) - echo "Will build docker image ${DOCKER_IMAGE}:${E2SIM_VERSION}" - sudo docker build -f docker/Dockerfile -t $DOCKER_IMAGE:$E2SIM_VERSION . - exit - ;; - - "") - ;; - - -h) - print_help - exit 1;; - - *) - echo_error "Unknown option $1" - exit - esac - - BUILD_DIR=$E2SIM_DIR/build - mkdir -p $BUILD_DIR - - echo_info "Will build e2sim" - cd $BUILD_DIR - rm -rf CMakeCache.txt - cmake .. - make -j`nproc` - - echo_success "e2sim compiled" -} - -main "$@" diff --git a/e2sim/previous/e2apv1sim/e2sim/cellMeasReport.txt b/e2sim/previous/e2apv1sim/e2sim/cellMeasReport.txt deleted file mode 100644 index 2c0890f..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/cellMeasReport.txt +++ /dev/null @@ -1,40 +0,0 @@ -{ - "cellMeasReport": { - "du-id": 1000, - "cellMeasReportList": [ - - { - "nrCellIdentity": 0, - "pdcpByteMeasReport": { - "measTimestampPdcpBytes": "2020-04-09 14:33:33,559", - "measPeriodPdcpBytes": 10, - "pdcpBytesDl": 0, - "pdcpBytesUl": 0 - }, - "prbMeasReport": { - "measTimestampPrb": "2020-04-09 14:33:33,559", - "measPeriodPrb": 0, - "availPrbDl": 0, - "availPrbUl": 0 - } - }, - - { - "nrCellIdentity": 1, - "pdcpByteMeasReport": { - "measTimestampPdcpBytes": "2020-04-09 14:33:33,559", - "measPeriodPdcpBytes": 0, - "pdcpBytesDl": 0, - "pdcpBytesUl": 0 - }, - "prbMeasReport": { - "measTimestampPrb": "2020-04-09 14:33:33,559", - "measPeriodPrb": 0, - "availPrbDl": 0, - "availPrbUl": 0 - } - } - ] - } -} - diff --git a/e2sim/previous/e2apv1sim/e2sim/docker/Dockerfile b/e2sim/previous/e2apv1sim/e2sim/docker/Dockerfile deleted file mode 100644 index 1233a12..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/docker/Dockerfile +++ /dev/null @@ -1,54 +0,0 @@ -#/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -#******************************************************************************/ - -FROM ubuntu:16.04 - -# location in the container -ENV E2SIM_DIR /home/e2sim - -# Install necessary packages -RUN apt-get update \ - && apt-get install -y \ - build-essential \ - git \ - cmake \ - libsctp-dev \ - lksctp-tools \ - autoconf \ - automake \ - libtool \ - bison \ - flex \ - libboost-all-dev \ - iputils-ping \ - net-tools \ - nano \ - vim \ - tcpdump \ - net-tools \ - nmap \ - && apt-get clean - -# Copy E2Sim sources into the container -COPY ./ ${E2SIM_DIR} -WORKDIR ${E2SIM_DIR} - -#------------- Build E2SIM ----------------------- -RUN ./build_e2sim --clean -RUN ./build_e2sim diff --git a/e2sim/previous/e2apv1sim/e2sim/docker/container-tag.yaml b/e2sim/previous/e2apv1sim/e2sim/docker/container-tag.yaml deleted file mode 100644 index 5df0816..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/docker/container-tag.yaml +++ /dev/null @@ -1,2 +0,0 @@ ---- -tag: 0.1.1 diff --git a/e2sim/previous/e2apv1sim/e2sim/docker/old/DockerFile_old b/e2sim/previous/e2apv1sim/e2sim/docker/old/DockerFile_old deleted file mode 100644 index 17aa6bd..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/docker/old/DockerFile_old +++ /dev/null @@ -1,53 +0,0 @@ -# -# -# Copyright 2019 AT&T Intellectual Property -# Copyright 2019 Nokia -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -# Docker file to build container for E2 Simulator, for which it can be called -# to run both the E2 Agent and E2 Termination. -# Note: run docker comamnds from root directory of e2sim, e.g., $E2SIM_DIR -# -# build: $ sudo docker build -f docker/Dockerfile -t e2sim . - -FROM ubuntu:16.04 - - -# location in the container -ENV E2SIM_DIR /home/e2sim - -# Install necessary packages -RUN apt-get update \ - && apt-get install -y \ - build-essential \ - git \ - cmake \ - libsctp-dev \ - lksctp-tools \ - autoconf \ - automake \ - libtool \ - bison \ - flex \ - && apt-get clean - -# Install E2Sim -COPY ./ ${E2SIM_DIR} -WORKDIR ${E2SIM_DIR} -RUN ./docker/install_asn1c -RUN ./build_e2sim --clean -RUN ./build_e2sim - -CMD ./build/e2sim diff --git a/e2sim/previous/e2apv1sim/e2sim/docker/old/Dockerfile b/e2sim/previous/e2apv1sim/e2sim/docker/old/Dockerfile deleted file mode 100644 index 6cbfbf5..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/docker/old/Dockerfile +++ /dev/null @@ -1,42 +0,0 @@ -# -# -# Copyright 2019 AT&T Intellectual Property -# Copyright 2019 Nokia -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -FROM e2sim_base - -# ------------ COPY E2SIM codes ------------------ -COPY ./ ${E2SIM_DIR} -WORKDIR ${E2SIM_DIR} - -# ensure an empty rt is there if none is mounted at spinup -COPY docker/empty.rt /usr/local/route/local.rt - -#------------- Build E2SIM ----------------------- -RUN ./build_e2sim --clean -RUN ./build_e2sim - -#-------------- Configure rmr ------------------------- -ENV RMR_SEED_RT=/usr/local/route/local.rt -#export RMR_SEED_RT=$HOME/global_rmr_files/global_rmr_routes.rt - -ENV RMR_RTG_SVC=localhost:9990 -ENV E2TERM_RMR_RCV_PORT=48886 -ENV DEMO_SENDER_PTO=1 -ENV DEMO_MAX_PAYLOAD_BYTES=240 - -# --------------- Run E2Termination --------------------- -CMD ./build/e2sim diff --git a/e2sim/previous/e2apv1sim/e2sim/docker/old/Dockerfile_base b/e2sim/previous/e2apv1sim/e2sim/docker/old/Dockerfile_base deleted file mode 100644 index 7ac932b..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/docker/old/Dockerfile_base +++ /dev/null @@ -1,60 +0,0 @@ -# -# -# Copyright 2019 AT&T Intellectual Property -# Copyright 2019 Nokia -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -# Docker file to build container for E2 Simulator, for which it can be called -# to run both the E2 Agent and E2 Termination. -# Note: run docker comamnds from root directory of e2sim, e.g., $E2SIM_DIR -# -# build with 2 steps -# $ sudo docker build -f docker/Dockerfile_base -t e2sim_base . -# $ sudo docker build -f docker/Dockerfile -t e2sim . -# -# run e2 termination -# $ sudo docker run --rm --net host -it e2sim sh -c "./build/e2sim 127.0.0.2" - -FROM ubuntu:16.04 - - -# location in the container -ENV E2SIM_DIR /home/e2sim - -# Install necessary packages -RUN apt-get update \ - && apt-get install -y \ - build-essential \ - git \ - cmake \ - libsctp-dev \ - lksctp-tools \ - autoconf \ - automake \ - libtool \ - bison \ - flex - -# For rmr -RUN apt-get install -y bash vim ksh iputils-ping -RUN apt-get clean - -# Copy E2Sim to the container -COPY ./ ${E2SIM_DIR} -WORKDIR ${E2SIM_DIR} -RUN ./docker/install_asn1c - -#-------------INSTALL rmr ------------------------ -RUN ./docker/install_rmr diff --git a/e2sim/previous/e2apv1sim/e2sim/docker/old/configure_rmr b/e2sim/previous/e2apv1sim/e2sim/docker/old/configure_rmr deleted file mode 100755 index ff0a685..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/docker/old/configure_rmr +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/bash -# -# -# Copyright 2019 AT&T Intellectual Property -# Copyright 2019 Nokia -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - - -export RMR_SEED_RT=/usr/local/route/local.rt -#export RMR_SEED_RT=$HOME/global_rmr_files/global_rmr_routes.rt -export RMR_RTG_SVC=localhost:9990 -#export DUMMY_SENDER_RMR_RCV_PORT=48086 -export E2TERM_RMR_RCV_PORT=48886 -export DEMO_SENDER_PTO=1 -export DEMO_MAX_PAYLOAD_BYTES=240 diff --git a/e2sim/previous/e2apv1sim/e2sim/docker/old/empty.rt b/e2sim/previous/e2apv1sim/e2sim/docker/old/empty.rt deleted file mode 100644 index 0063bb9..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/docker/old/empty.rt +++ /dev/null @@ -1,5 +0,0 @@ -# an empty route table to put into an image so there is some file there -# if on image start nothing is mounted onto /usr/local/route - -newrt|start -newrt|end diff --git a/e2sim/previous/e2apv1sim/e2sim/docker/old/install_asn1c b/e2sim/previous/e2apv1sim/e2sim/docker/old/install_asn1c deleted file mode 100755 index daf4bfe..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/docker/old/install_asn1c +++ /dev/null @@ -1,29 +0,0 @@ -#!/bin/bash -# -# -# Copyright 2019 AT&T Intellectual Property -# Copyright 2019 Nokia -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -echo "Will install asn1c" -cd tools -rm -rf asn1c -git clone https://gitlab.eurecom.fr/oai/asn1c.git -cd asn1c -git checkout 0a7524184f16e7093990a31d8d4db487a16e5782 -autoreconf -iv -./configure -make -make install diff --git a/e2sim/previous/e2apv1sim/e2sim/docker/old/install_rmr b/e2sim/previous/e2apv1sim/e2sim/docker/old/install_rmr deleted file mode 100755 index 522df48..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/docker/old/install_rmr +++ /dev/null @@ -1,32 +0,0 @@ -#!/bin/bash -# -# -# Copyright 2019 AT&T Intellectual Property -# Copyright 2019 Nokia -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -# pull rmr to $E2SIM_DIR/ and checkout the 'stable' demo commit, -# then build and install in /usr/local - -echo "Will install rmr" -rm -rf rmr -git clone https://gerrit.oran-osc.org/r/ric-plt/lib/rmr -date; ls -al /usr/local/lib -cd rmr -git checkout 6735f136906ce2 -mkdir .build -cd .build -cmake .. -make install diff --git a/e2sim/previous/e2apv1sim/e2sim/docker/old/local.rt b/e2sim/previous/e2apv1sim/e2sim/docker/old/local.rt deleted file mode 100644 index 84ea983..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/docker/old/local.rt +++ /dev/null @@ -1,9 +0,0 @@ -newrt|start -#RMR_RCV_PORT of the receiver is 6560 -rte|0|localhost:6560 - -# this is needed so that receiver acks can be sent via rmr_rts_msg() calls -# here e2 agent is the name of the machine -# is the RMR_RCV_PORT of the sender -rte|89|e2agent:48086 -newrt|end diff --git a/e2sim/previous/e2apv1sim/e2sim/e2sim.cpp b/e2sim/previous/e2apv1sim/e2sim/e2sim.cpp deleted file mode 100644 index 145556e..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/e2sim.cpp +++ /dev/null @@ -1,185 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -#include -#include -#include -#include -#include -#include - -#include "e2sim.hpp" -#include "e2sim_defs.h" -#include "e2sim_sctp.hpp" -#include "e2ap_message_handler.hpp" -#include "encode_e2apv1.hpp" - -using namespace std; - -int client_fd = 0; - -void E2Sim::register_subscription_callback(long func_id, SubscriptionCallback cb) { - printf("%%%%about to register callback for subscription for func_id %d\n", func_id); - subscription_callbacks[func_id] = cb; - -} - -SubscriptionCallback E2Sim::get_subscription_callback(long func_id) { - printf("%%%%we are getting the subscription callback for func id %d\n", func_id); - SubscriptionCallback cb = subscription_callbacks[func_id]; - return cb; - -} - -void E2Sim::register_e2sm(long func_id, OCTET_STRING_t *ostr) { - - //Error conditions: - //If we already have an entry for func_id - - printf("%%%%about to register e2sm func desc for %d\n", func_id); - - ran_functions_registered[func_id] = ostr; - -} - - -void E2Sim::encode_and_send_sctp_data(E2AP_PDU_t* pdu) -{ - uint8_t *buf; - sctp_buffer_t data; - - data.len = e2ap_asn1c_encode_pdu(pdu, &buf); - memcpy(data.buffer, buf, min(data.len, MAX_SCTP_BUFFER)); - - sctp_send_data(client_fd, data); -} - - -void E2Sim::wait_for_sctp_data() -{ - sctp_buffer_t recv_buf; - if(sctp_receive_data(client_fd, recv_buf) > 0) - { - LOG_I("[SCTP] Received new data of size %d", recv_buf.len); - e2ap_handle_sctp_data(client_fd, recv_buf, false, this); - } -} - - -int E2Sim::run_loop(int argc, char* argv[]){ - - printf("Start E2 Agent (E2 Simulator\n"); - - ifstream simfile; - string line; - - simfile.open("simulation.txt", ios::in); - - if (simfile.is_open()) { - - while (getline(simfile, line)) { - cout << line << "\n"; - } - - simfile.close(); - - } - - bool xmlenc = false; - - options_t ops = read_input_options(argc, argv); - - printf("After reading input options\n"); - - //E2 Agent will automatically restart upon sctp disconnection - // int server_fd = sctp_start_server(ops.server_ip, ops.server_port); - - client_fd = sctp_start_client(ops.server_ip, ops.server_port); - E2AP_PDU_t* pdu_setup = (E2AP_PDU_t*)calloc(1,sizeof(E2AP_PDU)); - - printf("After starting client\n"); - printf("client_fd value is %d\n", client_fd); - - std::vector all_funcs; - - //Loop through RAN function definitions that are registered - - for (std::pair elem : ran_functions_registered) { - printf("looping through ran func\n"); - ran_func_info next_func; - - next_func.ranFunctionId = elem.first; - next_func.ranFunctionDesc = elem.second; - next_func.ranFunctionRev = (long)2; - all_funcs.push_back(next_func); - } - - printf("about to call setup request encode\n"); - - generate_e2apv1_setup_request_parameterized(pdu_setup, all_funcs); - - printf("After generating e2setup req\n"); - - xer_fprint(stderr, &asn_DEF_E2AP_PDU, pdu_setup); - - printf("After XER Encoding\n"); - - auto buffer_size = MAX_SCTP_BUFFER; - unsigned char buffer[MAX_SCTP_BUFFER]; - - sctp_buffer_t data; - - char *error_buf = (char*)calloc(300, sizeof(char)); - size_t errlen; - - asn_check_constraints(&asn_DEF_E2AP_PDU, pdu_setup, error_buf, &errlen); - printf("error length %d\n", errlen); - printf("error buf %s\n", error_buf); - - auto er = asn_encode_to_buffer(nullptr, ATS_ALIGNED_BASIC_PER, &asn_DEF_E2AP_PDU, pdu_setup, buffer, buffer_size); - - data.len = er.encoded; - - fprintf(stderr, "er encded is %d\n", er.encoded); - - memcpy(data.buffer, buffer, er.encoded); - - if(sctp_send_data(client_fd, data) > 0) { - LOG_I("[SCTP] Sent E2-SETUP-REQUEST"); - } else { - LOG_E("[SCTP] Unable to send E2-SETUP-REQUEST to peer"); - } - - sctp_buffer_t recv_buf; - - LOG_I("[SCTP] Waiting for SCTP data"); - - while(1) //constantly looking for data on SCTP interface - { - if(sctp_receive_data(client_fd, recv_buf) <= 0) - break; - - LOG_I("[SCTP] Received new data of size %d", recv_buf.len); - - e2ap_handle_sctp_data(client_fd, recv_buf, xmlenc, this); - if (xmlenc) xmlenc = false; - } - - return 0; -} diff --git a/e2sim/previous/e2apv1sim/e2sim/e2sim.hpp b/e2sim/previous/e2apv1sim/e2sim/e2sim.hpp deleted file mode 100644 index a8cb564..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/e2sim.hpp +++ /dev/null @@ -1,37 +0,0 @@ -#ifndef E2SIM_HPP -#define E2SIM_HPP - -#include - -extern "C" { -#include "E2AP-PDU.h" -#include "OCTET_STRING.h" -} - -typedef void (*SubscriptionCallback)(E2AP_PDU_t*); - -class E2Sim; -class E2Sim { - -private: - - std::unordered_map ran_functions_registered; - std::unordered_map subscription_callbacks; - - void wait_for_sctp_data(); - -public: - - SubscriptionCallback get_subscription_callback(long func_id); - - void register_e2sm(long func_id, OCTET_STRING_t* ostr); - - void register_subscription_callback(long func_id, SubscriptionCallback cb); - - void encode_and_send_sctp_data(E2AP_PDU_t* pdu); - - int run_loop(int argc, char* argv[]); - -}; - -#endif diff --git a/e2sim/previous/e2apv1sim/e2sim/encode_e2apv1.cpp b/e2sim/previous/e2apv1sim/e2sim/encode_e2apv1.cpp deleted file mode 100644 index 11fd06d..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/encode_e2apv1.cpp +++ /dev/null @@ -1,1150 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# Copyright (c) 2020 Samsung Electronics Co., Ltd. All Rights Reserved. * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -#include -#include -#include -#include - -#include -#include - - -#include "encode_e2apv1.hpp" - -extern "C" { -#include "E2SM-KPM-RANfunction-Description.h" - -#include "e2ap_asn1c_codec.h" -#include "GlobalE2node-ID.h" -#include "GlobalE2node-gNB-ID.h" -#include "GlobalgNB-ID.h" -#include "OCTET_STRING.h" -#include "asn_application.h" -#include "GNB-ID-Choice.h" -#include "ProtocolIE-Field.h" -#include "E2setupRequest.h" -#include "RICaction-ToBeSetup-Item.h" -#include "RICactions-ToBeSetup-List.h" -#include "RICeventTriggerDefinition.h" -#include "RICsubscriptionRequest.h" -#include "RICsubscriptionResponse.h" -#include "ProtocolIE-SingleContainer.h" -#include "RANfunctions-List.h" -#include "RICindication.h" -#include "RICsubsequentActionType.h" -#include "RICsubsequentAction.h" -#include "RICtimeToWait.h" - -} - -void generate_e2apv1_service_update(E2AP_PDU_t *e2ap_pdu) { - - char* ran_function_op_type = getenv("RAN_FUNCTION_OP_TYPE"); - LOG_D("Ran funciton : %s", ran_function_op_type); - ProtocolIE_ID_t prID; - if (ran_function_op_type != NULL) - { - if (strcmp(ran_function_op_type, "ADD") == 0) - { - prID = ProtocolIE_ID_id_RANfunctionsAdded; - } - else if (strcmp(ran_function_op_type, "DELETE")) - { - prID = ProtocolIE_ID_id_RANfunctionsDeleted; - } - } - else - { - prID = ProtocolIE_ID_id_RANfunctionsModified; - } - - auto *itemIes = (RANfunction_ItemIEs_t *)calloc(1, sizeof(RANfunction_ItemIEs_t)); - itemIes->id = ProtocolIE_ID_id_RANfunction_Item; - itemIes->criticality = Criticality_reject; - itemIes->value.present = RANfunction_ItemIEs__value_PR_RANfunction_Item; - itemIes->value.choice.RANfunction_Item.ranFunctionID = 1; - - E2SM_KPM_RANfunction_Description_t *ranfunc_desc = - (E2SM_KPM_RANfunction_Description_t*)calloc(1,sizeof(E2SM_KPM_RANfunction_Description_t)); - encode_kpm_function_description(ranfunc_desc); - - uint8_t e2smbuffer[8192]; - size_t e2smbuffer_size = 8192; - - asn_codec_ctx_t *opt_cod; - - asn_enc_rval_t er = - asn_encode_to_buffer(opt_cod, - ATS_ALIGNED_BASIC_PER, - &asn_DEF_E2SM_KPM_RANfunction_Description, - ranfunc_desc, e2smbuffer, e2smbuffer_size); - - fprintf(stderr, "er encded is %d\n", er.encoded); - fprintf(stderr, "after encoding message\n"); - - OCTET_STRING_t *ranfuncdesc_str = (OCTET_STRING_t*)calloc(1,sizeof(OCTET_STRING_t)); - ranfuncdesc_str->buf = (uint8_t*)calloc(1,er.encoded); - ranfuncdesc_str->size = er.encoded; - memcpy(ranfuncdesc_str->buf, e2smbuffer, er.encoded); - - - - itemIes->value.choice.RANfunction_Item.ranFunctionDefinition = *ranfuncdesc_str; - itemIes->value.choice.RANfunction_Item.ranFunctionRevision = (long)3; - - - RICserviceUpdate_IEs_t *e2serviceUpdateList = (RICserviceUpdate_IEs_t *)calloc(1, sizeof(RICserviceUpdate_IEs_t)); - e2serviceUpdateList->id = prID; /// is it correct ??? - e2serviceUpdateList->criticality = Criticality_reject; - e2serviceUpdateList->value.present = RICserviceUpdate_IEs__value_PR_RANfunctions_List; - ASN_SEQUENCE_ADD(&e2serviceUpdateList->value.choice.RANfunctions_List.list, itemIes); - - RICserviceUpdate_t *ricServiceUpdate = (RICserviceUpdate_t *)calloc(1, sizeof(RICserviceUpdate_t)); - ASN_SEQUENCE_ADD(&ricServiceUpdate->protocolIEs.list, e2serviceUpdateList); - - InitiatingMessage_t *initiatingMessage = (InitiatingMessage_t *)calloc(1, sizeof(InitiatingMessage_t)); - initiatingMessage->criticality = Criticality_reject; - initiatingMessage->procedureCode = ProcedureCode_id_RICserviceUpdate; - initiatingMessage->value.present = InitiatingMessage__value_PR_RICserviceUpdate; - initiatingMessage->value.choice.RICserviceUpdate = *ricServiceUpdate; - - E2AP_PDU_PR pres6 = E2AP_PDU_PR_initiatingMessage; - e2ap_pdu->present = pres6; - e2ap_pdu->choice.initiatingMessage = initiatingMessage; -} - -long get_function_id_from_subscription(E2AP_PDU_t *e2ap_pdu) { - - RICsubscriptionRequest_t orig_req = - e2ap_pdu->choice.initiatingMessage->value.choice.RICsubscriptionRequest; - - RICsubscriptionResponse_IEs_t *ricreqid = - (RICsubscriptionResponse_IEs_t*)calloc(1, sizeof(RICsubscriptionResponse_IEs_t)); - - int count = orig_req.protocolIEs.list.count; - int size = orig_req.protocolIEs.list.size; - - RICsubscriptionRequest_IEs_t **ies = (RICsubscriptionRequest_IEs_t**)orig_req.protocolIEs.list.array; - - fprintf(stderr, "count%d\n", count); - fprintf(stderr, "size%d\n", size); - - RICsubscriptionRequest_IEs__value_PR pres; - - long func_id; - - for (int i=0; i < count; i++) { - RICsubscriptionRequest_IEs_t *next_ie = ies[i]; - pres = next_ie->value.present; - - fprintf(stderr, "next present value %d\n", pres); - - if (pres == RICsubscriptionRequest_IEs__value_PR_RANfunctionID) { - func_id = next_ie->value.choice.RANfunctionID; - } - - } - - return func_id; - -} - -void generate_e2apv1_setup_request_parameterized(E2AP_PDU_t *e2ap_pdu, std::vector all_funcs) { - // long ranFunctionId, uint8_t *ranFuncDescEncoded, int ranFuncLength) { - - // uint8_t *buf = (uint8_t *)"gnb1" - - BIT_STRING_t *gnb_bstring = (BIT_STRING_t*)calloc(1, sizeof(BIT_STRING_t));; - gnb_bstring->buf = (uint8_t*)calloc(1,4); - gnb_bstring->size = 4; - gnb_bstring->buf[0] = 0xB5; - gnb_bstring->buf[1] = 0xC6; - gnb_bstring->buf[2] = 0x77; - gnb_bstring->buf[3] = 0x88; - - gnb_bstring->bits_unused = 3; - - uint8_t *buf2 = (uint8_t *)"747"; - OCTET_STRING_t *plmn = (OCTET_STRING_t*)calloc(1, sizeof(OCTET_STRING_t)); - plmn->buf = (uint8_t*)calloc(1,3); - memcpy(plmn->buf, buf2, 3); - plmn->size = 3; - - GNB_ID_Choice_t *gnbchoice = (GNB_ID_Choice_t*)calloc(1,sizeof(GNB_ID_Choice_t)); - GNB_ID_Choice_PR pres2 = GNB_ID_Choice_PR_gnb_ID; - gnbchoice->present = pres2; - gnbchoice->choice.gnb_ID = *gnb_bstring; - - GlobalgNB_ID_t *gnb = (GlobalgNB_ID_t*)calloc(1, sizeof(GlobalgNB_ID_t)); - gnb->plmn_id = *plmn; - gnb->gnb_id = *gnbchoice; - - GlobalE2node_gNB_ID_t *e2gnb = (GlobalE2node_gNB_ID_t*)calloc(1, sizeof(GlobalE2node_gNB_ID_t)); - e2gnb->global_gNB_ID = *gnb; - - GlobalE2node_ID_t *globale2nodeid = (GlobalE2node_ID_t*)calloc(1, sizeof(GlobalE2node_ID_t)); - GlobalE2node_ID_PR pres; - pres = GlobalE2node_ID_PR_gNB; - globale2nodeid->present = pres; - globale2nodeid->choice.gNB = e2gnb; - - E2setupRequestIEs_t *e2setuprid = (E2setupRequestIEs_t*)calloc(1, sizeof(E2setupRequestIEs_t)); - E2setupRequestIEs__value_PR pres3; - pres3 = E2setupRequestIEs__value_PR_GlobalE2node_ID; - e2setuprid->id = 3; - e2setuprid->criticality = 0; - e2setuprid->value.choice.GlobalE2node_ID = *globale2nodeid; - e2setuprid->value.present = pres3; - - - auto *ranFlistIEs = (E2setupRequestIEs_t *)calloc(1, sizeof(E2setupRequestIEs_t)); - ASN_STRUCT_RESET(asn_DEF_E2setupRequestIEs, ranFlistIEs); - ranFlistIEs->criticality = 0; - ranFlistIEs->id = ProtocolIE_ID_id_RANfunctionsAdded; - ranFlistIEs->value.present = E2setupRequestIEs__value_PR_RANfunctions_List; - - - for (int i = 0; i < all_funcs.size(); i++) { - - ran_func_info nextRanFunc = all_funcs.at(i); - long nextRanFuncId = nextRanFunc.ranFunctionId; - OCTET_STRING_t *nextRanFuncDesc = nextRanFunc.ranFunctionDesc; - long nextRanFuncRev = nextRanFunc.ranFunctionRev; - - auto *itemIes = (RANfunction_ItemIEs_t *)calloc(1, sizeof(RANfunction_ItemIEs_t)); - itemIes->id = ProtocolIE_ID_id_RANfunction_Item; - itemIes->criticality = Criticality_reject; - itemIes->value.present = RANfunction_ItemIEs__value_PR_RANfunction_Item; - itemIes->value.choice.RANfunction_Item.ranFunctionID = nextRanFuncId; - - int ranFuncLength = strlen((char*)nextRanFuncDesc); - - itemIes->value.choice.RANfunction_Item.ranFunctionDefinition = *nextRanFuncDesc; - itemIes->value.choice.RANfunction_Item.ranFunctionRevision = nextRanFuncRev; - - ASN_SEQUENCE_ADD(&ranFlistIEs->value.choice.RANfunctions_List.list, itemIes); - - } - - E2setupRequest_t *e2setupreq = (E2setupRequest_t*)calloc(1, sizeof(E2setupRequest_t)); - ASN_SEQUENCE_ADD(&e2setupreq->protocolIEs.list, e2setuprid); - ASN_SEQUENCE_ADD(&e2setupreq->protocolIEs.list, ranFlistIEs); - - InitiatingMessage__value_PR pres4; - pres4 = InitiatingMessage__value_PR_E2setupRequest; - InitiatingMessage_t *initmsg = (InitiatingMessage_t*)calloc(1, sizeof(InitiatingMessage_t)); - - initmsg->procedureCode = ProcedureCode_id_E2setup; - initmsg->criticality = Criticality_reject; - initmsg->value.present = pres4; - initmsg->value.choice.E2setupRequest = *e2setupreq; - - E2AP_PDU_PR pres5; - pres5 = E2AP_PDU_PR_initiatingMessage; - - - e2ap_pdu->present = pres5; - e2ap_pdu->choice.initiatingMessage = initmsg; - -} - -void generate_e2apv1_setup_request(E2AP_PDU_t *e2ap_pdu) { - - // uint8_t *buf = (uint8_t *)"gnb1" - - BIT_STRING_t *gnb_bstring = (BIT_STRING_t*)calloc(1, sizeof(BIT_STRING_t));; - gnb_bstring->buf = (uint8_t*)calloc(1,4); - gnb_bstring->size = 4; - gnb_bstring->buf[0] = 0xB5; - gnb_bstring->buf[1] = 0xC6; - gnb_bstring->buf[2] = 0x77; - gnb_bstring->buf[3] = 0x88; - - gnb_bstring->bits_unused = 3; - - uint8_t *buf2 = (uint8_t *)"747"; - OCTET_STRING_t *plmn = (OCTET_STRING_t*)calloc(1, sizeof(OCTET_STRING_t)); - plmn->buf = (uint8_t*)calloc(1,3); - memcpy(plmn->buf, buf2, 3); - plmn->size = 3; - - GNB_ID_Choice_t *gnbchoice = (GNB_ID_Choice_t*)calloc(1,sizeof(GNB_ID_Choice_t)); - GNB_ID_Choice_PR pres2 = GNB_ID_Choice_PR_gnb_ID; - gnbchoice->present = pres2; - gnbchoice->choice.gnb_ID = *gnb_bstring; - - GlobalgNB_ID_t *gnb = (GlobalgNB_ID_t*)calloc(1, sizeof(GlobalgNB_ID_t)); - gnb->plmn_id = *plmn; - gnb->gnb_id = *gnbchoice; - - GlobalE2node_gNB_ID_t *e2gnb = (GlobalE2node_gNB_ID_t*)calloc(1, sizeof(GlobalE2node_gNB_ID_t)); - e2gnb->global_gNB_ID = *gnb; - - GlobalE2node_ID_t *globale2nodeid = (GlobalE2node_ID_t*)calloc(1, sizeof(GlobalE2node_ID_t)); - GlobalE2node_ID_PR pres; - pres = GlobalE2node_ID_PR_gNB; - globale2nodeid->present = pres; - globale2nodeid->choice.gNB = e2gnb; - - E2setupRequestIEs_t *e2setuprid = (E2setupRequestIEs_t*)calloc(1, sizeof(E2setupRequestIEs_t)); - E2setupRequestIEs__value_PR pres3; - pres3 = E2setupRequestIEs__value_PR_GlobalE2node_ID; - e2setuprid->id = 3; - e2setuprid->criticality = 0; - e2setuprid->value.choice.GlobalE2node_ID = *globale2nodeid; - e2setuprid->value.present = pres3; - - - auto *ranFlistIEs = (E2setupRequestIEs_t *)calloc(1, sizeof(E2setupRequestIEs_t)); - ASN_STRUCT_RESET(asn_DEF_E2setupRequestIEs, ranFlistIEs); - ranFlistIEs->criticality = 0; - ranFlistIEs->id = ProtocolIE_ID_id_RANfunctionsAdded; - ranFlistIEs->value.present = E2setupRequestIEs__value_PR_RANfunctions_List; - - auto *itemIes = (RANfunction_ItemIEs_t *)calloc(1, sizeof(RANfunction_ItemIEs_t)); - itemIes->id = ProtocolIE_ID_id_RANfunction_Item; - itemIes->criticality = Criticality_reject; - itemIes->value.present = RANfunction_ItemIEs__value_PR_RANfunction_Item; - itemIes->value.choice.RANfunction_Item.ranFunctionID = 1; - - E2SM_KPM_RANfunction_Description_t *ranfunc_desc = - (E2SM_KPM_RANfunction_Description_t*)calloc(1,sizeof(E2SM_KPM_RANfunction_Description_t)); - encode_kpm_function_description(ranfunc_desc); - - uint8_t e2smbuffer[8192]; - size_t e2smbuffer_size = 8192; - - asn_codec_ctx_t *opt_cod; - - asn_enc_rval_t er = - asn_encode_to_buffer(opt_cod, - ATS_ALIGNED_BASIC_PER, - &asn_DEF_E2SM_KPM_RANfunction_Description, - ranfunc_desc, e2smbuffer, e2smbuffer_size); - - fprintf(stderr, "er encded is %d\n", er.encoded); - fprintf(stderr, "after encoding message\n"); - - OCTET_STRING_t *ranfuncdesc_str = (OCTET_STRING_t*)calloc(1,sizeof(OCTET_STRING_t)); - ranfuncdesc_str->buf = (uint8_t*)calloc(1,er.encoded); - ranfuncdesc_str->size = er.encoded; - memcpy(ranfuncdesc_str->buf, e2smbuffer, er.encoded); - - - itemIes->value.choice.RANfunction_Item.ranFunctionDefinition = *ranfuncdesc_str; - itemIes->value.choice.RANfunction_Item.ranFunctionRevision = (long)2; - - ASN_SEQUENCE_ADD(&ranFlistIEs->value.choice.RANfunctions_List.list, itemIes); - - E2setupRequest_t *e2setupreq = (E2setupRequest_t*)calloc(1, sizeof(E2setupRequest_t)); - ASN_SEQUENCE_ADD(&e2setupreq->protocolIEs.list, e2setuprid); - ASN_SEQUENCE_ADD(&e2setupreq->protocolIEs.list, ranFlistIEs); - - InitiatingMessage__value_PR pres4; - pres4 = InitiatingMessage__value_PR_E2setupRequest; - InitiatingMessage_t *initmsg = (InitiatingMessage_t*)calloc(1, sizeof(InitiatingMessage_t)); - - initmsg->procedureCode = ProcedureCode_id_E2setup; - initmsg->criticality = Criticality_reject; - initmsg->value.present = pres4; - initmsg->value.choice.E2setupRequest = *e2setupreq; - - E2AP_PDU_PR pres5; - pres5 = E2AP_PDU_PR_initiatingMessage; - - - e2ap_pdu->present = pres5; - e2ap_pdu->choice.initiatingMessage = initmsg; - -} - - -void generate_e2apv1_setup_response(E2AP_PDU_t *e2ap_pdu) { - - E2setupResponseIEs *resp_ies1 = (E2setupResponseIEs_t*)calloc(1, sizeof(E2setupResponseIEs_t)); - E2setupResponseIEs *resp_ies2 = (E2setupResponseIEs_t*)calloc(1, sizeof(E2setupResponseIEs_t)); - E2setupResponseIEs *resp_ies3 = (E2setupResponseIEs_t*)calloc(1, sizeof(E2setupResponseIEs_t)); - - uint8_t *buf = (uint8_t *)"gnb1"; - - BIT_STRING_t *ricid_bstring = (BIT_STRING_t*)calloc(1,sizeof(BIT_STRING_t)); - ricid_bstring->buf = buf; - ricid_bstring->size = 4; - ricid_bstring->bits_unused = 0; - - uint8_t *buf2 = (uint8_t *)"plmn3"; - OCTET_STRING_t *plmn = (OCTET_STRING_t*)calloc(1,sizeof(OCTET_STRING_t)); - plmn->buf = buf2; - plmn->size = 5; - - GlobalRIC_ID_t *globalricid = (GlobalRIC_ID_t*)calloc(1,sizeof(GlobalRIC_ID_t)); - globalricid->pLMN_Identity = *plmn; - globalricid->ric_ID = *ricid_bstring; - - E2setupResponseIEs__value_PR pres1; - pres1 = E2setupResponseIEs__value_PR_GlobalRIC_ID; - - resp_ies1->id = ProtocolIE_ID_id_GlobalRIC_ID; - resp_ies1->criticality = 0; - resp_ies1->value.present = pres1; - resp_ies1->value.choice.GlobalRIC_ID = *globalricid; - - E2setupResponse_t *e2setupresp = (E2setupResponse_t*)calloc(1,sizeof(E2setupResponse_t)); - int ret = ASN_SEQUENCE_ADD(&e2setupresp->protocolIEs.list, resp_ies1); - - - SuccessfulOutcome__value_PR pres; - pres = SuccessfulOutcome__value_PR_E2setupResponse; - SuccessfulOutcome_t *successoutcome = (SuccessfulOutcome_t*)calloc(1, sizeof(SuccessfulOutcome_t)); - successoutcome->procedureCode = 1; - successoutcome->criticality = 0; - successoutcome->value.present = pres; - successoutcome->value.choice.E2setupResponse = *e2setupresp; - - E2AP_PDU_PR pres5 = E2AP_PDU_PR_successfulOutcome; - - e2ap_pdu->present = pres5; - e2ap_pdu->choice.successfulOutcome = successoutcome; - -} - - -void generate_e2apv1_subscription_request(E2AP_PDU *e2ap_pdu) { - - fprintf(stderr, "in sub 1\n"); - RICsubscriptionRequest_IEs_t *ricreqid = (RICsubscriptionRequest_IEs_t*)calloc(1, sizeof(RICsubscriptionRequest_IEs_t)); - fprintf(stderr, "in sub 2\n"); - ASN_STRUCT_RESET(asn_DEF_RICsubscriptionRequest_IEs, ricreqid); - fprintf(stderr, "in sub 3\n"); - auto *ricsubrid = (RICsubscriptionRequest_IEs_t*)calloc(1, sizeof(RICsubscriptionRequest_IEs_t)); - fprintf(stderr, "in sub 4\n"); - ASN_STRUCT_RESET(asn_DEF_RICsubscriptionRequest_IEs, ricsubrid); - - fprintf(stderr, "in generate sub\n"); - uint8_t *buf2 = (uint8_t *)"SubscriptionTriggers"; - fprintf(stderr, "in gen sub 1\n"); - OCTET_STRING_t *triggerdef = (OCTET_STRING_t*)calloc(1, sizeof(OCTET_STRING_t)); - triggerdef->buf = (uint8_t *)calloc(1,20); - triggerdef->size = 20; - memcpy(triggerdef->buf, buf2, triggerdef->size); - - - fprintf(stderr, "sub1\n"); - ProtocolIE_ID_t proto_id= ProtocolIE_ID_id_RICaction_ToBeSetup_Item; - - RICaction_ToBeSetup_ItemIEs__value_PR pres6; - pres6 = RICaction_ToBeSetup_ItemIEs__value_PR_RICaction_ToBeSetup_Item; - - printf("sub2\n"); - - uint8_t *buf5 = (uint8_t *)"ActionDef"; - - OCTET_STRING_t *actdef = (OCTET_STRING_t*)calloc(1, sizeof(OCTET_STRING_t)); - actdef->buf = (uint8_t *)calloc(1,9); - actdef->size = 9; - memcpy(triggerdef->buf, buf5, 9); - - auto *sa = (RICsubsequentAction_t *) calloc(1, sizeof(RICsubsequentAction_t)); - ASN_STRUCT_RESET(asn_DEF_RICsubsequentAction, sa); - - sa->ricTimeToWait = RICtimeToWait_w500ms; - sa->ricSubsequentActionType = RICsubsequentActionType_continue; - - printf("sub3\n"); - - RICaction_ToBeSetup_ItemIEs_t *action_item_ies = (RICaction_ToBeSetup_ItemIEs_t *)calloc(1, sizeof(RICaction_ToBeSetup_Item_t)); - action_item_ies->id = proto_id; - action_item_ies->criticality = 0; - - action_item_ies->value.present = pres6; - action_item_ies->value.choice.RICaction_ToBeSetup_Item.ricActionID = 5; - action_item_ies->value.choice.RICaction_ToBeSetup_Item.ricActionType = RICactionType_report; - action_item_ies->value.choice.RICaction_ToBeSetup_Item.ricActionDefinition = actdef; - action_item_ies->value.choice.RICaction_ToBeSetup_Item.ricSubsequentAction = sa; - - - printf("sub5\n"); - - - RICsubscriptionRequest_IEs__value_PR pres3; - printf("sub6.1\n"); - pres3 = RICsubscriptionRequest_IEs__value_PR_RICsubscriptionDetails; - ricsubrid->id = ProtocolIE_ID_id_RICsubscriptionDetails; - printf("sub6.2\n"); - - ricsubrid->criticality = 0; - ricsubrid->value.present = pres3; - printf("sub6.3\n"); - - ricsubrid->value.choice.RICsubscriptionDetails.ricEventTriggerDefinition = *triggerdef; - printf("sub6.4\n"); - - ASN_SEQUENCE_ADD(&ricsubrid->value.choice.RICsubscriptionDetails.ricAction_ToBeSetup_List.list, action_item_ies); - - printf("sub7\n"); - - - ricreqid->id = ProtocolIE_ID_id_RICrequestID; - ricreqid->criticality = 0; - ricreqid->value.present = RICsubscriptionRequest_IEs__value_PR_RICrequestID; - ricreqid->value.choice.RICrequestID.ricRequestorID = 22; - ricreqid->value.choice.RICrequestID.ricInstanceID = 6; - - RICsubscriptionRequest_t *ricsubreq = (RICsubscriptionRequest_t*)calloc(1, sizeof(RICsubscriptionRequest_t)); - - ASN_SEQUENCE_ADD(&ricsubreq->protocolIEs.list,ricreqid); - ASN_SEQUENCE_ADD(&ricsubreq->protocolIEs.list,ricsubrid); - - - - InitiatingMessage__value_PR pres4; - pres4 = InitiatingMessage__value_PR_RICsubscriptionRequest; - InitiatingMessage_t *initmsg = (InitiatingMessage_t*)calloc(1, sizeof(InitiatingMessage_t)); - initmsg->procedureCode = ProcedureCode_id_RICsubscription; - initmsg->criticality = Criticality_reject; - initmsg->value.present = pres4; - initmsg->value.choice.RICsubscriptionRequest = *ricsubreq; - - E2AP_PDU_PR pres5; - pres5 = E2AP_PDU_PR_initiatingMessage; - - - e2ap_pdu->present = pres5; - e2ap_pdu->choice.initiatingMessage = initmsg; - - char *error_buf = (char*)calloc(300, sizeof(char));; - size_t errlen; - - asn_check_constraints(&asn_DEF_E2AP_PDU, e2ap_pdu, error_buf, &errlen); - printf("error length %d\n", errlen); - printf("error buf %s\n", error_buf); - - -} - -void generate_e2apv1_subscription_response_success(E2AP_PDU *e2ap_pdu, long reqActionIdsAccepted[], - long reqActionIdsRejected[], int accept_size, int reject_size, - long reqRequestorId, long reqInstanceId) { - - RICsubscriptionResponse_IEs_t *respricreqid = - (RICsubscriptionResponse_IEs_t*)calloc(1, sizeof(RICsubscriptionResponse_IEs_t)); - - respricreqid->id = ProtocolIE_ID_id_RICrequestID; - respricreqid->criticality = 0; - respricreqid->value.present = RICsubscriptionResponse_IEs__value_PR_RICrequestID; - respricreqid->value.choice.RICrequestID.ricRequestorID = reqRequestorId; - - respricreqid->value.choice.RICrequestID.ricInstanceID = reqInstanceId; - - - RICsubscriptionResponse_IEs_t *ricactionadmitted = - (RICsubscriptionResponse_IEs_t*)calloc(1, sizeof(RICsubscriptionResponse_IEs_t)); - ricactionadmitted->id = ProtocolIE_ID_id_RICactions_Admitted; - ricactionadmitted->criticality = 0; - ricactionadmitted->value.present = RICsubscriptionResponse_IEs__value_PR_RICaction_Admitted_List; - - RICaction_Admitted_List_t* admlist = - (RICaction_Admitted_List_t*)calloc(1,sizeof(RICaction_Admitted_List_t)); - ricactionadmitted->value.choice.RICaction_Admitted_List = *admlist; - - - int numAccept = accept_size; - int numReject = reject_size; - - - - for (int i=0; i < numAccept ; i++) { - fprintf(stderr, "in for loop i = %d\n", i); - - long aid = reqActionIdsAccepted[i]; - - RICaction_Admitted_ItemIEs_t *admitie = (RICaction_Admitted_ItemIEs_t*)calloc(1,sizeof(RICaction_Admitted_ItemIEs_t)); - admitie->id = ProtocolIE_ID_id_RICaction_Admitted_Item; - admitie->criticality = 0; - admitie->value.present = RICaction_Admitted_ItemIEs__value_PR_RICaction_Admitted_Item; - admitie->value.choice.RICaction_Admitted_Item.ricActionID = aid; - - ASN_SEQUENCE_ADD(&ricactionadmitted->value.choice.RICaction_Admitted_List.list, admitie); - - } - - RICsubscriptionResponse_t *ricsubresp = (RICsubscriptionResponse_t*)calloc(1,sizeof(RICsubscriptionResponse_t)); - ASN_SEQUENCE_ADD(&ricsubresp->protocolIEs.list, respricreqid); - ASN_SEQUENCE_ADD(&ricsubresp->protocolIEs.list, ricactionadmitted); - - - if (numReject > 0) { - - RICsubscriptionResponse_IEs_t *ricactionrejected = - (RICsubscriptionResponse_IEs_t*)calloc(1, sizeof(RICsubscriptionResponse_IEs_t)); - ricactionrejected->id = ProtocolIE_ID_id_RICactions_NotAdmitted; - ricactionrejected->criticality = 0; - ricactionrejected->value.present = RICsubscriptionResponse_IEs__value_PR_RICaction_NotAdmitted_List; - - RICaction_NotAdmitted_List_t* rejectlist = - (RICaction_NotAdmitted_List_t*)calloc(1,sizeof(RICaction_NotAdmitted_List_t)); - ricactionadmitted->value.choice.RICaction_NotAdmitted_List = *rejectlist; - - for (int i=0; i < numReject; i++) { - fprintf(stderr, "in for loop i = %d\n", i); - - long aid = reqActionIdsRejected[i]; - - RICaction_NotAdmitted_ItemIEs_t *noadmitie = (RICaction_NotAdmitted_ItemIEs_t*)calloc(1,sizeof(RICaction_NotAdmitted_ItemIEs_t)); - noadmitie->id = ProtocolIE_ID_id_RICaction_NotAdmitted_Item; - noadmitie->criticality = 0; - noadmitie->value.present = RICaction_NotAdmitted_ItemIEs__value_PR_RICaction_NotAdmitted_Item; - noadmitie->value.choice.RICaction_NotAdmitted_Item.ricActionID = aid; - - ASN_SEQUENCE_ADD(&ricactionrejected->value.choice.RICaction_NotAdmitted_List.list, noadmitie); - ASN_SEQUENCE_ADD(&ricsubresp->protocolIEs.list, ricactionrejected); - } - } - - - SuccessfulOutcome__value_PR pres2; - pres2 = SuccessfulOutcome__value_PR_RICsubscriptionResponse; - SuccessfulOutcome_t *successoutcome = (SuccessfulOutcome_t*)calloc(1, sizeof(SuccessfulOutcome_t)); - successoutcome->procedureCode = ProcedureCode_id_RICsubscription; - successoutcome->criticality = 0; - successoutcome->value.present = pres2; - successoutcome->value.choice.RICsubscriptionResponse = *ricsubresp; - - E2AP_PDU_PR pres5 = E2AP_PDU_PR_successfulOutcome; - - e2ap_pdu->present = pres5; - e2ap_pdu->choice.successfulOutcome = successoutcome; - - char *error_buf = (char*)calloc(300, sizeof(char)); - size_t errlen; - - asn_check_constraints(&asn_DEF_E2AP_PDU, e2ap_pdu, error_buf, &errlen); - printf("error length %d\n", errlen); - printf("error buf %s\n", error_buf); - - -} - -void generate_e2apv1_subscription_response(E2AP_PDU *e2ap_pdu, E2AP_PDU *sub_req_pdu) { - - //Gather details of the request - - RICsubscriptionRequest_t orig_req = - sub_req_pdu->choice.initiatingMessage->value.choice.RICsubscriptionRequest; - - RICsubscriptionResponse_IEs_t *ricreqid = - (RICsubscriptionResponse_IEs_t*)calloc(1, sizeof(RICsubscriptionResponse_IEs_t)); - - int count = orig_req.protocolIEs.list.count; - int size = orig_req.protocolIEs.list.size; - - RICsubscriptionRequest_IEs_t **ies = (RICsubscriptionRequest_IEs_t**)orig_req.protocolIEs.list.array; - - fprintf(stderr, "count%d\n", count); - fprintf(stderr, "size%d\n", size); - - RICsubscriptionRequest_IEs__value_PR pres; - - long responseRequestorId; - long responseInstanceId; - long responseActionId; - - std::vector actionIds; - - for (int i=0; i < count; i++) { - RICsubscriptionRequest_IEs_t *next_ie = ies[i]; - pres = next_ie->value.present; - - fprintf(stderr, "next present value %d\n", pres); - - switch(pres) { - case RICsubscriptionRequest_IEs__value_PR_RICrequestID: - { - RICrequestID_t reqId = next_ie->value.choice.RICrequestID; - long requestorId = reqId.ricRequestorID; - long instanceId = reqId.ricInstanceID; - fprintf(stderr, "requestorId %d\n", requestorId); - fprintf(stderr, "instanceId %d\n", instanceId); - responseRequestorId = requestorId; - responseInstanceId = instanceId; - - break; - } - case RICsubscriptionRequest_IEs__value_PR_RANfunctionID: - break; - case RICsubscriptionRequest_IEs__value_PR_RICsubscriptionDetails: - { - RICsubscriptionDetails_t subDetails = next_ie->value.choice.RICsubscriptionDetails; - RICeventTriggerDefinition_t triggerDef = subDetails.ricEventTriggerDefinition; - RICactions_ToBeSetup_List_t actionList = subDetails.ricAction_ToBeSetup_List; - - int actionCount = actionList.list.count; - fprintf(stderr, "action count%d\n", actionCount); - - auto **item_array = actionList.list.array; - - for (int i=0; i < actionCount; i++) { - //RICaction_ToBeSetup_Item_t - auto *next_item = item_array[i]; - RICactionID_t actionId = ((RICaction_ToBeSetup_ItemIEs*)next_item)->value.choice.RICaction_ToBeSetup_Item.ricActionID; - fprintf(stderr, "Next Action ID %ld\n", actionId); - responseActionId = actionId; - actionIds.push_back(responseActionId); - } - - break; - } - } - - } - - fprintf(stderr, "After Processing Subscription Request\n"); - - fprintf(stderr, "requestorId %d\n", responseRequestorId); - fprintf(stderr, "instanceId %d\n", responseInstanceId); - - - for (int i=0; i < actionIds.size(); i++) { - fprintf(stderr, "Action ID %d %ld\n", i, actionIds.at(i)); - - } - - - RICsubscriptionResponse_IEs_t *respricreqid = - (RICsubscriptionResponse_IEs_t*)calloc(1, sizeof(RICsubscriptionResponse_IEs_t)); - - respricreqid->id = ProtocolIE_ID_id_RICrequestID; - respricreqid->criticality = 0; - respricreqid->value.present = RICsubscriptionResponse_IEs__value_PR_RICrequestID; - respricreqid->value.choice.RICrequestID.ricRequestorID = responseRequestorId; - - respricreqid->value.choice.RICrequestID.ricInstanceID = responseInstanceId; - - - RICsubscriptionResponse_IEs_t *ricactionadmitted = - (RICsubscriptionResponse_IEs_t*)calloc(1, sizeof(RICsubscriptionResponse_IEs_t)); - ricactionadmitted->id = ProtocolIE_ID_id_RICactions_Admitted; - ricactionadmitted->criticality = 0; - ricactionadmitted->value.present = RICsubscriptionResponse_IEs__value_PR_RICaction_Admitted_List; - - RICaction_Admitted_List_t* admlist = - (RICaction_Admitted_List_t*)calloc(1,sizeof(RICaction_Admitted_List_t)); - ricactionadmitted->value.choice.RICaction_Admitted_List = *admlist; - - for (int i=0; i < actionIds.size(); i++) { - fprintf(stderr, "in for loop i = %d\n", i); - - long aid = actionIds.at(i); - - RICaction_Admitted_ItemIEs_t *admitie = (RICaction_Admitted_ItemIEs_t*)calloc(1,sizeof(RICaction_Admitted_ItemIEs_t)); - admitie->id = ProtocolIE_ID_id_RICaction_Admitted_Item; - admitie->criticality = 0; - admitie->value.present = RICaction_Admitted_ItemIEs__value_PR_RICaction_Admitted_Item; - admitie->value.choice.RICaction_Admitted_Item.ricActionID = aid; - - ASN_SEQUENCE_ADD(&ricactionadmitted->value.choice.RICaction_Admitted_List.list, admitie); - - } - - - RICsubscriptionResponse_t *ricsubresp = (RICsubscriptionResponse_t*)calloc(1,sizeof(RICsubscriptionResponse_t)); - - ASN_SEQUENCE_ADD(&ricsubresp->protocolIEs.list, respricreqid); - ASN_SEQUENCE_ADD(&ricsubresp->protocolIEs.list, ricactionadmitted); - - - SuccessfulOutcome__value_PR pres2; - pres2 = SuccessfulOutcome__value_PR_RICsubscriptionResponse; - SuccessfulOutcome_t *successoutcome = (SuccessfulOutcome_t*)calloc(1, sizeof(SuccessfulOutcome_t)); - successoutcome->procedureCode = ProcedureCode_id_RICsubscription; - successoutcome->criticality = 0; - successoutcome->value.present = pres2; - successoutcome->value.choice.RICsubscriptionResponse = *ricsubresp; - - E2AP_PDU_PR pres5 = E2AP_PDU_PR_successfulOutcome; - - e2ap_pdu->present = pres5; - e2ap_pdu->choice.successfulOutcome = successoutcome; - - char *error_buf = (char*)calloc(300, sizeof(char)); - size_t errlen; - - asn_check_constraints(&asn_DEF_E2AP_PDU, e2ap_pdu, error_buf, &errlen); - printf("error length %d\n", errlen); - printf("error buf %s\n", error_buf); - -} - -void generate_e2apv1_indication_request_parameterized(E2AP_PDU *e2ap_pdu, - long requestorId, - long instanceId, - long ranFunctionId, - long actionId, - long seqNum, - uint8_t *ind_header_buf, - int header_length, - uint8_t *ind_message_buf, - int message_length) { - - fprintf(stderr, "ind1\n"); - RICindication_IEs_t *ricind_ies = (RICindication_IEs_t*)calloc(1, sizeof(RICindication_IEs_t)); - RICindication_IEs_t *ricind_ies2 = (RICindication_IEs_t*)calloc(1, sizeof(RICindication_IEs_t)); - RICindication_IEs_t *ricind_ies3 = (RICindication_IEs_t*)calloc(1, sizeof(RICindication_IEs_t)); - RICindication_IEs_t *ricind_ies4 = (RICindication_IEs_t*)calloc(1, sizeof(RICindication_IEs_t)); - RICindication_IEs_t *ricind_ies5 = (RICindication_IEs_t*)calloc(1, sizeof(RICindication_IEs_t)); - RICindication_IEs_t *ricind_ies6 = (RICindication_IEs_t*)calloc(1, sizeof(RICindication_IEs_t)); - RICindication_IEs_t *ricind_ies7 = (RICindication_IEs_t*)calloc(1, sizeof(RICindication_IEs_t)); - RICindication_IEs_t *ricind_ies8 = (RICindication_IEs_t*)calloc(1, sizeof(RICindication_IEs_t)); - - RICindication_IEs__value_PR pres3; - - pres3 = RICindication_IEs__value_PR_RICrequestID; - ricind_ies->id = ProtocolIE_ID_id_RICrequestID; - ricind_ies->criticality = 0; - ricind_ies->value.present = pres3; - ricind_ies->value.choice.RICrequestID.ricRequestorID = requestorId; - ricind_ies->value.choice.RICrequestID.ricInstanceID = instanceId; - - fprintf(stderr, "ind2\n"); - - pres3 = RICindication_IEs__value_PR_RANfunctionID; - ricind_ies2->id = ProtocolIE_ID_id_RANfunctionID; - ricind_ies2->criticality = 0; - ricind_ies2->value.present = pres3; - ricind_ies2->value.choice.RANfunctionID = ranFunctionId; - - - ricind_ies3->id = ProtocolIE_ID_id_RICactionID; - ricind_ies3->criticality = 0; - pres3 = RICindication_IEs__value_PR_RICactionID; - ricind_ies3->value.present = pres3; - ricind_ies3->value.choice.RICactionID = actionId; - - - pres3 = RICindication_IEs__value_PR_RICindicationSN; - ricind_ies4->id = ProtocolIE_ID_id_RICindicationSN; - ricind_ies4->criticality = 0; - ricind_ies4->value.present = pres3; - ricind_ies4->value.choice.RICindicationSN = seqNum; - - //Indication type is REPORT - pres3 = RICindication_IEs__value_PR_RICindicationType; - ricind_ies5->id = ProtocolIE_ID_id_RICindicationType; - ricind_ies5->criticality = 0; - ricind_ies5->value.present = pres3; - ricind_ies5->value.choice.RICindicationType = 0; - - - uint8_t *buf2 = (uint8_t *)"reportheader"; - OCTET_STRING_t *hdr_str = (OCTET_STRING_t*)calloc(1,sizeof(OCTET_STRING_t)); - - hdr_str->buf = (uint8_t*)calloc(1,header_length); - hdr_str->size = header_length; - memcpy(hdr_str->buf, ind_header_buf, header_length); - - fprintf(stderr, "ind3\n"); - - ricind_ies6->value.choice.RICindicationHeader.buf = (uint8_t*)calloc(1,header_length); - - pres3 = RICindication_IEs__value_PR_RICindicationHeader; - ricind_ies6->id = ProtocolIE_ID_id_RICindicationHeader; - ricind_ies6->criticality = 0; - ricind_ies6->value.present = pres3; - ricind_ies6->value.choice.RICindicationHeader.size = header_length; - memcpy(ricind_ies6->value.choice.RICindicationHeader.buf, ind_header_buf, header_length); - - ricind_ies7->value.choice.RICindicationMessage.buf = (uint8_t*)calloc(1,8192); - - - - - pres3 = RICindication_IEs__value_PR_RICindicationMessage; - ricind_ies7->id = ProtocolIE_ID_id_RICindicationMessage; - fprintf(stderr, "after encoding message 1\n"); - - ricind_ies7->criticality = 0; - ricind_ies7->value.present = pres3; - - fprintf(stderr, "after encoding message 2\n"); - - fprintf(stderr, "after encoding message 3\n"); - ricind_ies7->value.choice.RICindicationMessage.size = message_length; - - fprintf(stderr, "after encoding message 4\n"); - memcpy(ricind_ies7->value.choice.RICindicationMessage.buf, ind_message_buf, message_length); - - fprintf(stderr, "after encoding message 5\n"); - - uint8_t *cpid_buf = (uint8_t *)"cpid"; - OCTET_STRING_t cpid_str; - - printf("5.1\n"); - - int cpid_buf_len = strlen((char*)cpid_buf); - pres3 = RICindication_IEs__value_PR_RICcallProcessID; - ricind_ies8->id = ProtocolIE_ID_id_RICcallProcessID; - - ricind_ies8->criticality = 0; - ricind_ies8->value.present = pres3; - - ricind_ies8->value.choice.RICcallProcessID.buf = (uint8_t*)calloc(1,cpid_buf_len); - ricind_ies8->value.choice.RICcallProcessID.size = cpid_buf_len; - - memcpy(ricind_ies8->value.choice.RICcallProcessID.buf, cpid_buf, cpid_buf_len); - - printf("5.2\n"); - - RICindication_t *ricindication = (RICindication_t*)calloc(1, sizeof(RICindication_t)); - - - int ret; - - ret = ASN_SEQUENCE_ADD(&ricindication->protocolIEs.list, ricind_ies); - - ret = ASN_SEQUENCE_ADD(&ricindication->protocolIEs.list, ricind_ies2); - - printf("5.3\n"); - - ret = ASN_SEQUENCE_ADD(&ricindication->protocolIEs.list, ricind_ies3); - - printf("5.35\n"); - - ret = ASN_SEQUENCE_ADD(&ricindication->protocolIEs.list, ricind_ies4); - - printf("5.36\n"); - - ret = ASN_SEQUENCE_ADD(&ricindication->protocolIEs.list, ricind_ies5); - - printf("5.4\n"); - - ret = ASN_SEQUENCE_ADD(&ricindication->protocolIEs.list, ricind_ies6); - - printf("5.5\n"); - - ret = ASN_SEQUENCE_ADD(&ricindication->protocolIEs.list, ricind_ies7); - - // ret = ASN_SEQUENCE_ADD(&ricindication->protocolIEs.list, ricind_ies8); - - - InitiatingMessage__value_PR pres4; - pres4 = InitiatingMessage__value_PR_RICindication; - InitiatingMessage_t *initmsg = (InitiatingMessage_t*)calloc(1, sizeof(InitiatingMessage_t)); - initmsg->procedureCode = 5; - initmsg->criticality = 1; - initmsg->value.present = pres4; - initmsg->value.choice.RICindication = *ricindication; - - E2AP_PDU_PR pres5; - pres5 = E2AP_PDU_PR_initiatingMessage; - - e2ap_pdu->present = pres5; - e2ap_pdu->choice.initiatingMessage = initmsg; - - char *error_buf = (char*)calloc(300, sizeof(char)); - size_t errlen; - - asn_check_constraints(&asn_DEF_E2AP_PDU, e2ap_pdu, error_buf, &errlen); - printf("error length %d\n", errlen); - printf("error buf %s\n", error_buf); - - xer_fprint(stderr, &asn_DEF_E2AP_PDU, e2ap_pdu); - -} - -void generate_e2apv1_indication_request(E2AP_PDU *e2ap_pdu) { - fprintf(stderr, "ind1\n"); - RICindication_IEs_t *ricind_ies = (RICindication_IEs_t*)calloc(1, sizeof(RICindication_IEs_t)); - RICindication_IEs_t *ricind_ies2 = (RICindication_IEs_t*)calloc(1, sizeof(RICindication_IEs_t)); - RICindication_IEs_t *ricind_ies3 = (RICindication_IEs_t*)calloc(1, sizeof(RICindication_IEs_t)); - RICindication_IEs_t *ricind_ies4 = (RICindication_IEs_t*)calloc(1, sizeof(RICindication_IEs_t)); - RICindication_IEs_t *ricind_ies5 = (RICindication_IEs_t*)calloc(1, sizeof(RICindication_IEs_t)); - RICindication_IEs_t *ricind_ies6 = (RICindication_IEs_t*)calloc(1, sizeof(RICindication_IEs_t)); - RICindication_IEs_t *ricind_ies7 = (RICindication_IEs_t*)calloc(1, sizeof(RICindication_IEs_t)); - RICindication_IEs_t *ricind_ies8 = (RICindication_IEs_t*)calloc(1, sizeof(RICindication_IEs_t)); - - RICindication_IEs__value_PR pres3; - - pres3 = RICindication_IEs__value_PR_RICrequestID; - ricind_ies->id = ProtocolIE_ID_id_RICrequestID; - ricind_ies->criticality = 0; - ricind_ies->value.present = pres3; - ricind_ies->value.choice.RICrequestID.ricRequestorID = 25; - ricind_ies->value.choice.RICrequestID.ricInstanceID = 3; - - fprintf(stderr, "ind2\n"); - - pres3 = RICindication_IEs__value_PR_RANfunctionID; - ricind_ies2->id = ProtocolIE_ID_id_RANfunctionID; - ricind_ies2->criticality = 0; - ricind_ies2->value.present = pres3; - ricind_ies2->value.choice.RANfunctionID = 70; - - - ricind_ies3->id = ProtocolIE_ID_id_RICactionID; - ricind_ies3->criticality = 0; - pres3 = RICindication_IEs__value_PR_RICactionID; - ricind_ies3->value.present = pres3; - ricind_ies3->value.choice.RICactionID = 80; - - - pres3 = RICindication_IEs__value_PR_RICindicationSN; - ricind_ies4->id = ProtocolIE_ID_id_RICindicationSN; - ricind_ies4->criticality = 0; - ricind_ies4->value.present = pres3; - ricind_ies4->value.choice.RICindicationSN = 45; - - pres3 = RICindication_IEs__value_PR_RICindicationType; - ricind_ies5->id = ProtocolIE_ID_id_RICindicationType; - ricind_ies5->criticality = 0; - ricind_ies5->value.present = pres3; - ricind_ies5->value.choice.RICindicationType = 0; - - - uint8_t *buf2 = (uint8_t *)"reportheader"; - OCTET_STRING_t *hdr_str = (OCTET_STRING_t*)calloc(1,sizeof(OCTET_STRING_t)); - hdr_str->buf = (uint8_t*)calloc(1,12); - hdr_str->size = 12; - memcpy(hdr_str->buf, buf2, 12); - - fprintf(stderr, "ind3\n"); - - ricind_ies6->value.choice.RICindicationHeader.buf = (uint8_t*)calloc(1,12); - - pres3 = RICindication_IEs__value_PR_RICindicationHeader; - ricind_ies6->id = ProtocolIE_ID_id_RICindicationHeader; - ricind_ies6->criticality = 0; - ricind_ies6->value.present = pres3; - ricind_ies6->value.choice.RICindicationHeader.size = 12; - memcpy(ricind_ies6->value.choice.RICindicationHeader.buf, buf2, 12); - - ricind_ies7->value.choice.RICindicationMessage.buf = (uint8_t*)calloc(1,8192); - - - - E2SM_KPM_RANfunction_Description_t *e2sm_desc = - (E2SM_KPM_RANfunction_Description_t*)calloc(1,sizeof(E2SM_KPM_RANfunction_Description_t)); - - encode_kpm_function_description(e2sm_desc); - - - uint8_t e2smbuffer[8192]; - size_t e2smbuffer_size = 8192; - - asn_codec_ctx_t *opt_cod; - - - asn_enc_rval_t er = - asn_encode_to_buffer(opt_cod, - ATS_ALIGNED_BASIC_PER, - &asn_DEF_E2SM_KPM_RANfunction_Description, - e2sm_desc, e2smbuffer, e2smbuffer_size); - - - fprintf(stderr, "er encded is %d\n", er.encoded); - fprintf(stderr, "after encoding message\n"); - - OCTET_STRING_t *msg_str = (OCTET_STRING_t*)calloc(1,sizeof(OCTET_STRING_t)); - msg_str->buf = (uint8_t*)calloc(1,er.encoded); - msg_str->size = er.encoded; - memcpy(msg_str->buf, e2smbuffer, er.encoded); - - - pres3 = RICindication_IEs__value_PR_RICindicationMessage; - ricind_ies7->id = ProtocolIE_ID_id_RICindicationMessage; - fprintf(stderr, "after encoding message 1\n"); - - ricind_ies7->criticality = 0; - ricind_ies7->value.present = pres3; - - fprintf(stderr, "after encoding message 2\n"); - - fprintf(stderr, "after encoding message 3\n"); - ricind_ies7->value.choice.RICindicationMessage.size = er.encoded; - - fprintf(stderr, "after encoding message 4\n"); - memcpy(ricind_ies7->value.choice.RICindicationMessage.buf, e2smbuffer, er.encoded); - - fprintf(stderr, "after encoding message 5\n"); - - uint8_t *buf4 = (uint8_t *)"cpid"; - OCTET_STRING_t cpid_str; - cpid_str.buf = buf4; - cpid_str.size = 4; - - - pres3 = RICindication_IEs__value_PR_RICcallProcessID; - ricind_ies8->id = ProtocolIE_ID_id_RICcallProcessID; - - ricind_ies8->criticality = 0; - ricind_ies8->value.present = pres3; - - ricind_ies8->value.choice.RICcallProcessID = cpid_str; - - - RICindication_t *ricindication = (RICindication_t*)calloc(1, sizeof(RICindication_t)); - - - int ret; - /* - ret = ASN_SEQUENCE_ADD(&ricindication->protocolIEs.list, ricind_ies); - - ret = ASN_SEQUENCE_ADD(&ricindication->protocolIEs.list, ricind_ies2); - - ret = ASN_SEQUENCE_ADD(&ricindication->protocolIEs.list, ricind_ies3); - ret = ASN_SEQUENCE_ADD(&ricindication->protocolIEs.list, ricind_ies4); - ret = ASN_SEQUENCE_ADD(&ricindication->protocolIEs.list, ricind_ies5); - - ret = ASN_SEQUENCE_ADD(&ricindication->protocolIEs.list, ricind_ies6); - */ - ret = ASN_SEQUENCE_ADD(&ricindication->protocolIEs.list, ricind_ies7); - - ret = ASN_SEQUENCE_ADD(&ricindication->protocolIEs.list, ricind_ies8); - - - InitiatingMessage__value_PR pres4; - pres4 = InitiatingMessage__value_PR_RICindication; - InitiatingMessage_t *initmsg = (InitiatingMessage_t*)calloc(1, sizeof(InitiatingMessage_t)); - initmsg->procedureCode = 5; - initmsg->criticality = 1; - initmsg->value.present = pres4; - initmsg->value.choice.RICindication = *ricindication; - - E2AP_PDU_PR pres5; - pres5 = E2AP_PDU_PR_initiatingMessage; - - e2ap_pdu->present = pres5; - e2ap_pdu->choice.initiatingMessage = initmsg; - - char *error_buf = (char*)calloc(300, sizeof(char));; - size_t errlen; - - asn_check_constraints(&asn_DEF_E2AP_PDU, e2ap_pdu, error_buf, &errlen); - printf("error length %d\n", errlen); - printf("error buf %s\n", error_buf); - - xer_fprint(stderr, &asn_DEF_E2AP_PDU, e2ap_pdu); -} - - -void generate_e2apv1_indication_response(E2AP_PDU *e2ap_pdu) { - - -} diff --git a/e2sim/previous/e2apv1sim/e2sim/encode_e2apv1.hpp b/e2sim/previous/e2apv1sim/e2sim/encode_e2apv1.hpp deleted file mode 100644 index c072c65..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/encode_e2apv1.hpp +++ /dev/null @@ -1,75 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# Copyright (c) 2020 Samsung Electronics Co., Ltd. All Rights Reserved. * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -#ifndef ENCODE_E2APV1_HPP -#define ENCODE_E2APV1_HPP -/* -#include -#include -#include -*/ - -//#include -//#include -//#include -#include - -//#include "e2sim_sctp.hpp" -//#include "e2ap_message_handler.hpp" -#include "encode_kpm.hpp" - - -extern "C" { - //#include "e2sim_defs.h" -#include "E2AP-PDU.h" - - -} - -struct ran_func_info { - long ranFunctionId; - OCTET_STRING_t *ranFunctionDesc; - long ranFunctionRev; -}; - -long get_function_id_from_subscription(E2AP_PDU_t *e2ap_pdu); - -void buildSubsReq(E2AP_PDU_t *pdu); - -void generate_e2apv1_setup_request(E2AP_PDU_t *setup_req_pdu); - -//void generate_e2apv1_setup_request_parameterized(E2AP_PDU_t *setup_req_pdu, long ranFuncId, uint8_t* ranFuncDesc, int ranFuncLength); -void generate_e2apv1_setup_request_parameterized(E2AP_PDU_t *setup_req_pdu, std::vector all_funcs); - -void generate_e2apv1_setup_response(E2AP_PDU_t *setup_resp_pdu); - -void generate_e2apv1_subscription_request(E2AP_PDU_t *sub_req_pdu); - -void generate_e2apv1_subscription_response(E2AP_PDU_t *sub_resp_pdu, E2AP_PDU_t *sub_req_pdu); - -void generate_e2apv1_indication_request(E2AP_PDU_t *ind_req_pdu); - -void generate_e2apv1_subscription_response_success(E2AP_PDU *e2ap_pdu, long reqActionIdsAccepted[], long reqActionIdsRejected[], int accept_size, int reject_size, long reqRequestorId, long reqInstanceId); - -void generate_e2apv1_indication_request_parameterized(E2AP_PDU *e2ap_pdu, long requestorId, long instanceId, long ranFunctionId, long actionId, long seqNum, uint8_t *ind_header_buf, int header_length, uint8_t *ind_message_buf, int message_length); - -void generate_e2apv1_service_update(E2AP_PDU_t *e2ap_pdu); - -#endif diff --git a/e2sim/previous/e2apv1sim/e2sim/encode_kpm.cpp b/e2sim/previous/e2apv1sim/e2sim/encode_kpm.cpp deleted file mode 100644 index d518a36..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/encode_kpm.cpp +++ /dev/null @@ -1,1853 +0,0 @@ -#include -#include -#include -#include -#include - -#include "encode_kpm.hpp" - -using namespace std; - -void encode_kpm_function_description(E2SM_KPM_RANfunction_Description_t* ranfunc_desc) { - - printf("kpm0\n"); - - uint8_t *buf = (uint8_t*)"ORAN-E2SM-KPM"; - uint8_t *buf2 = (uint8_t*)"KPM monitor"; - uint8_t *buf3 = (uint8_t*)"OID123"; - - OCTET_STRING_t *sname = (OCTET_STRING_t*)calloc(1, sizeof(OCTET_STRING_t)); - sname->buf = (uint8_t*)calloc(1,13); - - memcpy(sname->buf, buf, 13); - sname->size = strlen((char*)buf); - ranfunc_desc->ranFunction_Name.ranFunction_ShortName = *sname; - - long inst = 1; - - ASN_STRUCT_RESET(asn_DEF_E2SM_KPM_RANfunction_Description, ranfunc_desc); - - // ranfunc_desc->ranFunction_Name.ranFunction_Description = (OCTET_STRING_t*)calloc(1, sizeof(OCTET_STRING_t)); - ranfunc_desc->ranFunction_Name.ranFunction_Description.buf = (uint8_t*)calloc(1,strlen((char*)buf2)); - memcpy(ranfunc_desc->ranFunction_Name.ranFunction_Description.buf, buf2, strlen((char*)buf2)); - ranfunc_desc->ranFunction_Name.ranFunction_Description.size = strlen((char*)buf2); - ranfunc_desc->ranFunction_Name.ranFunction_Instance = &inst; - - printf("kpm0.9\n"); - - // ranfunc_desc->ranFunction_Name.ranFunction_E2SM_OID = (OCTET_STRING_t*)calloc(1, sizeof(OCTET_STRING_t)); - ranfunc_desc->ranFunction_Name.ranFunction_E2SM_OID.buf = (uint8_t*)calloc(1,strlen((char*)buf3)); - memcpy(ranfunc_desc->ranFunction_Name.ranFunction_E2SM_OID.buf, buf3, strlen((char*)buf3)); - ranfunc_desc->ranFunction_Name.ranFunction_E2SM_OID.size = strlen((char*)buf3); - - printf("kpm2\n"); - - - RIC_EventTriggerStyle_List_t *trigger_style = - (RIC_EventTriggerStyle_List_t*)calloc(1, sizeof(RIC_EventTriggerStyle_List_t)); - trigger_style->ric_EventTriggerStyle_Type = 1; - uint8_t *buf4 = (uint8_t*)"Periodic report"; - // trigger_style->ric_EventTriggerStyle_Name = (OCTET_STRING_t*)calloc(1, sizeof(OCTET_STRING_t)); - trigger_style->ric_EventTriggerStyle_Name.buf = (uint8_t*)calloc(1,strlen((char*)buf4)); - memcpy(trigger_style->ric_EventTriggerStyle_Name.buf, buf4, strlen((char*)buf4)); - trigger_style->ric_EventTriggerStyle_Name.size = strlen((char*)buf4); - trigger_style->ric_EventTriggerFormat_Type = 5; - - printf("kpm3\n"); - - ranfunc_desc->e2SM_KPM_RANfunction_Item.ric_EventTriggerStyle_List = - (E2SM_KPM_RANfunction_Description::E2SM_KPM_RANfunction_Description__e2SM_KPM_RANfunction_Item::E2SM_KPM_RANfunction_Description__e2SM_KPM_RANfunction_Item__ric_EventTriggerStyle_List*)calloc(1,sizeof(E2SM_KPM_RANfunction_Description::E2SM_KPM_RANfunction_Description__e2SM_KPM_RANfunction_Item::E2SM_KPM_RANfunction_Description__e2SM_KPM_RANfunction_Item__ric_EventTriggerStyle_List)); - - int ret = ASN_SEQUENCE_ADD(&ranfunc_desc->e2SM_KPM_RANfunction_Item.ric_EventTriggerStyle_List->list , trigger_style); - printf("ret is %d\n", ret); - - RIC_ReportStyle_List_t *report_style1 = (RIC_ReportStyle_List_t*)calloc(1, sizeof(RIC_ReportStyle_List_t)); - report_style1->ric_ReportStyle_Type = 1; - - uint8_t *buf5 = (uint8_t*)"O-DU Measurement Container for the 5GC connected deployment"; - - printf("kpm4\n"); - - // report_style1->ric_ReportStyle_Name = (OCTET_STRING_t*)calloc(1, sizeof(OCTET_STRING_t)); - report_style1->ric_ReportStyle_Name.buf = (uint8_t*)calloc(1,strlen((char*)buf5)); - memcpy(report_style1->ric_ReportStyle_Name.buf, buf5, strlen((char*)buf5)); - report_style1->ric_ReportStyle_Name.size = strlen((char*)buf5); - report_style1->ric_IndicationHeaderFormat_Type = 1; - report_style1->ric_IndicationMessageFormat_Type = 1; - - printf("kpm5\n"); - - RIC_ReportStyle_List_t *report_style2 = (RIC_ReportStyle_List_t*)calloc(1, sizeof(RIC_ReportStyle_List_t)); - report_style2->ric_ReportStyle_Type = 2; - - uint8_t *buf6 = (uint8_t*)"O-DU Measurement Container for the EPC connected deployment"; - - // report_style2->ric_ReportStyle_Name = (OCTET_STRING_t*)calloc(1, sizeof(OCTET_STRING_t)); - - - report_style2->ric_ReportStyle_Name.buf = (uint8_t*)calloc(1,strlen((char*)buf6)); - memcpy(report_style2->ric_ReportStyle_Name.buf, buf6, strlen((char*)buf6)); - report_style2->ric_ReportStyle_Name.size = strlen((char*)buf6); - report_style2->ric_IndicationHeaderFormat_Type = 1; - report_style2->ric_IndicationMessageFormat_Type = 1; - - printf("kpm6\n"); - - RIC_ReportStyle_List_t *report_style3 = (RIC_ReportStyle_List_t*)calloc(1, sizeof(RIC_ReportStyle_List_t)); - report_style3->ric_ReportStyle_Type = 3; - - uint8_t *buf7 = (uint8_t*)"O-CU-CP Measurement Container for the 5GC connected deployment"; - - // report_style3->ric_ReportStyle_Name = (OCTET_STRING_t*)calloc(1, sizeof(OCTET_STRING_t)); - report_style3->ric_ReportStyle_Name.buf = (uint8_t*)calloc(1,strlen((char*)buf7)); - memcpy(report_style3->ric_ReportStyle_Name.buf, buf7, strlen((char*)buf7)); - report_style3->ric_ReportStyle_Name.size = strlen((char*)buf7); - report_style3->ric_IndicationHeaderFormat_Type = 1; - report_style3->ric_IndicationMessageFormat_Type = 1; - - RIC_ReportStyle_List_t *report_style4 = (RIC_ReportStyle_List_t*)calloc(1, sizeof(RIC_ReportStyle_List_t)); - report_style4->ric_ReportStyle_Type = 4; - - uint8_t *buf8 = (uint8_t*)"O-CU-CP Measurement Container for the EPC connected deployment"; - - // report_style3->ric_ReportStyle_Name = (OCTET_STRING_t*)calloc(1, sizeof(OCTET_STRING_t)); - report_style4->ric_ReportStyle_Name.buf = (uint8_t*)calloc(1,strlen((char*)buf8)); - memcpy(report_style4->ric_ReportStyle_Name.buf, buf8, strlen((char*)buf8)); - report_style4->ric_ReportStyle_Name.size = strlen((char*)buf8); - report_style4->ric_IndicationHeaderFormat_Type = 1; - report_style4->ric_IndicationMessageFormat_Type = 1; - - RIC_ReportStyle_List_t *report_style5 = (RIC_ReportStyle_List_t*)calloc(1, sizeof(RIC_ReportStyle_List_t)); - report_style5->ric_ReportStyle_Type = 5; - - uint8_t *buf9 = (uint8_t*)"O-CU-UP Measurement Container for the 5GC connected deployment"; - - // report_style3->ric_ReportStyle_Name = (OCTET_STRING_t*)calloc(1, sizeof(OCTET_STRING_t)); - report_style5->ric_ReportStyle_Name.buf = (uint8_t*)calloc(1,strlen((char*)buf9)); - memcpy(report_style5->ric_ReportStyle_Name.buf, buf9, strlen((char*)buf9)); - report_style5->ric_ReportStyle_Name.size = strlen((char*)buf9); - report_style5->ric_IndicationHeaderFormat_Type = 1; - report_style5->ric_IndicationMessageFormat_Type = 1; - - - RIC_ReportStyle_List_t *report_style6 = (RIC_ReportStyle_List_t*)calloc(1, sizeof(RIC_ReportStyle_List_t)); - report_style6->ric_ReportStyle_Type = 6; - - uint8_t *buf10 = (uint8_t*)"O-CU-UP Measurement Container for the EPC connected deployment"; - - // report_style3->ric_ReportStyle_Name = (OCTET_STRING_t*)calloc(1, sizeof(OCTET_STRING_t)); - report_style6->ric_ReportStyle_Name.buf = (uint8_t*)calloc(1,strlen((char*)buf10)); - memcpy(report_style6->ric_ReportStyle_Name.buf, buf10, strlen((char*)buf10)); - report_style6->ric_ReportStyle_Name.size = strlen((char*)buf10); - report_style6->ric_IndicationHeaderFormat_Type = 1; - report_style6->ric_IndicationMessageFormat_Type = 1; - - - ranfunc_desc->e2SM_KPM_RANfunction_Item.ric_ReportStyle_List = - (E2SM_KPM_RANfunction_Description::E2SM_KPM_RANfunction_Description__e2SM_KPM_RANfunction_Item::E2SM_KPM_RANfunction_Description__e2SM_KPM_RANfunction_Item__ric_ReportStyle_List*)calloc(1,sizeof(E2SM_KPM_RANfunction_Description::E2SM_KPM_RANfunction_Description__e2SM_KPM_RANfunction_Item::E2SM_KPM_RANfunction_Description__e2SM_KPM_RANfunction_Item__ric_ReportStyle_List)); - - ASN_SEQUENCE_ADD(&ranfunc_desc->e2SM_KPM_RANfunction_Item.ric_ReportStyle_List->list, report_style1); - ASN_SEQUENCE_ADD(&ranfunc_desc->e2SM_KPM_RANfunction_Item.ric_ReportStyle_List->list, report_style2); - ASN_SEQUENCE_ADD(&ranfunc_desc->e2SM_KPM_RANfunction_Item.ric_ReportStyle_List->list, report_style3); - ASN_SEQUENCE_ADD(&ranfunc_desc->e2SM_KPM_RANfunction_Item.ric_ReportStyle_List->list, report_style4); - ASN_SEQUENCE_ADD(&ranfunc_desc->e2SM_KPM_RANfunction_Item.ric_ReportStyle_List->list, report_style5); - ASN_SEQUENCE_ADD(&ranfunc_desc->e2SM_KPM_RANfunction_Item.ric_ReportStyle_List->list, report_style6); - - xer_fprint(stderr, &asn_DEF_E2SM_KPM_RANfunction_Description, ranfunc_desc); -} - -void encode_kpm_ocuup_user_level(RAN_Container_t *ranco) { - - uint8_t *buf = (uint8_t*)"2020.06.13 13:01:05.222"; - Timestamp_t *ts = (Timestamp_t*)calloc(1,sizeof(Timestamp_t)); - ts->buf = (uint8_t*)calloc(strlen((char*)buf),1); - ts->size = strlen((char*)buf); - memcpy(ts->buf,buf,ts->size); - - printf("enc1\n"); - - CU_UP_Usage_Report_CellResourceReportItem_t *report_item = - (CU_UP_Usage_Report_CellResourceReportItem_t*)calloc(1,sizeof(CU_UP_Usage_Report_CellResourceReportItem_t)); - - uint8_t *buf2 = (uint8_t*)"747"; - - OCTET_STRING_t *plmnidstr = (OCTET_STRING_t*)calloc(1,sizeof(OCTET_STRING_t)); - plmnidstr->buf = (uint8_t*)calloc(3,1); - plmnidstr->size = 3; - memcpy(plmnidstr->buf, buf2, plmnidstr->size); - - printf("enc2\n"); - - NRCellIdentity_t *nrcellid = (NRCellIdentity_t*)calloc(1,sizeof(NRCellIdentity_t)); - uint8_t* buf3 = (uint8_t*)"12340"; - nrcellid->buf = (uint8_t*)calloc(1,5); - memcpy(nrcellid->buf, buf3, 5); - nrcellid->size = 5; - nrcellid->bits_unused = 4; - - NRCGI *nrcgi = (NRCGI*)calloc(1,sizeof(NRCGI)); - nrcgi->pLMN_Identity = *plmnidstr; - nrcgi->nRCellIdentity = *nrcellid; - - printf("enc3\n"); - - report_item->nRCGI = *nrcgi; - - CU_UP_Usage_Report_UeResourceReportItem *ue_report_item = - (CU_UP_Usage_Report_UeResourceReportItem*)calloc(1,sizeof(CU_UP_Usage_Report_UeResourceReportItem)); - - printf("enc3.2\n"); - - uint8_t* crnti_str = (uint8_t*)"1111"; - OCTET_STRING *crnti = (OCTET_STRING*)calloc(1,sizeof(OCTET_STRING)); - crnti->buf = (uint8_t*)calloc(1,4); - - printf("enc3.3\n"); - - crnti->size = strlen((char*)crnti_str); - - printf("enc3.4\n"); - memcpy(crnti->buf, crnti_str, crnti->size); - - printf("enc4\n"); - - INTEGER_t *bytesdl = (INTEGER_t*)calloc(1, sizeof(INTEGER_t)); - uint8_t buffer[1]; - buffer[0]= 40000; - bytesdl->buf = (uint8_t*)calloc(1,1); - memcpy(bytesdl->buf, buffer,1); - bytesdl->size = 1; - - INTEGER_t *bytesul = (INTEGER_t*)calloc(1, sizeof(INTEGER_t)); - uint8_t buffer1[1]; - buffer1[0] = 50000; - bytesul->buf = (uint8_t*)calloc(1,1); - memcpy(bytesul->buf, buffer1, 1); - bytesul->size = 1; - - - ue_report_item->c_RNTI = *crnti; - ue_report_item->pDCPBytesDL = bytesdl; - ue_report_item->pDCPBytesUL = bytesul; - - - ASN_SEQUENCE_ADD(&report_item->ueResourceReportList.list, ue_report_item); - - ranco->timestamp = *ts; - ranco->reportContainer.present = RAN_Container__reportContainer_PR_oCU_UP_UE; - ASN_SEQUENCE_ADD(&ranco->reportContainer.choice.oCU_UP_UE.cellResourceReportList.list, report_item); - - xer_fprint(stderr, &asn_DEF_RAN_Container, ranco); - -} - -void encode_kpm_ocucp_user_level(RAN_Container_t *ranco, - uint8_t *plmnid_buf, - uint8_t *nrcellid_buf, - uint8_t *crnti_buf, - const uint8_t *serving_buf, - const uint8_t *neighbor_buf) { - uint8_t *buf = (uint8_t*)"2020.06.13 13:01:05.222"; - Timestamp_t *ts = (Timestamp_t*)calloc(1,sizeof(Timestamp_t)); - ts->buf = (uint8_t*)calloc(strlen((char*)buf),1); - ts->size = strlen((char*)buf); - memcpy(ts->buf,buf,ts->size); - - printf("enc1\n"); - - CU_CP_Usage_Report_CellResourceReportItem_t *report_item = - (CU_CP_Usage_Report_CellResourceReportItem_t*)calloc(1,sizeof(CU_CP_Usage_Report_CellResourceReportItem_t)); - - int plmnid_size = strlen((char*)plmnid_buf); - OCTET_STRING_t *plmnidstr = (OCTET_STRING_t*)calloc(1,sizeof(OCTET_STRING_t)); - plmnidstr->buf = (uint8_t*)calloc(plmnid_size,1); - plmnidstr->size = plmnid_size; - memcpy(plmnidstr->buf, plmnid_buf, plmnidstr->size); - - printf("enc2\n"); - - NRCellIdentity_t *nrcellid = (NRCellIdentity_t*)calloc(1,sizeof(NRCellIdentity_t)); - - int nrcellid_size = strlen((char*)nrcellid_buf); - nrcellid->buf = (uint8_t*)calloc(1, nrcellid_size); - memcpy(nrcellid->buf, nrcellid_buf, nrcellid_size); - nrcellid->size = 5; - nrcellid->bits_unused = 4; - - NRCGI *nrcgi = (NRCGI*)calloc(1,sizeof(NRCGI)); - nrcgi->pLMN_Identity = *plmnidstr; - nrcgi->nRCellIdentity = *nrcellid; - - printf("enc3\n"); - - report_item->nRCGI = *nrcgi; - - CU_CP_Usage_Report_UeResourceReportItem *ue_report_item = - (CU_CP_Usage_Report_UeResourceReportItem*)calloc(1,sizeof(CU_CP_Usage_Report_UeResourceReportItem)); - - printf("enc3.2\n"); - - - int crnti_size = strlen((char*)crnti_buf); - OCTET_STRING *crnti = (OCTET_STRING*)calloc(1,sizeof(OCTET_STRING)); - crnti->buf = (uint8_t*)calloc(1, crnti_size); - - printf("enc3.3\n"); - - crnti->size = strlen((char*)crnti_buf); - - printf("enc3.4\n"); - memcpy(crnti->buf, crnti_buf, crnti->size); - - // uint8_t *buf_serving = (uint8_t*)"RSRP10"; - - int serving_buf_len = strlen((char*)serving_buf); - OCTET_STRING_t *servingstr = (OCTET_STRING_t*)calloc(1,sizeof(OCTET_STRING_t)); - servingstr->buf = (uint8_t*)calloc(serving_buf_len,1); - servingstr->size = serving_buf_len; - memcpy(servingstr->buf, serving_buf, servingstr->size); - - - int neighbor_buf_len = strlen((char*)neighbor_buf); - // uint8_t *buf_neighbor = (uint8_t*)"-10,-15"; - OCTET_STRING_t *neighborstr = (OCTET_STRING_t*)calloc(1,sizeof(OCTET_STRING_t)); - ts->buf = (uint8_t*)calloc(neighbor_buf_len,1); - neighborstr->buf = (uint8_t*)calloc(neighbor_buf_len,1); - neighborstr->size = neighbor_buf_len; - memcpy(neighborstr->buf, neighbor_buf, neighborstr->size); - - ue_report_item->c_RNTI = *crnti; - ue_report_item->serving_Cell_RF_Type = servingstr; - ue_report_item->neighbor_Cell_RF = neighborstr; - - - ASN_SEQUENCE_ADD(&report_item->ueResourceReportList.list, ue_report_item); - - ranco->timestamp = *ts; - ranco->reportContainer.present = RAN_Container__reportContainer_PR_oCU_CP_UE; - ASN_SEQUENCE_ADD(&ranco->reportContainer.choice.oCU_CP_UE.cellResourceReportList.list, report_item); - - xer_fprint(stderr, &asn_DEF_RAN_Container, ranco); - - -} - -void encode_kpm_ocucp_user_level(RAN_Container_t *ranco) { - - uint8_t *buf = (uint8_t*)"2020.06.13 13:01:05.222"; - Timestamp_t *ts = (Timestamp_t*)calloc(1,sizeof(Timestamp_t)); - ts->buf = (uint8_t*)calloc(strlen((char*)buf),1); - ts->size = strlen((char*)buf); - memcpy(ts->buf,buf,ts->size); - - printf("enc1\n"); - - CU_CP_Usage_Report_CellResourceReportItem_t *report_item = - (CU_CP_Usage_Report_CellResourceReportItem_t*)calloc(1,sizeof(CU_CP_Usage_Report_CellResourceReportItem_t)); - - uint8_t *buf2 = (uint8_t*)"747"; - - OCTET_STRING_t *plmnidstr = (OCTET_STRING_t*)calloc(1,sizeof(OCTET_STRING_t)); - plmnidstr->buf = (uint8_t*)calloc(3,1); - plmnidstr->size = 3; - memcpy(plmnidstr->buf, buf2, plmnidstr->size); - - printf("enc2\n"); - - NRCellIdentity_t *nrcellid = (NRCellIdentity_t*)calloc(1,sizeof(NRCellIdentity_t)); - uint8_t* buf3 = (uint8_t*)"12340"; - nrcellid->buf = (uint8_t*)calloc(1,5); - memcpy(nrcellid->buf, buf3, 5); - nrcellid->size = 5; - nrcellid->bits_unused = 4; - - NRCGI *nrcgi = (NRCGI*)calloc(1,sizeof(NRCGI)); - nrcgi->pLMN_Identity = *plmnidstr; - nrcgi->nRCellIdentity = *nrcellid; - - printf("enc3\n"); - - report_item->nRCGI = *nrcgi; - - CU_CP_Usage_Report_UeResourceReportItem *ue_report_item = - (CU_CP_Usage_Report_UeResourceReportItem*)calloc(1,sizeof(CU_CP_Usage_Report_UeResourceReportItem)); - - printf("enc3.2\n"); - - uint8_t* crnti_str = (uint8_t*)"1111"; - OCTET_STRING *crnti = (OCTET_STRING*)calloc(1,sizeof(OCTET_STRING)); - crnti->buf = (uint8_t*)calloc(1,4); - - printf("enc3.3\n"); - - crnti->size = strlen((char*)crnti_str); - - printf("enc3.4\n"); - memcpy(crnti->buf, crnti_str, crnti->size); - - uint8_t *buf_serving = (uint8_t*)"RSRP10"; - OCTET_STRING_t *servingstr = (OCTET_STRING_t*)calloc(1,sizeof(OCTET_STRING_t)); - servingstr->buf = (uint8_t*)calloc(6,1); - servingstr->size = 6; - memcpy(servingstr->buf, buf_serving, servingstr->size); - - uint8_t *buf_neighbor = (uint8_t*)"-10,-15"; - OCTET_STRING_t *neighborstr = (OCTET_STRING_t*)calloc(1,sizeof(OCTET_STRING_t)); - neighborstr->buf = (uint8_t*)calloc(7,1); - neighborstr->size = 7; - memcpy(neighborstr->buf, buf_neighbor, neighborstr->size); - - ue_report_item->c_RNTI = *crnti; - ue_report_item->serving_Cell_RF_Type = servingstr; - ue_report_item->neighbor_Cell_RF = neighborstr; - - - ASN_SEQUENCE_ADD(&report_item->ueResourceReportList.list, ue_report_item); - - ranco->timestamp = *ts; - ranco->reportContainer.present = RAN_Container__reportContainer_PR_oCU_CP_UE; - ASN_SEQUENCE_ADD(&ranco->reportContainer.choice.oCU_CP_UE.cellResourceReportList.list, report_item); - - xer_fprint(stderr, &asn_DEF_RAN_Container, ranco); - -} - - -void encode_kpm_odu_user_level(RAN_Container_t *ranco) { - - uint8_t *buf = (uint8_t*)"2020.06.13 13:01:05.222"; - Timestamp_t *ts = (Timestamp_t*)calloc(1,sizeof(Timestamp_t)); - ts->buf = (uint8_t*)calloc(strlen((char*)buf),1); - ts->size = strlen((char*)buf); - memcpy(ts->buf,buf,ts->size); - - printf("enc1\n"); - - DU_Usage_Report_CellResourceReportItem_t *report_item = - (DU_Usage_Report_CellResourceReportItem_t*)calloc(1,sizeof(DU_Usage_Report_CellResourceReportItem_t)); - - uint8_t *buf2 = (uint8_t*)"747"; - - OCTET_STRING_t *plmnidstr = (OCTET_STRING_t*)calloc(1,sizeof(OCTET_STRING_t)); - plmnidstr->buf = (uint8_t*)calloc(3,1); - plmnidstr->size = 3; - memcpy(plmnidstr->buf, buf2, plmnidstr->size); - - printf("enc2\n"); - - NRCellIdentity_t *nrcellid = (NRCellIdentity_t*)calloc(1,sizeof(NRCellIdentity_t)); - uint8_t* buf3 = (uint8_t*)"12340"; - nrcellid->buf = (uint8_t*)calloc(1,5); - memcpy(nrcellid->buf, buf3, 5); - nrcellid->size = 5; - nrcellid->bits_unused = 4; - - NRCGI *nrcgi = (NRCGI*)calloc(1,sizeof(NRCGI)); - nrcgi->pLMN_Identity = *plmnidstr; - nrcgi->nRCellIdentity = *nrcellid; - - printf("enc3\n"); - - report_item->nRCGI = *nrcgi; - - printf("enc3.1\n"); - - DU_Usage_Report_UeResourceReportItem *ue_report_item = - (DU_Usage_Report_UeResourceReportItem*)calloc(1,sizeof(DU_Usage_Report_UeResourceReportItem)); - - printf("enc3.2\n"); - - uint8_t* crnti_str = (uint8_t*)"1111"; - OCTET_STRING *crnti = (OCTET_STRING*)calloc(1,sizeof(OCTET_STRING)); - crnti->buf = (uint8_t*)calloc(1,4); - - printf("enc3.3\n"); - - crnti->size = strlen((char*)crnti_str); - - printf("enc3.4\n"); - memcpy(crnti->buf, crnti_str, crnti->size); - - printf("enc4\n"); - - long lval1 = 2; - long lval2 = 1; - - ue_report_item->c_RNTI = *crnti; - ue_report_item->dl_PRBUsage = &lval1; - - printf("enc5\n"); - - ue_report_item->ul_PRBUsage = &lval2; - - printf("enc6\n"); - - ASN_SEQUENCE_ADD(&report_item->ueResourceReportList.list, ue_report_item); - - - ranco->timestamp = *ts; - ranco->reportContainer.present = RAN_Container__reportContainer_PR_oDU_UE; - ASN_SEQUENCE_ADD(&ranco->reportContainer.choice.oDU_UE.cellResourceReportList.list, report_item); - - xer_fprint(stderr, &asn_DEF_RAN_Container, ranco); - - -} - -void encode_kpm_report_rancontainer_du(E2SM_KPM_IndicationMessage_t* indicationmessage) { - - RAN_Container_t *ranco = (RAN_Container_t*)calloc(1,sizeof(RAN_Container_t)); - encode_kpm_odu_user_level(ranco); - - PM_Containers_List_t *containers_list = (PM_Containers_List_t*)calloc(1, sizeof(PM_Containers_List_t)); - ASN_STRUCT_RESET(asn_DEF_PM_Containers_List, containers_list); - containers_list->theRANContainer = ranco; - - E2SM_KPM_IndicationMessage_Format1_t *format = - (E2SM_KPM_IndicationMessage_Format1_t*)calloc(1, sizeof(E2SM_KPM_IndicationMessage_Format1_t)); - ASN_STRUCT_RESET(asn_DEF_E2SM_KPM_IndicationMessage_Format1, format); - - int ret = ASN_SEQUENCE_ADD(&format->pm_Containers.list, containers_list); - - E2SM_KPM_IndicationMessage__indicationMessage_PR pres = E2SM_KPM_IndicationMessage__indicationMessage_PR_indicationMessage_Format1; - - indicationmessage->indicationMessage.present = pres; - - indicationmessage->indicationMessage.choice.indicationMessage_Format1 = *format; - - char *error_buf = (char*)calloc(300, sizeof(char)); - size_t errlen; - - asn_check_constraints(&asn_DEF_E2SM_KPM_IndicationMessage, indicationmessage, error_buf, &errlen); - printf("error length %d\n", errlen); - printf("error buf %s\n", error_buf); - - xer_fprint(stderr, &asn_DEF_E2SM_KPM_IndicationMessage, indicationmessage); - - asn_codec_ctx_t *opt_cod; - - uint8_t e2smbuffer[8192]; - size_t e2smbuffer_size = 8192; - - uint8_t e2smbuffer2[8192]; - size_t e2smbuffer_size2 = 8192; - - asn_enc_rval_t er = - asn_encode_to_buffer(opt_cod, - ATS_ALIGNED_BASIC_PER, - &asn_DEF_E2SM_KPM_IndicationMessage, - indicationmessage, e2smbuffer, e2smbuffer_size); - - fprintf(stderr, "er encded is %d\n", er.encoded); - fprintf(stderr, "after encoding message\n"); - - -} - -void encode_kpm_report_rancontainer_cucp_parameterized(E2SM_KPM_IndicationMessage_t* indicationmessage, - uint8_t *plmnid_buf, - uint8_t *nrcellid_buf, - uint8_t *crnti_buf, - const uint8_t *serving_buf, - const uint8_t *neighbor_buf) { - - RAN_Container_t *ranco = (RAN_Container_t*)calloc(1,sizeof(RAN_Container_t)); - encode_kpm_ocucp_user_level(ranco, plmnid_buf, - nrcellid_buf, crnti_buf, - serving_buf, neighbor_buf); - - PM_Containers_List_t *containers_list = (PM_Containers_List_t*)calloc(1, sizeof(PM_Containers_List_t)); - ASN_STRUCT_RESET(asn_DEF_PM_Containers_List, containers_list); - containers_list->theRANContainer = ranco; - - E2SM_KPM_IndicationMessage_Format1_t *format = - (E2SM_KPM_IndicationMessage_Format1_t*)calloc(1, sizeof(E2SM_KPM_IndicationMessage_Format1_t)); - ASN_STRUCT_RESET(asn_DEF_E2SM_KPM_IndicationMessage_Format1, format); - - int ret = ASN_SEQUENCE_ADD(&format->pm_Containers.list, containers_list); - - E2SM_KPM_IndicationMessage__indicationMessage_PR pres = E2SM_KPM_IndicationMessage__indicationMessage_PR_indicationMessage_Format1; - - indicationmessage->indicationMessage.present = pres; - - indicationmessage->indicationMessage.choice.indicationMessage_Format1 = *format; - - char *error_buf = (char*)calloc(300, sizeof(char)); - size_t errlen; - - asn_check_constraints(&asn_DEF_E2SM_KPM_IndicationMessage, indicationmessage, error_buf, &errlen); - printf("error length %d\n", errlen); - printf("error buf %s\n", error_buf); - - xer_fprint(stderr, &asn_DEF_E2SM_KPM_IndicationMessage, indicationmessage); - - asn_codec_ctx_t *opt_cod; - - uint8_t e2smbuffer[8192]; - size_t e2smbuffer_size = 8192; - - uint8_t e2smbuffer2[8192]; - size_t e2smbuffer_size2 = 8192; - - asn_enc_rval_t er = - asn_encode_to_buffer(opt_cod, - ATS_ALIGNED_BASIC_PER, - &asn_DEF_E2SM_KPM_IndicationMessage, - indicationmessage, e2smbuffer, e2smbuffer_size); - - fprintf(stderr, "er encded is %d\n", er.encoded); - fprintf(stderr, "after encoding message\n"); - -} - - -void encode_kpm_report_rancontainer_cucp(E2SM_KPM_IndicationMessage_t* indicationmessage) { - - RAN_Container_t *ranco = (RAN_Container_t*)calloc(1,sizeof(RAN_Container_t)); - encode_kpm_ocucp_user_level(ranco); - - PM_Containers_List_t *containers_list = (PM_Containers_List_t*)calloc(1, sizeof(PM_Containers_List_t)); - ASN_STRUCT_RESET(asn_DEF_PM_Containers_List, containers_list); - containers_list->theRANContainer = ranco; - - E2SM_KPM_IndicationMessage_Format1_t *format = - (E2SM_KPM_IndicationMessage_Format1_t*)calloc(1, sizeof(E2SM_KPM_IndicationMessage_Format1_t)); - ASN_STRUCT_RESET(asn_DEF_E2SM_KPM_IndicationMessage_Format1, format); - - int ret = ASN_SEQUENCE_ADD(&format->pm_Containers.list, containers_list); - - E2SM_KPM_IndicationMessage__indicationMessage_PR pres = E2SM_KPM_IndicationMessage__indicationMessage_PR_indicationMessage_Format1; - - indicationmessage->indicationMessage.present = pres; - - indicationmessage->indicationMessage.choice.indicationMessage_Format1 = *format; - - char *error_buf = (char*)calloc(300, sizeof(char)); - size_t errlen; - - asn_check_constraints(&asn_DEF_E2SM_KPM_IndicationMessage, indicationmessage, error_buf, &errlen); - printf("error length %d\n", errlen); - printf("error buf %s\n", error_buf); - - xer_fprint(stderr, &asn_DEF_E2SM_KPM_IndicationMessage, indicationmessage); - - asn_codec_ctx_t *opt_cod; - - uint8_t e2smbuffer[8192]; - size_t e2smbuffer_size = 8192; - - uint8_t e2smbuffer2[8192]; - size_t e2smbuffer_size2 = 8192; - - asn_enc_rval_t er = - asn_encode_to_buffer(opt_cod, - ATS_ALIGNED_BASIC_PER, - &asn_DEF_E2SM_KPM_IndicationMessage, - indicationmessage, e2smbuffer, e2smbuffer_size); - - fprintf(stderr, "er encded is %d\n", er.encoded); - fprintf(stderr, "after encoding message\n"); - - -} - -void encode_kpm_report_rancontainer_cuup_parameterized(E2SM_KPM_IndicationMessage_t* indicationmessage, - uint8_t *plmnid_buf, - uint8_t *nrcellid_buf, - uint8_t *crnti_buf, - int pdcp_bytesdl, - int pdcp_bytesul) { - - -} - -void encode_kpm_report_rancontainer_cuup(E2SM_KPM_IndicationMessage_t* indicationmessage) { - - RAN_Container_t *ranco = (RAN_Container_t*)calloc(1,sizeof(RAN_Container_t)); - //encode_kpm_ocuup_user_level(ranco); - - - uint8_t *buf = (uint8_t*)"2020.06.13 13:01:05.222"; - Timestamp_t *ts = (Timestamp_t*)calloc(1,sizeof(Timestamp_t)); - ts->buf = (uint8_t*)calloc(strlen((char*)buf),1); - ts->size = strlen((char*)buf); - memcpy(ts->buf,buf,ts->size); - - printf("enc1\n"); - - CU_CP_Usage_Report_CellResourceReportItem_t *report_item = - (CU_CP_Usage_Report_CellResourceReportItem_t*)calloc(1,sizeof(CU_CP_Usage_Report_CellResourceReportItem_t)); - - uint8_t *buf2 = (uint8_t*)"747"; - - OCTET_STRING_t *plmnidstr = (OCTET_STRING_t*)calloc(1,sizeof(OCTET_STRING_t)); - plmnidstr->buf = (uint8_t*)calloc(3,1); - plmnidstr->size = 3; - memcpy(plmnidstr->buf, buf2, plmnidstr->size); - - printf("enc2\n"); - - NRCellIdentity_t *nrcellid = (NRCellIdentity_t*)calloc(1,sizeof(NRCellIdentity_t)); - uint8_t* buf3 = (uint8_t*)"12340"; - nrcellid->buf = (uint8_t*)calloc(1,5); - memcpy(nrcellid->buf, buf3, 5); - nrcellid->size = 5; - nrcellid->bits_unused = 4; - - NRCGI *nrcgi = (NRCGI*)calloc(1,sizeof(NRCGI)); - nrcgi->pLMN_Identity = *plmnidstr; - nrcgi->nRCellIdentity = *nrcellid; - - printf("enc3\n"); - - report_item->nRCGI = *nrcgi; - - CU_CP_Usage_Report_UeResourceReportItem *ue_report_item = - (CU_CP_Usage_Report_UeResourceReportItem*)calloc(1,sizeof(CU_CP_Usage_Report_UeResourceReportItem)); - - printf("enc3.2\n"); - - uint8_t* crnti_str = (uint8_t*)"1111"; - OCTET_STRING *crnti = (OCTET_STRING*)calloc(1,sizeof(OCTET_STRING)); - crnti->buf = (uint8_t*)calloc(1,4); - - printf("enc3.3\n"); - - crnti->size = strlen((char*)crnti_str); - - printf("enc3.4\n"); - memcpy(crnti->buf, crnti_str, crnti->size); - - uint8_t *buf_serving = (uint8_t*)"RSRP10"; - OCTET_STRING_t *servingstr = (OCTET_STRING_t*)calloc(1,sizeof(OCTET_STRING_t)); - servingstr->buf = (uint8_t*)calloc(6,1); - servingstr->size = 6; - memcpy(servingstr->buf, buf_serving, servingstr->size); - - uint8_t *buf_neighbor = (uint8_t*)"-10,-15"; - OCTET_STRING_t *neighborstr = (OCTET_STRING_t*)calloc(1,sizeof(OCTET_STRING_t)); - neighborstr->buf = (uint8_t*)calloc(7,1); - neighborstr->size = 7; - memcpy(neighborstr->buf, buf_neighbor, neighborstr->size); - - ue_report_item->c_RNTI = *crnti; - ue_report_item->serving_Cell_RF_Type = servingstr; - ue_report_item->neighbor_Cell_RF = neighborstr; - - - ASN_SEQUENCE_ADD(&report_item->ueResourceReportList.list, ue_report_item); - - ranco->timestamp = *ts; - ranco->reportContainer.present = RAN_Container__reportContainer_PR_oCU_CP_UE; - ASN_SEQUENCE_ADD(&ranco->reportContainer.choice.oCU_CP_UE.cellResourceReportList.list, report_item); - - // xer_fprint(stderr, &asn_DEF_RAN_Container, ranco); - - - PM_Containers_List_t *containers_list = (PM_Containers_List_t*)calloc(1, sizeof(PM_Containers_List_t)); - ASN_STRUCT_RESET(asn_DEF_PM_Containers_List, containers_list); - containers_list->theRANContainer = ranco; - - E2SM_KPM_IndicationMessage_Format1_t *format = - (E2SM_KPM_IndicationMessage_Format1_t*)calloc(1, sizeof(E2SM_KPM_IndicationMessage_Format1_t)); - ASN_STRUCT_RESET(asn_DEF_E2SM_KPM_IndicationMessage_Format1, format); - - int ret = ASN_SEQUENCE_ADD(&format->pm_Containers.list, containers_list); - - E2SM_KPM_IndicationMessage__indicationMessage_PR pres = E2SM_KPM_IndicationMessage__indicationMessage_PR_indicationMessage_Format1; - - indicationmessage->indicationMessage.present = pres; - - indicationmessage->indicationMessage.choice.indicationMessage_Format1 = *format; - - char *error_buf = (char*)calloc(300, sizeof(char)); - size_t errlen; - - asn_check_constraints(&asn_DEF_E2SM_KPM_IndicationMessage, indicationmessage, error_buf, &errlen); - printf("error length %d\n", errlen); - printf("error buf %s\n", error_buf); - - xer_fprint(stderr, &asn_DEF_E2SM_KPM_IndicationMessage, indicationmessage); - - asn_codec_ctx_t *opt_cod; - - uint8_t e2smbuffer[8192]; - size_t e2smbuffer_size = 8192; - - uint8_t e2smbuffer2[8192]; - size_t e2smbuffer_size2 = 8192; - - asn_enc_rval_t er = - asn_encode_to_buffer(opt_cod, - ATS_ALIGNED_BASIC_PER, - &asn_DEF_E2SM_KPM_IndicationMessage, - indicationmessage, e2smbuffer, e2smbuffer_size); - - fprintf(stderr, "er encded is %d\n", er.encoded); - fprintf(stderr, "after encoding message\n"); - - -} - -void encode_kpm_report_style1_parameterized(E2SM_KPM_IndicationMessage_t* indicationmessage, - long fiveqi, - long dl_prb_usage, - long ul_prb_usage, - uint8_t* sd_buf, - uint8_t* sst_buf, - uint8_t* plmnid_buf, - uint8_t* nrcellid_buf, - long *dl_prbs, - long *ul_prbs) { - - - asn_codec_ctx_t *opt_cod; - - FQIPERSlicesPerPlmnPerCellListItem_t *fqi_item = - (FQIPERSlicesPerPlmnPerCellListItem_t*)calloc(1,sizeof(FQIPERSlicesPerPlmnPerCellListItem_t)); - fqi_item->fiveQI = fiveqi; - fqi_item->dl_PRBUsage = &dl_prb_usage; - fqi_item->ul_PRBUsage = &ul_prb_usage; - - uint8_t *buf1 = (uint8_t*)"4"; - OCTET_STRING_t *sst = (OCTET_STRING_t*)calloc(1, sizeof(OCTET_STRING_t)); - sst->size = 6; - sst->buf = (uint8_t*)calloc(1,6); - memcpy(sst->buf,buf1,sst->size); - - // std::string sd = "SD1"; - // std::vector sdvec(sd.begin(), sd.end()); - // uint8_t *bufz = &sdvec[0]; - uint8_t *bufz = (uint8_t*)"SD1"; - OCTET_STRING_t *sds = (OCTET_STRING_t*)calloc(1, sizeof(OCTET_STRING_t)); - sds->size = 3; - sds->buf = (uint8_t*)calloc(1,3); - memcpy(sds->buf, bufz, sds->size); - - - SNSSAI_t *snssai = (SNSSAI_t*)calloc(1, sizeof(SNSSAI_t)); - ASN_STRUCT_RESET(asn_DEF_SNSSAI,snssai); - snssai->sST.buf = (uint8_t*)calloc(1,1); - snssai->sST.size = 1; - memcpy(snssai->sST.buf, sst_buf, 1); - snssai->sD = (OCTET_STRING_t*)calloc(1, sizeof(OCTET_STRING_t)); - snssai->sD->buf = (uint8_t*)calloc(1,3); - snssai->sD->size = 3; - memcpy(snssai->sD->buf, sd_buf, 3); - - - SlicePerPlmnPerCellListItem_t *sliceitem = - (SlicePerPlmnPerCellListItem_t*)calloc(1,sizeof(SlicePerPlmnPerCellListItem_t)); - sliceitem->sliceID = *snssai; - ASN_SEQUENCE_ADD(&sliceitem->fQIPERSlicesPerPlmnPerCellList.list, fqi_item); - - uint8_t *buf2 = (uint8_t*)"747"; - - OCTET_STRING_t *plmnid = (OCTET_STRING_t*)calloc(1,sizeof(OCTET_STRING_t)); - plmnid->buf = (uint8_t*)calloc(3,1); - plmnid->size = 3; - memcpy(plmnid->buf, plmnid_buf, plmnid->size); - - ServedPlmnPerCellListItem_t *percellitem1 = - (ServedPlmnPerCellListItem_t*)calloc(1,sizeof(ServedPlmnPerCellListItem_t)); - percellitem1->pLMN_Identity = *plmnid; - percellitem1->du_PM_5GC = (FGC_DU_PM_Container*)calloc(1,sizeof(FGC_DU_PM_Container)); - ASN_SEQUENCE_ADD(&percellitem1->du_PM_5GC->slicePerPlmnPerCellList.list, sliceitem); - - OCTET_STRING_t *plmnidstr = (OCTET_STRING_t*)calloc(1,sizeof(OCTET_STRING_t)); - plmnidstr->buf = (uint8_t*)calloc(3,1); - plmnidstr->size = 3; - memcpy(plmnidstr->buf, plmnid_buf, plmnidstr->size); - - printf("enc2\n"); - - NRCellIdentity_t *nrcellid = (NRCellIdentity_t*)calloc(1,sizeof(NRCellIdentity_t)); - uint8_t* buf3 = (uint8_t*)"12340"; - nrcellid->buf = (uint8_t*)calloc(1,5); - memcpy(nrcellid->buf, nrcellid_buf, 5); - nrcellid->size = 5; - nrcellid->bits_unused = 4; - - NRCGI *nrcgi = (NRCGI*)calloc(1,sizeof(NRCGI)); - nrcgi->pLMN_Identity = *plmnidstr; - nrcgi->nRCellIdentity = *nrcellid; - - - CellResourceReportListItem_t *listitem1 = (CellResourceReportListItem_t*)calloc(1,sizeof(CellResourceReportListItem_t)); - listitem1->nRCGI = *nrcgi; - listitem1->dl_TotalofAvailablePRBs = dl_prbs; - listitem1->ul_TotalofAvailablePRBs = ul_prbs; - ASN_SEQUENCE_ADD(&listitem1->servedPlmnPerCellList.list, percellitem1); - - - ODU_PF_Container_t *ducont = (ODU_PF_Container_t*)calloc(1,sizeof(ODU_PF_Container_t)); - ASN_STRUCT_RESET(asn_DEF_ODU_PF_Container, ducont); - int ret = ASN_SEQUENCE_ADD(&ducont->cellResourceReportList.list, listitem1); - - PF_Container_PR pres1 = PF_Container_PR_oDU; - - PF_Container_t *pfcontainer = (PF_Container_t*)calloc(1, sizeof(PF_Container_t)); - ASN_STRUCT_RESET(asn_DEF_PF_Container, pfcontainer); - pfcontainer->present = pres1; - pfcontainer->choice.oDU = *ducont; - - PM_Containers_List_t *containers_list = (PM_Containers_List_t*)calloc(1, sizeof(PM_Containers_List_t)); - ASN_STRUCT_RESET(asn_DEF_PM_Containers_List, containers_list); - containers_list->performanceContainer = pfcontainer; - - E2SM_KPM_IndicationMessage_Format1_t *format = - (E2SM_KPM_IndicationMessage_Format1_t*)calloc(1, sizeof(E2SM_KPM_IndicationMessage_Format1_t)); - ASN_STRUCT_RESET(asn_DEF_E2SM_KPM_IndicationMessage_Format1, format); - - ret = ASN_SEQUENCE_ADD(&format->pm_Containers.list, containers_list); - - E2SM_KPM_IndicationMessage__indicationMessage_PR pres = E2SM_KPM_IndicationMessage__indicationMessage_PR_indicationMessage_Format1; - - indicationmessage->indicationMessage.present = pres; - - indicationmessage->indicationMessage.choice.indicationMessage_Format1 = *format; - - char *error_buf = (char*)calloc(300, sizeof(char)); - size_t errlen; - - asn_check_constraints(&asn_DEF_E2SM_KPM_IndicationMessage, indicationmessage, error_buf, &errlen); - printf("error length %d\n", errlen); - printf("error buf %s\n", error_buf); - - xer_fprint(stderr, &asn_DEF_E2SM_KPM_IndicationMessage, indicationmessage); - - - uint8_t e2smbuffer[8192]; - size_t e2smbuffer_size = 8192; - - uint8_t e2smbuffer2[8192]; - size_t e2smbuffer_size2 = 8192; - - asn_enc_rval_t er = - asn_encode_to_buffer(opt_cod, - ATS_ALIGNED_BASIC_PER, - &asn_DEF_E2SM_KPM_IndicationMessage, - indicationmessage, e2smbuffer, e2smbuffer_size); - - fprintf(stderr, "er encded is %d\n", er.encoded); - fprintf(stderr, "after encoding message\n"); - - -} - - -void encode_kpm_report_style1(E2SM_KPM_IndicationMessage_t* indicationmessage) { - - long fiveqi = 8; - long dl_prb_usage = 50; - long ul_prb_usage = 70; - - asn_codec_ctx_t *opt_cod; - - FQIPERSlicesPerPlmnPerCellListItem_t *fqi_item = - (FQIPERSlicesPerPlmnPerCellListItem_t*)calloc(1,sizeof(FQIPERSlicesPerPlmnPerCellListItem_t)); - fqi_item->fiveQI = fiveqi; - fqi_item->dl_PRBUsage = &dl_prb_usage; - fqi_item->ul_PRBUsage = &ul_prb_usage; - - uint8_t *buf1 = (uint8_t*)"4"; - OCTET_STRING_t *sst = (OCTET_STRING_t*)calloc(1, sizeof(OCTET_STRING_t)); - sst->size = 6; - sst->buf = (uint8_t*)calloc(1,6); - memcpy(sst->buf,buf1,sst->size); - - // std::string sd = "SD1"; - // std::vector sdvec(sd.begin(), sd.end()); - // uint8_t *bufz = &sdvec[0]; - uint8_t *bufz = (uint8_t*)"SD1"; - OCTET_STRING_t *sds = (OCTET_STRING_t*)calloc(1, sizeof(OCTET_STRING_t)); - sds->size = 3; - sds->buf = (uint8_t*)calloc(1,3); - memcpy(sds->buf, bufz, sds->size); - - - SNSSAI_t *snssai = (SNSSAI_t*)calloc(1, sizeof(SNSSAI_t)); - ASN_STRUCT_RESET(asn_DEF_SNSSAI,snssai); - snssai->sST.buf = (uint8_t*)calloc(1,1); - snssai->sST.size = 1; - memcpy(snssai->sST.buf, buf1, 1); - snssai->sD = (OCTET_STRING_t*)calloc(1, sizeof(OCTET_STRING_t)); - snssai->sD->buf = (uint8_t*)calloc(1,3); - snssai->sD->size = 3; - memcpy(snssai->sD->buf, bufz, 3); - - - SlicePerPlmnPerCellListItem_t *sliceitem = - (SlicePerPlmnPerCellListItem_t*)calloc(1,sizeof(SlicePerPlmnPerCellListItem_t)); - sliceitem->sliceID = *snssai; - ASN_SEQUENCE_ADD(&sliceitem->fQIPERSlicesPerPlmnPerCellList.list, fqi_item); - - uint8_t *buf2 = (uint8_t*)"747"; - - OCTET_STRING_t *plmnid = (OCTET_STRING_t*)calloc(1,sizeof(OCTET_STRING_t)); - plmnid->buf = (uint8_t*)calloc(3,1); - plmnid->size = 3; - memcpy(plmnid->buf, buf2, plmnid->size); - - ServedPlmnPerCellListItem_t *percellitem1 = - (ServedPlmnPerCellListItem_t*)calloc(1,sizeof(ServedPlmnPerCellListItem_t)); - percellitem1->pLMN_Identity = *plmnid; - percellitem1->du_PM_5GC = (FGC_DU_PM_Container*)calloc(1,sizeof(FGC_DU_PM_Container)); - ASN_SEQUENCE_ADD(&percellitem1->du_PM_5GC->slicePerPlmnPerCellList.list, sliceitem); - - OCTET_STRING_t *plmnidstr = (OCTET_STRING_t*)calloc(1,sizeof(OCTET_STRING_t)); - plmnidstr->buf = (uint8_t*)calloc(3,1); - plmnidstr->size = 3; - memcpy(plmnidstr->buf, buf2, plmnidstr->size); - - printf("enc2\n"); - - NRCellIdentity_t *nrcellid = (NRCellIdentity_t*)calloc(1,sizeof(NRCellIdentity_t)); - uint8_t* buf3 = (uint8_t*)"12340"; - nrcellid->buf = (uint8_t*)calloc(1,5); - memcpy(nrcellid->buf, buf3, 5); - nrcellid->size = 5; - nrcellid->bits_unused = 4; - - NRCGI *nrcgi = (NRCGI*)calloc(1,sizeof(NRCGI)); - nrcgi->pLMN_Identity = *plmnidstr; - nrcgi->nRCellIdentity = *nrcellid; - - long dl_prbs = (long)100; - long ul_prbs = (long)120; - - CellResourceReportListItem_t *listitem1 = (CellResourceReportListItem_t*)calloc(1,sizeof(CellResourceReportListItem_t)); - listitem1->nRCGI = *nrcgi; - listitem1->dl_TotalofAvailablePRBs = &dl_prbs; - listitem1->ul_TotalofAvailablePRBs = &ul_prbs; - ASN_SEQUENCE_ADD(&listitem1->servedPlmnPerCellList.list, percellitem1); - - - ODU_PF_Container_t *ducont = (ODU_PF_Container_t*)calloc(1,sizeof(ODU_PF_Container_t)); - ASN_STRUCT_RESET(asn_DEF_ODU_PF_Container, ducont); - int ret = ASN_SEQUENCE_ADD(&ducont->cellResourceReportList.list, listitem1); - - PF_Container_PR pres1 = PF_Container_PR_oDU; - - PF_Container_t *pfcontainer = (PF_Container_t*)calloc(1, sizeof(PF_Container_t)); - ASN_STRUCT_RESET(asn_DEF_PF_Container, pfcontainer); - pfcontainer->present = pres1; - pfcontainer->choice.oDU = *ducont; - - PM_Containers_List_t *containers_list = (PM_Containers_List_t*)calloc(1, sizeof(PM_Containers_List_t)); - ASN_STRUCT_RESET(asn_DEF_PM_Containers_List, containers_list); - containers_list->performanceContainer = pfcontainer; - - E2SM_KPM_IndicationMessage_Format1_t *format = - (E2SM_KPM_IndicationMessage_Format1_t*)calloc(1, sizeof(E2SM_KPM_IndicationMessage_Format1_t)); - ASN_STRUCT_RESET(asn_DEF_E2SM_KPM_IndicationMessage_Format1, format); - - ret = ASN_SEQUENCE_ADD(&format->pm_Containers.list, containers_list); - - E2SM_KPM_IndicationMessage__indicationMessage_PR pres = E2SM_KPM_IndicationMessage__indicationMessage_PR_indicationMessage_Format1; - - indicationmessage->indicationMessage.present = pres; - - indicationmessage->indicationMessage.choice.indicationMessage_Format1 = *format; - - char *error_buf = (char*)calloc(300, sizeof(char)); - size_t errlen; - - asn_check_constraints(&asn_DEF_E2SM_KPM_IndicationMessage, indicationmessage, error_buf, &errlen); - printf("error length %d\n", errlen); - printf("error buf %s\n", error_buf); - - xer_fprint(stderr, &asn_DEF_E2SM_KPM_IndicationMessage, indicationmessage); - - - uint8_t e2smbuffer[8192]; - size_t e2smbuffer_size = 8192; - - uint8_t e2smbuffer2[8192]; - size_t e2smbuffer_size2 = 8192; - - asn_enc_rval_t er = - asn_encode_to_buffer(opt_cod, - ATS_ALIGNED_BASIC_PER, - &asn_DEF_E2SM_KPM_IndicationMessage, - indicationmessage, e2smbuffer, e2smbuffer_size); - - fprintf(stderr, "er encded is %d\n", er.encoded); - fprintf(stderr, "after encoding message\n"); - - -} - -void encode_kpm_report_style5_parameterized(E2SM_KPM_IndicationMessage_t* indicationmessage, - uint8_t *gnbcuupname_buf, - int bytes_dl, - int bytes_ul, - uint8_t *sst_buf, - uint8_t *sd_buf, - uint8_t *plmnid_buf) { - - ASN_STRUCT_RESET(asn_DEF_E2SM_KPM_IndicationMessage, indicationmessage); - - - // uint8_t *buf = (uint8_t*)"GNBCUUP5"; - OCTET_STRING_t *gnbcuupname = (OCTET_STRING_t*)calloc(1, sizeof(OCTET_STRING_t)); - gnbcuupname->size = 8; - gnbcuupname->buf = (uint8_t*)calloc(1,8); - memcpy(gnbcuupname->buf, gnbcuupname_buf, gnbcuupname->size); - - - //We need to convert bytes_dl into array of uint8_t - - int array_size_dl; - - INTEGER_t *bytesdl = (INTEGER_t*)calloc(1, sizeof(INTEGER_t)); - - if (bytes_dl <= 64) { - array_size_dl = 1; - - uint8_t buffer[array_size_dl]; - buffer[0] = bytes_dl & 0xFF; - bytesdl->buf = (uint8_t*)calloc(1,1); - memcpy(bytesdl->buf,buffer,1); - bytesdl->size = 1; - - } else if (bytes_dl <= 16384) { - array_size_dl = 2; - - uint8_t buffer[array_size_dl]; - buffer[0] = (bytes_dl >> 8) & 0xFF; - buffer[1] = bytes_dl & 0xFF; - bytesdl->buf = (uint8_t*)calloc(2,1); - memcpy(bytesdl->buf,buffer,2); - bytesdl->size = 2; - - } else if (bytes_dl <= 4194304) { - array_size_dl = 3; - - uint8_t buffer[array_size_dl]; - buffer[0] = (bytes_dl >> 16) & 0xFF; - buffer[1] = (bytes_dl >> 8) & 0xFF; - buffer[2] = bytes_dl & 0xFF; - bytesdl->buf = (uint8_t*)calloc(3,1); - memcpy(bytesdl->buf,buffer,3); - bytesdl->size = 3; - - } else if (bytes_dl <= 1073741824) { - array_size_dl = 4; - uint8_t buffer[array_size_dl]; - buffer[0] = (bytes_dl >> 24) & 0xFF; - buffer[1] = (bytes_dl >> 16) & 0xFF; - buffer[2] = (bytes_dl >> 8) & 0xFF; - buffer[3] = bytes_dl & 0xFF; - bytesdl->buf = (uint8_t*)calloc(4,1); - memcpy(bytesdl->buf,buffer,4); - bytesdl->size = 4; - } - - - //We need to convert bytes_ul into array of uint8_t - INTEGER_t *bytesul = (INTEGER_t*)calloc(1, sizeof(INTEGER_t)); - - int array_size_ul; - - if (bytes_ul <= 64) { - array_size_ul = 1; - - uint8_t buffer[array_size_ul]; - buffer[0] = bytes_ul & 0xFF; - bytesul->buf = (uint8_t*)calloc(1,1); - memcpy(bytesul->buf,buffer,1); - bytesul->size = 1; - - } else if (bytes_ul <= 16384) { - array_size_ul = 2; - - uint8_t buffer[array_size_ul]; - buffer[0] = (bytes_ul >> 8) & 0xFF; - buffer[1] = bytes_ul & 0xFF; - bytesul->buf = (uint8_t*)calloc(2,1); - memcpy(bytesul->buf,buffer,2); - bytesul->size = 2; - - } else if (bytes_ul <= 4194304) { - array_size_ul = 3; - - uint8_t buffer[array_size_ul]; - buffer[0] = (bytes_ul >> 16) & 0xFF; - buffer[1] = (bytes_ul >> 8) & 0xFF; - buffer[2] = bytes_ul & 0xFF; - bytesul->buf = (uint8_t*)calloc(3,1); - memcpy(bytesul->buf,buffer,3); - bytesul->size = 3; - - } else if (bytes_ul <= 1073741824) { - array_size_ul = 4; - uint8_t buffer[array_size_ul]; - buffer[0] = (bytes_ul >> 24) & 0xFF; - buffer[1] = (bytes_ul >> 16) & 0xFF; - buffer[2] = (bytes_ul >> 8) & 0xFF; - buffer[3] = bytes_ul & 0xFF; - bytesul->buf = (uint8_t*)calloc(4,1); - memcpy(bytesul->buf,buffer,4); - bytesul->size = 4; - } - - - FQIPERSlicesPerPlmnListItem_t *fqilistitem = (FQIPERSlicesPerPlmnListItem_t*)calloc(1, sizeof(FQIPERSlicesPerPlmnListItem_t)); - ASN_STRUCT_RESET(asn_DEF_FQIPERSlicesPerPlmnListItem, fqilistitem); - fqilistitem->fiveQI = 9; - fqilistitem->pDCPBytesDL = bytesdl; - fqilistitem->pDCPBytesUL = bytesul; - - - uint8_t *buf1 = (uint8_t*)"4"; - OCTET_STRING_t *sst = (OCTET_STRING_t*)calloc(1, sizeof(OCTET_STRING_t)); - sst->size = 6; - sst->buf = (uint8_t*)calloc(1,6); - memcpy(sst->buf,sst_buf,sst->size); - - - uint8_t *bufz = (uint8_t*)"SD1"; - OCTET_STRING_t *sds = (OCTET_STRING_t*)calloc(1, sizeof(OCTET_STRING_t)); - sds->size = 3; - sds->buf = (uint8_t*)calloc(1,3); - memcpy(sds->buf, sd_buf, sds->size); - - - SNSSAI_t *snssai = (SNSSAI_t*)calloc(1, sizeof(SNSSAI_t)); - ASN_STRUCT_RESET(asn_DEF_SNSSAI,snssai); - snssai->sST.buf = (uint8_t*)calloc(1,1); - snssai->sST.size = 1; - memcpy(snssai->sST.buf, sst_buf, 1); - snssai->sD = (OCTET_STRING_t*)calloc(1, sizeof(OCTET_STRING_t)); - snssai->sD->buf = (uint8_t*)calloc(1,3); - snssai->sD->size = 3; - memcpy(snssai->sD->buf, sd_buf, 3); - - - - SliceToReportListItem_t *slicelistitem = (SliceToReportListItem_t*)calloc(1,sizeof(SliceToReportListItem_t)); - ASN_STRUCT_RESET(asn_DEF_SliceToReportListItem, slicelistitem); - slicelistitem->sliceID = *snssai; - int ret = ASN_SEQUENCE_ADD(&slicelistitem->fQIPERSlicesPerPlmnList.list, fqilistitem); - - asn_codec_ctx_t *opt_cod; - - - uint8_t e2smbuffera[8192]; - size_t e2smbuffer_sizea = 8192; - - - - asn_enc_rval_t era = - asn_encode_to_buffer(opt_cod, - ATS_ALIGNED_BASIC_PER, - &asn_DEF_SliceToReportListItem, - slicelistitem, e2smbuffera, e2smbuffer_sizea); - fprintf(stderr, "inner er encded is %d\n", era.encoded); - fprintf(stderr, "after encoding message\n"); - - - - FGC_CUUP_PM_Format_t *pm_format = (FGC_CUUP_PM_Format_t*)calloc(1,sizeof(FGC_CUUP_PM_Format_t)); - ASN_STRUCT_RESET(asn_DEF_FGC_CUUP_PM_Format, pm_format); - ret = ASN_SEQUENCE_ADD(&pm_format->sliceToReportList.list, slicelistitem); - - uint8_t *buf2 = (uint8_t*)"747"; - // std::string pl = "PLMNID7"; - // std::vector plvec(pl.begin(), pl.end()); - // uint8_t *buf2 = &plvec[0]; - - OCTET_STRING_t *plmnid = (OCTET_STRING_t*)calloc(1,sizeof(OCTET_STRING_t)); - plmnid->buf = (uint8_t*)calloc(3,1); - plmnid->size = 3; - memcpy(plmnid->buf, plmnid_buf, plmnid->size); - - - PlmnID_List_t *plmnidlist = (PlmnID_List_t*)calloc(1,sizeof(PlmnID_List_t)); - ASN_STRUCT_RESET(asn_DEF_PlmnID_List, plmnidlist); - plmnidlist->pLMN_Identity = *plmnid; - plmnidlist->cu_UP_PM_5GC = pm_format; - - CUUPMeasurement_Container_t *meas_cont = (CUUPMeasurement_Container_t*)calloc(1, sizeof(CUUPMeasurement_Container_t)); - ASN_STRUCT_RESET(asn_DEF_CUUPMeasurement_Container, meas_cont); - ret = ASN_SEQUENCE_ADD(&meas_cont->plmnList.list, plmnidlist); - - - - - PF_ContainerListItem_t *listitem1 = (PF_ContainerListItem_t*)calloc(1, sizeof(PF_ContainerListItem_t)); - ASN_STRUCT_RESET(asn_DEF_PF_ContainerListItem, listitem1); - listitem1->interface_type = 2; - listitem1->o_CU_UP_PM_Container = *meas_cont; - - OCUUP_PF_Container_t *cuupcont = (OCUUP_PF_Container_t*)calloc(1,sizeof(OCUUP_PF_Container_t)); - ASN_STRUCT_RESET(asn_DEF_OCUUP_PF_Container, cuupcont); - cuupcont->gNB_CU_UP_Name = gnbcuupname; - ret = ASN_SEQUENCE_ADD(&cuupcont->pf_ContainerList.list, listitem1); - - PF_Container_PR pres1 = PF_Container_PR_oCU_UP; - - PF_Container_t *pfcontainer = (PF_Container_t*)calloc(1, sizeof(PF_Container_t)); - ASN_STRUCT_RESET(asn_DEF_PF_Container, pfcontainer); - pfcontainer->present = pres1; - pfcontainer->choice.oCU_UP = *cuupcont; - - PM_Containers_List_t *containers_list = (PM_Containers_List_t*)calloc(1, sizeof(PM_Containers_List_t)); - ASN_STRUCT_RESET(asn_DEF_PM_Containers_List, containers_list); - containers_list->performanceContainer = pfcontainer; - - E2SM_KPM_IndicationMessage_Format1_t *format = - (E2SM_KPM_IndicationMessage_Format1_t*)calloc(1, sizeof(E2SM_KPM_IndicationMessage_Format1_t)); - ASN_STRUCT_RESET(asn_DEF_E2SM_KPM_IndicationMessage_Format1, format); - - ret = ASN_SEQUENCE_ADD(&format->pm_Containers.list, containers_list); - - E2SM_KPM_IndicationMessage__indicationMessage_PR pres = E2SM_KPM_IndicationMessage__indicationMessage_PR_indicationMessage_Format1; - - indicationmessage->indicationMessage.present = pres; - - indicationmessage->indicationMessage.choice.indicationMessage_Format1 = *format; - - char *error_buf = (char*)calloc(300, sizeof(char)); - size_t errlen; - - asn_check_constraints(&asn_DEF_E2SM_KPM_IndicationMessage, indicationmessage, error_buf, &errlen); - printf("error length %d\n", errlen); - printf("error buf %s\n", error_buf); - - xer_fprint(stderr, &asn_DEF_E2SM_KPM_IndicationMessage, indicationmessage); - - - uint8_t e2smbuffer[8192]; - size_t e2smbuffer_size = 8192; - - uint8_t e2smbuffer2[8192]; - size_t e2smbuffer_size2 = 8192; - - asn_enc_rval_t er = - asn_encode_to_buffer(opt_cod, - ATS_ALIGNED_BASIC_PER, - &asn_DEF_E2SM_KPM_IndicationMessage, - indicationmessage, e2smbuffer, e2smbuffer_size); - - fprintf(stderr, "er encded is %d\n", er.encoded); - fprintf(stderr, "after encoding message\n"); - - -} - -void encode_kpm_report_style5(E2SM_KPM_IndicationMessage_t* indicationmessage) { - - ASN_STRUCT_RESET(asn_DEF_E2SM_KPM_IndicationMessage, indicationmessage); - - - uint8_t *buf = (uint8_t*)"GNBCUUP5"; - OCTET_STRING_t *gnbcuupname = (OCTET_STRING_t*)calloc(1, sizeof(OCTET_STRING_t)); - gnbcuupname->size = 8; - gnbcuupname->buf = (uint8_t*)calloc(1,8); - memcpy(gnbcuupname->buf, buf, gnbcuupname->size); - - - INTEGER_t *bytesdl = (INTEGER_t*)calloc(1, sizeof(INTEGER_t)); - uint8_t buffer[1]; - buffer[0]= 40000; - bytesdl->buf = (uint8_t*)calloc(1,1); - memcpy(bytesdl->buf, buffer,1); - bytesdl->size = 1; - - INTEGER_t *bytesul = (INTEGER_t*)calloc(1, sizeof(INTEGER_t)); - uint8_t buffer1[1]; - buffer1[0] = 50000; - bytesul->buf = (uint8_t*)calloc(1,1); - memcpy(bytesul->buf, buffer1, 1); - bytesul->size = 1; - - FQIPERSlicesPerPlmnListItem_t *fqilistitem = (FQIPERSlicesPerPlmnListItem_t*)calloc(1, sizeof(FQIPERSlicesPerPlmnListItem_t)); - ASN_STRUCT_RESET(asn_DEF_FQIPERSlicesPerPlmnListItem, fqilistitem); - fqilistitem->fiveQI = 9; - fqilistitem->pDCPBytesDL = bytesdl; - fqilistitem->pDCPBytesUL = bytesul; - - - uint8_t *buf1 = (uint8_t*)"4"; - OCTET_STRING_t *sst = (OCTET_STRING_t*)calloc(1, sizeof(OCTET_STRING_t)); - sst->size = 6; - sst->buf = (uint8_t*)calloc(1,6); - memcpy(sst->buf,buf1,sst->size); - - - uint8_t *bufz = (uint8_t*)"SD1"; - OCTET_STRING_t *sds = (OCTET_STRING_t*)calloc(1, sizeof(OCTET_STRING_t)); - sds->size = 3; - sds->buf = (uint8_t*)calloc(1,3); - memcpy(sds->buf, bufz, sds->size); - - - SNSSAI_t *snssai = (SNSSAI_t*)calloc(1, sizeof(SNSSAI_t)); - ASN_STRUCT_RESET(asn_DEF_SNSSAI,snssai); - snssai->sST.buf = (uint8_t*)calloc(1,1); - snssai->sST.size = 1; - memcpy(snssai->sST.buf, buf1, 1); - snssai->sD = (OCTET_STRING_t*)calloc(1, sizeof(OCTET_STRING_t)); - snssai->sD->buf = (uint8_t*)calloc(1,3); - snssai->sD->size = 3; - memcpy(snssai->sD->buf, bufz, 3); - - - - SliceToReportListItem_t *slicelistitem = (SliceToReportListItem_t*)calloc(1,sizeof(SliceToReportListItem_t)); - ASN_STRUCT_RESET(asn_DEF_SliceToReportListItem, slicelistitem); - slicelistitem->sliceID = *snssai; - int ret = ASN_SEQUENCE_ADD(&slicelistitem->fQIPERSlicesPerPlmnList.list, fqilistitem); - - asn_codec_ctx_t *opt_cod; - - - uint8_t e2smbuffera[8192]; - size_t e2smbuffer_sizea = 8192; - - - - asn_enc_rval_t era = - asn_encode_to_buffer(opt_cod, - ATS_ALIGNED_BASIC_PER, - &asn_DEF_SliceToReportListItem, - slicelistitem, e2smbuffera, e2smbuffer_sizea); - fprintf(stderr, "inner er encded is %d\n", era.encoded); - fprintf(stderr, "after encoding message\n"); - - - - FGC_CUUP_PM_Format_t *pm_format = (FGC_CUUP_PM_Format_t*)calloc(1,sizeof(FGC_CUUP_PM_Format_t)); - ASN_STRUCT_RESET(asn_DEF_FGC_CUUP_PM_Format, pm_format); - ret = ASN_SEQUENCE_ADD(&pm_format->sliceToReportList.list, slicelistitem); - - uint8_t *buf2 = (uint8_t*)"747"; - // std::string pl = "PLMNID7"; - // std::vector plvec(pl.begin(), pl.end()); - // uint8_t *buf2 = &plvec[0]; - - OCTET_STRING_t *plmnid = (OCTET_STRING_t*)calloc(1,sizeof(OCTET_STRING_t)); - plmnid->buf = (uint8_t*)calloc(3,1); - plmnid->size = 3; - memcpy(plmnid->buf, buf2, plmnid->size); - - - PlmnID_List_t *plmnidlist = (PlmnID_List_t*)calloc(1,sizeof(PlmnID_List_t)); - ASN_STRUCT_RESET(asn_DEF_PlmnID_List, plmnidlist); - plmnidlist->pLMN_Identity = *plmnid; - plmnidlist->cu_UP_PM_5GC = pm_format; - - CUUPMeasurement_Container_t *meas_cont = (CUUPMeasurement_Container_t*)calloc(1, sizeof(CUUPMeasurement_Container_t)); - ASN_STRUCT_RESET(asn_DEF_CUUPMeasurement_Container, meas_cont); - ret = ASN_SEQUENCE_ADD(&meas_cont->plmnList.list, plmnidlist); - - - - - PF_ContainerListItem_t *listitem1 = (PF_ContainerListItem_t*)calloc(1, sizeof(PF_ContainerListItem_t)); - ASN_STRUCT_RESET(asn_DEF_PF_ContainerListItem, listitem1); - listitem1->interface_type = 2; - listitem1->o_CU_UP_PM_Container = *meas_cont; - - OCUUP_PF_Container_t *cuupcont = (OCUUP_PF_Container_t*)calloc(1,sizeof(OCUUP_PF_Container_t)); - ASN_STRUCT_RESET(asn_DEF_OCUUP_PF_Container, cuupcont); - cuupcont->gNB_CU_UP_Name = gnbcuupname; - ret = ASN_SEQUENCE_ADD(&cuupcont->pf_ContainerList.list, listitem1); - - PF_Container_PR pres1 = PF_Container_PR_oCU_UP; - - PF_Container_t *pfcontainer = (PF_Container_t*)calloc(1, sizeof(PF_Container_t)); - ASN_STRUCT_RESET(asn_DEF_PF_Container, pfcontainer); - pfcontainer->present = pres1; - pfcontainer->choice.oCU_UP = *cuupcont; - - PM_Containers_List_t *containers_list = (PM_Containers_List_t*)calloc(1, sizeof(PM_Containers_List_t)); - ASN_STRUCT_RESET(asn_DEF_PM_Containers_List, containers_list); - containers_list->performanceContainer = pfcontainer; - - E2SM_KPM_IndicationMessage_Format1_t *format = - (E2SM_KPM_IndicationMessage_Format1_t*)calloc(1, sizeof(E2SM_KPM_IndicationMessage_Format1_t)); - ASN_STRUCT_RESET(asn_DEF_E2SM_KPM_IndicationMessage_Format1, format); - - ret = ASN_SEQUENCE_ADD(&format->pm_Containers.list, containers_list); - - E2SM_KPM_IndicationMessage__indicationMessage_PR pres = E2SM_KPM_IndicationMessage__indicationMessage_PR_indicationMessage_Format1; - - indicationmessage->indicationMessage.present = pres; - - indicationmessage->indicationMessage.choice.indicationMessage_Format1 = *format; - - char *error_buf = (char*)calloc(300, sizeof(char)); - size_t errlen; - - asn_check_constraints(&asn_DEF_E2SM_KPM_IndicationMessage, indicationmessage, error_buf, &errlen); - printf("error length %d\n", errlen); - printf("error buf %s\n", error_buf); - - xer_fprint(stderr, &asn_DEF_E2SM_KPM_IndicationMessage, indicationmessage); - - - uint8_t e2smbuffer[8192]; - size_t e2smbuffer_size = 8192; - - uint8_t e2smbuffer2[8192]; - size_t e2smbuffer_size2 = 8192; - - asn_enc_rval_t er = - asn_encode_to_buffer(opt_cod, - ATS_ALIGNED_BASIC_PER, - &asn_DEF_E2SM_KPM_IndicationMessage, - indicationmessage, e2smbuffer, e2smbuffer_size); - - fprintf(stderr, "er encded is %d\n", er.encoded); - fprintf(stderr, "after encoding message\n"); - -} - - -void encode_kpm(E2SM_KPM_IndicationMessage_t* indicationmessage) { - - /* - ASN_STRUCT_RESET(asn_DEF_E2SM_KPM_IndicationMessage, indicationmessage); - //std::string gn = "GNBCUUP5"; - //std::vector gnvec(gn.begin(), gn.end()); - //uint8_t *buf = &gnvec[0]; - uint8_t *buf = (uint8_t*)"GNBCUUP5"; - OCTET_STRING_t *gnbcuupname = (OCTET_STRING_t*)calloc(1, sizeof(OCTET_STRING_t)); - gnbcuupname->size = 8; - gnbcuupname->buf = (uint8_t*)calloc(1,8); - memcpy(gnbcuupname->buf, buf, gnbcuupname->size); - - - INTEGER_t *bytesdl = (INTEGER_t*)calloc(1, sizeof(INTEGER_t)); - uint8_t buffer[1]; - buffer[0]= 40000; - bytesdl->buf = (uint8_t*)calloc(1,1); - memcpy(bytesdl->buf, buffer,1); - bytesdl->size = 1; - - INTEGER_t *bytesul = (INTEGER_t*)calloc(1, sizeof(INTEGER_t)); - uint8_t buffer1[1]; - buffer1[0] = 50000; - bytesul->buf = (uint8_t*)calloc(1,1); - memcpy(bytesul->buf, buffer1, 1); - bytesul->size = 1; - - FQIPERSlicesPerPlmnListItem_t *fqilistitem = (FQIPERSlicesPerPlmnListItem_t*)calloc(1, sizeof(FQIPERSlicesPerPlmnListItem_t)); - ASN_STRUCT_RESET(asn_DEF_FQIPERSlicesPerPlmnListItem, fqilistitem); - fqilistitem->fiveQI = 9; - fqilistitem->pDCPBytesDL = bytesdl; - fqilistitem->pDCPBytesUL = bytesul; - - - - // std::string sl = "SLICE4"; - // std::vector slvec(sl.begin(), sl.end()); - // uint8_t *buf1 = &slvec[0]; - uint8_t *buf1 = (uint8_t*)"4"; - OCTET_STRING_t *sst = (OCTET_STRING_t*)calloc(1, sizeof(OCTET_STRING_t)); - sst->size = 6; - sst->buf = (uint8_t*)calloc(1,6); - memcpy(sst->buf,buf1,sst->size); - - // std::string sd = "SD1"; - // std::vector sdvec(sd.begin(), sd.end()); - // uint8_t *bufz = &sdvec[0]; - uint8_t *bufz = (uint8_t*)"SD1"; - OCTET_STRING_t *sds = (OCTET_STRING_t*)calloc(1, sizeof(OCTET_STRING_t)); - sds->size = 3; - sds->buf = (uint8_t*)calloc(1,3); - memcpy(sds->buf, bufz, sds->size); - - - SNSSAI_t *snssai = (SNSSAI_t*)calloc(1, sizeof(SNSSAI_t)); - ASN_STRUCT_RESET(asn_DEF_SNSSAI,snssai); - snssai->sST.buf = (uint8_t*)calloc(1,1); - snssai->sST.size = 1; - memcpy(snssai->sST.buf, buf1, 1); - snssai->sD = (OCTET_STRING_t*)calloc(1, sizeof(OCTET_STRING_t)); - snssai->sD->buf = (uint8_t*)calloc(1,3); - snssai->sD->size = 3; - memcpy(snssai->sD->buf, bufz, 3); - - - - SliceToReportListItem_t *slicelistitem = (SliceToReportListItem_t*)calloc(1,sizeof(SliceToReportListItem_t)); - ASN_STRUCT_RESET(asn_DEF_SliceToReportListItem, slicelistitem); - slicelistitem->sliceID = *snssai; - int ret = ASN_SEQUENCE_ADD(&slicelistitem->fQIPERSlicesPerPlmnList.list, fqilistitem); - - asn_codec_ctx_t *opt_cod; - - - uint8_t e2smbuffera[8192]; - size_t e2smbuffer_sizea = 8192; - - - - asn_enc_rval_t era = - asn_encode_to_buffer(opt_cod, - ATS_ALIGNED_BASIC_PER, - &asn_DEF_SliceToReportListItem, - slicelistitem, e2smbuffera, e2smbuffer_sizea); - fprintf(stderr, "inner er encded is %d\n", era.encoded); - fprintf(stderr, "after encoding message\n"); - - - - FGC_CUUP_PM_Format_t *pm_format = (FGC_CUUP_PM_Format_t*)calloc(1,sizeof(FGC_CUUP_PM_Format_t)); - ASN_STRUCT_RESET(asn_DEF_FGC_CUUP_PM_Format, pm_format); - ret = ASN_SEQUENCE_ADD(&pm_format->sliceToReportList.list, slicelistitem); - - uint8_t *buf2 = (uint8_t*)"747"; - // std::string pl = "PLMNID7"; - // std::vector plvec(pl.begin(), pl.end()); - // uint8_t *buf2 = &plvec[0]; - - OCTET_STRING_t *plmnid = (OCTET_STRING_t*)calloc(1,sizeof(OCTET_STRING_t)); - plmnid->buf = (uint8_t*)calloc(3,1); - plmnid->size = 3; - memcpy(plmnid->buf, buf2, plmnid->size); - - - PlmnID_List_t *plmnidlist = (PlmnID_List_t*)calloc(1,sizeof(PlmnID_List_t)); - ASN_STRUCT_RESET(asn_DEF_PlmnID_List, plmnidlist); - plmnidlist->pLMN_Identity = *plmnid; - plmnidlist->cu_UP_PM_5GC = pm_format; - - CUUPMeasurement_Container_t *meas_cont = (CUUPMeasurement_Container_t*)calloc(1, sizeof(CUUPMeasurement_Container_t)); - ASN_STRUCT_RESET(asn_DEF_CUUPMeasurement_Container, meas_cont); - ret = ASN_SEQUENCE_ADD(&meas_cont->plmnList.list, plmnidlist); - - - - - PF_ContainerListItem_t *listitem1 = (PF_ContainerListItem_t*)calloc(1, sizeof(PF_ContainerListItem_t)); - ASN_STRUCT_RESET(asn_DEF_PF_ContainerListItem, listitem1); - listitem1->interface_type = 2; - listitem1->o_CU_UP_PM_Container = *meas_cont; - - OCUUP_PF_Container_t *cuupcont = (OCUUP_PF_Container_t*)calloc(1,sizeof(OCUUP_PF_Container_t)); - ASN_STRUCT_RESET(asn_DEF_OCUUP_PF_Container, cuupcont); - cuupcont->gNB_CU_UP_Name = gnbcuupname; - ret = ASN_SEQUENCE_ADD(&cuupcont->pf_ContainerList.list, listitem1); - - PF_Container_PR pres1 = PF_Container_PR_oCU_UP; - - PF_Container_t *pfcontainer = (PF_Container_t*)calloc(1, sizeof(PF_Container_t)); - ASN_STRUCT_RESET(asn_DEF_PF_Container, pfcontainer); - pfcontainer->present = pres1; - pfcontainer->choice.oCU_UP = *cuupcont; - - PM_Containers_List_t *containers_list = (PM_Containers_List_t*)calloc(1, sizeof(PM_Containers_List_t)); - ASN_STRUCT_RESET(asn_DEF_PM_Containers_List, containers_list); - containers_list->performanceContainer = pfcontainer; - - E2SM_KPM_IndicationMessage_Format1_t *format = - (E2SM_KPM_IndicationMessage_Format1_t*)calloc(1, sizeof(E2SM_KPM_IndicationMessage_Format1_t)); - ASN_STRUCT_RESET(asn_DEF_E2SM_KPM_IndicationMessage_Format1, format); - - ret = ASN_SEQUENCE_ADD(&format->pm_Containers.list, containers_list); - - E2SM_KPM_IndicationMessage_PR pres = E2SM_KPM_IndicationMessage_PR_indicationMessage_Format1; - - indicationmessage->present = pres; - - indicationmessage->choice.indicationMessage_Format1 = *format; - - char *error_buf = (char*)calloc(300, sizeof(char)); - size_t errlen; - - asn_check_constraints(&asn_DEF_E2SM_KPM_IndicationMessage, indicationmessage, error_buf, &errlen); - printf("error length %d\n", errlen); - printf("error buf %s\n", error_buf); - - xer_fprint(stderr, &asn_DEF_E2SM_KPM_IndicationMessage, indicationmessage); - - - uint8_t e2smbuffer[8192]; - size_t e2smbuffer_size = 8192; - - uint8_t e2smbuffer2[8192]; - size_t e2smbuffer_size2 = 8192; - - asn_enc_rval_t er = - asn_encode_to_buffer(opt_cod, - ATS_ALIGNED_BASIC_PER, - &asn_DEF_E2SM_KPM_IndicationMessage, - indicationmessage, e2smbuffer, e2smbuffer_size); - - fprintf(stderr, "er encded is %d\n", er.encoded); - fprintf(stderr, "after encoding message\n"); - - */ -} - -/* -void encode_kpm_bak(E2SM_KPM_IndicationMessage_t* indicationmessage) { - ASN_STRUCT_RESET(asn_DEF_E2SM_KPM_IndicationMessage, indicationmessage); - std::string gn = "GNBCUUP5"; - std::vector gnvec(gn.begin(), gn.end()); - uint8_t *buf = &gnvec[0]; - OCTET_STRING_t *gnbcuupname = (OCTET_STRING_t*)calloc(1, sizeof(OCTET_STRING_t)); - gnbcuupname->size = 8; - gnbcuupname->buf = (uint8_t*)calloc(1,8); - memcpy(gnbcuupname->buf, buf, gnbcuupname->size); - - - INTEGER_t *bytesdl = (INTEGER_t*)calloc(1, sizeof(INTEGER_t)); - uint8_t buffer[1]; - buffer[0]= 40000; - bytesdl->buf = (uint8_t*)calloc(1,1); - memcpy(bytesdl->buf, buffer,1); - bytesdl->size = 1; - - INTEGER_t *bytesul = (INTEGER_t*)calloc(1, sizeof(INTEGER_t)); - uint8_t buffer1[1]; - buffer1[0] = 50000; - bytesul->buf = (uint8_t*)calloc(1,1); - memcpy(bytesul->buf, buffer1, 1); - bytesul->size = 1; - - FQIPERSlicesPerPlmnListItem_t *fqilistitem = (FQIPERSlicesPerPlmnListItem_t*)calloc(1, sizeof(FQIPERSlicesPerPlmnListItem_t)); - ASN_STRUCT_RESET(asn_DEF_FQIPERSlicesPerPlmnListItem, fqilistitem); - fqilistitem->fiveQI = 9; - fqilistitem->pDCPBytesDL = bytesdl; - fqilistitem->pDCPBytesUL = bytesul; - - - - std::string sl = "SLICE4"; - std::vector slvec(sl.begin(), sl.end()); - // uint8_t *buf1 = &slvec[0]; - uint8_t *buf1 = (uint8_t*)"SLICE4"; - OCTET_STRING_t *sst = (OCTET_STRING_t*)calloc(1, sizeof(OCTET_STRING_t)); - sst->size = 6; - sst->buf = (uint8_t*)calloc(1,6); - memcpy(sst->buf,buf1,sst->size); - - std::string sd = "SD1"; - std::vector sdvec(sd.begin(), sd.end()); - // uint8_t *bufz = &sdvec[0]; - uint8_t *bufz = (uint8_t*)"SD1"; - OCTET_STRING_t *sds = (OCTET_STRING_t*)calloc(1, sizeof(OCTET_STRING_t)); - sds->size = 3; - sds->buf = (uint8_t*)calloc(1,3); - memcpy(sds->buf, bufz, sds->size); - - - SNSSAI_t *snssai = (SNSSAI_t*)calloc(1, sizeof(SNSSAI_t)); - ASN_STRUCT_RESET(asn_DEF_SNSSAI,snssai); - snssai->sST.buf = (uint8_t*)calloc(6,1); - snssai->sST.size = 6; - memcpy(snssai->sST.buf, buf1, 6); - snssai->sD = (OCTET_STRING_t*)calloc(1, sizeof(OCTET_STRING_t)); - snssai->sD->buf = (uint8_t*)calloc(1,3); - snssai->sD->size = 3; - memcpy(snssai->sD->buf, bufz, 3); - - - - SliceToReportListItem_t *slicelistitem = (SliceToReportListItem_t*)calloc(1,sizeof(SliceToReportListItem_t)); - ASN_STRUCT_RESET(asn_DEF_SliceToReportListItem, slicelistitem); - slicelistitem->sliceID = *snssai; - int ret = ASN_SEQUENCE_ADD(&slicelistitem->fQIPERSlicesPerPlmnList.list, fqilistitem); - - uint8_t e2smbuffera[8192]; - size_t e2smbuffer_sizea = 8192; - - auto era = - asn_encode_to_buffer(nullptr, - ATS_ALIGNED_BASIC_PER, - &asn_DEF_SliceToReportListItem, - slicelistitem, e2smbuffera, e2smbuffer_sizea); - fprintf(stderr, "inner er encded is %d\n", era.encoded); - fprintf(stderr, "after encoding message\n"); - - FGC_CUUP_PM_Format_t *pm_format = (FGC_CUUP_PM_Format_t*)calloc(1,sizeof(FGC_CUUP_PM_Format_t)); - ASN_STRUCT_RESET(asn_DEF_FGC_CUUP_PM_Format, pm_format); - ret = ASN_SEQUENCE_ADD(&pm_format->sliceToReportList.list, slicelistitem); - - std::string pl = "PLMNID7"; - std::vector plvec(pl.begin(), pl.end()); - uint8_t *buf2 = &plvec[0]; - - OCTET_STRING_t *plmnid = (OCTET_STRING_t*)calloc(1,sizeof(OCTET_STRING_t)); - plmnid->buf = (uint8_t*)calloc(1,7); - plmnid->size = 7; - memcpy(plmnid->buf, buf2, plmnid->size); - - - PlmnID_List_t *plmnidlist = (PlmnID_List_t*)calloc(1,sizeof(PlmnID_List_t)); - ASN_STRUCT_RESET(asn_DEF_PlmnID_List, plmnidlist); - plmnidlist->pLMN_Identity = *plmnid; - plmnidlist->cu_UP_PM_5GC = pm_format; - - CUUPMeasurement_Container_t *meas_cont = (CUUPMeasurement_Container_t*)calloc(1, sizeof(CUUPMeasurement_Container_t)); - ASN_STRUCT_RESET(asn_DEF_CUUPMeasurement_Container, meas_cont); - ret = ASN_SEQUENCE_ADD(&meas_cont->plmnList.list, plmnidlist); - - - - - PF_ContainerListItem_t *listitem1 = (PF_ContainerListItem_t*)calloc(1, sizeof(PF_ContainerListItem_t)); - ASN_STRUCT_RESET(asn_DEF_PF_ContainerListItem, listitem1); - listitem1->interface_type = 2; - listitem1->o_CU_UP_PM_Container = *meas_cont; - - OCUUP_PF_Container_t *cuupcont = (OCUUP_PF_Container_t*)calloc(1,sizeof(OCUUP_PF_Container_t)); - ASN_STRUCT_RESET(asn_DEF_OCUUP_PF_Container, cuupcont); - cuupcont->gNB_CU_UP_Name = gnbcuupname; - ret = ASN_SEQUENCE_ADD(&cuupcont->pf_ContainerList.list, listitem1); - - PF_Container_PR pres1 = PF_Container_PR_oCU_UP; - - PF_Container_t *pfcontainer = (PF_Container_t*)calloc(1, sizeof(PF_Container_t)); - ASN_STRUCT_RESET(asn_DEF_PF_Container, pfcontainer); - pfcontainer->present = pres1; - pfcontainer->choice.oCU_UP = *cuupcont; - - PM_Containers_List_t *containers_list = (PM_Containers_List_t*)calloc(1, sizeof(PM_Containers_List_t)); - ASN_STRUCT_RESET(asn_DEF_PM_Containers_List, containers_list); - containers_list->performanceContainer = pfcontainer; - - E2SM_KPM_IndicationMessage_Format1_t *format = - (E2SM_KPM_IndicationMessage_Format1_t*)calloc(1, sizeof(E2SM_KPM_IndicationMessage_Format1_t)); - ASN_STRUCT_RESET(asn_DEF_E2SM_KPM_IndicationMessage_Format1, format); - - ret = ASN_SEQUENCE_ADD(&format->pm_Containers.list, containers_list); - - E2SM_KPM_IndicationMessage_PR pres = E2SM_KPM_IndicationMessage_PR_indicationMessage_Format1; - - indicationmessage->present = pres; - - indicationmessage->choice.indicationMessage_Format1 = *format; - - char *error_buf = (char*)calloc(300, sizeof(char)); - size_t errlen; - - asn_check_constraints(&asn_DEF_E2SM_KPM_IndicationMessage, indicationmessage, error_buf, &errlen); - printf("error length %d\n", errlen); - printf("error buf %s\n", error_buf); - - - uint8_t e2smbuffer[8192]; - size_t e2smbuffer_size = 8192; - - uint8_t e2smbuffer2[8192]; - size_t e2smbuffer_size2 = 8192; - - auto er = - asn_encode_to_buffer(nullptr, - ATS_ALIGNED_BASIC_PER, - &asn_DEF_E2SM_KPM_IndicationMessage, - indicationmessage, e2smbuffer, e2smbuffer_size); - - fprintf(stderr, "er encded is %d\n", er.encoded); - fprintf(stderr, "after encoding message\n"); - - -} -*/ diff --git a/e2sim/previous/e2apv1sim/e2sim/encode_kpm.hpp b/e2sim/previous/e2apv1sim/e2sim/encode_kpm.hpp deleted file mode 100644 index 682814c..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/encode_kpm.hpp +++ /dev/null @@ -1,45 +0,0 @@ -#ifndef ENCODE_KPM_HPP -#define ENCODE_KPM_HPP - -extern "C" { - #include "OCUCP-PF-Container.h" - #include "OCTET_STRING.h" - #include "asn_application.h" - #include "E2SM-KPM-IndicationMessage.h" - #include "FQIPERSlicesPerPlmnListItem.h" - #include "E2SM-KPM-RANfunction-Description.h" - #include "Timestamp.h" -} - -void encode_kpm(E2SM_KPM_IndicationMessage_t* indicationmessage); - -void encode_kpm_bak(E2SM_KPM_IndicationMessage_t* indicationmessage); - -void encode_kpm_function_description(E2SM_KPM_RANfunction_Description_t* ranfunc_desc); - -void encode_kpm_report_style5(E2SM_KPM_IndicationMessage_t* indicationmessage); - -void encode_kpm_odu_user_level(RAN_Container_t *ranco); - -void encode_kpm_ocucp_user_level(RAN_Container_t *ranco); - -void encode_kpm_ocuup_user_level(RAN_Container_t *ranco); - -void encode_kpm_report_rancontainer_du(E2SM_KPM_IndicationMessage_t *indMsg); - -void encode_kpm_report_rancontainer_cucp(E2SM_KPM_IndicationMessage_t *indMsg); - -void encode_kpm_report_rancontainer_cuup(E2SM_KPM_IndicationMessage_t *indMsg); - -void encode_kpm_report_style1(E2SM_KPM_IndicationMessage_t* indicationmessage); - -void encode_kpm_report_rancontainer_cucp_parameterized(E2SM_KPM_IndicationMessage_t* indicationmessage,uint8_t *plmnid_buf,uint8_t *nrcellid_buf,uint8_t *crnti_buf,const uint8_t *serving_buf, const uint8_t *neighbor_buf); - -void encode_kpm_report_rancontainer_cuup_parameterized(E2SM_KPM_IndicationMessage_t* indicationmessage, uint8_t *plmnid_buf, uint8_t *nrcellid_buf, uint8_t *crnti_buf,int pdcp_bytesdl, int pdcp_bytesul); - -void encode_kpm_report_style1_parameterized(E2SM_KPM_IndicationMessage_t* indicationmessage, long fiveqi, long dl_prb_usage, long ul_prb_usage, uint8_t* sd_buf, uint8_t* sst_buf,uint8_t* plmnid_buf, uint8_t* nrcellid_buf, long *dl_prbs, long *ul_prbs); - -void encode_kpm_report_style5_parameterized(E2SM_KPM_IndicationMessage_t* indicationmessage, uint8_t *gnbcuupname_buf, int bytes_dl,int bytes_ul, uint8_t *sst_buf, uint8_t *sd_buf, uint8_t *plmnid_buf); - - -#endif diff --git a/e2sim/previous/e2apv1sim/e2sim/extras/ricsim.cpp b/e2sim/previous/e2apv1sim/e2sim/extras/ricsim.cpp deleted file mode 100644 index 5f9b7f2..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/extras/ricsim.cpp +++ /dev/null @@ -1,216 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -#include -#include -#include - -#include "e2sim_sctp.hpp" -#include "e2ap_message_handler.hpp" - -extern "C" { - #include "e2sim_defs.h" - #include "E2AP-PDU.h" - #include "e2ap_asn1c_codec.h" - #include "GlobalE2node-ID.h" - #include "GlobalE2node-gNB-ID.h" - #include "GlobalgNB-ID.h" - #include "OCTET_STRING.h" - #include "asn_application.h" - #include "GNB-ID-Choice.h" - #include "ProtocolIE-Field.h" - #include "E2setupRequest.h" -} - -using namespace std; - -/* -struct { - type **array; - int count; - int size; - void (*free)(decltype(*array)); -} -*/ - -void encode_and_send_sctp_data(E2AP_PDU_t* pdu, int client_fd) -{ - uint8_t *buf; - sctp_buffer_t data; - - data.len = e2ap_asn1c_encode_pdu(pdu, &buf); - memcpy(data.buffer, buf, min(data.len, MAX_SCTP_BUFFER)); - - sctp_send_data(client_fd, data); -} - -void wait_for_sctp_data(int client_fd) -{ - sctp_buffer_t recv_buf; - if(sctp_receive_data(client_fd, recv_buf) > 0) - { - LOG_I("[SCTP] Received new data of size %d", recv_buf.len); - e2ap_handle_sctp_data(client_fd, recv_buf); - } -} - -int main(int argc, char* argv[]){ - LOG_I("Start RIC Simulator"); - - options_t ops = read_input_options(argc, argv); - int client_fd = sctp_start_client(ops.server_ip, ops.server_port); - - //1. Send ENDCX2Setup - // E2AP_PDU_t* pdu_setup = e2ap_xml_to_pdu("E2AP_ENDCX2SetupRequest.xml"); - - printf("out0\n"); - - uint8_t *buf = (uint8_t *)"gnb1"; - - BIT_STRING_t gnb_bstring; - gnb_bstring.buf = buf; - gnb_bstring.size = 4; - gnb_bstring.bits_unused = 0; - - printf("out1\n"); - - - uint8_t *buf2 = (uint8_t *)"plmn3"; - OCTET_STRING_t plmn; - plmn.buf = buf2; - plmn.size = 5; - - GNB_ID_Choice_t gnbchoice; - GNB_ID_Choice_PR pres2 = GNB_ID_Choice_PR_gnb_ID; - gnbchoice.present = pres2; - gnbchoice.choice.gnb_ID = gnb_bstring; - - GlobalgNB_ID_t gnb; - gnb.plmn_id = plmn; - gnb.gnb_id = gnbchoice; - - - - GlobalE2node_gNB_ID_t *e2gnb = (GlobalE2node_gNB_ID_t*)calloc(1, sizeof(GlobalE2node_gNB_ID_t)); - e2gnb->global_gNB_ID = gnb; - - /* - GlobalE2node_ID_t *globale2nodeid = (GlobalE2node_ID_t*)calloc(1, sizeof(GlobalE2node_ID_t)); - GlobalE2node_ID_PR pres; - pres = GlobalE2node_ID_PR_gNB; - globale2nodeid->present = pres; - globale2nodeid->choice.gNB = e2gnb; - */ - - GlobalE2node_ID_t globale2nodeid; - GlobalE2node_ID_PR pres; - pres = GlobalE2node_ID_PR_gNB; - globale2nodeid.present = pres; - globale2nodeid.choice.gNB = e2gnb; - - E2setupRequestIEs_t *e2setuprid = (E2setupRequestIEs_t*)calloc(1, sizeof(E2setupRequest_t));; - E2setupRequestIEs__value_PR pres3; - pres3 = E2setupRequestIEs__value_PR_GlobalE2node_ID; - e2setuprid->id = 4; - e2setuprid->criticality = 0; - e2setuprid->value.choice.GlobalE2node_ID = globale2nodeid; - e2setuprid->value.present = pres3; - - - E2setupRequest_t e2setupreq; - e2setupreq.protocolIEs.list.size = sizeof(E2setupRequestIEs); - e2setupreq.protocolIEs.list.count = 1; - e2setupreq.protocolIEs.list.array = &e2setuprid; - - InitiatingMessage__value_PR pres4; - pres4 = InitiatingMessage__value_PR_E2setupRequest; - InitiatingMessage_t *initmsg = (InitiatingMessage_t*)calloc(1, sizeof(InitiatingMessage_t)); - initmsg->procedureCode = 1; - initmsg->criticality = 0; - initmsg->value.present = pres4; - initmsg->value.choice.E2setupRequest = e2setupreq; - - E2AP_PDU_PR pres5; - pres5 = E2AP_PDU_PR_initiatingMessage; - - E2AP_PDU_t *e2ap_pdu = (E2AP_PDU_t*)calloc(1, sizeof(E2AP_PDU_t)); - e2ap_pdu->present = pres5; - e2ap_pdu->choice.initiatingMessage = initmsg; - - printf("over here\n"); - - asn_fprint(stdout, &asn_DEF_E2AP_PDU, e2ap_pdu); - - - printf("over here 2\n"); - - xer_fprint(stdout, &asn_DEF_E2AP_PDU, e2ap_pdu); - - printf("over here 55\n"); - - E2AP_PDU_t* pdu_setup = e2ap_xml_to_pdu("E2AP_SetupRequest2.xml"); - e2ap_asn1c_print_pdu(pdu_setup); - encode_and_send_sctp_data(pdu_setup, client_fd); - LOG_I("[SCTP] Sent ENDC X2 SETUP REQUEST"); - - - // E2setupRequest_t* pdu_setup = smaller_e2ap_xml_to_pdu("E2AP_PartSetupRequest.xml"); - // e2ap_asn1c_print_pdu(pdu_setup); - // encode_and_send_sctp_data(pdu_setup, client_fd); - LOG_I("[SCTP] Sent ENDC X2 SETUP REQUEST"); - - /* - GlobalE2node_ID_t* pdu_setup = smaller_e2ap_xml_to_pdu("GlobalE2node-ID.xml"); - - asn_fprint(stdout, &asn_DEF_GlobalE2node_ID, pdu_setup); - - printf("over here 2\n"); - - xer_fprint(stdout, &asn_DEF_GlobalE2node_ID, pdu_setup); - */ - /* - e2ap_asn1c_print_pdu(pdu_setup); - encode_and_send_sctp_data(pdu_setup, client_fd); - */ - LOG_I("[SCTP] Sent ENDC X2 SETUP REQUEST"); - - - //2. Receive ENDCX2SetupResponse - wait_for_sctp_data(client_fd); - - //3. Send RICSubscriptionRequest - /* - E2AP_PDU_t* pdu_sub = e2ap_xml_to_pdu("E2AP_RICsubscriptionRequest_Ashwin.xml"); - e2ap_asn1c_print_pdu(pdu_sub); - encode_and_send_sctp_data(pdu_sub, client_fd); - LOG_I("[SCTP] Sent RIC SUBSCRIPTION REQUEST"); - */ - //4. Receive RICSubscriptionResponse - while(1){ - wait_for_sctp_data(client_fd); - } - - - //--------------------------------------- - close(client_fd); - LOG_I("[SCTP] Connection closed."); - - return 0; - -} diff --git a/e2sim/previous/e2apv1sim/e2sim/helm/README.md b/e2sim/previous/e2apv1sim/e2sim/helm/README.md deleted file mode 100644 index dfff99a..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/helm/README.md +++ /dev/null @@ -1,22 +0,0 @@ -################################################################################ -# Copyright (c) 2019 AT&T Intellectual Property. # -# Copyright (c) 2019 Nokia. # -# # -# Licensed under the Apache License, Version 2.0 (the "License"); # -# you may not use this file except in compliance with the License. # -# You may obtain a copy of the License at # -# # -# http://www.apache.org/licenses/LICENSE-2.0 # -# # -# Unless required by applicable law or agreed to in writing, software # -# distributed under the License is distributed on an "AS IS" BASIS, # -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # -# See the License for the specific language governing permissions and # -# limitations under the License. # -################################################################################ - - -# -# the test repo needs to be on the same parent path as the dep repo -# simply run e2sim_install.sh from this directory -# diff --git a/e2sim/previous/e2apv1sim/e2sim/helm/e2sim/Chart.yaml b/e2sim/previous/e2apv1sim/e2sim/helm/e2sim/Chart.yaml deleted file mode 100644 index f3a950c..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/helm/e2sim/Chart.yaml +++ /dev/null @@ -1,22 +0,0 @@ -################################################################################ -# Copyright (c) 2019 AT&T Intellectual Property. # -# Copyright (c) 2019 Nokia. # -# # -# Licensed under the Apache License, Version 2.0 (the "License"); # -# you may not use this file except in compliance with the License. # -# You may obtain a copy of the License at # -# # -# http://www.apache.org/licenses/LICENSE-2.0 # -# # -# Unless required by applicable law or agreed to in writing, software # -# distributed under the License is distributed on an "AS IS" BASIS, # -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # -# See the License for the specific language governing permissions and # -# limitations under the License. # -################################################################################ - -apiVersion: v1 -appVersion: "1.0" -description: A Helm chart for Kubernetes -name: e2sim -version: 0.1.0 diff --git a/e2sim/previous/e2apv1sim/e2sim/helm/e2sim/templates/_helpers.tpl b/e2sim/previous/e2apv1sim/e2sim/helm/e2sim/templates/_helpers.tpl deleted file mode 100644 index ce3748d..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/helm/e2sim/templates/_helpers.tpl +++ /dev/null @@ -1,49 +0,0 @@ -################################################################################ -# Copyright (c) 2019 AT&T Intellectual Property. # -# Copyright (c) 2019 Nokia. # -# # -# Licensed under the Apache License, Version 2.0 (the "License"); # -# you may not use this file except in compliance with the License. # -# You may obtain a copy of the License at # -# # -# http://www.apache.org/licenses/LICENSE-2.0 # -# # -# Unless required by applicable law or agreed to in writing, software # -# distributed under the License is distributed on an "AS IS" BASIS, # -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # -# See the License for the specific language governing permissions and # -# limitations under the License. # -################################################################################ - -{{/* vim: set filetype=mustache: */}} -{{/* -Expand the name of the chart. -*/}} -{{- define "e2sim.name" -}} -{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}} -{{- end -}} - -{{/* -Create a default fully qualified app name. -We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). -If release name contains chart name it will be used as a full name. -*/}} -{{- define "e2sim.fullname" -}} -{{- if .Values.fullnameOverride -}} -{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}} -{{- else -}} -{{- $name := default .Chart.Name .Values.nameOverride -}} -{{- if contains $name .Release.Name -}} -{{- .Release.Name | trunc 63 | trimSuffix "-" -}} -{{- else -}} -{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}} -{{- end -}} -{{- end -}} -{{- end -}} - -{{/* -Create chart name and version as used by the chart label. -*/}} -{{- define "e2sim.chart" -}} -{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}} -{{- end -}} diff --git a/e2sim/previous/e2apv1sim/e2sim/helm/e2sim/templates/bin/_e2sim-run.sh.tpl b/e2sim/previous/e2apv1sim/e2sim/helm/e2sim/templates/bin/_e2sim-run.sh.tpl deleted file mode 100755 index 35e01c4..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/helm/e2sim/templates/bin/_e2sim-run.sh.tpl +++ /dev/null @@ -1,54 +0,0 @@ -{{/* - Copyright (c) 2019 AT&T Intellectual Property. - Copyright (c) 2019 Nokia. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/}} -#!/bin/sh - -# Launch the e2 simulator on ${E2SIM_BIND_ADDR}:${E2SIM_BIND_PORT} -# If E2SIM_BIND_ADDR is not supplied, picks the address of the interface -# associated with the default route for E2SIM_BIND_AF (either -# "inet" [default] or "inet6"). - -if [ -z "${E2SIM_BIND_ADDR}" ]; then - if [ `echo "x${E2SIM_BIND_AF}x" | tr [A-Z] [a-z]` != "xinet6x" ]; then - AF='inet' - DEFROUTE='0/0' - LO='127.0.0.1' - else - AF='inet6' - DEFROUTE='::0/0' - LO='00:00:00:00:00:00' - fi - if [ -z "${E2SIM_BIND_IF}" ]; then - # bind on the address associated with the default route - E2SIM_BIND_IF=`ip -br -f ${AF} route show ${DEFROUTE}| sed 's/.*dev[\ ]*\([^\ ]*\).*/\1/'` - if [ -z ${E2SIM_BIND_IF} ]; then - # this is kinda bogus, but it's the only real fallback: take the first - # non-loopback interface. - E2SIM_BIND_IF=`ip -f ${AF} -o link list up | grep -v LOOPBACK | head -1 |awk -F: '{print $2}'` - fi - fi - E2SIM_BIND_ADDR=`ip -f ${AF} -o addr show ${E2SIM_BIND_IF:-eth0} scope global | sed -e 's/.*inet[6\ ]*\([^\ ]*\)\/.*/\1/'` -fi - -if [ -z $E2SIM_BIND_ADDR ]; then - # search failed. be nondestructively useless. - echo "No suitable address found, binding on loopback addess ${LO}" - E2SIM_BIND_ADDR=${LO} -else - echo "e2sim starting at ${E2SIM_BIND_ADDR}:${E2SIM_PORT:-36421}" -fi - -${E2SIM:-/home/e2sim/build/e2sim} ${E2SIM_BIND_ADDR} ${E2SIM_PORT:-36421} diff --git a/e2sim/previous/e2apv1sim/e2sim/helm/e2sim/templates/configmap-e2sim-bin.yaml b/e2sim/previous/e2apv1sim/e2sim/helm/e2sim/templates/configmap-e2sim-bin.yaml deleted file mode 100644 index ec30488..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/helm/e2sim/templates/configmap-e2sim-bin.yaml +++ /dev/null @@ -1,8 +0,0 @@ -apiVersion: v1 -kind: ConfigMap -metadata: - name: configmap-e2sim-bin - namespace: {{ .Release.Namespace }} -data: - e2sim-run.sh: | - {{- include "e2sim/templates/bin/_e2sim-run.sh.tpl" . | indent 4 }} diff --git a/e2sim/previous/e2apv1sim/e2sim/helm/e2sim/templates/deployment.yaml b/e2sim/previous/e2apv1sim/e2sim/helm/e2sim/templates/deployment.yaml deleted file mode 100644 index 21475f1..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/helm/e2sim/templates/deployment.yaml +++ /dev/null @@ -1,79 +0,0 @@ -{{/* - Copyright (c) 2019 AT&T Intellectual Property. - Copyright (c) 2019 Nokia. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/}} - -apiVersion: extensions/v1beta1 -kind: Deployment -metadata: - name: {{ include "e2sim.fullname" . }} - namespace: {{ .Release.Namespace }} - labels: - app: {{ include "e2sim.name" . }} - chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} - release: {{ .Release.Name }} - heritage: {{ .Release.Service }} -spec: - replicas: {{ .Values.replicaCount }} - template: - metadata: - labels: - app.kubernetes.io/instance: {{ .Release.Name }} - app.kubernetes.io/managed-by: {{ .Release.Service }} - spec: - hostNetwork: true - containers: - - name: {{ include "e2sim.name" . }} - image: "{{ .Values.image.repository }}/{{ .Values.image.name }}:{{ .Values.image.tag }}" - imagePullPolicy: {{ .Values.image.pullPolicy }} - command: - - /e2sim-run.sh - ports: - - containerPort: {{ .Values.service.port }} - env: - - name: E2SIM_NETWORK_TYPE - value: {{ .Values.e2sim.network.type | default "host" }} - - name: E2SIM_PORT - value: {{ .Values.e2sim.network.port | default 36421 |quote}} - - name: E2SIM_BIND_ADDR - value: {{ .Values.e2sim.network.address }} - - name: E2SIM_BIND_IF - value: {{ .Values.e2sim.network.interface }} - - name: E2SIM_BIND_AF - value: {{ .Values.e2sim.network.addressFamily | default "inet" }} - volumeMounts: - - name: dshm - mountPath: /dev/shm - - name: localtime - mountPath: /etc/localtime - readOnly: true - - name: e2sim-bin - subPath: e2sim-run.sh - mountPath: /e2sim-run.sh - resources: - volumes: - - name: dshm - emptyDir: - medium: Memory - - name: localtime - hostPath: - path: /etc/localtime - - name: e2sim-bin - configMap: - name: configmap-e2sim-bin - defaultMode: 0755 - imagePullSecrets: - - name: {{ .Values.image.repositoryCred }} - diff --git a/e2sim/previous/e2apv1sim/e2sim/helm/e2sim/values.yaml b/e2sim/previous/e2apv1sim/e2sim/helm/e2sim/values.yaml deleted file mode 100755 index 5f5cbca..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/helm/e2sim/values.yaml +++ /dev/null @@ -1,48 +0,0 @@ -################################################################################ -# Copyright (c) 2019 AT&T Intellectual Property. # -# Copyright (c) 2019 Nokia. # -# # -# Licensed under the Apache License, Version 2.0 (the "License"); # -# you may not use this file except in compliance with the License. # -# You may obtain a copy of the License at # -# # -# http://www.apache.org/licenses/LICENSE-2.0 # -# # -# Unless required by applicable law or agreed to in writing, software # -# distributed under the License is distributed on an "AS IS" BASIS, # -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # -# See the License for the specific language governing permissions and # -# limitations under the License. # -################################################################################ - -replicaCount: 1 - -image: - repository: snapshot.docker.ranco-dev-tools.eastus.cloudapp.azure.com:10001 - repositoryCred: docker-reg-cred - # for local testing - #repository: ric/testsuite - name: test/e2sim - tag: latest - pullPolicy: IfNotPresent - -nameOverride: "" -fullnameOverride: "" - -e2sim: - network: - # network implementation type: hostnetworking or DANM - # type: ["host"]|"danm" - # where e2sim should listen for SCTP connections: - # o if "address" is supplied, listen on that IP (v4 or v6) address - # o if "address" is not supplied and "interface" is supplied, listen on the - # first globally-scoped address on that interface of family "addressFamily" - # (default "inet") - # o if neither "address" nor "interface" is supplied, listen on the first - # globally-scoped address of family "addressFamily" (default "inet") on - # the interface associated with the container's default route, if any; if - # the container does not have a default route, the first interface with - # a globally-scoped address will be used. - # address: addr - # interface: ifname - # addressFamily: ["inet"]|"inet6" \ No newline at end of file diff --git a/e2sim/previous/e2apv1sim/e2sim/helm/e2sim_install.sh b/e2sim/previous/e2apv1sim/e2sim/helm/e2sim_install.sh deleted file mode 100755 index 9b9a13c..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/helm/e2sim_install.sh +++ /dev/null @@ -1,78 +0,0 @@ -#!/bin/bash -################################################################################ -# Copyright (c) 2019 AT&T Intellectual Property. # -# Copyright (c) 2019 Nokia. # -# # -# Licensed under the Apache License, Version 2.0 (the "License"); # -# you may not use this file except in compliance with the License. # -# You may obtain a copy of the License at # -# # -# http://www.apache.org/licenses/LICENSE-2.0 # -# # -# Unless required by applicable law or agreed to in writing, software # -# distributed under the License is distributed on an "AS IS" BASIS, # -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # -# See the License for the specific language governing permissions and # -# limitations under the License. # -################################################################################ - - -OVERRIDEYAML=$1 - - -DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null && pwd )" - -#/root/test/ric_robot_suite/helm -# extract the base to find root to dep - -BASE=${DIR%/test*} - -# /data/ORAN-OSC/it/dep/ric-platform/50-RIC-Platform/bin/install -BASEDIR05=$BASE/dep/ric-platform/50-RIC-Platform/ -BASEDIRCOMMON=$BASE/dep/ric-common/Common-Template/helm/ric-common - -echo "Using etc/ric.conf from $BASEDIR05" - - -source $BASEDIR05/etc/ric.conf - - -if [ -z "$RICPLT_RELEASE_NAME" ];then - RELEASE_NAME=$helm_release_name -else - RELEASE_NAME=$RICPLT_RELEASE_NAME -fi - -# Namespace configuration -if [ -z "$RICPLT_NAMESPACE" ];then - PLT_NAMESPACE=$plt_namespace -else - PLT_NAMESPACE=$RICPLT_NAMESPACE -fi - - - -RICPLT_COMPONENTS="e2sim" - -echo "Deploying RIC Platform components [$RICPLT_COMPONENTS]" -echo "Platform Namespace: $PLT_NAMESPACE" -echo "Helm Release Name: $RELEASE_NAME" - - -COMMON_CHART_VERSION=$(cat $BASEDIRCOMMON/Chart.yaml | grep version | awk '{print $2}') - -helm package -d /tmp $BASEDIRCOMMON - - -for component in $RICPLT_COMPONENTS; do - echo "Preparing chart for comonent $component" - mkdir -p $DIR/$component/charts/ - cp /tmp/ric-common-$COMMON_CHART_VERSION.tgz $DIR/$component/charts/ - if [ -z $OVERRIDEYAML ]; then - echo "helm install --namespace \"${PLT_NAMESPACE}\" --set \"Release.HelmReleaseName=${RELEASE_NAME}\" --name \"${RELEASE_NAME}-$component\" $DIR/../helm/$component" - helm install --namespace "${PLT_NAMESPACE}" --set "Release.HelmReleaseName=${RELEASE_NAME}" --name "${RELEASE_NAME}-$component" $DIR/$component - else - echo "helm install -f $OVERRIDEYAML --namespace \"${PLT_NAMESPACE}\" --set \"Release.HelmReleaseName=${RELEASE_NAME}\" --name \"${RELEASE_NAME}-$component\" $DIR/../helm/$component" - helm install -f $OVERRIDEYAML --namespace "${PLT_NAMESPACE}" --set "Release.HelmReleaseName=${RELEASE_NAME}" --name "${RELEASE_NAME}-$component" $DIR/$component - fi -done diff --git a/e2sim/previous/e2apv1sim/e2sim/kpm_callbacks.cpp b/e2sim/previous/e2apv1sim/e2sim/kpm_callbacks.cpp deleted file mode 100644 index 58ba3b5..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/kpm_callbacks.cpp +++ /dev/null @@ -1,646 +0,0 @@ - - -#include -#include -#include - - - -extern "C" { - #include "OCUCP-PF-Container.h" - #include "OCTET_STRING.h" - #include "asn_application.h" - #include "E2SM-KPM-IndicationMessage.h" - #include "FQIPERSlicesPerPlmnListItem.h" - #include "E2SM-KPM-RANfunction-Description.h" - #include "Timestamp.h" - #include "E2AP-PDU.h" - #include "RICsubscriptionRequest.h" - #include "RICsubscriptionResponse.h" - #include "RICactionType.h" - #include "ProtocolIE-Field.h" - #include "ProtocolIE-SingleContainer.h" - #include "InitiatingMessage.h" -} - -#include "kpm_callbacks.hpp" -#include "encode_kpm.hpp" - -#include "encode_e2apv1.hpp" - -#include -#include - - -using json = nlohmann::json; - -using namespace std; -class E2Sim; - - -E2Sim e2sim; - -int main(int argc, char* argv[]) { - - asn_codec_ctx_t *opt_cod; - - E2SM_KPM_RANfunction_Description_t *ranfunc_desc = - (E2SM_KPM_RANfunction_Description_t*)calloc(1,sizeof(E2SM_KPM_RANfunction_Description_t)); - encode_kpm_function_description(ranfunc_desc); - - uint8_t e2smbuffer[8192]; - size_t e2smbuffer_size = 8192; - - asn_enc_rval_t er = - asn_encode_to_buffer(opt_cod, - ATS_ALIGNED_BASIC_PER, - &asn_DEF_E2SM_KPM_RANfunction_Description, - ranfunc_desc, e2smbuffer, e2smbuffer_size); - - fprintf(stderr, "er encded is %d\n", er.encoded); - fprintf(stderr, "after encoding message\n"); - fprintf(stderr, "here is encoded message %s\n", e2smbuffer); - - uint8_t *ranfuncdesc = (uint8_t*)calloc(1,er.encoded); - memcpy(ranfuncdesc, e2smbuffer, er.encoded); - - printf("this is the char array %s\n", (char*)ranfuncdesc); - - OCTET_STRING_t *ranfunc_ostr = (OCTET_STRING_t*)calloc(1,sizeof(OCTET_STRING_t)); - ranfunc_ostr->buf = (uint8_t*)calloc(1,er.encoded); - ranfunc_ostr->size = er.encoded; - memcpy(ranfunc_ostr->buf,e2smbuffer,er.encoded); - - printf("!!!lenth of ranfuncdesc is %d\n", strlen((char*)ranfuncdesc)); - printf("value of this index is %d\n", ranfuncdesc[0]); - printf("value of this index is %d\n", ranfuncdesc[1]); - printf("value of this index is %d\n", ranfuncdesc[2]); - printf("value of this index is %d\n", ranfuncdesc[3]); - printf("value of this index is %d\n", ranfuncdesc[4]); - printf("value of this index is %d\n", ranfuncdesc[5]); - printf("value of this index is %d\n", ranfuncdesc[6]); - printf("value of this index is %d\n", ranfuncdesc[10]); - printf("value of this index is %d\n", ranfuncdesc[15]); - printf("value of this index is %d\n", ranfuncdesc[100]); - printf("value of this index is %d\n", ranfuncdesc[101]); - - e2sim.register_e2sm(1,ranfunc_ostr); - e2sim.register_subscription_callback(1,&callback_kpm_subscription_request); - - e2sim.run_loop(argc, argv); - -} - -void run_report_loop(long requestorId, long instanceId, long ranFunctionId, long actionId) { - - //Process simulation file - - ifstream simfile; - string line; - - long seqNum = 1; - - simfile.open("simulation.txt", ios::in); - - cout << "step1" << endl; - - std::ifstream ue_stream("ueMeasReport.txt"); - std::ifstream cell_stream("cellMeasReport.txt"); - - json all_ues_json; - - ue_stream >> all_ues_json; - - json all_cells_json; - - cell_stream >> all_cells_json; - - asn_codec_ctx_t *opt_cod; - - cout << "UE RF Measurements" << endl; - cout << "******************" << endl; - - int numMeasReports = (all_ues_json["/ueMeasReport/ueMeasReportList"_json_pointer]).size(); - - for (int i = 0; i < numMeasReports; i++) { - int nextCellId; - int nextRsrp; - int nextRsrq; - int nextRssinr; - cout << "UE number " + i << endl; - cout << "**********" << endl; - json::json_pointer p1(std::string("/ueMeasReport/ueMeasReportList/") + std::to_string(i) +"/nrCellIdentity"); - nextCellId = all_ues_json[p1].get(); - cout << "Serving Cell " << nextCellId << endl; - - json::json_pointer p2(std::string("/ueMeasReport/ueMeasReportList/") + std::to_string(i) +"/servingCellRfReport/rsrp"); - nextRsrp = all_ues_json[p2].get(); - cout << " RSRP " << nextRsrp << endl; - json::json_pointer p3(std::string("/ueMeasReport/ueMeasReportList/") + std::to_string(i) +"/servingCellRfReport/rsrq"); - nextRsrq = all_ues_json[p3].get(); - cout << " RSRQ " << nextRsrq << endl; - json::json_pointer p4(std::string("/ueMeasReport/ueMeasReportList/") + std::to_string(i) +"/servingCellRfReport/rssinr"); - nextRssinr = all_ues_json[p4].get(); - cout << " RSSINR " << nextRssinr << endl; - - json::json_pointer p5(std::string("/ueMeasReport/ueMeasReportList/") + std::to_string(i) +"/neighbourCellList"); - - int numNeighborCells = (all_ues_json[p5]).size(); - - - //REPORT Message 3 -- Encode and send OCUCP user-level report - - E2SM_KPM_IndicationMessage_t *ind_msg3 = - (E2SM_KPM_IndicationMessage_t*)calloc(1,sizeof(E2SM_KPM_IndicationMessage_t)); - E2AP_PDU *pdu3 = (E2AP_PDU*)calloc(1,sizeof(E2AP_PDU)); - - uint8_t *crnti_buf = (uint8_t*)calloc(1,2); - - if (nextCellId == 0) { - uint8_t *buf2 = (uint8_t*)"12"; - memcpy(crnti_buf, buf2, 2); - } else if (nextCellId == 1) { - uint8_t *buf2 = (uint8_t*)"22"; - memcpy(crnti_buf, buf2, 2); - } - - std::string serving_str = "{\"rsrp\": " + std::to_string(nextRsrp) + ", \"rsrq\": " + - std::to_string(nextRsrq) + ", \"rssinr\": " + std::to_string(nextRssinr) + "}"; - const uint8_t *serving_buf = reinterpret_cast(serving_str.c_str()); - - std::string neighbor_str = "["; - - int nextNbCell; - int nextNbRsrp; - int nextNbRsrq; - int nextNbRssinr; - - for (int j = 0; j < numNeighborCells; j++) { - json::json_pointer p8(std::string("/ueMeasReport/ueMeasReportList/") + std::to_string(i) +"/neighbourCellList/" + std::to_string(j) + "/nbCellIdentity"); - nextNbCell = all_ues_json[p8].get(); - cout << "Neighbor Cell " << all_ues_json[p8] << endl; - json::json_pointer p9(std::string("/ueMeasReport/ueMeasReportList/") + std::to_string(i) - +"/neighbourCellList/" + std::to_string(j) + "/nbCellRfReport/rsrp"); - nextNbRsrp = all_ues_json[p9].get(); - cout << " RSRP " << nextNbRsrp << endl; - - json::json_pointer p10(std::string("/ueMeasReport/ueMeasReportList/") + std::to_string(i) - +"/neighbourCellList/" + std::to_string(j) + "/nbCellRfReport/rsrq"); - nextNbRsrq = all_ues_json[p10].get(); - cout << " RSRQ " << nextNbRsrq << endl; - - json::json_pointer p11(std::string("/ueMeasReport/ueMeasReportList/") + std::to_string(i) - +"/neighbourCellList/" + std::to_string(j) + "/nbCellRfReport/rssinr"); - nextNbRssinr = all_ues_json[p11].get(); - cout << " RSSINR " << nextNbRssinr << endl; - - if (j != 0) { - neighbor_str += ","; - - } - - neighbor_str += "{\"CID\" : \"" + std::to_string(nextNbCell) + "\", \"Cell-RF\" : \"{\"rsrp\": " + std::to_string(nextNbRsrp) + - ", \"rsrq\": " + std::to_string(nextNbRsrq) + ", \"rssinr\": " + std::to_string(nextNbRssinr) + "}}"; - - } - - neighbor_str += "]"; - - const uint8_t *neighbor_buf = reinterpret_cast(neighbor_str.c_str()); - - printf("Neighbor string\n%s", neighbor_buf); - - uint8_t *plmnid_buf = (uint8_t*)"747"; - uint8_t *nrcellid_buf = (uint8_t*)"12340"; - - encode_kpm_report_rancontainer_cucp_parameterized(ind_msg3, plmnid_buf, nrcellid_buf, crnti_buf, serving_buf, neighbor_buf); - - uint8_t e2smbuffer3[8192]; - size_t e2smbuffer_size3 = 8192; - - - asn_enc_rval_t er3 = asn_encode_to_buffer(opt_cod, - ATS_ALIGNED_BASIC_PER, - &asn_DEF_E2SM_KPM_IndicationMessage, - ind_msg3, e2smbuffer3, e2smbuffer_size3); - - fprintf(stderr, "er encded is %d\n", er3.encoded); - fprintf(stderr, "after encoding message\n"); - uint8_t *e2smheader_buf3 = (uint8_t*)"header"; - - generate_e2apv1_indication_request_parameterized(pdu3, requestorId, - instanceId, ranFunctionId, - actionId, seqNum, e2smheader_buf3, 6, e2smbuffer3, er3.encoded); - - e2sim.encode_and_send_sctp_data(pdu3); - - seqNum++; - - } - - - cout << "Cell Measurements" << endl; - cout << "******************" << endl; - - int numCellMeasReports = (all_cells_json["/cellMeasReport/cellMeasReportList"_json_pointer]).size(); - - uint8_t *sst_buf = (uint8_t*)"1"; - uint8_t *sd_buf = (uint8_t*)"100"; - uint8_t *plmnid_buf = (uint8_t*)"747"; - - for (int i = 0; i < numCellMeasReports; i++) { - - int nextCellId; - int nextPdcpBytesDL; - int nextPdcpBytesUL; - int nextPRBBytesDL; - int nextPRBBytesUL; - - json::json_pointer p1(std::string("/cellMeasReport/cellMeasReportList/") + std::to_string(i) +"/nrCellIdentity"); - nextCellId = all_cells_json[p1].get(); - cout << std::string("Cell number ") << nextCellId << endl; - - cout << "**********" << endl; - - json::json_pointer p2(std::string("/cellMeasReport/cellMeasReportList/") + std::to_string(i) +"/pdcpByteMeasReport/pdcpBytesDl"); - nextPdcpBytesDL = all_cells_json[p2].get(); - cout << std::string(" PDCP Bytes DL ") << nextPdcpBytesDL << endl; - - json::json_pointer p3(std::string("/cellMeasReport/cellMeasReportList/") + std::to_string(i) +"/pdcpByteMeasReport/pdcpBytesUl"); - nextPdcpBytesUL = all_cells_json[p3].get(); - cout << std::string(" PDCP Bytes UL ") << nextPdcpBytesUL << endl; - - uint8_t *buf = (uint8_t*)"GNBCUUP5"; - - int bytes_dl = nextPdcpBytesDL; - - int bytes_ul = nextPdcpBytesUL; - - // int bytes_dl = 3905; - // int bytes_ul = 1609321; - - E2SM_KPM_IndicationMessage_t *ind_msg2 = - (E2SM_KPM_IndicationMessage_t*)calloc(1,sizeof(E2SM_KPM_IndicationMessage_t)); - E2AP_PDU *pdu2 = (E2AP_PDU*)calloc(1,sizeof(E2AP_PDU)); - - encode_kpm_report_style5_parameterized(ind_msg2 , buf, bytes_dl, bytes_ul, sst_buf, sd_buf, plmnid_buf); - - uint8_t e2smbuffer2[8192]; - size_t e2smbuffer_size2 = 8192; - - asn_enc_rval_t er2 = asn_encode_to_buffer(opt_cod, - ATS_ALIGNED_BASIC_PER, - &asn_DEF_E2SM_KPM_IndicationMessage, - ind_msg2, e2smbuffer2, e2smbuffer_size2); - - fprintf(stderr, "er encded is %d\n", er2.encoded); - fprintf(stderr, "after encoding message\n"); - uint8_t *e2smheader_buf2 = (uint8_t*)"header"; - - generate_e2apv1_indication_request_parameterized(pdu2, requestorId, - instanceId, ranFunctionId, - actionId, seqNum, e2smheader_buf2, 6, e2smbuffer2, er2.encoded); - - e2sim.encode_and_send_sctp_data(pdu2); - - seqNum++; - - - - json::json_pointer p4(std::string("/cellMeasReport/cellMeasReportList/") + std::to_string(i) +"/prbMeasReport/availPrbDl"); - nextPRBBytesDL = all_cells_json[p4].get(); - cout << std::string(" PRB Bytes DL ") << all_cells_json[p4] << endl; - - json::json_pointer p5(std::string("/cellMeasReport/cellMeasReportList/") + std::to_string(i) +"/prbMeasReport/availPrbUl"); - nextPRBBytesUL = all_cells_json[p5].get(); - cout << std::string(" PRB Bytes UL ") << all_cells_json[p5] << endl; - - - //REPORT Message 1 -- Encode and send ODU cell-level report - - E2SM_KPM_IndicationMessage_t *ind_msg1 = - (E2SM_KPM_IndicationMessage_t*)calloc(1,sizeof(E2SM_KPM_IndicationMessage_t)); - E2AP_PDU *pdu = (E2AP_PDU*)calloc(1,sizeof(E2AP_PDU)); - - long fiveqi = 7; - - uint8_t *nrcellid_buf = (uint8_t*)"12340"; - long dl_prbs = nextPRBBytesDL; - long ul_prbs = nextPRBBytesUL; - - encode_kpm_report_style1_parameterized(ind_msg1, fiveqi, dl_prbs, ul_prbs, sst_buf, sd_buf, plmnid_buf, nrcellid_buf, &dl_prbs, &ul_prbs); - - uint8_t e2smbuffer[8192]; - size_t e2smbuffer_size = 8192; - - asn_enc_rval_t er = asn_encode_to_buffer(opt_cod, - ATS_ALIGNED_BASIC_PER, - &asn_DEF_E2SM_KPM_IndicationMessage, - ind_msg1, e2smbuffer, e2smbuffer_size); - - fprintf(stderr, "er encded is %d\n", er.encoded); - fprintf(stderr, "after encoding message\n"); - uint8_t *e2smheader_buf = (uint8_t*)"header"; - - uint8_t *cpid_buf = (uint8_t*)"CPID"; - - fprintf(stderr, "About to encode Indication\n"); - generate_e2apv1_indication_request_parameterized(pdu, requestorId, - instanceId, ranFunctionId, - actionId, seqNum, e2smheader_buf, 6, e2smbuffer, er.encoded); - - e2sim.encode_and_send_sctp_data(pdu); - - seqNum++; - - } - - - /* - if (simfile.is_open()) { - - while (getline(simfile, line)) { - cout << line << "\n"; - - //REPORT Message 1 -- Encode and send ODU cell-level report - - E2SM_KPM_IndicationMessage_t *ind_msg1 = - (E2SM_KPM_IndicationMessage_t*)calloc(1,sizeof(E2SM_KPM_IndicationMessage_t)); - E2AP_PDU *pdu = (E2AP_PDU*)calloc(1,sizeof(E2AP_PDU)); - - long fiveqi = 7; - uint8_t *sst_buf = (uint8_t*)"1"; - uint8_t *sd_buf = (uint8_t*)"100"; - uint8_t *plmnid_buf = (uint8_t*)"747"; - uint8_t *nrcellid_buf = (uint8_t*)"12340"; - long dl_prbs = 100; - long ul_prbs = 50; - - encode_kpm_report_style1_parameterized(ind_msg1, fiveqi, dl_prbs, ul_prbs, sst_buf, sd_buf, plmnid_buf, nrcellid_buf, &dl_prbs, &ul_prbs); - - uint8_t e2smbuffer[8192]; - size_t e2smbuffer_size = 8192; - asn_codec_ctx_t *opt_cod; - - asn_enc_rval_t er = asn_encode_to_buffer(opt_cod, - ATS_ALIGNED_BASIC_PER, - &asn_DEF_E2SM_KPM_IndicationMessage, - ind_msg1, e2smbuffer, e2smbuffer_size); - - fprintf(stderr, "er encded is %d\n", er.encoded); - fprintf(stderr, "after encoding message\n"); - uint8_t *e2smheader_buf = (uint8_t*)"header"; - - uint8_t *cpid_buf = (uint8_t*)"CPID"; - - fprintf(stderr, "About to encode Indication\n"); - generate_e2apv1_indication_request_parameterized(pdu, requestorId, - instanceId, ranFunctionId, - actionId, seqNum, e2smheader_buf, 6, e2smbuffer, er.encoded); - - encode_and_send_sctp_data(pdu, socket_fd); - - seqNum++; - - //REPORT Message 2 -- Encode and send OCUUP cell-level report - - uint8_t *buf = (uint8_t*)"GNBCUUP5"; - - int bytes_dl = 40000; - int bytes_ul = 50000; - - E2SM_KPM_IndicationMessage_t *ind_msg2 = - (E2SM_KPM_IndicationMessage_t*)calloc(1,sizeof(E2SM_KPM_IndicationMessage_t)); - E2AP_PDU *pdu2 = (E2AP_PDU*)calloc(1,sizeof(E2AP_PDU)); - - encode_kpm_report_style5_parameterized(ind_msg2 , buf, bytes_dl, bytes_ul, sst_buf, sd_buf, plmnid_buf); - - uint8_t e2smbuffer2[8192]; - size_t e2smbuffer_size2 = 8192; - - - asn_enc_rval_t er2 = asn_encode_to_buffer(opt_cod, - ATS_ALIGNED_BASIC_PER, - &asn_DEF_E2SM_KPM_IndicationMessage, - ind_msg2, e2smbuffer2, e2smbuffer_size2); - - fprintf(stderr, "er encded is %d\n", er2.encoded); - fprintf(stderr, "after encoding message\n"); - uint8_t *e2smheader_buf2 = (uint8_t*)"header"; - - generate_e2apv1_indication_request_parameterized(pdu2, requestorId, - instanceId, ranFunctionId, - actionId, seqNum, e2smheader_buf2, 6, e2smbuffer2, er2.encoded); - - encode_and_send_sctp_data(pdu2, socket_fd); - - seqNum++; - - //REPORT Message 3 -- Encode and send OCUCP user-level report - - E2SM_KPM_IndicationMessage_t *ind_msg3 = - (E2SM_KPM_IndicationMessage_t*)calloc(1,sizeof(E2SM_KPM_IndicationMessage_t)); - E2AP_PDU *pdu3 = (E2AP_PDU*)calloc(1,sizeof(E2AP_PDU)); - - uint8_t *crnti_buf = (uint8_t*)"12"; - // uint8_t *serving_buf = (uint8_t*)"RSRP10"; - //uint8_t *neighbor_buf = (uint8_t*)"-10,-15"; - int rsrpServ = 10; - int rsrqServ = 0; - int rssinrServ = 0; - - std::string serving_str = "{\"rsrp\": " + std::to_string(rsrpServ) + ", \"rsrq\": " + - std::to_string(rsrqServ) + ", \"rssinr\": " + std::to_string(rssinrServ) + "}"; - const uint8_t *serving_buf = reinterpret_cast(serving_str.c_str()); - - - neighbor_cell_entry n_entries[3]; - n_entries[0] = {"123", 10, 0, 0}; - n_entries[1] = {"456", 10, 0, 0}; - n_entries[2] = {"789", 10, 0, 0}; - - std::string neighbor_str = "["; - - for (int i=0; i < sizeof(n_entries)/sizeof(n_entries[0]); i++) { - - if (i != 0) { - neighbor_str += ","; - } - neighbor_str += "{\"CID\" : \"" + std::string(n_entries[i].cellid) + "\", \"Cell-RF\" : \"{\"rsrp\": " + std::to_string(n_entries[i].rsrp) + - ", \"rsrq\": " + std::to_string(n_entries[i].rsrq) + ", \"rssinr\": " + std::to_string(n_entries[i].rsrp) + "}}"; - } - - neighbor_str += "]"; - - const uint8_t *neighbor_buf = reinterpret_cast(neighbor_str.c_str()); - - printf("Neighbor string\n%s", neighbor_buf); - - encode_kpm_report_rancontainer_cucp_parameterized(ind_msg3, plmnid_buf, nrcellid_buf, crnti_buf, serving_buf, neighbor_buf); - - uint8_t e2smbuffer3[8192]; - size_t e2smbuffer_size3 = 8192; - - asn_enc_rval_t er3 = asn_encode_to_buffer(opt_cod, - ATS_ALIGNED_BASIC_PER, - &asn_DEF_E2SM_KPM_IndicationMessage, - ind_msg3, e2smbuffer3, e2smbuffer_size3); - - fprintf(stderr, "er encded is %d\n", er3.encoded); - fprintf(stderr, "after encoding message\n"); - uint8_t *e2smheader_buf3 = (uint8_t*)"header"; - - generate_e2apv1_indication_request_parameterized(pdu3, requestorId, - instanceId, ranFunctionId, - actionId, seqNum, e2smheader_buf3, 6, e2smbuffer3, er3.encoded); - - encode_and_send_sctp_data(pdu3, socket_fd); - - seqNum++; - - //Encode and send OCUUP user-level report - - - - //Encode and send ODU user-level report - - - - - } - - simfile.close(); - - } - */ - -} - -void callback_kpm_subscription_request(E2AP_PDU_t *sub_req_pdu) { - - - //Record RIC Request ID - //Go through RIC action to be Setup List - //Find first entry with REPORT action Type - //Record ricActionID - //Encode subscription response - - RICsubscriptionRequest_t orig_req = - sub_req_pdu->choice.initiatingMessage->value.choice.RICsubscriptionRequest; - - RICsubscriptionResponse_IEs_t *ricreqid = - (RICsubscriptionResponse_IEs_t*)calloc(1, sizeof(RICsubscriptionResponse_IEs_t)); - - int count = orig_req.protocolIEs.list.count; - int size = orig_req.protocolIEs.list.size; - - RICsubscriptionRequest_IEs_t **ies = (RICsubscriptionRequest_IEs_t**)orig_req.protocolIEs.list.array; - - fprintf(stderr, "count%d\n", count); - fprintf(stderr, "size%d\n", size); - - RICsubscriptionRequest_IEs__value_PR pres; - - long reqRequestorId; - long reqInstanceId; - long reqActionId; - - std::vector actionIdsAccept; - std::vector actionIdsReject; - - for (int i=0; i < count; i++) { - RICsubscriptionRequest_IEs_t *next_ie = ies[i]; - pres = next_ie->value.present; - - fprintf(stderr, "next present value %d\n", pres); - - switch(pres) { - case RICsubscriptionRequest_IEs__value_PR_RICrequestID: - { - RICrequestID_t reqId = next_ie->value.choice.RICrequestID; - long requestorId = reqId.ricRequestorID; - long instanceId = reqId.ricInstanceID; - fprintf(stderr, "requestorId %d\n", requestorId); - fprintf(stderr, "instanceId %d\n", instanceId); - reqRequestorId = requestorId; - reqInstanceId = instanceId; - - break; - } - case RICsubscriptionRequest_IEs__value_PR_RANfunctionID: - break; - case RICsubscriptionRequest_IEs__value_PR_RICsubscriptionDetails: - { - RICsubscriptionDetails_t subDetails = next_ie->value.choice.RICsubscriptionDetails; - RICeventTriggerDefinition_t triggerDef = subDetails.ricEventTriggerDefinition; - RICactions_ToBeSetup_List_t actionList = subDetails.ricAction_ToBeSetup_List; - - //We are ignoring the trigger definition - - //We identify the first action whose type is REPORT - //That is the only one accepted; all others are rejected - - int actionCount = actionList.list.count; - fprintf(stderr, "action count%d\n", actionCount); - - auto **item_array = actionList.list.array; - - bool foundAction = false; - - for (int i=0; i < actionCount; i++) { - - auto *next_item = item_array[i]; - RICactionID_t actionId = ((RICaction_ToBeSetup_ItemIEs*)next_item)->value.choice.RICaction_ToBeSetup_Item.ricActionID; - RICactionType_t actionType = ((RICaction_ToBeSetup_ItemIEs*)next_item)->value.choice.RICaction_ToBeSetup_Item.ricActionType; - - if (!foundAction && actionType == RICactionType_report) { - reqActionId = actionId; - actionIdsAccept.push_back(reqActionId); - printf("adding accept\n"); - foundAction = true; - } else { - reqActionId = actionId; - printf("adding reject\n"); - actionIdsReject.push_back(reqActionId); - } - } - - break; - } - } - - } - - fprintf(stderr, "After Processing Subscription Request\n"); - - fprintf(stderr, "requestorId %d\n", reqRequestorId); - fprintf(stderr, "instanceId %d\n", reqInstanceId); - - - for (int i=0; i < actionIdsAccept.size(); i++) { - fprintf(stderr, "Action ID %d %ld\n", i, actionIdsAccept.at(i)); - - } - - E2AP_PDU *e2ap_pdu = (E2AP_PDU*)calloc(1,sizeof(E2AP_PDU)); - - long *accept_array = &actionIdsAccept[0]; - long *reject_array = &actionIdsReject[0]; - int accept_size = actionIdsAccept.size(); - int reject_size = actionIdsReject.size(); - - generate_e2apv1_subscription_response_success(e2ap_pdu, accept_array, reject_array, accept_size, reject_size, reqRequestorId, reqInstanceId); - - e2sim.encode_and_send_sctp_data(e2ap_pdu); - - //Start thread for sending REPORT messages - - // std::thread loop_thread; - - long funcId = 1; - - run_report_loop(reqRequestorId, reqInstanceId, funcId, reqActionId); - - // loop_thread = std::thread(&run_report_loop); - -} diff --git a/e2sim/previous/e2apv1sim/e2sim/kpm_callbacks.hpp b/e2sim/previous/e2apv1sim/e2sim/kpm_callbacks.hpp deleted file mode 100644 index b0207d2..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/kpm_callbacks.hpp +++ /dev/null @@ -1,6 +0,0 @@ - -#include "e2sim.hpp" - -void callback_kpm_subscription_request(E2AP_PDU_t *pdu); - -void run_report_loop(long requestorId, long instanceId, long ranFunctionId, long actionId); diff --git a/e2sim/previous/e2apv1sim/e2sim/simulation.txt b/e2sim/previous/e2apv1sim/e2sim/simulation.txt deleted file mode 100644 index c1eedb7..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/simulation.txt +++ /dev/null @@ -1,3 +0,0 @@ -This is a silulation file -This is a simulation -This is a a a a a simulation file! diff --git a/e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/asn.hpp b/e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/asn.hpp deleted file mode 100755 index 3affd81..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/asn.hpp +++ /dev/null @@ -1,27 +0,0 @@ -#pragma once -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -*******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries - -// Local Includes: Application specific classes, functions, and libraries -#include "asn/version.hpp" -#include "asn/elements.hpp" -#include "asn/constraints.hpp" -#include "asn/variant.hpp" \ No newline at end of file diff --git a/e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/ber/codec.hpp b/e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/ber/codec.hpp deleted file mode 100755 index 3a42ad5..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/ber/codec.hpp +++ /dev/null @@ -1,931 +0,0 @@ -#pragma once -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries - -// Local Includes: Application specific classes, functions, and libraries -#include "asn/elements.hpp" -#include "asn/ber/common.hpp" -#include "asn/ber/context.hpp" -#include "asn/ber/tag.hpp" -#include "asn/ber/length.hpp" -#include "asn/ber/visitor.hpp" -#include "asn/ber/opentype.hpp" - -namespace asn { -namespace ber { - -/******************************************************************************** -pack (X.690) -*********************************************************************************/ -template -bool pack(IE const& ie, EncoderCtx& ctx) -{ - ctx.refErrorCtx().reset(); - Element::run(ie, ctx); - - if (ctx) - Tools::bit_accessor::padByte(ctx.refBuffer()); - - return static_cast(ctx); -} -/******************************************************************************** -unpack (X.690) -*********************************************************************************/ -template -bool unpack(IE& ie, DecoderCtx& ctx) -{ - Element::run(ie, ctx); - - if (ctx) - Tools::bit_accessor::padByte(ctx.refBuffer()); - - if(ctx && ctx.refBuffer().getBytesLeft()) - { - ctx.ie_name(IE::name()); - ctx.refErrorCtx().lengthErrorBytes(ctx.refBuffer().getBytesLeft(), 0); - } - - return static_cast(ctx); -} - -/*************************************************************************************** -* ElementType -***************************************************************************************/ -template -struct ElementType; - -/*************************************************************************************** -* ExplicitCodec: Codec for elements with EXPLICIT tag -***************************************************************************************/ -template -struct ExplicitCodec -{ - using tag_t = Tag; - static bool inline is_matched(tag_value_t _tag) {return _tag == tag_t::value();} - - static void inline run(IE const& ie, EncoderCtx& ctx) - { - auto & buffer = ctx.refBuffer(); - - tag_t::encode(ctx); - u8* len_ptr = buffer.advance(1); //reserve for the length - - Element::run(static_cast(ie), ctx); - - size_t len = buffer.begin() - len_ptr - 1; - if(len > 127) - { - len_ptr[0] = 0x80; //undefinite length form per X.690 8.1.3.6 - uint8_t buff[2] = {0}; // end-of-contents octets (X.690 8.1.5) - buffer.putBytes(buff, sizeof(buff)); - } - else - { - len_ptr[0] = static_cast(len); //one byte form per X.690 8.1.3.4 - } - } - - static void inline run(IE& ie, DecoderCtx& ctx, tag_value_t tag) - { - if(tag_t::value() != tag) - ctx.refErrorCtx().tagError(static_cast(tag)); - else - { - auto & buffer = ctx.refBuffer(); - size_t length = Length::decode(ctx); - - ASN_DECODER_TRACE("EX buffer: %s", static_cast(tag), length, ctx.refBuffer().toString()); - - if(length == indefinite_length) - { - Element::run(static_cast(ie), ctx); - - if(ctx) - { - uint8_t const* data_in = ctx.refBuffer().getBytes(2); - if(data_in && (data_in[0] || data_in[1])) - { - ctx.refErrorCtx().errorWrongEndOfContent(); - } - } - } - else - { - if (buffer.getBytesLeft() < length) - { - ctx.refErrorCtx().lengthErrorBytes(buffer.getBytesLeft(), length); - } - else - { - DecoderCtx::buf_type::pointer end = buffer.end(); - buffer.set_end(buffer.begin() + length); - - Element::run(static_cast(ie), ctx); - - buffer.set_end(end); - } - } - - } - } -}; - -/*************************************************************************************** -* BOOLEAN: Encoding the boolean type (X.690 8.2) -***************************************************************************************/ -template -struct ElementType > -{ - using tag_t = Tag; - - static bool inline is_matched(tag_value_t tag) {return tag == tag_t::value();} - - static void inline run(IE const& ie, EncoderCtx& ctx) - { - tag_t::encode(ctx); - Length::encode(1, ctx); - if(ie.get()) - Tools::put_bytes(0xFF, 1, ctx); - else - Tools::put_bytes(0, 1, ctx); - } - - static void inline run(IE& ie, DecoderCtx& ctx, tag_value_t tag) - { - if(tag_t::value() != tag) - ctx.refErrorCtx().tagError(static_cast(tag)); - else - { - size_t length = Length::decode(ctx); - if(length != 1) - { - ctx.refErrorCtx().sizeRangeError(length, 1, 1); - } - else - { - ASN_DECODER_TRACE("IE buffer: %s", static_cast(IE::ie_type), IE::name(), static_cast(tag), length, ctx.refBuffer().toString()); - uint8_t value; - Tools::get_bytes(value, 1, ctx); - ie.set(value > 0); - } - } - } -}; -/*************************************************************************************** -* INTEGER: Encoding the integer type (X.690 8.3) -***************************************************************************************/ -template -struct ElementType > -{ - using tag_t = Tag; - - static bool inline is_matched(tag_value_t tag) {return tag == tag_t::value();} - - static void inline run(IE const& ie, EncoderCtx& ctx) - { - tag_t::encode(ctx); - size_t length = Length::get(ie.get()); - Length::encode(length, ctx); - Tools::put_bytes(ie.get(), length, ctx); - } - static void inline run(IE& ie, DecoderCtx& ctx, tag_value_t tag) - { - if(tag_t::value() != tag) - { - ctx.refErrorCtx().tagError(static_cast(tag)); - } - else - { - size_t length = Length::decode(ctx); - if(!length || length == indefinite_length) - ctx.refErrorCtx().sizeRangeError(length); - else - { - ASN_DECODER_TRACE("IE buffer: %s", static_cast(IE::ie_type), IE::name(), static_cast(tag), length, ctx.refBuffer().toString()); - typename IE::value_type value; - Tools::get_bytes(value, length, ctx); - ie.set(value); - } - } - } -}; -/*************************************************************************************** -* ENUMERATED: Encoding the enumerated type (X.690 8.4) -***************************************************************************************/ -template -struct ElementType > -{ - using tag_t = Tag; - - static bool inline is_matched(tag_value_t tag) {return tag == tag_t::value();} - - static void inline run(IE const& ie, EncoderCtx& ctx) - { - tag_t::encode(ctx); - size_t length = Length::get(ie.get()); - Length::encode(length, ctx); - Tools::put_bytes(ie.get(), length, ctx); - } - static void inline run(IE& ie, DecoderCtx& ctx, tag_value_t tag) - { - if(tag_t::value() != tag) - ctx.refErrorCtx().tagError(static_cast(tag)); - else - { - size_t length = Length::decode(ctx); - if(!length || length == indefinite_length) - ctx.refErrorCtx().sizeRangeError(length); - else - { - ASN_DECODER_TRACE("IE buffer: %s", static_cast(IE::ie_type), IE::name(), static_cast(tag), length, ctx.refBuffer().toString()); - typename IE::value_type value; - Tools::get_bytes(value, length, ctx); - ie.set(value); - } - } - } -}; -/*************************************************************************************** -* REAL: Encoding the real type (X.690 8.5) -***************************************************************************************/ -//missing... -/*************************************************************************************** -* BIT STRING: Encoding the bitstring type (X.690 8.6) -***************************************************************************************/ -template -struct ElementType > -{ - using tag_t = Tag; - using ctag_t = Tag; - - static bool inline is_matched(tag_value_t tag) {return tag == tag_t::value() || tag == ctag_t::value();} - - static void inline run(IE const& ie, EncoderCtx& ctx) - { - tag_t::encode(ctx); - - uint8_t tail = ie.get_bitqty() % 8; - - size_t length = ie.get_buffer().size(); - Length::encode(length + 1, ctx); - - auto & buffer = ctx.refBuffer(); - buffer.putByte((8 - tail) & 0x7F); - - if (tail) - { - buffer.putBytes(ie.get_buffer().data(), length - 1); - u8 last_byte = *(ie.get_buffer().data() + length - 1); - - last_byte <<= 8 - tail; - buffer.putBytes(&last_byte, 1); - } - else - { - buffer.putBytes(ie.get_buffer().data(), length); - } - } - static void inline run(IE& ie, DecoderCtx& ctx, tag_value_t tag) - { - ie.clear(); - if(tag_t::value() == tag) - { - size_t length = Length::decode(ctx); - if(!length || length == indefinite_length) - { - ctx.refErrorCtx().sizeRangeError(length); - } - else - { - ASN_DECODER_TRACE("IE buffer: %s", static_cast(IE::ie_type), IE::name(), static_cast(tag), length, ctx.refBuffer().toString()); - uint8_t const* data_in = ctx.refBuffer().getBytes(length); - if(data_in) - { - size_t len_bytes = length - 1; - size_t bitqty = len_bytes << 3; - - if((data_in[0] & 0x80) || (bitqty < data_in[0])) - { - ctx.refErrorCtx().valueRangeError(data_in[0]); - } - else - { - bitqty = bitqty - data_in[0]; - uint8_t* data_out = ctx.refAllocator().alloc_bytes(len_bytes); - if (data_out) - { - memcpy(data_out, &data_in[1], len_bytes); - const u8 shift = bitqty % 8; - if (shift) - { - data_out[len_bytes - 1] >>= 8 - shift; - } - ie.set_buffer(bitqty, data_out); - } - else - { - ctx.refErrorCtx().allocatorNoMem(0, len_bytes); - } - } - } - } - } - else if(ctag_t::value() == tag) - { - //todo: implement the segmented data - ctx.refErrorCtx().errorUnsupported(); - } - else - { - ctx.refErrorCtx().tagError(static_cast(tag)); - } - } -}; -/*************************************************************************************** -* OCTET STRING: Encoding the octetstring type (X.690 8.7) -* Restricted Character string types (X.690 8.23) -***************************************************************************************/ -template -struct ElementType > -{ - using tag_t = Tag; - using ctag_t = Tag; - - static bool inline is_matched(tag_value_t tag) {return tag == tag_t::value() || tag == ctag_t::value();} - - static void inline run(IE const& ie, EncoderCtx& ctx) - { - tag_t::encode(ctx); - size_t length = ie.get().size(); - Length::encode(length, ctx); - ctx.refBuffer().putBytes(ie.get().data(), length); - } - static void inline run(IE& ie, DecoderCtx& ctx, tag_value_t tag) - { - ie.clear(); - if(tag_t::value() == tag) - { - size_t length = Length::decode(ctx); - if(length == indefinite_length) - { - ctx.refErrorCtx().sizeRangeError(length); - } - else - { - ASN_DECODER_TRACE("IE buffer: %s", static_cast(IE::ie_type), IE::name(), static_cast(tag), length, ctx.refBuffer().toString()); - uint8_t const* data_in = ctx.refBuffer().getBytes(length); - if(data_in) - { - ie.set(length, data_in); - } - } - } - else if(ctag_t::value() == tag) - { - //todo: implement the segmented data - ctx.refErrorCtx().errorUnsupported(); - } - else - { - ctx.refErrorCtx().tagError(static_cast(tag)); - } - } -}; -/*************************************************************************************** -* NULL: Encoding the null type (X.690 8.8) -***************************************************************************************/ -template -struct ElementType > -{ - using tag_t = Tag; - - static bool inline is_matched(tag_value_t tag) {return tag == tag_t::value();} - - static void inline run(IE const& ie, EncoderCtx& ctx) - { - tag_t::encode(ctx); - Length::encode(0, ctx); - } - - static void inline run(IE& ie, DecoderCtx& ctx, tag_value_t tag) - { - if(tag_t::value() != tag) - ctx.refErrorCtx().tagError(static_cast(tag)); - else - { - size_t length = Length::decode(ctx); - if(length) - ctx.refErrorCtx().sizeRangeError(length); - ASN_DECODER_TRACE("IE buffer: %s", static_cast(IE::ie_type), IE::name(), static_cast(tag), length, ctx.refBuffer().toString()); - } - } -}; -/*************************************************************************************** -* SEQUENCE: Encoding the sequence type (X.690 8.9) -* SET: Encoding the set type (X.690 8.11) -***************************************************************************************/ -template -struct ElementType > -{ - using tag_t = Tag; - - static bool inline is_matched(tag_value_t tag) {return tag == tag_t::value();} - - static void inline run(IE const& ie, EncoderCtx& ctx) - { - auto & buffer = ctx.refBuffer(); - - tag_t::encode(ctx); - u8* len_ptr = buffer.advance(1); //reserve for the length - - VisitorEncoderSeq ve(ctx, ie); - ie.encode(ve); - - size_t len = buffer.begin() - len_ptr - 1; - if(len > 127) - { - len_ptr[0] = 0x80; //undefinite length form per X.690 8.1.3.6 - uint8_t buff[2] = {0}; // end-of-contents octets (X.690 8.1.5) - buffer.putBytes(buff, sizeof(buff)); - } - else - len_ptr[0] = static_cast(len); //one byte form per X.690 8.1.3.4 - } - - static void inline run(IE& ie, DecoderCtx& ctx, tag_value_t tag) //todo: support arbitrary order of IEs in SET - { - if(tag_t::value() != tag) - ctx.refErrorCtx().tagError(static_cast(tag)); - else - { - VisitorDecoderSeq vd(ctx, ie); - auto & buffer = ctx.refBuffer(); - - size_t length = Length::decode(ctx); - - ASN_DECODER_TRACE("IE buffer: %s", static_cast(IE::ie_type), IE::name(), static_cast(tag), length, ctx.refBuffer().toString()); - - if(length == indefinite_length) - { - ie.decode(vd); - if(ctx) - { - if(invalid_tag != vd.get_unhandled_tag()) - { - tag_value_t _tag = vd.get_unhandled_tag(); - if(IE::constraint_t::extended) //skip the unknown extension now - { - tag_value_t const* tag_ptr = &_tag; - size_t _length; - do - { - _tag = OpenType::decode(ctx, _length, tag_ptr); - tag_ptr = nullptr; - - } while(ctx && !(_tag == 0 && _length == 0)); - } - else // it should be the end-of-contents octets (8.1.5) - { - uint8_t const* data_in = ctx.refBuffer().getBytes(1); - if(data_in && (_tag || data_in[0])) - { - ctx.refErrorCtx().errorWrongEndOfContent(); - } - } - } - else - { - uint8_t const* data_in = ctx.refBuffer().getBytes(2); - if(data_in && (data_in[0] || data_in[1])) - { - ctx.refErrorCtx().errorWrongEndOfContent(); - } - } - } - } - else - { - if (buffer.getBytesLeft() < length) - { - ctx.refErrorCtx().lengthErrorBytes(buffer.getBytesLeft(), length); - } - else - { - DecoderCtx::buf_type::pointer end = buffer.end(); - buffer.set_end(buffer.begin() + length); - ie.decode(vd); - tag_value_t _tag = vd.get_unhandled_tag(); - if(invalid_tag != _tag) - { - if(IE::constraint_t::extended) //skip the unknown extension now - { - tag_value_t const* tag_ptr = &_tag; - size_t _length; - do - { - _tag = OpenType::decode(ctx, _length, tag_ptr); - tag_ptr = nullptr; - - } while(ctx && buffer.getBytesLeft() > 0); - } - else - ctx.refErrorCtx().tagError(static_cast(tag)); // unexpected tag - } - buffer.set_end(end); - } - } - - } - } -}; -/*************************************************************************************** -* SEQUENCE OF: Encoding the sequence-of type (X.690 8.10) -* SET OF: Encoding the set-of type (X.690 8.12) -***************************************************************************************/ -template -struct ElementType > -{ - using tag_t = Tag; - - static bool inline is_matched(tag_value_t tag) {return tag == tag_t::value();} - - static void inline run(IE const& ie, EncoderCtx& ctx) - { - auto & buffer = ctx.refBuffer(); - - tag_t::encode(ctx); - u8* len_ptr = buffer.advance(1); //reserve for the length - - for (auto& elem : ie) - { - Element::run(elem, ctx); - } - - size_t len = buffer.begin() - len_ptr - 1; - if(len > 127) - { - len_ptr[0] = 0x80; //undefinite length form per X.690 8.1.3.6 - uint8_t buff[2] = {0}; // end-of-contents octets (X.690 8.1.5) - buffer.putBytes(buff, sizeof(buff)); - } - else - len_ptr[0] = static_cast(len); //one byte form per X.690 8.1.3.4 - } - static void inline run(IE& ie, DecoderCtx& ctx, tag_value_t tag) - { - ie.clear(); - - if(tag_t::value() != tag) - ctx.refErrorCtx().tagError(static_cast(tag)); - else - { - auto & buffer = ctx.refBuffer(); - - size_t length = Length::decode(ctx); - - ASN_DECODER_TRACE("IE buffer: %s", static_cast(IE::ie_type), IE::name(), static_cast(tag), length, ctx.refBuffer().toString()); - - if(length == indefinite_length) - { - tag_value_t elm_tag = get_tag(ctx); - - while(ctx && Element::is_matched(elm_tag)) - { - add_element(ie, ctx, &elm_tag); - elm_tag = get_tag(ctx); - } - - if(ctx) - { - uint8_t const* data_in = ctx.refBuffer().getBytes(1); - if(data_in && (elm_tag || data_in[0])) - { - ctx.refErrorCtx().errorWrongEndOfContent(); - } - } - } - else - { - if (buffer.getBytesLeft() < length) - { - ctx.refErrorCtx().lengthErrorBytes(buffer.getBytesLeft(), length); - } - else - { - DecoderCtx::buf_type::pointer end = buffer.end(); - buffer.set_end(buffer.begin() + length); - - while(ctx && buffer.getBytesLeft() > 0) - add_element(ie, ctx); - - buffer.set_end(end); - } - } - } - } - -private: - static void inline add_element(IE& ie, DecoderCtx& ctx, tag_value_t const* elm_tag = nullptr) - { - uint8_t* data = ctx.refAllocator().alloc_bytes(sizeof(typename IE::value_type)); - if (data) - { - typename IE::value_type * v = new (data) typename IE::value_type; - v->clear(); - ie.push_back(*v); - Element::run(*v, ctx, elm_tag); - } - else - { - ctx.refErrorCtx().allocatorNoMem(0, sizeof(typename IE::value_type)); - } - } -}; - -/*************************************************************************************** -* CHOICE: Encoding the choice type -***************************************************************************************/ -struct ChoiceVisitorEncoder -{ - ChoiceVisitorEncoder(EncoderCtx& ctx) : m_ctx(ctx) {} - - template - bool operator()(IE const& ie) - { - Element::run(ie, m_ctx); - return static_cast(m_ctx); - } - - EncoderCtx& m_ctx; -}; - -struct ChoiceVisitorDecoder -{ - ChoiceVisitorDecoder(DecoderCtx& ctx, tag_value_t tag) : m_ctx(ctx), m_tag(tag) {} - - template bool operator()(IE& ie) - { - Element::run(ie, m_ctx, &m_tag); - return static_cast(m_ctx); - } - - DecoderCtx& m_ctx; - tag_value_t m_tag; -}; - -template -struct ElementType > -{ - struct Selector - { - Selector(tag_value_t tag) : m_tag(tag) {} - - template void operator()(size_t idx) - { - if(!m_valid && Element::is_matched(m_tag)) - { - m_index = idx; - m_valid = true; - } - } - - size_t get_idx() const {return m_index;} - bool is_valid() const {return m_valid;} - - private: - tag_value_t m_tag; - size_t m_index {0}; - bool m_valid {false}; - }; - - static bool inline is_matched(tag_value_t tag) - { - Selector selector {tag}; - IE::enumerate(selector); - return selector.is_valid(); - } - - static void inline run(IE const& ie, EncoderCtx& ctx) - { - ChoiceVisitorEncoder ve(ctx); - - if(ctx && !ie.encode(ve)) - ctx.refErrorCtx().tagError(ie.get_index()); - } - static void inline run(IE& ie, DecoderCtx& ctx, tag_value_t tag) - { - ie.clear(); - - Selector selector {tag}; - IE::enumerate(selector); - - if(!selector.is_valid()) - ctx.refErrorCtx().tagError(static_cast(tag)); - else - { - ChoiceVisitorDecoder vd {ctx, tag}; - if(ctx && !ie.decode(selector.get_idx(), vd)) - ctx.refErrorCtx().tagError(ie.get_index()); - } - } -}; - -template -struct ElementType > -{ - static bool inline is_matched(tag_value_t _tag) {return ExplicitCodec::is_matched(_tag);} - - static void inline run(IE const& ie, EncoderCtx& ctx) - { - ExplicitCodec::run(ie, ctx); - } - - static void inline run(IE& ie, DecoderCtx& ctx, tag_value_t tag) - { - ExplicitCodec::run(ie, ctx, tag); - } -}; - -/*************************************************************************************** -* IE_OBJECT_IDENTIFIER: Encoding the object identifier type -***************************************************************************************/ -template -struct ElementType > -{ - using tag_t = Tag; - - static bool inline is_matched(tag_value_t _tag) {return _tag == tag_t::value();} - - static void inline run(IE const& ie, EncoderCtx& ctx) - { - tag_t::encode(ctx); - size_t length = ie.get().size(); - Length::encode(length, ctx); - ctx.refBuffer().putBytes(ie.get().data(), length); - } - static void inline run(IE& ie, DecoderCtx& ctx, tag_value_t tag) - { - ie.clear(); - if(tag_t::value() == tag) - { - size_t length = Length::decode(ctx); - if(!length || length == indefinite_length) - { - ctx.refErrorCtx().sizeRangeError(length); - } - else - { - ASN_DECODER_TRACE("IE buffer: %s", static_cast(IE::ie_type), IE::name(), static_cast(tag), length, ctx.refBuffer().toString()); - uint8_t const* data_in = ctx.refBuffer().getBytes(length); - if(data_in) - { - ie.set(length, data_in); - } - } - } - else - { - ctx.refErrorCtx().tagError(static_cast(tag)); - } - } -}; - -/*************************************************************************************** -* T_OBJFIELD_FTV -***************************************************************************************/ -template -struct ElementType > -{ - using tag_t = Tag; - - static bool inline is_matched(tag_value_t _tag) {return _tag == tag_t::value();} -}; - -/*************************************************************************************** -* T_OBJFIELD_TF -***************************************************************************************/ -template -struct ElementType > -{ - struct Selector - { - Selector(tag_value_t tag) : m_tag(tag) {} - - template void operator()(size_t idx) - { - if(Element::is_matched(m_tag)) - { - m_index = idx; - m_valid = true; - } - } - - size_t get_idx() const {return m_index;} - bool is_valid() const {return m_valid;} - - private: - tag_value_t m_tag; - size_t m_index {0}; - bool m_valid {false}; - }; - - static bool inline is_matched(tag_value_t tag) - { - Selector selector(tag); - IE::enumerate(selector); - - return selector.is_valid(); - } -}; - -/*************************************************************************************** -* Identifier -***************************************************************************************/ -template -struct Identifier -{ - static bool inline is_matched(tag_value_t _tag) - { - return ElementType::is_matched(_tag); - } - - static void inline run(IE const& ie, EncoderCtx& ctx) - { - ElementType::run(ie, ctx); - } - - static void inline run(IE& ie, DecoderCtx& ctx, tag_value_t tag) - { - ElementType::run(ie, ctx, tag); - } -}; - -template -struct Identifier > -{ - static bool inline is_matched(tag_value_t _tag) {return ExplicitCodec::is_matched(_tag);} - - static void inline run(IE const& ie, EncoderCtx& ctx) - { - ExplicitCodec::run(ie, ctx); - } - - static void inline run(IE& ie, DecoderCtx& ctx, tag_value_t tag) - { - ExplicitCodec::run(ie, ctx, tag); - } -}; - -/*************************************************************************************** -* COMMON: Element -***************************************************************************************/ -template -struct Element -{ - static bool inline is_matched(tag_value_t _tag) - { - return Identifier::is_matched(_tag); - } - - static void inline run(IE const& ie, EncoderCtx& ctx) - { - if (ctx) - { - ASN_ENCODER_TRACE("IE buffer: %s", static_cast(IE::ie_type), IE::name(), ctx.refBuffer().toString()); - ctx.ie_name(IE::name()); - Identifier::run(ie, ctx); - } - } - static void inline run(IE& ie, DecoderCtx& ctx, tag_value_t const* tag_ptr = nullptr) - { - if (ctx) - { - ctx.ie_name(IE::name()); - - tag_value_t tag = tag_ptr ? *tag_ptr : get_tag(ctx); - if(ctx) - Identifier::run(ie, ctx, tag); - } - } -}; - -} //namespace ber -} //namespace asn diff --git a/e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/ber/common.hpp b/e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/ber/common.hpp deleted file mode 100755 index edd830b..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/ber/common.hpp +++ /dev/null @@ -1,51 +0,0 @@ -#pragma once -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries -#include - -// Local Includes: Application specific classes, functions, and libraries -#include "asn/asn.hpp" -#include "asn/buffer.hpp" -#include "asn/ber/context.hpp" -#include "asn/ber/tools.hpp" - -//#define ASN_DECODER_TRACE_ENABLE -//#define ASN_ENCODER_TRACE_ENABLE - -#ifdef ASN_DECODER_TRACE_ENABLE -#define ASN_DECODER_TRACE(FMT, ...) printf(FMT "\n", __VA_ARGS__) -#else -#define ASN_DECODER_TRACE(...) -#endif - -#ifdef ASN_ENCODER_TRACE_ENABLE -#define ASN_ENCODER_TRACE(FMT, ...) printf(FMT "\n", __VA_ARGS__) -#else -#define ASN_ENCODER_TRACE(...) -#endif - -namespace asn { -namespace ber { - -template struct Element; - -} //namespace ber -} //namespace asn diff --git a/e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/ber/context.hpp b/e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/ber/context.hpp deleted file mode 100755 index 4159f00..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/ber/context.hpp +++ /dev/null @@ -1,118 +0,0 @@ -#pragma once -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries -#include - -// Local Includes: Application specific classes, functions, and libraries -#include "asn/utility.hpp" -#include "asn/buffer.hpp" -#include "asn/error_context.hpp" - -namespace asn { -namespace ber { - -/******************************************************************************** -EncoderCtx -*********************************************************************************/ -class EncoderCtx : boost::noncopyable -{ -public: - typedef buffer buf_type; - - EncoderCtx(u8* data, size_t size) - : m_buffer{ m_errCtx } - { - Reset(data, size); - } - - template - explicit EncoderCtx(u8(&buff)[SIZE]) - : EncoderCtx(buff, SIZE) - { - } - - explicit EncoderCtx() - : EncoderCtx(nullptr, 0) - { - } - - buf_type& refBuffer() { return m_buffer; } - error_context& refErrorCtx() { return m_errCtx; } - explicit operator bool() const { return static_cast(m_errCtx); } - - void Reset(void* data = nullptr, size_t size = 0) - { - m_buffer.reset(static_cast(data), size); - m_errCtx.reset(); - } - - //Name of the being processed IE - void ie_name(const char* name) { m_errCtx.ie_name(name); } - char const* ie_name() const { return m_errCtx.ie_name(); } - -private: - template - friend struct Encode; - - error_context m_errCtx; - buf_type m_buffer; -}; - - -/******************************************************************************** -DecoderCtx -*********************************************************************************/ -class DecoderCtx : boost::noncopyable -{ -public: - typedef buffer buf_type; - typedef allocator alloc_type; - - DecoderCtx(const void* data = nullptr, size_t size = 0, void* alloc_buffer = nullptr, size_t alloc_buffer_size = 0) - : m_buffer{ m_errCtx } - { - reset(data, size, alloc_buffer, alloc_buffer_size); - } - - buf_type& refBuffer() { return m_buffer; } - alloc_type& refAllocator() { return m_allocator; } - error_context& refErrorCtx() { return m_errCtx; } - explicit operator bool() const { return static_cast(m_errCtx); } - - void reset(const void* data = nullptr, size_t size = 0, void* alloc_buffer = nullptr, size_t alloc_buffer_size = 0) - { - m_allocator.reset(alloc_buffer, alloc_buffer_size); - m_buffer.reset(static_cast(data), size); - m_errCtx.reset(); - } - - //Name of the being processed IE - void ie_name(const char* name) { m_errCtx.ie_name(name); } - char const* ie_name() const { return m_errCtx.ie_name(); } - -private: - error_context m_errCtx; - buf_type m_buffer; - alloc_type m_allocator; -}; - -} //namespace ber -} //namespace asn diff --git a/e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/ber/length.hpp b/e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/ber/length.hpp deleted file mode 100755 index 51b387c..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/ber/length.hpp +++ /dev/null @@ -1,103 +0,0 @@ -#pragma once -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries - -// Local Includes: Application specific classes, functions, and libraries - -namespace asn { -namespace ber { - -constexpr size_t indefinite_length = std::numeric_limits::max(); - -/*************************************************************************************** -* Length -***************************************************************************************/ -struct Length -{ - static size_t inline get(int64_t value) - { - size_t length = 1; - - if(value != 0) - { - size_t extra_sign_bits = __builtin_clrsbll(value); - length = sizeof(value) - (extra_sign_bits >> 3) ; - } - - return length; - } - - static void inline encode(size_t length, EncoderCtx& ctx) - { - auto & buffer = ctx.refBuffer(); - - if(length <= 0x7F) - { - buffer.putByte(static_cast(length)); - } - else - { - size_t lenlen = get(length); - if(lenlen > 0x7F) - { - ctx.refErrorCtx().sizeRangeError(length, 0, 0x7F); - } - else - { - uint8_t bt = static_cast(lenlen); - bt |= 0x80; - buffer.putByte(bt); - Tools::put_bytes(length, lenlen, ctx); - } - } - - } - - static size_t inline decode(DecoderCtx& ctx) - { - auto & buffer = ctx.refBuffer(); - size_t length = 0; - - uint8_t const* data = buffer.getBytes(1); - - if(data) - { - if(!(data[0] & 0x80)) - { - length = data[0]; - } - else - { - size_t lenlen = data[0] & 0x7F; - - if(lenlen) - Tools::get_bytes(length, lenlen, ctx); - else - length = indefinite_length; - } - } - - return length; - } -}; - -} //namespace ber -} //namespace asn diff --git a/e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/ber/opentype.hpp b/e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/ber/opentype.hpp deleted file mode 100755 index 0ff9366..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/ber/opentype.hpp +++ /dev/null @@ -1,73 +0,0 @@ -#pragma once -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries - -// Local Includes: Application specific classes, functions, and libraries - -namespace asn { -namespace ber { - -/*************************************************************************************** -* OpenType -***************************************************************************************/ -struct OpenType -{ - static tag_value_t decode(DecoderCtx& ctx, size_t& length, tag_value_t const* tag_ptr = nullptr) - { - auto & buffer = ctx.refBuffer(); - tag_value_t tag = tag_ptr ? *tag_ptr : get_tag(ctx); - length = Length::decode(ctx); - - if(!length) - { - //just return - } - else if(length == indefinite_length) - { - tag_value_t _tag; - size_t _length; - do - { - _tag = OpenType::decode(ctx, _length); - - } while(ctx && !(_tag == 0 && _length == 0)); - } - else - { - if (buffer.getBytesLeft() < length) - { - ctx.refErrorCtx().lengthErrorBytes(buffer.getBytesLeft(), length); - } - else - { - size_t _length; - DecoderCtx::buf_type::pointer end = buffer.end(); - buffer.set_end(buffer.begin() + length); - decode(ctx, _length); - buffer.set_end(end); - } - } - return tag; - } -}; - -} //namespace ber -} //namespace asn \ No newline at end of file diff --git a/e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/ber/tag.hpp b/e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/ber/tag.hpp deleted file mode 100755 index dba9733..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/ber/tag.hpp +++ /dev/null @@ -1,163 +0,0 @@ -#pragma once -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries - -// Local Includes: Application specific classes, functions, and libraries - -#define IE_CLASS_SHIFT 6 -#define IE_PC_SHIFT 5 -#define IE_BIG_TAG_FST_OCTET 0b011111 - -namespace asn { -namespace ber { - -constexpr tag_value_t invalid_tag = std::numeric_limits::max(); - -/*************************************************************************************** -* Tag -***************************************************************************************/ -template -struct Tag; - -template -struct Tag > -{ - static constexpr tag_value_t value() - { - tag_value_t v = static_cast(IE::asn_identifier_t::class_type); - v <<= IE_CLASS_SHIFT; - v = constructed ? (v | (1u << IE_PC_SHIFT)) : v; - v |= static_cast(IE::asn_identifier_t::tag_value); - return v; - } - - static void inline encode(EncoderCtx& ctx) - { - ctx.refBuffer().putByte(static_cast(value())); - } -}; - - -template -struct Tag= 31) > > -{ - static constexpr tag_value_t value() - { - static_assert(IE::asn_identifier_t::tag_value > 0, "null tag value"); - - tag_value_t v = static_cast(IE::asn_identifier_t::class_type); - v <<= IE_CLASS_SHIFT; - v = constructed ? (v | (1u << IE_PC_SHIFT)) : v; - v |= IE_BIG_TAG_FST_OCTET; - - size_t leadbits = __builtin_clzll(IE::asn_identifier_t::tag_value); - tag_value_t tv = IE::asn_identifier_t::tag_value << leadbits; - size_t length = sizeof(tag_value_t)*CHAR_BIT - leadbits; - - size_t shift = sizeof(tag_value_t)*CHAR_BIT - 7; - - size_t lb = length % 7; - if(lb) - { - v <<= 8; - v |= 0x80; - v |= static_cast(tv >> (shift + 7 - lb)); - tv <<= lb; - length -= lb; - } - - while(length) - { - v <<= 8; - v |= 0x80; - v |= static_cast(tv >> shift); - tv <<= 7; - length -= 7; - } - v &= ((tag_value_t)-1) & ~((tag_value_t) 0x80); - - return v; - } - - static void inline encode(EncoderCtx& ctx) - { - size_t size = 0; - tag_value_t tv = data(size); - ctx.refBuffer().putBytes(reinterpret_cast(&tv), size); - } - -private: - - static constexpr tag_value_t data(size_t& size) - { - tag_value_t rv = 0; - tag_value_t tv = value(); - size = sizeof(tag_value_t) - (__builtin_clzll(tv) >> 3); - - uint8_t* ptr = reinterpret_cast(&rv); - - size_t shift = (size - 1) * 8; - for(size_t i = 0; i < size; ++i) - { - ptr[i] = static_cast(tv >> shift); - shift -= 8; - } - - return rv; - } -}; - -inline -tag_value_t get_tag(DecoderCtx& ctx) -{ - tag_value_t rv = 0; - auto & buffer = ctx.refBuffer(); - uint8_t const* data = buffer.getBytes(1); - - if (data) - { - rv = data[0]; - if((data[0] & 0x1F) == IE_BIG_TAG_FST_OCTET) - { - size_t limit = sizeof(tag_value_t) - 1; - while((data = buffer.getBytes(1))) - { - if(!limit) - { - ctx.refErrorCtx().sizeRangeError(0); - break; - } - - rv <<= 8; - rv |= data[0]; - --limit; - - if(!(data[0] & 0x80)) - break; - } - } - } - return rv; -} - -} //namespace ber -} //namespace asn - diff --git a/e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/ber/tools.hpp b/e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/ber/tools.hpp deleted file mode 100755 index 9f9bc9b..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/ber/tools.hpp +++ /dev/null @@ -1,68 +0,0 @@ -#pragma once -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries - -// Local Includes: Application specific classes, functions, and libraries - -namespace asn { -namespace ber { - -struct Tools -{ - typedef bit_accessor_cross_byte bit_accessor; - - - template - static void put_bytes(T value, size_t length, EncoderCtx& ctx) - { - auto & buffer = ctx.refBuffer(); - - size_t shift = (length - 1) << 3; - for(size_t i = 0; i < length; ++i) - { - buffer.putByte(static_cast(value >> shift)); - shift -= 8; - } - } - - template - static void get_bytes(T& value, size_t length, DecoderCtx& ctx) - { - auto & buffer = ctx.refBuffer(); - - value = 0; - uint8_t const* data = buffer.getBytes(length); - - if(data) - { - value = data[0]; - for(size_t i = 1; i < length; ++i) - { - value <<= 8; - value |= data[i]; - } - } - } - -}; - -} //namespace ber -} //namespace asn diff --git a/e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/ber/visitor.hpp b/e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/ber/visitor.hpp deleted file mode 100755 index 98c1f05..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/ber/visitor.hpp +++ /dev/null @@ -1,177 +0,0 @@ -#pragma once -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries - -// Local Includes: Application specific classes, functions, and libraries - -namespace asn { -namespace ber { - -/*************************************************************************************** -* VisitorEncoder -***************************************************************************************/ -struct VisitorEncoder -{ - VisitorEncoder(EncoderCtx& ctx) : m_ctx(ctx){} - - template bool operator() (ELM const& elm) - { - if(m_ctx) - Element::run(elm, m_ctx); - return static_cast(m_ctx); - } -private: - EncoderCtx& m_ctx; -}; - -/*************************************************************************************** -* VisitorDecoder -***************************************************************************************/ -struct VisitorDecoder -{ - VisitorDecoder(DecoderCtx& ctx, tag_value_t tag) : m_ctx(ctx), m_tag(tag){} - - template bool operator() (ELM& elm) - { - if(m_ctx) - Element::run(elm, m_ctx, &m_tag); - return static_cast(m_ctx); - } - -private: - DecoderCtx& m_ctx; - tag_value_t m_tag; -}; - -/*************************************************************************************** -* VisitorAdapter -***************************************************************************************/ -template -struct VisitorAdapter //default -{ - static void inline run(IE const& ie, EncoderCtx& ctx, Container const& cont) - { - Element::run(ie, ctx); - } - static void inline run(IE& ie, DecoderCtx& ctx, Container const& cont, tag_value_t tag) - { - Element::run(ie, ctx, &tag); - } -}; - -template -struct VisitorAdapter > -{ - static void inline run(IE const& ie, EncoderCtx& ctx, Container const& cont) - { - VisitorEncoder v(ctx); - bool rv = ie.encode(v, cont); - if(!rv && static_cast(ctx)) - { - ctx.refErrorCtx().errorNoObject(Container::name()); - } - } - static void inline run(IE& ie, DecoderCtx& ctx, Container const& cont, tag_value_t tag) - { - VisitorDecoder v(ctx, tag); - bool rv = ie.decode(v, cont); - if(!rv && static_cast(ctx)) - { - ctx.refErrorCtx().errorNoObject(Container::name()); - } - } -}; - -/*************************************************************************************** -* VisitorEncoderSeq -***************************************************************************************/ -template -struct VisitorEncoderSeq -{ - VisitorEncoderSeq(EncoderCtx& ctx, CONT const& cont) : m_ctx(ctx), m_cont(cont){} - - template void operator() (ELM const& elm) - { - if(ELM::optional) - { - if(elm.is_valid()) - VisitorAdapter::run(elm, m_ctx, m_cont); - } - else - VisitorAdapter::run(elm, m_ctx, m_cont); - } - - EncoderCtx& m_ctx; - CONT const& m_cont; -}; - - -/*************************************************************************************** -* VisitorDecoderSeq -***************************************************************************************/ -template -struct VisitorDecoderSeq -{ - VisitorDecoderSeq(DecoderCtx& ctx, CONT const& cont) : m_ctx(ctx), m_cont(cont){} - - template void operator() (ELM& elm) - { - if(m_ctx) - { - tag_value_t tag; - - if(invalid_tag == m_tag && m_ctx.refBuffer().getBytesLeft()) - { - m_tag = get_tag(m_ctx); - } - tag = m_tag; - - if(m_ctx) - { - if (!Element::is_matched(tag)) - { - if(!ELM::optional) - { - m_ctx.refErrorCtx().tagError(static_cast(tag)); - } - } - else - { - m_tag = invalid_tag; - VisitorAdapter::run(elm, m_ctx, m_cont, tag); - elm.setpresent(true); - } - } - } - } - - tag_value_t get_unhandled_tag() const {return m_tag;} - - DecoderCtx& m_ctx; - tag_value_t m_tag {invalid_tag}; - CONT const& m_cont; -}; - -} //namespace ber -} //namespace asn diff --git a/e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/buffer.hpp b/e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/buffer.hpp deleted file mode 100755 index 4022b48..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/buffer.hpp +++ /dev/null @@ -1,689 +0,0 @@ -#pragma once -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -*******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries -#include - -// Local Includes: Application specific classes, functions, and libraries -#include "asn/error_context.hpp" -#include "value_traits.hpp" - -//#define CODEC_BIT_TRACE_ENABLE -#ifdef CODEC_BIT_TRACE_ENABLE - #define CODEC_BIT_TRACE(FMT, args...) printf("%s[%u]:" FMT "\n", std::strrchr(__FILE__, '/') + 1, __LINE__, ##args) -#else - #define CODEC_BIT_TRACE(...) -#endif - -namespace asn { - -template -struct bit_accessor; - -template -struct bit_accessor_cross_byte; - -template -class buffer -{ -public: - typedef PTR pointer; - - explicit buffer(error_context& err) - : m_errCtx(err) - {} - - void reset(pointer data, u32 size) - { - m_start = data; - m_end = m_start + size; - m_current = m_start; - m_shift = 0; - } - - u32 getOffset() const { return begin() - m_start; } - - u32 getBytesLeft() const { return end() - begin(); } - u32 getBytesUsed() const { return getOffset() + (get_shift() ? 1 : 0); } - - u8 get_shift() const { return m_shift; } - void reset_shift() { m_shift = 0; } - void byte_align() { if (get_shift()) { m_shift = 0; ++m_current; } } - - pointer advance(u32 delta) { pointer p = begin(); m_current += delta; return p; } - - pointer begin() const { return m_current; } - - void set_begin(pointer ptr, u8 bit_shift) - { - if (m_start <= ptr && ptr <= end()) - { - m_current = ptr; - m_shift = bit_shift; - } - } - - pointer end() const { return m_end; } - void set_end(pointer v) { m_end = v; } - - bool checkAlignment(char const* name, u8 const mask = 0xFF) - { - if (0 == (get_shift() & mask)) return true; - m_errCtx.alignmentError(name, get_shift()); - return false; - } - - bool checkBytesLeft(char const* name, u32 const num_bytes) - { - if (getBytesLeft() >= num_bytes) return true; - m_errCtx.lengthErrorBytes(name, getBytesLeft(), num_bytes); - return false; - } - - bool checkBitsLeft(char const* name, u32 const num_bits) - { - if (getBitsLeft() >= num_bits) return true; - m_errCtx.lengthErrorBits(name, getBitsLeft(), num_bits); - return false; - } - - bool checkBytesAndAlignment(char const* name, u32 const num_bytes, u8 const mask = 0xFF) - { - if (getBytesLeft() >= num_bytes) - { - if (0 == (get_shift() & mask)) return true; - m_errCtx.alignmentError(name, get_shift()); - } - else - { - m_errCtx.lengthErrorBytes(name, getBytesLeft(), num_bytes); - } - return false; - } - - pointer getBytes(char const* name, u32 num_bytes) - { - if (checkBytesAndAlignment(name, num_bytes)) - { - return advance(num_bytes); - } - return nullptr; - } - - //NOTE! num_bytes should be set to minimal number of bytes expected - pointer getBytes(char const* name, u32 max_requested, u32& num_bytes) - { - if (checkAlignment(name)) - { - u32 const left = getBytesLeft(); - if (left >= num_bytes) - { - num_bytes = (left > max_requested) ? max_requested : left; - return advance(num_bytes); - } - - m_errCtx.lengthErrorBytes(name, getBytesLeft(), num_bytes); - } - return nullptr; - } - - bool putByte(char const* name, u8 byte) - { - if (checkBytesAndAlignment(name, 1)) - { - begin()[0] = byte; - ++m_current; - return true; - } - return false; - } - - bool putBytes(char const* name, void const* in, u32 num_bytes) - { - if (checkBytesAndAlignment(name, num_bytes)) - { - std::memcpy(begin(), in, num_bytes); - m_current += num_bytes; - return true; - } - return false; - } - - bool checkAlignment(u8 const mask = 0xFF) - { - if (0 == (get_shift() & mask)) return true; - m_errCtx.alignmentError(get_shift()); - return false; - } - - bool checkBytesLeft(u32 const num_bytes) - { - if (getBytesLeft() >= num_bytes) return true; - m_errCtx.lengthErrorBytes(getBytesLeft(), num_bytes); - return false; - } - - bool checkBitsLeft(u32 const num_bits) - { - if (getBitsLeft() >= num_bits) return true; - m_errCtx.lengthErrorBits(getBitsLeft(), num_bits); - return false; - } - - bool checkBytesAndAlignment(u32 const num_bytes, u8 const mask = 0xFF) - { - if (getBytesLeft() >= num_bytes) - { - if (0 == (get_shift() & mask)) return true; - m_errCtx.alignmentError(get_shift()); - } - else - { - m_errCtx.lengthErrorBytes(getBytesLeft(), num_bytes); - } - return false; - } - - pointer getBytes(u32 num_bytes) - { - if (checkBytesAndAlignment(num_bytes)) - { - return advance(num_bytes); - } - return nullptr; - } - - //NOTE! num_bytes should be set to minimal number of bytes expected - pointer getBytes(u32 max_requested, u32& num_bytes) - { - if (checkAlignment()) - { - u32 const left = getBytesLeft(); - if (left >= num_bytes) - { - num_bytes = (left > max_requested) ? max_requested : left; - return advance(num_bytes); - } - - m_errCtx.lengthErrorBytes(getBytesLeft(), num_bytes); - } - return nullptr; - } - - bool putByte(u8 byte) - { - if (checkBytesAndAlignment(1)) - { - begin()[0] = byte; - ++m_current; - return true; - } - return false; - } - - bool putBytes(void const* in, u32 num_bytes) - { - if (num_bytes) - { - if(checkBytesAndAlignment(num_bytes)) - { - std::memcpy(begin(), in, num_bytes); - m_current += num_bytes; - } - else - return false; - } - return true; - } - - char const* toString() const - { - static char sz[64]; - u8 const* p = begin(); - snprintf(sz, sizeof(sz), "%02X %02X %02X %02X [%02X]=%p@%u..%p -%u bits: +%u bytes", p[-4], p[-3], p[-2], p[-1], p[0], p - , getOffset(), end(), get_shift(), getBytesLeft()); - return sz; - } - -private: - template - friend class bit_accessor; - - template - friend struct bit_accessor_cross_byte; - - template - void push_u8(U value) { *m_current++ = static_cast(value); } - template - void put_u8(U value) { m_current[0] = static_cast(value); } - -//khxm68: TODO: won't compile without it. WTF?! -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wmaybe-uninitialized" - u8 get_u8() const { return m_current[0]; } -#pragma GCC diagnostic pop - u8 extract_u8(u8 value, u8 mask, u8 shift) const - { return (get_u8() & ~(mask << shift)) | ((value & mask) << shift); } - - u16 get_u16() const { return (static_cast(m_current[0]) << 8) | m_current[1]; } - u16 extract_u16(u16 value, u16 mask, u16 shift) const - { return (get_u16() & ~(mask << shift)) | ((value & mask) << shift); } - - u32 get_u24() const { return (static_cast(m_current[0]) << 16) | (static_cast(m_current[1]) << 8) | m_current[2]; } - u32 extract_u24(u32 value, u32 mask, u32 shift) const - { return (get_u24() & ~(mask << shift)) | ((value & mask) << shift); } - - u32 get_u32() const { return (static_cast(m_current[0]) << 24) | (static_cast(m_current[1]) << 16) | (static_cast(m_current[2]) << 8) | m_current[3]; } - u32 extract_u32(u32 value, u32 mask, u32 shift) const - { return (get_u32() & ~(mask << shift)) | ((value & mask) << shift); } - - u32 getBitsLeft() const { return begin() == end() ? 0 : (getBytesLeft()*8 - get_shift()); } - - void bit_advance(u8 num_bits) - { - m_shift += num_bits; - if (get_shift() > 7) - { - reset_shift(); - m_current++; - } - } - - pointer m_current; - pointer m_end; - pointer m_start; - u8 m_shift; - error_context& m_errCtx; -}; - -template //LSB 1..7 bits -struct bit_accessor -{ - static_assert(IE::length::value > 0 && IE::length::value < 8, "something wrong with traits!"); - - static void put(u8 value, buffer& buf) - { - u8 const mask = static_cast((1u << IE::length::value) - 1); - u8 const shift = buf.get_shift(); - u8 const data = buf.extract_u8(value, mask, shift); - buf.put_u8(data); - - CODEC_BIT_TRACE("put shift=%u(%u) data[%u]=%02X(%02X) mask=%04X: %s", shift, buf.get_shift() - , IE::length::value, data, value, mask, buf.toString()); - - buf.bit_advance(IE::length::value); - } - - static u8 get(buffer& buf) - { - u8 const mask = static_cast((1u << IE::length::value) - 1); - u8 const shift = buf.get_shift(); - u8 const data = (buf.get_u8() >> shift) & mask; - - CODEC_BIT_TRACE("get shift=%u(%u) data[%u]=%02X mask=%02X: %s", shift, buf.get_shift() - , IE::length::value, data, mask, buf.toString()); - - buf.bit_advance(IE::length::value); - return data; - } -}; - -template //LSB 9..15 bits -struct bit_accessor -{ - static_assert(IE::length::value > 8 && IE::length::value < 16, "something wrong with traits!"); - - static void put(u16 value, buffer& buf) - { - u16 const mask = static_cast((1u << IE::length::value) - 1); - u16 const shift = buf.get_shift(); - u16 const data = buf.extract_u16(value, mask, shift); - buf.push_u8(data >> 8); - buf.put_u8(data); - - CODEC_BIT_TRACE("put shift=%u(%u) data[%u]=%04X(%04X) mask=%04X: %s", shift, buf.get_shift() - , IE::length::value, data, value, mask, buf.toString()); - - buf.bit_advance(IE::length::value - 8); - } - - static u16 get(buffer& buf) - { - u16 const mask = static_cast((1u << IE::length::value) - 1); - u16 const shift = buf.get_shift(); - u16 const data = (buf.get_u16() >> shift) & mask; - buf.m_current += 1; - - CODEC_BIT_TRACE("get shift=%u(%u) data[%u]=%04X mask=%04X: %s", shift, buf.get_shift() - , IE::length::value, data, mask, buf.toString()); - - buf.bit_advance(IE::length::value - 8); - return data; - } -}; - -template //LSB 17..24 bits -struct bit_accessor -{ - static_assert(IE::length::value > 16 && IE::length::value <= 24, "something wrong with traits!"); - - static void put(u32 value, buffer& buf) - { - u32 const mask = static_cast((1u << IE::length::value) - 1); - u32 const shift = buf.get_shift(); - u32 const data = buf.extract_u24(value, mask, shift); - - buf.push_u8(data >> 16); - buf.push_u8(data >> 8); - buf.put_u8(data); - - CODEC_BIT_TRACE("put shift=%u(%u) data[%u]=%06X(%06X) mask=%06X: %s", shift, buf.get_shift() - , IE::length::value, data, value, mask, buf.toString()); - - buf.bit_advance(IE::length::value - 16); - } - - static u32 get(buffer& buf) - { - u32 const mask = static_cast((1u << IE::length::value) - 1); - u32 const shift = buf.get_shift(); - u32 const data = (buf.get_u24() >> shift) & mask; - buf.m_current += 2; - - CODEC_BIT_TRACE("get shift=%u(%u) data[%u]=%06X mask=%06X: %s", shift, buf.get_shift() - , IE::length::value, data, mask, buf.toString()); - - buf.bit_advance(IE::length::value - 16); - return data; - } -}; - -template //LSB 25..31 bits -struct bit_accessor -{ - static_assert(IE::length::value > 24 && IE::length::value < 32, "something wrong with traits!"); - - static void put(u32 value, buffer& buf) - { - u32 const mask = static_cast((1u << IE::length::value) - 1); - u32 const shift = buf.get_shift(); - u32 const data = buf.extract_u32(value, mask, shift); - - buf.push_u8(data >> 24); - buf.push_u8(data >> 16); - buf.push_u8(data >> 8); - buf.put_u8(data); - - CODEC_BIT_TRACE("put shift=%u(%u) data[%u]=%08X(%08X) mask=%08X: %s", shift, buf.get_shift() - , IE::length::value, data, value, mask, buf.toString()); - - buf.bit_advance(IE::length::value - 24); - } - - static u32 get(buffer& buf) - { - u32 const mask = static_cast((1u << IE::length::value) - 1); - u32 const shift = buf.get_shift(); - u32 const data = (buf.get_u32() >> shift) & mask; - buf.m_current += 3; - - CODEC_BIT_TRACE("get shift=%u(%u) data[%u]=%08X mask=%08X: %s", shift, buf.get_shift() - , IE::length::value, data, mask, buf.toString()); - - buf.bit_advance(IE::length::value - 24); - return data; - } -}; - - -template //MSB 1..7 bits -struct bit_accessor -{ - static_assert(IE::length::value > 0 && IE::length::value < 8, "something wrong with traits!"); - - static void put(u8 value, buffer& buf) - { - u8 const mask = static_cast((1u << IE::length::value) - 1); - u8 const shift = 8 - buf.get_shift() - IE::length::value; - u8 const data = buf.extract_u8(value, mask, shift); - buf.put_u8(data); - - CODEC_BIT_TRACE("put shift=%u(%u) data[%u]=%02X(%02X) mask=%04X: %s", shift, buf.get_shift() - , IE::length::value, data, value, mask, buf.toString()); - - buf.bit_advance(IE::length::value); - } - - static u8 get(buffer& buf) - { - u8 const mask = static_cast((1u << IE::length::value) - 1); - u8 const shift = 8 - buf.get_shift() - IE::length::value; - u8 const data = (buf.get_u8() >> shift) & mask; - - CODEC_BIT_TRACE("get shift=%u(%u) data[%u]=%02X mask=%02X: %s", shift, buf.get_shift() - , IE::length::value, data, mask, buf.toString()); - - buf.bit_advance(IE::length::value); - return data; - } -}; - -template //MSB 9..15 bits -struct bit_accessor -{ - static_assert(IE::length::value > 8 && IE::length::value < 16, "something wrong with traits!"); - - static void put(u16 value, buffer& buf) - { - u16 const mask = static_cast((1u << IE::length::value) - 1); - u16 const shift = 16 - buf.get_shift() - IE::length::value; - u16 const data = buf.extract_u16(value, mask, shift); - - buf.push_u8(data >> 8); - buf.put_u8(data); - - CODEC_BIT_TRACE("put shift=%u(%u) data[%u]=%04X(%04X) mask=%04X: %s", shift, buf.get_shift() - , IE::length::value, data, value, mask, buf.toString()); - - buf.bit_advance(IE::length::value - 8); - } - - static u16 get(buffer& buf) - { - u16 const mask = static_cast((1u << IE::length::value) - 1); - u16 const shift = 16 - buf.get_shift() - IE::length::value; - u16 const data = (buf.get_u16() >> shift) & mask; - buf.m_current += 1; - - CODEC_BIT_TRACE("get shift=%u(%u) data[%u]=%04X mask=%04X: %s", shift, buf.get_shift() - , IE::length::value, data, mask, buf.toString()); - - buf.bit_advance(IE::length::value - 8); - return data; - } -}; - - -template //MSB 17..24 bits -struct bit_accessor -{ - static_assert(IE::length::value > 16 && IE::length::value <= 24, "something wrong with traits!"); - - static void put(u32 value, buffer& buf) - { - u32 const mask = static_cast((1u << IE::length::value) - 1); - u32 const shift = 24 - buf.get_shift() - IE::length::value; - u32 const data = buf.extract_u24(value, mask, shift); - - buf.push_u8(data >> 16); - buf.push_u8(data >> 8); - buf.put_u8(data); - - CODEC_BIT_TRACE("put shift=%u(%u) data[%u]=%06X(%06X) mask=%06X: %s", shift, buf.get_shift() - , IE::length::value, data, value, mask, buf.toString()); - - buf.bit_advance(IE::length::value - 16); - } - - static u32 get(buffer& buf) - { - u32 const mask = static_cast((1u << IE::length::value) - 1); - u32 const shift = 24 - buf.get_shift() - IE::length::value; - u32 const data = (buf.get_u24() >> shift) & mask; - buf.m_current += 2; - - CODEC_BIT_TRACE("get shift=%u(%u) data[%u]=%06X mask=%06X: %s", shift, buf.get_shift() - , IE::length::value, data, mask, buf.toString()); - - buf.bit_advance(IE::length::value - 16); - return data; - } -}; - -template //MSB 25..31 bits -struct bit_accessor -{ - static_assert(IE::length::value > 24 && IE::length::value < 32, "something wrong with traits!"); - - static void put(u32 value, buffer& buf) - { - u32 const mask = static_cast((1u << IE::length::value) - 1); - u32 const shift = 32 - buf.get_shift() - IE::length::value; - u32 const data = buf.extract_u32(value, mask, shift); - - buf.push_u8(data >> 24); - buf.push_u8(data >> 16); - buf.push_u8(data >> 8); - buf.put_u8(data); - - CODEC_BIT_TRACE("put shift=%u(%u) data[%u]=%08X(%08X) mask=%08X: %s", shift, buf.get_shift() - , IE::length::value, data, value, mask, buf.toString()); - - buf.bit_advance(IE::length::value - 24); - } - - static u32 get(buffer& buf) - { - u32 const mask = static_cast((1u << IE::length::value) - 1); - u32 const shift = 32 - buf.get_shift() - IE::length::value; - u32 const data = (buf.get_u32() >> shift) & mask; - buf.m_current += 3; - - CODEC_BIT_TRACE("get shift=%u(%u) data[%u]=%08X mask=%08X: %s", shift, buf.get_shift() - , IE::length::value, data, mask, buf.toString()); - - buf.bit_advance(IE::length::value - 24); - return data; - } -}; - -/******************************************************************************** -bit_accessor_cross_byte -*********************************************************************************/ -template<> -struct bit_accessor_cross_byte //MSB -{ - static bool put(u8 value, u8 length, buffer& buf) - { - u8 spare = 8 - buf.get_shift(); - - if (spare < length) - { - length -= spare; - u8 chunk = value >> length; - u8 const mask = static_cast((1u << spare) - 1); - u8 data = buf.extract_u8(chunk, mask, 0); - buf.put_u8(data); - - buf.bit_advance(spare); - } - if (buf.checkBytesLeft(1)) - { - u8 const mask = static_cast((1u << length) - 1); - u8 const shift = 8 - buf.get_shift() - length; - u8 data = buf.extract_u8(value, mask, shift); - buf.put_u8(data); - - buf.bit_advance(length); - - return true; - } - return false; - } - - static u8 get(u8 length, buffer& buf) - { - u8 rval {0}; - u8 const mask = static_cast((1u << length) - 1); - u8 const spare = 8 - buf.get_shift(); - if (spare < length) - { - length -= spare; - rval = buf.get_u8() << length; - buf.bit_advance(spare); - } - if (length && buf.checkBytesLeft(1)) - { - u8 val = buf.get_u8(); - val = val >> (8 - length - buf.get_shift()); - rval |= val; - rval &= mask; - buf.bit_advance(length); - } - return rval; - } - - static void padByte(buffer& buf) - { - if (buf.get_shift()) - { - u8 mask = static_cast((1u << buf.get_shift()) - 1); - mask = mask << (8 - buf.get_shift()); - buf.begin()[0] &= mask; - buf.bit_advance(8 - buf.get_shift()); - } - } - - static void padByte(buffer& buf) - { - if(buf.get_shift()) - buf.bit_advance(8 - buf.get_shift()); - } - - static bool put(const u8* in, size_t len, buffer& buf, u8 trail_bitsqty) - { - if (len) - { - if (trail_bitsqty) - { - buf.putBytes(in, len - 1); - u8 last_byte = in[len - 1]; - last_byte = last_byte >> (8 - trail_bitsqty); - return put(last_byte, trail_bitsqty, buf); - } - buf.putBytes(in, len); - } - return true; - } -}; - -} //end: namespace asn - - diff --git a/e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/chunked_allocator.hpp b/e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/chunked_allocator.hpp deleted file mode 100755 index 008be98..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/chunked_allocator.hpp +++ /dev/null @@ -1,84 +0,0 @@ -#pragma once - -/******************************************************************************* -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -*******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries -#include -#include //std::bad_alloc -#include -#include - -// Platform Includes: Platform specific classes, functions, and libraries - -// Local Includes: Application specific classes, functions, and libraries - -namespace asn { - -template -class chunked_allocator -{ -public: - using allocator_t = ALLOC; - - chunked_allocator() - { - put_chunk(new_chunk()); - } - - template - decltype(auto) emplace_back(TSEQ& v) - { - try - { - return v.emplace_back(m_allocator); - } - catch (std::bad_alloc const&) - { - put_chunk(new_chunk()); - return v.emplace_back(m_allocator); - } - } - - uint8_t* alloc_bytes(std::size_t sz) - { - //TODO: unify allocation: now it returns nullptr instead of throw! - auto* ret = m_allocator.alloc_bytes(sz); - if (!ret) - { - put_chunk(new_chunk()); - ret = m_allocator.alloc_bytes(sz); - } - return ret; - } - -private: - static constexpr std::size_t CHUNK_SIZE = 32*1024; - using chunk_t = std::array; - using chunks_t = std::list; - - chunk_t& new_chunk() { return m_chunks.emplace_back(); } - void put_chunk(chunk_t& c) { m_allocator.reset(c.data(), c.size()); } - - - allocator_t m_allocator; - chunks_t m_chunks; -}; - -} //end: namespace asn diff --git a/e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/constraints.hpp b/e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/constraints.hpp deleted file mode 100755 index e8e787d..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/constraints.hpp +++ /dev/null @@ -1,140 +0,0 @@ -#pragma once - -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -* -******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries -#include -#include -#include -#include - -// Local Includes: Application specific classes, functions, and libraries - -namespace asn { - -using bound_t = int64_t; - -enum class constraint_type : uint8_t -{ - UNCONSTRAINED, - CONSTRAINED, - SEMICONSTRAINED, - CONSTRAINED_EXTENDED, - SEMICONSTRAINED_EXTENDED -}; - -template -struct span -{ - static_assert(UB >= LB, "UPPER >= LOWER"); - static constexpr bound_t lower_bound = LB; - static constexpr bound_t upper_bound = UB; -}; - -template -struct pair -{ - T const lower_bound; - T const upper_bound; -}; - -template -struct one : span {}; - -struct max : one::max()> {}; -struct min : one::min()> {}; - -static constexpr bound_t MAX = std::numeric_limits::max(); -static constexpr bound_t MIN = std::numeric_limits::min(); - -template -struct constraints -{ - static constexpr bool extended = Extended; - static constexpr bound_t lower_bound = std::min({RANGE::lower_bound...}); - static constexpr bound_t upper_bound = std::max({RANGE::upper_bound...}); - - static constexpr constraint_type type = - (Extended && lower_bound > min::lower_bound && upper_bound < max::upper_bound) ? constraint_type::CONSTRAINED_EXTENDED : - (!Extended && lower_bound > min::lower_bound && upper_bound < max::upper_bound) ? constraint_type::CONSTRAINED : - (Extended && lower_bound > min::lower_bound && upper_bound == max::upper_bound) ? constraint_type::SEMICONSTRAINED_EXTENDED : - (!Extended && lower_bound == min::lower_bound && upper_bound < max::upper_bound) ? constraint_type::SEMICONSTRAINED : - (Extended && lower_bound == min::lower_bound && upper_bound < max::upper_bound) ? constraint_type::SEMICONSTRAINED_EXTENDED : - (!Extended && lower_bound > min::lower_bound && upper_bound == max::upper_bound) ? constraint_type::SEMICONSTRAINED : constraint_type::UNCONSTRAINED; - - static constexpr bool is_signed = lower_bound < 0; - - static constexpr bound_t num_spans = static_cast(sizeof...(RANGE)); - static constexpr pair bounds[] = {{RANGE::lower_bound, RANGE::upper_bound}...}; - - using boundary_type = bound_t; - - static constexpr bool is_extended(bound_t val) - { - for (bound_t i = 0; i < num_spans; ++i) - { - auto const& p = bounds[i]; - if (val <= p.upper_bound) - { - if(val < p.lower_bound) - return true; - return false; - } - } - return true; - } -}; - -template -constexpr pair constraints::bounds[]; - -template -struct constraints -{ - static constexpr bool extended = Extended; - static constexpr constraint_type type = constraint_type::UNCONSTRAINED; - static constexpr bound_t lower_bound = std::numeric_limits::min(); - static constexpr bound_t upper_bound = std::numeric_limits::max(); - - static constexpr bool is_extended(bound_t val) {return true;} -}; - -/*************************************************************************************** -* RANGE for sequences -***************************************************************************************/ -template -struct seq_range -{ - static_assert(Extended || TotalNumEntries > 0, "TotalNumEntries must be > 0"); - static_assert(NumExtEntries <= TotalNumEntries, "NumExtEntries must be <= TotalNumEntries"); - - static constexpr constraint_type type = Extended ? constraint_type::CONSTRAINED_EXTENDED : constraint_type::CONSTRAINED; - static constexpr bool extended = Extended; - static constexpr bound_t lower_bound = 0; - static constexpr bound_t upper_bound = TotalNumEntries - NumExtEntries - 1; - static constexpr bound_t default_value = lower_bound; - static constexpr bound_t total_num_entries = TotalNumEntries; - - using boundary_type = bound_t; - using value_type = uint32_t; -}; - -} // namespace asn diff --git a/e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/elements.hpp b/e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/elements.hpp deleted file mode 100755 index 9cbcd42..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/elements.hpp +++ /dev/null @@ -1,565 +0,0 @@ -#pragma once - -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries -#include -#include - -// Local Includes: Application specific classes, functions, and libraries -#include "asn/constraints.hpp" -#include "asn/identifier.hpp" - -namespace asn { - -enum class element_type : uint8_t -{ - T_BOOLEAN - ,T_INTEGER - ,T_ENUMERATED - ,T_REAL - ,T_BITSTRING - ,T_OCTETSTRING - ,T_NULL - ,T_SEQUENCE - ,T_SEQUENCE_OF - ,T_SET - ,T_SET_OF - ,T_CHOICE - ,T_OBJECTIDENTIFIER - ,T_OBJFIELD_FTV - ,T_OBJFIELD_TF -}; - -/*************************************************************************************** -* BASE -***************************************************************************************/ - -struct base -{ - static constexpr bool optional = false; - static constexpr bool extension = false; - - static constexpr char const* name() {return "";} - - void setpresent(bool p) {is_set = p;} - void clear() {is_set = false;} - - bool is_valid() const {return is_set;} - -protected: - base() {} - void set() {is_set = true;} -protected: - bool is_set {false}; - - base& operator=(const base&) = delete; - base (const base&) = delete; -}; - -/*************************************************************************************** -* IE_NULL -***************************************************************************************/ - -struct nulltype : base -{ - using asn_identifier_t = identifier(tag_rvalue_t::NULL_TYPE), tag_type_t::IMPLICIT>; - - static constexpr element_type ie_type = element_type::T_NULL; - static constexpr const char* name() {return "NULL";} - - void clear() {} -}; - -/*************************************************************************************** -* T_BOOLEAN -***************************************************************************************/ - -struct boolean : base -{ - using asn_identifier_t = identifier(tag_rvalue_t::BOOLEAN), tag_type_t::IMPLICIT>; - - static constexpr element_type ie_type = element_type::T_BOOLEAN; - static constexpr const char* name() {return "BOOLEAN";} - - using value_type = bool; - - void set(value_type vl) { m_value = vl; base::set();} - value_type get() const { return m_value; } - void clear() { m_value = false; base::clear();} - -private: - value_type m_value {false}; -}; - -/*************************************************************************************** -* T_INTEGER -***************************************************************************************/ -template < class Constraint = constraints > -struct integer : base -{ - using asn_identifier_t = identifier(tag_rvalue_t::INTEGER), tag_type_t::IMPLICIT>; - - static constexpr element_type ie_type = element_type::T_INTEGER; - static constexpr const char* name() {return "INTEGER";} - - using constraint_t = Constraint; - using value_type = int64_t; - - bool equal(value_type v) const {return m_value == v;} - - void set(value_type v) { m_value = v; base::set();} - value_type get() const { return m_value; } - - void clear() { m_value = 0; base::clear();} - -private: - value_type m_value; -}; - -/*************************************************************************************** -* T_ENUMERATED -***************************************************************************************/ -template -struct enumerated : base -{ - using asn_identifier_t = identifier(tag_rvalue_t::ENUMERATED), tag_type_t::IMPLICIT>; - - static constexpr element_type ie_type = element_type::T_ENUMERATED; - static constexpr const char* name() {return "ENUMERATED";} - - using constraint_t = seq_range; - using value_type = typename constraint_t::value_type; - - bool equal(value_type v) const {return m_value == v;} - void set(value_type vl) { m_value = vl; base::set();} - value_type get() const { return m_value; } - void clear() { m_value = constraint_t::default_value; base::clear();} - -private: - value_type m_value; -}; - -/*************************************************************************************** -* T_OCTETSTRING -***************************************************************************************/ -template< class Constraint = constraints > -struct ostring : base -{ - using asn_identifier_t = identifier(tag_rvalue_t::OCTET_STRING), tag_type_t::IMPLICIT>; - - static constexpr element_type ie_type = element_type::T_OCTETSTRING; - static constexpr const char* name() {return "OCTET STING";} - using constraint_t = Constraint; - - struct value_type - { - value_type() {} - value_type(size_t size, const char* data) : m_size(size), m_data(reinterpret_cast(data)) {} - - size_t size() const { return m_size; } - const uint8_t* data() const { return m_data; } - - using const_iterator = uint8_t const*; - const_iterator begin() const { return data(); } - const_iterator end() const { return begin() + size(); } - - void assign(void const* p, size_t sz) { m_data = static_cast(p); m_size = sz; } - - private: - const uint8_t* m_data{ 0 }; - size_t m_size{ 0 }; - }; - - value_type const& get() const { return m_value; } - - //Use std::string, std::vector or IE_OSTR::value_type - template value_type const& set(T const& tval) - { - set(tval.size(), tval.data()); - base::set(); - return m_value; - } - - void set(size_t size, void const* data) - { - m_value.assign(data, size); - base::set(); - } - - template - ostring& emplace(AT& allocator, size_t size, uint8_t const * data_in) - { - if(size) - { - base::clear(); - uint8_t* data_out = allocator.alloc_bytes(size); - if (data_out) - { - memcpy(data_out, data_in, size); - set(size, data_out); - } - } - else - base::set(); - return *this; - } - - template - ostring& emplace(AT& allocator, T const& tval) - { - return emplace(allocator, tval.size(), reinterpret_cast(tval.data())); - } - - void clear() { m_value = value_type{}; base::clear();} - -private: - value_type m_value; -}; - -/*************************************************************************************** -* T_BITSTRING -***************************************************************************************/ -template > -struct bstring : base -{ - using asn_identifier_t = identifier(tag_rvalue_t::BIT_STRING), tag_type_t::IMPLICIT>; - - static constexpr element_type ie_type = element_type::T_BITSTRING; - static constexpr const char* name() {return "BIT STING";} - using constraint_t = Constraint; - - struct value_type - { - value_type() {} - value_type(size_t size, const char* data, size_t bitqty) : m_size(size), m_data(reinterpret_cast(data)), m_bitqty(bitqty){} - - size_t size() const { return m_size; } - const uint8_t* data() const { return m_data; } - size_t bitqty() const { return m_bitqty; } - - void assign(void const* p, size_t sz, size_t bits) { m_data = static_cast(p); m_size = sz; m_bitqty = bits; } - - private: - const uint8_t* m_data{ nullptr }; - size_t m_size{ 0 }; - size_t m_bitqty{ 0 }; - }; - - value_type const& get_buffer() const { return m_value; } - - size_t get_bitqty() const { return m_value.bitqty(); } - - //Use std::string, std::vector or IE_BSTR::value_type - template value_type const& set_buffer(T& tval, size_t bitqty) - { - m_value.assign(tval.data(), tval.size(), bitqty); - base::set(); - return m_value; - } - - void set_buffer(size_t bitqty, const uint8_t* data) - { - m_value.assign(data, (bitqty +7) >> 3, bitqty); - base::set(); - } - - template - bstring& emplace_buffer(AT& allocator, size_t bitqty, uint8_t const * data_in) - { - size_t size = (bitqty +7) >> 3; - uint8_t* data_out = allocator.alloc_bytes(size); - if (!data_out) { - throw std::bad_alloc(); - } - memcpy(data_out, data_in, size); - set_buffer(bitqty, data_out); - return *this; - } - - void clear() { m_value = value_type{}; base::clear();} - - uint64_t get_number() const - { - uint64_t retval{0}; - size_t i = 0; - for(; i < m_value.size() - 1; ++i) - { - retval <<= 8; - retval |= m_value.data()[i]; - } - - uint8_t shift = m_value.bitqty() % 8; - if (shift) - { - retval <<= shift; - } - else - { - retval <<= 8; - } - - retval |= m_value.data()[i]; - - return retval; - } - - template - void set_number(AT& allocator, size_t bitqty, uint64_t data) - { - size_t size = (bitqty +7) >> 3; - uint8_t* data_out = allocator.alloc_bytes(size); - if (!data_out) { - throw std::bad_alloc(); - } - - const uint8_t shift = bitqty % 8; - if (shift) - { - data_out[size-1] = data & (0xFF >> (8 - shift)); - data >>= shift; - } - else - { - data_out[size-1] = data & (0xFF); - data >>= 8; - } - - for (size_t i = 1; i <= size - 1; i++) - { - data_out[size-1-i] = data & (0xFF); - data >>= 8; - } - - m_value.assign(data_out, size, bitqty); - base::set(); - } - -private: - value_type m_value; -}; - -/*************************************************************************************** -* T_CHOICE -***************************************************************************************/ -template -struct choice : base -{ - using asn_identifier_t = identifier(tag_rvalue_t::CHOICE), tag_type_t::IMPLICIT>; - - static constexpr element_type ie_type = element_type::T_CHOICE; - static constexpr const char* name() {return "CHOICE";} - - using constraint_t = seq_range; - using index_type = size_t; - using value_type = size_t; - - static constexpr index_type fst_index = 1; - static constexpr index_type ext_index = fst_index + TotalNumEntries; - - static index_type normalize(index_type idx) {return idx - fst_index;} - static index_type denormalize(index_type idx) {return idx + fst_index;} -}; - -/*************************************************************************************** -* T_SEQUENCE -***************************************************************************************/ -template -struct sequence : base -{ - using asn_identifier_t = identifier(tag_rvalue_t::SEQUENCE), tag_type_t::IMPLICIT>; - - static constexpr element_type ie_type = element_type::T_SEQUENCE; - static constexpr const char* name() {return "SEQUENCE";} - - static constexpr bound_t num_total_entries = TotalNumEntries; - static constexpr bound_t num_opt_entries = NumOptEntries; - static constexpr bound_t num_ext_entries = NumExtEntries; - - using constraint_t = seq_range; - -}; - -/*************************************************************************************** -* T_SEQUENCE_OF -***************************************************************************************/ -template > -struct sequenceof : base -{ - using asn_identifier_t = identifier(tag_rvalue_t::SEQUENCE_OF), tag_type_t::IMPLICIT>; - - static constexpr element_type ie_type = element_type::T_SEQUENCE_OF; - static constexpr const char* name() {return "SEQUENCE OF";} - - struct value_type : T, boost::intrusive::list_base_hook< boost::intrusive::link_mode > - { - value_type(){} - private: - value_type& operator=(const value_type&) = delete; - value_type (const value_type&) = delete; - }; - - using values_t = boost::intrusive::list>; - using constraint_t = Constraint; - using element_t = T; - - void clear() { m_list.clear(); base::clear();} - size_t size() const { return m_list.size(); } - template - void sort(Predicate const& p) { m_list.sort(p); } - - template - void set(V& v) {for(auto & e : v) {m_list.push_back(e);} base::set();} - - void push_back(value_type& v) { m_list.push_back(v); base::set();} - - template //Note: Allocator must return word alligned buffer! - T& emplace_back(AT& allocator) - { - uint8_t* data = allocator.alloc_bytes(sizeof(value_type)); - if(!data) - throw std::bad_alloc(); - value_type* v = new (data) value_type; - push_back(*v); - return *v; - }; - - using iterator = typename values_t::iterator; - iterator begin() { return m_list.begin(); } - iterator end() { return m_list.end(); } - - using const_iterator = typename values_t::const_iterator; - const_iterator begin() const { return m_list.begin(); } - const_iterator end() const { return m_list.end(); } - - sequenceof(){} - -private: - values_t m_list; -}; - -/*************************************************************************************** -* T_OBJFIELD_FTV -***************************************************************************************/ -template -struct fixedtypefield : T -{ - static constexpr element_type ie_type = element_type::T_OBJFIELD_FTV; - - T& ref_nested() {return *this;} - T const & ref_nested() const {return *this;} -}; - -/*************************************************************************************** -* T_OBJFIELD_TF -***************************************************************************************/ -template -struct typefield : base -{ - static constexpr element_type ie_type = element_type::T_OBJFIELD_TF; - static constexpr const char* name() {return "type-field";} - - typefield& ref_nested() {return *this;} - typefield const& ref_nested() const {return *this;} - - bool is_unknown() const {return false;} -}; - -/*************************************************************************************** -* T_OBJECTIDENTIFIER -***************************************************************************************/ -struct oid : ostring<> -{ - using asn_identifier_t = identifier(tag_rvalue_t::OBJECT_IDENTIFIER), tag_type_t::IMPLICIT>; - - static constexpr element_type ie_type = element_type::T_OBJECTIDENTIFIER; - static constexpr const char* name() {return "OBJECT IDENTIFIER";} -}; - -/*************************************************************************************** -* T_PRINTABLESTRING -***************************************************************************************/ -template > -struct printable_string : ostring -{ - using asn_identifier_t = identifier(tag_rvalue_t::PrintableString), tag_type_t::IMPLICIT>; - static constexpr const char* name() {return "PrintableString";} -}; - -/*************************************************************************************** -* T_IA5_STRING -***************************************************************************************/ -template > -struct ia5_string : ostring -{ - using asn_identifier_t = identifier(tag_rvalue_t::IA5String), tag_type_t::IMPLICIT>; - static constexpr const char* name() {return "IA5String";} -}; - -/*************************************************************************************** -* T_GRAPHIC_STRING -***************************************************************************************/ -template > -struct graphic_string : ostring -{ - using asn_identifier_t = identifier(tag_rvalue_t::GraphicString), tag_type_t::IMPLICIT>; - static constexpr const char* name() {return "IA5String";} -}; - -/*************************************************************************************** -* T_UTF8_STRING -***************************************************************************************/ -template > -struct utf8_string : ostring -{ - using asn_identifier_t = identifier(tag_rvalue_t::UTF8String), tag_type_t::IMPLICIT>; - static constexpr const char* name() {return "UTF8String";} -}; - -/*************************************************************************************** -* T_SET -***************************************************************************************/ -template -struct set : base -{ - using asn_identifier_t = identifier(tag_rvalue_t::SET), tag_type_t::IMPLICIT>; - - static constexpr element_type ie_type = element_type::T_SET; - static constexpr const char* name() {return "SET";} - - static constexpr bound_t num_total_entries = TotalNumEntries; - static constexpr bound_t num_opt_entries = NumOptEntries; - static constexpr bound_t num_ext_entries = NumExtEntries; - - using constraint_t = seq_range; -}; - -/*************************************************************************************** -* T_SET_OF -***************************************************************************************/ -template > -struct setof : sequenceof -{ - using asn_identifier_t = identifier(tag_rvalue_t::SET_OF), tag_type_t::IMPLICIT>; - - static constexpr element_type ie_type = element_type::T_SET_OF; - static constexpr const char* name() {return "SET OF";} -}; -} //namespace asn diff --git a/e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/error_context.hpp b/e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/error_context.hpp deleted file mode 100755 index 8a7285a..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/error_context.hpp +++ /dev/null @@ -1,267 +0,0 @@ -#pragma once - -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries - - -// Local Includes: Application specific classes, functions, and libraries -#include "type_defs.h" - -namespace asn { - -class error_context -{ -public: - enum error_e : u8 - { - SUCCESS = 0 - ,INCORRECT_LENGTH_BITS - ,INCORRECT_LENGTH_BYTES - ,ALIGNMENT - ,INCORRECT_VALUE - ,INCORRECT_CHOICE_TAG - ,INCORRECT_IE_TAG - ,VALUE_OUT_OF_RANGE - ,SIZE_OUT_OF_RANGE - ,ALLOC_NO_MEMORY - ,NO_OBJECT - ,NO_MANDATORY - ,WRONG_END_OF_CONTENT - ,UNSUPPORTED - ,UNSPECIFIED - }; - - explicit operator bool() const { return SUCCESS == m_error; } - - void reset() { m_error = SUCCESS; } - error_e getError() const { return m_error; } - - char const* toString() const; - - void alignmentError(u32 shift); - void lengthErrorBytes(u32 bytes_left, u32 requested); - void lengthErrorBits(u32 bits_left, u32 requested); - void valueError(u32 got, u32 expected, u32 ofs); - void tagError(u32 tag); - void valueRangeError(size_t value); - void sizeRangeError(size_t size, size_t low = 0, size_t high = 0); - void allocatorNoMem(size_t bytes_left, size_t bytes_required); - void errorUnsupported() {setError(UNSUPPORTED);} - void errorUnspecified() {setError(UNSPECIFIED);} - void errorNoObject(const char* container_name_); - void errorNoMandatory(); - void errorWrongEndOfContent() {setError(WRONG_END_OF_CONTENT);} - - //to inline in choice decoder: TODO: think of changing it! - void choiceError(char const* name, u32 id) - { - m_name = name; - m_param[0] = id; - setError(INCORRECT_CHOICE_TAG); - } - //Name of the being processed IE - void ie_name(const char* name) { m_ie_name = name; } - char const* ie_name() const { return m_ie_name; } - - void container_name(const char* name) { m_container_name = name; } - char const* container_name() const { return m_container_name; } - - -private: - void setError(error_e n) { m_error = n; } - - enum { MAX_PARAMS = 3 }; - error_e m_error; - char const* m_name; - char const* m_ie_name {""}; - char const* m_container_name {""}; - size_t m_param[MAX_PARAMS]; - -}; - -inline -void error_context::errorNoObject(const char* c_name) -{ - container_name(c_name); - m_name = m_ie_name; - setError(NO_OBJECT); -} - -inline -void error_context::errorNoMandatory() -{ - m_name = m_ie_name; - setError(NO_MANDATORY); -} - -inline -void error_context::alignmentError(u32 shift) -{ - m_name = m_ie_name; - m_param[0] = shift; - setError(ALIGNMENT); -} - -inline -void error_context::lengthErrorBytes(u32 bytes_left, u32 requested) -{ - m_name = m_ie_name; - m_param[0] = bytes_left; - m_param[1] = requested; - setError(INCORRECT_LENGTH_BYTES); -} - -inline -void error_context::lengthErrorBits(u32 bits_left, u32 requested) -{ - m_name = m_ie_name; - m_param[0] = bits_left; - m_param[1] = requested; - setError(INCORRECT_LENGTH_BITS); -} - -inline -void error_context::valueError(u32 got, u32 expected, u32 ofs) -{ - m_name = m_ie_name; - m_param[0] = got; - m_param[1] = expected; - m_param[2] = ofs; - setError(INCORRECT_VALUE); -} - -inline -void error_context::tagError(u32 tag) -{ - m_name = m_ie_name; - m_param[0] = tag; - setError(INCORRECT_IE_TAG); -} - -inline -void error_context::valueRangeError(size_t value) -{ - m_name = m_ie_name; - m_param[0] = value; - setError(VALUE_OUT_OF_RANGE); -} - -inline -void error_context::sizeRangeError(size_t size, size_t low, size_t high) -{ - m_name = m_ie_name; - m_param[0] = size; - m_param[1] = low; - m_param[2] = high; - setError(SIZE_OUT_OF_RANGE); -} - -inline -void error_context::allocatorNoMem(size_t bytes_left, size_t bytes_required) -{ - m_name = m_ie_name; - m_param[0] = bytes_left; - m_param[1] = bytes_required; - setError(ALLOC_NO_MEMORY); -} - -inline -char const* error_context::toString() const -{ - static char sz[256]; - - switch (m_error) - { - case SUCCESS: - return "OK"; - - case INCORRECT_LENGTH_BITS: - snprintf(sz, sizeof(sz)-1, "%zu bits left, '%s::%s' needs %zu", m_param[0], m_container_name, m_name, m_param[1]); - break; - - case INCORRECT_LENGTH_BYTES: - snprintf(sz, sizeof(sz)-1, "%zu bytes left, '%s::%s' needs %zu", m_param[0], m_container_name, m_name, m_param[1]); - break; - case ALIGNMENT: - snprintf(sz, sizeof(sz)-1, "misaligned '%s::%s': shift %zu bits", m_container_name, m_name, m_param[0]); - break; - - case INCORRECT_VALUE: - snprintf(sz, sizeof(sz)-1, "Wrong value of '%s::%s' at %zu: 0x%zX expected=0x%zX", m_container_name, m_name, m_param[2], m_param[0], m_param[1]); - break; - - case INCORRECT_CHOICE_TAG: - snprintf(sz, sizeof(sz)-1, "Wrong choice tag of '%s::%s': %zu (0x%zX)", m_container_name, m_name, m_param[0], m_param[0]); - break; - - case INCORRECT_IE_TAG: - snprintf(sz, sizeof(sz)-1, "Wrong tag of '%s::%s': %zu (0x%zX)", m_container_name, m_name, m_param[0], m_param[0]); - break; - - case VALUE_OUT_OF_RANGE: - snprintf(sz, sizeof(sz) - 1, "Value is out of the range '%s::%s': value: %zu", m_container_name, m_name, m_param[0]); - break; - - case SIZE_OUT_OF_RANGE: - if (m_param[2]) - { - snprintf(sz, sizeof(sz) - 1, "Size=%zu bytes is out of the range [%zu, %zu] in '%s::%s'", m_param[0], m_param[1], m_param[2], m_container_name, m_name); - } - else - { - if (m_param[1]) - { - snprintf(sz, sizeof(sz) - 1, "Size=%zu bytes is less than %zu in '%s::%s'", m_param[0], m_param[1], m_container_name, m_name); - } - else - { - snprintf(sz, sizeof(sz) - 1, "Size=%zu bytes is out of the range in '%s::%s'", m_param[0], m_container_name, m_name); - } - } - break; - - case ALLOC_NO_MEMORY: - snprintf(sz, sizeof(sz) - 1, "Allocator memory has ended '%s::%s': left bytes: %zu; required bytes: %zu", m_container_name, m_name, m_param[0], m_param[1]); - break; - case NO_OBJECT: - snprintf(sz, sizeof(sz) - 1, "Component relation constraint violated '%s::%s'", m_container_name, m_name); - break; - case NO_MANDATORY: - snprintf(sz, sizeof(sz) - 1, "no mandatory '%s::%s' is found", m_container_name, m_name); - break; - case UNSUPPORTED: - snprintf(sz, sizeof(sz) - 1, "unsupported object '%s::%s' is found", m_container_name, m_name); - return "unsupported"; - break; - case UNSPECIFIED: - snprintf(sz, sizeof(sz) - 1, "unspecified object '%s::%s' is found", m_container_name, m_name); - return "unspecified"; - break; - case WRONG_END_OF_CONTENT: - snprintf(sz, sizeof(sz) - 1, "wrong end of content in object '%s::%s'", m_container_name, m_name); - return "wrong end of content"; - break; - } - - return sz; -} - -} //end: namespace asn diff --git a/e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/identifier.hpp b/e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/identifier.hpp deleted file mode 100755 index 9b603fb..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/identifier.hpp +++ /dev/null @@ -1,97 +0,0 @@ -#pragma once - -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries - -// Local Includes: Application specific classes, functions, and libraries - -namespace asn { - -enum class class_type_t : uint8_t -{ - UNIVERSAL - ,APPLICATION - ,CONTEXT - ,PRIVATE - ,UNSPECIFIED //reserved for internal use -}; - -enum class tag_type_t : uint8_t -{ - EXPLICIT - ,IMPLICIT - ,AUTOMATIC -}; - -using tag_value_t = uint64_t; - -template -struct identifier -{ - static constexpr class_type_t class_type = CT; - static constexpr tag_value_t tag_value = TAG; - static constexpr tag_type_t tag_type = TT; -}; - - -enum class tag_rvalue_t : tag_value_t -{ - BOOLEAN = 1 - ,INTEGER = 2 - ,BIT_STRING = 3 - ,OCTET_STRING = 4 - ,NULL_TYPE = 5 - ,OBJECT_IDENTIFIER = 6 - ,REAL = 9 - ,ENUMERATED = 10 - ,SEQUENCE = 16 - ,SEQUENCE_OF = 16 - ,UTF8String = 12 - ,NumericString = 18 - ,IA5String = 22 - ,VisibleString = 26 - ,DATE = 31 - ,TIME_OF_DAY = 32 - ,DATE_TIME = 33 - ,DURATION = 34 - ,ObjectDescriptor = 7 - ,EXTERNAL = 8 - ,EMBEDDED_PDV = 11 - ,OID_IRI = 35 - ,RELATIVE_OID_IRI = 36 - ,SET = 17 - ,SET_OF = 17 - ,UTCTime = 23 - ,GeneralizedTime = 24 - ,PrintableString = 19 - ,T61String = 20 - ,VideotexString = 21 - ,GraphicString = 25 - ,GeneralString = 27 - ,UniversalString = 28 - ,CHARACTER_STRING = 29 - ,BMPString = 30 - ,ISO646String = 26 - ,TeletexString = 20 - ,CHOICE = 99 // fake id for internal use -}; - -} //namespace asn diff --git a/e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/per/binary_integer.hpp b/e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/per/binary_integer.hpp deleted file mode 100755 index 6ba2f15..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/per/binary_integer.hpp +++ /dev/null @@ -1,168 +0,0 @@ -#pragma once -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries - -// Local Includes: Application specific classes, functions, and libraries -#include "asn/per/common.hpp" -#include "asn/per/length.hpp" - -namespace asn { -namespace per { - -template -struct BinaryIntegerLength; - -/*************************************************************************************** -* Encoding of a non-negative-binary-integer (X.691 10.3) -***************************************************************************************/ -template -struct NonnegativeBinaryInteger -{ - static void inline run(u64 val, EncoderCtx& ctx) - { - if(val) - { - size_t const len = sizeof(val) - (__builtin_clzll(val) >> 3); - - BinaryIntegerLength< Range >::run(ctx, len); - Tools::bit_accessor::padByte(ctx.refBuffer()); - - u8 buff[len]; - size_t shift = (len - 1) << 3; - for(size_t i = 0; i < len; ++i) - { - buff[i] = static_cast(val >> shift); - shift -= 8; - } - - ctx.refBuffer().putBytes(buff, len); - } - else - { - BinaryIntegerLength< Range >::run(ctx, 1); - Tools::bit_accessor::padByte(ctx.refBuffer()); - ctx.refBuffer().putByte(0); - } - } - template - static void inline run(T& retval, DecoderCtx& ctx, bool extended_val) - { - retval = 0; - size_t len = (size_t)BinaryIntegerLength< Range >::run(ctx, extended_val); - Tools::bit_accessor::padByte(ctx.refBuffer()); - u8 const* data = ctx.refBuffer().getBytes(len); - - if (data) - { - for (size_t i = 0; i < len; ++i) - { - retval = retval << 8; - retval |= data[i]; - } - } - } -}; - -/*************************************************************************************** -* Encoding of a 2's-complement-binary-integer (X.691 10.4) -***************************************************************************************/ - -template -struct TwosComplementBinaryInteger -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - Tools::bit_accessor::padByte(ctx.refBuffer()); - - u64 val = ie.get(); - u64 tval = val; - u64 mask = static_cast(-128); - u8 len = 1; - u8 i = 7; - - u8 buf[8]; - - while (len < 8) - { - buf[i] = static_cast(tval); - if (!(val & mask) || (val & mask) == mask) - break; - mask = mask << 8; - tval = tval >> 8; - len++; - i--; - } - - ctx.refBuffer().putByte(len) && ctx.refBuffer().putBytes(&buf[i], len); - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - Tools::bit_accessor::padByte(ctx.refBuffer()); - - u8 const* data = nullptr; - typename IE::value_type val = 0; - - u8 const* len = ctx.refBuffer().getBytes(1); - - if (len && (*len) <= 8 && (data = ctx.refBuffer().getBytes(*len))) - { - for (u8 i = 0; i < *len; ++i) - { - val = val << 8; - val |= data[i]; - } - } - ie.set(val); - } -}; - -/*************************************************************************************** -* Encoding of a normally small non-negativebinary integer (X.691 10.6) -***************************************************************************************/ -template -struct NormallySmallNonnegativeBinaryInteger -{ - static void inline run(IE const& ie, EncoderCtx& ctx, typename IE::constraint_t::boundary_type val) - { - if (val <= 63) - { - Tools::bit_accessor::put(static_cast(val), 7, ctx.refBuffer()); //7 bits ('0' indicator + value) - } - else - { - Tools::bit_accessor::put(1, 1, ctx.refBuffer()); //1 bit ('1' indicator) - NonnegativeBinaryInteger::run(val, ctx); - } - } - static TValue inline run(DecoderCtx& ctx) - { - u8 ext = Tools::bit_accessor::get(1, ctx.refBuffer()); - if (ext) { - TValue rval = 0; - NonnegativeBinaryInteger::run(rval, ctx, true); - return rval; - } - return Tools::bit_accessor::get(6, ctx.refBuffer()); - } -}; - -} //namespace per -} //namespace asn diff --git a/e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/per/bstring.hpp b/e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/per/bstring.hpp deleted file mode 100755 index 5d25599..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/per/bstring.hpp +++ /dev/null @@ -1,279 +0,0 @@ -#pragma once -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries - -// Local Includes: Application specific classes, functions, and libraries -#include "asn/per/common.hpp" - -namespace asn { -namespace per { - -//15.11 Default -template -struct BitstringNoExt -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - LengthDeterminant::run(ctx, ie.get_bitqty()); - Tools::bit_accessor::padByte(ctx.refBuffer()); - - const u8 tail = ie.get_bitqty() % 8; - if (tail) - { - ctx.refBuffer().putBytes(ie.get_buffer().data(), ie.get_buffer().size() - 1); - u8 last_byte = *(ie.get_buffer().data() + ie.get_buffer().size() - 1); - - last_byte <<= 8 - tail; - ctx.refBuffer().putBytes(&last_byte, 1); - ctx.refBuffer().set_begin(ctx.refBuffer().begin() - 1, tail); - } - else - { - ctx.refBuffer().putBytes(ie.get_buffer().data(), ie.get_buffer().size()); - } - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - size_t len = LengthDeterminant::run(ctx, false); - size_t len_bytes = (len + 7) >> 3; - Tools::bit_accessor::padByte(ctx.refBuffer()); - u8 const* data_in = ctx.refBuffer().getBytes(len_bytes); - if (data_in) - { - u8* data_out = ctx.refAllocator().alloc_bytes(len_bytes); - if (data_out) - { - memcpy(data_out, data_in, len_bytes); - const u8 shift = len % 8; - if (shift) - { - ctx.refBuffer().set_begin(ctx.refBuffer().begin() - 1, shift); - data_out[len_bytes - 1] >>= 8 - shift; - } - ie.set_buffer(len, data_out); - } - else - ctx.refErrorCtx().allocatorNoMem(0, len_bytes); - } - } -}; - -//15.8 Zero length -template -struct BitstringNoExt > -{ - static void inline run(IE const& ie, EncoderCtx& ctx) {/* do nothing */ } - static void inline run(IE& ie, DecoderCtx& ctx) { ie.setpresent(true); } -}; - -//15.9 Up to 6 bits, fixed length -template -struct BitstringNoExt 0)) ->> -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - Tools::bit_accessor::put((static_cast(ie.get_buffer().data()[0])) & (0xFF >> (8 - IE::constraint_t::upper_bound)), - IE::constraint_t::upper_bound, ctx.refBuffer()); - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - u8 * data = ctx.refAllocator().alloc_bytes(1); - if (data) - { - data[0] = Tools::bit_accessor::get(IE::constraint_t::upper_bound, ctx.refBuffer()); - ie.set_buffer(IE::constraint_t::upper_bound, data); - } - else - ctx.refErrorCtx().allocatorNoMem(0, 1); - } -}; -template -struct BitstringNoExt 8)) ->> -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - Tools::bit_accessor::put(ie.get_buffer().data()[0], 8, ctx.refBuffer()); - Tools::bit_accessor::put((static_cast(ie.get_buffer().data()[1])) & (0xFF >> (16 - IE::constraint_t::upper_bound)), - IE::constraint_t::upper_bound - 8, ctx.refBuffer()); - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - u8 * data = ctx.refAllocator().alloc_bytes(2); - if (data) - { - data[0] = Tools::bit_accessor::get(8, ctx.refBuffer()); - data[1] = Tools::bit_accessor::get(IE::constraint_t::upper_bound - 8, ctx.refBuffer()); - ie.set_buffer(IE::constraint_t::upper_bound, data); - } - else - ctx.refErrorCtx().allocatorNoMem(0, 2); - } -}; - -//15.10 More than 6 bits, up to 64K bits, fixed length -template -struct BitstringNoExt 16)) ->> -{ - constexpr static size_t len_bytes = (IE::constraint_t::upper_bound + 7) >> 3; - - static void inline run(IE const& ie, EncoderCtx& ctx) - { - Tools::bit_accessor::padByte(ctx.refBuffer()); - if (ie.get_buffer().size() != len_bytes) - { - ctx.refErrorCtx().sizeRangeError(ie.get_buffer().size(), len_bytes, len_bytes); - } - else - { - const u8 tail = ie.get_bitqty() % 8; - if (tail) - { - ctx.refBuffer().putBytes(ie.get_buffer().data(), ie.get_buffer().size() - 1); - u8 last_byte = *(ie.get_buffer().data() + ie.get_buffer().size() - 1); - last_byte <<= 8 - tail; - ctx.refBuffer().putBytes(&last_byte, 1); - ctx.refBuffer().set_begin(ctx.refBuffer().begin() - 1, tail); - } - else - { - ctx.refBuffer().putBytes(ie.get_buffer().data(), ie.get_buffer().size()); - } - } - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - Tools::bit_accessor::padByte(ctx.refBuffer()); - u8 const* data_in = ctx.refBuffer().getBytes(len_bytes); - if (data_in) - { - u8* data_out = ctx.refAllocator().alloc_bytes(len_bytes); - if (data_out) - { - memcpy(data_out, data_in, len_bytes); - const u8 shift = IE::constraint_t::upper_bound % 8; - if (shift) - { - ctx.refBuffer().set_begin(ctx.refBuffer().begin() - 1, shift); - data_out[len_bytes - 1] >>= 8 - shift; - } - ie.set_buffer(IE::constraint_t::upper_bound, data_out); - } - else - ctx.refErrorCtx().allocatorNoMem(0, len_bytes); - } - } -}; - -/**************************************************/ - -template -struct Bitstring; - -//15.6 : Extension present -template -struct Bitstring > -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - - if (ie.get_bitqty() <= IE::constraint_t::upper_bound && ie.get_bitqty() >= IE::constraint_t::lower_bound) - { - Tools::bit_accessor::put(0, 1, ctx.refBuffer()); - BitstringNoExt::run(ie, ctx); - } - else - { - Tools::bit_accessor::put(1, 1, ctx.refBuffer()); - Tools::bit_accessor::padByte(ctx.refBuffer()); - LengthDeterminant::run(ctx, ie.get_bitqty()); - Tools::bit_accessor::padByte(ctx.refBuffer()); - const u8 tail = ie.get_bitqty() % 8; - if (tail) - { - ctx.refBuffer().putBytes(ie.get_buffer().data(), ie.get_buffer().size() - 1); - u8 last_byte = *(ie.get_buffer().data() + ie.get_buffer().size() - 1); - - last_byte <<= 8 - tail; - - ctx.refBuffer().putBytes(&last_byte, 1); - ctx.refBuffer().set_begin(ctx.refBuffer().begin() - 1, tail); - } - else - { - ctx.refBuffer().putBytes(ie.get_buffer().data(), ie.get_buffer().size()); - } - } - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - u8 ext = Tools::bit_accessor::get(1, ctx.refBuffer()); - if (ext) - { - Tools::bit_accessor::padByte(ctx.refBuffer()); - const size_t len = LengthDeterminant::run(ctx, true); - const size_t len_bytes = (len + 7) >> 3; - Tools::bit_accessor::padByte(ctx.refBuffer()); - u8 const* data_in = ctx.refBuffer().getBytes(len_bytes); - if (data_in) - { - u8* data_out = ctx.refAllocator().alloc_bytes(len_bytes); - if (data_out) - { - memcpy(data_out, data_in, len_bytes); - const u8 shift = len % 8; - if (shift) - { - ctx.refBuffer().set_begin(ctx.refBuffer().begin() - 1, shift); - data_out[len_bytes - 1] >>= 8 - shift; - } - ie.set_buffer(len, data_out); - } - else - ctx.refErrorCtx().allocatorNoMem(0, len_bytes); - } - } - else - BitstringNoExt::run(ie, ctx); - } -}; - -//15.7 : No extension -template -struct Bitstring > -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - BitstringNoExt::run(ie, ctx); - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - BitstringNoExt::run(ie, ctx); - } -}; - -} //namespace per -} //namespace asn diff --git a/e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/per/choice.hpp b/e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/per/choice.hpp deleted file mode 100755 index f0d115c..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/per/choice.hpp +++ /dev/null @@ -1,136 +0,0 @@ -#pragma once -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries - -// Local Includes: Application specific classes, functions, and libraries -#include "asn/per/common.hpp" -#include "asn/per/visitor.hpp" - -namespace asn { -namespace per { - -/******************************************************************************** -Choice -*********************************************************************************/ - -/**************************************************/ -//22.6-7 Default -template -struct ChoiceNoExt -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - ConstrainedWholeNumber::run(ctx, IE::normalize(ie.get_index())); - VisitorEncoder ve{ ctx }; - ie.encode(ve); - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - typename IE::index_type idx = ConstrainedWholeNumber::run(ctx); - VisitorDecoder ve{ ctx }; - ie.decode(IE::denormalize(idx), ve); - } -}; - -//22.4 One alternative -template -struct ChoiceNoExt > -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - VisitorEncoder ve{ ctx }; - ie.encode(ve); - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - VisitorDecoder ve{ ctx }; - ie.decode(IE::denormalize(0), ve); - } -}; - -/**************************************************/ - -template -struct Choice; - -//22.5 Extension present -template -struct Choice > -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - auto idx = IE::normalize(ie.get_index()); - if (idx <= IE::constraint_t::upper_bound) - { - Tools::bit_accessor::put(0, 1, ctx.refBuffer()); - ChoiceNoExt::run(ie, ctx); - } - else - { - Tools::bit_accessor::put(1, 1, ctx.refBuffer()); - NormallySmallNonnegativeBinaryInteger::run(ie, ctx, idx - IE::constraint_t::upper_bound - 1); - OpenTypeVisitorEncoder ve{ ctx }; - ie.encode(ve); - } - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - u8 ext = Tools::bit_accessor::get(1, ctx.refBuffer()); - if (ext) - { - typename IE::index_type idx = IE::constraint_t::upper_bound + 1 + NormallySmallNonnegativeBinaryInteger::run(ctx); - if (idx >= IE::constraint_t::total_num_entries) - { - ie.set_unknown(); - size_t size = LengthDeterminantDefault::run(ctx); - DecoderCtx::buf_type& buffer = ctx.refBuffer(); - if (buffer.getBytesLeft() < size) - ctx.refErrorCtx().lengthErrorBytes(buffer.getBytesLeft(), size); - else - buffer.advance(size); - } - else - { - OpenTypeVisitorDecoder ve{ ctx }; - ie.decode(IE::denormalize(idx), ve); - } - } - else - ChoiceNoExt::run(ie, ctx); - } -}; - -//22.6 No extension -template -struct Choice > -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - ChoiceNoExt::run(ie, ctx); - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - ChoiceNoExt::run(ie, ctx); - } -}; - -} //namespace per -} //namespace asn diff --git a/e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/per/codec.hpp b/e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/per/codec.hpp deleted file mode 100755 index 176792a..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/per/codec.hpp +++ /dev/null @@ -1,325 +0,0 @@ -#pragma once -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries - -// Local Includes: Application specific classes, functions, and libraries -#include "asn/per/common.hpp" -#include "asn/elements.hpp" -#include "asn/per/context.hpp" -#include "asn/per/length.hpp" -#include "asn/per/integer.hpp" -#include "asn/per/enumerated.hpp" -#include "asn/per/ostring.hpp" -#include "asn/per/bstring.hpp" -#include "asn/per/sequence_of.hpp" -#include "asn/per/sequence.hpp" -#include "asn/per/choice.hpp" -#include "asn/per/visitor.hpp" -#include "asn/per/oid.hpp" - -namespace asn { -namespace per { - -/******************************************************************************** -pack -*********************************************************************************/ -template -bool pack(IE const& ie, EncoderCtx& ctx) -{ - ctx.refErrorCtx().reset(); - Element::run(ie, ctx); - - if (ctx) - Tools::bit_accessor::padByte(ctx.refBuffer()); - - return static_cast(ctx); -} -/******************************************************************************** -unpack -*********************************************************************************/ -template -bool unpack(IE& ie, DecoderCtx& ctx) -{ - Element::run(ie, ctx); - - if (ctx) - Tools::bit_accessor::padByte(ctx.refBuffer()); - - if(ctx && ctx.refBuffer().getBytesLeft()) - { - ctx.ie_name(IE::name()); - ctx.refErrorCtx().lengthErrorBytes(ctx.refBuffer().getBytesLeft(), 0); - } - - return static_cast(ctx); -} - -/*************************************************************************************** -* ElementType -***************************************************************************************/ -template -struct ElementType; - -/*************************************************************************************** -* BOOLEAN: Encoding the boolean type (X.691 11) -***************************************************************************************/ -template -struct ElementType -{ -protected: - template friend struct Element; - - static void inline run(IE const& ie, EncoderCtx& ctx) - { - Tools::bit_accessor::put(static_cast(ie.get()), 1, ctx.refBuffer()); - } - - static void inline run(IE& ie, DecoderCtx& ctx) - { - ie.set(0 != Tools::bit_accessor::get(1, ctx.refBuffer())); - } -}; -/*************************************************************************************** -* INTEGER: Encoding the integer type (X.691 12) -***************************************************************************************/ -template -struct ElementType -{ -protected: - template friend struct Element; - - static void inline run(IE const& ie, EncoderCtx& ctx) - { - Integer::run(ie, ctx); - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - Integer::run(ie, ctx); - } -}; -/*************************************************************************************** -* ENUMERATED: Encoding the enumerated type (X.691 13) -***************************************************************************************/ -template -struct ElementType -{ -protected: - template friend struct Element; - - static void inline run(IE const& ie, EncoderCtx& ctx) - { - Enumerated::run(ie, ctx); - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - Enumerated::run(ie, ctx); - } -}; -/*************************************************************************************** -* BIT STRING: Encoding the bitstring type (X.691 15) -***************************************************************************************/ -template -struct ElementType -{ -protected: - template friend struct Element; - - static void inline run(IE const& ie, EncoderCtx& ctx) - { - Bitstring::run(ie, ctx); - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - ie.clear(); - Bitstring::run(ie, ctx); - } -}; -/*************************************************************************************** -* OCTET STRING: Encoding the octetstring type (X.691 16) -***************************************************************************************/ -template -struct ElementType -{ -protected: - template friend struct Element; - - static void inline run(IE const& ie, EncoderCtx& ctx) - { - Octetstring::run(ie, ctx); - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - ie.clear(); - Octetstring::run(ie, ctx); - } -}; -/*************************************************************************************** -* NULL: Encoding the null type (X.691 17) -***************************************************************************************/ -template -struct ElementType -{ -protected: - template friend struct Element; - - static void inline run(IE const& ie, EncoderCtx& ctx) { /*do nothing*/ } - static void inline run(IE& ie, DecoderCtx& ctx) - { - ie.setpresent(true); - } -}; -/*************************************************************************************** -* SEQUENCE: Encoding the sequence type (X.691 18) -***************************************************************************************/ -template -struct ElementType -{ -protected: - template friend struct Element; - - static void inline run(IE const& ie, EncoderCtx& ctx) - { - ctx.container_name(IE::name()); - Seq::run(ie, ctx); - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - ctx.m_container = &ie; - Seq::run(ie, ctx); - ctx.m_container = nullptr; - } -}; -/*************************************************************************************** -* SEQUENCE OF: Encoding the sequence-of type (X.691 19) -***************************************************************************************/ -template -struct ElementType -{ -protected: - template friend struct Element; - - static void inline run(IE const& ie, EncoderCtx& ctx) - { - ctx.container_name(IE::name()); - SequenceOf::run(ie, ctx); - - for (auto& elem : ie) - Element::run(elem, ctx); - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - ie.clear(); - SequenceOf::run(ie, ctx); - - for (auto & elem : ie) - Element::run(elem, ctx); - } -}; -/*************************************************************************************** -* SET: Encoding the set type (X.691 20) -***************************************************************************************/ - - -/*************************************************************************************** -* SET OF: Encoding the set-of type (X.691 21) -***************************************************************************************/ - -/*************************************************************************************** -* CHOICE: Encoding the choice type (X.691 22) -***************************************************************************************/ -template -struct ElementType -{ -protected: - template friend struct Element; - - static void inline run(IE const& ie, EncoderCtx& ctx) - { - if(ie.is_valid()) - { - ctx.container_name(IE::name()); - Choice::run(ie, ctx); - } - else - ctx.refErrorCtx().tagError(ie.get_index()); - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - ie.clear(); - ctx.m_container = &ie; - Choice::run(ie, ctx); - ctx.m_container = nullptr; - } -}; - -/*************************************************************************************** -* IE_OBJECT_IDENTIFIER: Encoding the object identifier type (X.691 23) -***************************************************************************************/ -template -struct ElementType -{ -protected: - template friend struct Element; - - static void inline run(IE const& ie, EncoderCtx& ctx) - { - Oid::run(ie, ctx); - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - ie.clear(); - Oid::run(ie, ctx); - } -}; - -/*************************************************************************************** -* COMMON: Element -***************************************************************************************/ -template -struct Element -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - if (ctx) - { - ASN_ENCODER_TRACE("IE buffer: %s", static_cast(IE_TYPE), IE::name(), ctx.refBuffer().toString()); - ctx.ie_name(IE::name()); - if (IE_TYPE != element_type::T_SEQUENCE && !ie.is_valid()) - { - ctx.refErrorCtx().errorNoMandatory(); - } - else - ElementType::run(ie, ctx); - } - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - if (ctx) - { - ASN_DECODER_TRACE("IE buffer: %s", static_cast(IE_TYPE), IE::name(), ctx.refBuffer().toString()); - ctx.ie_name(IE::name()); - ElementType::run(ie, ctx); - } - } -}; - -} //namespace per -} //namespace asn diff --git a/e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/per/common.hpp b/e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/per/common.hpp deleted file mode 100755 index 5b92100..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/per/common.hpp +++ /dev/null @@ -1,58 +0,0 @@ -#pragma once -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries -#include - -// Local Includes: Application specific classes, functions, and libraries -#include "asn/asn.hpp" -#include "type_defs.h" - -#include "asn/buffer.hpp" -#include "context.hpp" - -//#define ASN_DECODER_TRACE_ENABLE -//#define ASN_ENCODER_TRACE_ENABLE - -#ifdef ASN_DECODER_TRACE_ENABLE -#define ASN_DECODER_TRACE(FMT, ...) printf(FMT "\n", __VA_ARGS__) -#else -#define ASN_DECODER_TRACE(...) -#endif - -#ifdef ASN_ENCODER_TRACE_ENABLE -#define ASN_ENCODER_TRACE(FMT, ...) printf(FMT "\n", __VA_ARGS__) -#else -#define ASN_ENCODER_TRACE(...) -#endif - -namespace asn { -namespace per { - -struct Tools -{ - typedef bit_accessor_cross_byte bit_accessor; -}; - -template -struct Element; - -} //namespace per -} //namespace asn diff --git a/e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/per/context.hpp b/e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/per/context.hpp deleted file mode 100755 index 2a5d7e9..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/per/context.hpp +++ /dev/null @@ -1,154 +0,0 @@ -#pragma once -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries -#include - -// Local Includes: Application specific classes, functions, and libraries -#include "asn/utility.hpp" -#include "asn/buffer.hpp" -#include "asn/error_context.hpp" - -namespace asn { -namespace per { - -/******************************************************************************** -EncoderCtx -*********************************************************************************/ -class EncoderCtx : boost::noncopyable -{ -public: - typedef buffer buf_type; - - EncoderCtx(u8* data, size_t size) - : m_buffer{ m_errCtx } - { - Reset(data, size); - } - - template - explicit EncoderCtx(u8(&buff)[SIZE]) - : EncoderCtx(buff, SIZE) - { - } - - explicit EncoderCtx() - : EncoderCtx(nullptr, 0) - { - } - - buf_type& refBuffer() { return m_buffer; } - error_context& refErrorCtx() { return m_errCtx; } - explicit operator bool() const { return static_cast(m_errCtx); } - - void Reset(void* data = nullptr, size_t size = 0) - { - m_buffer.reset(static_cast(data), size); - m_errCtx.reset(); - } - - //Name of the being processed IE - void ie_name(const char* name) { m_errCtx.ie_name(name); } - char const* ie_name() const { return m_errCtx.ie_name(); } - - void container_name(const char* name) { m_errCtx.container_name(name); } - char const* container_name() const { return m_errCtx.container_name(); } - -private: - template - friend struct Encode; - - error_context m_errCtx; - buf_type m_buffer; -}; - - -/******************************************************************************** -DecoderCtx -*********************************************************************************/ -class DecoderCtx : boost::noncopyable -{ -public: - typedef buffer buf_type; - typedef allocator alloc_type; - typedef u64 map_type; - - DecoderCtx(const void* data = nullptr, size_t size = 0, void* alloc_buffer = nullptr, size_t alloc_buffer_size = 0) - : m_buffer{ m_errCtx } - { - reset(data, size, alloc_buffer, alloc_buffer_size); - } - - buf_type& refBuffer() { return m_buffer; } - alloc_type& refAllocator() { return m_allocator; } - error_context& refErrorCtx() { return m_errCtx; } - explicit operator bool() const { return static_cast(m_errCtx); } - - void reset(const void* data = nullptr, size_t size = 0, void* alloc_buffer = nullptr, size_t alloc_buffer_size = 0) - { - m_allocator.reset(alloc_buffer, alloc_buffer_size); - m_buffer.reset(static_cast(data), size); - m_errCtx.reset(); - m_map = 0; - m_container = nullptr; - } - - bool map_elm() - { - //m_map = (m_map << 1) | (m_map >> (sizeof(m_map)*CHAR_BIT - 1)); - //return m_map & 1u; - - constexpr map_type mask = ((map_type)1) << (sizeof(map_type)*CHAR_BIT - 1); - - bool rv = m_map & mask; - m_map = m_map << 1; - - return rv; - } - - map_type set_map(map_type map) - { - map_type rval = m_map; - m_map = map; - return rval; - } - - map_type get_map() const {return m_map;} - - //Pointer to container (SEQ | CHO) - void* m_container{ nullptr }; - - //Name of the being processed IE - void ie_name(const char* name) { m_errCtx.ie_name(name); } - char const* ie_name() const { return m_errCtx.ie_name(); } - - void container_name(const char* name) { m_errCtx.container_name(name); } - char const* container_name() const { return m_errCtx.container_name(); } - -private: - //Optional or Extension elements' presence bitmap. Used in sequences - map_type m_map{ 0 }; - error_context m_errCtx; - buf_type m_buffer; - alloc_type m_allocator; -}; - -} //namespace per -} //namespace asn diff --git a/e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/per/enumerated.hpp b/e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/per/enumerated.hpp deleted file mode 100755 index c2e8851..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/per/enumerated.hpp +++ /dev/null @@ -1,79 +0,0 @@ -#pragma once -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries - -// Local Includes: Application specific classes, functions, and libraries -#include "asn/per/common.hpp" -#include "asn/per/whole_number.hpp" -#include "asn/per/binary_integer.hpp" - -namespace asn { -namespace per { - -template -struct Enumerated; - -template -struct Enumerated > -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - if (ie.get() > IE::constraint_t::upper_bound) - { - ctx.refErrorCtx().valueRangeError(static_cast(ie.get())); - return; - } - ConstrainedWholeNumber::run(ctx, ie.get()); - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - ie.set(ConstrainedWholeNumber::run(ctx)); - } -}; - -template -struct Enumerated > -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - if (ie.get() <= IE::constraint_t::upper_bound) - { - Tools::bit_accessor::put(0, 1, ctx.refBuffer()); - ConstrainedWholeNumber::run(ctx, ie.get()); - } - else - { - Tools::bit_accessor::put(1, 1, ctx.refBuffer()); - NormallySmallNonnegativeBinaryInteger::run(ie, ctx, ie.get() - IE::constraint_t::upper_bound - 1); - } - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - u8 ext = Tools::bit_accessor::get(1, ctx.refBuffer()); - if (ext) - ie.set(IE::constraint_t::upper_bound + 1 + NormallySmallNonnegativeBinaryInteger::run(ctx)); - else - ie.set(ConstrainedWholeNumber::run(ctx)); - } -}; - -} //namespace per -} //namespace asn diff --git a/e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/per/integer.hpp b/e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/per/integer.hpp deleted file mode 100755 index 7bb93c2..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/per/integer.hpp +++ /dev/null @@ -1,154 +0,0 @@ -#pragma once -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries - -// Local Includes: Application specific classes, functions, and libraries -#include "asn/elements.hpp" -#include "asn/per/common.hpp" -#include "asn/per/binary_integer.hpp" -#include "asn/per/whole_number.hpp" - -namespace asn { -namespace per { - -template -struct Integer; - -template -struct Integer > -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - if(IE::constraint_t::is_extended(ie.get())) - { - ctx.refErrorCtx().valueRangeError(static_cast(ie.get())); - return; - } - ConstrainedWholeNumber::run(ctx, ie.get()); - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - ie.set(ConstrainedWholeNumber::run(ctx)); - } -}; - -template -struct Integer > -{ - //X.691 12.1 - static void inline run(IE const& ie, EncoderCtx& ctx) - { - if (!IE::constraint_t::is_extended(ie.get())) - { - Tools::bit_accessor::put(0, 1, ctx.refBuffer()); - //X.691 12.2 - ConstrainedWholeNumber::run(ctx, ie.get()); - } - else - { - Tools::bit_accessor::put(1, 1, ctx.refBuffer()); - //X.691 12.2.4, 12.2.6, 10.8s - TwosComplementBinaryInteger::run(ie, ctx); - } - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - - u8 ext = Tools::bit_accessor::get(1, ctx.refBuffer()); - if (ext) - TwosComplementBinaryInteger::run(ie, ctx); - else - ie.set(ConstrainedWholeNumber::run(ctx)); - } -}; - -// (X.691 10.7) -template -struct Integer > -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - if(IE::constraint_t::is_extended(ie.get())) - { - ctx.refErrorCtx().valueRangeError(static_cast(ie.get())); - return; - } - NonnegativeBinaryInteger::run(ie.get() - IE::constraint_t::lower_bound, ctx); - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - typename IE::value_type val = 0; - NonnegativeBinaryInteger::run(val, ctx, false); - ie.set(IE::constraint_t::lower_bound + val); - } -}; - -template -struct Integer > -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - if (!IE::constraint_t::is_extended(ie.get())) - { - Tools::bit_accessor::put(0, 1, ctx.refBuffer()); - NonnegativeBinaryInteger::run(ie.get() - IE::constraint_t::lower_bound, ctx); - } - else - { - Tools::bit_accessor::put(1, 1, ctx.refBuffer()); - TwosComplementBinaryInteger::run(ie, ctx); - } - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - u8 ext = Tools::bit_accessor::get(1, ctx.refBuffer()); - - if (ext) - TwosComplementBinaryInteger::run(ie, ctx); - else - { - typename IE::value_type val = 0; - NonnegativeBinaryInteger::run(val, ctx, false); - ie.set(val + IE::constraint_t::lower_bound); - } - } -}; - -/*************************************************************************************** -* Encoding of an unconstrained whole number (X.691 10.8) -***************************************************************************************/ - -template -struct Integer > -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - TwosComplementBinaryInteger::run(ie, ctx); - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - TwosComplementBinaryInteger::run(ie, ctx); - } -}; - -} //namespace per -} //namespace asn - diff --git a/e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/per/length.hpp b/e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/per/length.hpp deleted file mode 100755 index 488a830..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/per/length.hpp +++ /dev/null @@ -1,238 +0,0 @@ -#pragma once -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries -#include - -// Local Includes: Application specific classes, functions, and libraries -#include "asn/per/common.hpp" -#include "asn/per/whole_number.hpp" - -namespace asn { -namespace per { - -/******************************************************************************** -* Encoding of a length determinant (X.691 10.9) -*********************************************************************************/ - -template -struct LengthDeterminant; - -struct LengthDeterminantDefault //Unconstrained length -{ - static u8 bytes_needed(size_t len) - { - if (len <= 127) - return 1; - return 2; - } - - static void run(EncoderCtx& ctx, size_t len) - { - if (len <= 127) - { - Tools::bit_accessor::padByte(ctx.refBuffer()); - ctx.refBuffer().putByte(static_cast(len)); - } - else if (len < 16384) - { - Tools::bit_accessor::padByte(ctx.refBuffer()); - len += 0x8000; - ctx.refBuffer().putByte(static_cast(len >> 8)); - ctx.refBuffer().putByte(static_cast(len)); - } - else - { - //todo: 10.9.3.8.1 for len >= 16K - } - } - static size_t run(DecoderCtx& ctx) - { - size_t rval = 0; - Tools::bit_accessor::padByte(ctx.refBuffer()); - - u8 const* data = ctx.refBuffer().getBytes(1); - if (data) - { - if (*data & 0x80) - { - rval = (*data & 0x7F) << 8; - data = ctx.refBuffer().getBytes(1); - if (data) - rval |= *data; - } - else - rval = *data; - } - return rval; - } -}; - -//10.9.3.3 -template -struct LengthDeterminant> -{ - static void run(EncoderCtx& ctx, size_t len) - { - ConstrainedWholeNumber::run(ctx, len); - } - static size_t inline run(DecoderCtx& ctx, bool extended_len) - { - return ConstrainedWholeNumber::run(ctx); - } -}; -template -struct LengthDeterminant> -{ - static void run(EncoderCtx& ctx, size_t len) - { - if (len > Range::upper_bound || len < Range::lower_bound) - LengthDeterminantDefault::run(ctx, len); - else - ConstrainedWholeNumber::run(ctx, len); - } - static size_t inline run(DecoderCtx& ctx, bool extended_len) - { - if (extended_len) - return LengthDeterminantDefault::run(ctx); - - return ConstrainedWholeNumber::run(ctx); - } -}; - -template -struct LengthDeterminant= 65536) > > -{ - static void run(EncoderCtx& ctx, size_t len) - { - LengthDeterminantDefault::run(ctx, len); - } - static size_t inline run(DecoderCtx& ctx, bool extended_len) - { - return LengthDeterminantDefault::run(ctx); - } -}; - -//10.9.3.4 : for "normally small length". bitmaps, sequence types -template -struct NormallySmallLength; - -template -struct NormallySmallLength > -{ - static_assert(Length > 0, "NormallySmallLength must be > 0"); - - static void run(EncoderCtx& ctx) - { - Tools::bit_accessor::put((u8)(Length - 1), 7, ctx.refBuffer()); - } - static size_t run(DecoderCtx& ctx) - { - u8 ext = Tools::bit_accessor::get(1, ctx.refBuffer()); - if (ext) - return LengthDeterminantDefault::run(ctx); - return Tools::bit_accessor::get(6, ctx.refBuffer()) + 1; - } -}; - -template -struct NormallySmallLength 64)> > -{ - static void run(EncoderCtx& ctx) - { - Tools::bit_accessor::put(1, 1, ctx.refBuffer()); - LengthDeterminantDefault::run(ctx, Length); - } -}; - -/* -* BinaryIntegerLength -*/ - -template -struct NBytes -{ - static constexpr bound_t value = std::log2( N ) / 8 + 1; -}; - -template -struct NBytes > -{ - static constexpr bound_t value = 1; -}; - -template -struct NRange -{ - static constexpr bound_t lower_bound = B1; - static constexpr bound_t upper_bound = B2; -}; - -template -struct NRange > -{ - static constexpr bound_t lower_bound = B2; - static constexpr bound_t upper_bound = B1; -}; - -template -struct BinaryIntegerLength -{ - typedef NRange< - NBytes::value, - NBytes::value - > nrange; - - using boundary_type = typename Range::boundary_type; - static constexpr bool extended = Range::extended; - static constexpr bound_t lower_bound = nrange::lower_bound; - static constexpr bound_t upper_bound = nrange::upper_bound; - - static void run(EncoderCtx& ctx, size_t len) - { - LengthDeterminant::run(ctx, len); - } - static size_t inline run(DecoderCtx& ctx, bool extended_len) - { - return LengthDeterminant::run(ctx, extended_len); - } -}; - -template -struct BinaryIntegerLength> -{ - static void run(EncoderCtx& ctx, size_t len) - { - LengthDeterminantDefault::run(ctx, len); - } - static size_t inline run(DecoderCtx& ctx, bool extended_len) - { - return LengthDeterminantDefault::run(ctx); - } -}; - -} //namespace per -} //namespace asn diff --git a/e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/per/oid.hpp b/e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/per/oid.hpp deleted file mode 100755 index c4f222a..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/per/oid.hpp +++ /dev/null @@ -1,68 +0,0 @@ -#pragma once -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries - -// Local Includes: Application specific classes, functions, and libraries -#include "asn/per/common.hpp" - -namespace asn { -namespace per { - -template -struct Oid -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - size_t len = ie.get().size(); - - if (len > 255) - { - ctx.refErrorCtx().valueError(len, 0, 0); - } - else - { - Tools::bit_accessor::padByte(ctx.refBuffer()); - ctx.refBuffer().putBytes(reinterpret_cast(&len), 1); - ctx.refBuffer().putBytes(ie.get().data(), len); - } - } - - static void inline run(IE& ie, DecoderCtx& ctx) - { - Tools::bit_accessor::padByte(ctx.refBuffer()); - - uint8_t const* data_in = ctx.refBuffer().getBytes(1); // length - - if(data_in) - { - size_t len = *data_in; - data_in = ctx.refBuffer().getBytes(len); - - if (data_in) - { - ie.set(len, data_in); - } - } - } -}; - -} //namespace per -} //namespace asn diff --git a/e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/per/ostring.hpp b/e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/per/ostring.hpp deleted file mode 100755 index 4d601bb..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/per/ostring.hpp +++ /dev/null @@ -1,209 +0,0 @@ -#pragma once -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries - -// Local Includes: Application specific classes, functions, and libraries -#include "asn/per/common.hpp" - -namespace asn { -namespace per { - -template < class IE, class Enable = void> -struct Octetstring; - -//16.8 Default -template -struct OctetstringNoExt -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - bound_t size = ie.get().size(); - LengthDeterminant::run(ctx, size); - Tools::bit_accessor::padByte(ctx.refBuffer()); - ctx.refBuffer().putBytes(ie.get().data(), size); - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - size_t len = LengthDeterminant::run(ctx, false); - Tools::bit_accessor::padByte(ctx.refBuffer()); - u8 const* data_in = ctx.refBuffer().getBytes(len); - - if (data_in) - { - ie.set(len, data_in); - } - - } -}; - -//16.5 Zero length -template -struct OctetstringNoExt > -{ - static void inline run(IE const& ie, EncoderCtx& ctx) {/* do nothing */ } - static void inline run(IE& ie, DecoderCtx& ctx) { ie.setpresent(true); } -}; - -//16.6 Up to two octets, fixed length -template -struct OctetstringNoExt> -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - Tools::bit_accessor::put(static_cast(ie.get().data()[0]), 8, ctx.refBuffer()); - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - u8 data_in = Tools::bit_accessor::get(8, ctx.refBuffer()); - u8* data_out = ctx.refAllocator().alloc_bytes(1); - if (data_out) { - data_out[0] = data_in; - ie.set(1, data_out); - } - else - ctx.refErrorCtx().allocatorNoMem(0, 1); - } -}; - -template -struct OctetstringNoExt> -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - Tools::bit_accessor::put(static_cast(ie.get().data()[0]), 8, ctx.refBuffer()); - Tools::bit_accessor::put(static_cast(ie.get().data()[1]), 8, ctx.refBuffer()); - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - u8 data_in[2]; - data_in[0] = Tools::bit_accessor::get(8, ctx.refBuffer()); - data_in[1] = Tools::bit_accessor::get(8, ctx.refBuffer()); - u8* data_out = ctx.refAllocator().alloc_bytes(sizeof(data_in)); - if (data_out) { - data_out[0] = data_in[0]; - data_out[1] = data_in[1]; - ie.set(sizeof(data_in), data_out); - } - else - ctx.refErrorCtx().allocatorNoMem(0, sizeof(data_in)); - } -}; - -//16.7 More than 2 octets, up to 64K, fixed length -template -struct OctetstringNoExt 2)) ->> -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - Tools::bit_accessor::padByte(ctx.refBuffer()); - ctx.refBuffer().putBytes(ie.get().data(), ie.get().size()); - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - Tools::bit_accessor::padByte(ctx.refBuffer()); - const size_t len = (size_t)IE::constraint_t::upper_bound; - u8 const* data_in = ctx.refBuffer().getBytes(len); - if (data_in) - { - ie.set(len, data_in); - } - } -}; - -/**************************************************/ - -//16.3 : Extension present -template -struct Octetstring > -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - bound_t size = ie.get().size(); - if (size <= IE::constraint_t::upper_bound && size >= IE::constraint_t::lower_bound) - { - Tools::bit_accessor::put(0, 1, ctx.refBuffer()); - OctetstringNoExt::run(ie, ctx); - } - else - { - Tools::bit_accessor::put(1, 1, ctx.refBuffer()); - Tools::bit_accessor::padByte(ctx.refBuffer()); - LengthDeterminant::run(ctx, size); - Tools::bit_accessor::padByte(ctx.refBuffer()); - ctx.refBuffer().putBytes(ie.get().data(), size); - } - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - u8 ext = Tools::bit_accessor::get(1, ctx.refBuffer()); - if (ext) - { - Tools::bit_accessor::padByte(ctx.refBuffer()); - size_t len = LengthDeterminant::run(ctx, true); - Tools::bit_accessor::padByte(ctx.refBuffer()); - u8 const* data_in = ctx.refBuffer().getBytes(len); - if (data_in) - { - ie.set(len, data_in); - } - } - else - OctetstringNoExt::run(ie, ctx); - } -}; - -//16.4 : No extension -template -struct Octetstring > -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - if ( ie.get().size() > size_t(IE::constraint_t::upper_bound) || - (IE::constraint_t::lower_bound >= 0 && ie.get().size() < size_t(IE::constraint_t::lower_bound))) - { - ctx.refErrorCtx().sizeRangeError(ie.get().size(), size_t(IE::constraint_t::lower_bound), - size_t(IE::constraint_t::upper_bound)); - } - else - { - OctetstringNoExt::run(ie, ctx); - } - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - OctetstringNoExt::run(ie, ctx); - if ( ie.get().size() > size_t(IE::constraint_t::upper_bound) || - (IE::constraint_t::lower_bound >= 0 && ie.get().size() < size_t(IE::constraint_t::lower_bound))) - { - ctx.refErrorCtx().sizeRangeError(ie.get().size(), size_t(IE::constraint_t::lower_bound), - size_t(IE::constraint_t::upper_bound)); - } - } -}; - -} //namespace per -} //namespace asn diff --git a/e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/per/sequence.hpp b/e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/per/sequence.hpp deleted file mode 100755 index e533e80..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/per/sequence.hpp +++ /dev/null @@ -1,568 +0,0 @@ -#pragma once -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries - -// Local Includes: Application specific classes, functions, and libraries -#include "asn/per/common.hpp" -#include "asn/per/visitor.hpp" - -namespace asn { -namespace per { - -/****************************************************************** - * Adapter - *****************************************************************/ -template -struct Adapter -{ - static void inline run(IE const& ie, EncoderCtx& ctx, Container const& cont) - { - Element::run(ie, ctx); - } - - static void inline run(IE& ie, DecoderCtx& ctx, Container const& cont) - { - Element::run(ie, ctx); - } -}; -template -struct Adapter> -{ - static void inline run(IE const& ie, EncoderCtx& ctx, Container const& cont) - { - VisitorEncoder v(ctx); - bool rv = ie.encode(v, cont); - if(!rv && static_cast(ctx)) - { - ctx.refErrorCtx().errorNoObject(Container::name()); - } - } - - static void inline run(IE& ie, DecoderCtx& ctx, Container const& cont) - { - VisitorDecoder v(ctx); - bool rv = ie.decode(v, cont); - if(!rv && static_cast(ctx)) - { - ctx.refErrorCtx().errorNoObject(Container::name()); - } - } -}; -template -struct Adapter > -{ - static void inline run(IE const& ie, EncoderCtx& ctx, Container const& cont) - { - OpenTypeVisitorEncoder v(ctx); - bool rv = ie.encode(v, cont); - if(!rv && static_cast(ctx)) - { - ctx.refErrorCtx().errorNoObject(Container::name()); - } - } - - static void inline run(IE& ie, DecoderCtx& ctx, Container const& cont) - { - OpenTypeVisitorDecoder v(ctx); - bool rv = ie.decode(v, cont); - if(!rv && static_cast(ctx)) - { - ctx.refErrorCtx().errorNoObject(Container::name()); - } - if(ie.is_unknown()) //skip the unknown Open Type - { - size_t size = LengthDeterminantDefault::run(ctx); - DecoderCtx::buf_type& buffer = ctx.refBuffer(); - if (buffer.getBytesLeft() < size) - ctx.refErrorCtx().lengthErrorBytes(buffer.getBytesLeft(), size); - else - buffer.advance(size); - } - } -}; - -/****************************************************************** - * RootEncoder - *****************************************************************/ -template -struct RootEncoder -{ - RootEncoder(EncoderCtx& ctx, Container const& cont) : m_ctx(ctx), m_cont(cont) {} - - template - bool operator() (IE const& ie) const - { - if(!IE::extension) - { - if(IE::optional && !ie.is_valid()) - return static_cast(m_ctx); - Adapter::run(ie, m_ctx, m_cont); - } - return static_cast(m_ctx); - } - EncoderCtx& m_ctx; - Container const& m_cont; -}; - -/****************************************************************** - * RootDecoder - *****************************************************************/ -template -struct RootDecoder -{ - RootDecoder(DecoderCtx& ctx, Container const& cont) : m_ctx(ctx), m_cont(cont) {} - - template - bool operator() (IE& ie) const - { - if(!IE::extension) - { - if(IE::optional) - { - if(m_ctx.map_elm()) - { - ie.setpresent(true); - Adapter::run(ie, m_ctx, m_cont); - } - else - ie.setpresent(false); - } - else - { - Adapter::run(ie, m_ctx, m_cont); - } - } - return static_cast(m_ctx); - } - DecoderCtx& m_ctx; - Container const& m_cont; -}; - -/****************************************************************** - * ExtEncoder - *****************************************************************/ -template -struct ExtEncoder -{ - explicit ExtEncoder(EncoderCtx& ctx, Container const& cont) : m_ctx(ctx), m_cont(cont) {} - - template - bool operator() (IE const& ie) const - { - if(!IE::extension) - return static_cast(m_ctx); - - if(IE::optional && !ie.is_valid()) - return static_cast(m_ctx); - - size_t reserved_size = 1; //1 byte length is most likely - Tools::bit_accessor::padByte(m_ctx.refBuffer()); - - if (m_ctx.refBuffer().getBytesLeft()) - { - EncoderCtx::buf_type::pointer p = m_ctx.refBuffer().advance(reserved_size); - EncoderCtx::buf_type::pointer start = p + reserved_size; - - Adapter::run(ie, m_ctx, m_cont); - - if (m_ctx) - { - Tools::bit_accessor::padByte(m_ctx.refBuffer()); - EncoderCtx::buf_type::pointer p_new = m_ctx.refBuffer().begin(); - size_t size = p_new - start; - size_t needed = LengthDeterminantDefault::bytes_needed(size) - reserved_size; - if (needed) //1 byte is not enough for the length determinant. it is hardly possible - { - if (m_ctx.refBuffer().getBytesLeft() < needed) { - m_ctx.refErrorCtx().lengthErrorBytes(m_ctx.refBuffer().getBytesLeft(), needed); - return false; - } - memmove(start + needed, start, size); - p_new += needed; - } - m_ctx.refBuffer().set_begin(p, 0); - LengthDeterminantDefault::run(m_ctx, size); - if (m_ctx) { - m_ctx.refBuffer().set_begin(p_new, 0); - Tools::bit_accessor::padByte(m_ctx.refBuffer()); - } - } - } - else - { - m_ctx.refErrorCtx().lengthErrorBytes(m_ctx.refBuffer().getBytesLeft(), reserved_size); - return false; - } - return static_cast(m_ctx); - } - EncoderCtx& m_ctx; - Container const& m_cont; -}; - -/****************************************************************** - * ExtDecoder - *****************************************************************/ -template -struct ExtDecoder -{ - explicit ExtDecoder(DecoderCtx& ctx, Container const& cont) : m_ctx(ctx), m_cont(cont) {} - - template - bool operator() (IE& ie) const - { - if(!IE::extension) - return static_cast(m_ctx); - - if (m_ctx.map_elm()) - { - ie.setpresent(true); - size_t size = LengthDeterminantDefault::run(m_ctx); - DecoderCtx::buf_type& buffer = m_ctx.refBuffer(); - if (buffer.getBytesLeft() < size) - { - m_ctx.refErrorCtx().lengthErrorBytes(buffer.getBytesLeft(), size); - return false; - } - DecoderCtx::buf_type::pointer end = buffer.end(); - buffer.set_end(buffer.begin() + size); - Adapter::run(ie, m_ctx, m_cont); - Tools::bit_accessor::padByte(m_ctx.refBuffer()); - buffer.set_end(end); - } - else - { - ie.setpresent(false); - } - - return static_cast(m_ctx); - } - DecoderCtx& m_ctx; - Container const& m_cont; -}; - -/****************************************************************** - * SeqMap - *****************************************************************/ -template -struct SeqMap; - -/* -template -struct SeqMap 8) > > -{ - static void inline run(EncoderCtx& ctx, size_t val) - { - u8 k = IE::num_opt_entries / 8; // num of full bytes in a seq map mask - u8 fb_bits = IE::num_opt_entries % 8; // num of first byte bits (without padding) - - if (fb_bits) { - // Put a part of a first byte (without padding, only seq map own bits) - Tools::bit_accessor::put((u8)(val >> 8*k), fb_bits, ctx.refBuffer()); - } - - // Put other bytes (full bytes) - for (int i = (k-1); i >= 0; i--) { - Tools::bit_accessor::put((u8)(val >> 8*i), 8, ctx.refBuffer()); - } - } - - static DecoderCtx::map_type inline run(DecoderCtx& ctx) - { - uint num_opts = IE::num_opt_entries; - u64 res = 0; - u8 k = 1; - u8 lb_bits = IE::num_opt_entries % 8; // num of last byte bits (without padding) - - while (num_opts >= 8) { - size_t shift = sizeof(DecoderCtx::map_type) * CHAR_BIT - 8*k; - - DecoderCtx::map_type rval = Tools::bit_accessor::get(8, ctx.refBuffer()); - - rval = rval << shift; - res |= rval; - - k++; - num_opts -= 8; - } - - if (lb_bits > 0) { - // (8 - lb_bits) - padding in a last byte - size_t shift = sizeof(DecoderCtx::map_type) * CHAR_BIT - 8*k + 8 - lb_bits; - - DecoderCtx::map_type rval = Tools::bit_accessor::get(lb_bits, ctx.refBuffer()); - - rval = rval << shift; - res |= rval; - } - - return res; - } -} -; -*/ - -template -struct SeqMap > //todo: to add code for more than 8 optional elements -{ - static void inline run(EncoderCtx& ctx, size_t val) - { - Tools::bit_accessor::put((u8)val, IE::num_opt_entries, ctx.refBuffer()); - } - static DecoderCtx::map_type inline run(DecoderCtx& ctx) - { - size_t shift = sizeof(DecoderCtx::map_type) * CHAR_BIT - IE::num_opt_entries; - DecoderCtx::map_type rval = Tools::bit_accessor::get(IE::num_opt_entries, ctx.refBuffer()); - rval = rval << shift; - return rval; - } -}; - -/****************************************************************** - * SeqExtMap - *****************************************************************/ -template -struct SeqExtMap -{ - static void inline run(EncoderCtx& ctx, size_t val) {} - static DecoderCtx::map_type inline run(DecoderCtx& ctx) - { - size_t len = NormallySmallLength<1>::run(ctx); - size_t shift = sizeof(DecoderCtx::map_type) * CHAR_BIT - len; - u8 tmp; - DecoderCtx::map_type rval{ 0 }; - u8 val; - - while (len) { - tmp = len > 8 ? 8 : (u8)len; - val = Tools::bit_accessor::get(tmp, ctx.refBuffer()); - rval = rval << tmp; - rval |= val; - len -= tmp; - } - rval = rval << shift; - return rval; - } -}; - -template -struct SeqExtMap 0)) > > -{ - static void inline run(EncoderCtx& ctx, size_t val) - { - NormallySmallLength::run(ctx); - Tools::bit_accessor::put((u8)val, NumExtEntries, ctx.refBuffer()); - } -}; - -template -struct SeqExtMap 8) > > -{ - static void inline run(EncoderCtx& ctx, size_t val) - { - NormallySmallLength::run(ctx); - - size_t len = NumExtEntries; - size_t tmp; - - while (len) { - tmp = len > 8 ? 8 : len; - Tools::bit_accessor::put((u8)val, tmp, ctx.refBuffer()); - val = val >> tmp; - len -= tmp; - } - } -}; - -/****************************************************************** - * SeqMapBuilder - *****************************************************************/ -struct SeqMapBuilder -{ - SeqMapBuilder(uint64_t& map) : m_map(map) {} - - template - bool operator()(IE const& ie) - { - if(!IE::extension && IE::optional) - { - m_map = m_map << 1; - if(ie.is_valid()) - m_map |= 1; - } - return true; - } - uint64_t& m_map; -}; - -/****************************************************************** - * SeqExtMapBuilder - *****************************************************************/ -struct SeqExtMapBuilder -{ - SeqExtMapBuilder(uint64_t& map) : m_map(map) {} - - template - bool operator()(IE const& ie) - { - if(IE::extension) - { - m_map = m_map << 1; - if(!IE::optional || (IE::optional && ie.is_valid())) - m_map |= 1; - } - return true; - } - uint64_t& m_map; -}; - -/****************************************************************** - * SeqNoExtDefault - *****************************************************************/ -// Default (No OPT/DEF present within the extension root) -template -struct SeqNoExtDefault -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - RootEncoder ve(ctx, ie); - ie.encode(ve); - } - static void inline run(IE& ie, DecoderCtx& ctx, DecoderCtx::map_type map = 0) - { - RootDecoder ve(ctx, ie); - - DecoderCtx::map_type old_map = ctx.set_map(map); - ie.decode(ve); - ctx.set_map(old_map); - } -}; - -/****************************************************************** - * SeqNoExt - *****************************************************************/ -// Default (No OPT/DEF present within the extension root) -template -struct SeqNoExt -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - SeqNoExtDefault::run(ie, ctx); - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - SeqNoExtDefault::run(ie, ctx); - } -}; - -//18.2 OPT/DEF present within the extension root -template -struct SeqNoExt 0) > > -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - uint64_t map = 0; - SeqMapBuilder mb(map); - ie.encode(mb); - SeqMap::run(ctx, map); - SeqNoExtDefault::run(ie, ctx); - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - SeqNoExtDefault::run(ie, ctx, SeqMap::run(ctx)); - } -}; - -/****************************************************************** - * Seq - *****************************************************************/ -template -struct Seq; - -template -struct Seq > -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - uint64_t map = 0; - SeqExtMapBuilder emb(map); - ie.encode(emb); - - if (map) { - Tools::bit_accessor::put(1, 1, ctx.refBuffer()); - SeqNoExt::run(ie, ctx); - SeqExtMap::run(ctx, map); - ExtEncoder ove(ctx, ie); - ie.encode(ove); - } - else { - Tools::bit_accessor::put(0, 1, ctx.refBuffer()); - SeqNoExt::run(ie, ctx); - } - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - u8 ext = Tools::bit_accessor::get(1, ctx.refBuffer()); - if (ext) - { - SeqNoExt::run(ie, ctx); - - auto old_map = ctx.set_map(SeqExtMap::run(ctx)); // we do not know how many exts can be received - { - ExtDecoder ove(ctx, ie); - ie.decode(ove); - - auto& buffer = ctx.refBuffer(); - while(ctx.get_map()) - { - if(ctx.map_elm()) //skip unknown extensions - { - size_t size = LengthDeterminantDefault::run(ctx); - if (buffer.getBytesLeft() < size) - { - ctx.refErrorCtx().lengthErrorBytes(buffer.getBytesLeft(), size); - break; - } - buffer.advance(size); - } - } - } - ctx.set_map(old_map); - } - else - SeqNoExt::run(ie, ctx); - } -}; - -template -struct Seq > -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - SeqNoExt::run(ie, ctx); - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - SeqNoExt::run(ie, ctx); - } -}; - -} //namespace per -} //namespace asn diff --git a/e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/per/sequence_of.hpp b/e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/per/sequence_of.hpp deleted file mode 100755 index d4e21a9..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/per/sequence_of.hpp +++ /dev/null @@ -1,156 +0,0 @@ -#pragma once -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries - -// Local Includes: Application specific classes, functions, and libraries -#include "asn/per/common.hpp" - -namespace asn { -namespace per { - -template -struct SequenceOf; - -//19.6 Default -template -struct SequenceOfNoExt -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - LengthDeterminant::run(ctx, ie.size()); - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - size_t len = LengthDeterminant::run(ctx, false); - for (size_t i = 0; i < len; ++i) - { - u8* data = ctx.refAllocator().alloc_bytes(sizeof(typename IE::value_type)); - if (data) - { - typename IE::value_type * v = new (data) typename IE::value_type; - v->clear(); - ie.push_back(*v); - } - else - { - ctx.refErrorCtx().allocatorNoMem(0, sizeof(typename IE::value_type)); - break; - } - } - } -}; - -//16.6 -template -struct SequenceOfNoExt> -{ - static void inline run(IE const& ie, EncoderCtx& ctx) {/*do nothing*/ } - static void inline run(IE& ie, DecoderCtx& ctx) - { - for (size_t i = 0; i < IE::constraint_t::upper_bound; ++i) - { - u8* data = ctx.refAllocator().alloc_bytes(sizeof(typename IE::value_type)); - if (data) - { - typename IE::value_type * v = new (data) typename IE::value_type; - v->clear(); - ie.push_back(*v); - } - else - { - ctx.refErrorCtx().allocatorNoMem(0, sizeof(typename IE::value_type)); - break; - } - } - } -}; - -/**************************************************/ - -//19.4 Extension present -template -struct SequenceOf > -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - if (ie.size() <= IE::constraint_t::upper_bound && ie.size() >= IE::constraint_t::lower_bound) - { - Tools::bit_accessor::put(0, 1, ctx.refBuffer()); - SequenceOfNoExt::run(ie, ctx); - } - else - { - Tools::bit_accessor::put(1, 1, ctx.refBuffer()); - LengthDeterminant::run(ctx, ie.size()); - } - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - u8 ext = Tools::bit_accessor::get(1, ctx.refBuffer()); - if (ext) - { - size_t len = LengthDeterminant::run(ctx, true); - for (size_t i = 0; i < len; ++i) - { - u8* data = ctx.refAllocator().alloc_bytes(sizeof(typename IE::value_type)); - if (data) - { - typename IE::value_type * v = new (data) typename IE::value_type; - //v->clear(); - ie.push_back(*v); - } - else - { - ctx.refErrorCtx().allocatorNoMem(0, sizeof(typename IE::value_type)); - break; - } - } - } - else - SequenceOfNoExt::run(ie, ctx); - } -}; - -//19.5-6 No extension -template -struct SequenceOf > -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - if (IE::constraint_t::lower_bound >= 0 && ie.size() < size_t(IE::constraint_t::lower_bound)) - { - ctx.refErrorCtx().sizeRangeError(ie.size(), size_t(IE::constraint_t::lower_bound)); - } - else - { - SequenceOfNoExt::run(ie, ctx); - } - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - SequenceOfNoExt::run(ie, ctx); - } -}; - -} //namespace per -} //namespace asn diff --git a/e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/per/visitor.hpp b/e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/per/visitor.hpp deleted file mode 100755 index f379044..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/per/visitor.hpp +++ /dev/null @@ -1,141 +0,0 @@ -#pragma once -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries - -// Local Includes: Application specific classes, functions, and libraries -#include "asn/per/common.hpp" - -namespace asn { -namespace per { - -/******************************************************************************** -VisitorEncoder -*********************************************************************************/ -struct VisitorEncoder -{ - explicit VisitorEncoder(EncoderCtx& ctx) : m_ctx(ctx) {} - - template - bool operator() (IE const& ie) const - { - Element::run(ie, m_ctx); - return static_cast(m_ctx); - } - EncoderCtx& m_ctx; -}; - -/******************************************************************************** -VisitorDecoder -*********************************************************************************/ -struct VisitorDecoder -{ - VisitorDecoder(DecoderCtx& ctx) : m_ctx(ctx) {} - - template - bool operator() (IE& ie) const - { - Element::run(ie, m_ctx); - return static_cast(m_ctx); - } - DecoderCtx& m_ctx; -}; - -/*************************************************************************************** -* Open Type Visitor // Encode Open Type (10.2) -***************************************************************************************/ -struct OpenTypeVisitorEncoder -{ - explicit OpenTypeVisitorEncoder(EncoderCtx& ctx) : m_ctx(ctx) {} - - template - bool operator() (IE const& ie) const - { - size_t reserved_size = 1; //1 byte length is most likely - Tools::bit_accessor::padByte(m_ctx.refBuffer()); - - if (m_ctx.refBuffer().getBytesLeft()) - { - EncoderCtx::buf_type::pointer p = m_ctx.refBuffer().advance(reserved_size); - EncoderCtx::buf_type::pointer start = p + reserved_size; - - Element::run(ie, m_ctx); - - if (m_ctx) - { - Tools::bit_accessor::padByte(m_ctx.refBuffer()); - EncoderCtx::buf_type::pointer p_new = m_ctx.refBuffer().begin(); - size_t size = p_new - start; - size_t needed = LengthDeterminantDefault::bytes_needed(size) - reserved_size; - if (needed) //1 byte is not enough for the length determinant. it is hardly possible - { - if (m_ctx.refBuffer().getBytesLeft() < needed) { - m_ctx.refErrorCtx().lengthErrorBytes(m_ctx.refBuffer().getBytesLeft(), needed); - return false; - } - memmove(start + needed, start, size); - p_new += needed; - } - m_ctx.refBuffer().set_begin(p, 0); - LengthDeterminantDefault::run(m_ctx, size); - if (m_ctx) { - m_ctx.refBuffer().set_begin(p_new, 0); - Tools::bit_accessor::padByte(m_ctx.refBuffer()); - } - } - } - else - { - m_ctx.refErrorCtx().lengthErrorBytes(m_ctx.refBuffer().getBytesLeft(), reserved_size); - } - return static_cast(m_ctx); - } - EncoderCtx& m_ctx; -}; - -/*************************************************************************************** -* Open Type Visitor // Decode Open Type (10.2) -***************************************************************************************/ -struct OpenTypeVisitorDecoder -{ - explicit OpenTypeVisitorDecoder(DecoderCtx& ctx) : m_ctx(ctx) {} - - template - bool operator() (IE& ie) const - { - size_t size = LengthDeterminantDefault::run(m_ctx); - DecoderCtx::buf_type& buffer = m_ctx.refBuffer(); - if (buffer.getBytesLeft() < size) - { - m_ctx.refErrorCtx().lengthErrorBytes(buffer.getBytesLeft(), size); - return false; - } - DecoderCtx::buf_type::pointer end = buffer.end(); - buffer.set_end(buffer.begin() + size); - Element::run(ie, m_ctx); - buffer.set_end(end); - - return static_cast(m_ctx); - } - DecoderCtx& m_ctx; -}; - -} //namespace per -} //namespace asn diff --git a/e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/per/whole_number.hpp b/e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/per/whole_number.hpp deleted file mode 100755 index c614998..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/per/whole_number.hpp +++ /dev/null @@ -1,147 +0,0 @@ -#pragma once -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries -#include -#include - -// Local Includes: Application specific classes, functions, and libraries -#include "asn/per/common.hpp" -#include "asn/per/binary_integer.hpp" - -namespace asn { -namespace per { - -/*************************************************************************************** -* Encoding of a constrained whole number (X.691 10.5) -***************************************************************************************/ - -template -struct length_determinant; - -template -struct length_determinant > { static constexpr bound_t value = 0; }; - -template -struct length_determinant > { static constexpr bound_t value = 1; }; - -template -struct length_determinant 1) > > { static constexpr bound_t value = boost::static_log2<(R - 1)>::value + 1; }; - -/*************************************************************************************** -***************************************************************************************/ - -template -struct ConstrainedWholeNumber; - -//Bit-field case -template -struct ConstrainedWholeNumber > -{ - //non-negative-binary-integer X.691 10.5 - static void inline run(EncoderCtx& ctx, const V& val) - { - Tools::bit_accessor::put(static_cast(val - Range::lower_bound), - length_determinant<(Range::upper_bound - Range::lower_bound + 1)>::value, - ctx.refBuffer()); - } - static V inline run(DecoderCtx& ctx) - { - return Range::lower_bound + Tools::bit_accessor::get( - length_determinant<(Range::upper_bound - Range::lower_bound + 1)>::value, - ctx.refBuffer()); - } -}; - -//One octet case -template -struct ConstrainedWholeNumber > -{ - //non-negative-binary-integer X.691 10.5 - static void inline run(EncoderCtx& ctx, const V& val) - { - Tools::bit_accessor::padByte(ctx.refBuffer()); - ctx.refBuffer().putByte(static_cast(val - Range::lower_bound)); - } - static V inline run(DecoderCtx& ctx) - { - V rval = 0; - Tools::bit_accessor::padByte(ctx.refBuffer()); - u8 const* data = ctx.refBuffer().getBytes(1); - if (data) - rval = Range::lower_bound + data[0]; - return rval; - } -}; - -//Two octets case -template -struct ConstrainedWholeNumber (Range::lower_bound + 255)) && (Range::upper_bound <= (Range::lower_bound + 65535))> > -{ - //non-negative-binary-integer X.691 10.5 - static void inline run(EncoderCtx& ctx, const V& v) - { - u64 val = static_cast(v - Range::lower_bound); - Tools::bit_accessor::padByte(ctx.refBuffer()); - ctx.refBuffer().putByte((u8)(val >> 8)); - ctx.refBuffer().putByte((u8)val); - } - static V inline run(DecoderCtx& ctx) - { - V rval = 0; - Tools::bit_accessor::padByte(ctx.refBuffer()); - u8 const* data = ctx.refBuffer().getBytes(2); - if (data) { - rval = data[0]; - rval = rval << 8; - rval |= data[1]; - rval += Range::lower_bound; - } - return rval; - } -}; - -//Indefinite case -template -struct ConstrainedWholeNumber Range::lower_bound + 65535) > > -{ - struct NormalizedValueRange - { - using boundary_type = typename Range::boundary_type; - static constexpr bool extended = Range::extended; - static constexpr boundary_type lower_bound = 0; - static constexpr boundary_type upper_bound = Range::upper_bound - Range::lower_bound; - }; - - //non-negative-binary-integer X.691 10.5 - static void inline run(EncoderCtx& ctx, const V& val) - { - NonnegativeBinaryInteger::run(val - Range::lower_bound, ctx); - } - static V inline run(DecoderCtx& ctx) - { - V rval = 0; - NonnegativeBinaryInteger::run(rval, ctx, false); - return rval + Range::lower_bound; - } -}; - -} //namespace per -} //namespace asn diff --git a/e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/printer.hpp b/e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/printer.hpp deleted file mode 100755 index b21eaef..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/printer.hpp +++ /dev/null @@ -1,338 +0,0 @@ -#pragma once - -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries -#include -#include - -// Local Includes: Application specific classes, functions, and libraries -#include "asn/elements.hpp" - -namespace asn{ - -/******************************************************************************** -Utility -**********************************S***********************************************/ -inline void skip_row(std::ostream* str, size_t row_shift) - //{*str << std::string(row_shift, ' ');} -{ - std::string s(row_shift, ' '); - str->write(s.data(), s.size()); -} - -inline void print_hex(std::ostream* str, size_t size, const uint8_t* data, size_t row_shift) -{ - *str << std::setfill('0') << std::hex << std::noshowbase; - for (size_t i = 0; i < size; ++i) - { - if (i && (0x00 == (i & 0x0f))) { skip_row(str, row_shift); } - *str << std::setw(2) << (int)data[i] << " "; - if (0x0f == (i & 0x0f)) { *str << '\n'; } - } -} - -/******************************************************************************** - -Print - -*********************************************************************************/ - - -/******************************************************************************** -default implementation for IE -*********************************************************************************/ -template -struct Print; - -template -void print(IE const& ie, std::ostream& out, size_t row_shift) -{ - Print::run(ie, &out, row_shift); -} - -template -std::string get_printed(IE const& ie, size_t row_shift = 0) -{ - std::stringstream out; - print(ie, out, row_shift); - return out.str(); -} - - -/******************************************************************************** -VisitorPrinter -*********************************************************************************/ -struct VisitorPrinter -{ - VisitorPrinter(std::ostream* str, size_t row_shift) : m_pStream(str), m_RowShift(row_shift) {} - - template - bool operator() (IE & ie) - { - Print::run(ie, m_pStream, m_RowShift); - return true; - } - - std::ostream* m_pStream; - size_t m_RowShift; -}; - -/****************************************************************** - * PrinterAdapter - *****************************************************************/ -template -struct PrinterAdapter -{ - static void inline run(IE const& ie, std::ostream* str, size_t row_shift, Container const& cont) - { - Print::run(ie, str, row_shift); - } -}; -template -struct PrinterAdapter> -{ - static void inline run(IE const& ie, std::ostream* str, size_t row_shift, Container const& cont) - { - VisitorPrinter vp(str, row_shift); - ie.encode(vp, cont); - } -}; -template -struct PrinterAdapter > -{ - static void inline run(IE const& ie, std::ostream* str, size_t row_shift, Container const& cont) - { - VisitorPrinter vp(str, row_shift); - ie.encode(vp, cont); - } -}; - -/******************************************************************************** -SeqVisitorPrinter -*********************************************************************************/ -template -struct SeqVisitorPrinter -{ - SeqVisitorPrinter(Container const& cont, std::ostream* str, size_t row_shift) : m_pStream(str), m_RowShift(row_shift), m_cont(cont) {} - - template - bool operator() (IE & ie) - { - if(!IE::optional || ie.is_valid()) - PrinterAdapter::run(ie, m_pStream, m_RowShift, m_cont); - return true; - } - - std::ostream* m_pStream; - size_t m_RowShift; - Container const& m_cont; -}; - - -/******************************************************************************** -T_NULL -*********************************************************************************/ - -template -struct Print -{ - static void inline run(IE const& ie, std::ostream* str, size_t row_shift) - { - skip_row(str, row_shift); - *str << IE::name() << std::endl; - } -}; - -/******************************************************************************** -T_BOOLEAN -*********************************************************************************/ -template -struct Print -{ - static void inline run(IE const& ie, std::ostream* str, size_t row_shift) - { - skip_row(str, row_shift); - *str << IE::name() << " = " << (ie.get() ? "true" : "false")<< std::endl; - } -}; - -/******************************************************************************** -T_INTEGER -*********************************************************************************/ -template -struct Print -{ - static void inline run(IE const& ie, std::ostream* str, size_t row_shift) - { - skip_row(str, row_shift); - *str << IE::name() << " = " << std::hex << std::showbase << (size_t)ie.get() << std::endl; - } -}; - -/******************************************************************************** -T_ENUMERATED -*********************************************************************************/ -template -struct Print -{ - static void inline run(IE const& ie, std::ostream* str, size_t row_shift) - { - skip_row(str, row_shift); - *str << IE::name() << " = " << std::hex << std::showbase << (size_t)ie.get() << std::endl; - } -}; - -/******************************************************************************** -T_BITSTRING -*********************************************************************************/ -template -struct Print -{ - static void inline run(IE const& ie, std::ostream* str, size_t row_shift) - { - skip_row(str, row_shift); - auto& val = ie.get_buffer(); - *str << IE::name() << " = "; - - print_hex(str, val.size() - 1, val.data(), row_shift + strlen(IE::name()) + 3); - - size_t i = val.size() - 1; - uint8_t c = val.data()[i]; - uint8_t b = val.bitqty() % 8; - if (b != 0) c = c << (8 - b); - - if (i && (0x00 == (i & 0x0f))) { skip_row(str, row_shift); } - *str << std::setw(2) << (int)c; - - *str << " (" << std::dec << val.bitqty() << " bits)" << std::endl; - - } -}; - -/******************************************************************************** -T_OCTETSTRING -*********************************************************************************/ -template -struct Print -{ - static void inline run(IE const& ie, std::ostream* str, size_t row_shift) - { - skip_row(str, row_shift); - *str << IE::name() << " = "; - auto & val = ie.get(); - print_hex(str, val.size(), val.data(), row_shift + strlen(IE::name()) + 3); - *str << std::endl; - } -}; - -/******************************************************************************** -T_SEQUENCE -*********************************************************************************/ -template -struct Print -{ - static void inline run(IE const& ie, std::ostream* str, size_t row_shift) - { - skip_row(str, row_shift); - *str << IE::name() << std::endl; - SeqVisitorPrinter vp(ie, str, row_shift + 1); - ie.encode(vp); - } -}; - -/******************************************************************************** -T_SET -*********************************************************************************/ -template -struct Print -{ - static void inline run(IE const& ie, std::ostream* str, size_t row_shift) - { - skip_row(str, row_shift); - *str << IE::name() << std::endl; - SeqVisitorPrinter vp(ie, str, row_shift + 1); - ie.encode(vp); - } -}; - - -/******************************************************************************** -T_CHOICE -*********************************************************************************/ -template -struct Print -{ - static void inline run(IE const& ie, std::ostream* str, size_t row_shift) - { - VisitorPrinter vp(str, row_shift+1); - skip_row(str, row_shift); *str << IE::name() << ":\n"; - ie.encode(vp); - } -}; - -/******************************************************************************** -T_SEQUENCE_OF -*********************************************************************************/ -template -struct Print -{ - static void inline run(IE const& ie, std::ostream* str, size_t row_shift) - { - skip_row(str, row_shift); *str << IE::name() << ":\n"; - ++row_shift; - for (auto& elem : ie) - { - Print::run(elem, str, row_shift); - } - } -}; - -/******************************************************************************** -T_SET_OF -*********************************************************************************/ -template -struct Print -{ - static void inline run(IE const& ie, std::ostream* str, size_t row_shift) - { - skip_row(str, row_shift); *str << IE::name() << ":\n"; - ++row_shift; - for (auto& elem : ie) - { - Print::run(elem, str, row_shift); - } - } -}; - -/******************************************************************************** -T_OBJECTIDENTIFIER -*********************************************************************************/ -template -struct Print -{ - static void inline run(IE const& ie, std::ostream* str, size_t row_shift) - { - skip_row(str, row_shift); - *str << IE::name() << std::endl; - } -}; - -} //namespace asn diff --git a/e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/type_defs.h b/e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/type_defs.h deleted file mode 100755 index e7cc539..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/type_defs.h +++ /dev/null @@ -1,36 +0,0 @@ -#pragma once -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -*******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries -#include - -// Platform Includes: Platform specific classes, functions, and libraries - -// Local Includes: Application specific classes, functions, and libraries - -typedef uint8_t u8; -typedef uint16_t u16; -typedef uint32_t u32; -typedef uint64_t u64; - -typedef int8_t i8; -typedef int16_t i16; -typedef int32_t i32; -typedef int64_t i64; diff --git a/e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/utility.hpp b/e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/utility.hpp deleted file mode 100755 index ae1ad74..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/utility.hpp +++ /dev/null @@ -1,88 +0,0 @@ -#pragma once - -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries -#include -#include - -// Local Includes: Application specific classes, functions, and libraries - -namespace asn -{ - -struct allocator -{ - allocator() = default; - - allocator(void* data, size_t size) { reset(data, size); } - - template - explicit allocator(T (&buf)[SZ]) : allocator(buf, SZ * sizeof(T)) { } - - void reset(void* data, size_t size) - { - std::size_t space = size; - m_begin = static_cast(std::align(alignment, size, data, space)); - m_end = m_begin ? m_begin + space : nullptr; - m_current = m_begin; - m_ref_counter = 0; - } - - uint8_t* alloc_bytes(std::size_t size) - { - std::size_t const esize = (size + alignment - 1) & -alignment; - if (m_current + esize > m_end) { return nullptr; } //throw std::bad_alloc(); - - uint8_t* const rval = m_current; - m_current += esize; - return rval; - } - - size_t add_ref() { return ++m_ref_counter; } - size_t release() - { - if (m_ref_counter) --m_ref_counter; - if (m_ref_counter == 0) reset(); - return m_ref_counter; - } - size_t ref_counter() const { return m_ref_counter; } -private: - //called by last release() when m_ref_counter becomes 0 - void reset() - { - m_current = m_begin; - } - - - enum : std::size_t - { - alignment = alignof(std::size_t) - }; - - uint8_t* m_begin { nullptr }; //set in reset() - uint8_t* m_current { nullptr }; //changed by alloc_bytes - uint8_t* m_end { nullptr }; - - size_t m_ref_counter {0}; -}; - -} //namespace asn - diff --git a/e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/value_traits.hpp b/e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/value_traits.hpp deleted file mode 100755 index 4b67374..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/value_traits.hpp +++ /dev/null @@ -1,187 +0,0 @@ -#ifndef _STDEX_VALUE_TRAITS_HPP_INCLUDED_ -#define _STDEX_VALUE_TRAITS_HPP_INCLUDED_ - -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -******************************************************************************/ - -#include -#include -#include -#include -#include - -#include "type_defs.h" - -namespace stdex { -namespace value { - -namespace mpl = boost::mpl; - -//NOTE! length is in bits -typedef mpl::int_<8> _8; -typedef mpl::int_<16> _16; -typedef mpl::int_<24> _24; -typedef mpl::int_<32> _32; -typedef mpl::int_<40> _40; -typedef mpl::int_<48> _48; -typedef mpl::int_<56> _56; -typedef mpl::int_<64> _64; - -template -struct bits_to_bytes : mpl::int_< (num_bits + 7) / 8 > {}; - -/****************************************************************************** -* Class: value::traits -* Description: select min integer type to fit LEN bits -* Notes: LEN is positive integer type (mpl::int_) = number of bits -******************************************************************************/ -template struct traits; - -template -struct traits - >::type -> -{ - typedef _8 value_length; - typedef u8 value_type; - typedef value_type param_type; -}; - -template -struct traits, mpl::less_equal > - >::type -> -{ - typedef _16 value_length; - typedef u16 value_type; - typedef value_type param_type; -}; - -template -struct traits, mpl::less_equal > - >::type -> -{ - typedef _24 value_length; - typedef u32 value_type; - typedef value_type param_type; -}; - -template -struct traits, mpl::less_equal > - >::type -> -{ - typedef _32 value_length; - typedef u32 value_type; - typedef value_type param_type; -}; - -template -struct traits, mpl::less_equal > - >::type -> -{ - typedef _40 value_length; - typedef u64 value_type; - typedef value_type param_type; -}; - -template -struct traits, mpl::less_equal > - >::type -> -{ - typedef _48 value_length; - typedef u64 value_type; - typedef value_type param_type; -}; - -template -struct traits, mpl::less_equal > - >::type -> -{ - typedef _56 value_length; - typedef u64 value_type; - typedef value_type param_type; -}; - -template -struct traits, mpl::less_equal > - >::type -> -{ - typedef _64 value_length; - typedef u64 value_type; - typedef value_type param_type; -}; - -template -struct traits - >::type -> -{ - typedef LEN value_length; - struct value_type {u8 value[bits_to_bytes::value];}; - typedef value_type const& param_type; -}; - - -//template -//struct traits -// >::type -//> -//{ -// typedef LEN value_length; -// struct value_type {unsigned char value[LEN::value/8];}; -// typedef value_type const& param_type; -// -//}; - -/****************************************************************************** -* Class: value::traits_c -* Description: select min integer type to fit BITS bits -* Notes: N is positive integer value = number of bits -******************************************************************************/ -template -struct traits_c : traits > -{ -}; - -} //end: namespace value - -} //end: namespace stdex - -#ifdef _MSC_VER -#pragma component( mintypeinfo, off ) -#endif - -#endif //_STDEX_VALUE_TRAITS_HPP_INCLUDED_ diff --git a/e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/variant.hpp b/e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/variant.hpp deleted file mode 100755 index be205aa..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/variant.hpp +++ /dev/null @@ -1,146 +0,0 @@ -#pragma once - -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries -#include -#include - - -// Local Includes: Application specific classes, functions, and libraries - - -namespace asn{ - -template -struct variant -{ - typedef variant self_type; - - template - static void check_size () {static_assert(sizeof (T) <= S, "wrong type");} - - variant () - : typeinfo (nullptr) - {} - - template - variant (const T& t) - : typeinfo (&typeid (T)) - { - check_size(); - new (as_()) T (t); - } - - ~variant () - { - assert(!typeinfo); - } - - template - T& build () - { - assert(!typeinfo); - typeinfo = & typeid (T); - return *new (as_()) T; - } - - template - T& build (const T& t) - { - assert(!typeinfo); - check_size(); - typeinfo = & typeid (T); - return *new (as_ ()) T (t); - } - - template - T& as() - { - assert(*typeinfo == typeid (T)); - check_size(); - return *as_ (); - } - - template - const T& as() const - { - assert(*typeinfo == typeid (T)); - check_size(); - return *as_ (); - } - - template - void swap(self_type& other) - { - assert (typeinfo); - assert (*typeinfo == *other.typeinfo); - std::swap (as (), other.as ()); - } - - template - void move(self_type& other) - { - build (); - swap (other); - other.destroy (); - } - - template - void copy(const self_type& other) - { - build (other.as ()); - } - - template - void destroy() - { - as ().~T (); - typeinfo = nullptr; - } - -private: - self_type& operator=(const self_type&){} - variant (const self_type&){} - - template - T* as_() - { - void *p = buffer.raw; - return static_cast (p); - } - - template - const T* as_() const - { - const void *p = buffer.raw; - return static_cast (p); - } - - union - { - long double align_me; - char raw[S]; - } buffer; - - const std::type_info *typeinfo; -}; - -} //namspace asn diff --git a/e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/version.hpp b/e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/version.hpp deleted file mode 100755 index 50854f3..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/ASN1/asn/version.hpp +++ /dev/null @@ -1,27 +0,0 @@ -#pragma once - -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries - -// Local Includes: Application specific classes, functions, and libraries - -#define ASN_API_VERSION_MAJOR 5 -#define ASN_API_VERSION_MINOR 0 diff --git a/e2sim/previous/e2apv1sim/e2sim/src/ASN1/generated/E2AP-Constants.hpp b/e2sim/previous/e2apv1sim/e2sim/src/ASN1/generated/E2AP-Constants.hpp deleted file mode 100644 index 2ed8200..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/ASN1/generated/E2AP-Constants.hpp +++ /dev/null @@ -1,244 +0,0 @@ -/***************************************************************************** -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -#pragma once - -#include "asn/asn.hpp" -static_assert(ASN_API_VERSION_MAJOR == 5, "re-generate the ASN parser's code using 'make regen-asn' (do not use -j option)"); - -#include "X2AP-CommonDataTypes.hpp" - -/* -id-RANfunction-Item ProtocolIE-ID ::= 60001 -*/ - -constexpr int64_t id_RANfunction_Item = 60001; -/* -id-RANfunctionDefinition ProtocolIE-ID ::= 60002 -*/ - -constexpr int64_t id_RANfunctionDefinition = 60002; -/* -id-RANfunctionID ProtocolIE-ID ::= 60003 -*/ - -constexpr int64_t id_RANfunctionID = 60003; -/* -id-RANfunctionID-Item ProtocolIE-ID ::= 60004 -*/ - -constexpr int64_t id_RANfunctionID_Item = 60004; -/* -id-RANfunctionIEcause-Item ProtocolIE-ID ::= 60005 -*/ - -constexpr int64_t id_RANfunctionIEcause_Item = 60005; -/* -id-RANfunctionsAccepted ProtocolIE-ID ::= 60006 -*/ - -constexpr int64_t id_RANfunctionsAccepted = 60006; -/* -id-RANfunctionsAdded ProtocolIE-ID ::= 60007 -*/ - -constexpr int64_t id_RANfunctionsAdded = 60007; -/* -id-RANfunctionsDeleted ProtocolIE-ID ::= 60008 -*/ - -constexpr int64_t id_RANfunctionsDeleted = 60008; -/* -id-RANfunctionsModified ProtocolIE-ID ::= 60009 -*/ - -constexpr int64_t id_RANfunctionsModified = 60009; -/* -id-RANfunctionsRejected ProtocolIE-ID ::= 60010 -*/ - -constexpr int64_t id_RANfunctionsRejected = 60010; -/* -id-RICaction-Admitted-Item ProtocolIE-ID ::= 60013 -*/ - -constexpr int64_t id_RICaction_Admitted_Item = 60013; -/* -id-RICaction-NotAdmitted-Item ProtocolIE-ID ::= 60015 -*/ - -constexpr int64_t id_RICaction_NotAdmitted_Item = 60015; -/* -id-RICaction-ToBeSetup-Item ProtocolIE-ID ::= 60011 -*/ - -constexpr int64_t id_RICaction_ToBeSetup_Item = 60011; -/* -id-RICactionDefinition ProtocolIE-ID ::= 60016 -*/ - -constexpr int64_t id_RICactionDefinition = 60016; -/* -id-RICactionID ProtocolIE-ID ::= 60017 -*/ - -constexpr int64_t id_RICactionID = 60017; -/* -id-RICactionType ProtocolIE-ID ::= 60018 -*/ - -constexpr int64_t id_RICactionType = 60018; -/* -id-RICactions-Admitted ProtocolIE-ID ::= 60012 -*/ - -constexpr int64_t id_RICactions_Admitted = 60012; -/* -id-RICactions-NotAdmitted ProtocolIE-ID ::= 60014 -*/ - -constexpr int64_t id_RICactions_NotAdmitted = 60014; -/* -id-RICcallProcessID ProtocolIE-ID ::= 60019 -*/ - -constexpr int64_t id_RICcallProcessID = 60019; -/* -id-RICcause ProtocolIE-ID ::= 60020 -*/ - -constexpr int64_t id_RICcause = 60020; -/* -id-RICcontrolAckRequest ProtocolIE-ID ::= 60021 -*/ - -constexpr int64_t id_RICcontrolAckRequest = 60021; -/* -id-RICcontrolHeader ProtocolIE-ID ::= 60022 -*/ - -constexpr int64_t id_RICcontrolHeader = 60022; -/* -id-RICcontrolMessage ProtocolIE-ID ::= 60023 -*/ - -constexpr int64_t id_RICcontrolMessage = 60023; -/* -id-RICcontrolStatus ProtocolIE-ID ::= 60024 -*/ - -constexpr int64_t id_RICcontrolStatus = 60024; -/* -id-RICeventTriggerDefinition ProtocolIE-ID ::= 60025 -*/ - -constexpr int64_t id_RICeventTriggerDefinition = 60025; -/* -id-RICindicationHeader ProtocolIE-ID ::= 60026 -*/ - -constexpr int64_t id_RICindicationHeader = 60026; -/* -id-RICindicationMessage ProtocolIE-ID ::= 60027 -*/ - -constexpr int64_t id_RICindicationMessage = 60027; -/* -id-RICindicationSN ProtocolIE-ID ::= 60028 -*/ - -constexpr int64_t id_RICindicationSN = 60028; -/* -id-RICindicationType ProtocolIE-ID ::= 60029 -*/ - -constexpr int64_t id_RICindicationType = 60029; -/* -id-RICrequestID ProtocolIE-ID ::= 60030 -*/ - -constexpr int64_t id_RICrequestID = 60030; -/* -id-RICrequestSequenceNumber ProtocolIE-ID ::= 60032 -*/ - -constexpr int64_t id_RICrequestSequenceNumber = 60032; -/* -id-RICrequestorID ProtocolIE-ID ::= 60031 -*/ - -constexpr int64_t id_RICrequestorID = 60031; -/* -id-RICsubscription ProtocolIE-ID ::= 60033 -*/ - -constexpr int64_t id_RICsubscription = 60033; -/* -id-RICsubsequentAction ProtocolIE-ID ::= 60034 -*/ - -constexpr int64_t id_RICsubsequentAction = 60034; -/* -id-RICsubsequentActionType ProtocolIE-ID ::= 60035 -*/ - -constexpr int64_t id_RICsubsequentActionType = 60035; -/* -id-RICtimeToWait ProtocolIE-ID ::= 60036 -*/ - -constexpr int64_t id_RICtimeToWait = 60036; -/* -id-ricControl ProcedureCode ::= 204 -*/ - -constexpr int64_t id_ricControl = 204; -/* -id-ricIndication ProcedureCode ::= 205 -*/ - -constexpr int64_t id_ricIndication = 205; -/* -id-ricServiceQuery ProcedureCode ::= 206 -*/ - -constexpr int64_t id_ricServiceQuery = 206; -/* -id-ricServiceUpdate ProcedureCode ::= 203 -*/ - -constexpr int64_t id_ricServiceUpdate = 203; -/* -id-ricSubscription ProcedureCode ::= 201 -*/ - -constexpr int64_t id_ricSubscription = 201; -/* -id-ricSubscriptionDelete ProcedureCode ::= 202 -*/ - -constexpr int64_t id_ricSubscriptionDelete = 202; -/* -maxofRANfunctionID INTEGER ::=256 -*/ - -constexpr int64_t maxofRANfunctionID = 256; -/* -maxofRICactionID INTEGER ::= 16 -*/ - -constexpr int64_t maxofRICactionID = 16; diff --git a/e2sim/previous/e2apv1sim/e2sim/src/ASN1/generated/E2AP-IEs.hpp b/e2sim/previous/e2apv1sim/e2sim/src/ASN1/generated/E2AP-IEs.hpp deleted file mode 100644 index 40f7bbb..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/ASN1/generated/E2AP-IEs.hpp +++ /dev/null @@ -1,568 +0,0 @@ -/***************************************************************************** -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -#pragma once - -#include "asn/asn.hpp" -static_assert(ASN_API_VERSION_MAJOR == 5, "re-generate the ASN parser's code using 'make regen-asn' (do not use -j option)"); - -#include "X2AP-IEs.hpp" - -/* -CauseRIC ::= ENUMERATED { - function-id-Invalid, - action-not-supported, - excessive-actions, - duplicate-action, - duplicate-event, - function-resource-limit, - request-id-unknown, - inconsistent-action-subsequent-action-sequence, - control-message-invalid, - call-process-id-invalid, - function-not-required, - excessive-functions, - ric-resource-limit, - ... -} -*/ - -struct CauseRIC : asn::enumerated<13, 0, true> -{ - static constexpr const char* name() {return "CauseRIC";} - using parent_t = asn::enumerated<13, 0, true>; - typedef enum { - function_id_Invalid - ,action_not_supported - ,excessive_actions - ,duplicate_action - ,duplicate_event - ,function_resource_limit - ,request_id_unknown - ,inconsistent_action_subsequent_action_sequence - ,control_message_invalid - ,call_process_id_invalid - ,function_not_required - ,excessive_functions - ,ric_resource_limit - } index_t; - -}; - -/* -RANfunctionDefinition ::= OCTET STRING -*/ - -struct RANfunctionDefinition : asn::ostring<> -{ - static constexpr const char* name() {return "RANfunctionDefinition";} - using parent_t = asn::ostring<>; - -}; - -/* -RANfunctionID ::= INTEGER (0..4095) -*/ - -struct RANfunctionID : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "RANfunctionID";} - using parent_t = asn::integer<>; - -}; - -/* -RICactionDefinition ::= OCTET STRING -*/ - -struct RICactionDefinition : asn::ostring<> -{ - static constexpr const char* name() {return "RICactionDefinition";} - using parent_t = asn::ostring<>; - -}; - -/* -RICactionID ::= INTEGER (0..255) -*/ - -struct RICactionID : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "RICactionID";} - using parent_t = asn::integer<>; - -}; - -/* -RICactionType ::= ENUMERATED{ - report, - insert, - policy, - ... -} -*/ - -struct RICactionType : asn::enumerated<3, 0, true> -{ - static constexpr const char* name() {return "RICactionType";} - using parent_t = asn::enumerated<3, 0, true>; - typedef enum { - report - ,insert - ,policy - } index_t; - -}; - -/* -RICcallProcessID ::= OCTET STRING -*/ - -struct RICcallProcessID : asn::ostring<> -{ - static constexpr const char* name() {return "RICcallProcessID";} - using parent_t = asn::ostring<>; - -}; - -/* -RICcause ::= CHOICE { - radioNetwork CauseRadioNetwork, - transport CauseTransport, - protocol CauseProtocol, - misc CauseMisc, - ric CauseRIC, - ... -} -*/ - -struct RICcause : asn::choice<5, 0, true> -{ - static constexpr const char* name() {return "RICcause";} - using parent_t = asn::choice<5, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 6;} - void set_unknown() { set_index(6); } - ~RICcause() {clear();} - struct radioNetwork_t : CauseRadioNetwork - { - static constexpr const char* name() {return "radioNetwork_t";} - using parent_t = CauseRadioNetwork; - - }; - struct transport_t : CauseTransport - { - static constexpr const char* name() {return "transport_t";} - using parent_t = CauseTransport; - - }; - struct protocol_t : CauseProtocol - { - static constexpr const char* name() {return "protocol_t";} - using parent_t = CauseProtocol; - - }; - struct misc_t : CauseMisc - { - static constexpr const char* name() {return "misc_t";} - using parent_t = CauseMisc; - - }; - struct ric_t : CauseRIC - { - static constexpr const char* name() {return "ric_t";} - using parent_t = CauseRIC; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - case 3: set_index(3); return v(var.build()); - case 4: set_index(4); return v(var.build()); - case 5: set_index(5); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - case 3: return v(var.as()); - case 4: return v(var.as()); - case 5: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - - } - radioNetwork_t& select_radioNetwork() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - radioNetwork_t const* get_radioNetwork() const { if(get_index() == 1) { return &var.as();} return nullptr; } - transport_t& select_transport() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - transport_t const* get_transport() const { if(get_index() == 2) { return &var.as();} return nullptr; } - protocol_t& select_protocol() { if(get_index() != 3) { clear(); set_index(3); return var.build();} return var.as();} - protocol_t const* get_protocol() const { if(get_index() == 3) { return &var.as();} return nullptr; } - misc_t& select_misc() { if(get_index() != 4) { clear(); set_index(4); return var.build();} return var.as();} - misc_t const* get_misc() const { if(get_index() == 4) { return &var.as();} return nullptr; } - ric_t& select_ric() { if(get_index() != 5) { clear(); set_index(5); return var.build();} return var.as();} - ric_t const* get_ric() const { if(get_index() == 5) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(radioNetwork_t)]; - char dummy2[sizeof(transport_t)]; - char dummy3[sizeof(protocol_t)]; - char dummy4[sizeof(misc_t)]; - char dummy5[sizeof(ric_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -RICcontrolAckRequest ::= ENUMERATED{ - noAck, - ack, - nAck, - ... -} -*/ - -struct RICcontrolAckRequest : asn::enumerated<3, 0, true> -{ - static constexpr const char* name() {return "RICcontrolAckRequest";} - using parent_t = asn::enumerated<3, 0, true>; - typedef enum { - noAck - ,ack - ,nAck - } index_t; - -}; - -/* -RICcontrolHeader ::= OCTET STRING -*/ - -struct RICcontrolHeader : asn::ostring<> -{ - static constexpr const char* name() {return "RICcontrolHeader";} - using parent_t = asn::ostring<>; - -}; - -/* -RICcontrolMessage ::= OCTET STRING -*/ - -struct RICcontrolMessage : asn::ostring<> -{ - static constexpr const char* name() {return "RICcontrolMessage";} - using parent_t = asn::ostring<>; - -}; - -/* -RICcontrolStatus ::= ENUMERATED{ - success, - rejected, - failed, - ... -} -*/ - -struct RICcontrolStatus : asn::enumerated<3, 0, true> -{ - static constexpr const char* name() {return "RICcontrolStatus";} - using parent_t = asn::enumerated<3, 0, true>; - typedef enum { - success - ,rejected - ,failed - } index_t; - -}; - -/* -RICeventTriggerDefinition ::= OCTET STRING -*/ - -struct RICeventTriggerDefinition : asn::ostring<> -{ - static constexpr const char* name() {return "RICeventTriggerDefinition";} - using parent_t = asn::ostring<>; - -}; - -/* -RICindicationHeader ::= OCTET STRING -*/ - -struct RICindicationHeader : asn::ostring<> -{ - static constexpr const char* name() {return "RICindicationHeader";} - using parent_t = asn::ostring<>; - -}; - -/* -RICindicationMessage ::= OCTET STRING -*/ - -struct RICindicationMessage : asn::ostring<> -{ - static constexpr const char* name() {return "RICindicationMessage";} - using parent_t = asn::ostring<>; - -}; - -/* -RICindicationSN ::= INTEGER (0..65535) -*/ - -struct RICindicationSN : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "RICindicationSN";} - using parent_t = asn::integer<>; - -}; - -/* -RICindicationType ::= ENUMERATED{ - report, - insert, - ... -} -*/ - -struct RICindicationType : asn::enumerated<2, 0, true> -{ - static constexpr const char* name() {return "RICindicationType";} - using parent_t = asn::enumerated<2, 0, true>; - typedef enum { - report - ,insert - } index_t; - -}; - -/* -RICrequestID ::= SEQUENCE { - ricRequestorID INTEGER (0..65535), - ricRequestSequenceNumber INTEGER (0..65535), - ... -} -*/ - -struct RICrequestID : asn::sequence<2, 0, true, 0> -{ - static constexpr const char* name() {return "RICrequestID";} - using parent_t = asn::sequence<2, 0, true, 0>; - struct ricRequestorID_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "ricRequestorID_t";} - using parent_t = asn::integer<>; - - }; - - ricRequestorID_t& ref_ricRequestorID() {return ricRequestorID;} - ricRequestorID_t const& ref_ricRequestorID() const {return ricRequestorID;} - struct ricRequestSequenceNumber_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "ricRequestSequenceNumber_t";} - using parent_t = asn::integer<>; - - }; - - ricRequestSequenceNumber_t& ref_ricRequestSequenceNumber() {return ricRequestSequenceNumber;} - ricRequestSequenceNumber_t const& ref_ricRequestSequenceNumber() const {return ricRequestSequenceNumber;} - template void decode(V& v) - { - v(ricRequestorID); - v(ricRequestSequenceNumber); - - }; - template void encode(V& v) const - { - v(ricRequestorID); - v(ricRequestSequenceNumber); - - }; - void clear() - { - ricRequestorID.clear(); - ricRequestSequenceNumber.clear(); - - }; - private: - ricRequestorID_t ricRequestorID; - ricRequestSequenceNumber_t ricRequestSequenceNumber; - -}; -/* -RICsubsequentActionType ::= ENUMERATED{ - continue, - wait, - ... -} -*/ - -struct RICsubsequentActionType : asn::enumerated<2, 0, true> -{ - static constexpr const char* name() {return "RICsubsequentActionType";} - using parent_t = asn::enumerated<2, 0, true>; - typedef enum { - Continue - ,wait - } index_t; - -}; - -/* -RICtimeToWait ::= ENUMERATED{ - zero, - w1ms, - w2ms, - w5ms, - w10ms, - w20ms, - w30ms, - w40ms, - w50ms, - w100ms, - w200ms, - w500ms, - w1s, - w2s, - w5s, - w10s, - w20s, - w60s, - ... -} -*/ - -struct RICtimeToWait : asn::enumerated<18, 0, true> -{ - static constexpr const char* name() {return "RICtimeToWait";} - using parent_t = asn::enumerated<18, 0, true>; - typedef enum { - zero - ,w1ms - ,w2ms - ,w5ms - ,w10ms - ,w20ms - ,w30ms - ,w40ms - ,w50ms - ,w100ms - ,w200ms - ,w500ms - ,w1s - ,w2s - ,w5s - ,w10s - ,w20s - ,w60s - } index_t; - -}; - -/* -RICsubsequentAction ::=SEQUENCE{ - ricSubsequentActionType RICsubsequentActionType, - ricTimeToWait RICtimeToWait, - ... -} -*/ - -struct RICsubsequentAction : asn::sequence<2, 0, true, 0> -{ - static constexpr const char* name() {return "RICsubsequentAction";} - using parent_t = asn::sequence<2, 0, true, 0>; - struct ricSubsequentActionType_t : RICsubsequentActionType - { - static constexpr const char* name() {return "ricSubsequentActionType_t";} - using parent_t = RICsubsequentActionType; - - }; - ricSubsequentActionType_t& ref_ricSubsequentActionType() {return ricSubsequentActionType;} - ricSubsequentActionType_t const& ref_ricSubsequentActionType() const {return ricSubsequentActionType;} - struct ricTimeToWait_t : RICtimeToWait - { - static constexpr const char* name() {return "ricTimeToWait_t";} - using parent_t = RICtimeToWait; - - }; - ricTimeToWait_t& ref_ricTimeToWait() {return ricTimeToWait;} - ricTimeToWait_t const& ref_ricTimeToWait() const {return ricTimeToWait;} - template void decode(V& v) - { - v(ricSubsequentActionType); - v(ricTimeToWait); - - }; - template void encode(V& v) const - { - v(ricSubsequentActionType); - v(ricTimeToWait); - - }; - void clear() - { - ricSubsequentActionType.clear(); - ricTimeToWait.clear(); - - }; - private: - ricSubsequentActionType_t ricSubsequentActionType; - ricTimeToWait_t ricTimeToWait; - -}; diff --git a/e2sim/previous/e2apv1sim/e2sim/src/ASN1/generated/E2AP-PDU-Contents.hpp b/e2sim/previous/e2apv1sim/e2sim/src/ASN1/generated/E2AP-PDU-Contents.hpp deleted file mode 100644 index e2073d1..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/ASN1/generated/E2AP-PDU-Contents.hpp +++ /dev/null @@ -1,5512 +0,0 @@ -/***************************************************************************** -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -#pragma once - -#include "asn/asn.hpp" -static_assert(ASN_API_VERSION_MAJOR == 5, "re-generate the ASN parser's code using 'make regen-asn' (do not use -j option)"); - -#include "E2AP-IEs.hpp" -#include "X2AP-IEs.hpp" -#include "X2AP-Constants.hpp" -#include "X2AP-Containers.hpp" -#include "E2AP-Constants.hpp" - -/* -RANfunction-Item ::= SEQUENCE { - ranFunctionID RANfunctionID, - ranFunctionDefinition RANfunctionDefinition, - ... -} -*/ - -struct RANfunction_Item : asn::sequence<2, 0, true, 0> -{ - static constexpr const char* name() {return "RANfunction-Item";} - using parent_t = asn::sequence<2, 0, true, 0>; - struct ranFunctionID_t : RANfunctionID - { - static constexpr const char* name() {return "ranFunctionID_t";} - using parent_t = RANfunctionID; - - }; - ranFunctionID_t& ref_ranFunctionID() {return ranFunctionID;} - ranFunctionID_t const& ref_ranFunctionID() const {return ranFunctionID;} - struct ranFunctionDefinition_t : RANfunctionDefinition - { - static constexpr const char* name() {return "ranFunctionDefinition_t";} - using parent_t = RANfunctionDefinition; - - }; - ranFunctionDefinition_t& ref_ranFunctionDefinition() {return ranFunctionDefinition;} - ranFunctionDefinition_t const& ref_ranFunctionDefinition() const {return ranFunctionDefinition;} - template void decode(V& v) - { - v(ranFunctionID); - v(ranFunctionDefinition); - - }; - template void encode(V& v) const - { - v(ranFunctionID); - v(ranFunctionDefinition); - - }; - void clear() - { - ranFunctionID.clear(); - ranFunctionDefinition.clear(); - - }; - private: - ranFunctionID_t ranFunctionID; - ranFunctionDefinition_t ranFunctionDefinition; - -}; -/* -RANfunction-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-RANfunction-Item CRITICALITY ignore TYPE RANfunction-Item PRESENCE mandatory }, - ... -} -*/ - -struct RANfunction_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RANfunction_Item() { set(id_RANfunction_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_RANfunction_Item)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_RANfunction_Item);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RANfunction_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - RANfunction_Item& select_id_RANfunction_Item() { return set(1); } - RANfunction_Item const* get_id_RANfunction_Item() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_RANfunction_Item()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(RANfunction_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RANfunction_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RANfunctionID-Item ::= SEQUENCE { - ranFunctionID RANfunctionID, - ... -} -*/ - -struct RANfunctionID_Item : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "RANfunctionID-Item";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct ranFunctionID_t : RANfunctionID - { - static constexpr const char* name() {return "ranFunctionID_t";} - using parent_t = RANfunctionID; - - }; - ranFunctionID_t& ref_ranFunctionID() {return ranFunctionID;} - ranFunctionID_t const& ref_ranFunctionID() const {return ranFunctionID;} - template void decode(V& v) - { - v(ranFunctionID); - - }; - template void encode(V& v) const - { - v(ranFunctionID); - - }; - void clear() - { - ranFunctionID.clear(); - - }; - private: - ranFunctionID_t ranFunctionID; - -}; -/* -RANfunctionID-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-RANfunctionID-Item CRITICALITY ignore TYPE RANfunctionID-Item PRESENCE mandatory }, - ... -} -*/ - -struct RANfunctionID_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RANfunctionID_Item() { set(id_RANfunctionID_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_RANfunctionID_Item)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_RANfunctionID_Item);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RANfunctionID_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - RANfunctionID_Item& select_id_RANfunctionID_Item() { return set(1); } - RANfunctionID_Item const* get_id_RANfunctionID_Item() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_RANfunctionID_Item()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(RANfunctionID_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RANfunctionID_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RANfunctionIDcause-Item ::= SEQUENCE { - ranFunctionID RANfunctionID, - ricCause RICcause, - ... -} -*/ - -struct RANfunctionIDcause_Item : asn::sequence<2, 0, true, 0> -{ - static constexpr const char* name() {return "RANfunctionIDcause-Item";} - using parent_t = asn::sequence<2, 0, true, 0>; - struct ranFunctionID_t : RANfunctionID - { - static constexpr const char* name() {return "ranFunctionID_t";} - using parent_t = RANfunctionID; - - }; - ranFunctionID_t& ref_ranFunctionID() {return ranFunctionID;} - ranFunctionID_t const& ref_ranFunctionID() const {return ranFunctionID;} - struct ricCause_t : RICcause - { - static constexpr const char* name() {return "ricCause_t";} - using parent_t = RICcause; - - }; - ricCause_t& ref_ricCause() {return ricCause;} - ricCause_t const& ref_ricCause() const {return ricCause;} - template void decode(V& v) - { - v(ranFunctionID); - v(ricCause); - - }; - template void encode(V& v) const - { - v(ranFunctionID); - v(ricCause); - - }; - void clear() - { - ranFunctionID.clear(); - ricCause.clear(); - - }; - private: - ranFunctionID_t ranFunctionID; - ricCause_t ricCause; - -}; -/* -RANfunctionIDcause-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-RANfunctionIEcause-Item CRITICALITY ignore TYPE RANfunctionIDcause-Item PRESENCE mandatory }, - ... -} -*/ - -struct RANfunctionIDcause_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RANfunctionIEcause_Item() { set(id_RANfunctionIEcause_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_RANfunctionIEcause_Item)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_RANfunctionIEcause_Item);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RANfunctionIEcause_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - RANfunctionIDcause_Item& select_id_RANfunctionIEcause_Item() { return set(1); } - RANfunctionIDcause_Item const* get_id_RANfunctionIEcause_Item() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_RANfunctionIEcause_Item()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(RANfunctionIDcause_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RANfunctionIEcause_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RANfunctions-List ::= SEQUENCE (SIZE(0..maxofRANfunctionID)) OF ProtocolIE-Single-Container { {RANfunction-ItemIEs} } -*/ - -struct RANfunctions_List_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "RANfunctions_List_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct RANfunctions_List : asn::sequenceof -{ - static constexpr const char* name() {return "RANfunctions-List";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -RANfunctionsID-List ::= SEQUENCE (SIZE(0..maxofRANfunctionID)) OF ProtocolIE-Single-Container{{RANfunctionID-ItemIEs}} -*/ - -struct RANfunctionsID_List_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "RANfunctionsID_List_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct RANfunctionsID_List : asn::sequenceof -{ - static constexpr const char* name() {return "RANfunctionsID-List";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -RANfunctionsIDcause-List ::= SEQUENCE (SIZE(0..maxofRANfunctionID)) OF ProtocolIE-Single-Container { {RANfunctionIDcause-ItemIEs} } -*/ - -struct RANfunctionsIDcause_List_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "RANfunctionsIDcause_List_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct RANfunctionsIDcause_List : asn::sequenceof -{ - static constexpr const char* name() {return "RANfunctionsIDcause-List";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -RICaction-Admitted-Item ::= SEQUENCE { - ricActionID RICactionID, - ... -} -*/ - -struct RICaction_Admitted_Item : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "RICaction-Admitted-Item";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct ricActionID_t : RICactionID - { - static constexpr const char* name() {return "ricActionID_t";} - using parent_t = RICactionID; - - }; - ricActionID_t& ref_ricActionID() {return ricActionID;} - ricActionID_t const& ref_ricActionID() const {return ricActionID;} - template void decode(V& v) - { - v(ricActionID); - - }; - template void encode(V& v) const - { - v(ricActionID); - - }; - void clear() - { - ricActionID.clear(); - - }; - private: - ricActionID_t ricActionID; - -}; -/* -RICaction-Admitted-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-RICaction-Admitted-Item CRITICALITY ignore TYPE RICaction-Admitted-Item PRESENCE mandatory }, - ... -} -*/ - -struct RICaction_Admitted_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RICaction_Admitted_Item() { set(id_RICaction_Admitted_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_RICaction_Admitted_Item)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_RICaction_Admitted_Item);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RICaction_Admitted_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - RICaction_Admitted_Item& select_id_RICaction_Admitted_Item() { return set(1); } - RICaction_Admitted_Item const* get_id_RICaction_Admitted_Item() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_RICaction_Admitted_Item()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(RICaction_Admitted_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RICaction_Admitted_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RICaction-Admitted-List ::= SEQUENCE (SIZE(1..maxofRICactionID)) OF ProtocolIE-Single-Container{{RICaction-Admitted-ItemIEs}} -*/ - -struct RICaction_Admitted_List_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "RICaction_Admitted_List_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct RICaction_Admitted_List : asn::sequenceof -{ - static constexpr const char* name() {return "RICaction-Admitted-List";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -RICaction-NotAdmitted-Item ::= SEQUENCE { - ricActionID RICactionID, - ricCause RICcause, - ... -} -*/ - -struct RICaction_NotAdmitted_Item : asn::sequence<2, 0, true, 0> -{ - static constexpr const char* name() {return "RICaction-NotAdmitted-Item";} - using parent_t = asn::sequence<2, 0, true, 0>; - struct ricActionID_t : RICactionID - { - static constexpr const char* name() {return "ricActionID_t";} - using parent_t = RICactionID; - - }; - ricActionID_t& ref_ricActionID() {return ricActionID;} - ricActionID_t const& ref_ricActionID() const {return ricActionID;} - struct ricCause_t : RICcause - { - static constexpr const char* name() {return "ricCause_t";} - using parent_t = RICcause; - - }; - ricCause_t& ref_ricCause() {return ricCause;} - ricCause_t const& ref_ricCause() const {return ricCause;} - template void decode(V& v) - { - v(ricActionID); - v(ricCause); - - }; - template void encode(V& v) const - { - v(ricActionID); - v(ricCause); - - }; - void clear() - { - ricActionID.clear(); - ricCause.clear(); - - }; - private: - ricActionID_t ricActionID; - ricCause_t ricCause; - -}; -/* -RICaction-NotAdmitted-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-RICaction-NotAdmitted-Item CRITICALITY ignore TYPE RICaction-NotAdmitted-Item PRESENCE mandatory }, - ... -} -*/ - -struct RICaction_NotAdmitted_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RICaction_NotAdmitted_Item() { set(id_RICaction_NotAdmitted_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_RICaction_NotAdmitted_Item)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_RICaction_NotAdmitted_Item);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RICaction_NotAdmitted_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - RICaction_NotAdmitted_Item& select_id_RICaction_NotAdmitted_Item() { return set(1); } - RICaction_NotAdmitted_Item const* get_id_RICaction_NotAdmitted_Item() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_RICaction_NotAdmitted_Item()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(RICaction_NotAdmitted_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RICaction_NotAdmitted_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RICaction-NotAdmitted-List ::= SEQUENCE (SIZE(0..maxofRICactionID)) OF ProtocolIE-Single-Container { {RICaction-NotAdmitted-ItemIEs} } -*/ - -struct RICaction_NotAdmitted_List_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "RICaction_NotAdmitted_List_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct RICaction_NotAdmitted_List : asn::sequenceof -{ - static constexpr const char* name() {return "RICaction-NotAdmitted-List";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -RICaction-ToBeSetup-Item ::= SEQUENCE { - ricActionID RICactionID, - ricActionType RICactionType, - ricActionDefinition RICactionDefinition OPTIONAL, - ricSubsequentAction RICsubsequentAction OPTIONAL, - ... -} -*/ - -struct RICaction_ToBeSetup_Item : asn::sequence<4, 0, true, 2> -{ - static constexpr const char* name() {return "RICaction-ToBeSetup-Item";} - using parent_t = asn::sequence<4, 0, true, 2>; - struct ricActionID_t : RICactionID - { - static constexpr const char* name() {return "ricActionID_t";} - using parent_t = RICactionID; - - }; - ricActionID_t& ref_ricActionID() {return ricActionID;} - ricActionID_t const& ref_ricActionID() const {return ricActionID;} - struct ricActionType_t : RICactionType - { - static constexpr const char* name() {return "ricActionType_t";} - using parent_t = RICactionType; - - }; - ricActionType_t& ref_ricActionType() {return ricActionType;} - ricActionType_t const& ref_ricActionType() const {return ricActionType;} - struct ricActionDefinition_t : RICactionDefinition - { - static constexpr const char* name() {return "ricActionDefinition_t";} - using parent_t = RICactionDefinition; - static constexpr bool optional = true; - - }; - ricActionDefinition_t& set_ricActionDefinition() { ricActionDefinition.setpresent(true); return ricActionDefinition;} - ricActionDefinition_t const* get_ricActionDefinition() const {return ricActionDefinition.is_valid() ? &ricActionDefinition : nullptr;} - struct ricSubsequentAction_t : RICsubsequentAction - { - static constexpr const char* name() {return "ricSubsequentAction_t";} - using parent_t = RICsubsequentAction; - static constexpr bool optional = true; - - }; - ricSubsequentAction_t& set_ricSubsequentAction() { ricSubsequentAction.setpresent(true); return ricSubsequentAction;} - ricSubsequentAction_t const* get_ricSubsequentAction() const {return ricSubsequentAction.is_valid() ? &ricSubsequentAction : nullptr;} - template void decode(V& v) - { - v(ricActionID); - v(ricActionType); - v(ricActionDefinition); - v(ricSubsequentAction); - - }; - template void encode(V& v) const - { - v(ricActionID); - v(ricActionType); - v(ricActionDefinition); - v(ricSubsequentAction); - - }; - void clear() - { - ricActionID.clear(); - ricActionType.clear(); - ricActionDefinition.clear(); - ricSubsequentAction.clear(); - - }; - private: - ricActionID_t ricActionID; - ricActionType_t ricActionType; - ricActionDefinition_t ricActionDefinition; - ricSubsequentAction_t ricSubsequentAction; - -}; -/* -RICaction-ToBeSetup-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-RICaction-ToBeSetup-Item CRITICALITY ignore TYPE RICaction-ToBeSetup-Item PRESENCE mandatory }, - ... -} -*/ - -struct RICaction_ToBeSetup_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RICaction_ToBeSetup_Item() { set(id_RICaction_ToBeSetup_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_RICaction_ToBeSetup_Item)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_RICaction_ToBeSetup_Item);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RICaction_ToBeSetup_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - RICaction_ToBeSetup_Item& select_id_RICaction_ToBeSetup_Item() { return set(1); } - RICaction_ToBeSetup_Item const* get_id_RICaction_ToBeSetup_Item() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_RICaction_ToBeSetup_Item()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(RICaction_ToBeSetup_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RICaction_ToBeSetup_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RICactions-ToBeSetup-List ::= SEQUENCE (SIZE(1..maxofRICactionID)) OF ProtocolIE-Single-Container { {RICaction-ToBeSetup-ItemIEs} } -*/ - -struct RICactions_ToBeSetup_List_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "RICactions_ToBeSetup_List_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct RICactions_ToBeSetup_List : asn::sequenceof -{ - static constexpr const char* name() {return "RICactions-ToBeSetup-List";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -RICcontrolAcknowledge-IEs X2AP-PROTOCOL-IES ::= { - { ID id-RICrequestID CRITICALITY reject TYPE RICrequestID PRESENCE mandatory}| - { ID id-RANfunctionID CRITICALITY reject TYPE RANfunctionID PRESENCE mandatory}| - { ID id-RICcallProcessID CRITICALITY reject TYPE RICcallProcessID PRESENCE optional}| - { ID id-RICcontrolStatus CRITICALITY reject TYPE RICcontrolStatus PRESENCE mandatory}, - ... -} -*/ - -struct RICcontrolAcknowledge_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_RICrequestID() { set(id_RICrequestID); type=1;} - void select_id_RANfunctionID() { set(id_RANfunctionID); type=2;} - void select_id_RICcallProcessID() { set(id_RICcallProcessID); type=3;} - void select_id_RICcontrolStatus() { set(id_RICcontrolStatus); type=4;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_RICrequestID)) { type = 1; return true; } - else if(equal(id_RANfunctionID)) { type = 2; return true; } - else if(equal(id_RICcallProcessID)) { type = 3; return true; } - else if(equal(id_RICcontrolStatus)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_RICrequestID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_RANfunctionID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_RICcallProcessID);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_RICcontrolStatus);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_RICrequestID() { set(reject); type=1;} - void select_id_RANfunctionID() { set(reject); type=2;} - void select_id_RICcallProcessID() { set(reject); type=3;} - void select_id_RICcontrolStatus() { set(reject); type=4;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(reject)) { type = 3; return true; } - else if(equal(reject)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(reject);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(reject);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - RICrequestID& select_id_RICrequestID() { return set(1); } - RICrequestID const* get_id_RICrequestID() const { return get(1); } - RANfunctionID& select_id_RANfunctionID() { return set(2); } - RANfunctionID const* get_id_RANfunctionID() const { return get(2); } - RICcallProcessID& select_id_RICcallProcessID() { return set(3); } - RICcallProcessID const* get_id_RICcallProcessID() const { return get(3); } - RICcontrolStatus& select_id_RICcontrolStatus() { return set(4); } - RICcontrolStatus const* get_id_RICcontrolStatus() const { return get(4); } - bool is_unknown() const { return type == 5; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_RICrequestID()); return true; - case 2: v(select_id_RANfunctionID()); return true; - case 3: v(select_id_RICcallProcessID()); return true; - case 4: v(select_id_RICcontrolStatus()); return true; - case 5: if(type != 5) {clear(); asn::base::set();} type = 5; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(RANfunctionID)]; - char dummy2[sizeof(RICcallProcessID)]; - char dummy3[sizeof(RICcontrolStatus)]; - char dummy4[sizeof(RICrequestID)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_RICrequestID() { set(mandatory); type=1;} - void select_id_RANfunctionID() { set(mandatory); type=2;} - void select_id_RICcallProcessID() { set(optional); type=3;} - void select_id_RICcontrolStatus() { set(mandatory); type=4;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else if(equal(mandatory)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(mandatory);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RICcontrolAcknowledge ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{RICcontrolAcknowledge-IEs}}, - ... -} -*/ - -struct RICcontrolAcknowledge : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "RICcontrolAcknowledge";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -RICcontrolFailure-IEs X2AP-PROTOCOL-IES ::= { - { ID id-RICrequestID CRITICALITY reject TYPE RICrequestID PRESENCE mandatory}| - { ID id-RANfunctionID CRITICALITY reject TYPE RANfunctionID PRESENCE mandatory}| - { ID id-RICcallProcessID CRITICALITY reject TYPE RICcallProcessID PRESENCE optional}| - { ID id-RICcause CRITICALITY reject TYPE RICcause PRESENCE mandatory}, - ... -} -*/ - -struct RICcontrolFailure_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_RICrequestID() { set(id_RICrequestID); type=1;} - void select_id_RANfunctionID() { set(id_RANfunctionID); type=2;} - void select_id_RICcallProcessID() { set(id_RICcallProcessID); type=3;} - void select_id_RICcause() { set(id_RICcause); type=4;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_RICrequestID)) { type = 1; return true; } - else if(equal(id_RANfunctionID)) { type = 2; return true; } - else if(equal(id_RICcallProcessID)) { type = 3; return true; } - else if(equal(id_RICcause)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_RICrequestID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_RANfunctionID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_RICcallProcessID);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_RICcause);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_RICrequestID() { set(reject); type=1;} - void select_id_RANfunctionID() { set(reject); type=2;} - void select_id_RICcallProcessID() { set(reject); type=3;} - void select_id_RICcause() { set(reject); type=4;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(reject)) { type = 3; return true; } - else if(equal(reject)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(reject);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(reject);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - RICrequestID& select_id_RICrequestID() { return set(1); } - RICrequestID const* get_id_RICrequestID() const { return get(1); } - RANfunctionID& select_id_RANfunctionID() { return set(2); } - RANfunctionID const* get_id_RANfunctionID() const { return get(2); } - RICcallProcessID& select_id_RICcallProcessID() { return set(3); } - RICcallProcessID const* get_id_RICcallProcessID() const { return get(3); } - RICcause& select_id_RICcause() { return set(4); } - RICcause const* get_id_RICcause() const { return get(4); } - bool is_unknown() const { return type == 5; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_RICrequestID()); return true; - case 2: v(select_id_RANfunctionID()); return true; - case 3: v(select_id_RICcallProcessID()); return true; - case 4: v(select_id_RICcause()); return true; - case 5: if(type != 5) {clear(); asn::base::set();} type = 5; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(RANfunctionID)]; - char dummy2[sizeof(RICcallProcessID)]; - char dummy3[sizeof(RICcause)]; - char dummy4[sizeof(RICrequestID)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_RICrequestID() { set(mandatory); type=1;} - void select_id_RANfunctionID() { set(mandatory); type=2;} - void select_id_RICcallProcessID() { set(optional); type=3;} - void select_id_RICcause() { set(mandatory); type=4;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else if(equal(mandatory)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(mandatory);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RICcontrolFailure ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{RICcontrolFailure-IEs}}, - ... -} -*/ - -struct RICcontrolFailure : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "RICcontrolFailure";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -RICcontrolRequest-IEs X2AP-PROTOCOL-IES ::= { - { ID id-RICrequestID CRITICALITY reject TYPE RICrequestID PRESENCE mandatory}| - { ID id-RANfunctionID CRITICALITY reject TYPE RANfunctionID PRESENCE mandatory}| - { ID id-RICcallProcessID CRITICALITY reject TYPE RICcallProcessID PRESENCE optional}| - { ID id-RICcontrolHeader CRITICALITY reject TYPE RICcontrolHeader PRESENCE mandatory}| - { ID id-RICcontrolMessage CRITICALITY reject TYPE RICcontrolMessage PRESENCE mandatory}| - { ID id-RICcontrolAckRequest CRITICALITY reject TYPE RICcontrolAckRequest PRESENCE optional}, - ... -} -*/ - -struct RICcontrolRequest_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_RICrequestID() { set(id_RICrequestID); type=1;} - void select_id_RANfunctionID() { set(id_RANfunctionID); type=2;} - void select_id_RICcallProcessID() { set(id_RICcallProcessID); type=3;} - void select_id_RICcontrolHeader() { set(id_RICcontrolHeader); type=4;} - void select_id_RICcontrolMessage() { set(id_RICcontrolMessage); type=5;} - void select_id_RICcontrolAckRequest() { set(id_RICcontrolAckRequest); type=6;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_RICrequestID)) { type = 1; return true; } - else if(equal(id_RANfunctionID)) { type = 2; return true; } - else if(equal(id_RICcallProcessID)) { type = 3; return true; } - else if(equal(id_RICcontrolHeader)) { type = 4; return true; } - else if(equal(id_RICcontrolMessage)) { type = 5; return true; } - else if(equal(id_RICcontrolAckRequest)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_RICrequestID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_RANfunctionID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_RICcallProcessID);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_RICcontrolHeader);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_RICcontrolMessage);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_RICcontrolAckRequest);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_RICrequestID() { set(reject); type=1;} - void select_id_RANfunctionID() { set(reject); type=2;} - void select_id_RICcallProcessID() { set(reject); type=3;} - void select_id_RICcontrolHeader() { set(reject); type=4;} - void select_id_RICcontrolMessage() { set(reject); type=5;} - void select_id_RICcontrolAckRequest() { set(reject); type=6;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(reject)) { type = 3; return true; } - else if(equal(reject)) { type = 4; return true; } - else if(equal(reject)) { type = 5; return true; } - else if(equal(reject)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(reject);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(reject);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(reject);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(reject);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - RICrequestID& select_id_RICrequestID() { return set(1); } - RICrequestID const* get_id_RICrequestID() const { return get(1); } - RANfunctionID& select_id_RANfunctionID() { return set(2); } - RANfunctionID const* get_id_RANfunctionID() const { return get(2); } - RICcallProcessID& select_id_RICcallProcessID() { return set(3); } - RICcallProcessID const* get_id_RICcallProcessID() const { return get(3); } - RICcontrolHeader& select_id_RICcontrolHeader() { return set(4); } - RICcontrolHeader const* get_id_RICcontrolHeader() const { return get(4); } - RICcontrolMessage& select_id_RICcontrolMessage() { return set(5); } - RICcontrolMessage const* get_id_RICcontrolMessage() const { return get(5); } - RICcontrolAckRequest& select_id_RICcontrolAckRequest() { return set(6); } - RICcontrolAckRequest const* get_id_RICcontrolAckRequest() const { return get(6); } - bool is_unknown() const { return type == 7; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_RICrequestID()); return true; - case 2: v(select_id_RANfunctionID()); return true; - case 3: v(select_id_RICcallProcessID()); return true; - case 4: v(select_id_RICcontrolHeader()); return true; - case 5: v(select_id_RICcontrolMessage()); return true; - case 6: v(select_id_RICcontrolAckRequest()); return true; - case 7: if(type != 7) {clear(); asn::base::set();} type = 7; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(RANfunctionID)]; - char dummy2[sizeof(RICcallProcessID)]; - char dummy3[sizeof(RICcontrolAckRequest)]; - char dummy4[sizeof(RICcontrolHeader)]; - char dummy5[sizeof(RICcontrolMessage)]; - char dummy6[sizeof(RICrequestID)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_RICrequestID() { set(mandatory); type=1;} - void select_id_RANfunctionID() { set(mandatory); type=2;} - void select_id_RICcallProcessID() { set(optional); type=3;} - void select_id_RICcontrolHeader() { set(mandatory); type=4;} - void select_id_RICcontrolMessage() { set(mandatory); type=5;} - void select_id_RICcontrolAckRequest() { set(optional); type=6;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else if(equal(mandatory)) { type = 4; return true; } - else if(equal(mandatory)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(mandatory);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(mandatory);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RICcontrolRequest ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{RICcontrolRequest-IEs}}, - ... -} -*/ - -struct RICcontrolRequest : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "RICcontrolRequest";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -RICindication-IEs X2AP-PROTOCOL-IES ::= { - { ID id-RICrequestID CRITICALITY reject TYPE RICrequestID PRESENCE mandatory}| - { ID id-RANfunctionID CRITICALITY reject TYPE RANfunctionID PRESENCE mandatory}| - { ID id-RICactionID CRITICALITY reject TYPE RICactionID PRESENCE mandatory}| - { ID id-RICindicationSN CRITICALITY reject TYPE RICindicationSN PRESENCE mandatory}| - { ID id-RICindicationType CRITICALITY reject TYPE RICindicationType PRESENCE mandatory}| - { ID id-RICindicationHeader CRITICALITY reject TYPE RICindicationHeader PRESENCE mandatory}| - { ID id-RICindicationMessage CRITICALITY reject TYPE RICindicationMessage PRESENCE mandatory} | - { ID id-RICcallProcessID CRITICALITY reject TYPE RICcallProcessID PRESENCE optional}, - ... -} -*/ - -struct RICindication_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 9; } - void clear() {type = 0;} - void select_id_RICrequestID() { set(id_RICrequestID); type=1;} - void select_id_RANfunctionID() { set(id_RANfunctionID); type=2;} - void select_id_RICactionID() { set(id_RICactionID); type=3;} - void select_id_RICindicationSN() { set(id_RICindicationSN); type=4;} - void select_id_RICindicationType() { set(id_RICindicationType); type=5;} - void select_id_RICindicationHeader() { set(id_RICindicationHeader); type=6;} - void select_id_RICindicationMessage() { set(id_RICindicationMessage); type=7;} - void select_id_RICcallProcessID() { set(id_RICcallProcessID); type=8;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_RICrequestID)) { type = 1; return true; } - else if(equal(id_RANfunctionID)) { type = 2; return true; } - else if(equal(id_RICactionID)) { type = 3; return true; } - else if(equal(id_RICindicationSN)) { type = 4; return true; } - else if(equal(id_RICindicationType)) { type = 5; return true; } - else if(equal(id_RICindicationHeader)) { type = 6; return true; } - else if(equal(id_RICindicationMessage)) { type = 7; return true; } - else if(equal(id_RICcallProcessID)) { type = 8; return true; } - else { type = 9; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_RICrequestID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_RANfunctionID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_RICactionID);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_RICindicationSN);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_RICindicationType);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_RICindicationHeader);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(id_RICindicationMessage);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(id_RICcallProcessID);} return false; - case 9: type = 9; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 9; } - void clear() {type = 0;} - void select_id_RICrequestID() { set(reject); type=1;} - void select_id_RANfunctionID() { set(reject); type=2;} - void select_id_RICactionID() { set(reject); type=3;} - void select_id_RICindicationSN() { set(reject); type=4;} - void select_id_RICindicationType() { set(reject); type=5;} - void select_id_RICindicationHeader() { set(reject); type=6;} - void select_id_RICindicationMessage() { set(reject); type=7;} - void select_id_RICcallProcessID() { set(reject); type=8;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(reject)) { type = 3; return true; } - else if(equal(reject)) { type = 4; return true; } - else if(equal(reject)) { type = 5; return true; } - else if(equal(reject)) { type = 6; return true; } - else if(equal(reject)) { type = 7; return true; } - else if(equal(reject)) { type = 8; return true; } - else { type = 9; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(reject);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(reject);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(reject);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(reject);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(reject);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(reject);} return false; - case 9: type = 9; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - RICrequestID& select_id_RICrequestID() { return set(1); } - RICrequestID const* get_id_RICrequestID() const { return get(1); } - RANfunctionID& select_id_RANfunctionID() { return set(2); } - RANfunctionID const* get_id_RANfunctionID() const { return get(2); } - RICactionID& select_id_RICactionID() { return set(3); } - RICactionID const* get_id_RICactionID() const { return get(3); } - RICindicationSN& select_id_RICindicationSN() { return set(4); } - RICindicationSN const* get_id_RICindicationSN() const { return get(4); } - RICindicationType& select_id_RICindicationType() { return set(5); } - RICindicationType const* get_id_RICindicationType() const { return get(5); } - RICindicationHeader& select_id_RICindicationHeader() { return set(6); } - RICindicationHeader const* get_id_RICindicationHeader() const { return get(6); } - RICindicationMessage& select_id_RICindicationMessage() { return set(7); } - RICindicationMessage const* get_id_RICindicationMessage() const { return get(7); } - RICcallProcessID& select_id_RICcallProcessID() { return set(8); } - RICcallProcessID const* get_id_RICcallProcessID() const { return get(8); } - bool is_unknown() const { return type == 9; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - case 7: var.destroy(); break; - case 8: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - v.template operator()(7); - v.template operator()(8); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_RICrequestID()); return true; - case 2: v(select_id_RANfunctionID()); return true; - case 3: v(select_id_RICactionID()); return true; - case 4: v(select_id_RICindicationSN()); return true; - case 5: v(select_id_RICindicationType()); return true; - case 6: v(select_id_RICindicationHeader()); return true; - case 7: v(select_id_RICindicationMessage()); return true; - case 8: v(select_id_RICcallProcessID()); return true; - case 9: if(type != 9) {clear(); asn::base::set();} type = 9; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - case 7: v(var.as()); return true; - case 8: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(RANfunctionID)]; - char dummy2[sizeof(RICactionID)]; - char dummy3[sizeof(RICcallProcessID)]; - char dummy4[sizeof(RICindicationHeader)]; - char dummy5[sizeof(RICindicationMessage)]; - char dummy6[sizeof(RICindicationSN)]; - char dummy7[sizeof(RICindicationType)]; - char dummy8[sizeof(RICrequestID)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 9; } - void clear() {type = 0;} - void select_id_RICrequestID() { set(mandatory); type=1;} - void select_id_RANfunctionID() { set(mandatory); type=2;} - void select_id_RICactionID() { set(mandatory); type=3;} - void select_id_RICindicationSN() { set(mandatory); type=4;} - void select_id_RICindicationType() { set(mandatory); type=5;} - void select_id_RICindicationHeader() { set(mandatory); type=6;} - void select_id_RICindicationMessage() { set(mandatory); type=7;} - void select_id_RICcallProcessID() { set(optional); type=8;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(mandatory)) { type = 4; return true; } - else if(equal(mandatory)) { type = 5; return true; } - else if(equal(mandatory)) { type = 6; return true; } - else if(equal(mandatory)) { type = 7; return true; } - else if(equal(optional)) { type = 8; return true; } - else { type = 9; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(mandatory);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(mandatory);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(mandatory);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(mandatory);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(optional);} return false; - case 9: type = 9; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RICindication ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{RICindication-IEs}}, - ... -} -*/ - -struct RICindication : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "RICindication";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -RICserviceQuery-IEs X2AP-PROTOCOL-IES ::= { - { ID id-RANfunctionsAccepted CRITICALITY reject TYPE RANfunctionsID-List PRESENCE optional}, - ... -} -*/ - -struct RICserviceQuery_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RANfunctionsAccepted() { set(id_RANfunctionsAccepted); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_RANfunctionsAccepted)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_RANfunctionsAccepted);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RANfunctionsAccepted() { set(reject); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - RANfunctionsID_List& select_id_RANfunctionsAccepted() { return set(1); } - RANfunctionsID_List const* get_id_RANfunctionsAccepted() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_RANfunctionsAccepted()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(RANfunctionsID_List)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RANfunctionsAccepted() { set(optional); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RICserviceQuery ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{RICserviceQuery-IEs}}, - ... -} -*/ - -struct RICserviceQuery : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "RICserviceQuery";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -RICserviceUpdate-IEs X2AP-PROTOCOL-IES ::= { - { ID id-RANfunctionsAdded CRITICALITY reject TYPE RANfunctions-List PRESENCE optional}| - { ID id-RANfunctionsModified CRITICALITY reject TYPE RANfunctions-List PRESENCE optional}| - { ID id-RANfunctionsDeleted CRITICALITY reject TYPE RANfunctionsID-List PRESENCE optional}, - ... -} -*/ - -struct RICserviceUpdate_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_RANfunctionsAdded() { set(id_RANfunctionsAdded); type=1;} - void select_id_RANfunctionsModified() { set(id_RANfunctionsModified); type=2;} - void select_id_RANfunctionsDeleted() { set(id_RANfunctionsDeleted); type=3;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_RANfunctionsAdded)) { type = 1; return true; } - else if(equal(id_RANfunctionsModified)) { type = 2; return true; } - else if(equal(id_RANfunctionsDeleted)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_RANfunctionsAdded);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_RANfunctionsModified);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_RANfunctionsDeleted);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_RANfunctionsAdded() { set(reject); type=1;} - void select_id_RANfunctionsModified() { set(reject); type=2;} - void select_id_RANfunctionsDeleted() { set(reject); type=3;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(reject)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(reject);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - RANfunctions_List& select_id_RANfunctionsAdded() { return set(1); } - RANfunctions_List const* get_id_RANfunctionsAdded() const { return get(1); } - RANfunctions_List& select_id_RANfunctionsModified() { return set(2); } - RANfunctions_List const* get_id_RANfunctionsModified() const { return get(2); } - RANfunctionsID_List& select_id_RANfunctionsDeleted() { return set(3); } - RANfunctionsID_List const* get_id_RANfunctionsDeleted() const { return get(3); } - bool is_unknown() const { return type == 4; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_RANfunctionsAdded()); return true; - case 2: v(select_id_RANfunctionsModified()); return true; - case 3: v(select_id_RANfunctionsDeleted()); return true; - case 4: if(type != 4) {clear(); asn::base::set();} type = 4; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(RANfunctionsID_List)]; - char dummy2[sizeof(RANfunctions_List)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_RANfunctionsAdded() { set(optional); type=1;} - void select_id_RANfunctionsModified() { set(optional); type=2;} - void select_id_RANfunctionsDeleted() { set(optional); type=3;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RICserviceUpdate ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{RICserviceUpdate-IEs}}, - ... -} -*/ - -struct RICserviceUpdate : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "RICserviceUpdate";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -RICserviceUpdateAcknowledge-IEs X2AP-PROTOCOL-IES ::= { - { ID id-RANfunctionsAccepted CRITICALITY reject TYPE RANfunctionsID-List PRESENCE optional}| - { ID id-RANfunctionsRejected CRITICALITY reject TYPE RANfunctionsIDcause-List PRESENCE optional}, - ... -} -*/ - -struct RICserviceUpdateAcknowledge_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_RANfunctionsAccepted() { set(id_RANfunctionsAccepted); type=1;} - void select_id_RANfunctionsRejected() { set(id_RANfunctionsRejected); type=2;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_RANfunctionsAccepted)) { type = 1; return true; } - else if(equal(id_RANfunctionsRejected)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_RANfunctionsAccepted);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_RANfunctionsRejected);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_RANfunctionsAccepted() { set(reject); type=1;} - void select_id_RANfunctionsRejected() { set(reject); type=2;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - RANfunctionsID_List& select_id_RANfunctionsAccepted() { return set(1); } - RANfunctionsID_List const* get_id_RANfunctionsAccepted() const { return get(1); } - RANfunctionsIDcause_List& select_id_RANfunctionsRejected() { return set(2); } - RANfunctionsIDcause_List const* get_id_RANfunctionsRejected() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_RANfunctionsAccepted()); return true; - case 2: v(select_id_RANfunctionsRejected()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(RANfunctionsID_List)]; - char dummy2[sizeof(RANfunctionsIDcause_List)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_RANfunctionsAccepted() { set(optional); type=1;} - void select_id_RANfunctionsRejected() { set(optional); type=2;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RICserviceUpdateAcknowledge ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{RICserviceUpdateAcknowledge-IEs}}, - ... -} -*/ - -struct RICserviceUpdateAcknowledge : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "RICserviceUpdateAcknowledge";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -RICserviceUpdateFailure-IEs X2AP-PROTOCOL-IES ::= { - { ID id-RANfunctionsRejected CRITICALITY reject TYPE RANfunctionsIDcause-List PRESENCE optional}| - { ID id-TimeToWait CRITICALITY ignore TYPE TimeToWait PRESENCE optional}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, - ... -} -*/ - -struct RICserviceUpdateFailure_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_RANfunctionsRejected() { set(id_RANfunctionsRejected); type=1;} - void select_id_TimeToWait() { set(id_TimeToWait); type=2;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=3;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_RANfunctionsRejected)) { type = 1; return true; } - else if(equal(id_TimeToWait)) { type = 2; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_RANfunctionsRejected);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_TimeToWait);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_RANfunctionsRejected() { set(reject); type=1;} - void select_id_TimeToWait() { set(ignore); type=2;} - void select_id_CriticalityDiagnostics() { set(ignore); type=3;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - RANfunctionsIDcause_List& select_id_RANfunctionsRejected() { return set(1); } - RANfunctionsIDcause_List const* get_id_RANfunctionsRejected() const { return get(1); } - TimeToWait& select_id_TimeToWait() { return set(2); } - TimeToWait const* get_id_TimeToWait() const { return get(2); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(3); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(3); } - bool is_unknown() const { return type == 4; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_RANfunctionsRejected()); return true; - case 2: v(select_id_TimeToWait()); return true; - case 3: v(select_id_CriticalityDiagnostics()); return true; - case 4: if(type != 4) {clear(); asn::base::set();} type = 4; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CriticalityDiagnostics)]; - char dummy2[sizeof(RANfunctionsIDcause_List)]; - char dummy3[sizeof(TimeToWait)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_RANfunctionsRejected() { set(optional); type=1;} - void select_id_TimeToWait() { set(optional); type=2;} - void select_id_CriticalityDiagnostics() { set(optional); type=3;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RICserviceUpdateFailure ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{RICserviceUpdateFailure-IEs}}, - ... -} -*/ - -struct RICserviceUpdateFailure : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "RICserviceUpdateFailure";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -RICsubscription ::= SEQUENCE { - ricEventTriggerDefinition RICeventTriggerDefinition, - ricAction-ToBeSetup-List RICactions-ToBeSetup-List, - ... -} -*/ - -struct RICsubscription : asn::sequence<2, 0, true, 0> -{ - static constexpr const char* name() {return "RICsubscription";} - using parent_t = asn::sequence<2, 0, true, 0>; - struct ricEventTriggerDefinition_t : RICeventTriggerDefinition - { - static constexpr const char* name() {return "ricEventTriggerDefinition_t";} - using parent_t = RICeventTriggerDefinition; - - }; - ricEventTriggerDefinition_t& ref_ricEventTriggerDefinition() {return ricEventTriggerDefinition;} - ricEventTriggerDefinition_t const& ref_ricEventTriggerDefinition() const {return ricEventTriggerDefinition;} - struct ricAction_ToBeSetup_List_t : RICactions_ToBeSetup_List - { - static constexpr const char* name() {return "ricAction_ToBeSetup_List_t";} - using parent_t = RICactions_ToBeSetup_List; - - }; - ricAction_ToBeSetup_List_t& ref_ricAction_ToBeSetup_List() {return ricAction_ToBeSetup_List;} - ricAction_ToBeSetup_List_t const& ref_ricAction_ToBeSetup_List() const {return ricAction_ToBeSetup_List;} - template void decode(V& v) - { - v(ricEventTriggerDefinition); - v(ricAction_ToBeSetup_List); - - }; - template void encode(V& v) const - { - v(ricEventTriggerDefinition); - v(ricAction_ToBeSetup_List); - - }; - void clear() - { - ricEventTriggerDefinition.clear(); - ricAction_ToBeSetup_List.clear(); - - }; - private: - ricEventTriggerDefinition_t ricEventTriggerDefinition; - ricAction_ToBeSetup_List_t ricAction_ToBeSetup_List; - -}; -/* -RICsubscriptionDeleteFailure-IEs X2AP-PROTOCOL-IES ::= { - { ID id-RICrequestID CRITICALITY reject TYPE RICrequestID PRESENCE mandatory}| - { ID id-RANfunctionID CRITICALITY reject TYPE RANfunctionID PRESENCE mandatory}| - { ID id-RICcause CRITICALITY reject TYPE RICcause PRESENCE mandatory}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, - ... -} -*/ - -struct RICsubscriptionDeleteFailure_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_RICrequestID() { set(id_RICrequestID); type=1;} - void select_id_RANfunctionID() { set(id_RANfunctionID); type=2;} - void select_id_RICcause() { set(id_RICcause); type=3;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=4;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_RICrequestID)) { type = 1; return true; } - else if(equal(id_RANfunctionID)) { type = 2; return true; } - else if(equal(id_RICcause)) { type = 3; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_RICrequestID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_RANfunctionID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_RICcause);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_RICrequestID() { set(reject); type=1;} - void select_id_RANfunctionID() { set(reject); type=2;} - void select_id_RICcause() { set(reject); type=3;} - void select_id_CriticalityDiagnostics() { set(ignore); type=4;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(reject)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(reject);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - RICrequestID& select_id_RICrequestID() { return set(1); } - RICrequestID const* get_id_RICrequestID() const { return get(1); } - RANfunctionID& select_id_RANfunctionID() { return set(2); } - RANfunctionID const* get_id_RANfunctionID() const { return get(2); } - RICcause& select_id_RICcause() { return set(3); } - RICcause const* get_id_RICcause() const { return get(3); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(4); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(4); } - bool is_unknown() const { return type == 5; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_RICrequestID()); return true; - case 2: v(select_id_RANfunctionID()); return true; - case 3: v(select_id_RICcause()); return true; - case 4: v(select_id_CriticalityDiagnostics()); return true; - case 5: if(type != 5) {clear(); asn::base::set();} type = 5; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CriticalityDiagnostics)]; - char dummy2[sizeof(RANfunctionID)]; - char dummy3[sizeof(RICcause)]; - char dummy4[sizeof(RICrequestID)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_RICrequestID() { set(mandatory); type=1;} - void select_id_RANfunctionID() { set(mandatory); type=2;} - void select_id_RICcause() { set(mandatory); type=3;} - void select_id_CriticalityDiagnostics() { set(optional); type=4;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RICsubscriptionDeleteFailure ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{RICsubscriptionDeleteFailure-IEs}}, - ... -} -*/ - -struct RICsubscriptionDeleteFailure : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "RICsubscriptionDeleteFailure";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -RICsubscriptionDeleteRequest-IEs X2AP-PROTOCOL-IES ::= { - { ID id-RICrequestID CRITICALITY reject TYPE RICrequestID PRESENCE mandatory}| - { ID id-RANfunctionID CRITICALITY reject TYPE RANfunctionID PRESENCE mandatory}, - ... -} -*/ - -struct RICsubscriptionDeleteRequest_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_RICrequestID() { set(id_RICrequestID); type=1;} - void select_id_RANfunctionID() { set(id_RANfunctionID); type=2;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_RICrequestID)) { type = 1; return true; } - else if(equal(id_RANfunctionID)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_RICrequestID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_RANfunctionID);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_RICrequestID() { set(reject); type=1;} - void select_id_RANfunctionID() { set(reject); type=2;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - RICrequestID& select_id_RICrequestID() { return set(1); } - RICrequestID const* get_id_RICrequestID() const { return get(1); } - RANfunctionID& select_id_RANfunctionID() { return set(2); } - RANfunctionID const* get_id_RANfunctionID() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_RICrequestID()); return true; - case 2: v(select_id_RANfunctionID()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(RANfunctionID)]; - char dummy2[sizeof(RICrequestID)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_RICrequestID() { set(mandatory); type=1;} - void select_id_RANfunctionID() { set(mandatory); type=2;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RICsubscriptionDeleteRequest ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{RICsubscriptionDeleteRequest-IEs}}, - ... -} -*/ - -struct RICsubscriptionDeleteRequest : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "RICsubscriptionDeleteRequest";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -RICsubscriptionDeleteResponse-IEs X2AP-PROTOCOL-IES ::= { - { ID id-RICrequestID CRITICALITY reject TYPE RICrequestID PRESENCE mandatory}| - { ID id-RANfunctionID CRITICALITY reject TYPE RANfunctionID PRESENCE mandatory}, - ... -} -*/ - -struct RICsubscriptionDeleteResponse_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_RICrequestID() { set(id_RICrequestID); type=1;} - void select_id_RANfunctionID() { set(id_RANfunctionID); type=2;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_RICrequestID)) { type = 1; return true; } - else if(equal(id_RANfunctionID)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_RICrequestID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_RANfunctionID);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_RICrequestID() { set(reject); type=1;} - void select_id_RANfunctionID() { set(reject); type=2;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - RICrequestID& select_id_RICrequestID() { return set(1); } - RICrequestID const* get_id_RICrequestID() const { return get(1); } - RANfunctionID& select_id_RANfunctionID() { return set(2); } - RANfunctionID const* get_id_RANfunctionID() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_RICrequestID()); return true; - case 2: v(select_id_RANfunctionID()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(RANfunctionID)]; - char dummy2[sizeof(RICrequestID)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_RICrequestID() { set(mandatory); type=1;} - void select_id_RANfunctionID() { set(mandatory); type=2;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RICsubscriptionDeleteResponse ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{RICsubscriptionDeleteResponse-IEs}}, - ... -} -*/ - -struct RICsubscriptionDeleteResponse : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "RICsubscriptionDeleteResponse";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -RICsubscriptionFailure-IEs X2AP-PROTOCOL-IES ::= { - { ID id-RICrequestID CRITICALITY reject TYPE RICrequestID PRESENCE mandatory}| - { ID id-RANfunctionID CRITICALITY reject TYPE RANfunctionID PRESENCE mandatory}| - { ID id-RICactions-NotAdmitted CRITICALITY reject TYPE RICaction-NotAdmitted-List PRESENCE mandatory}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, - ... -} -*/ - -struct RICsubscriptionFailure_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_RICrequestID() { set(id_RICrequestID); type=1;} - void select_id_RANfunctionID() { set(id_RANfunctionID); type=2;} - void select_id_RICactions_NotAdmitted() { set(id_RICactions_NotAdmitted); type=3;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=4;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_RICrequestID)) { type = 1; return true; } - else if(equal(id_RANfunctionID)) { type = 2; return true; } - else if(equal(id_RICactions_NotAdmitted)) { type = 3; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_RICrequestID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_RANfunctionID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_RICactions_NotAdmitted);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_RICrequestID() { set(reject); type=1;} - void select_id_RANfunctionID() { set(reject); type=2;} - void select_id_RICactions_NotAdmitted() { set(reject); type=3;} - void select_id_CriticalityDiagnostics() { set(ignore); type=4;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(reject)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(reject);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - RICrequestID& select_id_RICrequestID() { return set(1); } - RICrequestID const* get_id_RICrequestID() const { return get(1); } - RANfunctionID& select_id_RANfunctionID() { return set(2); } - RANfunctionID const* get_id_RANfunctionID() const { return get(2); } - RICaction_NotAdmitted_List& select_id_RICactions_NotAdmitted() { return set(3); } - RICaction_NotAdmitted_List const* get_id_RICactions_NotAdmitted() const { return get(3); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(4); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(4); } - bool is_unknown() const { return type == 5; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_RICrequestID()); return true; - case 2: v(select_id_RANfunctionID()); return true; - case 3: v(select_id_RICactions_NotAdmitted()); return true; - case 4: v(select_id_CriticalityDiagnostics()); return true; - case 5: if(type != 5) {clear(); asn::base::set();} type = 5; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CriticalityDiagnostics)]; - char dummy2[sizeof(RANfunctionID)]; - char dummy3[sizeof(RICaction_NotAdmitted_List)]; - char dummy4[sizeof(RICrequestID)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_RICrequestID() { set(mandatory); type=1;} - void select_id_RANfunctionID() { set(mandatory); type=2;} - void select_id_RICactions_NotAdmitted() { set(mandatory); type=3;} - void select_id_CriticalityDiagnostics() { set(optional); type=4;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RICsubscriptionFailure ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{RICsubscriptionFailure-IEs}}, - ... -} -*/ - -struct RICsubscriptionFailure : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "RICsubscriptionFailure";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -RICsubscriptionRequest-IEs X2AP-PROTOCOL-IES ::= { - { ID id-RICrequestID CRITICALITY reject TYPE RICrequestID PRESENCE mandatory}| - { ID id-RANfunctionID CRITICALITY reject TYPE RANfunctionID PRESENCE mandatory}| - { ID id-RICsubscription CRITICALITY reject TYPE RICsubscription PRESENCE mandatory}, - ... -} -*/ - -struct RICsubscriptionRequest_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_RICrequestID() { set(id_RICrequestID); type=1;} - void select_id_RANfunctionID() { set(id_RANfunctionID); type=2;} - void select_id_RICsubscription() { set(id_RICsubscription); type=3;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_RICrequestID)) { type = 1; return true; } - else if(equal(id_RANfunctionID)) { type = 2; return true; } - else if(equal(id_RICsubscription)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_RICrequestID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_RANfunctionID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_RICsubscription);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_RICrequestID() { set(reject); type=1;} - void select_id_RANfunctionID() { set(reject); type=2;} - void select_id_RICsubscription() { set(reject); type=3;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(reject)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(reject);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - RICrequestID& select_id_RICrequestID() { return set(1); } - RICrequestID const* get_id_RICrequestID() const { return get(1); } - RANfunctionID& select_id_RANfunctionID() { return set(2); } - RANfunctionID const* get_id_RANfunctionID() const { return get(2); } - RICsubscription& select_id_RICsubscription() { return set(3); } - RICsubscription const* get_id_RICsubscription() const { return get(3); } - bool is_unknown() const { return type == 4; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_RICrequestID()); return true; - case 2: v(select_id_RANfunctionID()); return true; - case 3: v(select_id_RICsubscription()); return true; - case 4: if(type != 4) {clear(); asn::base::set();} type = 4; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(RANfunctionID)]; - char dummy2[sizeof(RICrequestID)]; - char dummy3[sizeof(RICsubscription)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_RICrequestID() { set(mandatory); type=1;} - void select_id_RANfunctionID() { set(mandatory); type=2;} - void select_id_RICsubscription() { set(mandatory); type=3;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RICsubscriptionRequest ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{RICsubscriptionRequest-IEs}}, - ... -} -*/ - -struct RICsubscriptionRequest : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "RICsubscriptionRequest";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -RICsubscriptionResponse-IEs X2AP-PROTOCOL-IES ::= { - { ID id-RICrequestID CRITICALITY reject TYPE RICrequestID PRESENCE mandatory } | - { ID id-RANfunctionID CRITICALITY reject TYPE RANfunctionID PRESENCE mandatory } | - { ID id-RICactions-Admitted CRITICALITY reject TYPE RICaction-Admitted-List PRESENCE mandatory } | - { ID id-RICactions-NotAdmitted CRITICALITY reject TYPE RICaction-NotAdmitted-List PRESENCE optional }, - ... -} -*/ - -struct RICsubscriptionResponse_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_RICrequestID() { set(id_RICrequestID); type=1;} - void select_id_RANfunctionID() { set(id_RANfunctionID); type=2;} - void select_id_RICactions_Admitted() { set(id_RICactions_Admitted); type=3;} - void select_id_RICactions_NotAdmitted() { set(id_RICactions_NotAdmitted); type=4;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_RICrequestID)) { type = 1; return true; } - else if(equal(id_RANfunctionID)) { type = 2; return true; } - else if(equal(id_RICactions_Admitted)) { type = 3; return true; } - else if(equal(id_RICactions_NotAdmitted)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_RICrequestID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_RANfunctionID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_RICactions_Admitted);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_RICactions_NotAdmitted);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_RICrequestID() { set(reject); type=1;} - void select_id_RANfunctionID() { set(reject); type=2;} - void select_id_RICactions_Admitted() { set(reject); type=3;} - void select_id_RICactions_NotAdmitted() { set(reject); type=4;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(reject)) { type = 3; return true; } - else if(equal(reject)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(reject);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(reject);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - RICrequestID& select_id_RICrequestID() { return set(1); } - RICrequestID const* get_id_RICrequestID() const { return get(1); } - RANfunctionID& select_id_RANfunctionID() { return set(2); } - RANfunctionID const* get_id_RANfunctionID() const { return get(2); } - RICaction_Admitted_List& select_id_RICactions_Admitted() { return set(3); } - RICaction_Admitted_List const* get_id_RICactions_Admitted() const { return get(3); } - RICaction_NotAdmitted_List& select_id_RICactions_NotAdmitted() { return set(4); } - RICaction_NotAdmitted_List const* get_id_RICactions_NotAdmitted() const { return get(4); } - bool is_unknown() const { return type == 5; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_RICrequestID()); return true; - case 2: v(select_id_RANfunctionID()); return true; - case 3: v(select_id_RICactions_Admitted()); return true; - case 4: v(select_id_RICactions_NotAdmitted()); return true; - case 5: if(type != 5) {clear(); asn::base::set();} type = 5; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(RANfunctionID)]; - char dummy2[sizeof(RICaction_Admitted_List)]; - char dummy3[sizeof(RICaction_NotAdmitted_List)]; - char dummy4[sizeof(RICrequestID)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_RICrequestID() { set(mandatory); type=1;} - void select_id_RANfunctionID() { set(mandatory); type=2;} - void select_id_RICactions_Admitted() { set(mandatory); type=3;} - void select_id_RICactions_NotAdmitted() { set(optional); type=4;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RICsubscriptionResponse ::= SEQUENCE { - protocolIEs ProtocolIE-Container{{RICsubscriptionResponse-IEs}}, - ... -} -*/ - -struct RICsubscriptionResponse : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "RICsubscriptionResponse";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; diff --git a/e2sim/previous/e2apv1sim/e2sim/src/ASN1/generated/E2AP-PDU-Descriptions.hpp b/e2sim/previous/e2apv1sim/e2sim/src/ASN1/generated/E2AP-PDU-Descriptions.hpp deleted file mode 100644 index f426b97..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/ASN1/generated/E2AP-PDU-Descriptions.hpp +++ /dev/null @@ -1,980 +0,0 @@ -/***************************************************************************** -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -#pragma once - -#include "asn/asn.hpp" -static_assert(ASN_API_VERSION_MAJOR == 5, "re-generate the ASN parser's code using 'make regen-asn' (do not use -j option)"); - -#include "X2AP-CommonDataTypes.hpp" -#include "X2AP-PDU-Contents.hpp" -#include "X2AP-Constants.hpp" -#include "E2AP-PDU-Contents.hpp" -#include "E2AP-Constants.hpp" - -/* -E2AP-ELEMENTARY-PROCEDURE ::= CLASS { - &InitiatingMessage , - &SuccessfulOutcome OPTIONAL, - &UnsuccessfulOutcome OPTIONAL, - &procedureCode ProcedureCode UNIQUE, - &criticality Criticality DEFAULT ignore -} -WITH SYNTAX { - INITIATING MESSAGE &InitiatingMessage - [SUCCESSFUL OUTCOME &SuccessfulOutcome] - [UNSUCCESSFUL OUTCOME &UnsuccessfulOutcome] - PROCEDURE CODE &procedureCode - [CRITICALITY &criticality] -} -*/ - -struct E2AP_ELEMENTARY_PROCEDURE -{ - struct procedureCode_t : ProcedureCode - { - static constexpr const char* name() {return "procedureCode_t";} - using parent_t = ProcedureCode; - - }; - struct criticality_t : Criticality - { - static constexpr const char* name() {return "criticality_t";} - using parent_t = Criticality; - - }; - -}; -/* -E2AP-ELEMENTARY-PROCEDURES E2AP-ELEMENTARY-PROCEDURE ::= { - E2AP-ELEMENTARY-PROCEDURES-CLASS-1 | - E2AP-ELEMENTARY-PROCEDURES-CLASS-2, - ... -} -*/ - -struct E2AP_ELEMENTARY_PROCEDURES -{ - struct InitiatingMessage_t : asn::typefield - { - ~InitiatingMessage_t() {clear();} - size_t get_index() const {return type;} - RICsubscriptionRequest& select_id_ricSubscription() { return set(1); } - RICsubscriptionRequest const* get_id_ricSubscription() const { return get(1); } - RICsubscriptionDeleteRequest& select_id_ricSubscriptionDelete() { return set(2); } - RICsubscriptionDeleteRequest const* get_id_ricSubscriptionDelete() const { return get(2); } - RICserviceUpdate& select_id_ricServiceUpdate() { return set(3); } - RICserviceUpdate const* get_id_ricServiceUpdate() const { return get(3); } - RICcontrolRequest& select_id_ricControl() { return set(4); } - RICcontrolRequest const* get_id_ricControl() const { return get(4); } - X2SetupRequest& select_id_x2Setup() { return set(5); } - X2SetupRequest const* get_id_x2Setup() const { return get(5); } - ENDCX2SetupRequest& select_id_endcX2Setup() { return set(6); } - ENDCX2SetupRequest const* get_id_endcX2Setup() const { return get(6); } - ResourceStatusRequest& select_id_resourceStatusReportingInitiation() { return set(7); } - ResourceStatusRequest const* get_id_resourceStatusReportingInitiation() const { return get(7); } - ENBConfigurationUpdate& select_id_eNBConfigurationUpdate() { return set(8); } - ENBConfigurationUpdate const* get_id_eNBConfigurationUpdate() const { return get(8); } - ENDCConfigurationUpdate& select_id_endcConfigurationUpdate() { return set(9); } - ENDCConfigurationUpdate const* get_id_endcConfigurationUpdate() const { return get(9); } - ResetRequest& select_id_reset() { return set(10); } - ResetRequest const* get_id_reset() const { return get(10); } - RICindication& select_id_ricIndication() { return set(11); } - RICindication const* get_id_ricIndication() const { return get(11); } - RICserviceQuery& select_id_ricServiceQuery() { return set(12); } - RICserviceQuery const* get_id_ricServiceQuery() const { return get(12); } - LoadInformation& select_id_loadIndication() { return set(13); } - LoadInformation const* get_id_loadIndication() const { return get(13); } - GNBStatusIndication& select_id_gNBStatusIndication() { return set(14); } - GNBStatusIndication const* get_id_gNBStatusIndication() const { return get(14); } - ResourceStatusUpdate& select_id_resourceStatusReporting() { return set(15); } - ResourceStatusUpdate const* get_id_resourceStatusReporting() const { return get(15); } - ErrorIndication& select_id_errorIndication() { return set(16); } - ErrorIndication const* get_id_errorIndication() const { return get(16); } - bool is_unknown() const { return type == 17; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - case 7: var.destroy(); break; - case 8: var.destroy(); break; - case 9: var.destroy(); break; - case 10: var.destroy(); break; - case 11: var.destroy(); break; - case 12: var.destroy(); break; - case 13: var.destroy(); break; - case 14: var.destroy(); break; - case 15: var.destroy(); break; - case 16: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - v.template operator()(7); - v.template operator()(8); - v.template operator()(9); - v.template operator()(10); - v.template operator()(11); - v.template operator()(12); - v.template operator()(13); - v.template operator()(14); - v.template operator()(15); - v.template operator()(16); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_ricSubscription()); return true; - case 2: v(select_id_ricSubscriptionDelete()); return true; - case 3: v(select_id_ricServiceUpdate()); return true; - case 4: v(select_id_ricControl()); return true; - case 5: v(select_id_x2Setup()); return true; - case 6: v(select_id_endcX2Setup()); return true; - case 7: v(select_id_resourceStatusReportingInitiation()); return true; - case 8: v(select_id_eNBConfigurationUpdate()); return true; - case 9: v(select_id_endcConfigurationUpdate()); return true; - case 10: v(select_id_reset()); return true; - case 11: v(select_id_ricIndication()); return true; - case 12: v(select_id_ricServiceQuery()); return true; - case 13: v(select_id_loadIndication()); return true; - case 14: v(select_id_gNBStatusIndication()); return true; - case 15: v(select_id_resourceStatusReporting()); return true; - case 16: v(select_id_errorIndication()); return true; - case 17: if(type != 17) {clear(); asn::base::set();} type = 17; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - case 7: v(var.as()); return true; - case 8: v(var.as()); return true; - case 9: v(var.as()); return true; - case 10: v(var.as()); return true; - case 11: v(var.as()); return true; - case 12: v(var.as()); return true; - case 13: v(var.as()); return true; - case 14: v(var.as()); return true; - case 15: v(var.as()); return true; - case 16: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(ENBConfigurationUpdate)]; - char dummy2[sizeof(ENDCConfigurationUpdate)]; - char dummy3[sizeof(ENDCX2SetupRequest)]; - char dummy4[sizeof(ErrorIndication)]; - char dummy5[sizeof(GNBStatusIndication)]; - char dummy6[sizeof(LoadInformation)]; - char dummy7[sizeof(RICcontrolRequest)]; - char dummy8[sizeof(RICindication)]; - char dummy9[sizeof(RICserviceQuery)]; - char dummy10[sizeof(RICserviceUpdate)]; - char dummy11[sizeof(RICsubscriptionDeleteRequest)]; - char dummy12[sizeof(RICsubscriptionRequest)]; - char dummy13[sizeof(ResetRequest)]; - char dummy14[sizeof(ResourceStatusRequest)]; - char dummy15[sizeof(ResourceStatusUpdate)]; - char dummy16[sizeof(X2SetupRequest)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct SuccessfulOutcome_t : asn::typefield - { - ~SuccessfulOutcome_t() {clear();} - size_t get_index() const {return type;} - RICsubscriptionResponse& select_id_ricSubscription() { return set(1); } - RICsubscriptionResponse const* get_id_ricSubscription() const { return get(1); } - RICsubscriptionDeleteResponse& select_id_ricSubscriptionDelete() { return set(2); } - RICsubscriptionDeleteResponse const* get_id_ricSubscriptionDelete() const { return get(2); } - RICserviceUpdateAcknowledge& select_id_ricServiceUpdate() { return set(3); } - RICserviceUpdateAcknowledge const* get_id_ricServiceUpdate() const { return get(3); } - RICcontrolAcknowledge& select_id_ricControl() { return set(4); } - RICcontrolAcknowledge const* get_id_ricControl() const { return get(4); } - X2SetupResponse& select_id_x2Setup() { return set(5); } - X2SetupResponse const* get_id_x2Setup() const { return get(5); } - ENDCX2SetupResponse& select_id_endcX2Setup() { return set(6); } - ENDCX2SetupResponse const* get_id_endcX2Setup() const { return get(6); } - ResourceStatusResponse& select_id_resourceStatusReportingInitiation() { return set(7); } - ResourceStatusResponse const* get_id_resourceStatusReportingInitiation() const { return get(7); } - ENBConfigurationUpdateAcknowledge& select_id_eNBConfigurationUpdate() { return set(8); } - ENBConfigurationUpdateAcknowledge const* get_id_eNBConfigurationUpdate() const { return get(8); } - ENDCConfigurationUpdateAcknowledge& select_id_endcConfigurationUpdate() { return set(9); } - ENDCConfigurationUpdateAcknowledge const* get_id_endcConfigurationUpdate() const { return get(9); } - ResetResponse& select_id_reset() { return set(10); } - ResetResponse const* get_id_reset() const { return get(10); } - bool is_unknown() const { return type == 17; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - case 7: var.destroy(); break; - case 8: var.destroy(); break; - case 9: var.destroy(); break; - case 10: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - v.template operator()(7); - v.template operator()(8); - v.template operator()(9); - v.template operator()(10); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_ricSubscription()); return true; - case 2: v(select_id_ricSubscriptionDelete()); return true; - case 3: v(select_id_ricServiceUpdate()); return true; - case 4: v(select_id_ricControl()); return true; - case 5: v(select_id_x2Setup()); return true; - case 6: v(select_id_endcX2Setup()); return true; - case 7: v(select_id_resourceStatusReportingInitiation()); return true; - case 8: v(select_id_eNBConfigurationUpdate()); return true; - case 9: v(select_id_endcConfigurationUpdate()); return true; - case 10: v(select_id_reset()); return true; - case 17: if(type != 17) {clear(); asn::base::set();} type = 17; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - case 7: v(var.as()); return true; - case 8: v(var.as()); return true; - case 9: v(var.as()); return true; - case 10: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(ENBConfigurationUpdateAcknowledge)]; - char dummy2[sizeof(ENDCConfigurationUpdateAcknowledge)]; - char dummy3[sizeof(ENDCX2SetupResponse)]; - char dummy4[sizeof(RICcontrolAcknowledge)]; - char dummy5[sizeof(RICserviceUpdateAcknowledge)]; - char dummy6[sizeof(RICsubscriptionDeleteResponse)]; - char dummy7[sizeof(RICsubscriptionResponse)]; - char dummy8[sizeof(ResetResponse)]; - char dummy9[sizeof(ResourceStatusResponse)]; - char dummy10[sizeof(X2SetupResponse)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct UnsuccessfulOutcome_t : asn::typefield - { - ~UnsuccessfulOutcome_t() {clear();} - size_t get_index() const {return type;} - RICsubscriptionFailure& select_id_ricSubscription() { return set(1); } - RICsubscriptionFailure const* get_id_ricSubscription() const { return get(1); } - RICsubscriptionDeleteFailure& select_id_ricSubscriptionDelete() { return set(2); } - RICsubscriptionDeleteFailure const* get_id_ricSubscriptionDelete() const { return get(2); } - RICserviceUpdateFailure& select_id_ricServiceUpdate() { return set(3); } - RICserviceUpdateFailure const* get_id_ricServiceUpdate() const { return get(3); } - RICcontrolFailure& select_id_ricControl() { return set(4); } - RICcontrolFailure const* get_id_ricControl() const { return get(4); } - X2SetupFailure& select_id_x2Setup() { return set(5); } - X2SetupFailure const* get_id_x2Setup() const { return get(5); } - ENDCX2SetupFailure& select_id_endcX2Setup() { return set(6); } - ENDCX2SetupFailure const* get_id_endcX2Setup() const { return get(6); } - ResourceStatusFailure& select_id_resourceStatusReportingInitiation() { return set(7); } - ResourceStatusFailure const* get_id_resourceStatusReportingInitiation() const { return get(7); } - ENBConfigurationUpdateFailure& select_id_eNBConfigurationUpdate() { return set(8); } - ENBConfigurationUpdateFailure const* get_id_eNBConfigurationUpdate() const { return get(8); } - ENDCConfigurationUpdateFailure& select_id_endcConfigurationUpdate() { return set(9); } - ENDCConfigurationUpdateFailure const* get_id_endcConfigurationUpdate() const { return get(9); } - bool is_unknown() const { return type == 17; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - case 7: var.destroy(); break; - case 8: var.destroy(); break; - case 9: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - v.template operator()(7); - v.template operator()(8); - v.template operator()(9); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_ricSubscription()); return true; - case 2: v(select_id_ricSubscriptionDelete()); return true; - case 3: v(select_id_ricServiceUpdate()); return true; - case 4: v(select_id_ricControl()); return true; - case 5: v(select_id_x2Setup()); return true; - case 6: v(select_id_endcX2Setup()); return true; - case 7: v(select_id_resourceStatusReportingInitiation()); return true; - case 8: v(select_id_eNBConfigurationUpdate()); return true; - case 9: v(select_id_endcConfigurationUpdate()); return true; - case 17: if(type != 17) {clear(); asn::base::set();} type = 17; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - case 7: v(var.as()); return true; - case 8: v(var.as()); return true; - case 9: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(ENBConfigurationUpdateFailure)]; - char dummy2[sizeof(ENDCConfigurationUpdateFailure)]; - char dummy3[sizeof(ENDCX2SetupFailure)]; - char dummy4[sizeof(RICcontrolFailure)]; - char dummy5[sizeof(RICserviceUpdateFailure)]; - char dummy6[sizeof(RICsubscriptionDeleteFailure)]; - char dummy7[sizeof(RICsubscriptionFailure)]; - char dummy8[sizeof(ResourceStatusFailure)]; - char dummy9[sizeof(X2SetupFailure)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct procedureCode_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 17; } - void clear() {type = 0;} - void select_id_ricSubscription() { set(id_ricSubscription); type=1;} - void select_id_ricSubscriptionDelete() { set(id_ricSubscriptionDelete); type=2;} - void select_id_ricServiceUpdate() { set(id_ricServiceUpdate); type=3;} - void select_id_ricControl() { set(id_ricControl); type=4;} - void select_id_x2Setup() { set(id_x2Setup); type=5;} - void select_id_endcX2Setup() { set(id_endcX2Setup); type=6;} - void select_id_resourceStatusReportingInitiation() { set(id_resourceStatusReportingInitiation); type=7;} - void select_id_eNBConfigurationUpdate() { set(id_eNBConfigurationUpdate); type=8;} - void select_id_endcConfigurationUpdate() { set(id_endcConfigurationUpdate); type=9;} - void select_id_reset() { set(id_reset); type=10;} - void select_id_ricIndication() { set(id_ricIndication); type=11;} - void select_id_ricServiceQuery() { set(id_ricServiceQuery); type=12;} - void select_id_loadIndication() { set(id_loadIndication); type=13;} - void select_id_gNBStatusIndication() { set(id_gNBStatusIndication); type=14;} - void select_id_resourceStatusReporting() { set(id_resourceStatusReporting); type=15;} - void select_id_errorIndication() { set(id_errorIndication); type=16;} - E2AP_ELEMENTARY_PROCEDURE::procedureCode_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_ricSubscription)) { type = 1; return true; } - else if(equal(id_ricSubscriptionDelete)) { type = 2; return true; } - else if(equal(id_ricServiceUpdate)) { type = 3; return true; } - else if(equal(id_ricControl)) { type = 4; return true; } - else if(equal(id_x2Setup)) { type = 5; return true; } - else if(equal(id_endcX2Setup)) { type = 6; return true; } - else if(equal(id_resourceStatusReportingInitiation)) { type = 7; return true; } - else if(equal(id_eNBConfigurationUpdate)) { type = 8; return true; } - else if(equal(id_endcConfigurationUpdate)) { type = 9; return true; } - else if(equal(id_reset)) { type = 10; return true; } - else if(equal(id_ricIndication)) { type = 11; return true; } - else if(equal(id_ricServiceQuery)) { type = 12; return true; } - else if(equal(id_loadIndication)) { type = 13; return true; } - else if(equal(id_gNBStatusIndication)) { type = 14; return true; } - else if(equal(id_resourceStatusReporting)) { type = 15; return true; } - else if(equal(id_errorIndication)) { type = 16; return true; } - else { type = 17; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_ricSubscription);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_ricSubscriptionDelete);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_ricServiceUpdate);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_ricControl);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_x2Setup);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_endcX2Setup);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(id_resourceStatusReportingInitiation);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(id_eNBConfigurationUpdate);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(id_endcConfigurationUpdate);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(id_reset);} return false; - case 11: type = 11; if(v(ref_nested())) { return equal(id_ricIndication);} return false; - case 12: type = 12; if(v(ref_nested())) { return equal(id_ricServiceQuery);} return false; - case 13: type = 13; if(v(ref_nested())) { return equal(id_loadIndication);} return false; - case 14: type = 14; if(v(ref_nested())) { return equal(id_gNBStatusIndication);} return false; - case 15: type = 15; if(v(ref_nested())) { return equal(id_resourceStatusReporting);} return false; - case 16: type = 16; if(v(ref_nested())) { return equal(id_errorIndication);} return false; - case 17: type = 17; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 17; } - void clear() {type = 0;} - void select_id_ricSubscription() { set(reject); type=1;} - void select_id_ricSubscriptionDelete() { set(reject); type=2;} - void select_id_ricServiceUpdate() { set(reject); type=3;} - void select_id_ricControl() { set(reject); type=4;} - void select_id_x2Setup() { set(reject); type=5;} - void select_id_endcX2Setup() { set(reject); type=6;} - void select_id_resourceStatusReportingInitiation() { set(reject); type=7;} - void select_id_eNBConfigurationUpdate() { set(reject); type=8;} - void select_id_endcConfigurationUpdate() { set(reject); type=9;} - void select_id_reset() { set(reject); type=10;} - void select_id_ricIndication() { set(ignore); type=11;} - void select_id_ricServiceQuery() { set(ignore); type=12;} - void select_id_loadIndication() { set(ignore); type=13;} - void select_id_gNBStatusIndication() { set(ignore); type=14;} - void select_id_resourceStatusReporting() { set(ignore); type=15;} - void select_id_errorIndication() { set(ignore); type=16;} - E2AP_ELEMENTARY_PROCEDURE::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(reject)) { type = 3; return true; } - else if(equal(reject)) { type = 4; return true; } - else if(equal(reject)) { type = 5; return true; } - else if(equal(reject)) { type = 6; return true; } - else if(equal(reject)) { type = 7; return true; } - else if(equal(reject)) { type = 8; return true; } - else if(equal(reject)) { type = 9; return true; } - else if(equal(reject)) { type = 10; return true; } - else if(equal(ignore)) { type = 11; return true; } - else if(equal(ignore)) { type = 12; return true; } - else if(equal(ignore)) { type = 13; return true; } - else if(equal(ignore)) { type = 14; return true; } - else if(equal(ignore)) { type = 15; return true; } - else if(equal(ignore)) { type = 16; return true; } - else { type = 17; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(reject);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(reject);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(reject);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(reject);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(reject);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(reject);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(reject);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(reject);} return false; - case 11: type = 11; if(v(ref_nested())) { return equal(ignore);} return false; - case 12: type = 12; if(v(ref_nested())) { return equal(ignore);} return false; - case 13: type = 13; if(v(ref_nested())) { return equal(ignore);} return false; - case 14: type = 14; if(v(ref_nested())) { return equal(ignore);} return false; - case 15: type = 15; if(v(ref_nested())) { return equal(ignore);} return false; - case 16: type = 16; if(v(ref_nested())) { return equal(ignore);} return false; - case 17: type = 17; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -InitiatingMessage ::= SEQUENCE { - procedureCode E2AP-ELEMENTARY-PROCEDURE.&procedureCode({E2AP-ELEMENTARY-PROCEDURES}), - criticality E2AP-ELEMENTARY-PROCEDURE.&criticality({E2AP-ELEMENTARY-PROCEDURES}{@procedureCode}), - value E2AP-ELEMENTARY-PROCEDURE.&InitiatingMessage({E2AP-ELEMENTARY-PROCEDURES}{@procedureCode}) -} -*/ - -struct InitiatingMessage : asn::sequence<3, 0, false, 0> -{ - static constexpr const char* name() {return "InitiatingMessage";} - using parent_t = asn::sequence<3, 0, false, 0>; - struct procedureCode_t : E2AP_ELEMENTARY_PROCEDURES::procedureCode_t - { - static constexpr const char* name() {return "procedureCode_t";} - using parent_t = typename E2AP_ELEMENTARY_PROCEDURES::procedureCode_t; - template bool decode(V& v, InitiatingMessage const& c) - { - return E2AP_ELEMENTARY_PROCEDURES::procedureCode_t::decode(v); - }; - template bool encode(V& v, InitiatingMessage const& c) const - { - return E2AP_ELEMENTARY_PROCEDURES::procedureCode_t::encode(v); - }; - }; - procedureCode_t& ref_procedureCode() {return procedureCode;} - procedureCode_t const& ref_procedureCode() const {return procedureCode;} - struct criticality_t : E2AP_ELEMENTARY_PROCEDURES::criticality_t - { - static constexpr const char* name() {return "criticality_t";} - using parent_t = typename E2AP_ELEMENTARY_PROCEDURES::criticality_t; - template bool decode(V& v, InitiatingMessage const& c) - { - return E2AP_ELEMENTARY_PROCEDURES::criticality_t::decode(c.procedureCode.get_index(), v); - }; - template bool encode(V& v, InitiatingMessage const& c) const - { - return E2AP_ELEMENTARY_PROCEDURES::criticality_t::encode(c.procedureCode.get_index(), v); - }; - }; - criticality_t& ref_criticality() {return criticality;} - criticality_t const& ref_criticality() const {return criticality;} - struct value_t : E2AP_ELEMENTARY_PROCEDURES::InitiatingMessage_t - { - static constexpr const char* name() {return "value_t";} - using parent_t = typename E2AP_ELEMENTARY_PROCEDURES::InitiatingMessage_t; - template bool decode(V& v, InitiatingMessage const& c) - { - return E2AP_ELEMENTARY_PROCEDURES::InitiatingMessage_t::decode(c.procedureCode.get_index(), v); - }; - template bool encode(V& v, InitiatingMessage const& c) const - { - return E2AP_ELEMENTARY_PROCEDURES::InitiatingMessage_t::encode(c.procedureCode.get_index(), v); - }; - }; - value_t& ref_value() {return value;} - value_t const& ref_value() const {return value;} - template void decode(V& v) - { - v(procedureCode); - v(criticality); - v(value); - - }; - template void encode(V& v) const - { - v(procedureCode); - v(criticality); - v(value); - - }; - void clear() - { - procedureCode.clear(); - criticality.clear(); - value.clear(); - - }; - private: - procedureCode_t procedureCode; - criticality_t criticality; - value_t value; - -}; -/* -SuccessfulOutcome ::= SEQUENCE { - procedureCode E2AP-ELEMENTARY-PROCEDURE.&procedureCode({E2AP-ELEMENTARY-PROCEDURES}), - criticality E2AP-ELEMENTARY-PROCEDURE.&criticality({E2AP-ELEMENTARY-PROCEDURES}{@procedureCode}), - value E2AP-ELEMENTARY-PROCEDURE.&SuccessfulOutcome({E2AP-ELEMENTARY-PROCEDURES}{@procedureCode}) -} -*/ - -struct SuccessfulOutcome : asn::sequence<3, 0, false, 0> -{ - static constexpr const char* name() {return "SuccessfulOutcome";} - using parent_t = asn::sequence<3, 0, false, 0>; - struct procedureCode_t : E2AP_ELEMENTARY_PROCEDURES::procedureCode_t - { - static constexpr const char* name() {return "procedureCode_t";} - using parent_t = typename E2AP_ELEMENTARY_PROCEDURES::procedureCode_t; - template bool decode(V& v, SuccessfulOutcome const& c) - { - return E2AP_ELEMENTARY_PROCEDURES::procedureCode_t::decode(v); - }; - template bool encode(V& v, SuccessfulOutcome const& c) const - { - return E2AP_ELEMENTARY_PROCEDURES::procedureCode_t::encode(v); - }; - }; - procedureCode_t& ref_procedureCode() {return procedureCode;} - procedureCode_t const& ref_procedureCode() const {return procedureCode;} - struct criticality_t : E2AP_ELEMENTARY_PROCEDURES::criticality_t - { - static constexpr const char* name() {return "criticality_t";} - using parent_t = typename E2AP_ELEMENTARY_PROCEDURES::criticality_t; - template bool decode(V& v, SuccessfulOutcome const& c) - { - return E2AP_ELEMENTARY_PROCEDURES::criticality_t::decode(c.procedureCode.get_index(), v); - }; - template bool encode(V& v, SuccessfulOutcome const& c) const - { - return E2AP_ELEMENTARY_PROCEDURES::criticality_t::encode(c.procedureCode.get_index(), v); - }; - }; - criticality_t& ref_criticality() {return criticality;} - criticality_t const& ref_criticality() const {return criticality;} - struct value_t : E2AP_ELEMENTARY_PROCEDURES::SuccessfulOutcome_t - { - static constexpr const char* name() {return "value_t";} - using parent_t = typename E2AP_ELEMENTARY_PROCEDURES::SuccessfulOutcome_t; - template bool decode(V& v, SuccessfulOutcome const& c) - { - return E2AP_ELEMENTARY_PROCEDURES::SuccessfulOutcome_t::decode(c.procedureCode.get_index(), v); - }; - template bool encode(V& v, SuccessfulOutcome const& c) const - { - return E2AP_ELEMENTARY_PROCEDURES::SuccessfulOutcome_t::encode(c.procedureCode.get_index(), v); - }; - }; - value_t& ref_value() {return value;} - value_t const& ref_value() const {return value;} - template void decode(V& v) - { - v(procedureCode); - v(criticality); - v(value); - - }; - template void encode(V& v) const - { - v(procedureCode); - v(criticality); - v(value); - - }; - void clear() - { - procedureCode.clear(); - criticality.clear(); - value.clear(); - - }; - private: - procedureCode_t procedureCode; - criticality_t criticality; - value_t value; - -}; -/* -UnsuccessfulOutcome ::= SEQUENCE { - procedureCode E2AP-ELEMENTARY-PROCEDURE.&procedureCode({E2AP-ELEMENTARY-PROCEDURES}), - criticality E2AP-ELEMENTARY-PROCEDURE.&criticality({E2AP-ELEMENTARY-PROCEDURES}{@procedureCode}), - value E2AP-ELEMENTARY-PROCEDURE.&UnsuccessfulOutcome({E2AP-ELEMENTARY-PROCEDURES}{@procedureCode}) -} -*/ - -struct UnsuccessfulOutcome : asn::sequence<3, 0, false, 0> -{ - static constexpr const char* name() {return "UnsuccessfulOutcome";} - using parent_t = asn::sequence<3, 0, false, 0>; - struct procedureCode_t : E2AP_ELEMENTARY_PROCEDURES::procedureCode_t - { - static constexpr const char* name() {return "procedureCode_t";} - using parent_t = typename E2AP_ELEMENTARY_PROCEDURES::procedureCode_t; - template bool decode(V& v, UnsuccessfulOutcome const& c) - { - return E2AP_ELEMENTARY_PROCEDURES::procedureCode_t::decode(v); - }; - template bool encode(V& v, UnsuccessfulOutcome const& c) const - { - return E2AP_ELEMENTARY_PROCEDURES::procedureCode_t::encode(v); - }; - }; - procedureCode_t& ref_procedureCode() {return procedureCode;} - procedureCode_t const& ref_procedureCode() const {return procedureCode;} - struct criticality_t : E2AP_ELEMENTARY_PROCEDURES::criticality_t - { - static constexpr const char* name() {return "criticality_t";} - using parent_t = typename E2AP_ELEMENTARY_PROCEDURES::criticality_t; - template bool decode(V& v, UnsuccessfulOutcome const& c) - { - return E2AP_ELEMENTARY_PROCEDURES::criticality_t::decode(c.procedureCode.get_index(), v); - }; - template bool encode(V& v, UnsuccessfulOutcome const& c) const - { - return E2AP_ELEMENTARY_PROCEDURES::criticality_t::encode(c.procedureCode.get_index(), v); - }; - }; - criticality_t& ref_criticality() {return criticality;} - criticality_t const& ref_criticality() const {return criticality;} - struct value_t : E2AP_ELEMENTARY_PROCEDURES::UnsuccessfulOutcome_t - { - static constexpr const char* name() {return "value_t";} - using parent_t = typename E2AP_ELEMENTARY_PROCEDURES::UnsuccessfulOutcome_t; - template bool decode(V& v, UnsuccessfulOutcome const& c) - { - return E2AP_ELEMENTARY_PROCEDURES::UnsuccessfulOutcome_t::decode(c.procedureCode.get_index(), v); - }; - template bool encode(V& v, UnsuccessfulOutcome const& c) const - { - return E2AP_ELEMENTARY_PROCEDURES::UnsuccessfulOutcome_t::encode(c.procedureCode.get_index(), v); - }; - }; - value_t& ref_value() {return value;} - value_t const& ref_value() const {return value;} - template void decode(V& v) - { - v(procedureCode); - v(criticality); - v(value); - - }; - template void encode(V& v) const - { - v(procedureCode); - v(criticality); - v(value); - - }; - void clear() - { - procedureCode.clear(); - criticality.clear(); - value.clear(); - - }; - private: - procedureCode_t procedureCode; - criticality_t criticality; - value_t value; - -}; -/* -E2AP-PDU ::= CHOICE { - initiatingMessage InitiatingMessage, - successfulOutcome SuccessfulOutcome, - unsuccessfulOutcome UnsuccessfulOutcome, - ... -} -*/ - -struct E2AP_PDU : asn::choice<3, 0, true> -{ - static constexpr const char* name() {return "E2AP-PDU";} - using parent_t = asn::choice<3, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 4;} - void set_unknown() { set_index(4); } - ~E2AP_PDU() {clear();} - struct initiatingMessage_t : InitiatingMessage - { - static constexpr const char* name() {return "initiatingMessage_t";} - using parent_t = InitiatingMessage; - - }; - struct successfulOutcome_t : SuccessfulOutcome - { - static constexpr const char* name() {return "successfulOutcome_t";} - using parent_t = SuccessfulOutcome; - - }; - struct unsuccessfulOutcome_t : UnsuccessfulOutcome - { - static constexpr const char* name() {return "unsuccessfulOutcome_t";} - using parent_t = UnsuccessfulOutcome; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - case 3: set_index(3); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - case 3: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - - } - initiatingMessage_t& select_initiatingMessage() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - initiatingMessage_t const* get_initiatingMessage() const { if(get_index() == 1) { return &var.as();} return nullptr; } - successfulOutcome_t& select_successfulOutcome() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - successfulOutcome_t const* get_successfulOutcome() const { if(get_index() == 2) { return &var.as();} return nullptr; } - unsuccessfulOutcome_t& select_unsuccessfulOutcome() { if(get_index() != 3) { clear(); set_index(3); return var.build();} return var.as();} - unsuccessfulOutcome_t const* get_unsuccessfulOutcome() const { if(get_index() == 3) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(initiatingMessage_t)]; - char dummy2[sizeof(successfulOutcome_t)]; - char dummy3[sizeof(unsuccessfulOutcome_t)]; - - }; - asn::variant var; - index_type index {0}; -}; diff --git a/e2sim/previous/e2apv1sim/e2sim/src/ASN1/generated/X2AP-CommonDataTypes.hpp b/e2sim/previous/e2apv1sim/e2sim/src/ASN1/generated/X2AP-CommonDataTypes.hpp deleted file mode 100644 index 0e1bb53..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/ASN1/generated/X2AP-CommonDataTypes.hpp +++ /dev/null @@ -1,188 +0,0 @@ -/***************************************************************************** -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -#pragma once - -#include "asn/asn.hpp" -static_assert(ASN_API_VERSION_MAJOR == 5, "re-generate the ASN parser's code using 'make regen-asn' (do not use -j option)"); - - -/* -Criticality ::= ENUMERATED { reject, ignore, notify } -*/ - -struct Criticality : asn::enumerated<3, 0, false> -{ - static constexpr const char* name() {return "Criticality";} - using parent_t = asn::enumerated<3, 0, false>; - typedef enum { - reject - ,ignore - ,notify - } index_t; - -}; - -/* -Presence ::= ENUMERATED { optional, conditional, mandatory } -*/ - -struct Presence : asn::enumerated<3, 0, false> -{ - static constexpr const char* name() {return "Presence";} - using parent_t = asn::enumerated<3, 0, false>; - typedef enum { - optional - ,conditional - ,mandatory - } index_t; - -}; - -/* -maxPrivateIEs INTEGER ::= 65535 -*/ - -constexpr int64_t maxPrivateIEs = 65535; -/* -PrivateIE-ID ::= CHOICE { - local INTEGER (0.. maxPrivateIEs), - global OBJECT IDENTIFIER -} -*/ - -struct PrivateIE_ID : asn::choice<2, 0, false> -{ - static constexpr const char* name() {return "PrivateIE-ID";} - using parent_t = asn::choice<2, 0, false>; - index_type get_index() const {return index;} - ~PrivateIE_ID() {clear();} - struct local_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "local_t";} - using parent_t = asn::integer<>; - - }; - - struct global_t : asn::oid - { - static constexpr const char* name() {return "global_t";} - using parent_t = asn::oid; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - local_t& select_local() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - local_t const* get_local() const { if(get_index() == 1) { return &var.as();} return nullptr; } - global_t& select_global() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - global_t const* get_global() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(local_t)]; - char dummy2[sizeof(global_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -ProcedureCode ::= INTEGER (0..255) -*/ - -struct ProcedureCode : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "ProcedureCode";} - using parent_t = asn::integer<>; - -}; - -/* -maxProtocolIEs INTEGER ::= 65535 -*/ - -constexpr int64_t maxProtocolIEs = 65535; -/* -ProtocolIE-ID ::= INTEGER (0..maxProtocolIEs) -*/ - -struct ProtocolIE_ID : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "ProtocolIE-ID";} - using parent_t = asn::integer<>; - -}; - -/* -TriggeringMessage ::= ENUMERATED { initiating-message, successful-outcome, unsuccessful-outcome} -*/ - -struct TriggeringMessage : asn::enumerated<3, 0, false> -{ - static constexpr const char* name() {return "TriggeringMessage";} - using parent_t = asn::enumerated<3, 0, false>; - typedef enum { - initiating_message - ,successful_outcome - ,unsuccessful_outcome - } index_t; - -}; - -/* -maxProtocolExtensions INTEGER ::= 65535 -*/ - -constexpr int64_t maxProtocolExtensions = 65535; diff --git a/e2sim/previous/e2apv1sim/e2sim/src/ASN1/generated/X2AP-Constants.hpp b/e2sim/previous/e2apv1sim/e2sim/src/ASN1/generated/X2AP-Constants.hpp deleted file mode 100644 index 28be45d..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/ASN1/generated/X2AP-Constants.hpp +++ /dev/null @@ -1,2054 +0,0 @@ -/***************************************************************************** -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -#pragma once - -#include "asn/asn.hpp" -static_assert(ASN_API_VERSION_MAJOR == 5, "re-generate the ASN parser's code using 'make regen-asn' (do not use -j option)"); - -#include "X2AP-CommonDataTypes.hpp" - -/* -id-ABS-Status ProtocolIE-ID ::= 63 -*/ - -constexpr int64_t id_ABS_Status = 63; -/* -id-ABSInformation ProtocolIE-ID ::= 61 -*/ - -constexpr int64_t id_ABSInformation = 61; -/* -id-ActivatedCellList ProtocolIE-ID ::= 58 -*/ - -constexpr int64_t id_ActivatedCellList = 58; -/* -id-ActivatedNRCellList ProtocolIE-ID ::= 268 -*/ - -constexpr int64_t id_ActivatedNRCellList = 268; -/* -id-ActivationID ProtocolIE-ID ::= 256 -*/ - -constexpr int64_t id_ActivationID = 256; -/* -id-AdditionalSpecialSubframe-Info ProtocolIE-ID ::= 97 -*/ - -constexpr int64_t id_AdditionalSpecialSubframe_Info = 97; -/* -id-AdditionalSpecialSubframeExtension-Info ProtocolIE-ID ::= 179 -*/ - -constexpr int64_t id_AdditionalSpecialSubframeExtension_Info = 179; -/* -id-AdmittedSplitSRBs ProtocolIE-ID ::= 212 -*/ - -constexpr int64_t id_AdmittedSplitSRBs = 212; -/* -id-AdmittedSplitSRBsrelease ProtocolIE-ID ::= 281 -*/ - -constexpr int64_t id_AdmittedSplitSRBsrelease = 281; -/* -id-AerialUEsubscriptionInformation ProtocolIE-ID ::= 277 -*/ - -constexpr int64_t id_AerialUEsubscriptionInformation = 277; -/* -id-BandwidthReducedSI ProtocolIE-ID ::= 180 -*/ - -constexpr int64_t id_BandwidthReducedSI = 180; -/* -id-BearerType ProtocolIE-ID ::= 171 -*/ - -constexpr int64_t id_BearerType = 171; -/* -id-BluetoothMeasurementConfiguration ProtocolIE-ID ::= 303 -*/ - -constexpr int64_t id_BluetoothMeasurementConfiguration = 303; -/* -id-CNTypeRestrictions ProtocolIE-ID ::= 301 -*/ - -constexpr int64_t id_CNTypeRestrictions = 301; -/* -id-CSG-Id ProtocolIE-ID ::= 70 -*/ - -constexpr int64_t id_CSG_Id = 70; -/* -id-CSGMembershipStatus ProtocolIE-ID ::= 71 -*/ - -constexpr int64_t id_CSGMembershipStatus = 71; -/* -id-CSIReportList ProtocolIE-ID ::= 146 -*/ - -constexpr int64_t id_CSIReportList = 146; -/* -id-Cause ProtocolIE-ID ::= 5 -*/ - -constexpr int64_t id_Cause = 5; -/* -id-CellAssistanceInformation ProtocolIE-ID ::= 251 -*/ - -constexpr int64_t id_CellAssistanceInformation = 251; -/* -id-CellInformation ProtocolIE-ID ::= 6 -*/ - -constexpr int64_t id_CellInformation = 6; -/* -id-CellInformation-Item ProtocolIE-ID ::= 7 -*/ - -constexpr int64_t id_CellInformation_Item = 7; -/* -id-CellMeasurementResult ProtocolIE-ID ::= 32 -*/ - -constexpr int64_t id_CellMeasurementResult = 32; -/* -id-CellMeasurementResult-Item ProtocolIE-ID ::= 33 -*/ - -constexpr int64_t id_CellMeasurementResult_Item = 33; -/* -id-CellReportingIndicator ProtocolIE-ID ::= 170 -*/ - -constexpr int64_t id_CellReportingIndicator = 170; -/* -id-CellToReport ProtocolIE-ID ::= 29 -*/ - -constexpr int64_t id_CellToReport = 29; -/* -id-CellToReport-Item ProtocolIE-ID ::= 31 -*/ - -constexpr int64_t id_CellToReport_Item = 31; -/* -id-CoMPInformation ProtocolIE-ID ::= 108 -*/ - -constexpr int64_t id_CoMPInformation = 108; -/* -id-CompleteFailureCauseInformation-Item ProtocolIE-ID ::= 69 -*/ - -constexpr int64_t id_CompleteFailureCauseInformation_Item = 69; -/* -id-CompleteFailureCauseInformation-List ProtocolIE-ID ::= 68 -*/ - -constexpr int64_t id_CompleteFailureCauseInformation_List = 68; -/* -id-CompositeAvailableCapacityGroup ProtocolIE-ID ::= 42 -*/ - -constexpr int64_t id_CompositeAvailableCapacityGroup = 42; -/* -id-Correlation-ID ProtocolIE-ID ::= 166 -*/ - -constexpr int64_t id_Correlation_ID = 166; -/* -id-CoverageModificationList ProtocolIE-ID ::= 143 -*/ - -constexpr int64_t id_CoverageModificationList = 143; -/* -id-CriticalityDiagnostics ProtocolIE-ID ::= 17 -*/ - -constexpr int64_t id_CriticalityDiagnostics = 17; -/* -id-DL-EARFCNExtension ProtocolIE-ID ::= 96 -*/ - -constexpr int64_t id_DL_EARFCNExtension = 96; -/* -id-DL-scheduling-PDCCH-CCE-usage ProtocolIE-ID ::= 193 -*/ - -constexpr int64_t id_DL_scheduling_PDCCH_CCE_usage = 193; -/* -id-DLCOUNTValueExtended ProtocolIE-ID ::= 93 -*/ - -constexpr int64_t id_DLCOUNTValueExtended = 93; -/* -id-DLCOUNTValuePDCP-SNlength18 ProtocolIE-ID ::= 152 -*/ - -constexpr int64_t id_DLCOUNTValuePDCP_SNlength18 = 152; -/* -id-DataTrafficResourceIndication ProtocolIE-ID ::= 287 -*/ - -constexpr int64_t id_DataTrafficResourceIndication = 287; -/* -id-DeactivationIndication ProtocolIE-ID ::= 59 -*/ - -constexpr int64_t id_DeactivationIndication = 59; -/* -id-DownlinkPacketLossRate ProtocolIE-ID ::= 273 -*/ - -constexpr int64_t id_DownlinkPacketLossRate = 273; -/* -id-DynamicDLTransmissionInformation ProtocolIE-ID ::= 106 -*/ - -constexpr int64_t id_DynamicDLTransmissionInformation = 106; -/* -id-E-RAB-Item ProtocolIE-ID ::= 2 -*/ - -constexpr int64_t id_E_RAB_Item = 2; -/* -id-E-RABUsageReport-Item ProtocolIE-ID ::= 263 -*/ - -constexpr int64_t id_E_RABUsageReport_Item = 263; -/* -id-E-RABs-Admitted-Item ProtocolIE-ID ::= 0 -*/ - -constexpr int64_t id_E_RABs_Admitted_Item = 0; -/* -id-E-RABs-Admitted-List ProtocolIE-ID ::= 1 -*/ - -constexpr int64_t id_E_RABs_Admitted_List = 1; -/* -id-E-RABs-Admitted-ToBeAdded-Item ProtocolIE-ID ::= 121 -*/ - -constexpr int64_t id_E_RABs_Admitted_ToBeAdded_Item = 121; -/* -id-E-RABs-Admitted-ToBeAdded-List ProtocolIE-ID ::= 120 -*/ - -constexpr int64_t id_E_RABs_Admitted_ToBeAdded_List = 120; -/* -id-E-RABs-Admitted-ToBeAdded-ModAckItem ProtocolIE-ID ::= 131 -*/ - -constexpr int64_t id_E_RABs_Admitted_ToBeAdded_ModAckItem = 131; -/* -id-E-RABs-Admitted-ToBeAdded-ModAckList ProtocolIE-ID ::= 128 -*/ - -constexpr int64_t id_E_RABs_Admitted_ToBeAdded_ModAckList = 128; -/* -id-E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item ProtocolIE-ID ::= 213 -*/ - -constexpr int64_t id_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item = 213; -/* -id-E-RABs-Admitted-ToBeAdded-SgNBAddReqAckList ProtocolIE-ID ::= 210 -*/ - -constexpr int64_t id_E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList = 210; -/* -id-E-RABs-Admitted-ToBeAdded-SgNBModAck-Item ProtocolIE-ID ::= 222 -*/ - -constexpr int64_t id_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item = 222; -/* -id-E-RABs-Admitted-ToBeAdded-SgNBModAckList ProtocolIE-ID ::= 219 -*/ - -constexpr int64_t id_E_RABs_Admitted_ToBeAdded_SgNBModAckList = 219; -/* -id-E-RABs-Admitted-ToBeModified-ModAckItem ProtocolIE-ID ::= 132 -*/ - -constexpr int64_t id_E_RABs_Admitted_ToBeModified_ModAckItem = 132; -/* -id-E-RABs-Admitted-ToBeModified-ModAckList ProtocolIE-ID ::= 129 -*/ - -constexpr int64_t id_E_RABs_Admitted_ToBeModified_ModAckList = 129; -/* -id-E-RABs-Admitted-ToBeModified-SgNBModAck-Item ProtocolIE-ID ::= 223 -*/ - -constexpr int64_t id_E_RABs_Admitted_ToBeModified_SgNBModAck_Item = 223; -/* -id-E-RABs-Admitted-ToBeModified-SgNBModAckList ProtocolIE-ID ::= 220 -*/ - -constexpr int64_t id_E_RABs_Admitted_ToBeModified_SgNBModAckList = 220; -/* -id-E-RABs-Admitted-ToBeReleased-ModAckItem ProtocolIE-ID ::= 133 -*/ - -constexpr int64_t id_E_RABs_Admitted_ToBeReleased_ModAckItem = 133; -/* -id-E-RABs-Admitted-ToBeReleased-ModAckList ProtocolIE-ID ::= 130 -*/ - -constexpr int64_t id_E_RABs_Admitted_ToBeReleased_ModAckList = 130; -/* -id-E-RABs-Admitted-ToBeReleased-SgNBModAck-Item ProtocolIE-ID ::= 224 -*/ - -constexpr int64_t id_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item = 224; -/* -id-E-RABs-Admitted-ToBeReleased-SgNBModAckList ProtocolIE-ID ::= 221 -*/ - -constexpr int64_t id_E_RABs_Admitted_ToBeReleased_SgNBModAckList = 221; -/* -id-E-RABs-Admitted-ToBeReleased-SgNBRelReqAck-Item ProtocolIE-ID ::= 319 -*/ - -constexpr int64_t id_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item = 319; -/* -id-E-RABs-Admitted-ToBeReleased-SgNBRelReqAckList ProtocolIE-ID ::= 318 -*/ - -constexpr int64_t id_E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList = 318; -/* -id-E-RABs-AdmittedToBeModified-SgNBModConf-Item ProtocolIE-ID ::= 295 -*/ - -constexpr int64_t id_E_RABs_AdmittedToBeModified_SgNBModConf_Item = 295; -/* -id-E-RABs-AdmittedToBeModified-SgNBModConfList ProtocolIE-ID ::= 294 -*/ - -constexpr int64_t id_E_RABs_AdmittedToBeModified_SgNBModConfList = 294; -/* -id-E-RABs-DataForwardingAddress-Item ProtocolIE-ID ::= 308 -*/ - -constexpr int64_t id_E_RABs_DataForwardingAddress_Item = 308; -/* -id-E-RABs-DataForwardingAddress-List ProtocolIE-ID ::= 307 -*/ - -constexpr int64_t id_E_RABs_DataForwardingAddress_List = 307; -/* -id-E-RABs-NotAdmitted-List ProtocolIE-ID ::= 3 -*/ - -constexpr int64_t id_E_RABs_NotAdmitted_List = 3; -/* -id-E-RABs-SubjectToCounterCheck-List ProtocolIE-ID ::= 141 -*/ - -constexpr int64_t id_E_RABs_SubjectToCounterCheck_List = 141; -/* -id-E-RABs-SubjectToCounterCheckItem ProtocolIE-ID ::= 142 -*/ - -constexpr int64_t id_E_RABs_SubjectToCounterCheckItem = 142; -/* -id-E-RABs-SubjectToSgNBCounterCheck-Item ProtocolIE-ID ::= 236 -*/ - -constexpr int64_t id_E_RABs_SubjectToSgNBCounterCheck_Item = 236; -/* -id-E-RABs-SubjectToSgNBCounterCheck-List ProtocolIE-ID ::= 235 -*/ - -constexpr int64_t id_E_RABs_SubjectToSgNBCounterCheck_List = 235; -/* -id-E-RABs-SubjectToStatusTransfer-Item ProtocolIE-ID ::= 19 -*/ - -constexpr int64_t id_E_RABs_SubjectToStatusTransfer_Item = 19; -/* -id-E-RABs-SubjectToStatusTransfer-List ProtocolIE-ID ::= 18 -*/ - -constexpr int64_t id_E_RABs_SubjectToStatusTransfer_List = 18; -/* -id-E-RABs-ToBeAdded-Item ProtocolIE-ID ::= 118 -*/ - -constexpr int64_t id_E_RABs_ToBeAdded_Item = 118; -/* -id-E-RABs-ToBeAdded-List ProtocolIE-ID ::= 117 -*/ - -constexpr int64_t id_E_RABs_ToBeAdded_List = 117; -/* -id-E-RABs-ToBeAdded-ModReqItem ProtocolIE-ID ::= 125 -*/ - -constexpr int64_t id_E_RABs_ToBeAdded_ModReqItem = 125; -/* -id-E-RABs-ToBeAdded-SgNBAddReq-Item ProtocolIE-ID ::= 209 -*/ - -constexpr int64_t id_E_RABs_ToBeAdded_SgNBAddReq_Item = 209; -/* -id-E-RABs-ToBeAdded-SgNBAddReqList ProtocolIE-ID ::= 205 -*/ - -constexpr int64_t id_E_RABs_ToBeAdded_SgNBAddReqList = 205; -/* -id-E-RABs-ToBeAdded-SgNBModReq-Item ProtocolIE-ID ::= 216 -*/ - -constexpr int64_t id_E_RABs_ToBeAdded_SgNBModReq_Item = 216; -/* -id-E-RABs-ToBeModified-ModReqItem ProtocolIE-ID ::= 126 -*/ - -constexpr int64_t id_E_RABs_ToBeModified_ModReqItem = 126; -/* -id-E-RABs-ToBeModified-SgNBModReq-Item ProtocolIE-ID ::= 217 -*/ - -constexpr int64_t id_E_RABs_ToBeModified_SgNBModReq_Item = 217; -/* -id-E-RABs-ToBeModified-SgNBModReqd-Item ProtocolIE-ID ::= 228 -*/ - -constexpr int64_t id_E_RABs_ToBeModified_SgNBModReqd_Item = 228; -/* -id-E-RABs-ToBeModified-SgNBModReqdList ProtocolIE-ID ::= 226 -*/ - -constexpr int64_t id_E_RABs_ToBeModified_SgNBModReqdList = 226; -/* -id-E-RABs-ToBeReleased-List-RelConf ProtocolIE-ID ::= 139 -*/ - -constexpr int64_t id_E_RABs_ToBeReleased_List_RelConf = 139; -/* -id-E-RABs-ToBeReleased-List-RelReq ProtocolIE-ID ::= 137 -*/ - -constexpr int64_t id_E_RABs_ToBeReleased_List_RelReq = 137; -/* -id-E-RABs-ToBeReleased-ModReqItem ProtocolIE-ID ::= 127 -*/ - -constexpr int64_t id_E_RABs_ToBeReleased_ModReqItem = 127; -/* -id-E-RABs-ToBeReleased-ModReqd ProtocolIE-ID ::= 134 -*/ - -constexpr int64_t id_E_RABs_ToBeReleased_ModReqd = 134; -/* -id-E-RABs-ToBeReleased-ModReqdItem ProtocolIE-ID ::= 135 -*/ - -constexpr int64_t id_E_RABs_ToBeReleased_ModReqdItem = 135; -/* -id-E-RABs-ToBeReleased-RelConfItem ProtocolIE-ID ::= 140 -*/ - -constexpr int64_t id_E_RABs_ToBeReleased_RelConfItem = 140; -/* -id-E-RABs-ToBeReleased-RelReqItem ProtocolIE-ID ::= 138 -*/ - -constexpr int64_t id_E_RABs_ToBeReleased_RelReqItem = 138; -/* -id-E-RABs-ToBeReleased-SgNBChaConf-Item ProtocolIE-ID ::= 230 -*/ - -constexpr int64_t id_E_RABs_ToBeReleased_SgNBChaConf_Item = 230; -/* -id-E-RABs-ToBeReleased-SgNBChaConfList ProtocolIE-ID ::= 229 -*/ - -constexpr int64_t id_E_RABs_ToBeReleased_SgNBChaConfList = 229; -/* -id-E-RABs-ToBeReleased-SgNBModReq-Item ProtocolIE-ID ::= 218 -*/ - -constexpr int64_t id_E_RABs_ToBeReleased_SgNBModReq_Item = 218; -/* -id-E-RABs-ToBeReleased-SgNBModReqd-Item ProtocolIE-ID ::= 227 -*/ - -constexpr int64_t id_E_RABs_ToBeReleased_SgNBModReqd_Item = 227; -/* -id-E-RABs-ToBeReleased-SgNBModReqdList ProtocolIE-ID ::= 225 -*/ - -constexpr int64_t id_E_RABs_ToBeReleased_SgNBModReqdList = 225; -/* -id-E-RABs-ToBeReleased-SgNBRelConf-Item ProtocolIE-ID ::= 234 -*/ - -constexpr int64_t id_E_RABs_ToBeReleased_SgNBRelConf_Item = 234; -/* -id-E-RABs-ToBeReleased-SgNBRelConfList ProtocolIE-ID ::= 233 -*/ - -constexpr int64_t id_E_RABs_ToBeReleased_SgNBRelConfList = 233; -/* -id-E-RABs-ToBeReleased-SgNBRelReq-Item ProtocolIE-ID ::= 232 -*/ - -constexpr int64_t id_E_RABs_ToBeReleased_SgNBRelReq_Item = 232; -/* -id-E-RABs-ToBeReleased-SgNBRelReqList ProtocolIE-ID ::= 231 -*/ - -constexpr int64_t id_E_RABs_ToBeReleased_SgNBRelReqList = 231; -/* -id-E-RABs-ToBeReleased-SgNBRelReqd-Item ProtocolIE-ID ::= 321 -*/ - -constexpr int64_t id_E_RABs_ToBeReleased_SgNBRelReqd_Item = 321; -/* -id-E-RABs-ToBeReleased-SgNBRelReqdList ProtocolIE-ID ::= 320 -*/ - -constexpr int64_t id_E_RABs_ToBeReleased_SgNBRelReqdList = 320; -/* -id-E-RABs-ToBeSetup-Item ProtocolIE-ID ::= 4 -*/ - -constexpr int64_t id_E_RABs_ToBeSetup_Item = 4; -/* -id-E-RABs-ToBeSetupRetrieve-Item ProtocolIE-ID ::= 174 -*/ - -constexpr int64_t id_E_RABs_ToBeSetupRetrieve_Item = 174; -/* -id-ECGI ProtocolIE-ID ::= 316 -*/ - -constexpr int64_t id_ECGI = 316; -/* -id-ENB1-Cell-ID ProtocolIE-ID ::= 43 -*/ - -constexpr int64_t id_ENB1_Cell_ID = 43; -/* -id-ENB1-Measurement-ID ProtocolIE-ID ::= 39 -*/ - -constexpr int64_t id_ENB1_Measurement_ID = 39; -/* -id-ENB1-Mobility-Parameters ProtocolIE-ID ::= 46 -*/ - -constexpr int64_t id_ENB1_Mobility_Parameters = 46; -/* -id-ENB2-Cell-ID ProtocolIE-ID ::= 44 -*/ - -constexpr int64_t id_ENB2_Cell_ID = 44; -/* -id-ENB2-Measurement-ID ProtocolIE-ID ::= 40 -*/ - -constexpr int64_t id_ENB2_Measurement_ID = 40; -/* -id-ENB2-Mobility-Parameters-Modification-Range ProtocolIE-ID ::= 47 -*/ - -constexpr int64_t id_ENB2_Mobility_Parameters_Modification_Range = 47; -/* -id-ENB2-Proposed-Mobility-Parameters ProtocolIE-ID ::= 45 -*/ - -constexpr int64_t id_ENB2_Proposed_Mobility_Parameters = 45; -/* -id-ERABActivityNotifyItemList ProtocolIE-ID ::= 297 -*/ - -constexpr int64_t id_ERABActivityNotifyItemList = 297; -/* -id-ExpectedUEBehaviour ProtocolIE-ID ::= 104 -*/ - -constexpr int64_t id_ExpectedUEBehaviour = 104; -/* -id-ExtendedULInterferenceOverloadInfo ProtocolIE-ID ::= 100 -*/ - -constexpr int64_t id_ExtendedULInterferenceOverloadInfo = 100; -/* -id-FailureCellCRNTI ProtocolIE-ID ::= 50 -*/ - -constexpr int64_t id_FailureCellCRNTI = 50; -/* -id-FailureCellECGI ProtocolIE-ID ::= 53 -*/ - -constexpr int64_t id_FailureCellECGI = 53; -/* -id-FailureCellPCI ProtocolIE-ID ::= 48 -*/ - -constexpr int64_t id_FailureCellPCI = 48; -/* -id-FreqBandIndicatorPriority ProtocolIE-ID ::= 160 -*/ - -constexpr int64_t id_FreqBandIndicatorPriority = 160; -/* -id-GNBOverloadInformation ProtocolIE-ID ::= 310 -*/ - -constexpr int64_t id_GNBOverloadInformation = 310; -/* -id-GUGroupIDList ProtocolIE-ID ::= 24 -*/ - -constexpr int64_t id_GUGroupIDList = 24; -/* -id-GUGroupIDToAddList ProtocolIE-ID ::= 34 -*/ - -constexpr int64_t id_GUGroupIDToAddList = 34; -/* -id-GUGroupIDToDeleteList ProtocolIE-ID ::= 35 -*/ - -constexpr int64_t id_GUGroupIDToDeleteList = 35; -/* -id-GUMMEI-ID ProtocolIE-ID ::= 23 -*/ - -constexpr int64_t id_GUMMEI_ID = 23; -/* -id-GW-TransportLayerAddress ProtocolIE-ID ::= 165 -*/ - -constexpr int64_t id_GW_TransportLayerAddress = 165; -/* -id-GlobalENB-ID ProtocolIE-ID ::= 21 -*/ - -constexpr int64_t id_GlobalENB_ID = 21; -/* -id-Globalen-gNB-ID ProtocolIE-ID ::= 252 -*/ - -constexpr int64_t id_Globalen_gNB_ID = 252; -/* -id-HO-cause ProtocolIE-ID ::= 80 -*/ - -constexpr int64_t id_HO_cause = 80; -/* -id-HandoverReportType ProtocolIE-ID ::= 54 -*/ - -constexpr int64_t id_HandoverReportType = 54; -/* -id-HandoverRestrictionList ProtocolIE-ID ::= 240 -*/ - -constexpr int64_t id_HandoverRestrictionList = 240; -/* -id-InitiatingNodeType-EndcConfigUpdate ProtocolIE-ID ::= 245 -*/ - -constexpr int64_t id_InitiatingNodeType_EndcConfigUpdate = 245; -/* -id-InitiatingNodeType-EndcX2Removal ProtocolIE-ID ::= 298 -*/ - -constexpr int64_t id_InitiatingNodeType_EndcX2Removal = 298; -/* -id-InitiatingNodeType-EndcX2Setup ProtocolIE-ID ::= 244 -*/ - -constexpr int64_t id_InitiatingNodeType_EndcX2Setup = 244; -/* -id-InitiatingNodeType-EutranrCellResourceCoordination ProtocolIE-ID ::= 285 -*/ - -constexpr int64_t id_InitiatingNodeType_EutranrCellResourceCoordination = 285; -/* -id-IntendedULDLConfiguration ProtocolIE-ID ::= 99 -*/ - -constexpr int64_t id_IntendedULDLConfiguration = 99; -/* -id-InvokeIndication ProtocolIE-ID ::= 62 -*/ - -constexpr int64_t id_InvokeIndication = 62; -/* -id-LHN-ID ProtocolIE-ID ::= 159 -*/ - -constexpr int64_t id_LHN_ID = 159; -/* -id-ListofEUTRACellsinEUTRACoordinationReq ProtocolIE-ID ::= 289 -*/ - -constexpr int64_t id_ListofEUTRACellsinEUTRACoordinationReq = 289; -/* -id-ListofEUTRACellsinEUTRACoordinationResp ProtocolIE-ID ::= 290 -*/ - -constexpr int64_t id_ListofEUTRACellsinEUTRACoordinationResp = 290; -/* -id-ListofEUTRACellsinNRCoordinationReq ProtocolIE-ID ::= 291 -*/ - -constexpr int64_t id_ListofEUTRACellsinNRCoordinationReq = 291; -/* -id-ListofNRCellsinNRCoordinationReq ProtocolIE-ID ::= 292 -*/ - -constexpr int64_t id_ListofNRCellsinNRCoordinationReq = 292; -/* -id-ListofNRCellsinNRCoordinationResp ProtocolIE-ID ::= 293 -*/ - -constexpr int64_t id_ListofNRCellsinNRCoordinationResp = 293; -/* -id-M3Configuration ProtocolIE-ID ::= 85 -*/ - -constexpr int64_t id_M3Configuration = 85; -/* -id-M4Configuration ProtocolIE-ID ::= 86 -*/ - -constexpr int64_t id_M4Configuration = 86; -/* -id-M5Configuration ProtocolIE-ID ::= 87 -*/ - -constexpr int64_t id_M5Configuration = 87; -/* -id-M6Configuration ProtocolIE-ID ::= 161 -*/ - -constexpr int64_t id_M6Configuration = 161; -/* -id-M7Configuration ProtocolIE-ID ::= 162 -*/ - -constexpr int64_t id_M7Configuration = 162; -/* -id-MBMS-Service-Area-List ProtocolIE-ID ::= 79 -*/ - -constexpr int64_t id_MBMS_Service_Area_List = 79; -/* -id-MBSFN-Subframe-Info ProtocolIE-ID ::= 56 -*/ - -constexpr int64_t id_MBSFN_Subframe_Info = 56; -/* -id-MDT-Location-Info ProtocolIE-ID ::= 88 -*/ - -constexpr int64_t id_MDT_Location_Info = 88; -/* -id-MDTConfiguration ProtocolIE-ID ::= 72 -*/ - -constexpr int64_t id_MDTConfiguration = 72; -/* -id-MakeBeforeBreakIndicator ProtocolIE-ID ::= 181 -*/ - -constexpr int64_t id_MakeBeforeBreakIndicator = 181; -/* -id-ManagementBasedMDTPLMNList ProtocolIE-ID ::= 89 -*/ - -constexpr int64_t id_ManagementBasedMDTPLMNList = 89; -/* -id-ManagementBasedMDTallowed ProtocolIE-ID ::= 74 -*/ - -constexpr int64_t id_ManagementBasedMDTallowed = 74; -/* -id-Masked-IMEISV ProtocolIE-ID ::= 98 -*/ - -constexpr int64_t id_Masked_IMEISV = 98; -/* -id-MeNB-UE-X2AP-ID ProtocolIE-ID ::= 111 -*/ - -constexpr int64_t id_MeNB_UE_X2AP_ID = 111; -/* -id-MeNB-UE-X2AP-ID-Extension ProtocolIE-ID ::= 157 -*/ - -constexpr int64_t id_MeNB_UE_X2AP_ID_Extension = 157; -/* -id-MeNBCell-ID ProtocolIE-ID ::= 279 -*/ - -constexpr int64_t id_MeNBCell_ID = 279; -/* -id-MeNBCoordinationAssistanceInformation ProtocolIE-ID ::= 323 -*/ - -constexpr int64_t id_MeNBCoordinationAssistanceInformation = 323; -/* -id-MeNBResourceCoordinationInformation ProtocolIE-ID ::= 257 -*/ - -constexpr int64_t id_MeNBResourceCoordinationInformation = 257; -/* -id-MeNBtoSeNBContainer ProtocolIE-ID ::= 119 -*/ - -constexpr int64_t id_MeNBtoSeNBContainer = 119; -/* -id-MeNBtoSgNBContainer ProtocolIE-ID ::= 206 -*/ - -constexpr int64_t id_MeNBtoSgNBContainer = 206; -/* -id-Measurement-ID ProtocolIE-ID ::= 37 -*/ - -constexpr int64_t id_Measurement_ID = 37; -/* -id-MeasurementFailureCause-Item ProtocolIE-ID ::= 67 -*/ - -constexpr int64_t id_MeasurementFailureCause_Item = 67; -/* -id-MeasurementInitiationResult-Item ProtocolIE-ID ::= 66 -*/ - -constexpr int64_t id_MeasurementInitiationResult_Item = 66; -/* -id-MeasurementInitiationResult-List ProtocolIE-ID ::= 65 -*/ - -constexpr int64_t id_MeasurementInitiationResult_List = 65; -/* -id-MobilityInformation ProtocolIE-ID ::= 82 -*/ - -constexpr int64_t id_MobilityInformation = 82; -/* -id-MultibandInfoList ProtocolIE-ID ::= 84 -*/ - -constexpr int64_t id_MultibandInfoList = 84; -/* -id-NRCGI ProtocolIE-ID ::= 322 -*/ - -constexpr int64_t id_NRCGI = 322; -/* -id-NRS-NSSS-PowerOffset ProtocolIE-ID ::= 282 -*/ - -constexpr int64_t id_NRS_NSSS_PowerOffset = 282; -/* -id-NRUESecurityCapabilities ProtocolIE-ID ::= 248 -*/ - -constexpr int64_t id_NRUESecurityCapabilities = 248; -/* -id-NRrestrictionin5GS ProtocolIE-ID ::= 305 -*/ - -constexpr int64_t id_NRrestrictionin5GS = 305; -/* -id-NRrestrictioninEPSasSecondaryRAT ProtocolIE-ID ::= 202 -*/ - -constexpr int64_t id_NRrestrictioninEPSasSecondaryRAT = 202; -/* -id-NSSS-NumOccasionDifferentPrecoder ProtocolIE-ID ::= 283 -*/ - -constexpr int64_t id_NSSS_NumOccasionDifferentPrecoder = 283; -/* -id-NeighbourTAC ProtocolIE-ID ::= 76 -*/ - -constexpr int64_t id_NeighbourTAC = 76; -/* -id-New-eNB-UE-X2AP-ID ProtocolIE-ID ::= 9 -*/ - -constexpr int64_t id_New_eNB_UE_X2AP_ID = 9; -/* -id-New-eNB-UE-X2AP-ID-Extension ProtocolIE-ID ::= 155 -*/ - -constexpr int64_t id_New_eNB_UE_X2AP_ID_Extension = 155; -/* -id-NewEUTRANCellIdentifier ProtocolIE-ID ::= 175 -*/ - -constexpr int64_t id_NewEUTRANCellIdentifier = 175; -/* -id-Number-of-Antennaports ProtocolIE-ID ::= 41 -*/ - -constexpr int64_t id_Number_of_Antennaports = 41; -/* -id-OffsetOfNbiotChannelNumberToDL-EARFCN ProtocolIE-ID ::= 177 -*/ - -constexpr int64_t id_OffsetOfNbiotChannelNumberToDL_EARFCN = 177; -/* -id-OffsetOfNbiotChannelNumberToUL-EARFCN ProtocolIE-ID ::= 178 -*/ - -constexpr int64_t id_OffsetOfNbiotChannelNumberToUL_EARFCN = 178; -/* -id-Old-SgNB-UE-X2AP-ID ProtocolIE-ID ::= 264 -*/ - -constexpr int64_t id_Old_SgNB_UE_X2AP_ID = 264; -/* -id-Old-eNB-UE-X2AP-ID ProtocolIE-ID ::= 10 -*/ - -constexpr int64_t id_Old_eNB_UE_X2AP_ID = 10; -/* -id-Old-eNB-UE-X2AP-ID-Extension ProtocolIE-ID ::= 156 -*/ - -constexpr int64_t id_Old_eNB_UE_X2AP_ID_Extension = 156; -/* -id-PDCPChangeIndication ProtocolIE-ID ::= 249 -*/ - -constexpr int64_t id_PDCPChangeIndication = 249; -/* -id-PRACH-Configuration ProtocolIE-ID ::= 55 -*/ - -constexpr int64_t id_PRACH_Configuration = 55; -/* -id-PartialSuccessIndicator ProtocolIE-ID ::= 64 -*/ - -constexpr int64_t id_PartialSuccessIndicator = 64; -/* -id-ProSeAuthorized ProtocolIE-ID ::= 103 -*/ - -constexpr int64_t id_ProSeAuthorized = 103; -/* -id-ProSeUEtoNetworkRelaying ProtocolIE-ID ::= 149 -*/ - -constexpr int64_t id_ProSeUEtoNetworkRelaying = 149; -/* -id-ProtectedEUTRAResourceIndication ProtocolIE-ID ::= 284 -*/ - -constexpr int64_t id_ProtectedEUTRAResourceIndication = 284; -/* -id-RLC-Status ProtocolIE-ID ::= 300 -*/ - -constexpr int64_t id_RLC_Status = 300; -/* -id-RLCMode-transferred ProtocolIE-ID ::= 317 -*/ - -constexpr int64_t id_RLCMode_transferred = 317; -/* -id-RNL-Header ProtocolIE-ID ::= 101 -*/ - -constexpr int64_t id_RNL_Header = 101; -/* -id-RRCConfigIndication ProtocolIE-ID ::= 272 -*/ - -constexpr int64_t id_RRCConfigIndication = 272; -/* -id-RRCConnReestabIndicator ProtocolIE-ID ::= 78 -*/ - -constexpr int64_t id_RRCConnReestabIndicator = 78; -/* -id-RRCConnSetupIndicator ProtocolIE-ID ::= 75 -*/ - -constexpr int64_t id_RRCConnSetupIndicator = 75; -/* -id-RRCContainer ProtocolIE-ID ::= 237 -*/ - -constexpr int64_t id_RRCContainer = 237; -/* -id-RSRPMRList ProtocolIE-ID ::= 110 -*/ - -constexpr int64_t id_RSRPMRList = 110; -/* -id-Re-establishmentCellECGI ProtocolIE-ID ::= 49 -*/ - -constexpr int64_t id_Re_establishmentCellECGI = 49; -/* -id-ReceiveStatusOfULPDCPSDUsExtended ProtocolIE-ID ::= 91 -*/ - -constexpr int64_t id_ReceiveStatusOfULPDCPSDUsExtended = 91; -/* -id-ReceiveStatusOfULPDCPSDUsPDCP-SNlength18 ProtocolIE-ID ::= 150 -*/ - -constexpr int64_t id_ReceiveStatusOfULPDCPSDUsPDCP_SNlength18 = 150; -/* -id-Registration-Request ProtocolIE-ID ::= 28 -*/ - -constexpr int64_t id_Registration_Request = 28; -/* -id-ReportCharacteristics ProtocolIE-ID ::= 38 -*/ - -constexpr int64_t id_ReportCharacteristics = 38; -/* -id-ReportingPeriodicity ProtocolIE-ID ::= 30 -*/ - -constexpr int64_t id_ReportingPeriodicity = 30; -/* -id-ReportingPeriodicityCSIR ProtocolIE-ID ::= 145 -*/ - -constexpr int64_t id_ReportingPeriodicityCSIR = 145; -/* -id-ReportingPeriodicityRSRPMR ProtocolIE-ID ::= 109 -*/ - -constexpr int64_t id_ReportingPeriodicityRSRPMR = 109; -/* -id-RequestedSplitSRBs ProtocolIE-ID ::= 208 -*/ - -constexpr int64_t id_RequestedSplitSRBs = 208; -/* -id-RequestedSplitSRBsrelease ProtocolIE-ID ::= 280 -*/ - -constexpr int64_t id_RequestedSplitSRBsrelease = 280; -/* -id-RespondingNodeType-EndcConfigUpdate ProtocolIE-ID ::= 247 -*/ - -constexpr int64_t id_RespondingNodeType_EndcConfigUpdate = 247; -/* -id-RespondingNodeType-EndcX2Removal ProtocolIE-ID ::= 299 -*/ - -constexpr int64_t id_RespondingNodeType_EndcX2Removal = 299; -/* -id-RespondingNodeType-EndcX2Setup ProtocolIE-ID ::= 246 -*/ - -constexpr int64_t id_RespondingNodeType_EndcX2Setup = 246; -/* -id-RespondingNodeType-EutranrCellResourceCoordination ProtocolIE-ID ::= 286 -*/ - -constexpr int64_t id_RespondingNodeType_EutranrCellResourceCoordination = 286; -/* -id-ResponseInformationSeNBReconfComp ProtocolIE-ID ::= 123 -*/ - -constexpr int64_t id_ResponseInformationSeNBReconfComp = 123; -/* -id-ResponseInformationSgNBReconfComp ProtocolIE-ID ::= 214 -*/ - -constexpr int64_t id_ResponseInformationSgNBReconfComp = 214; -/* -id-SCGChangeIndication ProtocolIE-ID ::= 136 -*/ - -constexpr int64_t id_SCGChangeIndication = 136; -/* -id-SCGConfigurationQuery ProtocolIE-ID ::= 241 -*/ - -constexpr int64_t id_SCGConfigurationQuery = 241; -/* -id-SGNB-Addition-Trigger-Ind ProtocolIE-ID ::= 278 -*/ - -constexpr int64_t id_SGNB_Addition_Trigger_Ind = 278; -/* -id-SIPTO-BearerDeactivationIndication ProtocolIE-ID ::= 164 -*/ - -constexpr int64_t id_SIPTO_BearerDeactivationIndication = 164; -/* -id-SIPTO-Correlation-ID ProtocolIE-ID ::= 167 -*/ - -constexpr int64_t id_SIPTO_Correlation_ID = 167; -/* -id-SIPTO-L-GW-TransportLayerAddress ProtocolIE-ID ::= 168 -*/ - -constexpr int64_t id_SIPTO_L_GW_TransportLayerAddress = 168; -/* -id-SRBType ProtocolIE-ID ::= 238 -*/ - -constexpr int64_t id_SRBType = 238; -/* -id-SRVCCOperationPossible ProtocolIE-ID ::= 36 -*/ - -constexpr int64_t id_SRVCCOperationPossible = 36; -/* -id-SeNB-UE-X2AP-ID ProtocolIE-ID ::= 112 -*/ - -constexpr int64_t id_SeNB_UE_X2AP_ID = 112; -/* -id-SeNB-UE-X2AP-ID-Extension ProtocolIE-ID ::= 158 -*/ - -constexpr int64_t id_SeNB_UE_X2AP_ID_Extension = 158; -/* -id-SeNBSecurityKey ProtocolIE-ID ::= 114 -*/ - -constexpr int64_t id_SeNBSecurityKey = 114; -/* -id-SeNBUEAggregateMaximumBitRate ProtocolIE-ID ::= 115 -*/ - -constexpr int64_t id_SeNBUEAggregateMaximumBitRate = 115; -/* -id-SeNBtoMeNBContainer ProtocolIE-ID ::= 122 -*/ - -constexpr int64_t id_SeNBtoMeNBContainer = 122; -/* -id-SecondaryRATUsageReport ProtocolIE-ID ::= 255 -*/ - -constexpr int64_t id_SecondaryRATUsageReport = 255; -/* -id-SecondaryRATUsageReport-Item ProtocolIE-ID ::= 266 -*/ - -constexpr int64_t id_SecondaryRATUsageReport_Item = 266; -/* -id-SecondaryRATUsageReportList ProtocolIE-ID ::= 265 -*/ - -constexpr int64_t id_SecondaryRATUsageReportList = 265; -/* -id-SelectedPLMN ProtocolIE-ID ::= 269 -*/ - -constexpr int64_t id_SelectedPLMN = 269; -/* -id-ServedCells ProtocolIE-ID ::= 20 -*/ - -constexpr int64_t id_ServedCells = 20; -/* -id-ServedCellsToActivate ProtocolIE-ID ::= 57 -*/ - -constexpr int64_t id_ServedCellsToActivate = 57; -/* -id-ServedCellsToAdd ProtocolIE-ID ::= 25 -*/ - -constexpr int64_t id_ServedCellsToAdd = 25; -/* -id-ServedCellsToDelete ProtocolIE-ID ::= 27 -*/ - -constexpr int64_t id_ServedCellsToDelete = 27; -/* -id-ServedCellsToModify ProtocolIE-ID ::= 26 -*/ - -constexpr int64_t id_ServedCellsToModify = 26; -/* -id-ServedEUTRAcellsENDCX2ManagementList ProtocolIE-ID ::= 250 -*/ - -constexpr int64_t id_ServedEUTRAcellsENDCX2ManagementList = 250; -/* -id-ServedEUTRAcellsToDeleteListENDCConfUpd ProtocolIE-ID ::= 260 -*/ - -constexpr int64_t id_ServedEUTRAcellsToDeleteListENDCConfUpd = 260; -/* -id-ServedEUTRAcellsToModifyListENDCConfUpd ProtocolIE-ID ::= 259 -*/ - -constexpr int64_t id_ServedEUTRAcellsToModifyListENDCConfUpd = 259; -/* -id-ServedNRCellsToActivate ProtocolIE-ID ::= 267 -*/ - -constexpr int64_t id_ServedNRCellsToActivate = 267; -/* -id-ServedNRcellsENDCX2ManagementList ProtocolIE-ID ::= 253 -*/ - -constexpr int64_t id_ServedNRcellsENDCX2ManagementList = 253; -/* -id-ServedNRcellsToDeleteListENDCConfUpd ProtocolIE-ID ::= 262 -*/ - -constexpr int64_t id_ServedNRcellsToDeleteListENDCConfUpd = 262; -/* -id-ServedNRcellsToModifyListENDCConfUpd ProtocolIE-ID ::= 261 -*/ - -constexpr int64_t id_ServedNRcellsToModifyListENDCConfUpd = 261; -/* -id-ServingPLMN ProtocolIE-ID ::= 116 -*/ - -constexpr int64_t id_ServingPLMN = 116; -/* -id-SgNB-UE-X2AP-ID ProtocolIE-ID ::= 207 -*/ - -constexpr int64_t id_SgNB_UE_X2AP_ID = 207; -/* -id-SgNBActivityNotification ProcedureCode ::= 42 -*/ - -constexpr int64_t id_SgNBActivityNotification = 42; -/* -id-SgNBCoordinationAssistanceInformation ProtocolIE-ID ::= 324 -*/ - -constexpr int64_t id_SgNBCoordinationAssistanceInformation = 324; -/* -id-SgNBResourceCoordinationInformation ProtocolIE-ID ::= 258 -*/ - -constexpr int64_t id_SgNBResourceCoordinationInformation = 258; -/* -id-SgNBSecurityKey ProtocolIE-ID ::= 203 -*/ - -constexpr int64_t id_SgNBSecurityKey = 203; -/* -id-SgNBUEAggregateMaximumBitRate ProtocolIE-ID ::= 204 -*/ - -constexpr int64_t id_SgNBUEAggregateMaximumBitRate = 204; -/* -id-SgNBtoMeNBContainer ProtocolIE-ID ::= 211 -*/ - -constexpr int64_t id_SgNBtoMeNBContainer = 211; -/* -id-ShortMAC-I ProtocolIE-ID ::= 51 -*/ - -constexpr int64_t id_ShortMAC_I = 51; -/* -id-SignallingBasedMDTPLMNList ProtocolIE-ID ::= 90 -*/ - -constexpr int64_t id_SignallingBasedMDTPLMNList = 90; -/* -id-SourceCellCRNTI ProtocolIE-ID ::= 83 -*/ - -constexpr int64_t id_SourceCellCRNTI = 83; -/* -id-SourceCellECGI ProtocolIE-ID ::= 52 -*/ - -constexpr int64_t id_SourceCellECGI = 52; -/* -id-SpectrumSharingGroupID ProtocolIE-ID ::= 288 -*/ - -constexpr int64_t id_SpectrumSharingGroupID = 288; -/* -id-SplitSRB ProtocolIE-ID ::= 242 -*/ - -constexpr int64_t id_SplitSRB = 242; -/* -id-SubscriberProfileIDforRFP ProtocolIE-ID ::= 275 -*/ - -constexpr int64_t id_SubscriberProfileIDforRFP = 275; -/* -id-Subscription-Based-UE-DifferentiationInfo ProtocolIE-ID ::= 309 -*/ - -constexpr int64_t id_Subscription_Based_UE_DifferentiationInfo = 309; -/* -id-Target-SgNB-ID ProtocolIE-ID ::= 239 -*/ - -constexpr int64_t id_Target_SgNB_ID = 239; -/* -id-TargetCell-ID ProtocolIE-ID ::= 11 -*/ - -constexpr int64_t id_TargetCell_ID = 11; -/* -id-TargetCellInUTRAN ProtocolIE-ID ::= 81 -*/ - -constexpr int64_t id_TargetCellInUTRAN = 81; -/* -id-TargeteNBtoSource-eNBTransparentContainer ProtocolIE-ID ::= 12 -*/ - -constexpr int64_t id_TargeteNBtoSource_eNBTransparentContainer = 12; -/* -id-Time-UE-StayedInCell-EnhancedGranularity ProtocolIE-ID ::= 77 -*/ - -constexpr int64_t id_Time_UE_StayedInCell_EnhancedGranularity = 77; -/* -id-TimeToWait ProtocolIE-ID ::= 22 -*/ - -constexpr int64_t id_TimeToWait = 22; -/* -id-TraceActivation ProtocolIE-ID ::= 13 -*/ - -constexpr int64_t id_TraceActivation = 13; -/* -id-Tunnel-Information-for-BBF ProtocolIE-ID ::= 163 -*/ - -constexpr int64_t id_Tunnel_Information_for_BBF = 163; -/* -id-UE-ContextInformation ProtocolIE-ID ::= 14 -*/ - -constexpr int64_t id_UE_ContextInformation = 14; -/* -id-UE-ContextInformation-SgNBModReq ProtocolIE-ID ::= 215 -*/ - -constexpr int64_t id_UE_ContextInformation_SgNBModReq = 215; -/* -id-UE-ContextInformationRetrieve ProtocolIE-ID ::= 173 -*/ - -constexpr int64_t id_UE_ContextInformationRetrieve = 173; -/* -id-UE-ContextInformationSeNBModReq ProtocolIE-ID ::= 124 -*/ - -constexpr int64_t id_UE_ContextInformationSeNBModReq = 124; -/* -id-UE-ContextKeptIndicator ProtocolIE-ID ::= 154 -*/ - -constexpr int64_t id_UE_ContextKeptIndicator = 154; -/* -id-UE-ContextReferenceAtSeNB ProtocolIE-ID ::= 153 -*/ - -constexpr int64_t id_UE_ContextReferenceAtSeNB = 153; -/* -id-UE-ContextReferenceAtSgNB ProtocolIE-ID ::= 254 -*/ - -constexpr int64_t id_UE_ContextReferenceAtSgNB = 254; -/* -id-UE-ContextReferenceAtWT ProtocolIE-ID ::= 182 -*/ - -constexpr int64_t id_UE_ContextReferenceAtWT = 182; -/* -id-UE-HistoryInformation ProtocolIE-ID ::= 15 -*/ - -constexpr int64_t id_UE_HistoryInformation = 15; -/* -id-UE-HistoryInformationFromTheUE ProtocolIE-ID ::= 105 -*/ - -constexpr int64_t id_UE_HistoryInformationFromTheUE = 105; -/* -id-UE-RLF-Report-Container ProtocolIE-ID ::= 60 -*/ - -constexpr int64_t id_UE_RLF_Report_Container = 60; -/* -id-UE-RLF-Report-Container-for-extended-bands ProtocolIE-ID ::= 107 -*/ - -constexpr int64_t id_UE_RLF_Report_Container_for_extended_bands = 107; -/* -id-UE-SecurityCapabilities ProtocolIE-ID ::= 113 -*/ - -constexpr int64_t id_UE_SecurityCapabilities = 113; -/* -id-UE-X2AP-ID ProtocolIE-ID ::= 16 -*/ - -constexpr int64_t id_UE_X2AP_ID = 16; -/* -id-UEAppLayerMeasConfig ProtocolIE-ID ::= 195 -*/ - -constexpr int64_t id_UEAppLayerMeasConfig = 195; -/* -id-UEContextLevelUserPlaneActivity ProtocolIE-ID ::= 296 -*/ - -constexpr int64_t id_UEContextLevelUserPlaneActivity = 296; -/* -id-UEID ProtocolIE-ID ::= 147 -*/ - -constexpr int64_t id_UEID = 147; -/* -id-UENRMeasurement ProtocolIE-ID ::= 243 -*/ - -constexpr int64_t id_UENRMeasurement = 243; -/* -id-UESidelinkAggregateMaximumBitRate ProtocolIE-ID ::= 184 -*/ - -constexpr int64_t id_UESidelinkAggregateMaximumBitRate = 184; -/* -id-UEs-Admitted-ToBeReset ProtocolIE-ID ::= 271 -*/ - -constexpr int64_t id_UEs_Admitted_ToBeReset = 271; -/* -id-UEs-ToBeReset ProtocolIE-ID ::= 270 -*/ - -constexpr int64_t id_UEs_ToBeReset = 270; -/* -id-UL-EARFCNExtension ProtocolIE-ID ::= 95 -*/ - -constexpr int64_t id_UL_EARFCNExtension = 95; -/* -id-UL-scheduling-PDCCH-CCE-usage ProtocolIE-ID ::= 194 -*/ - -constexpr int64_t id_UL_scheduling_PDCCH_CCE_usage = 194; -/* -id-ULCOUNTValueExtended ProtocolIE-ID ::= 92 -*/ - -constexpr int64_t id_ULCOUNTValueExtended = 92; -/* -id-ULCOUNTValuePDCP-SNlength18 ProtocolIE-ID ::= 151 -*/ - -constexpr int64_t id_ULCOUNTValuePDCP_SNlength18 = 151; -/* -id-UplinkPacketLossRate ProtocolIE-ID ::= 274 -*/ - -constexpr int64_t id_UplinkPacketLossRate = 274; -/* -id-V2XServicesAuthorized ProtocolIE-ID ::= 176 -*/ - -constexpr int64_t id_V2XServicesAuthorized = 176; -/* -id-WLANMeasurementConfiguration ProtocolIE-ID ::= 304 -*/ - -constexpr int64_t id_WLANMeasurementConfiguration = 304; -/* -id-WT-UE-ContextKeptIndicator ProtocolIE-ID ::= 183 -*/ - -constexpr int64_t id_WT_UE_ContextKeptIndicator = 183; -/* -id-X2RemovalThreshold ProtocolIE-ID ::= 169 -*/ - -constexpr int64_t id_X2RemovalThreshold = 169; -/* -id-cellActivation ProcedureCode ::= 15 -*/ - -constexpr int64_t id_cellActivation = 15; -/* -id-dL-Forwarding ProtocolIE-ID ::= 306 -*/ - -constexpr int64_t id_dL_Forwarding = 306; -/* -id-dLPDCPSnLength ProtocolIE-ID ::= 311 -*/ - -constexpr int64_t id_dLPDCPSnLength = 311; -/* -id-dataForwardingAddressIndication ProcedureCode ::= 44 -*/ - -constexpr int64_t id_dataForwardingAddressIndication = 44; -/* -id-duplicationActivation ProtocolIE-ID ::= 315 -*/ - -constexpr int64_t id_duplicationActivation = 315; -/* -id-eARFCNExtension ProtocolIE-ID ::= 94 -*/ - -constexpr int64_t id_eARFCNExtension = 94; -/* -id-eNBConfigurationUpdate ProcedureCode ::= 8 -*/ - -constexpr int64_t id_eNBConfigurationUpdate = 8; -/* -id-eUTRANRCellResourceCoordination ProcedureCode ::= 41 -*/ - -constexpr int64_t id_eUTRANRCellResourceCoordination = 41; -/* -id-endcCellActivation ProcedureCode ::= 39 -*/ - -constexpr int64_t id_endcCellActivation = 39; -/* -id-endcConfigurationUpdate ProcedureCode ::= 37 -*/ - -constexpr int64_t id_endcConfigurationUpdate = 37; -/* -id-endcPartialReset ProcedureCode ::= 40 -*/ - -constexpr int64_t id_endcPartialReset = 40; -/* -id-endcX2Removal ProcedureCode ::= 43 -*/ - -constexpr int64_t id_endcX2Removal = 43; -/* -id-endcX2Setup ProcedureCode ::= 36 -*/ - -constexpr int64_t id_endcX2Setup = 36; -/* -id-enhancedRNTP ProtocolIE-ID ::= 148 -*/ - -constexpr int64_t id_enhancedRNTP = 148; -/* -id-errorIndication ProcedureCode ::= 3 -*/ - -constexpr int64_t id_errorIndication = 3; -/* -id-extended-e-RAB-GuaranteedBitrateDL ProtocolIE-ID ::= 198 -*/ - -constexpr int64_t id_extended_e_RAB_GuaranteedBitrateDL = 198; -/* -id-extended-e-RAB-GuaranteedBitrateUL ProtocolIE-ID ::= 199 -*/ - -constexpr int64_t id_extended_e_RAB_GuaranteedBitrateUL = 199; -/* -id-extended-e-RAB-MaximumBitrateDL ProtocolIE-ID ::= 196 -*/ - -constexpr int64_t id_extended_e_RAB_MaximumBitrateDL = 196; -/* -id-extended-e-RAB-MaximumBitrateUL ProtocolIE-ID ::= 197 -*/ - -constexpr int64_t id_extended_e_RAB_MaximumBitrateUL = 197; -/* -id-extended-uEaggregateMaximumBitRateDownlink ProtocolIE-ID ::= 200 -*/ - -constexpr int64_t id_extended_uEaggregateMaximumBitRateDownlink = 200; -/* -id-extended-uEaggregateMaximumBitRateUplink ProtocolIE-ID ::= 201 -*/ - -constexpr int64_t id_extended_uEaggregateMaximumBitRateUplink = 201; -/* -id-gNBStatusIndication ProcedureCode ::= 45 -*/ - -constexpr int64_t id_gNBStatusIndication = 45; -/* -id-handoverCancel ProcedureCode ::= 1 -*/ - -constexpr int64_t id_handoverCancel = 1; -/* -id-handoverPreparation ProcedureCode ::= 0 -*/ - -constexpr int64_t id_handoverPreparation = 0; -/* -id-handoverReport ProcedureCode ::= 14 -*/ - -constexpr int64_t id_handoverReport = 14; -/* -id-lCID ProtocolIE-ID ::= 314 -*/ - -constexpr int64_t id_lCID = 314; -/* -id-loadIndication ProcedureCode ::= 2 -*/ - -constexpr int64_t id_loadIndication = 2; -/* -id-meNBinitiatedSeNBModificationPreparation ProcedureCode ::= 21 -*/ - -constexpr int64_t id_meNBinitiatedSeNBModificationPreparation = 21; -/* -id-meNBinitiatedSeNBRelease ProcedureCode ::= 23 -*/ - -constexpr int64_t id_meNBinitiatedSeNBRelease = 23; -/* -id-meNBinitiatedSgNBModificationPreparation ProcedureCode ::= 29 -*/ - -constexpr int64_t id_meNBinitiatedSgNBModificationPreparation = 29; -/* -id-meNBinitiatedSgNBRelease ProcedureCode ::= 31 -*/ - -constexpr int64_t id_meNBinitiatedSgNBRelease = 31; -/* -id-mobilitySettingsChange ProcedureCode ::= 12 -*/ - -constexpr int64_t id_mobilitySettingsChange = 12; -/* -id-new-drb-ID-req ProtocolIE-ID ::= 325 -*/ - -constexpr int64_t id_new_drb_ID_req = 325; -/* -id-privateMessage ProcedureCode ::= 11 -*/ - -constexpr int64_t id_privateMessage = 11; -/* -id-rLFIndication ProcedureCode ::= 13 -*/ - -constexpr int64_t id_rLFIndication = 13; -/* -id-rRCTransfer ProcedureCode ::= 35 -*/ - -constexpr int64_t id_rRCTransfer = 35; -/* -id-reset ProcedureCode ::= 7 -*/ - -constexpr int64_t id_reset = 7; -/* -id-resourceStatusReporting ProcedureCode ::= 10 -*/ - -constexpr int64_t id_resourceStatusReporting = 10; -/* -id-resourceStatusReportingInitiation ProcedureCode ::= 9 -*/ - -constexpr int64_t id_resourceStatusReportingInitiation = 9; -/* -id-resumeID ProtocolIE-ID ::= 172 -*/ - -constexpr int64_t id_resumeID = 172; -/* -id-retrieveUEContext ProcedureCode ::= 26 -*/ - -constexpr int64_t id_retrieveUEContext = 26; -/* -id-seNBAdditionPreparation ProcedureCode ::= 19 -*/ - -constexpr int64_t id_seNBAdditionPreparation = 19; -/* -id-seNBCounterCheck ProcedureCode ::= 25 -*/ - -constexpr int64_t id_seNBCounterCheck = 25; -/* -id-seNBReconfigurationCompletion ProcedureCode ::= 20 -*/ - -constexpr int64_t id_seNBReconfigurationCompletion = 20; -/* -id-seNBinitiatedSeNBModification ProcedureCode ::= 22 -*/ - -constexpr int64_t id_seNBinitiatedSeNBModification = 22; -/* -id-seNBinitiatedSeNBRelease ProcedureCode ::= 24 -*/ - -constexpr int64_t id_seNBinitiatedSeNBRelease = 24; -/* -id-secondaryRATDataUsageReport ProcedureCode ::= 38 -*/ - -constexpr int64_t id_secondaryRATDataUsageReport = 38; -/* -id-secondarymeNBULGTPTEIDatPDCP ProtocolIE-ID ::= 313 -*/ - -constexpr int64_t id_secondarymeNBULGTPTEIDatPDCP = 313; -/* -id-secondarysgNBDLGTPTEIDatPDCP ProtocolIE-ID ::= 312 -*/ - -constexpr int64_t id_secondarysgNBDLGTPTEIDatPDCP = 312; -/* -id-serviceType ProtocolIE-ID ::= 276 -*/ - -constexpr int64_t id_serviceType = 276; -/* -id-sgNBAdditionPreparation ProcedureCode ::= 27 -*/ - -constexpr int64_t id_sgNBAdditionPreparation = 27; -/* -id-sgNBChange ProcedureCode ::= 34 -*/ - -constexpr int64_t id_sgNBChange = 34; -/* -id-sgNBCounterCheck ProcedureCode ::= 33 -*/ - -constexpr int64_t id_sgNBCounterCheck = 33; -/* -id-sgNBReconfigurationCompletion ProcedureCode ::= 28 -*/ - -constexpr int64_t id_sgNBReconfigurationCompletion = 28; -/* -id-sgNBinitiatedSgNBModification ProcedureCode ::= 30 -*/ - -constexpr int64_t id_sgNBinitiatedSgNBModification = 30; -/* -id-sgNBinitiatedSgNBRelease ProcedureCode ::= 32 -*/ - -constexpr int64_t id_sgNBinitiatedSgNBRelease = 32; -/* -id-snStatusTransfer ProcedureCode ::= 4 -*/ - -constexpr int64_t id_snStatusTransfer = 4; -/* -id-uEContextRelease ProcedureCode ::= 5 -*/ - -constexpr int64_t id_uEContextRelease = 5; -/* -id-uL-GTPtunnelEndpoint ProtocolIE-ID ::= 185 -*/ - -constexpr int64_t id_uL_GTPtunnelEndpoint = 185; -/* -id-uLpDCPSnLength ProtocolIE-ID ::= 302 -*/ - -constexpr int64_t id_uLpDCPSnLength = 302; -/* -id-x2APMessage ProtocolIE-ID ::= 102 -*/ - -constexpr int64_t id_x2APMessage = 102; -/* -id-x2APMessageTransfer ProcedureCode ::= 17 -*/ - -constexpr int64_t id_x2APMessageTransfer = 17; -/* -id-x2Release ProcedureCode ::= 16 -*/ - -constexpr int64_t id_x2Release = 16; -/* -id-x2Removal ProcedureCode ::= 18 -*/ - -constexpr int64_t id_x2Removal = 18; -/* -id-x2Setup ProcedureCode ::= 6 -*/ - -constexpr int64_t id_x2Setup = 6; -/* -maxCSIProcess INTEGER ::= 4 -*/ - -constexpr int64_t maxCSIProcess = 4; -/* -maxCSIReport INTEGER ::= 2 -*/ - -constexpr int64_t maxCSIReport = 2; -/* -maxCellReport INTEGER ::= 9 -*/ - -constexpr int64_t maxCellReport = 9; -/* -maxCellineNB INTEGER ::= 256 -*/ - -constexpr int64_t maxCellineNB = 256; -/* -maxCellinengNB INTEGER ::= 16384 -*/ - -constexpr int64_t maxCellinengNB = 16384; -/* -maxEARFCN INTEGER ::= 65535 -*/ - -constexpr int64_t maxEARFCN = 65535; -/* -maxEARFCNPlusOne INTEGER ::= 65536 -*/ - -constexpr int64_t maxEARFCNPlusOne = 65536; -/* -maxFailedMeasObjects INTEGER ::= 32 -*/ - -constexpr int64_t maxFailedMeasObjects = 32; -/* -maxInterfaces INTEGER ::= 16 -*/ - -constexpr int64_t maxInterfaces = 16; -/* -maxNrOfErrors INTEGER ::= 256 -*/ - -constexpr int64_t maxNrOfErrors = 256; -/* -maxPools INTEGER ::= 16 -*/ - -constexpr int64_t maxPools = 16; -/* -maxSubband INTEGER ::= 14 -*/ - -constexpr int64_t maxSubband = 14; -/* -maxUEReport INTEGER ::= 128 -*/ - -constexpr int64_t maxUEReport = 128; -/* -maxUEsinengNBDU INTEGER ::= 8192 -*/ - -constexpr int64_t maxUEsinengNBDU = 8192; -/* -maxnoNRcellsSpectrumSharingWithE-UTRA INTEGER ::= 64 -*/ - -constexpr int64_t maxnoNRcellsSpectrumSharingWithE_UTRA = 64; -/* -maxnoofBPLMNs INTEGER ::= 6 -*/ - -constexpr int64_t maxnoofBPLMNs = 6; -/* -maxnoofBands INTEGER ::= 16 -*/ - -constexpr int64_t maxnoofBands = 16; -/* -maxnoofBearers INTEGER ::= 256 -*/ - -constexpr int64_t maxnoofBearers = 256; -/* -maxnoofBluetoothName INTEGER ::= 4 -*/ - -constexpr int64_t maxnoofBluetoothName = 4; -/* -maxnoofCellIDforMDT INTEGER ::= 32 -*/ - -constexpr int64_t maxnoofCellIDforMDT = 32; -/* -maxnoofCellIDforQMC INTEGER ::= 32 -*/ - -constexpr int64_t maxnoofCellIDforQMC = 32; -/* -maxnoofCells INTEGER ::= 16 -*/ - -constexpr int64_t maxnoofCells = 16; -/* -maxnoofCoMPCells INTEGER ::= 32 -*/ - -constexpr int64_t maxnoofCoMPCells = 32; -/* -maxnoofCoMPHypothesisSet INTEGER ::= 256 -*/ - -constexpr int64_t maxnoofCoMPHypothesisSet = 256; -/* -maxnoofEPLMNs INTEGER ::= 15 -*/ - -constexpr int64_t maxnoofEPLMNs = 15; -/* -maxnoofEPLMNsPlusOne INTEGER ::= 16 -*/ - -constexpr int64_t maxnoofEPLMNsPlusOne = 16; -/* -maxnoofForbLACs INTEGER ::= 4096 -*/ - -constexpr int64_t maxnoofForbLACs = 4096; -/* -maxnoofForbTACs INTEGER ::= 4096 -*/ - -constexpr int64_t maxnoofForbTACs = 4096; -/* -maxnoofMBMSServiceAreaIdentities INTEGER ::= 256 -*/ - -constexpr int64_t maxnoofMBMSServiceAreaIdentities = 256; -/* -maxnoofMBSFN INTEGER ::= 8 -*/ - -constexpr int64_t maxnoofMBSFN = 8; -/* -maxnoofMDTPLMNs INTEGER ::= 16 -*/ - -constexpr int64_t maxnoofMDTPLMNs = 16; -/* -maxnoofNeighbours INTEGER ::= 512 -*/ - -constexpr int64_t maxnoofNeighbours = 512; -/* -maxnoofNrCellBands INTEGER ::= 32 -*/ - -constexpr int64_t maxnoofNrCellBands = 32; -/* -maxnoofPA INTEGER ::= 3 -*/ - -constexpr int64_t maxnoofPA = 3; -/* -maxnoofPDCP-SN INTEGER ::= 16 -*/ - -constexpr int64_t maxnoofPDCP_SN = 16; -/* -maxnoofPLMNforQMC INTEGER ::= 16 -*/ - -constexpr int64_t maxnoofPLMNforQMC = 16; -/* -maxnoofPRBs INTEGER ::= 110 -*/ - -constexpr int64_t maxnoofPRBs = 110; -/* -maxnoofProtectedResourcePatterns INTEGER ::= 16 -*/ - -constexpr int64_t maxnoofProtectedResourcePatterns = 16; -/* -maxnoofTAforMDT INTEGER ::= 8 -*/ - -constexpr int64_t maxnoofTAforMDT = 8; -/* -maxnoofTAforQMC INTEGER ::= 8 -*/ - -constexpr int64_t maxnoofTAforQMC = 8; -/* -maxnoofWLANName INTEGER ::= 4 -*/ - -constexpr int64_t maxnoofWLANName = 4; -/* -maxnooftimeperiods INTEGER ::= 2 -*/ - -constexpr int64_t maxnooftimeperiods = 2; -/* -maxofNRNeighbours INTEGER ::= 1024 -*/ - -constexpr int64_t maxofNRNeighbours = 1024; -/* -newmaxEARFCN INTEGER ::= 262143 -*/ - -constexpr int64_t newmaxEARFCN = 262143; diff --git a/e2sim/previous/e2apv1sim/e2sim/src/ASN1/generated/X2AP-Containers.hpp b/e2sim/previous/e2apv1sim/e2sim/src/ASN1/generated/X2AP-Containers.hpp deleted file mode 100644 index 09545bf..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/ASN1/generated/X2AP-Containers.hpp +++ /dev/null @@ -1,700 +0,0 @@ -/***************************************************************************** -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -#pragma once - -#include "asn/asn.hpp" -static_assert(ASN_API_VERSION_MAJOR == 5, "re-generate the ASN parser's code using 'make regen-asn' (do not use -j option)"); - -#include "X2AP-CommonDataTypes.hpp" - -/* -X2AP-PRIVATE-IES ::= CLASS { - &id PrivateIE-ID, - &criticality Criticality, - &Value, - &presence Presence -} -WITH SYNTAX { - ID &id - CRITICALITY &criticality - TYPE &Value - PRESENCE &presence -} -*/ - -struct X2AP_PRIVATE_IES -{ - struct id_t : PrivateIE_ID - { - static constexpr const char* name() {return "id_t";} - using parent_t = PrivateIE_ID; - - }; - struct criticality_t : Criticality - { - static constexpr const char* name() {return "criticality_t";} - using parent_t = Criticality; - - }; - struct presence_t : Presence - { - static constexpr const char* name() {return "presence_t";} - using parent_t = Presence; - - }; - -}; -/* -PrivateIE-Field {X2AP-PRIVATE-IES : IEsSetParam} ::= SEQUENCE { - id X2AP-PRIVATE-IES.&id ({IEsSetParam}), - criticality X2AP-PRIVATE-IES.&criticality ({IEsSetParam}{@id}), - value X2AP-PRIVATE-IES.&Value ({IEsSetParam}{@id}) -} -*/ - -template -struct PrivateIE_Field : asn::sequence<3, 0, false, 0> -{ - static constexpr const char* name() {return "PrivateIE-Field";} - using parent_t = asn::sequence<3, 0, false, 0>; - struct id_t : IEsSetParam::id_t - { - static constexpr const char* name() {return "id_t";} - using parent_t = typename IEsSetParam::id_t; - template bool decode(V& v, PrivateIE_Field const& c) - { - return IEsSetParam::id_t::decode(v); - }; - template bool encode(V& v, PrivateIE_Field const& c) const - { - return IEsSetParam::id_t::encode(v); - }; - }; - id_t& ref_id() {return id;} - id_t const& ref_id() const {return id;} - struct criticality_t : IEsSetParam::criticality_t - { - static constexpr const char* name() {return "criticality_t";} - using parent_t = typename IEsSetParam::criticality_t; - template bool decode(V& v, PrivateIE_Field const& c) - { - return IEsSetParam::criticality_t::decode(c.id.get_index(), v); - }; - template bool encode(V& v, PrivateIE_Field const& c) const - { - return IEsSetParam::criticality_t::encode(c.id.get_index(), v); - }; - }; - criticality_t& ref_criticality() {return criticality;} - criticality_t const& ref_criticality() const {return criticality;} - struct value_t : IEsSetParam::Value_t - { - static constexpr const char* name() {return "value_t";} - using parent_t = typename IEsSetParam::Value_t; - template bool decode(V& v, PrivateIE_Field const& c) - { - return IEsSetParam::Value_t::decode(c.id.get_index(), v); - }; - template bool encode(V& v, PrivateIE_Field const& c) const - { - return IEsSetParam::Value_t::encode(c.id.get_index(), v); - }; - }; - value_t& ref_value() {return value;} - value_t const& ref_value() const {return value;} - template void decode(V& v) - { - v(id); - v(criticality); - v(value); - - }; - template void encode(V& v) const - { - v(id); - v(criticality); - v(value); - - }; - void clear() - { - id.clear(); - criticality.clear(); - value.clear(); - - }; - private: - id_t id; - criticality_t criticality; - value_t value; - -}; -/* -PrivateIE-Container {X2AP-PRIVATE-IES : IEsSetParam} ::= - SEQUENCE (SIZE (1..maxPrivateIEs)) OF - PrivateIE-Field {{IEsSetParam}} -*/ - -template -struct PrivateIE_Container_elm : PrivateIE_Field -{ - static constexpr const char* name() {return "PrivateIE_Container_elm";} - using parent_t = PrivateIE_Field; - -}; -template -struct PrivateIE_Container : asn::sequenceof > -{ - static constexpr const char* name() {return "PrivateIE-Container";} - using parent_t = asn::sequenceof >; - using constraint_t = asn::constraints>; - -}; -/* -X2AP-PROTOCOL-EXTENSION ::= CLASS { - &id ProtocolIE-ID UNIQUE, - &criticality Criticality, - &Extension, - &presence Presence -} -WITH SYNTAX { - ID &id - CRITICALITY &criticality - EXTENSION &Extension - PRESENCE &presence -} -*/ - -struct X2AP_PROTOCOL_EXTENSION -{ - struct id_t : ProtocolIE_ID - { - static constexpr const char* name() {return "id_t";} - using parent_t = ProtocolIE_ID; - - }; - struct criticality_t : Criticality - { - static constexpr const char* name() {return "criticality_t";} - using parent_t = Criticality; - - }; - struct presence_t : Presence - { - static constexpr const char* name() {return "presence_t";} - using parent_t = Presence; - - }; - -}; -/* -ProtocolExtensionField {X2AP-PROTOCOL-EXTENSION : ExtensionSetParam} ::= SEQUENCE { - id X2AP-PROTOCOL-EXTENSION.&id ({ExtensionSetParam}), - criticality X2AP-PROTOCOL-EXTENSION.&criticality ({ExtensionSetParam}{@id}), - extensionValue X2AP-PROTOCOL-EXTENSION.&Extension ({ExtensionSetParam}{@id}) -} -*/ - -template -struct ProtocolExtensionField : asn::sequence<3, 0, false, 0> -{ - static constexpr const char* name() {return "ProtocolExtensionField";} - using parent_t = asn::sequence<3, 0, false, 0>; - struct id_t : ExtensionSetParam::id_t - { - static constexpr const char* name() {return "id_t";} - using parent_t = typename ExtensionSetParam::id_t; - template bool decode(V& v, ProtocolExtensionField const& c) - { - return ExtensionSetParam::id_t::decode(v); - }; - template bool encode(V& v, ProtocolExtensionField const& c) const - { - return ExtensionSetParam::id_t::encode(v); - }; - }; - id_t& ref_id() {return id;} - id_t const& ref_id() const {return id;} - struct criticality_t : ExtensionSetParam::criticality_t - { - static constexpr const char* name() {return "criticality_t";} - using parent_t = typename ExtensionSetParam::criticality_t; - template bool decode(V& v, ProtocolExtensionField const& c) - { - return ExtensionSetParam::criticality_t::decode(c.id.get_index(), v); - }; - template bool encode(V& v, ProtocolExtensionField const& c) const - { - return ExtensionSetParam::criticality_t::encode(c.id.get_index(), v); - }; - }; - criticality_t& ref_criticality() {return criticality;} - criticality_t const& ref_criticality() const {return criticality;} - struct extensionValue_t : ExtensionSetParam::Extension_t - { - static constexpr const char* name() {return "extensionValue_t";} - using parent_t = typename ExtensionSetParam::Extension_t; - template bool decode(V& v, ProtocolExtensionField const& c) - { - return ExtensionSetParam::Extension_t::decode(c.id.get_index(), v); - }; - template bool encode(V& v, ProtocolExtensionField const& c) const - { - return ExtensionSetParam::Extension_t::encode(c.id.get_index(), v); - }; - }; - extensionValue_t& ref_extensionValue() {return extensionValue;} - extensionValue_t const& ref_extensionValue() const {return extensionValue;} - template void decode(V& v) - { - v(id); - v(criticality); - v(extensionValue); - - }; - template void encode(V& v) const - { - v(id); - v(criticality); - v(extensionValue); - - }; - void clear() - { - id.clear(); - criticality.clear(); - extensionValue.clear(); - - }; - private: - id_t id; - criticality_t criticality; - extensionValue_t extensionValue; - -}; -/* -ProtocolExtensionContainer {X2AP-PROTOCOL-EXTENSION : ExtensionSetParam} ::= - SEQUENCE (SIZE (1..maxProtocolExtensions)) OF - ProtocolExtensionField {{ExtensionSetParam}} -*/ - -template -struct ProtocolExtensionContainer_elm : ProtocolExtensionField -{ - static constexpr const char* name() {return "ProtocolExtensionContainer_elm";} - using parent_t = ProtocolExtensionField; - -}; -template -struct ProtocolExtensionContainer : asn::sequenceof > -{ - static constexpr const char* name() {return "ProtocolExtensionContainer";} - using parent_t = asn::sequenceof >; - using constraint_t = asn::constraints>; - -}; -/* -X2AP-PROTOCOL-IES ::= CLASS { - &id ProtocolIE-ID UNIQUE, - &criticality Criticality, - &Value, - &presence Presence -} -WITH SYNTAX { - ID &id - CRITICALITY &criticality - TYPE &Value - PRESENCE &presence -} -*/ - -struct X2AP_PROTOCOL_IES -{ - struct id_t : ProtocolIE_ID - { - static constexpr const char* name() {return "id_t";} - using parent_t = ProtocolIE_ID; - - }; - struct criticality_t : Criticality - { - static constexpr const char* name() {return "criticality_t";} - using parent_t = Criticality; - - }; - struct presence_t : Presence - { - static constexpr const char* name() {return "presence_t";} - using parent_t = Presence; - - }; - -}; -/* -ProtocolIE-Field {X2AP-PROTOCOL-IES : IEsSetParam} ::= SEQUENCE { - id X2AP-PROTOCOL-IES.&id ({IEsSetParam}), - criticality X2AP-PROTOCOL-IES.&criticality ({IEsSetParam}{@id}), - value X2AP-PROTOCOL-IES.&Value ({IEsSetParam}{@id}) -} -*/ - -template -struct ProtocolIE_Field : asn::sequence<3, 0, false, 0> -{ - static constexpr const char* name() {return "ProtocolIE-Field";} - using parent_t = asn::sequence<3, 0, false, 0>; - struct id_t : IEsSetParam::id_t - { - static constexpr const char* name() {return "id_t";} - using parent_t = typename IEsSetParam::id_t; - template bool decode(V& v, ProtocolIE_Field const& c) - { - return IEsSetParam::id_t::decode(v); - }; - template bool encode(V& v, ProtocolIE_Field const& c) const - { - return IEsSetParam::id_t::encode(v); - }; - }; - id_t& ref_id() {return id;} - id_t const& ref_id() const {return id;} - struct criticality_t : IEsSetParam::criticality_t - { - static constexpr const char* name() {return "criticality_t";} - using parent_t = typename IEsSetParam::criticality_t; - template bool decode(V& v, ProtocolIE_Field const& c) - { - return IEsSetParam::criticality_t::decode(c.id.get_index(), v); - }; - template bool encode(V& v, ProtocolIE_Field const& c) const - { - return IEsSetParam::criticality_t::encode(c.id.get_index(), v); - }; - }; - criticality_t& ref_criticality() {return criticality;} - criticality_t const& ref_criticality() const {return criticality;} - struct value_t : IEsSetParam::Value_t - { - static constexpr const char* name() {return "value_t";} - using parent_t = typename IEsSetParam::Value_t; - template bool decode(V& v, ProtocolIE_Field const& c) - { - return IEsSetParam::Value_t::decode(c.id.get_index(), v); - }; - template bool encode(V& v, ProtocolIE_Field const& c) const - { - return IEsSetParam::Value_t::encode(c.id.get_index(), v); - }; - }; - value_t& ref_value() {return value;} - value_t const& ref_value() const {return value;} - template void decode(V& v) - { - v(id); - v(criticality); - v(value); - - }; - template void encode(V& v) const - { - v(id); - v(criticality); - v(value); - - }; - void clear() - { - id.clear(); - criticality.clear(); - value.clear(); - - }; - private: - id_t id; - criticality_t criticality; - value_t value; - -}; -/* -ProtocolIE-Container {X2AP-PROTOCOL-IES : IEsSetParam} ::= - SEQUENCE (SIZE (0..maxProtocolIEs)) OF - ProtocolIE-Field {{IEsSetParam}} -*/ - -template -struct ProtocolIE_Container_elm : ProtocolIE_Field -{ - static constexpr const char* name() {return "ProtocolIE_Container_elm";} - using parent_t = ProtocolIE_Field; - -}; -template -struct ProtocolIE_Container : asn::sequenceof > -{ - static constexpr const char* name() {return "ProtocolIE-Container";} - using parent_t = asn::sequenceof >; - using constraint_t = asn::constraints>; - -}; -/* -ProtocolIE-ContainerList {INTEGER : lowerBound, INTEGER : upperBound, X2AP-PROTOCOL-IES : IEsSetParam} ::= - SEQUENCE (SIZE (lowerBound..upperBound)) OF - ProtocolIE-Container {{IEsSetParam}} -*/ - -template -struct ProtocolIE_ContainerList_elm : ProtocolIE_Container -{ - static constexpr const char* name() {return "ProtocolIE_ContainerList_elm";} - using parent_t = ProtocolIE_Container; - -}; -template -struct ProtocolIE_ContainerList : asn::sequenceof > -{ - static constexpr const char* name() {return "ProtocolIE-ContainerList";} - using parent_t = asn::sequenceof >; - using constraint_t = asn::constraints>; - -}; -/* -X2AP-PROTOCOL-IES-PAIR ::= CLASS { - &id ProtocolIE-ID UNIQUE, - &firstCriticality Criticality, - &FirstValue, - &secondCriticality Criticality, - &SecondValue, - &presence Presence -} -WITH SYNTAX { - ID &id - FIRST CRITICALITY &firstCriticality - FIRST TYPE &FirstValue - SECOND CRITICALITY &secondCriticality - SECOND TYPE &SecondValue - PRESENCE &presence -} -*/ - -struct X2AP_PROTOCOL_IES_PAIR -{ - struct id_t : ProtocolIE_ID - { - static constexpr const char* name() {return "id_t";} - using parent_t = ProtocolIE_ID; - - }; - struct firstCriticality_t : Criticality - { - static constexpr const char* name() {return "firstCriticality_t";} - using parent_t = Criticality; - - }; - struct secondCriticality_t : Criticality - { - static constexpr const char* name() {return "secondCriticality_t";} - using parent_t = Criticality; - - }; - struct presence_t : Presence - { - static constexpr const char* name() {return "presence_t";} - using parent_t = Presence; - - }; - -}; -/* -ProtocolIE-FieldPair {X2AP-PROTOCOL-IES-PAIR : IEsSetParam} ::= SEQUENCE { - id X2AP-PROTOCOL-IES-PAIR.&id ({IEsSetParam}), - firstCriticality X2AP-PROTOCOL-IES-PAIR.&firstCriticality ({IEsSetParam}{@id}), - firstValue X2AP-PROTOCOL-IES-PAIR.&FirstValue ({IEsSetParam}{@id}), - secondCriticality X2AP-PROTOCOL-IES-PAIR.&secondCriticality ({IEsSetParam}{@id}), - secondValue X2AP-PROTOCOL-IES-PAIR.&SecondValue ({IEsSetParam}{@id}) -} -*/ - -template -struct ProtocolIE_FieldPair : asn::sequence<5, 0, false, 0> -{ - static constexpr const char* name() {return "ProtocolIE-FieldPair";} - using parent_t = asn::sequence<5, 0, false, 0>; - struct id_t : IEsSetParam::id_t - { - static constexpr const char* name() {return "id_t";} - using parent_t = typename IEsSetParam::id_t; - template bool decode(V& v, ProtocolIE_FieldPair const& c) - { - return IEsSetParam::id_t::decode(v); - }; - template bool encode(V& v, ProtocolIE_FieldPair const& c) const - { - return IEsSetParam::id_t::encode(v); - }; - }; - id_t& ref_id() {return id;} - id_t const& ref_id() const {return id;} - struct firstCriticality_t : IEsSetParam::firstCriticality_t - { - static constexpr const char* name() {return "firstCriticality_t";} - using parent_t = typename IEsSetParam::firstCriticality_t; - template bool decode(V& v, ProtocolIE_FieldPair const& c) - { - return IEsSetParam::firstCriticality_t::decode(c.id.get_index(), v); - }; - template bool encode(V& v, ProtocolIE_FieldPair const& c) const - { - return IEsSetParam::firstCriticality_t::encode(c.id.get_index(), v); - }; - }; - firstCriticality_t& ref_firstCriticality() {return firstCriticality;} - firstCriticality_t const& ref_firstCriticality() const {return firstCriticality;} - struct firstValue_t : IEsSetParam::FirstValue_t - { - static constexpr const char* name() {return "firstValue_t";} - using parent_t = typename IEsSetParam::FirstValue_t; - template bool decode(V& v, ProtocolIE_FieldPair const& c) - { - return IEsSetParam::FirstValue_t::decode(c.id.get_index(), v); - }; - template bool encode(V& v, ProtocolIE_FieldPair const& c) const - { - return IEsSetParam::FirstValue_t::encode(c.id.get_index(), v); - }; - }; - firstValue_t& ref_firstValue() {return firstValue;} - firstValue_t const& ref_firstValue() const {return firstValue;} - struct secondCriticality_t : IEsSetParam::secondCriticality_t - { - static constexpr const char* name() {return "secondCriticality_t";} - using parent_t = typename IEsSetParam::secondCriticality_t; - template bool decode(V& v, ProtocolIE_FieldPair const& c) - { - return IEsSetParam::secondCriticality_t::decode(c.id.get_index(), v); - }; - template bool encode(V& v, ProtocolIE_FieldPair const& c) const - { - return IEsSetParam::secondCriticality_t::encode(c.id.get_index(), v); - }; - }; - secondCriticality_t& ref_secondCriticality() {return secondCriticality;} - secondCriticality_t const& ref_secondCriticality() const {return secondCriticality;} - struct secondValue_t : IEsSetParam::SecondValue_t - { - static constexpr const char* name() {return "secondValue_t";} - using parent_t = typename IEsSetParam::SecondValue_t; - template bool decode(V& v, ProtocolIE_FieldPair const& c) - { - return IEsSetParam::SecondValue_t::decode(c.id.get_index(), v); - }; - template bool encode(V& v, ProtocolIE_FieldPair const& c) const - { - return IEsSetParam::SecondValue_t::encode(c.id.get_index(), v); - }; - }; - secondValue_t& ref_secondValue() {return secondValue;} - secondValue_t const& ref_secondValue() const {return secondValue;} - template void decode(V& v) - { - v(id); - v(firstCriticality); - v(firstValue); - v(secondCriticality); - v(secondValue); - - }; - template void encode(V& v) const - { - v(id); - v(firstCriticality); - v(firstValue); - v(secondCriticality); - v(secondValue); - - }; - void clear() - { - id.clear(); - firstCriticality.clear(); - firstValue.clear(); - secondCriticality.clear(); - secondValue.clear(); - - }; - private: - id_t id; - firstCriticality_t firstCriticality; - firstValue_t firstValue; - secondCriticality_t secondCriticality; - secondValue_t secondValue; - -}; -/* -ProtocolIE-ContainerPair {X2AP-PROTOCOL-IES-PAIR : IEsSetParam} ::= - SEQUENCE (SIZE (0..maxProtocolIEs)) OF - ProtocolIE-FieldPair {{IEsSetParam}} -*/ - -template -struct ProtocolIE_ContainerPair_elm : ProtocolIE_FieldPair -{ - static constexpr const char* name() {return "ProtocolIE_ContainerPair_elm";} - using parent_t = ProtocolIE_FieldPair; - -}; -template -struct ProtocolIE_ContainerPair : asn::sequenceof > -{ - static constexpr const char* name() {return "ProtocolIE-ContainerPair";} - using parent_t = asn::sequenceof >; - using constraint_t = asn::constraints>; - -}; -/* -ProtocolIE-ContainerPairList {INTEGER : lowerBound, INTEGER : upperBound, X2AP-PROTOCOL-IES-PAIR : IEsSetParam} ::= - SEQUENCE (SIZE (lowerBound..upperBound)) OF - ProtocolIE-ContainerPair {{IEsSetParam}} -*/ - -template -struct ProtocolIE_ContainerPairList_elm : ProtocolIE_ContainerPair -{ - static constexpr const char* name() {return "ProtocolIE_ContainerPairList_elm";} - using parent_t = ProtocolIE_ContainerPair; - -}; -template -struct ProtocolIE_ContainerPairList : asn::sequenceof > -{ - static constexpr const char* name() {return "ProtocolIE-ContainerPairList";} - using parent_t = asn::sequenceof >; - using constraint_t = asn::constraints>; - -}; -/* -ProtocolIE-Single-Container {X2AP-PROTOCOL-IES : IEsSetParam} ::= - ProtocolIE-Field {{IEsSetParam}} -*/ - -template -struct ProtocolIE_Single_Container : ProtocolIE_Field -{ - static constexpr const char* name() {return "ProtocolIE-Single-Container";} - using parent_t = ProtocolIE_Field; - -}; diff --git a/e2sim/previous/e2apv1sim/e2sim/src/ASN1/generated/X2AP-IEs.hpp b/e2sim/previous/e2apv1sim/e2sim/src/ASN1/generated/X2AP-IEs.hpp deleted file mode 100644 index f056563..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/ASN1/generated/X2AP-IEs.hpp +++ /dev/null @@ -1,35962 +0,0 @@ -/***************************************************************************** -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -#pragma once - -#include "asn/asn.hpp" -static_assert(ASN_API_VERSION_MAJOR == 5, "re-generate the ASN parser's code using 'make regen-asn' (do not use -j option)"); - -#include "X2AP-Constants.hpp" -#include "X2AP-CommonDataTypes.hpp" -#include "X2AP-Containers.hpp" - -/* -DL-ABS-status::= INTEGER (0..100) -*/ - -struct DL_ABS_status : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "DL-ABS-status";} - using parent_t = asn::integer<>; - -}; - -/* -UsableABSInformationFDD-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct UsableABSInformationFDD_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -UsableABSInformationFDD ::= SEQUENCE { - usable-abs-pattern-info BIT STRING (SIZE(40)), - iE-Extensions ProtocolExtensionContainer { {UsableABSInformationFDD-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct UsableABSInformationFDD : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "UsableABSInformationFDD";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct usable_abs_pattern_info_t : asn::bstring<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "usable_abs_pattern_info_t";} - using parent_t = asn::bstring<>; - - }; - - usable_abs_pattern_info_t& ref_usable_abs_pattern_info() {return usable_abs_pattern_info;} - usable_abs_pattern_info_t const& ref_usable_abs_pattern_info() const {return usable_abs_pattern_info;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(usable_abs_pattern_info); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(usable_abs_pattern_info); - v(iE_Extensions); - - }; - void clear() - { - usable_abs_pattern_info.clear(); - iE_Extensions.clear(); - - }; - private: - usable_abs_pattern_info_t usable_abs_pattern_info; - iE_Extensions_t iE_Extensions; - -}; -/* -UsableABSInformationTDD-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct UsableABSInformationTDD_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -UsableABSInformationTDD ::= SEQUENCE { - usaable-abs-pattern-info BIT STRING (SIZE(1..70, ...)), - iE-Extensions ProtocolExtensionContainer { {UsableABSInformationTDD-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct UsableABSInformationTDD : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "UsableABSInformationTDD";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct usaable_abs_pattern_info_t : asn::bstring<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "usaable_abs_pattern_info_t";} - using parent_t = asn::bstring<>; - - }; - - usaable_abs_pattern_info_t& ref_usaable_abs_pattern_info() {return usaable_abs_pattern_info;} - usaable_abs_pattern_info_t const& ref_usaable_abs_pattern_info() const {return usaable_abs_pattern_info;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(usaable_abs_pattern_info); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(usaable_abs_pattern_info); - v(iE_Extensions); - - }; - void clear() - { - usaable_abs_pattern_info.clear(); - iE_Extensions.clear(); - - }; - private: - usaable_abs_pattern_info_t usaable_abs_pattern_info; - iE_Extensions_t iE_Extensions; - -}; -/* -UsableABSInformation ::= CHOICE { - fdd UsableABSInformationFDD, - tdd UsableABSInformationTDD, - ... -} -*/ - -struct UsableABSInformation : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "UsableABSInformation";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~UsableABSInformation() {clear();} - struct fdd_t : UsableABSInformationFDD - { - static constexpr const char* name() {return "fdd_t";} - using parent_t = UsableABSInformationFDD; - - }; - struct tdd_t : UsableABSInformationTDD - { - static constexpr const char* name() {return "tdd_t";} - using parent_t = UsableABSInformationTDD; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - fdd_t& select_fdd() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - fdd_t const* get_fdd() const { if(get_index() == 1) { return &var.as();} return nullptr; } - tdd_t& select_tdd() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - tdd_t const* get_tdd() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(fdd_t)]; - char dummy2[sizeof(tdd_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -ABS-Status-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct ABS_Status_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ABS-Status ::= SEQUENCE { - dL-ABS-status DL-ABS-status, - usableABSInformation UsableABSInformation, - iE-Extensions ProtocolExtensionContainer { {ABS-Status-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct ABS_Status : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "ABS-Status";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct dL_ABS_status_t : DL_ABS_status - { - static constexpr const char* name() {return "dL_ABS_status_t";} - using parent_t = DL_ABS_status; - - }; - dL_ABS_status_t& ref_dL_ABS_status() {return dL_ABS_status;} - dL_ABS_status_t const& ref_dL_ABS_status() const {return dL_ABS_status;} - struct usableABSInformation_t : UsableABSInformation - { - static constexpr const char* name() {return "usableABSInformation_t";} - using parent_t = UsableABSInformation; - - }; - usableABSInformation_t& ref_usableABSInformation() {return usableABSInformation;} - usableABSInformation_t const& ref_usableABSInformation() const {return usableABSInformation;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(dL_ABS_status); - v(usableABSInformation); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(dL_ABS_status); - v(usableABSInformation); - v(iE_Extensions); - - }; - void clear() - { - dL_ABS_status.clear(); - usableABSInformation.clear(); - iE_Extensions.clear(); - - }; - private: - dL_ABS_status_t dL_ABS_status; - usableABSInformation_t usableABSInformation; - iE_Extensions_t iE_Extensions; - -}; -/* -ABSInformationFDD-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct ABSInformationFDD_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ABSInformationFDD ::= SEQUENCE { - abs-pattern-info BIT STRING (SIZE(40)), - numberOfCellSpecificAntennaPorts ENUMERATED {one, two, four, ...}, - measurement-subset BIT STRING (SIZE(40)), - iE-Extensions ProtocolExtensionContainer { {ABSInformationFDD-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct ABSInformationFDD : asn::sequence<4, 0, true, 1> -{ - static constexpr const char* name() {return "ABSInformationFDD";} - using parent_t = asn::sequence<4, 0, true, 1>; - struct abs_pattern_info_t : asn::bstring<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "abs_pattern_info_t";} - using parent_t = asn::bstring<>; - - }; - - abs_pattern_info_t& ref_abs_pattern_info() {return abs_pattern_info;} - abs_pattern_info_t const& ref_abs_pattern_info() const {return abs_pattern_info;} - struct numberOfCellSpecificAntennaPorts_t : asn::enumerated<3, 0, true> - { - static constexpr const char* name() {return "numberOfCellSpecificAntennaPorts_t";} - using parent_t = asn::enumerated<3, 0, true>; - typedef enum { - one - ,two - ,four - } index_t; - - }; - - numberOfCellSpecificAntennaPorts_t& ref_numberOfCellSpecificAntennaPorts() {return numberOfCellSpecificAntennaPorts;} - numberOfCellSpecificAntennaPorts_t const& ref_numberOfCellSpecificAntennaPorts() const {return numberOfCellSpecificAntennaPorts;} - struct measurement_subset_t : asn::bstring<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "measurement_subset_t";} - using parent_t = asn::bstring<>; - - }; - - measurement_subset_t& ref_measurement_subset() {return measurement_subset;} - measurement_subset_t const& ref_measurement_subset() const {return measurement_subset;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(abs_pattern_info); - v(numberOfCellSpecificAntennaPorts); - v(measurement_subset); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(abs_pattern_info); - v(numberOfCellSpecificAntennaPorts); - v(measurement_subset); - v(iE_Extensions); - - }; - void clear() - { - abs_pattern_info.clear(); - numberOfCellSpecificAntennaPorts.clear(); - measurement_subset.clear(); - iE_Extensions.clear(); - - }; - private: - abs_pattern_info_t abs_pattern_info; - numberOfCellSpecificAntennaPorts_t numberOfCellSpecificAntennaPorts; - measurement_subset_t measurement_subset; - iE_Extensions_t iE_Extensions; - -}; -/* -ABSInformationTDD-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct ABSInformationTDD_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ABSInformationTDD ::= SEQUENCE { - abs-pattern-info BIT STRING (SIZE(1..70, ...)), - numberOfCellSpecificAntennaPorts ENUMERATED {one, two, four, ...}, - measurement-subset BIT STRING (SIZE(1..70, ...)), - iE-Extensions ProtocolExtensionContainer { {ABSInformationTDD-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct ABSInformationTDD : asn::sequence<4, 0, true, 1> -{ - static constexpr const char* name() {return "ABSInformationTDD";} - using parent_t = asn::sequence<4, 0, true, 1>; - struct abs_pattern_info_t : asn::bstring<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "abs_pattern_info_t";} - using parent_t = asn::bstring<>; - - }; - - abs_pattern_info_t& ref_abs_pattern_info() {return abs_pattern_info;} - abs_pattern_info_t const& ref_abs_pattern_info() const {return abs_pattern_info;} - struct numberOfCellSpecificAntennaPorts_t : asn::enumerated<3, 0, true> - { - static constexpr const char* name() {return "numberOfCellSpecificAntennaPorts_t";} - using parent_t = asn::enumerated<3, 0, true>; - typedef enum { - one - ,two - ,four - } index_t; - - }; - - numberOfCellSpecificAntennaPorts_t& ref_numberOfCellSpecificAntennaPorts() {return numberOfCellSpecificAntennaPorts;} - numberOfCellSpecificAntennaPorts_t const& ref_numberOfCellSpecificAntennaPorts() const {return numberOfCellSpecificAntennaPorts;} - struct measurement_subset_t : asn::bstring<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "measurement_subset_t";} - using parent_t = asn::bstring<>; - - }; - - measurement_subset_t& ref_measurement_subset() {return measurement_subset;} - measurement_subset_t const& ref_measurement_subset() const {return measurement_subset;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(abs_pattern_info); - v(numberOfCellSpecificAntennaPorts); - v(measurement_subset); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(abs_pattern_info); - v(numberOfCellSpecificAntennaPorts); - v(measurement_subset); - v(iE_Extensions); - - }; - void clear() - { - abs_pattern_info.clear(); - numberOfCellSpecificAntennaPorts.clear(); - measurement_subset.clear(); - iE_Extensions.clear(); - - }; - private: - abs_pattern_info_t abs_pattern_info; - numberOfCellSpecificAntennaPorts_t numberOfCellSpecificAntennaPorts; - measurement_subset_t measurement_subset; - iE_Extensions_t iE_Extensions; - -}; -/* -ABSInformation ::= CHOICE { - fdd ABSInformationFDD, - tdd ABSInformationTDD, - abs-inactive NULL, - ... -} -*/ - -struct ABSInformation : asn::choice<3, 0, true> -{ - static constexpr const char* name() {return "ABSInformation";} - using parent_t = asn::choice<3, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 4;} - void set_unknown() { set_index(4); } - ~ABSInformation() {clear();} - struct fdd_t : ABSInformationFDD - { - static constexpr const char* name() {return "fdd_t";} - using parent_t = ABSInformationFDD; - - }; - struct tdd_t : ABSInformationTDD - { - static constexpr const char* name() {return "tdd_t";} - using parent_t = ABSInformationTDD; - - }; - struct abs_inactive_t : asn::nulltype - { - static constexpr const char* name() {return "abs_inactive_t";} - using parent_t = asn::nulltype; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - case 3: set_index(3); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - case 3: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - - } - fdd_t& select_fdd() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - fdd_t const* get_fdd() const { if(get_index() == 1) { return &var.as();} return nullptr; } - tdd_t& select_tdd() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - tdd_t const* get_tdd() const { if(get_index() == 2) { return &var.as();} return nullptr; } - abs_inactive_t& select_abs_inactive() { if(get_index() != 3) { clear(); set_index(3); return var.build();} return var.as();} - abs_inactive_t const* get_abs_inactive() const { if(get_index() == 3) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(fdd_t)]; - char dummy2[sizeof(tdd_t)]; - char dummy3[sizeof(abs_inactive_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -Key-eNodeB-Star ::= BIT STRING (SIZE(256)) -*/ - -struct Key_eNodeB_Star : asn::bstring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "Key-eNodeB-Star";} - using parent_t = asn::bstring<>; - -}; - -/* -NextHopChainingCount ::= INTEGER (0..7) -*/ - -struct NextHopChainingCount : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "NextHopChainingCount";} - using parent_t = asn::integer<>; - -}; - -/* -AS-SecurityInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct AS_SecurityInformation_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -AS-SecurityInformation ::= SEQUENCE { - key-eNodeB-star Key-eNodeB-Star, - nextHopChainingCount NextHopChainingCount, - iE-Extensions ProtocolExtensionContainer { {AS-SecurityInformation-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct AS_SecurityInformation : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "AS-SecurityInformation";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct key_eNodeB_star_t : Key_eNodeB_Star - { - static constexpr const char* name() {return "key_eNodeB_star_t";} - using parent_t = Key_eNodeB_Star; - - }; - key_eNodeB_star_t& ref_key_eNodeB_star() {return key_eNodeB_star;} - key_eNodeB_star_t const& ref_key_eNodeB_star() const {return key_eNodeB_star;} - struct nextHopChainingCount_t : NextHopChainingCount - { - static constexpr const char* name() {return "nextHopChainingCount_t";} - using parent_t = NextHopChainingCount; - - }; - nextHopChainingCount_t& ref_nextHopChainingCount() {return nextHopChainingCount;} - nextHopChainingCount_t const& ref_nextHopChainingCount() const {return nextHopChainingCount;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(key_eNodeB_star); - v(nextHopChainingCount); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(key_eNodeB_star); - v(nextHopChainingCount); - v(iE_Extensions); - - }; - void clear() - { - key_eNodeB_star.clear(); - nextHopChainingCount.clear(); - iE_Extensions.clear(); - - }; - private: - key_eNodeB_star_t key_eNodeB_star; - nextHopChainingCount_t nextHopChainingCount; - iE_Extensions_t iE_Extensions; - -}; -/* -ActivationID ::= INTEGER (0..255) -*/ - -struct ActivationID : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "ActivationID";} - using parent_t = asn::integer<>; - -}; - -/* -AdditionalSpecialSubframePatterns ::= ENUMERATED { - ssp0, - ssp1, - ssp2, - ssp3, - ssp4, - ssp5, - ssp6, - ssp7, - ssp8, - ssp9, - ... -} -*/ - -struct AdditionalSpecialSubframePatterns : asn::enumerated<10, 0, true> -{ - static constexpr const char* name() {return "AdditionalSpecialSubframePatterns";} - using parent_t = asn::enumerated<10, 0, true>; - typedef enum { - ssp0 - ,ssp1 - ,ssp2 - ,ssp3 - ,ssp4 - ,ssp5 - ,ssp6 - ,ssp7 - ,ssp8 - ,ssp9 - } index_t; - -}; - -/* -CyclicPrefixDL ::= ENUMERATED { - normal, - extended, - ... -} -*/ - -struct CyclicPrefixDL : asn::enumerated<2, 0, true> -{ - static constexpr const char* name() {return "CyclicPrefixDL";} - using parent_t = asn::enumerated<2, 0, true>; - typedef enum { - normal - ,extended - } index_t; - -}; - -/* -CyclicPrefixUL ::= ENUMERATED { - normal, - extended, - ... -} -*/ - -struct CyclicPrefixUL : asn::enumerated<2, 0, true> -{ - static constexpr const char* name() {return "CyclicPrefixUL";} - using parent_t = asn::enumerated<2, 0, true>; - typedef enum { - normal - ,extended - } index_t; - -}; - -/* -AdditionalSpecialSubframe-Info-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct AdditionalSpecialSubframe_Info_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -AdditionalSpecialSubframe-Info ::= SEQUENCE { - additionalspecialSubframePatterns AdditionalSpecialSubframePatterns, - cyclicPrefixDL CyclicPrefixDL, - cyclicPrefixUL CyclicPrefixUL, - iE-Extensions ProtocolExtensionContainer { {AdditionalSpecialSubframe-Info-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct AdditionalSpecialSubframe_Info : asn::sequence<4, 0, true, 1> -{ - static constexpr const char* name() {return "AdditionalSpecialSubframe-Info";} - using parent_t = asn::sequence<4, 0, true, 1>; - struct additionalspecialSubframePatterns_t : AdditionalSpecialSubframePatterns - { - static constexpr const char* name() {return "additionalspecialSubframePatterns_t";} - using parent_t = AdditionalSpecialSubframePatterns; - - }; - additionalspecialSubframePatterns_t& ref_additionalspecialSubframePatterns() {return additionalspecialSubframePatterns;} - additionalspecialSubframePatterns_t const& ref_additionalspecialSubframePatterns() const {return additionalspecialSubframePatterns;} - struct cyclicPrefixDL_t : CyclicPrefixDL - { - static constexpr const char* name() {return "cyclicPrefixDL_t";} - using parent_t = CyclicPrefixDL; - - }; - cyclicPrefixDL_t& ref_cyclicPrefixDL() {return cyclicPrefixDL;} - cyclicPrefixDL_t const& ref_cyclicPrefixDL() const {return cyclicPrefixDL;} - struct cyclicPrefixUL_t : CyclicPrefixUL - { - static constexpr const char* name() {return "cyclicPrefixUL_t";} - using parent_t = CyclicPrefixUL; - - }; - cyclicPrefixUL_t& ref_cyclicPrefixUL() {return cyclicPrefixUL;} - cyclicPrefixUL_t const& ref_cyclicPrefixUL() const {return cyclicPrefixUL;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(additionalspecialSubframePatterns); - v(cyclicPrefixDL); - v(cyclicPrefixUL); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(additionalspecialSubframePatterns); - v(cyclicPrefixDL); - v(cyclicPrefixUL); - v(iE_Extensions); - - }; - void clear() - { - additionalspecialSubframePatterns.clear(); - cyclicPrefixDL.clear(); - cyclicPrefixUL.clear(); - iE_Extensions.clear(); - - }; - private: - additionalspecialSubframePatterns_t additionalspecialSubframePatterns; - cyclicPrefixDL_t cyclicPrefixDL; - cyclicPrefixUL_t cyclicPrefixUL; - iE_Extensions_t iE_Extensions; - -}; -/* -AdditionalSpecialSubframePatternsExtension ::= ENUMERATED { - ssp10, - ... -} -*/ - -struct AdditionalSpecialSubframePatternsExtension : asn::enumerated<1, 0, true> -{ - static constexpr const char* name() {return "AdditionalSpecialSubframePatternsExtension";} - using parent_t = asn::enumerated<1, 0, true>; - typedef enum { - ssp10 - } index_t; - -}; - -/* -AdditionalSpecialSubframeExtension-Info-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct AdditionalSpecialSubframeExtension_Info_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -AdditionalSpecialSubframeExtension-Info ::= SEQUENCE { - additionalspecialSubframePatternsExtension AdditionalSpecialSubframePatternsExtension, - cyclicPrefixDL CyclicPrefixDL, - cyclicPrefixUL CyclicPrefixUL, - iE-Extensions ProtocolExtensionContainer { {AdditionalSpecialSubframeExtension-Info-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct AdditionalSpecialSubframeExtension_Info : asn::sequence<4, 0, true, 1> -{ - static constexpr const char* name() {return "AdditionalSpecialSubframeExtension-Info";} - using parent_t = asn::sequence<4, 0, true, 1>; - struct additionalspecialSubframePatternsExtension_t : AdditionalSpecialSubframePatternsExtension - { - static constexpr const char* name() {return "additionalspecialSubframePatternsExtension_t";} - using parent_t = AdditionalSpecialSubframePatternsExtension; - - }; - additionalspecialSubframePatternsExtension_t& ref_additionalspecialSubframePatternsExtension() {return additionalspecialSubframePatternsExtension;} - additionalspecialSubframePatternsExtension_t const& ref_additionalspecialSubframePatternsExtension() const {return additionalspecialSubframePatternsExtension;} - struct cyclicPrefixDL_t : CyclicPrefixDL - { - static constexpr const char* name() {return "cyclicPrefixDL_t";} - using parent_t = CyclicPrefixDL; - - }; - cyclicPrefixDL_t& ref_cyclicPrefixDL() {return cyclicPrefixDL;} - cyclicPrefixDL_t const& ref_cyclicPrefixDL() const {return cyclicPrefixDL;} - struct cyclicPrefixUL_t : CyclicPrefixUL - { - static constexpr const char* name() {return "cyclicPrefixUL_t";} - using parent_t = CyclicPrefixUL; - - }; - cyclicPrefixUL_t& ref_cyclicPrefixUL() {return cyclicPrefixUL;} - cyclicPrefixUL_t const& ref_cyclicPrefixUL() const {return cyclicPrefixUL;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(additionalspecialSubframePatternsExtension); - v(cyclicPrefixDL); - v(cyclicPrefixUL); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(additionalspecialSubframePatternsExtension); - v(cyclicPrefixDL); - v(cyclicPrefixUL); - v(iE_Extensions); - - }; - void clear() - { - additionalspecialSubframePatternsExtension.clear(); - cyclicPrefixDL.clear(); - cyclicPrefixUL.clear(); - iE_Extensions.clear(); - - }; - private: - additionalspecialSubframePatternsExtension_t additionalspecialSubframePatternsExtension; - cyclicPrefixDL_t cyclicPrefixDL; - cyclicPrefixUL_t cyclicPrefixUL; - iE_Extensions_t iE_Extensions; - -}; -/* -AerialUEsubscriptionInformation ::= ENUMERATED { - allowed, - not-allowed, - ... -} -*/ - -struct AerialUEsubscriptionInformation : asn::enumerated<2, 0, true> -{ - static constexpr const char* name() {return "AerialUEsubscriptionInformation";} - using parent_t = asn::enumerated<2, 0, true>; - typedef enum { - allowed - ,not_allowed - } index_t; - -}; - -/* -PriorityLevel ::= INTEGER { spare (0), highest (1), lowest (14), no-priority (15) } (0..15) -*/ - -struct PriorityLevel : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "PriorityLevel";} - using parent_t = asn::integer<>; - enum {spare = 0, highest = 1, lowest = 14, no_priority = 15}; - -}; - -/* -Pre-emptionCapability ::= ENUMERATED { - shall-not-trigger-pre-emption, - may-trigger-pre-emption -} -*/ - -struct Pre_emptionCapability : asn::enumerated<2, 0, false> -{ - static constexpr const char* name() {return "Pre-emptionCapability";} - using parent_t = asn::enumerated<2, 0, false>; - typedef enum { - shall_not_trigger_pre_emption - ,may_trigger_pre_emption - } index_t; - -}; - -/* -Pre-emptionVulnerability ::= ENUMERATED { - not-pre-emptable, - pre-emptable -} -*/ - -struct Pre_emptionVulnerability : asn::enumerated<2, 0, false> -{ - static constexpr const char* name() {return "Pre-emptionVulnerability";} - using parent_t = asn::enumerated<2, 0, false>; - typedef enum { - not_pre_emptable - ,pre_emptable - } index_t; - -}; - -/* -AllocationAndRetentionPriority-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct AllocationAndRetentionPriority_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -AllocationAndRetentionPriority ::= SEQUENCE { - priorityLevel PriorityLevel, - pre-emptionCapability Pre-emptionCapability, - pre-emptionVulnerability Pre-emptionVulnerability, - iE-Extensions ProtocolExtensionContainer { {AllocationAndRetentionPriority-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct AllocationAndRetentionPriority : asn::sequence<4, 0, true, 1> -{ - static constexpr const char* name() {return "AllocationAndRetentionPriority";} - using parent_t = asn::sequence<4, 0, true, 1>; - struct priorityLevel_t : PriorityLevel - { - static constexpr const char* name() {return "priorityLevel_t";} - using parent_t = PriorityLevel; - - }; - priorityLevel_t& ref_priorityLevel() {return priorityLevel;} - priorityLevel_t const& ref_priorityLevel() const {return priorityLevel;} - struct pre_emptionCapability_t : Pre_emptionCapability - { - static constexpr const char* name() {return "pre_emptionCapability_t";} - using parent_t = Pre_emptionCapability; - - }; - pre_emptionCapability_t& ref_pre_emptionCapability() {return pre_emptionCapability;} - pre_emptionCapability_t const& ref_pre_emptionCapability() const {return pre_emptionCapability;} - struct pre_emptionVulnerability_t : Pre_emptionVulnerability - { - static constexpr const char* name() {return "pre_emptionVulnerability_t";} - using parent_t = Pre_emptionVulnerability; - - }; - pre_emptionVulnerability_t& ref_pre_emptionVulnerability() {return pre_emptionVulnerability;} - pre_emptionVulnerability_t const& ref_pre_emptionVulnerability() const {return pre_emptionVulnerability;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(priorityLevel); - v(pre_emptionCapability); - v(pre_emptionVulnerability); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(priorityLevel); - v(pre_emptionCapability); - v(pre_emptionVulnerability); - v(iE_Extensions); - - }; - void clear() - { - priorityLevel.clear(); - pre_emptionCapability.clear(); - pre_emptionVulnerability.clear(); - iE_Extensions.clear(); - - }; - private: - priorityLevel_t priorityLevel; - pre_emptionCapability_t pre_emptionCapability; - pre_emptionVulnerability_t pre_emptionVulnerability; - iE_Extensions_t iE_Extensions; - -}; -/* -PLMN-Identity ::= OCTET STRING (SIZE(3)) -*/ - -struct PLMN_Identity : asn::ostring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "PLMN-Identity";} - using parent_t = asn::ostring<>; - -}; - -/* -EUTRANCellIdentifier ::= BIT STRING (SIZE (28)) -*/ - -struct EUTRANCellIdentifier : asn::bstring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "EUTRANCellIdentifier";} - using parent_t = asn::bstring<>; - -}; - -/* -ECGI-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct ECGI_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ECGI ::= SEQUENCE { - pLMN-Identity PLMN-Identity, - eUTRANcellIdentifier EUTRANCellIdentifier, - iE-Extensions ProtocolExtensionContainer { {ECGI-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct ECGI : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "ECGI";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct pLMN_Identity_t : PLMN_Identity - { - static constexpr const char* name() {return "pLMN_Identity_t";} - using parent_t = PLMN_Identity; - - }; - pLMN_Identity_t& ref_pLMN_Identity() {return pLMN_Identity;} - pLMN_Identity_t const& ref_pLMN_Identity() const {return pLMN_Identity;} - struct eUTRANcellIdentifier_t : EUTRANCellIdentifier - { - static constexpr const char* name() {return "eUTRANcellIdentifier_t";} - using parent_t = EUTRANCellIdentifier; - - }; - eUTRANcellIdentifier_t& ref_eUTRANcellIdentifier() {return eUTRANcellIdentifier;} - eUTRANcellIdentifier_t const& ref_eUTRANcellIdentifier() const {return eUTRANcellIdentifier;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(pLMN_Identity); - v(eUTRANcellIdentifier); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(pLMN_Identity); - v(eUTRANcellIdentifier); - v(iE_Extensions); - - }; - void clear() - { - pLMN_Identity.clear(); - eUTRANcellIdentifier.clear(); - iE_Extensions.clear(); - - }; - private: - pLMN_Identity_t pLMN_Identity; - eUTRANcellIdentifier_t eUTRANcellIdentifier; - iE_Extensions_t iE_Extensions; - -}; -/* -CellIdListforMDT ::= SEQUENCE (SIZE(1..maxnoofCellIDforMDT)) OF ECGI -*/ - -struct CellIdListforMDT_elm : ECGI -{ - static constexpr const char* name() {return "CellIdListforMDT_elm";} - using parent_t = ECGI; - -}; -struct CellIdListforMDT : asn::sequenceof -{ - static constexpr const char* name() {return "CellIdListforMDT";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -CellBasedMDT-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct CellBasedMDT_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -CellBasedMDT::= SEQUENCE { - cellIdListforMDT CellIdListforMDT, - iE-Extensions ProtocolExtensionContainer { {CellBasedMDT-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct CellBasedMDT : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "CellBasedMDT";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct cellIdListforMDT_t : CellIdListforMDT - { - static constexpr const char* name() {return "cellIdListforMDT_t";} - using parent_t = CellIdListforMDT; - - }; - cellIdListforMDT_t& ref_cellIdListforMDT() {return cellIdListforMDT;} - cellIdListforMDT_t const& ref_cellIdListforMDT() const {return cellIdListforMDT;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(cellIdListforMDT); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(cellIdListforMDT); - v(iE_Extensions); - - }; - void clear() - { - cellIdListforMDT.clear(); - iE_Extensions.clear(); - - }; - private: - cellIdListforMDT_t cellIdListforMDT; - iE_Extensions_t iE_Extensions; - -}; -/* -TAC ::= OCTET STRING (SIZE (2)) -*/ - -struct TAC : asn::ostring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "TAC";} - using parent_t = asn::ostring<>; - -}; - -/* -TAListforMDT ::= SEQUENCE (SIZE(1..maxnoofTAforMDT)) OF TAC -*/ - -struct TAListforMDT_elm : TAC -{ - static constexpr const char* name() {return "TAListforMDT_elm";} - using parent_t = TAC; - -}; -struct TAListforMDT : asn::sequenceof -{ - static constexpr const char* name() {return "TAListforMDT";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -TABasedMDT-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct TABasedMDT_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -TABasedMDT::= SEQUENCE { - tAListforMDT TAListforMDT, - iE-Extensions ProtocolExtensionContainer { {TABasedMDT-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct TABasedMDT : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "TABasedMDT";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct tAListforMDT_t : TAListforMDT - { - static constexpr const char* name() {return "tAListforMDT_t";} - using parent_t = TAListforMDT; - - }; - tAListforMDT_t& ref_tAListforMDT() {return tAListforMDT;} - tAListforMDT_t const& ref_tAListforMDT() const {return tAListforMDT;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(tAListforMDT); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(tAListforMDT); - v(iE_Extensions); - - }; - void clear() - { - tAListforMDT.clear(); - iE_Extensions.clear(); - - }; - private: - tAListforMDT_t tAListforMDT; - iE_Extensions_t iE_Extensions; - -}; -/* -TAI-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct TAI_Item_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -TAI-Item ::= SEQUENCE { - tAC TAC, - pLMN-Identity PLMN-Identity, - iE-Extensions ProtocolExtensionContainer { {TAI-Item-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct TAI_Item : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "TAI-Item";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct tAC_t : TAC - { - static constexpr const char* name() {return "tAC_t";} - using parent_t = TAC; - - }; - tAC_t& ref_tAC() {return tAC;} - tAC_t const& ref_tAC() const {return tAC;} - struct pLMN_Identity_t : PLMN_Identity - { - static constexpr const char* name() {return "pLMN_Identity_t";} - using parent_t = PLMN_Identity; - - }; - pLMN_Identity_t& ref_pLMN_Identity() {return pLMN_Identity;} - pLMN_Identity_t const& ref_pLMN_Identity() const {return pLMN_Identity;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(tAC); - v(pLMN_Identity); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(tAC); - v(pLMN_Identity); - v(iE_Extensions); - - }; - void clear() - { - tAC.clear(); - pLMN_Identity.clear(); - iE_Extensions.clear(); - - }; - private: - tAC_t tAC; - pLMN_Identity_t pLMN_Identity; - iE_Extensions_t iE_Extensions; - -}; -/* -TAIListforMDT ::= SEQUENCE (SIZE(1..maxnoofTAforMDT)) OF TAI-Item -*/ - -struct TAIListforMDT_elm : TAI_Item -{ - static constexpr const char* name() {return "TAIListforMDT_elm";} - using parent_t = TAI_Item; - -}; -struct TAIListforMDT : asn::sequenceof -{ - static constexpr const char* name() {return "TAIListforMDT";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -TAIBasedMDT-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct TAIBasedMDT_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -TAIBasedMDT ::= SEQUENCE { - tAIListforMDT TAIListforMDT, - iE-Extensions ProtocolExtensionContainer { {TAIBasedMDT-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct TAIBasedMDT : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "TAIBasedMDT";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct tAIListforMDT_t : TAIListforMDT - { - static constexpr const char* name() {return "tAIListforMDT_t";} - using parent_t = TAIListforMDT; - - }; - tAIListforMDT_t& ref_tAIListforMDT() {return tAIListforMDT;} - tAIListforMDT_t const& ref_tAIListforMDT() const {return tAIListforMDT;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(tAIListforMDT); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(tAIListforMDT); - v(iE_Extensions); - - }; - void clear() - { - tAIListforMDT.clear(); - iE_Extensions.clear(); - - }; - private: - tAIListforMDT_t tAIListforMDT; - iE_Extensions_t iE_Extensions; - -}; -/* -AreaScopeOfMDT ::= CHOICE { - cellBased CellBasedMDT, - tABased TABasedMDT, - pLMNWide NULL, - ..., - tAIBased TAIBasedMDT -} -*/ - -struct AreaScopeOfMDT : asn::choice<4, 1, true> -{ - static constexpr const char* name() {return "AreaScopeOfMDT";} - using parent_t = asn::choice<4, 1, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 5;} - void set_unknown() { set_index(5); } - ~AreaScopeOfMDT() {clear();} - struct cellBased_t : CellBasedMDT - { - static constexpr const char* name() {return "cellBased_t";} - using parent_t = CellBasedMDT; - - }; - struct tABased_t : TABasedMDT - { - static constexpr const char* name() {return "tABased_t";} - using parent_t = TABasedMDT; - - }; - struct pLMNWide_t : asn::nulltype - { - static constexpr const char* name() {return "pLMNWide_t";} - using parent_t = asn::nulltype; - - }; - struct tAIBased_t : TAIBasedMDT - { - static constexpr const char* name() {return "tAIBased_t";} - using parent_t = TAIBasedMDT; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - case 3: set_index(3); return v(var.build()); - case 4: set_index(4); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - case 3: return v(var.as()); - case 4: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - - } - cellBased_t& select_cellBased() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - cellBased_t const* get_cellBased() const { if(get_index() == 1) { return &var.as();} return nullptr; } - tABased_t& select_tABased() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - tABased_t const* get_tABased() const { if(get_index() == 2) { return &var.as();} return nullptr; } - pLMNWide_t& select_pLMNWide() { if(get_index() != 3) { clear(); set_index(3); return var.build();} return var.as();} - pLMNWide_t const* get_pLMNWide() const { if(get_index() == 3) { return &var.as();} return nullptr; } - tAIBased_t& select_tAIBased() { if(get_index() != 4) { clear(); set_index(4); return var.build();} return var.as();} - tAIBased_t const* get_tAIBased() const { if(get_index() == 4) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(cellBased_t)]; - char dummy2[sizeof(tABased_t)]; - char dummy3[sizeof(pLMNWide_t)]; - char dummy4[sizeof(tAIBased_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -CellIdListforQMC ::= SEQUENCE (SIZE(1..maxnoofCellIDforQMC)) OF ECGI -*/ - -struct CellIdListforQMC_elm : ECGI -{ - static constexpr const char* name() {return "CellIdListforQMC_elm";} - using parent_t = ECGI; - -}; -struct CellIdListforQMC : asn::sequenceof -{ - static constexpr const char* name() {return "CellIdListforQMC";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -CellBasedQMC-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct CellBasedQMC_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -CellBasedQMC::= SEQUENCE { - cellIdListforQMC CellIdListforQMC, - iE-Extensions ProtocolExtensionContainer { {CellBasedQMC-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct CellBasedQMC : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "CellBasedQMC";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct cellIdListforQMC_t : CellIdListforQMC - { - static constexpr const char* name() {return "cellIdListforQMC_t";} - using parent_t = CellIdListforQMC; - - }; - cellIdListforQMC_t& ref_cellIdListforQMC() {return cellIdListforQMC;} - cellIdListforQMC_t const& ref_cellIdListforQMC() const {return cellIdListforQMC;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(cellIdListforQMC); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(cellIdListforQMC); - v(iE_Extensions); - - }; - void clear() - { - cellIdListforQMC.clear(); - iE_Extensions.clear(); - - }; - private: - cellIdListforQMC_t cellIdListforQMC; - iE_Extensions_t iE_Extensions; - -}; -/* -TAListforQMC ::= SEQUENCE (SIZE(1..maxnoofTAforQMC)) OF TAC -*/ - -struct TAListforQMC_elm : TAC -{ - static constexpr const char* name() {return "TAListforQMC_elm";} - using parent_t = TAC; - -}; -struct TAListforQMC : asn::sequenceof -{ - static constexpr const char* name() {return "TAListforQMC";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -TABasedQMC-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct TABasedQMC_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -TABasedQMC ::= SEQUENCE { - tAListforQMC TAListforQMC, - iE-Extensions ProtocolExtensionContainer { {TABasedQMC-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct TABasedQMC : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "TABasedQMC";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct tAListforQMC_t : TAListforQMC - { - static constexpr const char* name() {return "tAListforQMC_t";} - using parent_t = TAListforQMC; - - }; - tAListforQMC_t& ref_tAListforQMC() {return tAListforQMC;} - tAListforQMC_t const& ref_tAListforQMC() const {return tAListforQMC;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(tAListforQMC); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(tAListforQMC); - v(iE_Extensions); - - }; - void clear() - { - tAListforQMC.clear(); - iE_Extensions.clear(); - - }; - private: - tAListforQMC_t tAListforQMC; - iE_Extensions_t iE_Extensions; - -}; -/* -TAIListforQMC ::= SEQUENCE (SIZE(1..maxnoofTAforQMC)) OF TAI-Item -*/ - -struct TAIListforQMC_elm : TAI_Item -{ - static constexpr const char* name() {return "TAIListforQMC_elm";} - using parent_t = TAI_Item; - -}; -struct TAIListforQMC : asn::sequenceof -{ - static constexpr const char* name() {return "TAIListforQMC";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -TAIBasedQMC-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct TAIBasedQMC_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -TAIBasedQMC ::= SEQUENCE { - tAIListforQMC TAIListforQMC, - iE-Extensions ProtocolExtensionContainer { {TAIBasedQMC-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct TAIBasedQMC : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "TAIBasedQMC";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct tAIListforQMC_t : TAIListforQMC - { - static constexpr const char* name() {return "tAIListforQMC_t";} - using parent_t = TAIListforQMC; - - }; - tAIListforQMC_t& ref_tAIListforQMC() {return tAIListforQMC;} - tAIListforQMC_t const& ref_tAIListforQMC() const {return tAIListforQMC;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(tAIListforQMC); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(tAIListforQMC); - v(iE_Extensions); - - }; - void clear() - { - tAIListforQMC.clear(); - iE_Extensions.clear(); - - }; - private: - tAIListforQMC_t tAIListforQMC; - iE_Extensions_t iE_Extensions; - -}; -/* -PLMNListforQMC ::= SEQUENCE (SIZE(1..maxnoofPLMNforQMC)) OF PLMN-Identity -*/ - -struct PLMNListforQMC_elm : PLMN_Identity -{ - static constexpr const char* name() {return "PLMNListforQMC_elm";} - using parent_t = PLMN_Identity; - -}; -struct PLMNListforQMC : asn::sequenceof -{ - static constexpr const char* name() {return "PLMNListforQMC";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -PLMNAreaBasedQMC-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct PLMNAreaBasedQMC_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -PLMNAreaBasedQMC ::= SEQUENCE { - plmnListforQMC PLMNListforQMC, - iE-Extensions ProtocolExtensionContainer { {PLMNAreaBasedQMC-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct PLMNAreaBasedQMC : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "PLMNAreaBasedQMC";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct plmnListforQMC_t : PLMNListforQMC - { - static constexpr const char* name() {return "plmnListforQMC_t";} - using parent_t = PLMNListforQMC; - - }; - plmnListforQMC_t& ref_plmnListforQMC() {return plmnListforQMC;} - plmnListforQMC_t const& ref_plmnListforQMC() const {return plmnListforQMC;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(plmnListforQMC); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(plmnListforQMC); - v(iE_Extensions); - - }; - void clear() - { - plmnListforQMC.clear(); - iE_Extensions.clear(); - - }; - private: - plmnListforQMC_t plmnListforQMC; - iE_Extensions_t iE_Extensions; - -}; -/* -AreaScopeOfQMC ::= CHOICE { - cellBased CellBasedQMC, - tABased TABasedQMC, - tAIBased TAIBasedQMC, - pLMNAreaBased PLMNAreaBasedQMC, - ... -} -*/ - -struct AreaScopeOfQMC : asn::choice<4, 0, true> -{ - static constexpr const char* name() {return "AreaScopeOfQMC";} - using parent_t = asn::choice<4, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 5;} - void set_unknown() { set_index(5); } - ~AreaScopeOfQMC() {clear();} - struct cellBased_t : CellBasedQMC - { - static constexpr const char* name() {return "cellBased_t";} - using parent_t = CellBasedQMC; - - }; - struct tABased_t : TABasedQMC - { - static constexpr const char* name() {return "tABased_t";} - using parent_t = TABasedQMC; - - }; - struct tAIBased_t : TAIBasedQMC - { - static constexpr const char* name() {return "tAIBased_t";} - using parent_t = TAIBasedQMC; - - }; - struct pLMNAreaBased_t : PLMNAreaBasedQMC - { - static constexpr const char* name() {return "pLMNAreaBased_t";} - using parent_t = PLMNAreaBasedQMC; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - case 3: set_index(3); return v(var.build()); - case 4: set_index(4); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - case 3: return v(var.as()); - case 4: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - - } - cellBased_t& select_cellBased() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - cellBased_t const* get_cellBased() const { if(get_index() == 1) { return &var.as();} return nullptr; } - tABased_t& select_tABased() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - tABased_t const* get_tABased() const { if(get_index() == 2) { return &var.as();} return nullptr; } - tAIBased_t& select_tAIBased() { if(get_index() != 3) { clear(); set_index(3); return var.build();} return var.as();} - tAIBased_t const* get_tAIBased() const { if(get_index() == 3) { return &var.as();} return nullptr; } - pLMNAreaBased_t& select_pLMNAreaBased() { if(get_index() != 4) { clear(); set_index(4); return var.build();} return var.as();} - pLMNAreaBased_t const* get_pLMNAreaBased() const { if(get_index() == 4) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(cellBased_t)]; - char dummy2[sizeof(tABased_t)]; - char dummy3[sizeof(tAIBased_t)]; - char dummy4[sizeof(pLMNAreaBased_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -FreqBandIndicator ::= INTEGER (1..256, ...) -*/ - -struct FreqBandIndicator : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "FreqBandIndicator";} - using parent_t = asn::integer<>; - -}; - -/* -BandInfo-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct BandInfo_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -BandInfo ::= SEQUENCE { - freqBandIndicator FreqBandIndicator, - iE-Extensions ProtocolExtensionContainer { {BandInfo-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct BandInfo : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "BandInfo";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct freqBandIndicator_t : FreqBandIndicator - { - static constexpr const char* name() {return "freqBandIndicator_t";} - using parent_t = FreqBandIndicator; - - }; - freqBandIndicator_t& ref_freqBandIndicator() {return freqBandIndicator;} - freqBandIndicator_t const& ref_freqBandIndicator() const {return freqBandIndicator;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(freqBandIndicator); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(freqBandIndicator); - v(iE_Extensions); - - }; - void clear() - { - freqBandIndicator.clear(); - iE_Extensions.clear(); - - }; - private: - freqBandIndicator_t freqBandIndicator; - iE_Extensions_t iE_Extensions; - -}; -/* -BandwidthReducedSI::= ENUMERATED { - scheduled, - ... -} -*/ - -struct BandwidthReducedSI : asn::enumerated<1, 0, true> -{ - static constexpr const char* name() {return "BandwidthReducedSI";} - using parent_t = asn::enumerated<1, 0, true>; - typedef enum { - scheduled - } index_t; - -}; - -/* -BearerType ::= ENUMERATED { - non-IP, - ... -} -*/ - -struct BearerType : asn::enumerated<1, 0, true> -{ - static constexpr const char* name() {return "BearerType";} - using parent_t = asn::enumerated<1, 0, true>; - typedef enum { - non_IP - } index_t; - -}; - -/* -BenefitMetric ::= INTEGER (-101..100, ...) -*/ - -struct BenefitMetric : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "BenefitMetric";} - using parent_t = asn::integer<>; - -}; - -/* -BitRate ::= INTEGER (0..10000000000) -*/ - -struct BitRate : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "BitRate";} - using parent_t = asn::integer<>; - -}; - -/* -BluetoothMeasConfig::= ENUMERATED {setup,...} -*/ - -struct BluetoothMeasConfig : asn::enumerated<1, 0, true> -{ - static constexpr const char* name() {return "BluetoothMeasConfig";} - using parent_t = asn::enumerated<1, 0, true>; - typedef enum { - setup - } index_t; - -}; - -/* -BluetoothName ::= OCTET STRING (SIZE (1..248)) -*/ - -struct BluetoothName : asn::ostring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "BluetoothName";} - using parent_t = asn::ostring<>; - -}; - -/* -BluetoothMeasConfigNameList ::= SEQUENCE (SIZE(1..maxnoofBluetoothName)) OF BluetoothName -*/ - -struct BluetoothMeasConfigNameList_elm : BluetoothName -{ - static constexpr const char* name() {return "BluetoothMeasConfigNameList_elm";} - using parent_t = BluetoothName; - -}; -struct BluetoothMeasConfigNameList : asn::sequenceof -{ - static constexpr const char* name() {return "BluetoothMeasConfigNameList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -BluetoothMeasurementConfiguration-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct BluetoothMeasurementConfiguration_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -BluetoothMeasurementConfiguration ::= SEQUENCE { - bluetoothMeasConfig BluetoothMeasConfig, - bluetoothMeasConfigNameList BluetoothMeasConfigNameList OPTIONAL, - bt-rssi ENUMERATED {true, ...} OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {BluetoothMeasurementConfiguration-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct BluetoothMeasurementConfiguration : asn::sequence<4, 0, true, 3> -{ - static constexpr const char* name() {return "BluetoothMeasurementConfiguration";} - using parent_t = asn::sequence<4, 0, true, 3>; - struct bluetoothMeasConfig_t : BluetoothMeasConfig - { - static constexpr const char* name() {return "bluetoothMeasConfig_t";} - using parent_t = BluetoothMeasConfig; - - }; - bluetoothMeasConfig_t& ref_bluetoothMeasConfig() {return bluetoothMeasConfig;} - bluetoothMeasConfig_t const& ref_bluetoothMeasConfig() const {return bluetoothMeasConfig;} - struct bluetoothMeasConfigNameList_t : BluetoothMeasConfigNameList - { - static constexpr const char* name() {return "bluetoothMeasConfigNameList_t";} - using parent_t = BluetoothMeasConfigNameList; - static constexpr bool optional = true; - - }; - bluetoothMeasConfigNameList_t& set_bluetoothMeasConfigNameList() { bluetoothMeasConfigNameList.setpresent(true); return bluetoothMeasConfigNameList;} - bluetoothMeasConfigNameList_t const* get_bluetoothMeasConfigNameList() const {return bluetoothMeasConfigNameList.is_valid() ? &bluetoothMeasConfigNameList : nullptr;} - struct bt_rssi_t : asn::enumerated<1, 0, true> - { - static constexpr const char* name() {return "bt_rssi_t";} - using parent_t = asn::enumerated<1, 0, true>; - static constexpr bool optional = true; - typedef enum { - True - } index_t; - - }; - - bt_rssi_t& set_bt_rssi() { bt_rssi.setpresent(true); return bt_rssi;} - bt_rssi_t const* get_bt_rssi() const {return bt_rssi.is_valid() ? &bt_rssi : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(bluetoothMeasConfig); - v(bluetoothMeasConfigNameList); - v(bt_rssi); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(bluetoothMeasConfig); - v(bluetoothMeasConfigNameList); - v(bt_rssi); - v(iE_Extensions); - - }; - void clear() - { - bluetoothMeasConfig.clear(); - bluetoothMeasConfigNameList.clear(); - bt_rssi.clear(); - iE_Extensions.clear(); - - }; - private: - bluetoothMeasConfig_t bluetoothMeasConfig; - bluetoothMeasConfigNameList_t bluetoothMeasConfigNameList; - bt_rssi_t bt_rssi; - iE_Extensions_t iE_Extensions; - -}; -/* -BroadcastPLMNs-Item ::= SEQUENCE (SIZE(1..maxnoofBPLMNs)) OF PLMN-Identity -*/ - -struct BroadcastPLMNs_Item_elm : PLMN_Identity -{ - static constexpr const char* name() {return "BroadcastPLMNs_Item_elm";} - using parent_t = PLMN_Identity; - -}; -struct BroadcastPLMNs_Item : asn::sequenceof -{ - static constexpr const char* name() {return "BroadcastPLMNs-Item";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -CNTypeRestrictionsItem-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct CNTypeRestrictionsItem_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -CNTypeRestrictionsItem ::= SEQUENCE { - plmn-Id PLMN-Identity, - cn-type ENUMERATED {fiveGC-forbidden, ...}, - iE-Extensions ProtocolExtensionContainer { {CNTypeRestrictionsItem-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct CNTypeRestrictionsItem : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "CNTypeRestrictionsItem";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct plmn_Id_t : PLMN_Identity - { - static constexpr const char* name() {return "plmn_Id_t";} - using parent_t = PLMN_Identity; - - }; - plmn_Id_t& ref_plmn_Id() {return plmn_Id;} - plmn_Id_t const& ref_plmn_Id() const {return plmn_Id;} - struct cn_type_t : asn::enumerated<1, 0, true> - { - static constexpr const char* name() {return "cn_type_t";} - using parent_t = asn::enumerated<1, 0, true>; - typedef enum { - fiveGC_forbidden - } index_t; - - }; - - cn_type_t& ref_cn_type() {return cn_type;} - cn_type_t const& ref_cn_type() const {return cn_type;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(plmn_Id); - v(cn_type); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(plmn_Id); - v(cn_type); - v(iE_Extensions); - - }; - void clear() - { - plmn_Id.clear(); - cn_type.clear(); - iE_Extensions.clear(); - - }; - private: - plmn_Id_t plmn_Id; - cn_type_t cn_type; - iE_Extensions_t iE_Extensions; - -}; -/* -CNTypeRestrictions ::= SEQUENCE (SIZE(1.. maxnoofEPLMNsPlusOne)) OF CNTypeRestrictionsItem -*/ - -struct CNTypeRestrictions_elm : CNTypeRestrictionsItem -{ - static constexpr const char* name() {return "CNTypeRestrictions_elm";} - using parent_t = CNTypeRestrictionsItem; - -}; -struct CNTypeRestrictions : asn::sequenceof -{ - static constexpr const char* name() {return "CNTypeRestrictions";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -PDCP-SNExtended ::= INTEGER (0..32767) -*/ - -struct PDCP_SNExtended : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "PDCP-SNExtended";} - using parent_t = asn::integer<>; - -}; - -/* -HFNModified ::= INTEGER (0..131071) -*/ - -struct HFNModified : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "HFNModified";} - using parent_t = asn::integer<>; - -}; - -/* -COUNTValueExtended-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct COUNTValueExtended_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -COUNTValueExtended ::= SEQUENCE { - pDCP-SNExtended PDCP-SNExtended, - hFNModified HFNModified, - iE-Extensions ProtocolExtensionContainer { {COUNTValueExtended-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct COUNTValueExtended : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "COUNTValueExtended";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct pDCP_SNExtended_t : PDCP_SNExtended - { - static constexpr const char* name() {return "pDCP_SNExtended_t";} - using parent_t = PDCP_SNExtended; - - }; - pDCP_SNExtended_t& ref_pDCP_SNExtended() {return pDCP_SNExtended;} - pDCP_SNExtended_t const& ref_pDCP_SNExtended() const {return pDCP_SNExtended;} - struct hFNModified_t : HFNModified - { - static constexpr const char* name() {return "hFNModified_t";} - using parent_t = HFNModified; - - }; - hFNModified_t& ref_hFNModified() {return hFNModified;} - hFNModified_t const& ref_hFNModified() const {return hFNModified;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(pDCP_SNExtended); - v(hFNModified); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(pDCP_SNExtended); - v(hFNModified); - v(iE_Extensions); - - }; - void clear() - { - pDCP_SNExtended.clear(); - hFNModified.clear(); - iE_Extensions.clear(); - - }; - private: - pDCP_SNExtended_t pDCP_SNExtended; - hFNModified_t hFNModified; - iE_Extensions_t iE_Extensions; - -}; -/* -PDCP-SN ::= INTEGER (0..4095) -*/ - -struct PDCP_SN : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "PDCP-SN";} - using parent_t = asn::integer<>; - -}; - -/* -HFN ::= INTEGER (0..1048575) -*/ - -struct HFN : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "HFN";} - using parent_t = asn::integer<>; - -}; - -/* -COUNTvalue-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct COUNTvalue_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -COUNTvalue ::= SEQUENCE { - pDCP-SN PDCP-SN, - hFN HFN, - iE-Extensions ProtocolExtensionContainer { {COUNTvalue-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct COUNTvalue : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "COUNTvalue";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct pDCP_SN_t : PDCP_SN - { - static constexpr const char* name() {return "pDCP_SN_t";} - using parent_t = PDCP_SN; - - }; - pDCP_SN_t& ref_pDCP_SN() {return pDCP_SN;} - pDCP_SN_t const& ref_pDCP_SN() const {return pDCP_SN;} - struct hFN_t : HFN - { - static constexpr const char* name() {return "hFN_t";} - using parent_t = HFN; - - }; - hFN_t& ref_hFN() {return hFN;} - hFN_t const& ref_hFN() const {return hFN;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(pDCP_SN); - v(hFN); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(pDCP_SN); - v(hFN); - v(iE_Extensions); - - }; - void clear() - { - pDCP_SN.clear(); - hFN.clear(); - iE_Extensions.clear(); - - }; - private: - pDCP_SN_t pDCP_SN; - hFN_t hFN; - iE_Extensions_t iE_Extensions; - -}; -/* -PDCP-SNlength18 ::= INTEGER (0..262143) -*/ - -struct PDCP_SNlength18 : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "PDCP-SNlength18";} - using parent_t = asn::integer<>; - -}; - -/* -HFNforPDCP-SNlength18 ::= INTEGER (0..16383) -*/ - -struct HFNforPDCP_SNlength18 : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "HFNforPDCP-SNlength18";} - using parent_t = asn::integer<>; - -}; - -/* -COUNTvaluePDCP-SNlength18-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct COUNTvaluePDCP_SNlength18_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -COUNTvaluePDCP-SNlength18 ::= SEQUENCE { - pDCP-SNlength18 PDCP-SNlength18, - hFNforPDCP-SNlength18 HFNforPDCP-SNlength18, - iE-Extensions ProtocolExtensionContainer { {COUNTvaluePDCP-SNlength18-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct COUNTvaluePDCP_SNlength18 : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "COUNTvaluePDCP-SNlength18";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct pDCP_SNlength18_t : PDCP_SNlength18 - { - static constexpr const char* name() {return "pDCP_SNlength18_t";} - using parent_t = PDCP_SNlength18; - - }; - pDCP_SNlength18_t& ref_pDCP_SNlength18() {return pDCP_SNlength18;} - pDCP_SNlength18_t const& ref_pDCP_SNlength18() const {return pDCP_SNlength18;} - struct hFNforPDCP_SNlength18_t : HFNforPDCP_SNlength18 - { - static constexpr const char* name() {return "hFNforPDCP_SNlength18_t";} - using parent_t = HFNforPDCP_SNlength18; - - }; - hFNforPDCP_SNlength18_t& ref_hFNforPDCP_SNlength18() {return hFNforPDCP_SNlength18;} - hFNforPDCP_SNlength18_t const& ref_hFNforPDCP_SNlength18() const {return hFNforPDCP_SNlength18;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(pDCP_SNlength18); - v(hFNforPDCP_SNlength18); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(pDCP_SNlength18); - v(hFNforPDCP_SNlength18); - v(iE_Extensions); - - }; - void clear() - { - pDCP_SNlength18.clear(); - hFNforPDCP_SNlength18.clear(); - iE_Extensions.clear(); - - }; - private: - pDCP_SNlength18_t pDCP_SNlength18; - hFNforPDCP_SNlength18_t hFNforPDCP_SNlength18; - iE_Extensions_t iE_Extensions; - -}; -/* -CRNTI ::= BIT STRING (SIZE (16)) -*/ - -struct CRNTI : asn::bstring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "CRNTI";} - using parent_t = asn::bstring<>; - -}; - -/* -CSG-Id ::= BIT STRING (SIZE (27)) -*/ - -struct CSG_Id : asn::bstring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "CSG-Id";} - using parent_t = asn::bstring<>; - -}; - -/* -CSGMembershipStatus ::= ENUMERATED { - member, - not-member -} -*/ - -struct CSGMembershipStatus : asn::enumerated<2, 0, false> -{ - static constexpr const char* name() {return "CSGMembershipStatus";} - using parent_t = asn::enumerated<2, 0, false>; - typedef enum { - member - ,not_member - } index_t; - -}; - -/* -UEID ::= BIT STRING (SIZE (16)) -*/ - -struct UEID : asn::bstring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "UEID";} - using parent_t = asn::bstring<>; - -}; - -/* -WidebandCQICodeword1::= CHOICE { - four-bitCQI INTEGER (0..15, ...), - three-bitSpatialDifferentialCQI INTEGER (0..7, ...), - ... -} -*/ - -struct WidebandCQICodeword1 : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "WidebandCQICodeword1";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~WidebandCQICodeword1() {clear();} - struct four_bitCQI_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "four_bitCQI_t";} - using parent_t = asn::integer<>; - - }; - - struct three_bitSpatialDifferentialCQI_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "three_bitSpatialDifferentialCQI_t";} - using parent_t = asn::integer<>; - - }; - - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - four_bitCQI_t& select_four_bitCQI() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - four_bitCQI_t const* get_four_bitCQI() const { if(get_index() == 1) { return &var.as();} return nullptr; } - three_bitSpatialDifferentialCQI_t& select_three_bitSpatialDifferentialCQI() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - three_bitSpatialDifferentialCQI_t const* get_three_bitSpatialDifferentialCQI() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(four_bitCQI_t)]; - char dummy2[sizeof(three_bitSpatialDifferentialCQI_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -WidebandCQI-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct WidebandCQI_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -WidebandCQI ::= SEQUENCE { - widebandCQICodeword0 INTEGER (0..15, ...), - widebandCQICodeword1 WidebandCQICodeword1 OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {WidebandCQI-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct WidebandCQI : asn::sequence<3, 0, true, 2> -{ - static constexpr const char* name() {return "WidebandCQI";} - using parent_t = asn::sequence<3, 0, true, 2>; - struct widebandCQICodeword0_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "widebandCQICodeword0_t";} - using parent_t = asn::integer<>; - - }; - - widebandCQICodeword0_t& ref_widebandCQICodeword0() {return widebandCQICodeword0;} - widebandCQICodeword0_t const& ref_widebandCQICodeword0() const {return widebandCQICodeword0;} - struct widebandCQICodeword1_t : WidebandCQICodeword1 - { - static constexpr const char* name() {return "widebandCQICodeword1_t";} - using parent_t = WidebandCQICodeword1; - static constexpr bool optional = true; - - }; - widebandCQICodeword1_t& set_widebandCQICodeword1() { widebandCQICodeword1.setpresent(true); return widebandCQICodeword1;} - widebandCQICodeword1_t const* get_widebandCQICodeword1() const {return widebandCQICodeword1.is_valid() ? &widebandCQICodeword1 : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(widebandCQICodeword0); - v(widebandCQICodeword1); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(widebandCQICodeword0); - v(widebandCQICodeword1); - v(iE_Extensions); - - }; - void clear() - { - widebandCQICodeword0.clear(); - widebandCQICodeword1.clear(); - iE_Extensions.clear(); - - }; - private: - widebandCQICodeword0_t widebandCQICodeword0; - widebandCQICodeword1_t widebandCQICodeword1; - iE_Extensions_t iE_Extensions; - -}; -/* -SubbandSize ::= ENUMERATED { - size2, - size3, - size4, - size6, - size8, - ... -} -*/ - -struct SubbandSize : asn::enumerated<5, 0, true> -{ - static constexpr const char* name() {return "SubbandSize";} - using parent_t = asn::enumerated<5, 0, true>; - typedef enum { - size2 - ,size3 - ,size4 - ,size6 - ,size8 - } index_t; - -}; - -/* -SubbandCQICodeword0 ::= CHOICE { - four-bitCQI INTEGER (0..15, ...), - two-bitSubbandDifferentialCQI INTEGER (0..3, ...), - two-bitDifferentialCQI INTEGER (0..3, ...), - ... -} -*/ - -struct SubbandCQICodeword0 : asn::choice<3, 0, true> -{ - static constexpr const char* name() {return "SubbandCQICodeword0";} - using parent_t = asn::choice<3, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 4;} - void set_unknown() { set_index(4); } - ~SubbandCQICodeword0() {clear();} - struct four_bitCQI_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "four_bitCQI_t";} - using parent_t = asn::integer<>; - - }; - - struct two_bitSubbandDifferentialCQI_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "two_bitSubbandDifferentialCQI_t";} - using parent_t = asn::integer<>; - - }; - - struct two_bitDifferentialCQI_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "two_bitDifferentialCQI_t";} - using parent_t = asn::integer<>; - - }; - - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - case 3: set_index(3); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - case 3: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - - } - four_bitCQI_t& select_four_bitCQI() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - four_bitCQI_t const* get_four_bitCQI() const { if(get_index() == 1) { return &var.as();} return nullptr; } - two_bitSubbandDifferentialCQI_t& select_two_bitSubbandDifferentialCQI() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - two_bitSubbandDifferentialCQI_t const* get_two_bitSubbandDifferentialCQI() const { if(get_index() == 2) { return &var.as();} return nullptr; } - two_bitDifferentialCQI_t& select_two_bitDifferentialCQI() { if(get_index() != 3) { clear(); set_index(3); return var.build();} return var.as();} - two_bitDifferentialCQI_t const* get_two_bitDifferentialCQI() const { if(get_index() == 3) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(four_bitCQI_t)]; - char dummy2[sizeof(two_bitSubbandDifferentialCQI_t)]; - char dummy3[sizeof(two_bitDifferentialCQI_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -SubbandCQICodeword1 ::= CHOICE { - four-bitCQI INTEGER (0..15, ...), - three-bitSpatialDifferentialCQI INTEGER (0..7, ...), - two-bitSubbandDifferentialCQI INTEGER (0..3, ...), - two-bitDifferentialCQI INTEGER (0..3, ...), - ... -} -*/ - -struct SubbandCQICodeword1 : asn::choice<4, 0, true> -{ - static constexpr const char* name() {return "SubbandCQICodeword1";} - using parent_t = asn::choice<4, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 5;} - void set_unknown() { set_index(5); } - ~SubbandCQICodeword1() {clear();} - struct four_bitCQI_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "four_bitCQI_t";} - using parent_t = asn::integer<>; - - }; - - struct three_bitSpatialDifferentialCQI_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "three_bitSpatialDifferentialCQI_t";} - using parent_t = asn::integer<>; - - }; - - struct two_bitSubbandDifferentialCQI_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "two_bitSubbandDifferentialCQI_t";} - using parent_t = asn::integer<>; - - }; - - struct two_bitDifferentialCQI_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "two_bitDifferentialCQI_t";} - using parent_t = asn::integer<>; - - }; - - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - case 3: set_index(3); return v(var.build()); - case 4: set_index(4); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - case 3: return v(var.as()); - case 4: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - - } - four_bitCQI_t& select_four_bitCQI() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - four_bitCQI_t const* get_four_bitCQI() const { if(get_index() == 1) { return &var.as();} return nullptr; } - three_bitSpatialDifferentialCQI_t& select_three_bitSpatialDifferentialCQI() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - three_bitSpatialDifferentialCQI_t const* get_three_bitSpatialDifferentialCQI() const { if(get_index() == 2) { return &var.as();} return nullptr; } - two_bitSubbandDifferentialCQI_t& select_two_bitSubbandDifferentialCQI() { if(get_index() != 3) { clear(); set_index(3); return var.build();} return var.as();} - two_bitSubbandDifferentialCQI_t const* get_two_bitSubbandDifferentialCQI() const { if(get_index() == 3) { return &var.as();} return nullptr; } - two_bitDifferentialCQI_t& select_two_bitDifferentialCQI() { if(get_index() != 4) { clear(); set_index(4); return var.build();} return var.as();} - two_bitDifferentialCQI_t const* get_two_bitDifferentialCQI() const { if(get_index() == 4) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(four_bitCQI_t)]; - char dummy2[sizeof(three_bitSpatialDifferentialCQI_t)]; - char dummy3[sizeof(two_bitSubbandDifferentialCQI_t)]; - char dummy4[sizeof(two_bitDifferentialCQI_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -SubbandCQI-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct SubbandCQI_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SubbandCQI ::= SEQUENCE { - subbandCQICodeword0 SubbandCQICodeword0, - subbandCQICodeword1 SubbandCQICodeword1 OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {SubbandCQI-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct SubbandCQI : asn::sequence<3, 0, true, 2> -{ - static constexpr const char* name() {return "SubbandCQI";} - using parent_t = asn::sequence<3, 0, true, 2>; - struct subbandCQICodeword0_t : SubbandCQICodeword0 - { - static constexpr const char* name() {return "subbandCQICodeword0_t";} - using parent_t = SubbandCQICodeword0; - - }; - subbandCQICodeword0_t& ref_subbandCQICodeword0() {return subbandCQICodeword0;} - subbandCQICodeword0_t const& ref_subbandCQICodeword0() const {return subbandCQICodeword0;} - struct subbandCQICodeword1_t : SubbandCQICodeword1 - { - static constexpr const char* name() {return "subbandCQICodeword1_t";} - using parent_t = SubbandCQICodeword1; - static constexpr bool optional = true; - - }; - subbandCQICodeword1_t& set_subbandCQICodeword1() { subbandCQICodeword1.setpresent(true); return subbandCQICodeword1;} - subbandCQICodeword1_t const* get_subbandCQICodeword1() const {return subbandCQICodeword1.is_valid() ? &subbandCQICodeword1 : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(subbandCQICodeword0); - v(subbandCQICodeword1); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(subbandCQICodeword0); - v(subbandCQICodeword1); - v(iE_Extensions); - - }; - void clear() - { - subbandCQICodeword0.clear(); - subbandCQICodeword1.clear(); - iE_Extensions.clear(); - - }; - private: - subbandCQICodeword0_t subbandCQICodeword0; - subbandCQICodeword1_t subbandCQICodeword1; - iE_Extensions_t iE_Extensions; - -}; -/* -SubbandCQIItem-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct SubbandCQIItem_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SubbandCQIItem ::= SEQUENCE { - subbandCQI SubbandCQI, - subbandIndex INTEGER (0..27,...), - iE-Extensions ProtocolExtensionContainer { {SubbandCQIItem-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct SubbandCQIItem : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "SubbandCQIItem";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct subbandCQI_t : SubbandCQI - { - static constexpr const char* name() {return "subbandCQI_t";} - using parent_t = SubbandCQI; - - }; - subbandCQI_t& ref_subbandCQI() {return subbandCQI;} - subbandCQI_t const& ref_subbandCQI() const {return subbandCQI;} - struct subbandIndex_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "subbandIndex_t";} - using parent_t = asn::integer<>; - - }; - - subbandIndex_t& ref_subbandIndex() {return subbandIndex;} - subbandIndex_t const& ref_subbandIndex() const {return subbandIndex;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(subbandCQI); - v(subbandIndex); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(subbandCQI); - v(subbandIndex); - v(iE_Extensions); - - }; - void clear() - { - subbandCQI.clear(); - subbandIndex.clear(); - iE_Extensions.clear(); - - }; - private: - subbandCQI_t subbandCQI; - subbandIndex_t subbandIndex; - iE_Extensions_t iE_Extensions; - -}; -/* -SubbandCQIList ::= SEQUENCE (SIZE(1.. maxSubband)) OF SubbandCQIItem -*/ - -struct SubbandCQIList_elm : SubbandCQIItem -{ - static constexpr const char* name() {return "SubbandCQIList_elm";} - using parent_t = SubbandCQIItem; - -}; -struct SubbandCQIList : asn::sequenceof -{ - static constexpr const char* name() {return "SubbandCQIList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -CSIReportPerCSIProcessItem-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct CSIReportPerCSIProcessItem_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -CSIReportPerCSIProcessItem ::= SEQUENCE (SIZE(1.. maxCSIReport)) OF - SEQUENCE { - rI INTEGER (1..8, ...), - widebandCQI WidebandCQI, - subbandSize SubbandSize, - subbandCQIList SubbandCQIList OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {CSIReportPerCSIProcessItem-ExtIEs} } OPTIONAL, - ... - } -*/ - -struct CSIReportPerCSIProcessItem_elm : asn::sequence<5, 0, true, 2> -{ - static constexpr const char* name() {return "CSIReportPerCSIProcessItem_elm";} - using parent_t = asn::sequence<5, 0, true, 2>; - struct rI_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "rI_t";} - using parent_t = asn::integer<>; - - }; - - rI_t& ref_rI() {return rI;} - rI_t const& ref_rI() const {return rI;} - struct widebandCQI_t : WidebandCQI - { - static constexpr const char* name() {return "widebandCQI_t";} - using parent_t = WidebandCQI; - - }; - widebandCQI_t& ref_widebandCQI() {return widebandCQI;} - widebandCQI_t const& ref_widebandCQI() const {return widebandCQI;} - struct subbandSize_t : SubbandSize - { - static constexpr const char* name() {return "subbandSize_t";} - using parent_t = SubbandSize; - - }; - subbandSize_t& ref_subbandSize() {return subbandSize;} - subbandSize_t const& ref_subbandSize() const {return subbandSize;} - struct subbandCQIList_t : SubbandCQIList - { - static constexpr const char* name() {return "subbandCQIList_t";} - using parent_t = SubbandCQIList; - static constexpr bool optional = true; - - }; - subbandCQIList_t& set_subbandCQIList() { subbandCQIList.setpresent(true); return subbandCQIList;} - subbandCQIList_t const* get_subbandCQIList() const {return subbandCQIList.is_valid() ? &subbandCQIList : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(rI); - v(widebandCQI); - v(subbandSize); - v(subbandCQIList); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(rI); - v(widebandCQI); - v(subbandSize); - v(subbandCQIList); - v(iE_Extensions); - - }; - void clear() - { - rI.clear(); - widebandCQI.clear(); - subbandSize.clear(); - subbandCQIList.clear(); - iE_Extensions.clear(); - - }; - private: - rI_t rI; - widebandCQI_t widebandCQI; - subbandSize_t subbandSize; - subbandCQIList_t subbandCQIList; - iE_Extensions_t iE_Extensions; - -}; -struct CSIReportPerCSIProcessItem : asn::sequenceof -{ - static constexpr const char* name() {return "CSIReportPerCSIProcessItem";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -CSIReportPerCSIProcess-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct CSIReportPerCSIProcess_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -CSIReportPerCSIProcess ::= SEQUENCE (SIZE(1.. maxCSIProcess)) OF - SEQUENCE { - cSIProcessConfigurationIndex INTEGER (1..7, ...), - cSIReportPerCSIProcessItem CSIReportPerCSIProcessItem, - iE-Extensions ProtocolExtensionContainer { {CSIReportPerCSIProcess-ExtIEs} } OPTIONAL, - ... - } -*/ - -struct CSIReportPerCSIProcess_elm : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "CSIReportPerCSIProcess_elm";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct cSIProcessConfigurationIndex_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "cSIProcessConfigurationIndex_t";} - using parent_t = asn::integer<>; - - }; - - cSIProcessConfigurationIndex_t& ref_cSIProcessConfigurationIndex() {return cSIProcessConfigurationIndex;} - cSIProcessConfigurationIndex_t const& ref_cSIProcessConfigurationIndex() const {return cSIProcessConfigurationIndex;} - struct cSIReportPerCSIProcessItem_t : CSIReportPerCSIProcessItem - { - static constexpr const char* name() {return "cSIReportPerCSIProcessItem_t";} - using parent_t = CSIReportPerCSIProcessItem; - - }; - cSIReportPerCSIProcessItem_t& ref_cSIReportPerCSIProcessItem() {return cSIReportPerCSIProcessItem;} - cSIReportPerCSIProcessItem_t const& ref_cSIReportPerCSIProcessItem() const {return cSIReportPerCSIProcessItem;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(cSIProcessConfigurationIndex); - v(cSIReportPerCSIProcessItem); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(cSIProcessConfigurationIndex); - v(cSIReportPerCSIProcessItem); - v(iE_Extensions); - - }; - void clear() - { - cSIProcessConfigurationIndex.clear(); - cSIReportPerCSIProcessItem.clear(); - iE_Extensions.clear(); - - }; - private: - cSIProcessConfigurationIndex_t cSIProcessConfigurationIndex; - cSIReportPerCSIProcessItem_t cSIReportPerCSIProcessItem; - iE_Extensions_t iE_Extensions; - -}; -struct CSIReportPerCSIProcess : asn::sequenceof -{ - static constexpr const char* name() {return "CSIReportPerCSIProcess";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -CSIReportList-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct CSIReportList_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -CSIReportList ::= SEQUENCE (SIZE(1..maxUEReport)) OF - SEQUENCE { - uEID UEID, - cSIReportPerCSIProcess CSIReportPerCSIProcess, - iE-Extensions ProtocolExtensionContainer { {CSIReportList-ExtIEs} } OPTIONAL, - ... - } -*/ - -struct CSIReportList_elm : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "CSIReportList_elm";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct uEID_t : UEID - { - static constexpr const char* name() {return "uEID_t";} - using parent_t = UEID; - - }; - uEID_t& ref_uEID() {return uEID;} - uEID_t const& ref_uEID() const {return uEID;} - struct cSIReportPerCSIProcess_t : CSIReportPerCSIProcess - { - static constexpr const char* name() {return "cSIReportPerCSIProcess_t";} - using parent_t = CSIReportPerCSIProcess; - - }; - cSIReportPerCSIProcess_t& ref_cSIReportPerCSIProcess() {return cSIReportPerCSIProcess;} - cSIReportPerCSIProcess_t const& ref_cSIReportPerCSIProcess() const {return cSIReportPerCSIProcess;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(uEID); - v(cSIReportPerCSIProcess); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(uEID); - v(cSIReportPerCSIProcess); - v(iE_Extensions); - - }; - void clear() - { - uEID.clear(); - cSIReportPerCSIProcess.clear(); - iE_Extensions.clear(); - - }; - private: - uEID_t uEID; - cSIReportPerCSIProcess_t cSIReportPerCSIProcess; - iE_Extensions_t iE_Extensions; - -}; -struct CSIReportList : asn::sequenceof -{ - static constexpr const char* name() {return "CSIReportList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -CapacityValue ::= INTEGER (0..100) -*/ - -struct CapacityValue : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "CapacityValue";} - using parent_t = asn::integer<>; - -}; - -/* -CauseRadioNetwork ::= ENUMERATED { - handover-desirable-for-radio-reasons, - time-critical-handover, - resource-optimisation-handover, - reduce-load-in-serving-cell, - partial-handover, - unknown-new-eNB-UE-X2AP-ID, - unknown-old-eNB-UE-X2AP-ID, - unknown-pair-of-UE-X2AP-ID, - ho-target-not-allowed, - tx2relocoverall-expiry, - trelocprep-expiry, - cell-not-available, - no-radio-resources-available-in-target-cell, - invalid-MME-GroupID, - unknown-MME-Code, - encryption-and-or-integrity-protection-algorithms-not-supported, - reportCharacteristicsEmpty, - noReportPeriodicity, - existingMeasurementID, - unknown-eNB-Measurement-ID, - measurement-temporarily-not-available, - unspecified, - ..., - load-balancing, - handover-optimisation, - value-out-of-allowed-range, - multiple-E-RAB-ID-instances, - switch-off-ongoing, - not-supported-QCI-value, - measurement-not-supported-for-the-object, - tDCoverall-expiry, - tDCprep-expiry, - action-desirable-for-radio-reasons, - reduce-load, - resource-optimisation, - time-critical-action, - target-not-allowed, - no-radio-resources-available, - invalid-QoS-combination, - encryption-algorithms-not-aupported, - procedure-cancelled, - rRM-purpose, - improve-user-bit-rate, - user-inactivity, - radio-connection-with-UE-lost, - failure-in-the-radio-interface-procedure, - bearer-option-not-supported, - mCG-Mobility, - sCG-Mobility, - count-reaches-max-value, - unknown-old-en-gNB-UE-X2AP-ID, - pDCP-Overload - -} -*/ - -struct CauseRadioNetwork : asn::enumerated<51, 29, true> -{ - static constexpr const char* name() {return "CauseRadioNetwork";} - using parent_t = asn::enumerated<51, 29, true>; - typedef enum { - handover_desirable_for_radio_reasons - ,time_critical_handover - ,resource_optimisation_handover - ,reduce_load_in_serving_cell - ,partial_handover - ,unknown_new_eNB_UE_X2AP_ID - ,unknown_old_eNB_UE_X2AP_ID - ,unknown_pair_of_UE_X2AP_ID - ,ho_target_not_allowed - ,tx2relocoverall_expiry - ,trelocprep_expiry - ,cell_not_available - ,no_radio_resources_available_in_target_cell - ,invalid_MME_GroupID - ,unknown_MME_Code - ,encryption_and_or_integrity_protection_algorithms_not_supported - ,reportCharacteristicsEmpty - ,noReportPeriodicity - ,existingMeasurementID - ,unknown_eNB_Measurement_ID - ,measurement_temporarily_not_available - ,unspecified - ,load_balancing - ,handover_optimisation - ,value_out_of_allowed_range - ,multiple_E_RAB_ID_instances - ,switch_off_ongoing - ,not_supported_QCI_value - ,measurement_not_supported_for_the_object - ,tDCoverall_expiry - ,tDCprep_expiry - ,action_desirable_for_radio_reasons - ,reduce_load - ,resource_optimisation - ,time_critical_action - ,target_not_allowed - ,no_radio_resources_available - ,invalid_QoS_combination - ,encryption_algorithms_not_aupported - ,procedure_cancelled - ,rRM_purpose - ,improve_user_bit_rate - ,user_inactivity - ,radio_connection_with_UE_lost - ,failure_in_the_radio_interface_procedure - ,bearer_option_not_supported - ,mCG_Mobility - ,sCG_Mobility - ,count_reaches_max_value - ,unknown_old_en_gNB_UE_X2AP_ID - ,pDCP_Overload - } index_t; - -}; - -/* -CauseTransport ::= ENUMERATED { - transport-resource-unavailable, - unspecified, - ... -} -*/ - -struct CauseTransport : asn::enumerated<2, 0, true> -{ - static constexpr const char* name() {return "CauseTransport";} - using parent_t = asn::enumerated<2, 0, true>; - typedef enum { - transport_resource_unavailable - ,unspecified - } index_t; - -}; - -/* -CauseProtocol ::= ENUMERATED { - transfer-syntax-error, - abstract-syntax-error-reject, - abstract-syntax-error-ignore-and-notify, - message-not-compatible-with-receiver-state, - semantic-error, - unspecified, - abstract-syntax-error-falsely-constructed-message, - ... -} -*/ - -struct CauseProtocol : asn::enumerated<7, 0, true> -{ - static constexpr const char* name() {return "CauseProtocol";} - using parent_t = asn::enumerated<7, 0, true>; - typedef enum { - transfer_syntax_error - ,abstract_syntax_error_reject - ,abstract_syntax_error_ignore_and_notify - ,message_not_compatible_with_receiver_state - ,semantic_error - ,unspecified - ,abstract_syntax_error_falsely_constructed_message - } index_t; - -}; - -/* -CauseMisc ::= ENUMERATED { - control-processing-overload, - hardware-failure, - om-intervention, - not-enough-user-plane-processing-resources, - unspecified, - ... -} -*/ - -struct CauseMisc : asn::enumerated<5, 0, true> -{ - static constexpr const char* name() {return "CauseMisc";} - using parent_t = asn::enumerated<5, 0, true>; - typedef enum { - control_processing_overload - ,hardware_failure - ,om_intervention - ,not_enough_user_plane_processing_resources - ,unspecified - } index_t; - -}; - -/* -Cause ::= CHOICE { - radioNetwork CauseRadioNetwork, - transport CauseTransport, - protocol CauseProtocol, - misc CauseMisc, - ... -} -*/ - -struct Cause : asn::choice<4, 0, true> -{ - static constexpr const char* name() {return "Cause";} - using parent_t = asn::choice<4, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 5;} - void set_unknown() { set_index(5); } - ~Cause() {clear();} - struct radioNetwork_t : CauseRadioNetwork - { - static constexpr const char* name() {return "radioNetwork_t";} - using parent_t = CauseRadioNetwork; - - }; - struct transport_t : CauseTransport - { - static constexpr const char* name() {return "transport_t";} - using parent_t = CauseTransport; - - }; - struct protocol_t : CauseProtocol - { - static constexpr const char* name() {return "protocol_t";} - using parent_t = CauseProtocol; - - }; - struct misc_t : CauseMisc - { - static constexpr const char* name() {return "misc_t";} - using parent_t = CauseMisc; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - case 3: set_index(3); return v(var.build()); - case 4: set_index(4); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - case 3: return v(var.as()); - case 4: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - - } - radioNetwork_t& select_radioNetwork() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - radioNetwork_t const* get_radioNetwork() const { if(get_index() == 1) { return &var.as();} return nullptr; } - transport_t& select_transport() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - transport_t const* get_transport() const { if(get_index() == 2) { return &var.as();} return nullptr; } - protocol_t& select_protocol() { if(get_index() != 3) { clear(); set_index(3); return var.build();} return var.as();} - protocol_t const* get_protocol() const { if(get_index() == 3) { return &var.as();} return nullptr; } - misc_t& select_misc() { if(get_index() != 4) { clear(); set_index(4); return var.build();} return var.as();} - misc_t const* get_misc() const { if(get_index() == 4) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(radioNetwork_t)]; - char dummy2[sizeof(transport_t)]; - char dummy3[sizeof(protocol_t)]; - char dummy4[sizeof(misc_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -Cell-Size ::= ENUMERATED {verysmall, small, medium, large, ... } -*/ - -struct Cell_Size : asn::enumerated<4, 0, true> -{ - static constexpr const char* name() {return "Cell-Size";} - using parent_t = asn::enumerated<4, 0, true>; - typedef enum { - verysmall - ,small - ,medium - ,large - } index_t; - -}; - -/* -CellCapacityClassValue ::= INTEGER (1..100, ...) -*/ - -struct CellCapacityClassValue : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "CellCapacityClassValue";} - using parent_t = asn::integer<>; - -}; - -/* -CellDeploymentStatusIndicator ::= ENUMERATED {pre-change-notification, ...} -*/ - -struct CellDeploymentStatusIndicator : asn::enumerated<1, 0, true> -{ - static constexpr const char* name() {return "CellDeploymentStatusIndicator";} - using parent_t = asn::enumerated<1, 0, true>; - typedef enum { - pre_change_notification - } index_t; - -}; - -/* -ReplacingCellsList-Item ::= SEQUENCE { - eCGI ECGI, - ... -} -*/ - -struct ReplacingCellsList_Item : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "ReplacingCellsList-Item";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct eCGI_t : ECGI - { - static constexpr const char* name() {return "eCGI_t";} - using parent_t = ECGI; - - }; - eCGI_t& ref_eCGI() {return eCGI;} - eCGI_t const& ref_eCGI() const {return eCGI;} - template void decode(V& v) - { - v(eCGI); - - }; - template void encode(V& v) const - { - v(eCGI); - - }; - void clear() - { - eCGI.clear(); - - }; - private: - eCGI_t eCGI; - -}; -/* -ReplacingCellsList ::= SEQUENCE (SIZE(0.. maxCellineNB)) OF ReplacingCellsList-Item -*/ - -struct ReplacingCellsList_elm : ReplacingCellsList_Item -{ - static constexpr const char* name() {return "ReplacingCellsList_elm";} - using parent_t = ReplacingCellsList_Item; - -}; -struct ReplacingCellsList : asn::sequenceof -{ - static constexpr const char* name() {return "ReplacingCellsList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -CellReplacingInfo-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct CellReplacingInfo_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -CellReplacingInfo ::= SEQUENCE { - replacingCellsList ReplacingCellsList, - iE-Extensions ProtocolExtensionContainer { {CellReplacingInfo-ExtIEs}} OPTIONAL, - ... -} -*/ - -struct CellReplacingInfo : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "CellReplacingInfo";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct replacingCellsList_t : ReplacingCellsList - { - static constexpr const char* name() {return "replacingCellsList_t";} - using parent_t = ReplacingCellsList; - - }; - replacingCellsList_t& ref_replacingCellsList() {return replacingCellsList;} - replacingCellsList_t const& ref_replacingCellsList() const {return replacingCellsList;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(replacingCellsList); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(replacingCellsList); - v(iE_Extensions); - - }; - void clear() - { - replacingCellsList.clear(); - iE_Extensions.clear(); - - }; - private: - replacingCellsList_t replacingCellsList; - iE_Extensions_t iE_Extensions; - -}; -/* -CellReportingIndicator ::= ENUMERATED {stop-request, ... } -*/ - -struct CellReportingIndicator : asn::enumerated<1, 0, true> -{ - static constexpr const char* name() {return "CellReportingIndicator";} - using parent_t = asn::enumerated<1, 0, true>; - typedef enum { - stop_request - } index_t; - -}; - -/* -CellType-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct CellType_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -CellType ::= SEQUENCE { - cell-Size Cell-Size, - iE-Extensions ProtocolExtensionContainer { {CellType-ExtIEs}} OPTIONAL, - ... -} -*/ - -struct CellType : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "CellType";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct cell_Size_t : Cell_Size - { - static constexpr const char* name() {return "cell_Size_t";} - using parent_t = Cell_Size; - - }; - cell_Size_t& ref_cell_Size() {return cell_Size;} - cell_Size_t const& ref_cell_Size() const {return cell_Size;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(cell_Size); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(cell_Size); - v(iE_Extensions); - - }; - void clear() - { - cell_Size.clear(); - iE_Extensions.clear(); - - }; - private: - cell_Size_t cell_Size; - iE_Extensions_t iE_Extensions; - -}; -/* -CoMPHypothesisSetItem-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct CoMPHypothesisSetItem_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -CoMPHypothesisSetItem ::= SEQUENCE { - coMPCellID ECGI, - coMPHypothesis BIT STRING (SIZE(6..4400, ...)), - iE-Extensions ProtocolExtensionContainer { {CoMPHypothesisSetItem-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct CoMPHypothesisSetItem : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "CoMPHypothesisSetItem";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct coMPCellID_t : ECGI - { - static constexpr const char* name() {return "coMPCellID_t";} - using parent_t = ECGI; - - }; - coMPCellID_t& ref_coMPCellID() {return coMPCellID;} - coMPCellID_t const& ref_coMPCellID() const {return coMPCellID;} - struct coMPHypothesis_t : asn::bstring<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "coMPHypothesis_t";} - using parent_t = asn::bstring<>; - - }; - - coMPHypothesis_t& ref_coMPHypothesis() {return coMPHypothesis;} - coMPHypothesis_t const& ref_coMPHypothesis() const {return coMPHypothesis;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(coMPCellID); - v(coMPHypothesis); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(coMPCellID); - v(coMPHypothesis); - v(iE_Extensions); - - }; - void clear() - { - coMPCellID.clear(); - coMPHypothesis.clear(); - iE_Extensions.clear(); - - }; - private: - coMPCellID_t coMPCellID; - coMPHypothesis_t coMPHypothesis; - iE_Extensions_t iE_Extensions; - -}; -/* -CoMPHypothesisSet ::= SEQUENCE (SIZE(1..maxnoofCoMPCells)) OF CoMPHypothesisSetItem -*/ - -struct CoMPHypothesisSet_elm : CoMPHypothesisSetItem -{ - static constexpr const char* name() {return "CoMPHypothesisSet_elm";} - using parent_t = CoMPHypothesisSetItem; - -}; -struct CoMPHypothesisSet : asn::sequenceof -{ - static constexpr const char* name() {return "CoMPHypothesisSet";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -CoMPInformationItem-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct CoMPInformationItem_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -CoMPInformationItem ::= SEQUENCE (SIZE(1..maxnoofCoMPHypothesisSet)) OF - SEQUENCE { - coMPHypothesisSet CoMPHypothesisSet, - benefitMetric BenefitMetric, - iE-Extensions ProtocolExtensionContainer { {CoMPInformationItem-ExtIEs} } OPTIONAL, - ... - } -*/ - -struct CoMPInformationItem_elm : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "CoMPInformationItem_elm";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct coMPHypothesisSet_t : CoMPHypothesisSet - { - static constexpr const char* name() {return "coMPHypothesisSet_t";} - using parent_t = CoMPHypothesisSet; - - }; - coMPHypothesisSet_t& ref_coMPHypothesisSet() {return coMPHypothesisSet;} - coMPHypothesisSet_t const& ref_coMPHypothesisSet() const {return coMPHypothesisSet;} - struct benefitMetric_t : BenefitMetric - { - static constexpr const char* name() {return "benefitMetric_t";} - using parent_t = BenefitMetric; - - }; - benefitMetric_t& ref_benefitMetric() {return benefitMetric;} - benefitMetric_t const& ref_benefitMetric() const {return benefitMetric;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(coMPHypothesisSet); - v(benefitMetric); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(coMPHypothesisSet); - v(benefitMetric); - v(iE_Extensions); - - }; - void clear() - { - coMPHypothesisSet.clear(); - benefitMetric.clear(); - iE_Extensions.clear(); - - }; - private: - coMPHypothesisSet_t coMPHypothesisSet; - benefitMetric_t benefitMetric; - iE_Extensions_t iE_Extensions; - -}; -struct CoMPInformationItem : asn::sequenceof -{ - static constexpr const char* name() {return "CoMPInformationItem";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -CoMPInformationStartTime-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct CoMPInformationStartTime_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -CoMPInformationStartTime ::= SEQUENCE (SIZE(0..1)) OF - SEQUENCE { - startSFN INTEGER (0..1023, ...), - startSubframeNumber INTEGER (0..9, ...), - iE-Extensions ProtocolExtensionContainer { {CoMPInformationStartTime-ExtIEs} } OPTIONAL, - ... - } -*/ - -struct CoMPInformationStartTime_elm : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "CoMPInformationStartTime_elm";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct startSFN_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "startSFN_t";} - using parent_t = asn::integer<>; - - }; - - startSFN_t& ref_startSFN() {return startSFN;} - startSFN_t const& ref_startSFN() const {return startSFN;} - struct startSubframeNumber_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "startSubframeNumber_t";} - using parent_t = asn::integer<>; - - }; - - startSubframeNumber_t& ref_startSubframeNumber() {return startSubframeNumber;} - startSubframeNumber_t const& ref_startSubframeNumber() const {return startSubframeNumber;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(startSFN); - v(startSubframeNumber); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(startSFN); - v(startSubframeNumber); - v(iE_Extensions); - - }; - void clear() - { - startSFN.clear(); - startSubframeNumber.clear(); - iE_Extensions.clear(); - - }; - private: - startSFN_t startSFN; - startSubframeNumber_t startSubframeNumber; - iE_Extensions_t iE_Extensions; - -}; -struct CoMPInformationStartTime : asn::sequenceof -{ - static constexpr const char* name() {return "CoMPInformationStartTime";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -CoMPInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct CoMPInformation_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -CoMPInformation ::= SEQUENCE { - coMPInformationItem CoMPInformationItem, - coMPInformationStartTime CoMPInformationStartTime, - iE-Extensions ProtocolExtensionContainer { {CoMPInformation-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct CoMPInformation : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "CoMPInformation";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct coMPInformationItem_t : CoMPInformationItem - { - static constexpr const char* name() {return "coMPInformationItem_t";} - using parent_t = CoMPInformationItem; - - }; - coMPInformationItem_t& ref_coMPInformationItem() {return coMPInformationItem;} - coMPInformationItem_t const& ref_coMPInformationItem() const {return coMPInformationItem;} - struct coMPInformationStartTime_t : CoMPInformationStartTime - { - static constexpr const char* name() {return "coMPInformationStartTime_t";} - using parent_t = CoMPInformationStartTime; - - }; - coMPInformationStartTime_t& ref_coMPInformationStartTime() {return coMPInformationStartTime;} - coMPInformationStartTime_t const& ref_coMPInformationStartTime() const {return coMPInformationStartTime;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(coMPInformationItem); - v(coMPInformationStartTime); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(coMPInformationItem); - v(coMPInformationStartTime); - v(iE_Extensions); - - }; - void clear() - { - coMPInformationItem.clear(); - coMPInformationStartTime.clear(); - iE_Extensions.clear(); - - }; - private: - coMPInformationItem_t coMPInformationItem; - coMPInformationStartTime_t coMPInformationStartTime; - iE_Extensions_t iE_Extensions; - -}; -/* -CompositeAvailableCapacity-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct CompositeAvailableCapacity_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -CompositeAvailableCapacity ::= SEQUENCE { - cellCapacityClassValue CellCapacityClassValue OPTIONAL, - capacityValue CapacityValue, - iE-Extensions ProtocolExtensionContainer { {CompositeAvailableCapacity-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct CompositeAvailableCapacity : asn::sequence<3, 0, true, 2> -{ - static constexpr const char* name() {return "CompositeAvailableCapacity";} - using parent_t = asn::sequence<3, 0, true, 2>; - struct cellCapacityClassValue_t : CellCapacityClassValue - { - static constexpr const char* name() {return "cellCapacityClassValue_t";} - using parent_t = CellCapacityClassValue; - static constexpr bool optional = true; - - }; - cellCapacityClassValue_t& set_cellCapacityClassValue() { cellCapacityClassValue.setpresent(true); return cellCapacityClassValue;} - cellCapacityClassValue_t const* get_cellCapacityClassValue() const {return cellCapacityClassValue.is_valid() ? &cellCapacityClassValue : nullptr;} - struct capacityValue_t : CapacityValue - { - static constexpr const char* name() {return "capacityValue_t";} - using parent_t = CapacityValue; - - }; - capacityValue_t& ref_capacityValue() {return capacityValue;} - capacityValue_t const& ref_capacityValue() const {return capacityValue;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(cellCapacityClassValue); - v(capacityValue); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(cellCapacityClassValue); - v(capacityValue); - v(iE_Extensions); - - }; - void clear() - { - cellCapacityClassValue.clear(); - capacityValue.clear(); - iE_Extensions.clear(); - - }; - private: - cellCapacityClassValue_t cellCapacityClassValue; - capacityValue_t capacityValue; - iE_Extensions_t iE_Extensions; - -}; -/* -CompositeAvailableCapacityGroup-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct CompositeAvailableCapacityGroup_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -CompositeAvailableCapacityGroup ::= SEQUENCE { - dL-CompositeAvailableCapacity CompositeAvailableCapacity, - uL-CompositeAvailableCapacity CompositeAvailableCapacity, - iE-Extensions ProtocolExtensionContainer { {CompositeAvailableCapacityGroup-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct CompositeAvailableCapacityGroup : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "CompositeAvailableCapacityGroup";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct dL_CompositeAvailableCapacity_t : CompositeAvailableCapacity - { - static constexpr const char* name() {return "dL_CompositeAvailableCapacity_t";} - using parent_t = CompositeAvailableCapacity; - - }; - dL_CompositeAvailableCapacity_t& ref_dL_CompositeAvailableCapacity() {return dL_CompositeAvailableCapacity;} - dL_CompositeAvailableCapacity_t const& ref_dL_CompositeAvailableCapacity() const {return dL_CompositeAvailableCapacity;} - struct uL_CompositeAvailableCapacity_t : CompositeAvailableCapacity - { - static constexpr const char* name() {return "uL_CompositeAvailableCapacity_t";} - using parent_t = CompositeAvailableCapacity; - - }; - uL_CompositeAvailableCapacity_t& ref_uL_CompositeAvailableCapacity() {return uL_CompositeAvailableCapacity;} - uL_CompositeAvailableCapacity_t const& ref_uL_CompositeAvailableCapacity() const {return uL_CompositeAvailableCapacity;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(dL_CompositeAvailableCapacity); - v(uL_CompositeAvailableCapacity); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(dL_CompositeAvailableCapacity); - v(uL_CompositeAvailableCapacity); - v(iE_Extensions); - - }; - void clear() - { - dL_CompositeAvailableCapacity.clear(); - uL_CompositeAvailableCapacity.clear(); - iE_Extensions.clear(); - - }; - private: - dL_CompositeAvailableCapacity_t dL_CompositeAvailableCapacity; - uL_CompositeAvailableCapacity_t uL_CompositeAvailableCapacity; - iE_Extensions_t iE_Extensions; - -}; -/* -Correlation-ID ::= OCTET STRING (SIZE (4)) -*/ - -struct Correlation_ID : asn::ostring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "Correlation-ID";} - using parent_t = asn::ostring<>; - -}; - -/* -CoverageModification-Item ::= SEQUENCE { - eCGI ECGI, - coverageState INTEGER (0..15, ...), - cellDeploymentStatusIndicator CellDeploymentStatusIndicator OPTIONAL, - cellReplacingInfo CellReplacingInfo OPTIONAL, --- Included in case the Cell Deployment Status Indicator IE is present - ... -} -*/ - -struct CoverageModification_Item : asn::sequence<4, 0, true, 2> -{ - static constexpr const char* name() {return "CoverageModification-Item";} - using parent_t = asn::sequence<4, 0, true, 2>; - struct eCGI_t : ECGI - { - static constexpr const char* name() {return "eCGI_t";} - using parent_t = ECGI; - - }; - eCGI_t& ref_eCGI() {return eCGI;} - eCGI_t const& ref_eCGI() const {return eCGI;} - struct coverageState_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "coverageState_t";} - using parent_t = asn::integer<>; - - }; - - coverageState_t& ref_coverageState() {return coverageState;} - coverageState_t const& ref_coverageState() const {return coverageState;} - struct cellDeploymentStatusIndicator_t : CellDeploymentStatusIndicator - { - static constexpr const char* name() {return "cellDeploymentStatusIndicator_t";} - using parent_t = CellDeploymentStatusIndicator; - static constexpr bool optional = true; - - }; - cellDeploymentStatusIndicator_t& set_cellDeploymentStatusIndicator() { cellDeploymentStatusIndicator.setpresent(true); return cellDeploymentStatusIndicator;} - cellDeploymentStatusIndicator_t const* get_cellDeploymentStatusIndicator() const {return cellDeploymentStatusIndicator.is_valid() ? &cellDeploymentStatusIndicator : nullptr;} - struct cellReplacingInfo_t : CellReplacingInfo - { - static constexpr const char* name() {return "cellReplacingInfo_t";} - using parent_t = CellReplacingInfo; - static constexpr bool optional = true; - - }; - cellReplacingInfo_t& set_cellReplacingInfo() { cellReplacingInfo.setpresent(true); return cellReplacingInfo;} - cellReplacingInfo_t const* get_cellReplacingInfo() const {return cellReplacingInfo.is_valid() ? &cellReplacingInfo : nullptr;} - template void decode(V& v) - { - v(eCGI); - v(coverageState); - v(cellDeploymentStatusIndicator); - v(cellReplacingInfo); - - }; - template void encode(V& v) const - { - v(eCGI); - v(coverageState); - v(cellDeploymentStatusIndicator); - v(cellReplacingInfo); - - }; - void clear() - { - eCGI.clear(); - coverageState.clear(); - cellDeploymentStatusIndicator.clear(); - cellReplacingInfo.clear(); - - }; - private: - eCGI_t eCGI; - coverageState_t coverageState; - cellDeploymentStatusIndicator_t cellDeploymentStatusIndicator; - cellReplacingInfo_t cellReplacingInfo; - -}; -/* -CoverageModificationList ::= SEQUENCE (SIZE (1..maxCellineNB)) OF CoverageModification-Item -*/ - -struct CoverageModificationList_elm : CoverageModification_Item -{ - static constexpr const char* name() {return "CoverageModificationList_elm";} - using parent_t = CoverageModification_Item; - -}; -struct CoverageModificationList : asn::sequenceof -{ - static constexpr const char* name() {return "CoverageModificationList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -TypeOfError ::= ENUMERATED { - not-understood, - missing, - ... -} -*/ - -struct TypeOfError : asn::enumerated<2, 0, true> -{ - static constexpr const char* name() {return "TypeOfError";} - using parent_t = asn::enumerated<2, 0, true>; - typedef enum { - not_understood - ,missing - } index_t; - -}; - -/* -CriticalityDiagnostics-IE-List-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct CriticalityDiagnostics_IE_List_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -CriticalityDiagnostics-IE-List ::= SEQUENCE (SIZE (1..maxNrOfErrors)) OF - SEQUENCE { - iECriticality Criticality, - iE-ID ProtocolIE-ID, - typeOfError TypeOfError, - iE-Extensions ProtocolExtensionContainer { {CriticalityDiagnostics-IE-List-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct CriticalityDiagnostics_IE_List_elm : asn::sequence<4, 0, true, 1> -{ - static constexpr const char* name() {return "CriticalityDiagnostics_IE_List_elm";} - using parent_t = asn::sequence<4, 0, true, 1>; - struct iECriticality_t : Criticality - { - static constexpr const char* name() {return "iECriticality_t";} - using parent_t = Criticality; - - }; - iECriticality_t& ref_iECriticality() {return iECriticality;} - iECriticality_t const& ref_iECriticality() const {return iECriticality;} - struct iE_ID_t : ProtocolIE_ID - { - static constexpr const char* name() {return "iE_ID_t";} - using parent_t = ProtocolIE_ID; - - }; - iE_ID_t& ref_iE_ID() {return iE_ID;} - iE_ID_t const& ref_iE_ID() const {return iE_ID;} - struct typeOfError_t : TypeOfError - { - static constexpr const char* name() {return "typeOfError_t";} - using parent_t = TypeOfError; - - }; - typeOfError_t& ref_typeOfError() {return typeOfError;} - typeOfError_t const& ref_typeOfError() const {return typeOfError;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(iECriticality); - v(iE_ID); - v(typeOfError); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(iECriticality); - v(iE_ID); - v(typeOfError); - v(iE_Extensions); - - }; - void clear() - { - iECriticality.clear(); - iE_ID.clear(); - typeOfError.clear(); - iE_Extensions.clear(); - - }; - private: - iECriticality_t iECriticality; - iE_ID_t iE_ID; - typeOfError_t typeOfError; - iE_Extensions_t iE_Extensions; - -}; -struct CriticalityDiagnostics_IE_List : asn::sequenceof -{ - static constexpr const char* name() {return "CriticalityDiagnostics-IE-List";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -CriticalityDiagnostics-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct CriticalityDiagnostics_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -CriticalityDiagnostics ::= SEQUENCE { - procedureCode ProcedureCode OPTIONAL, - triggeringMessage TriggeringMessage OPTIONAL, - procedureCriticality Criticality OPTIONAL, - iEsCriticalityDiagnostics CriticalityDiagnostics-IE-List OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {CriticalityDiagnostics-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct CriticalityDiagnostics : asn::sequence<5, 0, true, 5> -{ - static constexpr const char* name() {return "CriticalityDiagnostics";} - using parent_t = asn::sequence<5, 0, true, 5>; - struct procedureCode_t : ProcedureCode - { - static constexpr const char* name() {return "procedureCode_t";} - using parent_t = ProcedureCode; - static constexpr bool optional = true; - - }; - procedureCode_t& set_procedureCode() { procedureCode.setpresent(true); return procedureCode;} - procedureCode_t const* get_procedureCode() const {return procedureCode.is_valid() ? &procedureCode : nullptr;} - struct triggeringMessage_t : TriggeringMessage - { - static constexpr const char* name() {return "triggeringMessage_t";} - using parent_t = TriggeringMessage; - static constexpr bool optional = true; - - }; - triggeringMessage_t& set_triggeringMessage() { triggeringMessage.setpresent(true); return triggeringMessage;} - triggeringMessage_t const* get_triggeringMessage() const {return triggeringMessage.is_valid() ? &triggeringMessage : nullptr;} - struct procedureCriticality_t : Criticality - { - static constexpr const char* name() {return "procedureCriticality_t";} - using parent_t = Criticality; - static constexpr bool optional = true; - - }; - procedureCriticality_t& set_procedureCriticality() { procedureCriticality.setpresent(true); return procedureCriticality;} - procedureCriticality_t const* get_procedureCriticality() const {return procedureCriticality.is_valid() ? &procedureCriticality : nullptr;} - struct iEsCriticalityDiagnostics_t : CriticalityDiagnostics_IE_List - { - static constexpr const char* name() {return "iEsCriticalityDiagnostics_t";} - using parent_t = CriticalityDiagnostics_IE_List; - static constexpr bool optional = true; - - }; - iEsCriticalityDiagnostics_t& set_iEsCriticalityDiagnostics() { iEsCriticalityDiagnostics.setpresent(true); return iEsCriticalityDiagnostics;} - iEsCriticalityDiagnostics_t const* get_iEsCriticalityDiagnostics() const {return iEsCriticalityDiagnostics.is_valid() ? &iEsCriticalityDiagnostics : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(procedureCode); - v(triggeringMessage); - v(procedureCriticality); - v(iEsCriticalityDiagnostics); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(procedureCode); - v(triggeringMessage); - v(procedureCriticality); - v(iEsCriticalityDiagnostics); - v(iE_Extensions); - - }; - void clear() - { - procedureCode.clear(); - triggeringMessage.clear(); - procedureCriticality.clear(); - iEsCriticalityDiagnostics.clear(); - iE_Extensions.clear(); - - }; - private: - procedureCode_t procedureCode; - triggeringMessage_t triggeringMessage; - procedureCriticality_t procedureCriticality; - iEsCriticalityDiagnostics_t iEsCriticalityDiagnostics; - iE_Extensions_t iE_Extensions; - -}; -/* -DL-Forwarding ::= ENUMERATED { - dL-forwardingProposed, - ... -} -*/ - -struct DL_Forwarding : asn::enumerated<1, 0, true> -{ - static constexpr const char* name() {return "DL-Forwarding";} - using parent_t = asn::enumerated<1, 0, true>; - typedef enum { - dL_forwardingProposed - } index_t; - -}; - -/* -DL-GBR-PRB-usage::= INTEGER (0..100) -*/ - -struct DL_GBR_PRB_usage : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "DL-GBR-PRB-usage";} - using parent_t = asn::integer<>; - -}; - -/* -DL-Total-PRB-usage::= INTEGER (0..100) -*/ - -struct DL_Total_PRB_usage : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "DL-Total-PRB-usage";} - using parent_t = asn::integer<>; - -}; - -/* -DL-non-GBR-PRB-usage::= INTEGER (0..100) -*/ - -struct DL_non_GBR_PRB_usage : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "DL-non-GBR-PRB-usage";} - using parent_t = asn::integer<>; - -}; - -/* -DL-scheduling-PDCCH-CCE-usage::= INTEGER (0..100) -*/ - -struct DL_scheduling_PDCCH_CCE_usage : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "DL-scheduling-PDCCH-CCE-usage";} - using parent_t = asn::integer<>; - -}; - -/* -DataTrafficResources ::= BIT STRING (SIZE(6..17600)) -*/ - -struct DataTrafficResources : asn::bstring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "DataTrafficResources";} - using parent_t = asn::bstring<>; - -}; - -/* -DLResourceBitmapULandDLSharing ::= DataTrafficResources -*/ - -struct DLResourceBitmapULandDLSharing : DataTrafficResources -{ - static constexpr const char* name() {return "DLResourceBitmapULandDLSharing";} - using parent_t = DataTrafficResources; - -}; -/* -DLResourcesULandDLSharing ::= CHOICE { -unchanged NULL, - changed DLResourceBitmapULandDLSharing, - ... -} -*/ - -struct DLResourcesULandDLSharing : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "DLResourcesULandDLSharing";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~DLResourcesULandDLSharing() {clear();} - struct unchanged_t : asn::nulltype - { - static constexpr const char* name() {return "unchanged_t";} - using parent_t = asn::nulltype; - - }; - struct changed_t : DLResourceBitmapULandDLSharing - { - static constexpr const char* name() {return "changed_t";} - using parent_t = DLResourceBitmapULandDLSharing; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - unchanged_t& select_unchanged() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - unchanged_t const* get_unchanged() const { if(get_index() == 1) { return &var.as();} return nullptr; } - changed_t& select_changed() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - changed_t const* get_changed() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(unchanged_t)]; - char dummy2[sizeof(changed_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -DRB-ID ::= INTEGER (1..32) -*/ - -struct DRB_ID : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "DRB-ID";} - using parent_t = asn::integer<>; - -}; - -/* -ULOnlySharing-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct ULOnlySharing_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ULOnlySharing ::= SEQUENCE{ - uLResourceBitmapULOnlySharing DataTrafficResources, - iE-Extensions ProtocolExtensionContainer { {ULOnlySharing-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct ULOnlySharing : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "ULOnlySharing";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct uLResourceBitmapULOnlySharing_t : DataTrafficResources - { - static constexpr const char* name() {return "uLResourceBitmapULOnlySharing_t";} - using parent_t = DataTrafficResources; - - }; - uLResourceBitmapULOnlySharing_t& ref_uLResourceBitmapULOnlySharing() {return uLResourceBitmapULOnlySharing;} - uLResourceBitmapULOnlySharing_t const& ref_uLResourceBitmapULOnlySharing() const {return uLResourceBitmapULOnlySharing;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(uLResourceBitmapULOnlySharing); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(uLResourceBitmapULOnlySharing); - v(iE_Extensions); - - }; - void clear() - { - uLResourceBitmapULOnlySharing.clear(); - iE_Extensions.clear(); - - }; - private: - uLResourceBitmapULOnlySharing_t uLResourceBitmapULOnlySharing; - iE_Extensions_t iE_Extensions; - -}; -/* -ULResourceBitmapULandDLSharing ::= DataTrafficResources -*/ - -struct ULResourceBitmapULandDLSharing : DataTrafficResources -{ - static constexpr const char* name() {return "ULResourceBitmapULandDLSharing";} - using parent_t = DataTrafficResources; - -}; -/* -ULResourcesULandDLSharing ::= CHOICE { - unchanged NULL, - changed ULResourceBitmapULandDLSharing, - ... -} -*/ - -struct ULResourcesULandDLSharing : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "ULResourcesULandDLSharing";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~ULResourcesULandDLSharing() {clear();} - struct unchanged_t : asn::nulltype - { - static constexpr const char* name() {return "unchanged_t";} - using parent_t = asn::nulltype; - - }; - struct changed_t : ULResourceBitmapULandDLSharing - { - static constexpr const char* name() {return "changed_t";} - using parent_t = ULResourceBitmapULandDLSharing; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - unchanged_t& select_unchanged() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - unchanged_t const* get_unchanged() const { if(get_index() == 1) { return &var.as();} return nullptr; } - changed_t& select_changed() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - changed_t const* get_changed() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(unchanged_t)]; - char dummy2[sizeof(changed_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -ULandDLSharing-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct ULandDLSharing_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ULandDLSharing ::= SEQUENCE{ - uLResourcesULandDLSharing ULResourcesULandDLSharing, - dLResourcesULandDLSharing DLResourcesULandDLSharing, - iE-Extensions ProtocolExtensionContainer { {ULandDLSharing-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct ULandDLSharing : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "ULandDLSharing";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct uLResourcesULandDLSharing_t : ULResourcesULandDLSharing - { - static constexpr const char* name() {return "uLResourcesULandDLSharing_t";} - using parent_t = ULResourcesULandDLSharing; - - }; - uLResourcesULandDLSharing_t& ref_uLResourcesULandDLSharing() {return uLResourcesULandDLSharing;} - uLResourcesULandDLSharing_t const& ref_uLResourcesULandDLSharing() const {return uLResourcesULandDLSharing;} - struct dLResourcesULandDLSharing_t : DLResourcesULandDLSharing - { - static constexpr const char* name() {return "dLResourcesULandDLSharing_t";} - using parent_t = DLResourcesULandDLSharing; - - }; - dLResourcesULandDLSharing_t& ref_dLResourcesULandDLSharing() {return dLResourcesULandDLSharing;} - dLResourcesULandDLSharing_t const& ref_dLResourcesULandDLSharing() const {return dLResourcesULandDLSharing;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(uLResourcesULandDLSharing); - v(dLResourcesULandDLSharing); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(uLResourcesULandDLSharing); - v(dLResourcesULandDLSharing); - v(iE_Extensions); - - }; - void clear() - { - uLResourcesULandDLSharing.clear(); - dLResourcesULandDLSharing.clear(); - iE_Extensions.clear(); - - }; - private: - uLResourcesULandDLSharing_t uLResourcesULandDLSharing; - dLResourcesULandDLSharing_t dLResourcesULandDLSharing; - iE_Extensions_t iE_Extensions; - -}; -/* -SharedResourceType ::= CHOICE{ - uLOnlySharing ULOnlySharing, - uLandDLSharing ULandDLSharing, - ... -} -*/ - -struct SharedResourceType : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "SharedResourceType";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~SharedResourceType() {clear();} - struct uLOnlySharing_t : ULOnlySharing - { - static constexpr const char* name() {return "uLOnlySharing_t";} - using parent_t = ULOnlySharing; - - }; - struct uLandDLSharing_t : ULandDLSharing - { - static constexpr const char* name() {return "uLandDLSharing_t";} - using parent_t = ULandDLSharing; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - uLOnlySharing_t& select_uLOnlySharing() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - uLOnlySharing_t const* get_uLOnlySharing() const { if(get_index() == 1) { return &var.as();} return nullptr; } - uLandDLSharing_t& select_uLandDLSharing() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - uLandDLSharing_t const* get_uLandDLSharing() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(uLOnlySharing_t)]; - char dummy2[sizeof(uLandDLSharing_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -SubframeType ::= ENUMERATED{mbsfn,nonmbsfn,...} -*/ - -struct SubframeType : asn::enumerated<2, 0, true> -{ - static constexpr const char* name() {return "SubframeType";} - using parent_t = asn::enumerated<2, 0, true>; - typedef enum { - mbsfn - ,nonmbsfn - } index_t; - -}; - -/* -ReservedSubframePattern-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct ReservedSubframePattern_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ReservedSubframePattern ::= SEQUENCE{ - subframeType SubframeType, - reservedSubframePattern BIT STRING (SIZE(10..160)), - mBSFNControlRegionLength INTEGER (0..3), - iE-Extensions ProtocolExtensionContainer { {ReservedSubframePattern-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct ReservedSubframePattern : asn::sequence<4, 0, true, 1> -{ - static constexpr const char* name() {return "ReservedSubframePattern";} - using parent_t = asn::sequence<4, 0, true, 1>; - struct subframeType_t : SubframeType - { - static constexpr const char* name() {return "subframeType_t";} - using parent_t = SubframeType; - - }; - subframeType_t& ref_subframeType() {return subframeType;} - subframeType_t const& ref_subframeType() const {return subframeType;} - struct reservedSubframePattern_t : asn::bstring<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "reservedSubframePattern_t";} - using parent_t = asn::bstring<>; - - }; - - reservedSubframePattern_t& ref_reservedSubframePattern() {return reservedSubframePattern;} - reservedSubframePattern_t const& ref_reservedSubframePattern() const {return reservedSubframePattern;} - struct mBSFNControlRegionLength_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "mBSFNControlRegionLength_t";} - using parent_t = asn::integer<>; - - }; - - mBSFNControlRegionLength_t& ref_mBSFNControlRegionLength() {return mBSFNControlRegionLength;} - mBSFNControlRegionLength_t const& ref_mBSFNControlRegionLength() const {return mBSFNControlRegionLength;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(subframeType); - v(reservedSubframePattern); - v(mBSFNControlRegionLength); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(subframeType); - v(reservedSubframePattern); - v(mBSFNControlRegionLength); - v(iE_Extensions); - - }; - void clear() - { - subframeType.clear(); - reservedSubframePattern.clear(); - mBSFNControlRegionLength.clear(); - iE_Extensions.clear(); - - }; - private: - subframeType_t subframeType; - reservedSubframePattern_t reservedSubframePattern; - mBSFNControlRegionLength_t mBSFNControlRegionLength; - iE_Extensions_t iE_Extensions; - -}; -/* -DataTrafficResourceIndication-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct DataTrafficResourceIndication_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -DataTrafficResourceIndication ::= SEQUENCE { - activationSFN INTEGER (0..1023), - sharedResourceType SharedResourceType, - reservedSubframePattern ReservedSubframePattern OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {DataTrafficResourceIndication-ExtIEs} } OPTIONAL, -... -} -*/ - -struct DataTrafficResourceIndication : asn::sequence<4, 0, true, 2> -{ - static constexpr const char* name() {return "DataTrafficResourceIndication";} - using parent_t = asn::sequence<4, 0, true, 2>; - struct activationSFN_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "activationSFN_t";} - using parent_t = asn::integer<>; - - }; - - activationSFN_t& ref_activationSFN() {return activationSFN;} - activationSFN_t const& ref_activationSFN() const {return activationSFN;} - struct sharedResourceType_t : SharedResourceType - { - static constexpr const char* name() {return "sharedResourceType_t";} - using parent_t = SharedResourceType; - - }; - sharedResourceType_t& ref_sharedResourceType() {return sharedResourceType;} - sharedResourceType_t const& ref_sharedResourceType() const {return sharedResourceType;} - struct reservedSubframePattern_t : ReservedSubframePattern - { - static constexpr const char* name() {return "reservedSubframePattern_t";} - using parent_t = ReservedSubframePattern; - static constexpr bool optional = true; - - }; - reservedSubframePattern_t& set_reservedSubframePattern() { reservedSubframePattern.setpresent(true); return reservedSubframePattern;} - reservedSubframePattern_t const* get_reservedSubframePattern() const {return reservedSubframePattern.is_valid() ? &reservedSubframePattern : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(activationSFN); - v(sharedResourceType); - v(reservedSubframePattern); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(activationSFN); - v(sharedResourceType); - v(reservedSubframePattern); - v(iE_Extensions); - - }; - void clear() - { - activationSFN.clear(); - sharedResourceType.clear(); - reservedSubframePattern.clear(); - iE_Extensions.clear(); - - }; - private: - activationSFN_t activationSFN; - sharedResourceType_t sharedResourceType; - reservedSubframePattern_t reservedSubframePattern; - iE_Extensions_t iE_Extensions; - -}; -/* -DeactivationIndication::= ENUMERATED { - deactivated, - ... -} -*/ - -struct DeactivationIndication : asn::enumerated<1, 0, true> -{ - static constexpr const char* name() {return "DeactivationIndication";} - using parent_t = asn::enumerated<1, 0, true>; - typedef enum { - deactivated - } index_t; - -}; - -/* -DeliveryStatus-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct DeliveryStatus_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -DeliveryStatus ::= SEQUENCE { - highestSuccessDeliveredPDCPSN INTEGER (0..4095), - iE-Extensions ProtocolExtensionContainer { {DeliveryStatus-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct DeliveryStatus : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "DeliveryStatus";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct highestSuccessDeliveredPDCPSN_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "highestSuccessDeliveredPDCPSN_t";} - using parent_t = asn::integer<>; - - }; - - highestSuccessDeliveredPDCPSN_t& ref_highestSuccessDeliveredPDCPSN() {return highestSuccessDeliveredPDCPSN;} - highestSuccessDeliveredPDCPSN_t const& ref_highestSuccessDeliveredPDCPSN() const {return highestSuccessDeliveredPDCPSN;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(highestSuccessDeliveredPDCPSN); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(highestSuccessDeliveredPDCPSN); - v(iE_Extensions); - - }; - void clear() - { - highestSuccessDeliveredPDCPSN.clear(); - iE_Extensions.clear(); - - }; - private: - highestSuccessDeliveredPDCPSN_t highestSuccessDeliveredPDCPSN; - iE_Extensions_t iE_Extensions; - -}; -/* -DuplicationActivation::= ENUMERATED {active, inactive, ...} -*/ - -struct DuplicationActivation : asn::enumerated<2, 0, true> -{ - static constexpr const char* name() {return "DuplicationActivation";} - using parent_t = asn::enumerated<2, 0, true>; - typedef enum { - active - ,inactive - } index_t; - -}; - -/* -PA-Values ::= ENUMERATED { - dB-6, - dB-4dot77, - dB-3, - dB-1dot77, - dB0, - dB1, - dB2, - dB3, - ... -} -*/ - -struct PA_Values : asn::enumerated<8, 0, true> -{ - static constexpr const char* name() {return "PA-Values";} - using parent_t = asn::enumerated<8, 0, true>; - typedef enum { - dB_6 - ,dB_4dot77 - ,dB_3 - ,dB_1dot77 - ,dB0 - ,dB1 - ,dB2 - ,dB3 - } index_t; - -}; - -/* -DynamicNAICSInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct DynamicNAICSInformation_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -DynamicNAICSInformation ::= SEQUENCE { - transmissionModes BIT STRING (SIZE(8)) OPTIONAL, - pB-information INTEGER(0..3) OPTIONAL, - pA-list SEQUENCE (SIZE(0..maxnoofPA)) OF PA-Values, - iE-Extensions ProtocolExtensionContainer { {DynamicNAICSInformation-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct DynamicNAICSInformation : asn::sequence<4, 0, true, 3> -{ - static constexpr const char* name() {return "DynamicNAICSInformation";} - using parent_t = asn::sequence<4, 0, true, 3>; - struct transmissionModes_t : asn::bstring<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "transmissionModes_t";} - using parent_t = asn::bstring<>; - static constexpr bool optional = true; - - }; - - transmissionModes_t& set_transmissionModes() { transmissionModes.setpresent(true); return transmissionModes;} - transmissionModes_t const* get_transmissionModes() const {return transmissionModes.is_valid() ? &transmissionModes : nullptr;} - struct pB_information_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "pB_information_t";} - using parent_t = asn::integer<>; - static constexpr bool optional = true; - - }; - - pB_information_t& set_pB_information() { pB_information.setpresent(true); return pB_information;} - pB_information_t const* get_pB_information() const {return pB_information.is_valid() ? &pB_information : nullptr;} - struct pA_list_t_elm : PA_Values - { - static constexpr const char* name() {return "pA_list_t_elm";} - using parent_t = PA_Values; - - }; - struct pA_list_t : asn::sequenceof - { - static constexpr const char* name() {return "pA_list_t";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - - }; - pA_list_t& ref_pA_list() {return pA_list;} - pA_list_t const& ref_pA_list() const {return pA_list;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(transmissionModes); - v(pB_information); - v(pA_list); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(transmissionModes); - v(pB_information); - v(pA_list); - v(iE_Extensions); - - }; - void clear() - { - transmissionModes.clear(); - pB_information.clear(); - pA_list.clear(); - iE_Extensions.clear(); - - }; - private: - transmissionModes_t transmissionModes; - pB_information_t pB_information; - pA_list_t pA_list; - iE_Extensions_t iE_Extensions; - -}; -/* -DynamicDLTransmissionInformation ::= CHOICE { - naics-active DynamicNAICSInformation, - naics-inactive NULL, - ... -} -*/ - -struct DynamicDLTransmissionInformation : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "DynamicDLTransmissionInformation";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~DynamicDLTransmissionInformation() {clear();} - struct naics_active_t : DynamicNAICSInformation - { - static constexpr const char* name() {return "naics_active_t";} - using parent_t = DynamicNAICSInformation; - - }; - struct naics_inactive_t : asn::nulltype - { - static constexpr const char* name() {return "naics_inactive_t";} - using parent_t = asn::nulltype; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - naics_active_t& select_naics_active() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - naics_active_t const* get_naics_active() const { if(get_index() == 1) { return &var.as();} return nullptr; } - naics_inactive_t& select_naics_inactive() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - naics_inactive_t const* get_naics_inactive() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(naics_active_t)]; - char dummy2[sizeof(naics_inactive_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -E-RAB-ID ::= INTEGER (0..15, ...) -*/ - -struct E_RAB_ID : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "E-RAB-ID";} - using parent_t = asn::integer<>; - -}; - -/* -E-RAB-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RAB_Item_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RAB-Item ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - cause Cause, - iE-Extensions ProtocolExtensionContainer { {E-RAB-Item-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RAB_Item : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "E-RAB-Item";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct cause_t : Cause - { - static constexpr const char* name() {return "cause_t";} - using parent_t = Cause; - - }; - cause_t& ref_cause() {return cause;} - cause_t const& ref_cause() const {return cause;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(cause); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(cause); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - cause.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - cause_t cause; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RAB-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RAB-Item CRITICALITY ignore TYPE E-RAB-Item PRESENCE mandatory }, - ... -} -*/ - -struct E_RAB_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RAB_Item() { set(id_E_RAB_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RAB_Item)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RAB_Item);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RAB_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RAB_Item& select_id_E_RAB_Item() { return set(1); } - E_RAB_Item const* get_id_E_RAB_Item() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RAB_Item()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RAB_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RAB_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -QCI ::= INTEGER (0..255) -*/ - -struct QCI : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "QCI";} - using parent_t = asn::integer<>; - -}; - -/* -ExtendedBitRate ::= INTEGER (10000000001..4000000000000,...) -*/ - -struct ExtendedBitRate : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "ExtendedBitRate";} - using parent_t = asn::integer<>; - -}; - -/* -GBR-QosInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { --- Extension for maximum bitrate > 10Gbps -- - { ID id-extended-e-RAB-MaximumBitrateDL CRITICALITY ignore EXTENSION ExtendedBitRate PRESENCE optional}| - { ID id-extended-e-RAB-MaximumBitrateUL CRITICALITY ignore EXTENSION ExtendedBitRate PRESENCE optional}| - { ID id-extended-e-RAB-GuaranteedBitrateDL CRITICALITY ignore EXTENSION ExtendedBitRate PRESENCE optional}| - { ID id-extended-e-RAB-GuaranteedBitrateUL CRITICALITY ignore EXTENSION ExtendedBitRate PRESENCE optional}, - ... -} -*/ - -struct GBR_QosInformation_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_extended_e_RAB_MaximumBitrateDL() { set(id_extended_e_RAB_MaximumBitrateDL); type=1;} - void select_id_extended_e_RAB_MaximumBitrateUL() { set(id_extended_e_RAB_MaximumBitrateUL); type=2;} - void select_id_extended_e_RAB_GuaranteedBitrateDL() { set(id_extended_e_RAB_GuaranteedBitrateDL); type=3;} - void select_id_extended_e_RAB_GuaranteedBitrateUL() { set(id_extended_e_RAB_GuaranteedBitrateUL); type=4;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_extended_e_RAB_MaximumBitrateDL)) { type = 1; return true; } - else if(equal(id_extended_e_RAB_MaximumBitrateUL)) { type = 2; return true; } - else if(equal(id_extended_e_RAB_GuaranteedBitrateDL)) { type = 3; return true; } - else if(equal(id_extended_e_RAB_GuaranteedBitrateUL)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_extended_e_RAB_MaximumBitrateDL);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_extended_e_RAB_MaximumBitrateUL);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_extended_e_RAB_GuaranteedBitrateDL);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_extended_e_RAB_GuaranteedBitrateUL);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_extended_e_RAB_MaximumBitrateDL() { set(ignore); type=1;} - void select_id_extended_e_RAB_MaximumBitrateUL() { set(ignore); type=2;} - void select_id_extended_e_RAB_GuaranteedBitrateDL() { set(ignore); type=3;} - void select_id_extended_e_RAB_GuaranteedBitrateUL() { set(ignore); type=4;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - ExtendedBitRate& select_id_extended_e_RAB_MaximumBitrateDL() { return set(1); } - ExtendedBitRate const* get_id_extended_e_RAB_MaximumBitrateDL() const { return get(1); } - ExtendedBitRate& select_id_extended_e_RAB_MaximumBitrateUL() { return set(2); } - ExtendedBitRate const* get_id_extended_e_RAB_MaximumBitrateUL() const { return get(2); } - ExtendedBitRate& select_id_extended_e_RAB_GuaranteedBitrateDL() { return set(3); } - ExtendedBitRate const* get_id_extended_e_RAB_GuaranteedBitrateDL() const { return get(3); } - ExtendedBitRate& select_id_extended_e_RAB_GuaranteedBitrateUL() { return set(4); } - ExtendedBitRate const* get_id_extended_e_RAB_GuaranteedBitrateUL() const { return get(4); } - bool is_unknown() const { return type == 5; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_extended_e_RAB_MaximumBitrateDL()); return true; - case 2: v(select_id_extended_e_RAB_MaximumBitrateUL()); return true; - case 3: v(select_id_extended_e_RAB_GuaranteedBitrateDL()); return true; - case 4: v(select_id_extended_e_RAB_GuaranteedBitrateUL()); return true; - case 5: if(type != 5) {clear(); asn::base::set();} type = 5; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(ExtendedBitRate)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_extended_e_RAB_MaximumBitrateDL() { set(optional); type=1;} - void select_id_extended_e_RAB_MaximumBitrateUL() { set(optional); type=2;} - void select_id_extended_e_RAB_GuaranteedBitrateDL() { set(optional); type=3;} - void select_id_extended_e_RAB_GuaranteedBitrateUL() { set(optional); type=4;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -GBR-QosInformation ::= SEQUENCE { - e-RAB-MaximumBitrateDL BitRate, - e-RAB-MaximumBitrateUL BitRate, - e-RAB-GuaranteedBitrateDL BitRate, - e-RAB-GuaranteedBitrateUL BitRate, - iE-Extensions ProtocolExtensionContainer { {GBR-QosInformation-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct GBR_QosInformation : asn::sequence<5, 0, true, 1> -{ - static constexpr const char* name() {return "GBR-QosInformation";} - using parent_t = asn::sequence<5, 0, true, 1>; - struct e_RAB_MaximumBitrateDL_t : BitRate - { - static constexpr const char* name() {return "e_RAB_MaximumBitrateDL_t";} - using parent_t = BitRate; - - }; - e_RAB_MaximumBitrateDL_t& ref_e_RAB_MaximumBitrateDL() {return e_RAB_MaximumBitrateDL;} - e_RAB_MaximumBitrateDL_t const& ref_e_RAB_MaximumBitrateDL() const {return e_RAB_MaximumBitrateDL;} - struct e_RAB_MaximumBitrateUL_t : BitRate - { - static constexpr const char* name() {return "e_RAB_MaximumBitrateUL_t";} - using parent_t = BitRate; - - }; - e_RAB_MaximumBitrateUL_t& ref_e_RAB_MaximumBitrateUL() {return e_RAB_MaximumBitrateUL;} - e_RAB_MaximumBitrateUL_t const& ref_e_RAB_MaximumBitrateUL() const {return e_RAB_MaximumBitrateUL;} - struct e_RAB_GuaranteedBitrateDL_t : BitRate - { - static constexpr const char* name() {return "e_RAB_GuaranteedBitrateDL_t";} - using parent_t = BitRate; - - }; - e_RAB_GuaranteedBitrateDL_t& ref_e_RAB_GuaranteedBitrateDL() {return e_RAB_GuaranteedBitrateDL;} - e_RAB_GuaranteedBitrateDL_t const& ref_e_RAB_GuaranteedBitrateDL() const {return e_RAB_GuaranteedBitrateDL;} - struct e_RAB_GuaranteedBitrateUL_t : BitRate - { - static constexpr const char* name() {return "e_RAB_GuaranteedBitrateUL_t";} - using parent_t = BitRate; - - }; - e_RAB_GuaranteedBitrateUL_t& ref_e_RAB_GuaranteedBitrateUL() {return e_RAB_GuaranteedBitrateUL;} - e_RAB_GuaranteedBitrateUL_t const& ref_e_RAB_GuaranteedBitrateUL() const {return e_RAB_GuaranteedBitrateUL;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_MaximumBitrateDL); - v(e_RAB_MaximumBitrateUL); - v(e_RAB_GuaranteedBitrateDL); - v(e_RAB_GuaranteedBitrateUL); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_MaximumBitrateDL); - v(e_RAB_MaximumBitrateUL); - v(e_RAB_GuaranteedBitrateDL); - v(e_RAB_GuaranteedBitrateUL); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_MaximumBitrateDL.clear(); - e_RAB_MaximumBitrateUL.clear(); - e_RAB_GuaranteedBitrateDL.clear(); - e_RAB_GuaranteedBitrateUL.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_MaximumBitrateDL_t e_RAB_MaximumBitrateDL; - e_RAB_MaximumBitrateUL_t e_RAB_MaximumBitrateUL; - e_RAB_GuaranteedBitrateDL_t e_RAB_GuaranteedBitrateDL; - e_RAB_GuaranteedBitrateUL_t e_RAB_GuaranteedBitrateUL; - iE_Extensions_t iE_Extensions; - -}; -/* -Packet-LossRate ::= INTEGER(0..1000) -*/ - -struct Packet_LossRate : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "Packet-LossRate";} - using parent_t = asn::integer<>; - -}; - -/* -E-RAB-Level-QoS-Parameters-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { --- Extended for introduction of downlink and uplink packet loss rate for enhanced Voice performance – - { ID id-DownlinkPacketLossRate CRITICALITY ignore EXTENSION Packet-LossRate PRESENCE optional}| - { ID id-UplinkPacketLossRate CRITICALITY ignore EXTENSION Packet-LossRate PRESENCE optional}, - ... -} -*/ - -struct E_RAB_Level_QoS_Parameters_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_DownlinkPacketLossRate() { set(id_DownlinkPacketLossRate); type=1;} - void select_id_UplinkPacketLossRate() { set(id_UplinkPacketLossRate); type=2;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_DownlinkPacketLossRate)) { type = 1; return true; } - else if(equal(id_UplinkPacketLossRate)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_DownlinkPacketLossRate);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_UplinkPacketLossRate);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_DownlinkPacketLossRate() { set(ignore); type=1;} - void select_id_UplinkPacketLossRate() { set(ignore); type=2;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - Packet_LossRate& select_id_DownlinkPacketLossRate() { return set(1); } - Packet_LossRate const* get_id_DownlinkPacketLossRate() const { return get(1); } - Packet_LossRate& select_id_UplinkPacketLossRate() { return set(2); } - Packet_LossRate const* get_id_UplinkPacketLossRate() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_DownlinkPacketLossRate()); return true; - case 2: v(select_id_UplinkPacketLossRate()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Packet_LossRate)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_DownlinkPacketLossRate() { set(optional); type=1;} - void select_id_UplinkPacketLossRate() { set(optional); type=2;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RAB-Level-QoS-Parameters ::= SEQUENCE { - qCI QCI, - allocationAndRetentionPriority AllocationAndRetentionPriority, - gbrQosInformation GBR-QosInformation OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {E-RAB-Level-QoS-Parameters-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RAB_Level_QoS_Parameters : asn::sequence<4, 0, true, 2> -{ - static constexpr const char* name() {return "E-RAB-Level-QoS-Parameters";} - using parent_t = asn::sequence<4, 0, true, 2>; - struct qCI_t : QCI - { - static constexpr const char* name() {return "qCI_t";} - using parent_t = QCI; - - }; - qCI_t& ref_qCI() {return qCI;} - qCI_t const& ref_qCI() const {return qCI;} - struct allocationAndRetentionPriority_t : AllocationAndRetentionPriority - { - static constexpr const char* name() {return "allocationAndRetentionPriority_t";} - using parent_t = AllocationAndRetentionPriority; - - }; - allocationAndRetentionPriority_t& ref_allocationAndRetentionPriority() {return allocationAndRetentionPriority;} - allocationAndRetentionPriority_t const& ref_allocationAndRetentionPriority() const {return allocationAndRetentionPriority;} - struct gbrQosInformation_t : GBR_QosInformation - { - static constexpr const char* name() {return "gbrQosInformation_t";} - using parent_t = GBR_QosInformation; - static constexpr bool optional = true; - - }; - gbrQosInformation_t& set_gbrQosInformation() { gbrQosInformation.setpresent(true); return gbrQosInformation;} - gbrQosInformation_t const* get_gbrQosInformation() const {return gbrQosInformation.is_valid() ? &gbrQosInformation : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(qCI); - v(allocationAndRetentionPriority); - v(gbrQosInformation); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(qCI); - v(allocationAndRetentionPriority); - v(gbrQosInformation); - v(iE_Extensions); - - }; - void clear() - { - qCI.clear(); - allocationAndRetentionPriority.clear(); - gbrQosInformation.clear(); - iE_Extensions.clear(); - - }; - private: - qCI_t qCI; - allocationAndRetentionPriority_t allocationAndRetentionPriority; - gbrQosInformation_t gbrQosInformation; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RAB-List ::= SEQUENCE (SIZE(1.. maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RAB-ItemIEs} } -*/ - -struct E_RAB_List_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RAB_List_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RAB_List : asn::sequenceof -{ - static constexpr const char* name() {return "E-RAB-List";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABUsageReport-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABUsageReport_Item_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABUsageReport-Item ::= SEQUENCE { - startTimeStamp OCTET STRING (SIZE(4)), - endTimeStamp OCTET STRING (SIZE(4)), - usageCountUL INTEGER (0..4294967295), - usageCountDL INTEGER (0..4294967295), - iE-Extensions ProtocolExtensionContainer { {E-RABUsageReport-Item-ExtIEs} } OPTIONAL, -... -} -*/ - -struct E_RABUsageReport_Item : asn::sequence<5, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABUsageReport-Item";} - using parent_t = asn::sequence<5, 0, true, 1>; - struct startTimeStamp_t : asn::ostring<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "startTimeStamp_t";} - using parent_t = asn::ostring<>; - - }; - - startTimeStamp_t& ref_startTimeStamp() {return startTimeStamp;} - startTimeStamp_t const& ref_startTimeStamp() const {return startTimeStamp;} - struct endTimeStamp_t : asn::ostring<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "endTimeStamp_t";} - using parent_t = asn::ostring<>; - - }; - - endTimeStamp_t& ref_endTimeStamp() {return endTimeStamp;} - endTimeStamp_t const& ref_endTimeStamp() const {return endTimeStamp;} - struct usageCountUL_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "usageCountUL_t";} - using parent_t = asn::integer<>; - - }; - - usageCountUL_t& ref_usageCountUL() {return usageCountUL;} - usageCountUL_t const& ref_usageCountUL() const {return usageCountUL;} - struct usageCountDL_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "usageCountDL_t";} - using parent_t = asn::integer<>; - - }; - - usageCountDL_t& ref_usageCountDL() {return usageCountDL;} - usageCountDL_t const& ref_usageCountDL() const {return usageCountDL;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(startTimeStamp); - v(endTimeStamp); - v(usageCountUL); - v(usageCountDL); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(startTimeStamp); - v(endTimeStamp); - v(usageCountUL); - v(usageCountDL); - v(iE_Extensions); - - }; - void clear() - { - startTimeStamp.clear(); - endTimeStamp.clear(); - usageCountUL.clear(); - usageCountDL.clear(); - iE_Extensions.clear(); - - }; - private: - startTimeStamp_t startTimeStamp; - endTimeStamp_t endTimeStamp; - usageCountUL_t usageCountUL; - usageCountDL_t usageCountDL; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABUsageReport-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABUsageReport-Item CRITICALITY ignore TYPE E-RABUsageReport-Item PRESENCE mandatory }, - ... -} -*/ - -struct E_RABUsageReport_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABUsageReport_Item() { set(id_E_RABUsageReport_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABUsageReport_Item)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABUsageReport_Item);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABUsageReport_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABUsageReport_Item& select_id_E_RABUsageReport_Item() { return set(1); } - E_RABUsageReport_Item const* get_id_E_RABUsageReport_Item() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABUsageReport_Item()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABUsageReport_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABUsageReport_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABUsageReportList ::= SEQUENCE (SIZE(1..maxnooftimeperiods)) OF ProtocolIE-Single-Container { {E-RABUsageReport-ItemIEs} } -*/ - -struct E_RABUsageReportList_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABUsageReportList_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABUsageReportList : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABUsageReportList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -EARFCN ::= INTEGER (0..maxEARFCN) -*/ - -struct EARFCN : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "EARFCN";} - using parent_t = asn::integer<>; - -}; - -/* -EARFCNExtension ::= INTEGER(maxEARFCNPlusOne..newmaxEARFCN, ...) -*/ - -struct EARFCNExtension : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "EARFCNExtension";} - using parent_t = asn::integer<>; - -}; - -/* -EN-DC-ResourceConfigurationExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct EN_DC_ResourceConfigurationExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -EN-DC-ResourceConfiguration ::= SEQUENCE { - pDCPatSgNB ENUMERATED {present, not-present, ...}, - mCGresources ENUMERATED {present, not-present, ...}, - sCGresources ENUMERATED {present, not-present, ...}, - iE-Extensions ProtocolExtensionContainer { {EN-DC-ResourceConfigurationExtIEs} } OPTIONAL, - ... -} -*/ - -struct EN_DC_ResourceConfiguration : asn::sequence<4, 0, true, 1> -{ - static constexpr const char* name() {return "EN-DC-ResourceConfiguration";} - using parent_t = asn::sequence<4, 0, true, 1>; - struct pDCPatSgNB_t : asn::enumerated<2, 0, true> - { - static constexpr const char* name() {return "pDCPatSgNB_t";} - using parent_t = asn::enumerated<2, 0, true>; - typedef enum { - present - ,not_present - } index_t; - - }; - - pDCPatSgNB_t& ref_pDCPatSgNB() {return pDCPatSgNB;} - pDCPatSgNB_t const& ref_pDCPatSgNB() const {return pDCPatSgNB;} - struct mCGresources_t : asn::enumerated<2, 0, true> - { - static constexpr const char* name() {return "mCGresources_t";} - using parent_t = asn::enumerated<2, 0, true>; - typedef enum { - present - ,not_present - } index_t; - - }; - - mCGresources_t& ref_mCGresources() {return mCGresources;} - mCGresources_t const& ref_mCGresources() const {return mCGresources;} - struct sCGresources_t : asn::enumerated<2, 0, true> - { - static constexpr const char* name() {return "sCGresources_t";} - using parent_t = asn::enumerated<2, 0, true>; - typedef enum { - present - ,not_present - } index_t; - - }; - - sCGresources_t& ref_sCGresources() {return sCGresources;} - sCGresources_t const& ref_sCGresources() const {return sCGresources;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(pDCPatSgNB); - v(mCGresources); - v(sCGresources); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(pDCPatSgNB); - v(mCGresources); - v(sCGresources); - v(iE_Extensions); - - }; - void clear() - { - pDCPatSgNB.clear(); - mCGresources.clear(); - sCGresources.clear(); - iE_Extensions.clear(); - - }; - private: - pDCPatSgNB_t pDCPatSgNB; - mCGresources_t mCGresources; - sCGresources_t sCGresources; - iE_Extensions_t iE_Extensions; - -}; -/* -ENB-ID ::= CHOICE { - macro-eNB-ID BIT STRING (SIZE (20)), - home-eNB-ID BIT STRING (SIZE (28)), - ... , - short-Macro-eNB-ID BIT STRING (SIZE(18)), - long-Macro-eNB-ID BIT STRING (SIZE(21)) -} -*/ - -struct ENB_ID : asn::choice<4, 2, true> -{ - static constexpr const char* name() {return "ENB-ID";} - using parent_t = asn::choice<4, 2, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 5;} - void set_unknown() { set_index(5); } - ~ENB_ID() {clear();} - struct macro_eNB_ID_t : asn::bstring<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "macro_eNB_ID_t";} - using parent_t = asn::bstring<>; - - }; - - struct home_eNB_ID_t : asn::bstring<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "home_eNB_ID_t";} - using parent_t = asn::bstring<>; - - }; - - struct short_Macro_eNB_ID_t : asn::bstring<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "short_Macro_eNB_ID_t";} - using parent_t = asn::bstring<>; - - }; - - struct long_Macro_eNB_ID_t : asn::bstring<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "long_Macro_eNB_ID_t";} - using parent_t = asn::bstring<>; - - }; - - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - case 3: set_index(3); return v(var.build()); - case 4: set_index(4); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - case 3: return v(var.as()); - case 4: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - - } - macro_eNB_ID_t& select_macro_eNB_ID() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - macro_eNB_ID_t const* get_macro_eNB_ID() const { if(get_index() == 1) { return &var.as();} return nullptr; } - home_eNB_ID_t& select_home_eNB_ID() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - home_eNB_ID_t const* get_home_eNB_ID() const { if(get_index() == 2) { return &var.as();} return nullptr; } - short_Macro_eNB_ID_t& select_short_Macro_eNB_ID() { if(get_index() != 3) { clear(); set_index(3); return var.build();} return var.as();} - short_Macro_eNB_ID_t const* get_short_Macro_eNB_ID() const { if(get_index() == 3) { return &var.as();} return nullptr; } - long_Macro_eNB_ID_t& select_long_Macro_eNB_ID() { if(get_index() != 4) { clear(); set_index(4); return var.build();} return var.as();} - long_Macro_eNB_ID_t const* get_long_Macro_eNB_ID() const { if(get_index() == 4) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(macro_eNB_ID_t)]; - char dummy2[sizeof(home_eNB_ID_t)]; - char dummy3[sizeof(short_Macro_eNB_ID_t)]; - char dummy4[sizeof(long_Macro_eNB_ID_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -EPLMNs ::= SEQUENCE (SIZE(1..maxnoofEPLMNs)) OF PLMN-Identity -*/ - -struct EPLMNs_elm : PLMN_Identity -{ - static constexpr const char* name() {return "EPLMNs_elm";} - using parent_t = PLMN_Identity; - -}; -struct EPLMNs : asn::sequenceof -{ - static constexpr const char* name() {return "EPLMNs";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -UserPlaneTrafficActivityReport ::= ENUMERATED {inactive, re-activated, ...} -*/ - -struct UserPlaneTrafficActivityReport : asn::enumerated<2, 0, true> -{ - static constexpr const char* name() {return "UserPlaneTrafficActivityReport";} - using parent_t = asn::enumerated<2, 0, true>; - typedef enum { - inactive - ,re_activated - } index_t; - -}; - -/* -ERABActivityNotifyItem-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct ERABActivityNotifyItem_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ERABActivityNotifyItem ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - activityReport UserPlaneTrafficActivityReport, - iE-Extensions ProtocolExtensionContainer { {ERABActivityNotifyItem-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct ERABActivityNotifyItem : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "ERABActivityNotifyItem";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct activityReport_t : UserPlaneTrafficActivityReport - { - static constexpr const char* name() {return "activityReport_t";} - using parent_t = UserPlaneTrafficActivityReport; - - }; - activityReport_t& ref_activityReport() {return activityReport;} - activityReport_t const& ref_activityReport() const {return activityReport;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(activityReport); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(activityReport); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - activityReport.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - activityReport_t activityReport; - iE_Extensions_t iE_Extensions; - -}; -/* -ERABActivityNotifyItemList ::= SEQUENCE (SIZE (0..maxnoofBearers)) OF ERABActivityNotifyItem -*/ - -struct ERABActivityNotifyItemList_elm : ERABActivityNotifyItem -{ - static constexpr const char* name() {return "ERABActivityNotifyItemList_elm";} - using parent_t = ERABActivityNotifyItem; - -}; -struct ERABActivityNotifyItemList : asn::sequenceof -{ - static constexpr const char* name() {return "ERABActivityNotifyItemList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -Transmission-Bandwidth ::= ENUMERATED { - bw6, - bw15, - bw25, - bw50, - bw75, - bw100, - ..., - bw1 -} -*/ - -struct Transmission_Bandwidth : asn::enumerated<7, 1, true> -{ - static constexpr const char* name() {return "Transmission-Bandwidth";} - using parent_t = asn::enumerated<7, 1, true>; - typedef enum { - bw6 - ,bw15 - ,bw25 - ,bw50 - ,bw75 - ,bw100 - ,bw1 - } index_t; - -}; - -/* -OffsetOfNbiotChannelNumberToEARFCN ::= ENUMERATED { - minusTen, - minusNine, - minusEight, - minusSeven, - minusSix, - minusFive, - minusFour, - minusThree, - minusTwo, - minusOne, - minusZeroDotFive, - zero, - one, - two, - three, - four, - five, - six, - seven, - eight, - nine, - ... -} -*/ - -struct OffsetOfNbiotChannelNumberToEARFCN : asn::enumerated<21, 0, true> -{ - static constexpr const char* name() {return "OffsetOfNbiotChannelNumberToEARFCN";} - using parent_t = asn::enumerated<21, 0, true>; - typedef enum { - minusTen - ,minusNine - ,minusEight - ,minusSeven - ,minusSix - ,minusFive - ,minusFour - ,minusThree - ,minusTwo - ,minusOne - ,minusZeroDotFive - ,zero - ,one - ,two - ,three - ,four - ,five - ,six - ,seven - ,eight - ,nine - } index_t; - -}; - -/* -NRS-NSSS-PowerOffset ::= ENUMERATED { minusThree, zero, three, ...} -*/ - -struct NRS_NSSS_PowerOffset : asn::enumerated<3, 0, true> -{ - static constexpr const char* name() {return "NRS-NSSS-PowerOffset";} - using parent_t = asn::enumerated<3, 0, true>; - typedef enum { - minusThree - ,zero - ,three - } index_t; - -}; - -/* -NSSS-NumOccasionDifferentPrecoder ::= ENUMERATED { two, four, eight, ...} -*/ - -struct NSSS_NumOccasionDifferentPrecoder : asn::enumerated<3, 0, true> -{ - static constexpr const char* name() {return "NSSS-NumOccasionDifferentPrecoder";} - using parent_t = asn::enumerated<3, 0, true>; - typedef enum { - two - ,four - ,eight - } index_t; - -}; - -/* -FDD-Info-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-UL-EARFCNExtension CRITICALITY reject EXTENSION EARFCNExtension PRESENCE optional}| - { ID id-DL-EARFCNExtension CRITICALITY reject EXTENSION EARFCNExtension PRESENCE optional}| - { ID id-OffsetOfNbiotChannelNumberToDL-EARFCN CRITICALITY reject EXTENSION OffsetOfNbiotChannelNumberToEARFCN PRESENCE optional}| - { ID id-OffsetOfNbiotChannelNumberToUL-EARFCN CRITICALITY reject EXTENSION OffsetOfNbiotChannelNumberToEARFCN PRESENCE optional}| - { ID id-NRS-NSSS-PowerOffset CRITICALITY ignore EXTENSION NRS-NSSS-PowerOffset PRESENCE optional}| - { ID id-NSSS-NumOccasionDifferentPrecoder CRITICALITY ignore EXTENSION NSSS-NumOccasionDifferentPrecoder PRESENCE optional}, - ... -} -*/ - -struct FDD_Info_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_UL_EARFCNExtension() { set(id_UL_EARFCNExtension); type=1;} - void select_id_DL_EARFCNExtension() { set(id_DL_EARFCNExtension); type=2;} - void select_id_OffsetOfNbiotChannelNumberToDL_EARFCN() { set(id_OffsetOfNbiotChannelNumberToDL_EARFCN); type=3;} - void select_id_OffsetOfNbiotChannelNumberToUL_EARFCN() { set(id_OffsetOfNbiotChannelNumberToUL_EARFCN); type=4;} - void select_id_NRS_NSSS_PowerOffset() { set(id_NRS_NSSS_PowerOffset); type=5;} - void select_id_NSSS_NumOccasionDifferentPrecoder() { set(id_NSSS_NumOccasionDifferentPrecoder); type=6;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_UL_EARFCNExtension)) { type = 1; return true; } - else if(equal(id_DL_EARFCNExtension)) { type = 2; return true; } - else if(equal(id_OffsetOfNbiotChannelNumberToDL_EARFCN)) { type = 3; return true; } - else if(equal(id_OffsetOfNbiotChannelNumberToUL_EARFCN)) { type = 4; return true; } - else if(equal(id_NRS_NSSS_PowerOffset)) { type = 5; return true; } - else if(equal(id_NSSS_NumOccasionDifferentPrecoder)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_UL_EARFCNExtension);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_DL_EARFCNExtension);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_OffsetOfNbiotChannelNumberToDL_EARFCN);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_OffsetOfNbiotChannelNumberToUL_EARFCN);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_NRS_NSSS_PowerOffset);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_NSSS_NumOccasionDifferentPrecoder);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_UL_EARFCNExtension() { set(reject); type=1;} - void select_id_DL_EARFCNExtension() { set(reject); type=2;} - void select_id_OffsetOfNbiotChannelNumberToDL_EARFCN() { set(reject); type=3;} - void select_id_OffsetOfNbiotChannelNumberToUL_EARFCN() { set(reject); type=4;} - void select_id_NRS_NSSS_PowerOffset() { set(ignore); type=5;} - void select_id_NSSS_NumOccasionDifferentPrecoder() { set(ignore); type=6;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(reject)) { type = 3; return true; } - else if(equal(reject)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else if(equal(ignore)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(reject);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(reject);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(ignore);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - EARFCNExtension& select_id_UL_EARFCNExtension() { return set(1); } - EARFCNExtension const* get_id_UL_EARFCNExtension() const { return get(1); } - EARFCNExtension& select_id_DL_EARFCNExtension() { return set(2); } - EARFCNExtension const* get_id_DL_EARFCNExtension() const { return get(2); } - OffsetOfNbiotChannelNumberToEARFCN& select_id_OffsetOfNbiotChannelNumberToDL_EARFCN() { return set(3); } - OffsetOfNbiotChannelNumberToEARFCN const* get_id_OffsetOfNbiotChannelNumberToDL_EARFCN() const { return get(3); } - OffsetOfNbiotChannelNumberToEARFCN& select_id_OffsetOfNbiotChannelNumberToUL_EARFCN() { return set(4); } - OffsetOfNbiotChannelNumberToEARFCN const* get_id_OffsetOfNbiotChannelNumberToUL_EARFCN() const { return get(4); } - NRS_NSSS_PowerOffset& select_id_NRS_NSSS_PowerOffset() { return set(5); } - NRS_NSSS_PowerOffset const* get_id_NRS_NSSS_PowerOffset() const { return get(5); } - NSSS_NumOccasionDifferentPrecoder& select_id_NSSS_NumOccasionDifferentPrecoder() { return set(6); } - NSSS_NumOccasionDifferentPrecoder const* get_id_NSSS_NumOccasionDifferentPrecoder() const { return get(6); } - bool is_unknown() const { return type == 7; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_UL_EARFCNExtension()); return true; - case 2: v(select_id_DL_EARFCNExtension()); return true; - case 3: v(select_id_OffsetOfNbiotChannelNumberToDL_EARFCN()); return true; - case 4: v(select_id_OffsetOfNbiotChannelNumberToUL_EARFCN()); return true; - case 5: v(select_id_NRS_NSSS_PowerOffset()); return true; - case 6: v(select_id_NSSS_NumOccasionDifferentPrecoder()); return true; - case 7: if(type != 7) {clear(); asn::base::set();} type = 7; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(EARFCNExtension)]; - char dummy2[sizeof(NRS_NSSS_PowerOffset)]; - char dummy3[sizeof(NSSS_NumOccasionDifferentPrecoder)]; - char dummy4[sizeof(OffsetOfNbiotChannelNumberToEARFCN)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_UL_EARFCNExtension() { set(optional); type=1;} - void select_id_DL_EARFCNExtension() { set(optional); type=2;} - void select_id_OffsetOfNbiotChannelNumberToDL_EARFCN() { set(optional); type=3;} - void select_id_OffsetOfNbiotChannelNumberToUL_EARFCN() { set(optional); type=4;} - void select_id_NRS_NSSS_PowerOffset() { set(optional); type=5;} - void select_id_NSSS_NumOccasionDifferentPrecoder() { set(optional); type=6;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -FDD-Info ::= SEQUENCE { - uL-EARFCN EARFCN, - dL-EARFCN EARFCN, - uL-Transmission-Bandwidth Transmission-Bandwidth, - dL-Transmission-Bandwidth Transmission-Bandwidth, - iE-Extensions ProtocolExtensionContainer { {FDD-Info-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct FDD_Info : asn::sequence<5, 0, true, 1> -{ - static constexpr const char* name() {return "FDD-Info";} - using parent_t = asn::sequence<5, 0, true, 1>; - struct uL_EARFCN_t : EARFCN - { - static constexpr const char* name() {return "uL_EARFCN_t";} - using parent_t = EARFCN; - - }; - uL_EARFCN_t& ref_uL_EARFCN() {return uL_EARFCN;} - uL_EARFCN_t const& ref_uL_EARFCN() const {return uL_EARFCN;} - struct dL_EARFCN_t : EARFCN - { - static constexpr const char* name() {return "dL_EARFCN_t";} - using parent_t = EARFCN; - - }; - dL_EARFCN_t& ref_dL_EARFCN() {return dL_EARFCN;} - dL_EARFCN_t const& ref_dL_EARFCN() const {return dL_EARFCN;} - struct uL_Transmission_Bandwidth_t : Transmission_Bandwidth - { - static constexpr const char* name() {return "uL_Transmission_Bandwidth_t";} - using parent_t = Transmission_Bandwidth; - - }; - uL_Transmission_Bandwidth_t& ref_uL_Transmission_Bandwidth() {return uL_Transmission_Bandwidth;} - uL_Transmission_Bandwidth_t const& ref_uL_Transmission_Bandwidth() const {return uL_Transmission_Bandwidth;} - struct dL_Transmission_Bandwidth_t : Transmission_Bandwidth - { - static constexpr const char* name() {return "dL_Transmission_Bandwidth_t";} - using parent_t = Transmission_Bandwidth; - - }; - dL_Transmission_Bandwidth_t& ref_dL_Transmission_Bandwidth() {return dL_Transmission_Bandwidth;} - dL_Transmission_Bandwidth_t const& ref_dL_Transmission_Bandwidth() const {return dL_Transmission_Bandwidth;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(uL_EARFCN); - v(dL_EARFCN); - v(uL_Transmission_Bandwidth); - v(dL_Transmission_Bandwidth); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(uL_EARFCN); - v(dL_EARFCN); - v(uL_Transmission_Bandwidth); - v(dL_Transmission_Bandwidth); - v(iE_Extensions); - - }; - void clear() - { - uL_EARFCN.clear(); - dL_EARFCN.clear(); - uL_Transmission_Bandwidth.clear(); - dL_Transmission_Bandwidth.clear(); - iE_Extensions.clear(); - - }; - private: - uL_EARFCN_t uL_EARFCN; - dL_EARFCN_t dL_EARFCN; - uL_Transmission_Bandwidth_t uL_Transmission_Bandwidth; - dL_Transmission_Bandwidth_t dL_Transmission_Bandwidth; - iE_Extensions_t iE_Extensions; - -}; -/* -SubframeAssignment ::= ENUMERATED { - sa0, - sa1, - sa2, - sa3, - sa4, - sa5, - sa6, - ... -} -*/ - -struct SubframeAssignment : asn::enumerated<7, 0, true> -{ - static constexpr const char* name() {return "SubframeAssignment";} - using parent_t = asn::enumerated<7, 0, true>; - typedef enum { - sa0 - ,sa1 - ,sa2 - ,sa3 - ,sa4 - ,sa5 - ,sa6 - } index_t; - -}; - -/* -SpecialSubframePatterns ::= ENUMERATED { - ssp0, - ssp1, - ssp2, - ssp3, - ssp4, - ssp5, - ssp6, - ssp7, - ssp8, - ... -} -*/ - -struct SpecialSubframePatterns : asn::enumerated<9, 0, true> -{ - static constexpr const char* name() {return "SpecialSubframePatterns";} - using parent_t = asn::enumerated<9, 0, true>; - typedef enum { - ssp0 - ,ssp1 - ,ssp2 - ,ssp3 - ,ssp4 - ,ssp5 - ,ssp6 - ,ssp7 - ,ssp8 - } index_t; - -}; - -/* -SpecialSubframe-Info-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct SpecialSubframe_Info_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SpecialSubframe-Info ::= SEQUENCE { - specialSubframePatterns SpecialSubframePatterns, - cyclicPrefixDL CyclicPrefixDL, - cyclicPrefixUL CyclicPrefixUL, - iE-Extensions ProtocolExtensionContainer { {SpecialSubframe-Info-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct SpecialSubframe_Info : asn::sequence<4, 0, true, 1> -{ - static constexpr const char* name() {return "SpecialSubframe-Info";} - using parent_t = asn::sequence<4, 0, true, 1>; - struct specialSubframePatterns_t : SpecialSubframePatterns - { - static constexpr const char* name() {return "specialSubframePatterns_t";} - using parent_t = SpecialSubframePatterns; - - }; - specialSubframePatterns_t& ref_specialSubframePatterns() {return specialSubframePatterns;} - specialSubframePatterns_t const& ref_specialSubframePatterns() const {return specialSubframePatterns;} - struct cyclicPrefixDL_t : CyclicPrefixDL - { - static constexpr const char* name() {return "cyclicPrefixDL_t";} - using parent_t = CyclicPrefixDL; - - }; - cyclicPrefixDL_t& ref_cyclicPrefixDL() {return cyclicPrefixDL;} - cyclicPrefixDL_t const& ref_cyclicPrefixDL() const {return cyclicPrefixDL;} - struct cyclicPrefixUL_t : CyclicPrefixUL - { - static constexpr const char* name() {return "cyclicPrefixUL_t";} - using parent_t = CyclicPrefixUL; - - }; - cyclicPrefixUL_t& ref_cyclicPrefixUL() {return cyclicPrefixUL;} - cyclicPrefixUL_t const& ref_cyclicPrefixUL() const {return cyclicPrefixUL;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(specialSubframePatterns); - v(cyclicPrefixDL); - v(cyclicPrefixUL); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(specialSubframePatterns); - v(cyclicPrefixDL); - v(cyclicPrefixUL); - v(iE_Extensions); - - }; - void clear() - { - specialSubframePatterns.clear(); - cyclicPrefixDL.clear(); - cyclicPrefixUL.clear(); - iE_Extensions.clear(); - - }; - private: - specialSubframePatterns_t specialSubframePatterns; - cyclicPrefixDL_t cyclicPrefixDL; - cyclicPrefixUL_t cyclicPrefixUL; - iE_Extensions_t iE_Extensions; - -}; -/* -TDD-Info-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-AdditionalSpecialSubframe-Info CRITICALITY ignore EXTENSION AdditionalSpecialSubframe-Info PRESENCE optional}| - { ID id-eARFCNExtension CRITICALITY reject EXTENSION EARFCNExtension PRESENCE optional}| - { ID id-AdditionalSpecialSubframeExtension-Info CRITICALITY ignore EXTENSION AdditionalSpecialSubframeExtension-Info PRESENCE optional}, - ... -} -*/ - -struct TDD_Info_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_AdditionalSpecialSubframe_Info() { set(id_AdditionalSpecialSubframe_Info); type=1;} - void select_id_eARFCNExtension() { set(id_eARFCNExtension); type=2;} - void select_id_AdditionalSpecialSubframeExtension_Info() { set(id_AdditionalSpecialSubframeExtension_Info); type=3;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_AdditionalSpecialSubframe_Info)) { type = 1; return true; } - else if(equal(id_eARFCNExtension)) { type = 2; return true; } - else if(equal(id_AdditionalSpecialSubframeExtension_Info)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_AdditionalSpecialSubframe_Info);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_eARFCNExtension);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_AdditionalSpecialSubframeExtension_Info);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_AdditionalSpecialSubframe_Info() { set(ignore); type=1;} - void select_id_eARFCNExtension() { set(reject); type=2;} - void select_id_AdditionalSpecialSubframeExtension_Info() { set(ignore); type=3;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - AdditionalSpecialSubframe_Info& select_id_AdditionalSpecialSubframe_Info() { return set(1); } - AdditionalSpecialSubframe_Info const* get_id_AdditionalSpecialSubframe_Info() const { return get(1); } - EARFCNExtension& select_id_eARFCNExtension() { return set(2); } - EARFCNExtension const* get_id_eARFCNExtension() const { return get(2); } - AdditionalSpecialSubframeExtension_Info& select_id_AdditionalSpecialSubframeExtension_Info() { return set(3); } - AdditionalSpecialSubframeExtension_Info const* get_id_AdditionalSpecialSubframeExtension_Info() const { return get(3); } - bool is_unknown() const { return type == 4; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_AdditionalSpecialSubframe_Info()); return true; - case 2: v(select_id_eARFCNExtension()); return true; - case 3: v(select_id_AdditionalSpecialSubframeExtension_Info()); return true; - case 4: if(type != 4) {clear(); asn::base::set();} type = 4; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(AdditionalSpecialSubframeExtension_Info)]; - char dummy2[sizeof(AdditionalSpecialSubframe_Info)]; - char dummy3[sizeof(EARFCNExtension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_AdditionalSpecialSubframe_Info() { set(optional); type=1;} - void select_id_eARFCNExtension() { set(optional); type=2;} - void select_id_AdditionalSpecialSubframeExtension_Info() { set(optional); type=3;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -TDD-Info ::= SEQUENCE { - eARFCN EARFCN, - transmission-Bandwidth Transmission-Bandwidth, - subframeAssignment SubframeAssignment, - specialSubframe-Info SpecialSubframe-Info, - iE-Extensions ProtocolExtensionContainer { {TDD-Info-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct TDD_Info : asn::sequence<5, 0, true, 1> -{ - static constexpr const char* name() {return "TDD-Info";} - using parent_t = asn::sequence<5, 0, true, 1>; - struct eARFCN_t : EARFCN - { - static constexpr const char* name() {return "eARFCN_t";} - using parent_t = EARFCN; - - }; - eARFCN_t& ref_eARFCN() {return eARFCN;} - eARFCN_t const& ref_eARFCN() const {return eARFCN;} - struct transmission_Bandwidth_t : Transmission_Bandwidth - { - static constexpr const char* name() {return "transmission_Bandwidth_t";} - using parent_t = Transmission_Bandwidth; - - }; - transmission_Bandwidth_t& ref_transmission_Bandwidth() {return transmission_Bandwidth;} - transmission_Bandwidth_t const& ref_transmission_Bandwidth() const {return transmission_Bandwidth;} - struct subframeAssignment_t : SubframeAssignment - { - static constexpr const char* name() {return "subframeAssignment_t";} - using parent_t = SubframeAssignment; - - }; - subframeAssignment_t& ref_subframeAssignment() {return subframeAssignment;} - subframeAssignment_t const& ref_subframeAssignment() const {return subframeAssignment;} - struct specialSubframe_Info_t : SpecialSubframe_Info - { - static constexpr const char* name() {return "specialSubframe_Info_t";} - using parent_t = SpecialSubframe_Info; - - }; - specialSubframe_Info_t& ref_specialSubframe_Info() {return specialSubframe_Info;} - specialSubframe_Info_t const& ref_specialSubframe_Info() const {return specialSubframe_Info;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(eARFCN); - v(transmission_Bandwidth); - v(subframeAssignment); - v(specialSubframe_Info); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(eARFCN); - v(transmission_Bandwidth); - v(subframeAssignment); - v(specialSubframe_Info); - v(iE_Extensions); - - }; - void clear() - { - eARFCN.clear(); - transmission_Bandwidth.clear(); - subframeAssignment.clear(); - specialSubframe_Info.clear(); - iE_Extensions.clear(); - - }; - private: - eARFCN_t eARFCN; - transmission_Bandwidth_t transmission_Bandwidth; - subframeAssignment_t subframeAssignment; - specialSubframe_Info_t specialSubframe_Info; - iE_Extensions_t iE_Extensions; - -}; -/* -EUTRA-Mode-Info ::= CHOICE { - fDD FDD-Info, - tDD TDD-Info, - ... -} -*/ - -struct EUTRA_Mode_Info : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "EUTRA-Mode-Info";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~EUTRA_Mode_Info() {clear();} - struct fDD_t : FDD_Info - { - static constexpr const char* name() {return "fDD_t";} - using parent_t = FDD_Info; - - }; - struct tDD_t : TDD_Info - { - static constexpr const char* name() {return "tDD_t";} - using parent_t = TDD_Info; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - fDD_t& select_fDD() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - fDD_t const* get_fDD() const { if(get_index() == 1) { return &var.as();} return nullptr; } - tDD_t& select_tDD() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - tDD_t const* get_tDD() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(fDD_t)]; - char dummy2[sizeof(tDD_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -EUTRANTraceID ::= OCTET STRING (SIZE (8)) -*/ - -struct EUTRANTraceID : asn::ostring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "EUTRANTraceID";} - using parent_t = asn::ostring<>; - -}; - -/* -EncryptionAlgorithms ::= BIT STRING (SIZE (16, ...)) -*/ - -struct EncryptionAlgorithms : asn::bstring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "EncryptionAlgorithms";} - using parent_t = asn::bstring<>; - -}; - -/* -RNTP-Threshold ::= ENUMERATED { - minusInfinity, - minusEleven, - minusTen, - minusNine, - minusEight, - minusSeven, - minusSix, - minusFive, - minusFour, - minusThree, - minusTwo, - minusOne, - zero, - one, - two, - three, - ... -} -*/ - -struct RNTP_Threshold : asn::enumerated<16, 0, true> -{ - static constexpr const char* name() {return "RNTP-Threshold";} - using parent_t = asn::enumerated<16, 0, true>; - typedef enum { - minusInfinity - ,minusEleven - ,minusTen - ,minusNine - ,minusEight - ,minusSeven - ,minusSix - ,minusFive - ,minusFour - ,minusThree - ,minusTwo - ,minusOne - ,zero - ,one - ,two - ,three - } index_t; - -}; - -/* -EnhancedRNTPStartTime-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct EnhancedRNTPStartTime_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -EnhancedRNTPStartTime ::= SEQUENCE { - startSFN INTEGER (0..1023, ...), - startSubframeNumber INTEGER (0..9, ...), - iE-Extensions ProtocolExtensionContainer { {EnhancedRNTPStartTime-ExtIEs} } OPTIONAL, - ... - } -*/ - -struct EnhancedRNTPStartTime : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "EnhancedRNTPStartTime";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct startSFN_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "startSFN_t";} - using parent_t = asn::integer<>; - - }; - - startSFN_t& ref_startSFN() {return startSFN;} - startSFN_t const& ref_startSFN() const {return startSFN;} - struct startSubframeNumber_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "startSubframeNumber_t";} - using parent_t = asn::integer<>; - - }; - - startSubframeNumber_t& ref_startSubframeNumber() {return startSubframeNumber;} - startSubframeNumber_t const& ref_startSubframeNumber() const {return startSubframeNumber;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(startSFN); - v(startSubframeNumber); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(startSFN); - v(startSubframeNumber); - v(iE_Extensions); - - }; - void clear() - { - startSFN.clear(); - startSubframeNumber.clear(); - iE_Extensions.clear(); - - }; - private: - startSFN_t startSFN; - startSubframeNumber_t startSubframeNumber; - iE_Extensions_t iE_Extensions; - -}; -/* -EnhancedRNTP-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct EnhancedRNTP_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -EnhancedRNTP ::= SEQUENCE { - enhancedRNTPBitmap BIT STRING (SIZE(12..8800, ...)), - rNTP-High-Power-Threshold RNTP-Threshold, - enhancedRNTPStartTime EnhancedRNTPStartTime OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {EnhancedRNTP-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct EnhancedRNTP : asn::sequence<4, 0, true, 2> -{ - static constexpr const char* name() {return "EnhancedRNTP";} - using parent_t = asn::sequence<4, 0, true, 2>; - struct enhancedRNTPBitmap_t : asn::bstring<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "enhancedRNTPBitmap_t";} - using parent_t = asn::bstring<>; - - }; - - enhancedRNTPBitmap_t& ref_enhancedRNTPBitmap() {return enhancedRNTPBitmap;} - enhancedRNTPBitmap_t const& ref_enhancedRNTPBitmap() const {return enhancedRNTPBitmap;} - struct rNTP_High_Power_Threshold_t : RNTP_Threshold - { - static constexpr const char* name() {return "rNTP_High_Power_Threshold_t";} - using parent_t = RNTP_Threshold; - - }; - rNTP_High_Power_Threshold_t& ref_rNTP_High_Power_Threshold() {return rNTP_High_Power_Threshold;} - rNTP_High_Power_Threshold_t const& ref_rNTP_High_Power_Threshold() const {return rNTP_High_Power_Threshold;} - struct enhancedRNTPStartTime_t : EnhancedRNTPStartTime - { - static constexpr const char* name() {return "enhancedRNTPStartTime_t";} - using parent_t = EnhancedRNTPStartTime; - static constexpr bool optional = true; - - }; - enhancedRNTPStartTime_t& set_enhancedRNTPStartTime() { enhancedRNTPStartTime.setpresent(true); return enhancedRNTPStartTime;} - enhancedRNTPStartTime_t const* get_enhancedRNTPStartTime() const {return enhancedRNTPStartTime.is_valid() ? &enhancedRNTPStartTime : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(enhancedRNTPBitmap); - v(rNTP_High_Power_Threshold); - v(enhancedRNTPStartTime); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(enhancedRNTPBitmap); - v(rNTP_High_Power_Threshold); - v(enhancedRNTPStartTime); - v(iE_Extensions); - - }; - void clear() - { - enhancedRNTPBitmap.clear(); - rNTP_High_Power_Threshold.clear(); - enhancedRNTPStartTime.clear(); - iE_Extensions.clear(); - - }; - private: - enhancedRNTPBitmap_t enhancedRNTPBitmap; - rNTP_High_Power_Threshold_t rNTP_High_Power_Threshold; - enhancedRNTPStartTime_t enhancedRNTPStartTime; - iE_Extensions_t iE_Extensions; - -}; -/* -EventType ::= ENUMERATED{ - change-of-serving-cell, - ... -} -*/ - -struct EventType : asn::enumerated<1, 0, true> -{ - static constexpr const char* name() {return "EventType";} - using parent_t = asn::enumerated<1, 0, true>; - typedef enum { - change_of_serving_cell - } index_t; - -}; - -/* -ExpectedActivityPeriod ::= INTEGER (1..30|40|50|60|80|100|120|150|180|181,...) -*/ - -struct ExpectedActivityPeriod : asn::integer<> -{ - using constraint_t = asn::constraints,asn::one<40>,asn::one<50>,asn::one<60>,asn::one<80>,asn::one<100>,asn::one<120>,asn::one<150>,asn::one<180>,asn::one<181>>; - static constexpr const char* name() {return "ExpectedActivityPeriod";} - using parent_t = asn::integer<>; - -}; - -/* -ExpectedHOInterval ::= ENUMERATED { - sec15, sec30, sec60, sec90, sec120, sec180, long-time, - ... -} -*/ - -struct ExpectedHOInterval : asn::enumerated<7, 0, true> -{ - static constexpr const char* name() {return "ExpectedHOInterval";} - using parent_t = asn::enumerated<7, 0, true>; - typedef enum { - sec15 - ,sec30 - ,sec60 - ,sec90 - ,sec120 - ,sec180 - ,long_time - } index_t; - -}; - -/* -ExpectedIdlePeriod ::= INTEGER (1..30|40|50|60|80|100|120|150|180|181,...) -*/ - -struct ExpectedIdlePeriod : asn::integer<> -{ - using constraint_t = asn::constraints,asn::one<40>,asn::one<50>,asn::one<60>,asn::one<80>,asn::one<100>,asn::one<120>,asn::one<150>,asn::one<180>,asn::one<181>>; - static constexpr const char* name() {return "ExpectedIdlePeriod";} - using parent_t = asn::integer<>; - -}; - -/* -SourceOfUEActivityBehaviourInformation ::= ENUMERATED { - subscription-information, - statistics, - ... -} -*/ - -struct SourceOfUEActivityBehaviourInformation : asn::enumerated<2, 0, true> -{ - static constexpr const char* name() {return "SourceOfUEActivityBehaviourInformation";} - using parent_t = asn::enumerated<2, 0, true>; - typedef enum { - subscription_information - ,statistics - } index_t; - -}; - -/* -ExpectedUEActivityBehaviour-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct ExpectedUEActivityBehaviour_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ExpectedUEActivityBehaviour ::= SEQUENCE { - expectedActivityPeriod ExpectedActivityPeriod OPTIONAL, - expectedIdlePeriod ExpectedIdlePeriod OPTIONAL, - sourceofUEActivityBehaviourInformation SourceOfUEActivityBehaviourInformation OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {ExpectedUEActivityBehaviour-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct ExpectedUEActivityBehaviour : asn::sequence<4, 0, true, 4> -{ - static constexpr const char* name() {return "ExpectedUEActivityBehaviour";} - using parent_t = asn::sequence<4, 0, true, 4>; - struct expectedActivityPeriod_t : ExpectedActivityPeriod - { - static constexpr const char* name() {return "expectedActivityPeriod_t";} - using parent_t = ExpectedActivityPeriod; - static constexpr bool optional = true; - - }; - expectedActivityPeriod_t& set_expectedActivityPeriod() { expectedActivityPeriod.setpresent(true); return expectedActivityPeriod;} - expectedActivityPeriod_t const* get_expectedActivityPeriod() const {return expectedActivityPeriod.is_valid() ? &expectedActivityPeriod : nullptr;} - struct expectedIdlePeriod_t : ExpectedIdlePeriod - { - static constexpr const char* name() {return "expectedIdlePeriod_t";} - using parent_t = ExpectedIdlePeriod; - static constexpr bool optional = true; - - }; - expectedIdlePeriod_t& set_expectedIdlePeriod() { expectedIdlePeriod.setpresent(true); return expectedIdlePeriod;} - expectedIdlePeriod_t const* get_expectedIdlePeriod() const {return expectedIdlePeriod.is_valid() ? &expectedIdlePeriod : nullptr;} - struct sourceofUEActivityBehaviourInformation_t : SourceOfUEActivityBehaviourInformation - { - static constexpr const char* name() {return "sourceofUEActivityBehaviourInformation_t";} - using parent_t = SourceOfUEActivityBehaviourInformation; - static constexpr bool optional = true; - - }; - sourceofUEActivityBehaviourInformation_t& set_sourceofUEActivityBehaviourInformation() { sourceofUEActivityBehaviourInformation.setpresent(true); return sourceofUEActivityBehaviourInformation;} - sourceofUEActivityBehaviourInformation_t const* get_sourceofUEActivityBehaviourInformation() const {return sourceofUEActivityBehaviourInformation.is_valid() ? &sourceofUEActivityBehaviourInformation : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(expectedActivityPeriod); - v(expectedIdlePeriod); - v(sourceofUEActivityBehaviourInformation); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(expectedActivityPeriod); - v(expectedIdlePeriod); - v(sourceofUEActivityBehaviourInformation); - v(iE_Extensions); - - }; - void clear() - { - expectedActivityPeriod.clear(); - expectedIdlePeriod.clear(); - sourceofUEActivityBehaviourInformation.clear(); - iE_Extensions.clear(); - - }; - private: - expectedActivityPeriod_t expectedActivityPeriod; - expectedIdlePeriod_t expectedIdlePeriod; - sourceofUEActivityBehaviourInformation_t sourceofUEActivityBehaviourInformation; - iE_Extensions_t iE_Extensions; - -}; -/* -ExpectedUEBehaviour-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct ExpectedUEBehaviour_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ExpectedUEBehaviour ::= SEQUENCE { - expectedActivity ExpectedUEActivityBehaviour OPTIONAL, - expectedHOInterval ExpectedHOInterval OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {ExpectedUEBehaviour-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct ExpectedUEBehaviour : asn::sequence<3, 0, true, 3> -{ - static constexpr const char* name() {return "ExpectedUEBehaviour";} - using parent_t = asn::sequence<3, 0, true, 3>; - struct expectedActivity_t : ExpectedUEActivityBehaviour - { - static constexpr const char* name() {return "expectedActivity_t";} - using parent_t = ExpectedUEActivityBehaviour; - static constexpr bool optional = true; - - }; - expectedActivity_t& set_expectedActivity() { expectedActivity.setpresent(true); return expectedActivity;} - expectedActivity_t const* get_expectedActivity() const {return expectedActivity.is_valid() ? &expectedActivity : nullptr;} - struct expectedHOInterval_t : ExpectedHOInterval - { - static constexpr const char* name() {return "expectedHOInterval_t";} - using parent_t = ExpectedHOInterval; - static constexpr bool optional = true; - - }; - expectedHOInterval_t& set_expectedHOInterval() { expectedHOInterval.setpresent(true); return expectedHOInterval;} - expectedHOInterval_t const* get_expectedHOInterval() const {return expectedHOInterval.is_valid() ? &expectedHOInterval : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(expectedActivity); - v(expectedHOInterval); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(expectedActivity); - v(expectedHOInterval); - v(iE_Extensions); - - }; - void clear() - { - expectedActivity.clear(); - expectedHOInterval.clear(); - iE_Extensions.clear(); - - }; - private: - expectedActivity_t expectedActivity; - expectedHOInterval_t expectedHOInterval; - iE_Extensions_t iE_Extensions; - -}; -/* -UL-InterferenceOverloadIndication-Item ::= ENUMERATED { - high-interference, - medium-interference, - low-interference, - ... -} -*/ - -struct UL_InterferenceOverloadIndication_Item : asn::enumerated<3, 0, true> -{ - static constexpr const char* name() {return "UL-InterferenceOverloadIndication-Item";} - using parent_t = asn::enumerated<3, 0, true>; - typedef enum { - high_interference - ,medium_interference - ,low_interference - } index_t; - -}; - -/* -UL-InterferenceOverloadIndication ::= SEQUENCE (SIZE(1..maxnoofPRBs)) OF UL-InterferenceOverloadIndication-Item -*/ - -struct UL_InterferenceOverloadIndication_elm : UL_InterferenceOverloadIndication_Item -{ - static constexpr const char* name() {return "UL_InterferenceOverloadIndication_elm";} - using parent_t = UL_InterferenceOverloadIndication_Item; - -}; -struct UL_InterferenceOverloadIndication : asn::sequenceof -{ - static constexpr const char* name() {return "UL-InterferenceOverloadIndication";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -ExtendedULInterferenceOverloadInfo-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct ExtendedULInterferenceOverloadInfo_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ExtendedULInterferenceOverloadInfo ::= SEQUENCE { - associatedSubframes BIT STRING (SIZE (5)), - extended-ul-InterferenceOverloadIndication UL-InterferenceOverloadIndication, - iE-Extensions ProtocolExtensionContainer { {ExtendedULInterferenceOverloadInfo-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct ExtendedULInterferenceOverloadInfo : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "ExtendedULInterferenceOverloadInfo";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct associatedSubframes_t : asn::bstring<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "associatedSubframes_t";} - using parent_t = asn::bstring<>; - - }; - - associatedSubframes_t& ref_associatedSubframes() {return associatedSubframes;} - associatedSubframes_t const& ref_associatedSubframes() const {return associatedSubframes;} - struct extended_ul_InterferenceOverloadIndication_t : UL_InterferenceOverloadIndication - { - static constexpr const char* name() {return "extended_ul_InterferenceOverloadIndication_t";} - using parent_t = UL_InterferenceOverloadIndication; - - }; - extended_ul_InterferenceOverloadIndication_t& ref_extended_ul_InterferenceOverloadIndication() {return extended_ul_InterferenceOverloadIndication;} - extended_ul_InterferenceOverloadIndication_t const& ref_extended_ul_InterferenceOverloadIndication() const {return extended_ul_InterferenceOverloadIndication;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(associatedSubframes); - v(extended_ul_InterferenceOverloadIndication); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(associatedSubframes); - v(extended_ul_InterferenceOverloadIndication); - v(iE_Extensions); - - }; - void clear() - { - associatedSubframes.clear(); - extended_ul_InterferenceOverloadIndication.clear(); - iE_Extensions.clear(); - - }; - private: - associatedSubframes_t associatedSubframes; - extended_ul_InterferenceOverloadIndication_t extended_ul_InterferenceOverloadIndication; - iE_Extensions_t iE_Extensions; - -}; -/* -FiveGS-TAC ::= OCTET STRING (SIZE (3)) -*/ - -struct FiveGS_TAC : asn::ostring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "FiveGS-TAC";} - using parent_t = asn::ostring<>; - -}; - -/* -ForbiddenInterRATs ::= ENUMERATED { - all, - geran, - utran, - cdma2000, - ..., - geranandutran, - cdma2000andutran - -} -*/ - -struct ForbiddenInterRATs : asn::enumerated<6, 2, true> -{ - static constexpr const char* name() {return "ForbiddenInterRATs";} - using parent_t = asn::enumerated<6, 2, true>; - typedef enum { - all - ,geran - ,utran - ,cdma2000 - ,geranandutran - ,cdma2000andutran - } index_t; - -}; - -/* -LAC ::= OCTET STRING (SIZE (2)) --(EXCEPT ('0000'H|'FFFE'H)) -*/ - -struct LAC : asn::ostring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "LAC";} - using parent_t = asn::ostring<>; - -}; - -/* -ForbiddenLACs ::= SEQUENCE (SIZE(1..maxnoofForbLACs)) OF LAC -*/ - -struct ForbiddenLACs_elm : LAC -{ - static constexpr const char* name() {return "ForbiddenLACs_elm";} - using parent_t = LAC; - -}; -struct ForbiddenLACs : asn::sequenceof -{ - static constexpr const char* name() {return "ForbiddenLACs";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -ForbiddenLAs-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct ForbiddenLAs_Item_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ForbiddenLAs-Item ::= SEQUENCE { - pLMN-Identity PLMN-Identity, - forbiddenLACs ForbiddenLACs, - iE-Extensions ProtocolExtensionContainer { {ForbiddenLAs-Item-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct ForbiddenLAs_Item : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "ForbiddenLAs-Item";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct pLMN_Identity_t : PLMN_Identity - { - static constexpr const char* name() {return "pLMN_Identity_t";} - using parent_t = PLMN_Identity; - - }; - pLMN_Identity_t& ref_pLMN_Identity() {return pLMN_Identity;} - pLMN_Identity_t const& ref_pLMN_Identity() const {return pLMN_Identity;} - struct forbiddenLACs_t : ForbiddenLACs - { - static constexpr const char* name() {return "forbiddenLACs_t";} - using parent_t = ForbiddenLACs; - - }; - forbiddenLACs_t& ref_forbiddenLACs() {return forbiddenLACs;} - forbiddenLACs_t const& ref_forbiddenLACs() const {return forbiddenLACs;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(pLMN_Identity); - v(forbiddenLACs); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(pLMN_Identity); - v(forbiddenLACs); - v(iE_Extensions); - - }; - void clear() - { - pLMN_Identity.clear(); - forbiddenLACs.clear(); - iE_Extensions.clear(); - - }; - private: - pLMN_Identity_t pLMN_Identity; - forbiddenLACs_t forbiddenLACs; - iE_Extensions_t iE_Extensions; - -}; -/* -ForbiddenLAs ::= SEQUENCE (SIZE(1..maxnoofEPLMNsPlusOne)) OF ForbiddenLAs-Item -*/ - -struct ForbiddenLAs_elm : ForbiddenLAs_Item -{ - static constexpr const char* name() {return "ForbiddenLAs_elm";} - using parent_t = ForbiddenLAs_Item; - -}; -struct ForbiddenLAs : asn::sequenceof -{ - static constexpr const char* name() {return "ForbiddenLAs";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -ForbiddenTACs ::= SEQUENCE (SIZE(1..maxnoofForbTACs)) OF TAC -*/ - -struct ForbiddenTACs_elm : TAC -{ - static constexpr const char* name() {return "ForbiddenTACs_elm";} - using parent_t = TAC; - -}; -struct ForbiddenTACs : asn::sequenceof -{ - static constexpr const char* name() {return "ForbiddenTACs";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -ForbiddenTAs-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct ForbiddenTAs_Item_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ForbiddenTAs-Item ::= SEQUENCE { - pLMN-Identity PLMN-Identity, - forbiddenTACs ForbiddenTACs, - iE-Extensions ProtocolExtensionContainer { {ForbiddenTAs-Item-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct ForbiddenTAs_Item : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "ForbiddenTAs-Item";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct pLMN_Identity_t : PLMN_Identity - { - static constexpr const char* name() {return "pLMN_Identity_t";} - using parent_t = PLMN_Identity; - - }; - pLMN_Identity_t& ref_pLMN_Identity() {return pLMN_Identity;} - pLMN_Identity_t const& ref_pLMN_Identity() const {return pLMN_Identity;} - struct forbiddenTACs_t : ForbiddenTACs - { - static constexpr const char* name() {return "forbiddenTACs_t";} - using parent_t = ForbiddenTACs; - - }; - forbiddenTACs_t& ref_forbiddenTACs() {return forbiddenTACs;} - forbiddenTACs_t const& ref_forbiddenTACs() const {return forbiddenTACs;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(pLMN_Identity); - v(forbiddenTACs); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(pLMN_Identity); - v(forbiddenTACs); - v(iE_Extensions); - - }; - void clear() - { - pLMN_Identity.clear(); - forbiddenTACs.clear(); - iE_Extensions.clear(); - - }; - private: - pLMN_Identity_t pLMN_Identity; - forbiddenTACs_t forbiddenTACs; - iE_Extensions_t iE_Extensions; - -}; -/* -ForbiddenTAs ::= SEQUENCE (SIZE(1.. maxnoofEPLMNsPlusOne)) OF ForbiddenTAs-Item -*/ - -struct ForbiddenTAs_elm : ForbiddenTAs_Item -{ - static constexpr const char* name() {return "ForbiddenTAs_elm";} - using parent_t = ForbiddenTAs_Item; - -}; -struct ForbiddenTAs : asn::sequenceof -{ - static constexpr const char* name() {return "ForbiddenTAs";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -Fourframes ::= BIT STRING (SIZE (24)) -*/ - -struct Fourframes : asn::bstring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "Fourframes";} - using parent_t = asn::bstring<>; - -}; - -/* -FreqBandIndicatorPriority ::= ENUMERATED { - not-broadcasted, - broadcasted, - ... -} -*/ - -struct FreqBandIndicatorPriority : asn::enumerated<2, 0, true> -{ - static constexpr const char* name() {return "FreqBandIndicatorPriority";} - using parent_t = asn::enumerated<2, 0, true>; - typedef enum { - not_broadcasted - ,broadcasted - } index_t; - -}; - -/* -SupportedSULFreqBandItem-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct SupportedSULFreqBandItem_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SupportedSULFreqBandItem ::= SEQUENCE { - freqBandIndicatorNr INTEGER (1..1024,...), - iE-Extensions ProtocolExtensionContainer { {SupportedSULFreqBandItem-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct SupportedSULFreqBandItem : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "SupportedSULFreqBandItem";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct freqBandIndicatorNr_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "freqBandIndicatorNr_t";} - using parent_t = asn::integer<>; - - }; - - freqBandIndicatorNr_t& ref_freqBandIndicatorNr() {return freqBandIndicatorNr;} - freqBandIndicatorNr_t const& ref_freqBandIndicatorNr() const {return freqBandIndicatorNr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(freqBandIndicatorNr); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(freqBandIndicatorNr); - v(iE_Extensions); - - }; - void clear() - { - freqBandIndicatorNr.clear(); - iE_Extensions.clear(); - - }; - private: - freqBandIndicatorNr_t freqBandIndicatorNr; - iE_Extensions_t iE_Extensions; - -}; -/* -FreqBandNrItem-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct FreqBandNrItem_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -FreqBandNrItem ::= SEQUENCE { - freqBandIndicatorNr INTEGER (1..1024,...), - supportedSULBandList SEQUENCE (SIZE(0..maxnoofNrCellBands)) OF SupportedSULFreqBandItem, - iE-Extensions ProtocolExtensionContainer { {FreqBandNrItem-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct FreqBandNrItem : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "FreqBandNrItem";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct freqBandIndicatorNr_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "freqBandIndicatorNr_t";} - using parent_t = asn::integer<>; - - }; - - freqBandIndicatorNr_t& ref_freqBandIndicatorNr() {return freqBandIndicatorNr;} - freqBandIndicatorNr_t const& ref_freqBandIndicatorNr() const {return freqBandIndicatorNr;} - struct supportedSULBandList_t_elm : SupportedSULFreqBandItem - { - static constexpr const char* name() {return "supportedSULBandList_t_elm";} - using parent_t = SupportedSULFreqBandItem; - - }; - struct supportedSULBandList_t : asn::sequenceof - { - static constexpr const char* name() {return "supportedSULBandList_t";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - - }; - supportedSULBandList_t& ref_supportedSULBandList() {return supportedSULBandList;} - supportedSULBandList_t const& ref_supportedSULBandList() const {return supportedSULBandList;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(freqBandIndicatorNr); - v(supportedSULBandList); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(freqBandIndicatorNr); - v(supportedSULBandList); - v(iE_Extensions); - - }; - void clear() - { - freqBandIndicatorNr.clear(); - supportedSULBandList.clear(); - iE_Extensions.clear(); - - }; - private: - freqBandIndicatorNr_t freqBandIndicatorNr; - supportedSULBandList_t supportedSULBandList; - iE_Extensions_t iE_Extensions; - -}; -/* -GNB-ID ::= CHOICE { - gNB-ID BIT STRING (SIZE (22..32)), - ... -} -*/ - -struct GNB_ID : asn::choice<1, 0, true> -{ - static constexpr const char* name() {return "GNB-ID";} - using parent_t = asn::choice<1, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 2;} - void set_unknown() { set_index(2); } - ~GNB_ID() {clear();} - struct gNB_ID_t : asn::bstring<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "gNB_ID_t";} - using parent_t = asn::bstring<>; - - }; - - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - gNB_ID_t& select_gNB_ID() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - gNB_ID_t const* get_gNB_ID() const { if(get_index() == 1) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(gNB_ID_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -GNBOverloadInformation ::= ENUMERATED {overloaded, not-overloaded, ...} -*/ - -struct GNBOverloadInformation : asn::enumerated<2, 0, true> -{ - static constexpr const char* name() {return "GNBOverloadInformation";} - using parent_t = asn::enumerated<2, 0, true>; - typedef enum { - overloaded - ,not_overloaded - } index_t; - -}; - -/* -GTP-TEI ::= OCTET STRING (SIZE (4)) -*/ - -struct GTP_TEI : asn::ostring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "GTP-TEI";} - using parent_t = asn::ostring<>; - -}; - -/* -TransportLayerAddress ::= BIT STRING (SIZE(1..160, ...)) -*/ - -struct TransportLayerAddress : asn::bstring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "TransportLayerAddress";} - using parent_t = asn::bstring<>; - -}; - -/* -GTPtunnelEndpoint-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct GTPtunnelEndpoint_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -GTPtunnelEndpoint ::= SEQUENCE { - transportLayerAddress TransportLayerAddress, - gTP-TEID GTP-TEI, - iE-Extensions ProtocolExtensionContainer { {GTPtunnelEndpoint-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct GTPtunnelEndpoint : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "GTPtunnelEndpoint";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct transportLayerAddress_t : TransportLayerAddress - { - static constexpr const char* name() {return "transportLayerAddress_t";} - using parent_t = TransportLayerAddress; - - }; - transportLayerAddress_t& ref_transportLayerAddress() {return transportLayerAddress;} - transportLayerAddress_t const& ref_transportLayerAddress() const {return transportLayerAddress;} - struct gTP_TEID_t : GTP_TEI - { - static constexpr const char* name() {return "gTP_TEID_t";} - using parent_t = GTP_TEI; - - }; - gTP_TEID_t& ref_gTP_TEID() {return gTP_TEID;} - gTP_TEID_t const& ref_gTP_TEID() const {return gTP_TEID;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(transportLayerAddress); - v(gTP_TEID); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(transportLayerAddress); - v(gTP_TEID); - v(iE_Extensions); - - }; - void clear() - { - transportLayerAddress.clear(); - gTP_TEID.clear(); - iE_Extensions.clear(); - - }; - private: - transportLayerAddress_t transportLayerAddress; - gTP_TEID_t gTP_TEID; - iE_Extensions_t iE_Extensions; - -}; -/* -MME-Group-ID ::= OCTET STRING (SIZE (2)) -*/ - -struct MME_Group_ID : asn::ostring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "MME-Group-ID";} - using parent_t = asn::ostring<>; - -}; - -/* -GU-Group-ID-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct GU_Group_ID_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -GU-Group-ID ::= SEQUENCE { - pLMN-Identity PLMN-Identity, - mME-Group-ID MME-Group-ID, - iE-Extensions ProtocolExtensionContainer { {GU-Group-ID-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct GU_Group_ID : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "GU-Group-ID";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct pLMN_Identity_t : PLMN_Identity - { - static constexpr const char* name() {return "pLMN_Identity_t";} - using parent_t = PLMN_Identity; - - }; - pLMN_Identity_t& ref_pLMN_Identity() {return pLMN_Identity;} - pLMN_Identity_t const& ref_pLMN_Identity() const {return pLMN_Identity;} - struct mME_Group_ID_t : MME_Group_ID - { - static constexpr const char* name() {return "mME_Group_ID_t";} - using parent_t = MME_Group_ID; - - }; - mME_Group_ID_t& ref_mME_Group_ID() {return mME_Group_ID;} - mME_Group_ID_t const& ref_mME_Group_ID() const {return mME_Group_ID;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(pLMN_Identity); - v(mME_Group_ID); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(pLMN_Identity); - v(mME_Group_ID); - v(iE_Extensions); - - }; - void clear() - { - pLMN_Identity.clear(); - mME_Group_ID.clear(); - iE_Extensions.clear(); - - }; - private: - pLMN_Identity_t pLMN_Identity; - mME_Group_ID_t mME_Group_ID; - iE_Extensions_t iE_Extensions; - -}; -/* -GUGroupIDList ::= SEQUENCE (SIZE (1..maxPools)) OF GU-Group-ID -*/ - -struct GUGroupIDList_elm : GU_Group_ID -{ - static constexpr const char* name() {return "GUGroupIDList_elm";} - using parent_t = GU_Group_ID; - -}; -struct GUGroupIDList : asn::sequenceof -{ - static constexpr const char* name() {return "GUGroupIDList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -MME-Code ::= OCTET STRING (SIZE (1)) -*/ - -struct MME_Code : asn::ostring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "MME-Code";} - using parent_t = asn::ostring<>; - -}; - -/* -GUMMEI-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct GUMMEI_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -GUMMEI ::= SEQUENCE { - - gU-Group-ID GU-Group-ID, - mME-Code MME-Code, - iE-Extensions ProtocolExtensionContainer { {GUMMEI-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct GUMMEI : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "GUMMEI";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct gU_Group_ID_t : GU_Group_ID - { - static constexpr const char* name() {return "gU_Group_ID_t";} - using parent_t = GU_Group_ID; - - }; - gU_Group_ID_t& ref_gU_Group_ID() {return gU_Group_ID;} - gU_Group_ID_t const& ref_gU_Group_ID() const {return gU_Group_ID;} - struct mME_Code_t : MME_Code - { - static constexpr const char* name() {return "mME_Code_t";} - using parent_t = MME_Code; - - }; - mME_Code_t& ref_mME_Code() {return mME_Code;} - mME_Code_t const& ref_mME_Code() const {return mME_Code;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(gU_Group_ID); - v(mME_Code); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(gU_Group_ID); - v(mME_Code); - v(iE_Extensions); - - }; - void clear() - { - gU_Group_ID.clear(); - mME_Code.clear(); - iE_Extensions.clear(); - - }; - private: - gU_Group_ID_t gU_Group_ID; - mME_Code_t mME_Code; - iE_Extensions_t iE_Extensions; - -}; -/* -GlobalENB-ID-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct GlobalENB_ID_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -GlobalENB-ID ::= SEQUENCE { - pLMN-Identity PLMN-Identity, - eNB-ID ENB-ID, - iE-Extensions ProtocolExtensionContainer { {GlobalENB-ID-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct GlobalENB_ID : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "GlobalENB-ID";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct pLMN_Identity_t : PLMN_Identity - { - static constexpr const char* name() {return "pLMN_Identity_t";} - using parent_t = PLMN_Identity; - - }; - pLMN_Identity_t& ref_pLMN_Identity() {return pLMN_Identity;} - pLMN_Identity_t const& ref_pLMN_Identity() const {return pLMN_Identity;} - struct eNB_ID_t : ENB_ID - { - static constexpr const char* name() {return "eNB_ID_t";} - using parent_t = ENB_ID; - - }; - eNB_ID_t& ref_eNB_ID() {return eNB_ID;} - eNB_ID_t const& ref_eNB_ID() const {return eNB_ID;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(pLMN_Identity); - v(eNB_ID); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(pLMN_Identity); - v(eNB_ID); - v(iE_Extensions); - - }; - void clear() - { - pLMN_Identity.clear(); - eNB_ID.clear(); - iE_Extensions.clear(); - - }; - private: - pLMN_Identity_t pLMN_Identity; - eNB_ID_t eNB_ID; - iE_Extensions_t iE_Extensions; - -}; -/* -GlobalGNB-ID-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct GlobalGNB_ID_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -GlobalGNB-ID ::= SEQUENCE { - pLMN-Identity PLMN-Identity, - gNB-ID GNB-ID, - iE-Extensions ProtocolExtensionContainer { {GlobalGNB-ID-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct GlobalGNB_ID : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "GlobalGNB-ID";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct pLMN_Identity_t : PLMN_Identity - { - static constexpr const char* name() {return "pLMN_Identity_t";} - using parent_t = PLMN_Identity; - - }; - pLMN_Identity_t& ref_pLMN_Identity() {return pLMN_Identity;} - pLMN_Identity_t const& ref_pLMN_Identity() const {return pLMN_Identity;} - struct gNB_ID_t : GNB_ID - { - static constexpr const char* name() {return "gNB_ID_t";} - using parent_t = GNB_ID; - - }; - gNB_ID_t& ref_gNB_ID() {return gNB_ID;} - gNB_ID_t const& ref_gNB_ID() const {return gNB_ID;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(pLMN_Identity); - v(gNB_ID); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(pLMN_Identity); - v(gNB_ID); - v(iE_Extensions); - - }; - void clear() - { - pLMN_Identity.clear(); - gNB_ID.clear(); - iE_Extensions.clear(); - - }; - private: - pLMN_Identity_t pLMN_Identity; - gNB_ID_t gNB_ID; - iE_Extensions_t iE_Extensions; - -}; -/* -LoadIndicator ::= ENUMERATED { - lowLoad, - mediumLoad, - highLoad, - overLoad, - ... -} -*/ - -struct LoadIndicator : asn::enumerated<4, 0, true> -{ - static constexpr const char* name() {return "LoadIndicator";} - using parent_t = asn::enumerated<4, 0, true>; - typedef enum { - lowLoad - ,mediumLoad - ,highLoad - ,overLoad - } index_t; - -}; - -/* -HWLoadIndicator-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct HWLoadIndicator_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -HWLoadIndicator ::= SEQUENCE { - dLHWLoadIndicator LoadIndicator, - uLHWLoadIndicator LoadIndicator, - iE-Extensions ProtocolExtensionContainer { {HWLoadIndicator-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct HWLoadIndicator : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "HWLoadIndicator";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct dLHWLoadIndicator_t : LoadIndicator - { - static constexpr const char* name() {return "dLHWLoadIndicator_t";} - using parent_t = LoadIndicator; - - }; - dLHWLoadIndicator_t& ref_dLHWLoadIndicator() {return dLHWLoadIndicator;} - dLHWLoadIndicator_t const& ref_dLHWLoadIndicator() const {return dLHWLoadIndicator;} - struct uLHWLoadIndicator_t : LoadIndicator - { - static constexpr const char* name() {return "uLHWLoadIndicator_t";} - using parent_t = LoadIndicator; - - }; - uLHWLoadIndicator_t& ref_uLHWLoadIndicator() {return uLHWLoadIndicator;} - uLHWLoadIndicator_t const& ref_uLHWLoadIndicator() const {return uLHWLoadIndicator;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(dLHWLoadIndicator); - v(uLHWLoadIndicator); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(dLHWLoadIndicator); - v(uLHWLoadIndicator); - v(iE_Extensions); - - }; - void clear() - { - dLHWLoadIndicator.clear(); - uLHWLoadIndicator.clear(); - iE_Extensions.clear(); - - }; - private: - dLHWLoadIndicator_t dLHWLoadIndicator; - uLHWLoadIndicator_t uLHWLoadIndicator; - iE_Extensions_t iE_Extensions; - -}; -/* -HandoverReportType ::= ENUMERATED { - hoTooEarly, - hoToWrongCell, - ..., - interRATpingpong -} -*/ - -struct HandoverReportType : asn::enumerated<3, 1, true> -{ - static constexpr const char* name() {return "HandoverReportType";} - using parent_t = asn::enumerated<3, 1, true>; - typedef enum { - hoTooEarly - ,hoToWrongCell - ,interRATpingpong - } index_t; - -}; - -/* -NRrestrictioninEPSasSecondaryRAT ::= ENUMERATED { - nRrestrictedinEPSasSecondaryRAT, - ... -} -*/ - -struct NRrestrictioninEPSasSecondaryRAT : asn::enumerated<1, 0, true> -{ - static constexpr const char* name() {return "NRrestrictioninEPSasSecondaryRAT";} - using parent_t = asn::enumerated<1, 0, true>; - typedef enum { - nRrestrictedinEPSasSecondaryRAT - } index_t; - -}; - -/* -NRrestrictionin5GS ::= ENUMERATED { - nRrestrictedin5GS, - ... -} -*/ - -struct NRrestrictionin5GS : asn::enumerated<1, 0, true> -{ - static constexpr const char* name() {return "NRrestrictionin5GS";} - using parent_t = asn::enumerated<1, 0, true>; - typedef enum { - nRrestrictedin5GS - } index_t; - -}; - -/* -HandoverRestrictionList-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-NRrestrictioninEPSasSecondaryRAT CRITICALITY ignore EXTENSION NRrestrictioninEPSasSecondaryRAT PRESENCE optional}| - { ID id-CNTypeRestrictions CRITICALITY ignore EXTENSION CNTypeRestrictions PRESENCE optional}| - { ID id-NRrestrictionin5GS CRITICALITY ignore EXTENSION NRrestrictionin5GS PRESENCE optional}, - ... -} -*/ - -struct HandoverRestrictionList_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_NRrestrictioninEPSasSecondaryRAT() { set(id_NRrestrictioninEPSasSecondaryRAT); type=1;} - void select_id_CNTypeRestrictions() { set(id_CNTypeRestrictions); type=2;} - void select_id_NRrestrictionin5GS() { set(id_NRrestrictionin5GS); type=3;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_NRrestrictioninEPSasSecondaryRAT)) { type = 1; return true; } - else if(equal(id_CNTypeRestrictions)) { type = 2; return true; } - else if(equal(id_NRrestrictionin5GS)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_NRrestrictioninEPSasSecondaryRAT);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_CNTypeRestrictions);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_NRrestrictionin5GS);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_NRrestrictioninEPSasSecondaryRAT() { set(ignore); type=1;} - void select_id_CNTypeRestrictions() { set(ignore); type=2;} - void select_id_NRrestrictionin5GS() { set(ignore); type=3;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - NRrestrictioninEPSasSecondaryRAT& select_id_NRrestrictioninEPSasSecondaryRAT() { return set(1); } - NRrestrictioninEPSasSecondaryRAT const* get_id_NRrestrictioninEPSasSecondaryRAT() const { return get(1); } - CNTypeRestrictions& select_id_CNTypeRestrictions() { return set(2); } - CNTypeRestrictions const* get_id_CNTypeRestrictions() const { return get(2); } - NRrestrictionin5GS& select_id_NRrestrictionin5GS() { return set(3); } - NRrestrictionin5GS const* get_id_NRrestrictionin5GS() const { return get(3); } - bool is_unknown() const { return type == 4; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_NRrestrictioninEPSasSecondaryRAT()); return true; - case 2: v(select_id_CNTypeRestrictions()); return true; - case 3: v(select_id_NRrestrictionin5GS()); return true; - case 4: if(type != 4) {clear(); asn::base::set();} type = 4; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CNTypeRestrictions)]; - char dummy2[sizeof(NRrestrictionin5GS)]; - char dummy3[sizeof(NRrestrictioninEPSasSecondaryRAT)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_NRrestrictioninEPSasSecondaryRAT() { set(optional); type=1;} - void select_id_CNTypeRestrictions() { set(optional); type=2;} - void select_id_NRrestrictionin5GS() { set(optional); type=3;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -HandoverRestrictionList ::= SEQUENCE { - servingPLMN PLMN-Identity, - equivalentPLMNs EPLMNs OPTIONAL, - forbiddenTAs ForbiddenTAs OPTIONAL, - forbiddenLAs ForbiddenLAs OPTIONAL, - forbiddenInterRATs ForbiddenInterRATs OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {HandoverRestrictionList-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct HandoverRestrictionList : asn::sequence<6, 0, true, 5> -{ - static constexpr const char* name() {return "HandoverRestrictionList";} - using parent_t = asn::sequence<6, 0, true, 5>; - struct servingPLMN_t : PLMN_Identity - { - static constexpr const char* name() {return "servingPLMN_t";} - using parent_t = PLMN_Identity; - - }; - servingPLMN_t& ref_servingPLMN() {return servingPLMN;} - servingPLMN_t const& ref_servingPLMN() const {return servingPLMN;} - struct equivalentPLMNs_t : EPLMNs - { - static constexpr const char* name() {return "equivalentPLMNs_t";} - using parent_t = EPLMNs; - static constexpr bool optional = true; - - }; - equivalentPLMNs_t& set_equivalentPLMNs() { equivalentPLMNs.setpresent(true); return equivalentPLMNs;} - equivalentPLMNs_t const* get_equivalentPLMNs() const {return equivalentPLMNs.is_valid() ? &equivalentPLMNs : nullptr;} - struct forbiddenTAs_t : ForbiddenTAs - { - static constexpr const char* name() {return "forbiddenTAs_t";} - using parent_t = ForbiddenTAs; - static constexpr bool optional = true; - - }; - forbiddenTAs_t& set_forbiddenTAs() { forbiddenTAs.setpresent(true); return forbiddenTAs;} - forbiddenTAs_t const* get_forbiddenTAs() const {return forbiddenTAs.is_valid() ? &forbiddenTAs : nullptr;} - struct forbiddenLAs_t : ForbiddenLAs - { - static constexpr const char* name() {return "forbiddenLAs_t";} - using parent_t = ForbiddenLAs; - static constexpr bool optional = true; - - }; - forbiddenLAs_t& set_forbiddenLAs() { forbiddenLAs.setpresent(true); return forbiddenLAs;} - forbiddenLAs_t const* get_forbiddenLAs() const {return forbiddenLAs.is_valid() ? &forbiddenLAs : nullptr;} - struct forbiddenInterRATs_t : ForbiddenInterRATs - { - static constexpr const char* name() {return "forbiddenInterRATs_t";} - using parent_t = ForbiddenInterRATs; - static constexpr bool optional = true; - - }; - forbiddenInterRATs_t& set_forbiddenInterRATs() { forbiddenInterRATs.setpresent(true); return forbiddenInterRATs;} - forbiddenInterRATs_t const* get_forbiddenInterRATs() const {return forbiddenInterRATs.is_valid() ? &forbiddenInterRATs : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(servingPLMN); - v(equivalentPLMNs); - v(forbiddenTAs); - v(forbiddenLAs); - v(forbiddenInterRATs); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(servingPLMN); - v(equivalentPLMNs); - v(forbiddenTAs); - v(forbiddenLAs); - v(forbiddenInterRATs); - v(iE_Extensions); - - }; - void clear() - { - servingPLMN.clear(); - equivalentPLMNs.clear(); - forbiddenTAs.clear(); - forbiddenLAs.clear(); - forbiddenInterRATs.clear(); - iE_Extensions.clear(); - - }; - private: - servingPLMN_t servingPLMN; - equivalentPLMNs_t equivalentPLMNs; - forbiddenTAs_t forbiddenTAs; - forbiddenLAs_t forbiddenLAs; - forbiddenInterRATs_t forbiddenInterRATs; - iE_Extensions_t iE_Extensions; - -}; -/* -IntegrityProtectionAlgorithms ::= BIT STRING (SIZE (16, ...)) -*/ - -struct IntegrityProtectionAlgorithms : asn::bstring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "IntegrityProtectionAlgorithms";} - using parent_t = asn::bstring<>; - -}; - -/* -InterfacesToTrace ::= BIT STRING (SIZE (8)) -*/ - -struct InterfacesToTrace : asn::bstring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "InterfacesToTrace";} - using parent_t = asn::bstring<>; - -}; - -/* -InvokeIndication ::= ENUMERATED{ - abs-information, - ..., - naics-information-start, - naics-information-stop -} -*/ - -struct InvokeIndication : asn::enumerated<3, 2, true> -{ - static constexpr const char* name() {return "InvokeIndication";} - using parent_t = asn::enumerated<3, 2, true>; - typedef enum { - abs_information - ,naics_information_start - ,naics_information_stop - } index_t; - -}; - -/* -LCID ::= INTEGER(1..32, ...) -*/ - -struct LCID : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "LCID";} - using parent_t = asn::integer<>; - -}; - -/* -LHN-ID ::= OCTET STRING(SIZE (32..256)) -*/ - -struct LHN_ID : asn::ostring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "LHN-ID";} - using parent_t = asn::ostring<>; - -}; - -/* -Time-UE-StayedInCell ::= INTEGER (0..4095) -*/ - -struct Time_UE_StayedInCell : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "Time-UE-StayedInCell";} - using parent_t = asn::integer<>; - -}; - -/* -Time-UE-StayedInCell-EnhancedGranularity ::= INTEGER (0..40950) -*/ - -struct Time_UE_StayedInCell_EnhancedGranularity : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "Time-UE-StayedInCell-EnhancedGranularity";} - using parent_t = asn::integer<>; - -}; - -/* -LastVisitedEUTRANCellInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { --- Extension for Rel-11 to support enhanced granularity for time UE stayed in cell -- - { ID id-Time-UE-StayedInCell-EnhancedGranularity CRITICALITY ignore EXTENSION Time-UE-StayedInCell-EnhancedGranularity PRESENCE optional}| - { ID id-HO-cause CRITICALITY ignore EXTENSION Cause PRESENCE optional}, - ... -} -*/ - -struct LastVisitedEUTRANCellInformation_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_Time_UE_StayedInCell_EnhancedGranularity() { set(id_Time_UE_StayedInCell_EnhancedGranularity); type=1;} - void select_id_HO_cause() { set(id_HO_cause); type=2;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_Time_UE_StayedInCell_EnhancedGranularity)) { type = 1; return true; } - else if(equal(id_HO_cause)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_Time_UE_StayedInCell_EnhancedGranularity);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_HO_cause);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_Time_UE_StayedInCell_EnhancedGranularity() { set(ignore); type=1;} - void select_id_HO_cause() { set(ignore); type=2;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - Time_UE_StayedInCell_EnhancedGranularity& select_id_Time_UE_StayedInCell_EnhancedGranularity() { return set(1); } - Time_UE_StayedInCell_EnhancedGranularity const* get_id_Time_UE_StayedInCell_EnhancedGranularity() const { return get(1); } - Cause& select_id_HO_cause() { return set(2); } - Cause const* get_id_HO_cause() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_Time_UE_StayedInCell_EnhancedGranularity()); return true; - case 2: v(select_id_HO_cause()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(Time_UE_StayedInCell_EnhancedGranularity)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_Time_UE_StayedInCell_EnhancedGranularity() { set(optional); type=1;} - void select_id_HO_cause() { set(optional); type=2;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -LastVisitedEUTRANCellInformation ::= SEQUENCE { - global-Cell-ID ECGI, - cellType CellType, - time-UE-StayedInCell Time-UE-StayedInCell, - iE-Extensions ProtocolExtensionContainer { {LastVisitedEUTRANCellInformation-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct LastVisitedEUTRANCellInformation : asn::sequence<4, 0, true, 1> -{ - static constexpr const char* name() {return "LastVisitedEUTRANCellInformation";} - using parent_t = asn::sequence<4, 0, true, 1>; - struct global_Cell_ID_t : ECGI - { - static constexpr const char* name() {return "global_Cell_ID_t";} - using parent_t = ECGI; - - }; - global_Cell_ID_t& ref_global_Cell_ID() {return global_Cell_ID;} - global_Cell_ID_t const& ref_global_Cell_ID() const {return global_Cell_ID;} - struct cellType_t : CellType - { - static constexpr const char* name() {return "cellType_t";} - using parent_t = CellType; - - }; - cellType_t& ref_cellType() {return cellType;} - cellType_t const& ref_cellType() const {return cellType;} - struct time_UE_StayedInCell_t : Time_UE_StayedInCell - { - static constexpr const char* name() {return "time_UE_StayedInCell_t";} - using parent_t = Time_UE_StayedInCell; - - }; - time_UE_StayedInCell_t& ref_time_UE_StayedInCell() {return time_UE_StayedInCell;} - time_UE_StayedInCell_t const& ref_time_UE_StayedInCell() const {return time_UE_StayedInCell;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(global_Cell_ID); - v(cellType); - v(time_UE_StayedInCell); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(global_Cell_ID); - v(cellType); - v(time_UE_StayedInCell); - v(iE_Extensions); - - }; - void clear() - { - global_Cell_ID.clear(); - cellType.clear(); - time_UE_StayedInCell.clear(); - iE_Extensions.clear(); - - }; - private: - global_Cell_ID_t global_Cell_ID; - cellType_t cellType; - time_UE_StayedInCell_t time_UE_StayedInCell; - iE_Extensions_t iE_Extensions; - -}; -/* -LastVisitedUTRANCellInformation ::= OCTET STRING -*/ - -struct LastVisitedUTRANCellInformation : asn::ostring<> -{ - static constexpr const char* name() {return "LastVisitedUTRANCellInformation";} - using parent_t = asn::ostring<>; - -}; - -/* -LastVisitedGERANCellInformation ::= CHOICE { - undefined NULL, - ... -} -*/ - -struct LastVisitedGERANCellInformation : asn::choice<1, 0, true> -{ - static constexpr const char* name() {return "LastVisitedGERANCellInformation";} - using parent_t = asn::choice<1, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 2;} - void set_unknown() { set_index(2); } - ~LastVisitedGERANCellInformation() {clear();} - struct undefined_t : asn::nulltype - { - static constexpr const char* name() {return "undefined_t";} - using parent_t = asn::nulltype; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - undefined_t& select_undefined() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - undefined_t const* get_undefined() const { if(get_index() == 1) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(undefined_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -LastVisitedNGRANCellInformation ::= OCTET STRING -*/ - -struct LastVisitedNGRANCellInformation : asn::ostring<> -{ - static constexpr const char* name() {return "LastVisitedNGRANCellInformation";} - using parent_t = asn::ostring<>; - -}; - -/* -LastVisitedCell-Item ::= CHOICE { - e-UTRAN-Cell LastVisitedEUTRANCellInformation, - uTRAN-Cell LastVisitedUTRANCellInformation, - gERAN-Cell LastVisitedGERANCellInformation, - ..., - nG-RAN-Cell LastVisitedNGRANCellInformation -} -*/ - -struct LastVisitedCell_Item : asn::choice<4, 1, true> -{ - static constexpr const char* name() {return "LastVisitedCell-Item";} - using parent_t = asn::choice<4, 1, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 5;} - void set_unknown() { set_index(5); } - ~LastVisitedCell_Item() {clear();} - struct e_UTRAN_Cell_t : LastVisitedEUTRANCellInformation - { - static constexpr const char* name() {return "e_UTRAN_Cell_t";} - using parent_t = LastVisitedEUTRANCellInformation; - - }; - struct uTRAN_Cell_t : LastVisitedUTRANCellInformation - { - static constexpr const char* name() {return "uTRAN_Cell_t";} - using parent_t = LastVisitedUTRANCellInformation; - - }; - struct gERAN_Cell_t : LastVisitedGERANCellInformation - { - static constexpr const char* name() {return "gERAN_Cell_t";} - using parent_t = LastVisitedGERANCellInformation; - - }; - struct nG_RAN_Cell_t : LastVisitedNGRANCellInformation - { - static constexpr const char* name() {return "nG_RAN_Cell_t";} - using parent_t = LastVisitedNGRANCellInformation; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - case 3: set_index(3); return v(var.build()); - case 4: set_index(4); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - case 3: return v(var.as()); - case 4: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - - } - e_UTRAN_Cell_t& select_e_UTRAN_Cell() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - e_UTRAN_Cell_t const* get_e_UTRAN_Cell() const { if(get_index() == 1) { return &var.as();} return nullptr; } - uTRAN_Cell_t& select_uTRAN_Cell() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - uTRAN_Cell_t const* get_uTRAN_Cell() const { if(get_index() == 2) { return &var.as();} return nullptr; } - gERAN_Cell_t& select_gERAN_Cell() { if(get_index() != 3) { clear(); set_index(3); return var.build();} return var.as();} - gERAN_Cell_t const* get_gERAN_Cell() const { if(get_index() == 3) { return &var.as();} return nullptr; } - nG_RAN_Cell_t& select_nG_RAN_Cell() { if(get_index() != 4) { clear(); set_index(4); return var.build();} return var.as();} - nG_RAN_Cell_t const* get_nG_RAN_Cell() const { if(get_index() == 4) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(e_UTRAN_Cell_t)]; - char dummy2[sizeof(uTRAN_Cell_t)]; - char dummy3[sizeof(gERAN_Cell_t)]; - char dummy4[sizeof(nG_RAN_Cell_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -Links-to-log ::= ENUMERATED {uplink, downlink, both-uplink-and-downlink, ...} -*/ - -struct Links_to_log : asn::enumerated<3, 0, true> -{ - static constexpr const char* name() {return "Links-to-log";} - using parent_t = asn::enumerated<3, 0, true>; - typedef enum { - uplink - ,downlink - ,both_uplink_and_downlink - } index_t; - -}; - -/* -ReportArea ::= ENUMERATED{ - ecgi, - ... -} -*/ - -struct ReportArea : asn::enumerated<1, 0, true> -{ - static constexpr const char* name() {return "ReportArea";} - using parent_t = asn::enumerated<1, 0, true>; - typedef enum { - ecgi - } index_t; - -}; - -/* -LocationReportingInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::={ - ... -} -*/ - -struct LocationReportingInformation_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -LocationReportingInformation ::= SEQUENCE { - eventType EventType, - reportArea ReportArea, - iE-Extensions ProtocolExtensionContainer { {LocationReportingInformation-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct LocationReportingInformation : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "LocationReportingInformation";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct eventType_t : EventType - { - static constexpr const char* name() {return "eventType_t";} - using parent_t = EventType; - - }; - eventType_t& ref_eventType() {return eventType;} - eventType_t const& ref_eventType() const {return eventType;} - struct reportArea_t : ReportArea - { - static constexpr const char* name() {return "reportArea_t";} - using parent_t = ReportArea; - - }; - reportArea_t& ref_reportArea() {return reportArea;} - reportArea_t const& ref_reportArea() const {return reportArea;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(eventType); - v(reportArea); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(eventType); - v(reportArea); - v(iE_Extensions); - - }; - void clear() - { - eventType.clear(); - reportArea.clear(); - iE_Extensions.clear(); - - }; - private: - eventType_t eventType; - reportArea_t reportArea; - iE_Extensions_t iE_Extensions; - -}; -/* -ReportIntervalMDT ::= ENUMERATED {ms120, ms240, ms480, ms640, ms1024, ms2048, ms5120, ms10240, min1, min6, min12, min30, min60} -*/ - -struct ReportIntervalMDT : asn::enumerated<13, 0, false> -{ - static constexpr const char* name() {return "ReportIntervalMDT";} - using parent_t = asn::enumerated<13, 0, false>; - typedef enum { - ms120 - ,ms240 - ,ms480 - ,ms640 - ,ms1024 - ,ms2048 - ,ms5120 - ,ms10240 - ,min1 - ,min6 - ,min12 - ,min30 - ,min60 - } index_t; - -}; - -/* -ReportAmountMDT ::= ENUMERATED{r1, r2, r4, r8, r16, r32, r64, rinfinity} -*/ - -struct ReportAmountMDT : asn::enumerated<8, 0, false> -{ - static constexpr const char* name() {return "ReportAmountMDT";} - using parent_t = asn::enumerated<8, 0, false>; - typedef enum { - r1 - ,r2 - ,r4 - ,r8 - ,r16 - ,r32 - ,r64 - ,rinfinity - } index_t; - -}; - -/* -M1PeriodicReporting-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct M1PeriodicReporting_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -M1PeriodicReporting ::= SEQUENCE { - reportInterval ReportIntervalMDT, - reportAmount ReportAmountMDT, - iE-Extensions ProtocolExtensionContainer { {M1PeriodicReporting-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct M1PeriodicReporting : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "M1PeriodicReporting";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct reportInterval_t : ReportIntervalMDT - { - static constexpr const char* name() {return "reportInterval_t";} - using parent_t = ReportIntervalMDT; - - }; - reportInterval_t& ref_reportInterval() {return reportInterval;} - reportInterval_t const& ref_reportInterval() const {return reportInterval;} - struct reportAmount_t : ReportAmountMDT - { - static constexpr const char* name() {return "reportAmount_t";} - using parent_t = ReportAmountMDT; - - }; - reportAmount_t& ref_reportAmount() {return reportAmount;} - reportAmount_t const& ref_reportAmount() const {return reportAmount;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(reportInterval); - v(reportAmount); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(reportInterval); - v(reportAmount); - v(iE_Extensions); - - }; - void clear() - { - reportInterval.clear(); - reportAmount.clear(); - iE_Extensions.clear(); - - }; - private: - reportInterval_t reportInterval; - reportAmount_t reportAmount; - iE_Extensions_t iE_Extensions; - -}; -/* -M1ReportingTrigger::= ENUMERATED{ - periodic, - a2eventtriggered, - ..., - a2eventtriggered-periodic -} -*/ - -struct M1ReportingTrigger : asn::enumerated<3, 1, true> -{ - static constexpr const char* name() {return "M1ReportingTrigger";} - using parent_t = asn::enumerated<3, 1, true>; - typedef enum { - periodic - ,a2eventtriggered - ,a2eventtriggered_periodic - } index_t; - -}; - -/* -Threshold-RSRP ::= INTEGER(0..97) -*/ - -struct Threshold_RSRP : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "Threshold-RSRP";} - using parent_t = asn::integer<>; - -}; - -/* -Threshold-RSRQ ::= INTEGER(0..34) -*/ - -struct Threshold_RSRQ : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "Threshold-RSRQ";} - using parent_t = asn::integer<>; - -}; - -/* -MeasurementThresholdA2 ::= CHOICE { - threshold-RSRP Threshold-RSRP, - threshold-RSRQ Threshold-RSRQ, - ... -} -*/ - -struct MeasurementThresholdA2 : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "MeasurementThresholdA2";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~MeasurementThresholdA2() {clear();} - struct threshold_RSRP_t : Threshold_RSRP - { - static constexpr const char* name() {return "threshold_RSRP_t";} - using parent_t = Threshold_RSRP; - - }; - struct threshold_RSRQ_t : Threshold_RSRQ - { - static constexpr const char* name() {return "threshold_RSRQ_t";} - using parent_t = Threshold_RSRQ; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - threshold_RSRP_t& select_threshold_RSRP() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - threshold_RSRP_t const* get_threshold_RSRP() const { if(get_index() == 1) { return &var.as();} return nullptr; } - threshold_RSRQ_t& select_threshold_RSRQ() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - threshold_RSRQ_t const* get_threshold_RSRQ() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(threshold_RSRP_t)]; - char dummy2[sizeof(threshold_RSRQ_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -M1ThresholdEventA2-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct M1ThresholdEventA2_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -M1ThresholdEventA2 ::= SEQUENCE { - measurementThreshold MeasurementThresholdA2, - iE-Extensions ProtocolExtensionContainer { {M1ThresholdEventA2-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct M1ThresholdEventA2 : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "M1ThresholdEventA2";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct measurementThreshold_t : MeasurementThresholdA2 - { - static constexpr const char* name() {return "measurementThreshold_t";} - using parent_t = MeasurementThresholdA2; - - }; - measurementThreshold_t& ref_measurementThreshold() {return measurementThreshold;} - measurementThreshold_t const& ref_measurementThreshold() const {return measurementThreshold;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(measurementThreshold); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(measurementThreshold); - v(iE_Extensions); - - }; - void clear() - { - measurementThreshold.clear(); - iE_Extensions.clear(); - - }; - private: - measurementThreshold_t measurementThreshold; - iE_Extensions_t iE_Extensions; - -}; -/* -M3period ::= ENUMERATED {ms100, ms1000, ms10000, ... } -*/ - -struct M3period : asn::enumerated<3, 0, true> -{ - static constexpr const char* name() {return "M3period";} - using parent_t = asn::enumerated<3, 0, true>; - typedef enum { - ms100 - ,ms1000 - ,ms10000 - } index_t; - -}; - -/* -M3Configuration-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct M3Configuration_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -M3Configuration ::= SEQUENCE { - m3period M3period, - iE-Extensions ProtocolExtensionContainer { {M3Configuration-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct M3Configuration : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "M3Configuration";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct m3period_t : M3period - { - static constexpr const char* name() {return "m3period_t";} - using parent_t = M3period; - - }; - m3period_t& ref_m3period() {return m3period;} - m3period_t const& ref_m3period() const {return m3period;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(m3period); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(m3period); - v(iE_Extensions); - - }; - void clear() - { - m3period.clear(); - iE_Extensions.clear(); - - }; - private: - m3period_t m3period; - iE_Extensions_t iE_Extensions; - -}; -/* -M4period ::= ENUMERATED {ms1024, ms2048, ms5120, ms10240, min1, ... } -*/ - -struct M4period : asn::enumerated<5, 0, true> -{ - static constexpr const char* name() {return "M4period";} - using parent_t = asn::enumerated<5, 0, true>; - typedef enum { - ms1024 - ,ms2048 - ,ms5120 - ,ms10240 - ,min1 - } index_t; - -}; - -/* -M4Configuration-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct M4Configuration_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -M4Configuration ::= SEQUENCE { - m4period M4period, - m4-links-to-log Links-to-log, - iE-Extensions ProtocolExtensionContainer { {M4Configuration-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct M4Configuration : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "M4Configuration";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct m4period_t : M4period - { - static constexpr const char* name() {return "m4period_t";} - using parent_t = M4period; - - }; - m4period_t& ref_m4period() {return m4period;} - m4period_t const& ref_m4period() const {return m4period;} - struct m4_links_to_log_t : Links_to_log - { - static constexpr const char* name() {return "m4_links_to_log_t";} - using parent_t = Links_to_log; - - }; - m4_links_to_log_t& ref_m4_links_to_log() {return m4_links_to_log;} - m4_links_to_log_t const& ref_m4_links_to_log() const {return m4_links_to_log;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(m4period); - v(m4_links_to_log); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(m4period); - v(m4_links_to_log); - v(iE_Extensions); - - }; - void clear() - { - m4period.clear(); - m4_links_to_log.clear(); - iE_Extensions.clear(); - - }; - private: - m4period_t m4period; - m4_links_to_log_t m4_links_to_log; - iE_Extensions_t iE_Extensions; - -}; -/* -M5period ::= ENUMERATED {ms1024, ms2048, ms5120, ms10240, min1, ... } -*/ - -struct M5period : asn::enumerated<5, 0, true> -{ - static constexpr const char* name() {return "M5period";} - using parent_t = asn::enumerated<5, 0, true>; - typedef enum { - ms1024 - ,ms2048 - ,ms5120 - ,ms10240 - ,min1 - } index_t; - -}; - -/* -M5Configuration-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct M5Configuration_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -M5Configuration ::= SEQUENCE { - m5period M5period, - m5-links-to-log Links-to-log, - iE-Extensions ProtocolExtensionContainer { {M5Configuration-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct M5Configuration : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "M5Configuration";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct m5period_t : M5period - { - static constexpr const char* name() {return "m5period_t";} - using parent_t = M5period; - - }; - m5period_t& ref_m5period() {return m5period;} - m5period_t const& ref_m5period() const {return m5period;} - struct m5_links_to_log_t : Links_to_log - { - static constexpr const char* name() {return "m5_links_to_log_t";} - using parent_t = Links_to_log; - - }; - m5_links_to_log_t& ref_m5_links_to_log() {return m5_links_to_log;} - m5_links_to_log_t const& ref_m5_links_to_log() const {return m5_links_to_log;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(m5period); - v(m5_links_to_log); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(m5period); - v(m5_links_to_log); - v(iE_Extensions); - - }; - void clear() - { - m5period.clear(); - m5_links_to_log.clear(); - iE_Extensions.clear(); - - }; - private: - m5period_t m5period; - m5_links_to_log_t m5_links_to_log; - iE_Extensions_t iE_Extensions; - -}; -/* -M6report-interval ::= ENUMERATED { ms1024, ms2048, ms5120, ms10240, ... } -*/ - -struct M6report_interval : asn::enumerated<4, 0, true> -{ - static constexpr const char* name() {return "M6report-interval";} - using parent_t = asn::enumerated<4, 0, true>; - typedef enum { - ms1024 - ,ms2048 - ,ms5120 - ,ms10240 - } index_t; - -}; - -/* -M6delay-threshold ::= ENUMERATED { ms30, ms40, ms50, ms60, ms70, ms80, ms90, ms100, ms150, ms300, ms500, ms750, ... } -*/ - -struct M6delay_threshold : asn::enumerated<12, 0, true> -{ - static constexpr const char* name() {return "M6delay-threshold";} - using parent_t = asn::enumerated<12, 0, true>; - typedef enum { - ms30 - ,ms40 - ,ms50 - ,ms60 - ,ms70 - ,ms80 - ,ms90 - ,ms100 - ,ms150 - ,ms300 - ,ms500 - ,ms750 - } index_t; - -}; - -/* -M6Configuration-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct M6Configuration_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -M6Configuration ::= SEQUENCE { - m6report-interval M6report-interval, - m6delay-threshold M6delay-threshold OPTIONAL, --- This IE shall be present if the M6 Links to log IE is set to “uplink” or to “both-uplink-and-downlink” -- - m6-links-to-log Links-to-log, - iE-Extensions ProtocolExtensionContainer { {M6Configuration-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct M6Configuration : asn::sequence<4, 0, true, 2> -{ - static constexpr const char* name() {return "M6Configuration";} - using parent_t = asn::sequence<4, 0, true, 2>; - struct m6report_interval_t : M6report_interval - { - static constexpr const char* name() {return "m6report_interval_t";} - using parent_t = M6report_interval; - - }; - m6report_interval_t& ref_m6report_interval() {return m6report_interval;} - m6report_interval_t const& ref_m6report_interval() const {return m6report_interval;} - struct m6delay_threshold_t : M6delay_threshold - { - static constexpr const char* name() {return "m6delay_threshold_t";} - using parent_t = M6delay_threshold; - static constexpr bool optional = true; - - }; - m6delay_threshold_t& set_m6delay_threshold() { m6delay_threshold.setpresent(true); return m6delay_threshold;} - m6delay_threshold_t const* get_m6delay_threshold() const {return m6delay_threshold.is_valid() ? &m6delay_threshold : nullptr;} - struct m6_links_to_log_t : Links_to_log - { - static constexpr const char* name() {return "m6_links_to_log_t";} - using parent_t = Links_to_log; - - }; - m6_links_to_log_t& ref_m6_links_to_log() {return m6_links_to_log;} - m6_links_to_log_t const& ref_m6_links_to_log() const {return m6_links_to_log;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(m6report_interval); - v(m6delay_threshold); - v(m6_links_to_log); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(m6report_interval); - v(m6delay_threshold); - v(m6_links_to_log); - v(iE_Extensions); - - }; - void clear() - { - m6report_interval.clear(); - m6delay_threshold.clear(); - m6_links_to_log.clear(); - iE_Extensions.clear(); - - }; - private: - m6report_interval_t m6report_interval; - m6delay_threshold_t m6delay_threshold; - m6_links_to_log_t m6_links_to_log; - iE_Extensions_t iE_Extensions; - -}; -/* -M7period ::= INTEGER(1..60, ...) -*/ - -struct M7period : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "M7period";} - using parent_t = asn::integer<>; - -}; - -/* -M7Configuration-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct M7Configuration_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -M7Configuration ::= SEQUENCE { - m7period M7period, - m7-links-to-log Links-to-log, - iE-Extensions ProtocolExtensionContainer { {M7Configuration-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct M7Configuration : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "M7Configuration";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct m7period_t : M7period - { - static constexpr const char* name() {return "m7period_t";} - using parent_t = M7period; - - }; - m7period_t& ref_m7period() {return m7period;} - m7period_t const& ref_m7period() const {return m7period;} - struct m7_links_to_log_t : Links_to_log - { - static constexpr const char* name() {return "m7_links_to_log_t";} - using parent_t = Links_to_log; - - }; - m7_links_to_log_t& ref_m7_links_to_log() {return m7_links_to_log;} - m7_links_to_log_t const& ref_m7_links_to_log() const {return m7_links_to_log;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(m7period); - v(m7_links_to_log); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(m7period); - v(m7_links_to_log); - v(iE_Extensions); - - }; - void clear() - { - m7period.clear(); - m7_links_to_log.clear(); - iE_Extensions.clear(); - - }; - private: - m7period_t m7period; - m7_links_to_log_t m7_links_to_log; - iE_Extensions_t iE_Extensions; - -}; -/* -MBMS-Service-Area-Identity ::= OCTET STRING (SIZE (2)) -*/ - -struct MBMS_Service_Area_Identity : asn::ostring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "MBMS-Service-Area-Identity";} - using parent_t = asn::ostring<>; - -}; - -/* -MBMS-Service-Area-Identity-List ::= SEQUENCE (SIZE(1.. maxnoofMBMSServiceAreaIdentities)) OF MBMS-Service-Area-Identity -*/ - -struct MBMS_Service_Area_Identity_List_elm : MBMS_Service_Area_Identity -{ - static constexpr const char* name() {return "MBMS_Service_Area_Identity_List_elm";} - using parent_t = MBMS_Service_Area_Identity; - -}; -struct MBMS_Service_Area_Identity_List : asn::sequenceof -{ - static constexpr const char* name() {return "MBMS-Service-Area-Identity-List";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -RadioframeAllocationPeriod ::= ENUMERATED{ - n1, - n2, - n4, - n8, - n16, - n32, - ... -} -*/ - -struct RadioframeAllocationPeriod : asn::enumerated<6, 0, true> -{ - static constexpr const char* name() {return "RadioframeAllocationPeriod";} - using parent_t = asn::enumerated<6, 0, true>; - typedef enum { - n1 - ,n2 - ,n4 - ,n8 - ,n16 - ,n32 - } index_t; - -}; - -/* -RadioframeAllocationOffset ::= INTEGER (0..7, ...) -*/ - -struct RadioframeAllocationOffset : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "RadioframeAllocationOffset";} - using parent_t = asn::integer<>; - -}; - -/* -Oneframe ::= BIT STRING (SIZE (6)) -*/ - -struct Oneframe : asn::bstring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "Oneframe";} - using parent_t = asn::bstring<>; - -}; - -/* -SubframeAllocation ::= CHOICE { - oneframe Oneframe, - fourframes Fourframes, - ... -} -*/ - -struct SubframeAllocation : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "SubframeAllocation";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~SubframeAllocation() {clear();} - struct oneframe_t : Oneframe - { - static constexpr const char* name() {return "oneframe_t";} - using parent_t = Oneframe; - - }; - struct fourframes_t : Fourframes - { - static constexpr const char* name() {return "fourframes_t";} - using parent_t = Fourframes; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - oneframe_t& select_oneframe() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - oneframe_t const* get_oneframe() const { if(get_index() == 1) { return &var.as();} return nullptr; } - fourframes_t& select_fourframes() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - fourframes_t const* get_fourframes() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(oneframe_t)]; - char dummy2[sizeof(fourframes_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -MBSFN-Subframe-Info-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct MBSFN_Subframe_Info_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -MBSFN-Subframe-Info ::= SEQUENCE { - radioframeAllocationPeriod RadioframeAllocationPeriod, - radioframeAllocationOffset RadioframeAllocationOffset, - subframeAllocation SubframeAllocation, - iE-Extensions ProtocolExtensionContainer { {MBSFN-Subframe-Info-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct MBSFN_Subframe_Info : asn::sequence<4, 0, true, 1> -{ - static constexpr const char* name() {return "MBSFN-Subframe-Info";} - using parent_t = asn::sequence<4, 0, true, 1>; - struct radioframeAllocationPeriod_t : RadioframeAllocationPeriod - { - static constexpr const char* name() {return "radioframeAllocationPeriod_t";} - using parent_t = RadioframeAllocationPeriod; - - }; - radioframeAllocationPeriod_t& ref_radioframeAllocationPeriod() {return radioframeAllocationPeriod;} - radioframeAllocationPeriod_t const& ref_radioframeAllocationPeriod() const {return radioframeAllocationPeriod;} - struct radioframeAllocationOffset_t : RadioframeAllocationOffset - { - static constexpr const char* name() {return "radioframeAllocationOffset_t";} - using parent_t = RadioframeAllocationOffset; - - }; - radioframeAllocationOffset_t& ref_radioframeAllocationOffset() {return radioframeAllocationOffset;} - radioframeAllocationOffset_t const& ref_radioframeAllocationOffset() const {return radioframeAllocationOffset;} - struct subframeAllocation_t : SubframeAllocation - { - static constexpr const char* name() {return "subframeAllocation_t";} - using parent_t = SubframeAllocation; - - }; - subframeAllocation_t& ref_subframeAllocation() {return subframeAllocation;} - subframeAllocation_t const& ref_subframeAllocation() const {return subframeAllocation;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(radioframeAllocationPeriod); - v(radioframeAllocationOffset); - v(subframeAllocation); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(radioframeAllocationPeriod); - v(radioframeAllocationOffset); - v(subframeAllocation); - v(iE_Extensions); - - }; - void clear() - { - radioframeAllocationPeriod.clear(); - radioframeAllocationOffset.clear(); - subframeAllocation.clear(); - iE_Extensions.clear(); - - }; - private: - radioframeAllocationPeriod_t radioframeAllocationPeriod; - radioframeAllocationOffset_t radioframeAllocationOffset; - subframeAllocation_t subframeAllocation; - iE_Extensions_t iE_Extensions; - -}; -/* -MBSFN-Subframe-Infolist::= SEQUENCE (SIZE(1.. maxnoofMBSFN)) OF MBSFN-Subframe-Info -*/ - -struct MBSFN_Subframe_Infolist_elm : MBSFN_Subframe_Info -{ - static constexpr const char* name() {return "MBSFN_Subframe_Infolist_elm";} - using parent_t = MBSFN_Subframe_Info; - -}; -struct MBSFN_Subframe_Infolist : asn::sequenceof -{ - static constexpr const char* name() {return "MBSFN-Subframe-Infolist";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -MDT-Activation ::= ENUMERATED { - immediate-MDT-only, - immediate-MDT-and-Trace, - ... -} -*/ - -struct MDT_Activation : asn::enumerated<2, 0, true> -{ - static constexpr const char* name() {return "MDT-Activation";} - using parent_t = asn::enumerated<2, 0, true>; - typedef enum { - immediate_MDT_only - ,immediate_MDT_and_Trace - } index_t; - -}; - -/* -MeasurementsToActivate::= BIT STRING (SIZE (8)) -*/ - -struct MeasurementsToActivate : asn::bstring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "MeasurementsToActivate";} - using parent_t = asn::bstring<>; - -}; - -/* -MDT-Location-Info ::= BIT STRING (SIZE (8)) -*/ - -struct MDT_Location_Info : asn::bstring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "MDT-Location-Info";} - using parent_t = asn::bstring<>; - -}; - -/* -MDTPLMNList ::= SEQUENCE (SIZE(1..maxnoofMDTPLMNs)) OF PLMN-Identity -*/ - -struct MDTPLMNList_elm : PLMN_Identity -{ - static constexpr const char* name() {return "MDTPLMNList_elm";} - using parent_t = PLMN_Identity; - -}; -struct MDTPLMNList : asn::sequenceof -{ - static constexpr const char* name() {return "MDTPLMNList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -WLANMeasConfig::= ENUMERATED {setup,...} -*/ - -struct WLANMeasConfig : asn::enumerated<1, 0, true> -{ - static constexpr const char* name() {return "WLANMeasConfig";} - using parent_t = asn::enumerated<1, 0, true>; - typedef enum { - setup - } index_t; - -}; - -/* -WLANName ::= OCTET STRING (SIZE (1..32)) -*/ - -struct WLANName : asn::ostring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "WLANName";} - using parent_t = asn::ostring<>; - -}; - -/* -WLANMeasConfigNameList ::= SEQUENCE (SIZE(1..maxnoofWLANName)) OF WLANName -*/ - -struct WLANMeasConfigNameList_elm : WLANName -{ - static constexpr const char* name() {return "WLANMeasConfigNameList_elm";} - using parent_t = WLANName; - -}; -struct WLANMeasConfigNameList : asn::sequenceof -{ - static constexpr const char* name() {return "WLANMeasConfigNameList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -WLANMeasurementConfiguration-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct WLANMeasurementConfiguration_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -WLANMeasurementConfiguration ::= SEQUENCE { - wlanMeasConfig WLANMeasConfig, - wlanMeasConfigNameList WLANMeasConfigNameList OPTIONAL, - wlan-rssi ENUMERATED {true, ...} OPTIONAL, - wlan-rtt ENUMERATED {true, ...} OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {WLANMeasurementConfiguration-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct WLANMeasurementConfiguration : asn::sequence<5, 0, true, 4> -{ - static constexpr const char* name() {return "WLANMeasurementConfiguration";} - using parent_t = asn::sequence<5, 0, true, 4>; - struct wlanMeasConfig_t : WLANMeasConfig - { - static constexpr const char* name() {return "wlanMeasConfig_t";} - using parent_t = WLANMeasConfig; - - }; - wlanMeasConfig_t& ref_wlanMeasConfig() {return wlanMeasConfig;} - wlanMeasConfig_t const& ref_wlanMeasConfig() const {return wlanMeasConfig;} - struct wlanMeasConfigNameList_t : WLANMeasConfigNameList - { - static constexpr const char* name() {return "wlanMeasConfigNameList_t";} - using parent_t = WLANMeasConfigNameList; - static constexpr bool optional = true; - - }; - wlanMeasConfigNameList_t& set_wlanMeasConfigNameList() { wlanMeasConfigNameList.setpresent(true); return wlanMeasConfigNameList;} - wlanMeasConfigNameList_t const* get_wlanMeasConfigNameList() const {return wlanMeasConfigNameList.is_valid() ? &wlanMeasConfigNameList : nullptr;} - struct wlan_rssi_t : asn::enumerated<1, 0, true> - { - static constexpr const char* name() {return "wlan_rssi_t";} - using parent_t = asn::enumerated<1, 0, true>; - static constexpr bool optional = true; - typedef enum { - True - } index_t; - - }; - - wlan_rssi_t& set_wlan_rssi() { wlan_rssi.setpresent(true); return wlan_rssi;} - wlan_rssi_t const* get_wlan_rssi() const {return wlan_rssi.is_valid() ? &wlan_rssi : nullptr;} - struct wlan_rtt_t : asn::enumerated<1, 0, true> - { - static constexpr const char* name() {return "wlan_rtt_t";} - using parent_t = asn::enumerated<1, 0, true>; - static constexpr bool optional = true; - typedef enum { - True - } index_t; - - }; - - wlan_rtt_t& set_wlan_rtt() { wlan_rtt.setpresent(true); return wlan_rtt;} - wlan_rtt_t const* get_wlan_rtt() const {return wlan_rtt.is_valid() ? &wlan_rtt : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(wlanMeasConfig); - v(wlanMeasConfigNameList); - v(wlan_rssi); - v(wlan_rtt); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(wlanMeasConfig); - v(wlanMeasConfigNameList); - v(wlan_rssi); - v(wlan_rtt); - v(iE_Extensions); - - }; - void clear() - { - wlanMeasConfig.clear(); - wlanMeasConfigNameList.clear(); - wlan_rssi.clear(); - wlan_rtt.clear(); - iE_Extensions.clear(); - - }; - private: - wlanMeasConfig_t wlanMeasConfig; - wlanMeasConfigNameList_t wlanMeasConfigNameList; - wlan_rssi_t wlan_rssi; - wlan_rtt_t wlan_rtt; - iE_Extensions_t iE_Extensions; - -}; -/* -MDT-Configuration-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - {ID id-M3Configuration CRITICALITY ignore EXTENSION M3Configuration PRESENCE conditional}| - {ID id-M4Configuration CRITICALITY ignore EXTENSION M4Configuration PRESENCE conditional}| - {ID id-M5Configuration CRITICALITY ignore EXTENSION M5Configuration PRESENCE conditional}| - {ID id-MDT-Location-Info CRITICALITY ignore EXTENSION MDT-Location-Info PRESENCE optional}| - {ID id-SignallingBasedMDTPLMNList CRITICALITY ignore EXTENSION MDTPLMNList PRESENCE optional}| - {ID id-M6Configuration CRITICALITY ignore EXTENSION M6Configuration PRESENCE conditional}| - {ID id-M7Configuration CRITICALITY ignore EXTENSION M7Configuration PRESENCE conditional}| - { ID id-BluetoothMeasurementConfiguration CRITICALITY ignore EXTENSION BluetoothMeasurementConfiguration PRESENCE optional}| - { ID id-WLANMeasurementConfiguration CRITICALITY ignore EXTENSION WLANMeasurementConfiguration PRESENCE optional}, - ... -} -*/ - -struct MDT_Configuration_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 10; } - void clear() {type = 0;} - void select_id_M3Configuration() { set(id_M3Configuration); type=1;} - void select_id_M4Configuration() { set(id_M4Configuration); type=2;} - void select_id_M5Configuration() { set(id_M5Configuration); type=3;} - void select_id_MDT_Location_Info() { set(id_MDT_Location_Info); type=4;} - void select_id_SignallingBasedMDTPLMNList() { set(id_SignallingBasedMDTPLMNList); type=5;} - void select_id_M6Configuration() { set(id_M6Configuration); type=6;} - void select_id_M7Configuration() { set(id_M7Configuration); type=7;} - void select_id_BluetoothMeasurementConfiguration() { set(id_BluetoothMeasurementConfiguration); type=8;} - void select_id_WLANMeasurementConfiguration() { set(id_WLANMeasurementConfiguration); type=9;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_M3Configuration)) { type = 1; return true; } - else if(equal(id_M4Configuration)) { type = 2; return true; } - else if(equal(id_M5Configuration)) { type = 3; return true; } - else if(equal(id_MDT_Location_Info)) { type = 4; return true; } - else if(equal(id_SignallingBasedMDTPLMNList)) { type = 5; return true; } - else if(equal(id_M6Configuration)) { type = 6; return true; } - else if(equal(id_M7Configuration)) { type = 7; return true; } - else if(equal(id_BluetoothMeasurementConfiguration)) { type = 8; return true; } - else if(equal(id_WLANMeasurementConfiguration)) { type = 9; return true; } - else { type = 10; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_M3Configuration);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_M4Configuration);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_M5Configuration);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_MDT_Location_Info);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_SignallingBasedMDTPLMNList);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_M6Configuration);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(id_M7Configuration);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(id_BluetoothMeasurementConfiguration);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(id_WLANMeasurementConfiguration);} return false; - case 10: type = 10; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 10; } - void clear() {type = 0;} - void select_id_M3Configuration() { set(ignore); type=1;} - void select_id_M4Configuration() { set(ignore); type=2;} - void select_id_M5Configuration() { set(ignore); type=3;} - void select_id_MDT_Location_Info() { set(ignore); type=4;} - void select_id_SignallingBasedMDTPLMNList() { set(ignore); type=5;} - void select_id_M6Configuration() { set(ignore); type=6;} - void select_id_M7Configuration() { set(ignore); type=7;} - void select_id_BluetoothMeasurementConfiguration() { set(ignore); type=8;} - void select_id_WLANMeasurementConfiguration() { set(ignore); type=9;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else if(equal(ignore)) { type = 6; return true; } - else if(equal(ignore)) { type = 7; return true; } - else if(equal(ignore)) { type = 8; return true; } - else if(equal(ignore)) { type = 9; return true; } - else { type = 10; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(ignore);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(ignore);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(ignore);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(ignore);} return false; - case 10: type = 10; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - M3Configuration& select_id_M3Configuration() { return set(1); } - M3Configuration const* get_id_M3Configuration() const { return get(1); } - M4Configuration& select_id_M4Configuration() { return set(2); } - M4Configuration const* get_id_M4Configuration() const { return get(2); } - M5Configuration& select_id_M5Configuration() { return set(3); } - M5Configuration const* get_id_M5Configuration() const { return get(3); } - MDT_Location_Info& select_id_MDT_Location_Info() { return set(4); } - MDT_Location_Info const* get_id_MDT_Location_Info() const { return get(4); } - MDTPLMNList& select_id_SignallingBasedMDTPLMNList() { return set(5); } - MDTPLMNList const* get_id_SignallingBasedMDTPLMNList() const { return get(5); } - M6Configuration& select_id_M6Configuration() { return set(6); } - M6Configuration const* get_id_M6Configuration() const { return get(6); } - M7Configuration& select_id_M7Configuration() { return set(7); } - M7Configuration const* get_id_M7Configuration() const { return get(7); } - BluetoothMeasurementConfiguration& select_id_BluetoothMeasurementConfiguration() { return set(8); } - BluetoothMeasurementConfiguration const* get_id_BluetoothMeasurementConfiguration() const { return get(8); } - WLANMeasurementConfiguration& select_id_WLANMeasurementConfiguration() { return set(9); } - WLANMeasurementConfiguration const* get_id_WLANMeasurementConfiguration() const { return get(9); } - bool is_unknown() const { return type == 10; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - case 7: var.destroy(); break; - case 8: var.destroy(); break; - case 9: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - v.template operator()(7); - v.template operator()(8); - v.template operator()(9); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_M3Configuration()); return true; - case 2: v(select_id_M4Configuration()); return true; - case 3: v(select_id_M5Configuration()); return true; - case 4: v(select_id_MDT_Location_Info()); return true; - case 5: v(select_id_SignallingBasedMDTPLMNList()); return true; - case 6: v(select_id_M6Configuration()); return true; - case 7: v(select_id_M7Configuration()); return true; - case 8: v(select_id_BluetoothMeasurementConfiguration()); return true; - case 9: v(select_id_WLANMeasurementConfiguration()); return true; - case 10: if(type != 10) {clear(); asn::base::set();} type = 10; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - case 7: v(var.as()); return true; - case 8: v(var.as()); return true; - case 9: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(BluetoothMeasurementConfiguration)]; - char dummy2[sizeof(M3Configuration)]; - char dummy3[sizeof(M4Configuration)]; - char dummy4[sizeof(M5Configuration)]; - char dummy5[sizeof(M6Configuration)]; - char dummy6[sizeof(M7Configuration)]; - char dummy7[sizeof(MDTPLMNList)]; - char dummy8[sizeof(MDT_Location_Info)]; - char dummy9[sizeof(WLANMeasurementConfiguration)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 10; } - void clear() {type = 0;} - void select_id_M3Configuration() { set(conditional); type=1;} - void select_id_M4Configuration() { set(conditional); type=2;} - void select_id_M5Configuration() { set(conditional); type=3;} - void select_id_MDT_Location_Info() { set(optional); type=4;} - void select_id_SignallingBasedMDTPLMNList() { set(optional); type=5;} - void select_id_M6Configuration() { set(conditional); type=6;} - void select_id_M7Configuration() { set(conditional); type=7;} - void select_id_BluetoothMeasurementConfiguration() { set(optional); type=8;} - void select_id_WLANMeasurementConfiguration() { set(optional); type=9;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(conditional)) { type = 1; return true; } - else if(equal(conditional)) { type = 2; return true; } - else if(equal(conditional)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else if(equal(conditional)) { type = 6; return true; } - else if(equal(conditional)) { type = 7; return true; } - else if(equal(optional)) { type = 8; return true; } - else if(equal(optional)) { type = 9; return true; } - else { type = 10; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(conditional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(conditional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(conditional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(conditional);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(conditional);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(optional);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(optional);} return false; - case 10: type = 10; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -MDT-Configuration ::= SEQUENCE { - mdt-Activation MDT-Activation, - areaScopeOfMDT AreaScopeOfMDT, - measurementsToActivate MeasurementsToActivate, - m1reportingTrigger M1ReportingTrigger, - m1thresholdeventA2 M1ThresholdEventA2 OPTIONAL, --- Included in case of event-triggered, or event-triggered periodic reporting for measurement M1 - m1periodicReporting M1PeriodicReporting OPTIONAL, --- Included in case of periodic, or event-triggered periodic reporting for measurement M1 - iE-Extensions ProtocolExtensionContainer { {MDT-Configuration-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct MDT_Configuration : asn::sequence<7, 0, true, 3> -{ - static constexpr const char* name() {return "MDT-Configuration";} - using parent_t = asn::sequence<7, 0, true, 3>; - struct mdt_Activation_t : MDT_Activation - { - static constexpr const char* name() {return "mdt_Activation_t";} - using parent_t = MDT_Activation; - - }; - mdt_Activation_t& ref_mdt_Activation() {return mdt_Activation;} - mdt_Activation_t const& ref_mdt_Activation() const {return mdt_Activation;} - struct areaScopeOfMDT_t : AreaScopeOfMDT - { - static constexpr const char* name() {return "areaScopeOfMDT_t";} - using parent_t = AreaScopeOfMDT; - - }; - areaScopeOfMDT_t& ref_areaScopeOfMDT() {return areaScopeOfMDT;} - areaScopeOfMDT_t const& ref_areaScopeOfMDT() const {return areaScopeOfMDT;} - struct measurementsToActivate_t : MeasurementsToActivate - { - static constexpr const char* name() {return "measurementsToActivate_t";} - using parent_t = MeasurementsToActivate; - - }; - measurementsToActivate_t& ref_measurementsToActivate() {return measurementsToActivate;} - measurementsToActivate_t const& ref_measurementsToActivate() const {return measurementsToActivate;} - struct m1reportingTrigger_t : M1ReportingTrigger - { - static constexpr const char* name() {return "m1reportingTrigger_t";} - using parent_t = M1ReportingTrigger; - - }; - m1reportingTrigger_t& ref_m1reportingTrigger() {return m1reportingTrigger;} - m1reportingTrigger_t const& ref_m1reportingTrigger() const {return m1reportingTrigger;} - struct m1thresholdeventA2_t : M1ThresholdEventA2 - { - static constexpr const char* name() {return "m1thresholdeventA2_t";} - using parent_t = M1ThresholdEventA2; - static constexpr bool optional = true; - - }; - m1thresholdeventA2_t& set_m1thresholdeventA2() { m1thresholdeventA2.setpresent(true); return m1thresholdeventA2;} - m1thresholdeventA2_t const* get_m1thresholdeventA2() const {return m1thresholdeventA2.is_valid() ? &m1thresholdeventA2 : nullptr;} - struct m1periodicReporting_t : M1PeriodicReporting - { - static constexpr const char* name() {return "m1periodicReporting_t";} - using parent_t = M1PeriodicReporting; - static constexpr bool optional = true; - - }; - m1periodicReporting_t& set_m1periodicReporting() { m1periodicReporting.setpresent(true); return m1periodicReporting;} - m1periodicReporting_t const* get_m1periodicReporting() const {return m1periodicReporting.is_valid() ? &m1periodicReporting : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(mdt_Activation); - v(areaScopeOfMDT); - v(measurementsToActivate); - v(m1reportingTrigger); - v(m1thresholdeventA2); - v(m1periodicReporting); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(mdt_Activation); - v(areaScopeOfMDT); - v(measurementsToActivate); - v(m1reportingTrigger); - v(m1thresholdeventA2); - v(m1periodicReporting); - v(iE_Extensions); - - }; - void clear() - { - mdt_Activation.clear(); - areaScopeOfMDT.clear(); - measurementsToActivate.clear(); - m1reportingTrigger.clear(); - m1thresholdeventA2.clear(); - m1periodicReporting.clear(); - iE_Extensions.clear(); - - }; - private: - mdt_Activation_t mdt_Activation; - areaScopeOfMDT_t areaScopeOfMDT; - measurementsToActivate_t measurementsToActivate; - m1reportingTrigger_t m1reportingTrigger; - m1thresholdeventA2_t m1thresholdeventA2; - m1periodicReporting_t m1periodicReporting; - iE_Extensions_t iE_Extensions; - -}; -/* -MakeBeforeBreakIndicator::= ENUMERATED {true, ...} -*/ - -struct MakeBeforeBreakIndicator : asn::enumerated<1, 0, true> -{ - static constexpr const char* name() {return "MakeBeforeBreakIndicator";} - using parent_t = asn::enumerated<1, 0, true>; - typedef enum { - True - } index_t; - -}; - -/* -ManagementBasedMDTallowed ::= ENUMERATED {allowed, ...} -*/ - -struct ManagementBasedMDTallowed : asn::enumerated<1, 0, true> -{ - static constexpr const char* name() {return "ManagementBasedMDTallowed";} - using parent_t = asn::enumerated<1, 0, true>; - typedef enum { - allowed - } index_t; - -}; - -/* -Masked-IMEISV ::= BIT STRING (SIZE (64)) -*/ - -struct Masked_IMEISV : asn::bstring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "Masked-IMEISV";} - using parent_t = asn::bstring<>; - -}; - -/* -MeNBCoordinationAssistanceInformation ::= ENUMERATED{ - coordination-not-required, - ... -} -*/ - -struct MeNBCoordinationAssistanceInformation : asn::enumerated<1, 0, true> -{ - static constexpr const char* name() {return "MeNBCoordinationAssistanceInformation";} - using parent_t = asn::enumerated<1, 0, true>; - typedef enum { - coordination_not_required - } index_t; - -}; - -/* -NRCellIdentifier ::= BIT STRING (SIZE (36)) -*/ - -struct NRCellIdentifier : asn::bstring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "NRCellIdentifier";} - using parent_t = asn::bstring<>; - -}; - -/* -NRCGI-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct NRCGI_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -NRCGI ::= SEQUENCE { - pLMN-Identity PLMN-Identity, - nRcellIdentifier NRCellIdentifier, - iE-Extensions ProtocolExtensionContainer { {NRCGI-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct NRCGI : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "NRCGI";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct pLMN_Identity_t : PLMN_Identity - { - static constexpr const char* name() {return "pLMN_Identity_t";} - using parent_t = PLMN_Identity; - - }; - pLMN_Identity_t& ref_pLMN_Identity() {return pLMN_Identity;} - pLMN_Identity_t const& ref_pLMN_Identity() const {return pLMN_Identity;} - struct nRcellIdentifier_t : NRCellIdentifier - { - static constexpr const char* name() {return "nRcellIdentifier_t";} - using parent_t = NRCellIdentifier; - - }; - nRcellIdentifier_t& ref_nRcellIdentifier() {return nRcellIdentifier;} - nRcellIdentifier_t const& ref_nRcellIdentifier() const {return nRcellIdentifier;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(pLMN_Identity); - v(nRcellIdentifier); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(pLMN_Identity); - v(nRcellIdentifier); - v(iE_Extensions); - - }; - void clear() - { - pLMN_Identity.clear(); - nRcellIdentifier.clear(); - iE_Extensions.clear(); - - }; - private: - pLMN_Identity_t pLMN_Identity; - nRcellIdentifier_t nRcellIdentifier; - iE_Extensions_t iE_Extensions; - -}; -/* -MeNBResourceCoordinationInformationExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-NRCGI CRITICALITY ignore EXTENSION NRCGI PRESENCE optional}| - { ID id-MeNBCoordinationAssistanceInformation CRITICALITY reject EXTENSION MeNBCoordinationAssistanceInformation PRESENCE optional}, - ... -} -*/ - -struct MeNBResourceCoordinationInformationExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_NRCGI() { set(id_NRCGI); type=1;} - void select_id_MeNBCoordinationAssistanceInformation() { set(id_MeNBCoordinationAssistanceInformation); type=2;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_NRCGI)) { type = 1; return true; } - else if(equal(id_MeNBCoordinationAssistanceInformation)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_NRCGI);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_MeNBCoordinationAssistanceInformation);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_NRCGI() { set(ignore); type=1;} - void select_id_MeNBCoordinationAssistanceInformation() { set(reject); type=2;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - NRCGI& select_id_NRCGI() { return set(1); } - NRCGI const* get_id_NRCGI() const { return get(1); } - MeNBCoordinationAssistanceInformation& select_id_MeNBCoordinationAssistanceInformation() { return set(2); } - MeNBCoordinationAssistanceInformation const* get_id_MeNBCoordinationAssistanceInformation() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_NRCGI()); return true; - case 2: v(select_id_MeNBCoordinationAssistanceInformation()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(MeNBCoordinationAssistanceInformation)]; - char dummy2[sizeof(NRCGI)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_NRCGI() { set(optional); type=1;} - void select_id_MeNBCoordinationAssistanceInformation() { set(optional); type=2;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -MeNBResourceCoordinationInformation ::= SEQUENCE { - eUTRA-Cell-ID ECGI, - uLCoordinationInformation BIT STRING (SIZE(6..4400, ...)), - dLCoordinationInformation BIT STRING (SIZE(6..4400, ...)) OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {MeNBResourceCoordinationInformationExtIEs} } OPTIONAL, - ... -} -*/ - -struct MeNBResourceCoordinationInformation : asn::sequence<4, 0, true, 2> -{ - static constexpr const char* name() {return "MeNBResourceCoordinationInformation";} - using parent_t = asn::sequence<4, 0, true, 2>; - struct eUTRA_Cell_ID_t : ECGI - { - static constexpr const char* name() {return "eUTRA_Cell_ID_t";} - using parent_t = ECGI; - - }; - eUTRA_Cell_ID_t& ref_eUTRA_Cell_ID() {return eUTRA_Cell_ID;} - eUTRA_Cell_ID_t const& ref_eUTRA_Cell_ID() const {return eUTRA_Cell_ID;} - struct uLCoordinationInformation_t : asn::bstring<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "uLCoordinationInformation_t";} - using parent_t = asn::bstring<>; - - }; - - uLCoordinationInformation_t& ref_uLCoordinationInformation() {return uLCoordinationInformation;} - uLCoordinationInformation_t const& ref_uLCoordinationInformation() const {return uLCoordinationInformation;} - struct dLCoordinationInformation_t : asn::bstring<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "dLCoordinationInformation_t";} - using parent_t = asn::bstring<>; - static constexpr bool optional = true; - - }; - - dLCoordinationInformation_t& set_dLCoordinationInformation() { dLCoordinationInformation.setpresent(true); return dLCoordinationInformation;} - dLCoordinationInformation_t const* get_dLCoordinationInformation() const {return dLCoordinationInformation.is_valid() ? &dLCoordinationInformation : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(eUTRA_Cell_ID); - v(uLCoordinationInformation); - v(dLCoordinationInformation); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(eUTRA_Cell_ID); - v(uLCoordinationInformation); - v(dLCoordinationInformation); - v(iE_Extensions); - - }; - void clear() - { - eUTRA_Cell_ID.clear(); - uLCoordinationInformation.clear(); - dLCoordinationInformation.clear(); - iE_Extensions.clear(); - - }; - private: - eUTRA_Cell_ID_t eUTRA_Cell_ID; - uLCoordinationInformation_t uLCoordinationInformation; - dLCoordinationInformation_t dLCoordinationInformation; - iE_Extensions_t iE_Extensions; - -}; -/* -MeNBtoSeNBContainer ::= OCTET STRING -*/ - -struct MeNBtoSeNBContainer : asn::ostring<> -{ - static constexpr const char* name() {return "MeNBtoSeNBContainer";} - using parent_t = asn::ostring<>; - -}; - -/* -MeNBtoSgNBContainer ::= OCTET STRING -*/ - -struct MeNBtoSgNBContainer : asn::ostring<> -{ - static constexpr const char* name() {return "MeNBtoSgNBContainer";} - using parent_t = asn::ostring<>; - -}; - -/* -Measurement-ID ::= INTEGER (1..4095, ...) -*/ - -struct Measurement_ID : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "Measurement-ID";} - using parent_t = asn::integer<>; - -}; - -/* -MobilityParametersInformation ::= SEQUENCE { - handoverTriggerChange INTEGER (-20..20), - ... -} -*/ - -struct MobilityParametersInformation : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "MobilityParametersInformation";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct handoverTriggerChange_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "handoverTriggerChange_t";} - using parent_t = asn::integer<>; - - }; - - handoverTriggerChange_t& ref_handoverTriggerChange() {return handoverTriggerChange;} - handoverTriggerChange_t const& ref_handoverTriggerChange() const {return handoverTriggerChange;} - template void decode(V& v) - { - v(handoverTriggerChange); - - }; - template void encode(V& v) const - { - v(handoverTriggerChange); - - }; - void clear() - { - handoverTriggerChange.clear(); - - }; - private: - handoverTriggerChange_t handoverTriggerChange; - -}; -/* -MobilityParametersModificationRange ::= SEQUENCE { - handoverTriggerChangeLowerLimit INTEGER (-20..20), - handoverTriggerChangeUpperLimit INTEGER (-20..20), - ... -} -*/ - -struct MobilityParametersModificationRange : asn::sequence<2, 0, true, 0> -{ - static constexpr const char* name() {return "MobilityParametersModificationRange";} - using parent_t = asn::sequence<2, 0, true, 0>; - struct handoverTriggerChangeLowerLimit_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "handoverTriggerChangeLowerLimit_t";} - using parent_t = asn::integer<>; - - }; - - handoverTriggerChangeLowerLimit_t& ref_handoverTriggerChangeLowerLimit() {return handoverTriggerChangeLowerLimit;} - handoverTriggerChangeLowerLimit_t const& ref_handoverTriggerChangeLowerLimit() const {return handoverTriggerChangeLowerLimit;} - struct handoverTriggerChangeUpperLimit_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "handoverTriggerChangeUpperLimit_t";} - using parent_t = asn::integer<>; - - }; - - handoverTriggerChangeUpperLimit_t& ref_handoverTriggerChangeUpperLimit() {return handoverTriggerChangeUpperLimit;} - handoverTriggerChangeUpperLimit_t const& ref_handoverTriggerChangeUpperLimit() const {return handoverTriggerChangeUpperLimit;} - template void decode(V& v) - { - v(handoverTriggerChangeLowerLimit); - v(handoverTriggerChangeUpperLimit); - - }; - template void encode(V& v) const - { - v(handoverTriggerChangeLowerLimit); - v(handoverTriggerChangeUpperLimit); - - }; - void clear() - { - handoverTriggerChangeLowerLimit.clear(); - handoverTriggerChangeUpperLimit.clear(); - - }; - private: - handoverTriggerChangeLowerLimit_t handoverTriggerChangeLowerLimit; - handoverTriggerChangeUpperLimit_t handoverTriggerChangeUpperLimit; - -}; -/* -MultibandInfoList ::= SEQUENCE (SIZE(1..maxnoofBands)) OF BandInfo -*/ - -struct MultibandInfoList_elm : BandInfo -{ - static constexpr const char* name() {return "MultibandInfoList_elm";} - using parent_t = BandInfo; - -}; -struct MultibandInfoList : asn::sequenceof -{ - static constexpr const char* name() {return "MultibandInfoList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -NRSCS ::= ENUMERATED { scs15, scs30, scs60, scs120, ...} -*/ - -struct NRSCS : asn::enumerated<4, 0, true> -{ - static constexpr const char* name() {return "NRSCS";} - using parent_t = asn::enumerated<4, 0, true>; - typedef enum { - scs15 - ,scs30 - ,scs60 - ,scs120 - } index_t; - -}; - -/* -NRNRB ::= ENUMERATED { nrb11, nrb18, nrb24, nrb25, nrb31, nrb32, nrb38, nrb51, nrb52, nrb65, nrb66, nrb78, nrb79, nrb93, nrb106, nrb107, nrb121, nrb132, nrb133, nrb135, nrb160, nrb162, nrb189, nrb216, nrb217, nrb245, nrb264, nrb270, nrb273, ...} -*/ - -struct NRNRB : asn::enumerated<29, 0, true> -{ - static constexpr const char* name() {return "NRNRB";} - using parent_t = asn::enumerated<29, 0, true>; - typedef enum { - nrb11 - ,nrb18 - ,nrb24 - ,nrb25 - ,nrb31 - ,nrb32 - ,nrb38 - ,nrb51 - ,nrb52 - ,nrb65 - ,nrb66 - ,nrb78 - ,nrb79 - ,nrb93 - ,nrb106 - ,nrb107 - ,nrb121 - ,nrb132 - ,nrb133 - ,nrb135 - ,nrb160 - ,nrb162 - ,nrb189 - ,nrb216 - ,nrb217 - ,nrb245 - ,nrb264 - ,nrb270 - ,nrb273 - } index_t; - -}; - -/* -NR-TxBW-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct NR_TxBW_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -NR-TxBW ::= SEQUENCE { - nRSCS NRSCS, - nRNRB NRNRB, - iE-Extensions ProtocolExtensionContainer { {NR-TxBW-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct NR_TxBW : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "NR-TxBW";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct nRSCS_t : NRSCS - { - static constexpr const char* name() {return "nRSCS_t";} - using parent_t = NRSCS; - - }; - nRSCS_t& ref_nRSCS() {return nRSCS;} - nRSCS_t const& ref_nRSCS() const {return nRSCS;} - struct nRNRB_t : NRNRB - { - static constexpr const char* name() {return "nRNRB_t";} - using parent_t = NRNRB; - - }; - nRNRB_t& ref_nRNRB() {return nRNRB;} - nRNRB_t const& ref_nRNRB() const {return nRNRB;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(nRSCS); - v(nRNRB); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(nRSCS); - v(nRNRB); - v(iE_Extensions); - - }; - void clear() - { - nRSCS.clear(); - nRNRB.clear(); - iE_Extensions.clear(); - - }; - private: - nRSCS_t nRSCS; - nRNRB_t nRNRB; - iE_Extensions_t iE_Extensions; - -}; -/* -SULInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct SULInformation_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SULInformation ::= SEQUENCE { - sUL-ARFCN INTEGER (0.. 3279165), - sUL-TxBW NR-TxBW, - iE-Extensions ProtocolExtensionContainer { {SULInformation-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct SULInformation : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "SULInformation";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct sUL_ARFCN_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "sUL_ARFCN_t";} - using parent_t = asn::integer<>; - - }; - - sUL_ARFCN_t& ref_sUL_ARFCN() {return sUL_ARFCN;} - sUL_ARFCN_t const& ref_sUL_ARFCN() const {return sUL_ARFCN;} - struct sUL_TxBW_t : NR_TxBW - { - static constexpr const char* name() {return "sUL_TxBW_t";} - using parent_t = NR_TxBW; - - }; - sUL_TxBW_t& ref_sUL_TxBW() {return sUL_TxBW;} - sUL_TxBW_t const& ref_sUL_TxBW() const {return sUL_TxBW;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(sUL_ARFCN); - v(sUL_TxBW); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(sUL_ARFCN); - v(sUL_TxBW); - v(iE_Extensions); - - }; - void clear() - { - sUL_ARFCN.clear(); - sUL_TxBW.clear(); - iE_Extensions.clear(); - - }; - private: - sUL_ARFCN_t sUL_ARFCN; - sUL_TxBW_t sUL_TxBW; - iE_Extensions_t iE_Extensions; - -}; -/* -NRFreqInfo-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct NRFreqInfo_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -NRFreqInfo ::= SEQUENCE{ - nRARFCN INTEGER (0.. 3279165), - freqBandListNr SEQUENCE (SIZE(1..maxnoofNrCellBands)) OF FreqBandNrItem, - sULInformation SULInformation OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {NRFreqInfo-ExtIEs} } OPTIONAL, - - ... -} -*/ - -struct NRFreqInfo : asn::sequence<4, 0, true, 2> -{ - static constexpr const char* name() {return "NRFreqInfo";} - using parent_t = asn::sequence<4, 0, true, 2>; - struct nRARFCN_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "nRARFCN_t";} - using parent_t = asn::integer<>; - - }; - - nRARFCN_t& ref_nRARFCN() {return nRARFCN;} - nRARFCN_t const& ref_nRARFCN() const {return nRARFCN;} - struct freqBandListNr_t_elm : FreqBandNrItem - { - static constexpr const char* name() {return "freqBandListNr_t_elm";} - using parent_t = FreqBandNrItem; - - }; - struct freqBandListNr_t : asn::sequenceof - { - static constexpr const char* name() {return "freqBandListNr_t";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - - }; - freqBandListNr_t& ref_freqBandListNr() {return freqBandListNr;} - freqBandListNr_t const& ref_freqBandListNr() const {return freqBandListNr;} - struct sULInformation_t : SULInformation - { - static constexpr const char* name() {return "sULInformation_t";} - using parent_t = SULInformation; - static constexpr bool optional = true; - - }; - sULInformation_t& set_sULInformation() { sULInformation.setpresent(true); return sULInformation;} - sULInformation_t const* get_sULInformation() const {return sULInformation.is_valid() ? &sULInformation : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(nRARFCN); - v(freqBandListNr); - v(sULInformation); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(nRARFCN); - v(freqBandListNr); - v(sULInformation); - v(iE_Extensions); - - }; - void clear() - { - nRARFCN.clear(); - freqBandListNr.clear(); - sULInformation.clear(); - iE_Extensions.clear(); - - }; - private: - nRARFCN_t nRARFCN; - freqBandListNr_t freqBandListNr; - sULInformation_t sULInformation; - iE_Extensions_t iE_Extensions; - -}; -/* -NRPCI ::= INTEGER (0..1007) -*/ - -struct NRPCI : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "NRPCI";} - using parent_t = asn::integer<>; - -}; - -/* -NRencryptionAlgorithms ::= BIT STRING (SIZE (16,...)) -*/ - -struct NRencryptionAlgorithms : asn::bstring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "NRencryptionAlgorithms";} - using parent_t = asn::bstring<>; - -}; - -/* -NRintegrityProtectionAlgorithms ::= BIT STRING (SIZE (16,...)) -*/ - -struct NRintegrityProtectionAlgorithms : asn::bstring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "NRintegrityProtectionAlgorithms";} - using parent_t = asn::bstring<>; - -}; - -/* -NRUESecurityCapabilities-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct NRUESecurityCapabilities_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -NRUESecurityCapabilities ::= SEQUENCE { - nRencryptionAlgorithms NRencryptionAlgorithms, - nRintegrityProtectionAlgorithms NRintegrityProtectionAlgorithms, - iE-Extensions ProtocolExtensionContainer { {NRUESecurityCapabilities-ExtIEs} } OPTIONAL, -... -} -*/ - -struct NRUESecurityCapabilities : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "NRUESecurityCapabilities";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct nRencryptionAlgorithms_t : NRencryptionAlgorithms - { - static constexpr const char* name() {return "nRencryptionAlgorithms_t";} - using parent_t = NRencryptionAlgorithms; - - }; - nRencryptionAlgorithms_t& ref_nRencryptionAlgorithms() {return nRencryptionAlgorithms;} - nRencryptionAlgorithms_t const& ref_nRencryptionAlgorithms() const {return nRencryptionAlgorithms;} - struct nRintegrityProtectionAlgorithms_t : NRintegrityProtectionAlgorithms - { - static constexpr const char* name() {return "nRintegrityProtectionAlgorithms_t";} - using parent_t = NRintegrityProtectionAlgorithms; - - }; - nRintegrityProtectionAlgorithms_t& ref_nRintegrityProtectionAlgorithms() {return nRintegrityProtectionAlgorithms;} - nRintegrityProtectionAlgorithms_t const& ref_nRintegrityProtectionAlgorithms() const {return nRintegrityProtectionAlgorithms;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(nRencryptionAlgorithms); - v(nRintegrityProtectionAlgorithms); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(nRencryptionAlgorithms); - v(nRintegrityProtectionAlgorithms); - v(iE_Extensions); - - }; - void clear() - { - nRencryptionAlgorithms.clear(); - nRintegrityProtectionAlgorithms.clear(); - iE_Extensions.clear(); - - }; - private: - nRencryptionAlgorithms_t nRencryptionAlgorithms; - nRintegrityProtectionAlgorithms_t nRintegrityProtectionAlgorithms; - iE_Extensions_t iE_Extensions; - -}; -/* -PCI ::= INTEGER (0..503, ...) -*/ - -struct PCI : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "PCI";} - using parent_t = asn::integer<>; - -}; - -/* -Neighbour-Information-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-NeighbourTAC CRITICALITY ignore EXTENSION TAC PRESENCE optional}| - { ID id-eARFCNExtension CRITICALITY reject EXTENSION EARFCNExtension PRESENCE optional}, - ... -} -*/ - -struct Neighbour_Information_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_NeighbourTAC() { set(id_NeighbourTAC); type=1;} - void select_id_eARFCNExtension() { set(id_eARFCNExtension); type=2;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_NeighbourTAC)) { type = 1; return true; } - else if(equal(id_eARFCNExtension)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_NeighbourTAC);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_eARFCNExtension);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_NeighbourTAC() { set(ignore); type=1;} - void select_id_eARFCNExtension() { set(reject); type=2;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - TAC& select_id_NeighbourTAC() { return set(1); } - TAC const* get_id_NeighbourTAC() const { return get(1); } - EARFCNExtension& select_id_eARFCNExtension() { return set(2); } - EARFCNExtension const* get_id_eARFCNExtension() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_NeighbourTAC()); return true; - case 2: v(select_id_eARFCNExtension()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(EARFCNExtension)]; - char dummy2[sizeof(TAC)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_NeighbourTAC() { set(optional); type=1;} - void select_id_eARFCNExtension() { set(optional); type=2;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -Neighbour-Information ::= SEQUENCE (SIZE (0..maxnoofNeighbours)) OF SEQUENCE { - eCGI ECGI, - pCI PCI, - eARFCN EARFCN, - iE-Extensions ProtocolExtensionContainer { {Neighbour-Information-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct Neighbour_Information_elm : asn::sequence<4, 0, true, 1> -{ - static constexpr const char* name() {return "Neighbour_Information_elm";} - using parent_t = asn::sequence<4, 0, true, 1>; - struct eCGI_t : ECGI - { - static constexpr const char* name() {return "eCGI_t";} - using parent_t = ECGI; - - }; - eCGI_t& ref_eCGI() {return eCGI;} - eCGI_t const& ref_eCGI() const {return eCGI;} - struct pCI_t : PCI - { - static constexpr const char* name() {return "pCI_t";} - using parent_t = PCI; - - }; - pCI_t& ref_pCI() {return pCI;} - pCI_t const& ref_pCI() const {return pCI;} - struct eARFCN_t : EARFCN - { - static constexpr const char* name() {return "eARFCN_t";} - using parent_t = EARFCN; - - }; - eARFCN_t& ref_eARFCN() {return eARFCN;} - eARFCN_t const& ref_eARFCN() const {return eARFCN;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(eCGI); - v(pCI); - v(eARFCN); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(eCGI); - v(pCI); - v(eARFCN); - v(iE_Extensions); - - }; - void clear() - { - eCGI.clear(); - pCI.clear(); - eARFCN.clear(); - iE_Extensions.clear(); - - }; - private: - eCGI_t eCGI; - pCI_t pCI; - eARFCN_t eARFCN; - iE_Extensions_t iE_Extensions; - -}; -struct Neighbour_Information : asn::sequenceof -{ - static constexpr const char* name() {return "Neighbour-Information";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -NewDRBIDrequest::= ENUMERATED {true, ...} -*/ - -struct NewDRBIDrequest : asn::enumerated<1, 0, true> -{ - static constexpr const char* name() {return "NewDRBIDrequest";} - using parent_t = asn::enumerated<1, 0, true>; - typedef enum { - True - } index_t; - -}; - -/* -Number-of-Antennaports ::= ENUMERATED { - an1, - an2, - an4, - ... -} -*/ - -struct Number_of_Antennaports : asn::enumerated<3, 0, true> -{ - static constexpr const char* name() {return "Number-of-Antennaports";} - using parent_t = asn::enumerated<3, 0, true>; - typedef enum { - an1 - ,an2 - ,an4 - } index_t; - -}; - -/* -PDCPChangeIndication ::= ENUMERATED {s-KgNB-update-required, pDCP-data-recovery-required,...} -*/ - -struct PDCPChangeIndication : asn::enumerated<2, 0, true> -{ - static constexpr const char* name() {return "PDCPChangeIndication";} - using parent_t = asn::enumerated<2, 0, true>; - typedef enum { - s_KgNB_update_required - ,pDCP_data_recovery_required - } index_t; - -}; - -/* -PDCPSnLength ::= ENUMERATED {twelve-bits,eighteen-bits,...} -*/ - -struct PDCPSnLength : asn::enumerated<2, 0, true> -{ - static constexpr const char* name() {return "PDCPSnLength";} - using parent_t = asn::enumerated<2, 0, true>; - typedef enum { - twelve_bits - ,eighteen_bits - } index_t; - -}; - -/* -PRACH-Configuration-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct PRACH_Configuration_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -PRACH-Configuration ::= SEQUENCE { - rootSequenceIndex INTEGER (0..837), - zeroCorrelationIndex INTEGER (0..15), - highSpeedFlag BOOLEAN, - prach-FreqOffset INTEGER (0..94), - prach-ConfigIndex INTEGER (0..63) OPTIONAL, -- present for TDD -- - iE-Extensions ProtocolExtensionContainer { {PRACH-Configuration-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct PRACH_Configuration : asn::sequence<6, 0, true, 2> -{ - static constexpr const char* name() {return "PRACH-Configuration";} - using parent_t = asn::sequence<6, 0, true, 2>; - struct rootSequenceIndex_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "rootSequenceIndex_t";} - using parent_t = asn::integer<>; - - }; - - rootSequenceIndex_t& ref_rootSequenceIndex() {return rootSequenceIndex;} - rootSequenceIndex_t const& ref_rootSequenceIndex() const {return rootSequenceIndex;} - struct zeroCorrelationIndex_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "zeroCorrelationIndex_t";} - using parent_t = asn::integer<>; - - }; - - zeroCorrelationIndex_t& ref_zeroCorrelationIndex() {return zeroCorrelationIndex;} - zeroCorrelationIndex_t const& ref_zeroCorrelationIndex() const {return zeroCorrelationIndex;} - struct highSpeedFlag_t : asn::boolean - { - static constexpr const char* name() {return "highSpeedFlag_t";} - using parent_t = asn::boolean; - - }; - highSpeedFlag_t& ref_highSpeedFlag() {return highSpeedFlag;} - highSpeedFlag_t const& ref_highSpeedFlag() const {return highSpeedFlag;} - struct prach_FreqOffset_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "prach_FreqOffset_t";} - using parent_t = asn::integer<>; - - }; - - prach_FreqOffset_t& ref_prach_FreqOffset() {return prach_FreqOffset;} - prach_FreqOffset_t const& ref_prach_FreqOffset() const {return prach_FreqOffset;} - struct prach_ConfigIndex_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "prach_ConfigIndex_t";} - using parent_t = asn::integer<>; - static constexpr bool optional = true; - - }; - - prach_ConfigIndex_t& set_prach_ConfigIndex() { prach_ConfigIndex.setpresent(true); return prach_ConfigIndex;} - prach_ConfigIndex_t const* get_prach_ConfigIndex() const {return prach_ConfigIndex.is_valid() ? &prach_ConfigIndex : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(rootSequenceIndex); - v(zeroCorrelationIndex); - v(highSpeedFlag); - v(prach_FreqOffset); - v(prach_ConfigIndex); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(rootSequenceIndex); - v(zeroCorrelationIndex); - v(highSpeedFlag); - v(prach_FreqOffset); - v(prach_ConfigIndex); - v(iE_Extensions); - - }; - void clear() - { - rootSequenceIndex.clear(); - zeroCorrelationIndex.clear(); - highSpeedFlag.clear(); - prach_FreqOffset.clear(); - prach_ConfigIndex.clear(); - iE_Extensions.clear(); - - }; - private: - rootSequenceIndex_t rootSequenceIndex; - zeroCorrelationIndex_t zeroCorrelationIndex; - highSpeedFlag_t highSpeedFlag; - prach_FreqOffset_t prach_FreqOffset; - prach_ConfigIndex_t prach_ConfigIndex; - iE_Extensions_t iE_Extensions; - -}; -/* -PedestrianUE ::= ENUMERATED { - authorized, - not-authorized, - ... -} -*/ - -struct PedestrianUE : asn::enumerated<2, 0, true> -{ - static constexpr const char* name() {return "PedestrianUE";} - using parent_t = asn::enumerated<2, 0, true>; - typedef enum { - authorized - ,not_authorized - } index_t; - -}; - -/* -Port-Number ::= OCTET STRING (SIZE (2)) -*/ - -struct Port_Number : asn::ostring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "Port-Number";} - using parent_t = asn::ostring<>; - -}; - -/* -ProSeDirectDiscovery ::= ENUMERATED { - authorized, - not-authorized, - ... -} -*/ - -struct ProSeDirectDiscovery : asn::enumerated<2, 0, true> -{ - static constexpr const char* name() {return "ProSeDirectDiscovery";} - using parent_t = asn::enumerated<2, 0, true>; - typedef enum { - authorized - ,not_authorized - } index_t; - -}; - -/* -ProSeDirectCommunication ::= ENUMERATED { - authorized, - not-authorized, - ... -} -*/ - -struct ProSeDirectCommunication : asn::enumerated<2, 0, true> -{ - static constexpr const char* name() {return "ProSeDirectCommunication";} - using parent_t = asn::enumerated<2, 0, true>; - typedef enum { - authorized - ,not_authorized - } index_t; - -}; - -/* -ProSeUEtoNetworkRelaying ::= ENUMERATED { - authorized, - not-authorized, - ... -} -*/ - -struct ProSeUEtoNetworkRelaying : asn::enumerated<2, 0, true> -{ - static constexpr const char* name() {return "ProSeUEtoNetworkRelaying";} - using parent_t = asn::enumerated<2, 0, true>; - typedef enum { - authorized - ,not_authorized - } index_t; - -}; - -/* -ProSeAuthorized-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-ProSeUEtoNetworkRelaying CRITICALITY ignore EXTENSION ProSeUEtoNetworkRelaying PRESENCE optional}, - ... -} -*/ - -struct ProSeAuthorized_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_ProSeUEtoNetworkRelaying() { set(id_ProSeUEtoNetworkRelaying); type=1;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_ProSeUEtoNetworkRelaying)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_ProSeUEtoNetworkRelaying);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_ProSeUEtoNetworkRelaying() { set(ignore); type=1;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - ProSeUEtoNetworkRelaying& select_id_ProSeUEtoNetworkRelaying() { return set(1); } - ProSeUEtoNetworkRelaying const* get_id_ProSeUEtoNetworkRelaying() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_ProSeUEtoNetworkRelaying()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(ProSeUEtoNetworkRelaying)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_ProSeUEtoNetworkRelaying() { set(optional); type=1;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ProSeAuthorized ::= SEQUENCE { - proSeDirectDiscovery ProSeDirectDiscovery OPTIONAL, - proSeDirectCommunication ProSeDirectCommunication OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {ProSeAuthorized-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct ProSeAuthorized : asn::sequence<3, 0, true, 3> -{ - static constexpr const char* name() {return "ProSeAuthorized";} - using parent_t = asn::sequence<3, 0, true, 3>; - struct proSeDirectDiscovery_t : ProSeDirectDiscovery - { - static constexpr const char* name() {return "proSeDirectDiscovery_t";} - using parent_t = ProSeDirectDiscovery; - static constexpr bool optional = true; - - }; - proSeDirectDiscovery_t& set_proSeDirectDiscovery() { proSeDirectDiscovery.setpresent(true); return proSeDirectDiscovery;} - proSeDirectDiscovery_t const* get_proSeDirectDiscovery() const {return proSeDirectDiscovery.is_valid() ? &proSeDirectDiscovery : nullptr;} - struct proSeDirectCommunication_t : ProSeDirectCommunication - { - static constexpr const char* name() {return "proSeDirectCommunication_t";} - using parent_t = ProSeDirectCommunication; - static constexpr bool optional = true; - - }; - proSeDirectCommunication_t& set_proSeDirectCommunication() { proSeDirectCommunication.setpresent(true); return proSeDirectCommunication;} - proSeDirectCommunication_t const* get_proSeDirectCommunication() const {return proSeDirectCommunication.is_valid() ? &proSeDirectCommunication : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(proSeDirectDiscovery); - v(proSeDirectCommunication); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(proSeDirectDiscovery); - v(proSeDirectCommunication); - v(iE_Extensions); - - }; - void clear() - { - proSeDirectDiscovery.clear(); - proSeDirectCommunication.clear(); - iE_Extensions.clear(); - - }; - private: - proSeDirectDiscovery_t proSeDirectDiscovery; - proSeDirectCommunication_t proSeDirectCommunication; - iE_Extensions_t iE_Extensions; - -}; -/* -ResourceType ::= ENUMERATED { - downlinknonCRS, - cRS, - uplink, - ... -} -*/ - -struct ResourceType : asn::enumerated<3, 0, true> -{ - static constexpr const char* name() {return "ResourceType";} - using parent_t = asn::enumerated<3, 0, true>; - typedef enum { - downlinknonCRS - ,cRS - ,uplink - } index_t; - -}; - -/* -ProtectedFootprintTimePattern-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct ProtectedFootprintTimePattern_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ProtectedFootprintTimePattern ::= SEQUENCE { - protectedFootprintTimePeriodicity INTEGER (1..320, ...), - protectedFootprintStartTime INTEGER (1..20, ...), - iE-Extensions ProtocolExtensionContainer { {ProtectedFootprintTimePattern-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct ProtectedFootprintTimePattern : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "ProtectedFootprintTimePattern";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct protectedFootprintTimePeriodicity_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "protectedFootprintTimePeriodicity_t";} - using parent_t = asn::integer<>; - - }; - - protectedFootprintTimePeriodicity_t& ref_protectedFootprintTimePeriodicity() {return protectedFootprintTimePeriodicity;} - protectedFootprintTimePeriodicity_t const& ref_protectedFootprintTimePeriodicity() const {return protectedFootprintTimePeriodicity;} - struct protectedFootprintStartTime_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "protectedFootprintStartTime_t";} - using parent_t = asn::integer<>; - - }; - - protectedFootprintStartTime_t& ref_protectedFootprintStartTime() {return protectedFootprintStartTime;} - protectedFootprintStartTime_t const& ref_protectedFootprintStartTime() const {return protectedFootprintStartTime;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(protectedFootprintTimePeriodicity); - v(protectedFootprintStartTime); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(protectedFootprintTimePeriodicity); - v(protectedFootprintStartTime); - v(iE_Extensions); - - }; - void clear() - { - protectedFootprintTimePeriodicity.clear(); - protectedFootprintStartTime.clear(); - iE_Extensions.clear(); - - }; - private: - protectedFootprintTimePeriodicity_t protectedFootprintTimePeriodicity; - protectedFootprintStartTime_t protectedFootprintStartTime; - iE_Extensions_t iE_Extensions; - -}; -/* -ProtectedResourceList-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct ProtectedResourceList_Item_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ProtectedResourceList-Item ::= SEQUENCE { - resourceType ResourceType, - intraPRBProtectedResourceFootprint BIT STRING (SIZE(84, ...)), - protectedFootprintFrequencyPattern BIT STRING (SIZE(6..110, ...)), - protectedFootprintTimePattern ProtectedFootprintTimePattern, - iE-Extensions ProtocolExtensionContainer { {ProtectedResourceList-Item-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct ProtectedResourceList_Item : asn::sequence<5, 0, true, 1> -{ - static constexpr const char* name() {return "ProtectedResourceList-Item";} - using parent_t = asn::sequence<5, 0, true, 1>; - struct resourceType_t : ResourceType - { - static constexpr const char* name() {return "resourceType_t";} - using parent_t = ResourceType; - - }; - resourceType_t& ref_resourceType() {return resourceType;} - resourceType_t const& ref_resourceType() const {return resourceType;} - struct intraPRBProtectedResourceFootprint_t : asn::bstring<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "intraPRBProtectedResourceFootprint_t";} - using parent_t = asn::bstring<>; - - }; - - intraPRBProtectedResourceFootprint_t& ref_intraPRBProtectedResourceFootprint() {return intraPRBProtectedResourceFootprint;} - intraPRBProtectedResourceFootprint_t const& ref_intraPRBProtectedResourceFootprint() const {return intraPRBProtectedResourceFootprint;} - struct protectedFootprintFrequencyPattern_t : asn::bstring<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "protectedFootprintFrequencyPattern_t";} - using parent_t = asn::bstring<>; - - }; - - protectedFootprintFrequencyPattern_t& ref_protectedFootprintFrequencyPattern() {return protectedFootprintFrequencyPattern;} - protectedFootprintFrequencyPattern_t const& ref_protectedFootprintFrequencyPattern() const {return protectedFootprintFrequencyPattern;} - struct protectedFootprintTimePattern_t : ProtectedFootprintTimePattern - { - static constexpr const char* name() {return "protectedFootprintTimePattern_t";} - using parent_t = ProtectedFootprintTimePattern; - - }; - protectedFootprintTimePattern_t& ref_protectedFootprintTimePattern() {return protectedFootprintTimePattern;} - protectedFootprintTimePattern_t const& ref_protectedFootprintTimePattern() const {return protectedFootprintTimePattern;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(resourceType); - v(intraPRBProtectedResourceFootprint); - v(protectedFootprintFrequencyPattern); - v(protectedFootprintTimePattern); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(resourceType); - v(intraPRBProtectedResourceFootprint); - v(protectedFootprintFrequencyPattern); - v(protectedFootprintTimePattern); - v(iE_Extensions); - - }; - void clear() - { - resourceType.clear(); - intraPRBProtectedResourceFootprint.clear(); - protectedFootprintFrequencyPattern.clear(); - protectedFootprintTimePattern.clear(); - iE_Extensions.clear(); - - }; - private: - resourceType_t resourceType; - intraPRBProtectedResourceFootprint_t intraPRBProtectedResourceFootprint; - protectedFootprintFrequencyPattern_t protectedFootprintFrequencyPattern; - protectedFootprintTimePattern_t protectedFootprintTimePattern; - iE_Extensions_t iE_Extensions; - -}; -/* -ProtectedResourceList ::= SEQUENCE (SIZE(1.. maxnoofProtectedResourcePatterns)) OF ProtectedResourceList-Item -*/ - -struct ProtectedResourceList_elm : ProtectedResourceList_Item -{ - static constexpr const char* name() {return "ProtectedResourceList_elm";} - using parent_t = ProtectedResourceList_Item; - -}; -struct ProtectedResourceList : asn::sequenceof -{ - static constexpr const char* name() {return "ProtectedResourceList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -ProtectedEUTRAResourceIndication-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -- Rapporteur: missing extension -- -*/ - -struct ProtectedEUTRAResourceIndication_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ProtectedEUTRAResourceIndication::= SEQUENCE { - activationSFN INTEGER (0..1023), - protectedResourceList ProtectedResourceList, - mBSFNControlRegionLength INTEGER (0..3) OPTIONAL, - pDCCHRegionLength INTEGER (1..3) OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {ProtectedEUTRAResourceIndication-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct ProtectedEUTRAResourceIndication : asn::sequence<5, 0, true, 3> -{ - static constexpr const char* name() {return "ProtectedEUTRAResourceIndication";} - using parent_t = asn::sequence<5, 0, true, 3>; - struct activationSFN_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "activationSFN_t";} - using parent_t = asn::integer<>; - - }; - - activationSFN_t& ref_activationSFN() {return activationSFN;} - activationSFN_t const& ref_activationSFN() const {return activationSFN;} - struct protectedResourceList_t : ProtectedResourceList - { - static constexpr const char* name() {return "protectedResourceList_t";} - using parent_t = ProtectedResourceList; - - }; - protectedResourceList_t& ref_protectedResourceList() {return protectedResourceList;} - protectedResourceList_t const& ref_protectedResourceList() const {return protectedResourceList;} - struct mBSFNControlRegionLength_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "mBSFNControlRegionLength_t";} - using parent_t = asn::integer<>; - static constexpr bool optional = true; - - }; - - mBSFNControlRegionLength_t& set_mBSFNControlRegionLength() { mBSFNControlRegionLength.setpresent(true); return mBSFNControlRegionLength;} - mBSFNControlRegionLength_t const* get_mBSFNControlRegionLength() const {return mBSFNControlRegionLength.is_valid() ? &mBSFNControlRegionLength : nullptr;} - struct pDCCHRegionLength_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "pDCCHRegionLength_t";} - using parent_t = asn::integer<>; - static constexpr bool optional = true; - - }; - - pDCCHRegionLength_t& set_pDCCHRegionLength() { pDCCHRegionLength.setpresent(true); return pDCCHRegionLength;} - pDCCHRegionLength_t const* get_pDCCHRegionLength() const {return pDCCHRegionLength.is_valid() ? &pDCCHRegionLength : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(activationSFN); - v(protectedResourceList); - v(mBSFNControlRegionLength); - v(pDCCHRegionLength); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(activationSFN); - v(protectedResourceList); - v(mBSFNControlRegionLength); - v(pDCCHRegionLength); - v(iE_Extensions); - - }; - void clear() - { - activationSFN.clear(); - protectedResourceList.clear(); - mBSFNControlRegionLength.clear(); - pDCCHRegionLength.clear(); - iE_Extensions.clear(); - - }; - private: - activationSFN_t activationSFN; - protectedResourceList_t protectedResourceList; - mBSFNControlRegionLength_t mBSFNControlRegionLength; - pDCCHRegionLength_t pDCCHRegionLength; - iE_Extensions_t iE_Extensions; - -}; -/* -Reestablishment-Indication ::= ENUMERATED { - reestablished, - ... -} -*/ - -struct Reestablishment_Indication : asn::enumerated<1, 0, true> -{ - static constexpr const char* name() {return "Reestablishment-Indication";} - using parent_t = asn::enumerated<1, 0, true>; - typedef enum { - reestablished - } index_t; - -}; - -/* -RLC-Status-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct RLC_Status_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RLC-Status ::= SEQUENCE { - reestablishment-Indication Reestablishment-Indication, - iE-Extensions ProtocolExtensionContainer { {RLC-Status-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct RLC_Status : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "RLC-Status";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct reestablishment_Indication_t : Reestablishment_Indication - { - static constexpr const char* name() {return "reestablishment_Indication_t";} - using parent_t = Reestablishment_Indication; - - }; - reestablishment_Indication_t& ref_reestablishment_Indication() {return reestablishment_Indication;} - reestablishment_Indication_t const& ref_reestablishment_Indication() const {return reestablishment_Indication;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(reestablishment_Indication); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(reestablishment_Indication); - v(iE_Extensions); - - }; - void clear() - { - reestablishment_Indication.clear(); - iE_Extensions.clear(); - - }; - private: - reestablishment_Indication_t reestablishment_Indication; - iE_Extensions_t iE_Extensions; - -}; -/* -RLCMode ::= ENUMERATED { - rlc-am, - rlc-um-bidirectional, - rlc-um-unidirectional-ul, - rlc-um-unidirectional-dl, - ... -} -*/ - -struct RLCMode : asn::enumerated<4, 0, true> -{ - static constexpr const char* name() {return "RLCMode";} - using parent_t = asn::enumerated<4, 0, true>; - typedef enum { - rlc_am - ,rlc_um_bidirectional - ,rlc_um_unidirectional_ul - ,rlc_um_unidirectional_dl - } index_t; - -}; - -/* -RRC-Config-Ind ::= ENUMERATED { - full-config, - delta-config, - ... -} -*/ - -struct RRC_Config_Ind : asn::enumerated<2, 0, true> -{ - static constexpr const char* name() {return "RRC-Config-Ind";} - using parent_t = asn::enumerated<2, 0, true>; - typedef enum { - full_config - ,delta_config - } index_t; - -}; - -/* -RRC-Context ::= OCTET STRING -*/ - -struct RRC_Context : asn::ostring<> -{ - static constexpr const char* name() {return "RRC-Context";} - using parent_t = asn::ostring<>; - -}; - -/* -RRCConnReestabIndicator ::= ENUMERATED { - reconfigurationFailure, handoverFailure, otherFailure, ... -} -*/ - -struct RRCConnReestabIndicator : asn::enumerated<3, 0, true> -{ - static constexpr const char* name() {return "RRCConnReestabIndicator";} - using parent_t = asn::enumerated<3, 0, true>; - typedef enum { - reconfigurationFailure - ,handoverFailure - ,otherFailure - } index_t; - -}; - -/* -RRCConnSetupIndicator::= ENUMERATED { - rrcConnSetup, - ... -} -*/ - -struct RRCConnSetupIndicator : asn::enumerated<1, 0, true> -{ - static constexpr const char* name() {return "RRCConnSetupIndicator";} - using parent_t = asn::enumerated<1, 0, true>; - typedef enum { - rrcConnSetup - } index_t; - -}; - -/* -RRCContainer ::= OCTET STRING -*/ - -struct RRCContainer : asn::ostring<> -{ - static constexpr const char* name() {return "RRCContainer";} - using parent_t = asn::ostring<>; - -}; - -/* -RSRPMeasurementResult-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct RSRPMeasurementResult_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RSRPMeasurementResult ::= SEQUENCE (SIZE(1..maxCellReport)) OF - SEQUENCE { - rSRPCellID ECGI, - rSRPMeasured INTEGER (0..97, ...), - iE-Extensions ProtocolExtensionContainer { {RSRPMeasurementResult-ExtIEs} } OPTIONAL, - ... - } -*/ - -struct RSRPMeasurementResult_elm : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "RSRPMeasurementResult_elm";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct rSRPCellID_t : ECGI - { - static constexpr const char* name() {return "rSRPCellID_t";} - using parent_t = ECGI; - - }; - rSRPCellID_t& ref_rSRPCellID() {return rSRPCellID;} - rSRPCellID_t const& ref_rSRPCellID() const {return rSRPCellID;} - struct rSRPMeasured_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "rSRPMeasured_t";} - using parent_t = asn::integer<>; - - }; - - rSRPMeasured_t& ref_rSRPMeasured() {return rSRPMeasured;} - rSRPMeasured_t const& ref_rSRPMeasured() const {return rSRPMeasured;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(rSRPCellID); - v(rSRPMeasured); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(rSRPCellID); - v(rSRPMeasured); - v(iE_Extensions); - - }; - void clear() - { - rSRPCellID.clear(); - rSRPMeasured.clear(); - iE_Extensions.clear(); - - }; - private: - rSRPCellID_t rSRPCellID; - rSRPMeasured_t rSRPMeasured; - iE_Extensions_t iE_Extensions; - -}; -struct RSRPMeasurementResult : asn::sequenceof -{ - static constexpr const char* name() {return "RSRPMeasurementResult";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -RSRPMRList-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-UEID CRITICALITY ignore EXTENSION UEID PRESENCE optional}, - ... -} -*/ - -struct RSRPMRList_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_UEID() { set(id_UEID); type=1;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_UEID)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_UEID);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_UEID() { set(ignore); type=1;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - UEID& select_id_UEID() { return set(1); } - UEID const* get_id_UEID() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_UEID()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(UEID)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_UEID() { set(optional); type=1;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RSRPMRList ::= SEQUENCE (SIZE(1..maxUEReport)) OF - SEQUENCE { - rSRPMeasurementResult RSRPMeasurementResult, - iE-Extensions ProtocolExtensionContainer { {RSRPMRList-ExtIEs} } OPTIONAL, - ... - } -*/ - -struct RSRPMRList_elm : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "RSRPMRList_elm";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct rSRPMeasurementResult_t : RSRPMeasurementResult - { - static constexpr const char* name() {return "rSRPMeasurementResult_t";} - using parent_t = RSRPMeasurementResult; - - }; - rSRPMeasurementResult_t& ref_rSRPMeasurementResult() {return rSRPMeasurementResult;} - rSRPMeasurementResult_t const& ref_rSRPMeasurementResult() const {return rSRPMeasurementResult;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(rSRPMeasurementResult); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(rSRPMeasurementResult); - v(iE_Extensions); - - }; - void clear() - { - rSRPMeasurementResult.clear(); - iE_Extensions.clear(); - - }; - private: - rSRPMeasurementResult_t rSRPMeasurementResult; - iE_Extensions_t iE_Extensions; - -}; -struct RSRPMRList : asn::sequenceof -{ - static constexpr const char* name() {return "RSRPMRList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -UL-GBR-PRB-usage::= INTEGER (0..100) -*/ - -struct UL_GBR_PRB_usage : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "UL-GBR-PRB-usage";} - using parent_t = asn::integer<>; - -}; - -/* -UL-non-GBR-PRB-usage::= INTEGER (0..100) -*/ - -struct UL_non_GBR_PRB_usage : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "UL-non-GBR-PRB-usage";} - using parent_t = asn::integer<>; - -}; - -/* -UL-Total-PRB-usage::= INTEGER (0..100) -*/ - -struct UL_Total_PRB_usage : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "UL-Total-PRB-usage";} - using parent_t = asn::integer<>; - -}; - -/* -UL-scheduling-PDCCH-CCE-usage::= INTEGER (0..100) -*/ - -struct UL_scheduling_PDCCH_CCE_usage : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "UL-scheduling-PDCCH-CCE-usage";} - using parent_t = asn::integer<>; - -}; - -/* -RadioResourceStatus-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - {ID id-DL-scheduling-PDCCH-CCE-usage CRITICALITY ignore EXTENSION DL-scheduling-PDCCH-CCE-usage PRESENCE optional}| - - {ID id-UL-scheduling-PDCCH-CCE-usage CRITICALITY ignore EXTENSION UL-scheduling-PDCCH-CCE-usage PRESENCE optional}, - ... -} -*/ - -struct RadioResourceStatus_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_DL_scheduling_PDCCH_CCE_usage() { set(id_DL_scheduling_PDCCH_CCE_usage); type=1;} - void select_id_UL_scheduling_PDCCH_CCE_usage() { set(id_UL_scheduling_PDCCH_CCE_usage); type=2;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_DL_scheduling_PDCCH_CCE_usage)) { type = 1; return true; } - else if(equal(id_UL_scheduling_PDCCH_CCE_usage)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_DL_scheduling_PDCCH_CCE_usage);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_UL_scheduling_PDCCH_CCE_usage);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_DL_scheduling_PDCCH_CCE_usage() { set(ignore); type=1;} - void select_id_UL_scheduling_PDCCH_CCE_usage() { set(ignore); type=2;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - DL_scheduling_PDCCH_CCE_usage& select_id_DL_scheduling_PDCCH_CCE_usage() { return set(1); } - DL_scheduling_PDCCH_CCE_usage const* get_id_DL_scheduling_PDCCH_CCE_usage() const { return get(1); } - UL_scheduling_PDCCH_CCE_usage& select_id_UL_scheduling_PDCCH_CCE_usage() { return set(2); } - UL_scheduling_PDCCH_CCE_usage const* get_id_UL_scheduling_PDCCH_CCE_usage() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_DL_scheduling_PDCCH_CCE_usage()); return true; - case 2: v(select_id_UL_scheduling_PDCCH_CCE_usage()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(DL_scheduling_PDCCH_CCE_usage)]; - char dummy2[sizeof(UL_scheduling_PDCCH_CCE_usage)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_DL_scheduling_PDCCH_CCE_usage() { set(optional); type=1;} - void select_id_UL_scheduling_PDCCH_CCE_usage() { set(optional); type=2;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RadioResourceStatus ::= SEQUENCE { - dL-GBR-PRB-usage DL-GBR-PRB-usage, - uL-GBR-PRB-usage UL-GBR-PRB-usage, - dL-non-GBR-PRB-usage DL-non-GBR-PRB-usage, - uL-non-GBR-PRB-usage UL-non-GBR-PRB-usage, - dL-Total-PRB-usage DL-Total-PRB-usage, - uL-Total-PRB-usage UL-Total-PRB-usage, - iE-Extensions ProtocolExtensionContainer { {RadioResourceStatus-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct RadioResourceStatus : asn::sequence<7, 0, true, 1> -{ - static constexpr const char* name() {return "RadioResourceStatus";} - using parent_t = asn::sequence<7, 0, true, 1>; - struct dL_GBR_PRB_usage_t : DL_GBR_PRB_usage - { - static constexpr const char* name() {return "dL_GBR_PRB_usage_t";} - using parent_t = DL_GBR_PRB_usage; - - }; - dL_GBR_PRB_usage_t& ref_dL_GBR_PRB_usage() {return dL_GBR_PRB_usage;} - dL_GBR_PRB_usage_t const& ref_dL_GBR_PRB_usage() const {return dL_GBR_PRB_usage;} - struct uL_GBR_PRB_usage_t : UL_GBR_PRB_usage - { - static constexpr const char* name() {return "uL_GBR_PRB_usage_t";} - using parent_t = UL_GBR_PRB_usage; - - }; - uL_GBR_PRB_usage_t& ref_uL_GBR_PRB_usage() {return uL_GBR_PRB_usage;} - uL_GBR_PRB_usage_t const& ref_uL_GBR_PRB_usage() const {return uL_GBR_PRB_usage;} - struct dL_non_GBR_PRB_usage_t : DL_non_GBR_PRB_usage - { - static constexpr const char* name() {return "dL_non_GBR_PRB_usage_t";} - using parent_t = DL_non_GBR_PRB_usage; - - }; - dL_non_GBR_PRB_usage_t& ref_dL_non_GBR_PRB_usage() {return dL_non_GBR_PRB_usage;} - dL_non_GBR_PRB_usage_t const& ref_dL_non_GBR_PRB_usage() const {return dL_non_GBR_PRB_usage;} - struct uL_non_GBR_PRB_usage_t : UL_non_GBR_PRB_usage - { - static constexpr const char* name() {return "uL_non_GBR_PRB_usage_t";} - using parent_t = UL_non_GBR_PRB_usage; - - }; - uL_non_GBR_PRB_usage_t& ref_uL_non_GBR_PRB_usage() {return uL_non_GBR_PRB_usage;} - uL_non_GBR_PRB_usage_t const& ref_uL_non_GBR_PRB_usage() const {return uL_non_GBR_PRB_usage;} - struct dL_Total_PRB_usage_t : DL_Total_PRB_usage - { - static constexpr const char* name() {return "dL_Total_PRB_usage_t";} - using parent_t = DL_Total_PRB_usage; - - }; - dL_Total_PRB_usage_t& ref_dL_Total_PRB_usage() {return dL_Total_PRB_usage;} - dL_Total_PRB_usage_t const& ref_dL_Total_PRB_usage() const {return dL_Total_PRB_usage;} - struct uL_Total_PRB_usage_t : UL_Total_PRB_usage - { - static constexpr const char* name() {return "uL_Total_PRB_usage_t";} - using parent_t = UL_Total_PRB_usage; - - }; - uL_Total_PRB_usage_t& ref_uL_Total_PRB_usage() {return uL_Total_PRB_usage;} - uL_Total_PRB_usage_t const& ref_uL_Total_PRB_usage() const {return uL_Total_PRB_usage;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(dL_GBR_PRB_usage); - v(uL_GBR_PRB_usage); - v(dL_non_GBR_PRB_usage); - v(uL_non_GBR_PRB_usage); - v(dL_Total_PRB_usage); - v(uL_Total_PRB_usage); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(dL_GBR_PRB_usage); - v(uL_GBR_PRB_usage); - v(dL_non_GBR_PRB_usage); - v(uL_non_GBR_PRB_usage); - v(dL_Total_PRB_usage); - v(uL_Total_PRB_usage); - v(iE_Extensions); - - }; - void clear() - { - dL_GBR_PRB_usage.clear(); - uL_GBR_PRB_usage.clear(); - dL_non_GBR_PRB_usage.clear(); - uL_non_GBR_PRB_usage.clear(); - dL_Total_PRB_usage.clear(); - uL_Total_PRB_usage.clear(); - iE_Extensions.clear(); - - }; - private: - dL_GBR_PRB_usage_t dL_GBR_PRB_usage; - uL_GBR_PRB_usage_t uL_GBR_PRB_usage; - dL_non_GBR_PRB_usage_t dL_non_GBR_PRB_usage; - uL_non_GBR_PRB_usage_t uL_non_GBR_PRB_usage; - dL_Total_PRB_usage_t dL_Total_PRB_usage; - uL_Total_PRB_usage_t uL_Total_PRB_usage; - iE_Extensions_t iE_Extensions; - -}; -/* -ReceiveStatusOfULPDCPSDUsExtended ::= BIT STRING (SIZE(1..16384)) -*/ - -struct ReceiveStatusOfULPDCPSDUsExtended : asn::bstring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "ReceiveStatusOfULPDCPSDUsExtended";} - using parent_t = asn::bstring<>; - -}; - -/* -ReceiveStatusOfULPDCPSDUsPDCP-SNlength18 ::= BIT STRING (SIZE(1..131072)) -*/ - -struct ReceiveStatusOfULPDCPSDUsPDCP_SNlength18 : asn::bstring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "ReceiveStatusOfULPDCPSDUsPDCP-SNlength18";} - using parent_t = asn::bstring<>; - -}; - -/* -ReceiveStatusofULPDCPSDUs ::= BIT STRING (SIZE(4096)) -*/ - -struct ReceiveStatusofULPDCPSDUs : asn::bstring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "ReceiveStatusofULPDCPSDUs";} - using parent_t = asn::bstring<>; - -}; - -/* -Registration-Request ::= ENUMERATED { - start, - stop, - ..., - partial-stop, - add -} -*/ - -struct Registration_Request : asn::enumerated<4, 2, true> -{ - static constexpr const char* name() {return "Registration-Request";} - using parent_t = asn::enumerated<4, 2, true>; - typedef enum { - start - ,stop - ,partial_stop - ,add - } index_t; - -}; - -/* -RelativeNarrowbandTxPower-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-enhancedRNTP CRITICALITY ignore EXTENSION EnhancedRNTP PRESENCE optional }, - ... -} -*/ - -struct RelativeNarrowbandTxPower_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_enhancedRNTP() { set(id_enhancedRNTP); type=1;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_enhancedRNTP)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_enhancedRNTP);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_enhancedRNTP() { set(ignore); type=1;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - EnhancedRNTP& select_id_enhancedRNTP() { return set(1); } - EnhancedRNTP const* get_id_enhancedRNTP() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_enhancedRNTP()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(EnhancedRNTP)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_enhancedRNTP() { set(optional); type=1;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RelativeNarrowbandTxPower ::= SEQUENCE { - - rNTP-PerPRB BIT STRING (SIZE(6..110, ...)), - rNTP-Threshold RNTP-Threshold, - numberOfCellSpecificAntennaPorts ENUMERATED {one, two, four, ...}, - p-B INTEGER (0..3,...), - pDCCH-InterferenceImpact INTEGER (0..4,...), - iE-Extensions ProtocolExtensionContainer { {RelativeNarrowbandTxPower-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct RelativeNarrowbandTxPower : asn::sequence<6, 0, true, 1> -{ - static constexpr const char* name() {return "RelativeNarrowbandTxPower";} - using parent_t = asn::sequence<6, 0, true, 1>; - struct rNTP_PerPRB_t : asn::bstring<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "rNTP_PerPRB_t";} - using parent_t = asn::bstring<>; - - }; - - rNTP_PerPRB_t& ref_rNTP_PerPRB() {return rNTP_PerPRB;} - rNTP_PerPRB_t const& ref_rNTP_PerPRB() const {return rNTP_PerPRB;} - struct rNTP_Threshold_t : RNTP_Threshold - { - static constexpr const char* name() {return "rNTP_Threshold_t";} - using parent_t = RNTP_Threshold; - - }; - rNTP_Threshold_t& ref_rNTP_Threshold() {return rNTP_Threshold;} - rNTP_Threshold_t const& ref_rNTP_Threshold() const {return rNTP_Threshold;} - struct numberOfCellSpecificAntennaPorts_t : asn::enumerated<3, 0, true> - { - static constexpr const char* name() {return "numberOfCellSpecificAntennaPorts_t";} - using parent_t = asn::enumerated<3, 0, true>; - typedef enum { - one - ,two - ,four - } index_t; - - }; - - numberOfCellSpecificAntennaPorts_t& ref_numberOfCellSpecificAntennaPorts() {return numberOfCellSpecificAntennaPorts;} - numberOfCellSpecificAntennaPorts_t const& ref_numberOfCellSpecificAntennaPorts() const {return numberOfCellSpecificAntennaPorts;} - struct p_B_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "p_B_t";} - using parent_t = asn::integer<>; - - }; - - p_B_t& ref_p_B() {return p_B;} - p_B_t const& ref_p_B() const {return p_B;} - struct pDCCH_InterferenceImpact_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "pDCCH_InterferenceImpact_t";} - using parent_t = asn::integer<>; - - }; - - pDCCH_InterferenceImpact_t& ref_pDCCH_InterferenceImpact() {return pDCCH_InterferenceImpact;} - pDCCH_InterferenceImpact_t const& ref_pDCCH_InterferenceImpact() const {return pDCCH_InterferenceImpact;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(rNTP_PerPRB); - v(rNTP_Threshold); - v(numberOfCellSpecificAntennaPorts); - v(p_B); - v(pDCCH_InterferenceImpact); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(rNTP_PerPRB); - v(rNTP_Threshold); - v(numberOfCellSpecificAntennaPorts); - v(p_B); - v(pDCCH_InterferenceImpact); - v(iE_Extensions); - - }; - void clear() - { - rNTP_PerPRB.clear(); - rNTP_Threshold.clear(); - numberOfCellSpecificAntennaPorts.clear(); - p_B.clear(); - pDCCH_InterferenceImpact.clear(); - iE_Extensions.clear(); - - }; - private: - rNTP_PerPRB_t rNTP_PerPRB; - rNTP_Threshold_t rNTP_Threshold; - numberOfCellSpecificAntennaPorts_t numberOfCellSpecificAntennaPorts; - p_B_t p_B; - pDCCH_InterferenceImpact_t pDCCH_InterferenceImpact; - iE_Extensions_t iE_Extensions; - -}; -/* -ReportCharacteristics ::= BIT STRING (SIZE (32)) -*/ - -struct ReportCharacteristics : asn::bstring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "ReportCharacteristics";} - using parent_t = asn::bstring<>; - -}; - -/* -ReportingPeriodicityCSIR ::= ENUMERATED { - ms5, - ms10, - ms20, - ms40, - ms80, -... -} -*/ - -struct ReportingPeriodicityCSIR : asn::enumerated<5, 0, true> -{ - static constexpr const char* name() {return "ReportingPeriodicityCSIR";} - using parent_t = asn::enumerated<5, 0, true>; - typedef enum { - ms5 - ,ms10 - ,ms20 - ,ms40 - ,ms80 - } index_t; - -}; - -/* -ReportingPeriodicityRSRPMR ::= ENUMERATED { - one-hundred-20-ms, - two-hundred-40-ms, - four-hundred-80-ms, - six-hundred-40-ms, -... -} -*/ - -struct ReportingPeriodicityRSRPMR : asn::enumerated<4, 0, true> -{ - static constexpr const char* name() {return "ReportingPeriodicityRSRPMR";} - using parent_t = asn::enumerated<4, 0, true>; - typedef enum { - one_hundred_20_ms - ,two_hundred_40_ms - ,four_hundred_80_ms - ,six_hundred_40_ms - } index_t; - -}; - -/* -ResumeID ::= CHOICE { - non-truncated BIT STRING(SIZE(40)), - truncated BIT STRING(SIZE(24)), - ... -} -*/ - -struct ResumeID : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "ResumeID";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~ResumeID() {clear();} - struct non_truncated_t : asn::bstring<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "non_truncated_t";} - using parent_t = asn::bstring<>; - - }; - - struct truncated_t : asn::bstring<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "truncated_t";} - using parent_t = asn::bstring<>; - - }; - - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - non_truncated_t& select_non_truncated() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - non_truncated_t const* get_non_truncated() const { if(get_index() == 1) { return &var.as();} return nullptr; } - truncated_t& select_truncated() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - truncated_t const* get_truncated() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(non_truncated_t)]; - char dummy2[sizeof(truncated_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -S1TNLLoadIndicator-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct S1TNLLoadIndicator_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -S1TNLLoadIndicator ::= SEQUENCE { - dLS1TNLLoadIndicator LoadIndicator, - uLS1TNLLoadIndicator LoadIndicator, - iE-Extensions ProtocolExtensionContainer { {S1TNLLoadIndicator-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct S1TNLLoadIndicator : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "S1TNLLoadIndicator";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct dLS1TNLLoadIndicator_t : LoadIndicator - { - static constexpr const char* name() {return "dLS1TNLLoadIndicator_t";} - using parent_t = LoadIndicator; - - }; - dLS1TNLLoadIndicator_t& ref_dLS1TNLLoadIndicator() {return dLS1TNLLoadIndicator;} - dLS1TNLLoadIndicator_t const& ref_dLS1TNLLoadIndicator() const {return dLS1TNLLoadIndicator;} - struct uLS1TNLLoadIndicator_t : LoadIndicator - { - static constexpr const char* name() {return "uLS1TNLLoadIndicator_t";} - using parent_t = LoadIndicator; - - }; - uLS1TNLLoadIndicator_t& ref_uLS1TNLLoadIndicator() {return uLS1TNLLoadIndicator;} - uLS1TNLLoadIndicator_t const& ref_uLS1TNLLoadIndicator() const {return uLS1TNLLoadIndicator;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(dLS1TNLLoadIndicator); - v(uLS1TNLLoadIndicator); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(dLS1TNLLoadIndicator); - v(uLS1TNLLoadIndicator); - v(iE_Extensions); - - }; - void clear() - { - dLS1TNLLoadIndicator.clear(); - uLS1TNLLoadIndicator.clear(); - iE_Extensions.clear(); - - }; - private: - dLS1TNLLoadIndicator_t dLS1TNLLoadIndicator; - uLS1TNLLoadIndicator_t uLS1TNLLoadIndicator; - iE_Extensions_t iE_Extensions; - -}; -/* -SCGChangeIndication ::= ENUMERATED {pDCPCountWrapAround, pSCellChange, other, ...} -*/ - -struct SCGChangeIndication : asn::enumerated<3, 0, true> -{ - static constexpr const char* name() {return "SCGChangeIndication";} - using parent_t = asn::enumerated<3, 0, true>; - typedef enum { - pDCPCountWrapAround - ,pSCellChange - ,other - } index_t; - -}; - -/* -SCGConfigurationQuery ::= ENUMERATED {true,...} -*/ - -struct SCGConfigurationQuery : asn::enumerated<1, 0, true> -{ - static constexpr const char* name() {return "SCGConfigurationQuery";} - using parent_t = asn::enumerated<1, 0, true>; - typedef enum { - True - } index_t; - -}; - -/* -SGNB-Addition-Trigger-Ind ::= ENUMERATED { - sn-change, - inter-eNB-HO, - intra-eNB-HO, - ... -} -*/ - -struct SGNB_Addition_Trigger_Ind : asn::enumerated<3, 0, true> -{ - static constexpr const char* name() {return "SGNB-Addition-Trigger-Ind";} - using parent_t = asn::enumerated<3, 0, true>; - typedef enum { - sn_change - ,inter_eNB_HO - ,intra_eNB_HO - } index_t; - -}; - -/* -SIPTOBearerDeactivationIndication ::= ENUMERATED { - true, - ... -} -*/ - -struct SIPTOBearerDeactivationIndication : asn::enumerated<1, 0, true> -{ - static constexpr const char* name() {return "SIPTOBearerDeactivationIndication";} - using parent_t = asn::enumerated<1, 0, true>; - typedef enum { - True - } index_t; - -}; - -/* -SRBType ::= ENUMERATED {srb1, srb2, ...} -*/ - -struct SRBType : asn::enumerated<2, 0, true> -{ - static constexpr const char* name() {return "SRBType";} - using parent_t = asn::enumerated<2, 0, true>; - typedef enum { - srb1 - ,srb2 - } index_t; - -}; - -/* -SRVCCOperationPossible ::= ENUMERATED { - possible, - ... -} -*/ - -struct SRVCCOperationPossible : asn::enumerated<1, 0, true> -{ - static constexpr const char* name() {return "SRVCCOperationPossible";} - using parent_t = asn::enumerated<1, 0, true>; - typedef enum { - possible - } index_t; - -}; - -/* -ScheduledCommunicationTime-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct ScheduledCommunicationTime_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ScheduledCommunicationTime ::= SEQUENCE { - dayofWeek BIT STRING (SIZE(7)) OPTIONAL, - timeofDayStart INTEGER (0..86399, ...) OPTIONAL, - timeofDayEnd INTEGER (0..86399, ...) OPTIONAL, - iE-Extensions ProtocolExtensionContainer { { ScheduledCommunicationTime-ExtIEs}} OPTIONAL, - ... -} -*/ - -struct ScheduledCommunicationTime : asn::sequence<4, 0, true, 4> -{ - static constexpr const char* name() {return "ScheduledCommunicationTime";} - using parent_t = asn::sequence<4, 0, true, 4>; - struct dayofWeek_t : asn::bstring<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "dayofWeek_t";} - using parent_t = asn::bstring<>; - static constexpr bool optional = true; - - }; - - dayofWeek_t& set_dayofWeek() { dayofWeek.setpresent(true); return dayofWeek;} - dayofWeek_t const* get_dayofWeek() const {return dayofWeek.is_valid() ? &dayofWeek : nullptr;} - struct timeofDayStart_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "timeofDayStart_t";} - using parent_t = asn::integer<>; - static constexpr bool optional = true; - - }; - - timeofDayStart_t& set_timeofDayStart() { timeofDayStart.setpresent(true); return timeofDayStart;} - timeofDayStart_t const* get_timeofDayStart() const {return timeofDayStart.is_valid() ? &timeofDayStart : nullptr;} - struct timeofDayEnd_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "timeofDayEnd_t";} - using parent_t = asn::integer<>; - static constexpr bool optional = true; - - }; - - timeofDayEnd_t& set_timeofDayEnd() { timeofDayEnd.setpresent(true); return timeofDayEnd;} - timeofDayEnd_t const* get_timeofDayEnd() const {return timeofDayEnd.is_valid() ? &timeofDayEnd : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(dayofWeek); - v(timeofDayStart); - v(timeofDayEnd); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(dayofWeek); - v(timeofDayStart); - v(timeofDayEnd); - v(iE_Extensions); - - }; - void clear() - { - dayofWeek.clear(); - timeofDayStart.clear(); - timeofDayEnd.clear(); - iE_Extensions.clear(); - - }; - private: - dayofWeek_t dayofWeek; - timeofDayStart_t timeofDayStart; - timeofDayEnd_t timeofDayEnd; - iE_Extensions_t iE_Extensions; - -}; -/* -SeNBSecurityKey ::= BIT STRING (SIZE(256)) -*/ - -struct SeNBSecurityKey : asn::bstring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "SeNBSecurityKey";} - using parent_t = asn::bstring<>; - -}; - -/* -SeNBtoMeNBContainer ::= OCTET STRING -*/ - -struct SeNBtoMeNBContainer : asn::ostring<> -{ - static constexpr const char* name() {return "SeNBtoMeNBContainer";} - using parent_t = asn::ostring<>; - -}; - -/* -SecondaryRATUsageReport-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct SecondaryRATUsageReport_Item_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SecondaryRATUsageReport-Item ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - secondaryRATType ENUMERATED {nr, ...}, - e-RABUsageReportList E-RABUsageReportList, - iE-Extensions ProtocolExtensionContainer { {SecondaryRATUsageReport-Item-ExtIEs} } OPTIONAL, -... -} -*/ - -struct SecondaryRATUsageReport_Item : asn::sequence<4, 0, true, 1> -{ - static constexpr const char* name() {return "SecondaryRATUsageReport-Item";} - using parent_t = asn::sequence<4, 0, true, 1>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct secondaryRATType_t : asn::enumerated<1, 0, true> - { - static constexpr const char* name() {return "secondaryRATType_t";} - using parent_t = asn::enumerated<1, 0, true>; - typedef enum { - nr - } index_t; - - }; - - secondaryRATType_t& ref_secondaryRATType() {return secondaryRATType;} - secondaryRATType_t const& ref_secondaryRATType() const {return secondaryRATType;} - struct e_RABUsageReportList_t : E_RABUsageReportList - { - static constexpr const char* name() {return "e_RABUsageReportList_t";} - using parent_t = E_RABUsageReportList; - - }; - e_RABUsageReportList_t& ref_e_RABUsageReportList() {return e_RABUsageReportList;} - e_RABUsageReportList_t const& ref_e_RABUsageReportList() const {return e_RABUsageReportList;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(secondaryRATType); - v(e_RABUsageReportList); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(secondaryRATType); - v(e_RABUsageReportList); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - secondaryRATType.clear(); - e_RABUsageReportList.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - secondaryRATType_t secondaryRATType; - e_RABUsageReportList_t e_RABUsageReportList; - iE_Extensions_t iE_Extensions; - -}; -/* -SecondaryRATUsageReport-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-SecondaryRATUsageReport-Item CRITICALITY reject TYPE SecondaryRATUsageReport-Item PRESENCE mandatory}, - ... -} -*/ - -struct SecondaryRATUsageReport_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_SecondaryRATUsageReport_Item() { set(id_SecondaryRATUsageReport_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_SecondaryRATUsageReport_Item)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_SecondaryRATUsageReport_Item);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_SecondaryRATUsageReport_Item() { set(reject); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - SecondaryRATUsageReport_Item& select_id_SecondaryRATUsageReport_Item() { return set(1); } - SecondaryRATUsageReport_Item const* get_id_SecondaryRATUsageReport_Item() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_SecondaryRATUsageReport_Item()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(SecondaryRATUsageReport_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_SecondaryRATUsageReport_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SecondaryRATUsageReportList ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container {{SecondaryRATUsageReport-ItemIEs}} -*/ - -struct SecondaryRATUsageReportList_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "SecondaryRATUsageReportList_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct SecondaryRATUsageReportList : asn::sequenceof -{ - static constexpr const char* name() {return "SecondaryRATUsageReportList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -ServedCell-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct ServedCell_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ServedCell-Information-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-Number-of-Antennaports CRITICALITY ignore EXTENSION Number-of-Antennaports PRESENCE optional}| - { ID id-PRACH-Configuration CRITICALITY ignore EXTENSION PRACH-Configuration PRESENCE optional}| - { ID id-MBSFN-Subframe-Info CRITICALITY ignore EXTENSION MBSFN-Subframe-Infolist PRESENCE optional}| - { ID id-CSG-Id CRITICALITY ignore EXTENSION CSG-Id PRESENCE optional}| - { ID id-MBMS-Service-Area-List CRITICALITY ignore EXTENSION MBMS-Service-Area-Identity-List PRESENCE optional}| - { ID id-MultibandInfoList CRITICALITY ignore EXTENSION MultibandInfoList PRESENCE optional}| - { ID id-FreqBandIndicatorPriority CRITICALITY ignore EXTENSION FreqBandIndicatorPriority PRESENCE optional}| - { ID id-BandwidthReducedSI CRITICALITY ignore EXTENSION BandwidthReducedSI PRESENCE optional}| - { ID id-ProtectedEUTRAResourceIndication CRITICALITY ignore EXTENSION ProtectedEUTRAResourceIndication PRESENCE optional}, - ... -} -*/ - -struct ServedCell_Information_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 10; } - void clear() {type = 0;} - void select_id_Number_of_Antennaports() { set(id_Number_of_Antennaports); type=1;} - void select_id_PRACH_Configuration() { set(id_PRACH_Configuration); type=2;} - void select_id_MBSFN_Subframe_Info() { set(id_MBSFN_Subframe_Info); type=3;} - void select_id_CSG_Id() { set(id_CSG_Id); type=4;} - void select_id_MBMS_Service_Area_List() { set(id_MBMS_Service_Area_List); type=5;} - void select_id_MultibandInfoList() { set(id_MultibandInfoList); type=6;} - void select_id_FreqBandIndicatorPriority() { set(id_FreqBandIndicatorPriority); type=7;} - void select_id_BandwidthReducedSI() { set(id_BandwidthReducedSI); type=8;} - void select_id_ProtectedEUTRAResourceIndication() { set(id_ProtectedEUTRAResourceIndication); type=9;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_Number_of_Antennaports)) { type = 1; return true; } - else if(equal(id_PRACH_Configuration)) { type = 2; return true; } - else if(equal(id_MBSFN_Subframe_Info)) { type = 3; return true; } - else if(equal(id_CSG_Id)) { type = 4; return true; } - else if(equal(id_MBMS_Service_Area_List)) { type = 5; return true; } - else if(equal(id_MultibandInfoList)) { type = 6; return true; } - else if(equal(id_FreqBandIndicatorPriority)) { type = 7; return true; } - else if(equal(id_BandwidthReducedSI)) { type = 8; return true; } - else if(equal(id_ProtectedEUTRAResourceIndication)) { type = 9; return true; } - else { type = 10; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_Number_of_Antennaports);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_PRACH_Configuration);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_MBSFN_Subframe_Info);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_CSG_Id);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_MBMS_Service_Area_List);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_MultibandInfoList);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(id_FreqBandIndicatorPriority);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(id_BandwidthReducedSI);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(id_ProtectedEUTRAResourceIndication);} return false; - case 10: type = 10; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 10; } - void clear() {type = 0;} - void select_id_Number_of_Antennaports() { set(ignore); type=1;} - void select_id_PRACH_Configuration() { set(ignore); type=2;} - void select_id_MBSFN_Subframe_Info() { set(ignore); type=3;} - void select_id_CSG_Id() { set(ignore); type=4;} - void select_id_MBMS_Service_Area_List() { set(ignore); type=5;} - void select_id_MultibandInfoList() { set(ignore); type=6;} - void select_id_FreqBandIndicatorPriority() { set(ignore); type=7;} - void select_id_BandwidthReducedSI() { set(ignore); type=8;} - void select_id_ProtectedEUTRAResourceIndication() { set(ignore); type=9;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else if(equal(ignore)) { type = 6; return true; } - else if(equal(ignore)) { type = 7; return true; } - else if(equal(ignore)) { type = 8; return true; } - else if(equal(ignore)) { type = 9; return true; } - else { type = 10; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(ignore);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(ignore);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(ignore);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(ignore);} return false; - case 10: type = 10; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - Number_of_Antennaports& select_id_Number_of_Antennaports() { return set(1); } - Number_of_Antennaports const* get_id_Number_of_Antennaports() const { return get(1); } - PRACH_Configuration& select_id_PRACH_Configuration() { return set(2); } - PRACH_Configuration const* get_id_PRACH_Configuration() const { return get(2); } - MBSFN_Subframe_Infolist& select_id_MBSFN_Subframe_Info() { return set(3); } - MBSFN_Subframe_Infolist const* get_id_MBSFN_Subframe_Info() const { return get(3); } - CSG_Id& select_id_CSG_Id() { return set(4); } - CSG_Id const* get_id_CSG_Id() const { return get(4); } - MBMS_Service_Area_Identity_List& select_id_MBMS_Service_Area_List() { return set(5); } - MBMS_Service_Area_Identity_List const* get_id_MBMS_Service_Area_List() const { return get(5); } - MultibandInfoList& select_id_MultibandInfoList() { return set(6); } - MultibandInfoList const* get_id_MultibandInfoList() const { return get(6); } - FreqBandIndicatorPriority& select_id_FreqBandIndicatorPriority() { return set(7); } - FreqBandIndicatorPriority const* get_id_FreqBandIndicatorPriority() const { return get(7); } - BandwidthReducedSI& select_id_BandwidthReducedSI() { return set(8); } - BandwidthReducedSI const* get_id_BandwidthReducedSI() const { return get(8); } - ProtectedEUTRAResourceIndication& select_id_ProtectedEUTRAResourceIndication() { return set(9); } - ProtectedEUTRAResourceIndication const* get_id_ProtectedEUTRAResourceIndication() const { return get(9); } - bool is_unknown() const { return type == 10; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - case 7: var.destroy(); break; - case 8: var.destroy(); break; - case 9: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - v.template operator()(7); - v.template operator()(8); - v.template operator()(9); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_Number_of_Antennaports()); return true; - case 2: v(select_id_PRACH_Configuration()); return true; - case 3: v(select_id_MBSFN_Subframe_Info()); return true; - case 4: v(select_id_CSG_Id()); return true; - case 5: v(select_id_MBMS_Service_Area_List()); return true; - case 6: v(select_id_MultibandInfoList()); return true; - case 7: v(select_id_FreqBandIndicatorPriority()); return true; - case 8: v(select_id_BandwidthReducedSI()); return true; - case 9: v(select_id_ProtectedEUTRAResourceIndication()); return true; - case 10: if(type != 10) {clear(); asn::base::set();} type = 10; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - case 7: v(var.as()); return true; - case 8: v(var.as()); return true; - case 9: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(BandwidthReducedSI)]; - char dummy2[sizeof(CSG_Id)]; - char dummy3[sizeof(FreqBandIndicatorPriority)]; - char dummy4[sizeof(MBMS_Service_Area_Identity_List)]; - char dummy5[sizeof(MBSFN_Subframe_Infolist)]; - char dummy6[sizeof(MultibandInfoList)]; - char dummy7[sizeof(Number_of_Antennaports)]; - char dummy8[sizeof(PRACH_Configuration)]; - char dummy9[sizeof(ProtectedEUTRAResourceIndication)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 10; } - void clear() {type = 0;} - void select_id_Number_of_Antennaports() { set(optional); type=1;} - void select_id_PRACH_Configuration() { set(optional); type=2;} - void select_id_MBSFN_Subframe_Info() { set(optional); type=3;} - void select_id_CSG_Id() { set(optional); type=4;} - void select_id_MBMS_Service_Area_List() { set(optional); type=5;} - void select_id_MultibandInfoList() { set(optional); type=6;} - void select_id_FreqBandIndicatorPriority() { set(optional); type=7;} - void select_id_BandwidthReducedSI() { set(optional); type=8;} - void select_id_ProtectedEUTRAResourceIndication() { set(optional); type=9;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else if(equal(optional)) { type = 7; return true; } - else if(equal(optional)) { type = 8; return true; } - else if(equal(optional)) { type = 9; return true; } - else { type = 10; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(optional);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(optional);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(optional);} return false; - case 10: type = 10; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ServedCell-Information ::= SEQUENCE { - pCI PCI, - cellId ECGI, - tAC TAC, - broadcastPLMNs BroadcastPLMNs-Item, - eUTRA-Mode-Info EUTRA-Mode-Info, - iE-Extensions ProtocolExtensionContainer { {ServedCell-Information-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct ServedCell_Information : asn::sequence<6, 0, true, 1> -{ - static constexpr const char* name() {return "ServedCell-Information";} - using parent_t = asn::sequence<6, 0, true, 1>; - struct pCI_t : PCI - { - static constexpr const char* name() {return "pCI_t";} - using parent_t = PCI; - - }; - pCI_t& ref_pCI() {return pCI;} - pCI_t const& ref_pCI() const {return pCI;} - struct cellId_t : ECGI - { - static constexpr const char* name() {return "cellId_t";} - using parent_t = ECGI; - - }; - cellId_t& ref_cellId() {return cellId;} - cellId_t const& ref_cellId() const {return cellId;} - struct tAC_t : TAC - { - static constexpr const char* name() {return "tAC_t";} - using parent_t = TAC; - - }; - tAC_t& ref_tAC() {return tAC;} - tAC_t const& ref_tAC() const {return tAC;} - struct broadcastPLMNs_t : BroadcastPLMNs_Item - { - static constexpr const char* name() {return "broadcastPLMNs_t";} - using parent_t = BroadcastPLMNs_Item; - - }; - broadcastPLMNs_t& ref_broadcastPLMNs() {return broadcastPLMNs;} - broadcastPLMNs_t const& ref_broadcastPLMNs() const {return broadcastPLMNs;} - struct eUTRA_Mode_Info_t : EUTRA_Mode_Info - { - static constexpr const char* name() {return "eUTRA_Mode_Info_t";} - using parent_t = EUTRA_Mode_Info; - - }; - eUTRA_Mode_Info_t& ref_eUTRA_Mode_Info() {return eUTRA_Mode_Info;} - eUTRA_Mode_Info_t const& ref_eUTRA_Mode_Info() const {return eUTRA_Mode_Info;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(pCI); - v(cellId); - v(tAC); - v(broadcastPLMNs); - v(eUTRA_Mode_Info); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(pCI); - v(cellId); - v(tAC); - v(broadcastPLMNs); - v(eUTRA_Mode_Info); - v(iE_Extensions); - - }; - void clear() - { - pCI.clear(); - cellId.clear(); - tAC.clear(); - broadcastPLMNs.clear(); - eUTRA_Mode_Info.clear(); - iE_Extensions.clear(); - - }; - private: - pCI_t pCI; - cellId_t cellId; - tAC_t tAC; - broadcastPLMNs_t broadcastPLMNs; - eUTRA_Mode_Info_t eUTRA_Mode_Info; - iE_Extensions_t iE_Extensions; - -}; -/* -ServedCells ::= SEQUENCE (SIZE (1.. maxCellineNB)) OF SEQUENCE { - servedCellInfo ServedCell-Information, - neighbour-Info Neighbour-Information OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {ServedCell-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct ServedCells_elm : asn::sequence<3, 0, true, 2> -{ - static constexpr const char* name() {return "ServedCells_elm";} - using parent_t = asn::sequence<3, 0, true, 2>; - struct servedCellInfo_t : ServedCell_Information - { - static constexpr const char* name() {return "servedCellInfo_t";} - using parent_t = ServedCell_Information; - - }; - servedCellInfo_t& ref_servedCellInfo() {return servedCellInfo;} - servedCellInfo_t const& ref_servedCellInfo() const {return servedCellInfo;} - struct neighbour_Info_t : Neighbour_Information - { - static constexpr const char* name() {return "neighbour_Info_t";} - using parent_t = Neighbour_Information; - static constexpr bool optional = true; - - }; - neighbour_Info_t& set_neighbour_Info() { neighbour_Info.setpresent(true); return neighbour_Info;} - neighbour_Info_t const* get_neighbour_Info() const {return neighbour_Info.is_valid() ? &neighbour_Info : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(servedCellInfo); - v(neighbour_Info); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(servedCellInfo); - v(neighbour_Info); - v(iE_Extensions); - - }; - void clear() - { - servedCellInfo.clear(); - neighbour_Info.clear(); - iE_Extensions.clear(); - - }; - private: - servedCellInfo_t servedCellInfo; - neighbour_Info_t neighbour_Info; - iE_Extensions_t iE_Extensions; - -}; -struct ServedCells : asn::sequenceof -{ - static constexpr const char* name() {return "ServedCells";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -ServiceType ::= ENUMERATED{ - qMC-for-streaming-service, - qMC-for-MTSI-service, - ... -} -*/ - -struct ServiceType : asn::enumerated<2, 0, true> -{ - static constexpr const char* name() {return "ServiceType";} - using parent_t = asn::enumerated<2, 0, true>; - typedef enum { - qMC_for_streaming_service - ,qMC_for_MTSI_service - } index_t; - -}; - -/* -SgNB-UE-X2AP-ID ::= INTEGER (0..4294967295) -*/ - -struct SgNB_UE_X2AP_ID : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "SgNB-UE-X2AP-ID";} - using parent_t = asn::integer<>; - -}; - -/* -SgNBCoordinationAssistanceInformation ::= ENUMERATED{ - coordination-not-required, - ... -} -*/ - -struct SgNBCoordinationAssistanceInformation : asn::enumerated<1, 0, true> -{ - static constexpr const char* name() {return "SgNBCoordinationAssistanceInformation";} - using parent_t = asn::enumerated<1, 0, true>; - typedef enum { - coordination_not_required - } index_t; - -}; - -/* -SgNBResourceCoordinationInformationExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-ECGI CRITICALITY ignore EXTENSION ECGI PRESENCE optional}| - { ID id-SgNBCoordinationAssistanceInformation CRITICALITY reject EXTENSION SgNBCoordinationAssistanceInformation PRESENCE optional}, - ... -} -*/ - -struct SgNBResourceCoordinationInformationExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_ECGI() { set(id_ECGI); type=1;} - void select_id_SgNBCoordinationAssistanceInformation() { set(id_SgNBCoordinationAssistanceInformation); type=2;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_ECGI)) { type = 1; return true; } - else if(equal(id_SgNBCoordinationAssistanceInformation)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_ECGI);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SgNBCoordinationAssistanceInformation);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_ECGI() { set(ignore); type=1;} - void select_id_SgNBCoordinationAssistanceInformation() { set(reject); type=2;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - ECGI& select_id_ECGI() { return set(1); } - ECGI const* get_id_ECGI() const { return get(1); } - SgNBCoordinationAssistanceInformation& select_id_SgNBCoordinationAssistanceInformation() { return set(2); } - SgNBCoordinationAssistanceInformation const* get_id_SgNBCoordinationAssistanceInformation() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_ECGI()); return true; - case 2: v(select_id_SgNBCoordinationAssistanceInformation()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(ECGI)]; - char dummy2[sizeof(SgNBCoordinationAssistanceInformation)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_ECGI() { set(optional); type=1;} - void select_id_SgNBCoordinationAssistanceInformation() { set(optional); type=2;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SgNBResourceCoordinationInformation ::= SEQUENCE { - nR-CGI NRCGI, - uLCoordinationInformation BIT STRING (SIZE(6..4400, ...)), - dLCoordinationInformation BIT STRING (SIZE(6..4400, ...)) OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {SgNBResourceCoordinationInformationExtIEs} } OPTIONAL, - ... -} -*/ - -struct SgNBResourceCoordinationInformation : asn::sequence<4, 0, true, 2> -{ - static constexpr const char* name() {return "SgNBResourceCoordinationInformation";} - using parent_t = asn::sequence<4, 0, true, 2>; - struct nR_CGI_t : NRCGI - { - static constexpr const char* name() {return "nR_CGI_t";} - using parent_t = NRCGI; - - }; - nR_CGI_t& ref_nR_CGI() {return nR_CGI;} - nR_CGI_t const& ref_nR_CGI() const {return nR_CGI;} - struct uLCoordinationInformation_t : asn::bstring<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "uLCoordinationInformation_t";} - using parent_t = asn::bstring<>; - - }; - - uLCoordinationInformation_t& ref_uLCoordinationInformation() {return uLCoordinationInformation;} - uLCoordinationInformation_t const& ref_uLCoordinationInformation() const {return uLCoordinationInformation;} - struct dLCoordinationInformation_t : asn::bstring<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "dLCoordinationInformation_t";} - using parent_t = asn::bstring<>; - static constexpr bool optional = true; - - }; - - dLCoordinationInformation_t& set_dLCoordinationInformation() { dLCoordinationInformation.setpresent(true); return dLCoordinationInformation;} - dLCoordinationInformation_t const* get_dLCoordinationInformation() const {return dLCoordinationInformation.is_valid() ? &dLCoordinationInformation : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(nR_CGI); - v(uLCoordinationInformation); - v(dLCoordinationInformation); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(nR_CGI); - v(uLCoordinationInformation); - v(dLCoordinationInformation); - v(iE_Extensions); - - }; - void clear() - { - nR_CGI.clear(); - uLCoordinationInformation.clear(); - dLCoordinationInformation.clear(); - iE_Extensions.clear(); - - }; - private: - nR_CGI_t nR_CGI; - uLCoordinationInformation_t uLCoordinationInformation; - dLCoordinationInformation_t dLCoordinationInformation; - iE_Extensions_t iE_Extensions; - -}; -/* -SgNBSecurityKey ::= BIT STRING (SIZE(256)) -*/ - -struct SgNBSecurityKey : asn::bstring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "SgNBSecurityKey";} - using parent_t = asn::bstring<>; - -}; - -/* -SgNBtoMeNBContainer ::= OCTET STRING -*/ - -struct SgNBtoMeNBContainer : asn::ostring<> -{ - static constexpr const char* name() {return "SgNBtoMeNBContainer";} - using parent_t = asn::ostring<>; - -}; - -/* -ShortMAC-I ::= BIT STRING (SIZE(16)) -*/ - -struct ShortMAC_I : asn::bstring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "ShortMAC-I";} - using parent_t = asn::bstring<>; - -}; - -/* -SpectrumSharingGroupID ::= INTEGER (1..maxCellineNB) -*/ - -struct SpectrumSharingGroupID : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "SpectrumSharingGroupID";} - using parent_t = asn::integer<>; - -}; - -/* -SplitSRB-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct SplitSRB_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SplitSRB ::= SEQUENCE { - rrcContainer RRCContainer OPTIONAL, - srbType SRBType, - deliveryStatus DeliveryStatus OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {SplitSRB-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct SplitSRB : asn::sequence<4, 0, true, 3> -{ - static constexpr const char* name() {return "SplitSRB";} - using parent_t = asn::sequence<4, 0, true, 3>; - struct rrcContainer_t : RRCContainer - { - static constexpr const char* name() {return "rrcContainer_t";} - using parent_t = RRCContainer; - static constexpr bool optional = true; - - }; - rrcContainer_t& set_rrcContainer() { rrcContainer.setpresent(true); return rrcContainer;} - rrcContainer_t const* get_rrcContainer() const {return rrcContainer.is_valid() ? &rrcContainer : nullptr;} - struct srbType_t : SRBType - { - static constexpr const char* name() {return "srbType_t";} - using parent_t = SRBType; - - }; - srbType_t& ref_srbType() {return srbType;} - srbType_t const& ref_srbType() const {return srbType;} - struct deliveryStatus_t : DeliveryStatus - { - static constexpr const char* name() {return "deliveryStatus_t";} - using parent_t = DeliveryStatus; - static constexpr bool optional = true; - - }; - deliveryStatus_t& set_deliveryStatus() { deliveryStatus.setpresent(true); return deliveryStatus;} - deliveryStatus_t const* get_deliveryStatus() const {return deliveryStatus.is_valid() ? &deliveryStatus : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(rrcContainer); - v(srbType); - v(deliveryStatus); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(rrcContainer); - v(srbType); - v(deliveryStatus); - v(iE_Extensions); - - }; - void clear() - { - rrcContainer.clear(); - srbType.clear(); - deliveryStatus.clear(); - iE_Extensions.clear(); - - }; - private: - rrcContainer_t rrcContainer; - srbType_t srbType; - deliveryStatus_t deliveryStatus; - iE_Extensions_t iE_Extensions; - -}; -/* -SplitSRBs ::= ENUMERATED {srb1, srb2, srb1and2, ...} -*/ - -struct SplitSRBs : asn::enumerated<3, 0, true> -{ - static constexpr const char* name() {return "SplitSRBs";} - using parent_t = asn::enumerated<3, 0, true>; - typedef enum { - srb1 - ,srb2 - ,srb1and2 - } index_t; - -}; - -/* -SubscriberProfileIDforRFP ::= INTEGER (1..256) -*/ - -struct SubscriberProfileIDforRFP : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "SubscriberProfileIDforRFP";} - using parent_t = asn::integer<>; - -}; - -/* -Subscription-Based-UE-DifferentiationInfo-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct Subscription_Based_UE_DifferentiationInfo_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -Subscription-Based-UE-DifferentiationInfo ::= SEQUENCE { - periodicCommunicationIndicator ENUMERATED {periodically, ondemand, ...} OPTIONAL, - periodicTime INTEGER (1..3600, ...) OPTIONAL, - scheduledCommunicationTime ScheduledCommunicationTime OPTIONAL, - stationaryIndication ENUMERATED {stationary, mobile, ...} OPTIONAL, - trafficProfile ENUMERATED {single-packet, dual-packets, multiple-packets, ...} OPTIONAL, - batteryIndication ENUMERATED {battery-powered, battery-powered-not-rechargeable-or-replaceable, not-battery-powered, ...} OPTIONAL, - iE-Extensions ProtocolExtensionContainer { { Subscription-Based-UE-DifferentiationInfo-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct Subscription_Based_UE_DifferentiationInfo : asn::sequence<7, 0, true, 7> -{ - static constexpr const char* name() {return "Subscription-Based-UE-DifferentiationInfo";} - using parent_t = asn::sequence<7, 0, true, 7>; - struct periodicCommunicationIndicator_t : asn::enumerated<2, 0, true> - { - static constexpr const char* name() {return "periodicCommunicationIndicator_t";} - using parent_t = asn::enumerated<2, 0, true>; - static constexpr bool optional = true; - typedef enum { - periodically - ,ondemand - } index_t; - - }; - - periodicCommunicationIndicator_t& set_periodicCommunicationIndicator() { periodicCommunicationIndicator.setpresent(true); return periodicCommunicationIndicator;} - periodicCommunicationIndicator_t const* get_periodicCommunicationIndicator() const {return periodicCommunicationIndicator.is_valid() ? &periodicCommunicationIndicator : nullptr;} - struct periodicTime_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "periodicTime_t";} - using parent_t = asn::integer<>; - static constexpr bool optional = true; - - }; - - periodicTime_t& set_periodicTime() { periodicTime.setpresent(true); return periodicTime;} - periodicTime_t const* get_periodicTime() const {return periodicTime.is_valid() ? &periodicTime : nullptr;} - struct scheduledCommunicationTime_t : ScheduledCommunicationTime - { - static constexpr const char* name() {return "scheduledCommunicationTime_t";} - using parent_t = ScheduledCommunicationTime; - static constexpr bool optional = true; - - }; - scheduledCommunicationTime_t& set_scheduledCommunicationTime() { scheduledCommunicationTime.setpresent(true); return scheduledCommunicationTime;} - scheduledCommunicationTime_t const* get_scheduledCommunicationTime() const {return scheduledCommunicationTime.is_valid() ? &scheduledCommunicationTime : nullptr;} - struct stationaryIndication_t : asn::enumerated<2, 0, true> - { - static constexpr const char* name() {return "stationaryIndication_t";} - using parent_t = asn::enumerated<2, 0, true>; - static constexpr bool optional = true; - typedef enum { - stationary - ,mobile - } index_t; - - }; - - stationaryIndication_t& set_stationaryIndication() { stationaryIndication.setpresent(true); return stationaryIndication;} - stationaryIndication_t const* get_stationaryIndication() const {return stationaryIndication.is_valid() ? &stationaryIndication : nullptr;} - struct trafficProfile_t : asn::enumerated<3, 0, true> - { - static constexpr const char* name() {return "trafficProfile_t";} - using parent_t = asn::enumerated<3, 0, true>; - static constexpr bool optional = true; - typedef enum { - single_packet - ,dual_packets - ,multiple_packets - } index_t; - - }; - - trafficProfile_t& set_trafficProfile() { trafficProfile.setpresent(true); return trafficProfile;} - trafficProfile_t const* get_trafficProfile() const {return trafficProfile.is_valid() ? &trafficProfile : nullptr;} - struct batteryIndication_t : asn::enumerated<3, 0, true> - { - static constexpr const char* name() {return "batteryIndication_t";} - using parent_t = asn::enumerated<3, 0, true>; - static constexpr bool optional = true; - typedef enum { - battery_powered - ,battery_powered_not_rechargeable_or_replaceable - ,not_battery_powered - } index_t; - - }; - - batteryIndication_t& set_batteryIndication() { batteryIndication.setpresent(true); return batteryIndication;} - batteryIndication_t const* get_batteryIndication() const {return batteryIndication.is_valid() ? &batteryIndication : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(periodicCommunicationIndicator); - v(periodicTime); - v(scheduledCommunicationTime); - v(stationaryIndication); - v(trafficProfile); - v(batteryIndication); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(periodicCommunicationIndicator); - v(periodicTime); - v(scheduledCommunicationTime); - v(stationaryIndication); - v(trafficProfile); - v(batteryIndication); - v(iE_Extensions); - - }; - void clear() - { - periodicCommunicationIndicator.clear(); - periodicTime.clear(); - scheduledCommunicationTime.clear(); - stationaryIndication.clear(); - trafficProfile.clear(); - batteryIndication.clear(); - iE_Extensions.clear(); - - }; - private: - periodicCommunicationIndicator_t periodicCommunicationIndicator; - periodicTime_t periodicTime; - scheduledCommunicationTime_t scheduledCommunicationTime; - stationaryIndication_t stationaryIndication; - trafficProfile_t trafficProfile; - batteryIndication_t batteryIndication; - iE_Extensions_t iE_Extensions; - -}; -/* -TargetCellInUTRAN ::= OCTET STRING -- This IE is to be encoded according to the UTRAN Cell ID in the Last Visited UTRAN Cell Information IE in TS 25.413 [24] -*/ - -struct TargetCellInUTRAN : asn::ostring<> -{ - static constexpr const char* name() {return "TargetCellInUTRAN";} - using parent_t = asn::ostring<>; - -}; - -/* -TargeteNBtoSource-eNBTransparentContainer ::= OCTET STRING -*/ - -struct TargeteNBtoSource_eNBTransparentContainer : asn::ostring<> -{ - static constexpr const char* name() {return "TargeteNBtoSource-eNBTransparentContainer";} - using parent_t = asn::ostring<>; - -}; - -/* -TimeToWait ::= ENUMERATED { - v1s, - v2s, - v5s, - v10s, - v20s, - v60s, - ... -} -*/ - -struct TimeToWait : asn::enumerated<6, 0, true> -{ - static constexpr const char* name() {return "TimeToWait";} - using parent_t = asn::enumerated<6, 0, true>; - typedef enum { - v1s - ,v2s - ,v5s - ,v10s - ,v20s - ,v60s - } index_t; - -}; - -/* -TraceDepth ::= ENUMERATED { - minimum, - medium, - maximum, - minimumWithoutVendorSpecificExtension, - mediumWithoutVendorSpecificExtension, - maximumWithoutVendorSpecificExtension, - ... -} -*/ - -struct TraceDepth : asn::enumerated<6, 0, true> -{ - static constexpr const char* name() {return "TraceDepth";} - using parent_t = asn::enumerated<6, 0, true>; - typedef enum { - minimum - ,medium - ,maximum - ,minimumWithoutVendorSpecificExtension - ,mediumWithoutVendorSpecificExtension - ,maximumWithoutVendorSpecificExtension - } index_t; - -}; - -/* -TraceCollectionEntityIPAddress ::= BIT STRING (SIZE(1..160, ...)) -*/ - -struct TraceCollectionEntityIPAddress : asn::bstring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "TraceCollectionEntityIPAddress";} - using parent_t = asn::bstring<>; - -}; - -/* -UEAppLayerMeasConfig-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - {ID id-serviceType CRITICALITY ignore EXTENSION ServiceType PRESENCE optional}, - ... -} -*/ - -struct UEAppLayerMeasConfig_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_serviceType() { set(id_serviceType); type=1;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_serviceType)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_serviceType);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_serviceType() { set(ignore); type=1;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - ServiceType& select_id_serviceType() { return set(1); } - ServiceType const* get_id_serviceType() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_serviceType()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(ServiceType)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_serviceType() { set(optional); type=1;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -UEAppLayerMeasConfig ::= SEQUENCE { - containerForAppLayerMeasConfig OCTET STRING (SIZE(1..1000)), - areaScopeOfQMC AreaScopeOfQMC, - iE-Extensions ProtocolExtensionContainer { {UEAppLayerMeasConfig-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct UEAppLayerMeasConfig : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "UEAppLayerMeasConfig";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct containerForAppLayerMeasConfig_t : asn::ostring<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "containerForAppLayerMeasConfig_t";} - using parent_t = asn::ostring<>; - - }; - - containerForAppLayerMeasConfig_t& ref_containerForAppLayerMeasConfig() {return containerForAppLayerMeasConfig;} - containerForAppLayerMeasConfig_t const& ref_containerForAppLayerMeasConfig() const {return containerForAppLayerMeasConfig;} - struct areaScopeOfQMC_t : AreaScopeOfQMC - { - static constexpr const char* name() {return "areaScopeOfQMC_t";} - using parent_t = AreaScopeOfQMC; - - }; - areaScopeOfQMC_t& ref_areaScopeOfQMC() {return areaScopeOfQMC;} - areaScopeOfQMC_t const& ref_areaScopeOfQMC() const {return areaScopeOfQMC;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(containerForAppLayerMeasConfig); - v(areaScopeOfQMC); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(containerForAppLayerMeasConfig); - v(areaScopeOfQMC); - v(iE_Extensions); - - }; - void clear() - { - containerForAppLayerMeasConfig.clear(); - areaScopeOfQMC.clear(); - iE_Extensions.clear(); - - }; - private: - containerForAppLayerMeasConfig_t containerForAppLayerMeasConfig; - areaScopeOfQMC_t areaScopeOfQMC; - iE_Extensions_t iE_Extensions; - -}; -/* -TraceActivation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-MDTConfiguration CRITICALITY ignore EXTENSION MDT-Configuration PRESENCE optional}| - { ID id-UEAppLayerMeasConfig CRITICALITY ignore EXTENSION UEAppLayerMeasConfig PRESENCE optional}, - ... -} -*/ - -struct TraceActivation_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_MDTConfiguration() { set(id_MDTConfiguration); type=1;} - void select_id_UEAppLayerMeasConfig() { set(id_UEAppLayerMeasConfig); type=2;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MDTConfiguration)) { type = 1; return true; } - else if(equal(id_UEAppLayerMeasConfig)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MDTConfiguration);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_UEAppLayerMeasConfig);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_MDTConfiguration() { set(ignore); type=1;} - void select_id_UEAppLayerMeasConfig() { set(ignore); type=2;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - MDT_Configuration& select_id_MDTConfiguration() { return set(1); } - MDT_Configuration const* get_id_MDTConfiguration() const { return get(1); } - UEAppLayerMeasConfig& select_id_UEAppLayerMeasConfig() { return set(2); } - UEAppLayerMeasConfig const* get_id_UEAppLayerMeasConfig() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MDTConfiguration()); return true; - case 2: v(select_id_UEAppLayerMeasConfig()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(MDT_Configuration)]; - char dummy2[sizeof(UEAppLayerMeasConfig)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_MDTConfiguration() { set(optional); type=1;} - void select_id_UEAppLayerMeasConfig() { set(optional); type=2;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -TraceActivation ::= SEQUENCE { - eUTRANTraceID EUTRANTraceID, - interfacesToTrace InterfacesToTrace, -traceDepth TraceDepth, -traceCollectionEntityIPAddress TraceCollectionEntityIPAddress, - iE-Extensions ProtocolExtensionContainer { {TraceActivation-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct TraceActivation : asn::sequence<5, 0, true, 1> -{ - static constexpr const char* name() {return "TraceActivation";} - using parent_t = asn::sequence<5, 0, true, 1>; - struct eUTRANTraceID_t : EUTRANTraceID - { - static constexpr const char* name() {return "eUTRANTraceID_t";} - using parent_t = EUTRANTraceID; - - }; - eUTRANTraceID_t& ref_eUTRANTraceID() {return eUTRANTraceID;} - eUTRANTraceID_t const& ref_eUTRANTraceID() const {return eUTRANTraceID;} - struct interfacesToTrace_t : InterfacesToTrace - { - static constexpr const char* name() {return "interfacesToTrace_t";} - using parent_t = InterfacesToTrace; - - }; - interfacesToTrace_t& ref_interfacesToTrace() {return interfacesToTrace;} - interfacesToTrace_t const& ref_interfacesToTrace() const {return interfacesToTrace;} - struct traceDepth_t : TraceDepth - { - static constexpr const char* name() {return "traceDepth_t";} - using parent_t = TraceDepth; - - }; - traceDepth_t& ref_traceDepth() {return traceDepth;} - traceDepth_t const& ref_traceDepth() const {return traceDepth;} - struct traceCollectionEntityIPAddress_t : TraceCollectionEntityIPAddress - { - static constexpr const char* name() {return "traceCollectionEntityIPAddress_t";} - using parent_t = TraceCollectionEntityIPAddress; - - }; - traceCollectionEntityIPAddress_t& ref_traceCollectionEntityIPAddress() {return traceCollectionEntityIPAddress;} - traceCollectionEntityIPAddress_t const& ref_traceCollectionEntityIPAddress() const {return traceCollectionEntityIPAddress;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(eUTRANTraceID); - v(interfacesToTrace); - v(traceDepth); - v(traceCollectionEntityIPAddress); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(eUTRANTraceID); - v(interfacesToTrace); - v(traceDepth); - v(traceCollectionEntityIPAddress); - v(iE_Extensions); - - }; - void clear() - { - eUTRANTraceID.clear(); - interfacesToTrace.clear(); - traceDepth.clear(); - traceCollectionEntityIPAddress.clear(); - iE_Extensions.clear(); - - }; - private: - eUTRANTraceID_t eUTRANTraceID; - interfacesToTrace_t interfacesToTrace; - traceDepth_t traceDepth; - traceCollectionEntityIPAddress_t traceCollectionEntityIPAddress; - iE_Extensions_t iE_Extensions; - -}; -/* -Tunnel-Information-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct Tunnel_Information_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -TunnelInformation ::= SEQUENCE { - transportLayerAddress TransportLayerAddress, - uDP-Port-Number Port-Number OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {Tunnel-Information-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct TunnelInformation : asn::sequence<3, 0, true, 2> -{ - static constexpr const char* name() {return "TunnelInformation";} - using parent_t = asn::sequence<3, 0, true, 2>; - struct transportLayerAddress_t : TransportLayerAddress - { - static constexpr const char* name() {return "transportLayerAddress_t";} - using parent_t = TransportLayerAddress; - - }; - transportLayerAddress_t& ref_transportLayerAddress() {return transportLayerAddress;} - transportLayerAddress_t const& ref_transportLayerAddress() const {return transportLayerAddress;} - struct uDP_Port_Number_t : Port_Number - { - static constexpr const char* name() {return "uDP_Port_Number_t";} - using parent_t = Port_Number; - static constexpr bool optional = true; - - }; - uDP_Port_Number_t& set_uDP_Port_Number() { uDP_Port_Number.setpresent(true); return uDP_Port_Number;} - uDP_Port_Number_t const* get_uDP_Port_Number() const {return uDP_Port_Number.is_valid() ? &uDP_Port_Number : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(transportLayerAddress); - v(uDP_Port_Number); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(transportLayerAddress); - v(uDP_Port_Number); - v(iE_Extensions); - - }; - void clear() - { - transportLayerAddress.clear(); - uDP_Port_Number.clear(); - iE_Extensions.clear(); - - }; - private: - transportLayerAddress_t transportLayerAddress; - uDP_Port_Number_t uDP_Port_Number; - iE_Extensions_t iE_Extensions; - -}; -/* -UE-ContextKeptIndicator ::= ENUMERATED { - true, - ... -} -*/ - -struct UE_ContextKeptIndicator : asn::enumerated<1, 0, true> -{ - static constexpr const char* name() {return "UE-ContextKeptIndicator";} - using parent_t = asn::enumerated<1, 0, true>; - typedef enum { - True - } index_t; - -}; - -/* -UE-HistoryInformation ::= SEQUENCE (SIZE(1..maxnoofCells)) OF LastVisitedCell-Item -*/ - -struct UE_HistoryInformation_elm : LastVisitedCell_Item -{ - static constexpr const char* name() {return "UE_HistoryInformation_elm";} - using parent_t = LastVisitedCell_Item; - -}; -struct UE_HistoryInformation : asn::sequenceof -{ - static constexpr const char* name() {return "UE-HistoryInformation";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -UE-HistoryInformationFromTheUE ::= OCTET STRING -*/ - -struct UE_HistoryInformationFromTheUE : asn::ostring<> -{ - static constexpr const char* name() {return "UE-HistoryInformationFromTheUE";} - using parent_t = asn::ostring<>; - -}; - -/* -UE-RLF-Report-Container::= OCTET STRING -*/ - -struct UE_RLF_Report_Container : asn::ostring<> -{ - static constexpr const char* name() {return "UE-RLF-Report-Container";} - using parent_t = asn::ostring<>; - -}; - -/* -UE-RLF-Report-Container-for-extended-bands ::= OCTET STRING -*/ - -struct UE_RLF_Report_Container_for_extended_bands : asn::ostring<> -{ - static constexpr const char* name() {return "UE-RLF-Report-Container-for-extended-bands";} - using parent_t = asn::ostring<>; - -}; - -/* -UE-S1AP-ID ::= INTEGER (0.. 4294967295) -*/ - -struct UE_S1AP_ID : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "UE-S1AP-ID";} - using parent_t = asn::integer<>; - -}; - -/* -UE-Sidelink-Aggregate-MaximumBitRate-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct UE_Sidelink_Aggregate_MaximumBitRate_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -UE-X2AP-ID ::= INTEGER (0..4095) -*/ - -struct UE_X2AP_ID : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "UE-X2AP-ID";} - using parent_t = asn::integer<>; - -}; - -/* -UE-X2AP-ID-Extension ::= INTEGER (0..4095, ...) -*/ - -struct UE_X2AP_ID_Extension : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "UE-X2AP-ID-Extension";} - using parent_t = asn::integer<>; - -}; - -/* -UEAggregate-MaximumBitrate-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-extended-uEaggregateMaximumBitRateDownlink CRITICALITY ignore EXTENSION ExtendedBitRate PRESENCE optional}| - { ID id-extended-uEaggregateMaximumBitRateUplink CRITICALITY ignore EXTENSION ExtendedBitRate PRESENCE optional}, - ... -} -*/ - -struct UEAggregate_MaximumBitrate_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_extended_uEaggregateMaximumBitRateDownlink() { set(id_extended_uEaggregateMaximumBitRateDownlink); type=1;} - void select_id_extended_uEaggregateMaximumBitRateUplink() { set(id_extended_uEaggregateMaximumBitRateUplink); type=2;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_extended_uEaggregateMaximumBitRateDownlink)) { type = 1; return true; } - else if(equal(id_extended_uEaggregateMaximumBitRateUplink)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_extended_uEaggregateMaximumBitRateDownlink);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_extended_uEaggregateMaximumBitRateUplink);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_extended_uEaggregateMaximumBitRateDownlink() { set(ignore); type=1;} - void select_id_extended_uEaggregateMaximumBitRateUplink() { set(ignore); type=2;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - ExtendedBitRate& select_id_extended_uEaggregateMaximumBitRateDownlink() { return set(1); } - ExtendedBitRate const* get_id_extended_uEaggregateMaximumBitRateDownlink() const { return get(1); } - ExtendedBitRate& select_id_extended_uEaggregateMaximumBitRateUplink() { return set(2); } - ExtendedBitRate const* get_id_extended_uEaggregateMaximumBitRateUplink() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_extended_uEaggregateMaximumBitRateDownlink()); return true; - case 2: v(select_id_extended_uEaggregateMaximumBitRateUplink()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(ExtendedBitRate)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_extended_uEaggregateMaximumBitRateDownlink() { set(optional); type=1;} - void select_id_extended_uEaggregateMaximumBitRateUplink() { set(optional); type=2;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -UEAggregateMaximumBitRate ::= SEQUENCE { - uEaggregateMaximumBitRateDownlink BitRate, - uEaggregateMaximumBitRateUplink BitRate, - iE-Extensions ProtocolExtensionContainer { {UEAggregate-MaximumBitrate-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct UEAggregateMaximumBitRate : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "UEAggregateMaximumBitRate";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct uEaggregateMaximumBitRateDownlink_t : BitRate - { - static constexpr const char* name() {return "uEaggregateMaximumBitRateDownlink_t";} - using parent_t = BitRate; - - }; - uEaggregateMaximumBitRateDownlink_t& ref_uEaggregateMaximumBitRateDownlink() {return uEaggregateMaximumBitRateDownlink;} - uEaggregateMaximumBitRateDownlink_t const& ref_uEaggregateMaximumBitRateDownlink() const {return uEaggregateMaximumBitRateDownlink;} - struct uEaggregateMaximumBitRateUplink_t : BitRate - { - static constexpr const char* name() {return "uEaggregateMaximumBitRateUplink_t";} - using parent_t = BitRate; - - }; - uEaggregateMaximumBitRateUplink_t& ref_uEaggregateMaximumBitRateUplink() {return uEaggregateMaximumBitRateUplink;} - uEaggregateMaximumBitRateUplink_t const& ref_uEaggregateMaximumBitRateUplink() const {return uEaggregateMaximumBitRateUplink;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(uEaggregateMaximumBitRateDownlink); - v(uEaggregateMaximumBitRateUplink); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(uEaggregateMaximumBitRateDownlink); - v(uEaggregateMaximumBitRateUplink); - v(iE_Extensions); - - }; - void clear() - { - uEaggregateMaximumBitRateDownlink.clear(); - uEaggregateMaximumBitRateUplink.clear(); - iE_Extensions.clear(); - - }; - private: - uEaggregateMaximumBitRateDownlink_t uEaggregateMaximumBitRateDownlink; - uEaggregateMaximumBitRateUplink_t uEaggregateMaximumBitRateUplink; - iE_Extensions_t iE_Extensions; - -}; -/* -UENRMeasurement-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct UENRMeasurement_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -UENRMeasurement ::= SEQUENCE { - uENRMeasurements RRCContainer, - iE-Extensions ProtocolExtensionContainer { {UENRMeasurement-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct UENRMeasurement : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "UENRMeasurement";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct uENRMeasurements_t : RRCContainer - { - static constexpr const char* name() {return "uENRMeasurements_t";} - using parent_t = RRCContainer; - - }; - uENRMeasurements_t& ref_uENRMeasurements() {return uENRMeasurements;} - uENRMeasurements_t const& ref_uENRMeasurements() const {return uENRMeasurements;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(uENRMeasurements); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(uENRMeasurements); - v(iE_Extensions); - - }; - void clear() - { - uENRMeasurements.clear(); - iE_Extensions.clear(); - - }; - private: - uENRMeasurements_t uENRMeasurements; - iE_Extensions_t iE_Extensions; - -}; -/* -UESecurityCapabilities-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct UESecurityCapabilities_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -UESecurityCapabilities ::= SEQUENCE { - encryptionAlgorithms EncryptionAlgorithms, - integrityProtectionAlgorithms IntegrityProtectionAlgorithms, - iE-Extensions ProtocolExtensionContainer { {UESecurityCapabilities-ExtIEs} } OPTIONAL, -... -} -*/ - -struct UESecurityCapabilities : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "UESecurityCapabilities";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct encryptionAlgorithms_t : EncryptionAlgorithms - { - static constexpr const char* name() {return "encryptionAlgorithms_t";} - using parent_t = EncryptionAlgorithms; - - }; - encryptionAlgorithms_t& ref_encryptionAlgorithms() {return encryptionAlgorithms;} - encryptionAlgorithms_t const& ref_encryptionAlgorithms() const {return encryptionAlgorithms;} - struct integrityProtectionAlgorithms_t : IntegrityProtectionAlgorithms - { - static constexpr const char* name() {return "integrityProtectionAlgorithms_t";} - using parent_t = IntegrityProtectionAlgorithms; - - }; - integrityProtectionAlgorithms_t& ref_integrityProtectionAlgorithms() {return integrityProtectionAlgorithms;} - integrityProtectionAlgorithms_t const& ref_integrityProtectionAlgorithms() const {return integrityProtectionAlgorithms;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(encryptionAlgorithms); - v(integrityProtectionAlgorithms); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(encryptionAlgorithms); - v(integrityProtectionAlgorithms); - v(iE_Extensions); - - }; - void clear() - { - encryptionAlgorithms.clear(); - integrityProtectionAlgorithms.clear(); - iE_Extensions.clear(); - - }; - private: - encryptionAlgorithms_t encryptionAlgorithms; - integrityProtectionAlgorithms_t integrityProtectionAlgorithms; - iE_Extensions_t iE_Extensions; - -}; -/* -UESidelinkAggregateMaximumBitRate ::= SEQUENCE { - uESidelinkAggregateMaximumBitRate BitRate, - iE-Extensions ProtocolExtensionContainer { {UE-Sidelink-Aggregate-MaximumBitRate-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct UESidelinkAggregateMaximumBitRate : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "UESidelinkAggregateMaximumBitRate";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct uESidelinkAggregateMaximumBitRate_t : BitRate - { - static constexpr const char* name() {return "uESidelinkAggregateMaximumBitRate_t";} - using parent_t = BitRate; - - }; - uESidelinkAggregateMaximumBitRate_t& ref_uESidelinkAggregateMaximumBitRate() {return uESidelinkAggregateMaximumBitRate;} - uESidelinkAggregateMaximumBitRate_t const& ref_uESidelinkAggregateMaximumBitRate() const {return uESidelinkAggregateMaximumBitRate;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(uESidelinkAggregateMaximumBitRate); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(uESidelinkAggregateMaximumBitRate); - v(iE_Extensions); - - }; - void clear() - { - uESidelinkAggregateMaximumBitRate.clear(); - iE_Extensions.clear(); - - }; - private: - uESidelinkAggregateMaximumBitRate_t uESidelinkAggregateMaximumBitRate; - iE_Extensions_t iE_Extensions; - -}; -/* -UEsToBeResetList-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct UEsToBeResetList_Item_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -UEsToBeResetList-Item::= SEQUENCE { - meNB-ID UE-X2AP-ID, - meNB-ID-ext UE-X2AP-ID-Extension OPTIONAL, - sgNB-ID SgNB-UE-X2AP-ID OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {UEsToBeResetList-Item-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct UEsToBeResetList_Item : asn::sequence<4, 0, true, 3> -{ - static constexpr const char* name() {return "UEsToBeResetList-Item";} - using parent_t = asn::sequence<4, 0, true, 3>; - struct meNB_ID_t : UE_X2AP_ID - { - static constexpr const char* name() {return "meNB_ID_t";} - using parent_t = UE_X2AP_ID; - - }; - meNB_ID_t& ref_meNB_ID() {return meNB_ID;} - meNB_ID_t const& ref_meNB_ID() const {return meNB_ID;} - struct meNB_ID_ext_t : UE_X2AP_ID_Extension - { - static constexpr const char* name() {return "meNB_ID_ext_t";} - using parent_t = UE_X2AP_ID_Extension; - static constexpr bool optional = true; - - }; - meNB_ID_ext_t& set_meNB_ID_ext() { meNB_ID_ext.setpresent(true); return meNB_ID_ext;} - meNB_ID_ext_t const* get_meNB_ID_ext() const {return meNB_ID_ext.is_valid() ? &meNB_ID_ext : nullptr;} - struct sgNB_ID_t : SgNB_UE_X2AP_ID - { - static constexpr const char* name() {return "sgNB_ID_t";} - using parent_t = SgNB_UE_X2AP_ID; - static constexpr bool optional = true; - - }; - sgNB_ID_t& set_sgNB_ID() { sgNB_ID.setpresent(true); return sgNB_ID;} - sgNB_ID_t const* get_sgNB_ID() const {return sgNB_ID.is_valid() ? &sgNB_ID : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(meNB_ID); - v(meNB_ID_ext); - v(sgNB_ID); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(meNB_ID); - v(meNB_ID_ext); - v(sgNB_ID); - v(iE_Extensions); - - }; - void clear() - { - meNB_ID.clear(); - meNB_ID_ext.clear(); - sgNB_ID.clear(); - iE_Extensions.clear(); - - }; - private: - meNB_ID_t meNB_ID; - meNB_ID_ext_t meNB_ID_ext; - sgNB_ID_t sgNB_ID; - iE_Extensions_t iE_Extensions; - -}; -/* -UEsToBeResetList ::= SEQUENCE (SIZE (1.. maxUEsinengNBDU)) OF UEsToBeResetList-Item -*/ - -struct UEsToBeResetList_elm : UEsToBeResetList_Item -{ - static constexpr const char* name() {return "UEsToBeResetList_elm";} - using parent_t = UEsToBeResetList_Item; - -}; -struct UEsToBeResetList : asn::sequenceof -{ - static constexpr const char* name() {return "UEsToBeResetList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -UL-HighInterferenceIndication ::= BIT STRING (SIZE(1..110, ...)) -*/ - -struct UL_HighInterferenceIndication : asn::bstring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "UL-HighInterferenceIndication";} - using parent_t = asn::bstring<>; - -}; - -/* -UL-HighInterferenceIndicationInfo-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct UL_HighInterferenceIndicationInfo_Item_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -UL-HighInterferenceIndicationInfo-Item ::= SEQUENCE { - target-Cell-ID ECGI, - ul-interferenceindication UL-HighInterferenceIndication, - iE-Extensions ProtocolExtensionContainer { {UL-HighInterferenceIndicationInfo-Item-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct UL_HighInterferenceIndicationInfo_Item : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "UL-HighInterferenceIndicationInfo-Item";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct target_Cell_ID_t : ECGI - { - static constexpr const char* name() {return "target_Cell_ID_t";} - using parent_t = ECGI; - - }; - target_Cell_ID_t& ref_target_Cell_ID() {return target_Cell_ID;} - target_Cell_ID_t const& ref_target_Cell_ID() const {return target_Cell_ID;} - struct ul_interferenceindication_t : UL_HighInterferenceIndication - { - static constexpr const char* name() {return "ul_interferenceindication_t";} - using parent_t = UL_HighInterferenceIndication; - - }; - ul_interferenceindication_t& ref_ul_interferenceindication() {return ul_interferenceindication;} - ul_interferenceindication_t const& ref_ul_interferenceindication() const {return ul_interferenceindication;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(target_Cell_ID); - v(ul_interferenceindication); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(target_Cell_ID); - v(ul_interferenceindication); - v(iE_Extensions); - - }; - void clear() - { - target_Cell_ID.clear(); - ul_interferenceindication.clear(); - iE_Extensions.clear(); - - }; - private: - target_Cell_ID_t target_Cell_ID; - ul_interferenceindication_t ul_interferenceindication; - iE_Extensions_t iE_Extensions; - -}; -/* -UL-HighInterferenceIndicationInfo ::= SEQUENCE (SIZE(1..maxCellineNB)) OF UL-HighInterferenceIndicationInfo-Item -*/ - -struct UL_HighInterferenceIndicationInfo_elm : UL_HighInterferenceIndicationInfo_Item -{ - static constexpr const char* name() {return "UL_HighInterferenceIndicationInfo_elm";} - using parent_t = UL_HighInterferenceIndicationInfo_Item; - -}; -struct UL_HighInterferenceIndicationInfo : asn::sequenceof -{ - static constexpr const char* name() {return "UL-HighInterferenceIndicationInfo";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -UL-UE-Configuration::= ENUMERATED { no-data, shared, only, ... } -*/ - -struct UL_UE_Configuration : asn::enumerated<3, 0, true> -{ - static constexpr const char* name() {return "UL-UE-Configuration";} - using parent_t = asn::enumerated<3, 0, true>; - typedef enum { - no_data - ,shared - ,only - } index_t; - -}; - -/* -ULConfiguration-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct ULConfiguration_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ULConfiguration::= SEQUENCE { - uL-PDCP UL-UE-Configuration, - iE-Extensions ProtocolExtensionContainer { {ULConfiguration-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct ULConfiguration : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "ULConfiguration";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct uL_PDCP_t : UL_UE_Configuration - { - static constexpr const char* name() {return "uL_PDCP_t";} - using parent_t = UL_UE_Configuration; - - }; - uL_PDCP_t& ref_uL_PDCP() {return uL_PDCP;} - uL_PDCP_t const& ref_uL_PDCP() const {return uL_PDCP;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(uL_PDCP); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(uL_PDCP); - v(iE_Extensions); - - }; - void clear() - { - uL_PDCP.clear(); - iE_Extensions.clear(); - - }; - private: - uL_PDCP_t uL_PDCP; - iE_Extensions_t iE_Extensions; - -}; -/* -VehicleUE ::= ENUMERATED { - authorized, - not-authorized, - ... -} -*/ - -struct VehicleUE : asn::enumerated<2, 0, true> -{ - static constexpr const char* name() {return "VehicleUE";} - using parent_t = asn::enumerated<2, 0, true>; - typedef enum { - authorized - ,not_authorized - } index_t; - -}; - -/* -V2XServicesAuthorized-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct V2XServicesAuthorized_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -V2XServicesAuthorized ::= SEQUENCE { - vehicleUE VehicleUE OPTIONAL, -pedestrianUE PedestrianUE OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {V2XServicesAuthorized-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct V2XServicesAuthorized : asn::sequence<3, 0, true, 3> -{ - static constexpr const char* name() {return "V2XServicesAuthorized";} - using parent_t = asn::sequence<3, 0, true, 3>; - struct vehicleUE_t : VehicleUE - { - static constexpr const char* name() {return "vehicleUE_t";} - using parent_t = VehicleUE; - static constexpr bool optional = true; - - }; - vehicleUE_t& set_vehicleUE() { vehicleUE.setpresent(true); return vehicleUE;} - vehicleUE_t const* get_vehicleUE() const {return vehicleUE.is_valid() ? &vehicleUE : nullptr;} - struct pedestrianUE_t : PedestrianUE - { - static constexpr const char* name() {return "pedestrianUE_t";} - using parent_t = PedestrianUE; - static constexpr bool optional = true; - - }; - pedestrianUE_t& set_pedestrianUE() { pedestrianUE.setpresent(true); return pedestrianUE;} - pedestrianUE_t const* get_pedestrianUE() const {return pedestrianUE.is_valid() ? &pedestrianUE : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(vehicleUE); - v(pedestrianUE); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(vehicleUE); - v(pedestrianUE); - v(iE_Extensions); - - }; - void clear() - { - vehicleUE.clear(); - pedestrianUE.clear(); - iE_Extensions.clear(); - - }; - private: - vehicleUE_t vehicleUE; - pedestrianUE_t pedestrianUE; - iE_Extensions_t iE_Extensions; - -}; -/* -WT-UE-XwAP-ID ::= OCTET STRING (SIZE (3)) -*/ - -struct WT_UE_XwAP_ID : asn::ostring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "WT-UE-XwAP-ID";} - using parent_t = asn::ostring<>; - -}; - -/* -WTID-Type1 ::= SEQUENCE { - pLMN-Identity PLMN-Identity, - shortWTID BIT STRING (SIZE(24)), - ... -} -*/ - -struct WTID_Type1 : asn::sequence<2, 0, true, 0> -{ - static constexpr const char* name() {return "WTID-Type1";} - using parent_t = asn::sequence<2, 0, true, 0>; - struct pLMN_Identity_t : PLMN_Identity - { - static constexpr const char* name() {return "pLMN_Identity_t";} - using parent_t = PLMN_Identity; - - }; - pLMN_Identity_t& ref_pLMN_Identity() {return pLMN_Identity;} - pLMN_Identity_t const& ref_pLMN_Identity() const {return pLMN_Identity;} - struct shortWTID_t : asn::bstring<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "shortWTID_t";} - using parent_t = asn::bstring<>; - - }; - - shortWTID_t& ref_shortWTID() {return shortWTID;} - shortWTID_t const& ref_shortWTID() const {return shortWTID;} - template void decode(V& v) - { - v(pLMN_Identity); - v(shortWTID); - - }; - template void encode(V& v) const - { - v(pLMN_Identity); - v(shortWTID); - - }; - void clear() - { - pLMN_Identity.clear(); - shortWTID.clear(); - - }; - private: - pLMN_Identity_t pLMN_Identity; - shortWTID_t shortWTID; - -}; -/* -WTID-Long-Type2 ::= BIT STRING (SIZE(48)) -*/ - -struct WTID_Long_Type2 : asn::bstring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "WTID-Long-Type2";} - using parent_t = asn::bstring<>; - -}; - -/* -WTID ::= CHOICE { - wTID-Type1 WTID-Type1, - wTID-Type2 WTID-Long-Type2, - ... -} -*/ - -struct WTID : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "WTID";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~WTID() {clear();} - struct wTID_Type1_t : WTID_Type1 - { - static constexpr const char* name() {return "wTID_Type1_t";} - using parent_t = WTID_Type1; - - }; - struct wTID_Type2_t : WTID_Long_Type2 - { - static constexpr const char* name() {return "wTID_Type2_t";} - using parent_t = WTID_Long_Type2; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - wTID_Type1_t& select_wTID_Type1() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - wTID_Type1_t const* get_wTID_Type1() const { if(get_index() == 1) { return &var.as();} return nullptr; } - wTID_Type2_t& select_wTID_Type2() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - wTID_Type2_t const* get_wTID_Type2() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(wTID_Type1_t)]; - char dummy2[sizeof(wTID_Type2_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -X2BenefitValue ::= INTEGER (1..8, ...) -*/ - -struct X2BenefitValue : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "X2BenefitValue";} - using parent_t = asn::integer<>; - -}; diff --git a/e2sim/previous/e2apv1sim/e2sim/src/ASN1/generated/X2AP-PDU-Contents.hpp b/e2sim/previous/e2apv1sim/e2sim/src/ASN1/generated/X2AP-PDU-Contents.hpp deleted file mode 100644 index dd85f97..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/ASN1/generated/X2AP-PDU-Contents.hpp +++ /dev/null @@ -1,68476 +0,0 @@ -/***************************************************************************** -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -#pragma once - -#include "asn/asn.hpp" -static_assert(ASN_API_VERSION_MAJOR == 5, "re-generate the ASN parser's code using 'make regen-asn' (do not use -j option)"); - -#include "X2AP-IEs.hpp" -#include "X2AP-Containers.hpp" -#include "X2AP-Constants.hpp" - -/* -ActivatedCellList-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct ActivatedCellList_Item_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ActivatedCellList-Item::= SEQUENCE { - ecgi ECGI, - iE-Extensions ProtocolExtensionContainer { {ActivatedCellList-Item-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct ActivatedCellList_Item : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "ActivatedCellList-Item";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct ecgi_t : ECGI - { - static constexpr const char* name() {return "ecgi_t";} - using parent_t = ECGI; - - }; - ecgi_t& ref_ecgi() {return ecgi;} - ecgi_t const& ref_ecgi() const {return ecgi;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(ecgi); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(ecgi); - v(iE_Extensions); - - }; - void clear() - { - ecgi.clear(); - iE_Extensions.clear(); - - }; - private: - ecgi_t ecgi; - iE_Extensions_t iE_Extensions; - -}; -/* -ActivatedCellList ::= SEQUENCE (SIZE (1..maxCellineNB)) OF ActivatedCellList-Item -*/ - -struct ActivatedCellList_elm : ActivatedCellList_Item -{ - static constexpr const char* name() {return "ActivatedCellList_elm";} - using parent_t = ActivatedCellList_Item; - -}; -struct ActivatedCellList : asn::sequenceof -{ - static constexpr const char* name() {return "ActivatedCellList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -ActivatedNRCellList-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct ActivatedNRCellList_Item_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ActivatedNRCellList-Item::= SEQUENCE { - nrCellID NRCGI, - iE-Extensions ProtocolExtensionContainer { {ActivatedNRCellList-Item-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct ActivatedNRCellList_Item : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "ActivatedNRCellList-Item";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct nrCellID_t : NRCGI - { - static constexpr const char* name() {return "nrCellID_t";} - using parent_t = NRCGI; - - }; - nrCellID_t& ref_nrCellID() {return nrCellID;} - nrCellID_t const& ref_nrCellID() const {return nrCellID;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(nrCellID); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(nrCellID); - v(iE_Extensions); - - }; - void clear() - { - nrCellID.clear(); - iE_Extensions.clear(); - - }; - private: - nrCellID_t nrCellID; - iE_Extensions_t iE_Extensions; - -}; -/* -ActivatedNRCellList ::= SEQUENCE (SIZE (1.. maxCellinengNB)) OF ActivatedNRCellList-Item -*/ - -struct ActivatedNRCellList_elm : ActivatedNRCellList_Item -{ - static constexpr const char* name() {return "ActivatedNRCellList_elm";} - using parent_t = ActivatedNRCellList_Item; - -}; -struct ActivatedNRCellList : asn::sequenceof -{ - static constexpr const char* name() {return "ActivatedNRCellList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -CellActivationFailure-IEs X2AP-PROTOCOL-IES ::= { - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, - ... -} -*/ - -struct CellActivationFailure_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_Cause() { set(id_Cause); type=1;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=2;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_Cause)) { type = 1; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_Cause() { set(ignore); type=1;} - void select_id_CriticalityDiagnostics() { set(ignore); type=2;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - Cause& select_id_Cause() { return set(1); } - Cause const* get_id_Cause() const { return get(1); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(2); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_Cause()); return true; - case 2: v(select_id_CriticalityDiagnostics()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(CriticalityDiagnostics)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_Cause() { set(mandatory); type=1;} - void select_id_CriticalityDiagnostics() { set(optional); type=2;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -CellActivationFailure ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{CellActivationFailure-IEs}}, - ... -} -*/ - -struct CellActivationFailure : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "CellActivationFailure";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -ServedCellsToActivate-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct ServedCellsToActivate_Item_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ServedCellsToActivate-Item::= SEQUENCE { - ecgi ECGI, - iE-Extensions ProtocolExtensionContainer { {ServedCellsToActivate-Item-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct ServedCellsToActivate_Item : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "ServedCellsToActivate-Item";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct ecgi_t : ECGI - { - static constexpr const char* name() {return "ecgi_t";} - using parent_t = ECGI; - - }; - ecgi_t& ref_ecgi() {return ecgi;} - ecgi_t const& ref_ecgi() const {return ecgi;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(ecgi); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(ecgi); - v(iE_Extensions); - - }; - void clear() - { - ecgi.clear(); - iE_Extensions.clear(); - - }; - private: - ecgi_t ecgi; - iE_Extensions_t iE_Extensions; - -}; -/* -ServedCellsToActivate::= SEQUENCE (SIZE (1..maxCellineNB)) OF ServedCellsToActivate-Item -*/ - -struct ServedCellsToActivate_elm : ServedCellsToActivate_Item -{ - static constexpr const char* name() {return "ServedCellsToActivate_elm";} - using parent_t = ServedCellsToActivate_Item; - -}; -struct ServedCellsToActivate : asn::sequenceof -{ - static constexpr const char* name() {return "ServedCellsToActivate";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -CellActivationRequest-IEs X2AP-PROTOCOL-IES ::= { - { ID id-ServedCellsToActivate CRITICALITY reject TYPE ServedCellsToActivate PRESENCE mandatory}, - ... -} -*/ - -struct CellActivationRequest_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_ServedCellsToActivate() { set(id_ServedCellsToActivate); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_ServedCellsToActivate)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_ServedCellsToActivate);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_ServedCellsToActivate() { set(reject); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - ServedCellsToActivate& select_id_ServedCellsToActivate() { return set(1); } - ServedCellsToActivate const* get_id_ServedCellsToActivate() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_ServedCellsToActivate()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(ServedCellsToActivate)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_ServedCellsToActivate() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -CellActivationRequest ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{CellActivationRequest-IEs}}, - ... -} -*/ - -struct CellActivationRequest : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "CellActivationRequest";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -CellActivationResponse-IEs X2AP-PROTOCOL-IES ::= { - { ID id-ActivatedCellList CRITICALITY ignore TYPE ActivatedCellList PRESENCE mandatory}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, - ... -} -*/ - -struct CellActivationResponse_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_ActivatedCellList() { set(id_ActivatedCellList); type=1;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=2;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_ActivatedCellList)) { type = 1; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_ActivatedCellList);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_ActivatedCellList() { set(ignore); type=1;} - void select_id_CriticalityDiagnostics() { set(ignore); type=2;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - ActivatedCellList& select_id_ActivatedCellList() { return set(1); } - ActivatedCellList const* get_id_ActivatedCellList() const { return get(1); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(2); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_ActivatedCellList()); return true; - case 2: v(select_id_CriticalityDiagnostics()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(ActivatedCellList)]; - char dummy2[sizeof(CriticalityDiagnostics)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_ActivatedCellList() { set(mandatory); type=1;} - void select_id_CriticalityDiagnostics() { set(optional); type=2;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -CellActivationResponse ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{CellActivationResponse-IEs}}, - ... -} -*/ - -struct CellActivationResponse : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "CellActivationResponse";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -Limited-list-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct Limited_list_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -Limited-list ::= SEQUENCE (SIZE (1..maxCellinengNB)) OF SEQUENCE { - nrCellID NRCGI, - iE-Extensions ProtocolExtensionContainer { {Limited-list-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct Limited_list_elm : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "Limited_list_elm";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct nrCellID_t : NRCGI - { - static constexpr const char* name() {return "nrCellID_t";} - using parent_t = NRCGI; - - }; - nrCellID_t& ref_nrCellID() {return nrCellID;} - nrCellID_t const& ref_nrCellID() const {return nrCellID;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(nrCellID); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(nrCellID); - v(iE_Extensions); - - }; - void clear() - { - nrCellID.clear(); - iE_Extensions.clear(); - - }; - private: - nrCellID_t nrCellID; - iE_Extensions_t iE_Extensions; - -}; -struct Limited_list : asn::sequenceof -{ - static constexpr const char* name() {return "Limited-list";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -CellAssistanceInformation ::= CHOICE { - limited-list Limited-list, - full-list ENUMERATED {allServedNRcells, ...}, - ... -} -*/ - -struct CellAssistanceInformation : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "CellAssistanceInformation";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~CellAssistanceInformation() {clear();} - struct limited_list_t : Limited_list - { - static constexpr const char* name() {return "limited_list_t";} - using parent_t = Limited_list; - - }; - struct full_list_t : asn::enumerated<1, 0, true> - { - static constexpr const char* name() {return "full_list_t";} - using parent_t = asn::enumerated<1, 0, true>; - typedef enum { - allServedNRcells - } index_t; - - }; - - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - limited_list_t& select_limited_list() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - limited_list_t const* get_limited_list() const { if(get_index() == 1) { return &var.as();} return nullptr; } - full_list_t& select_full_list() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - full_list_t const* get_full_list() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(limited_list_t)]; - char dummy2[sizeof(full_list_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -CellInformation-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { -{ ID id-ABSInformation CRITICALITY ignore EXTENSION ABSInformation PRESENCE optional }| -{ ID id-InvokeIndication CRITICALITY ignore EXTENSION InvokeIndication PRESENCE optional }| -{ ID id-IntendedULDLConfiguration CRITICALITY ignore EXTENSION SubframeAssignment PRESENCE optional }| -{ ID id-ExtendedULInterferenceOverloadInfo CRITICALITY ignore EXTENSION ExtendedULInterferenceOverloadInfo PRESENCE optional }| -{ ID id-CoMPInformation CRITICALITY ignore EXTENSION CoMPInformation PRESENCE optional }| -{ ID id-DynamicDLTransmissionInformation CRITICALITY ignore EXTENSION DynamicDLTransmissionInformation PRESENCE optional }, - ... -} -*/ - -struct CellInformation_Item_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_ABSInformation() { set(id_ABSInformation); type=1;} - void select_id_InvokeIndication() { set(id_InvokeIndication); type=2;} - void select_id_IntendedULDLConfiguration() { set(id_IntendedULDLConfiguration); type=3;} - void select_id_ExtendedULInterferenceOverloadInfo() { set(id_ExtendedULInterferenceOverloadInfo); type=4;} - void select_id_CoMPInformation() { set(id_CoMPInformation); type=5;} - void select_id_DynamicDLTransmissionInformation() { set(id_DynamicDLTransmissionInformation); type=6;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_ABSInformation)) { type = 1; return true; } - else if(equal(id_InvokeIndication)) { type = 2; return true; } - else if(equal(id_IntendedULDLConfiguration)) { type = 3; return true; } - else if(equal(id_ExtendedULInterferenceOverloadInfo)) { type = 4; return true; } - else if(equal(id_CoMPInformation)) { type = 5; return true; } - else if(equal(id_DynamicDLTransmissionInformation)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_ABSInformation);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_InvokeIndication);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_IntendedULDLConfiguration);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_ExtendedULInterferenceOverloadInfo);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_CoMPInformation);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_DynamicDLTransmissionInformation);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_ABSInformation() { set(ignore); type=1;} - void select_id_InvokeIndication() { set(ignore); type=2;} - void select_id_IntendedULDLConfiguration() { set(ignore); type=3;} - void select_id_ExtendedULInterferenceOverloadInfo() { set(ignore); type=4;} - void select_id_CoMPInformation() { set(ignore); type=5;} - void select_id_DynamicDLTransmissionInformation() { set(ignore); type=6;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else if(equal(ignore)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(ignore);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - ABSInformation& select_id_ABSInformation() { return set(1); } - ABSInformation const* get_id_ABSInformation() const { return get(1); } - InvokeIndication& select_id_InvokeIndication() { return set(2); } - InvokeIndication const* get_id_InvokeIndication() const { return get(2); } - SubframeAssignment& select_id_IntendedULDLConfiguration() { return set(3); } - SubframeAssignment const* get_id_IntendedULDLConfiguration() const { return get(3); } - ExtendedULInterferenceOverloadInfo& select_id_ExtendedULInterferenceOverloadInfo() { return set(4); } - ExtendedULInterferenceOverloadInfo const* get_id_ExtendedULInterferenceOverloadInfo() const { return get(4); } - CoMPInformation& select_id_CoMPInformation() { return set(5); } - CoMPInformation const* get_id_CoMPInformation() const { return get(5); } - DynamicDLTransmissionInformation& select_id_DynamicDLTransmissionInformation() { return set(6); } - DynamicDLTransmissionInformation const* get_id_DynamicDLTransmissionInformation() const { return get(6); } - bool is_unknown() const { return type == 7; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_ABSInformation()); return true; - case 2: v(select_id_InvokeIndication()); return true; - case 3: v(select_id_IntendedULDLConfiguration()); return true; - case 4: v(select_id_ExtendedULInterferenceOverloadInfo()); return true; - case 5: v(select_id_CoMPInformation()); return true; - case 6: v(select_id_DynamicDLTransmissionInformation()); return true; - case 7: if(type != 7) {clear(); asn::base::set();} type = 7; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(ABSInformation)]; - char dummy2[sizeof(CoMPInformation)]; - char dummy3[sizeof(DynamicDLTransmissionInformation)]; - char dummy4[sizeof(ExtendedULInterferenceOverloadInfo)]; - char dummy5[sizeof(InvokeIndication)]; - char dummy6[sizeof(SubframeAssignment)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_ABSInformation() { set(optional); type=1;} - void select_id_InvokeIndication() { set(optional); type=2;} - void select_id_IntendedULDLConfiguration() { set(optional); type=3;} - void select_id_ExtendedULInterferenceOverloadInfo() { set(optional); type=4;} - void select_id_CoMPInformation() { set(optional); type=5;} - void select_id_DynamicDLTransmissionInformation() { set(optional); type=6;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -CellInformation-Item ::= SEQUENCE { - cell-ID ECGI, - ul-InterferenceOverloadIndication UL-InterferenceOverloadIndication OPTIONAL, - ul-HighInterferenceIndicationInfo UL-HighInterferenceIndicationInfo OPTIONAL, - relativeNarrowbandTxPower RelativeNarrowbandTxPower OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {CellInformation-Item-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct CellInformation_Item : asn::sequence<5, 0, true, 4> -{ - static constexpr const char* name() {return "CellInformation-Item";} - using parent_t = asn::sequence<5, 0, true, 4>; - struct cell_ID_t : ECGI - { - static constexpr const char* name() {return "cell_ID_t";} - using parent_t = ECGI; - - }; - cell_ID_t& ref_cell_ID() {return cell_ID;} - cell_ID_t const& ref_cell_ID() const {return cell_ID;} - struct ul_InterferenceOverloadIndication_t : UL_InterferenceOverloadIndication - { - static constexpr const char* name() {return "ul_InterferenceOverloadIndication_t";} - using parent_t = UL_InterferenceOverloadIndication; - static constexpr bool optional = true; - - }; - ul_InterferenceOverloadIndication_t& set_ul_InterferenceOverloadIndication() { ul_InterferenceOverloadIndication.setpresent(true); return ul_InterferenceOverloadIndication;} - ul_InterferenceOverloadIndication_t const* get_ul_InterferenceOverloadIndication() const {return ul_InterferenceOverloadIndication.is_valid() ? &ul_InterferenceOverloadIndication : nullptr;} - struct ul_HighInterferenceIndicationInfo_t : UL_HighInterferenceIndicationInfo - { - static constexpr const char* name() {return "ul_HighInterferenceIndicationInfo_t";} - using parent_t = UL_HighInterferenceIndicationInfo; - static constexpr bool optional = true; - - }; - ul_HighInterferenceIndicationInfo_t& set_ul_HighInterferenceIndicationInfo() { ul_HighInterferenceIndicationInfo.setpresent(true); return ul_HighInterferenceIndicationInfo;} - ul_HighInterferenceIndicationInfo_t const* get_ul_HighInterferenceIndicationInfo() const {return ul_HighInterferenceIndicationInfo.is_valid() ? &ul_HighInterferenceIndicationInfo : nullptr;} - struct relativeNarrowbandTxPower_t : RelativeNarrowbandTxPower - { - static constexpr const char* name() {return "relativeNarrowbandTxPower_t";} - using parent_t = RelativeNarrowbandTxPower; - static constexpr bool optional = true; - - }; - relativeNarrowbandTxPower_t& set_relativeNarrowbandTxPower() { relativeNarrowbandTxPower.setpresent(true); return relativeNarrowbandTxPower;} - relativeNarrowbandTxPower_t const* get_relativeNarrowbandTxPower() const {return relativeNarrowbandTxPower.is_valid() ? &relativeNarrowbandTxPower : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(cell_ID); - v(ul_InterferenceOverloadIndication); - v(ul_HighInterferenceIndicationInfo); - v(relativeNarrowbandTxPower); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(cell_ID); - v(ul_InterferenceOverloadIndication); - v(ul_HighInterferenceIndicationInfo); - v(relativeNarrowbandTxPower); - v(iE_Extensions); - - }; - void clear() - { - cell_ID.clear(); - ul_InterferenceOverloadIndication.clear(); - ul_HighInterferenceIndicationInfo.clear(); - relativeNarrowbandTxPower.clear(); - iE_Extensions.clear(); - - }; - private: - cell_ID_t cell_ID; - ul_InterferenceOverloadIndication_t ul_InterferenceOverloadIndication; - ul_HighInterferenceIndicationInfo_t ul_HighInterferenceIndicationInfo; - relativeNarrowbandTxPower_t relativeNarrowbandTxPower; - iE_Extensions_t iE_Extensions; - -}; -/* -CellInformation-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-CellInformation-Item CRITICALITY ignore TYPE CellInformation-Item PRESENCE mandatory } -} -*/ - -struct CellInformation_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_CellInformation_Item() { set(id_CellInformation_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_CellInformation_Item)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_CellInformation_Item);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_CellInformation_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - CellInformation_Item& select_id_CellInformation_Item() { return set(1); } - CellInformation_Item const* get_id_CellInformation_Item() const { return get(1); } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_CellInformation_Item()); return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CellInformation_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_CellInformation_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -CellInformation-List ::= SEQUENCE (SIZE (1..maxCellineNB)) OF ProtocolIE-Single-Container { {CellInformation-ItemIEs} } -*/ - -struct CellInformation_List_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "CellInformation_List_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct CellInformation_List : asn::sequenceof -{ - static constexpr const char* name() {return "CellInformation-List";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -CellMeasurementResult-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-CompositeAvailableCapacityGroup CRITICALITY ignore EXTENSION CompositeAvailableCapacityGroup PRESENCE optional}| - { ID id-ABS-Status CRITICALITY ignore EXTENSION ABS-Status PRESENCE optional}| - { ID id-RSRPMRList CRITICALITY ignore EXTENSION RSRPMRList PRESENCE optional}| - { ID id-CSIReportList CRITICALITY ignore EXTENSION CSIReportList PRESENCE optional}| - { ID id-CellReportingIndicator CRITICALITY ignore EXTENSION CellReportingIndicator PRESENCE optional}, - ... -} -*/ - -struct CellMeasurementResult_Item_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_CompositeAvailableCapacityGroup() { set(id_CompositeAvailableCapacityGroup); type=1;} - void select_id_ABS_Status() { set(id_ABS_Status); type=2;} - void select_id_RSRPMRList() { set(id_RSRPMRList); type=3;} - void select_id_CSIReportList() { set(id_CSIReportList); type=4;} - void select_id_CellReportingIndicator() { set(id_CellReportingIndicator); type=5;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_CompositeAvailableCapacityGroup)) { type = 1; return true; } - else if(equal(id_ABS_Status)) { type = 2; return true; } - else if(equal(id_RSRPMRList)) { type = 3; return true; } - else if(equal(id_CSIReportList)) { type = 4; return true; } - else if(equal(id_CellReportingIndicator)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_CompositeAvailableCapacityGroup);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_ABS_Status);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_RSRPMRList);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_CSIReportList);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_CellReportingIndicator);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_CompositeAvailableCapacityGroup() { set(ignore); type=1;} - void select_id_ABS_Status() { set(ignore); type=2;} - void select_id_RSRPMRList() { set(ignore); type=3;} - void select_id_CSIReportList() { set(ignore); type=4;} - void select_id_CellReportingIndicator() { set(ignore); type=5;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - CompositeAvailableCapacityGroup& select_id_CompositeAvailableCapacityGroup() { return set(1); } - CompositeAvailableCapacityGroup const* get_id_CompositeAvailableCapacityGroup() const { return get(1); } - ABS_Status& select_id_ABS_Status() { return set(2); } - ABS_Status const* get_id_ABS_Status() const { return get(2); } - RSRPMRList& select_id_RSRPMRList() { return set(3); } - RSRPMRList const* get_id_RSRPMRList() const { return get(3); } - CSIReportList& select_id_CSIReportList() { return set(4); } - CSIReportList const* get_id_CSIReportList() const { return get(4); } - CellReportingIndicator& select_id_CellReportingIndicator() { return set(5); } - CellReportingIndicator const* get_id_CellReportingIndicator() const { return get(5); } - bool is_unknown() const { return type == 6; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_CompositeAvailableCapacityGroup()); return true; - case 2: v(select_id_ABS_Status()); return true; - case 3: v(select_id_RSRPMRList()); return true; - case 4: v(select_id_CSIReportList()); return true; - case 5: v(select_id_CellReportingIndicator()); return true; - case 6: if(type != 6) {clear(); asn::base::set();} type = 6; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(ABS_Status)]; - char dummy2[sizeof(CSIReportList)]; - char dummy3[sizeof(CellReportingIndicator)]; - char dummy4[sizeof(CompositeAvailableCapacityGroup)]; - char dummy5[sizeof(RSRPMRList)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_CompositeAvailableCapacityGroup() { set(optional); type=1;} - void select_id_ABS_Status() { set(optional); type=2;} - void select_id_RSRPMRList() { set(optional); type=3;} - void select_id_CSIReportList() { set(optional); type=4;} - void select_id_CellReportingIndicator() { set(optional); type=5;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -CellMeasurementResult-Item ::= SEQUENCE { - cell-ID ECGI, - hWLoadIndicator HWLoadIndicator OPTIONAL, - s1TNLLoadIndicator S1TNLLoadIndicator OPTIONAL, - radioResourceStatus RadioResourceStatus OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {CellMeasurementResult-Item-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct CellMeasurementResult_Item : asn::sequence<5, 0, true, 4> -{ - static constexpr const char* name() {return "CellMeasurementResult-Item";} - using parent_t = asn::sequence<5, 0, true, 4>; - struct cell_ID_t : ECGI - { - static constexpr const char* name() {return "cell_ID_t";} - using parent_t = ECGI; - - }; - cell_ID_t& ref_cell_ID() {return cell_ID;} - cell_ID_t const& ref_cell_ID() const {return cell_ID;} - struct hWLoadIndicator_t : HWLoadIndicator - { - static constexpr const char* name() {return "hWLoadIndicator_t";} - using parent_t = HWLoadIndicator; - static constexpr bool optional = true; - - }; - hWLoadIndicator_t& set_hWLoadIndicator() { hWLoadIndicator.setpresent(true); return hWLoadIndicator;} - hWLoadIndicator_t const* get_hWLoadIndicator() const {return hWLoadIndicator.is_valid() ? &hWLoadIndicator : nullptr;} - struct s1TNLLoadIndicator_t : S1TNLLoadIndicator - { - static constexpr const char* name() {return "s1TNLLoadIndicator_t";} - using parent_t = S1TNLLoadIndicator; - static constexpr bool optional = true; - - }; - s1TNLLoadIndicator_t& set_s1TNLLoadIndicator() { s1TNLLoadIndicator.setpresent(true); return s1TNLLoadIndicator;} - s1TNLLoadIndicator_t const* get_s1TNLLoadIndicator() const {return s1TNLLoadIndicator.is_valid() ? &s1TNLLoadIndicator : nullptr;} - struct radioResourceStatus_t : RadioResourceStatus - { - static constexpr const char* name() {return "radioResourceStatus_t";} - using parent_t = RadioResourceStatus; - static constexpr bool optional = true; - - }; - radioResourceStatus_t& set_radioResourceStatus() { radioResourceStatus.setpresent(true); return radioResourceStatus;} - radioResourceStatus_t const* get_radioResourceStatus() const {return radioResourceStatus.is_valid() ? &radioResourceStatus : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(cell_ID); - v(hWLoadIndicator); - v(s1TNLLoadIndicator); - v(radioResourceStatus); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(cell_ID); - v(hWLoadIndicator); - v(s1TNLLoadIndicator); - v(radioResourceStatus); - v(iE_Extensions); - - }; - void clear() - { - cell_ID.clear(); - hWLoadIndicator.clear(); - s1TNLLoadIndicator.clear(); - radioResourceStatus.clear(); - iE_Extensions.clear(); - - }; - private: - cell_ID_t cell_ID; - hWLoadIndicator_t hWLoadIndicator; - s1TNLLoadIndicator_t s1TNLLoadIndicator; - radioResourceStatus_t radioResourceStatus; - iE_Extensions_t iE_Extensions; - -}; -/* -CellMeasurementResult-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-CellMeasurementResult-Item CRITICALITY ignore TYPE CellMeasurementResult-Item PRESENCE mandatory} -} -*/ - -struct CellMeasurementResult_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_CellMeasurementResult_Item() { set(id_CellMeasurementResult_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_CellMeasurementResult_Item)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_CellMeasurementResult_Item);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_CellMeasurementResult_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - CellMeasurementResult_Item& select_id_CellMeasurementResult_Item() { return set(1); } - CellMeasurementResult_Item const* get_id_CellMeasurementResult_Item() const { return get(1); } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_CellMeasurementResult_Item()); return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CellMeasurementResult_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_CellMeasurementResult_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -CellMeasurementResult-List ::= SEQUENCE (SIZE (1..maxCellineNB)) OF ProtocolIE-Single-Container { {CellMeasurementResult-ItemIEs} } -*/ - -struct CellMeasurementResult_List_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "CellMeasurementResult_List_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct CellMeasurementResult_List : asn::sequenceof -{ - static constexpr const char* name() {return "CellMeasurementResult-List";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -CellToReport-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct CellToReport_Item_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -CellToReport-Item ::= SEQUENCE { - cell-ID ECGI, - iE-Extensions ProtocolExtensionContainer { {CellToReport-Item-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct CellToReport_Item : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "CellToReport-Item";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct cell_ID_t : ECGI - { - static constexpr const char* name() {return "cell_ID_t";} - using parent_t = ECGI; - - }; - cell_ID_t& ref_cell_ID() {return cell_ID;} - cell_ID_t const& ref_cell_ID() const {return cell_ID;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(cell_ID); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(cell_ID); - v(iE_Extensions); - - }; - void clear() - { - cell_ID.clear(); - iE_Extensions.clear(); - - }; - private: - cell_ID_t cell_ID; - iE_Extensions_t iE_Extensions; - -}; -/* -CellToReport-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-CellToReport-Item CRITICALITY ignore TYPE CellToReport-Item PRESENCE mandatory} -} -*/ - -struct CellToReport_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_CellToReport_Item() { set(id_CellToReport_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_CellToReport_Item)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_CellToReport_Item);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_CellToReport_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - CellToReport_Item& select_id_CellToReport_Item() { return set(1); } - CellToReport_Item const* get_id_CellToReport_Item() const { return get(1); } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_CellToReport_Item()); return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CellToReport_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_CellToReport_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -CellToReport-List ::= SEQUENCE (SIZE (1..maxCellineNB)) OF ProtocolIE-Single-Container { {CellToReport-ItemIEs} } -*/ - -struct CellToReport_List_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "CellToReport_List_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct CellToReport_List : asn::sequenceof -{ - static constexpr const char* name() {return "CellToReport-List";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -MeasurementFailureCause-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct MeasurementFailureCause_Item_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -MeasurementFailureCause-Item ::= SEQUENCE { - measurementFailedReportCharacteristics ReportCharacteristics, - cause Cause, - iE-Extensions ProtocolExtensionContainer { {MeasurementFailureCause-Item-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct MeasurementFailureCause_Item : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "MeasurementFailureCause-Item";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct measurementFailedReportCharacteristics_t : ReportCharacteristics - { - static constexpr const char* name() {return "measurementFailedReportCharacteristics_t";} - using parent_t = ReportCharacteristics; - - }; - measurementFailedReportCharacteristics_t& ref_measurementFailedReportCharacteristics() {return measurementFailedReportCharacteristics;} - measurementFailedReportCharacteristics_t const& ref_measurementFailedReportCharacteristics() const {return measurementFailedReportCharacteristics;} - struct cause_t : Cause - { - static constexpr const char* name() {return "cause_t";} - using parent_t = Cause; - - }; - cause_t& ref_cause() {return cause;} - cause_t const& ref_cause() const {return cause;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(measurementFailedReportCharacteristics); - v(cause); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(measurementFailedReportCharacteristics); - v(cause); - v(iE_Extensions); - - }; - void clear() - { - measurementFailedReportCharacteristics.clear(); - cause.clear(); - iE_Extensions.clear(); - - }; - private: - measurementFailedReportCharacteristics_t measurementFailedReportCharacteristics; - cause_t cause; - iE_Extensions_t iE_Extensions; - -}; -/* -MeasurementFailureCause-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-MeasurementFailureCause-Item CRITICALITY ignore TYPE MeasurementFailureCause-Item PRESENCE mandatory} -} -*/ - -struct MeasurementFailureCause_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_MeasurementFailureCause_Item() { set(id_MeasurementFailureCause_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeasurementFailureCause_Item)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeasurementFailureCause_Item);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_MeasurementFailureCause_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - MeasurementFailureCause_Item& select_id_MeasurementFailureCause_Item() { return set(1); } - MeasurementFailureCause_Item const* get_id_MeasurementFailureCause_Item() const { return get(1); } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeasurementFailureCause_Item()); return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(MeasurementFailureCause_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_MeasurementFailureCause_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -MeasurementFailureCause-List ::= SEQUENCE (SIZE (1..maxFailedMeasObjects)) OF ProtocolIE-Single-Container { {MeasurementFailureCause-ItemIEs} } -*/ - -struct MeasurementFailureCause_List_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "MeasurementFailureCause_List_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct MeasurementFailureCause_List : asn::sequenceof -{ - static constexpr const char* name() {return "MeasurementFailureCause-List";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -CompleteFailureCauseInformation-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct CompleteFailureCauseInformation_Item_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -CompleteFailureCauseInformation-Item ::= SEQUENCE { - cell-ID ECGI, - measurementFailureCause-List MeasurementFailureCause-List, - iE-Extensions ProtocolExtensionContainer { {CompleteFailureCauseInformation-Item-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct CompleteFailureCauseInformation_Item : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "CompleteFailureCauseInformation-Item";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct cell_ID_t : ECGI - { - static constexpr const char* name() {return "cell_ID_t";} - using parent_t = ECGI; - - }; - cell_ID_t& ref_cell_ID() {return cell_ID;} - cell_ID_t const& ref_cell_ID() const {return cell_ID;} - struct measurementFailureCause_List_t : MeasurementFailureCause_List - { - static constexpr const char* name() {return "measurementFailureCause_List_t";} - using parent_t = MeasurementFailureCause_List; - - }; - measurementFailureCause_List_t& ref_measurementFailureCause_List() {return measurementFailureCause_List;} - measurementFailureCause_List_t const& ref_measurementFailureCause_List() const {return measurementFailureCause_List;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(cell_ID); - v(measurementFailureCause_List); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(cell_ID); - v(measurementFailureCause_List); - v(iE_Extensions); - - }; - void clear() - { - cell_ID.clear(); - measurementFailureCause_List.clear(); - iE_Extensions.clear(); - - }; - private: - cell_ID_t cell_ID; - measurementFailureCause_List_t measurementFailureCause_List; - iE_Extensions_t iE_Extensions; - -}; -/* -CompleteFailureCauseInformation-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-CompleteFailureCauseInformation-Item CRITICALITY ignore TYPE CompleteFailureCauseInformation-Item PRESENCE mandatory} -} -*/ - -struct CompleteFailureCauseInformation_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_CompleteFailureCauseInformation_Item() { set(id_CompleteFailureCauseInformation_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_CompleteFailureCauseInformation_Item)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_CompleteFailureCauseInformation_Item);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_CompleteFailureCauseInformation_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - CompleteFailureCauseInformation_Item& select_id_CompleteFailureCauseInformation_Item() { return set(1); } - CompleteFailureCauseInformation_Item const* get_id_CompleteFailureCauseInformation_Item() const { return get(1); } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_CompleteFailureCauseInformation_Item()); return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CompleteFailureCauseInformation_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_CompleteFailureCauseInformation_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -CompleteFailureCauseInformation-List ::= SEQUENCE (SIZE (1..maxCellineNB)) OF ProtocolIE-Single-Container { {CompleteFailureCauseInformation-ItemIEs} } -*/ - -struct CompleteFailureCauseInformation_List_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "CompleteFailureCauseInformation_List_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct CompleteFailureCauseInformation_List : asn::sequenceof -{ - static constexpr const char* name() {return "CompleteFailureCauseInformation-List";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-DataForwardingAddress-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_DataForwardingAddress_ItemExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-DataForwardingAddress-Item ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - dl-GTPtunnelEndpoint GTPtunnelEndpoint, - iE-Extensions ProtocolExtensionContainer { {E-RABs-DataForwardingAddress-ItemExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_DataForwardingAddress_Item : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-DataForwardingAddress-Item";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct dl_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "dl_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - - }; - dl_GTPtunnelEndpoint_t& ref_dl_GTPtunnelEndpoint() {return dl_GTPtunnelEndpoint;} - dl_GTPtunnelEndpoint_t const& ref_dl_GTPtunnelEndpoint() const {return dl_GTPtunnelEndpoint;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(dl_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(dl_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - dl_GTPtunnelEndpoint.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - dl_GTPtunnelEndpoint_t dl_GTPtunnelEndpoint; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-DataForwardingAddress-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-DataForwardingAddress-Item CRITICALITY ignore TYPE E-RABs-DataForwardingAddress-Item PRESENCE mandatory}, - ... -} -*/ - -struct E_RABs_DataForwardingAddress_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_DataForwardingAddress_Item() { set(id_E_RABs_DataForwardingAddress_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_DataForwardingAddress_Item)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_DataForwardingAddress_Item);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_DataForwardingAddress_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_DataForwardingAddress_Item& select_id_E_RABs_DataForwardingAddress_Item() { return set(1); } - E_RABs_DataForwardingAddress_Item const* get_id_E_RABs_DataForwardingAddress_Item() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_DataForwardingAddress_Item()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_DataForwardingAddress_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_DataForwardingAddress_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-DataForwardingAddress-List ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-DataForwardingAddress-ItemIEs} } -*/ - -struct E_RABs_DataForwardingAddress_List_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_DataForwardingAddress_List_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_DataForwardingAddress_List : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-DataForwardingAddress-List";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -DataForwardingAddressIndication-IEs X2AP-PROTOCOL-IES ::= { - { ID id-New-eNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional }| - { ID id-Old-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-Old-eNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional }| - { ID id-E-RABs-DataForwardingAddress-List CRITICALITY ignore TYPE E-RABs-DataForwardingAddress-List PRESENCE mandatory}, - ... -} -*/ - -struct DataForwardingAddressIndication_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_New_eNB_UE_X2AP_ID_Extension() { set(id_New_eNB_UE_X2AP_ID_Extension); type=1;} - void select_id_Old_eNB_UE_X2AP_ID() { set(id_Old_eNB_UE_X2AP_ID); type=2;} - void select_id_Old_eNB_UE_X2AP_ID_Extension() { set(id_Old_eNB_UE_X2AP_ID_Extension); type=3;} - void select_id_E_RABs_DataForwardingAddress_List() { set(id_E_RABs_DataForwardingAddress_List); type=4;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_New_eNB_UE_X2AP_ID_Extension)) { type = 1; return true; } - else if(equal(id_Old_eNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_Old_eNB_UE_X2AP_ID_Extension)) { type = 3; return true; } - else if(equal(id_E_RABs_DataForwardingAddress_List)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_New_eNB_UE_X2AP_ID_Extension);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_Old_eNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_Old_eNB_UE_X2AP_ID_Extension);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_E_RABs_DataForwardingAddress_List);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_New_eNB_UE_X2AP_ID_Extension() { set(ignore); type=1;} - void select_id_Old_eNB_UE_X2AP_ID() { set(ignore); type=2;} - void select_id_Old_eNB_UE_X2AP_ID_Extension() { set(ignore); type=3;} - void select_id_E_RABs_DataForwardingAddress_List() { set(ignore); type=4;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID_Extension& select_id_New_eNB_UE_X2AP_ID_Extension() { return set(1); } - UE_X2AP_ID_Extension const* get_id_New_eNB_UE_X2AP_ID_Extension() const { return get(1); } - UE_X2AP_ID& select_id_Old_eNB_UE_X2AP_ID() { return set(2); } - UE_X2AP_ID const* get_id_Old_eNB_UE_X2AP_ID() const { return get(2); } - UE_X2AP_ID_Extension& select_id_Old_eNB_UE_X2AP_ID_Extension() { return set(3); } - UE_X2AP_ID_Extension const* get_id_Old_eNB_UE_X2AP_ID_Extension() const { return get(3); } - E_RABs_DataForwardingAddress_List& select_id_E_RABs_DataForwardingAddress_List() { return set(4); } - E_RABs_DataForwardingAddress_List const* get_id_E_RABs_DataForwardingAddress_List() const { return get(4); } - bool is_unknown() const { return type == 5; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_New_eNB_UE_X2AP_ID_Extension()); return true; - case 2: v(select_id_Old_eNB_UE_X2AP_ID()); return true; - case 3: v(select_id_Old_eNB_UE_X2AP_ID_Extension()); return true; - case 4: v(select_id_E_RABs_DataForwardingAddress_List()); return true; - case 5: if(type != 5) {clear(); asn::base::set();} type = 5; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_DataForwardingAddress_List)]; - char dummy2[sizeof(UE_X2AP_ID)]; - char dummy3[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_New_eNB_UE_X2AP_ID_Extension() { set(optional); type=1;} - void select_id_Old_eNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_Old_eNB_UE_X2AP_ID_Extension() { set(optional); type=3;} - void select_id_E_RABs_DataForwardingAddress_List() { set(mandatory); type=4;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else if(equal(mandatory)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(mandatory);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -DataForwardingAddressIndication ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{DataForwardingAddressIndication-IEs}}, - ... -} -*/ - -struct DataForwardingAddressIndication : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "DataForwardingAddressIndication";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -E-RABs-Admitted-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_Admitted_Item_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-Item ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - uL-GTP-TunnelEndpoint GTPtunnelEndpoint OPTIONAL, - dL-GTP-TunnelEndpoint GTPtunnelEndpoint OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-Item-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_Admitted_Item : asn::sequence<4, 0, true, 3> -{ - static constexpr const char* name() {return "E-RABs-Admitted-Item";} - using parent_t = asn::sequence<4, 0, true, 3>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct uL_GTP_TunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "uL_GTP_TunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - uL_GTP_TunnelEndpoint_t& set_uL_GTP_TunnelEndpoint() { uL_GTP_TunnelEndpoint.setpresent(true); return uL_GTP_TunnelEndpoint;} - uL_GTP_TunnelEndpoint_t const* get_uL_GTP_TunnelEndpoint() const {return uL_GTP_TunnelEndpoint.is_valid() ? &uL_GTP_TunnelEndpoint : nullptr;} - struct dL_GTP_TunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "dL_GTP_TunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - dL_GTP_TunnelEndpoint_t& set_dL_GTP_TunnelEndpoint() { dL_GTP_TunnelEndpoint.setpresent(true); return dL_GTP_TunnelEndpoint;} - dL_GTP_TunnelEndpoint_t const* get_dL_GTP_TunnelEndpoint() const {return dL_GTP_TunnelEndpoint.is_valid() ? &dL_GTP_TunnelEndpoint : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(uL_GTP_TunnelEndpoint); - v(dL_GTP_TunnelEndpoint); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(uL_GTP_TunnelEndpoint); - v(dL_GTP_TunnelEndpoint); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - uL_GTP_TunnelEndpoint.clear(); - dL_GTP_TunnelEndpoint.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - uL_GTP_TunnelEndpoint_t uL_GTP_TunnelEndpoint; - dL_GTP_TunnelEndpoint_t dL_GTP_TunnelEndpoint; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-Admitted-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-Admitted-Item CRITICALITY ignore TYPE E-RABs-Admitted-Item PRESENCE mandatory } -} -*/ - -struct E_RABs_Admitted_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_E_RABs_Admitted_Item() { set(id_E_RABs_Admitted_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_Admitted_Item)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_Admitted_Item);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_E_RABs_Admitted_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_Admitted_Item& select_id_E_RABs_Admitted_Item() { return set(1); } - E_RABs_Admitted_Item const* get_id_E_RABs_Admitted_Item() const { return get(1); } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_Admitted_Item()); return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_Admitted_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_E_RABs_Admitted_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-List ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-Admitted-ItemIEs} } -*/ - -struct E_RABs_Admitted_List_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_Admitted_List_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_Admitted_List : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-Admitted-List";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-Admitted-ToBeAdded-Item-SCG-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_Admitted_ToBeAdded_Item_SCG_BearerExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-ToBeAdded-Item-SCG-Bearer ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - s1-DL-GTPtunnelEndpoint GTPtunnelEndpoint, - dL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, - uL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeAdded-Item-SCG-BearerExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_Admitted_ToBeAdded_Item_SCG_Bearer : asn::sequence<5, 0, true, 3> -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeAdded-Item-SCG-Bearer";} - using parent_t = asn::sequence<5, 0, true, 3>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct s1_DL_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "s1_DL_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - - }; - s1_DL_GTPtunnelEndpoint_t& ref_s1_DL_GTPtunnelEndpoint() {return s1_DL_GTPtunnelEndpoint;} - s1_DL_GTPtunnelEndpoint_t const& ref_s1_DL_GTPtunnelEndpoint() const {return s1_DL_GTPtunnelEndpoint;} - struct dL_Forwarding_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "dL_Forwarding_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - dL_Forwarding_GTPtunnelEndpoint_t& set_dL_Forwarding_GTPtunnelEndpoint() { dL_Forwarding_GTPtunnelEndpoint.setpresent(true); return dL_Forwarding_GTPtunnelEndpoint;} - dL_Forwarding_GTPtunnelEndpoint_t const* get_dL_Forwarding_GTPtunnelEndpoint() const {return dL_Forwarding_GTPtunnelEndpoint.is_valid() ? &dL_Forwarding_GTPtunnelEndpoint : nullptr;} - struct uL_Forwarding_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "uL_Forwarding_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - uL_Forwarding_GTPtunnelEndpoint_t& set_uL_Forwarding_GTPtunnelEndpoint() { uL_Forwarding_GTPtunnelEndpoint.setpresent(true); return uL_Forwarding_GTPtunnelEndpoint;} - uL_Forwarding_GTPtunnelEndpoint_t const* get_uL_Forwarding_GTPtunnelEndpoint() const {return uL_Forwarding_GTPtunnelEndpoint.is_valid() ? &uL_Forwarding_GTPtunnelEndpoint : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(s1_DL_GTPtunnelEndpoint); - v(dL_Forwarding_GTPtunnelEndpoint); - v(uL_Forwarding_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(s1_DL_GTPtunnelEndpoint); - v(dL_Forwarding_GTPtunnelEndpoint); - v(uL_Forwarding_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - s1_DL_GTPtunnelEndpoint.clear(); - dL_Forwarding_GTPtunnelEndpoint.clear(); - uL_Forwarding_GTPtunnelEndpoint.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - s1_DL_GTPtunnelEndpoint_t s1_DL_GTPtunnelEndpoint; - dL_Forwarding_GTPtunnelEndpoint_t dL_Forwarding_GTPtunnelEndpoint; - uL_Forwarding_GTPtunnelEndpoint_t uL_Forwarding_GTPtunnelEndpoint; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-Admitted-ToBeAdded-Item-Split-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_Admitted_ToBeAdded_Item_Split_BearerExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-ToBeAdded-Item-Split-Bearer ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - seNB-GTPtunnelEndpoint GTPtunnelEndpoint, - iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeAdded-Item-Split-BearerExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_Admitted_ToBeAdded_Item_Split_Bearer : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeAdded-Item-Split-Bearer";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct seNB_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "seNB_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - - }; - seNB_GTPtunnelEndpoint_t& ref_seNB_GTPtunnelEndpoint() {return seNB_GTPtunnelEndpoint;} - seNB_GTPtunnelEndpoint_t const& ref_seNB_GTPtunnelEndpoint() const {return seNB_GTPtunnelEndpoint;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(seNB_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(seNB_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - seNB_GTPtunnelEndpoint.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - seNB_GTPtunnelEndpoint_t seNB_GTPtunnelEndpoint; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-Admitted-ToBeAdded-Item ::= CHOICE { - sCG-Bearer E-RABs-Admitted-ToBeAdded-Item-SCG-Bearer, - split-Bearer E-RABs-Admitted-ToBeAdded-Item-Split-Bearer, - ... -} -*/ - -struct E_RABs_Admitted_ToBeAdded_Item : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeAdded-Item";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~E_RABs_Admitted_ToBeAdded_Item() {clear();} - struct sCG_Bearer_t : E_RABs_Admitted_ToBeAdded_Item_SCG_Bearer - { - static constexpr const char* name() {return "sCG_Bearer_t";} - using parent_t = E_RABs_Admitted_ToBeAdded_Item_SCG_Bearer; - - }; - struct split_Bearer_t : E_RABs_Admitted_ToBeAdded_Item_Split_Bearer - { - static constexpr const char* name() {return "split_Bearer_t";} - using parent_t = E_RABs_Admitted_ToBeAdded_Item_Split_Bearer; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - sCG_Bearer_t& select_sCG_Bearer() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - sCG_Bearer_t const* get_sCG_Bearer() const { if(get_index() == 1) { return &var.as();} return nullptr; } - split_Bearer_t& select_split_Bearer() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - split_Bearer_t const* get_split_Bearer() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(sCG_Bearer_t)]; - char dummy2[sizeof(split_Bearer_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -E-RABs-Admitted-ToBeAdded-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-Admitted-ToBeAdded-Item CRITICALITY ignore TYPE E-RABs-Admitted-ToBeAdded-Item PRESENCE mandatory} -} -*/ - -struct E_RABs_Admitted_ToBeAdded_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_E_RABs_Admitted_ToBeAdded_Item() { set(id_E_RABs_Admitted_ToBeAdded_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_Admitted_ToBeAdded_Item)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_Admitted_ToBeAdded_Item);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_E_RABs_Admitted_ToBeAdded_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_Admitted_ToBeAdded_Item& select_id_E_RABs_Admitted_ToBeAdded_Item() { return set(1); } - E_RABs_Admitted_ToBeAdded_Item const* get_id_E_RABs_Admitted_ToBeAdded_Item() const { return get(1); } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_Admitted_ToBeAdded_Item()); return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_Admitted_ToBeAdded_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_E_RABs_Admitted_ToBeAdded_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-ToBeAdded-List ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-Admitted-ToBeAdded-ItemIEs} } -*/ - -struct E_RABs_Admitted_ToBeAdded_List_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_Admitted_ToBeAdded_List_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_Admitted_ToBeAdded_List : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeAdded-List";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-Admitted-ToBeAdded-ModAckItem-SCG-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_BearerExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-ToBeAdded-ModAckItem-SCG-Bearer ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - s1-DL-GTPtunnelEndpoint GTPtunnelEndpoint, - dL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, - uL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeAdded-ModAckItem-SCG-BearerExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_Bearer : asn::sequence<5, 0, true, 3> -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeAdded-ModAckItem-SCG-Bearer";} - using parent_t = asn::sequence<5, 0, true, 3>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct s1_DL_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "s1_DL_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - - }; - s1_DL_GTPtunnelEndpoint_t& ref_s1_DL_GTPtunnelEndpoint() {return s1_DL_GTPtunnelEndpoint;} - s1_DL_GTPtunnelEndpoint_t const& ref_s1_DL_GTPtunnelEndpoint() const {return s1_DL_GTPtunnelEndpoint;} - struct dL_Forwarding_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "dL_Forwarding_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - dL_Forwarding_GTPtunnelEndpoint_t& set_dL_Forwarding_GTPtunnelEndpoint() { dL_Forwarding_GTPtunnelEndpoint.setpresent(true); return dL_Forwarding_GTPtunnelEndpoint;} - dL_Forwarding_GTPtunnelEndpoint_t const* get_dL_Forwarding_GTPtunnelEndpoint() const {return dL_Forwarding_GTPtunnelEndpoint.is_valid() ? &dL_Forwarding_GTPtunnelEndpoint : nullptr;} - struct uL_Forwarding_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "uL_Forwarding_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - uL_Forwarding_GTPtunnelEndpoint_t& set_uL_Forwarding_GTPtunnelEndpoint() { uL_Forwarding_GTPtunnelEndpoint.setpresent(true); return uL_Forwarding_GTPtunnelEndpoint;} - uL_Forwarding_GTPtunnelEndpoint_t const* get_uL_Forwarding_GTPtunnelEndpoint() const {return uL_Forwarding_GTPtunnelEndpoint.is_valid() ? &uL_Forwarding_GTPtunnelEndpoint : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(s1_DL_GTPtunnelEndpoint); - v(dL_Forwarding_GTPtunnelEndpoint); - v(uL_Forwarding_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(s1_DL_GTPtunnelEndpoint); - v(dL_Forwarding_GTPtunnelEndpoint); - v(uL_Forwarding_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - s1_DL_GTPtunnelEndpoint.clear(); - dL_Forwarding_GTPtunnelEndpoint.clear(); - uL_Forwarding_GTPtunnelEndpoint.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - s1_DL_GTPtunnelEndpoint_t s1_DL_GTPtunnelEndpoint; - dL_Forwarding_GTPtunnelEndpoint_t dL_Forwarding_GTPtunnelEndpoint; - uL_Forwarding_GTPtunnelEndpoint_t uL_Forwarding_GTPtunnelEndpoint; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-Admitted-ToBeAdded-ModAckItem-Split-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_Admitted_ToBeAdded_ModAckItem_Split_BearerExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-ToBeAdded-ModAckItem-Split-Bearer ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - seNB-GTPtunnelEndpoint GTPtunnelEndpoint, - iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeAdded-ModAckItem-Split-BearerExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_Admitted_ToBeAdded_ModAckItem_Split_Bearer : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeAdded-ModAckItem-Split-Bearer";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct seNB_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "seNB_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - - }; - seNB_GTPtunnelEndpoint_t& ref_seNB_GTPtunnelEndpoint() {return seNB_GTPtunnelEndpoint;} - seNB_GTPtunnelEndpoint_t const& ref_seNB_GTPtunnelEndpoint() const {return seNB_GTPtunnelEndpoint;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(seNB_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(seNB_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - seNB_GTPtunnelEndpoint.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - seNB_GTPtunnelEndpoint_t seNB_GTPtunnelEndpoint; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-Admitted-ToBeAdded-ModAckItem ::= CHOICE { - sCG-Bearer E-RABs-Admitted-ToBeAdded-ModAckItem-SCG-Bearer, - split-Bearer E-RABs-Admitted-ToBeAdded-ModAckItem-Split-Bearer, - ... -} -*/ - -struct E_RABs_Admitted_ToBeAdded_ModAckItem : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeAdded-ModAckItem";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~E_RABs_Admitted_ToBeAdded_ModAckItem() {clear();} - struct sCG_Bearer_t : E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_Bearer - { - static constexpr const char* name() {return "sCG_Bearer_t";} - using parent_t = E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_Bearer; - - }; - struct split_Bearer_t : E_RABs_Admitted_ToBeAdded_ModAckItem_Split_Bearer - { - static constexpr const char* name() {return "split_Bearer_t";} - using parent_t = E_RABs_Admitted_ToBeAdded_ModAckItem_Split_Bearer; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - sCG_Bearer_t& select_sCG_Bearer() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - sCG_Bearer_t const* get_sCG_Bearer() const { if(get_index() == 1) { return &var.as();} return nullptr; } - split_Bearer_t& select_split_Bearer() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - split_Bearer_t const* get_split_Bearer() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(sCG_Bearer_t)]; - char dummy2[sizeof(split_Bearer_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -E-RABs-Admitted-ToBeAdded-ModAckItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-Admitted-ToBeAdded-ModAckItem CRITICALITY ignore TYPE E-RABs-Admitted-ToBeAdded-ModAckItem PRESENCE mandatory} -} -*/ - -struct E_RABs_Admitted_ToBeAdded_ModAckItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_E_RABs_Admitted_ToBeAdded_ModAckItem() { set(id_E_RABs_Admitted_ToBeAdded_ModAckItem); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_Admitted_ToBeAdded_ModAckItem)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_Admitted_ToBeAdded_ModAckItem);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_E_RABs_Admitted_ToBeAdded_ModAckItem() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_Admitted_ToBeAdded_ModAckItem& select_id_E_RABs_Admitted_ToBeAdded_ModAckItem() { return set(1); } - E_RABs_Admitted_ToBeAdded_ModAckItem const* get_id_E_RABs_Admitted_ToBeAdded_ModAckItem() const { return get(1); } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_Admitted_ToBeAdded_ModAckItem()); return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_Admitted_ToBeAdded_ModAckItem)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_E_RABs_Admitted_ToBeAdded_ModAckItem() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-ToBeAdded-ModAckList ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-Admitted-ToBeAdded-ModAckItemIEs} } -*/ - -struct E_RABs_Admitted_ToBeAdded_ModAckList_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_Admitted_ToBeAdded_ModAckList_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_Admitted_ToBeAdded_ModAckList : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeAdded-ModAckList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-uLpDCPSnLength CRITICALITY ignore EXTENSION PDCPSnLength PRESENCE optional}| - { ID id-dLPDCPSnLength CRITICALITY ignore EXTENSION PDCPSnLength PRESENCE optional}, - ... -} -*/ - -struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresentExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_uLpDCPSnLength() { set(id_uLpDCPSnLength); type=1;} - void select_id_dLPDCPSnLength() { set(id_dLPDCPSnLength); type=2;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_uLpDCPSnLength)) { type = 1; return true; } - else if(equal(id_dLPDCPSnLength)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_uLpDCPSnLength);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_dLPDCPSnLength);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_uLpDCPSnLength() { set(ignore); type=1;} - void select_id_dLPDCPSnLength() { set(ignore); type=2;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - PDCPSnLength& select_id_uLpDCPSnLength() { return set(1); } - PDCPSnLength const* get_id_uLpDCPSnLength() const { return get(1); } - PDCPSnLength& select_id_dLPDCPSnLength() { return set(2); } - PDCPSnLength const* get_id_dLPDCPSnLength() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_uLpDCPSnLength()); return true; - case 2: v(select_id_dLPDCPSnLength()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(PDCPSnLength)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_uLpDCPSnLength() { set(optional); type=1;} - void select_id_dLPDCPSnLength() { set(optional); type=2;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPpresent ::= SEQUENCE { - s1-DL-GTPtunnelEndpoint GTPtunnelEndpoint, - sgNB-UL-GTP-TEIDatPDCP GTPtunnelEndpoint OPTIONAL, --- This IE shall be present if MCG resource IE in the the EN-DC Resource Configuration IE is set to “present” -- - rlc-Mode RLCMode OPTIONAL, --- This IE shall be present if MCG resource IE in the the EN-DC Resource Configuration IE is set to “present” -- - dL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, - uL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, - mCG-E-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters OPTIONAL, --- This IE shall be present if MCG resource and SCG resource IEs in the the EN-DC Resource Configuration IE are set to “present” and the GBR QoS Information IE is present in the Requested MCG E-RAB Level QoS Parameters IE -- - uL-Configuration ULConfiguration OPTIONAL, --- This IE shall be present if MCG resource and SCG resources IEs in the the EN-DC Resource Configuration IE are set to “present” -- - iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPpresentExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresent : asn::sequence<8, 0, true, 7> -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPpresent";} - using parent_t = asn::sequence<8, 0, true, 7>; - struct s1_DL_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "s1_DL_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - - }; - s1_DL_GTPtunnelEndpoint_t& ref_s1_DL_GTPtunnelEndpoint() {return s1_DL_GTPtunnelEndpoint;} - s1_DL_GTPtunnelEndpoint_t const& ref_s1_DL_GTPtunnelEndpoint() const {return s1_DL_GTPtunnelEndpoint;} - struct sgNB_UL_GTP_TEIDatPDCP_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "sgNB_UL_GTP_TEIDatPDCP_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - sgNB_UL_GTP_TEIDatPDCP_t& set_sgNB_UL_GTP_TEIDatPDCP() { sgNB_UL_GTP_TEIDatPDCP.setpresent(true); return sgNB_UL_GTP_TEIDatPDCP;} - sgNB_UL_GTP_TEIDatPDCP_t const* get_sgNB_UL_GTP_TEIDatPDCP() const {return sgNB_UL_GTP_TEIDatPDCP.is_valid() ? &sgNB_UL_GTP_TEIDatPDCP : nullptr;} - struct rlc_Mode_t : RLCMode - { - static constexpr const char* name() {return "rlc_Mode_t";} - using parent_t = RLCMode; - static constexpr bool optional = true; - - }; - rlc_Mode_t& set_rlc_Mode() { rlc_Mode.setpresent(true); return rlc_Mode;} - rlc_Mode_t const* get_rlc_Mode() const {return rlc_Mode.is_valid() ? &rlc_Mode : nullptr;} - struct dL_Forwarding_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "dL_Forwarding_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - dL_Forwarding_GTPtunnelEndpoint_t& set_dL_Forwarding_GTPtunnelEndpoint() { dL_Forwarding_GTPtunnelEndpoint.setpresent(true); return dL_Forwarding_GTPtunnelEndpoint;} - dL_Forwarding_GTPtunnelEndpoint_t const* get_dL_Forwarding_GTPtunnelEndpoint() const {return dL_Forwarding_GTPtunnelEndpoint.is_valid() ? &dL_Forwarding_GTPtunnelEndpoint : nullptr;} - struct uL_Forwarding_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "uL_Forwarding_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - uL_Forwarding_GTPtunnelEndpoint_t& set_uL_Forwarding_GTPtunnelEndpoint() { uL_Forwarding_GTPtunnelEndpoint.setpresent(true); return uL_Forwarding_GTPtunnelEndpoint;} - uL_Forwarding_GTPtunnelEndpoint_t const* get_uL_Forwarding_GTPtunnelEndpoint() const {return uL_Forwarding_GTPtunnelEndpoint.is_valid() ? &uL_Forwarding_GTPtunnelEndpoint : nullptr;} - struct mCG_E_RAB_Level_QoS_Parameters_t : E_RAB_Level_QoS_Parameters - { - static constexpr const char* name() {return "mCG_E_RAB_Level_QoS_Parameters_t";} - using parent_t = E_RAB_Level_QoS_Parameters; - static constexpr bool optional = true; - - }; - mCG_E_RAB_Level_QoS_Parameters_t& set_mCG_E_RAB_Level_QoS_Parameters() { mCG_E_RAB_Level_QoS_Parameters.setpresent(true); return mCG_E_RAB_Level_QoS_Parameters;} - mCG_E_RAB_Level_QoS_Parameters_t const* get_mCG_E_RAB_Level_QoS_Parameters() const {return mCG_E_RAB_Level_QoS_Parameters.is_valid() ? &mCG_E_RAB_Level_QoS_Parameters : nullptr;} - struct uL_Configuration_t : ULConfiguration - { - static constexpr const char* name() {return "uL_Configuration_t";} - using parent_t = ULConfiguration; - static constexpr bool optional = true; - - }; - uL_Configuration_t& set_uL_Configuration() { uL_Configuration.setpresent(true); return uL_Configuration;} - uL_Configuration_t const* get_uL_Configuration() const {return uL_Configuration.is_valid() ? &uL_Configuration : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(s1_DL_GTPtunnelEndpoint); - v(sgNB_UL_GTP_TEIDatPDCP); - v(rlc_Mode); - v(dL_Forwarding_GTPtunnelEndpoint); - v(uL_Forwarding_GTPtunnelEndpoint); - v(mCG_E_RAB_Level_QoS_Parameters); - v(uL_Configuration); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(s1_DL_GTPtunnelEndpoint); - v(sgNB_UL_GTP_TEIDatPDCP); - v(rlc_Mode); - v(dL_Forwarding_GTPtunnelEndpoint); - v(uL_Forwarding_GTPtunnelEndpoint); - v(mCG_E_RAB_Level_QoS_Parameters); - v(uL_Configuration); - v(iE_Extensions); - - }; - void clear() - { - s1_DL_GTPtunnelEndpoint.clear(); - sgNB_UL_GTP_TEIDatPDCP.clear(); - rlc_Mode.clear(); - dL_Forwarding_GTPtunnelEndpoint.clear(); - uL_Forwarding_GTPtunnelEndpoint.clear(); - mCG_E_RAB_Level_QoS_Parameters.clear(); - uL_Configuration.clear(); - iE_Extensions.clear(); - - }; - private: - s1_DL_GTPtunnelEndpoint_t s1_DL_GTPtunnelEndpoint; - sgNB_UL_GTP_TEIDatPDCP_t sgNB_UL_GTP_TEIDatPDCP; - rlc_Mode_t rlc_Mode; - dL_Forwarding_GTPtunnelEndpoint_t dL_Forwarding_GTPtunnelEndpoint; - uL_Forwarding_GTPtunnelEndpoint_t uL_Forwarding_GTPtunnelEndpoint; - mCG_E_RAB_Level_QoS_Parameters_t mCG_E_RAB_Level_QoS_Parameters; - uL_Configuration_t uL_Configuration; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPnotpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-lCID CRITICALITY ignore EXTENSION LCID PRESENCE optional}, - ... -} -*/ - -struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresentExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_lCID() { set(id_lCID); type=1;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_lCID)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_lCID);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_lCID() { set(ignore); type=1;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - LCID& select_id_lCID() { return set(1); } - LCID const* get_id_lCID() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_lCID()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(LCID)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_lCID() { set(optional); type=1;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPnotpresent ::= SEQUENCE { - sgNB-DL-GTP-TEIDatSCG GTPtunnelEndpoint, - secondary-sgNB-DL-GTP-TEIDatSCG GTPtunnelEndpoint OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPnotpresentExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresent : asn::sequence<3, 0, true, 2> -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPnotpresent";} - using parent_t = asn::sequence<3, 0, true, 2>; - struct sgNB_DL_GTP_TEIDatSCG_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "sgNB_DL_GTP_TEIDatSCG_t";} - using parent_t = GTPtunnelEndpoint; - - }; - sgNB_DL_GTP_TEIDatSCG_t& ref_sgNB_DL_GTP_TEIDatSCG() {return sgNB_DL_GTP_TEIDatSCG;} - sgNB_DL_GTP_TEIDatSCG_t const& ref_sgNB_DL_GTP_TEIDatSCG() const {return sgNB_DL_GTP_TEIDatSCG;} - struct secondary_sgNB_DL_GTP_TEIDatSCG_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "secondary_sgNB_DL_GTP_TEIDatSCG_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - secondary_sgNB_DL_GTP_TEIDatSCG_t& set_secondary_sgNB_DL_GTP_TEIDatSCG() { secondary_sgNB_DL_GTP_TEIDatSCG.setpresent(true); return secondary_sgNB_DL_GTP_TEIDatSCG;} - secondary_sgNB_DL_GTP_TEIDatSCG_t const* get_secondary_sgNB_DL_GTP_TEIDatSCG() const {return secondary_sgNB_DL_GTP_TEIDatSCG.is_valid() ? &secondary_sgNB_DL_GTP_TEIDatSCG : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(sgNB_DL_GTP_TEIDatSCG); - v(secondary_sgNB_DL_GTP_TEIDatSCG); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(sgNB_DL_GTP_TEIDatSCG); - v(secondary_sgNB_DL_GTP_TEIDatSCG); - v(iE_Extensions); - - }; - void clear() - { - sgNB_DL_GTP_TEIDatSCG.clear(); - secondary_sgNB_DL_GTP_TEIDatSCG.clear(); - iE_Extensions.clear(); - - }; - private: - sgNB_DL_GTP_TEIDatSCG_t sgNB_DL_GTP_TEIDatSCG; - secondary_sgNB_DL_GTP_TEIDatSCG_t secondary_sgNB_DL_GTP_TEIDatSCG; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeAdded-SgNBAddReqAck-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_ToBeAdded_SgNBAddReqAck_ItemExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - en-DC-ResourceConfiguration EN-DC-ResourceConfiguration, - resource-configuration CHOICE { - sgNBPDCPpresent E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPpresent, - sgNBPDCPnotpresent E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPnotpresent, - ... - }, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeAdded-SgNBAddReqAck-ItemExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item : asn::sequence<4, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item";} - using parent_t = asn::sequence<4, 0, true, 1>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct en_DC_ResourceConfiguration_t : EN_DC_ResourceConfiguration - { - static constexpr const char* name() {return "en_DC_ResourceConfiguration_t";} - using parent_t = EN_DC_ResourceConfiguration; - - }; - en_DC_ResourceConfiguration_t& ref_en_DC_ResourceConfiguration() {return en_DC_ResourceConfiguration;} - en_DC_ResourceConfiguration_t const& ref_en_DC_ResourceConfiguration() const {return en_DC_ResourceConfiguration;} - struct resource_configuration_t : asn::choice<2, 0, true> - { - static constexpr const char* name() {return "resource_configuration_t";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~resource_configuration_t() {clear();} - struct sgNBPDCPpresent_t : E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresent - { - static constexpr const char* name() {return "sgNBPDCPpresent_t";} - using parent_t = E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresent; - - }; - struct sgNBPDCPnotpresent_t : E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresent - { - static constexpr const char* name() {return "sgNBPDCPnotpresent_t";} - using parent_t = E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresent; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - sgNBPDCPpresent_t& select_sgNBPDCPpresent() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - sgNBPDCPpresent_t const* get_sgNBPDCPpresent() const { if(get_index() == 1) { return &var.as();} return nullptr; } - sgNBPDCPnotpresent_t& select_sgNBPDCPnotpresent() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - sgNBPDCPnotpresent_t const* get_sgNBPDCPnotpresent() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(sgNBPDCPpresent_t)]; - char dummy2[sizeof(sgNBPDCPnotpresent_t)]; - - }; - asn::variant var; - index_type index {0}; - }; - resource_configuration_t& ref_resource_configuration() {return resource_configuration;} - resource_configuration_t const& ref_resource_configuration() const {return resource_configuration;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(en_DC_ResourceConfiguration); - v(resource_configuration); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(en_DC_ResourceConfiguration); - v(resource_configuration); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - en_DC_ResourceConfiguration.clear(); - resource_configuration.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - en_DC_ResourceConfiguration_t en_DC_ResourceConfiguration; - resource_configuration_t resource_configuration; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item CRITICALITY ignore TYPE E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item PRESENCE mandatory} -} -*/ - -struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item() { set(id_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item& select_id_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item() { return set(1); } - E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item const* get_id_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item() const { return get(1); } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item()); return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-ToBeAdded-SgNBAddReqAckList ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-ItemIEs} } -*/ - -struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeAdded-SgNBAddReqAckList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-uLpDCPSnLength CRITICALITY ignore EXTENSION PDCPSnLength PRESENCE optional}| - { ID id-dLPDCPSnLength CRITICALITY ignore EXTENSION PDCPSnLength PRESENCE optional}, - ... -} -*/ - -struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresentExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_uLpDCPSnLength() { set(id_uLpDCPSnLength); type=1;} - void select_id_dLPDCPSnLength() { set(id_dLPDCPSnLength); type=2;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_uLpDCPSnLength)) { type = 1; return true; } - else if(equal(id_dLPDCPSnLength)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_uLpDCPSnLength);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_dLPDCPSnLength);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_uLpDCPSnLength() { set(ignore); type=1;} - void select_id_dLPDCPSnLength() { set(ignore); type=2;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - PDCPSnLength& select_id_uLpDCPSnLength() { return set(1); } - PDCPSnLength const* get_id_uLpDCPSnLength() const { return get(1); } - PDCPSnLength& select_id_dLPDCPSnLength() { return set(2); } - PDCPSnLength const* get_id_dLPDCPSnLength() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_uLpDCPSnLength()); return true; - case 2: v(select_id_dLPDCPSnLength()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(PDCPSnLength)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_uLpDCPSnLength() { set(optional); type=1;} - void select_id_dLPDCPSnLength() { set(optional); type=2;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPpresent ::= SEQUENCE { - s1-DL-GTPtunnelEndpoint GTPtunnelEndpoint, - sgNB-UL-GTP-TEIDatPDCP GTPtunnelEndpoint OPTIONAL, --- This IE shall be present if MCG resource IE in the the EN-DC Resource Configuration IE are set to “present” -- - rlc-Mode RLCMode OPTIONAL, --- This IE shall be present if MCG resource IE in the the EN-DC Resource Configuration IE are set to “present” -- - dL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, - uL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, - mCG-E-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters OPTIONAL, --- This IE shall be present if MCG resource and SCG resource IEs in the the EN-DC Resource Configuration IE are set to “present” and the GBR QoS Information IE is present in the Requested MCG E-RAB Level QoS Parameters IE -- - uL-Configuration ULConfiguration OPTIONAL, --- This IE shall be present if MCG resource and SCG resources IEs in the the EN-DC Resource Configuration IE are set to “present” -- - iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPpresentExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresent : asn::sequence<8, 0, true, 7> -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPpresent";} - using parent_t = asn::sequence<8, 0, true, 7>; - struct s1_DL_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "s1_DL_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - - }; - s1_DL_GTPtunnelEndpoint_t& ref_s1_DL_GTPtunnelEndpoint() {return s1_DL_GTPtunnelEndpoint;} - s1_DL_GTPtunnelEndpoint_t const& ref_s1_DL_GTPtunnelEndpoint() const {return s1_DL_GTPtunnelEndpoint;} - struct sgNB_UL_GTP_TEIDatPDCP_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "sgNB_UL_GTP_TEIDatPDCP_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - sgNB_UL_GTP_TEIDatPDCP_t& set_sgNB_UL_GTP_TEIDatPDCP() { sgNB_UL_GTP_TEIDatPDCP.setpresent(true); return sgNB_UL_GTP_TEIDatPDCP;} - sgNB_UL_GTP_TEIDatPDCP_t const* get_sgNB_UL_GTP_TEIDatPDCP() const {return sgNB_UL_GTP_TEIDatPDCP.is_valid() ? &sgNB_UL_GTP_TEIDatPDCP : nullptr;} - struct rlc_Mode_t : RLCMode - { - static constexpr const char* name() {return "rlc_Mode_t";} - using parent_t = RLCMode; - static constexpr bool optional = true; - - }; - rlc_Mode_t& set_rlc_Mode() { rlc_Mode.setpresent(true); return rlc_Mode;} - rlc_Mode_t const* get_rlc_Mode() const {return rlc_Mode.is_valid() ? &rlc_Mode : nullptr;} - struct dL_Forwarding_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "dL_Forwarding_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - dL_Forwarding_GTPtunnelEndpoint_t& set_dL_Forwarding_GTPtunnelEndpoint() { dL_Forwarding_GTPtunnelEndpoint.setpresent(true); return dL_Forwarding_GTPtunnelEndpoint;} - dL_Forwarding_GTPtunnelEndpoint_t const* get_dL_Forwarding_GTPtunnelEndpoint() const {return dL_Forwarding_GTPtunnelEndpoint.is_valid() ? &dL_Forwarding_GTPtunnelEndpoint : nullptr;} - struct uL_Forwarding_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "uL_Forwarding_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - uL_Forwarding_GTPtunnelEndpoint_t& set_uL_Forwarding_GTPtunnelEndpoint() { uL_Forwarding_GTPtunnelEndpoint.setpresent(true); return uL_Forwarding_GTPtunnelEndpoint;} - uL_Forwarding_GTPtunnelEndpoint_t const* get_uL_Forwarding_GTPtunnelEndpoint() const {return uL_Forwarding_GTPtunnelEndpoint.is_valid() ? &uL_Forwarding_GTPtunnelEndpoint : nullptr;} - struct mCG_E_RAB_Level_QoS_Parameters_t : E_RAB_Level_QoS_Parameters - { - static constexpr const char* name() {return "mCG_E_RAB_Level_QoS_Parameters_t";} - using parent_t = E_RAB_Level_QoS_Parameters; - static constexpr bool optional = true; - - }; - mCG_E_RAB_Level_QoS_Parameters_t& set_mCG_E_RAB_Level_QoS_Parameters() { mCG_E_RAB_Level_QoS_Parameters.setpresent(true); return mCG_E_RAB_Level_QoS_Parameters;} - mCG_E_RAB_Level_QoS_Parameters_t const* get_mCG_E_RAB_Level_QoS_Parameters() const {return mCG_E_RAB_Level_QoS_Parameters.is_valid() ? &mCG_E_RAB_Level_QoS_Parameters : nullptr;} - struct uL_Configuration_t : ULConfiguration - { - static constexpr const char* name() {return "uL_Configuration_t";} - using parent_t = ULConfiguration; - static constexpr bool optional = true; - - }; - uL_Configuration_t& set_uL_Configuration() { uL_Configuration.setpresent(true); return uL_Configuration;} - uL_Configuration_t const* get_uL_Configuration() const {return uL_Configuration.is_valid() ? &uL_Configuration : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(s1_DL_GTPtunnelEndpoint); - v(sgNB_UL_GTP_TEIDatPDCP); - v(rlc_Mode); - v(dL_Forwarding_GTPtunnelEndpoint); - v(uL_Forwarding_GTPtunnelEndpoint); - v(mCG_E_RAB_Level_QoS_Parameters); - v(uL_Configuration); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(s1_DL_GTPtunnelEndpoint); - v(sgNB_UL_GTP_TEIDatPDCP); - v(rlc_Mode); - v(dL_Forwarding_GTPtunnelEndpoint); - v(uL_Forwarding_GTPtunnelEndpoint); - v(mCG_E_RAB_Level_QoS_Parameters); - v(uL_Configuration); - v(iE_Extensions); - - }; - void clear() - { - s1_DL_GTPtunnelEndpoint.clear(); - sgNB_UL_GTP_TEIDatPDCP.clear(); - rlc_Mode.clear(); - dL_Forwarding_GTPtunnelEndpoint.clear(); - uL_Forwarding_GTPtunnelEndpoint.clear(); - mCG_E_RAB_Level_QoS_Parameters.clear(); - uL_Configuration.clear(); - iE_Extensions.clear(); - - }; - private: - s1_DL_GTPtunnelEndpoint_t s1_DL_GTPtunnelEndpoint; - sgNB_UL_GTP_TEIDatPDCP_t sgNB_UL_GTP_TEIDatPDCP; - rlc_Mode_t rlc_Mode; - dL_Forwarding_GTPtunnelEndpoint_t dL_Forwarding_GTPtunnelEndpoint; - uL_Forwarding_GTPtunnelEndpoint_t uL_Forwarding_GTPtunnelEndpoint; - mCG_E_RAB_Level_QoS_Parameters_t mCG_E_RAB_Level_QoS_Parameters; - uL_Configuration_t uL_Configuration; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPnotpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { - {ID id-lCID CRITICALITY ignore EXTENSION LCID PRESENCE optional}, - ... -} -*/ - -struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_lCID() { set(id_lCID); type=1;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_lCID)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_lCID);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_lCID() { set(ignore); type=1;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - LCID& select_id_lCID() { return set(1); } - LCID const* get_id_lCID() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_lCID()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(LCID)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_lCID() { set(optional); type=1;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPnotpresent ::= SEQUENCE { - sgNB-DL-GTP-TEIDatSCG GTPtunnelEndpoint, - secondary-sgNB-DL-GTP-TEIDatSCG GTPtunnelEndpoint OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPnotpresentExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresent : asn::sequence<3, 0, true, 2> -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPnotpresent";} - using parent_t = asn::sequence<3, 0, true, 2>; - struct sgNB_DL_GTP_TEIDatSCG_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "sgNB_DL_GTP_TEIDatSCG_t";} - using parent_t = GTPtunnelEndpoint; - - }; - sgNB_DL_GTP_TEIDatSCG_t& ref_sgNB_DL_GTP_TEIDatSCG() {return sgNB_DL_GTP_TEIDatSCG;} - sgNB_DL_GTP_TEIDatSCG_t const& ref_sgNB_DL_GTP_TEIDatSCG() const {return sgNB_DL_GTP_TEIDatSCG;} - struct secondary_sgNB_DL_GTP_TEIDatSCG_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "secondary_sgNB_DL_GTP_TEIDatSCG_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - secondary_sgNB_DL_GTP_TEIDatSCG_t& set_secondary_sgNB_DL_GTP_TEIDatSCG() { secondary_sgNB_DL_GTP_TEIDatSCG.setpresent(true); return secondary_sgNB_DL_GTP_TEIDatSCG;} - secondary_sgNB_DL_GTP_TEIDatSCG_t const* get_secondary_sgNB_DL_GTP_TEIDatSCG() const {return secondary_sgNB_DL_GTP_TEIDatSCG.is_valid() ? &secondary_sgNB_DL_GTP_TEIDatSCG : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(sgNB_DL_GTP_TEIDatSCG); - v(secondary_sgNB_DL_GTP_TEIDatSCG); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(sgNB_DL_GTP_TEIDatSCG); - v(secondary_sgNB_DL_GTP_TEIDatSCG); - v(iE_Extensions); - - }; - void clear() - { - sgNB_DL_GTP_TEIDatSCG.clear(); - secondary_sgNB_DL_GTP_TEIDatSCG.clear(); - iE_Extensions.clear(); - - }; - private: - sgNB_DL_GTP_TEIDatSCG_t sgNB_DL_GTP_TEIDatSCG; - secondary_sgNB_DL_GTP_TEIDatSCG_t secondary_sgNB_DL_GTP_TEIDatSCG; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-Admitted-ToBeAdded-SgNBModAck-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-ToBeAdded-SgNBModAck-Item ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - en-DC-ResourceConfiguration EN-DC-ResourceConfiguration, - resource-configuration CHOICE { - sgNBPDCPpresent E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPpresent, - sgNBPDCPnotpresent E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPnotpresent, - ... - }, - iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeAdded-SgNBModAck-ItemExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item : asn::sequence<4, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeAdded-SgNBModAck-Item";} - using parent_t = asn::sequence<4, 0, true, 1>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct en_DC_ResourceConfiguration_t : EN_DC_ResourceConfiguration - { - static constexpr const char* name() {return "en_DC_ResourceConfiguration_t";} - using parent_t = EN_DC_ResourceConfiguration; - - }; - en_DC_ResourceConfiguration_t& ref_en_DC_ResourceConfiguration() {return en_DC_ResourceConfiguration;} - en_DC_ResourceConfiguration_t const& ref_en_DC_ResourceConfiguration() const {return en_DC_ResourceConfiguration;} - struct resource_configuration_t : asn::choice<2, 0, true> - { - static constexpr const char* name() {return "resource_configuration_t";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~resource_configuration_t() {clear();} - struct sgNBPDCPpresent_t : E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresent - { - static constexpr const char* name() {return "sgNBPDCPpresent_t";} - using parent_t = E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresent; - - }; - struct sgNBPDCPnotpresent_t : E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresent - { - static constexpr const char* name() {return "sgNBPDCPnotpresent_t";} - using parent_t = E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresent; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - sgNBPDCPpresent_t& select_sgNBPDCPpresent() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - sgNBPDCPpresent_t const* get_sgNBPDCPpresent() const { if(get_index() == 1) { return &var.as();} return nullptr; } - sgNBPDCPnotpresent_t& select_sgNBPDCPnotpresent() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - sgNBPDCPnotpresent_t const* get_sgNBPDCPnotpresent() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(sgNBPDCPpresent_t)]; - char dummy2[sizeof(sgNBPDCPnotpresent_t)]; - - }; - asn::variant var; - index_type index {0}; - }; - resource_configuration_t& ref_resource_configuration() {return resource_configuration;} - resource_configuration_t const& ref_resource_configuration() const {return resource_configuration;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(en_DC_ResourceConfiguration); - v(resource_configuration); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(en_DC_ResourceConfiguration); - v(resource_configuration); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - en_DC_ResourceConfiguration.clear(); - resource_configuration.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - en_DC_ResourceConfiguration_t en_DC_ResourceConfiguration; - resource_configuration_t resource_configuration; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-Admitted-ToBeAdded-SgNBModAck-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-Admitted-ToBeAdded-SgNBModAck-Item CRITICALITY ignore TYPE E-RABs-Admitted-ToBeAdded-SgNBModAck-Item PRESENCE mandatory} -} -*/ - -struct E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item() { set(id_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_Admitted_ToBeAdded_SgNBModAck_Item& select_id_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item() { return set(1); } - E_RABs_Admitted_ToBeAdded_SgNBModAck_Item const* get_id_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item() const { return get(1); } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item()); return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_Admitted_ToBeAdded_SgNBModAck_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-ToBeAdded-SgNBModAckList ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-Admitted-ToBeAdded-SgNBModAck-ItemIEs} } -*/ - -struct E_RABs_Admitted_ToBeAdded_SgNBModAckList_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_Admitted_ToBeAdded_SgNBModAckList_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_Admitted_ToBeAdded_SgNBModAckList : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeAdded-SgNBModAckList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-Admitted-ToBeModified-ModAckItem-SCG-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_Admitted_ToBeModified_ModAckItem_SCG_BearerExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-ToBeModified-ModAckItem-SCG-Bearer ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - s1-DL-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeModified-ModAckItem-SCG-BearerExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_Admitted_ToBeModified_ModAckItem_SCG_Bearer : asn::sequence<3, 0, true, 2> -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeModified-ModAckItem-SCG-Bearer";} - using parent_t = asn::sequence<3, 0, true, 2>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct s1_DL_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "s1_DL_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - s1_DL_GTPtunnelEndpoint_t& set_s1_DL_GTPtunnelEndpoint() { s1_DL_GTPtunnelEndpoint.setpresent(true); return s1_DL_GTPtunnelEndpoint;} - s1_DL_GTPtunnelEndpoint_t const* get_s1_DL_GTPtunnelEndpoint() const {return s1_DL_GTPtunnelEndpoint.is_valid() ? &s1_DL_GTPtunnelEndpoint : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(s1_DL_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(s1_DL_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - s1_DL_GTPtunnelEndpoint.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - s1_DL_GTPtunnelEndpoint_t s1_DL_GTPtunnelEndpoint; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-Admitted-ToBeModified-ModAckItem-Split-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_Admitted_ToBeModified_ModAckItem_Split_BearerExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-ToBeModified-ModAckItem-Split-Bearer ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - seNB-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeModified-ModAckItem-Split-BearerExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_Admitted_ToBeModified_ModAckItem_Split_Bearer : asn::sequence<3, 0, true, 2> -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeModified-ModAckItem-Split-Bearer";} - using parent_t = asn::sequence<3, 0, true, 2>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct seNB_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "seNB_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - seNB_GTPtunnelEndpoint_t& set_seNB_GTPtunnelEndpoint() { seNB_GTPtunnelEndpoint.setpresent(true); return seNB_GTPtunnelEndpoint;} - seNB_GTPtunnelEndpoint_t const* get_seNB_GTPtunnelEndpoint() const {return seNB_GTPtunnelEndpoint.is_valid() ? &seNB_GTPtunnelEndpoint : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(seNB_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(seNB_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - seNB_GTPtunnelEndpoint.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - seNB_GTPtunnelEndpoint_t seNB_GTPtunnelEndpoint; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-Admitted-ToBeModified-ModAckItem ::= CHOICE { - sCG-Bearer E-RABs-Admitted-ToBeModified-ModAckItem-SCG-Bearer, - split-Bearer E-RABs-Admitted-ToBeModified-ModAckItem-Split-Bearer, - ... -} -*/ - -struct E_RABs_Admitted_ToBeModified_ModAckItem : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeModified-ModAckItem";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~E_RABs_Admitted_ToBeModified_ModAckItem() {clear();} - struct sCG_Bearer_t : E_RABs_Admitted_ToBeModified_ModAckItem_SCG_Bearer - { - static constexpr const char* name() {return "sCG_Bearer_t";} - using parent_t = E_RABs_Admitted_ToBeModified_ModAckItem_SCG_Bearer; - - }; - struct split_Bearer_t : E_RABs_Admitted_ToBeModified_ModAckItem_Split_Bearer - { - static constexpr const char* name() {return "split_Bearer_t";} - using parent_t = E_RABs_Admitted_ToBeModified_ModAckItem_Split_Bearer; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - sCG_Bearer_t& select_sCG_Bearer() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - sCG_Bearer_t const* get_sCG_Bearer() const { if(get_index() == 1) { return &var.as();} return nullptr; } - split_Bearer_t& select_split_Bearer() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - split_Bearer_t const* get_split_Bearer() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(sCG_Bearer_t)]; - char dummy2[sizeof(split_Bearer_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -E-RABs-Admitted-ToBeModified-ModAckItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-Admitted-ToBeModified-ModAckItem CRITICALITY ignore TYPE E-RABs-Admitted-ToBeModified-ModAckItem PRESENCE mandatory} -} -*/ - -struct E_RABs_Admitted_ToBeModified_ModAckItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_E_RABs_Admitted_ToBeModified_ModAckItem() { set(id_E_RABs_Admitted_ToBeModified_ModAckItem); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_Admitted_ToBeModified_ModAckItem)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_Admitted_ToBeModified_ModAckItem);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_E_RABs_Admitted_ToBeModified_ModAckItem() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_Admitted_ToBeModified_ModAckItem& select_id_E_RABs_Admitted_ToBeModified_ModAckItem() { return set(1); } - E_RABs_Admitted_ToBeModified_ModAckItem const* get_id_E_RABs_Admitted_ToBeModified_ModAckItem() const { return get(1); } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_Admitted_ToBeModified_ModAckItem()); return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_Admitted_ToBeModified_ModAckItem)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_E_RABs_Admitted_ToBeModified_ModAckItem() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-ToBeModified-ModAckList ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-Admitted-ToBeModified-ModAckItemIEs} } -*/ - -struct E_RABs_Admitted_ToBeModified_ModAckList_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_Admitted_ToBeModified_ModAckList_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_Admitted_ToBeModified_ModAckList : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeModified-ModAckList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-uLpDCPSnLength CRITICALITY ignore EXTENSION PDCPSnLength PRESENCE optional}| - { ID id-dLPDCPSnLength CRITICALITY ignore EXTENSION PDCPSnLength PRESENCE optional}, - ... -} -*/ - -struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresentExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_uLpDCPSnLength() { set(id_uLpDCPSnLength); type=1;} - void select_id_dLPDCPSnLength() { set(id_dLPDCPSnLength); type=2;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_uLpDCPSnLength)) { type = 1; return true; } - else if(equal(id_dLPDCPSnLength)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_uLpDCPSnLength);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_dLPDCPSnLength);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_uLpDCPSnLength() { set(ignore); type=1;} - void select_id_dLPDCPSnLength() { set(ignore); type=2;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - PDCPSnLength& select_id_uLpDCPSnLength() { return set(1); } - PDCPSnLength const* get_id_uLpDCPSnLength() const { return get(1); } - PDCPSnLength& select_id_dLPDCPSnLength() { return set(2); } - PDCPSnLength const* get_id_dLPDCPSnLength() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_uLpDCPSnLength()); return true; - case 2: v(select_id_dLPDCPSnLength()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(PDCPSnLength)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_uLpDCPSnLength() { set(optional); type=1;} - void select_id_dLPDCPSnLength() { set(optional); type=2;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPpresent ::= SEQUENCE { - s1-DL-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, - sgNB-UL-GTP-TEIDatPDCP GTPtunnelEndpoint OPTIONAL, - mCG-E-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters OPTIONAL, - uL-Configuration ULConfiguration OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPpresentExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresent : asn::sequence<5, 0, true, 5> -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPpresent";} - using parent_t = asn::sequence<5, 0, true, 5>; - struct s1_DL_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "s1_DL_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - s1_DL_GTPtunnelEndpoint_t& set_s1_DL_GTPtunnelEndpoint() { s1_DL_GTPtunnelEndpoint.setpresent(true); return s1_DL_GTPtunnelEndpoint;} - s1_DL_GTPtunnelEndpoint_t const* get_s1_DL_GTPtunnelEndpoint() const {return s1_DL_GTPtunnelEndpoint.is_valid() ? &s1_DL_GTPtunnelEndpoint : nullptr;} - struct sgNB_UL_GTP_TEIDatPDCP_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "sgNB_UL_GTP_TEIDatPDCP_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - sgNB_UL_GTP_TEIDatPDCP_t& set_sgNB_UL_GTP_TEIDatPDCP() { sgNB_UL_GTP_TEIDatPDCP.setpresent(true); return sgNB_UL_GTP_TEIDatPDCP;} - sgNB_UL_GTP_TEIDatPDCP_t const* get_sgNB_UL_GTP_TEIDatPDCP() const {return sgNB_UL_GTP_TEIDatPDCP.is_valid() ? &sgNB_UL_GTP_TEIDatPDCP : nullptr;} - struct mCG_E_RAB_Level_QoS_Parameters_t : E_RAB_Level_QoS_Parameters - { - static constexpr const char* name() {return "mCG_E_RAB_Level_QoS_Parameters_t";} - using parent_t = E_RAB_Level_QoS_Parameters; - static constexpr bool optional = true; - - }; - mCG_E_RAB_Level_QoS_Parameters_t& set_mCG_E_RAB_Level_QoS_Parameters() { mCG_E_RAB_Level_QoS_Parameters.setpresent(true); return mCG_E_RAB_Level_QoS_Parameters;} - mCG_E_RAB_Level_QoS_Parameters_t const* get_mCG_E_RAB_Level_QoS_Parameters() const {return mCG_E_RAB_Level_QoS_Parameters.is_valid() ? &mCG_E_RAB_Level_QoS_Parameters : nullptr;} - struct uL_Configuration_t : ULConfiguration - { - static constexpr const char* name() {return "uL_Configuration_t";} - using parent_t = ULConfiguration; - static constexpr bool optional = true; - - }; - uL_Configuration_t& set_uL_Configuration() { uL_Configuration.setpresent(true); return uL_Configuration;} - uL_Configuration_t const* get_uL_Configuration() const {return uL_Configuration.is_valid() ? &uL_Configuration : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(s1_DL_GTPtunnelEndpoint); - v(sgNB_UL_GTP_TEIDatPDCP); - v(mCG_E_RAB_Level_QoS_Parameters); - v(uL_Configuration); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(s1_DL_GTPtunnelEndpoint); - v(sgNB_UL_GTP_TEIDatPDCP); - v(mCG_E_RAB_Level_QoS_Parameters); - v(uL_Configuration); - v(iE_Extensions); - - }; - void clear() - { - s1_DL_GTPtunnelEndpoint.clear(); - sgNB_UL_GTP_TEIDatPDCP.clear(); - mCG_E_RAB_Level_QoS_Parameters.clear(); - uL_Configuration.clear(); - iE_Extensions.clear(); - - }; - private: - s1_DL_GTPtunnelEndpoint_t s1_DL_GTPtunnelEndpoint; - sgNB_UL_GTP_TEIDatPDCP_t sgNB_UL_GTP_TEIDatPDCP; - mCG_E_RAB_Level_QoS_Parameters_t mCG_E_RAB_Level_QoS_Parameters; - uL_Configuration_t uL_Configuration; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPnotpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-secondarysgNBDLGTPTEIDatPDCP CRITICALITY ignore EXTENSION GTPtunnelEndpoint PRESENCE optional}| - { ID id-RLC-Status CRITICALITY ignore EXTENSION RLC-Status PRESENCE optional }, - ... -} -*/ - -struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_secondarysgNBDLGTPTEIDatPDCP() { set(id_secondarysgNBDLGTPTEIDatPDCP); type=1;} - void select_id_RLC_Status() { set(id_RLC_Status); type=2;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_secondarysgNBDLGTPTEIDatPDCP)) { type = 1; return true; } - else if(equal(id_RLC_Status)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_secondarysgNBDLGTPTEIDatPDCP);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_RLC_Status);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_secondarysgNBDLGTPTEIDatPDCP() { set(ignore); type=1;} - void select_id_RLC_Status() { set(ignore); type=2;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - GTPtunnelEndpoint& select_id_secondarysgNBDLGTPTEIDatPDCP() { return set(1); } - GTPtunnelEndpoint const* get_id_secondarysgNBDLGTPTEIDatPDCP() const { return get(1); } - RLC_Status& select_id_RLC_Status() { return set(2); } - RLC_Status const* get_id_RLC_Status() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_secondarysgNBDLGTPTEIDatPDCP()); return true; - case 2: v(select_id_RLC_Status()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(GTPtunnelEndpoint)]; - char dummy2[sizeof(RLC_Status)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_secondarysgNBDLGTPTEIDatPDCP() { set(optional); type=1;} - void select_id_RLC_Status() { set(optional); type=2;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPnotpresent ::= SEQUENCE { - sgNB-DL-GTP-TEIDatSCG GTPtunnelEndpoint OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPnotpresentExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresent : asn::sequence<2, 0, true, 2> -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPnotpresent";} - using parent_t = asn::sequence<2, 0, true, 2>; - struct sgNB_DL_GTP_TEIDatSCG_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "sgNB_DL_GTP_TEIDatSCG_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - sgNB_DL_GTP_TEIDatSCG_t& set_sgNB_DL_GTP_TEIDatSCG() { sgNB_DL_GTP_TEIDatSCG.setpresent(true); return sgNB_DL_GTP_TEIDatSCG;} - sgNB_DL_GTP_TEIDatSCG_t const* get_sgNB_DL_GTP_TEIDatSCG() const {return sgNB_DL_GTP_TEIDatSCG.is_valid() ? &sgNB_DL_GTP_TEIDatSCG : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(sgNB_DL_GTP_TEIDatSCG); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(sgNB_DL_GTP_TEIDatSCG); - v(iE_Extensions); - - }; - void clear() - { - sgNB_DL_GTP_TEIDatSCG.clear(); - iE_Extensions.clear(); - - }; - private: - sgNB_DL_GTP_TEIDatSCG_t sgNB_DL_GTP_TEIDatSCG; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeAdded-SgNBModAck-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_ToBeAdded_SgNBModAck_ItemExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-ToBeModified-SgNBModAck-Item ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - en-DC-ResourceConfiguration EN-DC-ResourceConfiguration, - resource-configuration CHOICE { - sgNBPDCPpresent E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPpresent, - sgNBPDCPnotpresent E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPnotpresent, - ... - }, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeAdded-SgNBModAck-ItemExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item : asn::sequence<4, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeModified-SgNBModAck-Item";} - using parent_t = asn::sequence<4, 0, true, 1>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct en_DC_ResourceConfiguration_t : EN_DC_ResourceConfiguration - { - static constexpr const char* name() {return "en_DC_ResourceConfiguration_t";} - using parent_t = EN_DC_ResourceConfiguration; - - }; - en_DC_ResourceConfiguration_t& ref_en_DC_ResourceConfiguration() {return en_DC_ResourceConfiguration;} - en_DC_ResourceConfiguration_t const& ref_en_DC_ResourceConfiguration() const {return en_DC_ResourceConfiguration;} - struct resource_configuration_t : asn::choice<2, 0, true> - { - static constexpr const char* name() {return "resource_configuration_t";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~resource_configuration_t() {clear();} - struct sgNBPDCPpresent_t : E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresent - { - static constexpr const char* name() {return "sgNBPDCPpresent_t";} - using parent_t = E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresent; - - }; - struct sgNBPDCPnotpresent_t : E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresent - { - static constexpr const char* name() {return "sgNBPDCPnotpresent_t";} - using parent_t = E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresent; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - sgNBPDCPpresent_t& select_sgNBPDCPpresent() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - sgNBPDCPpresent_t const* get_sgNBPDCPpresent() const { if(get_index() == 1) { return &var.as();} return nullptr; } - sgNBPDCPnotpresent_t& select_sgNBPDCPnotpresent() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - sgNBPDCPnotpresent_t const* get_sgNBPDCPnotpresent() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(sgNBPDCPpresent_t)]; - char dummy2[sizeof(sgNBPDCPnotpresent_t)]; - - }; - asn::variant var; - index_type index {0}; - }; - resource_configuration_t& ref_resource_configuration() {return resource_configuration;} - resource_configuration_t const& ref_resource_configuration() const {return resource_configuration;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(en_DC_ResourceConfiguration); - v(resource_configuration); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(en_DC_ResourceConfiguration); - v(resource_configuration); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - en_DC_ResourceConfiguration.clear(); - resource_configuration.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - en_DC_ResourceConfiguration_t en_DC_ResourceConfiguration; - resource_configuration_t resource_configuration; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-Admitted-ToBeModified-SgNBModAck-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-Admitted-ToBeModified-SgNBModAck-Item CRITICALITY ignore TYPE E-RABs-Admitted-ToBeModified-SgNBModAck-Item PRESENCE mandatory} -} -*/ - -struct E_RABs_Admitted_ToBeModified_SgNBModAck_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_E_RABs_Admitted_ToBeModified_SgNBModAck_Item() { set(id_E_RABs_Admitted_ToBeModified_SgNBModAck_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_Admitted_ToBeModified_SgNBModAck_Item)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_Admitted_ToBeModified_SgNBModAck_Item);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_E_RABs_Admitted_ToBeModified_SgNBModAck_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_Admitted_ToBeModified_SgNBModAck_Item& select_id_E_RABs_Admitted_ToBeModified_SgNBModAck_Item() { return set(1); } - E_RABs_Admitted_ToBeModified_SgNBModAck_Item const* get_id_E_RABs_Admitted_ToBeModified_SgNBModAck_Item() const { return get(1); } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_Admitted_ToBeModified_SgNBModAck_Item()); return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_Admitted_ToBeModified_SgNBModAck_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_E_RABs_Admitted_ToBeModified_SgNBModAck_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-ToBeModified-SgNBModAckList ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-Admitted-ToBeModified-SgNBModAck-ItemIEs} } -*/ - -struct E_RABs_Admitted_ToBeModified_SgNBModAckList_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_Admitted_ToBeModified_SgNBModAckList_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_Admitted_ToBeModified_SgNBModAckList : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeModified-SgNBModAckList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-Admitted-ToBeReleased-ModAckItem-SCG-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_BearerExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-ToBeReleased-ModAckItem-SCG-Bearer ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeReleased-ModAckItem-SCG-BearerExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_Bearer : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeReleased-ModAckItem-SCG-Bearer";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-Admitted-ToBeReleased-ModAckItem-Split-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_Admitted_ToBeReleased_ModAckItem_Split_BearerExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-ToBeReleased-ModAckItem-Split-Bearer ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeReleased-ModAckItem-Split-BearerExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_Admitted_ToBeReleased_ModAckItem_Split_Bearer : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeReleased-ModAckItem-Split-Bearer";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-Admitted-ToReleased-ModAckItem ::= CHOICE { - sCG-Bearer E-RABs-Admitted-ToBeReleased-ModAckItem-SCG-Bearer, - split-Bearer E-RABs-Admitted-ToBeReleased-ModAckItem-Split-Bearer, - ... -} -*/ - -struct E_RABs_Admitted_ToReleased_ModAckItem : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToReleased-ModAckItem";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~E_RABs_Admitted_ToReleased_ModAckItem() {clear();} - struct sCG_Bearer_t : E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_Bearer - { - static constexpr const char* name() {return "sCG_Bearer_t";} - using parent_t = E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_Bearer; - - }; - struct split_Bearer_t : E_RABs_Admitted_ToBeReleased_ModAckItem_Split_Bearer - { - static constexpr const char* name() {return "split_Bearer_t";} - using parent_t = E_RABs_Admitted_ToBeReleased_ModAckItem_Split_Bearer; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - sCG_Bearer_t& select_sCG_Bearer() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - sCG_Bearer_t const* get_sCG_Bearer() const { if(get_index() == 1) { return &var.as();} return nullptr; } - split_Bearer_t& select_split_Bearer() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - split_Bearer_t const* get_split_Bearer() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(sCG_Bearer_t)]; - char dummy2[sizeof(split_Bearer_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -E-RABs-Admitted-ToBeReleased-ModAckItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-Admitted-ToBeReleased-ModAckItem CRITICALITY ignore TYPE E-RABs-Admitted-ToReleased-ModAckItem PRESENCE mandatory} -} -*/ - -struct E_RABs_Admitted_ToBeReleased_ModAckItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_E_RABs_Admitted_ToBeReleased_ModAckItem() { set(id_E_RABs_Admitted_ToBeReleased_ModAckItem); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_Admitted_ToBeReleased_ModAckItem)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_Admitted_ToBeReleased_ModAckItem);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_E_RABs_Admitted_ToBeReleased_ModAckItem() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_Admitted_ToReleased_ModAckItem& select_id_E_RABs_Admitted_ToBeReleased_ModAckItem() { return set(1); } - E_RABs_Admitted_ToReleased_ModAckItem const* get_id_E_RABs_Admitted_ToBeReleased_ModAckItem() const { return get(1); } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_Admitted_ToBeReleased_ModAckItem()); return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_Admitted_ToReleased_ModAckItem)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_E_RABs_Admitted_ToBeReleased_ModAckItem() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-ToBeReleased-ModAckList ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-Admitted-ToBeReleased-ModAckItemIEs} } -*/ - -struct E_RABs_Admitted_ToBeReleased_ModAckList_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_Admitted_ToBeReleased_ModAckList_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_Admitted_ToBeReleased_ModAckList : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeReleased-ModAckList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPnotpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPnotpresent ::= SEQUENCE { - iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPnotpresentExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresent : asn::sequence<1, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPnotpresent";} - using parent_t = asn::sequence<1, 0, true, 1>; - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(iE_Extensions); - - }; - void clear() - { - iE_Extensions.clear(); - - }; - private: - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresentExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPpresent ::= SEQUENCE { - iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPpresentExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresent : asn::sequence<1, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPpresent";} - using parent_t = asn::sequence<1, 0, true, 1>; - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(iE_Extensions); - - }; - void clear() - { - iE_Extensions.clear(); - - }; - private: - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeReleased-SgNBModAck-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBModAck_ItemExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-ToReleased-SgNBModAck-Item ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - en-DC-ResourceConfiguration EN-DC-ResourceConfiguration, - resource-configuration CHOICE { - sgNBPDCPpresent E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPpresent, - sgNBPDCPnotpresent E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPnotpresent, - ... - }, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-SgNBModAck-ItemExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_Admitted_ToReleased_SgNBModAck_Item : asn::sequence<4, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToReleased-SgNBModAck-Item";} - using parent_t = asn::sequence<4, 0, true, 1>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct en_DC_ResourceConfiguration_t : EN_DC_ResourceConfiguration - { - static constexpr const char* name() {return "en_DC_ResourceConfiguration_t";} - using parent_t = EN_DC_ResourceConfiguration; - - }; - en_DC_ResourceConfiguration_t& ref_en_DC_ResourceConfiguration() {return en_DC_ResourceConfiguration;} - en_DC_ResourceConfiguration_t const& ref_en_DC_ResourceConfiguration() const {return en_DC_ResourceConfiguration;} - struct resource_configuration_t : asn::choice<2, 0, true> - { - static constexpr const char* name() {return "resource_configuration_t";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~resource_configuration_t() {clear();} - struct sgNBPDCPpresent_t : E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresent - { - static constexpr const char* name() {return "sgNBPDCPpresent_t";} - using parent_t = E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresent; - - }; - struct sgNBPDCPnotpresent_t : E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresent - { - static constexpr const char* name() {return "sgNBPDCPnotpresent_t";} - using parent_t = E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresent; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - sgNBPDCPpresent_t& select_sgNBPDCPpresent() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - sgNBPDCPpresent_t const* get_sgNBPDCPpresent() const { if(get_index() == 1) { return &var.as();} return nullptr; } - sgNBPDCPnotpresent_t& select_sgNBPDCPnotpresent() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - sgNBPDCPnotpresent_t const* get_sgNBPDCPnotpresent() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(sgNBPDCPpresent_t)]; - char dummy2[sizeof(sgNBPDCPnotpresent_t)]; - - }; - asn::variant var; - index_type index {0}; - }; - resource_configuration_t& ref_resource_configuration() {return resource_configuration;} - resource_configuration_t const& ref_resource_configuration() const {return resource_configuration;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(en_DC_ResourceConfiguration); - v(resource_configuration); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(en_DC_ResourceConfiguration); - v(resource_configuration); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - en_DC_ResourceConfiguration.clear(); - resource_configuration.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - en_DC_ResourceConfiguration_t en_DC_ResourceConfiguration; - resource_configuration_t resource_configuration; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-Admitted-ToBeReleased-SgNBModAck-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-Admitted-ToBeReleased-SgNBModAck-Item CRITICALITY ignore TYPE E-RABs-Admitted-ToReleased-SgNBModAck-Item PRESENCE mandatory} -} -*/ - -struct E_RABs_Admitted_ToBeReleased_SgNBModAck_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item() { set(id_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_Admitted_ToReleased_SgNBModAck_Item& select_id_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item() { return set(1); } - E_RABs_Admitted_ToReleased_SgNBModAck_Item const* get_id_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item() const { return get(1); } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item()); return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_Admitted_ToReleased_SgNBModAck_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-ToBeReleased-SgNBModAckList ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-Admitted-ToBeReleased-SgNBModAck-ItemIEs} } -*/ - -struct E_RABs_Admitted_ToBeReleased_SgNBModAckList_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_Admitted_ToBeReleased_SgNBModAckList_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_Admitted_ToBeReleased_SgNBModAckList : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeReleased-SgNBModAckList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-Admitted-ToBeReleased-SgNBRelReqAck-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-ToBeReleased-SgNBRelReqAck-Item ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - rlc-Mode-transferred RLCMode, - iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeReleased-SgNBRelReqAck-ItemExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeReleased-SgNBRelReqAck-Item";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct rlc_Mode_transferred_t : RLCMode - { - static constexpr const char* name() {return "rlc_Mode_transferred_t";} - using parent_t = RLCMode; - - }; - rlc_Mode_transferred_t& ref_rlc_Mode_transferred() {return rlc_Mode_transferred;} - rlc_Mode_transferred_t const& ref_rlc_Mode_transferred() const {return rlc_Mode_transferred;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(rlc_Mode_transferred); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(rlc_Mode_transferred); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - rlc_Mode_transferred.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - rlc_Mode_transferred_t rlc_Mode_transferred; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-Admitted-ToBeReleased-SgNBRelReqAck-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-Admitted-ToBeReleased-SgNBRelReqAck-Item CRITICALITY ignore TYPE E-RABs-Admitted-ToBeReleased-SgNBRelReqAck-Item PRESENCE mandatory}, - ... -} -*/ - -struct E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item() { set(id_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item& select_id_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item() { return set(1); } - E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item const* get_id_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-ToBeReleased-SgNBRelReqAckList ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF - ProtocolIE-Single-Container { {E-RABs-Admitted-ToBeReleased-SgNBRelReqAck-ItemIEs} } -*/ - -struct E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeReleased-SgNBRelReqAckList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresentExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPpresent ::= SEQUENCE { - iE-Extensions ProtocolExtensionContainer { {E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPpresentExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresent : asn::sequence<1, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPpresent";} - using parent_t = asn::sequence<1, 0, true, 1>; - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(iE_Extensions); - - }; - void clear() - { - iE_Extensions.clear(); - - }; - private: - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPnotpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-uLpDCPSnLength CRITICALITY ignore EXTENSION PDCPSnLength PRESENCE optional}| - { ID id-dLPDCPSnLength CRITICALITY ignore EXTENSION PDCPSnLength PRESENCE optional}, - ... -} -*/ - -struct E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresentExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_uLpDCPSnLength() { set(id_uLpDCPSnLength); type=1;} - void select_id_dLPDCPSnLength() { set(id_dLPDCPSnLength); type=2;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_uLpDCPSnLength)) { type = 1; return true; } - else if(equal(id_dLPDCPSnLength)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_uLpDCPSnLength);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_dLPDCPSnLength);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_uLpDCPSnLength() { set(ignore); type=1;} - void select_id_dLPDCPSnLength() { set(ignore); type=2;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - PDCPSnLength& select_id_uLpDCPSnLength() { return set(1); } - PDCPSnLength const* get_id_uLpDCPSnLength() const { return get(1); } - PDCPSnLength& select_id_dLPDCPSnLength() { return set(2); } - PDCPSnLength const* get_id_dLPDCPSnLength() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_uLpDCPSnLength()); return true; - case 2: v(select_id_dLPDCPSnLength()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(PDCPSnLength)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_uLpDCPSnLength() { set(optional); type=1;} - void select_id_dLPDCPSnLength() { set(optional); type=2;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPnotpresent ::= SEQUENCE { - secondary-meNB-UL-GTP-TEIDatPDCP GTPtunnelEndpoint OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPnotpresentExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresent : asn::sequence<2, 0, true, 2> -{ - static constexpr const char* name() {return "E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPnotpresent";} - using parent_t = asn::sequence<2, 0, true, 2>; - struct secondary_meNB_UL_GTP_TEIDatPDCP_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "secondary_meNB_UL_GTP_TEIDatPDCP_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - secondary_meNB_UL_GTP_TEIDatPDCP_t& set_secondary_meNB_UL_GTP_TEIDatPDCP() { secondary_meNB_UL_GTP_TEIDatPDCP.setpresent(true); return secondary_meNB_UL_GTP_TEIDatPDCP;} - secondary_meNB_UL_GTP_TEIDatPDCP_t const* get_secondary_meNB_UL_GTP_TEIDatPDCP() const {return secondary_meNB_UL_GTP_TEIDatPDCP.is_valid() ? &secondary_meNB_UL_GTP_TEIDatPDCP : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(secondary_meNB_UL_GTP_TEIDatPDCP); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(secondary_meNB_UL_GTP_TEIDatPDCP); - v(iE_Extensions); - - }; - void clear() - { - secondary_meNB_UL_GTP_TEIDatPDCP.clear(); - iE_Extensions.clear(); - - }; - private: - secondary_meNB_UL_GTP_TEIDatPDCP_t secondary_meNB_UL_GTP_TEIDatPDCP; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-AdmittedToBeModified-SgNBModConf-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_AdmittedToBeModified_SgNBModConf_ItemExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-AdmittedToBeModified-SgNBModConf-Item ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - en-DC-ResourceConfiguration EN-DC-ResourceConfiguration, - resource-configuration CHOICE { - sgNBPDCPpresent E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPpresent, - sgNBPDCPnotpresent E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPnotpresent, - ... - }, - iE-Extensions ProtocolExtensionContainer { {E-RABs-AdmittedToBeModified-SgNBModConf-ItemExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_AdmittedToBeModified_SgNBModConf_Item : asn::sequence<4, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-AdmittedToBeModified-SgNBModConf-Item";} - using parent_t = asn::sequence<4, 0, true, 1>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct en_DC_ResourceConfiguration_t : EN_DC_ResourceConfiguration - { - static constexpr const char* name() {return "en_DC_ResourceConfiguration_t";} - using parent_t = EN_DC_ResourceConfiguration; - - }; - en_DC_ResourceConfiguration_t& ref_en_DC_ResourceConfiguration() {return en_DC_ResourceConfiguration;} - en_DC_ResourceConfiguration_t const& ref_en_DC_ResourceConfiguration() const {return en_DC_ResourceConfiguration;} - struct resource_configuration_t : asn::choice<2, 0, true> - { - static constexpr const char* name() {return "resource_configuration_t";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~resource_configuration_t() {clear();} - struct sgNBPDCPpresent_t : E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresent - { - static constexpr const char* name() {return "sgNBPDCPpresent_t";} - using parent_t = E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresent; - - }; - struct sgNBPDCPnotpresent_t : E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresent - { - static constexpr const char* name() {return "sgNBPDCPnotpresent_t";} - using parent_t = E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresent; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - sgNBPDCPpresent_t& select_sgNBPDCPpresent() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - sgNBPDCPpresent_t const* get_sgNBPDCPpresent() const { if(get_index() == 1) { return &var.as();} return nullptr; } - sgNBPDCPnotpresent_t& select_sgNBPDCPnotpresent() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - sgNBPDCPnotpresent_t const* get_sgNBPDCPnotpresent() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(sgNBPDCPpresent_t)]; - char dummy2[sizeof(sgNBPDCPnotpresent_t)]; - - }; - asn::variant var; - index_type index {0}; - }; - resource_configuration_t& ref_resource_configuration() {return resource_configuration;} - resource_configuration_t const& ref_resource_configuration() const {return resource_configuration;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(en_DC_ResourceConfiguration); - v(resource_configuration); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(en_DC_ResourceConfiguration); - v(resource_configuration); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - en_DC_ResourceConfiguration.clear(); - resource_configuration.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - en_DC_ResourceConfiguration_t en_DC_ResourceConfiguration; - resource_configuration_t resource_configuration; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-AdmittedToBeModified-SgNBModConf-ItemIEs X2AP-PROTOCOL-IES ::= { -{ ID id-E-RABs-AdmittedToBeModified-SgNBModConf-Item CRITICALITY ignore TYPE E-RABs-AdmittedToBeModified-SgNBModConf-Item PRESENCE mandatory }, - ... -} -*/ - -struct E_RABs_AdmittedToBeModified_SgNBModConf_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_AdmittedToBeModified_SgNBModConf_Item() { set(id_E_RABs_AdmittedToBeModified_SgNBModConf_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_AdmittedToBeModified_SgNBModConf_Item)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_AdmittedToBeModified_SgNBModConf_Item);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_AdmittedToBeModified_SgNBModConf_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_AdmittedToBeModified_SgNBModConf_Item& select_id_E_RABs_AdmittedToBeModified_SgNBModConf_Item() { return set(1); } - E_RABs_AdmittedToBeModified_SgNBModConf_Item const* get_id_E_RABs_AdmittedToBeModified_SgNBModConf_Item() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_AdmittedToBeModified_SgNBModConf_Item()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_AdmittedToBeModified_SgNBModConf_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_AdmittedToBeModified_SgNBModConf_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-AdmittedToBeModified-SgNBModConfList ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container - { {E-RABs-AdmittedToBeModified-SgNBModConf-ItemIEs} } -*/ - -struct E_RABs_AdmittedToBeModified_SgNBModConfList_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_AdmittedToBeModified_SgNBModConfList_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_AdmittedToBeModified_SgNBModConfList : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-AdmittedToBeModified-SgNBModConfList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-SubjectToCounterCheckItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_SubjectToCounterCheckItemExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-SubjectToCounterCheckItem ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - uL-Count INTEGER (0..4294967295), - dL-Count INTEGER (0..4294967295), - iE-Extensions ProtocolExtensionContainer { {E-RABs-SubjectToCounterCheckItemExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_SubjectToCounterCheckItem : asn::sequence<4, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-SubjectToCounterCheckItem";} - using parent_t = asn::sequence<4, 0, true, 1>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct uL_Count_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "uL_Count_t";} - using parent_t = asn::integer<>; - - }; - - uL_Count_t& ref_uL_Count() {return uL_Count;} - uL_Count_t const& ref_uL_Count() const {return uL_Count;} - struct dL_Count_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "dL_Count_t";} - using parent_t = asn::integer<>; - - }; - - dL_Count_t& ref_dL_Count() {return dL_Count;} - dL_Count_t const& ref_dL_Count() const {return dL_Count;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(uL_Count); - v(dL_Count); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(uL_Count); - v(dL_Count); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - uL_Count.clear(); - dL_Count.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - uL_Count_t uL_Count; - dL_Count_t dL_Count; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-SubjectToCounterCheckItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-SubjectToCounterCheckItem CRITICALITY ignore TYPE E-RABs-SubjectToCounterCheckItem PRESENCE mandatory}, - ... -} -*/ - -struct E_RABs_SubjectToCounterCheckItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_SubjectToCounterCheckItem() { set(id_E_RABs_SubjectToCounterCheckItem); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_SubjectToCounterCheckItem)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_SubjectToCounterCheckItem);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_SubjectToCounterCheckItem() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_SubjectToCounterCheckItem& select_id_E_RABs_SubjectToCounterCheckItem() { return set(1); } - E_RABs_SubjectToCounterCheckItem const* get_id_E_RABs_SubjectToCounterCheckItem() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_SubjectToCounterCheckItem()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_SubjectToCounterCheckItem)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_SubjectToCounterCheckItem() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-SubjectToCounterCheck-List ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-SubjectToCounterCheckItemIEs} } -*/ - -struct E_RABs_SubjectToCounterCheck_List_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_SubjectToCounterCheck_List_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_SubjectToCounterCheck_List : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-SubjectToCounterCheck-List";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-SubjectToSgNBCounterCheck-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_SubjectToSgNBCounterCheck_ItemExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-SubjectToSgNBCounterCheck-Item ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - uL-Count INTEGER (0..4294967295), - dL-Count INTEGER (0..4294967295), - iE-Extensions ProtocolExtensionContainer { {E-RABs-SubjectToSgNBCounterCheck-ItemExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_SubjectToSgNBCounterCheck_Item : asn::sequence<4, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-SubjectToSgNBCounterCheck-Item";} - using parent_t = asn::sequence<4, 0, true, 1>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct uL_Count_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "uL_Count_t";} - using parent_t = asn::integer<>; - - }; - - uL_Count_t& ref_uL_Count() {return uL_Count;} - uL_Count_t const& ref_uL_Count() const {return uL_Count;} - struct dL_Count_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "dL_Count_t";} - using parent_t = asn::integer<>; - - }; - - dL_Count_t& ref_dL_Count() {return dL_Count;} - dL_Count_t const& ref_dL_Count() const {return dL_Count;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(uL_Count); - v(dL_Count); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(uL_Count); - v(dL_Count); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - uL_Count.clear(); - dL_Count.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - uL_Count_t uL_Count; - dL_Count_t dL_Count; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-SubjectToSgNBCounterCheck-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-SubjectToSgNBCounterCheck-Item CRITICALITY ignore TYPE E-RABs-SubjectToSgNBCounterCheck-Item PRESENCE mandatory}, - ... -} -*/ - -struct E_RABs_SubjectToSgNBCounterCheck_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_SubjectToSgNBCounterCheck_Item() { set(id_E_RABs_SubjectToSgNBCounterCheck_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_SubjectToSgNBCounterCheck_Item)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_SubjectToSgNBCounterCheck_Item);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_SubjectToSgNBCounterCheck_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_SubjectToSgNBCounterCheck_Item& select_id_E_RABs_SubjectToSgNBCounterCheck_Item() { return set(1); } - E_RABs_SubjectToSgNBCounterCheck_Item const* get_id_E_RABs_SubjectToSgNBCounterCheck_Item() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_SubjectToSgNBCounterCheck_Item()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_SubjectToSgNBCounterCheck_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_SubjectToSgNBCounterCheck_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-SubjectToSgNBCounterCheck-List ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-SubjectToSgNBCounterCheck-ItemIEs} } -*/ - -struct E_RABs_SubjectToSgNBCounterCheck_List_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_SubjectToSgNBCounterCheck_List_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_SubjectToSgNBCounterCheck_List : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-SubjectToSgNBCounterCheck-List";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-SubjectToStatusTransfer-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-ReceiveStatusOfULPDCPSDUsExtended CRITICALITY ignore EXTENSION ReceiveStatusOfULPDCPSDUsExtended PRESENCE optional}| - { ID id-ULCOUNTValueExtended CRITICALITY ignore EXTENSION COUNTValueExtended PRESENCE optional}| - { ID id-DLCOUNTValueExtended CRITICALITY ignore EXTENSION COUNTValueExtended PRESENCE optional}| - { ID id-ReceiveStatusOfULPDCPSDUsPDCP-SNlength18 CRITICALITY ignore EXTENSION ReceiveStatusOfULPDCPSDUsPDCP-SNlength18 PRESENCE optional}| - { ID id-ULCOUNTValuePDCP-SNlength18 CRITICALITY ignore EXTENSION COUNTvaluePDCP-SNlength18 PRESENCE optional}| - { ID id-DLCOUNTValuePDCP-SNlength18 CRITICALITY ignore EXTENSION COUNTvaluePDCP-SNlength18 PRESENCE optional}, - ... -} -*/ - -struct E_RABs_SubjectToStatusTransfer_ItemExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_ReceiveStatusOfULPDCPSDUsExtended() { set(id_ReceiveStatusOfULPDCPSDUsExtended); type=1;} - void select_id_ULCOUNTValueExtended() { set(id_ULCOUNTValueExtended); type=2;} - void select_id_DLCOUNTValueExtended() { set(id_DLCOUNTValueExtended); type=3;} - void select_id_ReceiveStatusOfULPDCPSDUsPDCP_SNlength18() { set(id_ReceiveStatusOfULPDCPSDUsPDCP_SNlength18); type=4;} - void select_id_ULCOUNTValuePDCP_SNlength18() { set(id_ULCOUNTValuePDCP_SNlength18); type=5;} - void select_id_DLCOUNTValuePDCP_SNlength18() { set(id_DLCOUNTValuePDCP_SNlength18); type=6;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_ReceiveStatusOfULPDCPSDUsExtended)) { type = 1; return true; } - else if(equal(id_ULCOUNTValueExtended)) { type = 2; return true; } - else if(equal(id_DLCOUNTValueExtended)) { type = 3; return true; } - else if(equal(id_ReceiveStatusOfULPDCPSDUsPDCP_SNlength18)) { type = 4; return true; } - else if(equal(id_ULCOUNTValuePDCP_SNlength18)) { type = 5; return true; } - else if(equal(id_DLCOUNTValuePDCP_SNlength18)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_ReceiveStatusOfULPDCPSDUsExtended);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_ULCOUNTValueExtended);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_DLCOUNTValueExtended);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_ReceiveStatusOfULPDCPSDUsPDCP_SNlength18);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_ULCOUNTValuePDCP_SNlength18);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_DLCOUNTValuePDCP_SNlength18);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_ReceiveStatusOfULPDCPSDUsExtended() { set(ignore); type=1;} - void select_id_ULCOUNTValueExtended() { set(ignore); type=2;} - void select_id_DLCOUNTValueExtended() { set(ignore); type=3;} - void select_id_ReceiveStatusOfULPDCPSDUsPDCP_SNlength18() { set(ignore); type=4;} - void select_id_ULCOUNTValuePDCP_SNlength18() { set(ignore); type=5;} - void select_id_DLCOUNTValuePDCP_SNlength18() { set(ignore); type=6;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else if(equal(ignore)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(ignore);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - ReceiveStatusOfULPDCPSDUsExtended& select_id_ReceiveStatusOfULPDCPSDUsExtended() { return set(1); } - ReceiveStatusOfULPDCPSDUsExtended const* get_id_ReceiveStatusOfULPDCPSDUsExtended() const { return get(1); } - COUNTValueExtended& select_id_ULCOUNTValueExtended() { return set(2); } - COUNTValueExtended const* get_id_ULCOUNTValueExtended() const { return get(2); } - COUNTValueExtended& select_id_DLCOUNTValueExtended() { return set(3); } - COUNTValueExtended const* get_id_DLCOUNTValueExtended() const { return get(3); } - ReceiveStatusOfULPDCPSDUsPDCP_SNlength18& select_id_ReceiveStatusOfULPDCPSDUsPDCP_SNlength18() { return set(4); } - ReceiveStatusOfULPDCPSDUsPDCP_SNlength18 const* get_id_ReceiveStatusOfULPDCPSDUsPDCP_SNlength18() const { return get(4); } - COUNTvaluePDCP_SNlength18& select_id_ULCOUNTValuePDCP_SNlength18() { return set(5); } - COUNTvaluePDCP_SNlength18 const* get_id_ULCOUNTValuePDCP_SNlength18() const { return get(5); } - COUNTvaluePDCP_SNlength18& select_id_DLCOUNTValuePDCP_SNlength18() { return set(6); } - COUNTvaluePDCP_SNlength18 const* get_id_DLCOUNTValuePDCP_SNlength18() const { return get(6); } - bool is_unknown() const { return type == 7; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_ReceiveStatusOfULPDCPSDUsExtended()); return true; - case 2: v(select_id_ULCOUNTValueExtended()); return true; - case 3: v(select_id_DLCOUNTValueExtended()); return true; - case 4: v(select_id_ReceiveStatusOfULPDCPSDUsPDCP_SNlength18()); return true; - case 5: v(select_id_ULCOUNTValuePDCP_SNlength18()); return true; - case 6: v(select_id_DLCOUNTValuePDCP_SNlength18()); return true; - case 7: if(type != 7) {clear(); asn::base::set();} type = 7; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(COUNTValueExtended)]; - char dummy2[sizeof(COUNTvaluePDCP_SNlength18)]; - char dummy3[sizeof(ReceiveStatusOfULPDCPSDUsExtended)]; - char dummy4[sizeof(ReceiveStatusOfULPDCPSDUsPDCP_SNlength18)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_ReceiveStatusOfULPDCPSDUsExtended() { set(optional); type=1;} - void select_id_ULCOUNTValueExtended() { set(optional); type=2;} - void select_id_DLCOUNTValueExtended() { set(optional); type=3;} - void select_id_ReceiveStatusOfULPDCPSDUsPDCP_SNlength18() { set(optional); type=4;} - void select_id_ULCOUNTValuePDCP_SNlength18() { set(optional); type=5;} - void select_id_DLCOUNTValuePDCP_SNlength18() { set(optional); type=6;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-SubjectToStatusTransfer-Item ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - - receiveStatusofULPDCPSDUs ReceiveStatusofULPDCPSDUs OPTIONAL, - uL-COUNTvalue COUNTvalue, - dL-COUNTvalue COUNTvalue, - iE-Extensions ProtocolExtensionContainer { {E-RABs-SubjectToStatusTransfer-ItemExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_SubjectToStatusTransfer_Item : asn::sequence<5, 0, true, 2> -{ - static constexpr const char* name() {return "E-RABs-SubjectToStatusTransfer-Item";} - using parent_t = asn::sequence<5, 0, true, 2>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct receiveStatusofULPDCPSDUs_t : ReceiveStatusofULPDCPSDUs - { - static constexpr const char* name() {return "receiveStatusofULPDCPSDUs_t";} - using parent_t = ReceiveStatusofULPDCPSDUs; - static constexpr bool optional = true; - - }; - receiveStatusofULPDCPSDUs_t& set_receiveStatusofULPDCPSDUs() { receiveStatusofULPDCPSDUs.setpresent(true); return receiveStatusofULPDCPSDUs;} - receiveStatusofULPDCPSDUs_t const* get_receiveStatusofULPDCPSDUs() const {return receiveStatusofULPDCPSDUs.is_valid() ? &receiveStatusofULPDCPSDUs : nullptr;} - struct uL_COUNTvalue_t : COUNTvalue - { - static constexpr const char* name() {return "uL_COUNTvalue_t";} - using parent_t = COUNTvalue; - - }; - uL_COUNTvalue_t& ref_uL_COUNTvalue() {return uL_COUNTvalue;} - uL_COUNTvalue_t const& ref_uL_COUNTvalue() const {return uL_COUNTvalue;} - struct dL_COUNTvalue_t : COUNTvalue - { - static constexpr const char* name() {return "dL_COUNTvalue_t";} - using parent_t = COUNTvalue; - - }; - dL_COUNTvalue_t& ref_dL_COUNTvalue() {return dL_COUNTvalue;} - dL_COUNTvalue_t const& ref_dL_COUNTvalue() const {return dL_COUNTvalue;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(receiveStatusofULPDCPSDUs); - v(uL_COUNTvalue); - v(dL_COUNTvalue); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(receiveStatusofULPDCPSDUs); - v(uL_COUNTvalue); - v(dL_COUNTvalue); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - receiveStatusofULPDCPSDUs.clear(); - uL_COUNTvalue.clear(); - dL_COUNTvalue.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - receiveStatusofULPDCPSDUs_t receiveStatusofULPDCPSDUs; - uL_COUNTvalue_t uL_COUNTvalue; - dL_COUNTvalue_t dL_COUNTvalue; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-SubjectToStatusTransfer-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-SubjectToStatusTransfer-Item CRITICALITY ignore TYPE E-RABs-SubjectToStatusTransfer-Item PRESENCE mandatory } -} -*/ - -struct E_RABs_SubjectToStatusTransfer_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_E_RABs_SubjectToStatusTransfer_Item() { set(id_E_RABs_SubjectToStatusTransfer_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_SubjectToStatusTransfer_Item)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_SubjectToStatusTransfer_Item);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_E_RABs_SubjectToStatusTransfer_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_SubjectToStatusTransfer_Item& select_id_E_RABs_SubjectToStatusTransfer_Item() { return set(1); } - E_RABs_SubjectToStatusTransfer_Item const* get_id_E_RABs_SubjectToStatusTransfer_Item() const { return get(1); } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_SubjectToStatusTransfer_Item()); return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_SubjectToStatusTransfer_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_E_RABs_SubjectToStatusTransfer_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-SubjectToStatusTransfer-List ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-SubjectToStatusTransfer-ItemIEs} } -*/ - -struct E_RABs_SubjectToStatusTransfer_List_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_SubjectToStatusTransfer_List_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_SubjectToStatusTransfer_List : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-SubjectToStatusTransfer-List";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-ToBeAdded-Item-SCG-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-Correlation-ID CRITICALITY ignore EXTENSION Correlation-ID PRESENCE optional}| - { ID id-SIPTO-Correlation-ID CRITICALITY ignore EXTENSION Correlation-ID PRESENCE optional}, - ... -} -*/ - -struct E_RABs_ToBeAdded_Item_SCG_BearerExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_Correlation_ID() { set(id_Correlation_ID); type=1;} - void select_id_SIPTO_Correlation_ID() { set(id_SIPTO_Correlation_ID); type=2;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_Correlation_ID)) { type = 1; return true; } - else if(equal(id_SIPTO_Correlation_ID)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_Correlation_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SIPTO_Correlation_ID);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_Correlation_ID() { set(ignore); type=1;} - void select_id_SIPTO_Correlation_ID() { set(ignore); type=2;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - Correlation_ID& select_id_Correlation_ID() { return set(1); } - Correlation_ID const* get_id_Correlation_ID() const { return get(1); } - Correlation_ID& select_id_SIPTO_Correlation_ID() { return set(2); } - Correlation_ID const* get_id_SIPTO_Correlation_ID() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_Correlation_ID()); return true; - case 2: v(select_id_SIPTO_Correlation_ID()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Correlation_ID)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_Correlation_ID() { set(optional); type=1;} - void select_id_SIPTO_Correlation_ID() { set(optional); type=2;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeAdded-Item-SCG-Bearer ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - e-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters, - dL-Forwarding DL-Forwarding OPTIONAL, - s1-UL-GTPtunnelEndpoint GTPtunnelEndpoint, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeAdded-Item-SCG-BearerExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeAdded_Item_SCG_Bearer : asn::sequence<5, 0, true, 2> -{ - static constexpr const char* name() {return "E-RABs-ToBeAdded-Item-SCG-Bearer";} - using parent_t = asn::sequence<5, 0, true, 2>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct e_RAB_Level_QoS_Parameters_t : E_RAB_Level_QoS_Parameters - { - static constexpr const char* name() {return "e_RAB_Level_QoS_Parameters_t";} - using parent_t = E_RAB_Level_QoS_Parameters; - - }; - e_RAB_Level_QoS_Parameters_t& ref_e_RAB_Level_QoS_Parameters() {return e_RAB_Level_QoS_Parameters;} - e_RAB_Level_QoS_Parameters_t const& ref_e_RAB_Level_QoS_Parameters() const {return e_RAB_Level_QoS_Parameters;} - struct dL_Forwarding_t : DL_Forwarding - { - static constexpr const char* name() {return "dL_Forwarding_t";} - using parent_t = DL_Forwarding; - static constexpr bool optional = true; - - }; - dL_Forwarding_t& set_dL_Forwarding() { dL_Forwarding.setpresent(true); return dL_Forwarding;} - dL_Forwarding_t const* get_dL_Forwarding() const {return dL_Forwarding.is_valid() ? &dL_Forwarding : nullptr;} - struct s1_UL_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "s1_UL_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - - }; - s1_UL_GTPtunnelEndpoint_t& ref_s1_UL_GTPtunnelEndpoint() {return s1_UL_GTPtunnelEndpoint;} - s1_UL_GTPtunnelEndpoint_t const& ref_s1_UL_GTPtunnelEndpoint() const {return s1_UL_GTPtunnelEndpoint;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(e_RAB_Level_QoS_Parameters); - v(dL_Forwarding); - v(s1_UL_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(e_RAB_Level_QoS_Parameters); - v(dL_Forwarding); - v(s1_UL_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - e_RAB_Level_QoS_Parameters.clear(); - dL_Forwarding.clear(); - s1_UL_GTPtunnelEndpoint.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - e_RAB_Level_QoS_Parameters_t e_RAB_Level_QoS_Parameters; - dL_Forwarding_t dL_Forwarding; - s1_UL_GTPtunnelEndpoint_t s1_UL_GTPtunnelEndpoint; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeAdded-Item-Split-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_ToBeAdded_Item_Split_BearerExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeAdded-Item-Split-Bearer ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - e-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters, - meNB-GTPtunnelEndpoint GTPtunnelEndpoint, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeAdded-Item-Split-BearerExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeAdded_Item_Split_Bearer : asn::sequence<4, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-ToBeAdded-Item-Split-Bearer";} - using parent_t = asn::sequence<4, 0, true, 1>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct e_RAB_Level_QoS_Parameters_t : E_RAB_Level_QoS_Parameters - { - static constexpr const char* name() {return "e_RAB_Level_QoS_Parameters_t";} - using parent_t = E_RAB_Level_QoS_Parameters; - - }; - e_RAB_Level_QoS_Parameters_t& ref_e_RAB_Level_QoS_Parameters() {return e_RAB_Level_QoS_Parameters;} - e_RAB_Level_QoS_Parameters_t const& ref_e_RAB_Level_QoS_Parameters() const {return e_RAB_Level_QoS_Parameters;} - struct meNB_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "meNB_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - - }; - meNB_GTPtunnelEndpoint_t& ref_meNB_GTPtunnelEndpoint() {return meNB_GTPtunnelEndpoint;} - meNB_GTPtunnelEndpoint_t const& ref_meNB_GTPtunnelEndpoint() const {return meNB_GTPtunnelEndpoint;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(e_RAB_Level_QoS_Parameters); - v(meNB_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(e_RAB_Level_QoS_Parameters); - v(meNB_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - e_RAB_Level_QoS_Parameters.clear(); - meNB_GTPtunnelEndpoint.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - e_RAB_Level_QoS_Parameters_t e_RAB_Level_QoS_Parameters; - meNB_GTPtunnelEndpoint_t meNB_GTPtunnelEndpoint; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeAdded-Item ::= CHOICE { - sCG-Bearer E-RABs-ToBeAdded-Item-SCG-Bearer, - split-Bearer E-RABs-ToBeAdded-Item-Split-Bearer, - ... -} -*/ - -struct E_RABs_ToBeAdded_Item : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "E-RABs-ToBeAdded-Item";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~E_RABs_ToBeAdded_Item() {clear();} - struct sCG_Bearer_t : E_RABs_ToBeAdded_Item_SCG_Bearer - { - static constexpr const char* name() {return "sCG_Bearer_t";} - using parent_t = E_RABs_ToBeAdded_Item_SCG_Bearer; - - }; - struct split_Bearer_t : E_RABs_ToBeAdded_Item_Split_Bearer - { - static constexpr const char* name() {return "split_Bearer_t";} - using parent_t = E_RABs_ToBeAdded_Item_Split_Bearer; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - sCG_Bearer_t& select_sCG_Bearer() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - sCG_Bearer_t const* get_sCG_Bearer() const { if(get_index() == 1) { return &var.as();} return nullptr; } - split_Bearer_t& select_split_Bearer() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - split_Bearer_t const* get_split_Bearer() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(sCG_Bearer_t)]; - char dummy2[sizeof(split_Bearer_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -E-RABs-ToBeAdded-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-ToBeAdded-Item CRITICALITY reject TYPE E-RABs-ToBeAdded-Item PRESENCE mandatory}, - ... -} -*/ - -struct E_RABs_ToBeAdded_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeAdded_Item() { set(id_E_RABs_ToBeAdded_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_ToBeAdded_Item)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_ToBeAdded_Item);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeAdded_Item() { set(reject); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_ToBeAdded_Item& select_id_E_RABs_ToBeAdded_Item() { return set(1); } - E_RABs_ToBeAdded_Item const* get_id_E_RABs_ToBeAdded_Item() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_ToBeAdded_Item()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_ToBeAdded_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeAdded_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeAdded-List ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeAdded-ItemIEs} } -*/ - -struct E_RABs_ToBeAdded_List_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_ToBeAdded_List_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_ToBeAdded_List : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-ToBeAdded-List";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-ToBeAdded-ModReqItem-SCG-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-Correlation-ID CRITICALITY ignore EXTENSION Correlation-ID PRESENCE optional}| - { ID id-SIPTO-Correlation-ID CRITICALITY ignore EXTENSION Correlation-ID PRESENCE optional}, - ... -} -*/ - -struct E_RABs_ToBeAdded_ModReqItem_SCG_BearerExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_Correlation_ID() { set(id_Correlation_ID); type=1;} - void select_id_SIPTO_Correlation_ID() { set(id_SIPTO_Correlation_ID); type=2;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_Correlation_ID)) { type = 1; return true; } - else if(equal(id_SIPTO_Correlation_ID)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_Correlation_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SIPTO_Correlation_ID);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_Correlation_ID() { set(ignore); type=1;} - void select_id_SIPTO_Correlation_ID() { set(ignore); type=2;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - Correlation_ID& select_id_Correlation_ID() { return set(1); } - Correlation_ID const* get_id_Correlation_ID() const { return get(1); } - Correlation_ID& select_id_SIPTO_Correlation_ID() { return set(2); } - Correlation_ID const* get_id_SIPTO_Correlation_ID() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_Correlation_ID()); return true; - case 2: v(select_id_SIPTO_Correlation_ID()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Correlation_ID)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_Correlation_ID() { set(optional); type=1;} - void select_id_SIPTO_Correlation_ID() { set(optional); type=2;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeAdded-ModReqItem-SCG-Bearer ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - e-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters, - dL-Forwarding DL-Forwarding OPTIONAL, - s1-UL-GTPtunnelEndpoint GTPtunnelEndpoint, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeAdded-ModReqItem-SCG-BearerExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeAdded_ModReqItem_SCG_Bearer : asn::sequence<5, 0, true, 2> -{ - static constexpr const char* name() {return "E-RABs-ToBeAdded-ModReqItem-SCG-Bearer";} - using parent_t = asn::sequence<5, 0, true, 2>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct e_RAB_Level_QoS_Parameters_t : E_RAB_Level_QoS_Parameters - { - static constexpr const char* name() {return "e_RAB_Level_QoS_Parameters_t";} - using parent_t = E_RAB_Level_QoS_Parameters; - - }; - e_RAB_Level_QoS_Parameters_t& ref_e_RAB_Level_QoS_Parameters() {return e_RAB_Level_QoS_Parameters;} - e_RAB_Level_QoS_Parameters_t const& ref_e_RAB_Level_QoS_Parameters() const {return e_RAB_Level_QoS_Parameters;} - struct dL_Forwarding_t : DL_Forwarding - { - static constexpr const char* name() {return "dL_Forwarding_t";} - using parent_t = DL_Forwarding; - static constexpr bool optional = true; - - }; - dL_Forwarding_t& set_dL_Forwarding() { dL_Forwarding.setpresent(true); return dL_Forwarding;} - dL_Forwarding_t const* get_dL_Forwarding() const {return dL_Forwarding.is_valid() ? &dL_Forwarding : nullptr;} - struct s1_UL_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "s1_UL_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - - }; - s1_UL_GTPtunnelEndpoint_t& ref_s1_UL_GTPtunnelEndpoint() {return s1_UL_GTPtunnelEndpoint;} - s1_UL_GTPtunnelEndpoint_t const& ref_s1_UL_GTPtunnelEndpoint() const {return s1_UL_GTPtunnelEndpoint;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(e_RAB_Level_QoS_Parameters); - v(dL_Forwarding); - v(s1_UL_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(e_RAB_Level_QoS_Parameters); - v(dL_Forwarding); - v(s1_UL_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - e_RAB_Level_QoS_Parameters.clear(); - dL_Forwarding.clear(); - s1_UL_GTPtunnelEndpoint.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - e_RAB_Level_QoS_Parameters_t e_RAB_Level_QoS_Parameters; - dL_Forwarding_t dL_Forwarding; - s1_UL_GTPtunnelEndpoint_t s1_UL_GTPtunnelEndpoint; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeAdded-ModReqItem-Split-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_ToBeAdded_ModReqItem_Split_BearerExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeAdded-ModReqItem-Split-Bearer ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - e-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters, - meNB-GTPtunnelEndpoint GTPtunnelEndpoint, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeAdded-ModReqItem-Split-BearerExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeAdded_ModReqItem_Split_Bearer : asn::sequence<4, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-ToBeAdded-ModReqItem-Split-Bearer";} - using parent_t = asn::sequence<4, 0, true, 1>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct e_RAB_Level_QoS_Parameters_t : E_RAB_Level_QoS_Parameters - { - static constexpr const char* name() {return "e_RAB_Level_QoS_Parameters_t";} - using parent_t = E_RAB_Level_QoS_Parameters; - - }; - e_RAB_Level_QoS_Parameters_t& ref_e_RAB_Level_QoS_Parameters() {return e_RAB_Level_QoS_Parameters;} - e_RAB_Level_QoS_Parameters_t const& ref_e_RAB_Level_QoS_Parameters() const {return e_RAB_Level_QoS_Parameters;} - struct meNB_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "meNB_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - - }; - meNB_GTPtunnelEndpoint_t& ref_meNB_GTPtunnelEndpoint() {return meNB_GTPtunnelEndpoint;} - meNB_GTPtunnelEndpoint_t const& ref_meNB_GTPtunnelEndpoint() const {return meNB_GTPtunnelEndpoint;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(e_RAB_Level_QoS_Parameters); - v(meNB_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(e_RAB_Level_QoS_Parameters); - v(meNB_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - e_RAB_Level_QoS_Parameters.clear(); - meNB_GTPtunnelEndpoint.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - e_RAB_Level_QoS_Parameters_t e_RAB_Level_QoS_Parameters; - meNB_GTPtunnelEndpoint_t meNB_GTPtunnelEndpoint; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeAdded-ModReqItem ::= CHOICE { - sCG-Bearer E-RABs-ToBeAdded-ModReqItem-SCG-Bearer, - split-Bearer E-RABs-ToBeAdded-ModReqItem-Split-Bearer, - ... -} -*/ - -struct E_RABs_ToBeAdded_ModReqItem : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "E-RABs-ToBeAdded-ModReqItem";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~E_RABs_ToBeAdded_ModReqItem() {clear();} - struct sCG_Bearer_t : E_RABs_ToBeAdded_ModReqItem_SCG_Bearer - { - static constexpr const char* name() {return "sCG_Bearer_t";} - using parent_t = E_RABs_ToBeAdded_ModReqItem_SCG_Bearer; - - }; - struct split_Bearer_t : E_RABs_ToBeAdded_ModReqItem_Split_Bearer - { - static constexpr const char* name() {return "split_Bearer_t";} - using parent_t = E_RABs_ToBeAdded_ModReqItem_Split_Bearer; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - sCG_Bearer_t& select_sCG_Bearer() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - sCG_Bearer_t const* get_sCG_Bearer() const { if(get_index() == 1) { return &var.as();} return nullptr; } - split_Bearer_t& select_split_Bearer() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - split_Bearer_t const* get_split_Bearer() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(sCG_Bearer_t)]; - char dummy2[sizeof(split_Bearer_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -E-RABs-ToBeAdded-ModReqItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-ToBeAdded-ModReqItem CRITICALITY ignore TYPE E-RABs-ToBeAdded-ModReqItem PRESENCE mandatory}, - ... -} -*/ - -struct E_RABs_ToBeAdded_ModReqItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeAdded_ModReqItem() { set(id_E_RABs_ToBeAdded_ModReqItem); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_ToBeAdded_ModReqItem)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_ToBeAdded_ModReqItem);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeAdded_ModReqItem() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_ToBeAdded_ModReqItem& select_id_E_RABs_ToBeAdded_ModReqItem() { return set(1); } - E_RABs_ToBeAdded_ModReqItem const* get_id_E_RABs_ToBeAdded_ModReqItem() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_ToBeAdded_ModReqItem()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_ToBeAdded_ModReqItem)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeAdded_ModReqItem() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeAdded-List-ModReq ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeAdded-ModReqItemIEs} } -*/ - -struct E_RABs_ToBeAdded_List_ModReq_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_ToBeAdded_List_ModReq_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_ToBeAdded_List_ModReq : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-ToBeAdded-List-ModReq";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-RLCMode-transferred CRITICALITY ignore EXTENSION RLCMode PRESENCE optional}, - ... -} -*/ - -struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresentExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RLCMode_transferred() { set(id_RLCMode_transferred); type=1;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_RLCMode_transferred)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_RLCMode_transferred);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RLCMode_transferred() { set(ignore); type=1;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - RLCMode& select_id_RLCMode_transferred() { return set(1); } - RLCMode const* get_id_RLCMode_transferred() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_RLCMode_transferred()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(RLCMode)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RLCMode_transferred() { set(optional); type=1;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPpresent ::= SEQUENCE { - full-E-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters, - max-MCG-admit-E-RAB-Level-QoS-Parameters GBR-QosInformation OPTIONAL, --- This IE shall be present if MCG resource and SCG resources IEs in the the EN-DC Resource Configuration IE are set to “present” and GBR QoS Information IE is present in Full E-RAB Level QoS Parameters IE -- - dL-Forwarding DL-Forwarding OPTIONAL, - meNB-DL-GTP-TEIDatMCG GTPtunnelEndpoint OPTIONAL, --- This IE shall be present if MCG resource IE in the the EN-DC Resource Configuration IE is set to “present” -- - s1-UL-GTPtunnelEndpoint GTPtunnelEndpoint, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPpresentExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresent : asn::sequence<6, 0, true, 4> -{ - static constexpr const char* name() {return "E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPpresent";} - using parent_t = asn::sequence<6, 0, true, 4>; - struct full_E_RAB_Level_QoS_Parameters_t : E_RAB_Level_QoS_Parameters - { - static constexpr const char* name() {return "full_E_RAB_Level_QoS_Parameters_t";} - using parent_t = E_RAB_Level_QoS_Parameters; - - }; - full_E_RAB_Level_QoS_Parameters_t& ref_full_E_RAB_Level_QoS_Parameters() {return full_E_RAB_Level_QoS_Parameters;} - full_E_RAB_Level_QoS_Parameters_t const& ref_full_E_RAB_Level_QoS_Parameters() const {return full_E_RAB_Level_QoS_Parameters;} - struct max_MCG_admit_E_RAB_Level_QoS_Parameters_t : GBR_QosInformation - { - static constexpr const char* name() {return "max_MCG_admit_E_RAB_Level_QoS_Parameters_t";} - using parent_t = GBR_QosInformation; - static constexpr bool optional = true; - - }; - max_MCG_admit_E_RAB_Level_QoS_Parameters_t& set_max_MCG_admit_E_RAB_Level_QoS_Parameters() { max_MCG_admit_E_RAB_Level_QoS_Parameters.setpresent(true); return max_MCG_admit_E_RAB_Level_QoS_Parameters;} - max_MCG_admit_E_RAB_Level_QoS_Parameters_t const* get_max_MCG_admit_E_RAB_Level_QoS_Parameters() const {return max_MCG_admit_E_RAB_Level_QoS_Parameters.is_valid() ? &max_MCG_admit_E_RAB_Level_QoS_Parameters : nullptr;} - struct dL_Forwarding_t : DL_Forwarding - { - static constexpr const char* name() {return "dL_Forwarding_t";} - using parent_t = DL_Forwarding; - static constexpr bool optional = true; - - }; - dL_Forwarding_t& set_dL_Forwarding() { dL_Forwarding.setpresent(true); return dL_Forwarding;} - dL_Forwarding_t const* get_dL_Forwarding() const {return dL_Forwarding.is_valid() ? &dL_Forwarding : nullptr;} - struct meNB_DL_GTP_TEIDatMCG_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "meNB_DL_GTP_TEIDatMCG_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - meNB_DL_GTP_TEIDatMCG_t& set_meNB_DL_GTP_TEIDatMCG() { meNB_DL_GTP_TEIDatMCG.setpresent(true); return meNB_DL_GTP_TEIDatMCG;} - meNB_DL_GTP_TEIDatMCG_t const* get_meNB_DL_GTP_TEIDatMCG() const {return meNB_DL_GTP_TEIDatMCG.is_valid() ? &meNB_DL_GTP_TEIDatMCG : nullptr;} - struct s1_UL_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "s1_UL_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - - }; - s1_UL_GTPtunnelEndpoint_t& ref_s1_UL_GTPtunnelEndpoint() {return s1_UL_GTPtunnelEndpoint;} - s1_UL_GTPtunnelEndpoint_t const& ref_s1_UL_GTPtunnelEndpoint() const {return s1_UL_GTPtunnelEndpoint;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(full_E_RAB_Level_QoS_Parameters); - v(max_MCG_admit_E_RAB_Level_QoS_Parameters); - v(dL_Forwarding); - v(meNB_DL_GTP_TEIDatMCG); - v(s1_UL_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(full_E_RAB_Level_QoS_Parameters); - v(max_MCG_admit_E_RAB_Level_QoS_Parameters); - v(dL_Forwarding); - v(meNB_DL_GTP_TEIDatMCG); - v(s1_UL_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - void clear() - { - full_E_RAB_Level_QoS_Parameters.clear(); - max_MCG_admit_E_RAB_Level_QoS_Parameters.clear(); - dL_Forwarding.clear(); - meNB_DL_GTP_TEIDatMCG.clear(); - s1_UL_GTPtunnelEndpoint.clear(); - iE_Extensions.clear(); - - }; - private: - full_E_RAB_Level_QoS_Parameters_t full_E_RAB_Level_QoS_Parameters; - max_MCG_admit_E_RAB_Level_QoS_Parameters_t max_MCG_admit_E_RAB_Level_QoS_Parameters; - dL_Forwarding_t dL_Forwarding; - meNB_DL_GTP_TEIDatMCG_t meNB_DL_GTP_TEIDatMCG; - s1_UL_GTPtunnelEndpoint_t s1_UL_GTPtunnelEndpoint; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPnotpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-uLpDCPSnLength CRITICALITY ignore EXTENSION PDCPSnLength PRESENCE optional}| - { ID id-dLPDCPSnLength CRITICALITY ignore EXTENSION PDCPSnLength PRESENCE optional}| - { ID id-duplicationActivation CRITICALITY ignore EXTENSION DuplicationActivation PRESENCE optional}, - ... -} -*/ - -struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresentExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_uLpDCPSnLength() { set(id_uLpDCPSnLength); type=1;} - void select_id_dLPDCPSnLength() { set(id_dLPDCPSnLength); type=2;} - void select_id_duplicationActivation() { set(id_duplicationActivation); type=3;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_uLpDCPSnLength)) { type = 1; return true; } - else if(equal(id_dLPDCPSnLength)) { type = 2; return true; } - else if(equal(id_duplicationActivation)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_uLpDCPSnLength);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_dLPDCPSnLength);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_duplicationActivation);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_uLpDCPSnLength() { set(ignore); type=1;} - void select_id_dLPDCPSnLength() { set(ignore); type=2;} - void select_id_duplicationActivation() { set(ignore); type=3;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - PDCPSnLength& select_id_uLpDCPSnLength() { return set(1); } - PDCPSnLength const* get_id_uLpDCPSnLength() const { return get(1); } - PDCPSnLength& select_id_dLPDCPSnLength() { return set(2); } - PDCPSnLength const* get_id_dLPDCPSnLength() const { return get(2); } - DuplicationActivation& select_id_duplicationActivation() { return set(3); } - DuplicationActivation const* get_id_duplicationActivation() const { return get(3); } - bool is_unknown() const { return type == 4; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_uLpDCPSnLength()); return true; - case 2: v(select_id_dLPDCPSnLength()); return true; - case 3: v(select_id_duplicationActivation()); return true; - case 4: if(type != 4) {clear(); asn::base::set();} type = 4; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(DuplicationActivation)]; - char dummy2[sizeof(PDCPSnLength)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_uLpDCPSnLength() { set(optional); type=1;} - void select_id_dLPDCPSnLength() { set(optional); type=2;} - void select_id_duplicationActivation() { set(optional); type=3;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPnotpresent ::= SEQUENCE { - requested-SCG-E-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters, - meNB-UL-GTP-TEIDatPDCP GTPtunnelEndpoint, - secondary-meNB-UL-GTP-TEIDatPDCP GTPtunnelEndpoint OPTIONAL, - rlc-Mode RLCMode, - uL-Configuration ULConfiguration OPTIONAL, --- This IE shall be present if MCG resource and SCG resources IEs in the the EN-DC Resource Configuration IE are set to “present” -- - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPnotpresentExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresent : asn::sequence<6, 0, true, 3> -{ - static constexpr const char* name() {return "E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPnotpresent";} - using parent_t = asn::sequence<6, 0, true, 3>; - struct requested_SCG_E_RAB_Level_QoS_Parameters_t : E_RAB_Level_QoS_Parameters - { - static constexpr const char* name() {return "requested_SCG_E_RAB_Level_QoS_Parameters_t";} - using parent_t = E_RAB_Level_QoS_Parameters; - - }; - requested_SCG_E_RAB_Level_QoS_Parameters_t& ref_requested_SCG_E_RAB_Level_QoS_Parameters() {return requested_SCG_E_RAB_Level_QoS_Parameters;} - requested_SCG_E_RAB_Level_QoS_Parameters_t const& ref_requested_SCG_E_RAB_Level_QoS_Parameters() const {return requested_SCG_E_RAB_Level_QoS_Parameters;} - struct meNB_UL_GTP_TEIDatPDCP_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "meNB_UL_GTP_TEIDatPDCP_t";} - using parent_t = GTPtunnelEndpoint; - - }; - meNB_UL_GTP_TEIDatPDCP_t& ref_meNB_UL_GTP_TEIDatPDCP() {return meNB_UL_GTP_TEIDatPDCP;} - meNB_UL_GTP_TEIDatPDCP_t const& ref_meNB_UL_GTP_TEIDatPDCP() const {return meNB_UL_GTP_TEIDatPDCP;} - struct secondary_meNB_UL_GTP_TEIDatPDCP_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "secondary_meNB_UL_GTP_TEIDatPDCP_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - secondary_meNB_UL_GTP_TEIDatPDCP_t& set_secondary_meNB_UL_GTP_TEIDatPDCP() { secondary_meNB_UL_GTP_TEIDatPDCP.setpresent(true); return secondary_meNB_UL_GTP_TEIDatPDCP;} - secondary_meNB_UL_GTP_TEIDatPDCP_t const* get_secondary_meNB_UL_GTP_TEIDatPDCP() const {return secondary_meNB_UL_GTP_TEIDatPDCP.is_valid() ? &secondary_meNB_UL_GTP_TEIDatPDCP : nullptr;} - struct rlc_Mode_t : RLCMode - { - static constexpr const char* name() {return "rlc_Mode_t";} - using parent_t = RLCMode; - - }; - rlc_Mode_t& ref_rlc_Mode() {return rlc_Mode;} - rlc_Mode_t const& ref_rlc_Mode() const {return rlc_Mode;} - struct uL_Configuration_t : ULConfiguration - { - static constexpr const char* name() {return "uL_Configuration_t";} - using parent_t = ULConfiguration; - static constexpr bool optional = true; - - }; - uL_Configuration_t& set_uL_Configuration() { uL_Configuration.setpresent(true); return uL_Configuration;} - uL_Configuration_t const* get_uL_Configuration() const {return uL_Configuration.is_valid() ? &uL_Configuration : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(requested_SCG_E_RAB_Level_QoS_Parameters); - v(meNB_UL_GTP_TEIDatPDCP); - v(secondary_meNB_UL_GTP_TEIDatPDCP); - v(rlc_Mode); - v(uL_Configuration); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(requested_SCG_E_RAB_Level_QoS_Parameters); - v(meNB_UL_GTP_TEIDatPDCP); - v(secondary_meNB_UL_GTP_TEIDatPDCP); - v(rlc_Mode); - v(uL_Configuration); - v(iE_Extensions); - - }; - void clear() - { - requested_SCG_E_RAB_Level_QoS_Parameters.clear(); - meNB_UL_GTP_TEIDatPDCP.clear(); - secondary_meNB_UL_GTP_TEIDatPDCP.clear(); - rlc_Mode.clear(); - uL_Configuration.clear(); - iE_Extensions.clear(); - - }; - private: - requested_SCG_E_RAB_Level_QoS_Parameters_t requested_SCG_E_RAB_Level_QoS_Parameters; - meNB_UL_GTP_TEIDatPDCP_t meNB_UL_GTP_TEIDatPDCP; - secondary_meNB_UL_GTP_TEIDatPDCP_t secondary_meNB_UL_GTP_TEIDatPDCP; - rlc_Mode_t rlc_Mode; - uL_Configuration_t uL_Configuration; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeAdded-SgNBAddReq-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_ToBeAdded_SgNBAddReq_ItemExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeAdded-SgNBAddReq-Item ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - drb-ID DRB-ID, - en-DC-ResourceConfiguration EN-DC-ResourceConfiguration, - resource-configuration CHOICE { - sgNBPDCPpresent E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPpresent, - sgNBPDCPnotpresent E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPnotpresent, - ... - }, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeAdded-SgNBAddReq-ItemExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeAdded_SgNBAddReq_Item : asn::sequence<5, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-ToBeAdded-SgNBAddReq-Item";} - using parent_t = asn::sequence<5, 0, true, 1>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct drb_ID_t : DRB_ID - { - static constexpr const char* name() {return "drb_ID_t";} - using parent_t = DRB_ID; - - }; - drb_ID_t& ref_drb_ID() {return drb_ID;} - drb_ID_t const& ref_drb_ID() const {return drb_ID;} - struct en_DC_ResourceConfiguration_t : EN_DC_ResourceConfiguration - { - static constexpr const char* name() {return "en_DC_ResourceConfiguration_t";} - using parent_t = EN_DC_ResourceConfiguration; - - }; - en_DC_ResourceConfiguration_t& ref_en_DC_ResourceConfiguration() {return en_DC_ResourceConfiguration;} - en_DC_ResourceConfiguration_t const& ref_en_DC_ResourceConfiguration() const {return en_DC_ResourceConfiguration;} - struct resource_configuration_t : asn::choice<2, 0, true> - { - static constexpr const char* name() {return "resource_configuration_t";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~resource_configuration_t() {clear();} - struct sgNBPDCPpresent_t : E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresent - { - static constexpr const char* name() {return "sgNBPDCPpresent_t";} - using parent_t = E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresent; - - }; - struct sgNBPDCPnotpresent_t : E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresent - { - static constexpr const char* name() {return "sgNBPDCPnotpresent_t";} - using parent_t = E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresent; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - sgNBPDCPpresent_t& select_sgNBPDCPpresent() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - sgNBPDCPpresent_t const* get_sgNBPDCPpresent() const { if(get_index() == 1) { return &var.as();} return nullptr; } - sgNBPDCPnotpresent_t& select_sgNBPDCPnotpresent() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - sgNBPDCPnotpresent_t const* get_sgNBPDCPnotpresent() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(sgNBPDCPpresent_t)]; - char dummy2[sizeof(sgNBPDCPnotpresent_t)]; - - }; - asn::variant var; - index_type index {0}; - }; - resource_configuration_t& ref_resource_configuration() {return resource_configuration;} - resource_configuration_t const& ref_resource_configuration() const {return resource_configuration;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(drb_ID); - v(en_DC_ResourceConfiguration); - v(resource_configuration); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(drb_ID); - v(en_DC_ResourceConfiguration); - v(resource_configuration); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - drb_ID.clear(); - en_DC_ResourceConfiguration.clear(); - resource_configuration.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - drb_ID_t drb_ID; - en_DC_ResourceConfiguration_t en_DC_ResourceConfiguration; - resource_configuration_t resource_configuration; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeAdded-SgNBAddReq-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-ToBeAdded-SgNBAddReq-Item CRITICALITY reject TYPE E-RABs-ToBeAdded-SgNBAddReq-Item PRESENCE mandatory}, - ... -} -*/ - -struct E_RABs_ToBeAdded_SgNBAddReq_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeAdded_SgNBAddReq_Item() { set(id_E_RABs_ToBeAdded_SgNBAddReq_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_ToBeAdded_SgNBAddReq_Item)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_ToBeAdded_SgNBAddReq_Item);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeAdded_SgNBAddReq_Item() { set(reject); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_ToBeAdded_SgNBAddReq_Item& select_id_E_RABs_ToBeAdded_SgNBAddReq_Item() { return set(1); } - E_RABs_ToBeAdded_SgNBAddReq_Item const* get_id_E_RABs_ToBeAdded_SgNBAddReq_Item() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_ToBeAdded_SgNBAddReq_Item()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_ToBeAdded_SgNBAddReq_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeAdded_SgNBAddReq_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeAdded-SgNBAddReqList ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeAdded-SgNBAddReq-ItemIEs} } -*/ - -struct E_RABs_ToBeAdded_SgNBAddReqList_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_ToBeAdded_SgNBAddReqList_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_ToBeAdded_SgNBAddReqList : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-ToBeAdded-SgNBAddReqList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-RLCMode-transferred CRITICALITY ignore EXTENSION RLCMode PRESENCE optional}, - ... -} -*/ - -struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresentExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RLCMode_transferred() { set(id_RLCMode_transferred); type=1;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_RLCMode_transferred)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_RLCMode_transferred);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RLCMode_transferred() { set(ignore); type=1;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - RLCMode& select_id_RLCMode_transferred() { return set(1); } - RLCMode const* get_id_RLCMode_transferred() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_RLCMode_transferred()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(RLCMode)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RLCMode_transferred() { set(optional); type=1;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPpresent ::= SEQUENCE { - full-E-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters, - max-MN-admit-E-RAB-Level-QoS-Parameters GBR-QosInformation OPTIONAL, --- This IE shall be present if MCG resource and SCG resources IEs in the the EN-DC Resource Configuration IE are set to “present” and GBR QoS Information IE is present in Full E-RAB Level QoS Parameters IE -- - dL-Forwarding DL-Forwarding OPTIONAL, - meNB-DL-GTP-TEIDatMCG GTPtunnelEndpoint OPTIONAL, --- This IE shall be present if MCG resource IE in the the EN-DC Resource Configuration IE is set to “present” -- - s1-UL-GTPtunnelEndpoint GTPtunnelEndpoint, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPpresentExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresent : asn::sequence<6, 0, true, 4> -{ - static constexpr const char* name() {return "E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPpresent";} - using parent_t = asn::sequence<6, 0, true, 4>; - struct full_E_RAB_Level_QoS_Parameters_t : E_RAB_Level_QoS_Parameters - { - static constexpr const char* name() {return "full_E_RAB_Level_QoS_Parameters_t";} - using parent_t = E_RAB_Level_QoS_Parameters; - - }; - full_E_RAB_Level_QoS_Parameters_t& ref_full_E_RAB_Level_QoS_Parameters() {return full_E_RAB_Level_QoS_Parameters;} - full_E_RAB_Level_QoS_Parameters_t const& ref_full_E_RAB_Level_QoS_Parameters() const {return full_E_RAB_Level_QoS_Parameters;} - struct max_MN_admit_E_RAB_Level_QoS_Parameters_t : GBR_QosInformation - { - static constexpr const char* name() {return "max_MN_admit_E_RAB_Level_QoS_Parameters_t";} - using parent_t = GBR_QosInformation; - static constexpr bool optional = true; - - }; - max_MN_admit_E_RAB_Level_QoS_Parameters_t& set_max_MN_admit_E_RAB_Level_QoS_Parameters() { max_MN_admit_E_RAB_Level_QoS_Parameters.setpresent(true); return max_MN_admit_E_RAB_Level_QoS_Parameters;} - max_MN_admit_E_RAB_Level_QoS_Parameters_t const* get_max_MN_admit_E_RAB_Level_QoS_Parameters() const {return max_MN_admit_E_RAB_Level_QoS_Parameters.is_valid() ? &max_MN_admit_E_RAB_Level_QoS_Parameters : nullptr;} - struct dL_Forwarding_t : DL_Forwarding - { - static constexpr const char* name() {return "dL_Forwarding_t";} - using parent_t = DL_Forwarding; - static constexpr bool optional = true; - - }; - dL_Forwarding_t& set_dL_Forwarding() { dL_Forwarding.setpresent(true); return dL_Forwarding;} - dL_Forwarding_t const* get_dL_Forwarding() const {return dL_Forwarding.is_valid() ? &dL_Forwarding : nullptr;} - struct meNB_DL_GTP_TEIDatMCG_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "meNB_DL_GTP_TEIDatMCG_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - meNB_DL_GTP_TEIDatMCG_t& set_meNB_DL_GTP_TEIDatMCG() { meNB_DL_GTP_TEIDatMCG.setpresent(true); return meNB_DL_GTP_TEIDatMCG;} - meNB_DL_GTP_TEIDatMCG_t const* get_meNB_DL_GTP_TEIDatMCG() const {return meNB_DL_GTP_TEIDatMCG.is_valid() ? &meNB_DL_GTP_TEIDatMCG : nullptr;} - struct s1_UL_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "s1_UL_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - - }; - s1_UL_GTPtunnelEndpoint_t& ref_s1_UL_GTPtunnelEndpoint() {return s1_UL_GTPtunnelEndpoint;} - s1_UL_GTPtunnelEndpoint_t const& ref_s1_UL_GTPtunnelEndpoint() const {return s1_UL_GTPtunnelEndpoint;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(full_E_RAB_Level_QoS_Parameters); - v(max_MN_admit_E_RAB_Level_QoS_Parameters); - v(dL_Forwarding); - v(meNB_DL_GTP_TEIDatMCG); - v(s1_UL_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(full_E_RAB_Level_QoS_Parameters); - v(max_MN_admit_E_RAB_Level_QoS_Parameters); - v(dL_Forwarding); - v(meNB_DL_GTP_TEIDatMCG); - v(s1_UL_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - void clear() - { - full_E_RAB_Level_QoS_Parameters.clear(); - max_MN_admit_E_RAB_Level_QoS_Parameters.clear(); - dL_Forwarding.clear(); - meNB_DL_GTP_TEIDatMCG.clear(); - s1_UL_GTPtunnelEndpoint.clear(); - iE_Extensions.clear(); - - }; - private: - full_E_RAB_Level_QoS_Parameters_t full_E_RAB_Level_QoS_Parameters; - max_MN_admit_E_RAB_Level_QoS_Parameters_t max_MN_admit_E_RAB_Level_QoS_Parameters; - dL_Forwarding_t dL_Forwarding; - meNB_DL_GTP_TEIDatMCG_t meNB_DL_GTP_TEIDatMCG; - s1_UL_GTPtunnelEndpoint_t s1_UL_GTPtunnelEndpoint; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPnotpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-uLpDCPSnLength CRITICALITY ignore EXTENSION PDCPSnLength PRESENCE optional}| - { ID id-dLPDCPSnLength CRITICALITY ignore EXTENSION PDCPSnLength PRESENCE optional}| - { ID id-duplicationActivation CRITICALITY ignore EXTENSION DuplicationActivation PRESENCE optional}, - ... -} -*/ - -struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_uLpDCPSnLength() { set(id_uLpDCPSnLength); type=1;} - void select_id_dLPDCPSnLength() { set(id_dLPDCPSnLength); type=2;} - void select_id_duplicationActivation() { set(id_duplicationActivation); type=3;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_uLpDCPSnLength)) { type = 1; return true; } - else if(equal(id_dLPDCPSnLength)) { type = 2; return true; } - else if(equal(id_duplicationActivation)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_uLpDCPSnLength);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_dLPDCPSnLength);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_duplicationActivation);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_uLpDCPSnLength() { set(ignore); type=1;} - void select_id_dLPDCPSnLength() { set(ignore); type=2;} - void select_id_duplicationActivation() { set(ignore); type=3;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - PDCPSnLength& select_id_uLpDCPSnLength() { return set(1); } - PDCPSnLength const* get_id_uLpDCPSnLength() const { return get(1); } - PDCPSnLength& select_id_dLPDCPSnLength() { return set(2); } - PDCPSnLength const* get_id_dLPDCPSnLength() const { return get(2); } - DuplicationActivation& select_id_duplicationActivation() { return set(3); } - DuplicationActivation const* get_id_duplicationActivation() const { return get(3); } - bool is_unknown() const { return type == 4; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_uLpDCPSnLength()); return true; - case 2: v(select_id_dLPDCPSnLength()); return true; - case 3: v(select_id_duplicationActivation()); return true; - case 4: if(type != 4) {clear(); asn::base::set();} type = 4; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(DuplicationActivation)]; - char dummy2[sizeof(PDCPSnLength)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_uLpDCPSnLength() { set(optional); type=1;} - void select_id_dLPDCPSnLength() { set(optional); type=2;} - void select_id_duplicationActivation() { set(optional); type=3;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPnotpresent ::= SEQUENCE { - requested-SCG-E-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters, - meNB-UL-GTP-TEIDatPDCP GTPtunnelEndpoint, - secondary-meNB-UL-GTP-TEIDatPDCP GTPtunnelEndpoint OPTIONAL, - rlc-Mode RLCMode, - uL-Configuration ULConfiguration OPTIONAL, --- This IE shall be present if MCG resource and SCG resources IEs in the the EN-DC Resource Configuration IE are set to “present” -- - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPnotpresentExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresent : asn::sequence<6, 0, true, 3> -{ - static constexpr const char* name() {return "E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPnotpresent";} - using parent_t = asn::sequence<6, 0, true, 3>; - struct requested_SCG_E_RAB_Level_QoS_Parameters_t : E_RAB_Level_QoS_Parameters - { - static constexpr const char* name() {return "requested_SCG_E_RAB_Level_QoS_Parameters_t";} - using parent_t = E_RAB_Level_QoS_Parameters; - - }; - requested_SCG_E_RAB_Level_QoS_Parameters_t& ref_requested_SCG_E_RAB_Level_QoS_Parameters() {return requested_SCG_E_RAB_Level_QoS_Parameters;} - requested_SCG_E_RAB_Level_QoS_Parameters_t const& ref_requested_SCG_E_RAB_Level_QoS_Parameters() const {return requested_SCG_E_RAB_Level_QoS_Parameters;} - struct meNB_UL_GTP_TEIDatPDCP_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "meNB_UL_GTP_TEIDatPDCP_t";} - using parent_t = GTPtunnelEndpoint; - - }; - meNB_UL_GTP_TEIDatPDCP_t& ref_meNB_UL_GTP_TEIDatPDCP() {return meNB_UL_GTP_TEIDatPDCP;} - meNB_UL_GTP_TEIDatPDCP_t const& ref_meNB_UL_GTP_TEIDatPDCP() const {return meNB_UL_GTP_TEIDatPDCP;} - struct secondary_meNB_UL_GTP_TEIDatPDCP_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "secondary_meNB_UL_GTP_TEIDatPDCP_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - secondary_meNB_UL_GTP_TEIDatPDCP_t& set_secondary_meNB_UL_GTP_TEIDatPDCP() { secondary_meNB_UL_GTP_TEIDatPDCP.setpresent(true); return secondary_meNB_UL_GTP_TEIDatPDCP;} - secondary_meNB_UL_GTP_TEIDatPDCP_t const* get_secondary_meNB_UL_GTP_TEIDatPDCP() const {return secondary_meNB_UL_GTP_TEIDatPDCP.is_valid() ? &secondary_meNB_UL_GTP_TEIDatPDCP : nullptr;} - struct rlc_Mode_t : RLCMode - { - static constexpr const char* name() {return "rlc_Mode_t";} - using parent_t = RLCMode; - - }; - rlc_Mode_t& ref_rlc_Mode() {return rlc_Mode;} - rlc_Mode_t const& ref_rlc_Mode() const {return rlc_Mode;} - struct uL_Configuration_t : ULConfiguration - { - static constexpr const char* name() {return "uL_Configuration_t";} - using parent_t = ULConfiguration; - static constexpr bool optional = true; - - }; - uL_Configuration_t& set_uL_Configuration() { uL_Configuration.setpresent(true); return uL_Configuration;} - uL_Configuration_t const* get_uL_Configuration() const {return uL_Configuration.is_valid() ? &uL_Configuration : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(requested_SCG_E_RAB_Level_QoS_Parameters); - v(meNB_UL_GTP_TEIDatPDCP); - v(secondary_meNB_UL_GTP_TEIDatPDCP); - v(rlc_Mode); - v(uL_Configuration); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(requested_SCG_E_RAB_Level_QoS_Parameters); - v(meNB_UL_GTP_TEIDatPDCP); - v(secondary_meNB_UL_GTP_TEIDatPDCP); - v(rlc_Mode); - v(uL_Configuration); - v(iE_Extensions); - - }; - void clear() - { - requested_SCG_E_RAB_Level_QoS_Parameters.clear(); - meNB_UL_GTP_TEIDatPDCP.clear(); - secondary_meNB_UL_GTP_TEIDatPDCP.clear(); - rlc_Mode.clear(); - uL_Configuration.clear(); - iE_Extensions.clear(); - - }; - private: - requested_SCG_E_RAB_Level_QoS_Parameters_t requested_SCG_E_RAB_Level_QoS_Parameters; - meNB_UL_GTP_TEIDatPDCP_t meNB_UL_GTP_TEIDatPDCP; - secondary_meNB_UL_GTP_TEIDatPDCP_t secondary_meNB_UL_GTP_TEIDatPDCP; - rlc_Mode_t rlc_Mode; - uL_Configuration_t uL_Configuration; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeAdded-SgNBModReq-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_ToBeAdded_SgNBModReq_ItemExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeAdded-SgNBModReq-Item ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - drb-ID DRB-ID, - en-DC-ResourceConfiguration EN-DC-ResourceConfiguration, - resource-configuration CHOICE { - sgNBPDCPpresent E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPpresent, - sgNBPDCPnotpresent E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPnotpresent, - ... - }, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeAdded-SgNBModReq-ItemExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeAdded_SgNBModReq_Item : asn::sequence<5, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-ToBeAdded-SgNBModReq-Item";} - using parent_t = asn::sequence<5, 0, true, 1>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct drb_ID_t : DRB_ID - { - static constexpr const char* name() {return "drb_ID_t";} - using parent_t = DRB_ID; - - }; - drb_ID_t& ref_drb_ID() {return drb_ID;} - drb_ID_t const& ref_drb_ID() const {return drb_ID;} - struct en_DC_ResourceConfiguration_t : EN_DC_ResourceConfiguration - { - static constexpr const char* name() {return "en_DC_ResourceConfiguration_t";} - using parent_t = EN_DC_ResourceConfiguration; - - }; - en_DC_ResourceConfiguration_t& ref_en_DC_ResourceConfiguration() {return en_DC_ResourceConfiguration;} - en_DC_ResourceConfiguration_t const& ref_en_DC_ResourceConfiguration() const {return en_DC_ResourceConfiguration;} - struct resource_configuration_t : asn::choice<2, 0, true> - { - static constexpr const char* name() {return "resource_configuration_t";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~resource_configuration_t() {clear();} - struct sgNBPDCPpresent_t : E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresent - { - static constexpr const char* name() {return "sgNBPDCPpresent_t";} - using parent_t = E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresent; - - }; - struct sgNBPDCPnotpresent_t : E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresent - { - static constexpr const char* name() {return "sgNBPDCPnotpresent_t";} - using parent_t = E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresent; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - sgNBPDCPpresent_t& select_sgNBPDCPpresent() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - sgNBPDCPpresent_t const* get_sgNBPDCPpresent() const { if(get_index() == 1) { return &var.as();} return nullptr; } - sgNBPDCPnotpresent_t& select_sgNBPDCPnotpresent() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - sgNBPDCPnotpresent_t const* get_sgNBPDCPnotpresent() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(sgNBPDCPpresent_t)]; - char dummy2[sizeof(sgNBPDCPnotpresent_t)]; - - }; - asn::variant var; - index_type index {0}; - }; - resource_configuration_t& ref_resource_configuration() {return resource_configuration;} - resource_configuration_t const& ref_resource_configuration() const {return resource_configuration;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(drb_ID); - v(en_DC_ResourceConfiguration); - v(resource_configuration); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(drb_ID); - v(en_DC_ResourceConfiguration); - v(resource_configuration); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - drb_ID.clear(); - en_DC_ResourceConfiguration.clear(); - resource_configuration.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - drb_ID_t drb_ID; - en_DC_ResourceConfiguration_t en_DC_ResourceConfiguration; - resource_configuration_t resource_configuration; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeAdded-SgNBModReq-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-ToBeAdded-SgNBModReq-Item CRITICALITY ignore TYPE E-RABs-ToBeAdded-SgNBModReq-Item PRESENCE mandatory}, - ... -} -*/ - -struct E_RABs_ToBeAdded_SgNBModReq_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeAdded_SgNBModReq_Item() { set(id_E_RABs_ToBeAdded_SgNBModReq_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_ToBeAdded_SgNBModReq_Item)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_ToBeAdded_SgNBModReq_Item);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeAdded_SgNBModReq_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_ToBeAdded_SgNBModReq_Item& select_id_E_RABs_ToBeAdded_SgNBModReq_Item() { return set(1); } - E_RABs_ToBeAdded_SgNBModReq_Item const* get_id_E_RABs_ToBeAdded_SgNBModReq_Item() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_ToBeAdded_SgNBModReq_Item()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_ToBeAdded_SgNBModReq_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeAdded_SgNBModReq_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeAdded-SgNBModReq-List ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeAdded-SgNBModReq-ItemIEs} } -*/ - -struct E_RABs_ToBeAdded_SgNBModReq_List_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_ToBeAdded_SgNBModReq_List_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_ToBeAdded_SgNBModReq_List : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-ToBeAdded-SgNBModReq-List";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-ToBeModified-ModReqItem-SCG-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_ToBeModified_ModReqItem_SCG_BearerExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeModified-ModReqItem-SCG-Bearer ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - e-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters OPTIONAL, - s1-UL-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeModified-ModReqItem-SCG-BearerExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeModified_ModReqItem_SCG_Bearer : asn::sequence<4, 0, true, 3> -{ - static constexpr const char* name() {return "E-RABs-ToBeModified-ModReqItem-SCG-Bearer";} - using parent_t = asn::sequence<4, 0, true, 3>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct e_RAB_Level_QoS_Parameters_t : E_RAB_Level_QoS_Parameters - { - static constexpr const char* name() {return "e_RAB_Level_QoS_Parameters_t";} - using parent_t = E_RAB_Level_QoS_Parameters; - static constexpr bool optional = true; - - }; - e_RAB_Level_QoS_Parameters_t& set_e_RAB_Level_QoS_Parameters() { e_RAB_Level_QoS_Parameters.setpresent(true); return e_RAB_Level_QoS_Parameters;} - e_RAB_Level_QoS_Parameters_t const* get_e_RAB_Level_QoS_Parameters() const {return e_RAB_Level_QoS_Parameters.is_valid() ? &e_RAB_Level_QoS_Parameters : nullptr;} - struct s1_UL_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "s1_UL_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - s1_UL_GTPtunnelEndpoint_t& set_s1_UL_GTPtunnelEndpoint() { s1_UL_GTPtunnelEndpoint.setpresent(true); return s1_UL_GTPtunnelEndpoint;} - s1_UL_GTPtunnelEndpoint_t const* get_s1_UL_GTPtunnelEndpoint() const {return s1_UL_GTPtunnelEndpoint.is_valid() ? &s1_UL_GTPtunnelEndpoint : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(e_RAB_Level_QoS_Parameters); - v(s1_UL_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(e_RAB_Level_QoS_Parameters); - v(s1_UL_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - e_RAB_Level_QoS_Parameters.clear(); - s1_UL_GTPtunnelEndpoint.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - e_RAB_Level_QoS_Parameters_t e_RAB_Level_QoS_Parameters; - s1_UL_GTPtunnelEndpoint_t s1_UL_GTPtunnelEndpoint; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeModified-ModReqItem-Split-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_ToBeModified_ModReqItem_Split_BearerExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeModified-ModReqItem-Split-Bearer ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - e-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters OPTIONAL, - meNB-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeModified-ModReqItem-Split-BearerExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeModified_ModReqItem_Split_Bearer : asn::sequence<4, 0, true, 3> -{ - static constexpr const char* name() {return "E-RABs-ToBeModified-ModReqItem-Split-Bearer";} - using parent_t = asn::sequence<4, 0, true, 3>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct e_RAB_Level_QoS_Parameters_t : E_RAB_Level_QoS_Parameters - { - static constexpr const char* name() {return "e_RAB_Level_QoS_Parameters_t";} - using parent_t = E_RAB_Level_QoS_Parameters; - static constexpr bool optional = true; - - }; - e_RAB_Level_QoS_Parameters_t& set_e_RAB_Level_QoS_Parameters() { e_RAB_Level_QoS_Parameters.setpresent(true); return e_RAB_Level_QoS_Parameters;} - e_RAB_Level_QoS_Parameters_t const* get_e_RAB_Level_QoS_Parameters() const {return e_RAB_Level_QoS_Parameters.is_valid() ? &e_RAB_Level_QoS_Parameters : nullptr;} - struct meNB_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "meNB_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - meNB_GTPtunnelEndpoint_t& set_meNB_GTPtunnelEndpoint() { meNB_GTPtunnelEndpoint.setpresent(true); return meNB_GTPtunnelEndpoint;} - meNB_GTPtunnelEndpoint_t const* get_meNB_GTPtunnelEndpoint() const {return meNB_GTPtunnelEndpoint.is_valid() ? &meNB_GTPtunnelEndpoint : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(e_RAB_Level_QoS_Parameters); - v(meNB_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(e_RAB_Level_QoS_Parameters); - v(meNB_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - e_RAB_Level_QoS_Parameters.clear(); - meNB_GTPtunnelEndpoint.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - e_RAB_Level_QoS_Parameters_t e_RAB_Level_QoS_Parameters; - meNB_GTPtunnelEndpoint_t meNB_GTPtunnelEndpoint; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeModified-ModReqItem ::= CHOICE { - sCG-Bearer E-RABs-ToBeModified-ModReqItem-SCG-Bearer, - split-Bearer E-RABs-ToBeModified-ModReqItem-Split-Bearer, - ... -} -*/ - -struct E_RABs_ToBeModified_ModReqItem : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "E-RABs-ToBeModified-ModReqItem";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~E_RABs_ToBeModified_ModReqItem() {clear();} - struct sCG_Bearer_t : E_RABs_ToBeModified_ModReqItem_SCG_Bearer - { - static constexpr const char* name() {return "sCG_Bearer_t";} - using parent_t = E_RABs_ToBeModified_ModReqItem_SCG_Bearer; - - }; - struct split_Bearer_t : E_RABs_ToBeModified_ModReqItem_Split_Bearer - { - static constexpr const char* name() {return "split_Bearer_t";} - using parent_t = E_RABs_ToBeModified_ModReqItem_Split_Bearer; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - sCG_Bearer_t& select_sCG_Bearer() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - sCG_Bearer_t const* get_sCG_Bearer() const { if(get_index() == 1) { return &var.as();} return nullptr; } - split_Bearer_t& select_split_Bearer() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - split_Bearer_t const* get_split_Bearer() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(sCG_Bearer_t)]; - char dummy2[sizeof(split_Bearer_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -E-RABs-ToBeModified-ModReqItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-ToBeModified-ModReqItem CRITICALITY ignore TYPE E-RABs-ToBeModified-ModReqItem PRESENCE mandatory}, - ... -} -*/ - -struct E_RABs_ToBeModified_ModReqItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeModified_ModReqItem() { set(id_E_RABs_ToBeModified_ModReqItem); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_ToBeModified_ModReqItem)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_ToBeModified_ModReqItem);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeModified_ModReqItem() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_ToBeModified_ModReqItem& select_id_E_RABs_ToBeModified_ModReqItem() { return set(1); } - E_RABs_ToBeModified_ModReqItem const* get_id_E_RABs_ToBeModified_ModReqItem() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_ToBeModified_ModReqItem()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_ToBeModified_ModReqItem)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeModified_ModReqItem() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeModified-List-ModReq ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeModified-ModReqItemIEs} } -*/ - -struct E_RABs_ToBeModified_List_ModReq_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_ToBeModified_List_ModReq_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_ToBeModified_List_ModReq : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-ToBeModified-List-ModReq";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-RLC-Status CRITICALITY ignore EXTENSION RLC-Status PRESENCE optional }, - ... -} -*/ - -struct E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresentExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RLC_Status() { set(id_RLC_Status); type=1;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_RLC_Status)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_RLC_Status);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RLC_Status() { set(ignore); type=1;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - RLC_Status& select_id_RLC_Status() { return set(1); } - RLC_Status const* get_id_RLC_Status() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_RLC_Status()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(RLC_Status)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RLC_Status() { set(optional); type=1;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPpresent ::= SEQUENCE { - full-E-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters OPTIONAL, - max-MN-admit-E-RAB-Level-QoS-Parameters GBR-QosInformation OPTIONAL, - meNB-DL-GTP-TEIDatMCG GTPtunnelEndpoint OPTIONAL, - s1-UL-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPpresentExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresent : asn::sequence<5, 0, true, 5> -{ - static constexpr const char* name() {return "E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPpresent";} - using parent_t = asn::sequence<5, 0, true, 5>; - struct full_E_RAB_Level_QoS_Parameters_t : E_RAB_Level_QoS_Parameters - { - static constexpr const char* name() {return "full_E_RAB_Level_QoS_Parameters_t";} - using parent_t = E_RAB_Level_QoS_Parameters; - static constexpr bool optional = true; - - }; - full_E_RAB_Level_QoS_Parameters_t& set_full_E_RAB_Level_QoS_Parameters() { full_E_RAB_Level_QoS_Parameters.setpresent(true); return full_E_RAB_Level_QoS_Parameters;} - full_E_RAB_Level_QoS_Parameters_t const* get_full_E_RAB_Level_QoS_Parameters() const {return full_E_RAB_Level_QoS_Parameters.is_valid() ? &full_E_RAB_Level_QoS_Parameters : nullptr;} - struct max_MN_admit_E_RAB_Level_QoS_Parameters_t : GBR_QosInformation - { - static constexpr const char* name() {return "max_MN_admit_E_RAB_Level_QoS_Parameters_t";} - using parent_t = GBR_QosInformation; - static constexpr bool optional = true; - - }; - max_MN_admit_E_RAB_Level_QoS_Parameters_t& set_max_MN_admit_E_RAB_Level_QoS_Parameters() { max_MN_admit_E_RAB_Level_QoS_Parameters.setpresent(true); return max_MN_admit_E_RAB_Level_QoS_Parameters;} - max_MN_admit_E_RAB_Level_QoS_Parameters_t const* get_max_MN_admit_E_RAB_Level_QoS_Parameters() const {return max_MN_admit_E_RAB_Level_QoS_Parameters.is_valid() ? &max_MN_admit_E_RAB_Level_QoS_Parameters : nullptr;} - struct meNB_DL_GTP_TEIDatMCG_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "meNB_DL_GTP_TEIDatMCG_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - meNB_DL_GTP_TEIDatMCG_t& set_meNB_DL_GTP_TEIDatMCG() { meNB_DL_GTP_TEIDatMCG.setpresent(true); return meNB_DL_GTP_TEIDatMCG;} - meNB_DL_GTP_TEIDatMCG_t const* get_meNB_DL_GTP_TEIDatMCG() const {return meNB_DL_GTP_TEIDatMCG.is_valid() ? &meNB_DL_GTP_TEIDatMCG : nullptr;} - struct s1_UL_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "s1_UL_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - s1_UL_GTPtunnelEndpoint_t& set_s1_UL_GTPtunnelEndpoint() { s1_UL_GTPtunnelEndpoint.setpresent(true); return s1_UL_GTPtunnelEndpoint;} - s1_UL_GTPtunnelEndpoint_t const* get_s1_UL_GTPtunnelEndpoint() const {return s1_UL_GTPtunnelEndpoint.is_valid() ? &s1_UL_GTPtunnelEndpoint : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(full_E_RAB_Level_QoS_Parameters); - v(max_MN_admit_E_RAB_Level_QoS_Parameters); - v(meNB_DL_GTP_TEIDatMCG); - v(s1_UL_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(full_E_RAB_Level_QoS_Parameters); - v(max_MN_admit_E_RAB_Level_QoS_Parameters); - v(meNB_DL_GTP_TEIDatMCG); - v(s1_UL_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - void clear() - { - full_E_RAB_Level_QoS_Parameters.clear(); - max_MN_admit_E_RAB_Level_QoS_Parameters.clear(); - meNB_DL_GTP_TEIDatMCG.clear(); - s1_UL_GTPtunnelEndpoint.clear(); - iE_Extensions.clear(); - - }; - private: - full_E_RAB_Level_QoS_Parameters_t full_E_RAB_Level_QoS_Parameters; - max_MN_admit_E_RAB_Level_QoS_Parameters_t max_MN_admit_E_RAB_Level_QoS_Parameters; - meNB_DL_GTP_TEIDatMCG_t meNB_DL_GTP_TEIDatMCG; - s1_UL_GTPtunnelEndpoint_t s1_UL_GTPtunnelEndpoint; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPnotpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-uLpDCPSnLength CRITICALITY ignore EXTENSION PDCPSnLength PRESENCE optional}| - { ID id-dLPDCPSnLength CRITICALITY ignore EXTENSION PDCPSnLength PRESENCE optional}| - { ID id-secondarymeNBULGTPTEIDatPDCP CRITICALITY ignore EXTENSION GTPtunnelEndpoint PRESENCE optional}, - ... -} -*/ - -struct E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_uLpDCPSnLength() { set(id_uLpDCPSnLength); type=1;} - void select_id_dLPDCPSnLength() { set(id_dLPDCPSnLength); type=2;} - void select_id_secondarymeNBULGTPTEIDatPDCP() { set(id_secondarymeNBULGTPTEIDatPDCP); type=3;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_uLpDCPSnLength)) { type = 1; return true; } - else if(equal(id_dLPDCPSnLength)) { type = 2; return true; } - else if(equal(id_secondarymeNBULGTPTEIDatPDCP)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_uLpDCPSnLength);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_dLPDCPSnLength);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_secondarymeNBULGTPTEIDatPDCP);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_uLpDCPSnLength() { set(ignore); type=1;} - void select_id_dLPDCPSnLength() { set(ignore); type=2;} - void select_id_secondarymeNBULGTPTEIDatPDCP() { set(ignore); type=3;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - PDCPSnLength& select_id_uLpDCPSnLength() { return set(1); } - PDCPSnLength const* get_id_uLpDCPSnLength() const { return get(1); } - PDCPSnLength& select_id_dLPDCPSnLength() { return set(2); } - PDCPSnLength const* get_id_dLPDCPSnLength() const { return get(2); } - GTPtunnelEndpoint& select_id_secondarymeNBULGTPTEIDatPDCP() { return set(3); } - GTPtunnelEndpoint const* get_id_secondarymeNBULGTPTEIDatPDCP() const { return get(3); } - bool is_unknown() const { return type == 4; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_uLpDCPSnLength()); return true; - case 2: v(select_id_dLPDCPSnLength()); return true; - case 3: v(select_id_secondarymeNBULGTPTEIDatPDCP()); return true; - case 4: if(type != 4) {clear(); asn::base::set();} type = 4; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(GTPtunnelEndpoint)]; - char dummy2[sizeof(PDCPSnLength)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_uLpDCPSnLength() { set(optional); type=1;} - void select_id_dLPDCPSnLength() { set(optional); type=2;} - void select_id_secondarymeNBULGTPTEIDatPDCP() { set(optional); type=3;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPnotpresent ::= SEQUENCE { - requested-SCG-E-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters OPTIONAL, - meNB-UL-GTP-TEIDatPDCP GTPtunnelEndpoint OPTIONAL, - uL-Configuration ULConfiguration OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPnotpresentExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresent : asn::sequence<4, 0, true, 4> -{ - static constexpr const char* name() {return "E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPnotpresent";} - using parent_t = asn::sequence<4, 0, true, 4>; - struct requested_SCG_E_RAB_Level_QoS_Parameters_t : E_RAB_Level_QoS_Parameters - { - static constexpr const char* name() {return "requested_SCG_E_RAB_Level_QoS_Parameters_t";} - using parent_t = E_RAB_Level_QoS_Parameters; - static constexpr bool optional = true; - - }; - requested_SCG_E_RAB_Level_QoS_Parameters_t& set_requested_SCG_E_RAB_Level_QoS_Parameters() { requested_SCG_E_RAB_Level_QoS_Parameters.setpresent(true); return requested_SCG_E_RAB_Level_QoS_Parameters;} - requested_SCG_E_RAB_Level_QoS_Parameters_t const* get_requested_SCG_E_RAB_Level_QoS_Parameters() const {return requested_SCG_E_RAB_Level_QoS_Parameters.is_valid() ? &requested_SCG_E_RAB_Level_QoS_Parameters : nullptr;} - struct meNB_UL_GTP_TEIDatPDCP_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "meNB_UL_GTP_TEIDatPDCP_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - meNB_UL_GTP_TEIDatPDCP_t& set_meNB_UL_GTP_TEIDatPDCP() { meNB_UL_GTP_TEIDatPDCP.setpresent(true); return meNB_UL_GTP_TEIDatPDCP;} - meNB_UL_GTP_TEIDatPDCP_t const* get_meNB_UL_GTP_TEIDatPDCP() const {return meNB_UL_GTP_TEIDatPDCP.is_valid() ? &meNB_UL_GTP_TEIDatPDCP : nullptr;} - struct uL_Configuration_t : ULConfiguration - { - static constexpr const char* name() {return "uL_Configuration_t";} - using parent_t = ULConfiguration; - static constexpr bool optional = true; - - }; - uL_Configuration_t& set_uL_Configuration() { uL_Configuration.setpresent(true); return uL_Configuration;} - uL_Configuration_t const* get_uL_Configuration() const {return uL_Configuration.is_valid() ? &uL_Configuration : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(requested_SCG_E_RAB_Level_QoS_Parameters); - v(meNB_UL_GTP_TEIDatPDCP); - v(uL_Configuration); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(requested_SCG_E_RAB_Level_QoS_Parameters); - v(meNB_UL_GTP_TEIDatPDCP); - v(uL_Configuration); - v(iE_Extensions); - - }; - void clear() - { - requested_SCG_E_RAB_Level_QoS_Parameters.clear(); - meNB_UL_GTP_TEIDatPDCP.clear(); - uL_Configuration.clear(); - iE_Extensions.clear(); - - }; - private: - requested_SCG_E_RAB_Level_QoS_Parameters_t requested_SCG_E_RAB_Level_QoS_Parameters; - meNB_UL_GTP_TEIDatPDCP_t meNB_UL_GTP_TEIDatPDCP; - uL_Configuration_t uL_Configuration; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeModified-SgNBModReq-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_ToBeModified_SgNBModReq_ItemExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeModified-SgNBModReq-Item ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - en-DC-ResourceConfiguration EN-DC-ResourceConfiguration, - resource-configuration CHOICE { - sgNBPDCPpresent E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPpresent, - sgNBPDCPnotpresent E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPnotpresent, - ... - }, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeModified-SgNBModReq-ItemExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeModified_SgNBModReq_Item : asn::sequence<4, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-ToBeModified-SgNBModReq-Item";} - using parent_t = asn::sequence<4, 0, true, 1>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct en_DC_ResourceConfiguration_t : EN_DC_ResourceConfiguration - { - static constexpr const char* name() {return "en_DC_ResourceConfiguration_t";} - using parent_t = EN_DC_ResourceConfiguration; - - }; - en_DC_ResourceConfiguration_t& ref_en_DC_ResourceConfiguration() {return en_DC_ResourceConfiguration;} - en_DC_ResourceConfiguration_t const& ref_en_DC_ResourceConfiguration() const {return en_DC_ResourceConfiguration;} - struct resource_configuration_t : asn::choice<2, 0, true> - { - static constexpr const char* name() {return "resource_configuration_t";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~resource_configuration_t() {clear();} - struct sgNBPDCPpresent_t : E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresent - { - static constexpr const char* name() {return "sgNBPDCPpresent_t";} - using parent_t = E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresent; - - }; - struct sgNBPDCPnotpresent_t : E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresent - { - static constexpr const char* name() {return "sgNBPDCPnotpresent_t";} - using parent_t = E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresent; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - sgNBPDCPpresent_t& select_sgNBPDCPpresent() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - sgNBPDCPpresent_t const* get_sgNBPDCPpresent() const { if(get_index() == 1) { return &var.as();} return nullptr; } - sgNBPDCPnotpresent_t& select_sgNBPDCPnotpresent() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - sgNBPDCPnotpresent_t const* get_sgNBPDCPnotpresent() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(sgNBPDCPpresent_t)]; - char dummy2[sizeof(sgNBPDCPnotpresent_t)]; - - }; - asn::variant var; - index_type index {0}; - }; - resource_configuration_t& ref_resource_configuration() {return resource_configuration;} - resource_configuration_t const& ref_resource_configuration() const {return resource_configuration;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(en_DC_ResourceConfiguration); - v(resource_configuration); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(en_DC_ResourceConfiguration); - v(resource_configuration); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - en_DC_ResourceConfiguration.clear(); - resource_configuration.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - en_DC_ResourceConfiguration_t en_DC_ResourceConfiguration; - resource_configuration_t resource_configuration; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeModified-SgNBModReq-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-ToBeModified-SgNBModReq-Item CRITICALITY ignore TYPE E-RABs-ToBeModified-SgNBModReq-Item PRESENCE mandatory}, - ... -} -*/ - -struct E_RABs_ToBeModified_SgNBModReq_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeModified_SgNBModReq_Item() { set(id_E_RABs_ToBeModified_SgNBModReq_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_ToBeModified_SgNBModReq_Item)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_ToBeModified_SgNBModReq_Item);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeModified_SgNBModReq_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_ToBeModified_SgNBModReq_Item& select_id_E_RABs_ToBeModified_SgNBModReq_Item() { return set(1); } - E_RABs_ToBeModified_SgNBModReq_Item const* get_id_E_RABs_ToBeModified_SgNBModReq_Item() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_ToBeModified_SgNBModReq_Item()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_ToBeModified_SgNBModReq_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeModified_SgNBModReq_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeModified-SgNBModReq-List ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeModified-SgNBModReq-ItemIEs} } -*/ - -struct E_RABs_ToBeModified_SgNBModReq_List_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_ToBeModified_SgNBModReq_List_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_ToBeModified_SgNBModReq_List : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-ToBeModified-SgNBModReq-List";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-uLpDCPSnLength CRITICALITY ignore EXTENSION PDCPSnLength PRESENCE optional}| - { ID id-dLPDCPSnLength CRITICALITY ignore EXTENSION PDCPSnLength PRESENCE optional}| - { ID id-new-drb-ID-req CRITICALITY ignore EXTENSION NewDRBIDrequest PRESENCE optional}, - ... -} -*/ - -struct E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresentExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_uLpDCPSnLength() { set(id_uLpDCPSnLength); type=1;} - void select_id_dLPDCPSnLength() { set(id_dLPDCPSnLength); type=2;} - void select_id_new_drb_ID_req() { set(id_new_drb_ID_req); type=3;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_uLpDCPSnLength)) { type = 1; return true; } - else if(equal(id_dLPDCPSnLength)) { type = 2; return true; } - else if(equal(id_new_drb_ID_req)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_uLpDCPSnLength);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_dLPDCPSnLength);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_new_drb_ID_req);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_uLpDCPSnLength() { set(ignore); type=1;} - void select_id_dLPDCPSnLength() { set(ignore); type=2;} - void select_id_new_drb_ID_req() { set(ignore); type=3;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - PDCPSnLength& select_id_uLpDCPSnLength() { return set(1); } - PDCPSnLength const* get_id_uLpDCPSnLength() const { return get(1); } - PDCPSnLength& select_id_dLPDCPSnLength() { return set(2); } - PDCPSnLength const* get_id_dLPDCPSnLength() const { return get(2); } - NewDRBIDrequest& select_id_new_drb_ID_req() { return set(3); } - NewDRBIDrequest const* get_id_new_drb_ID_req() const { return get(3); } - bool is_unknown() const { return type == 4; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_uLpDCPSnLength()); return true; - case 2: v(select_id_dLPDCPSnLength()); return true; - case 3: v(select_id_new_drb_ID_req()); return true; - case 4: if(type != 4) {clear(); asn::base::set();} type = 4; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(NewDRBIDrequest)]; - char dummy2[sizeof(PDCPSnLength)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_uLpDCPSnLength() { set(optional); type=1;} - void select_id_dLPDCPSnLength() { set(optional); type=2;} - void select_id_new_drb_ID_req() { set(optional); type=3;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPpresent ::= SEQUENCE { - requested-MCG-E-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters OPTIONAL, - uL-Configuration ULConfiguration OPTIONAL, - sgNB-UL-GTP-TEIDatPDCP GTPtunnelEndpoint OPTIONAL, - s1-DL-GTP-TEIDatSgNB GTPtunnelEndpoint OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPpresentExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresent : asn::sequence<5, 0, true, 5> -{ - static constexpr const char* name() {return "E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPpresent";} - using parent_t = asn::sequence<5, 0, true, 5>; - struct requested_MCG_E_RAB_Level_QoS_Parameters_t : E_RAB_Level_QoS_Parameters - { - static constexpr const char* name() {return "requested_MCG_E_RAB_Level_QoS_Parameters_t";} - using parent_t = E_RAB_Level_QoS_Parameters; - static constexpr bool optional = true; - - }; - requested_MCG_E_RAB_Level_QoS_Parameters_t& set_requested_MCG_E_RAB_Level_QoS_Parameters() { requested_MCG_E_RAB_Level_QoS_Parameters.setpresent(true); return requested_MCG_E_RAB_Level_QoS_Parameters;} - requested_MCG_E_RAB_Level_QoS_Parameters_t const* get_requested_MCG_E_RAB_Level_QoS_Parameters() const {return requested_MCG_E_RAB_Level_QoS_Parameters.is_valid() ? &requested_MCG_E_RAB_Level_QoS_Parameters : nullptr;} - struct uL_Configuration_t : ULConfiguration - { - static constexpr const char* name() {return "uL_Configuration_t";} - using parent_t = ULConfiguration; - static constexpr bool optional = true; - - }; - uL_Configuration_t& set_uL_Configuration() { uL_Configuration.setpresent(true); return uL_Configuration;} - uL_Configuration_t const* get_uL_Configuration() const {return uL_Configuration.is_valid() ? &uL_Configuration : nullptr;} - struct sgNB_UL_GTP_TEIDatPDCP_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "sgNB_UL_GTP_TEIDatPDCP_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - sgNB_UL_GTP_TEIDatPDCP_t& set_sgNB_UL_GTP_TEIDatPDCP() { sgNB_UL_GTP_TEIDatPDCP.setpresent(true); return sgNB_UL_GTP_TEIDatPDCP;} - sgNB_UL_GTP_TEIDatPDCP_t const* get_sgNB_UL_GTP_TEIDatPDCP() const {return sgNB_UL_GTP_TEIDatPDCP.is_valid() ? &sgNB_UL_GTP_TEIDatPDCP : nullptr;} - struct s1_DL_GTP_TEIDatSgNB_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "s1_DL_GTP_TEIDatSgNB_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - s1_DL_GTP_TEIDatSgNB_t& set_s1_DL_GTP_TEIDatSgNB() { s1_DL_GTP_TEIDatSgNB.setpresent(true); return s1_DL_GTP_TEIDatSgNB;} - s1_DL_GTP_TEIDatSgNB_t const* get_s1_DL_GTP_TEIDatSgNB() const {return s1_DL_GTP_TEIDatSgNB.is_valid() ? &s1_DL_GTP_TEIDatSgNB : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(requested_MCG_E_RAB_Level_QoS_Parameters); - v(uL_Configuration); - v(sgNB_UL_GTP_TEIDatPDCP); - v(s1_DL_GTP_TEIDatSgNB); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(requested_MCG_E_RAB_Level_QoS_Parameters); - v(uL_Configuration); - v(sgNB_UL_GTP_TEIDatPDCP); - v(s1_DL_GTP_TEIDatSgNB); - v(iE_Extensions); - - }; - void clear() - { - requested_MCG_E_RAB_Level_QoS_Parameters.clear(); - uL_Configuration.clear(); - sgNB_UL_GTP_TEIDatPDCP.clear(); - s1_DL_GTP_TEIDatSgNB.clear(); - iE_Extensions.clear(); - - }; - private: - requested_MCG_E_RAB_Level_QoS_Parameters_t requested_MCG_E_RAB_Level_QoS_Parameters; - uL_Configuration_t uL_Configuration; - sgNB_UL_GTP_TEIDatPDCP_t sgNB_UL_GTP_TEIDatPDCP; - s1_DL_GTP_TEIDatSgNB_t s1_DL_GTP_TEIDatSgNB; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPnotpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-RLC-Status CRITICALITY ignore EXTENSION RLC-Status PRESENCE optional}| - { ID id-lCID CRITICALITY ignore EXTENSION LCID PRESENCE optional}, - ... -} -*/ - -struct E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresentExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_RLC_Status() { set(id_RLC_Status); type=1;} - void select_id_lCID() { set(id_lCID); type=2;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_RLC_Status)) { type = 1; return true; } - else if(equal(id_lCID)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_RLC_Status);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_lCID);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_RLC_Status() { set(ignore); type=1;} - void select_id_lCID() { set(ignore); type=2;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - RLC_Status& select_id_RLC_Status() { return set(1); } - RLC_Status const* get_id_RLC_Status() const { return get(1); } - LCID& select_id_lCID() { return set(2); } - LCID const* get_id_lCID() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_RLC_Status()); return true; - case 2: v(select_id_lCID()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(LCID)]; - char dummy2[sizeof(RLC_Status)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_RLC_Status() { set(optional); type=1;} - void select_id_lCID() { set(optional); type=2;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPnotpresent ::= SEQUENCE { - sgNB-DL-GTP-TEIDatSCG GTPtunnelEndpoint OPTIONAL, - secondary-sgNB-DL-GTP-TEIDatSCG GTPtunnelEndpoint OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPnotpresentExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresent : asn::sequence<3, 0, true, 3> -{ - static constexpr const char* name() {return "E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPnotpresent";} - using parent_t = asn::sequence<3, 0, true, 3>; - struct sgNB_DL_GTP_TEIDatSCG_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "sgNB_DL_GTP_TEIDatSCG_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - sgNB_DL_GTP_TEIDatSCG_t& set_sgNB_DL_GTP_TEIDatSCG() { sgNB_DL_GTP_TEIDatSCG.setpresent(true); return sgNB_DL_GTP_TEIDatSCG;} - sgNB_DL_GTP_TEIDatSCG_t const* get_sgNB_DL_GTP_TEIDatSCG() const {return sgNB_DL_GTP_TEIDatSCG.is_valid() ? &sgNB_DL_GTP_TEIDatSCG : nullptr;} - struct secondary_sgNB_DL_GTP_TEIDatSCG_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "secondary_sgNB_DL_GTP_TEIDatSCG_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - secondary_sgNB_DL_GTP_TEIDatSCG_t& set_secondary_sgNB_DL_GTP_TEIDatSCG() { secondary_sgNB_DL_GTP_TEIDatSCG.setpresent(true); return secondary_sgNB_DL_GTP_TEIDatSCG;} - secondary_sgNB_DL_GTP_TEIDatSCG_t const* get_secondary_sgNB_DL_GTP_TEIDatSCG() const {return secondary_sgNB_DL_GTP_TEIDatSCG.is_valid() ? &secondary_sgNB_DL_GTP_TEIDatSCG : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(sgNB_DL_GTP_TEIDatSCG); - v(secondary_sgNB_DL_GTP_TEIDatSCG); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(sgNB_DL_GTP_TEIDatSCG); - v(secondary_sgNB_DL_GTP_TEIDatSCG); - v(iE_Extensions); - - }; - void clear() - { - sgNB_DL_GTP_TEIDatSCG.clear(); - secondary_sgNB_DL_GTP_TEIDatSCG.clear(); - iE_Extensions.clear(); - - }; - private: - sgNB_DL_GTP_TEIDatSCG_t sgNB_DL_GTP_TEIDatSCG; - secondary_sgNB_DL_GTP_TEIDatSCG_t secondary_sgNB_DL_GTP_TEIDatSCG; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeModified-SgNBModReqd-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_ToBeModified_SgNBModReqd_ItemExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeModified-SgNBModReqd-Item ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - en-DC-ResourceConfiguration EN-DC-ResourceConfiguration, - resource-configuration CHOICE { - sgNBPDCPpresent E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPpresent, - sgNBPDCPnotpresent E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPnotpresent, - ... - }, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeModified-SgNBModReqd-ItemExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeModified_SgNBModReqd_Item : asn::sequence<4, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-ToBeModified-SgNBModReqd-Item";} - using parent_t = asn::sequence<4, 0, true, 1>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct en_DC_ResourceConfiguration_t : EN_DC_ResourceConfiguration - { - static constexpr const char* name() {return "en_DC_ResourceConfiguration_t";} - using parent_t = EN_DC_ResourceConfiguration; - - }; - en_DC_ResourceConfiguration_t& ref_en_DC_ResourceConfiguration() {return en_DC_ResourceConfiguration;} - en_DC_ResourceConfiguration_t const& ref_en_DC_ResourceConfiguration() const {return en_DC_ResourceConfiguration;} - struct resource_configuration_t : asn::choice<2, 0, true> - { - static constexpr const char* name() {return "resource_configuration_t";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~resource_configuration_t() {clear();} - struct sgNBPDCPpresent_t : E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresent - { - static constexpr const char* name() {return "sgNBPDCPpresent_t";} - using parent_t = E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresent; - - }; - struct sgNBPDCPnotpresent_t : E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresent - { - static constexpr const char* name() {return "sgNBPDCPnotpresent_t";} - using parent_t = E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresent; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - sgNBPDCPpresent_t& select_sgNBPDCPpresent() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - sgNBPDCPpresent_t const* get_sgNBPDCPpresent() const { if(get_index() == 1) { return &var.as();} return nullptr; } - sgNBPDCPnotpresent_t& select_sgNBPDCPnotpresent() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - sgNBPDCPnotpresent_t const* get_sgNBPDCPnotpresent() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(sgNBPDCPpresent_t)]; - char dummy2[sizeof(sgNBPDCPnotpresent_t)]; - - }; - asn::variant var; - index_type index {0}; - }; - resource_configuration_t& ref_resource_configuration() {return resource_configuration;} - resource_configuration_t const& ref_resource_configuration() const {return resource_configuration;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(en_DC_ResourceConfiguration); - v(resource_configuration); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(en_DC_ResourceConfiguration); - v(resource_configuration); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - en_DC_ResourceConfiguration.clear(); - resource_configuration.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - en_DC_ResourceConfiguration_t en_DC_ResourceConfiguration; - resource_configuration_t resource_configuration; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeModified-SgNBModReqd-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-ToBeModified-SgNBModReqd-Item CRITICALITY ignore TYPE E-RABs-ToBeModified-SgNBModReqd-Item PRESENCE mandatory }, - ... -} -*/ - -struct E_RABs_ToBeModified_SgNBModReqd_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeModified_SgNBModReqd_Item() { set(id_E_RABs_ToBeModified_SgNBModReqd_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_ToBeModified_SgNBModReqd_Item)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_ToBeModified_SgNBModReqd_Item);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeModified_SgNBModReqd_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_ToBeModified_SgNBModReqd_Item& select_id_E_RABs_ToBeModified_SgNBModReqd_Item() { return set(1); } - E_RABs_ToBeModified_SgNBModReqd_Item const* get_id_E_RABs_ToBeModified_SgNBModReqd_Item() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_ToBeModified_SgNBModReqd_Item()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_ToBeModified_SgNBModReqd_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeModified_SgNBModReqd_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeModified-SgNBModReqdList ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeModified-SgNBModReqd-ItemIEs} } -*/ - -struct E_RABs_ToBeModified_SgNBModReqdList_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_ToBeModified_SgNBModReqdList_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_ToBeModified_SgNBModReqdList : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-ToBeModified-SgNBModReqdList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-ToBeReleased-ModReqItem-SCG-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_ToBeReleased_ModReqItem_SCG_BearerExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeReleased-ModReqItem-SCG-Bearer ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - dL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, - uL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-ModReqItem-SCG-BearerExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeReleased_ModReqItem_SCG_Bearer : asn::sequence<4, 0, true, 3> -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-ModReqItem-SCG-Bearer";} - using parent_t = asn::sequence<4, 0, true, 3>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct dL_Forwarding_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "dL_Forwarding_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - dL_Forwarding_GTPtunnelEndpoint_t& set_dL_Forwarding_GTPtunnelEndpoint() { dL_Forwarding_GTPtunnelEndpoint.setpresent(true); return dL_Forwarding_GTPtunnelEndpoint;} - dL_Forwarding_GTPtunnelEndpoint_t const* get_dL_Forwarding_GTPtunnelEndpoint() const {return dL_Forwarding_GTPtunnelEndpoint.is_valid() ? &dL_Forwarding_GTPtunnelEndpoint : nullptr;} - struct uL_Forwarding_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "uL_Forwarding_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - uL_Forwarding_GTPtunnelEndpoint_t& set_uL_Forwarding_GTPtunnelEndpoint() { uL_Forwarding_GTPtunnelEndpoint.setpresent(true); return uL_Forwarding_GTPtunnelEndpoint;} - uL_Forwarding_GTPtunnelEndpoint_t const* get_uL_Forwarding_GTPtunnelEndpoint() const {return uL_Forwarding_GTPtunnelEndpoint.is_valid() ? &uL_Forwarding_GTPtunnelEndpoint : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(dL_Forwarding_GTPtunnelEndpoint); - v(uL_Forwarding_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(dL_Forwarding_GTPtunnelEndpoint); - v(uL_Forwarding_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - dL_Forwarding_GTPtunnelEndpoint.clear(); - uL_Forwarding_GTPtunnelEndpoint.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - dL_Forwarding_GTPtunnelEndpoint_t dL_Forwarding_GTPtunnelEndpoint; - uL_Forwarding_GTPtunnelEndpoint_t uL_Forwarding_GTPtunnelEndpoint; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeReleased-ModReqItem-Split-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_ToBeReleased_ModReqItem_Split_BearerExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeReleased-ModReqItem-Split-Bearer ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - dL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-ModReqItem-Split-BearerExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeReleased_ModReqItem_Split_Bearer : asn::sequence<3, 0, true, 2> -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-ModReqItem-Split-Bearer";} - using parent_t = asn::sequence<3, 0, true, 2>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct dL_Forwarding_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "dL_Forwarding_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - dL_Forwarding_GTPtunnelEndpoint_t& set_dL_Forwarding_GTPtunnelEndpoint() { dL_Forwarding_GTPtunnelEndpoint.setpresent(true); return dL_Forwarding_GTPtunnelEndpoint;} - dL_Forwarding_GTPtunnelEndpoint_t const* get_dL_Forwarding_GTPtunnelEndpoint() const {return dL_Forwarding_GTPtunnelEndpoint.is_valid() ? &dL_Forwarding_GTPtunnelEndpoint : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(dL_Forwarding_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(dL_Forwarding_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - dL_Forwarding_GTPtunnelEndpoint.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - dL_Forwarding_GTPtunnelEndpoint_t dL_Forwarding_GTPtunnelEndpoint; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeReleased-ModReqItem ::= CHOICE { - sCG-Bearer E-RABs-ToBeReleased-ModReqItem-SCG-Bearer, - split-Bearer E-RABs-ToBeReleased-ModReqItem-Split-Bearer, - ... -} -*/ - -struct E_RABs_ToBeReleased_ModReqItem : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-ModReqItem";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~E_RABs_ToBeReleased_ModReqItem() {clear();} - struct sCG_Bearer_t : E_RABs_ToBeReleased_ModReqItem_SCG_Bearer - { - static constexpr const char* name() {return "sCG_Bearer_t";} - using parent_t = E_RABs_ToBeReleased_ModReqItem_SCG_Bearer; - - }; - struct split_Bearer_t : E_RABs_ToBeReleased_ModReqItem_Split_Bearer - { - static constexpr const char* name() {return "split_Bearer_t";} - using parent_t = E_RABs_ToBeReleased_ModReqItem_Split_Bearer; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - sCG_Bearer_t& select_sCG_Bearer() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - sCG_Bearer_t const* get_sCG_Bearer() const { if(get_index() == 1) { return &var.as();} return nullptr; } - split_Bearer_t& select_split_Bearer() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - split_Bearer_t const* get_split_Bearer() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(sCG_Bearer_t)]; - char dummy2[sizeof(split_Bearer_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -E-RABs-ToBeReleased-ModReqItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-ToBeReleased-ModReqItem CRITICALITY ignore TYPE E-RABs-ToBeReleased-ModReqItem PRESENCE mandatory}, - ... -} -*/ - -struct E_RABs_ToBeReleased_ModReqItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeReleased_ModReqItem() { set(id_E_RABs_ToBeReleased_ModReqItem); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_ToBeReleased_ModReqItem)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_ToBeReleased_ModReqItem);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeReleased_ModReqItem() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_ToBeReleased_ModReqItem& select_id_E_RABs_ToBeReleased_ModReqItem() { return set(1); } - E_RABs_ToBeReleased_ModReqItem const* get_id_E_RABs_ToBeReleased_ModReqItem() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_ToBeReleased_ModReqItem()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_ToBeReleased_ModReqItem)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeReleased_ModReqItem() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeReleased-List-ModReq ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeReleased-ModReqItemIEs} } -*/ - -struct E_RABs_ToBeReleased_List_ModReq_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_ToBeReleased_List_ModReq_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_ToBeReleased_List_ModReq : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-List-ModReq";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-ToBeReleased-RelConfItem-SCG-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_ToBeReleased_RelConfItem_SCG_BearerExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeReleased-RelConfItem-SCG-Bearer ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - uL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, - dL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-RelConfItem-SCG-BearerExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeReleased_RelConfItem_SCG_Bearer : asn::sequence<4, 0, true, 3> -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-RelConfItem-SCG-Bearer";} - using parent_t = asn::sequence<4, 0, true, 3>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct uL_Forwarding_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "uL_Forwarding_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - uL_Forwarding_GTPtunnelEndpoint_t& set_uL_Forwarding_GTPtunnelEndpoint() { uL_Forwarding_GTPtunnelEndpoint.setpresent(true); return uL_Forwarding_GTPtunnelEndpoint;} - uL_Forwarding_GTPtunnelEndpoint_t const* get_uL_Forwarding_GTPtunnelEndpoint() const {return uL_Forwarding_GTPtunnelEndpoint.is_valid() ? &uL_Forwarding_GTPtunnelEndpoint : nullptr;} - struct dL_Forwarding_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "dL_Forwarding_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - dL_Forwarding_GTPtunnelEndpoint_t& set_dL_Forwarding_GTPtunnelEndpoint() { dL_Forwarding_GTPtunnelEndpoint.setpresent(true); return dL_Forwarding_GTPtunnelEndpoint;} - dL_Forwarding_GTPtunnelEndpoint_t const* get_dL_Forwarding_GTPtunnelEndpoint() const {return dL_Forwarding_GTPtunnelEndpoint.is_valid() ? &dL_Forwarding_GTPtunnelEndpoint : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(uL_Forwarding_GTPtunnelEndpoint); - v(dL_Forwarding_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(uL_Forwarding_GTPtunnelEndpoint); - v(dL_Forwarding_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - uL_Forwarding_GTPtunnelEndpoint.clear(); - dL_Forwarding_GTPtunnelEndpoint.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - uL_Forwarding_GTPtunnelEndpoint_t uL_Forwarding_GTPtunnelEndpoint; - dL_Forwarding_GTPtunnelEndpoint_t dL_Forwarding_GTPtunnelEndpoint; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeReleased-RelConfItem-Split-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_ToBeReleased_RelConfItem_Split_BearerExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeReleased-RelConfItem-Split-Bearer ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - dL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-RelConfItem-Split-BearerExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeReleased_RelConfItem_Split_Bearer : asn::sequence<3, 0, true, 2> -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-RelConfItem-Split-Bearer";} - using parent_t = asn::sequence<3, 0, true, 2>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct dL_Forwarding_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "dL_Forwarding_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - dL_Forwarding_GTPtunnelEndpoint_t& set_dL_Forwarding_GTPtunnelEndpoint() { dL_Forwarding_GTPtunnelEndpoint.setpresent(true); return dL_Forwarding_GTPtunnelEndpoint;} - dL_Forwarding_GTPtunnelEndpoint_t const* get_dL_Forwarding_GTPtunnelEndpoint() const {return dL_Forwarding_GTPtunnelEndpoint.is_valid() ? &dL_Forwarding_GTPtunnelEndpoint : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(dL_Forwarding_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(dL_Forwarding_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - dL_Forwarding_GTPtunnelEndpoint.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - dL_Forwarding_GTPtunnelEndpoint_t dL_Forwarding_GTPtunnelEndpoint; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeReleased-RelConfItem ::= CHOICE { - sCG-Bearer E-RABs-ToBeReleased-RelConfItem-SCG-Bearer, - split-Bearer E-RABs-ToBeReleased-RelConfItem-Split-Bearer, - ... -} -*/ - -struct E_RABs_ToBeReleased_RelConfItem : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-RelConfItem";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~E_RABs_ToBeReleased_RelConfItem() {clear();} - struct sCG_Bearer_t : E_RABs_ToBeReleased_RelConfItem_SCG_Bearer - { - static constexpr const char* name() {return "sCG_Bearer_t";} - using parent_t = E_RABs_ToBeReleased_RelConfItem_SCG_Bearer; - - }; - struct split_Bearer_t : E_RABs_ToBeReleased_RelConfItem_Split_Bearer - { - static constexpr const char* name() {return "split_Bearer_t";} - using parent_t = E_RABs_ToBeReleased_RelConfItem_Split_Bearer; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - sCG_Bearer_t& select_sCG_Bearer() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - sCG_Bearer_t const* get_sCG_Bearer() const { if(get_index() == 1) { return &var.as();} return nullptr; } - split_Bearer_t& select_split_Bearer() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - split_Bearer_t const* get_split_Bearer() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(sCG_Bearer_t)]; - char dummy2[sizeof(split_Bearer_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -E-RABs-ToBeReleased-RelConfItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-ToBeReleased-RelConfItem CRITICALITY ignore TYPE E-RABs-ToBeReleased-RelConfItem PRESENCE mandatory}, - ... -} -*/ - -struct E_RABs_ToBeReleased_RelConfItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeReleased_RelConfItem() { set(id_E_RABs_ToBeReleased_RelConfItem); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_ToBeReleased_RelConfItem)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_ToBeReleased_RelConfItem);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeReleased_RelConfItem() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_ToBeReleased_RelConfItem& select_id_E_RABs_ToBeReleased_RelConfItem() { return set(1); } - E_RABs_ToBeReleased_RelConfItem const* get_id_E_RABs_ToBeReleased_RelConfItem() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_ToBeReleased_RelConfItem()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_ToBeReleased_RelConfItem)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeReleased_RelConfItem() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeReleased-List-RelConf ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeReleased-RelConfItemIEs} } -*/ - -struct E_RABs_ToBeReleased_List_RelConf_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_ToBeReleased_List_RelConf_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_ToBeReleased_List_RelConf : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-List-RelConf";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-ToBeReleased-RelReqItem-SCG-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_ToBeReleased_RelReqItem_SCG_BearerExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeReleased-RelReqItem-SCG-Bearer ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - uL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, - dL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-RelReqItem-SCG-BearerExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeReleased_RelReqItem_SCG_Bearer : asn::sequence<4, 0, true, 3> -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-RelReqItem-SCG-Bearer";} - using parent_t = asn::sequence<4, 0, true, 3>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct uL_Forwarding_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "uL_Forwarding_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - uL_Forwarding_GTPtunnelEndpoint_t& set_uL_Forwarding_GTPtunnelEndpoint() { uL_Forwarding_GTPtunnelEndpoint.setpresent(true); return uL_Forwarding_GTPtunnelEndpoint;} - uL_Forwarding_GTPtunnelEndpoint_t const* get_uL_Forwarding_GTPtunnelEndpoint() const {return uL_Forwarding_GTPtunnelEndpoint.is_valid() ? &uL_Forwarding_GTPtunnelEndpoint : nullptr;} - struct dL_Forwarding_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "dL_Forwarding_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - dL_Forwarding_GTPtunnelEndpoint_t& set_dL_Forwarding_GTPtunnelEndpoint() { dL_Forwarding_GTPtunnelEndpoint.setpresent(true); return dL_Forwarding_GTPtunnelEndpoint;} - dL_Forwarding_GTPtunnelEndpoint_t const* get_dL_Forwarding_GTPtunnelEndpoint() const {return dL_Forwarding_GTPtunnelEndpoint.is_valid() ? &dL_Forwarding_GTPtunnelEndpoint : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(uL_Forwarding_GTPtunnelEndpoint); - v(dL_Forwarding_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(uL_Forwarding_GTPtunnelEndpoint); - v(dL_Forwarding_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - uL_Forwarding_GTPtunnelEndpoint.clear(); - dL_Forwarding_GTPtunnelEndpoint.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - uL_Forwarding_GTPtunnelEndpoint_t uL_Forwarding_GTPtunnelEndpoint; - dL_Forwarding_GTPtunnelEndpoint_t dL_Forwarding_GTPtunnelEndpoint; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeReleased-RelReqItem-Split-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_ToBeReleased_RelReqItem_Split_BearerExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeReleased-RelReqItem-Split-Bearer ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - dL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-RelReqItem-Split-BearerExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeReleased_RelReqItem_Split_Bearer : asn::sequence<3, 0, true, 2> -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-RelReqItem-Split-Bearer";} - using parent_t = asn::sequence<3, 0, true, 2>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct dL_Forwarding_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "dL_Forwarding_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - dL_Forwarding_GTPtunnelEndpoint_t& set_dL_Forwarding_GTPtunnelEndpoint() { dL_Forwarding_GTPtunnelEndpoint.setpresent(true); return dL_Forwarding_GTPtunnelEndpoint;} - dL_Forwarding_GTPtunnelEndpoint_t const* get_dL_Forwarding_GTPtunnelEndpoint() const {return dL_Forwarding_GTPtunnelEndpoint.is_valid() ? &dL_Forwarding_GTPtunnelEndpoint : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(dL_Forwarding_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(dL_Forwarding_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - dL_Forwarding_GTPtunnelEndpoint.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - dL_Forwarding_GTPtunnelEndpoint_t dL_Forwarding_GTPtunnelEndpoint; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeReleased-RelReqItem ::= CHOICE { - sCG-Bearer E-RABs-ToBeReleased-RelReqItem-SCG-Bearer, - split-Bearer E-RABs-ToBeReleased-RelReqItem-Split-Bearer, - ... -} -*/ - -struct E_RABs_ToBeReleased_RelReqItem : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-RelReqItem";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~E_RABs_ToBeReleased_RelReqItem() {clear();} - struct sCG_Bearer_t : E_RABs_ToBeReleased_RelReqItem_SCG_Bearer - { - static constexpr const char* name() {return "sCG_Bearer_t";} - using parent_t = E_RABs_ToBeReleased_RelReqItem_SCG_Bearer; - - }; - struct split_Bearer_t : E_RABs_ToBeReleased_RelReqItem_Split_Bearer - { - static constexpr const char* name() {return "split_Bearer_t";} - using parent_t = E_RABs_ToBeReleased_RelReqItem_Split_Bearer; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - sCG_Bearer_t& select_sCG_Bearer() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - sCG_Bearer_t const* get_sCG_Bearer() const { if(get_index() == 1) { return &var.as();} return nullptr; } - split_Bearer_t& select_split_Bearer() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - split_Bearer_t const* get_split_Bearer() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(sCG_Bearer_t)]; - char dummy2[sizeof(split_Bearer_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -E-RABs-ToBeReleased-RelReqItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-ToBeReleased-RelReqItem CRITICALITY ignore TYPE E-RABs-ToBeReleased-RelReqItem PRESENCE mandatory}, - ... -} -*/ - -struct E_RABs_ToBeReleased_RelReqItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeReleased_RelReqItem() { set(id_E_RABs_ToBeReleased_RelReqItem); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_ToBeReleased_RelReqItem)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_ToBeReleased_RelReqItem);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeReleased_RelReqItem() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_ToBeReleased_RelReqItem& select_id_E_RABs_ToBeReleased_RelReqItem() { return set(1); } - E_RABs_ToBeReleased_RelReqItem const* get_id_E_RABs_ToBeReleased_RelReqItem() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_ToBeReleased_RelReqItem()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_ToBeReleased_RelReqItem)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeReleased_RelReqItem() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeReleased-List-RelReq ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeReleased-RelReqItemIEs} } -*/ - -struct E_RABs_ToBeReleased_List_RelReq_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_ToBeReleased_List_RelReq_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_ToBeReleased_List_RelReq : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-List-RelReq";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-ToBeReleased-ModReqdItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_ToBeReleased_ModReqdItemExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeReleased-ModReqdItem ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - cause Cause, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-ModReqdItemExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeReleased_ModReqdItem : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-ModReqdItem";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct cause_t : Cause - { - static constexpr const char* name() {return "cause_t";} - using parent_t = Cause; - - }; - cause_t& ref_cause() {return cause;} - cause_t const& ref_cause() const {return cause;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(cause); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(cause); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - cause.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - cause_t cause; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeReleased-ModReqdItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-ToBeReleased-ModReqdItem CRITICALITY ignore TYPE E-RABs-ToBeReleased-ModReqdItem PRESENCE mandatory }, - ... -} -*/ - -struct E_RABs_ToBeReleased_ModReqdItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeReleased_ModReqdItem() { set(id_E_RABs_ToBeReleased_ModReqdItem); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_ToBeReleased_ModReqdItem)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_ToBeReleased_ModReqdItem);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeReleased_ModReqdItem() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_ToBeReleased_ModReqdItem& select_id_E_RABs_ToBeReleased_ModReqdItem() { return set(1); } - E_RABs_ToBeReleased_ModReqdItem const* get_id_E_RABs_ToBeReleased_ModReqdItem() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_ToBeReleased_ModReqdItem()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_ToBeReleased_ModReqdItem)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeReleased_ModReqdItem() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeReleased-ModReqd ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeReleased-ModReqdItemIEs} } -*/ - -struct E_RABs_ToBeReleased_ModReqd_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_ToBeReleased_ModReqd_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_ToBeReleased_ModReqd : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-ModReqd";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresentExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPpresent ::= SEQUENCE { - uL-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, - dL-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPpresentExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresent : asn::sequence<3, 0, true, 3> -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPpresent";} - using parent_t = asn::sequence<3, 0, true, 3>; - struct uL_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "uL_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - uL_GTPtunnelEndpoint_t& set_uL_GTPtunnelEndpoint() { uL_GTPtunnelEndpoint.setpresent(true); return uL_GTPtunnelEndpoint;} - uL_GTPtunnelEndpoint_t const* get_uL_GTPtunnelEndpoint() const {return uL_GTPtunnelEndpoint.is_valid() ? &uL_GTPtunnelEndpoint : nullptr;} - struct dL_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "dL_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - dL_GTPtunnelEndpoint_t& set_dL_GTPtunnelEndpoint() { dL_GTPtunnelEndpoint.setpresent(true); return dL_GTPtunnelEndpoint;} - dL_GTPtunnelEndpoint_t const* get_dL_GTPtunnelEndpoint() const {return dL_GTPtunnelEndpoint.is_valid() ? &dL_GTPtunnelEndpoint : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(uL_GTPtunnelEndpoint); - v(dL_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(uL_GTPtunnelEndpoint); - v(dL_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - void clear() - { - uL_GTPtunnelEndpoint.clear(); - dL_GTPtunnelEndpoint.clear(); - iE_Extensions.clear(); - - }; - private: - uL_GTPtunnelEndpoint_t uL_GTPtunnelEndpoint; - dL_GTPtunnelEndpoint_t dL_GTPtunnelEndpoint; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPnotpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresentExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPnotpresent ::= SEQUENCE { - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPnotpresentExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresent : asn::sequence<1, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPnotpresent";} - using parent_t = asn::sequence<1, 0, true, 1>; - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(iE_Extensions); - - }; - void clear() - { - iE_Extensions.clear(); - - }; - private: - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeReleased-SgNBChaConf-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBChaConf_ItemExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeReleased-SgNBChaConf-Item ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - en-DC-ResourceConfiguration EN-DC-ResourceConfiguration, - resource-configuration CHOICE { - sgNBPDCPpresent E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPpresent, - sgNBPDCPnotpresent E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPnotpresent, - ... - }, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-SgNBChaConf-ItemExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBChaConf_Item : asn::sequence<4, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-SgNBChaConf-Item";} - using parent_t = asn::sequence<4, 0, true, 1>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct en_DC_ResourceConfiguration_t : EN_DC_ResourceConfiguration - { - static constexpr const char* name() {return "en_DC_ResourceConfiguration_t";} - using parent_t = EN_DC_ResourceConfiguration; - - }; - en_DC_ResourceConfiguration_t& ref_en_DC_ResourceConfiguration() {return en_DC_ResourceConfiguration;} - en_DC_ResourceConfiguration_t const& ref_en_DC_ResourceConfiguration() const {return en_DC_ResourceConfiguration;} - struct resource_configuration_t : asn::choice<2, 0, true> - { - static constexpr const char* name() {return "resource_configuration_t";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~resource_configuration_t() {clear();} - struct sgNBPDCPpresent_t : E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresent - { - static constexpr const char* name() {return "sgNBPDCPpresent_t";} - using parent_t = E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresent; - - }; - struct sgNBPDCPnotpresent_t : E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresent - { - static constexpr const char* name() {return "sgNBPDCPnotpresent_t";} - using parent_t = E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresent; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - sgNBPDCPpresent_t& select_sgNBPDCPpresent() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - sgNBPDCPpresent_t const* get_sgNBPDCPpresent() const { if(get_index() == 1) { return &var.as();} return nullptr; } - sgNBPDCPnotpresent_t& select_sgNBPDCPnotpresent() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - sgNBPDCPnotpresent_t const* get_sgNBPDCPnotpresent() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(sgNBPDCPpresent_t)]; - char dummy2[sizeof(sgNBPDCPnotpresent_t)]; - - }; - asn::variant var; - index_type index {0}; - }; - resource_configuration_t& ref_resource_configuration() {return resource_configuration;} - resource_configuration_t const& ref_resource_configuration() const {return resource_configuration;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(en_DC_ResourceConfiguration); - v(resource_configuration); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(en_DC_ResourceConfiguration); - v(resource_configuration); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - en_DC_ResourceConfiguration.clear(); - resource_configuration.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - en_DC_ResourceConfiguration_t en_DC_ResourceConfiguration; - resource_configuration_t resource_configuration; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeReleased-SgNBChaConf-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-ToBeReleased-SgNBChaConf-Item CRITICALITY ignore TYPE E-RABs-ToBeReleased-SgNBChaConf-Item PRESENCE mandatory}, - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBChaConf_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeReleased_SgNBChaConf_Item() { set(id_E_RABs_ToBeReleased_SgNBChaConf_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_ToBeReleased_SgNBChaConf_Item)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_ToBeReleased_SgNBChaConf_Item);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeReleased_SgNBChaConf_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_ToBeReleased_SgNBChaConf_Item& select_id_E_RABs_ToBeReleased_SgNBChaConf_Item() { return set(1); } - E_RABs_ToBeReleased_SgNBChaConf_Item const* get_id_E_RABs_ToBeReleased_SgNBChaConf_Item() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_ToBeReleased_SgNBChaConf_Item()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_ToBeReleased_SgNBChaConf_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeReleased_SgNBChaConf_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeReleased-SgNBChaConfList ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeReleased-SgNBChaConf-ItemIEs} } -*/ - -struct E_RABs_ToBeReleased_SgNBChaConfList_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_ToBeReleased_SgNBChaConfList_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_ToBeReleased_SgNBChaConfList : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-SgNBChaConfList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresentExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPpresent ::= SEQUENCE { - dL-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, - uL-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPpresentExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresent : asn::sequence<3, 0, true, 3> -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPpresent";} - using parent_t = asn::sequence<3, 0, true, 3>; - struct dL_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "dL_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - dL_GTPtunnelEndpoint_t& set_dL_GTPtunnelEndpoint() { dL_GTPtunnelEndpoint.setpresent(true); return dL_GTPtunnelEndpoint;} - dL_GTPtunnelEndpoint_t const* get_dL_GTPtunnelEndpoint() const {return dL_GTPtunnelEndpoint.is_valid() ? &dL_GTPtunnelEndpoint : nullptr;} - struct uL_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "uL_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - uL_GTPtunnelEndpoint_t& set_uL_GTPtunnelEndpoint() { uL_GTPtunnelEndpoint.setpresent(true); return uL_GTPtunnelEndpoint;} - uL_GTPtunnelEndpoint_t const* get_uL_GTPtunnelEndpoint() const {return uL_GTPtunnelEndpoint.is_valid() ? &uL_GTPtunnelEndpoint : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(dL_GTPtunnelEndpoint); - v(uL_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(dL_GTPtunnelEndpoint); - v(uL_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - void clear() - { - dL_GTPtunnelEndpoint.clear(); - uL_GTPtunnelEndpoint.clear(); - iE_Extensions.clear(); - - }; - private: - dL_GTPtunnelEndpoint_t dL_GTPtunnelEndpoint; - uL_GTPtunnelEndpoint_t uL_GTPtunnelEndpoint; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPnotpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPnotpresent ::= SEQUENCE { - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPnotpresentExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresent : asn::sequence<1, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPnotpresent";} - using parent_t = asn::sequence<1, 0, true, 1>; - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(iE_Extensions); - - }; - void clear() - { - iE_Extensions.clear(); - - }; - private: - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeReleased-SgNBModReq-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBModReq_ItemExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeReleased-SgNBModReq-Item ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - en-DC-ResourceConfiguration EN-DC-ResourceConfiguration, - resource-configuration CHOICE { - sgNBPDCPpresent E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPpresent, - sgNBPDCPnotpresent E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPnotpresent, - ... - }, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-SgNBModReq-ItemExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBModReq_Item : asn::sequence<4, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-SgNBModReq-Item";} - using parent_t = asn::sequence<4, 0, true, 1>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct en_DC_ResourceConfiguration_t : EN_DC_ResourceConfiguration - { - static constexpr const char* name() {return "en_DC_ResourceConfiguration_t";} - using parent_t = EN_DC_ResourceConfiguration; - - }; - en_DC_ResourceConfiguration_t& ref_en_DC_ResourceConfiguration() {return en_DC_ResourceConfiguration;} - en_DC_ResourceConfiguration_t const& ref_en_DC_ResourceConfiguration() const {return en_DC_ResourceConfiguration;} - struct resource_configuration_t : asn::choice<2, 0, true> - { - static constexpr const char* name() {return "resource_configuration_t";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~resource_configuration_t() {clear();} - struct sgNBPDCPpresent_t : E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresent - { - static constexpr const char* name() {return "sgNBPDCPpresent_t";} - using parent_t = E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresent; - - }; - struct sgNBPDCPnotpresent_t : E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresent - { - static constexpr const char* name() {return "sgNBPDCPnotpresent_t";} - using parent_t = E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresent; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - sgNBPDCPpresent_t& select_sgNBPDCPpresent() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - sgNBPDCPpresent_t const* get_sgNBPDCPpresent() const { if(get_index() == 1) { return &var.as();} return nullptr; } - sgNBPDCPnotpresent_t& select_sgNBPDCPnotpresent() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - sgNBPDCPnotpresent_t const* get_sgNBPDCPnotpresent() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(sgNBPDCPpresent_t)]; - char dummy2[sizeof(sgNBPDCPnotpresent_t)]; - - }; - asn::variant var; - index_type index {0}; - }; - resource_configuration_t& ref_resource_configuration() {return resource_configuration;} - resource_configuration_t const& ref_resource_configuration() const {return resource_configuration;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(en_DC_ResourceConfiguration); - v(resource_configuration); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(en_DC_ResourceConfiguration); - v(resource_configuration); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - en_DC_ResourceConfiguration.clear(); - resource_configuration.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - en_DC_ResourceConfiguration_t en_DC_ResourceConfiguration; - resource_configuration_t resource_configuration; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeReleased-SgNBModReq-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-ToBeReleased-SgNBModReq-Item CRITICALITY ignore TYPE E-RABs-ToBeReleased-SgNBModReq-Item PRESENCE mandatory}, - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBModReq_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeReleased_SgNBModReq_Item() { set(id_E_RABs_ToBeReleased_SgNBModReq_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_ToBeReleased_SgNBModReq_Item)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_ToBeReleased_SgNBModReq_Item);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeReleased_SgNBModReq_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_ToBeReleased_SgNBModReq_Item& select_id_E_RABs_ToBeReleased_SgNBModReq_Item() { return set(1); } - E_RABs_ToBeReleased_SgNBModReq_Item const* get_id_E_RABs_ToBeReleased_SgNBModReq_Item() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_ToBeReleased_SgNBModReq_Item()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_ToBeReleased_SgNBModReq_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeReleased_SgNBModReq_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeReleased-SgNBModReq-List ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeReleased-SgNBModReq-ItemIEs} } -*/ - -struct E_RABs_ToBeReleased_SgNBModReq_List_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_ToBeReleased_SgNBModReq_List_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_ToBeReleased_SgNBModReq_List : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-SgNBModReq-List";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-ToBeReleased-SgNBModReqd-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-RLCMode-transferred CRITICALITY ignore EXTENSION RLCMode PRESENCE optional}, - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBModReqd_ItemExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RLCMode_transferred() { set(id_RLCMode_transferred); type=1;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_RLCMode_transferred)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_RLCMode_transferred);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RLCMode_transferred() { set(ignore); type=1;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - RLCMode& select_id_RLCMode_transferred() { return set(1); } - RLCMode const* get_id_RLCMode_transferred() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_RLCMode_transferred()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(RLCMode)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RLCMode_transferred() { set(optional); type=1;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeReleased-SgNBModReqd-Item ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - cause Cause, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-SgNBModReqd-ItemExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBModReqd_Item : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-SgNBModReqd-Item";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct cause_t : Cause - { - static constexpr const char* name() {return "cause_t";} - using parent_t = Cause; - - }; - cause_t& ref_cause() {return cause;} - cause_t const& ref_cause() const {return cause;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(cause); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(cause); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - cause.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - cause_t cause; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeReleased-SgNBModReqd-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-ToBeReleased-SgNBModReqd-Item CRITICALITY ignore TYPE E-RABs-ToBeReleased-SgNBModReqd-Item PRESENCE mandatory }, - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBModReqd_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeReleased_SgNBModReqd_Item() { set(id_E_RABs_ToBeReleased_SgNBModReqd_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_ToBeReleased_SgNBModReqd_Item)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_ToBeReleased_SgNBModReqd_Item);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeReleased_SgNBModReqd_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_ToBeReleased_SgNBModReqd_Item& select_id_E_RABs_ToBeReleased_SgNBModReqd_Item() { return set(1); } - E_RABs_ToBeReleased_SgNBModReqd_Item const* get_id_E_RABs_ToBeReleased_SgNBModReqd_Item() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_ToBeReleased_SgNBModReqd_Item()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_ToBeReleased_SgNBModReqd_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeReleased_SgNBModReqd_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeReleased-SgNBModReqdList ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeReleased-SgNBModReqd-ItemIEs} } -*/ - -struct E_RABs_ToBeReleased_SgNBModReqdList_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_ToBeReleased_SgNBModReqdList_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_ToBeReleased_SgNBModReqdList : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-SgNBModReqdList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresentExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPpresent ::= SEQUENCE { - uL-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, - dL-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPpresentExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresent : asn::sequence<3, 0, true, 3> -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPpresent";} - using parent_t = asn::sequence<3, 0, true, 3>; - struct uL_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "uL_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - uL_GTPtunnelEndpoint_t& set_uL_GTPtunnelEndpoint() { uL_GTPtunnelEndpoint.setpresent(true); return uL_GTPtunnelEndpoint;} - uL_GTPtunnelEndpoint_t const* get_uL_GTPtunnelEndpoint() const {return uL_GTPtunnelEndpoint.is_valid() ? &uL_GTPtunnelEndpoint : nullptr;} - struct dL_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "dL_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - dL_GTPtunnelEndpoint_t& set_dL_GTPtunnelEndpoint() { dL_GTPtunnelEndpoint.setpresent(true); return dL_GTPtunnelEndpoint;} - dL_GTPtunnelEndpoint_t const* get_dL_GTPtunnelEndpoint() const {return dL_GTPtunnelEndpoint.is_valid() ? &dL_GTPtunnelEndpoint : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(uL_GTPtunnelEndpoint); - v(dL_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(uL_GTPtunnelEndpoint); - v(dL_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - void clear() - { - uL_GTPtunnelEndpoint.clear(); - dL_GTPtunnelEndpoint.clear(); - iE_Extensions.clear(); - - }; - private: - uL_GTPtunnelEndpoint_t uL_GTPtunnelEndpoint; - dL_GTPtunnelEndpoint_t dL_GTPtunnelEndpoint; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPnotpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresentExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPnotpresent ::= SEQUENCE { - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPnotpresentExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresent : asn::sequence<1, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPnotpresent";} - using parent_t = asn::sequence<1, 0, true, 1>; - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(iE_Extensions); - - }; - void clear() - { - iE_Extensions.clear(); - - }; - private: - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeReleased-SgNBRelConf-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBRelConf_ItemExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeReleased-SgNBRelConf-Item ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - en-DC-ResourceConfiguration EN-DC-ResourceConfiguration, - resource-configuration CHOICE { - sgNBPDCPpresent E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPpresent, - sgNBPDCPnotpresent E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPnotpresent, - ... - }, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-SgNBRelConf-ItemExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBRelConf_Item : asn::sequence<4, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-SgNBRelConf-Item";} - using parent_t = asn::sequence<4, 0, true, 1>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct en_DC_ResourceConfiguration_t : EN_DC_ResourceConfiguration - { - static constexpr const char* name() {return "en_DC_ResourceConfiguration_t";} - using parent_t = EN_DC_ResourceConfiguration; - - }; - en_DC_ResourceConfiguration_t& ref_en_DC_ResourceConfiguration() {return en_DC_ResourceConfiguration;} - en_DC_ResourceConfiguration_t const& ref_en_DC_ResourceConfiguration() const {return en_DC_ResourceConfiguration;} - struct resource_configuration_t : asn::choice<2, 0, true> - { - static constexpr const char* name() {return "resource_configuration_t";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~resource_configuration_t() {clear();} - struct sgNBPDCPpresent_t : E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresent - { - static constexpr const char* name() {return "sgNBPDCPpresent_t";} - using parent_t = E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresent; - - }; - struct sgNBPDCPnotpresent_t : E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresent - { - static constexpr const char* name() {return "sgNBPDCPnotpresent_t";} - using parent_t = E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresent; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - sgNBPDCPpresent_t& select_sgNBPDCPpresent() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - sgNBPDCPpresent_t const* get_sgNBPDCPpresent() const { if(get_index() == 1) { return &var.as();} return nullptr; } - sgNBPDCPnotpresent_t& select_sgNBPDCPnotpresent() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - sgNBPDCPnotpresent_t const* get_sgNBPDCPnotpresent() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(sgNBPDCPpresent_t)]; - char dummy2[sizeof(sgNBPDCPnotpresent_t)]; - - }; - asn::variant var; - index_type index {0}; - }; - resource_configuration_t& ref_resource_configuration() {return resource_configuration;} - resource_configuration_t const& ref_resource_configuration() const {return resource_configuration;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(en_DC_ResourceConfiguration); - v(resource_configuration); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(en_DC_ResourceConfiguration); - v(resource_configuration); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - en_DC_ResourceConfiguration.clear(); - resource_configuration.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - en_DC_ResourceConfiguration_t en_DC_ResourceConfiguration; - resource_configuration_t resource_configuration; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeReleased-SgNBRelConf-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-ToBeReleased-SgNBRelConf-Item CRITICALITY ignore TYPE E-RABs-ToBeReleased-SgNBRelConf-Item PRESENCE mandatory}, - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBRelConf_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeReleased_SgNBRelConf_Item() { set(id_E_RABs_ToBeReleased_SgNBRelConf_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_ToBeReleased_SgNBRelConf_Item)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_ToBeReleased_SgNBRelConf_Item);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeReleased_SgNBRelConf_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_ToBeReleased_SgNBRelConf_Item& select_id_E_RABs_ToBeReleased_SgNBRelConf_Item() { return set(1); } - E_RABs_ToBeReleased_SgNBRelConf_Item const* get_id_E_RABs_ToBeReleased_SgNBRelConf_Item() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_ToBeReleased_SgNBRelConf_Item()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_ToBeReleased_SgNBRelConf_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeReleased_SgNBRelConf_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeReleased-SgNBRelConfList ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeReleased-SgNBRelConf-ItemIEs} } -*/ - -struct E_RABs_ToBeReleased_SgNBRelConfList_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_ToBeReleased_SgNBRelConfList_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_ToBeReleased_SgNBRelConfList : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-SgNBRelConfList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresentExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPpresent ::= SEQUENCE { - uL-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, - dL-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPpresentExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresent : asn::sequence<3, 0, true, 3> -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPpresent";} - using parent_t = asn::sequence<3, 0, true, 3>; - struct uL_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "uL_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - uL_GTPtunnelEndpoint_t& set_uL_GTPtunnelEndpoint() { uL_GTPtunnelEndpoint.setpresent(true); return uL_GTPtunnelEndpoint;} - uL_GTPtunnelEndpoint_t const* get_uL_GTPtunnelEndpoint() const {return uL_GTPtunnelEndpoint.is_valid() ? &uL_GTPtunnelEndpoint : nullptr;} - struct dL_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "dL_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - dL_GTPtunnelEndpoint_t& set_dL_GTPtunnelEndpoint() { dL_GTPtunnelEndpoint.setpresent(true); return dL_GTPtunnelEndpoint;} - dL_GTPtunnelEndpoint_t const* get_dL_GTPtunnelEndpoint() const {return dL_GTPtunnelEndpoint.is_valid() ? &dL_GTPtunnelEndpoint : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(uL_GTPtunnelEndpoint); - v(dL_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(uL_GTPtunnelEndpoint); - v(dL_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - void clear() - { - uL_GTPtunnelEndpoint.clear(); - dL_GTPtunnelEndpoint.clear(); - iE_Extensions.clear(); - - }; - private: - uL_GTPtunnelEndpoint_t uL_GTPtunnelEndpoint; - dL_GTPtunnelEndpoint_t dL_GTPtunnelEndpoint; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPnotpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresentExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPnotpresent ::= SEQUENCE { - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPnotpresentExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresent : asn::sequence<1, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPnotpresent";} - using parent_t = asn::sequence<1, 0, true, 1>; - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(iE_Extensions); - - }; - void clear() - { - iE_Extensions.clear(); - - }; - private: - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeReleased-SgNBRelReq-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBRelReq_ItemExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeReleased-SgNBRelReq-Item ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - en-DC-ResourceConfiguration EN-DC-ResourceConfiguration, - resource-configuration CHOICE { - sgNBPDCPpresent E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPpresent, - sgNBPDCPnotpresent E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPnotpresent, - ... - }, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-SgNBRelReq-ItemExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBRelReq_Item : asn::sequence<4, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-SgNBRelReq-Item";} - using parent_t = asn::sequence<4, 0, true, 1>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct en_DC_ResourceConfiguration_t : EN_DC_ResourceConfiguration - { - static constexpr const char* name() {return "en_DC_ResourceConfiguration_t";} - using parent_t = EN_DC_ResourceConfiguration; - - }; - en_DC_ResourceConfiguration_t& ref_en_DC_ResourceConfiguration() {return en_DC_ResourceConfiguration;} - en_DC_ResourceConfiguration_t const& ref_en_DC_ResourceConfiguration() const {return en_DC_ResourceConfiguration;} - struct resource_configuration_t : asn::choice<2, 0, true> - { - static constexpr const char* name() {return "resource_configuration_t";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~resource_configuration_t() {clear();} - struct sgNBPDCPpresent_t : E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresent - { - static constexpr const char* name() {return "sgNBPDCPpresent_t";} - using parent_t = E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresent; - - }; - struct sgNBPDCPnotpresent_t : E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresent - { - static constexpr const char* name() {return "sgNBPDCPnotpresent_t";} - using parent_t = E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresent; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - sgNBPDCPpresent_t& select_sgNBPDCPpresent() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - sgNBPDCPpresent_t const* get_sgNBPDCPpresent() const { if(get_index() == 1) { return &var.as();} return nullptr; } - sgNBPDCPnotpresent_t& select_sgNBPDCPnotpresent() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - sgNBPDCPnotpresent_t const* get_sgNBPDCPnotpresent() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(sgNBPDCPpresent_t)]; - char dummy2[sizeof(sgNBPDCPnotpresent_t)]; - - }; - asn::variant var; - index_type index {0}; - }; - resource_configuration_t& ref_resource_configuration() {return resource_configuration;} - resource_configuration_t const& ref_resource_configuration() const {return resource_configuration;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(en_DC_ResourceConfiguration); - v(resource_configuration); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(en_DC_ResourceConfiguration); - v(resource_configuration); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - en_DC_ResourceConfiguration.clear(); - resource_configuration.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - en_DC_ResourceConfiguration_t en_DC_ResourceConfiguration; - resource_configuration_t resource_configuration; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeReleased-SgNBRelReq-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-ToBeReleased-SgNBRelReq-Item CRITICALITY ignore TYPE E-RABs-ToBeReleased-SgNBRelReq-Item PRESENCE mandatory}, - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBRelReq_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeReleased_SgNBRelReq_Item() { set(id_E_RABs_ToBeReleased_SgNBRelReq_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_ToBeReleased_SgNBRelReq_Item)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_ToBeReleased_SgNBRelReq_Item);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeReleased_SgNBRelReq_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_ToBeReleased_SgNBRelReq_Item& select_id_E_RABs_ToBeReleased_SgNBRelReq_Item() { return set(1); } - E_RABs_ToBeReleased_SgNBRelReq_Item const* get_id_E_RABs_ToBeReleased_SgNBRelReq_Item() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_ToBeReleased_SgNBRelReq_Item()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_ToBeReleased_SgNBRelReq_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeReleased_SgNBRelReq_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeReleased-SgNBRelReqList ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeReleased-SgNBRelReq-ItemIEs} } -*/ - -struct E_RABs_ToBeReleased_SgNBRelReqList_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_ToBeReleased_SgNBRelReqList_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_ToBeReleased_SgNBRelReqList : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-SgNBRelReqList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-ToBeReleased-SgNBRelReqd-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBRelReqd_ItemExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeReleased-SgNBRelReqd-Item ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - rlc-Mode-transferred RLCMode, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-SgNBRelReqd-ItemExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBRelReqd_Item : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-SgNBRelReqd-Item";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct rlc_Mode_transferred_t : RLCMode - { - static constexpr const char* name() {return "rlc_Mode_transferred_t";} - using parent_t = RLCMode; - - }; - rlc_Mode_transferred_t& ref_rlc_Mode_transferred() {return rlc_Mode_transferred;} - rlc_Mode_transferred_t const& ref_rlc_Mode_transferred() const {return rlc_Mode_transferred;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(rlc_Mode_transferred); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(rlc_Mode_transferred); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - rlc_Mode_transferred.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - rlc_Mode_transferred_t rlc_Mode_transferred; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeReleased-SgNBRelReqd-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-ToBeReleased-SgNBRelReqd-Item CRITICALITY ignore TYPE E-RABs-ToBeReleased-SgNBRelReqd-Item PRESENCE mandatory}, - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBRelReqd_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeReleased_SgNBRelReqd_Item() { set(id_E_RABs_ToBeReleased_SgNBRelReqd_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_ToBeReleased_SgNBRelReqd_Item)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_ToBeReleased_SgNBRelReqd_Item);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeReleased_SgNBRelReqd_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_ToBeReleased_SgNBRelReqd_Item& select_id_E_RABs_ToBeReleased_SgNBRelReqd_Item() { return set(1); } - E_RABs_ToBeReleased_SgNBRelReqd_Item const* get_id_E_RABs_ToBeReleased_SgNBRelReqd_Item() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_ToBeReleased_SgNBRelReqd_Item()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_ToBeReleased_SgNBRelReqd_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeReleased_SgNBRelReqd_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeReleased-SgNBRelReqdList ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeReleased-SgNBRelReqd-ItemIEs} } -*/ - -struct E_RABs_ToBeReleased_SgNBRelReqdList_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_ToBeReleased_SgNBRelReqdList_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_ToBeReleased_SgNBRelReqdList : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-SgNBRelReqdList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-ToBeSetup-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-BearerType CRITICALITY reject EXTENSION BearerType PRESENCE optional}, - ... -} -*/ - -struct E_RABs_ToBeSetup_ItemExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_BearerType() { set(id_BearerType); type=1;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_BearerType)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_BearerType);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_BearerType() { set(reject); type=1;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - BearerType& select_id_BearerType() { return set(1); } - BearerType const* get_id_BearerType() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_BearerType()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(BearerType)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_BearerType() { set(optional); type=1;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeSetup-Item ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - e-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters, - dL-Forwarding DL-Forwarding OPTIONAL, - uL-GTPtunnelEndpoint GTPtunnelEndpoint, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeSetup-ItemExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeSetup_Item : asn::sequence<5, 0, true, 2> -{ - static constexpr const char* name() {return "E-RABs-ToBeSetup-Item";} - using parent_t = asn::sequence<5, 0, true, 2>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct e_RAB_Level_QoS_Parameters_t : E_RAB_Level_QoS_Parameters - { - static constexpr const char* name() {return "e_RAB_Level_QoS_Parameters_t";} - using parent_t = E_RAB_Level_QoS_Parameters; - - }; - e_RAB_Level_QoS_Parameters_t& ref_e_RAB_Level_QoS_Parameters() {return e_RAB_Level_QoS_Parameters;} - e_RAB_Level_QoS_Parameters_t const& ref_e_RAB_Level_QoS_Parameters() const {return e_RAB_Level_QoS_Parameters;} - struct dL_Forwarding_t : DL_Forwarding - { - static constexpr const char* name() {return "dL_Forwarding_t";} - using parent_t = DL_Forwarding; - static constexpr bool optional = true; - - }; - dL_Forwarding_t& set_dL_Forwarding() { dL_Forwarding.setpresent(true); return dL_Forwarding;} - dL_Forwarding_t const* get_dL_Forwarding() const {return dL_Forwarding.is_valid() ? &dL_Forwarding : nullptr;} - struct uL_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "uL_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - - }; - uL_GTPtunnelEndpoint_t& ref_uL_GTPtunnelEndpoint() {return uL_GTPtunnelEndpoint;} - uL_GTPtunnelEndpoint_t const& ref_uL_GTPtunnelEndpoint() const {return uL_GTPtunnelEndpoint;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(e_RAB_Level_QoS_Parameters); - v(dL_Forwarding); - v(uL_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(e_RAB_Level_QoS_Parameters); - v(dL_Forwarding); - v(uL_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - e_RAB_Level_QoS_Parameters.clear(); - dL_Forwarding.clear(); - uL_GTPtunnelEndpoint.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - e_RAB_Level_QoS_Parameters_t e_RAB_Level_QoS_Parameters; - dL_Forwarding_t dL_Forwarding; - uL_GTPtunnelEndpoint_t uL_GTPtunnelEndpoint; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeSetup-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-ToBeSetup-Item CRITICALITY ignore TYPE E-RABs-ToBeSetup-Item PRESENCE mandatory }, - ... -} -*/ - -struct E_RABs_ToBeSetup_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeSetup_Item() { set(id_E_RABs_ToBeSetup_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_ToBeSetup_Item)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_ToBeSetup_Item);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeSetup_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_ToBeSetup_Item& select_id_E_RABs_ToBeSetup_Item() { return set(1); } - E_RABs_ToBeSetup_Item const* get_id_E_RABs_ToBeSetup_Item() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_ToBeSetup_Item()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_ToBeSetup_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeSetup_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeSetup-List ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeSetup-ItemIEs} } -*/ - -struct E_RABs_ToBeSetup_List_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_ToBeSetup_List_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_ToBeSetup_List : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-ToBeSetup-List";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-ToBeSetupRetrieve-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-uL-GTPtunnelEndpoint CRITICALITY reject EXTENSION GTPtunnelEndpoint PRESENCE mandatory}| - { ID id-dL-Forwarding CRITICALITY ignore EXTENSION DL-Forwarding PRESENCE optional }, - ... -} -*/ - -struct E_RABs_ToBeSetupRetrieve_ItemExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_uL_GTPtunnelEndpoint() { set(id_uL_GTPtunnelEndpoint); type=1;} - void select_id_dL_Forwarding() { set(id_dL_Forwarding); type=2;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_uL_GTPtunnelEndpoint)) { type = 1; return true; } - else if(equal(id_dL_Forwarding)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_uL_GTPtunnelEndpoint);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_dL_Forwarding);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_uL_GTPtunnelEndpoint() { set(reject); type=1;} - void select_id_dL_Forwarding() { set(ignore); type=2;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - GTPtunnelEndpoint& select_id_uL_GTPtunnelEndpoint() { return set(1); } - GTPtunnelEndpoint const* get_id_uL_GTPtunnelEndpoint() const { return get(1); } - DL_Forwarding& select_id_dL_Forwarding() { return set(2); } - DL_Forwarding const* get_id_dL_Forwarding() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_uL_GTPtunnelEndpoint()); return true; - case 2: v(select_id_dL_Forwarding()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(DL_Forwarding)]; - char dummy2[sizeof(GTPtunnelEndpoint)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_uL_GTPtunnelEndpoint() { set(mandatory); type=1;} - void select_id_dL_Forwarding() { set(optional); type=2;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeSetupRetrieve-Item ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - e-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters, - bearerType BearerType OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeSetupRetrieve-ItemExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeSetupRetrieve_Item : asn::sequence<4, 0, true, 2> -{ - static constexpr const char* name() {return "E-RABs-ToBeSetupRetrieve-Item";} - using parent_t = asn::sequence<4, 0, true, 2>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct e_RAB_Level_QoS_Parameters_t : E_RAB_Level_QoS_Parameters - { - static constexpr const char* name() {return "e_RAB_Level_QoS_Parameters_t";} - using parent_t = E_RAB_Level_QoS_Parameters; - - }; - e_RAB_Level_QoS_Parameters_t& ref_e_RAB_Level_QoS_Parameters() {return e_RAB_Level_QoS_Parameters;} - e_RAB_Level_QoS_Parameters_t const& ref_e_RAB_Level_QoS_Parameters() const {return e_RAB_Level_QoS_Parameters;} - struct bearerType_t : BearerType - { - static constexpr const char* name() {return "bearerType_t";} - using parent_t = BearerType; - static constexpr bool optional = true; - - }; - bearerType_t& set_bearerType() { bearerType.setpresent(true); return bearerType;} - bearerType_t const* get_bearerType() const {return bearerType.is_valid() ? &bearerType : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(e_RAB_Level_QoS_Parameters); - v(bearerType); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(e_RAB_Level_QoS_Parameters); - v(bearerType); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - e_RAB_Level_QoS_Parameters.clear(); - bearerType.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - e_RAB_Level_QoS_Parameters_t e_RAB_Level_QoS_Parameters; - bearerType_t bearerType; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeSetupRetrieve-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-ToBeSetupRetrieve-Item CRITICALITY ignore TYPE E-RABs-ToBeSetupRetrieve-Item PRESENCE mandatory}, - ... -} -*/ - -struct E_RABs_ToBeSetupRetrieve_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeSetupRetrieve_Item() { set(id_E_RABs_ToBeSetupRetrieve_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_ToBeSetupRetrieve_Item)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_ToBeSetupRetrieve_Item);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeSetupRetrieve_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_ToBeSetupRetrieve_Item& select_id_E_RABs_ToBeSetupRetrieve_Item() { return set(1); } - E_RABs_ToBeSetupRetrieve_Item const* get_id_E_RABs_ToBeSetupRetrieve_Item() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_ToBeSetupRetrieve_Item()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_ToBeSetupRetrieve_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeSetupRetrieve_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeSetup-ListRetrieve ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeSetupRetrieve-ItemIEs} } -*/ - -struct E_RABs_ToBeSetup_ListRetrieve_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_ToBeSetup_ListRetrieve_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_ToBeSetup_ListRetrieve : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-ToBeSetup-ListRetrieve";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -ENB-ENDCConfigUpdateAckIEs X2AP-PROTOCOL-IES ::= { - ... -} -*/ - -struct ENB_ENDCConfigUpdateAckIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -FDD-InfoNeighbourServedNRCell-Information-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct FDD_InfoNeighbourServedNRCell_Information_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -FDD-InfoNeighbourServedNRCell-Information ::= SEQUENCE { - ul-NRFreqInfo NRFreqInfo, - dl-NRFreqInfo NRFreqInfo, - iE-Extensions ProtocolExtensionContainer { {FDD-InfoNeighbourServedNRCell-Information-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct FDD_InfoNeighbourServedNRCell_Information : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "FDD-InfoNeighbourServedNRCell-Information";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct ul_NRFreqInfo_t : NRFreqInfo - { - static constexpr const char* name() {return "ul_NRFreqInfo_t";} - using parent_t = NRFreqInfo; - - }; - ul_NRFreqInfo_t& ref_ul_NRFreqInfo() {return ul_NRFreqInfo;} - ul_NRFreqInfo_t const& ref_ul_NRFreqInfo() const {return ul_NRFreqInfo;} - struct dl_NRFreqInfo_t : NRFreqInfo - { - static constexpr const char* name() {return "dl_NRFreqInfo_t";} - using parent_t = NRFreqInfo; - - }; - dl_NRFreqInfo_t& ref_dl_NRFreqInfo() {return dl_NRFreqInfo;} - dl_NRFreqInfo_t const& ref_dl_NRFreqInfo() const {return dl_NRFreqInfo;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(ul_NRFreqInfo); - v(dl_NRFreqInfo); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(ul_NRFreqInfo); - v(dl_NRFreqInfo); - v(iE_Extensions); - - }; - void clear() - { - ul_NRFreqInfo.clear(); - dl_NRFreqInfo.clear(); - iE_Extensions.clear(); - - }; - private: - ul_NRFreqInfo_t ul_NRFreqInfo; - dl_NRFreqInfo_t dl_NRFreqInfo; - iE_Extensions_t iE_Extensions; - -}; -/* -TDD-InfoNeighbourServedNRCell-Information-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct TDD_InfoNeighbourServedNRCell_Information_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -TDD-InfoNeighbourServedNRCell-Information ::= SEQUENCE { - nRFreqInfo NRFreqInfo, - iE-Extensions ProtocolExtensionContainer { {TDD-InfoNeighbourServedNRCell-Information-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct TDD_InfoNeighbourServedNRCell_Information : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "TDD-InfoNeighbourServedNRCell-Information";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct nRFreqInfo_t : NRFreqInfo - { - static constexpr const char* name() {return "nRFreqInfo_t";} - using parent_t = NRFreqInfo; - - }; - nRFreqInfo_t& ref_nRFreqInfo() {return nRFreqInfo;} - nRFreqInfo_t const& ref_nRFreqInfo() const {return nRFreqInfo;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(nRFreqInfo); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(nRFreqInfo); - v(iE_Extensions); - - }; - void clear() - { - nRFreqInfo.clear(); - iE_Extensions.clear(); - - }; - private: - nRFreqInfo_t nRFreqInfo; - iE_Extensions_t iE_Extensions; - -}; -/* -NRNeighbour-Information-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct NRNeighbour_Information_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -NRNeighbour-Information ::= SEQUENCE (SIZE (1.. maxofNRNeighbours))OF SEQUENCE { - nrpCI NRPCI, - nrCellID NRCGI, - fiveGS-TAC FiveGS-TAC OPTIONAL, - configured-TAC TAC OPTIONAL, - measurementTimingConfiguration OCTET STRING, - nRNeighbourModeInfo CHOICE { - fdd FDD-InfoNeighbourServedNRCell-Information, - tdd TDD-InfoNeighbourServedNRCell-Information, - ... - }, - iE-Extensions ProtocolExtensionContainer { {NRNeighbour-Information-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct NRNeighbour_Information_elm : asn::sequence<7, 0, true, 3> -{ - static constexpr const char* name() {return "NRNeighbour_Information_elm";} - using parent_t = asn::sequence<7, 0, true, 3>; - struct nrpCI_t : NRPCI - { - static constexpr const char* name() {return "nrpCI_t";} - using parent_t = NRPCI; - - }; - nrpCI_t& ref_nrpCI() {return nrpCI;} - nrpCI_t const& ref_nrpCI() const {return nrpCI;} - struct nrCellID_t : NRCGI - { - static constexpr const char* name() {return "nrCellID_t";} - using parent_t = NRCGI; - - }; - nrCellID_t& ref_nrCellID() {return nrCellID;} - nrCellID_t const& ref_nrCellID() const {return nrCellID;} - struct fiveGS_TAC_t : FiveGS_TAC - { - static constexpr const char* name() {return "fiveGS_TAC_t";} - using parent_t = FiveGS_TAC; - static constexpr bool optional = true; - - }; - fiveGS_TAC_t& set_fiveGS_TAC() { fiveGS_TAC.setpresent(true); return fiveGS_TAC;} - fiveGS_TAC_t const* get_fiveGS_TAC() const {return fiveGS_TAC.is_valid() ? &fiveGS_TAC : nullptr;} - struct configured_TAC_t : TAC - { - static constexpr const char* name() {return "configured_TAC_t";} - using parent_t = TAC; - static constexpr bool optional = true; - - }; - configured_TAC_t& set_configured_TAC() { configured_TAC.setpresent(true); return configured_TAC;} - configured_TAC_t const* get_configured_TAC() const {return configured_TAC.is_valid() ? &configured_TAC : nullptr;} - struct measurementTimingConfiguration_t : asn::ostring<> - { - static constexpr const char* name() {return "measurementTimingConfiguration_t";} - using parent_t = asn::ostring<>; - - }; - - measurementTimingConfiguration_t& ref_measurementTimingConfiguration() {return measurementTimingConfiguration;} - measurementTimingConfiguration_t const& ref_measurementTimingConfiguration() const {return measurementTimingConfiguration;} - struct nRNeighbourModeInfo_t : asn::choice<2, 0, true> - { - static constexpr const char* name() {return "nRNeighbourModeInfo_t";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~nRNeighbourModeInfo_t() {clear();} - struct fdd_t : FDD_InfoNeighbourServedNRCell_Information - { - static constexpr const char* name() {return "fdd_t";} - using parent_t = FDD_InfoNeighbourServedNRCell_Information; - - }; - struct tdd_t : TDD_InfoNeighbourServedNRCell_Information - { - static constexpr const char* name() {return "tdd_t";} - using parent_t = TDD_InfoNeighbourServedNRCell_Information; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - fdd_t& select_fdd() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - fdd_t const* get_fdd() const { if(get_index() == 1) { return &var.as();} return nullptr; } - tdd_t& select_tdd() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - tdd_t const* get_tdd() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(fdd_t)]; - char dummy2[sizeof(tdd_t)]; - - }; - asn::variant var; - index_type index {0}; - }; - nRNeighbourModeInfo_t& ref_nRNeighbourModeInfo() {return nRNeighbourModeInfo;} - nRNeighbourModeInfo_t const& ref_nRNeighbourModeInfo() const {return nRNeighbourModeInfo;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(nrpCI); - v(nrCellID); - v(fiveGS_TAC); - v(configured_TAC); - v(measurementTimingConfiguration); - v(nRNeighbourModeInfo); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(nrpCI); - v(nrCellID); - v(fiveGS_TAC); - v(configured_TAC); - v(measurementTimingConfiguration); - v(nRNeighbourModeInfo); - v(iE_Extensions); - - }; - void clear() - { - nrpCI.clear(); - nrCellID.clear(); - fiveGS_TAC.clear(); - configured_TAC.clear(); - measurementTimingConfiguration.clear(); - nRNeighbourModeInfo.clear(); - iE_Extensions.clear(); - - }; - private: - nrpCI_t nrpCI; - nrCellID_t nrCellID; - fiveGS_TAC_t fiveGS_TAC; - configured_TAC_t configured_TAC; - measurementTimingConfiguration_t measurementTimingConfiguration; - nRNeighbourModeInfo_t nRNeighbourModeInfo; - iE_Extensions_t iE_Extensions; - -}; -struct NRNeighbour_Information : asn::sequenceof -{ - static constexpr const char* name() {return "NRNeighbour-Information";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -ServedEUTRAcellsENDCX2Management-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct ServedEUTRAcellsENDCX2Management_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ServedEUTRAcellsENDCX2ManagementList ::= SEQUENCE (SIZE (1.. maxCellineNB)) OF SEQUENCE { - servedEUTRACellInfo ServedCell-Information, - nrNeighbourInfo NRNeighbour-Information OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {ServedEUTRAcellsENDCX2Management-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct ServedEUTRAcellsENDCX2ManagementList_elm : asn::sequence<3, 0, true, 2> -{ - static constexpr const char* name() {return "ServedEUTRAcellsENDCX2ManagementList_elm";} - using parent_t = asn::sequence<3, 0, true, 2>; - struct servedEUTRACellInfo_t : ServedCell_Information - { - static constexpr const char* name() {return "servedEUTRACellInfo_t";} - using parent_t = ServedCell_Information; - - }; - servedEUTRACellInfo_t& ref_servedEUTRACellInfo() {return servedEUTRACellInfo;} - servedEUTRACellInfo_t const& ref_servedEUTRACellInfo() const {return servedEUTRACellInfo;} - struct nrNeighbourInfo_t : NRNeighbour_Information - { - static constexpr const char* name() {return "nrNeighbourInfo_t";} - using parent_t = NRNeighbour_Information; - static constexpr bool optional = true; - - }; - nrNeighbourInfo_t& set_nrNeighbourInfo() { nrNeighbourInfo.setpresent(true); return nrNeighbourInfo;} - nrNeighbourInfo_t const* get_nrNeighbourInfo() const {return nrNeighbourInfo.is_valid() ? &nrNeighbourInfo : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(servedEUTRACellInfo); - v(nrNeighbourInfo); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(servedEUTRACellInfo); - v(nrNeighbourInfo); - v(iE_Extensions); - - }; - void clear() - { - servedEUTRACellInfo.clear(); - nrNeighbourInfo.clear(); - iE_Extensions.clear(); - - }; - private: - servedEUTRACellInfo_t servedEUTRACellInfo; - nrNeighbourInfo_t nrNeighbourInfo; - iE_Extensions_t iE_Extensions; - -}; -struct ServedEUTRAcellsENDCX2ManagementList : asn::sequenceof -{ - static constexpr const char* name() {return "ServedEUTRAcellsENDCX2ManagementList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -ServedEUTRAcellsToModifyListENDCConfUpd-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct ServedEUTRAcellsToModifyListENDCConfUpd_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ServedEUTRAcellsToModifyListENDCConfUpd ::= SEQUENCE (SIZE (1.. maxCellineNB)) OF SEQUENCE { - old-ECGI ECGI, - servedEUTRACellInfo ServedCell-Information, - nrNeighbourInfo NRNeighbour-Information OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {ServedEUTRAcellsToModifyListENDCConfUpd-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct ServedEUTRAcellsToModifyListENDCConfUpd_elm : asn::sequence<4, 0, true, 2> -{ - static constexpr const char* name() {return "ServedEUTRAcellsToModifyListENDCConfUpd_elm";} - using parent_t = asn::sequence<4, 0, true, 2>; - struct old_ECGI_t : ECGI - { - static constexpr const char* name() {return "old_ECGI_t";} - using parent_t = ECGI; - - }; - old_ECGI_t& ref_old_ECGI() {return old_ECGI;} - old_ECGI_t const& ref_old_ECGI() const {return old_ECGI;} - struct servedEUTRACellInfo_t : ServedCell_Information - { - static constexpr const char* name() {return "servedEUTRACellInfo_t";} - using parent_t = ServedCell_Information; - - }; - servedEUTRACellInfo_t& ref_servedEUTRACellInfo() {return servedEUTRACellInfo;} - servedEUTRACellInfo_t const& ref_servedEUTRACellInfo() const {return servedEUTRACellInfo;} - struct nrNeighbourInfo_t : NRNeighbour_Information - { - static constexpr const char* name() {return "nrNeighbourInfo_t";} - using parent_t = NRNeighbour_Information; - static constexpr bool optional = true; - - }; - nrNeighbourInfo_t& set_nrNeighbourInfo() { nrNeighbourInfo.setpresent(true); return nrNeighbourInfo;} - nrNeighbourInfo_t const* get_nrNeighbourInfo() const {return nrNeighbourInfo.is_valid() ? &nrNeighbourInfo : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(old_ECGI); - v(servedEUTRACellInfo); - v(nrNeighbourInfo); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(old_ECGI); - v(servedEUTRACellInfo); - v(nrNeighbourInfo); - v(iE_Extensions); - - }; - void clear() - { - old_ECGI.clear(); - servedEUTRACellInfo.clear(); - nrNeighbourInfo.clear(); - iE_Extensions.clear(); - - }; - private: - old_ECGI_t old_ECGI; - servedEUTRACellInfo_t servedEUTRACellInfo; - nrNeighbourInfo_t nrNeighbourInfo; - iE_Extensions_t iE_Extensions; - -}; -struct ServedEUTRAcellsToModifyListENDCConfUpd : asn::sequenceof -{ - static constexpr const char* name() {return "ServedEUTRAcellsToModifyListENDCConfUpd";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -ServedEUTRAcellsToDeleteListENDCConfUpd ::= SEQUENCE (SIZE (1..maxCellineNB)) OF ECGI -*/ - -struct ServedEUTRAcellsToDeleteListENDCConfUpd_elm : ECGI -{ - static constexpr const char* name() {return "ServedEUTRAcellsToDeleteListENDCConfUpd_elm";} - using parent_t = ECGI; - -}; -struct ServedEUTRAcellsToDeleteListENDCConfUpd : asn::sequenceof -{ - static constexpr const char* name() {return "ServedEUTRAcellsToDeleteListENDCConfUpd";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -ENB-ENDCConfigUpdateIEs X2AP-PROTOCOL-IES ::= { - { ID id-CellAssistanceInformation CRITICALITY reject TYPE CellAssistanceInformation PRESENCE optional }| - { ID id-ServedEUTRAcellsENDCX2ManagementList CRITICALITY reject TYPE ServedEUTRAcellsENDCX2ManagementList PRESENCE optional }| - { ID id-ServedEUTRAcellsToModifyListENDCConfUpd CRITICALITY reject TYPE ServedEUTRAcellsToModifyListENDCConfUpd PRESENCE optional }| - { ID id-ServedEUTRAcellsToDeleteListENDCConfUpd CRITICALITY reject TYPE ServedEUTRAcellsToDeleteListENDCConfUpd PRESENCE optional }, - ... -} -*/ - -struct ENB_ENDCConfigUpdateIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_CellAssistanceInformation() { set(id_CellAssistanceInformation); type=1;} - void select_id_ServedEUTRAcellsENDCX2ManagementList() { set(id_ServedEUTRAcellsENDCX2ManagementList); type=2;} - void select_id_ServedEUTRAcellsToModifyListENDCConfUpd() { set(id_ServedEUTRAcellsToModifyListENDCConfUpd); type=3;} - void select_id_ServedEUTRAcellsToDeleteListENDCConfUpd() { set(id_ServedEUTRAcellsToDeleteListENDCConfUpd); type=4;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_CellAssistanceInformation)) { type = 1; return true; } - else if(equal(id_ServedEUTRAcellsENDCX2ManagementList)) { type = 2; return true; } - else if(equal(id_ServedEUTRAcellsToModifyListENDCConfUpd)) { type = 3; return true; } - else if(equal(id_ServedEUTRAcellsToDeleteListENDCConfUpd)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_CellAssistanceInformation);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_ServedEUTRAcellsENDCX2ManagementList);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_ServedEUTRAcellsToModifyListENDCConfUpd);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_ServedEUTRAcellsToDeleteListENDCConfUpd);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_CellAssistanceInformation() { set(reject); type=1;} - void select_id_ServedEUTRAcellsENDCX2ManagementList() { set(reject); type=2;} - void select_id_ServedEUTRAcellsToModifyListENDCConfUpd() { set(reject); type=3;} - void select_id_ServedEUTRAcellsToDeleteListENDCConfUpd() { set(reject); type=4;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(reject)) { type = 3; return true; } - else if(equal(reject)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(reject);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(reject);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - CellAssistanceInformation& select_id_CellAssistanceInformation() { return set(1); } - CellAssistanceInformation const* get_id_CellAssistanceInformation() const { return get(1); } - ServedEUTRAcellsENDCX2ManagementList& select_id_ServedEUTRAcellsENDCX2ManagementList() { return set(2); } - ServedEUTRAcellsENDCX2ManagementList const* get_id_ServedEUTRAcellsENDCX2ManagementList() const { return get(2); } - ServedEUTRAcellsToModifyListENDCConfUpd& select_id_ServedEUTRAcellsToModifyListENDCConfUpd() { return set(3); } - ServedEUTRAcellsToModifyListENDCConfUpd const* get_id_ServedEUTRAcellsToModifyListENDCConfUpd() const { return get(3); } - ServedEUTRAcellsToDeleteListENDCConfUpd& select_id_ServedEUTRAcellsToDeleteListENDCConfUpd() { return set(4); } - ServedEUTRAcellsToDeleteListENDCConfUpd const* get_id_ServedEUTRAcellsToDeleteListENDCConfUpd() const { return get(4); } - bool is_unknown() const { return type == 5; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_CellAssistanceInformation()); return true; - case 2: v(select_id_ServedEUTRAcellsENDCX2ManagementList()); return true; - case 3: v(select_id_ServedEUTRAcellsToModifyListENDCConfUpd()); return true; - case 4: v(select_id_ServedEUTRAcellsToDeleteListENDCConfUpd()); return true; - case 5: if(type != 5) {clear(); asn::base::set();} type = 5; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CellAssistanceInformation)]; - char dummy2[sizeof(ServedEUTRAcellsENDCX2ManagementList)]; - char dummy3[sizeof(ServedEUTRAcellsToDeleteListENDCConfUpd)]; - char dummy4[sizeof(ServedEUTRAcellsToModifyListENDCConfUpd)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_CellAssistanceInformation() { set(optional); type=1;} - void select_id_ServedEUTRAcellsENDCX2ManagementList() { set(optional); type=2;} - void select_id_ServedEUTRAcellsToModifyListENDCConfUpd() { set(optional); type=3;} - void select_id_ServedEUTRAcellsToDeleteListENDCConfUpd() { set(optional); type=4;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ENB-ENDCX2RemovalReqAckIEs X2AP-PROTOCOL-IES ::= { - { ID id-GlobalENB-ID CRITICALITY reject TYPE GlobalENB-ID PRESENCE mandatory}, - ... -} -*/ - -struct ENB_ENDCX2RemovalReqAckIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_GlobalENB_ID() { set(id_GlobalENB_ID); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_GlobalENB_ID)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_GlobalENB_ID);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_GlobalENB_ID() { set(reject); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - GlobalENB_ID& select_id_GlobalENB_ID() { return set(1); } - GlobalENB_ID const* get_id_GlobalENB_ID() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_GlobalENB_ID()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(GlobalENB_ID)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_GlobalENB_ID() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ENB-ENDCX2RemovalReqIEs X2AP-PROTOCOL-IES ::= { - { ID id-GlobalENB-ID CRITICALITY reject TYPE GlobalENB-ID PRESENCE mandatory}, - ... -} -*/ - -struct ENB_ENDCX2RemovalReqIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_GlobalENB_ID() { set(id_GlobalENB_ID); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_GlobalENB_ID)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_GlobalENB_ID);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_GlobalENB_ID() { set(reject); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - GlobalENB_ID& select_id_GlobalENB_ID() { return set(1); } - GlobalENB_ID const* get_id_GlobalENB_ID() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_GlobalENB_ID()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(GlobalENB_ID)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_GlobalENB_ID() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ENB-ENDCX2SetupReqAckIEs X2AP-PROTOCOL-IES ::= { - { ID id-GlobalENB-ID CRITICALITY reject TYPE GlobalENB-ID PRESENCE mandatory}| - { ID id-ServedEUTRAcellsENDCX2ManagementList CRITICALITY reject TYPE ServedEUTRAcellsENDCX2ManagementList PRESENCE mandatory}, - ... -} -*/ - -struct ENB_ENDCX2SetupReqAckIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_GlobalENB_ID() { set(id_GlobalENB_ID); type=1;} - void select_id_ServedEUTRAcellsENDCX2ManagementList() { set(id_ServedEUTRAcellsENDCX2ManagementList); type=2;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_GlobalENB_ID)) { type = 1; return true; } - else if(equal(id_ServedEUTRAcellsENDCX2ManagementList)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_GlobalENB_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_ServedEUTRAcellsENDCX2ManagementList);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_GlobalENB_ID() { set(reject); type=1;} - void select_id_ServedEUTRAcellsENDCX2ManagementList() { set(reject); type=2;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - GlobalENB_ID& select_id_GlobalENB_ID() { return set(1); } - GlobalENB_ID const* get_id_GlobalENB_ID() const { return get(1); } - ServedEUTRAcellsENDCX2ManagementList& select_id_ServedEUTRAcellsENDCX2ManagementList() { return set(2); } - ServedEUTRAcellsENDCX2ManagementList const* get_id_ServedEUTRAcellsENDCX2ManagementList() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_GlobalENB_ID()); return true; - case 2: v(select_id_ServedEUTRAcellsENDCX2ManagementList()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(GlobalENB_ID)]; - char dummy2[sizeof(ServedEUTRAcellsENDCX2ManagementList)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_GlobalENB_ID() { set(mandatory); type=1;} - void select_id_ServedEUTRAcellsENDCX2ManagementList() { set(mandatory); type=2;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ENB-ENDCX2SetupReqIEs X2AP-PROTOCOL-IES ::= { - { ID id-GlobalENB-ID CRITICALITY reject TYPE GlobalENB-ID PRESENCE mandatory}| - { ID id-ServedEUTRAcellsENDCX2ManagementList CRITICALITY reject TYPE ServedEUTRAcellsENDCX2ManagementList PRESENCE mandatory}, - ... -} -*/ - -struct ENB_ENDCX2SetupReqIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_GlobalENB_ID() { set(id_GlobalENB_ID); type=1;} - void select_id_ServedEUTRAcellsENDCX2ManagementList() { set(id_ServedEUTRAcellsENDCX2ManagementList); type=2;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_GlobalENB_ID)) { type = 1; return true; } - else if(equal(id_ServedEUTRAcellsENDCX2ManagementList)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_GlobalENB_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_ServedEUTRAcellsENDCX2ManagementList);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_GlobalENB_ID() { set(reject); type=1;} - void select_id_ServedEUTRAcellsENDCX2ManagementList() { set(reject); type=2;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - GlobalENB_ID& select_id_GlobalENB_ID() { return set(1); } - GlobalENB_ID const* get_id_GlobalENB_ID() const { return get(1); } - ServedEUTRAcellsENDCX2ManagementList& select_id_ServedEUTRAcellsENDCX2ManagementList() { return set(2); } - ServedEUTRAcellsENDCX2ManagementList const* get_id_ServedEUTRAcellsENDCX2ManagementList() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_GlobalENB_ID()); return true; - case 2: v(select_id_ServedEUTRAcellsENDCX2ManagementList()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(GlobalENB_ID)]; - char dummy2[sizeof(ServedEUTRAcellsENDCX2ManagementList)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_GlobalENB_ID() { set(mandatory); type=1;} - void select_id_ServedEUTRAcellsENDCX2ManagementList() { set(mandatory); type=2;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ListofEUTRACellsinEUTRACoordinationResp ::= SEQUENCE (SIZE (0..maxCellineNB)) OF ECGI -*/ - -struct ListofEUTRACellsinEUTRACoordinationResp_elm : ECGI -{ - static constexpr const char* name() {return "ListofEUTRACellsinEUTRACoordinationResp_elm";} - using parent_t = ECGI; - -}; -struct ListofEUTRACellsinEUTRACoordinationResp : asn::sequenceof -{ - static constexpr const char* name() {return "ListofEUTRACellsinEUTRACoordinationResp";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -ENB-EUTRA-NRCellResourceCoordinationReqAckIEs X2AP-PROTOCOL-IES ::= { - { ID id-DataTrafficResourceIndication CRITICALITY reject TYPE DataTrafficResourceIndication PRESENCE mandatory}| - { ID id-SpectrumSharingGroupID CRITICALITY reject TYPE SpectrumSharingGroupID PRESENCE mandatory}| - { ID id-ListofEUTRACellsinEUTRACoordinationResp CRITICALITY reject TYPE ListofEUTRACellsinEUTRACoordinationResp PRESENCE mandatory}, - ... -} -*/ - -struct ENB_EUTRA_NRCellResourceCoordinationReqAckIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_DataTrafficResourceIndication() { set(id_DataTrafficResourceIndication); type=1;} - void select_id_SpectrumSharingGroupID() { set(id_SpectrumSharingGroupID); type=2;} - void select_id_ListofEUTRACellsinEUTRACoordinationResp() { set(id_ListofEUTRACellsinEUTRACoordinationResp); type=3;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_DataTrafficResourceIndication)) { type = 1; return true; } - else if(equal(id_SpectrumSharingGroupID)) { type = 2; return true; } - else if(equal(id_ListofEUTRACellsinEUTRACoordinationResp)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_DataTrafficResourceIndication);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SpectrumSharingGroupID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_ListofEUTRACellsinEUTRACoordinationResp);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_DataTrafficResourceIndication() { set(reject); type=1;} - void select_id_SpectrumSharingGroupID() { set(reject); type=2;} - void select_id_ListofEUTRACellsinEUTRACoordinationResp() { set(reject); type=3;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(reject)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(reject);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - DataTrafficResourceIndication& select_id_DataTrafficResourceIndication() { return set(1); } - DataTrafficResourceIndication const* get_id_DataTrafficResourceIndication() const { return get(1); } - SpectrumSharingGroupID& select_id_SpectrumSharingGroupID() { return set(2); } - SpectrumSharingGroupID const* get_id_SpectrumSharingGroupID() const { return get(2); } - ListofEUTRACellsinEUTRACoordinationResp& select_id_ListofEUTRACellsinEUTRACoordinationResp() { return set(3); } - ListofEUTRACellsinEUTRACoordinationResp const* get_id_ListofEUTRACellsinEUTRACoordinationResp() const { return get(3); } - bool is_unknown() const { return type == 4; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_DataTrafficResourceIndication()); return true; - case 2: v(select_id_SpectrumSharingGroupID()); return true; - case 3: v(select_id_ListofEUTRACellsinEUTRACoordinationResp()); return true; - case 4: if(type != 4) {clear(); asn::base::set();} type = 4; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(DataTrafficResourceIndication)]; - char dummy2[sizeof(ListofEUTRACellsinEUTRACoordinationResp)]; - char dummy3[sizeof(SpectrumSharingGroupID)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_DataTrafficResourceIndication() { set(mandatory); type=1;} - void select_id_SpectrumSharingGroupID() { set(mandatory); type=2;} - void select_id_ListofEUTRACellsinEUTRACoordinationResp() { set(mandatory); type=3;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ListofEUTRACellsinEUTRACoordinationReq ::= SEQUENCE (SIZE (0..maxCellineNB)) OF ECGI -*/ - -struct ListofEUTRACellsinEUTRACoordinationReq_elm : ECGI -{ - static constexpr const char* name() {return "ListofEUTRACellsinEUTRACoordinationReq_elm";} - using parent_t = ECGI; - -}; -struct ListofEUTRACellsinEUTRACoordinationReq : asn::sequenceof -{ - static constexpr const char* name() {return "ListofEUTRACellsinEUTRACoordinationReq";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -ENB-EUTRA-NRCellResourceCoordinationReqIEs X2AP-PROTOCOL-IES ::= { - { ID id-DataTrafficResourceIndication CRITICALITY reject TYPE DataTrafficResourceIndication PRESENCE mandatory}| - { ID id-SpectrumSharingGroupID CRITICALITY reject TYPE SpectrumSharingGroupID PRESENCE mandatory}| - { ID id-ListofEUTRACellsinEUTRACoordinationReq CRITICALITY reject TYPE ListofEUTRACellsinEUTRACoordinationReq PRESENCE mandatory}, - ... -} -*/ - -struct ENB_EUTRA_NRCellResourceCoordinationReqIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_DataTrafficResourceIndication() { set(id_DataTrafficResourceIndication); type=1;} - void select_id_SpectrumSharingGroupID() { set(id_SpectrumSharingGroupID); type=2;} - void select_id_ListofEUTRACellsinEUTRACoordinationReq() { set(id_ListofEUTRACellsinEUTRACoordinationReq); type=3;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_DataTrafficResourceIndication)) { type = 1; return true; } - else if(equal(id_SpectrumSharingGroupID)) { type = 2; return true; } - else if(equal(id_ListofEUTRACellsinEUTRACoordinationReq)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_DataTrafficResourceIndication);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SpectrumSharingGroupID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_ListofEUTRACellsinEUTRACoordinationReq);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_DataTrafficResourceIndication() { set(reject); type=1;} - void select_id_SpectrumSharingGroupID() { set(reject); type=2;} - void select_id_ListofEUTRACellsinEUTRACoordinationReq() { set(reject); type=3;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(reject)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(reject);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - DataTrafficResourceIndication& select_id_DataTrafficResourceIndication() { return set(1); } - DataTrafficResourceIndication const* get_id_DataTrafficResourceIndication() const { return get(1); } - SpectrumSharingGroupID& select_id_SpectrumSharingGroupID() { return set(2); } - SpectrumSharingGroupID const* get_id_SpectrumSharingGroupID() const { return get(2); } - ListofEUTRACellsinEUTRACoordinationReq& select_id_ListofEUTRACellsinEUTRACoordinationReq() { return set(3); } - ListofEUTRACellsinEUTRACoordinationReq const* get_id_ListofEUTRACellsinEUTRACoordinationReq() const { return get(3); } - bool is_unknown() const { return type == 4; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_DataTrafficResourceIndication()); return true; - case 2: v(select_id_SpectrumSharingGroupID()); return true; - case 3: v(select_id_ListofEUTRACellsinEUTRACoordinationReq()); return true; - case 4: if(type != 4) {clear(); asn::base::set();} type = 4; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(DataTrafficResourceIndication)]; - char dummy2[sizeof(ListofEUTRACellsinEUTRACoordinationReq)]; - char dummy3[sizeof(SpectrumSharingGroupID)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_DataTrafficResourceIndication() { set(mandatory); type=1;} - void select_id_SpectrumSharingGroupID() { set(mandatory); type=2;} - void select_id_ListofEUTRACellsinEUTRACoordinationReq() { set(mandatory); type=3;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ServedCellsToModify-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { -{ ID id-DeactivationIndication CRITICALITY ignore EXTENSION DeactivationIndication PRESENCE optional }, - ... -} -*/ - -struct ServedCellsToModify_Item_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_DeactivationIndication() { set(id_DeactivationIndication); type=1;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_DeactivationIndication)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_DeactivationIndication);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_DeactivationIndication() { set(ignore); type=1;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - DeactivationIndication& select_id_DeactivationIndication() { return set(1); } - DeactivationIndication const* get_id_DeactivationIndication() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_DeactivationIndication()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(DeactivationIndication)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_DeactivationIndication() { set(optional); type=1;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ServedCellsToModify-Item::= SEQUENCE { - old-ecgi ECGI, - servedCellInfo ServedCell-Information, - neighbour-Info Neighbour-Information OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {ServedCellsToModify-Item-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct ServedCellsToModify_Item : asn::sequence<4, 0, true, 2> -{ - static constexpr const char* name() {return "ServedCellsToModify-Item";} - using parent_t = asn::sequence<4, 0, true, 2>; - struct old_ecgi_t : ECGI - { - static constexpr const char* name() {return "old_ecgi_t";} - using parent_t = ECGI; - - }; - old_ecgi_t& ref_old_ecgi() {return old_ecgi;} - old_ecgi_t const& ref_old_ecgi() const {return old_ecgi;} - struct servedCellInfo_t : ServedCell_Information - { - static constexpr const char* name() {return "servedCellInfo_t";} - using parent_t = ServedCell_Information; - - }; - servedCellInfo_t& ref_servedCellInfo() {return servedCellInfo;} - servedCellInfo_t const& ref_servedCellInfo() const {return servedCellInfo;} - struct neighbour_Info_t : Neighbour_Information - { - static constexpr const char* name() {return "neighbour_Info_t";} - using parent_t = Neighbour_Information; - static constexpr bool optional = true; - - }; - neighbour_Info_t& set_neighbour_Info() { neighbour_Info.setpresent(true); return neighbour_Info;} - neighbour_Info_t const* get_neighbour_Info() const {return neighbour_Info.is_valid() ? &neighbour_Info : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(old_ecgi); - v(servedCellInfo); - v(neighbour_Info); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(old_ecgi); - v(servedCellInfo); - v(neighbour_Info); - v(iE_Extensions); - - }; - void clear() - { - old_ecgi.clear(); - servedCellInfo.clear(); - neighbour_Info.clear(); - iE_Extensions.clear(); - - }; - private: - old_ecgi_t old_ecgi; - servedCellInfo_t servedCellInfo; - neighbour_Info_t neighbour_Info; - iE_Extensions_t iE_Extensions; - -}; -/* -ServedCellsToModify::= SEQUENCE (SIZE (1..maxCellineNB)) OF ServedCellsToModify-Item -*/ - -struct ServedCellsToModify_elm : ServedCellsToModify_Item -{ - static constexpr const char* name() {return "ServedCellsToModify_elm";} - using parent_t = ServedCellsToModify_Item; - -}; -struct ServedCellsToModify : asn::sequenceof -{ - static constexpr const char* name() {return "ServedCellsToModify";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -Old-ECGIs::= SEQUENCE (SIZE (1..maxCellineNB)) OF ECGI -*/ - -struct Old_ECGIs_elm : ECGI -{ - static constexpr const char* name() {return "Old_ECGIs_elm";} - using parent_t = ECGI; - -}; -struct Old_ECGIs : asn::sequenceof -{ - static constexpr const char* name() {return "Old-ECGIs";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -ENBConfigurationUpdate-IEs X2AP-PROTOCOL-IES ::= { - { ID id-ServedCellsToAdd CRITICALITY reject TYPE ServedCells PRESENCE optional}| - { ID id-ServedCellsToModify CRITICALITY reject TYPE ServedCellsToModify PRESENCE optional}| - { ID id-ServedCellsToDelete CRITICALITY reject TYPE Old-ECGIs PRESENCE optional}| - { ID id-GUGroupIDToAddList CRITICALITY reject TYPE GUGroupIDList PRESENCE optional}| - { ID id-GUGroupIDToDeleteList CRITICALITY reject TYPE GUGroupIDList PRESENCE optional}| - { ID id-CoverageModificationList CRITICALITY reject TYPE CoverageModificationList PRESENCE optional}, - ... -} -*/ - -struct ENBConfigurationUpdate_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_ServedCellsToAdd() { set(id_ServedCellsToAdd); type=1;} - void select_id_ServedCellsToModify() { set(id_ServedCellsToModify); type=2;} - void select_id_ServedCellsToDelete() { set(id_ServedCellsToDelete); type=3;} - void select_id_GUGroupIDToAddList() { set(id_GUGroupIDToAddList); type=4;} - void select_id_GUGroupIDToDeleteList() { set(id_GUGroupIDToDeleteList); type=5;} - void select_id_CoverageModificationList() { set(id_CoverageModificationList); type=6;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_ServedCellsToAdd)) { type = 1; return true; } - else if(equal(id_ServedCellsToModify)) { type = 2; return true; } - else if(equal(id_ServedCellsToDelete)) { type = 3; return true; } - else if(equal(id_GUGroupIDToAddList)) { type = 4; return true; } - else if(equal(id_GUGroupIDToDeleteList)) { type = 5; return true; } - else if(equal(id_CoverageModificationList)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_ServedCellsToAdd);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_ServedCellsToModify);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_ServedCellsToDelete);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_GUGroupIDToAddList);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_GUGroupIDToDeleteList);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_CoverageModificationList);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_ServedCellsToAdd() { set(reject); type=1;} - void select_id_ServedCellsToModify() { set(reject); type=2;} - void select_id_ServedCellsToDelete() { set(reject); type=3;} - void select_id_GUGroupIDToAddList() { set(reject); type=4;} - void select_id_GUGroupIDToDeleteList() { set(reject); type=5;} - void select_id_CoverageModificationList() { set(reject); type=6;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(reject)) { type = 3; return true; } - else if(equal(reject)) { type = 4; return true; } - else if(equal(reject)) { type = 5; return true; } - else if(equal(reject)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(reject);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(reject);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(reject);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(reject);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - ServedCells& select_id_ServedCellsToAdd() { return set(1); } - ServedCells const* get_id_ServedCellsToAdd() const { return get(1); } - ServedCellsToModify& select_id_ServedCellsToModify() { return set(2); } - ServedCellsToModify const* get_id_ServedCellsToModify() const { return get(2); } - Old_ECGIs& select_id_ServedCellsToDelete() { return set(3); } - Old_ECGIs const* get_id_ServedCellsToDelete() const { return get(3); } - GUGroupIDList& select_id_GUGroupIDToAddList() { return set(4); } - GUGroupIDList const* get_id_GUGroupIDToAddList() const { return get(4); } - GUGroupIDList& select_id_GUGroupIDToDeleteList() { return set(5); } - GUGroupIDList const* get_id_GUGroupIDToDeleteList() const { return get(5); } - CoverageModificationList& select_id_CoverageModificationList() { return set(6); } - CoverageModificationList const* get_id_CoverageModificationList() const { return get(6); } - bool is_unknown() const { return type == 7; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_ServedCellsToAdd()); return true; - case 2: v(select_id_ServedCellsToModify()); return true; - case 3: v(select_id_ServedCellsToDelete()); return true; - case 4: v(select_id_GUGroupIDToAddList()); return true; - case 5: v(select_id_GUGroupIDToDeleteList()); return true; - case 6: v(select_id_CoverageModificationList()); return true; - case 7: if(type != 7) {clear(); asn::base::set();} type = 7; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CoverageModificationList)]; - char dummy2[sizeof(GUGroupIDList)]; - char dummy3[sizeof(Old_ECGIs)]; - char dummy4[sizeof(ServedCells)]; - char dummy5[sizeof(ServedCellsToModify)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_ServedCellsToAdd() { set(optional); type=1;} - void select_id_ServedCellsToModify() { set(optional); type=2;} - void select_id_ServedCellsToDelete() { set(optional); type=3;} - void select_id_GUGroupIDToAddList() { set(optional); type=4;} - void select_id_GUGroupIDToDeleteList() { set(optional); type=5;} - void select_id_CoverageModificationList() { set(optional); type=6;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ENBConfigurationUpdate ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ENBConfigurationUpdate-IEs}}, - ... -} -*/ - -struct ENBConfigurationUpdate : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "ENBConfigurationUpdate";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -ENBConfigurationUpdateAcknowledge-IEs X2AP-PROTOCOL-IES ::= { - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, -... -} -*/ - -struct ENBConfigurationUpdateAcknowledge_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_CriticalityDiagnostics)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_CriticalityDiagnostics() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(1); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_CriticalityDiagnostics()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CriticalityDiagnostics)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_CriticalityDiagnostics() { set(optional); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ENBConfigurationUpdateAcknowledge ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ENBConfigurationUpdateAcknowledge-IEs}}, - ... -} -*/ - -struct ENBConfigurationUpdateAcknowledge : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "ENBConfigurationUpdateAcknowledge";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -ENBConfigurationUpdateFailure-IEs X2AP-PROTOCOL-IES ::= { - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| - { ID id-TimeToWait CRITICALITY ignore TYPE TimeToWait PRESENCE optional}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, - ... -} -*/ - -struct ENBConfigurationUpdateFailure_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_Cause() { set(id_Cause); type=1;} - void select_id_TimeToWait() { set(id_TimeToWait); type=2;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=3;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_Cause)) { type = 1; return true; } - else if(equal(id_TimeToWait)) { type = 2; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_TimeToWait);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_Cause() { set(ignore); type=1;} - void select_id_TimeToWait() { set(ignore); type=2;} - void select_id_CriticalityDiagnostics() { set(ignore); type=3;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - Cause& select_id_Cause() { return set(1); } - Cause const* get_id_Cause() const { return get(1); } - TimeToWait& select_id_TimeToWait() { return set(2); } - TimeToWait const* get_id_TimeToWait() const { return get(2); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(3); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(3); } - bool is_unknown() const { return type == 4; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_Cause()); return true; - case 2: v(select_id_TimeToWait()); return true; - case 3: v(select_id_CriticalityDiagnostics()); return true; - case 4: if(type != 4) {clear(); asn::base::set();} type = 4; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(CriticalityDiagnostics)]; - char dummy3[sizeof(TimeToWait)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_Cause() { set(mandatory); type=1;} - void select_id_TimeToWait() { set(optional); type=2;} - void select_id_CriticalityDiagnostics() { set(optional); type=3;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ENBConfigurationUpdateFailure ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ENBConfigurationUpdateFailure-IEs}}, - ... -} -*/ - -struct ENBConfigurationUpdateFailure : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "ENBConfigurationUpdateFailure";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -ENDCCellActivationFailure-IEs X2AP-PROTOCOL-IES ::= { - { ID id-ActivationID CRITICALITY reject TYPE ActivationID PRESENCE mandatory }| - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, - ... -} -*/ - -struct ENDCCellActivationFailure_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_ActivationID() { set(id_ActivationID); type=1;} - void select_id_Cause() { set(id_Cause); type=2;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=3;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_ActivationID)) { type = 1; return true; } - else if(equal(id_Cause)) { type = 2; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_ActivationID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_ActivationID() { set(reject); type=1;} - void select_id_Cause() { set(ignore); type=2;} - void select_id_CriticalityDiagnostics() { set(ignore); type=3;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - ActivationID& select_id_ActivationID() { return set(1); } - ActivationID const* get_id_ActivationID() const { return get(1); } - Cause& select_id_Cause() { return set(2); } - Cause const* get_id_Cause() const { return get(2); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(3); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(3); } - bool is_unknown() const { return type == 4; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_ActivationID()); return true; - case 2: v(select_id_Cause()); return true; - case 3: v(select_id_CriticalityDiagnostics()); return true; - case 4: if(type != 4) {clear(); asn::base::set();} type = 4; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(ActivationID)]; - char dummy2[sizeof(Cause)]; - char dummy3[sizeof(CriticalityDiagnostics)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_ActivationID() { set(mandatory); type=1;} - void select_id_Cause() { set(mandatory); type=2;} - void select_id_CriticalityDiagnostics() { set(optional); type=3;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ENDCCellActivationFailure ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ENDCCellActivationFailure-IEs}}, - ... -} -*/ - -struct ENDCCellActivationFailure : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "ENDCCellActivationFailure";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -ServedNRCellsToActivate-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct ServedNRCellsToActivate_Item_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ServedNRCellsToActivate-Item::= SEQUENCE { - nrCellID NRCGI, - iE-Extensions ProtocolExtensionContainer { {ServedNRCellsToActivate-Item-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct ServedNRCellsToActivate_Item : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "ServedNRCellsToActivate-Item";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct nrCellID_t : NRCGI - { - static constexpr const char* name() {return "nrCellID_t";} - using parent_t = NRCGI; - - }; - nrCellID_t& ref_nrCellID() {return nrCellID;} - nrCellID_t const& ref_nrCellID() const {return nrCellID;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(nrCellID); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(nrCellID); - v(iE_Extensions); - - }; - void clear() - { - nrCellID.clear(); - iE_Extensions.clear(); - - }; - private: - nrCellID_t nrCellID; - iE_Extensions_t iE_Extensions; - -}; -/* -ServedNRCellsToActivate::= SEQUENCE (SIZE (1.. maxCellinengNB)) OF ServedNRCellsToActivate-Item -*/ - -struct ServedNRCellsToActivate_elm : ServedNRCellsToActivate_Item -{ - static constexpr const char* name() {return "ServedNRCellsToActivate_elm";} - using parent_t = ServedNRCellsToActivate_Item; - -}; -struct ServedNRCellsToActivate : asn::sequenceof -{ - static constexpr const char* name() {return "ServedNRCellsToActivate";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -ENDCCellActivationRequest-IEs X2AP-PROTOCOL-IES ::= { - { ID id-ServedNRCellsToActivate CRITICALITY reject TYPE ServedNRCellsToActivate PRESENCE mandatory}| - { ID id-ActivationID CRITICALITY reject TYPE ActivationID PRESENCE mandatory}, - ... -} -*/ - -struct ENDCCellActivationRequest_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_ServedNRCellsToActivate() { set(id_ServedNRCellsToActivate); type=1;} - void select_id_ActivationID() { set(id_ActivationID); type=2;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_ServedNRCellsToActivate)) { type = 1; return true; } - else if(equal(id_ActivationID)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_ServedNRCellsToActivate);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_ActivationID);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_ServedNRCellsToActivate() { set(reject); type=1;} - void select_id_ActivationID() { set(reject); type=2;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - ServedNRCellsToActivate& select_id_ServedNRCellsToActivate() { return set(1); } - ServedNRCellsToActivate const* get_id_ServedNRCellsToActivate() const { return get(1); } - ActivationID& select_id_ActivationID() { return set(2); } - ActivationID const* get_id_ActivationID() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_ServedNRCellsToActivate()); return true; - case 2: v(select_id_ActivationID()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(ActivationID)]; - char dummy2[sizeof(ServedNRCellsToActivate)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_ServedNRCellsToActivate() { set(mandatory); type=1;} - void select_id_ActivationID() { set(mandatory); type=2;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ENDCCellActivationRequest ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ENDCCellActivationRequest-IEs}}, - ... -} -*/ - -struct ENDCCellActivationRequest : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "ENDCCellActivationRequest";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -ENDCCellActivationResponse-IEs X2AP-PROTOCOL-IES ::= { - { ID id-ActivatedNRCellList CRITICALITY ignore TYPE ActivatedNRCellList PRESENCE mandatory}| - { ID id-ActivationID CRITICALITY reject TYPE ActivationID PRESENCE mandatory}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, - ... -} -*/ - -struct ENDCCellActivationResponse_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_ActivatedNRCellList() { set(id_ActivatedNRCellList); type=1;} - void select_id_ActivationID() { set(id_ActivationID); type=2;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=3;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_ActivatedNRCellList)) { type = 1; return true; } - else if(equal(id_ActivationID)) { type = 2; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_ActivatedNRCellList);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_ActivationID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_ActivatedNRCellList() { set(ignore); type=1;} - void select_id_ActivationID() { set(reject); type=2;} - void select_id_CriticalityDiagnostics() { set(ignore); type=3;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - ActivatedNRCellList& select_id_ActivatedNRCellList() { return set(1); } - ActivatedNRCellList const* get_id_ActivatedNRCellList() const { return get(1); } - ActivationID& select_id_ActivationID() { return set(2); } - ActivationID const* get_id_ActivationID() const { return get(2); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(3); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(3); } - bool is_unknown() const { return type == 4; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_ActivatedNRCellList()); return true; - case 2: v(select_id_ActivationID()); return true; - case 3: v(select_id_CriticalityDiagnostics()); return true; - case 4: if(type != 4) {clear(); asn::base::set();} type = 4; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(ActivatedNRCellList)]; - char dummy2[sizeof(ActivationID)]; - char dummy3[sizeof(CriticalityDiagnostics)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_ActivatedNRCellList() { set(mandatory); type=1;} - void select_id_ActivationID() { set(mandatory); type=2;} - void select_id_CriticalityDiagnostics() { set(optional); type=3;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ENDCCellActivationResponse ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ENDCCellActivationResponse-IEs}}, - ... -} -*/ - -struct ENDCCellActivationResponse : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "ENDCCellActivationResponse";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -FDD-InfoServedNRCell-Information-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct FDD_InfoServedNRCell_Information_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -FDD-InfoServedNRCell-Information ::= SEQUENCE { - ul-NRFreqInfo NRFreqInfo, - dl-NRFreqInfo NRFreqInfo, - ul-NR-TxBW NR-TxBW, - dl-NR-TxBW NR-TxBW, - iE-Extensions ProtocolExtensionContainer { {FDD-InfoServedNRCell-Information-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct FDD_InfoServedNRCell_Information : asn::sequence<5, 0, true, 1> -{ - static constexpr const char* name() {return "FDD-InfoServedNRCell-Information";} - using parent_t = asn::sequence<5, 0, true, 1>; - struct ul_NRFreqInfo_t : NRFreqInfo - { - static constexpr const char* name() {return "ul_NRFreqInfo_t";} - using parent_t = NRFreqInfo; - - }; - ul_NRFreqInfo_t& ref_ul_NRFreqInfo() {return ul_NRFreqInfo;} - ul_NRFreqInfo_t const& ref_ul_NRFreqInfo() const {return ul_NRFreqInfo;} - struct dl_NRFreqInfo_t : NRFreqInfo - { - static constexpr const char* name() {return "dl_NRFreqInfo_t";} - using parent_t = NRFreqInfo; - - }; - dl_NRFreqInfo_t& ref_dl_NRFreqInfo() {return dl_NRFreqInfo;} - dl_NRFreqInfo_t const& ref_dl_NRFreqInfo() const {return dl_NRFreqInfo;} - struct ul_NR_TxBW_t : NR_TxBW - { - static constexpr const char* name() {return "ul_NR_TxBW_t";} - using parent_t = NR_TxBW; - - }; - ul_NR_TxBW_t& ref_ul_NR_TxBW() {return ul_NR_TxBW;} - ul_NR_TxBW_t const& ref_ul_NR_TxBW() const {return ul_NR_TxBW;} - struct dl_NR_TxBW_t : NR_TxBW - { - static constexpr const char* name() {return "dl_NR_TxBW_t";} - using parent_t = NR_TxBW; - - }; - dl_NR_TxBW_t& ref_dl_NR_TxBW() {return dl_NR_TxBW;} - dl_NR_TxBW_t const& ref_dl_NR_TxBW() const {return dl_NR_TxBW;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(ul_NRFreqInfo); - v(dl_NRFreqInfo); - v(ul_NR_TxBW); - v(dl_NR_TxBW); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(ul_NRFreqInfo); - v(dl_NRFreqInfo); - v(ul_NR_TxBW); - v(dl_NR_TxBW); - v(iE_Extensions); - - }; - void clear() - { - ul_NRFreqInfo.clear(); - dl_NRFreqInfo.clear(); - ul_NR_TxBW.clear(); - dl_NR_TxBW.clear(); - iE_Extensions.clear(); - - }; - private: - ul_NRFreqInfo_t ul_NRFreqInfo; - dl_NRFreqInfo_t dl_NRFreqInfo; - ul_NR_TxBW_t ul_NR_TxBW; - dl_NR_TxBW_t dl_NR_TxBW; - iE_Extensions_t iE_Extensions; - -}; -/* -TDD-InfoServedNRCell-Information-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct TDD_InfoServedNRCell_Information_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -TDD-InfoServedNRCell-Information ::= SEQUENCE { - nRFreqInfo NRFreqInfo, - nR-TxBW NR-TxBW, - iE-Extensions ProtocolExtensionContainer { {TDD-InfoServedNRCell-Information-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct TDD_InfoServedNRCell_Information : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "TDD-InfoServedNRCell-Information";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct nRFreqInfo_t : NRFreqInfo - { - static constexpr const char* name() {return "nRFreqInfo_t";} - using parent_t = NRFreqInfo; - - }; - nRFreqInfo_t& ref_nRFreqInfo() {return nRFreqInfo;} - nRFreqInfo_t const& ref_nRFreqInfo() const {return nRFreqInfo;} - struct nR_TxBW_t : NR_TxBW - { - static constexpr const char* name() {return "nR_TxBW_t";} - using parent_t = NR_TxBW; - - }; - nR_TxBW_t& ref_nR_TxBW() {return nR_TxBW;} - nR_TxBW_t const& ref_nR_TxBW() const {return nR_TxBW;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(nRFreqInfo); - v(nR_TxBW); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(nRFreqInfo); - v(nR_TxBW); - v(iE_Extensions); - - }; - void clear() - { - nRFreqInfo.clear(); - nR_TxBW.clear(); - iE_Extensions.clear(); - - }; - private: - nRFreqInfo_t nRFreqInfo; - nR_TxBW_t nR_TxBW; - iE_Extensions_t iE_Extensions; - -}; -/* -ServedNRCell-Information-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct ServedNRCell_Information_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ServedNRCell-Information ::= SEQUENCE { - nrpCI NRPCI, - nrCellID NRCGI, - fiveGS-TAC FiveGS-TAC OPTIONAL, - configured-TAC TAC OPTIONAL, - broadcastPLMNs BroadcastPLMNs-Item, - nrModeInfo CHOICE { - fdd FDD-InfoServedNRCell-Information, - tdd TDD-InfoServedNRCell-Information, - ... - }, - measurementTimingConfiguration OCTET STRING, - iE-Extensions ProtocolExtensionContainer { {ServedNRCell-Information-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct ServedNRCell_Information : asn::sequence<8, 0, true, 3> -{ - static constexpr const char* name() {return "ServedNRCell-Information";} - using parent_t = asn::sequence<8, 0, true, 3>; - struct nrpCI_t : NRPCI - { - static constexpr const char* name() {return "nrpCI_t";} - using parent_t = NRPCI; - - }; - nrpCI_t& ref_nrpCI() {return nrpCI;} - nrpCI_t const& ref_nrpCI() const {return nrpCI;} - struct nrCellID_t : NRCGI - { - static constexpr const char* name() {return "nrCellID_t";} - using parent_t = NRCGI; - - }; - nrCellID_t& ref_nrCellID() {return nrCellID;} - nrCellID_t const& ref_nrCellID() const {return nrCellID;} - struct fiveGS_TAC_t : FiveGS_TAC - { - static constexpr const char* name() {return "fiveGS_TAC_t";} - using parent_t = FiveGS_TAC; - static constexpr bool optional = true; - - }; - fiveGS_TAC_t& set_fiveGS_TAC() { fiveGS_TAC.setpresent(true); return fiveGS_TAC;} - fiveGS_TAC_t const* get_fiveGS_TAC() const {return fiveGS_TAC.is_valid() ? &fiveGS_TAC : nullptr;} - struct configured_TAC_t : TAC - { - static constexpr const char* name() {return "configured_TAC_t";} - using parent_t = TAC; - static constexpr bool optional = true; - - }; - configured_TAC_t& set_configured_TAC() { configured_TAC.setpresent(true); return configured_TAC;} - configured_TAC_t const* get_configured_TAC() const {return configured_TAC.is_valid() ? &configured_TAC : nullptr;} - struct broadcastPLMNs_t : BroadcastPLMNs_Item - { - static constexpr const char* name() {return "broadcastPLMNs_t";} - using parent_t = BroadcastPLMNs_Item; - - }; - broadcastPLMNs_t& ref_broadcastPLMNs() {return broadcastPLMNs;} - broadcastPLMNs_t const& ref_broadcastPLMNs() const {return broadcastPLMNs;} - struct nrModeInfo_t : asn::choice<2, 0, true> - { - static constexpr const char* name() {return "nrModeInfo_t";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~nrModeInfo_t() {clear();} - struct fdd_t : FDD_InfoServedNRCell_Information - { - static constexpr const char* name() {return "fdd_t";} - using parent_t = FDD_InfoServedNRCell_Information; - - }; - struct tdd_t : TDD_InfoServedNRCell_Information - { - static constexpr const char* name() {return "tdd_t";} - using parent_t = TDD_InfoServedNRCell_Information; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - fdd_t& select_fdd() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - fdd_t const* get_fdd() const { if(get_index() == 1) { return &var.as();} return nullptr; } - tdd_t& select_tdd() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - tdd_t const* get_tdd() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(fdd_t)]; - char dummy2[sizeof(tdd_t)]; - - }; - asn::variant var; - index_type index {0}; - }; - nrModeInfo_t& ref_nrModeInfo() {return nrModeInfo;} - nrModeInfo_t const& ref_nrModeInfo() const {return nrModeInfo;} - struct measurementTimingConfiguration_t : asn::ostring<> - { - static constexpr const char* name() {return "measurementTimingConfiguration_t";} - using parent_t = asn::ostring<>; - - }; - - measurementTimingConfiguration_t& ref_measurementTimingConfiguration() {return measurementTimingConfiguration;} - measurementTimingConfiguration_t const& ref_measurementTimingConfiguration() const {return measurementTimingConfiguration;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(nrpCI); - v(nrCellID); - v(fiveGS_TAC); - v(configured_TAC); - v(broadcastPLMNs); - v(nrModeInfo); - v(measurementTimingConfiguration); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(nrpCI); - v(nrCellID); - v(fiveGS_TAC); - v(configured_TAC); - v(broadcastPLMNs); - v(nrModeInfo); - v(measurementTimingConfiguration); - v(iE_Extensions); - - }; - void clear() - { - nrpCI.clear(); - nrCellID.clear(); - fiveGS_TAC.clear(); - configured_TAC.clear(); - broadcastPLMNs.clear(); - nrModeInfo.clear(); - measurementTimingConfiguration.clear(); - iE_Extensions.clear(); - - }; - private: - nrpCI_t nrpCI; - nrCellID_t nrCellID; - fiveGS_TAC_t fiveGS_TAC; - configured_TAC_t configured_TAC; - broadcastPLMNs_t broadcastPLMNs; - nrModeInfo_t nrModeInfo; - measurementTimingConfiguration_t measurementTimingConfiguration; - iE_Extensions_t iE_Extensions; - -}; -/* -En-gNBServedCells-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct En_gNBServedCells_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ServedNRcellsENDCX2ManagementList ::= SEQUENCE (SIZE (1.. maxCellinengNB)) OF SEQUENCE { - servedNRCellInfo ServedNRCell-Information, - nRNeighbourInfo NRNeighbour-Information OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {En-gNBServedCells-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct ServedNRcellsENDCX2ManagementList_elm : asn::sequence<3, 0, true, 2> -{ - static constexpr const char* name() {return "ServedNRcellsENDCX2ManagementList_elm";} - using parent_t = asn::sequence<3, 0, true, 2>; - struct servedNRCellInfo_t : ServedNRCell_Information - { - static constexpr const char* name() {return "servedNRCellInfo_t";} - using parent_t = ServedNRCell_Information; - - }; - servedNRCellInfo_t& ref_servedNRCellInfo() {return servedNRCellInfo;} - servedNRCellInfo_t const& ref_servedNRCellInfo() const {return servedNRCellInfo;} - struct nRNeighbourInfo_t : NRNeighbour_Information - { - static constexpr const char* name() {return "nRNeighbourInfo_t";} - using parent_t = NRNeighbour_Information; - static constexpr bool optional = true; - - }; - nRNeighbourInfo_t& set_nRNeighbourInfo() { nRNeighbourInfo.setpresent(true); return nRNeighbourInfo;} - nRNeighbourInfo_t const* get_nRNeighbourInfo() const {return nRNeighbourInfo.is_valid() ? &nRNeighbourInfo : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(servedNRCellInfo); - v(nRNeighbourInfo); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(servedNRCellInfo); - v(nRNeighbourInfo); - v(iE_Extensions); - - }; - void clear() - { - servedNRCellInfo.clear(); - nRNeighbourInfo.clear(); - iE_Extensions.clear(); - - }; - private: - servedNRCellInfo_t servedNRCellInfo; - nRNeighbourInfo_t nRNeighbourInfo; - iE_Extensions_t iE_Extensions; - -}; -struct ServedNRcellsENDCX2ManagementList : asn::sequenceof -{ - static constexpr const char* name() {return "ServedNRcellsENDCX2ManagementList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -ServedNRCellsToModify-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct ServedNRCellsToModify_Item_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ServedNRCellsToModify-Item::= SEQUENCE { - old-nrcgi NRCGI, - servedNRCellInformation ServedNRCell-Information, - nrNeighbourInformation NRNeighbour-Information OPTIONAL, - nrDeactivationIndication DeactivationIndication OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {ServedNRCellsToModify-Item-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct ServedNRCellsToModify_Item : asn::sequence<5, 0, true, 3> -{ - static constexpr const char* name() {return "ServedNRCellsToModify-Item";} - using parent_t = asn::sequence<5, 0, true, 3>; - struct old_nrcgi_t : NRCGI - { - static constexpr const char* name() {return "old_nrcgi_t";} - using parent_t = NRCGI; - - }; - old_nrcgi_t& ref_old_nrcgi() {return old_nrcgi;} - old_nrcgi_t const& ref_old_nrcgi() const {return old_nrcgi;} - struct servedNRCellInformation_t : ServedNRCell_Information - { - static constexpr const char* name() {return "servedNRCellInformation_t";} - using parent_t = ServedNRCell_Information; - - }; - servedNRCellInformation_t& ref_servedNRCellInformation() {return servedNRCellInformation;} - servedNRCellInformation_t const& ref_servedNRCellInformation() const {return servedNRCellInformation;} - struct nrNeighbourInformation_t : NRNeighbour_Information - { - static constexpr const char* name() {return "nrNeighbourInformation_t";} - using parent_t = NRNeighbour_Information; - static constexpr bool optional = true; - - }; - nrNeighbourInformation_t& set_nrNeighbourInformation() { nrNeighbourInformation.setpresent(true); return nrNeighbourInformation;} - nrNeighbourInformation_t const* get_nrNeighbourInformation() const {return nrNeighbourInformation.is_valid() ? &nrNeighbourInformation : nullptr;} - struct nrDeactivationIndication_t : DeactivationIndication - { - static constexpr const char* name() {return "nrDeactivationIndication_t";} - using parent_t = DeactivationIndication; - static constexpr bool optional = true; - - }; - nrDeactivationIndication_t& set_nrDeactivationIndication() { nrDeactivationIndication.setpresent(true); return nrDeactivationIndication;} - nrDeactivationIndication_t const* get_nrDeactivationIndication() const {return nrDeactivationIndication.is_valid() ? &nrDeactivationIndication : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(old_nrcgi); - v(servedNRCellInformation); - v(nrNeighbourInformation); - v(nrDeactivationIndication); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(old_nrcgi); - v(servedNRCellInformation); - v(nrNeighbourInformation); - v(nrDeactivationIndication); - v(iE_Extensions); - - }; - void clear() - { - old_nrcgi.clear(); - servedNRCellInformation.clear(); - nrNeighbourInformation.clear(); - nrDeactivationIndication.clear(); - iE_Extensions.clear(); - - }; - private: - old_nrcgi_t old_nrcgi; - servedNRCellInformation_t servedNRCellInformation; - nrNeighbourInformation_t nrNeighbourInformation; - nrDeactivationIndication_t nrDeactivationIndication; - iE_Extensions_t iE_Extensions; - -}; -/* -ServedNRcellsToModifyENDCConfUpdList ::= SEQUENCE (SIZE (1..maxCellinengNB)) OF ServedNRCellsToModify-Item -*/ - -struct ServedNRcellsToModifyENDCConfUpdList_elm : ServedNRCellsToModify_Item -{ - static constexpr const char* name() {return "ServedNRcellsToModifyENDCConfUpdList_elm";} - using parent_t = ServedNRCellsToModify_Item; - -}; -struct ServedNRcellsToModifyENDCConfUpdList : asn::sequenceof -{ - static constexpr const char* name() {return "ServedNRcellsToModifyENDCConfUpdList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -ServedNRcellsToDeleteENDCConfUpdList ::= SEQUENCE (SIZE (1..maxCellinengNB)) OF NRCGI -*/ - -struct ServedNRcellsToDeleteENDCConfUpdList_elm : NRCGI -{ - static constexpr const char* name() {return "ServedNRcellsToDeleteENDCConfUpdList_elm";} - using parent_t = NRCGI; - -}; -struct ServedNRcellsToDeleteENDCConfUpdList : asn::sequenceof -{ - static constexpr const char* name() {return "ServedNRcellsToDeleteENDCConfUpdList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -En-gNB-ENDCConfigUpdateIEs X2AP-PROTOCOL-IES ::= { - { ID id-ServedNRcellsENDCX2ManagementList CRITICALITY reject TYPE ServedNRcellsENDCX2ManagementList PRESENCE optional }| - { ID id-ServedNRcellsToModifyListENDCConfUpd CRITICALITY reject TYPE ServedNRcellsToModifyENDCConfUpdList PRESENCE optional }| - { ID id-ServedNRcellsToDeleteListENDCConfUpd CRITICALITY reject TYPE ServedNRcellsToDeleteENDCConfUpdList PRESENCE optional }, - ... -} -*/ - -struct En_gNB_ENDCConfigUpdateIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_ServedNRcellsENDCX2ManagementList() { set(id_ServedNRcellsENDCX2ManagementList); type=1;} - void select_id_ServedNRcellsToModifyListENDCConfUpd() { set(id_ServedNRcellsToModifyListENDCConfUpd); type=2;} - void select_id_ServedNRcellsToDeleteListENDCConfUpd() { set(id_ServedNRcellsToDeleteListENDCConfUpd); type=3;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_ServedNRcellsENDCX2ManagementList)) { type = 1; return true; } - else if(equal(id_ServedNRcellsToModifyListENDCConfUpd)) { type = 2; return true; } - else if(equal(id_ServedNRcellsToDeleteListENDCConfUpd)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_ServedNRcellsENDCX2ManagementList);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_ServedNRcellsToModifyListENDCConfUpd);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_ServedNRcellsToDeleteListENDCConfUpd);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_ServedNRcellsENDCX2ManagementList() { set(reject); type=1;} - void select_id_ServedNRcellsToModifyListENDCConfUpd() { set(reject); type=2;} - void select_id_ServedNRcellsToDeleteListENDCConfUpd() { set(reject); type=3;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(reject)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(reject);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - ServedNRcellsENDCX2ManagementList& select_id_ServedNRcellsENDCX2ManagementList() { return set(1); } - ServedNRcellsENDCX2ManagementList const* get_id_ServedNRcellsENDCX2ManagementList() const { return get(1); } - ServedNRcellsToModifyENDCConfUpdList& select_id_ServedNRcellsToModifyListENDCConfUpd() { return set(2); } - ServedNRcellsToModifyENDCConfUpdList const* get_id_ServedNRcellsToModifyListENDCConfUpd() const { return get(2); } - ServedNRcellsToDeleteENDCConfUpdList& select_id_ServedNRcellsToDeleteListENDCConfUpd() { return set(3); } - ServedNRcellsToDeleteENDCConfUpdList const* get_id_ServedNRcellsToDeleteListENDCConfUpd() const { return get(3); } - bool is_unknown() const { return type == 4; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_ServedNRcellsENDCX2ManagementList()); return true; - case 2: v(select_id_ServedNRcellsToModifyListENDCConfUpd()); return true; - case 3: v(select_id_ServedNRcellsToDeleteListENDCConfUpd()); return true; - case 4: if(type != 4) {clear(); asn::base::set();} type = 4; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(ServedNRcellsENDCX2ManagementList)]; - char dummy2[sizeof(ServedNRcellsToDeleteENDCConfUpdList)]; - char dummy3[sizeof(ServedNRcellsToModifyENDCConfUpdList)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_ServedNRcellsENDCX2ManagementList() { set(optional); type=1;} - void select_id_ServedNRcellsToModifyListENDCConfUpd() { set(optional); type=2;} - void select_id_ServedNRcellsToDeleteListENDCConfUpd() { set(optional); type=3;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -InitiatingNodeType-EndcConfigUpdate::= CHOICE { - init-eNB ProtocolIE-Container {{ENB-ENDCConfigUpdateIEs}}, - init-en-gNB ProtocolIE-Container {{En-gNB-ENDCConfigUpdateIEs}}, - ... -} -*/ - -struct InitiatingNodeType_EndcConfigUpdate : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "InitiatingNodeType-EndcConfigUpdate";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~InitiatingNodeType_EndcConfigUpdate() {clear();} - struct init_eNB_t : ProtocolIE_Container - { - static constexpr const char* name() {return "init_eNB_t";} - using parent_t = ProtocolIE_Container; - - }; - struct init_en_gNB_t : ProtocolIE_Container - { - static constexpr const char* name() {return "init_en_gNB_t";} - using parent_t = ProtocolIE_Container; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - init_eNB_t& select_init_eNB() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - init_eNB_t const* get_init_eNB() const { if(get_index() == 1) { return &var.as();} return nullptr; } - init_en_gNB_t& select_init_en_gNB() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - init_en_gNB_t const* get_init_en_gNB() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(init_eNB_t)]; - char dummy2[sizeof(init_en_gNB_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -ENDCConfigurationUpdate-IEs X2AP-PROTOCOL-IES ::= { - { ID id-InitiatingNodeType-EndcConfigUpdate CRITICALITY reject TYPE InitiatingNodeType-EndcConfigUpdate PRESENCE mandatory}, - ... -} -*/ - -struct ENDCConfigurationUpdate_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_InitiatingNodeType_EndcConfigUpdate() { set(id_InitiatingNodeType_EndcConfigUpdate); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_InitiatingNodeType_EndcConfigUpdate)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_InitiatingNodeType_EndcConfigUpdate);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_InitiatingNodeType_EndcConfigUpdate() { set(reject); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - InitiatingNodeType_EndcConfigUpdate& select_id_InitiatingNodeType_EndcConfigUpdate() { return set(1); } - InitiatingNodeType_EndcConfigUpdate const* get_id_InitiatingNodeType_EndcConfigUpdate() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_InitiatingNodeType_EndcConfigUpdate()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(InitiatingNodeType_EndcConfigUpdate)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_InitiatingNodeType_EndcConfigUpdate() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ENDCConfigurationUpdate ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ENDCConfigurationUpdate-IEs}}, - ... -} -*/ - -struct ENDCConfigurationUpdate : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "ENDCConfigurationUpdate";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -En-gNB-ENDCConfigUpdateAckIEs X2AP-PROTOCOL-IES ::= { - { ID id-ServedNRcellsENDCX2ManagementList CRITICALITY reject TYPE ServedNRcellsENDCX2ManagementList PRESENCE optional}, - ... -} -*/ - -struct En_gNB_ENDCConfigUpdateAckIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_ServedNRcellsENDCX2ManagementList() { set(id_ServedNRcellsENDCX2ManagementList); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_ServedNRcellsENDCX2ManagementList)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_ServedNRcellsENDCX2ManagementList);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_ServedNRcellsENDCX2ManagementList() { set(reject); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - ServedNRcellsENDCX2ManagementList& select_id_ServedNRcellsENDCX2ManagementList() { return set(1); } - ServedNRcellsENDCX2ManagementList const* get_id_ServedNRcellsENDCX2ManagementList() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_ServedNRcellsENDCX2ManagementList()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(ServedNRcellsENDCX2ManagementList)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_ServedNRcellsENDCX2ManagementList() { set(optional); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RespondingNodeType-EndcConfigUpdate::= CHOICE { - respond-eNB ProtocolIE-Container {{ENB-ENDCConfigUpdateAckIEs}}, - respond-en-gNB ProtocolIE-Container {{En-gNB-ENDCConfigUpdateAckIEs}}, - ... -} -*/ - -struct RespondingNodeType_EndcConfigUpdate : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "RespondingNodeType-EndcConfigUpdate";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~RespondingNodeType_EndcConfigUpdate() {clear();} - struct respond_eNB_t : ProtocolIE_Container - { - static constexpr const char* name() {return "respond_eNB_t";} - using parent_t = ProtocolIE_Container; - - }; - struct respond_en_gNB_t : ProtocolIE_Container - { - static constexpr const char* name() {return "respond_en_gNB_t";} - using parent_t = ProtocolIE_Container; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - respond_eNB_t& select_respond_eNB() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - respond_eNB_t const* get_respond_eNB() const { if(get_index() == 1) { return &var.as();} return nullptr; } - respond_en_gNB_t& select_respond_en_gNB() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - respond_en_gNB_t const* get_respond_en_gNB() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(respond_eNB_t)]; - char dummy2[sizeof(respond_en_gNB_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -ENDCConfigurationUpdateAcknowledge-IEs X2AP-PROTOCOL-IES ::= { - { ID id-RespondingNodeType-EndcConfigUpdate CRITICALITY reject TYPE RespondingNodeType-EndcConfigUpdate PRESENCE mandatory}, - ... -} -*/ - -struct ENDCConfigurationUpdateAcknowledge_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RespondingNodeType_EndcConfigUpdate() { set(id_RespondingNodeType_EndcConfigUpdate); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_RespondingNodeType_EndcConfigUpdate)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_RespondingNodeType_EndcConfigUpdate);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RespondingNodeType_EndcConfigUpdate() { set(reject); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - RespondingNodeType_EndcConfigUpdate& select_id_RespondingNodeType_EndcConfigUpdate() { return set(1); } - RespondingNodeType_EndcConfigUpdate const* get_id_RespondingNodeType_EndcConfigUpdate() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_RespondingNodeType_EndcConfigUpdate()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(RespondingNodeType_EndcConfigUpdate)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RespondingNodeType_EndcConfigUpdate() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ENDCConfigurationUpdateAcknowledge ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ENDCConfigurationUpdateAcknowledge-IEs}}, - ... -} -*/ - -struct ENDCConfigurationUpdateAcknowledge : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "ENDCConfigurationUpdateAcknowledge";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -ENDCConfigurationUpdateFailure-IEs X2AP-PROTOCOL-IES ::= { - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }| - { ID id-TimeToWait CRITICALITY ignore TYPE TimeToWait PRESENCE optional }, - ... -} -*/ - -struct ENDCConfigurationUpdateFailure_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_Cause() { set(id_Cause); type=1;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=2;} - void select_id_TimeToWait() { set(id_TimeToWait); type=3;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_Cause)) { type = 1; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 2; return true; } - else if(equal(id_TimeToWait)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_TimeToWait);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_Cause() { set(ignore); type=1;} - void select_id_CriticalityDiagnostics() { set(ignore); type=2;} - void select_id_TimeToWait() { set(ignore); type=3;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - Cause& select_id_Cause() { return set(1); } - Cause const* get_id_Cause() const { return get(1); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(2); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(2); } - TimeToWait& select_id_TimeToWait() { return set(3); } - TimeToWait const* get_id_TimeToWait() const { return get(3); } - bool is_unknown() const { return type == 4; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_Cause()); return true; - case 2: v(select_id_CriticalityDiagnostics()); return true; - case 3: v(select_id_TimeToWait()); return true; - case 4: if(type != 4) {clear(); asn::base::set();} type = 4; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(CriticalityDiagnostics)]; - char dummy3[sizeof(TimeToWait)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_Cause() { set(mandatory); type=1;} - void select_id_CriticalityDiagnostics() { set(optional); type=2;} - void select_id_TimeToWait() { set(optional); type=3;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ENDCConfigurationUpdateFailure ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ENDCConfigurationUpdateFailure-IEs}}, - ... -} -*/ - -struct ENDCConfigurationUpdateFailure : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "ENDCConfigurationUpdateFailure";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -ENDCPartialResetConfirm-IEs X2AP-PROTOCOL-IES ::= { - { ID id-UEs-Admitted-ToBeReset CRITICALITY reject TYPE UEsToBeResetList PRESENCE mandatory}, - ... -} -*/ - -struct ENDCPartialResetConfirm_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_UEs_Admitted_ToBeReset() { set(id_UEs_Admitted_ToBeReset); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_UEs_Admitted_ToBeReset)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_UEs_Admitted_ToBeReset);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_UEs_Admitted_ToBeReset() { set(reject); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UEsToBeResetList& select_id_UEs_Admitted_ToBeReset() { return set(1); } - UEsToBeResetList const* get_id_UEs_Admitted_ToBeReset() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_UEs_Admitted_ToBeReset()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(UEsToBeResetList)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_UEs_Admitted_ToBeReset() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ENDCPartialResetConfirm ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ENDCPartialResetConfirm-IEs}}, - ... -} -*/ - -struct ENDCPartialResetConfirm : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "ENDCPartialResetConfirm";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -ENDCPartialResetRequired-IEs X2AP-PROTOCOL-IES ::= { - { ID id-UEs-ToBeReset CRITICALITY reject TYPE UEsToBeResetList PRESENCE mandatory}| - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }, - ... -} -*/ - -struct ENDCPartialResetRequired_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_UEs_ToBeReset() { set(id_UEs_ToBeReset); type=1;} - void select_id_Cause() { set(id_Cause); type=2;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_UEs_ToBeReset)) { type = 1; return true; } - else if(equal(id_Cause)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_UEs_ToBeReset);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_UEs_ToBeReset() { set(reject); type=1;} - void select_id_Cause() { set(ignore); type=2;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UEsToBeResetList& select_id_UEs_ToBeReset() { return set(1); } - UEsToBeResetList const* get_id_UEs_ToBeReset() const { return get(1); } - Cause& select_id_Cause() { return set(2); } - Cause const* get_id_Cause() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_UEs_ToBeReset()); return true; - case 2: v(select_id_Cause()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(UEsToBeResetList)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_UEs_ToBeReset() { set(mandatory); type=1;} - void select_id_Cause() { set(mandatory); type=2;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ENDCPartialResetRequired ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ENDCPartialResetRequired-IEs}}, - ... -} -*/ - -struct ENDCPartialResetRequired : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "ENDCPartialResetRequired";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -ENDCX2RemovalFailure-IEs X2AP-PROTOCOL-IES ::= { - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory} | - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, - ... -} -*/ - -struct ENDCX2RemovalFailure_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_Cause() { set(id_Cause); type=1;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=2;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_Cause)) { type = 1; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_Cause() { set(ignore); type=1;} - void select_id_CriticalityDiagnostics() { set(ignore); type=2;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - Cause& select_id_Cause() { return set(1); } - Cause const* get_id_Cause() const { return get(1); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(2); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_Cause()); return true; - case 2: v(select_id_CriticalityDiagnostics()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(CriticalityDiagnostics)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_Cause() { set(mandatory); type=1;} - void select_id_CriticalityDiagnostics() { set(optional); type=2;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ENDCX2RemovalFailure ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ENDCX2RemovalFailure-IEs}}, - ... -} -*/ - -struct ENDCX2RemovalFailure : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "ENDCX2RemovalFailure";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -En-gNB-ENDCX2RemovalReqIEs X2AP-PROTOCOL-IES ::= { - { ID id-Globalen-gNB-ID CRITICALITY reject TYPE GlobalGNB-ID PRESENCE mandatory}, - ... -} -*/ - -struct En_gNB_ENDCX2RemovalReqIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_Globalen_gNB_ID() { set(id_Globalen_gNB_ID); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_Globalen_gNB_ID)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_Globalen_gNB_ID);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_Globalen_gNB_ID() { set(reject); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - GlobalGNB_ID& select_id_Globalen_gNB_ID() { return set(1); } - GlobalGNB_ID const* get_id_Globalen_gNB_ID() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_Globalen_gNB_ID()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(GlobalGNB_ID)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_Globalen_gNB_ID() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -InitiatingNodeType-EndcX2Removal ::= CHOICE { - init-eNB ProtocolIE-Container {{ENB-ENDCX2RemovalReqIEs}}, - init-en-gNB ProtocolIE-Container {{En-gNB-ENDCX2RemovalReqIEs}}, - ... -} -*/ - -struct InitiatingNodeType_EndcX2Removal : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "InitiatingNodeType-EndcX2Removal";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~InitiatingNodeType_EndcX2Removal() {clear();} - struct init_eNB_t : ProtocolIE_Container - { - static constexpr const char* name() {return "init_eNB_t";} - using parent_t = ProtocolIE_Container; - - }; - struct init_en_gNB_t : ProtocolIE_Container - { - static constexpr const char* name() {return "init_en_gNB_t";} - using parent_t = ProtocolIE_Container; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - init_eNB_t& select_init_eNB() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - init_eNB_t const* get_init_eNB() const { if(get_index() == 1) { return &var.as();} return nullptr; } - init_en_gNB_t& select_init_en_gNB() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - init_en_gNB_t const* get_init_en_gNB() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(init_eNB_t)]; - char dummy2[sizeof(init_en_gNB_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -ENDCX2RemovalRequest-IEs X2AP-PROTOCOL-IES ::= { - { ID id-InitiatingNodeType-EndcX2Removal CRITICALITY reject TYPE InitiatingNodeType-EndcX2Removal PRESENCE mandatory}, - ... -} -*/ - -struct ENDCX2RemovalRequest_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_InitiatingNodeType_EndcX2Removal() { set(id_InitiatingNodeType_EndcX2Removal); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_InitiatingNodeType_EndcX2Removal)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_InitiatingNodeType_EndcX2Removal);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_InitiatingNodeType_EndcX2Removal() { set(reject); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - InitiatingNodeType_EndcX2Removal& select_id_InitiatingNodeType_EndcX2Removal() { return set(1); } - InitiatingNodeType_EndcX2Removal const* get_id_InitiatingNodeType_EndcX2Removal() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_InitiatingNodeType_EndcX2Removal()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(InitiatingNodeType_EndcX2Removal)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_InitiatingNodeType_EndcX2Removal() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ENDCX2RemovalRequest ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ENDCX2RemovalRequest-IEs}}, - ... -} -*/ - -struct ENDCX2RemovalRequest : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "ENDCX2RemovalRequest";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -En-gNB-ENDCX2RemovalReqAckIEs X2AP-PROTOCOL-IES ::= { - { ID id-Globalen-gNB-ID CRITICALITY reject TYPE GlobalGNB-ID PRESENCE mandatory}, - ... -} -*/ - -struct En_gNB_ENDCX2RemovalReqAckIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_Globalen_gNB_ID() { set(id_Globalen_gNB_ID); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_Globalen_gNB_ID)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_Globalen_gNB_ID);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_Globalen_gNB_ID() { set(reject); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - GlobalGNB_ID& select_id_Globalen_gNB_ID() { return set(1); } - GlobalGNB_ID const* get_id_Globalen_gNB_ID() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_Globalen_gNB_ID()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(GlobalGNB_ID)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_Globalen_gNB_ID() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RespondingNodeType-EndcX2Removal ::= CHOICE { - respond-eNB ProtocolIE-Container {{ENB-ENDCX2RemovalReqAckIEs}}, - respond-en-gNB ProtocolIE-Container {{En-gNB-ENDCX2RemovalReqAckIEs}}, - ... -} -*/ - -struct RespondingNodeType_EndcX2Removal : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "RespondingNodeType-EndcX2Removal";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~RespondingNodeType_EndcX2Removal() {clear();} - struct respond_eNB_t : ProtocolIE_Container - { - static constexpr const char* name() {return "respond_eNB_t";} - using parent_t = ProtocolIE_Container; - - }; - struct respond_en_gNB_t : ProtocolIE_Container - { - static constexpr const char* name() {return "respond_en_gNB_t";} - using parent_t = ProtocolIE_Container; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - respond_eNB_t& select_respond_eNB() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - respond_eNB_t const* get_respond_eNB() const { if(get_index() == 1) { return &var.as();} return nullptr; } - respond_en_gNB_t& select_respond_en_gNB() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - respond_en_gNB_t const* get_respond_en_gNB() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(respond_eNB_t)]; - char dummy2[sizeof(respond_en_gNB_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -ENDCX2RemovalResponse-IEs X2AP-PROTOCOL-IES ::= { - { ID id-RespondingNodeType-EndcX2Removal CRITICALITY reject TYPE RespondingNodeType-EndcX2Removal PRESENCE mandatory}, - ... -} -*/ - -struct ENDCX2RemovalResponse_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RespondingNodeType_EndcX2Removal() { set(id_RespondingNodeType_EndcX2Removal); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_RespondingNodeType_EndcX2Removal)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_RespondingNodeType_EndcX2Removal);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RespondingNodeType_EndcX2Removal() { set(reject); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - RespondingNodeType_EndcX2Removal& select_id_RespondingNodeType_EndcX2Removal() { return set(1); } - RespondingNodeType_EndcX2Removal const* get_id_RespondingNodeType_EndcX2Removal() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_RespondingNodeType_EndcX2Removal()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(RespondingNodeType_EndcX2Removal)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RespondingNodeType_EndcX2Removal() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ENDCX2RemovalResponse ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ENDCX2RemovalResponse-IEs}}, - ... -} -*/ - -struct ENDCX2RemovalResponse : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "ENDCX2RemovalResponse";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -ENDCX2SetupFailure-IEs X2AP-PROTOCOL-IES ::= { - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory} | - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional } | - { ID id-TimeToWait CRITICALITY ignore TYPE TimeToWait PRESENCE optional }, - ... -} -*/ - -struct ENDCX2SetupFailure_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_Cause() { set(id_Cause); type=1;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=2;} - void select_id_TimeToWait() { set(id_TimeToWait); type=3;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_Cause)) { type = 1; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 2; return true; } - else if(equal(id_TimeToWait)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_TimeToWait);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_Cause() { set(ignore); type=1;} - void select_id_CriticalityDiagnostics() { set(ignore); type=2;} - void select_id_TimeToWait() { set(ignore); type=3;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - Cause& select_id_Cause() { return set(1); } - Cause const* get_id_Cause() const { return get(1); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(2); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(2); } - TimeToWait& select_id_TimeToWait() { return set(3); } - TimeToWait const* get_id_TimeToWait() const { return get(3); } - bool is_unknown() const { return type == 4; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_Cause()); return true; - case 2: v(select_id_CriticalityDiagnostics()); return true; - case 3: v(select_id_TimeToWait()); return true; - case 4: if(type != 4) {clear(); asn::base::set();} type = 4; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(CriticalityDiagnostics)]; - char dummy3[sizeof(TimeToWait)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_Cause() { set(mandatory); type=1;} - void select_id_CriticalityDiagnostics() { set(optional); type=2;} - void select_id_TimeToWait() { set(optional); type=3;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ENDCX2SetupFailure ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ENDCX2SetupFailure-IEs}}, - ... -} -*/ - -struct ENDCX2SetupFailure : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "ENDCX2SetupFailure";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -En-gNB-ENDCX2SetupReqIEs X2AP-PROTOCOL-IES ::= { - { ID id-Globalen-gNB-ID CRITICALITY reject TYPE GlobalGNB-ID PRESENCE mandatory}| - { ID id-ServedNRcellsENDCX2ManagementList CRITICALITY reject TYPE ServedNRcellsENDCX2ManagementList PRESENCE mandatory}, - ... -} -*/ - -struct En_gNB_ENDCX2SetupReqIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_Globalen_gNB_ID() { set(id_Globalen_gNB_ID); type=1;} - void select_id_ServedNRcellsENDCX2ManagementList() { set(id_ServedNRcellsENDCX2ManagementList); type=2;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_Globalen_gNB_ID)) { type = 1; return true; } - else if(equal(id_ServedNRcellsENDCX2ManagementList)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_Globalen_gNB_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_ServedNRcellsENDCX2ManagementList);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_Globalen_gNB_ID() { set(reject); type=1;} - void select_id_ServedNRcellsENDCX2ManagementList() { set(reject); type=2;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - GlobalGNB_ID& select_id_Globalen_gNB_ID() { return set(1); } - GlobalGNB_ID const* get_id_Globalen_gNB_ID() const { return get(1); } - ServedNRcellsENDCX2ManagementList& select_id_ServedNRcellsENDCX2ManagementList() { return set(2); } - ServedNRcellsENDCX2ManagementList const* get_id_ServedNRcellsENDCX2ManagementList() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_Globalen_gNB_ID()); return true; - case 2: v(select_id_ServedNRcellsENDCX2ManagementList()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(GlobalGNB_ID)]; - char dummy2[sizeof(ServedNRcellsENDCX2ManagementList)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_Globalen_gNB_ID() { set(mandatory); type=1;} - void select_id_ServedNRcellsENDCX2ManagementList() { set(mandatory); type=2;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -InitiatingNodeType-EndcX2Setup ::= CHOICE { - init-eNB ProtocolIE-Container {{ENB-ENDCX2SetupReqIEs}}, - init-en-gNB ProtocolIE-Container {{En-gNB-ENDCX2SetupReqIEs}}, - ... -} -*/ - -struct InitiatingNodeType_EndcX2Setup : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "InitiatingNodeType-EndcX2Setup";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~InitiatingNodeType_EndcX2Setup() {clear();} - struct init_eNB_t : ProtocolIE_Container - { - static constexpr const char* name() {return "init_eNB_t";} - using parent_t = ProtocolIE_Container; - - }; - struct init_en_gNB_t : ProtocolIE_Container - { - static constexpr const char* name() {return "init_en_gNB_t";} - using parent_t = ProtocolIE_Container; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - init_eNB_t& select_init_eNB() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - init_eNB_t const* get_init_eNB() const { if(get_index() == 1) { return &var.as();} return nullptr; } - init_en_gNB_t& select_init_en_gNB() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - init_en_gNB_t const* get_init_en_gNB() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(init_eNB_t)]; - char dummy2[sizeof(init_en_gNB_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -ENDCX2SetupRequest-IEs X2AP-PROTOCOL-IES ::= { - { ID id-InitiatingNodeType-EndcX2Setup CRITICALITY reject TYPE InitiatingNodeType-EndcX2Setup PRESENCE mandatory}, - ... -} -*/ - -struct ENDCX2SetupRequest_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_InitiatingNodeType_EndcX2Setup() { set(id_InitiatingNodeType_EndcX2Setup); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_InitiatingNodeType_EndcX2Setup)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_InitiatingNodeType_EndcX2Setup);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_InitiatingNodeType_EndcX2Setup() { set(reject); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - InitiatingNodeType_EndcX2Setup& select_id_InitiatingNodeType_EndcX2Setup() { return set(1); } - InitiatingNodeType_EndcX2Setup const* get_id_InitiatingNodeType_EndcX2Setup() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_InitiatingNodeType_EndcX2Setup()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(InitiatingNodeType_EndcX2Setup)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_InitiatingNodeType_EndcX2Setup() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ENDCX2SetupRequest ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ENDCX2SetupRequest-IEs}}, - ... -} -*/ - -struct ENDCX2SetupRequest : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "ENDCX2SetupRequest";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -En-gNB-ENDCX2SetupReqAckIEs X2AP-PROTOCOL-IES ::= { - { ID id-Globalen-gNB-ID CRITICALITY reject TYPE GlobalGNB-ID PRESENCE mandatory}| - { ID id-ServedNRcellsENDCX2ManagementList CRITICALITY reject TYPE ServedNRcellsENDCX2ManagementList PRESENCE mandatory}, - ... -} -*/ - -struct En_gNB_ENDCX2SetupReqAckIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_Globalen_gNB_ID() { set(id_Globalen_gNB_ID); type=1;} - void select_id_ServedNRcellsENDCX2ManagementList() { set(id_ServedNRcellsENDCX2ManagementList); type=2;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_Globalen_gNB_ID)) { type = 1; return true; } - else if(equal(id_ServedNRcellsENDCX2ManagementList)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_Globalen_gNB_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_ServedNRcellsENDCX2ManagementList);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_Globalen_gNB_ID() { set(reject); type=1;} - void select_id_ServedNRcellsENDCX2ManagementList() { set(reject); type=2;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - GlobalGNB_ID& select_id_Globalen_gNB_ID() { return set(1); } - GlobalGNB_ID const* get_id_Globalen_gNB_ID() const { return get(1); } - ServedNRcellsENDCX2ManagementList& select_id_ServedNRcellsENDCX2ManagementList() { return set(2); } - ServedNRcellsENDCX2ManagementList const* get_id_ServedNRcellsENDCX2ManagementList() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_Globalen_gNB_ID()); return true; - case 2: v(select_id_ServedNRcellsENDCX2ManagementList()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(GlobalGNB_ID)]; - char dummy2[sizeof(ServedNRcellsENDCX2ManagementList)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_Globalen_gNB_ID() { set(mandatory); type=1;} - void select_id_ServedNRcellsENDCX2ManagementList() { set(mandatory); type=2;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RespondingNodeType-EndcX2Setup ::= CHOICE { - respond-eNB ProtocolIE-Container {{ENB-ENDCX2SetupReqAckIEs}}, - respond-en-gNB ProtocolIE-Container {{En-gNB-ENDCX2SetupReqAckIEs}}, - ... -} -*/ - -struct RespondingNodeType_EndcX2Setup : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "RespondingNodeType-EndcX2Setup";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~RespondingNodeType_EndcX2Setup() {clear();} - struct respond_eNB_t : ProtocolIE_Container - { - static constexpr const char* name() {return "respond_eNB_t";} - using parent_t = ProtocolIE_Container; - - }; - struct respond_en_gNB_t : ProtocolIE_Container - { - static constexpr const char* name() {return "respond_en_gNB_t";} - using parent_t = ProtocolIE_Container; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - respond_eNB_t& select_respond_eNB() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - respond_eNB_t const* get_respond_eNB() const { if(get_index() == 1) { return &var.as();} return nullptr; } - respond_en_gNB_t& select_respond_en_gNB() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - respond_en_gNB_t const* get_respond_en_gNB() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(respond_eNB_t)]; - char dummy2[sizeof(respond_en_gNB_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -ENDCX2SetupResponse-IEs X2AP-PROTOCOL-IES ::= { - { ID id-RespondingNodeType-EndcX2Setup CRITICALITY reject TYPE RespondingNodeType-EndcX2Setup PRESENCE mandatory}, - ... -} -*/ - -struct ENDCX2SetupResponse_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RespondingNodeType_EndcX2Setup() { set(id_RespondingNodeType_EndcX2Setup); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_RespondingNodeType_EndcX2Setup)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_RespondingNodeType_EndcX2Setup);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RespondingNodeType_EndcX2Setup() { set(reject); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - RespondingNodeType_EndcX2Setup& select_id_RespondingNodeType_EndcX2Setup() { return set(1); } - RespondingNodeType_EndcX2Setup const* get_id_RespondingNodeType_EndcX2Setup() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_RespondingNodeType_EndcX2Setup()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(RespondingNodeType_EndcX2Setup)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RespondingNodeType_EndcX2Setup() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ENDCX2SetupResponse ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ENDCX2SetupResponse-IEs}}, - ... -} -*/ - -struct ENDCX2SetupResponse : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "ENDCX2SetupResponse";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -ListofEUTRACellsinNRCoordinationReq ::= SEQUENCE (SIZE (1..maxCellineNB)) OF ECGI -*/ - -struct ListofEUTRACellsinNRCoordinationReq_elm : ECGI -{ - static constexpr const char* name() {return "ListofEUTRACellsinNRCoordinationReq_elm";} - using parent_t = ECGI; - -}; -struct ListofEUTRACellsinNRCoordinationReq : asn::sequenceof -{ - static constexpr const char* name() {return "ListofEUTRACellsinNRCoordinationReq";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -ListofNRCellsinNRCoordinationReq ::= SEQUENCE (SIZE (0..maxnoNRcellsSpectrumSharingWithE-UTRA)) OF NRCGI -*/ - -struct ListofNRCellsinNRCoordinationReq_elm : NRCGI -{ - static constexpr const char* name() {return "ListofNRCellsinNRCoordinationReq_elm";} - using parent_t = NRCGI; - -}; -struct ListofNRCellsinNRCoordinationReq : asn::sequenceof -{ - static constexpr const char* name() {return "ListofNRCellsinNRCoordinationReq";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -En-gNB-EUTRA-NRCellResourceCoordinationReqIEs X2AP-PROTOCOL-IES ::= { - { ID id-DataTrafficResourceIndication CRITICALITY reject TYPE DataTrafficResourceIndication PRESENCE mandatory}| - { ID id-ListofEUTRACellsinNRCoordinationReq CRITICALITY reject TYPE ListofEUTRACellsinNRCoordinationReq PRESENCE mandatory }| - { ID id-SpectrumSharingGroupID CRITICALITY reject TYPE SpectrumSharingGroupID PRESENCE mandatory}| - { ID id-ListofNRCellsinNRCoordinationReq CRITICALITY reject TYPE ListofNRCellsinNRCoordinationReq PRESENCE mandatory}, - ... -} -*/ - -struct En_gNB_EUTRA_NRCellResourceCoordinationReqIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_DataTrafficResourceIndication() { set(id_DataTrafficResourceIndication); type=1;} - void select_id_ListofEUTRACellsinNRCoordinationReq() { set(id_ListofEUTRACellsinNRCoordinationReq); type=2;} - void select_id_SpectrumSharingGroupID() { set(id_SpectrumSharingGroupID); type=3;} - void select_id_ListofNRCellsinNRCoordinationReq() { set(id_ListofNRCellsinNRCoordinationReq); type=4;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_DataTrafficResourceIndication)) { type = 1; return true; } - else if(equal(id_ListofEUTRACellsinNRCoordinationReq)) { type = 2; return true; } - else if(equal(id_SpectrumSharingGroupID)) { type = 3; return true; } - else if(equal(id_ListofNRCellsinNRCoordinationReq)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_DataTrafficResourceIndication);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_ListofEUTRACellsinNRCoordinationReq);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_SpectrumSharingGroupID);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_ListofNRCellsinNRCoordinationReq);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_DataTrafficResourceIndication() { set(reject); type=1;} - void select_id_ListofEUTRACellsinNRCoordinationReq() { set(reject); type=2;} - void select_id_SpectrumSharingGroupID() { set(reject); type=3;} - void select_id_ListofNRCellsinNRCoordinationReq() { set(reject); type=4;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(reject)) { type = 3; return true; } - else if(equal(reject)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(reject);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(reject);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - DataTrafficResourceIndication& select_id_DataTrafficResourceIndication() { return set(1); } - DataTrafficResourceIndication const* get_id_DataTrafficResourceIndication() const { return get(1); } - ListofEUTRACellsinNRCoordinationReq& select_id_ListofEUTRACellsinNRCoordinationReq() { return set(2); } - ListofEUTRACellsinNRCoordinationReq const* get_id_ListofEUTRACellsinNRCoordinationReq() const { return get(2); } - SpectrumSharingGroupID& select_id_SpectrumSharingGroupID() { return set(3); } - SpectrumSharingGroupID const* get_id_SpectrumSharingGroupID() const { return get(3); } - ListofNRCellsinNRCoordinationReq& select_id_ListofNRCellsinNRCoordinationReq() { return set(4); } - ListofNRCellsinNRCoordinationReq const* get_id_ListofNRCellsinNRCoordinationReq() const { return get(4); } - bool is_unknown() const { return type == 5; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_DataTrafficResourceIndication()); return true; - case 2: v(select_id_ListofEUTRACellsinNRCoordinationReq()); return true; - case 3: v(select_id_SpectrumSharingGroupID()); return true; - case 4: v(select_id_ListofNRCellsinNRCoordinationReq()); return true; - case 5: if(type != 5) {clear(); asn::base::set();} type = 5; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(DataTrafficResourceIndication)]; - char dummy2[sizeof(ListofEUTRACellsinNRCoordinationReq)]; - char dummy3[sizeof(ListofNRCellsinNRCoordinationReq)]; - char dummy4[sizeof(SpectrumSharingGroupID)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_DataTrafficResourceIndication() { set(mandatory); type=1;} - void select_id_ListofEUTRACellsinNRCoordinationReq() { set(mandatory); type=2;} - void select_id_SpectrumSharingGroupID() { set(mandatory); type=3;} - void select_id_ListofNRCellsinNRCoordinationReq() { set(mandatory); type=4;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(mandatory)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(mandatory);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -InitiatingNodeType-EutranrCellResourceCoordination ::= CHOICE { - initiate-eNB ProtocolIE-Container {{ENB-EUTRA-NRCellResourceCoordinationReqIEs}}, - initiate-en-gNB ProtocolIE-Container {{En-gNB-EUTRA-NRCellResourceCoordinationReqIEs}}, - ... -} -*/ - -struct InitiatingNodeType_EutranrCellResourceCoordination : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "InitiatingNodeType-EutranrCellResourceCoordination";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~InitiatingNodeType_EutranrCellResourceCoordination() {clear();} - struct initiate_eNB_t : ProtocolIE_Container - { - static constexpr const char* name() {return "initiate_eNB_t";} - using parent_t = ProtocolIE_Container; - - }; - struct initiate_en_gNB_t : ProtocolIE_Container - { - static constexpr const char* name() {return "initiate_en_gNB_t";} - using parent_t = ProtocolIE_Container; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - initiate_eNB_t& select_initiate_eNB() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - initiate_eNB_t const* get_initiate_eNB() const { if(get_index() == 1) { return &var.as();} return nullptr; } - initiate_en_gNB_t& select_initiate_en_gNB() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - initiate_en_gNB_t const* get_initiate_en_gNB() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(initiate_eNB_t)]; - char dummy2[sizeof(initiate_en_gNB_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -EUTRANRCellResourceCoordinationRequest-IEs X2AP-PROTOCOL-IES ::= { - { ID id-InitiatingNodeType-EutranrCellResourceCoordination CRITICALITY reject TYPE InitiatingNodeType-EutranrCellResourceCoordination PRESENCE mandatory}, - ... -} -*/ - -struct EUTRANRCellResourceCoordinationRequest_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_InitiatingNodeType_EutranrCellResourceCoordination() { set(id_InitiatingNodeType_EutranrCellResourceCoordination); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_InitiatingNodeType_EutranrCellResourceCoordination)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_InitiatingNodeType_EutranrCellResourceCoordination);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_InitiatingNodeType_EutranrCellResourceCoordination() { set(reject); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - InitiatingNodeType_EutranrCellResourceCoordination& select_id_InitiatingNodeType_EutranrCellResourceCoordination() { return set(1); } - InitiatingNodeType_EutranrCellResourceCoordination const* get_id_InitiatingNodeType_EutranrCellResourceCoordination() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_InitiatingNodeType_EutranrCellResourceCoordination()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(InitiatingNodeType_EutranrCellResourceCoordination)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_InitiatingNodeType_EutranrCellResourceCoordination() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -EUTRANRCellResourceCoordinationRequest ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{EUTRANRCellResourceCoordinationRequest-IEs}}, - ... -} -*/ - -struct EUTRANRCellResourceCoordinationRequest : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "EUTRANRCellResourceCoordinationRequest";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -ListofNRCellsinNRCoordinationResp ::= SEQUENCE (SIZE (0..maxnoNRcellsSpectrumSharingWithE-UTRA)) OF NRCGI -*/ - -struct ListofNRCellsinNRCoordinationResp_elm : NRCGI -{ - static constexpr const char* name() {return "ListofNRCellsinNRCoordinationResp_elm";} - using parent_t = NRCGI; - -}; -struct ListofNRCellsinNRCoordinationResp : asn::sequenceof -{ - static constexpr const char* name() {return "ListofNRCellsinNRCoordinationResp";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -En-gNB-EUTRA-NRCellResourceCoordinationReqAckIEs X2AP-PROTOCOL-IES ::= { - { ID id-DataTrafficResourceIndication CRITICALITY reject TYPE DataTrafficResourceIndication PRESENCE mandatory}| - { ID id-SpectrumSharingGroupID CRITICALITY reject TYPE SpectrumSharingGroupID PRESENCE mandatory}| - { ID id-ListofNRCellsinNRCoordinationResp CRITICALITY reject TYPE ListofNRCellsinNRCoordinationResp PRESENCE mandatory}, - - - ... -} -*/ - -struct En_gNB_EUTRA_NRCellResourceCoordinationReqAckIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_DataTrafficResourceIndication() { set(id_DataTrafficResourceIndication); type=1;} - void select_id_SpectrumSharingGroupID() { set(id_SpectrumSharingGroupID); type=2;} - void select_id_ListofNRCellsinNRCoordinationResp() { set(id_ListofNRCellsinNRCoordinationResp); type=3;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_DataTrafficResourceIndication)) { type = 1; return true; } - else if(equal(id_SpectrumSharingGroupID)) { type = 2; return true; } - else if(equal(id_ListofNRCellsinNRCoordinationResp)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_DataTrafficResourceIndication);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SpectrumSharingGroupID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_ListofNRCellsinNRCoordinationResp);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_DataTrafficResourceIndication() { set(reject); type=1;} - void select_id_SpectrumSharingGroupID() { set(reject); type=2;} - void select_id_ListofNRCellsinNRCoordinationResp() { set(reject); type=3;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(reject)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(reject);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - DataTrafficResourceIndication& select_id_DataTrafficResourceIndication() { return set(1); } - DataTrafficResourceIndication const* get_id_DataTrafficResourceIndication() const { return get(1); } - SpectrumSharingGroupID& select_id_SpectrumSharingGroupID() { return set(2); } - SpectrumSharingGroupID const* get_id_SpectrumSharingGroupID() const { return get(2); } - ListofNRCellsinNRCoordinationResp& select_id_ListofNRCellsinNRCoordinationResp() { return set(3); } - ListofNRCellsinNRCoordinationResp const* get_id_ListofNRCellsinNRCoordinationResp() const { return get(3); } - bool is_unknown() const { return type == 4; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_DataTrafficResourceIndication()); return true; - case 2: v(select_id_SpectrumSharingGroupID()); return true; - case 3: v(select_id_ListofNRCellsinNRCoordinationResp()); return true; - case 4: if(type != 4) {clear(); asn::base::set();} type = 4; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(DataTrafficResourceIndication)]; - char dummy2[sizeof(ListofNRCellsinNRCoordinationResp)]; - char dummy3[sizeof(SpectrumSharingGroupID)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_DataTrafficResourceIndication() { set(mandatory); type=1;} - void select_id_SpectrumSharingGroupID() { set(mandatory); type=2;} - void select_id_ListofNRCellsinNRCoordinationResp() { set(mandatory); type=3;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RespondingNodeType-EutranrCellResourceCoordination ::= CHOICE { - respond-eNB ProtocolIE-Container {{ENB-EUTRA-NRCellResourceCoordinationReqAckIEs}}, - respond-en-gNB ProtocolIE-Container {{En-gNB-EUTRA-NRCellResourceCoordinationReqAckIEs}}, - ... -} -*/ - -struct RespondingNodeType_EutranrCellResourceCoordination : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "RespondingNodeType-EutranrCellResourceCoordination";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~RespondingNodeType_EutranrCellResourceCoordination() {clear();} - struct respond_eNB_t : ProtocolIE_Container - { - static constexpr const char* name() {return "respond_eNB_t";} - using parent_t = ProtocolIE_Container; - - }; - struct respond_en_gNB_t : ProtocolIE_Container - { - static constexpr const char* name() {return "respond_en_gNB_t";} - using parent_t = ProtocolIE_Container; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - respond_eNB_t& select_respond_eNB() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - respond_eNB_t const* get_respond_eNB() const { if(get_index() == 1) { return &var.as();} return nullptr; } - respond_en_gNB_t& select_respond_en_gNB() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - respond_en_gNB_t const* get_respond_en_gNB() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(respond_eNB_t)]; - char dummy2[sizeof(respond_en_gNB_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -EUTRANRCellResourceCoordinationResponse-IEs X2AP-PROTOCOL-IES ::= { - { ID id-RespondingNodeType-EutranrCellResourceCoordination CRITICALITY reject TYPE RespondingNodeType-EutranrCellResourceCoordination PRESENCE mandatory}, - ... -} -*/ - -struct EUTRANRCellResourceCoordinationResponse_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RespondingNodeType_EutranrCellResourceCoordination() { set(id_RespondingNodeType_EutranrCellResourceCoordination); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_RespondingNodeType_EutranrCellResourceCoordination)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_RespondingNodeType_EutranrCellResourceCoordination);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RespondingNodeType_EutranrCellResourceCoordination() { set(reject); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - RespondingNodeType_EutranrCellResourceCoordination& select_id_RespondingNodeType_EutranrCellResourceCoordination() { return set(1); } - RespondingNodeType_EutranrCellResourceCoordination const* get_id_RespondingNodeType_EutranrCellResourceCoordination() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_RespondingNodeType_EutranrCellResourceCoordination()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(RespondingNodeType_EutranrCellResourceCoordination)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RespondingNodeType_EutranrCellResourceCoordination() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -EUTRANRCellResourceCoordinationResponse ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{EUTRANRCellResourceCoordinationResponse-IEs}}, - ... -} -*/ - -struct EUTRANRCellResourceCoordinationResponse : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "EUTRANRCellResourceCoordinationResponse";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -ErrorIndication-IEs X2AP-PROTOCOL-IES ::= { - { ID id-Old-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE optional}| - { ID id-New-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE optional}| - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE optional}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| - { ID id-Old-eNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-New-eNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-Old-SgNB-UE-X2AP-ID CRITICALITY ignore TYPE SgNB-UE-X2AP-ID PRESENCE optional}, - ... -} -*/ - -struct ErrorIndication_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 8; } - void clear() {type = 0;} - void select_id_Old_eNB_UE_X2AP_ID() { set(id_Old_eNB_UE_X2AP_ID); type=1;} - void select_id_New_eNB_UE_X2AP_ID() { set(id_New_eNB_UE_X2AP_ID); type=2;} - void select_id_Cause() { set(id_Cause); type=3;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=4;} - void select_id_Old_eNB_UE_X2AP_ID_Extension() { set(id_Old_eNB_UE_X2AP_ID_Extension); type=5;} - void select_id_New_eNB_UE_X2AP_ID_Extension() { set(id_New_eNB_UE_X2AP_ID_Extension); type=6;} - void select_id_Old_SgNB_UE_X2AP_ID() { set(id_Old_SgNB_UE_X2AP_ID); type=7;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_Old_eNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_New_eNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_Cause)) { type = 3; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 4; return true; } - else if(equal(id_Old_eNB_UE_X2AP_ID_Extension)) { type = 5; return true; } - else if(equal(id_New_eNB_UE_X2AP_ID_Extension)) { type = 6; return true; } - else if(equal(id_Old_SgNB_UE_X2AP_ID)) { type = 7; return true; } - else { type = 8; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_Old_eNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_New_eNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_Old_eNB_UE_X2AP_ID_Extension);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_New_eNB_UE_X2AP_ID_Extension);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(id_Old_SgNB_UE_X2AP_ID);} return false; - case 8: type = 8; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 8; } - void clear() {type = 0;} - void select_id_Old_eNB_UE_X2AP_ID() { set(ignore); type=1;} - void select_id_New_eNB_UE_X2AP_ID() { set(ignore); type=2;} - void select_id_Cause() { set(ignore); type=3;} - void select_id_CriticalityDiagnostics() { set(ignore); type=4;} - void select_id_Old_eNB_UE_X2AP_ID_Extension() { set(ignore); type=5;} - void select_id_New_eNB_UE_X2AP_ID_Extension() { set(ignore); type=6;} - void select_id_Old_SgNB_UE_X2AP_ID() { set(ignore); type=7;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else if(equal(ignore)) { type = 6; return true; } - else if(equal(ignore)) { type = 7; return true; } - else { type = 8; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(ignore);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(ignore);} return false; - case 8: type = 8; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_Old_eNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_Old_eNB_UE_X2AP_ID() const { return get(1); } - UE_X2AP_ID& select_id_New_eNB_UE_X2AP_ID() { return set(2); } - UE_X2AP_ID const* get_id_New_eNB_UE_X2AP_ID() const { return get(2); } - Cause& select_id_Cause() { return set(3); } - Cause const* get_id_Cause() const { return get(3); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(4); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(4); } - UE_X2AP_ID_Extension& select_id_Old_eNB_UE_X2AP_ID_Extension() { return set(5); } - UE_X2AP_ID_Extension const* get_id_Old_eNB_UE_X2AP_ID_Extension() const { return get(5); } - UE_X2AP_ID_Extension& select_id_New_eNB_UE_X2AP_ID_Extension() { return set(6); } - UE_X2AP_ID_Extension const* get_id_New_eNB_UE_X2AP_ID_Extension() const { return get(6); } - SgNB_UE_X2AP_ID& select_id_Old_SgNB_UE_X2AP_ID() { return set(7); } - SgNB_UE_X2AP_ID const* get_id_Old_SgNB_UE_X2AP_ID() const { return get(7); } - bool is_unknown() const { return type == 8; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - case 7: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - v.template operator()(7); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_Old_eNB_UE_X2AP_ID()); return true; - case 2: v(select_id_New_eNB_UE_X2AP_ID()); return true; - case 3: v(select_id_Cause()); return true; - case 4: v(select_id_CriticalityDiagnostics()); return true; - case 5: v(select_id_Old_eNB_UE_X2AP_ID_Extension()); return true; - case 6: v(select_id_New_eNB_UE_X2AP_ID_Extension()); return true; - case 7: v(select_id_Old_SgNB_UE_X2AP_ID()); return true; - case 8: if(type != 8) {clear(); asn::base::set();} type = 8; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - case 7: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(CriticalityDiagnostics)]; - char dummy3[sizeof(SgNB_UE_X2AP_ID)]; - char dummy4[sizeof(UE_X2AP_ID)]; - char dummy5[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 8; } - void clear() {type = 0;} - void select_id_Old_eNB_UE_X2AP_ID() { set(optional); type=1;} - void select_id_New_eNB_UE_X2AP_ID() { set(optional); type=2;} - void select_id_Cause() { set(optional); type=3;} - void select_id_CriticalityDiagnostics() { set(optional); type=4;} - void select_id_Old_eNB_UE_X2AP_ID_Extension() { set(optional); type=5;} - void select_id_New_eNB_UE_X2AP_ID_Extension() { set(optional); type=6;} - void select_id_Old_SgNB_UE_X2AP_ID() { set(optional); type=7;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else if(equal(optional)) { type = 7; return true; } - else { type = 8; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(optional);} return false; - case 8: type = 8; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ErrorIndication ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ErrorIndication-IEs}}, - ... -} -*/ - -struct ErrorIndication : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "ErrorIndication";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -GNBStatusIndicationIEs X2AP-PROTOCOL-IES ::= { - { ID id-GNBOverloadInformation CRITICALITY ignore TYPE GNBOverloadInformation PRESENCE mandatory}, - ... -} -*/ - -struct GNBStatusIndicationIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_GNBOverloadInformation() { set(id_GNBOverloadInformation); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_GNBOverloadInformation)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_GNBOverloadInformation);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_GNBOverloadInformation() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - GNBOverloadInformation& select_id_GNBOverloadInformation() { return set(1); } - GNBOverloadInformation const* get_id_GNBOverloadInformation() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_GNBOverloadInformation()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(GNBOverloadInformation)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_GNBOverloadInformation() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -GNBStatusIndication ::= SEQUENCE { - protocolIEs ProtocolIE-Container { { GNBStatusIndicationIEs} }, - ... -} -*/ - -struct GNBStatusIndication : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "GNBStatusIndication";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -HandoverCancel-IEs X2AP-PROTOCOL-IES ::= { - { ID id-Old-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-New-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE optional}| - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| - { ID id-Old-eNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-New-eNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}, - ... -} -*/ - -struct HandoverCancel_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_Old_eNB_UE_X2AP_ID() { set(id_Old_eNB_UE_X2AP_ID); type=1;} - void select_id_New_eNB_UE_X2AP_ID() { set(id_New_eNB_UE_X2AP_ID); type=2;} - void select_id_Cause() { set(id_Cause); type=3;} - void select_id_Old_eNB_UE_X2AP_ID_Extension() { set(id_Old_eNB_UE_X2AP_ID_Extension); type=4;} - void select_id_New_eNB_UE_X2AP_ID_Extension() { set(id_New_eNB_UE_X2AP_ID_Extension); type=5;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_Old_eNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_New_eNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_Cause)) { type = 3; return true; } - else if(equal(id_Old_eNB_UE_X2AP_ID_Extension)) { type = 4; return true; } - else if(equal(id_New_eNB_UE_X2AP_ID_Extension)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_Old_eNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_New_eNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_Old_eNB_UE_X2AP_ID_Extension);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_New_eNB_UE_X2AP_ID_Extension);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_Old_eNB_UE_X2AP_ID() { set(reject); type=1;} - void select_id_New_eNB_UE_X2AP_ID() { set(ignore); type=2;} - void select_id_Cause() { set(ignore); type=3;} - void select_id_Old_eNB_UE_X2AP_ID_Extension() { set(reject); type=4;} - void select_id_New_eNB_UE_X2AP_ID_Extension() { set(ignore); type=5;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(reject)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(reject);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_Old_eNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_Old_eNB_UE_X2AP_ID() const { return get(1); } - UE_X2AP_ID& select_id_New_eNB_UE_X2AP_ID() { return set(2); } - UE_X2AP_ID const* get_id_New_eNB_UE_X2AP_ID() const { return get(2); } - Cause& select_id_Cause() { return set(3); } - Cause const* get_id_Cause() const { return get(3); } - UE_X2AP_ID_Extension& select_id_Old_eNB_UE_X2AP_ID_Extension() { return set(4); } - UE_X2AP_ID_Extension const* get_id_Old_eNB_UE_X2AP_ID_Extension() const { return get(4); } - UE_X2AP_ID_Extension& select_id_New_eNB_UE_X2AP_ID_Extension() { return set(5); } - UE_X2AP_ID_Extension const* get_id_New_eNB_UE_X2AP_ID_Extension() const { return get(5); } - bool is_unknown() const { return type == 6; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_Old_eNB_UE_X2AP_ID()); return true; - case 2: v(select_id_New_eNB_UE_X2AP_ID()); return true; - case 3: v(select_id_Cause()); return true; - case 4: v(select_id_Old_eNB_UE_X2AP_ID_Extension()); return true; - case 5: v(select_id_New_eNB_UE_X2AP_ID_Extension()); return true; - case 6: if(type != 6) {clear(); asn::base::set();} type = 6; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(UE_X2AP_ID)]; - char dummy3[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_Old_eNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_New_eNB_UE_X2AP_ID() { set(optional); type=2;} - void select_id_Cause() { set(mandatory); type=3;} - void select_id_Old_eNB_UE_X2AP_ID_Extension() { set(optional); type=4;} - void select_id_New_eNB_UE_X2AP_ID_Extension() { set(optional); type=5;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -HandoverCancel ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{HandoverCancel-IEs}}, - ... -} -*/ - -struct HandoverCancel : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "HandoverCancel";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -HandoverPreparationFailure-IEs X2AP-PROTOCOL-IES ::= { - { ID id-Old-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| - { ID id-Old-eNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}, - - ... -} -*/ - -struct HandoverPreparationFailure_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_Old_eNB_UE_X2AP_ID() { set(id_Old_eNB_UE_X2AP_ID); type=1;} - void select_id_Cause() { set(id_Cause); type=2;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=3;} - void select_id_Old_eNB_UE_X2AP_ID_Extension() { set(id_Old_eNB_UE_X2AP_ID_Extension); type=4;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_Old_eNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_Cause)) { type = 2; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 3; return true; } - else if(equal(id_Old_eNB_UE_X2AP_ID_Extension)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_Old_eNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_Old_eNB_UE_X2AP_ID_Extension);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_Old_eNB_UE_X2AP_ID() { set(ignore); type=1;} - void select_id_Cause() { set(ignore); type=2;} - void select_id_CriticalityDiagnostics() { set(ignore); type=3;} - void select_id_Old_eNB_UE_X2AP_ID_Extension() { set(ignore); type=4;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_Old_eNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_Old_eNB_UE_X2AP_ID() const { return get(1); } - Cause& select_id_Cause() { return set(2); } - Cause const* get_id_Cause() const { return get(2); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(3); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(3); } - UE_X2AP_ID_Extension& select_id_Old_eNB_UE_X2AP_ID_Extension() { return set(4); } - UE_X2AP_ID_Extension const* get_id_Old_eNB_UE_X2AP_ID_Extension() const { return get(4); } - bool is_unknown() const { return type == 5; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_Old_eNB_UE_X2AP_ID()); return true; - case 2: v(select_id_Cause()); return true; - case 3: v(select_id_CriticalityDiagnostics()); return true; - case 4: v(select_id_Old_eNB_UE_X2AP_ID_Extension()); return true; - case 5: if(type != 5) {clear(); asn::base::set();} type = 5; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(CriticalityDiagnostics)]; - char dummy3[sizeof(UE_X2AP_ID)]; - char dummy4[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_Old_eNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_Cause() { set(mandatory); type=2;} - void select_id_CriticalityDiagnostics() { set(optional); type=3;} - void select_id_Old_eNB_UE_X2AP_ID_Extension() { set(optional); type=4;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -HandoverPreparationFailure ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{HandoverPreparationFailure-IEs}}, - ... -} -*/ - -struct HandoverPreparationFailure : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "HandoverPreparationFailure";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -MobilityInformation ::= BIT STRING (SIZE(32)) -*/ - -struct MobilityInformation : asn::bstring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "MobilityInformation";} - using parent_t = asn::bstring<>; - -}; - -/* -HandoverReport-IEs X2AP-PROTOCOL-IES ::= { - { ID id-HandoverReportType CRITICALITY ignore TYPE HandoverReportType PRESENCE mandatory}| - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| - { ID id-SourceCellECGI CRITICALITY ignore TYPE ECGI PRESENCE mandatory}| - { ID id-FailureCellECGI CRITICALITY ignore TYPE ECGI PRESENCE mandatory}| - { ID id-Re-establishmentCellECGI CRITICALITY ignore TYPE ECGI PRESENCE conditional} -- The IE shall be present if the Handover Report Type IE is set to “HO to Wrong Cell” -- | - { ID id-TargetCellInUTRAN CRITICALITY ignore TYPE TargetCellInUTRAN PRESENCE conditional} -- The IE shall be present if the Handover Report Type IE is set to "InterRAT ping-pong" --| - { ID id-SourceCellCRNTI CRITICALITY ignore TYPE CRNTI PRESENCE optional}| - { ID id-MobilityInformation CRITICALITY ignore TYPE MobilityInformation PRESENCE optional}| - { ID id-UE-RLF-Report-Container CRITICALITY ignore TYPE UE-RLF-Report-Container PRESENCE optional}| - { ID id-UE-RLF-Report-Container-for-extended-bands CRITICALITY ignore TYPE UE-RLF-Report-Container-for-extended-bands PRESENCE optional}, - ... -} -*/ - -struct HandoverReport_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 11; } - void clear() {type = 0;} - void select_id_HandoverReportType() { set(id_HandoverReportType); type=1;} - void select_id_Cause() { set(id_Cause); type=2;} - void select_id_SourceCellECGI() { set(id_SourceCellECGI); type=3;} - void select_id_FailureCellECGI() { set(id_FailureCellECGI); type=4;} - void select_id_Re_establishmentCellECGI() { set(id_Re_establishmentCellECGI); type=5;} - void select_id_TargetCellInUTRAN() { set(id_TargetCellInUTRAN); type=6;} - void select_id_SourceCellCRNTI() { set(id_SourceCellCRNTI); type=7;} - void select_id_MobilityInformation() { set(id_MobilityInformation); type=8;} - void select_id_UE_RLF_Report_Container() { set(id_UE_RLF_Report_Container); type=9;} - void select_id_UE_RLF_Report_Container_for_extended_bands() { set(id_UE_RLF_Report_Container_for_extended_bands); type=10;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_HandoverReportType)) { type = 1; return true; } - else if(equal(id_Cause)) { type = 2; return true; } - else if(equal(id_SourceCellECGI)) { type = 3; return true; } - else if(equal(id_FailureCellECGI)) { type = 4; return true; } - else if(equal(id_Re_establishmentCellECGI)) { type = 5; return true; } - else if(equal(id_TargetCellInUTRAN)) { type = 6; return true; } - else if(equal(id_SourceCellCRNTI)) { type = 7; return true; } - else if(equal(id_MobilityInformation)) { type = 8; return true; } - else if(equal(id_UE_RLF_Report_Container)) { type = 9; return true; } - else if(equal(id_UE_RLF_Report_Container_for_extended_bands)) { type = 10; return true; } - else { type = 11; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_HandoverReportType);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_SourceCellECGI);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_FailureCellECGI);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_Re_establishmentCellECGI);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_TargetCellInUTRAN);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(id_SourceCellCRNTI);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(id_MobilityInformation);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(id_UE_RLF_Report_Container);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(id_UE_RLF_Report_Container_for_extended_bands);} return false; - case 11: type = 11; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 11; } - void clear() {type = 0;} - void select_id_HandoverReportType() { set(ignore); type=1;} - void select_id_Cause() { set(ignore); type=2;} - void select_id_SourceCellECGI() { set(ignore); type=3;} - void select_id_FailureCellECGI() { set(ignore); type=4;} - void select_id_Re_establishmentCellECGI() { set(ignore); type=5;} - void select_id_TargetCellInUTRAN() { set(ignore); type=6;} - void select_id_SourceCellCRNTI() { set(ignore); type=7;} - void select_id_MobilityInformation() { set(ignore); type=8;} - void select_id_UE_RLF_Report_Container() { set(ignore); type=9;} - void select_id_UE_RLF_Report_Container_for_extended_bands() { set(ignore); type=10;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else if(equal(ignore)) { type = 6; return true; } - else if(equal(ignore)) { type = 7; return true; } - else if(equal(ignore)) { type = 8; return true; } - else if(equal(ignore)) { type = 9; return true; } - else if(equal(ignore)) { type = 10; return true; } - else { type = 11; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(ignore);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(ignore);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(ignore);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(ignore);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(ignore);} return false; - case 11: type = 11; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - HandoverReportType& select_id_HandoverReportType() { return set(1); } - HandoverReportType const* get_id_HandoverReportType() const { return get(1); } - Cause& select_id_Cause() { return set(2); } - Cause const* get_id_Cause() const { return get(2); } - ECGI& select_id_SourceCellECGI() { return set(3); } - ECGI const* get_id_SourceCellECGI() const { return get(3); } - ECGI& select_id_FailureCellECGI() { return set(4); } - ECGI const* get_id_FailureCellECGI() const { return get(4); } - ECGI& select_id_Re_establishmentCellECGI() { return set(5); } - ECGI const* get_id_Re_establishmentCellECGI() const { return get(5); } - TargetCellInUTRAN& select_id_TargetCellInUTRAN() { return set(6); } - TargetCellInUTRAN const* get_id_TargetCellInUTRAN() const { return get(6); } - CRNTI& select_id_SourceCellCRNTI() { return set(7); } - CRNTI const* get_id_SourceCellCRNTI() const { return get(7); } - MobilityInformation& select_id_MobilityInformation() { return set(8); } - MobilityInformation const* get_id_MobilityInformation() const { return get(8); } - UE_RLF_Report_Container& select_id_UE_RLF_Report_Container() { return set(9); } - UE_RLF_Report_Container const* get_id_UE_RLF_Report_Container() const { return get(9); } - UE_RLF_Report_Container_for_extended_bands& select_id_UE_RLF_Report_Container_for_extended_bands() { return set(10); } - UE_RLF_Report_Container_for_extended_bands const* get_id_UE_RLF_Report_Container_for_extended_bands() const { return get(10); } - bool is_unknown() const { return type == 11; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - case 7: var.destroy(); break; - case 8: var.destroy(); break; - case 9: var.destroy(); break; - case 10: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - v.template operator()(7); - v.template operator()(8); - v.template operator()(9); - v.template operator()(10); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_HandoverReportType()); return true; - case 2: v(select_id_Cause()); return true; - case 3: v(select_id_SourceCellECGI()); return true; - case 4: v(select_id_FailureCellECGI()); return true; - case 5: v(select_id_Re_establishmentCellECGI()); return true; - case 6: v(select_id_TargetCellInUTRAN()); return true; - case 7: v(select_id_SourceCellCRNTI()); return true; - case 8: v(select_id_MobilityInformation()); return true; - case 9: v(select_id_UE_RLF_Report_Container()); return true; - case 10: v(select_id_UE_RLF_Report_Container_for_extended_bands()); return true; - case 11: if(type != 11) {clear(); asn::base::set();} type = 11; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - case 7: v(var.as()); return true; - case 8: v(var.as()); return true; - case 9: v(var.as()); return true; - case 10: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CRNTI)]; - char dummy2[sizeof(Cause)]; - char dummy3[sizeof(ECGI)]; - char dummy4[sizeof(HandoverReportType)]; - char dummy5[sizeof(MobilityInformation)]; - char dummy6[sizeof(TargetCellInUTRAN)]; - char dummy7[sizeof(UE_RLF_Report_Container)]; - char dummy8[sizeof(UE_RLF_Report_Container_for_extended_bands)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 11; } - void clear() {type = 0;} - void select_id_HandoverReportType() { set(mandatory); type=1;} - void select_id_Cause() { set(mandatory); type=2;} - void select_id_SourceCellECGI() { set(mandatory); type=3;} - void select_id_FailureCellECGI() { set(mandatory); type=4;} - void select_id_Re_establishmentCellECGI() { set(conditional); type=5;} - void select_id_TargetCellInUTRAN() { set(conditional); type=6;} - void select_id_SourceCellCRNTI() { set(optional); type=7;} - void select_id_MobilityInformation() { set(optional); type=8;} - void select_id_UE_RLF_Report_Container() { set(optional); type=9;} - void select_id_UE_RLF_Report_Container_for_extended_bands() { set(optional); type=10;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(mandatory)) { type = 4; return true; } - else if(equal(conditional)) { type = 5; return true; } - else if(equal(conditional)) { type = 6; return true; } - else if(equal(optional)) { type = 7; return true; } - else if(equal(optional)) { type = 8; return true; } - else if(equal(optional)) { type = 9; return true; } - else if(equal(optional)) { type = 10; return true; } - else { type = 11; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(mandatory);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(conditional);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(conditional);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(optional);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(optional);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(optional);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(optional);} return false; - case 11: type = 11; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -HandoverReport ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{HandoverReport-IEs}}, - ... -} -*/ - -struct HandoverReport : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "HandoverReport";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -UE-ContextInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { -{ ID id-ManagementBasedMDTallowed CRITICALITY ignore EXTENSION ManagementBasedMDTallowed PRESENCE optional }| -{ ID id-ManagementBasedMDTPLMNList CRITICALITY ignore EXTENSION MDTPLMNList PRESENCE optional }| -{ ID id-UESidelinkAggregateMaximumBitRate CRITICALITY ignore EXTENSION UESidelinkAggregateMaximumBitRate PRESENCE optional}, - ... -} -*/ - -struct UE_ContextInformation_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_ManagementBasedMDTallowed() { set(id_ManagementBasedMDTallowed); type=1;} - void select_id_ManagementBasedMDTPLMNList() { set(id_ManagementBasedMDTPLMNList); type=2;} - void select_id_UESidelinkAggregateMaximumBitRate() { set(id_UESidelinkAggregateMaximumBitRate); type=3;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_ManagementBasedMDTallowed)) { type = 1; return true; } - else if(equal(id_ManagementBasedMDTPLMNList)) { type = 2; return true; } - else if(equal(id_UESidelinkAggregateMaximumBitRate)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_ManagementBasedMDTallowed);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_ManagementBasedMDTPLMNList);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_UESidelinkAggregateMaximumBitRate);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_ManagementBasedMDTallowed() { set(ignore); type=1;} - void select_id_ManagementBasedMDTPLMNList() { set(ignore); type=2;} - void select_id_UESidelinkAggregateMaximumBitRate() { set(ignore); type=3;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - ManagementBasedMDTallowed& select_id_ManagementBasedMDTallowed() { return set(1); } - ManagementBasedMDTallowed const* get_id_ManagementBasedMDTallowed() const { return get(1); } - MDTPLMNList& select_id_ManagementBasedMDTPLMNList() { return set(2); } - MDTPLMNList const* get_id_ManagementBasedMDTPLMNList() const { return get(2); } - UESidelinkAggregateMaximumBitRate& select_id_UESidelinkAggregateMaximumBitRate() { return set(3); } - UESidelinkAggregateMaximumBitRate const* get_id_UESidelinkAggregateMaximumBitRate() const { return get(3); } - bool is_unknown() const { return type == 4; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_ManagementBasedMDTallowed()); return true; - case 2: v(select_id_ManagementBasedMDTPLMNList()); return true; - case 3: v(select_id_UESidelinkAggregateMaximumBitRate()); return true; - case 4: if(type != 4) {clear(); asn::base::set();} type = 4; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(MDTPLMNList)]; - char dummy2[sizeof(ManagementBasedMDTallowed)]; - char dummy3[sizeof(UESidelinkAggregateMaximumBitRate)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_ManagementBasedMDTallowed() { set(optional); type=1;} - void select_id_ManagementBasedMDTPLMNList() { set(optional); type=2;} - void select_id_UESidelinkAggregateMaximumBitRate() { set(optional); type=3;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -UE-ContextInformation ::= SEQUENCE { - mME-UE-S1AP-ID UE-S1AP-ID, - uESecurityCapabilities UESecurityCapabilities, - aS-SecurityInformation AS-SecurityInformation, - uEaggregateMaximumBitRate UEAggregateMaximumBitRate, - subscriberProfileIDforRFP SubscriberProfileIDforRFP OPTIONAL, - e-RABs-ToBeSetup-List E-RABs-ToBeSetup-List, - rRC-Context RRC-Context, - handoverRestrictionList HandoverRestrictionList OPTIONAL, - locationReportingInformation LocationReportingInformation OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {UE-ContextInformation-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct UE_ContextInformation : asn::sequence<10, 0, true, 4> -{ - static constexpr const char* name() {return "UE-ContextInformation";} - using parent_t = asn::sequence<10, 0, true, 4>; - struct mME_UE_S1AP_ID_t : UE_S1AP_ID - { - static constexpr const char* name() {return "mME_UE_S1AP_ID_t";} - using parent_t = UE_S1AP_ID; - - }; - mME_UE_S1AP_ID_t& ref_mME_UE_S1AP_ID() {return mME_UE_S1AP_ID;} - mME_UE_S1AP_ID_t const& ref_mME_UE_S1AP_ID() const {return mME_UE_S1AP_ID;} - struct uESecurityCapabilities_t : UESecurityCapabilities - { - static constexpr const char* name() {return "uESecurityCapabilities_t";} - using parent_t = UESecurityCapabilities; - - }; - uESecurityCapabilities_t& ref_uESecurityCapabilities() {return uESecurityCapabilities;} - uESecurityCapabilities_t const& ref_uESecurityCapabilities() const {return uESecurityCapabilities;} - struct aS_SecurityInformation_t : AS_SecurityInformation - { - static constexpr const char* name() {return "aS_SecurityInformation_t";} - using parent_t = AS_SecurityInformation; - - }; - aS_SecurityInformation_t& ref_aS_SecurityInformation() {return aS_SecurityInformation;} - aS_SecurityInformation_t const& ref_aS_SecurityInformation() const {return aS_SecurityInformation;} - struct uEaggregateMaximumBitRate_t : UEAggregateMaximumBitRate - { - static constexpr const char* name() {return "uEaggregateMaximumBitRate_t";} - using parent_t = UEAggregateMaximumBitRate; - - }; - uEaggregateMaximumBitRate_t& ref_uEaggregateMaximumBitRate() {return uEaggregateMaximumBitRate;} - uEaggregateMaximumBitRate_t const& ref_uEaggregateMaximumBitRate() const {return uEaggregateMaximumBitRate;} - struct subscriberProfileIDforRFP_t : SubscriberProfileIDforRFP - { - static constexpr const char* name() {return "subscriberProfileIDforRFP_t";} - using parent_t = SubscriberProfileIDforRFP; - static constexpr bool optional = true; - - }; - subscriberProfileIDforRFP_t& set_subscriberProfileIDforRFP() { subscriberProfileIDforRFP.setpresent(true); return subscriberProfileIDforRFP;} - subscriberProfileIDforRFP_t const* get_subscriberProfileIDforRFP() const {return subscriberProfileIDforRFP.is_valid() ? &subscriberProfileIDforRFP : nullptr;} - struct e_RABs_ToBeSetup_List_t : E_RABs_ToBeSetup_List - { - static constexpr const char* name() {return "e_RABs_ToBeSetup_List_t";} - using parent_t = E_RABs_ToBeSetup_List; - - }; - e_RABs_ToBeSetup_List_t& ref_e_RABs_ToBeSetup_List() {return e_RABs_ToBeSetup_List;} - e_RABs_ToBeSetup_List_t const& ref_e_RABs_ToBeSetup_List() const {return e_RABs_ToBeSetup_List;} - struct rRC_Context_t : RRC_Context - { - static constexpr const char* name() {return "rRC_Context_t";} - using parent_t = RRC_Context; - - }; - rRC_Context_t& ref_rRC_Context() {return rRC_Context;} - rRC_Context_t const& ref_rRC_Context() const {return rRC_Context;} - struct handoverRestrictionList_t : HandoverRestrictionList - { - static constexpr const char* name() {return "handoverRestrictionList_t";} - using parent_t = HandoverRestrictionList; - static constexpr bool optional = true; - - }; - handoverRestrictionList_t& set_handoverRestrictionList() { handoverRestrictionList.setpresent(true); return handoverRestrictionList;} - handoverRestrictionList_t const* get_handoverRestrictionList() const {return handoverRestrictionList.is_valid() ? &handoverRestrictionList : nullptr;} - struct locationReportingInformation_t : LocationReportingInformation - { - static constexpr const char* name() {return "locationReportingInformation_t";} - using parent_t = LocationReportingInformation; - static constexpr bool optional = true; - - }; - locationReportingInformation_t& set_locationReportingInformation() { locationReportingInformation.setpresent(true); return locationReportingInformation;} - locationReportingInformation_t const* get_locationReportingInformation() const {return locationReportingInformation.is_valid() ? &locationReportingInformation : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(mME_UE_S1AP_ID); - v(uESecurityCapabilities); - v(aS_SecurityInformation); - v(uEaggregateMaximumBitRate); - v(subscriberProfileIDforRFP); - v(e_RABs_ToBeSetup_List); - v(rRC_Context); - v(handoverRestrictionList); - v(locationReportingInformation); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(mME_UE_S1AP_ID); - v(uESecurityCapabilities); - v(aS_SecurityInformation); - v(uEaggregateMaximumBitRate); - v(subscriberProfileIDforRFP); - v(e_RABs_ToBeSetup_List); - v(rRC_Context); - v(handoverRestrictionList); - v(locationReportingInformation); - v(iE_Extensions); - - }; - void clear() - { - mME_UE_S1AP_ID.clear(); - uESecurityCapabilities.clear(); - aS_SecurityInformation.clear(); - uEaggregateMaximumBitRate.clear(); - subscriberProfileIDforRFP.clear(); - e_RABs_ToBeSetup_List.clear(); - rRC_Context.clear(); - handoverRestrictionList.clear(); - locationReportingInformation.clear(); - iE_Extensions.clear(); - - }; - private: - mME_UE_S1AP_ID_t mME_UE_S1AP_ID; - uESecurityCapabilities_t uESecurityCapabilities; - aS_SecurityInformation_t aS_SecurityInformation; - uEaggregateMaximumBitRate_t uEaggregateMaximumBitRate; - subscriberProfileIDforRFP_t subscriberProfileIDforRFP; - e_RABs_ToBeSetup_List_t e_RABs_ToBeSetup_List; - rRC_Context_t rRC_Context; - handoverRestrictionList_t handoverRestrictionList; - locationReportingInformation_t locationReportingInformation; - iE_Extensions_t iE_Extensions; - -}; -/* -UE-ContextReferenceAtSeNB-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct UE_ContextReferenceAtSeNB_ItemExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -UE-ContextReferenceAtSeNB ::= SEQUENCE { - source-GlobalSeNB-ID GlobalENB-ID, - seNB-UE-X2AP-ID UE-X2AP-ID, - seNB-UE-X2AP-ID-Extension UE-X2AP-ID-Extension, - iE-Extensions ProtocolExtensionContainer { {UE-ContextReferenceAtSeNB-ItemExtIEs} } OPTIONAL, - ... -} -*/ - -struct UE_ContextReferenceAtSeNB : asn::sequence<4, 0, true, 1> -{ - static constexpr const char* name() {return "UE-ContextReferenceAtSeNB";} - using parent_t = asn::sequence<4, 0, true, 1>; - struct source_GlobalSeNB_ID_t : GlobalENB_ID - { - static constexpr const char* name() {return "source_GlobalSeNB_ID_t";} - using parent_t = GlobalENB_ID; - - }; - source_GlobalSeNB_ID_t& ref_source_GlobalSeNB_ID() {return source_GlobalSeNB_ID;} - source_GlobalSeNB_ID_t const& ref_source_GlobalSeNB_ID() const {return source_GlobalSeNB_ID;} - struct seNB_UE_X2AP_ID_t : UE_X2AP_ID - { - static constexpr const char* name() {return "seNB_UE_X2AP_ID_t";} - using parent_t = UE_X2AP_ID; - - }; - seNB_UE_X2AP_ID_t& ref_seNB_UE_X2AP_ID() {return seNB_UE_X2AP_ID;} - seNB_UE_X2AP_ID_t const& ref_seNB_UE_X2AP_ID() const {return seNB_UE_X2AP_ID;} - struct seNB_UE_X2AP_ID_Extension_t : UE_X2AP_ID_Extension - { - static constexpr const char* name() {return "seNB_UE_X2AP_ID_Extension_t";} - using parent_t = UE_X2AP_ID_Extension; - - }; - seNB_UE_X2AP_ID_Extension_t& ref_seNB_UE_X2AP_ID_Extension() {return seNB_UE_X2AP_ID_Extension;} - seNB_UE_X2AP_ID_Extension_t const& ref_seNB_UE_X2AP_ID_Extension() const {return seNB_UE_X2AP_ID_Extension;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(source_GlobalSeNB_ID); - v(seNB_UE_X2AP_ID); - v(seNB_UE_X2AP_ID_Extension); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(source_GlobalSeNB_ID); - v(seNB_UE_X2AP_ID); - v(seNB_UE_X2AP_ID_Extension); - v(iE_Extensions); - - }; - void clear() - { - source_GlobalSeNB_ID.clear(); - seNB_UE_X2AP_ID.clear(); - seNB_UE_X2AP_ID_Extension.clear(); - iE_Extensions.clear(); - - }; - private: - source_GlobalSeNB_ID_t source_GlobalSeNB_ID; - seNB_UE_X2AP_ID_t seNB_UE_X2AP_ID; - seNB_UE_X2AP_ID_Extension_t seNB_UE_X2AP_ID_Extension; - iE_Extensions_t iE_Extensions; - -}; -/* -UE-ContextReferenceAtWT-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct UE_ContextReferenceAtWT_ItemExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -UE-ContextReferenceAtWT ::= SEQUENCE { - wTID WTID, - wT-UE-XwAP-ID WT-UE-XwAP-ID, - iE-Extensions ProtocolExtensionContainer { {UE-ContextReferenceAtWT-ItemExtIEs} } OPTIONAL, - ... -} -*/ - -struct UE_ContextReferenceAtWT : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "UE-ContextReferenceAtWT";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct wTID_t : WTID - { - static constexpr const char* name() {return "wTID_t";} - using parent_t = WTID; - - }; - wTID_t& ref_wTID() {return wTID;} - wTID_t const& ref_wTID() const {return wTID;} - struct wT_UE_XwAP_ID_t : WT_UE_XwAP_ID - { - static constexpr const char* name() {return "wT_UE_XwAP_ID_t";} - using parent_t = WT_UE_XwAP_ID; - - }; - wT_UE_XwAP_ID_t& ref_wT_UE_XwAP_ID() {return wT_UE_XwAP_ID;} - wT_UE_XwAP_ID_t const& ref_wT_UE_XwAP_ID() const {return wT_UE_XwAP_ID;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(wTID); - v(wT_UE_XwAP_ID); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(wTID); - v(wT_UE_XwAP_ID); - v(iE_Extensions); - - }; - void clear() - { - wTID.clear(); - wT_UE_XwAP_ID.clear(); - iE_Extensions.clear(); - - }; - private: - wTID_t wTID; - wT_UE_XwAP_ID_t wT_UE_XwAP_ID; - iE_Extensions_t iE_Extensions; - -}; -/* -UE-ContextReferenceAtSgNB-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct UE_ContextReferenceAtSgNB_ItemExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -UE-ContextReferenceAtSgNB ::= SEQUENCE { - source-GlobalSgNB-ID GlobalGNB-ID, - sgNB-UE-X2AP-ID SgNB-UE-X2AP-ID, - iE-Extensions ProtocolExtensionContainer { {UE-ContextReferenceAtSgNB-ItemExtIEs} } OPTIONAL, - ... -} -*/ - -struct UE_ContextReferenceAtSgNB : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "UE-ContextReferenceAtSgNB";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct source_GlobalSgNB_ID_t : GlobalGNB_ID - { - static constexpr const char* name() {return "source_GlobalSgNB_ID_t";} - using parent_t = GlobalGNB_ID; - - }; - source_GlobalSgNB_ID_t& ref_source_GlobalSgNB_ID() {return source_GlobalSgNB_ID;} - source_GlobalSgNB_ID_t const& ref_source_GlobalSgNB_ID() const {return source_GlobalSgNB_ID;} - struct sgNB_UE_X2AP_ID_t : SgNB_UE_X2AP_ID - { - static constexpr const char* name() {return "sgNB_UE_X2AP_ID_t";} - using parent_t = SgNB_UE_X2AP_ID; - - }; - sgNB_UE_X2AP_ID_t& ref_sgNB_UE_X2AP_ID() {return sgNB_UE_X2AP_ID;} - sgNB_UE_X2AP_ID_t const& ref_sgNB_UE_X2AP_ID() const {return sgNB_UE_X2AP_ID;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(source_GlobalSgNB_ID); - v(sgNB_UE_X2AP_ID); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(source_GlobalSgNB_ID); - v(sgNB_UE_X2AP_ID); - v(iE_Extensions); - - }; - void clear() - { - source_GlobalSgNB_ID.clear(); - sgNB_UE_X2AP_ID.clear(); - iE_Extensions.clear(); - - }; - private: - source_GlobalSgNB_ID_t source_GlobalSgNB_ID; - sgNB_UE_X2AP_ID_t sgNB_UE_X2AP_ID; - iE_Extensions_t iE_Extensions; - -}; -/* -HandoverRequest-IEs X2AP-PROTOCOL-IES ::= { - { ID id-Old-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| - { ID id-TargetCell-ID CRITICALITY reject TYPE ECGI PRESENCE mandatory}| - { ID id-GUMMEI-ID CRITICALITY reject TYPE GUMMEI PRESENCE mandatory}| - { ID id-UE-ContextInformation CRITICALITY reject TYPE UE-ContextInformation PRESENCE mandatory}| - { ID id-UE-HistoryInformation CRITICALITY ignore TYPE UE-HistoryInformation PRESENCE mandatory}| - { ID id-TraceActivation CRITICALITY ignore TYPE TraceActivation PRESENCE optional}| - { ID id-SRVCCOperationPossible CRITICALITY ignore TYPE SRVCCOperationPossible PRESENCE optional}| - { ID id-CSGMembershipStatus CRITICALITY reject TYPE CSGMembershipStatus PRESENCE optional}| - { ID id-MobilityInformation CRITICALITY ignore TYPE MobilityInformation PRESENCE optional}| - { ID id-Masked-IMEISV CRITICALITY ignore TYPE Masked-IMEISV PRESENCE optional}| - { ID id-UE-HistoryInformationFromTheUE CRITICALITY ignore TYPE UE-HistoryInformationFromTheUE PRESENCE optional}| - { ID id-ExpectedUEBehaviour CRITICALITY ignore TYPE ExpectedUEBehaviour PRESENCE optional}| - { ID id-ProSeAuthorized CRITICALITY ignore TYPE ProSeAuthorized PRESENCE optional}| - { ID id-UE-ContextReferenceAtSeNB CRITICALITY ignore TYPE UE-ContextReferenceAtSeNB PRESENCE optional}| - { ID id-Old-eNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-V2XServicesAuthorized CRITICALITY ignore TYPE V2XServicesAuthorized PRESENCE optional}| - { ID id-UE-ContextReferenceAtWT CRITICALITY ignore TYPE UE-ContextReferenceAtWT PRESENCE optional}| - { ID id-NRUESecurityCapabilities CRITICALITY ignore TYPE NRUESecurityCapabilities PRESENCE optional}| - { ID id-UE-ContextReferenceAtSgNB CRITICALITY ignore TYPE UE-ContextReferenceAtSgNB PRESENCE optional}| - { ID id-AerialUEsubscriptionInformation CRITICALITY ignore TYPE AerialUEsubscriptionInformation PRESENCE optional}| - { ID id-Subscription-Based-UE-DifferentiationInfo CRITICALITY ignore TYPE Subscription-Based-UE-DifferentiationInfo PRESENCE optional}, - ... -} -*/ - -struct HandoverRequest_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 23; } - void clear() {type = 0;} - void select_id_Old_eNB_UE_X2AP_ID() { set(id_Old_eNB_UE_X2AP_ID); type=1;} - void select_id_Cause() { set(id_Cause); type=2;} - void select_id_TargetCell_ID() { set(id_TargetCell_ID); type=3;} - void select_id_GUMMEI_ID() { set(id_GUMMEI_ID); type=4;} - void select_id_UE_ContextInformation() { set(id_UE_ContextInformation); type=5;} - void select_id_UE_HistoryInformation() { set(id_UE_HistoryInformation); type=6;} - void select_id_TraceActivation() { set(id_TraceActivation); type=7;} - void select_id_SRVCCOperationPossible() { set(id_SRVCCOperationPossible); type=8;} - void select_id_CSGMembershipStatus() { set(id_CSGMembershipStatus); type=9;} - void select_id_MobilityInformation() { set(id_MobilityInformation); type=10;} - void select_id_Masked_IMEISV() { set(id_Masked_IMEISV); type=11;} - void select_id_UE_HistoryInformationFromTheUE() { set(id_UE_HistoryInformationFromTheUE); type=12;} - void select_id_ExpectedUEBehaviour() { set(id_ExpectedUEBehaviour); type=13;} - void select_id_ProSeAuthorized() { set(id_ProSeAuthorized); type=14;} - void select_id_UE_ContextReferenceAtSeNB() { set(id_UE_ContextReferenceAtSeNB); type=15;} - void select_id_Old_eNB_UE_X2AP_ID_Extension() { set(id_Old_eNB_UE_X2AP_ID_Extension); type=16;} - void select_id_V2XServicesAuthorized() { set(id_V2XServicesAuthorized); type=17;} - void select_id_UE_ContextReferenceAtWT() { set(id_UE_ContextReferenceAtWT); type=18;} - void select_id_NRUESecurityCapabilities() { set(id_NRUESecurityCapabilities); type=19;} - void select_id_UE_ContextReferenceAtSgNB() { set(id_UE_ContextReferenceAtSgNB); type=20;} - void select_id_AerialUEsubscriptionInformation() { set(id_AerialUEsubscriptionInformation); type=21;} - void select_id_Subscription_Based_UE_DifferentiationInfo() { set(id_Subscription_Based_UE_DifferentiationInfo); type=22;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_Old_eNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_Cause)) { type = 2; return true; } - else if(equal(id_TargetCell_ID)) { type = 3; return true; } - else if(equal(id_GUMMEI_ID)) { type = 4; return true; } - else if(equal(id_UE_ContextInformation)) { type = 5; return true; } - else if(equal(id_UE_HistoryInformation)) { type = 6; return true; } - else if(equal(id_TraceActivation)) { type = 7; return true; } - else if(equal(id_SRVCCOperationPossible)) { type = 8; return true; } - else if(equal(id_CSGMembershipStatus)) { type = 9; return true; } - else if(equal(id_MobilityInformation)) { type = 10; return true; } - else if(equal(id_Masked_IMEISV)) { type = 11; return true; } - else if(equal(id_UE_HistoryInformationFromTheUE)) { type = 12; return true; } - else if(equal(id_ExpectedUEBehaviour)) { type = 13; return true; } - else if(equal(id_ProSeAuthorized)) { type = 14; return true; } - else if(equal(id_UE_ContextReferenceAtSeNB)) { type = 15; return true; } - else if(equal(id_Old_eNB_UE_X2AP_ID_Extension)) { type = 16; return true; } - else if(equal(id_V2XServicesAuthorized)) { type = 17; return true; } - else if(equal(id_UE_ContextReferenceAtWT)) { type = 18; return true; } - else if(equal(id_NRUESecurityCapabilities)) { type = 19; return true; } - else if(equal(id_UE_ContextReferenceAtSgNB)) { type = 20; return true; } - else if(equal(id_AerialUEsubscriptionInformation)) { type = 21; return true; } - else if(equal(id_Subscription_Based_UE_DifferentiationInfo)) { type = 22; return true; } - else { type = 23; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_Old_eNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_TargetCell_ID);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_GUMMEI_ID);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_UE_ContextInformation);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_UE_HistoryInformation);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(id_TraceActivation);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(id_SRVCCOperationPossible);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(id_CSGMembershipStatus);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(id_MobilityInformation);} return false; - case 11: type = 11; if(v(ref_nested())) { return equal(id_Masked_IMEISV);} return false; - case 12: type = 12; if(v(ref_nested())) { return equal(id_UE_HistoryInformationFromTheUE);} return false; - case 13: type = 13; if(v(ref_nested())) { return equal(id_ExpectedUEBehaviour);} return false; - case 14: type = 14; if(v(ref_nested())) { return equal(id_ProSeAuthorized);} return false; - case 15: type = 15; if(v(ref_nested())) { return equal(id_UE_ContextReferenceAtSeNB);} return false; - case 16: type = 16; if(v(ref_nested())) { return equal(id_Old_eNB_UE_X2AP_ID_Extension);} return false; - case 17: type = 17; if(v(ref_nested())) { return equal(id_V2XServicesAuthorized);} return false; - case 18: type = 18; if(v(ref_nested())) { return equal(id_UE_ContextReferenceAtWT);} return false; - case 19: type = 19; if(v(ref_nested())) { return equal(id_NRUESecurityCapabilities);} return false; - case 20: type = 20; if(v(ref_nested())) { return equal(id_UE_ContextReferenceAtSgNB);} return false; - case 21: type = 21; if(v(ref_nested())) { return equal(id_AerialUEsubscriptionInformation);} return false; - case 22: type = 22; if(v(ref_nested())) { return equal(id_Subscription_Based_UE_DifferentiationInfo);} return false; - case 23: type = 23; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 23; } - void clear() {type = 0;} - void select_id_Old_eNB_UE_X2AP_ID() { set(reject); type=1;} - void select_id_Cause() { set(ignore); type=2;} - void select_id_TargetCell_ID() { set(reject); type=3;} - void select_id_GUMMEI_ID() { set(reject); type=4;} - void select_id_UE_ContextInformation() { set(reject); type=5;} - void select_id_UE_HistoryInformation() { set(ignore); type=6;} - void select_id_TraceActivation() { set(ignore); type=7;} - void select_id_SRVCCOperationPossible() { set(ignore); type=8;} - void select_id_CSGMembershipStatus() { set(reject); type=9;} - void select_id_MobilityInformation() { set(ignore); type=10;} - void select_id_Masked_IMEISV() { set(ignore); type=11;} - void select_id_UE_HistoryInformationFromTheUE() { set(ignore); type=12;} - void select_id_ExpectedUEBehaviour() { set(ignore); type=13;} - void select_id_ProSeAuthorized() { set(ignore); type=14;} - void select_id_UE_ContextReferenceAtSeNB() { set(ignore); type=15;} - void select_id_Old_eNB_UE_X2AP_ID_Extension() { set(reject); type=16;} - void select_id_V2XServicesAuthorized() { set(ignore); type=17;} - void select_id_UE_ContextReferenceAtWT() { set(ignore); type=18;} - void select_id_NRUESecurityCapabilities() { set(ignore); type=19;} - void select_id_UE_ContextReferenceAtSgNB() { set(ignore); type=20;} - void select_id_AerialUEsubscriptionInformation() { set(ignore); type=21;} - void select_id_Subscription_Based_UE_DifferentiationInfo() { set(ignore); type=22;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(reject)) { type = 3; return true; } - else if(equal(reject)) { type = 4; return true; } - else if(equal(reject)) { type = 5; return true; } - else if(equal(ignore)) { type = 6; return true; } - else if(equal(ignore)) { type = 7; return true; } - else if(equal(ignore)) { type = 8; return true; } - else if(equal(reject)) { type = 9; return true; } - else if(equal(ignore)) { type = 10; return true; } - else if(equal(ignore)) { type = 11; return true; } - else if(equal(ignore)) { type = 12; return true; } - else if(equal(ignore)) { type = 13; return true; } - else if(equal(ignore)) { type = 14; return true; } - else if(equal(ignore)) { type = 15; return true; } - else if(equal(reject)) { type = 16; return true; } - else if(equal(ignore)) { type = 17; return true; } - else if(equal(ignore)) { type = 18; return true; } - else if(equal(ignore)) { type = 19; return true; } - else if(equal(ignore)) { type = 20; return true; } - else if(equal(ignore)) { type = 21; return true; } - else if(equal(ignore)) { type = 22; return true; } - else { type = 23; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(reject);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(reject);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(reject);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(ignore);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(ignore);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(ignore);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(reject);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(ignore);} return false; - case 11: type = 11; if(v(ref_nested())) { return equal(ignore);} return false; - case 12: type = 12; if(v(ref_nested())) { return equal(ignore);} return false; - case 13: type = 13; if(v(ref_nested())) { return equal(ignore);} return false; - case 14: type = 14; if(v(ref_nested())) { return equal(ignore);} return false; - case 15: type = 15; if(v(ref_nested())) { return equal(ignore);} return false; - case 16: type = 16; if(v(ref_nested())) { return equal(reject);} return false; - case 17: type = 17; if(v(ref_nested())) { return equal(ignore);} return false; - case 18: type = 18; if(v(ref_nested())) { return equal(ignore);} return false; - case 19: type = 19; if(v(ref_nested())) { return equal(ignore);} return false; - case 20: type = 20; if(v(ref_nested())) { return equal(ignore);} return false; - case 21: type = 21; if(v(ref_nested())) { return equal(ignore);} return false; - case 22: type = 22; if(v(ref_nested())) { return equal(ignore);} return false; - case 23: type = 23; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_Old_eNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_Old_eNB_UE_X2AP_ID() const { return get(1); } - Cause& select_id_Cause() { return set(2); } - Cause const* get_id_Cause() const { return get(2); } - ECGI& select_id_TargetCell_ID() { return set(3); } - ECGI const* get_id_TargetCell_ID() const { return get(3); } - GUMMEI& select_id_GUMMEI_ID() { return set(4); } - GUMMEI const* get_id_GUMMEI_ID() const { return get(4); } - UE_ContextInformation& select_id_UE_ContextInformation() { return set(5); } - UE_ContextInformation const* get_id_UE_ContextInformation() const { return get(5); } - UE_HistoryInformation& select_id_UE_HistoryInformation() { return set(6); } - UE_HistoryInformation const* get_id_UE_HistoryInformation() const { return get(6); } - TraceActivation& select_id_TraceActivation() { return set(7); } - TraceActivation const* get_id_TraceActivation() const { return get(7); } - SRVCCOperationPossible& select_id_SRVCCOperationPossible() { return set(8); } - SRVCCOperationPossible const* get_id_SRVCCOperationPossible() const { return get(8); } - CSGMembershipStatus& select_id_CSGMembershipStatus() { return set(9); } - CSGMembershipStatus const* get_id_CSGMembershipStatus() const { return get(9); } - MobilityInformation& select_id_MobilityInformation() { return set(10); } - MobilityInformation const* get_id_MobilityInformation() const { return get(10); } - Masked_IMEISV& select_id_Masked_IMEISV() { return set(11); } - Masked_IMEISV const* get_id_Masked_IMEISV() const { return get(11); } - UE_HistoryInformationFromTheUE& select_id_UE_HistoryInformationFromTheUE() { return set(12); } - UE_HistoryInformationFromTheUE const* get_id_UE_HistoryInformationFromTheUE() const { return get(12); } - ExpectedUEBehaviour& select_id_ExpectedUEBehaviour() { return set(13); } - ExpectedUEBehaviour const* get_id_ExpectedUEBehaviour() const { return get(13); } - ProSeAuthorized& select_id_ProSeAuthorized() { return set(14); } - ProSeAuthorized const* get_id_ProSeAuthorized() const { return get(14); } - UE_ContextReferenceAtSeNB& select_id_UE_ContextReferenceAtSeNB() { return set(15); } - UE_ContextReferenceAtSeNB const* get_id_UE_ContextReferenceAtSeNB() const { return get(15); } - UE_X2AP_ID_Extension& select_id_Old_eNB_UE_X2AP_ID_Extension() { return set(16); } - UE_X2AP_ID_Extension const* get_id_Old_eNB_UE_X2AP_ID_Extension() const { return get(16); } - V2XServicesAuthorized& select_id_V2XServicesAuthorized() { return set(17); } - V2XServicesAuthorized const* get_id_V2XServicesAuthorized() const { return get(17); } - UE_ContextReferenceAtWT& select_id_UE_ContextReferenceAtWT() { return set(18); } - UE_ContextReferenceAtWT const* get_id_UE_ContextReferenceAtWT() const { return get(18); } - NRUESecurityCapabilities& select_id_NRUESecurityCapabilities() { return set(19); } - NRUESecurityCapabilities const* get_id_NRUESecurityCapabilities() const { return get(19); } - UE_ContextReferenceAtSgNB& select_id_UE_ContextReferenceAtSgNB() { return set(20); } - UE_ContextReferenceAtSgNB const* get_id_UE_ContextReferenceAtSgNB() const { return get(20); } - AerialUEsubscriptionInformation& select_id_AerialUEsubscriptionInformation() { return set(21); } - AerialUEsubscriptionInformation const* get_id_AerialUEsubscriptionInformation() const { return get(21); } - Subscription_Based_UE_DifferentiationInfo& select_id_Subscription_Based_UE_DifferentiationInfo() { return set(22); } - Subscription_Based_UE_DifferentiationInfo const* get_id_Subscription_Based_UE_DifferentiationInfo() const { return get(22); } - bool is_unknown() const { return type == 23; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - case 7: var.destroy(); break; - case 8: var.destroy(); break; - case 9: var.destroy(); break; - case 10: var.destroy(); break; - case 11: var.destroy(); break; - case 12: var.destroy(); break; - case 13: var.destroy(); break; - case 14: var.destroy(); break; - case 15: var.destroy(); break; - case 16: var.destroy(); break; - case 17: var.destroy(); break; - case 18: var.destroy(); break; - case 19: var.destroy(); break; - case 20: var.destroy(); break; - case 21: var.destroy(); break; - case 22: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - v.template operator()(7); - v.template operator()(8); - v.template operator()(9); - v.template operator()(10); - v.template operator()(11); - v.template operator()(12); - v.template operator()(13); - v.template operator()(14); - v.template operator()(15); - v.template operator()(16); - v.template operator()(17); - v.template operator()(18); - v.template operator()(19); - v.template operator()(20); - v.template operator()(21); - v.template operator()(22); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_Old_eNB_UE_X2AP_ID()); return true; - case 2: v(select_id_Cause()); return true; - case 3: v(select_id_TargetCell_ID()); return true; - case 4: v(select_id_GUMMEI_ID()); return true; - case 5: v(select_id_UE_ContextInformation()); return true; - case 6: v(select_id_UE_HistoryInformation()); return true; - case 7: v(select_id_TraceActivation()); return true; - case 8: v(select_id_SRVCCOperationPossible()); return true; - case 9: v(select_id_CSGMembershipStatus()); return true; - case 10: v(select_id_MobilityInformation()); return true; - case 11: v(select_id_Masked_IMEISV()); return true; - case 12: v(select_id_UE_HistoryInformationFromTheUE()); return true; - case 13: v(select_id_ExpectedUEBehaviour()); return true; - case 14: v(select_id_ProSeAuthorized()); return true; - case 15: v(select_id_UE_ContextReferenceAtSeNB()); return true; - case 16: v(select_id_Old_eNB_UE_X2AP_ID_Extension()); return true; - case 17: v(select_id_V2XServicesAuthorized()); return true; - case 18: v(select_id_UE_ContextReferenceAtWT()); return true; - case 19: v(select_id_NRUESecurityCapabilities()); return true; - case 20: v(select_id_UE_ContextReferenceAtSgNB()); return true; - case 21: v(select_id_AerialUEsubscriptionInformation()); return true; - case 22: v(select_id_Subscription_Based_UE_DifferentiationInfo()); return true; - case 23: if(type != 23) {clear(); asn::base::set();} type = 23; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - case 7: v(var.as()); return true; - case 8: v(var.as()); return true; - case 9: v(var.as()); return true; - case 10: v(var.as()); return true; - case 11: v(var.as()); return true; - case 12: v(var.as()); return true; - case 13: v(var.as()); return true; - case 14: v(var.as()); return true; - case 15: v(var.as()); return true; - case 16: v(var.as()); return true; - case 17: v(var.as()); return true; - case 18: v(var.as()); return true; - case 19: v(var.as()); return true; - case 20: v(var.as()); return true; - case 21: v(var.as()); return true; - case 22: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(AerialUEsubscriptionInformation)]; - char dummy2[sizeof(CSGMembershipStatus)]; - char dummy3[sizeof(Cause)]; - char dummy4[sizeof(ECGI)]; - char dummy5[sizeof(ExpectedUEBehaviour)]; - char dummy6[sizeof(GUMMEI)]; - char dummy7[sizeof(Masked_IMEISV)]; - char dummy8[sizeof(MobilityInformation)]; - char dummy9[sizeof(NRUESecurityCapabilities)]; - char dummy10[sizeof(ProSeAuthorized)]; - char dummy11[sizeof(SRVCCOperationPossible)]; - char dummy12[sizeof(Subscription_Based_UE_DifferentiationInfo)]; - char dummy13[sizeof(TraceActivation)]; - char dummy14[sizeof(UE_ContextInformation)]; - char dummy15[sizeof(UE_ContextReferenceAtSeNB)]; - char dummy16[sizeof(UE_ContextReferenceAtSgNB)]; - char dummy17[sizeof(UE_ContextReferenceAtWT)]; - char dummy18[sizeof(UE_HistoryInformation)]; - char dummy19[sizeof(UE_HistoryInformationFromTheUE)]; - char dummy20[sizeof(UE_X2AP_ID)]; - char dummy21[sizeof(UE_X2AP_ID_Extension)]; - char dummy22[sizeof(V2XServicesAuthorized)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 23; } - void clear() {type = 0;} - void select_id_Old_eNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_Cause() { set(mandatory); type=2;} - void select_id_TargetCell_ID() { set(mandatory); type=3;} - void select_id_GUMMEI_ID() { set(mandatory); type=4;} - void select_id_UE_ContextInformation() { set(mandatory); type=5;} - void select_id_UE_HistoryInformation() { set(mandatory); type=6;} - void select_id_TraceActivation() { set(optional); type=7;} - void select_id_SRVCCOperationPossible() { set(optional); type=8;} - void select_id_CSGMembershipStatus() { set(optional); type=9;} - void select_id_MobilityInformation() { set(optional); type=10;} - void select_id_Masked_IMEISV() { set(optional); type=11;} - void select_id_UE_HistoryInformationFromTheUE() { set(optional); type=12;} - void select_id_ExpectedUEBehaviour() { set(optional); type=13;} - void select_id_ProSeAuthorized() { set(optional); type=14;} - void select_id_UE_ContextReferenceAtSeNB() { set(optional); type=15;} - void select_id_Old_eNB_UE_X2AP_ID_Extension() { set(optional); type=16;} - void select_id_V2XServicesAuthorized() { set(optional); type=17;} - void select_id_UE_ContextReferenceAtWT() { set(optional); type=18;} - void select_id_NRUESecurityCapabilities() { set(optional); type=19;} - void select_id_UE_ContextReferenceAtSgNB() { set(optional); type=20;} - void select_id_AerialUEsubscriptionInformation() { set(optional); type=21;} - void select_id_Subscription_Based_UE_DifferentiationInfo() { set(optional); type=22;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(mandatory)) { type = 4; return true; } - else if(equal(mandatory)) { type = 5; return true; } - else if(equal(mandatory)) { type = 6; return true; } - else if(equal(optional)) { type = 7; return true; } - else if(equal(optional)) { type = 8; return true; } - else if(equal(optional)) { type = 9; return true; } - else if(equal(optional)) { type = 10; return true; } - else if(equal(optional)) { type = 11; return true; } - else if(equal(optional)) { type = 12; return true; } - else if(equal(optional)) { type = 13; return true; } - else if(equal(optional)) { type = 14; return true; } - else if(equal(optional)) { type = 15; return true; } - else if(equal(optional)) { type = 16; return true; } - else if(equal(optional)) { type = 17; return true; } - else if(equal(optional)) { type = 18; return true; } - else if(equal(optional)) { type = 19; return true; } - else if(equal(optional)) { type = 20; return true; } - else if(equal(optional)) { type = 21; return true; } - else if(equal(optional)) { type = 22; return true; } - else { type = 23; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(mandatory);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(mandatory);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(mandatory);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(optional);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(optional);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(optional);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(optional);} return false; - case 11: type = 11; if(v(ref_nested())) { return equal(optional);} return false; - case 12: type = 12; if(v(ref_nested())) { return equal(optional);} return false; - case 13: type = 13; if(v(ref_nested())) { return equal(optional);} return false; - case 14: type = 14; if(v(ref_nested())) { return equal(optional);} return false; - case 15: type = 15; if(v(ref_nested())) { return equal(optional);} return false; - case 16: type = 16; if(v(ref_nested())) { return equal(optional);} return false; - case 17: type = 17; if(v(ref_nested())) { return equal(optional);} return false; - case 18: type = 18; if(v(ref_nested())) { return equal(optional);} return false; - case 19: type = 19; if(v(ref_nested())) { return equal(optional);} return false; - case 20: type = 20; if(v(ref_nested())) { return equal(optional);} return false; - case 21: type = 21; if(v(ref_nested())) { return equal(optional);} return false; - case 22: type = 22; if(v(ref_nested())) { return equal(optional);} return false; - case 23: type = 23; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -HandoverRequest ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{HandoverRequest-IEs}}, - ... -} -*/ - -struct HandoverRequest : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "HandoverRequest";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -HandoverRequestAcknowledge-IEs X2AP-PROTOCOL-IES ::= { - { ID id-Old-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-New-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-E-RABs-Admitted-List CRITICALITY ignore TYPE E-RABs-Admitted-List PRESENCE mandatory}| - { ID id-E-RABs-NotAdmitted-List CRITICALITY ignore TYPE E-RAB-List PRESENCE optional}| - { ID id-TargeteNBtoSource-eNBTransparentContainer CRITICALITY ignore TYPE TargeteNBtoSource-eNBTransparentContainer PRESENCE mandatory}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| - { ID id-UE-ContextKeptIndicator CRITICALITY ignore TYPE UE-ContextKeptIndicator PRESENCE optional}| - { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-Old-eNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-New-eNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-WT-UE-ContextKeptIndicator CRITICALITY ignore TYPE UE-ContextKeptIndicator PRESENCE optional}, - ... -} -*/ - -struct HandoverRequestAcknowledge_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 12; } - void clear() {type = 0;} - void select_id_Old_eNB_UE_X2AP_ID() { set(id_Old_eNB_UE_X2AP_ID); type=1;} - void select_id_New_eNB_UE_X2AP_ID() { set(id_New_eNB_UE_X2AP_ID); type=2;} - void select_id_E_RABs_Admitted_List() { set(id_E_RABs_Admitted_List); type=3;} - void select_id_E_RABs_NotAdmitted_List() { set(id_E_RABs_NotAdmitted_List); type=4;} - void select_id_TargeteNBtoSource_eNBTransparentContainer() { set(id_TargeteNBtoSource_eNBTransparentContainer); type=5;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=6;} - void select_id_UE_ContextKeptIndicator() { set(id_UE_ContextKeptIndicator); type=7;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(id_SeNB_UE_X2AP_ID_Extension); type=8;} - void select_id_Old_eNB_UE_X2AP_ID_Extension() { set(id_Old_eNB_UE_X2AP_ID_Extension); type=9;} - void select_id_New_eNB_UE_X2AP_ID_Extension() { set(id_New_eNB_UE_X2AP_ID_Extension); type=10;} - void select_id_WT_UE_ContextKeptIndicator() { set(id_WT_UE_ContextKeptIndicator); type=11;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_Old_eNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_New_eNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_E_RABs_Admitted_List)) { type = 3; return true; } - else if(equal(id_E_RABs_NotAdmitted_List)) { type = 4; return true; } - else if(equal(id_TargeteNBtoSource_eNBTransparentContainer)) { type = 5; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 6; return true; } - else if(equal(id_UE_ContextKeptIndicator)) { type = 7; return true; } - else if(equal(id_SeNB_UE_X2AP_ID_Extension)) { type = 8; return true; } - else if(equal(id_Old_eNB_UE_X2AP_ID_Extension)) { type = 9; return true; } - else if(equal(id_New_eNB_UE_X2AP_ID_Extension)) { type = 10; return true; } - else if(equal(id_WT_UE_ContextKeptIndicator)) { type = 11; return true; } - else { type = 12; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_Old_eNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_New_eNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_E_RABs_Admitted_List);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_E_RABs_NotAdmitted_List);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_TargeteNBtoSource_eNBTransparentContainer);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(id_UE_ContextKeptIndicator);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(id_SeNB_UE_X2AP_ID_Extension);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(id_Old_eNB_UE_X2AP_ID_Extension);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(id_New_eNB_UE_X2AP_ID_Extension);} return false; - case 11: type = 11; if(v(ref_nested())) { return equal(id_WT_UE_ContextKeptIndicator);} return false; - case 12: type = 12; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 12; } - void clear() {type = 0;} - void select_id_Old_eNB_UE_X2AP_ID() { set(ignore); type=1;} - void select_id_New_eNB_UE_X2AP_ID() { set(ignore); type=2;} - void select_id_E_RABs_Admitted_List() { set(ignore); type=3;} - void select_id_E_RABs_NotAdmitted_List() { set(ignore); type=4;} - void select_id_TargeteNBtoSource_eNBTransparentContainer() { set(ignore); type=5;} - void select_id_CriticalityDiagnostics() { set(ignore); type=6;} - void select_id_UE_ContextKeptIndicator() { set(ignore); type=7;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(ignore); type=8;} - void select_id_Old_eNB_UE_X2AP_ID_Extension() { set(ignore); type=9;} - void select_id_New_eNB_UE_X2AP_ID_Extension() { set(reject); type=10;} - void select_id_WT_UE_ContextKeptIndicator() { set(ignore); type=11;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else if(equal(ignore)) { type = 6; return true; } - else if(equal(ignore)) { type = 7; return true; } - else if(equal(ignore)) { type = 8; return true; } - else if(equal(ignore)) { type = 9; return true; } - else if(equal(reject)) { type = 10; return true; } - else if(equal(ignore)) { type = 11; return true; } - else { type = 12; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(ignore);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(ignore);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(ignore);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(ignore);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(reject);} return false; - case 11: type = 11; if(v(ref_nested())) { return equal(ignore);} return false; - case 12: type = 12; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_Old_eNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_Old_eNB_UE_X2AP_ID() const { return get(1); } - UE_X2AP_ID& select_id_New_eNB_UE_X2AP_ID() { return set(2); } - UE_X2AP_ID const* get_id_New_eNB_UE_X2AP_ID() const { return get(2); } - E_RABs_Admitted_List& select_id_E_RABs_Admitted_List() { return set(3); } - E_RABs_Admitted_List const* get_id_E_RABs_Admitted_List() const { return get(3); } - E_RAB_List& select_id_E_RABs_NotAdmitted_List() { return set(4); } - E_RAB_List const* get_id_E_RABs_NotAdmitted_List() const { return get(4); } - TargeteNBtoSource_eNBTransparentContainer& select_id_TargeteNBtoSource_eNBTransparentContainer() { return set(5); } - TargeteNBtoSource_eNBTransparentContainer const* get_id_TargeteNBtoSource_eNBTransparentContainer() const { return get(5); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(6); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(6); } - UE_ContextKeptIndicator& select_id_UE_ContextKeptIndicator() { return set(7); } - UE_ContextKeptIndicator const* get_id_UE_ContextKeptIndicator() const { return get(7); } - UE_X2AP_ID_Extension& select_id_SeNB_UE_X2AP_ID_Extension() { return set(8); } - UE_X2AP_ID_Extension const* get_id_SeNB_UE_X2AP_ID_Extension() const { return get(8); } - UE_X2AP_ID_Extension& select_id_Old_eNB_UE_X2AP_ID_Extension() { return set(9); } - UE_X2AP_ID_Extension const* get_id_Old_eNB_UE_X2AP_ID_Extension() const { return get(9); } - UE_X2AP_ID_Extension& select_id_New_eNB_UE_X2AP_ID_Extension() { return set(10); } - UE_X2AP_ID_Extension const* get_id_New_eNB_UE_X2AP_ID_Extension() const { return get(10); } - UE_ContextKeptIndicator& select_id_WT_UE_ContextKeptIndicator() { return set(11); } - UE_ContextKeptIndicator const* get_id_WT_UE_ContextKeptIndicator() const { return get(11); } - bool is_unknown() const { return type == 12; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - case 7: var.destroy(); break; - case 8: var.destroy(); break; - case 9: var.destroy(); break; - case 10: var.destroy(); break; - case 11: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - v.template operator()(7); - v.template operator()(8); - v.template operator()(9); - v.template operator()(10); - v.template operator()(11); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_Old_eNB_UE_X2AP_ID()); return true; - case 2: v(select_id_New_eNB_UE_X2AP_ID()); return true; - case 3: v(select_id_E_RABs_Admitted_List()); return true; - case 4: v(select_id_E_RABs_NotAdmitted_List()); return true; - case 5: v(select_id_TargeteNBtoSource_eNBTransparentContainer()); return true; - case 6: v(select_id_CriticalityDiagnostics()); return true; - case 7: v(select_id_UE_ContextKeptIndicator()); return true; - case 8: v(select_id_SeNB_UE_X2AP_ID_Extension()); return true; - case 9: v(select_id_Old_eNB_UE_X2AP_ID_Extension()); return true; - case 10: v(select_id_New_eNB_UE_X2AP_ID_Extension()); return true; - case 11: v(select_id_WT_UE_ContextKeptIndicator()); return true; - case 12: if(type != 12) {clear(); asn::base::set();} type = 12; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - case 7: v(var.as()); return true; - case 8: v(var.as()); return true; - case 9: v(var.as()); return true; - case 10: v(var.as()); return true; - case 11: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CriticalityDiagnostics)]; - char dummy2[sizeof(E_RAB_List)]; - char dummy3[sizeof(E_RABs_Admitted_List)]; - char dummy4[sizeof(TargeteNBtoSource_eNBTransparentContainer)]; - char dummy5[sizeof(UE_ContextKeptIndicator)]; - char dummy6[sizeof(UE_X2AP_ID)]; - char dummy7[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 12; } - void clear() {type = 0;} - void select_id_Old_eNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_New_eNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_E_RABs_Admitted_List() { set(mandatory); type=3;} - void select_id_E_RABs_NotAdmitted_List() { set(optional); type=4;} - void select_id_TargeteNBtoSource_eNBTransparentContainer() { set(mandatory); type=5;} - void select_id_CriticalityDiagnostics() { set(optional); type=6;} - void select_id_UE_ContextKeptIndicator() { set(optional); type=7;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(optional); type=8;} - void select_id_Old_eNB_UE_X2AP_ID_Extension() { set(optional); type=9;} - void select_id_New_eNB_UE_X2AP_ID_Extension() { set(optional); type=10;} - void select_id_WT_UE_ContextKeptIndicator() { set(optional); type=11;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(mandatory)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else if(equal(optional)) { type = 7; return true; } - else if(equal(optional)) { type = 8; return true; } - else if(equal(optional)) { type = 9; return true; } - else if(equal(optional)) { type = 10; return true; } - else if(equal(optional)) { type = 11; return true; } - else { type = 12; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(mandatory);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(optional);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(optional);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(optional);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(optional);} return false; - case 11: type = 11; if(v(ref_nested())) { return equal(optional);} return false; - case 12: type = 12; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -HandoverRequestAcknowledge ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{HandoverRequestAcknowledge-IEs}}, - ... -} -*/ - -struct HandoverRequestAcknowledge : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "HandoverRequestAcknowledge";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -LoadInformation-IEs X2AP-PROTOCOL-IES ::= { - { ID id-CellInformation CRITICALITY ignore TYPE CellInformation-List PRESENCE mandatory} , - ... -} -*/ - -struct LoadInformation_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_CellInformation() { set(id_CellInformation); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_CellInformation)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_CellInformation);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_CellInformation() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - CellInformation_List& select_id_CellInformation() { return set(1); } - CellInformation_List const* get_id_CellInformation() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_CellInformation()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CellInformation_List)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_CellInformation() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -LoadInformation ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{LoadInformation-IEs}}, - ... -} -*/ - -struct LoadInformation : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "LoadInformation";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -MeasurementInitiationResult-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct MeasurementInitiationResult_Item_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -MeasurementInitiationResult-Item ::= SEQUENCE { - cell-ID ECGI, - measurementFailureCause-List MeasurementFailureCause-List OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {MeasurementInitiationResult-Item-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct MeasurementInitiationResult_Item : asn::sequence<3, 0, true, 2> -{ - static constexpr const char* name() {return "MeasurementInitiationResult-Item";} - using parent_t = asn::sequence<3, 0, true, 2>; - struct cell_ID_t : ECGI - { - static constexpr const char* name() {return "cell_ID_t";} - using parent_t = ECGI; - - }; - cell_ID_t& ref_cell_ID() {return cell_ID;} - cell_ID_t const& ref_cell_ID() const {return cell_ID;} - struct measurementFailureCause_List_t : MeasurementFailureCause_List - { - static constexpr const char* name() {return "measurementFailureCause_List_t";} - using parent_t = MeasurementFailureCause_List; - static constexpr bool optional = true; - - }; - measurementFailureCause_List_t& set_measurementFailureCause_List() { measurementFailureCause_List.setpresent(true); return measurementFailureCause_List;} - measurementFailureCause_List_t const* get_measurementFailureCause_List() const {return measurementFailureCause_List.is_valid() ? &measurementFailureCause_List : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(cell_ID); - v(measurementFailureCause_List); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(cell_ID); - v(measurementFailureCause_List); - v(iE_Extensions); - - }; - void clear() - { - cell_ID.clear(); - measurementFailureCause_List.clear(); - iE_Extensions.clear(); - - }; - private: - cell_ID_t cell_ID; - measurementFailureCause_List_t measurementFailureCause_List; - iE_Extensions_t iE_Extensions; - -}; -/* -MeasurementInitiationResult-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-MeasurementInitiationResult-Item CRITICALITY ignore TYPE MeasurementInitiationResult-Item PRESENCE mandatory} -} -*/ - -struct MeasurementInitiationResult_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_MeasurementInitiationResult_Item() { set(id_MeasurementInitiationResult_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeasurementInitiationResult_Item)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeasurementInitiationResult_Item);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_MeasurementInitiationResult_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - MeasurementInitiationResult_Item& select_id_MeasurementInitiationResult_Item() { return set(1); } - MeasurementInitiationResult_Item const* get_id_MeasurementInitiationResult_Item() const { return get(1); } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeasurementInitiationResult_Item()); return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(MeasurementInitiationResult_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_MeasurementInitiationResult_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -MeasurementInitiationResult-List ::= SEQUENCE (SIZE (1..maxCellineNB)) OF ProtocolIE-Single-Container { {MeasurementInitiationResult-ItemIEs} } -*/ - -struct MeasurementInitiationResult_List_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "MeasurementInitiationResult_List_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct MeasurementInitiationResult_List : asn::sequenceof -{ - static constexpr const char* name() {return "MeasurementInitiationResult-List";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -MobilityChangeAcknowledge-IEs X2AP-PROTOCOL-IES ::= { - { ID id-ENB1-Cell-ID CRITICALITY reject TYPE ECGI PRESENCE mandatory}| - { ID id-ENB2-Cell-ID CRITICALITY reject TYPE ECGI PRESENCE mandatory}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, - ... -} -*/ - -struct MobilityChangeAcknowledge_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_ENB1_Cell_ID() { set(id_ENB1_Cell_ID); type=1;} - void select_id_ENB2_Cell_ID() { set(id_ENB2_Cell_ID); type=2;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=3;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_ENB1_Cell_ID)) { type = 1; return true; } - else if(equal(id_ENB2_Cell_ID)) { type = 2; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_ENB1_Cell_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_ENB2_Cell_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_ENB1_Cell_ID() { set(reject); type=1;} - void select_id_ENB2_Cell_ID() { set(reject); type=2;} - void select_id_CriticalityDiagnostics() { set(ignore); type=3;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - ECGI& select_id_ENB1_Cell_ID() { return set(1); } - ECGI const* get_id_ENB1_Cell_ID() const { return get(1); } - ECGI& select_id_ENB2_Cell_ID() { return set(2); } - ECGI const* get_id_ENB2_Cell_ID() const { return get(2); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(3); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(3); } - bool is_unknown() const { return type == 4; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_ENB1_Cell_ID()); return true; - case 2: v(select_id_ENB2_Cell_ID()); return true; - case 3: v(select_id_CriticalityDiagnostics()); return true; - case 4: if(type != 4) {clear(); asn::base::set();} type = 4; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CriticalityDiagnostics)]; - char dummy2[sizeof(ECGI)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_ENB1_Cell_ID() { set(mandatory); type=1;} - void select_id_ENB2_Cell_ID() { set(mandatory); type=2;} - void select_id_CriticalityDiagnostics() { set(optional); type=3;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -MobilityChangeAcknowledge ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{MobilityChangeAcknowledge-IEs}}, - ... -} -*/ - -struct MobilityChangeAcknowledge : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "MobilityChangeAcknowledge";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -MobilityChangeFailure-IEs X2AP-PROTOCOL-IES ::= { - { ID id-ENB1-Cell-ID CRITICALITY ignore TYPE ECGI PRESENCE mandatory}| - { ID id-ENB2-Cell-ID CRITICALITY ignore TYPE ECGI PRESENCE mandatory}| - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| - { ID id-ENB2-Mobility-Parameters-Modification-Range CRITICALITY ignore TYPE MobilityParametersModificationRange PRESENCE optional}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, - ... -} -*/ - -struct MobilityChangeFailure_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_ENB1_Cell_ID() { set(id_ENB1_Cell_ID); type=1;} - void select_id_ENB2_Cell_ID() { set(id_ENB2_Cell_ID); type=2;} - void select_id_Cause() { set(id_Cause); type=3;} - void select_id_ENB2_Mobility_Parameters_Modification_Range() { set(id_ENB2_Mobility_Parameters_Modification_Range); type=4;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=5;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_ENB1_Cell_ID)) { type = 1; return true; } - else if(equal(id_ENB2_Cell_ID)) { type = 2; return true; } - else if(equal(id_Cause)) { type = 3; return true; } - else if(equal(id_ENB2_Mobility_Parameters_Modification_Range)) { type = 4; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_ENB1_Cell_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_ENB2_Cell_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_ENB2_Mobility_Parameters_Modification_Range);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_ENB1_Cell_ID() { set(ignore); type=1;} - void select_id_ENB2_Cell_ID() { set(ignore); type=2;} - void select_id_Cause() { set(ignore); type=3;} - void select_id_ENB2_Mobility_Parameters_Modification_Range() { set(ignore); type=4;} - void select_id_CriticalityDiagnostics() { set(ignore); type=5;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - ECGI& select_id_ENB1_Cell_ID() { return set(1); } - ECGI const* get_id_ENB1_Cell_ID() const { return get(1); } - ECGI& select_id_ENB2_Cell_ID() { return set(2); } - ECGI const* get_id_ENB2_Cell_ID() const { return get(2); } - Cause& select_id_Cause() { return set(3); } - Cause const* get_id_Cause() const { return get(3); } - MobilityParametersModificationRange& select_id_ENB2_Mobility_Parameters_Modification_Range() { return set(4); } - MobilityParametersModificationRange const* get_id_ENB2_Mobility_Parameters_Modification_Range() const { return get(4); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(5); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(5); } - bool is_unknown() const { return type == 6; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_ENB1_Cell_ID()); return true; - case 2: v(select_id_ENB2_Cell_ID()); return true; - case 3: v(select_id_Cause()); return true; - case 4: v(select_id_ENB2_Mobility_Parameters_Modification_Range()); return true; - case 5: v(select_id_CriticalityDiagnostics()); return true; - case 6: if(type != 6) {clear(); asn::base::set();} type = 6; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(CriticalityDiagnostics)]; - char dummy3[sizeof(ECGI)]; - char dummy4[sizeof(MobilityParametersModificationRange)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_ENB1_Cell_ID() { set(mandatory); type=1;} - void select_id_ENB2_Cell_ID() { set(mandatory); type=2;} - void select_id_Cause() { set(mandatory); type=3;} - void select_id_ENB2_Mobility_Parameters_Modification_Range() { set(optional); type=4;} - void select_id_CriticalityDiagnostics() { set(optional); type=5;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -MobilityChangeFailure ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{MobilityChangeFailure-IEs}}, - ... -} -*/ - -struct MobilityChangeFailure : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "MobilityChangeFailure";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -MobilityChangeRequest-IEs X2AP-PROTOCOL-IES ::= { - { ID id-ENB1-Cell-ID CRITICALITY reject TYPE ECGI PRESENCE mandatory}| - { ID id-ENB2-Cell-ID CRITICALITY reject TYPE ECGI PRESENCE mandatory}| - { ID id-ENB1-Mobility-Parameters CRITICALITY ignore TYPE MobilityParametersInformation PRESENCE optional}| - { ID id-ENB2-Proposed-Mobility-Parameters CRITICALITY reject TYPE MobilityParametersInformation PRESENCE mandatory}| - { ID id-Cause CRITICALITY reject TYPE Cause PRESENCE mandatory}, - ... -} -*/ - -struct MobilityChangeRequest_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_ENB1_Cell_ID() { set(id_ENB1_Cell_ID); type=1;} - void select_id_ENB2_Cell_ID() { set(id_ENB2_Cell_ID); type=2;} - void select_id_ENB1_Mobility_Parameters() { set(id_ENB1_Mobility_Parameters); type=3;} - void select_id_ENB2_Proposed_Mobility_Parameters() { set(id_ENB2_Proposed_Mobility_Parameters); type=4;} - void select_id_Cause() { set(id_Cause); type=5;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_ENB1_Cell_ID)) { type = 1; return true; } - else if(equal(id_ENB2_Cell_ID)) { type = 2; return true; } - else if(equal(id_ENB1_Mobility_Parameters)) { type = 3; return true; } - else if(equal(id_ENB2_Proposed_Mobility_Parameters)) { type = 4; return true; } - else if(equal(id_Cause)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_ENB1_Cell_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_ENB2_Cell_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_ENB1_Mobility_Parameters);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_ENB2_Proposed_Mobility_Parameters);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_ENB1_Cell_ID() { set(reject); type=1;} - void select_id_ENB2_Cell_ID() { set(reject); type=2;} - void select_id_ENB1_Mobility_Parameters() { set(ignore); type=3;} - void select_id_ENB2_Proposed_Mobility_Parameters() { set(reject); type=4;} - void select_id_Cause() { set(reject); type=5;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(reject)) { type = 4; return true; } - else if(equal(reject)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(reject);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(reject);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - ECGI& select_id_ENB1_Cell_ID() { return set(1); } - ECGI const* get_id_ENB1_Cell_ID() const { return get(1); } - ECGI& select_id_ENB2_Cell_ID() { return set(2); } - ECGI const* get_id_ENB2_Cell_ID() const { return get(2); } - MobilityParametersInformation& select_id_ENB1_Mobility_Parameters() { return set(3); } - MobilityParametersInformation const* get_id_ENB1_Mobility_Parameters() const { return get(3); } - MobilityParametersInformation& select_id_ENB2_Proposed_Mobility_Parameters() { return set(4); } - MobilityParametersInformation const* get_id_ENB2_Proposed_Mobility_Parameters() const { return get(4); } - Cause& select_id_Cause() { return set(5); } - Cause const* get_id_Cause() const { return get(5); } - bool is_unknown() const { return type == 6; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_ENB1_Cell_ID()); return true; - case 2: v(select_id_ENB2_Cell_ID()); return true; - case 3: v(select_id_ENB1_Mobility_Parameters()); return true; - case 4: v(select_id_ENB2_Proposed_Mobility_Parameters()); return true; - case 5: v(select_id_Cause()); return true; - case 6: if(type != 6) {clear(); asn::base::set();} type = 6; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(ECGI)]; - char dummy3[sizeof(MobilityParametersInformation)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_ENB1_Cell_ID() { set(mandatory); type=1;} - void select_id_ENB2_Cell_ID() { set(mandatory); type=2;} - void select_id_ENB1_Mobility_Parameters() { set(optional); type=3;} - void select_id_ENB2_Proposed_Mobility_Parameters() { set(mandatory); type=4;} - void select_id_Cause() { set(mandatory); type=5;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else if(equal(mandatory)) { type = 4; return true; } - else if(equal(mandatory)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(mandatory);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(mandatory);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -MobilityChangeRequest ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{MobilityChangeRequest-IEs}}, - ... -} -*/ - -struct MobilityChangeRequest : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "MobilityChangeRequest";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -PartialSuccessIndicator ::= ENUMERATED { - partial-success-allowed, -... -} -*/ - -struct PartialSuccessIndicator : asn::enumerated<1, 0, true> -{ - static constexpr const char* name() {return "PartialSuccessIndicator";} - using parent_t = asn::enumerated<1, 0, true>; - typedef enum { - partial_success_allowed - } index_t; - -}; - -/* -PrivateMessage-IEs X2AP-PRIVATE-IES ::= { - ... -} -*/ - -struct PrivateMessage_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PRIVATE_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PRIVATE_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PRIVATE_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -PrivateMessage ::= SEQUENCE { - privateIEs PrivateIE-Container {{PrivateMessage-IEs}}, - ... -} -*/ - -struct PrivateMessage : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "PrivateMessage";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct privateIEs_t : PrivateIE_Container - { - static constexpr const char* name() {return "privateIEs_t";} - using parent_t = PrivateIE_Container; - - }; - privateIEs_t& ref_privateIEs() {return privateIEs;} - privateIEs_t const& ref_privateIEs() const {return privateIEs;} - template void decode(V& v) - { - v(privateIEs); - - }; - template void encode(V& v) const - { - v(privateIEs); - - }; - void clear() - { - privateIEs.clear(); - - }; - private: - privateIEs_t privateIEs; - -}; -/* -RLFIndication-IEs X2AP-PROTOCOL-IES ::= { - { ID id-FailureCellPCI CRITICALITY ignore TYPE PCI PRESENCE mandatory}| - { ID id-Re-establishmentCellECGI CRITICALITY ignore TYPE ECGI PRESENCE mandatory}| - { ID id-FailureCellCRNTI CRITICALITY ignore TYPE CRNTI PRESENCE mandatory}| - { ID id-ShortMAC-I CRITICALITY ignore TYPE ShortMAC-I PRESENCE optional}| - { ID id-UE-RLF-Report-Container CRITICALITY ignore TYPE UE-RLF-Report-Container PRESENCE optional}| - { ID id-RRCConnSetupIndicator CRITICALITY reject TYPE RRCConnSetupIndicator PRESENCE optional}| - { ID id-RRCConnReestabIndicator CRITICALITY ignore TYPE RRCConnReestabIndicator PRESENCE optional}| - { ID id-UE-RLF-Report-Container-for-extended-bands CRITICALITY ignore TYPE UE-RLF-Report-Container-for-extended-bands PRESENCE optional}, - ... -} -*/ - -struct RLFIndication_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 9; } - void clear() {type = 0;} - void select_id_FailureCellPCI() { set(id_FailureCellPCI); type=1;} - void select_id_Re_establishmentCellECGI() { set(id_Re_establishmentCellECGI); type=2;} - void select_id_FailureCellCRNTI() { set(id_FailureCellCRNTI); type=3;} - void select_id_ShortMAC_I() { set(id_ShortMAC_I); type=4;} - void select_id_UE_RLF_Report_Container() { set(id_UE_RLF_Report_Container); type=5;} - void select_id_RRCConnSetupIndicator() { set(id_RRCConnSetupIndicator); type=6;} - void select_id_RRCConnReestabIndicator() { set(id_RRCConnReestabIndicator); type=7;} - void select_id_UE_RLF_Report_Container_for_extended_bands() { set(id_UE_RLF_Report_Container_for_extended_bands); type=8;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_FailureCellPCI)) { type = 1; return true; } - else if(equal(id_Re_establishmentCellECGI)) { type = 2; return true; } - else if(equal(id_FailureCellCRNTI)) { type = 3; return true; } - else if(equal(id_ShortMAC_I)) { type = 4; return true; } - else if(equal(id_UE_RLF_Report_Container)) { type = 5; return true; } - else if(equal(id_RRCConnSetupIndicator)) { type = 6; return true; } - else if(equal(id_RRCConnReestabIndicator)) { type = 7; return true; } - else if(equal(id_UE_RLF_Report_Container_for_extended_bands)) { type = 8; return true; } - else { type = 9; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_FailureCellPCI);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_Re_establishmentCellECGI);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_FailureCellCRNTI);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_ShortMAC_I);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_UE_RLF_Report_Container);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_RRCConnSetupIndicator);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(id_RRCConnReestabIndicator);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(id_UE_RLF_Report_Container_for_extended_bands);} return false; - case 9: type = 9; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 9; } - void clear() {type = 0;} - void select_id_FailureCellPCI() { set(ignore); type=1;} - void select_id_Re_establishmentCellECGI() { set(ignore); type=2;} - void select_id_FailureCellCRNTI() { set(ignore); type=3;} - void select_id_ShortMAC_I() { set(ignore); type=4;} - void select_id_UE_RLF_Report_Container() { set(ignore); type=5;} - void select_id_RRCConnSetupIndicator() { set(reject); type=6;} - void select_id_RRCConnReestabIndicator() { set(ignore); type=7;} - void select_id_UE_RLF_Report_Container_for_extended_bands() { set(ignore); type=8;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else if(equal(reject)) { type = 6; return true; } - else if(equal(ignore)) { type = 7; return true; } - else if(equal(ignore)) { type = 8; return true; } - else { type = 9; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(reject);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(ignore);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(ignore);} return false; - case 9: type = 9; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - PCI& select_id_FailureCellPCI() { return set(1); } - PCI const* get_id_FailureCellPCI() const { return get(1); } - ECGI& select_id_Re_establishmentCellECGI() { return set(2); } - ECGI const* get_id_Re_establishmentCellECGI() const { return get(2); } - CRNTI& select_id_FailureCellCRNTI() { return set(3); } - CRNTI const* get_id_FailureCellCRNTI() const { return get(3); } - ShortMAC_I& select_id_ShortMAC_I() { return set(4); } - ShortMAC_I const* get_id_ShortMAC_I() const { return get(4); } - UE_RLF_Report_Container& select_id_UE_RLF_Report_Container() { return set(5); } - UE_RLF_Report_Container const* get_id_UE_RLF_Report_Container() const { return get(5); } - RRCConnSetupIndicator& select_id_RRCConnSetupIndicator() { return set(6); } - RRCConnSetupIndicator const* get_id_RRCConnSetupIndicator() const { return get(6); } - RRCConnReestabIndicator& select_id_RRCConnReestabIndicator() { return set(7); } - RRCConnReestabIndicator const* get_id_RRCConnReestabIndicator() const { return get(7); } - UE_RLF_Report_Container_for_extended_bands& select_id_UE_RLF_Report_Container_for_extended_bands() { return set(8); } - UE_RLF_Report_Container_for_extended_bands const* get_id_UE_RLF_Report_Container_for_extended_bands() const { return get(8); } - bool is_unknown() const { return type == 9; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - case 7: var.destroy(); break; - case 8: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - v.template operator()(7); - v.template operator()(8); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_FailureCellPCI()); return true; - case 2: v(select_id_Re_establishmentCellECGI()); return true; - case 3: v(select_id_FailureCellCRNTI()); return true; - case 4: v(select_id_ShortMAC_I()); return true; - case 5: v(select_id_UE_RLF_Report_Container()); return true; - case 6: v(select_id_RRCConnSetupIndicator()); return true; - case 7: v(select_id_RRCConnReestabIndicator()); return true; - case 8: v(select_id_UE_RLF_Report_Container_for_extended_bands()); return true; - case 9: if(type != 9) {clear(); asn::base::set();} type = 9; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - case 7: v(var.as()); return true; - case 8: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CRNTI)]; - char dummy2[sizeof(ECGI)]; - char dummy3[sizeof(PCI)]; - char dummy4[sizeof(RRCConnReestabIndicator)]; - char dummy5[sizeof(RRCConnSetupIndicator)]; - char dummy6[sizeof(ShortMAC_I)]; - char dummy7[sizeof(UE_RLF_Report_Container)]; - char dummy8[sizeof(UE_RLF_Report_Container_for_extended_bands)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 9; } - void clear() {type = 0;} - void select_id_FailureCellPCI() { set(mandatory); type=1;} - void select_id_Re_establishmentCellECGI() { set(mandatory); type=2;} - void select_id_FailureCellCRNTI() { set(mandatory); type=3;} - void select_id_ShortMAC_I() { set(optional); type=4;} - void select_id_UE_RLF_Report_Container() { set(optional); type=5;} - void select_id_RRCConnSetupIndicator() { set(optional); type=6;} - void select_id_RRCConnReestabIndicator() { set(optional); type=7;} - void select_id_UE_RLF_Report_Container_for_extended_bands() { set(optional); type=8;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else if(equal(optional)) { type = 7; return true; } - else if(equal(optional)) { type = 8; return true; } - else { type = 9; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(optional);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(optional);} return false; - case 9: type = 9; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RLFIndication ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{RLFIndication-IEs}}, - ... -} -*/ - -struct RLFIndication : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "RLFIndication";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -RNL-Header-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct RNL_Header_Item_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RNL-Header ::= SEQUENCE { - source-GlobalENB-ID GlobalENB-ID, - target-GlobalENB-ID GlobalENB-ID OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {RNL-Header-Item-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct RNL_Header : asn::sequence<3, 0, true, 2> -{ - static constexpr const char* name() {return "RNL-Header";} - using parent_t = asn::sequence<3, 0, true, 2>; - struct source_GlobalENB_ID_t : GlobalENB_ID - { - static constexpr const char* name() {return "source_GlobalENB_ID_t";} - using parent_t = GlobalENB_ID; - - }; - source_GlobalENB_ID_t& ref_source_GlobalENB_ID() {return source_GlobalENB_ID;} - source_GlobalENB_ID_t const& ref_source_GlobalENB_ID() const {return source_GlobalENB_ID;} - struct target_GlobalENB_ID_t : GlobalENB_ID - { - static constexpr const char* name() {return "target_GlobalENB_ID_t";} - using parent_t = GlobalENB_ID; - static constexpr bool optional = true; - - }; - target_GlobalENB_ID_t& set_target_GlobalENB_ID() { target_GlobalENB_ID.setpresent(true); return target_GlobalENB_ID;} - target_GlobalENB_ID_t const* get_target_GlobalENB_ID() const {return target_GlobalENB_ID.is_valid() ? &target_GlobalENB_ID : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(source_GlobalENB_ID); - v(target_GlobalENB_ID); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(source_GlobalENB_ID); - v(target_GlobalENB_ID); - v(iE_Extensions); - - }; - void clear() - { - source_GlobalENB_ID.clear(); - target_GlobalENB_ID.clear(); - iE_Extensions.clear(); - - }; - private: - source_GlobalENB_ID_t source_GlobalENB_ID; - target_GlobalENB_ID_t target_GlobalENB_ID; - iE_Extensions_t iE_Extensions; - -}; -/* -RRCTransfer-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SgNB-UE-X2AP-ID CRITICALITY reject TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}| - { ID id-SplitSRB CRITICALITY reject TYPE SplitSRB PRESENCE optional}| - { ID id-UENRMeasurement CRITICALITY reject TYPE UENRMeasurement PRESENCE optional}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}, - ... -} -*/ - -struct RRCTransfer_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(id_SgNB_UE_X2AP_ID); type=2;} - void select_id_SplitSRB() { set(id_SplitSRB); type=3;} - void select_id_UENRMeasurement() { set(id_UENRMeasurement); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=5;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SgNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_SplitSRB)) { type = 3; return true; } - else if(equal(id_UENRMeasurement)) { type = 4; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SgNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_SplitSRB);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_UENRMeasurement);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(reject); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(reject); type=2;} - void select_id_SplitSRB() { set(reject); type=3;} - void select_id_UENRMeasurement() { set(reject); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(reject); type=5;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(reject)) { type = 3; return true; } - else if(equal(reject)) { type = 4; return true; } - else if(equal(reject)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(reject);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(reject);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(reject);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - SgNB_UE_X2AP_ID& select_id_SgNB_UE_X2AP_ID() { return set(2); } - SgNB_UE_X2AP_ID const* get_id_SgNB_UE_X2AP_ID() const { return get(2); } - SplitSRB& select_id_SplitSRB() { return set(3); } - SplitSRB const* get_id_SplitSRB() const { return get(3); } - UENRMeasurement& select_id_UENRMeasurement() { return set(4); } - UENRMeasurement const* get_id_UENRMeasurement() const { return get(4); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(5); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(5); } - bool is_unknown() const { return type == 6; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SgNB_UE_X2AP_ID()); return true; - case 3: v(select_id_SplitSRB()); return true; - case 4: v(select_id_UENRMeasurement()); return true; - case 5: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 6: if(type != 6) {clear(); asn::base::set();} type = 6; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(SgNB_UE_X2AP_ID)]; - char dummy2[sizeof(SplitSRB)]; - char dummy3[sizeof(UENRMeasurement)]; - char dummy4[sizeof(UE_X2AP_ID)]; - char dummy5[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_SplitSRB() { set(optional); type=3;} - void select_id_UENRMeasurement() { set(optional); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=5;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RRCTransfer ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{RRCTransfer-IEs}}, - ... -} -*/ - -struct RRCTransfer : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "RRCTransfer";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -ReportingPeriodicity ::= ENUMERATED { - one-thousand-ms, - two-thousand-ms, - five-thousand-ms, - ten-thousand-ms, -... -} -*/ - -struct ReportingPeriodicity : asn::enumerated<4, 0, true> -{ - static constexpr const char* name() {return "ReportingPeriodicity";} - using parent_t = asn::enumerated<4, 0, true>; - typedef enum { - one_thousand_ms - ,two_thousand_ms - ,five_thousand_ms - ,ten_thousand_ms - } index_t; - -}; - -/* -ResetRequest-IEs X2AP-PROTOCOL-IES ::= { - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}, - ... -} -*/ - -struct ResetRequest_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_Cause() { set(id_Cause); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_Cause)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_Cause() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - Cause& select_id_Cause() { return set(1); } - Cause const* get_id_Cause() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_Cause()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_Cause() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ResetRequest ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ResetRequest-IEs}}, - ... -} -*/ - -struct ResetRequest : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "ResetRequest";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -ResetResponse-IEs X2AP-PROTOCOL-IES ::= { - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, - ... -} -*/ - -struct ResetResponse_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_CriticalityDiagnostics)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_CriticalityDiagnostics() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(1); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_CriticalityDiagnostics()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CriticalityDiagnostics)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_CriticalityDiagnostics() { set(optional); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ResetResponse ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ResetResponse-IEs}}, - ... -} -*/ - -struct ResetResponse : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "ResetResponse";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -ResourceStatusFailure-IEs X2AP-PROTOCOL-IES ::= { - { ID id-ENB1-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| - { ID id-ENB2-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| - { ID id-CompleteFailureCauseInformation-List CRITICALITY ignore TYPE CompleteFailureCauseInformation-List PRESENCE optional}, - ... -} -*/ - -struct ResourceStatusFailure_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_ENB1_Measurement_ID() { set(id_ENB1_Measurement_ID); type=1;} - void select_id_ENB2_Measurement_ID() { set(id_ENB2_Measurement_ID); type=2;} - void select_id_Cause() { set(id_Cause); type=3;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=4;} - void select_id_CompleteFailureCauseInformation_List() { set(id_CompleteFailureCauseInformation_List); type=5;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_ENB1_Measurement_ID)) { type = 1; return true; } - else if(equal(id_ENB2_Measurement_ID)) { type = 2; return true; } - else if(equal(id_Cause)) { type = 3; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 4; return true; } - else if(equal(id_CompleteFailureCauseInformation_List)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_ENB1_Measurement_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_ENB2_Measurement_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_CompleteFailureCauseInformation_List);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_ENB1_Measurement_ID() { set(reject); type=1;} - void select_id_ENB2_Measurement_ID() { set(reject); type=2;} - void select_id_Cause() { set(ignore); type=3;} - void select_id_CriticalityDiagnostics() { set(ignore); type=4;} - void select_id_CompleteFailureCauseInformation_List() { set(ignore); type=5;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - Measurement_ID& select_id_ENB1_Measurement_ID() { return set(1); } - Measurement_ID const* get_id_ENB1_Measurement_ID() const { return get(1); } - Measurement_ID& select_id_ENB2_Measurement_ID() { return set(2); } - Measurement_ID const* get_id_ENB2_Measurement_ID() const { return get(2); } - Cause& select_id_Cause() { return set(3); } - Cause const* get_id_Cause() const { return get(3); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(4); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(4); } - CompleteFailureCauseInformation_List& select_id_CompleteFailureCauseInformation_List() { return set(5); } - CompleteFailureCauseInformation_List const* get_id_CompleteFailureCauseInformation_List() const { return get(5); } - bool is_unknown() const { return type == 6; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_ENB1_Measurement_ID()); return true; - case 2: v(select_id_ENB2_Measurement_ID()); return true; - case 3: v(select_id_Cause()); return true; - case 4: v(select_id_CriticalityDiagnostics()); return true; - case 5: v(select_id_CompleteFailureCauseInformation_List()); return true; - case 6: if(type != 6) {clear(); asn::base::set();} type = 6; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(CompleteFailureCauseInformation_List)]; - char dummy3[sizeof(CriticalityDiagnostics)]; - char dummy4[sizeof(Measurement_ID)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_ENB1_Measurement_ID() { set(mandatory); type=1;} - void select_id_ENB2_Measurement_ID() { set(mandatory); type=2;} - void select_id_Cause() { set(mandatory); type=3;} - void select_id_CriticalityDiagnostics() { set(optional); type=4;} - void select_id_CompleteFailureCauseInformation_List() { set(optional); type=5;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ResourceStatusFailure ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ResourceStatusFailure-IEs}}, - ... -} -*/ - -struct ResourceStatusFailure : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "ResourceStatusFailure";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -ResourceStatusRequest-IEs X2AP-PROTOCOL-IES ::= { - { ID id-ENB1-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| - { ID id-ENB2-Measurement-ID CRITICALITY ignore TYPE Measurement-ID PRESENCE conditional}|-- The IE shall be present if the Registration Request IE is set to “Stop”, “Partial stop” or to “Add”-- - { ID id-Registration-Request CRITICALITY reject TYPE Registration-Request PRESENCE mandatory}| - { ID id-ReportCharacteristics CRITICALITY reject TYPE ReportCharacteristics PRESENCE optional}| - { ID id-CellToReport CRITICALITY ignore TYPE CellToReport-List PRESENCE mandatory}| - { ID id-ReportingPeriodicity CRITICALITY ignore TYPE ReportingPeriodicity PRESENCE optional}| - { ID id-PartialSuccessIndicator CRITICALITY ignore TYPE PartialSuccessIndicator PRESENCE optional}| - { ID id-ReportingPeriodicityRSRPMR CRITICALITY ignore TYPE ReportingPeriodicityRSRPMR PRESENCE optional}| - { ID id-ReportingPeriodicityCSIR CRITICALITY ignore TYPE ReportingPeriodicityCSIR PRESENCE optional}, - ... -} -*/ - -struct ResourceStatusRequest_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 10; } - void clear() {type = 0;} - void select_id_ENB1_Measurement_ID() { set(id_ENB1_Measurement_ID); type=1;} - void select_id_ENB2_Measurement_ID() { set(id_ENB2_Measurement_ID); type=2;} - void select_id_Registration_Request() { set(id_Registration_Request); type=3;} - void select_id_ReportCharacteristics() { set(id_ReportCharacteristics); type=4;} - void select_id_CellToReport() { set(id_CellToReport); type=5;} - void select_id_ReportingPeriodicity() { set(id_ReportingPeriodicity); type=6;} - void select_id_PartialSuccessIndicator() { set(id_PartialSuccessIndicator); type=7;} - void select_id_ReportingPeriodicityRSRPMR() { set(id_ReportingPeriodicityRSRPMR); type=8;} - void select_id_ReportingPeriodicityCSIR() { set(id_ReportingPeriodicityCSIR); type=9;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_ENB1_Measurement_ID)) { type = 1; return true; } - else if(equal(id_ENB2_Measurement_ID)) { type = 2; return true; } - else if(equal(id_Registration_Request)) { type = 3; return true; } - else if(equal(id_ReportCharacteristics)) { type = 4; return true; } - else if(equal(id_CellToReport)) { type = 5; return true; } - else if(equal(id_ReportingPeriodicity)) { type = 6; return true; } - else if(equal(id_PartialSuccessIndicator)) { type = 7; return true; } - else if(equal(id_ReportingPeriodicityRSRPMR)) { type = 8; return true; } - else if(equal(id_ReportingPeriodicityCSIR)) { type = 9; return true; } - else { type = 10; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_ENB1_Measurement_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_ENB2_Measurement_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_Registration_Request);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_ReportCharacteristics);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_CellToReport);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_ReportingPeriodicity);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(id_PartialSuccessIndicator);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(id_ReportingPeriodicityRSRPMR);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(id_ReportingPeriodicityCSIR);} return false; - case 10: type = 10; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 10; } - void clear() {type = 0;} - void select_id_ENB1_Measurement_ID() { set(reject); type=1;} - void select_id_ENB2_Measurement_ID() { set(ignore); type=2;} - void select_id_Registration_Request() { set(reject); type=3;} - void select_id_ReportCharacteristics() { set(reject); type=4;} - void select_id_CellToReport() { set(ignore); type=5;} - void select_id_ReportingPeriodicity() { set(ignore); type=6;} - void select_id_PartialSuccessIndicator() { set(ignore); type=7;} - void select_id_ReportingPeriodicityRSRPMR() { set(ignore); type=8;} - void select_id_ReportingPeriodicityCSIR() { set(ignore); type=9;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(reject)) { type = 3; return true; } - else if(equal(reject)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else if(equal(ignore)) { type = 6; return true; } - else if(equal(ignore)) { type = 7; return true; } - else if(equal(ignore)) { type = 8; return true; } - else if(equal(ignore)) { type = 9; return true; } - else { type = 10; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(reject);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(reject);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(ignore);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(ignore);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(ignore);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(ignore);} return false; - case 10: type = 10; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - Measurement_ID& select_id_ENB1_Measurement_ID() { return set(1); } - Measurement_ID const* get_id_ENB1_Measurement_ID() const { return get(1); } - Measurement_ID& select_id_ENB2_Measurement_ID() { return set(2); } - Measurement_ID const* get_id_ENB2_Measurement_ID() const { return get(2); } - Registration_Request& select_id_Registration_Request() { return set(3); } - Registration_Request const* get_id_Registration_Request() const { return get(3); } - ReportCharacteristics& select_id_ReportCharacteristics() { return set(4); } - ReportCharacteristics const* get_id_ReportCharacteristics() const { return get(4); } - CellToReport_List& select_id_CellToReport() { return set(5); } - CellToReport_List const* get_id_CellToReport() const { return get(5); } - ReportingPeriodicity& select_id_ReportingPeriodicity() { return set(6); } - ReportingPeriodicity const* get_id_ReportingPeriodicity() const { return get(6); } - PartialSuccessIndicator& select_id_PartialSuccessIndicator() { return set(7); } - PartialSuccessIndicator const* get_id_PartialSuccessIndicator() const { return get(7); } - ReportingPeriodicityRSRPMR& select_id_ReportingPeriodicityRSRPMR() { return set(8); } - ReportingPeriodicityRSRPMR const* get_id_ReportingPeriodicityRSRPMR() const { return get(8); } - ReportingPeriodicityCSIR& select_id_ReportingPeriodicityCSIR() { return set(9); } - ReportingPeriodicityCSIR const* get_id_ReportingPeriodicityCSIR() const { return get(9); } - bool is_unknown() const { return type == 10; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - case 7: var.destroy(); break; - case 8: var.destroy(); break; - case 9: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - v.template operator()(7); - v.template operator()(8); - v.template operator()(9); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_ENB1_Measurement_ID()); return true; - case 2: v(select_id_ENB2_Measurement_ID()); return true; - case 3: v(select_id_Registration_Request()); return true; - case 4: v(select_id_ReportCharacteristics()); return true; - case 5: v(select_id_CellToReport()); return true; - case 6: v(select_id_ReportingPeriodicity()); return true; - case 7: v(select_id_PartialSuccessIndicator()); return true; - case 8: v(select_id_ReportingPeriodicityRSRPMR()); return true; - case 9: v(select_id_ReportingPeriodicityCSIR()); return true; - case 10: if(type != 10) {clear(); asn::base::set();} type = 10; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - case 7: v(var.as()); return true; - case 8: v(var.as()); return true; - case 9: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CellToReport_List)]; - char dummy2[sizeof(Measurement_ID)]; - char dummy3[sizeof(PartialSuccessIndicator)]; - char dummy4[sizeof(Registration_Request)]; - char dummy5[sizeof(ReportCharacteristics)]; - char dummy6[sizeof(ReportingPeriodicity)]; - char dummy7[sizeof(ReportingPeriodicityCSIR)]; - char dummy8[sizeof(ReportingPeriodicityRSRPMR)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 10; } - void clear() {type = 0;} - void select_id_ENB1_Measurement_ID() { set(mandatory); type=1;} - void select_id_ENB2_Measurement_ID() { set(conditional); type=2;} - void select_id_Registration_Request() { set(mandatory); type=3;} - void select_id_ReportCharacteristics() { set(optional); type=4;} - void select_id_CellToReport() { set(mandatory); type=5;} - void select_id_ReportingPeriodicity() { set(optional); type=6;} - void select_id_PartialSuccessIndicator() { set(optional); type=7;} - void select_id_ReportingPeriodicityRSRPMR() { set(optional); type=8;} - void select_id_ReportingPeriodicityCSIR() { set(optional); type=9;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(conditional)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(mandatory)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else if(equal(optional)) { type = 7; return true; } - else if(equal(optional)) { type = 8; return true; } - else if(equal(optional)) { type = 9; return true; } - else { type = 10; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(conditional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(mandatory);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(optional);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(optional);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(optional);} return false; - case 10: type = 10; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ResourceStatusRequest ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ResourceStatusRequest-IEs}}, - ... -} -*/ - -struct ResourceStatusRequest : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "ResourceStatusRequest";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -ResourceStatusResponse-IEs X2AP-PROTOCOL-IES ::= { - { ID id-ENB1-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| - { ID id-ENB2-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| - { ID id-MeasurementInitiationResult-List CRITICALITY ignore TYPE MeasurementInitiationResult-List PRESENCE optional}, - ... -} -*/ - -struct ResourceStatusResponse_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_ENB1_Measurement_ID() { set(id_ENB1_Measurement_ID); type=1;} - void select_id_ENB2_Measurement_ID() { set(id_ENB2_Measurement_ID); type=2;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=3;} - void select_id_MeasurementInitiationResult_List() { set(id_MeasurementInitiationResult_List); type=4;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_ENB1_Measurement_ID)) { type = 1; return true; } - else if(equal(id_ENB2_Measurement_ID)) { type = 2; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 3; return true; } - else if(equal(id_MeasurementInitiationResult_List)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_ENB1_Measurement_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_ENB2_Measurement_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_MeasurementInitiationResult_List);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_ENB1_Measurement_ID() { set(reject); type=1;} - void select_id_ENB2_Measurement_ID() { set(reject); type=2;} - void select_id_CriticalityDiagnostics() { set(ignore); type=3;} - void select_id_MeasurementInitiationResult_List() { set(ignore); type=4;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - Measurement_ID& select_id_ENB1_Measurement_ID() { return set(1); } - Measurement_ID const* get_id_ENB1_Measurement_ID() const { return get(1); } - Measurement_ID& select_id_ENB2_Measurement_ID() { return set(2); } - Measurement_ID const* get_id_ENB2_Measurement_ID() const { return get(2); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(3); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(3); } - MeasurementInitiationResult_List& select_id_MeasurementInitiationResult_List() { return set(4); } - MeasurementInitiationResult_List const* get_id_MeasurementInitiationResult_List() const { return get(4); } - bool is_unknown() const { return type == 5; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_ENB1_Measurement_ID()); return true; - case 2: v(select_id_ENB2_Measurement_ID()); return true; - case 3: v(select_id_CriticalityDiagnostics()); return true; - case 4: v(select_id_MeasurementInitiationResult_List()); return true; - case 5: if(type != 5) {clear(); asn::base::set();} type = 5; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CriticalityDiagnostics)]; - char dummy2[sizeof(MeasurementInitiationResult_List)]; - char dummy3[sizeof(Measurement_ID)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_ENB1_Measurement_ID() { set(mandatory); type=1;} - void select_id_ENB2_Measurement_ID() { set(mandatory); type=2;} - void select_id_CriticalityDiagnostics() { set(optional); type=3;} - void select_id_MeasurementInitiationResult_List() { set(optional); type=4;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ResourceStatusResponse ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ResourceStatusResponse-IEs}}, - ... -} -*/ - -struct ResourceStatusResponse : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "ResourceStatusResponse";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -ResourceStatusUpdate-IEs X2AP-PROTOCOL-IES ::= { - { ID id-ENB1-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| - { ID id-ENB2-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| - { ID id-CellMeasurementResult CRITICALITY ignore TYPE CellMeasurementResult-List PRESENCE mandatory}, - ... -} -*/ - -struct ResourceStatusUpdate_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_ENB1_Measurement_ID() { set(id_ENB1_Measurement_ID); type=1;} - void select_id_ENB2_Measurement_ID() { set(id_ENB2_Measurement_ID); type=2;} - void select_id_CellMeasurementResult() { set(id_CellMeasurementResult); type=3;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_ENB1_Measurement_ID)) { type = 1; return true; } - else if(equal(id_ENB2_Measurement_ID)) { type = 2; return true; } - else if(equal(id_CellMeasurementResult)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_ENB1_Measurement_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_ENB2_Measurement_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_CellMeasurementResult);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_ENB1_Measurement_ID() { set(reject); type=1;} - void select_id_ENB2_Measurement_ID() { set(reject); type=2;} - void select_id_CellMeasurementResult() { set(ignore); type=3;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - Measurement_ID& select_id_ENB1_Measurement_ID() { return set(1); } - Measurement_ID const* get_id_ENB1_Measurement_ID() const { return get(1); } - Measurement_ID& select_id_ENB2_Measurement_ID() { return set(2); } - Measurement_ID const* get_id_ENB2_Measurement_ID() const { return get(2); } - CellMeasurementResult_List& select_id_CellMeasurementResult() { return set(3); } - CellMeasurementResult_List const* get_id_CellMeasurementResult() const { return get(3); } - bool is_unknown() const { return type == 4; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_ENB1_Measurement_ID()); return true; - case 2: v(select_id_ENB2_Measurement_ID()); return true; - case 3: v(select_id_CellMeasurementResult()); return true; - case 4: if(type != 4) {clear(); asn::base::set();} type = 4; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CellMeasurementResult_List)]; - char dummy2[sizeof(Measurement_ID)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_ENB1_Measurement_ID() { set(mandatory); type=1;} - void select_id_ENB2_Measurement_ID() { set(mandatory); type=2;} - void select_id_CellMeasurementResult() { set(mandatory); type=3;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ResourceStatusUpdate ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ResourceStatusUpdate-IEs}}, - ... -} -*/ - -struct ResourceStatusUpdate : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "ResourceStatusUpdate";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -ResponseInformationSeNBReconfComp-SuccessItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct ResponseInformationSeNBReconfComp_SuccessItemExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ResponseInformationSeNBReconfComp-SuccessItem ::= SEQUENCE { - meNBtoSeNBContainer MeNBtoSeNBContainer OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {ResponseInformationSeNBReconfComp-SuccessItemExtIEs} } OPTIONAL, - ... -} -*/ - -struct ResponseInformationSeNBReconfComp_SuccessItem : asn::sequence<2, 0, true, 2> -{ - static constexpr const char* name() {return "ResponseInformationSeNBReconfComp-SuccessItem";} - using parent_t = asn::sequence<2, 0, true, 2>; - struct meNBtoSeNBContainer_t : MeNBtoSeNBContainer - { - static constexpr const char* name() {return "meNBtoSeNBContainer_t";} - using parent_t = MeNBtoSeNBContainer; - static constexpr bool optional = true; - - }; - meNBtoSeNBContainer_t& set_meNBtoSeNBContainer() { meNBtoSeNBContainer.setpresent(true); return meNBtoSeNBContainer;} - meNBtoSeNBContainer_t const* get_meNBtoSeNBContainer() const {return meNBtoSeNBContainer.is_valid() ? &meNBtoSeNBContainer : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(meNBtoSeNBContainer); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(meNBtoSeNBContainer); - v(iE_Extensions); - - }; - void clear() - { - meNBtoSeNBContainer.clear(); - iE_Extensions.clear(); - - }; - private: - meNBtoSeNBContainer_t meNBtoSeNBContainer; - iE_Extensions_t iE_Extensions; - -}; -/* -ResponseInformationSeNBReconfComp-RejectByMeNBItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct ResponseInformationSeNBReconfComp_RejectByMeNBItemExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ResponseInformationSeNBReconfComp-RejectByMeNBItem ::= SEQUENCE { - cause Cause, - meNBtoSeNBContainer MeNBtoSeNBContainer OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {ResponseInformationSeNBReconfComp-RejectByMeNBItemExtIEs} } OPTIONAL, - ... -} -*/ - -struct ResponseInformationSeNBReconfComp_RejectByMeNBItem : asn::sequence<3, 0, true, 2> -{ - static constexpr const char* name() {return "ResponseInformationSeNBReconfComp-RejectByMeNBItem";} - using parent_t = asn::sequence<3, 0, true, 2>; - struct cause_t : Cause - { - static constexpr const char* name() {return "cause_t";} - using parent_t = Cause; - - }; - cause_t& ref_cause() {return cause;} - cause_t const& ref_cause() const {return cause;} - struct meNBtoSeNBContainer_t : MeNBtoSeNBContainer - { - static constexpr const char* name() {return "meNBtoSeNBContainer_t";} - using parent_t = MeNBtoSeNBContainer; - static constexpr bool optional = true; - - }; - meNBtoSeNBContainer_t& set_meNBtoSeNBContainer() { meNBtoSeNBContainer.setpresent(true); return meNBtoSeNBContainer;} - meNBtoSeNBContainer_t const* get_meNBtoSeNBContainer() const {return meNBtoSeNBContainer.is_valid() ? &meNBtoSeNBContainer : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(cause); - v(meNBtoSeNBContainer); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(cause); - v(meNBtoSeNBContainer); - v(iE_Extensions); - - }; - void clear() - { - cause.clear(); - meNBtoSeNBContainer.clear(); - iE_Extensions.clear(); - - }; - private: - cause_t cause; - meNBtoSeNBContainer_t meNBtoSeNBContainer; - iE_Extensions_t iE_Extensions; - -}; -/* -ResponseInformationSeNBReconfComp ::= CHOICE { - success ResponseInformationSeNBReconfComp-SuccessItem, - reject-by-MeNB ResponseInformationSeNBReconfComp-RejectByMeNBItem, - ... -} -*/ - -struct ResponseInformationSeNBReconfComp : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "ResponseInformationSeNBReconfComp";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~ResponseInformationSeNBReconfComp() {clear();} - struct success_t : ResponseInformationSeNBReconfComp_SuccessItem - { - static constexpr const char* name() {return "success_t";} - using parent_t = ResponseInformationSeNBReconfComp_SuccessItem; - - }; - struct reject_by_MeNB_t : ResponseInformationSeNBReconfComp_RejectByMeNBItem - { - static constexpr const char* name() {return "reject_by_MeNB_t";} - using parent_t = ResponseInformationSeNBReconfComp_RejectByMeNBItem; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - success_t& select_success() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - success_t const* get_success() const { if(get_index() == 1) { return &var.as();} return nullptr; } - reject_by_MeNB_t& select_reject_by_MeNB() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - reject_by_MeNB_t const* get_reject_by_MeNB() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(success_t)]; - char dummy2[sizeof(reject_by_MeNB_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -ResponseInformationSgNBReconfComp-SuccessItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct ResponseInformationSgNBReconfComp_SuccessItemExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ResponseInformationSgNBReconfComp-SuccessItem ::= SEQUENCE { - meNBtoSgNBContainer MeNBtoSgNBContainer OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {ResponseInformationSgNBReconfComp-SuccessItemExtIEs} } OPTIONAL, - ... -} -*/ - -struct ResponseInformationSgNBReconfComp_SuccessItem : asn::sequence<2, 0, true, 2> -{ - static constexpr const char* name() {return "ResponseInformationSgNBReconfComp-SuccessItem";} - using parent_t = asn::sequence<2, 0, true, 2>; - struct meNBtoSgNBContainer_t : MeNBtoSgNBContainer - { - static constexpr const char* name() {return "meNBtoSgNBContainer_t";} - using parent_t = MeNBtoSgNBContainer; - static constexpr bool optional = true; - - }; - meNBtoSgNBContainer_t& set_meNBtoSgNBContainer() { meNBtoSgNBContainer.setpresent(true); return meNBtoSgNBContainer;} - meNBtoSgNBContainer_t const* get_meNBtoSgNBContainer() const {return meNBtoSgNBContainer.is_valid() ? &meNBtoSgNBContainer : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(meNBtoSgNBContainer); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(meNBtoSgNBContainer); - v(iE_Extensions); - - }; - void clear() - { - meNBtoSgNBContainer.clear(); - iE_Extensions.clear(); - - }; - private: - meNBtoSgNBContainer_t meNBtoSgNBContainer; - iE_Extensions_t iE_Extensions; - -}; -/* -ResponseInformationSgNBReconfComp-RejectByMeNBItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct ResponseInformationSgNBReconfComp_RejectByMeNBItemExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ResponseInformationSgNBReconfComp-RejectByMeNBItem ::= SEQUENCE { - cause Cause, - iE-Extensions ProtocolExtensionContainer { {ResponseInformationSgNBReconfComp-RejectByMeNBItemExtIEs} } OPTIONAL, - ... -} -*/ - -struct ResponseInformationSgNBReconfComp_RejectByMeNBItem : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "ResponseInformationSgNBReconfComp-RejectByMeNBItem";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct cause_t : Cause - { - static constexpr const char* name() {return "cause_t";} - using parent_t = Cause; - - }; - cause_t& ref_cause() {return cause;} - cause_t const& ref_cause() const {return cause;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(cause); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(cause); - v(iE_Extensions); - - }; - void clear() - { - cause.clear(); - iE_Extensions.clear(); - - }; - private: - cause_t cause; - iE_Extensions_t iE_Extensions; - -}; -/* -ResponseInformationSgNBReconfComp ::= CHOICE { - success-SgNBReconfComp ResponseInformationSgNBReconfComp-SuccessItem, - reject-by-MeNB-SgNBReconfComp ResponseInformationSgNBReconfComp-RejectByMeNBItem, - ... -} -*/ - -struct ResponseInformationSgNBReconfComp : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "ResponseInformationSgNBReconfComp";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~ResponseInformationSgNBReconfComp() {clear();} - struct success_SgNBReconfComp_t : ResponseInformationSgNBReconfComp_SuccessItem - { - static constexpr const char* name() {return "success_SgNBReconfComp_t";} - using parent_t = ResponseInformationSgNBReconfComp_SuccessItem; - - }; - struct reject_by_MeNB_SgNBReconfComp_t : ResponseInformationSgNBReconfComp_RejectByMeNBItem - { - static constexpr const char* name() {return "reject_by_MeNB_SgNBReconfComp_t";} - using parent_t = ResponseInformationSgNBReconfComp_RejectByMeNBItem; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - success_SgNBReconfComp_t& select_success_SgNBReconfComp() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - success_SgNBReconfComp_t const* get_success_SgNBReconfComp() const { if(get_index() == 1) { return &var.as();} return nullptr; } - reject_by_MeNB_SgNBReconfComp_t& select_reject_by_MeNB_SgNBReconfComp() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - reject_by_MeNB_SgNBReconfComp_t const* get_reject_by_MeNB_SgNBReconfComp() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(success_SgNBReconfComp_t)]; - char dummy2[sizeof(reject_by_MeNB_SgNBReconfComp_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -RetrieveUEContextFailure-IEs X2AP-PROTOCOL-IES ::= { - { ID id-New-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-New-eNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, - ... -} -*/ - -struct RetrieveUEContextFailure_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_New_eNB_UE_X2AP_ID() { set(id_New_eNB_UE_X2AP_ID); type=1;} - void select_id_New_eNB_UE_X2AP_ID_Extension() { set(id_New_eNB_UE_X2AP_ID_Extension); type=2;} - void select_id_Cause() { set(id_Cause); type=3;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=4;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_New_eNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_New_eNB_UE_X2AP_ID_Extension)) { type = 2; return true; } - else if(equal(id_Cause)) { type = 3; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_New_eNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_New_eNB_UE_X2AP_ID_Extension);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_New_eNB_UE_X2AP_ID() { set(ignore); type=1;} - void select_id_New_eNB_UE_X2AP_ID_Extension() { set(ignore); type=2;} - void select_id_Cause() { set(ignore); type=3;} - void select_id_CriticalityDiagnostics() { set(ignore); type=4;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_New_eNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_New_eNB_UE_X2AP_ID() const { return get(1); } - UE_X2AP_ID_Extension& select_id_New_eNB_UE_X2AP_ID_Extension() { return set(2); } - UE_X2AP_ID_Extension const* get_id_New_eNB_UE_X2AP_ID_Extension() const { return get(2); } - Cause& select_id_Cause() { return set(3); } - Cause const* get_id_Cause() const { return get(3); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(4); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(4); } - bool is_unknown() const { return type == 5; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_New_eNB_UE_X2AP_ID()); return true; - case 2: v(select_id_New_eNB_UE_X2AP_ID_Extension()); return true; - case 3: v(select_id_Cause()); return true; - case 4: v(select_id_CriticalityDiagnostics()); return true; - case 5: if(type != 5) {clear(); asn::base::set();} type = 5; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(CriticalityDiagnostics)]; - char dummy3[sizeof(UE_X2AP_ID)]; - char dummy4[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_New_eNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_New_eNB_UE_X2AP_ID_Extension() { set(optional); type=2;} - void select_id_Cause() { set(mandatory); type=3;} - void select_id_CriticalityDiagnostics() { set(optional); type=4;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RetrieveUEContextFailure ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ RetrieveUEContextFailure-IEs}}, - ... -} -*/ - -struct RetrieveUEContextFailure : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "RetrieveUEContextFailure";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -RetrieveUEContextRequest-IEs X2AP-PROTOCOL-IES ::= { - { ID id-New-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-resumeID CRITICALITY reject TYPE ResumeID PRESENCE mandatory}| - { ID id-ShortMAC-I CRITICALITY reject TYPE ShortMAC-I PRESENCE mandatory}| - { ID id-NewEUTRANCellIdentifier CRITICALITY reject TYPE EUTRANCellIdentifier PRESENCE mandatory}| - {ID id-FailureCellCRNTI CRITICALITY reject TYPE CRNTI PRESENCE optional}| - {ID id-FailureCellPCI CRITICALITY reject TYPE PCI PRESENCE optional}, - ... -} -*/ - -struct RetrieveUEContextRequest_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 8; } - void clear() {type = 0;} - void select_id_New_eNB_UE_X2AP_ID() { set(id_New_eNB_UE_X2AP_ID); type=1;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(id_SeNB_UE_X2AP_ID_Extension); type=2;} - void select_id_resumeID() { set(id_resumeID); type=3;} - void select_id_ShortMAC_I() { set(id_ShortMAC_I); type=4;} - void select_id_NewEUTRANCellIdentifier() { set(id_NewEUTRANCellIdentifier); type=5;} - void select_id_FailureCellCRNTI() { set(id_FailureCellCRNTI); type=6;} - void select_id_FailureCellPCI() { set(id_FailureCellPCI); type=7;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_New_eNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SeNB_UE_X2AP_ID_Extension)) { type = 2; return true; } - else if(equal(id_resumeID)) { type = 3; return true; } - else if(equal(id_ShortMAC_I)) { type = 4; return true; } - else if(equal(id_NewEUTRANCellIdentifier)) { type = 5; return true; } - else if(equal(id_FailureCellCRNTI)) { type = 6; return true; } - else if(equal(id_FailureCellPCI)) { type = 7; return true; } - else { type = 8; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_New_eNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SeNB_UE_X2AP_ID_Extension);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_resumeID);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_ShortMAC_I);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_NewEUTRANCellIdentifier);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_FailureCellCRNTI);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(id_FailureCellPCI);} return false; - case 8: type = 8; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 8; } - void clear() {type = 0;} - void select_id_New_eNB_UE_X2AP_ID() { set(reject); type=1;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(reject); type=2;} - void select_id_resumeID() { set(reject); type=3;} - void select_id_ShortMAC_I() { set(reject); type=4;} - void select_id_NewEUTRANCellIdentifier() { set(reject); type=5;} - void select_id_FailureCellCRNTI() { set(reject); type=6;} - void select_id_FailureCellPCI() { set(reject); type=7;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(reject)) { type = 3; return true; } - else if(equal(reject)) { type = 4; return true; } - else if(equal(reject)) { type = 5; return true; } - else if(equal(reject)) { type = 6; return true; } - else if(equal(reject)) { type = 7; return true; } - else { type = 8; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(reject);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(reject);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(reject);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(reject);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(reject);} return false; - case 8: type = 8; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_New_eNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_New_eNB_UE_X2AP_ID() const { return get(1); } - UE_X2AP_ID_Extension& select_id_SeNB_UE_X2AP_ID_Extension() { return set(2); } - UE_X2AP_ID_Extension const* get_id_SeNB_UE_X2AP_ID_Extension() const { return get(2); } - ResumeID& select_id_resumeID() { return set(3); } - ResumeID const* get_id_resumeID() const { return get(3); } - ShortMAC_I& select_id_ShortMAC_I() { return set(4); } - ShortMAC_I const* get_id_ShortMAC_I() const { return get(4); } - EUTRANCellIdentifier& select_id_NewEUTRANCellIdentifier() { return set(5); } - EUTRANCellIdentifier const* get_id_NewEUTRANCellIdentifier() const { return get(5); } - CRNTI& select_id_FailureCellCRNTI() { return set(6); } - CRNTI const* get_id_FailureCellCRNTI() const { return get(6); } - PCI& select_id_FailureCellPCI() { return set(7); } - PCI const* get_id_FailureCellPCI() const { return get(7); } - bool is_unknown() const { return type == 8; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - case 7: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - v.template operator()(7); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_New_eNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SeNB_UE_X2AP_ID_Extension()); return true; - case 3: v(select_id_resumeID()); return true; - case 4: v(select_id_ShortMAC_I()); return true; - case 5: v(select_id_NewEUTRANCellIdentifier()); return true; - case 6: v(select_id_FailureCellCRNTI()); return true; - case 7: v(select_id_FailureCellPCI()); return true; - case 8: if(type != 8) {clear(); asn::base::set();} type = 8; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - case 7: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CRNTI)]; - char dummy2[sizeof(EUTRANCellIdentifier)]; - char dummy3[sizeof(PCI)]; - char dummy4[sizeof(ResumeID)]; - char dummy5[sizeof(ShortMAC_I)]; - char dummy6[sizeof(UE_X2AP_ID)]; - char dummy7[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 8; } - void clear() {type = 0;} - void select_id_New_eNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(optional); type=2;} - void select_id_resumeID() { set(mandatory); type=3;} - void select_id_ShortMAC_I() { set(mandatory); type=4;} - void select_id_NewEUTRANCellIdentifier() { set(mandatory); type=5;} - void select_id_FailureCellCRNTI() { set(optional); type=6;} - void select_id_FailureCellPCI() { set(optional); type=7;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(mandatory)) { type = 4; return true; } - else if(equal(mandatory)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else if(equal(optional)) { type = 7; return true; } - else { type = 8; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(mandatory);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(mandatory);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(optional);} return false; - case 8: type = 8; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RetrieveUEContextRequest ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ RetrieveUEContextRequest-IEs}}, - ... -} -*/ - -struct RetrieveUEContextRequest : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "RetrieveUEContextRequest";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -UE-ContextInformationRetrieve-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { -{ ID id-UESidelinkAggregateMaximumBitRate CRITICALITY ignore EXTENSION UESidelinkAggregateMaximumBitRate PRESENCE optional}, - ... -} -*/ - -struct UE_ContextInformationRetrieve_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_UESidelinkAggregateMaximumBitRate() { set(id_UESidelinkAggregateMaximumBitRate); type=1;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_UESidelinkAggregateMaximumBitRate)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_UESidelinkAggregateMaximumBitRate);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_UESidelinkAggregateMaximumBitRate() { set(ignore); type=1;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - UESidelinkAggregateMaximumBitRate& select_id_UESidelinkAggregateMaximumBitRate() { return set(1); } - UESidelinkAggregateMaximumBitRate const* get_id_UESidelinkAggregateMaximumBitRate() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_UESidelinkAggregateMaximumBitRate()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(UESidelinkAggregateMaximumBitRate)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_UESidelinkAggregateMaximumBitRate() { set(optional); type=1;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -UE-ContextInformationRetrieve ::= SEQUENCE { - mME-UE-S1AP-ID UE-S1AP-ID, - uESecurityCapabilities UESecurityCapabilities, - aS-SecurityInformation AS-SecurityInformation, - uEaggregateMaximumBitRate UEAggregateMaximumBitRate, - subscriberProfileIDforRFP SubscriberProfileIDforRFP OPTIONAL, - e-RABs-ToBeSetup-ListRetrieve E-RABs-ToBeSetup-ListRetrieve, - rRC-Context RRC-Context, - handoverRestrictionList HandoverRestrictionList OPTIONAL, - locationReportingInformation LocationReportingInformation OPTIONAL, - managBasedMDTallowed ManagementBasedMDTallowed OPTIONAL, - managBasedMDTPLMNList MDTPLMNList OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {UE-ContextInformationRetrieve-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct UE_ContextInformationRetrieve : asn::sequence<12, 0, true, 6> -{ - static constexpr const char* name() {return "UE-ContextInformationRetrieve";} - using parent_t = asn::sequence<12, 0, true, 6>; - struct mME_UE_S1AP_ID_t : UE_S1AP_ID - { - static constexpr const char* name() {return "mME_UE_S1AP_ID_t";} - using parent_t = UE_S1AP_ID; - - }; - mME_UE_S1AP_ID_t& ref_mME_UE_S1AP_ID() {return mME_UE_S1AP_ID;} - mME_UE_S1AP_ID_t const& ref_mME_UE_S1AP_ID() const {return mME_UE_S1AP_ID;} - struct uESecurityCapabilities_t : UESecurityCapabilities - { - static constexpr const char* name() {return "uESecurityCapabilities_t";} - using parent_t = UESecurityCapabilities; - - }; - uESecurityCapabilities_t& ref_uESecurityCapabilities() {return uESecurityCapabilities;} - uESecurityCapabilities_t const& ref_uESecurityCapabilities() const {return uESecurityCapabilities;} - struct aS_SecurityInformation_t : AS_SecurityInformation - { - static constexpr const char* name() {return "aS_SecurityInformation_t";} - using parent_t = AS_SecurityInformation; - - }; - aS_SecurityInformation_t& ref_aS_SecurityInformation() {return aS_SecurityInformation;} - aS_SecurityInformation_t const& ref_aS_SecurityInformation() const {return aS_SecurityInformation;} - struct uEaggregateMaximumBitRate_t : UEAggregateMaximumBitRate - { - static constexpr const char* name() {return "uEaggregateMaximumBitRate_t";} - using parent_t = UEAggregateMaximumBitRate; - - }; - uEaggregateMaximumBitRate_t& ref_uEaggregateMaximumBitRate() {return uEaggregateMaximumBitRate;} - uEaggregateMaximumBitRate_t const& ref_uEaggregateMaximumBitRate() const {return uEaggregateMaximumBitRate;} - struct subscriberProfileIDforRFP_t : SubscriberProfileIDforRFP - { - static constexpr const char* name() {return "subscriberProfileIDforRFP_t";} - using parent_t = SubscriberProfileIDforRFP; - static constexpr bool optional = true; - - }; - subscriberProfileIDforRFP_t& set_subscriberProfileIDforRFP() { subscriberProfileIDforRFP.setpresent(true); return subscriberProfileIDforRFP;} - subscriberProfileIDforRFP_t const* get_subscriberProfileIDforRFP() const {return subscriberProfileIDforRFP.is_valid() ? &subscriberProfileIDforRFP : nullptr;} - struct e_RABs_ToBeSetup_ListRetrieve_t : E_RABs_ToBeSetup_ListRetrieve - { - static constexpr const char* name() {return "e_RABs_ToBeSetup_ListRetrieve_t";} - using parent_t = E_RABs_ToBeSetup_ListRetrieve; - - }; - e_RABs_ToBeSetup_ListRetrieve_t& ref_e_RABs_ToBeSetup_ListRetrieve() {return e_RABs_ToBeSetup_ListRetrieve;} - e_RABs_ToBeSetup_ListRetrieve_t const& ref_e_RABs_ToBeSetup_ListRetrieve() const {return e_RABs_ToBeSetup_ListRetrieve;} - struct rRC_Context_t : RRC_Context - { - static constexpr const char* name() {return "rRC_Context_t";} - using parent_t = RRC_Context; - - }; - rRC_Context_t& ref_rRC_Context() {return rRC_Context;} - rRC_Context_t const& ref_rRC_Context() const {return rRC_Context;} - struct handoverRestrictionList_t : HandoverRestrictionList - { - static constexpr const char* name() {return "handoverRestrictionList_t";} - using parent_t = HandoverRestrictionList; - static constexpr bool optional = true; - - }; - handoverRestrictionList_t& set_handoverRestrictionList() { handoverRestrictionList.setpresent(true); return handoverRestrictionList;} - handoverRestrictionList_t const* get_handoverRestrictionList() const {return handoverRestrictionList.is_valid() ? &handoverRestrictionList : nullptr;} - struct locationReportingInformation_t : LocationReportingInformation - { - static constexpr const char* name() {return "locationReportingInformation_t";} - using parent_t = LocationReportingInformation; - static constexpr bool optional = true; - - }; - locationReportingInformation_t& set_locationReportingInformation() { locationReportingInformation.setpresent(true); return locationReportingInformation;} - locationReportingInformation_t const* get_locationReportingInformation() const {return locationReportingInformation.is_valid() ? &locationReportingInformation : nullptr;} - struct managBasedMDTallowed_t : ManagementBasedMDTallowed - { - static constexpr const char* name() {return "managBasedMDTallowed_t";} - using parent_t = ManagementBasedMDTallowed; - static constexpr bool optional = true; - - }; - managBasedMDTallowed_t& set_managBasedMDTallowed() { managBasedMDTallowed.setpresent(true); return managBasedMDTallowed;} - managBasedMDTallowed_t const* get_managBasedMDTallowed() const {return managBasedMDTallowed.is_valid() ? &managBasedMDTallowed : nullptr;} - struct managBasedMDTPLMNList_t : MDTPLMNList - { - static constexpr const char* name() {return "managBasedMDTPLMNList_t";} - using parent_t = MDTPLMNList; - static constexpr bool optional = true; - - }; - managBasedMDTPLMNList_t& set_managBasedMDTPLMNList() { managBasedMDTPLMNList.setpresent(true); return managBasedMDTPLMNList;} - managBasedMDTPLMNList_t const* get_managBasedMDTPLMNList() const {return managBasedMDTPLMNList.is_valid() ? &managBasedMDTPLMNList : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(mME_UE_S1AP_ID); - v(uESecurityCapabilities); - v(aS_SecurityInformation); - v(uEaggregateMaximumBitRate); - v(subscriberProfileIDforRFP); - v(e_RABs_ToBeSetup_ListRetrieve); - v(rRC_Context); - v(handoverRestrictionList); - v(locationReportingInformation); - v(managBasedMDTallowed); - v(managBasedMDTPLMNList); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(mME_UE_S1AP_ID); - v(uESecurityCapabilities); - v(aS_SecurityInformation); - v(uEaggregateMaximumBitRate); - v(subscriberProfileIDforRFP); - v(e_RABs_ToBeSetup_ListRetrieve); - v(rRC_Context); - v(handoverRestrictionList); - v(locationReportingInformation); - v(managBasedMDTallowed); - v(managBasedMDTPLMNList); - v(iE_Extensions); - - }; - void clear() - { - mME_UE_S1AP_ID.clear(); - uESecurityCapabilities.clear(); - aS_SecurityInformation.clear(); - uEaggregateMaximumBitRate.clear(); - subscriberProfileIDforRFP.clear(); - e_RABs_ToBeSetup_ListRetrieve.clear(); - rRC_Context.clear(); - handoverRestrictionList.clear(); - locationReportingInformation.clear(); - managBasedMDTallowed.clear(); - managBasedMDTPLMNList.clear(); - iE_Extensions.clear(); - - }; - private: - mME_UE_S1AP_ID_t mME_UE_S1AP_ID; - uESecurityCapabilities_t uESecurityCapabilities; - aS_SecurityInformation_t aS_SecurityInformation; - uEaggregateMaximumBitRate_t uEaggregateMaximumBitRate; - subscriberProfileIDforRFP_t subscriberProfileIDforRFP; - e_RABs_ToBeSetup_ListRetrieve_t e_RABs_ToBeSetup_ListRetrieve; - rRC_Context_t rRC_Context; - handoverRestrictionList_t handoverRestrictionList; - locationReportingInformation_t locationReportingInformation; - managBasedMDTallowed_t managBasedMDTallowed; - managBasedMDTPLMNList_t managBasedMDTPLMNList; - iE_Extensions_t iE_Extensions; - -}; -/* -RetrieveUEContextResponse-IEs X2AP-PROTOCOL-IES ::= { - { ID id-New-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-New-eNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-Old-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-Old-eNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-GUMMEI-ID CRITICALITY reject TYPE GUMMEI PRESENCE mandatory}| - { ID id-UE-ContextInformationRetrieve CRITICALITY reject TYPE UE-ContextInformationRetrieve PRESENCE mandatory}| - { ID id-TraceActivation CRITICALITY ignore TYPE TraceActivation PRESENCE optional}| - { ID id-SRVCCOperationPossible CRITICALITY ignore TYPE SRVCCOperationPossible PRESENCE optional}| - { ID id-Masked-IMEISV CRITICALITY ignore TYPE Masked-IMEISV PRESENCE optional}| - { ID id-ExpectedUEBehaviour CRITICALITY ignore TYPE ExpectedUEBehaviour PRESENCE optional}| - { ID id-ProSeAuthorized CRITICALITY ignore TYPE ProSeAuthorized PRESENCE optional}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| - { ID id-V2XServicesAuthorized CRITICALITY ignore TYPE V2XServicesAuthorized PRESENCE optional}| - { ID id-AerialUEsubscriptionInformation CRITICALITY ignore TYPE AerialUEsubscriptionInformation PRESENCE optional}| - { ID id-Subscription-Based-UE-DifferentiationInfo CRITICALITY ignore TYPE Subscription-Based-UE-DifferentiationInfo PRESENCE optional}, - ... -} -*/ - -struct RetrieveUEContextResponse_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 16; } - void clear() {type = 0;} - void select_id_New_eNB_UE_X2AP_ID() { set(id_New_eNB_UE_X2AP_ID); type=1;} - void select_id_New_eNB_UE_X2AP_ID_Extension() { set(id_New_eNB_UE_X2AP_ID_Extension); type=2;} - void select_id_Old_eNB_UE_X2AP_ID() { set(id_Old_eNB_UE_X2AP_ID); type=3;} - void select_id_Old_eNB_UE_X2AP_ID_Extension() { set(id_Old_eNB_UE_X2AP_ID_Extension); type=4;} - void select_id_GUMMEI_ID() { set(id_GUMMEI_ID); type=5;} - void select_id_UE_ContextInformationRetrieve() { set(id_UE_ContextInformationRetrieve); type=6;} - void select_id_TraceActivation() { set(id_TraceActivation); type=7;} - void select_id_SRVCCOperationPossible() { set(id_SRVCCOperationPossible); type=8;} - void select_id_Masked_IMEISV() { set(id_Masked_IMEISV); type=9;} - void select_id_ExpectedUEBehaviour() { set(id_ExpectedUEBehaviour); type=10;} - void select_id_ProSeAuthorized() { set(id_ProSeAuthorized); type=11;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=12;} - void select_id_V2XServicesAuthorized() { set(id_V2XServicesAuthorized); type=13;} - void select_id_AerialUEsubscriptionInformation() { set(id_AerialUEsubscriptionInformation); type=14;} - void select_id_Subscription_Based_UE_DifferentiationInfo() { set(id_Subscription_Based_UE_DifferentiationInfo); type=15;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_New_eNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_New_eNB_UE_X2AP_ID_Extension)) { type = 2; return true; } - else if(equal(id_Old_eNB_UE_X2AP_ID)) { type = 3; return true; } - else if(equal(id_Old_eNB_UE_X2AP_ID_Extension)) { type = 4; return true; } - else if(equal(id_GUMMEI_ID)) { type = 5; return true; } - else if(equal(id_UE_ContextInformationRetrieve)) { type = 6; return true; } - else if(equal(id_TraceActivation)) { type = 7; return true; } - else if(equal(id_SRVCCOperationPossible)) { type = 8; return true; } - else if(equal(id_Masked_IMEISV)) { type = 9; return true; } - else if(equal(id_ExpectedUEBehaviour)) { type = 10; return true; } - else if(equal(id_ProSeAuthorized)) { type = 11; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 12; return true; } - else if(equal(id_V2XServicesAuthorized)) { type = 13; return true; } - else if(equal(id_AerialUEsubscriptionInformation)) { type = 14; return true; } - else if(equal(id_Subscription_Based_UE_DifferentiationInfo)) { type = 15; return true; } - else { type = 16; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_New_eNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_New_eNB_UE_X2AP_ID_Extension);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_Old_eNB_UE_X2AP_ID);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_Old_eNB_UE_X2AP_ID_Extension);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_GUMMEI_ID);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_UE_ContextInformationRetrieve);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(id_TraceActivation);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(id_SRVCCOperationPossible);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(id_Masked_IMEISV);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(id_ExpectedUEBehaviour);} return false; - case 11: type = 11; if(v(ref_nested())) { return equal(id_ProSeAuthorized);} return false; - case 12: type = 12; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 13: type = 13; if(v(ref_nested())) { return equal(id_V2XServicesAuthorized);} return false; - case 14: type = 14; if(v(ref_nested())) { return equal(id_AerialUEsubscriptionInformation);} return false; - case 15: type = 15; if(v(ref_nested())) { return equal(id_Subscription_Based_UE_DifferentiationInfo);} return false; - case 16: type = 16; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 16; } - void clear() {type = 0;} - void select_id_New_eNB_UE_X2AP_ID() { set(ignore); type=1;} - void select_id_New_eNB_UE_X2AP_ID_Extension() { set(ignore); type=2;} - void select_id_Old_eNB_UE_X2AP_ID() { set(ignore); type=3;} - void select_id_Old_eNB_UE_X2AP_ID_Extension() { set(ignore); type=4;} - void select_id_GUMMEI_ID() { set(reject); type=5;} - void select_id_UE_ContextInformationRetrieve() { set(reject); type=6;} - void select_id_TraceActivation() { set(ignore); type=7;} - void select_id_SRVCCOperationPossible() { set(ignore); type=8;} - void select_id_Masked_IMEISV() { set(ignore); type=9;} - void select_id_ExpectedUEBehaviour() { set(ignore); type=10;} - void select_id_ProSeAuthorized() { set(ignore); type=11;} - void select_id_CriticalityDiagnostics() { set(ignore); type=12;} - void select_id_V2XServicesAuthorized() { set(ignore); type=13;} - void select_id_AerialUEsubscriptionInformation() { set(ignore); type=14;} - void select_id_Subscription_Based_UE_DifferentiationInfo() { set(ignore); type=15;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(reject)) { type = 5; return true; } - else if(equal(reject)) { type = 6; return true; } - else if(equal(ignore)) { type = 7; return true; } - else if(equal(ignore)) { type = 8; return true; } - else if(equal(ignore)) { type = 9; return true; } - else if(equal(ignore)) { type = 10; return true; } - else if(equal(ignore)) { type = 11; return true; } - else if(equal(ignore)) { type = 12; return true; } - else if(equal(ignore)) { type = 13; return true; } - else if(equal(ignore)) { type = 14; return true; } - else if(equal(ignore)) { type = 15; return true; } - else { type = 16; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(reject);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(reject);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(ignore);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(ignore);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(ignore);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(ignore);} return false; - case 11: type = 11; if(v(ref_nested())) { return equal(ignore);} return false; - case 12: type = 12; if(v(ref_nested())) { return equal(ignore);} return false; - case 13: type = 13; if(v(ref_nested())) { return equal(ignore);} return false; - case 14: type = 14; if(v(ref_nested())) { return equal(ignore);} return false; - case 15: type = 15; if(v(ref_nested())) { return equal(ignore);} return false; - case 16: type = 16; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_New_eNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_New_eNB_UE_X2AP_ID() const { return get(1); } - UE_X2AP_ID_Extension& select_id_New_eNB_UE_X2AP_ID_Extension() { return set(2); } - UE_X2AP_ID_Extension const* get_id_New_eNB_UE_X2AP_ID_Extension() const { return get(2); } - UE_X2AP_ID& select_id_Old_eNB_UE_X2AP_ID() { return set(3); } - UE_X2AP_ID const* get_id_Old_eNB_UE_X2AP_ID() const { return get(3); } - UE_X2AP_ID_Extension& select_id_Old_eNB_UE_X2AP_ID_Extension() { return set(4); } - UE_X2AP_ID_Extension const* get_id_Old_eNB_UE_X2AP_ID_Extension() const { return get(4); } - GUMMEI& select_id_GUMMEI_ID() { return set(5); } - GUMMEI const* get_id_GUMMEI_ID() const { return get(5); } - UE_ContextInformationRetrieve& select_id_UE_ContextInformationRetrieve() { return set(6); } - UE_ContextInformationRetrieve const* get_id_UE_ContextInformationRetrieve() const { return get(6); } - TraceActivation& select_id_TraceActivation() { return set(7); } - TraceActivation const* get_id_TraceActivation() const { return get(7); } - SRVCCOperationPossible& select_id_SRVCCOperationPossible() { return set(8); } - SRVCCOperationPossible const* get_id_SRVCCOperationPossible() const { return get(8); } - Masked_IMEISV& select_id_Masked_IMEISV() { return set(9); } - Masked_IMEISV const* get_id_Masked_IMEISV() const { return get(9); } - ExpectedUEBehaviour& select_id_ExpectedUEBehaviour() { return set(10); } - ExpectedUEBehaviour const* get_id_ExpectedUEBehaviour() const { return get(10); } - ProSeAuthorized& select_id_ProSeAuthorized() { return set(11); } - ProSeAuthorized const* get_id_ProSeAuthorized() const { return get(11); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(12); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(12); } - V2XServicesAuthorized& select_id_V2XServicesAuthorized() { return set(13); } - V2XServicesAuthorized const* get_id_V2XServicesAuthorized() const { return get(13); } - AerialUEsubscriptionInformation& select_id_AerialUEsubscriptionInformation() { return set(14); } - AerialUEsubscriptionInformation const* get_id_AerialUEsubscriptionInformation() const { return get(14); } - Subscription_Based_UE_DifferentiationInfo& select_id_Subscription_Based_UE_DifferentiationInfo() { return set(15); } - Subscription_Based_UE_DifferentiationInfo const* get_id_Subscription_Based_UE_DifferentiationInfo() const { return get(15); } - bool is_unknown() const { return type == 16; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - case 7: var.destroy(); break; - case 8: var.destroy(); break; - case 9: var.destroy(); break; - case 10: var.destroy(); break; - case 11: var.destroy(); break; - case 12: var.destroy(); break; - case 13: var.destroy(); break; - case 14: var.destroy(); break; - case 15: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - v.template operator()(7); - v.template operator()(8); - v.template operator()(9); - v.template operator()(10); - v.template operator()(11); - v.template operator()(12); - v.template operator()(13); - v.template operator()(14); - v.template operator()(15); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_New_eNB_UE_X2AP_ID()); return true; - case 2: v(select_id_New_eNB_UE_X2AP_ID_Extension()); return true; - case 3: v(select_id_Old_eNB_UE_X2AP_ID()); return true; - case 4: v(select_id_Old_eNB_UE_X2AP_ID_Extension()); return true; - case 5: v(select_id_GUMMEI_ID()); return true; - case 6: v(select_id_UE_ContextInformationRetrieve()); return true; - case 7: v(select_id_TraceActivation()); return true; - case 8: v(select_id_SRVCCOperationPossible()); return true; - case 9: v(select_id_Masked_IMEISV()); return true; - case 10: v(select_id_ExpectedUEBehaviour()); return true; - case 11: v(select_id_ProSeAuthorized()); return true; - case 12: v(select_id_CriticalityDiagnostics()); return true; - case 13: v(select_id_V2XServicesAuthorized()); return true; - case 14: v(select_id_AerialUEsubscriptionInformation()); return true; - case 15: v(select_id_Subscription_Based_UE_DifferentiationInfo()); return true; - case 16: if(type != 16) {clear(); asn::base::set();} type = 16; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - case 7: v(var.as()); return true; - case 8: v(var.as()); return true; - case 9: v(var.as()); return true; - case 10: v(var.as()); return true; - case 11: v(var.as()); return true; - case 12: v(var.as()); return true; - case 13: v(var.as()); return true; - case 14: v(var.as()); return true; - case 15: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(AerialUEsubscriptionInformation)]; - char dummy2[sizeof(CriticalityDiagnostics)]; - char dummy3[sizeof(ExpectedUEBehaviour)]; - char dummy4[sizeof(GUMMEI)]; - char dummy5[sizeof(Masked_IMEISV)]; - char dummy6[sizeof(ProSeAuthorized)]; - char dummy7[sizeof(SRVCCOperationPossible)]; - char dummy8[sizeof(Subscription_Based_UE_DifferentiationInfo)]; - char dummy9[sizeof(TraceActivation)]; - char dummy10[sizeof(UE_ContextInformationRetrieve)]; - char dummy11[sizeof(UE_X2AP_ID)]; - char dummy12[sizeof(UE_X2AP_ID_Extension)]; - char dummy13[sizeof(V2XServicesAuthorized)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 16; } - void clear() {type = 0;} - void select_id_New_eNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_New_eNB_UE_X2AP_ID_Extension() { set(optional); type=2;} - void select_id_Old_eNB_UE_X2AP_ID() { set(mandatory); type=3;} - void select_id_Old_eNB_UE_X2AP_ID_Extension() { set(optional); type=4;} - void select_id_GUMMEI_ID() { set(mandatory); type=5;} - void select_id_UE_ContextInformationRetrieve() { set(mandatory); type=6;} - void select_id_TraceActivation() { set(optional); type=7;} - void select_id_SRVCCOperationPossible() { set(optional); type=8;} - void select_id_Masked_IMEISV() { set(optional); type=9;} - void select_id_ExpectedUEBehaviour() { set(optional); type=10;} - void select_id_ProSeAuthorized() { set(optional); type=11;} - void select_id_CriticalityDiagnostics() { set(optional); type=12;} - void select_id_V2XServicesAuthorized() { set(optional); type=13;} - void select_id_AerialUEsubscriptionInformation() { set(optional); type=14;} - void select_id_Subscription_Based_UE_DifferentiationInfo() { set(optional); type=15;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(mandatory)) { type = 5; return true; } - else if(equal(mandatory)) { type = 6; return true; } - else if(equal(optional)) { type = 7; return true; } - else if(equal(optional)) { type = 8; return true; } - else if(equal(optional)) { type = 9; return true; } - else if(equal(optional)) { type = 10; return true; } - else if(equal(optional)) { type = 11; return true; } - else if(equal(optional)) { type = 12; return true; } - else if(equal(optional)) { type = 13; return true; } - else if(equal(optional)) { type = 14; return true; } - else if(equal(optional)) { type = 15; return true; } - else { type = 16; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(mandatory);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(mandatory);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(optional);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(optional);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(optional);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(optional);} return false; - case 11: type = 11; if(v(ref_nested())) { return equal(optional);} return false; - case 12: type = 12; if(v(ref_nested())) { return equal(optional);} return false; - case 13: type = 13; if(v(ref_nested())) { return equal(optional);} return false; - case 14: type = 14; if(v(ref_nested())) { return equal(optional);} return false; - case 15: type = 15; if(v(ref_nested())) { return equal(optional);} return false; - case 16: type = 16; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RetrieveUEContextResponse ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ RetrieveUEContextResponse-IEs}}, - ... -} -*/ - -struct RetrieveUEContextResponse : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "RetrieveUEContextResponse";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SNStatusTransfer-IEs X2AP-PROTOCOL-IES ::= { - { ID id-Old-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-New-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-E-RABs-SubjectToStatusTransfer-List CRITICALITY ignore TYPE E-RABs-SubjectToStatusTransfer-List PRESENCE mandatory}| - { ID id-Old-eNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-New-eNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-SgNB-UE-X2AP-ID CRITICALITY ignore TYPE SgNB-UE-X2AP-ID PRESENCE optional}, - ... -} -*/ - -struct SNStatusTransfer_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_Old_eNB_UE_X2AP_ID() { set(id_Old_eNB_UE_X2AP_ID); type=1;} - void select_id_New_eNB_UE_X2AP_ID() { set(id_New_eNB_UE_X2AP_ID); type=2;} - void select_id_E_RABs_SubjectToStatusTransfer_List() { set(id_E_RABs_SubjectToStatusTransfer_List); type=3;} - void select_id_Old_eNB_UE_X2AP_ID_Extension() { set(id_Old_eNB_UE_X2AP_ID_Extension); type=4;} - void select_id_New_eNB_UE_X2AP_ID_Extension() { set(id_New_eNB_UE_X2AP_ID_Extension); type=5;} - void select_id_SgNB_UE_X2AP_ID() { set(id_SgNB_UE_X2AP_ID); type=6;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_Old_eNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_New_eNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_E_RABs_SubjectToStatusTransfer_List)) { type = 3; return true; } - else if(equal(id_Old_eNB_UE_X2AP_ID_Extension)) { type = 4; return true; } - else if(equal(id_New_eNB_UE_X2AP_ID_Extension)) { type = 5; return true; } - else if(equal(id_SgNB_UE_X2AP_ID)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_Old_eNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_New_eNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_E_RABs_SubjectToStatusTransfer_List);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_Old_eNB_UE_X2AP_ID_Extension);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_New_eNB_UE_X2AP_ID_Extension);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_SgNB_UE_X2AP_ID);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_Old_eNB_UE_X2AP_ID() { set(reject); type=1;} - void select_id_New_eNB_UE_X2AP_ID() { set(reject); type=2;} - void select_id_E_RABs_SubjectToStatusTransfer_List() { set(ignore); type=3;} - void select_id_Old_eNB_UE_X2AP_ID_Extension() { set(reject); type=4;} - void select_id_New_eNB_UE_X2AP_ID_Extension() { set(reject); type=5;} - void select_id_SgNB_UE_X2AP_ID() { set(ignore); type=6;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(reject)) { type = 4; return true; } - else if(equal(reject)) { type = 5; return true; } - else if(equal(ignore)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(reject);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(reject);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(ignore);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_Old_eNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_Old_eNB_UE_X2AP_ID() const { return get(1); } - UE_X2AP_ID& select_id_New_eNB_UE_X2AP_ID() { return set(2); } - UE_X2AP_ID const* get_id_New_eNB_UE_X2AP_ID() const { return get(2); } - E_RABs_SubjectToStatusTransfer_List& select_id_E_RABs_SubjectToStatusTransfer_List() { return set(3); } - E_RABs_SubjectToStatusTransfer_List const* get_id_E_RABs_SubjectToStatusTransfer_List() const { return get(3); } - UE_X2AP_ID_Extension& select_id_Old_eNB_UE_X2AP_ID_Extension() { return set(4); } - UE_X2AP_ID_Extension const* get_id_Old_eNB_UE_X2AP_ID_Extension() const { return get(4); } - UE_X2AP_ID_Extension& select_id_New_eNB_UE_X2AP_ID_Extension() { return set(5); } - UE_X2AP_ID_Extension const* get_id_New_eNB_UE_X2AP_ID_Extension() const { return get(5); } - SgNB_UE_X2AP_ID& select_id_SgNB_UE_X2AP_ID() { return set(6); } - SgNB_UE_X2AP_ID const* get_id_SgNB_UE_X2AP_ID() const { return get(6); } - bool is_unknown() const { return type == 7; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_Old_eNB_UE_X2AP_ID()); return true; - case 2: v(select_id_New_eNB_UE_X2AP_ID()); return true; - case 3: v(select_id_E_RABs_SubjectToStatusTransfer_List()); return true; - case 4: v(select_id_Old_eNB_UE_X2AP_ID_Extension()); return true; - case 5: v(select_id_New_eNB_UE_X2AP_ID_Extension()); return true; - case 6: v(select_id_SgNB_UE_X2AP_ID()); return true; - case 7: if(type != 7) {clear(); asn::base::set();} type = 7; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_SubjectToStatusTransfer_List)]; - char dummy2[sizeof(SgNB_UE_X2AP_ID)]; - char dummy3[sizeof(UE_X2AP_ID)]; - char dummy4[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_Old_eNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_New_eNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_E_RABs_SubjectToStatusTransfer_List() { set(mandatory); type=3;} - void select_id_Old_eNB_UE_X2AP_ID_Extension() { set(optional); type=4;} - void select_id_New_eNB_UE_X2AP_ID_Extension() { set(optional); type=5;} - void select_id_SgNB_UE_X2AP_ID() { set(optional); type=6;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SNStatusTransfer ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SNStatusTransfer-IEs}}, - ... -} -*/ - -struct SNStatusTransfer : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SNStatusTransfer";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SeNBAdditionRequest-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-UE-SecurityCapabilities CRITICALITY reject TYPE UESecurityCapabilities PRESENCE conditional}| - -- This IE shall be present if the Bearer Option IE is set to the value “SCG bearer” -- - { ID id-SeNBSecurityKey CRITICALITY reject TYPE SeNBSecurityKey PRESENCE conditional}| - -- This IE shall be present if the Bearer Option IE is set to the value “SCG bearer” -- - { ID id-SeNBUEAggregateMaximumBitRate CRITICALITY reject TYPE UEAggregateMaximumBitRate PRESENCE mandatory}| - { ID id-ServingPLMN CRITICALITY ignore TYPE PLMN-Identity PRESENCE optional}| - { ID id-E-RABs-ToBeAdded-List CRITICALITY reject TYPE E-RABs-ToBeAdded-List PRESENCE mandatory}| - { ID id-MeNBtoSeNBContainer CRITICALITY reject TYPE MeNBtoSeNBContainer PRESENCE mandatory}| - { ID id-CSGMembershipStatus CRITICALITY reject TYPE CSGMembershipStatus PRESENCE optional}| - { ID id-SeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE optional}| - { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-ExpectedUEBehaviour CRITICALITY ignore TYPE ExpectedUEBehaviour PRESENCE optional}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}, - ... -} -*/ - -struct SeNBAdditionRequest_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 13; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_UE_SecurityCapabilities() { set(id_UE_SecurityCapabilities); type=2;} - void select_id_SeNBSecurityKey() { set(id_SeNBSecurityKey); type=3;} - void select_id_SeNBUEAggregateMaximumBitRate() { set(id_SeNBUEAggregateMaximumBitRate); type=4;} - void select_id_ServingPLMN() { set(id_ServingPLMN); type=5;} - void select_id_E_RABs_ToBeAdded_List() { set(id_E_RABs_ToBeAdded_List); type=6;} - void select_id_MeNBtoSeNBContainer() { set(id_MeNBtoSeNBContainer); type=7;} - void select_id_CSGMembershipStatus() { set(id_CSGMembershipStatus); type=8;} - void select_id_SeNB_UE_X2AP_ID() { set(id_SeNB_UE_X2AP_ID); type=9;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(id_SeNB_UE_X2AP_ID_Extension); type=10;} - void select_id_ExpectedUEBehaviour() { set(id_ExpectedUEBehaviour); type=11;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=12;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_UE_SecurityCapabilities)) { type = 2; return true; } - else if(equal(id_SeNBSecurityKey)) { type = 3; return true; } - else if(equal(id_SeNBUEAggregateMaximumBitRate)) { type = 4; return true; } - else if(equal(id_ServingPLMN)) { type = 5; return true; } - else if(equal(id_E_RABs_ToBeAdded_List)) { type = 6; return true; } - else if(equal(id_MeNBtoSeNBContainer)) { type = 7; return true; } - else if(equal(id_CSGMembershipStatus)) { type = 8; return true; } - else if(equal(id_SeNB_UE_X2AP_ID)) { type = 9; return true; } - else if(equal(id_SeNB_UE_X2AP_ID_Extension)) { type = 10; return true; } - else if(equal(id_ExpectedUEBehaviour)) { type = 11; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 12; return true; } - else { type = 13; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_UE_SecurityCapabilities);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_SeNBSecurityKey);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_SeNBUEAggregateMaximumBitRate);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_ServingPLMN);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_E_RABs_ToBeAdded_List);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(id_MeNBtoSeNBContainer);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(id_CSGMembershipStatus);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(id_SeNB_UE_X2AP_ID);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(id_SeNB_UE_X2AP_ID_Extension);} return false; - case 11: type = 11; if(v(ref_nested())) { return equal(id_ExpectedUEBehaviour);} return false; - case 12: type = 12; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 13: type = 13; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 13; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(reject); type=1;} - void select_id_UE_SecurityCapabilities() { set(reject); type=2;} - void select_id_SeNBSecurityKey() { set(reject); type=3;} - void select_id_SeNBUEAggregateMaximumBitRate() { set(reject); type=4;} - void select_id_ServingPLMN() { set(ignore); type=5;} - void select_id_E_RABs_ToBeAdded_List() { set(reject); type=6;} - void select_id_MeNBtoSeNBContainer() { set(reject); type=7;} - void select_id_CSGMembershipStatus() { set(reject); type=8;} - void select_id_SeNB_UE_X2AP_ID() { set(reject); type=9;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(reject); type=10;} - void select_id_ExpectedUEBehaviour() { set(ignore); type=11;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(reject); type=12;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(reject)) { type = 3; return true; } - else if(equal(reject)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else if(equal(reject)) { type = 6; return true; } - else if(equal(reject)) { type = 7; return true; } - else if(equal(reject)) { type = 8; return true; } - else if(equal(reject)) { type = 9; return true; } - else if(equal(reject)) { type = 10; return true; } - else if(equal(ignore)) { type = 11; return true; } - else if(equal(reject)) { type = 12; return true; } - else { type = 13; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(reject);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(reject);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(reject);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(reject);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(reject);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(reject);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(reject);} return false; - case 11: type = 11; if(v(ref_nested())) { return equal(ignore);} return false; - case 12: type = 12; if(v(ref_nested())) { return equal(reject);} return false; - case 13: type = 13; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - UESecurityCapabilities& select_id_UE_SecurityCapabilities() { return set(2); } - UESecurityCapabilities const* get_id_UE_SecurityCapabilities() const { return get(2); } - SeNBSecurityKey& select_id_SeNBSecurityKey() { return set(3); } - SeNBSecurityKey const* get_id_SeNBSecurityKey() const { return get(3); } - UEAggregateMaximumBitRate& select_id_SeNBUEAggregateMaximumBitRate() { return set(4); } - UEAggregateMaximumBitRate const* get_id_SeNBUEAggregateMaximumBitRate() const { return get(4); } - PLMN_Identity& select_id_ServingPLMN() { return set(5); } - PLMN_Identity const* get_id_ServingPLMN() const { return get(5); } - E_RABs_ToBeAdded_List& select_id_E_RABs_ToBeAdded_List() { return set(6); } - E_RABs_ToBeAdded_List const* get_id_E_RABs_ToBeAdded_List() const { return get(6); } - MeNBtoSeNBContainer& select_id_MeNBtoSeNBContainer() { return set(7); } - MeNBtoSeNBContainer const* get_id_MeNBtoSeNBContainer() const { return get(7); } - CSGMembershipStatus& select_id_CSGMembershipStatus() { return set(8); } - CSGMembershipStatus const* get_id_CSGMembershipStatus() const { return get(8); } - UE_X2AP_ID& select_id_SeNB_UE_X2AP_ID() { return set(9); } - UE_X2AP_ID const* get_id_SeNB_UE_X2AP_ID() const { return get(9); } - UE_X2AP_ID_Extension& select_id_SeNB_UE_X2AP_ID_Extension() { return set(10); } - UE_X2AP_ID_Extension const* get_id_SeNB_UE_X2AP_ID_Extension() const { return get(10); } - ExpectedUEBehaviour& select_id_ExpectedUEBehaviour() { return set(11); } - ExpectedUEBehaviour const* get_id_ExpectedUEBehaviour() const { return get(11); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(12); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(12); } - bool is_unknown() const { return type == 13; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - case 7: var.destroy(); break; - case 8: var.destroy(); break; - case 9: var.destroy(); break; - case 10: var.destroy(); break; - case 11: var.destroy(); break; - case 12: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - v.template operator()(7); - v.template operator()(8); - v.template operator()(9); - v.template operator()(10); - v.template operator()(11); - v.template operator()(12); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_UE_SecurityCapabilities()); return true; - case 3: v(select_id_SeNBSecurityKey()); return true; - case 4: v(select_id_SeNBUEAggregateMaximumBitRate()); return true; - case 5: v(select_id_ServingPLMN()); return true; - case 6: v(select_id_E_RABs_ToBeAdded_List()); return true; - case 7: v(select_id_MeNBtoSeNBContainer()); return true; - case 8: v(select_id_CSGMembershipStatus()); return true; - case 9: v(select_id_SeNB_UE_X2AP_ID()); return true; - case 10: v(select_id_SeNB_UE_X2AP_ID_Extension()); return true; - case 11: v(select_id_ExpectedUEBehaviour()); return true; - case 12: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 13: if(type != 13) {clear(); asn::base::set();} type = 13; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - case 7: v(var.as()); return true; - case 8: v(var.as()); return true; - case 9: v(var.as()); return true; - case 10: v(var.as()); return true; - case 11: v(var.as()); return true; - case 12: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CSGMembershipStatus)]; - char dummy2[sizeof(E_RABs_ToBeAdded_List)]; - char dummy3[sizeof(ExpectedUEBehaviour)]; - char dummy4[sizeof(MeNBtoSeNBContainer)]; - char dummy5[sizeof(PLMN_Identity)]; - char dummy6[sizeof(SeNBSecurityKey)]; - char dummy7[sizeof(UEAggregateMaximumBitRate)]; - char dummy8[sizeof(UESecurityCapabilities)]; - char dummy9[sizeof(UE_X2AP_ID)]; - char dummy10[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 13; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_UE_SecurityCapabilities() { set(conditional); type=2;} - void select_id_SeNBSecurityKey() { set(conditional); type=3;} - void select_id_SeNBUEAggregateMaximumBitRate() { set(mandatory); type=4;} - void select_id_ServingPLMN() { set(optional); type=5;} - void select_id_E_RABs_ToBeAdded_List() { set(mandatory); type=6;} - void select_id_MeNBtoSeNBContainer() { set(mandatory); type=7;} - void select_id_CSGMembershipStatus() { set(optional); type=8;} - void select_id_SeNB_UE_X2AP_ID() { set(optional); type=9;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(optional); type=10;} - void select_id_ExpectedUEBehaviour() { set(optional); type=11;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=12;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(conditional)) { type = 2; return true; } - else if(equal(conditional)) { type = 3; return true; } - else if(equal(mandatory)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else if(equal(mandatory)) { type = 6; return true; } - else if(equal(mandatory)) { type = 7; return true; } - else if(equal(optional)) { type = 8; return true; } - else if(equal(optional)) { type = 9; return true; } - else if(equal(optional)) { type = 10; return true; } - else if(equal(optional)) { type = 11; return true; } - else if(equal(optional)) { type = 12; return true; } - else { type = 13; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(conditional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(conditional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(mandatory);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(mandatory);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(mandatory);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(optional);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(optional);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(optional);} return false; - case 11: type = 11; if(v(ref_nested())) { return equal(optional);} return false; - case 12: type = 12; if(v(ref_nested())) { return equal(optional);} return false; - case 13: type = 13; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SeNBAdditionRequest ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SeNBAdditionRequest-IEs}}, - ... -} -*/ - -struct SeNBAdditionRequest : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SeNBAdditionRequest";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SeNBAdditionRequestAcknowledge-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-E-RABs-Admitted-ToBeAdded-List CRITICALITY ignore TYPE E-RABs-Admitted-ToBeAdded-List PRESENCE mandatory}| - { ID id-E-RABs-NotAdmitted-List CRITICALITY ignore TYPE E-RAB-List PRESENCE optional}| - { ID id-SeNBtoMeNBContainer CRITICALITY reject TYPE SeNBtoMeNBContainer PRESENCE mandatory}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| - { ID id-GW-TransportLayerAddress CRITICALITY ignore TYPE TransportLayerAddress PRESENCE optional}| - { ID id-SIPTO-L-GW-TransportLayerAddress CRITICALITY ignore TYPE TransportLayerAddress PRESENCE optional}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-Tunnel-Information-for-BBF CRITICALITY ignore TYPE TunnelInformation PRESENCE optional}, - ... -} -*/ - -struct SeNBAdditionRequestAcknowledge_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 12; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(id_SeNB_UE_X2AP_ID); type=2;} - void select_id_E_RABs_Admitted_ToBeAdded_List() { set(id_E_RABs_Admitted_ToBeAdded_List); type=3;} - void select_id_E_RABs_NotAdmitted_List() { set(id_E_RABs_NotAdmitted_List); type=4;} - void select_id_SeNBtoMeNBContainer() { set(id_SeNBtoMeNBContainer); type=5;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=6;} - void select_id_GW_TransportLayerAddress() { set(id_GW_TransportLayerAddress); type=7;} - void select_id_SIPTO_L_GW_TransportLayerAddress() { set(id_SIPTO_L_GW_TransportLayerAddress); type=8;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=9;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(id_SeNB_UE_X2AP_ID_Extension); type=10;} - void select_id_Tunnel_Information_for_BBF() { set(id_Tunnel_Information_for_BBF); type=11;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SeNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_E_RABs_Admitted_ToBeAdded_List)) { type = 3; return true; } - else if(equal(id_E_RABs_NotAdmitted_List)) { type = 4; return true; } - else if(equal(id_SeNBtoMeNBContainer)) { type = 5; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 6; return true; } - else if(equal(id_GW_TransportLayerAddress)) { type = 7; return true; } - else if(equal(id_SIPTO_L_GW_TransportLayerAddress)) { type = 8; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 9; return true; } - else if(equal(id_SeNB_UE_X2AP_ID_Extension)) { type = 10; return true; } - else if(equal(id_Tunnel_Information_for_BBF)) { type = 11; return true; } - else { type = 12; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SeNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_E_RABs_Admitted_ToBeAdded_List);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_E_RABs_NotAdmitted_List);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_SeNBtoMeNBContainer);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(id_GW_TransportLayerAddress);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(id_SIPTO_L_GW_TransportLayerAddress);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(id_SeNB_UE_X2AP_ID_Extension);} return false; - case 11: type = 11; if(v(ref_nested())) { return equal(id_Tunnel_Information_for_BBF);} return false; - case 12: type = 12; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 12; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(reject); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(reject); type=2;} - void select_id_E_RABs_Admitted_ToBeAdded_List() { set(ignore); type=3;} - void select_id_E_RABs_NotAdmitted_List() { set(ignore); type=4;} - void select_id_SeNBtoMeNBContainer() { set(reject); type=5;} - void select_id_CriticalityDiagnostics() { set(ignore); type=6;} - void select_id_GW_TransportLayerAddress() { set(ignore); type=7;} - void select_id_SIPTO_L_GW_TransportLayerAddress() { set(ignore); type=8;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(reject); type=9;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(reject); type=10;} - void select_id_Tunnel_Information_for_BBF() { set(ignore); type=11;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(reject)) { type = 5; return true; } - else if(equal(ignore)) { type = 6; return true; } - else if(equal(ignore)) { type = 7; return true; } - else if(equal(ignore)) { type = 8; return true; } - else if(equal(reject)) { type = 9; return true; } - else if(equal(reject)) { type = 10; return true; } - else if(equal(ignore)) { type = 11; return true; } - else { type = 12; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(reject);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(ignore);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(ignore);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(ignore);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(reject);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(reject);} return false; - case 11: type = 11; if(v(ref_nested())) { return equal(ignore);} return false; - case 12: type = 12; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - UE_X2AP_ID& select_id_SeNB_UE_X2AP_ID() { return set(2); } - UE_X2AP_ID const* get_id_SeNB_UE_X2AP_ID() const { return get(2); } - E_RABs_Admitted_ToBeAdded_List& select_id_E_RABs_Admitted_ToBeAdded_List() { return set(3); } - E_RABs_Admitted_ToBeAdded_List const* get_id_E_RABs_Admitted_ToBeAdded_List() const { return get(3); } - E_RAB_List& select_id_E_RABs_NotAdmitted_List() { return set(4); } - E_RAB_List const* get_id_E_RABs_NotAdmitted_List() const { return get(4); } - SeNBtoMeNBContainer& select_id_SeNBtoMeNBContainer() { return set(5); } - SeNBtoMeNBContainer const* get_id_SeNBtoMeNBContainer() const { return get(5); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(6); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(6); } - TransportLayerAddress& select_id_GW_TransportLayerAddress() { return set(7); } - TransportLayerAddress const* get_id_GW_TransportLayerAddress() const { return get(7); } - TransportLayerAddress& select_id_SIPTO_L_GW_TransportLayerAddress() { return set(8); } - TransportLayerAddress const* get_id_SIPTO_L_GW_TransportLayerAddress() const { return get(8); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(9); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(9); } - UE_X2AP_ID_Extension& select_id_SeNB_UE_X2AP_ID_Extension() { return set(10); } - UE_X2AP_ID_Extension const* get_id_SeNB_UE_X2AP_ID_Extension() const { return get(10); } - TunnelInformation& select_id_Tunnel_Information_for_BBF() { return set(11); } - TunnelInformation const* get_id_Tunnel_Information_for_BBF() const { return get(11); } - bool is_unknown() const { return type == 12; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - case 7: var.destroy(); break; - case 8: var.destroy(); break; - case 9: var.destroy(); break; - case 10: var.destroy(); break; - case 11: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - v.template operator()(7); - v.template operator()(8); - v.template operator()(9); - v.template operator()(10); - v.template operator()(11); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SeNB_UE_X2AP_ID()); return true; - case 3: v(select_id_E_RABs_Admitted_ToBeAdded_List()); return true; - case 4: v(select_id_E_RABs_NotAdmitted_List()); return true; - case 5: v(select_id_SeNBtoMeNBContainer()); return true; - case 6: v(select_id_CriticalityDiagnostics()); return true; - case 7: v(select_id_GW_TransportLayerAddress()); return true; - case 8: v(select_id_SIPTO_L_GW_TransportLayerAddress()); return true; - case 9: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 10: v(select_id_SeNB_UE_X2AP_ID_Extension()); return true; - case 11: v(select_id_Tunnel_Information_for_BBF()); return true; - case 12: if(type != 12) {clear(); asn::base::set();} type = 12; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - case 7: v(var.as()); return true; - case 8: v(var.as()); return true; - case 9: v(var.as()); return true; - case 10: v(var.as()); return true; - case 11: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CriticalityDiagnostics)]; - char dummy2[sizeof(E_RAB_List)]; - char dummy3[sizeof(E_RABs_Admitted_ToBeAdded_List)]; - char dummy4[sizeof(SeNBtoMeNBContainer)]; - char dummy5[sizeof(TransportLayerAddress)]; - char dummy6[sizeof(TunnelInformation)]; - char dummy7[sizeof(UE_X2AP_ID)]; - char dummy8[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 12; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_E_RABs_Admitted_ToBeAdded_List() { set(mandatory); type=3;} - void select_id_E_RABs_NotAdmitted_List() { set(optional); type=4;} - void select_id_SeNBtoMeNBContainer() { set(mandatory); type=5;} - void select_id_CriticalityDiagnostics() { set(optional); type=6;} - void select_id_GW_TransportLayerAddress() { set(optional); type=7;} - void select_id_SIPTO_L_GW_TransportLayerAddress() { set(optional); type=8;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=9;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(optional); type=10;} - void select_id_Tunnel_Information_for_BBF() { set(optional); type=11;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(mandatory)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else if(equal(optional)) { type = 7; return true; } - else if(equal(optional)) { type = 8; return true; } - else if(equal(optional)) { type = 9; return true; } - else if(equal(optional)) { type = 10; return true; } - else if(equal(optional)) { type = 11; return true; } - else { type = 12; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(mandatory);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(optional);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(optional);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(optional);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(optional);} return false; - case 11: type = 11; if(v(ref_nested())) { return equal(optional);} return false; - case 12: type = 12; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SeNBAdditionRequestAcknowledge ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SeNBAdditionRequestAcknowledge-IEs}}, - ... -} -*/ - -struct SeNBAdditionRequestAcknowledge : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SeNBAdditionRequestAcknowledge";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SeNBAdditionRequestReject-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}, - ... -} -*/ - -struct SeNBAdditionRequestReject_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(id_SeNB_UE_X2AP_ID); type=2;} - void select_id_Cause() { set(id_Cause); type=3;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=5;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(id_SeNB_UE_X2AP_ID_Extension); type=6;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SeNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_Cause)) { type = 3; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 4; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 5; return true; } - else if(equal(id_SeNB_UE_X2AP_ID_Extension)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SeNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_SeNB_UE_X2AP_ID_Extension);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(reject); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(reject); type=2;} - void select_id_Cause() { set(ignore); type=3;} - void select_id_CriticalityDiagnostics() { set(ignore); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(reject); type=5;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(reject); type=6;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(reject)) { type = 5; return true; } - else if(equal(reject)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(reject);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(reject);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - UE_X2AP_ID& select_id_SeNB_UE_X2AP_ID() { return set(2); } - UE_X2AP_ID const* get_id_SeNB_UE_X2AP_ID() const { return get(2); } - Cause& select_id_Cause() { return set(3); } - Cause const* get_id_Cause() const { return get(3); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(4); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(4); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(5); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(5); } - UE_X2AP_ID_Extension& select_id_SeNB_UE_X2AP_ID_Extension() { return set(6); } - UE_X2AP_ID_Extension const* get_id_SeNB_UE_X2AP_ID_Extension() const { return get(6); } - bool is_unknown() const { return type == 7; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SeNB_UE_X2AP_ID()); return true; - case 3: v(select_id_Cause()); return true; - case 4: v(select_id_CriticalityDiagnostics()); return true; - case 5: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 6: v(select_id_SeNB_UE_X2AP_ID_Extension()); return true; - case 7: if(type != 7) {clear(); asn::base::set();} type = 7; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(CriticalityDiagnostics)]; - char dummy3[sizeof(UE_X2AP_ID)]; - char dummy4[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_Cause() { set(mandatory); type=3;} - void select_id_CriticalityDiagnostics() { set(optional); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=5;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(optional); type=6;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SeNBAdditionRequestReject ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SeNBAdditionRequestReject-IEs}}, - ... -} -*/ - -struct SeNBAdditionRequestReject : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SeNBAdditionRequestReject";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SeNBCounterCheckRequest-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-E-RABs-SubjectToCounterCheck-List CRITICALITY ignore TYPE E-RABs-SubjectToCounterCheck-List PRESENCE mandatory}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}, - ... -} -*/ - -struct SeNBCounterCheckRequest_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(id_SeNB_UE_X2AP_ID); type=2;} - void select_id_E_RABs_SubjectToCounterCheck_List() { set(id_E_RABs_SubjectToCounterCheck_List); type=3;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=4;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(id_SeNB_UE_X2AP_ID_Extension); type=5;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SeNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_E_RABs_SubjectToCounterCheck_List)) { type = 3; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 4; return true; } - else if(equal(id_SeNB_UE_X2AP_ID_Extension)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SeNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_E_RABs_SubjectToCounterCheck_List);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_SeNB_UE_X2AP_ID_Extension);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(reject); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(reject); type=2;} - void select_id_E_RABs_SubjectToCounterCheck_List() { set(ignore); type=3;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(ignore); type=4;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(ignore); type=5;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - UE_X2AP_ID& select_id_SeNB_UE_X2AP_ID() { return set(2); } - UE_X2AP_ID const* get_id_SeNB_UE_X2AP_ID() const { return get(2); } - E_RABs_SubjectToCounterCheck_List& select_id_E_RABs_SubjectToCounterCheck_List() { return set(3); } - E_RABs_SubjectToCounterCheck_List const* get_id_E_RABs_SubjectToCounterCheck_List() const { return get(3); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(4); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(4); } - UE_X2AP_ID_Extension& select_id_SeNB_UE_X2AP_ID_Extension() { return set(5); } - UE_X2AP_ID_Extension const* get_id_SeNB_UE_X2AP_ID_Extension() const { return get(5); } - bool is_unknown() const { return type == 6; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SeNB_UE_X2AP_ID()); return true; - case 3: v(select_id_E_RABs_SubjectToCounterCheck_List()); return true; - case 4: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 5: v(select_id_SeNB_UE_X2AP_ID_Extension()); return true; - case 6: if(type != 6) {clear(); asn::base::set();} type = 6; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_SubjectToCounterCheck_List)]; - char dummy2[sizeof(UE_X2AP_ID)]; - char dummy3[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_E_RABs_SubjectToCounterCheck_List() { set(mandatory); type=3;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=4;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(optional); type=5;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SeNBCounterCheckRequest ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SeNBCounterCheckRequest-IEs}}, - ... -} -*/ - -struct SeNBCounterCheckRequest : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SeNBCounterCheckRequest";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SeNBModificationConfirm-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-MeNBtoSeNBContainer CRITICALITY ignore TYPE MeNBtoSeNBContainer PRESENCE optional}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}, - ... -} -*/ - -struct SeNBModificationConfirm_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(id_SeNB_UE_X2AP_ID); type=2;} - void select_id_MeNBtoSeNBContainer() { set(id_MeNBtoSeNBContainer); type=3;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=5;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(id_SeNB_UE_X2AP_ID_Extension); type=6;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SeNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_MeNBtoSeNBContainer)) { type = 3; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 4; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 5; return true; } - else if(equal(id_SeNB_UE_X2AP_ID_Extension)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SeNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_MeNBtoSeNBContainer);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_SeNB_UE_X2AP_ID_Extension);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(ignore); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(ignore); type=2;} - void select_id_MeNBtoSeNBContainer() { set(ignore); type=3;} - void select_id_CriticalityDiagnostics() { set(ignore); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(ignore); type=5;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(ignore); type=6;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else if(equal(ignore)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(ignore);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - UE_X2AP_ID& select_id_SeNB_UE_X2AP_ID() { return set(2); } - UE_X2AP_ID const* get_id_SeNB_UE_X2AP_ID() const { return get(2); } - MeNBtoSeNBContainer& select_id_MeNBtoSeNBContainer() { return set(3); } - MeNBtoSeNBContainer const* get_id_MeNBtoSeNBContainer() const { return get(3); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(4); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(4); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(5); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(5); } - UE_X2AP_ID_Extension& select_id_SeNB_UE_X2AP_ID_Extension() { return set(6); } - UE_X2AP_ID_Extension const* get_id_SeNB_UE_X2AP_ID_Extension() const { return get(6); } - bool is_unknown() const { return type == 7; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SeNB_UE_X2AP_ID()); return true; - case 3: v(select_id_MeNBtoSeNBContainer()); return true; - case 4: v(select_id_CriticalityDiagnostics()); return true; - case 5: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 6: v(select_id_SeNB_UE_X2AP_ID_Extension()); return true; - case 7: if(type != 7) {clear(); asn::base::set();} type = 7; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CriticalityDiagnostics)]; - char dummy2[sizeof(MeNBtoSeNBContainer)]; - char dummy3[sizeof(UE_X2AP_ID)]; - char dummy4[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_MeNBtoSeNBContainer() { set(optional); type=3;} - void select_id_CriticalityDiagnostics() { set(optional); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=5;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(optional); type=6;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SeNBModificationConfirm ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SeNBModificationConfirm-IEs}}, - ... -} -*/ - -struct SeNBModificationConfirm : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SeNBModificationConfirm";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SeNBModificationRefuse-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| - { ID id-MeNBtoSeNBContainer CRITICALITY ignore TYPE MeNBtoSeNBContainer PRESENCE optional}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}, - ... -} -*/ - -struct SeNBModificationRefuse_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 8; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(id_SeNB_UE_X2AP_ID); type=2;} - void select_id_Cause() { set(id_Cause); type=3;} - void select_id_MeNBtoSeNBContainer() { set(id_MeNBtoSeNBContainer); type=4;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=5;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=6;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(id_SeNB_UE_X2AP_ID_Extension); type=7;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SeNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_Cause)) { type = 3; return true; } - else if(equal(id_MeNBtoSeNBContainer)) { type = 4; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 5; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 6; return true; } - else if(equal(id_SeNB_UE_X2AP_ID_Extension)) { type = 7; return true; } - else { type = 8; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SeNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_MeNBtoSeNBContainer);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(id_SeNB_UE_X2AP_ID_Extension);} return false; - case 8: type = 8; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 8; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(ignore); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(ignore); type=2;} - void select_id_Cause() { set(ignore); type=3;} - void select_id_MeNBtoSeNBContainer() { set(ignore); type=4;} - void select_id_CriticalityDiagnostics() { set(ignore); type=5;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(ignore); type=6;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(ignore); type=7;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else if(equal(ignore)) { type = 6; return true; } - else if(equal(ignore)) { type = 7; return true; } - else { type = 8; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(ignore);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(ignore);} return false; - case 8: type = 8; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - UE_X2AP_ID& select_id_SeNB_UE_X2AP_ID() { return set(2); } - UE_X2AP_ID const* get_id_SeNB_UE_X2AP_ID() const { return get(2); } - Cause& select_id_Cause() { return set(3); } - Cause const* get_id_Cause() const { return get(3); } - MeNBtoSeNBContainer& select_id_MeNBtoSeNBContainer() { return set(4); } - MeNBtoSeNBContainer const* get_id_MeNBtoSeNBContainer() const { return get(4); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(5); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(5); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(6); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(6); } - UE_X2AP_ID_Extension& select_id_SeNB_UE_X2AP_ID_Extension() { return set(7); } - UE_X2AP_ID_Extension const* get_id_SeNB_UE_X2AP_ID_Extension() const { return get(7); } - bool is_unknown() const { return type == 8; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - case 7: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - v.template operator()(7); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SeNB_UE_X2AP_ID()); return true; - case 3: v(select_id_Cause()); return true; - case 4: v(select_id_MeNBtoSeNBContainer()); return true; - case 5: v(select_id_CriticalityDiagnostics()); return true; - case 6: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 7: v(select_id_SeNB_UE_X2AP_ID_Extension()); return true; - case 8: if(type != 8) {clear(); asn::base::set();} type = 8; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - case 7: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(CriticalityDiagnostics)]; - char dummy3[sizeof(MeNBtoSeNBContainer)]; - char dummy4[sizeof(UE_X2AP_ID)]; - char dummy5[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 8; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_Cause() { set(mandatory); type=3;} - void select_id_MeNBtoSeNBContainer() { set(optional); type=4;} - void select_id_CriticalityDiagnostics() { set(optional); type=5;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=6;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(optional); type=7;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else if(equal(optional)) { type = 7; return true; } - else { type = 8; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(optional);} return false; - case 8: type = 8; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SeNBModificationRefuse ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SeNBModificationRefuse-IEs}}, - ... -} -*/ - -struct SeNBModificationRefuse : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SeNBModificationRefuse";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -UE-ContextInformationSeNBModReqExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct UE_ContextInformationSeNBModReqExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -UE-ContextInformationSeNBModReq ::= SEQUENCE { - uE-SecurityCapabilities UESecurityCapabilities OPTIONAL, - seNB-SecurityKey SeNBSecurityKey OPTIONAL, - seNBUEAggregateMaximumBitRate UEAggregateMaximumBitRate OPTIONAL, - e-RABs-ToBeAdded E-RABs-ToBeAdded-List-ModReq OPTIONAL, - e-RABs-ToBeModified E-RABs-ToBeModified-List-ModReq OPTIONAL, - e-RABs-ToBeReleased E-RABs-ToBeReleased-List-ModReq OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {UE-ContextInformationSeNBModReqExtIEs} } OPTIONAL, - ... -} -*/ - -struct UE_ContextInformationSeNBModReq : asn::sequence<7, 0, true, 7> -{ - static constexpr const char* name() {return "UE-ContextInformationSeNBModReq";} - using parent_t = asn::sequence<7, 0, true, 7>; - struct uE_SecurityCapabilities_t : UESecurityCapabilities - { - static constexpr const char* name() {return "uE_SecurityCapabilities_t";} - using parent_t = UESecurityCapabilities; - static constexpr bool optional = true; - - }; - uE_SecurityCapabilities_t& set_uE_SecurityCapabilities() { uE_SecurityCapabilities.setpresent(true); return uE_SecurityCapabilities;} - uE_SecurityCapabilities_t const* get_uE_SecurityCapabilities() const {return uE_SecurityCapabilities.is_valid() ? &uE_SecurityCapabilities : nullptr;} - struct seNB_SecurityKey_t : SeNBSecurityKey - { - static constexpr const char* name() {return "seNB_SecurityKey_t";} - using parent_t = SeNBSecurityKey; - static constexpr bool optional = true; - - }; - seNB_SecurityKey_t& set_seNB_SecurityKey() { seNB_SecurityKey.setpresent(true); return seNB_SecurityKey;} - seNB_SecurityKey_t const* get_seNB_SecurityKey() const {return seNB_SecurityKey.is_valid() ? &seNB_SecurityKey : nullptr;} - struct seNBUEAggregateMaximumBitRate_t : UEAggregateMaximumBitRate - { - static constexpr const char* name() {return "seNBUEAggregateMaximumBitRate_t";} - using parent_t = UEAggregateMaximumBitRate; - static constexpr bool optional = true; - - }; - seNBUEAggregateMaximumBitRate_t& set_seNBUEAggregateMaximumBitRate() { seNBUEAggregateMaximumBitRate.setpresent(true); return seNBUEAggregateMaximumBitRate;} - seNBUEAggregateMaximumBitRate_t const* get_seNBUEAggregateMaximumBitRate() const {return seNBUEAggregateMaximumBitRate.is_valid() ? &seNBUEAggregateMaximumBitRate : nullptr;} - struct e_RABs_ToBeAdded_t : E_RABs_ToBeAdded_List_ModReq - { - static constexpr const char* name() {return "e_RABs_ToBeAdded_t";} - using parent_t = E_RABs_ToBeAdded_List_ModReq; - static constexpr bool optional = true; - - }; - e_RABs_ToBeAdded_t& set_e_RABs_ToBeAdded() { e_RABs_ToBeAdded.setpresent(true); return e_RABs_ToBeAdded;} - e_RABs_ToBeAdded_t const* get_e_RABs_ToBeAdded() const {return e_RABs_ToBeAdded.is_valid() ? &e_RABs_ToBeAdded : nullptr;} - struct e_RABs_ToBeModified_t : E_RABs_ToBeModified_List_ModReq - { - static constexpr const char* name() {return "e_RABs_ToBeModified_t";} - using parent_t = E_RABs_ToBeModified_List_ModReq; - static constexpr bool optional = true; - - }; - e_RABs_ToBeModified_t& set_e_RABs_ToBeModified() { e_RABs_ToBeModified.setpresent(true); return e_RABs_ToBeModified;} - e_RABs_ToBeModified_t const* get_e_RABs_ToBeModified() const {return e_RABs_ToBeModified.is_valid() ? &e_RABs_ToBeModified : nullptr;} - struct e_RABs_ToBeReleased_t : E_RABs_ToBeReleased_List_ModReq - { - static constexpr const char* name() {return "e_RABs_ToBeReleased_t";} - using parent_t = E_RABs_ToBeReleased_List_ModReq; - static constexpr bool optional = true; - - }; - e_RABs_ToBeReleased_t& set_e_RABs_ToBeReleased() { e_RABs_ToBeReleased.setpresent(true); return e_RABs_ToBeReleased;} - e_RABs_ToBeReleased_t const* get_e_RABs_ToBeReleased() const {return e_RABs_ToBeReleased.is_valid() ? &e_RABs_ToBeReleased : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(uE_SecurityCapabilities); - v(seNB_SecurityKey); - v(seNBUEAggregateMaximumBitRate); - v(e_RABs_ToBeAdded); - v(e_RABs_ToBeModified); - v(e_RABs_ToBeReleased); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(uE_SecurityCapabilities); - v(seNB_SecurityKey); - v(seNBUEAggregateMaximumBitRate); - v(e_RABs_ToBeAdded); - v(e_RABs_ToBeModified); - v(e_RABs_ToBeReleased); - v(iE_Extensions); - - }; - void clear() - { - uE_SecurityCapabilities.clear(); - seNB_SecurityKey.clear(); - seNBUEAggregateMaximumBitRate.clear(); - e_RABs_ToBeAdded.clear(); - e_RABs_ToBeModified.clear(); - e_RABs_ToBeReleased.clear(); - iE_Extensions.clear(); - - }; - private: - uE_SecurityCapabilities_t uE_SecurityCapabilities; - seNB_SecurityKey_t seNB_SecurityKey; - seNBUEAggregateMaximumBitRate_t seNBUEAggregateMaximumBitRate; - e_RABs_ToBeAdded_t e_RABs_ToBeAdded; - e_RABs_ToBeModified_t e_RABs_ToBeModified; - e_RABs_ToBeReleased_t e_RABs_ToBeReleased; - iE_Extensions_t iE_Extensions; - -}; -/* -SeNBModificationRequest-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| - { ID id-SCGChangeIndication CRITICALITY ignore TYPE SCGChangeIndication PRESENCE optional}| - { ID id-ServingPLMN CRITICALITY ignore TYPE PLMN-Identity PRESENCE optional}| - { ID id-UE-ContextInformationSeNBModReq CRITICALITY reject TYPE UE-ContextInformationSeNBModReq PRESENCE optional}| - { ID id-MeNBtoSeNBContainer CRITICALITY ignore TYPE MeNBtoSeNBContainer PRESENCE optional}| - { ID id-CSGMembershipStatus CRITICALITY reject TYPE CSGMembershipStatus PRESENCE optional}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}, - ... -} -*/ - -struct SeNBModificationRequest_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 11; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(id_SeNB_UE_X2AP_ID); type=2;} - void select_id_Cause() { set(id_Cause); type=3;} - void select_id_SCGChangeIndication() { set(id_SCGChangeIndication); type=4;} - void select_id_ServingPLMN() { set(id_ServingPLMN); type=5;} - void select_id_UE_ContextInformationSeNBModReq() { set(id_UE_ContextInformationSeNBModReq); type=6;} - void select_id_MeNBtoSeNBContainer() { set(id_MeNBtoSeNBContainer); type=7;} - void select_id_CSGMembershipStatus() { set(id_CSGMembershipStatus); type=8;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=9;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(id_SeNB_UE_X2AP_ID_Extension); type=10;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SeNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_Cause)) { type = 3; return true; } - else if(equal(id_SCGChangeIndication)) { type = 4; return true; } - else if(equal(id_ServingPLMN)) { type = 5; return true; } - else if(equal(id_UE_ContextInformationSeNBModReq)) { type = 6; return true; } - else if(equal(id_MeNBtoSeNBContainer)) { type = 7; return true; } - else if(equal(id_CSGMembershipStatus)) { type = 8; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 9; return true; } - else if(equal(id_SeNB_UE_X2AP_ID_Extension)) { type = 10; return true; } - else { type = 11; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SeNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_SCGChangeIndication);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_ServingPLMN);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_UE_ContextInformationSeNBModReq);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(id_MeNBtoSeNBContainer);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(id_CSGMembershipStatus);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(id_SeNB_UE_X2AP_ID_Extension);} return false; - case 11: type = 11; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 11; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(reject); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(reject); type=2;} - void select_id_Cause() { set(ignore); type=3;} - void select_id_SCGChangeIndication() { set(ignore); type=4;} - void select_id_ServingPLMN() { set(ignore); type=5;} - void select_id_UE_ContextInformationSeNBModReq() { set(reject); type=6;} - void select_id_MeNBtoSeNBContainer() { set(ignore); type=7;} - void select_id_CSGMembershipStatus() { set(reject); type=8;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(reject); type=9;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(reject); type=10;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else if(equal(reject)) { type = 6; return true; } - else if(equal(ignore)) { type = 7; return true; } - else if(equal(reject)) { type = 8; return true; } - else if(equal(reject)) { type = 9; return true; } - else if(equal(reject)) { type = 10; return true; } - else { type = 11; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(reject);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(ignore);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(reject);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(reject);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(reject);} return false; - case 11: type = 11; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - UE_X2AP_ID& select_id_SeNB_UE_X2AP_ID() { return set(2); } - UE_X2AP_ID const* get_id_SeNB_UE_X2AP_ID() const { return get(2); } - Cause& select_id_Cause() { return set(3); } - Cause const* get_id_Cause() const { return get(3); } - SCGChangeIndication& select_id_SCGChangeIndication() { return set(4); } - SCGChangeIndication const* get_id_SCGChangeIndication() const { return get(4); } - PLMN_Identity& select_id_ServingPLMN() { return set(5); } - PLMN_Identity const* get_id_ServingPLMN() const { return get(5); } - UE_ContextInformationSeNBModReq& select_id_UE_ContextInformationSeNBModReq() { return set(6); } - UE_ContextInformationSeNBModReq const* get_id_UE_ContextInformationSeNBModReq() const { return get(6); } - MeNBtoSeNBContainer& select_id_MeNBtoSeNBContainer() { return set(7); } - MeNBtoSeNBContainer const* get_id_MeNBtoSeNBContainer() const { return get(7); } - CSGMembershipStatus& select_id_CSGMembershipStatus() { return set(8); } - CSGMembershipStatus const* get_id_CSGMembershipStatus() const { return get(8); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(9); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(9); } - UE_X2AP_ID_Extension& select_id_SeNB_UE_X2AP_ID_Extension() { return set(10); } - UE_X2AP_ID_Extension const* get_id_SeNB_UE_X2AP_ID_Extension() const { return get(10); } - bool is_unknown() const { return type == 11; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - case 7: var.destroy(); break; - case 8: var.destroy(); break; - case 9: var.destroy(); break; - case 10: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - v.template operator()(7); - v.template operator()(8); - v.template operator()(9); - v.template operator()(10); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SeNB_UE_X2AP_ID()); return true; - case 3: v(select_id_Cause()); return true; - case 4: v(select_id_SCGChangeIndication()); return true; - case 5: v(select_id_ServingPLMN()); return true; - case 6: v(select_id_UE_ContextInformationSeNBModReq()); return true; - case 7: v(select_id_MeNBtoSeNBContainer()); return true; - case 8: v(select_id_CSGMembershipStatus()); return true; - case 9: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 10: v(select_id_SeNB_UE_X2AP_ID_Extension()); return true; - case 11: if(type != 11) {clear(); asn::base::set();} type = 11; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - case 7: v(var.as()); return true; - case 8: v(var.as()); return true; - case 9: v(var.as()); return true; - case 10: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CSGMembershipStatus)]; - char dummy2[sizeof(Cause)]; - char dummy3[sizeof(MeNBtoSeNBContainer)]; - char dummy4[sizeof(PLMN_Identity)]; - char dummy5[sizeof(SCGChangeIndication)]; - char dummy6[sizeof(UE_ContextInformationSeNBModReq)]; - char dummy7[sizeof(UE_X2AP_ID)]; - char dummy8[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 11; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_Cause() { set(mandatory); type=3;} - void select_id_SCGChangeIndication() { set(optional); type=4;} - void select_id_ServingPLMN() { set(optional); type=5;} - void select_id_UE_ContextInformationSeNBModReq() { set(optional); type=6;} - void select_id_MeNBtoSeNBContainer() { set(optional); type=7;} - void select_id_CSGMembershipStatus() { set(optional); type=8;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=9;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(optional); type=10;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else if(equal(optional)) { type = 7; return true; } - else if(equal(optional)) { type = 8; return true; } - else if(equal(optional)) { type = 9; return true; } - else if(equal(optional)) { type = 10; return true; } - else { type = 11; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(optional);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(optional);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(optional);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(optional);} return false; - case 11: type = 11; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SeNBModificationRequest ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ SeNBModificationRequest-IEs}}, - ... -} -*/ - -struct SeNBModificationRequest : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SeNBModificationRequest";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SeNBModificationRequestAcknowledge-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-E-RABs-Admitted-ToBeAdded-ModAckList CRITICALITY ignore TYPE E-RABs-Admitted-ToBeAdded-ModAckList PRESENCE optional}| - { ID id-E-RABs-Admitted-ToBeModified-ModAckList CRITICALITY ignore TYPE E-RABs-Admitted-ToBeModified-ModAckList PRESENCE optional}| - { ID id-E-RABs-Admitted-ToBeReleased-ModAckList CRITICALITY ignore TYPE E-RABs-Admitted-ToBeReleased-ModAckList PRESENCE optional}| - { ID id-E-RABs-NotAdmitted-List CRITICALITY ignore TYPE E-RAB-List PRESENCE optional}| - { ID id-SeNBtoMeNBContainer CRITICALITY ignore TYPE SeNBtoMeNBContainer PRESENCE optional}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}, - ... -} -*/ - -struct SeNBModificationRequestAcknowledge_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 11; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(id_SeNB_UE_X2AP_ID); type=2;} - void select_id_E_RABs_Admitted_ToBeAdded_ModAckList() { set(id_E_RABs_Admitted_ToBeAdded_ModAckList); type=3;} - void select_id_E_RABs_Admitted_ToBeModified_ModAckList() { set(id_E_RABs_Admitted_ToBeModified_ModAckList); type=4;} - void select_id_E_RABs_Admitted_ToBeReleased_ModAckList() { set(id_E_RABs_Admitted_ToBeReleased_ModAckList); type=5;} - void select_id_E_RABs_NotAdmitted_List() { set(id_E_RABs_NotAdmitted_List); type=6;} - void select_id_SeNBtoMeNBContainer() { set(id_SeNBtoMeNBContainer); type=7;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=8;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=9;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(id_SeNB_UE_X2AP_ID_Extension); type=10;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SeNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_E_RABs_Admitted_ToBeAdded_ModAckList)) { type = 3; return true; } - else if(equal(id_E_RABs_Admitted_ToBeModified_ModAckList)) { type = 4; return true; } - else if(equal(id_E_RABs_Admitted_ToBeReleased_ModAckList)) { type = 5; return true; } - else if(equal(id_E_RABs_NotAdmitted_List)) { type = 6; return true; } - else if(equal(id_SeNBtoMeNBContainer)) { type = 7; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 8; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 9; return true; } - else if(equal(id_SeNB_UE_X2AP_ID_Extension)) { type = 10; return true; } - else { type = 11; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SeNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_E_RABs_Admitted_ToBeAdded_ModAckList);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_E_RABs_Admitted_ToBeModified_ModAckList);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_E_RABs_Admitted_ToBeReleased_ModAckList);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_E_RABs_NotAdmitted_List);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(id_SeNBtoMeNBContainer);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(id_SeNB_UE_X2AP_ID_Extension);} return false; - case 11: type = 11; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 11; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(ignore); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(ignore); type=2;} - void select_id_E_RABs_Admitted_ToBeAdded_ModAckList() { set(ignore); type=3;} - void select_id_E_RABs_Admitted_ToBeModified_ModAckList() { set(ignore); type=4;} - void select_id_E_RABs_Admitted_ToBeReleased_ModAckList() { set(ignore); type=5;} - void select_id_E_RABs_NotAdmitted_List() { set(ignore); type=6;} - void select_id_SeNBtoMeNBContainer() { set(ignore); type=7;} - void select_id_CriticalityDiagnostics() { set(ignore); type=8;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(ignore); type=9;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(ignore); type=10;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else if(equal(ignore)) { type = 6; return true; } - else if(equal(ignore)) { type = 7; return true; } - else if(equal(ignore)) { type = 8; return true; } - else if(equal(ignore)) { type = 9; return true; } - else if(equal(ignore)) { type = 10; return true; } - else { type = 11; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(ignore);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(ignore);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(ignore);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(ignore);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(ignore);} return false; - case 11: type = 11; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - UE_X2AP_ID& select_id_SeNB_UE_X2AP_ID() { return set(2); } - UE_X2AP_ID const* get_id_SeNB_UE_X2AP_ID() const { return get(2); } - E_RABs_Admitted_ToBeAdded_ModAckList& select_id_E_RABs_Admitted_ToBeAdded_ModAckList() { return set(3); } - E_RABs_Admitted_ToBeAdded_ModAckList const* get_id_E_RABs_Admitted_ToBeAdded_ModAckList() const { return get(3); } - E_RABs_Admitted_ToBeModified_ModAckList& select_id_E_RABs_Admitted_ToBeModified_ModAckList() { return set(4); } - E_RABs_Admitted_ToBeModified_ModAckList const* get_id_E_RABs_Admitted_ToBeModified_ModAckList() const { return get(4); } - E_RABs_Admitted_ToBeReleased_ModAckList& select_id_E_RABs_Admitted_ToBeReleased_ModAckList() { return set(5); } - E_RABs_Admitted_ToBeReleased_ModAckList const* get_id_E_RABs_Admitted_ToBeReleased_ModAckList() const { return get(5); } - E_RAB_List& select_id_E_RABs_NotAdmitted_List() { return set(6); } - E_RAB_List const* get_id_E_RABs_NotAdmitted_List() const { return get(6); } - SeNBtoMeNBContainer& select_id_SeNBtoMeNBContainer() { return set(7); } - SeNBtoMeNBContainer const* get_id_SeNBtoMeNBContainer() const { return get(7); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(8); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(8); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(9); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(9); } - UE_X2AP_ID_Extension& select_id_SeNB_UE_X2AP_ID_Extension() { return set(10); } - UE_X2AP_ID_Extension const* get_id_SeNB_UE_X2AP_ID_Extension() const { return get(10); } - bool is_unknown() const { return type == 11; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - case 7: var.destroy(); break; - case 8: var.destroy(); break; - case 9: var.destroy(); break; - case 10: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - v.template operator()(7); - v.template operator()(8); - v.template operator()(9); - v.template operator()(10); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SeNB_UE_X2AP_ID()); return true; - case 3: v(select_id_E_RABs_Admitted_ToBeAdded_ModAckList()); return true; - case 4: v(select_id_E_RABs_Admitted_ToBeModified_ModAckList()); return true; - case 5: v(select_id_E_RABs_Admitted_ToBeReleased_ModAckList()); return true; - case 6: v(select_id_E_RABs_NotAdmitted_List()); return true; - case 7: v(select_id_SeNBtoMeNBContainer()); return true; - case 8: v(select_id_CriticalityDiagnostics()); return true; - case 9: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 10: v(select_id_SeNB_UE_X2AP_ID_Extension()); return true; - case 11: if(type != 11) {clear(); asn::base::set();} type = 11; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - case 7: v(var.as()); return true; - case 8: v(var.as()); return true; - case 9: v(var.as()); return true; - case 10: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CriticalityDiagnostics)]; - char dummy2[sizeof(E_RAB_List)]; - char dummy3[sizeof(E_RABs_Admitted_ToBeAdded_ModAckList)]; - char dummy4[sizeof(E_RABs_Admitted_ToBeModified_ModAckList)]; - char dummy5[sizeof(E_RABs_Admitted_ToBeReleased_ModAckList)]; - char dummy6[sizeof(SeNBtoMeNBContainer)]; - char dummy7[sizeof(UE_X2AP_ID)]; - char dummy8[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 11; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_E_RABs_Admitted_ToBeAdded_ModAckList() { set(optional); type=3;} - void select_id_E_RABs_Admitted_ToBeModified_ModAckList() { set(optional); type=4;} - void select_id_E_RABs_Admitted_ToBeReleased_ModAckList() { set(optional); type=5;} - void select_id_E_RABs_NotAdmitted_List() { set(optional); type=6;} - void select_id_SeNBtoMeNBContainer() { set(optional); type=7;} - void select_id_CriticalityDiagnostics() { set(optional); type=8;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=9;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(optional); type=10;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else if(equal(optional)) { type = 7; return true; } - else if(equal(optional)) { type = 8; return true; } - else if(equal(optional)) { type = 9; return true; } - else if(equal(optional)) { type = 10; return true; } - else { type = 11; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(optional);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(optional);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(optional);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(optional);} return false; - case 11: type = 11; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SeNBModificationRequestAcknowledge ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SeNBModificationRequestAcknowledge-IEs}}, - ... -} -*/ - -struct SeNBModificationRequestAcknowledge : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SeNBModificationRequestAcknowledge";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SeNBModificationRequestReject-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}, - ... -} -*/ - -struct SeNBModificationRequestReject_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(id_SeNB_UE_X2AP_ID); type=2;} - void select_id_Cause() { set(id_Cause); type=3;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=5;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(id_SeNB_UE_X2AP_ID_Extension); type=6;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SeNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_Cause)) { type = 3; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 4; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 5; return true; } - else if(equal(id_SeNB_UE_X2AP_ID_Extension)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SeNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_SeNB_UE_X2AP_ID_Extension);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(ignore); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(ignore); type=2;} - void select_id_Cause() { set(ignore); type=3;} - void select_id_CriticalityDiagnostics() { set(ignore); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(ignore); type=5;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(ignore); type=6;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else if(equal(ignore)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(ignore);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - UE_X2AP_ID& select_id_SeNB_UE_X2AP_ID() { return set(2); } - UE_X2AP_ID const* get_id_SeNB_UE_X2AP_ID() const { return get(2); } - Cause& select_id_Cause() { return set(3); } - Cause const* get_id_Cause() const { return get(3); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(4); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(4); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(5); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(5); } - UE_X2AP_ID_Extension& select_id_SeNB_UE_X2AP_ID_Extension() { return set(6); } - UE_X2AP_ID_Extension const* get_id_SeNB_UE_X2AP_ID_Extension() const { return get(6); } - bool is_unknown() const { return type == 7; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SeNB_UE_X2AP_ID()); return true; - case 3: v(select_id_Cause()); return true; - case 4: v(select_id_CriticalityDiagnostics()); return true; - case 5: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 6: v(select_id_SeNB_UE_X2AP_ID_Extension()); return true; - case 7: if(type != 7) {clear(); asn::base::set();} type = 7; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(CriticalityDiagnostics)]; - char dummy3[sizeof(UE_X2AP_ID)]; - char dummy4[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_Cause() { set(mandatory); type=3;} - void select_id_CriticalityDiagnostics() { set(optional); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=5;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(optional); type=6;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SeNBModificationRequestReject ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SeNBModificationRequestReject-IEs}}, - ... -} -*/ - -struct SeNBModificationRequestReject : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SeNBModificationRequestReject";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SeNBModificationRequired-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| - { ID id-SCGChangeIndication CRITICALITY ignore TYPE SCGChangeIndication PRESENCE optional}| - { ID id-E-RABs-ToBeReleased-ModReqd CRITICALITY ignore TYPE E-RABs-ToBeReleased-ModReqd PRESENCE optional}| - { ID id-SeNBtoMeNBContainer CRITICALITY ignore TYPE SeNBtoMeNBContainer PRESENCE optional}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}, - ... -} -*/ - -struct SeNBModificationRequired_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 9; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(id_SeNB_UE_X2AP_ID); type=2;} - void select_id_Cause() { set(id_Cause); type=3;} - void select_id_SCGChangeIndication() { set(id_SCGChangeIndication); type=4;} - void select_id_E_RABs_ToBeReleased_ModReqd() { set(id_E_RABs_ToBeReleased_ModReqd); type=5;} - void select_id_SeNBtoMeNBContainer() { set(id_SeNBtoMeNBContainer); type=6;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=7;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(id_SeNB_UE_X2AP_ID_Extension); type=8;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SeNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_Cause)) { type = 3; return true; } - else if(equal(id_SCGChangeIndication)) { type = 4; return true; } - else if(equal(id_E_RABs_ToBeReleased_ModReqd)) { type = 5; return true; } - else if(equal(id_SeNBtoMeNBContainer)) { type = 6; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 7; return true; } - else if(equal(id_SeNB_UE_X2AP_ID_Extension)) { type = 8; return true; } - else { type = 9; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SeNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_SCGChangeIndication);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_E_RABs_ToBeReleased_ModReqd);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_SeNBtoMeNBContainer);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(id_SeNB_UE_X2AP_ID_Extension);} return false; - case 9: type = 9; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 9; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(reject); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(reject); type=2;} - void select_id_Cause() { set(ignore); type=3;} - void select_id_SCGChangeIndication() { set(ignore); type=4;} - void select_id_E_RABs_ToBeReleased_ModReqd() { set(ignore); type=5;} - void select_id_SeNBtoMeNBContainer() { set(ignore); type=6;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(reject); type=7;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(reject); type=8;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else if(equal(ignore)) { type = 6; return true; } - else if(equal(reject)) { type = 7; return true; } - else if(equal(reject)) { type = 8; return true; } - else { type = 9; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(ignore);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(reject);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(reject);} return false; - case 9: type = 9; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - UE_X2AP_ID& select_id_SeNB_UE_X2AP_ID() { return set(2); } - UE_X2AP_ID const* get_id_SeNB_UE_X2AP_ID() const { return get(2); } - Cause& select_id_Cause() { return set(3); } - Cause const* get_id_Cause() const { return get(3); } - SCGChangeIndication& select_id_SCGChangeIndication() { return set(4); } - SCGChangeIndication const* get_id_SCGChangeIndication() const { return get(4); } - E_RABs_ToBeReleased_ModReqd& select_id_E_RABs_ToBeReleased_ModReqd() { return set(5); } - E_RABs_ToBeReleased_ModReqd const* get_id_E_RABs_ToBeReleased_ModReqd() const { return get(5); } - SeNBtoMeNBContainer& select_id_SeNBtoMeNBContainer() { return set(6); } - SeNBtoMeNBContainer const* get_id_SeNBtoMeNBContainer() const { return get(6); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(7); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(7); } - UE_X2AP_ID_Extension& select_id_SeNB_UE_X2AP_ID_Extension() { return set(8); } - UE_X2AP_ID_Extension const* get_id_SeNB_UE_X2AP_ID_Extension() const { return get(8); } - bool is_unknown() const { return type == 9; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - case 7: var.destroy(); break; - case 8: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - v.template operator()(7); - v.template operator()(8); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SeNB_UE_X2AP_ID()); return true; - case 3: v(select_id_Cause()); return true; - case 4: v(select_id_SCGChangeIndication()); return true; - case 5: v(select_id_E_RABs_ToBeReleased_ModReqd()); return true; - case 6: v(select_id_SeNBtoMeNBContainer()); return true; - case 7: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 8: v(select_id_SeNB_UE_X2AP_ID_Extension()); return true; - case 9: if(type != 9) {clear(); asn::base::set();} type = 9; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - case 7: v(var.as()); return true; - case 8: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(E_RABs_ToBeReleased_ModReqd)]; - char dummy3[sizeof(SCGChangeIndication)]; - char dummy4[sizeof(SeNBtoMeNBContainer)]; - char dummy5[sizeof(UE_X2AP_ID)]; - char dummy6[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 9; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_Cause() { set(mandatory); type=3;} - void select_id_SCGChangeIndication() { set(optional); type=4;} - void select_id_E_RABs_ToBeReleased_ModReqd() { set(optional); type=5;} - void select_id_SeNBtoMeNBContainer() { set(optional); type=6;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=7;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(optional); type=8;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else if(equal(optional)) { type = 7; return true; } - else if(equal(optional)) { type = 8; return true; } - else { type = 9; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(optional);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(optional);} return false; - case 9: type = 9; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SeNBModificationRequired ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SeNBModificationRequired-IEs}}, - ... -} -*/ - -struct SeNBModificationRequired : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SeNBModificationRequired";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SeNBReconfigurationComplete-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-ResponseInformationSeNBReconfComp CRITICALITY ignore TYPE ResponseInformationSeNBReconfComp PRESENCE mandatory}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}, - ... -} -*/ - -struct SeNBReconfigurationComplete_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(id_SeNB_UE_X2AP_ID); type=2;} - void select_id_ResponseInformationSeNBReconfComp() { set(id_ResponseInformationSeNBReconfComp); type=3;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=4;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(id_SeNB_UE_X2AP_ID_Extension); type=5;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SeNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_ResponseInformationSeNBReconfComp)) { type = 3; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 4; return true; } - else if(equal(id_SeNB_UE_X2AP_ID_Extension)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SeNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_ResponseInformationSeNBReconfComp);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_SeNB_UE_X2AP_ID_Extension);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(reject); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(reject); type=2;} - void select_id_ResponseInformationSeNBReconfComp() { set(ignore); type=3;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(reject); type=4;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(reject); type=5;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(reject)) { type = 4; return true; } - else if(equal(reject)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(reject);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(reject);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - UE_X2AP_ID& select_id_SeNB_UE_X2AP_ID() { return set(2); } - UE_X2AP_ID const* get_id_SeNB_UE_X2AP_ID() const { return get(2); } - ResponseInformationSeNBReconfComp& select_id_ResponseInformationSeNBReconfComp() { return set(3); } - ResponseInformationSeNBReconfComp const* get_id_ResponseInformationSeNBReconfComp() const { return get(3); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(4); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(4); } - UE_X2AP_ID_Extension& select_id_SeNB_UE_X2AP_ID_Extension() { return set(5); } - UE_X2AP_ID_Extension const* get_id_SeNB_UE_X2AP_ID_Extension() const { return get(5); } - bool is_unknown() const { return type == 6; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SeNB_UE_X2AP_ID()); return true; - case 3: v(select_id_ResponseInformationSeNBReconfComp()); return true; - case 4: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 5: v(select_id_SeNB_UE_X2AP_ID_Extension()); return true; - case 6: if(type != 6) {clear(); asn::base::set();} type = 6; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(ResponseInformationSeNBReconfComp)]; - char dummy2[sizeof(UE_X2AP_ID)]; - char dummy3[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_ResponseInformationSeNBReconfComp() { set(mandatory); type=3;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=4;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(optional); type=5;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SeNBReconfigurationComplete ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SeNBReconfigurationComplete-IEs}}, - ... -} -*/ - -struct SeNBReconfigurationComplete : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SeNBReconfigurationComplete";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SeNBReleaseConfirm-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-E-RABs-ToBeReleased-List-RelConf CRITICALITY ignore TYPE E-RABs-ToBeReleased-List-RelConf PRESENCE optional}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}, - ... -} -*/ - -struct SeNBReleaseConfirm_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(id_SeNB_UE_X2AP_ID); type=2;} - void select_id_E_RABs_ToBeReleased_List_RelConf() { set(id_E_RABs_ToBeReleased_List_RelConf); type=3;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=5;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(id_SeNB_UE_X2AP_ID_Extension); type=6;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SeNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_E_RABs_ToBeReleased_List_RelConf)) { type = 3; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 4; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 5; return true; } - else if(equal(id_SeNB_UE_X2AP_ID_Extension)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SeNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_E_RABs_ToBeReleased_List_RelConf);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_SeNB_UE_X2AP_ID_Extension);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(ignore); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(ignore); type=2;} - void select_id_E_RABs_ToBeReleased_List_RelConf() { set(ignore); type=3;} - void select_id_CriticalityDiagnostics() { set(ignore); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(ignore); type=5;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(ignore); type=6;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else if(equal(ignore)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(ignore);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - UE_X2AP_ID& select_id_SeNB_UE_X2AP_ID() { return set(2); } - UE_X2AP_ID const* get_id_SeNB_UE_X2AP_ID() const { return get(2); } - E_RABs_ToBeReleased_List_RelConf& select_id_E_RABs_ToBeReleased_List_RelConf() { return set(3); } - E_RABs_ToBeReleased_List_RelConf const* get_id_E_RABs_ToBeReleased_List_RelConf() const { return get(3); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(4); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(4); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(5); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(5); } - UE_X2AP_ID_Extension& select_id_SeNB_UE_X2AP_ID_Extension() { return set(6); } - UE_X2AP_ID_Extension const* get_id_SeNB_UE_X2AP_ID_Extension() const { return get(6); } - bool is_unknown() const { return type == 7; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SeNB_UE_X2AP_ID()); return true; - case 3: v(select_id_E_RABs_ToBeReleased_List_RelConf()); return true; - case 4: v(select_id_CriticalityDiagnostics()); return true; - case 5: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 6: v(select_id_SeNB_UE_X2AP_ID_Extension()); return true; - case 7: if(type != 7) {clear(); asn::base::set();} type = 7; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CriticalityDiagnostics)]; - char dummy2[sizeof(E_RABs_ToBeReleased_List_RelConf)]; - char dummy3[sizeof(UE_X2AP_ID)]; - char dummy4[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_E_RABs_ToBeReleased_List_RelConf() { set(optional); type=3;} - void select_id_CriticalityDiagnostics() { set(optional); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=5;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(optional); type=6;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SeNBReleaseConfirm ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SeNBReleaseConfirm-IEs}}, - ... -} -*/ - -struct SeNBReleaseConfirm : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SeNBReleaseConfirm";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SeNBReleaseRequest-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE optional}| - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE optional}| - { ID id-E-RABs-ToBeReleased-List-RelReq CRITICALITY ignore TYPE E-RABs-ToBeReleased-List-RelReq PRESENCE optional}| - { ID id-UE-ContextKeptIndicator CRITICALITY ignore TYPE UE-ContextKeptIndicator PRESENCE optional}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-MakeBeforeBreakIndicator CRITICALITY ignore TYPE MakeBeforeBreakIndicator PRESENCE optional}, - ... -} -*/ - -struct SeNBReleaseRequest_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 9; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(id_SeNB_UE_X2AP_ID); type=2;} - void select_id_Cause() { set(id_Cause); type=3;} - void select_id_E_RABs_ToBeReleased_List_RelReq() { set(id_E_RABs_ToBeReleased_List_RelReq); type=4;} - void select_id_UE_ContextKeptIndicator() { set(id_UE_ContextKeptIndicator); type=5;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=6;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(id_SeNB_UE_X2AP_ID_Extension); type=7;} - void select_id_MakeBeforeBreakIndicator() { set(id_MakeBeforeBreakIndicator); type=8;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SeNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_Cause)) { type = 3; return true; } - else if(equal(id_E_RABs_ToBeReleased_List_RelReq)) { type = 4; return true; } - else if(equal(id_UE_ContextKeptIndicator)) { type = 5; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 6; return true; } - else if(equal(id_SeNB_UE_X2AP_ID_Extension)) { type = 7; return true; } - else if(equal(id_MakeBeforeBreakIndicator)) { type = 8; return true; } - else { type = 9; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SeNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_E_RABs_ToBeReleased_List_RelReq);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_UE_ContextKeptIndicator);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(id_SeNB_UE_X2AP_ID_Extension);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(id_MakeBeforeBreakIndicator);} return false; - case 9: type = 9; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 9; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(reject); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(reject); type=2;} - void select_id_Cause() { set(ignore); type=3;} - void select_id_E_RABs_ToBeReleased_List_RelReq() { set(ignore); type=4;} - void select_id_UE_ContextKeptIndicator() { set(ignore); type=5;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(reject); type=6;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(reject); type=7;} - void select_id_MakeBeforeBreakIndicator() { set(ignore); type=8;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else if(equal(reject)) { type = 6; return true; } - else if(equal(reject)) { type = 7; return true; } - else if(equal(ignore)) { type = 8; return true; } - else { type = 9; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(reject);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(reject);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(ignore);} return false; - case 9: type = 9; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - UE_X2AP_ID& select_id_SeNB_UE_X2AP_ID() { return set(2); } - UE_X2AP_ID const* get_id_SeNB_UE_X2AP_ID() const { return get(2); } - Cause& select_id_Cause() { return set(3); } - Cause const* get_id_Cause() const { return get(3); } - E_RABs_ToBeReleased_List_RelReq& select_id_E_RABs_ToBeReleased_List_RelReq() { return set(4); } - E_RABs_ToBeReleased_List_RelReq const* get_id_E_RABs_ToBeReleased_List_RelReq() const { return get(4); } - UE_ContextKeptIndicator& select_id_UE_ContextKeptIndicator() { return set(5); } - UE_ContextKeptIndicator const* get_id_UE_ContextKeptIndicator() const { return get(5); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(6); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(6); } - UE_X2AP_ID_Extension& select_id_SeNB_UE_X2AP_ID_Extension() { return set(7); } - UE_X2AP_ID_Extension const* get_id_SeNB_UE_X2AP_ID_Extension() const { return get(7); } - MakeBeforeBreakIndicator& select_id_MakeBeforeBreakIndicator() { return set(8); } - MakeBeforeBreakIndicator const* get_id_MakeBeforeBreakIndicator() const { return get(8); } - bool is_unknown() const { return type == 9; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - case 7: var.destroy(); break; - case 8: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - v.template operator()(7); - v.template operator()(8); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SeNB_UE_X2AP_ID()); return true; - case 3: v(select_id_Cause()); return true; - case 4: v(select_id_E_RABs_ToBeReleased_List_RelReq()); return true; - case 5: v(select_id_UE_ContextKeptIndicator()); return true; - case 6: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 7: v(select_id_SeNB_UE_X2AP_ID_Extension()); return true; - case 8: v(select_id_MakeBeforeBreakIndicator()); return true; - case 9: if(type != 9) {clear(); asn::base::set();} type = 9; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - case 7: v(var.as()); return true; - case 8: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(E_RABs_ToBeReleased_List_RelReq)]; - char dummy3[sizeof(MakeBeforeBreakIndicator)]; - char dummy4[sizeof(UE_ContextKeptIndicator)]; - char dummy5[sizeof(UE_X2AP_ID)]; - char dummy6[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 9; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(optional); type=2;} - void select_id_Cause() { set(optional); type=3;} - void select_id_E_RABs_ToBeReleased_List_RelReq() { set(optional); type=4;} - void select_id_UE_ContextKeptIndicator() { set(optional); type=5;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=6;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(optional); type=7;} - void select_id_MakeBeforeBreakIndicator() { set(optional); type=8;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else if(equal(optional)) { type = 7; return true; } - else if(equal(optional)) { type = 8; return true; } - else { type = 9; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(optional);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(optional);} return false; - case 9: type = 9; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SeNBReleaseRequest ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SeNBReleaseRequest-IEs}}, - ... -} -*/ - -struct SeNBReleaseRequest : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SeNBReleaseRequest";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SeNBReleaseRequired-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}, - ... -} -*/ - -struct SeNBReleaseRequired_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(id_SeNB_UE_X2AP_ID); type=2;} - void select_id_Cause() { set(id_Cause); type=3;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=4;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(id_SeNB_UE_X2AP_ID_Extension); type=5;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SeNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_Cause)) { type = 3; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 4; return true; } - else if(equal(id_SeNB_UE_X2AP_ID_Extension)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SeNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_SeNB_UE_X2AP_ID_Extension);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(reject); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(reject); type=2;} - void select_id_Cause() { set(ignore); type=3;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(reject); type=4;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(reject); type=5;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(reject)) { type = 4; return true; } - else if(equal(reject)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(reject);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(reject);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - UE_X2AP_ID& select_id_SeNB_UE_X2AP_ID() { return set(2); } - UE_X2AP_ID const* get_id_SeNB_UE_X2AP_ID() const { return get(2); } - Cause& select_id_Cause() { return set(3); } - Cause const* get_id_Cause() const { return get(3); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(4); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(4); } - UE_X2AP_ID_Extension& select_id_SeNB_UE_X2AP_ID_Extension() { return set(5); } - UE_X2AP_ID_Extension const* get_id_SeNB_UE_X2AP_ID_Extension() const { return get(5); } - bool is_unknown() const { return type == 6; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SeNB_UE_X2AP_ID()); return true; - case 3: v(select_id_Cause()); return true; - case 4: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 5: v(select_id_SeNB_UE_X2AP_ID_Extension()); return true; - case 6: if(type != 6) {clear(); asn::base::set();} type = 6; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(UE_X2AP_ID)]; - char dummy3[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_Cause() { set(mandatory); type=3;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=4;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(optional); type=5;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SeNBReleaseRequired ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SeNBReleaseRequired-IEs}}, - ... -} -*/ - -struct SeNBReleaseRequired : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SeNBReleaseRequired";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SecondaryRATDataUsageReport-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SgNB-UE-X2AP-ID CRITICALITY reject TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}| - { ID id-SecondaryRATUsageReportList CRITICALITY reject TYPE SecondaryRATUsageReportList PRESENCE mandatory}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}, - ... -} -*/ - -struct SecondaryRATDataUsageReport_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(id_SgNB_UE_X2AP_ID); type=2;} - void select_id_SecondaryRATUsageReportList() { set(id_SecondaryRATUsageReportList); type=3;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=4;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SgNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_SecondaryRATUsageReportList)) { type = 3; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SgNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_SecondaryRATUsageReportList);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(reject); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(reject); type=2;} - void select_id_SecondaryRATUsageReportList() { set(reject); type=3;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(reject); type=4;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(reject)) { type = 3; return true; } - else if(equal(reject)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(reject);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(reject);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - SgNB_UE_X2AP_ID& select_id_SgNB_UE_X2AP_ID() { return set(2); } - SgNB_UE_X2AP_ID const* get_id_SgNB_UE_X2AP_ID() const { return get(2); } - SecondaryRATUsageReportList& select_id_SecondaryRATUsageReportList() { return set(3); } - SecondaryRATUsageReportList const* get_id_SecondaryRATUsageReportList() const { return get(3); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(4); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(4); } - bool is_unknown() const { return type == 5; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SgNB_UE_X2AP_ID()); return true; - case 3: v(select_id_SecondaryRATUsageReportList()); return true; - case 4: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 5: if(type != 5) {clear(); asn::base::set();} type = 5; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(SecondaryRATUsageReportList)]; - char dummy2[sizeof(SgNB_UE_X2AP_ID)]; - char dummy3[sizeof(UE_X2AP_ID)]; - char dummy4[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_SecondaryRATUsageReportList() { set(mandatory); type=3;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=4;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SecondaryRATDataUsageReport ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SecondaryRATDataUsageReport-IEs}}, - ... -} -*/ - -struct SecondaryRATDataUsageReport : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SecondaryRATDataUsageReport";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SgNBActivityNotification-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SgNB-UE-X2AP-ID CRITICALITY reject TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}| - { ID id-UEContextLevelUserPlaneActivity CRITICALITY ignore TYPE UserPlaneTrafficActivityReport PRESENCE optional}| - { ID id-ERABActivityNotifyItemList CRITICALITY ignore TYPE ERABActivityNotifyItemList PRESENCE optional}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}, - ... -} -*/ - -struct SgNBActivityNotification_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(id_SgNB_UE_X2AP_ID); type=2;} - void select_id_UEContextLevelUserPlaneActivity() { set(id_UEContextLevelUserPlaneActivity); type=3;} - void select_id_ERABActivityNotifyItemList() { set(id_ERABActivityNotifyItemList); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=5;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SgNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_UEContextLevelUserPlaneActivity)) { type = 3; return true; } - else if(equal(id_ERABActivityNotifyItemList)) { type = 4; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SgNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_UEContextLevelUserPlaneActivity);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_ERABActivityNotifyItemList);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(reject); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(reject); type=2;} - void select_id_UEContextLevelUserPlaneActivity() { set(ignore); type=3;} - void select_id_ERABActivityNotifyItemList() { set(ignore); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(reject); type=5;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(reject)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(reject);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - SgNB_UE_X2AP_ID& select_id_SgNB_UE_X2AP_ID() { return set(2); } - SgNB_UE_X2AP_ID const* get_id_SgNB_UE_X2AP_ID() const { return get(2); } - UserPlaneTrafficActivityReport& select_id_UEContextLevelUserPlaneActivity() { return set(3); } - UserPlaneTrafficActivityReport const* get_id_UEContextLevelUserPlaneActivity() const { return get(3); } - ERABActivityNotifyItemList& select_id_ERABActivityNotifyItemList() { return set(4); } - ERABActivityNotifyItemList const* get_id_ERABActivityNotifyItemList() const { return get(4); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(5); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(5); } - bool is_unknown() const { return type == 6; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SgNB_UE_X2AP_ID()); return true; - case 3: v(select_id_UEContextLevelUserPlaneActivity()); return true; - case 4: v(select_id_ERABActivityNotifyItemList()); return true; - case 5: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 6: if(type != 6) {clear(); asn::base::set();} type = 6; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(ERABActivityNotifyItemList)]; - char dummy2[sizeof(SgNB_UE_X2AP_ID)]; - char dummy3[sizeof(UE_X2AP_ID)]; - char dummy4[sizeof(UE_X2AP_ID_Extension)]; - char dummy5[sizeof(UserPlaneTrafficActivityReport)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_UEContextLevelUserPlaneActivity() { set(optional); type=3;} - void select_id_ERABActivityNotifyItemList() { set(optional); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=5;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SgNBActivityNotification ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SgNBActivityNotification-IEs}}, - ... -} -*/ - -struct SgNBActivityNotification : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SgNBActivityNotification";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SgNBAdditionRequest-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-NRUESecurityCapabilities CRITICALITY reject TYPE NRUESecurityCapabilities PRESENCE mandatory}| - { ID id-SgNBSecurityKey CRITICALITY reject TYPE SgNBSecurityKey PRESENCE mandatory}| - { ID id-SgNBUEAggregateMaximumBitRate CRITICALITY reject TYPE UEAggregateMaximumBitRate PRESENCE mandatory}| - { ID id-SelectedPLMN CRITICALITY ignore TYPE PLMN-Identity PRESENCE optional}| - { ID id-HandoverRestrictionList CRITICALITY ignore TYPE HandoverRestrictionList PRESENCE optional}| - { ID id-E-RABs-ToBeAdded-SgNBAddReqList CRITICALITY reject TYPE E-RABs-ToBeAdded-SgNBAddReqList PRESENCE mandatory}| - { ID id-MeNBtoSgNBContainer CRITICALITY reject TYPE MeNBtoSgNBContainer PRESENCE mandatory}| - { ID id-SgNB-UE-X2AP-ID CRITICALITY reject TYPE SgNB-UE-X2AP-ID PRESENCE optional}| - { ID id-ExpectedUEBehaviour CRITICALITY ignore TYPE ExpectedUEBehaviour PRESENCE optional}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-RequestedSplitSRBs CRITICALITY reject TYPE SplitSRBs PRESENCE optional}| - { ID id-MeNBResourceCoordinationInformation CRITICALITY ignore TYPE MeNBResourceCoordinationInformation PRESENCE optional}| - { ID id-SGNB-Addition-Trigger-Ind CRITICALITY reject TYPE SGNB-Addition-Trigger-Ind PRESENCE optional}| - { ID id-SubscriberProfileIDforRFP CRITICALITY ignore TYPE SubscriberProfileIDforRFP PRESENCE optional}| - { ID id-MeNBCell-ID CRITICALITY reject TYPE ECGI PRESENCE mandatory}, - ... -} -*/ - -struct SgNBAdditionRequest_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 17; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_NRUESecurityCapabilities() { set(id_NRUESecurityCapabilities); type=2;} - void select_id_SgNBSecurityKey() { set(id_SgNBSecurityKey); type=3;} - void select_id_SgNBUEAggregateMaximumBitRate() { set(id_SgNBUEAggregateMaximumBitRate); type=4;} - void select_id_SelectedPLMN() { set(id_SelectedPLMN); type=5;} - void select_id_HandoverRestrictionList() { set(id_HandoverRestrictionList); type=6;} - void select_id_E_RABs_ToBeAdded_SgNBAddReqList() { set(id_E_RABs_ToBeAdded_SgNBAddReqList); type=7;} - void select_id_MeNBtoSgNBContainer() { set(id_MeNBtoSgNBContainer); type=8;} - void select_id_SgNB_UE_X2AP_ID() { set(id_SgNB_UE_X2AP_ID); type=9;} - void select_id_ExpectedUEBehaviour() { set(id_ExpectedUEBehaviour); type=10;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=11;} - void select_id_RequestedSplitSRBs() { set(id_RequestedSplitSRBs); type=12;} - void select_id_MeNBResourceCoordinationInformation() { set(id_MeNBResourceCoordinationInformation); type=13;} - void select_id_SGNB_Addition_Trigger_Ind() { set(id_SGNB_Addition_Trigger_Ind); type=14;} - void select_id_SubscriberProfileIDforRFP() { set(id_SubscriberProfileIDforRFP); type=15;} - void select_id_MeNBCell_ID() { set(id_MeNBCell_ID); type=16;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_NRUESecurityCapabilities)) { type = 2; return true; } - else if(equal(id_SgNBSecurityKey)) { type = 3; return true; } - else if(equal(id_SgNBUEAggregateMaximumBitRate)) { type = 4; return true; } - else if(equal(id_SelectedPLMN)) { type = 5; return true; } - else if(equal(id_HandoverRestrictionList)) { type = 6; return true; } - else if(equal(id_E_RABs_ToBeAdded_SgNBAddReqList)) { type = 7; return true; } - else if(equal(id_MeNBtoSgNBContainer)) { type = 8; return true; } - else if(equal(id_SgNB_UE_X2AP_ID)) { type = 9; return true; } - else if(equal(id_ExpectedUEBehaviour)) { type = 10; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 11; return true; } - else if(equal(id_RequestedSplitSRBs)) { type = 12; return true; } - else if(equal(id_MeNBResourceCoordinationInformation)) { type = 13; return true; } - else if(equal(id_SGNB_Addition_Trigger_Ind)) { type = 14; return true; } - else if(equal(id_SubscriberProfileIDforRFP)) { type = 15; return true; } - else if(equal(id_MeNBCell_ID)) { type = 16; return true; } - else { type = 17; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_NRUESecurityCapabilities);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_SgNBSecurityKey);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_SgNBUEAggregateMaximumBitRate);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_SelectedPLMN);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_HandoverRestrictionList);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(id_E_RABs_ToBeAdded_SgNBAddReqList);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(id_MeNBtoSgNBContainer);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(id_SgNB_UE_X2AP_ID);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(id_ExpectedUEBehaviour);} return false; - case 11: type = 11; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 12: type = 12; if(v(ref_nested())) { return equal(id_RequestedSplitSRBs);} return false; - case 13: type = 13; if(v(ref_nested())) { return equal(id_MeNBResourceCoordinationInformation);} return false; - case 14: type = 14; if(v(ref_nested())) { return equal(id_SGNB_Addition_Trigger_Ind);} return false; - case 15: type = 15; if(v(ref_nested())) { return equal(id_SubscriberProfileIDforRFP);} return false; - case 16: type = 16; if(v(ref_nested())) { return equal(id_MeNBCell_ID);} return false; - case 17: type = 17; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 17; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(reject); type=1;} - void select_id_NRUESecurityCapabilities() { set(reject); type=2;} - void select_id_SgNBSecurityKey() { set(reject); type=3;} - void select_id_SgNBUEAggregateMaximumBitRate() { set(reject); type=4;} - void select_id_SelectedPLMN() { set(ignore); type=5;} - void select_id_HandoverRestrictionList() { set(ignore); type=6;} - void select_id_E_RABs_ToBeAdded_SgNBAddReqList() { set(reject); type=7;} - void select_id_MeNBtoSgNBContainer() { set(reject); type=8;} - void select_id_SgNB_UE_X2AP_ID() { set(reject); type=9;} - void select_id_ExpectedUEBehaviour() { set(ignore); type=10;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(reject); type=11;} - void select_id_RequestedSplitSRBs() { set(reject); type=12;} - void select_id_MeNBResourceCoordinationInformation() { set(ignore); type=13;} - void select_id_SGNB_Addition_Trigger_Ind() { set(reject); type=14;} - void select_id_SubscriberProfileIDforRFP() { set(ignore); type=15;} - void select_id_MeNBCell_ID() { set(reject); type=16;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(reject)) { type = 3; return true; } - else if(equal(reject)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else if(equal(ignore)) { type = 6; return true; } - else if(equal(reject)) { type = 7; return true; } - else if(equal(reject)) { type = 8; return true; } - else if(equal(reject)) { type = 9; return true; } - else if(equal(ignore)) { type = 10; return true; } - else if(equal(reject)) { type = 11; return true; } - else if(equal(reject)) { type = 12; return true; } - else if(equal(ignore)) { type = 13; return true; } - else if(equal(reject)) { type = 14; return true; } - else if(equal(ignore)) { type = 15; return true; } - else if(equal(reject)) { type = 16; return true; } - else { type = 17; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(reject);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(reject);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(ignore);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(reject);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(reject);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(reject);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(ignore);} return false; - case 11: type = 11; if(v(ref_nested())) { return equal(reject);} return false; - case 12: type = 12; if(v(ref_nested())) { return equal(reject);} return false; - case 13: type = 13; if(v(ref_nested())) { return equal(ignore);} return false; - case 14: type = 14; if(v(ref_nested())) { return equal(reject);} return false; - case 15: type = 15; if(v(ref_nested())) { return equal(ignore);} return false; - case 16: type = 16; if(v(ref_nested())) { return equal(reject);} return false; - case 17: type = 17; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - NRUESecurityCapabilities& select_id_NRUESecurityCapabilities() { return set(2); } - NRUESecurityCapabilities const* get_id_NRUESecurityCapabilities() const { return get(2); } - SgNBSecurityKey& select_id_SgNBSecurityKey() { return set(3); } - SgNBSecurityKey const* get_id_SgNBSecurityKey() const { return get(3); } - UEAggregateMaximumBitRate& select_id_SgNBUEAggregateMaximumBitRate() { return set(4); } - UEAggregateMaximumBitRate const* get_id_SgNBUEAggregateMaximumBitRate() const { return get(4); } - PLMN_Identity& select_id_SelectedPLMN() { return set(5); } - PLMN_Identity const* get_id_SelectedPLMN() const { return get(5); } - HandoverRestrictionList& select_id_HandoverRestrictionList() { return set(6); } - HandoverRestrictionList const* get_id_HandoverRestrictionList() const { return get(6); } - E_RABs_ToBeAdded_SgNBAddReqList& select_id_E_RABs_ToBeAdded_SgNBAddReqList() { return set(7); } - E_RABs_ToBeAdded_SgNBAddReqList const* get_id_E_RABs_ToBeAdded_SgNBAddReqList() const { return get(7); } - MeNBtoSgNBContainer& select_id_MeNBtoSgNBContainer() { return set(8); } - MeNBtoSgNBContainer const* get_id_MeNBtoSgNBContainer() const { return get(8); } - SgNB_UE_X2AP_ID& select_id_SgNB_UE_X2AP_ID() { return set(9); } - SgNB_UE_X2AP_ID const* get_id_SgNB_UE_X2AP_ID() const { return get(9); } - ExpectedUEBehaviour& select_id_ExpectedUEBehaviour() { return set(10); } - ExpectedUEBehaviour const* get_id_ExpectedUEBehaviour() const { return get(10); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(11); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(11); } - SplitSRBs& select_id_RequestedSplitSRBs() { return set(12); } - SplitSRBs const* get_id_RequestedSplitSRBs() const { return get(12); } - MeNBResourceCoordinationInformation& select_id_MeNBResourceCoordinationInformation() { return set(13); } - MeNBResourceCoordinationInformation const* get_id_MeNBResourceCoordinationInformation() const { return get(13); } - SGNB_Addition_Trigger_Ind& select_id_SGNB_Addition_Trigger_Ind() { return set(14); } - SGNB_Addition_Trigger_Ind const* get_id_SGNB_Addition_Trigger_Ind() const { return get(14); } - SubscriberProfileIDforRFP& select_id_SubscriberProfileIDforRFP() { return set(15); } - SubscriberProfileIDforRFP const* get_id_SubscriberProfileIDforRFP() const { return get(15); } - ECGI& select_id_MeNBCell_ID() { return set(16); } - ECGI const* get_id_MeNBCell_ID() const { return get(16); } - bool is_unknown() const { return type == 17; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - case 7: var.destroy(); break; - case 8: var.destroy(); break; - case 9: var.destroy(); break; - case 10: var.destroy(); break; - case 11: var.destroy(); break; - case 12: var.destroy(); break; - case 13: var.destroy(); break; - case 14: var.destroy(); break; - case 15: var.destroy(); break; - case 16: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - v.template operator()(7); - v.template operator()(8); - v.template operator()(9); - v.template operator()(10); - v.template operator()(11); - v.template operator()(12); - v.template operator()(13); - v.template operator()(14); - v.template operator()(15); - v.template operator()(16); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_NRUESecurityCapabilities()); return true; - case 3: v(select_id_SgNBSecurityKey()); return true; - case 4: v(select_id_SgNBUEAggregateMaximumBitRate()); return true; - case 5: v(select_id_SelectedPLMN()); return true; - case 6: v(select_id_HandoverRestrictionList()); return true; - case 7: v(select_id_E_RABs_ToBeAdded_SgNBAddReqList()); return true; - case 8: v(select_id_MeNBtoSgNBContainer()); return true; - case 9: v(select_id_SgNB_UE_X2AP_ID()); return true; - case 10: v(select_id_ExpectedUEBehaviour()); return true; - case 11: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 12: v(select_id_RequestedSplitSRBs()); return true; - case 13: v(select_id_MeNBResourceCoordinationInformation()); return true; - case 14: v(select_id_SGNB_Addition_Trigger_Ind()); return true; - case 15: v(select_id_SubscriberProfileIDforRFP()); return true; - case 16: v(select_id_MeNBCell_ID()); return true; - case 17: if(type != 17) {clear(); asn::base::set();} type = 17; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - case 7: v(var.as()); return true; - case 8: v(var.as()); return true; - case 9: v(var.as()); return true; - case 10: v(var.as()); return true; - case 11: v(var.as()); return true; - case 12: v(var.as()); return true; - case 13: v(var.as()); return true; - case 14: v(var.as()); return true; - case 15: v(var.as()); return true; - case 16: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(ECGI)]; - char dummy2[sizeof(E_RABs_ToBeAdded_SgNBAddReqList)]; - char dummy3[sizeof(ExpectedUEBehaviour)]; - char dummy4[sizeof(HandoverRestrictionList)]; - char dummy5[sizeof(MeNBResourceCoordinationInformation)]; - char dummy6[sizeof(MeNBtoSgNBContainer)]; - char dummy7[sizeof(NRUESecurityCapabilities)]; - char dummy8[sizeof(PLMN_Identity)]; - char dummy9[sizeof(SGNB_Addition_Trigger_Ind)]; - char dummy10[sizeof(SgNBSecurityKey)]; - char dummy11[sizeof(SgNB_UE_X2AP_ID)]; - char dummy12[sizeof(SplitSRBs)]; - char dummy13[sizeof(SubscriberProfileIDforRFP)]; - char dummy14[sizeof(UEAggregateMaximumBitRate)]; - char dummy15[sizeof(UE_X2AP_ID)]; - char dummy16[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 17; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_NRUESecurityCapabilities() { set(mandatory); type=2;} - void select_id_SgNBSecurityKey() { set(mandatory); type=3;} - void select_id_SgNBUEAggregateMaximumBitRate() { set(mandatory); type=4;} - void select_id_SelectedPLMN() { set(optional); type=5;} - void select_id_HandoverRestrictionList() { set(optional); type=6;} - void select_id_E_RABs_ToBeAdded_SgNBAddReqList() { set(mandatory); type=7;} - void select_id_MeNBtoSgNBContainer() { set(mandatory); type=8;} - void select_id_SgNB_UE_X2AP_ID() { set(optional); type=9;} - void select_id_ExpectedUEBehaviour() { set(optional); type=10;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=11;} - void select_id_RequestedSplitSRBs() { set(optional); type=12;} - void select_id_MeNBResourceCoordinationInformation() { set(optional); type=13;} - void select_id_SGNB_Addition_Trigger_Ind() { set(optional); type=14;} - void select_id_SubscriberProfileIDforRFP() { set(optional); type=15;} - void select_id_MeNBCell_ID() { set(mandatory); type=16;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(mandatory)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else if(equal(mandatory)) { type = 7; return true; } - else if(equal(mandatory)) { type = 8; return true; } - else if(equal(optional)) { type = 9; return true; } - else if(equal(optional)) { type = 10; return true; } - else if(equal(optional)) { type = 11; return true; } - else if(equal(optional)) { type = 12; return true; } - else if(equal(optional)) { type = 13; return true; } - else if(equal(optional)) { type = 14; return true; } - else if(equal(optional)) { type = 15; return true; } - else if(equal(mandatory)) { type = 16; return true; } - else { type = 17; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(mandatory);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(mandatory);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(mandatory);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(optional);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(optional);} return false; - case 11: type = 11; if(v(ref_nested())) { return equal(optional);} return false; - case 12: type = 12; if(v(ref_nested())) { return equal(optional);} return false; - case 13: type = 13; if(v(ref_nested())) { return equal(optional);} return false; - case 14: type = 14; if(v(ref_nested())) { return equal(optional);} return false; - case 15: type = 15; if(v(ref_nested())) { return equal(optional);} return false; - case 16: type = 16; if(v(ref_nested())) { return equal(mandatory);} return false; - case 17: type = 17; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SgNBAdditionRequest ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SgNBAdditionRequest-IEs}}, - ... -} -*/ - -struct SgNBAdditionRequest : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SgNBAdditionRequest";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SgNBAdditionRequestAcknowledge-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SgNB-UE-X2AP-ID CRITICALITY reject TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}| - { ID id-E-RABs-Admitted-ToBeAdded-SgNBAddReqAckList CRITICALITY ignore TYPE E-RABs-Admitted-ToBeAdded-SgNBAddReqAckList PRESENCE mandatory}| - { ID id-E-RABs-NotAdmitted-List CRITICALITY ignore TYPE E-RAB-List PRESENCE optional}| - { ID id-SgNBtoMeNBContainer CRITICALITY reject TYPE SgNBtoMeNBContainer PRESENCE mandatory}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-AdmittedSplitSRBs CRITICALITY reject TYPE SplitSRBs PRESENCE optional}| - { ID id-SgNBResourceCoordinationInformation CRITICALITY ignore TYPE SgNBResourceCoordinationInformation PRESENCE optional}| - { ID id-RRCConfigIndication CRITICALITY reject TYPE RRC-Config-Ind PRESENCE optional}, - ... -} -*/ - -struct SgNBAdditionRequestAcknowledge_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 11; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(id_SgNB_UE_X2AP_ID); type=2;} - void select_id_E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList() { set(id_E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList); type=3;} - void select_id_E_RABs_NotAdmitted_List() { set(id_E_RABs_NotAdmitted_List); type=4;} - void select_id_SgNBtoMeNBContainer() { set(id_SgNBtoMeNBContainer); type=5;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=6;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=7;} - void select_id_AdmittedSplitSRBs() { set(id_AdmittedSplitSRBs); type=8;} - void select_id_SgNBResourceCoordinationInformation() { set(id_SgNBResourceCoordinationInformation); type=9;} - void select_id_RRCConfigIndication() { set(id_RRCConfigIndication); type=10;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SgNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList)) { type = 3; return true; } - else if(equal(id_E_RABs_NotAdmitted_List)) { type = 4; return true; } - else if(equal(id_SgNBtoMeNBContainer)) { type = 5; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 6; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 7; return true; } - else if(equal(id_AdmittedSplitSRBs)) { type = 8; return true; } - else if(equal(id_SgNBResourceCoordinationInformation)) { type = 9; return true; } - else if(equal(id_RRCConfigIndication)) { type = 10; return true; } - else { type = 11; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SgNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_E_RABs_NotAdmitted_List);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_SgNBtoMeNBContainer);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(id_AdmittedSplitSRBs);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(id_SgNBResourceCoordinationInformation);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(id_RRCConfigIndication);} return false; - case 11: type = 11; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 11; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(reject); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(reject); type=2;} - void select_id_E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList() { set(ignore); type=3;} - void select_id_E_RABs_NotAdmitted_List() { set(ignore); type=4;} - void select_id_SgNBtoMeNBContainer() { set(reject); type=5;} - void select_id_CriticalityDiagnostics() { set(ignore); type=6;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(reject); type=7;} - void select_id_AdmittedSplitSRBs() { set(reject); type=8;} - void select_id_SgNBResourceCoordinationInformation() { set(ignore); type=9;} - void select_id_RRCConfigIndication() { set(reject); type=10;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(reject)) { type = 5; return true; } - else if(equal(ignore)) { type = 6; return true; } - else if(equal(reject)) { type = 7; return true; } - else if(equal(reject)) { type = 8; return true; } - else if(equal(ignore)) { type = 9; return true; } - else if(equal(reject)) { type = 10; return true; } - else { type = 11; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(reject);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(ignore);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(reject);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(reject);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(ignore);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(reject);} return false; - case 11: type = 11; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - SgNB_UE_X2AP_ID& select_id_SgNB_UE_X2AP_ID() { return set(2); } - SgNB_UE_X2AP_ID const* get_id_SgNB_UE_X2AP_ID() const { return get(2); } - E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList& select_id_E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList() { return set(3); } - E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList const* get_id_E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList() const { return get(3); } - E_RAB_List& select_id_E_RABs_NotAdmitted_List() { return set(4); } - E_RAB_List const* get_id_E_RABs_NotAdmitted_List() const { return get(4); } - SgNBtoMeNBContainer& select_id_SgNBtoMeNBContainer() { return set(5); } - SgNBtoMeNBContainer const* get_id_SgNBtoMeNBContainer() const { return get(5); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(6); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(6); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(7); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(7); } - SplitSRBs& select_id_AdmittedSplitSRBs() { return set(8); } - SplitSRBs const* get_id_AdmittedSplitSRBs() const { return get(8); } - SgNBResourceCoordinationInformation& select_id_SgNBResourceCoordinationInformation() { return set(9); } - SgNBResourceCoordinationInformation const* get_id_SgNBResourceCoordinationInformation() const { return get(9); } - RRC_Config_Ind& select_id_RRCConfigIndication() { return set(10); } - RRC_Config_Ind const* get_id_RRCConfigIndication() const { return get(10); } - bool is_unknown() const { return type == 11; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - case 7: var.destroy(); break; - case 8: var.destroy(); break; - case 9: var.destroy(); break; - case 10: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - v.template operator()(7); - v.template operator()(8); - v.template operator()(9); - v.template operator()(10); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SgNB_UE_X2AP_ID()); return true; - case 3: v(select_id_E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList()); return true; - case 4: v(select_id_E_RABs_NotAdmitted_List()); return true; - case 5: v(select_id_SgNBtoMeNBContainer()); return true; - case 6: v(select_id_CriticalityDiagnostics()); return true; - case 7: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 8: v(select_id_AdmittedSplitSRBs()); return true; - case 9: v(select_id_SgNBResourceCoordinationInformation()); return true; - case 10: v(select_id_RRCConfigIndication()); return true; - case 11: if(type != 11) {clear(); asn::base::set();} type = 11; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - case 7: v(var.as()); return true; - case 8: v(var.as()); return true; - case 9: v(var.as()); return true; - case 10: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CriticalityDiagnostics)]; - char dummy2[sizeof(E_RAB_List)]; - char dummy3[sizeof(E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList)]; - char dummy4[sizeof(RRC_Config_Ind)]; - char dummy5[sizeof(SgNBResourceCoordinationInformation)]; - char dummy6[sizeof(SgNB_UE_X2AP_ID)]; - char dummy7[sizeof(SgNBtoMeNBContainer)]; - char dummy8[sizeof(SplitSRBs)]; - char dummy9[sizeof(UE_X2AP_ID)]; - char dummy10[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 11; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList() { set(mandatory); type=3;} - void select_id_E_RABs_NotAdmitted_List() { set(optional); type=4;} - void select_id_SgNBtoMeNBContainer() { set(mandatory); type=5;} - void select_id_CriticalityDiagnostics() { set(optional); type=6;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=7;} - void select_id_AdmittedSplitSRBs() { set(optional); type=8;} - void select_id_SgNBResourceCoordinationInformation() { set(optional); type=9;} - void select_id_RRCConfigIndication() { set(optional); type=10;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(mandatory)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else if(equal(optional)) { type = 7; return true; } - else if(equal(optional)) { type = 8; return true; } - else if(equal(optional)) { type = 9; return true; } - else if(equal(optional)) { type = 10; return true; } - else { type = 11; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(mandatory);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(optional);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(optional);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(optional);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(optional);} return false; - case 11: type = 11; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SgNBAdditionRequestAcknowledge ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SgNBAdditionRequestAcknowledge-IEs}}, - ... -} -*/ - -struct SgNBAdditionRequestAcknowledge : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SgNBAdditionRequestAcknowledge";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SgNBAdditionRequestReject-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SgNB-UE-X2AP-ID CRITICALITY reject TYPE SgNB-UE-X2AP-ID PRESENCE optional}| - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}, - ... -} -*/ - -struct SgNBAdditionRequestReject_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(id_SgNB_UE_X2AP_ID); type=2;} - void select_id_Cause() { set(id_Cause); type=3;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=5;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SgNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_Cause)) { type = 3; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 4; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SgNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(reject); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(reject); type=2;} - void select_id_Cause() { set(ignore); type=3;} - void select_id_CriticalityDiagnostics() { set(ignore); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(reject); type=5;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(reject)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(reject);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - SgNB_UE_X2AP_ID& select_id_SgNB_UE_X2AP_ID() { return set(2); } - SgNB_UE_X2AP_ID const* get_id_SgNB_UE_X2AP_ID() const { return get(2); } - Cause& select_id_Cause() { return set(3); } - Cause const* get_id_Cause() const { return get(3); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(4); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(4); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(5); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(5); } - bool is_unknown() const { return type == 6; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SgNB_UE_X2AP_ID()); return true; - case 3: v(select_id_Cause()); return true; - case 4: v(select_id_CriticalityDiagnostics()); return true; - case 5: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 6: if(type != 6) {clear(); asn::base::set();} type = 6; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(CriticalityDiagnostics)]; - char dummy3[sizeof(SgNB_UE_X2AP_ID)]; - char dummy4[sizeof(UE_X2AP_ID)]; - char dummy5[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(optional); type=2;} - void select_id_Cause() { set(mandatory); type=3;} - void select_id_CriticalityDiagnostics() { set(optional); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=5;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SgNBAdditionRequestReject ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SgNBAdditionRequestReject-IEs}}, - ... -} -*/ - -struct SgNBAdditionRequestReject : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SgNBAdditionRequestReject";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SgNBChangeConfirm-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SgNB-UE-X2AP-ID CRITICALITY ignore TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}| - { ID id-E-RABs-ToBeReleased-SgNBChaConfList CRITICALITY ignore TYPE E-RABs-ToBeReleased-SgNBChaConfList PRESENCE optional}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}, - ... -} -*/ - -struct SgNBChangeConfirm_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(id_SgNB_UE_X2AP_ID); type=2;} - void select_id_E_RABs_ToBeReleased_SgNBChaConfList() { set(id_E_RABs_ToBeReleased_SgNBChaConfList); type=3;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=5;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SgNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_E_RABs_ToBeReleased_SgNBChaConfList)) { type = 3; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 4; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SgNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_E_RABs_ToBeReleased_SgNBChaConfList);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(ignore); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(ignore); type=2;} - void select_id_E_RABs_ToBeReleased_SgNBChaConfList() { set(ignore); type=3;} - void select_id_CriticalityDiagnostics() { set(ignore); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(ignore); type=5;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - SgNB_UE_X2AP_ID& select_id_SgNB_UE_X2AP_ID() { return set(2); } - SgNB_UE_X2AP_ID const* get_id_SgNB_UE_X2AP_ID() const { return get(2); } - E_RABs_ToBeReleased_SgNBChaConfList& select_id_E_RABs_ToBeReleased_SgNBChaConfList() { return set(3); } - E_RABs_ToBeReleased_SgNBChaConfList const* get_id_E_RABs_ToBeReleased_SgNBChaConfList() const { return get(3); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(4); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(4); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(5); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(5); } - bool is_unknown() const { return type == 6; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SgNB_UE_X2AP_ID()); return true; - case 3: v(select_id_E_RABs_ToBeReleased_SgNBChaConfList()); return true; - case 4: v(select_id_CriticalityDiagnostics()); return true; - case 5: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 6: if(type != 6) {clear(); asn::base::set();} type = 6; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CriticalityDiagnostics)]; - char dummy2[sizeof(E_RABs_ToBeReleased_SgNBChaConfList)]; - char dummy3[sizeof(SgNB_UE_X2AP_ID)]; - char dummy4[sizeof(UE_X2AP_ID)]; - char dummy5[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_E_RABs_ToBeReleased_SgNBChaConfList() { set(optional); type=3;} - void select_id_CriticalityDiagnostics() { set(optional); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=5;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SgNBChangeConfirm ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SgNBChangeConfirm-IEs}}, - ... -} -*/ - -struct SgNBChangeConfirm : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SgNBChangeConfirm";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SgNBChangeRefuse-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SgNB-UE-X2AP-ID CRITICALITY ignore TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}| - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}, - ... -} -*/ - -struct SgNBChangeRefuse_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(id_SgNB_UE_X2AP_ID); type=2;} - void select_id_Cause() { set(id_Cause); type=3;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=5;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SgNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_Cause)) { type = 3; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 4; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SgNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(ignore); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(ignore); type=2;} - void select_id_Cause() { set(ignore); type=3;} - void select_id_CriticalityDiagnostics() { set(ignore); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(reject); type=5;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(reject)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(reject);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - SgNB_UE_X2AP_ID& select_id_SgNB_UE_X2AP_ID() { return set(2); } - SgNB_UE_X2AP_ID const* get_id_SgNB_UE_X2AP_ID() const { return get(2); } - Cause& select_id_Cause() { return set(3); } - Cause const* get_id_Cause() const { return get(3); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(4); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(4); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(5); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(5); } - bool is_unknown() const { return type == 6; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SgNB_UE_X2AP_ID()); return true; - case 3: v(select_id_Cause()); return true; - case 4: v(select_id_CriticalityDiagnostics()); return true; - case 5: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 6: if(type != 6) {clear(); asn::base::set();} type = 6; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(CriticalityDiagnostics)]; - char dummy3[sizeof(SgNB_UE_X2AP_ID)]; - char dummy4[sizeof(UE_X2AP_ID)]; - char dummy5[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_Cause() { set(mandatory); type=3;} - void select_id_CriticalityDiagnostics() { set(optional); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=5;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SgNBChangeRefuse ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SgNBChangeRefuse-IEs}}, - ... -} -*/ - -struct SgNBChangeRefuse : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SgNBChangeRefuse";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SgNBChangeRequired-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SgNB-UE-X2AP-ID CRITICALITY reject TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}| - { ID id-Target-SgNB-ID CRITICALITY reject TYPE GlobalGNB-ID PRESENCE mandatory}| - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| - { ID id-SgNBtoMeNBContainer CRITICALITY reject TYPE SgNBtoMeNBContainer PRESENCE optional}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}, - ... -} -*/ - -struct SgNBChangeRequired_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(id_SgNB_UE_X2AP_ID); type=2;} - void select_id_Target_SgNB_ID() { set(id_Target_SgNB_ID); type=3;} - void select_id_Cause() { set(id_Cause); type=4;} - void select_id_SgNBtoMeNBContainer() { set(id_SgNBtoMeNBContainer); type=5;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=6;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SgNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_Target_SgNB_ID)) { type = 3; return true; } - else if(equal(id_Cause)) { type = 4; return true; } - else if(equal(id_SgNBtoMeNBContainer)) { type = 5; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SgNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_Target_SgNB_ID);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_SgNBtoMeNBContainer);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(reject); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(reject); type=2;} - void select_id_Target_SgNB_ID() { set(reject); type=3;} - void select_id_Cause() { set(ignore); type=4;} - void select_id_SgNBtoMeNBContainer() { set(reject); type=5;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(reject); type=6;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(reject)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(reject)) { type = 5; return true; } - else if(equal(reject)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(reject);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(reject);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(reject);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - SgNB_UE_X2AP_ID& select_id_SgNB_UE_X2AP_ID() { return set(2); } - SgNB_UE_X2AP_ID const* get_id_SgNB_UE_X2AP_ID() const { return get(2); } - GlobalGNB_ID& select_id_Target_SgNB_ID() { return set(3); } - GlobalGNB_ID const* get_id_Target_SgNB_ID() const { return get(3); } - Cause& select_id_Cause() { return set(4); } - Cause const* get_id_Cause() const { return get(4); } - SgNBtoMeNBContainer& select_id_SgNBtoMeNBContainer() { return set(5); } - SgNBtoMeNBContainer const* get_id_SgNBtoMeNBContainer() const { return get(5); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(6); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(6); } - bool is_unknown() const { return type == 7; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SgNB_UE_X2AP_ID()); return true; - case 3: v(select_id_Target_SgNB_ID()); return true; - case 4: v(select_id_Cause()); return true; - case 5: v(select_id_SgNBtoMeNBContainer()); return true; - case 6: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 7: if(type != 7) {clear(); asn::base::set();} type = 7; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(GlobalGNB_ID)]; - char dummy3[sizeof(SgNB_UE_X2AP_ID)]; - char dummy4[sizeof(SgNBtoMeNBContainer)]; - char dummy5[sizeof(UE_X2AP_ID)]; - char dummy6[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_Target_SgNB_ID() { set(mandatory); type=3;} - void select_id_Cause() { set(mandatory); type=4;} - void select_id_SgNBtoMeNBContainer() { set(optional); type=5;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=6;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(mandatory)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(mandatory);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SgNBChangeRequired ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SgNBChangeRequired-IEs}}, - ... -} -*/ - -struct SgNBChangeRequired : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SgNBChangeRequired";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SgNBCounterCheckRequest-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SgNB-UE-X2AP-ID CRITICALITY reject TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}| - { ID id-E-RABs-SubjectToSgNBCounterCheck-List CRITICALITY ignore TYPE E-RABs-SubjectToSgNBCounterCheck-List PRESENCE mandatory}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}, - ... -} -*/ - -struct SgNBCounterCheckRequest_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(id_SgNB_UE_X2AP_ID); type=2;} - void select_id_E_RABs_SubjectToSgNBCounterCheck_List() { set(id_E_RABs_SubjectToSgNBCounterCheck_List); type=3;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=4;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SgNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_E_RABs_SubjectToSgNBCounterCheck_List)) { type = 3; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SgNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_E_RABs_SubjectToSgNBCounterCheck_List);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(reject); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(reject); type=2;} - void select_id_E_RABs_SubjectToSgNBCounterCheck_List() { set(ignore); type=3;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(ignore); type=4;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - SgNB_UE_X2AP_ID& select_id_SgNB_UE_X2AP_ID() { return set(2); } - SgNB_UE_X2AP_ID const* get_id_SgNB_UE_X2AP_ID() const { return get(2); } - E_RABs_SubjectToSgNBCounterCheck_List& select_id_E_RABs_SubjectToSgNBCounterCheck_List() { return set(3); } - E_RABs_SubjectToSgNBCounterCheck_List const* get_id_E_RABs_SubjectToSgNBCounterCheck_List() const { return get(3); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(4); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(4); } - bool is_unknown() const { return type == 5; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SgNB_UE_X2AP_ID()); return true; - case 3: v(select_id_E_RABs_SubjectToSgNBCounterCheck_List()); return true; - case 4: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 5: if(type != 5) {clear(); asn::base::set();} type = 5; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_SubjectToSgNBCounterCheck_List)]; - char dummy2[sizeof(SgNB_UE_X2AP_ID)]; - char dummy3[sizeof(UE_X2AP_ID)]; - char dummy4[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_E_RABs_SubjectToSgNBCounterCheck_List() { set(mandatory); type=3;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=4;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SgNBCounterCheckRequest ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SgNBCounterCheckRequest-IEs}}, - ... -} -*/ - -struct SgNBCounterCheckRequest : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SgNBCounterCheckRequest";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SgNBModificationConfirm-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SgNB-UE-X2AP-ID CRITICALITY ignore TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}| - { ID id-E-RABs-AdmittedToBeModified-SgNBModConfList CRITICALITY ignore TYPE E-RABs-AdmittedToBeModified-SgNBModConfList PRESENCE optional}| - { ID id-MeNBtoSgNBContainer CRITICALITY ignore TYPE MeNBtoSgNBContainer PRESENCE optional}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-MeNBResourceCoordinationInformation CRITICALITY ignore TYPE MeNBResourceCoordinationInformation PRESENCE optional}, - ... -} -*/ - -struct SgNBModificationConfirm_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 8; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(id_SgNB_UE_X2AP_ID); type=2;} - void select_id_E_RABs_AdmittedToBeModified_SgNBModConfList() { set(id_E_RABs_AdmittedToBeModified_SgNBModConfList); type=3;} - void select_id_MeNBtoSgNBContainer() { set(id_MeNBtoSgNBContainer); type=4;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=5;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=6;} - void select_id_MeNBResourceCoordinationInformation() { set(id_MeNBResourceCoordinationInformation); type=7;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SgNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_E_RABs_AdmittedToBeModified_SgNBModConfList)) { type = 3; return true; } - else if(equal(id_MeNBtoSgNBContainer)) { type = 4; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 5; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 6; return true; } - else if(equal(id_MeNBResourceCoordinationInformation)) { type = 7; return true; } - else { type = 8; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SgNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_E_RABs_AdmittedToBeModified_SgNBModConfList);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_MeNBtoSgNBContainer);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(id_MeNBResourceCoordinationInformation);} return false; - case 8: type = 8; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 8; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(ignore); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(ignore); type=2;} - void select_id_E_RABs_AdmittedToBeModified_SgNBModConfList() { set(ignore); type=3;} - void select_id_MeNBtoSgNBContainer() { set(ignore); type=4;} - void select_id_CriticalityDiagnostics() { set(ignore); type=5;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(ignore); type=6;} - void select_id_MeNBResourceCoordinationInformation() { set(ignore); type=7;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else if(equal(ignore)) { type = 6; return true; } - else if(equal(ignore)) { type = 7; return true; } - else { type = 8; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(ignore);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(ignore);} return false; - case 8: type = 8; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - SgNB_UE_X2AP_ID& select_id_SgNB_UE_X2AP_ID() { return set(2); } - SgNB_UE_X2AP_ID const* get_id_SgNB_UE_X2AP_ID() const { return get(2); } - E_RABs_AdmittedToBeModified_SgNBModConfList& select_id_E_RABs_AdmittedToBeModified_SgNBModConfList() { return set(3); } - E_RABs_AdmittedToBeModified_SgNBModConfList const* get_id_E_RABs_AdmittedToBeModified_SgNBModConfList() const { return get(3); } - MeNBtoSgNBContainer& select_id_MeNBtoSgNBContainer() { return set(4); } - MeNBtoSgNBContainer const* get_id_MeNBtoSgNBContainer() const { return get(4); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(5); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(5); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(6); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(6); } - MeNBResourceCoordinationInformation& select_id_MeNBResourceCoordinationInformation() { return set(7); } - MeNBResourceCoordinationInformation const* get_id_MeNBResourceCoordinationInformation() const { return get(7); } - bool is_unknown() const { return type == 8; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - case 7: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - v.template operator()(7); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SgNB_UE_X2AP_ID()); return true; - case 3: v(select_id_E_RABs_AdmittedToBeModified_SgNBModConfList()); return true; - case 4: v(select_id_MeNBtoSgNBContainer()); return true; - case 5: v(select_id_CriticalityDiagnostics()); return true; - case 6: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 7: v(select_id_MeNBResourceCoordinationInformation()); return true; - case 8: if(type != 8) {clear(); asn::base::set();} type = 8; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - case 7: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CriticalityDiagnostics)]; - char dummy2[sizeof(E_RABs_AdmittedToBeModified_SgNBModConfList)]; - char dummy3[sizeof(MeNBResourceCoordinationInformation)]; - char dummy4[sizeof(MeNBtoSgNBContainer)]; - char dummy5[sizeof(SgNB_UE_X2AP_ID)]; - char dummy6[sizeof(UE_X2AP_ID)]; - char dummy7[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 8; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_E_RABs_AdmittedToBeModified_SgNBModConfList() { set(optional); type=3;} - void select_id_MeNBtoSgNBContainer() { set(optional); type=4;} - void select_id_CriticalityDiagnostics() { set(optional); type=5;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=6;} - void select_id_MeNBResourceCoordinationInformation() { set(optional); type=7;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else if(equal(optional)) { type = 7; return true; } - else { type = 8; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(optional);} return false; - case 8: type = 8; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SgNBModificationConfirm ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SgNBModificationConfirm-IEs}}, - ... -} -*/ - -struct SgNBModificationConfirm : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SgNBModificationConfirm";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SgNBModificationRefuse-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SgNB-UE-X2AP-ID CRITICALITY ignore TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}| - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| - { ID id-MeNBtoSgNBContainer CRITICALITY ignore TYPE MeNBtoSgNBContainer PRESENCE optional}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}, - ... -} -*/ - -struct SgNBModificationRefuse_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(id_SgNB_UE_X2AP_ID); type=2;} - void select_id_Cause() { set(id_Cause); type=3;} - void select_id_MeNBtoSgNBContainer() { set(id_MeNBtoSgNBContainer); type=4;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=5;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=6;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SgNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_Cause)) { type = 3; return true; } - else if(equal(id_MeNBtoSgNBContainer)) { type = 4; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 5; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SgNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_MeNBtoSgNBContainer);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(ignore); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(ignore); type=2;} - void select_id_Cause() { set(ignore); type=3;} - void select_id_MeNBtoSgNBContainer() { set(ignore); type=4;} - void select_id_CriticalityDiagnostics() { set(ignore); type=5;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(ignore); type=6;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else if(equal(ignore)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(ignore);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - SgNB_UE_X2AP_ID& select_id_SgNB_UE_X2AP_ID() { return set(2); } - SgNB_UE_X2AP_ID const* get_id_SgNB_UE_X2AP_ID() const { return get(2); } - Cause& select_id_Cause() { return set(3); } - Cause const* get_id_Cause() const { return get(3); } - MeNBtoSgNBContainer& select_id_MeNBtoSgNBContainer() { return set(4); } - MeNBtoSgNBContainer const* get_id_MeNBtoSgNBContainer() const { return get(4); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(5); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(5); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(6); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(6); } - bool is_unknown() const { return type == 7; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SgNB_UE_X2AP_ID()); return true; - case 3: v(select_id_Cause()); return true; - case 4: v(select_id_MeNBtoSgNBContainer()); return true; - case 5: v(select_id_CriticalityDiagnostics()); return true; - case 6: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 7: if(type != 7) {clear(); asn::base::set();} type = 7; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(CriticalityDiagnostics)]; - char dummy3[sizeof(MeNBtoSgNBContainer)]; - char dummy4[sizeof(SgNB_UE_X2AP_ID)]; - char dummy5[sizeof(UE_X2AP_ID)]; - char dummy6[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_Cause() { set(mandatory); type=3;} - void select_id_MeNBtoSgNBContainer() { set(optional); type=4;} - void select_id_CriticalityDiagnostics() { set(optional); type=5;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=6;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SgNBModificationRefuse ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SgNBModificationRefuse-IEs}}, - ... -} -*/ - -struct SgNBModificationRefuse : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SgNBModificationRefuse";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -UE-ContextInformationSgNBModReqExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-SubscriberProfileIDforRFP CRITICALITY ignore EXTENSION SubscriberProfileIDforRFP PRESENCE optional}, - ... -} -*/ - -struct UE_ContextInformationSgNBModReqExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_SubscriberProfileIDforRFP() { set(id_SubscriberProfileIDforRFP); type=1;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_SubscriberProfileIDforRFP)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_SubscriberProfileIDforRFP);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_SubscriberProfileIDforRFP() { set(ignore); type=1;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - SubscriberProfileIDforRFP& select_id_SubscriberProfileIDforRFP() { return set(1); } - SubscriberProfileIDforRFP const* get_id_SubscriberProfileIDforRFP() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_SubscriberProfileIDforRFP()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(SubscriberProfileIDforRFP)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_SubscriberProfileIDforRFP() { set(optional); type=1;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -UE-ContextInformation-SgNBModReq ::= SEQUENCE { - nRUE-SecurityCapabilities NRUESecurityCapabilities OPTIONAL, - sgNB-SecurityKey SgNBSecurityKey OPTIONAL, - sgNBUEAggregateMaximumBitRate UEAggregateMaximumBitRate OPTIONAL, - e-RABs-ToBeAdded E-RABs-ToBeAdded-SgNBModReq-List OPTIONAL, - e-RABs-ToBeModified E-RABs-ToBeModified-SgNBModReq-List OPTIONAL, - e-RABs-ToBeReleased E-RABs-ToBeReleased-SgNBModReq-List OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {UE-ContextInformationSgNBModReqExtIEs} } OPTIONAL, - ... -} -*/ - -struct UE_ContextInformation_SgNBModReq : asn::sequence<7, 0, true, 7> -{ - static constexpr const char* name() {return "UE-ContextInformation-SgNBModReq";} - using parent_t = asn::sequence<7, 0, true, 7>; - struct nRUE_SecurityCapabilities_t : NRUESecurityCapabilities - { - static constexpr const char* name() {return "nRUE_SecurityCapabilities_t";} - using parent_t = NRUESecurityCapabilities; - static constexpr bool optional = true; - - }; - nRUE_SecurityCapabilities_t& set_nRUE_SecurityCapabilities() { nRUE_SecurityCapabilities.setpresent(true); return nRUE_SecurityCapabilities;} - nRUE_SecurityCapabilities_t const* get_nRUE_SecurityCapabilities() const {return nRUE_SecurityCapabilities.is_valid() ? &nRUE_SecurityCapabilities : nullptr;} - struct sgNB_SecurityKey_t : SgNBSecurityKey - { - static constexpr const char* name() {return "sgNB_SecurityKey_t";} - using parent_t = SgNBSecurityKey; - static constexpr bool optional = true; - - }; - sgNB_SecurityKey_t& set_sgNB_SecurityKey() { sgNB_SecurityKey.setpresent(true); return sgNB_SecurityKey;} - sgNB_SecurityKey_t const* get_sgNB_SecurityKey() const {return sgNB_SecurityKey.is_valid() ? &sgNB_SecurityKey : nullptr;} - struct sgNBUEAggregateMaximumBitRate_t : UEAggregateMaximumBitRate - { - static constexpr const char* name() {return "sgNBUEAggregateMaximumBitRate_t";} - using parent_t = UEAggregateMaximumBitRate; - static constexpr bool optional = true; - - }; - sgNBUEAggregateMaximumBitRate_t& set_sgNBUEAggregateMaximumBitRate() { sgNBUEAggregateMaximumBitRate.setpresent(true); return sgNBUEAggregateMaximumBitRate;} - sgNBUEAggregateMaximumBitRate_t const* get_sgNBUEAggregateMaximumBitRate() const {return sgNBUEAggregateMaximumBitRate.is_valid() ? &sgNBUEAggregateMaximumBitRate : nullptr;} - struct e_RABs_ToBeAdded_t : E_RABs_ToBeAdded_SgNBModReq_List - { - static constexpr const char* name() {return "e_RABs_ToBeAdded_t";} - using parent_t = E_RABs_ToBeAdded_SgNBModReq_List; - static constexpr bool optional = true; - - }; - e_RABs_ToBeAdded_t& set_e_RABs_ToBeAdded() { e_RABs_ToBeAdded.setpresent(true); return e_RABs_ToBeAdded;} - e_RABs_ToBeAdded_t const* get_e_RABs_ToBeAdded() const {return e_RABs_ToBeAdded.is_valid() ? &e_RABs_ToBeAdded : nullptr;} - struct e_RABs_ToBeModified_t : E_RABs_ToBeModified_SgNBModReq_List - { - static constexpr const char* name() {return "e_RABs_ToBeModified_t";} - using parent_t = E_RABs_ToBeModified_SgNBModReq_List; - static constexpr bool optional = true; - - }; - e_RABs_ToBeModified_t& set_e_RABs_ToBeModified() { e_RABs_ToBeModified.setpresent(true); return e_RABs_ToBeModified;} - e_RABs_ToBeModified_t const* get_e_RABs_ToBeModified() const {return e_RABs_ToBeModified.is_valid() ? &e_RABs_ToBeModified : nullptr;} - struct e_RABs_ToBeReleased_t : E_RABs_ToBeReleased_SgNBModReq_List - { - static constexpr const char* name() {return "e_RABs_ToBeReleased_t";} - using parent_t = E_RABs_ToBeReleased_SgNBModReq_List; - static constexpr bool optional = true; - - }; - e_RABs_ToBeReleased_t& set_e_RABs_ToBeReleased() { e_RABs_ToBeReleased.setpresent(true); return e_RABs_ToBeReleased;} - e_RABs_ToBeReleased_t const* get_e_RABs_ToBeReleased() const {return e_RABs_ToBeReleased.is_valid() ? &e_RABs_ToBeReleased : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(nRUE_SecurityCapabilities); - v(sgNB_SecurityKey); - v(sgNBUEAggregateMaximumBitRate); - v(e_RABs_ToBeAdded); - v(e_RABs_ToBeModified); - v(e_RABs_ToBeReleased); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(nRUE_SecurityCapabilities); - v(sgNB_SecurityKey); - v(sgNBUEAggregateMaximumBitRate); - v(e_RABs_ToBeAdded); - v(e_RABs_ToBeModified); - v(e_RABs_ToBeReleased); - v(iE_Extensions); - - }; - void clear() - { - nRUE_SecurityCapabilities.clear(); - sgNB_SecurityKey.clear(); - sgNBUEAggregateMaximumBitRate.clear(); - e_RABs_ToBeAdded.clear(); - e_RABs_ToBeModified.clear(); - e_RABs_ToBeReleased.clear(); - iE_Extensions.clear(); - - }; - private: - nRUE_SecurityCapabilities_t nRUE_SecurityCapabilities; - sgNB_SecurityKey_t sgNB_SecurityKey; - sgNBUEAggregateMaximumBitRate_t sgNBUEAggregateMaximumBitRate; - e_RABs_ToBeAdded_t e_RABs_ToBeAdded; - e_RABs_ToBeModified_t e_RABs_ToBeModified; - e_RABs_ToBeReleased_t e_RABs_ToBeReleased; - iE_Extensions_t iE_Extensions; - -}; -/* -SgNBModificationRequest-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SgNB-UE-X2AP-ID CRITICALITY reject TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}| - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| - { ID id-SelectedPLMN CRITICALITY ignore TYPE PLMN-Identity PRESENCE optional}| - { ID id-HandoverRestrictionList CRITICALITY ignore TYPE HandoverRestrictionList PRESENCE optional}| - { ID id-SCGConfigurationQuery CRITICALITY ignore TYPE SCGConfigurationQuery PRESENCE optional}| - { ID id-UE-ContextInformation-SgNBModReq CRITICALITY reject TYPE UE-ContextInformation-SgNBModReq PRESENCE optional}| - { ID id-MeNBtoSgNBContainer CRITICALITY reject TYPE MeNBtoSgNBContainer PRESENCE optional}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-MeNBResourceCoordinationInformation CRITICALITY ignore TYPE MeNBResourceCoordinationInformation PRESENCE optional}| - { ID id-RequestedSplitSRBs CRITICALITY ignore TYPE SplitSRBs PRESENCE optional}| - { ID id-RequestedSplitSRBsrelease CRITICALITY ignore TYPE SplitSRBs PRESENCE optional}, - ... -} -*/ - -struct SgNBModificationRequest_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 13; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(id_SgNB_UE_X2AP_ID); type=2;} - void select_id_Cause() { set(id_Cause); type=3;} - void select_id_SelectedPLMN() { set(id_SelectedPLMN); type=4;} - void select_id_HandoverRestrictionList() { set(id_HandoverRestrictionList); type=5;} - void select_id_SCGConfigurationQuery() { set(id_SCGConfigurationQuery); type=6;} - void select_id_UE_ContextInformation_SgNBModReq() { set(id_UE_ContextInformation_SgNBModReq); type=7;} - void select_id_MeNBtoSgNBContainer() { set(id_MeNBtoSgNBContainer); type=8;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=9;} - void select_id_MeNBResourceCoordinationInformation() { set(id_MeNBResourceCoordinationInformation); type=10;} - void select_id_RequestedSplitSRBs() { set(id_RequestedSplitSRBs); type=11;} - void select_id_RequestedSplitSRBsrelease() { set(id_RequestedSplitSRBsrelease); type=12;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SgNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_Cause)) { type = 3; return true; } - else if(equal(id_SelectedPLMN)) { type = 4; return true; } - else if(equal(id_HandoverRestrictionList)) { type = 5; return true; } - else if(equal(id_SCGConfigurationQuery)) { type = 6; return true; } - else if(equal(id_UE_ContextInformation_SgNBModReq)) { type = 7; return true; } - else if(equal(id_MeNBtoSgNBContainer)) { type = 8; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 9; return true; } - else if(equal(id_MeNBResourceCoordinationInformation)) { type = 10; return true; } - else if(equal(id_RequestedSplitSRBs)) { type = 11; return true; } - else if(equal(id_RequestedSplitSRBsrelease)) { type = 12; return true; } - else { type = 13; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SgNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_SelectedPLMN);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_HandoverRestrictionList);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_SCGConfigurationQuery);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(id_UE_ContextInformation_SgNBModReq);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(id_MeNBtoSgNBContainer);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(id_MeNBResourceCoordinationInformation);} return false; - case 11: type = 11; if(v(ref_nested())) { return equal(id_RequestedSplitSRBs);} return false; - case 12: type = 12; if(v(ref_nested())) { return equal(id_RequestedSplitSRBsrelease);} return false; - case 13: type = 13; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 13; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(reject); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(reject); type=2;} - void select_id_Cause() { set(ignore); type=3;} - void select_id_SelectedPLMN() { set(ignore); type=4;} - void select_id_HandoverRestrictionList() { set(ignore); type=5;} - void select_id_SCGConfigurationQuery() { set(ignore); type=6;} - void select_id_UE_ContextInformation_SgNBModReq() { set(reject); type=7;} - void select_id_MeNBtoSgNBContainer() { set(reject); type=8;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(reject); type=9;} - void select_id_MeNBResourceCoordinationInformation() { set(ignore); type=10;} - void select_id_RequestedSplitSRBs() { set(ignore); type=11;} - void select_id_RequestedSplitSRBsrelease() { set(ignore); type=12;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else if(equal(ignore)) { type = 6; return true; } - else if(equal(reject)) { type = 7; return true; } - else if(equal(reject)) { type = 8; return true; } - else if(equal(reject)) { type = 9; return true; } - else if(equal(ignore)) { type = 10; return true; } - else if(equal(ignore)) { type = 11; return true; } - else if(equal(ignore)) { type = 12; return true; } - else { type = 13; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(ignore);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(reject);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(reject);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(reject);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(ignore);} return false; - case 11: type = 11; if(v(ref_nested())) { return equal(ignore);} return false; - case 12: type = 12; if(v(ref_nested())) { return equal(ignore);} return false; - case 13: type = 13; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - SgNB_UE_X2AP_ID& select_id_SgNB_UE_X2AP_ID() { return set(2); } - SgNB_UE_X2AP_ID const* get_id_SgNB_UE_X2AP_ID() const { return get(2); } - Cause& select_id_Cause() { return set(3); } - Cause const* get_id_Cause() const { return get(3); } - PLMN_Identity& select_id_SelectedPLMN() { return set(4); } - PLMN_Identity const* get_id_SelectedPLMN() const { return get(4); } - HandoverRestrictionList& select_id_HandoverRestrictionList() { return set(5); } - HandoverRestrictionList const* get_id_HandoverRestrictionList() const { return get(5); } - SCGConfigurationQuery& select_id_SCGConfigurationQuery() { return set(6); } - SCGConfigurationQuery const* get_id_SCGConfigurationQuery() const { return get(6); } - UE_ContextInformation_SgNBModReq& select_id_UE_ContextInformation_SgNBModReq() { return set(7); } - UE_ContextInformation_SgNBModReq const* get_id_UE_ContextInformation_SgNBModReq() const { return get(7); } - MeNBtoSgNBContainer& select_id_MeNBtoSgNBContainer() { return set(8); } - MeNBtoSgNBContainer const* get_id_MeNBtoSgNBContainer() const { return get(8); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(9); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(9); } - MeNBResourceCoordinationInformation& select_id_MeNBResourceCoordinationInformation() { return set(10); } - MeNBResourceCoordinationInformation const* get_id_MeNBResourceCoordinationInformation() const { return get(10); } - SplitSRBs& select_id_RequestedSplitSRBs() { return set(11); } - SplitSRBs const* get_id_RequestedSplitSRBs() const { return get(11); } - SplitSRBs& select_id_RequestedSplitSRBsrelease() { return set(12); } - SplitSRBs const* get_id_RequestedSplitSRBsrelease() const { return get(12); } - bool is_unknown() const { return type == 13; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - case 7: var.destroy(); break; - case 8: var.destroy(); break; - case 9: var.destroy(); break; - case 10: var.destroy(); break; - case 11: var.destroy(); break; - case 12: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - v.template operator()(7); - v.template operator()(8); - v.template operator()(9); - v.template operator()(10); - v.template operator()(11); - v.template operator()(12); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SgNB_UE_X2AP_ID()); return true; - case 3: v(select_id_Cause()); return true; - case 4: v(select_id_SelectedPLMN()); return true; - case 5: v(select_id_HandoverRestrictionList()); return true; - case 6: v(select_id_SCGConfigurationQuery()); return true; - case 7: v(select_id_UE_ContextInformation_SgNBModReq()); return true; - case 8: v(select_id_MeNBtoSgNBContainer()); return true; - case 9: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 10: v(select_id_MeNBResourceCoordinationInformation()); return true; - case 11: v(select_id_RequestedSplitSRBs()); return true; - case 12: v(select_id_RequestedSplitSRBsrelease()); return true; - case 13: if(type != 13) {clear(); asn::base::set();} type = 13; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - case 7: v(var.as()); return true; - case 8: v(var.as()); return true; - case 9: v(var.as()); return true; - case 10: v(var.as()); return true; - case 11: v(var.as()); return true; - case 12: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(HandoverRestrictionList)]; - char dummy3[sizeof(MeNBResourceCoordinationInformation)]; - char dummy4[sizeof(MeNBtoSgNBContainer)]; - char dummy5[sizeof(PLMN_Identity)]; - char dummy6[sizeof(SCGConfigurationQuery)]; - char dummy7[sizeof(SgNB_UE_X2AP_ID)]; - char dummy8[sizeof(SplitSRBs)]; - char dummy9[sizeof(UE_ContextInformation_SgNBModReq)]; - char dummy10[sizeof(UE_X2AP_ID)]; - char dummy11[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 13; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_Cause() { set(mandatory); type=3;} - void select_id_SelectedPLMN() { set(optional); type=4;} - void select_id_HandoverRestrictionList() { set(optional); type=5;} - void select_id_SCGConfigurationQuery() { set(optional); type=6;} - void select_id_UE_ContextInformation_SgNBModReq() { set(optional); type=7;} - void select_id_MeNBtoSgNBContainer() { set(optional); type=8;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=9;} - void select_id_MeNBResourceCoordinationInformation() { set(optional); type=10;} - void select_id_RequestedSplitSRBs() { set(optional); type=11;} - void select_id_RequestedSplitSRBsrelease() { set(optional); type=12;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else if(equal(optional)) { type = 7; return true; } - else if(equal(optional)) { type = 8; return true; } - else if(equal(optional)) { type = 9; return true; } - else if(equal(optional)) { type = 10; return true; } - else if(equal(optional)) { type = 11; return true; } - else if(equal(optional)) { type = 12; return true; } - else { type = 13; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(optional);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(optional);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(optional);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(optional);} return false; - case 11: type = 11; if(v(ref_nested())) { return equal(optional);} return false; - case 12: type = 12; if(v(ref_nested())) { return equal(optional);} return false; - case 13: type = 13; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SgNBModificationRequest ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ SgNBModificationRequest-IEs}}, - ... -} -*/ - -struct SgNBModificationRequest : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SgNBModificationRequest";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SgNBModificationRequestAcknowledge-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SgNB-UE-X2AP-ID CRITICALITY ignore TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}| - { ID id-E-RABs-Admitted-ToBeAdded-SgNBModAckList CRITICALITY ignore TYPE E-RABs-Admitted-ToBeAdded-SgNBModAckList PRESENCE optional}| - { ID id-E-RABs-Admitted-ToBeModified-SgNBModAckList CRITICALITY ignore TYPE E-RABs-Admitted-ToBeModified-SgNBModAckList PRESENCE optional}| - { ID id-E-RABs-Admitted-ToBeReleased-SgNBModAckList CRITICALITY ignore TYPE E-RABs-Admitted-ToBeReleased-SgNBModAckList PRESENCE optional}| - { ID id-E-RABs-NotAdmitted-List CRITICALITY ignore TYPE E-RAB-List PRESENCE optional}| - { ID id-SgNBtoMeNBContainer CRITICALITY ignore TYPE SgNBtoMeNBContainer PRESENCE optional}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-SgNBResourceCoordinationInformation CRITICALITY ignore TYPE SgNBResourceCoordinationInformation PRESENCE optional}| - { ID id-AdmittedSplitSRBs CRITICALITY ignore TYPE SplitSRBs PRESENCE optional}| - { ID id-AdmittedSplitSRBsrelease CRITICALITY ignore TYPE SplitSRBs PRESENCE optional}| - { ID id-RRCConfigIndication CRITICALITY reject TYPE RRC-Config-Ind PRESENCE optional}, - ... -} -*/ - -struct SgNBModificationRequestAcknowledge_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 14; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(id_SgNB_UE_X2AP_ID); type=2;} - void select_id_E_RABs_Admitted_ToBeAdded_SgNBModAckList() { set(id_E_RABs_Admitted_ToBeAdded_SgNBModAckList); type=3;} - void select_id_E_RABs_Admitted_ToBeModified_SgNBModAckList() { set(id_E_RABs_Admitted_ToBeModified_SgNBModAckList); type=4;} - void select_id_E_RABs_Admitted_ToBeReleased_SgNBModAckList() { set(id_E_RABs_Admitted_ToBeReleased_SgNBModAckList); type=5;} - void select_id_E_RABs_NotAdmitted_List() { set(id_E_RABs_NotAdmitted_List); type=6;} - void select_id_SgNBtoMeNBContainer() { set(id_SgNBtoMeNBContainer); type=7;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=8;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=9;} - void select_id_SgNBResourceCoordinationInformation() { set(id_SgNBResourceCoordinationInformation); type=10;} - void select_id_AdmittedSplitSRBs() { set(id_AdmittedSplitSRBs); type=11;} - void select_id_AdmittedSplitSRBsrelease() { set(id_AdmittedSplitSRBsrelease); type=12;} - void select_id_RRCConfigIndication() { set(id_RRCConfigIndication); type=13;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SgNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_E_RABs_Admitted_ToBeAdded_SgNBModAckList)) { type = 3; return true; } - else if(equal(id_E_RABs_Admitted_ToBeModified_SgNBModAckList)) { type = 4; return true; } - else if(equal(id_E_RABs_Admitted_ToBeReleased_SgNBModAckList)) { type = 5; return true; } - else if(equal(id_E_RABs_NotAdmitted_List)) { type = 6; return true; } - else if(equal(id_SgNBtoMeNBContainer)) { type = 7; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 8; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 9; return true; } - else if(equal(id_SgNBResourceCoordinationInformation)) { type = 10; return true; } - else if(equal(id_AdmittedSplitSRBs)) { type = 11; return true; } - else if(equal(id_AdmittedSplitSRBsrelease)) { type = 12; return true; } - else if(equal(id_RRCConfigIndication)) { type = 13; return true; } - else { type = 14; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SgNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_E_RABs_Admitted_ToBeAdded_SgNBModAckList);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_E_RABs_Admitted_ToBeModified_SgNBModAckList);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_E_RABs_Admitted_ToBeReleased_SgNBModAckList);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_E_RABs_NotAdmitted_List);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(id_SgNBtoMeNBContainer);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(id_SgNBResourceCoordinationInformation);} return false; - case 11: type = 11; if(v(ref_nested())) { return equal(id_AdmittedSplitSRBs);} return false; - case 12: type = 12; if(v(ref_nested())) { return equal(id_AdmittedSplitSRBsrelease);} return false; - case 13: type = 13; if(v(ref_nested())) { return equal(id_RRCConfigIndication);} return false; - case 14: type = 14; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 14; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(ignore); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(ignore); type=2;} - void select_id_E_RABs_Admitted_ToBeAdded_SgNBModAckList() { set(ignore); type=3;} - void select_id_E_RABs_Admitted_ToBeModified_SgNBModAckList() { set(ignore); type=4;} - void select_id_E_RABs_Admitted_ToBeReleased_SgNBModAckList() { set(ignore); type=5;} - void select_id_E_RABs_NotAdmitted_List() { set(ignore); type=6;} - void select_id_SgNBtoMeNBContainer() { set(ignore); type=7;} - void select_id_CriticalityDiagnostics() { set(ignore); type=8;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(ignore); type=9;} - void select_id_SgNBResourceCoordinationInformation() { set(ignore); type=10;} - void select_id_AdmittedSplitSRBs() { set(ignore); type=11;} - void select_id_AdmittedSplitSRBsrelease() { set(ignore); type=12;} - void select_id_RRCConfigIndication() { set(reject); type=13;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else if(equal(ignore)) { type = 6; return true; } - else if(equal(ignore)) { type = 7; return true; } - else if(equal(ignore)) { type = 8; return true; } - else if(equal(ignore)) { type = 9; return true; } - else if(equal(ignore)) { type = 10; return true; } - else if(equal(ignore)) { type = 11; return true; } - else if(equal(ignore)) { type = 12; return true; } - else if(equal(reject)) { type = 13; return true; } - else { type = 14; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(ignore);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(ignore);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(ignore);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(ignore);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(ignore);} return false; - case 11: type = 11; if(v(ref_nested())) { return equal(ignore);} return false; - case 12: type = 12; if(v(ref_nested())) { return equal(ignore);} return false; - case 13: type = 13; if(v(ref_nested())) { return equal(reject);} return false; - case 14: type = 14; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - SgNB_UE_X2AP_ID& select_id_SgNB_UE_X2AP_ID() { return set(2); } - SgNB_UE_X2AP_ID const* get_id_SgNB_UE_X2AP_ID() const { return get(2); } - E_RABs_Admitted_ToBeAdded_SgNBModAckList& select_id_E_RABs_Admitted_ToBeAdded_SgNBModAckList() { return set(3); } - E_RABs_Admitted_ToBeAdded_SgNBModAckList const* get_id_E_RABs_Admitted_ToBeAdded_SgNBModAckList() const { return get(3); } - E_RABs_Admitted_ToBeModified_SgNBModAckList& select_id_E_RABs_Admitted_ToBeModified_SgNBModAckList() { return set(4); } - E_RABs_Admitted_ToBeModified_SgNBModAckList const* get_id_E_RABs_Admitted_ToBeModified_SgNBModAckList() const { return get(4); } - E_RABs_Admitted_ToBeReleased_SgNBModAckList& select_id_E_RABs_Admitted_ToBeReleased_SgNBModAckList() { return set(5); } - E_RABs_Admitted_ToBeReleased_SgNBModAckList const* get_id_E_RABs_Admitted_ToBeReleased_SgNBModAckList() const { return get(5); } - E_RAB_List& select_id_E_RABs_NotAdmitted_List() { return set(6); } - E_RAB_List const* get_id_E_RABs_NotAdmitted_List() const { return get(6); } - SgNBtoMeNBContainer& select_id_SgNBtoMeNBContainer() { return set(7); } - SgNBtoMeNBContainer const* get_id_SgNBtoMeNBContainer() const { return get(7); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(8); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(8); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(9); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(9); } - SgNBResourceCoordinationInformation& select_id_SgNBResourceCoordinationInformation() { return set(10); } - SgNBResourceCoordinationInformation const* get_id_SgNBResourceCoordinationInformation() const { return get(10); } - SplitSRBs& select_id_AdmittedSplitSRBs() { return set(11); } - SplitSRBs const* get_id_AdmittedSplitSRBs() const { return get(11); } - SplitSRBs& select_id_AdmittedSplitSRBsrelease() { return set(12); } - SplitSRBs const* get_id_AdmittedSplitSRBsrelease() const { return get(12); } - RRC_Config_Ind& select_id_RRCConfigIndication() { return set(13); } - RRC_Config_Ind const* get_id_RRCConfigIndication() const { return get(13); } - bool is_unknown() const { return type == 14; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - case 7: var.destroy(); break; - case 8: var.destroy(); break; - case 9: var.destroy(); break; - case 10: var.destroy(); break; - case 11: var.destroy(); break; - case 12: var.destroy(); break; - case 13: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - v.template operator()(7); - v.template operator()(8); - v.template operator()(9); - v.template operator()(10); - v.template operator()(11); - v.template operator()(12); - v.template operator()(13); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SgNB_UE_X2AP_ID()); return true; - case 3: v(select_id_E_RABs_Admitted_ToBeAdded_SgNBModAckList()); return true; - case 4: v(select_id_E_RABs_Admitted_ToBeModified_SgNBModAckList()); return true; - case 5: v(select_id_E_RABs_Admitted_ToBeReleased_SgNBModAckList()); return true; - case 6: v(select_id_E_RABs_NotAdmitted_List()); return true; - case 7: v(select_id_SgNBtoMeNBContainer()); return true; - case 8: v(select_id_CriticalityDiagnostics()); return true; - case 9: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 10: v(select_id_SgNBResourceCoordinationInformation()); return true; - case 11: v(select_id_AdmittedSplitSRBs()); return true; - case 12: v(select_id_AdmittedSplitSRBsrelease()); return true; - case 13: v(select_id_RRCConfigIndication()); return true; - case 14: if(type != 14) {clear(); asn::base::set();} type = 14; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - case 7: v(var.as()); return true; - case 8: v(var.as()); return true; - case 9: v(var.as()); return true; - case 10: v(var.as()); return true; - case 11: v(var.as()); return true; - case 12: v(var.as()); return true; - case 13: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CriticalityDiagnostics)]; - char dummy2[sizeof(E_RAB_List)]; - char dummy3[sizeof(E_RABs_Admitted_ToBeAdded_SgNBModAckList)]; - char dummy4[sizeof(E_RABs_Admitted_ToBeModified_SgNBModAckList)]; - char dummy5[sizeof(E_RABs_Admitted_ToBeReleased_SgNBModAckList)]; - char dummy6[sizeof(RRC_Config_Ind)]; - char dummy7[sizeof(SgNBResourceCoordinationInformation)]; - char dummy8[sizeof(SgNB_UE_X2AP_ID)]; - char dummy9[sizeof(SgNBtoMeNBContainer)]; - char dummy10[sizeof(SplitSRBs)]; - char dummy11[sizeof(UE_X2AP_ID)]; - char dummy12[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 14; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_E_RABs_Admitted_ToBeAdded_SgNBModAckList() { set(optional); type=3;} - void select_id_E_RABs_Admitted_ToBeModified_SgNBModAckList() { set(optional); type=4;} - void select_id_E_RABs_Admitted_ToBeReleased_SgNBModAckList() { set(optional); type=5;} - void select_id_E_RABs_NotAdmitted_List() { set(optional); type=6;} - void select_id_SgNBtoMeNBContainer() { set(optional); type=7;} - void select_id_CriticalityDiagnostics() { set(optional); type=8;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=9;} - void select_id_SgNBResourceCoordinationInformation() { set(optional); type=10;} - void select_id_AdmittedSplitSRBs() { set(optional); type=11;} - void select_id_AdmittedSplitSRBsrelease() { set(optional); type=12;} - void select_id_RRCConfigIndication() { set(optional); type=13;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else if(equal(optional)) { type = 7; return true; } - else if(equal(optional)) { type = 8; return true; } - else if(equal(optional)) { type = 9; return true; } - else if(equal(optional)) { type = 10; return true; } - else if(equal(optional)) { type = 11; return true; } - else if(equal(optional)) { type = 12; return true; } - else if(equal(optional)) { type = 13; return true; } - else { type = 14; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(optional);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(optional);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(optional);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(optional);} return false; - case 11: type = 11; if(v(ref_nested())) { return equal(optional);} return false; - case 12: type = 12; if(v(ref_nested())) { return equal(optional);} return false; - case 13: type = 13; if(v(ref_nested())) { return equal(optional);} return false; - case 14: type = 14; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SgNBModificationRequestAcknowledge ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SgNBModificationRequestAcknowledge-IEs}}, - ... -} -*/ - -struct SgNBModificationRequestAcknowledge : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SgNBModificationRequestAcknowledge";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SgNBModificationRequestReject-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SgNB-UE-X2AP-ID CRITICALITY ignore TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}| - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}, - ... -} -*/ - -struct SgNBModificationRequestReject_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(id_SgNB_UE_X2AP_ID); type=2;} - void select_id_Cause() { set(id_Cause); type=3;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=5;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SgNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_Cause)) { type = 3; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 4; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SgNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(ignore); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(ignore); type=2;} - void select_id_Cause() { set(ignore); type=3;} - void select_id_CriticalityDiagnostics() { set(ignore); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(ignore); type=5;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - SgNB_UE_X2AP_ID& select_id_SgNB_UE_X2AP_ID() { return set(2); } - SgNB_UE_X2AP_ID const* get_id_SgNB_UE_X2AP_ID() const { return get(2); } - Cause& select_id_Cause() { return set(3); } - Cause const* get_id_Cause() const { return get(3); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(4); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(4); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(5); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(5); } - bool is_unknown() const { return type == 6; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SgNB_UE_X2AP_ID()); return true; - case 3: v(select_id_Cause()); return true; - case 4: v(select_id_CriticalityDiagnostics()); return true; - case 5: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 6: if(type != 6) {clear(); asn::base::set();} type = 6; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(CriticalityDiagnostics)]; - char dummy3[sizeof(SgNB_UE_X2AP_ID)]; - char dummy4[sizeof(UE_X2AP_ID)]; - char dummy5[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_Cause() { set(mandatory); type=3;} - void select_id_CriticalityDiagnostics() { set(optional); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=5;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SgNBModificationRequestReject ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SgNBModificationRequestReject-IEs}}, - ... -} -*/ - -struct SgNBModificationRequestReject : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SgNBModificationRequestReject";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SgNBModificationRequired-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SgNB-UE-X2AP-ID CRITICALITY reject TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}| - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| - { ID id-PDCPChangeIndication CRITICALITY ignore TYPE PDCPChangeIndication PRESENCE optional}| - { ID id-E-RABs-ToBeReleased-SgNBModReqdList CRITICALITY ignore TYPE E-RABs-ToBeReleased-SgNBModReqdList PRESENCE optional}| - { ID id-SgNBtoMeNBContainer CRITICALITY ignore TYPE SgNBtoMeNBContainer PRESENCE optional}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-E-RABs-ToBeModified-SgNBModReqdList CRITICALITY ignore TYPE E-RABs-ToBeModified-SgNBModReqdList PRESENCE optional}| - { ID id-SgNBResourceCoordinationInformation CRITICALITY ignore TYPE SgNBResourceCoordinationInformation PRESENCE optional}| - { ID id-RRCConfigIndication CRITICALITY reject TYPE RRC-Config-Ind PRESENCE optional}, - ... -} -*/ - -struct SgNBModificationRequired_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 11; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(id_SgNB_UE_X2AP_ID); type=2;} - void select_id_Cause() { set(id_Cause); type=3;} - void select_id_PDCPChangeIndication() { set(id_PDCPChangeIndication); type=4;} - void select_id_E_RABs_ToBeReleased_SgNBModReqdList() { set(id_E_RABs_ToBeReleased_SgNBModReqdList); type=5;} - void select_id_SgNBtoMeNBContainer() { set(id_SgNBtoMeNBContainer); type=6;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=7;} - void select_id_E_RABs_ToBeModified_SgNBModReqdList() { set(id_E_RABs_ToBeModified_SgNBModReqdList); type=8;} - void select_id_SgNBResourceCoordinationInformation() { set(id_SgNBResourceCoordinationInformation); type=9;} - void select_id_RRCConfigIndication() { set(id_RRCConfigIndication); type=10;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SgNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_Cause)) { type = 3; return true; } - else if(equal(id_PDCPChangeIndication)) { type = 4; return true; } - else if(equal(id_E_RABs_ToBeReleased_SgNBModReqdList)) { type = 5; return true; } - else if(equal(id_SgNBtoMeNBContainer)) { type = 6; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 7; return true; } - else if(equal(id_E_RABs_ToBeModified_SgNBModReqdList)) { type = 8; return true; } - else if(equal(id_SgNBResourceCoordinationInformation)) { type = 9; return true; } - else if(equal(id_RRCConfigIndication)) { type = 10; return true; } - else { type = 11; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SgNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_PDCPChangeIndication);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_E_RABs_ToBeReleased_SgNBModReqdList);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_SgNBtoMeNBContainer);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(id_E_RABs_ToBeModified_SgNBModReqdList);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(id_SgNBResourceCoordinationInformation);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(id_RRCConfigIndication);} return false; - case 11: type = 11; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 11; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(reject); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(reject); type=2;} - void select_id_Cause() { set(ignore); type=3;} - void select_id_PDCPChangeIndication() { set(ignore); type=4;} - void select_id_E_RABs_ToBeReleased_SgNBModReqdList() { set(ignore); type=5;} - void select_id_SgNBtoMeNBContainer() { set(ignore); type=6;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(reject); type=7;} - void select_id_E_RABs_ToBeModified_SgNBModReqdList() { set(ignore); type=8;} - void select_id_SgNBResourceCoordinationInformation() { set(ignore); type=9;} - void select_id_RRCConfigIndication() { set(reject); type=10;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else if(equal(ignore)) { type = 6; return true; } - else if(equal(reject)) { type = 7; return true; } - else if(equal(ignore)) { type = 8; return true; } - else if(equal(ignore)) { type = 9; return true; } - else if(equal(reject)) { type = 10; return true; } - else { type = 11; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(ignore);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(reject);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(ignore);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(ignore);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(reject);} return false; - case 11: type = 11; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - SgNB_UE_X2AP_ID& select_id_SgNB_UE_X2AP_ID() { return set(2); } - SgNB_UE_X2AP_ID const* get_id_SgNB_UE_X2AP_ID() const { return get(2); } - Cause& select_id_Cause() { return set(3); } - Cause const* get_id_Cause() const { return get(3); } - PDCPChangeIndication& select_id_PDCPChangeIndication() { return set(4); } - PDCPChangeIndication const* get_id_PDCPChangeIndication() const { return get(4); } - E_RABs_ToBeReleased_SgNBModReqdList& select_id_E_RABs_ToBeReleased_SgNBModReqdList() { return set(5); } - E_RABs_ToBeReleased_SgNBModReqdList const* get_id_E_RABs_ToBeReleased_SgNBModReqdList() const { return get(5); } - SgNBtoMeNBContainer& select_id_SgNBtoMeNBContainer() { return set(6); } - SgNBtoMeNBContainer const* get_id_SgNBtoMeNBContainer() const { return get(6); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(7); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(7); } - E_RABs_ToBeModified_SgNBModReqdList& select_id_E_RABs_ToBeModified_SgNBModReqdList() { return set(8); } - E_RABs_ToBeModified_SgNBModReqdList const* get_id_E_RABs_ToBeModified_SgNBModReqdList() const { return get(8); } - SgNBResourceCoordinationInformation& select_id_SgNBResourceCoordinationInformation() { return set(9); } - SgNBResourceCoordinationInformation const* get_id_SgNBResourceCoordinationInformation() const { return get(9); } - RRC_Config_Ind& select_id_RRCConfigIndication() { return set(10); } - RRC_Config_Ind const* get_id_RRCConfigIndication() const { return get(10); } - bool is_unknown() const { return type == 11; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - case 7: var.destroy(); break; - case 8: var.destroy(); break; - case 9: var.destroy(); break; - case 10: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - v.template operator()(7); - v.template operator()(8); - v.template operator()(9); - v.template operator()(10); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SgNB_UE_X2AP_ID()); return true; - case 3: v(select_id_Cause()); return true; - case 4: v(select_id_PDCPChangeIndication()); return true; - case 5: v(select_id_E_RABs_ToBeReleased_SgNBModReqdList()); return true; - case 6: v(select_id_SgNBtoMeNBContainer()); return true; - case 7: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 8: v(select_id_E_RABs_ToBeModified_SgNBModReqdList()); return true; - case 9: v(select_id_SgNBResourceCoordinationInformation()); return true; - case 10: v(select_id_RRCConfigIndication()); return true; - case 11: if(type != 11) {clear(); asn::base::set();} type = 11; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - case 7: v(var.as()); return true; - case 8: v(var.as()); return true; - case 9: v(var.as()); return true; - case 10: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(E_RABs_ToBeModified_SgNBModReqdList)]; - char dummy3[sizeof(E_RABs_ToBeReleased_SgNBModReqdList)]; - char dummy4[sizeof(PDCPChangeIndication)]; - char dummy5[sizeof(RRC_Config_Ind)]; - char dummy6[sizeof(SgNBResourceCoordinationInformation)]; - char dummy7[sizeof(SgNB_UE_X2AP_ID)]; - char dummy8[sizeof(SgNBtoMeNBContainer)]; - char dummy9[sizeof(UE_X2AP_ID)]; - char dummy10[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 11; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_Cause() { set(mandatory); type=3;} - void select_id_PDCPChangeIndication() { set(optional); type=4;} - void select_id_E_RABs_ToBeReleased_SgNBModReqdList() { set(optional); type=5;} - void select_id_SgNBtoMeNBContainer() { set(optional); type=6;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=7;} - void select_id_E_RABs_ToBeModified_SgNBModReqdList() { set(optional); type=8;} - void select_id_SgNBResourceCoordinationInformation() { set(optional); type=9;} - void select_id_RRCConfigIndication() { set(optional); type=10;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else if(equal(optional)) { type = 7; return true; } - else if(equal(optional)) { type = 8; return true; } - else if(equal(optional)) { type = 9; return true; } - else if(equal(optional)) { type = 10; return true; } - else { type = 11; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(optional);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(optional);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(optional);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(optional);} return false; - case 11: type = 11; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SgNBModificationRequired ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SgNBModificationRequired-IEs}}, - ... -} -*/ - -struct SgNBModificationRequired : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SgNBModificationRequired";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SgNBReconfigurationComplete-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SgNB-UE-X2AP-ID CRITICALITY reject TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}| - { ID id-ResponseInformationSgNBReconfComp CRITICALITY ignore TYPE ResponseInformationSgNBReconfComp PRESENCE mandatory}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}, - ... -} -*/ - -struct SgNBReconfigurationComplete_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(id_SgNB_UE_X2AP_ID); type=2;} - void select_id_ResponseInformationSgNBReconfComp() { set(id_ResponseInformationSgNBReconfComp); type=3;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=4;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SgNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_ResponseInformationSgNBReconfComp)) { type = 3; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SgNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_ResponseInformationSgNBReconfComp);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(reject); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(reject); type=2;} - void select_id_ResponseInformationSgNBReconfComp() { set(ignore); type=3;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(reject); type=4;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(reject)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(reject);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - SgNB_UE_X2AP_ID& select_id_SgNB_UE_X2AP_ID() { return set(2); } - SgNB_UE_X2AP_ID const* get_id_SgNB_UE_X2AP_ID() const { return get(2); } - ResponseInformationSgNBReconfComp& select_id_ResponseInformationSgNBReconfComp() { return set(3); } - ResponseInformationSgNBReconfComp const* get_id_ResponseInformationSgNBReconfComp() const { return get(3); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(4); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(4); } - bool is_unknown() const { return type == 5; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SgNB_UE_X2AP_ID()); return true; - case 3: v(select_id_ResponseInformationSgNBReconfComp()); return true; - case 4: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 5: if(type != 5) {clear(); asn::base::set();} type = 5; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(ResponseInformationSgNBReconfComp)]; - char dummy2[sizeof(SgNB_UE_X2AP_ID)]; - char dummy3[sizeof(UE_X2AP_ID)]; - char dummy4[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_ResponseInformationSgNBReconfComp() { set(mandatory); type=3;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=4;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SgNBReconfigurationComplete ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SgNBReconfigurationComplete-IEs}}, - ... -} -*/ - -struct SgNBReconfigurationComplete : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SgNBReconfigurationComplete";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SgNBReleaseConfirm-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SgNB-UE-X2AP-ID CRITICALITY ignore TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}| - { ID id-E-RABs-ToBeReleased-SgNBRelConfList CRITICALITY ignore TYPE E-RABs-ToBeReleased-SgNBRelConfList PRESENCE optional}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}, - ... -} -*/ - -struct SgNBReleaseConfirm_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(id_SgNB_UE_X2AP_ID); type=2;} - void select_id_E_RABs_ToBeReleased_SgNBRelConfList() { set(id_E_RABs_ToBeReleased_SgNBRelConfList); type=3;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=5;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SgNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_E_RABs_ToBeReleased_SgNBRelConfList)) { type = 3; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 4; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SgNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_E_RABs_ToBeReleased_SgNBRelConfList);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(ignore); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(ignore); type=2;} - void select_id_E_RABs_ToBeReleased_SgNBRelConfList() { set(ignore); type=3;} - void select_id_CriticalityDiagnostics() { set(ignore); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(ignore); type=5;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - SgNB_UE_X2AP_ID& select_id_SgNB_UE_X2AP_ID() { return set(2); } - SgNB_UE_X2AP_ID const* get_id_SgNB_UE_X2AP_ID() const { return get(2); } - E_RABs_ToBeReleased_SgNBRelConfList& select_id_E_RABs_ToBeReleased_SgNBRelConfList() { return set(3); } - E_RABs_ToBeReleased_SgNBRelConfList const* get_id_E_RABs_ToBeReleased_SgNBRelConfList() const { return get(3); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(4); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(4); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(5); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(5); } - bool is_unknown() const { return type == 6; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SgNB_UE_X2AP_ID()); return true; - case 3: v(select_id_E_RABs_ToBeReleased_SgNBRelConfList()); return true; - case 4: v(select_id_CriticalityDiagnostics()); return true; - case 5: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 6: if(type != 6) {clear(); asn::base::set();} type = 6; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CriticalityDiagnostics)]; - char dummy2[sizeof(E_RABs_ToBeReleased_SgNBRelConfList)]; - char dummy3[sizeof(SgNB_UE_X2AP_ID)]; - char dummy4[sizeof(UE_X2AP_ID)]; - char dummy5[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_E_RABs_ToBeReleased_SgNBRelConfList() { set(optional); type=3;} - void select_id_CriticalityDiagnostics() { set(optional); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=5;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SgNBReleaseConfirm ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SgNBReleaseConfirm-IEs}}, - ... -} -*/ - -struct SgNBReleaseConfirm : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SgNBReleaseConfirm";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SgNBReleaseRequest-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SgNB-UE-X2AP-ID CRITICALITY reject TYPE SgNB-UE-X2AP-ID PRESENCE optional}| - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| - { ID id-E-RABs-ToBeReleased-SgNBRelReqList CRITICALITY ignore TYPE E-RABs-ToBeReleased-SgNBRelReqList PRESENCE optional}| - { ID id-UE-ContextKeptIndicator CRITICALITY ignore TYPE UE-ContextKeptIndicator PRESENCE optional}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-MeNBtoSgNBContainer CRITICALITY reject TYPE MeNBtoSgNBContainer PRESENCE optional}, - ... -} -*/ - -struct SgNBReleaseRequest_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 8; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(id_SgNB_UE_X2AP_ID); type=2;} - void select_id_Cause() { set(id_Cause); type=3;} - void select_id_E_RABs_ToBeReleased_SgNBRelReqList() { set(id_E_RABs_ToBeReleased_SgNBRelReqList); type=4;} - void select_id_UE_ContextKeptIndicator() { set(id_UE_ContextKeptIndicator); type=5;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=6;} - void select_id_MeNBtoSgNBContainer() { set(id_MeNBtoSgNBContainer); type=7;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SgNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_Cause)) { type = 3; return true; } - else if(equal(id_E_RABs_ToBeReleased_SgNBRelReqList)) { type = 4; return true; } - else if(equal(id_UE_ContextKeptIndicator)) { type = 5; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 6; return true; } - else if(equal(id_MeNBtoSgNBContainer)) { type = 7; return true; } - else { type = 8; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SgNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_E_RABs_ToBeReleased_SgNBRelReqList);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_UE_ContextKeptIndicator);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(id_MeNBtoSgNBContainer);} return false; - case 8: type = 8; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 8; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(reject); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(reject); type=2;} - void select_id_Cause() { set(ignore); type=3;} - void select_id_E_RABs_ToBeReleased_SgNBRelReqList() { set(ignore); type=4;} - void select_id_UE_ContextKeptIndicator() { set(ignore); type=5;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(reject); type=6;} - void select_id_MeNBtoSgNBContainer() { set(reject); type=7;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else if(equal(reject)) { type = 6; return true; } - else if(equal(reject)) { type = 7; return true; } - else { type = 8; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(reject);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(reject);} return false; - case 8: type = 8; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - SgNB_UE_X2AP_ID& select_id_SgNB_UE_X2AP_ID() { return set(2); } - SgNB_UE_X2AP_ID const* get_id_SgNB_UE_X2AP_ID() const { return get(2); } - Cause& select_id_Cause() { return set(3); } - Cause const* get_id_Cause() const { return get(3); } - E_RABs_ToBeReleased_SgNBRelReqList& select_id_E_RABs_ToBeReleased_SgNBRelReqList() { return set(4); } - E_RABs_ToBeReleased_SgNBRelReqList const* get_id_E_RABs_ToBeReleased_SgNBRelReqList() const { return get(4); } - UE_ContextKeptIndicator& select_id_UE_ContextKeptIndicator() { return set(5); } - UE_ContextKeptIndicator const* get_id_UE_ContextKeptIndicator() const { return get(5); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(6); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(6); } - MeNBtoSgNBContainer& select_id_MeNBtoSgNBContainer() { return set(7); } - MeNBtoSgNBContainer const* get_id_MeNBtoSgNBContainer() const { return get(7); } - bool is_unknown() const { return type == 8; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - case 7: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - v.template operator()(7); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SgNB_UE_X2AP_ID()); return true; - case 3: v(select_id_Cause()); return true; - case 4: v(select_id_E_RABs_ToBeReleased_SgNBRelReqList()); return true; - case 5: v(select_id_UE_ContextKeptIndicator()); return true; - case 6: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 7: v(select_id_MeNBtoSgNBContainer()); return true; - case 8: if(type != 8) {clear(); asn::base::set();} type = 8; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - case 7: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(E_RABs_ToBeReleased_SgNBRelReqList)]; - char dummy3[sizeof(MeNBtoSgNBContainer)]; - char dummy4[sizeof(SgNB_UE_X2AP_ID)]; - char dummy5[sizeof(UE_ContextKeptIndicator)]; - char dummy6[sizeof(UE_X2AP_ID)]; - char dummy7[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 8; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(optional); type=2;} - void select_id_Cause() { set(mandatory); type=3;} - void select_id_E_RABs_ToBeReleased_SgNBRelReqList() { set(optional); type=4;} - void select_id_UE_ContextKeptIndicator() { set(optional); type=5;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=6;} - void select_id_MeNBtoSgNBContainer() { set(optional); type=7;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else if(equal(optional)) { type = 7; return true; } - else { type = 8; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(optional);} return false; - case 8: type = 8; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SgNBReleaseRequest ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SgNBReleaseRequest-IEs}}, - ... -} -*/ - -struct SgNBReleaseRequest : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SgNBReleaseRequest";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SgNBReleaseRequestAcknowledge-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SgNB-UE-X2AP-ID CRITICALITY ignore TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional }| - { ID id-E-RABs-Admitted-ToBeReleased-SgNBRelReqAckList CRITICALITY ignore TYPE E-RABs-Admitted-ToBeReleased-SgNBRelReqAckList PRESENCE optional }, - ... -} -*/ - -struct SgNBReleaseRequestAcknowledge_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(id_SgNB_UE_X2AP_ID); type=2;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=3;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=4;} - void select_id_E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList() { set(id_E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList); type=5;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SgNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 3; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 4; return true; } - else if(equal(id_E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SgNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(ignore); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(ignore); type=2;} - void select_id_CriticalityDiagnostics() { set(ignore); type=3;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(reject); type=4;} - void select_id_E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList() { set(ignore); type=5;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(reject)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(reject);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - SgNB_UE_X2AP_ID& select_id_SgNB_UE_X2AP_ID() { return set(2); } - SgNB_UE_X2AP_ID const* get_id_SgNB_UE_X2AP_ID() const { return get(2); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(3); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(3); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(4); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(4); } - E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList& select_id_E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList() { return set(5); } - E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList const* get_id_E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList() const { return get(5); } - bool is_unknown() const { return type == 6; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SgNB_UE_X2AP_ID()); return true; - case 3: v(select_id_CriticalityDiagnostics()); return true; - case 4: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 5: v(select_id_E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList()); return true; - case 6: if(type != 6) {clear(); asn::base::set();} type = 6; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CriticalityDiagnostics)]; - char dummy2[sizeof(E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList)]; - char dummy3[sizeof(SgNB_UE_X2AP_ID)]; - char dummy4[sizeof(UE_X2AP_ID)]; - char dummy5[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_CriticalityDiagnostics() { set(optional); type=3;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=4;} - void select_id_E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList() { set(optional); type=5;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SgNBReleaseRequestAcknowledge ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SgNBReleaseRequestAcknowledge-IEs}}, - ... -} -*/ - -struct SgNBReleaseRequestAcknowledge : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SgNBReleaseRequestAcknowledge";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SgNBReleaseRequestReject-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SgNB-UE-X2AP-ID CRITICALITY ignore TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}| - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}, - ... -} -*/ - -struct SgNBReleaseRequestReject_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(id_SgNB_UE_X2AP_ID); type=2;} - void select_id_Cause() { set(id_Cause); type=3;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=5;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SgNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_Cause)) { type = 3; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 4; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SgNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(ignore); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(ignore); type=2;} - void select_id_Cause() { set(ignore); type=3;} - void select_id_CriticalityDiagnostics() { set(ignore); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(reject); type=5;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(reject)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(reject);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - SgNB_UE_X2AP_ID& select_id_SgNB_UE_X2AP_ID() { return set(2); } - SgNB_UE_X2AP_ID const* get_id_SgNB_UE_X2AP_ID() const { return get(2); } - Cause& select_id_Cause() { return set(3); } - Cause const* get_id_Cause() const { return get(3); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(4); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(4); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(5); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(5); } - bool is_unknown() const { return type == 6; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SgNB_UE_X2AP_ID()); return true; - case 3: v(select_id_Cause()); return true; - case 4: v(select_id_CriticalityDiagnostics()); return true; - case 5: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 6: if(type != 6) {clear(); asn::base::set();} type = 6; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(CriticalityDiagnostics)]; - char dummy3[sizeof(SgNB_UE_X2AP_ID)]; - char dummy4[sizeof(UE_X2AP_ID)]; - char dummy5[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_Cause() { set(mandatory); type=3;} - void select_id_CriticalityDiagnostics() { set(optional); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=5;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SgNBReleaseRequestReject ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SgNBReleaseRequestReject-IEs}}, - ... -} -*/ - -struct SgNBReleaseRequestReject : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SgNBReleaseRequestReject";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SgNBReleaseRequired-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SgNB-UE-X2AP-ID CRITICALITY reject TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}| - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional }| - { ID id-E-RABs-ToBeReleased-SgNBRelReqdList CRITICALITY ignore TYPE E-RABs-ToBeReleased-SgNBRelReqdList PRESENCE optional }, - ... -} -*/ - -struct SgNBReleaseRequired_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(id_SgNB_UE_X2AP_ID); type=2;} - void select_id_Cause() { set(id_Cause); type=3;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=4;} - void select_id_E_RABs_ToBeReleased_SgNBRelReqdList() { set(id_E_RABs_ToBeReleased_SgNBRelReqdList); type=5;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SgNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_Cause)) { type = 3; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 4; return true; } - else if(equal(id_E_RABs_ToBeReleased_SgNBRelReqdList)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SgNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_E_RABs_ToBeReleased_SgNBRelReqdList);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(reject); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(reject); type=2;} - void select_id_Cause() { set(ignore); type=3;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(reject); type=4;} - void select_id_E_RABs_ToBeReleased_SgNBRelReqdList() { set(ignore); type=5;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(reject)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(reject);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - SgNB_UE_X2AP_ID& select_id_SgNB_UE_X2AP_ID() { return set(2); } - SgNB_UE_X2AP_ID const* get_id_SgNB_UE_X2AP_ID() const { return get(2); } - Cause& select_id_Cause() { return set(3); } - Cause const* get_id_Cause() const { return get(3); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(4); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(4); } - E_RABs_ToBeReleased_SgNBRelReqdList& select_id_E_RABs_ToBeReleased_SgNBRelReqdList() { return set(5); } - E_RABs_ToBeReleased_SgNBRelReqdList const* get_id_E_RABs_ToBeReleased_SgNBRelReqdList() const { return get(5); } - bool is_unknown() const { return type == 6; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SgNB_UE_X2AP_ID()); return true; - case 3: v(select_id_Cause()); return true; - case 4: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 5: v(select_id_E_RABs_ToBeReleased_SgNBRelReqdList()); return true; - case 6: if(type != 6) {clear(); asn::base::set();} type = 6; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(E_RABs_ToBeReleased_SgNBRelReqdList)]; - char dummy3[sizeof(SgNB_UE_X2AP_ID)]; - char dummy4[sizeof(UE_X2AP_ID)]; - char dummy5[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_Cause() { set(mandatory); type=3;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=4;} - void select_id_E_RABs_ToBeReleased_SgNBRelReqdList() { set(optional); type=5;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SgNBReleaseRequired ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SgNBReleaseRequired-IEs}}, - ... -} -*/ - -struct SgNBReleaseRequired : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SgNBReleaseRequired";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -UEContextRelease-IEs X2AP-PROTOCOL-IES ::= { - { ID id-Old-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-New-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-Old-eNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-New-eNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-SIPTO-BearerDeactivationIndication CRITICALITY ignore TYPE SIPTOBearerDeactivationIndication PRESENCE optional}| - { ID id-SgNB-UE-X2AP-ID CRITICALITY ignore TYPE SgNB-UE-X2AP-ID PRESENCE optional}, - ... -} -*/ - -struct UEContextRelease_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_Old_eNB_UE_X2AP_ID() { set(id_Old_eNB_UE_X2AP_ID); type=1;} - void select_id_New_eNB_UE_X2AP_ID() { set(id_New_eNB_UE_X2AP_ID); type=2;} - void select_id_Old_eNB_UE_X2AP_ID_Extension() { set(id_Old_eNB_UE_X2AP_ID_Extension); type=3;} - void select_id_New_eNB_UE_X2AP_ID_Extension() { set(id_New_eNB_UE_X2AP_ID_Extension); type=4;} - void select_id_SIPTO_BearerDeactivationIndication() { set(id_SIPTO_BearerDeactivationIndication); type=5;} - void select_id_SgNB_UE_X2AP_ID() { set(id_SgNB_UE_X2AP_ID); type=6;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_Old_eNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_New_eNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_Old_eNB_UE_X2AP_ID_Extension)) { type = 3; return true; } - else if(equal(id_New_eNB_UE_X2AP_ID_Extension)) { type = 4; return true; } - else if(equal(id_SIPTO_BearerDeactivationIndication)) { type = 5; return true; } - else if(equal(id_SgNB_UE_X2AP_ID)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_Old_eNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_New_eNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_Old_eNB_UE_X2AP_ID_Extension);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_New_eNB_UE_X2AP_ID_Extension);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_SIPTO_BearerDeactivationIndication);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_SgNB_UE_X2AP_ID);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_Old_eNB_UE_X2AP_ID() { set(reject); type=1;} - void select_id_New_eNB_UE_X2AP_ID() { set(reject); type=2;} - void select_id_Old_eNB_UE_X2AP_ID_Extension() { set(reject); type=3;} - void select_id_New_eNB_UE_X2AP_ID_Extension() { set(reject); type=4;} - void select_id_SIPTO_BearerDeactivationIndication() { set(ignore); type=5;} - void select_id_SgNB_UE_X2AP_ID() { set(ignore); type=6;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(reject)) { type = 3; return true; } - else if(equal(reject)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else if(equal(ignore)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(reject);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(reject);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(ignore);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_Old_eNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_Old_eNB_UE_X2AP_ID() const { return get(1); } - UE_X2AP_ID& select_id_New_eNB_UE_X2AP_ID() { return set(2); } - UE_X2AP_ID const* get_id_New_eNB_UE_X2AP_ID() const { return get(2); } - UE_X2AP_ID_Extension& select_id_Old_eNB_UE_X2AP_ID_Extension() { return set(3); } - UE_X2AP_ID_Extension const* get_id_Old_eNB_UE_X2AP_ID_Extension() const { return get(3); } - UE_X2AP_ID_Extension& select_id_New_eNB_UE_X2AP_ID_Extension() { return set(4); } - UE_X2AP_ID_Extension const* get_id_New_eNB_UE_X2AP_ID_Extension() const { return get(4); } - SIPTOBearerDeactivationIndication& select_id_SIPTO_BearerDeactivationIndication() { return set(5); } - SIPTOBearerDeactivationIndication const* get_id_SIPTO_BearerDeactivationIndication() const { return get(5); } - SgNB_UE_X2AP_ID& select_id_SgNB_UE_X2AP_ID() { return set(6); } - SgNB_UE_X2AP_ID const* get_id_SgNB_UE_X2AP_ID() const { return get(6); } - bool is_unknown() const { return type == 7; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_Old_eNB_UE_X2AP_ID()); return true; - case 2: v(select_id_New_eNB_UE_X2AP_ID()); return true; - case 3: v(select_id_Old_eNB_UE_X2AP_ID_Extension()); return true; - case 4: v(select_id_New_eNB_UE_X2AP_ID_Extension()); return true; - case 5: v(select_id_SIPTO_BearerDeactivationIndication()); return true; - case 6: v(select_id_SgNB_UE_X2AP_ID()); return true; - case 7: if(type != 7) {clear(); asn::base::set();} type = 7; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(SIPTOBearerDeactivationIndication)]; - char dummy2[sizeof(SgNB_UE_X2AP_ID)]; - char dummy3[sizeof(UE_X2AP_ID)]; - char dummy4[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_Old_eNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_New_eNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_Old_eNB_UE_X2AP_ID_Extension() { set(optional); type=3;} - void select_id_New_eNB_UE_X2AP_ID_Extension() { set(optional); type=4;} - void select_id_SIPTO_BearerDeactivationIndication() { set(optional); type=5;} - void select_id_SgNB_UE_X2AP_ID() { set(optional); type=6;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -UEContextRelease ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{UEContextRelease-IEs}}, - ... -} -*/ - -struct UEContextRelease : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "UEContextRelease";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -X2AP-Message ::= OCTET STRING -*/ - -struct X2AP_Message : asn::ostring<> -{ - static constexpr const char* name() {return "X2AP-Message";} - using parent_t = asn::ostring<>; - -}; - -/* -X2APMessageTransfer-IEs X2AP-PROTOCOL-IES ::= { - { ID id-RNL-Header CRITICALITY reject TYPE RNL-Header PRESENCE mandatory}| - { ID id-x2APMessage CRITICALITY reject TYPE X2AP-Message PRESENCE optional}, - ... -} -*/ - -struct X2APMessageTransfer_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_RNL_Header() { set(id_RNL_Header); type=1;} - void select_id_x2APMessage() { set(id_x2APMessage); type=2;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_RNL_Header)) { type = 1; return true; } - else if(equal(id_x2APMessage)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_RNL_Header);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_x2APMessage);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_RNL_Header() { set(reject); type=1;} - void select_id_x2APMessage() { set(reject); type=2;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - RNL_Header& select_id_RNL_Header() { return set(1); } - RNL_Header const* get_id_RNL_Header() const { return get(1); } - X2AP_Message& select_id_x2APMessage() { return set(2); } - X2AP_Message const* get_id_x2APMessage() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_RNL_Header()); return true; - case 2: v(select_id_x2APMessage()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(RNL_Header)]; - char dummy2[sizeof(X2AP_Message)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_RNL_Header() { set(mandatory); type=1;} - void select_id_x2APMessage() { set(optional); type=2;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -X2APMessageTransfer ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{X2APMessageTransfer-IEs}}, - ... -} -*/ - -struct X2APMessageTransfer : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "X2APMessageTransfer";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -X2Release-IEs X2AP-PROTOCOL-IES ::= { - { ID id-GlobalENB-ID CRITICALITY reject TYPE GlobalENB-ID PRESENCE mandatory}, -... -} -*/ - -struct X2Release_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_GlobalENB_ID() { set(id_GlobalENB_ID); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_GlobalENB_ID)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_GlobalENB_ID);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_GlobalENB_ID() { set(reject); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - GlobalENB_ID& select_id_GlobalENB_ID() { return set(1); } - GlobalENB_ID const* get_id_GlobalENB_ID() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_GlobalENB_ID()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(GlobalENB_ID)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_GlobalENB_ID() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -X2Release ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{X2Release-IEs}}, - ... -} -*/ - -struct X2Release : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "X2Release";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -X2RemovalFailure-IEs X2AP-PROTOCOL-IES ::= { - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, - ... -} -*/ - -struct X2RemovalFailure_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_Cause() { set(id_Cause); type=1;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=2;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_Cause)) { type = 1; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_Cause() { set(ignore); type=1;} - void select_id_CriticalityDiagnostics() { set(ignore); type=2;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - Cause& select_id_Cause() { return set(1); } - Cause const* get_id_Cause() const { return get(1); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(2); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_Cause()); return true; - case 2: v(select_id_CriticalityDiagnostics()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(CriticalityDiagnostics)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_Cause() { set(mandatory); type=1;} - void select_id_CriticalityDiagnostics() { set(optional); type=2;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -X2RemovalFailure ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{X2RemovalFailure-IEs}}, - ... -} -*/ - -struct X2RemovalFailure : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "X2RemovalFailure";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -X2RemovalRequest-IEs X2AP-PROTOCOL-IES ::= { - { ID id-GlobalENB-ID CRITICALITY reject TYPE GlobalENB-ID PRESENCE mandatory}| - { ID id-X2RemovalThreshold CRITICALITY reject TYPE X2BenefitValue PRESENCE optional}, -... -} -*/ - -struct X2RemovalRequest_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_GlobalENB_ID() { set(id_GlobalENB_ID); type=1;} - void select_id_X2RemovalThreshold() { set(id_X2RemovalThreshold); type=2;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_GlobalENB_ID)) { type = 1; return true; } - else if(equal(id_X2RemovalThreshold)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_GlobalENB_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_X2RemovalThreshold);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_GlobalENB_ID() { set(reject); type=1;} - void select_id_X2RemovalThreshold() { set(reject); type=2;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - GlobalENB_ID& select_id_GlobalENB_ID() { return set(1); } - GlobalENB_ID const* get_id_GlobalENB_ID() const { return get(1); } - X2BenefitValue& select_id_X2RemovalThreshold() { return set(2); } - X2BenefitValue const* get_id_X2RemovalThreshold() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_GlobalENB_ID()); return true; - case 2: v(select_id_X2RemovalThreshold()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(GlobalENB_ID)]; - char dummy2[sizeof(X2BenefitValue)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_GlobalENB_ID() { set(mandatory); type=1;} - void select_id_X2RemovalThreshold() { set(optional); type=2;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -X2RemovalRequest ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{X2RemovalRequest-IEs}}, - ... -} -*/ - -struct X2RemovalRequest : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "X2RemovalRequest";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -X2RemovalResponse-IEs X2AP-PROTOCOL-IES ::= { - { ID id-GlobalENB-ID CRITICALITY reject TYPE GlobalENB-ID PRESENCE mandatory}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, - ... -} -*/ - -struct X2RemovalResponse_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_GlobalENB_ID() { set(id_GlobalENB_ID); type=1;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=2;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_GlobalENB_ID)) { type = 1; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_GlobalENB_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_GlobalENB_ID() { set(reject); type=1;} - void select_id_CriticalityDiagnostics() { set(ignore); type=2;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - GlobalENB_ID& select_id_GlobalENB_ID() { return set(1); } - GlobalENB_ID const* get_id_GlobalENB_ID() const { return get(1); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(2); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_GlobalENB_ID()); return true; - case 2: v(select_id_CriticalityDiagnostics()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CriticalityDiagnostics)]; - char dummy2[sizeof(GlobalENB_ID)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_GlobalENB_ID() { set(mandatory); type=1;} - void select_id_CriticalityDiagnostics() { set(optional); type=2;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -X2RemovalResponse ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{X2RemovalResponse-IEs}}, - ... -} -*/ - -struct X2RemovalResponse : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "X2RemovalResponse";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -X2SetupFailure-IEs X2AP-PROTOCOL-IES ::= { - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory} | - { ID id-TimeToWait CRITICALITY ignore TYPE TimeToWait PRESENCE optional} | - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, - - ... -} -*/ - -struct X2SetupFailure_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_Cause() { set(id_Cause); type=1;} - void select_id_TimeToWait() { set(id_TimeToWait); type=2;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=3;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_Cause)) { type = 1; return true; } - else if(equal(id_TimeToWait)) { type = 2; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_TimeToWait);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_Cause() { set(ignore); type=1;} - void select_id_TimeToWait() { set(ignore); type=2;} - void select_id_CriticalityDiagnostics() { set(ignore); type=3;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - Cause& select_id_Cause() { return set(1); } - Cause const* get_id_Cause() const { return get(1); } - TimeToWait& select_id_TimeToWait() { return set(2); } - TimeToWait const* get_id_TimeToWait() const { return get(2); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(3); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(3); } - bool is_unknown() const { return type == 4; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_Cause()); return true; - case 2: v(select_id_TimeToWait()); return true; - case 3: v(select_id_CriticalityDiagnostics()); return true; - case 4: if(type != 4) {clear(); asn::base::set();} type = 4; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(CriticalityDiagnostics)]; - char dummy3[sizeof(TimeToWait)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_Cause() { set(mandatory); type=1;} - void select_id_TimeToWait() { set(optional); type=2;} - void select_id_CriticalityDiagnostics() { set(optional); type=3;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -X2SetupFailure ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{X2SetupFailure-IEs}}, - ... -} -*/ - -struct X2SetupFailure : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "X2SetupFailure";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -X2SetupRequest-IEs X2AP-PROTOCOL-IES ::= { - { ID id-GlobalENB-ID CRITICALITY reject TYPE GlobalENB-ID PRESENCE mandatory}| - { ID id-ServedCells CRITICALITY reject TYPE ServedCells PRESENCE mandatory}| - { ID id-GUGroupIDList CRITICALITY reject TYPE GUGroupIDList PRESENCE optional}| - { ID id-LHN-ID CRITICALITY ignore TYPE LHN-ID PRESENCE optional}, -... -} -*/ - -struct X2SetupRequest_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_GlobalENB_ID() { set(id_GlobalENB_ID); type=1;} - void select_id_ServedCells() { set(id_ServedCells); type=2;} - void select_id_GUGroupIDList() { set(id_GUGroupIDList); type=3;} - void select_id_LHN_ID() { set(id_LHN_ID); type=4;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_GlobalENB_ID)) { type = 1; return true; } - else if(equal(id_ServedCells)) { type = 2; return true; } - else if(equal(id_GUGroupIDList)) { type = 3; return true; } - else if(equal(id_LHN_ID)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_GlobalENB_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_ServedCells);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_GUGroupIDList);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_LHN_ID);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_GlobalENB_ID() { set(reject); type=1;} - void select_id_ServedCells() { set(reject); type=2;} - void select_id_GUGroupIDList() { set(reject); type=3;} - void select_id_LHN_ID() { set(ignore); type=4;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(reject)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(reject);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - GlobalENB_ID& select_id_GlobalENB_ID() { return set(1); } - GlobalENB_ID const* get_id_GlobalENB_ID() const { return get(1); } - ServedCells& select_id_ServedCells() { return set(2); } - ServedCells const* get_id_ServedCells() const { return get(2); } - GUGroupIDList& select_id_GUGroupIDList() { return set(3); } - GUGroupIDList const* get_id_GUGroupIDList() const { return get(3); } - LHN_ID& select_id_LHN_ID() { return set(4); } - LHN_ID const* get_id_LHN_ID() const { return get(4); } - bool is_unknown() const { return type == 5; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_GlobalENB_ID()); return true; - case 2: v(select_id_ServedCells()); return true; - case 3: v(select_id_GUGroupIDList()); return true; - case 4: v(select_id_LHN_ID()); return true; - case 5: if(type != 5) {clear(); asn::base::set();} type = 5; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(GUGroupIDList)]; - char dummy2[sizeof(GlobalENB_ID)]; - char dummy3[sizeof(LHN_ID)]; - char dummy4[sizeof(ServedCells)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_GlobalENB_ID() { set(mandatory); type=1;} - void select_id_ServedCells() { set(mandatory); type=2;} - void select_id_GUGroupIDList() { set(optional); type=3;} - void select_id_LHN_ID() { set(optional); type=4;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -X2SetupRequest ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{X2SetupRequest-IEs}}, - ... -} -*/ - -struct X2SetupRequest : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "X2SetupRequest";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -X2SetupResponse-IEs X2AP-PROTOCOL-IES ::= { - { ID id-GlobalENB-ID CRITICALITY reject TYPE GlobalENB-ID PRESENCE mandatory}| - { ID id-ServedCells CRITICALITY reject TYPE ServedCells PRESENCE mandatory}| - { ID id-GUGroupIDList CRITICALITY reject TYPE GUGroupIDList PRESENCE optional}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| - { ID id-LHN-ID CRITICALITY ignore TYPE LHN-ID PRESENCE optional}, - ... -} -*/ - -struct X2SetupResponse_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_GlobalENB_ID() { set(id_GlobalENB_ID); type=1;} - void select_id_ServedCells() { set(id_ServedCells); type=2;} - void select_id_GUGroupIDList() { set(id_GUGroupIDList); type=3;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=4;} - void select_id_LHN_ID() { set(id_LHN_ID); type=5;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_GlobalENB_ID)) { type = 1; return true; } - else if(equal(id_ServedCells)) { type = 2; return true; } - else if(equal(id_GUGroupIDList)) { type = 3; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 4; return true; } - else if(equal(id_LHN_ID)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_GlobalENB_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_ServedCells);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_GUGroupIDList);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_LHN_ID);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_GlobalENB_ID() { set(reject); type=1;} - void select_id_ServedCells() { set(reject); type=2;} - void select_id_GUGroupIDList() { set(reject); type=3;} - void select_id_CriticalityDiagnostics() { set(ignore); type=4;} - void select_id_LHN_ID() { set(ignore); type=5;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(reject)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(reject);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - GlobalENB_ID& select_id_GlobalENB_ID() { return set(1); } - GlobalENB_ID const* get_id_GlobalENB_ID() const { return get(1); } - ServedCells& select_id_ServedCells() { return set(2); } - ServedCells const* get_id_ServedCells() const { return get(2); } - GUGroupIDList& select_id_GUGroupIDList() { return set(3); } - GUGroupIDList const* get_id_GUGroupIDList() const { return get(3); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(4); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(4); } - LHN_ID& select_id_LHN_ID() { return set(5); } - LHN_ID const* get_id_LHN_ID() const { return get(5); } - bool is_unknown() const { return type == 6; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_GlobalENB_ID()); return true; - case 2: v(select_id_ServedCells()); return true; - case 3: v(select_id_GUGroupIDList()); return true; - case 4: v(select_id_CriticalityDiagnostics()); return true; - case 5: v(select_id_LHN_ID()); return true; - case 6: if(type != 6) {clear(); asn::base::set();} type = 6; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CriticalityDiagnostics)]; - char dummy2[sizeof(GUGroupIDList)]; - char dummy3[sizeof(GlobalENB_ID)]; - char dummy4[sizeof(LHN_ID)]; - char dummy5[sizeof(ServedCells)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_GlobalENB_ID() { set(mandatory); type=1;} - void select_id_ServedCells() { set(mandatory); type=2;} - void select_id_GUGroupIDList() { set(optional); type=3;} - void select_id_CriticalityDiagnostics() { set(optional); type=4;} - void select_id_LHN_ID() { set(optional); type=5;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -X2SetupResponse ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{X2SetupResponse-IEs}}, - ... -} -*/ - -struct X2SetupResponse : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "X2SetupResponse";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; diff --git a/e2sim/previous/e2apv1sim/e2sim/src/ASN1/generated/X2AP-PDU-Descriptions.hpp b/e2sim/previous/e2apv1sim/e2sim/src/ASN1/generated/X2AP-PDU-Descriptions.hpp deleted file mode 100644 index 5fbef04..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/ASN1/generated/X2AP-PDU-Descriptions.hpp +++ /dev/null @@ -1,1537 +0,0 @@ -/***************************************************************************** -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -#pragma once - -#include "asn/asn.hpp" -static_assert(ASN_API_VERSION_MAJOR == 5, "re-generate the ASN parser's code using 'make regen-asn' (do not use -j option)"); - -#include "X2AP-CommonDataTypes.hpp" -#include "X2AP-PDU-Contents.hpp" -#include "X2AP-Constants.hpp" - -/* -X2AP-ELEMENTARY-PROCEDURE ::= CLASS { - &InitiatingMessage , - &SuccessfulOutcome OPTIONAL, - &UnsuccessfulOutcome OPTIONAL, - &procedureCode ProcedureCode UNIQUE, - &criticality Criticality DEFAULT ignore -} -WITH SYNTAX { - INITIATING MESSAGE &InitiatingMessage - [SUCCESSFUL OUTCOME &SuccessfulOutcome] - [UNSUCCESSFUL OUTCOME &UnsuccessfulOutcome] - PROCEDURE CODE &procedureCode - [CRITICALITY &criticality] -} -*/ - -struct X2AP_ELEMENTARY_PROCEDURE -{ - struct procedureCode_t : ProcedureCode - { - static constexpr const char* name() {return "procedureCode_t";} - using parent_t = ProcedureCode; - - }; - struct criticality_t : Criticality - { - static constexpr const char* name() {return "criticality_t";} - using parent_t = Criticality; - - }; - -}; -/* -X2AP-ELEMENTARY-PROCEDURES X2AP-ELEMENTARY-PROCEDURE ::= { - X2AP-ELEMENTARY-PROCEDURES-CLASS-1 | - X2AP-ELEMENTARY-PROCEDURES-CLASS-2 , - ... -} -*/ - -struct X2AP_ELEMENTARY_PROCEDURES -{ - struct InitiatingMessage_t : asn::typefield - { - ~InitiatingMessage_t() {clear();} - size_t get_index() const {return type;} - HandoverRequest& select_id_handoverPreparation() { return set(1); } - HandoverRequest const* get_id_handoverPreparation() const { return get(1); } - ResetRequest& select_id_reset() { return set(2); } - ResetRequest const* get_id_reset() const { return get(2); } - X2SetupRequest& select_id_x2Setup() { return set(3); } - X2SetupRequest const* get_id_x2Setup() const { return get(3); } - ResourceStatusRequest& select_id_resourceStatusReportingInitiation() { return set(4); } - ResourceStatusRequest const* get_id_resourceStatusReportingInitiation() const { return get(4); } - ENBConfigurationUpdate& select_id_eNBConfigurationUpdate() { return set(5); } - ENBConfigurationUpdate const* get_id_eNBConfigurationUpdate() const { return get(5); } - MobilityChangeRequest& select_id_mobilitySettingsChange() { return set(6); } - MobilityChangeRequest const* get_id_mobilitySettingsChange() const { return get(6); } - CellActivationRequest& select_id_cellActivation() { return set(7); } - CellActivationRequest const* get_id_cellActivation() const { return get(7); } - SeNBAdditionRequest& select_id_seNBAdditionPreparation() { return set(8); } - SeNBAdditionRequest const* get_id_seNBAdditionPreparation() const { return get(8); } - SeNBModificationRequest& select_id_meNBinitiatedSeNBModificationPreparation() { return set(9); } - SeNBModificationRequest const* get_id_meNBinitiatedSeNBModificationPreparation() const { return get(9); } - SeNBModificationRequired& select_id_seNBinitiatedSeNBModification() { return set(10); } - SeNBModificationRequired const* get_id_seNBinitiatedSeNBModification() const { return get(10); } - SeNBReleaseRequired& select_id_seNBinitiatedSeNBRelease() { return set(11); } - SeNBReleaseRequired const* get_id_seNBinitiatedSeNBRelease() const { return get(11); } - X2RemovalRequest& select_id_x2Removal() { return set(12); } - X2RemovalRequest const* get_id_x2Removal() const { return get(12); } - RetrieveUEContextRequest& select_id_retrieveUEContext() { return set(13); } - RetrieveUEContextRequest const* get_id_retrieveUEContext() const { return get(13); } - SgNBAdditionRequest& select_id_sgNBAdditionPreparation() { return set(14); } - SgNBAdditionRequest const* get_id_sgNBAdditionPreparation() const { return get(14); } - SgNBModificationRequest& select_id_meNBinitiatedSgNBModificationPreparation() { return set(15); } - SgNBModificationRequest const* get_id_meNBinitiatedSgNBModificationPreparation() const { return get(15); } - SgNBModificationRequired& select_id_sgNBinitiatedSgNBModification() { return set(16); } - SgNBModificationRequired const* get_id_sgNBinitiatedSgNBModification() const { return get(16); } - SgNBReleaseRequest& select_id_meNBinitiatedSgNBRelease() { return set(17); } - SgNBReleaseRequest const* get_id_meNBinitiatedSgNBRelease() const { return get(17); } - SgNBReleaseRequired& select_id_sgNBinitiatedSgNBRelease() { return set(18); } - SgNBReleaseRequired const* get_id_sgNBinitiatedSgNBRelease() const { return get(18); } - SgNBChangeRequired& select_id_sgNBChange() { return set(19); } - SgNBChangeRequired const* get_id_sgNBChange() const { return get(19); } - ENDCX2SetupRequest& select_id_endcX2Setup() { return set(20); } - ENDCX2SetupRequest const* get_id_endcX2Setup() const { return get(20); } - ENDCConfigurationUpdate& select_id_endcConfigurationUpdate() { return set(21); } - ENDCConfigurationUpdate const* get_id_endcConfigurationUpdate() const { return get(21); } - ENDCCellActivationRequest& select_id_endcCellActivation() { return set(22); } - ENDCCellActivationRequest const* get_id_endcCellActivation() const { return get(22); } - ENDCPartialResetRequired& select_id_endcPartialReset() { return set(23); } - ENDCPartialResetRequired const* get_id_endcPartialReset() const { return get(23); } - EUTRANRCellResourceCoordinationRequest& select_id_eUTRANRCellResourceCoordination() { return set(24); } - EUTRANRCellResourceCoordinationRequest const* get_id_eUTRANRCellResourceCoordination() const { return get(24); } - ENDCX2RemovalRequest& select_id_endcX2Removal() { return set(25); } - ENDCX2RemovalRequest const* get_id_endcX2Removal() const { return get(25); } - SNStatusTransfer& select_id_snStatusTransfer() { return set(26); } - SNStatusTransfer const* get_id_snStatusTransfer() const { return get(26); } - UEContextRelease& select_id_uEContextRelease() { return set(27); } - UEContextRelease const* get_id_uEContextRelease() const { return get(27); } - HandoverCancel& select_id_handoverCancel() { return set(28); } - HandoverCancel const* get_id_handoverCancel() const { return get(28); } - ErrorIndication& select_id_errorIndication() { return set(29); } - ErrorIndication const* get_id_errorIndication() const { return get(29); } - ResourceStatusUpdate& select_id_resourceStatusReporting() { return set(30); } - ResourceStatusUpdate const* get_id_resourceStatusReporting() const { return get(30); } - LoadInformation& select_id_loadIndication() { return set(31); } - LoadInformation const* get_id_loadIndication() const { return get(31); } - PrivateMessage& select_id_privateMessage() { return set(32); } - PrivateMessage const* get_id_privateMessage() const { return get(32); } - RLFIndication& select_id_rLFIndication() { return set(33); } - RLFIndication const* get_id_rLFIndication() const { return get(33); } - HandoverReport& select_id_handoverReport() { return set(34); } - HandoverReport const* get_id_handoverReport() const { return get(34); } - X2Release& select_id_x2Release() { return set(35); } - X2Release const* get_id_x2Release() const { return get(35); } - X2APMessageTransfer& select_id_x2APMessageTransfer() { return set(36); } - X2APMessageTransfer const* get_id_x2APMessageTransfer() const { return get(36); } - SeNBReconfigurationComplete& select_id_seNBReconfigurationCompletion() { return set(37); } - SeNBReconfigurationComplete const* get_id_seNBReconfigurationCompletion() const { return get(37); } - SeNBReleaseRequest& select_id_meNBinitiatedSeNBRelease() { return set(38); } - SeNBReleaseRequest const* get_id_meNBinitiatedSeNBRelease() const { return get(38); } - SeNBCounterCheckRequest& select_id_seNBCounterCheck() { return set(39); } - SeNBCounterCheckRequest const* get_id_seNBCounterCheck() const { return get(39); } - SgNBReconfigurationComplete& select_id_sgNBReconfigurationCompletion() { return set(40); } - SgNBReconfigurationComplete const* get_id_sgNBReconfigurationCompletion() const { return get(40); } - SgNBCounterCheckRequest& select_id_sgNBCounterCheck() { return set(41); } - SgNBCounterCheckRequest const* get_id_sgNBCounterCheck() const { return get(41); } - RRCTransfer& select_id_rRCTransfer() { return set(42); } - RRCTransfer const* get_id_rRCTransfer() const { return get(42); } - SecondaryRATDataUsageReport& select_id_secondaryRATDataUsageReport() { return set(43); } - SecondaryRATDataUsageReport const* get_id_secondaryRATDataUsageReport() const { return get(43); } - SgNBActivityNotification& select_id_SgNBActivityNotification() { return set(44); } - SgNBActivityNotification const* get_id_SgNBActivityNotification() const { return get(44); } - DataForwardingAddressIndication& select_id_dataForwardingAddressIndication() { return set(45); } - DataForwardingAddressIndication const* get_id_dataForwardingAddressIndication() const { return get(45); } - bool is_unknown() const { return type == 46; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - case 7: var.destroy(); break; - case 8: var.destroy(); break; - case 9: var.destroy(); break; - case 10: var.destroy(); break; - case 11: var.destroy(); break; - case 12: var.destroy(); break; - case 13: var.destroy(); break; - case 14: var.destroy(); break; - case 15: var.destroy(); break; - case 16: var.destroy(); break; - case 17: var.destroy(); break; - case 18: var.destroy(); break; - case 19: var.destroy(); break; - case 20: var.destroy(); break; - case 21: var.destroy(); break; - case 22: var.destroy(); break; - case 23: var.destroy(); break; - case 24: var.destroy(); break; - case 25: var.destroy(); break; - case 26: var.destroy(); break; - case 27: var.destroy(); break; - case 28: var.destroy(); break; - case 29: var.destroy(); break; - case 30: var.destroy(); break; - case 31: var.destroy(); break; - case 32: var.destroy(); break; - case 33: var.destroy(); break; - case 34: var.destroy(); break; - case 35: var.destroy(); break; - case 36: var.destroy(); break; - case 37: var.destroy(); break; - case 38: var.destroy(); break; - case 39: var.destroy(); break; - case 40: var.destroy(); break; - case 41: var.destroy(); break; - case 42: var.destroy(); break; - case 43: var.destroy(); break; - case 44: var.destroy(); break; - case 45: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - v.template operator()(7); - v.template operator()(8); - v.template operator()(9); - v.template operator()(10); - v.template operator()(11); - v.template operator()(12); - v.template operator()(13); - v.template operator()(14); - v.template operator()(15); - v.template operator()(16); - v.template operator()(17); - v.template operator()(18); - v.template operator()(19); - v.template operator()(20); - v.template operator()(21); - v.template operator()(22); - v.template operator()(23); - v.template operator()(24); - v.template operator()(25); - v.template operator()(26); - v.template operator()(27); - v.template operator()(28); - v.template operator()(29); - v.template operator()(30); - v.template operator()(31); - v.template operator()(32); - v.template operator()(33); - v.template operator()(34); - v.template operator()(35); - v.template operator()(36); - v.template operator()(37); - v.template operator()(38); - v.template operator()(39); - v.template operator()(40); - v.template operator()(41); - v.template operator()(42); - v.template operator()(43); - v.template operator()(44); - v.template operator()(45); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_handoverPreparation()); return true; - case 2: v(select_id_reset()); return true; - case 3: v(select_id_x2Setup()); return true; - case 4: v(select_id_resourceStatusReportingInitiation()); return true; - case 5: v(select_id_eNBConfigurationUpdate()); return true; - case 6: v(select_id_mobilitySettingsChange()); return true; - case 7: v(select_id_cellActivation()); return true; - case 8: v(select_id_seNBAdditionPreparation()); return true; - case 9: v(select_id_meNBinitiatedSeNBModificationPreparation()); return true; - case 10: v(select_id_seNBinitiatedSeNBModification()); return true; - case 11: v(select_id_seNBinitiatedSeNBRelease()); return true; - case 12: v(select_id_x2Removal()); return true; - case 13: v(select_id_retrieveUEContext()); return true; - case 14: v(select_id_sgNBAdditionPreparation()); return true; - case 15: v(select_id_meNBinitiatedSgNBModificationPreparation()); return true; - case 16: v(select_id_sgNBinitiatedSgNBModification()); return true; - case 17: v(select_id_meNBinitiatedSgNBRelease()); return true; - case 18: v(select_id_sgNBinitiatedSgNBRelease()); return true; - case 19: v(select_id_sgNBChange()); return true; - case 20: v(select_id_endcX2Setup()); return true; - case 21: v(select_id_endcConfigurationUpdate()); return true; - case 22: v(select_id_endcCellActivation()); return true; - case 23: v(select_id_endcPartialReset()); return true; - case 24: v(select_id_eUTRANRCellResourceCoordination()); return true; - case 25: v(select_id_endcX2Removal()); return true; - case 26: v(select_id_snStatusTransfer()); return true; - case 27: v(select_id_uEContextRelease()); return true; - case 28: v(select_id_handoverCancel()); return true; - case 29: v(select_id_errorIndication()); return true; - case 30: v(select_id_resourceStatusReporting()); return true; - case 31: v(select_id_loadIndication()); return true; - case 32: v(select_id_privateMessage()); return true; - case 33: v(select_id_rLFIndication()); return true; - case 34: v(select_id_handoverReport()); return true; - case 35: v(select_id_x2Release()); return true; - case 36: v(select_id_x2APMessageTransfer()); return true; - case 37: v(select_id_seNBReconfigurationCompletion()); return true; - case 38: v(select_id_meNBinitiatedSeNBRelease()); return true; - case 39: v(select_id_seNBCounterCheck()); return true; - case 40: v(select_id_sgNBReconfigurationCompletion()); return true; - case 41: v(select_id_sgNBCounterCheck()); return true; - case 42: v(select_id_rRCTransfer()); return true; - case 43: v(select_id_secondaryRATDataUsageReport()); return true; - case 44: v(select_id_SgNBActivityNotification()); return true; - case 45: v(select_id_dataForwardingAddressIndication()); return true; - case 46: if(type != 46) {clear(); asn::base::set();} type = 46; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - case 7: v(var.as()); return true; - case 8: v(var.as()); return true; - case 9: v(var.as()); return true; - case 10: v(var.as()); return true; - case 11: v(var.as()); return true; - case 12: v(var.as()); return true; - case 13: v(var.as()); return true; - case 14: v(var.as()); return true; - case 15: v(var.as()); return true; - case 16: v(var.as()); return true; - case 17: v(var.as()); return true; - case 18: v(var.as()); return true; - case 19: v(var.as()); return true; - case 20: v(var.as()); return true; - case 21: v(var.as()); return true; - case 22: v(var.as()); return true; - case 23: v(var.as()); return true; - case 24: v(var.as()); return true; - case 25: v(var.as()); return true; - case 26: v(var.as()); return true; - case 27: v(var.as()); return true; - case 28: v(var.as()); return true; - case 29: v(var.as()); return true; - case 30: v(var.as()); return true; - case 31: v(var.as()); return true; - case 32: v(var.as()); return true; - case 33: v(var.as()); return true; - case 34: v(var.as()); return true; - case 35: v(var.as()); return true; - case 36: v(var.as()); return true; - case 37: v(var.as()); return true; - case 38: v(var.as()); return true; - case 39: v(var.as()); return true; - case 40: v(var.as()); return true; - case 41: v(var.as()); return true; - case 42: v(var.as()); return true; - case 43: v(var.as()); return true; - case 44: v(var.as()); return true; - case 45: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CellActivationRequest)]; - char dummy2[sizeof(DataForwardingAddressIndication)]; - char dummy3[sizeof(ENBConfigurationUpdate)]; - char dummy4[sizeof(ENDCCellActivationRequest)]; - char dummy5[sizeof(ENDCConfigurationUpdate)]; - char dummy6[sizeof(ENDCPartialResetRequired)]; - char dummy7[sizeof(ENDCX2RemovalRequest)]; - char dummy8[sizeof(ENDCX2SetupRequest)]; - char dummy9[sizeof(EUTRANRCellResourceCoordinationRequest)]; - char dummy10[sizeof(ErrorIndication)]; - char dummy11[sizeof(HandoverCancel)]; - char dummy12[sizeof(HandoverReport)]; - char dummy13[sizeof(HandoverRequest)]; - char dummy14[sizeof(LoadInformation)]; - char dummy15[sizeof(MobilityChangeRequest)]; - char dummy16[sizeof(PrivateMessage)]; - char dummy17[sizeof(RLFIndication)]; - char dummy18[sizeof(RRCTransfer)]; - char dummy19[sizeof(ResetRequest)]; - char dummy20[sizeof(ResourceStatusRequest)]; - char dummy21[sizeof(ResourceStatusUpdate)]; - char dummy22[sizeof(RetrieveUEContextRequest)]; - char dummy23[sizeof(SNStatusTransfer)]; - char dummy24[sizeof(SeNBAdditionRequest)]; - char dummy25[sizeof(SeNBCounterCheckRequest)]; - char dummy26[sizeof(SeNBModificationRequest)]; - char dummy27[sizeof(SeNBModificationRequired)]; - char dummy28[sizeof(SeNBReconfigurationComplete)]; - char dummy29[sizeof(SeNBReleaseRequest)]; - char dummy30[sizeof(SeNBReleaseRequired)]; - char dummy31[sizeof(SecondaryRATDataUsageReport)]; - char dummy32[sizeof(SgNBActivityNotification)]; - char dummy33[sizeof(SgNBAdditionRequest)]; - char dummy34[sizeof(SgNBChangeRequired)]; - char dummy35[sizeof(SgNBCounterCheckRequest)]; - char dummy36[sizeof(SgNBModificationRequest)]; - char dummy37[sizeof(SgNBModificationRequired)]; - char dummy38[sizeof(SgNBReconfigurationComplete)]; - char dummy39[sizeof(SgNBReleaseRequest)]; - char dummy40[sizeof(SgNBReleaseRequired)]; - char dummy41[sizeof(UEContextRelease)]; - char dummy42[sizeof(X2APMessageTransfer)]; - char dummy43[sizeof(X2Release)]; - char dummy44[sizeof(X2RemovalRequest)]; - char dummy45[sizeof(X2SetupRequest)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct SuccessfulOutcome_t : asn::typefield - { - ~SuccessfulOutcome_t() {clear();} - size_t get_index() const {return type;} - HandoverRequestAcknowledge& select_id_handoverPreparation() { return set(1); } - HandoverRequestAcknowledge const* get_id_handoverPreparation() const { return get(1); } - ResetResponse& select_id_reset() { return set(2); } - ResetResponse const* get_id_reset() const { return get(2); } - X2SetupResponse& select_id_x2Setup() { return set(3); } - X2SetupResponse const* get_id_x2Setup() const { return get(3); } - ResourceStatusResponse& select_id_resourceStatusReportingInitiation() { return set(4); } - ResourceStatusResponse const* get_id_resourceStatusReportingInitiation() const { return get(4); } - ENBConfigurationUpdateAcknowledge& select_id_eNBConfigurationUpdate() { return set(5); } - ENBConfigurationUpdateAcknowledge const* get_id_eNBConfigurationUpdate() const { return get(5); } - MobilityChangeAcknowledge& select_id_mobilitySettingsChange() { return set(6); } - MobilityChangeAcknowledge const* get_id_mobilitySettingsChange() const { return get(6); } - CellActivationResponse& select_id_cellActivation() { return set(7); } - CellActivationResponse const* get_id_cellActivation() const { return get(7); } - SeNBAdditionRequestAcknowledge& select_id_seNBAdditionPreparation() { return set(8); } - SeNBAdditionRequestAcknowledge const* get_id_seNBAdditionPreparation() const { return get(8); } - SeNBModificationRequestAcknowledge& select_id_meNBinitiatedSeNBModificationPreparation() { return set(9); } - SeNBModificationRequestAcknowledge const* get_id_meNBinitiatedSeNBModificationPreparation() const { return get(9); } - SeNBModificationConfirm& select_id_seNBinitiatedSeNBModification() { return set(10); } - SeNBModificationConfirm const* get_id_seNBinitiatedSeNBModification() const { return get(10); } - SeNBReleaseConfirm& select_id_seNBinitiatedSeNBRelease() { return set(11); } - SeNBReleaseConfirm const* get_id_seNBinitiatedSeNBRelease() const { return get(11); } - X2RemovalResponse& select_id_x2Removal() { return set(12); } - X2RemovalResponse const* get_id_x2Removal() const { return get(12); } - RetrieveUEContextResponse& select_id_retrieveUEContext() { return set(13); } - RetrieveUEContextResponse const* get_id_retrieveUEContext() const { return get(13); } - SgNBAdditionRequestAcknowledge& select_id_sgNBAdditionPreparation() { return set(14); } - SgNBAdditionRequestAcknowledge const* get_id_sgNBAdditionPreparation() const { return get(14); } - SgNBModificationRequestAcknowledge& select_id_meNBinitiatedSgNBModificationPreparation() { return set(15); } - SgNBModificationRequestAcknowledge const* get_id_meNBinitiatedSgNBModificationPreparation() const { return get(15); } - SgNBModificationConfirm& select_id_sgNBinitiatedSgNBModification() { return set(16); } - SgNBModificationConfirm const* get_id_sgNBinitiatedSgNBModification() const { return get(16); } - SgNBReleaseRequestAcknowledge& select_id_meNBinitiatedSgNBRelease() { return set(17); } - SgNBReleaseRequestAcknowledge const* get_id_meNBinitiatedSgNBRelease() const { return get(17); } - SgNBReleaseConfirm& select_id_sgNBinitiatedSgNBRelease() { return set(18); } - SgNBReleaseConfirm const* get_id_sgNBinitiatedSgNBRelease() const { return get(18); } - SgNBChangeConfirm& select_id_sgNBChange() { return set(19); } - SgNBChangeConfirm const* get_id_sgNBChange() const { return get(19); } - ENDCX2SetupResponse& select_id_endcX2Setup() { return set(20); } - ENDCX2SetupResponse const* get_id_endcX2Setup() const { return get(20); } - ENDCConfigurationUpdateAcknowledge& select_id_endcConfigurationUpdate() { return set(21); } - ENDCConfigurationUpdateAcknowledge const* get_id_endcConfigurationUpdate() const { return get(21); } - ENDCCellActivationResponse& select_id_endcCellActivation() { return set(22); } - ENDCCellActivationResponse const* get_id_endcCellActivation() const { return get(22); } - ENDCPartialResetConfirm& select_id_endcPartialReset() { return set(23); } - ENDCPartialResetConfirm const* get_id_endcPartialReset() const { return get(23); } - EUTRANRCellResourceCoordinationResponse& select_id_eUTRANRCellResourceCoordination() { return set(24); } - EUTRANRCellResourceCoordinationResponse const* get_id_eUTRANRCellResourceCoordination() const { return get(24); } - ENDCX2RemovalResponse& select_id_endcX2Removal() { return set(25); } - ENDCX2RemovalResponse const* get_id_endcX2Removal() const { return get(25); } - bool is_unknown() const { return type == 46; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - case 7: var.destroy(); break; - case 8: var.destroy(); break; - case 9: var.destroy(); break; - case 10: var.destroy(); break; - case 11: var.destroy(); break; - case 12: var.destroy(); break; - case 13: var.destroy(); break; - case 14: var.destroy(); break; - case 15: var.destroy(); break; - case 16: var.destroy(); break; - case 17: var.destroy(); break; - case 18: var.destroy(); break; - case 19: var.destroy(); break; - case 20: var.destroy(); break; - case 21: var.destroy(); break; - case 22: var.destroy(); break; - case 23: var.destroy(); break; - case 24: var.destroy(); break; - case 25: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - v.template operator()(7); - v.template operator()(8); - v.template operator()(9); - v.template operator()(10); - v.template operator()(11); - v.template operator()(12); - v.template operator()(13); - v.template operator()(14); - v.template operator()(15); - v.template operator()(16); - v.template operator()(17); - v.template operator()(18); - v.template operator()(19); - v.template operator()(20); - v.template operator()(21); - v.template operator()(22); - v.template operator()(23); - v.template operator()(24); - v.template operator()(25); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_handoverPreparation()); return true; - case 2: v(select_id_reset()); return true; - case 3: v(select_id_x2Setup()); return true; - case 4: v(select_id_resourceStatusReportingInitiation()); return true; - case 5: v(select_id_eNBConfigurationUpdate()); return true; - case 6: v(select_id_mobilitySettingsChange()); return true; - case 7: v(select_id_cellActivation()); return true; - case 8: v(select_id_seNBAdditionPreparation()); return true; - case 9: v(select_id_meNBinitiatedSeNBModificationPreparation()); return true; - case 10: v(select_id_seNBinitiatedSeNBModification()); return true; - case 11: v(select_id_seNBinitiatedSeNBRelease()); return true; - case 12: v(select_id_x2Removal()); return true; - case 13: v(select_id_retrieveUEContext()); return true; - case 14: v(select_id_sgNBAdditionPreparation()); return true; - case 15: v(select_id_meNBinitiatedSgNBModificationPreparation()); return true; - case 16: v(select_id_sgNBinitiatedSgNBModification()); return true; - case 17: v(select_id_meNBinitiatedSgNBRelease()); return true; - case 18: v(select_id_sgNBinitiatedSgNBRelease()); return true; - case 19: v(select_id_sgNBChange()); return true; - case 20: v(select_id_endcX2Setup()); return true; - case 21: v(select_id_endcConfigurationUpdate()); return true; - case 22: v(select_id_endcCellActivation()); return true; - case 23: v(select_id_endcPartialReset()); return true; - case 24: v(select_id_eUTRANRCellResourceCoordination()); return true; - case 25: v(select_id_endcX2Removal()); return true; - case 46: if(type != 46) {clear(); asn::base::set();} type = 46; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - case 7: v(var.as()); return true; - case 8: v(var.as()); return true; - case 9: v(var.as()); return true; - case 10: v(var.as()); return true; - case 11: v(var.as()); return true; - case 12: v(var.as()); return true; - case 13: v(var.as()); return true; - case 14: v(var.as()); return true; - case 15: v(var.as()); return true; - case 16: v(var.as()); return true; - case 17: v(var.as()); return true; - case 18: v(var.as()); return true; - case 19: v(var.as()); return true; - case 20: v(var.as()); return true; - case 21: v(var.as()); return true; - case 22: v(var.as()); return true; - case 23: v(var.as()); return true; - case 24: v(var.as()); return true; - case 25: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CellActivationResponse)]; - char dummy2[sizeof(ENBConfigurationUpdateAcknowledge)]; - char dummy3[sizeof(ENDCCellActivationResponse)]; - char dummy4[sizeof(ENDCConfigurationUpdateAcknowledge)]; - char dummy5[sizeof(ENDCPartialResetConfirm)]; - char dummy6[sizeof(ENDCX2RemovalResponse)]; - char dummy7[sizeof(ENDCX2SetupResponse)]; - char dummy8[sizeof(EUTRANRCellResourceCoordinationResponse)]; - char dummy9[sizeof(HandoverRequestAcknowledge)]; - char dummy10[sizeof(MobilityChangeAcknowledge)]; - char dummy11[sizeof(ResetResponse)]; - char dummy12[sizeof(ResourceStatusResponse)]; - char dummy13[sizeof(RetrieveUEContextResponse)]; - char dummy14[sizeof(SeNBAdditionRequestAcknowledge)]; - char dummy15[sizeof(SeNBModificationConfirm)]; - char dummy16[sizeof(SeNBModificationRequestAcknowledge)]; - char dummy17[sizeof(SeNBReleaseConfirm)]; - char dummy18[sizeof(SgNBAdditionRequestAcknowledge)]; - char dummy19[sizeof(SgNBChangeConfirm)]; - char dummy20[sizeof(SgNBModificationConfirm)]; - char dummy21[sizeof(SgNBModificationRequestAcknowledge)]; - char dummy22[sizeof(SgNBReleaseConfirm)]; - char dummy23[sizeof(SgNBReleaseRequestAcknowledge)]; - char dummy24[sizeof(X2RemovalResponse)]; - char dummy25[sizeof(X2SetupResponse)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct UnsuccessfulOutcome_t : asn::typefield - { - ~UnsuccessfulOutcome_t() {clear();} - size_t get_index() const {return type;} - HandoverPreparationFailure& select_id_handoverPreparation() { return set(1); } - HandoverPreparationFailure const* get_id_handoverPreparation() const { return get(1); } - X2SetupFailure& select_id_x2Setup() { return set(3); } - X2SetupFailure const* get_id_x2Setup() const { return get(3); } - ResourceStatusFailure& select_id_resourceStatusReportingInitiation() { return set(4); } - ResourceStatusFailure const* get_id_resourceStatusReportingInitiation() const { return get(4); } - ENBConfigurationUpdateFailure& select_id_eNBConfigurationUpdate() { return set(5); } - ENBConfigurationUpdateFailure const* get_id_eNBConfigurationUpdate() const { return get(5); } - MobilityChangeFailure& select_id_mobilitySettingsChange() { return set(6); } - MobilityChangeFailure const* get_id_mobilitySettingsChange() const { return get(6); } - CellActivationFailure& select_id_cellActivation() { return set(7); } - CellActivationFailure const* get_id_cellActivation() const { return get(7); } - SeNBAdditionRequestReject& select_id_seNBAdditionPreparation() { return set(8); } - SeNBAdditionRequestReject const* get_id_seNBAdditionPreparation() const { return get(8); } - SeNBModificationRequestReject& select_id_meNBinitiatedSeNBModificationPreparation() { return set(9); } - SeNBModificationRequestReject const* get_id_meNBinitiatedSeNBModificationPreparation() const { return get(9); } - SeNBModificationRefuse& select_id_seNBinitiatedSeNBModification() { return set(10); } - SeNBModificationRefuse const* get_id_seNBinitiatedSeNBModification() const { return get(10); } - X2RemovalFailure& select_id_x2Removal() { return set(12); } - X2RemovalFailure const* get_id_x2Removal() const { return get(12); } - RetrieveUEContextFailure& select_id_retrieveUEContext() { return set(13); } - RetrieveUEContextFailure const* get_id_retrieveUEContext() const { return get(13); } - SgNBAdditionRequestReject& select_id_sgNBAdditionPreparation() { return set(14); } - SgNBAdditionRequestReject const* get_id_sgNBAdditionPreparation() const { return get(14); } - SgNBModificationRequestReject& select_id_meNBinitiatedSgNBModificationPreparation() { return set(15); } - SgNBModificationRequestReject const* get_id_meNBinitiatedSgNBModificationPreparation() const { return get(15); } - SgNBModificationRefuse& select_id_sgNBinitiatedSgNBModification() { return set(16); } - SgNBModificationRefuse const* get_id_sgNBinitiatedSgNBModification() const { return get(16); } - SgNBReleaseRequestReject& select_id_meNBinitiatedSgNBRelease() { return set(17); } - SgNBReleaseRequestReject const* get_id_meNBinitiatedSgNBRelease() const { return get(17); } - SgNBChangeRefuse& select_id_sgNBChange() { return set(19); } - SgNBChangeRefuse const* get_id_sgNBChange() const { return get(19); } - ENDCX2SetupFailure& select_id_endcX2Setup() { return set(20); } - ENDCX2SetupFailure const* get_id_endcX2Setup() const { return get(20); } - ENDCConfigurationUpdateFailure& select_id_endcConfigurationUpdate() { return set(21); } - ENDCConfigurationUpdateFailure const* get_id_endcConfigurationUpdate() const { return get(21); } - ENDCCellActivationFailure& select_id_endcCellActivation() { return set(22); } - ENDCCellActivationFailure const* get_id_endcCellActivation() const { return get(22); } - ENDCX2RemovalFailure& select_id_endcX2Removal() { return set(25); } - ENDCX2RemovalFailure const* get_id_endcX2Removal() const { return get(25); } - bool is_unknown() const { return type == 46; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - case 7: var.destroy(); break; - case 8: var.destroy(); break; - case 9: var.destroy(); break; - case 10: var.destroy(); break; - case 12: var.destroy(); break; - case 13: var.destroy(); break; - case 14: var.destroy(); break; - case 15: var.destroy(); break; - case 16: var.destroy(); break; - case 17: var.destroy(); break; - case 19: var.destroy(); break; - case 20: var.destroy(); break; - case 21: var.destroy(); break; - case 22: var.destroy(); break; - case 25: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - v.template operator()(7); - v.template operator()(8); - v.template operator()(9); - v.template operator()(10); - v.template operator()(12); - v.template operator()(13); - v.template operator()(14); - v.template operator()(15); - v.template operator()(16); - v.template operator()(17); - v.template operator()(19); - v.template operator()(20); - v.template operator()(21); - v.template operator()(22); - v.template operator()(25); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_handoverPreparation()); return true; - case 3: v(select_id_x2Setup()); return true; - case 4: v(select_id_resourceStatusReportingInitiation()); return true; - case 5: v(select_id_eNBConfigurationUpdate()); return true; - case 6: v(select_id_mobilitySettingsChange()); return true; - case 7: v(select_id_cellActivation()); return true; - case 8: v(select_id_seNBAdditionPreparation()); return true; - case 9: v(select_id_meNBinitiatedSeNBModificationPreparation()); return true; - case 10: v(select_id_seNBinitiatedSeNBModification()); return true; - case 12: v(select_id_x2Removal()); return true; - case 13: v(select_id_retrieveUEContext()); return true; - case 14: v(select_id_sgNBAdditionPreparation()); return true; - case 15: v(select_id_meNBinitiatedSgNBModificationPreparation()); return true; - case 16: v(select_id_sgNBinitiatedSgNBModification()); return true; - case 17: v(select_id_meNBinitiatedSgNBRelease()); return true; - case 19: v(select_id_sgNBChange()); return true; - case 20: v(select_id_endcX2Setup()); return true; - case 21: v(select_id_endcConfigurationUpdate()); return true; - case 22: v(select_id_endcCellActivation()); return true; - case 25: v(select_id_endcX2Removal()); return true; - case 46: if(type != 46) {clear(); asn::base::set();} type = 46; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - case 7: v(var.as()); return true; - case 8: v(var.as()); return true; - case 9: v(var.as()); return true; - case 10: v(var.as()); return true; - case 12: v(var.as()); return true; - case 13: v(var.as()); return true; - case 14: v(var.as()); return true; - case 15: v(var.as()); return true; - case 16: v(var.as()); return true; - case 17: v(var.as()); return true; - case 19: v(var.as()); return true; - case 20: v(var.as()); return true; - case 21: v(var.as()); return true; - case 22: v(var.as()); return true; - case 25: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CellActivationFailure)]; - char dummy2[sizeof(ENBConfigurationUpdateFailure)]; - char dummy3[sizeof(ENDCCellActivationFailure)]; - char dummy4[sizeof(ENDCConfigurationUpdateFailure)]; - char dummy5[sizeof(ENDCX2RemovalFailure)]; - char dummy6[sizeof(ENDCX2SetupFailure)]; - char dummy7[sizeof(HandoverPreparationFailure)]; - char dummy8[sizeof(MobilityChangeFailure)]; - char dummy9[sizeof(ResourceStatusFailure)]; - char dummy10[sizeof(RetrieveUEContextFailure)]; - char dummy11[sizeof(SeNBAdditionRequestReject)]; - char dummy12[sizeof(SeNBModificationRefuse)]; - char dummy13[sizeof(SeNBModificationRequestReject)]; - char dummy14[sizeof(SgNBAdditionRequestReject)]; - char dummy15[sizeof(SgNBChangeRefuse)]; - char dummy16[sizeof(SgNBModificationRefuse)]; - char dummy17[sizeof(SgNBModificationRequestReject)]; - char dummy18[sizeof(SgNBReleaseRequestReject)]; - char dummy19[sizeof(X2RemovalFailure)]; - char dummy20[sizeof(X2SetupFailure)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct procedureCode_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 46; } - void clear() {type = 0;} - void select_id_handoverPreparation() { set(id_handoverPreparation); type=1;} - void select_id_reset() { set(id_reset); type=2;} - void select_id_x2Setup() { set(id_x2Setup); type=3;} - void select_id_resourceStatusReportingInitiation() { set(id_resourceStatusReportingInitiation); type=4;} - void select_id_eNBConfigurationUpdate() { set(id_eNBConfigurationUpdate); type=5;} - void select_id_mobilitySettingsChange() { set(id_mobilitySettingsChange); type=6;} - void select_id_cellActivation() { set(id_cellActivation); type=7;} - void select_id_seNBAdditionPreparation() { set(id_seNBAdditionPreparation); type=8;} - void select_id_meNBinitiatedSeNBModificationPreparation() { set(id_meNBinitiatedSeNBModificationPreparation); type=9;} - void select_id_seNBinitiatedSeNBModification() { set(id_seNBinitiatedSeNBModification); type=10;} - void select_id_seNBinitiatedSeNBRelease() { set(id_seNBinitiatedSeNBRelease); type=11;} - void select_id_x2Removal() { set(id_x2Removal); type=12;} - void select_id_retrieveUEContext() { set(id_retrieveUEContext); type=13;} - void select_id_sgNBAdditionPreparation() { set(id_sgNBAdditionPreparation); type=14;} - void select_id_meNBinitiatedSgNBModificationPreparation() { set(id_meNBinitiatedSgNBModificationPreparation); type=15;} - void select_id_sgNBinitiatedSgNBModification() { set(id_sgNBinitiatedSgNBModification); type=16;} - void select_id_meNBinitiatedSgNBRelease() { set(id_meNBinitiatedSgNBRelease); type=17;} - void select_id_sgNBinitiatedSgNBRelease() { set(id_sgNBinitiatedSgNBRelease); type=18;} - void select_id_sgNBChange() { set(id_sgNBChange); type=19;} - void select_id_endcX2Setup() { set(id_endcX2Setup); type=20;} - void select_id_endcConfigurationUpdate() { set(id_endcConfigurationUpdate); type=21;} - void select_id_endcCellActivation() { set(id_endcCellActivation); type=22;} - void select_id_endcPartialReset() { set(id_endcPartialReset); type=23;} - void select_id_eUTRANRCellResourceCoordination() { set(id_eUTRANRCellResourceCoordination); type=24;} - void select_id_endcX2Removal() { set(id_endcX2Removal); type=25;} - void select_id_snStatusTransfer() { set(id_snStatusTransfer); type=26;} - void select_id_uEContextRelease() { set(id_uEContextRelease); type=27;} - void select_id_handoverCancel() { set(id_handoverCancel); type=28;} - void select_id_errorIndication() { set(id_errorIndication); type=29;} - void select_id_resourceStatusReporting() { set(id_resourceStatusReporting); type=30;} - void select_id_loadIndication() { set(id_loadIndication); type=31;} - void select_id_privateMessage() { set(id_privateMessage); type=32;} - void select_id_rLFIndication() { set(id_rLFIndication); type=33;} - void select_id_handoverReport() { set(id_handoverReport); type=34;} - void select_id_x2Release() { set(id_x2Release); type=35;} - void select_id_x2APMessageTransfer() { set(id_x2APMessageTransfer); type=36;} - void select_id_seNBReconfigurationCompletion() { set(id_seNBReconfigurationCompletion); type=37;} - void select_id_meNBinitiatedSeNBRelease() { set(id_meNBinitiatedSeNBRelease); type=38;} - void select_id_seNBCounterCheck() { set(id_seNBCounterCheck); type=39;} - void select_id_sgNBReconfigurationCompletion() { set(id_sgNBReconfigurationCompletion); type=40;} - void select_id_sgNBCounterCheck() { set(id_sgNBCounterCheck); type=41;} - void select_id_rRCTransfer() { set(id_rRCTransfer); type=42;} - void select_id_secondaryRATDataUsageReport() { set(id_secondaryRATDataUsageReport); type=43;} - void select_id_SgNBActivityNotification() { set(id_SgNBActivityNotification); type=44;} - void select_id_dataForwardingAddressIndication() { set(id_dataForwardingAddressIndication); type=45;} - X2AP_ELEMENTARY_PROCEDURE::procedureCode_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_handoverPreparation)) { type = 1; return true; } - else if(equal(id_reset)) { type = 2; return true; } - else if(equal(id_x2Setup)) { type = 3; return true; } - else if(equal(id_resourceStatusReportingInitiation)) { type = 4; return true; } - else if(equal(id_eNBConfigurationUpdate)) { type = 5; return true; } - else if(equal(id_mobilitySettingsChange)) { type = 6; return true; } - else if(equal(id_cellActivation)) { type = 7; return true; } - else if(equal(id_seNBAdditionPreparation)) { type = 8; return true; } - else if(equal(id_meNBinitiatedSeNBModificationPreparation)) { type = 9; return true; } - else if(equal(id_seNBinitiatedSeNBModification)) { type = 10; return true; } - else if(equal(id_seNBinitiatedSeNBRelease)) { type = 11; return true; } - else if(equal(id_x2Removal)) { type = 12; return true; } - else if(equal(id_retrieveUEContext)) { type = 13; return true; } - else if(equal(id_sgNBAdditionPreparation)) { type = 14; return true; } - else if(equal(id_meNBinitiatedSgNBModificationPreparation)) { type = 15; return true; } - else if(equal(id_sgNBinitiatedSgNBModification)) { type = 16; return true; } - else if(equal(id_meNBinitiatedSgNBRelease)) { type = 17; return true; } - else if(equal(id_sgNBinitiatedSgNBRelease)) { type = 18; return true; } - else if(equal(id_sgNBChange)) { type = 19; return true; } - else if(equal(id_endcX2Setup)) { type = 20; return true; } - else if(equal(id_endcConfigurationUpdate)) { type = 21; return true; } - else if(equal(id_endcCellActivation)) { type = 22; return true; } - else if(equal(id_endcPartialReset)) { type = 23; return true; } - else if(equal(id_eUTRANRCellResourceCoordination)) { type = 24; return true; } - else if(equal(id_endcX2Removal)) { type = 25; return true; } - else if(equal(id_snStatusTransfer)) { type = 26; return true; } - else if(equal(id_uEContextRelease)) { type = 27; return true; } - else if(equal(id_handoverCancel)) { type = 28; return true; } - else if(equal(id_errorIndication)) { type = 29; return true; } - else if(equal(id_resourceStatusReporting)) { type = 30; return true; } - else if(equal(id_loadIndication)) { type = 31; return true; } - else if(equal(id_privateMessage)) { type = 32; return true; } - else if(equal(id_rLFIndication)) { type = 33; return true; } - else if(equal(id_handoverReport)) { type = 34; return true; } - else if(equal(id_x2Release)) { type = 35; return true; } - else if(equal(id_x2APMessageTransfer)) { type = 36; return true; } - else if(equal(id_seNBReconfigurationCompletion)) { type = 37; return true; } - else if(equal(id_meNBinitiatedSeNBRelease)) { type = 38; return true; } - else if(equal(id_seNBCounterCheck)) { type = 39; return true; } - else if(equal(id_sgNBReconfigurationCompletion)) { type = 40; return true; } - else if(equal(id_sgNBCounterCheck)) { type = 41; return true; } - else if(equal(id_rRCTransfer)) { type = 42; return true; } - else if(equal(id_secondaryRATDataUsageReport)) { type = 43; return true; } - else if(equal(id_SgNBActivityNotification)) { type = 44; return true; } - else if(equal(id_dataForwardingAddressIndication)) { type = 45; return true; } - else { type = 46; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_handoverPreparation);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_reset);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_x2Setup);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_resourceStatusReportingInitiation);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_eNBConfigurationUpdate);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_mobilitySettingsChange);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(id_cellActivation);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(id_seNBAdditionPreparation);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(id_meNBinitiatedSeNBModificationPreparation);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(id_seNBinitiatedSeNBModification);} return false; - case 11: type = 11; if(v(ref_nested())) { return equal(id_seNBinitiatedSeNBRelease);} return false; - case 12: type = 12; if(v(ref_nested())) { return equal(id_x2Removal);} return false; - case 13: type = 13; if(v(ref_nested())) { return equal(id_retrieveUEContext);} return false; - case 14: type = 14; if(v(ref_nested())) { return equal(id_sgNBAdditionPreparation);} return false; - case 15: type = 15; if(v(ref_nested())) { return equal(id_meNBinitiatedSgNBModificationPreparation);} return false; - case 16: type = 16; if(v(ref_nested())) { return equal(id_sgNBinitiatedSgNBModification);} return false; - case 17: type = 17; if(v(ref_nested())) { return equal(id_meNBinitiatedSgNBRelease);} return false; - case 18: type = 18; if(v(ref_nested())) { return equal(id_sgNBinitiatedSgNBRelease);} return false; - case 19: type = 19; if(v(ref_nested())) { return equal(id_sgNBChange);} return false; - case 20: type = 20; if(v(ref_nested())) { return equal(id_endcX2Setup);} return false; - case 21: type = 21; if(v(ref_nested())) { return equal(id_endcConfigurationUpdate);} return false; - case 22: type = 22; if(v(ref_nested())) { return equal(id_endcCellActivation);} return false; - case 23: type = 23; if(v(ref_nested())) { return equal(id_endcPartialReset);} return false; - case 24: type = 24; if(v(ref_nested())) { return equal(id_eUTRANRCellResourceCoordination);} return false; - case 25: type = 25; if(v(ref_nested())) { return equal(id_endcX2Removal);} return false; - case 26: type = 26; if(v(ref_nested())) { return equal(id_snStatusTransfer);} return false; - case 27: type = 27; if(v(ref_nested())) { return equal(id_uEContextRelease);} return false; - case 28: type = 28; if(v(ref_nested())) { return equal(id_handoverCancel);} return false; - case 29: type = 29; if(v(ref_nested())) { return equal(id_errorIndication);} return false; - case 30: type = 30; if(v(ref_nested())) { return equal(id_resourceStatusReporting);} return false; - case 31: type = 31; if(v(ref_nested())) { return equal(id_loadIndication);} return false; - case 32: type = 32; if(v(ref_nested())) { return equal(id_privateMessage);} return false; - case 33: type = 33; if(v(ref_nested())) { return equal(id_rLFIndication);} return false; - case 34: type = 34; if(v(ref_nested())) { return equal(id_handoverReport);} return false; - case 35: type = 35; if(v(ref_nested())) { return equal(id_x2Release);} return false; - case 36: type = 36; if(v(ref_nested())) { return equal(id_x2APMessageTransfer);} return false; - case 37: type = 37; if(v(ref_nested())) { return equal(id_seNBReconfigurationCompletion);} return false; - case 38: type = 38; if(v(ref_nested())) { return equal(id_meNBinitiatedSeNBRelease);} return false; - case 39: type = 39; if(v(ref_nested())) { return equal(id_seNBCounterCheck);} return false; - case 40: type = 40; if(v(ref_nested())) { return equal(id_sgNBReconfigurationCompletion);} return false; - case 41: type = 41; if(v(ref_nested())) { return equal(id_sgNBCounterCheck);} return false; - case 42: type = 42; if(v(ref_nested())) { return equal(id_rRCTransfer);} return false; - case 43: type = 43; if(v(ref_nested())) { return equal(id_secondaryRATDataUsageReport);} return false; - case 44: type = 44; if(v(ref_nested())) { return equal(id_SgNBActivityNotification);} return false; - case 45: type = 45; if(v(ref_nested())) { return equal(id_dataForwardingAddressIndication);} return false; - case 46: type = 46; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 46; } - void clear() {type = 0;} - void select_id_handoverPreparation() { set(reject); type=1;} - void select_id_reset() { set(reject); type=2;} - void select_id_x2Setup() { set(reject); type=3;} - void select_id_resourceStatusReportingInitiation() { set(reject); type=4;} - void select_id_eNBConfigurationUpdate() { set(reject); type=5;} - void select_id_mobilitySettingsChange() { set(reject); type=6;} - void select_id_cellActivation() { set(reject); type=7;} - void select_id_seNBAdditionPreparation() { set(reject); type=8;} - void select_id_meNBinitiatedSeNBModificationPreparation() { set(reject); type=9;} - void select_id_seNBinitiatedSeNBModification() { set(reject); type=10;} - void select_id_seNBinitiatedSeNBRelease() { set(reject); type=11;} - void select_id_x2Removal() { set(reject); type=12;} - void select_id_retrieveUEContext() { set(reject); type=13;} - void select_id_sgNBAdditionPreparation() { set(reject); type=14;} - void select_id_meNBinitiatedSgNBModificationPreparation() { set(reject); type=15;} - void select_id_sgNBinitiatedSgNBModification() { set(reject); type=16;} - void select_id_meNBinitiatedSgNBRelease() { set(ignore); type=17;} - void select_id_sgNBinitiatedSgNBRelease() { set(reject); type=18;} - void select_id_sgNBChange() { set(reject); type=19;} - void select_id_endcX2Setup() { set(reject); type=20;} - void select_id_endcConfigurationUpdate() { set(reject); type=21;} - void select_id_endcCellActivation() { set(reject); type=22;} - void select_id_endcPartialReset() { set(reject); type=23;} - void select_id_eUTRANRCellResourceCoordination() { set(reject); type=24;} - void select_id_endcX2Removal() { set(reject); type=25;} - void select_id_snStatusTransfer() { set(ignore); type=26;} - void select_id_uEContextRelease() { set(ignore); type=27;} - void select_id_handoverCancel() { set(ignore); type=28;} - void select_id_errorIndication() { set(ignore); type=29;} - void select_id_resourceStatusReporting() { set(ignore); type=30;} - void select_id_loadIndication() { set(ignore); type=31;} - void select_id_privateMessage() { set(ignore); type=32;} - void select_id_rLFIndication() { set(ignore); type=33;} - void select_id_handoverReport() { set(ignore); type=34;} - void select_id_x2Release() { set(reject); type=35;} - void select_id_x2APMessageTransfer() { set(reject); type=36;} - void select_id_seNBReconfigurationCompletion() { set(ignore); type=37;} - void select_id_meNBinitiatedSeNBRelease() { set(ignore); type=38;} - void select_id_seNBCounterCheck() { set(reject); type=39;} - void select_id_sgNBReconfigurationCompletion() { set(ignore); type=40;} - void select_id_sgNBCounterCheck() { set(reject); type=41;} - void select_id_rRCTransfer() { set(reject); type=42;} - void select_id_secondaryRATDataUsageReport() { set(reject); type=43;} - void select_id_SgNBActivityNotification() { set(reject); type=44;} - void select_id_dataForwardingAddressIndication() { set(ignore); type=45;} - X2AP_ELEMENTARY_PROCEDURE::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(reject)) { type = 3; return true; } - else if(equal(reject)) { type = 4; return true; } - else if(equal(reject)) { type = 5; return true; } - else if(equal(reject)) { type = 6; return true; } - else if(equal(reject)) { type = 7; return true; } - else if(equal(reject)) { type = 8; return true; } - else if(equal(reject)) { type = 9; return true; } - else if(equal(reject)) { type = 10; return true; } - else if(equal(reject)) { type = 11; return true; } - else if(equal(reject)) { type = 12; return true; } - else if(equal(reject)) { type = 13; return true; } - else if(equal(reject)) { type = 14; return true; } - else if(equal(reject)) { type = 15; return true; } - else if(equal(reject)) { type = 16; return true; } - else if(equal(ignore)) { type = 17; return true; } - else if(equal(reject)) { type = 18; return true; } - else if(equal(reject)) { type = 19; return true; } - else if(equal(reject)) { type = 20; return true; } - else if(equal(reject)) { type = 21; return true; } - else if(equal(reject)) { type = 22; return true; } - else if(equal(reject)) { type = 23; return true; } - else if(equal(reject)) { type = 24; return true; } - else if(equal(reject)) { type = 25; return true; } - else if(equal(ignore)) { type = 26; return true; } - else if(equal(ignore)) { type = 27; return true; } - else if(equal(ignore)) { type = 28; return true; } - else if(equal(ignore)) { type = 29; return true; } - else if(equal(ignore)) { type = 30; return true; } - else if(equal(ignore)) { type = 31; return true; } - else if(equal(ignore)) { type = 32; return true; } - else if(equal(ignore)) { type = 33; return true; } - else if(equal(ignore)) { type = 34; return true; } - else if(equal(reject)) { type = 35; return true; } - else if(equal(reject)) { type = 36; return true; } - else if(equal(ignore)) { type = 37; return true; } - else if(equal(ignore)) { type = 38; return true; } - else if(equal(reject)) { type = 39; return true; } - else if(equal(ignore)) { type = 40; return true; } - else if(equal(reject)) { type = 41; return true; } - else if(equal(reject)) { type = 42; return true; } - else if(equal(reject)) { type = 43; return true; } - else if(equal(reject)) { type = 44; return true; } - else if(equal(ignore)) { type = 45; return true; } - else { type = 46; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(reject);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(reject);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(reject);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(reject);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(reject);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(reject);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(reject);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(reject);} return false; - case 11: type = 11; if(v(ref_nested())) { return equal(reject);} return false; - case 12: type = 12; if(v(ref_nested())) { return equal(reject);} return false; - case 13: type = 13; if(v(ref_nested())) { return equal(reject);} return false; - case 14: type = 14; if(v(ref_nested())) { return equal(reject);} return false; - case 15: type = 15; if(v(ref_nested())) { return equal(reject);} return false; - case 16: type = 16; if(v(ref_nested())) { return equal(reject);} return false; - case 17: type = 17; if(v(ref_nested())) { return equal(ignore);} return false; - case 18: type = 18; if(v(ref_nested())) { return equal(reject);} return false; - case 19: type = 19; if(v(ref_nested())) { return equal(reject);} return false; - case 20: type = 20; if(v(ref_nested())) { return equal(reject);} return false; - case 21: type = 21; if(v(ref_nested())) { return equal(reject);} return false; - case 22: type = 22; if(v(ref_nested())) { return equal(reject);} return false; - case 23: type = 23; if(v(ref_nested())) { return equal(reject);} return false; - case 24: type = 24; if(v(ref_nested())) { return equal(reject);} return false; - case 25: type = 25; if(v(ref_nested())) { return equal(reject);} return false; - case 26: type = 26; if(v(ref_nested())) { return equal(ignore);} return false; - case 27: type = 27; if(v(ref_nested())) { return equal(ignore);} return false; - case 28: type = 28; if(v(ref_nested())) { return equal(ignore);} return false; - case 29: type = 29; if(v(ref_nested())) { return equal(ignore);} return false; - case 30: type = 30; if(v(ref_nested())) { return equal(ignore);} return false; - case 31: type = 31; if(v(ref_nested())) { return equal(ignore);} return false; - case 32: type = 32; if(v(ref_nested())) { return equal(ignore);} return false; - case 33: type = 33; if(v(ref_nested())) { return equal(ignore);} return false; - case 34: type = 34; if(v(ref_nested())) { return equal(ignore);} return false; - case 35: type = 35; if(v(ref_nested())) { return equal(reject);} return false; - case 36: type = 36; if(v(ref_nested())) { return equal(reject);} return false; - case 37: type = 37; if(v(ref_nested())) { return equal(ignore);} return false; - case 38: type = 38; if(v(ref_nested())) { return equal(ignore);} return false; - case 39: type = 39; if(v(ref_nested())) { return equal(reject);} return false; - case 40: type = 40; if(v(ref_nested())) { return equal(ignore);} return false; - case 41: type = 41; if(v(ref_nested())) { return equal(reject);} return false; - case 42: type = 42; if(v(ref_nested())) { return equal(reject);} return false; - case 43: type = 43; if(v(ref_nested())) { return equal(reject);} return false; - case 44: type = 44; if(v(ref_nested())) { return equal(reject);} return false; - case 45: type = 45; if(v(ref_nested())) { return equal(ignore);} return false; - case 46: type = 46; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -InitiatingMessage ::= SEQUENCE { - procedureCode X2AP-ELEMENTARY-PROCEDURE.&procedureCode ({X2AP-ELEMENTARY-PROCEDURES}), - criticality X2AP-ELEMENTARY-PROCEDURE.&criticality ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode}), - value X2AP-ELEMENTARY-PROCEDURE.&InitiatingMessage ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode}) -} -*/ - -struct InitiatingMessage : asn::sequence<3, 0, false, 0> -{ - static constexpr const char* name() {return "InitiatingMessage";} - using parent_t = asn::sequence<3, 0, false, 0>; - struct procedureCode_t : X2AP_ELEMENTARY_PROCEDURES::procedureCode_t - { - static constexpr const char* name() {return "procedureCode_t";} - using parent_t = typename X2AP_ELEMENTARY_PROCEDURES::procedureCode_t; - template bool decode(V& v, InitiatingMessage const& c) - { - return X2AP_ELEMENTARY_PROCEDURES::procedureCode_t::decode(v); - }; - template bool encode(V& v, InitiatingMessage const& c) const - { - return X2AP_ELEMENTARY_PROCEDURES::procedureCode_t::encode(v); - }; - }; - procedureCode_t& ref_procedureCode() {return procedureCode;} - procedureCode_t const& ref_procedureCode() const {return procedureCode;} - struct criticality_t : X2AP_ELEMENTARY_PROCEDURES::criticality_t - { - static constexpr const char* name() {return "criticality_t";} - using parent_t = typename X2AP_ELEMENTARY_PROCEDURES::criticality_t; - template bool decode(V& v, InitiatingMessage const& c) - { - return X2AP_ELEMENTARY_PROCEDURES::criticality_t::decode(c.procedureCode.get_index(), v); - }; - template bool encode(V& v, InitiatingMessage const& c) const - { - return X2AP_ELEMENTARY_PROCEDURES::criticality_t::encode(c.procedureCode.get_index(), v); - }; - }; - criticality_t& ref_criticality() {return criticality;} - criticality_t const& ref_criticality() const {return criticality;} - struct value_t : X2AP_ELEMENTARY_PROCEDURES::InitiatingMessage_t - { - static constexpr const char* name() {return "value_t";} - using parent_t = typename X2AP_ELEMENTARY_PROCEDURES::InitiatingMessage_t; - template bool decode(V& v, InitiatingMessage const& c) - { - return X2AP_ELEMENTARY_PROCEDURES::InitiatingMessage_t::decode(c.procedureCode.get_index(), v); - }; - template bool encode(V& v, InitiatingMessage const& c) const - { - return X2AP_ELEMENTARY_PROCEDURES::InitiatingMessage_t::encode(c.procedureCode.get_index(), v); - }; - }; - value_t& ref_value() {return value;} - value_t const& ref_value() const {return value;} - template void decode(V& v) - { - v(procedureCode); - v(criticality); - v(value); - - }; - template void encode(V& v) const - { - v(procedureCode); - v(criticality); - v(value); - - }; - void clear() - { - procedureCode.clear(); - criticality.clear(); - value.clear(); - - }; - private: - procedureCode_t procedureCode; - criticality_t criticality; - value_t value; - -}; -/* -SuccessfulOutcome ::= SEQUENCE { - procedureCode X2AP-ELEMENTARY-PROCEDURE.&procedureCode ({X2AP-ELEMENTARY-PROCEDURES}), - criticality X2AP-ELEMENTARY-PROCEDURE.&criticality ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode}), - value X2AP-ELEMENTARY-PROCEDURE.&SuccessfulOutcome ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode}) -} -*/ - -struct SuccessfulOutcome : asn::sequence<3, 0, false, 0> -{ - static constexpr const char* name() {return "SuccessfulOutcome";} - using parent_t = asn::sequence<3, 0, false, 0>; - struct procedureCode_t : X2AP_ELEMENTARY_PROCEDURES::procedureCode_t - { - static constexpr const char* name() {return "procedureCode_t";} - using parent_t = typename X2AP_ELEMENTARY_PROCEDURES::procedureCode_t; - template bool decode(V& v, SuccessfulOutcome const& c) - { - return X2AP_ELEMENTARY_PROCEDURES::procedureCode_t::decode(v); - }; - template bool encode(V& v, SuccessfulOutcome const& c) const - { - return X2AP_ELEMENTARY_PROCEDURES::procedureCode_t::encode(v); - }; - }; - procedureCode_t& ref_procedureCode() {return procedureCode;} - procedureCode_t const& ref_procedureCode() const {return procedureCode;} - struct criticality_t : X2AP_ELEMENTARY_PROCEDURES::criticality_t - { - static constexpr const char* name() {return "criticality_t";} - using parent_t = typename X2AP_ELEMENTARY_PROCEDURES::criticality_t; - template bool decode(V& v, SuccessfulOutcome const& c) - { - return X2AP_ELEMENTARY_PROCEDURES::criticality_t::decode(c.procedureCode.get_index(), v); - }; - template bool encode(V& v, SuccessfulOutcome const& c) const - { - return X2AP_ELEMENTARY_PROCEDURES::criticality_t::encode(c.procedureCode.get_index(), v); - }; - }; - criticality_t& ref_criticality() {return criticality;} - criticality_t const& ref_criticality() const {return criticality;} - struct value_t : X2AP_ELEMENTARY_PROCEDURES::SuccessfulOutcome_t - { - static constexpr const char* name() {return "value_t";} - using parent_t = typename X2AP_ELEMENTARY_PROCEDURES::SuccessfulOutcome_t; - template bool decode(V& v, SuccessfulOutcome const& c) - { - return X2AP_ELEMENTARY_PROCEDURES::SuccessfulOutcome_t::decode(c.procedureCode.get_index(), v); - }; - template bool encode(V& v, SuccessfulOutcome const& c) const - { - return X2AP_ELEMENTARY_PROCEDURES::SuccessfulOutcome_t::encode(c.procedureCode.get_index(), v); - }; - }; - value_t& ref_value() {return value;} - value_t const& ref_value() const {return value;} - template void decode(V& v) - { - v(procedureCode); - v(criticality); - v(value); - - }; - template void encode(V& v) const - { - v(procedureCode); - v(criticality); - v(value); - - }; - void clear() - { - procedureCode.clear(); - criticality.clear(); - value.clear(); - - }; - private: - procedureCode_t procedureCode; - criticality_t criticality; - value_t value; - -}; -/* -UnsuccessfulOutcome ::= SEQUENCE { - procedureCode X2AP-ELEMENTARY-PROCEDURE.&procedureCode ({X2AP-ELEMENTARY-PROCEDURES}), - criticality X2AP-ELEMENTARY-PROCEDURE.&criticality ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode}), - value X2AP-ELEMENTARY-PROCEDURE.&UnsuccessfulOutcome ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode}) -} -*/ - -struct UnsuccessfulOutcome : asn::sequence<3, 0, false, 0> -{ - static constexpr const char* name() {return "UnsuccessfulOutcome";} - using parent_t = asn::sequence<3, 0, false, 0>; - struct procedureCode_t : X2AP_ELEMENTARY_PROCEDURES::procedureCode_t - { - static constexpr const char* name() {return "procedureCode_t";} - using parent_t = typename X2AP_ELEMENTARY_PROCEDURES::procedureCode_t; - template bool decode(V& v, UnsuccessfulOutcome const& c) - { - return X2AP_ELEMENTARY_PROCEDURES::procedureCode_t::decode(v); - }; - template bool encode(V& v, UnsuccessfulOutcome const& c) const - { - return X2AP_ELEMENTARY_PROCEDURES::procedureCode_t::encode(v); - }; - }; - procedureCode_t& ref_procedureCode() {return procedureCode;} - procedureCode_t const& ref_procedureCode() const {return procedureCode;} - struct criticality_t : X2AP_ELEMENTARY_PROCEDURES::criticality_t - { - static constexpr const char* name() {return "criticality_t";} - using parent_t = typename X2AP_ELEMENTARY_PROCEDURES::criticality_t; - template bool decode(V& v, UnsuccessfulOutcome const& c) - { - return X2AP_ELEMENTARY_PROCEDURES::criticality_t::decode(c.procedureCode.get_index(), v); - }; - template bool encode(V& v, UnsuccessfulOutcome const& c) const - { - return X2AP_ELEMENTARY_PROCEDURES::criticality_t::encode(c.procedureCode.get_index(), v); - }; - }; - criticality_t& ref_criticality() {return criticality;} - criticality_t const& ref_criticality() const {return criticality;} - struct value_t : X2AP_ELEMENTARY_PROCEDURES::UnsuccessfulOutcome_t - { - static constexpr const char* name() {return "value_t";} - using parent_t = typename X2AP_ELEMENTARY_PROCEDURES::UnsuccessfulOutcome_t; - template bool decode(V& v, UnsuccessfulOutcome const& c) - { - return X2AP_ELEMENTARY_PROCEDURES::UnsuccessfulOutcome_t::decode(c.procedureCode.get_index(), v); - }; - template bool encode(V& v, UnsuccessfulOutcome const& c) const - { - return X2AP_ELEMENTARY_PROCEDURES::UnsuccessfulOutcome_t::encode(c.procedureCode.get_index(), v); - }; - }; - value_t& ref_value() {return value;} - value_t const& ref_value() const {return value;} - template void decode(V& v) - { - v(procedureCode); - v(criticality); - v(value); - - }; - template void encode(V& v) const - { - v(procedureCode); - v(criticality); - v(value); - - }; - void clear() - { - procedureCode.clear(); - criticality.clear(); - value.clear(); - - }; - private: - procedureCode_t procedureCode; - criticality_t criticality; - value_t value; - -}; -/* -X2AP-PDU ::= CHOICE { - initiatingMessage InitiatingMessage, - successfulOutcome SuccessfulOutcome, - unsuccessfulOutcome UnsuccessfulOutcome, - ... -} -*/ - -struct X2AP_PDU : asn::choice<3, 0, true> -{ - static constexpr const char* name() {return "X2AP-PDU";} - using parent_t = asn::choice<3, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 4;} - void set_unknown() { set_index(4); } - ~X2AP_PDU() {clear();} - struct initiatingMessage_t : InitiatingMessage - { - static constexpr const char* name() {return "initiatingMessage_t";} - using parent_t = InitiatingMessage; - - }; - struct successfulOutcome_t : SuccessfulOutcome - { - static constexpr const char* name() {return "successfulOutcome_t";} - using parent_t = SuccessfulOutcome; - - }; - struct unsuccessfulOutcome_t : UnsuccessfulOutcome - { - static constexpr const char* name() {return "unsuccessfulOutcome_t";} - using parent_t = UnsuccessfulOutcome; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - case 3: set_index(3); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - case 3: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - - } - initiatingMessage_t& select_initiatingMessage() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - initiatingMessage_t const* get_initiatingMessage() const { if(get_index() == 1) { return &var.as();} return nullptr; } - successfulOutcome_t& select_successfulOutcome() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - successfulOutcome_t const* get_successfulOutcome() const { if(get_index() == 2) { return &var.as();} return nullptr; } - unsuccessfulOutcome_t& select_unsuccessfulOutcome() { if(get_index() != 3) { clear(); set_index(3); return var.build();} return var.as();} - unsuccessfulOutcome_t const* get_unsuccessfulOutcome() const { if(get_index() == 3) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(initiatingMessage_t)]; - char dummy2[sizeof(successfulOutcome_t)]; - char dummy3[sizeof(unsuccessfulOutcome_t)]; - - }; - asn::variant var; - index_type index {0}; -}; diff --git a/e2sim/previous/e2apv1sim/e2sim/src/ASN1/lib/asn_e2ap.cpp b/e2sim/previous/e2apv1sim/e2sim/src/ASN1/lib/asn_e2ap.cpp deleted file mode 100644 index fa2fd88..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/ASN1/lib/asn_e2ap.cpp +++ /dev/null @@ -1,982 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ -#include "asn_e2ap.hpp" -#include "asn_e2ap_wrapper.hpp" - -/*----------------------------------------------------------------------- - COMMON ROUTINES -------------------------------------------------------------------------- -*/ -e2ap_pdu_t* new_e2ap_pdu(void) -{ - E2APpduWrapper* pduWrapper = new E2APpduWrapper(); - return reinterpret_cast(pduWrapper); -} - -void e2ap_asn_print(e2ap_pdu_t* pdu, char* buf, size_t buf_size) -{ - E2APpduWrapper* pduWrapper = reinterpret_cast(pdu); - - buf[0] = 0; - - strncat(buf, asn::get_printed(pduWrapper->ref_pdu()).c_str(), buf_size - 1); -} - -int e2ap_asn_per_encode(e2ap_pdu_t* pdu, unsigned char* buf, size_t buf_size, - char* err_buf, size_t err_buf_size) -{ - E2APpduWrapper* pduWrapper = reinterpret_cast(pdu); - - asn::per::EncoderCtx ctx{ buf, buf_size }; - - if (!asn::per::pack(pduWrapper->ref_pdu(), ctx)) { - err_buf[0] = 0; - //strncat(err_buf, ctx.refErrorCtx().toString().c_str(), err_buf_size - 1); - return -1; - } else { - return static_cast(ctx.refBuffer().getBytesUsed()); - } - -} - -int e2ap_asn_per_decode(e2ap_pdu_t* pdu, unsigned char const* buf, size_t buf_size, - char* err_buf, size_t err_buf_size) -{ - E2APpduWrapper* pduWrapper = reinterpret_cast(pdu); - - asn::per::DecoderCtx ctx{ buf, - buf_size, - pduWrapper->m_allocation_buffer, - pduWrapper->m_allocation_buffer_size }; - - if (!asn::per::unpack(pduWrapper->ref_pdu(), ctx)) { - err_buf[0] = 0; - //strncat(err_buf, ctx.refErrorCtx().toString().c_str(), err_buf_size - 1); - return -1; - } - - return 0; - -} - -int e2ap_get_index(e2ap_pdu_t* pdu) -{ - E2APpduWrapper* pduWrapper = reinterpret_cast(pdu); - - return pduWrapper->ref_pdu().get_index(); -} - -int e2ap_get_procedureCode(e2ap_pdu_t* pdu) -{ - E2APpduWrapper* pduWrapper = reinterpret_cast(pdu); - - switch(pduWrapper->ref_pdu().get_index()) - { - case 1: - return pduWrapper->ref_pdu().get_initiatingMessage()->ref_procedureCode().get(); - break; - - case 2: - return pduWrapper->ref_pdu().get_successfulOutcome()->ref_procedureCode().get(); - break; - - case 3: - return pduWrapper->ref_pdu().get_unsuccessfulOutcome()->ref_procedureCode().get(); - break; - - default: - return -1; - } - -} - -/*----------------------------------------------------------------------- - MESSAGE GENERATORS -------------------------------------------------------------------------- -*/ -//X2Setup -bool e2ap_init_X2SetupRequest(e2ap_pdu_t* pdu) -{ - E2APpduWrapper* pduWrapper = reinterpret_cast(pdu); - - //Initialization - pduWrapper->ref_pdu().select_initiatingMessage(); - pduWrapper->ref_pdu().select_initiatingMessage().clear(); - pduWrapper->ref_pdu().select_initiatingMessage().ref_procedureCode().select_id_x2Setup(); - pduWrapper->ref_pdu().select_initiatingMessage().ref_criticality().select_id_x2Setup(); - pduWrapper->ref_pdu().select_initiatingMessage().ref_value().select_id_x2Setup(); - - return true; -} - -bool e2ap_create_X2SetupRequest(e2ap_pdu_t* pdu, eNB_config &cfg) -{ - E2APpduWrapper* pduWrapper = reinterpret_cast(pdu); - - /* Initiaization */ - pduWrapper->ref_pdu().select_initiatingMessage().ref_procedureCode().select_id_x2Setup(); - pduWrapper->ref_pdu().select_initiatingMessage().ref_criticality().select_id_x2Setup(); - - X2SetupRequest* container = - &(pduWrapper->ref_pdu().select_initiatingMessage().ref_value().select_id_x2Setup()); - - using IE_value_t = X2SetupRequest::protocolIEs_t::value_type; - - /* X2SetupRequest-IEs : GlobalENB-ID*/ - IE_value_t* val_GlobalENB_ID = new IE_value_t; - container->ref_protocolIEs().push_back(*val_GlobalENB_ID); - - val_GlobalENB_ID->ref_id().select_id_GlobalENB_ID(); - val_GlobalENB_ID->ref_criticality().select_id_GlobalENB_ID(); - val_GlobalENB_ID->ref_value().select_id_GlobalENB_ID().ref_pLMN_Identity() - .set(3, cfg.pLMN_Identity); - val_GlobalENB_ID->ref_value().select_id_GlobalENB_ID().ref_eNB_ID() - .select_macro_eNB_ID().set_buffer(20, cfg.macro_eNB_ID); - - /* X2SetupRequest-IEs : ServedCells*/ - IE_value_t* val_ServedCells = new IE_value_t; - container->ref_protocolIEs().push_back(*val_ServedCells); - - val_ServedCells->ref_id().select_id_ServedCells(); - val_ServedCells->ref_criticality().select_id_ServedCells(); - val_ServedCells->ref_value().select_id_ServedCells(); - - //Add servedCellInfo - ServedCells::value_type* elm = new ServedCells::value_type(); - ServedCell_Information* info = &(elm->ref_servedCellInfo()); - { - //Set ServedCell-Information: pCI, cellId, tAC, broadcastPLMNs, eUTRA-Mode-Info - info->ref_pCI().set(cfg.pCI); - info->ref_cellId().ref_pLMN_Identity().set(3, cfg.pLMN_Identity); - info->ref_cellId().ref_eUTRANcellIdentifier().set_buffer(28, cfg.eUTRANcellIdentifier); - info->ref_tAC().set(2, cfg.tAC); - - BroadcastPLMNs_Item::value_type* item = new BroadcastPLMNs_Item::value_type(); - item->set(3, cfg.pLMN_Identity); - info->ref_broadcastPLMNs().push_back(*item); - - info->ref_eUTRA_Mode_Info().select_fDD().ref_uL_EARFCN().set(cfg.uL_EARFCN); - info->ref_eUTRA_Mode_Info().select_fDD().ref_dL_EARFCN().set(cfg.dL_EARFCN); - info->ref_eUTRA_Mode_Info().select_fDD().ref_uL_Transmission_Bandwidth() - .set(static_cast(cfg.uL_Bandwidth)); - info->ref_eUTRA_Mode_Info().select_fDD().ref_dL_Transmission_Bandwidth() - .set(static_cast(cfg.dL_Bandwidth)); - } - val_ServedCells->ref_value().select_id_ServedCells().push_back(*elm); - - return true; -} - -bool e2ap_create_X2SetupResponse(e2ap_pdu_t* pdu, eNB_config &cfg) -{ - E2APpduWrapper* pduWrapper = reinterpret_cast(pdu); - - /* Initiaization */ - pduWrapper->ref_pdu().select_successfulOutcome().ref_procedureCode().select_id_x2Setup(); - pduWrapper->ref_pdu().select_successfulOutcome().ref_criticality().select_id_x2Setup(); - - X2SetupResponse* container = - &(pduWrapper->ref_pdu().select_successfulOutcome().ref_value().select_id_x2Setup()); - - using IE_value_t = X2SetupResponse::protocolIEs_t::value_type; - - /* X2SetupResponse-IEs : GlobalENB-ID*/ - IE_value_t* val_GlobalENB_ID = new IE_value_t; - container->ref_protocolIEs().push_back(*val_GlobalENB_ID); - - val_GlobalENB_ID->ref_id().select_id_GlobalENB_ID(); - val_GlobalENB_ID->ref_criticality().select_id_GlobalENB_ID(); - val_GlobalENB_ID->ref_value().select_id_GlobalENB_ID().ref_pLMN_Identity() - .set(3, cfg.pLMN_Identity); - - val_GlobalENB_ID->ref_value().select_id_GlobalENB_ID().ref_eNB_ID() - .select_macro_eNB_ID().set_buffer(20, cfg.macro_eNB_ID); - - /* X2SetupResponse-IEs : ServedCells*/ - IE_value_t* val_ServedCells = new IE_value_t; - container->ref_protocolIEs().push_back(*val_ServedCells); - - val_ServedCells->ref_id().select_id_ServedCells(); - val_ServedCells->ref_criticality().select_id_ServedCells(); - val_ServedCells->ref_value().select_id_ServedCells(); - - //Add servedCellInfo - ServedCells::value_type* elm = new ServedCells::value_type(); - ServedCell_Information* info = &(elm->ref_servedCellInfo()); - { - //Set ServedCell-Information: pCI, cellId, tAC, broadcastPLMNs, eUTRA-Mode-Info - info->ref_pCI().set(cfg.pCI); - info->ref_cellId().ref_pLMN_Identity().set(3, cfg.pLMN_Identity); - info->ref_cellId().ref_eUTRANcellIdentifier().set_buffer(28, cfg.eUTRANcellIdentifier); - info->ref_tAC().set(2, cfg.tAC); - - BroadcastPLMNs_Item::value_type* item = new BroadcastPLMNs_Item::value_type(); - item->set(3, cfg.pLMN_Identity); - info->ref_broadcastPLMNs().push_back(*item); - - info->ref_eUTRA_Mode_Info().select_fDD().ref_uL_EARFCN().set(cfg.uL_EARFCN); - info->ref_eUTRA_Mode_Info().select_fDD().ref_dL_EARFCN().set(cfg.dL_EARFCN); - info->ref_eUTRA_Mode_Info().select_fDD().ref_uL_Transmission_Bandwidth() - .set(static_cast(cfg.uL_Bandwidth)); - info->ref_eUTRA_Mode_Info().select_fDD().ref_dL_Transmission_Bandwidth() - .set(static_cast(cfg.dL_Bandwidth)); - } - val_ServedCells->ref_value().select_id_ServedCells().push_back(*elm); - - return true; -} - -bool e2ap_create_X2SetupFailure(e2ap_pdu_t* pdu) -{ - E2APpduWrapper* pduWrapper = reinterpret_cast(pdu); - - /* Initiaization */ - pduWrapper->ref_pdu().select_unsuccessfulOutcome().ref_procedureCode().select_id_x2Setup(); - pduWrapper->ref_pdu().select_unsuccessfulOutcome().ref_criticality().select_id_x2Setup(); - - X2SetupFailure* container = - &(pduWrapper->ref_pdu().select_unsuccessfulOutcome().ref_value().select_id_x2Setup()); - - using IE_value_t = X2SetupFailure::protocolIEs_t::value_type; - - /* X2SetupFailure-IEs << id-Cause */ - IE_value_t* val_cause = new IE_value_t; - container->ref_protocolIEs().push_back(*val_cause); - - val_cause->ref_id().select_id_Cause(); - val_cause->ref_criticality().select_id_Cause(); - - /* Cause << radioNetwork */ - val_cause->ref_value().select_id_Cause().select_radioNetwork(); - - /* CauseRadioNetwork = ho-target-not-allowed (enum = 8)*/ - val_cause->ref_value().select_id_Cause().select_radioNetwork() - .set(static_cast(8)); - - return true; -} - -//ENDCX2Setup -bool e2ap_create_ENDCX2SetupRequest(e2ap_pdu_t* pdu, eNB_config &cfg) -{ - E2APpduWrapper* pduWrapper = reinterpret_cast(pdu); - - /* Initiaization */ - pduWrapper->ref_pdu().select_initiatingMessage().ref_procedureCode().select_id_endcX2Setup(); - pduWrapper->ref_pdu().select_initiatingMessage().ref_criticality().select_id_endcX2Setup(); - - ENDCX2SetupRequest* container = - &(pduWrapper->ref_pdu().select_initiatingMessage().ref_value().select_id_endcX2Setup()); - - using IE_value_t = ENDCX2SetupRequest::protocolIEs_t::value_type; - - /* ENDCX2SetupRequest-IEs = id-InitiatingNodeType-EndcX2Setup */ - IE_value_t* ie = new IE_value_t; - container->ref_protocolIEs().push_back(*ie); - ie->ref_id().select_id_InitiatingNodeType_EndcX2Setup(); - ie->ref_criticality().select_id_InitiatingNodeType_EndcX2Setup(); - ie->ref_value().select_id_InitiatingNodeType_EndcX2Setup(); - - /* InitiatingNodeType-EndcX2Setup = init-eNB {ENB-ENDCX2SetupReqIEs} */ - ie->ref_value().select_id_InitiatingNodeType_EndcX2Setup().select_init_eNB(); - - using eNB_val_t = InitiatingNodeType_EndcX2Setup::init_eNB_t::value_type; - - ProtocolIE_Container* eNB_node = - &(ie->ref_value().select_id_InitiatingNodeType_EndcX2Setup().select_init_eNB()); - - /* ENB-ENDCX2SetupReqIEs <-- id-GlobalENB-ID */ - eNB_val_t* val_GlobalENB_ID = new eNB_val_t; - eNB_node->push_back(*val_GlobalENB_ID); - - val_GlobalENB_ID->ref_id().select_id_GlobalENB_ID(); - val_GlobalENB_ID->ref_criticality().select_id_GlobalENB_ID(); - val_GlobalENB_ID->ref_value().select_id_GlobalENB_ID() - .ref_pLMN_Identity().set(3, cfg.pLMN_Identity); - val_GlobalENB_ID->ref_value().select_id_GlobalENB_ID().ref_eNB_ID() - .select_macro_eNB_ID().set_buffer(20, cfg.macro_eNB_ID); - - /* ENB-ENDCX2SetupReqIEs <-- id-ServedEUTRAcellsENDCX2ManagementList */ - eNB_val_t* val_EUTRAlist = new eNB_val_t; - eNB_node->push_back(*val_EUTRAlist); - - val_EUTRAlist->ref_id().select_id_ServedEUTRAcellsENDCX2ManagementList(); - val_EUTRAlist->ref_criticality().select_id_ServedEUTRAcellsENDCX2ManagementList(); - val_EUTRAlist->ref_value().select_id_ServedEUTRAcellsENDCX2ManagementList(); - - /* ServedEUTRAcellsENDCX2ManagementList <-- servedEUTRACellInfo */ - ServedEUTRAcellsENDCX2ManagementList::value_type* elm = - new ServedEUTRAcellsENDCX2ManagementList::value_type(); - ServedCell_Information* info = &(elm->ref_servedEUTRACellInfo()); - { - //Set ServedCell-Information: pCI, cellId, tAC, broadcastPLMNs, eUTRA-Mode-Info - info->ref_pCI().set(cfg.pCI); - info->ref_cellId().ref_pLMN_Identity().set(3, cfg.pLMN_Identity); - info->ref_cellId().ref_eUTRANcellIdentifier().set_buffer(28, cfg.eUTRANcellIdentifier); - info->ref_tAC().set(2, cfg.tAC); - - BroadcastPLMNs_Item::value_type* item = new BroadcastPLMNs_Item::value_type(); - item->set(3, cfg.pLMN_Identity); - info->ref_broadcastPLMNs().push_back(*item); - - info->ref_eUTRA_Mode_Info().select_fDD().ref_uL_EARFCN().set(cfg.uL_EARFCN); - info->ref_eUTRA_Mode_Info().select_fDD().ref_dL_EARFCN().set(cfg.dL_EARFCN); - info->ref_eUTRA_Mode_Info().select_fDD().ref_uL_Transmission_Bandwidth() - .set(static_cast(cfg.uL_Bandwidth)); - info->ref_eUTRA_Mode_Info().select_fDD().ref_dL_Transmission_Bandwidth() - .set(static_cast(cfg.dL_Bandwidth)); - } - val_EUTRAlist->ref_value().select_id_ServedEUTRAcellsENDCX2ManagementList() - .push_back(*elm); - - return true; -} - -bool e2ap_create_ENDCX2SetupResponse(e2ap_pdu_t* pdu, gNB_config &gnb_cfg) -{ - E2APpduWrapper* pduWrapper = reinterpret_cast(pdu); - - /* Initiaization */ - pduWrapper->ref_pdu().select_successfulOutcome().ref_procedureCode().select_id_endcX2Setup(); - pduWrapper->ref_pdu().select_successfulOutcome().ref_criticality().select_id_endcX2Setup(); - - ENDCX2SetupResponse* container = - &(pduWrapper->ref_pdu().select_successfulOutcome().ref_value().select_id_endcX2Setup()); - - using IE_value_t = ENDCX2SetupResponse::protocolIEs_t::value_type; - - /* ENDCX2SetupRequest-IEs = id-RespondingNodeType-EndcX2Setup */ - IE_value_t* ie = new IE_value_t; - container->ref_protocolIEs().push_back(*ie); - ie->ref_id().select_id_RespondingNodeType_EndcX2Setup(); - ie->ref_criticality().select_id_RespondingNodeType_EndcX2Setup(); - ie->ref_value().select_id_RespondingNodeType_EndcX2Setup(); - - /* RespondingNodeType-EndcX2Setup = respond-en-gNB {En-gNB-ENDCX2SetupReqAckIEs} */ - ie->ref_value().select_id_RespondingNodeType_EndcX2Setup().select_respond_en_gNB(); - - using gNB_val_t = RespondingNodeType_EndcX2Setup::respond_en_gNB_t::value_type; - - ProtocolIE_Container* gNB_node = - &(ie->ref_value().select_id_RespondingNodeType_EndcX2Setup().select_respond_en_gNB()); - - /* En-gNB-ENDCX2SetupReqAckIEs << id-Globalen-gNB-ID */ - gNB_val_t* val_Globalen_gNB_ID = new gNB_val_t; - gNB_node->push_back(*val_Globalen_gNB_ID); - - val_Globalen_gNB_ID->ref_id().select_id_Globalen_gNB_ID(); - val_Globalen_gNB_ID->ref_criticality().select_id_Globalen_gNB_ID(); - val_Globalen_gNB_ID->ref_value().select_id_Globalen_gNB_ID() - .ref_pLMN_Identity().set(3, gnb_cfg.pLMN_Identity); - val_Globalen_gNB_ID->ref_value().select_id_Globalen_gNB_ID().ref_gNB_ID() - .select_gNB_ID().set_buffer(22, gnb_cfg.gNB_ID); - - /* En-gNB-ENDCX2SetupReqAckIEs << id-ServedNRcellsENDCX2ManagementList */ - gNB_val_t* val_ServedNRCells = new gNB_val_t; - gNB_node->push_back(*val_ServedNRCells); - - val_ServedNRCells->ref_id().select_id_ServedNRcellsENDCX2ManagementList(); - val_ServedNRCells->ref_criticality().select_id_ServedNRcellsENDCX2ManagementList(); - val_ServedNRCells->ref_value().select_id_ServedNRcellsENDCX2ManagementList(); - - /* ServedNRcellsENDCX2ManagementList <-- servedNRCellInfo*/ - ServedNRcellsENDCX2ManagementList::value_type* elm = - new ServedNRcellsENDCX2ManagementList::value_type(); - - /* - ServedNRCell-Information ::= SEQUENCE { - nrpCI NRPCI, - nrCellID NRCGI, - fiveGS-TAC FiveGS-TAC OPTIONAL, - configured-TAC TAC OPTIONAL, - broadcastPLMNs BroadcastPLMNs-Item, - nrModeInfo CHOICE { - fdd FDD-InfoServedNRCell-Information, - tdd TDD-InfoServedNRCell-Information, - ... - }, - measurementTimingConfiguration OCTET STRING, - iE-Extensions ProtocolExtensionContainer { {ServedNRCell-Information-ExtIEs} } OPTIONAL, - ... - } - */ - ServedNRCell_Information* info = &(elm->ref_servedNRCellInfo()); - { - // nrpCI NRPCI, - info->ref_nrpCI().set(gnb_cfg.nrpCI); - - /* nrCellID NRCGI, - - NRCGI ::= SEQUENCE { - pLMN-Identity PLMN-Identity, - nRcellIdentifier NRCellIdentifier, - iE-Extensions ProtocolExtensionContainer { {NRCGI-ExtIEs} } OPTIONAL, - ... - } - */ - info->ref_nrCellID().ref_pLMN_Identity().set(3, gnb_cfg.pLMN_Identity); - info->ref_nrCellID().ref_nRcellIdentifier().set_buffer(36, gnb_cfg.nRcellIdentifier); - - /* broadcastPLMNs BroadcastPLMNs-Item */ - BroadcastPLMNs_Item::value_type* item = new BroadcastPLMNs_Item::value_type(); - item->set(3, gnb_cfg.pLMN_Identity); - info->ref_broadcastPLMNs().push_back(*item); - - /* nrModeInfo CHOICE { - fdd FDD-InfoServedNRCell-Information, - tdd TDD-InfoServedNRCell-Information, - ... - }, - - FDD-InfoServedNRCell-Information ::= SEQUENCE { - ul-NRFreqInfo NRFreqInfo, - dl-NRFreqInfo NRFreqInfo, - ul-NR-TxBW NR-TxBW, - dl-NR-TxBW NR-TxBW, - iE-Extensions ProtocolExtensionContainer { {FDD-InfoServedNRCell-Information-ExtIEs} } OPTIONAL, - ... - } - - NRFreqInfo ::= SEQUENCE{ - nRARFCN INTEGER (0.. 3279165), - freqBandListNr SEQUENCE (SIZE(1..maxnoofNrCellBands)) OF FreqBandNrItem, - sULInformation SULInformation OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {NRFreqInfo-ExtIEs} } OPTIONAL, - - ... - } - - */ - info->ref_nrModeInfo().select_fdd().ref_ul_NRFreqInfo().ref_nRARFCN().set(gnb_cfg.uL_nRARFCN); - info->ref_nrModeInfo().select_fdd().ref_dl_NRFreqInfo().ref_nRARFCN().set(gnb_cfg.dL_nRARFCN); - - /* - FreqBandNrItem ::= SEQUENCE { - freqBandIndicatorNr INTEGER (1..1024,...), - supportedSULBandList SEQUENCE (SIZE(0..maxnoofNrCellBands)) OF SupportedSULFreqBandItem, - iE-Extensions ProtocolExtensionContainer { {FreqBandNrItem-ExtIEs} } OPTIONAL, - ... - } - */ - //uplink - asn::sequenceof::value_type* ul_band_item = - new asn::sequenceof::value_type(); - { - ul_band_item->ref_freqBandIndicatorNr().set(gnb_cfg.ul_freqBandIndicatorNr); - - /* - SupportedSULFreqBandItem ::= SEQUENCE { - freqBandIndicatorNr INTEGER (1..1024,...), - iE-Extensions ProtocolExtensionContainer { {SupportedSULFreqBandItem-ExtIEs} } OPTIONAL, - ... - } - */ - - asn::sequenceof::value_type* ul_supported_band_item = - new asn::sequenceof::value_type(); - - ul_supported_band_item->ref_freqBandIndicatorNr().set(gnb_cfg.ul_freqBandIndicatorNr); - - ul_band_item->ref_supportedSULBandList().push_back(*ul_supported_band_item); - } - info->ref_nrModeInfo().select_fdd().ref_ul_NRFreqInfo() - .ref_freqBandListNr().push_back(*ul_band_item); - - //downlink - asn::sequenceof::value_type* dl_band_item = - new asn::sequenceof::value_type(); - { - dl_band_item->ref_freqBandIndicatorNr().set(gnb_cfg.dl_freqBandIndicatorNr); - - /* - SupportedSULFreqBandItem ::= SEQUENCE { - freqBandIndicatorNr INTEGER (1..1024,...), - iE-Extensions ProtocolExtensionContainer { {SupportedSULFreqBandItem-ExtIEs} } OPTIONAL, - ... - } - */ - - asn::sequenceof::value_type* dl_supported_band_item = - new asn::sequenceof::value_type(); - - dl_supported_band_item->ref_freqBandIndicatorNr().set(gnb_cfg.dl_freqBandIndicatorNr); - - dl_band_item->ref_supportedSULBandList().push_back(*dl_supported_band_item); - } - info->ref_nrModeInfo().select_fdd().ref_dl_NRFreqInfo() - .ref_freqBandListNr().push_back(*dl_band_item); - - /* - NR-TxBW ::= SEQUENCE { - nRSCS NRSCS, - nRNRB NRNRB, - iE-Extensions ProtocolExtensionContainer { {NR-TxBW-ExtIEs} } OPTIONAL, - ... - } - */ - { - info->ref_nrModeInfo().select_fdd().ref_ul_NR_TxBW().ref_nRNRB() - .set( static_cast(gnb_cfg.uL_NRNRB) ); - info->ref_nrModeInfo().select_fdd().ref_ul_NR_TxBW().ref_nRSCS() - .set( static_cast(gnb_cfg.uL_NRSCS) ); - - info->ref_nrModeInfo().select_fdd().ref_dl_NR_TxBW().ref_nRNRB() - .set( static_cast(gnb_cfg.dL_NRNRB) ); - info->ref_nrModeInfo().select_fdd().ref_dl_NR_TxBW().ref_nRSCS() - .set( static_cast(gnb_cfg.dL_NRSCS) ); - } - - /* - measurementTimingConfiguration OCTET STRING, - */ - info->ref_measurementTimingConfiguration().set(gnb_cfg.measurementTimingConfiguration); - } - val_ServedNRCells->ref_value().select_id_ServedNRcellsENDCX2ManagementList().push_back(*elm); - - - - return true; -} - -bool e2ap_create_ENDCX2SetupFailure(e2ap_pdu_t* pdu) -{ - - E2APpduWrapper* pduWrapper = reinterpret_cast(pdu); - - /* Initiaization */ - pduWrapper->ref_pdu().select_unsuccessfulOutcome().ref_procedureCode().select_id_endcX2Setup(); - pduWrapper->ref_pdu().select_unsuccessfulOutcome().ref_criticality().select_id_endcX2Setup(); - - ENDCX2SetupFailure* container = - &(pduWrapper->ref_pdu().select_unsuccessfulOutcome().ref_value().select_id_endcX2Setup()); - - using IE_value_t = ENDCX2SetupFailure::protocolIEs_t::value_type; - - /* ENDCX2SetupFailure-IEs := id-Cause*/ - IE_value_t* val_cause = new IE_value_t; - container->ref_protocolIEs().push_back(*val_cause); - - val_cause->ref_id().select_id_Cause(); - val_cause->ref_criticality().select_id_Cause(); - - /* Cause << radioNetwork */ - val_cause->ref_value().select_id_Cause().select_radioNetwork(); - - /* CauseRadioNetwork = ho-target-not-allowed (enum = 8)*/ - val_cause->ref_value().select_id_Cause().select_radioNetwork() - .set(static_cast(8)); - - return true; -} - -//RICSubscription -bool e2ap_create_RICsubscriptionRequest(e2ap_pdu_t* pdu, RICsubscription_params_t ¶ms) -{ - E2APpduWrapper* pduWrapper = reinterpret_cast(pdu); - - /* Initiaization */ - pduWrapper->ref_pdu().select_initiatingMessage() - .ref_procedureCode().select_id_ricSubscription(); - pduWrapper->ref_pdu().select_initiatingMessage() - .ref_criticality().select_id_ricSubscription(); - - RICsubscriptionRequest* container = &(pduWrapper->ref_pdu() - .select_initiatingMessage().ref_value().select_id_ricSubscription()); - - using IE_value_t = RICsubscriptionRequest::protocolIEs_t::value_type; - - /* RICsubscriptionRequest-IEs : RICrequestID */ - IE_value_t* ie_RICrequestID = new IE_value_t; - container->ref_protocolIEs().push_back(*ie_RICrequestID); - - ie_RICrequestID->ref_id().select_id_RICrequestID(); - ie_RICrequestID->ref_criticality().select_id_RICrequestID(); - ie_RICrequestID->ref_value().select_id_RICrequestID() - .ref_ricRequestorID().set(params.request_id); - ie_RICrequestID->ref_value().select_id_RICrequestID() - .ref_ricRequestSequenceNumber().set(params.seq_number); - - /* RICsubscriptionRequest-IEs : RANfunctionID */ - IE_value_t* ie_RANfunctionID = new IE_value_t; - container->ref_protocolIEs().push_back(*ie_RANfunctionID); - - ie_RANfunctionID->ref_id().select_id_RANfunctionID(); - ie_RANfunctionID->ref_criticality().select_id_RANfunctionID(); - ie_RANfunctionID->ref_value().select_id_RANfunctionID().set(params.ran_func_id); - - - /* - RICsubscription ::= SEQUENCE { - ricEventTriggerDefinition RICeventTriggerDefinition, - ricAction-ToBeSetup-List RICactions-ToBeSetup-List, - ... - } - - RICeventTriggerDefinition ::= OCTET STRING - RICactions-ToBeSetup-List ::= SEQUENCE (SIZE(1..maxofRICactionID)) OF ProtocolIE-Single-Container { {RICaction-ToBeSetup-ItemIEs} } - - RICaction-ToBeSetup-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-RICaction-ToBeSetup-Item CRITICALITY ignore TYPE RICaction-ToBeSetup-Item PRESENCE mandatory }, - ... - } - - RICaction-ToBeSetup-Item ::= SEQUENCE { - ricActionID RICactionID, - ricActionType RICactionType, - ricActionDefinition RICactionDefinition OPTIONAL, - ricSubsequentAction RICsubsequentAction OPTIONAL, - ... - } - - RICactionID ::= INTEGER (0..255) - - RICactionType ::= ENUMERATED{ - report, - insert, - policy, - ... - } - */ - - /* RICsubscriptionRequest-IEs : RICsubscription */ - IE_value_t* ie_RICsubscription = new IE_value_t; - container->ref_protocolIEs().push_back(*ie_RICsubscription); - - ie_RICsubscription->ref_id().select_id_RICsubscription(); - ie_RICsubscription->ref_criticality().select_id_RICsubscription(); - - // RICeventTriggerDefinition - ie_RICsubscription->ref_value().select_id_RICsubscription() - .ref_ricEventTriggerDefinition().set(params.event_trigger_def); - - //RICactions-ToBeSetup-List - for( auto const &action : params.actionList) - { - RICactions_ToBeSetup_List::value_type* item = - new RICactions_ToBeSetup_List::value_type(); - - ie_RICsubscription->ref_value().select_id_RICsubscription() - .ref_ricAction_ToBeSetup_List().push_back(*item); - - item->ref_id().select_id_RICaction_ToBeSetup_Item(); - item->ref_criticality().select_id_RICaction_ToBeSetup_Item(); - item->ref_value().select_id_RICaction_ToBeSetup_Item() - .ref_ricActionID().set(action.action_id); - item->ref_value().select_id_RICaction_ToBeSetup_Item() - .ref_ricActionType().set(action.action_type); - - } - - return true; -} - -bool e2ap_parse_RICsubscriptionRequest(e2ap_pdu_t* pdu, RICsubscription_params_t ¶ms) -{ - E2APpduWrapper* pduWrapper = reinterpret_cast(pdu); - - RICsubscriptionRequest* container = &(pduWrapper->ref_pdu() - .select_initiatingMessage().ref_value().select_id_ricSubscription()); - - - for(auto &e : container->ref_protocolIEs()) - { - /*See struct RICsubscriptionRequest_IEs*/ - size_t type = e.ref_value().get_index(); - - switch(type) - { - case 1: //RICrequestID - { - params.request_id = e.ref_value().select_id_RICrequestID().ref_ricRequestorID().get(); - params.seq_number = e.ref_value().select_id_RICrequestID().ref_ricRequestSequenceNumber().get(); - } - break; - - case 2: //RANfunctionID - params.ran_func_id = e.ref_value().select_id_RANfunctionID().get(); - break; - - case 3: //RICsubscription - { - auto event = e.ref_value().select_id_RICsubscription().ref_ricEventTriggerDefinition().get(); - (params.event_trigger_def).assign(std::string(event.data(), event.data() + event.size())); - - //ricAction_ToBeSetup_List - for (auto & f : e.ref_value().select_id_RICsubscription().ref_ricAction_ToBeSetup_List()) - { - RIC_action_t action; - action.action_id = f.ref_value() - .select_id_RICaction_ToBeSetup_Item().ref_ricActionID().get(); - action.action_type = static_cast(f.ref_value() - .select_id_RICaction_ToBeSetup_Item().ref_ricActionType().get()); - - params.actionList.push_back(action); - } - } - break; - - default: - printf("Unknown IE type = %d\n", (int)type); - return false; - } - } - - return true; -} - -bool e2ap_create_RICsubscriptionResponse(e2ap_pdu_t* pdu, RICsubscription_params_t ¶ms) -{ - E2APpduWrapper* pduWrapper = reinterpret_cast(pdu); - - /* Initiaization */ - pduWrapper->ref_pdu().select_successfulOutcome().ref_procedureCode().select_id_ricSubscription(); - pduWrapper->ref_pdu().select_successfulOutcome().ref_criticality().select_id_ricSubscription(); - - RICsubscriptionResponse* container = &(pduWrapper->ref_pdu() - .select_successfulOutcome().ref_value().select_id_ricSubscription()); - - using IE_value_t = RICsubscriptionResponse::protocolIEs_t::value_type; - - /* RICsubscriptionResponse-IEs : RICrequestID */ - IE_value_t* ie_RICrequestID = new IE_value_t; - container->ref_protocolIEs().push_back(*ie_RICrequestID); - - ie_RICrequestID->ref_id().select_id_RICrequestID(); - ie_RICrequestID->ref_criticality().select_id_RICrequestID(); - ie_RICrequestID->ref_value().select_id_RICrequestID() - .ref_ricRequestorID().set(params.request_id); - ie_RICrequestID->ref_value().select_id_RICrequestID() - .ref_ricRequestSequenceNumber().set(params.seq_number); - - /* RICsubscriptionResponse-IEs : RANfunctionID */ - IE_value_t* ie_RANfunctionID = new IE_value_t; - container->ref_protocolIEs().push_back(*ie_RANfunctionID); - - ie_RANfunctionID->ref_id().select_id_RANfunctionID(); - ie_RANfunctionID->ref_criticality().select_id_RANfunctionID(); - ie_RANfunctionID->ref_value().select_id_RANfunctionID().set(params.ran_func_id); - - /* RICsubscriptionResponse-IEs : RICaction-Admitted-List */ - IE_value_t* ie_admittedList = new IE_value_t; - container->ref_protocolIEs().push_back(*ie_admittedList); - - ie_admittedList->ref_id().select_id_RICactions_Admitted(); - ie_admittedList->ref_criticality().select_id_RICactions_Admitted(); - - /* RICsubscriptionResponse-IEs : RICaction-NotAdmitted-List */ - IE_value_t* ie_notAdmittedList = new IE_value_t; - container->ref_protocolIEs().push_back(*ie_notAdmittedList); - - ie_notAdmittedList->ref_id().select_id_RICactions_NotAdmitted(); - ie_notAdmittedList->ref_criticality().select_id_RICactions_NotAdmitted(); - - //add action to admitted and not-admitted list - for(auto const &a : params.actionList) - { - if(a.isAdmitted) - { - RICaction_Admitted_List::value_type* item = new RICaction_Admitted_List::value_type(); - - ie_admittedList->ref_value().select_id_RICactions_Admitted().push_back(*item); - - item->ref_id().select_id_RICaction_Admitted_Item(); - item->ref_criticality().select_id_RICaction_Admitted_Item(); - item->ref_value().select_id_RICaction_Admitted_Item().ref_ricActionID().set(a.action_id); - } - else - { - RICaction_NotAdmitted_List::value_type* item = new RICaction_NotAdmitted_List::value_type(); - - ie_notAdmittedList->ref_value().select_id_RICactions_NotAdmitted().push_back(*item); - - item->ref_id().select_id_RICaction_NotAdmitted_Item(); - item->ref_criticality().select_id_RICaction_NotAdmitted_Item(); - item->ref_value().select_id_RICaction_NotAdmitted_Item().ref_ricActionID().set(a.action_id); - - // set cause and sub-cause - switch(a.notAdmitted_cause) - { - case RICcause_radioNetwork: - item->ref_value().select_id_RICaction_NotAdmitted_Item().ref_ricCause().select_radioNetwork().set(a.notAdmitted_subCause); - break; - - case RICcause_transport: - item->ref_value().select_id_RICaction_NotAdmitted_Item().ref_ricCause().select_transport().set(a.notAdmitted_subCause); - break; - - case RICcause_protocol: - item->ref_value().select_id_RICaction_NotAdmitted_Item().ref_ricCause().select_protocol().set(a.notAdmitted_subCause); - break; - - case RICcause_misc: - item->ref_value().select_id_RICaction_NotAdmitted_Item().ref_ricCause().select_misc().set(a.notAdmitted_subCause); - break; - - case RICcause_ric: - item->ref_value().select_id_RICaction_NotAdmitted_Item().ref_ricCause().select_ric().set(a.notAdmitted_subCause); - break; - - default: - printf("Unknown cause for action not admitted = %d", (int)a.notAdmitted_cause); - } - } - } - - return true; -} - -bool e2ap_create_RICsubscriptionFailure(e2ap_pdu_t* pdu, RICsubscription_params_t ¶ms) -{ - E2APpduWrapper* pduWrapper = reinterpret_cast(pdu); - - /* Initiaization */ - pduWrapper->ref_pdu().select_unsuccessfulOutcome().ref_procedureCode().select_id_ricSubscription(); - pduWrapper->ref_pdu().select_unsuccessfulOutcome().ref_criticality().select_id_ricSubscription(); - - RICsubscriptionFailure* container = &(pduWrapper->ref_pdu() - .select_unsuccessfulOutcome().ref_value().select_id_ricSubscription()); - - using IE_value_t = RICsubscriptionFailure::protocolIEs_t::value_type; - - /* RICsubscriptionFailure-IEs : RICrequestID */ - IE_value_t* ie_RICrequestID = new IE_value_t; - container->ref_protocolIEs().push_back(*ie_RICrequestID); - - ie_RICrequestID->ref_id().select_id_RICrequestID(); - ie_RICrequestID->ref_criticality().select_id_RICrequestID(); - ie_RICrequestID->ref_value().select_id_RICrequestID() - .ref_ricRequestorID().set(params.request_id); - ie_RICrequestID->ref_value().select_id_RICrequestID() - .ref_ricRequestSequenceNumber().set(params.seq_number); - - /* RICsubscriptionFailure-IEs : RANfunctionID */ - IE_value_t* ie_RANfunctionID = new IE_value_t; - container->ref_protocolIEs().push_back(*ie_RANfunctionID); - - ie_RANfunctionID->ref_id().select_id_RANfunctionID(); - ie_RANfunctionID->ref_criticality().select_id_RANfunctionID(); - ie_RANfunctionID->ref_value().select_id_RANfunctionID().set(params.ran_func_id); - - /* RICsubscriptionFailure-IEs : RICaction-NotAdmitted-List */ - IE_value_t* ie_notAdmittedList = new IE_value_t; - container->ref_protocolIEs().push_back(*ie_notAdmittedList); - - ie_notAdmittedList->ref_id().select_id_RICactions_NotAdmitted(); - ie_notAdmittedList->ref_criticality().select_id_RICactions_NotAdmitted(); - - for(auto const &a : params.actionList) - { - if(!a.isAdmitted) - { - RICaction_NotAdmitted_List::value_type* item = new RICaction_NotAdmitted_List::value_type(); - - ie_notAdmittedList->ref_value().select_id_RICactions_NotAdmitted().push_back(*item); - - item->ref_id().select_id_RICaction_NotAdmitted_Item(); - item->ref_criticality().select_id_RICaction_NotAdmitted_Item(); - item->ref_value().select_id_RICaction_NotAdmitted_Item().ref_ricActionID().set(a.action_id); - - // set cause and sub-cause - switch(a.notAdmitted_cause) - { - case RICcause_radioNetwork: - item->ref_value().select_id_RICaction_NotAdmitted_Item().ref_ricCause().select_radioNetwork().set(a.notAdmitted_subCause); - break; - - case RICcause_transport: - item->ref_value().select_id_RICaction_NotAdmitted_Item().ref_ricCause().select_transport().set(a.notAdmitted_subCause); - break; - - case RICcause_protocol: - item->ref_value().select_id_RICaction_NotAdmitted_Item().ref_ricCause().select_protocol().set(a.notAdmitted_subCause); - break; - - case RICcause_misc: - item->ref_value().select_id_RICaction_NotAdmitted_Item().ref_ricCause().select_misc().set(a.notAdmitted_subCause); - break; - - case RICcause_ric: - item->ref_value().select_id_RICaction_NotAdmitted_Item().ref_ricCause().select_ric().set(a.notAdmitted_subCause); - break; - - default: - printf("Unknown cause for action not admitted = %d", (int)a.notAdmitted_cause); - } - } - } - - return true; -} - - -/*----------------------------------------------------------------------- - TESTS -------------------------------------------------------------------------- -*/ -void test_E2AP_X2Setup_codec(void) -{ - e2ap_pdu_t* pdu = new_e2ap_pdu(); - - // e2ap_init_X2SetupRequest(pdu); - eNB_config cfg; - e2ap_create_X2SetupRequest(pdu, cfg); - - char pdu_str[1024]; - e2ap_asn_print(pdu, pdu_str, sizeof(pdu_str)); - printf("%s\n", pdu_str); - - //Test encode - unsigned char packed_buf[4096]; - char err_buf[1024]; - - int packed_len = e2ap_asn_per_encode(pdu, packed_buf, sizeof(packed_buf), - err_buf, sizeof(err_buf)); - if(packed_len != -1) { - printf("Encode successful, packed_len = %d\n", packed_len); - } else { - printf("Encode Error: %s\n", err_buf); - } - - //Test decode - e2ap_pdu_t* pdu2 = new_e2ap_pdu(); - int rc = e2ap_asn_per_decode(pdu2, packed_buf, packed_len, err_buf, sizeof(err_buf)); - if(rc == -1) { - printf("Decode error: %s\n", err_buf); - } else { - printf("Decode successful\n"); - } - - e2ap_asn_print(pdu2, pdu_str, sizeof(pdu_str)); - printf("%s\n", pdu_str); - - printf("index = %d\n", e2ap_get_index(pdu2)); - printf("procedureCode = %d\n", e2ap_get_procedureCode(pdu2)); - - //Test X2SetupResponse - e2ap_pdu_t* pdu_resp = new_e2ap_pdu(); - e2ap_create_X2SetupResponse(pdu_resp, cfg); - e2ap_asn_print(pdu_resp, pdu_str, sizeof(pdu_str)); - printf("%s\n", pdu_str); - - //Test X2SetupFailure - e2ap_pdu_t* pdu_failure = new_e2ap_pdu(); - e2ap_create_X2SetupFailure(pdu_failure); - e2ap_asn_print(pdu_failure, pdu_str, sizeof(pdu_str)); - printf("%s \n", pdu_str); -} diff --git a/e2sim/previous/e2apv1sim/e2sim/src/ASN1/lib/asn_e2ap.hpp b/e2sim/previous/e2apv1sim/e2sim/src/ASN1/lib/asn_e2ap.hpp deleted file mode 100644 index aa858b2..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/ASN1/lib/asn_e2ap.hpp +++ /dev/null @@ -1,85 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -#ifndef ASN_E2AP_HPP -#define ASN_E2AP_HPP - -#include -#include -#include - -#include "e2ap_config.hpp" - -typedef struct c__dummy01 e2ap_pdu_t; - -/*----------------------------------------------------------------------- - COMMON ROUTINES -------------------------------------------------------------------------- -*/ -e2ap_pdu_t* new_e2ap_pdu(void); - -void e2ap_asn_print(e2ap_pdu_t* pdu, char* buf, size_t buf_size); - -int e2ap_asn_per_encode(e2ap_pdu_t* pdu, unsigned char* buf, size_t buf_size, - char* err_buf, size_t err_buf_size); - -int e2ap_asn_per_decode(e2ap_pdu_t* pdu, unsigned char const* buf, size_t buf_size, - char* err_buf, size_t err_buf_size); - -int e2ap_get_index(e2ap_pdu_t* pdu); - -int e2ap_get_procedureCode(e2ap_pdu_t* pdu); - -/*----------------------------------------------------------------------- - MESSAGE GENERATORS -------------------------------------------------------------------------- -*/ - -//X2Setup -bool e2ap_init_X2SetupRequest(e2ap_pdu_t* pdu); - -bool e2ap_create_X2SetupRequest(e2ap_pdu_t* pdu, eNB_config &cfg); - -bool e2ap_create_X2SetupResponse(e2ap_pdu_t* pdu, eNB_config &cfg); - -bool e2ap_create_X2SetupFailure(e2ap_pdu_t* pdu); - -//ENDCX2Setup -bool e2ap_create_ENDCX2SetupRequest(e2ap_pdu_t* pdu, eNB_config &cfg); - -bool e2ap_create_ENDCX2SetupResponse(e2ap_pdu_t* pdu, gNB_config &cfg); - -bool e2ap_create_ENDCX2SetupFailure(e2ap_pdu_t* pdu); - -//RIC Subscription -bool e2ap_create_RICsubscriptionRequest(e2ap_pdu_t* pdu, RICsubscription_params_t ¶ms); - -bool e2ap_parse_RICsubscriptionRequest(e2ap_pdu_t* pdu, RICsubscription_params_t ¶ms); - -bool e2ap_create_RICsubscriptionResponse(e2ap_pdu_t* pdu, RICsubscription_params_t ¶ms); - -bool e2ap_create_RICsubscriptionFailure(e2ap_pdu_t* pdu, RICsubscription_params_t ¶ms); - -/*----------------------------------------------------------------------- - TESTS -------------------------------------------------------------------------- -*/ -void test_E2AP_X2Setup_codec(void); - -#endif diff --git a/e2sim/previous/e2apv1sim/e2sim/src/ASN1/lib/asn_e2ap_wrapper.hpp b/e2sim/previous/e2apv1sim/e2sim/src/ASN1/lib/asn_e2ap_wrapper.hpp deleted file mode 100644 index 38704e8..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/ASN1/lib/asn_e2ap_wrapper.hpp +++ /dev/null @@ -1,85 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ -#ifndef ASN_E2AP_PDU_WRAPPER_HPP -#define ASN_E2AP_PDU_WRAPPER_HPP - -#include -#include -#include - -// #include - -// #include -// #include -// #include -// #include -// #include - -#include -// #include -#include -#include -#include - -#define E2AP_PDU_DEFAULT_BUFFER_SIZE 4096 - -//Credit: copied from E2-Manager -struct E2APpduWrapper -{ - unsigned char* m_allocation_buffer; - size_t m_allocation_buffer_size; - - E2APpduWrapper(size_t allocation_buffer_size = E2AP_PDU_DEFAULT_BUFFER_SIZE) - { - m_allocation_buffer_size = allocation_buffer_size; - m_allocation_buffer = 0; - if (allocation_buffer_size) { - m_allocation_buffer = - new (std::nothrow) unsigned char[allocation_buffer_size]; - m_allocator.reset( - m_allocation_buffer, - m_allocation_buffer_size); // initialized correctly on - // allocation failure. - } - } - - ~E2APpduWrapper() - { - if (m_allocation_buffer) - delete[] m_allocation_buffer; - } - - asn::allocator& ref_allocator() { return m_allocator; } - - E2AP_PDU& ref_pdu() { return m_pdu; } - - // reset pdu and allocation buffer. Allows reusing. - void clear() - { - m_pdu.clear(); - m_allocator.reset(m_allocation_buffer, m_allocation_buffer_size); - } - - private: - E2AP_PDU m_pdu; - asn::allocator m_allocator; -}; - - -#endif diff --git a/e2sim/previous/e2apv1sim/e2sim/src/ASN1/lib/asn_x2ap.cpp b/e2sim/previous/e2apv1sim/e2sim/src/ASN1/lib/asn_x2ap.cpp deleted file mode 100644 index dae9ca8..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/ASN1/lib/asn_x2ap.cpp +++ /dev/null @@ -1,428 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -#include "asn_x2ap.hpp" -#include "asn_x2ap_wrapper.hpp" - -/*----------------------------------------------------------------------- - COMMON ROUTINES -------------------------------------------------------------------------- -*/ -x2ap_pdu_t* new_x2ap_pdu(void) -{ - X2APpduWrapper* pduWrapper = new X2APpduWrapper(); - return reinterpret_cast(pduWrapper); -} - -void x2ap_asn_print(x2ap_pdu_t* pdu, char* buf, size_t buf_size) -{ - X2APpduWrapper* pduWrapper = reinterpret_cast(pdu); - - buf[0] = 0; - - strncat(buf, asn::get_printed(pduWrapper->ref_pdu()).c_str(), buf_size - 1); -} - -int x2ap_asn_per_encode(x2ap_pdu_t* pdu, unsigned char* buf, size_t buf_size, - char* err_buf, size_t err_buf_size) -{ - X2APpduWrapper* pduWrapper = reinterpret_cast(pdu); - - asn::per::EncoderCtx ctx{ buf, buf_size }; - - if (!asn::per::pack(pduWrapper->ref_pdu(), ctx)) { - err_buf[0] = 0; - // strncat(err_buf, ctx.refErrorCtx().toString().c_str(), err_buf_size - 1); - return -1; - } else { - return static_cast(ctx.refBuffer().getBytesUsed()); - } - -} - -int x2ap_asn_per_decode(x2ap_pdu_t* pdu, unsigned char const* buf, size_t buf_size, - char* err_buf, size_t err_buf_size) -{ - X2APpduWrapper* pduWrapper = reinterpret_cast(pdu); - - asn::per::DecoderCtx ctx{ buf, - buf_size, - pduWrapper->m_allocation_buffer, - pduWrapper->m_allocation_buffer_size }; - - if (!asn::per::unpack(pduWrapper->ref_pdu(), ctx)) { - err_buf[0] = 0; - // strncat(err_buf, ctx.refErrorCtx().toString().c_str(), err_buf_size - 1); - return -1; - } - - return 0; - -} - -int x2ap_get_index(x2ap_pdu_t* pdu) -{ - X2APpduWrapper* pduWrapper = reinterpret_cast(pdu); - - return pduWrapper->ref_pdu().get_index(); -} - -int x2ap_get_procedureCode(x2ap_pdu_t* pdu) -{ - X2APpduWrapper* pduWrapper = reinterpret_cast(pdu); - - switch(pduWrapper->ref_pdu().get_index()) - { - case 1: - return pduWrapper->ref_pdu().get_initiatingMessage()->ref_procedureCode().get(); - break; - - case 2: - return pduWrapper->ref_pdu().get_successfulOutcome()->ref_procedureCode().get(); - break; - - case 3: - return pduWrapper->ref_pdu().get_unsuccessfulOutcome()->ref_procedureCode().get(); - break; - - default: - return -1; - } - -} - -/*----------------------------------------------------------------------- - MESSAGE GENERATORS -------------------------------------------------------------------------- -*/ -//X2Setup -bool x2ap_init_X2SetupRequest(x2ap_pdu_t* pdu) -{ - X2APpduWrapper* pduWrapper = reinterpret_cast(pdu); - - //Initialization - pduWrapper->ref_pdu().select_initiatingMessage(); - pduWrapper->ref_pdu().select_initiatingMessage().clear(); - pduWrapper->ref_pdu().select_initiatingMessage().ref_procedureCode().select_id_x2Setup(); - pduWrapper->ref_pdu().select_initiatingMessage().ref_criticality().select_id_x2Setup(); - pduWrapper->ref_pdu().select_initiatingMessage().ref_value().select_id_x2Setup(); - - return true; -} - -bool x2ap_create_X2SetupRequest(x2ap_pdu_t* pdu, eNB_config &cfg) -{ - X2APpduWrapper* pduWrapper = reinterpret_cast(pdu); - - /* Initiaization */ - pduWrapper->ref_pdu().select_initiatingMessage().ref_procedureCode().select_id_x2Setup(); - pduWrapper->ref_pdu().select_initiatingMessage().ref_criticality().select_id_x2Setup(); - - X2SetupRequest* container = - &(pduWrapper->ref_pdu().select_initiatingMessage().ref_value().select_id_x2Setup()); - - using IE_value_t = X2SetupRequest::protocolIEs_t::value_type; - - /* X2SetupRequest-IEs : GlobalENB-ID*/ - IE_value_t* val_GlobalENB_ID = new IE_value_t; - container->ref_protocolIEs().push_back(*val_GlobalENB_ID); - - val_GlobalENB_ID->ref_id().select_id_GlobalENB_ID(); - val_GlobalENB_ID->ref_criticality().select_id_GlobalENB_ID(); - val_GlobalENB_ID->ref_value().select_id_GlobalENB_ID().ref_pLMN_Identity() - .set(3, cfg.pLMN_Identity); - - val_GlobalENB_ID->ref_value().select_id_GlobalENB_ID().ref_eNB_ID() - .select_macro_eNB_ID().set_buffer(20, cfg.macro_eNB_ID); - - /* X2SetupRequest-IEs : ServedCells*/ - IE_value_t* val_ServedCells = new IE_value_t; - container->ref_protocolIEs().push_back(*val_ServedCells); - - val_ServedCells->ref_id().select_id_ServedCells(); - val_ServedCells->ref_criticality().select_id_ServedCells(); - val_ServedCells->ref_value().select_id_ServedCells(); - - //Add servedCellInfo - ServedCells::value_type* elm = new ServedCells::value_type(); - ServedCell_Information* info = &(elm->ref_servedCellInfo()); - { - //Set ServedCell-Information: pCI, cellId, tAC, broadcastPLMNs, eUTRA-Mode-Info - info->ref_pCI().set(cfg.pCI); - info->ref_cellId().ref_pLMN_Identity().set(3, cfg.pLMN_Identity); - info->ref_cellId().ref_eUTRANcellIdentifier().set_buffer(28, cfg.eUTRANcellIdentifier); - info->ref_tAC().set(2, cfg.tAC); - - BroadcastPLMNs_Item::value_type* item = new BroadcastPLMNs_Item::value_type(); - item->set(3, cfg.pLMN_Identity); - info->ref_broadcastPLMNs().push_back(*item); - - info->ref_eUTRA_Mode_Info().select_fDD().ref_uL_EARFCN().set(cfg.uL_EARFCN); - info->ref_eUTRA_Mode_Info().select_fDD().ref_dL_EARFCN().set(cfg.dL_EARFCN); - info->ref_eUTRA_Mode_Info().select_fDD().ref_uL_Transmission_Bandwidth() - .set(static_cast(cfg.uL_Bandwidth)); - info->ref_eUTRA_Mode_Info().select_fDD().ref_dL_Transmission_Bandwidth() - .set(static_cast(cfg.dL_Bandwidth)); - } - val_ServedCells->ref_value().select_id_ServedCells().push_back(*elm); - - return true; -} - -bool x2ap_create_X2SetupResponse(x2ap_pdu_t* pdu, eNB_config &cfg) -{ - X2APpduWrapper* pduWrapper = reinterpret_cast(pdu); - - /* Initiaization */ - pduWrapper->ref_pdu().select_successfulOutcome().ref_procedureCode().select_id_x2Setup(); - pduWrapper->ref_pdu().select_successfulOutcome().ref_criticality().select_id_x2Setup(); - - X2SetupResponse* container = - &(pduWrapper->ref_pdu().select_successfulOutcome().ref_value().select_id_x2Setup()); - - using IE_value_t = X2SetupResponse::protocolIEs_t::value_type; - - /* X2SetupResponse-IEs : GlobalENB-ID*/ - IE_value_t* val_GlobalENB_ID = new IE_value_t; - container->ref_protocolIEs().push_back(*val_GlobalENB_ID); - - val_GlobalENB_ID->ref_id().select_id_GlobalENB_ID(); - val_GlobalENB_ID->ref_criticality().select_id_GlobalENB_ID(); - val_GlobalENB_ID->ref_value().select_id_GlobalENB_ID().ref_pLMN_Identity() - .set(3, cfg.pLMN_Identity); - - val_GlobalENB_ID->ref_value().select_id_GlobalENB_ID().ref_eNB_ID() - .select_macro_eNB_ID().set_buffer(20, cfg.macro_eNB_ID); - - /* X2SetupResponse-IEs : ServedCells*/ - IE_value_t* val_ServedCells = new IE_value_t; - container->ref_protocolIEs().push_back(*val_ServedCells); - - val_ServedCells->ref_id().select_id_ServedCells(); - val_ServedCells->ref_criticality().select_id_ServedCells(); - val_ServedCells->ref_value().select_id_ServedCells(); - - //Add servedCellInfo - ServedCells::value_type* elm = new ServedCells::value_type(); - ServedCell_Information* info = &(elm->ref_servedCellInfo()); - { - //Set ServedCell-Information: pCI, cellId, tAC, broadcastPLMNs, eUTRA-Mode-Info - info->ref_pCI().set(cfg.pCI); - info->ref_cellId().ref_pLMN_Identity().set(3, cfg.pLMN_Identity); - info->ref_cellId().ref_eUTRANcellIdentifier().set_buffer(28, cfg.eUTRANcellIdentifier); - info->ref_tAC().set(2, cfg.tAC); - - BroadcastPLMNs_Item::value_type* item = new BroadcastPLMNs_Item::value_type(); - item->set(3, cfg.pLMN_Identity); - info->ref_broadcastPLMNs().push_back(*item); - - info->ref_eUTRA_Mode_Info().select_fDD().ref_uL_EARFCN().set(cfg.uL_EARFCN); - info->ref_eUTRA_Mode_Info().select_fDD().ref_dL_EARFCN().set(cfg.dL_EARFCN); - info->ref_eUTRA_Mode_Info().select_fDD().ref_uL_Transmission_Bandwidth() - .set(static_cast(cfg.uL_Bandwidth)); - info->ref_eUTRA_Mode_Info().select_fDD().ref_dL_Transmission_Bandwidth() - .set(static_cast(cfg.dL_Bandwidth)); - } - val_ServedCells->ref_value().select_id_ServedCells().push_back(*elm); - - return true; -} - -bool x2ap_create_X2SetupFailure(x2ap_pdu_t* pdu) -{ - X2APpduWrapper* pduWrapper = reinterpret_cast(pdu); - - /* Initiaization */ - pduWrapper->ref_pdu().select_unsuccessfulOutcome().ref_procedureCode().select_id_x2Setup(); - pduWrapper->ref_pdu().select_unsuccessfulOutcome().ref_criticality().select_id_x2Setup(); - - X2SetupFailure* container = - &(pduWrapper->ref_pdu().select_unsuccessfulOutcome().ref_value().select_id_x2Setup()); - - using IE_value_t = X2SetupFailure::protocolIEs_t::value_type; - - /* X2SetupFailure-IEs << id-Cause */ - IE_value_t* val_cause = new IE_value_t; - container->ref_protocolIEs().push_back(*val_cause); - - val_cause->ref_id().select_id_Cause(); - val_cause->ref_criticality().select_id_Cause(); - - /* Cause << radioNetwork */ - val_cause->ref_value().select_id_Cause().select_radioNetwork(); - - /* CauseRadioNetwork = ho-target-not-allowed (enum = 8)*/ - val_cause->ref_value().select_id_Cause().select_radioNetwork() - .set(static_cast(8)); - - return true; -} - -//ENDCX2Setup -bool x2ap_create_ENDCX2SetupRequest(x2ap_pdu_t* pdu, eNB_config &cfg) -{ - X2APpduWrapper* pduWrapper = reinterpret_cast(pdu); - - /* Initiaization */ - pduWrapper->ref_pdu().select_initiatingMessage().ref_procedureCode().select_id_endcX2Setup(); - pduWrapper->ref_pdu().select_initiatingMessage().ref_criticality().select_id_endcX2Setup(); - - ENDCX2SetupRequest* container = - &(pduWrapper->ref_pdu().select_initiatingMessage().ref_value().select_id_endcX2Setup()); - - using IE_value_t = ENDCX2SetupRequest::protocolIEs_t::value_type; - - /* ENDCX2SetupRequest-IEs = id-InitiatingNodeType-EndcX2Setup */ - IE_value_t* ie = new IE_value_t; - container->ref_protocolIEs().push_back(*ie); - ie->ref_id().select_id_InitiatingNodeType_EndcX2Setup(); - ie->ref_criticality().select_id_InitiatingNodeType_EndcX2Setup(); - ie->ref_value().select_id_InitiatingNodeType_EndcX2Setup(); - - /* InitiatingNodeType-EndcX2Setup = init-eNB {ENB-ENDCX2SetupReqIEs} */ - ie->ref_value().select_id_InitiatingNodeType_EndcX2Setup().select_init_eNB(); - - using eNB_val_t = InitiatingNodeType_EndcX2Setup::init_eNB_t::value_type; - - ProtocolIE_Container* eNB_node = - &(ie->ref_value().select_id_InitiatingNodeType_EndcX2Setup().select_init_eNB()); - - /* ENB-ENDCX2SetupReqIEs <-- id-GlobalENB-ID */ - eNB_val_t* val_GlobalENB_ID = new eNB_val_t; - eNB_node->push_back(*val_GlobalENB_ID); - - val_GlobalENB_ID->ref_id().select_id_GlobalENB_ID(); - val_GlobalENB_ID->ref_criticality().select_id_GlobalENB_ID(); - val_GlobalENB_ID->ref_value().select_id_GlobalENB_ID() - .ref_pLMN_Identity().set(3, cfg.pLMN_Identity); - val_GlobalENB_ID->ref_value().select_id_GlobalENB_ID().ref_eNB_ID() - .select_macro_eNB_ID().set_buffer(20, cfg.macro_eNB_ID); - - /* ENB-ENDCX2SetupReqIEs <-- id-ServedEUTRAcellsENDCX2ManagementList */ - eNB_val_t* val_EUTRAlist = new eNB_val_t; - eNB_node->push_back(*val_EUTRAlist); - - val_EUTRAlist->ref_id().select_id_ServedEUTRAcellsENDCX2ManagementList(); - val_EUTRAlist->ref_criticality().select_id_ServedEUTRAcellsENDCX2ManagementList(); - val_EUTRAlist->ref_value().select_id_ServedEUTRAcellsENDCX2ManagementList(); - - /* ServedEUTRAcellsENDCX2ManagementList <-- servedEUTRACellInfo */ - ServedEUTRAcellsENDCX2ManagementList::value_type* elm = - new ServedEUTRAcellsENDCX2ManagementList::value_type(); - ServedCell_Information* info = &(elm->ref_servedEUTRACellInfo()); - { - //Set ServedCell-Information: pCI, cellId, tAC, broadcastPLMNs, eUTRA-Mode-Info - info->ref_pCI().set(cfg.pCI); - info->ref_cellId().ref_pLMN_Identity().set(3, cfg.pLMN_Identity); - info->ref_cellId().ref_eUTRANcellIdentifier().set_buffer(28, cfg.eUTRANcellIdentifier); - info->ref_tAC().set(2, cfg.tAC); - - BroadcastPLMNs_Item::value_type* item = new BroadcastPLMNs_Item::value_type(); - item->set(3, cfg.pLMN_Identity); - info->ref_broadcastPLMNs().push_back(*item); - - info->ref_eUTRA_Mode_Info().select_fDD().ref_uL_EARFCN().set(cfg.uL_EARFCN); - info->ref_eUTRA_Mode_Info().select_fDD().ref_dL_EARFCN().set(cfg.dL_EARFCN); - info->ref_eUTRA_Mode_Info().select_fDD().ref_uL_Transmission_Bandwidth() - .set(static_cast(cfg.uL_Bandwidth)); - info->ref_eUTRA_Mode_Info().select_fDD().ref_dL_Transmission_Bandwidth() - .set(static_cast(cfg.dL_Bandwidth)); - } - val_EUTRAlist->ref_value().select_id_ServedEUTRAcellsENDCX2ManagementList() - .push_back(*elm); - - return true; -} - -/*----------------------------------------------------------------------- - TESTS -------------------------------------------------------------------------- -*/ -void test_X2Setup_codec(void) -{ - x2ap_pdu_t* pdu = new_x2ap_pdu(); - - eNB_config cfg; - x2ap_create_X2SetupRequest(pdu, cfg); - - char pdu_str[1024]; - x2ap_asn_print(pdu, pdu_str, sizeof(pdu_str)); - printf("%s\n", pdu_str); - - //Test encode - unsigned char packed_buf[4096]; - char err_buf[1024]; - - int packed_len = x2ap_asn_per_encode(pdu, packed_buf, sizeof(packed_buf), - err_buf, sizeof(err_buf)); - if(packed_len != -1) { - printf("Encode successful, packed_len = %d\n", packed_len); - } else { - printf("Encode Error: %s\n", err_buf); - } - - //Test encode error - x2ap_pdu_t* pdu1 = new_x2ap_pdu(); - x2ap_init_X2SetupRequest(pdu1); - - int packed_len1 = x2ap_asn_per_encode(pdu1, packed_buf, sizeof(packed_buf), - err_buf, sizeof(err_buf)); - if(packed_len1 != -1) { - printf("Encode successful, packed_len = %d\n", packed_len1); - } else { - printf("Encode Error: %s\n", err_buf); - } - - //Test decode - x2ap_pdu_t* pdu2 = new_x2ap_pdu(); - int rc = x2ap_asn_per_decode(pdu2, packed_buf, packed_len, err_buf, sizeof(err_buf)); - if(rc == -1) { - printf("Decode error: %s\n", err_buf); - } else { - printf("Decode successful\n"); - } - - x2ap_asn_print(pdu2, pdu_str, sizeof(pdu_str)); - printf("%s\n", pdu_str); - - printf("index = %d\n", x2ap_get_index(pdu2)); - printf("procedureCode = %d\n", x2ap_get_procedureCode(pdu2)); - - - //Test decode error - x2ap_pdu_t* pdu3 = new_x2ap_pdu(); - int rc2 = x2ap_asn_per_decode(pdu3, packed_buf, 1, err_buf, sizeof(err_buf)); - if(rc2 == -1) { - printf("Decode error: %s\n", err_buf); - } else { - printf("Decode successful\n"); - } - - //Test X2SetupResponse - x2ap_pdu_t* pdu_resp = new_x2ap_pdu(); - x2ap_create_X2SetupResponse(pdu_resp, cfg); - x2ap_asn_print(pdu_resp, pdu_str, sizeof(pdu_str)); - printf("%s\n", pdu_str); - - //Test X2SetupFailure - x2ap_pdu_t* pdu_failure = new_x2ap_pdu(); - x2ap_create_X2SetupFailure(pdu_failure); - x2ap_asn_print(pdu_failure, pdu_str, sizeof(pdu_str)); - printf("%s \n", pdu_str); -} diff --git a/e2sim/previous/e2apv1sim/e2sim/src/ASN1/lib/asn_x2ap.hpp b/e2sim/previous/e2apv1sim/e2sim/src/ASN1/lib/asn_x2ap.hpp deleted file mode 100644 index d0c02d2..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/ASN1/lib/asn_x2ap.hpp +++ /dev/null @@ -1,72 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -#ifndef ASN_X2AP_HPP -#define ASN_X2AP_HPP - -#include -#include -#include - -#include "e2ap_config.hpp" - -typedef struct c__dummy00 x2ap_pdu_t; - -/*----------------------------------------------------------------------- - COMMON ROUTINES -------------------------------------------------------------------------- -*/ - -x2ap_pdu_t* new_x2ap_pdu(void); - -void x2ap_asn_print(x2ap_pdu_t* pdu, char* buf, size_t buf_size); - -int x2ap_asn_per_encode(x2ap_pdu_t* pdu, unsigned char* buf, size_t buf_size, - char* err_buf, size_t err_buf_size); - -int x2ap_asn_per_decode(x2ap_pdu_t* pdu, unsigned char const* buf, size_t buf_size, - char* err_buf, size_t err_buf_size); - -int x2ap_get_index(x2ap_pdu_t* pdu); - -int x2ap_get_procedureCode(x2ap_pdu_t* pdu); - -/*----------------------------------------------------------------------- - MESSAGE GENERATORS -------------------------------------------------------------------------- -*/ -//X2Setup -bool x2ap_init_X2SetupRequest(x2ap_pdu_t* pdu); - -bool x2ap_create_X2SetupRequest(x2ap_pdu_t* pdu, eNB_config &cfg); - -bool x2ap_create_X2SetupResponse(x2ap_pdu_t* pdu, eNB_config &cfg); - -bool x2ap_create_X2SetupFailure(x2ap_pdu_t* pdu); - -//ENDCX2Setup -bool x2ap_create_ENDCX2SetupRequest(x2ap_pdu_t* pdu, eNB_config &cfg); - -/*----------------------------------------------------------------------- - TESTS -------------------------------------------------------------------------- -*/ -void test_X2Setup_codec(void); - -#endif diff --git a/e2sim/previous/e2apv1sim/e2sim/src/ASN1/lib/asn_x2ap_wrapper.hpp b/e2sim/previous/e2apv1sim/e2sim/src/ASN1/lib/asn_x2ap_wrapper.hpp deleted file mode 100644 index 96ea81c..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/ASN1/lib/asn_x2ap_wrapper.hpp +++ /dev/null @@ -1,78 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ -#ifndef ASN_X2AP_PDU_WRAPPER_HPP -#define ASN_X2AP_PDU_WRAPPER_HPP - -#include -#include -#include - -#include -#include -#include -#include -#include -#include - -#define X2AP_PDU_DEFAULT_BUFFER_SIZE 4096 - -//Credit: copied from E2-Manager -struct X2APpduWrapper -{ - unsigned char* m_allocation_buffer; - size_t m_allocation_buffer_size; - - X2APpduWrapper(size_t allocation_buffer_size = X2AP_PDU_DEFAULT_BUFFER_SIZE) - { - m_allocation_buffer_size = allocation_buffer_size; - m_allocation_buffer = 0; - if (allocation_buffer_size) { - m_allocation_buffer = - new (std::nothrow) unsigned char[allocation_buffer_size]; - m_allocator.reset( - m_allocation_buffer, - m_allocation_buffer_size); // initialized correctly on - // allocation failure. - } - } - - ~X2APpduWrapper() - { - if (m_allocation_buffer) - delete[] m_allocation_buffer; - } - - asn::allocator& ref_allocator() { return m_allocator; } - - X2AP_PDU& ref_pdu() { return m_pdu; } - - // reset pdu and allocation buffer. Allows reusing. - void clear() - { - m_pdu.clear(); - m_allocator.reset(m_allocation_buffer, m_allocation_buffer_size); - } - - private: - X2AP_PDU m_pdu; - asn::allocator m_allocator; -}; - - -#endif diff --git a/e2sim/previous/e2apv1sim/e2sim/src/ASN1/lib/e2ap_config.hpp b/e2sim/previous/e2apv1sim/e2sim/src/ASN1/lib/e2ap_config.hpp deleted file mode 100644 index 9182ed1..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/ASN1/lib/e2ap_config.hpp +++ /dev/null @@ -1,160 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ -#ifndef E2AP_CONFIG_HPP -#define E2AP_CONFIG_HPP - -#include -#include - -enum enum_Transmission_Bandwidth { - enum_bw6, - enum_bw15, - enum_bw25, - enum_bw50, - enum_bw75, - enum_bw100, - enum_bw1 -}; - -enum enum_NRNRB{ - enum_nrb11, enum_nrb18, enum_nrb24, enum_nrb25, enum_nrb31, enum_nrb32, - enum_nrb38, enum_nrb51, enum_nrb52, enum_nrb65, enum_nrb66, enum_nrb78, - enum_nrb79, enum_nrb93, enum_nrb106, enum_nrb107, enum_nrb121, - enum_nrb132, enum_nrb133, enum_nrb135, enum_nrb160, enum_nrb162, - enum_nrb189, enum_nrb216, enum_nrb217, enum_nrb245, enum_nrb264, - enum_nrb270, enum_nrb273 -}; - -enum enum_NRSCS { - enum_scs15, enum_scs30, enum_scs60, enum_scs120 -}; - -class eNB_config { - public: - uint8_t* pLMN_Identity; - uint8_t* macro_eNB_ID; - int64_t pCI; - uint8_t* tAC; - uint8_t* eUTRANcellIdentifier; - - int64_t uL_EARFCN; - int64_t dL_EARFCN; - - enum_Transmission_Bandwidth uL_Bandwidth; - enum_Transmission_Bandwidth dL_Bandwidth; - - /*Default Constructor*/ - eNB_config() { - pLMN_Identity = (uint8_t*)"abc"; - macro_eNB_ID = (uint8_t*)"5"; - pCI = 0; - tAC = (uint8_t*)"ab"; - eUTRANcellIdentifier = (uint8_t*)"def"; - uL_EARFCN = 21400; - dL_EARFCN = 3400; - uL_Bandwidth = enum_bw25; - dL_Bandwidth = enum_bw50; - } -}; - -class gNB_config { - public: - uint8_t* pLMN_Identity; - uint8_t* gNB_ID; - int64_t nrpCI; - uint8_t* tAC; - uint8_t* nRcellIdentifier; - - int64_t uL_nRARFCN; - int64_t dL_nRARFCN; - - enum enum_NRNRB uL_NRNRB; - enum enum_NRNRB dL_NRNRB; - - enum enum_NRSCS uL_NRSCS; - enum enum_NRSCS dL_NRSCS; - - uint8_t ul_freqBandIndicatorNr; - uint8_t dl_freqBandIndicatorNr; - - std::string measurementTimingConfiguration; - - /*Default Constructor*/ - gNB_config() { - pLMN_Identity = (uint8_t*)"xyz"; - gNB_ID = (uint8_t*)"3"; - nrpCI = 1; - tAC = (uint8_t*)"ab"; - nRcellIdentifier = (uint8_t*)"gnb_id_123"; - uL_nRARFCN = 21400; - dL_nRARFCN = 21500; - - uL_NRNRB = enum_nrb11; - dL_NRNRB = enum_nrb121; - - uL_NRSCS = enum_scs15; - dL_NRSCS = enum_scs120; - - ul_freqBandIndicatorNr = 11; - dl_freqBandIndicatorNr = 12; - - measurementTimingConfiguration = "dummy timing"; - } -}; - -enum enum_RICactionType { - RICactionType_report, - RICactionType_insert, - RICactionType_policy -}; - -enum enum_RICcause { - RICcause_radioNetwork = 1, - RICcause_transport, - RICcause_protocol, - RICcause_misc, - RICcause_ric -}; - -struct RIC_action_t { - unsigned char action_id; - enum_RICactionType action_type; - bool isAdmitted = false; //for response/failure only - enum_RICcause notAdmitted_cause; //for response/failure only - unsigned int notAdmitted_subCause; //for response/failure only - - RIC_action_t() {;} - - RIC_action_t(unsigned char id, enum_RICactionType type) - { - action_id = id; - action_type = type; - } -}; - -struct RICsubscription_params_t { - uint16_t request_id = 0; - uint16_t seq_number = 0; - uint16_t ran_func_id = 0; - std::string event_trigger_def = ""; - - std::vector actionList; -} ; - -#endif diff --git a/e2sim/previous/e2apv1sim/e2sim/src/DEF/e2sim_defs.cpp b/e2sim/previous/e2apv1sim/e2sim/src/DEF/e2sim_defs.cpp deleted file mode 100644 index f1730d3..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/DEF/e2sim_defs.cpp +++ /dev/null @@ -1,125 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -#include "e2sim_defs.h" -#include -#include -#include - -char* time_stamp(void) -{ - timeval curTime; - gettimeofday(&curTime, NULL); - int milli = curTime.tv_usec / 1000; - - char buffer [80]; - strftime(buffer, 80, "%Y-%m-%d %H:%M:%S", localtime(&curTime.tv_sec)); - - const int time_buffer_len = 84; - static char currentTime[time_buffer_len] = ""; - snprintf(currentTime, time_buffer_len, "%s:%03d", buffer, milli); - - return currentTime; -} - -options_t read_input_options_old(int argc, char* argv[]) -{ - options_t options; - - options.server_ip = (char*)DEFAULT_SCTP_IP; - options.server_port = X2AP_SCTP_PORT; - - // Parse command line options - static struct option long_options[] = - { - {"ipv4", required_argument, 0, 'i'}, - {"ipv6", required_argument, 0, 'I'}, - {"port", required_argument, 0, 'p'}, - {"verbose", no_argument, 0, 'v'}, - }; - - while(1) - { - int option_index = 0; - - char c = getopt_long(argc, argv, "i:I:p:", long_options, &option_index); - - if(c == -1) - break; - - switch(c) - { - case 'i': - options.server_ip = optarg; - break; - case 'I': - break; - case 'p': - options.server_port = atoi(optarg); - if(options.server_port < 1 || options.server_port > 65535) - { - LOG_E("Invalid port number (%d). Valid values are between 1 and 65535.\n", - options.server_port); - exit(1); - } - break; - - default: - LOG_E("Error: unknown input option: %c\n", optopt); - exit(1); - } - } - - return options; -} - -options_t read_input_options(int argc, char *argv[]) -{ - options_t options; - - options.server_ip = (char*)DEFAULT_SCTP_IP; - options.server_port = X2AP_SCTP_PORT; - - if(argc == 3) //user provided IP and PORT - { - options.server_ip = argv[1]; - options.server_port = atoi(argv[2]); - if(options.server_port < 1 || options.server_port > 65535) { - LOG_E("Invalid port number (%d). Valid values are between 1 and 65535.\n", - options.server_port); - exit(1); - } - } - else if(argc == 2) //user provided only IP - { - options.server_ip = argv[1]; - } - else if(argc == 1) - { - options.server_ip = (char*)DEFAULT_SCTP_IP; - } - else - { - LOG_I("Unrecognized option.\n"); - LOG_I("Usage: %s [SERVER IP ADDRESS] [SERVER PORT]\n", argv[0]); - exit(1); - } - - return options; -} diff --git a/e2sim/previous/e2apv1sim/e2sim/src/DEF/e2sim_defs.h b/e2sim/previous/e2apv1sim/e2sim/src/DEF/e2sim_defs.h deleted file mode 100644 index cf4a0d6..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/DEF/e2sim_defs.h +++ /dev/null @@ -1,65 +0,0 @@ -/* - * - * Copyright 2019 AT&T Intellectual Property - * Copyright 2019 Nokia - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -#ifndef E2SIM_DEFS_H -#define E2SIM_DEFS_H - -// #include -#include -#include - -#define VERSION "1.2.0" //May 2019 -#define DEFAULT_SCTP_IP "127.0.0.1" -#define X2AP_PPID (452984832) //27 = 1b, PPID = 1b000000(hex) -> 452984832(dec) -#define X2AP_SCTP_PORT 36421 -#define RIC_SCTP_SRC_PORT 36422 -#define MAX_SCTP_BUFFER 10000 -#define WORKDIR_ENV "E2SIM_DIR" //environment variable - -char* time_stamp(void); - -// #define LOG_I(...) {printf("[%s]", time_stamp()); printf(__VA_ARGS__); printf("\n");} -// #define LOG_E(...) {printf("[%s]", time_stamp()); printf(__VA_ARGS__); printf("\n");} -// #define LOG_D(...) {printf("[%s]", time_stamp()); printf(__VA_ARGS__); printf("\n");} - -#define LOG_I(...) {printf(__VA_ARGS__); printf("\n");} -#define LOG_E(...) {printf(__VA_ARGS__); printf("\n");} -#define LOG_D(...) {printf(__VA_ARGS__); printf("\n");} - -typedef struct SCTP_DATA { - unsigned char *data; - int len; -} sctp_data_t; - -typedef struct { - unsigned char buffer[MAX_SCTP_BUFFER]; - int len; -} sctp_buffer_t; - -typedef struct { - char* server_ip; - int server_port; - //... extend as needed -} options_t; - -options_t read_input_options(int argc, char *argv[]); - -#define min(a, b) ((a) < (b)) ? (a) : (b) - -#endif diff --git a/e2sim/previous/e2apv1sim/e2sim/src/E2AP/E2SM/e2sm.c b/e2sim/previous/e2apv1sim/e2sim/src/E2AP/E2SM/e2sm.c deleted file mode 100644 index 6cad6cd..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/E2AP/E2SM/e2sm.c +++ /dev/null @@ -1,196 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ -#include "e2sm.h" - -#include "ActionParameter-Item.h" -#include "ActionParameter-Value.h" -#include "PLMN-Identity.h" -#include "GlobalENB-ID.h" -#include "GlobalGNB-ID.h" -#include "Interface-ID.h" -#include "ProtocolIE-Field.h" -#include "InterfaceMessageType.h" -#include "InterfaceProtocolIE-Item.h" - -static PLMN_Identity_t *createPLMN_ID(const unsigned char *data) { - - PLMN_Identity_t *plmnId = calloc(1, sizeof(PLMN_Identity_t)); - ASN_STRUCT_RESET(asn_DEF_PLMN_Identity, plmnId); - plmnId->size = 3; - plmnId->buf = calloc(1, 3); - memcpy(plmnId->buf, data, 3); - - return plmnId; -} - -static GNB_ID_t *createGnb_id(const unsigned char *data, int numOfBits) { - - if (numOfBits < 22 || numOfBits > 32) { - printf("[Error] GNB_ID_t number of bits = %d, needs to be 22 .. 32", numOfBits); - return NULL; - } - - GNB_ID_t *gnb = calloc(1, sizeof(GNB_ID_t)); - ASN_STRUCT_RESET(asn_DEF_GNB_ID, gnb); - - gnb->present = GNB_ID_PR_gNB_ID; - gnb->choice.gNB_ID.size = numOfBits % 8 == 0 ? (unsigned int)(numOfBits / 8) : (unsigned int)(numOfBits / 8 + 1); - gnb->choice.gNB_ID.bits_unused = gnb->choice.gNB_ID.size * 8 - numOfBits; - gnb->choice.gNB_ID.buf = calloc(1, gnb->choice.gNB_ID.size); - memcpy(gnb->choice.gNB_ID.buf, data, gnb->choice.gNB_ID.size); - gnb->choice.gNB_ID.buf[gnb->choice.gNB_ID.size - 1] = - ((unsigned)(gnb->choice.gNB_ID.buf[gnb->choice.gNB_ID.size - 1] >> (unsigned)gnb->choice.gNB_ID.bits_unused) - << (unsigned)gnb->choice.gNB_ID.bits_unused); - - return gnb; -} - -static GlobalGNB_ID_t *createGlobalGNB_ID(PLMN_Identity_t *plmnIdentity, GNB_ID_t *gnb) { - - GlobalGNB_ID_t *ggnbId = calloc(1, sizeof(GlobalGNB_ID_t)); - ASN_STRUCT_RESET(asn_DEF_GlobalGNB_ID, ggnbId); - - memcpy(&ggnbId->pLMN_Identity, plmnIdentity, sizeof(PLMN_Identity_t)); - memcpy(&ggnbId->gNB_ID, gnb, sizeof(GNB_ID_t)); - - return ggnbId; -} - -static Interface_ID_t *createInterfaceIDForGnb(GlobalGNB_ID_t *gnb) { - - Interface_ID_t *interfaceId = calloc(1, sizeof(Interface_ID_t)); - ASN_STRUCT_RESET(asn_DEF_Interface_ID, interfaceId); - - interfaceId->present = Interface_ID_PR_global_gNB_ID; - interfaceId->choice.global_gNB_ID = gnb; - - return interfaceId; -} - -static InterfaceMessageType_t *createInterfaceMessageInitiating(long procedureCode) { - - InterfaceMessageType_t *intMsgT = calloc(1, sizeof(InterfaceMessageType_t)); - ASN_STRUCT_RESET(asn_DEF_InterfaceMessageType, intMsgT); - - intMsgT->procedureCode = procedureCode; - intMsgT->typeOfMessage = TypeOfMessage_initiating_message; - - return intMsgT; -} - -E2SM_gNB_X2_eventTriggerDefinition_t* create_eventTriggerDefinition(void) -{ - //PLMN_Identity - unsigned char plmnidData[3] = {0x33, 0xF4, 0x55}; - PLMN_Identity_t *plmnid = createPLMN_ID(plmnidData); - // xer_fprint(stdout, &asn_DEF_PLMN_Identity, (void *)plmnid); - - //GNB_ID - unsigned char gnbData[3] = {0x99, 0xaa, 0xbb}; - GNB_ID_t *gnb = createGnb_id(gnbData, 26); - // xer_fprint(stdout, &asn_DEF_GNB_ID, (void *)gnb); - - //GlobalGNB_ID - GlobalGNB_ID_t *globaGnb = createGlobalGNB_ID(plmnid, gnb); - // xer_fprint(stdout, &asn_DEF_GlobalGNB_ID, (void *)globaGnb); - - //Interface_ID - Interface_ID_t *gnbInterfaceId = createInterfaceIDForGnb(globaGnb); - // xer_fprint(stdout, &asn_DEF_Interface_ID, (void *)gnbInterfaceId); - - //InterfaceMessageType - InterfaceMessageType_t *initiatingInterface = createInterfaceMessageInitiating(35); - - //EventTriggerDefinition - E2SM_gNB_X2_eventTriggerDefinition_t *eventTrigger = calloc(1, sizeof(E2SM_gNB_X2_eventTriggerDefinition_t)); - ASN_STRUCT_RESET(asn_DEF_E2SM_gNB_X2_eventTriggerDefinition, eventTrigger); - - memcpy(&eventTrigger->interface_ID , gnbInterfaceId, sizeof(Interface_ID_t)); - - eventTrigger->interfaceDirection = 0; - memcpy(&eventTrigger->interfaceMessageType, initiatingInterface, sizeof(InterfaceMessageType_t)); - - return eventTrigger; -} - -#define E2AP_ASN1C_FIND_PROTOCOLIE_BY_ID(IE_TYPE, ie, container, IE_ID) \ - do {\ - IE_TYPE **ptr; \ - ie = NULL; \ - for (ptr = container->protocolIEs.list.array; \ - ptr < &container->protocolIEs.list.array[container->protocolIEs.list.count]; \ - ptr++) { \ - if((*ptr)->id == IE_ID) { \ - ie = *ptr; \ - break; \ - } \ - } \ - } while(0) - - -void test_eventTriggerDefinition(void) -{ - E2SM_gNB_X2_eventTriggerDefinition_t *eventTrigger = create_eventTriggerDefinition(); - - xer_fprint(stdout, &asn_DEF_E2SM_gNB_X2_eventTriggerDefinition, (void *)eventTrigger); - printf("\n"); - - uint8_t *eventBuff; - int eventBuff_len; - - eventBuff_len = aper_encode_to_new_buffer(&asn_DEF_E2SM_gNB_X2_eventTriggerDefinition, - 0, eventTrigger, (void **)&eventBuff); - - LOG_I("Encoded eventBuff_len = %d", eventBuff_len); - - //----------------------------------------------------------------------- - E2AP_PDU_t* pdu = e2ap_xml_to_pdu("E2AP_RICsubscriptionRequest.xml"); - e2ap_asn1c_print_pdu(pdu); - - InitiatingMessage_t *initiatingMessage = pdu->choice.initiatingMessage; - xer_fprint(stdout, &asn_DEF_InitiatingMessage, (void *)initiatingMessage); - - RICsubscriptionRequest_t *request = &initiatingMessage->value.choice.RICsubscriptionRequest; - xer_fprint(stdout, &asn_DEF_RICsubscriptionRequest, (void *)request); - - LOG_I("num of IEs = %d", request->protocolIEs.list.count); - - - RICsubscriptionRequest_IEs_t *ie; - - ie = request->protocolIEs.list.array[2]; - - // E2AP_ASN1C_FIND_PROTOCOLIE_BY_ID(RICsubscriptionRequest_IEs_t, ie, request, ProtocolIE_ID_id_RICsubscription); - // E2AP_ASN1C_FIND_PROTOCOLIE_BY_ID(RICsubscriptionRequest_IEs_t, ie, request, ProtocolIE_ID_id_RICrequestID); - - assert( ie != NULL); - - xer_fprint(stdout, &asn_DEF_RICsubscription, (void *)ie); - // xer_fprint(stdout, &asn_DEF_RICrequestID, (void *)ie); - - -} - -// -// typedef struct ProtocolIE_Container_119P0 { -// A_SEQUENCE_OF(struct RICsubscriptionRequest_IEs) list; -// -// /* Context for parsing across buffer boundaries */ -// asn_struct_ctx_t _asn_ctx; -// } ProtocolIE_Container_119P0_t; diff --git a/e2sim/previous/e2apv1sim/e2sim/src/E2AP/E2SM/e2sm.h b/e2sim/previous/e2apv1sim/e2sim/src/E2AP/E2SM/e2sm.h deleted file mode 100644 index 19f30a2..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/E2AP/E2SM/e2sm.h +++ /dev/null @@ -1,30 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ -#ifndef E2SM_H -#define E2SM_H - -#include "E2SM-gNB-X2-eventTriggerDefinition.h" -#include "E2AP-PDU.h" -#include "e2ap_asn1c_codec.h" - -E2SM_gNB_X2_eventTriggerDefinition_t* create_eventTriggerDefinition(void); - -void test_eventTriggerDefinition(void); - -#endif diff --git a/e2sim/previous/e2apv1sim/e2sim/src/E2AP/XML/E2AP_ENDCX2SetupFailure.xml b/e2sim/previous/e2apv1sim/e2sim/src/E2AP/XML/E2AP_ENDCX2SetupFailure.xml deleted file mode 100644 index 633baee..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/E2AP/XML/E2AP_ENDCX2SetupFailure.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - 36 - - - - - - 5 - - - - - - - - - - - - diff --git a/e2sim/previous/e2apv1sim/e2sim/src/E2AP/XML/E2AP_ENDCX2SetupRequest.xml b/e2sim/previous/e2apv1sim/e2sim/src/E2AP/XML/E2AP_ENDCX2SetupRequest.xml deleted file mode 100644 index ddb071a..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/E2AP/XML/E2AP_ENDCX2SetupRequest.xml +++ /dev/null @@ -1,67 +0,0 @@ - - - 36 - - - - - - 244 - - - - - - 21 - - - - 61 62 63 - - - 00110101000000000001 - - - - - - - 250 - - - - - - 0 - - 61 62 63 - - 0110010001100101011001100000 - - - 61 62 - - 61 62 63 - - - - 21400 - 3400 - - - - - - - - - - - - - - - - - - diff --git a/e2sim/previous/e2apv1sim/e2sim/src/E2AP/XML/E2AP_ENDCX2SetupResponse.xml b/e2sim/previous/e2apv1sim/e2sim/src/E2AP/XML/E2AP_ENDCX2SetupResponse.xml deleted file mode 100644 index 896eed6..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/E2AP/XML/E2AP_ENDCX2SetupResponse.xml +++ /dev/null @@ -1,97 +0,0 @@ - - - 36 - - - - - - 246 - - - - - - 252 - - - - 02 F8 29 - - - 000000000001001000110100 - - - - - - - 253 - - - - - - 99 - - 02 F8 29 - - 000000000000011110101011000000010010 - - - - 02 F8 29 - - - - - 100 - - - 9 - - - 9 - - - - - - - 100 - - - 9 - - - 9 - - - - - - - - - - - - - - - - 04 05 - - - - - - - - - - - - - - diff --git a/e2sim/previous/e2apv1sim/e2sim/src/E2AP/XML/E2AP_ErrorIndication.xml b/e2sim/previous/e2apv1sim/e2sim/src/E2AP/XML/E2AP_ErrorIndication.xml deleted file mode 100644 index 8974693..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/E2AP/XML/E2AP_ErrorIndication.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - 3 - - - - - - 5 - - - - - - - - - - - - diff --git a/e2sim/previous/e2apv1sim/e2sim/src/E2AP/XML/E2AP_PartSetupRequest.xml b/e2sim/previous/e2apv1sim/e2sim/src/E2AP/XML/E2AP_PartSetupRequest.xml deleted file mode 100644 index 43db78a..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/E2AP/XML/E2AP_PartSetupRequest.xml +++ /dev/null @@ -1 +0,0 @@ -400 01 02 030000001010110000001100001010 diff --git a/e2sim/previous/e2apv1sim/e2sim/src/E2AP/XML/E2AP_PartSetupRequest.xml~ b/e2sim/previous/e2apv1sim/e2sim/src/E2AP/XML/E2AP_PartSetupRequest.xml~ deleted file mode 100644 index b2343b9..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/E2AP/XML/E2AP_PartSetupRequest.xml~ +++ /dev/null @@ -1 +0,0 @@ -1400 01 02 030000001010110000001100001010 diff --git a/e2sim/previous/e2apv1sim/e2sim/src/E2AP/XML/E2AP_RICindication_type1.xml b/e2sim/previous/e2apv1sim/e2sim/src/E2AP/XML/E2AP_RICindication_type1.xml deleted file mode 100644 index e4e3f38..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/E2AP/XML/E2AP_RICindication_type1.xml +++ /dev/null @@ -1,74 +0,0 @@ - - - 205 - - - - - - 60030 - - - - 6 - 12 - - - - - 60003 - - - 10 - - - - 60017 - - - 100 - - - - 60028 - - - 100 - - - - 60029 - - - - - - - 60026 - - - 10 74 68 65 10 68 65 6C 40 - - - - 60027 - - - - 00 1B 40 80 80 00 00 08 00 6F 00 02 00 0C 00 F8 - 00 05 08 4D 86 D6 40 00 CB 00 20 31 32 33 34 35 - 36 37 38 39 31 32 33 34 35 36 37 38 39 31 32 33 - 34 35 36 37 38 39 31 32 33 34 35 00 CC 00 06 08 - 07 D0 20 03 E8 00 CE 00 0C 0B 49 6E 66 6F 72 6D - 61 74 69 6F 6E 01 17 00 08 00 33 32 31 34 35 36 - 30 01 13 00 01 22 00 CD 00 1B 00 00 D1 00 16 1A - 11 50 00 08 21 09 E0 41 41 42 42 43 43 44 44 45 - 45 5A 5A 59 58 - - - - - - - - diff --git a/e2sim/previous/e2apv1sim/e2sim/src/E2AP/XML/E2AP_RICindication_type2.xml b/e2sim/previous/e2apv1sim/e2sim/src/E2AP/XML/E2AP_RICindication_type2.xml deleted file mode 100644 index 92bc727..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/E2AP/XML/E2AP_RICindication_type2.xml +++ /dev/null @@ -1,74 +0,0 @@ - - - 205 - - - - - - 60030 - - - - 6 - 12 - - - - - 60003 - - - 10 - - - - 60017 - - - 100 - - - - 60028 - - - 100 - - - - 60029 - - - - - - - 60026 - - - 10 74 68 65 10 68 65 6C 40 - - - - 60027 - - - - 00 1B 40 80 80 00 00 08 00 6F 00 02 00 0C 00 F8 - 00 05 08 4D 86 D6 40 00 CB 00 20 31 32 33 34 35 - 36 37 38 39 31 32 33 34 35 36 37 38 39 31 32 33 - 34 35 36 37 38 39 31 32 33 34 35 00 CC 00 06 08 - 07 D0 20 03 E8 00 CE 00 0C 0B 49 6E 66 6F 72 6D - 61 74 69 6F 6E 01 17 00 08 00 33 32 31 34 35 36 - 30 01 13 00 01 23 00 CD 00 1B 00 00 D1 00 16 1A - 11 50 00 08 21 09 E0 41 41 42 42 43 43 44 44 45 - 45 5A 5A 59 58 - - - - - - - - diff --git a/e2sim/previous/e2apv1sim/e2sim/src/E2AP/XML/E2AP_RICsubscriptionRequest.xml b/e2sim/previous/e2apv1sim/e2sim/src/E2AP/XML/E2AP_RICsubscriptionRequest.xml deleted file mode 100644 index ab3ea11..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/E2AP/XML/E2AP_RICsubscriptionRequest.xml +++ /dev/null @@ -1,50 +0,0 @@ - - - 201 - - - - - - 60030 - - - - 1 - 200 - - - - - 60003 - - - 33 - - - - 60033 - - - - 00 01 02 03 40 0b 16 02 00 23 40 - - - 60011 - - - - 255 - - - - - - - - - - - - - diff --git a/e2sim/previous/e2apv1sim/e2sim/src/E2AP/XML/E2AP_RICsubscriptionRequest_Ashwin.xml b/e2sim/previous/e2apv1sim/e2sim/src/E2AP/XML/E2AP_RICsubscriptionRequest_Ashwin.xml deleted file mode 100644 index 524f7af..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/E2AP/XML/E2AP_RICsubscriptionRequest_Ashwin.xml +++ /dev/null @@ -1,50 +0,0 @@ - - - 201 - - - - - - 60030 - - - - 2 - 1 - - - - - 60003 - - - 0 - - - - 60033 - - - - 10 54 65 73 10 54 65 73 40 1B 40 - - - 60011 - - - - 4 - - - - - - - - - - - - - diff --git a/e2sim/previous/e2apv1sim/e2sim/src/E2AP/XML/E2AP_RICsubscriptionResponse.xml b/e2sim/previous/e2apv1sim/e2sim/src/E2AP/XML/E2AP_RICsubscriptionResponse.xml deleted file mode 100644 index b7ea847..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/E2AP/XML/E2AP_RICsubscriptionResponse.xml +++ /dev/null @@ -1,46 +0,0 @@ - - - 201 - - - - - - 60030 - - - - 2 - 205 - - - - - 60003 - - - 0 - - - - 60012 - - - - - 60013 - - - - 1 - - - - - - - - - - - diff --git a/e2sim/previous/e2apv1sim/e2sim/src/E2AP/XML/E2AP_ResourceStatusFailure.xml b/e2sim/previous/e2apv1sim/e2sim/src/E2AP/XML/E2AP_ResourceStatusFailure.xml deleted file mode 100644 index 9898d55..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/E2AP/XML/E2AP_ResourceStatusFailure.xml +++ /dev/null @@ -1,35 +0,0 @@ - - - 9 - - - - - - 39 - - - 1 - - - - 40 - - - 74 - - - - 5 - - - - - - - - - - - - diff --git a/e2sim/previous/e2apv1sim/e2sim/src/E2AP/XML/E2AP_ResourceStatusRequest.xml b/e2sim/previous/e2apv1sim/e2sim/src/E2AP/XML/E2AP_ResourceStatusRequest.xml deleted file mode 100644 index a807971..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/E2AP/XML/E2AP_ResourceStatusRequest.xml +++ /dev/null @@ -1,85 +0,0 @@ - - - 9 - - - - - - 39 - - - 1 - - - - 28 - - - - - - - 38 - - - - 11111110000000000000000000000000 - - - - - 29 - - - - - 31 - - - - - 13 30 23 - - 0000001010110000001100001010 - - - - - - - - - - 30 - - - - - - - 64 - - - - - - - 109 - - - - - - - 145 - - - - - - - - - - diff --git a/e2sim/previous/e2apv1sim/e2sim/src/E2AP/XML/E2AP_ResourceStatusRequest_bad.xml b/e2sim/previous/e2apv1sim/e2sim/src/E2AP/XML/E2AP_ResourceStatusRequest_bad.xml deleted file mode 100644 index 6968e71..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/E2AP/XML/E2AP_ResourceStatusRequest_bad.xml +++ /dev/null @@ -1,85 +0,0 @@ - - - 9 - - - - - - 39 - - - 1 - - - - 28 - - - - - - - 38 - - - - 00000000000000000000000000000000 - - - - - 29 - - - - - 31 - - - - - 02 07 9f - - 0010101100000000001100001010 - - - - - - - - - - 30 - - - - - - - 64 - - - - - - - 109 - - - - - - - 145 - - - - - - - - - - diff --git a/e2sim/previous/e2apv1sim/e2sim/src/E2AP/XML/E2AP_ResourceStatusResponse.xml b/e2sim/previous/e2apv1sim/e2sim/src/E2AP/XML/E2AP_ResourceStatusResponse.xml deleted file mode 100644 index 12542a8..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/E2AP/XML/E2AP_ResourceStatusResponse.xml +++ /dev/null @@ -1,134 +0,0 @@ - - - 9 - - - - - - 39 - - - 1 - - - - 40 - - - 75 - - - - 65 - - - - - 66 - - - - - 13 30 23 - - 0000001010110000001100001010 - - - - - 67 - - - - - 00000010000000000000000000000000 - - - - - - - - - 67 - - - - - 00000100000000000000000000000000 - - - - - - - - - 67 - - - - - 00001000000000000000000000000000 - - - - - - - - - 67 - - - - - 00100000000000000000000000000000 - - - - - - - - - 67 - - - - - 01000000000000000000000000000000 - - - - - - - - - 67 - - - - - 10000000000000000000000000000000 - - - - - - - - - - - - - - - - - - - diff --git a/e2sim/previous/e2apv1sim/e2sim/src/E2AP/XML/E2AP_ResourceStatusUpdate.xml b/e2sim/previous/e2apv1sim/e2sim/src/E2AP/XML/E2AP_ResourceStatusUpdate.xml deleted file mode 100644 index b5630bc..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/E2AP/XML/E2AP_ResourceStatusUpdate.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - 10 - - - - - - 39 - - - 1 - - - - 40 - - - 75 - - - - 32 - - - - - 33 - - - - - 13 30 23 - - 0000001010110000001100001010 - - - - - 42 - - - - - 100 - 99 - - - 100 - 99 - - - - - - - - - - - - - - - - diff --git a/e2sim/previous/e2apv1sim/e2sim/src/E2AP/XML/E2AP_SetupRequest.xml b/e2sim/previous/e2apv1sim/e2sim/src/E2AP/XML/E2AP_SetupRequest.xml deleted file mode 100644 index b2343b9..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/E2AP/XML/E2AP_SetupRequest.xml +++ /dev/null @@ -1 +0,0 @@ -1400 01 02 030000001010110000001100001010 diff --git a/e2sim/previous/e2apv1sim/e2sim/src/E2AP/XML/E2AP_SetupRequest.xml~ b/e2sim/previous/e2apv1sim/e2sim/src/E2AP/XML/E2AP_SetupRequest.xml~ deleted file mode 100644 index b2343b9..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/E2AP/XML/E2AP_SetupRequest.xml~ +++ /dev/null @@ -1 +0,0 @@ -1400 01 02 030000001010110000001100001010 diff --git a/e2sim/previous/e2apv1sim/e2sim/src/E2AP/XML/E2AP_SetupRequest2.xml b/e2sim/previous/e2apv1sim/e2sim/src/E2AP/XML/E2AP_SetupRequest2.xml deleted file mode 100644 index 6d8c654..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/E2AP/XML/E2AP_SetupRequest2.xml +++ /dev/null @@ -1,30 +0,0 @@ - - - 1 - - - - - - 4 - - - - - - 70 6C 6D 6E 33 - - - 01100111011011100110001000110001 - - - - - - - - - - - - diff --git a/e2sim/previous/e2apv1sim/e2sim/src/E2AP/XML/E2AP_X2SetupFailure.xml b/e2sim/previous/e2apv1sim/e2sim/src/E2AP/XML/E2AP_X2SetupFailure.xml deleted file mode 100644 index 53acf31..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/E2AP/XML/E2AP_X2SetupFailure.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - 6 - - - - - - 5 - - - - - - - - - - - - diff --git a/e2sim/previous/e2apv1sim/e2sim/src/E2AP/XML/E2AP_X2SetupRequest.xml b/e2sim/previous/e2apv1sim/e2sim/src/E2AP/XML/E2AP_X2SetupRequest.xml deleted file mode 100644 index 9f0f286..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/E2AP/XML/E2AP_X2SetupRequest.xml +++ /dev/null @@ -1,57 +0,0 @@ - - - 6 - - - - - - 21 - - - - 13 30 23 - - - 11111111111111111111 - - - - - - - 20 - - - - - - 503 - - 13 30 23 - - 1111111111111111111100000000 - - - 00 00 - - 13 30 23 - - - - 0 - 0 - - - - - - - - - - - - - - diff --git a/e2sim/previous/e2apv1sim/e2sim/src/E2AP/XML/E2AP_X2SetupResponse.xml b/e2sim/previous/e2apv1sim/e2sim/src/E2AP/XML/E2AP_X2SetupResponse.xml deleted file mode 100644 index af42d5b..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/E2AP/XML/E2AP_X2SetupResponse.xml +++ /dev/null @@ -1,97 +0,0 @@ - - - 6 - - - - - - 21 - - - - 13 30 23 - - - 00000010101100000011 - - - - - - - 20 - - - - - - 308 - - 13 30 23 - - 0000001010110000001100001010 - - - 64 03 - - 13 30 23 - - - - 18650 - 650 - - - - - - - 41 - - - - - - - 55 - - - - 344 - 12 - - 5 - - - - - 160 - - - - - - - - - - - - - 24 - - - - - 13 30 23 - 80 00 - - - - - - - - - diff --git a/e2sim/previous/e2apv1sim/e2sim/src/E2AP/XML/GlobalE2node-ID.xml b/e2sim/previous/e2apv1sim/e2sim/src/E2AP/XML/GlobalE2node-ID.xml deleted file mode 100644 index dd21201..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/E2AP/XML/GlobalE2node-ID.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - 70 6C 6D 6E 33 - - - 01100111011011100110001000110001 - - - - - diff --git a/e2sim/previous/e2apv1sim/e2sim/src/E2AP/XML/reference_constants.txt b/e2sim/previous/e2apv1sim/e2sim/src/E2AP/XML/reference_constants.txt deleted file mode 100644 index b9a3b54..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/E2AP/XML/reference_constants.txt +++ /dev/null @@ -1,16 +0,0 @@ -/* Dependencies */ -typedef enum Criticality { - Criticality_reject = 0, - Criticality_ignore = 1, - Criticality_notify = 2 -} e_Criticality; - - --- Event Trigger Definition OCTET STRING contents -E2SM-gNB-X2-eventTriggerDefinition ::= SEQUENCE{ - interface-ID Interface-ID, - interfaceDirection InterfaceDirection, - interfaceMessageType InterfaceMessageType, - interfaceProtocolIE-List SEQUENCE (SIZE(1..maxofInterfaceProtocolIE)) OF InterfaceProtocolIE-Item OPTIONAL, - ... -} diff --git a/e2sim/previous/e2apv1sim/e2sim/src/E2AP/e2ap_asn1c_codec.c b/e2sim/previous/e2apv1sim/e2sim/src/E2AP/e2ap_asn1c_codec.c deleted file mode 100644 index f76032d..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/E2AP/e2ap_asn1c_codec.c +++ /dev/null @@ -1,229 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ -#include "e2ap_asn1c_codec.h" - - -void e2ap_asn1c_print_pdu(const E2AP_PDU_t* pdu) -{ - printf("before\n"); - // xer_fprint(stdout, &asn_DEF_E2AP_PDU, (void *)pdu); - xer_fprint(stdout, &asn_DEF_E2AP_PDU, pdu); - printf("after\n"); - printf("\n"); -} - -void asn1c_xer_print(asn_TYPE_descriptor_t *typeDescriptor, void *data) -{ - xer_fprint(stdout, typeDescriptor, (void *)data); - printf("\n"); -} - - -E2AP_PDU_t* e2ap_xml_to_pdu(char const* xml_message) -{ - // E2AP_PDU_t *pdu = new E2AP_PDU_t(); - E2AP_PDU_t *pdu = calloc(1, sizeof(E2AP_PDU_t)); - - assert(pdu != 0); - - printf("xmlpdu1\n"); - - uint8_t buf[MAX_XML_BUFFER]; - asn_dec_rval_t rval; - size_t size; - FILE *f; - - char XML_path[300]; - char *work_dir = getenv(WORKDIR_ENV); - - printf("xmlpdu2\n"); - - strcpy(XML_path, work_dir); - strcat(XML_path, E2AP_XML_DIR); - strcat(XML_path, xml_message); - - printf("xmlpdu4\n"); - - LOG_D("Generate E2AP PDU from XML file: %s\n", XML_path); - memset(buf, 0, sizeof(buf)); - - printf("xmlpdu3\n"); - - f = fopen(XML_path, "r"); - if(!f){ - LOG_E("Unable to open %s. Make sure you have set the Environment Variable E2SIM_DIR, see README", XML_path) - } - - printf("xmlpdu5\n"); - - assert(f); - - printf("xmlpdu6\n"); - - size = fread(buf, 1, sizeof(buf), f); - if(size == 0 || size == sizeof(buf)) - { - LOG_E("Input too long: %s", XML_path); - exit(1); - } - - fclose(f); - - printf("xmlpdu7\n"); - - rval = xer_decode(0, &asn_DEF_E2AP_PDU, (void **)&pdu, buf, size); - - printf("xmlpdu8\n"); - - assert(rval.code == RC_OK); - - return pdu; -} - - -E2setupRequest_t* smaller_e2ap_xml_to_pdu(char const* xml_message) -{ - // E2AP_PDU_t *pdu = new E2AP_PDU_t(); - E2AP_PDU_t *pdu = calloc(1, sizeof(E2AP_PDU_t)); - - // GlobalE2node_ID_t *globale2nodeid = (GlobalE2node_ID_t*)calloc(1, sizeof(GlobalE2node_ID_t)); - GlobalE2node_ID_t *globale2nodeid = (GlobalE2node_ID_t*)calloc(1, sizeof(GlobalE2node_ID_t)); - E2setupRequest_t *e2setuprequest = (E2setupRequest_t*)calloc(1,sizeof(E2setupRequest_t)); - - printf("xmlpdu1\n"); - - uint8_t buf[MAX_XML_BUFFER]; - asn_dec_rval_t rval; - size_t size; - FILE *f; - - char XML_path[300]; - char *work_dir = getenv(WORKDIR_ENV); - - printf("xmlpdu2\n"); - - strcpy(XML_path, work_dir); - strcat(XML_path, E2AP_XML_DIR); - strcat(XML_path, xml_message); - - printf("xmlpdu4\n"); - - LOG_D("Generate E2AP PDU from XML file: %s\n", XML_path); - memset(buf, 0, sizeof(buf)); - - printf("xmlpdu3\n"); - - f = fopen(XML_path, "r"); - if(!f){ - LOG_E("Unable to open %s. Make sure you have set the Environment Variable E2SIM_DIR, see README", XML_path) - } - - printf("xmlpdu5\n"); - - assert(f); - - printf("xmlpdu6\n"); - - size = fread(buf, 1, sizeof(buf), f); - if(size == 0 || size == sizeof(buf)) - { - LOG_E("Input too long: %s", XML_path); - exit(1); - } - - fclose(f); - - printf("xmlpdu7\n"); - - rval = xer_decode(0, &asn_DEF_E2setupRequest, (void **)&e2setuprequest, buf, size); - - printf("xmlpdu8\n"); - - assert(rval.code == RC_OK); - - return e2setuprequest; -} - - -int e2ap_asn1c_encode_pdu(E2AP_PDU_t* pdu, unsigned char **buffer) -{ - int len; - - *buffer = NULL; - assert(pdu != NULL); - assert(buffer != NULL); - - len = aper_encode_to_new_buffer(&asn_DEF_E2AP_PDU, 0, pdu, (void **)buffer); - - if (len < 0) { - LOG_E("[E2AP ASN] Unable to aper encode"); - exit(1); - } - else { - LOG_D("[E2AP ASN] Encoded succesfully, encoded size = %d", len); - } - - ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_E2AP_PDU, pdu); - - return len; -} - -void e2ap_asn1c_decode_pdu(E2AP_PDU_t* pdu, unsigned char *buffer, int len) -{ - asn_dec_rval_t dec_ret; - - assert(buffer != NULL); - - dec_ret = aper_decode(NULL, &asn_DEF_E2AP_PDU, (void **)&pdu, buffer, len, 0, 0); - - if (dec_ret.code != RC_OK) { - LOG_E("[E2AP ASN] Failed to decode pdu"); - exit(1); - } - else { - LOG_D("[E2AP ASN] Decoded succesfully"); - } -} - -int e2ap_asn1c_get_procedureCode(E2AP_PDU_t* pdu) -{ - int procedureCode = -1; - - switch(pdu->present) - { - case E2AP_PDU_PR_initiatingMessage: - fprintf(stderr,"initiating message\n"); - procedureCode = pdu->choice.initiatingMessage->procedureCode; - break; - - case E2AP_PDU_PR_successfulOutcome: - procedureCode = pdu->choice.successfulOutcome->procedureCode; - break; - - case E2AP_PDU_PR_unsuccessfulOutcome: - procedureCode = pdu->choice.unsuccessfulOutcome->procedureCode; - break; - - default: - LOG_E("[E2AP] Error: Unknown index %d in E2AP PDU", (int)pdu->present); - break; - } - - return procedureCode; -} diff --git a/e2sim/previous/e2apv1sim/e2sim/src/E2AP/e2ap_asn1c_codec.h b/e2sim/previous/e2apv1sim/e2sim/src/E2AP/e2ap_asn1c_codec.h deleted file mode 100644 index 314fd63..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/E2AP/e2ap_asn1c_codec.h +++ /dev/null @@ -1,48 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ -#ifndef E2AP_ASN1C_CODEC_H -#define E2AP_ASN1C_CODEC_H - -#include "e2sim_defs.h" -#include "E2AP-PDU.h" -#include "InitiatingMessage.h" -#include "SuccessfulOutcome.h" -#include "UnsuccessfulOutcome.h" - -#include "GlobalE2node-ID.h" -#include "E2setupRequest.h" - -#define ASN1C_PDU_PRINT_BUFFER 4096 -#define MAX_XML_BUFFER 10000 -#define E2AP_XML_DIR "/src/E2AP/XML/" - -void e2ap_asn1c_print_pdu(const E2AP_PDU_t* pdu); - -void asn1c_xer_print(asn_TYPE_descriptor_t *typeDescriptor, void *data); - -E2AP_PDU_t* e2ap_xml_to_pdu(char const* xml_message); -E2setupRequest_t* smaller_e2ap_xml_to_pdu(char const* xml_message); - -int e2ap_asn1c_encode_pdu(E2AP_PDU_t* pdu, unsigned char **buffer); - -void e2ap_asn1c_decode_pdu(E2AP_PDU_t* pdu, unsigned char *buffer, int len); - -int e2ap_asn1c_get_procedureCode(E2AP_PDU_t* pdu); - -#endif diff --git a/e2sim/previous/e2apv1sim/e2sim/src/E2AP/e2ap_message_handler.cpp b/e2sim/previous/e2apv1sim/e2sim/src/E2AP/e2ap_message_handler.cpp deleted file mode 100644 index 45d31d0..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/E2AP/e2ap_message_handler.cpp +++ /dev/null @@ -1,295 +0,0 @@ - - -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ -#include "e2ap_message_handler.hpp" - -//#include -//#include - -#include "encode_e2apv1.hpp" -#include "kpm_callbacks.hpp" - -#include - -void e2ap_handle_sctp_data(int &socket_fd, sctp_buffer_t &data, bool xmlenc, E2Sim *e2sim) -{ - fprintf(stderr, "in e2ap_handle_sctp_data()\n"); - //decode the data into E2AP-PDU - E2AP_PDU_t* pdu = (E2AP_PDU_t*)calloc(1, sizeof(E2AP_PDU)); - ASN_STRUCT_RESET(asn_DEF_E2AP_PDU, pdu); - - fprintf(stderr, "decoding...\n"); - - asn_transfer_syntax syntax; - - - syntax = ATS_ALIGNED_BASIC_PER; - - - fprintf(stderr, "full buffer\n%s\n", data.buffer); - // e2ap_asn1c_decode_pdu(pdu, data.buffer, data.len); - - auto rval = asn_decode(nullptr, syntax, &asn_DEF_E2AP_PDU, (void **) &pdu, - data.buffer, data.len); - - - int index = (int)pdu->present; - fprintf(stderr, "length of data %d\n", rval.consumed); - fprintf(stderr, "result %d\n", rval.code); - fprintf(stderr, "index is %d\n", index); - - fprintf(stderr, "showing xer of data\n"); - - xer_fprint(stderr, &asn_DEF_E2AP_PDU, pdu); - - int procedureCode = e2ap_asn1c_get_procedureCode(pdu); - index = (int)pdu->present; - - LOG_D("[E2AP] Unpacked E2AP-PDU: index = %d, procedureCode = %d\n", - index, procedureCode); - - switch(procedureCode) - { - - case ProcedureCode_id_E2setup: - switch(index) - { - case E2AP_PDU_PR_initiatingMessage: - e2ap_handle_E2SetupRequest(pdu, socket_fd); - LOG_I("[E2AP] Received SETUP-REQUEST"); - break; - - case E2AP_PDU_PR_successfulOutcome: - LOG_I("[E2AP] Received SETUP-RESPONSE-SUCCESS"); - break; - - case E2AP_PDU_PR_unsuccessfulOutcome: - LOG_I("[E2AP] Received SETUP-RESPONSE-FAILURE"); - break; - - default: - LOG_E("[E2AP] Invalid message index=%d in E2AP-PDU", index); - break; - } - break; - - case ProcedureCode_id_Reset: //reset = 7 - switch(index) - { - case E2AP_PDU_PR_initiatingMessage: - LOG_I("[E2AP] Received RESET-REQUEST"); - break; - - case E2AP_PDU_PR_successfulOutcome: - break; - - case E2AP_PDU_PR_unsuccessfulOutcome: - break; - - default: - LOG_E("[E2AP] Invalid message index=%d in E2AP-PDU", index); - break; - } - break; - - case ProcedureCode_id_RICsubscription: //RIC SUBSCRIPTION = 201 - switch(index) - { - case E2AP_PDU_PR_initiatingMessage: { //initiatingMessage - LOG_I("[E2AP] Received RIC-SUBSCRIPTION-REQUEST"); - // e2ap_handle_RICSubscriptionRequest(pdu, socket_fd); - long func_id = get_function_id_from_subscription(pdu); - SubscriptionCallback cb = e2sim->get_subscription_callback(func_id); - cb(pdu); - // callback_kpm_subscription_request(pdu, socket_fd); - - } - break; - - case E2AP_PDU_PR_successfulOutcome: - LOG_I("[E2AP] Received RIC-SUBSCRIPTION-RESPONSE"); - break; - - case E2AP_PDU_PR_unsuccessfulOutcome: - LOG_I("[E2AP] Received RIC-SUBSCRIPTION-FAILURE"); - break; - - default: - LOG_E("[E2AP] Invalid message index=%d in E2AP-PDU", index); - break; - } - break; - - case ProcedureCode_id_RICindication: // 205 - switch(index) - { - case E2AP_PDU_PR_initiatingMessage: //initiatingMessage - LOG_I("[E2AP] Received RIC-INDICATION-REQUEST"); - // e2ap_handle_RICSubscriptionRequest(pdu, socket_fd); - break; - case E2AP_PDU_PR_successfulOutcome: - LOG_I("[E2AP] Received RIC-INDICATION-RESPONSE"); - break; - - case E2AP_PDU_PR_unsuccessfulOutcome: - LOG_I("[E2AP] Received RIC-INDICATION-FAILURE"); - break; - - default: - LOG_E("[E2AP] Invalid message index=%d in E2AP-PDU %d", index, - (int)ProcedureCode_id_RICindication); - break; - } - break; - - default: - - LOG_E("[E2AP] No available handler for procedureCode=%d", procedureCode); - - break; - } -} - -void e2ap_handle_E2SetupRequest(E2AP_PDU_t* pdu, int &socket_fd) { - - - E2AP_PDU_t* res_pdu = (E2AP_PDU_t*)calloc(1, sizeof(E2AP_PDU)); - generate_e2apv1_setup_response(res_pdu); - - - LOG_D("[E2AP] Created E2-SETUP-RESPONSE"); - - e2ap_asn1c_print_pdu(res_pdu); - - - auto buffer_size = MAX_SCTP_BUFFER; - unsigned char buffer[MAX_SCTP_BUFFER]; - - sctp_buffer_t data; - auto er = asn_encode_to_buffer(nullptr, ATS_BASIC_XER, &asn_DEF_E2AP_PDU, res_pdu, buffer, buffer_size); - - data.len = er.encoded; - fprintf(stderr, "er encoded is %d\n", er.encoded); - - //data.len = e2ap_asn1c_encode_pdu(res_pdu, &buf); - memcpy(data.buffer, buffer, er.encoded); - - //send response data over sctp - if(sctp_send_data(socket_fd, data) > 0) { - LOG_I("[SCTP] Sent E2-SETUP-RESPONSE"); - } else { - LOG_E("[SCTP] Unable to send E2-SETUP-RESPONSE to peer"); - } - - sleep(5); - - //Sending Subscription Request - - E2AP_PDU_t* pdu_sub = (E2AP_PDU_t*)calloc(1,sizeof(E2AP_PDU)); - - generate_e2apv1_subscription_request(pdu_sub); - - xer_fprint(stderr, &asn_DEF_E2AP_PDU, pdu_sub); - - auto buffer_size2 = MAX_SCTP_BUFFER; - unsigned char buffer2[MAX_SCTP_BUFFER]; - - sctp_buffer_t data2; - - auto er2 = asn_encode_to_buffer(nullptr, ATS_ALIGNED_BASIC_PER, &asn_DEF_E2AP_PDU, pdu_sub, buffer2, buffer_size2); - - data2.len = er2.encoded; - memcpy(data2.buffer, buffer2, er2.encoded); - - fprintf(stderr, "er encded is %d\n", er2.encoded); - - if(sctp_send_data(socket_fd, data2) > 0) { - LOG_I("[SCTP] Sent E2-SUBSCRIPTION-REQUEST"); - } else { - LOG_E("[SCTP] Unable to send E2-SUBSCRIPTION-REQUEST to peer"); - } - - -} - - -void e2ap_handle_RICSubscriptionRequest(E2AP_PDU_t* pdu, int &socket_fd) -{ - - //Send back Subscription Success Response - - E2AP_PDU_t* pdu_resp = (E2AP_PDU_t*)calloc(1,sizeof(E2AP_PDU)); - - generate_e2apv1_subscription_response(pdu_resp, pdu); - - fprintf(stderr, "Subscription Response\n"); - - xer_fprint(stderr, &asn_DEF_E2AP_PDU, pdu_resp); - - auto buffer_size2 = MAX_SCTP_BUFFER; - unsigned char buffer2[MAX_SCTP_BUFFER]; - - sctp_buffer_t data2; - - auto er2 = asn_encode_to_buffer(nullptr, ATS_ALIGNED_BASIC_PER, &asn_DEF_E2AP_PDU, pdu_resp, buffer2, buffer_size2); - data2.len = er2.encoded; - - fprintf(stderr, "er encded is %d\n", er2.encoded); - - memcpy(data2.buffer, buffer2, er2.encoded); - - if(sctp_send_data(socket_fd, data2) > 0) { - LOG_I("[SCTP] Sent RIC-SUBSCRIPTION-RESPONSE"); - } else { - LOG_E("[SCTP] Unable to send RIC-SUBSCRIPTION-RESPONSE to peer"); - } - - - //Send back an Indication - - E2AP_PDU_t* pdu_ind = (E2AP_PDU_t*)calloc(1,sizeof(E2AP_PDU)); - - generate_e2apv1_indication_request(pdu_ind); - - xer_fprint(stderr, &asn_DEF_E2AP_PDU, pdu_ind); - - auto buffer_size = MAX_SCTP_BUFFER; - unsigned char buffer[MAX_SCTP_BUFFER]; - - sctp_buffer_t data; - - auto er = asn_encode_to_buffer(nullptr, ATS_ALIGNED_BASIC_PER, &asn_DEF_E2AP_PDU, pdu_ind, buffer, buffer_size); - data.len = er.encoded; - - fprintf(stderr, "er encded is %d\n", er.encoded); - - memcpy(data.buffer, buffer, er.encoded); - - if(sctp_send_data(socket_fd, data) > 0) { - LOG_I("[SCTP] Sent RIC-INDICATION-REQUEST"); - } else { - LOG_E("[SCTP] Unable to send RIC-INDICATION-REQUEST to peer"); - } - -} - - - - diff --git a/e2sim/previous/e2apv1sim/e2sim/src/E2AP/e2ap_message_handler.hpp b/e2sim/previous/e2apv1sim/e2sim/src/E2AP/e2ap_message_handler.hpp deleted file mode 100644 index 5ec288b..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/E2AP/e2ap_message_handler.hpp +++ /dev/null @@ -1,47 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ -#ifndef E2AP_MESSAGE_HANDLER_HPP -#define E2AP_MESSAGE_HANDLER_HPP - -#include "e2sim.hpp" -#include "e2sim_sctp.hpp" - - -extern "C" { - #include "e2sim_defs.h" - #include "e2ap_asn1c_codec.h" -} - -void e2ap_handle_sctp_data(int &socket_fd, sctp_buffer_t &data, bool xmlenc, E2Sim *e2sim); - -void e2ap_handle_X2SetupRequest(E2AP_PDU_t* pdu, int &socket_fd); - -void e2ap_handle_X2SetupResponse(E2AP_PDU_t* pdu, int &socket_fd); - -void e2ap_handle_ENDCX2SetupRequest(E2AP_PDU_t* pdu, int &socket_fd); - -void e2ap_handle_E2SetupRequest(E2AP_PDU_t* pdu, int &socket_fd); - -void e2ap_handle_RICSubscriptionRequest(E2AP_PDU_t* pdu, int &socket_fd); - -void e2ap_handle_RICSubscriptionRequest_securityDemo(E2AP_PDU_t* pdu, int &socket_fd); - -void e2ap_handle_ResourceStatusRequest(E2AP_PDU_t* pdu, int &socket_fd); - -#endif diff --git a/e2sim/previous/e2apv1sim/e2sim/src/E2APr/E2SM/e2sm.c b/e2sim/previous/e2apv1sim/e2sim/src/E2APr/E2SM/e2sm.c deleted file mode 100644 index 6cad6cd..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/E2APr/E2SM/e2sm.c +++ /dev/null @@ -1,196 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ -#include "e2sm.h" - -#include "ActionParameter-Item.h" -#include "ActionParameter-Value.h" -#include "PLMN-Identity.h" -#include "GlobalENB-ID.h" -#include "GlobalGNB-ID.h" -#include "Interface-ID.h" -#include "ProtocolIE-Field.h" -#include "InterfaceMessageType.h" -#include "InterfaceProtocolIE-Item.h" - -static PLMN_Identity_t *createPLMN_ID(const unsigned char *data) { - - PLMN_Identity_t *plmnId = calloc(1, sizeof(PLMN_Identity_t)); - ASN_STRUCT_RESET(asn_DEF_PLMN_Identity, plmnId); - plmnId->size = 3; - plmnId->buf = calloc(1, 3); - memcpy(plmnId->buf, data, 3); - - return plmnId; -} - -static GNB_ID_t *createGnb_id(const unsigned char *data, int numOfBits) { - - if (numOfBits < 22 || numOfBits > 32) { - printf("[Error] GNB_ID_t number of bits = %d, needs to be 22 .. 32", numOfBits); - return NULL; - } - - GNB_ID_t *gnb = calloc(1, sizeof(GNB_ID_t)); - ASN_STRUCT_RESET(asn_DEF_GNB_ID, gnb); - - gnb->present = GNB_ID_PR_gNB_ID; - gnb->choice.gNB_ID.size = numOfBits % 8 == 0 ? (unsigned int)(numOfBits / 8) : (unsigned int)(numOfBits / 8 + 1); - gnb->choice.gNB_ID.bits_unused = gnb->choice.gNB_ID.size * 8 - numOfBits; - gnb->choice.gNB_ID.buf = calloc(1, gnb->choice.gNB_ID.size); - memcpy(gnb->choice.gNB_ID.buf, data, gnb->choice.gNB_ID.size); - gnb->choice.gNB_ID.buf[gnb->choice.gNB_ID.size - 1] = - ((unsigned)(gnb->choice.gNB_ID.buf[gnb->choice.gNB_ID.size - 1] >> (unsigned)gnb->choice.gNB_ID.bits_unused) - << (unsigned)gnb->choice.gNB_ID.bits_unused); - - return gnb; -} - -static GlobalGNB_ID_t *createGlobalGNB_ID(PLMN_Identity_t *plmnIdentity, GNB_ID_t *gnb) { - - GlobalGNB_ID_t *ggnbId = calloc(1, sizeof(GlobalGNB_ID_t)); - ASN_STRUCT_RESET(asn_DEF_GlobalGNB_ID, ggnbId); - - memcpy(&ggnbId->pLMN_Identity, plmnIdentity, sizeof(PLMN_Identity_t)); - memcpy(&ggnbId->gNB_ID, gnb, sizeof(GNB_ID_t)); - - return ggnbId; -} - -static Interface_ID_t *createInterfaceIDForGnb(GlobalGNB_ID_t *gnb) { - - Interface_ID_t *interfaceId = calloc(1, sizeof(Interface_ID_t)); - ASN_STRUCT_RESET(asn_DEF_Interface_ID, interfaceId); - - interfaceId->present = Interface_ID_PR_global_gNB_ID; - interfaceId->choice.global_gNB_ID = gnb; - - return interfaceId; -} - -static InterfaceMessageType_t *createInterfaceMessageInitiating(long procedureCode) { - - InterfaceMessageType_t *intMsgT = calloc(1, sizeof(InterfaceMessageType_t)); - ASN_STRUCT_RESET(asn_DEF_InterfaceMessageType, intMsgT); - - intMsgT->procedureCode = procedureCode; - intMsgT->typeOfMessage = TypeOfMessage_initiating_message; - - return intMsgT; -} - -E2SM_gNB_X2_eventTriggerDefinition_t* create_eventTriggerDefinition(void) -{ - //PLMN_Identity - unsigned char plmnidData[3] = {0x33, 0xF4, 0x55}; - PLMN_Identity_t *plmnid = createPLMN_ID(plmnidData); - // xer_fprint(stdout, &asn_DEF_PLMN_Identity, (void *)plmnid); - - //GNB_ID - unsigned char gnbData[3] = {0x99, 0xaa, 0xbb}; - GNB_ID_t *gnb = createGnb_id(gnbData, 26); - // xer_fprint(stdout, &asn_DEF_GNB_ID, (void *)gnb); - - //GlobalGNB_ID - GlobalGNB_ID_t *globaGnb = createGlobalGNB_ID(plmnid, gnb); - // xer_fprint(stdout, &asn_DEF_GlobalGNB_ID, (void *)globaGnb); - - //Interface_ID - Interface_ID_t *gnbInterfaceId = createInterfaceIDForGnb(globaGnb); - // xer_fprint(stdout, &asn_DEF_Interface_ID, (void *)gnbInterfaceId); - - //InterfaceMessageType - InterfaceMessageType_t *initiatingInterface = createInterfaceMessageInitiating(35); - - //EventTriggerDefinition - E2SM_gNB_X2_eventTriggerDefinition_t *eventTrigger = calloc(1, sizeof(E2SM_gNB_X2_eventTriggerDefinition_t)); - ASN_STRUCT_RESET(asn_DEF_E2SM_gNB_X2_eventTriggerDefinition, eventTrigger); - - memcpy(&eventTrigger->interface_ID , gnbInterfaceId, sizeof(Interface_ID_t)); - - eventTrigger->interfaceDirection = 0; - memcpy(&eventTrigger->interfaceMessageType, initiatingInterface, sizeof(InterfaceMessageType_t)); - - return eventTrigger; -} - -#define E2AP_ASN1C_FIND_PROTOCOLIE_BY_ID(IE_TYPE, ie, container, IE_ID) \ - do {\ - IE_TYPE **ptr; \ - ie = NULL; \ - for (ptr = container->protocolIEs.list.array; \ - ptr < &container->protocolIEs.list.array[container->protocolIEs.list.count]; \ - ptr++) { \ - if((*ptr)->id == IE_ID) { \ - ie = *ptr; \ - break; \ - } \ - } \ - } while(0) - - -void test_eventTriggerDefinition(void) -{ - E2SM_gNB_X2_eventTriggerDefinition_t *eventTrigger = create_eventTriggerDefinition(); - - xer_fprint(stdout, &asn_DEF_E2SM_gNB_X2_eventTriggerDefinition, (void *)eventTrigger); - printf("\n"); - - uint8_t *eventBuff; - int eventBuff_len; - - eventBuff_len = aper_encode_to_new_buffer(&asn_DEF_E2SM_gNB_X2_eventTriggerDefinition, - 0, eventTrigger, (void **)&eventBuff); - - LOG_I("Encoded eventBuff_len = %d", eventBuff_len); - - //----------------------------------------------------------------------- - E2AP_PDU_t* pdu = e2ap_xml_to_pdu("E2AP_RICsubscriptionRequest.xml"); - e2ap_asn1c_print_pdu(pdu); - - InitiatingMessage_t *initiatingMessage = pdu->choice.initiatingMessage; - xer_fprint(stdout, &asn_DEF_InitiatingMessage, (void *)initiatingMessage); - - RICsubscriptionRequest_t *request = &initiatingMessage->value.choice.RICsubscriptionRequest; - xer_fprint(stdout, &asn_DEF_RICsubscriptionRequest, (void *)request); - - LOG_I("num of IEs = %d", request->protocolIEs.list.count); - - - RICsubscriptionRequest_IEs_t *ie; - - ie = request->protocolIEs.list.array[2]; - - // E2AP_ASN1C_FIND_PROTOCOLIE_BY_ID(RICsubscriptionRequest_IEs_t, ie, request, ProtocolIE_ID_id_RICsubscription); - // E2AP_ASN1C_FIND_PROTOCOLIE_BY_ID(RICsubscriptionRequest_IEs_t, ie, request, ProtocolIE_ID_id_RICrequestID); - - assert( ie != NULL); - - xer_fprint(stdout, &asn_DEF_RICsubscription, (void *)ie); - // xer_fprint(stdout, &asn_DEF_RICrequestID, (void *)ie); - - -} - -// -// typedef struct ProtocolIE_Container_119P0 { -// A_SEQUENCE_OF(struct RICsubscriptionRequest_IEs) list; -// -// /* Context for parsing across buffer boundaries */ -// asn_struct_ctx_t _asn_ctx; -// } ProtocolIE_Container_119P0_t; diff --git a/e2sim/previous/e2apv1sim/e2sim/src/E2APr/E2SM/e2sm.h b/e2sim/previous/e2apv1sim/e2sim/src/E2APr/E2SM/e2sm.h deleted file mode 100644 index 19f30a2..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/E2APr/E2SM/e2sm.h +++ /dev/null @@ -1,30 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ -#ifndef E2SM_H -#define E2SM_H - -#include "E2SM-gNB-X2-eventTriggerDefinition.h" -#include "E2AP-PDU.h" -#include "e2ap_asn1c_codec.h" - -E2SM_gNB_X2_eventTriggerDefinition_t* create_eventTriggerDefinition(void); - -void test_eventTriggerDefinition(void); - -#endif diff --git a/e2sim/previous/e2apv1sim/e2sim/src/E2APr/XML/E2AP_ENDCX2SetupFailure.xml b/e2sim/previous/e2apv1sim/e2sim/src/E2APr/XML/E2AP_ENDCX2SetupFailure.xml deleted file mode 100644 index 633baee..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/E2APr/XML/E2AP_ENDCX2SetupFailure.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - 36 - - - - - - 5 - - - - - - - - - - - - diff --git a/e2sim/previous/e2apv1sim/e2sim/src/E2APr/XML/E2AP_ENDCX2SetupRequest.xml b/e2sim/previous/e2apv1sim/e2sim/src/E2APr/XML/E2AP_ENDCX2SetupRequest.xml deleted file mode 100644 index ddb071a..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/E2APr/XML/E2AP_ENDCX2SetupRequest.xml +++ /dev/null @@ -1,67 +0,0 @@ - - - 36 - - - - - - 244 - - - - - - 21 - - - - 61 62 63 - - - 00110101000000000001 - - - - - - - 250 - - - - - - 0 - - 61 62 63 - - 0110010001100101011001100000 - - - 61 62 - - 61 62 63 - - - - 21400 - 3400 - - - - - - - - - - - - - - - - - - diff --git a/e2sim/previous/e2apv1sim/e2sim/src/E2APr/XML/E2AP_ENDCX2SetupResponse.xml b/e2sim/previous/e2apv1sim/e2sim/src/E2APr/XML/E2AP_ENDCX2SetupResponse.xml deleted file mode 100644 index 896eed6..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/E2APr/XML/E2AP_ENDCX2SetupResponse.xml +++ /dev/null @@ -1,97 +0,0 @@ - - - 36 - - - - - - 246 - - - - - - 252 - - - - 02 F8 29 - - - 000000000001001000110100 - - - - - - - 253 - - - - - - 99 - - 02 F8 29 - - 000000000000011110101011000000010010 - - - - 02 F8 29 - - - - - 100 - - - 9 - - - 9 - - - - - - - 100 - - - 9 - - - 9 - - - - - - - - - - - - - - - - 04 05 - - - - - - - - - - - - - - diff --git a/e2sim/previous/e2apv1sim/e2sim/src/E2APr/XML/E2AP_ErrorIndication.xml b/e2sim/previous/e2apv1sim/e2sim/src/E2APr/XML/E2AP_ErrorIndication.xml deleted file mode 100644 index 8974693..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/E2APr/XML/E2AP_ErrorIndication.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - 3 - - - - - - 5 - - - - - - - - - - - - diff --git a/e2sim/previous/e2apv1sim/e2sim/src/E2APr/XML/E2AP_PartSetupRequest.xml b/e2sim/previous/e2apv1sim/e2sim/src/E2APr/XML/E2AP_PartSetupRequest.xml deleted file mode 100644 index 43db78a..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/E2APr/XML/E2AP_PartSetupRequest.xml +++ /dev/null @@ -1 +0,0 @@ -400 01 02 030000001010110000001100001010 diff --git a/e2sim/previous/e2apv1sim/e2sim/src/E2APr/XML/E2AP_PartSetupRequest.xml~ b/e2sim/previous/e2apv1sim/e2sim/src/E2APr/XML/E2AP_PartSetupRequest.xml~ deleted file mode 100644 index b2343b9..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/E2APr/XML/E2AP_PartSetupRequest.xml~ +++ /dev/null @@ -1 +0,0 @@ -1400 01 02 030000001010110000001100001010 diff --git a/e2sim/previous/e2apv1sim/e2sim/src/E2APr/XML/E2AP_RICindication_type1.xml b/e2sim/previous/e2apv1sim/e2sim/src/E2APr/XML/E2AP_RICindication_type1.xml deleted file mode 100644 index e4e3f38..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/E2APr/XML/E2AP_RICindication_type1.xml +++ /dev/null @@ -1,74 +0,0 @@ - - - 205 - - - - - - 60030 - - - - 6 - 12 - - - - - 60003 - - - 10 - - - - 60017 - - - 100 - - - - 60028 - - - 100 - - - - 60029 - - - - - - - 60026 - - - 10 74 68 65 10 68 65 6C 40 - - - - 60027 - - - - 00 1B 40 80 80 00 00 08 00 6F 00 02 00 0C 00 F8 - 00 05 08 4D 86 D6 40 00 CB 00 20 31 32 33 34 35 - 36 37 38 39 31 32 33 34 35 36 37 38 39 31 32 33 - 34 35 36 37 38 39 31 32 33 34 35 00 CC 00 06 08 - 07 D0 20 03 E8 00 CE 00 0C 0B 49 6E 66 6F 72 6D - 61 74 69 6F 6E 01 17 00 08 00 33 32 31 34 35 36 - 30 01 13 00 01 22 00 CD 00 1B 00 00 D1 00 16 1A - 11 50 00 08 21 09 E0 41 41 42 42 43 43 44 44 45 - 45 5A 5A 59 58 - - - - - - - - diff --git a/e2sim/previous/e2apv1sim/e2sim/src/E2APr/XML/E2AP_RICindication_type2.xml b/e2sim/previous/e2apv1sim/e2sim/src/E2APr/XML/E2AP_RICindication_type2.xml deleted file mode 100644 index 92bc727..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/E2APr/XML/E2AP_RICindication_type2.xml +++ /dev/null @@ -1,74 +0,0 @@ - - - 205 - - - - - - 60030 - - - - 6 - 12 - - - - - 60003 - - - 10 - - - - 60017 - - - 100 - - - - 60028 - - - 100 - - - - 60029 - - - - - - - 60026 - - - 10 74 68 65 10 68 65 6C 40 - - - - 60027 - - - - 00 1B 40 80 80 00 00 08 00 6F 00 02 00 0C 00 F8 - 00 05 08 4D 86 D6 40 00 CB 00 20 31 32 33 34 35 - 36 37 38 39 31 32 33 34 35 36 37 38 39 31 32 33 - 34 35 36 37 38 39 31 32 33 34 35 00 CC 00 06 08 - 07 D0 20 03 E8 00 CE 00 0C 0B 49 6E 66 6F 72 6D - 61 74 69 6F 6E 01 17 00 08 00 33 32 31 34 35 36 - 30 01 13 00 01 23 00 CD 00 1B 00 00 D1 00 16 1A - 11 50 00 08 21 09 E0 41 41 42 42 43 43 44 44 45 - 45 5A 5A 59 58 - - - - - - - - diff --git a/e2sim/previous/e2apv1sim/e2sim/src/E2APr/XML/E2AP_RICsubscriptionRequest.xml b/e2sim/previous/e2apv1sim/e2sim/src/E2APr/XML/E2AP_RICsubscriptionRequest.xml deleted file mode 100644 index ab3ea11..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/E2APr/XML/E2AP_RICsubscriptionRequest.xml +++ /dev/null @@ -1,50 +0,0 @@ - - - 201 - - - - - - 60030 - - - - 1 - 200 - - - - - 60003 - - - 33 - - - - 60033 - - - - 00 01 02 03 40 0b 16 02 00 23 40 - - - 60011 - - - - 255 - - - - - - - - - - - - - diff --git a/e2sim/previous/e2apv1sim/e2sim/src/E2APr/XML/E2AP_RICsubscriptionRequest_Ashwin.xml b/e2sim/previous/e2apv1sim/e2sim/src/E2APr/XML/E2AP_RICsubscriptionRequest_Ashwin.xml deleted file mode 100644 index 524f7af..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/E2APr/XML/E2AP_RICsubscriptionRequest_Ashwin.xml +++ /dev/null @@ -1,50 +0,0 @@ - - - 201 - - - - - - 60030 - - - - 2 - 1 - - - - - 60003 - - - 0 - - - - 60033 - - - - 10 54 65 73 10 54 65 73 40 1B 40 - - - 60011 - - - - 4 - - - - - - - - - - - - - diff --git a/e2sim/previous/e2apv1sim/e2sim/src/E2APr/XML/E2AP_RICsubscriptionResponse.xml b/e2sim/previous/e2apv1sim/e2sim/src/E2APr/XML/E2AP_RICsubscriptionResponse.xml deleted file mode 100644 index b7ea847..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/E2APr/XML/E2AP_RICsubscriptionResponse.xml +++ /dev/null @@ -1,46 +0,0 @@ - - - 201 - - - - - - 60030 - - - - 2 - 205 - - - - - 60003 - - - 0 - - - - 60012 - - - - - 60013 - - - - 1 - - - - - - - - - - - diff --git a/e2sim/previous/e2apv1sim/e2sim/src/E2APr/XML/E2AP_ResourceStatusFailure.xml b/e2sim/previous/e2apv1sim/e2sim/src/E2APr/XML/E2AP_ResourceStatusFailure.xml deleted file mode 100644 index 9898d55..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/E2APr/XML/E2AP_ResourceStatusFailure.xml +++ /dev/null @@ -1,35 +0,0 @@ - - - 9 - - - - - - 39 - - - 1 - - - - 40 - - - 74 - - - - 5 - - - - - - - - - - - - diff --git a/e2sim/previous/e2apv1sim/e2sim/src/E2APr/XML/E2AP_ResourceStatusRequest.xml b/e2sim/previous/e2apv1sim/e2sim/src/E2APr/XML/E2AP_ResourceStatusRequest.xml deleted file mode 100644 index a807971..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/E2APr/XML/E2AP_ResourceStatusRequest.xml +++ /dev/null @@ -1,85 +0,0 @@ - - - 9 - - - - - - 39 - - - 1 - - - - 28 - - - - - - - 38 - - - - 11111110000000000000000000000000 - - - - - 29 - - - - - 31 - - - - - 13 30 23 - - 0000001010110000001100001010 - - - - - - - - - - 30 - - - - - - - 64 - - - - - - - 109 - - - - - - - 145 - - - - - - - - - - diff --git a/e2sim/previous/e2apv1sim/e2sim/src/E2APr/XML/E2AP_ResourceStatusRequest_bad.xml b/e2sim/previous/e2apv1sim/e2sim/src/E2APr/XML/E2AP_ResourceStatusRequest_bad.xml deleted file mode 100644 index 6968e71..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/E2APr/XML/E2AP_ResourceStatusRequest_bad.xml +++ /dev/null @@ -1,85 +0,0 @@ - - - 9 - - - - - - 39 - - - 1 - - - - 28 - - - - - - - 38 - - - - 00000000000000000000000000000000 - - - - - 29 - - - - - 31 - - - - - 02 07 9f - - 0010101100000000001100001010 - - - - - - - - - - 30 - - - - - - - 64 - - - - - - - 109 - - - - - - - 145 - - - - - - - - - - diff --git a/e2sim/previous/e2apv1sim/e2sim/src/E2APr/XML/E2AP_ResourceStatusResponse.xml b/e2sim/previous/e2apv1sim/e2sim/src/E2APr/XML/E2AP_ResourceStatusResponse.xml deleted file mode 100644 index 12542a8..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/E2APr/XML/E2AP_ResourceStatusResponse.xml +++ /dev/null @@ -1,134 +0,0 @@ - - - 9 - - - - - - 39 - - - 1 - - - - 40 - - - 75 - - - - 65 - - - - - 66 - - - - - 13 30 23 - - 0000001010110000001100001010 - - - - - 67 - - - - - 00000010000000000000000000000000 - - - - - - - - - 67 - - - - - 00000100000000000000000000000000 - - - - - - - - - 67 - - - - - 00001000000000000000000000000000 - - - - - - - - - 67 - - - - - 00100000000000000000000000000000 - - - - - - - - - 67 - - - - - 01000000000000000000000000000000 - - - - - - - - - 67 - - - - - 10000000000000000000000000000000 - - - - - - - - - - - - - - - - - - - diff --git a/e2sim/previous/e2apv1sim/e2sim/src/E2APr/XML/E2AP_ResourceStatusUpdate.xml b/e2sim/previous/e2apv1sim/e2sim/src/E2APr/XML/E2AP_ResourceStatusUpdate.xml deleted file mode 100644 index b5630bc..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/E2APr/XML/E2AP_ResourceStatusUpdate.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - 10 - - - - - - 39 - - - 1 - - - - 40 - - - 75 - - - - 32 - - - - - 33 - - - - - 13 30 23 - - 0000001010110000001100001010 - - - - - 42 - - - - - 100 - 99 - - - 100 - 99 - - - - - - - - - - - - - - - - diff --git a/e2sim/previous/e2apv1sim/e2sim/src/E2APr/XML/E2AP_SetupRequest.xml b/e2sim/previous/e2apv1sim/e2sim/src/E2APr/XML/E2AP_SetupRequest.xml deleted file mode 100644 index b2343b9..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/E2APr/XML/E2AP_SetupRequest.xml +++ /dev/null @@ -1 +0,0 @@ -1400 01 02 030000001010110000001100001010 diff --git a/e2sim/previous/e2apv1sim/e2sim/src/E2APr/XML/E2AP_SetupRequest.xml~ b/e2sim/previous/e2apv1sim/e2sim/src/E2APr/XML/E2AP_SetupRequest.xml~ deleted file mode 100644 index b2343b9..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/E2APr/XML/E2AP_SetupRequest.xml~ +++ /dev/null @@ -1 +0,0 @@ -1400 01 02 030000001010110000001100001010 diff --git a/e2sim/previous/e2apv1sim/e2sim/src/E2APr/XML/E2AP_SetupRequest2.xml b/e2sim/previous/e2apv1sim/e2sim/src/E2APr/XML/E2AP_SetupRequest2.xml deleted file mode 100644 index 6d8c654..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/E2APr/XML/E2AP_SetupRequest2.xml +++ /dev/null @@ -1,30 +0,0 @@ - - - 1 - - - - - - 4 - - - - - - 70 6C 6D 6E 33 - - - 01100111011011100110001000110001 - - - - - - - - - - - - diff --git a/e2sim/previous/e2apv1sim/e2sim/src/E2APr/XML/E2AP_X2SetupFailure.xml b/e2sim/previous/e2apv1sim/e2sim/src/E2APr/XML/E2AP_X2SetupFailure.xml deleted file mode 100644 index 53acf31..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/E2APr/XML/E2AP_X2SetupFailure.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - 6 - - - - - - 5 - - - - - - - - - - - - diff --git a/e2sim/previous/e2apv1sim/e2sim/src/E2APr/XML/E2AP_X2SetupRequest.xml b/e2sim/previous/e2apv1sim/e2sim/src/E2APr/XML/E2AP_X2SetupRequest.xml deleted file mode 100644 index 9f0f286..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/E2APr/XML/E2AP_X2SetupRequest.xml +++ /dev/null @@ -1,57 +0,0 @@ - - - 6 - - - - - - 21 - - - - 13 30 23 - - - 11111111111111111111 - - - - - - - 20 - - - - - - 503 - - 13 30 23 - - 1111111111111111111100000000 - - - 00 00 - - 13 30 23 - - - - 0 - 0 - - - - - - - - - - - - - - diff --git a/e2sim/previous/e2apv1sim/e2sim/src/E2APr/XML/E2AP_X2SetupResponse.xml b/e2sim/previous/e2apv1sim/e2sim/src/E2APr/XML/E2AP_X2SetupResponse.xml deleted file mode 100644 index af42d5b..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/E2APr/XML/E2AP_X2SetupResponse.xml +++ /dev/null @@ -1,97 +0,0 @@ - - - 6 - - - - - - 21 - - - - 13 30 23 - - - 00000010101100000011 - - - - - - - 20 - - - - - - 308 - - 13 30 23 - - 0000001010110000001100001010 - - - 64 03 - - 13 30 23 - - - - 18650 - 650 - - - - - - - 41 - - - - - - - 55 - - - - 344 - 12 - - 5 - - - - - 160 - - - - - - - - - - - - - 24 - - - - - 13 30 23 - 80 00 - - - - - - - - - diff --git a/e2sim/previous/e2apv1sim/e2sim/src/E2APr/XML/GlobalE2node-ID.xml b/e2sim/previous/e2apv1sim/e2sim/src/E2APr/XML/GlobalE2node-ID.xml deleted file mode 100644 index dd21201..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/E2APr/XML/GlobalE2node-ID.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - 70 6C 6D 6E 33 - - - 01100111011011100110001000110001 - - - - - diff --git a/e2sim/previous/e2apv1sim/e2sim/src/E2APr/XML/reference_constants.txt b/e2sim/previous/e2apv1sim/e2sim/src/E2APr/XML/reference_constants.txt deleted file mode 100644 index b9a3b54..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/E2APr/XML/reference_constants.txt +++ /dev/null @@ -1,16 +0,0 @@ -/* Dependencies */ -typedef enum Criticality { - Criticality_reject = 0, - Criticality_ignore = 1, - Criticality_notify = 2 -} e_Criticality; - - --- Event Trigger Definition OCTET STRING contents -E2SM-gNB-X2-eventTriggerDefinition ::= SEQUENCE{ - interface-ID Interface-ID, - interfaceDirection InterfaceDirection, - interfaceMessageType InterfaceMessageType, - interfaceProtocolIE-List SEQUENCE (SIZE(1..maxofInterfaceProtocolIE)) OF InterfaceProtocolIE-Item OPTIONAL, - ... -} diff --git a/e2sim/previous/e2apv1sim/e2sim/src/E2APr/e2ap_asn1c_codec.c b/e2sim/previous/e2apv1sim/e2sim/src/E2APr/e2ap_asn1c_codec.c deleted file mode 100644 index f76032d..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/E2APr/e2ap_asn1c_codec.c +++ /dev/null @@ -1,229 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ -#include "e2ap_asn1c_codec.h" - - -void e2ap_asn1c_print_pdu(const E2AP_PDU_t* pdu) -{ - printf("before\n"); - // xer_fprint(stdout, &asn_DEF_E2AP_PDU, (void *)pdu); - xer_fprint(stdout, &asn_DEF_E2AP_PDU, pdu); - printf("after\n"); - printf("\n"); -} - -void asn1c_xer_print(asn_TYPE_descriptor_t *typeDescriptor, void *data) -{ - xer_fprint(stdout, typeDescriptor, (void *)data); - printf("\n"); -} - - -E2AP_PDU_t* e2ap_xml_to_pdu(char const* xml_message) -{ - // E2AP_PDU_t *pdu = new E2AP_PDU_t(); - E2AP_PDU_t *pdu = calloc(1, sizeof(E2AP_PDU_t)); - - assert(pdu != 0); - - printf("xmlpdu1\n"); - - uint8_t buf[MAX_XML_BUFFER]; - asn_dec_rval_t rval; - size_t size; - FILE *f; - - char XML_path[300]; - char *work_dir = getenv(WORKDIR_ENV); - - printf("xmlpdu2\n"); - - strcpy(XML_path, work_dir); - strcat(XML_path, E2AP_XML_DIR); - strcat(XML_path, xml_message); - - printf("xmlpdu4\n"); - - LOG_D("Generate E2AP PDU from XML file: %s\n", XML_path); - memset(buf, 0, sizeof(buf)); - - printf("xmlpdu3\n"); - - f = fopen(XML_path, "r"); - if(!f){ - LOG_E("Unable to open %s. Make sure you have set the Environment Variable E2SIM_DIR, see README", XML_path) - } - - printf("xmlpdu5\n"); - - assert(f); - - printf("xmlpdu6\n"); - - size = fread(buf, 1, sizeof(buf), f); - if(size == 0 || size == sizeof(buf)) - { - LOG_E("Input too long: %s", XML_path); - exit(1); - } - - fclose(f); - - printf("xmlpdu7\n"); - - rval = xer_decode(0, &asn_DEF_E2AP_PDU, (void **)&pdu, buf, size); - - printf("xmlpdu8\n"); - - assert(rval.code == RC_OK); - - return pdu; -} - - -E2setupRequest_t* smaller_e2ap_xml_to_pdu(char const* xml_message) -{ - // E2AP_PDU_t *pdu = new E2AP_PDU_t(); - E2AP_PDU_t *pdu = calloc(1, sizeof(E2AP_PDU_t)); - - // GlobalE2node_ID_t *globale2nodeid = (GlobalE2node_ID_t*)calloc(1, sizeof(GlobalE2node_ID_t)); - GlobalE2node_ID_t *globale2nodeid = (GlobalE2node_ID_t*)calloc(1, sizeof(GlobalE2node_ID_t)); - E2setupRequest_t *e2setuprequest = (E2setupRequest_t*)calloc(1,sizeof(E2setupRequest_t)); - - printf("xmlpdu1\n"); - - uint8_t buf[MAX_XML_BUFFER]; - asn_dec_rval_t rval; - size_t size; - FILE *f; - - char XML_path[300]; - char *work_dir = getenv(WORKDIR_ENV); - - printf("xmlpdu2\n"); - - strcpy(XML_path, work_dir); - strcat(XML_path, E2AP_XML_DIR); - strcat(XML_path, xml_message); - - printf("xmlpdu4\n"); - - LOG_D("Generate E2AP PDU from XML file: %s\n", XML_path); - memset(buf, 0, sizeof(buf)); - - printf("xmlpdu3\n"); - - f = fopen(XML_path, "r"); - if(!f){ - LOG_E("Unable to open %s. Make sure you have set the Environment Variable E2SIM_DIR, see README", XML_path) - } - - printf("xmlpdu5\n"); - - assert(f); - - printf("xmlpdu6\n"); - - size = fread(buf, 1, sizeof(buf), f); - if(size == 0 || size == sizeof(buf)) - { - LOG_E("Input too long: %s", XML_path); - exit(1); - } - - fclose(f); - - printf("xmlpdu7\n"); - - rval = xer_decode(0, &asn_DEF_E2setupRequest, (void **)&e2setuprequest, buf, size); - - printf("xmlpdu8\n"); - - assert(rval.code == RC_OK); - - return e2setuprequest; -} - - -int e2ap_asn1c_encode_pdu(E2AP_PDU_t* pdu, unsigned char **buffer) -{ - int len; - - *buffer = NULL; - assert(pdu != NULL); - assert(buffer != NULL); - - len = aper_encode_to_new_buffer(&asn_DEF_E2AP_PDU, 0, pdu, (void **)buffer); - - if (len < 0) { - LOG_E("[E2AP ASN] Unable to aper encode"); - exit(1); - } - else { - LOG_D("[E2AP ASN] Encoded succesfully, encoded size = %d", len); - } - - ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_E2AP_PDU, pdu); - - return len; -} - -void e2ap_asn1c_decode_pdu(E2AP_PDU_t* pdu, unsigned char *buffer, int len) -{ - asn_dec_rval_t dec_ret; - - assert(buffer != NULL); - - dec_ret = aper_decode(NULL, &asn_DEF_E2AP_PDU, (void **)&pdu, buffer, len, 0, 0); - - if (dec_ret.code != RC_OK) { - LOG_E("[E2AP ASN] Failed to decode pdu"); - exit(1); - } - else { - LOG_D("[E2AP ASN] Decoded succesfully"); - } -} - -int e2ap_asn1c_get_procedureCode(E2AP_PDU_t* pdu) -{ - int procedureCode = -1; - - switch(pdu->present) - { - case E2AP_PDU_PR_initiatingMessage: - fprintf(stderr,"initiating message\n"); - procedureCode = pdu->choice.initiatingMessage->procedureCode; - break; - - case E2AP_PDU_PR_successfulOutcome: - procedureCode = pdu->choice.successfulOutcome->procedureCode; - break; - - case E2AP_PDU_PR_unsuccessfulOutcome: - procedureCode = pdu->choice.unsuccessfulOutcome->procedureCode; - break; - - default: - LOG_E("[E2AP] Error: Unknown index %d in E2AP PDU", (int)pdu->present); - break; - } - - return procedureCode; -} diff --git a/e2sim/previous/e2apv1sim/e2sim/src/E2APr/e2ap_asn1c_codec.h b/e2sim/previous/e2apv1sim/e2sim/src/E2APr/e2ap_asn1c_codec.h deleted file mode 100644 index 314fd63..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/E2APr/e2ap_asn1c_codec.h +++ /dev/null @@ -1,48 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ -#ifndef E2AP_ASN1C_CODEC_H -#define E2AP_ASN1C_CODEC_H - -#include "e2sim_defs.h" -#include "E2AP-PDU.h" -#include "InitiatingMessage.h" -#include "SuccessfulOutcome.h" -#include "UnsuccessfulOutcome.h" - -#include "GlobalE2node-ID.h" -#include "E2setupRequest.h" - -#define ASN1C_PDU_PRINT_BUFFER 4096 -#define MAX_XML_BUFFER 10000 -#define E2AP_XML_DIR "/src/E2AP/XML/" - -void e2ap_asn1c_print_pdu(const E2AP_PDU_t* pdu); - -void asn1c_xer_print(asn_TYPE_descriptor_t *typeDescriptor, void *data); - -E2AP_PDU_t* e2ap_xml_to_pdu(char const* xml_message); -E2setupRequest_t* smaller_e2ap_xml_to_pdu(char const* xml_message); - -int e2ap_asn1c_encode_pdu(E2AP_PDU_t* pdu, unsigned char **buffer); - -void e2ap_asn1c_decode_pdu(E2AP_PDU_t* pdu, unsigned char *buffer, int len); - -int e2ap_asn1c_get_procedureCode(E2AP_PDU_t* pdu); - -#endif diff --git a/e2sim/previous/e2apv1sim/e2sim/src/E2APr/e2ap_message_handler.cpp b/e2sim/previous/e2apv1sim/e2sim/src/E2APr/e2ap_message_handler.cpp deleted file mode 100644 index 0bd6479..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/E2APr/e2ap_message_handler.cpp +++ /dev/null @@ -1,332 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# Copyright (c) 2020 Samsung Electronics Co., Ltd. All Rights Reserved. * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ -#include "e2ap_message_handler.hpp" - -//#include -//#include - -#include "encode_e2apv1.hpp" - - -#include - -void e2ap_handle_sctp_data(int &socket_fd, sctp_buffer_t &data, bool xmlenc) -{ - fprintf(stderr, "in e2ap_handle_sctp_data()\n"); - //decode the data into E2AP-PDU - E2AP_PDU_t* pdu = (E2AP_PDU_t*)calloc(1, sizeof(E2AP_PDU)); - ASN_STRUCT_RESET(asn_DEF_E2AP_PDU, pdu); - - fprintf(stderr, "decoding...\n"); - - asn_transfer_syntax syntax; - - - syntax = ATS_ALIGNED_BASIC_PER; - - - fprintf(stderr, "full buffer\n%s\n", data.buffer); - // e2ap_asn1c_decode_pdu(pdu, data.buffer, data.len); - - auto rval = asn_decode(nullptr, syntax, &asn_DEF_E2AP_PDU, (void **) &pdu, - data.buffer, data.len); - - - int index = (int)pdu->present; - fprintf(stderr, "length of data %d\n", rval.consumed); - fprintf(stderr, "result %d\n", rval.code); - fprintf(stderr, "index is %d\n", index); - - fprintf(stderr, "showing xer of data\n"); - - xer_fprint(stderr, &asn_DEF_E2AP_PDU, pdu); - - int procedureCode = e2ap_asn1c_get_procedureCode(pdu); - index = (int)pdu->present; - - LOG_D("[E2AP] Unpacked E2AP-PDU: index = %d, procedureCode = %d\n", - index, procedureCode); - - switch(procedureCode) - { - - case ProcedureCode_id_E2setup: - switch(index) - { - case E2AP_PDU_PR_initiatingMessage: - e2ap_handle_E2SetupRequest(pdu, socket_fd); - LOG_I("[E2AP] Received SETUP-REQUEST"); - break; - - case E2AP_PDU_PR_successfulOutcome: - LOG_I("[E2AP] Received SETUP-RESPONSE-SUCCESS"); - break; - - case E2AP_PDU_PR_unsuccessfulOutcome: - LOG_I("[E2AP] Received SETUP-RESPONSE-FAILURE"); - break; - - default: - LOG_E("[E2AP] Invalid message index=%d in E2AP-PDU", index); - break; - } - break; - - case ProcedureCode_id_Reset: //reset = 7 - switch(index) - { - case E2AP_PDU_PR_initiatingMessage: - LOG_I("[E2AP] Received RESET-REQUEST"); - break; - - case E2AP_PDU_PR_successfulOutcome: - break; - - case E2AP_PDU_PR_unsuccessfulOutcome: - break; - - default: - LOG_E("[E2AP] Invalid message index=%d in E2AP-PDU", index); - break; - } - break; - - case ProcedureCode_id_RICindication: // 205 - switch(index) - { - case E2AP_PDU_PR_initiatingMessage: //initiatingMessage - LOG_I("[E2AP] Received RIC-INDICATION-REQUEST"); - // e2ap_handle_RICSubscriptionRequest(pdu, socket_fd); - break; - case E2AP_PDU_PR_successfulOutcome: - LOG_I("[E2AP] Received RIC-INDICATION-RESPONSE"); - break; - - case E2AP_PDU_PR_unsuccessfulOutcome: - LOG_I("[E2AP] Received RIC-INDICATION-FAILURE"); - break; - - default: - LOG_E("[E2AP] Invalid message index=%d in E2AP-PDU %d", index, - (int)ProcedureCode_id_RICindication); - break; - } - break; - - case ProcedureCode_id_RICserviceQuery: - switch (index) - { - case E2AP_PDU_PR_initiatingMessage: - LOG_I("[E2AP] Received RIC-Service-Query") - e2ap_handle_E2SeviceUpdate(pdu, socket_fd); - break; - - default: - LOG_E("[E2AP] Invalid message index=%d in E2AP-PDU %d", index, - (int)ProcedureCode_id_RICserviceQuery); - break; - } - break; - - case ProcedureCode_id_RICserviceUpdate: - switch (index) - { - case E2AP_PDU_PR_successfulOutcome: - LOG_I("[E2AP] Received RIC-SERVICE-UPDATE-SUCCESS") - break; - - case E2AP_PDU_PR_unsuccessfulOutcome: - LOG_I("[E2AP] Received RIC-SERVICE-UPDATE-FAILURE") - break; - - default: - LOG_E("[E2AP] Invalid message index=%d in E2AP-PDU %d", index, - (int)ProcedureCode_id_RICserviceUpdate); - break; - } - break; - - default: - - LOG_E("[E2AP] No available handler for procedureCode=%d", procedureCode); - - break; - } -} - -void e2ap_handle_E2SeviceUpdate(E2AP_PDU_t* pdu, int &socket_fd) { - -auto buffer_size = MAX_SCTP_BUFFER; - unsigned char buffer[MAX_SCTP_BUFFER]; - E2AP_PDU_t* pdu = (E2AP_PDU_t*)calloc(1,sizeof(E2AP_PDU)); - generate_e2apv1_service_update(pdu); - - printf("After generating e2setup req\n"); - - xer_fprint(stderr, &asn_DEF_E2AP_PDU, pdu); - - printf("After XER Encoding\n"); - - sctp_buffer_t data; - - char *error_buf = (char*)calloc(300, sizeof(char)); - size_t errlen; - - asn_check_constraints(&asn_DEF_E2AP_PDU, pdu, error_buf, &errlen); - printf("error length %d\n", errlen); - printf("error buf %s\n", error_buf); - - auto er = asn_encode_to_buffer(nullptr, ATS_ALIGNED_BASIC_PER, &asn_DEF_E2AP_PDU, pdu, buffer, buffer_size); - //auto er = asn_encode_to_buffer(nullptr, ATS_BASIC_XER, &asn_DEF_E2AP_PDU, pdu_setup, buffer, buffer_size); - data.len = er.encoded; - fprintf(stderr, "er encoded is %d\n", er.encoded); - - memcpy(data.buffer, buffer, er.encoded); - - //send response data over sctp - if(sctp_send_data(socket_fd, data) > 0) { - LOG_I("[SCTP] Sent E2-SERVICE-UPDATE"); - } else { - LOG_E("[SCTP] Unable to send E2-SERVICE-UPDATE to peer"); - } -} - -void e2ap_handle_E2SetupRequest(E2AP_PDU_t* pdu, int &socket_fd) { - - - E2AP_PDU_t* res_pdu = (E2AP_PDU_t*)calloc(1, sizeof(E2AP_PDU)); - generate_e2apv1_setup_response(res_pdu); - - - LOG_D("[E2AP] Created E2-SETUP-RESPONSE"); - - e2ap_asn1c_print_pdu(res_pdu); - - - auto buffer_size = MAX_SCTP_BUFFER; - unsigned char buffer[MAX_SCTP_BUFFER]; - - sctp_buffer_t data; - auto er = asn_encode_to_buffer(nullptr, ATS_BASIC_XER, &asn_DEF_E2AP_PDU, res_pdu, buffer, buffer_size); - - data.len = er.encoded; - fprintf(stderr, "er encoded is %d\n", er.encoded); - - //data.len = e2ap_asn1c_encode_pdu(res_pdu, &buf); - memcpy(data.buffer, buffer, er.encoded); - - //send response data over sctp - if(sctp_send_data(socket_fd, data) > 0) { - LOG_I("[SCTP] Sent E2-SETUP-RESPONSE"); - } else { - LOG_E("[SCTP] Unable to send E2-SETUP-RESPONSE to peer"); - } - - sleep(5); - - //Sending Subscription Request - - E2AP_PDU_t* pdu_sub = (E2AP_PDU_t*)calloc(1,sizeof(E2AP_PDU)); - - generate_e2apv1_subscription_request(pdu_sub); - - xer_fprint(stderr, &asn_DEF_E2AP_PDU, pdu_sub); - - auto buffer_size2 = MAX_SCTP_BUFFER; - unsigned char buffer2[MAX_SCTP_BUFFER]; - - sctp_buffer_t data2; - - auto er2 = asn_encode_to_buffer(nullptr, ATS_ALIGNED_BASIC_PER, &asn_DEF_E2AP_PDU, pdu_sub, buffer2, buffer_size2); - - data2.len = er2.encoded; - memcpy(data2.buffer, buffer2, er2.encoded); - - fprintf(stderr, "er encded is %d\n", er2.encoded); - - if(sctp_send_data(socket_fd, data2) > 0) { - LOG_I("[SCTP] Sent E2-SUBSCRIPTION-REQUEST"); - } else { - LOG_E("[SCTP] Unable to send E2-SUBSCRIPTION-REQUEST to peer"); - } - - -} - - -void e2ap_handle_RICSubscriptionRequest(E2AP_PDU_t* pdu, int &socket_fd) -{ - - //Send back Subscription Success Response - - E2AP_PDU_t* pdu_resp = (E2AP_PDU_t*)calloc(1,sizeof(E2AP_PDU)); - - generate_e2apv1_subscription_response(pdu_resp, pdu); - - fprintf(stderr, "Subscription Response\n"); - - xer_fprint(stderr, &asn_DEF_E2AP_PDU, pdu_resp); - - auto buffer_size2 = MAX_SCTP_BUFFER; - unsigned char buffer2[MAX_SCTP_BUFFER]; - - sctp_buffer_t data2; - - auto er2 = asn_encode_to_buffer(nullptr, ATS_ALIGNED_BASIC_PER, &asn_DEF_E2AP_PDU, pdu_resp, buffer2, buffer_size2); - data2.len = er2.encoded; - - fprintf(stderr, "er encded is %d\n", er2.encoded); - - memcpy(data2.buffer, buffer2, er2.encoded); - - if(sctp_send_data(socket_fd, data2) > 0) { - LOG_I("[SCTP] Sent RIC-SUBSCRIPTION-RESPONSE"); - } else { - LOG_E("[SCTP] Unable to send RIC-SUBSCRIPTION-RESPONSE to peer"); - } - - - //Send back an Indication - - E2AP_PDU_t* pdu_ind = (E2AP_PDU_t*)calloc(1,sizeof(E2AP_PDU)); - - generate_e2apv1_indication_request(pdu_ind); - - xer_fprint(stderr, &asn_DEF_E2AP_PDU, pdu_ind); - - auto buffer_size = MAX_SCTP_BUFFER; - unsigned char buffer[MAX_SCTP_BUFFER]; - - sctp_buffer_t data; - - auto er = asn_encode_to_buffer(nullptr, ATS_ALIGNED_BASIC_PER, &asn_DEF_E2AP_PDU, pdu_ind, buffer, buffer_size); - data.len = er.encoded; - - fprintf(stderr, "er encded is %d\n", er.encoded); - - memcpy(data.buffer, buffer, er.encoded); - - if(sctp_send_data(socket_fd, data) > 0) { - LOG_I("[SCTP] Sent RIC-INDICATION-REQUEST"); - } else { - LOG_E("[SCTP] Unable to send RIC-INDICATION-REQUEST to peer"); - } - -} diff --git a/e2sim/previous/e2apv1sim/e2sim/src/E2APr/e2ap_message_handler.hpp b/e2sim/previous/e2apv1sim/e2sim/src/E2APr/e2ap_message_handler.hpp deleted file mode 100644 index 323efa7..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/E2APr/e2ap_message_handler.hpp +++ /dev/null @@ -1,50 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# Copyright (c) 2020 Samsung Electronics Co., Ltd. All Rights Reserved. * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ -#ifndef E2AP_MESSAGE_HANDLER_HPP -#define E2AP_MESSAGE_HANDLER_HPP - - -#include "e2sim_sctp.hpp" - - -extern "C" { - #include "e2sim_defs.h" - #include "e2ap_asn1c_codec.h" -} - -void e2ap_handle_sctp_data(int &socket_fd, sctp_buffer_t &data, bool xmlenc, E2Sim *e2sim); - -void e2ap_handle_X2SetupRequest(E2AP_PDU_t* pdu, int &socket_fd); - -void e2ap_handle_X2SetupResponse(E2AP_PDU_t* pdu, int &socket_fd); - -void e2ap_handle_ENDCX2SetupRequest(E2AP_PDU_t* pdu, int &socket_fd); - -void e2ap_handle_E2SetupRequest(E2AP_PDU_t* pdu, int &socket_fd); - -void e2ap_handle_RICSubscriptionRequest(E2AP_PDU_t* pdu, int &socket_fd); - -void e2ap_handle_RICSubscriptionRequest_securityDemo(E2AP_PDU_t* pdu, int &socket_fd); - -void e2ap_handle_ResourceStatusRequest(E2AP_PDU_t* pdu, int &socket_fd); - -void e2ap_handle_E2SeviceUpdate(E2AP_PDU_t* pdu, int &socket_fd); - -#endif diff --git a/e2sim/previous/e2apv1sim/e2sim/src/SCTP/e2sim_sctp.c b/e2sim/previous/e2apv1sim/e2sim/src/SCTP/e2sim_sctp.c deleted file mode 100644 index b4880f9..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/SCTP/e2sim_sctp.c +++ /dev/null @@ -1,173 +0,0 @@ -/* - * - * Copyright 2019 AT&T Intellectual Property - * Copyright 2019 Nokia - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -#include -#include -#include //for close() -#include -#include -#include -#include -#include //for inet_ntop() -#include - -#include "e2sim_sctp.h" - -const int CLIENT_SEND_COUNT = 1; -const int SERVER_LISTEN_QUEUE_SIZE = 10; - -int sctp_start_server(const char *server_ip_str, const int server_port) -{ - if(server_port < 1 || server_port > 65535) { - fprintf(stderr, "Invalid port number (%d). Valid values are between 1 and 65535.\n", server_port); - return -1; - } - - int server_fd; - if((server_fd = socket(AF_INET, SOCK_STREAM, IPPROTO_SCTP)) == -1) { - perror("socket"); - return -1; - } - - struct sockaddr_in server_addr; - memset(&server_addr, 0, sizeof(struct sockaddr_in)); - server_addr.sin_family = AF_INET; - server_addr.sin_port = htons(server_port); - server_addr.sin_addr.s_addr = inet_addr(server_ip_str); - - if(bind(server_fd, (struct sockaddr*)&server_addr, sizeof(server_addr)) == -1) { - perror("bind"); - return -1; - } - - if(listen(server_fd, SERVER_LISTEN_QUEUE_SIZE) != 0) { - perror("listen"); - return -1; - } - - assert(server_fd != 0); - - fprintf(stderr, "SCTP server started on %s:%d\n", server_ip_str, server_port); - - return server_fd; -} - -int sctp_start_client(const char *server_ip_str, const int server_port) -{ - int client_fd; - - if((client_fd = socket(AF_INET, SOCK_STREAM, IPPROTO_SCTP)) == -1) - { - perror("socket"); - return -1; - } - - struct sockaddr_in peer_addr; - memset(&peer_addr, 0, sizeof(struct sockaddr_in)); - peer_addr.sin_family = AF_INET; - peer_addr.sin_port = htons(server_port); - peer_addr.sin_addr.s_addr = inet_addr(server_ip_str); - // if(inet_pton(AF_INET, server_ip, &(peer_addr.sin_addr)) != 1) { - // printf("Error converting IP address (%s) to sockaddr_in structure\n", server_ip); - // return 0; - // } - - fprintf(stderr, "Connecting to server at %s:%d ...", server_ip_str, server_port); - if(connect(client_fd, (struct sockaddr*)&peer_addr, sizeof(peer_addr)) == -1) { - perror("connect"); - return -1; - } - - assert(client_fd != 0); - - fprintf(stderr, "OK\n"); - - return client_fd; - -} - -//ssize_t sctp_send_to_socket(int sockfd, const void* buf, size_t len) -int sctp_send_to_socket(int sockfd, const void* buf, size_t len) -{ - int sent_len = 0; - - sent_len = send(sockfd, buf, len, 0); - - if(sent_len == -1) - { - perror("sctp_send_to_socket"); - return -1; - } - - return sent_len; -} - -// int sctp_recv_from_socket(int sockfd, void *buf, size_t buf_size) -// { -// //int len = 0; -// -// memset(buf, 0, buf_size); -// -// int len = recv(sockfd, &buf, buf_size, 0); -// if(len == -1) -// { -// perror("sctp_recv_from_socket"); -// return -1; -// } -// -// return len; -// } - - -//test only -void client_send_multiple_test_msg(int client_fd) -{ - char buf[1024]; - int SEND_COUNT = 4; - - for(int i = 0; i < SEND_COUNT; i++) - { - fprintf(stderr, "Sending message %d of %d \n", i+1, SEND_COUNT); - - memset(buf, 0, sizeof(buf)); - snprintf(buf, sizeof(buf)-1, "DATA %d", i+1); - - if(send(client_fd, &buf, strlen(buf), 0) == -1) { - perror("send"); - return; - } - - memset(buf, 0, sizeof(buf)); - - if(recv(client_fd, &buf, sizeof(buf), 0) == -1) { - perror("recv"); - return; - } - - fprintf(stderr, "Server reply: %s\n", buf); - - sleep(1); - } - - fprintf(stderr, "Closing...\n"); - if(close(client_fd) == -1) { - perror("close"); - return; - } -} diff --git a/e2sim/previous/e2apv1sim/e2sim/src/SCTP/e2sim_sctp.cpp b/e2sim/previous/e2apv1sim/e2sim/src/SCTP/e2sim_sctp.cpp deleted file mode 100644 index 55547b4..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/SCTP/e2sim_sctp.cpp +++ /dev/null @@ -1,297 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ -#include -#include -#include //for close() -#include -#include -#include -#include -#include //for inet_ntop() -#include - -#include "e2sim_sctp.hpp" -// #include "e2sim_defs.h" - - -#include -#include -#include -#include -#include -#include -#include -#include - -int sctp_start_server(const char *server_ip_str, const int server_port) -{ - if(server_port < 1 || server_port > 65535) { - LOG_E("Invalid port number (%d). Valid values are between 1 and 65535.\n", server_port); - exit(1); - } - - int server_fd, af; - struct sockaddr* server_addr; - size_t addr_len; - - struct sockaddr_in server4_addr; - memset(&server4_addr, 0, sizeof(struct sockaddr_in)); - - struct sockaddr_in6 server6_addr; - memset(&server6_addr, 0, sizeof(struct sockaddr_in6)); - - if(inet_pton(AF_INET, server_ip_str, &server4_addr.sin_addr) == 1) - { - server4_addr.sin_family = AF_INET; - server4_addr.sin_port = htons(server_port); - - server_addr = (struct sockaddr*)&server4_addr; - af = AF_INET; - addr_len = sizeof(server4_addr); - } - else if(inet_pton(AF_INET6, server_ip_str, &server6_addr.sin6_addr) == 1) - { - server6_addr.sin6_family = AF_INET6; - server6_addr.sin6_port = htons(server_port); - - server_addr = (struct sockaddr*)&server6_addr; - af = AF_INET6; - addr_len = sizeof(server6_addr); - } - else { - perror("inet_pton()"); - exit(1); - } - - if((server_fd = socket(af, SOCK_STREAM, IPPROTO_SCTP)) == -1) { - perror("socket"); - exit(1); - } - - //set send_buffer - // int sendbuff = 10000; - // socklen_t optlen = sizeof(sendbuff); - // if(getsockopt(server_fd, SOL_SOCKET, SO_SNDBUF, &sendbuff, &optlen) == -1) { - // perror("getsockopt send"); - // exit(1); - // } - // else - // LOG_D("[SCTP] send buffer size = %d\n", sendbuff); - - - if(bind(server_fd, server_addr, addr_len) == -1) { - perror("bind"); - exit(1); - } - - if(listen(server_fd, SERVER_LISTEN_QUEUE_SIZE) != 0) { - perror("listen"); - exit(1); - } - - assert(server_fd != 0); - - LOG_I("[SCTP] Server started on %s:%d", server_ip_str, server_port); - - return server_fd; -} - -int sctp_start_client(const char *server_ip_str, const int server_port) -{ - int client_fd, af; - - struct sockaddr* server_addr; - size_t addr_len; - - struct sockaddr_in server4_addr; - memset(&server4_addr, 0, sizeof(struct sockaddr_in)); - - struct sockaddr_in6 server6_addr; - memset(&server6_addr, 0, sizeof(struct sockaddr_in6)); - - if(inet_pton(AF_INET, server_ip_str, &server4_addr.sin_addr) == 1) - { - server4_addr.sin_family = AF_INET; - server4_addr.sin_port = htons(server_port); - server_addr = (struct sockaddr*)&server4_addr; - addr_len = sizeof(server4_addr); - } - else if(inet_pton(AF_INET6, server_ip_str, &server6_addr.sin6_addr) == 1) - { - server6_addr.sin6_family = AF_INET6; - server6_addr.sin6_port = htons(server_port); - server_addr = (struct sockaddr*)&server6_addr; - addr_len = sizeof(server6_addr); - } - else { - perror("inet_pton()"); - exit(1); - } - - if((client_fd = socket(AF_INET6, SOCK_STREAM, IPPROTO_SCTP)) == -1) - { - perror("socket"); - exit(1); - } - - // int sendbuff = 10000; - // socklen_t optlen = sizeof(sendbuff); - // if(getsockopt(client_fd, SOL_SOCKET, SO_SNDBUF, &sendbuff, &optlen) == -1) { - // perror("getsockopt send"); - // exit(1); - // } - // else - // LOG_D("[SCTP] send buffer size = %d\n", sendbuff); - - //-------------------------------- - //Bind before connect - auto optval = 1; - if( setsockopt(client_fd, SOL_SOCKET, SO_REUSEPORT, &optval, sizeof optval) != 0 ){ - perror("setsockopt port"); - exit(1); - } - - if( setsockopt(client_fd, SOL_SOCKET, SO_REUSEADDR, &optval, sizeof optval) != 0 ){ - perror("setsockopt addr"); - exit(1); - } - - struct sockaddr_in6 client6_addr {}; - client6_addr.sin6_family = AF_INET6; - client6_addr.sin6_port = htons(RIC_SCTP_SRC_PORT); - client6_addr.sin6_addr = in6addr_any; - - LOG_I("[SCTP] Binding client socket to source port %d", RIC_SCTP_SRC_PORT); - if(bind(client_fd, (struct sockaddr*)&client6_addr, sizeof(client6_addr)) == -1) { - perror("bind"); - exit(1); - } - // end binding --------------------- - - LOG_I("[SCTP] Connecting to server at %s:%d ...", server_ip_str, server_port); - if(connect(client_fd, server_addr, addr_len) == -1) { - perror("connect"); - exit(1); - } - assert(client_fd != 0); - - LOG_I("[SCTP] Connection established"); - - return client_fd; -} - -int sctp_accept_connection(const char *server_ip_str, const int server_fd) -{ - LOG_I("[SCTP] Waiting for new connection..."); - - struct sockaddr client_addr; - socklen_t client_addr_size; - int client_fd; - - //Blocking call - client_fd = accept(server_fd, &client_addr, &client_addr_size); - fprintf(stderr, "client fd is %d\n", client_fd); - if(client_fd == -1){ - perror("accept()"); - close(client_fd); - exit(1); - } - - //Retrieve client IP_ADDR - char client_ip6_addr[INET6_ADDRSTRLEN], client_ip4_addr[INET_ADDRSTRLEN]; - if(strchr(server_ip_str, ':') != NULL) //IPv6 - { - struct sockaddr_in6* client_ipv6 = (struct sockaddr_in6*)&client_addr; - inet_ntop(AF_INET6, &(client_ipv6->sin6_addr), client_ip6_addr, INET6_ADDRSTRLEN); - LOG_I("[SCTP] New client connected from %s", client_ip6_addr); - } - else { - struct sockaddr_in* client_ipv4 = (struct sockaddr_in*)&client_addr; - inet_ntop(AF_INET, &(client_ipv4->sin_addr), client_ip4_addr, INET_ADDRSTRLEN); - LOG_I("[SCTP] New client connected from %s", client_ip4_addr); - } - - return client_fd; -} - -int sctp_send_data(int &socket_fd, sctp_buffer_t &data) -{ - fprintf(stderr,"in sctp send data func\n"); - fprintf(stderr,"data.len is %d", data.len); - int sent_len = send(socket_fd, (void*)(&(data.buffer[0])), data.len, 0); - fprintf(stderr,"after getting sent_len\n"); - - if(sent_len == -1) { - perror("[SCTP] sctp_send_data"); - exit(1); - } - - return sent_len; -} - -int sctp_send_data_X2AP(int &socket_fd, sctp_buffer_t &data) -{ - int sent_len = sctp_sendmsg(socket_fd, (void*)(&(data.buffer[0])), data.len, - NULL, 0, (uint32_t) X2AP_PPID, 0, 0, 0, 0); - - if(sent_len == -1) { - perror("[SCTP] sctp_send_data"); - exit(1); - } - -} - -/* -Receive data from SCTP socket -Outcome of recv() --1: exit the program -0: close the connection -+: new data -*/ -int sctp_receive_data(int &socket_fd, sctp_buffer_t &data) -{ - //clear out the data before receiving - fprintf(stderr, "receive data1\n"); - memset(data.buffer, 0, sizeof(data.buffer)); - fprintf(stderr, "receive data2\n"); - data.len = 0; - - //receive data from the socket - int recv_len = recv(socket_fd, &(data.buffer), sizeof(data.buffer), 0); - fprintf(stderr, "receive data3\n"); - - if(recv_len == -1) - { - perror("[SCTP] recv"); - exit(1); - } - else if (recv_len == 0) - { - LOG_I("[SCTP] Connection closed by remote peer"); - if(close(socket_fd) == -1) - { - perror("[SCTP] close"); - } - return -1; - } - - data.len = recv_len; - - return recv_len; -} diff --git a/e2sim/previous/e2apv1sim/e2sim/src/SCTP/e2sim_sctp.h b/e2sim/previous/e2apv1sim/e2sim/src/SCTP/e2sim_sctp.h deleted file mode 100644 index c102df0..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/SCTP/e2sim_sctp.h +++ /dev/null @@ -1,39 +0,0 @@ -/* - * - * Copyright 2019 AT&T Intellectual Property - * Copyright 2019 Nokia - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -/*! \file e2sim_sctp.h - */ - -#ifndef E2SIM_SCTP_H -#define E2SIM_SCTP_H - -void *handle_connection(void *thread_data); - -int sctp_start_server(const char *server_ip_str, const int server_port); - -int sctp_start_client(const char *server_ip_str, const int server_port); - -int sctp_send_to_socket(int sockfd, const void *buf, size_t len); - -//int sctp_recv_from_socket(int sockfd, void *buf, size_t buf_size); - -//test only -void client_send_multiple_test_msg(int client_fd); - -#endif diff --git a/e2sim/previous/e2apv1sim/e2sim/src/SCTP/e2sim_sctp.hpp b/e2sim/previous/e2apv1sim/e2sim/src/SCTP/e2sim_sctp.hpp deleted file mode 100644 index b16fcf6..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/SCTP/e2sim_sctp.hpp +++ /dev/null @@ -1,39 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -#ifndef E2SIM_SCTP_HPP -#define E2SIM_SCTP_HPP - -#include "e2sim_defs.h" - -const int SERVER_LISTEN_QUEUE_SIZE = 10; - -int sctp_start_server(const char *server_ip_str, const int server_port); - -int sctp_start_client(const char *server_ip_str, const int server_port); - -int sctp_accept_connection(const char *server_ip_str, const int server_fd); - -int sctp_send_data(int &socket_fd, sctp_buffer_t &data); - -int sctp_send_data_X2AP(int &socket_fd, sctp_buffer_t &data); - -int sctp_receive_data(int &socket_fd, sctp_buffer_t &data); - -#endif diff --git a/e2sim/previous/e2apv1sim/e2sim/src/X2AP/MESSAGES/XML/sample_endc_x2_setup_failure.xml b/e2sim/previous/e2apv1sim/e2sim/src/X2AP/MESSAGES/XML/sample_endc_x2_setup_failure.xml deleted file mode 100644 index f0b6262..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/X2AP/MESSAGES/XML/sample_endc_x2_setup_failure.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - 36 - - - - - - 5 - - - - - - - - - - - - diff --git a/e2sim/previous/e2apv1sim/e2sim/src/X2AP/MESSAGES/XML/sample_endc_x2_setup_request.xml b/e2sim/previous/e2apv1sim/e2sim/src/X2AP/MESSAGES/XML/sample_endc_x2_setup_request.xml deleted file mode 100644 index 5f94d2e..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/X2AP/MESSAGES/XML/sample_endc_x2_setup_request.xml +++ /dev/null @@ -1,67 +0,0 @@ - - - 36 - - - - - - 244 - - - - - - 21 - - - - 61 62 63 - - - 00110101000000000001 - - - - - - - 250 - - - - - - 0 - - 61 62 63 - - 0110010001100101011001100000 - - - 61 62 - - 61 62 63 - - - - 21400 - 3400 - - - - - - - - - - - - - - - - - - diff --git a/e2sim/previous/e2apv1sim/e2sim/src/X2AP/MESSAGES/XML/sample_endc_x2_setup_response.xml b/e2sim/previous/e2apv1sim/e2sim/src/X2AP/MESSAGES/XML/sample_endc_x2_setup_response.xml deleted file mode 100644 index 587b578..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/X2AP/MESSAGES/XML/sample_endc_x2_setup_response.xml +++ /dev/null @@ -1,36 +0,0 @@ - - - 36 - - - - - - 246 - - - - - - 252 - - - - 02 F8 29 - - - 01001010100101010010101010101010 - - - - - - - - - - - - - - diff --git a/e2sim/previous/e2apv1sim/e2sim/src/X2AP/MESSAGES/XML/sample_x2_setup_failure.xml b/e2sim/previous/e2apv1sim/e2sim/src/X2AP/MESSAGES/XML/sample_x2_setup_failure.xml deleted file mode 100644 index 3b82969..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/X2AP/MESSAGES/XML/sample_x2_setup_failure.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - 6 - - - - - - 5 - - - - - - - - - - - - diff --git a/e2sim/previous/e2apv1sim/e2sim/src/X2AP/MESSAGES/XML/sample_x2_setup_request.xml b/e2sim/previous/e2apv1sim/e2sim/src/X2AP/MESSAGES/XML/sample_x2_setup_request.xml deleted file mode 100644 index 3589f28..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/X2AP/MESSAGES/XML/sample_x2_setup_request.xml +++ /dev/null @@ -1,57 +0,0 @@ - - - 6 - - - - - - 21 - - - - 02 F8 39 - - - 00000000111000100000 - - - - - - - 20 - - - - - - 0 - - 02 F8 39 - - 0000000011100010000000000000 - - - 00 01 - - 02 F8 39 - - - - 21400 - 3400 - - - - - - - - - - - - - - diff --git a/e2sim/previous/e2apv1sim/e2sim/src/X2AP/MESSAGES/XML/sample_x2_setup_response.xml b/e2sim/previous/e2apv1sim/e2sim/src/X2AP/MESSAGES/XML/sample_x2_setup_response.xml deleted file mode 100644 index bab51d3..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/X2AP/MESSAGES/XML/sample_x2_setup_response.xml +++ /dev/null @@ -1,69 +0,0 @@ - - - 6 - - - - - - 21 - - - - 02 F8 39 - - - 00000000111000110000 - - - - - - - 20 - - - - - - 0 - - 02 F8 39 - - 0000000011100011000000000000 - - - 00 01 - - 02 F8 39 - - - - 21400 - 3400 - - - - - - - - - - - 24 - - - - - 02 F8 39 - 00 00 - - - - - - - - - diff --git a/e2sim/previous/e2apv1sim/e2sim/src/X2AP/x2ap_asn_codec.c b/e2sim/previous/e2apv1sim/e2sim/src/X2AP/x2ap_asn_codec.c deleted file mode 100644 index 959e7ef..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/X2AP/x2ap_asn_codec.c +++ /dev/null @@ -1,64 +0,0 @@ -/* - * - * Copyright 2019 AT&T Intellectual Property - * Copyright 2019 Nokia - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -#include "x2ap_asn_codec.h" -#include "per_decoder.h" -#include "per_encoder.h" - -/* Encode X2AP PDU ASN1 buffer*/ -int X2AP_ASN_encode(X2AP_PDU_t *pdu, uint8_t **buffer, uint32_t *len) -{ - ssize_t encoded; - - assert(pdu != NULL); - assert(buffer != NULL); - assert(len != NULL); - - encoded = aper_encode_to_new_buffer(&asn_DEF_X2AP_PDU, 0, pdu, (void **)buffer); - - if (encoded < 0) - { - return -1; - } - - *len = encoded; - - ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_X2AP_PDU, pdu); - return encoded; -} - -/* Decode XASN1 buffer to X2AP PDU*/ -int X2AP_ASN_decode(X2AP_PDU_t *pdu, const uint8_t *const buffer, const int len) -{ - asn_dec_rval_t dec_ret; - - assert(buffer != NULL); - - dec_ret = aper_decode(NULL, &asn_DEF_X2AP_PDU, (void **)&pdu, buffer, - len, 0, 0); - - //xer_fprint(stdout, &asn_DEF_X2AP_PDU, pdu); - - if (dec_ret.code != RC_OK) { - fprintf(stderr, "ERROR: Failed to decode pdu\n"); - return -1; - } - - return 0; -} diff --git a/e2sim/previous/e2apv1sim/e2sim/src/X2AP/x2ap_asn_codec.cpp b/e2sim/previous/e2apv1sim/e2sim/src/X2AP/x2ap_asn_codec.cpp deleted file mode 100644 index 7f2e6be..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/X2AP/x2ap_asn_codec.cpp +++ /dev/null @@ -1,59 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -#include "x2ap_asn_codec.hpp" - -void x2ap_encode_pdu(x2ap_pdu_t* pdu, unsigned char* buf, int buf_size, int &encoded_size) -{ - char err_buf[X2AP_ERROR_MESSAGE_BUFFER]; - - encoded_size = x2ap_asn_per_encode(pdu, buf, buf_size, err_buf, sizeof(err_buf)); - - if(encoded_size != -1) - { - LOG_D("[X2AP] ASN Encode successful, encoded_size = %d", encoded_size); - } - else - { - LOG_E("[X2AP] Encode error: %s", err_buf); - exit(1); - } - -} - -void x2ap_decode_pdu(x2ap_pdu_t* pdu, unsigned char* buf, int &encoded_size) -{ - char err_buf[X2AP_ERROR_MESSAGE_BUFFER]; - - int rc = x2ap_asn_per_decode(pdu, buf, encoded_size, err_buf, sizeof(err_buf)); - if(rc == -1) { - LOG_E("[X2AP] Decode error: %s", err_buf); - } else { - LOG_D("[X2AP] ASN decode successful"); - } -} - -void x2ap_print_pdu(x2ap_pdu_t* pdu) -{ - char pdu_str[X2AP_PDU_PRINT_BUFFER]; - - x2ap_asn_print(pdu, pdu_str, sizeof(pdu_str)); - - LOG_D("[X2AP] %s", pdu_str); -} diff --git a/e2sim/previous/e2apv1sim/e2sim/src/X2AP/x2ap_asn_codec.h b/e2sim/previous/e2apv1sim/e2sim/src/X2AP/x2ap_asn_codec.h deleted file mode 100644 index bad3ae7..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/X2AP/x2ap_asn_codec.h +++ /dev/null @@ -1,30 +0,0 @@ -/* - * - * Copyright 2019 AT&T Intellectual Property - * Copyright 2019 Nokia - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -#ifndef X2AP_ASN_CODEC_H_ -#define X2AP_ASN_CODEC_H_ - -#include "X2AP-PDU.h" - -int X2AP_ASN_encode(X2AP_PDU_t *pdu, uint8_t **buffer, uint32_t *len) -__attribute__ ((warn_unused_result)); - -int X2AP_ASN_decode(X2AP_PDU_t *pdu, const uint8_t *const buffer, const int len); - -#endif diff --git a/e2sim/previous/e2apv1sim/e2sim/src/X2AP/x2ap_asn_codec.hpp b/e2sim/previous/e2apv1sim/e2sim/src/X2AP/x2ap_asn_codec.hpp deleted file mode 100644 index a07f441..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/X2AP/x2ap_asn_codec.hpp +++ /dev/null @@ -1,34 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ -#ifndef X2AP_ASN_CODEC_HPP -#define X2AP_ASN_CODEC_HPP - -#include "e2sim_defs.h" -#include "asn_x2ap.hpp" - -#define X2AP_ERROR_MESSAGE_BUFFER 1024 -#define X2AP_PDU_PRINT_BUFFER 4096 - -void x2ap_encode_pdu(x2ap_pdu_t* pdu, unsigned char* buf, int buf_size, int &encoded_size); - -void x2ap_decode_pdu(x2ap_pdu_t* pdu, unsigned char* buf, int &encoded_size); - -void x2ap_print_pdu(x2ap_pdu_t* pdu); - -#endif diff --git a/e2sim/previous/e2apv1sim/e2sim/src/X2AP/x2ap_generate_messages.c b/e2sim/previous/e2apv1sim/e2sim/src/X2AP/x2ap_generate_messages.c deleted file mode 100644 index db12a3e..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/X2AP/x2ap_generate_messages.c +++ /dev/null @@ -1,113 +0,0 @@ -/* - * - * Copyright 2019 AT&T Intellectual Property - * Copyright 2019 Nokia - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -#include -#include -#include -#include -#include -#include "x2ap_generate_messages.h" -#include "x2ap_asn_codec.h" -#include "e2sim_defs.h" - -int asn1_xer_print = 0; -int MAX_XML_BUFFER = 10000; - -void x2ap_fetch_pdu_from_XML(X2AP_PDU_t **pdu, char *filename) -{ - - uint8_t buf[MAX_XML_BUFFER]; - - asn_dec_rval_t rval; - size_t size; - FILE *f; - - char XML_path[200]; - char *work_dir = getenv(WORKDIR_ENV); - - strcpy(XML_path, work_dir); - strcat(XML_path, "/src/X2AP/MESSAGES/XML/"); - strcat(XML_path, filename); - - //printf("Generate X2AP PDU from XML file: %s\n", XML_path); - - f = fopen(XML_path, "r"); - assert(f); - size = fread(buf, 1, sizeof(buf), f); - if(size == 0 || size == sizeof(buf)) - { - fprintf(stderr, "%s: Too large input\n", XML_path); - exit(1); - } - - fclose(f); - - //printf("Decode the XER buffer\n"); - rval = xer_decode(NULL, &asn_DEF_X2AP_PDU, (void **)pdu, buf, size); - assert(rval.code == RC_OK); - -} - -uint32_t x2ap_generate_x2_setup_request(uint8_t **buffer) -{ - X2AP_PDU_t *pdu; - pdu = (X2AP_PDU_t *)calloc(1, sizeof(X2AP_PDU_t)); - - uint32_t len; - - char *XML_file = "sample_x2_setup_request.xml"; - - x2ap_fetch_pdu_from_XML(&pdu, XML_file); - - if(asn1_xer_print) - xer_fprint(stdout, &asn_DEF_X2AP_PDU, (void *)pdu); - - if(X2AP_ASN_encode(pdu, buffer, &len) < 0) - { - fprintf(stderr, "Failed to APER encode X2 Setup Request\n"); - return -1; - } - - return len; - -} - -uint32_t x2ap_generate_x2_setup_response(uint8_t **buffer) -{ - X2AP_PDU_t *pdu; - pdu = (X2AP_PDU_t *)calloc(1, sizeof(X2AP_PDU_t)); - - uint32_t len; - - char *XML_file = "sample_x2_setup_response.xml"; - - x2ap_fetch_pdu_from_XML(&pdu, XML_file); - - if(asn1_xer_print) - xer_fprint(stdout, &asn_DEF_X2AP_PDU, (void *)pdu); - - if(X2AP_ASN_encode(pdu, buffer, &len) < 0) - { - fprintf(stderr, "Failed to APER encode X2 Setup Request\n"); - return -1; - } - - return len; - -} diff --git a/e2sim/previous/e2apv1sim/e2sim/src/X2AP/x2ap_generate_messages.h b/e2sim/previous/e2apv1sim/e2sim/src/X2AP/x2ap_generate_messages.h deleted file mode 100644 index 53998b7..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/X2AP/x2ap_generate_messages.h +++ /dev/null @@ -1,31 +0,0 @@ -/* - * - * Copyright 2019 AT&T Intellectual Property - * Copyright 2019 Nokia - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -#ifndef X2AP_ENB_GENERATE_MESSAGES_H_ -#define X2AP_ENB_GENERATE_MESSAGES_H_ - -#include "X2AP-PDU.h" - -void x2ap_fetch_pdu_from_XML(X2AP_PDU_t **pdu, char *filename); - -uint32_t x2ap_generate_x2_setup_request(uint8_t **buffer); - -uint32_t x2ap_generate_x2_setup_response(uint8_t **buffer); - -#endif diff --git a/e2sim/previous/e2apv1sim/e2sim/src/X2AP/x2ap_message_handler.c b/e2sim/previous/e2apv1sim/e2sim/src/X2AP/x2ap_message_handler.c deleted file mode 100644 index 4fa635e..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/X2AP/x2ap_message_handler.c +++ /dev/null @@ -1,139 +0,0 @@ -/* - * - * Copyright 2019 AT&T Intellectual Property - * Copyright 2019 Nokia - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -#include -#include -#include - -#include "x2ap_message_handler.h" - -typedef int (*x2ap_message_decoded_handler)(X2AP_PDU_t *pdu, sctp_data_t *response); - -static int handle_x2_setup_request(X2AP_PDU_t *pdu, sctp_data_t *response); - -static int handle_x2_setup_response(X2AP_PDU_t *pdu, sctp_data_t *response); - -static int handle_x2_setup_failure(X2AP_PDU_t *pdu, sctp_data_t *response); - -/* Handlers matrix. Only eNB related procedure present here -/* rowID = procedureCode (start with 0) -*/ -x2ap_message_decoded_handler x2ap_messages_handler[][3] = { - { 0, 0, 0 }, /* handoverPreparation */ - { 0, 0, 0 }, /* handoverCancel */ - { 0, 0, 0 }, /* loadIndication */ - { 0, 0, 0 }, /* errorIndication */ - { 0, 0, 0 }, /* snStatusTransfer */ - { 0, 0, 0 }, /* uEContextRelease */ - { handle_x2_setup_request, handle_x2_setup_response, handle_x2_setup_failure }, /* x2Setup */ - { 0, 0, 0 }, /* reset */ - { 0, 0, 0 }, /* eNBConfigurationUpdate */ - { 0, 0, 0 }, /* resourceStatusReportingInitiation */ - { 0, 0, 0 }, /* resourceStatusReporting */ - { 0, 0, 0 }, /* privateMessage */ - { 0, 0, 0 }, /* mobilitySettingsChange */ - { 0, 0, 0 }, /* rLFIndication */ - { 0, 0, 0 }, /* handoverReport */ - { 0, 0, 0 }, /* cellActivation */ - { 0, 0, 0 }, /* x2Release */ - { 0, 0, 0 }, /* x2APMessageTransfer */ - { 0, 0, 0 }, /* x2Removal */ - { 0, 0, 0 }, /* seNBAdditionPreparation */ - { 0, 0, 0 }, /* seNBReconfigurationCompletion */ - { 0, 0, 0 }, /* meNBinitiatedSeNBModificationPreparation */ - { 0, 0, 0 }, /* seNBinitiatedSeNBModification */ - { 0, 0, 0 }, /* meNBinitiatedSeNBRelease */ - { 0, 0, 0 }, /* seNBinitiatedSeNBRelease */ - { 0, 0, 0 }, /* seNBCounterCheck */ - { 0, 0, 0 } /* retrieveUEContext */ -}; - -char *x2ap_direction2String(int x2ap_dir) -{ - static char *x2ap_direction_String[] = { - "", /* Nothing */ - "Originating message", /* originating message */ - "Successfull outcome", /* successfull outcome */ - "UnSuccessfull outcome", /* successfull outcome */ - }; - return(x2ap_direction_String[x2ap_dir]); -} - -int x2ap_eNB_handle_message(const uint8_t *const data, const int data_len, sctp_data_t* response) -{ - X2AP_PDU_t pdu; - int ret; - - memset(&pdu, 0, sizeof(pdu)); - - //printf("Decode the PDU \n"); - - if (X2AP_ASN_decode(&pdu, data, data_len) < 0){ - return -1; - } - - /* Checking procedure Code and direction of message */ - if (pdu.choice.initiatingMessage.procedureCode > sizeof(x2ap_messages_handler) - / (3 * sizeof(x2ap_message_decoded_handler)) - || (pdu.present > X2AP_PDU_PR_unsuccessfulOutcome)) { - - fprintf(stderr, "Either procedureCode %ld or direction %d exceed expected\n", - pdu.choice.initiatingMessage.procedureCode, pdu.present); - ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_X2AP_PDU, &pdu); - return -1; - } - - if (x2ap_messages_handler[pdu.choice.initiatingMessage.procedureCode][pdu.present - 1] == NULL) - { - fprintf(stderr, "No handler for procedureCode %ld in direction %s\n", - pdu.choice.initiatingMessage.procedureCode, - x2ap_direction2String(pdu.present - 1)); - ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_X2AP_PDU, &pdu); - return -1; - } - - /*calling the appropriate handler */ - ret = (*x2ap_messages_handler[pdu.choice.initiatingMessage.procedureCode][pdu.present - 1])(&pdu, response); - ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_X2AP_PDU, &pdu); - return ret; -} - -int handle_x2_setup_request(X2AP_PDU_t *pdu, sctp_data_t* response) -{ - fprintf(stderr, "Received X2 SETUP REQUEST\n"); - - /* Todo: when to generate X2 Setup Failure??? - */ - - response->len = x2ap_generate_x2_setup_response(&response->data); - - return 0; -} - -int handle_x2_setup_response(X2AP_PDU_t *pdu, sctp_data_t* response) -{ - fprintf(stderr, "Received X2 SETUP RESPONSE\n"); - return 0; -} - -int handle_x2_setup_failure(X2AP_PDU_t *pdu, sctp_data_t* response) -{ - fprintf(stderr, "Received X2 SETUP FAILURE\n"); - return 0; -} diff --git a/e2sim/previous/e2apv1sim/e2sim/src/X2AP/x2ap_message_handler.cpp b/e2sim/previous/e2apv1sim/e2sim/src/X2AP/x2ap_message_handler.cpp deleted file mode 100644 index f818304..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/X2AP/x2ap_message_handler.cpp +++ /dev/null @@ -1,128 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ -#include "x2ap_message_handler.hpp" - - -void x2ap_handle_sctp_data(int &socket_fd, sctp_buffer_t &data) -{ - //decode the data into X2AP-PDU - x2ap_pdu_t* pdu = new_x2ap_pdu(); - - x2ap_decode_pdu(pdu, data.buffer, data.len); - - x2ap_print_pdu(pdu); - - int index = x2ap_get_index(pdu); - int procedureCode = x2ap_get_procedureCode(pdu); - - switch(procedureCode) - { - case 6: //X2Setup - switch(index) - { - case 1: //initiatingMessage - LOG_D("[X2AP] Received X2 SETUP REQUEST"); - x2ap_handle_X2SetupRequest(pdu, socket_fd); - break; - - case 2: //successfulOutcome - LOG_D("[X2AP] Received X2 SETUP RESPONSE"); - //x2ap_handle_X2SetupResponse(pdu, socket_fd); - break; - - case 3: - LOG_D("[X2AP] Received X2 SETUP FAILURE"); - break; - - default: - LOG_E("[X2AP] Invalid message index=%d in X2AP-PDU", index); - break; - } - break; - - case 36: //ENDCX2Setup - switch(index) - { - case 1: //initiatingMessage - LOG_D("[X2AP] Received ENDC X2 SETUP REQUEST"); - x2ap_handle_ENDCX2SetupRequest(pdu, socket_fd); - break; - - case 2: //successfulOutcome - LOG_D("[X2AP] Received ENDC X2 SETUP RESPONSE"); - //x2ap_handle_X2SetupResponse(pdu, socket_fd); - break; - - case 3: - LOG_D("[X2AP] Received ENDC X2 SETUP FAILURE"); - break; - - default: - LOG_E("[X2AP] Invalid message index=%d in X2AP-PDU", index); - break; - } - break; - - default: - LOG_E("[X2AP] No available handler for procedureCode=%d", procedureCode); - break; - } -} - -void x2ap_handle_X2SetupRequest(x2ap_pdu_t* pdu, int &socket_fd) -{ - /* - Simply send back X2SetupResponse - Todo: add more handling options (failure, duplicated request, etc.) - */ - - x2ap_pdu_t* res_pdu = new_x2ap_pdu(); - eNB_config cfg; - - x2ap_create_X2SetupResponse(res_pdu, cfg); - LOG_D("[X2AP] Created X2 SETUP RESPONSE") - - x2ap_print_pdu(res_pdu); - - //encode response pdu into buffer - sctp_buffer_t res_data; - x2ap_encode_pdu(res_pdu, res_data.buffer, sizeof(res_data.buffer), res_data.len); - - //send response data over sctp - if(sctp_send_data(socket_fd, res_data) > 0) { - LOG_D("[SCTP] Sent X2 SETUP RESPONSE"); - } else { - LOG_D("[SCTP] Unable to send X2 SETUP RESPONSE to peer"); - } -} - -void x2ap_handle_X2SetupResponse(x2ap_pdu_t* pdu, int &socket_fd) -{ - ; -} - - -void x2ap_handle_ENDCX2SetupRequest(x2ap_pdu_t* pdu, int &socket_fd) -{ - /* - Simply send back ENDCX2SetupResponse - Todo: add more handling options (failure, duplicated request, etc.) - */ - ; -} diff --git a/e2sim/previous/e2apv1sim/e2sim/src/X2AP/x2ap_message_handler.h b/e2sim/previous/e2apv1sim/e2sim/src/X2AP/x2ap_message_handler.h deleted file mode 100644 index 9c9d6ff..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/X2AP/x2ap_message_handler.h +++ /dev/null @@ -1,30 +0,0 @@ -/* - * - * Copyright 2019 AT&T Intellectual Property - * Copyright 2019 Nokia - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -#ifndef X2AP_ENB_HANDLER_H_ -#define X2AP_ENB_HANDLER_H_ - -#include "x2ap_asn_codec.h" -#include "X2AP-PDU.h" -#include "e2sim_defs.h" -#include "x2ap_generate_messages.h" - -int x2ap_eNB_handle_message(const uint8_t *const data, const int data_len, sctp_data_t* response); - -#endif diff --git a/e2sim/previous/e2apv1sim/e2sim/src/X2AP/x2ap_message_handler.hpp b/e2sim/previous/e2apv1sim/e2sim/src/X2AP/x2ap_message_handler.hpp deleted file mode 100644 index b3146c7..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/src/X2AP/x2ap_message_handler.hpp +++ /dev/null @@ -1,35 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ -#ifndef X2AP_MESSAGE_HANDLER_HPP -#define X2AP_MESSAGE_HANDLER_HPP - -#include "e2sim_defs.h" -#include "e2sim_sctp.hpp" -#include "asn_x2ap.hpp" -#include "x2ap_asn_codec.hpp" - -void x2ap_handle_sctp_data(int &socket_fd, sctp_buffer_t &data); - -void x2ap_handle_X2SetupRequest(x2ap_pdu_t* pdu, int &socket_fd); - -void x2ap_handle_X2SetupResponse(x2ap_pdu_t* pdu, int &socket_fd); - -void x2ap_handle_ENDCX2SetupRequest(x2ap_pdu_t* pdu, int &socket_fd); - -#endif diff --git a/e2sim/previous/e2apv1sim/e2sim/test/Misc/CMakeLists.txt b/e2sim/previous/e2apv1sim/e2sim/test/Misc/CMakeLists.txt deleted file mode 100644 index bf6c51c..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/test/Misc/CMakeLists.txt +++ /dev/null @@ -1,86 +0,0 @@ -#/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -#******************************************************************************/ - -cmake_minimum_required(VERSION 3.5.1) -set(CMAKE_CXX_COMPILER "/usr/bin/g++") -set(CMAKE_CXX_STANDARD 14) - -add_definitions("-D ASN_DISABLE_OER_SUPPORT") - -project(e2sim) - -set (HOME_DIR $ENV{HOME}) -#set (E2SIM_ROOT ../../../) - -include_directories("src") -include_directories("src/SCTP/") -include_directories("src/E2AP") -include_directories("src/E2AP/E2SM") -include_directories("ASN1c") - -find_library( SCTP_LIBRARY sctp ) #needed for sctp_sendmsg - -#---------------------------------------------- -file(GLOB E2AGENT_SOURCES - "src/e2agent.cpp" - "src/e2sim_defs.cpp" - "src/SCTP/*.cpp" - "src/E2AP/*.c" - "src/E2AP/*.cpp" - "ASN1c/*.c" - ) -add_executable(e2agent ${E2AGENT_SOURCES}) -target_link_libraries( e2agent ${SCTP_LIBRARY} ) - -#---------------------------------------------- -file(GLOB RICSIM_SOURCES - "src/ric_sim.cpp" - "src/e2sim_defs.cpp" - "src/SCTP/*.cpp" - "src/E2AP/*.c" - "src/E2AP/*.cpp" - "ASN1c/*.c" - ) -add_executable(ric_sim ${RICSIM_SOURCES}) -target_link_libraries( ric_sim ${SCTP_LIBRARY} ) - - -#---------------------------------------------- -file(GLOB X2TERM_SOURCES - "src/x2term.cpp" - "src/e2sim_defs.cpp" - "src/SCTP/*.cpp" - "src/E2AP/*.c" - "src/E2AP/*.cpp" - "ASN1c/*.c" - ) -add_executable(x2term ${X2TERM_SOURCES}) -target_link_libraries( x2term ${SCTP_LIBRARY} ) - - -#----------------------------------------------- -file(GLOB TEST - "src/test_asn1c.cpp" - "src/e2sim_defs.cpp" -# "src/SCTP/*.cpp" - "ASN1c/*.c" - "src/E2AP/*.c" - "src/E2AP/E2SM/*.c" - ) -add_executable(test_asn1c ${TEST}) diff --git a/e2sim/previous/e2apv1sim/e2sim/test/Misc/test_asn1c.cpp b/e2sim/previous/e2apv1sim/e2sim/test/Misc/test_asn1c.cpp deleted file mode 100644 index 690f767..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/test/Misc/test_asn1c.cpp +++ /dev/null @@ -1,79 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -#include -#include -#include -#include -#include - -extern "C" { - #include "e2sim_defs.h" - #include "E2AP-PDU.h" - #include "e2ap_asn1c_codec.h" - #include "e2sm.h" - -} - -using namespace std; - -int main(int argc, char* argv[]){ - - LOG_I("Test ASN1c"); - - test_eventTriggerDefinition(); - return 0; - - E2AP_PDU_t* pdu = e2ap_xml_to_pdu("E2AP_X2SetupRequest.xml"); - // E2AP_PDU_t* pdu = e2ap_xml_to_pdu("E2AP_X2SetupResponse.xml"); - // E2AP_PDU_t* pdu = e2ap_xml_to_pdu("E2AP_X2SetupFailure.xml"); - - // E2AP_PDU_t* pdu = e2ap_xml_to_pdu("E2AP_ENDCX2SetupRequest.xml"); - // E2AP_PDU_t* pdu = e2ap_xml_to_pdu("E2AP_ENDCX2SetupResponse.xml"); - // E2AP_PDU_t* pdu = e2ap_xml_to_pdu("E2AP_ENDCX2SetupFailure.xml"); - - // E2AP_PDU_t* pdu = e2ap_xml_to_pdu("E2AP_RICsubscriptionRequest.xml"); - // E2AP_PDU_t* pdu = e2ap_xml_to_pdu("E2AP_RICsubscriptionResponse.xml"); - // E2AP_PDU_t* pdu = e2ap_xml_to_pdu("E2AP_ErrorIndication.xml"); - - e2ap_asn1c_print_pdu(pdu); - - /* Test encoding */ - uint8_t *buf; - sctp_buffer_t data; - - data.len = e2ap_asn1c_encode_pdu(pdu, &buf); - memcpy(data.buffer, buf, min(data.len, MAX_SCTP_BUFFER)); - - /* Test decoding */ - E2AP_PDU_t* pdu1 = new E2AP_PDU_t(); - - e2ap_asn1c_decode_pdu(pdu1, data.buffer, data.len); - - e2ap_asn1c_print_pdu(pdu1); - - int index = (int)pdu1->present; - - int pCode = e2ap_asn1c_get_procedureCode(pdu1); - - LOG_I("Index = %d, procedureCode = %d", index, pCode); - - - return 0; -} diff --git a/e2sim/previous/e2apv1sim/e2sim/test/Pendulum/Pendulum_asn_codec.c b/e2sim/previous/e2apv1sim/e2sim/test/Pendulum/Pendulum_asn_codec.c deleted file mode 100644 index 9b44adf..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/test/Pendulum/Pendulum_asn_codec.c +++ /dev/null @@ -1,180 +0,0 @@ -/* - * - * Copyright 2019 AT&T Intellectual Property - * Copyright 2019 Nokia - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -#include "Pendulum_asn_codec.h" -#include "per_decoder.h" -#include "per_encoder.h" - -#include "OCTET_STRING.h" - -static int ASN_DEBUG = 0; - -int pendulum_asn_encode(Pendulum_t *pend, uint8_t **buffer, uint32_t *len) -{ - ssize_t encoded; - assert(pend != NULL); - assert(buffer != NULL); - - encoded = aper_encode_to_new_buffer(&asn_DEF_Pendulum, 0, pend, (void **)buffer); - if(encoded < 0){ - perror("Failed to aper encode\n"); - exit(1); - } - - *len = encoded; - //ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_Pendulum, pend); - return encoded; -} - -int pendulum_asn_decode(Pendulum_t *pend, const uint8_t *const buffer, const int len) -{ - asn_dec_rval_t dec_ret; - - // THIS IS IMPORTANT, otherwise: Segmentation fault - memset(pend, 0, sizeof(*pend)); - - assert(buffer != NULL); - - dec_ret = aper_decode(NULL, &asn_DEF_Pendulum, (void **)&pend, buffer, len, 0, 0); - if (dec_ret.code != RC_OK) { - fprintf(stderr, "ERROR: Failed to decode asn1 message\n"); - return -1; - } - - if(ASN_DEBUG) - xer_fprint(stdout, &asn_DEF_Pendulum, pend); - - return 0; -} - -int pendulum_create_asn_msg(uint8_t **buffer, long sequence, - double angle, double torque, const char* msg) -{ - //Create Pendulum payload struct - Pendulum_t *pend; - - pend = calloc(1, sizeof(Pendulum_t)); - if(!pend){ - perror("calloc() failed"); - exit(1); - } - - //convert char* to PrintableString_t* - PrintableString_t *payload = calloc(1, sizeof(PrintableString_t)); - payload->buf = (uint8_t *)msg; - payload->size = strlen(msg); - - pend->strval = payload; - pend->sequence = &sequence; - pend->angle = ∠ - pend->torque = &torque; - - if (ASN_DEBUG) - xer_fprint(stdout, &asn_DEF_Pendulum, pend); - - //Encode Pendulum payload struct to asn1 buffer - uint32_t len; - if(pendulum_asn_encode(pend, buffer, &len) < 0) - { - return -1; - } - //fprintf(stderr, "len = %d\n", len); - - return len; -} - -long pendulum_get_sequence(const uint8_t *const buffer, const int len) -{ - Pendulum_t pend; - pendulum_asn_decode(&pend, buffer, len); - - return *(pend.sequence); -} - -double pendulum_get_angle(const uint8_t *const buffer, const int len) -{ - Pendulum_t pend; - pendulum_asn_decode(&pend, buffer, len); - - return *(pend.angle); -} - -double pendulum_get_torque(const uint8_t *const buffer, const int len) -{ - Pendulum_t pend; - pendulum_asn_decode(&pend, buffer, len); - - return *(pend.torque); -} - -char* pendulum_get_strval(const uint8_t *const buffer, const int len) -{ - Pendulum_t pend; - char* str; - - pendulum_asn_decode(&pend, buffer, len); - - str = (char*)pend.strval->buf; - - return str; -} - -void test_pendulum_msg(void) -{ - uint8_t *buffer = NULL; - uint32_t len = 0; - double angle = 1.9; - len = pendulum_create_asn_msg(&buffer, 0, angle, 0, NULL); - - double ex_angle = pendulum_get_angle(buffer, len); - fprintf(stderr, "Extracted angle = %f\n", ex_angle); -} - -void test_pendulum_asn1(void) -{ - fprintf(stderr, "test_pendulum_asn1\n"); - - Pendulum_t *pend; - - long sequence = 0; /* OPTIONAL */ - double angle = 1.5; /* OPTIONAL */ - //double torque = 0.7; /* OPTIONAL */ - - pend = calloc(1, sizeof(Pendulum_t)); - if(!pend){ - perror("calloc() failed"); - exit(1); - } - - pend->sequence = &sequence; - pend->angle = ∠ - //pend->torque = &torque; - - xer_fprint(stdout, &asn_DEF_Pendulum, pend); - - //encode - uint8_t *buffer = NULL; - uint32_t len; - pendulum_asn_encode(pend, &buffer, &len); - fprintf(stderr, "len = %d\n", len); - - //decode - Pendulum_t dec_pend; - pendulum_asn_decode(&dec_pend, buffer, len); -} diff --git a/e2sim/previous/e2apv1sim/e2sim/test/Pendulum/Pendulum_asn_codec.h b/e2sim/previous/e2apv1sim/e2sim/test/Pendulum/Pendulum_asn_codec.h deleted file mode 100644 index 3928caf..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/test/Pendulum/Pendulum_asn_codec.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * - * Copyright 2019 AT&T Intellectual Property - * Copyright 2019 Nokia - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -#ifndef PENDULUM_ASN_CODEC_H_ -#define PENDULUM_ASN_CODEC_H_ - -#include "Pendulum.h" - -int pendulum_asn_encode(Pendulum_t *pend, uint8_t **buffer, uint32_t *len); - -int pendulum_asn_decode(Pendulum_t *pend, const uint8_t *const buffer, const int len); - -int pendulum_create_asn_msg(uint8_t **buffer, long sequence, - double angle, double torque, const char* msg); - -long pendulum_get_sequence(const uint8_t *const buffer, const int len); - -double pendulum_get_angle(const uint8_t *const buffer, const int len); - -double pendulum_get_torque(const uint8_t *const buffer, const int len); - -char* pendulum_get_strval(const uint8_t *const buffer, const int len); - -//For testing only - -void test_pendulum_msg(void); - -void test_pendulum_asn1(void); - -#endif diff --git a/e2sim/previous/e2apv1sim/e2sim/test/Pendulum/Serial/adruino_serial.c b/e2sim/previous/e2apv1sim/e2sim/test/Pendulum/Serial/adruino_serial.c deleted file mode 100644 index e67465c..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/test/Pendulum/Serial/adruino_serial.c +++ /dev/null @@ -1,98 +0,0 @@ -/* - * - * Copyright 2019 AT&T Intellectual Property - * Copyright 2019 Nokia - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -#include "stdio.h" -#include -#include - -#include "adruino_serial.h" - -int start_serial_inferface(int baudrate, char *serial_port) -{ - int fd = -1; - - fd = serialport_init(serial_port, baudrate); - if(fd == -1) { - fprintf(stderr, "couldn't open serial port %s\n", serial_port); - return -1; - } else { - fprintf(stderr, "Openning serial port: %s ...\n", serial_port); - } - - serialport_flush(fd); // take 2 seconds - fprintf(stderr, "Serial port ready!\n"); - - return fd; - -} - -int serial_readline(int fd, char* buf, int buf_max) -{ - if( fd == -1 ){ - perror("serial port not opened"); - return -1; - } - - memset(buf, 0, buf_max); - - do { - serialport_read_until(fd, buf, SERIAL_EOL_CHAR, buf_max, SERIAL_TIMEOUT); - } while( buf[0] == '\n' ); - - // serialport_read_until(fd, buf, SERIAL_EOL_CHAR, buf_max, SERIAL_TIMEOUT); - - return 0; -} - -int serial_writeline(int fd, char* buf) -{ - if(buf[strlen(buf)-1] != SERIAL_EOL_CHAR){ - //append EOL to buf - int len = strlen(buf); - buf[len] = SERIAL_EOL_CHAR; - buf[len+1] = '\0'; - } - - serialport_write(fd, buf); - - return 0; -} - -//For testing only -void test_adruino_serial(void) -{ - int fd; - char buf[MAX_SERIAL_BUFFER]; - - fd = start_serial_inferface(DEFAULT_BAUDRATE, DEFAULT_SERIAL_PORT); - - while(1){ - fprintf(stderr, "[E2 Agent]: "); - fgets(buf, MAX_SERIAL_BUFFER, stdin); - - // serialport_write(fd, "hello\n"); - //serialport_write(fd, buf); - serial_writeline(fd, buf); - - serial_readline(fd, buf, MAX_SERIAL_BUFFER); - fprintf(stderr, "[Adruino] %s", buf); - } - - return; -} diff --git a/e2sim/previous/e2apv1sim/e2sim/test/Pendulum/Serial/adruino_serial.h b/e2sim/previous/e2apv1sim/e2sim/test/Pendulum/Serial/adruino_serial.h deleted file mode 100644 index c061f8a..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/test/Pendulum/Serial/adruino_serial.h +++ /dev/null @@ -1,40 +0,0 @@ -/* - * - * Copyright 2019 AT&T Intellectual Property - * Copyright 2019 Nokia - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -#ifndef ADRUINO_SERIAL_H -#define ADRUINO_SERIAL_H - -#include "arduino-serial-lib.h" - -#define MAX_SERIAL_BUFFER 256 -#define DEFAULT_SERIAL_PORT "/dev/ttyACM0" -#define DEFAULT_BAUDRATE 115200 -#define SERIAL_EOL_CHAR '\n' -#define SERIAL_TIMEOUT 5000 //ms - -int start_serial_inferface(int baudrate, char *serial_port); - -int serial_readline(int fd, char* buf, int buf_max); - -int serial_writeline(int fd, char* buf); - -//For testing only -void test_adruino_serial(void); - -#endif diff --git a/e2sim/previous/e2apv1sim/e2sim/test/Pendulum/Serial/arduino-serial-lib.c b/e2sim/previous/e2apv1sim/e2sim/test/Pendulum/Serial/arduino-serial-lib.c deleted file mode 100644 index 73cac84..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/test/Pendulum/Serial/arduino-serial-lib.c +++ /dev/null @@ -1,170 +0,0 @@ -/* - * - * Copyright 2019 AT&T Intellectual Property - * Copyright 2019 Nokia - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -// -// arduino-serial-lib -- simple library for reading/writing serial ports -// -// 2006-2013, Tod E. Kurt, http://todbot.com/blog/ -// - -#include "arduino-serial-lib.h" - -#include // Standard input/output definitions -#include // UNIX standard function definitions -#include // File control definitions -#include // Error number definitions -#include // POSIX terminal control definitions -#include // String function definitions -#include - -// uncomment this to debug reads -//#define SERIALPORTDEBUG - -// takes the string name of the serial port (e.g. "/dev/tty.usbserial","COM1") -// and a baud rate (bps) and connects to that port at that speed and 8N1. -// opens the port in fully raw mode so you can send binary data. -// returns valid fd, or -1 on error -int serialport_init(const char* serialport, int baud) -{ - struct termios toptions; - int fd; - - //fd = open(serialport, O_RDWR | O_NOCTTY | O_NDELAY); - fd = open(serialport, O_RDWR | O_NONBLOCK ); - - if (fd == -1) { - perror("serialport_init: Unable to open port s"); - return -1; - } - - //int iflags = TIOCM_DTR; - //ioctl(fd, TIOCMBIS, &iflags); // turn on DTR - //ioctl(fd, TIOCMBIC, &iflags); // turn off DTR - - if (tcgetattr(fd, &toptions) < 0) { - perror("serialport_init: Couldn't get term attributes"); - return -1; - } - speed_t brate = baud; // let you override switch below if needed - switch(baud) - { - case 4800: brate=B4800; break; - case 9600: brate=B9600; break; - #ifdef B14400 - case 14400: brate=B14400; break; - #endif - case 19200: brate=B19200; break; - #ifdef B28800 - case 28800: brate=B28800; break; - #endif - case 38400: brate=B38400; break; - case 57600: brate=B57600; break; - case 115200: brate=B115200; break; - } - cfsetispeed(&toptions, brate); - cfsetospeed(&toptions, brate); - - // 8N1 - toptions.c_cflag &= ~PARENB; - toptions.c_cflag &= ~CSTOPB; - toptions.c_cflag &= ~CSIZE; - toptions.c_cflag |= CS8; - // no flow control - toptions.c_cflag &= ~CRTSCTS; - - //toptions.c_cflag &= ~HUPCL; // disable hang-up-on-close to avoid reset - - toptions.c_cflag |= CREAD | CLOCAL; // turn on READ & ignore ctrl lines - toptions.c_iflag &= ~(IXON | IXOFF | IXANY); // turn off s/w flow ctrl - - toptions.c_lflag &= ~(ICANON | ECHO | ECHOE | ISIG); // make raw - toptions.c_oflag &= ~OPOST; // make raw - - // see: http://unixwiz.net/techtips/termios-vmin-vtime.html - toptions.c_cc[VMIN] = 0; - toptions.c_cc[VTIME] = 0; - //toptions.c_cc[VTIME] = 20; - - tcsetattr(fd, TCSANOW, &toptions); - if( tcsetattr(fd, TCSAFLUSH, &toptions) < 0) { - perror("init_serialport: Couldn't set term attributes"); - return -1; - } - - return fd; -} - -// -int serialport_close( int fd ) -{ - return close( fd ); -} - -// -int serialport_writebyte( int fd, uint8_t b) -{ - int n = write(fd,&b,1); - if( n!=1) - return -1; - return 0; -} - -// -int serialport_write(int fd, const char* str) -{ - int len = strlen(str); - int n = write(fd, str, len); - if( n!=len ) { - perror("serialport_write: couldn't write whole string\n"); - return -1; - } - return 0; -} - -// -int serialport_read_until(int fd, char* buf, char until, int buf_max, int timeout) -{ - char b[1]; // read expects an array, so we give it a 1-byte array - int i=0; - do { - int n = read(fd, b, 1); // read a char at a time - if( n==-1) return -1; // couldn't read - if( n==0 ) { - usleep( 1 * 1000 ); // wait 1 msec try again - timeout--; - if( timeout==0 ) return -2; - continue; - } -#ifdef SERIALPORTDEBUG - fprintf(stderr, "serialport_read_until: i=%d, n=%d b='%c'\n",i,n,b[0]); // debug -#endif - buf[i] = b[0]; - i++; - } while( b[0] != until && i < buf_max && timeout>0 ); - - buf[i] = 0; // null terminate the string - return 0; -} - -// -int serialport_flush(int fd) -{ - sleep(2); //required to make flush work, for some reason - return tcflush(fd, TCIOFLUSH); -} diff --git a/e2sim/previous/e2apv1sim/e2sim/test/Pendulum/Serial/arduino-serial-lib.h b/e2sim/previous/e2apv1sim/e2sim/test/Pendulum/Serial/arduino-serial-lib.h deleted file mode 100644 index 74fe592..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/test/Pendulum/Serial/arduino-serial-lib.h +++ /dev/null @@ -1,39 +0,0 @@ -/* - * - * Copyright 2019 AT&T Intellectual Property - * Copyright 2019 Nokia - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -// -// arduino-serial-lib -- simple library for reading/writing serial ports -// -// 2006-2013, Tod E. Kurt, http://todbot.com/blog/ -// - - -#ifndef __ARDUINO_SERIAL_LIB_H__ -#define __ARDUINO_SERIAL_LIB_H__ - -#include // Standard types - -int serialport_init(const char* serialport, int baud); -int serialport_close(int fd); -int serialport_writebyte( int fd, uint8_t b); -int serialport_write(int fd, const char* str); -int serialport_read_until(int fd, char* buf, char until, int buf_max,int timeout); -int serialport_flush(int fd); - -#endif diff --git a/e2sim/previous/e2apv1sim/e2sim/test/Pendulum/demo_setup.txt b/e2sim/previous/e2apv1sim/e2sim/test/Pendulum/demo_setup.txt deleted file mode 100644 index 03cd1d6..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/test/Pendulum/demo_setup.txt +++ /dev/null @@ -1,14 +0,0 @@ -# DEMO March 20, 2019 - ## E2 Agent Laptop with IP x.x.x.x - - Connect to adruino via USB - - Connect to E2 Termination Desktop via Ethernet - - Run E2 Agent: $E2SIM_DIR/build/e2sim x.x.x.x - - ## E2 Termination Desktop - - Run xApp - cd $E2SIM_DIR/rmr_interface/tests/pendulum_xapp - bash run_receiver - - - Run E2 Termination - cd $E2SIM_DIR - ./build_and_run_e2sim diff --git a/e2sim/previous/e2apv1sim/e2sim/test/Pendulum/e2sim_closedloop.c b/e2sim/previous/e2apv1sim/e2sim/test/Pendulum/e2sim_closedloop.c deleted file mode 100644 index 613ce57..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/test/Pendulum/e2sim_closedloop.c +++ /dev/null @@ -1,263 +0,0 @@ -/* - * - * Copyright 2019 AT&T Intellectual Property - * Copyright 2019 Nokia - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - - -#include -#include -#include -#include -#include -#include //for close() -#include //for inet_ntop() - -#include "e2sim_defs.h" -#include "e2sim_sctp.h" -#include "x2ap_message_handler.h" - -//OSN 2019 -#include "Pendulum_asn_codec.h" -#include "adruino_serial.h" - -//rmr -#include -#include -#include -#include "rmr_wrapper.h" - -static void pendulum_control_E2_agent(int client_fd) -{ - fprintf(stderr, "--------------------------------------\n"); - fprintf(stderr, "E2 AGENT - START PENDULUM CONTROL\n"); - fprintf(stderr, "--------------------------------------\n"); - - uint8_t *buffer; - uint32_t len; - clock_t begin; - double rtt; //ms - - uint8_t recv_buf[MAX_SCTP_BUFFER]; - int recv_len; - - double angle; - double torque; - long sqn; - int count = 0; - - //serial - // int serial_fd; - char serial_buffer[MAX_SERIAL_BUFFER]; - // serial_fd = start_serial_inferface(DEFAULT_BAUDRATE, DEFAULT_SERIAL_PORT); - // - // char *delay_str_prev = "$0#\n"; - // //char *delay_str_new; - // - // int MSG_NUM = 10; - // - // //Always start with 0 delay - // serialport_write(serial_fd, "$0#\n"); - - // for(int i = 0; i < MSG_NUM; i++) - while(1) - { - - fprintf(stderr, "----------------\n"); - count += 1; - buffer = NULL; - len = 0; - - // //1.Read from serial - // serial_readline(serial_fd, serial_buffer, MAX_SERIAL_BUFFER); - // if(serial_buffer[0] == '\n') - // { - // //fprintf(stderr, "RECEIVED EOL\n"); - // continue; - // } - // //fprintf(stderr, "[Adruino] %s", serial_buffer); - usleep(5*1000); - - snprintf(serial_buffer, sizeof(serial_buffer)-1, "E2 AGENT PING"); - - begin = clock(); - - //2. Encode pendulum angle to ASN1 message - - len = pendulum_create_asn_msg(&buffer, 0, 0, 0, serial_buffer); - - //3. Send ASN1 message to socket - if(sctp_send_to_socket(client_fd, buffer, (size_t)len) > 0){ - fprintf(stderr, "Sent ASN1 message to E2 Termination\n"); - } - - // 4. Receive response from E2 Termination - memset(recv_buf, 0, sizeof(recv_buf)); - recv_len = 0; - recv_len = recv(client_fd, &recv_buf, sizeof(recv_buf), 0); - if(recv_len == -1) - { - perror("recv()"); - return; - } - - char *recv_str; - recv_str = pendulum_get_strval(recv_buf, recv_len); - fprintf(stderr, "Received response message #%d from xApp: %s\n", count, recv_str); - - // 5. TODO: Send response to serial - // Compare if delay has changed: - // if(strcmp(delay_str_prev, recv_str) != 0) { - // serial_writeline(serial_fd, recv_str); - // } - - //serial_writeline(serial_fd, recv_str); - - //Write to a file - FILE *f; - f = fopen("arduino_delay.txt", "w"); - fprintf(f, "%s", recv_str); - fclose(f); - - begin = clock() - begin; - rtt = 1000*((double)begin)/CLOCKS_PER_SEC; // in ms - fprintf(stderr, "E2Agent-RIC-E2Agent RTT = %f ms\n", rtt); - - } - - close(client_fd); -} - -int main(int argc, char *argv[]) -{ - fprintf(stderr, "E2 AGENT - PENDULUM CONTROL. Version %s\n", VERSION); - - // char *recv_str = "9"; - // int delay; - // - // printf("delay = %d\n", atoi(recv_str)); - // - // long delay = 22.5; - // - // printf("delay = %d\n", (int)delay); - // return 0; - - // test_rmr(); return 0; - // test_adruino_serial(); return 0; - - char* server_ip = DEFAULT_SCTP_IP; - int server_port = X2AP_SCTP_PORT; - - int server_fd; - int client_fd; - struct sockaddr client_addr; - socklen_t client_addr_size; - - //read input - if(argc == 3) //user provided IP and PORT - { - server_ip = argv[1]; - server_port = atoi(argv[2]); - if(server_port < 1 || server_port > 65535) { - fprintf(stderr, "Invalid port number (%d). Valid values are between 1 and 65535.\n" , server_port); - return -1; - } - } - else if(argc == 2) //user provided only IP - { - server_ip = argv[1]; - } - else if(argc == 1) - { - server_ip = DEFAULT_SCTP_IP; - } - else - { - fprintf(stderr, "Unrecognized option.\n"); - fprintf(stderr, "Usage: %s [SERVER IP ADDRESS] [SERVER PORT]\n", argv[0]); - return -1; - } - - server_fd = sctp_start_server(server_ip, server_port); - - fprintf(stderr, "Waiting for connection...\n"); - client_fd = accept(server_fd, &client_addr, &client_addr_size); - if(client_fd == -1){ - perror("accept()"); - close(client_fd); - return -1; - } - - //Todo: retrieve client ip addr - struct sockaddr_in* client_ipv4 = (struct sockaddr_in*)&client_addr; - char client_ip_addr[INET_ADDRSTRLEN]; - inet_ntop(AF_INET, &(client_ipv4->sin_addr), client_ip_addr, INET_ADDRSTRLEN); - - fprintf(stderr, "New client connected from %s\n", client_ip_addr); - - // while(1) //put while loop if want to receive from multiple clients - // { - uint8_t recv_buf[MAX_SCTP_BUFFER]; - int recv_len = 0; - - memset(recv_buf, 0, sizeof(recv_buf)); - - fprintf(stderr, "------------------------\n"); - recv_len = recv(client_fd, &recv_buf, sizeof(recv_buf), 0); - if(recv_len == -1) - { - perror("recv()"); - return -1; - } - else if(recv_len == 0) - { - fprintf(stderr, "\nConnection from %s closed by remote peer\n", client_ip_addr); - if(close(client_fd) == -1) - { - perror("close"); - } - return -1; - } - - //fprintf(stderr, "Received a message of size %d\n", recv_len); - - //TODO: check PPID here before calling x2ap handler - - sctp_data_t response = {NULL, 0}; - x2ap_eNB_handle_message(recv_buf, recv_len, &response); - - //======================================================================= - //reply to client - assert(response.data != NULL); - if(sctp_send_to_socket(client_fd, response.data, (size_t)response.len) > 0){ - fprintf(stderr, "Sent X2 SETUP RESPONSE \n"); - } else{ - perror("send to socket"); - return -1; - } - - fprintf(stderr, "X2 Setup Completed \n"); - - //========================================================================= - // Pendulum interaction - // Send pendulum state to E2 Termination and receive response - pendulum_control_E2_agent(client_fd); - // } //end while - - close(client_fd); - - return 0; -} diff --git a/e2sim/previous/e2apv1sim/e2sim/test/Pendulum/e2sim_serial.c b/e2sim/previous/e2apv1sim/e2sim/test/Pendulum/e2sim_serial.c deleted file mode 100644 index 33fa0ba..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/test/Pendulum/e2sim_serial.c +++ /dev/null @@ -1,56 +0,0 @@ -/* - * - * Copyright 2019 AT&T Intellectual Property - * Copyright 2019 Nokia - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -#include -#include -#include -#include -#include -#include "e2sim_defs.h" -#include - -#include "adruino_serial.h" - -int main(int argc, char *argv[]) -{ - int fd; - char buf[MAX_SERIAL_BUFFER]; - - fd = start_serial_inferface(DEFAULT_BAUDRATE, DEFAULT_SERIAL_PORT); - - while(1) - { - //usleep(5*1000); //sleep 5ms between read - sleep(1); - - FILE *f; - f = fopen("arduino_delay.txt", "r"); - assert(f); - - fread(buf, 1, sizeof(buf), f); - - printf("delay content = %s \n", buf); - - serial_writeline(fd, buf); - - fclose(f); - } - - return 0; -} diff --git a/e2sim/previous/e2apv1sim/e2sim/test/Pendulum/e2sim_test_client.c b/e2sim/previous/e2apv1sim/e2sim/test/Pendulum/e2sim_test_client.c deleted file mode 100644 index b178ff7..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/test/Pendulum/e2sim_test_client.c +++ /dev/null @@ -1,378 +0,0 @@ -/* - * - * Copyright 2019 AT&T Intellectual Property - * Copyright 2019 Nokia - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -#include -#include -#include -#include //for close() -#include -#include -#include -#include -#include //for inet_ntop() -#include - -#include "e2sim_defs.h" -#include "e2sim_sctp.h" -#include "x2ap_message_handler.h" - -#include "x2ap_generate_messages.h" - -//OSN 2019 -#include "Pendulum_asn_codec.h" - -//rmr -#include -#include -#include -#include "rmr_wrapper.h" - -//time -#include - -//these are the metrics being sent to the a1 mediator -int ave_ric_rtt_last_epoch=0; -int ave_msg_rate_last_epoch=0; -int ave_pendulum_msg_rate_last_epoch=0; - -int total_rtt_current_epoch=0; -int total_messages_current_epoch=0; -int total_pendulum_messages_current_epoch=0; - -int total_rtt_entries_current_epoch=0; - -int epoch_duration = 1;//in seconds - -long rtt_epoch_start_time =0; - -long msg_rate_epoch_start_time =0; -long pendulum_msg_rate_epoch_start_time = 0; - -long current_timestamp_in_us(){ - struct timeval currentTime; - gettimeofday(¤tTime, NULL); - return currentTime.tv_sec * (int)1e6 + currentTime.tv_usec; -} -void update_rtt_metrics(long rtt){//called every time there is a new rtt measurement - if(rtt_epoch_start_time == 0) - rtt_epoch_start_time = current_timestamp_in_us(); //start of a new epoch - - total_rtt_current_epoch = total_rtt_current_epoch+rtt; - total_rtt_entries_current_epoch++; - - if((current_timestamp_in_us() - rtt_epoch_start_time) > (epoch_duration*1000000)){//an epoch has passed - ave_ric_rtt_last_epoch = total_rtt_current_epoch/total_rtt_entries_current_epoch; - total_rtt_current_epoch =0; - rtt_epoch_start_time = 0; - } -} - -void update_msg_rate_metrics(){ - if(msg_rate_epoch_start_time == 0) - msg_rate_epoch_start_time= current_timestamp_in_us(); //start of a new epoch - total_messages_current_epoch++; - if((current_timestamp_in_us() - msg_rate_epoch_start_time) > (epoch_duration*1000000)){//an epoch has passed - ave_msg_rate_last_epoch = total_messages_current_epoch; - total_messages_current_epoch =0; - msg_rate_epoch_start_time =0; - } -} - -void update_pendulum_control_rate() -{ - if(pendulum_msg_rate_epoch_start_time == 0) - pendulum_msg_rate_epoch_start_time = current_timestamp_in_us(); //start of a new epoch - total_pendulum_messages_current_epoch++; - - if((current_timestamp_in_us() - pendulum_msg_rate_epoch_start_time) > (epoch_duration*1000000)){//an epoch has passed - ave_pendulum_msg_rate_last_epoch = total_pendulum_messages_current_epoch; - total_pendulum_messages_current_epoch = 0; - pendulum_msg_rate_epoch_start_time = 0; - } - -} - -void send_metrics_to_a1_med(struct rmr_context *rmr_c){ - int mtype=103; - char* metrics= malloc(1024); - int time_int = current_timestamp_in_us()/1000000; - //int ave_msg_rate_last_epoch=500; - snprintf(metrics, 1024, "{%s:%d, %s:%d, %s:%d, %s:%d}", \ - "\"latency\"", ave_ric_rtt_last_epoch/1000, \ - "\"ricload\"",ave_msg_rate_last_epoch, \ - "\"load\"",ave_pendulum_msg_rate_last_epoch, \ - "\"time\"",time_int); - rmr_send_wrapper(rmr_c, mtype, metrics); - printf("Sent message of type:%d to a1_med with content:%s\n",mtype,metrics); -} - -void forward_to_load_consumer(struct rmr_context *rmr_c){//the content does not matter - int mtype=105; - char* load_message="dummy load"; - rmr_send_wrapper(rmr_c, mtype, load_message); - printf("Sent message of type:%d to load consumer with content:%s\n",mtype,load_message); -} - -static void pendulum_control_E2_Termination(int client_fd) -{ - printf("--------------------------------------\n"); - printf("E2 TERMINATION - START PENDULUM CONTROL\n"); - printf("--------------------------------------\n"); - - uint8_t *send_buffer; - uint8_t recv_buffer[1024]; - uint32_t send_len; - uint32_t recv_len; - - clock_t begin = clock(); - double rtt; - double rtt_stats[100000]; - long recv_count = 0; - long fail_count = -1; //ignore the first message (see adruino code) - - long sqn; - int count = 0; - - //================================= - - //Setup context - struct rmr_context *rmr_c; //obtain our enhanced rmr_context - int mtype = 0; // we can loop through several message types - char* lport = "43086"; // default listen port - long rcount = 0; // number of acks received - - if( (eparm = getenv( "E2TERM_RMR_RCV_PORT" )) != NULL ) { - lport = strdup( eparm ); - } - - rmr_c = rmr_init_wrapper(lport); - - while( ! rmr_ready( rmr_c->mrc ) ) { - fprintf( stderr, " waiting for RMR to indicate ready\n" ); - sleep( 1 ); - } - fprintf( stderr, "[OK] initialisation complete\n" ); - - - //================================== - long loop_start_time = 0; - while(1){ - printf("----------------\n"); - count += 1; - loop_start_time = current_timestamp_in_us(); - //0. Receiving ASN message from E2 Agent - memset(recv_buffer, 0, sizeof(recv_buffer)); - printf("Time to receive asn message after starting main loop: %ld microseconds \n",current_timestamp_in_us() - loop_start_time); - recv_len = 0; - - printf(" 1Time to receive asn message after starting main loop: %ld microseconds \n",current_timestamp_in_us() - loop_start_time); - //long time_of_message_from_e2agent = current_timestamp_in_us(); - - if((recv_len = recv(client_fd, &recv_buffer, sizeof(recv_buffer), 0)) == -1) { - perror("recv"); - return; - } - - long time_of_message_from_e2agent = current_timestamp_in_us(); - - printf(" 2Time to receive asn message after starting main loop: %ld microseconds \n",current_timestamp_in_us() - loop_start_time); - if(recv_len == 0) { - rmr_close_wrapper(rmr_c); - - printf("Connection from closed by remote peer.\n"); - if(close(client_fd) == -1) { - perror("close"); - } - return; - } - - printf(" 3Time to receive asn message after starting main loop: %ld microseconds \n",current_timestamp_in_us() - loop_start_time); - // begin = clock() - begin; - // rtt = 1000*((double)begin)/CLOCKS_PER_SEC; // in ms - //printf("E2Term-Adruino-E2Term = %f ms\n", rtt); - - //2. Decode ASN message and Extract pendulum angle - char *recv_str; - recv_str = pendulum_get_strval(recv_buffer, recv_len); - // if( (strcmp(recv_str, "-1") == 0) || (strcmp(recv_str, "") == 0) ) - - if(strcmp(recv_str, "\n") == 0) - { - printf("RECEIVED EOL\n"); - } - - printf(" 4Time to receive asn message after starting main loop: %ld microseconds \n",current_timestamp_in_us() - loop_start_time); - // if(atof(recv_str) <= 0) - // { - // printf("FAILLLLLL\n"); - // fail_count += 1; - // } - // else { - // rtt_stats[recv_count] = atof(recv_str); - // recv_count++; - // } - - printf("Time to receive angle message from arduino after starting main loop: %ld microseconds \n",current_timestamp_in_us() - loop_start_time); - printf("Received message #%d from Adruino: %s\n", count, recv_str); - //printf("Last reported RTT (Adruino-RIC-Adruino): %f ms, fail_count = %ld\n", - // atof(recv_str)/1000, fail_count); - - // 3. [BHARATH] send_to_xApp(&pendulum_state, &response) - // while(1) { - // usleep( 10 ); - // char* message = "foo 111"; - char reply[1024]; - int got_pend_control=0; - rmr_send_wrapper(rmr_c, mtype, recv_str ); - printf("Sent message of type:%d to pendulum xApp with content:%s\n",mtype,recv_str); - long angle_receive_time =0; - while (got_pend_control == 0){ - if(rmr_poll_for_message(rmr_c) == 1) { - update_msg_rate_metrics(); - switch(rmr_c->rbuf->mtype) { - case 33 : - angle_receive_time = current_timestamp_in_us(); - got_pend_control=1; - update_pendulum_control_rate(); //add this - strcpy(reply,rmr_c->rbuf->payload); - printf("Received control message from pendulum xapp with message type: %d and content %s\n",rmr_c->rbuf->mtype, reply); - break; - case 102 : - printf("Received METRIC request from A1 mediator with message type: %d and content %s\n",rmr_c->rbuf->mtype,rmr_c->rbuf->payload); - send_metrics_to_a1_med(rmr_c); - break; - case 104 : - printf("***************************Received load from load generator****************************"); - forward_to_load_consumer(rmr_c); - break; - default : - continue; - } - } - - } - printf("Time to receive control message from xapp after starting main loop: %ld microseconds \n",current_timestamp_in_us() - loop_start_time); -// snprintf(reply, 1024, "$%d#\n", (int)ave_ric_rtt_last_epoch/1000); - send_len = pendulum_create_asn_msg(&send_buffer, 0, 0, 0, reply); - printf("Time to create asn message after receiving angle: %ld microseconds\n",current_timestamp_in_us() - angle_receive_time); - begin = clock(); - - //6. Send ASN1 message to socket - if(sctp_send_to_socket(client_fd, send_buffer, (size_t)send_len) > 0){ - printf("Sent ASN1 response to E2 Agent\n"); - } - long time_of_reply_to_e2agent = current_timestamp_in_us(); - printf("Time to send asn message after receiving angle: %ld microseconds \n",current_timestamp_in_us() - angle_receive_time); - long rtt = (time_of_reply_to_e2agent - time_of_message_from_e2agent); - ave_ric_rtt_last_epoch = rtt; - printf("RIC RTT is %lf milliseconds\n", rtt/1000.0); - //update_rtt_metrics(rtt); - } - - rmr_close_wrapper(rmr_c); - -} - -int main(int argc, char* argv[]) -{ - // test_rmr(); return 0; - - const char* server_ip = DEFAULT_SCTP_IP; - int server_port = X2AP_SCTP_PORT; - - //read input - if(argc == 3) //user provided IP and PORT - { - server_ip = argv[1]; - server_port = atoi(argv[2]); - if(server_port < 1 || server_port > 65535) { - printf("Invalid port number (%d). Valid values are between 1 and 65535.\n", server_port); - return 1; - } - } - else if(argc == 2) //user provided only IP - { - server_ip = argv[1]; - } - else if(argc == 1) - { - server_ip = DEFAULT_SCTP_IP; - } - else - { - printf("Unrecognized option.\n"); - printf("Usage: %s [SERVER IP ADDRESS] [SERVER PORT]\n", argv[0]); - return 0; - } - - int client_fd; - client_fd = sctp_start_client(server_ip, server_port); - - uint8_t *buffer; - uint32_t len; - - //Note: put a while(1) loop here if want client to stay - // for(int i = 0; i < 3; i++) - // { - buffer = NULL; - len = 0; - - printf("------------------------\n"); - clock_t begin; - begin = clock(); - - //Create pdu for x2 message and send to socket - len = x2ap_generate_x2_setup_request(&buffer); - if(sctp_send_to_socket(client_fd, buffer, (size_t)len) > 0){ - printf("Sent X2 SETUP REQUEST\n"); - } - - //======================================================================= - //printf("waiting for server response\n"); - uint8_t recv_buf[MAX_SCTP_BUFFER]; - int recv_len = 0; - - //sctp_recv_from_socket(client_fd, recv_buf, sizeof(recv_buf)); - memset(recv_buf, 0, sizeof(recv_buf)); - recv_len = recv(client_fd, &recv_buf, sizeof(recv_buf), 0); - if(recv_len == -1) - { - perror("recv()"); - return -1; - } - - //printf("Received a message of size %d\n", recv_len); - x2ap_eNB_handle_message(recv_buf, recv_len, NULL); - - begin = clock() - begin; - double time_taken = 1000*((double)begin)/CLOCKS_PER_SEC; // in ms - printf("Close-loop time: %f ms \n", time_taken); - printf("X2 Setup Completed \n"); - - // } //end iteration - - //========================================================================= - // Pendulum interaction - // Receive pendulum state from E2 Agent and send response - pendulum_control_E2_Termination(client_fd); - - close(client_fd); - - return 0; -} diff --git a/e2sim/previous/e2apv1sim/e2sim/test/Pendulum/e2termination_test.cpp b/e2sim/previous/e2apv1sim/e2sim/test/Pendulum/e2termination_test.cpp deleted file mode 100644 index b65ac65..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/test/Pendulum/e2termination_test.cpp +++ /dev/null @@ -1,223 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -#include -#include -#include -#include - - -#include "e2sim_defs.h" -#include "asn_e2ap.hpp" -#include "e2sim_sctp.hpp" -#include "e2ap_message_handler.hpp" -#include "e2ap_asn_codec.hpp" - -using namespace std; - -void test_send_X2Setup(int &client_fd) -{ - //Create X2SetupRequest message - e2ap_pdu_t* pdu = new_e2ap_pdu(); - eNB_config cfg; - - e2ap_create_X2SetupRequest(pdu, cfg); - e2ap_print_pdu(pdu); - - //Encode into buffer - sctp_buffer_t data; - e2ap_encode_pdu(pdu, data.buffer, sizeof(data.buffer), data.len); - - //Send to sctp - sctp_send_data(client_fd, data); - LOG_I("[SCTP] Sent X2 SETUP REQUEST"); - - //wait to receive response - sctp_buffer_t recv_buf; - if(sctp_receive_data(client_fd, recv_buf) > 0) - { - LOG_I("[SCTP] Received new data of size %d", recv_buf.len); - e2ap_handle_sctp_data(client_fd, recv_buf); - } - - } - -void test_send_ENDCX2Setup(int &client_fd) -{ - //Create ENDCX2SetupRequest message - e2ap_pdu_t* pdu = new_e2ap_pdu(); - eNB_config cfg; - - e2ap_create_ENDCX2SetupRequest(pdu, cfg); - e2ap_print_pdu(pdu); - - //Encode into buffer - sctp_buffer_t data; - e2ap_encode_pdu(pdu, data.buffer, sizeof(data.buffer), data.len); - - //Send to sctp - sctp_send_data(client_fd, data); - LOG_I("[SCTP] Sent ENDC X2 SETUP REQUEST"); - - //wait to receive response - sctp_buffer_t recv_buf; - if(sctp_receive_data(client_fd, recv_buf) > 0) - { - LOG_I("[SCTP] Received new data of size %d", recv_buf.len); - e2ap_handle_sctp_data(client_fd, recv_buf); - } - -} - -void test_send_RICSubscriptionRequest(int &client_fd) -{ - LOG_I("Test RIC SUBSCRIPTION"); - - /* Create RIC SUBSCRITION REQUEST */ - e2ap_pdu_t* pdu = new_e2ap_pdu(); - - RICsubscription_params_t params; - params.request_id = 2; - params.seq_number = 200; - params.ran_func_id = 0; - params.event_trigger_def = "hello world"; - - RIC_action_t action1(1, RICactionType_report); - // RIC_action_t action2(3, RICactionType_insert); - // RIC_action_t action3(5, RICactionType_insert); - // RIC_action_t action4(7, RICactionType_insert); - params.actionList.push_back(action1); - // params.actionList.push_back(action2); - // params.actionList.push_back(action3); - // params.actionList.push_back(action4); - - e2ap_create_RICsubscriptionRequest(pdu, params); - e2ap_print_pdu(pdu); - - //Encode into buffer - sctp_buffer_t data; - e2ap_encode_pdu(pdu, data.buffer, sizeof(data.buffer), data.len); - - //Send to sctp - sctp_send_data(client_fd, data); - LOG_I("[SCTP] Sent RIC SUBSCRIPTION REQUEST"); - - //wait to receive response and indication (if any) - sctp_buffer_t recv_buf; - LOG_I("[SCTP] Waiting for SCTP data"); - while(1) - { - if(sctp_receive_data(client_fd, recv_buf) > 0) - { - LOG_I("[SCTP] Received new data of size %d", recv_buf.len); - e2ap_handle_sctp_data(client_fd, recv_buf); - } - else - break; - - } - - - return; - //========================================================================== - - //decode - e2ap_pdu_t* pdu2 = new_e2ap_pdu(); - - e2ap_decode_pdu(pdu2, data.buffer, data.len); - - RICsubscription_params_t params2; - e2ap_parse_RICsubscriptionRequest(pdu2, params2); - printf("request_id = %d\n", params2.request_id); - printf("seq_number = %d\n", params2.seq_number); - printf("ran_func_id = %d\n", params2.ran_func_id); - printf("event = %s\n", ¶ms2.event_trigger_def[0]); - - for( auto const &a : params.actionList) - { - printf("action id = %d, action type = %d\n", (int)a.action_id, (int)a.action_type); - } - - - LOG_I("================= RESPONSE ==========================="); - for(size_t i = 0; i < params2.actionList.size(); i++) - { - //example logic: admit every other action - if(i%2 == 0) { - params2.actionList[i].isAdmitted = true; - } else { - params2.actionList[i].isAdmitted = false; - params2.actionList[i].notAdmitted_cause = RICcause_radioNetwork; - params2.actionList[i].notAdmitted_subCause = 5; - } - } - - e2ap_pdu_t* res_pdu = new_e2ap_pdu(); - e2ap_create_RICsubscriptionResponse(res_pdu, params2); - - e2ap_print_pdu(res_pdu); - - //Encode into buffer - sctp_buffer_t data_resp; - e2ap_encode_pdu(res_pdu, data_resp.buffer, sizeof(data_resp.buffer), data_resp.len); - - LOG_I("================= FAILURE ==========================="); - e2ap_pdu_t* fail_pdu = new_e2ap_pdu(); - - RICsubscription_params_t params3; - e2ap_parse_RICsubscriptionRequest(pdu2, params3); - - for(size_t i = 0; i < params3.actionList.size(); i++) - { - params3.actionList[i].isAdmitted = false; - params3.actionList[i].notAdmitted_cause = RICcause_radioNetwork; - params3.actionList[i].notAdmitted_subCause = 5; - } - - e2ap_create_RICsubscriptionFailure(fail_pdu, params3); - e2ap_print_pdu(fail_pdu); - - //Encode into buffer - sctp_buffer_t data_fail; - e2ap_encode_pdu(fail_pdu, data_fail.buffer, sizeof(data_fail.buffer), data_fail.len); - -} - -int main(int argc, char* argv[]){ - - LOG_I("E2 Termination Test"); - - // test_send_RICSubscriptionRequest(); - // return 0; - - options_t ops = read_input_options(argc, argv); - int client_fd = sctp_start_client(ops.server_ip, ops.server_port); - - //--------------------------------------------------- - // test_send_X2Setup(client_fd); - test_send_ENDCX2Setup(client_fd); - test_send_RICSubscriptionRequest(client_fd); - - //--------------------------------------------------- - - close(client_fd); - LOG_I("[SCTP] Connection closed."); - - return 0; -} diff --git a/e2sim/previous/e2apv1sim/e2sim/test/Pendulum/pendulum.asn1 b/e2sim/previous/e2apv1sim/e2sim/test/Pendulum/pendulum.asn1 deleted file mode 100644 index 686d2c0..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/test/Pendulum/pendulum.asn1 +++ /dev/null @@ -1,12 +0,0 @@ -PendulumModule DEFINITIONS AUTOMATIC TAGS ::= - -BEGIN - -Pendulum ::= SEQUENCE { - sequence INTEGER OPTIONAL, - angle REAL OPTIONAL, - torque REAL OPTIONAL, - strval PrintableString OPTIONAL -} - -END diff --git a/e2sim/previous/e2apv1sim/e2sim/test/WLG/CMakeLists.txt b/e2sim/previous/e2apv1sim/e2sim/test/WLG/CMakeLists.txt deleted file mode 100644 index 4faee6a..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/test/WLG/CMakeLists.txt +++ /dev/null @@ -1,59 +0,0 @@ -#/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -#******************************************************************************/ - -cmake_minimum_required(VERSION 3.5.1) -set(CMAKE_CXX_COMPILER "/usr/bin/g++") -set(CMAKE_CXX_STANDARD 14) - -add_definitions("-D ASN_DISABLE_OER_SUPPORT") - -set (E2SIM_ROOT ../../) - -include_directories("${E2SIM_ROOT}/src") -include_directories("${E2SIM_ROOT}/src/DEF") -include_directories("${E2SIM_ROOT}/src/SCTP/") -include_directories("${E2SIM_ROOT}/src/E2AP") -include_directories("${E2SIM_ROOT}/src/E2AP/E2SM") -include_directories("${E2SIM_ROOT}/ASN1c") - -find_library( SCTP_STD_LIB sctp ) #needed for sctp_sendmsg - -#---------------------------------------------- -file(GLOB WLG_SOURCES - "${E2SIM_ROOT}/test/WLG/ric_wlg.cpp" - "${E2SIM_ROOT}/src/DEF/*.cpp" - "${E2SIM_ROOT}/src/SCTP/*.cpp" - "${E2SIM_ROOT}/src/E2AP/*.c" - "${E2SIM_ROOT}/src/E2AP/*.cpp" - "${E2SIM_ROOT}/ASN1c/*.c" - ) -add_executable(ric_wlg ${WLG_SOURCES}) -target_link_libraries( ric_wlg ${SCTP_STD_LIB} ) - -#---------------------------------------------- -file(GLOB RICPERF_SOURCES - "${E2SIM_ROOT}/test/WLG/ric_perf.cpp" - "${E2SIM_ROOT}/src/DEF/*.cpp" - "${E2SIM_ROOT}/src/SCTP/*.cpp" - "${E2SIM_ROOT}/src/E2AP/*.c" - "${E2SIM_ROOT}/src/E2AP/*.cpp" - "${E2SIM_ROOT}/ASN1c/*.c" - ) -add_executable(ric_perf ${RICPERF_SOURCES}) -target_link_libraries( ric_perf ${SCTP_STD_LIB} ) diff --git a/e2sim/previous/e2apv1sim/e2sim/test/WLG/build_wlg.sh b/e2sim/previous/e2apv1sim/e2sim/test/WLG/build_wlg.sh deleted file mode 100755 index 2f81b56..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/test/WLG/build_wlg.sh +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/bash -#/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -#******************************************************************************/ - -set -e - -mkdir -p build -cd build -rm -rf CMakeCache.txt -cmake .. -make -j`nproc` diff --git a/e2sim/previous/e2apv1sim/e2sim/test/WLG/ric_perf.cpp b/e2sim/previous/e2apv1sim/e2sim/test/WLG/ric_perf.cpp deleted file mode 100644 index 9403283..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/test/WLG/ric_perf.cpp +++ /dev/null @@ -1,287 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -#include -#include -#include - -#include "e2sim_sctp.hpp" -#include "e2ap_message_handler.hpp" - -extern "C" { - #include "e2sim_defs.h" - #include "E2AP-PDU.h" - #include "e2ap_asn1c_codec.h" - - #include "ProtocolIE-Field.h" -} - -using namespace std; - -void encode_and_send_sctp_data(E2AP_PDU_t* pdu, int client_fd) -{ - uint8_t *buf; - sctp_buffer_t data; - - data.len = e2ap_asn1c_encode_pdu(pdu, &buf); - memcpy(data.buffer, buf, min(data.len, MAX_SCTP_BUFFER)); - - sctp_send_data(client_fd, data); -} - -void wait_for_sctp_data(int client_fd) -{ - sctp_buffer_t recv_buf; - if(sctp_receive_data(client_fd, recv_buf) > 0) - { - LOG_I("[SCTP] Received new data of size %d", recv_buf.len); - e2ap_handle_sctp_data(client_fd, recv_buf); - } -} - -void set_seqnum(E2AP_PDU_t* pdu) -{ - InitiatingMessage_t *initiatingMessage = pdu->choice.initiatingMessage; - // xer_fprint(stdout, &asn_DEF_InitiatingMessage, (void *)initiatingMessage); - - RICsubscriptionRequest_t *request = &initiatingMessage->value.choice.RICsubscriptionRequest; - xer_fprint(stdout, &asn_DEF_RICsubscriptionRequest, (void *)request); - - LOG_I("num of IEs = %d", request->protocolIEs.list.count); - - RICsubscriptionRequest_IEs_t *ie; - - ie = request->protocolIEs.list.array[2]; - - xer_fprint(stdout, &asn_DEF_RICsubscription, (void *)ie); - - // e2ap_asn1c_print_pdu(pdu); -} - -int subresponse_get_sequenceNum(E2AP_PDU_t* pdu) -{ - SuccessfulOutcome_t *responseMsg = pdu->choice.successfulOutcome; - - RICrequestID_t *requestid; - - int num_IEs = responseMsg->value.choice.RICsubscriptionResponse.protocolIEs.list.count; - - for(int edx = 0; edx < num_IEs; edx++) - { - RICsubscriptionResponse_IEs_t *memb_ptr = - responseMsg->value.choice.RICsubscriptionResponse.protocolIEs.list.array[edx]; - - switch(memb_ptr->id) - { - case (ProtocolIE_ID_id_RICrequestID): - requestid = &memb_ptr->value.choice.RICrequestID; - // xer_fprint(stdout, &asn_DEF_RICrequestID, (void *)requestid); - return requestid->ricRequestSequenceNumber; - break; - } - } -} - -void subrequest_set_sequenceNum(E2AP_PDU_t* pdu, int seq) -{ - InitiatingMessage_t *initiatingMessage = pdu->choice.initiatingMessage; - - RICrequestID_t *requestid; - - int num_IEs = initiatingMessage->value.choice.RICsubscriptionRequest.protocolIEs.list.count; - - for(int edx = 0; edx < num_IEs; edx++) - { - RICsubscriptionRequest_IEs_t *memb_ptr = - initiatingMessage->value.choice.RICsubscriptionRequest.protocolIEs.list.array[edx]; - - switch(memb_ptr->id) - { - case (ProtocolIE_ID_id_RICrequestID): - requestid = &memb_ptr->value.choice.RICrequestID; - requestid->ricRequestSequenceNumber = seq; - break; - } - } - -} - -void subscription_response_get_field(E2AP_PDU_t* pdu) -{ - SuccessfulOutcome_t *responseMsg = pdu->choice.successfulOutcome; - - RICrequestID_t *requestid; - RANfunctionID_t * ranfunctionid; - RICsubscription_t * ricsubscription; - - int requestID_val, sequenceNum; - - int num_IEs = responseMsg->value.choice.RICsubscriptionResponse.protocolIEs.list.count; - - LOG_I("num of IEs = %d", num_IEs); - - for(int edx = 0; edx < num_IEs; edx++) - { - RICsubscriptionResponse_IEs_t *memb_ptr = - responseMsg->value.choice.RICsubscriptionResponse.protocolIEs.list.array[edx]; - - switch(memb_ptr->id) - { - case (ProtocolIE_ID_id_RICrequestID): - requestid = &memb_ptr->value.choice.RICrequestID; - xer_fprint(stdout, &asn_DEF_RICrequestID, (void *)requestid); - requestID_val = requestid->ricRequestorID; - sequenceNum = requestid->ricRequestSequenceNumber; - requestid->ricRequestSequenceNumber = 202; - break; - - case (ProtocolIE_ID_id_RANfunctionID): - ranfunctionid = &memb_ptr->value.choice.RANfunctionID; - xer_fprint(stdout, &asn_DEF_RANfunctionID, (void *)ranfunctionid); - break; - - // case (ProtocolIE_ID_id_RICsubscription): - // ricsubscription = &memb_ptr->value.choice.RICsubscription; - // xer_fprint(stdout, &asn_DEF_RICsubscription, (void *)ricsubscription); - // break; - } - } - - LOG_I("Request ID = %d, seq = %d", requestID_val, sequenceNum); -} - -void subscription_request_get_field(E2AP_PDU_t* pdu) -{ - InitiatingMessage_t *initiatingMessage = pdu->choice.initiatingMessage; - - RICrequestID_t *requestid; - RANfunctionID_t * ranfunctionid; - RICsubscription_t * ricsubscription; - - int num_IEs = initiatingMessage->value.choice.RICsubscriptionRequest.protocolIEs.list.count; - - LOG_I("num of IEs = %d", num_IEs); - - for(int edx = 0; edx < num_IEs; edx++) - { - RICsubscriptionRequest_IEs_t *memb_ptr = - initiatingMessage->value.choice.RICsubscriptionRequest.protocolIEs.list.array[edx]; - - switch(memb_ptr->id) - { - case (ProtocolIE_ID_id_RICrequestID): - requestid = &memb_ptr->value.choice.RICrequestID; - xer_fprint(stdout, &asn_DEF_RICrequestID, (void *)requestid); - break; - - case (ProtocolIE_ID_id_RANfunctionID): - ranfunctionid = &memb_ptr->value.choice.RANfunctionID; - xer_fprint(stdout, &asn_DEF_RANfunctionID, (void *)ranfunctionid); - break; - - case (ProtocolIE_ID_id_RICsubscription): - ricsubscription = &memb_ptr->value.choice.RICsubscription; - xer_fprint(stdout, &asn_DEF_RICsubscription, (void *)ricsubscription); - break; - } - } -} - -int main(int argc, char* argv[]){ - LOG_I("Start RIC Simulator - Performance Test"); - - options_t ops = read_input_options(argc, argv); - int client_fd = sctp_start_client(ops.server_ip, ops.server_port); - - //1. Send ENDCX2Setup - E2AP_PDU_t* pdu_setup = e2ap_xml_to_pdu("E2AP_ENDCX2SetupRequest.xml"); - // e2ap_asn1c_print_pdu(pdu_setup); - encode_and_send_sctp_data(pdu_setup, client_fd); - LOG_I("[SCTP] Sent ENDC X2 SETUP REQUEST"); - - //2. Receive ENDCX2SetupResponse - wait_for_sctp_data(client_fd); - - //3. Send RICSubscriptionRequest - E2AP_PDU_t* pdu_sub = e2ap_xml_to_pdu("E2AP_RICsubscriptionRequest_Ashwin.xml"); - e2ap_asn1c_print_pdu(pdu_sub); - encode_and_send_sctp_data(pdu_sub, client_fd); - LOG_I("[SCTP] Sent RIC SUBSCRIPTION REQUEST"); - - - //4. Receive RIC SUBSCRIPT RESPONSE - int count = 0; - - while(1) - { - usleep(1000); //sleep for one ms - - sctp_buffer_t recv_buf; - - int res_seq; - - if(sctp_receive_data(client_fd, recv_buf) > 0) - { - LOG_I("[SCTP] Received new data of size %d", recv_buf.len); - // e2ap_handle_sctp_data(client_fd, recv_buf); - - E2AP_PDU_t* res_pdu = new E2AP_PDU_t(); - - e2ap_asn1c_decode_pdu(res_pdu, recv_buf.buffer, recv_buf.len); - - int procedureCode = e2ap_asn1c_get_procedureCode(res_pdu); - int index = (int)res_pdu->present; - - if(index == E2AP_PDU_PR_successfulOutcome && \ - procedureCode == ProcedureCode_id_ricSubscription) - { - res_seq =subresponse_get_sequenceNum(res_pdu); - count++; - - LOG_I("Received RIC SUBSCRIPTION RESPONSE, seq = %d, totalCount = %d",\ - res_seq, count); - - //Put res_seq in new subscription request - E2AP_PDU_t* req_pdu = e2ap_xml_to_pdu("E2AP_RICsubscriptionRequest.xml"); - subrequest_set_sequenceNum(req_pdu, res_seq); - // e2ap_asn1c_print_pdu(req_pdu); - - encode_and_send_sctp_data(req_pdu, client_fd); - LOG_I("Send new SUBSCRIPT REQUEST, seq = %d", res_seq); - } - - } - } - - - // E2AP_PDU_t* res_pdu = e2ap_xml_to_pdu("E2AP_RICsubscriptionResponse.xml"); - // - // //Extract subscription response sequence number - // int res_seq = subresponse_get_sequenceNum(res_pdu); - // LOG_I("Subscription Response SeqNo = %d", res_seq); - // - // //Put responseSeq in new subscription request - // E2AP_PDU_t* req_pdu = e2ap_xml_to_pdu("E2AP_RICsubscriptionRequest.xml"); - // - // subrequest_set_sequenceNum(req_pdu, res_seq); - - // e2ap_asn1c_print_pdu(req_pdu); - - return 0; -} diff --git a/e2sim/previous/e2apv1sim/e2sim/test/WLG/ric_wlg.cpp b/e2sim/previous/e2apv1sim/e2sim/test/WLG/ric_wlg.cpp deleted file mode 100644 index 309153d..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/test/WLG/ric_wlg.cpp +++ /dev/null @@ -1,61 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -#include -#include -#include - -#include "e2sim_sctp.hpp" -#include "e2ap_message_handler.hpp" - -extern "C" { - #include "e2sim_defs.h" - #include "E2AP-PDU.h" - #include "e2ap_asn1c_codec.h" - - #include "ProtocolIE-Field.h" -} - -using namespace std; - - -int main(int argc, char* argv[]){ - LOG_I("Start RIC WLG"); - - options_t ops = read_input_options(argc, argv); - - int server_fd = sctp_start_server(ops.server_ip, ops.server_port); - int client_fd = sctp_accept_connection(ops.server_ip, server_fd); - - sctp_buffer_t recv_buf; - - LOG_I("[SCTP] Waiting for SCTP data"); - - while(1) //constantly looking for data on SCTP interface - { - if(sctp_receive_data(client_fd, recv_buf) <= 0) - break; - - LOG_I("[SCTP] Received new data of size %d", recv_buf.len); - - e2ap_handle_sctp_data(client_fd, recv_buf); - } - - return 0; -} diff --git a/e2sim/previous/e2apv1sim/e2sim/test/X2/CMakeLists.txt b/e2sim/previous/e2apv1sim/e2sim/test/X2/CMakeLists.txt deleted file mode 100644 index b257505..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/test/X2/CMakeLists.txt +++ /dev/null @@ -1,49 +0,0 @@ -#/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -#******************************************************************************/ - -cmake_minimum_required(VERSION 3.5.1) -set(CMAKE_CXX_COMPILER "/usr/bin/g++") -set(CMAKE_CXX_STANDARD 14) - -add_definitions("-D ASN_DISABLE_OER_SUPPORT") - -project(x2term) - -set (E2SIM_ROOT ../../) - -include_directories("${E2SIM_ROOT}/src") -include_directories("${E2SIM_ROOT}/src/DEF") -include_directories("${E2SIM_ROOT}/src/SCTP/") -include_directories("${E2SIM_ROOT}/src/E2AP") -include_directories("${E2SIM_ROOT}/src/E2AP/E2SM") -include_directories("${E2SIM_ROOT}/ASN1c") - -find_library( SCTP_STD_LIB sctp ) #needed for sctp_sendmsg - -#---------------------------------------------- -file(GLOB X2TERM_SOURCES - "${E2SIM_ROOT}/test/X2/x2term.cpp" - "${E2SIM_ROOT}/src/DEF/*.cpp" - "${E2SIM_ROOT}/src/SCTP/*.cpp" - "${E2SIM_ROOT}/src/E2AP/*.c" - "${E2SIM_ROOT}/src/E2AP/*.cpp" - "${E2SIM_ROOT}/ASN1c/*.c" - ) -add_executable(x2term ${X2TERM_SOURCES}) -target_link_libraries( x2term ${SCTP_STD_LIB} ) diff --git a/e2sim/previous/e2apv1sim/e2sim/test/X2/x2agent.cpp b/e2sim/previous/e2apv1sim/e2sim/test/X2/x2agent.cpp deleted file mode 100644 index db279a3..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/test/X2/x2agent.cpp +++ /dev/null @@ -1,41 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -#include -#include -#include - -#include "e2sim_defs.h" -#include "asn_x2ap.hpp" -#include "e2sim_sctp.hpp" - -using namespace std; - -int main(int argc, char* argv[]){ - - LOG_I("X2 Agent. Version %s", VERSION); - - options_t ops = read_input_options(argc, argv); - - int server_fd = sctp_start_server(ops.server_ip, ops.server_port); - int client_fd = sctp_accept_connection(server_fd); - - - return 0; -} diff --git a/e2sim/previous/e2apv1sim/e2sim/test/X2/x2term.cpp b/e2sim/previous/e2apv1sim/e2sim/test/X2/x2term.cpp deleted file mode 100644 index e325827..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/test/X2/x2term.cpp +++ /dev/null @@ -1,73 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -#include -#include -#include - -#include "e2sim_sctp.hpp" -#include "e2ap_message_handler.hpp" - -extern "C" { - #include "e2sim_defs.h" - #include "E2AP-PDU.h" - #include "e2ap_asn1c_codec.h" -} - -using namespace std; - -void encode_and_send_sctp_data(E2AP_PDU_t* pdu, int client_fd) -{ - uint8_t *buf; - sctp_buffer_t data; - - data.len = e2ap_asn1c_encode_pdu(pdu, &buf); - memcpy(data.buffer, buf, min(data.len, MAX_SCTP_BUFFER)); - - // sctp_send_data(client_fd, data); - sctp_send_data_X2AP(client_fd, data); -} - -void wait_for_sctp_data(int client_fd) -{ - sctp_buffer_t recv_buf; - if(sctp_receive_data(client_fd, recv_buf) > 0) - { - LOG_I("[SCTP] Received new data of size %d", recv_buf.len); - e2ap_handle_sctp_data(client_fd, recv_buf); - } -} - - -int main(int argc, char* argv[]){ - LOG_I("Start RIC Simulator"); - - options_t ops = read_input_options(argc, argv); - int client_fd = sctp_start_client(ops.server_ip, ops.server_port); - - //Send X2 Setup Request - E2AP_PDU_t* pdu_setup = e2ap_xml_to_pdu("E2AP_X2SetupRequest.xml"); - e2ap_asn1c_print_pdu(pdu_setup); - encode_and_send_sctp_data(pdu_setup, client_fd); - - //wait to receive X2SetupResponse - while(1){ - wait_for_sctp_data(client_fd); - } -} diff --git a/e2sim/previous/e2apv1sim/e2sim/test/X2/x2termination_test.cpp b/e2sim/previous/e2apv1sim/e2sim/test/X2/x2termination_test.cpp deleted file mode 100644 index 1953ce6..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/test/X2/x2termination_test.cpp +++ /dev/null @@ -1,119 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -#include -#include -#include - -#include "e2sim_defs.h" -#include "asn_x2ap.hpp" -#include "e2sim_sctp.hpp" -#include "x2ap_message_handler.hpp" -#include "x2ap_asn_codec.hpp" - -using namespace std; - -void test_X2Setup(int &client_fd) -{ - //Create X2SetupRequest message - x2ap_pdu_t* pdu = new_x2ap_pdu(); - eNB_config cfg; - - x2ap_create_X2SetupRequest(pdu, cfg); - x2ap_print_pdu(pdu); - - //Encode into buffer - sctp_buffer_t data; - x2ap_encode_pdu(pdu, data.buffer, sizeof(data.buffer), data.len); - - //Send to sctp - sctp_send_data(client_fd, data); - LOG_I("[SCTP] Sent X2 SETUP REQUEST"); - - //expect X2 SETUP RESPONSE - sctp_buffer_t recv_buf; - if(sctp_receive_data(client_fd, recv_buf) > 0) - { - LOG_I("[SCTP] Received new data of size %d", recv_buf.len); - x2ap_handle_sctp_data(client_fd, recv_buf); - } - - //Send again, expect X2 SETUP FAILURE - sctp_send_data(client_fd, data); - LOG_I("[SCTP] Sent X2 SETUP REQUEST"); - - if(sctp_receive_data(client_fd, recv_buf) > 0) - { - LOG_I("[SCTP] Received new data of size %d", recv_buf.len); - x2ap_handle_sctp_data(client_fd, recv_buf); - } - -} - -void test_ENDCX2Setup(int &client_fd) -{ - //Create ENDCX2SetupRequest message - x2ap_pdu_t* pdu = new_x2ap_pdu(); - eNB_config cfg; - - x2ap_create_ENDCX2SetupRequest(pdu, cfg); - x2ap_print_pdu(pdu); - - //Encode into buffer - sctp_buffer_t data; - x2ap_encode_pdu(pdu, data.buffer, sizeof(data.buffer), data.len); - - //Send to sctp - sctp_send_data(client_fd, data); - LOG_I("[SCTP] Sent ENDC X2 SETUP REQUEST"); - - //expect ENDC X2 SETUP RESPONSE - sctp_buffer_t recv_buf; - if(sctp_receive_data(client_fd, recv_buf) > 0) - { - LOG_I("[SCTP] Received new data of size %d", recv_buf.len); - x2ap_handle_sctp_data(client_fd, recv_buf); - } - - //Send again, expect ENDC X2 SETUP FAILURE - sctp_send_data(client_fd, data); - LOG_I("[SCTP] Sent ENDC X2 SETUP REQUEST"); - - if(sctp_receive_data(client_fd, recv_buf) > 0) - { - LOG_I("[SCTP] Received new data of size %d", recv_buf.len); - x2ap_handle_sctp_data(client_fd, recv_buf); - } - -} - -int main(int argc, char* argv[]){ - - LOG_I("X2 Termination Test"); - - options_t ops = read_input_options(argc, argv); - - int client_fd = sctp_start_client(ops.server_ip, ops.server_port); - - test_X2Setup(client_fd); - // test_ENDCX2Setup(client_fd); - - - return 0; -} diff --git a/e2sim/previous/e2apv1sim/e2sim/test/rmr_interface/README b/e2sim/previous/e2apv1sim/e2sim/test/rmr_interface/README deleted file mode 100644 index 9e5a197..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/test/rmr_interface/README +++ /dev/null @@ -1,13 +0,0 @@ -This is just a basic version of the README that the author of the E2 simulator can augment as he/she sees fit. - -Building rmr - -- Call the rmr_install.sh - - -# Running the sender and receiver - -- Create a route generate (.rt) file that is common to both the sender and receiver and place it in $HOME/global_rmr_files/global_rmr_routes.rt -- Build the receiver in the /tests/pendulum_xapp folder by invoking build_recvr.sh. Run it using bash run_receiver -- Build the sender in the /tests/sender folder by invoking build_sender.sh. Run it using bash run_sender. -- You can see packets being exchanged. diff --git a/e2sim/previous/e2apv1sim/e2sim/test/rmr_interface/rmr_install.sh b/e2sim/previous/e2apv1sim/e2sim/test/rmr_interface/rmr_install.sh deleted file mode 100644 index 786a07e..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/test/rmr_interface/rmr_install.sh +++ /dev/null @@ -1,28 +0,0 @@ -#!/bin/bash -eu -# -# -# Copyright 2019 AT&T Intellectual Property -# Copyright 2019 Nokia -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - - -#git clone https://gerrit.oran-osc.org/r/ric-plt/lib/rmr && (cd rmr && curl -kLo `git rev-parse --git-dir`/hooks/commit-msg https://gerrit.oran-osc.org/r/tools/hooks/commit-msg; chmod +x `git rev-parse --git-dir`/hooks/commit-msg && git checkout 6735f136906ce2 ) - -cd rmr/ -mkdir $HOME/usr -mkdir .build -cd .build -cmake .. -DCMAKE_INSTALL_PREFIX=$HOME/usr -make install diff --git a/e2sim/previous/e2apv1sim/e2sim/test/rmr_interface/tests/receiver/build_and_run_recvr.sh b/e2sim/previous/e2apv1sim/e2sim/test/rmr_interface/tests/receiver/build_and_run_recvr.sh deleted file mode 100755 index 602046f..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/test/rmr_interface/tests/receiver/build_and_run_recvr.sh +++ /dev/null @@ -1,30 +0,0 @@ -#!/bin/bash -eu -# -# -# Copyright 2019 AT&T Intellectual Property -# Copyright 2019 Nokia -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -export C_INCLUDE_PATH=$HOME/usr/include -export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/usr/lib -export RMR_SEED_RT=$HOME/global_rmr_files/global_rmr_routes.rt -gcc rmr_rcvr.c -g -o rmr_rcvr -L $HOME/usr/lib -lrmr_nng -lnng -lpthread -lm - -export PENDULUM_XAPP_RMR_RCV_PORT=5560 -export DEMO_SENDER_PTO=1 # poll timeout listening for replies - -export PRINT_FREQ=10000 #frequency at which test stats will be printed - -RMR_RCV_ACK=1 ./rmr_rcvr $PRINT_FREQ; # receiver that will ack every sender message diff --git a/e2sim/previous/e2apv1sim/e2sim/test/rmr_interface/tests/receiver/rmr_rcvr.c b/e2sim/previous/e2apv1sim/e2sim/test/rmr_interface/tests/receiver/rmr_rcvr.c deleted file mode 100644 index 2d8e7fd..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/test/rmr_interface/tests/receiver/rmr_rcvr.c +++ /dev/null @@ -1,163 +0,0 @@ -/* - * - * Copyright 2019 AT&T Intellectual Property - * Copyright 2019 Nokia - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -// :vim ts=4 sw=4 noet: -/* - Mnemonic: rmr_rcvr2.c - Abstract: Very simple test listener built on RMr libraries. It does nothing - but return the message it recevied back to the sender. - - Define these environment variables to have some control: - RMR_SEED_RT -- path to the static routing table - RMR_RTG_SVC -- host:port of the route table generator - - One command line parm is accepted: stats frequency. This is a number, n, - which causes stats to be generated after every n messages. If set to 0 - each message is written when received and no stats (msg rate) is generated. - - Date: 11 February 2018 - Author: E. Scott Daniels - - Mods: 18 Mar 2019 -- simplified for demo base. -*/ - -#include -#include -#include -#include -#include - -#include - -typedef struct { - int32_t mtype; // message type ("long" network integer) - int32_t plen; // payload length - unsigned char xid[RMR_MAX_XID]; // space for user transaction id or somesuch - unsigned char sid[RMR_MAX_SID]; // sender ID for return to sender needs - unsigned char src[RMR_MAX_SRC]; // name of the sender (source) - struct timespec ts; // timestamp ??? -} mhdr_t; - - -int main( int argc, char** argv ) { - void* mrc; // msg router context - rmr_mbuf_t* msg = NULL; // message received - int i; - char* listen_port; - char* tok; - int must_ack = 1; // flag -- if set we rts all messages - mhdr_t* hdr; - int last_seq = 0; // sequence number from last message - int this_seq; // sequence number on this message - int count = 0; // count of msg since last status - long long tcount = 0; // total count of messages - time_t ts; - time_t lts; - int stat_freq = 20000; // write stats after reciving this many messages - int first_seq = -1; // first sequence number we got to report total received - int max_rt = 1000; // max times we'll retry an ack - - if( (tok = getenv( "RMR_RCV_ACK" )) != NULL ) { - must_ack = atoi( tok ); - } - - if( (listen_port = getenv( "PENDULUM_XAPP_RMR_RCV_PORT" )) == NULL ) { - listen_port = "4560"; - } - - if( argc > 1 ) { - stat_freq = atoi( argv[1] ); - } - fprintf( stderr, " stats will be reported every %d messages\n", stat_freq ); - - mrc = rmr_init( listen_port, RMR_MAX_RCV_BYTES, RMRFL_NONE ); // start your engines! - if( mrc == NULL ) { - fprintf( stderr, " ABORT: unable to initialise RMr\n" ); - exit( 1 ); - } - - while( ! rmr_ready( mrc ) ) { - fprintf( stderr, " waiting for RMr to show ready\n" ); - sleep( 1 ); - } - fprintf( stderr, " RMr now shows ready\n" ); - - lts = time( NULL ); - fprintf( stderr, " listening on %s acking %s\n", listen_port, must_ack != 0 ? "on" : "off" ); - - //rmr_set_stimeout( mrc, 50 ); - while( 1 ) { - sleep (2 ); - msg = rmr_rcv_msg( mrc, msg ); // block until one arrives - if( msg == NULL ) { - continue; // shouldn't happen, but don't crash if we get nothing - } - if( msg->mtype < 0 || msg->state != RMR_OK ) { - fprintf( stderr, "[WRN] bad msg: state=%d errno=%d\n", msg->state, errno ); - continue; // just loop to receive another - } - - if( stat_freq == 0 ) { // mechanism to dump all received messages for quick testing - fprintf( stdout, " msg received: type = %d len = %d (%s)\n", msg->mtype, msg->len, msg->payload ); // assume a nil term string in payload - } - - count++; // messages received for stats output - tcount++; - - //if( stat_freq >= 1000 ) { - if(1) { - //if( (count % stat_freq) == 0 ) { - if(1) { - ts = time( NULL ); - if( ts - lts ) { - - fprintf( stderr, " %7lld received %5lld msg/s over the last %3lld seconds mrt=%d, with content=%s\n", - (long long) last_seq - first_seq, (long long) (count / (ts-lts)), (long long) ts-lts, max_rt,msg->payload ); - lts = ts; - count = 0; - } - } - } - - if( must_ack ) { // send back a response - //fprintf( stdout, " msg: type = %d len = %d; acking\n", msg->mtype, msg->len ); - //msg->len = snprintf( msg->payload, 1024, "bar %lld", tcount ); // ack with bar and counter - msg->len = snprintf( msg->payload, 1024, "Reply hello back to Arduino!\n"); - // msg->len = snprintf( msg->payload, 1024, "OK\n"); - - - //msg->mtype = 999; //only to be used if rts is not possible - - //msg = rmr_send_msg (mrc, msg); //only to be used if rts is not possible - - msg = rmr_rts_msg( mrc, msg ); // this is a retur to sender; preferred - //if( (msg = rmr_send_msg( mrc, msg )) != NULL ) { // this is a routed send; not preferred, but possible - if( (msg = rmr_rts_msg( mrc, msg )) != NULL ) { - //----- checking too many times here has been problematic and causes what appears to be race condidtions in NNG threads; for now max_rt should be small - max_rt = 2; - while( max_rt > 0 && msg->state != RMR_OK && errno == EAGAIN ) { // NNG likes to refuse sends, just keep trying on eagain - max_rt--; - rmr_rts_msg( mrc, msg ); - //rmr_send_msg (mrc, msg); - } - } - } - - } -} diff --git a/e2sim/previous/e2apv1sim/e2sim/test/rmr_interface/tests/sender/build_and_run_sender.sh b/e2sim/previous/e2apv1sim/e2sim/test/rmr_interface/tests/sender/build_and_run_sender.sh deleted file mode 100755 index c4eb8fc..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/test/rmr_interface/tests/sender/build_and_run_sender.sh +++ /dev/null @@ -1,29 +0,0 @@ -#!/bin/bash -eu -# -# -# Copyright 2019 AT&T Intellectual Property -# Copyright 2019 Nokia -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -export C_INCLUDE_PATH=$HOME/usr/include -export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/usr/lib -export RMR_SEED_RT=$HOME/global_rmr_files/global_rmr_routes.rt -gcc rmr_sender.c -g -o rmr_sender -L $HOME/usr/lib -lrmr_nng -lnng -lpthread -lm - -export DUMMY_SENDER_RMR_RCV_PORT=38086 -export DEMO_SENDER_PTO=1 # poll timeout listening for replies -export DEMO_MAX_PAYLOAD_BYTES=240 # max_size of payload - -./rmr_sender; diff --git a/e2sim/previous/e2apv1sim/e2sim/test/rmr_interface/tests/sender/rmr_sender.c b/e2sim/previous/e2apv1sim/e2sim/test/rmr_interface/tests/sender/rmr_sender.c deleted file mode 100644 index 724b0d1..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/test/rmr_interface/tests/sender/rmr_sender.c +++ /dev/null @@ -1,96 +0,0 @@ -/* - * - * Copyright 2019 AT&T Intellectual Property - * Copyright 2019 Nokia - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - - -// :vim ts=4 sw=4 noet: - -/* - Mnemonic: rmr_sender2.c - Abstract: Very simple test sender that polls and deals with responses - in between sends (from a single process). - - Date: 18 February 2018 - Author: E. Scott Daniels - - Modified: 18 Mar 2019 - changes to support demo -*/ - -#include -#include -#include -#include -#include -#include -#include -#include -#include "rmr_wrapper.h" - - -void usage( char* argv0 ) { - fprintf( stderr, "usage: %s [mtype-max]\n", argv0 ); - fprintf( stderr, "Sender will send messages with rotating msg types from 0 through mtype-max (if supplied)\n" ); - fprintf( stderr, "if not supplied, only mtype 0 is sent\n" ); - fprintf( stderr, "The default listen port for return messages is 43086; this can be changed by setting DUMMY_SENDER_RMR_RCV_PORT in the environment.\n" ); - fprintf( stderr, "The sender will send forever unless DEMO_SENDER_MAX is set in the environment which causes termination after max messages.\n" ); - fprintf( stderr, "The sender will poll for received messages after each send. The amount of time waited is controlled with DEMO_SENDER_PTO (ms) in the env. Use 0 for non-blocking poll.\n" ); -} - -int main( int argc, char** argv ) { - struct rmr_context *rmr_c; //obtain our enhanced rmr_context - int mtype = 0; // we can loop through several message types - long count = 0; - char* lport = "43086"; // default listen port - long rcount = 0; // number of acks received - - if( (eparm = getenv( "DUMMY_SENDER_RMR_RCV_PORT" )) != NULL ) { - lport = strdup( eparm ); - } - - rmr_c = rmr_init_wrapper(lport); - - while( ! rmr_ready( rmr_c->mrc ) ) { - fprintf( stderr, " waiting for RMr to indicate ready\n" ); - sleep( 1 ); - } - fprintf( stderr, "[OK] initialisation complete\n" ); - - while( 1 ) { - usleep( 10 ); // simulate some work being done - char* message = "foo 111"; - - if(rmr_send_wrapper (rmr_c, mtype, message ) == 1) { - //message successfully received in the receive buffer - char reply[1024]; - strcpy(reply,rmr_c->rbuf->payload); - fprintf( stderr, "Acknowledgment received with content:%s\n",rmr_c->rbuf->payload); - rcount++; - } - count++; - - if( (count % 5000) == 0 ) { - fprintf( stdout, "[INFO] total sent: %ld total received: %ld drops=%ld\n", count, rcount, count - rcount ); - } - - } - - fprintf( stderr, "[INFO] sender is terminating having sent %ld messages\n", count ); - rmr_close_wrapper(rmr_c); - - return 0; -} diff --git a/e2sim/previous/e2apv1sim/e2sim/test/rmr_interface/tests/sender/rmr_wrapper.h b/e2sim/previous/e2apv1sim/e2sim/test/rmr_interface/tests/sender/rmr_wrapper.h deleted file mode 100644 index 446d20d..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/test/rmr_interface/tests/sender/rmr_wrapper.h +++ /dev/null @@ -1,142 +0,0 @@ -/* - * - * Copyright 2019 AT&T Intellectual Property - * Copyright 2019 Nokia - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -int epoll_to = 1;// global default epoll timout -- 1ms -char* eparm; // generic env pointer - -struct rmr_context { - void* mrc; - int rcv_fd; // pollable fd - struct epoll_event epe; // event definition for event to listen to - struct epoll_event events[10]; // wait on 10 possible events - int ep_fd; - int max_payload_size; // ++SCOTT - rmr_mbuf_t* sbuf; // send buffer - rmr_mbuf_t* rbuf; // received buffer -}; - - -struct rmr_context * rmr_init_wrapper(char* lport){ - - struct rmr_context *rmr_c = malloc(sizeof (struct rmr_context)); - fprintf( stderr, "[INFO] glistening for replies on %s\n", lport ); - - - rmr_c->mrc = rmr_init(lport, RMR_MAX_RCV_BYTES, RMRFL_NONE ); // setup RMr and get a context (rmr_c.mrc) - rmr_c->ep_fd=-1; - - //polling related initializations - rmr_c->rcv_fd = rmr_get_rcvfd( rmr_c->mrc );// get the fd to poll for messages received - if( rmr_c->rcv_fd < 0 ) { - fprintf( stderr, "[FAIL] unable to set up polling fd\n" ); - exit( 1 ); - } - - if( (rmr_c->ep_fd = epoll_create1( 0 )) < 0 ) { - fprintf( stderr, "[FAIL] unable to create epoll fd: %d\n", errno ); - exit( 1 ); - } - rmr_c->epe.events = EPOLLIN; - rmr_c->epe.data.fd = rmr_c->rcv_fd; - - if( epoll_ctl( rmr_c->ep_fd, EPOLL_CTL_ADD, rmr_c->rcv_fd, &rmr_c->epe ) != 0 ) { - fprintf( stderr, "[FAIL] epoll_ctl status not 0 : %s\n", strerror( errno ) ); - exit( 1 ); - } - //end of polling related initializations - - //++SCOTT------ next lines until !!SCOTT - rmr_c->max_payload_size = 240; //default - if( (eparm = getenv( "DEMO_MAX_PAYLOAD_BYTES" )) != NULL ) { - rmr_c->max_payload_size = atoi(eparm); // override with env - } - //!!SCOTT - - //~~SCOTT next line - rmr_c->sbuf = rmr_alloc_msg( rmr_c->mrc, rmr_c->max_payload_size ); // allocate largest payload to send - rmr_c->rbuf = NULL; - - return rmr_c; -} - -void rmr_send_wrapper (struct rmr_context *rmr_c, int mtype, char* message) { - //--SCOTT int max_payload_size = 240; //default - //--SCOTT if( (eparm = getenv( "DEMO_MAX_PAYLOAD_BYTES" )) != NULL ) { - //--SCOTT max_payload_size = atoi(eparm); - //--SCOTT } - - //~~SCOTT next line - snprintf( rmr_c->sbuf->payload, rmr_c->max_payload_size, "%s", message); // simple send message -- replace with real content - - rmr_c->sbuf->mtype = mtype; // fill in message meta data - rmr_c->sbuf->len = strlen( rmr_c->sbuf->payload ) + 1; // actual length of payload (count the nil end of string) - rmr_c->sbuf->state = 0; - - //retry send for a few times before giving up - long natter = 0; // natter on for errors only once in a while - if( (rmr_c->sbuf = rmr_send_msg( rmr_c->mrc, rmr_c->sbuf )) != NULL ) {// unlikely, but might get a null pointer back if NNG really is buggered - if( rmr_c->sbuf->state != RMR_OK ) { - if( errno == EAGAIN ) { - while( rmr_c->sbuf->state != RMR_OK && errno == EAGAIN ) {// NNG likes to refuse sends, just keep trying on eagain - rmr_send_msg( rmr_c->mrc, rmr_c->sbuf ); - } - } else {// most likely connection refused, don't natter on - if( time( NULL ) > natter ) { - fprintf( stderr, "[WARN] send failed, pausing (%s)\n", strerror( errno ) ); - natter = time( NULL ) + 2; - } - sleep( 1 ); - } - } - } else { - if( time( NULL ) > natter ) { - fprintf( stderr, "[WARN] send failed, pausing (%s)\n", strerror( errno ) ); - natter = time( NULL ) + 2; - } - sleep( 1 ); - } - -} - -int rmr_poll_for_message(struct rmr_context *rmr_c){ - int nready; - int i; - int return_type =0; - //start polling the channel to read the acknowledgment - //~~SCOTT next line - - nready = epoll_wait( rmr_c->ep_fd, rmr_c->events, 10, epoll_to ); // wait up to epoll_to ms for a response - for( i = 0; i < nready && i < 10; i++ ) { // loop through to find what is ready - if( rmr_c->events[i].data.fd == rmr_c->rcv_fd ) { // RMr has something - errno = 0; - rmr_c->rbuf = rmr_rcv_msg( rmr_c->mrc, rmr_c->rbuf ); // something ready; this should not block - if( rmr_c->rbuf ) { - // fprintf( stderr, " acknowledgment received:%s\n",rmr_c->rbuf->payload); - return_type = 1; //the message has been acknowledged - } - } - } - return return_type; -} - -void rmr_close_wrapper (struct rmr_context *rmr_c){ - - rmr_close( rmr_c->mrc ); - free(rmr_c); -} diff --git a/e2sim/previous/e2apv1sim/e2sim/tools/asn_defs/generate_e2ap_e2sm_codes b/e2sim/previous/e2apv1sim/e2sim/tools/asn_defs/generate_e2ap_e2sm_codes deleted file mode 100755 index 87ced95..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/tools/asn_defs/generate_e2ap_e2sm_codes +++ /dev/null @@ -1,39 +0,0 @@ -#!/bin/bash -#/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -#******************************************************************************/ - -E2AP_asn="e2ap-v031.asn" -E2SM_asn="e2sm-gNB-X2-release-1-v041.asn" -X2AP_asn="x2ap-no-desc-15-04.asn" - -GEN_DIR=../../src/ASN1c/ - -rm -f $GEN_DIR/*.c $GEN_DIR/*.h - -asn1c -pdu=all -fcompound-names -gen-PER -no-gen-OER -no-gen-example \ - -fno-include-deps -D $GEN_DIR $E2AP_asn $X2AP_asn \ - |& egrep -v "^Copied|^Compiled" | sort -u - -asn1c -pdu=all -fcompound-names -gen-PER -no-gen-OER -no-gen-example \ - -fno-include-deps -D $GEN_DIR $E2SM_asn $X2AP_asn \ - |& egrep -v "^Copied|^Compiled" | sort -u - -echo "ASN1 C codes generated at $GEN_DIR" - -# asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER /tmp/e2ap-v031.asn /tmp/x2ap-no-desc-15-04.asn diff --git a/e2sim/previous/e2apv1sim/e2sim/tools/build_helper.bash b/e2sim/previous/e2apv1sim/e2sim/tools/build_helper.bash deleted file mode 100644 index 1759621..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/tools/build_helper.bash +++ /dev/null @@ -1,93 +0,0 @@ -#/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -#******************************************************************************/ - -####################################### -# Helper Func -###################################### - -black='\E[30m' -red='\E[31m' -green='\E[32m' -yellow='\E[33m' -blue='\E[34m' -magenta='\E[35m' -cyan='\E[36m' -white='\E[37m' -reset_color='\E[00m' - -cecho() # Color-echo. arg1 = message, arg2 = color -{ - local default_msg="No Message." - message=${1:-$default_msg} - color=${2:-$green} - echo -e -n "$color$message$reset_color" - echo - return -} - -echo_error() { - local my_string="" - until [ -z "$1" ] - do - my_string="$my_string$1" - shift - done - cecho "$my_string" $red -} - -echo_fatal() { - local my_string="" - until [ -z "$1" ] - do - my_string="$my_string$1" - shift - done - echo_error "$my_string" - exit -1 -} - -echo_warning() { - local my_string="" - until [ -z "$1" ] - do - my_string="$my_string$1" - shift - done - cecho "$my_string" $yellow -} - -echo_success() { - local my_string="" - until [ -z "$1" ] - do - my_string="$my_string$1" - shift - done - cecho "$my_string" $green -} - -echo_info() { - local my_string="" - until [ -z "$1" ] - do - my_string="$my_string$1" - shift - done - cecho "$my_string" $blue -} diff --git a/e2sim/previous/e2apv1sim/e2sim/tools/install_asn1c b/e2sim/previous/e2apv1sim/e2sim/tools/install_asn1c deleted file mode 100755 index 7d1391f..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/tools/install_asn1c +++ /dev/null @@ -1,31 +0,0 @@ -#!/bin/bash -#/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -#******************************************************************************/ - -echo "Will install asn1c" -sudo rm -rf asn1c -git clone https://gerrit.o-ran-sc.org/r/com/asn1c.git -cd asn1c/ -autoreconf -iv -./configure -cd examples -chmod u+x crfc2asn1.pl -cd .. -make -sudo make install diff --git a/e2sim/previous/e2apv1sim/e2sim/tools/install_dependencies b/e2sim/previous/e2apv1sim/e2sim/tools/install_dependencies deleted file mode 100755 index c5b3d7b..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/tools/install_dependencies +++ /dev/null @@ -1,38 +0,0 @@ -#!/bin/bash -#/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -#******************************************************************************/ - -sudo apt-get update \ - && sudo apt-get install -y \ - build-essential \ - git \ - cmake \ - libsctp-dev \ - lksctp-tools \ - autoconf \ - automake \ - libtool \ - bison \ - flex \ - libboost-all-dev \ - iputils-ping \ - net-tools \ - nano \ - vim \ - && sudo apt-get clean diff --git a/e2sim/previous/e2apv1sim/e2sim/ueMeasReport.txt b/e2sim/previous/e2apv1sim/e2sim/ueMeasReport.txt deleted file mode 100644 index 32bf4d4..0000000 --- a/e2sim/previous/e2apv1sim/e2sim/ueMeasReport.txt +++ /dev/null @@ -1,65 +0,0 @@ -{ - "ueMeasReport": { - "du-id": 1000, - "ueMeasReportList": [ - { - "measTimeStampRf": "2020-04-09 14:33:33,559", - "nrCellIdentity": 0, - "servingCellRfReport": { - "rsrp": 10, - "rsrq": 0, - "rssinr": 0 - }, - "neighbourCellList": [ - { - "nbCellIdentity": 1, - "nbCellRfReport": { - "rsrp": 10, - "rsrq": 0, - "rssinr": 0 - } - }, - { - "nbCellIdentity": 2, - "nbCellRfReport": { - "rsrp": 10, - "rsrq": 0, - "rssinr": 0 - } - } - ] - - }, - - { - "measTimeStampRf": "2020-04-09 14:33:33,559", - "nrCellIdentity": 1, - "servingCellRfReport": { - "rsrp": 10, - "rsrq": 0, - "rssinr": 0 - }, - "neighbourCellList": [ - { - "nbCellIdentity": 0, - "nbCellRfReport": { - "rsrp": 10, - "rsrq": 0, - "rssinr": 0 - } - }, - { - "nbCellIdentity": 2, - "nbCellRfReport": { - "rsrp": 10, - "rsrq": 0, - "rssinr": 0 - } - } - ] - - } - ] - } -} - diff --git a/e2sim/previous/e2apv1sim/encode_e2apv1.cpp b/e2sim/previous/e2apv1sim/encode_e2apv1.cpp deleted file mode 100644 index 7484a45..0000000 --- a/e2sim/previous/e2apv1sim/encode_e2apv1.cpp +++ /dev/null @@ -1,950 +0,0 @@ -#include -#include -#include -#include - -#include -#include - - -#include "encode_e2apv1.hpp" - -extern "C" { -#include "E2SM-KPM-RANfunction-Description.h" - -#include "e2ap_asn1c_codec.h" -#include "GlobalE2node-ID.h" -#include "GlobalE2node-gNB-ID.h" -#include "GlobalgNB-ID.h" -#include "OCTET_STRING.h" -#include "asn_application.h" -#include "GNB-ID-Choice.h" -#include "ProtocolIE-Field.h" -#include "E2setupRequest.h" -#include "RICaction-ToBeSetup-Item.h" -#include "RICactions-ToBeSetup-List.h" -#include "RICeventTriggerDefinition.h" -#include "RICsubscriptionRequest.h" -#include "RICsubscriptionResponse.h" -#include "ProtocolIE-SingleContainer.h" -#include "RANfunctions-List.h" -#include "RICindication.h" -#include "RICsubsequentActionType.h" -#include "RICsubsequentAction.h" -#include "RICtimeToWait.h" - -} - -void generate_e2apv1_setup_request(E2AP_PDU_t *e2ap_pdu) { - - // uint8_t *buf = (uint8_t *)"gnb1" - - BIT_STRING_t *gnb_bstring = (BIT_STRING_t*)calloc(1, sizeof(BIT_STRING_t));; - gnb_bstring->buf = (uint8_t*)calloc(1,4); - gnb_bstring->size = 4; - gnb_bstring->buf[0] = 0xB5; - gnb_bstring->buf[1] = 0xC6; - gnb_bstring->buf[2] = 0x77; - gnb_bstring->buf[3] = 0x88; - - gnb_bstring->bits_unused = 3; - - uint8_t *buf2 = (uint8_t *)"747"; - OCTET_STRING_t *plmn = (OCTET_STRING_t*)calloc(1, sizeof(OCTET_STRING_t)); - plmn->buf = (uint8_t*)calloc(1,3); - memcpy(plmn->buf, buf2, 3); - plmn->size = 3; - - GNB_ID_Choice_t *gnbchoice = (GNB_ID_Choice_t*)calloc(1,sizeof(GNB_ID_Choice_t)); - GNB_ID_Choice_PR pres2 = GNB_ID_Choice_PR_gnb_ID; - gnbchoice->present = pres2; - gnbchoice->choice.gnb_ID = *gnb_bstring; - - GlobalgNB_ID_t *gnb = (GlobalgNB_ID_t*)calloc(1, sizeof(GlobalgNB_ID_t)); - gnb->plmn_id = *plmn; - gnb->gnb_id = *gnbchoice; - - GlobalE2node_gNB_ID_t *e2gnb = (GlobalE2node_gNB_ID_t*)calloc(1, sizeof(GlobalE2node_gNB_ID_t)); - e2gnb->global_gNB_ID = *gnb; - - GlobalE2node_ID_t *globale2nodeid = (GlobalE2node_ID_t*)calloc(1, sizeof(GlobalE2node_ID_t)); - GlobalE2node_ID_PR pres; - pres = GlobalE2node_ID_PR_gNB; - globale2nodeid->present = pres; - globale2nodeid->choice.gNB = e2gnb; - - E2setupRequestIEs_t *e2setuprid = (E2setupRequestIEs_t*)calloc(1, sizeof(E2setupRequestIEs_t)); - E2setupRequestIEs__value_PR pres3; - pres3 = E2setupRequestIEs__value_PR_GlobalE2node_ID; - e2setuprid->id = 3; - e2setuprid->criticality = 0; - e2setuprid->value.choice.GlobalE2node_ID = *globale2nodeid; - e2setuprid->value.present = pres3; - - - auto *ranFlistIEs = (E2setupRequestIEs_t *)calloc(1, sizeof(E2setupRequestIEs_t)); - ASN_STRUCT_RESET(asn_DEF_E2setupRequestIEs, ranFlistIEs); - ranFlistIEs->criticality = 0; - ranFlistIEs->id = ProtocolIE_ID_id_RANfunctionsAdded; - ranFlistIEs->value.present = E2setupRequestIEs__value_PR_RANfunctions_List; - - auto *itemIes = (RANfunction_ItemIEs_t *)calloc(1, sizeof(RANfunction_ItemIEs_t)); - itemIes->id = ProtocolIE_ID_id_RANfunction_Item; - itemIes->criticality = Criticality_reject; - itemIes->value.present = RANfunction_ItemIEs__value_PR_RANfunction_Item; - itemIes->value.choice.RANfunction_Item.ranFunctionID = 1; - - E2SM_KPM_RANfunction_Description_t *ranfunc_desc = - (E2SM_KPM_RANfunction_Description_t*)calloc(1,sizeof(E2SM_KPM_RANfunction_Description_t)); - encode_kpm_function_description(ranfunc_desc); - - uint8_t e2smbuffer[8192]; - size_t e2smbuffer_size = 8192; - - asn_codec_ctx_t *opt_cod; - - asn_enc_rval_t er = - asn_encode_to_buffer(opt_cod, - ATS_ALIGNED_BASIC_PER, - &asn_DEF_E2SM_KPM_RANfunction_Description, - ranfunc_desc, e2smbuffer, e2smbuffer_size); - - fprintf(stderr, "er encded is %d\n", er.encoded); - fprintf(stderr, "after encoding message\n"); - - OCTET_STRING_t *ranfuncdesc_str = (OCTET_STRING_t*)calloc(1,sizeof(OCTET_STRING_t)); - ranfuncdesc_str->buf = (uint8_t*)calloc(1,er.encoded); - ranfuncdesc_str->size = er.encoded; - memcpy(ranfuncdesc_str->buf, e2smbuffer, er.encoded); - - - itemIes->value.choice.RANfunction_Item.ranFunctionDefinition = *ranfuncdesc_str; - itemIes->value.choice.RANfunction_Item.ranFunctionRevision = (long)2; - - ASN_SEQUENCE_ADD(&ranFlistIEs->value.choice.RANfunctions_List.list, itemIes); - - E2setupRequest_t *e2setupreq = (E2setupRequest_t*)calloc(1, sizeof(E2setupRequest_t)); - ASN_SEQUENCE_ADD(&e2setupreq->protocolIEs.list, e2setuprid); - ASN_SEQUENCE_ADD(&e2setupreq->protocolIEs.list, ranFlistIEs); - - InitiatingMessage__value_PR pres4; - pres4 = InitiatingMessage__value_PR_E2setupRequest; - InitiatingMessage_t *initmsg = (InitiatingMessage_t*)calloc(1, sizeof(InitiatingMessage_t)); - - initmsg->procedureCode = ProcedureCode_id_E2setup; - initmsg->criticality = Criticality_reject; - initmsg->value.present = pres4; - initmsg->value.choice.E2setupRequest = *e2setupreq; - - E2AP_PDU_PR pres5; - pres5 = E2AP_PDU_PR_initiatingMessage; - - - e2ap_pdu->present = pres5; - e2ap_pdu->choice.initiatingMessage = initmsg; - -} - - -void generate_e2apv1_setup_response(E2AP_PDU_t *e2ap_pdu) { - - E2setupResponseIEs *resp_ies1 = (E2setupResponseIEs_t*)calloc(1, sizeof(E2setupResponseIEs_t)); - E2setupResponseIEs *resp_ies2 = (E2setupResponseIEs_t*)calloc(1, sizeof(E2setupResponseIEs_t)); - E2setupResponseIEs *resp_ies3 = (E2setupResponseIEs_t*)calloc(1, sizeof(E2setupResponseIEs_t)); - - uint8_t *buf = (uint8_t *)"gnb1"; - - BIT_STRING_t *ricid_bstring = (BIT_STRING_t*)calloc(1,sizeof(BIT_STRING_t)); - ricid_bstring->buf = buf; - ricid_bstring->size = 4; - ricid_bstring->bits_unused = 0; - - uint8_t *buf2 = (uint8_t *)"plmn3"; - OCTET_STRING_t *plmn = (OCTET_STRING_t*)calloc(1,sizeof(OCTET_STRING_t)); - plmn->buf = buf2; - plmn->size = 5; - - GlobalRIC_ID_t *globalricid = (GlobalRIC_ID_t*)calloc(1,sizeof(GlobalRIC_ID_t)); - globalricid->pLMN_Identity = *plmn; - globalricid->ric_ID = *ricid_bstring; - - E2setupResponseIEs__value_PR pres1; - pres1 = E2setupResponseIEs__value_PR_GlobalRIC_ID; - - resp_ies1->id = ProtocolIE_ID_id_GlobalRIC_ID; - resp_ies1->criticality = 0; - resp_ies1->value.present = pres1; - resp_ies1->value.choice.GlobalRIC_ID = *globalricid; - - E2setupResponse_t *e2setupresp = (E2setupResponse_t*)calloc(1,sizeof(E2setupResponse_t)); - int ret = ASN_SEQUENCE_ADD(&e2setupresp->protocolIEs.list, resp_ies1); - - - SuccessfulOutcome__value_PR pres; - pres = SuccessfulOutcome__value_PR_E2setupResponse; - SuccessfulOutcome_t *successoutcome = (SuccessfulOutcome_t*)calloc(1, sizeof(SuccessfulOutcome_t)); - successoutcome->procedureCode = 1; - successoutcome->criticality = 0; - successoutcome->value.present = pres; - successoutcome->value.choice.E2setupResponse = *e2setupresp; - - E2AP_PDU_PR pres5 = E2AP_PDU_PR_successfulOutcome; - - e2ap_pdu->present = pres5; - e2ap_pdu->choice.successfulOutcome = successoutcome; - -} - - -void generate_e2apv1_subscription_request(E2AP_PDU *e2ap_pdu) { - - fprintf(stderr, "in sub 1\n"); - RICsubscriptionRequest_IEs_t *ricreqid = (RICsubscriptionRequest_IEs_t*)calloc(1, sizeof(RICsubscriptionRequest_IEs_t)); - fprintf(stderr, "in sub 2\n"); - ASN_STRUCT_RESET(asn_DEF_RICsubscriptionRequest_IEs, ricreqid); - fprintf(stderr, "in sub 3\n"); - auto *ricsubrid = (RICsubscriptionRequest_IEs_t*)calloc(1, sizeof(RICsubscriptionRequest_IEs_t)); - fprintf(stderr, "in sub 4\n"); - ASN_STRUCT_RESET(asn_DEF_RICsubscriptionRequest_IEs, ricsubrid); - - fprintf(stderr, "in generate sub\n"); - uint8_t *buf2 = (uint8_t *)"SubscriptionTriggers"; - fprintf(stderr, "in gen sub 1\n"); - OCTET_STRING_t *triggerdef = (OCTET_STRING_t*)calloc(1, sizeof(OCTET_STRING_t)); - triggerdef->buf = (uint8_t *)calloc(1,20); - triggerdef->size = 20; - memcpy(triggerdef->buf, buf2, triggerdef->size); - - - fprintf(stderr, "sub1\n"); - ProtocolIE_ID_t proto_id= ProtocolIE_ID_id_RICaction_ToBeSetup_Item; - - RICaction_ToBeSetup_ItemIEs__value_PR pres6; - pres6 = RICaction_ToBeSetup_ItemIEs__value_PR_RICaction_ToBeSetup_Item; - - printf("sub2\n"); - - uint8_t *buf5 = (uint8_t *)"ActionDef"; - - OCTET_STRING_t *actdef = (OCTET_STRING_t*)calloc(1, sizeof(OCTET_STRING_t)); - actdef->buf = (uint8_t *)calloc(1,9); - actdef->size = 9; - memcpy(triggerdef->buf, buf5, 9); - - auto *sa = (RICsubsequentAction_t *) calloc(1, sizeof(RICsubsequentAction_t)); - ASN_STRUCT_RESET(asn_DEF_RICsubsequentAction, sa); - - sa->ricTimeToWait = RICtimeToWait_w500ms; - sa->ricSubsequentActionType = RICsubsequentActionType_continue; - - /* - RICaction_ToBeSetup_Item_t *action_item = (RICaction_ToBeSetup_Item_t*)calloc(1, sizeof(RICaction_ToBeSetup_Item_t)); - action_item->ricActionID = 5; - action_item->ricActionType = 9; - action_item->ricActionDefinition = actdef; - action_item->ricSubsequentAction = sa; - */ - printf("sub3\n"); - - RICaction_ToBeSetup_ItemIEs_t *action_item_ies = (RICaction_ToBeSetup_ItemIEs_t *)calloc(1, sizeof(RICaction_ToBeSetup_Item_t)); - action_item_ies->id = proto_id; - action_item_ies->criticality = 0; - - action_item_ies->value.present = pres6; - action_item_ies->value.choice.RICaction_ToBeSetup_Item.ricActionID = 5; - action_item_ies->value.choice.RICaction_ToBeSetup_Item.ricActionType = RICactionType_report; - action_item_ies->value.choice.RICaction_ToBeSetup_Item.ricActionDefinition = actdef; - action_item_ies->value.choice.RICaction_ToBeSetup_Item.ricSubsequentAction = sa; - - - printf("sub5\n"); - /* - RICsubscriptionDetails_t *ricsubdetails = (RICsubscriptionDetails_t*)calloc(1, sizeof(RICsubscriptionDetails_t)); - printf("sub5.5\n"); - - ASN_SEQUENCE_ADD(&ricsubdetails->ricAction_ToBeSetup_List.list, action_item_ies); - ricsubdetails->ricEventTriggerDefinition = *triggerdef; - - printf("sub6\n"); - */ - - - RICsubscriptionRequest_IEs__value_PR pres3; - printf("sub6.1\n"); - pres3 = RICsubscriptionRequest_IEs__value_PR_RICsubscriptionDetails; - ricsubrid->id = ProtocolIE_ID_id_RICsubscriptionDetails; - printf("sub6.2\n"); - - ricsubrid->criticality = 0; - ricsubrid->value.present = pres3; - printf("sub6.3\n"); - - ricsubrid->value.choice.RICsubscriptionDetails.ricEventTriggerDefinition = *triggerdef; - printf("sub6.4\n"); - - ASN_SEQUENCE_ADD(&ricsubrid->value.choice.RICsubscriptionDetails.ricAction_ToBeSetup_List.list, action_item_ies); - - printf("sub7\n"); - - - ricreqid->id = ProtocolIE_ID_id_RICrequestID; - ricreqid->criticality = 0; - ricreqid->value.present = RICsubscriptionRequest_IEs__value_PR_RICrequestID; - ricreqid->value.choice.RICrequestID.ricRequestorID = 22; - ricreqid->value.choice.RICrequestID.ricInstanceID = 6; - - RICsubscriptionRequest_t *ricsubreq = (RICsubscriptionRequest_t*)calloc(1, sizeof(RICsubscriptionRequest_t)); - - ASN_SEQUENCE_ADD(&ricsubreq->protocolIEs.list,ricreqid); - ASN_SEQUENCE_ADD(&ricsubreq->protocolIEs.list,ricsubrid); - - - - InitiatingMessage__value_PR pres4; - pres4 = InitiatingMessage__value_PR_RICsubscriptionRequest; - InitiatingMessage_t *initmsg = (InitiatingMessage_t*)calloc(1, sizeof(InitiatingMessage_t)); - initmsg->procedureCode = ProcedureCode_id_RICsubscription; - initmsg->criticality = Criticality_reject; - initmsg->value.present = pres4; - initmsg->value.choice.RICsubscriptionRequest = *ricsubreq; - - E2AP_PDU_PR pres5; - pres5 = E2AP_PDU_PR_initiatingMessage; - - - e2ap_pdu->present = pres5; - e2ap_pdu->choice.initiatingMessage = initmsg; - - char *error_buf = (char*)calloc(300, sizeof(char));; - size_t errlen; - - asn_check_constraints(&asn_DEF_E2AP_PDU, e2ap_pdu, error_buf, &errlen); - printf("error length %d\n", errlen); - printf("error buf %s\n", error_buf); - - // xer_fprint(stderr, &asn_DEF_E2AP_PDU, e2ap_pdu); - -} - -void generate_e2apv1_subscription_response_success(E2AP_PDU *e2ap_pdu, long reqActionIdsAccepted[], - long reqActionIdsRejected[], int accept_size, int reject_size, - long reqRequestorId, long reqInstanceId) { - - RICsubscriptionResponse_IEs_t *respricreqid = - (RICsubscriptionResponse_IEs_t*)calloc(1, sizeof(RICsubscriptionResponse_IEs_t)); - - respricreqid->id = ProtocolIE_ID_id_RICrequestID; - respricreqid->criticality = 0; - respricreqid->value.present = RICsubscriptionResponse_IEs__value_PR_RICrequestID; - respricreqid->value.choice.RICrequestID.ricRequestorID = reqRequestorId; - - respricreqid->value.choice.RICrequestID.ricInstanceID = reqInstanceId; - - - RICsubscriptionResponse_IEs_t *ricactionadmitted = - (RICsubscriptionResponse_IEs_t*)calloc(1, sizeof(RICsubscriptionResponse_IEs_t)); - ricactionadmitted->id = ProtocolIE_ID_id_RICactions_Admitted; - ricactionadmitted->criticality = 0; - ricactionadmitted->value.present = RICsubscriptionResponse_IEs__value_PR_RICaction_Admitted_List; - - RICaction_Admitted_List_t* admlist = - (RICaction_Admitted_List_t*)calloc(1,sizeof(RICaction_Admitted_List_t)); - ricactionadmitted->value.choice.RICaction_Admitted_List = *admlist; - - // int numAccept = sizeof(reqActionIdsAccepted); - int numAccept = accept_size; - int numReject = reject_size; - // int numReject = sizeof(reqActionIdsRejected); - - - for (int i=0; i < numAccept ; i++) { - fprintf(stderr, "in for loop i = %d\n", i); - - long aid = reqActionIdsAccepted[i]; - - RICaction_Admitted_ItemIEs_t *admitie = (RICaction_Admitted_ItemIEs_t*)calloc(1,sizeof(RICaction_Admitted_ItemIEs_t)); - admitie->id = ProtocolIE_ID_id_RICaction_Admitted_Item; - admitie->criticality = 0; - admitie->value.present = RICaction_Admitted_ItemIEs__value_PR_RICaction_Admitted_Item; - admitie->value.choice.RICaction_Admitted_Item.ricActionID = aid; - - ASN_SEQUENCE_ADD(&ricactionadmitted->value.choice.RICaction_Admitted_List.list, admitie); - - } - - RICsubscriptionResponse_t *ricsubresp = (RICsubscriptionResponse_t*)calloc(1,sizeof(RICsubscriptionResponse_t)); - ASN_SEQUENCE_ADD(&ricsubresp->protocolIEs.list, respricreqid); - ASN_SEQUENCE_ADD(&ricsubresp->protocolIEs.list, ricactionadmitted); - - - if (numReject > 0) { - - RICsubscriptionResponse_IEs_t *ricactionrejected = - (RICsubscriptionResponse_IEs_t*)calloc(1, sizeof(RICsubscriptionResponse_IEs_t)); - ricactionrejected->id = ProtocolIE_ID_id_RICactions_NotAdmitted; - ricactionrejected->criticality = 0; - ricactionrejected->value.present = RICsubscriptionResponse_IEs__value_PR_RICaction_NotAdmitted_List; - - RICaction_NotAdmitted_List_t* rejectlist = - (RICaction_NotAdmitted_List_t*)calloc(1,sizeof(RICaction_NotAdmitted_List_t)); - ricactionadmitted->value.choice.RICaction_NotAdmitted_List = *rejectlist; - - for (int i=0; i < numReject; i++) { - fprintf(stderr, "in for loop i = %d\n", i); - - long aid = reqActionIdsRejected[i]; - - RICaction_NotAdmitted_ItemIEs_t *noadmitie = (RICaction_NotAdmitted_ItemIEs_t*)calloc(1,sizeof(RICaction_NotAdmitted_ItemIEs_t)); - noadmitie->id = ProtocolIE_ID_id_RICaction_NotAdmitted_Item; - noadmitie->criticality = 0; - noadmitie->value.present = RICaction_NotAdmitted_ItemIEs__value_PR_RICaction_NotAdmitted_Item; - noadmitie->value.choice.RICaction_NotAdmitted_Item.ricActionID = aid; - - ASN_SEQUENCE_ADD(&ricactionrejected->value.choice.RICaction_NotAdmitted_List.list, noadmitie); - ASN_SEQUENCE_ADD(&ricsubresp->protocolIEs.list, ricactionrejected); - } - } - - - SuccessfulOutcome__value_PR pres2; - pres2 = SuccessfulOutcome__value_PR_RICsubscriptionResponse; - SuccessfulOutcome_t *successoutcome = (SuccessfulOutcome_t*)calloc(1, sizeof(SuccessfulOutcome_t)); - successoutcome->procedureCode = ProcedureCode_id_RICsubscription; - successoutcome->criticality = 0; - successoutcome->value.present = pres2; - successoutcome->value.choice.RICsubscriptionResponse = *ricsubresp; - - E2AP_PDU_PR pres5 = E2AP_PDU_PR_successfulOutcome; - - e2ap_pdu->present = pres5; - e2ap_pdu->choice.successfulOutcome = successoutcome; - - char *error_buf = (char*)calloc(300, sizeof(char)); - size_t errlen; - - asn_check_constraints(&asn_DEF_E2AP_PDU, e2ap_pdu, error_buf, &errlen); - printf("error length %d\n", errlen); - printf("error buf %s\n", error_buf); - - -} - -void generate_e2apv1_subscription_response(E2AP_PDU *e2ap_pdu, E2AP_PDU *sub_req_pdu) { - - //Gather details of the request - - RICsubscriptionRequest_t orig_req = - sub_req_pdu->choice.initiatingMessage->value.choice.RICsubscriptionRequest; - - RICsubscriptionResponse_IEs_t *ricreqid = - (RICsubscriptionResponse_IEs_t*)calloc(1, sizeof(RICsubscriptionResponse_IEs_t)); - - int count = orig_req.protocolIEs.list.count; - int size = orig_req.protocolIEs.list.size; - - RICsubscriptionRequest_IEs_t **ies = (RICsubscriptionRequest_IEs_t**)orig_req.protocolIEs.list.array; - - fprintf(stderr, "count%d\n", count); - fprintf(stderr, "size%d\n", size); - - RICsubscriptionRequest_IEs__value_PR pres; - - long responseRequestorId; - long responseInstanceId; - long responseActionId; - - std::vector actionIds; - - for (int i=0; i < count; i++) { - RICsubscriptionRequest_IEs_t *next_ie = ies[i]; - pres = next_ie->value.present; - - fprintf(stderr, "next present value %d\n", pres); - - switch(pres) { - case RICsubscriptionRequest_IEs__value_PR_RICrequestID: - { - RICrequestID_t reqId = next_ie->value.choice.RICrequestID; - long requestorId = reqId.ricRequestorID; - long instanceId = reqId.ricInstanceID; - fprintf(stderr, "requestorId %d\n", requestorId); - fprintf(stderr, "instanceId %d\n", instanceId); - responseRequestorId = requestorId; - responseInstanceId = instanceId; - - break; - } - case RICsubscriptionRequest_IEs__value_PR_RANfunctionID: - break; - case RICsubscriptionRequest_IEs__value_PR_RICsubscriptionDetails: - { - RICsubscriptionDetails_t subDetails = next_ie->value.choice.RICsubscriptionDetails; - RICeventTriggerDefinition_t triggerDef = subDetails.ricEventTriggerDefinition; - RICactions_ToBeSetup_List_t actionList = subDetails.ricAction_ToBeSetup_List; - - int actionCount = actionList.list.count; - fprintf(stderr, "action count%d\n", actionCount); - - auto **item_array = actionList.list.array; - - for (int i=0; i < actionCount; i++) { - //RICaction_ToBeSetup_Item_t - auto *next_item = item_array[i]; - RICactionID_t actionId = ((RICaction_ToBeSetup_ItemIEs*)next_item)->value.choice.RICaction_ToBeSetup_Item.ricActionID; - fprintf(stderr, "Next Action ID %ld\n", actionId); - responseActionId = actionId; - actionIds.push_back(responseActionId); - } - - break; - } - } - - } - - fprintf(stderr, "After Processing Subscription Request\n"); - - fprintf(stderr, "requestorId %d\n", responseRequestorId); - fprintf(stderr, "instanceId %d\n", responseInstanceId); - - - for (int i=0; i < actionIds.size(); i++) { - fprintf(stderr, "Action ID %d %ld\n", i, actionIds.at(i)); - - } - - - RICsubscriptionResponse_IEs_t *respricreqid = - (RICsubscriptionResponse_IEs_t*)calloc(1, sizeof(RICsubscriptionResponse_IEs_t)); - - respricreqid->id = ProtocolIE_ID_id_RICrequestID; - respricreqid->criticality = 0; - respricreqid->value.present = RICsubscriptionResponse_IEs__value_PR_RICrequestID; - respricreqid->value.choice.RICrequestID.ricRequestorID = responseRequestorId; - - respricreqid->value.choice.RICrequestID.ricInstanceID = responseInstanceId; - - - RICsubscriptionResponse_IEs_t *ricactionadmitted = - (RICsubscriptionResponse_IEs_t*)calloc(1, sizeof(RICsubscriptionResponse_IEs_t)); - ricactionadmitted->id = ProtocolIE_ID_id_RICactions_Admitted; - ricactionadmitted->criticality = 0; - ricactionadmitted->value.present = RICsubscriptionResponse_IEs__value_PR_RICaction_Admitted_List; - - RICaction_Admitted_List_t* admlist = - (RICaction_Admitted_List_t*)calloc(1,sizeof(RICaction_Admitted_List_t)); - ricactionadmitted->value.choice.RICaction_Admitted_List = *admlist; - - for (int i=0; i < actionIds.size(); i++) { - fprintf(stderr, "in for loop i = %d\n", i); - - long aid = actionIds.at(i); - - RICaction_Admitted_ItemIEs_t *admitie = (RICaction_Admitted_ItemIEs_t*)calloc(1,sizeof(RICaction_Admitted_ItemIEs_t)); - admitie->id = ProtocolIE_ID_id_RICaction_Admitted_Item; - admitie->criticality = 0; - admitie->value.present = RICaction_Admitted_ItemIEs__value_PR_RICaction_Admitted_Item; - admitie->value.choice.RICaction_Admitted_Item.ricActionID = aid; - - ASN_SEQUENCE_ADD(&ricactionadmitted->value.choice.RICaction_Admitted_List.list, admitie); - - } - - - RICsubscriptionResponse_t *ricsubresp = (RICsubscriptionResponse_t*)calloc(1,sizeof(RICsubscriptionResponse_t)); - - ASN_SEQUENCE_ADD(&ricsubresp->protocolIEs.list, respricreqid); - ASN_SEQUENCE_ADD(&ricsubresp->protocolIEs.list, ricactionadmitted); - - - SuccessfulOutcome__value_PR pres2; - pres2 = SuccessfulOutcome__value_PR_RICsubscriptionResponse; - SuccessfulOutcome_t *successoutcome = (SuccessfulOutcome_t*)calloc(1, sizeof(SuccessfulOutcome_t)); - successoutcome->procedureCode = ProcedureCode_id_RICsubscription; - successoutcome->criticality = 0; - successoutcome->value.present = pres2; - successoutcome->value.choice.RICsubscriptionResponse = *ricsubresp; - - E2AP_PDU_PR pres5 = E2AP_PDU_PR_successfulOutcome; - - e2ap_pdu->present = pres5; - e2ap_pdu->choice.successfulOutcome = successoutcome; - - char *error_buf = (char*)calloc(300, sizeof(char)); - size_t errlen; - - asn_check_constraints(&asn_DEF_E2AP_PDU, e2ap_pdu, error_buf, &errlen); - printf("error length %d\n", errlen); - printf("error buf %s\n", error_buf); - -} - -void generate_e2apv1_indication_request_parameterized(E2AP_PDU *e2ap_pdu, - long requestorId, - long instanceId, - long ranFunctionId, - long actionId, - long seqNum, - uint8_t *ind_header_buf, - int header_length, - uint8_t *ind_message_buf, - int message_length) { - - fprintf(stderr, "ind1\n"); - RICindication_IEs_t *ricind_ies = (RICindication_IEs_t*)calloc(1, sizeof(RICindication_IEs_t)); - RICindication_IEs_t *ricind_ies2 = (RICindication_IEs_t*)calloc(1, sizeof(RICindication_IEs_t)); - RICindication_IEs_t *ricind_ies3 = (RICindication_IEs_t*)calloc(1, sizeof(RICindication_IEs_t)); - RICindication_IEs_t *ricind_ies4 = (RICindication_IEs_t*)calloc(1, sizeof(RICindication_IEs_t)); - RICindication_IEs_t *ricind_ies5 = (RICindication_IEs_t*)calloc(1, sizeof(RICindication_IEs_t)); - RICindication_IEs_t *ricind_ies6 = (RICindication_IEs_t*)calloc(1, sizeof(RICindication_IEs_t)); - RICindication_IEs_t *ricind_ies7 = (RICindication_IEs_t*)calloc(1, sizeof(RICindication_IEs_t)); - RICindication_IEs_t *ricind_ies8 = (RICindication_IEs_t*)calloc(1, sizeof(RICindication_IEs_t)); - - RICindication_IEs__value_PR pres3; - - pres3 = RICindication_IEs__value_PR_RICrequestID; - ricind_ies->id = ProtocolIE_ID_id_RICrequestID; - ricind_ies->criticality = 0; - ricind_ies->value.present = pres3; - ricind_ies->value.choice.RICrequestID.ricRequestorID = requestorId; - ricind_ies->value.choice.RICrequestID.ricInstanceID = instanceId; - - fprintf(stderr, "ind2\n"); - - pres3 = RICindication_IEs__value_PR_RANfunctionID; - ricind_ies2->id = ProtocolIE_ID_id_RANfunctionID; - ricind_ies2->criticality = 0; - ricind_ies2->value.present = pres3; - ricind_ies2->value.choice.RANfunctionID = ranFunctionId; - - - ricind_ies3->id = ProtocolIE_ID_id_RICactionID; - ricind_ies3->criticality = 0; - pres3 = RICindication_IEs__value_PR_RICactionID; - ricind_ies3->value.present = pres3; - ricind_ies3->value.choice.RICactionID = actionId; - - - pres3 = RICindication_IEs__value_PR_RICindicationSN; - ricind_ies4->id = ProtocolIE_ID_id_RICindicationSN; - ricind_ies4->criticality = 0; - ricind_ies4->value.present = pres3; - ricind_ies4->value.choice.RICindicationSN = seqNum; - - //Indication type is REPORT - pres3 = RICindication_IEs__value_PR_RICindicationType; - ricind_ies5->id = ProtocolIE_ID_id_RICindicationType; - ricind_ies5->criticality = 0; - ricind_ies5->value.present = pres3; - ricind_ies5->value.choice.RICindicationType = 0; - - - uint8_t *buf2 = (uint8_t *)"reportheader"; - OCTET_STRING_t *hdr_str = (OCTET_STRING_t*)calloc(1,sizeof(OCTET_STRING_t)); - - hdr_str->buf = (uint8_t*)calloc(1,header_length); - hdr_str->size = header_length; - memcpy(hdr_str->buf, ind_header_buf, header_length); - - fprintf(stderr, "ind3\n"); - - ricind_ies6->value.choice.RICindicationHeader.buf = (uint8_t*)calloc(1,header_length); - - pres3 = RICindication_IEs__value_PR_RICindicationHeader; - ricind_ies6->id = ProtocolIE_ID_id_RICindicationHeader; - ricind_ies6->criticality = 0; - ricind_ies6->value.present = pres3; - ricind_ies6->value.choice.RICindicationHeader.size = header_length; - memcpy(ricind_ies6->value.choice.RICindicationHeader.buf, ind_header_buf, header_length); - - ricind_ies7->value.choice.RICindicationMessage.buf = (uint8_t*)calloc(1,8192); - - - - - pres3 = RICindication_IEs__value_PR_RICindicationMessage; - ricind_ies7->id = ProtocolIE_ID_id_RICindicationMessage; - fprintf(stderr, "after encoding message 1\n"); - - ricind_ies7->criticality = 0; - ricind_ies7->value.present = pres3; - - fprintf(stderr, "after encoding message 2\n"); - - fprintf(stderr, "after encoding message 3\n"); - ricind_ies7->value.choice.RICindicationMessage.size = message_length; - - fprintf(stderr, "after encoding message 4\n"); - memcpy(ricind_ies7->value.choice.RICindicationMessage.buf, ind_message_buf, message_length); - - fprintf(stderr, "after encoding message 5\n"); - - uint8_t *cpid_buf = (uint8_t *)"cpid"; - OCTET_STRING_t cpid_str; - - printf("5.1\n"); - - int cpid_buf_len = strlen((char*)cpid_buf); - pres3 = RICindication_IEs__value_PR_RICcallProcessID; - ricind_ies8->id = ProtocolIE_ID_id_RICcallProcessID; - - ricind_ies8->criticality = 0; - ricind_ies8->value.present = pres3; - - ricind_ies8->value.choice.RICcallProcessID.buf = (uint8_t*)calloc(1,cpid_buf_len); - ricind_ies8->value.choice.RICcallProcessID.size = cpid_buf_len; - - memcpy(ricind_ies8->value.choice.RICcallProcessID.buf, cpid_buf, cpid_buf_len); - - printf("5.2\n"); - - RICindication_t *ricindication = (RICindication_t*)calloc(1, sizeof(RICindication_t)); - - - int ret; - - ret = ASN_SEQUENCE_ADD(&ricindication->protocolIEs.list, ricind_ies); - - ret = ASN_SEQUENCE_ADD(&ricindication->protocolIEs.list, ricind_ies2); - - printf("5.3\n"); - - ret = ASN_SEQUENCE_ADD(&ricindication->protocolIEs.list, ricind_ies3); - - printf("5.35\n"); - - ret = ASN_SEQUENCE_ADD(&ricindication->protocolIEs.list, ricind_ies4); - - printf("5.36\n"); - - ret = ASN_SEQUENCE_ADD(&ricindication->protocolIEs.list, ricind_ies5); - - printf("5.4\n"); - - ret = ASN_SEQUENCE_ADD(&ricindication->protocolIEs.list, ricind_ies6); - - printf("5.5\n"); - - ret = ASN_SEQUENCE_ADD(&ricindication->protocolIEs.list, ricind_ies7); - - // ret = ASN_SEQUENCE_ADD(&ricindication->protocolIEs.list, ricind_ies8); - - - InitiatingMessage__value_PR pres4; - pres4 = InitiatingMessage__value_PR_RICindication; - InitiatingMessage_t *initmsg = (InitiatingMessage_t*)calloc(1, sizeof(InitiatingMessage_t)); - initmsg->procedureCode = 5; - initmsg->criticality = 1; - initmsg->value.present = pres4; - initmsg->value.choice.RICindication = *ricindication; - - E2AP_PDU_PR pres5; - pres5 = E2AP_PDU_PR_initiatingMessage; - - e2ap_pdu->present = pres5; - e2ap_pdu->choice.initiatingMessage = initmsg; - - char *error_buf = (char*)calloc(300, sizeof(char)); - size_t errlen; - - asn_check_constraints(&asn_DEF_E2AP_PDU, e2ap_pdu, error_buf, &errlen); - printf("error length %d\n", errlen); - printf("error buf %s\n", error_buf); - - xer_fprint(stderr, &asn_DEF_E2AP_PDU, e2ap_pdu); - -} - -void generate_e2apv1_indication_request(E2AP_PDU *e2ap_pdu) { - fprintf(stderr, "ind1\n"); - RICindication_IEs_t *ricind_ies = (RICindication_IEs_t*)calloc(1, sizeof(RICindication_IEs_t)); - RICindication_IEs_t *ricind_ies2 = (RICindication_IEs_t*)calloc(1, sizeof(RICindication_IEs_t)); - RICindication_IEs_t *ricind_ies3 = (RICindication_IEs_t*)calloc(1, sizeof(RICindication_IEs_t)); - RICindication_IEs_t *ricind_ies4 = (RICindication_IEs_t*)calloc(1, sizeof(RICindication_IEs_t)); - RICindication_IEs_t *ricind_ies5 = (RICindication_IEs_t*)calloc(1, sizeof(RICindication_IEs_t)); - RICindication_IEs_t *ricind_ies6 = (RICindication_IEs_t*)calloc(1, sizeof(RICindication_IEs_t)); - RICindication_IEs_t *ricind_ies7 = (RICindication_IEs_t*)calloc(1, sizeof(RICindication_IEs_t)); - RICindication_IEs_t *ricind_ies8 = (RICindication_IEs_t*)calloc(1, sizeof(RICindication_IEs_t)); - - RICindication_IEs__value_PR pres3; - - pres3 = RICindication_IEs__value_PR_RICrequestID; - ricind_ies->id = ProtocolIE_ID_id_RICrequestID; - ricind_ies->criticality = 0; - ricind_ies->value.present = pres3; - ricind_ies->value.choice.RICrequestID.ricRequestorID = 25; - ricind_ies->value.choice.RICrequestID.ricInstanceID = 3; - - fprintf(stderr, "ind2\n"); - - pres3 = RICindication_IEs__value_PR_RANfunctionID; - ricind_ies2->id = ProtocolIE_ID_id_RANfunctionID; - ricind_ies2->criticality = 0; - ricind_ies2->value.present = pres3; - ricind_ies2->value.choice.RANfunctionID = 70; - - - ricind_ies3->id = ProtocolIE_ID_id_RICactionID; - ricind_ies3->criticality = 0; - pres3 = RICindication_IEs__value_PR_RICactionID; - ricind_ies3->value.present = pres3; - ricind_ies3->value.choice.RICactionID = 80; - - - pres3 = RICindication_IEs__value_PR_RICindicationSN; - ricind_ies4->id = ProtocolIE_ID_id_RICindicationSN; - ricind_ies4->criticality = 0; - ricind_ies4->value.present = pres3; - ricind_ies4->value.choice.RICindicationSN = 45; - - pres3 = RICindication_IEs__value_PR_RICindicationType; - ricind_ies5->id = ProtocolIE_ID_id_RICindicationType; - ricind_ies5->criticality = 0; - ricind_ies5->value.present = pres3; - ricind_ies5->value.choice.RICindicationType = 0; - - - uint8_t *buf2 = (uint8_t *)"reportheader"; - OCTET_STRING_t *hdr_str = (OCTET_STRING_t*)calloc(1,sizeof(OCTET_STRING_t)); - hdr_str->buf = (uint8_t*)calloc(1,12); - hdr_str->size = 12; - memcpy(hdr_str->buf, buf2, 12); - - fprintf(stderr, "ind3\n"); - - ricind_ies6->value.choice.RICindicationHeader.buf = (uint8_t*)calloc(1,12); - - pres3 = RICindication_IEs__value_PR_RICindicationHeader; - ricind_ies6->id = ProtocolIE_ID_id_RICindicationHeader; - ricind_ies6->criticality = 0; - ricind_ies6->value.present = pres3; - ricind_ies6->value.choice.RICindicationHeader.size = 12; - memcpy(ricind_ies6->value.choice.RICindicationHeader.buf, buf2, 12); - - ricind_ies7->value.choice.RICindicationMessage.buf = (uint8_t*)calloc(1,8192); - // uint8_t *buf9 = (uint8_t *)"reportmsg"; - - /* - E2SM_KPM_IndicationMessage_t *e2sm_ind_msg = - (E2SM_KPM_IndicationMessage_t*)calloc(1,sizeof(E2SM_KPM_IndicationMessage_t)); - - encode_kpm(e2sm_ind_msg); - */ - - E2SM_KPM_RANfunction_Description_t *e2sm_desc = - (E2SM_KPM_RANfunction_Description_t*)calloc(1,sizeof(E2SM_KPM_RANfunction_Description_t)); - - encode_kpm_function_description(e2sm_desc); - - - uint8_t e2smbuffer[8192]; - size_t e2smbuffer_size = 8192; - - asn_codec_ctx_t *opt_cod; - - - asn_enc_rval_t er = - asn_encode_to_buffer(opt_cod, - ATS_ALIGNED_BASIC_PER, - &asn_DEF_E2SM_KPM_RANfunction_Description, - e2sm_desc, e2smbuffer, e2smbuffer_size); - - /* - asn_encode_to_buffer(opt_cod, - ATS_ALIGNED_BASIC_PER, - &asn_DEF_E2SM_KPM_IndicationMessage, - e2sm_ind_msg, e2smbuffer, e2smbuffer_size); - */ - - - - fprintf(stderr, "er encded is %d\n", er.encoded); - fprintf(stderr, "after encoding message\n"); - - OCTET_STRING_t *msg_str = (OCTET_STRING_t*)calloc(1,sizeof(OCTET_STRING_t)); - msg_str->buf = (uint8_t*)calloc(1,er.encoded); - msg_str->size = er.encoded; - memcpy(msg_str->buf, e2smbuffer, er.encoded); - - - pres3 = RICindication_IEs__value_PR_RICindicationMessage; - ricind_ies7->id = ProtocolIE_ID_id_RICindicationMessage; - fprintf(stderr, "after encoding message 1\n"); - - ricind_ies7->criticality = 0; - ricind_ies7->value.present = pres3; - - fprintf(stderr, "after encoding message 2\n"); - - fprintf(stderr, "after encoding message 3\n"); - ricind_ies7->value.choice.RICindicationMessage.size = er.encoded; - - fprintf(stderr, "after encoding message 4\n"); - memcpy(ricind_ies7->value.choice.RICindicationMessage.buf, e2smbuffer, er.encoded); - - fprintf(stderr, "after encoding message 5\n"); - - uint8_t *buf4 = (uint8_t *)"cpid"; - OCTET_STRING_t cpid_str; - cpid_str.buf = buf4; - cpid_str.size = 4; - - - pres3 = RICindication_IEs__value_PR_RICcallProcessID; - ricind_ies8->id = ProtocolIE_ID_id_RICcallProcessID; - - ricind_ies8->criticality = 0; - ricind_ies8->value.present = pres3; - - ricind_ies8->value.choice.RICcallProcessID = cpid_str; - - - RICindication_t *ricindication = (RICindication_t*)calloc(1, sizeof(RICindication_t)); - - - int ret; - /* - ret = ASN_SEQUENCE_ADD(&ricindication->protocolIEs.list, ricind_ies); - - ret = ASN_SEQUENCE_ADD(&ricindication->protocolIEs.list, ricind_ies2); - - ret = ASN_SEQUENCE_ADD(&ricindication->protocolIEs.list, ricind_ies3); - ret = ASN_SEQUENCE_ADD(&ricindication->protocolIEs.list, ricind_ies4); - ret = ASN_SEQUENCE_ADD(&ricindication->protocolIEs.list, ricind_ies5); - - ret = ASN_SEQUENCE_ADD(&ricindication->protocolIEs.list, ricind_ies6); - */ - ret = ASN_SEQUENCE_ADD(&ricindication->protocolIEs.list, ricind_ies7); - - ret = ASN_SEQUENCE_ADD(&ricindication->protocolIEs.list, ricind_ies8); - - - InitiatingMessage__value_PR pres4; - pres4 = InitiatingMessage__value_PR_RICindication; - InitiatingMessage_t *initmsg = (InitiatingMessage_t*)calloc(1, sizeof(InitiatingMessage_t)); - initmsg->procedureCode = 5; - initmsg->criticality = 1; - initmsg->value.present = pres4; - initmsg->value.choice.RICindication = *ricindication; - - E2AP_PDU_PR pres5; - pres5 = E2AP_PDU_PR_initiatingMessage; - - e2ap_pdu->present = pres5; - e2ap_pdu->choice.initiatingMessage = initmsg; - - char *error_buf = (char*)calloc(300, sizeof(char));; - size_t errlen; - - asn_check_constraints(&asn_DEF_E2AP_PDU, e2ap_pdu, error_buf, &errlen); - printf("error length %d\n", errlen); - printf("error buf %s\n", error_buf); - - xer_fprint(stderr, &asn_DEF_E2AP_PDU, e2ap_pdu); -} - - -void generate_e2apv1_indication_response(E2AP_PDU *e2ap_pdu) { - - -} diff --git a/e2sim/previous/e2apv1sim/encode_e2apv1.hpp b/e2sim/previous/e2apv1sim/encode_e2apv1.hpp deleted file mode 100644 index e825cb8..0000000 --- a/e2sim/previous/e2apv1sim/encode_e2apv1.hpp +++ /dev/null @@ -1,42 +0,0 @@ - -#ifndef ENCODE_E2APV1_HPP -#define ENCODE_E2APV1_HPP -/* -#include -#include -#include -*/ - -//#include -//#include -//#include - -//#include "e2sim_sctp.hpp" -//#include "e2ap_message_handler.hpp" -#include "encode_kpm.hpp" - - -extern "C" { - //#include "e2sim_defs.h" -#include "E2AP-PDU.h" - - -} - -void buildSubsReq(E2AP_PDU_t *pdu); - -void generate_e2apv1_setup_request(E2AP_PDU_t *setup_req_pdu); - -void generate_e2apv1_setup_response(E2AP_PDU_t *setup_resp_pdu); - -void generate_e2apv1_subscription_request(E2AP_PDU_t *sub_req_pdu); - -void generate_e2apv1_subscription_response(E2AP_PDU_t *sub_resp_pdu, E2AP_PDU_t *sub_req_pdu); - -void generate_e2apv1_indication_request(E2AP_PDU_t *ind_req_pdu); - -void generate_e2apv1_subscription_response_success(E2AP_PDU *e2ap_pdu, long reqActionIdsAccepted[], long reqActionIdsRejected[], int accept_size, int reject_size, long reqRequestorId, long reqInstanceId); - -void generate_e2apv1_indication_request_parameterized(E2AP_PDU *e2ap_pdu, long requestorId, long instanceId, long ranFunctionId, long actionId, long seqNum, uint8_t *ind_header_buf, int header_length, uint8_t *ind_message_buf, int message_length); - -#endif diff --git a/e2sim/previous/e2apv1sim/encode_kpm.cpp b/e2sim/previous/e2apv1sim/encode_kpm.cpp deleted file mode 100644 index d518a36..0000000 --- a/e2sim/previous/e2apv1sim/encode_kpm.cpp +++ /dev/null @@ -1,1853 +0,0 @@ -#include -#include -#include -#include -#include - -#include "encode_kpm.hpp" - -using namespace std; - -void encode_kpm_function_description(E2SM_KPM_RANfunction_Description_t* ranfunc_desc) { - - printf("kpm0\n"); - - uint8_t *buf = (uint8_t*)"ORAN-E2SM-KPM"; - uint8_t *buf2 = (uint8_t*)"KPM monitor"; - uint8_t *buf3 = (uint8_t*)"OID123"; - - OCTET_STRING_t *sname = (OCTET_STRING_t*)calloc(1, sizeof(OCTET_STRING_t)); - sname->buf = (uint8_t*)calloc(1,13); - - memcpy(sname->buf, buf, 13); - sname->size = strlen((char*)buf); - ranfunc_desc->ranFunction_Name.ranFunction_ShortName = *sname; - - long inst = 1; - - ASN_STRUCT_RESET(asn_DEF_E2SM_KPM_RANfunction_Description, ranfunc_desc); - - // ranfunc_desc->ranFunction_Name.ranFunction_Description = (OCTET_STRING_t*)calloc(1, sizeof(OCTET_STRING_t)); - ranfunc_desc->ranFunction_Name.ranFunction_Description.buf = (uint8_t*)calloc(1,strlen((char*)buf2)); - memcpy(ranfunc_desc->ranFunction_Name.ranFunction_Description.buf, buf2, strlen((char*)buf2)); - ranfunc_desc->ranFunction_Name.ranFunction_Description.size = strlen((char*)buf2); - ranfunc_desc->ranFunction_Name.ranFunction_Instance = &inst; - - printf("kpm0.9\n"); - - // ranfunc_desc->ranFunction_Name.ranFunction_E2SM_OID = (OCTET_STRING_t*)calloc(1, sizeof(OCTET_STRING_t)); - ranfunc_desc->ranFunction_Name.ranFunction_E2SM_OID.buf = (uint8_t*)calloc(1,strlen((char*)buf3)); - memcpy(ranfunc_desc->ranFunction_Name.ranFunction_E2SM_OID.buf, buf3, strlen((char*)buf3)); - ranfunc_desc->ranFunction_Name.ranFunction_E2SM_OID.size = strlen((char*)buf3); - - printf("kpm2\n"); - - - RIC_EventTriggerStyle_List_t *trigger_style = - (RIC_EventTriggerStyle_List_t*)calloc(1, sizeof(RIC_EventTriggerStyle_List_t)); - trigger_style->ric_EventTriggerStyle_Type = 1; - uint8_t *buf4 = (uint8_t*)"Periodic report"; - // trigger_style->ric_EventTriggerStyle_Name = (OCTET_STRING_t*)calloc(1, sizeof(OCTET_STRING_t)); - trigger_style->ric_EventTriggerStyle_Name.buf = (uint8_t*)calloc(1,strlen((char*)buf4)); - memcpy(trigger_style->ric_EventTriggerStyle_Name.buf, buf4, strlen((char*)buf4)); - trigger_style->ric_EventTriggerStyle_Name.size = strlen((char*)buf4); - trigger_style->ric_EventTriggerFormat_Type = 5; - - printf("kpm3\n"); - - ranfunc_desc->e2SM_KPM_RANfunction_Item.ric_EventTriggerStyle_List = - (E2SM_KPM_RANfunction_Description::E2SM_KPM_RANfunction_Description__e2SM_KPM_RANfunction_Item::E2SM_KPM_RANfunction_Description__e2SM_KPM_RANfunction_Item__ric_EventTriggerStyle_List*)calloc(1,sizeof(E2SM_KPM_RANfunction_Description::E2SM_KPM_RANfunction_Description__e2SM_KPM_RANfunction_Item::E2SM_KPM_RANfunction_Description__e2SM_KPM_RANfunction_Item__ric_EventTriggerStyle_List)); - - int ret = ASN_SEQUENCE_ADD(&ranfunc_desc->e2SM_KPM_RANfunction_Item.ric_EventTriggerStyle_List->list , trigger_style); - printf("ret is %d\n", ret); - - RIC_ReportStyle_List_t *report_style1 = (RIC_ReportStyle_List_t*)calloc(1, sizeof(RIC_ReportStyle_List_t)); - report_style1->ric_ReportStyle_Type = 1; - - uint8_t *buf5 = (uint8_t*)"O-DU Measurement Container for the 5GC connected deployment"; - - printf("kpm4\n"); - - // report_style1->ric_ReportStyle_Name = (OCTET_STRING_t*)calloc(1, sizeof(OCTET_STRING_t)); - report_style1->ric_ReportStyle_Name.buf = (uint8_t*)calloc(1,strlen((char*)buf5)); - memcpy(report_style1->ric_ReportStyle_Name.buf, buf5, strlen((char*)buf5)); - report_style1->ric_ReportStyle_Name.size = strlen((char*)buf5); - report_style1->ric_IndicationHeaderFormat_Type = 1; - report_style1->ric_IndicationMessageFormat_Type = 1; - - printf("kpm5\n"); - - RIC_ReportStyle_List_t *report_style2 = (RIC_ReportStyle_List_t*)calloc(1, sizeof(RIC_ReportStyle_List_t)); - report_style2->ric_ReportStyle_Type = 2; - - uint8_t *buf6 = (uint8_t*)"O-DU Measurement Container for the EPC connected deployment"; - - // report_style2->ric_ReportStyle_Name = (OCTET_STRING_t*)calloc(1, sizeof(OCTET_STRING_t)); - - - report_style2->ric_ReportStyle_Name.buf = (uint8_t*)calloc(1,strlen((char*)buf6)); - memcpy(report_style2->ric_ReportStyle_Name.buf, buf6, strlen((char*)buf6)); - report_style2->ric_ReportStyle_Name.size = strlen((char*)buf6); - report_style2->ric_IndicationHeaderFormat_Type = 1; - report_style2->ric_IndicationMessageFormat_Type = 1; - - printf("kpm6\n"); - - RIC_ReportStyle_List_t *report_style3 = (RIC_ReportStyle_List_t*)calloc(1, sizeof(RIC_ReportStyle_List_t)); - report_style3->ric_ReportStyle_Type = 3; - - uint8_t *buf7 = (uint8_t*)"O-CU-CP Measurement Container for the 5GC connected deployment"; - - // report_style3->ric_ReportStyle_Name = (OCTET_STRING_t*)calloc(1, sizeof(OCTET_STRING_t)); - report_style3->ric_ReportStyle_Name.buf = (uint8_t*)calloc(1,strlen((char*)buf7)); - memcpy(report_style3->ric_ReportStyle_Name.buf, buf7, strlen((char*)buf7)); - report_style3->ric_ReportStyle_Name.size = strlen((char*)buf7); - report_style3->ric_IndicationHeaderFormat_Type = 1; - report_style3->ric_IndicationMessageFormat_Type = 1; - - RIC_ReportStyle_List_t *report_style4 = (RIC_ReportStyle_List_t*)calloc(1, sizeof(RIC_ReportStyle_List_t)); - report_style4->ric_ReportStyle_Type = 4; - - uint8_t *buf8 = (uint8_t*)"O-CU-CP Measurement Container for the EPC connected deployment"; - - // report_style3->ric_ReportStyle_Name = (OCTET_STRING_t*)calloc(1, sizeof(OCTET_STRING_t)); - report_style4->ric_ReportStyle_Name.buf = (uint8_t*)calloc(1,strlen((char*)buf8)); - memcpy(report_style4->ric_ReportStyle_Name.buf, buf8, strlen((char*)buf8)); - report_style4->ric_ReportStyle_Name.size = strlen((char*)buf8); - report_style4->ric_IndicationHeaderFormat_Type = 1; - report_style4->ric_IndicationMessageFormat_Type = 1; - - RIC_ReportStyle_List_t *report_style5 = (RIC_ReportStyle_List_t*)calloc(1, sizeof(RIC_ReportStyle_List_t)); - report_style5->ric_ReportStyle_Type = 5; - - uint8_t *buf9 = (uint8_t*)"O-CU-UP Measurement Container for the 5GC connected deployment"; - - // report_style3->ric_ReportStyle_Name = (OCTET_STRING_t*)calloc(1, sizeof(OCTET_STRING_t)); - report_style5->ric_ReportStyle_Name.buf = (uint8_t*)calloc(1,strlen((char*)buf9)); - memcpy(report_style5->ric_ReportStyle_Name.buf, buf9, strlen((char*)buf9)); - report_style5->ric_ReportStyle_Name.size = strlen((char*)buf9); - report_style5->ric_IndicationHeaderFormat_Type = 1; - report_style5->ric_IndicationMessageFormat_Type = 1; - - - RIC_ReportStyle_List_t *report_style6 = (RIC_ReportStyle_List_t*)calloc(1, sizeof(RIC_ReportStyle_List_t)); - report_style6->ric_ReportStyle_Type = 6; - - uint8_t *buf10 = (uint8_t*)"O-CU-UP Measurement Container for the EPC connected deployment"; - - // report_style3->ric_ReportStyle_Name = (OCTET_STRING_t*)calloc(1, sizeof(OCTET_STRING_t)); - report_style6->ric_ReportStyle_Name.buf = (uint8_t*)calloc(1,strlen((char*)buf10)); - memcpy(report_style6->ric_ReportStyle_Name.buf, buf10, strlen((char*)buf10)); - report_style6->ric_ReportStyle_Name.size = strlen((char*)buf10); - report_style6->ric_IndicationHeaderFormat_Type = 1; - report_style6->ric_IndicationMessageFormat_Type = 1; - - - ranfunc_desc->e2SM_KPM_RANfunction_Item.ric_ReportStyle_List = - (E2SM_KPM_RANfunction_Description::E2SM_KPM_RANfunction_Description__e2SM_KPM_RANfunction_Item::E2SM_KPM_RANfunction_Description__e2SM_KPM_RANfunction_Item__ric_ReportStyle_List*)calloc(1,sizeof(E2SM_KPM_RANfunction_Description::E2SM_KPM_RANfunction_Description__e2SM_KPM_RANfunction_Item::E2SM_KPM_RANfunction_Description__e2SM_KPM_RANfunction_Item__ric_ReportStyle_List)); - - ASN_SEQUENCE_ADD(&ranfunc_desc->e2SM_KPM_RANfunction_Item.ric_ReportStyle_List->list, report_style1); - ASN_SEQUENCE_ADD(&ranfunc_desc->e2SM_KPM_RANfunction_Item.ric_ReportStyle_List->list, report_style2); - ASN_SEQUENCE_ADD(&ranfunc_desc->e2SM_KPM_RANfunction_Item.ric_ReportStyle_List->list, report_style3); - ASN_SEQUENCE_ADD(&ranfunc_desc->e2SM_KPM_RANfunction_Item.ric_ReportStyle_List->list, report_style4); - ASN_SEQUENCE_ADD(&ranfunc_desc->e2SM_KPM_RANfunction_Item.ric_ReportStyle_List->list, report_style5); - ASN_SEQUENCE_ADD(&ranfunc_desc->e2SM_KPM_RANfunction_Item.ric_ReportStyle_List->list, report_style6); - - xer_fprint(stderr, &asn_DEF_E2SM_KPM_RANfunction_Description, ranfunc_desc); -} - -void encode_kpm_ocuup_user_level(RAN_Container_t *ranco) { - - uint8_t *buf = (uint8_t*)"2020.06.13 13:01:05.222"; - Timestamp_t *ts = (Timestamp_t*)calloc(1,sizeof(Timestamp_t)); - ts->buf = (uint8_t*)calloc(strlen((char*)buf),1); - ts->size = strlen((char*)buf); - memcpy(ts->buf,buf,ts->size); - - printf("enc1\n"); - - CU_UP_Usage_Report_CellResourceReportItem_t *report_item = - (CU_UP_Usage_Report_CellResourceReportItem_t*)calloc(1,sizeof(CU_UP_Usage_Report_CellResourceReportItem_t)); - - uint8_t *buf2 = (uint8_t*)"747"; - - OCTET_STRING_t *plmnidstr = (OCTET_STRING_t*)calloc(1,sizeof(OCTET_STRING_t)); - plmnidstr->buf = (uint8_t*)calloc(3,1); - plmnidstr->size = 3; - memcpy(plmnidstr->buf, buf2, plmnidstr->size); - - printf("enc2\n"); - - NRCellIdentity_t *nrcellid = (NRCellIdentity_t*)calloc(1,sizeof(NRCellIdentity_t)); - uint8_t* buf3 = (uint8_t*)"12340"; - nrcellid->buf = (uint8_t*)calloc(1,5); - memcpy(nrcellid->buf, buf3, 5); - nrcellid->size = 5; - nrcellid->bits_unused = 4; - - NRCGI *nrcgi = (NRCGI*)calloc(1,sizeof(NRCGI)); - nrcgi->pLMN_Identity = *plmnidstr; - nrcgi->nRCellIdentity = *nrcellid; - - printf("enc3\n"); - - report_item->nRCGI = *nrcgi; - - CU_UP_Usage_Report_UeResourceReportItem *ue_report_item = - (CU_UP_Usage_Report_UeResourceReportItem*)calloc(1,sizeof(CU_UP_Usage_Report_UeResourceReportItem)); - - printf("enc3.2\n"); - - uint8_t* crnti_str = (uint8_t*)"1111"; - OCTET_STRING *crnti = (OCTET_STRING*)calloc(1,sizeof(OCTET_STRING)); - crnti->buf = (uint8_t*)calloc(1,4); - - printf("enc3.3\n"); - - crnti->size = strlen((char*)crnti_str); - - printf("enc3.4\n"); - memcpy(crnti->buf, crnti_str, crnti->size); - - printf("enc4\n"); - - INTEGER_t *bytesdl = (INTEGER_t*)calloc(1, sizeof(INTEGER_t)); - uint8_t buffer[1]; - buffer[0]= 40000; - bytesdl->buf = (uint8_t*)calloc(1,1); - memcpy(bytesdl->buf, buffer,1); - bytesdl->size = 1; - - INTEGER_t *bytesul = (INTEGER_t*)calloc(1, sizeof(INTEGER_t)); - uint8_t buffer1[1]; - buffer1[0] = 50000; - bytesul->buf = (uint8_t*)calloc(1,1); - memcpy(bytesul->buf, buffer1, 1); - bytesul->size = 1; - - - ue_report_item->c_RNTI = *crnti; - ue_report_item->pDCPBytesDL = bytesdl; - ue_report_item->pDCPBytesUL = bytesul; - - - ASN_SEQUENCE_ADD(&report_item->ueResourceReportList.list, ue_report_item); - - ranco->timestamp = *ts; - ranco->reportContainer.present = RAN_Container__reportContainer_PR_oCU_UP_UE; - ASN_SEQUENCE_ADD(&ranco->reportContainer.choice.oCU_UP_UE.cellResourceReportList.list, report_item); - - xer_fprint(stderr, &asn_DEF_RAN_Container, ranco); - -} - -void encode_kpm_ocucp_user_level(RAN_Container_t *ranco, - uint8_t *plmnid_buf, - uint8_t *nrcellid_buf, - uint8_t *crnti_buf, - const uint8_t *serving_buf, - const uint8_t *neighbor_buf) { - uint8_t *buf = (uint8_t*)"2020.06.13 13:01:05.222"; - Timestamp_t *ts = (Timestamp_t*)calloc(1,sizeof(Timestamp_t)); - ts->buf = (uint8_t*)calloc(strlen((char*)buf),1); - ts->size = strlen((char*)buf); - memcpy(ts->buf,buf,ts->size); - - printf("enc1\n"); - - CU_CP_Usage_Report_CellResourceReportItem_t *report_item = - (CU_CP_Usage_Report_CellResourceReportItem_t*)calloc(1,sizeof(CU_CP_Usage_Report_CellResourceReportItem_t)); - - int plmnid_size = strlen((char*)plmnid_buf); - OCTET_STRING_t *plmnidstr = (OCTET_STRING_t*)calloc(1,sizeof(OCTET_STRING_t)); - plmnidstr->buf = (uint8_t*)calloc(plmnid_size,1); - plmnidstr->size = plmnid_size; - memcpy(plmnidstr->buf, plmnid_buf, plmnidstr->size); - - printf("enc2\n"); - - NRCellIdentity_t *nrcellid = (NRCellIdentity_t*)calloc(1,sizeof(NRCellIdentity_t)); - - int nrcellid_size = strlen((char*)nrcellid_buf); - nrcellid->buf = (uint8_t*)calloc(1, nrcellid_size); - memcpy(nrcellid->buf, nrcellid_buf, nrcellid_size); - nrcellid->size = 5; - nrcellid->bits_unused = 4; - - NRCGI *nrcgi = (NRCGI*)calloc(1,sizeof(NRCGI)); - nrcgi->pLMN_Identity = *plmnidstr; - nrcgi->nRCellIdentity = *nrcellid; - - printf("enc3\n"); - - report_item->nRCGI = *nrcgi; - - CU_CP_Usage_Report_UeResourceReportItem *ue_report_item = - (CU_CP_Usage_Report_UeResourceReportItem*)calloc(1,sizeof(CU_CP_Usage_Report_UeResourceReportItem)); - - printf("enc3.2\n"); - - - int crnti_size = strlen((char*)crnti_buf); - OCTET_STRING *crnti = (OCTET_STRING*)calloc(1,sizeof(OCTET_STRING)); - crnti->buf = (uint8_t*)calloc(1, crnti_size); - - printf("enc3.3\n"); - - crnti->size = strlen((char*)crnti_buf); - - printf("enc3.4\n"); - memcpy(crnti->buf, crnti_buf, crnti->size); - - // uint8_t *buf_serving = (uint8_t*)"RSRP10"; - - int serving_buf_len = strlen((char*)serving_buf); - OCTET_STRING_t *servingstr = (OCTET_STRING_t*)calloc(1,sizeof(OCTET_STRING_t)); - servingstr->buf = (uint8_t*)calloc(serving_buf_len,1); - servingstr->size = serving_buf_len; - memcpy(servingstr->buf, serving_buf, servingstr->size); - - - int neighbor_buf_len = strlen((char*)neighbor_buf); - // uint8_t *buf_neighbor = (uint8_t*)"-10,-15"; - OCTET_STRING_t *neighborstr = (OCTET_STRING_t*)calloc(1,sizeof(OCTET_STRING_t)); - ts->buf = (uint8_t*)calloc(neighbor_buf_len,1); - neighborstr->buf = (uint8_t*)calloc(neighbor_buf_len,1); - neighborstr->size = neighbor_buf_len; - memcpy(neighborstr->buf, neighbor_buf, neighborstr->size); - - ue_report_item->c_RNTI = *crnti; - ue_report_item->serving_Cell_RF_Type = servingstr; - ue_report_item->neighbor_Cell_RF = neighborstr; - - - ASN_SEQUENCE_ADD(&report_item->ueResourceReportList.list, ue_report_item); - - ranco->timestamp = *ts; - ranco->reportContainer.present = RAN_Container__reportContainer_PR_oCU_CP_UE; - ASN_SEQUENCE_ADD(&ranco->reportContainer.choice.oCU_CP_UE.cellResourceReportList.list, report_item); - - xer_fprint(stderr, &asn_DEF_RAN_Container, ranco); - - -} - -void encode_kpm_ocucp_user_level(RAN_Container_t *ranco) { - - uint8_t *buf = (uint8_t*)"2020.06.13 13:01:05.222"; - Timestamp_t *ts = (Timestamp_t*)calloc(1,sizeof(Timestamp_t)); - ts->buf = (uint8_t*)calloc(strlen((char*)buf),1); - ts->size = strlen((char*)buf); - memcpy(ts->buf,buf,ts->size); - - printf("enc1\n"); - - CU_CP_Usage_Report_CellResourceReportItem_t *report_item = - (CU_CP_Usage_Report_CellResourceReportItem_t*)calloc(1,sizeof(CU_CP_Usage_Report_CellResourceReportItem_t)); - - uint8_t *buf2 = (uint8_t*)"747"; - - OCTET_STRING_t *plmnidstr = (OCTET_STRING_t*)calloc(1,sizeof(OCTET_STRING_t)); - plmnidstr->buf = (uint8_t*)calloc(3,1); - plmnidstr->size = 3; - memcpy(plmnidstr->buf, buf2, plmnidstr->size); - - printf("enc2\n"); - - NRCellIdentity_t *nrcellid = (NRCellIdentity_t*)calloc(1,sizeof(NRCellIdentity_t)); - uint8_t* buf3 = (uint8_t*)"12340"; - nrcellid->buf = (uint8_t*)calloc(1,5); - memcpy(nrcellid->buf, buf3, 5); - nrcellid->size = 5; - nrcellid->bits_unused = 4; - - NRCGI *nrcgi = (NRCGI*)calloc(1,sizeof(NRCGI)); - nrcgi->pLMN_Identity = *plmnidstr; - nrcgi->nRCellIdentity = *nrcellid; - - printf("enc3\n"); - - report_item->nRCGI = *nrcgi; - - CU_CP_Usage_Report_UeResourceReportItem *ue_report_item = - (CU_CP_Usage_Report_UeResourceReportItem*)calloc(1,sizeof(CU_CP_Usage_Report_UeResourceReportItem)); - - printf("enc3.2\n"); - - uint8_t* crnti_str = (uint8_t*)"1111"; - OCTET_STRING *crnti = (OCTET_STRING*)calloc(1,sizeof(OCTET_STRING)); - crnti->buf = (uint8_t*)calloc(1,4); - - printf("enc3.3\n"); - - crnti->size = strlen((char*)crnti_str); - - printf("enc3.4\n"); - memcpy(crnti->buf, crnti_str, crnti->size); - - uint8_t *buf_serving = (uint8_t*)"RSRP10"; - OCTET_STRING_t *servingstr = (OCTET_STRING_t*)calloc(1,sizeof(OCTET_STRING_t)); - servingstr->buf = (uint8_t*)calloc(6,1); - servingstr->size = 6; - memcpy(servingstr->buf, buf_serving, servingstr->size); - - uint8_t *buf_neighbor = (uint8_t*)"-10,-15"; - OCTET_STRING_t *neighborstr = (OCTET_STRING_t*)calloc(1,sizeof(OCTET_STRING_t)); - neighborstr->buf = (uint8_t*)calloc(7,1); - neighborstr->size = 7; - memcpy(neighborstr->buf, buf_neighbor, neighborstr->size); - - ue_report_item->c_RNTI = *crnti; - ue_report_item->serving_Cell_RF_Type = servingstr; - ue_report_item->neighbor_Cell_RF = neighborstr; - - - ASN_SEQUENCE_ADD(&report_item->ueResourceReportList.list, ue_report_item); - - ranco->timestamp = *ts; - ranco->reportContainer.present = RAN_Container__reportContainer_PR_oCU_CP_UE; - ASN_SEQUENCE_ADD(&ranco->reportContainer.choice.oCU_CP_UE.cellResourceReportList.list, report_item); - - xer_fprint(stderr, &asn_DEF_RAN_Container, ranco); - -} - - -void encode_kpm_odu_user_level(RAN_Container_t *ranco) { - - uint8_t *buf = (uint8_t*)"2020.06.13 13:01:05.222"; - Timestamp_t *ts = (Timestamp_t*)calloc(1,sizeof(Timestamp_t)); - ts->buf = (uint8_t*)calloc(strlen((char*)buf),1); - ts->size = strlen((char*)buf); - memcpy(ts->buf,buf,ts->size); - - printf("enc1\n"); - - DU_Usage_Report_CellResourceReportItem_t *report_item = - (DU_Usage_Report_CellResourceReportItem_t*)calloc(1,sizeof(DU_Usage_Report_CellResourceReportItem_t)); - - uint8_t *buf2 = (uint8_t*)"747"; - - OCTET_STRING_t *plmnidstr = (OCTET_STRING_t*)calloc(1,sizeof(OCTET_STRING_t)); - plmnidstr->buf = (uint8_t*)calloc(3,1); - plmnidstr->size = 3; - memcpy(plmnidstr->buf, buf2, plmnidstr->size); - - printf("enc2\n"); - - NRCellIdentity_t *nrcellid = (NRCellIdentity_t*)calloc(1,sizeof(NRCellIdentity_t)); - uint8_t* buf3 = (uint8_t*)"12340"; - nrcellid->buf = (uint8_t*)calloc(1,5); - memcpy(nrcellid->buf, buf3, 5); - nrcellid->size = 5; - nrcellid->bits_unused = 4; - - NRCGI *nrcgi = (NRCGI*)calloc(1,sizeof(NRCGI)); - nrcgi->pLMN_Identity = *plmnidstr; - nrcgi->nRCellIdentity = *nrcellid; - - printf("enc3\n"); - - report_item->nRCGI = *nrcgi; - - printf("enc3.1\n"); - - DU_Usage_Report_UeResourceReportItem *ue_report_item = - (DU_Usage_Report_UeResourceReportItem*)calloc(1,sizeof(DU_Usage_Report_UeResourceReportItem)); - - printf("enc3.2\n"); - - uint8_t* crnti_str = (uint8_t*)"1111"; - OCTET_STRING *crnti = (OCTET_STRING*)calloc(1,sizeof(OCTET_STRING)); - crnti->buf = (uint8_t*)calloc(1,4); - - printf("enc3.3\n"); - - crnti->size = strlen((char*)crnti_str); - - printf("enc3.4\n"); - memcpy(crnti->buf, crnti_str, crnti->size); - - printf("enc4\n"); - - long lval1 = 2; - long lval2 = 1; - - ue_report_item->c_RNTI = *crnti; - ue_report_item->dl_PRBUsage = &lval1; - - printf("enc5\n"); - - ue_report_item->ul_PRBUsage = &lval2; - - printf("enc6\n"); - - ASN_SEQUENCE_ADD(&report_item->ueResourceReportList.list, ue_report_item); - - - ranco->timestamp = *ts; - ranco->reportContainer.present = RAN_Container__reportContainer_PR_oDU_UE; - ASN_SEQUENCE_ADD(&ranco->reportContainer.choice.oDU_UE.cellResourceReportList.list, report_item); - - xer_fprint(stderr, &asn_DEF_RAN_Container, ranco); - - -} - -void encode_kpm_report_rancontainer_du(E2SM_KPM_IndicationMessage_t* indicationmessage) { - - RAN_Container_t *ranco = (RAN_Container_t*)calloc(1,sizeof(RAN_Container_t)); - encode_kpm_odu_user_level(ranco); - - PM_Containers_List_t *containers_list = (PM_Containers_List_t*)calloc(1, sizeof(PM_Containers_List_t)); - ASN_STRUCT_RESET(asn_DEF_PM_Containers_List, containers_list); - containers_list->theRANContainer = ranco; - - E2SM_KPM_IndicationMessage_Format1_t *format = - (E2SM_KPM_IndicationMessage_Format1_t*)calloc(1, sizeof(E2SM_KPM_IndicationMessage_Format1_t)); - ASN_STRUCT_RESET(asn_DEF_E2SM_KPM_IndicationMessage_Format1, format); - - int ret = ASN_SEQUENCE_ADD(&format->pm_Containers.list, containers_list); - - E2SM_KPM_IndicationMessage__indicationMessage_PR pres = E2SM_KPM_IndicationMessage__indicationMessage_PR_indicationMessage_Format1; - - indicationmessage->indicationMessage.present = pres; - - indicationmessage->indicationMessage.choice.indicationMessage_Format1 = *format; - - char *error_buf = (char*)calloc(300, sizeof(char)); - size_t errlen; - - asn_check_constraints(&asn_DEF_E2SM_KPM_IndicationMessage, indicationmessage, error_buf, &errlen); - printf("error length %d\n", errlen); - printf("error buf %s\n", error_buf); - - xer_fprint(stderr, &asn_DEF_E2SM_KPM_IndicationMessage, indicationmessage); - - asn_codec_ctx_t *opt_cod; - - uint8_t e2smbuffer[8192]; - size_t e2smbuffer_size = 8192; - - uint8_t e2smbuffer2[8192]; - size_t e2smbuffer_size2 = 8192; - - asn_enc_rval_t er = - asn_encode_to_buffer(opt_cod, - ATS_ALIGNED_BASIC_PER, - &asn_DEF_E2SM_KPM_IndicationMessage, - indicationmessage, e2smbuffer, e2smbuffer_size); - - fprintf(stderr, "er encded is %d\n", er.encoded); - fprintf(stderr, "after encoding message\n"); - - -} - -void encode_kpm_report_rancontainer_cucp_parameterized(E2SM_KPM_IndicationMessage_t* indicationmessage, - uint8_t *plmnid_buf, - uint8_t *nrcellid_buf, - uint8_t *crnti_buf, - const uint8_t *serving_buf, - const uint8_t *neighbor_buf) { - - RAN_Container_t *ranco = (RAN_Container_t*)calloc(1,sizeof(RAN_Container_t)); - encode_kpm_ocucp_user_level(ranco, plmnid_buf, - nrcellid_buf, crnti_buf, - serving_buf, neighbor_buf); - - PM_Containers_List_t *containers_list = (PM_Containers_List_t*)calloc(1, sizeof(PM_Containers_List_t)); - ASN_STRUCT_RESET(asn_DEF_PM_Containers_List, containers_list); - containers_list->theRANContainer = ranco; - - E2SM_KPM_IndicationMessage_Format1_t *format = - (E2SM_KPM_IndicationMessage_Format1_t*)calloc(1, sizeof(E2SM_KPM_IndicationMessage_Format1_t)); - ASN_STRUCT_RESET(asn_DEF_E2SM_KPM_IndicationMessage_Format1, format); - - int ret = ASN_SEQUENCE_ADD(&format->pm_Containers.list, containers_list); - - E2SM_KPM_IndicationMessage__indicationMessage_PR pres = E2SM_KPM_IndicationMessage__indicationMessage_PR_indicationMessage_Format1; - - indicationmessage->indicationMessage.present = pres; - - indicationmessage->indicationMessage.choice.indicationMessage_Format1 = *format; - - char *error_buf = (char*)calloc(300, sizeof(char)); - size_t errlen; - - asn_check_constraints(&asn_DEF_E2SM_KPM_IndicationMessage, indicationmessage, error_buf, &errlen); - printf("error length %d\n", errlen); - printf("error buf %s\n", error_buf); - - xer_fprint(stderr, &asn_DEF_E2SM_KPM_IndicationMessage, indicationmessage); - - asn_codec_ctx_t *opt_cod; - - uint8_t e2smbuffer[8192]; - size_t e2smbuffer_size = 8192; - - uint8_t e2smbuffer2[8192]; - size_t e2smbuffer_size2 = 8192; - - asn_enc_rval_t er = - asn_encode_to_buffer(opt_cod, - ATS_ALIGNED_BASIC_PER, - &asn_DEF_E2SM_KPM_IndicationMessage, - indicationmessage, e2smbuffer, e2smbuffer_size); - - fprintf(stderr, "er encded is %d\n", er.encoded); - fprintf(stderr, "after encoding message\n"); - -} - - -void encode_kpm_report_rancontainer_cucp(E2SM_KPM_IndicationMessage_t* indicationmessage) { - - RAN_Container_t *ranco = (RAN_Container_t*)calloc(1,sizeof(RAN_Container_t)); - encode_kpm_ocucp_user_level(ranco); - - PM_Containers_List_t *containers_list = (PM_Containers_List_t*)calloc(1, sizeof(PM_Containers_List_t)); - ASN_STRUCT_RESET(asn_DEF_PM_Containers_List, containers_list); - containers_list->theRANContainer = ranco; - - E2SM_KPM_IndicationMessage_Format1_t *format = - (E2SM_KPM_IndicationMessage_Format1_t*)calloc(1, sizeof(E2SM_KPM_IndicationMessage_Format1_t)); - ASN_STRUCT_RESET(asn_DEF_E2SM_KPM_IndicationMessage_Format1, format); - - int ret = ASN_SEQUENCE_ADD(&format->pm_Containers.list, containers_list); - - E2SM_KPM_IndicationMessage__indicationMessage_PR pres = E2SM_KPM_IndicationMessage__indicationMessage_PR_indicationMessage_Format1; - - indicationmessage->indicationMessage.present = pres; - - indicationmessage->indicationMessage.choice.indicationMessage_Format1 = *format; - - char *error_buf = (char*)calloc(300, sizeof(char)); - size_t errlen; - - asn_check_constraints(&asn_DEF_E2SM_KPM_IndicationMessage, indicationmessage, error_buf, &errlen); - printf("error length %d\n", errlen); - printf("error buf %s\n", error_buf); - - xer_fprint(stderr, &asn_DEF_E2SM_KPM_IndicationMessage, indicationmessage); - - asn_codec_ctx_t *opt_cod; - - uint8_t e2smbuffer[8192]; - size_t e2smbuffer_size = 8192; - - uint8_t e2smbuffer2[8192]; - size_t e2smbuffer_size2 = 8192; - - asn_enc_rval_t er = - asn_encode_to_buffer(opt_cod, - ATS_ALIGNED_BASIC_PER, - &asn_DEF_E2SM_KPM_IndicationMessage, - indicationmessage, e2smbuffer, e2smbuffer_size); - - fprintf(stderr, "er encded is %d\n", er.encoded); - fprintf(stderr, "after encoding message\n"); - - -} - -void encode_kpm_report_rancontainer_cuup_parameterized(E2SM_KPM_IndicationMessage_t* indicationmessage, - uint8_t *plmnid_buf, - uint8_t *nrcellid_buf, - uint8_t *crnti_buf, - int pdcp_bytesdl, - int pdcp_bytesul) { - - -} - -void encode_kpm_report_rancontainer_cuup(E2SM_KPM_IndicationMessage_t* indicationmessage) { - - RAN_Container_t *ranco = (RAN_Container_t*)calloc(1,sizeof(RAN_Container_t)); - //encode_kpm_ocuup_user_level(ranco); - - - uint8_t *buf = (uint8_t*)"2020.06.13 13:01:05.222"; - Timestamp_t *ts = (Timestamp_t*)calloc(1,sizeof(Timestamp_t)); - ts->buf = (uint8_t*)calloc(strlen((char*)buf),1); - ts->size = strlen((char*)buf); - memcpy(ts->buf,buf,ts->size); - - printf("enc1\n"); - - CU_CP_Usage_Report_CellResourceReportItem_t *report_item = - (CU_CP_Usage_Report_CellResourceReportItem_t*)calloc(1,sizeof(CU_CP_Usage_Report_CellResourceReportItem_t)); - - uint8_t *buf2 = (uint8_t*)"747"; - - OCTET_STRING_t *plmnidstr = (OCTET_STRING_t*)calloc(1,sizeof(OCTET_STRING_t)); - plmnidstr->buf = (uint8_t*)calloc(3,1); - plmnidstr->size = 3; - memcpy(plmnidstr->buf, buf2, plmnidstr->size); - - printf("enc2\n"); - - NRCellIdentity_t *nrcellid = (NRCellIdentity_t*)calloc(1,sizeof(NRCellIdentity_t)); - uint8_t* buf3 = (uint8_t*)"12340"; - nrcellid->buf = (uint8_t*)calloc(1,5); - memcpy(nrcellid->buf, buf3, 5); - nrcellid->size = 5; - nrcellid->bits_unused = 4; - - NRCGI *nrcgi = (NRCGI*)calloc(1,sizeof(NRCGI)); - nrcgi->pLMN_Identity = *plmnidstr; - nrcgi->nRCellIdentity = *nrcellid; - - printf("enc3\n"); - - report_item->nRCGI = *nrcgi; - - CU_CP_Usage_Report_UeResourceReportItem *ue_report_item = - (CU_CP_Usage_Report_UeResourceReportItem*)calloc(1,sizeof(CU_CP_Usage_Report_UeResourceReportItem)); - - printf("enc3.2\n"); - - uint8_t* crnti_str = (uint8_t*)"1111"; - OCTET_STRING *crnti = (OCTET_STRING*)calloc(1,sizeof(OCTET_STRING)); - crnti->buf = (uint8_t*)calloc(1,4); - - printf("enc3.3\n"); - - crnti->size = strlen((char*)crnti_str); - - printf("enc3.4\n"); - memcpy(crnti->buf, crnti_str, crnti->size); - - uint8_t *buf_serving = (uint8_t*)"RSRP10"; - OCTET_STRING_t *servingstr = (OCTET_STRING_t*)calloc(1,sizeof(OCTET_STRING_t)); - servingstr->buf = (uint8_t*)calloc(6,1); - servingstr->size = 6; - memcpy(servingstr->buf, buf_serving, servingstr->size); - - uint8_t *buf_neighbor = (uint8_t*)"-10,-15"; - OCTET_STRING_t *neighborstr = (OCTET_STRING_t*)calloc(1,sizeof(OCTET_STRING_t)); - neighborstr->buf = (uint8_t*)calloc(7,1); - neighborstr->size = 7; - memcpy(neighborstr->buf, buf_neighbor, neighborstr->size); - - ue_report_item->c_RNTI = *crnti; - ue_report_item->serving_Cell_RF_Type = servingstr; - ue_report_item->neighbor_Cell_RF = neighborstr; - - - ASN_SEQUENCE_ADD(&report_item->ueResourceReportList.list, ue_report_item); - - ranco->timestamp = *ts; - ranco->reportContainer.present = RAN_Container__reportContainer_PR_oCU_CP_UE; - ASN_SEQUENCE_ADD(&ranco->reportContainer.choice.oCU_CP_UE.cellResourceReportList.list, report_item); - - // xer_fprint(stderr, &asn_DEF_RAN_Container, ranco); - - - PM_Containers_List_t *containers_list = (PM_Containers_List_t*)calloc(1, sizeof(PM_Containers_List_t)); - ASN_STRUCT_RESET(asn_DEF_PM_Containers_List, containers_list); - containers_list->theRANContainer = ranco; - - E2SM_KPM_IndicationMessage_Format1_t *format = - (E2SM_KPM_IndicationMessage_Format1_t*)calloc(1, sizeof(E2SM_KPM_IndicationMessage_Format1_t)); - ASN_STRUCT_RESET(asn_DEF_E2SM_KPM_IndicationMessage_Format1, format); - - int ret = ASN_SEQUENCE_ADD(&format->pm_Containers.list, containers_list); - - E2SM_KPM_IndicationMessage__indicationMessage_PR pres = E2SM_KPM_IndicationMessage__indicationMessage_PR_indicationMessage_Format1; - - indicationmessage->indicationMessage.present = pres; - - indicationmessage->indicationMessage.choice.indicationMessage_Format1 = *format; - - char *error_buf = (char*)calloc(300, sizeof(char)); - size_t errlen; - - asn_check_constraints(&asn_DEF_E2SM_KPM_IndicationMessage, indicationmessage, error_buf, &errlen); - printf("error length %d\n", errlen); - printf("error buf %s\n", error_buf); - - xer_fprint(stderr, &asn_DEF_E2SM_KPM_IndicationMessage, indicationmessage); - - asn_codec_ctx_t *opt_cod; - - uint8_t e2smbuffer[8192]; - size_t e2smbuffer_size = 8192; - - uint8_t e2smbuffer2[8192]; - size_t e2smbuffer_size2 = 8192; - - asn_enc_rval_t er = - asn_encode_to_buffer(opt_cod, - ATS_ALIGNED_BASIC_PER, - &asn_DEF_E2SM_KPM_IndicationMessage, - indicationmessage, e2smbuffer, e2smbuffer_size); - - fprintf(stderr, "er encded is %d\n", er.encoded); - fprintf(stderr, "after encoding message\n"); - - -} - -void encode_kpm_report_style1_parameterized(E2SM_KPM_IndicationMessage_t* indicationmessage, - long fiveqi, - long dl_prb_usage, - long ul_prb_usage, - uint8_t* sd_buf, - uint8_t* sst_buf, - uint8_t* plmnid_buf, - uint8_t* nrcellid_buf, - long *dl_prbs, - long *ul_prbs) { - - - asn_codec_ctx_t *opt_cod; - - FQIPERSlicesPerPlmnPerCellListItem_t *fqi_item = - (FQIPERSlicesPerPlmnPerCellListItem_t*)calloc(1,sizeof(FQIPERSlicesPerPlmnPerCellListItem_t)); - fqi_item->fiveQI = fiveqi; - fqi_item->dl_PRBUsage = &dl_prb_usage; - fqi_item->ul_PRBUsage = &ul_prb_usage; - - uint8_t *buf1 = (uint8_t*)"4"; - OCTET_STRING_t *sst = (OCTET_STRING_t*)calloc(1, sizeof(OCTET_STRING_t)); - sst->size = 6; - sst->buf = (uint8_t*)calloc(1,6); - memcpy(sst->buf,buf1,sst->size); - - // std::string sd = "SD1"; - // std::vector sdvec(sd.begin(), sd.end()); - // uint8_t *bufz = &sdvec[0]; - uint8_t *bufz = (uint8_t*)"SD1"; - OCTET_STRING_t *sds = (OCTET_STRING_t*)calloc(1, sizeof(OCTET_STRING_t)); - sds->size = 3; - sds->buf = (uint8_t*)calloc(1,3); - memcpy(sds->buf, bufz, sds->size); - - - SNSSAI_t *snssai = (SNSSAI_t*)calloc(1, sizeof(SNSSAI_t)); - ASN_STRUCT_RESET(asn_DEF_SNSSAI,snssai); - snssai->sST.buf = (uint8_t*)calloc(1,1); - snssai->sST.size = 1; - memcpy(snssai->sST.buf, sst_buf, 1); - snssai->sD = (OCTET_STRING_t*)calloc(1, sizeof(OCTET_STRING_t)); - snssai->sD->buf = (uint8_t*)calloc(1,3); - snssai->sD->size = 3; - memcpy(snssai->sD->buf, sd_buf, 3); - - - SlicePerPlmnPerCellListItem_t *sliceitem = - (SlicePerPlmnPerCellListItem_t*)calloc(1,sizeof(SlicePerPlmnPerCellListItem_t)); - sliceitem->sliceID = *snssai; - ASN_SEQUENCE_ADD(&sliceitem->fQIPERSlicesPerPlmnPerCellList.list, fqi_item); - - uint8_t *buf2 = (uint8_t*)"747"; - - OCTET_STRING_t *plmnid = (OCTET_STRING_t*)calloc(1,sizeof(OCTET_STRING_t)); - plmnid->buf = (uint8_t*)calloc(3,1); - plmnid->size = 3; - memcpy(plmnid->buf, plmnid_buf, plmnid->size); - - ServedPlmnPerCellListItem_t *percellitem1 = - (ServedPlmnPerCellListItem_t*)calloc(1,sizeof(ServedPlmnPerCellListItem_t)); - percellitem1->pLMN_Identity = *plmnid; - percellitem1->du_PM_5GC = (FGC_DU_PM_Container*)calloc(1,sizeof(FGC_DU_PM_Container)); - ASN_SEQUENCE_ADD(&percellitem1->du_PM_5GC->slicePerPlmnPerCellList.list, sliceitem); - - OCTET_STRING_t *plmnidstr = (OCTET_STRING_t*)calloc(1,sizeof(OCTET_STRING_t)); - plmnidstr->buf = (uint8_t*)calloc(3,1); - plmnidstr->size = 3; - memcpy(plmnidstr->buf, plmnid_buf, plmnidstr->size); - - printf("enc2\n"); - - NRCellIdentity_t *nrcellid = (NRCellIdentity_t*)calloc(1,sizeof(NRCellIdentity_t)); - uint8_t* buf3 = (uint8_t*)"12340"; - nrcellid->buf = (uint8_t*)calloc(1,5); - memcpy(nrcellid->buf, nrcellid_buf, 5); - nrcellid->size = 5; - nrcellid->bits_unused = 4; - - NRCGI *nrcgi = (NRCGI*)calloc(1,sizeof(NRCGI)); - nrcgi->pLMN_Identity = *plmnidstr; - nrcgi->nRCellIdentity = *nrcellid; - - - CellResourceReportListItem_t *listitem1 = (CellResourceReportListItem_t*)calloc(1,sizeof(CellResourceReportListItem_t)); - listitem1->nRCGI = *nrcgi; - listitem1->dl_TotalofAvailablePRBs = dl_prbs; - listitem1->ul_TotalofAvailablePRBs = ul_prbs; - ASN_SEQUENCE_ADD(&listitem1->servedPlmnPerCellList.list, percellitem1); - - - ODU_PF_Container_t *ducont = (ODU_PF_Container_t*)calloc(1,sizeof(ODU_PF_Container_t)); - ASN_STRUCT_RESET(asn_DEF_ODU_PF_Container, ducont); - int ret = ASN_SEQUENCE_ADD(&ducont->cellResourceReportList.list, listitem1); - - PF_Container_PR pres1 = PF_Container_PR_oDU; - - PF_Container_t *pfcontainer = (PF_Container_t*)calloc(1, sizeof(PF_Container_t)); - ASN_STRUCT_RESET(asn_DEF_PF_Container, pfcontainer); - pfcontainer->present = pres1; - pfcontainer->choice.oDU = *ducont; - - PM_Containers_List_t *containers_list = (PM_Containers_List_t*)calloc(1, sizeof(PM_Containers_List_t)); - ASN_STRUCT_RESET(asn_DEF_PM_Containers_List, containers_list); - containers_list->performanceContainer = pfcontainer; - - E2SM_KPM_IndicationMessage_Format1_t *format = - (E2SM_KPM_IndicationMessage_Format1_t*)calloc(1, sizeof(E2SM_KPM_IndicationMessage_Format1_t)); - ASN_STRUCT_RESET(asn_DEF_E2SM_KPM_IndicationMessage_Format1, format); - - ret = ASN_SEQUENCE_ADD(&format->pm_Containers.list, containers_list); - - E2SM_KPM_IndicationMessage__indicationMessage_PR pres = E2SM_KPM_IndicationMessage__indicationMessage_PR_indicationMessage_Format1; - - indicationmessage->indicationMessage.present = pres; - - indicationmessage->indicationMessage.choice.indicationMessage_Format1 = *format; - - char *error_buf = (char*)calloc(300, sizeof(char)); - size_t errlen; - - asn_check_constraints(&asn_DEF_E2SM_KPM_IndicationMessage, indicationmessage, error_buf, &errlen); - printf("error length %d\n", errlen); - printf("error buf %s\n", error_buf); - - xer_fprint(stderr, &asn_DEF_E2SM_KPM_IndicationMessage, indicationmessage); - - - uint8_t e2smbuffer[8192]; - size_t e2smbuffer_size = 8192; - - uint8_t e2smbuffer2[8192]; - size_t e2smbuffer_size2 = 8192; - - asn_enc_rval_t er = - asn_encode_to_buffer(opt_cod, - ATS_ALIGNED_BASIC_PER, - &asn_DEF_E2SM_KPM_IndicationMessage, - indicationmessage, e2smbuffer, e2smbuffer_size); - - fprintf(stderr, "er encded is %d\n", er.encoded); - fprintf(stderr, "after encoding message\n"); - - -} - - -void encode_kpm_report_style1(E2SM_KPM_IndicationMessage_t* indicationmessage) { - - long fiveqi = 8; - long dl_prb_usage = 50; - long ul_prb_usage = 70; - - asn_codec_ctx_t *opt_cod; - - FQIPERSlicesPerPlmnPerCellListItem_t *fqi_item = - (FQIPERSlicesPerPlmnPerCellListItem_t*)calloc(1,sizeof(FQIPERSlicesPerPlmnPerCellListItem_t)); - fqi_item->fiveQI = fiveqi; - fqi_item->dl_PRBUsage = &dl_prb_usage; - fqi_item->ul_PRBUsage = &ul_prb_usage; - - uint8_t *buf1 = (uint8_t*)"4"; - OCTET_STRING_t *sst = (OCTET_STRING_t*)calloc(1, sizeof(OCTET_STRING_t)); - sst->size = 6; - sst->buf = (uint8_t*)calloc(1,6); - memcpy(sst->buf,buf1,sst->size); - - // std::string sd = "SD1"; - // std::vector sdvec(sd.begin(), sd.end()); - // uint8_t *bufz = &sdvec[0]; - uint8_t *bufz = (uint8_t*)"SD1"; - OCTET_STRING_t *sds = (OCTET_STRING_t*)calloc(1, sizeof(OCTET_STRING_t)); - sds->size = 3; - sds->buf = (uint8_t*)calloc(1,3); - memcpy(sds->buf, bufz, sds->size); - - - SNSSAI_t *snssai = (SNSSAI_t*)calloc(1, sizeof(SNSSAI_t)); - ASN_STRUCT_RESET(asn_DEF_SNSSAI,snssai); - snssai->sST.buf = (uint8_t*)calloc(1,1); - snssai->sST.size = 1; - memcpy(snssai->sST.buf, buf1, 1); - snssai->sD = (OCTET_STRING_t*)calloc(1, sizeof(OCTET_STRING_t)); - snssai->sD->buf = (uint8_t*)calloc(1,3); - snssai->sD->size = 3; - memcpy(snssai->sD->buf, bufz, 3); - - - SlicePerPlmnPerCellListItem_t *sliceitem = - (SlicePerPlmnPerCellListItem_t*)calloc(1,sizeof(SlicePerPlmnPerCellListItem_t)); - sliceitem->sliceID = *snssai; - ASN_SEQUENCE_ADD(&sliceitem->fQIPERSlicesPerPlmnPerCellList.list, fqi_item); - - uint8_t *buf2 = (uint8_t*)"747"; - - OCTET_STRING_t *plmnid = (OCTET_STRING_t*)calloc(1,sizeof(OCTET_STRING_t)); - plmnid->buf = (uint8_t*)calloc(3,1); - plmnid->size = 3; - memcpy(plmnid->buf, buf2, plmnid->size); - - ServedPlmnPerCellListItem_t *percellitem1 = - (ServedPlmnPerCellListItem_t*)calloc(1,sizeof(ServedPlmnPerCellListItem_t)); - percellitem1->pLMN_Identity = *plmnid; - percellitem1->du_PM_5GC = (FGC_DU_PM_Container*)calloc(1,sizeof(FGC_DU_PM_Container)); - ASN_SEQUENCE_ADD(&percellitem1->du_PM_5GC->slicePerPlmnPerCellList.list, sliceitem); - - OCTET_STRING_t *plmnidstr = (OCTET_STRING_t*)calloc(1,sizeof(OCTET_STRING_t)); - plmnidstr->buf = (uint8_t*)calloc(3,1); - plmnidstr->size = 3; - memcpy(plmnidstr->buf, buf2, plmnidstr->size); - - printf("enc2\n"); - - NRCellIdentity_t *nrcellid = (NRCellIdentity_t*)calloc(1,sizeof(NRCellIdentity_t)); - uint8_t* buf3 = (uint8_t*)"12340"; - nrcellid->buf = (uint8_t*)calloc(1,5); - memcpy(nrcellid->buf, buf3, 5); - nrcellid->size = 5; - nrcellid->bits_unused = 4; - - NRCGI *nrcgi = (NRCGI*)calloc(1,sizeof(NRCGI)); - nrcgi->pLMN_Identity = *plmnidstr; - nrcgi->nRCellIdentity = *nrcellid; - - long dl_prbs = (long)100; - long ul_prbs = (long)120; - - CellResourceReportListItem_t *listitem1 = (CellResourceReportListItem_t*)calloc(1,sizeof(CellResourceReportListItem_t)); - listitem1->nRCGI = *nrcgi; - listitem1->dl_TotalofAvailablePRBs = &dl_prbs; - listitem1->ul_TotalofAvailablePRBs = &ul_prbs; - ASN_SEQUENCE_ADD(&listitem1->servedPlmnPerCellList.list, percellitem1); - - - ODU_PF_Container_t *ducont = (ODU_PF_Container_t*)calloc(1,sizeof(ODU_PF_Container_t)); - ASN_STRUCT_RESET(asn_DEF_ODU_PF_Container, ducont); - int ret = ASN_SEQUENCE_ADD(&ducont->cellResourceReportList.list, listitem1); - - PF_Container_PR pres1 = PF_Container_PR_oDU; - - PF_Container_t *pfcontainer = (PF_Container_t*)calloc(1, sizeof(PF_Container_t)); - ASN_STRUCT_RESET(asn_DEF_PF_Container, pfcontainer); - pfcontainer->present = pres1; - pfcontainer->choice.oDU = *ducont; - - PM_Containers_List_t *containers_list = (PM_Containers_List_t*)calloc(1, sizeof(PM_Containers_List_t)); - ASN_STRUCT_RESET(asn_DEF_PM_Containers_List, containers_list); - containers_list->performanceContainer = pfcontainer; - - E2SM_KPM_IndicationMessage_Format1_t *format = - (E2SM_KPM_IndicationMessage_Format1_t*)calloc(1, sizeof(E2SM_KPM_IndicationMessage_Format1_t)); - ASN_STRUCT_RESET(asn_DEF_E2SM_KPM_IndicationMessage_Format1, format); - - ret = ASN_SEQUENCE_ADD(&format->pm_Containers.list, containers_list); - - E2SM_KPM_IndicationMessage__indicationMessage_PR pres = E2SM_KPM_IndicationMessage__indicationMessage_PR_indicationMessage_Format1; - - indicationmessage->indicationMessage.present = pres; - - indicationmessage->indicationMessage.choice.indicationMessage_Format1 = *format; - - char *error_buf = (char*)calloc(300, sizeof(char)); - size_t errlen; - - asn_check_constraints(&asn_DEF_E2SM_KPM_IndicationMessage, indicationmessage, error_buf, &errlen); - printf("error length %d\n", errlen); - printf("error buf %s\n", error_buf); - - xer_fprint(stderr, &asn_DEF_E2SM_KPM_IndicationMessage, indicationmessage); - - - uint8_t e2smbuffer[8192]; - size_t e2smbuffer_size = 8192; - - uint8_t e2smbuffer2[8192]; - size_t e2smbuffer_size2 = 8192; - - asn_enc_rval_t er = - asn_encode_to_buffer(opt_cod, - ATS_ALIGNED_BASIC_PER, - &asn_DEF_E2SM_KPM_IndicationMessage, - indicationmessage, e2smbuffer, e2smbuffer_size); - - fprintf(stderr, "er encded is %d\n", er.encoded); - fprintf(stderr, "after encoding message\n"); - - -} - -void encode_kpm_report_style5_parameterized(E2SM_KPM_IndicationMessage_t* indicationmessage, - uint8_t *gnbcuupname_buf, - int bytes_dl, - int bytes_ul, - uint8_t *sst_buf, - uint8_t *sd_buf, - uint8_t *plmnid_buf) { - - ASN_STRUCT_RESET(asn_DEF_E2SM_KPM_IndicationMessage, indicationmessage); - - - // uint8_t *buf = (uint8_t*)"GNBCUUP5"; - OCTET_STRING_t *gnbcuupname = (OCTET_STRING_t*)calloc(1, sizeof(OCTET_STRING_t)); - gnbcuupname->size = 8; - gnbcuupname->buf = (uint8_t*)calloc(1,8); - memcpy(gnbcuupname->buf, gnbcuupname_buf, gnbcuupname->size); - - - //We need to convert bytes_dl into array of uint8_t - - int array_size_dl; - - INTEGER_t *bytesdl = (INTEGER_t*)calloc(1, sizeof(INTEGER_t)); - - if (bytes_dl <= 64) { - array_size_dl = 1; - - uint8_t buffer[array_size_dl]; - buffer[0] = bytes_dl & 0xFF; - bytesdl->buf = (uint8_t*)calloc(1,1); - memcpy(bytesdl->buf,buffer,1); - bytesdl->size = 1; - - } else if (bytes_dl <= 16384) { - array_size_dl = 2; - - uint8_t buffer[array_size_dl]; - buffer[0] = (bytes_dl >> 8) & 0xFF; - buffer[1] = bytes_dl & 0xFF; - bytesdl->buf = (uint8_t*)calloc(2,1); - memcpy(bytesdl->buf,buffer,2); - bytesdl->size = 2; - - } else if (bytes_dl <= 4194304) { - array_size_dl = 3; - - uint8_t buffer[array_size_dl]; - buffer[0] = (bytes_dl >> 16) & 0xFF; - buffer[1] = (bytes_dl >> 8) & 0xFF; - buffer[2] = bytes_dl & 0xFF; - bytesdl->buf = (uint8_t*)calloc(3,1); - memcpy(bytesdl->buf,buffer,3); - bytesdl->size = 3; - - } else if (bytes_dl <= 1073741824) { - array_size_dl = 4; - uint8_t buffer[array_size_dl]; - buffer[0] = (bytes_dl >> 24) & 0xFF; - buffer[1] = (bytes_dl >> 16) & 0xFF; - buffer[2] = (bytes_dl >> 8) & 0xFF; - buffer[3] = bytes_dl & 0xFF; - bytesdl->buf = (uint8_t*)calloc(4,1); - memcpy(bytesdl->buf,buffer,4); - bytesdl->size = 4; - } - - - //We need to convert bytes_ul into array of uint8_t - INTEGER_t *bytesul = (INTEGER_t*)calloc(1, sizeof(INTEGER_t)); - - int array_size_ul; - - if (bytes_ul <= 64) { - array_size_ul = 1; - - uint8_t buffer[array_size_ul]; - buffer[0] = bytes_ul & 0xFF; - bytesul->buf = (uint8_t*)calloc(1,1); - memcpy(bytesul->buf,buffer,1); - bytesul->size = 1; - - } else if (bytes_ul <= 16384) { - array_size_ul = 2; - - uint8_t buffer[array_size_ul]; - buffer[0] = (bytes_ul >> 8) & 0xFF; - buffer[1] = bytes_ul & 0xFF; - bytesul->buf = (uint8_t*)calloc(2,1); - memcpy(bytesul->buf,buffer,2); - bytesul->size = 2; - - } else if (bytes_ul <= 4194304) { - array_size_ul = 3; - - uint8_t buffer[array_size_ul]; - buffer[0] = (bytes_ul >> 16) & 0xFF; - buffer[1] = (bytes_ul >> 8) & 0xFF; - buffer[2] = bytes_ul & 0xFF; - bytesul->buf = (uint8_t*)calloc(3,1); - memcpy(bytesul->buf,buffer,3); - bytesul->size = 3; - - } else if (bytes_ul <= 1073741824) { - array_size_ul = 4; - uint8_t buffer[array_size_ul]; - buffer[0] = (bytes_ul >> 24) & 0xFF; - buffer[1] = (bytes_ul >> 16) & 0xFF; - buffer[2] = (bytes_ul >> 8) & 0xFF; - buffer[3] = bytes_ul & 0xFF; - bytesul->buf = (uint8_t*)calloc(4,1); - memcpy(bytesul->buf,buffer,4); - bytesul->size = 4; - } - - - FQIPERSlicesPerPlmnListItem_t *fqilistitem = (FQIPERSlicesPerPlmnListItem_t*)calloc(1, sizeof(FQIPERSlicesPerPlmnListItem_t)); - ASN_STRUCT_RESET(asn_DEF_FQIPERSlicesPerPlmnListItem, fqilistitem); - fqilistitem->fiveQI = 9; - fqilistitem->pDCPBytesDL = bytesdl; - fqilistitem->pDCPBytesUL = bytesul; - - - uint8_t *buf1 = (uint8_t*)"4"; - OCTET_STRING_t *sst = (OCTET_STRING_t*)calloc(1, sizeof(OCTET_STRING_t)); - sst->size = 6; - sst->buf = (uint8_t*)calloc(1,6); - memcpy(sst->buf,sst_buf,sst->size); - - - uint8_t *bufz = (uint8_t*)"SD1"; - OCTET_STRING_t *sds = (OCTET_STRING_t*)calloc(1, sizeof(OCTET_STRING_t)); - sds->size = 3; - sds->buf = (uint8_t*)calloc(1,3); - memcpy(sds->buf, sd_buf, sds->size); - - - SNSSAI_t *snssai = (SNSSAI_t*)calloc(1, sizeof(SNSSAI_t)); - ASN_STRUCT_RESET(asn_DEF_SNSSAI,snssai); - snssai->sST.buf = (uint8_t*)calloc(1,1); - snssai->sST.size = 1; - memcpy(snssai->sST.buf, sst_buf, 1); - snssai->sD = (OCTET_STRING_t*)calloc(1, sizeof(OCTET_STRING_t)); - snssai->sD->buf = (uint8_t*)calloc(1,3); - snssai->sD->size = 3; - memcpy(snssai->sD->buf, sd_buf, 3); - - - - SliceToReportListItem_t *slicelistitem = (SliceToReportListItem_t*)calloc(1,sizeof(SliceToReportListItem_t)); - ASN_STRUCT_RESET(asn_DEF_SliceToReportListItem, slicelistitem); - slicelistitem->sliceID = *snssai; - int ret = ASN_SEQUENCE_ADD(&slicelistitem->fQIPERSlicesPerPlmnList.list, fqilistitem); - - asn_codec_ctx_t *opt_cod; - - - uint8_t e2smbuffera[8192]; - size_t e2smbuffer_sizea = 8192; - - - - asn_enc_rval_t era = - asn_encode_to_buffer(opt_cod, - ATS_ALIGNED_BASIC_PER, - &asn_DEF_SliceToReportListItem, - slicelistitem, e2smbuffera, e2smbuffer_sizea); - fprintf(stderr, "inner er encded is %d\n", era.encoded); - fprintf(stderr, "after encoding message\n"); - - - - FGC_CUUP_PM_Format_t *pm_format = (FGC_CUUP_PM_Format_t*)calloc(1,sizeof(FGC_CUUP_PM_Format_t)); - ASN_STRUCT_RESET(asn_DEF_FGC_CUUP_PM_Format, pm_format); - ret = ASN_SEQUENCE_ADD(&pm_format->sliceToReportList.list, slicelistitem); - - uint8_t *buf2 = (uint8_t*)"747"; - // std::string pl = "PLMNID7"; - // std::vector plvec(pl.begin(), pl.end()); - // uint8_t *buf2 = &plvec[0]; - - OCTET_STRING_t *plmnid = (OCTET_STRING_t*)calloc(1,sizeof(OCTET_STRING_t)); - plmnid->buf = (uint8_t*)calloc(3,1); - plmnid->size = 3; - memcpy(plmnid->buf, plmnid_buf, plmnid->size); - - - PlmnID_List_t *plmnidlist = (PlmnID_List_t*)calloc(1,sizeof(PlmnID_List_t)); - ASN_STRUCT_RESET(asn_DEF_PlmnID_List, plmnidlist); - plmnidlist->pLMN_Identity = *plmnid; - plmnidlist->cu_UP_PM_5GC = pm_format; - - CUUPMeasurement_Container_t *meas_cont = (CUUPMeasurement_Container_t*)calloc(1, sizeof(CUUPMeasurement_Container_t)); - ASN_STRUCT_RESET(asn_DEF_CUUPMeasurement_Container, meas_cont); - ret = ASN_SEQUENCE_ADD(&meas_cont->plmnList.list, plmnidlist); - - - - - PF_ContainerListItem_t *listitem1 = (PF_ContainerListItem_t*)calloc(1, sizeof(PF_ContainerListItem_t)); - ASN_STRUCT_RESET(asn_DEF_PF_ContainerListItem, listitem1); - listitem1->interface_type = 2; - listitem1->o_CU_UP_PM_Container = *meas_cont; - - OCUUP_PF_Container_t *cuupcont = (OCUUP_PF_Container_t*)calloc(1,sizeof(OCUUP_PF_Container_t)); - ASN_STRUCT_RESET(asn_DEF_OCUUP_PF_Container, cuupcont); - cuupcont->gNB_CU_UP_Name = gnbcuupname; - ret = ASN_SEQUENCE_ADD(&cuupcont->pf_ContainerList.list, listitem1); - - PF_Container_PR pres1 = PF_Container_PR_oCU_UP; - - PF_Container_t *pfcontainer = (PF_Container_t*)calloc(1, sizeof(PF_Container_t)); - ASN_STRUCT_RESET(asn_DEF_PF_Container, pfcontainer); - pfcontainer->present = pres1; - pfcontainer->choice.oCU_UP = *cuupcont; - - PM_Containers_List_t *containers_list = (PM_Containers_List_t*)calloc(1, sizeof(PM_Containers_List_t)); - ASN_STRUCT_RESET(asn_DEF_PM_Containers_List, containers_list); - containers_list->performanceContainer = pfcontainer; - - E2SM_KPM_IndicationMessage_Format1_t *format = - (E2SM_KPM_IndicationMessage_Format1_t*)calloc(1, sizeof(E2SM_KPM_IndicationMessage_Format1_t)); - ASN_STRUCT_RESET(asn_DEF_E2SM_KPM_IndicationMessage_Format1, format); - - ret = ASN_SEQUENCE_ADD(&format->pm_Containers.list, containers_list); - - E2SM_KPM_IndicationMessage__indicationMessage_PR pres = E2SM_KPM_IndicationMessage__indicationMessage_PR_indicationMessage_Format1; - - indicationmessage->indicationMessage.present = pres; - - indicationmessage->indicationMessage.choice.indicationMessage_Format1 = *format; - - char *error_buf = (char*)calloc(300, sizeof(char)); - size_t errlen; - - asn_check_constraints(&asn_DEF_E2SM_KPM_IndicationMessage, indicationmessage, error_buf, &errlen); - printf("error length %d\n", errlen); - printf("error buf %s\n", error_buf); - - xer_fprint(stderr, &asn_DEF_E2SM_KPM_IndicationMessage, indicationmessage); - - - uint8_t e2smbuffer[8192]; - size_t e2smbuffer_size = 8192; - - uint8_t e2smbuffer2[8192]; - size_t e2smbuffer_size2 = 8192; - - asn_enc_rval_t er = - asn_encode_to_buffer(opt_cod, - ATS_ALIGNED_BASIC_PER, - &asn_DEF_E2SM_KPM_IndicationMessage, - indicationmessage, e2smbuffer, e2smbuffer_size); - - fprintf(stderr, "er encded is %d\n", er.encoded); - fprintf(stderr, "after encoding message\n"); - - -} - -void encode_kpm_report_style5(E2SM_KPM_IndicationMessage_t* indicationmessage) { - - ASN_STRUCT_RESET(asn_DEF_E2SM_KPM_IndicationMessage, indicationmessage); - - - uint8_t *buf = (uint8_t*)"GNBCUUP5"; - OCTET_STRING_t *gnbcuupname = (OCTET_STRING_t*)calloc(1, sizeof(OCTET_STRING_t)); - gnbcuupname->size = 8; - gnbcuupname->buf = (uint8_t*)calloc(1,8); - memcpy(gnbcuupname->buf, buf, gnbcuupname->size); - - - INTEGER_t *bytesdl = (INTEGER_t*)calloc(1, sizeof(INTEGER_t)); - uint8_t buffer[1]; - buffer[0]= 40000; - bytesdl->buf = (uint8_t*)calloc(1,1); - memcpy(bytesdl->buf, buffer,1); - bytesdl->size = 1; - - INTEGER_t *bytesul = (INTEGER_t*)calloc(1, sizeof(INTEGER_t)); - uint8_t buffer1[1]; - buffer1[0] = 50000; - bytesul->buf = (uint8_t*)calloc(1,1); - memcpy(bytesul->buf, buffer1, 1); - bytesul->size = 1; - - FQIPERSlicesPerPlmnListItem_t *fqilistitem = (FQIPERSlicesPerPlmnListItem_t*)calloc(1, sizeof(FQIPERSlicesPerPlmnListItem_t)); - ASN_STRUCT_RESET(asn_DEF_FQIPERSlicesPerPlmnListItem, fqilistitem); - fqilistitem->fiveQI = 9; - fqilistitem->pDCPBytesDL = bytesdl; - fqilistitem->pDCPBytesUL = bytesul; - - - uint8_t *buf1 = (uint8_t*)"4"; - OCTET_STRING_t *sst = (OCTET_STRING_t*)calloc(1, sizeof(OCTET_STRING_t)); - sst->size = 6; - sst->buf = (uint8_t*)calloc(1,6); - memcpy(sst->buf,buf1,sst->size); - - - uint8_t *bufz = (uint8_t*)"SD1"; - OCTET_STRING_t *sds = (OCTET_STRING_t*)calloc(1, sizeof(OCTET_STRING_t)); - sds->size = 3; - sds->buf = (uint8_t*)calloc(1,3); - memcpy(sds->buf, bufz, sds->size); - - - SNSSAI_t *snssai = (SNSSAI_t*)calloc(1, sizeof(SNSSAI_t)); - ASN_STRUCT_RESET(asn_DEF_SNSSAI,snssai); - snssai->sST.buf = (uint8_t*)calloc(1,1); - snssai->sST.size = 1; - memcpy(snssai->sST.buf, buf1, 1); - snssai->sD = (OCTET_STRING_t*)calloc(1, sizeof(OCTET_STRING_t)); - snssai->sD->buf = (uint8_t*)calloc(1,3); - snssai->sD->size = 3; - memcpy(snssai->sD->buf, bufz, 3); - - - - SliceToReportListItem_t *slicelistitem = (SliceToReportListItem_t*)calloc(1,sizeof(SliceToReportListItem_t)); - ASN_STRUCT_RESET(asn_DEF_SliceToReportListItem, slicelistitem); - slicelistitem->sliceID = *snssai; - int ret = ASN_SEQUENCE_ADD(&slicelistitem->fQIPERSlicesPerPlmnList.list, fqilistitem); - - asn_codec_ctx_t *opt_cod; - - - uint8_t e2smbuffera[8192]; - size_t e2smbuffer_sizea = 8192; - - - - asn_enc_rval_t era = - asn_encode_to_buffer(opt_cod, - ATS_ALIGNED_BASIC_PER, - &asn_DEF_SliceToReportListItem, - slicelistitem, e2smbuffera, e2smbuffer_sizea); - fprintf(stderr, "inner er encded is %d\n", era.encoded); - fprintf(stderr, "after encoding message\n"); - - - - FGC_CUUP_PM_Format_t *pm_format = (FGC_CUUP_PM_Format_t*)calloc(1,sizeof(FGC_CUUP_PM_Format_t)); - ASN_STRUCT_RESET(asn_DEF_FGC_CUUP_PM_Format, pm_format); - ret = ASN_SEQUENCE_ADD(&pm_format->sliceToReportList.list, slicelistitem); - - uint8_t *buf2 = (uint8_t*)"747"; - // std::string pl = "PLMNID7"; - // std::vector plvec(pl.begin(), pl.end()); - // uint8_t *buf2 = &plvec[0]; - - OCTET_STRING_t *plmnid = (OCTET_STRING_t*)calloc(1,sizeof(OCTET_STRING_t)); - plmnid->buf = (uint8_t*)calloc(3,1); - plmnid->size = 3; - memcpy(plmnid->buf, buf2, plmnid->size); - - - PlmnID_List_t *plmnidlist = (PlmnID_List_t*)calloc(1,sizeof(PlmnID_List_t)); - ASN_STRUCT_RESET(asn_DEF_PlmnID_List, plmnidlist); - plmnidlist->pLMN_Identity = *plmnid; - plmnidlist->cu_UP_PM_5GC = pm_format; - - CUUPMeasurement_Container_t *meas_cont = (CUUPMeasurement_Container_t*)calloc(1, sizeof(CUUPMeasurement_Container_t)); - ASN_STRUCT_RESET(asn_DEF_CUUPMeasurement_Container, meas_cont); - ret = ASN_SEQUENCE_ADD(&meas_cont->plmnList.list, plmnidlist); - - - - - PF_ContainerListItem_t *listitem1 = (PF_ContainerListItem_t*)calloc(1, sizeof(PF_ContainerListItem_t)); - ASN_STRUCT_RESET(asn_DEF_PF_ContainerListItem, listitem1); - listitem1->interface_type = 2; - listitem1->o_CU_UP_PM_Container = *meas_cont; - - OCUUP_PF_Container_t *cuupcont = (OCUUP_PF_Container_t*)calloc(1,sizeof(OCUUP_PF_Container_t)); - ASN_STRUCT_RESET(asn_DEF_OCUUP_PF_Container, cuupcont); - cuupcont->gNB_CU_UP_Name = gnbcuupname; - ret = ASN_SEQUENCE_ADD(&cuupcont->pf_ContainerList.list, listitem1); - - PF_Container_PR pres1 = PF_Container_PR_oCU_UP; - - PF_Container_t *pfcontainer = (PF_Container_t*)calloc(1, sizeof(PF_Container_t)); - ASN_STRUCT_RESET(asn_DEF_PF_Container, pfcontainer); - pfcontainer->present = pres1; - pfcontainer->choice.oCU_UP = *cuupcont; - - PM_Containers_List_t *containers_list = (PM_Containers_List_t*)calloc(1, sizeof(PM_Containers_List_t)); - ASN_STRUCT_RESET(asn_DEF_PM_Containers_List, containers_list); - containers_list->performanceContainer = pfcontainer; - - E2SM_KPM_IndicationMessage_Format1_t *format = - (E2SM_KPM_IndicationMessage_Format1_t*)calloc(1, sizeof(E2SM_KPM_IndicationMessage_Format1_t)); - ASN_STRUCT_RESET(asn_DEF_E2SM_KPM_IndicationMessage_Format1, format); - - ret = ASN_SEQUENCE_ADD(&format->pm_Containers.list, containers_list); - - E2SM_KPM_IndicationMessage__indicationMessage_PR pres = E2SM_KPM_IndicationMessage__indicationMessage_PR_indicationMessage_Format1; - - indicationmessage->indicationMessage.present = pres; - - indicationmessage->indicationMessage.choice.indicationMessage_Format1 = *format; - - char *error_buf = (char*)calloc(300, sizeof(char)); - size_t errlen; - - asn_check_constraints(&asn_DEF_E2SM_KPM_IndicationMessage, indicationmessage, error_buf, &errlen); - printf("error length %d\n", errlen); - printf("error buf %s\n", error_buf); - - xer_fprint(stderr, &asn_DEF_E2SM_KPM_IndicationMessage, indicationmessage); - - - uint8_t e2smbuffer[8192]; - size_t e2smbuffer_size = 8192; - - uint8_t e2smbuffer2[8192]; - size_t e2smbuffer_size2 = 8192; - - asn_enc_rval_t er = - asn_encode_to_buffer(opt_cod, - ATS_ALIGNED_BASIC_PER, - &asn_DEF_E2SM_KPM_IndicationMessage, - indicationmessage, e2smbuffer, e2smbuffer_size); - - fprintf(stderr, "er encded is %d\n", er.encoded); - fprintf(stderr, "after encoding message\n"); - -} - - -void encode_kpm(E2SM_KPM_IndicationMessage_t* indicationmessage) { - - /* - ASN_STRUCT_RESET(asn_DEF_E2SM_KPM_IndicationMessage, indicationmessage); - //std::string gn = "GNBCUUP5"; - //std::vector gnvec(gn.begin(), gn.end()); - //uint8_t *buf = &gnvec[0]; - uint8_t *buf = (uint8_t*)"GNBCUUP5"; - OCTET_STRING_t *gnbcuupname = (OCTET_STRING_t*)calloc(1, sizeof(OCTET_STRING_t)); - gnbcuupname->size = 8; - gnbcuupname->buf = (uint8_t*)calloc(1,8); - memcpy(gnbcuupname->buf, buf, gnbcuupname->size); - - - INTEGER_t *bytesdl = (INTEGER_t*)calloc(1, sizeof(INTEGER_t)); - uint8_t buffer[1]; - buffer[0]= 40000; - bytesdl->buf = (uint8_t*)calloc(1,1); - memcpy(bytesdl->buf, buffer,1); - bytesdl->size = 1; - - INTEGER_t *bytesul = (INTEGER_t*)calloc(1, sizeof(INTEGER_t)); - uint8_t buffer1[1]; - buffer1[0] = 50000; - bytesul->buf = (uint8_t*)calloc(1,1); - memcpy(bytesul->buf, buffer1, 1); - bytesul->size = 1; - - FQIPERSlicesPerPlmnListItem_t *fqilistitem = (FQIPERSlicesPerPlmnListItem_t*)calloc(1, sizeof(FQIPERSlicesPerPlmnListItem_t)); - ASN_STRUCT_RESET(asn_DEF_FQIPERSlicesPerPlmnListItem, fqilistitem); - fqilistitem->fiveQI = 9; - fqilistitem->pDCPBytesDL = bytesdl; - fqilistitem->pDCPBytesUL = bytesul; - - - - // std::string sl = "SLICE4"; - // std::vector slvec(sl.begin(), sl.end()); - // uint8_t *buf1 = &slvec[0]; - uint8_t *buf1 = (uint8_t*)"4"; - OCTET_STRING_t *sst = (OCTET_STRING_t*)calloc(1, sizeof(OCTET_STRING_t)); - sst->size = 6; - sst->buf = (uint8_t*)calloc(1,6); - memcpy(sst->buf,buf1,sst->size); - - // std::string sd = "SD1"; - // std::vector sdvec(sd.begin(), sd.end()); - // uint8_t *bufz = &sdvec[0]; - uint8_t *bufz = (uint8_t*)"SD1"; - OCTET_STRING_t *sds = (OCTET_STRING_t*)calloc(1, sizeof(OCTET_STRING_t)); - sds->size = 3; - sds->buf = (uint8_t*)calloc(1,3); - memcpy(sds->buf, bufz, sds->size); - - - SNSSAI_t *snssai = (SNSSAI_t*)calloc(1, sizeof(SNSSAI_t)); - ASN_STRUCT_RESET(asn_DEF_SNSSAI,snssai); - snssai->sST.buf = (uint8_t*)calloc(1,1); - snssai->sST.size = 1; - memcpy(snssai->sST.buf, buf1, 1); - snssai->sD = (OCTET_STRING_t*)calloc(1, sizeof(OCTET_STRING_t)); - snssai->sD->buf = (uint8_t*)calloc(1,3); - snssai->sD->size = 3; - memcpy(snssai->sD->buf, bufz, 3); - - - - SliceToReportListItem_t *slicelistitem = (SliceToReportListItem_t*)calloc(1,sizeof(SliceToReportListItem_t)); - ASN_STRUCT_RESET(asn_DEF_SliceToReportListItem, slicelistitem); - slicelistitem->sliceID = *snssai; - int ret = ASN_SEQUENCE_ADD(&slicelistitem->fQIPERSlicesPerPlmnList.list, fqilistitem); - - asn_codec_ctx_t *opt_cod; - - - uint8_t e2smbuffera[8192]; - size_t e2smbuffer_sizea = 8192; - - - - asn_enc_rval_t era = - asn_encode_to_buffer(opt_cod, - ATS_ALIGNED_BASIC_PER, - &asn_DEF_SliceToReportListItem, - slicelistitem, e2smbuffera, e2smbuffer_sizea); - fprintf(stderr, "inner er encded is %d\n", era.encoded); - fprintf(stderr, "after encoding message\n"); - - - - FGC_CUUP_PM_Format_t *pm_format = (FGC_CUUP_PM_Format_t*)calloc(1,sizeof(FGC_CUUP_PM_Format_t)); - ASN_STRUCT_RESET(asn_DEF_FGC_CUUP_PM_Format, pm_format); - ret = ASN_SEQUENCE_ADD(&pm_format->sliceToReportList.list, slicelistitem); - - uint8_t *buf2 = (uint8_t*)"747"; - // std::string pl = "PLMNID7"; - // std::vector plvec(pl.begin(), pl.end()); - // uint8_t *buf2 = &plvec[0]; - - OCTET_STRING_t *plmnid = (OCTET_STRING_t*)calloc(1,sizeof(OCTET_STRING_t)); - plmnid->buf = (uint8_t*)calloc(3,1); - plmnid->size = 3; - memcpy(plmnid->buf, buf2, plmnid->size); - - - PlmnID_List_t *plmnidlist = (PlmnID_List_t*)calloc(1,sizeof(PlmnID_List_t)); - ASN_STRUCT_RESET(asn_DEF_PlmnID_List, plmnidlist); - plmnidlist->pLMN_Identity = *plmnid; - plmnidlist->cu_UP_PM_5GC = pm_format; - - CUUPMeasurement_Container_t *meas_cont = (CUUPMeasurement_Container_t*)calloc(1, sizeof(CUUPMeasurement_Container_t)); - ASN_STRUCT_RESET(asn_DEF_CUUPMeasurement_Container, meas_cont); - ret = ASN_SEQUENCE_ADD(&meas_cont->plmnList.list, plmnidlist); - - - - - PF_ContainerListItem_t *listitem1 = (PF_ContainerListItem_t*)calloc(1, sizeof(PF_ContainerListItem_t)); - ASN_STRUCT_RESET(asn_DEF_PF_ContainerListItem, listitem1); - listitem1->interface_type = 2; - listitem1->o_CU_UP_PM_Container = *meas_cont; - - OCUUP_PF_Container_t *cuupcont = (OCUUP_PF_Container_t*)calloc(1,sizeof(OCUUP_PF_Container_t)); - ASN_STRUCT_RESET(asn_DEF_OCUUP_PF_Container, cuupcont); - cuupcont->gNB_CU_UP_Name = gnbcuupname; - ret = ASN_SEQUENCE_ADD(&cuupcont->pf_ContainerList.list, listitem1); - - PF_Container_PR pres1 = PF_Container_PR_oCU_UP; - - PF_Container_t *pfcontainer = (PF_Container_t*)calloc(1, sizeof(PF_Container_t)); - ASN_STRUCT_RESET(asn_DEF_PF_Container, pfcontainer); - pfcontainer->present = pres1; - pfcontainer->choice.oCU_UP = *cuupcont; - - PM_Containers_List_t *containers_list = (PM_Containers_List_t*)calloc(1, sizeof(PM_Containers_List_t)); - ASN_STRUCT_RESET(asn_DEF_PM_Containers_List, containers_list); - containers_list->performanceContainer = pfcontainer; - - E2SM_KPM_IndicationMessage_Format1_t *format = - (E2SM_KPM_IndicationMessage_Format1_t*)calloc(1, sizeof(E2SM_KPM_IndicationMessage_Format1_t)); - ASN_STRUCT_RESET(asn_DEF_E2SM_KPM_IndicationMessage_Format1, format); - - ret = ASN_SEQUENCE_ADD(&format->pm_Containers.list, containers_list); - - E2SM_KPM_IndicationMessage_PR pres = E2SM_KPM_IndicationMessage_PR_indicationMessage_Format1; - - indicationmessage->present = pres; - - indicationmessage->choice.indicationMessage_Format1 = *format; - - char *error_buf = (char*)calloc(300, sizeof(char)); - size_t errlen; - - asn_check_constraints(&asn_DEF_E2SM_KPM_IndicationMessage, indicationmessage, error_buf, &errlen); - printf("error length %d\n", errlen); - printf("error buf %s\n", error_buf); - - xer_fprint(stderr, &asn_DEF_E2SM_KPM_IndicationMessage, indicationmessage); - - - uint8_t e2smbuffer[8192]; - size_t e2smbuffer_size = 8192; - - uint8_t e2smbuffer2[8192]; - size_t e2smbuffer_size2 = 8192; - - asn_enc_rval_t er = - asn_encode_to_buffer(opt_cod, - ATS_ALIGNED_BASIC_PER, - &asn_DEF_E2SM_KPM_IndicationMessage, - indicationmessage, e2smbuffer, e2smbuffer_size); - - fprintf(stderr, "er encded is %d\n", er.encoded); - fprintf(stderr, "after encoding message\n"); - - */ -} - -/* -void encode_kpm_bak(E2SM_KPM_IndicationMessage_t* indicationmessage) { - ASN_STRUCT_RESET(asn_DEF_E2SM_KPM_IndicationMessage, indicationmessage); - std::string gn = "GNBCUUP5"; - std::vector gnvec(gn.begin(), gn.end()); - uint8_t *buf = &gnvec[0]; - OCTET_STRING_t *gnbcuupname = (OCTET_STRING_t*)calloc(1, sizeof(OCTET_STRING_t)); - gnbcuupname->size = 8; - gnbcuupname->buf = (uint8_t*)calloc(1,8); - memcpy(gnbcuupname->buf, buf, gnbcuupname->size); - - - INTEGER_t *bytesdl = (INTEGER_t*)calloc(1, sizeof(INTEGER_t)); - uint8_t buffer[1]; - buffer[0]= 40000; - bytesdl->buf = (uint8_t*)calloc(1,1); - memcpy(bytesdl->buf, buffer,1); - bytesdl->size = 1; - - INTEGER_t *bytesul = (INTEGER_t*)calloc(1, sizeof(INTEGER_t)); - uint8_t buffer1[1]; - buffer1[0] = 50000; - bytesul->buf = (uint8_t*)calloc(1,1); - memcpy(bytesul->buf, buffer1, 1); - bytesul->size = 1; - - FQIPERSlicesPerPlmnListItem_t *fqilistitem = (FQIPERSlicesPerPlmnListItem_t*)calloc(1, sizeof(FQIPERSlicesPerPlmnListItem_t)); - ASN_STRUCT_RESET(asn_DEF_FQIPERSlicesPerPlmnListItem, fqilistitem); - fqilistitem->fiveQI = 9; - fqilistitem->pDCPBytesDL = bytesdl; - fqilistitem->pDCPBytesUL = bytesul; - - - - std::string sl = "SLICE4"; - std::vector slvec(sl.begin(), sl.end()); - // uint8_t *buf1 = &slvec[0]; - uint8_t *buf1 = (uint8_t*)"SLICE4"; - OCTET_STRING_t *sst = (OCTET_STRING_t*)calloc(1, sizeof(OCTET_STRING_t)); - sst->size = 6; - sst->buf = (uint8_t*)calloc(1,6); - memcpy(sst->buf,buf1,sst->size); - - std::string sd = "SD1"; - std::vector sdvec(sd.begin(), sd.end()); - // uint8_t *bufz = &sdvec[0]; - uint8_t *bufz = (uint8_t*)"SD1"; - OCTET_STRING_t *sds = (OCTET_STRING_t*)calloc(1, sizeof(OCTET_STRING_t)); - sds->size = 3; - sds->buf = (uint8_t*)calloc(1,3); - memcpy(sds->buf, bufz, sds->size); - - - SNSSAI_t *snssai = (SNSSAI_t*)calloc(1, sizeof(SNSSAI_t)); - ASN_STRUCT_RESET(asn_DEF_SNSSAI,snssai); - snssai->sST.buf = (uint8_t*)calloc(6,1); - snssai->sST.size = 6; - memcpy(snssai->sST.buf, buf1, 6); - snssai->sD = (OCTET_STRING_t*)calloc(1, sizeof(OCTET_STRING_t)); - snssai->sD->buf = (uint8_t*)calloc(1,3); - snssai->sD->size = 3; - memcpy(snssai->sD->buf, bufz, 3); - - - - SliceToReportListItem_t *slicelistitem = (SliceToReportListItem_t*)calloc(1,sizeof(SliceToReportListItem_t)); - ASN_STRUCT_RESET(asn_DEF_SliceToReportListItem, slicelistitem); - slicelistitem->sliceID = *snssai; - int ret = ASN_SEQUENCE_ADD(&slicelistitem->fQIPERSlicesPerPlmnList.list, fqilistitem); - - uint8_t e2smbuffera[8192]; - size_t e2smbuffer_sizea = 8192; - - auto era = - asn_encode_to_buffer(nullptr, - ATS_ALIGNED_BASIC_PER, - &asn_DEF_SliceToReportListItem, - slicelistitem, e2smbuffera, e2smbuffer_sizea); - fprintf(stderr, "inner er encded is %d\n", era.encoded); - fprintf(stderr, "after encoding message\n"); - - FGC_CUUP_PM_Format_t *pm_format = (FGC_CUUP_PM_Format_t*)calloc(1,sizeof(FGC_CUUP_PM_Format_t)); - ASN_STRUCT_RESET(asn_DEF_FGC_CUUP_PM_Format, pm_format); - ret = ASN_SEQUENCE_ADD(&pm_format->sliceToReportList.list, slicelistitem); - - std::string pl = "PLMNID7"; - std::vector plvec(pl.begin(), pl.end()); - uint8_t *buf2 = &plvec[0]; - - OCTET_STRING_t *plmnid = (OCTET_STRING_t*)calloc(1,sizeof(OCTET_STRING_t)); - plmnid->buf = (uint8_t*)calloc(1,7); - plmnid->size = 7; - memcpy(plmnid->buf, buf2, plmnid->size); - - - PlmnID_List_t *plmnidlist = (PlmnID_List_t*)calloc(1,sizeof(PlmnID_List_t)); - ASN_STRUCT_RESET(asn_DEF_PlmnID_List, plmnidlist); - plmnidlist->pLMN_Identity = *plmnid; - plmnidlist->cu_UP_PM_5GC = pm_format; - - CUUPMeasurement_Container_t *meas_cont = (CUUPMeasurement_Container_t*)calloc(1, sizeof(CUUPMeasurement_Container_t)); - ASN_STRUCT_RESET(asn_DEF_CUUPMeasurement_Container, meas_cont); - ret = ASN_SEQUENCE_ADD(&meas_cont->plmnList.list, plmnidlist); - - - - - PF_ContainerListItem_t *listitem1 = (PF_ContainerListItem_t*)calloc(1, sizeof(PF_ContainerListItem_t)); - ASN_STRUCT_RESET(asn_DEF_PF_ContainerListItem, listitem1); - listitem1->interface_type = 2; - listitem1->o_CU_UP_PM_Container = *meas_cont; - - OCUUP_PF_Container_t *cuupcont = (OCUUP_PF_Container_t*)calloc(1,sizeof(OCUUP_PF_Container_t)); - ASN_STRUCT_RESET(asn_DEF_OCUUP_PF_Container, cuupcont); - cuupcont->gNB_CU_UP_Name = gnbcuupname; - ret = ASN_SEQUENCE_ADD(&cuupcont->pf_ContainerList.list, listitem1); - - PF_Container_PR pres1 = PF_Container_PR_oCU_UP; - - PF_Container_t *pfcontainer = (PF_Container_t*)calloc(1, sizeof(PF_Container_t)); - ASN_STRUCT_RESET(asn_DEF_PF_Container, pfcontainer); - pfcontainer->present = pres1; - pfcontainer->choice.oCU_UP = *cuupcont; - - PM_Containers_List_t *containers_list = (PM_Containers_List_t*)calloc(1, sizeof(PM_Containers_List_t)); - ASN_STRUCT_RESET(asn_DEF_PM_Containers_List, containers_list); - containers_list->performanceContainer = pfcontainer; - - E2SM_KPM_IndicationMessage_Format1_t *format = - (E2SM_KPM_IndicationMessage_Format1_t*)calloc(1, sizeof(E2SM_KPM_IndicationMessage_Format1_t)); - ASN_STRUCT_RESET(asn_DEF_E2SM_KPM_IndicationMessage_Format1, format); - - ret = ASN_SEQUENCE_ADD(&format->pm_Containers.list, containers_list); - - E2SM_KPM_IndicationMessage_PR pres = E2SM_KPM_IndicationMessage_PR_indicationMessage_Format1; - - indicationmessage->present = pres; - - indicationmessage->choice.indicationMessage_Format1 = *format; - - char *error_buf = (char*)calloc(300, sizeof(char)); - size_t errlen; - - asn_check_constraints(&asn_DEF_E2SM_KPM_IndicationMessage, indicationmessage, error_buf, &errlen); - printf("error length %d\n", errlen); - printf("error buf %s\n", error_buf); - - - uint8_t e2smbuffer[8192]; - size_t e2smbuffer_size = 8192; - - uint8_t e2smbuffer2[8192]; - size_t e2smbuffer_size2 = 8192; - - auto er = - asn_encode_to_buffer(nullptr, - ATS_ALIGNED_BASIC_PER, - &asn_DEF_E2SM_KPM_IndicationMessage, - indicationmessage, e2smbuffer, e2smbuffer_size); - - fprintf(stderr, "er encded is %d\n", er.encoded); - fprintf(stderr, "after encoding message\n"); - - -} -*/ diff --git a/e2sim/previous/e2apv1sim/encode_kpm.hpp b/e2sim/previous/e2apv1sim/encode_kpm.hpp deleted file mode 100644 index 682814c..0000000 --- a/e2sim/previous/e2apv1sim/encode_kpm.hpp +++ /dev/null @@ -1,45 +0,0 @@ -#ifndef ENCODE_KPM_HPP -#define ENCODE_KPM_HPP - -extern "C" { - #include "OCUCP-PF-Container.h" - #include "OCTET_STRING.h" - #include "asn_application.h" - #include "E2SM-KPM-IndicationMessage.h" - #include "FQIPERSlicesPerPlmnListItem.h" - #include "E2SM-KPM-RANfunction-Description.h" - #include "Timestamp.h" -} - -void encode_kpm(E2SM_KPM_IndicationMessage_t* indicationmessage); - -void encode_kpm_bak(E2SM_KPM_IndicationMessage_t* indicationmessage); - -void encode_kpm_function_description(E2SM_KPM_RANfunction_Description_t* ranfunc_desc); - -void encode_kpm_report_style5(E2SM_KPM_IndicationMessage_t* indicationmessage); - -void encode_kpm_odu_user_level(RAN_Container_t *ranco); - -void encode_kpm_ocucp_user_level(RAN_Container_t *ranco); - -void encode_kpm_ocuup_user_level(RAN_Container_t *ranco); - -void encode_kpm_report_rancontainer_du(E2SM_KPM_IndicationMessage_t *indMsg); - -void encode_kpm_report_rancontainer_cucp(E2SM_KPM_IndicationMessage_t *indMsg); - -void encode_kpm_report_rancontainer_cuup(E2SM_KPM_IndicationMessage_t *indMsg); - -void encode_kpm_report_style1(E2SM_KPM_IndicationMessage_t* indicationmessage); - -void encode_kpm_report_rancontainer_cucp_parameterized(E2SM_KPM_IndicationMessage_t* indicationmessage,uint8_t *plmnid_buf,uint8_t *nrcellid_buf,uint8_t *crnti_buf,const uint8_t *serving_buf, const uint8_t *neighbor_buf); - -void encode_kpm_report_rancontainer_cuup_parameterized(E2SM_KPM_IndicationMessage_t* indicationmessage, uint8_t *plmnid_buf, uint8_t *nrcellid_buf, uint8_t *crnti_buf,int pdcp_bytesdl, int pdcp_bytesul); - -void encode_kpm_report_style1_parameterized(E2SM_KPM_IndicationMessage_t* indicationmessage, long fiveqi, long dl_prb_usage, long ul_prb_usage, uint8_t* sd_buf, uint8_t* sst_buf,uint8_t* plmnid_buf, uint8_t* nrcellid_buf, long *dl_prbs, long *ul_prbs); - -void encode_kpm_report_style5_parameterized(E2SM_KPM_IndicationMessage_t* indicationmessage, uint8_t *gnbcuupname_buf, int bytes_dl,int bytes_ul, uint8_t *sst_buf, uint8_t *sd_buf, uint8_t *plmnid_buf); - - -#endif diff --git a/e2sim/previous/e2apv1sim/extras/ricsim.cpp b/e2sim/previous/e2apv1sim/extras/ricsim.cpp deleted file mode 100644 index 5f9b7f2..0000000 --- a/e2sim/previous/e2apv1sim/extras/ricsim.cpp +++ /dev/null @@ -1,216 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -#include -#include -#include - -#include "e2sim_sctp.hpp" -#include "e2ap_message_handler.hpp" - -extern "C" { - #include "e2sim_defs.h" - #include "E2AP-PDU.h" - #include "e2ap_asn1c_codec.h" - #include "GlobalE2node-ID.h" - #include "GlobalE2node-gNB-ID.h" - #include "GlobalgNB-ID.h" - #include "OCTET_STRING.h" - #include "asn_application.h" - #include "GNB-ID-Choice.h" - #include "ProtocolIE-Field.h" - #include "E2setupRequest.h" -} - -using namespace std; - -/* -struct { - type **array; - int count; - int size; - void (*free)(decltype(*array)); -} -*/ - -void encode_and_send_sctp_data(E2AP_PDU_t* pdu, int client_fd) -{ - uint8_t *buf; - sctp_buffer_t data; - - data.len = e2ap_asn1c_encode_pdu(pdu, &buf); - memcpy(data.buffer, buf, min(data.len, MAX_SCTP_BUFFER)); - - sctp_send_data(client_fd, data); -} - -void wait_for_sctp_data(int client_fd) -{ - sctp_buffer_t recv_buf; - if(sctp_receive_data(client_fd, recv_buf) > 0) - { - LOG_I("[SCTP] Received new data of size %d", recv_buf.len); - e2ap_handle_sctp_data(client_fd, recv_buf); - } -} - -int main(int argc, char* argv[]){ - LOG_I("Start RIC Simulator"); - - options_t ops = read_input_options(argc, argv); - int client_fd = sctp_start_client(ops.server_ip, ops.server_port); - - //1. Send ENDCX2Setup - // E2AP_PDU_t* pdu_setup = e2ap_xml_to_pdu("E2AP_ENDCX2SetupRequest.xml"); - - printf("out0\n"); - - uint8_t *buf = (uint8_t *)"gnb1"; - - BIT_STRING_t gnb_bstring; - gnb_bstring.buf = buf; - gnb_bstring.size = 4; - gnb_bstring.bits_unused = 0; - - printf("out1\n"); - - - uint8_t *buf2 = (uint8_t *)"plmn3"; - OCTET_STRING_t plmn; - plmn.buf = buf2; - plmn.size = 5; - - GNB_ID_Choice_t gnbchoice; - GNB_ID_Choice_PR pres2 = GNB_ID_Choice_PR_gnb_ID; - gnbchoice.present = pres2; - gnbchoice.choice.gnb_ID = gnb_bstring; - - GlobalgNB_ID_t gnb; - gnb.plmn_id = plmn; - gnb.gnb_id = gnbchoice; - - - - GlobalE2node_gNB_ID_t *e2gnb = (GlobalE2node_gNB_ID_t*)calloc(1, sizeof(GlobalE2node_gNB_ID_t)); - e2gnb->global_gNB_ID = gnb; - - /* - GlobalE2node_ID_t *globale2nodeid = (GlobalE2node_ID_t*)calloc(1, sizeof(GlobalE2node_ID_t)); - GlobalE2node_ID_PR pres; - pres = GlobalE2node_ID_PR_gNB; - globale2nodeid->present = pres; - globale2nodeid->choice.gNB = e2gnb; - */ - - GlobalE2node_ID_t globale2nodeid; - GlobalE2node_ID_PR pres; - pres = GlobalE2node_ID_PR_gNB; - globale2nodeid.present = pres; - globale2nodeid.choice.gNB = e2gnb; - - E2setupRequestIEs_t *e2setuprid = (E2setupRequestIEs_t*)calloc(1, sizeof(E2setupRequest_t));; - E2setupRequestIEs__value_PR pres3; - pres3 = E2setupRequestIEs__value_PR_GlobalE2node_ID; - e2setuprid->id = 4; - e2setuprid->criticality = 0; - e2setuprid->value.choice.GlobalE2node_ID = globale2nodeid; - e2setuprid->value.present = pres3; - - - E2setupRequest_t e2setupreq; - e2setupreq.protocolIEs.list.size = sizeof(E2setupRequestIEs); - e2setupreq.protocolIEs.list.count = 1; - e2setupreq.protocolIEs.list.array = &e2setuprid; - - InitiatingMessage__value_PR pres4; - pres4 = InitiatingMessage__value_PR_E2setupRequest; - InitiatingMessage_t *initmsg = (InitiatingMessage_t*)calloc(1, sizeof(InitiatingMessage_t)); - initmsg->procedureCode = 1; - initmsg->criticality = 0; - initmsg->value.present = pres4; - initmsg->value.choice.E2setupRequest = e2setupreq; - - E2AP_PDU_PR pres5; - pres5 = E2AP_PDU_PR_initiatingMessage; - - E2AP_PDU_t *e2ap_pdu = (E2AP_PDU_t*)calloc(1, sizeof(E2AP_PDU_t)); - e2ap_pdu->present = pres5; - e2ap_pdu->choice.initiatingMessage = initmsg; - - printf("over here\n"); - - asn_fprint(stdout, &asn_DEF_E2AP_PDU, e2ap_pdu); - - - printf("over here 2\n"); - - xer_fprint(stdout, &asn_DEF_E2AP_PDU, e2ap_pdu); - - printf("over here 55\n"); - - E2AP_PDU_t* pdu_setup = e2ap_xml_to_pdu("E2AP_SetupRequest2.xml"); - e2ap_asn1c_print_pdu(pdu_setup); - encode_and_send_sctp_data(pdu_setup, client_fd); - LOG_I("[SCTP] Sent ENDC X2 SETUP REQUEST"); - - - // E2setupRequest_t* pdu_setup = smaller_e2ap_xml_to_pdu("E2AP_PartSetupRequest.xml"); - // e2ap_asn1c_print_pdu(pdu_setup); - // encode_and_send_sctp_data(pdu_setup, client_fd); - LOG_I("[SCTP] Sent ENDC X2 SETUP REQUEST"); - - /* - GlobalE2node_ID_t* pdu_setup = smaller_e2ap_xml_to_pdu("GlobalE2node-ID.xml"); - - asn_fprint(stdout, &asn_DEF_GlobalE2node_ID, pdu_setup); - - printf("over here 2\n"); - - xer_fprint(stdout, &asn_DEF_GlobalE2node_ID, pdu_setup); - */ - /* - e2ap_asn1c_print_pdu(pdu_setup); - encode_and_send_sctp_data(pdu_setup, client_fd); - */ - LOG_I("[SCTP] Sent ENDC X2 SETUP REQUEST"); - - - //2. Receive ENDCX2SetupResponse - wait_for_sctp_data(client_fd); - - //3. Send RICSubscriptionRequest - /* - E2AP_PDU_t* pdu_sub = e2ap_xml_to_pdu("E2AP_RICsubscriptionRequest_Ashwin.xml"); - e2ap_asn1c_print_pdu(pdu_sub); - encode_and_send_sctp_data(pdu_sub, client_fd); - LOG_I("[SCTP] Sent RIC SUBSCRIPTION REQUEST"); - */ - //4. Receive RICSubscriptionResponse - while(1){ - wait_for_sctp_data(client_fd); - } - - - //--------------------------------------- - close(client_fd); - LOG_I("[SCTP] Connection closed."); - - return 0; - -} diff --git a/e2sim/previous/e2apv1sim/helm/README.md b/e2sim/previous/e2apv1sim/helm/README.md deleted file mode 100644 index dfff99a..0000000 --- a/e2sim/previous/e2apv1sim/helm/README.md +++ /dev/null @@ -1,22 +0,0 @@ -################################################################################ -# Copyright (c) 2019 AT&T Intellectual Property. # -# Copyright (c) 2019 Nokia. # -# # -# Licensed under the Apache License, Version 2.0 (the "License"); # -# you may not use this file except in compliance with the License. # -# You may obtain a copy of the License at # -# # -# http://www.apache.org/licenses/LICENSE-2.0 # -# # -# Unless required by applicable law or agreed to in writing, software # -# distributed under the License is distributed on an "AS IS" BASIS, # -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # -# See the License for the specific language governing permissions and # -# limitations under the License. # -################################################################################ - - -# -# the test repo needs to be on the same parent path as the dep repo -# simply run e2sim_install.sh from this directory -# diff --git a/e2sim/previous/e2apv1sim/helm/e2sim/Chart.yaml b/e2sim/previous/e2apv1sim/helm/e2sim/Chart.yaml deleted file mode 100644 index f3a950c..0000000 --- a/e2sim/previous/e2apv1sim/helm/e2sim/Chart.yaml +++ /dev/null @@ -1,22 +0,0 @@ -################################################################################ -# Copyright (c) 2019 AT&T Intellectual Property. # -# Copyright (c) 2019 Nokia. # -# # -# Licensed under the Apache License, Version 2.0 (the "License"); # -# you may not use this file except in compliance with the License. # -# You may obtain a copy of the License at # -# # -# http://www.apache.org/licenses/LICENSE-2.0 # -# # -# Unless required by applicable law or agreed to in writing, software # -# distributed under the License is distributed on an "AS IS" BASIS, # -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # -# See the License for the specific language governing permissions and # -# limitations under the License. # -################################################################################ - -apiVersion: v1 -appVersion: "1.0" -description: A Helm chart for Kubernetes -name: e2sim -version: 0.1.0 diff --git a/e2sim/previous/e2apv1sim/helm/e2sim/templates/_helpers.tpl b/e2sim/previous/e2apv1sim/helm/e2sim/templates/_helpers.tpl deleted file mode 100644 index ce3748d..0000000 --- a/e2sim/previous/e2apv1sim/helm/e2sim/templates/_helpers.tpl +++ /dev/null @@ -1,49 +0,0 @@ -################################################################################ -# Copyright (c) 2019 AT&T Intellectual Property. # -# Copyright (c) 2019 Nokia. # -# # -# Licensed under the Apache License, Version 2.0 (the "License"); # -# you may not use this file except in compliance with the License. # -# You may obtain a copy of the License at # -# # -# http://www.apache.org/licenses/LICENSE-2.0 # -# # -# Unless required by applicable law or agreed to in writing, software # -# distributed under the License is distributed on an "AS IS" BASIS, # -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # -# See the License for the specific language governing permissions and # -# limitations under the License. # -################################################################################ - -{{/* vim: set filetype=mustache: */}} -{{/* -Expand the name of the chart. -*/}} -{{- define "e2sim.name" -}} -{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}} -{{- end -}} - -{{/* -Create a default fully qualified app name. -We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). -If release name contains chart name it will be used as a full name. -*/}} -{{- define "e2sim.fullname" -}} -{{- if .Values.fullnameOverride -}} -{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}} -{{- else -}} -{{- $name := default .Chart.Name .Values.nameOverride -}} -{{- if contains $name .Release.Name -}} -{{- .Release.Name | trunc 63 | trimSuffix "-" -}} -{{- else -}} -{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}} -{{- end -}} -{{- end -}} -{{- end -}} - -{{/* -Create chart name and version as used by the chart label. -*/}} -{{- define "e2sim.chart" -}} -{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}} -{{- end -}} diff --git a/e2sim/previous/e2apv1sim/helm/e2sim/templates/bin/_e2sim-run.sh.tpl b/e2sim/previous/e2apv1sim/helm/e2sim/templates/bin/_e2sim-run.sh.tpl deleted file mode 100755 index 35e01c4..0000000 --- a/e2sim/previous/e2apv1sim/helm/e2sim/templates/bin/_e2sim-run.sh.tpl +++ /dev/null @@ -1,54 +0,0 @@ -{{/* - Copyright (c) 2019 AT&T Intellectual Property. - Copyright (c) 2019 Nokia. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/}} -#!/bin/sh - -# Launch the e2 simulator on ${E2SIM_BIND_ADDR}:${E2SIM_BIND_PORT} -# If E2SIM_BIND_ADDR is not supplied, picks the address of the interface -# associated with the default route for E2SIM_BIND_AF (either -# "inet" [default] or "inet6"). - -if [ -z "${E2SIM_BIND_ADDR}" ]; then - if [ `echo "x${E2SIM_BIND_AF}x" | tr [A-Z] [a-z]` != "xinet6x" ]; then - AF='inet' - DEFROUTE='0/0' - LO='127.0.0.1' - else - AF='inet6' - DEFROUTE='::0/0' - LO='00:00:00:00:00:00' - fi - if [ -z "${E2SIM_BIND_IF}" ]; then - # bind on the address associated with the default route - E2SIM_BIND_IF=`ip -br -f ${AF} route show ${DEFROUTE}| sed 's/.*dev[\ ]*\([^\ ]*\).*/\1/'` - if [ -z ${E2SIM_BIND_IF} ]; then - # this is kinda bogus, but it's the only real fallback: take the first - # non-loopback interface. - E2SIM_BIND_IF=`ip -f ${AF} -o link list up | grep -v LOOPBACK | head -1 |awk -F: '{print $2}'` - fi - fi - E2SIM_BIND_ADDR=`ip -f ${AF} -o addr show ${E2SIM_BIND_IF:-eth0} scope global | sed -e 's/.*inet[6\ ]*\([^\ ]*\)\/.*/\1/'` -fi - -if [ -z $E2SIM_BIND_ADDR ]; then - # search failed. be nondestructively useless. - echo "No suitable address found, binding on loopback addess ${LO}" - E2SIM_BIND_ADDR=${LO} -else - echo "e2sim starting at ${E2SIM_BIND_ADDR}:${E2SIM_PORT:-36421}" -fi - -${E2SIM:-/home/e2sim/build/e2sim} ${E2SIM_BIND_ADDR} ${E2SIM_PORT:-36421} diff --git a/e2sim/previous/e2apv1sim/helm/e2sim/templates/configmap-e2sim-bin.yaml b/e2sim/previous/e2apv1sim/helm/e2sim/templates/configmap-e2sim-bin.yaml deleted file mode 100644 index ec30488..0000000 --- a/e2sim/previous/e2apv1sim/helm/e2sim/templates/configmap-e2sim-bin.yaml +++ /dev/null @@ -1,8 +0,0 @@ -apiVersion: v1 -kind: ConfigMap -metadata: - name: configmap-e2sim-bin - namespace: {{ .Release.Namespace }} -data: - e2sim-run.sh: | - {{- include "e2sim/templates/bin/_e2sim-run.sh.tpl" . | indent 4 }} diff --git a/e2sim/previous/e2apv1sim/helm/e2sim/templates/deployment.yaml b/e2sim/previous/e2apv1sim/helm/e2sim/templates/deployment.yaml deleted file mode 100644 index 21475f1..0000000 --- a/e2sim/previous/e2apv1sim/helm/e2sim/templates/deployment.yaml +++ /dev/null @@ -1,79 +0,0 @@ -{{/* - Copyright (c) 2019 AT&T Intellectual Property. - Copyright (c) 2019 Nokia. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/}} - -apiVersion: extensions/v1beta1 -kind: Deployment -metadata: - name: {{ include "e2sim.fullname" . }} - namespace: {{ .Release.Namespace }} - labels: - app: {{ include "e2sim.name" . }} - chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} - release: {{ .Release.Name }} - heritage: {{ .Release.Service }} -spec: - replicas: {{ .Values.replicaCount }} - template: - metadata: - labels: - app.kubernetes.io/instance: {{ .Release.Name }} - app.kubernetes.io/managed-by: {{ .Release.Service }} - spec: - hostNetwork: true - containers: - - name: {{ include "e2sim.name" . }} - image: "{{ .Values.image.repository }}/{{ .Values.image.name }}:{{ .Values.image.tag }}" - imagePullPolicy: {{ .Values.image.pullPolicy }} - command: - - /e2sim-run.sh - ports: - - containerPort: {{ .Values.service.port }} - env: - - name: E2SIM_NETWORK_TYPE - value: {{ .Values.e2sim.network.type | default "host" }} - - name: E2SIM_PORT - value: {{ .Values.e2sim.network.port | default 36421 |quote}} - - name: E2SIM_BIND_ADDR - value: {{ .Values.e2sim.network.address }} - - name: E2SIM_BIND_IF - value: {{ .Values.e2sim.network.interface }} - - name: E2SIM_BIND_AF - value: {{ .Values.e2sim.network.addressFamily | default "inet" }} - volumeMounts: - - name: dshm - mountPath: /dev/shm - - name: localtime - mountPath: /etc/localtime - readOnly: true - - name: e2sim-bin - subPath: e2sim-run.sh - mountPath: /e2sim-run.sh - resources: - volumes: - - name: dshm - emptyDir: - medium: Memory - - name: localtime - hostPath: - path: /etc/localtime - - name: e2sim-bin - configMap: - name: configmap-e2sim-bin - defaultMode: 0755 - imagePullSecrets: - - name: {{ .Values.image.repositoryCred }} - diff --git a/e2sim/previous/e2apv1sim/helm/e2sim/values.yaml b/e2sim/previous/e2apv1sim/helm/e2sim/values.yaml deleted file mode 100755 index 5f5cbca..0000000 --- a/e2sim/previous/e2apv1sim/helm/e2sim/values.yaml +++ /dev/null @@ -1,48 +0,0 @@ -################################################################################ -# Copyright (c) 2019 AT&T Intellectual Property. # -# Copyright (c) 2019 Nokia. # -# # -# Licensed under the Apache License, Version 2.0 (the "License"); # -# you may not use this file except in compliance with the License. # -# You may obtain a copy of the License at # -# # -# http://www.apache.org/licenses/LICENSE-2.0 # -# # -# Unless required by applicable law or agreed to in writing, software # -# distributed under the License is distributed on an "AS IS" BASIS, # -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # -# See the License for the specific language governing permissions and # -# limitations under the License. # -################################################################################ - -replicaCount: 1 - -image: - repository: snapshot.docker.ranco-dev-tools.eastus.cloudapp.azure.com:10001 - repositoryCred: docker-reg-cred - # for local testing - #repository: ric/testsuite - name: test/e2sim - tag: latest - pullPolicy: IfNotPresent - -nameOverride: "" -fullnameOverride: "" - -e2sim: - network: - # network implementation type: hostnetworking or DANM - # type: ["host"]|"danm" - # where e2sim should listen for SCTP connections: - # o if "address" is supplied, listen on that IP (v4 or v6) address - # o if "address" is not supplied and "interface" is supplied, listen on the - # first globally-scoped address on that interface of family "addressFamily" - # (default "inet") - # o if neither "address" nor "interface" is supplied, listen on the first - # globally-scoped address of family "addressFamily" (default "inet") on - # the interface associated with the container's default route, if any; if - # the container does not have a default route, the first interface with - # a globally-scoped address will be used. - # address: addr - # interface: ifname - # addressFamily: ["inet"]|"inet6" \ No newline at end of file diff --git a/e2sim/previous/e2apv1sim/helm/e2sim_install.sh b/e2sim/previous/e2apv1sim/helm/e2sim_install.sh deleted file mode 100755 index 9b9a13c..0000000 --- a/e2sim/previous/e2apv1sim/helm/e2sim_install.sh +++ /dev/null @@ -1,78 +0,0 @@ -#!/bin/bash -################################################################################ -# Copyright (c) 2019 AT&T Intellectual Property. # -# Copyright (c) 2019 Nokia. # -# # -# Licensed under the Apache License, Version 2.0 (the "License"); # -# you may not use this file except in compliance with the License. # -# You may obtain a copy of the License at # -# # -# http://www.apache.org/licenses/LICENSE-2.0 # -# # -# Unless required by applicable law or agreed to in writing, software # -# distributed under the License is distributed on an "AS IS" BASIS, # -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # -# See the License for the specific language governing permissions and # -# limitations under the License. # -################################################################################ - - -OVERRIDEYAML=$1 - - -DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null && pwd )" - -#/root/test/ric_robot_suite/helm -# extract the base to find root to dep - -BASE=${DIR%/test*} - -# /data/ORAN-OSC/it/dep/ric-platform/50-RIC-Platform/bin/install -BASEDIR05=$BASE/dep/ric-platform/50-RIC-Platform/ -BASEDIRCOMMON=$BASE/dep/ric-common/Common-Template/helm/ric-common - -echo "Using etc/ric.conf from $BASEDIR05" - - -source $BASEDIR05/etc/ric.conf - - -if [ -z "$RICPLT_RELEASE_NAME" ];then - RELEASE_NAME=$helm_release_name -else - RELEASE_NAME=$RICPLT_RELEASE_NAME -fi - -# Namespace configuration -if [ -z "$RICPLT_NAMESPACE" ];then - PLT_NAMESPACE=$plt_namespace -else - PLT_NAMESPACE=$RICPLT_NAMESPACE -fi - - - -RICPLT_COMPONENTS="e2sim" - -echo "Deploying RIC Platform components [$RICPLT_COMPONENTS]" -echo "Platform Namespace: $PLT_NAMESPACE" -echo "Helm Release Name: $RELEASE_NAME" - - -COMMON_CHART_VERSION=$(cat $BASEDIRCOMMON/Chart.yaml | grep version | awk '{print $2}') - -helm package -d /tmp $BASEDIRCOMMON - - -for component in $RICPLT_COMPONENTS; do - echo "Preparing chart for comonent $component" - mkdir -p $DIR/$component/charts/ - cp /tmp/ric-common-$COMMON_CHART_VERSION.tgz $DIR/$component/charts/ - if [ -z $OVERRIDEYAML ]; then - echo "helm install --namespace \"${PLT_NAMESPACE}\" --set \"Release.HelmReleaseName=${RELEASE_NAME}\" --name \"${RELEASE_NAME}-$component\" $DIR/../helm/$component" - helm install --namespace "${PLT_NAMESPACE}" --set "Release.HelmReleaseName=${RELEASE_NAME}" --name "${RELEASE_NAME}-$component" $DIR/$component - else - echo "helm install -f $OVERRIDEYAML --namespace \"${PLT_NAMESPACE}\" --set \"Release.HelmReleaseName=${RELEASE_NAME}\" --name \"${RELEASE_NAME}-$component\" $DIR/../helm/$component" - helm install -f $OVERRIDEYAML --namespace "${PLT_NAMESPACE}" --set "Release.HelmReleaseName=${RELEASE_NAME}" --name "${RELEASE_NAME}-$component" $DIR/$component - fi -done diff --git a/e2sim/previous/e2apv1sim/kpm_callbacks.cpp b/e2sim/previous/e2apv1sim/kpm_callbacks.cpp deleted file mode 100644 index 7f77e94..0000000 --- a/e2sim/previous/e2apv1sim/kpm_callbacks.cpp +++ /dev/null @@ -1,602 +0,0 @@ - - -#include -#include -#include - - - -extern "C" { - #include "OCUCP-PF-Container.h" - #include "OCTET_STRING.h" - #include "asn_application.h" - #include "E2SM-KPM-IndicationMessage.h" - #include "FQIPERSlicesPerPlmnListItem.h" - #include "E2SM-KPM-RANfunction-Description.h" - #include "Timestamp.h" - #include "E2AP-PDU.h" - #include "RICsubscriptionRequest.h" - #include "RICsubscriptionResponse.h" - #include "RICactionType.h" - #include "ProtocolIE-Field.h" - #include "ProtocolIE-SingleContainer.h" - #include "InitiatingMessage.h" -} - -#include "encode_kpm.hpp" - -#include "encode_e2apv1.hpp" - -#include -#include - - - - -#include "e2sim.hpp" - -using json = nlohmann::json; - -using namespace std; - -struct neighbor_cell_entry { - char *cellid; - int rsrp; - int rsrq; - int rssinr; - -}; - -void run_report_loop(long requestorId, long instanceId, long ranFunctionId, long actionId, int socket_fd) { - - //Process simulation file - - ifstream simfile; - string line; - - long seqNum = 1; - - simfile.open("simulation.txt", ios::in); - - cout << "step1" << endl; - - std::ifstream ue_stream("ueMeasReport.txt"); - std::ifstream cell_stream("cellMeasReport.txt"); - - json all_ues_json; - - ue_stream >> all_ues_json; - - json all_cells_json; - - cell_stream >> all_cells_json; - - asn_codec_ctx_t *opt_cod; - - cout << "UE RF Measurements" << endl; - cout << "******************" << endl; - - int numMeasReports = (all_ues_json["/ueMeasReport/ueMeasReportList"_json_pointer]).size(); - - for (int i = 0; i < numMeasReports; i++) { - int nextCellId; - int nextRsrp; - int nextRsrq; - int nextRssinr; - cout << "UE number " + i << endl; - cout << "**********" << endl; - json::json_pointer p1(std::string("/ueMeasReport/ueMeasReportList/") + std::to_string(i) +"/nrCellIdentity"); - nextCellId = all_ues_json[p1].get(); - cout << "Serving Cell " << nextCellId << endl; - - json::json_pointer p2(std::string("/ueMeasReport/ueMeasReportList/") + std::to_string(i) +"/servingCellRfReport/rsrp"); - nextRsrp = all_ues_json[p2].get(); - cout << " RSRP " << nextRsrp << endl; - json::json_pointer p3(std::string("/ueMeasReport/ueMeasReportList/") + std::to_string(i) +"/servingCellRfReport/rsrq"); - nextRsrq = all_ues_json[p3].get(); - cout << " RSRQ " << nextRsrq << endl; - json::json_pointer p4(std::string("/ueMeasReport/ueMeasReportList/") + std::to_string(i) +"/servingCellRfReport/rssinr"); - nextRssinr = all_ues_json[p4].get(); - cout << " RSSINR " << nextRssinr << endl; - - json::json_pointer p5(std::string("/ueMeasReport/ueMeasReportList/") + std::to_string(i) +"/neighbourCellList"); - - int numNeighborCells = (all_ues_json[p5]).size(); - - - //REPORT Message 3 -- Encode and send OCUCP user-level report - - E2SM_KPM_IndicationMessage_t *ind_msg3 = - (E2SM_KPM_IndicationMessage_t*)calloc(1,sizeof(E2SM_KPM_IndicationMessage_t)); - E2AP_PDU *pdu3 = (E2AP_PDU*)calloc(1,sizeof(E2AP_PDU)); - - uint8_t *crnti_buf = (uint8_t*)calloc(1,2); - - if (nextCellId == 0) { - uint8_t *buf2 = (uint8_t*)"12"; - memcpy(crnti_buf, buf2, 2); - } else if (nextCellId == 1) { - uint8_t *buf2 = (uint8_t*)"22"; - memcpy(crnti_buf, buf2, 2); - } - - std::string serving_str = "{\"rsrp\": " + std::to_string(nextRsrp) + ", \"rsrq\": " + - std::to_string(nextRsrq) + ", \"rssinr\": " + std::to_string(nextRssinr) + "}"; - const uint8_t *serving_buf = reinterpret_cast(serving_str.c_str()); - - std::string neighbor_str = "["; - - int nextNbCell; - int nextNbRsrp; - int nextNbRsrq; - int nextNbRssinr; - - for (int j = 0; j < numNeighborCells; j++) { - json::json_pointer p8(std::string("/ueMeasReport/ueMeasReportList/") + std::to_string(i) +"/neighbourCellList/" + std::to_string(j) + "/nbCellIdentity"); - nextNbCell = all_ues_json[p8].get(); - cout << "Neighbor Cell " << all_ues_json[p8] << endl; - json::json_pointer p9(std::string("/ueMeasReport/ueMeasReportList/") + std::to_string(i) - +"/neighbourCellList/" + std::to_string(j) + "/nbCellRfReport/rsrp"); - nextNbRsrp = all_ues_json[p9].get(); - cout << " RSRP " << nextNbRsrp << endl; - - json::json_pointer p10(std::string("/ueMeasReport/ueMeasReportList/") + std::to_string(i) - +"/neighbourCellList/" + std::to_string(j) + "/nbCellRfReport/rsrq"); - nextNbRsrq = all_ues_json[p10].get(); - cout << " RSRQ " << nextNbRsrq << endl; - - json::json_pointer p11(std::string("/ueMeasReport/ueMeasReportList/") + std::to_string(i) - +"/neighbourCellList/" + std::to_string(j) + "/nbCellRfReport/rssinr"); - nextNbRssinr = all_ues_json[p11].get(); - cout << " RSSINR " << nextNbRssinr << endl; - - if (j != 0) { - neighbor_str += ","; - - } - - neighbor_str += "{\"CID\" : \"" + std::to_string(nextNbCell) + "\", \"Cell-RF\" : \"{\"rsrp\": " + std::to_string(nextNbRsrp) + - ", \"rsrq\": " + std::to_string(nextNbRsrq) + ", \"rssinr\": " + std::to_string(nextNbRssinr) + "}}"; - - } - - neighbor_str += "]"; - - const uint8_t *neighbor_buf = reinterpret_cast(neighbor_str.c_str()); - - printf("Neighbor string\n%s", neighbor_buf); - - uint8_t *plmnid_buf = (uint8_t*)"747"; - uint8_t *nrcellid_buf = (uint8_t*)"12340"; - - encode_kpm_report_rancontainer_cucp_parameterized(ind_msg3, plmnid_buf, nrcellid_buf, crnti_buf, serving_buf, neighbor_buf); - - uint8_t e2smbuffer3[8192]; - size_t e2smbuffer_size3 = 8192; - - - asn_enc_rval_t er3 = asn_encode_to_buffer(opt_cod, - ATS_ALIGNED_BASIC_PER, - &asn_DEF_E2SM_KPM_IndicationMessage, - ind_msg3, e2smbuffer3, e2smbuffer_size3); - - fprintf(stderr, "er encded is %d\n", er3.encoded); - fprintf(stderr, "after encoding message\n"); - uint8_t *e2smheader_buf3 = (uint8_t*)"header"; - - generate_e2apv1_indication_request_parameterized(pdu3, requestorId, - instanceId, ranFunctionId, - actionId, seqNum, e2smheader_buf3, 6, e2smbuffer3, er3.encoded); - - encode_and_send_sctp_data(pdu3, socket_fd); - - seqNum++; - - } - - - cout << "Cell Measurements" << endl; - cout << "******************" << endl; - - int numCellMeasReports = (all_cells_json["/cellMeasReport/cellMeasReportList"_json_pointer]).size(); - - uint8_t *sst_buf = (uint8_t*)"1"; - uint8_t *sd_buf = (uint8_t*)"100"; - uint8_t *plmnid_buf = (uint8_t*)"747"; - - for (int i = 0; i < numCellMeasReports; i++) { - - int nextCellId; - int nextPdcpBytesDL; - int nextPdcpBytesUL; - int nextPRBBytesDL; - int nextPRBBytesUL; - - json::json_pointer p1(std::string("/cellMeasReport/cellMeasReportList/") + std::to_string(i) +"/nrCellIdentity"); - nextCellId = all_cells_json[p1].get(); - cout << std::string("Cell number ") << nextCellId << endl; - - cout << "**********" << endl; - - json::json_pointer p2(std::string("/cellMeasReport/cellMeasReportList/") + std::to_string(i) +"/pdcpByteMeasReport/pdcpBytesDl"); - nextPdcpBytesDL = all_cells_json[p2].get(); - cout << std::string(" PDCP Bytes DL ") << nextPdcpBytesDL << endl; - - json::json_pointer p3(std::string("/cellMeasReport/cellMeasReportList/") + std::to_string(i) +"/pdcpByteMeasReport/pdcpBytesUl"); - nextPdcpBytesUL = all_cells_json[p3].get(); - cout << std::string(" PDCP Bytes UL ") << nextPdcpBytesUL << endl; - - uint8_t *buf = (uint8_t*)"GNBCUUP5"; - - int bytes_dl = nextPdcpBytesDL; - - int bytes_ul = nextPdcpBytesUL; - - // int bytes_dl = 3905; - // int bytes_ul = 1609321; - - E2SM_KPM_IndicationMessage_t *ind_msg2 = - (E2SM_KPM_IndicationMessage_t*)calloc(1,sizeof(E2SM_KPM_IndicationMessage_t)); - E2AP_PDU *pdu2 = (E2AP_PDU*)calloc(1,sizeof(E2AP_PDU)); - - encode_kpm_report_style5_parameterized(ind_msg2 , buf, bytes_dl, bytes_ul, sst_buf, sd_buf, plmnid_buf); - - uint8_t e2smbuffer2[8192]; - size_t e2smbuffer_size2 = 8192; - - asn_enc_rval_t er2 = asn_encode_to_buffer(opt_cod, - ATS_ALIGNED_BASIC_PER, - &asn_DEF_E2SM_KPM_IndicationMessage, - ind_msg2, e2smbuffer2, e2smbuffer_size2); - - fprintf(stderr, "er encded is %d\n", er2.encoded); - fprintf(stderr, "after encoding message\n"); - uint8_t *e2smheader_buf2 = (uint8_t*)"header"; - - generate_e2apv1_indication_request_parameterized(pdu2, requestorId, - instanceId, ranFunctionId, - actionId, seqNum, e2smheader_buf2, 6, e2smbuffer2, er2.encoded); - - encode_and_send_sctp_data(pdu2, socket_fd); - - seqNum++; - - - - json::json_pointer p4(std::string("/cellMeasReport/cellMeasReportList/") + std::to_string(i) +"/prbMeasReport/availPrbDl"); - nextPRBBytesDL = all_cells_json[p4].get(); - cout << std::string(" PRB Bytes DL ") << all_cells_json[p4] << endl; - - json::json_pointer p5(std::string("/cellMeasReport/cellMeasReportList/") + std::to_string(i) +"/prbMeasReport/availPrbUl"); - nextPRBBytesUL = all_cells_json[p5].get(); - cout << std::string(" PRB Bytes UL ") << all_cells_json[p5] << endl; - - - //REPORT Message 1 -- Encode and send ODU cell-level report - - E2SM_KPM_IndicationMessage_t *ind_msg1 = - (E2SM_KPM_IndicationMessage_t*)calloc(1,sizeof(E2SM_KPM_IndicationMessage_t)); - E2AP_PDU *pdu = (E2AP_PDU*)calloc(1,sizeof(E2AP_PDU)); - - long fiveqi = 7; - - uint8_t *nrcellid_buf = (uint8_t*)"12340"; - long dl_prbs = nextPRBBytesDL; - long ul_prbs = nextPRBBytesUL; - - encode_kpm_report_style1_parameterized(ind_msg1, fiveqi, dl_prbs, ul_prbs, sst_buf, sd_buf, plmnid_buf, nrcellid_buf, &dl_prbs, &ul_prbs); - - uint8_t e2smbuffer[8192]; - size_t e2smbuffer_size = 8192; - - asn_enc_rval_t er = asn_encode_to_buffer(opt_cod, - ATS_ALIGNED_BASIC_PER, - &asn_DEF_E2SM_KPM_IndicationMessage, - ind_msg1, e2smbuffer, e2smbuffer_size); - - fprintf(stderr, "er encded is %d\n", er.encoded); - fprintf(stderr, "after encoding message\n"); - uint8_t *e2smheader_buf = (uint8_t*)"header"; - - uint8_t *cpid_buf = (uint8_t*)"CPID"; - - fprintf(stderr, "About to encode Indication\n"); - generate_e2apv1_indication_request_parameterized(pdu, requestorId, - instanceId, ranFunctionId, - actionId, seqNum, e2smheader_buf, 6, e2smbuffer, er.encoded); - - encode_and_send_sctp_data(pdu, socket_fd); - - seqNum++; - - } - - - /* - if (simfile.is_open()) { - - while (getline(simfile, line)) { - cout << line << "\n"; - - //REPORT Message 1 -- Encode and send ODU cell-level report - - E2SM_KPM_IndicationMessage_t *ind_msg1 = - (E2SM_KPM_IndicationMessage_t*)calloc(1,sizeof(E2SM_KPM_IndicationMessage_t)); - E2AP_PDU *pdu = (E2AP_PDU*)calloc(1,sizeof(E2AP_PDU)); - - long fiveqi = 7; - uint8_t *sst_buf = (uint8_t*)"1"; - uint8_t *sd_buf = (uint8_t*)"100"; - uint8_t *plmnid_buf = (uint8_t*)"747"; - uint8_t *nrcellid_buf = (uint8_t*)"12340"; - long dl_prbs = 100; - long ul_prbs = 50; - - encode_kpm_report_style1_parameterized(ind_msg1, fiveqi, dl_prbs, ul_prbs, sst_buf, sd_buf, plmnid_buf, nrcellid_buf, &dl_prbs, &ul_prbs); - - uint8_t e2smbuffer[8192]; - size_t e2smbuffer_size = 8192; - asn_codec_ctx_t *opt_cod; - - asn_enc_rval_t er = asn_encode_to_buffer(opt_cod, - ATS_ALIGNED_BASIC_PER, - &asn_DEF_E2SM_KPM_IndicationMessage, - ind_msg1, e2smbuffer, e2smbuffer_size); - - fprintf(stderr, "er encded is %d\n", er.encoded); - fprintf(stderr, "after encoding message\n"); - uint8_t *e2smheader_buf = (uint8_t*)"header"; - - uint8_t *cpid_buf = (uint8_t*)"CPID"; - - fprintf(stderr, "About to encode Indication\n"); - generate_e2apv1_indication_request_parameterized(pdu, requestorId, - instanceId, ranFunctionId, - actionId, seqNum, e2smheader_buf, 6, e2smbuffer, er.encoded); - - encode_and_send_sctp_data(pdu, socket_fd); - - seqNum++; - - //REPORT Message 2 -- Encode and send OCUUP cell-level report - - uint8_t *buf = (uint8_t*)"GNBCUUP5"; - - int bytes_dl = 40000; - int bytes_ul = 50000; - - E2SM_KPM_IndicationMessage_t *ind_msg2 = - (E2SM_KPM_IndicationMessage_t*)calloc(1,sizeof(E2SM_KPM_IndicationMessage_t)); - E2AP_PDU *pdu2 = (E2AP_PDU*)calloc(1,sizeof(E2AP_PDU)); - - encode_kpm_report_style5_parameterized(ind_msg2 , buf, bytes_dl, bytes_ul, sst_buf, sd_buf, plmnid_buf); - - uint8_t e2smbuffer2[8192]; - size_t e2smbuffer_size2 = 8192; - - - asn_enc_rval_t er2 = asn_encode_to_buffer(opt_cod, - ATS_ALIGNED_BASIC_PER, - &asn_DEF_E2SM_KPM_IndicationMessage, - ind_msg2, e2smbuffer2, e2smbuffer_size2); - - fprintf(stderr, "er encded is %d\n", er2.encoded); - fprintf(stderr, "after encoding message\n"); - uint8_t *e2smheader_buf2 = (uint8_t*)"header"; - - generate_e2apv1_indication_request_parameterized(pdu2, requestorId, - instanceId, ranFunctionId, - actionId, seqNum, e2smheader_buf2, 6, e2smbuffer2, er2.encoded); - - encode_and_send_sctp_data(pdu2, socket_fd); - - seqNum++; - - //REPORT Message 3 -- Encode and send OCUCP user-level report - - E2SM_KPM_IndicationMessage_t *ind_msg3 = - (E2SM_KPM_IndicationMessage_t*)calloc(1,sizeof(E2SM_KPM_IndicationMessage_t)); - E2AP_PDU *pdu3 = (E2AP_PDU*)calloc(1,sizeof(E2AP_PDU)); - - uint8_t *crnti_buf = (uint8_t*)"12"; - // uint8_t *serving_buf = (uint8_t*)"RSRP10"; - //uint8_t *neighbor_buf = (uint8_t*)"-10,-15"; - int rsrpServ = 10; - int rsrqServ = 0; - int rssinrServ = 0; - - std::string serving_str = "{\"rsrp\": " + std::to_string(rsrpServ) + ", \"rsrq\": " + - std::to_string(rsrqServ) + ", \"rssinr\": " + std::to_string(rssinrServ) + "}"; - const uint8_t *serving_buf = reinterpret_cast(serving_str.c_str()); - - - neighbor_cell_entry n_entries[3]; - n_entries[0] = {"123", 10, 0, 0}; - n_entries[1] = {"456", 10, 0, 0}; - n_entries[2] = {"789", 10, 0, 0}; - - std::string neighbor_str = "["; - - for (int i=0; i < sizeof(n_entries)/sizeof(n_entries[0]); i++) { - - if (i != 0) { - neighbor_str += ","; - } - neighbor_str += "{\"CID\" : \"" + std::string(n_entries[i].cellid) + "\", \"Cell-RF\" : \"{\"rsrp\": " + std::to_string(n_entries[i].rsrp) + - ", \"rsrq\": " + std::to_string(n_entries[i].rsrq) + ", \"rssinr\": " + std::to_string(n_entries[i].rsrp) + "}}"; - } - - neighbor_str += "]"; - - const uint8_t *neighbor_buf = reinterpret_cast(neighbor_str.c_str()); - - printf("Neighbor string\n%s", neighbor_buf); - - encode_kpm_report_rancontainer_cucp_parameterized(ind_msg3, plmnid_buf, nrcellid_buf, crnti_buf, serving_buf, neighbor_buf); - - uint8_t e2smbuffer3[8192]; - size_t e2smbuffer_size3 = 8192; - - asn_enc_rval_t er3 = asn_encode_to_buffer(opt_cod, - ATS_ALIGNED_BASIC_PER, - &asn_DEF_E2SM_KPM_IndicationMessage, - ind_msg3, e2smbuffer3, e2smbuffer_size3); - - fprintf(stderr, "er encded is %d\n", er3.encoded); - fprintf(stderr, "after encoding message\n"); - uint8_t *e2smheader_buf3 = (uint8_t*)"header"; - - generate_e2apv1_indication_request_parameterized(pdu3, requestorId, - instanceId, ranFunctionId, - actionId, seqNum, e2smheader_buf3, 6, e2smbuffer3, er3.encoded); - - encode_and_send_sctp_data(pdu3, socket_fd); - - seqNum++; - - //Encode and send OCUUP user-level report - - - - //Encode and send ODU user-level report - - - - - } - - simfile.close(); - - } - */ - -} - -void callback_kpm_subscription_request(E2AP_PDU_t *sub_req_pdu, int socket_fd) { - - - //Record RIC Request ID - //Go through RIC action to be Setup List - //Find first entry with REPORT action Type - //Record ricActionID - //Encode subscription response - - RICsubscriptionRequest_t orig_req = - sub_req_pdu->choice.initiatingMessage->value.choice.RICsubscriptionRequest; - - RICsubscriptionResponse_IEs_t *ricreqid = - (RICsubscriptionResponse_IEs_t*)calloc(1, sizeof(RICsubscriptionResponse_IEs_t)); - - int count = orig_req.protocolIEs.list.count; - int size = orig_req.protocolIEs.list.size; - - RICsubscriptionRequest_IEs_t **ies = (RICsubscriptionRequest_IEs_t**)orig_req.protocolIEs.list.array; - - fprintf(stderr, "count%d\n", count); - fprintf(stderr, "size%d\n", size); - - RICsubscriptionRequest_IEs__value_PR pres; - - long reqRequestorId; - long reqInstanceId; - long reqActionId; - - std::vector actionIdsAccept; - std::vector actionIdsReject; - - for (int i=0; i < count; i++) { - RICsubscriptionRequest_IEs_t *next_ie = ies[i]; - pres = next_ie->value.present; - - fprintf(stderr, "next present value %d\n", pres); - - switch(pres) { - case RICsubscriptionRequest_IEs__value_PR_RICrequestID: - { - RICrequestID_t reqId = next_ie->value.choice.RICrequestID; - long requestorId = reqId.ricRequestorID; - long instanceId = reqId.ricInstanceID; - fprintf(stderr, "requestorId %d\n", requestorId); - fprintf(stderr, "instanceId %d\n", instanceId); - reqRequestorId = requestorId; - reqInstanceId = instanceId; - - break; - } - case RICsubscriptionRequest_IEs__value_PR_RANfunctionID: - break; - case RICsubscriptionRequest_IEs__value_PR_RICsubscriptionDetails: - { - RICsubscriptionDetails_t subDetails = next_ie->value.choice.RICsubscriptionDetails; - RICeventTriggerDefinition_t triggerDef = subDetails.ricEventTriggerDefinition; - RICactions_ToBeSetup_List_t actionList = subDetails.ricAction_ToBeSetup_List; - - //We are ignoring the trigger definition - - //We identify the first action whose type is REPORT - //That is the only one accepted; all others are rejected - - int actionCount = actionList.list.count; - fprintf(stderr, "action count%d\n", actionCount); - - auto **item_array = actionList.list.array; - - bool foundAction = false; - - for (int i=0; i < actionCount; i++) { - - auto *next_item = item_array[i]; - RICactionID_t actionId = ((RICaction_ToBeSetup_ItemIEs*)next_item)->value.choice.RICaction_ToBeSetup_Item.ricActionID; - RICactionType_t actionType = ((RICaction_ToBeSetup_ItemIEs*)next_item)->value.choice.RICaction_ToBeSetup_Item.ricActionType; - - if (!foundAction && actionType == RICactionType_report) { - reqActionId = actionId; - actionIdsAccept.push_back(reqActionId); - printf("adding accept\n"); - foundAction = true; - } else { - reqActionId = actionId; - printf("adding reject\n"); - actionIdsReject.push_back(reqActionId); - } - } - - break; - } - } - - } - - fprintf(stderr, "After Processing Subscription Request\n"); - - fprintf(stderr, "requestorId %d\n", reqRequestorId); - fprintf(stderr, "instanceId %d\n", reqInstanceId); - - - for (int i=0; i < actionIdsAccept.size(); i++) { - fprintf(stderr, "Action ID %d %ld\n", i, actionIdsAccept.at(i)); - - } - - E2AP_PDU *e2ap_pdu = (E2AP_PDU*)calloc(1,sizeof(E2AP_PDU)); - - long *accept_array = &actionIdsAccept[0]; - long *reject_array = &actionIdsReject[0]; - int accept_size = actionIdsAccept.size(); - int reject_size = actionIdsReject.size(); - - generate_e2apv1_subscription_response_success(e2ap_pdu, accept_array, reject_array, accept_size, reject_size, reqRequestorId, reqInstanceId); - - encode_and_send_sctp_data(e2ap_pdu,socket_fd); - - //Start thread for sending REPORT messages - - // std::thread loop_thread; - - long funcId = 1; - - run_report_loop(reqRequestorId, reqInstanceId, funcId, reqActionId, socket_fd); - - // loop_thread = std::thread(&run_report_loop); - -} diff --git a/e2sim/previous/e2apv1sim/kpm_callbacks.hpp b/e2sim/previous/e2apv1sim/kpm_callbacks.hpp deleted file mode 100644 index ef590a2..0000000 --- a/e2sim/previous/e2apv1sim/kpm_callbacks.hpp +++ /dev/null @@ -1,4 +0,0 @@ - -void callback_kpm_subscription_request(E2AP_PDU_t *pdu, int socket_fd); - -void run_report_loop(long requestorId, long instanceId, long ranFunctionId, long actionId); diff --git a/e2sim/previous/e2apv1sim/ricsim.cpp b/e2sim/previous/e2apv1sim/ricsim.cpp deleted file mode 100644 index d91c9e5..0000000 --- a/e2sim/previous/e2apv1sim/ricsim.cpp +++ /dev/null @@ -1,132 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -#include -#include -#include - -#include "e2sim_sctp.hpp" -#include "e2ap_message_handler.hpp" - -#include "encode_e2apv1.hpp" -#include "encode_kpm.hpp" - -extern "C" { - #include "e2sim_defs.h" - #include "E2AP-PDU.h" - #include "e2ap_asn1c_codec.h" - #include "GlobalE2node-ID.h" - #include "GlobalE2node-gNB-ID.h" - #include "GlobalgNB-ID.h" - #include "OCTET_STRING.h" - #include "asn_application.h" - #include "GNB-ID-Choice.h" - #include "ProtocolIE-Field.h" - #include "E2setupRequest.h" - #include "RICaction-ToBeSetup-Item.h" - #include "RICactions-ToBeSetup-List.h" - #include "RICeventTriggerDefinition.h" - #include "RICsubscriptionRequest.h" - #include "ProtocolIE-SingleContainer.h" - #include "RANfunctions-List.h" - #include "RICindication.h" - #include "RICsubsequentActionType.h" - #include "RICsubsequentAction.h" - #include "RICtimeToWait.h" -} - -using namespace std; - -/* -struct { - type **array; - int count; - int size; - void (*free)(decltype(*array)); -} -*/ - -int client_fd = 0; - -void encode_and_send_sctp_data(E2AP_PDU_t* pdu, int client_fd) -{ - uint8_t *buf; - sctp_buffer_t data; - - data.len = e2ap_asn1c_encode_pdu(pdu, &buf); - memcpy(data.buffer, buf, min(data.len, MAX_SCTP_BUFFER)); - - sctp_send_data(client_fd, data); -} - - -void encode_and_send_sctp_data(E2AP_PDU_t* pdu) -{ - uint8_t *buf; - sctp_buffer_t data; - - data.len = e2ap_asn1c_encode_pdu(pdu, &buf); - memcpy(data.buffer, buf, min(data.len, MAX_SCTP_BUFFER)); - - sctp_send_data(client_fd, data); -} - -void wait_for_sctp_data(int client_fd) -{ - sctp_buffer_t recv_buf; - if(sctp_receive_data(client_fd, recv_buf) > 0) - { - LOG_I("[SCTP] Received new data of size %d", recv_buf.len); - e2ap_handle_sctp_data(client_fd, recv_buf, false); - } -} - - - -int main(int argc, char* argv[]){ - LOG_I("Start RIC Simulator"); - - bool xmlenc = true; - - options_t ops = read_input_options(argc, argv); - - int server_fd = sctp_start_server(ops.server_ip, ops.server_port); - client_fd = sctp_accept_connection(ops.server_ip, server_fd); - - sctp_buffer_t recv_buf; - - LOG_I("[SCTP] Waiting for SCTP data"); - - while(1) //constantly looking for data on SCTP interface - { - LOG_I("in while loop"); - if(sctp_receive_data(client_fd, recv_buf) <= 0) - break; - - LOG_I("[SCTP] Received new data of size %d", recv_buf.len); - - e2ap_handle_sctp_data(client_fd, recv_buf, xmlenc); - - if (xmlenc) - xmlenc = false; - } - - return 0; - -} diff --git a/e2sim/previous/e2apv1sim/ricsim.hpp b/e2sim/previous/e2apv1sim/ricsim.hpp deleted file mode 100644 index 9af2552..0000000 --- a/e2sim/previous/e2apv1sim/ricsim.hpp +++ /dev/null @@ -1,5 +0,0 @@ -#include "E2AP-PDU.h" - -void encode_and_send_sctp_data(E2AP_PDU_t* pdu); - -void encode_and_send_sctp_data(E2AP_PDU_t* pdu, int socket_fd); diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/ANY.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/ANY.c deleted file mode 100644 index 0b81557..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/ANY.c +++ /dev/null @@ -1,450 +0,0 @@ -/* - * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include - -asn_OCTET_STRING_specifics_t asn_SPC_ANY_specs = { - sizeof(ANY_t), - offsetof(ANY_t, _asn_ctx), - ASN_OSUBV_ANY -}; -asn_TYPE_operation_t asn_OP_ANY = { - OCTET_STRING_free, - OCTET_STRING_print, - OCTET_STRING_compare, - OCTET_STRING_decode_ber, - OCTET_STRING_encode_der, - OCTET_STRING_decode_xer_hex, - ANY_encode_xer, -#ifdef ASN_DISABLE_OER_SUPPORT - 0, - 0, -#else - 0, - 0, -#endif /* ASN_DISABLE_OER_SUPPORT */ -#ifdef ASN_DISABLE_PER_SUPPORT - 0, 0, 0, 0, -#else - ANY_decode_uper, - ANY_encode_uper, - ANY_decode_aper, - ANY_encode_aper, -#endif /* ASN_DISABLE_PER_SUPPORT */ - 0, /* Random fill is not defined for ANY type */ - 0 /* Use generic outmost tag fetcher */ -}; -asn_TYPE_descriptor_t asn_DEF_ANY = { - "ANY", - "ANY", - &asn_OP_ANY, - 0, 0, 0, 0, - { 0, 0, asn_generic_no_constraint }, /* No constraints */ - 0, 0, /* No members */ - &asn_SPC_ANY_specs, -}; - -#undef RETURN -#define RETURN(_code) \ - do { \ - asn_dec_rval_t tmprval; \ - tmprval.code = _code; \ - tmprval.consumed = consumed_myself; \ - return tmprval; \ - } while(0) - -asn_enc_rval_t -ANY_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, - enum xer_encoder_flags_e flags, asn_app_consume_bytes_f *cb, - void *app_key) { - if(flags & XER_F_CANONICAL) { - /* - * Canonical XER-encoding of ANY type is not supported. - */ - ASN__ENCODE_FAILED; - } - - /* Dump as binary */ - return OCTET_STRING_encode_xer(td, sptr, ilevel, flags, cb, app_key); -} - -struct _callback_arg { - uint8_t *buffer; - size_t offset; - size_t size; -}; - -static int ANY__consume_bytes(const void *buffer, size_t size, void *key); - -int -ANY_fromType(ANY_t *st, asn_TYPE_descriptor_t *td, void *sptr) { - struct _callback_arg arg; - asn_enc_rval_t erval = {0,0,0}; - - if(!st || !td) { - errno = EINVAL; - return -1; - } - - if(!sptr) { - if(st->buf) FREEMEM(st->buf); - st->size = 0; - return 0; - } - - arg.offset = arg.size = 0; - arg.buffer = 0; - - erval = der_encode(td, sptr, ANY__consume_bytes, &arg); - if(erval.encoded == -1) { - if(arg.buffer) FREEMEM(arg.buffer); - return -1; - } - assert((size_t)erval.encoded == arg.offset); - - if(st->buf) FREEMEM(st->buf); - st->buf = arg.buffer; - st->size = arg.offset; - - return 0; -} - -int -ANY_fromType_aper(ANY_t *st, asn_TYPE_descriptor_t *td, void *sptr) { - uint8_t *buffer = NULL; - ssize_t erval; - - if(!st || !td) { - errno = EINVAL; - return -1; - } - - if(!sptr) { - if(st->buf) FREEMEM(st->buf); - st->size = 0; - return 0; - } - - erval = aper_encode_to_new_buffer(td, td->encoding_constraints.per_constraints, sptr, (void**)&buffer); - - if(erval == -1) { - if(buffer) FREEMEM(buffer); - return -1; - } - assert((size_t)erval > 0); - - if(st->buf) FREEMEM(st->buf); - st->buf = buffer; - st->size = erval; - - return 0; -} - -ANY_t * -ANY_new_fromType(asn_TYPE_descriptor_t *td, void *sptr) { - ANY_t tmp; - ANY_t *st; - - if(!td || !sptr) { - errno = EINVAL; - return 0; - } - - memset(&tmp, 0, sizeof(tmp)); - - if(ANY_fromType(&tmp, td, sptr)) return 0; - - st = (ANY_t *)CALLOC(1, sizeof(ANY_t)); - if(st) { - *st = tmp; - return st; - } else { - FREEMEM(tmp.buf); - return 0; - } -} - -ANY_t * -ANY_new_fromType_aper(asn_TYPE_descriptor_t *td, void *sptr) { - ANY_t tmp; - ANY_t *st; - - if(!td || !sptr) { - errno = EINVAL; - return 0; - } - - memset(&tmp, 0, sizeof(tmp)); - - if(ANY_fromType_aper(&tmp, td, sptr)) return 0; - - st = (ANY_t *)CALLOC(1, sizeof(ANY_t)); - if(st) { - *st = tmp; - return st; - } else { - FREEMEM(tmp.buf); - return 0; - } -} - -int -ANY_to_type(ANY_t *st, asn_TYPE_descriptor_t *td, void **struct_ptr) { - asn_dec_rval_t rval; - void *newst = 0; - - if(!st || !td || !struct_ptr) { - errno = EINVAL; - return -1; - } - - if(st->buf == 0) { - /* Nothing to convert, make it empty. */ - *struct_ptr = (void *)0; - return 0; - } - - rval = ber_decode(0, td, (void **)&newst, st->buf, st->size); - if(rval.code == RC_OK) { - *struct_ptr = newst; - return 0; - } else { - /* Remove possibly partially decoded data. */ - ASN_STRUCT_FREE(*td, newst); - return -1; - } -} - -int -ANY_to_type_aper(ANY_t *st, asn_TYPE_descriptor_t *td, void **struct_ptr) { - asn_dec_rval_t rval; - void *newst = 0; - - if(!st || !td || !struct_ptr) { - errno = EINVAL; - return -1; - } - - if(st->buf == 0) { - /* Nothing to convert, make it empty. */ - *struct_ptr = (void *)0; - return 0; - } - - rval = aper_decode(0, td, (void **)&newst, st->buf, st->size, 0, 0); - if(rval.code == RC_OK) { - *struct_ptr = newst; - return 0; - } else { - /* Remove possibly partially decoded data. */ - ASN_STRUCT_FREE(*td, newst); - return -1; - } -} - -static int ANY__consume_bytes(const void *buffer, size_t size, void *key) { - struct _callback_arg *arg = (struct _callback_arg *)key; - - if((arg->offset + size) >= arg->size) { - size_t nsize = (arg->size ? arg->size << 2 : 16) + size; - void *p = REALLOC(arg->buffer, nsize); - if(!p) return -1; - arg->buffer = (uint8_t *)p; - arg->size = nsize; - } - - memcpy(arg->buffer + arg->offset, buffer, size); - arg->offset += size; - assert(arg->offset < arg->size); - - return 0; -} - -#ifndef ASN_DISABLE_PER_SUPPORT - -asn_dec_rval_t -ANY_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, - asn_per_data_t *pd) { - const asn_OCTET_STRING_specifics_t *specs = - td->specifics ? (const asn_OCTET_STRING_specifics_t *)td->specifics - : &asn_SPC_ANY_specs; - size_t consumed_myself = 0; - int repeat; - ANY_t *st = (ANY_t *)*sptr; - - (void)opt_codec_ctx; - (void)constraints; - - /* - * Allocate the structure. - */ - if(!st) { - st = (ANY_t *)(*sptr = CALLOC(1, specs->struct_size)); - if(!st) RETURN(RC_FAIL); - } - - ASN_DEBUG("UPER Decoding ANY type"); - - st->size = 0; - do { - ssize_t raw_len; - ssize_t len_bytes; - ssize_t len_bits; - void *p; - int ret; - - /* Get the PER length */ - raw_len = uper_get_length(pd, -1, 0, &repeat); - if(raw_len < 0) RETURN(RC_WMORE); - if(raw_len == 0 && st->buf) break; - - ASN_DEBUG("Got PER length len %" ASN_PRI_SIZE ", %s (%s)", raw_len, - repeat ? "repeat" : "once", td->name); - len_bytes = raw_len; - len_bits = len_bytes * 8; - - p = REALLOC(st->buf, st->size + len_bytes + 1); - if(!p) RETURN(RC_FAIL); - st->buf = (uint8_t *)p; - - ret = per_get_many_bits(pd, &st->buf[st->size], 0, len_bits); - if(ret < 0) RETURN(RC_WMORE); - consumed_myself += len_bits; - st->size += len_bytes; - } while(repeat); - st->buf[st->size] = 0; /* nul-terminate */ - - RETURN(RC_OK); -} - -asn_enc_rval_t -ANY_encode_uper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, const void *sptr, - asn_per_outp_t *po) { - const ANY_t *st = (const ANY_t *)sptr; - asn_enc_rval_t er = {0, 0, 0}; - const uint8_t *buf; - size_t size; - int ret; - - (void)constraints; - - if(!st || (!st->buf && st->size)) ASN__ENCODE_FAILED; - - buf = st->buf; - size = st->size; - do { - int need_eom = 0; - ssize_t may_save = uper_put_length(po, size, &need_eom); - if(may_save < 0) ASN__ENCODE_FAILED; - - ret = per_put_many_bits(po, buf, may_save * 8); - if(ret) ASN__ENCODE_FAILED; - - buf += may_save; - size -= may_save; - assert(!(may_save & 0x07) || !size); - if(need_eom && uper_put_length(po, 0, 0)) - ASN__ENCODE_FAILED; /* End of Message length */ - } while(size); - - ASN__ENCODED_OK(er); -} - -asn_dec_rval_t -ANY_decode_aper(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, - asn_per_data_t *pd) { - const asn_OCTET_STRING_specifics_t *specs = - td->specifics ? (const asn_OCTET_STRING_specifics_t *)td->specifics - : &asn_SPC_ANY_specs; - size_t consumed_myself = 0; - int repeat; - ANY_t *st = (ANY_t *)*sptr; - - (void)opt_codec_ctx; - (void)constraints; - - /* - * Allocate the structure. - */ - if(!st) { - st = (ANY_t *)(*sptr = CALLOC(1, specs->struct_size)); - if(!st) RETURN(RC_FAIL); - } - - ASN_DEBUG("APER Decoding ANY type"); - - st->size = 0; - do { - ssize_t raw_len; - ssize_t len_bytes; - ssize_t len_bits; - void *p; - int ret; - - /* Get the PER length */ - raw_len = aper_get_length(pd, -1, 0, &repeat); - if(raw_len < 0) RETURN(RC_WMORE); - if(raw_len == 0 && st->buf) break; - - ASN_DEBUG("Got PER length len %" ASN_PRI_SIZE ", %s (%s)", raw_len, - repeat ? "repeat" : "once", td->name); - len_bytes = raw_len; - len_bits = len_bytes * 8; - - p = REALLOC(st->buf, st->size + len_bytes + 1); - if(!p) RETURN(RC_FAIL); - st->buf = (uint8_t *)p; - - ret = per_get_many_bits(pd, &st->buf[st->size], 0, len_bits); - if(ret < 0) RETURN(RC_WMORE); - consumed_myself += len_bits; - st->size += len_bytes; - } while(repeat); - st->buf[st->size] = 0; /* nul-terminate */ - - RETURN(RC_OK); -} - -asn_enc_rval_t -ANY_encode_aper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, const void *sptr, - asn_per_outp_t *po) { - const ANY_t *st = (const ANY_t *)sptr; - asn_enc_rval_t er = {0, 0, 0}; - const uint8_t *buf; - size_t size; - int ret; - - (void)constraints; - - if(!st || (!st->buf && st->size)) ASN__ENCODE_FAILED; - - buf = st->buf; - size = st->size; - do { - int need_eom = 0; - ssize_t may_save = uper_put_length(po, size, &need_eom); - if(may_save < 0) ASN__ENCODE_FAILED; - - ret = per_put_many_bits(po, buf, may_save * 8); - if(ret) ASN__ENCODE_FAILED; - - buf += may_save; - size -= may_save; - assert(!(may_save & 0x07) || !size); - if(need_eom && uper_put_length(po, 0, 0)) - ASN__ENCODE_FAILED; /* End of Message length */ - } while(size); - - ASN__ENCODED_OK(er); -} -#endif /* ASN_DISABLE_PER_SUPPORT */ - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/ANY.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/ANY.h deleted file mode 100644 index b30381f..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/ANY.h +++ /dev/null @@ -1,65 +0,0 @@ -/*- - * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef ASN_TYPE_ANY_H -#define ASN_TYPE_ANY_H - -#include /* Implemented via OCTET STRING type */ - -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct ANY { - uint8_t *buf; /* BER-encoded ANY contents */ - int size; /* Size of the above buffer */ - - asn_struct_ctx_t _asn_ctx; /* Parsing across buffer boundaries */ -} ANY_t; - -extern asn_TYPE_descriptor_t asn_DEF_ANY; -extern asn_TYPE_operation_t asn_OP_ANY; -extern asn_OCTET_STRING_specifics_t asn_SPC_ANY_specs; - -asn_struct_free_f ANY_free; -asn_struct_print_f ANY_print; -ber_type_decoder_f ANY_decode_ber; -der_type_encoder_f ANY_encode_der; -xer_type_encoder_f ANY_encode_xer; -per_type_decoder_f ANY_decode_uper; -per_type_encoder_f ANY_encode_uper; -per_type_decoder_f ANY_decode_aper; -per_type_encoder_f ANY_encode_aper; - -#define ANY_free OCTET_STRING_free -#define ANY_print OCTET_STRING_print -#define ANY_compare OCTET_STRING_compare -#define ANY_constraint asn_generic_no_constraint -#define ANY_decode_ber OCTET_STRING_decode_ber -#define ANY_encode_der OCTET_STRING_encode_der -#define ANY_decode_xer OCTET_STRING_decode_xer_hex - -/****************************** - * Handy conversion routines. * - ******************************/ - -/* Convert another ASN.1 type into the ANY. This implies DER encoding. */ -int ANY_fromType(ANY_t *, asn_TYPE_descriptor_t *td, void *struct_ptr); -int ANY_fromType_aper(ANY_t *st, asn_TYPE_descriptor_t *td, void *sptr); -ANY_t *ANY_new_fromType(asn_TYPE_descriptor_t *td, void *struct_ptr); -ANY_t *ANY_new_fromType_aper(asn_TYPE_descriptor_t *td, void *sptr); - -/* Convert the contents of the ANY type into the specified type. */ -int ANY_to_type(ANY_t *, asn_TYPE_descriptor_t *td, void **struct_ptr); -int ANY_to_type_aper(ANY_t *, asn_TYPE_descriptor_t *td, void **struct_ptr); - -#define ANY_fromBuf(s, buf, size) OCTET_STRING_fromBuf((s), (buf), (size)) -#define ANY_new_fromBuf(buf, size) OCTET_STRING_new_fromBuf( \ - &asn_DEF_ANY, (buf), (size)) - -#ifdef __cplusplus -} -#endif - -#endif /* ASN_TYPE_ANY_H */ diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/BIT_STRING.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/BIT_STRING.c deleted file mode 100644 index e8d7354..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/BIT_STRING.c +++ /dev/null @@ -1,656 +0,0 @@ -/*- - * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include - -/* - * BIT STRING basic type description. - */ -static const ber_tlv_tag_t asn_DEF_BIT_STRING_tags[] = { - (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) -}; -asn_OCTET_STRING_specifics_t asn_SPC_BIT_STRING_specs = { - sizeof(BIT_STRING_t), - offsetof(BIT_STRING_t, _asn_ctx), - ASN_OSUBV_BIT -}; -asn_TYPE_operation_t asn_OP_BIT_STRING = { - OCTET_STRING_free, /* Implemented in terms of OCTET STRING */ - BIT_STRING_print, - BIT_STRING_compare, - OCTET_STRING_decode_ber, /* Implemented in terms of OCTET STRING */ - OCTET_STRING_encode_der, /* Implemented in terms of OCTET STRING */ - OCTET_STRING_decode_xer_binary, - BIT_STRING_encode_xer, -#ifdef ASN_DISABLE_OER_SUPPORT - 0, - 0, -#else - BIT_STRING_decode_oer, - BIT_STRING_encode_oer, -#endif /* ASN_DISABLE_OER_SUPPORT */ -#ifdef ASN_DISABLE_PER_SUPPORT - 0, - 0, - 0, - 0, -#else - BIT_STRING_decode_uper, /* Unaligned PER decoder */ - BIT_STRING_encode_uper, /* Unaligned PER encoder */ - OCTET_STRING_decode_aper, /* Aligned PER decoder */ - OCTET_STRING_encode_aper, /* Aligned PER encoder */ -#endif /* ASN_DISABLE_PER_SUPPORT */ - BIT_STRING_random_fill, - 0 /* Use generic outmost tag fetcher */ -}; -asn_TYPE_descriptor_t asn_DEF_BIT_STRING = { - "BIT STRING", - "BIT_STRING", - &asn_OP_BIT_STRING, - asn_DEF_BIT_STRING_tags, - sizeof(asn_DEF_BIT_STRING_tags) - / sizeof(asn_DEF_BIT_STRING_tags[0]), - asn_DEF_BIT_STRING_tags, /* Same as above */ - sizeof(asn_DEF_BIT_STRING_tags) - / sizeof(asn_DEF_BIT_STRING_tags[0]), - { 0, 0, BIT_STRING_constraint }, - 0, 0, /* No members */ - &asn_SPC_BIT_STRING_specs -}; - -/* - * BIT STRING generic constraint. - */ -int -BIT_STRING_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - - if(st && st->buf) { - if((st->size == 0 && st->bits_unused) - || st->bits_unused < 0 || st->bits_unused > 7) { - ASN__CTFAIL(app_key, td, sptr, - "%s: invalid padding byte (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - return 0; -} - -static const char *_bit_pattern[16] = { - "0000", "0001", "0010", "0011", "0100", "0101", "0110", "0111", - "1000", "1001", "1010", "1011", "1100", "1101", "1110", "1111" -}; - -asn_enc_rval_t -BIT_STRING_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, - int ilevel, enum xer_encoder_flags_e flags, - asn_app_consume_bytes_f *cb, void *app_key) { - asn_enc_rval_t er = {0, 0, 0}; - char scratch[128]; - char *p = scratch; - char *scend = scratch + (sizeof(scratch) - 10); - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - int xcan = (flags & XER_F_CANONICAL); - uint8_t *buf; - uint8_t *end; - - if(!st || !st->buf) - ASN__ENCODE_FAILED; - - er.encoded = 0; - - buf = st->buf; - end = buf + st->size - 1; /* Last byte is special */ - - /* - * Binary dump - */ - for(; buf < end; buf++) { - int v = *buf; - int nline = xcan?0:(((buf - st->buf) % 8) == 0); - if(p >= scend || nline) { - ASN__CALLBACK(scratch, p - scratch); - p = scratch; - if(nline) ASN__TEXT_INDENT(1, ilevel); - } - memcpy(p + 0, _bit_pattern[v >> 4], 4); - memcpy(p + 4, _bit_pattern[v & 0x0f], 4); - p += 8; - } - - if(!xcan && ((buf - st->buf) % 8) == 0) - ASN__TEXT_INDENT(1, ilevel); - ASN__CALLBACK(scratch, p - scratch); - p = scratch; - - if(buf == end) { - int v = *buf; - int ubits = st->bits_unused; - int i; - for(i = 7; i >= ubits; i--) - *p++ = (v & (1 << i)) ? 0x31 : 0x30; - ASN__CALLBACK(scratch, p - scratch); - } - - if(!xcan) ASN__TEXT_INDENT(1, ilevel - 1); - - ASN__ENCODED_OK(er); -cb_failed: - ASN__ENCODE_FAILED; -} - - -/* - * BIT STRING specific contents printer. - */ -int -BIT_STRING_print(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, - asn_app_consume_bytes_f *cb, void *app_key) { - const char * const h2c = "0123456789ABCDEF"; - char scratch[64]; - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - uint8_t *buf; - uint8_t *end; - char *p = scratch; - - (void)td; /* Unused argument */ - - if(!st || !st->buf) - return (cb("", 8, app_key) < 0) ? -1 : 0; - - ilevel++; - buf = st->buf; - end = buf + st->size; - - /* - * Hexadecimal dump. - */ - for(; buf < end; buf++) { - if((buf - st->buf) % 16 == 0 && (st->size > 16) - && buf != st->buf) { - _i_INDENT(1); - /* Dump the string */ - if(cb(scratch, p - scratch, app_key) < 0) return -1; - p = scratch; - } - *p++ = h2c[*buf >> 4]; - *p++ = h2c[*buf & 0x0F]; - *p++ = 0x20; - } - - if(p > scratch) { - p--; /* Eat the tailing space */ - - if((st->size > 16)) { - _i_INDENT(1); - } - - /* Dump the incomplete 16-bytes row */ - if(cb(scratch, p - scratch, app_key) < 0) - return -1; - } - - if(st->bits_unused) { - int ret = snprintf(scratch, sizeof(scratch), " (%d bit%s unused)", - st->bits_unused, st->bits_unused == 1 ? "" : "s"); - assert(ret > 0 && ret < (ssize_t)sizeof(scratch)); - if(ret > 0 && ret < (ssize_t)sizeof(scratch) - && cb(scratch, ret, app_key) < 0) - return -1; - } - - return 0; -} - -/* - * Non-destructively remove the trailing 0-bits from the given bit string. - */ -static const BIT_STRING_t * -BIT_STRING__compactify(const BIT_STRING_t *st, BIT_STRING_t *tmp) { - const uint8_t *b; - union { - const uint8_t *c_buf; - uint8_t *nc_buf; - } unconst; - - if(st->size == 0) { - assert(st->bits_unused == 0); - return st; - } else { - for(b = &st->buf[st->size - 1]; b > st->buf && *b == 0; b--) { - ; - } - /* b points to the last byte which may contain data */ - if(*b) { - int unused = 7; - uint8_t v = *b; - v &= -(int8_t)v; - if(v & 0x0F) unused -= 4; - if(v & 0x33) unused -= 2; - if(v & 0x55) unused -= 1; - tmp->size = b-st->buf + 1; - tmp->bits_unused = unused; - } else { - tmp->size = b-st->buf; - tmp->bits_unused = 0; - } - - assert(b >= st->buf); - } - - unconst.c_buf = st->buf; - tmp->buf = unconst.nc_buf; - return tmp; -} - -/* - * Lexicographically compare the common prefix of both strings, - * and if it is the same return -1 for the smallest string. - */ -int -BIT_STRING_compare(const asn_TYPE_descriptor_t *td, const void *aptr, - const void *bptr) { - /* - * Remove information about trailing bits, since - * X.680 (08/2015) #22.7 "ensure that different semantics are not" - * "associated with [values that differ only in] the trailing 0 bits." - */ - BIT_STRING_t compact_a, compact_b; - const BIT_STRING_t *a = BIT_STRING__compactify(aptr, &compact_a); - const BIT_STRING_t *b = BIT_STRING__compactify(bptr, &compact_b); - const asn_OCTET_STRING_specifics_t *specs = td->specifics; - - assert(specs && specs->subvariant == ASN_OSUBV_BIT); - - if(a && b) { - size_t common_prefix_size = a->size <= b->size ? a->size : b->size; - int ret = memcmp(a->buf, b->buf, common_prefix_size); - if(ret == 0) { - /* Figure out which string with equal prefixes is longer. */ - if(a->size < b->size) { - return -1; - } else if(a->size > b->size) { - return 1; - } else { - /* Figure out how many unused bits */ - if(a->bits_unused > b->bits_unused) { - return -1; - } else if(a->bits_unused < b->bits_unused) { - return 1; - } else { - return 0; - } - } - } else { - return ret; - } - } else if(!a && !b) { - return 0; - } else if(!a) { - return -1; - } else { - return 1; - } -} - -#ifndef ASN_DISABLE_PER_SUPPORT - -#undef RETURN -#define RETURN(_code) \ - do { \ - asn_dec_rval_t tmprval; \ - tmprval.code = _code; \ - tmprval.consumed = consumed_myself; \ - return tmprval; \ - } while(0) - -static asn_per_constraint_t asn_DEF_BIT_STRING_constraint_size = { - APC_SEMI_CONSTRAINED, -1, -1, 0, 0}; - -asn_dec_rval_t -BIT_STRING_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, - asn_per_data_t *pd) { - const asn_OCTET_STRING_specifics_t *specs = td->specifics - ? (const asn_OCTET_STRING_specifics_t *)td->specifics - : &asn_SPC_BIT_STRING_specs; - const asn_per_constraints_t *pc = - constraints ? constraints : td->encoding_constraints.per_constraints; - const asn_per_constraint_t *csiz; - asn_dec_rval_t rval = { RC_OK, 0 }; - BIT_STRING_t *st = (BIT_STRING_t *)*sptr; - ssize_t consumed_myself = 0; - int repeat; - - (void)opt_codec_ctx; - - if(pc) { - csiz = &pc->size; - } else { - csiz = &asn_DEF_BIT_STRING_constraint_size; - } - - if(specs->subvariant != ASN_OSUBV_BIT) { - ASN_DEBUG("Subvariant %d is not BIT OSUBV_BIT", specs->subvariant); - RETURN(RC_FAIL); - } - - /* - * Allocate the string. - */ - if(!st) { - st = (BIT_STRING_t *)(*sptr = CALLOC(1, specs->struct_size)); - if(!st) RETURN(RC_FAIL); - } - - ASN_DEBUG("PER Decoding %s size %ld .. %ld bits %d", - csiz->flags & APC_EXTENSIBLE ? "extensible" : "non-extensible", - csiz->lower_bound, csiz->upper_bound, csiz->effective_bits); - - if(csiz->flags & APC_EXTENSIBLE) { - int inext = per_get_few_bits(pd, 1); - if(inext < 0) RETURN(RC_WMORE); - if(inext) { - csiz = &asn_DEF_BIT_STRING_constraint_size; - } - } - - if(csiz->effective_bits >= 0) { - FREEMEM(st->buf); - st->size = (csiz->upper_bound + 7) >> 3; - st->buf = (uint8_t *)MALLOC(st->size + 1); - if(!st->buf) { st->size = 0; RETURN(RC_FAIL); } - } - - /* X.691, #16.5: zero-length encoding */ - /* X.691, #16.6: short fixed length encoding (up to 2 octets) */ - /* X.691, #16.7: long fixed length encoding (up to 64K octets) */ - if(csiz->effective_bits == 0) { - int ret; - ASN_DEBUG("Encoding BIT STRING size %ld", csiz->upper_bound); - ret = per_get_many_bits(pd, st->buf, 0, csiz->upper_bound); - if(ret < 0) RETURN(RC_WMORE); - consumed_myself += csiz->upper_bound; - st->buf[st->size] = 0; - st->bits_unused = (8 - (csiz->upper_bound & 0x7)) & 0x7; - RETURN(RC_OK); - } - - st->size = 0; - do { - ssize_t raw_len; - ssize_t len_bytes; - ssize_t len_bits; - void *p; - int ret; - - /* Get the PER length */ - raw_len = uper_get_length(pd, csiz->effective_bits, csiz->lower_bound, - &repeat); - if(raw_len < 0) RETURN(RC_WMORE); - if(raw_len == 0 && st->buf) break; - - ASN_DEBUG("Got PER length eb %ld, len %ld, %s (%s)", - (long)csiz->effective_bits, (long)raw_len, - repeat ? "repeat" : "once", td->name); - len_bits = raw_len; - len_bytes = (len_bits + 7) >> 3; - if(len_bits & 0x7) st->bits_unused = 8 - (len_bits & 0x7); - /* len_bits be multiple of 16K if repeat is set */ - p = REALLOC(st->buf, st->size + len_bytes + 1); - if(!p) RETURN(RC_FAIL); - st->buf = (uint8_t *)p; - - ret = per_get_many_bits(pd, &st->buf[st->size], 0, len_bits); - if(ret < 0) RETURN(RC_WMORE); - st->size += len_bytes; - } while(repeat); - st->buf[st->size] = 0; /* nul-terminate */ - - return rval; -} - -asn_enc_rval_t -BIT_STRING_encode_uper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_per_outp_t *po) { - const asn_OCTET_STRING_specifics_t *specs = - td->specifics ? (const asn_OCTET_STRING_specifics_t *)td->specifics - : &asn_SPC_BIT_STRING_specs; - const asn_per_constraints_t *pc = - constraints ? constraints : td->encoding_constraints.per_constraints; - const asn_per_constraint_t *csiz; - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - BIT_STRING_t compact_bstr; /* Do not modify this directly! */ - asn_enc_rval_t er = { 0, 0, 0 }; - int inext = 0; /* Lies not within extension root */ - size_t size_in_bits; - const uint8_t *buf; - int ret; - int ct_extensible; - - if(!st || (!st->buf && st->size)) - ASN__ENCODE_FAILED; - - if(specs->subvariant == ASN_OSUBV_BIT) { - if((st->size == 0 && st->bits_unused) || (st->bits_unused & ~7)) - ASN__ENCODE_FAILED; - } else { - ASN__ENCODE_FAILED; - } - - if(pc) { - csiz = &pc->size; - } else { - csiz = &asn_DEF_BIT_STRING_constraint_size; - } - ct_extensible = csiz->flags & APC_EXTENSIBLE; - - /* Figure out the size without the trailing bits */ - st = BIT_STRING__compactify(st, &compact_bstr); - size_in_bits = 8 * st->size - st->bits_unused; - - ASN_DEBUG( - "Encoding %s into %" ASN_PRI_SIZE " bits" - " (%ld..%ld, effective %d)%s", - td->name, size_in_bits, csiz->lower_bound, csiz->upper_bound, - csiz->effective_bits, ct_extensible ? " EXT" : ""); - - /* Figure out whether size lies within PER visible constraint */ - - if(csiz->effective_bits >= 0) { - if((ssize_t)size_in_bits > csiz->upper_bound) { - if(ct_extensible) { - csiz = &asn_DEF_BIT_STRING_constraint_size; - inext = 1; - } else { - ASN__ENCODE_FAILED; - } - } - } else { - inext = 0; - } - - if(ct_extensible) { - /* Declare whether length is [not] within extension root */ - if(per_put_few_bits(po, inext, 1)) - ASN__ENCODE_FAILED; - } - - if(csiz->effective_bits >= 0 && !inext) { - int add_trailer = (ssize_t)size_in_bits < csiz->lower_bound; - ASN_DEBUG( - "Encoding %" ASN_PRI_SIZE " bytes (%ld), length (in %d bits) trailer %d; actual " - "value %" ASN_PRI_SSIZE "", - st->size, size_in_bits - csiz->lower_bound, csiz->effective_bits, - add_trailer, - add_trailer ? 0 : (ssize_t)size_in_bits - csiz->lower_bound); - ret = per_put_few_bits( - po, add_trailer ? 0 : (ssize_t)size_in_bits - csiz->lower_bound, - csiz->effective_bits); - if(ret) ASN__ENCODE_FAILED; - ret = per_put_many_bits(po, st->buf, size_in_bits); - if(ret) ASN__ENCODE_FAILED; - if(add_trailer) { - static const uint8_t zeros[16]; - size_t trailing_zero_bits = csiz->lower_bound - size_in_bits; - while(trailing_zero_bits > 0) { - if(trailing_zero_bits > 8 * sizeof(zeros)) { - ret = per_put_many_bits(po, zeros, 8 * sizeof(zeros)); - trailing_zero_bits -= 8 * sizeof(zeros); - } else { - ret = per_put_many_bits(po, zeros, trailing_zero_bits); - trailing_zero_bits = 0; - } - if(ret) ASN__ENCODE_FAILED; - } - } - ASN__ENCODED_OK(er); - } - - ASN_DEBUG("Encoding %" ASN_PRI_SIZE " bytes", st->size); - - buf = st->buf; - do { - int need_eom = 0; - ssize_t maySave = uper_put_length(po, size_in_bits, &need_eom); - if(maySave < 0) ASN__ENCODE_FAILED; - - ASN_DEBUG("Encoding %" ASN_PRI_SSIZE " of %" ASN_PRI_SIZE "", maySave, size_in_bits); - - ret = per_put_many_bits(po, buf, maySave); - if(ret) ASN__ENCODE_FAILED; - - buf += maySave >> 3; - size_in_bits -= maySave; - assert(!(maySave & 0x07) || !size_in_bits); - if(need_eom && uper_put_length(po, 0, 0)) - ASN__ENCODE_FAILED; /* End of Message length */ - } while(size_in_bits); - - ASN__ENCODED_OK(er); -} - -#endif /* ASN_DISABLE_PER_SUPPORT */ - -asn_random_fill_result_t -BIT_STRING_random_fill(const asn_TYPE_descriptor_t *td, void **sptr, - const asn_encoding_constraints_t *constraints, - size_t max_length) { - const asn_OCTET_STRING_specifics_t *specs = - td->specifics ? (const asn_OCTET_STRING_specifics_t *)td->specifics - : &asn_SPC_BIT_STRING_specs; - asn_random_fill_result_t result_ok = {ARFILL_OK, 1}; - asn_random_fill_result_t result_failed = {ARFILL_FAILED, 0}; - asn_random_fill_result_t result_skipped = {ARFILL_SKIPPED, 0}; - static unsigned lengths[] = {0, 1, 2, 3, 4, 8, - 126, 127, 128, 16383, 16384, 16385, - 65534, 65535, 65536, 65537}; - uint8_t *buf; - uint8_t *bend; - uint8_t *b; - size_t rnd_bits, rnd_len; - BIT_STRING_t *st; - - if(max_length == 0) return result_skipped; - - switch(specs->subvariant) { - case ASN_OSUBV_ANY: - return result_failed; - case ASN_OSUBV_BIT: - break; - default: - break; - } - - /* Figure out how far we should go */ - rnd_bits = lengths[asn_random_between( - 0, sizeof(lengths) / sizeof(lengths[0]) - 1)]; - if(!constraints || !constraints->per_constraints) - constraints = &td->encoding_constraints; - if(constraints->per_constraints) { - const asn_per_constraint_t *pc = &constraints->per_constraints->size; - if(pc->flags & APC_CONSTRAINED) { - long suggested_upper_bound = pc->upper_bound < (ssize_t)max_length - ? pc->upper_bound - : (ssize_t)max_length; - if(max_length < (size_t)pc->lower_bound) { - return result_skipped; - } - if(pc->flags & APC_EXTENSIBLE) { - switch(asn_random_between(0, 5)) { - case 0: - if(pc->lower_bound > 0) { - rnd_bits = pc->lower_bound - 1; - break; - } - /* Fall through */ - case 1: - rnd_bits = pc->upper_bound + 1; - break; - case 2: - /* Keep rnd_bits from the table */ - if(rnd_bits < max_length) { - break; - } - /* Fall through */ - default: - rnd_bits = asn_random_between(pc->lower_bound, - suggested_upper_bound); - } - } else { - rnd_bits = - asn_random_between(pc->lower_bound, suggested_upper_bound); - } - } else { - rnd_bits = asn_random_between(0, max_length - 1); - } - } else if(rnd_bits >= max_length) { - rnd_bits = asn_random_between(0, max_length - 1); - } - - rnd_len = (rnd_bits + 7) / 8; - buf = CALLOC(1, rnd_len + 1); - if(!buf) return result_failed; - - bend = &buf[rnd_len]; - - for(b = buf; b < bend; b++) { - *(uint8_t *)b = asn_random_between(0, 255); - } - *b = 0; /* Zero-terminate just in case. */ - - if(*sptr) { - st = *sptr; - FREEMEM(st->buf); - } else { - st = (BIT_STRING_t *)(*sptr = CALLOC(1, specs->struct_size)); - if(!st) { - FREEMEM(buf); - return result_failed; - } - } - - st->buf = buf; - st->size = rnd_len; - st->bits_unused = (8 - (rnd_bits & 0x7)) & 0x7; - if(st->bits_unused) { - assert(st->size > 0); - st->buf[st->size-1] &= 0xff << st->bits_unused; - } - - result_ok.length = st->size; - return result_ok; -} diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/BIT_STRING.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/BIT_STRING.h deleted file mode 100644 index c1bdbbc..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/BIT_STRING.h +++ /dev/null @@ -1,48 +0,0 @@ -/*- - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef _BIT_STRING_H_ -#define _BIT_STRING_H_ - -#include /* Some help from OCTET STRING */ - -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct BIT_STRING_s { - uint8_t *buf; /* BIT STRING body */ - size_t size; /* Size of the above buffer */ - - int bits_unused;/* Unused trailing bits in the last octet (0..7) */ - - asn_struct_ctx_t _asn_ctx; /* Parsing across buffer boundaries */ -} BIT_STRING_t; - -extern asn_TYPE_descriptor_t asn_DEF_BIT_STRING; -extern asn_TYPE_operation_t asn_OP_BIT_STRING; -extern asn_OCTET_STRING_specifics_t asn_SPC_BIT_STRING_specs; - -asn_struct_print_f BIT_STRING_print; /* Human-readable output */ -asn_struct_compare_f BIT_STRING_compare; -asn_constr_check_f BIT_STRING_constraint; -xer_type_encoder_f BIT_STRING_encode_xer; -oer_type_decoder_f BIT_STRING_decode_oer; -oer_type_encoder_f BIT_STRING_encode_oer; -per_type_decoder_f BIT_STRING_decode_uper; -per_type_encoder_f BIT_STRING_encode_uper; -asn_random_fill_f BIT_STRING_random_fill; - -#define BIT_STRING_free OCTET_STRING_free -#define BIT_STRING_decode_ber OCTET_STRING_decode_ber -#define BIT_STRING_encode_der OCTET_STRING_encode_der -#define BIT_STRING_decode_xer OCTET_STRING_decode_xer_binary -#define BIT_STRING_decode_aper OCTET_STRING_decode_aper -#define BIT_STRING_encode_aper OCTET_STRING_encode_aper - -#ifdef __cplusplus -} -#endif - -#endif /* _BIT_STRING_H_ */ diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/BIT_STRING_oer.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/BIT_STRING_oer.c deleted file mode 100644 index aff5075..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/BIT_STRING_oer.c +++ /dev/null @@ -1,174 +0,0 @@ -/* - * Copyright (c) 2017 Lev Walkin . - * All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef ASN_DISABLE_OER_SUPPORT - -#include -#include -#include - -asn_dec_rval_t -BIT_STRING_decode_oer(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_oer_constraints_t *constraints, void **sptr, - const void *ptr, size_t size) { - BIT_STRING_t *st = (BIT_STRING_t *)*sptr; - const asn_oer_constraints_t *cts = - constraints ? constraints : td->encoding_constraints.oer_constraints; - ssize_t ct_size = cts ? cts->size : -1; - asn_dec_rval_t rval = {RC_OK, 0}; - size_t expected_length = 0; - - (void)opt_codec_ctx; - - if(!st) { - st = (BIT_STRING_t *)(*sptr = CALLOC(1, sizeof(*st))); - if(!st) ASN__DECODE_FAILED; - } - - if(ct_size >= 0) { - expected_length = (ct_size + 7) >> 3; - st->bits_unused = (8 - (ct_size & 7)) & 7; - } else { - /* - * X.696 (08/2015) #13.3.1 - * Encode length determinant as _number of octets_, but only - * if upper bound is not equal to lower bound. - */ - ssize_t len_len = oer_fetch_length(ptr, size, &expected_length); - if(len_len > 0) { - ptr = (const char *)ptr + len_len; - size -= len_len; - } else if(len_len == 0) { - ASN__DECODE_STARVED; - } else if(len_len < 0) { - ASN__DECODE_FAILED; - } - - if(expected_length < 1) { - ASN__DECODE_FAILED; - } else if(expected_length > size) { - ASN__DECODE_STARVED; - } - - st->bits_unused = ((const uint8_t *)ptr)[0]; - if(st->bits_unused & ~7) { - ASN_DEBUG("%s: unused bits outside of 0..7 range", td->name); - ASN__DECODE_FAILED; - } - ptr = (const char *)ptr + 1; - size--; - expected_length--; - rval.consumed = len_len + 1; - } - - if(size < expected_length) { - ASN__DECODE_STARVED; - } else { - uint8_t *buf = MALLOC(expected_length + 1); - if(buf == NULL) { - ASN__DECODE_FAILED; - } else { - memcpy(buf, ptr, expected_length); - buf[expected_length] = '\0'; - } - FREEMEM(st->buf); - st->buf = buf; - st->size = expected_length; - if(expected_length > 0) { - buf[expected_length - 1] &= (0xff << st->bits_unused); - } - - rval.consumed += expected_length; - return rval; - } -} - -/* - * Encode as Canonical OER. - */ -asn_enc_rval_t -BIT_STRING_encode_oer(const asn_TYPE_descriptor_t *td, - const asn_oer_constraints_t *constraints, - const void *sptr, asn_app_consume_bytes_f *cb, - void *app_key) { - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - asn_enc_rval_t erval = {0, 0, 0}; - const asn_oer_constraints_t *cts = - constraints ? constraints : td->encoding_constraints.oer_constraints; - ssize_t ct_size = cts ? cts->size : -1; - size_t trailing_zeros = 0; - int fix_last_byte = 0; - - if(!st) ASN__ENCODE_FAILED; - - if(st->bits_unused & ~7) { - ASN_DEBUG("BIT STRING unused bits %d out of 0..7 range", - st->bits_unused); - ASN__ENCODE_FAILED; - } - if(st->bits_unused && !(st->size && st->buf)) { - ASN_DEBUG("BIT STRING %s size 0 can't support unused bits %d", td->name, - st->bits_unused); - ASN__ENCODE_FAILED; - } - - if(ct_size >= 0) { - size_t ct_bytes = (ct_size + 7) >> 3; - if(st->size > ct_bytes) { - ASN_DEBUG("More bits in BIT STRING %s (%" ASN_PRI_SSIZE ") than constrained %" ASN_PRI_SSIZE "", - td->name, 8 * st->size - st->bits_unused, ct_size); - ASN__ENCODE_FAILED; - } - trailing_zeros = ct_bytes - st->size; /* Allow larger constraint */ - } else { - uint8_t ub = st->bits_unused & 7; - ssize_t len_len = oer_serialize_length(1 + st->size, cb, app_key); - if(len_len < 0) ASN__ENCODE_FAILED; - if(cb(&ub, 1, app_key) < 0) { - ASN__ENCODE_FAILED; - } - erval.encoded += len_len + 1; - } - - if(st->bits_unused) { - if(st->buf[st->size - 1] & (0xff << st->bits_unused)) { - fix_last_byte = 1; - } - } - - if(cb(st->buf, st->size - fix_last_byte, app_key) < 0) { - ASN__ENCODE_FAILED; - } - - if(fix_last_byte) { - uint8_t b = st->buf[st->size - 1] & (0xff << st->bits_unused); - if(cb(&b, 1, app_key) < 0) { - ASN__ENCODE_FAILED; - } - } - - erval.encoded += st->size; - - if(trailing_zeros) { - static uint8_t zeros[16]; - while(trailing_zeros > 0) { - int ret; - if(trailing_zeros < sizeof(zeros)) { - ret = cb(zeros, trailing_zeros, app_key); - erval.encoded += trailing_zeros; - } else { - ret = cb(zeros, sizeof(zeros), app_key); - erval.encoded += sizeof(zeros); - } - if(ret < 0) ASN__ENCODE_FAILED; - } - } - - return erval; -} - - -#endif /* ASN_DISABLE_OER_SUPPORT */ diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/C-RNTI.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/C-RNTI.c deleted file mode 100644 index e626083..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/C-RNTI.c +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "C-RNTI.h" - -int -C_RNTI_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - size = st->size; - - if((size == 2)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using OCTET_STRING, - * so here we adjust the DEF accordingly. - */ -static asn_oer_constraints_t asn_OER_type_C_RNTI_constr_1 CC_NOTUSED = { - { 0, 0 }, - 2 /* (SIZE(2..2)) */}; -asn_per_constraints_t asn_PER_type_C_RNTI_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 0, 0, 2, 2 } /* (SIZE(2..2)) */, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_C_RNTI_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_C_RNTI = { - "C-RNTI", - "C-RNTI", - &asn_OP_OCTET_STRING, - asn_DEF_C_RNTI_tags_1, - sizeof(asn_DEF_C_RNTI_tags_1) - /sizeof(asn_DEF_C_RNTI_tags_1[0]), /* 1 */ - asn_DEF_C_RNTI_tags_1, /* Same as above */ - sizeof(asn_DEF_C_RNTI_tags_1) - /sizeof(asn_DEF_C_RNTI_tags_1[0]), /* 1 */ - { &asn_OER_type_C_RNTI_constr_1, &asn_PER_type_C_RNTI_constr_1, C_RNTI_constraint }, - 0, 0, /* No members */ - &asn_SPC_OCTET_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/C-RNTI.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/C-RNTI.h deleted file mode 100644 index 7366109..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/C-RNTI.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _C_RNTI_H_ -#define _C_RNTI_H_ - - -#include - -/* Including external dependencies */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* C-RNTI */ -typedef OCTET_STRING_t C_RNTI_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_C_RNTI_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_C_RNTI; -asn_struct_free_f C_RNTI_free; -asn_struct_print_f C_RNTI_print; -asn_constr_check_f C_RNTI_constraint; -ber_type_decoder_f C_RNTI_decode_ber; -der_type_encoder_f C_RNTI_encode_der; -xer_type_decoder_f C_RNTI_decode_xer; -xer_type_encoder_f C_RNTI_encode_xer; -oer_type_decoder_f C_RNTI_decode_oer; -oer_type_encoder_f C_RNTI_encode_oer; -per_type_decoder_f C_RNTI_decode_uper; -per_type_encoder_f C_RNTI_encode_uper; -per_type_decoder_f C_RNTI_decode_aper; -per_type_encoder_f C_RNTI_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _C_RNTI_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/CU-CP-Usage-Report-CellResourceReportItem.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/CU-CP-Usage-Report-CellResourceReportItem.c deleted file mode 100644 index c0b6775..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/CU-CP-Usage-Report-CellResourceReportItem.c +++ /dev/null @@ -1,139 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "CU-CP-Usage-Report-CellResourceReportItem.h" - -static int -memb_ueResourceReportList_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - /* Determine the number of elements */ - size = _A_CSEQUENCE_FROM_VOID(sptr)->count; - - if((size >= 1 && size <= 32)) { - /* Perform validation of the inner elements */ - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_oer_constraints_t asn_OER_type_ueResourceReportList_constr_3 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..32)) */}; -static asn_per_constraints_t asn_PER_type_ueResourceReportList_constr_3 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_ueResourceReportList_constr_3 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..32)) */}; -static asn_per_constraints_t asn_PER_memb_ueResourceReportList_constr_3 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_ueResourceReportList_3[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CU_CP_Usage_Report_UeResourceReportItem, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ueResourceReportList_tags_3[] = { - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_ueResourceReportList_specs_3 = { - sizeof(struct CU_CP_Usage_Report_CellResourceReportItem__ueResourceReportList), - offsetof(struct CU_CP_Usage_Report_CellResourceReportItem__ueResourceReportList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_ueResourceReportList_3 = { - "ueResourceReportList", - "ueResourceReportList", - &asn_OP_SEQUENCE_OF, - asn_DEF_ueResourceReportList_tags_3, - sizeof(asn_DEF_ueResourceReportList_tags_3) - /sizeof(asn_DEF_ueResourceReportList_tags_3[0]) - 1, /* 1 */ - asn_DEF_ueResourceReportList_tags_3, /* Same as above */ - sizeof(asn_DEF_ueResourceReportList_tags_3) - /sizeof(asn_DEF_ueResourceReportList_tags_3[0]), /* 2 */ - { &asn_OER_type_ueResourceReportList_constr_3, &asn_PER_type_ueResourceReportList_constr_3, SEQUENCE_OF_constraint }, - asn_MBR_ueResourceReportList_3, - 1, /* Single element */ - &asn_SPC_ueResourceReportList_specs_3 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_CU_CP_Usage_Report_CellResourceReportItem_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct CU_CP_Usage_Report_CellResourceReportItem, nRCGI), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NRCGI, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "nRCGI" - }, - { ATF_NOFLAGS, 0, offsetof(struct CU_CP_Usage_Report_CellResourceReportItem, ueResourceReportList), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - 0, - &asn_DEF_ueResourceReportList_3, - 0, - { &asn_OER_memb_ueResourceReportList_constr_3, &asn_PER_memb_ueResourceReportList_constr_3, memb_ueResourceReportList_constraint_1 }, - 0, 0, /* No default value */ - "ueResourceReportList" - }, -}; -static const ber_tlv_tag_t asn_DEF_CU_CP_Usage_Report_CellResourceReportItem_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_CU_CP_Usage_Report_CellResourceReportItem_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nRCGI */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ueResourceReportList */ -}; -asn_SEQUENCE_specifics_t asn_SPC_CU_CP_Usage_Report_CellResourceReportItem_specs_1 = { - sizeof(struct CU_CP_Usage_Report_CellResourceReportItem), - offsetof(struct CU_CP_Usage_Report_CellResourceReportItem, _asn_ctx), - asn_MAP_CU_CP_Usage_Report_CellResourceReportItem_tag2el_1, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 2, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_CU_CP_Usage_Report_CellResourceReportItem = { - "CU-CP-Usage-Report-CellResourceReportItem", - "CU-CP-Usage-Report-CellResourceReportItem", - &asn_OP_SEQUENCE, - asn_DEF_CU_CP_Usage_Report_CellResourceReportItem_tags_1, - sizeof(asn_DEF_CU_CP_Usage_Report_CellResourceReportItem_tags_1) - /sizeof(asn_DEF_CU_CP_Usage_Report_CellResourceReportItem_tags_1[0]), /* 1 */ - asn_DEF_CU_CP_Usage_Report_CellResourceReportItem_tags_1, /* Same as above */ - sizeof(asn_DEF_CU_CP_Usage_Report_CellResourceReportItem_tags_1) - /sizeof(asn_DEF_CU_CP_Usage_Report_CellResourceReportItem_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_CU_CP_Usage_Report_CellResourceReportItem_1, - 2, /* Elements count */ - &asn_SPC_CU_CP_Usage_Report_CellResourceReportItem_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/CU-CP-Usage-Report-CellResourceReportItem.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/CU-CP-Usage-Report-CellResourceReportItem.h deleted file mode 100644 index 9fb9dd9..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/CU-CP-Usage-Report-CellResourceReportItem.h +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _CU_CP_Usage_Report_CellResourceReportItem_H_ -#define _CU_CP_Usage_Report_CellResourceReportItem_H_ - - -#include - -/* Including external dependencies */ -#include "NRCGI.h" -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct CU_CP_Usage_Report_UeResourceReportItem; - -/* CU-CP-Usage-Report-CellResourceReportItem */ -typedef struct CU_CP_Usage_Report_CellResourceReportItem { - NRCGI_t nRCGI; - struct CU_CP_Usage_Report_CellResourceReportItem__ueResourceReportList { - A_SEQUENCE_OF(struct CU_CP_Usage_Report_UeResourceReportItem) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } ueResourceReportList; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} CU_CP_Usage_Report_CellResourceReportItem_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_CU_CP_Usage_Report_CellResourceReportItem; -extern asn_SEQUENCE_specifics_t asn_SPC_CU_CP_Usage_Report_CellResourceReportItem_specs_1; -extern asn_TYPE_member_t asn_MBR_CU_CP_Usage_Report_CellResourceReportItem_1[2]; - -#ifdef __cplusplus -} -#endif - -/* Referred external types */ -#include "CU-CP-Usage-Report-UeResourceReportItem.h" - -#endif /* _CU_CP_Usage_Report_CellResourceReportItem_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/CU-CP-Usage-Report-Per-UE.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/CU-CP-Usage-Report-Per-UE.c deleted file mode 100644 index 22055b3..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/CU-CP-Usage-Report-Per-UE.c +++ /dev/null @@ -1,129 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "CU-CP-Usage-Report-Per-UE.h" - -static int -memb_cellResourceReportList_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - /* Determine the number of elements */ - size = _A_CSEQUENCE_FROM_VOID(sptr)->count; - - if((size >= 1 && size <= 16384)) { - /* Perform validation of the inner elements */ - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_oer_constraints_t asn_OER_type_cellResourceReportList_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..16384)) */}; -static asn_per_constraints_t asn_PER_type_cellResourceReportList_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 14, 14, 1, 16384 } /* (SIZE(1..16384)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_cellResourceReportList_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..16384)) */}; -static asn_per_constraints_t asn_PER_memb_cellResourceReportList_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 14, 14, 1, 16384 } /* (SIZE(1..16384)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_cellResourceReportList_2[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CU_CP_Usage_Report_CellResourceReportItem, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_cellResourceReportList_tags_2[] = { - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_cellResourceReportList_specs_2 = { - sizeof(struct CU_CP_Usage_Report_Per_UE__cellResourceReportList), - offsetof(struct CU_CP_Usage_Report_Per_UE__cellResourceReportList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_cellResourceReportList_2 = { - "cellResourceReportList", - "cellResourceReportList", - &asn_OP_SEQUENCE_OF, - asn_DEF_cellResourceReportList_tags_2, - sizeof(asn_DEF_cellResourceReportList_tags_2) - /sizeof(asn_DEF_cellResourceReportList_tags_2[0]) - 1, /* 1 */ - asn_DEF_cellResourceReportList_tags_2, /* Same as above */ - sizeof(asn_DEF_cellResourceReportList_tags_2) - /sizeof(asn_DEF_cellResourceReportList_tags_2[0]), /* 2 */ - { &asn_OER_type_cellResourceReportList_constr_2, &asn_PER_type_cellResourceReportList_constr_2, SEQUENCE_OF_constraint }, - asn_MBR_cellResourceReportList_2, - 1, /* Single element */ - &asn_SPC_cellResourceReportList_specs_2 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_CU_CP_Usage_Report_Per_UE_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct CU_CP_Usage_Report_Per_UE, cellResourceReportList), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - 0, - &asn_DEF_cellResourceReportList_2, - 0, - { &asn_OER_memb_cellResourceReportList_constr_2, &asn_PER_memb_cellResourceReportList_constr_2, memb_cellResourceReportList_constraint_1 }, - 0, 0, /* No default value */ - "cellResourceReportList" - }, -}; -static const ber_tlv_tag_t asn_DEF_CU_CP_Usage_Report_Per_UE_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_CU_CP_Usage_Report_Per_UE_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* cellResourceReportList */ -}; -asn_SEQUENCE_specifics_t asn_SPC_CU_CP_Usage_Report_Per_UE_specs_1 = { - sizeof(struct CU_CP_Usage_Report_Per_UE), - offsetof(struct CU_CP_Usage_Report_Per_UE, _asn_ctx), - asn_MAP_CU_CP_Usage_Report_Per_UE_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_CU_CP_Usage_Report_Per_UE = { - "CU-CP-Usage-Report-Per-UE", - "CU-CP-Usage-Report-Per-UE", - &asn_OP_SEQUENCE, - asn_DEF_CU_CP_Usage_Report_Per_UE_tags_1, - sizeof(asn_DEF_CU_CP_Usage_Report_Per_UE_tags_1) - /sizeof(asn_DEF_CU_CP_Usage_Report_Per_UE_tags_1[0]), /* 1 */ - asn_DEF_CU_CP_Usage_Report_Per_UE_tags_1, /* Same as above */ - sizeof(asn_DEF_CU_CP_Usage_Report_Per_UE_tags_1) - /sizeof(asn_DEF_CU_CP_Usage_Report_Per_UE_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_CU_CP_Usage_Report_Per_UE_1, - 1, /* Elements count */ - &asn_SPC_CU_CP_Usage_Report_Per_UE_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/CU-CP-Usage-Report-Per-UE.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/CU-CP-Usage-Report-Per-UE.h deleted file mode 100644 index dad74ca..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/CU-CP-Usage-Report-Per-UE.h +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _CU_CP_Usage_Report_Per_UE_H_ -#define _CU_CP_Usage_Report_Per_UE_H_ - - -#include - -/* Including external dependencies */ -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct CU_CP_Usage_Report_CellResourceReportItem; - -/* CU-CP-Usage-Report-Per-UE */ -typedef struct CU_CP_Usage_Report_Per_UE { - struct CU_CP_Usage_Report_Per_UE__cellResourceReportList { - A_SEQUENCE_OF(struct CU_CP_Usage_Report_CellResourceReportItem) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } cellResourceReportList; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} CU_CP_Usage_Report_Per_UE_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_CU_CP_Usage_Report_Per_UE; -extern asn_SEQUENCE_specifics_t asn_SPC_CU_CP_Usage_Report_Per_UE_specs_1; -extern asn_TYPE_member_t asn_MBR_CU_CP_Usage_Report_Per_UE_1[1]; - -#ifdef __cplusplus -} -#endif - -/* Referred external types */ -#include "CU-CP-Usage-Report-CellResourceReportItem.h" - -#endif /* _CU_CP_Usage_Report_Per_UE_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/CU-CP-Usage-Report-UeResourceReportItem.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/CU-CP-Usage-Report-UeResourceReportItem.c deleted file mode 100644 index de4d8de..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/CU-CP-Usage-Report-UeResourceReportItem.c +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "CU-CP-Usage-Report-UeResourceReportItem.h" - -asn_TYPE_member_t asn_MBR_CU_CP_Usage_Report_UeResourceReportItem_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct CU_CP_Usage_Report_UeResourceReportItem, c_RNTI), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_C_RNTI, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "c-RNTI" - }, - { ATF_POINTER, 2, offsetof(struct CU_CP_Usage_Report_UeResourceReportItem, serving_Cell_RF_Type), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_OCTET_STRING, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "serving-Cell-RF-Type" - }, - { ATF_POINTER, 1, offsetof(struct CU_CP_Usage_Report_UeResourceReportItem, neighbor_Cell_RF), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_OCTET_STRING, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "neighbor-Cell-RF" - }, -}; -static const int asn_MAP_CU_CP_Usage_Report_UeResourceReportItem_oms_1[] = { 1, 2 }; -static const ber_tlv_tag_t asn_DEF_CU_CP_Usage_Report_UeResourceReportItem_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_CU_CP_Usage_Report_UeResourceReportItem_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* c-RNTI */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* serving-Cell-RF-Type */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* neighbor-Cell-RF */ -}; -asn_SEQUENCE_specifics_t asn_SPC_CU_CP_Usage_Report_UeResourceReportItem_specs_1 = { - sizeof(struct CU_CP_Usage_Report_UeResourceReportItem), - offsetof(struct CU_CP_Usage_Report_UeResourceReportItem, _asn_ctx), - asn_MAP_CU_CP_Usage_Report_UeResourceReportItem_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_CU_CP_Usage_Report_UeResourceReportItem_oms_1, /* Optional members */ - 2, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_CU_CP_Usage_Report_UeResourceReportItem = { - "CU-CP-Usage-Report-UeResourceReportItem", - "CU-CP-Usage-Report-UeResourceReportItem", - &asn_OP_SEQUENCE, - asn_DEF_CU_CP_Usage_Report_UeResourceReportItem_tags_1, - sizeof(asn_DEF_CU_CP_Usage_Report_UeResourceReportItem_tags_1) - /sizeof(asn_DEF_CU_CP_Usage_Report_UeResourceReportItem_tags_1[0]), /* 1 */ - asn_DEF_CU_CP_Usage_Report_UeResourceReportItem_tags_1, /* Same as above */ - sizeof(asn_DEF_CU_CP_Usage_Report_UeResourceReportItem_tags_1) - /sizeof(asn_DEF_CU_CP_Usage_Report_UeResourceReportItem_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_CU_CP_Usage_Report_UeResourceReportItem_1, - 3, /* Elements count */ - &asn_SPC_CU_CP_Usage_Report_UeResourceReportItem_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/CU-CP-Usage-Report-UeResourceReportItem.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/CU-CP-Usage-Report-UeResourceReportItem.h deleted file mode 100644 index 11edd99..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/CU-CP-Usage-Report-UeResourceReportItem.h +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _CU_CP_Usage_Report_UeResourceReportItem_H_ -#define _CU_CP_Usage_Report_UeResourceReportItem_H_ - - -#include - -/* Including external dependencies */ -#include "C-RNTI.h" -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* CU-CP-Usage-Report-UeResourceReportItem */ -typedef struct CU_CP_Usage_Report_UeResourceReportItem { - C_RNTI_t c_RNTI; - OCTET_STRING_t *serving_Cell_RF_Type; /* OPTIONAL */ - OCTET_STRING_t *neighbor_Cell_RF; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} CU_CP_Usage_Report_UeResourceReportItem_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_CU_CP_Usage_Report_UeResourceReportItem; -extern asn_SEQUENCE_specifics_t asn_SPC_CU_CP_Usage_Report_UeResourceReportItem_specs_1; -extern asn_TYPE_member_t asn_MBR_CU_CP_Usage_Report_UeResourceReportItem_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _CU_CP_Usage_Report_UeResourceReportItem_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/CU-UP-Usage-Report-CellResourceReportItem.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/CU-UP-Usage-Report-CellResourceReportItem.c deleted file mode 100644 index 4781c55..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/CU-UP-Usage-Report-CellResourceReportItem.c +++ /dev/null @@ -1,139 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "CU-UP-Usage-Report-CellResourceReportItem.h" - -static int -memb_ueResourceReportList_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - /* Determine the number of elements */ - size = _A_CSEQUENCE_FROM_VOID(sptr)->count; - - if((size >= 1 && size <= 32)) { - /* Perform validation of the inner elements */ - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_oer_constraints_t asn_OER_type_ueResourceReportList_constr_3 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..32)) */}; -static asn_per_constraints_t asn_PER_type_ueResourceReportList_constr_3 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_ueResourceReportList_constr_3 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..32)) */}; -static asn_per_constraints_t asn_PER_memb_ueResourceReportList_constr_3 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_ueResourceReportList_3[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CU_UP_Usage_Report_UeResourceReportItem, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ueResourceReportList_tags_3[] = { - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_ueResourceReportList_specs_3 = { - sizeof(struct CU_UP_Usage_Report_CellResourceReportItem__ueResourceReportList), - offsetof(struct CU_UP_Usage_Report_CellResourceReportItem__ueResourceReportList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_ueResourceReportList_3 = { - "ueResourceReportList", - "ueResourceReportList", - &asn_OP_SEQUENCE_OF, - asn_DEF_ueResourceReportList_tags_3, - sizeof(asn_DEF_ueResourceReportList_tags_3) - /sizeof(asn_DEF_ueResourceReportList_tags_3[0]) - 1, /* 1 */ - asn_DEF_ueResourceReportList_tags_3, /* Same as above */ - sizeof(asn_DEF_ueResourceReportList_tags_3) - /sizeof(asn_DEF_ueResourceReportList_tags_3[0]), /* 2 */ - { &asn_OER_type_ueResourceReportList_constr_3, &asn_PER_type_ueResourceReportList_constr_3, SEQUENCE_OF_constraint }, - asn_MBR_ueResourceReportList_3, - 1, /* Single element */ - &asn_SPC_ueResourceReportList_specs_3 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_CU_UP_Usage_Report_CellResourceReportItem_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct CU_UP_Usage_Report_CellResourceReportItem, nRCGI), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NRCGI, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "nRCGI" - }, - { ATF_NOFLAGS, 0, offsetof(struct CU_UP_Usage_Report_CellResourceReportItem, ueResourceReportList), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - 0, - &asn_DEF_ueResourceReportList_3, - 0, - { &asn_OER_memb_ueResourceReportList_constr_3, &asn_PER_memb_ueResourceReportList_constr_3, memb_ueResourceReportList_constraint_1 }, - 0, 0, /* No default value */ - "ueResourceReportList" - }, -}; -static const ber_tlv_tag_t asn_DEF_CU_UP_Usage_Report_CellResourceReportItem_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_CU_UP_Usage_Report_CellResourceReportItem_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nRCGI */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ueResourceReportList */ -}; -asn_SEQUENCE_specifics_t asn_SPC_CU_UP_Usage_Report_CellResourceReportItem_specs_1 = { - sizeof(struct CU_UP_Usage_Report_CellResourceReportItem), - offsetof(struct CU_UP_Usage_Report_CellResourceReportItem, _asn_ctx), - asn_MAP_CU_UP_Usage_Report_CellResourceReportItem_tag2el_1, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 2, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_CU_UP_Usage_Report_CellResourceReportItem = { - "CU-UP-Usage-Report-CellResourceReportItem", - "CU-UP-Usage-Report-CellResourceReportItem", - &asn_OP_SEQUENCE, - asn_DEF_CU_UP_Usage_Report_CellResourceReportItem_tags_1, - sizeof(asn_DEF_CU_UP_Usage_Report_CellResourceReportItem_tags_1) - /sizeof(asn_DEF_CU_UP_Usage_Report_CellResourceReportItem_tags_1[0]), /* 1 */ - asn_DEF_CU_UP_Usage_Report_CellResourceReportItem_tags_1, /* Same as above */ - sizeof(asn_DEF_CU_UP_Usage_Report_CellResourceReportItem_tags_1) - /sizeof(asn_DEF_CU_UP_Usage_Report_CellResourceReportItem_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_CU_UP_Usage_Report_CellResourceReportItem_1, - 2, /* Elements count */ - &asn_SPC_CU_UP_Usage_Report_CellResourceReportItem_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/CU-UP-Usage-Report-CellResourceReportItem.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/CU-UP-Usage-Report-CellResourceReportItem.h deleted file mode 100644 index f313f40..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/CU-UP-Usage-Report-CellResourceReportItem.h +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _CU_UP_Usage_Report_CellResourceReportItem_H_ -#define _CU_UP_Usage_Report_CellResourceReportItem_H_ - - -#include - -/* Including external dependencies */ -#include "NRCGI.h" -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct CU_UP_Usage_Report_UeResourceReportItem; - -/* CU-UP-Usage-Report-CellResourceReportItem */ -typedef struct CU_UP_Usage_Report_CellResourceReportItem { - NRCGI_t nRCGI; - struct CU_UP_Usage_Report_CellResourceReportItem__ueResourceReportList { - A_SEQUENCE_OF(struct CU_UP_Usage_Report_UeResourceReportItem) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } ueResourceReportList; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} CU_UP_Usage_Report_CellResourceReportItem_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_CU_UP_Usage_Report_CellResourceReportItem; -extern asn_SEQUENCE_specifics_t asn_SPC_CU_UP_Usage_Report_CellResourceReportItem_specs_1; -extern asn_TYPE_member_t asn_MBR_CU_UP_Usage_Report_CellResourceReportItem_1[2]; - -#ifdef __cplusplus -} -#endif - -/* Referred external types */ -#include "CU-UP-Usage-Report-UeResourceReportItem.h" - -#endif /* _CU_UP_Usage_Report_CellResourceReportItem_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/CU-UP-Usage-Report-Per-UE.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/CU-UP-Usage-Report-Per-UE.c deleted file mode 100644 index 5213281..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/CU-UP-Usage-Report-Per-UE.c +++ /dev/null @@ -1,129 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "CU-UP-Usage-Report-Per-UE.h" - -static int -memb_cellResourceReportList_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - /* Determine the number of elements */ - size = _A_CSEQUENCE_FROM_VOID(sptr)->count; - - if((size >= 1 && size <= 512)) { - /* Perform validation of the inner elements */ - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_oer_constraints_t asn_OER_type_cellResourceReportList_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..512)) */}; -static asn_per_constraints_t asn_PER_type_cellResourceReportList_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 9, 9, 1, 512 } /* (SIZE(1..512)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_cellResourceReportList_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..512)) */}; -static asn_per_constraints_t asn_PER_memb_cellResourceReportList_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 9, 9, 1, 512 } /* (SIZE(1..512)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_cellResourceReportList_2[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CU_UP_Usage_Report_CellResourceReportItem, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_cellResourceReportList_tags_2[] = { - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_cellResourceReportList_specs_2 = { - sizeof(struct CU_UP_Usage_Report_Per_UE__cellResourceReportList), - offsetof(struct CU_UP_Usage_Report_Per_UE__cellResourceReportList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_cellResourceReportList_2 = { - "cellResourceReportList", - "cellResourceReportList", - &asn_OP_SEQUENCE_OF, - asn_DEF_cellResourceReportList_tags_2, - sizeof(asn_DEF_cellResourceReportList_tags_2) - /sizeof(asn_DEF_cellResourceReportList_tags_2[0]) - 1, /* 1 */ - asn_DEF_cellResourceReportList_tags_2, /* Same as above */ - sizeof(asn_DEF_cellResourceReportList_tags_2) - /sizeof(asn_DEF_cellResourceReportList_tags_2[0]), /* 2 */ - { &asn_OER_type_cellResourceReportList_constr_2, &asn_PER_type_cellResourceReportList_constr_2, SEQUENCE_OF_constraint }, - asn_MBR_cellResourceReportList_2, - 1, /* Single element */ - &asn_SPC_cellResourceReportList_specs_2 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_CU_UP_Usage_Report_Per_UE_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct CU_UP_Usage_Report_Per_UE, cellResourceReportList), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - 0, - &asn_DEF_cellResourceReportList_2, - 0, - { &asn_OER_memb_cellResourceReportList_constr_2, &asn_PER_memb_cellResourceReportList_constr_2, memb_cellResourceReportList_constraint_1 }, - 0, 0, /* No default value */ - "cellResourceReportList" - }, -}; -static const ber_tlv_tag_t asn_DEF_CU_UP_Usage_Report_Per_UE_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_CU_UP_Usage_Report_Per_UE_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* cellResourceReportList */ -}; -asn_SEQUENCE_specifics_t asn_SPC_CU_UP_Usage_Report_Per_UE_specs_1 = { - sizeof(struct CU_UP_Usage_Report_Per_UE), - offsetof(struct CU_UP_Usage_Report_Per_UE, _asn_ctx), - asn_MAP_CU_UP_Usage_Report_Per_UE_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_CU_UP_Usage_Report_Per_UE = { - "CU-UP-Usage-Report-Per-UE", - "CU-UP-Usage-Report-Per-UE", - &asn_OP_SEQUENCE, - asn_DEF_CU_UP_Usage_Report_Per_UE_tags_1, - sizeof(asn_DEF_CU_UP_Usage_Report_Per_UE_tags_1) - /sizeof(asn_DEF_CU_UP_Usage_Report_Per_UE_tags_1[0]), /* 1 */ - asn_DEF_CU_UP_Usage_Report_Per_UE_tags_1, /* Same as above */ - sizeof(asn_DEF_CU_UP_Usage_Report_Per_UE_tags_1) - /sizeof(asn_DEF_CU_UP_Usage_Report_Per_UE_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_CU_UP_Usage_Report_Per_UE_1, - 1, /* Elements count */ - &asn_SPC_CU_UP_Usage_Report_Per_UE_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/CU-UP-Usage-Report-Per-UE.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/CU-UP-Usage-Report-Per-UE.h deleted file mode 100644 index 71e6ed9..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/CU-UP-Usage-Report-Per-UE.h +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _CU_UP_Usage_Report_Per_UE_H_ -#define _CU_UP_Usage_Report_Per_UE_H_ - - -#include - -/* Including external dependencies */ -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct CU_UP_Usage_Report_CellResourceReportItem; - -/* CU-UP-Usage-Report-Per-UE */ -typedef struct CU_UP_Usage_Report_Per_UE { - struct CU_UP_Usage_Report_Per_UE__cellResourceReportList { - A_SEQUENCE_OF(struct CU_UP_Usage_Report_CellResourceReportItem) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } cellResourceReportList; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} CU_UP_Usage_Report_Per_UE_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_CU_UP_Usage_Report_Per_UE; -extern asn_SEQUENCE_specifics_t asn_SPC_CU_UP_Usage_Report_Per_UE_specs_1; -extern asn_TYPE_member_t asn_MBR_CU_UP_Usage_Report_Per_UE_1[1]; - -#ifdef __cplusplus -} -#endif - -/* Referred external types */ -#include "CU-UP-Usage-Report-CellResourceReportItem.h" - -#endif /* _CU_UP_Usage_Report_Per_UE_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/CU-UP-Usage-Report-UeResourceReportItem.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/CU-UP-Usage-Report-UeResourceReportItem.c deleted file mode 100644 index 1867379..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/CU-UP-Usage-Report-UeResourceReportItem.c +++ /dev/null @@ -1,150 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "CU-UP-Usage-Report-UeResourceReportItem.h" - -static int -memb_pDCPBytesDL_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const INTEGER_t *st = (const INTEGER_t *)sptr; - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if(asn_INTEGER2long(st, &value)) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value too large (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if((value >= 0 && value <= 10000000000)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_pDCPBytesUL_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const INTEGER_t *st = (const INTEGER_t *)sptr; - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if(asn_INTEGER2long(st, &value)) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value too large (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if((value >= 0 && value <= 10000000000)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_oer_constraints_t asn_OER_memb_pDCPBytesDL_constr_3 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_memb_pDCPBytesDL_constr_3 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 34, -1, 0, 10000000000 } /* (0..10000000000,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_pDCPBytesUL_constr_4 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_memb_pDCPBytesUL_constr_4 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 34, -1, 0, 10000000000 } /* (0..10000000000,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_CU_UP_Usage_Report_UeResourceReportItem_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct CU_UP_Usage_Report_UeResourceReportItem, c_RNTI), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_C_RNTI, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "c-RNTI" - }, - { ATF_POINTER, 2, offsetof(struct CU_UP_Usage_Report_UeResourceReportItem, pDCPBytesDL), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_INTEGER, - 0, - { &asn_OER_memb_pDCPBytesDL_constr_3, &asn_PER_memb_pDCPBytesDL_constr_3, memb_pDCPBytesDL_constraint_1 }, - 0, 0, /* No default value */ - "pDCPBytesDL" - }, - { ATF_POINTER, 1, offsetof(struct CU_UP_Usage_Report_UeResourceReportItem, pDCPBytesUL), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_INTEGER, - 0, - { &asn_OER_memb_pDCPBytesUL_constr_4, &asn_PER_memb_pDCPBytesUL_constr_4, memb_pDCPBytesUL_constraint_1 }, - 0, 0, /* No default value */ - "pDCPBytesUL" - }, -}; -static const int asn_MAP_CU_UP_Usage_Report_UeResourceReportItem_oms_1[] = { 1, 2 }; -static const ber_tlv_tag_t asn_DEF_CU_UP_Usage_Report_UeResourceReportItem_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_CU_UP_Usage_Report_UeResourceReportItem_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* c-RNTI */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* pDCPBytesDL */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* pDCPBytesUL */ -}; -asn_SEQUENCE_specifics_t asn_SPC_CU_UP_Usage_Report_UeResourceReportItem_specs_1 = { - sizeof(struct CU_UP_Usage_Report_UeResourceReportItem), - offsetof(struct CU_UP_Usage_Report_UeResourceReportItem, _asn_ctx), - asn_MAP_CU_UP_Usage_Report_UeResourceReportItem_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_CU_UP_Usage_Report_UeResourceReportItem_oms_1, /* Optional members */ - 2, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_CU_UP_Usage_Report_UeResourceReportItem = { - "CU-UP-Usage-Report-UeResourceReportItem", - "CU-UP-Usage-Report-UeResourceReportItem", - &asn_OP_SEQUENCE, - asn_DEF_CU_UP_Usage_Report_UeResourceReportItem_tags_1, - sizeof(asn_DEF_CU_UP_Usage_Report_UeResourceReportItem_tags_1) - /sizeof(asn_DEF_CU_UP_Usage_Report_UeResourceReportItem_tags_1[0]), /* 1 */ - asn_DEF_CU_UP_Usage_Report_UeResourceReportItem_tags_1, /* Same as above */ - sizeof(asn_DEF_CU_UP_Usage_Report_UeResourceReportItem_tags_1) - /sizeof(asn_DEF_CU_UP_Usage_Report_UeResourceReportItem_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_CU_UP_Usage_Report_UeResourceReportItem_1, - 3, /* Elements count */ - &asn_SPC_CU_UP_Usage_Report_UeResourceReportItem_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/CU-UP-Usage-Report-UeResourceReportItem.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/CU-UP-Usage-Report-UeResourceReportItem.h deleted file mode 100644 index 3a3dec7..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/CU-UP-Usage-Report-UeResourceReportItem.h +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _CU_UP_Usage_Report_UeResourceReportItem_H_ -#define _CU_UP_Usage_Report_UeResourceReportItem_H_ - - -#include - -/* Including external dependencies */ -#include "C-RNTI.h" -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* CU-UP-Usage-Report-UeResourceReportItem */ -typedef struct CU_UP_Usage_Report_UeResourceReportItem { - C_RNTI_t c_RNTI; - INTEGER_t *pDCPBytesDL; /* OPTIONAL */ - INTEGER_t *pDCPBytesUL; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} CU_UP_Usage_Report_UeResourceReportItem_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_CU_UP_Usage_Report_UeResourceReportItem; -extern asn_SEQUENCE_specifics_t asn_SPC_CU_UP_Usage_Report_UeResourceReportItem_specs_1; -extern asn_TYPE_member_t asn_MBR_CU_UP_Usage_Report_UeResourceReportItem_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _CU_UP_Usage_Report_UeResourceReportItem_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/CUUPMeasurement-Container.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/CUUPMeasurement-Container.c deleted file mode 100644 index bd27283..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/CUUPMeasurement-Container.c +++ /dev/null @@ -1,129 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "CUUPMeasurement-Container.h" - -static int -memb_plmnList_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - /* Determine the number of elements */ - size = _A_CSEQUENCE_FROM_VOID(sptr)->count; - - if((size >= 1 && size <= 12)) { - /* Perform validation of the inner elements */ - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_oer_constraints_t asn_OER_type_plmnList_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..12)) */}; -static asn_per_constraints_t asn_PER_type_plmnList_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 4, 4, 1, 12 } /* (SIZE(1..12)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_plmnList_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..12)) */}; -static asn_per_constraints_t asn_PER_memb_plmnList_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 4, 4, 1, 12 } /* (SIZE(1..12)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_plmnList_2[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_PlmnID_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_plmnList_tags_2[] = { - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_plmnList_specs_2 = { - sizeof(struct CUUPMeasurement_Container__plmnList), - offsetof(struct CUUPMeasurement_Container__plmnList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_plmnList_2 = { - "plmnList", - "plmnList", - &asn_OP_SEQUENCE_OF, - asn_DEF_plmnList_tags_2, - sizeof(asn_DEF_plmnList_tags_2) - /sizeof(asn_DEF_plmnList_tags_2[0]) - 1, /* 1 */ - asn_DEF_plmnList_tags_2, /* Same as above */ - sizeof(asn_DEF_plmnList_tags_2) - /sizeof(asn_DEF_plmnList_tags_2[0]), /* 2 */ - { &asn_OER_type_plmnList_constr_2, &asn_PER_type_plmnList_constr_2, SEQUENCE_OF_constraint }, - asn_MBR_plmnList_2, - 1, /* Single element */ - &asn_SPC_plmnList_specs_2 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_CUUPMeasurement_Container_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct CUUPMeasurement_Container, plmnList), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - 0, - &asn_DEF_plmnList_2, - 0, - { &asn_OER_memb_plmnList_constr_2, &asn_PER_memb_plmnList_constr_2, memb_plmnList_constraint_1 }, - 0, 0, /* No default value */ - "plmnList" - }, -}; -static const ber_tlv_tag_t asn_DEF_CUUPMeasurement_Container_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_CUUPMeasurement_Container_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* plmnList */ -}; -asn_SEQUENCE_specifics_t asn_SPC_CUUPMeasurement_Container_specs_1 = { - sizeof(struct CUUPMeasurement_Container), - offsetof(struct CUUPMeasurement_Container, _asn_ctx), - asn_MAP_CUUPMeasurement_Container_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_CUUPMeasurement_Container = { - "CUUPMeasurement-Container", - "CUUPMeasurement-Container", - &asn_OP_SEQUENCE, - asn_DEF_CUUPMeasurement_Container_tags_1, - sizeof(asn_DEF_CUUPMeasurement_Container_tags_1) - /sizeof(asn_DEF_CUUPMeasurement_Container_tags_1[0]), /* 1 */ - asn_DEF_CUUPMeasurement_Container_tags_1, /* Same as above */ - sizeof(asn_DEF_CUUPMeasurement_Container_tags_1) - /sizeof(asn_DEF_CUUPMeasurement_Container_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_CUUPMeasurement_Container_1, - 1, /* Elements count */ - &asn_SPC_CUUPMeasurement_Container_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/CUUPMeasurement-Container.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/CUUPMeasurement-Container.h deleted file mode 100644 index 14aafc3..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/CUUPMeasurement-Container.h +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _CUUPMeasurement_Container_H_ -#define _CUUPMeasurement_Container_H_ - - -#include - -/* Including external dependencies */ -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct PlmnID_List; - -/* CUUPMeasurement-Container */ -typedef struct CUUPMeasurement_Container { - struct CUUPMeasurement_Container__plmnList { - A_SEQUENCE_OF(struct PlmnID_List) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } plmnList; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} CUUPMeasurement_Container_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_CUUPMeasurement_Container; -extern asn_SEQUENCE_specifics_t asn_SPC_CUUPMeasurement_Container_specs_1; -extern asn_TYPE_member_t asn_MBR_CUUPMeasurement_Container_1[1]; - -#ifdef __cplusplus -} -#endif - -/* Referred external types */ -#include "PlmnID-List.h" - -#endif /* _CUUPMeasurement_Container_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/Cause.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/Cause.c deleted file mode 100644 index 1027911..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/Cause.c +++ /dev/null @@ -1,92 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "Cause.h" - -asn_per_constraints_t asn_PER_type_Cause_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 4 } /* (0..4,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_Cause_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct Cause, choice.ricRequest), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_CauseRIC, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ricRequest" - }, - { ATF_NOFLAGS, 0, offsetof(struct Cause, choice.ricService), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_CauseRICservice, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ricService" - }, - { ATF_NOFLAGS, 0, offsetof(struct Cause, choice.transport), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_CauseTransport, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "transport" - }, - { ATF_NOFLAGS, 0, offsetof(struct Cause, choice.protocol), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_CauseProtocol, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocol" - }, - { ATF_NOFLAGS, 0, offsetof(struct Cause, choice.misc), - (ASN_TAG_CLASS_CONTEXT | (4 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_CauseMisc, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "misc" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_Cause_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ricRequest */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ricService */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* transport */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* protocol */ - { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* misc */ -}; -asn_CHOICE_specifics_t asn_SPC_Cause_specs_1 = { - sizeof(struct Cause), - offsetof(struct Cause, _asn_ctx), - offsetof(struct Cause, present), - sizeof(((struct Cause *)0)->present), - asn_MAP_Cause_tag2el_1, - 5, /* Count of tags in the map */ - 0, 0, - 5 /* Extensions start */ -}; -asn_TYPE_descriptor_t asn_DEF_Cause = { - "Cause", - "Cause", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, &asn_PER_type_Cause_constr_1, CHOICE_constraint }, - asn_MBR_Cause_1, - 5, /* Elements count */ - &asn_SPC_Cause_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/Cause.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/Cause.h deleted file mode 100644 index 1b829a6..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/Cause.h +++ /dev/null @@ -1,68 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _Cause_H_ -#define _Cause_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "CauseRIC.h" -#include "CauseRICservice.h" -#include "CauseTransport.h" -#include "CauseProtocol.h" -#include "CauseMisc.h" -#include "constr_CHOICE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum Cause_PR { - Cause_PR_NOTHING, /* No components present */ - Cause_PR_ricRequest, - Cause_PR_ricService, - Cause_PR_transport, - Cause_PR_protocol, - Cause_PR_misc - /* Extensions may appear below */ - -} Cause_PR; - -/* Cause */ -typedef struct Cause { - Cause_PR present; - union Cause_u { - CauseRIC_t ricRequest; - CauseRICservice_t ricService; - CauseTransport_t transport; - CauseProtocol_t protocol; - CauseMisc_t misc; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} Cause_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_Cause; -extern asn_CHOICE_specifics_t asn_SPC_Cause_specs_1; -extern asn_TYPE_member_t asn_MBR_Cause_1[5]; -extern asn_per_constraints_t asn_PER_type_Cause_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _Cause_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/CauseMisc.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/CauseMisc.c deleted file mode 100644 index 1709929..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/CauseMisc.c +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "CauseMisc.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_CauseMisc_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 3 } /* (0..3,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_CauseMisc_value2enum_1[] = { - { 0, 27, "control-processing-overload" }, - { 1, 16, "hardware-failure" }, - { 2, 15, "om-intervention" }, - { 3, 11, "unspecified" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_CauseMisc_enum2value_1[] = { - 0, /* control-processing-overload(0) */ - 1, /* hardware-failure(1) */ - 2, /* om-intervention(2) */ - 3 /* unspecified(3) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_CauseMisc_specs_1 = { - asn_MAP_CauseMisc_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_CauseMisc_enum2value_1, /* N => "tag"; sorted by N */ - 4, /* Number of elements in the maps */ - 5, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_CauseMisc_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_CauseMisc = { - "CauseMisc", - "CauseMisc", - &asn_OP_NativeEnumerated, - asn_DEF_CauseMisc_tags_1, - sizeof(asn_DEF_CauseMisc_tags_1) - /sizeof(asn_DEF_CauseMisc_tags_1[0]), /* 1 */ - asn_DEF_CauseMisc_tags_1, /* Same as above */ - sizeof(asn_DEF_CauseMisc_tags_1) - /sizeof(asn_DEF_CauseMisc_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_CauseMisc_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_CauseMisc_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/CauseMisc.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/CauseMisc.h deleted file mode 100644 index d175009..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/CauseMisc.h +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _CauseMisc_H_ -#define _CauseMisc_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum CauseMisc { - CauseMisc_control_processing_overload = 0, - CauseMisc_hardware_failure = 1, - CauseMisc_om_intervention = 2, - CauseMisc_unspecified = 3 - /* - * Enumeration is extensible - */ -} e_CauseMisc; - -/* CauseMisc */ -typedef long CauseMisc_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_CauseMisc_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_CauseMisc; -extern const asn_INTEGER_specifics_t asn_SPC_CauseMisc_specs_1; -asn_struct_free_f CauseMisc_free; -asn_struct_print_f CauseMisc_print; -asn_constr_check_f CauseMisc_constraint; -ber_type_decoder_f CauseMisc_decode_ber; -der_type_encoder_f CauseMisc_encode_der; -xer_type_decoder_f CauseMisc_decode_xer; -xer_type_encoder_f CauseMisc_encode_xer; -per_type_decoder_f CauseMisc_decode_uper; -per_type_encoder_f CauseMisc_encode_uper; -per_type_decoder_f CauseMisc_decode_aper; -per_type_encoder_f CauseMisc_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _CauseMisc_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/CauseProtocol.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/CauseProtocol.c deleted file mode 100644 index e5b11b0..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/CauseProtocol.c +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "CauseProtocol.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_CauseProtocol_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 6 } /* (0..6,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_CauseProtocol_value2enum_1[] = { - { 0, 21, "transfer-syntax-error" }, - { 1, 28, "abstract-syntax-error-reject" }, - { 2, 39, "abstract-syntax-error-ignore-and-notify" }, - { 3, 42, "message-not-compatible-with-receiver-state" }, - { 4, 14, "semantic-error" }, - { 5, 49, "abstract-syntax-error-falsely-constructed-message" }, - { 6, 11, "unspecified" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_CauseProtocol_enum2value_1[] = { - 5, /* abstract-syntax-error-falsely-constructed-message(5) */ - 2, /* abstract-syntax-error-ignore-and-notify(2) */ - 1, /* abstract-syntax-error-reject(1) */ - 3, /* message-not-compatible-with-receiver-state(3) */ - 4, /* semantic-error(4) */ - 0, /* transfer-syntax-error(0) */ - 6 /* unspecified(6) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_CauseProtocol_specs_1 = { - asn_MAP_CauseProtocol_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_CauseProtocol_enum2value_1, /* N => "tag"; sorted by N */ - 7, /* Number of elements in the maps */ - 8, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_CauseProtocol_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_CauseProtocol = { - "CauseProtocol", - "CauseProtocol", - &asn_OP_NativeEnumerated, - asn_DEF_CauseProtocol_tags_1, - sizeof(asn_DEF_CauseProtocol_tags_1) - /sizeof(asn_DEF_CauseProtocol_tags_1[0]), /* 1 */ - asn_DEF_CauseProtocol_tags_1, /* Same as above */ - sizeof(asn_DEF_CauseProtocol_tags_1) - /sizeof(asn_DEF_CauseProtocol_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_CauseProtocol_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_CauseProtocol_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/CauseProtocol.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/CauseProtocol.h deleted file mode 100644 index 72329ac..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/CauseProtocol.h +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _CauseProtocol_H_ -#define _CauseProtocol_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum CauseProtocol { - CauseProtocol_transfer_syntax_error = 0, - CauseProtocol_abstract_syntax_error_reject = 1, - CauseProtocol_abstract_syntax_error_ignore_and_notify = 2, - CauseProtocol_message_not_compatible_with_receiver_state = 3, - CauseProtocol_semantic_error = 4, - CauseProtocol_abstract_syntax_error_falsely_constructed_message = 5, - CauseProtocol_unspecified = 6 - /* - * Enumeration is extensible - */ -} e_CauseProtocol; - -/* CauseProtocol */ -typedef long CauseProtocol_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_CauseProtocol_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_CauseProtocol; -extern const asn_INTEGER_specifics_t asn_SPC_CauseProtocol_specs_1; -asn_struct_free_f CauseProtocol_free; -asn_struct_print_f CauseProtocol_print; -asn_constr_check_f CauseProtocol_constraint; -ber_type_decoder_f CauseProtocol_decode_ber; -der_type_encoder_f CauseProtocol_encode_der; -xer_type_decoder_f CauseProtocol_decode_xer; -xer_type_encoder_f CauseProtocol_encode_xer; -per_type_decoder_f CauseProtocol_decode_uper; -per_type_encoder_f CauseProtocol_encode_uper; -per_type_decoder_f CauseProtocol_decode_aper; -per_type_encoder_f CauseProtocol_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _CauseProtocol_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/CauseRIC.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/CauseRIC.c deleted file mode 100644 index 11d9e4e..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/CauseRIC.c +++ /dev/null @@ -1,73 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "CauseRIC.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_CauseRIC_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 4, 4, 0, 10 } /* (0..10,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_CauseRIC_value2enum_1[] = { - { 0, 23, "ran-function-id-Invalid" }, - { 1, 20, "action-not-supported" }, - { 2, 17, "excessive-actions" }, - { 3, 16, "duplicate-action" }, - { 4, 15, "duplicate-event" }, - { 5, 23, "function-resource-limit" }, - { 6, 18, "request-id-unknown" }, - { 7, 46, "inconsistent-action-subsequent-action-sequence" }, - { 8, 23, "control-message-invalid" }, - { 9, 23, "call-process-id-invalid" }, - { 10, 11, "unspecified" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_CauseRIC_enum2value_1[] = { - 1, /* action-not-supported(1) */ - 9, /* call-process-id-invalid(9) */ - 8, /* control-message-invalid(8) */ - 3, /* duplicate-action(3) */ - 4, /* duplicate-event(4) */ - 2, /* excessive-actions(2) */ - 5, /* function-resource-limit(5) */ - 7, /* inconsistent-action-subsequent-action-sequence(7) */ - 0, /* ran-function-id-Invalid(0) */ - 6, /* request-id-unknown(6) */ - 10 /* unspecified(10) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_CauseRIC_specs_1 = { - asn_MAP_CauseRIC_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_CauseRIC_enum2value_1, /* N => "tag"; sorted by N */ - 11, /* Number of elements in the maps */ - 12, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_CauseRIC_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_CauseRIC = { - "CauseRIC", - "CauseRIC", - &asn_OP_NativeEnumerated, - asn_DEF_CauseRIC_tags_1, - sizeof(asn_DEF_CauseRIC_tags_1) - /sizeof(asn_DEF_CauseRIC_tags_1[0]), /* 1 */ - asn_DEF_CauseRIC_tags_1, /* Same as above */ - sizeof(asn_DEF_CauseRIC_tags_1) - /sizeof(asn_DEF_CauseRIC_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_CauseRIC_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_CauseRIC_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/CauseRIC.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/CauseRIC.h deleted file mode 100644 index 417532f..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/CauseRIC.h +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _CauseRIC_H_ -#define _CauseRIC_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum CauseRIC { - CauseRIC_ran_function_id_Invalid = 0, - CauseRIC_action_not_supported = 1, - CauseRIC_excessive_actions = 2, - CauseRIC_duplicate_action = 3, - CauseRIC_duplicate_event = 4, - CauseRIC_function_resource_limit = 5, - CauseRIC_request_id_unknown = 6, - CauseRIC_inconsistent_action_subsequent_action_sequence = 7, - CauseRIC_control_message_invalid = 8, - CauseRIC_call_process_id_invalid = 9, - CauseRIC_unspecified = 10 - /* - * Enumeration is extensible - */ -} e_CauseRIC; - -/* CauseRIC */ -typedef long CauseRIC_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_CauseRIC_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_CauseRIC; -extern const asn_INTEGER_specifics_t asn_SPC_CauseRIC_specs_1; -asn_struct_free_f CauseRIC_free; -asn_struct_print_f CauseRIC_print; -asn_constr_check_f CauseRIC_constraint; -ber_type_decoder_f CauseRIC_decode_ber; -der_type_encoder_f CauseRIC_encode_der; -xer_type_decoder_f CauseRIC_decode_xer; -xer_type_encoder_f CauseRIC_encode_xer; -per_type_decoder_f CauseRIC_decode_uper; -per_type_encoder_f CauseRIC_encode_uper; -per_type_decoder_f CauseRIC_decode_aper; -per_type_encoder_f CauseRIC_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _CauseRIC_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/CauseRICservice.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/CauseRICservice.c deleted file mode 100644 index 6773fd4..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/CauseRICservice.c +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "CauseRICservice.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_CauseRICservice_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 2 } /* (0..2,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_CauseRICservice_value2enum_1[] = { - { 0, 21, "function-not-required" }, - { 1, 19, "excessive-functions" }, - { 2, 18, "ric-resource-limit" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_CauseRICservice_enum2value_1[] = { - 1, /* excessive-functions(1) */ - 0, /* function-not-required(0) */ - 2 /* ric-resource-limit(2) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_CauseRICservice_specs_1 = { - asn_MAP_CauseRICservice_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_CauseRICservice_enum2value_1, /* N => "tag"; sorted by N */ - 3, /* Number of elements in the maps */ - 4, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_CauseRICservice_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_CauseRICservice = { - "CauseRICservice", - "CauseRICservice", - &asn_OP_NativeEnumerated, - asn_DEF_CauseRICservice_tags_1, - sizeof(asn_DEF_CauseRICservice_tags_1) - /sizeof(asn_DEF_CauseRICservice_tags_1[0]), /* 1 */ - asn_DEF_CauseRICservice_tags_1, /* Same as above */ - sizeof(asn_DEF_CauseRICservice_tags_1) - /sizeof(asn_DEF_CauseRICservice_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_CauseRICservice_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_CauseRICservice_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/CauseRICservice.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/CauseRICservice.h deleted file mode 100644 index 4270eb3..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/CauseRICservice.h +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _CauseRICservice_H_ -#define _CauseRICservice_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum CauseRICservice { - CauseRICservice_function_not_required = 0, - CauseRICservice_excessive_functions = 1, - CauseRICservice_ric_resource_limit = 2 - /* - * Enumeration is extensible - */ -} e_CauseRICservice; - -/* CauseRICservice */ -typedef long CauseRICservice_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_CauseRICservice_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_CauseRICservice; -extern const asn_INTEGER_specifics_t asn_SPC_CauseRICservice_specs_1; -asn_struct_free_f CauseRICservice_free; -asn_struct_print_f CauseRICservice_print; -asn_constr_check_f CauseRICservice_constraint; -ber_type_decoder_f CauseRICservice_decode_ber; -der_type_encoder_f CauseRICservice_encode_der; -xer_type_decoder_f CauseRICservice_decode_xer; -xer_type_encoder_f CauseRICservice_encode_xer; -per_type_decoder_f CauseRICservice_decode_uper; -per_type_encoder_f CauseRICservice_encode_uper; -per_type_decoder_f CauseRICservice_decode_aper; -per_type_encoder_f CauseRICservice_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _CauseRICservice_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/CauseTransport.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/CauseTransport.c deleted file mode 100644 index 08a317d..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/CauseTransport.c +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "CauseTransport.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_CauseTransport_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_CauseTransport_value2enum_1[] = { - { 0, 11, "unspecified" }, - { 1, 30, "transport-resource-unavailable" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_CauseTransport_enum2value_1[] = { - 1, /* transport-resource-unavailable(1) */ - 0 /* unspecified(0) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_CauseTransport_specs_1 = { - asn_MAP_CauseTransport_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_CauseTransport_enum2value_1, /* N => "tag"; sorted by N */ - 2, /* Number of elements in the maps */ - 3, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_CauseTransport_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_CauseTransport = { - "CauseTransport", - "CauseTransport", - &asn_OP_NativeEnumerated, - asn_DEF_CauseTransport_tags_1, - sizeof(asn_DEF_CauseTransport_tags_1) - /sizeof(asn_DEF_CauseTransport_tags_1[0]), /* 1 */ - asn_DEF_CauseTransport_tags_1, /* Same as above */ - sizeof(asn_DEF_CauseTransport_tags_1) - /sizeof(asn_DEF_CauseTransport_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_CauseTransport_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_CauseTransport_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/CauseTransport.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/CauseTransport.h deleted file mode 100644 index f3fe969..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/CauseTransport.h +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _CauseTransport_H_ -#define _CauseTransport_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum CauseTransport { - CauseTransport_unspecified = 0, - CauseTransport_transport_resource_unavailable = 1 - /* - * Enumeration is extensible - */ -} e_CauseTransport; - -/* CauseTransport */ -typedef long CauseTransport_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_CauseTransport_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_CauseTransport; -extern const asn_INTEGER_specifics_t asn_SPC_CauseTransport_specs_1; -asn_struct_free_f CauseTransport_free; -asn_struct_print_f CauseTransport_print; -asn_constr_check_f CauseTransport_constraint; -ber_type_decoder_f CauseTransport_decode_ber; -der_type_encoder_f CauseTransport_encode_der; -xer_type_decoder_f CauseTransport_decode_xer; -xer_type_encoder_f CauseTransport_encode_xer; -per_type_decoder_f CauseTransport_decode_uper; -per_type_encoder_f CauseTransport_encode_uper; -per_type_decoder_f CauseTransport_decode_aper; -per_type_encoder_f CauseTransport_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _CauseTransport_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/CellResourceReportListItem.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/CellResourceReportListItem.c deleted file mode 100644 index 670d42a..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/CellResourceReportListItem.c +++ /dev/null @@ -1,227 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "CellResourceReportListItem.h" - -static int -memb_dl_TotalofAvailablePRBs_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 273)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_ul_TotalofAvailablePRBs_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 273)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_servedPlmnPerCellList_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - /* Determine the number of elements */ - size = _A_CSEQUENCE_FROM_VOID(sptr)->count; - - if((size >= 1 && size <= 12)) { - /* Perform validation of the inner elements */ - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_oer_constraints_t asn_OER_type_servedPlmnPerCellList_constr_5 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..12)) */}; -static asn_per_constraints_t asn_PER_type_servedPlmnPerCellList_constr_5 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 4, 4, 1, 12 } /* (SIZE(1..12)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_dl_TotalofAvailablePRBs_constr_3 CC_NOTUSED = { - { 2, 1 } /* (0..273) */, - -1}; -static asn_per_constraints_t asn_PER_memb_dl_TotalofAvailablePRBs_constr_3 CC_NOTUSED = { - { APC_CONSTRAINED, 9, 9, 0, 273 } /* (0..273) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_ul_TotalofAvailablePRBs_constr_4 CC_NOTUSED = { - { 2, 1 } /* (0..273) */, - -1}; -static asn_per_constraints_t asn_PER_memb_ul_TotalofAvailablePRBs_constr_4 CC_NOTUSED = { - { APC_CONSTRAINED, 9, 9, 0, 273 } /* (0..273) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_servedPlmnPerCellList_constr_5 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..12)) */}; -static asn_per_constraints_t asn_PER_memb_servedPlmnPerCellList_constr_5 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 4, 4, 1, 12 } /* (SIZE(1..12)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_servedPlmnPerCellList_5[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ServedPlmnPerCellListItem, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_servedPlmnPerCellList_tags_5[] = { - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_servedPlmnPerCellList_specs_5 = { - sizeof(struct CellResourceReportListItem__servedPlmnPerCellList), - offsetof(struct CellResourceReportListItem__servedPlmnPerCellList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_servedPlmnPerCellList_5 = { - "servedPlmnPerCellList", - "servedPlmnPerCellList", - &asn_OP_SEQUENCE_OF, - asn_DEF_servedPlmnPerCellList_tags_5, - sizeof(asn_DEF_servedPlmnPerCellList_tags_5) - /sizeof(asn_DEF_servedPlmnPerCellList_tags_5[0]) - 1, /* 1 */ - asn_DEF_servedPlmnPerCellList_tags_5, /* Same as above */ - sizeof(asn_DEF_servedPlmnPerCellList_tags_5) - /sizeof(asn_DEF_servedPlmnPerCellList_tags_5[0]), /* 2 */ - { &asn_OER_type_servedPlmnPerCellList_constr_5, &asn_PER_type_servedPlmnPerCellList_constr_5, SEQUENCE_OF_constraint }, - asn_MBR_servedPlmnPerCellList_5, - 1, /* Single element */ - &asn_SPC_servedPlmnPerCellList_specs_5 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_CellResourceReportListItem_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct CellResourceReportListItem, nRCGI), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NRCGI, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "nRCGI" - }, - { ATF_POINTER, 2, offsetof(struct CellResourceReportListItem, dl_TotalofAvailablePRBs), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_dl_TotalofAvailablePRBs_constr_3, &asn_PER_memb_dl_TotalofAvailablePRBs_constr_3, memb_dl_TotalofAvailablePRBs_constraint_1 }, - 0, 0, /* No default value */ - "dl-TotalofAvailablePRBs" - }, - { ATF_POINTER, 1, offsetof(struct CellResourceReportListItem, ul_TotalofAvailablePRBs), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_ul_TotalofAvailablePRBs_constr_4, &asn_PER_memb_ul_TotalofAvailablePRBs_constr_4, memb_ul_TotalofAvailablePRBs_constraint_1 }, - 0, 0, /* No default value */ - "ul-TotalofAvailablePRBs" - }, - { ATF_NOFLAGS, 0, offsetof(struct CellResourceReportListItem, servedPlmnPerCellList), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - 0, - &asn_DEF_servedPlmnPerCellList_5, - 0, - { &asn_OER_memb_servedPlmnPerCellList_constr_5, &asn_PER_memb_servedPlmnPerCellList_constr_5, memb_servedPlmnPerCellList_constraint_1 }, - 0, 0, /* No default value */ - "servedPlmnPerCellList" - }, -}; -static const int asn_MAP_CellResourceReportListItem_oms_1[] = { 1, 2 }; -static const ber_tlv_tag_t asn_DEF_CellResourceReportListItem_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_CellResourceReportListItem_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nRCGI */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* dl-TotalofAvailablePRBs */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* ul-TotalofAvailablePRBs */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* servedPlmnPerCellList */ -}; -asn_SEQUENCE_specifics_t asn_SPC_CellResourceReportListItem_specs_1 = { - sizeof(struct CellResourceReportListItem), - offsetof(struct CellResourceReportListItem, _asn_ctx), - asn_MAP_CellResourceReportListItem_tag2el_1, - 4, /* Count of tags in the map */ - asn_MAP_CellResourceReportListItem_oms_1, /* Optional members */ - 2, 0, /* Root/Additions */ - 4, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_CellResourceReportListItem = { - "CellResourceReportListItem", - "CellResourceReportListItem", - &asn_OP_SEQUENCE, - asn_DEF_CellResourceReportListItem_tags_1, - sizeof(asn_DEF_CellResourceReportListItem_tags_1) - /sizeof(asn_DEF_CellResourceReportListItem_tags_1[0]), /* 1 */ - asn_DEF_CellResourceReportListItem_tags_1, /* Same as above */ - sizeof(asn_DEF_CellResourceReportListItem_tags_1) - /sizeof(asn_DEF_CellResourceReportListItem_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_CellResourceReportListItem_1, - 4, /* Elements count */ - &asn_SPC_CellResourceReportListItem_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/CellResourceReportListItem.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/CellResourceReportListItem.h deleted file mode 100644 index 91bbf71..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/CellResourceReportListItem.h +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _CellResourceReportListItem_H_ -#define _CellResourceReportListItem_H_ - - -#include - -/* Including external dependencies */ -#include "NRCGI.h" -#include -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ServedPlmnPerCellListItem; - -/* CellResourceReportListItem */ -typedef struct CellResourceReportListItem { - NRCGI_t nRCGI; - long *dl_TotalofAvailablePRBs; /* OPTIONAL */ - long *ul_TotalofAvailablePRBs; /* OPTIONAL */ - struct CellResourceReportListItem__servedPlmnPerCellList { - A_SEQUENCE_OF(struct ServedPlmnPerCellListItem) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } servedPlmnPerCellList; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} CellResourceReportListItem_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_CellResourceReportListItem; -extern asn_SEQUENCE_specifics_t asn_SPC_CellResourceReportListItem_specs_1; -extern asn_TYPE_member_t asn_MBR_CellResourceReportListItem_1[4]; - -#ifdef __cplusplus -} -#endif - -/* Referred external types */ -#include "ServedPlmnPerCellListItem.h" - -#endif /* _CellResourceReportListItem_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/Criticality.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/Criticality.c deleted file mode 100644 index 217d8e5..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/Criticality.c +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-CommonDataTypes" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "Criticality.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_Criticality_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_Criticality_value2enum_1[] = { - { 0, 6, "reject" }, - { 1, 6, "ignore" }, - { 2, 6, "notify" } -}; -static const unsigned int asn_MAP_Criticality_enum2value_1[] = { - 1, /* ignore(1) */ - 2, /* notify(2) */ - 0 /* reject(0) */ -}; -const asn_INTEGER_specifics_t asn_SPC_Criticality_specs_1 = { - asn_MAP_Criticality_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_Criticality_enum2value_1, /* N => "tag"; sorted by N */ - 3, /* Number of elements in the maps */ - 0, /* Enumeration is not extensible */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_Criticality_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_Criticality = { - "Criticality", - "Criticality", - &asn_OP_NativeEnumerated, - asn_DEF_Criticality_tags_1, - sizeof(asn_DEF_Criticality_tags_1) - /sizeof(asn_DEF_Criticality_tags_1[0]), /* 1 */ - asn_DEF_Criticality_tags_1, /* Same as above */ - sizeof(asn_DEF_Criticality_tags_1) - /sizeof(asn_DEF_Criticality_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_Criticality_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_Criticality_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/Criticality.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/Criticality.h deleted file mode 100644 index ab1ecf2..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/Criticality.h +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-CommonDataTypes" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _Criticality_H_ -#define _Criticality_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum Criticality { - Criticality_reject = 0, - Criticality_ignore = 1, - Criticality_notify = 2 -} e_Criticality; - -/* Criticality */ -typedef long Criticality_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_Criticality_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_Criticality; -extern const asn_INTEGER_specifics_t asn_SPC_Criticality_specs_1; -asn_struct_free_f Criticality_free; -asn_struct_print_f Criticality_print; -asn_constr_check_f Criticality_constraint; -ber_type_decoder_f Criticality_decode_ber; -der_type_encoder_f Criticality_encode_der; -xer_type_decoder_f Criticality_decode_xer; -xer_type_encoder_f Criticality_encode_xer; -per_type_decoder_f Criticality_decode_uper; -per_type_encoder_f Criticality_encode_uper; -per_type_decoder_f Criticality_decode_aper; -per_type_encoder_f Criticality_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _Criticality_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/CriticalityDiagnostics-IE-Item.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/CriticalityDiagnostics-IE-Item.c deleted file mode 100644 index 0306093..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/CriticalityDiagnostics-IE-Item.c +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "CriticalityDiagnostics-IE-Item.h" - -asn_TYPE_member_t asn_MBR_CriticalityDiagnostics_IE_Item_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct CriticalityDiagnostics_IE_Item, iECriticality), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iECriticality" - }, - { ATF_NOFLAGS, 0, offsetof(struct CriticalityDiagnostics_IE_Item, iE_ID), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iE-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct CriticalityDiagnostics_IE_Item, typeOfError), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_TypeOfError, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "typeOfError" - }, -}; -static const ber_tlv_tag_t asn_DEF_CriticalityDiagnostics_IE_Item_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_CriticalityDiagnostics_IE_Item_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* iECriticality */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* iE-ID */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* typeOfError */ -}; -asn_SEQUENCE_specifics_t asn_SPC_CriticalityDiagnostics_IE_Item_specs_1 = { - sizeof(struct CriticalityDiagnostics_IE_Item), - offsetof(struct CriticalityDiagnostics_IE_Item, _asn_ctx), - asn_MAP_CriticalityDiagnostics_IE_Item_tag2el_1, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_CriticalityDiagnostics_IE_Item = { - "CriticalityDiagnostics-IE-Item", - "CriticalityDiagnostics-IE-Item", - &asn_OP_SEQUENCE, - asn_DEF_CriticalityDiagnostics_IE_Item_tags_1, - sizeof(asn_DEF_CriticalityDiagnostics_IE_Item_tags_1) - /sizeof(asn_DEF_CriticalityDiagnostics_IE_Item_tags_1[0]), /* 1 */ - asn_DEF_CriticalityDiagnostics_IE_Item_tags_1, /* Same as above */ - sizeof(asn_DEF_CriticalityDiagnostics_IE_Item_tags_1) - /sizeof(asn_DEF_CriticalityDiagnostics_IE_Item_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_CriticalityDiagnostics_IE_Item_1, - 3, /* Elements count */ - &asn_SPC_CriticalityDiagnostics_IE_Item_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/CriticalityDiagnostics-IE-Item.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/CriticalityDiagnostics-IE-Item.h deleted file mode 100644 index 1222f03..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/CriticalityDiagnostics-IE-Item.h +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _CriticalityDiagnostics_IE_Item_H_ -#define _CriticalityDiagnostics_IE_Item_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "Criticality.h" -#include "ProtocolIE-ID.h" -#include "TypeOfError.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* CriticalityDiagnostics-IE-Item */ -typedef struct CriticalityDiagnostics_IE_Item { - Criticality_t iECriticality; - ProtocolIE_ID_t iE_ID; - TypeOfError_t typeOfError; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} CriticalityDiagnostics_IE_Item_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_CriticalityDiagnostics_IE_Item; -extern asn_SEQUENCE_specifics_t asn_SPC_CriticalityDiagnostics_IE_Item_specs_1; -extern asn_TYPE_member_t asn_MBR_CriticalityDiagnostics_IE_Item_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _CriticalityDiagnostics_IE_Item_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/CriticalityDiagnostics-IE-List.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/CriticalityDiagnostics-IE-List.c deleted file mode 100644 index 502517f..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/CriticalityDiagnostics-IE-List.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "CriticalityDiagnostics-IE-List.h" - -#include "CriticalityDiagnostics-IE-Item.h" -asn_per_constraints_t asn_PER_type_CriticalityDiagnostics_IE_List_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 8, 8, 1, 256 } /* (SIZE(1..256)) */, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_CriticalityDiagnostics_IE_List_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CriticalityDiagnostics_IE_Item, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_CriticalityDiagnostics_IE_List_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_CriticalityDiagnostics_IE_List_specs_1 = { - sizeof(struct CriticalityDiagnostics_IE_List), - offsetof(struct CriticalityDiagnostics_IE_List, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_CriticalityDiagnostics_IE_List = { - "CriticalityDiagnostics-IE-List", - "CriticalityDiagnostics-IE-List", - &asn_OP_SEQUENCE_OF, - asn_DEF_CriticalityDiagnostics_IE_List_tags_1, - sizeof(asn_DEF_CriticalityDiagnostics_IE_List_tags_1) - /sizeof(asn_DEF_CriticalityDiagnostics_IE_List_tags_1[0]), /* 1 */ - asn_DEF_CriticalityDiagnostics_IE_List_tags_1, /* Same as above */ - sizeof(asn_DEF_CriticalityDiagnostics_IE_List_tags_1) - /sizeof(asn_DEF_CriticalityDiagnostics_IE_List_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_CriticalityDiagnostics_IE_List_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_CriticalityDiagnostics_IE_List_1, - 1, /* Single element */ - &asn_SPC_CriticalityDiagnostics_IE_List_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/CriticalityDiagnostics-IE-List.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/CriticalityDiagnostics-IE-List.h deleted file mode 100644 index 3f0d07b..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/CriticalityDiagnostics-IE-List.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _CriticalityDiagnostics_IE_List_H_ -#define _CriticalityDiagnostics_IE_List_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct CriticalityDiagnostics_IE_Item; - -/* CriticalityDiagnostics-IE-List */ -typedef struct CriticalityDiagnostics_IE_List { - A_SEQUENCE_OF(struct CriticalityDiagnostics_IE_Item) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} CriticalityDiagnostics_IE_List_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_CriticalityDiagnostics_IE_List; -extern asn_SET_OF_specifics_t asn_SPC_CriticalityDiagnostics_IE_List_specs_1; -extern asn_TYPE_member_t asn_MBR_CriticalityDiagnostics_IE_List_1[1]; -extern asn_per_constraints_t asn_PER_type_CriticalityDiagnostics_IE_List_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _CriticalityDiagnostics_IE_List_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/CriticalityDiagnostics.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/CriticalityDiagnostics.c deleted file mode 100644 index 825808b..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/CriticalityDiagnostics.c +++ /dev/null @@ -1,94 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "CriticalityDiagnostics.h" - -#include "RICrequestID.h" -#include "CriticalityDiagnostics-IE-List.h" -static asn_TYPE_member_t asn_MBR_CriticalityDiagnostics_1[] = { - { ATF_POINTER, 5, offsetof(struct CriticalityDiagnostics, procedureCode), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProcedureCode, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "procedureCode" - }, - { ATF_POINTER, 4, offsetof(struct CriticalityDiagnostics, triggeringMessage), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_TriggeringMessage, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "triggeringMessage" - }, - { ATF_POINTER, 3, offsetof(struct CriticalityDiagnostics, procedureCriticality), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "procedureCriticality" - }, - { ATF_POINTER, 2, offsetof(struct CriticalityDiagnostics, ricRequestorID), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RICrequestID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ricRequestorID" - }, - { ATF_POINTER, 1, offsetof(struct CriticalityDiagnostics, iEsCriticalityDiagnostics), - (ASN_TAG_CLASS_CONTEXT | (4 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_CriticalityDiagnostics_IE_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "iEsCriticalityDiagnostics" - }, -}; -static const int asn_MAP_CriticalityDiagnostics_oms_1[] = { 0, 1, 2, 3, 4 }; -static const ber_tlv_tag_t asn_DEF_CriticalityDiagnostics_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_CriticalityDiagnostics_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* procedureCode */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* triggeringMessage */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* procedureCriticality */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* ricRequestorID */ - { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* iEsCriticalityDiagnostics */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_CriticalityDiagnostics_specs_1 = { - sizeof(struct CriticalityDiagnostics), - offsetof(struct CriticalityDiagnostics, _asn_ctx), - asn_MAP_CriticalityDiagnostics_tag2el_1, - 5, /* Count of tags in the map */ - asn_MAP_CriticalityDiagnostics_oms_1, /* Optional members */ - 5, 0, /* Root/Additions */ - 5, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_CriticalityDiagnostics = { - "CriticalityDiagnostics", - "CriticalityDiagnostics", - &asn_OP_SEQUENCE, - asn_DEF_CriticalityDiagnostics_tags_1, - sizeof(asn_DEF_CriticalityDiagnostics_tags_1) - /sizeof(asn_DEF_CriticalityDiagnostics_tags_1[0]), /* 1 */ - asn_DEF_CriticalityDiagnostics_tags_1, /* Same as above */ - sizeof(asn_DEF_CriticalityDiagnostics_tags_1) - /sizeof(asn_DEF_CriticalityDiagnostics_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_CriticalityDiagnostics_1, - 5, /* Elements count */ - &asn_SPC_CriticalityDiagnostics_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/CriticalityDiagnostics.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/CriticalityDiagnostics.h deleted file mode 100644 index 9cef6bf..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/CriticalityDiagnostics.h +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _CriticalityDiagnostics_H_ -#define _CriticalityDiagnostics_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProcedureCode.h" -#include "TriggeringMessage.h" -#include "Criticality.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct RICrequestID; -struct CriticalityDiagnostics_IE_List; - -/* CriticalityDiagnostics */ -typedef struct CriticalityDiagnostics { - ProcedureCode_t *procedureCode; /* OPTIONAL */ - TriggeringMessage_t *triggeringMessage; /* OPTIONAL */ - Criticality_t *procedureCriticality; /* OPTIONAL */ - struct RICrequestID *ricRequestorID; /* OPTIONAL */ - struct CriticalityDiagnostics_IE_List *iEsCriticalityDiagnostics; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} CriticalityDiagnostics_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_CriticalityDiagnostics; - -#ifdef __cplusplus -} -#endif - -#endif /* _CriticalityDiagnostics_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/DU-Usage-Report-CellResourceReportItem.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/DU-Usage-Report-CellResourceReportItem.c deleted file mode 100644 index eee9621..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/DU-Usage-Report-CellResourceReportItem.c +++ /dev/null @@ -1,139 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "DU-Usage-Report-CellResourceReportItem.h" - -static int -memb_ueResourceReportList_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - /* Determine the number of elements */ - size = _A_CSEQUENCE_FROM_VOID(sptr)->count; - - if((size >= 1 && size <= 32)) { - /* Perform validation of the inner elements */ - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_oer_constraints_t asn_OER_type_ueResourceReportList_constr_3 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..32)) */}; -static asn_per_constraints_t asn_PER_type_ueResourceReportList_constr_3 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_ueResourceReportList_constr_3 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..32)) */}; -static asn_per_constraints_t asn_PER_memb_ueResourceReportList_constr_3 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_ueResourceReportList_3[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_DU_Usage_Report_UeResourceReportItem, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ueResourceReportList_tags_3[] = { - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_ueResourceReportList_specs_3 = { - sizeof(struct DU_Usage_Report_CellResourceReportItem__ueResourceReportList), - offsetof(struct DU_Usage_Report_CellResourceReportItem__ueResourceReportList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_ueResourceReportList_3 = { - "ueResourceReportList", - "ueResourceReportList", - &asn_OP_SEQUENCE_OF, - asn_DEF_ueResourceReportList_tags_3, - sizeof(asn_DEF_ueResourceReportList_tags_3) - /sizeof(asn_DEF_ueResourceReportList_tags_3[0]) - 1, /* 1 */ - asn_DEF_ueResourceReportList_tags_3, /* Same as above */ - sizeof(asn_DEF_ueResourceReportList_tags_3) - /sizeof(asn_DEF_ueResourceReportList_tags_3[0]), /* 2 */ - { &asn_OER_type_ueResourceReportList_constr_3, &asn_PER_type_ueResourceReportList_constr_3, SEQUENCE_OF_constraint }, - asn_MBR_ueResourceReportList_3, - 1, /* Single element */ - &asn_SPC_ueResourceReportList_specs_3 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_DU_Usage_Report_CellResourceReportItem_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct DU_Usage_Report_CellResourceReportItem, nRCGI), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NRCGI, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "nRCGI" - }, - { ATF_NOFLAGS, 0, offsetof(struct DU_Usage_Report_CellResourceReportItem, ueResourceReportList), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - 0, - &asn_DEF_ueResourceReportList_3, - 0, - { &asn_OER_memb_ueResourceReportList_constr_3, &asn_PER_memb_ueResourceReportList_constr_3, memb_ueResourceReportList_constraint_1 }, - 0, 0, /* No default value */ - "ueResourceReportList" - }, -}; -static const ber_tlv_tag_t asn_DEF_DU_Usage_Report_CellResourceReportItem_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_DU_Usage_Report_CellResourceReportItem_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nRCGI */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ueResourceReportList */ -}; -asn_SEQUENCE_specifics_t asn_SPC_DU_Usage_Report_CellResourceReportItem_specs_1 = { - sizeof(struct DU_Usage_Report_CellResourceReportItem), - offsetof(struct DU_Usage_Report_CellResourceReportItem, _asn_ctx), - asn_MAP_DU_Usage_Report_CellResourceReportItem_tag2el_1, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 2, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_DU_Usage_Report_CellResourceReportItem = { - "DU-Usage-Report-CellResourceReportItem", - "DU-Usage-Report-CellResourceReportItem", - &asn_OP_SEQUENCE, - asn_DEF_DU_Usage_Report_CellResourceReportItem_tags_1, - sizeof(asn_DEF_DU_Usage_Report_CellResourceReportItem_tags_1) - /sizeof(asn_DEF_DU_Usage_Report_CellResourceReportItem_tags_1[0]), /* 1 */ - asn_DEF_DU_Usage_Report_CellResourceReportItem_tags_1, /* Same as above */ - sizeof(asn_DEF_DU_Usage_Report_CellResourceReportItem_tags_1) - /sizeof(asn_DEF_DU_Usage_Report_CellResourceReportItem_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_DU_Usage_Report_CellResourceReportItem_1, - 2, /* Elements count */ - &asn_SPC_DU_Usage_Report_CellResourceReportItem_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/DU-Usage-Report-CellResourceReportItem.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/DU-Usage-Report-CellResourceReportItem.h deleted file mode 100644 index 4a72572..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/DU-Usage-Report-CellResourceReportItem.h +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _DU_Usage_Report_CellResourceReportItem_H_ -#define _DU_Usage_Report_CellResourceReportItem_H_ - - -#include - -/* Including external dependencies */ -#include "NRCGI.h" -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct DU_Usage_Report_UeResourceReportItem; - -/* DU-Usage-Report-CellResourceReportItem */ -typedef struct DU_Usage_Report_CellResourceReportItem { - NRCGI_t nRCGI; - struct DU_Usage_Report_CellResourceReportItem__ueResourceReportList { - A_SEQUENCE_OF(struct DU_Usage_Report_UeResourceReportItem) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } ueResourceReportList; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} DU_Usage_Report_CellResourceReportItem_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_DU_Usage_Report_CellResourceReportItem; -extern asn_SEQUENCE_specifics_t asn_SPC_DU_Usage_Report_CellResourceReportItem_specs_1; -extern asn_TYPE_member_t asn_MBR_DU_Usage_Report_CellResourceReportItem_1[2]; - -#ifdef __cplusplus -} -#endif - -/* Referred external types */ -#include "DU-Usage-Report-UeResourceReportItem.h" - -#endif /* _DU_Usage_Report_CellResourceReportItem_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/DU-Usage-Report-Per-UE.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/DU-Usage-Report-Per-UE.c deleted file mode 100644 index 9ba13af..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/DU-Usage-Report-Per-UE.c +++ /dev/null @@ -1,129 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "DU-Usage-Report-Per-UE.h" - -static int -memb_cellResourceReportList_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - /* Determine the number of elements */ - size = _A_CSEQUENCE_FROM_VOID(sptr)->count; - - if((size >= 1 && size <= 512)) { - /* Perform validation of the inner elements */ - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_oer_constraints_t asn_OER_type_cellResourceReportList_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..512)) */}; -static asn_per_constraints_t asn_PER_type_cellResourceReportList_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 9, 9, 1, 512 } /* (SIZE(1..512)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_cellResourceReportList_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..512)) */}; -static asn_per_constraints_t asn_PER_memb_cellResourceReportList_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 9, 9, 1, 512 } /* (SIZE(1..512)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_cellResourceReportList_2[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_DU_Usage_Report_CellResourceReportItem, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_cellResourceReportList_tags_2[] = { - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_cellResourceReportList_specs_2 = { - sizeof(struct DU_Usage_Report_Per_UE__cellResourceReportList), - offsetof(struct DU_Usage_Report_Per_UE__cellResourceReportList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_cellResourceReportList_2 = { - "cellResourceReportList", - "cellResourceReportList", - &asn_OP_SEQUENCE_OF, - asn_DEF_cellResourceReportList_tags_2, - sizeof(asn_DEF_cellResourceReportList_tags_2) - /sizeof(asn_DEF_cellResourceReportList_tags_2[0]) - 1, /* 1 */ - asn_DEF_cellResourceReportList_tags_2, /* Same as above */ - sizeof(asn_DEF_cellResourceReportList_tags_2) - /sizeof(asn_DEF_cellResourceReportList_tags_2[0]), /* 2 */ - { &asn_OER_type_cellResourceReportList_constr_2, &asn_PER_type_cellResourceReportList_constr_2, SEQUENCE_OF_constraint }, - asn_MBR_cellResourceReportList_2, - 1, /* Single element */ - &asn_SPC_cellResourceReportList_specs_2 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_DU_Usage_Report_Per_UE_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct DU_Usage_Report_Per_UE, cellResourceReportList), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - 0, - &asn_DEF_cellResourceReportList_2, - 0, - { &asn_OER_memb_cellResourceReportList_constr_2, &asn_PER_memb_cellResourceReportList_constr_2, memb_cellResourceReportList_constraint_1 }, - 0, 0, /* No default value */ - "cellResourceReportList" - }, -}; -static const ber_tlv_tag_t asn_DEF_DU_Usage_Report_Per_UE_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_DU_Usage_Report_Per_UE_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* cellResourceReportList */ -}; -asn_SEQUENCE_specifics_t asn_SPC_DU_Usage_Report_Per_UE_specs_1 = { - sizeof(struct DU_Usage_Report_Per_UE), - offsetof(struct DU_Usage_Report_Per_UE, _asn_ctx), - asn_MAP_DU_Usage_Report_Per_UE_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_DU_Usage_Report_Per_UE = { - "DU-Usage-Report-Per-UE", - "DU-Usage-Report-Per-UE", - &asn_OP_SEQUENCE, - asn_DEF_DU_Usage_Report_Per_UE_tags_1, - sizeof(asn_DEF_DU_Usage_Report_Per_UE_tags_1) - /sizeof(asn_DEF_DU_Usage_Report_Per_UE_tags_1[0]), /* 1 */ - asn_DEF_DU_Usage_Report_Per_UE_tags_1, /* Same as above */ - sizeof(asn_DEF_DU_Usage_Report_Per_UE_tags_1) - /sizeof(asn_DEF_DU_Usage_Report_Per_UE_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_DU_Usage_Report_Per_UE_1, - 1, /* Elements count */ - &asn_SPC_DU_Usage_Report_Per_UE_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/DU-Usage-Report-Per-UE.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/DU-Usage-Report-Per-UE.h deleted file mode 100644 index 2fc44d1..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/DU-Usage-Report-Per-UE.h +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _DU_Usage_Report_Per_UE_H_ -#define _DU_Usage_Report_Per_UE_H_ - - -#include - -/* Including external dependencies */ -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct DU_Usage_Report_CellResourceReportItem; - -/* DU-Usage-Report-Per-UE */ -typedef struct DU_Usage_Report_Per_UE { - struct DU_Usage_Report_Per_UE__cellResourceReportList { - A_SEQUENCE_OF(struct DU_Usage_Report_CellResourceReportItem) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } cellResourceReportList; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} DU_Usage_Report_Per_UE_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_DU_Usage_Report_Per_UE; -extern asn_SEQUENCE_specifics_t asn_SPC_DU_Usage_Report_Per_UE_specs_1; -extern asn_TYPE_member_t asn_MBR_DU_Usage_Report_Per_UE_1[1]; - -#ifdef __cplusplus -} -#endif - -/* Referred external types */ -#include "DU-Usage-Report-CellResourceReportItem.h" - -#endif /* _DU_Usage_Report_Per_UE_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/DU-Usage-Report-UeResourceReportItem.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/DU-Usage-Report-UeResourceReportItem.c deleted file mode 100644 index 0bcafbe..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/DU-Usage-Report-UeResourceReportItem.c +++ /dev/null @@ -1,138 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "DU-Usage-Report-UeResourceReportItem.h" - -static int -memb_dl_PRBUsage_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 1000000000)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_ul_PRBUsage_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 1000000000)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_oer_constraints_t asn_OER_memb_dl_PRBUsage_constr_3 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_memb_dl_PRBUsage_constr_3 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 30, -1, 0, 1000000000 } /* (0..1000000000,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_ul_PRBUsage_constr_4 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_memb_ul_PRBUsage_constr_4 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 30, -1, 0, 1000000000 } /* (0..1000000000,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_DU_Usage_Report_UeResourceReportItem_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct DU_Usage_Report_UeResourceReportItem, c_RNTI), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_C_RNTI, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "c-RNTI" - }, - { ATF_POINTER, 2, offsetof(struct DU_Usage_Report_UeResourceReportItem, dl_PRBUsage), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_dl_PRBUsage_constr_3, &asn_PER_memb_dl_PRBUsage_constr_3, memb_dl_PRBUsage_constraint_1 }, - 0, 0, /* No default value */ - "dl-PRBUsage" - }, - { ATF_POINTER, 1, offsetof(struct DU_Usage_Report_UeResourceReportItem, ul_PRBUsage), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_ul_PRBUsage_constr_4, &asn_PER_memb_ul_PRBUsage_constr_4, memb_ul_PRBUsage_constraint_1 }, - 0, 0, /* No default value */ - "ul-PRBUsage" - }, -}; -static const int asn_MAP_DU_Usage_Report_UeResourceReportItem_oms_1[] = { 1, 2 }; -static const ber_tlv_tag_t asn_DEF_DU_Usage_Report_UeResourceReportItem_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_DU_Usage_Report_UeResourceReportItem_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* c-RNTI */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* dl-PRBUsage */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* ul-PRBUsage */ -}; -asn_SEQUENCE_specifics_t asn_SPC_DU_Usage_Report_UeResourceReportItem_specs_1 = { - sizeof(struct DU_Usage_Report_UeResourceReportItem), - offsetof(struct DU_Usage_Report_UeResourceReportItem, _asn_ctx), - asn_MAP_DU_Usage_Report_UeResourceReportItem_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_DU_Usage_Report_UeResourceReportItem_oms_1, /* Optional members */ - 2, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_DU_Usage_Report_UeResourceReportItem = { - "DU-Usage-Report-UeResourceReportItem", - "DU-Usage-Report-UeResourceReportItem", - &asn_OP_SEQUENCE, - asn_DEF_DU_Usage_Report_UeResourceReportItem_tags_1, - sizeof(asn_DEF_DU_Usage_Report_UeResourceReportItem_tags_1) - /sizeof(asn_DEF_DU_Usage_Report_UeResourceReportItem_tags_1[0]), /* 1 */ - asn_DEF_DU_Usage_Report_UeResourceReportItem_tags_1, /* Same as above */ - sizeof(asn_DEF_DU_Usage_Report_UeResourceReportItem_tags_1) - /sizeof(asn_DEF_DU_Usage_Report_UeResourceReportItem_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_DU_Usage_Report_UeResourceReportItem_1, - 3, /* Elements count */ - &asn_SPC_DU_Usage_Report_UeResourceReportItem_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/DU-Usage-Report-UeResourceReportItem.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/DU-Usage-Report-UeResourceReportItem.h deleted file mode 100644 index e860272..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/DU-Usage-Report-UeResourceReportItem.h +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _DU_Usage_Report_UeResourceReportItem_H_ -#define _DU_Usage_Report_UeResourceReportItem_H_ - - -#include - -/* Including external dependencies */ -#include "C-RNTI.h" -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* DU-Usage-Report-UeResourceReportItem */ -typedef struct DU_Usage_Report_UeResourceReportItem { - C_RNTI_t c_RNTI; - long *dl_PRBUsage; /* OPTIONAL */ - long *ul_PRBUsage; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} DU_Usage_Report_UeResourceReportItem_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_DU_Usage_Report_UeResourceReportItem; -extern asn_SEQUENCE_specifics_t asn_SPC_DU_Usage_Report_UeResourceReportItem_specs_1; -extern asn_TYPE_member_t asn_MBR_DU_Usage_Report_UeResourceReportItem_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _DU_Usage_Report_UeResourceReportItem_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/E2AP-PDU.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/E2AP-PDU.c deleted file mode 100644 index 94650be..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/E2AP-PDU.c +++ /dev/null @@ -1,75 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Descriptions" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "E2AP-PDU.h" - -#include "InitiatingMessage.h" -#include "SuccessfulOutcome.h" -#include "UnsuccessfulOutcome.h" -static asn_per_constraints_t asn_PER_type_E2AP_PDU_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 2 } /* (0..2,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_E2AP_PDU_1[] = { - { ATF_POINTER, 0, offsetof(struct E2AP_PDU, choice.initiatingMessage), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_InitiatingMessage, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "initiatingMessage" - }, - { ATF_POINTER, 0, offsetof(struct E2AP_PDU, choice.successfulOutcome), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_SuccessfulOutcome, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "successfulOutcome" - }, - { ATF_POINTER, 0, offsetof(struct E2AP_PDU, choice.unsuccessfulOutcome), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_UnsuccessfulOutcome, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "unsuccessfulOutcome" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_E2AP_PDU_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* initiatingMessage */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* successfulOutcome */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* unsuccessfulOutcome */ -}; -static asn_CHOICE_specifics_t asn_SPC_E2AP_PDU_specs_1 = { - sizeof(struct E2AP_PDU), - offsetof(struct E2AP_PDU, _asn_ctx), - offsetof(struct E2AP_PDU, present), - sizeof(((struct E2AP_PDU *)0)->present), - asn_MAP_E2AP_PDU_tag2el_1, - 3, /* Count of tags in the map */ - 0, 0, - 3 /* Extensions start */ -}; -asn_TYPE_descriptor_t asn_DEF_E2AP_PDU = { - "E2AP-PDU", - "E2AP-PDU", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, &asn_PER_type_E2AP_PDU_constr_1, CHOICE_constraint }, - asn_MBR_E2AP_PDU_1, - 3, /* Elements count */ - &asn_SPC_E2AP_PDU_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/E2AP-PDU.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/E2AP-PDU.h deleted file mode 100644 index 6f3f1c8..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/E2AP-PDU.h +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Descriptions" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _E2AP_PDU_H_ -#define _E2AP_PDU_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "constr_CHOICE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum E2AP_PDU_PR { - E2AP_PDU_PR_NOTHING, /* No components present */ - E2AP_PDU_PR_initiatingMessage, - E2AP_PDU_PR_successfulOutcome, - E2AP_PDU_PR_unsuccessfulOutcome - /* Extensions may appear below */ - -} E2AP_PDU_PR; - -/* Forward declarations */ -struct InitiatingMessage; -struct SuccessfulOutcome; -struct UnsuccessfulOutcome; - -/* E2AP-PDU */ -typedef struct E2AP_PDU { - E2AP_PDU_PR present; - union E2AP_PDU_u { - struct InitiatingMessage *initiatingMessage; - struct SuccessfulOutcome *successfulOutcome; - struct UnsuccessfulOutcome *unsuccessfulOutcome; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E2AP_PDU_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E2AP_PDU; - -#ifdef __cplusplus -} -#endif - -#endif /* _E2AP_PDU_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/E2SM-KPM-ActionDefinition.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/E2SM-KPM-ActionDefinition.c deleted file mode 100644 index abdf25d..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/E2SM-KPM-ActionDefinition.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "E2SM-KPM-ActionDefinition.h" - -static asn_TYPE_member_t asn_MBR_E2SM_KPM_ActionDefinition_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct E2SM_KPM_ActionDefinition, ric_Style_Type), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RIC_Style_Type, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ric-Style-Type" - }, -}; -static const ber_tlv_tag_t asn_DEF_E2SM_KPM_ActionDefinition_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E2SM_KPM_ActionDefinition_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* ric-Style-Type */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_E2SM_KPM_ActionDefinition_specs_1 = { - sizeof(struct E2SM_KPM_ActionDefinition), - offsetof(struct E2SM_KPM_ActionDefinition, _asn_ctx), - asn_MAP_E2SM_KPM_ActionDefinition_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E2SM_KPM_ActionDefinition = { - "E2SM-KPM-ActionDefinition", - "E2SM-KPM-ActionDefinition", - &asn_OP_SEQUENCE, - asn_DEF_E2SM_KPM_ActionDefinition_tags_1, - sizeof(asn_DEF_E2SM_KPM_ActionDefinition_tags_1) - /sizeof(asn_DEF_E2SM_KPM_ActionDefinition_tags_1[0]), /* 1 */ - asn_DEF_E2SM_KPM_ActionDefinition_tags_1, /* Same as above */ - sizeof(asn_DEF_E2SM_KPM_ActionDefinition_tags_1) - /sizeof(asn_DEF_E2SM_KPM_ActionDefinition_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E2SM_KPM_ActionDefinition_1, - 1, /* Elements count */ - &asn_SPC_E2SM_KPM_ActionDefinition_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/E2SM-KPM-ActionDefinition.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/E2SM-KPM-ActionDefinition.h deleted file mode 100644 index 70b81dd..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/E2SM-KPM-ActionDefinition.h +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _E2SM_KPM_ActionDefinition_H_ -#define _E2SM_KPM_ActionDefinition_H_ - - -#include - -/* Including external dependencies */ -#include "RIC-Style-Type.h" -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* E2SM-KPM-ActionDefinition */ -typedef struct E2SM_KPM_ActionDefinition { - RIC_Style_Type_t ric_Style_Type; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E2SM_KPM_ActionDefinition_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E2SM_KPM_ActionDefinition; - -#ifdef __cplusplus -} -#endif - -#endif /* _E2SM_KPM_ActionDefinition_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/E2SM-KPM-EventTriggerDefinition-Format1.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/E2SM-KPM-EventTriggerDefinition-Format1.c deleted file mode 100644 index e0b48f2..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/E2SM-KPM-EventTriggerDefinition-Format1.c +++ /dev/null @@ -1,131 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "E2SM-KPM-EventTriggerDefinition-Format1.h" - -static int -memb_policyTest_List_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - /* Determine the number of elements */ - size = _A_CSEQUENCE_FROM_VOID(sptr)->count; - - if((size >= 1 && size <= 15)) { - /* Perform validation of the inner elements */ - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_oer_constraints_t asn_OER_type_policyTest_List_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..15)) */}; -static asn_per_constraints_t asn_PER_type_policyTest_List_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 4, 4, 1, 15 } /* (SIZE(1..15)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_policyTest_List_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..15)) */}; -static asn_per_constraints_t asn_PER_memb_policyTest_List_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 4, 4, 1, 15 } /* (SIZE(1..15)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_policyTest_List_2[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_Trigger_ConditionIE_Item, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_policyTest_List_tags_2[] = { - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_policyTest_List_specs_2 = { - sizeof(struct E2SM_KPM_EventTriggerDefinition_Format1__policyTest_List), - offsetof(struct E2SM_KPM_EventTriggerDefinition_Format1__policyTest_List, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_policyTest_List_2 = { - "policyTest-List", - "policyTest-List", - &asn_OP_SEQUENCE_OF, - asn_DEF_policyTest_List_tags_2, - sizeof(asn_DEF_policyTest_List_tags_2) - /sizeof(asn_DEF_policyTest_List_tags_2[0]) - 1, /* 1 */ - asn_DEF_policyTest_List_tags_2, /* Same as above */ - sizeof(asn_DEF_policyTest_List_tags_2) - /sizeof(asn_DEF_policyTest_List_tags_2[0]), /* 2 */ - { &asn_OER_type_policyTest_List_constr_2, &asn_PER_type_policyTest_List_constr_2, SEQUENCE_OF_constraint }, - asn_MBR_policyTest_List_2, - 1, /* Single element */ - &asn_SPC_policyTest_List_specs_2 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E2SM_KPM_EventTriggerDefinition_Format1_1[] = { - { ATF_POINTER, 1, offsetof(struct E2SM_KPM_EventTriggerDefinition_Format1, policyTest_List), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - 0, - &asn_DEF_policyTest_List_2, - 0, - { &asn_OER_memb_policyTest_List_constr_2, &asn_PER_memb_policyTest_List_constr_2, memb_policyTest_List_constraint_1 }, - 0, 0, /* No default value */ - "policyTest-List" - }, -}; -static const int asn_MAP_E2SM_KPM_EventTriggerDefinition_Format1_oms_1[] = { 0 }; -static const ber_tlv_tag_t asn_DEF_E2SM_KPM_EventTriggerDefinition_Format1_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E2SM_KPM_EventTriggerDefinition_Format1_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* policyTest-List */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E2SM_KPM_EventTriggerDefinition_Format1_specs_1 = { - sizeof(struct E2SM_KPM_EventTriggerDefinition_Format1), - offsetof(struct E2SM_KPM_EventTriggerDefinition_Format1, _asn_ctx), - asn_MAP_E2SM_KPM_EventTriggerDefinition_Format1_tag2el_1, - 1, /* Count of tags in the map */ - asn_MAP_E2SM_KPM_EventTriggerDefinition_Format1_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E2SM_KPM_EventTriggerDefinition_Format1 = { - "E2SM-KPM-EventTriggerDefinition-Format1", - "E2SM-KPM-EventTriggerDefinition-Format1", - &asn_OP_SEQUENCE, - asn_DEF_E2SM_KPM_EventTriggerDefinition_Format1_tags_1, - sizeof(asn_DEF_E2SM_KPM_EventTriggerDefinition_Format1_tags_1) - /sizeof(asn_DEF_E2SM_KPM_EventTriggerDefinition_Format1_tags_1[0]), /* 1 */ - asn_DEF_E2SM_KPM_EventTriggerDefinition_Format1_tags_1, /* Same as above */ - sizeof(asn_DEF_E2SM_KPM_EventTriggerDefinition_Format1_tags_1) - /sizeof(asn_DEF_E2SM_KPM_EventTriggerDefinition_Format1_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E2SM_KPM_EventTriggerDefinition_Format1_1, - 1, /* Elements count */ - &asn_SPC_E2SM_KPM_EventTriggerDefinition_Format1_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/E2SM-KPM-EventTriggerDefinition-Format1.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/E2SM-KPM-EventTriggerDefinition-Format1.h deleted file mode 100644 index 44cbd92..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/E2SM-KPM-EventTriggerDefinition-Format1.h +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _E2SM_KPM_EventTriggerDefinition_Format1_H_ -#define _E2SM_KPM_EventTriggerDefinition_Format1_H_ - - -#include - -/* Including external dependencies */ -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct Trigger_ConditionIE_Item; - -/* E2SM-KPM-EventTriggerDefinition-Format1 */ -typedef struct E2SM_KPM_EventTriggerDefinition_Format1 { - struct E2SM_KPM_EventTriggerDefinition_Format1__policyTest_List { - A_SEQUENCE_OF(struct Trigger_ConditionIE_Item) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } *policyTest_List; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E2SM_KPM_EventTriggerDefinition_Format1_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E2SM_KPM_EventTriggerDefinition_Format1; -extern asn_SEQUENCE_specifics_t asn_SPC_E2SM_KPM_EventTriggerDefinition_Format1_specs_1; -extern asn_TYPE_member_t asn_MBR_E2SM_KPM_EventTriggerDefinition_Format1_1[1]; - -#ifdef __cplusplus -} -#endif - -/* Referred external types */ -#include "Trigger-ConditionIE-Item.h" - -#endif /* _E2SM_KPM_EventTriggerDefinition_Format1_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/E2SM-KPM-EventTriggerDefinition.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/E2SM-KPM-EventTriggerDefinition.c deleted file mode 100644 index 482e42c..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/E2SM-KPM-EventTriggerDefinition.c +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "E2SM-KPM-EventTriggerDefinition.h" - -static asn_oer_constraints_t asn_OER_type_E2SM_KPM_EventTriggerDefinition_constr_1 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_type_E2SM_KPM_EventTriggerDefinition_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 0, 0 } /* (0..0,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_E2SM_KPM_EventTriggerDefinition_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct E2SM_KPM_EventTriggerDefinition, choice.eventDefinition_Format1), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E2SM_KPM_EventTriggerDefinition_Format1, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "eventDefinition-Format1" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_E2SM_KPM_EventTriggerDefinition_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* eventDefinition-Format1 */ -}; -static asn_CHOICE_specifics_t asn_SPC_E2SM_KPM_EventTriggerDefinition_specs_1 = { - sizeof(struct E2SM_KPM_EventTriggerDefinition), - offsetof(struct E2SM_KPM_EventTriggerDefinition, _asn_ctx), - offsetof(struct E2SM_KPM_EventTriggerDefinition, present), - sizeof(((struct E2SM_KPM_EventTriggerDefinition *)0)->present), - asn_MAP_E2SM_KPM_EventTriggerDefinition_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, - 1 /* Extensions start */ -}; -asn_TYPE_descriptor_t asn_DEF_E2SM_KPM_EventTriggerDefinition = { - "E2SM-KPM-EventTriggerDefinition", - "E2SM-KPM-EventTriggerDefinition", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { &asn_OER_type_E2SM_KPM_EventTriggerDefinition_constr_1, &asn_PER_type_E2SM_KPM_EventTriggerDefinition_constr_1, CHOICE_constraint }, - asn_MBR_E2SM_KPM_EventTriggerDefinition_1, - 1, /* Elements count */ - &asn_SPC_E2SM_KPM_EventTriggerDefinition_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/E2SM-KPM-EventTriggerDefinition.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/E2SM-KPM-EventTriggerDefinition.h deleted file mode 100644 index e96e600..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/E2SM-KPM-EventTriggerDefinition.h +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _E2SM_KPM_EventTriggerDefinition_H_ -#define _E2SM_KPM_EventTriggerDefinition_H_ - - -#include - -/* Including external dependencies */ -#include "E2SM-KPM-EventTriggerDefinition-Format1.h" -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum E2SM_KPM_EventTriggerDefinition_PR { - E2SM_KPM_EventTriggerDefinition_PR_NOTHING, /* No components present */ - E2SM_KPM_EventTriggerDefinition_PR_eventDefinition_Format1 - /* Extensions may appear below */ - -} E2SM_KPM_EventTriggerDefinition_PR; - -/* E2SM-KPM-EventTriggerDefinition */ -typedef struct E2SM_KPM_EventTriggerDefinition { - E2SM_KPM_EventTriggerDefinition_PR present; - union E2SM_KPM_EventTriggerDefinition_u { - E2SM_KPM_EventTriggerDefinition_Format1_t eventDefinition_Format1; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E2SM_KPM_EventTriggerDefinition_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E2SM_KPM_EventTriggerDefinition; - -#ifdef __cplusplus -} -#endif - -#endif /* _E2SM_KPM_EventTriggerDefinition_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/E2SM-KPM-IndicationHeader-Format1.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/E2SM-KPM-IndicationHeader-Format1.c deleted file mode 100644 index 2cccf8b..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/E2SM-KPM-IndicationHeader-Format1.c +++ /dev/null @@ -1,208 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "E2SM-KPM-IndicationHeader-Format1.h" - -static int -memb_fiveQI_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 255)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_qci_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 255)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_oer_constraints_t asn_OER_memb_fiveQI_constr_6 CC_NOTUSED = { - { 1, 1 } /* (0..255) */, - -1}; -static asn_per_constraints_t asn_PER_memb_fiveQI_constr_6 CC_NOTUSED = { - { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_qci_constr_7 CC_NOTUSED = { - { 1, 1 } /* (0..255) */, - -1}; -static asn_per_constraints_t asn_PER_memb_qci_constr_7 CC_NOTUSED = { - { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_E2SM_KPM_IndicationHeader_Format1_1[] = { - { ATF_POINTER, 10, offsetof(struct E2SM_KPM_IndicationHeader_Format1, id_GlobalKPMnode_ID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_GlobalKPMnode_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "id-GlobalKPMnode-ID" - }, - { ATF_POINTER, 9, offsetof(struct E2SM_KPM_IndicationHeader_Format1, nRCGI), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NRCGI, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "nRCGI" - }, - { ATF_POINTER, 8, offsetof(struct E2SM_KPM_IndicationHeader_Format1, pLMN_Identity), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_PLMN_Identity, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "pLMN-Identity" - }, - { ATF_POINTER, 7, offsetof(struct E2SM_KPM_IndicationHeader_Format1, sliceID), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_SNSSAI, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "sliceID" - }, - { ATF_POINTER, 6, offsetof(struct E2SM_KPM_IndicationHeader_Format1, fiveQI), - (ASN_TAG_CLASS_CONTEXT | (4 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_fiveQI_constr_6, &asn_PER_memb_fiveQI_constr_6, memb_fiveQI_constraint_1 }, - 0, 0, /* No default value */ - "fiveQI" - }, - { ATF_POINTER, 5, offsetof(struct E2SM_KPM_IndicationHeader_Format1, qci), - (ASN_TAG_CLASS_CONTEXT | (5 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_qci_constr_7, &asn_PER_memb_qci_constr_7, memb_qci_constraint_1 }, - 0, 0, /* No default value */ - "qci" - }, - { ATF_POINTER, 4, offsetof(struct E2SM_KPM_IndicationHeader_Format1, message_Type), - (ASN_TAG_CLASS_CONTEXT | (6 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_UE_Report_Type, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "message-Type" - }, - { ATF_POINTER, 3, offsetof(struct E2SM_KPM_IndicationHeader_Format1, gNB_DU_ID), - (ASN_TAG_CLASS_CONTEXT | (7 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GNB_DU_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "gNB-DU-ID" - }, - { ATF_POINTER, 2, offsetof(struct E2SM_KPM_IndicationHeader_Format1, gNB_Name), - (ASN_TAG_CLASS_CONTEXT | (8 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_GNB_Name, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "gNB-Name" - }, - { ATF_POINTER, 1, offsetof(struct E2SM_KPM_IndicationHeader_Format1, global_GNB_ID), - (ASN_TAG_CLASS_CONTEXT | (9 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GlobalgNB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "global-GNB-ID" - }, -}; -static const int asn_MAP_E2SM_KPM_IndicationHeader_Format1_oms_1[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; -static const ber_tlv_tag_t asn_DEF_E2SM_KPM_IndicationHeader_Format1_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E2SM_KPM_IndicationHeader_Format1_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id-GlobalKPMnode-ID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* nRCGI */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* pLMN-Identity */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* sliceID */ - { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* fiveQI */ - { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* qci */ - { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* message-Type */ - { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* gNB-DU-ID */ - { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* gNB-Name */ - { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 } /* global-GNB-ID */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E2SM_KPM_IndicationHeader_Format1_specs_1 = { - sizeof(struct E2SM_KPM_IndicationHeader_Format1), - offsetof(struct E2SM_KPM_IndicationHeader_Format1, _asn_ctx), - asn_MAP_E2SM_KPM_IndicationHeader_Format1_tag2el_1, - 10, /* Count of tags in the map */ - asn_MAP_E2SM_KPM_IndicationHeader_Format1_oms_1, /* Optional members */ - 10, 0, /* Root/Additions */ - 10, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E2SM_KPM_IndicationHeader_Format1 = { - "E2SM-KPM-IndicationHeader-Format1", - "E2SM-KPM-IndicationHeader-Format1", - &asn_OP_SEQUENCE, - asn_DEF_E2SM_KPM_IndicationHeader_Format1_tags_1, - sizeof(asn_DEF_E2SM_KPM_IndicationHeader_Format1_tags_1) - /sizeof(asn_DEF_E2SM_KPM_IndicationHeader_Format1_tags_1[0]), /* 1 */ - asn_DEF_E2SM_KPM_IndicationHeader_Format1_tags_1, /* Same as above */ - sizeof(asn_DEF_E2SM_KPM_IndicationHeader_Format1_tags_1) - /sizeof(asn_DEF_E2SM_KPM_IndicationHeader_Format1_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E2SM_KPM_IndicationHeader_Format1_1, - 10, /* Elements count */ - &asn_SPC_E2SM_KPM_IndicationHeader_Format1_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/E2SM-KPM-IndicationHeader-Format1.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/E2SM-KPM-IndicationHeader-Format1.h deleted file mode 100644 index c46b715..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/E2SM-KPM-IndicationHeader-Format1.h +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _E2SM_KPM_IndicationHeader_Format1_H_ -#define _E2SM_KPM_IndicationHeader_Format1_H_ - - -#include - -/* Including external dependencies */ -#include "PLMN-Identity.h" -#include -#include "UE-Report-Type.h" -#include "GNB-DU-ID.h" -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct GlobalKPMnode_ID; -struct NRCGI; -struct SNSSAI; -struct GNB_Name; -struct GlobalgNB_ID; - -/* E2SM-KPM-IndicationHeader-Format1 */ -typedef struct E2SM_KPM_IndicationHeader_Format1 { - struct GlobalKPMnode_ID *id_GlobalKPMnode_ID; /* OPTIONAL */ - struct NRCGI *nRCGI; /* OPTIONAL */ - PLMN_Identity_t *pLMN_Identity; /* OPTIONAL */ - struct SNSSAI *sliceID; /* OPTIONAL */ - long *fiveQI; /* OPTIONAL */ - long *qci; /* OPTIONAL */ - UE_Report_Type_t *message_Type; /* OPTIONAL */ - GNB_DU_ID_t *gNB_DU_ID; /* OPTIONAL */ - struct GNB_Name *gNB_Name; /* OPTIONAL */ - struct GlobalgNB_ID *global_GNB_ID; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E2SM_KPM_IndicationHeader_Format1_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E2SM_KPM_IndicationHeader_Format1; -extern asn_SEQUENCE_specifics_t asn_SPC_E2SM_KPM_IndicationHeader_Format1_specs_1; -extern asn_TYPE_member_t asn_MBR_E2SM_KPM_IndicationHeader_Format1_1[10]; - -#ifdef __cplusplus -} -#endif - -/* Referred external types */ -#include "GlobalKPMnode-ID.h" -#include "NRCGI.h" -#include "SNSSAI.h" -#include "GNB-Name.h" -#include "GlobalgNB-ID.h" - -#endif /* _E2SM_KPM_IndicationHeader_Format1_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/E2SM-KPM-IndicationHeader.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/E2SM-KPM-IndicationHeader.c deleted file mode 100644 index c4fe730..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/E2SM-KPM-IndicationHeader.c +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "E2SM-KPM-IndicationHeader.h" - -static asn_oer_constraints_t asn_OER_type_E2SM_KPM_IndicationHeader_constr_1 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_type_E2SM_KPM_IndicationHeader_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 0, 0 } /* (0..0,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_E2SM_KPM_IndicationHeader_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct E2SM_KPM_IndicationHeader, choice.indicationHeader_Format1), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E2SM_KPM_IndicationHeader_Format1, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "indicationHeader-Format1" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_E2SM_KPM_IndicationHeader_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* indicationHeader-Format1 */ -}; -static asn_CHOICE_specifics_t asn_SPC_E2SM_KPM_IndicationHeader_specs_1 = { - sizeof(struct E2SM_KPM_IndicationHeader), - offsetof(struct E2SM_KPM_IndicationHeader, _asn_ctx), - offsetof(struct E2SM_KPM_IndicationHeader, present), - sizeof(((struct E2SM_KPM_IndicationHeader *)0)->present), - asn_MAP_E2SM_KPM_IndicationHeader_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, - 1 /* Extensions start */ -}; -asn_TYPE_descriptor_t asn_DEF_E2SM_KPM_IndicationHeader = { - "E2SM-KPM-IndicationHeader", - "E2SM-KPM-IndicationHeader", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { &asn_OER_type_E2SM_KPM_IndicationHeader_constr_1, &asn_PER_type_E2SM_KPM_IndicationHeader_constr_1, CHOICE_constraint }, - asn_MBR_E2SM_KPM_IndicationHeader_1, - 1, /* Elements count */ - &asn_SPC_E2SM_KPM_IndicationHeader_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/E2SM-KPM-IndicationHeader.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/E2SM-KPM-IndicationHeader.h deleted file mode 100644 index 67dc86d..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/E2SM-KPM-IndicationHeader.h +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _E2SM_KPM_IndicationHeader_H_ -#define _E2SM_KPM_IndicationHeader_H_ - - -#include - -/* Including external dependencies */ -#include "E2SM-KPM-IndicationHeader-Format1.h" -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum E2SM_KPM_IndicationHeader_PR { - E2SM_KPM_IndicationHeader_PR_NOTHING, /* No components present */ - E2SM_KPM_IndicationHeader_PR_indicationHeader_Format1 - /* Extensions may appear below */ - -} E2SM_KPM_IndicationHeader_PR; - -/* E2SM-KPM-IndicationHeader */ -typedef struct E2SM_KPM_IndicationHeader { - E2SM_KPM_IndicationHeader_PR present; - union E2SM_KPM_IndicationHeader_u { - E2SM_KPM_IndicationHeader_Format1_t indicationHeader_Format1; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E2SM_KPM_IndicationHeader_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E2SM_KPM_IndicationHeader; - -#ifdef __cplusplus -} -#endif - -#endif /* _E2SM_KPM_IndicationHeader_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/E2SM-KPM-IndicationMessage-Format1.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/E2SM-KPM-IndicationMessage-Format1.c deleted file mode 100644 index 7bdebb0..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/E2SM-KPM-IndicationMessage-Format1.c +++ /dev/null @@ -1,129 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "E2SM-KPM-IndicationMessage-Format1.h" - -static int -memb_pm_Containers_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - /* Determine the number of elements */ - size = _A_CSEQUENCE_FROM_VOID(sptr)->count; - - if((size >= 1 && size <= 8)) { - /* Perform validation of the inner elements */ - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_oer_constraints_t asn_OER_type_pm_Containers_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..8)) */}; -static asn_per_constraints_t asn_PER_type_pm_Containers_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 3, 3, 1, 8 } /* (SIZE(1..8)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_pm_Containers_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..8)) */}; -static asn_per_constraints_t asn_PER_memb_pm_Containers_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 3, 3, 1, 8 } /* (SIZE(1..8)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_pm_Containers_2[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_PM_Containers_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_pm_Containers_tags_2[] = { - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_pm_Containers_specs_2 = { - sizeof(struct E2SM_KPM_IndicationMessage_Format1__pm_Containers), - offsetof(struct E2SM_KPM_IndicationMessage_Format1__pm_Containers, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_pm_Containers_2 = { - "pm-Containers", - "pm-Containers", - &asn_OP_SEQUENCE_OF, - asn_DEF_pm_Containers_tags_2, - sizeof(asn_DEF_pm_Containers_tags_2) - /sizeof(asn_DEF_pm_Containers_tags_2[0]) - 1, /* 1 */ - asn_DEF_pm_Containers_tags_2, /* Same as above */ - sizeof(asn_DEF_pm_Containers_tags_2) - /sizeof(asn_DEF_pm_Containers_tags_2[0]), /* 2 */ - { &asn_OER_type_pm_Containers_constr_2, &asn_PER_type_pm_Containers_constr_2, SEQUENCE_OF_constraint }, - asn_MBR_pm_Containers_2, - 1, /* Single element */ - &asn_SPC_pm_Containers_specs_2 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E2SM_KPM_IndicationMessage_Format1_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct E2SM_KPM_IndicationMessage_Format1, pm_Containers), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - 0, - &asn_DEF_pm_Containers_2, - 0, - { &asn_OER_memb_pm_Containers_constr_2, &asn_PER_memb_pm_Containers_constr_2, memb_pm_Containers_constraint_1 }, - 0, 0, /* No default value */ - "pm-Containers" - }, -}; -static const ber_tlv_tag_t asn_DEF_E2SM_KPM_IndicationMessage_Format1_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E2SM_KPM_IndicationMessage_Format1_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* pm-Containers */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E2SM_KPM_IndicationMessage_Format1_specs_1 = { - sizeof(struct E2SM_KPM_IndicationMessage_Format1), - offsetof(struct E2SM_KPM_IndicationMessage_Format1, _asn_ctx), - asn_MAP_E2SM_KPM_IndicationMessage_Format1_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E2SM_KPM_IndicationMessage_Format1 = { - "E2SM-KPM-IndicationMessage-Format1", - "E2SM-KPM-IndicationMessage-Format1", - &asn_OP_SEQUENCE, - asn_DEF_E2SM_KPM_IndicationMessage_Format1_tags_1, - sizeof(asn_DEF_E2SM_KPM_IndicationMessage_Format1_tags_1) - /sizeof(asn_DEF_E2SM_KPM_IndicationMessage_Format1_tags_1[0]), /* 1 */ - asn_DEF_E2SM_KPM_IndicationMessage_Format1_tags_1, /* Same as above */ - sizeof(asn_DEF_E2SM_KPM_IndicationMessage_Format1_tags_1) - /sizeof(asn_DEF_E2SM_KPM_IndicationMessage_Format1_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E2SM_KPM_IndicationMessage_Format1_1, - 1, /* Elements count */ - &asn_SPC_E2SM_KPM_IndicationMessage_Format1_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/E2SM-KPM-IndicationMessage-Format1.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/E2SM-KPM-IndicationMessage-Format1.h deleted file mode 100644 index a05b652..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/E2SM-KPM-IndicationMessage-Format1.h +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _E2SM_KPM_IndicationMessage_Format1_H_ -#define _E2SM_KPM_IndicationMessage_Format1_H_ - - -#include - -/* Including external dependencies */ -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct PM_Containers_List; - -/* E2SM-KPM-IndicationMessage-Format1 */ -typedef struct E2SM_KPM_IndicationMessage_Format1 { - struct E2SM_KPM_IndicationMessage_Format1__pm_Containers { - A_SEQUENCE_OF(struct PM_Containers_List) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } pm_Containers; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E2SM_KPM_IndicationMessage_Format1_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E2SM_KPM_IndicationMessage_Format1; -extern asn_SEQUENCE_specifics_t asn_SPC_E2SM_KPM_IndicationMessage_Format1_specs_1; -extern asn_TYPE_member_t asn_MBR_E2SM_KPM_IndicationMessage_Format1_1[1]; - -#ifdef __cplusplus -} -#endif - -/* Referred external types */ -#include "PM-Containers-List.h" - -#endif /* _E2SM_KPM_IndicationMessage_Format1_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/E2SM-KPM-IndicationMessage.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/E2SM-KPM-IndicationMessage.c deleted file mode 100644 index 2eb4018..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/E2SM-KPM-IndicationMessage.c +++ /dev/null @@ -1,107 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "E2SM-KPM-IndicationMessage.h" - -static asn_oer_constraints_t asn_OER_type_indicationMessage_constr_3 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_type_indicationMessage_constr_3 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 0, 0 } /* (0..0,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_indicationMessage_3[] = { - { ATF_NOFLAGS, 0, offsetof(struct E2SM_KPM_IndicationMessage__indicationMessage, choice.indicationMessage_Format1), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E2SM_KPM_IndicationMessage_Format1, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "indicationMessage-Format1" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_indicationMessage_tag2el_3[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* indicationMessage-Format1 */ -}; -static asn_CHOICE_specifics_t asn_SPC_indicationMessage_specs_3 = { - sizeof(struct E2SM_KPM_IndicationMessage__indicationMessage), - offsetof(struct E2SM_KPM_IndicationMessage__indicationMessage, _asn_ctx), - offsetof(struct E2SM_KPM_IndicationMessage__indicationMessage, present), - sizeof(((struct E2SM_KPM_IndicationMessage__indicationMessage *)0)->present), - asn_MAP_indicationMessage_tag2el_3, - 1, /* Count of tags in the map */ - 0, 0, - 1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_indicationMessage_3 = { - "indicationMessage", - "indicationMessage", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { &asn_OER_type_indicationMessage_constr_3, &asn_PER_type_indicationMessage_constr_3, CHOICE_constraint }, - asn_MBR_indicationMessage_3, - 1, /* Elements count */ - &asn_SPC_indicationMessage_specs_3 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_E2SM_KPM_IndicationMessage_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct E2SM_KPM_IndicationMessage, ric_Style_Type), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RIC_Style_Type, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ric-Style-Type" - }, - { ATF_NOFLAGS, 0, offsetof(struct E2SM_KPM_IndicationMessage, indicationMessage), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_indicationMessage_3, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "indicationMessage" - }, -}; -static const ber_tlv_tag_t asn_DEF_E2SM_KPM_IndicationMessage_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E2SM_KPM_IndicationMessage_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ric-Style-Type */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* indicationMessage */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_E2SM_KPM_IndicationMessage_specs_1 = { - sizeof(struct E2SM_KPM_IndicationMessage), - offsetof(struct E2SM_KPM_IndicationMessage, _asn_ctx), - asn_MAP_E2SM_KPM_IndicationMessage_tag2el_1, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 2, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E2SM_KPM_IndicationMessage = { - "E2SM-KPM-IndicationMessage", - "E2SM-KPM-IndicationMessage", - &asn_OP_SEQUENCE, - asn_DEF_E2SM_KPM_IndicationMessage_tags_1, - sizeof(asn_DEF_E2SM_KPM_IndicationMessage_tags_1) - /sizeof(asn_DEF_E2SM_KPM_IndicationMessage_tags_1[0]), /* 1 */ - asn_DEF_E2SM_KPM_IndicationMessage_tags_1, /* Same as above */ - sizeof(asn_DEF_E2SM_KPM_IndicationMessage_tags_1) - /sizeof(asn_DEF_E2SM_KPM_IndicationMessage_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E2SM_KPM_IndicationMessage_1, - 2, /* Elements count */ - &asn_SPC_E2SM_KPM_IndicationMessage_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/E2SM-KPM-IndicationMessage.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/E2SM-KPM-IndicationMessage.h deleted file mode 100644 index 77d4e3b..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/E2SM-KPM-IndicationMessage.h +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _E2SM_KPM_IndicationMessage_H_ -#define _E2SM_KPM_IndicationMessage_H_ - - -#include - -/* Including external dependencies */ -#include "RIC-Style-Type.h" -#include "E2SM-KPM-IndicationMessage-Format1.h" -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum E2SM_KPM_IndicationMessage__indicationMessage_PR { - E2SM_KPM_IndicationMessage__indicationMessage_PR_NOTHING, /* No components present */ - E2SM_KPM_IndicationMessage__indicationMessage_PR_indicationMessage_Format1 - /* Extensions may appear below */ - -} E2SM_KPM_IndicationMessage__indicationMessage_PR; - -/* E2SM-KPM-IndicationMessage */ -typedef struct E2SM_KPM_IndicationMessage { - RIC_Style_Type_t ric_Style_Type; - struct E2SM_KPM_IndicationMessage__indicationMessage { - E2SM_KPM_IndicationMessage__indicationMessage_PR present; - union E2SM_KPM_IndicationMessage__indicationMessage_u { - E2SM_KPM_IndicationMessage_Format1_t indicationMessage_Format1; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } indicationMessage; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E2SM_KPM_IndicationMessage_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E2SM_KPM_IndicationMessage; - -#ifdef __cplusplus -} -#endif - -#endif /* _E2SM_KPM_IndicationMessage_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/E2SM-KPM-RANfunction-Description.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/E2SM-KPM-RANfunction-Description.c deleted file mode 100644 index 226d0fb..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/E2SM-KPM-RANfunction-Description.c +++ /dev/null @@ -1,273 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "E2SM-KPM-RANfunction-Description.h" - -static int -memb_ric_EventTriggerStyle_List_constraint_3(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - /* Determine the number of elements */ - size = _A_CSEQUENCE_FROM_VOID(sptr)->count; - - if((size >= 1 && size <= 63)) { - /* Perform validation of the inner elements */ - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_ric_ReportStyle_List_constraint_3(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - /* Determine the number of elements */ - size = _A_CSEQUENCE_FROM_VOID(sptr)->count; - - if((size >= 1 && size <= 63)) { - /* Perform validation of the inner elements */ - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_oer_constraints_t asn_OER_type_ric_EventTriggerStyle_List_constr_4 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..63)) */}; -static asn_per_constraints_t asn_PER_type_ric_EventTriggerStyle_List_constr_4 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 6, 6, 1, 63 } /* (SIZE(1..63)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_type_ric_ReportStyle_List_constr_6 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..63)) */}; -static asn_per_constraints_t asn_PER_type_ric_ReportStyle_List_constr_6 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 6, 6, 1, 63 } /* (SIZE(1..63)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_ric_EventTriggerStyle_List_constr_4 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..63)) */}; -static asn_per_constraints_t asn_PER_memb_ric_EventTriggerStyle_List_constr_4 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 6, 6, 1, 63 } /* (SIZE(1..63)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_ric_ReportStyle_List_constr_6 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..63)) */}; -static asn_per_constraints_t asn_PER_memb_ric_ReportStyle_List_constr_6 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 6, 6, 1, 63 } /* (SIZE(1..63)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_ric_EventTriggerStyle_List_4[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RIC_EventTriggerStyle_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ric_EventTriggerStyle_List_tags_4[] = { - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_ric_EventTriggerStyle_List_specs_4 = { - sizeof(struct E2SM_KPM_RANfunction_Description__e2SM_KPM_RANfunction_Item__ric_EventTriggerStyle_List), - offsetof(struct E2SM_KPM_RANfunction_Description__e2SM_KPM_RANfunction_Item__ric_EventTriggerStyle_List, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_ric_EventTriggerStyle_List_4 = { - "ric-EventTriggerStyle-List", - "ric-EventTriggerStyle-List", - &asn_OP_SEQUENCE_OF, - asn_DEF_ric_EventTriggerStyle_List_tags_4, - sizeof(asn_DEF_ric_EventTriggerStyle_List_tags_4) - /sizeof(asn_DEF_ric_EventTriggerStyle_List_tags_4[0]) - 1, /* 1 */ - asn_DEF_ric_EventTriggerStyle_List_tags_4, /* Same as above */ - sizeof(asn_DEF_ric_EventTriggerStyle_List_tags_4) - /sizeof(asn_DEF_ric_EventTriggerStyle_List_tags_4[0]), /* 2 */ - { &asn_OER_type_ric_EventTriggerStyle_List_constr_4, &asn_PER_type_ric_EventTriggerStyle_List_constr_4, SEQUENCE_OF_constraint }, - asn_MBR_ric_EventTriggerStyle_List_4, - 1, /* Single element */ - &asn_SPC_ric_EventTriggerStyle_List_specs_4 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_ric_ReportStyle_List_6[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RIC_ReportStyle_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ric_ReportStyle_List_tags_6[] = { - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_ric_ReportStyle_List_specs_6 = { - sizeof(struct E2SM_KPM_RANfunction_Description__e2SM_KPM_RANfunction_Item__ric_ReportStyle_List), - offsetof(struct E2SM_KPM_RANfunction_Description__e2SM_KPM_RANfunction_Item__ric_ReportStyle_List, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_ric_ReportStyle_List_6 = { - "ric-ReportStyle-List", - "ric-ReportStyle-List", - &asn_OP_SEQUENCE_OF, - asn_DEF_ric_ReportStyle_List_tags_6, - sizeof(asn_DEF_ric_ReportStyle_List_tags_6) - /sizeof(asn_DEF_ric_ReportStyle_List_tags_6[0]) - 1, /* 1 */ - asn_DEF_ric_ReportStyle_List_tags_6, /* Same as above */ - sizeof(asn_DEF_ric_ReportStyle_List_tags_6) - /sizeof(asn_DEF_ric_ReportStyle_List_tags_6[0]), /* 2 */ - { &asn_OER_type_ric_ReportStyle_List_constr_6, &asn_PER_type_ric_ReportStyle_List_constr_6, SEQUENCE_OF_constraint }, - asn_MBR_ric_ReportStyle_List_6, - 1, /* Single element */ - &asn_SPC_ric_ReportStyle_List_specs_6 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_e2SM_KPM_RANfunction_Item_3[] = { - { ATF_POINTER, 2, offsetof(struct E2SM_KPM_RANfunction_Description__e2SM_KPM_RANfunction_Item, ric_EventTriggerStyle_List), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - 0, - &asn_DEF_ric_EventTriggerStyle_List_4, - 0, - { &asn_OER_memb_ric_EventTriggerStyle_List_constr_4, &asn_PER_memb_ric_EventTriggerStyle_List_constr_4, memb_ric_EventTriggerStyle_List_constraint_3 }, - 0, 0, /* No default value */ - "ric-EventTriggerStyle-List" - }, - { ATF_POINTER, 1, offsetof(struct E2SM_KPM_RANfunction_Description__e2SM_KPM_RANfunction_Item, ric_ReportStyle_List), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - 0, - &asn_DEF_ric_ReportStyle_List_6, - 0, - { &asn_OER_memb_ric_ReportStyle_List_constr_6, &asn_PER_memb_ric_ReportStyle_List_constr_6, memb_ric_ReportStyle_List_constraint_3 }, - 0, 0, /* No default value */ - "ric-ReportStyle-List" - }, -}; -static const int asn_MAP_e2SM_KPM_RANfunction_Item_oms_3[] = { 0, 1 }; -static const ber_tlv_tag_t asn_DEF_e2SM_KPM_RANfunction_Item_tags_3[] = { - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_e2SM_KPM_RANfunction_Item_tag2el_3[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ric-EventTriggerStyle-List */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ric-ReportStyle-List */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_e2SM_KPM_RANfunction_Item_specs_3 = { - sizeof(struct E2SM_KPM_RANfunction_Description__e2SM_KPM_RANfunction_Item), - offsetof(struct E2SM_KPM_RANfunction_Description__e2SM_KPM_RANfunction_Item, _asn_ctx), - asn_MAP_e2SM_KPM_RANfunction_Item_tag2el_3, - 2, /* Count of tags in the map */ - asn_MAP_e2SM_KPM_RANfunction_Item_oms_3, /* Optional members */ - 2, 0, /* Root/Additions */ - 2, /* First extension addition */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_e2SM_KPM_RANfunction_Item_3 = { - "e2SM-KPM-RANfunction-Item", - "e2SM-KPM-RANfunction-Item", - &asn_OP_SEQUENCE, - asn_DEF_e2SM_KPM_RANfunction_Item_tags_3, - sizeof(asn_DEF_e2SM_KPM_RANfunction_Item_tags_3) - /sizeof(asn_DEF_e2SM_KPM_RANfunction_Item_tags_3[0]) - 1, /* 1 */ - asn_DEF_e2SM_KPM_RANfunction_Item_tags_3, /* Same as above */ - sizeof(asn_DEF_e2SM_KPM_RANfunction_Item_tags_3) - /sizeof(asn_DEF_e2SM_KPM_RANfunction_Item_tags_3[0]), /* 2 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_e2SM_KPM_RANfunction_Item_3, - 2, /* Elements count */ - &asn_SPC_e2SM_KPM_RANfunction_Item_specs_3 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_E2SM_KPM_RANfunction_Description_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct E2SM_KPM_RANfunction_Description, ranFunction_Name), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RANfunction_Name, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ranFunction-Name" - }, - { ATF_NOFLAGS, 0, offsetof(struct E2SM_KPM_RANfunction_Description, e2SM_KPM_RANfunction_Item), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - 0, - &asn_DEF_e2SM_KPM_RANfunction_Item_3, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "e2SM-KPM-RANfunction-Item" - }, -}; -static const ber_tlv_tag_t asn_DEF_E2SM_KPM_RANfunction_Description_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E2SM_KPM_RANfunction_Description_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ranFunction-Name */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* e2SM-KPM-RANfunction-Item */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_E2SM_KPM_RANfunction_Description_specs_1 = { - sizeof(struct E2SM_KPM_RANfunction_Description), - offsetof(struct E2SM_KPM_RANfunction_Description, _asn_ctx), - asn_MAP_E2SM_KPM_RANfunction_Description_tag2el_1, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 2, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E2SM_KPM_RANfunction_Description = { - "E2SM-KPM-RANfunction-Description", - "E2SM-KPM-RANfunction-Description", - &asn_OP_SEQUENCE, - asn_DEF_E2SM_KPM_RANfunction_Description_tags_1, - sizeof(asn_DEF_E2SM_KPM_RANfunction_Description_tags_1) - /sizeof(asn_DEF_E2SM_KPM_RANfunction_Description_tags_1[0]), /* 1 */ - asn_DEF_E2SM_KPM_RANfunction_Description_tags_1, /* Same as above */ - sizeof(asn_DEF_E2SM_KPM_RANfunction_Description_tags_1) - /sizeof(asn_DEF_E2SM_KPM_RANfunction_Description_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E2SM_KPM_RANfunction_Description_1, - 2, /* Elements count */ - &asn_SPC_E2SM_KPM_RANfunction_Description_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/E2SM-KPM-RANfunction-Description.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/E2SM-KPM-RANfunction-Description.h deleted file mode 100644 index 79d2dcf..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/E2SM-KPM-RANfunction-Description.h +++ /dev/null @@ -1,73 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _E2SM_KPM_RANfunction_Description_H_ -#define _E2SM_KPM_RANfunction_Description_H_ - - -#include - -/* Including external dependencies */ -#include "RANfunction-Name.h" -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct RIC_EventTriggerStyle_List; -struct RIC_ReportStyle_List; - -/* E2SM-KPM-RANfunction-Description */ -typedef struct E2SM_KPM_RANfunction_Description { - RANfunction_Name_t ranFunction_Name; - struct E2SM_KPM_RANfunction_Description__e2SM_KPM_RANfunction_Item { - struct E2SM_KPM_RANfunction_Description__e2SM_KPM_RANfunction_Item__ric_EventTriggerStyle_List { - A_SEQUENCE_OF(struct RIC_EventTriggerStyle_List) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } *ric_EventTriggerStyle_List; - struct E2SM_KPM_RANfunction_Description__e2SM_KPM_RANfunction_Item__ric_ReportStyle_List { - A_SEQUENCE_OF(struct RIC_ReportStyle_List) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } *ric_ReportStyle_List; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } e2SM_KPM_RANfunction_Item; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E2SM_KPM_RANfunction_Description_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E2SM_KPM_RANfunction_Description; - -#ifdef __cplusplus -} -#endif - -/* Referred external types */ -#include "RIC-EventTriggerStyle-List.h" -#include "RIC-ReportStyle-List.h" - -#endif /* _E2SM_KPM_RANfunction_Description_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/E2setupFailure.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/E2setupFailure.c deleted file mode 100644 index 49cae9b..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/E2setupFailure.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "E2setupFailure.h" - -asn_TYPE_member_t asn_MBR_E2setupFailure_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct E2setupFailure, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_1527P13, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_E2setupFailure_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E2setupFailure_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E2setupFailure_specs_1 = { - sizeof(struct E2setupFailure), - offsetof(struct E2setupFailure, _asn_ctx), - asn_MAP_E2setupFailure_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E2setupFailure = { - "E2setupFailure", - "E2setupFailure", - &asn_OP_SEQUENCE, - asn_DEF_E2setupFailure_tags_1, - sizeof(asn_DEF_E2setupFailure_tags_1) - /sizeof(asn_DEF_E2setupFailure_tags_1[0]), /* 1 */ - asn_DEF_E2setupFailure_tags_1, /* Same as above */ - sizeof(asn_DEF_E2setupFailure_tags_1) - /sizeof(asn_DEF_E2setupFailure_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E2setupFailure_1, - 1, /* Elements count */ - &asn_SPC_E2setupFailure_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/E2setupFailure.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/E2setupFailure.h deleted file mode 100644 index 4dee64b..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/E2setupFailure.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _E2setupFailure_H_ -#define _E2setupFailure_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* E2setupFailure */ -typedef struct E2setupFailure { - ProtocolIE_Container_1527P13_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E2setupFailure_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E2setupFailure; -extern asn_SEQUENCE_specifics_t asn_SPC_E2setupFailure_specs_1; -extern asn_TYPE_member_t asn_MBR_E2setupFailure_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _E2setupFailure_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/E2setupRequest.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/E2setupRequest.c deleted file mode 100644 index cefa91b..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/E2setupRequest.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "E2setupRequest.h" - -asn_TYPE_member_t asn_MBR_E2setupRequest_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct E2setupRequest, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_1527P11, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_E2setupRequest_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E2setupRequest_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E2setupRequest_specs_1 = { - sizeof(struct E2setupRequest), - offsetof(struct E2setupRequest, _asn_ctx), - asn_MAP_E2setupRequest_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E2setupRequest = { - "E2setupRequest", - "E2setupRequest", - &asn_OP_SEQUENCE, - asn_DEF_E2setupRequest_tags_1, - sizeof(asn_DEF_E2setupRequest_tags_1) - /sizeof(asn_DEF_E2setupRequest_tags_1[0]), /* 1 */ - asn_DEF_E2setupRequest_tags_1, /* Same as above */ - sizeof(asn_DEF_E2setupRequest_tags_1) - /sizeof(asn_DEF_E2setupRequest_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E2setupRequest_1, - 1, /* Elements count */ - &asn_SPC_E2setupRequest_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/E2setupRequest.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/E2setupRequest.h deleted file mode 100644 index 2b8b070..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/E2setupRequest.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _E2setupRequest_H_ -#define _E2setupRequest_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* E2setupRequest */ -typedef struct E2setupRequest { - ProtocolIE_Container_1527P11_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E2setupRequest_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E2setupRequest; -extern asn_SEQUENCE_specifics_t asn_SPC_E2setupRequest_specs_1; -extern asn_TYPE_member_t asn_MBR_E2setupRequest_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _E2setupRequest_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/E2setupResponse.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/E2setupResponse.c deleted file mode 100644 index b607aa1..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/E2setupResponse.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "E2setupResponse.h" - -asn_TYPE_member_t asn_MBR_E2setupResponse_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct E2setupResponse, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_1527P12, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_E2setupResponse_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E2setupResponse_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E2setupResponse_specs_1 = { - sizeof(struct E2setupResponse), - offsetof(struct E2setupResponse, _asn_ctx), - asn_MAP_E2setupResponse_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E2setupResponse = { - "E2setupResponse", - "E2setupResponse", - &asn_OP_SEQUENCE, - asn_DEF_E2setupResponse_tags_1, - sizeof(asn_DEF_E2setupResponse_tags_1) - /sizeof(asn_DEF_E2setupResponse_tags_1[0]), /* 1 */ - asn_DEF_E2setupResponse_tags_1, /* Same as above */ - sizeof(asn_DEF_E2setupResponse_tags_1) - /sizeof(asn_DEF_E2setupResponse_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E2setupResponse_1, - 1, /* Elements count */ - &asn_SPC_E2setupResponse_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/E2setupResponse.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/E2setupResponse.h deleted file mode 100644 index ccec4bc..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/E2setupResponse.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _E2setupResponse_H_ -#define _E2setupResponse_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* E2setupResponse */ -typedef struct E2setupResponse { - ProtocolIE_Container_1527P12_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E2setupResponse_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E2setupResponse; -extern asn_SEQUENCE_specifics_t asn_SPC_E2setupResponse_specs_1; -extern asn_TYPE_member_t asn_MBR_E2setupResponse_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _E2setupResponse_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/ENB-ID-Choice.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/ENB-ID-Choice.c deleted file mode 100644 index 824871d..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/ENB-ID-Choice.c +++ /dev/null @@ -1,192 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "ENB-ID-Choice.h" - -static int -memb_enb_ID_macro_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if(st->size > 0) { - /* Size in bits */ - size = 8 * st->size - (st->bits_unused & 0x07); - } else { - size = 0; - } - - if((size == 20)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_enb_ID_shortmacro_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if(st->size > 0) { - /* Size in bits */ - size = 8 * st->size - (st->bits_unused & 0x07); - } else { - size = 0; - } - - if((size == 18)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_enb_ID_longmacro_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if(st->size > 0) { - /* Size in bits */ - size = 8 * st->size - (st->bits_unused & 0x07); - } else { - size = 0; - } - - if((size == 21)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_oer_constraints_t asn_OER_memb_enb_ID_macro_constr_2 CC_NOTUSED = { - { 0, 0 }, - 20 /* (SIZE(20..20)) */}; -static asn_per_constraints_t asn_PER_memb_enb_ID_macro_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 0, 0, 20, 20 } /* (SIZE(20..20)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_enb_ID_shortmacro_constr_3 CC_NOTUSED = { - { 0, 0 }, - 18 /* (SIZE(18..18)) */}; -static asn_per_constraints_t asn_PER_memb_enb_ID_shortmacro_constr_3 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 0, 0, 18, 18 } /* (SIZE(18..18)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_enb_ID_longmacro_constr_4 CC_NOTUSED = { - { 0, 0 }, - 21 /* (SIZE(21..21)) */}; -static asn_per_constraints_t asn_PER_memb_enb_ID_longmacro_constr_4 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 0, 0, 21, 21 } /* (SIZE(21..21)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_type_ENB_ID_Choice_constr_1 CC_NOTUSED = { - { 0, 0 }, - -1}; -asn_per_constraints_t asn_PER_type_ENB_ID_Choice_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 2 } /* (0..2,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_ENB_ID_Choice_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct ENB_ID_Choice, choice.enb_ID_macro), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_BIT_STRING, - 0, - { &asn_OER_memb_enb_ID_macro_constr_2, &asn_PER_memb_enb_ID_macro_constr_2, memb_enb_ID_macro_constraint_1 }, - 0, 0, /* No default value */ - "enb-ID-macro" - }, - { ATF_NOFLAGS, 0, offsetof(struct ENB_ID_Choice, choice.enb_ID_shortmacro), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_BIT_STRING, - 0, - { &asn_OER_memb_enb_ID_shortmacro_constr_3, &asn_PER_memb_enb_ID_shortmacro_constr_3, memb_enb_ID_shortmacro_constraint_1 }, - 0, 0, /* No default value */ - "enb-ID-shortmacro" - }, - { ATF_NOFLAGS, 0, offsetof(struct ENB_ID_Choice, choice.enb_ID_longmacro), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_BIT_STRING, - 0, - { &asn_OER_memb_enb_ID_longmacro_constr_4, &asn_PER_memb_enb_ID_longmacro_constr_4, memb_enb_ID_longmacro_constraint_1 }, - 0, 0, /* No default value */ - "enb-ID-longmacro" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_ENB_ID_Choice_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* enb-ID-macro */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* enb-ID-shortmacro */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* enb-ID-longmacro */ -}; -asn_CHOICE_specifics_t asn_SPC_ENB_ID_Choice_specs_1 = { - sizeof(struct ENB_ID_Choice), - offsetof(struct ENB_ID_Choice, _asn_ctx), - offsetof(struct ENB_ID_Choice, present), - sizeof(((struct ENB_ID_Choice *)0)->present), - asn_MAP_ENB_ID_Choice_tag2el_1, - 3, /* Count of tags in the map */ - 0, 0, - 3 /* Extensions start */ -}; -asn_TYPE_descriptor_t asn_DEF_ENB_ID_Choice = { - "ENB-ID-Choice", - "ENB-ID-Choice", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { &asn_OER_type_ENB_ID_Choice_constr_1, &asn_PER_type_ENB_ID_Choice_constr_1, CHOICE_constraint }, - asn_MBR_ENB_ID_Choice_1, - 3, /* Elements count */ - &asn_SPC_ENB_ID_Choice_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/ENB-ID-Choice.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/ENB-ID-Choice.h deleted file mode 100644 index 7e142ae..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/ENB-ID-Choice.h +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _ENB_ID_Choice_H_ -#define _ENB_ID_Choice_H_ - - -#include - -/* Including external dependencies */ -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum ENB_ID_Choice_PR { - ENB_ID_Choice_PR_NOTHING, /* No components present */ - ENB_ID_Choice_PR_enb_ID_macro, - ENB_ID_Choice_PR_enb_ID_shortmacro, - ENB_ID_Choice_PR_enb_ID_longmacro - /* Extensions may appear below */ - -} ENB_ID_Choice_PR; - -/* ENB-ID-Choice */ -typedef struct ENB_ID_Choice { - ENB_ID_Choice_PR present; - union ENB_ID_Choice_u { - BIT_STRING_t enb_ID_macro; - BIT_STRING_t enb_ID_shortmacro; - BIT_STRING_t enb_ID_longmacro; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ENB_ID_Choice_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ENB_ID_Choice; -extern asn_CHOICE_specifics_t asn_SPC_ENB_ID_Choice_specs_1; -extern asn_TYPE_member_t asn_MBR_ENB_ID_Choice_1[3]; -extern asn_per_constraints_t asn_PER_type_ENB_ID_Choice_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _ENB_ID_Choice_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/ENB-ID.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/ENB-ID.c deleted file mode 100644 index 212c6fc..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/ENB-ID.c +++ /dev/null @@ -1,241 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "ENB-ID.h" - -static int -memb_macro_eNB_ID_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if(st->size > 0) { - /* Size in bits */ - size = 8 * st->size - (st->bits_unused & 0x07); - } else { - size = 0; - } - - if((size == 20)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_home_eNB_ID_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if(st->size > 0) { - /* Size in bits */ - size = 8 * st->size - (st->bits_unused & 0x07); - } else { - size = 0; - } - - if((size == 28)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_short_Macro_eNB_ID_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if(st->size > 0) { - /* Size in bits */ - size = 8 * st->size - (st->bits_unused & 0x07); - } else { - size = 0; - } - - if((size == 18)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_long_Macro_eNB_ID_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if(st->size > 0) { - /* Size in bits */ - size = 8 * st->size - (st->bits_unused & 0x07); - } else { - size = 0; - } - - if((size == 21)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_oer_constraints_t asn_OER_memb_macro_eNB_ID_constr_2 CC_NOTUSED = { - { 0, 0 }, - 20 /* (SIZE(20..20)) */}; -static asn_per_constraints_t asn_PER_memb_macro_eNB_ID_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 0, 0, 20, 20 } /* (SIZE(20..20)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_home_eNB_ID_constr_3 CC_NOTUSED = { - { 0, 0 }, - 28 /* (SIZE(28..28)) */}; -static asn_per_constraints_t asn_PER_memb_home_eNB_ID_constr_3 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 0, 0, 28, 28 } /* (SIZE(28..28)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_short_Macro_eNB_ID_constr_5 CC_NOTUSED = { - { 0, 0 }, - 18 /* (SIZE(18..18)) */}; -static asn_per_constraints_t asn_PER_memb_short_Macro_eNB_ID_constr_5 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 0, 0, 18, 18 } /* (SIZE(18..18)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_long_Macro_eNB_ID_constr_6 CC_NOTUSED = { - { 0, 0 }, - 21 /* (SIZE(21..21)) */}; -static asn_per_constraints_t asn_PER_memb_long_Macro_eNB_ID_constr_6 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 0, 0, 21, 21 } /* (SIZE(21..21)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_type_ENB_ID_constr_1 CC_NOTUSED = { - { 0, 0 }, - -1}; -asn_per_constraints_t asn_PER_type_ENB_ID_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_ENB_ID_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct ENB_ID, choice.macro_eNB_ID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_BIT_STRING, - 0, - { &asn_OER_memb_macro_eNB_ID_constr_2, &asn_PER_memb_macro_eNB_ID_constr_2, memb_macro_eNB_ID_constraint_1 }, - 0, 0, /* No default value */ - "macro-eNB-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct ENB_ID, choice.home_eNB_ID), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_BIT_STRING, - 0, - { &asn_OER_memb_home_eNB_ID_constr_3, &asn_PER_memb_home_eNB_ID_constr_3, memb_home_eNB_ID_constraint_1 }, - 0, 0, /* No default value */ - "home-eNB-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct ENB_ID, choice.short_Macro_eNB_ID), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_BIT_STRING, - 0, - { &asn_OER_memb_short_Macro_eNB_ID_constr_5, &asn_PER_memb_short_Macro_eNB_ID_constr_5, memb_short_Macro_eNB_ID_constraint_1 }, - 0, 0, /* No default value */ - "short-Macro-eNB-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct ENB_ID, choice.long_Macro_eNB_ID), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_BIT_STRING, - 0, - { &asn_OER_memb_long_Macro_eNB_ID_constr_6, &asn_PER_memb_long_Macro_eNB_ID_constr_6, memb_long_Macro_eNB_ID_constraint_1 }, - 0, 0, /* No default value */ - "long-Macro-eNB-ID" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_ENB_ID_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* macro-eNB-ID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* home-eNB-ID */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* short-Macro-eNB-ID */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* long-Macro-eNB-ID */ -}; -asn_CHOICE_specifics_t asn_SPC_ENB_ID_specs_1 = { - sizeof(struct ENB_ID), - offsetof(struct ENB_ID, _asn_ctx), - offsetof(struct ENB_ID, present), - sizeof(((struct ENB_ID *)0)->present), - asn_MAP_ENB_ID_tag2el_1, - 4, /* Count of tags in the map */ - 0, 0, - 2 /* Extensions start */ -}; -asn_TYPE_descriptor_t asn_DEF_ENB_ID = { - "ENB-ID", - "ENB-ID", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { &asn_OER_type_ENB_ID_constr_1, &asn_PER_type_ENB_ID_constr_1, CHOICE_constraint }, - asn_MBR_ENB_ID_1, - 4, /* Elements count */ - &asn_SPC_ENB_ID_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/ENB-ID.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/ENB-ID.h deleted file mode 100644 index 8af6b41..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/ENB-ID.h +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _ENB_ID_H_ -#define _ENB_ID_H_ - - -#include - -/* Including external dependencies */ -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum ENB_ID_PR { - ENB_ID_PR_NOTHING, /* No components present */ - ENB_ID_PR_macro_eNB_ID, - ENB_ID_PR_home_eNB_ID, - /* Extensions may appear below */ - ENB_ID_PR_short_Macro_eNB_ID, - ENB_ID_PR_long_Macro_eNB_ID -} ENB_ID_PR; - -/* ENB-ID */ -typedef struct ENB_ID { - ENB_ID_PR present; - union ENB_ID_u { - BIT_STRING_t macro_eNB_ID; - BIT_STRING_t home_eNB_ID; - /* - * This type is extensible, - * possible extensions are below. - */ - BIT_STRING_t short_Macro_eNB_ID; - BIT_STRING_t long_Macro_eNB_ID; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ENB_ID_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ENB_ID; -extern asn_CHOICE_specifics_t asn_SPC_ENB_ID_specs_1; -extern asn_TYPE_member_t asn_MBR_ENB_ID_1[4]; -extern asn_per_constraints_t asn_PER_type_ENB_ID_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _ENB_ID_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/ENGNB-ID.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/ENGNB-ID.c deleted file mode 100644 index e8fc32f..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/ENGNB-ID.c +++ /dev/null @@ -1,94 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "ENGNB-ID.h" - -static int -memb_gNB_ID_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if(st->size > 0) { - /* Size in bits */ - size = 8 * st->size - (st->bits_unused & 0x07); - } else { - size = 0; - } - - if((size >= 22 && size <= 32)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_oer_constraints_t asn_OER_memb_gNB_ID_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(22..32)) */}; -static asn_per_constraints_t asn_PER_memb_gNB_ID_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 4, 4, 22, 32 } /* (SIZE(22..32)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_type_ENGNB_ID_constr_1 CC_NOTUSED = { - { 0, 0 }, - -1}; -asn_per_constraints_t asn_PER_type_ENGNB_ID_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 0, 0 } /* (0..0,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_ENGNB_ID_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct ENGNB_ID, choice.gNB_ID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_BIT_STRING, - 0, - { &asn_OER_memb_gNB_ID_constr_2, &asn_PER_memb_gNB_ID_constr_2, memb_gNB_ID_constraint_1 }, - 0, 0, /* No default value */ - "gNB-ID" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_ENGNB_ID_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* gNB-ID */ -}; -asn_CHOICE_specifics_t asn_SPC_ENGNB_ID_specs_1 = { - sizeof(struct ENGNB_ID), - offsetof(struct ENGNB_ID, _asn_ctx), - offsetof(struct ENGNB_ID, present), - sizeof(((struct ENGNB_ID *)0)->present), - asn_MAP_ENGNB_ID_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, - 1 /* Extensions start */ -}; -asn_TYPE_descriptor_t asn_DEF_ENGNB_ID = { - "ENGNB-ID", - "ENGNB-ID", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { &asn_OER_type_ENGNB_ID_constr_1, &asn_PER_type_ENGNB_ID_constr_1, CHOICE_constraint }, - asn_MBR_ENGNB_ID_1, - 1, /* Elements count */ - &asn_SPC_ENGNB_ID_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/ENGNB-ID.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/ENGNB-ID.h deleted file mode 100644 index f97a53c..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/ENGNB-ID.h +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _ENGNB_ID_H_ -#define _ENGNB_ID_H_ - - -#include - -/* Including external dependencies */ -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum ENGNB_ID_PR { - ENGNB_ID_PR_NOTHING, /* No components present */ - ENGNB_ID_PR_gNB_ID - /* Extensions may appear below */ - -} ENGNB_ID_PR; - -/* ENGNB-ID */ -typedef struct ENGNB_ID { - ENGNB_ID_PR present; - union ENGNB_ID_u { - BIT_STRING_t gNB_ID; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ENGNB_ID_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ENGNB_ID; -extern asn_CHOICE_specifics_t asn_SPC_ENGNB_ID_specs_1; -extern asn_TYPE_member_t asn_MBR_ENGNB_ID_1[1]; -extern asn_per_constraints_t asn_PER_type_ENGNB_ID_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _ENGNB_ID_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/EPC-CUUP-PM-Format.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/EPC-CUUP-PM-Format.c deleted file mode 100644 index d8902f8..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/EPC-CUUP-PM-Format.c +++ /dev/null @@ -1,129 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "EPC-CUUP-PM-Format.h" - -static int -memb_perQCIReportList_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - /* Determine the number of elements */ - size = _A_CSEQUENCE_FROM_VOID(sptr)->count; - - if((size >= 1 && size <= 256)) { - /* Perform validation of the inner elements */ - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_oer_constraints_t asn_OER_type_perQCIReportList_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..256)) */}; -static asn_per_constraints_t asn_PER_type_perQCIReportList_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 8, 8, 1, 256 } /* (SIZE(1..256)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_perQCIReportList_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..256)) */}; -static asn_per_constraints_t asn_PER_memb_perQCIReportList_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 8, 8, 1, 256 } /* (SIZE(1..256)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_perQCIReportList_2[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_PerQCIReportListItemFormat, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_perQCIReportList_tags_2[] = { - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_perQCIReportList_specs_2 = { - sizeof(struct EPC_CUUP_PM_Format__perQCIReportList), - offsetof(struct EPC_CUUP_PM_Format__perQCIReportList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_perQCIReportList_2 = { - "perQCIReportList", - "perQCIReportList", - &asn_OP_SEQUENCE_OF, - asn_DEF_perQCIReportList_tags_2, - sizeof(asn_DEF_perQCIReportList_tags_2) - /sizeof(asn_DEF_perQCIReportList_tags_2[0]) - 1, /* 1 */ - asn_DEF_perQCIReportList_tags_2, /* Same as above */ - sizeof(asn_DEF_perQCIReportList_tags_2) - /sizeof(asn_DEF_perQCIReportList_tags_2[0]), /* 2 */ - { &asn_OER_type_perQCIReportList_constr_2, &asn_PER_type_perQCIReportList_constr_2, SEQUENCE_OF_constraint }, - asn_MBR_perQCIReportList_2, - 1, /* Single element */ - &asn_SPC_perQCIReportList_specs_2 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_EPC_CUUP_PM_Format_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct EPC_CUUP_PM_Format, perQCIReportList), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - 0, - &asn_DEF_perQCIReportList_2, - 0, - { &asn_OER_memb_perQCIReportList_constr_2, &asn_PER_memb_perQCIReportList_constr_2, memb_perQCIReportList_constraint_1 }, - 0, 0, /* No default value */ - "perQCIReportList" - }, -}; -static const ber_tlv_tag_t asn_DEF_EPC_CUUP_PM_Format_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_EPC_CUUP_PM_Format_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* perQCIReportList */ -}; -asn_SEQUENCE_specifics_t asn_SPC_EPC_CUUP_PM_Format_specs_1 = { - sizeof(struct EPC_CUUP_PM_Format), - offsetof(struct EPC_CUUP_PM_Format, _asn_ctx), - asn_MAP_EPC_CUUP_PM_Format_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_EPC_CUUP_PM_Format = { - "EPC-CUUP-PM-Format", - "EPC-CUUP-PM-Format", - &asn_OP_SEQUENCE, - asn_DEF_EPC_CUUP_PM_Format_tags_1, - sizeof(asn_DEF_EPC_CUUP_PM_Format_tags_1) - /sizeof(asn_DEF_EPC_CUUP_PM_Format_tags_1[0]), /* 1 */ - asn_DEF_EPC_CUUP_PM_Format_tags_1, /* Same as above */ - sizeof(asn_DEF_EPC_CUUP_PM_Format_tags_1) - /sizeof(asn_DEF_EPC_CUUP_PM_Format_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_EPC_CUUP_PM_Format_1, - 1, /* Elements count */ - &asn_SPC_EPC_CUUP_PM_Format_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/EPC-CUUP-PM-Format.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/EPC-CUUP-PM-Format.h deleted file mode 100644 index b07125d..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/EPC-CUUP-PM-Format.h +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _EPC_CUUP_PM_Format_H_ -#define _EPC_CUUP_PM_Format_H_ - - -#include - -/* Including external dependencies */ -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct PerQCIReportListItemFormat; - -/* EPC-CUUP-PM-Format */ -typedef struct EPC_CUUP_PM_Format { - struct EPC_CUUP_PM_Format__perQCIReportList { - A_SEQUENCE_OF(struct PerQCIReportListItemFormat) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } perQCIReportList; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} EPC_CUUP_PM_Format_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_EPC_CUUP_PM_Format; -extern asn_SEQUENCE_specifics_t asn_SPC_EPC_CUUP_PM_Format_specs_1; -extern asn_TYPE_member_t asn_MBR_EPC_CUUP_PM_Format_1[1]; - -#ifdef __cplusplus -} -#endif - -/* Referred external types */ -#include "PerQCIReportListItemFormat.h" - -#endif /* _EPC_CUUP_PM_Format_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/EPC-DU-PM-Container.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/EPC-DU-PM-Container.c deleted file mode 100644 index 2ba5440..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/EPC-DU-PM-Container.c +++ /dev/null @@ -1,129 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "EPC-DU-PM-Container.h" - -static int -memb_perQCIReportList_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - /* Determine the number of elements */ - size = _A_CSEQUENCE_FROM_VOID(sptr)->count; - - if((size >= 1 && size <= 256)) { - /* Perform validation of the inner elements */ - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_oer_constraints_t asn_OER_type_perQCIReportList_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..256)) */}; -static asn_per_constraints_t asn_PER_type_perQCIReportList_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 8, 8, 1, 256 } /* (SIZE(1..256)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_perQCIReportList_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..256)) */}; -static asn_per_constraints_t asn_PER_memb_perQCIReportList_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 8, 8, 1, 256 } /* (SIZE(1..256)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_perQCIReportList_2[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_PerQCIReportListItem, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_perQCIReportList_tags_2[] = { - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_perQCIReportList_specs_2 = { - sizeof(struct EPC_DU_PM_Container__perQCIReportList), - offsetof(struct EPC_DU_PM_Container__perQCIReportList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_perQCIReportList_2 = { - "perQCIReportList", - "perQCIReportList", - &asn_OP_SEQUENCE_OF, - asn_DEF_perQCIReportList_tags_2, - sizeof(asn_DEF_perQCIReportList_tags_2) - /sizeof(asn_DEF_perQCIReportList_tags_2[0]) - 1, /* 1 */ - asn_DEF_perQCIReportList_tags_2, /* Same as above */ - sizeof(asn_DEF_perQCIReportList_tags_2) - /sizeof(asn_DEF_perQCIReportList_tags_2[0]), /* 2 */ - { &asn_OER_type_perQCIReportList_constr_2, &asn_PER_type_perQCIReportList_constr_2, SEQUENCE_OF_constraint }, - asn_MBR_perQCIReportList_2, - 1, /* Single element */ - &asn_SPC_perQCIReportList_specs_2 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_EPC_DU_PM_Container_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct EPC_DU_PM_Container, perQCIReportList), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - 0, - &asn_DEF_perQCIReportList_2, - 0, - { &asn_OER_memb_perQCIReportList_constr_2, &asn_PER_memb_perQCIReportList_constr_2, memb_perQCIReportList_constraint_1 }, - 0, 0, /* No default value */ - "perQCIReportList" - }, -}; -static const ber_tlv_tag_t asn_DEF_EPC_DU_PM_Container_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_EPC_DU_PM_Container_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* perQCIReportList */ -}; -asn_SEQUENCE_specifics_t asn_SPC_EPC_DU_PM_Container_specs_1 = { - sizeof(struct EPC_DU_PM_Container), - offsetof(struct EPC_DU_PM_Container, _asn_ctx), - asn_MAP_EPC_DU_PM_Container_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_EPC_DU_PM_Container = { - "EPC-DU-PM-Container", - "EPC-DU-PM-Container", - &asn_OP_SEQUENCE, - asn_DEF_EPC_DU_PM_Container_tags_1, - sizeof(asn_DEF_EPC_DU_PM_Container_tags_1) - /sizeof(asn_DEF_EPC_DU_PM_Container_tags_1[0]), /* 1 */ - asn_DEF_EPC_DU_PM_Container_tags_1, /* Same as above */ - sizeof(asn_DEF_EPC_DU_PM_Container_tags_1) - /sizeof(asn_DEF_EPC_DU_PM_Container_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_EPC_DU_PM_Container_1, - 1, /* Elements count */ - &asn_SPC_EPC_DU_PM_Container_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/EPC-DU-PM-Container.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/EPC-DU-PM-Container.h deleted file mode 100644 index 198982e..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/EPC-DU-PM-Container.h +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _EPC_DU_PM_Container_H_ -#define _EPC_DU_PM_Container_H_ - - -#include - -/* Including external dependencies */ -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct PerQCIReportListItem; - -/* EPC-DU-PM-Container */ -typedef struct EPC_DU_PM_Container { - struct EPC_DU_PM_Container__perQCIReportList { - A_SEQUENCE_OF(struct PerQCIReportListItem) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } perQCIReportList; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} EPC_DU_PM_Container_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_EPC_DU_PM_Container; -extern asn_SEQUENCE_specifics_t asn_SPC_EPC_DU_PM_Container_specs_1; -extern asn_TYPE_member_t asn_MBR_EPC_DU_PM_Container_1[1]; - -#ifdef __cplusplus -} -#endif - -/* Referred external types */ -#include "PerQCIReportListItem.h" - -#endif /* _EPC_DU_PM_Container_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/ErrorIndication.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/ErrorIndication.c deleted file mode 100644 index e971c4f..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/ErrorIndication.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "ErrorIndication.h" - -asn_TYPE_member_t asn_MBR_ErrorIndication_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct ErrorIndication, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_1527P10, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_ErrorIndication_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ErrorIndication_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ErrorIndication_specs_1 = { - sizeof(struct ErrorIndication), - offsetof(struct ErrorIndication, _asn_ctx), - asn_MAP_ErrorIndication_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ErrorIndication = { - "ErrorIndication", - "ErrorIndication", - &asn_OP_SEQUENCE, - asn_DEF_ErrorIndication_tags_1, - sizeof(asn_DEF_ErrorIndication_tags_1) - /sizeof(asn_DEF_ErrorIndication_tags_1[0]), /* 1 */ - asn_DEF_ErrorIndication_tags_1, /* Same as above */ - sizeof(asn_DEF_ErrorIndication_tags_1) - /sizeof(asn_DEF_ErrorIndication_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ErrorIndication_1, - 1, /* Elements count */ - &asn_SPC_ErrorIndication_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/ErrorIndication.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/ErrorIndication.h deleted file mode 100644 index a209847..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/ErrorIndication.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _ErrorIndication_H_ -#define _ErrorIndication_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* ErrorIndication */ -typedef struct ErrorIndication { - ProtocolIE_Container_1527P10_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ErrorIndication_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ErrorIndication; -extern asn_SEQUENCE_specifics_t asn_SPC_ErrorIndication_specs_1; -extern asn_TYPE_member_t asn_MBR_ErrorIndication_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _ErrorIndication_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/FGC-CUUP-PM-Format.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/FGC-CUUP-PM-Format.c deleted file mode 100644 index d8f7e44..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/FGC-CUUP-PM-Format.c +++ /dev/null @@ -1,129 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "FGC-CUUP-PM-Format.h" - -static int -memb_sliceToReportList_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - /* Determine the number of elements */ - size = _A_CSEQUENCE_FROM_VOID(sptr)->count; - - if((size >= 1 && size <= 1024)) { - /* Perform validation of the inner elements */ - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_oer_constraints_t asn_OER_type_sliceToReportList_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..1024)) */}; -static asn_per_constraints_t asn_PER_type_sliceToReportList_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 10, 10, 1, 1024 } /* (SIZE(1..1024)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_sliceToReportList_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..1024)) */}; -static asn_per_constraints_t asn_PER_memb_sliceToReportList_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 10, 10, 1, 1024 } /* (SIZE(1..1024)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_sliceToReportList_2[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_SliceToReportListItem, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_sliceToReportList_tags_2[] = { - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_sliceToReportList_specs_2 = { - sizeof(struct FGC_CUUP_PM_Format__sliceToReportList), - offsetof(struct FGC_CUUP_PM_Format__sliceToReportList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_sliceToReportList_2 = { - "sliceToReportList", - "sliceToReportList", - &asn_OP_SEQUENCE_OF, - asn_DEF_sliceToReportList_tags_2, - sizeof(asn_DEF_sliceToReportList_tags_2) - /sizeof(asn_DEF_sliceToReportList_tags_2[0]) - 1, /* 1 */ - asn_DEF_sliceToReportList_tags_2, /* Same as above */ - sizeof(asn_DEF_sliceToReportList_tags_2) - /sizeof(asn_DEF_sliceToReportList_tags_2[0]), /* 2 */ - { &asn_OER_type_sliceToReportList_constr_2, &asn_PER_type_sliceToReportList_constr_2, SEQUENCE_OF_constraint }, - asn_MBR_sliceToReportList_2, - 1, /* Single element */ - &asn_SPC_sliceToReportList_specs_2 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_FGC_CUUP_PM_Format_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct FGC_CUUP_PM_Format, sliceToReportList), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - 0, - &asn_DEF_sliceToReportList_2, - 0, - { &asn_OER_memb_sliceToReportList_constr_2, &asn_PER_memb_sliceToReportList_constr_2, memb_sliceToReportList_constraint_1 }, - 0, 0, /* No default value */ - "sliceToReportList" - }, -}; -static const ber_tlv_tag_t asn_DEF_FGC_CUUP_PM_Format_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_FGC_CUUP_PM_Format_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* sliceToReportList */ -}; -asn_SEQUENCE_specifics_t asn_SPC_FGC_CUUP_PM_Format_specs_1 = { - sizeof(struct FGC_CUUP_PM_Format), - offsetof(struct FGC_CUUP_PM_Format, _asn_ctx), - asn_MAP_FGC_CUUP_PM_Format_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_FGC_CUUP_PM_Format = { - "FGC-CUUP-PM-Format", - "FGC-CUUP-PM-Format", - &asn_OP_SEQUENCE, - asn_DEF_FGC_CUUP_PM_Format_tags_1, - sizeof(asn_DEF_FGC_CUUP_PM_Format_tags_1) - /sizeof(asn_DEF_FGC_CUUP_PM_Format_tags_1[0]), /* 1 */ - asn_DEF_FGC_CUUP_PM_Format_tags_1, /* Same as above */ - sizeof(asn_DEF_FGC_CUUP_PM_Format_tags_1) - /sizeof(asn_DEF_FGC_CUUP_PM_Format_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_FGC_CUUP_PM_Format_1, - 1, /* Elements count */ - &asn_SPC_FGC_CUUP_PM_Format_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/FGC-CUUP-PM-Format.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/FGC-CUUP-PM-Format.h deleted file mode 100644 index a6e4aa8..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/FGC-CUUP-PM-Format.h +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _FGC_CUUP_PM_Format_H_ -#define _FGC_CUUP_PM_Format_H_ - - -#include - -/* Including external dependencies */ -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct SliceToReportListItem; - -/* FGC-CUUP-PM-Format */ -typedef struct FGC_CUUP_PM_Format { - struct FGC_CUUP_PM_Format__sliceToReportList { - A_SEQUENCE_OF(struct SliceToReportListItem) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } sliceToReportList; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} FGC_CUUP_PM_Format_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_FGC_CUUP_PM_Format; -extern asn_SEQUENCE_specifics_t asn_SPC_FGC_CUUP_PM_Format_specs_1; -extern asn_TYPE_member_t asn_MBR_FGC_CUUP_PM_Format_1[1]; - -#ifdef __cplusplus -} -#endif - -/* Referred external types */ -#include "SliceToReportListItem.h" - -#endif /* _FGC_CUUP_PM_Format_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/FGC-DU-PM-Container.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/FGC-DU-PM-Container.c deleted file mode 100644 index c0429ab..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/FGC-DU-PM-Container.c +++ /dev/null @@ -1,129 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "FGC-DU-PM-Container.h" - -static int -memb_slicePerPlmnPerCellList_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - /* Determine the number of elements */ - size = _A_CSEQUENCE_FROM_VOID(sptr)->count; - - if((size >= 1 && size <= 1024)) { - /* Perform validation of the inner elements */ - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_oer_constraints_t asn_OER_type_slicePerPlmnPerCellList_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..1024)) */}; -static asn_per_constraints_t asn_PER_type_slicePerPlmnPerCellList_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 10, 10, 1, 1024 } /* (SIZE(1..1024)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_slicePerPlmnPerCellList_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..1024)) */}; -static asn_per_constraints_t asn_PER_memb_slicePerPlmnPerCellList_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 10, 10, 1, 1024 } /* (SIZE(1..1024)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_slicePerPlmnPerCellList_2[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_SlicePerPlmnPerCellListItem, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_slicePerPlmnPerCellList_tags_2[] = { - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_slicePerPlmnPerCellList_specs_2 = { - sizeof(struct FGC_DU_PM_Container__slicePerPlmnPerCellList), - offsetof(struct FGC_DU_PM_Container__slicePerPlmnPerCellList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_slicePerPlmnPerCellList_2 = { - "slicePerPlmnPerCellList", - "slicePerPlmnPerCellList", - &asn_OP_SEQUENCE_OF, - asn_DEF_slicePerPlmnPerCellList_tags_2, - sizeof(asn_DEF_slicePerPlmnPerCellList_tags_2) - /sizeof(asn_DEF_slicePerPlmnPerCellList_tags_2[0]) - 1, /* 1 */ - asn_DEF_slicePerPlmnPerCellList_tags_2, /* Same as above */ - sizeof(asn_DEF_slicePerPlmnPerCellList_tags_2) - /sizeof(asn_DEF_slicePerPlmnPerCellList_tags_2[0]), /* 2 */ - { &asn_OER_type_slicePerPlmnPerCellList_constr_2, &asn_PER_type_slicePerPlmnPerCellList_constr_2, SEQUENCE_OF_constraint }, - asn_MBR_slicePerPlmnPerCellList_2, - 1, /* Single element */ - &asn_SPC_slicePerPlmnPerCellList_specs_2 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_FGC_DU_PM_Container_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct FGC_DU_PM_Container, slicePerPlmnPerCellList), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - 0, - &asn_DEF_slicePerPlmnPerCellList_2, - 0, - { &asn_OER_memb_slicePerPlmnPerCellList_constr_2, &asn_PER_memb_slicePerPlmnPerCellList_constr_2, memb_slicePerPlmnPerCellList_constraint_1 }, - 0, 0, /* No default value */ - "slicePerPlmnPerCellList" - }, -}; -static const ber_tlv_tag_t asn_DEF_FGC_DU_PM_Container_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_FGC_DU_PM_Container_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* slicePerPlmnPerCellList */ -}; -asn_SEQUENCE_specifics_t asn_SPC_FGC_DU_PM_Container_specs_1 = { - sizeof(struct FGC_DU_PM_Container), - offsetof(struct FGC_DU_PM_Container, _asn_ctx), - asn_MAP_FGC_DU_PM_Container_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_FGC_DU_PM_Container = { - "FGC-DU-PM-Container", - "FGC-DU-PM-Container", - &asn_OP_SEQUENCE, - asn_DEF_FGC_DU_PM_Container_tags_1, - sizeof(asn_DEF_FGC_DU_PM_Container_tags_1) - /sizeof(asn_DEF_FGC_DU_PM_Container_tags_1[0]), /* 1 */ - asn_DEF_FGC_DU_PM_Container_tags_1, /* Same as above */ - sizeof(asn_DEF_FGC_DU_PM_Container_tags_1) - /sizeof(asn_DEF_FGC_DU_PM_Container_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_FGC_DU_PM_Container_1, - 1, /* Elements count */ - &asn_SPC_FGC_DU_PM_Container_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/FGC-DU-PM-Container.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/FGC-DU-PM-Container.h deleted file mode 100644 index 96debbb..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/FGC-DU-PM-Container.h +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _FGC_DU_PM_Container_H_ -#define _FGC_DU_PM_Container_H_ - - -#include - -/* Including external dependencies */ -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct SlicePerPlmnPerCellListItem; - -/* FGC-DU-PM-Container */ -typedef struct FGC_DU_PM_Container { - struct FGC_DU_PM_Container__slicePerPlmnPerCellList { - A_SEQUENCE_OF(struct SlicePerPlmnPerCellListItem) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } slicePerPlmnPerCellList; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} FGC_DU_PM_Container_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_FGC_DU_PM_Container; -extern asn_SEQUENCE_specifics_t asn_SPC_FGC_DU_PM_Container_specs_1; -extern asn_TYPE_member_t asn_MBR_FGC_DU_PM_Container_1[1]; - -#ifdef __cplusplus -} -#endif - -/* Referred external types */ -#include "SlicePerPlmnPerCellListItem.h" - -#endif /* _FGC_DU_PM_Container_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/FQIPERSlicesPerPlmnListItem.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/FQIPERSlicesPerPlmnListItem.c deleted file mode 100644 index 84d1741..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/FQIPERSlicesPerPlmnListItem.c +++ /dev/null @@ -1,183 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "FQIPERSlicesPerPlmnListItem.h" - -static int -memb_fiveQI_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 255)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_pDCPBytesDL_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const INTEGER_t *st = (const INTEGER_t *)sptr; - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if(asn_INTEGER2long(st, &value)) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value too large (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if((value >= 0 && value <= 10000000000)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_pDCPBytesUL_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const INTEGER_t *st = (const INTEGER_t *)sptr; - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if(asn_INTEGER2long(st, &value)) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value too large (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if((value >= 0 && value <= 10000000000)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_oer_constraints_t asn_OER_memb_fiveQI_constr_2 CC_NOTUSED = { - { 1, 1 } /* (0..255) */, - -1}; -static asn_per_constraints_t asn_PER_memb_fiveQI_constr_2 CC_NOTUSED = { - { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_pDCPBytesDL_constr_3 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_memb_pDCPBytesDL_constr_3 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 34, -1, 0, 10000000000 } /* (0..10000000000,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_pDCPBytesUL_constr_4 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_memb_pDCPBytesUL_constr_4 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 34, -1, 0, 10000000000 } /* (0..10000000000,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_FQIPERSlicesPerPlmnListItem_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct FQIPERSlicesPerPlmnListItem, fiveQI), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_fiveQI_constr_2, &asn_PER_memb_fiveQI_constr_2, memb_fiveQI_constraint_1 }, - 0, 0, /* No default value */ - "fiveQI" - }, - { ATF_POINTER, 2, offsetof(struct FQIPERSlicesPerPlmnListItem, pDCPBytesDL), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_INTEGER, - 0, - { &asn_OER_memb_pDCPBytesDL_constr_3, &asn_PER_memb_pDCPBytesDL_constr_3, memb_pDCPBytesDL_constraint_1 }, - 0, 0, /* No default value */ - "pDCPBytesDL" - }, - { ATF_POINTER, 1, offsetof(struct FQIPERSlicesPerPlmnListItem, pDCPBytesUL), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_INTEGER, - 0, - { &asn_OER_memb_pDCPBytesUL_constr_4, &asn_PER_memb_pDCPBytesUL_constr_4, memb_pDCPBytesUL_constraint_1 }, - 0, 0, /* No default value */ - "pDCPBytesUL" - }, -}; -static const int asn_MAP_FQIPERSlicesPerPlmnListItem_oms_1[] = { 1, 2 }; -static const ber_tlv_tag_t asn_DEF_FQIPERSlicesPerPlmnListItem_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_FQIPERSlicesPerPlmnListItem_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* fiveQI */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* pDCPBytesDL */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* pDCPBytesUL */ -}; -asn_SEQUENCE_specifics_t asn_SPC_FQIPERSlicesPerPlmnListItem_specs_1 = { - sizeof(struct FQIPERSlicesPerPlmnListItem), - offsetof(struct FQIPERSlicesPerPlmnListItem, _asn_ctx), - asn_MAP_FQIPERSlicesPerPlmnListItem_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_FQIPERSlicesPerPlmnListItem_oms_1, /* Optional members */ - 2, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_FQIPERSlicesPerPlmnListItem = { - "FQIPERSlicesPerPlmnListItem", - "FQIPERSlicesPerPlmnListItem", - &asn_OP_SEQUENCE, - asn_DEF_FQIPERSlicesPerPlmnListItem_tags_1, - sizeof(asn_DEF_FQIPERSlicesPerPlmnListItem_tags_1) - /sizeof(asn_DEF_FQIPERSlicesPerPlmnListItem_tags_1[0]), /* 1 */ - asn_DEF_FQIPERSlicesPerPlmnListItem_tags_1, /* Same as above */ - sizeof(asn_DEF_FQIPERSlicesPerPlmnListItem_tags_1) - /sizeof(asn_DEF_FQIPERSlicesPerPlmnListItem_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_FQIPERSlicesPerPlmnListItem_1, - 3, /* Elements count */ - &asn_SPC_FQIPERSlicesPerPlmnListItem_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/FQIPERSlicesPerPlmnListItem.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/FQIPERSlicesPerPlmnListItem.h deleted file mode 100644 index a87a0d7..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/FQIPERSlicesPerPlmnListItem.h +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _FQIPERSlicesPerPlmnListItem_H_ -#define _FQIPERSlicesPerPlmnListItem_H_ - - -#include - -/* Including external dependencies */ -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* FQIPERSlicesPerPlmnListItem */ -typedef struct FQIPERSlicesPerPlmnListItem { - long fiveQI; - INTEGER_t *pDCPBytesDL; /* OPTIONAL */ - INTEGER_t *pDCPBytesUL; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} FQIPERSlicesPerPlmnListItem_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_FQIPERSlicesPerPlmnListItem; -extern asn_SEQUENCE_specifics_t asn_SPC_FQIPERSlicesPerPlmnListItem_specs_1; -extern asn_TYPE_member_t asn_MBR_FQIPERSlicesPerPlmnListItem_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _FQIPERSlicesPerPlmnListItem_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/FQIPERSlicesPerPlmnPerCellListItem.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/FQIPERSlicesPerPlmnPerCellListItem.c deleted file mode 100644 index d73d0db..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/FQIPERSlicesPerPlmnPerCellListItem.c +++ /dev/null @@ -1,171 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "FQIPERSlicesPerPlmnPerCellListItem.h" - -static int -memb_fiveQI_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 255)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_dl_PRBUsage_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 273)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_ul_PRBUsage_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 273)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_oer_constraints_t asn_OER_memb_fiveQI_constr_2 CC_NOTUSED = { - { 1, 1 } /* (0..255) */, - -1}; -static asn_per_constraints_t asn_PER_memb_fiveQI_constr_2 CC_NOTUSED = { - { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_dl_PRBUsage_constr_3 CC_NOTUSED = { - { 2, 1 } /* (0..273) */, - -1}; -static asn_per_constraints_t asn_PER_memb_dl_PRBUsage_constr_3 CC_NOTUSED = { - { APC_CONSTRAINED, 9, 9, 0, 273 } /* (0..273) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_ul_PRBUsage_constr_4 CC_NOTUSED = { - { 2, 1 } /* (0..273) */, - -1}; -static asn_per_constraints_t asn_PER_memb_ul_PRBUsage_constr_4 CC_NOTUSED = { - { APC_CONSTRAINED, 9, 9, 0, 273 } /* (0..273) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_FQIPERSlicesPerPlmnPerCellListItem_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct FQIPERSlicesPerPlmnPerCellListItem, fiveQI), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_fiveQI_constr_2, &asn_PER_memb_fiveQI_constr_2, memb_fiveQI_constraint_1 }, - 0, 0, /* No default value */ - "fiveQI" - }, - { ATF_POINTER, 2, offsetof(struct FQIPERSlicesPerPlmnPerCellListItem, dl_PRBUsage), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_dl_PRBUsage_constr_3, &asn_PER_memb_dl_PRBUsage_constr_3, memb_dl_PRBUsage_constraint_1 }, - 0, 0, /* No default value */ - "dl-PRBUsage" - }, - { ATF_POINTER, 1, offsetof(struct FQIPERSlicesPerPlmnPerCellListItem, ul_PRBUsage), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_ul_PRBUsage_constr_4, &asn_PER_memb_ul_PRBUsage_constr_4, memb_ul_PRBUsage_constraint_1 }, - 0, 0, /* No default value */ - "ul-PRBUsage" - }, -}; -static const int asn_MAP_FQIPERSlicesPerPlmnPerCellListItem_oms_1[] = { 1, 2 }; -static const ber_tlv_tag_t asn_DEF_FQIPERSlicesPerPlmnPerCellListItem_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_FQIPERSlicesPerPlmnPerCellListItem_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* fiveQI */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* dl-PRBUsage */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* ul-PRBUsage */ -}; -asn_SEQUENCE_specifics_t asn_SPC_FQIPERSlicesPerPlmnPerCellListItem_specs_1 = { - sizeof(struct FQIPERSlicesPerPlmnPerCellListItem), - offsetof(struct FQIPERSlicesPerPlmnPerCellListItem, _asn_ctx), - asn_MAP_FQIPERSlicesPerPlmnPerCellListItem_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_FQIPERSlicesPerPlmnPerCellListItem_oms_1, /* Optional members */ - 2, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_FQIPERSlicesPerPlmnPerCellListItem = { - "FQIPERSlicesPerPlmnPerCellListItem", - "FQIPERSlicesPerPlmnPerCellListItem", - &asn_OP_SEQUENCE, - asn_DEF_FQIPERSlicesPerPlmnPerCellListItem_tags_1, - sizeof(asn_DEF_FQIPERSlicesPerPlmnPerCellListItem_tags_1) - /sizeof(asn_DEF_FQIPERSlicesPerPlmnPerCellListItem_tags_1[0]), /* 1 */ - asn_DEF_FQIPERSlicesPerPlmnPerCellListItem_tags_1, /* Same as above */ - sizeof(asn_DEF_FQIPERSlicesPerPlmnPerCellListItem_tags_1) - /sizeof(asn_DEF_FQIPERSlicesPerPlmnPerCellListItem_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_FQIPERSlicesPerPlmnPerCellListItem_1, - 3, /* Elements count */ - &asn_SPC_FQIPERSlicesPerPlmnPerCellListItem_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/FQIPERSlicesPerPlmnPerCellListItem.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/FQIPERSlicesPerPlmnPerCellListItem.h deleted file mode 100644 index 1b22e34..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/FQIPERSlicesPerPlmnPerCellListItem.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _FQIPERSlicesPerPlmnPerCellListItem_H_ -#define _FQIPERSlicesPerPlmnPerCellListItem_H_ - - -#include - -/* Including external dependencies */ -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* FQIPERSlicesPerPlmnPerCellListItem */ -typedef struct FQIPERSlicesPerPlmnPerCellListItem { - long fiveQI; - long *dl_PRBUsage; /* OPTIONAL */ - long *ul_PRBUsage; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} FQIPERSlicesPerPlmnPerCellListItem_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_FQIPERSlicesPerPlmnPerCellListItem; -extern asn_SEQUENCE_specifics_t asn_SPC_FQIPERSlicesPerPlmnPerCellListItem_specs_1; -extern asn_TYPE_member_t asn_MBR_FQIPERSlicesPerPlmnPerCellListItem_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _FQIPERSlicesPerPlmnPerCellListItem_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/GNB-CU-CP-Name.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/GNB-CU-CP-Name.c deleted file mode 100644 index 029ca92..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/GNB-CU-CP-Name.c +++ /dev/null @@ -1,109 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "GNB-CU-CP-Name.h" - -static const int permitted_alphabet_table_1[256] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */ - 1, 0, 0, 0, 0, 0, 0, 2, 3, 4, 0, 5, 6, 7, 8, 9, /* . '() +,-./ */ -10,11,12,13,14,15,16,17,18,19,20, 0, 0,21, 0,22, /* 0123456789: = ? */ - 0,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37, /* ABCDEFGHIJKLMNO */ -38,39,40,41,42,43,44,45,46,47,48, 0, 0, 0, 0, 0, /* PQRSTUVWXYZ */ - 0,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63, /* abcdefghijklmno */ -64,65,66,67,68,69,70,71,72,73,74, 0, 0, 0, 0, 0, /* pqrstuvwxyz */ -}; -static const int permitted_alphabet_code2value_1[74] = { -32,39,40,41,43,44,45,46,47,48,49,50,51,52,53,54, -55,56,57,58,61,63,65,66,67,68,69,70,71,72,73,74, -75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90, -97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112, -113,114,115,116,117,118,119,120,121,122,}; - - -static int check_permitted_alphabet_1(const void *sptr) { - const int *table = permitted_alphabet_table_1; - /* The underlying type is PrintableString */ - const PrintableString_t *st = (const PrintableString_t *)sptr; - const uint8_t *ch = st->buf; - const uint8_t *end = ch + st->size; - - for(; ch < end; ch++) { - uint8_t cv = *ch; - if(!table[cv]) return -1; - } - return 0; -} - -int -GNB_CU_CP_Name_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const PrintableString_t *st = (const PrintableString_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - size = st->size; - - if((size >= 1 && size <= 150) - && !check_permitted_alphabet_1(st)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int asn_PER_MAP_GNB_CU_CP_Name_1_v2c(unsigned int value) { - if(value >= sizeof(permitted_alphabet_table_1)/sizeof(permitted_alphabet_table_1[0])) - return -1; - return permitted_alphabet_table_1[value] - 1; -} -static int asn_PER_MAP_GNB_CU_CP_Name_1_c2v(unsigned int code) { - if(code >= sizeof(permitted_alphabet_code2value_1)/sizeof(permitted_alphabet_code2value_1[0])) - return -1; - return permitted_alphabet_code2value_1[code]; -} -/* - * This type is implemented using PrintableString, - * so here we adjust the DEF accordingly. - */ -static asn_oer_constraints_t asn_OER_type_GNB_CU_CP_Name_constr_1 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(0..MAX)) */}; -asn_per_constraints_t asn_PER_type_GNB_CU_CP_Name_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED, 7, 7, 32, 122 } /* (32..122) */, - { APC_CONSTRAINED | APC_EXTENSIBLE, 8, 8, 1, 150 } /* (SIZE(1..150,...)) */, - asn_PER_MAP_GNB_CU_CP_Name_1_v2c, /* Value to PER code map */ - asn_PER_MAP_GNB_CU_CP_Name_1_c2v /* PER code to value map */ -}; -static const ber_tlv_tag_t asn_DEF_GNB_CU_CP_Name_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (19 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_GNB_CU_CP_Name = { - "GNB-CU-CP-Name", - "GNB-CU-CP-Name", - &asn_OP_PrintableString, - asn_DEF_GNB_CU_CP_Name_tags_1, - sizeof(asn_DEF_GNB_CU_CP_Name_tags_1) - /sizeof(asn_DEF_GNB_CU_CP_Name_tags_1[0]), /* 1 */ - asn_DEF_GNB_CU_CP_Name_tags_1, /* Same as above */ - sizeof(asn_DEF_GNB_CU_CP_Name_tags_1) - /sizeof(asn_DEF_GNB_CU_CP_Name_tags_1[0]), /* 1 */ - { &asn_OER_type_GNB_CU_CP_Name_constr_1, &asn_PER_type_GNB_CU_CP_Name_constr_1, GNB_CU_CP_Name_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/GNB-CU-CP-Name.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/GNB-CU-CP-Name.h deleted file mode 100644 index 1eb3404..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/GNB-CU-CP-Name.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _GNB_CU_CP_Name_H_ -#define _GNB_CU_CP_Name_H_ - - -#include - -/* Including external dependencies */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* GNB-CU-CP-Name */ -typedef PrintableString_t GNB_CU_CP_Name_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_GNB_CU_CP_Name_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_GNB_CU_CP_Name; -asn_struct_free_f GNB_CU_CP_Name_free; -asn_struct_print_f GNB_CU_CP_Name_print; -asn_constr_check_f GNB_CU_CP_Name_constraint; -ber_type_decoder_f GNB_CU_CP_Name_decode_ber; -der_type_encoder_f GNB_CU_CP_Name_encode_der; -xer_type_decoder_f GNB_CU_CP_Name_decode_xer; -xer_type_encoder_f GNB_CU_CP_Name_encode_xer; -oer_type_decoder_f GNB_CU_CP_Name_decode_oer; -oer_type_encoder_f GNB_CU_CP_Name_encode_oer; -per_type_decoder_f GNB_CU_CP_Name_decode_uper; -per_type_encoder_f GNB_CU_CP_Name_encode_uper; -per_type_decoder_f GNB_CU_CP_Name_decode_aper; -per_type_encoder_f GNB_CU_CP_Name_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _GNB_CU_CP_Name_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/GNB-CU-UP-ID.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/GNB-CU-UP-ID.c deleted file mode 100644 index 737a4f3..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/GNB-CU-UP-ID.c +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "GNB-CU-UP-ID.h" - -int -GNB_CU_UP_ID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const INTEGER_t *st = (const INTEGER_t *)sptr; - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if(asn_INTEGER2long(st, &value)) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value too large (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if((value >= 0 && value <= 68719476735)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using INTEGER, - * so here we adjust the DEF accordingly. - */ -static asn_oer_constraints_t asn_OER_type_GNB_CU_UP_ID_constr_1 CC_NOTUSED = { - { 8, 1 } /* (0..68719476735) */, - -1}; -asn_per_constraints_t asn_PER_type_GNB_CU_UP_ID_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED, 36, -1, 0, 68719476735 } /* (0..68719476735) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_GNB_CU_UP_ID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_GNB_CU_UP_ID = { - "GNB-CU-UP-ID", - "GNB-CU-UP-ID", - &asn_OP_INTEGER, - asn_DEF_GNB_CU_UP_ID_tags_1, - sizeof(asn_DEF_GNB_CU_UP_ID_tags_1) - /sizeof(asn_DEF_GNB_CU_UP_ID_tags_1[0]), /* 1 */ - asn_DEF_GNB_CU_UP_ID_tags_1, /* Same as above */ - sizeof(asn_DEF_GNB_CU_UP_ID_tags_1) - /sizeof(asn_DEF_GNB_CU_UP_ID_tags_1[0]), /* 1 */ - { &asn_OER_type_GNB_CU_UP_ID_constr_1, &asn_PER_type_GNB_CU_UP_ID_constr_1, GNB_CU_UP_ID_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/GNB-CU-UP-ID.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/GNB-CU-UP-ID.h deleted file mode 100644 index e6b9c43..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/GNB-CU-UP-ID.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _GNB_CU_UP_ID_H_ -#define _GNB_CU_UP_ID_H_ - - -#include - -/* Including external dependencies */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* GNB-CU-UP-ID */ -typedef INTEGER_t GNB_CU_UP_ID_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_GNB_CU_UP_ID_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_GNB_CU_UP_ID; -asn_struct_free_f GNB_CU_UP_ID_free; -asn_struct_print_f GNB_CU_UP_ID_print; -asn_constr_check_f GNB_CU_UP_ID_constraint; -ber_type_decoder_f GNB_CU_UP_ID_decode_ber; -der_type_encoder_f GNB_CU_UP_ID_encode_der; -xer_type_decoder_f GNB_CU_UP_ID_decode_xer; -xer_type_encoder_f GNB_CU_UP_ID_encode_xer; -oer_type_decoder_f GNB_CU_UP_ID_decode_oer; -oer_type_encoder_f GNB_CU_UP_ID_encode_oer; -per_type_decoder_f GNB_CU_UP_ID_decode_uper; -per_type_encoder_f GNB_CU_UP_ID_encode_uper; -per_type_decoder_f GNB_CU_UP_ID_decode_aper; -per_type_encoder_f GNB_CU_UP_ID_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _GNB_CU_UP_ID_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/GNB-CU-UP-Name.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/GNB-CU-UP-Name.c deleted file mode 100644 index b64d5b1..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/GNB-CU-UP-Name.c +++ /dev/null @@ -1,109 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "GNB-CU-UP-Name.h" - -static const int permitted_alphabet_table_1[256] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */ - 1, 0, 0, 0, 0, 0, 0, 2, 3, 4, 0, 5, 6, 7, 8, 9, /* . '() +,-./ */ -10,11,12,13,14,15,16,17,18,19,20, 0, 0,21, 0,22, /* 0123456789: = ? */ - 0,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37, /* ABCDEFGHIJKLMNO */ -38,39,40,41,42,43,44,45,46,47,48, 0, 0, 0, 0, 0, /* PQRSTUVWXYZ */ - 0,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63, /* abcdefghijklmno */ -64,65,66,67,68,69,70,71,72,73,74, 0, 0, 0, 0, 0, /* pqrstuvwxyz */ -}; -static const int permitted_alphabet_code2value_1[74] = { -32,39,40,41,43,44,45,46,47,48,49,50,51,52,53,54, -55,56,57,58,61,63,65,66,67,68,69,70,71,72,73,74, -75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90, -97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112, -113,114,115,116,117,118,119,120,121,122,}; - - -static int check_permitted_alphabet_1(const void *sptr) { - const int *table = permitted_alphabet_table_1; - /* The underlying type is PrintableString */ - const PrintableString_t *st = (const PrintableString_t *)sptr; - const uint8_t *ch = st->buf; - const uint8_t *end = ch + st->size; - - for(; ch < end; ch++) { - uint8_t cv = *ch; - if(!table[cv]) return -1; - } - return 0; -} - -int -GNB_CU_UP_Name_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const PrintableString_t *st = (const PrintableString_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - size = st->size; - - if((size >= 1 && size <= 150) - && !check_permitted_alphabet_1(st)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int asn_PER_MAP_GNB_CU_UP_Name_1_v2c(unsigned int value) { - if(value >= sizeof(permitted_alphabet_table_1)/sizeof(permitted_alphabet_table_1[0])) - return -1; - return permitted_alphabet_table_1[value] - 1; -} -static int asn_PER_MAP_GNB_CU_UP_Name_1_c2v(unsigned int code) { - if(code >= sizeof(permitted_alphabet_code2value_1)/sizeof(permitted_alphabet_code2value_1[0])) - return -1; - return permitted_alphabet_code2value_1[code]; -} -/* - * This type is implemented using PrintableString, - * so here we adjust the DEF accordingly. - */ -static asn_oer_constraints_t asn_OER_type_GNB_CU_UP_Name_constr_1 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(0..MAX)) */}; -asn_per_constraints_t asn_PER_type_GNB_CU_UP_Name_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED, 7, 7, 32, 122 } /* (32..122) */, - { APC_CONSTRAINED | APC_EXTENSIBLE, 8, 8, 1, 150 } /* (SIZE(1..150,...)) */, - asn_PER_MAP_GNB_CU_UP_Name_1_v2c, /* Value to PER code map */ - asn_PER_MAP_GNB_CU_UP_Name_1_c2v /* PER code to value map */ -}; -static const ber_tlv_tag_t asn_DEF_GNB_CU_UP_Name_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (19 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_GNB_CU_UP_Name = { - "GNB-CU-UP-Name", - "GNB-CU-UP-Name", - &asn_OP_PrintableString, - asn_DEF_GNB_CU_UP_Name_tags_1, - sizeof(asn_DEF_GNB_CU_UP_Name_tags_1) - /sizeof(asn_DEF_GNB_CU_UP_Name_tags_1[0]), /* 1 */ - asn_DEF_GNB_CU_UP_Name_tags_1, /* Same as above */ - sizeof(asn_DEF_GNB_CU_UP_Name_tags_1) - /sizeof(asn_DEF_GNB_CU_UP_Name_tags_1[0]), /* 1 */ - { &asn_OER_type_GNB_CU_UP_Name_constr_1, &asn_PER_type_GNB_CU_UP_Name_constr_1, GNB_CU_UP_Name_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/GNB-CU-UP-Name.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/GNB-CU-UP-Name.h deleted file mode 100644 index c1b9d7e..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/GNB-CU-UP-Name.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _GNB_CU_UP_Name_H_ -#define _GNB_CU_UP_Name_H_ - - -#include - -/* Including external dependencies */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* GNB-CU-UP-Name */ -typedef PrintableString_t GNB_CU_UP_Name_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_GNB_CU_UP_Name_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_GNB_CU_UP_Name; -asn_struct_free_f GNB_CU_UP_Name_free; -asn_struct_print_f GNB_CU_UP_Name_print; -asn_constr_check_f GNB_CU_UP_Name_constraint; -ber_type_decoder_f GNB_CU_UP_Name_decode_ber; -der_type_encoder_f GNB_CU_UP_Name_encode_der; -xer_type_decoder_f GNB_CU_UP_Name_decode_xer; -xer_type_encoder_f GNB_CU_UP_Name_encode_xer; -oer_type_decoder_f GNB_CU_UP_Name_decode_oer; -oer_type_encoder_f GNB_CU_UP_Name_encode_oer; -per_type_decoder_f GNB_CU_UP_Name_decode_uper; -per_type_encoder_f GNB_CU_UP_Name_encode_uper; -per_type_decoder_f GNB_CU_UP_Name_decode_aper; -per_type_encoder_f GNB_CU_UP_Name_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _GNB_CU_UP_Name_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/GNB-DU-ID.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/GNB-DU-ID.c deleted file mode 100644 index b43653e..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/GNB-DU-ID.c +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "GNB-DU-ID.h" - -int -GNB_DU_ID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const INTEGER_t *st = (const INTEGER_t *)sptr; - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if(asn_INTEGER2long(st, &value)) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value too large (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if((value >= 0 && value <= 68719476735)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using INTEGER, - * so here we adjust the DEF accordingly. - */ -static asn_oer_constraints_t asn_OER_type_GNB_DU_ID_constr_1 CC_NOTUSED = { - { 8, 1 } /* (0..68719476735) */, - -1}; -asn_per_constraints_t asn_PER_type_GNB_DU_ID_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED, 36, -1, 0, 68719476735 } /* (0..68719476735) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_GNB_DU_ID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_GNB_DU_ID = { - "GNB-DU-ID", - "GNB-DU-ID", - &asn_OP_INTEGER, - asn_DEF_GNB_DU_ID_tags_1, - sizeof(asn_DEF_GNB_DU_ID_tags_1) - /sizeof(asn_DEF_GNB_DU_ID_tags_1[0]), /* 1 */ - asn_DEF_GNB_DU_ID_tags_1, /* Same as above */ - sizeof(asn_DEF_GNB_DU_ID_tags_1) - /sizeof(asn_DEF_GNB_DU_ID_tags_1[0]), /* 1 */ - { &asn_OER_type_GNB_DU_ID_constr_1, &asn_PER_type_GNB_DU_ID_constr_1, GNB_DU_ID_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/GNB-DU-ID.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/GNB-DU-ID.h deleted file mode 100644 index 65e23da..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/GNB-DU-ID.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _GNB_DU_ID_H_ -#define _GNB_DU_ID_H_ - - -#include - -/* Including external dependencies */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* GNB-DU-ID */ -typedef INTEGER_t GNB_DU_ID_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_GNB_DU_ID_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_GNB_DU_ID; -asn_struct_free_f GNB_DU_ID_free; -asn_struct_print_f GNB_DU_ID_print; -asn_constr_check_f GNB_DU_ID_constraint; -ber_type_decoder_f GNB_DU_ID_decode_ber; -der_type_encoder_f GNB_DU_ID_encode_der; -xer_type_decoder_f GNB_DU_ID_decode_xer; -xer_type_encoder_f GNB_DU_ID_encode_xer; -oer_type_decoder_f GNB_DU_ID_decode_oer; -oer_type_encoder_f GNB_DU_ID_encode_oer; -per_type_decoder_f GNB_DU_ID_decode_uper; -per_type_encoder_f GNB_DU_ID_encode_uper; -per_type_decoder_f GNB_DU_ID_decode_aper; -per_type_encoder_f GNB_DU_ID_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _GNB_DU_ID_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/GNB-DU-Name.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/GNB-DU-Name.c deleted file mode 100644 index 8ac789d..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/GNB-DU-Name.c +++ /dev/null @@ -1,109 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "GNB-DU-Name.h" - -static const int permitted_alphabet_table_1[256] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */ - 1, 0, 0, 0, 0, 0, 0, 2, 3, 4, 0, 5, 6, 7, 8, 9, /* . '() +,-./ */ -10,11,12,13,14,15,16,17,18,19,20, 0, 0,21, 0,22, /* 0123456789: = ? */ - 0,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37, /* ABCDEFGHIJKLMNO */ -38,39,40,41,42,43,44,45,46,47,48, 0, 0, 0, 0, 0, /* PQRSTUVWXYZ */ - 0,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63, /* abcdefghijklmno */ -64,65,66,67,68,69,70,71,72,73,74, 0, 0, 0, 0, 0, /* pqrstuvwxyz */ -}; -static const int permitted_alphabet_code2value_1[74] = { -32,39,40,41,43,44,45,46,47,48,49,50,51,52,53,54, -55,56,57,58,61,63,65,66,67,68,69,70,71,72,73,74, -75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90, -97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112, -113,114,115,116,117,118,119,120,121,122,}; - - -static int check_permitted_alphabet_1(const void *sptr) { - const int *table = permitted_alphabet_table_1; - /* The underlying type is PrintableString */ - const PrintableString_t *st = (const PrintableString_t *)sptr; - const uint8_t *ch = st->buf; - const uint8_t *end = ch + st->size; - - for(; ch < end; ch++) { - uint8_t cv = *ch; - if(!table[cv]) return -1; - } - return 0; -} - -int -GNB_DU_Name_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const PrintableString_t *st = (const PrintableString_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - size = st->size; - - if((size >= 1 && size <= 150) - && !check_permitted_alphabet_1(st)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int asn_PER_MAP_GNB_DU_Name_1_v2c(unsigned int value) { - if(value >= sizeof(permitted_alphabet_table_1)/sizeof(permitted_alphabet_table_1[0])) - return -1; - return permitted_alphabet_table_1[value] - 1; -} -static int asn_PER_MAP_GNB_DU_Name_1_c2v(unsigned int code) { - if(code >= sizeof(permitted_alphabet_code2value_1)/sizeof(permitted_alphabet_code2value_1[0])) - return -1; - return permitted_alphabet_code2value_1[code]; -} -/* - * This type is implemented using PrintableString, - * so here we adjust the DEF accordingly. - */ -static asn_oer_constraints_t asn_OER_type_GNB_DU_Name_constr_1 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(0..MAX)) */}; -asn_per_constraints_t asn_PER_type_GNB_DU_Name_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED, 7, 7, 32, 122 } /* (32..122) */, - { APC_CONSTRAINED | APC_EXTENSIBLE, 8, 8, 1, 150 } /* (SIZE(1..150,...)) */, - asn_PER_MAP_GNB_DU_Name_1_v2c, /* Value to PER code map */ - asn_PER_MAP_GNB_DU_Name_1_c2v /* PER code to value map */ -}; -static const ber_tlv_tag_t asn_DEF_GNB_DU_Name_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (19 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_GNB_DU_Name = { - "GNB-DU-Name", - "GNB-DU-Name", - &asn_OP_PrintableString, - asn_DEF_GNB_DU_Name_tags_1, - sizeof(asn_DEF_GNB_DU_Name_tags_1) - /sizeof(asn_DEF_GNB_DU_Name_tags_1[0]), /* 1 */ - asn_DEF_GNB_DU_Name_tags_1, /* Same as above */ - sizeof(asn_DEF_GNB_DU_Name_tags_1) - /sizeof(asn_DEF_GNB_DU_Name_tags_1[0]), /* 1 */ - { &asn_OER_type_GNB_DU_Name_constr_1, &asn_PER_type_GNB_DU_Name_constr_1, GNB_DU_Name_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/GNB-DU-Name.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/GNB-DU-Name.h deleted file mode 100644 index e4994e6..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/GNB-DU-Name.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _GNB_DU_Name_H_ -#define _GNB_DU_Name_H_ - - -#include - -/* Including external dependencies */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* GNB-DU-Name */ -typedef PrintableString_t GNB_DU_Name_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_GNB_DU_Name_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_GNB_DU_Name; -asn_struct_free_f GNB_DU_Name_free; -asn_struct_print_f GNB_DU_Name_print; -asn_constr_check_f GNB_DU_Name_constraint; -ber_type_decoder_f GNB_DU_Name_decode_ber; -der_type_encoder_f GNB_DU_Name_encode_der; -xer_type_decoder_f GNB_DU_Name_decode_xer; -xer_type_encoder_f GNB_DU_Name_encode_xer; -oer_type_decoder_f GNB_DU_Name_decode_oer; -oer_type_encoder_f GNB_DU_Name_encode_oer; -per_type_decoder_f GNB_DU_Name_decode_uper; -per_type_encoder_f GNB_DU_Name_encode_uper; -per_type_decoder_f GNB_DU_Name_decode_aper; -per_type_encoder_f GNB_DU_Name_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _GNB_DU_Name_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/GNB-ID-Choice.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/GNB-ID-Choice.c deleted file mode 100644 index 81bc2b0..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/GNB-ID-Choice.c +++ /dev/null @@ -1,94 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "GNB-ID-Choice.h" - -static int -memb_gnb_ID_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if(st->size > 0) { - /* Size in bits */ - size = 8 * st->size - (st->bits_unused & 0x07); - } else { - size = 0; - } - - if((size >= 22 && size <= 32)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_oer_constraints_t asn_OER_memb_gnb_ID_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(22..32)) */}; -static asn_per_constraints_t asn_PER_memb_gnb_ID_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 4, 4, 22, 32 } /* (SIZE(22..32)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_type_GNB_ID_Choice_constr_1 CC_NOTUSED = { - { 0, 0 }, - -1}; -asn_per_constraints_t asn_PER_type_GNB_ID_Choice_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 0, 0 } /* (0..0,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_GNB_ID_Choice_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct GNB_ID_Choice, choice.gnb_ID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_BIT_STRING, - 0, - { &asn_OER_memb_gnb_ID_constr_2, &asn_PER_memb_gnb_ID_constr_2, memb_gnb_ID_constraint_1 }, - 0, 0, /* No default value */ - "gnb-ID" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_GNB_ID_Choice_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* gnb-ID */ -}; -asn_CHOICE_specifics_t asn_SPC_GNB_ID_Choice_specs_1 = { - sizeof(struct GNB_ID_Choice), - offsetof(struct GNB_ID_Choice, _asn_ctx), - offsetof(struct GNB_ID_Choice, present), - sizeof(((struct GNB_ID_Choice *)0)->present), - asn_MAP_GNB_ID_Choice_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, - 1 /* Extensions start */ -}; -asn_TYPE_descriptor_t asn_DEF_GNB_ID_Choice = { - "GNB-ID-Choice", - "GNB-ID-Choice", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { &asn_OER_type_GNB_ID_Choice_constr_1, &asn_PER_type_GNB_ID_Choice_constr_1, CHOICE_constraint }, - asn_MBR_GNB_ID_Choice_1, - 1, /* Elements count */ - &asn_SPC_GNB_ID_Choice_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/GNB-ID-Choice.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/GNB-ID-Choice.h deleted file mode 100644 index cf5438c..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/GNB-ID-Choice.h +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _GNB_ID_Choice_H_ -#define _GNB_ID_Choice_H_ - - -#include - -/* Including external dependencies */ -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum GNB_ID_Choice_PR { - GNB_ID_Choice_PR_NOTHING, /* No components present */ - GNB_ID_Choice_PR_gnb_ID - /* Extensions may appear below */ - -} GNB_ID_Choice_PR; - -/* GNB-ID-Choice */ -typedef struct GNB_ID_Choice { - GNB_ID_Choice_PR present; - union GNB_ID_Choice_u { - BIT_STRING_t gnb_ID; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} GNB_ID_Choice_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_GNB_ID_Choice; -extern asn_CHOICE_specifics_t asn_SPC_GNB_ID_Choice_specs_1; -extern asn_TYPE_member_t asn_MBR_GNB_ID_Choice_1[1]; -extern asn_per_constraints_t asn_PER_type_GNB_ID_Choice_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _GNB_ID_Choice_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/GNB-Name.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/GNB-Name.c deleted file mode 100644 index aeee9d8..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/GNB-Name.c +++ /dev/null @@ -1,75 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "GNB-Name.h" - -static asn_oer_constraints_t asn_OER_type_GNB_Name_constr_1 CC_NOTUSED = { - { 0, 0 }, - -1}; -asn_per_constraints_t asn_PER_type_GNB_Name_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 2 } /* (0..2,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_GNB_Name_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct GNB_Name, choice.gNB_DU_Name), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GNB_DU_Name, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "gNB-DU-Name" - }, - { ATF_NOFLAGS, 0, offsetof(struct GNB_Name, choice.gNB_CU_CP_Name), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GNB_CU_CP_Name, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "gNB-CU-CP-Name" - }, - { ATF_NOFLAGS, 0, offsetof(struct GNB_Name, choice.gNB_CU_UP_Name), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GNB_CU_UP_Name, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "gNB-CU-UP-Name" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_GNB_Name_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* gNB-DU-Name */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* gNB-CU-CP-Name */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* gNB-CU-UP-Name */ -}; -asn_CHOICE_specifics_t asn_SPC_GNB_Name_specs_1 = { - sizeof(struct GNB_Name), - offsetof(struct GNB_Name, _asn_ctx), - offsetof(struct GNB_Name, present), - sizeof(((struct GNB_Name *)0)->present), - asn_MAP_GNB_Name_tag2el_1, - 3, /* Count of tags in the map */ - 0, 0, - 3 /* Extensions start */ -}; -asn_TYPE_descriptor_t asn_DEF_GNB_Name = { - "GNB-Name", - "GNB-Name", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { &asn_OER_type_GNB_Name_constr_1, &asn_PER_type_GNB_Name_constr_1, CHOICE_constraint }, - asn_MBR_GNB_Name_1, - 3, /* Elements count */ - &asn_SPC_GNB_Name_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/GNB-Name.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/GNB-Name.h deleted file mode 100644 index 3c69172..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/GNB-Name.h +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _GNB_Name_H_ -#define _GNB_Name_H_ - - -#include - -/* Including external dependencies */ -#include "GNB-DU-Name.h" -#include "GNB-CU-CP-Name.h" -#include "GNB-CU-UP-Name.h" -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum GNB_Name_PR { - GNB_Name_PR_NOTHING, /* No components present */ - GNB_Name_PR_gNB_DU_Name, - GNB_Name_PR_gNB_CU_CP_Name, - GNB_Name_PR_gNB_CU_UP_Name - /* Extensions may appear below */ - -} GNB_Name_PR; - -/* GNB-Name */ -typedef struct GNB_Name { - GNB_Name_PR present; - union GNB_Name_u { - GNB_DU_Name_t gNB_DU_Name; - GNB_CU_CP_Name_t gNB_CU_CP_Name; - GNB_CU_UP_Name_t gNB_CU_UP_Name; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} GNB_Name_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_GNB_Name; -extern asn_CHOICE_specifics_t asn_SPC_GNB_Name_specs_1; -extern asn_TYPE_member_t asn_MBR_GNB_Name_1[3]; -extern asn_per_constraints_t asn_PER_type_GNB_Name_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _GNB_Name_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/GlobalE2node-ID.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/GlobalE2node-ID.c deleted file mode 100644 index 0b194e6..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/GlobalE2node-ID.c +++ /dev/null @@ -1,86 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "GlobalE2node-ID.h" - -#include "GlobalE2node-gNB-ID.h" -#include "GlobalE2node-en-gNB-ID.h" -#include "GlobalE2node-ng-eNB-ID.h" -#include "GlobalE2node-eNB-ID.h" -static asn_per_constraints_t asn_PER_type_GlobalE2node_ID_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 3 } /* (0..3,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_GlobalE2node_ID_1[] = { - { ATF_POINTER, 0, offsetof(struct GlobalE2node_ID, choice.gNB), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GlobalE2node_gNB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "gNB" - }, - { ATF_POINTER, 0, offsetof(struct GlobalE2node_ID, choice.en_gNB), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GlobalE2node_en_gNB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "en-gNB" - }, - { ATF_POINTER, 0, offsetof(struct GlobalE2node_ID, choice.ng_eNB), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GlobalE2node_ng_eNB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ng-eNB" - }, - { ATF_POINTER, 0, offsetof(struct GlobalE2node_ID, choice.eNB), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GlobalE2node_eNB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "eNB" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_GlobalE2node_ID_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* gNB */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* en-gNB */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* ng-eNB */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* eNB */ -}; -static asn_CHOICE_specifics_t asn_SPC_GlobalE2node_ID_specs_1 = { - sizeof(struct GlobalE2node_ID), - offsetof(struct GlobalE2node_ID, _asn_ctx), - offsetof(struct GlobalE2node_ID, present), - sizeof(((struct GlobalE2node_ID *)0)->present), - asn_MAP_GlobalE2node_ID_tag2el_1, - 4, /* Count of tags in the map */ - 0, 0, - 4 /* Extensions start */ -}; -asn_TYPE_descriptor_t asn_DEF_GlobalE2node_ID = { - "GlobalE2node-ID", - "GlobalE2node-ID", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, &asn_PER_type_GlobalE2node_ID_constr_1, CHOICE_constraint }, - asn_MBR_GlobalE2node_ID_1, - 4, /* Elements count */ - &asn_SPC_GlobalE2node_ID_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/GlobalE2node-ID.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/GlobalE2node-ID.h deleted file mode 100644 index 339797e..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/GlobalE2node-ID.h +++ /dev/null @@ -1,64 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _GlobalE2node_ID_H_ -#define _GlobalE2node_ID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "constr_CHOICE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum GlobalE2node_ID_PR { - GlobalE2node_ID_PR_NOTHING, /* No components present */ - GlobalE2node_ID_PR_gNB, - GlobalE2node_ID_PR_en_gNB, - GlobalE2node_ID_PR_ng_eNB, - GlobalE2node_ID_PR_eNB - /* Extensions may appear below */ - -} GlobalE2node_ID_PR; - -/* Forward declarations */ -struct GlobalE2node_gNB_ID; -struct GlobalE2node_en_gNB_ID; -struct GlobalE2node_ng_eNB_ID; -struct GlobalE2node_eNB_ID; - -/* GlobalE2node-ID */ -typedef struct GlobalE2node_ID { - GlobalE2node_ID_PR present; - union GlobalE2node_ID_u { - struct GlobalE2node_gNB_ID *gNB; - struct GlobalE2node_en_gNB_ID *en_gNB; - struct GlobalE2node_ng_eNB_ID *ng_eNB; - struct GlobalE2node_eNB_ID *eNB; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} GlobalE2node_ID_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_GlobalE2node_ID; - -#ifdef __cplusplus -} -#endif - -#endif /* _GlobalE2node_ID_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/GlobalE2node-eNB-ID.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/GlobalE2node-eNB-ID.c deleted file mode 100644 index f31a018..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/GlobalE2node-eNB-ID.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "GlobalE2node-eNB-ID.h" - -asn_TYPE_member_t asn_MBR_GlobalE2node_eNB_ID_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct GlobalE2node_eNB_ID, global_eNB_ID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GlobalENB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "global-eNB-ID" - }, -}; -static const ber_tlv_tag_t asn_DEF_GlobalE2node_eNB_ID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_GlobalE2node_eNB_ID_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* global-eNB-ID */ -}; -asn_SEQUENCE_specifics_t asn_SPC_GlobalE2node_eNB_ID_specs_1 = { - sizeof(struct GlobalE2node_eNB_ID), - offsetof(struct GlobalE2node_eNB_ID, _asn_ctx), - asn_MAP_GlobalE2node_eNB_ID_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_GlobalE2node_eNB_ID = { - "GlobalE2node-eNB-ID", - "GlobalE2node-eNB-ID", - &asn_OP_SEQUENCE, - asn_DEF_GlobalE2node_eNB_ID_tags_1, - sizeof(asn_DEF_GlobalE2node_eNB_ID_tags_1) - /sizeof(asn_DEF_GlobalE2node_eNB_ID_tags_1[0]), /* 1 */ - asn_DEF_GlobalE2node_eNB_ID_tags_1, /* Same as above */ - sizeof(asn_DEF_GlobalE2node_eNB_ID_tags_1) - /sizeof(asn_DEF_GlobalE2node_eNB_ID_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_GlobalE2node_eNB_ID_1, - 1, /* Elements count */ - &asn_SPC_GlobalE2node_eNB_ID_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/GlobalE2node-eNB-ID.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/GlobalE2node-eNB-ID.h deleted file mode 100644 index 6047414..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/GlobalE2node-eNB-ID.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _GlobalE2node_eNB_ID_H_ -#define _GlobalE2node_eNB_ID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "GlobalENB-ID.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* GlobalE2node-eNB-ID */ -typedef struct GlobalE2node_eNB_ID { - GlobalENB_ID_t global_eNB_ID; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} GlobalE2node_eNB_ID_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_GlobalE2node_eNB_ID; -extern asn_SEQUENCE_specifics_t asn_SPC_GlobalE2node_eNB_ID_specs_1; -extern asn_TYPE_member_t asn_MBR_GlobalE2node_eNB_ID_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _GlobalE2node_eNB_ID_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/GlobalE2node-en-gNB-ID.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/GlobalE2node-en-gNB-ID.c deleted file mode 100644 index 2728634..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/GlobalE2node-en-gNB-ID.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "GlobalE2node-en-gNB-ID.h" - -asn_TYPE_member_t asn_MBR_GlobalE2node_en_gNB_ID_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct GlobalE2node_en_gNB_ID, global_gNB_ID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GlobalenGNB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "global-gNB-ID" - }, -}; -static const ber_tlv_tag_t asn_DEF_GlobalE2node_en_gNB_ID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_GlobalE2node_en_gNB_ID_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* global-gNB-ID */ -}; -asn_SEQUENCE_specifics_t asn_SPC_GlobalE2node_en_gNB_ID_specs_1 = { - sizeof(struct GlobalE2node_en_gNB_ID), - offsetof(struct GlobalE2node_en_gNB_ID, _asn_ctx), - asn_MAP_GlobalE2node_en_gNB_ID_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_GlobalE2node_en_gNB_ID = { - "GlobalE2node-en-gNB-ID", - "GlobalE2node-en-gNB-ID", - &asn_OP_SEQUENCE, - asn_DEF_GlobalE2node_en_gNB_ID_tags_1, - sizeof(asn_DEF_GlobalE2node_en_gNB_ID_tags_1) - /sizeof(asn_DEF_GlobalE2node_en_gNB_ID_tags_1[0]), /* 1 */ - asn_DEF_GlobalE2node_en_gNB_ID_tags_1, /* Same as above */ - sizeof(asn_DEF_GlobalE2node_en_gNB_ID_tags_1) - /sizeof(asn_DEF_GlobalE2node_en_gNB_ID_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_GlobalE2node_en_gNB_ID_1, - 1, /* Elements count */ - &asn_SPC_GlobalE2node_en_gNB_ID_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/GlobalE2node-en-gNB-ID.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/GlobalE2node-en-gNB-ID.h deleted file mode 100644 index 0bae91d..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/GlobalE2node-en-gNB-ID.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _GlobalE2node_en_gNB_ID_H_ -#define _GlobalE2node_en_gNB_ID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "GlobalenGNB-ID.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* GlobalE2node-en-gNB-ID */ -typedef struct GlobalE2node_en_gNB_ID { - GlobalenGNB_ID_t global_gNB_ID; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} GlobalE2node_en_gNB_ID_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_GlobalE2node_en_gNB_ID; -extern asn_SEQUENCE_specifics_t asn_SPC_GlobalE2node_en_gNB_ID_specs_1; -extern asn_TYPE_member_t asn_MBR_GlobalE2node_en_gNB_ID_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _GlobalE2node_en_gNB_ID_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/GlobalE2node-gNB-ID.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/GlobalE2node-gNB-ID.c deleted file mode 100644 index 25f0346..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/GlobalE2node-gNB-ID.c +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "GlobalE2node-gNB-ID.h" - -asn_TYPE_member_t asn_MBR_GlobalE2node_gNB_ID_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct GlobalE2node_gNB_ID, global_gNB_ID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GlobalgNB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "global-gNB-ID" - }, - { ATF_POINTER, 2, offsetof(struct GlobalE2node_gNB_ID, gNB_CU_UP_ID), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GNB_CU_UP_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "gNB-CU-UP-ID" - }, - { ATF_POINTER, 1, offsetof(struct GlobalE2node_gNB_ID, gNB_DU_ID), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GNB_DU_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "gNB-DU-ID" - }, -}; -static const int asn_MAP_GlobalE2node_gNB_ID_oms_1[] = { 1, 2 }; -static const ber_tlv_tag_t asn_DEF_GlobalE2node_gNB_ID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_GlobalE2node_gNB_ID_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* global-gNB-ID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* gNB-CU-UP-ID */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* gNB-DU-ID */ -}; -asn_SEQUENCE_specifics_t asn_SPC_GlobalE2node_gNB_ID_specs_1 = { - sizeof(struct GlobalE2node_gNB_ID), - offsetof(struct GlobalE2node_gNB_ID, _asn_ctx), - asn_MAP_GlobalE2node_gNB_ID_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_GlobalE2node_gNB_ID_oms_1, /* Optional members */ - 2, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_GlobalE2node_gNB_ID = { - "GlobalE2node-gNB-ID", - "GlobalE2node-gNB-ID", - &asn_OP_SEQUENCE, - asn_DEF_GlobalE2node_gNB_ID_tags_1, - sizeof(asn_DEF_GlobalE2node_gNB_ID_tags_1) - /sizeof(asn_DEF_GlobalE2node_gNB_ID_tags_1[0]), /* 1 */ - asn_DEF_GlobalE2node_gNB_ID_tags_1, /* Same as above */ - sizeof(asn_DEF_GlobalE2node_gNB_ID_tags_1) - /sizeof(asn_DEF_GlobalE2node_gNB_ID_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_GlobalE2node_gNB_ID_1, - 3, /* Elements count */ - &asn_SPC_GlobalE2node_gNB_ID_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/GlobalE2node-gNB-ID.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/GlobalE2node-gNB-ID.h deleted file mode 100644 index 2f36099..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/GlobalE2node-gNB-ID.h +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _GlobalE2node_gNB_ID_H_ -#define _GlobalE2node_gNB_ID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "GlobalgNB-ID.h" -#include "GNB-CU-UP-ID.h" -#include "GNB-DU-ID.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* GlobalE2node-gNB-ID */ -typedef struct GlobalE2node_gNB_ID { - GlobalgNB_ID_t global_gNB_ID; - GNB_CU_UP_ID_t *gNB_CU_UP_ID; /* OPTIONAL */ - GNB_DU_ID_t *gNB_DU_ID; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} GlobalE2node_gNB_ID_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_GlobalE2node_gNB_ID; -extern asn_SEQUENCE_specifics_t asn_SPC_GlobalE2node_gNB_ID_specs_1; -extern asn_TYPE_member_t asn_MBR_GlobalE2node_gNB_ID_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _GlobalE2node_gNB_ID_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/GlobalE2node-ng-eNB-ID.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/GlobalE2node-ng-eNB-ID.c deleted file mode 100644 index 91e427b..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/GlobalE2node-ng-eNB-ID.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "GlobalE2node-ng-eNB-ID.h" - -asn_TYPE_member_t asn_MBR_GlobalE2node_ng_eNB_ID_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct GlobalE2node_ng_eNB_ID, global_ng_eNB_ID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GlobalngeNB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "global-ng-eNB-ID" - }, -}; -static const ber_tlv_tag_t asn_DEF_GlobalE2node_ng_eNB_ID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_GlobalE2node_ng_eNB_ID_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* global-ng-eNB-ID */ -}; -asn_SEQUENCE_specifics_t asn_SPC_GlobalE2node_ng_eNB_ID_specs_1 = { - sizeof(struct GlobalE2node_ng_eNB_ID), - offsetof(struct GlobalE2node_ng_eNB_ID, _asn_ctx), - asn_MAP_GlobalE2node_ng_eNB_ID_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_GlobalE2node_ng_eNB_ID = { - "GlobalE2node-ng-eNB-ID", - "GlobalE2node-ng-eNB-ID", - &asn_OP_SEQUENCE, - asn_DEF_GlobalE2node_ng_eNB_ID_tags_1, - sizeof(asn_DEF_GlobalE2node_ng_eNB_ID_tags_1) - /sizeof(asn_DEF_GlobalE2node_ng_eNB_ID_tags_1[0]), /* 1 */ - asn_DEF_GlobalE2node_ng_eNB_ID_tags_1, /* Same as above */ - sizeof(asn_DEF_GlobalE2node_ng_eNB_ID_tags_1) - /sizeof(asn_DEF_GlobalE2node_ng_eNB_ID_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_GlobalE2node_ng_eNB_ID_1, - 1, /* Elements count */ - &asn_SPC_GlobalE2node_ng_eNB_ID_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/GlobalE2node-ng-eNB-ID.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/GlobalE2node-ng-eNB-ID.h deleted file mode 100644 index d6767bf..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/GlobalE2node-ng-eNB-ID.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _GlobalE2node_ng_eNB_ID_H_ -#define _GlobalE2node_ng_eNB_ID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "GlobalngeNB-ID.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* GlobalE2node-ng-eNB-ID */ -typedef struct GlobalE2node_ng_eNB_ID { - GlobalngeNB_ID_t global_ng_eNB_ID; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} GlobalE2node_ng_eNB_ID_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_GlobalE2node_ng_eNB_ID; -extern asn_SEQUENCE_specifics_t asn_SPC_GlobalE2node_ng_eNB_ID_specs_1; -extern asn_TYPE_member_t asn_MBR_GlobalE2node_ng_eNB_ID_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _GlobalE2node_ng_eNB_ID_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/GlobalENB-ID.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/GlobalENB-ID.c deleted file mode 100644 index 58f3724..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/GlobalENB-ID.c +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "GlobalENB-ID.h" - -asn_TYPE_member_t asn_MBR_GlobalENB_ID_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct GlobalENB_ID, pLMN_Identity), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_PLMN_Identity, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "pLMN-Identity" - }, - { ATF_NOFLAGS, 0, offsetof(struct GlobalENB_ID, eNB_ID), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_ENB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "eNB-ID" - }, -}; -static const ber_tlv_tag_t asn_DEF_GlobalENB_ID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_GlobalENB_ID_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pLMN-Identity */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* eNB-ID */ -}; -asn_SEQUENCE_specifics_t asn_SPC_GlobalENB_ID_specs_1 = { - sizeof(struct GlobalENB_ID), - offsetof(struct GlobalENB_ID, _asn_ctx), - asn_MAP_GlobalENB_ID_tag2el_1, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 2, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_GlobalENB_ID = { - "GlobalENB-ID", - "GlobalENB-ID", - &asn_OP_SEQUENCE, - asn_DEF_GlobalENB_ID_tags_1, - sizeof(asn_DEF_GlobalENB_ID_tags_1) - /sizeof(asn_DEF_GlobalENB_ID_tags_1[0]), /* 1 */ - asn_DEF_GlobalENB_ID_tags_1, /* Same as above */ - sizeof(asn_DEF_GlobalENB_ID_tags_1) - /sizeof(asn_DEF_GlobalENB_ID_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_GlobalENB_ID_1, - 2, /* Elements count */ - &asn_SPC_GlobalENB_ID_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/GlobalENB-ID.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/GlobalENB-ID.h deleted file mode 100644 index bd653ae..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/GlobalENB-ID.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _GlobalENB_ID_H_ -#define _GlobalENB_ID_H_ - - -#include - -/* Including external dependencies */ -#include "PLMN-Identity.h" -#include "ENB-ID.h" -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* GlobalENB-ID */ -typedef struct GlobalENB_ID { - PLMN_Identity_t pLMN_Identity; - ENB_ID_t eNB_ID; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} GlobalENB_ID_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_GlobalENB_ID; -extern asn_SEQUENCE_specifics_t asn_SPC_GlobalENB_ID_specs_1; -extern asn_TYPE_member_t asn_MBR_GlobalENB_ID_1[2]; - -#ifdef __cplusplus -} -#endif - -#endif /* _GlobalENB_ID_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/GlobalKPMnode-ID.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/GlobalKPMnode-ID.c deleted file mode 100644 index 5202400..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/GlobalKPMnode-ID.c +++ /dev/null @@ -1,85 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "GlobalKPMnode-ID.h" - -static asn_oer_constraints_t asn_OER_type_GlobalKPMnode_ID_constr_1 CC_NOTUSED = { - { 0, 0 }, - -1}; -asn_per_constraints_t asn_PER_type_GlobalKPMnode_ID_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 3 } /* (0..3,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_GlobalKPMnode_ID_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct GlobalKPMnode_ID, choice.gNB), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GlobalKPMnode_gNB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "gNB" - }, - { ATF_NOFLAGS, 0, offsetof(struct GlobalKPMnode_ID, choice.en_gNB), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GlobalKPMnode_en_gNB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "en-gNB" - }, - { ATF_NOFLAGS, 0, offsetof(struct GlobalKPMnode_ID, choice.ng_eNB), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GlobalKPMnode_ng_eNB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ng-eNB" - }, - { ATF_NOFLAGS, 0, offsetof(struct GlobalKPMnode_ID, choice.eNB), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GlobalKPMnode_eNB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "eNB" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_GlobalKPMnode_ID_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* gNB */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* en-gNB */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* ng-eNB */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* eNB */ -}; -asn_CHOICE_specifics_t asn_SPC_GlobalKPMnode_ID_specs_1 = { - sizeof(struct GlobalKPMnode_ID), - offsetof(struct GlobalKPMnode_ID, _asn_ctx), - offsetof(struct GlobalKPMnode_ID, present), - sizeof(((struct GlobalKPMnode_ID *)0)->present), - asn_MAP_GlobalKPMnode_ID_tag2el_1, - 4, /* Count of tags in the map */ - 0, 0, - 4 /* Extensions start */ -}; -asn_TYPE_descriptor_t asn_DEF_GlobalKPMnode_ID = { - "GlobalKPMnode-ID", - "GlobalKPMnode-ID", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { &asn_OER_type_GlobalKPMnode_ID_constr_1, &asn_PER_type_GlobalKPMnode_ID_constr_1, CHOICE_constraint }, - asn_MBR_GlobalKPMnode_ID_1, - 4, /* Elements count */ - &asn_SPC_GlobalKPMnode_ID_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/GlobalKPMnode-ID.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/GlobalKPMnode-ID.h deleted file mode 100644 index a93e881..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/GlobalKPMnode-ID.h +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _GlobalKPMnode_ID_H_ -#define _GlobalKPMnode_ID_H_ - - -#include - -/* Including external dependencies */ -#include "GlobalKPMnode-gNB-ID.h" -#include "GlobalKPMnode-en-gNB-ID.h" -#include "GlobalKPMnode-ng-eNB-ID.h" -#include "GlobalKPMnode-eNB-ID.h" -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum GlobalKPMnode_ID_PR { - GlobalKPMnode_ID_PR_NOTHING, /* No components present */ - GlobalKPMnode_ID_PR_gNB, - GlobalKPMnode_ID_PR_en_gNB, - GlobalKPMnode_ID_PR_ng_eNB, - GlobalKPMnode_ID_PR_eNB - /* Extensions may appear below */ - -} GlobalKPMnode_ID_PR; - -/* GlobalKPMnode-ID */ -typedef struct GlobalKPMnode_ID { - GlobalKPMnode_ID_PR present; - union GlobalKPMnode_ID_u { - GlobalKPMnode_gNB_ID_t gNB; - GlobalKPMnode_en_gNB_ID_t en_gNB; - GlobalKPMnode_ng_eNB_ID_t ng_eNB; - GlobalKPMnode_eNB_ID_t eNB; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} GlobalKPMnode_ID_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_GlobalKPMnode_ID; -extern asn_CHOICE_specifics_t asn_SPC_GlobalKPMnode_ID_specs_1; -extern asn_TYPE_member_t asn_MBR_GlobalKPMnode_ID_1[4]; -extern asn_per_constraints_t asn_PER_type_GlobalKPMnode_ID_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _GlobalKPMnode_ID_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/GlobalKPMnode-eNB-ID.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/GlobalKPMnode-eNB-ID.c deleted file mode 100644 index e4039b9..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/GlobalKPMnode-eNB-ID.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "GlobalKPMnode-eNB-ID.h" - -asn_TYPE_member_t asn_MBR_GlobalKPMnode_eNB_ID_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct GlobalKPMnode_eNB_ID, global_eNB_ID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GlobalENB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "global-eNB-ID" - }, -}; -static const ber_tlv_tag_t asn_DEF_GlobalKPMnode_eNB_ID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_GlobalKPMnode_eNB_ID_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* global-eNB-ID */ -}; -asn_SEQUENCE_specifics_t asn_SPC_GlobalKPMnode_eNB_ID_specs_1 = { - sizeof(struct GlobalKPMnode_eNB_ID), - offsetof(struct GlobalKPMnode_eNB_ID, _asn_ctx), - asn_MAP_GlobalKPMnode_eNB_ID_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_GlobalKPMnode_eNB_ID = { - "GlobalKPMnode-eNB-ID", - "GlobalKPMnode-eNB-ID", - &asn_OP_SEQUENCE, - asn_DEF_GlobalKPMnode_eNB_ID_tags_1, - sizeof(asn_DEF_GlobalKPMnode_eNB_ID_tags_1) - /sizeof(asn_DEF_GlobalKPMnode_eNB_ID_tags_1[0]), /* 1 */ - asn_DEF_GlobalKPMnode_eNB_ID_tags_1, /* Same as above */ - sizeof(asn_DEF_GlobalKPMnode_eNB_ID_tags_1) - /sizeof(asn_DEF_GlobalKPMnode_eNB_ID_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_GlobalKPMnode_eNB_ID_1, - 1, /* Elements count */ - &asn_SPC_GlobalKPMnode_eNB_ID_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/GlobalKPMnode-eNB-ID.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/GlobalKPMnode-eNB-ID.h deleted file mode 100644 index 9941095..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/GlobalKPMnode-eNB-ID.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _GlobalKPMnode_eNB_ID_H_ -#define _GlobalKPMnode_eNB_ID_H_ - - -#include - -/* Including external dependencies */ -#include "GlobalENB-ID.h" -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* GlobalKPMnode-eNB-ID */ -typedef struct GlobalKPMnode_eNB_ID { - GlobalENB_ID_t global_eNB_ID; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} GlobalKPMnode_eNB_ID_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_GlobalKPMnode_eNB_ID; -extern asn_SEQUENCE_specifics_t asn_SPC_GlobalKPMnode_eNB_ID_specs_1; -extern asn_TYPE_member_t asn_MBR_GlobalKPMnode_eNB_ID_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _GlobalKPMnode_eNB_ID_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/GlobalKPMnode-en-gNB-ID.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/GlobalKPMnode-en-gNB-ID.c deleted file mode 100644 index 68e34d7..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/GlobalKPMnode-en-gNB-ID.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "GlobalKPMnode-en-gNB-ID.h" - -asn_TYPE_member_t asn_MBR_GlobalKPMnode_en_gNB_ID_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct GlobalKPMnode_en_gNB_ID, global_gNB_ID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GlobalenGNB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "global-gNB-ID" - }, -}; -static const ber_tlv_tag_t asn_DEF_GlobalKPMnode_en_gNB_ID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_GlobalKPMnode_en_gNB_ID_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* global-gNB-ID */ -}; -asn_SEQUENCE_specifics_t asn_SPC_GlobalKPMnode_en_gNB_ID_specs_1 = { - sizeof(struct GlobalKPMnode_en_gNB_ID), - offsetof(struct GlobalKPMnode_en_gNB_ID, _asn_ctx), - asn_MAP_GlobalKPMnode_en_gNB_ID_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_GlobalKPMnode_en_gNB_ID = { - "GlobalKPMnode-en-gNB-ID", - "GlobalKPMnode-en-gNB-ID", - &asn_OP_SEQUENCE, - asn_DEF_GlobalKPMnode_en_gNB_ID_tags_1, - sizeof(asn_DEF_GlobalKPMnode_en_gNB_ID_tags_1) - /sizeof(asn_DEF_GlobalKPMnode_en_gNB_ID_tags_1[0]), /* 1 */ - asn_DEF_GlobalKPMnode_en_gNB_ID_tags_1, /* Same as above */ - sizeof(asn_DEF_GlobalKPMnode_en_gNB_ID_tags_1) - /sizeof(asn_DEF_GlobalKPMnode_en_gNB_ID_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_GlobalKPMnode_en_gNB_ID_1, - 1, /* Elements count */ - &asn_SPC_GlobalKPMnode_en_gNB_ID_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/GlobalKPMnode-en-gNB-ID.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/GlobalKPMnode-en-gNB-ID.h deleted file mode 100644 index 7994b62..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/GlobalKPMnode-en-gNB-ID.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _GlobalKPMnode_en_gNB_ID_H_ -#define _GlobalKPMnode_en_gNB_ID_H_ - - -#include - -/* Including external dependencies */ -#include "GlobalenGNB-ID.h" -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* GlobalKPMnode-en-gNB-ID */ -typedef struct GlobalKPMnode_en_gNB_ID { - GlobalenGNB_ID_t global_gNB_ID; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} GlobalKPMnode_en_gNB_ID_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_GlobalKPMnode_en_gNB_ID; -extern asn_SEQUENCE_specifics_t asn_SPC_GlobalKPMnode_en_gNB_ID_specs_1; -extern asn_TYPE_member_t asn_MBR_GlobalKPMnode_en_gNB_ID_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _GlobalKPMnode_en_gNB_ID_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/GlobalKPMnode-gNB-ID.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/GlobalKPMnode-gNB-ID.c deleted file mode 100644 index 49e21ba..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/GlobalKPMnode-gNB-ID.c +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "GlobalKPMnode-gNB-ID.h" - -asn_TYPE_member_t asn_MBR_GlobalKPMnode_gNB_ID_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct GlobalKPMnode_gNB_ID, global_gNB_ID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GlobalgNB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "global-gNB-ID" - }, - { ATF_POINTER, 2, offsetof(struct GlobalKPMnode_gNB_ID, gNB_CU_UP_ID), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GNB_CU_UP_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "gNB-CU-UP-ID" - }, - { ATF_POINTER, 1, offsetof(struct GlobalKPMnode_gNB_ID, gNB_DU_ID), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GNB_DU_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "gNB-DU-ID" - }, -}; -static const int asn_MAP_GlobalKPMnode_gNB_ID_oms_1[] = { 1, 2 }; -static const ber_tlv_tag_t asn_DEF_GlobalKPMnode_gNB_ID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_GlobalKPMnode_gNB_ID_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* global-gNB-ID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* gNB-CU-UP-ID */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* gNB-DU-ID */ -}; -asn_SEQUENCE_specifics_t asn_SPC_GlobalKPMnode_gNB_ID_specs_1 = { - sizeof(struct GlobalKPMnode_gNB_ID), - offsetof(struct GlobalKPMnode_gNB_ID, _asn_ctx), - asn_MAP_GlobalKPMnode_gNB_ID_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_GlobalKPMnode_gNB_ID_oms_1, /* Optional members */ - 2, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_GlobalKPMnode_gNB_ID = { - "GlobalKPMnode-gNB-ID", - "GlobalKPMnode-gNB-ID", - &asn_OP_SEQUENCE, - asn_DEF_GlobalKPMnode_gNB_ID_tags_1, - sizeof(asn_DEF_GlobalKPMnode_gNB_ID_tags_1) - /sizeof(asn_DEF_GlobalKPMnode_gNB_ID_tags_1[0]), /* 1 */ - asn_DEF_GlobalKPMnode_gNB_ID_tags_1, /* Same as above */ - sizeof(asn_DEF_GlobalKPMnode_gNB_ID_tags_1) - /sizeof(asn_DEF_GlobalKPMnode_gNB_ID_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_GlobalKPMnode_gNB_ID_1, - 3, /* Elements count */ - &asn_SPC_GlobalKPMnode_gNB_ID_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/GlobalKPMnode-gNB-ID.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/GlobalKPMnode-gNB-ID.h deleted file mode 100644 index facef92..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/GlobalKPMnode-gNB-ID.h +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _GlobalKPMnode_gNB_ID_H_ -#define _GlobalKPMnode_gNB_ID_H_ - - -#include - -/* Including external dependencies */ -#include "GlobalgNB-ID.h" -#include "GNB-CU-UP-ID.h" -#include "GNB-DU-ID.h" -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* GlobalKPMnode-gNB-ID */ -typedef struct GlobalKPMnode_gNB_ID { - GlobalgNB_ID_t global_gNB_ID; - GNB_CU_UP_ID_t *gNB_CU_UP_ID; /* OPTIONAL */ - GNB_DU_ID_t *gNB_DU_ID; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} GlobalKPMnode_gNB_ID_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_GlobalKPMnode_gNB_ID; -extern asn_SEQUENCE_specifics_t asn_SPC_GlobalKPMnode_gNB_ID_specs_1; -extern asn_TYPE_member_t asn_MBR_GlobalKPMnode_gNB_ID_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _GlobalKPMnode_gNB_ID_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/GlobalKPMnode-ng-eNB-ID.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/GlobalKPMnode-ng-eNB-ID.c deleted file mode 100644 index 299fb25..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/GlobalKPMnode-ng-eNB-ID.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "GlobalKPMnode-ng-eNB-ID.h" - -asn_TYPE_member_t asn_MBR_GlobalKPMnode_ng_eNB_ID_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct GlobalKPMnode_ng_eNB_ID, global_ng_eNB_ID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GlobalngeNB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "global-ng-eNB-ID" - }, -}; -static const ber_tlv_tag_t asn_DEF_GlobalKPMnode_ng_eNB_ID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_GlobalKPMnode_ng_eNB_ID_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* global-ng-eNB-ID */ -}; -asn_SEQUENCE_specifics_t asn_SPC_GlobalKPMnode_ng_eNB_ID_specs_1 = { - sizeof(struct GlobalKPMnode_ng_eNB_ID), - offsetof(struct GlobalKPMnode_ng_eNB_ID, _asn_ctx), - asn_MAP_GlobalKPMnode_ng_eNB_ID_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_GlobalKPMnode_ng_eNB_ID = { - "GlobalKPMnode-ng-eNB-ID", - "GlobalKPMnode-ng-eNB-ID", - &asn_OP_SEQUENCE, - asn_DEF_GlobalKPMnode_ng_eNB_ID_tags_1, - sizeof(asn_DEF_GlobalKPMnode_ng_eNB_ID_tags_1) - /sizeof(asn_DEF_GlobalKPMnode_ng_eNB_ID_tags_1[0]), /* 1 */ - asn_DEF_GlobalKPMnode_ng_eNB_ID_tags_1, /* Same as above */ - sizeof(asn_DEF_GlobalKPMnode_ng_eNB_ID_tags_1) - /sizeof(asn_DEF_GlobalKPMnode_ng_eNB_ID_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_GlobalKPMnode_ng_eNB_ID_1, - 1, /* Elements count */ - &asn_SPC_GlobalKPMnode_ng_eNB_ID_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/GlobalKPMnode-ng-eNB-ID.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/GlobalKPMnode-ng-eNB-ID.h deleted file mode 100644 index 9ad8057..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/GlobalKPMnode-ng-eNB-ID.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _GlobalKPMnode_ng_eNB_ID_H_ -#define _GlobalKPMnode_ng_eNB_ID_H_ - - -#include - -/* Including external dependencies */ -#include "GlobalngeNB-ID.h" -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* GlobalKPMnode-ng-eNB-ID */ -typedef struct GlobalKPMnode_ng_eNB_ID { - GlobalngeNB_ID_t global_ng_eNB_ID; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} GlobalKPMnode_ng_eNB_ID_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_GlobalKPMnode_ng_eNB_ID; -extern asn_SEQUENCE_specifics_t asn_SPC_GlobalKPMnode_ng_eNB_ID_specs_1; -extern asn_TYPE_member_t asn_MBR_GlobalKPMnode_ng_eNB_ID_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _GlobalKPMnode_ng_eNB_ID_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/GlobalRIC-ID.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/GlobalRIC-ID.c deleted file mode 100644 index f113921..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/GlobalRIC-ID.c +++ /dev/null @@ -1,96 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "GlobalRIC-ID.h" - -static int -memb_ric_ID_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if(st->size > 0) { - /* Size in bits */ - size = 8 * st->size - (st->bits_unused & 0x07); - } else { - size = 0; - } - - if((size == 20)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_per_constraints_t asn_PER_memb_ric_ID_constr_3 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 0, 0, 20, 20 } /* (SIZE(20..20)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_GlobalRIC_ID_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct GlobalRIC_ID, pLMN_Identity), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_PLMN_Identity, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "pLMN-Identity" - }, - { ATF_NOFLAGS, 0, offsetof(struct GlobalRIC_ID, ric_ID), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_BIT_STRING, - 0, - { 0, &asn_PER_memb_ric_ID_constr_3, memb_ric_ID_constraint_1 }, - 0, 0, /* No default value */ - "ric-ID" - }, -}; -static const ber_tlv_tag_t asn_DEF_GlobalRIC_ID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_GlobalRIC_ID_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pLMN-Identity */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ric-ID */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_GlobalRIC_ID_specs_1 = { - sizeof(struct GlobalRIC_ID), - offsetof(struct GlobalRIC_ID, _asn_ctx), - asn_MAP_GlobalRIC_ID_tag2el_1, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 2, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_GlobalRIC_ID = { - "GlobalRIC-ID", - "GlobalRIC-ID", - &asn_OP_SEQUENCE, - asn_DEF_GlobalRIC_ID_tags_1, - sizeof(asn_DEF_GlobalRIC_ID_tags_1) - /sizeof(asn_DEF_GlobalRIC_ID_tags_1[0]), /* 1 */ - asn_DEF_GlobalRIC_ID_tags_1, /* Same as above */ - sizeof(asn_DEF_GlobalRIC_ID_tags_1) - /sizeof(asn_DEF_GlobalRIC_ID_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_GlobalRIC_ID_1, - 2, /* Elements count */ - &asn_SPC_GlobalRIC_ID_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/GlobalRIC-ID.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/GlobalRIC-ID.h deleted file mode 100644 index c1ab6be..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/GlobalRIC-ID.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _GlobalRIC_ID_H_ -#define _GlobalRIC_ID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "PLMN-Identity.h" -#include "BIT_STRING.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* GlobalRIC-ID */ -typedef struct GlobalRIC_ID { - PLMN_Identity_t pLMN_Identity; - BIT_STRING_t ric_ID; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} GlobalRIC_ID_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_GlobalRIC_ID; - -#ifdef __cplusplus -} -#endif - -#endif /* _GlobalRIC_ID_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/GlobalenGNB-ID.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/GlobalenGNB-ID.c deleted file mode 100644 index 07f8116..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/GlobalenGNB-ID.c +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "GlobalenGNB-ID.h" - -asn_TYPE_member_t asn_MBR_GlobalenGNB_ID_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct GlobalenGNB_ID, pLMN_Identity), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_PLMN_Identity, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "pLMN-Identity" - }, - { ATF_NOFLAGS, 0, offsetof(struct GlobalenGNB_ID, gNB_ID), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_ENGNB_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "gNB-ID" - }, -}; -static const ber_tlv_tag_t asn_DEF_GlobalenGNB_ID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_GlobalenGNB_ID_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pLMN-Identity */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* gNB-ID */ -}; -asn_SEQUENCE_specifics_t asn_SPC_GlobalenGNB_ID_specs_1 = { - sizeof(struct GlobalenGNB_ID), - offsetof(struct GlobalenGNB_ID, _asn_ctx), - asn_MAP_GlobalenGNB_ID_tag2el_1, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 2, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_GlobalenGNB_ID = { - "GlobalenGNB-ID", - "GlobalenGNB-ID", - &asn_OP_SEQUENCE, - asn_DEF_GlobalenGNB_ID_tags_1, - sizeof(asn_DEF_GlobalenGNB_ID_tags_1) - /sizeof(asn_DEF_GlobalenGNB_ID_tags_1[0]), /* 1 */ - asn_DEF_GlobalenGNB_ID_tags_1, /* Same as above */ - sizeof(asn_DEF_GlobalenGNB_ID_tags_1) - /sizeof(asn_DEF_GlobalenGNB_ID_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_GlobalenGNB_ID_1, - 2, /* Elements count */ - &asn_SPC_GlobalenGNB_ID_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/GlobalenGNB-ID.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/GlobalenGNB-ID.h deleted file mode 100644 index 1e254a7..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/GlobalenGNB-ID.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _GlobalenGNB_ID_H_ -#define _GlobalenGNB_ID_H_ - - -#include - -/* Including external dependencies */ -#include "PLMN-Identity.h" -#include "ENGNB-ID.h" -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* GlobalenGNB-ID */ -typedef struct GlobalenGNB_ID { - PLMN_Identity_t pLMN_Identity; - ENGNB_ID_t gNB_ID; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} GlobalenGNB_ID_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_GlobalenGNB_ID; -extern asn_SEQUENCE_specifics_t asn_SPC_GlobalenGNB_ID_specs_1; -extern asn_TYPE_member_t asn_MBR_GlobalenGNB_ID_1[2]; - -#ifdef __cplusplus -} -#endif - -#endif /* _GlobalenGNB_ID_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/GlobalgNB-ID.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/GlobalgNB-ID.c deleted file mode 100644 index bfcc098..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/GlobalgNB-ID.c +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "GlobalgNB-ID.h" - -asn_TYPE_member_t asn_MBR_GlobalgNB_ID_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct GlobalgNB_ID, plmn_id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_PLMN_Identity, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "plmn-id" - }, - { ATF_NOFLAGS, 0, offsetof(struct GlobalgNB_ID, gnb_id), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_GNB_ID_Choice, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "gnb-id" - }, -}; -static const ber_tlv_tag_t asn_DEF_GlobalgNB_ID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_GlobalgNB_ID_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* plmn-id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* gnb-id */ -}; -asn_SEQUENCE_specifics_t asn_SPC_GlobalgNB_ID_specs_1 = { - sizeof(struct GlobalgNB_ID), - offsetof(struct GlobalgNB_ID, _asn_ctx), - asn_MAP_GlobalgNB_ID_tag2el_1, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 2, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_GlobalgNB_ID = { - "GlobalgNB-ID", - "GlobalgNB-ID", - &asn_OP_SEQUENCE, - asn_DEF_GlobalgNB_ID_tags_1, - sizeof(asn_DEF_GlobalgNB_ID_tags_1) - /sizeof(asn_DEF_GlobalgNB_ID_tags_1[0]), /* 1 */ - asn_DEF_GlobalgNB_ID_tags_1, /* Same as above */ - sizeof(asn_DEF_GlobalgNB_ID_tags_1) - /sizeof(asn_DEF_GlobalgNB_ID_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_GlobalgNB_ID_1, - 2, /* Elements count */ - &asn_SPC_GlobalgNB_ID_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/GlobalgNB-ID.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/GlobalgNB-ID.h deleted file mode 100644 index e31846d..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/GlobalgNB-ID.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _GlobalgNB_ID_H_ -#define _GlobalgNB_ID_H_ - - -#include - -/* Including external dependencies */ -#include "PLMN-Identity.h" -#include "GNB-ID-Choice.h" -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* GlobalgNB-ID */ -typedef struct GlobalgNB_ID { - PLMN_Identity_t plmn_id; - GNB_ID_Choice_t gnb_id; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} GlobalgNB_ID_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_GlobalgNB_ID; -extern asn_SEQUENCE_specifics_t asn_SPC_GlobalgNB_ID_specs_1; -extern asn_TYPE_member_t asn_MBR_GlobalgNB_ID_1[2]; - -#ifdef __cplusplus -} -#endif - -#endif /* _GlobalgNB_ID_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/GlobalngeNB-ID.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/GlobalngeNB-ID.c deleted file mode 100644 index d220e9a..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/GlobalngeNB-ID.c +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "GlobalngeNB-ID.h" - -asn_TYPE_member_t asn_MBR_GlobalngeNB_ID_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct GlobalngeNB_ID, plmn_id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_PLMN_Identity, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "plmn-id" - }, - { ATF_NOFLAGS, 0, offsetof(struct GlobalngeNB_ID, enb_id), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_ENB_ID_Choice, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "enb-id" - }, -}; -static const ber_tlv_tag_t asn_DEF_GlobalngeNB_ID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_GlobalngeNB_ID_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* plmn-id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* enb-id */ -}; -asn_SEQUENCE_specifics_t asn_SPC_GlobalngeNB_ID_specs_1 = { - sizeof(struct GlobalngeNB_ID), - offsetof(struct GlobalngeNB_ID, _asn_ctx), - asn_MAP_GlobalngeNB_ID_tag2el_1, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 2, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_GlobalngeNB_ID = { - "GlobalngeNB-ID", - "GlobalngeNB-ID", - &asn_OP_SEQUENCE, - asn_DEF_GlobalngeNB_ID_tags_1, - sizeof(asn_DEF_GlobalngeNB_ID_tags_1) - /sizeof(asn_DEF_GlobalngeNB_ID_tags_1[0]), /* 1 */ - asn_DEF_GlobalngeNB_ID_tags_1, /* Same as above */ - sizeof(asn_DEF_GlobalngeNB_ID_tags_1) - /sizeof(asn_DEF_GlobalngeNB_ID_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_GlobalngeNB_ID_1, - 2, /* Elements count */ - &asn_SPC_GlobalngeNB_ID_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/GlobalngeNB-ID.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/GlobalngeNB-ID.h deleted file mode 100644 index e8246ca..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/GlobalngeNB-ID.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _GlobalngeNB_ID_H_ -#define _GlobalngeNB_ID_H_ - - -#include - -/* Including external dependencies */ -#include "PLMN-Identity.h" -#include "ENB-ID-Choice.h" -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* GlobalngeNB-ID */ -typedef struct GlobalngeNB_ID { - PLMN_Identity_t plmn_id; - ENB_ID_Choice_t enb_id; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} GlobalngeNB_ID_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_GlobalngeNB_ID; -extern asn_SEQUENCE_specifics_t asn_SPC_GlobalngeNB_ID_specs_1; -extern asn_TYPE_member_t asn_MBR_GlobalngeNB_ID_1[2]; - -#ifdef __cplusplus -} -#endif - -#endif /* _GlobalngeNB_ID_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/INTEGER.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/INTEGER.c deleted file mode 100644 index 2a2f4d7..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/INTEGER.c +++ /dev/null @@ -1,1735 +0,0 @@ -/*- - * Copyright (c) 2003-2014 Lev Walkin . - * All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include /* Encoder and decoder of a primitive type */ -#include - -/* - * INTEGER basic type description. - */ -static const ber_tlv_tag_t asn_DEF_INTEGER_tags[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_operation_t asn_OP_INTEGER = { - INTEGER_free, - INTEGER_print, - INTEGER_compare, - ber_decode_primitive, - INTEGER_encode_der, - INTEGER_decode_xer, - INTEGER_encode_xer, -#ifdef ASN_DISABLE_OER_SUPPORT - 0, - 0, -#else - INTEGER_decode_oer, /* OER decoder */ - INTEGER_encode_oer, /* Canonical OER encoder */ -#endif /* ASN_DISABLE_OER_SUPPORT */ -#ifdef ASN_DISABLE_PER_SUPPORT - 0, - 0, - 0, - 0, -#else - INTEGER_decode_uper, /* Unaligned PER decoder */ - INTEGER_encode_uper, /* Unaligned PER encoder */ - INTEGER_decode_aper, /* Aligned PER decoder */ - INTEGER_encode_aper, /* Aligned PER encoder */ -#endif /* ASN_DISABLE_PER_SUPPORT */ - INTEGER_random_fill, - 0 /* Use generic outmost tag fetcher */ -}; -asn_TYPE_descriptor_t asn_DEF_INTEGER = { - "INTEGER", - "INTEGER", - &asn_OP_INTEGER, - asn_DEF_INTEGER_tags, - sizeof(asn_DEF_INTEGER_tags) / sizeof(asn_DEF_INTEGER_tags[0]), - asn_DEF_INTEGER_tags, /* Same as above */ - sizeof(asn_DEF_INTEGER_tags) / sizeof(asn_DEF_INTEGER_tags[0]), - { 0, 0, asn_generic_no_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - -/* - * Encode INTEGER type using DER. - */ -asn_enc_rval_t -INTEGER_encode_der(const asn_TYPE_descriptor_t *td, const void *sptr, - int tag_mode, ber_tlv_tag_t tag, asn_app_consume_bytes_f *cb, - void *app_key) { - const INTEGER_t *st = (const INTEGER_t *)sptr; - asn_enc_rval_t rval; - INTEGER_t effective_integer; - - ASN_DEBUG("%s %s as INTEGER (tm=%d)", - cb?"Encoding":"Estimating", td->name, tag_mode); - - /* - * Canonicalize integer in the buffer. - * (Remove too long sign extension, remove some first 0x00 bytes) - */ - if(st->buf) { - uint8_t *buf = st->buf; - uint8_t *end1 = buf + st->size - 1; - int shift; - - /* Compute the number of superfluous leading bytes */ - for(; buf < end1; buf++) { - /* - * If the contents octets of an integer value encoding - * consist of more than one octet, then the bits of the - * first octet and bit 8 of the second octet: - * a) shall not all be ones; and - * b) shall not all be zero. - */ - switch(*buf) { - case 0x00: if((buf[1] & 0x80) == 0) - continue; - break; - case 0xff: if((buf[1] & 0x80)) - continue; - break; - } - break; - } - - /* Remove leading superfluous bytes from the integer */ - shift = buf - st->buf; - if(shift) { - union { - const uint8_t *c_buf; - uint8_t *nc_buf; - } unconst; - unconst.c_buf = st->buf; - effective_integer.buf = unconst.nc_buf + shift; - effective_integer.size = st->size - shift; - - st = &effective_integer; - } - } - - rval = der_encode_primitive(td, st, tag_mode, tag, cb, app_key); - if(rval.structure_ptr == &effective_integer) { - rval.structure_ptr = sptr; - } - return rval; -} - -static const asn_INTEGER_enum_map_t *INTEGER_map_enum2value( - const asn_INTEGER_specifics_t *specs, const char *lstart, - const char *lstop); - -/* - * INTEGER specific human-readable output. - */ -static ssize_t -INTEGER__dump(const asn_TYPE_descriptor_t *td, const INTEGER_t *st, asn_app_consume_bytes_f *cb, void *app_key, int plainOrXER) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - char scratch[32]; - uint8_t *buf = st->buf; - uint8_t *buf_end = st->buf + st->size; - intmax_t value; - ssize_t wrote = 0; - char *p; - int ret; - - if(specs && specs->field_unsigned) - ret = asn_INTEGER2umax(st, (uintmax_t *)&value); - else - ret = asn_INTEGER2imax(st, &value); - - /* Simple case: the integer size is small */ - if(ret == 0) { - const asn_INTEGER_enum_map_t *el; - el = (value >= 0 || !specs || !specs->field_unsigned) - ? INTEGER_map_value2enum(specs, value) : 0; - if(el) { - if(plainOrXER == 0) - return asn__format_to_callback(cb, app_key, - "%" ASN_PRIdMAX " (%s)", value, el->enum_name); - else - return asn__format_to_callback(cb, app_key, - "<%s/>", el->enum_name); - } else if(plainOrXER && specs && specs->strict_enumeration) { - ASN_DEBUG("ASN.1 forbids dealing with " - "unknown value of ENUMERATED type"); - errno = EPERM; - return -1; - } else { - return asn__format_to_callback(cb, app_key, - (specs && specs->field_unsigned) - ? "%" ASN_PRIuMAX - : "%" ASN_PRIdMAX, - value); - } - } else if(plainOrXER && specs && specs->strict_enumeration) { - /* - * Here and earlier, we cannot encode the ENUMERATED values - * if there is no corresponding identifier. - */ - ASN_DEBUG("ASN.1 forbids dealing with " - "unknown value of ENUMERATED type"); - errno = EPERM; - return -1; - } - - /* Output in the long xx:yy:zz... format */ - /* TODO: replace with generic algorithm (Knuth TAOCP Vol 2, 4.3.1) */ - for(p = scratch; buf < buf_end; buf++) { - const char * const h2c = "0123456789ABCDEF"; - if((p - scratch) >= (ssize_t)(sizeof(scratch) - 4)) { - /* Flush buffer */ - if(cb(scratch, p - scratch, app_key) < 0) - return -1; - wrote += p - scratch; - p = scratch; - } - *p++ = h2c[*buf >> 4]; - *p++ = h2c[*buf & 0x0F]; - *p++ = 0x3a; /* ":" */ - } - if(p != scratch) - p--; /* Remove the last ":" */ - - wrote += p - scratch; - return (cb(scratch, p - scratch, app_key) < 0) ? -1 : wrote; -} - -/* - * INTEGER specific human-readable output. - */ -int -INTEGER_print(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, - asn_app_consume_bytes_f *cb, void *app_key) { - const INTEGER_t *st = (const INTEGER_t *)sptr; - ssize_t ret; - - (void)ilevel; - - if(!st || !st->buf) - ret = cb("", 8, app_key); - else - ret = INTEGER__dump(td, st, cb, app_key, 0); - - return (ret < 0) ? -1 : 0; -} - -struct e2v_key { - const char *start; - const char *stop; - const asn_INTEGER_enum_map_t *vemap; - const unsigned int *evmap; -}; -static int -INTEGER__compar_enum2value(const void *kp, const void *am) { - const struct e2v_key *key = (const struct e2v_key *)kp; - const asn_INTEGER_enum_map_t *el = (const asn_INTEGER_enum_map_t *)am; - const char *ptr, *end, *name; - - /* Remap the element (sort by different criterion) */ - el = key->vemap + key->evmap[el - key->vemap]; - - /* Compare strings */ - for(ptr = key->start, end = key->stop, name = el->enum_name; - ptr < end; ptr++, name++) { - if(*ptr != *name || !*name) - return *(const unsigned char *)ptr - - *(const unsigned char *)name; - } - return name[0] ? -1 : 0; -} - -static const asn_INTEGER_enum_map_t * -INTEGER_map_enum2value(const asn_INTEGER_specifics_t *specs, const char *lstart, - const char *lstop) { - const asn_INTEGER_enum_map_t *el_found; - int count = specs ? specs->map_count : 0; - struct e2v_key key; - const char *lp; - - if(!count) return NULL; - - /* Guaranteed: assert(lstart < lstop); */ - /* Figure out the tag name */ - for(lstart++, lp = lstart; lp < lstop; lp++) { - switch(*lp) { - case 9: case 10: case 11: case 12: case 13: case 32: /* WSP */ - case 0x2f: /* '/' */ case 0x3e: /* '>' */ - break; - default: - continue; - } - break; - } - if(lp == lstop) return NULL; /* No tag found */ - lstop = lp; - - key.start = lstart; - key.stop = lstop; - key.vemap = specs->value2enum; - key.evmap = specs->enum2value; - el_found = (asn_INTEGER_enum_map_t *)bsearch(&key, - specs->value2enum, count, sizeof(specs->value2enum[0]), - INTEGER__compar_enum2value); - if(el_found) { - /* Remap enum2value into value2enum */ - el_found = key.vemap + key.evmap[el_found - key.vemap]; - } - return el_found; -} - -static int -INTEGER__compar_value2enum(const void *kp, const void *am) { - long a = *(const long *)kp; - const asn_INTEGER_enum_map_t *el = (const asn_INTEGER_enum_map_t *)am; - long b = el->nat_value; - if(a < b) return -1; - else if(a == b) return 0; - else return 1; -} - -const asn_INTEGER_enum_map_t * -INTEGER_map_value2enum(const asn_INTEGER_specifics_t *specs, long value) { - int count = specs ? specs->map_count : 0; - if(!count) return 0; - return (asn_INTEGER_enum_map_t *)bsearch(&value, specs->value2enum, - count, sizeof(specs->value2enum[0]), - INTEGER__compar_value2enum); -} - -static int -INTEGER_st_prealloc(INTEGER_t *st, int min_size) { - void *p = MALLOC(min_size + 1); - if(p) { - void *b = st->buf; - st->size = 0; - st->buf = p; - FREEMEM(b); - return 0; - } else { - return -1; - } -} - -/* - * Decode the chunk of XML text encoding INTEGER. - */ -static enum xer_pbd_rval -INTEGER__xer_body_decode(const asn_TYPE_descriptor_t *td, void *sptr, - const void *chunk_buf, size_t chunk_size) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - INTEGER_t *st = (INTEGER_t *)sptr; - intmax_t dec_value; - intmax_t hex_value = 0; - const char *lp; - const char *lstart = (const char *)chunk_buf; - const char *lstop = lstart + chunk_size; - enum { - ST_LEADSPACE, - ST_SKIPSPHEX, - ST_WAITDIGITS, - ST_DIGITS, - ST_DIGITS_TRAILSPACE, - ST_HEXDIGIT1, - ST_HEXDIGIT2, - ST_HEXDIGITS_TRAILSPACE, - ST_HEXCOLON, - ST_END_ENUM, - ST_UNEXPECTED - } state = ST_LEADSPACE; - const char *dec_value_start = 0; /* INVARIANT: always !0 in ST_DIGITS */ - const char *dec_value_end = 0; - - if(chunk_size) - ASN_DEBUG("INTEGER body %ld 0x%2x..0x%2x", - (long)chunk_size, *lstart, lstop[-1]); - - if(INTEGER_st_prealloc(st, (chunk_size/3) + 1)) - return XPBD_SYSTEM_FAILURE; - - /* - * We may have received a tag here. It will be processed inline. - * Use strtoul()-like code and serialize the result. - */ - for(lp = lstart; lp < lstop; lp++) { - int lv = *lp; - switch(lv) { - case 0x09: case 0x0a: case 0x0d: case 0x20: - switch(state) { - case ST_LEADSPACE: - case ST_DIGITS_TRAILSPACE: - case ST_HEXDIGITS_TRAILSPACE: - case ST_SKIPSPHEX: - continue; - case ST_DIGITS: - dec_value_end = lp; - state = ST_DIGITS_TRAILSPACE; - continue; - case ST_HEXCOLON: - state = ST_HEXDIGITS_TRAILSPACE; - continue; - default: - break; - } - break; - case 0x2d: /* '-' */ - if(state == ST_LEADSPACE) { - dec_value = 0; - dec_value_start = lp; - state = ST_WAITDIGITS; - continue; - } - break; - case 0x2b: /* '+' */ - if(state == ST_LEADSPACE) { - dec_value = 0; - dec_value_start = lp; - state = ST_WAITDIGITS; - continue; - } - break; - case 0x30: case 0x31: case 0x32: case 0x33: case 0x34: - case 0x35: case 0x36: case 0x37: case 0x38: case 0x39: - switch(state) { - case ST_DIGITS: continue; - case ST_SKIPSPHEX: /* Fall through */ - case ST_HEXDIGIT1: - hex_value = (lv - 0x30) << 4; - state = ST_HEXDIGIT2; - continue; - case ST_HEXDIGIT2: - hex_value += (lv - 0x30); - state = ST_HEXCOLON; - st->buf[st->size++] = (uint8_t)hex_value; - continue; - case ST_HEXCOLON: - return XPBD_BROKEN_ENCODING; - case ST_LEADSPACE: - dec_value = 0; - dec_value_start = lp; - /* FALL THROUGH */ - case ST_WAITDIGITS: - state = ST_DIGITS; - continue; - default: - break; - } - break; - case 0x3c: /* '<', start of XML encoded enumeration */ - if(state == ST_LEADSPACE) { - const asn_INTEGER_enum_map_t *el; - el = INTEGER_map_enum2value( - (const asn_INTEGER_specifics_t *) - td->specifics, lstart, lstop); - if(el) { - ASN_DEBUG("Found \"%s\" => %ld", - el->enum_name, el->nat_value); - dec_value = el->nat_value; - state = ST_END_ENUM; - lp = lstop - 1; - continue; - } - ASN_DEBUG("Unknown identifier for INTEGER"); - } - return XPBD_BROKEN_ENCODING; - case 0x3a: /* ':' */ - if(state == ST_HEXCOLON) { - /* This colon is expected */ - state = ST_HEXDIGIT1; - continue; - } else if(state == ST_DIGITS) { - /* The colon here means that we have - * decoded the first two hexadecimal - * places as a decimal value. - * Switch decoding mode. */ - ASN_DEBUG("INTEGER re-evaluate as hex form"); - state = ST_SKIPSPHEX; - dec_value_start = 0; - lp = lstart - 1; - continue; - } else { - ASN_DEBUG("state %d at %ld", state, (long)(lp - lstart)); - break; - } - /* [A-Fa-f] */ - case 0x41:case 0x42:case 0x43:case 0x44:case 0x45:case 0x46: - case 0x61:case 0x62:case 0x63:case 0x64:case 0x65:case 0x66: - switch(state) { - case ST_SKIPSPHEX: - case ST_LEADSPACE: /* Fall through */ - case ST_HEXDIGIT1: - hex_value = lv - ((lv < 0x61) ? 0x41 : 0x61); - hex_value += 10; - hex_value <<= 4; - state = ST_HEXDIGIT2; - continue; - case ST_HEXDIGIT2: - hex_value += lv - ((lv < 0x61) ? 0x41 : 0x61); - hex_value += 10; - st->buf[st->size++] = (uint8_t)hex_value; - state = ST_HEXCOLON; - continue; - case ST_DIGITS: - ASN_DEBUG("INTEGER re-evaluate as hex form"); - state = ST_SKIPSPHEX; - dec_value_start = 0; - lp = lstart - 1; - continue; - default: - break; - } - break; - } - - /* Found extra non-numeric stuff */ - ASN_DEBUG("INTEGER :: Found non-numeric 0x%2x at %ld", - lv, (long)(lp - lstart)); - state = ST_UNEXPECTED; - break; - } - - switch(state) { - case ST_END_ENUM: - /* Got a complete and valid enumeration encoded as a tag. */ - break; - case ST_DIGITS: - dec_value_end = lstop; - /* FALL THROUGH */ - case ST_DIGITS_TRAILSPACE: - /* The last symbol encountered was a digit. */ - switch(asn_strtoimax_lim(dec_value_start, &dec_value_end, &dec_value)) { - case ASN_STRTOX_OK: - if(specs && specs->field_unsigned && (uintmax_t) dec_value <= ULONG_MAX) { - break; - } else if(dec_value >= LONG_MIN && dec_value <= LONG_MAX) { - break; - } else { - /* - * We model INTEGER on long for XER, - * to avoid rewriting all the tests at once. - */ - ASN_DEBUG("INTEGER exceeds long range"); - } - /* Fall through */ - case ASN_STRTOX_ERROR_RANGE: - ASN_DEBUG("INTEGER decode %s hit range limit", td->name); - return XPBD_DECODER_LIMIT; - case ASN_STRTOX_ERROR_INVAL: - case ASN_STRTOX_EXPECT_MORE: - case ASN_STRTOX_EXTRA_DATA: - return XPBD_BROKEN_ENCODING; - } - break; - case ST_HEXCOLON: - case ST_HEXDIGITS_TRAILSPACE: - st->buf[st->size] = 0; /* Just in case termination */ - return XPBD_BODY_CONSUMED; - case ST_HEXDIGIT1: - case ST_HEXDIGIT2: - case ST_SKIPSPHEX: - return XPBD_BROKEN_ENCODING; - case ST_LEADSPACE: - /* Content not found */ - return XPBD_NOT_BODY_IGNORE; - case ST_WAITDIGITS: - case ST_UNEXPECTED: - ASN_DEBUG("INTEGER: No useful digits (state %d)", state); - return XPBD_BROKEN_ENCODING; /* No digits */ - } - - /* - * Convert the result of parsing of enumeration or a straight - * decimal value into a BER representation. - */ - if(asn_imax2INTEGER(st, dec_value)) { - ASN_DEBUG("INTEGER decode %s conversion failed", td->name); - return XPBD_SYSTEM_FAILURE; - } - - return XPBD_BODY_CONSUMED; -} - -asn_dec_rval_t -INTEGER_decode_xer(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **sptr, - const char *opt_mname, const void *buf_ptr, size_t size) { - return xer_decode_primitive(opt_codec_ctx, td, - sptr, sizeof(INTEGER_t), opt_mname, - buf_ptr, size, INTEGER__xer_body_decode); -} - -asn_enc_rval_t -INTEGER_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, - int ilevel, enum xer_encoder_flags_e flags, - asn_app_consume_bytes_f *cb, void *app_key) { - const INTEGER_t *st = (const INTEGER_t *)sptr; - asn_enc_rval_t er = {0,0,0}; - - (void)ilevel; - (void)flags; - - if(!st || !st->buf) - ASN__ENCODE_FAILED; - - er.encoded = INTEGER__dump(td, st, cb, app_key, 1); - if(er.encoded < 0) ASN__ENCODE_FAILED; - - ASN__ENCODED_OK(er); -} - -#ifndef ASN_DISABLE_PER_SUPPORT - -asn_dec_rval_t -INTEGER_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, - asn_per_data_t *pd) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - asn_dec_rval_t rval = { RC_OK, 0 }; - INTEGER_t *st = (INTEGER_t *)*sptr; - const asn_per_constraint_t *ct; - int repeat; - - (void)opt_codec_ctx; - - if(!st) { - st = (INTEGER_t *)(*sptr = CALLOC(1, sizeof(*st))); - if(!st) ASN__DECODE_FAILED; - } - - if(!constraints) constraints = td->encoding_constraints.per_constraints; - ct = constraints ? &constraints->value : 0; - - if(ct && ct->flags & APC_EXTENSIBLE) { - int inext = per_get_few_bits(pd, 1); - if(inext < 0) ASN__DECODE_STARVED; - if(inext) ct = 0; - } - - FREEMEM(st->buf); - st->buf = 0; - st->size = 0; - if(ct) { - if(ct->flags & APC_SEMI_CONSTRAINED) { - st->buf = (uint8_t *)CALLOC(1, 2); - if(!st->buf) ASN__DECODE_FAILED; - st->size = 1; - } else if(ct->flags & APC_CONSTRAINED && ct->range_bits >= 0) { - size_t size = (ct->range_bits + 7) >> 3; - st->buf = (uint8_t *)MALLOC(1 + size + 1); - if(!st->buf) ASN__DECODE_FAILED; - st->size = size; - } - } - - /* X.691-2008/11, #13.2.2, constrained whole number */ - if(ct && ct->flags != APC_UNCONSTRAINED) { - /* #11.5.6 */ - ASN_DEBUG("Integer with range %d bits", ct->range_bits); - if(ct->range_bits >= 0) { - if((size_t)ct->range_bits > 8 * sizeof(unsigned long)) - ASN__DECODE_FAILED; - - if(specs && specs->field_unsigned) { - unsigned long uvalue = 0; - if(uper_get_constrained_whole_number(pd, - &uvalue, ct->range_bits)) - ASN__DECODE_STARVED; - ASN_DEBUG("Got value %lu + low %ld", - uvalue, ct->lower_bound); - uvalue += ct->lower_bound; - if(asn_ulong2INTEGER(st, uvalue)) - ASN__DECODE_FAILED; - } else { - unsigned long uvalue = 0; - long svalue; - if(uper_get_constrained_whole_number(pd, - &uvalue, ct->range_bits)) - ASN__DECODE_STARVED; - ASN_DEBUG("Got value %lu + low %ld", - uvalue, ct->lower_bound); - if(per_long_range_unrebase(uvalue, ct->lower_bound, - ct->upper_bound, &svalue) - || asn_long2INTEGER(st, svalue)) { - ASN__DECODE_FAILED; - } - } - return rval; - } - } else { - ASN_DEBUG("Decoding unconstrained integer %s", td->name); - } - - /* X.691, #12.2.3, #12.2.4 */ - do { - ssize_t len = 0; - void *p = NULL; - int ret = 0; - - /* Get the PER length */ - len = uper_get_length(pd, -1, 0, &repeat); - if(len < 0) ASN__DECODE_STARVED; - - p = REALLOC(st->buf, st->size + len + 1); - if(!p) ASN__DECODE_FAILED; - st->buf = (uint8_t *)p; - - ret = per_get_many_bits(pd, &st->buf[st->size], 0, 8 * len); - if(ret < 0) ASN__DECODE_STARVED; - st->size += len; - } while(repeat); - st->buf[st->size] = 0; /* JIC */ - - /* #12.2.3 */ - if(ct && ct->lower_bound) { - /* - * TODO: replace by in-place arithmetics. - */ - long value = 0; - if(asn_INTEGER2long(st, &value)) - ASN__DECODE_FAILED; - if(asn_imax2INTEGER(st, value + ct->lower_bound)) - ASN__DECODE_FAILED; - } - - return rval; -} - -asn_enc_rval_t -INTEGER_encode_uper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, const void *sptr, - asn_per_outp_t *po) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - asn_enc_rval_t er = {0,0,0}; - const INTEGER_t *st = (const INTEGER_t *)sptr; - const uint8_t *buf; - const uint8_t *end; - const asn_per_constraint_t *ct; - long value = 0; - - if(!st || st->size == 0) ASN__ENCODE_FAILED; - - if(!constraints) constraints = td->encoding_constraints.per_constraints; - ct = constraints ? &constraints->value : 0; - - er.encoded = 0; - - if(ct) { - int inext = 0; - if(specs && specs->field_unsigned) { - unsigned long uval; - if(asn_INTEGER2ulong(st, &uval)) - ASN__ENCODE_FAILED; - /* Check proper range */ - if(ct->flags & APC_SEMI_CONSTRAINED) { - if(uval < (unsigned long)ct->lower_bound) - inext = 1; - } else if(ct->range_bits >= 0) { - if(uval < (unsigned long)ct->lower_bound - || uval > (unsigned long)ct->upper_bound) - inext = 1; - } - ASN_DEBUG("Value %lu (%02x/%" ASN_PRI_SIZE ") lb %lu ub %lu %s", - uval, st->buf[0], st->size, - ct->lower_bound, ct->upper_bound, - inext ? "ext" : "fix"); - value = uval; - } else { - if(asn_INTEGER2long(st, &value)) - ASN__ENCODE_FAILED; - /* Check proper range */ - if(ct->flags & APC_SEMI_CONSTRAINED) { - if(value < ct->lower_bound) - inext = 1; - } else if(ct->range_bits >= 0) { - if(value < ct->lower_bound - || value > ct->upper_bound) - inext = 1; - } - ASN_DEBUG("Value %ld (%02x/%" ASN_PRI_SIZE ") lb %ld ub %ld %s", - value, st->buf[0], st->size, - ct->lower_bound, ct->upper_bound, - inext ? "ext" : "fix"); - } - if(ct->flags & APC_EXTENSIBLE) { - if(per_put_few_bits(po, inext, 1)) - ASN__ENCODE_FAILED; - if(inext) ct = 0; - } else if(inext) { - ASN__ENCODE_FAILED; - } - } - - - /* X.691-11/2008, #13.2.2, test if constrained whole number */ - if(ct && ct->range_bits >= 0) { - unsigned long v; - /* #11.5.6 -> #11.3 */ - ASN_DEBUG("Encoding integer %ld (%lu) with range %d bits", - value, value - ct->lower_bound, ct->range_bits); - if(specs && specs->field_unsigned) { - if ( ((unsigned long)ct->lower_bound > (unsigned long)(ct->upper_bound) - || ((unsigned long)value < (unsigned long)ct->lower_bound)) - || ((unsigned long)value > (unsigned long)ct->upper_bound) - ) { - ASN_DEBUG("Value %lu to-be-encoded is outside the bounds [%lu, %lu]!", - value, ct->lower_bound, ct->upper_bound); - ASN__ENCODE_FAILED; - } - v = (unsigned long)value - (unsigned long)ct->lower_bound; - } else { - if(per_long_range_rebase(value, ct->lower_bound, ct->upper_bound, &v)) { - ASN__ENCODE_FAILED; - } - } - if(uper_put_constrained_whole_number_u(po, v, ct->range_bits)) - ASN__ENCODE_FAILED; - ASN__ENCODED_OK(er); - } - - if(ct && ct->lower_bound) { - ASN_DEBUG("Adjust lower bound to %ld", ct->lower_bound); - /* TODO: adjust lower bound */ - ASN__ENCODE_FAILED; - } - - for(buf = st->buf, end = st->buf + st->size; buf < end;) { - int need_eom = 0; - ssize_t mayEncode = uper_put_length(po, end - buf, &need_eom); - if(mayEncode < 0) - ASN__ENCODE_FAILED; - if(per_put_many_bits(po, buf, 8 * mayEncode)) - ASN__ENCODE_FAILED; - buf += mayEncode; - if(need_eom && uper_put_length(po, 0, 0)) ASN__ENCODE_FAILED; - } - - ASN__ENCODED_OK(er); -} - -asn_dec_rval_t -INTEGER_decode_aper(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, asn_per_data_t *pd) { - const asn_INTEGER_specifics_t *specs = (const asn_INTEGER_specifics_t *)td->specifics; - asn_dec_rval_t rval = { RC_OK, 0 }; - INTEGER_t *st = (INTEGER_t *)*sptr; - const asn_per_constraint_t *ct; - int repeat; - - (void)opt_codec_ctx; - - if(!st) { - st = (INTEGER_t *)(*sptr = CALLOC(1, sizeof(*st))); - if(!st) ASN__DECODE_FAILED; - } - - if(!constraints) constraints = td->encoding_constraints.per_constraints; - ct = constraints ? &constraints->value : 0; - - if(ct && ct->flags & APC_EXTENSIBLE) { - int inext = per_get_few_bits(pd, 1); - if(inext < 0) ASN__DECODE_STARVED; - if(inext) ct = 0; - } - - FREEMEM(st->buf); - st->buf = 0; - st->size = 0; - if(ct) { - if(ct->flags & APC_SEMI_CONSTRAINED) { - st->buf = (uint8_t *)CALLOC(1, 2); - if(!st->buf) ASN__DECODE_FAILED; - st->size = 1; - } else if(ct->flags & APC_CONSTRAINED && ct->range_bits >= 0) { - size_t size = (ct->range_bits + 7) >> 3; - st->buf = (uint8_t *)MALLOC(1 + size + 1); - if(!st->buf) ASN__DECODE_FAILED; - st->size = size; - } - } - - /* X.691, #12.2.2 */ - if(ct && ct->flags != APC_UNCONSTRAINED) { - /* #10.5.6 */ - ASN_DEBUG("Integer with range %d bits", ct->range_bits); - if(ct->range_bits >= 0) { - if (ct->range_bits > 16) { - int max_range_bytes = (ct->range_bits >> 3) + - (((ct->range_bits % 8) > 0) ? 1 : 0); - int length = 0, i; - long value = 0; - - for (i = 1; ; i++) { - int upper = 1 << i; - if (upper >= max_range_bytes) - break; - } - ASN_DEBUG("Can encode %d (%d bytes) in %d bits", ct->range_bits, - max_range_bytes, i); - - if ((length = per_get_few_bits(pd, i)) < 0) - ASN__DECODE_FAILED; - - /* X.691 #12.2.6 length determinant + lb (1) */ - length += 1; - ASN_DEBUG("Got length %d", length); - if (aper_get_align(pd) != 0) - ASN__DECODE_FAILED; - while (length--) { - int buf = per_get_few_bits(pd, 8); - if (buf < 0) - ASN__DECODE_FAILED; - value += (((long)buf) << (8 * length)); - } - - value += ct->lower_bound; - if((specs && specs->field_unsigned) - ? asn_uint642INTEGER(st, (unsigned long)value) - : asn_int642INTEGER(st, value)) - ASN__DECODE_FAILED; - ASN_DEBUG("Got value %ld + low %ld", - value, ct->lower_bound); - } else { - long value = 0; - if (ct->range_bits < 8) { - value = per_get_few_bits(pd, ct->range_bits); - if(value < 0) ASN__DECODE_STARVED; - } else if (ct->range_bits == 8) { - if (aper_get_align(pd) < 0) - ASN__DECODE_FAILED; - value = per_get_few_bits(pd, ct->range_bits); - if(value < 0) ASN__DECODE_STARVED; - } else { - /* Align */ - if (aper_get_align(pd) < 0) - ASN__DECODE_FAILED; - value = per_get_few_bits(pd, 16); - if(value < 0) ASN__DECODE_STARVED; - } - value += ct->lower_bound; - if((specs && specs->field_unsigned) - ? asn_ulong2INTEGER(st, value) - : asn_long2INTEGER(st, value)) - ASN__DECODE_FAILED; - ASN_DEBUG("Got value %ld + low %ld", - value, ct->lower_bound); - } - return rval; - } else { - ASN__DECODE_FAILED; - } - } else { - ASN_DEBUG("Decoding unconstrained integer %s", td->name); - } - - /* X.691, #12.2.3, #12.2.4 */ - do { - ssize_t len; - void *p; - int ret; - - /* Get the PER length */ - len = aper_get_length(pd, -1, -1, &repeat); - if(len < 0) ASN__DECODE_STARVED; - - p = REALLOC(st->buf, st->size + len + 1); - if(!p) ASN__DECODE_FAILED; - st->buf = (uint8_t *)p; - - ret = per_get_many_bits(pd, &st->buf[st->size], 0, 8 * len); - if(ret < 0) ASN__DECODE_STARVED; - st->size += len; - } while(repeat); - st->buf[st->size] = 0; /* JIC */ - - /* #12.2.3 */ - if(ct && ct->lower_bound) { - /* - * TODO: replace by in-place arithmetics. - */ - long value; - if(asn_INTEGER2long(st, &value)) - ASN__DECODE_FAILED; - if(asn_long2INTEGER(st, value + ct->lower_bound)) - ASN__DECODE_FAILED; - } - - return rval; -} - -asn_enc_rval_t -INTEGER_encode_aper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_per_outp_t *po) { - const asn_INTEGER_specifics_t *specs = (const asn_INTEGER_specifics_t *)td->specifics; - asn_enc_rval_t er = {0,0,0}; - const INTEGER_t *st = (const INTEGER_t *)sptr; - const uint8_t *buf; - const uint8_t *end; - const asn_per_constraint_t *ct; - long value = 0; - - if(!st || st->size == 0) ASN__ENCODE_FAILED; - - if(!constraints) constraints = td->encoding_constraints.per_constraints; - ct = constraints ? &constraints->value : 0; - - er.encoded = 0; - - if(ct) { - int inext = 0; - if(specs && specs->field_unsigned) { - unsigned long uval; - if(asn_INTEGER2ulong(st, &uval)) - ASN__ENCODE_FAILED; - /* Check proper range */ - if(ct->flags & APC_SEMI_CONSTRAINED) { - if(uval < (unsigned long)ct->lower_bound) - inext = 1; - } else if(ct->range_bits >= 0) { - if(uval < (unsigned long)ct->lower_bound - || uval > (unsigned long)ct->upper_bound) - inext = 1; - } - ASN_DEBUG("Value %lu (%02x/%lu) lb %ld ub %ld %s", - uval, st->buf[0], st->size, - ct->lower_bound, ct->upper_bound, - inext ? "ext" : "fix"); - value = uval; - } else { - if(asn_INTEGER2long(st, &value)) ASN__ENCODE_FAILED; - /* Check proper range */ - if(ct->flags & APC_SEMI_CONSTRAINED) { - if(value < ct->lower_bound) - inext = 1; - } else if(ct->range_bits >= 0) { - if(value < ct->lower_bound - || value > ct->upper_bound) - inext = 1; - } - ASN_DEBUG("Value %lu (%02x/%lu) lb %ld ub %ld %s", - value, st->buf[0], st->size, - ct->lower_bound, ct->upper_bound, - inext ? "ext" : "fix"); - } - if(ct->flags & APC_EXTENSIBLE) { - if(per_put_few_bits(po, inext, 1)) - ASN__ENCODE_FAILED; - if(inext) ct = 0; - } else if(inext) { - ASN__ENCODE_FAILED; - } - } - - /* X.691, #12.2.2 */ - if(ct && ct->range_bits >= 0) { - unsigned long v; - - /* #10.5.6 */ - ASN_DEBUG("Encoding integer %ld (%lu) with range %d bits", - value, value - ct->lower_bound, ct->range_bits); - - v = value - ct->lower_bound; - - /* #12 <= 8 -> alignment ? */ - if (ct->range_bits < 8) { - if(per_put_few_bits(po, 0x00 | v, ct->range_bits)) - ASN__ENCODE_FAILED; - } else if (ct->range_bits == 8) { - if(aper_put_align(po) < 0) - ASN__ENCODE_FAILED; - if(per_put_few_bits(po, 0x00 | v, ct->range_bits)) - ASN__ENCODE_FAILED; - } else if (ct->range_bits <= 16) { - /* Consume the bytes to align on octet */ - if(aper_put_align(po) < 0) - ASN__ENCODE_FAILED; - if(per_put_few_bits(po, 0x0000 | v, - 16)) - ASN__ENCODE_FAILED; - } else { - /* TODO: extend to >64 bits */ - int64_t v64 = v; - int i, j; - int max_range_bytes = (ct->range_bits >> 3) + - (((ct->range_bits % 8) > 0) ? 1 : 0); - - for (i = 1; ; i++) { - int upper = 1 << i; - if (upper >= max_range_bytes) - break; - } - - for (j = sizeof(int64_t) -1; j != 0; j--) { - int64_t val; - val = v64 >> (j * 8); - if (val != 0) - break; - } - - /* Putting length in the minimum number of bits ex: 5 = 3bits */ - if (per_put_few_bits(po, j, i)) - ASN__ENCODE_FAILED; - - /* Consume the bits to align on octet */ - if (aper_put_align(po) < 0) - ASN__ENCODE_FAILED; - /* Put the value */ - for (i = 0; i <= j; i++) { - if(per_put_few_bits(po, (v64 >> (8 * (j - i))) & 0xff, 8)) - ASN__ENCODE_FAILED; - } - } - ASN__ENCODED_OK(er); - } - - if(ct && ct->lower_bound) { - ASN_DEBUG("Adjust lower bound to %ld", ct->lower_bound); - /* TODO: adjust lower bound */ - ASN__ENCODE_FAILED; - } - - for(buf = st->buf, end = st->buf + st->size; buf < end;) { - ssize_t mayEncode = aper_put_length(po, -1, end - buf); - if(mayEncode < 0) - ASN__ENCODE_FAILED; - if(per_put_many_bits(po, buf, 8 * mayEncode)) - ASN__ENCODE_FAILED; - buf += mayEncode; - } - - ASN__ENCODED_OK(er); -} - -#endif /* ASN_DISABLE_PER_SUPPORT */ - -static intmax_t -asn__integer_convert(const uint8_t *b, const uint8_t *end) { - uintmax_t value; - - /* Perform the sign initialization */ - /* Actually value = -(*b >> 7); gains nothing, yet unreadable! */ - if((*b >> 7)) { - value = (uintmax_t)(-1); - } else { - value = 0; - } - - /* Conversion engine */ - for(; b < end; b++) { - value = (value << 8) | *b; - } - - return value; -} - -int -asn_INTEGER2imax(const INTEGER_t *iptr, intmax_t *lptr) { - uint8_t *b, *end; - size_t size; - - /* Sanity checking */ - if(!iptr || !iptr->buf || !lptr) { - errno = EINVAL; - return -1; - } - - /* Cache the begin/end of the buffer */ - b = iptr->buf; /* Start of the INTEGER buffer */ - size = iptr->size; - end = b + size; /* Where to stop */ - - if(size > sizeof(intmax_t)) { - uint8_t *end1 = end - 1; - /* - * Slightly more advanced processing, - * able to process INTEGERs with >sizeof(intmax_t) bytes - * when the actual value is small, e.g. for intmax_t == int32_t - * (0x0000000000abcdef INTEGER would yield a fine 0x00abcdef int32_t) - */ - /* Skip out the insignificant leading bytes */ - for(; b < end1; b++) { - switch(*b) { - case 0x00: if((b[1] & 0x80) == 0) continue; break; - case 0xff: if((b[1] & 0x80) != 0) continue; break; - } - break; - } - - size = end - b; - if(size > sizeof(intmax_t)) { - /* Still cannot fit the sizeof(intmax_t) */ - errno = ERANGE; - return -1; - } - } - - /* Shortcut processing of a corner case */ - if(end == b) { - *lptr = 0; - return 0; - } - - *lptr = asn__integer_convert(b, end); - return 0; -} - -/* FIXME: negative INTEGER values are silently interpreted as large unsigned ones. */ -int -asn_INTEGER2umax(const INTEGER_t *iptr, uintmax_t *lptr) { - uint8_t *b, *end; - uintmax_t value; - size_t size; - - if(!iptr || !iptr->buf || !lptr) { - errno = EINVAL; - return -1; - } - - b = iptr->buf; - size = iptr->size; - end = b + size; - - /* If all extra leading bytes are zeroes, ignore them */ - for(; size > sizeof(value); b++, size--) { - if(*b) { - /* Value won't fit into uintmax_t */ - errno = ERANGE; - return -1; - } - } - - /* Conversion engine */ - for(value = 0; b < end; b++) - value = (value << 8) | *b; - - *lptr = value; - return 0; -} - -int -asn_umax2INTEGER(INTEGER_t *st, uintmax_t value) { - uint8_t *buf; - uint8_t *end; - uint8_t *b; - int shr; - - if(value <= ((~(uintmax_t)0) >> 1)) { - return asn_imax2INTEGER(st, value); - } - - buf = (uint8_t *)MALLOC(1 + sizeof(value)); - if(!buf) return -1; - - end = buf + (sizeof(value) + 1); - buf[0] = 0; /* INTEGERs are signed. 0-byte indicates positive. */ - for(b = buf + 1, shr = (sizeof(value) - 1) * 8; b < end; shr -= 8, b++) - *b = (uint8_t)(value >> shr); - - if(st->buf) FREEMEM(st->buf); - st->buf = buf; - st->size = 1 + sizeof(value); - - return 0; -} - -int -asn_imax2INTEGER(INTEGER_t *st, intmax_t value) { - uint8_t *buf, *bp; - uint8_t *p; - uint8_t *pstart; - uint8_t *pend1; - int littleEndian = 1; /* Run-time detection */ - int add; - - if(!st) { - errno = EINVAL; - return -1; - } - - buf = (uint8_t *)(long *)MALLOC(sizeof(value)); - if(!buf) return -1; - - if(*(char *)&littleEndian) { - pstart = (uint8_t *)&value + sizeof(value) - 1; - pend1 = (uint8_t *)&value; - add = -1; - } else { - pstart = (uint8_t *)&value; - pend1 = pstart + sizeof(value) - 1; - add = 1; - } - - /* - * If the contents octet consists of more than one octet, - * then bits of the first octet and bit 8 of the second octet: - * a) shall not all be ones; and - * b) shall not all be zero. - */ - for(p = pstart; p != pend1; p += add) { - switch(*p) { - case 0x00: if((*(p+add) & 0x80) == 0) - continue; - break; - case 0xff: if((*(p+add) & 0x80)) - continue; - break; - } - break; - } - /* Copy the integer body */ - for(bp = buf, pend1 += add; p != pend1; p += add) - *bp++ = *p; - - if(st->buf) FREEMEM(st->buf); - st->buf = buf; - st->size = bp - buf; - - return 0; -} - -int -asn_INTEGER2long(const INTEGER_t *iptr, long *l) { - intmax_t v; - if(asn_INTEGER2imax(iptr, &v) == 0) { - if(v < LONG_MIN || v > LONG_MAX) { - errno = ERANGE; - return -1; - } - *l = v; - return 0; - } else { - return -1; - } -} - -int -asn_INTEGER2ulong(const INTEGER_t *iptr, unsigned long *l) { - uintmax_t v; - if(asn_INTEGER2umax(iptr, &v) == 0) { - if(v > ULONG_MAX) { - errno = ERANGE; - return -1; - } - *l = v; - return 0; - } else { - return -1; - } -} - -int -asn_long2INTEGER(INTEGER_t *st, long value) { - return asn_imax2INTEGER(st, value); -} - -int -asn_ulong2INTEGER(INTEGER_t *st, unsigned long value) { - return asn_imax2INTEGER(st, value); -} - - -int -asn_uint642INTEGER(INTEGER_t *st, uint64_t value) { - uint8_t *buf; - uint8_t *end; - uint8_t *b; - int shr; - - if(value <= INT64_MAX) - return asn_int642INTEGER(st, value); - - buf = (uint8_t *)MALLOC(1 + sizeof(value)); - if(!buf) return -1; - - end = buf + (sizeof(value) + 1); - buf[0] = 0; - for(b = buf + 1, shr = (sizeof(value)-1)*8; b < end; shr -= 8, b++) - *b = (uint8_t)(value >> shr); - - if(st->buf) FREEMEM(st->buf); - st->buf = buf; - st->size = 1 + sizeof(value); - - return 0; -} - -int -asn_int642INTEGER(INTEGER_t *st, int64_t value) { - uint8_t *buf, *bp; - uint8_t *p; - uint8_t *pstart; - uint8_t *pend1; - int littleEndian = 1; /* Run-time detection */ - int add; - - if(!st) { - errno = EINVAL; - return -1; - } - - buf = (uint8_t *)MALLOC(sizeof(value)); - if(!buf) return -1; - - if(*(char *)&littleEndian) { - pstart = (uint8_t *)&value + sizeof(value) - 1; - pend1 = (uint8_t *)&value; - add = -1; - } else { - pstart = (uint8_t *)&value; - pend1 = pstart + sizeof(value) - 1; - add = 1; - } - - /* - * If the contents octet consists of more than one octet, - * then bits of the first octet and bit 8 of the second octet: - * a) shall not all be ones; and - * b) shall not all be zero. - */ - for(p = pstart; p != pend1; p += add) { - switch(*p) { - case 0x00: if((*(p+add) & 0x80) == 0) - continue; - break; - case 0xff: if((*(p+add) & 0x80)) - continue; - break; - } - break; - } - /* Copy the integer body */ - for(pstart = p, bp = buf, pend1 += add; p != pend1; p += add) - *bp++ = *p; - - if(st->buf) FREEMEM(st->buf); - st->buf = buf; - st->size = bp - buf; - - return 0; -} - -/* - * Parse the number in the given string until the given *end position, - * returning the position after the last parsed character back using the - * same (*end) pointer. - * WARNING: This behavior is different from the standard strtol/strtoimax(3). - */ -enum asn_strtox_result_e -asn_strtoimax_lim(const char *str, const char **end, intmax_t *intp) { - int sign = 1; - intmax_t value; - -#define ASN1_INTMAX_MAX ((~(uintmax_t)0) >> 1) - const intmax_t upper_boundary = ASN1_INTMAX_MAX / 10; - intmax_t last_digit_max = ASN1_INTMAX_MAX % 10; -#undef ASN1_INTMAX_MAX - - if(str >= *end) return ASN_STRTOX_ERROR_INVAL; - - switch(*str) { - case '-': - last_digit_max++; - sign = -1; - /* FALL THROUGH */ - case '+': - str++; - if(str >= *end) { - *end = str; - return ASN_STRTOX_EXPECT_MORE; - } - } - - for(value = 0; str < (*end); str++) { - switch(*str) { - case 0x30: case 0x31: case 0x32: case 0x33: case 0x34: - case 0x35: case 0x36: case 0x37: case 0x38: case 0x39: { - int d = *str - '0'; - if(value < upper_boundary) { - value = value * 10 + d; - } else if(value == upper_boundary) { - if(d <= last_digit_max) { - if(sign > 0) { - value = value * 10 + d; - } else { - sign = 1; - value = -value * 10 - d; - } - } else { - *end = str; - return ASN_STRTOX_ERROR_RANGE; - } - } else { - *end = str; - return ASN_STRTOX_ERROR_RANGE; - } - } - continue; - default: - *end = str; - *intp = sign * value; - return ASN_STRTOX_EXTRA_DATA; - } - } - - *end = str; - *intp = sign * value; - return ASN_STRTOX_OK; -} - -/* - * Parse the number in the given string until the given *end position, - * returning the position after the last parsed character back using the - * same (*end) pointer. - * WARNING: This behavior is different from the standard strtoul/strtoumax(3). - */ -enum asn_strtox_result_e -asn_strtoumax_lim(const char *str, const char **end, uintmax_t *uintp) { - uintmax_t value; - -#define ASN1_UINTMAX_MAX ((~(uintmax_t)0)) - const uintmax_t upper_boundary = ASN1_UINTMAX_MAX / 10; - uintmax_t last_digit_max = ASN1_UINTMAX_MAX % 10; -#undef ASN1_UINTMAX_MAX - - if(str >= *end) return ASN_STRTOX_ERROR_INVAL; - - switch(*str) { - case '-': - return ASN_STRTOX_ERROR_INVAL; - case '+': - str++; - if(str >= *end) { - *end = str; - return ASN_STRTOX_EXPECT_MORE; - } - } - - for(value = 0; str < (*end); str++) { - switch(*str) { - case 0x30: case 0x31: case 0x32: case 0x33: case 0x34: - case 0x35: case 0x36: case 0x37: case 0x38: case 0x39: { - unsigned int d = *str - '0'; - if(value < upper_boundary) { - value = value * 10 + d; - } else if(value == upper_boundary) { - if(d <= last_digit_max) { - value = value * 10 + d; - } else { - *end = str; - return ASN_STRTOX_ERROR_RANGE; - } - } else { - *end = str; - return ASN_STRTOX_ERROR_RANGE; - } - } - continue; - default: - *end = str; - *uintp = value; - return ASN_STRTOX_EXTRA_DATA; - } - } - - *end = str; - *uintp = value; - return ASN_STRTOX_OK; -} - -enum asn_strtox_result_e -asn_strtol_lim(const char *str, const char **end, long *lp) { - intmax_t value; - switch(asn_strtoimax_lim(str, end, &value)) { - case ASN_STRTOX_ERROR_RANGE: - return ASN_STRTOX_ERROR_RANGE; - case ASN_STRTOX_ERROR_INVAL: - return ASN_STRTOX_ERROR_INVAL; - case ASN_STRTOX_EXPECT_MORE: - return ASN_STRTOX_EXPECT_MORE; - case ASN_STRTOX_OK: - if(value >= LONG_MIN && value <= LONG_MAX) { - *lp = value; - return ASN_STRTOX_OK; - } else { - return ASN_STRTOX_ERROR_RANGE; - } - case ASN_STRTOX_EXTRA_DATA: - if(value >= LONG_MIN && value <= LONG_MAX) { - *lp = value; - return ASN_STRTOX_EXTRA_DATA; - } else { - return ASN_STRTOX_ERROR_RANGE; - } - } - - assert(!"Unreachable"); - return ASN_STRTOX_ERROR_INVAL; -} - -enum asn_strtox_result_e -asn_strtoul_lim(const char *str, const char **end, unsigned long *ulp) { - uintmax_t value; - switch(asn_strtoumax_lim(str, end, &value)) { - case ASN_STRTOX_ERROR_RANGE: - return ASN_STRTOX_ERROR_RANGE; - case ASN_STRTOX_ERROR_INVAL: - return ASN_STRTOX_ERROR_INVAL; - case ASN_STRTOX_EXPECT_MORE: - return ASN_STRTOX_EXPECT_MORE; - case ASN_STRTOX_OK: - if(value <= ULONG_MAX) { - *ulp = value; - return ASN_STRTOX_OK; - } else { - return ASN_STRTOX_ERROR_RANGE; - } - case ASN_STRTOX_EXTRA_DATA: - if(value <= ULONG_MAX) { - *ulp = value; - return ASN_STRTOX_EXTRA_DATA; - } else { - return ASN_STRTOX_ERROR_RANGE; - } - } - - assert(!"Unreachable"); - return ASN_STRTOX_ERROR_INVAL; -} - -int -INTEGER_compare(const asn_TYPE_descriptor_t *td, const void *aptr, - const void *bptr) { - const INTEGER_t *a = aptr; - const INTEGER_t *b = bptr; - - (void)td; - - if(a && b) { - if(a->size && b->size) { - int sign_a = (a->buf[0] & 0x80) ? -1 : 1; - int sign_b = (b->buf[0] & 0x80) ? -1 : 1; - - if(sign_a < sign_b) return -1; - if(sign_a > sign_b) return 1; - - /* The shortest integer wins, unless comparing negatives */ - if(a->size < b->size) { - return -1 * sign_a; - } else if(a->size > b->size) { - return 1 * sign_b; - } - - return sign_a * memcmp(a->buf, b->buf, a->size); - } else if(a->size) { - int sign = (a->buf[0] & 0x80) ? -1 : 1; - return (1) * sign; - } else if(b->size) { - int sign = (a->buf[0] & 0x80) ? -1 : 1; - return (-1) * sign; - } else { - return 0; - } - } else if(!a && !b) { - return 0; - } else if(!a) { - return -1; - } else { - return 1; - } - -} - -asn_random_fill_result_t -INTEGER_random_fill(const asn_TYPE_descriptor_t *td, void **sptr, - const asn_encoding_constraints_t *constraints, - size_t max_length) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - asn_random_fill_result_t result_ok = {ARFILL_OK, 1}; - asn_random_fill_result_t result_failed = {ARFILL_FAILED, 0}; - asn_random_fill_result_t result_skipped = {ARFILL_SKIPPED, 0}; - INTEGER_t *st = *sptr; - const asn_INTEGER_enum_map_t *emap; - size_t emap_len; - intmax_t value; - int find_inside_map; - - if(max_length == 0) return result_skipped; - - if(st == NULL) { - st = (INTEGER_t *)CALLOC(1, sizeof(*st)); - if(st == NULL) { - return result_failed; - } - } - - if(specs) { - emap = specs->value2enum; - emap_len = specs->map_count; - if(specs->strict_enumeration) { - find_inside_map = emap_len > 0; - } else { - find_inside_map = emap_len ? asn_random_between(0, 1) : 0; - } - } else { - emap = 0; - emap_len = 0; - find_inside_map = 0; - } - - if(find_inside_map) { - assert(emap_len > 0); - value = emap[asn_random_between(0, emap_len - 1)].nat_value; - } else { - const asn_per_constraints_t *ct; - - static const long variants[] = { - -65536, -65535, -65534, -32769, -32768, -32767, -16385, -16384, - -16383, -257, -256, -255, -254, -129, -128, -127, - -126, -1, 0, 1, 126, 127, 128, 129, - 254, 255, 256, 257, 16383, 16384, 16385, 32767, - 32768, 32769, 65534, 65535, 65536, 65537}; - if(specs && specs->field_unsigned) { - assert(variants[18] == 0); - value = variants[asn_random_between( - 18, sizeof(variants) / sizeof(variants[0]) - 1)]; - } else { - value = variants[asn_random_between( - 0, sizeof(variants) / sizeof(variants[0]) - 1)]; - } - - if(!constraints) constraints = &td->encoding_constraints; - ct = constraints ? constraints->per_constraints : 0; - if(ct && (ct->value.flags & APC_CONSTRAINED)) { - if(value < ct->value.lower_bound || value > ct->value.upper_bound) { - value = asn_random_between(ct->value.lower_bound, - ct->value.upper_bound); - } - } - } - - if(asn_imax2INTEGER(st, value)) { - if(st == *sptr) { - ASN_STRUCT_RESET(*td, st); - } else { - ASN_STRUCT_FREE(*td, st); - } - return result_failed; - } else { - *sptr = st; - result_ok.length = st->size; - return result_ok; - } -} diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/INTEGER.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/INTEGER.h deleted file mode 100644 index f776c07..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/INTEGER.h +++ /dev/null @@ -1,108 +0,0 @@ -/*- - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef _INTEGER_H_ -#define _INTEGER_H_ - -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -typedef ASN__PRIMITIVE_TYPE_t INTEGER_t; - -extern asn_TYPE_descriptor_t asn_DEF_INTEGER; -extern asn_TYPE_operation_t asn_OP_INTEGER; - -/* Map with to integer value association */ -typedef struct asn_INTEGER_enum_map_s { - long nat_value; /* associated native integer value */ - size_t enum_len; /* strlen("tag") */ - const char *enum_name; /* "tag" */ -} asn_INTEGER_enum_map_t; - -/* This type describes an enumeration for INTEGER and ENUMERATED types */ -typedef struct asn_INTEGER_specifics_s { - const asn_INTEGER_enum_map_t *value2enum; /* N -> "tag"; sorted by N */ - const unsigned int *enum2value; /* "tag" => N; sorted by tag */ - int map_count; /* Elements in either map */ - int extension; /* This map is extensible */ - int strict_enumeration; /* Enumeration set is fixed */ - int field_width; /* Size of native integer */ - int field_unsigned; /* Signed=0, unsigned=1 */ -} asn_INTEGER_specifics_t; - -#define INTEGER_free ASN__PRIMITIVE_TYPE_free -#define INTEGER_decode_ber ber_decode_primitive -#define INTEGER_constraint asn_generic_no_constraint -asn_struct_print_f INTEGER_print; -asn_struct_compare_f INTEGER_compare; -der_type_encoder_f INTEGER_encode_der; -xer_type_decoder_f INTEGER_decode_xer; -xer_type_encoder_f INTEGER_encode_xer; -oer_type_decoder_f INTEGER_decode_oer; -oer_type_encoder_f INTEGER_encode_oer; -per_type_decoder_f INTEGER_decode_uper; -per_type_encoder_f INTEGER_encode_uper; -per_type_decoder_f INTEGER_decode_aper; -per_type_encoder_f INTEGER_encode_aper; -asn_random_fill_f INTEGER_random_fill; - -/*********************************** - * Some handy conversion routines. * - ***********************************/ - -/* - * Natiwe size-independent conversion of native integers to/from INTEGER. - * (l_size) is in bytes. - * Returns 0 if it was possible to convert, -1 otherwise. - * -1/EINVAL: Mandatory argument missing - * -1/ERANGE: Value encoded is out of range for long representation - * -1/ENOMEM: Memory allocation failed (in asn_*2INTEGER()). - */ -int asn_INTEGER2imax(const INTEGER_t *i, intmax_t *l); -int asn_INTEGER2umax(const INTEGER_t *i, uintmax_t *l); -int asn_imax2INTEGER(INTEGER_t *i, intmax_t l); -int asn_umax2INTEGER(INTEGER_t *i, uintmax_t l); - -/* - * Size-specific conversion helpers. - */ -int asn_INTEGER2long(const INTEGER_t *i, long *l); -int asn_INTEGER2ulong(const INTEGER_t *i, unsigned long *l); -int asn_long2INTEGER(INTEGER_t *i, long l); -int asn_ulong2INTEGER(INTEGER_t *i, unsigned long l); -int asn_int642INTEGER(INTEGER_t *i, int64_t l); -int asn_uint642INTEGER(INTEGER_t *i, uint64_t l); - -/* A version of strtol/strtoimax(3) with nicer error reporting. */ -enum asn_strtox_result_e { - ASN_STRTOX_ERROR_RANGE = -3, /* Input outside of supported numeric range */ - ASN_STRTOX_ERROR_INVAL = -2, /* Invalid data encountered (e.g., "+-") */ - ASN_STRTOX_EXPECT_MORE = -1, /* More data expected (e.g. "+") */ - ASN_STRTOX_OK = 0, /* Conversion succeded, number ends at (*end) */ - ASN_STRTOX_EXTRA_DATA = 1 /* Conversion succeded, but the string has extra stuff */ -}; -enum asn_strtox_result_e asn_strtol_lim(const char *str, const char **end, - long *l); -enum asn_strtox_result_e asn_strtoul_lim(const char *str, const char **end, - unsigned long *l); -enum asn_strtox_result_e asn_strtoimax_lim(const char *str, const char **end, - intmax_t *l); -enum asn_strtox_result_e asn_strtoumax_lim(const char *str, const char **end, - uintmax_t *l); - -/* - * Convert the integer value into the corresponding enumeration map entry. - */ -const asn_INTEGER_enum_map_t *INTEGER_map_value2enum( - const asn_INTEGER_specifics_t *specs, long value); - -#ifdef __cplusplus -} -#endif - -#endif /* _INTEGER_H_ */ diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/INTEGER_oer.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/INTEGER_oer.c deleted file mode 100644 index 110689b..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/INTEGER_oer.c +++ /dev/null @@ -1,179 +0,0 @@ -/* - * Copyright (c) 2017 Lev Walkin . - * All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef ASN_DISABLE_OER_SUPPORT - -#include -#include -#include - -asn_dec_rval_t -INTEGER_decode_oer(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_oer_constraints_t *constraints, void **sptr, - const void *ptr, size_t size) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - asn_dec_rval_t rval = {RC_OK, 0}; - INTEGER_t *st = (INTEGER_t *)*sptr; - struct asn_oer_constraint_number_s ct = {0, 0}; - size_t req_bytes; - - (void)opt_codec_ctx; - (void)specs; - - if(!st) { - st = (INTEGER_t *)(*sptr = CALLOC(1, sizeof(*st))); - if(!st) ASN__DECODE_FAILED; - } - - FREEMEM(st->buf); - st->buf = 0; - st->size = 0; - - if(!constraints) constraints = td->encoding_constraints.oer_constraints; - if(constraints) ct = constraints->value; - - if(ct.width) { - req_bytes = ct.width; - } else { - /* No lower bound and no upper bound, effectively */ - - ssize_t consumed = oer_fetch_length(ptr, size, &req_bytes); - if(consumed == 0) { - ASN__DECODE_STARVED; - } else if(consumed == -1) { - ASN__DECODE_FAILED; - } - rval.consumed += consumed; - ptr = (const char *)ptr + consumed; - size -= consumed; - } - - if(req_bytes > size) { - ASN__DECODE_STARVED; - } - - if(ct.positive) { - /* X.969 08/2015 10.2(a) */ - unsigned msb; /* Most significant bit */ - size_t useful_size; - - /* Check most significant bit */ - msb = *(const uint8_t *)ptr >> 7; /* yields 0 or 1 */ - useful_size = msb + req_bytes; - st->buf = (uint8_t *)MALLOC(useful_size + 1); - if(!st->buf) { - ASN__DECODE_FAILED; - } - - /* - * Record a large unsigned in a way not to confuse it - * with signed value. - */ - st->buf[0] = '\0'; - memcpy(st->buf + msb, ptr, req_bytes); - st->buf[useful_size] = '\0'; /* Just in case, 0-terminate */ - st->size = useful_size; - - rval.consumed += req_bytes; - return rval; - } else { - /* X.969 08/2015 10.2(b) */ - st->buf = (uint8_t *)MALLOC(req_bytes + 1); - if(!st->buf) { - ASN__DECODE_FAILED; - } - - memcpy(st->buf, ptr, req_bytes); - st->buf[req_bytes] = '\0'; /* Just in case, 0-terminate */ - st->size = req_bytes; - - rval.consumed += req_bytes; - return rval; - } -} - -/* - * Encode as Canonical OER. - */ -asn_enc_rval_t -INTEGER_encode_oer(const asn_TYPE_descriptor_t *td, - const asn_oer_constraints_t *constraints, const void *sptr, - asn_app_consume_bytes_f *cb, void *app_key) { - const INTEGER_t *st = sptr; - asn_enc_rval_t er = {0,0,0}; - struct asn_oer_constraint_number_s ct = {0, 0}; - const uint8_t *buf; - const uint8_t *end; - size_t useful_bytes; - size_t req_bytes = 0; - int sign = 0; - - if(!st || st->size == 0) ASN__ENCODE_FAILED; - - if(!constraints) constraints = td->encoding_constraints.oer_constraints; - if(constraints) ct = constraints->value; - - er.encoded = 0; - - buf = st->buf; - end = buf + st->size; - - sign = (buf && buf < end) ? buf[0] & 0x80 : 0; - - /* Ignore 9 leading zeroes or ones */ - if(ct.positive) { - if(sign) { - /* The value given is a signed value. Can't proceed. */ - ASN__ENCODE_FAILED; - } - /* Remove leading zeros. */ - for(; buf + 1 < end; buf++) { - if(buf[0] != 0x0) break; - } - } else { - for(; buf + 1 < end; buf++) { - if(buf[0] == 0x0 && (buf[1] & 0x80) == 0) { - continue; - } else if(buf[0] == 0xff && (buf[1] & 0x80) != 0) { - continue; - } - break; - } - } - - useful_bytes = end - buf; - if(ct.width) { - req_bytes = ct.width; - } else { - ssize_t r = oer_serialize_length(useful_bytes, cb, app_key); - if(r < 0) { - ASN__ENCODE_FAILED; - } - er.encoded += r; - req_bytes = useful_bytes; - } - - if(req_bytes < useful_bytes) { - ASN__ENCODE_FAILED; - } - - er.encoded += req_bytes; - - for(; req_bytes > useful_bytes; req_bytes--) { - if(cb(sign?"\xff":"\0", 1, app_key) < 0) { - ASN__ENCODE_FAILED; - } - } - - if(cb(buf, useful_bytes, app_key) < 0) { - ASN__ENCODE_FAILED; - } - - ASN__ENCODED_OK(er); -} - -#endif /* ASN_DISABLE_OER_SUPPORT */ diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/InitiatingMessage.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/InitiatingMessage.c deleted file mode 100644 index de67caf..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/InitiatingMessage.c +++ /dev/null @@ -1,389 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Descriptions" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "InitiatingMessage.h" - -static const long asn_VAL_1_id_RICsubscription = 8; -static const long asn_VAL_1_reject = 0; -static const long asn_VAL_2_id_RICsubscriptionDelete = 9; -static const long asn_VAL_2_reject = 0; -static const long asn_VAL_3_id_RICserviceUpdate = 7; -static const long asn_VAL_3_reject = 0; -static const long asn_VAL_4_id_RICcontrol = 4; -static const long asn_VAL_4_reject = 0; -static const long asn_VAL_5_id_E2setup = 1; -static const long asn_VAL_5_reject = 0; -static const long asn_VAL_6_id_Reset = 3; -static const long asn_VAL_6_reject = 0; -static const long asn_VAL_7_id_RICindication = 5; -static const long asn_VAL_7_ignore = 1; -static const long asn_VAL_8_id_RICserviceQuery = 6; -static const long asn_VAL_8_ignore = 1; -static const long asn_VAL_9_id_ErrorIndication = 2; -static const long asn_VAL_9_ignore = 1; -static const asn_ioc_cell_t asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1_rows[] = { - { "&InitiatingMessage", aioc__type, &asn_DEF_RICsubscriptionRequest }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionResponse }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_1_id_RICsubscription }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_1_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_RICsubscriptionDeleteRequest }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionDeleteResponse }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionDeleteFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_2_id_RICsubscriptionDelete }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_2_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_RICserviceUpdate }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_RICserviceUpdateAcknowledge }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RICserviceUpdateFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_3_id_RICserviceUpdate }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_3_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_RICcontrolRequest }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_RICcontrolAcknowledge }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RICcontrolFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_4_id_RICcontrol }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_4_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_E2setupRequest }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_E2setupResponse }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_E2setupFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_5_id_E2setup }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_5_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_ResetRequest }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_ResetResponse }, - { "&UnsuccessfulOutcome", }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_6_id_Reset }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_6_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_RICindication }, - { "&SuccessfulOutcome", }, - { "&UnsuccessfulOutcome", }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_7_id_RICindication }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_7_ignore }, - { "&InitiatingMessage", aioc__type, &asn_DEF_RICserviceQuery }, - { "&SuccessfulOutcome", }, - { "&UnsuccessfulOutcome", }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_8_id_RICserviceQuery }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_8_ignore }, - { "&InitiatingMessage", aioc__type, &asn_DEF_ErrorIndication }, - { "&SuccessfulOutcome", }, - { "&UnsuccessfulOutcome", }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_9_id_ErrorIndication }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_9_ignore } -}; -static const asn_ioc_set_t asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1[] = { - { 9, 5, asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1_rows } -}; -static int -memb_procedureCode_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 255)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_InitiatingMessage_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1; - size_t constraining_column = 3; /* &procedureCode */ - size_t for_column = 4; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct InitiatingMessage, procedureCode)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_InitiatingMessage_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1; - size_t constraining_column = 3; /* &procedureCode */ - size_t for_column = 0; /* &InitiatingMessage */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct InitiatingMessage, procedureCode)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_per_constraints_t asn_PER_memb_procedureCode_constr_2 CC_NOTUSED = { - { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_3 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_4 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_value_4[] = { - { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.RICsubscriptionRequest), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICsubscriptionRequest, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICsubscriptionRequest" - }, - { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.RICsubscriptionDeleteRequest), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICsubscriptionDeleteRequest, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICsubscriptionDeleteRequest" - }, - { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.RICserviceUpdate), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICserviceUpdate, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICserviceUpdate" - }, - { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.RICcontrolRequest), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICcontrolRequest, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICcontrolRequest" - }, - { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.E2setupRequest), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E2setupRequest, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "E2setupRequest" - }, - { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.ResetRequest), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ResetRequest, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ResetRequest" - }, - { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.RICindication), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICindication, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICindication" - }, - { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.RICserviceQuery), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICserviceQuery, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICserviceQuery" - }, - { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.ErrorIndication), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ErrorIndication, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ErrorIndication" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_4[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 8 }, /* RICsubscriptionRequest */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 7 }, /* RICsubscriptionDeleteRequest */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -2, 6 }, /* RICserviceUpdate */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -3, 5 }, /* RICcontrolRequest */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, -4, 4 }, /* E2setupRequest */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 5, -5, 3 }, /* ResetRequest */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 6, -6, 2 }, /* RICindication */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 7, -7, 1 }, /* RICserviceQuery */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 8, -8, 0 } /* ErrorIndication */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_4 = { - sizeof(struct InitiatingMessage__value), - offsetof(struct InitiatingMessage__value, _asn_ctx), - offsetof(struct InitiatingMessage__value, present), - sizeof(((struct InitiatingMessage__value *)0)->present), - asn_MAP_value_tag2el_4, - 9, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_4 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_4, - 9, /* Elements count */ - &asn_SPC_value_specs_4 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_InitiatingMessage_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage, procedureCode), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProcedureCode, - 0, - { 0, &asn_PER_memb_procedureCode_constr_2, memb_procedureCode_constraint_1 }, - 0, 0, /* No default value */ - "procedureCode" - }, - { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_InitiatingMessage_criticality_type, - { 0, &asn_PER_memb_criticality_constr_3, memb_criticality_constraint_1 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_4, - select_InitiatingMessage_value_type, - { 0, &asn_PER_memb_value_constr_4, memb_value_constraint_1 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_InitiatingMessage_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_InitiatingMessage_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* procedureCode */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_InitiatingMessage_specs_1 = { - sizeof(struct InitiatingMessage), - offsetof(struct InitiatingMessage, _asn_ctx), - asn_MAP_InitiatingMessage_tag2el_1, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_InitiatingMessage = { - "InitiatingMessage", - "InitiatingMessage", - &asn_OP_SEQUENCE, - asn_DEF_InitiatingMessage_tags_1, - sizeof(asn_DEF_InitiatingMessage_tags_1) - /sizeof(asn_DEF_InitiatingMessage_tags_1[0]), /* 1 */ - asn_DEF_InitiatingMessage_tags_1, /* Same as above */ - sizeof(asn_DEF_InitiatingMessage_tags_1) - /sizeof(asn_DEF_InitiatingMessage_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_InitiatingMessage_1, - 3, /* Elements count */ - &asn_SPC_InitiatingMessage_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/InitiatingMessage.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/InitiatingMessage.h deleted file mode 100644 index a8a01f6..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/InitiatingMessage.h +++ /dev/null @@ -1,97 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Descriptions" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _InitiatingMessage_H_ -#define _InitiatingMessage_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProcedureCode.h" -#include "Criticality.h" -#include "ANY.h" -#include "asn_ioc.h" -#include "RICsubscriptionRequest.h" -#include "RICsubscriptionResponse.h" -#include "RICsubscriptionFailure.h" -#include "RICsubscriptionDeleteRequest.h" -#include "RICsubscriptionDeleteResponse.h" -#include "RICsubscriptionDeleteFailure.h" -#include "RICserviceUpdate.h" -#include "RICserviceUpdateAcknowledge.h" -#include "RICserviceUpdateFailure.h" -#include "RICcontrolRequest.h" -#include "RICcontrolAcknowledge.h" -#include "RICcontrolFailure.h" -#include "E2setupRequest.h" -#include "E2setupResponse.h" -#include "E2setupFailure.h" -#include "ResetRequest.h" -#include "ResetResponse.h" -#include "RICindication.h" -#include "RICserviceQuery.h" -#include "ErrorIndication.h" -#include "OPEN_TYPE.h" -#include "constr_CHOICE.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum InitiatingMessage__value_PR { - InitiatingMessage__value_PR_NOTHING, /* No components present */ - InitiatingMessage__value_PR_RICsubscriptionRequest, - InitiatingMessage__value_PR_RICsubscriptionDeleteRequest, - InitiatingMessage__value_PR_RICserviceUpdate, - InitiatingMessage__value_PR_RICcontrolRequest, - InitiatingMessage__value_PR_E2setupRequest, - InitiatingMessage__value_PR_ResetRequest, - InitiatingMessage__value_PR_RICindication, - InitiatingMessage__value_PR_RICserviceQuery, - InitiatingMessage__value_PR_ErrorIndication -} InitiatingMessage__value_PR; - -/* InitiatingMessage */ -typedef struct InitiatingMessage { - ProcedureCode_t procedureCode; - Criticality_t criticality; - struct InitiatingMessage__value { - InitiatingMessage__value_PR present; - union InitiatingMessage__value_u { - RICsubscriptionRequest_t RICsubscriptionRequest; - RICsubscriptionDeleteRequest_t RICsubscriptionDeleteRequest; - RICserviceUpdate_t RICserviceUpdate; - RICcontrolRequest_t RICcontrolRequest; - E2setupRequest_t E2setupRequest; - ResetRequest_t ResetRequest; - RICindication_t RICindication; - RICserviceQuery_t RICserviceQuery; - ErrorIndication_t ErrorIndication; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} InitiatingMessage_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_InitiatingMessage; -extern asn_SEQUENCE_specifics_t asn_SPC_InitiatingMessage_specs_1; -extern asn_TYPE_member_t asn_MBR_InitiatingMessage_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _InitiatingMessage_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/Makefile.am.asn1convert b/e2sim/previous/e2apv1sim/ricsim/ASN1c/Makefile.am.asn1convert deleted file mode 100644 index c1bec19..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/Makefile.am.asn1convert +++ /dev/null @@ -1,14 +0,0 @@ -include Makefile.am.libasncodec - -bin_PROGRAMS += asn1convert -asn1convert_CFLAGS = $(ASN_MODULE_CFLAGS) -DASN_PDU_COLLECTION -asn1convert_CPPFLAGS = -I$(top_srcdir)/ -asn1convert_LDADD = libasncodec.la -asn1convert_SOURCES = \ - converter-example.c\ - pdu_collection.c -regen: regenerate-from-asn1-source - -regenerate-from-asn1-source: - asn1c -fcompound-names /home/rshacham/e2sm-kpm-v01.02.asn - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/Makefile.am.libasncodec b/e2sim/previous/e2apv1sim/ricsim/ASN1c/Makefile.am.libasncodec deleted file mode 100644 index 8abd4f1..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/Makefile.am.libasncodec +++ /dev/null @@ -1,240 +0,0 @@ -ASN_MODULE_SRCS= \ - GlobalKPMnode-ID.c \ - GlobalKPMnode-gNB-ID.c \ - GlobalgNB-ID.c \ - GNB-CU-UP-ID.c \ - GNB-DU-ID.c \ - GNB-ID-Choice.c \ - GlobalKPMnode-en-gNB-ID.c \ - GlobalenGNB-ID.c \ - ENGNB-ID.c \ - GlobalKPMnode-ng-eNB-ID.c \ - GlobalngeNB-ID.c \ - ENB-ID-Choice.c \ - GlobalKPMnode-eNB-ID.c \ - GlobalENB-ID.c \ - ENB-ID.c \ - NRCGI.c \ - PLMN-Identity.c \ - NRCellIdentity.c \ - SNSSAI.c \ - C-RNTI.c \ - RIC-Style-Type.c \ - RIC-Style-Name.c \ - RIC-Format-Type.c \ - E2SM-KPM-EventTriggerDefinition.c \ - E2SM-KPM-EventTriggerDefinition-Format1.c \ - E2SM-KPM-ActionDefinition.c \ - E2SM-KPM-IndicationHeader.c \ - E2SM-KPM-IndicationHeader-Format1.c \ - E2SM-KPM-IndicationMessage.c \ - E2SM-KPM-IndicationMessage-Format1.c \ - PM-Containers-List.c \ - E2SM-KPM-RANfunction-Description.c \ - NI-Type.c \ - RAN-Container.c \ - Timestamp.c \ - Trigger-ConditionIE-Item.c \ - RT-Period-IE.c \ - RANcallProcess-ID-string.c \ - RANfunction-Name.c \ - RIC-EventTriggerStyle-List.c \ - RIC-ReportStyle-List.c \ - PF-Container.c \ - GNB-Name.c \ - GNB-CU-CP-Name.c \ - GNB-DU-Name.c \ - GNB-CU-UP-Name.c \ - UE-Report-Type.c \ - ODU-PF-Container.c \ - CellResourceReportListItem.c \ - ServedPlmnPerCellListItem.c \ - FGC-DU-PM-Container.c \ - SlicePerPlmnPerCellListItem.c \ - FQIPERSlicesPerPlmnPerCellListItem.c \ - EPC-DU-PM-Container.c \ - PerQCIReportListItem.c \ - DU-Usage-Report-Per-UE.c \ - DU-Usage-Report-CellResourceReportItem.c \ - DU-Usage-Report-UeResourceReportItem.c \ - OCUCP-PF-Container.c \ - CU-CP-Usage-Report-Per-UE.c \ - CU-CP-Usage-Report-CellResourceReportItem.c \ - CU-CP-Usage-Report-UeResourceReportItem.c \ - OCUUP-PF-Container.c \ - PF-ContainerListItem.c \ - CUUPMeasurement-Container.c \ - PlmnID-List.c \ - FGC-CUUP-PM-Format.c \ - SliceToReportListItem.c \ - FQIPERSlicesPerPlmnListItem.c \ - EPC-CUUP-PM-Format.c \ - PerQCIReportListItemFormat.c \ - CU-UP-Usage-Report-Per-UE.c \ - CU-UP-Usage-Report-CellResourceReportItem.c \ - CU-UP-Usage-Report-UeResourceReportItem.c - -ASN_MODULE_HDRS= \ - GlobalKPMnode-ID.h \ - GlobalKPMnode-gNB-ID.h \ - GlobalgNB-ID.h \ - GNB-CU-UP-ID.h \ - GNB-DU-ID.h \ - GNB-ID-Choice.h \ - GlobalKPMnode-en-gNB-ID.h \ - GlobalenGNB-ID.h \ - ENGNB-ID.h \ - GlobalKPMnode-ng-eNB-ID.h \ - GlobalngeNB-ID.h \ - ENB-ID-Choice.h \ - GlobalKPMnode-eNB-ID.h \ - GlobalENB-ID.h \ - ENB-ID.h \ - NRCGI.h \ - PLMN-Identity.h \ - NRCellIdentity.h \ - SNSSAI.h \ - C-RNTI.h \ - RIC-Style-Type.h \ - RIC-Style-Name.h \ - RIC-Format-Type.h \ - E2SM-KPM-EventTriggerDefinition.h \ - E2SM-KPM-EventTriggerDefinition-Format1.h \ - E2SM-KPM-ActionDefinition.h \ - E2SM-KPM-IndicationHeader.h \ - E2SM-KPM-IndicationHeader-Format1.h \ - E2SM-KPM-IndicationMessage.h \ - E2SM-KPM-IndicationMessage-Format1.h \ - PM-Containers-List.h \ - E2SM-KPM-RANfunction-Description.h \ - NI-Type.h \ - RAN-Container.h \ - Timestamp.h \ - Trigger-ConditionIE-Item.h \ - RT-Period-IE.h \ - RANcallProcess-ID-string.h \ - RANfunction-Name.h \ - RIC-EventTriggerStyle-List.h \ - RIC-ReportStyle-List.h \ - PF-Container.h \ - GNB-Name.h \ - GNB-CU-CP-Name.h \ - GNB-DU-Name.h \ - GNB-CU-UP-Name.h \ - UE-Report-Type.h \ - ODU-PF-Container.h \ - CellResourceReportListItem.h \ - ServedPlmnPerCellListItem.h \ - FGC-DU-PM-Container.h \ - SlicePerPlmnPerCellListItem.h \ - FQIPERSlicesPerPlmnPerCellListItem.h \ - EPC-DU-PM-Container.h \ - PerQCIReportListItem.h \ - DU-Usage-Report-Per-UE.h \ - DU-Usage-Report-CellResourceReportItem.h \ - DU-Usage-Report-UeResourceReportItem.h \ - OCUCP-PF-Container.h \ - CU-CP-Usage-Report-Per-UE.h \ - CU-CP-Usage-Report-CellResourceReportItem.h \ - CU-CP-Usage-Report-UeResourceReportItem.h \ - OCUUP-PF-Container.h \ - PF-ContainerListItem.h \ - CUUPMeasurement-Container.h \ - PlmnID-List.h \ - FGC-CUUP-PM-Format.h \ - SliceToReportListItem.h \ - FQIPERSlicesPerPlmnListItem.h \ - EPC-CUUP-PM-Format.h \ - PerQCIReportListItemFormat.h \ - CU-UP-Usage-Report-Per-UE.h \ - CU-UP-Usage-Report-CellResourceReportItem.h \ - CU-UP-Usage-Report-UeResourceReportItem.h - -ASN_MODULE_HDRS+=OPEN_TYPE.h -ASN_MODULE_SRCS+=OPEN_TYPE.c -ASN_MODULE_HDRS+=constr_CHOICE.h -ASN_MODULE_HDRS+=INTEGER.h -ASN_MODULE_SRCS+=INTEGER.c -ASN_MODULE_HDRS+=NativeEnumerated.h -ASN_MODULE_SRCS+=NativeEnumerated.c -ASN_MODULE_HDRS+=NativeInteger.h -ASN_MODULE_SRCS+=NativeInteger.c -ASN_MODULE_HDRS+=PrintableString.h -ASN_MODULE_SRCS+=PrintableString.c -ASN_MODULE_HDRS+=OCTET_STRING.h -ASN_MODULE_HDRS+=asn_SEQUENCE_OF.h -ASN_MODULE_SRCS+=asn_SEQUENCE_OF.c -ASN_MODULE_HDRS+=asn_SET_OF.h -ASN_MODULE_SRCS+=asn_SET_OF.c -ASN_MODULE_SRCS+=constr_CHOICE.c -ASN_MODULE_HDRS+=constr_SEQUENCE.h -ASN_MODULE_SRCS+=constr_SEQUENCE.c -ASN_MODULE_HDRS+=constr_SEQUENCE_OF.h -ASN_MODULE_SRCS+=constr_SEQUENCE_OF.c -ASN_MODULE_HDRS+=constr_SET_OF.h -ASN_MODULE_SRCS+=constr_SET_OF.c -ASN_MODULE_HDRS+=asn_application.h -ASN_MODULE_SRCS+=asn_application.c -ASN_MODULE_HDRS+=asn_ioc.h -ASN_MODULE_HDRS+=asn_system.h -ASN_MODULE_HDRS+=asn_codecs.h -ASN_MODULE_HDRS+=asn_internal.h -ASN_MODULE_SRCS+=asn_internal.c -ASN_MODULE_HDRS+=asn_random_fill.h -ASN_MODULE_SRCS+=asn_random_fill.c -ASN_MODULE_HDRS+=asn_bit_data.h -ASN_MODULE_SRCS+=asn_bit_data.c -ASN_MODULE_SRCS+=OCTET_STRING.c -ASN_MODULE_HDRS+=BIT_STRING.h -ASN_MODULE_SRCS+=BIT_STRING.c -ASN_MODULE_SRCS+=asn_codecs_prim.c -ASN_MODULE_HDRS+=asn_codecs_prim.h -ASN_MODULE_HDRS+=ber_tlv_length.h -ASN_MODULE_SRCS+=ber_tlv_length.c -ASN_MODULE_HDRS+=ber_tlv_tag.h -ASN_MODULE_SRCS+=ber_tlv_tag.c -ASN_MODULE_HDRS+=ber_decoder.h -ASN_MODULE_SRCS+=ber_decoder.c -ASN_MODULE_HDRS+=der_encoder.h -ASN_MODULE_SRCS+=der_encoder.c -ASN_MODULE_HDRS+=constr_TYPE.h -ASN_MODULE_SRCS+=constr_TYPE.c -ASN_MODULE_HDRS+=constraints.h -ASN_MODULE_SRCS+=constraints.c -ASN_MODULE_HDRS+=xer_support.h -ASN_MODULE_SRCS+=xer_support.c -ASN_MODULE_HDRS+=xer_decoder.h -ASN_MODULE_SRCS+=xer_decoder.c -ASN_MODULE_HDRS+=xer_encoder.h -ASN_MODULE_SRCS+=xer_encoder.c -ASN_MODULE_HDRS+=per_support.h -ASN_MODULE_SRCS+=per_support.c -ASN_MODULE_HDRS+=per_decoder.h -ASN_MODULE_SRCS+=per_decoder.c -ASN_MODULE_HDRS+=per_encoder.h -ASN_MODULE_SRCS+=per_encoder.c -ASN_MODULE_HDRS+=per_opentype.h -ASN_MODULE_SRCS+=per_opentype.c -ASN_MODULE_HDRS+=oer_decoder.h -ASN_MODULE_HDRS+=oer_encoder.h -ASN_MODULE_HDRS+=oer_support.h -ASN_MODULE_SRCS+=oer_decoder.c -ASN_MODULE_SRCS+=oer_encoder.c -ASN_MODULE_SRCS+=oer_support.c -ASN_MODULE_SRCS+=OPEN_TYPE_oer.c -ASN_MODULE_SRCS+=INTEGER_oer.c -ASN_MODULE_SRCS+=BIT_STRING_oer.c -ASN_MODULE_SRCS+=OCTET_STRING_oer.c -ASN_MODULE_SRCS+=NativeInteger_oer.c -ASN_MODULE_SRCS+=NativeEnumerated_oer.c -ASN_MODULE_SRCS+=constr_CHOICE_oer.c -ASN_MODULE_SRCS+=constr_SEQUENCE_oer.c -ASN_MODULE_SRCS+=constr_SET_OF_oer.c - -ASN_MODULE_CFLAGS= - -lib_LTLIBRARIES+=libasncodec.la -libasncodec_la_SOURCES=$(ASN_MODULE_SRCS) $(ASN_MODULE_HDRS) -libasncodec_la_CPPFLAGS=-I$(top_srcdir)/ -libasncodec_la_CFLAGS=$(ASN_MODULE_CFLAGS) -libasncodec_la_LDFLAGS=-lm diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/NI-Type.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/NI-Type.c deleted file mode 100644 index 1162fd8..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/NI-Type.c +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "NI-Type.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -static asn_oer_constraints_t asn_OER_type_NI_Type_constr_1 CC_NOTUSED = { - { 0, 0 }, - -1}; -asn_per_constraints_t asn_PER_type_NI_Type_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 2 } /* (0..2,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_NI_Type_value2enum_1[] = { - { 0, 4, "x2-u" }, - { 1, 4, "xn-u" }, - { 2, 4, "f1-u" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_NI_Type_enum2value_1[] = { - 2, /* f1-u(2) */ - 0, /* x2-u(0) */ - 1 /* xn-u(1) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_NI_Type_specs_1 = { - asn_MAP_NI_Type_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_NI_Type_enum2value_1, /* N => "tag"; sorted by N */ - 3, /* Number of elements in the maps */ - 4, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_NI_Type_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_NI_Type = { - "NI-Type", - "NI-Type", - &asn_OP_NativeEnumerated, - asn_DEF_NI_Type_tags_1, - sizeof(asn_DEF_NI_Type_tags_1) - /sizeof(asn_DEF_NI_Type_tags_1[0]), /* 1 */ - asn_DEF_NI_Type_tags_1, /* Same as above */ - sizeof(asn_DEF_NI_Type_tags_1) - /sizeof(asn_DEF_NI_Type_tags_1[0]), /* 1 */ - { &asn_OER_type_NI_Type_constr_1, &asn_PER_type_NI_Type_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_NI_Type_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/NI-Type.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/NI-Type.h deleted file mode 100644 index c696a44..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/NI-Type.h +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _NI_Type_H_ -#define _NI_Type_H_ - - -#include - -/* Including external dependencies */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum NI_Type { - NI_Type_x2_u = 0, - NI_Type_xn_u = 1, - NI_Type_f1_u = 2 - /* - * Enumeration is extensible - */ -} e_NI_Type; - -/* NI-Type */ -typedef long NI_Type_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_NI_Type_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_NI_Type; -extern const asn_INTEGER_specifics_t asn_SPC_NI_Type_specs_1; -asn_struct_free_f NI_Type_free; -asn_struct_print_f NI_Type_print; -asn_constr_check_f NI_Type_constraint; -ber_type_decoder_f NI_Type_decode_ber; -der_type_encoder_f NI_Type_encode_der; -xer_type_decoder_f NI_Type_decode_xer; -xer_type_encoder_f NI_Type_encode_xer; -oer_type_decoder_f NI_Type_decode_oer; -oer_type_encoder_f NI_Type_encode_oer; -per_type_decoder_f NI_Type_decode_uper; -per_type_encoder_f NI_Type_encode_uper; -per_type_decoder_f NI_Type_decode_aper; -per_type_encoder_f NI_Type_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _NI_Type_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/NRCGI.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/NRCGI.c deleted file mode 100644 index 94d8d4b..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/NRCGI.c +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "NRCGI.h" - -asn_TYPE_member_t asn_MBR_NRCGI_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct NRCGI, pLMN_Identity), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_PLMN_Identity, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "pLMN-Identity" - }, - { ATF_NOFLAGS, 0, offsetof(struct NRCGI, nRCellIdentity), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NRCellIdentity, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "nRCellIdentity" - }, -}; -static const ber_tlv_tag_t asn_DEF_NRCGI_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_NRCGI_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pLMN-Identity */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* nRCellIdentity */ -}; -asn_SEQUENCE_specifics_t asn_SPC_NRCGI_specs_1 = { - sizeof(struct NRCGI), - offsetof(struct NRCGI, _asn_ctx), - asn_MAP_NRCGI_tag2el_1, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_NRCGI = { - "NRCGI", - "NRCGI", - &asn_OP_SEQUENCE, - asn_DEF_NRCGI_tags_1, - sizeof(asn_DEF_NRCGI_tags_1) - /sizeof(asn_DEF_NRCGI_tags_1[0]), /* 1 */ - asn_DEF_NRCGI_tags_1, /* Same as above */ - sizeof(asn_DEF_NRCGI_tags_1) - /sizeof(asn_DEF_NRCGI_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_NRCGI_1, - 2, /* Elements count */ - &asn_SPC_NRCGI_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/NRCGI.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/NRCGI.h deleted file mode 100644 index b4938d0..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/NRCGI.h +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _NRCGI_H_ -#define _NRCGI_H_ - - -#include - -/* Including external dependencies */ -#include "PLMN-Identity.h" -#include "NRCellIdentity.h" -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* NRCGI */ -typedef struct NRCGI { - PLMN_Identity_t pLMN_Identity; - NRCellIdentity_t nRCellIdentity; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} NRCGI_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_NRCGI; -extern asn_SEQUENCE_specifics_t asn_SPC_NRCGI_specs_1; -extern asn_TYPE_member_t asn_MBR_NRCGI_1[2]; - -#ifdef __cplusplus -} -#endif - -#endif /* _NRCGI_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/NRCellIdentity.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/NRCellIdentity.c deleted file mode 100644 index 8e0310e..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/NRCellIdentity.c +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "NRCellIdentity.h" - -int -NRCellIdentity_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if(st->size > 0) { - /* Size in bits */ - size = 8 * st->size - (st->bits_unused & 0x07); - } else { - size = 0; - } - - if((size == 36)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using BIT_STRING, - * so here we adjust the DEF accordingly. - */ -static asn_oer_constraints_t asn_OER_type_NRCellIdentity_constr_1 CC_NOTUSED = { - { 0, 0 }, - 36 /* (SIZE(36..36)) */}; -asn_per_constraints_t asn_PER_type_NRCellIdentity_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 0, 0, 36, 36 } /* (SIZE(36..36)) */, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_NRCellIdentity_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_NRCellIdentity = { - "NRCellIdentity", - "NRCellIdentity", - &asn_OP_BIT_STRING, - asn_DEF_NRCellIdentity_tags_1, - sizeof(asn_DEF_NRCellIdentity_tags_1) - /sizeof(asn_DEF_NRCellIdentity_tags_1[0]), /* 1 */ - asn_DEF_NRCellIdentity_tags_1, /* Same as above */ - sizeof(asn_DEF_NRCellIdentity_tags_1) - /sizeof(asn_DEF_NRCellIdentity_tags_1[0]), /* 1 */ - { &asn_OER_type_NRCellIdentity_constr_1, &asn_PER_type_NRCellIdentity_constr_1, NRCellIdentity_constraint }, - 0, 0, /* No members */ - &asn_SPC_BIT_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/NRCellIdentity.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/NRCellIdentity.h deleted file mode 100644 index 701f381..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/NRCellIdentity.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _NRCellIdentity_H_ -#define _NRCellIdentity_H_ - - -#include - -/* Including external dependencies */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* NRCellIdentity */ -typedef BIT_STRING_t NRCellIdentity_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_NRCellIdentity_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_NRCellIdentity; -asn_struct_free_f NRCellIdentity_free; -asn_struct_print_f NRCellIdentity_print; -asn_constr_check_f NRCellIdentity_constraint; -ber_type_decoder_f NRCellIdentity_decode_ber; -der_type_encoder_f NRCellIdentity_encode_der; -xer_type_decoder_f NRCellIdentity_decode_xer; -xer_type_encoder_f NRCellIdentity_encode_xer; -oer_type_decoder_f NRCellIdentity_decode_oer; -oer_type_encoder_f NRCellIdentity_encode_oer; -per_type_decoder_f NRCellIdentity_decode_uper; -per_type_encoder_f NRCellIdentity_encode_uper; -per_type_decoder_f NRCellIdentity_decode_aper; -per_type_encoder_f NRCellIdentity_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _NRCellIdentity_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/NativeEnumerated.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/NativeEnumerated.c deleted file mode 100644 index 50ffb1d..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/NativeEnumerated.c +++ /dev/null @@ -1,367 +0,0 @@ -/*- - * Copyright (c) 2004, 2007 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -/* - * Read the NativeInteger.h for the explanation wrt. differences between - * INTEGER and NativeInteger. - * Basically, both are decoders and encoders of ASN.1 INTEGER type, but this - * implementation deals with the standard (machine-specific) representation - * of them instead of using the platform-independent buffer. - */ -#include -#include - -/* - * NativeEnumerated basic type description. - */ -static const ber_tlv_tag_t asn_DEF_NativeEnumerated_tags[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_operation_t asn_OP_NativeEnumerated = { - NativeInteger_free, - NativeInteger_print, - NativeInteger_compare, - NativeInteger_decode_ber, - NativeInteger_encode_der, - NativeInteger_decode_xer, - NativeEnumerated_encode_xer, -#ifdef ASN_DISABLE_OER_SUPPORT - 0, - 0, -#else - NativeEnumerated_decode_oer, - NativeEnumerated_encode_oer, -#endif /* ASN_DISABLE_OER_SUPPORT */ -#ifdef ASN_DISABLE_PER_SUPPORT - 0, - 0, - 0, - 0, -#else - NativeEnumerated_decode_uper, - NativeEnumerated_encode_uper, - NativeEnumerated_decode_aper, - NativeEnumerated_encode_aper, -#endif /* ASN_DISABLE_PER_SUPPORT */ - NativeEnumerated_random_fill, - 0 /* Use generic outmost tag fetcher */ -}; -asn_TYPE_descriptor_t asn_DEF_NativeEnumerated = { - "ENUMERATED", /* The ASN.1 type is still ENUMERATED */ - "ENUMERATED", - &asn_OP_NativeEnumerated, - asn_DEF_NativeEnumerated_tags, - sizeof(asn_DEF_NativeEnumerated_tags) / sizeof(asn_DEF_NativeEnumerated_tags[0]), - asn_DEF_NativeEnumerated_tags, /* Same as above */ - sizeof(asn_DEF_NativeEnumerated_tags) / sizeof(asn_DEF_NativeEnumerated_tags[0]), - { 0, 0, asn_generic_no_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - -asn_enc_rval_t -NativeEnumerated_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, - int ilevel, enum xer_encoder_flags_e flags, - asn_app_consume_bytes_f *cb, void *app_key) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - asn_enc_rval_t er = {0,0,0}; - const long *native = (const long *)sptr; - const asn_INTEGER_enum_map_t *el; - - (void)ilevel; - (void)flags; - - if(!native) ASN__ENCODE_FAILED; - - el = INTEGER_map_value2enum(specs, *native); - if(el) { - er.encoded = - asn__format_to_callback(cb, app_key, "<%s/>", el->enum_name); - if(er.encoded < 0) ASN__ENCODE_FAILED; - ASN__ENCODED_OK(er); - } else { - ASN_DEBUG( - "ASN.1 forbids dealing with " - "unknown value of ENUMERATED type"); - ASN__ENCODE_FAILED; - } -} - -asn_dec_rval_t -NativeEnumerated_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - void **sptr, asn_per_data_t *pd) { - const asn_INTEGER_specifics_t *specs = td->specifics; - asn_dec_rval_t rval = { RC_OK, 0 }; - long *native = (long *)*sptr; - const asn_per_constraint_t *ct = NULL; - long value; - - (void)opt_codec_ctx; - - if(constraints) ct = &constraints->value; - else if(td->encoding_constraints.per_constraints) - ct = &td->encoding_constraints.per_constraints->value; - else ASN__DECODE_FAILED; /* Mandatory! */ - if(!specs) ASN__DECODE_FAILED; - - if(!native) { - native = (long *)(*sptr = CALLOC(1, sizeof(*native))); - if(!native) ASN__DECODE_FAILED; - } - - ASN_DEBUG("Decoding %s as NativeEnumerated", td->name); - - if(ct && ct->flags & APC_EXTENSIBLE) { - int inext = per_get_few_bits(pd, 1); - if(inext < 0) ASN__DECODE_STARVED; - if(inext) ct = 0; - } - - if(ct && ct->range_bits >= 0) { - value = per_get_few_bits(pd, ct->range_bits); - if(value < 0) ASN__DECODE_STARVED; - if(value >= (specs->extension - ? specs->extension - 1 : specs->map_count)) - ASN__DECODE_FAILED; - } else { - if(!specs->extension) - ASN__DECODE_FAILED; - /* - * X.691, #10.6: normally small non-negative whole number; - */ - value = uper_get_nsnnwn(pd); - if(value < 0) ASN__DECODE_STARVED; - value += specs->extension - 1; - if(value >= specs->map_count) - ASN__DECODE_FAILED; - } - - *native = specs->value2enum[value].nat_value; - ASN_DEBUG("Decoded %s = %ld", td->name, *native); - - return rval; -} - -static int -NativeEnumerated__compar_value2enum(const void *ap, const void *bp) { - const asn_INTEGER_enum_map_t *a = ap; - const asn_INTEGER_enum_map_t *b = bp; - if(a->nat_value == b->nat_value) - return 0; - if(a->nat_value < b->nat_value) - return -1; - return 1; -} - -asn_enc_rval_t -NativeEnumerated_encode_uper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_per_outp_t *po) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - asn_enc_rval_t er = {0,0,0}; - long native, value; - const asn_per_constraint_t *ct = NULL; - int inext = 0; - asn_INTEGER_enum_map_t key; - const asn_INTEGER_enum_map_t *kf; - - if(!sptr) ASN__ENCODE_FAILED; - if(!specs) ASN__ENCODE_FAILED; - - if(constraints) ct = &constraints->value; - else if(td->encoding_constraints.per_constraints) - ct = &td->encoding_constraints.per_constraints->value; - else ASN__ENCODE_FAILED; /* Mandatory! */ - - ASN_DEBUG("Encoding %s as NativeEnumerated", td->name); - - er.encoded = 0; - - native = *(const long *)sptr; - - key.nat_value = native; - kf = bsearch(&key, specs->value2enum, specs->map_count, - sizeof(key), NativeEnumerated__compar_value2enum); - if(!kf) { - ASN_DEBUG("No element corresponds to %ld", native); - ASN__ENCODE_FAILED; - } - value = kf - specs->value2enum; - - if(ct && ct->range_bits >= 0) { - int cmpWith = specs->extension - ? specs->extension - 1 : specs->map_count; - if(value >= cmpWith) - inext = 1; - } - if(ct && ct->flags & APC_EXTENSIBLE) { - if(per_put_few_bits(po, inext, 1)) - ASN__ENCODE_FAILED; - if(inext) ct = 0; - } else if(inext) { - ASN__ENCODE_FAILED; - } - - if(ct && ct->range_bits >= 0) { - if(per_put_few_bits(po, value, ct->range_bits)) - ASN__ENCODE_FAILED; - ASN__ENCODED_OK(er); - } - - if(!specs->extension) - ASN__ENCODE_FAILED; - - /* - * X.691, #10.6: normally small non-negative whole number; - */ - ASN_DEBUG("value = %ld, ext = %d, inext = %d, res = %ld", - value, specs->extension, inext, - value - (inext ? (specs->extension - 1) : 0)); - if(uper_put_nsnnwn(po, value - (inext ? (specs->extension - 1) : 0))) - ASN__ENCODE_FAILED; - - ASN__ENCODED_OK(er); -} - -asn_dec_rval_t -NativeEnumerated_decode_aper(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - void **sptr, asn_per_data_t *pd) { - const asn_INTEGER_specifics_t *specs = (const asn_INTEGER_specifics_t *)td->specifics; - asn_dec_rval_t rval = { RC_OK, 0 }; - long *native = (long *)*sptr; - const asn_per_constraint_t *ct = NULL; - long value; - - (void)opt_codec_ctx; - - if(constraints) ct = &constraints->value; - else if(td->encoding_constraints.per_constraints) - ct = &td->encoding_constraints.per_constraints->value; - else ASN__DECODE_FAILED; /* Mandatory! */ - if(!specs) ASN__DECODE_FAILED; - - if(!native) { - native = (long *)(*sptr = CALLOC(1, sizeof(*native))); - if(!native) ASN__DECODE_FAILED; - } - - ASN_DEBUG("Decoding %s as NativeEnumerated", td->name); - - if(ct && ct->flags & APC_EXTENSIBLE) { - int inext = per_get_few_bits(pd, 1); - if(inext < 0) ASN__DECODE_STARVED; - if(inext) ct = 0; - } - - /* Deal with APER padding */ - if(ct && ct->upper_bound >= 255) { - int padding = 0; - padding = (8 - (pd->moved % 8)) % 8; - ASN_DEBUG("For NativeEnumerated %s,offset= %lu Padding bits = %d", td->name, pd->moved, padding); - ASN_DEBUG("For NativeEnumerated %s, upper bound = %lu", td->name, ct->upper_bound); - if(padding > 0) - per_get_few_bits(pd, padding); - } - - if(ct && ct->range_bits >= 0) { - value = per_get_few_bits(pd, ct->range_bits); - if(value < 0) ASN__DECODE_STARVED; - if(value >= (specs->extension - ? specs->extension - 1 : specs->map_count)) - ASN__DECODE_FAILED; - } else { - if(!specs->extension) - ASN__DECODE_FAILED; - /* - * X.691, #10.6: normally small non-negative whole number; - */ - value = uper_get_nsnnwn(pd); - if(value < 0) ASN__DECODE_STARVED; - value += specs->extension - 1; - if(value >= specs->map_count) - ASN__DECODE_FAILED; - } - - *native = specs->value2enum[value].nat_value; - ASN_DEBUG("Decoded %s = %ld", td->name, *native); - - return rval; -} - -asn_enc_rval_t -NativeEnumerated_encode_aper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_per_outp_t *po) { - const asn_INTEGER_specifics_t *specs = (const asn_INTEGER_specifics_t *)td->specifics; - asn_enc_rval_t er = {0,0,0}; - long native, value; - const asn_per_constraint_t *ct = NULL; - int inext = 0; - asn_INTEGER_enum_map_t key; - asn_INTEGER_enum_map_t *kf; - - if(!sptr) ASN__ENCODE_FAILED; - if(!specs) ASN__ENCODE_FAILED; - - if(constraints) ct = &constraints->value; - else if(td->encoding_constraints.per_constraints) - ct = &td->encoding_constraints.per_constraints->value; - else ASN__ENCODE_FAILED; /* Mandatory! */ - - ASN_DEBUG("Encoding %s as NativeEnumerated", td->name); - - er.encoded = 0; - - native = *(const long *)sptr; - if(native < 0) ASN__ENCODE_FAILED; - - key.nat_value = native; - kf = bsearch(&key, specs->value2enum, specs->map_count, - sizeof(key), NativeEnumerated__compar_value2enum); - if(!kf) { - ASN_DEBUG("No element corresponds to %ld", native); - ASN__ENCODE_FAILED; - } - value = kf - specs->value2enum; - - if(ct && ct->range_bits >= 0) { - int cmpWith = specs->extension - ? specs->extension - 1 : specs->map_count; - if(value >= cmpWith) - inext = 1; - } - if(ct && ct->flags & APC_EXTENSIBLE) { - if(per_put_few_bits(po, inext, 1)) - ASN__ENCODE_FAILED; - if(inext) ct = 0; - } else if(inext) { - ASN__ENCODE_FAILED; - } - - if(ct && ct->range_bits >= 0) { - if(per_put_few_bits(po, value, ct->range_bits)) - ASN__ENCODE_FAILED; - ASN__ENCODED_OK(er); - } - - if(!specs->extension) - ASN__ENCODE_FAILED; - - /* - * X.691, #10.6: normally small non-negative whole number; - */ - ASN_DEBUG("value = %ld, ext = %d, inext = %d, res = %ld", - value, specs->extension, inext, - value - (inext ? (specs->extension - 1) : 0)); - if(uper_put_nsnnwn(po, value - (inext ? (specs->extension - 1) : 0))) - ASN__ENCODE_FAILED; - - ASN__ENCODED_OK(er); -} diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/NativeEnumerated.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/NativeEnumerated.h deleted file mode 100644 index 459f0e6..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/NativeEnumerated.h +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -/* - * This type differs from the standard ENUMERATED in that it is modelled using - * the fixed machine type (long, int, short), so it can hold only values of - * limited length. There is no type (i.e., NativeEnumerated_t, any integer type - * will do). - * This type may be used when integer range is limited by subtype constraints. - */ -#ifndef _NativeEnumerated_H_ -#define _NativeEnumerated_H_ - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -extern asn_TYPE_descriptor_t asn_DEF_NativeEnumerated; -extern asn_TYPE_operation_t asn_OP_NativeEnumerated; - -xer_type_encoder_f NativeEnumerated_encode_xer; -oer_type_decoder_f NativeEnumerated_decode_oer; -oer_type_encoder_f NativeEnumerated_encode_oer; -per_type_decoder_f NativeEnumerated_decode_uper; -per_type_encoder_f NativeEnumerated_encode_uper; -per_type_decoder_f NativeEnumerated_decode_aper; -per_type_encoder_f NativeEnumerated_encode_aper; - -#define NativeEnumerated_free NativeInteger_free -#define NativeEnumerated_print NativeInteger_print -#define NativeEnumerated_compare NativeInteger_compare -#define NativeEnumerated_random_fill NativeInteger_random_fill -#define NativeEnumerated_constraint asn_generic_no_constraint -#define NativeEnumerated_decode_ber NativeInteger_decode_ber -#define NativeEnumerated_encode_der NativeInteger_encode_der -#define NativeEnumerated_decode_xer NativeInteger_decode_xer - -#ifdef __cplusplus -} -#endif - -#endif /* _NativeEnumerated_H_ */ diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/NativeEnumerated_oer.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/NativeEnumerated_oer.c deleted file mode 100644 index ee3c189..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/NativeEnumerated_oer.c +++ /dev/null @@ -1,149 +0,0 @@ -/* - * Copyright (c) 2017 Lev Walkin . - * All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef ASN_DISABLE_OER_SUPPORT - -#include -#include -#include - -static long -asn__nativeenumerated_convert(const uint8_t *b, const uint8_t *end) { - unsigned long value; - - /* Perform the sign initialization */ - /* Actually value = -(*b >> 7); gains nothing, yet unreadable! */ - if((*b >> 7)) { - value = (unsigned long)(-1); - } else { - value = 0; - } - - /* Conversion engine */ - for(; b < end; b++) { - value = (value << 8) | *b; - } - - return value; -} - -asn_dec_rval_t -NativeEnumerated_decode_oer(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_oer_constraints_t *constraints, - void **nint_ptr, const void *ptr, size_t size) { - asn_dec_rval_t rval = {RC_OK, 0}; - long *native = (long *)*nint_ptr; - const uint8_t *b = ptr; - - (void)opt_codec_ctx; - (void)constraints; - - if(size < 1) { - ASN__DECODE_STARVED; - } - - if((*b & 0x80) == 0) { - /* - * X.696 (08/2015) #11.2 Short form for Enumerated. - */ - if(!native) { - native = (long *)(*nint_ptr = CALLOC(1, sizeof(*native))); - if(!native) ASN__DECODE_FAILED; - } - - *native = *b; - rval.consumed = 1; - } else { - /* - * X.696 (08/2015) #11.4 Long form for Enumerated. - */ - size_t length = *b & 0x7f; - const uint8_t *bend; - long value; - - if(length < 1 || length > sizeof(*native)) { - ASN__DECODE_FAILED; - } - if((1 + length) > size) { - ASN__DECODE_STARVED; - } - b++; - bend = b + length; - - value = asn__nativeenumerated_convert(b, bend); - if(value < 0) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - if(specs && specs->field_unsigned) { - ASN__DECODE_FAILED; - } - } - - if(!native) { - native = (long *)(*nint_ptr = CALLOC(1, sizeof(*native))); - if(!native) ASN__DECODE_FAILED; - } - - *native = value; - - rval.consumed = (1 + length); - } - - return rval; -} - -/* - * Encode as Canonical OER. - */ -asn_enc_rval_t -NativeEnumerated_encode_oer(const asn_TYPE_descriptor_t *td, - const asn_oer_constraints_t *constraints, - const void *sptr, asn_app_consume_bytes_f *cb, - void *app_key) { - asn_enc_rval_t er = {0,0,0}; - long native; - - (void)constraints; - - if(!sptr) ASN__ENCODE_FAILED; - - native = *(const long *)sptr; - - if(native >= 0 && native <= 127) { - /* #11.2 Short form */ - uint8_t b = native; - er.encoded = 1; - if(cb(&b, er.encoded, app_key) < 0) { - ASN__ENCODE_FAILED; - } - ASN__ENCODED_OK(er); - } else { - /* #11.2 Long form */ - uint8_t buf[1 + sizeof(native)]; - uint8_t *b = &buf[sizeof(native)]; /* Last addressable */ - long final_pattern = -1 * (native < 0); - - for(;;) { - *b-- = native; - native >>= 8; - if(native == final_pattern) { - if(final_pattern) { - if((b[1] & 0x80)) break; - } else { - if(!(b[1] & 0x80)) break; - } - } - } - *b = 0x80 | (&buf[sizeof(native)] - b); - er.encoded = 1 + (&buf[sizeof(native)] - b); - if(cb(b, er.encoded, app_key) < 0) { - ASN__ENCODE_FAILED; - } - ASN__ENCODED_OK(er); - } -} - -#endif /* ASN_DISABLE_OER_SUPPORT */ diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/NativeInteger.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/NativeInteger.c deleted file mode 100644 index 316e872..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/NativeInteger.c +++ /dev/null @@ -1,550 +0,0 @@ -/*- - * Copyright (c) 2004, 2005, 2006 Lev Walkin . - * All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -/* - * Read the NativeInteger.h for the explanation wrt. differences between - * INTEGER and NativeInteger. - * Basically, both are decoders and encoders of ASN.1 INTEGER type, but this - * implementation deals with the standard (machine-specific) representation - * of them instead of using the platform-independent buffer. - */ -#include -#include - -/* - * NativeInteger basic type description. - */ -static const ber_tlv_tag_t asn_DEF_NativeInteger_tags[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_operation_t asn_OP_NativeInteger = { - NativeInteger_free, - NativeInteger_print, - NativeInteger_compare, - NativeInteger_decode_ber, - NativeInteger_encode_der, - NativeInteger_decode_xer, - NativeInteger_encode_xer, -#ifdef ASN_DISABLE_OER_SUPPORT - 0, - 0, -#else - NativeInteger_decode_oer, /* OER decoder */ - NativeInteger_encode_oer, /* Canonical OER encoder */ -#endif /* ASN_DISABLE_OER_SUPPORT */ -#ifdef ASN_DISABLE_PER_SUPPORT - 0, - 0, - 0, - 0, -#else - NativeInteger_decode_uper, /* Unaligned PER decoder */ - NativeInteger_encode_uper, /* Unaligned PER encoder */ - NativeInteger_decode_aper, /* Aligned PER decoder */ - NativeInteger_encode_aper, /* Aligned PER encoder */ -#endif /* ASN_DISABLE_PER_SUPPORT */ - NativeInteger_random_fill, - 0 /* Use generic outmost tag fetcher */ -}; -asn_TYPE_descriptor_t asn_DEF_NativeInteger = { - "INTEGER", /* The ASN.1 type is still INTEGER */ - "INTEGER", - &asn_OP_NativeInteger, - asn_DEF_NativeInteger_tags, - sizeof(asn_DEF_NativeInteger_tags) / sizeof(asn_DEF_NativeInteger_tags[0]), - asn_DEF_NativeInteger_tags, /* Same as above */ - sizeof(asn_DEF_NativeInteger_tags) / sizeof(asn_DEF_NativeInteger_tags[0]), - { 0, 0, asn_generic_no_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - -/* - * Decode INTEGER type. - */ -asn_dec_rval_t -NativeInteger_decode_ber(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **nint_ptr, - const void *buf_ptr, size_t size, int tag_mode) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - long *native = (long *)*nint_ptr; - asn_dec_rval_t rval; - ber_tlv_len_t length; - - /* - * If the structure is not there, allocate it. - */ - if(native == NULL) { - native = (long *)(*nint_ptr = CALLOC(1, sizeof(*native))); - if(native == NULL) { - rval.code = RC_FAIL; - rval.consumed = 0; - return rval; - } - } - - ASN_DEBUG("Decoding %s as INTEGER (tm=%d)", - td->name, tag_mode); - - /* - * Check tags. - */ - rval = ber_check_tags(opt_codec_ctx, td, 0, buf_ptr, size, - tag_mode, 0, &length, 0); - if(rval.code != RC_OK) - return rval; - - ASN_DEBUG("%s length is %d bytes", td->name, (int)length); - - /* - * Make sure we have this length. - */ - buf_ptr = ((const char *)buf_ptr) + rval.consumed; - size -= rval.consumed; - if(length > (ber_tlv_len_t)size) { - rval.code = RC_WMORE; - rval.consumed = 0; - return rval; - } - - /* - * ASN.1 encoded INTEGER: buf_ptr, length - * Fill the native, at the same time checking for overflow. - * If overflow occured, return with RC_FAIL. - */ - { - INTEGER_t tmp; - union { - const void *constbuf; - void *nonconstbuf; - } unconst_buf; - long l; - - unconst_buf.constbuf = buf_ptr; - tmp.buf = (uint8_t *)unconst_buf.nonconstbuf; - tmp.size = length; - - if((specs&&specs->field_unsigned) - ? asn_INTEGER2ulong(&tmp, (unsigned long *)&l) /* sic */ - : asn_INTEGER2long(&tmp, &l)) { - rval.code = RC_FAIL; - rval.consumed = 0; - return rval; - } - - *native = l; - } - - rval.code = RC_OK; - rval.consumed += length; - - ASN_DEBUG("Took %ld/%ld bytes to encode %s (%ld)", - (long)rval.consumed, (long)length, td->name, (long)*native); - - return rval; -} - -/* - * Encode the NativeInteger using the standard INTEGER type DER encoder. - */ -asn_enc_rval_t -NativeInteger_encode_der(const asn_TYPE_descriptor_t *sd, const void *ptr, - int tag_mode, ber_tlv_tag_t tag, - asn_app_consume_bytes_f *cb, void *app_key) { - unsigned long native = *(const unsigned long *)ptr; /* Disable sign ext. */ - asn_enc_rval_t erval = {0,0,0}; - INTEGER_t tmp; - -#ifdef WORDS_BIGENDIAN /* Opportunistic optimization */ - - tmp.buf = (uint8_t *)&native; - tmp.size = sizeof(native); - -#else /* Works even if WORDS_BIGENDIAN is not set where should've been */ - uint8_t buf[sizeof(native)]; - uint8_t *p; - - /* Prepare a fake INTEGER */ - for(p = buf + sizeof(buf) - 1; p >= buf; p--, native >>= 8) - *p = (uint8_t)native; - - tmp.buf = buf; - tmp.size = sizeof(buf); -#endif /* WORDS_BIGENDIAN */ - - /* Encode fake INTEGER */ - erval = INTEGER_encode_der(sd, &tmp, tag_mode, tag, cb, app_key); - if(erval.structure_ptr == &tmp) { - erval.structure_ptr = ptr; - } - return erval; -} - -/* - * Decode the chunk of XML text encoding INTEGER. - */ -asn_dec_rval_t -NativeInteger_decode_xer(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **sptr, - const char *opt_mname, const void *buf_ptr, - size_t size) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - asn_dec_rval_t rval; - INTEGER_t st; - void *st_ptr = (void *)&st; - long *native = (long *)*sptr; - - if(!native) { - native = (long *)(*sptr = CALLOC(1, sizeof(*native))); - if(!native) ASN__DECODE_FAILED; - } - - memset(&st, 0, sizeof(st)); - rval = INTEGER_decode_xer(opt_codec_ctx, td, &st_ptr, - opt_mname, buf_ptr, size); - if(rval.code == RC_OK) { - long l; - if((specs&&specs->field_unsigned) - ? asn_INTEGER2ulong(&st, (unsigned long *)&l) /* sic */ - : asn_INTEGER2long(&st, &l)) { - rval.code = RC_FAIL; - rval.consumed = 0; - } else { - *native = l; - } - } else { - /* - * Cannot restart from the middle; - * there is no place to save state in the native type. - * Request a continuation from the very beginning. - */ - rval.consumed = 0; - } - ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_INTEGER, &st); - return rval; -} - - -asn_enc_rval_t -NativeInteger_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, - int ilevel, enum xer_encoder_flags_e flags, - asn_app_consume_bytes_f *cb, void *app_key) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - char scratch[32]; /* Enough for 64-bit int */ - asn_enc_rval_t er = {0,0,0}; - const long *native = (const long *)sptr; - - (void)ilevel; - (void)flags; - - if(!native) ASN__ENCODE_FAILED; - - er.encoded = snprintf(scratch, sizeof(scratch), - (specs && specs->field_unsigned) - ? "%lu" : "%ld", *native); - if(er.encoded <= 0 || (size_t)er.encoded >= sizeof(scratch) - || cb(scratch, er.encoded, app_key) < 0) - ASN__ENCODE_FAILED; - - ASN__ENCODED_OK(er); -} - -#ifndef ASN_DISABLE_PER_SUPPORT - -asn_dec_rval_t -NativeInteger_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, - asn_per_data_t *pd) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - asn_dec_rval_t rval; - long *native = (long *)*sptr; - INTEGER_t tmpint; - void *tmpintptr = &tmpint; - - (void)opt_codec_ctx; - ASN_DEBUG("Decoding NativeInteger %s (UPER)", td->name); - - if(!native) { - native = (long *)(*sptr = CALLOC(1, sizeof(*native))); - if(!native) ASN__DECODE_FAILED; - } - - memset(&tmpint, 0, sizeof tmpint); - rval = INTEGER_decode_uper(opt_codec_ctx, td, constraints, - &tmpintptr, pd); - if(rval.code == RC_OK) { - if((specs&&specs->field_unsigned) - ? asn_INTEGER2ulong(&tmpint, (unsigned long *)native) - : asn_INTEGER2long(&tmpint, native)) - rval.code = RC_FAIL; - else - ASN_DEBUG("NativeInteger %s got value %ld", - td->name, *native); - } - ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_INTEGER, &tmpint); - - return rval; -} - -asn_enc_rval_t -NativeInteger_encode_uper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_per_outp_t *po) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - asn_enc_rval_t er = {0,0,0}; - long native; - INTEGER_t tmpint; - - if(!sptr) ASN__ENCODE_FAILED; - - native = *(const long *)sptr; - - ASN_DEBUG("Encoding NativeInteger %s %ld (UPER)", td->name, native); - - memset(&tmpint, 0, sizeof(tmpint)); - if((specs&&specs->field_unsigned) - ? asn_ulong2INTEGER(&tmpint, native) - : asn_long2INTEGER(&tmpint, native)) - ASN__ENCODE_FAILED; - er = INTEGER_encode_uper(td, constraints, &tmpint, po); - ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_INTEGER, &tmpint); - return er; -} - -asn_dec_rval_t -NativeInteger_decode_aper(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, asn_per_data_t *pd) { - - const asn_INTEGER_specifics_t *specs = (const asn_INTEGER_specifics_t *)td->specifics; - asn_dec_rval_t rval; - long *native = (long *)*sptr; - INTEGER_t tmpint; - void *tmpintptr = &tmpint; - - (void)opt_codec_ctx; - ASN_DEBUG("Decoding NativeInteger %s (APER)", td->name); - - if(!native) { - native = (long *)(*sptr = CALLOC(1, sizeof(*native))); - if(!native) ASN__DECODE_FAILED; - } - - memset(&tmpint, 0, sizeof tmpint); - rval = INTEGER_decode_aper(opt_codec_ctx, td, constraints, - &tmpintptr, pd); - if(rval.code == RC_OK) { - if((specs&&specs->field_unsigned) - ? asn_INTEGER2ulong(&tmpint, (unsigned long *)native) - : asn_INTEGER2long(&tmpint, native)) - rval.code = RC_FAIL; - else - ASN_DEBUG("NativeInteger %s got value %ld", - td->name, *native); - } - ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_INTEGER, &tmpint); - - return rval; -} - -asn_enc_rval_t -NativeInteger_encode_aper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_per_outp_t *po) { - - const asn_INTEGER_specifics_t *specs = (const asn_INTEGER_specifics_t *)td->specifics; - asn_enc_rval_t er = {0,0,0}; - long native; - INTEGER_t tmpint; - - if(!sptr) ASN__ENCODE_FAILED; - - native = *(const long *)sptr; - - ASN_DEBUG("Encoding NativeInteger %s %ld (APER)", td->name, native); - - memset(&tmpint, 0, sizeof(tmpint)); - if((specs&&specs->field_unsigned) - ? asn_ulong2INTEGER(&tmpint, (unsigned long)native) - : asn_long2INTEGER(&tmpint, native)) - ASN__ENCODE_FAILED; - er = INTEGER_encode_aper(td, constraints, &tmpint, po); - ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_INTEGER, &tmpint); - return er; -} - -#endif /* ASN_DISABLE_PER_SUPPORT */ - -/* - * INTEGER specific human-readable output. - */ -int -NativeInteger_print(const asn_TYPE_descriptor_t *td, const void *sptr, - int ilevel, asn_app_consume_bytes_f *cb, void *app_key) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - const long *native = (const long *)sptr; - char scratch[32]; /* Enough for 64-bit int */ - int ret; - - (void)td; /* Unused argument */ - (void)ilevel; /* Unused argument */ - - if(native) { - long value = *native; - ret = snprintf(scratch, sizeof(scratch), - (specs && specs->field_unsigned) ? "%lu" : "%ld", value); - assert(ret > 0 && (size_t)ret < sizeof(scratch)); - if(cb(scratch, ret, app_key) < 0) return -1; - if(specs && (value >= 0 || !specs->field_unsigned)) { - const asn_INTEGER_enum_map_t *el = - INTEGER_map_value2enum(specs, value); - if(el) { - if(cb(" (", 2, app_key) < 0) return -1; - if(cb(el->enum_name, el->enum_len, app_key) < 0) return -1; - if(cb(")", 1, app_key) < 0) return -1; - } - } - return 0; - } else { - return (cb("", 8, app_key) < 0) ? -1 : 0; - } -} - -void -NativeInteger_free(const asn_TYPE_descriptor_t *td, void *ptr, - enum asn_struct_free_method method) { - if(!td || !ptr) - return; - - ASN_DEBUG("Freeing %s as INTEGER (%d, %p, Native)", - td->name, method, ptr); - - switch(method) { - case ASFM_FREE_EVERYTHING: - FREEMEM(ptr); - break; - case ASFM_FREE_UNDERLYING: - break; - case ASFM_FREE_UNDERLYING_AND_RESET: - memset(ptr, 0, sizeof(long)); - break; - } -} - -int -NativeInteger_compare(const asn_TYPE_descriptor_t *td, const void *aptr, const void *bptr) { - (void)td; - - if(aptr && bptr) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - if(specs && specs->field_unsigned) { - const unsigned long *a = aptr; - const unsigned long *b = bptr; - if(*a < *b) { - return -1; - } else if(*a > *b) { - return 1; - } else { - return 0; - } - } else { - const long *a = aptr; - const long *b = bptr; - if(*a < *b) { - return -1; - } else if(*a > *b) { - return 1; - } else { - return 0; - } - } - } else if(!aptr) { - return -1; - } else { - return 1; - } -} - -asn_random_fill_result_t -NativeInteger_random_fill(const asn_TYPE_descriptor_t *td, void **sptr, - const asn_encoding_constraints_t *constraints, - size_t max_length) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - asn_random_fill_result_t result_ok = {ARFILL_OK, 1}; - asn_random_fill_result_t result_failed = {ARFILL_FAILED, 0}; - asn_random_fill_result_t result_skipped = {ARFILL_SKIPPED, 0}; - long *st = *sptr; - const asn_INTEGER_enum_map_t *emap; - size_t emap_len; - intmax_t value; - int find_inside_map; - - if(max_length == 0) return result_skipped; - - if(st == NULL) { - st = (long *)CALLOC(1, sizeof(*st)); - if(st == NULL) { - return result_failed; - } - } - - if(specs) { - emap = specs->value2enum; - emap_len = specs->map_count; - if(specs->strict_enumeration) { - find_inside_map = emap_len > 0; - } else { - find_inside_map = emap_len ? asn_random_between(0, 1) : 0; - } - } else { - emap = 0; - emap_len = 0; - find_inside_map = 0; - } - - if(find_inside_map) { - assert(emap_len > 0); - value = emap[asn_random_between(0, emap_len - 1)].nat_value; - } else { - const asn_per_constraints_t *ct; - - static const long variants[] = { - -65536, -65535, -65534, -32769, -32768, -32767, -16385, -16384, - -16383, -257, -256, -255, -254, -129, -128, -127, - -126, -1, 0, 1, 126, 127, 128, 129, - 254, 255, 256, 257, 16383, 16384, 16385, 32767, - 32768, 32769, 65534, 65535, 65536, 65537}; - if(specs && specs->field_unsigned) { - assert(variants[18] == 0); - value = variants[asn_random_between( - 18, sizeof(variants) / sizeof(variants[0]) - 1)]; - } else { - value = variants[asn_random_between( - 0, sizeof(variants) / sizeof(variants[0]) - 1)]; - } - - if(!constraints) constraints = &td->encoding_constraints; - ct = constraints ? constraints->per_constraints : 0; - if(ct && (ct->value.flags & APC_CONSTRAINED)) { - if(value < ct->value.lower_bound || value > ct->value.upper_bound) { - value = asn_random_between(ct->value.lower_bound, - ct->value.upper_bound); - } - } - } - - *sptr = st; - *st = value; - return result_ok; -} diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/NativeInteger.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/NativeInteger.h deleted file mode 100644 index c74406a..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/NativeInteger.h +++ /dev/null @@ -1,46 +0,0 @@ -/*- - * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -/* - * This type differs from the standard INTEGER in that it is modelled using - * the fixed machine type (long, int, short), so it can hold only values of - * limited length. There is no type (i.e., NativeInteger_t, any integer type - * will do). - * This type may be used when integer range is limited by subtype constraints. - */ -#ifndef _NativeInteger_H_ -#define _NativeInteger_H_ - -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -extern asn_TYPE_descriptor_t asn_DEF_NativeInteger; -extern asn_TYPE_operation_t asn_OP_NativeInteger; - -asn_struct_free_f NativeInteger_free; -asn_struct_print_f NativeInteger_print; -asn_struct_compare_f NativeInteger_compare; -ber_type_decoder_f NativeInteger_decode_ber; -der_type_encoder_f NativeInteger_encode_der; -xer_type_decoder_f NativeInteger_decode_xer; -xer_type_encoder_f NativeInteger_encode_xer; -oer_type_decoder_f NativeInteger_decode_oer; -oer_type_encoder_f NativeInteger_encode_oer; -per_type_decoder_f NativeInteger_decode_uper; -per_type_encoder_f NativeInteger_encode_uper; -per_type_decoder_f NativeInteger_decode_aper; -per_type_encoder_f NativeInteger_encode_aper; -asn_random_fill_f NativeInteger_random_fill; - -#define NativeInteger_constraint asn_generic_no_constraint - -#ifdef __cplusplus -} -#endif - -#endif /* _NativeInteger_H_ */ diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/NativeInteger_oer.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/NativeInteger_oer.c deleted file mode 100644 index 411413a..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/NativeInteger_oer.c +++ /dev/null @@ -1,99 +0,0 @@ -/* - * Copyright (c) 2017 Lev Walkin . - * All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef ASN_DISABLE_OER_SUPPORT - -#include -#include -#include - -asn_dec_rval_t -NativeInteger_decode_oer(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_oer_constraints_t *constraints, - void **nint_ptr, const void *ptr, size_t size) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - asn_dec_rval_t rval = {RC_OK, 0}; - long *native = (long *)*nint_ptr; - INTEGER_t tmpint; - INTEGER_t *tmpintptr = &tmpint; - - memset(&tmpint, 0, sizeof(tmpint)); - - if(!native) { - native = (long *)(*nint_ptr = CALLOC(1, sizeof(*native))); - if(!native) ASN__DECODE_FAILED; - } - - /* - * OPTIMIZATION: Encode directly rather than passing through INTEGER. - * Saves a memory allocation. - */ - rval = INTEGER_decode_oer(opt_codec_ctx, td, constraints, - (void **)&tmpintptr, ptr, size); - if(rval.code != RC_OK) { - ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_INTEGER, &tmpint); - return rval; - } - - if(specs && specs->field_unsigned) { - unsigned long ul; - int ok = asn_INTEGER2ulong(&tmpint, &ul) == 0; - ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_INTEGER, &tmpint); - if(ok) { - *native = ul; - } else { - rval.code = RC_FAIL; - return rval; - } - } else { - long l; - int ok = asn_INTEGER2long(&tmpint, &l) == 0; - ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_INTEGER, &tmpint); - if(ok) { - *native = l; - } else { - rval.code = RC_FAIL; - return rval; - } - } - - return rval; -} - -/* - * Encode as Canonical OER. - */ -asn_enc_rval_t -NativeInteger_encode_oer(const asn_TYPE_descriptor_t *td, - const asn_oer_constraints_t *constraints, - const void *sptr, asn_app_consume_bytes_f *cb, - void *app_key) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - INTEGER_t tmpint; - long native; - - if(!sptr) ASN__ENCODE_FAILED; - - native = *(const long *)sptr; - memset(&tmpint, 0, sizeof(tmpint)); - - ASN_DEBUG("Encoding %s %ld as NativeInteger", td ? td->name : "", native); - - if((specs && specs->field_unsigned) ? asn_ulong2INTEGER(&tmpint, native) - : asn_long2INTEGER(&tmpint, native)) { - ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_INTEGER, &tmpint); - ASN__ENCODE_FAILED; - } else { - asn_enc_rval_t er = - INTEGER_encode_oer(td, constraints, &tmpint, cb, app_key); - ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_INTEGER, &tmpint); - return er; - } -} - -#endif /* ASN_DISABLE_OER_SUPPORT */ diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/OCTET_STRING.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/OCTET_STRING.c deleted file mode 100644 index ae34c96..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/OCTET_STRING.c +++ /dev/null @@ -1,2411 +0,0 @@ -/*- - * Copyright (c) 2003-2017 Lev Walkin . - * All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include /* for .bits_unused member */ -#include - -/* - * OCTET STRING basic type description. - */ -static const ber_tlv_tag_t asn_DEF_OCTET_STRING_tags[] = { - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) -}; -asn_OCTET_STRING_specifics_t asn_SPC_OCTET_STRING_specs = { - sizeof(OCTET_STRING_t), - offsetof(OCTET_STRING_t, _asn_ctx), - ASN_OSUBV_STR -}; - -asn_TYPE_operation_t asn_OP_OCTET_STRING = { - OCTET_STRING_free, - OCTET_STRING_print, /* OCTET STRING generally means a non-ascii sequence */ - OCTET_STRING_compare, - OCTET_STRING_decode_ber, - OCTET_STRING_encode_der, - OCTET_STRING_decode_xer_hex, - OCTET_STRING_encode_xer, -#ifdef ASN_DISABLE_OER_SUPPORT - 0, - 0, -#else - OCTET_STRING_decode_oer, - OCTET_STRING_encode_oer, -#endif /* ASN_DISABLE_OER_SUPPORT */ -#ifdef ASN_DISABLE_PER_SUPPORT - 0, - 0, - 0, - 0, -#else - OCTET_STRING_decode_uper, /* Unaligned PER decoder */ - OCTET_STRING_encode_uper, /* Unaligned PER encoder */ - OCTET_STRING_decode_aper, /* Aligned PER decoder */ - OCTET_STRING_encode_aper, /* Aligned PER encoder */ -#endif /* ASN_DISABLE_PER_SUPPORT */ - OCTET_STRING_random_fill, - 0 /* Use generic outmost tag fetcher */ -}; -asn_TYPE_descriptor_t asn_DEF_OCTET_STRING = { - "OCTET STRING", /* Canonical name */ - "OCTET_STRING", /* XML tag name */ - &asn_OP_OCTET_STRING, - asn_DEF_OCTET_STRING_tags, - sizeof(asn_DEF_OCTET_STRING_tags) - / sizeof(asn_DEF_OCTET_STRING_tags[0]), - asn_DEF_OCTET_STRING_tags, /* Same as above */ - sizeof(asn_DEF_OCTET_STRING_tags) - / sizeof(asn_DEF_OCTET_STRING_tags[0]), - { 0, 0, asn_generic_no_constraint }, - 0, 0, /* No members */ - &asn_SPC_OCTET_STRING_specs -}; - -#undef _CH_PHASE -#undef NEXT_PHASE -#undef PREV_PHASE -#define _CH_PHASE(ctx, inc) do { \ - if(ctx->phase == 0) \ - ctx->context = 0; \ - ctx->phase += inc; \ - } while(0) -#define NEXT_PHASE(ctx) _CH_PHASE(ctx, +1) -#define PREV_PHASE(ctx) _CH_PHASE(ctx, -1) - -#undef ADVANCE -#define ADVANCE(num_bytes) do { \ - size_t num = (num_bytes); \ - buf_ptr = ((const char *)buf_ptr) + num; \ - size -= num; \ - consumed_myself += num; \ - } while(0) - -#undef RETURN -#define RETURN(_code) do { \ - asn_dec_rval_t tmprval; \ - tmprval.code = _code; \ - tmprval.consumed = consumed_myself; \ - return tmprval; \ - } while(0) - -#undef APPEND -#define APPEND(bufptr, bufsize) do { \ - size_t _bs = (bufsize); /* Append size */ \ - size_t _ns = ctx->context; /* Allocated now */ \ - size_t _es = st->size + _bs; /* Expected size */ \ - /* int is really a typeof(st->size): */ \ - if((int)_es < 0) RETURN(RC_FAIL); \ - if(_ns <= _es) { \ - void *ptr; \ - /* Be nice and round to the memory allocator */ \ - do { _ns = _ns ? _ns << 1 : 16; } \ - while(_ns <= _es); \ - /* int is really a typeof(st->size): */ \ - if((int)_ns < 0) RETURN(RC_FAIL); \ - ptr = REALLOC(st->buf, _ns); \ - if(ptr) { \ - st->buf = (uint8_t *)ptr; \ - ctx->context = _ns; \ - } else { \ - RETURN(RC_FAIL); \ - } \ - ASN_DEBUG("Reallocating into %ld", (long)_ns); \ - } \ - memcpy(st->buf + st->size, bufptr, _bs); \ - /* Convenient nul-termination */ \ - st->buf[_es] = '\0'; \ - st->size = _es; \ - } while(0) - -/* - * The main reason why ASN.1 is still alive is that too much time and effort - * is necessary for learning it more or less adequately, thus creating a gut - * necessity to demonstrate that aquired skill everywhere afterwards. - * No, I am not going to explain what the following stuff is. - */ -struct _stack_el { - ber_tlv_len_t left; /* What's left to read (or -1) */ - ber_tlv_len_t got; /* What was actually processed */ - unsigned cont_level; /* Depth of subcontainment */ - int want_nulls; /* Want null "end of content" octets? */ - int bits_chopped; /* Flag in BIT STRING mode */ - ber_tlv_tag_t tag; /* For debugging purposes */ - struct _stack_el *prev; - struct _stack_el *next; -}; -struct _stack { - struct _stack_el *tail; - struct _stack_el *cur_ptr; -}; - -static struct _stack_el * -OS__add_stack_el(struct _stack *st) { - struct _stack_el *nel; - - /* - * Reuse the old stack frame or allocate a new one. - */ - if(st->cur_ptr && st->cur_ptr->next) { - nel = st->cur_ptr->next; - nel->bits_chopped = 0; - nel->got = 0; - /* Retain the nel->cont_level, it's correct. */ - } else { - nel = (struct _stack_el *)CALLOC(1, sizeof(struct _stack_el)); - if(nel == NULL) - return NULL; - - if(st->tail) { - /* Increase a subcontainment depth */ - nel->cont_level = st->tail->cont_level + 1; - st->tail->next = nel; - } - nel->prev = st->tail; - st->tail = nel; - } - - st->cur_ptr = nel; - - return nel; -} - -static struct _stack * -_new_stack(void) { - return (struct _stack *)CALLOC(1, sizeof(struct _stack)); -} - -/* - * Decode OCTET STRING type. - */ -asn_dec_rval_t -OCTET_STRING_decode_ber(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **sptr, - const void *buf_ptr, size_t size, int tag_mode) { - const asn_OCTET_STRING_specifics_t *specs = td->specifics - ? (const asn_OCTET_STRING_specifics_t *)td->specifics - : &asn_SPC_OCTET_STRING_specs; - BIT_STRING_t *st = (BIT_STRING_t *)*sptr; - asn_dec_rval_t rval; - asn_struct_ctx_t *ctx; - ssize_t consumed_myself = 0; - struct _stack *stck; /* Expectations stack structure */ - struct _stack_el *sel = 0; /* Stack element */ - int tlv_constr; - enum asn_OS_Subvariant type_variant = specs->subvariant; - - ASN_DEBUG("Decoding %s as %s (frame %ld)", - td->name, - (type_variant == ASN_OSUBV_STR) ? - "OCTET STRING" : "OS-SpecialCase", - (long)size); - - /* - * Create the string if does not exist. - */ - if(st == NULL) { - st = (BIT_STRING_t *)(*sptr = CALLOC(1, specs->struct_size)); - if(st == NULL) RETURN(RC_FAIL); - } - - /* Restore parsing context */ - ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset); - - switch(ctx->phase) { - case 0: - /* - * Check tags. - */ - rval = ber_check_tags(opt_codec_ctx, td, ctx, - buf_ptr, size, tag_mode, -1, - &ctx->left, &tlv_constr); - if(rval.code != RC_OK) - return rval; - - if(tlv_constr) { - /* - * Complex operation, requires stack of expectations. - */ - ctx->ptr = _new_stack(); - if(!ctx->ptr) { - RETURN(RC_FAIL); - } - } else { - /* - * Jump into stackless primitive decoding. - */ - _CH_PHASE(ctx, 3); - if(type_variant == ASN_OSUBV_ANY && tag_mode != 1) - APPEND(buf_ptr, rval.consumed); - ADVANCE(rval.consumed); - goto phase3; - } - - NEXT_PHASE(ctx); - /* Fall through */ - case 1: - phase1: - /* - * Fill the stack with expectations. - */ - stck = (struct _stack *)ctx->ptr; - sel = stck->cur_ptr; - do { - ber_tlv_tag_t tlv_tag; - ber_tlv_len_t tlv_len; - ber_tlv_tag_t expected_tag; - ssize_t tl, ll, tlvl; - /* This one works even if (sel->left == -1) */ - size_t Left = ((!sel||(size_t)sel->left >= size) - ?size:(size_t)sel->left); - - - ASN_DEBUG("%p, s->l=%ld, s->wn=%ld, s->g=%ld\n", (void *)sel, - (long)(sel?sel->left:0), - (long)(sel?sel->want_nulls:0), - (long)(sel?sel->got:0) - ); - if(sel && sel->left <= 0 && sel->want_nulls == 0) { - if(sel->prev) { - struct _stack_el *prev = sel->prev; - if(prev->left != -1) { - if(prev->left < sel->got) - RETURN(RC_FAIL); - prev->left -= sel->got; - } - prev->got += sel->got; - sel = stck->cur_ptr = prev; - if(!sel) break; - tlv_constr = 1; - continue; - } else { - sel = stck->cur_ptr = 0; - break; /* Nothing to wait */ - } - } - - tl = ber_fetch_tag(buf_ptr, Left, &tlv_tag); - ASN_DEBUG("fetch tag(size=%ld,L=%ld), %sstack, left=%ld, wn=%ld, tl=%ld", - (long)size, (long)Left, sel?"":"!", - (long)(sel?sel->left:0), - (long)(sel?sel->want_nulls:0), - (long)tl); - switch(tl) { - case -1: RETURN(RC_FAIL); - case 0: RETURN(RC_WMORE); - } - - tlv_constr = BER_TLV_CONSTRUCTED(buf_ptr); - - ll = ber_fetch_length(tlv_constr, - (const char *)buf_ptr + tl,Left - tl,&tlv_len); - ASN_DEBUG("Got tag=%s, tc=%d, left=%ld, tl=%ld, len=%ld, ll=%ld", - ber_tlv_tag_string(tlv_tag), tlv_constr, - (long)Left, (long)tl, (long)tlv_len, (long)ll); - switch(ll) { - case -1: RETURN(RC_FAIL); - case 0: RETURN(RC_WMORE); - } - - if(sel && sel->want_nulls - && ((const uint8_t *)buf_ptr)[0] == 0 - && ((const uint8_t *)buf_ptr)[1] == 0) - { - - ASN_DEBUG("Eat EOC; wn=%d--", sel->want_nulls); - - if(type_variant == ASN_OSUBV_ANY - && (tag_mode != 1 || sel->cont_level)) - APPEND("\0\0", 2); - - ADVANCE(2); - sel->got += 2; - if(sel->left != -1) { - sel->left -= 2; /* assert(sel->left >= 2) */ - } - - sel->want_nulls--; - if(sel->want_nulls == 0) { - /* Move to the next expectation */ - sel->left = 0; - tlv_constr = 1; - } - - continue; - } - - /* - * Set up expected tags, - * depending on ASN.1 type being decoded. - */ - switch(type_variant) { - case ASN_OSUBV_BIT: - /* X.690: 8.6.4.1, NOTE 2 */ - /* Fall through */ - case ASN_OSUBV_STR: - default: - if(sel) { - unsigned level = sel->cont_level; - if(level < td->all_tags_count) { - expected_tag = td->all_tags[level]; - break; - } else if(td->all_tags_count) { - expected_tag = td->all_tags - [td->all_tags_count - 1]; - break; - } - /* else, Fall through */ - } - /* Fall through */ - case ASN_OSUBV_ANY: - expected_tag = tlv_tag; - break; - } - - - if(tlv_tag != expected_tag) { - char buf[2][32]; - ber_tlv_tag_snprint(tlv_tag, - buf[0], sizeof(buf[0])); - ber_tlv_tag_snprint(td->tags[td->tags_count-1], - buf[1], sizeof(buf[1])); - ASN_DEBUG("Tag does not match expectation: %s != %s", - buf[0], buf[1]); - RETURN(RC_FAIL); - } - - tlvl = tl + ll; /* Combined length of T and L encoding */ - if((tlv_len + tlvl) < 0) { - /* tlv_len value is too big */ - ASN_DEBUG("TLV encoding + length (%ld) is too big", - (long)tlv_len); - RETURN(RC_FAIL); - } - - /* - * Append a new expectation. - */ - sel = OS__add_stack_el(stck); - if(!sel) RETURN(RC_FAIL); - - sel->tag = tlv_tag; - - sel->want_nulls = (tlv_len==-1); - if(sel->prev && sel->prev->left != -1) { - /* Check that the parent frame is big enough */ - if(sel->prev->left < tlvl + (tlv_len==-1?0:tlv_len)) - RETURN(RC_FAIL); - if(tlv_len == -1) - sel->left = sel->prev->left - tlvl; - else - sel->left = tlv_len; - } else { - sel->left = tlv_len; - } - if(type_variant == ASN_OSUBV_ANY - && (tag_mode != 1 || sel->cont_level)) - APPEND(buf_ptr, tlvl); - sel->got += tlvl; - ADVANCE(tlvl); - - ASN_DEBUG("+EXPECT2 got=%ld left=%ld, wn=%d, clvl=%u", - (long)sel->got, (long)sel->left, - sel->want_nulls, sel->cont_level); - - } while(tlv_constr); - if(sel == NULL) { - /* Finished operation, "phase out" */ - ASN_DEBUG("Phase out"); - _CH_PHASE(ctx, +3); - break; - } - - NEXT_PHASE(ctx); - /* Fall through */ - case 2: - stck = (struct _stack *)ctx->ptr; - sel = stck->cur_ptr; - ASN_DEBUG("Phase 2: Need %ld bytes, size=%ld, alrg=%ld, wn=%d", - (long)sel->left, (long)size, (long)sel->got, - sel->want_nulls); - { - ber_tlv_len_t len; - - assert(sel->left >= 0); - - len = ((ber_tlv_len_t)size < sel->left) - ? (ber_tlv_len_t)size : sel->left; - if(len > 0) { - if(type_variant == ASN_OSUBV_BIT - && sel->bits_chopped == 0) { - /* Put the unused-bits-octet away */ - st->bits_unused = *(const uint8_t *)buf_ptr; - APPEND(((const char *)buf_ptr+1), (len - 1)); - sel->bits_chopped = 1; - } else { - APPEND(buf_ptr, len); - } - ADVANCE(len); - sel->left -= len; - sel->got += len; - } - - if(sel->left) { - ASN_DEBUG("OS left %ld, size = %ld, wn=%d\n", - (long)sel->left, (long)size, sel->want_nulls); - RETURN(RC_WMORE); - } - - PREV_PHASE(ctx); - goto phase1; - } - break; - case 3: - phase3: - /* - * Primitive form, no stack required. - */ - assert(ctx->left >= 0); - - if(size < (size_t)ctx->left) { - if(!size) RETURN(RC_WMORE); - if(type_variant == ASN_OSUBV_BIT && !ctx->context) { - st->bits_unused = *(const uint8_t *)buf_ptr; - ctx->left--; - ADVANCE(1); - } - APPEND(buf_ptr, size); - assert(ctx->context > 0); - ctx->left -= size; - ADVANCE(size); - RETURN(RC_WMORE); - } else { - if(type_variant == ASN_OSUBV_BIT - && !ctx->context && ctx->left) { - st->bits_unused = *(const uint8_t *)buf_ptr; - ctx->left--; - ADVANCE(1); - } - APPEND(buf_ptr, ctx->left); - ADVANCE(ctx->left); - ctx->left = 0; - - NEXT_PHASE(ctx); - } - break; - } - - if(sel) { - ASN_DEBUG("3sel p=%p, wn=%d, l=%ld, g=%ld, size=%ld", - (void *)sel->prev, sel->want_nulls, - (long)sel->left, (long)sel->got, (long)size); - if(sel->prev || sel->want_nulls > 1 || sel->left > 0) { - RETURN(RC_WMORE); - } - } - - /* - * BIT STRING-specific processing. - */ - if(type_variant == ASN_OSUBV_BIT) { - if(st->size) { - if(st->bits_unused < 0 || st->bits_unused > 7) { - RETURN(RC_FAIL); - } - /* Finalize BIT STRING: zero out unused bits. */ - st->buf[st->size-1] &= 0xff << st->bits_unused; - } else { - if(st->bits_unused) { - RETURN(RC_FAIL); - } - } - } - - ASN_DEBUG("Took %ld bytes to encode %s: [%s]:%ld", - (long)consumed_myself, td->name, - (type_variant == ASN_OSUBV_STR) ? (char *)st->buf : "", - (long)st->size); - - - RETURN(RC_OK); -} - -/* - * Encode OCTET STRING type using DER. - */ -asn_enc_rval_t -OCTET_STRING_encode_der(const asn_TYPE_descriptor_t *td, const void *sptr, - int tag_mode, ber_tlv_tag_t tag, - asn_app_consume_bytes_f *cb, void *app_key) { - asn_enc_rval_t er = { 0, 0, 0 }; - const asn_OCTET_STRING_specifics_t *specs = td->specifics - ? (const asn_OCTET_STRING_specifics_t *)td->specifics - : &asn_SPC_OCTET_STRING_specs; - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - enum asn_OS_Subvariant type_variant = specs->subvariant; - int fix_last_byte = 0; - - ASN_DEBUG("%s %s as OCTET STRING", - cb?"Estimating":"Encoding", td->name); - - /* - * Write tags. - */ - if(type_variant != ASN_OSUBV_ANY || tag_mode == 1) { - er.encoded = der_write_tags(td, - (type_variant == ASN_OSUBV_BIT) + st->size, - tag_mode, type_variant == ASN_OSUBV_ANY, tag, - cb, app_key); - if(er.encoded == -1) { - er.failed_type = td; - er.structure_ptr = sptr; - return er; - } - } else { - /* Disallow: [] IMPLICIT ANY */ - assert(type_variant != ASN_OSUBV_ANY || tag_mode != -1); - er.encoded = 0; - } - - if(!cb) { - er.encoded += (type_variant == ASN_OSUBV_BIT) + st->size; - ASN__ENCODED_OK(er); - } - - /* - * Prepare to deal with the last octet of BIT STRING. - */ - if(type_variant == ASN_OSUBV_BIT) { - uint8_t b = st->bits_unused & 0x07; - if(b && st->size) fix_last_byte = 1; - ASN__CALLBACK(&b, 1); - } - - /* Invoke callback for the main part of the buffer */ - ASN__CALLBACK(st->buf, st->size - fix_last_byte); - - /* The last octet should be stripped off the unused bits */ - if(fix_last_byte) { - uint8_t b = st->buf[st->size-1] & (0xff << st->bits_unused); - ASN__CALLBACK(&b, 1); - } - - ASN__ENCODED_OK(er); -cb_failed: - ASN__ENCODE_FAILED; -} - -asn_enc_rval_t -OCTET_STRING_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, - int ilevel, enum xer_encoder_flags_e flags, - asn_app_consume_bytes_f *cb, void *app_key) { - const char * const h2c = "0123456789ABCDEF"; - const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; - asn_enc_rval_t er = { 0, 0, 0 }; - char scratch[16 * 3 + 4]; - char *p = scratch; - uint8_t *buf; - uint8_t *end; - size_t i; - - if(!st || (!st->buf && st->size)) - ASN__ENCODE_FAILED; - - er.encoded = 0; - - /* - * Dump the contents of the buffer in hexadecimal. - */ - buf = st->buf; - end = buf + st->size; - if(flags & XER_F_CANONICAL) { - char *scend = scratch + (sizeof(scratch) - 2); - for(; buf < end; buf++) { - if(p >= scend) { - ASN__CALLBACK(scratch, p - scratch); - p = scratch; - } - *p++ = h2c[(*buf >> 4) & 0x0F]; - *p++ = h2c[*buf & 0x0F]; - } - - ASN__CALLBACK(scratch, p-scratch); /* Dump the rest */ - } else { - for(i = 0; buf < end; buf++, i++) { - if(!(i % 16) && (i || st->size > 16)) { - ASN__CALLBACK(scratch, p-scratch); - p = scratch; - ASN__TEXT_INDENT(1, ilevel); - } - *p++ = h2c[(*buf >> 4) & 0x0F]; - *p++ = h2c[*buf & 0x0F]; - *p++ = 0x20; - } - if(p - scratch) { - p--; /* Remove the tail space */ - ASN__CALLBACK(scratch, p-scratch); /* Dump the rest */ - if(st->size > 16) - ASN__TEXT_INDENT(1, ilevel-1); - } - } - - ASN__ENCODED_OK(er); -cb_failed: - ASN__ENCODE_FAILED; -} - -static const struct OCTET_STRING__xer_escape_table_s { - const char *string; - int size; -} OCTET_STRING__xer_escape_table[] = { -#define OSXET(s) { s, sizeof(s) - 1 } - OSXET("\074\156\165\154\057\076"), /* */ - OSXET("\074\163\157\150\057\076"), /* */ - OSXET("\074\163\164\170\057\076"), /* */ - OSXET("\074\145\164\170\057\076"), /* */ - OSXET("\074\145\157\164\057\076"), /* */ - OSXET("\074\145\156\161\057\076"), /* */ - OSXET("\074\141\143\153\057\076"), /* */ - OSXET("\074\142\145\154\057\076"), /* */ - OSXET("\074\142\163\057\076"), /* */ - OSXET("\011"), /* \t */ - OSXET("\012"), /* \n */ - OSXET("\074\166\164\057\076"), /* */ - OSXET("\074\146\146\057\076"), /* */ - OSXET("\015"), /* \r */ - OSXET("\074\163\157\057\076"), /* */ - OSXET("\074\163\151\057\076"), /* */ - OSXET("\074\144\154\145\057\076"), /* */ - OSXET("\074\144\143\061\057\076"), /* */ - OSXET("\074\144\143\062\057\076"), /* */ - OSXET("\074\144\143\063\057\076"), /* */ - OSXET("\074\144\143\064\057\076"), /* */ - OSXET("\074\156\141\153\057\076"), /* */ - OSXET("\074\163\171\156\057\076"), /* */ - OSXET("\074\145\164\142\057\076"), /* */ - OSXET("\074\143\141\156\057\076"), /* */ - OSXET("\074\145\155\057\076"), /* */ - OSXET("\074\163\165\142\057\076"), /* */ - OSXET("\074\145\163\143\057\076"), /* */ - OSXET("\074\151\163\064\057\076"), /* */ - OSXET("\074\151\163\063\057\076"), /* */ - OSXET("\074\151\163\062\057\076"), /* */ - OSXET("\074\151\163\061\057\076"), /* */ - { 0, 0 }, /* " " */ - { 0, 0 }, /* ! */ - { 0, 0 }, /* \" */ - { 0, 0 }, /* # */ - { 0, 0 }, /* $ */ - { 0, 0 }, /* % */ - OSXET("\046\141\155\160\073"), /* & */ - { 0, 0 }, /* ' */ - {0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0}, /* ()*+,-./ */ - {0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0}, /* 01234567 */ - {0,0},{0,0},{0,0},{0,0}, /* 89:; */ - OSXET("\046\154\164\073"), /* < */ - { 0, 0 }, /* = */ - OSXET("\046\147\164\073"), /* > */ -}; - -static int -OS__check_escaped_control_char(const void *buf, int size) { - size_t i; - /* - * Inefficient algorithm which translates the escape sequences - * defined above into characters. Returns -1 if not found. - * TODO: replace by a faster algorithm (bsearch(), hash or - * nested table lookups). - */ - for(i = 0; i < 32 /* Don't spend time on the bottom half */; i++) { - const struct OCTET_STRING__xer_escape_table_s *el; - el = &OCTET_STRING__xer_escape_table[i]; - if(el->size == size && memcmp(buf, el->string, size) == 0) - return i; - } - return -1; -} - -static int -OCTET_STRING__handle_control_chars(void *struct_ptr, const void *chunk_buf, size_t chunk_size) { - /* - * This might be one of the escape sequences - * for control characters. Check it out. - * #11.15.5 - */ - int control_char = OS__check_escaped_control_char(chunk_buf,chunk_size); - if(control_char >= 0) { - OCTET_STRING_t *st = (OCTET_STRING_t *)struct_ptr; - void *p = REALLOC(st->buf, st->size + 2); - if(p) { - st->buf = (uint8_t *)p; - st->buf[st->size++] = control_char; - st->buf[st->size] = '\0'; /* nul-termination */ - return 0; - } - } - - return -1; /* No, it's not */ -} - -asn_enc_rval_t -OCTET_STRING_encode_xer_utf8(const asn_TYPE_descriptor_t *td, const void *sptr, - int ilevel, enum xer_encoder_flags_e flags, - asn_app_consume_bytes_f *cb, void *app_key) { - const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; - asn_enc_rval_t er = { 0, 0, 0 }; - uint8_t *buf, *end; - uint8_t *ss; /* Sequence start */ - ssize_t encoded_len = 0; - - (void)ilevel; /* Unused argument */ - (void)flags; /* Unused argument */ - - if(!st || (!st->buf && st->size)) - ASN__ENCODE_FAILED; - - buf = st->buf; - end = buf + st->size; - for(ss = buf; buf < end; buf++) { - unsigned int ch = *buf; - int s_len; /* Special encoding sequence length */ - - /* - * Escape certain characters: X.680/11.15 - */ - if(ch < sizeof(OCTET_STRING__xer_escape_table) - /sizeof(OCTET_STRING__xer_escape_table[0]) - && (s_len = OCTET_STRING__xer_escape_table[ch].size)) { - if(((buf - ss) && cb(ss, buf - ss, app_key) < 0) - || cb(OCTET_STRING__xer_escape_table[ch].string, s_len, - app_key) < 0) - ASN__ENCODE_FAILED; - encoded_len += (buf - ss) + s_len; - ss = buf + 1; - } - } - - encoded_len += (buf - ss); - if((buf - ss) && cb(ss, buf - ss, app_key) < 0) - ASN__ENCODE_FAILED; - - er.encoded = encoded_len; - ASN__ENCODED_OK(er); -} - -/* - * Convert from hexadecimal format (cstring): "AB CD EF" - */ -static ssize_t OCTET_STRING__convert_hexadecimal(void *sptr, const void *chunk_buf, size_t chunk_size, int have_more) { - OCTET_STRING_t *st = (OCTET_STRING_t *)sptr; - const char *chunk_stop = (const char *)chunk_buf; - const char *p = chunk_stop; - const char *pend = p + chunk_size; - unsigned int clv = 0; - int half = 0; /* Half bit */ - uint8_t *buf; - - /* Reallocate buffer according to high cap estimation */ - size_t new_size = st->size + (chunk_size + 1) / 2; - void *nptr = REALLOC(st->buf, new_size + 1); - if(!nptr) return -1; - st->buf = (uint8_t *)nptr; - buf = st->buf + st->size; - - /* - * If something like " a b c " appears here, the " a b":3 will be - * converted, and the rest skipped. That is, unless buf_size is greater - * than chunk_size, then it'll be equivalent to "ABC0". - */ - for(; p < pend; p++) { - int ch = *(const unsigned char *)p; - switch(ch) { - case 0x09: case 0x0a: case 0x0c: case 0x0d: - case 0x20: - /* Ignore whitespace */ - continue; - case 0x30: case 0x31: case 0x32: case 0x33: case 0x34: /*01234*/ - case 0x35: case 0x36: case 0x37: case 0x38: case 0x39: /*56789*/ - clv = (clv << 4) + (ch - 0x30); - break; - case 0x41: case 0x42: case 0x43: /* ABC */ - case 0x44: case 0x45: case 0x46: /* DEF */ - clv = (clv << 4) + (ch - 0x41 + 10); - break; - case 0x61: case 0x62: case 0x63: /* abc */ - case 0x64: case 0x65: case 0x66: /* def */ - clv = (clv << 4) + (ch - 0x61 + 10); - break; - default: - *buf = 0; /* JIC */ - return -1; - } - if(half++) { - half = 0; - *buf++ = clv; - chunk_stop = p + 1; - } - } - - /* - * Check partial decoding. - */ - if(half) { - if(have_more) { - /* - * Partial specification is fine, - * because no more more PXER_TEXT data is available. - */ - *buf++ = clv << 4; - chunk_stop = p; - } - } else { - chunk_stop = p; - } - - st->size = buf - st->buf; /* Adjust the buffer size */ - assert(st->size <= new_size); - st->buf[st->size] = 0; /* Courtesy termination */ - - return (chunk_stop - (const char *)chunk_buf); /* Converted size */ -} - -/* - * Convert from binary format: "00101011101" - */ -static ssize_t OCTET_STRING__convert_binary(void *sptr, const void *chunk_buf, size_t chunk_size, int have_more) { - BIT_STRING_t *st = (BIT_STRING_t *)sptr; - const char *p = (const char *)chunk_buf; - const char *pend = p + chunk_size; - int bits_unused = st->bits_unused & 0x7; - uint8_t *buf; - - /* Reallocate buffer according to high cap estimation */ - size_t new_size = st->size + (chunk_size + 7) / 8; - void *nptr = REALLOC(st->buf, new_size + 1); - if(!nptr) return -1; - st->buf = (uint8_t *)nptr; - buf = st->buf + st->size; - - (void)have_more; - - if(bits_unused == 0) - bits_unused = 8; - else if(st->size) - buf--; - - /* - * Convert series of 0 and 1 into the octet string. - */ - for(; p < pend; p++) { - int ch = *(const unsigned char *)p; - switch(ch) { - case 0x09: case 0x0a: case 0x0c: case 0x0d: - case 0x20: - /* Ignore whitespace */ - break; - case 0x30: - case 0x31: - if(bits_unused-- <= 0) { - *++buf = 0; /* Clean the cell */ - bits_unused = 7; - } - *buf |= (ch&1) << bits_unused; - break; - default: - st->bits_unused = bits_unused; - return -1; - } - } - - if(bits_unused == 8) { - st->size = buf - st->buf; - st->bits_unused = 0; - } else { - st->size = buf - st->buf + 1; - st->bits_unused = bits_unused; - } - - assert(st->size <= new_size); - st->buf[st->size] = 0; /* Courtesy termination */ - - return chunk_size; /* Converted in full */ -} - -/* - * Something like strtod(), but with stricter rules. - */ -static int -OS__strtoent(int base, const char *buf, const char *end, int32_t *ret_value) { - const int32_t last_unicode_codepoint = 0x10ffff; - int32_t val = 0; - const char *p; - - for(p = buf; p < end; p++) { - int ch = *p; - - switch(ch) { - case 0x30: case 0x31: case 0x32: case 0x33: case 0x34: /*01234*/ - case 0x35: case 0x36: case 0x37: case 0x38: case 0x39: /*56789*/ - val = val * base + (ch - 0x30); - break; - case 0x41: case 0x42: case 0x43: /* ABC */ - case 0x44: case 0x45: case 0x46: /* DEF */ - val = val * base + (ch - 0x41 + 10); - break; - case 0x61: case 0x62: case 0x63: /* abc */ - case 0x64: case 0x65: case 0x66: /* def */ - val = val * base + (ch - 0x61 + 10); - break; - case 0x3b: /* ';' */ - *ret_value = val; - return (p - buf) + 1; - default: - return -1; /* Character set error */ - } - - /* Value exceeds the Unicode range. */ - if(val > last_unicode_codepoint) { - return -1; - } - } - - *ret_value = -1; - return (p - buf); -} - -/* - * Convert from the plain UTF-8 format, expanding entity references: "2 < 3" - */ -static ssize_t -OCTET_STRING__convert_entrefs(void *sptr, const void *chunk_buf, - size_t chunk_size, int have_more) { - OCTET_STRING_t *st = (OCTET_STRING_t *)sptr; - const char *p = (const char *)chunk_buf; - const char *pend = p + chunk_size; - uint8_t *buf; - - /* Reallocate buffer */ - size_t new_size = st->size + chunk_size; - void *nptr = REALLOC(st->buf, new_size + 1); - if(!nptr) return -1; - st->buf = (uint8_t *)nptr; - buf = st->buf + st->size; - - /* - * Convert series of 0 and 1 into the octet string. - */ - for(; p < pend; p++) { - int ch = *(const unsigned char *)p; - int len; /* Length of the rest of the chunk */ - - if(ch != 0x26 /* '&' */) { - *buf++ = ch; - continue; /* That was easy... */ - } - - /* - * Process entity reference. - */ - len = chunk_size - (p - (const char *)chunk_buf); - if(len == 1 /* "&" */) goto want_more; - if(p[1] == 0x23 /* '#' */) { - const char *pval; /* Pointer to start of digits */ - int32_t val = 0; /* Entity reference value */ - int base; - - if(len == 2 /* "&#" */) goto want_more; - if(p[2] == 0x78 /* 'x' */) - pval = p + 3, base = 16; - else - pval = p + 2, base = 10; - len = OS__strtoent(base, pval, p + len, &val); - if(len == -1) { - /* Invalid charset. Just copy verbatim. */ - *buf++ = ch; - continue; - } - if(!len || pval[len-1] != 0x3b) goto want_more; - assert(val > 0); - p += (pval - p) + len - 1; /* Advance past entref */ - - if(val < 0x80) { - *buf++ = (char)val; - } else if(val < 0x800) { - *buf++ = 0xc0 | ((val >> 6)); - *buf++ = 0x80 | ((val & 0x3f)); - } else if(val < 0x10000) { - *buf++ = 0xe0 | ((val >> 12)); - *buf++ = 0x80 | ((val >> 6) & 0x3f); - *buf++ = 0x80 | ((val & 0x3f)); - } else if(val < 0x200000) { - *buf++ = 0xf0 | ((val >> 18)); - *buf++ = 0x80 | ((val >> 12) & 0x3f); - *buf++ = 0x80 | ((val >> 6) & 0x3f); - *buf++ = 0x80 | ((val & 0x3f)); - } else if(val < 0x4000000) { - *buf++ = 0xf8 | ((val >> 24)); - *buf++ = 0x80 | ((val >> 18) & 0x3f); - *buf++ = 0x80 | ((val >> 12) & 0x3f); - *buf++ = 0x80 | ((val >> 6) & 0x3f); - *buf++ = 0x80 | ((val & 0x3f)); - } else { - *buf++ = 0xfc | ((val >> 30) & 0x1); - *buf++ = 0x80 | ((val >> 24) & 0x3f); - *buf++ = 0x80 | ((val >> 18) & 0x3f); - *buf++ = 0x80 | ((val >> 12) & 0x3f); - *buf++ = 0x80 | ((val >> 6) & 0x3f); - *buf++ = 0x80 | ((val & 0x3f)); - } - } else { - /* - * Ugly, limited parsing of & > < - */ - char *sc = (char *)memchr(p, 0x3b, len > 5 ? 5 : len); - if(!sc) goto want_more; - if((sc - p) == 4 - && p[1] == 0x61 /* 'a' */ - && p[2] == 0x6d /* 'm' */ - && p[3] == 0x70 /* 'p' */) { - *buf++ = 0x26; - p = sc; - continue; - } - if((sc - p) == 3) { - if(p[1] == 0x6c) { - *buf = 0x3c; /* '<' */ - } else if(p[1] == 0x67) { - *buf = 0x3e; /* '>' */ - } else { - /* Unsupported entity reference */ - *buf++ = ch; - continue; - } - if(p[2] != 0x74) { - /* Unsupported entity reference */ - *buf++ = ch; - continue; - } - buf++; - p = sc; - continue; - } - /* Unsupported entity reference */ - *buf++ = ch; - } - - continue; - want_more: - if(have_more) { - /* - * We know that no more data (of the same type) - * is coming. Copy the rest verbatim. - */ - *buf++ = ch; - continue; - } - chunk_size = (p - (const char *)chunk_buf); - /* Processing stalled: need more data */ - break; - } - - st->size = buf - st->buf; - assert(st->size <= new_size); - st->buf[st->size] = 0; /* Courtesy termination */ - - return chunk_size; /* Converted in full */ -} - -/* - * Decode OCTET STRING from the XML element's body. - */ -static asn_dec_rval_t -OCTET_STRING__decode_xer( - const asn_codec_ctx_t *opt_codec_ctx, const asn_TYPE_descriptor_t *td, - void **sptr, const char *opt_mname, const void *buf_ptr, size_t size, - int (*opt_unexpected_tag_decoder)(void *struct_ptr, const void *chunk_buf, - size_t chunk_size), - ssize_t (*body_receiver)(void *struct_ptr, const void *chunk_buf, - size_t chunk_size, int have_more)) { - OCTET_STRING_t *st = (OCTET_STRING_t *)*sptr; - const asn_OCTET_STRING_specifics_t *specs = td->specifics - ? (const asn_OCTET_STRING_specifics_t *)td->specifics - : &asn_SPC_OCTET_STRING_specs; - const char *xml_tag = opt_mname ? opt_mname : td->xml_tag; - asn_struct_ctx_t *ctx; /* Per-structure parser context */ - asn_dec_rval_t rval; /* Return value from the decoder */ - int st_allocated; - - /* - * Create the string if does not exist. - */ - if(!st) { - st = (OCTET_STRING_t *)CALLOC(1, specs->struct_size); - *sptr = (void *)st; - if(!st) goto sta_failed; - st_allocated = 1; - } else { - st_allocated = 0; - } - if(!st->buf) { - /* This is separate from above section */ - st->buf = (uint8_t *)CALLOC(1, 1); - if(!st->buf) { - if(st_allocated) { - *sptr = 0; - goto stb_failed; - } else { - goto sta_failed; - } - } - } - - /* Restore parsing context */ - ctx = (asn_struct_ctx_t *)(((char *)*sptr) + specs->ctx_offset); - - return xer_decode_general(opt_codec_ctx, ctx, *sptr, xml_tag, - buf_ptr, size, opt_unexpected_tag_decoder, body_receiver); - -stb_failed: - FREEMEM(st); -sta_failed: - rval.code = RC_FAIL; - rval.consumed = 0; - return rval; -} - -/* - * Decode OCTET STRING from the hexadecimal data. - */ -asn_dec_rval_t -OCTET_STRING_decode_xer_hex(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **sptr, - const char *opt_mname, const void *buf_ptr, - size_t size) { - return OCTET_STRING__decode_xer(opt_codec_ctx, td, sptr, opt_mname, - buf_ptr, size, 0, OCTET_STRING__convert_hexadecimal); -} - -/* - * Decode OCTET STRING from the binary (0/1) data. - */ -asn_dec_rval_t -OCTET_STRING_decode_xer_binary(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **sptr, - const char *opt_mname, const void *buf_ptr, - size_t size) { - return OCTET_STRING__decode_xer(opt_codec_ctx, td, sptr, opt_mname, - buf_ptr, size, 0, OCTET_STRING__convert_binary); -} - -/* - * Decode OCTET STRING from the string (ASCII/UTF-8) data. - */ -asn_dec_rval_t -OCTET_STRING_decode_xer_utf8(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **sptr, - const char *opt_mname, const void *buf_ptr, - size_t size) { - return OCTET_STRING__decode_xer(opt_codec_ctx, td, sptr, opt_mname, - buf_ptr, size, - OCTET_STRING__handle_control_chars, - OCTET_STRING__convert_entrefs); -} - -#ifndef ASN_DISABLE_PER_SUPPORT - -static int -OCTET_STRING_per_get_characters(asn_per_data_t *po, uint8_t *buf, - size_t units, unsigned int bpc, unsigned int unit_bits, - long lb, long ub, const asn_per_constraints_t *pc) { - uint8_t *end = buf + units * bpc; - - ASN_DEBUG("Expanding %d characters into (%ld..%ld):%d", - (int)units, lb, ub, unit_bits); - - /* X.691: 27.5.4 */ - if((unsigned long)ub <= ((unsigned long)2 << (unit_bits - 1))) { - /* Decode without translation */ - lb = 0; - } else if(pc && pc->code2value) { - if(unit_bits > 16) - return 1; /* FATAL: can't have constrained - * UniversalString with more than - * 16 million code points */ - for(; buf < end; buf += bpc) { - int value; - int code = per_get_few_bits(po, unit_bits); - if(code < 0) return -1; /* WMORE */ - value = pc->code2value(code); - if(value < 0) { - ASN_DEBUG("Code %d (0x%02x) is" - " not in map (%ld..%ld)", - code, code, lb, ub); - return 1; /* FATAL */ - } - switch(bpc) { - case 1: *buf = value; break; - case 2: buf[0] = value >> 8; buf[1] = value; break; - case 4: buf[0] = value >> 24; buf[1] = value >> 16; - buf[2] = value >> 8; buf[3] = value; break; - } - } - return 0; - } - - /* Shortcut the no-op copying to the aligned structure */ - if(lb == 0 && (unit_bits == 8 * bpc)) { - return per_get_many_bits(po, buf, 0, unit_bits * units); - } - - for(; buf < end; buf += bpc) { - int32_t code = per_get_few_bits(po, unit_bits); - int32_t ch = code + lb; - if(code < 0) return -1; /* WMORE */ - if(ch > ub) { - ASN_DEBUG("Code %d is out of range (%ld..%ld)", - ch, lb, ub); - return 1; /* FATAL */ - } - switch(bpc) { - case 1: *buf = ch; break; - case 2: buf[0] = ch >> 8; buf[1] = ch; break; - case 4: buf[0] = ch >> 24; buf[1] = ch >> 16; - buf[2] = ch >> 8; buf[3] = ch; break; - } - } - - return 0; -} - -static int -OCTET_STRING_per_put_characters(asn_per_outp_t *po, const uint8_t *buf, - size_t units, unsigned int bpc, unsigned int unit_bits, - long lb, long ub, const asn_per_constraints_t *pc) { - const uint8_t *end = buf + units * bpc; - - ASN_DEBUG("Squeezing %d characters into (%ld..%ld):%d (%d bpc)", - (int)units, lb, ub, unit_bits, bpc); - - /* X.691: 27.5.4 */ - if((unsigned long)ub <= ((unsigned long)2 << (unit_bits - 1))) { - /* Encode as is */ - lb = 0; - } else if(pc && pc->value2code) { - for(; buf < end; buf += bpc) { - int code; - uint32_t value; - switch(bpc) { - case 1: value = *(const uint8_t *)buf; break; - case 2: value = (buf[0] << 8) | buf[1]; break; - case 4: value = (buf[0] << 24) | (buf[1] << 16) - | (buf[2] << 8) | buf[3]; break; - default: return -1; - } - code = pc->value2code(value); - if(code < 0) { - ASN_DEBUG("Character %d (0x%02x) is" - " not in map (%ld..%ld)", - *buf, *buf, lb, ub); - return -1; - } - if(per_put_few_bits(po, code, unit_bits)) - return -1; - } - } - - /* Shortcut the no-op copying to the aligned structure */ - if(lb == 0 && (unit_bits == 8 * bpc)) { - return per_put_many_bits(po, buf, unit_bits * units); - } - - for(ub -= lb; buf < end; buf += bpc) { - int ch; - uint32_t value; - switch(bpc) { - case 1: - value = *(const uint8_t *)buf; - break; - case 2: - value = (buf[0] << 8) | buf[1]; - break; - case 4: - value = (buf[0] << 24) | (buf[1] << 16) | (buf[2] << 8) | buf[3]; - break; - default: - return -1; - } - ch = value - lb; - if(ch < 0 || ch > ub) { - ASN_DEBUG("Character %d (0x%02x) is out of range (%ld..%ld)", *buf, - value, lb, ub + lb); - return -1; - } - if(per_put_few_bits(po, ch, unit_bits)) return -1; - } - - return 0; -} - -static asn_per_constraints_t asn_DEF_OCTET_STRING_constraints = { - { APC_CONSTRAINED, 8, 8, 0, 255 }, - { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 }, - 0, 0 -}; - -asn_dec_rval_t -OCTET_STRING_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, - asn_per_data_t *pd) { - const asn_OCTET_STRING_specifics_t *specs = td->specifics - ? (const asn_OCTET_STRING_specifics_t *)td->specifics - : &asn_SPC_OCTET_STRING_specs; - const asn_per_constraints_t *pc = - constraints ? constraints : td->encoding_constraints.per_constraints; - const asn_per_constraint_t *cval; - const asn_per_constraint_t *csiz; - asn_dec_rval_t rval = { RC_OK, 0 }; - OCTET_STRING_t *st = (OCTET_STRING_t *)*sptr; - ssize_t consumed_myself = 0; - int repeat; - enum { - OS__BPC_CHAR = 1, - OS__BPC_U16 = 2, - OS__BPC_U32 = 4 - } bpc; /* Bytes per character */ - unsigned int unit_bits; - unsigned int canonical_unit_bits; - - (void)opt_codec_ctx; - - if(pc) { - cval = &pc->value; - csiz = &pc->size; - } else { - cval = &asn_DEF_OCTET_STRING_constraints.value; - csiz = &asn_DEF_OCTET_STRING_constraints.size; - } - - switch(specs->subvariant) { - default: - case ASN_OSUBV_ANY: - case ASN_OSUBV_BIT: - ASN_DEBUG("Unrecognized subvariant %d", specs->subvariant); - RETURN(RC_FAIL); - break; - case ASN_OSUBV_STR: - canonical_unit_bits = unit_bits = 8; - if(cval->flags & APC_CONSTRAINED) - unit_bits = cval->range_bits; - bpc = OS__BPC_CHAR; - break; - case ASN_OSUBV_U16: - canonical_unit_bits = unit_bits = 16; - if(cval->flags & APC_CONSTRAINED) - unit_bits = cval->range_bits; - bpc = OS__BPC_U16; - break; - case ASN_OSUBV_U32: - canonical_unit_bits = unit_bits = 32; - if(cval->flags & APC_CONSTRAINED) - unit_bits = cval->range_bits; - bpc = OS__BPC_U32; - break; - } - - /* - * Allocate the string. - */ - if(!st) { - st = (OCTET_STRING_t *)(*sptr = CALLOC(1, specs->struct_size)); - if(!st) RETURN(RC_FAIL); - } - - ASN_DEBUG("PER Decoding %s size %ld .. %ld bits %d", - csiz->flags & APC_EXTENSIBLE ? "extensible" : "non-extensible", - csiz->lower_bound, csiz->upper_bound, csiz->effective_bits); - - if(csiz->flags & APC_EXTENSIBLE) { - int inext = per_get_few_bits(pd, 1); - if(inext < 0) RETURN(RC_WMORE); - if(inext) { - csiz = &asn_DEF_OCTET_STRING_constraints.size; - unit_bits = canonical_unit_bits; - } - } - - if(csiz->effective_bits >= 0) { - FREEMEM(st->buf); - if(bpc) { - st->size = csiz->upper_bound * bpc; - } else { - st->size = (csiz->upper_bound + 7) >> 3; - } - st->buf = (uint8_t *)MALLOC(st->size + 1); - if(!st->buf) { st->size = 0; RETURN(RC_FAIL); } - } - - /* X.691, #16.5: zero-length encoding */ - /* X.691, #16.6: short fixed length encoding (up to 2 octets) */ - /* X.691, #16.7: long fixed length encoding (up to 64K octets) */ - if(csiz->effective_bits == 0) { - int ret; - if(bpc) { - ASN_DEBUG("Encoding OCTET STRING size %ld", - csiz->upper_bound); - ret = OCTET_STRING_per_get_characters(pd, st->buf, - csiz->upper_bound, bpc, unit_bits, - cval->lower_bound, cval->upper_bound, pc); - if(ret > 0) RETURN(RC_FAIL); - } else { - ASN_DEBUG("Encoding BIT STRING size %ld", - csiz->upper_bound); - ret = per_get_many_bits(pd, st->buf, 0, - unit_bits * csiz->upper_bound); - } - if(ret < 0) RETURN(RC_WMORE); - consumed_myself += unit_bits * csiz->upper_bound; - st->buf[st->size] = 0; - RETURN(RC_OK); - } - - st->size = 0; - do { - ssize_t raw_len; - ssize_t len_bytes; - void *p; - int ret; - - /* Get the PER length */ - raw_len = uper_get_length(pd, csiz->effective_bits, csiz->lower_bound, - &repeat); - if(raw_len < 0) RETURN(RC_WMORE); - if(raw_len == 0 && st->buf) break; - - ASN_DEBUG("Got PER length eb %ld, len %ld, %s (%s)", - (long)csiz->effective_bits, (long)raw_len, - repeat ? "repeat" : "once", td->name); - len_bytes = raw_len * bpc; - p = REALLOC(st->buf, st->size + len_bytes + 1); - if(!p) RETURN(RC_FAIL); - st->buf = (uint8_t *)p; - - ret = OCTET_STRING_per_get_characters(pd, &st->buf[st->size], raw_len, - bpc, unit_bits, cval->lower_bound, - cval->upper_bound, pc); - if(ret > 0) RETURN(RC_FAIL); - if(ret < 0) RETURN(RC_WMORE); - st->size += len_bytes; - } while(repeat); - st->buf[st->size] = 0; /* nul-terminate */ - - return rval; -} - -asn_enc_rval_t -OCTET_STRING_encode_uper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_per_outp_t *po) { - const asn_OCTET_STRING_specifics_t *specs = td->specifics - ? (const asn_OCTET_STRING_specifics_t *)td->specifics - : &asn_SPC_OCTET_STRING_specs; - const asn_per_constraints_t *pc = constraints ? constraints - : td->encoding_constraints.per_constraints; - const asn_per_constraint_t *cval; - const asn_per_constraint_t *csiz; - const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; - asn_enc_rval_t er = { 0, 0, 0 }; - int inext = 0; /* Lies not within extension root */ - unsigned int unit_bits; - unsigned int canonical_unit_bits; - size_t size_in_units; - const uint8_t *buf; - int ret; - enum { - OS__BPC_CHAR = 1, - OS__BPC_U16 = 2, - OS__BPC_U32 = 4 - } bpc; /* Bytes per character */ - int ct_extensible; - - if(!st || (!st->buf && st->size)) - ASN__ENCODE_FAILED; - - if(pc) { - cval = &pc->value; - csiz = &pc->size; - } else { - cval = &asn_DEF_OCTET_STRING_constraints.value; - csiz = &asn_DEF_OCTET_STRING_constraints.size; - } - ct_extensible = csiz->flags & APC_EXTENSIBLE; - - switch(specs->subvariant) { - default: - case ASN_OSUBV_ANY: - case ASN_OSUBV_BIT: - ASN__ENCODE_FAILED; - case ASN_OSUBV_STR: - canonical_unit_bits = unit_bits = 8; - if(cval->flags & APC_CONSTRAINED) - unit_bits = cval->range_bits; - bpc = OS__BPC_CHAR; - size_in_units = st->size; - break; - case ASN_OSUBV_U16: - canonical_unit_bits = unit_bits = 16; - if(cval->flags & APC_CONSTRAINED) - unit_bits = cval->range_bits; - bpc = OS__BPC_U16; - size_in_units = st->size >> 1; - if(st->size & 1) { - ASN_DEBUG("%s string size is not modulo 2", td->name); - ASN__ENCODE_FAILED; - } - break; - case ASN_OSUBV_U32: - canonical_unit_bits = unit_bits = 32; - if(cval->flags & APC_CONSTRAINED) - unit_bits = cval->range_bits; - bpc = OS__BPC_U32; - size_in_units = st->size >> 2; - if(st->size & 3) { - ASN_DEBUG("%s string size is not modulo 4", td->name); - ASN__ENCODE_FAILED; - } - break; - } - - ASN_DEBUG("Encoding %s into %" ASN_PRI_SIZE " units of %d bits" - " (%ld..%ld, effective %d)%s", - td->name, size_in_units, unit_bits, - csiz->lower_bound, csiz->upper_bound, - csiz->effective_bits, ct_extensible ? " EXT" : ""); - - /* Figure out whether size lies within PER visible constraint */ - - if(csiz->effective_bits >= 0) { - if((ssize_t)size_in_units < csiz->lower_bound - || (ssize_t)size_in_units > csiz->upper_bound) { - if(ct_extensible) { - csiz = &asn_DEF_OCTET_STRING_constraints.size; - unit_bits = canonical_unit_bits; - inext = 1; - } else { - ASN__ENCODE_FAILED; - } - } - } else { - inext = 0; - } - - if(ct_extensible) { - /* Declare whether length is [not] within extension root */ - if(per_put_few_bits(po, inext, 1)) - ASN__ENCODE_FAILED; - } - - if(csiz->effective_bits >= 0 && !inext) { - ASN_DEBUG("Encoding %" ASN_PRI_SIZE " bytes (%ld), length in %d bits", st->size, - size_in_units - csiz->lower_bound, csiz->effective_bits); - ret = per_put_few_bits(po, size_in_units - csiz->lower_bound, - csiz->effective_bits); - if(ret) ASN__ENCODE_FAILED; - ret = OCTET_STRING_per_put_characters(po, st->buf, size_in_units, bpc, - unit_bits, cval->lower_bound, - cval->upper_bound, pc); - if(ret) ASN__ENCODE_FAILED; - ASN__ENCODED_OK(er); - } - - ASN_DEBUG("Encoding %" ASN_PRI_SIZE " bytes", st->size); - - buf = st->buf; - ASN_DEBUG("Encoding %" ASN_PRI_SIZE " in units", size_in_units); - do { - int need_eom = 0; - ssize_t may_save = uper_put_length(po, size_in_units, &need_eom); - if(may_save < 0) ASN__ENCODE_FAILED; - - ASN_DEBUG("Encoding %" ASN_PRI_SSIZE " of %" ASN_PRI_SIZE "%s", may_save, size_in_units, - need_eom ? ",+EOM" : ""); - - ret = OCTET_STRING_per_put_characters(po, buf, may_save, bpc, unit_bits, - cval->lower_bound, - cval->upper_bound, pc); - if(ret) ASN__ENCODE_FAILED; - - buf += may_save * bpc; - size_in_units -= may_save; - assert(!(may_save & 0x07) || !size_in_units); - if(need_eom && uper_put_length(po, 0, 0)) - ASN__ENCODE_FAILED; /* End of Message length */ - } while(size_in_units); - - ASN__ENCODED_OK(er); -} - -asn_dec_rval_t -OCTET_STRING_decode_aper(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - void **sptr, asn_per_data_t *pd) { - - const asn_OCTET_STRING_specifics_t *specs = td->specifics - ? (const asn_OCTET_STRING_specifics_t *)td->specifics - : &asn_SPC_OCTET_STRING_specs; - const asn_per_constraints_t *pc = constraints ? constraints - : td->encoding_constraints.per_constraints; - const asn_per_constraint_t *cval; - const asn_per_constraint_t *csiz; - asn_dec_rval_t rval = { RC_OK, 0 }; - BIT_STRING_t *st = (BIT_STRING_t *)*sptr; - ssize_t consumed_myself = 0; - int repeat; - enum { - OS__BPC_BIT = 0, - OS__BPC_CHAR = 1, - OS__BPC_U16 = 2, - OS__BPC_U32 = 4 - } bpc; /* Bytes per character */ - unsigned int unit_bits; - unsigned int canonical_unit_bits; - - (void)opt_codec_ctx; - - if(pc) { - cval = &pc->value; - csiz = &pc->size; - } else { - cval = &asn_DEF_OCTET_STRING_constraints.value; - csiz = &asn_DEF_OCTET_STRING_constraints.size; - } - - switch(specs->subvariant) { - default: -/* case ASN_OSUBV_ANY: - ASN_DEBUG("Unrecognized subvariant %d", specs->subvariant); - RETURN(RC_FAIL); -*/ - case ASN_OSUBV_BIT: - canonical_unit_bits = unit_bits = 1; - bpc = OS__BPC_BIT; - break; - case ASN_OSUBV_ANY: - case ASN_OSUBV_STR: - canonical_unit_bits = unit_bits = 8; -/* if(cval->flags & APC_CONSTRAINED) - unit_bits = cval->range_bits; -*/ - bpc = OS__BPC_CHAR; - break; - case ASN_OSUBV_U16: - canonical_unit_bits = unit_bits = 16; - if(cval->flags & APC_CONSTRAINED) - unit_bits = cval->range_bits; - bpc = OS__BPC_U16; - break; - case ASN_OSUBV_U32: - canonical_unit_bits = unit_bits = 32; - if(cval->flags & APC_CONSTRAINED) - unit_bits = cval->range_bits; - bpc = OS__BPC_U32; - break; - } - - /* - * Allocate the string. - */ - if(!st) { - st = (BIT_STRING_t *)(*sptr = CALLOC(1, specs->struct_size)); - if(!st) RETURN(RC_FAIL); - } - - ASN_DEBUG("PER Decoding %s size %ld .. %ld bits %d", - csiz->flags & APC_EXTENSIBLE ? "extensible" : "non-extensible", - csiz->lower_bound, csiz->upper_bound, csiz->effective_bits); - - if(csiz->flags & APC_EXTENSIBLE) { - int inext = per_get_few_bits(pd, 1); - if(inext < 0) RETURN(RC_WMORE); - if(inext) { - csiz = &asn_DEF_OCTET_STRING_constraints.size; - cval = &asn_DEF_OCTET_STRING_constraints.value; - unit_bits = canonical_unit_bits; - } - } - - if(csiz->effective_bits >= 0) { - FREEMEM(st->buf); - if(bpc) { - st->size = csiz->upper_bound * bpc; - } else { - st->size = (csiz->upper_bound + 7) >> 3; - } - st->buf = (uint8_t *)MALLOC(st->size + 1); - if(!st->buf) { st->size = 0; RETURN(RC_FAIL); } - } - - /* X.691, #16.5: zero-length encoding */ - /* X.691, #16.6: short fixed length encoding (up to 2 octets) */ - /* X.691, #16.7: long fixed length encoding (up to 64K octets) */ - if(csiz->effective_bits == 0) { - int ret; - if (st->size > 2) { /* X.691 #16 NOTE 1 */ - if (aper_get_align(pd) < 0) - RETURN(RC_FAIL); - } - if(bpc) { - ASN_DEBUG("Decoding OCTET STRING size %ld", - csiz->upper_bound); - ret = OCTET_STRING_per_get_characters(pd, st->buf, - csiz->upper_bound, bpc, unit_bits, - cval->lower_bound, cval->upper_bound, pc); - if(ret > 0) RETURN(RC_FAIL); - } else { - ASN_DEBUG("Decoding BIT STRING size %ld", - csiz->upper_bound); - ret = per_get_many_bits(pd, st->buf, 0, - unit_bits * csiz->upper_bound); - } - if(ret < 0) RETURN(RC_WMORE); - consumed_myself += unit_bits * csiz->upper_bound; - st->buf[st->size] = 0; - if(bpc == 0) { - int ubs = (csiz->upper_bound & 0x7); - st->bits_unused = ubs ? 8 - ubs : 0; - } - RETURN(RC_OK); - } - - st->size = 0; - do { - ssize_t raw_len; - ssize_t len_bytes; - ssize_t len_bits; - void *p; - int ret; - - /* Get the PER length */ - if (csiz->upper_bound - csiz->lower_bound == 0) - /* Indefinite length case */ - raw_len = aper_get_length(pd, -1, csiz->effective_bits, &repeat); - else - raw_len = aper_get_length(pd, csiz->upper_bound - csiz->lower_bound + 1, csiz->effective_bits, &repeat); - repeat = 0; - if(raw_len < 0) RETURN(RC_WMORE); - raw_len += csiz->lower_bound; - - ASN_DEBUG("Got PER length eb %ld, len %ld, %s (%s)", - (long)csiz->effective_bits, (long)raw_len, - repeat ? "repeat" : "once", td->name); - - if (raw_len > 2) { /* X.691 #16 NOTE 1 */ - if (aper_get_align(pd) < 0) - RETURN(RC_FAIL); - } - - if(bpc) { - len_bytes = raw_len * bpc; - len_bits = len_bytes * unit_bits; - } else { - len_bits = raw_len; - len_bytes = (len_bits + 7) >> 3; - if(len_bits & 0x7) - st->bits_unused = 8 - (len_bits & 0x7); - /* len_bits be multiple of 16K if repeat is set */ - } - p = REALLOC(st->buf, st->size + len_bytes + 1); - if(!p) RETURN(RC_FAIL); - st->buf = (uint8_t *)p; - - if(bpc) { - ret = OCTET_STRING_per_get_characters(pd, - &st->buf[st->size], raw_len, bpc, unit_bits, - cval->lower_bound, cval->upper_bound, pc); - if(ret > 0) RETURN(RC_FAIL); - } else { - ret = per_get_many_bits(pd, &st->buf[st->size], - 0, len_bits); - } - if(ret < 0) RETURN(RC_WMORE); - st->size += len_bytes; - } while(repeat); - st->buf[st->size] = 0; /* nul-terminate */ - - return rval; -} - -asn_enc_rval_t -OCTET_STRING_encode_aper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_per_outp_t *po) { - - const asn_OCTET_STRING_specifics_t *specs = td->specifics - ? (const asn_OCTET_STRING_specifics_t *)td->specifics - : &asn_SPC_OCTET_STRING_specs; - const asn_per_constraints_t *pc = constraints ? constraints - : td->encoding_constraints.per_constraints; - const asn_per_constraint_t *cval; - const asn_per_constraint_t *csiz; - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - asn_enc_rval_t er = { 0, 0, 0 }; - int inext = 0; /* Lies not within extension root */ - unsigned int unit_bits; - unsigned int canonical_unit_bits; - unsigned int sizeinunits; - const uint8_t *buf; - int ret; - enum { - OS__BPC_BIT = 0, - OS__BPC_CHAR = 1, - OS__BPC_U16 = 2, - OS__BPC_U32 = 4 - } bpc; /* Bytes per character */ - int ct_extensible; - - if(!st || (!st->buf && st->size)) - ASN__ENCODE_FAILED; - - if(pc) { - cval = &pc->value; - csiz = &pc->size; - } else { - cval = &asn_DEF_OCTET_STRING_constraints.value; - csiz = &asn_DEF_OCTET_STRING_constraints.size; - } - ct_extensible = csiz->flags & APC_EXTENSIBLE; - - switch(specs->subvariant) { - default: - /* case ASN_OSUBV_ANY: - ASN__ENCODE_FAILED; - */ - case ASN_OSUBV_BIT: - canonical_unit_bits = unit_bits = 1; - bpc = OS__BPC_BIT; - sizeinunits = st->size * 8 - (st->bits_unused & 0x07); - ASN_DEBUG("BIT STRING of %d bytes", - sizeinunits); - break; - case ASN_OSUBV_ANY: - case ASN_OSUBV_STR: - canonical_unit_bits = unit_bits = 8; -/* if(cval->flags & APC_CONSTRAINED) - unit_bits = 8; -*/ - bpc = OS__BPC_CHAR; - sizeinunits = st->size; - break; - case ASN_OSUBV_U16: - canonical_unit_bits = unit_bits = 16; - if(cval->flags & APC_CONSTRAINED) - unit_bits = cval->range_bits; - bpc = OS__BPC_U16; - sizeinunits = st->size / 2; - break; - case ASN_OSUBV_U32: - canonical_unit_bits = unit_bits = 32; - if(cval->flags & APC_CONSTRAINED) - unit_bits = cval->range_bits; - bpc = OS__BPC_U32; - sizeinunits = st->size / 4; - break; - } - - ASN_DEBUG("Encoding %s into %d units of %d bits" - " (%ld..%ld, effective %d)%s", - td->name, sizeinunits, unit_bits, - csiz->lower_bound, csiz->upper_bound, - csiz->effective_bits, ct_extensible ? " EXT" : ""); - - /* Figure out wheter size lies within PER visible constraint */ - - if(csiz->effective_bits >= 0) { - if((int)sizeinunits < csiz->lower_bound - || (int)sizeinunits > csiz->upper_bound) { - if(ct_extensible) { - cval = &asn_DEF_OCTET_STRING_constraints.value; - csiz = &asn_DEF_OCTET_STRING_constraints.size; - unit_bits = canonical_unit_bits; - inext = 1; - } else - ASN__ENCODE_FAILED; - } - } else { - inext = 0; - } - - - if(ct_extensible) { - /* Declare whether length is [not] within extension root */ - if(per_put_few_bits(po, inext, 1)) - ASN__ENCODE_FAILED; - } - - /* X.691, #16.5: zero-length encoding */ - /* X.691, #16.6: short fixed length encoding (up to 2 octets) */ - /* X.691, #16.7: long fixed length encoding (up to 64K octets) */ - if(csiz->effective_bits >= 0) { - ASN_DEBUG("Encoding %lu bytes (%ld), length in %d bits", - st->size, sizeinunits - csiz->lower_bound, - csiz->effective_bits); - if (csiz->effective_bits > 0) { - ret = aper_put_length(po, csiz->upper_bound - csiz->lower_bound + 1, sizeinunits - csiz->lower_bound); - if(ret) ASN__ENCODE_FAILED; - } - /* EB MOD - AFAIU if lb != ub it is aligned whatever the number of bits */ - if ((st->size > 2) || (csiz->lower_bound != csiz->upper_bound)) { /* X.691 #16.11 */ - if (aper_put_align(po) < 0) - ASN__ENCODE_FAILED; - } - if(bpc) { - ret = OCTET_STRING_per_put_characters(po, st->buf, - sizeinunits, bpc, unit_bits, - cval->lower_bound, cval->upper_bound, pc); - } else { - ret = per_put_many_bits(po, st->buf, - sizeinunits * unit_bits); - } - if(ret) ASN__ENCODE_FAILED; - ASN__ENCODED_OK(er); - } - - ASN_DEBUG("Encoding %lu bytes", st->size); - - if(sizeinunits == 0) { - if(aper_put_length(po, -1, 0)) - ASN__ENCODE_FAILED; - ASN__ENCODED_OK(er); - } - - buf = st->buf; - while(sizeinunits) { - ssize_t maySave = aper_put_length(po, -1, sizeinunits); - - if(maySave < 0) ASN__ENCODE_FAILED; - - ASN_DEBUG("Encoding %ld of %ld", - (long)maySave, (long)sizeinunits); - - if(bpc) { - ret = OCTET_STRING_per_put_characters(po, buf, - maySave, bpc, unit_bits, - cval->lower_bound, cval->upper_bound, pc); - } else { - ret = per_put_many_bits(po, buf, maySave * unit_bits); - } - if(ret) ASN__ENCODE_FAILED; - - if(bpc) - buf += maySave * bpc; - else - buf += maySave >> 3; - sizeinunits -= maySave; - assert(!(maySave & 0x07) || !sizeinunits); - } - - ASN__ENCODED_OK(er); -} - -#endif /* ASN_DISABLE_PER_SUPPORT */ - -int -OCTET_STRING_print(const asn_TYPE_descriptor_t *td, const void *sptr, - int ilevel, asn_app_consume_bytes_f *cb, void *app_key) { - const char * const h2c = "0123456789ABCDEF"; - const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; - char scratch[16 * 3 + 4]; - char *p = scratch; - uint8_t *buf; - uint8_t *end; - size_t i; - - (void)td; /* Unused argument */ - - if(!st || (!st->buf && st->size)) - return (cb("", 8, app_key) < 0) ? -1 : 0; - - /* - * Dump the contents of the buffer in hexadecimal. - */ - buf = st->buf; - end = buf + st->size; - for(i = 0; buf < end; buf++, i++) { - if(!(i % 16) && (i || st->size > 16)) { - if(cb(scratch, p - scratch, app_key) < 0) - return -1; - _i_INDENT(1); - p = scratch; - } - *p++ = h2c[(*buf >> 4) & 0x0F]; - *p++ = h2c[*buf & 0x0F]; - *p++ = 0x20; - } - - if(p > scratch) { - p--; /* Remove the tail space */ - if(cb(scratch, p - scratch, app_key) < 0) - return -1; - } - - return 0; -} - -int -OCTET_STRING_print_utf8(const asn_TYPE_descriptor_t *td, const void *sptr, - int ilevel, asn_app_consume_bytes_f *cb, - void *app_key) { - const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; - - (void)td; /* Unused argument */ - (void)ilevel; /* Unused argument */ - - if(st && (st->buf || !st->size)) { - return (cb(st->buf, st->size, app_key) < 0) ? -1 : 0; - } else { - return (cb("", 8, app_key) < 0) ? -1 : 0; - } -} - -void -OCTET_STRING_free(const asn_TYPE_descriptor_t *td, void *sptr, - enum asn_struct_free_method method) { - OCTET_STRING_t *st = (OCTET_STRING_t *)sptr; - const asn_OCTET_STRING_specifics_t *specs; - asn_struct_ctx_t *ctx; - struct _stack *stck; - - if(!td || !st) - return; - - specs = td->specifics - ? (const asn_OCTET_STRING_specifics_t *)td->specifics - : &asn_SPC_OCTET_STRING_specs; - ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset); - - ASN_DEBUG("Freeing %s as OCTET STRING", td->name); - - if(st->buf) { - FREEMEM(st->buf); - st->buf = 0; - } - - /* - * Remove decode-time stack. - */ - stck = (struct _stack *)ctx->ptr; - if(stck) { - while(stck->tail) { - struct _stack_el *sel = stck->tail; - stck->tail = sel->prev; - FREEMEM(sel); - } - FREEMEM(stck); - } - - switch(method) { - case ASFM_FREE_EVERYTHING: - FREEMEM(sptr); - break; - case ASFM_FREE_UNDERLYING: - break; - case ASFM_FREE_UNDERLYING_AND_RESET: - memset(sptr, 0, - td->specifics - ? ((const asn_OCTET_STRING_specifics_t *)(td->specifics)) - ->struct_size - : sizeof(OCTET_STRING_t)); - break; - } -} - -/* - * Conversion routines. - */ -int -OCTET_STRING_fromBuf(OCTET_STRING_t *st, const char *str, int len) { - void *buf; - - if(st == 0 || (str == 0 && len)) { - errno = EINVAL; - return -1; - } - - /* - * Clear the OCTET STRING. - */ - if(str == NULL) { - FREEMEM(st->buf); - st->buf = 0; - st->size = 0; - return 0; - } - - /* Determine the original string size, if not explicitly given */ - if(len < 0) - len = strlen(str); - - /* Allocate and fill the memory */ - buf = MALLOC(len + 1); - if(buf == NULL) - return -1; - - memcpy(buf, str, len); - ((uint8_t *)buf)[len] = '\0'; /* Couldn't use memcpy(len+1)! */ - FREEMEM(st->buf); - st->buf = (uint8_t *)buf; - st->size = len; - - return 0; -} - -OCTET_STRING_t * -OCTET_STRING_new_fromBuf(const asn_TYPE_descriptor_t *td, const char *str, - int len) { - const asn_OCTET_STRING_specifics_t *specs = - td->specifics ? (const asn_OCTET_STRING_specifics_t *)td->specifics - : &asn_SPC_OCTET_STRING_specs; - OCTET_STRING_t *st; - - st = (OCTET_STRING_t *)CALLOC(1, specs->struct_size); - if(st && str && OCTET_STRING_fromBuf(st, str, len)) { - FREEMEM(st); - st = NULL; - } - - return st; -} - -/* - * Lexicographically compare the common prefix of both strings, - * and if it is the same return -1 for the smallest string. - */ -int -OCTET_STRING_compare(const asn_TYPE_descriptor_t *td, const void *aptr, - const void *bptr) { - const asn_OCTET_STRING_specifics_t *specs = td->specifics; - const OCTET_STRING_t *a = aptr; - const OCTET_STRING_t *b = bptr; - - assert(!specs || specs->subvariant != ASN_OSUBV_BIT); - - if(a && b) { - size_t common_prefix_size = a->size <= b->size ? a->size : b->size; - int ret = memcmp(a->buf, b->buf, common_prefix_size); - if(ret == 0) { - /* Figure out which string with equal prefixes is longer. */ - if(a->size < b->size) { - return -1; - } else if(a->size > b->size) { - return 1; - } else { - return 0; - } - } else { - return ret < 0 ? -1 : 1; - } - } else if(!a && !b) { - return 0; - } else if(!a) { - return -1; - } else { - return 1; - } - -} - -/* - * Biased function for randomizing character values around their limits. - */ -static uint32_t -OCTET_STRING__random_char(unsigned long lb, unsigned long ub) { - assert(lb <= ub); - switch(asn_random_between(0, 16)) { - case 0: - if(lb < ub) return lb + 1; - /* Fall through */ - case 1: - return lb; - case 2: - if(lb < ub) return ub - 1; - /* Fall through */ - case 3: - return ub; - default: - return asn_random_between(lb, ub); - } -} - - -size_t -OCTET_STRING_random_length_constrained( - const asn_TYPE_descriptor_t *td, - const asn_encoding_constraints_t *constraints, size_t max_length) { - const unsigned lengths[] = {0, 1, 2, 3, 4, 8, - 126, 127, 128, 16383, 16384, 16385, - 65534, 65535, 65536, 65537}; - size_t rnd_len; - - /* Figure out how far we should go */ - rnd_len = lengths[asn_random_between( - 0, sizeof(lengths) / sizeof(lengths[0]) - 1)]; - - if(!constraints || !constraints->per_constraints) - constraints = &td->encoding_constraints; - if(constraints->per_constraints) { - const asn_per_constraint_t *pc = &constraints->per_constraints->size; - if(pc->flags & APC_CONSTRAINED) { - long suggested_upper_bound = pc->upper_bound < (ssize_t)max_length - ? pc->upper_bound - : (ssize_t)max_length; - if(max_length <= (size_t)pc->lower_bound) { - return pc->lower_bound; - } - if(pc->flags & APC_EXTENSIBLE) { - switch(asn_random_between(0, 5)) { - case 0: - if(pc->lower_bound > 0) { - rnd_len = pc->lower_bound - 1; - break; - } - /* Fall through */ - case 1: - rnd_len = pc->upper_bound + 1; - break; - case 2: - /* Keep rnd_len from the table */ - if(rnd_len <= max_length) { - break; - } - /* Fall through */ - default: - rnd_len = asn_random_between(pc->lower_bound, - suggested_upper_bound); - } - } else { - rnd_len = - asn_random_between(pc->lower_bound, suggested_upper_bound); - } - } else { - rnd_len = asn_random_between(0, max_length); - } - } else if(rnd_len > max_length) { - rnd_len = asn_random_between(0, max_length); - } - - return rnd_len; -} - -asn_random_fill_result_t -OCTET_STRING_random_fill(const asn_TYPE_descriptor_t *td, void **sptr, - const asn_encoding_constraints_t *constraints, - size_t max_length) { - const asn_OCTET_STRING_specifics_t *specs = td->specifics - ? (const asn_OCTET_STRING_specifics_t *)td->specifics - : &asn_SPC_OCTET_STRING_specs; - asn_random_fill_result_t result_ok = {ARFILL_OK, 1}; - asn_random_fill_result_t result_failed = {ARFILL_FAILED, 0}; - asn_random_fill_result_t result_skipped = {ARFILL_SKIPPED, 0}; - unsigned int unit_bytes = 1; - unsigned long clb = 0; /* Lower bound on char */ - unsigned long cub = 255; /* Higher bound on char value */ - uint8_t *buf; - uint8_t *bend; - uint8_t *b; - size_t rnd_len; - OCTET_STRING_t *st; - - if(max_length == 0 && !*sptr) return result_skipped; - - switch(specs->subvariant) { - default: - case ASN_OSUBV_ANY: - return result_failed; - case ASN_OSUBV_BIT: - /* Handled by BIT_STRING itself. */ - return result_failed; - case ASN_OSUBV_STR: - unit_bytes = 1; - clb = 0; - cub = 255; - break; - case ASN_OSUBV_U16: - unit_bytes = 2; - clb = 0; - cub = 65535; - break; - case ASN_OSUBV_U32: - unit_bytes = 4; - clb = 0; - cub = 0x10FFFF; - break; - } - - if(!constraints || !constraints->per_constraints) - constraints = &td->encoding_constraints; - if(constraints->per_constraints) { - const asn_per_constraint_t *pc = &constraints->per_constraints->value; - if(pc->flags & APC_SEMI_CONSTRAINED) { - clb = pc->lower_bound; - } else if(pc->flags & APC_CONSTRAINED) { - clb = pc->lower_bound; - cub = pc->upper_bound; - } - } - - rnd_len = - OCTET_STRING_random_length_constrained(td, constraints, max_length); - - buf = CALLOC(unit_bytes, rnd_len + 1); - if(!buf) return result_failed; - - bend = &buf[unit_bytes * rnd_len]; - - switch(unit_bytes) { - case 1: - for(b = buf; b < bend; b += unit_bytes) { - *(uint8_t *)b = OCTET_STRING__random_char(clb, cub); - } - *(uint8_t *)b = 0; - break; - case 2: - for(b = buf; b < bend; b += unit_bytes) { - uint32_t code = OCTET_STRING__random_char(clb, cub); - b[0] = code >> 8; - b[1] = code; - } - *(uint16_t *)b = 0; - break; - case 4: - for(b = buf; b < bend; b += unit_bytes) { - uint32_t code = OCTET_STRING__random_char(clb, cub); - b[0] = code >> 24; - b[1] = code >> 16; - b[2] = code >> 8; - b[3] = code; - } - *(uint32_t *)b = 0; - break; - } - - if(*sptr) { - st = *sptr; - FREEMEM(st->buf); - } else { - st = (OCTET_STRING_t *)(*sptr = CALLOC(1, specs->struct_size)); - if(!st) { - FREEMEM(buf); - return result_failed; - } - } - - st->buf = buf; - st->size = unit_bytes * rnd_len; - - result_ok.length = st->size; - return result_ok; -} diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/OCTET_STRING.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/OCTET_STRING.h deleted file mode 100644 index c2f8bae..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/OCTET_STRING.h +++ /dev/null @@ -1,102 +0,0 @@ -/*- - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef _OCTET_STRING_H_ -#define _OCTET_STRING_H_ - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct OCTET_STRING { - uint8_t *buf; /* Buffer with consecutive OCTET_STRING bits */ - size_t size; /* Size of the buffer */ - - asn_struct_ctx_t _asn_ctx; /* Parsing across buffer boundaries */ -} OCTET_STRING_t; - -extern asn_TYPE_descriptor_t asn_DEF_OCTET_STRING; -extern asn_TYPE_operation_t asn_OP_OCTET_STRING; - -asn_struct_free_f OCTET_STRING_free; -asn_struct_print_f OCTET_STRING_print; -asn_struct_print_f OCTET_STRING_print_utf8; -asn_struct_compare_f OCTET_STRING_compare; -ber_type_decoder_f OCTET_STRING_decode_ber; -der_type_encoder_f OCTET_STRING_encode_der; -xer_type_decoder_f OCTET_STRING_decode_xer_hex; /* Hexadecimal */ -xer_type_decoder_f OCTET_STRING_decode_xer_binary; /* 01010111010 */ -xer_type_decoder_f OCTET_STRING_decode_xer_utf8; /* ASCII/UTF-8 */ -xer_type_encoder_f OCTET_STRING_encode_xer; -xer_type_encoder_f OCTET_STRING_encode_xer_utf8; -oer_type_decoder_f OCTET_STRING_decode_oer; -oer_type_encoder_f OCTET_STRING_encode_oer; -per_type_decoder_f OCTET_STRING_decode_uper; -per_type_encoder_f OCTET_STRING_encode_uper; -per_type_decoder_f OCTET_STRING_decode_aper; -per_type_encoder_f OCTET_STRING_encode_aper; -asn_random_fill_f OCTET_STRING_random_fill; - -#define OCTET_STRING_constraint asn_generic_no_constraint -#define OCTET_STRING_decode_xer OCTET_STRING_decode_xer_hex - -/****************************** - * Handy conversion routines. * - ******************************/ - -/* - * This function clears the previous value of the OCTET STRING (if any) - * and then allocates a new memory with the specified content (str/size). - * If size = -1, the size of the original string will be determined - * using strlen(str). - * If str equals to NULL, the function will silently clear the - * current contents of the OCTET STRING. - * Returns 0 if it was possible to perform operation, -1 otherwise. - */ -int OCTET_STRING_fromBuf(OCTET_STRING_t *s, const char *str, int size); - -/* Handy conversion from the C string into the OCTET STRING. */ -#define OCTET_STRING_fromString(s, str) OCTET_STRING_fromBuf(s, str, -1) - -/* - * Allocate and fill the new OCTET STRING and return a pointer to the newly - * allocated object. NULL is permitted in str: the function will just allocate - * empty OCTET STRING. - */ -OCTET_STRING_t *OCTET_STRING_new_fromBuf(const asn_TYPE_descriptor_t *td, - const char *str, int size); - -/**************************** - * Internally useful stuff. * - ****************************/ - -typedef struct asn_OCTET_STRING_specifics_s { - /* - * Target structure description. - */ - unsigned struct_size; /* Size of the structure */ - unsigned ctx_offset; /* Offset of the asn_struct_ctx_t member */ - - enum asn_OS_Subvariant { - ASN_OSUBV_ANY, /* The open type (ANY) */ - ASN_OSUBV_BIT, /* BIT STRING */ - ASN_OSUBV_STR, /* String types, not {BMP,Universal}String */ - ASN_OSUBV_U16, /* 16-bit character (BMPString) */ - ASN_OSUBV_U32 /* 32-bit character (UniversalString) */ - } subvariant; -} asn_OCTET_STRING_specifics_t; - -extern asn_OCTET_STRING_specifics_t asn_SPC_OCTET_STRING_specs; - -size_t OCTET_STRING_random_length_constrained( - const asn_TYPE_descriptor_t *, const asn_encoding_constraints_t *, - size_t max_length); - -#ifdef __cplusplus -} -#endif - -#endif /* _OCTET_STRING_H_ */ diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/OCTET_STRING_oer.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/OCTET_STRING_oer.c deleted file mode 100644 index c16faea..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/OCTET_STRING_oer.c +++ /dev/null @@ -1,171 +0,0 @@ -/* - * Copyright (c) 2017 Lev Walkin . - * All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef ASN_DISABLE_OER_SUPPORT - -#include -#include -#include - -asn_dec_rval_t -OCTET_STRING_decode_oer(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_oer_constraints_t *constraints, void **sptr, - const void *ptr, size_t size) { - const asn_OCTET_STRING_specifics_t *specs = - td->specifics ? (const asn_OCTET_STRING_specifics_t *)td->specifics - : &asn_SPC_OCTET_STRING_specs; - OCTET_STRING_t *st = (OCTET_STRING_t *)*sptr; - const asn_oer_constraints_t *cts = - constraints ? constraints : td->encoding_constraints.oer_constraints; - ssize_t ct_size = cts ? cts->size : -1; - asn_dec_rval_t rval = {RC_OK, 0}; - size_t expected_length = 0; - - size_t unit_bytes; - switch(specs->subvariant) { - default: - case ASN_OSUBV_BIT: - ASN_DEBUG("Invalid use of OCTET STRING to decode BIT STRING"); - ASN__DECODE_FAILED; - case ASN_OSUBV_ANY: - /* Fall through */ - case ASN_OSUBV_STR: - unit_bytes = 1; - break; - case ASN_OSUBV_U16: - unit_bytes = 2; - break; - case ASN_OSUBV_U32: - unit_bytes = 4; - break; - } - - (void)opt_codec_ctx; - - if(!st) { - st = (OCTET_STRING_t *)(*sptr = CALLOC(1, specs->struct_size)); - if(!st) ASN__DECODE_FAILED; - } - - if(ct_size >= 0) { - expected_length = unit_bytes * ct_size; - } else { - /* - * X.696 (08/2015) #27.2 - * Encode length determinant as _number of octets_, but only - * if upper bound is not equal to lower bound. - */ - ssize_t len_len = oer_fetch_length(ptr, size, &expected_length); - if(len_len > 0) { - rval.consumed = len_len; - ptr = (const char *)ptr + len_len; - size -= len_len; - } else if(len_len == 0) { - ASN__DECODE_STARVED; - } else if(len_len < 0) { - ASN__DECODE_FAILED; - } - - if(expected_length % unit_bytes != 0) { - ASN_DEBUG( - "Data size %" ASN_PRI_SIZE " bytes is not consistent with multiplier %" ASN_PRI_SIZE "", - expected_length, unit_bytes); - ASN__DECODE_FAILED; - } - } - - if(size < expected_length) { - ASN__DECODE_STARVED; - } else { - uint8_t *buf = MALLOC(expected_length + 1); - if(buf == NULL) { - ASN__DECODE_FAILED; - } else { - memcpy(buf, ptr, expected_length); - buf[expected_length] = '\0'; - } - FREEMEM(st->buf); - st->buf = buf; - st->size = expected_length; - - rval.consumed += expected_length; - return rval; - } -} - -/* - * Encode as Canonical OER. - */ -asn_enc_rval_t -OCTET_STRING_encode_oer(const asn_TYPE_descriptor_t *td, - const asn_oer_constraints_t *constraints, - const void *sptr, asn_app_consume_bytes_f *cb, - void *app_key) { - const asn_OCTET_STRING_specifics_t *specs = - td->specifics ? (const asn_OCTET_STRING_specifics_t *)td->specifics - : &asn_SPC_OCTET_STRING_specs; - const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; - const asn_oer_constraints_t *cts = - constraints ? constraints : td->encoding_constraints.oer_constraints; - ssize_t ct_size = cts ? cts->size : -1; - asn_enc_rval_t er = {0, 0, 0}; - - if(!st) ASN__ENCODE_FAILED; - - ASN_DEBUG("Encoding %s %" ASN_PRI_SIZE " as OCTET STRING", td ? td->name : "", st->size); - - if(ct_size >= 0) { - /* - * Check that available data matches the constraint - */ - size_t unit_bytes; - switch(specs->subvariant) { - default: - case ASN_OSUBV_BIT: - ASN_DEBUG("Invalid use of OCTET STRING to encode BIT STRING"); - ASN__ENCODE_FAILED; - case ASN_OSUBV_ANY: - /* Fall through */ - case ASN_OSUBV_STR: - unit_bytes = 1; - break; - case ASN_OSUBV_U16: - unit_bytes = 2; - break; - case ASN_OSUBV_U32: - unit_bytes = 4; - break; - } - - if(st->size != unit_bytes * (size_t)ct_size) { - ASN_DEBUG( - "Trying to encode %s (%" ASN_PRI_SIZE " bytes) which doesn't fit SIZE " - "constraint (%" ASN_PRI_SIZE ")", - td->name, st->size, ct_size); - ASN__ENCODE_FAILED; - } - } else { - /* - * X.696 (08/2015) #27.2 - * Encode length determinant as _number of octets_, but only - * if upper bound is not equal to lower bound. - */ - ssize_t ret = oer_serialize_length(st->size, cb, app_key); - if(ret < 0) { - ASN__ENCODE_FAILED; - } - er.encoded += ret; - } - - er.encoded += st->size; - if(cb(st->buf, st->size, app_key) < 0) { - ASN__ENCODE_FAILED; - } else { - ASN__ENCODED_OK(er); - } -} - -#endif /* ASN_DISABLE_OER_SUPPORT */ diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/OCUCP-PF-Container.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/OCUCP-PF-Container.c deleted file mode 100644 index 121932b..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/OCUCP-PF-Container.c +++ /dev/null @@ -1,140 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "OCUCP-PF-Container.h" - -static int -memb_numberOfActive_UEs_constraint_3(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 1 && value <= 65536)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_oer_constraints_t asn_OER_memb_numberOfActive_UEs_constr_4 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_memb_numberOfActive_UEs_constr_4 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 16, -1, 1, 65536 } /* (1..65536,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_cu_CP_Resource_Status_3[] = { - { ATF_POINTER, 1, offsetof(struct OCUCP_PF_Container__cu_CP_Resource_Status, numberOfActive_UEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_numberOfActive_UEs_constr_4, &asn_PER_memb_numberOfActive_UEs_constr_4, memb_numberOfActive_UEs_constraint_3 }, - 0, 0, /* No default value */ - "numberOfActive-UEs" - }, -}; -static const int asn_MAP_cu_CP_Resource_Status_oms_3[] = { 0 }; -static const ber_tlv_tag_t asn_DEF_cu_CP_Resource_Status_tags_3[] = { - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_cu_CP_Resource_Status_tag2el_3[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* numberOfActive-UEs */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_cu_CP_Resource_Status_specs_3 = { - sizeof(struct OCUCP_PF_Container__cu_CP_Resource_Status), - offsetof(struct OCUCP_PF_Container__cu_CP_Resource_Status, _asn_ctx), - asn_MAP_cu_CP_Resource_Status_tag2el_3, - 1, /* Count of tags in the map */ - asn_MAP_cu_CP_Resource_Status_oms_3, /* Optional members */ - 1, 0, /* Root/Additions */ - -1, /* First extension addition */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_cu_CP_Resource_Status_3 = { - "cu-CP-Resource-Status", - "cu-CP-Resource-Status", - &asn_OP_SEQUENCE, - asn_DEF_cu_CP_Resource_Status_tags_3, - sizeof(asn_DEF_cu_CP_Resource_Status_tags_3) - /sizeof(asn_DEF_cu_CP_Resource_Status_tags_3[0]) - 1, /* 1 */ - asn_DEF_cu_CP_Resource_Status_tags_3, /* Same as above */ - sizeof(asn_DEF_cu_CP_Resource_Status_tags_3) - /sizeof(asn_DEF_cu_CP_Resource_Status_tags_3[0]), /* 2 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_cu_CP_Resource_Status_3, - 1, /* Elements count */ - &asn_SPC_cu_CP_Resource_Status_specs_3 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_OCUCP_PF_Container_1[] = { - { ATF_POINTER, 1, offsetof(struct OCUCP_PF_Container, gNB_CU_CP_Name), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GNB_CU_CP_Name, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "gNB-CU-CP-Name" - }, - { ATF_NOFLAGS, 0, offsetof(struct OCUCP_PF_Container, cu_CP_Resource_Status), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - 0, - &asn_DEF_cu_CP_Resource_Status_3, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "cu-CP-Resource-Status" - }, -}; -static const int asn_MAP_OCUCP_PF_Container_oms_1[] = { 0 }; -static const ber_tlv_tag_t asn_DEF_OCUCP_PF_Container_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_OCUCP_PF_Container_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* gNB-CU-CP-Name */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* cu-CP-Resource-Status */ -}; -asn_SEQUENCE_specifics_t asn_SPC_OCUCP_PF_Container_specs_1 = { - sizeof(struct OCUCP_PF_Container), - offsetof(struct OCUCP_PF_Container, _asn_ctx), - asn_MAP_OCUCP_PF_Container_tag2el_1, - 2, /* Count of tags in the map */ - asn_MAP_OCUCP_PF_Container_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_OCUCP_PF_Container = { - "OCUCP-PF-Container", - "OCUCP-PF-Container", - &asn_OP_SEQUENCE, - asn_DEF_OCUCP_PF_Container_tags_1, - sizeof(asn_DEF_OCUCP_PF_Container_tags_1) - /sizeof(asn_DEF_OCUCP_PF_Container_tags_1[0]), /* 1 */ - asn_DEF_OCUCP_PF_Container_tags_1, /* Same as above */ - sizeof(asn_DEF_OCUCP_PF_Container_tags_1) - /sizeof(asn_DEF_OCUCP_PF_Container_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_OCUCP_PF_Container_1, - 2, /* Elements count */ - &asn_SPC_OCUCP_PF_Container_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/OCUCP-PF-Container.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/OCUCP-PF-Container.h deleted file mode 100644 index aee0f21..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/OCUCP-PF-Container.h +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _OCUCP_PF_Container_H_ -#define _OCUCP_PF_Container_H_ - - -#include - -/* Including external dependencies */ -#include "GNB-CU-CP-Name.h" -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* OCUCP-PF-Container */ -typedef struct OCUCP_PF_Container { - GNB_CU_CP_Name_t *gNB_CU_CP_Name; /* OPTIONAL */ - struct OCUCP_PF_Container__cu_CP_Resource_Status { - long *numberOfActive_UEs; /* OPTIONAL */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } cu_CP_Resource_Status; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} OCUCP_PF_Container_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_OCUCP_PF_Container; -extern asn_SEQUENCE_specifics_t asn_SPC_OCUCP_PF_Container_specs_1; -extern asn_TYPE_member_t asn_MBR_OCUCP_PF_Container_1[2]; - -#ifdef __cplusplus -} -#endif - -#endif /* _OCUCP_PF_Container_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/OCUUP-PF-Container.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/OCUUP-PF-Container.c deleted file mode 100644 index e1f754e..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/OCUUP-PF-Container.c +++ /dev/null @@ -1,141 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "OCUUP-PF-Container.h" - -static int -memb_pf_ContainerList_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - /* Determine the number of elements */ - size = _A_CSEQUENCE_FROM_VOID(sptr)->count; - - if((size >= 1 && size <= 3)) { - /* Perform validation of the inner elements */ - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_oer_constraints_t asn_OER_type_pf_ContainerList_constr_3 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..3)) */}; -static asn_per_constraints_t asn_PER_type_pf_ContainerList_constr_3 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 2, 2, 1, 3 } /* (SIZE(1..3)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_pf_ContainerList_constr_3 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..3)) */}; -static asn_per_constraints_t asn_PER_memb_pf_ContainerList_constr_3 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 2, 2, 1, 3 } /* (SIZE(1..3)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_pf_ContainerList_3[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_PF_ContainerListItem, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_pf_ContainerList_tags_3[] = { - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_pf_ContainerList_specs_3 = { - sizeof(struct OCUUP_PF_Container__pf_ContainerList), - offsetof(struct OCUUP_PF_Container__pf_ContainerList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_pf_ContainerList_3 = { - "pf-ContainerList", - "pf-ContainerList", - &asn_OP_SEQUENCE_OF, - asn_DEF_pf_ContainerList_tags_3, - sizeof(asn_DEF_pf_ContainerList_tags_3) - /sizeof(asn_DEF_pf_ContainerList_tags_3[0]) - 1, /* 1 */ - asn_DEF_pf_ContainerList_tags_3, /* Same as above */ - sizeof(asn_DEF_pf_ContainerList_tags_3) - /sizeof(asn_DEF_pf_ContainerList_tags_3[0]), /* 2 */ - { &asn_OER_type_pf_ContainerList_constr_3, &asn_PER_type_pf_ContainerList_constr_3, SEQUENCE_OF_constraint }, - asn_MBR_pf_ContainerList_3, - 1, /* Single element */ - &asn_SPC_pf_ContainerList_specs_3 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_OCUUP_PF_Container_1[] = { - { ATF_POINTER, 1, offsetof(struct OCUUP_PF_Container, gNB_CU_UP_Name), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GNB_CU_UP_Name, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "gNB-CU-UP-Name" - }, - { ATF_NOFLAGS, 0, offsetof(struct OCUUP_PF_Container, pf_ContainerList), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - 0, - &asn_DEF_pf_ContainerList_3, - 0, - { &asn_OER_memb_pf_ContainerList_constr_3, &asn_PER_memb_pf_ContainerList_constr_3, memb_pf_ContainerList_constraint_1 }, - 0, 0, /* No default value */ - "pf-ContainerList" - }, -}; -static const int asn_MAP_OCUUP_PF_Container_oms_1[] = { 0 }; -static const ber_tlv_tag_t asn_DEF_OCUUP_PF_Container_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_OCUUP_PF_Container_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* gNB-CU-UP-Name */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* pf-ContainerList */ -}; -asn_SEQUENCE_specifics_t asn_SPC_OCUUP_PF_Container_specs_1 = { - sizeof(struct OCUUP_PF_Container), - offsetof(struct OCUUP_PF_Container, _asn_ctx), - asn_MAP_OCUUP_PF_Container_tag2el_1, - 2, /* Count of tags in the map */ - asn_MAP_OCUUP_PF_Container_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 2, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_OCUUP_PF_Container = { - "OCUUP-PF-Container", - "OCUUP-PF-Container", - &asn_OP_SEQUENCE, - asn_DEF_OCUUP_PF_Container_tags_1, - sizeof(asn_DEF_OCUUP_PF_Container_tags_1) - /sizeof(asn_DEF_OCUUP_PF_Container_tags_1[0]), /* 1 */ - asn_DEF_OCUUP_PF_Container_tags_1, /* Same as above */ - sizeof(asn_DEF_OCUUP_PF_Container_tags_1) - /sizeof(asn_DEF_OCUUP_PF_Container_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_OCUUP_PF_Container_1, - 2, /* Elements count */ - &asn_SPC_OCUUP_PF_Container_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/OCUUP-PF-Container.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/OCUUP-PF-Container.h deleted file mode 100644 index 9f19985..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/OCUUP-PF-Container.h +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _OCUUP_PF_Container_H_ -#define _OCUUP_PF_Container_H_ - - -#include - -/* Including external dependencies */ -#include "GNB-CU-UP-Name.h" -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct PF_ContainerListItem; - -/* OCUUP-PF-Container */ -typedef struct OCUUP_PF_Container { - GNB_CU_UP_Name_t *gNB_CU_UP_Name; /* OPTIONAL */ - struct OCUUP_PF_Container__pf_ContainerList { - A_SEQUENCE_OF(struct PF_ContainerListItem) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } pf_ContainerList; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} OCUUP_PF_Container_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_OCUUP_PF_Container; -extern asn_SEQUENCE_specifics_t asn_SPC_OCUUP_PF_Container_specs_1; -extern asn_TYPE_member_t asn_MBR_OCUUP_PF_Container_1[2]; - -#ifdef __cplusplus -} -#endif - -/* Referred external types */ -#include "PF-ContainerListItem.h" - -#endif /* _OCUUP_PF_Container_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/ODU-PF-Container.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/ODU-PF-Container.c deleted file mode 100644 index a28d59a..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/ODU-PF-Container.c +++ /dev/null @@ -1,129 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "ODU-PF-Container.h" - -static int -memb_cellResourceReportList_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - /* Determine the number of elements */ - size = _A_CSEQUENCE_FROM_VOID(sptr)->count; - - if((size >= 1 && size <= 512)) { - /* Perform validation of the inner elements */ - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_oer_constraints_t asn_OER_type_cellResourceReportList_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..512)) */}; -static asn_per_constraints_t asn_PER_type_cellResourceReportList_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 9, 9, 1, 512 } /* (SIZE(1..512)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_cellResourceReportList_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..512)) */}; -static asn_per_constraints_t asn_PER_memb_cellResourceReportList_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 9, 9, 1, 512 } /* (SIZE(1..512)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_cellResourceReportList_2[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CellResourceReportListItem, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_cellResourceReportList_tags_2[] = { - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_cellResourceReportList_specs_2 = { - sizeof(struct ODU_PF_Container__cellResourceReportList), - offsetof(struct ODU_PF_Container__cellResourceReportList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_cellResourceReportList_2 = { - "cellResourceReportList", - "cellResourceReportList", - &asn_OP_SEQUENCE_OF, - asn_DEF_cellResourceReportList_tags_2, - sizeof(asn_DEF_cellResourceReportList_tags_2) - /sizeof(asn_DEF_cellResourceReportList_tags_2[0]) - 1, /* 1 */ - asn_DEF_cellResourceReportList_tags_2, /* Same as above */ - sizeof(asn_DEF_cellResourceReportList_tags_2) - /sizeof(asn_DEF_cellResourceReportList_tags_2[0]), /* 2 */ - { &asn_OER_type_cellResourceReportList_constr_2, &asn_PER_type_cellResourceReportList_constr_2, SEQUENCE_OF_constraint }, - asn_MBR_cellResourceReportList_2, - 1, /* Single element */ - &asn_SPC_cellResourceReportList_specs_2 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ODU_PF_Container_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct ODU_PF_Container, cellResourceReportList), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - 0, - &asn_DEF_cellResourceReportList_2, - 0, - { &asn_OER_memb_cellResourceReportList_constr_2, &asn_PER_memb_cellResourceReportList_constr_2, memb_cellResourceReportList_constraint_1 }, - 0, 0, /* No default value */ - "cellResourceReportList" - }, -}; -static const ber_tlv_tag_t asn_DEF_ODU_PF_Container_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ODU_PF_Container_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* cellResourceReportList */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ODU_PF_Container_specs_1 = { - sizeof(struct ODU_PF_Container), - offsetof(struct ODU_PF_Container, _asn_ctx), - asn_MAP_ODU_PF_Container_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ODU_PF_Container = { - "ODU-PF-Container", - "ODU-PF-Container", - &asn_OP_SEQUENCE, - asn_DEF_ODU_PF_Container_tags_1, - sizeof(asn_DEF_ODU_PF_Container_tags_1) - /sizeof(asn_DEF_ODU_PF_Container_tags_1[0]), /* 1 */ - asn_DEF_ODU_PF_Container_tags_1, /* Same as above */ - sizeof(asn_DEF_ODU_PF_Container_tags_1) - /sizeof(asn_DEF_ODU_PF_Container_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ODU_PF_Container_1, - 1, /* Elements count */ - &asn_SPC_ODU_PF_Container_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/ODU-PF-Container.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/ODU-PF-Container.h deleted file mode 100644 index 4da50a3..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/ODU-PF-Container.h +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _ODU_PF_Container_H_ -#define _ODU_PF_Container_H_ - - -#include - -/* Including external dependencies */ -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct CellResourceReportListItem; - -/* ODU-PF-Container */ -typedef struct ODU_PF_Container { - struct ODU_PF_Container__cellResourceReportList { - A_SEQUENCE_OF(struct CellResourceReportListItem) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } cellResourceReportList; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ODU_PF_Container_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ODU_PF_Container; -extern asn_SEQUENCE_specifics_t asn_SPC_ODU_PF_Container_specs_1; -extern asn_TYPE_member_t asn_MBR_ODU_PF_Container_1[1]; - -#ifdef __cplusplus -} -#endif - -/* Referred external types */ -#include "CellResourceReportListItem.h" - -#endif /* _ODU_PF_Container_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/OPEN_TYPE.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/OPEN_TYPE.c deleted file mode 100644 index a54e99c..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/OPEN_TYPE.c +++ /dev/null @@ -1,509 +0,0 @@ -/* - * Copyright (c) 2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include -#include -#include - -asn_TYPE_operation_t asn_OP_OPEN_TYPE = { - OPEN_TYPE_free, - OPEN_TYPE_print, - OPEN_TYPE_compare, - OPEN_TYPE_decode_ber, - OPEN_TYPE_encode_der, - OPEN_TYPE_decode_xer, - OPEN_TYPE_encode_xer, -#ifdef ASN_DISABLE_OER_SUPPORT - 0, 0, /* No OER support, use "-gen-OER" to enable */ -#else - OPEN_TYPE_decode_oer, - OPEN_TYPE_encode_oer, -#endif -#ifdef ASN_DISABLE_PER_SUPPORT - 0, 0, 0, 0, -#else - OPEN_TYPE_decode_uper, - OPEN_TYPE_encode_uper, - OPEN_TYPE_decode_aper, - OPEN_TYPE_encode_aper, -#endif - 0, /* Random fill is not supported for open type */ - 0 /* Use generic outmost tag fetcher */ -}; - -#undef ADVANCE -#define ADVANCE(num_bytes) \ - do { \ - size_t num = num_bytes; \ - ptr = ((const char *)ptr) + num; \ - size -= num; \ - consumed_myself += num; \ - } while(0) - -asn_dec_rval_t -OPEN_TYPE_ber_get(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void *sptr, - const asn_TYPE_member_t *elm, const void *ptr, size_t size) { - size_t consumed_myself = 0; - asn_type_selector_result_t selected; - void *memb_ptr; /* Pointer to the member */ - void **memb_ptr2; /* Pointer to that pointer */ - void *inner_value; - asn_dec_rval_t rv; - - if(!(elm->flags & ATF_OPEN_TYPE)) { - ASN__DECODE_FAILED; - } - - if(!elm->type_selector) { - ASN_DEBUG("Type selector is not defined for Open Type %s->%s->%s", - td->name, elm->name, elm->type->name); - ASN__DECODE_FAILED; - } - - selected = elm->type_selector(td, sptr); - if(!selected.presence_index) { - ASN__DECODE_FAILED; - } - - /* Fetch the pointer to this member */ - if(elm->flags & ATF_POINTER) { - memb_ptr2 = (void **)((char *)sptr + elm->memb_offset); - } else { - memb_ptr = (char *)sptr + elm->memb_offset; - memb_ptr2 = &memb_ptr; - } - if(*memb_ptr2 != NULL) { - /* Make sure we reset the structure first before encoding */ - if(CHOICE_variant_set_presence(elm->type, *memb_ptr2, 0) != 0) { - ASN__DECODE_FAILED; - } - } - - inner_value = - (char *)*memb_ptr2 - + elm->type->elements[selected.presence_index - 1].memb_offset; - - ASN_DEBUG("presence %d\n", selected.presence_index); - - rv = selected.type_descriptor->op->ber_decoder( - opt_codec_ctx, selected.type_descriptor, &inner_value, ptr, size, - elm->tag_mode); - ADVANCE(rv.consumed); - rv.consumed = 0; - switch(rv.code) { - case RC_OK: - if(CHOICE_variant_set_presence(elm->type, *memb_ptr2, - selected.presence_index) - == 0) { - rv.code = RC_OK; - rv.consumed = consumed_myself; - return rv; - } else { - /* Oh, now a full-blown failure failure */ - } - /* Fall through */ - case RC_FAIL: - rv.consumed = consumed_myself; - /* Fall through */ - case RC_WMORE: - break; - } - - if(*memb_ptr2) { - if(elm->flags & ATF_POINTER) { - ASN_STRUCT_FREE(*selected.type_descriptor, inner_value); - *memb_ptr2 = NULL; - } else { - ASN_STRUCT_RESET(*selected.type_descriptor, - inner_value); - } - } - return rv; -} - -asn_dec_rval_t -OPEN_TYPE_xer_get(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void *sptr, - const asn_TYPE_member_t *elm, const void *ptr, size_t size) { - size_t consumed_myself = 0; - asn_type_selector_result_t selected; - void *memb_ptr; /* Pointer to the member */ - void **memb_ptr2; /* Pointer to that pointer */ - void *inner_value; - asn_dec_rval_t rv; - - int xer_context = 0; - ssize_t ch_size; - pxer_chunk_type_e ch_type; - - if(!(elm->flags & ATF_OPEN_TYPE)) { - ASN__DECODE_FAILED; - } - - if(!elm->type_selector) { - ASN_DEBUG("Type selector is not defined for Open Type %s->%s->%s", - td->name, elm->name, elm->type->name); - ASN__DECODE_FAILED; - } - - selected = elm->type_selector(td, sptr); - if(!selected.presence_index) { - ASN__DECODE_FAILED; - } - - /* Fetch the pointer to this member */ - assert(elm->flags == ATF_OPEN_TYPE); - if(elm->flags & ATF_POINTER) { - memb_ptr2 = (void **)((char *)sptr + elm->memb_offset); - } else { - memb_ptr = (char *)sptr + elm->memb_offset; - memb_ptr2 = &memb_ptr; - } - if(*memb_ptr2 != NULL) { - /* Make sure we reset the structure first before encoding */ - if(CHOICE_variant_set_presence(elm->type, *memb_ptr2, 0) - != 0) { - ASN__DECODE_FAILED; - } - } - - /* - * Confirm wrapper. - */ - for(;;) { - ch_size = xer_next_token(&xer_context, ptr, size, &ch_type); - if(ch_size < 0) { - ASN__DECODE_FAILED; - } else { - switch(ch_type) { - case PXER_WMORE: - ASN__DECODE_STARVED; - case PXER_COMMENT: - case PXER_TEXT: - ADVANCE(ch_size); - continue; - case PXER_TAG: - break; - } - break; - } - } - - /* - * Wrapper value confirmed. - */ - switch(xer_check_tag(ptr, ch_size, elm->name)) { - case XCT_OPENING: - ADVANCE(ch_size); - break; - case XCT_BROKEN: - default: - ASN__DECODE_FAILED; - } - - inner_value = - (char *)*memb_ptr2 - + elm->type->elements[selected.presence_index - 1].memb_offset; - - rv = selected.type_descriptor->op->xer_decoder( - opt_codec_ctx, selected.type_descriptor, &inner_value, NULL, ptr, size); - ADVANCE(rv.consumed); - rv.consumed = 0; - switch(rv.code) { - case RC_OK: - if(CHOICE_variant_set_presence(elm->type, *memb_ptr2, - selected.presence_index) - == 0) { - break; - } else { - rv.code = RC_FAIL; - } - /* Fall through */ - case RC_FAIL: - /* Point to a best position where failure occurred */ - rv.consumed = consumed_myself; - /* Fall through */ - case RC_WMORE: - /* Wrt. rv.consumed==0: - * In case a genuine RC_WMORE, the whole Open Type decoding - * will have to be restarted. - */ - if(*memb_ptr2) { - if(elm->flags & ATF_POINTER) { - ASN_STRUCT_FREE(*selected.type_descriptor, inner_value); - *memb_ptr2 = NULL; - } else { - ASN_STRUCT_RESET(*selected.type_descriptor, - inner_value); - } - } - return rv; - } - - /* - * Finalize wrapper. - */ - for(;;) { - ch_size = xer_next_token(&xer_context, ptr, size, &ch_type); - if(ch_size < 0) { - ASN__DECODE_FAILED; - } else { - switch(ch_type) { - case PXER_WMORE: - ASN__DECODE_STARVED; - case PXER_COMMENT: - case PXER_TEXT: - ADVANCE(ch_size); - continue; - case PXER_TAG: - break; - } - break; - } - } - - /* - * Wrapper value confirmed. - */ - switch(xer_check_tag(ptr, ch_size, elm->name)) { - case XCT_CLOSING: - ADVANCE(ch_size); - break; - case XCT_BROKEN: - default: - ASN__DECODE_FAILED; - } - - rv.consumed += consumed_myself; - - return rv; -} - - -#ifndef ASN_DISABLE_PER_SUPPORT - -asn_dec_rval_t -OPEN_TYPE_uper_get(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void *sptr, - const asn_TYPE_member_t *elm, asn_per_data_t *pd) { - asn_type_selector_result_t selected; - void *memb_ptr; /* Pointer to the member */ - void **memb_ptr2; /* Pointer to that pointer */ - void *inner_value; - asn_dec_rval_t rv; - - if(!(elm->flags & ATF_OPEN_TYPE)) { - ASN__DECODE_FAILED; - } - - if(!elm->type_selector) { - ASN_DEBUG("Type selector is not defined for Open Type %s->%s->%s", - td->name, elm->name, elm->type->name); - ASN__DECODE_FAILED; - } - - selected = elm->type_selector(td, sptr); - if(!selected.presence_index) { - ASN__DECODE_FAILED; - } - - /* Fetch the pointer to this member */ - assert(elm->flags == ATF_OPEN_TYPE); - if(elm->flags & ATF_POINTER) { - memb_ptr2 = (void **)((char *)sptr + elm->memb_offset); - } else { - memb_ptr = (char *)sptr + elm->memb_offset; - memb_ptr2 = &memb_ptr; - } - if(*memb_ptr2 != NULL) { - /* Make sure we reset the structure first before encoding */ - if(CHOICE_variant_set_presence(elm->type, *memb_ptr2, 0) - != 0) { - ASN__DECODE_FAILED; - } - } - - inner_value = - (char *)*memb_ptr2 - + elm->type->elements[selected.presence_index - 1].memb_offset; - - rv = uper_open_type_get(opt_codec_ctx, selected.type_descriptor, NULL, - &inner_value, pd); - switch(rv.code) { - case RC_OK: - if(CHOICE_variant_set_presence(elm->type, *memb_ptr2, - selected.presence_index) - == 0) { - break; - } else { - rv.code = RC_FAIL; - } - /* Fall through */ - case RC_WMORE: - case RC_FAIL: - if(*memb_ptr2) { - if(elm->flags & ATF_POINTER) { - ASN_STRUCT_FREE(*selected.type_descriptor, inner_value); - *memb_ptr2 = NULL; - } else { - ASN_STRUCT_RESET(*selected.type_descriptor, - inner_value); - } - } - } - return rv; -} - -asn_enc_rval_t -OPEN_TYPE_encode_uper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_per_outp_t *po) { - const void *memb_ptr; /* Pointer to the member */ - asn_TYPE_member_t *elm; /* CHOICE's element */ - asn_enc_rval_t er = {0,0,0}; - unsigned present; - - (void)constraints; - - present = CHOICE_variant_get_presence(td, sptr); - if(present == 0 || present > td->elements_count) { - ASN__ENCODE_FAILED; - } else { - present--; - } - - ASN_DEBUG("Encoding %s OPEN TYPE element %d", td->name, present); - - elm = &td->elements[present]; - if(elm->flags & ATF_POINTER) { - /* Member is a pointer to another structure */ - memb_ptr = - *(const void *const *)((const char *)sptr + elm->memb_offset); - if(!memb_ptr) ASN__ENCODE_FAILED; - } else { - memb_ptr = (const char *)sptr + elm->memb_offset; - } - - if(uper_open_type_put(elm->type, NULL, memb_ptr, po) < 0) { - ASN__ENCODE_FAILED; - } - - er.encoded = 0; - ASN__ENCODED_OK(er); -} - -asn_dec_rval_t -OPEN_TYPE_aper_get(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void *sptr, - const asn_TYPE_member_t *elm, asn_per_data_t *pd) { - asn_type_selector_result_t selected; - void *memb_ptr; /* Pointer to the member */ - void **memb_ptr2; /* Pointer to that pointer */ - void *inner_value; - asn_dec_rval_t rv; - - if(!(elm->flags & ATF_OPEN_TYPE)) { - ASN__DECODE_FAILED; - } - - if(!elm->type_selector) { - ASN_DEBUG("Type selector is not defined for Open Type %s->%s->%s", - td->name, elm->name, elm->type->name); - ASN__DECODE_FAILED; - } - - selected = elm->type_selector(td, sptr); - if(!selected.presence_index) { - ASN__DECODE_FAILED; - } - - /* Fetch the pointer to this member */ - assert(elm->flags == ATF_OPEN_TYPE); - if(elm->flags & ATF_POINTER) { - memb_ptr2 = (void **)((char *)sptr + elm->memb_offset); - } else { - memb_ptr = (char *)sptr + elm->memb_offset; - memb_ptr2 = &memb_ptr; - } - if(*memb_ptr2 != NULL) { - /* Make sure we reset the structure first before encoding */ - if(CHOICE_variant_set_presence(elm->type, *memb_ptr2, 0) - != 0) { - ASN__DECODE_FAILED; - } - } - - inner_value = - (char *)*memb_ptr2 - + elm->type->elements[selected.presence_index - 1].memb_offset; - - rv = aper_open_type_get(opt_codec_ctx, selected.type_descriptor, NULL, - &inner_value, pd); - switch(rv.code) { - case RC_OK: - if(CHOICE_variant_set_presence(elm->type, *memb_ptr2, - selected.presence_index) - == 0) { - break; - } else { - rv.code = RC_FAIL; - } - /* Fall through */ - case RC_WMORE: - case RC_FAIL: - if(*memb_ptr2) { - if(elm->flags & ATF_POINTER) { - ASN_STRUCT_FREE(*selected.type_descriptor, inner_value); - *memb_ptr2 = NULL; - } else { - ASN_STRUCT_RESET(*selected.type_descriptor, - inner_value); - } - } - } - return rv; -} - -asn_enc_rval_t -OPEN_TYPE_encode_aper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_per_outp_t *po) { - const void *memb_ptr; /* Pointer to the member */ - asn_TYPE_member_t *elm; /* CHOICE's element */ - asn_enc_rval_t er = {0,0,0}; - unsigned present; - - (void)constraints; - - present = CHOICE_variant_get_presence(td, sptr); - if(present == 0 || present > td->elements_count) { - ASN__ENCODE_FAILED; - } else { - present--; - } - - ASN_DEBUG("Encoding %s OPEN TYPE element %d", td->name, present); - - elm = &td->elements[present]; - if(elm->flags & ATF_POINTER) { - /* Member is a pointer to another structure */ - memb_ptr = - *(const void *const *)((const char *)sptr + elm->memb_offset); - if(!memb_ptr) ASN__ENCODE_FAILED; - } else { - memb_ptr = (const char *)sptr + elm->memb_offset; - } - - if(aper_open_type_put(elm->type, NULL, memb_ptr, po) < 0) { - ASN__ENCODE_FAILED; - } - - er.encoded = 0; - ASN__ENCODED_OK(er); -} - -#endif /* ASN_DISABLE_PER_SUPPORT */ diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/OPEN_TYPE.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/OPEN_TYPE.h deleted file mode 100644 index b0d023c..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/OPEN_TYPE.h +++ /dev/null @@ -1,77 +0,0 @@ -/*- - * Copyright (c) 2017-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef ASN_OPEN_TYPE_H -#define ASN_OPEN_TYPE_H - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -#define OPEN_TYPE_free CHOICE_free -#define OPEN_TYPE_print CHOICE_print -#define OPEN_TYPE_compare CHOICE_compare -#define OPEN_TYPE_constraint CHOICE_constraint -#define OPEN_TYPE_decode_ber NULL -#define OPEN_TYPE_encode_der CHOICE_encode_der -#define OPEN_TYPE_decode_xer NULL -#define OPEN_TYPE_encode_xer CHOICE_encode_xer -#define OPEN_TYPE_decode_oer NULL -#define OPEN_TYPE_encode_oer CHOICE_encode_oer -#define OPEN_TYPE_decode_uper NULL -#define OPEN_TYPE_decode_aper NULL - -extern asn_TYPE_operation_t asn_OP_OPEN_TYPE; - -/* - * Decode an Open Type which is potentially constraiend - * by the other members of the parent structure. - */ -asn_dec_rval_t OPEN_TYPE_ber_get(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *parent_type, - void *parent_structure, - const asn_TYPE_member_t *element, - const void *ptr, size_t size); - -asn_dec_rval_t OPEN_TYPE_xer_get(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *parent_type, - void *parent_structure, - const asn_TYPE_member_t *element, - const void *ptr, size_t size); - -asn_dec_rval_t OPEN_TYPE_oer_get(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *parent_type, - void *parent_structure, - asn_TYPE_member_t *element, const void *ptr, - size_t size); - -asn_dec_rval_t OPEN_TYPE_uper_get(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *parent_type, - void *parent_structure, - const asn_TYPE_member_t *element, - asn_per_data_t *pd); - -asn_dec_rval_t OPEN_TYPE_aper_get(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *parent_type, - void *parent_structure, - const asn_TYPE_member_t *element, - asn_per_data_t *pd); - -asn_enc_rval_t OPEN_TYPE_encode_uper( - const asn_TYPE_descriptor_t *type_descriptor, - const asn_per_constraints_t *constraints, const void *struct_ptr, - asn_per_outp_t *per_output); - -asn_enc_rval_t OPEN_TYPE_encode_aper( - const asn_TYPE_descriptor_t *type_descriptor, - const asn_per_constraints_t *constraints, const void *struct_ptr, - asn_per_outp_t *per_output); - -#ifdef __cplusplus -} -#endif - -#endif /* ASN_OPEN_TYPE_H */ diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/OPEN_TYPE_oer.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/OPEN_TYPE_oer.c deleted file mode 100644 index dd2f5c6..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/OPEN_TYPE_oer.c +++ /dev/null @@ -1,92 +0,0 @@ -/* - * Copyright (c) 2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include -#include - -asn_dec_rval_t -OPEN_TYPE_oer_get(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void *sptr, - asn_TYPE_member_t *elm, const void *ptr, size_t size) { - asn_type_selector_result_t selected; - void *memb_ptr; /* Pointer to the member */ - void **memb_ptr2; /* Pointer to that pointer */ - void *inner_value; - asn_dec_rval_t rv; - size_t ot_ret; - - - if(!(elm->flags & ATF_OPEN_TYPE)) { - ASN__DECODE_FAILED; - } - - if(!elm->type_selector) { - ASN_DEBUG("Type selector is not defined for Open Type %s->%s->%s", - td->name, elm->name, elm->type->name); - ASN__DECODE_FAILED; - } - - selected = elm->type_selector(td, sptr); - if(!selected.presence_index) { - ASN__DECODE_FAILED; - } - - /* Fetch the pointer to this member */ - if(elm->flags & ATF_POINTER) { - memb_ptr2 = (void **)((char *)sptr + elm->memb_offset); - } else { - memb_ptr = (char *)sptr + elm->memb_offset; - memb_ptr2 = &memb_ptr; - } - if(*memb_ptr2 != NULL) { - /* Make sure we reset the structure first before encoding */ - if(CHOICE_variant_set_presence(elm->type, *memb_ptr2, 0) != 0) { - ASN__DECODE_FAILED; - } - } - - inner_value = - (char *)*memb_ptr2 - + elm->type->elements[selected.presence_index - 1].memb_offset; - - ot_ret = oer_open_type_get(opt_codec_ctx, selected.type_descriptor, NULL, - &inner_value, ptr, size); - switch(ot_ret) { - default: - if(CHOICE_variant_set_presence(elm->type, *memb_ptr2, - selected.presence_index) - == 0) { - rv.code = RC_OK; - rv.consumed = ot_ret; - return rv; - } else { - /* Oh, now a full-blown failure failure */ - } - /* Fall through */ - case -1: - rv.code = RC_FAIL; - rv.consumed = ot_ret; - break; - case 0: - rv.code = RC_WMORE; - rv.consumed = 0; - break; - } - - if(*memb_ptr2) { - const asn_CHOICE_specifics_t *specs = - selected.type_descriptor->specifics; - if(elm->flags & ATF_POINTER) { - ASN_STRUCT_FREE(*selected.type_descriptor, inner_value); - *memb_ptr2 = NULL; - } else { - ASN_STRUCT_FREE_CONTENTS_ONLY(*selected.type_descriptor, - inner_value); - memset(*memb_ptr2, 0, specs->struct_size); - } - } - return rv; -} diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/PF-Container.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/PF-Container.c deleted file mode 100644 index ce46255..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/PF-Container.c +++ /dev/null @@ -1,75 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "PF-Container.h" - -static asn_oer_constraints_t asn_OER_type_PF_Container_constr_1 CC_NOTUSED = { - { 0, 0 }, - -1}; -asn_per_constraints_t asn_PER_type_PF_Container_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 2 } /* (0..2,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_PF_Container_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct PF_Container, choice.oDU), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ODU_PF_Container, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "oDU" - }, - { ATF_NOFLAGS, 0, offsetof(struct PF_Container, choice.oCU_CP), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_OCUCP_PF_Container, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "oCU-CP" - }, - { ATF_NOFLAGS, 0, offsetof(struct PF_Container, choice.oCU_UP), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_OCUUP_PF_Container, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "oCU-UP" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_PF_Container_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* oDU */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* oCU-CP */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* oCU-UP */ -}; -asn_CHOICE_specifics_t asn_SPC_PF_Container_specs_1 = { - sizeof(struct PF_Container), - offsetof(struct PF_Container, _asn_ctx), - offsetof(struct PF_Container, present), - sizeof(((struct PF_Container *)0)->present), - asn_MAP_PF_Container_tag2el_1, - 3, /* Count of tags in the map */ - 0, 0, - 3 /* Extensions start */ -}; -asn_TYPE_descriptor_t asn_DEF_PF_Container = { - "PF-Container", - "PF-Container", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { &asn_OER_type_PF_Container_constr_1, &asn_PER_type_PF_Container_constr_1, CHOICE_constraint }, - asn_MBR_PF_Container_1, - 3, /* Elements count */ - &asn_SPC_PF_Container_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/PF-Container.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/PF-Container.h deleted file mode 100644 index 853642a..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/PF-Container.h +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _PF_Container_H_ -#define _PF_Container_H_ - - -#include - -/* Including external dependencies */ -#include "ODU-PF-Container.h" -#include "OCUCP-PF-Container.h" -#include "OCUUP-PF-Container.h" -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum PF_Container_PR { - PF_Container_PR_NOTHING, /* No components present */ - PF_Container_PR_oDU, - PF_Container_PR_oCU_CP, - PF_Container_PR_oCU_UP - /* Extensions may appear below */ - -} PF_Container_PR; - -/* PF-Container */ -typedef struct PF_Container { - PF_Container_PR present; - union PF_Container_u { - ODU_PF_Container_t oDU; - OCUCP_PF_Container_t oCU_CP; - OCUUP_PF_Container_t oCU_UP; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} PF_Container_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_PF_Container; -extern asn_CHOICE_specifics_t asn_SPC_PF_Container_specs_1; -extern asn_TYPE_member_t asn_MBR_PF_Container_1[3]; -extern asn_per_constraints_t asn_PER_type_PF_Container_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _PF_Container_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/PF-ContainerListItem.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/PF-ContainerListItem.c deleted file mode 100644 index e3aad2c..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/PF-ContainerListItem.c +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "PF-ContainerListItem.h" - -asn_TYPE_member_t asn_MBR_PF_ContainerListItem_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct PF_ContainerListItem, interface_type), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NI_Type, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "interface-type" - }, - { ATF_NOFLAGS, 0, offsetof(struct PF_ContainerListItem, o_CU_UP_PM_Container), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_CUUPMeasurement_Container, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "o-CU-UP-PM-Container" - }, -}; -static const ber_tlv_tag_t asn_DEF_PF_ContainerListItem_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_PF_ContainerListItem_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* interface-type */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* o-CU-UP-PM-Container */ -}; -asn_SEQUENCE_specifics_t asn_SPC_PF_ContainerListItem_specs_1 = { - sizeof(struct PF_ContainerListItem), - offsetof(struct PF_ContainerListItem, _asn_ctx), - asn_MAP_PF_ContainerListItem_tag2el_1, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 2, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_PF_ContainerListItem = { - "PF-ContainerListItem", - "PF-ContainerListItem", - &asn_OP_SEQUENCE, - asn_DEF_PF_ContainerListItem_tags_1, - sizeof(asn_DEF_PF_ContainerListItem_tags_1) - /sizeof(asn_DEF_PF_ContainerListItem_tags_1[0]), /* 1 */ - asn_DEF_PF_ContainerListItem_tags_1, /* Same as above */ - sizeof(asn_DEF_PF_ContainerListItem_tags_1) - /sizeof(asn_DEF_PF_ContainerListItem_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_PF_ContainerListItem_1, - 2, /* Elements count */ - &asn_SPC_PF_ContainerListItem_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/PF-ContainerListItem.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/PF-ContainerListItem.h deleted file mode 100644 index bc4495e..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/PF-ContainerListItem.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _PF_ContainerListItem_H_ -#define _PF_ContainerListItem_H_ - - -#include - -/* Including external dependencies */ -#include "NI-Type.h" -#include "CUUPMeasurement-Container.h" -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* PF-ContainerListItem */ -typedef struct PF_ContainerListItem { - NI_Type_t interface_type; - CUUPMeasurement_Container_t o_CU_UP_PM_Container; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} PF_ContainerListItem_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_PF_ContainerListItem; -extern asn_SEQUENCE_specifics_t asn_SPC_PF_ContainerListItem_specs_1; -extern asn_TYPE_member_t asn_MBR_PF_ContainerListItem_1[2]; - -#ifdef __cplusplus -} -#endif - -#endif /* _PF_ContainerListItem_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/PLMN-Identity.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/PLMN-Identity.c deleted file mode 100644 index e3754f8..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/PLMN-Identity.c +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "PLMN-Identity.h" - -int -PLMN_Identity_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - size = st->size; - - if((size == 3)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using OCTET_STRING, - * so here we adjust the DEF accordingly. - */ -static asn_oer_constraints_t asn_OER_type_PLMN_Identity_constr_1 CC_NOTUSED = { - { 0, 0 }, - 3 /* (SIZE(3..3)) */}; -asn_per_constraints_t asn_PER_type_PLMN_Identity_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 0, 0, 3, 3 } /* (SIZE(3..3)) */, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_PLMN_Identity_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_PLMN_Identity = { - "PLMN-Identity", - "PLMN-Identity", - &asn_OP_OCTET_STRING, - asn_DEF_PLMN_Identity_tags_1, - sizeof(asn_DEF_PLMN_Identity_tags_1) - /sizeof(asn_DEF_PLMN_Identity_tags_1[0]), /* 1 */ - asn_DEF_PLMN_Identity_tags_1, /* Same as above */ - sizeof(asn_DEF_PLMN_Identity_tags_1) - /sizeof(asn_DEF_PLMN_Identity_tags_1[0]), /* 1 */ - { &asn_OER_type_PLMN_Identity_constr_1, &asn_PER_type_PLMN_Identity_constr_1, PLMN_Identity_constraint }, - 0, 0, /* No members */ - &asn_SPC_OCTET_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/PLMN-Identity.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/PLMN-Identity.h deleted file mode 100644 index 6835400..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/PLMN-Identity.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _PLMN_Identity_H_ -#define _PLMN_Identity_H_ - - -#include - -/* Including external dependencies */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* PLMN-Identity */ -typedef OCTET_STRING_t PLMN_Identity_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_PLMN_Identity_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_PLMN_Identity; -asn_struct_free_f PLMN_Identity_free; -asn_struct_print_f PLMN_Identity_print; -asn_constr_check_f PLMN_Identity_constraint; -ber_type_decoder_f PLMN_Identity_decode_ber; -der_type_encoder_f PLMN_Identity_encode_der; -xer_type_decoder_f PLMN_Identity_decode_xer; -xer_type_encoder_f PLMN_Identity_encode_xer; -oer_type_decoder_f PLMN_Identity_decode_oer; -oer_type_encoder_f PLMN_Identity_encode_oer; -per_type_decoder_f PLMN_Identity_decode_uper; -per_type_encoder_f PLMN_Identity_encode_uper; -per_type_decoder_f PLMN_Identity_decode_aper; -per_type_encoder_f PLMN_Identity_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _PLMN_Identity_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/PM-Containers-List.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/PM-Containers-List.c deleted file mode 100644 index 326ec75..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/PM-Containers-List.c +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "PM-Containers-List.h" - -asn_TYPE_member_t asn_MBR_PM_Containers_List_1[] = { - { ATF_POINTER, 2, offsetof(struct PM_Containers_List, performanceContainer), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_PF_Container, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "performanceContainer" - }, - { ATF_POINTER, 1, offsetof(struct PM_Containers_List, theRANContainer), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RAN_Container, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "theRANContainer" - }, -}; -static const int asn_MAP_PM_Containers_List_oms_1[] = { 0, 1 }; -static const ber_tlv_tag_t asn_DEF_PM_Containers_List_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_PM_Containers_List_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* performanceContainer */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* theRANContainer */ -}; -asn_SEQUENCE_specifics_t asn_SPC_PM_Containers_List_specs_1 = { - sizeof(struct PM_Containers_List), - offsetof(struct PM_Containers_List, _asn_ctx), - asn_MAP_PM_Containers_List_tag2el_1, - 2, /* Count of tags in the map */ - asn_MAP_PM_Containers_List_oms_1, /* Optional members */ - 2, 0, /* Root/Additions */ - 2, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_PM_Containers_List = { - "PM-Containers-List", - "PM-Containers-List", - &asn_OP_SEQUENCE, - asn_DEF_PM_Containers_List_tags_1, - sizeof(asn_DEF_PM_Containers_List_tags_1) - /sizeof(asn_DEF_PM_Containers_List_tags_1[0]), /* 1 */ - asn_DEF_PM_Containers_List_tags_1, /* Same as above */ - sizeof(asn_DEF_PM_Containers_List_tags_1) - /sizeof(asn_DEF_PM_Containers_List_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_PM_Containers_List_1, - 2, /* Elements count */ - &asn_SPC_PM_Containers_List_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/PM-Containers-List.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/PM-Containers-List.h deleted file mode 100644 index 0a99c3b..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/PM-Containers-List.h +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _PM_Containers_List_H_ -#define _PM_Containers_List_H_ - - -#include - -/* Including external dependencies */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct PF_Container; -struct RAN_Container; - -/* PM-Containers-List */ -typedef struct PM_Containers_List { - struct PF_Container *performanceContainer; /* OPTIONAL */ - struct RAN_Container *theRANContainer; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} PM_Containers_List_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_PM_Containers_List; -extern asn_SEQUENCE_specifics_t asn_SPC_PM_Containers_List_specs_1; -extern asn_TYPE_member_t asn_MBR_PM_Containers_List_1[2]; - -#ifdef __cplusplus -} -#endif - -/* Referred external types */ -#include "PF-Container.h" -#include "RAN-Container.h" - -#endif /* _PM_Containers_List_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/PerQCIReportListItem.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/PerQCIReportListItem.c deleted file mode 100644 index 1c57dfd..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/PerQCIReportListItem.c +++ /dev/null @@ -1,171 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "PerQCIReportListItem.h" - -static int -memb_qci_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 255)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_dl_PRBUsage_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 100)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_ul_PRBUsage_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 100)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_oer_constraints_t asn_OER_memb_qci_constr_2 CC_NOTUSED = { - { 1, 1 } /* (0..255) */, - -1}; -static asn_per_constraints_t asn_PER_memb_qci_constr_2 CC_NOTUSED = { - { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_dl_PRBUsage_constr_3 CC_NOTUSED = { - { 1, 1 } /* (0..100) */, - -1}; -static asn_per_constraints_t asn_PER_memb_dl_PRBUsage_constr_3 CC_NOTUSED = { - { APC_CONSTRAINED, 7, 7, 0, 100 } /* (0..100) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_ul_PRBUsage_constr_4 CC_NOTUSED = { - { 1, 1 } /* (0..100) */, - -1}; -static asn_per_constraints_t asn_PER_memb_ul_PRBUsage_constr_4 CC_NOTUSED = { - { APC_CONSTRAINED, 7, 7, 0, 100 } /* (0..100) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_PerQCIReportListItem_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct PerQCIReportListItem, qci), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_qci_constr_2, &asn_PER_memb_qci_constr_2, memb_qci_constraint_1 }, - 0, 0, /* No default value */ - "qci" - }, - { ATF_POINTER, 2, offsetof(struct PerQCIReportListItem, dl_PRBUsage), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_dl_PRBUsage_constr_3, &asn_PER_memb_dl_PRBUsage_constr_3, memb_dl_PRBUsage_constraint_1 }, - 0, 0, /* No default value */ - "dl-PRBUsage" - }, - { ATF_POINTER, 1, offsetof(struct PerQCIReportListItem, ul_PRBUsage), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_ul_PRBUsage_constr_4, &asn_PER_memb_ul_PRBUsage_constr_4, memb_ul_PRBUsage_constraint_1 }, - 0, 0, /* No default value */ - "ul-PRBUsage" - }, -}; -static const int asn_MAP_PerQCIReportListItem_oms_1[] = { 1, 2 }; -static const ber_tlv_tag_t asn_DEF_PerQCIReportListItem_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_PerQCIReportListItem_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* qci */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* dl-PRBUsage */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* ul-PRBUsage */ -}; -asn_SEQUENCE_specifics_t asn_SPC_PerQCIReportListItem_specs_1 = { - sizeof(struct PerQCIReportListItem), - offsetof(struct PerQCIReportListItem, _asn_ctx), - asn_MAP_PerQCIReportListItem_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_PerQCIReportListItem_oms_1, /* Optional members */ - 2, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_PerQCIReportListItem = { - "PerQCIReportListItem", - "PerQCIReportListItem", - &asn_OP_SEQUENCE, - asn_DEF_PerQCIReportListItem_tags_1, - sizeof(asn_DEF_PerQCIReportListItem_tags_1) - /sizeof(asn_DEF_PerQCIReportListItem_tags_1[0]), /* 1 */ - asn_DEF_PerQCIReportListItem_tags_1, /* Same as above */ - sizeof(asn_DEF_PerQCIReportListItem_tags_1) - /sizeof(asn_DEF_PerQCIReportListItem_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_PerQCIReportListItem_1, - 3, /* Elements count */ - &asn_SPC_PerQCIReportListItem_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/PerQCIReportListItem.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/PerQCIReportListItem.h deleted file mode 100644 index 32508ea..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/PerQCIReportListItem.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _PerQCIReportListItem_H_ -#define _PerQCIReportListItem_H_ - - -#include - -/* Including external dependencies */ -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* PerQCIReportListItem */ -typedef struct PerQCIReportListItem { - long qci; - long *dl_PRBUsage; /* OPTIONAL */ - long *ul_PRBUsage; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} PerQCIReportListItem_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_PerQCIReportListItem; -extern asn_SEQUENCE_specifics_t asn_SPC_PerQCIReportListItem_specs_1; -extern asn_TYPE_member_t asn_MBR_PerQCIReportListItem_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _PerQCIReportListItem_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/PerQCIReportListItemFormat.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/PerQCIReportListItemFormat.c deleted file mode 100644 index 239cbd8..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/PerQCIReportListItemFormat.c +++ /dev/null @@ -1,183 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "PerQCIReportListItemFormat.h" - -static int -memb_qci_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 255)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_pDCPBytesDL_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const INTEGER_t *st = (const INTEGER_t *)sptr; - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if(asn_INTEGER2long(st, &value)) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value too large (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if((value >= 0 && value <= 10000000000)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_pDCPBytesUL_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const INTEGER_t *st = (const INTEGER_t *)sptr; - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if(asn_INTEGER2long(st, &value)) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value too large (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - if((value >= 0 && value <= 10000000000)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_oer_constraints_t asn_OER_memb_qci_constr_2 CC_NOTUSED = { - { 1, 1 } /* (0..255) */, - -1}; -static asn_per_constraints_t asn_PER_memb_qci_constr_2 CC_NOTUSED = { - { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_pDCPBytesDL_constr_3 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_memb_pDCPBytesDL_constr_3 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 34, -1, 0, 10000000000 } /* (0..10000000000,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_pDCPBytesUL_constr_4 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_memb_pDCPBytesUL_constr_4 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 34, -1, 0, 10000000000 } /* (0..10000000000,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_PerQCIReportListItemFormat_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct PerQCIReportListItemFormat, qci), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_qci_constr_2, &asn_PER_memb_qci_constr_2, memb_qci_constraint_1 }, - 0, 0, /* No default value */ - "qci" - }, - { ATF_POINTER, 2, offsetof(struct PerQCIReportListItemFormat, pDCPBytesDL), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_INTEGER, - 0, - { &asn_OER_memb_pDCPBytesDL_constr_3, &asn_PER_memb_pDCPBytesDL_constr_3, memb_pDCPBytesDL_constraint_1 }, - 0, 0, /* No default value */ - "pDCPBytesDL" - }, - { ATF_POINTER, 1, offsetof(struct PerQCIReportListItemFormat, pDCPBytesUL), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_INTEGER, - 0, - { &asn_OER_memb_pDCPBytesUL_constr_4, &asn_PER_memb_pDCPBytesUL_constr_4, memb_pDCPBytesUL_constraint_1 }, - 0, 0, /* No default value */ - "pDCPBytesUL" - }, -}; -static const int asn_MAP_PerQCIReportListItemFormat_oms_1[] = { 1, 2 }; -static const ber_tlv_tag_t asn_DEF_PerQCIReportListItemFormat_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_PerQCIReportListItemFormat_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* qci */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* pDCPBytesDL */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* pDCPBytesUL */ -}; -asn_SEQUENCE_specifics_t asn_SPC_PerQCIReportListItemFormat_specs_1 = { - sizeof(struct PerQCIReportListItemFormat), - offsetof(struct PerQCIReportListItemFormat, _asn_ctx), - asn_MAP_PerQCIReportListItemFormat_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_PerQCIReportListItemFormat_oms_1, /* Optional members */ - 2, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_PerQCIReportListItemFormat = { - "PerQCIReportListItemFormat", - "PerQCIReportListItemFormat", - &asn_OP_SEQUENCE, - asn_DEF_PerQCIReportListItemFormat_tags_1, - sizeof(asn_DEF_PerQCIReportListItemFormat_tags_1) - /sizeof(asn_DEF_PerQCIReportListItemFormat_tags_1[0]), /* 1 */ - asn_DEF_PerQCIReportListItemFormat_tags_1, /* Same as above */ - sizeof(asn_DEF_PerQCIReportListItemFormat_tags_1) - /sizeof(asn_DEF_PerQCIReportListItemFormat_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_PerQCIReportListItemFormat_1, - 3, /* Elements count */ - &asn_SPC_PerQCIReportListItemFormat_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/PerQCIReportListItemFormat.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/PerQCIReportListItemFormat.h deleted file mode 100644 index 7fb1ecf..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/PerQCIReportListItemFormat.h +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _PerQCIReportListItemFormat_H_ -#define _PerQCIReportListItemFormat_H_ - - -#include - -/* Including external dependencies */ -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* PerQCIReportListItemFormat */ -typedef struct PerQCIReportListItemFormat { - long qci; - INTEGER_t *pDCPBytesDL; /* OPTIONAL */ - INTEGER_t *pDCPBytesUL; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} PerQCIReportListItemFormat_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_PerQCIReportListItemFormat; -extern asn_SEQUENCE_specifics_t asn_SPC_PerQCIReportListItemFormat_specs_1; -extern asn_TYPE_member_t asn_MBR_PerQCIReportListItemFormat_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _PerQCIReportListItemFormat_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/PlmnID-List.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/PlmnID-List.c deleted file mode 100644 index 2126cf5..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/PlmnID-List.c +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "PlmnID-List.h" - -asn_TYPE_member_t asn_MBR_PlmnID_List_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct PlmnID_List, pLMN_Identity), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_PLMN_Identity, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "pLMN-Identity" - }, - { ATF_POINTER, 2, offsetof(struct PlmnID_List, cu_UP_PM_5GC), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_FGC_CUUP_PM_Format, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "cu-UP-PM-5GC" - }, - { ATF_POINTER, 1, offsetof(struct PlmnID_List, cu_UP_PM_EPC), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_EPC_CUUP_PM_Format, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "cu-UP-PM-EPC" - }, -}; -static const int asn_MAP_PlmnID_List_oms_1[] = { 1, 2 }; -static const ber_tlv_tag_t asn_DEF_PlmnID_List_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_PlmnID_List_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pLMN-Identity */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* cu-UP-PM-5GC */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* cu-UP-PM-EPC */ -}; -asn_SEQUENCE_specifics_t asn_SPC_PlmnID_List_specs_1 = { - sizeof(struct PlmnID_List), - offsetof(struct PlmnID_List, _asn_ctx), - asn_MAP_PlmnID_List_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_PlmnID_List_oms_1, /* Optional members */ - 2, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_PlmnID_List = { - "PlmnID-List", - "PlmnID-List", - &asn_OP_SEQUENCE, - asn_DEF_PlmnID_List_tags_1, - sizeof(asn_DEF_PlmnID_List_tags_1) - /sizeof(asn_DEF_PlmnID_List_tags_1[0]), /* 1 */ - asn_DEF_PlmnID_List_tags_1, /* Same as above */ - sizeof(asn_DEF_PlmnID_List_tags_1) - /sizeof(asn_DEF_PlmnID_List_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_PlmnID_List_1, - 3, /* Elements count */ - &asn_SPC_PlmnID_List_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/PlmnID-List.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/PlmnID-List.h deleted file mode 100644 index 79d1dd5..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/PlmnID-List.h +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _PlmnID_List_H_ -#define _PlmnID_List_H_ - - -#include - -/* Including external dependencies */ -#include "PLMN-Identity.h" -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct FGC_CUUP_PM_Format; -struct EPC_CUUP_PM_Format; - -/* PlmnID-List */ -typedef struct PlmnID_List { - PLMN_Identity_t pLMN_Identity; - struct FGC_CUUP_PM_Format *cu_UP_PM_5GC; /* OPTIONAL */ - struct EPC_CUUP_PM_Format *cu_UP_PM_EPC; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} PlmnID_List_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_PlmnID_List; -extern asn_SEQUENCE_specifics_t asn_SPC_PlmnID_List_specs_1; -extern asn_TYPE_member_t asn_MBR_PlmnID_List_1[3]; - -#ifdef __cplusplus -} -#endif - -/* Referred external types */ -#include "FGC-CUUP-PM-Format.h" -#include "EPC-CUUP-PM-Format.h" - -#endif /* _PlmnID_List_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/Presence.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/Presence.c deleted file mode 100644 index 4f55ae3..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/Presence.c +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-CommonDataTypes" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "Presence.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_Presence_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_Presence_value2enum_1[] = { - { 0, 8, "optional" }, - { 1, 11, "conditional" }, - { 2, 9, "mandatory" } -}; -static const unsigned int asn_MAP_Presence_enum2value_1[] = { - 1, /* conditional(1) */ - 2, /* mandatory(2) */ - 0 /* optional(0) */ -}; -const asn_INTEGER_specifics_t asn_SPC_Presence_specs_1 = { - asn_MAP_Presence_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_Presence_enum2value_1, /* N => "tag"; sorted by N */ - 3, /* Number of elements in the maps */ - 0, /* Enumeration is not extensible */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_Presence_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_Presence = { - "Presence", - "Presence", - &asn_OP_NativeEnumerated, - asn_DEF_Presence_tags_1, - sizeof(asn_DEF_Presence_tags_1) - /sizeof(asn_DEF_Presence_tags_1[0]), /* 1 */ - asn_DEF_Presence_tags_1, /* Same as above */ - sizeof(asn_DEF_Presence_tags_1) - /sizeof(asn_DEF_Presence_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_Presence_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_Presence_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/Presence.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/Presence.h deleted file mode 100644 index 8f93430..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/Presence.h +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-CommonDataTypes" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _Presence_H_ -#define _Presence_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum Presence { - Presence_optional = 0, - Presence_conditional = 1, - Presence_mandatory = 2 -} e_Presence; - -/* Presence */ -typedef long Presence_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_Presence_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_Presence; -extern const asn_INTEGER_specifics_t asn_SPC_Presence_specs_1; -asn_struct_free_f Presence_free; -asn_struct_print_f Presence_print; -asn_constr_check_f Presence_constraint; -ber_type_decoder_f Presence_decode_ber; -der_type_encoder_f Presence_encode_der; -xer_type_decoder_f Presence_decode_xer; -xer_type_encoder_f Presence_encode_xer; -per_type_decoder_f Presence_decode_uper; -per_type_encoder_f Presence_encode_uper; -per_type_decoder_f Presence_decode_aper; -per_type_encoder_f Presence_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _Presence_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/PrintableString.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/PrintableString.c deleted file mode 100644 index 8fc3939..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/PrintableString.c +++ /dev/null @@ -1,130 +0,0 @@ -/*- - * Copyright (c) 2003, 2004, 2006 Lev Walkin . - * All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include - -/* - * ASN.1:1984 (X.409) - */ -static const int _PrintableString_alphabet[256] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */ - 1, 0, 0, 0, 0, 0, 0, 2, 3, 4, 0, 5, 6, 7, 8, 9, /* . '() +,-./ */ -10,11,12,13,14,15,16,17,18,19,20, 0, 0,21, 0,22, /* 0123456789: = ? */ - 0,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37, /* ABCDEFGHIJKLMNO */ -38,39,40,41,42,43,44,45,46,47,48, 0, 0, 0, 0, 0, /* PQRSTUVWXYZ */ - 0,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63, /* abcdefghijklmno */ -64,65,66,67,68,69,70,71,72,73,74, 0, 0, 0, 0, 0, /* pqrstuvwxyz */ -}; -static const int _PrintableString_code2value[74] = { -32,39,40,41,43,44,45,46,47,48,49,50,51,52,53,54, -55,56,57,58,61,63,65,66,67,68,69,70,71,72,73,74, -75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90, -97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112, -113,114,115,116,117,118,119,120,121,122}; - -/* - * PrintableString basic type description. - */ -static const ber_tlv_tag_t asn_DEF_PrintableString_tags[] = { - (ASN_TAG_CLASS_UNIVERSAL | (19 << 2)), /* [UNIVERSAL 19] IMPLICIT ...*/ - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) /* ... OCTET STRING */ -}; -static int asn_DEF_PrintableString_v2c(unsigned int value) { - return _PrintableString_alphabet[value > 255 ? 0 : value] - 1; -} -static int asn_DEF_PrintableString_c2v(unsigned int code) { - if(code < 74) - return _PrintableString_code2value[code]; - return -1; -} -static asn_per_constraints_t asn_DEF_PrintableString_per_constraints = { - { APC_CONSTRAINED, 4, 4, 0x20, 0x39 }, /* Value */ - { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 }, /* Size */ - asn_DEF_PrintableString_v2c, - asn_DEF_PrintableString_c2v -}; -asn_TYPE_operation_t asn_OP_PrintableString = { - OCTET_STRING_free, - OCTET_STRING_print_utf8, /* ASCII subset */ - OCTET_STRING_compare, - OCTET_STRING_decode_ber, /* Implemented in terms of OCTET STRING */ - OCTET_STRING_encode_der, - OCTET_STRING_decode_xer_utf8, - OCTET_STRING_encode_xer_utf8, -#ifdef ASN_DISABLE_OER_SUPPORT - 0, - 0, -#else - OCTET_STRING_decode_oer, - OCTET_STRING_encode_oer, -#endif /* ASN_DISABLE_OER_SUPPORT */ -#ifdef ASN_DISABLE_PER_SUPPORT - 0, - 0, - 0, - 0, -#else - OCTET_STRING_decode_uper, - OCTET_STRING_encode_uper, - OCTET_STRING_decode_aper, - OCTET_STRING_encode_aper, -#endif /* ASN_DISABLE_PER_SUPPORT */ - OCTET_STRING_random_fill, - 0 /* Use generic outmost tag fetcher */ -}; -asn_TYPE_descriptor_t asn_DEF_PrintableString = { - "PrintableString", - "PrintableString", - &asn_OP_PrintableString, - asn_DEF_PrintableString_tags, - sizeof(asn_DEF_PrintableString_tags) - / sizeof(asn_DEF_PrintableString_tags[0]) - 1, - asn_DEF_PrintableString_tags, - sizeof(asn_DEF_PrintableString_tags) - / sizeof(asn_DEF_PrintableString_tags[0]), - { 0, &asn_DEF_PrintableString_per_constraints, PrintableString_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - - -int -PrintableString_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, - void *app_key) { - const PrintableString_t *st = (const PrintableString_t *)sptr; - - if(st && st->buf) { - uint8_t *buf = st->buf; - uint8_t *end = buf + st->size; - - /* - * Check the alphabet of the PrintableString. - * ASN.1:1984 (X.409) - */ - for(; buf < end; buf++) { - if(!_PrintableString_alphabet[*buf]) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value byte %ld (%d) " - "not in PrintableString alphabet " - "(%s:%d)", - td->name, - (long)((buf - st->buf) + 1), - *buf, - __FILE__, __LINE__); - return -1; - } - } - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - return 0; -} diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/PrintableString.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/PrintableString.h deleted file mode 100644 index 8c2b61a..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/PrintableString.h +++ /dev/null @@ -1,37 +0,0 @@ -/*- - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef _PrintableString_H_ -#define _PrintableString_H_ - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -typedef OCTET_STRING_t PrintableString_t; /* Implemented via OCTET STRING */ - -extern asn_TYPE_descriptor_t asn_DEF_PrintableString; -extern asn_TYPE_operation_t asn_OP_PrintableString; - -asn_constr_check_f PrintableString_constraint; - -#define PrintableString_free OCTET_STRING_free -#define PrintableString_print OCTET_STRING_print_utf8 -#define PrintableString_compare OCTET_STRING_compare -#define PrintableString_decode_ber OCTET_STRING_decode_ber -#define PrintableString_encode_der OCTET_STRING_encode_der -#define PrintableString_decode_xer OCTET_STRING_decode_xer_utf8 -#define PrintableString_encode_xer OCTET_STRING_encode_xer_utf8 -#define PrintableString_decode_uper OCTET_STRING_decode_uper -#define PrintableString_encode_uper OCTET_STRING_encode_uper -#define PrintableString_decode_aper OCTET_STRING_decode_aper -#define PrintableString_encode_aper OCTET_STRING_encode_aper - -#ifdef __cplusplus -} -#endif - -#endif /* _PrintableString_H_ */ diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/ProcedureCode.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/ProcedureCode.c deleted file mode 100644 index 0e488d4..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/ProcedureCode.c +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-CommonDataTypes" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "ProcedureCode.h" - -int -ProcedureCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 255)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using NativeInteger, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_ProcedureCode_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_ProcedureCode_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ProcedureCode = { - "ProcedureCode", - "ProcedureCode", - &asn_OP_NativeInteger, - asn_DEF_ProcedureCode_tags_1, - sizeof(asn_DEF_ProcedureCode_tags_1) - /sizeof(asn_DEF_ProcedureCode_tags_1[0]), /* 1 */ - asn_DEF_ProcedureCode_tags_1, /* Same as above */ - sizeof(asn_DEF_ProcedureCode_tags_1) - /sizeof(asn_DEF_ProcedureCode_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_ProcedureCode_constr_1, ProcedureCode_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/ProcedureCode.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/ProcedureCode.h deleted file mode 100644 index a2e8fe8..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/ProcedureCode.h +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-CommonDataTypes" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _ProcedureCode_H_ -#define _ProcedureCode_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeInteger.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* ProcedureCode */ -typedef long ProcedureCode_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_ProcedureCode_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_ProcedureCode; -asn_struct_free_f ProcedureCode_free; -asn_struct_print_f ProcedureCode_print; -asn_constr_check_f ProcedureCode_constraint; -ber_type_decoder_f ProcedureCode_decode_ber; -der_type_encoder_f ProcedureCode_encode_der; -xer_type_decoder_f ProcedureCode_decode_xer; -xer_type_encoder_f ProcedureCode_encode_xer; -per_type_decoder_f ProcedureCode_decode_uper; -per_type_encoder_f ProcedureCode_encode_uper; -per_type_decoder_f ProcedureCode_decode_aper; -per_type_encoder_f ProcedureCode_encode_aper; -#define ProcedureCode_id_E2setup ((ProcedureCode_t)1) -#define ProcedureCode_id_ErrorIndication ((ProcedureCode_t)2) -#define ProcedureCode_id_Reset ((ProcedureCode_t)3) -#define ProcedureCode_id_RICcontrol ((ProcedureCode_t)4) -#define ProcedureCode_id_RICindication ((ProcedureCode_t)5) -#define ProcedureCode_id_RICserviceQuery ((ProcedureCode_t)6) -#define ProcedureCode_id_RICserviceUpdate ((ProcedureCode_t)7) -#define ProcedureCode_id_RICsubscription ((ProcedureCode_t)8) -#define ProcedureCode_id_RICsubscriptionDelete ((ProcedureCode_t)9) - -#ifdef __cplusplus -} -#endif - -#endif /* _ProcedureCode_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/ProtocolIE-Container.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/ProtocolIE-Container.c deleted file mode 100644 index 4046387..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/ProtocolIE-Container.c +++ /dev/null @@ -1,810 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-Containers" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "ProtocolIE-Container.h" - -#include "ProtocolIE-Field.h" -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P0_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P1_constr_3 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P2_constr_5 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P3_constr_7 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P4_constr_9 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P5_constr_11 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P6_constr_13 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P7_constr_15 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P8_constr_17 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P9_constr_19 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P10_constr_21 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P11_constr_23 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P12_constr_25 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P13_constr_27 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P14_constr_29 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P15_constr_31 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P16_constr_33 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P17_constr_35 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P18_constr_37 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P19_constr_39 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P0_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICsubscriptionRequest_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1527P0_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P0_specs_1 = { - sizeof(struct ProtocolIE_Container_1527P0), - offsetof(struct ProtocolIE_Container_1527P0, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P0 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1527P0_tags_1, - sizeof(asn_DEF_ProtocolIE_Container_1527P0_tags_1) - /sizeof(asn_DEF_ProtocolIE_Container_1527P0_tags_1[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1527P0_tags_1, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1527P0_tags_1) - /sizeof(asn_DEF_ProtocolIE_Container_1527P0_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_1527P0_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1527P0_1, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1527P0_specs_1 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P1_3[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICsubscriptionResponse_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1527P1_tags_3[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P1_specs_3 = { - sizeof(struct ProtocolIE_Container_1527P1), - offsetof(struct ProtocolIE_Container_1527P1, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P1 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1527P1_tags_3, - sizeof(asn_DEF_ProtocolIE_Container_1527P1_tags_3) - /sizeof(asn_DEF_ProtocolIE_Container_1527P1_tags_3[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1527P1_tags_3, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1527P1_tags_3) - /sizeof(asn_DEF_ProtocolIE_Container_1527P1_tags_3[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_1527P1_constr_3, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1527P1_3, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1527P1_specs_3 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P2_5[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICsubscriptionFailure_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1527P2_tags_5[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P2_specs_5 = { - sizeof(struct ProtocolIE_Container_1527P2), - offsetof(struct ProtocolIE_Container_1527P2, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P2 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1527P2_tags_5, - sizeof(asn_DEF_ProtocolIE_Container_1527P2_tags_5) - /sizeof(asn_DEF_ProtocolIE_Container_1527P2_tags_5[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1527P2_tags_5, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1527P2_tags_5) - /sizeof(asn_DEF_ProtocolIE_Container_1527P2_tags_5[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_1527P2_constr_5, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1527P2_5, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1527P2_specs_5 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P3_7[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICsubscriptionDeleteRequest_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1527P3_tags_7[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P3_specs_7 = { - sizeof(struct ProtocolIE_Container_1527P3), - offsetof(struct ProtocolIE_Container_1527P3, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P3 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1527P3_tags_7, - sizeof(asn_DEF_ProtocolIE_Container_1527P3_tags_7) - /sizeof(asn_DEF_ProtocolIE_Container_1527P3_tags_7[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1527P3_tags_7, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1527P3_tags_7) - /sizeof(asn_DEF_ProtocolIE_Container_1527P3_tags_7[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_1527P3_constr_7, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1527P3_7, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1527P3_specs_7 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P4_9[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICsubscriptionDeleteResponse_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1527P4_tags_9[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P4_specs_9 = { - sizeof(struct ProtocolIE_Container_1527P4), - offsetof(struct ProtocolIE_Container_1527P4, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P4 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1527P4_tags_9, - sizeof(asn_DEF_ProtocolIE_Container_1527P4_tags_9) - /sizeof(asn_DEF_ProtocolIE_Container_1527P4_tags_9[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1527P4_tags_9, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1527P4_tags_9) - /sizeof(asn_DEF_ProtocolIE_Container_1527P4_tags_9[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_1527P4_constr_9, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1527P4_9, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1527P4_specs_9 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P5_11[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICsubscriptionDeleteFailure_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1527P5_tags_11[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P5_specs_11 = { - sizeof(struct ProtocolIE_Container_1527P5), - offsetof(struct ProtocolIE_Container_1527P5, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P5 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1527P5_tags_11, - sizeof(asn_DEF_ProtocolIE_Container_1527P5_tags_11) - /sizeof(asn_DEF_ProtocolIE_Container_1527P5_tags_11[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1527P5_tags_11, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1527P5_tags_11) - /sizeof(asn_DEF_ProtocolIE_Container_1527P5_tags_11[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_1527P5_constr_11, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1527P5_11, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1527P5_specs_11 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P6_13[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICindication_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1527P6_tags_13[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P6_specs_13 = { - sizeof(struct ProtocolIE_Container_1527P6), - offsetof(struct ProtocolIE_Container_1527P6, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P6 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1527P6_tags_13, - sizeof(asn_DEF_ProtocolIE_Container_1527P6_tags_13) - /sizeof(asn_DEF_ProtocolIE_Container_1527P6_tags_13[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1527P6_tags_13, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1527P6_tags_13) - /sizeof(asn_DEF_ProtocolIE_Container_1527P6_tags_13[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_1527P6_constr_13, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1527P6_13, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1527P6_specs_13 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P7_15[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICcontrolRequest_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1527P7_tags_15[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P7_specs_15 = { - sizeof(struct ProtocolIE_Container_1527P7), - offsetof(struct ProtocolIE_Container_1527P7, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P7 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1527P7_tags_15, - sizeof(asn_DEF_ProtocolIE_Container_1527P7_tags_15) - /sizeof(asn_DEF_ProtocolIE_Container_1527P7_tags_15[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1527P7_tags_15, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1527P7_tags_15) - /sizeof(asn_DEF_ProtocolIE_Container_1527P7_tags_15[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_1527P7_constr_15, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1527P7_15, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1527P7_specs_15 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P8_17[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICcontrolAcknowledge_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1527P8_tags_17[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P8_specs_17 = { - sizeof(struct ProtocolIE_Container_1527P8), - offsetof(struct ProtocolIE_Container_1527P8, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P8 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1527P8_tags_17, - sizeof(asn_DEF_ProtocolIE_Container_1527P8_tags_17) - /sizeof(asn_DEF_ProtocolIE_Container_1527P8_tags_17[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1527P8_tags_17, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1527P8_tags_17) - /sizeof(asn_DEF_ProtocolIE_Container_1527P8_tags_17[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_1527P8_constr_17, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1527P8_17, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1527P8_specs_17 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P9_19[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICcontrolFailure_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1527P9_tags_19[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P9_specs_19 = { - sizeof(struct ProtocolIE_Container_1527P9), - offsetof(struct ProtocolIE_Container_1527P9, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P9 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1527P9_tags_19, - sizeof(asn_DEF_ProtocolIE_Container_1527P9_tags_19) - /sizeof(asn_DEF_ProtocolIE_Container_1527P9_tags_19[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1527P9_tags_19, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1527P9_tags_19) - /sizeof(asn_DEF_ProtocolIE_Container_1527P9_tags_19[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_1527P9_constr_19, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1527P9_19, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1527P9_specs_19 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P10_21[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ErrorIndication_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1527P10_tags_21[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P10_specs_21 = { - sizeof(struct ProtocolIE_Container_1527P10), - offsetof(struct ProtocolIE_Container_1527P10, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P10 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1527P10_tags_21, - sizeof(asn_DEF_ProtocolIE_Container_1527P10_tags_21) - /sizeof(asn_DEF_ProtocolIE_Container_1527P10_tags_21[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1527P10_tags_21, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1527P10_tags_21) - /sizeof(asn_DEF_ProtocolIE_Container_1527P10_tags_21[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_1527P10_constr_21, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1527P10_21, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1527P10_specs_21 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P11_23[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E2setupRequestIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1527P11_tags_23[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P11_specs_23 = { - sizeof(struct ProtocolIE_Container_1527P11), - offsetof(struct ProtocolIE_Container_1527P11, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P11 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1527P11_tags_23, - sizeof(asn_DEF_ProtocolIE_Container_1527P11_tags_23) - /sizeof(asn_DEF_ProtocolIE_Container_1527P11_tags_23[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1527P11_tags_23, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1527P11_tags_23) - /sizeof(asn_DEF_ProtocolIE_Container_1527P11_tags_23[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_1527P11_constr_23, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1527P11_23, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1527P11_specs_23 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P12_25[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E2setupResponseIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1527P12_tags_25[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P12_specs_25 = { - sizeof(struct ProtocolIE_Container_1527P12), - offsetof(struct ProtocolIE_Container_1527P12, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P12 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1527P12_tags_25, - sizeof(asn_DEF_ProtocolIE_Container_1527P12_tags_25) - /sizeof(asn_DEF_ProtocolIE_Container_1527P12_tags_25[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1527P12_tags_25, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1527P12_tags_25) - /sizeof(asn_DEF_ProtocolIE_Container_1527P12_tags_25[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_1527P12_constr_25, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1527P12_25, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1527P12_specs_25 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P13_27[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E2setupFailureIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1527P13_tags_27[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P13_specs_27 = { - sizeof(struct ProtocolIE_Container_1527P13), - offsetof(struct ProtocolIE_Container_1527P13, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P13 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1527P13_tags_27, - sizeof(asn_DEF_ProtocolIE_Container_1527P13_tags_27) - /sizeof(asn_DEF_ProtocolIE_Container_1527P13_tags_27[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1527P13_tags_27, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1527P13_tags_27) - /sizeof(asn_DEF_ProtocolIE_Container_1527P13_tags_27[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_1527P13_constr_27, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1527P13_27, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1527P13_specs_27 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P14_29[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ResetRequestIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1527P14_tags_29[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P14_specs_29 = { - sizeof(struct ProtocolIE_Container_1527P14), - offsetof(struct ProtocolIE_Container_1527P14, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P14 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1527P14_tags_29, - sizeof(asn_DEF_ProtocolIE_Container_1527P14_tags_29) - /sizeof(asn_DEF_ProtocolIE_Container_1527P14_tags_29[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1527P14_tags_29, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1527P14_tags_29) - /sizeof(asn_DEF_ProtocolIE_Container_1527P14_tags_29[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_1527P14_constr_29, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1527P14_29, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1527P14_specs_29 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P15_31[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ResetResponseIEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1527P15_tags_31[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P15_specs_31 = { - sizeof(struct ProtocolIE_Container_1527P15), - offsetof(struct ProtocolIE_Container_1527P15, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P15 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1527P15_tags_31, - sizeof(asn_DEF_ProtocolIE_Container_1527P15_tags_31) - /sizeof(asn_DEF_ProtocolIE_Container_1527P15_tags_31[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1527P15_tags_31, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1527P15_tags_31) - /sizeof(asn_DEF_ProtocolIE_Container_1527P15_tags_31[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_1527P15_constr_31, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1527P15_31, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1527P15_specs_31 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P16_33[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICserviceUpdate_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1527P16_tags_33[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P16_specs_33 = { - sizeof(struct ProtocolIE_Container_1527P16), - offsetof(struct ProtocolIE_Container_1527P16, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P16 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1527P16_tags_33, - sizeof(asn_DEF_ProtocolIE_Container_1527P16_tags_33) - /sizeof(asn_DEF_ProtocolIE_Container_1527P16_tags_33[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1527P16_tags_33, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1527P16_tags_33) - /sizeof(asn_DEF_ProtocolIE_Container_1527P16_tags_33[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_1527P16_constr_33, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1527P16_33, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1527P16_specs_33 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P17_35[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICserviceUpdateAcknowledge_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1527P17_tags_35[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P17_specs_35 = { - sizeof(struct ProtocolIE_Container_1527P17), - offsetof(struct ProtocolIE_Container_1527P17, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P17 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1527P17_tags_35, - sizeof(asn_DEF_ProtocolIE_Container_1527P17_tags_35) - /sizeof(asn_DEF_ProtocolIE_Container_1527P17_tags_35[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1527P17_tags_35, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1527P17_tags_35) - /sizeof(asn_DEF_ProtocolIE_Container_1527P17_tags_35[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_1527P17_constr_35, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1527P17_35, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1527P17_specs_35 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P18_37[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICserviceUpdateFailure_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1527P18_tags_37[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P18_specs_37 = { - sizeof(struct ProtocolIE_Container_1527P18), - offsetof(struct ProtocolIE_Container_1527P18, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P18 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1527P18_tags_37, - sizeof(asn_DEF_ProtocolIE_Container_1527P18_tags_37) - /sizeof(asn_DEF_ProtocolIE_Container_1527P18_tags_37[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1527P18_tags_37, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1527P18_tags_37) - /sizeof(asn_DEF_ProtocolIE_Container_1527P18_tags_37[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_1527P18_constr_37, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1527P18_37, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1527P18_specs_37 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P19_39[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICserviceQuery_IEs, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1527P19_tags_39[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P19_specs_39 = { - sizeof(struct ProtocolIE_Container_1527P19), - offsetof(struct ProtocolIE_Container_1527P19, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P19 = { - "ProtocolIE-Container", - "ProtocolIE-Container", - &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1527P19_tags_39, - sizeof(asn_DEF_ProtocolIE_Container_1527P19_tags_39) - /sizeof(asn_DEF_ProtocolIE_Container_1527P19_tags_39[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1527P19_tags_39, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1527P19_tags_39) - /sizeof(asn_DEF_ProtocolIE_Container_1527P19_tags_39[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_1527P19_constr_39, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1527P19_39, - 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1527P19_specs_39 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/ProtocolIE-Container.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/ProtocolIE-Container.h deleted file mode 100644 index 5034a64..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/ProtocolIE-Container.h +++ /dev/null @@ -1,253 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-Containers" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _ProtocolIE_Container_H_ -#define _ProtocolIE_Container_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct RICsubscriptionRequest_IEs; -struct RICsubscriptionResponse_IEs; -struct RICsubscriptionFailure_IEs; -struct RICsubscriptionDeleteRequest_IEs; -struct RICsubscriptionDeleteResponse_IEs; -struct RICsubscriptionDeleteFailure_IEs; -struct RICindication_IEs; -struct RICcontrolRequest_IEs; -struct RICcontrolAcknowledge_IEs; -struct RICcontrolFailure_IEs; -struct ErrorIndication_IEs; -struct E2setupRequestIEs; -struct E2setupResponseIEs; -struct E2setupFailureIEs; -struct ResetRequestIEs; -struct ResetResponseIEs; -struct RICserviceUpdate_IEs; -struct RICserviceUpdateAcknowledge_IEs; -struct RICserviceUpdateFailure_IEs; -struct RICserviceQuery_IEs; - -/* ProtocolIE-Container */ -typedef struct ProtocolIE_Container_1527P0 { - A_SEQUENCE_OF(struct RICsubscriptionRequest_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1527P0_t; -typedef struct ProtocolIE_Container_1527P1 { - A_SEQUENCE_OF(struct RICsubscriptionResponse_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1527P1_t; -typedef struct ProtocolIE_Container_1527P2 { - A_SEQUENCE_OF(struct RICsubscriptionFailure_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1527P2_t; -typedef struct ProtocolIE_Container_1527P3 { - A_SEQUENCE_OF(struct RICsubscriptionDeleteRequest_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1527P3_t; -typedef struct ProtocolIE_Container_1527P4 { - A_SEQUENCE_OF(struct RICsubscriptionDeleteResponse_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1527P4_t; -typedef struct ProtocolIE_Container_1527P5 { - A_SEQUENCE_OF(struct RICsubscriptionDeleteFailure_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1527P5_t; -typedef struct ProtocolIE_Container_1527P6 { - A_SEQUENCE_OF(struct RICindication_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1527P6_t; -typedef struct ProtocolIE_Container_1527P7 { - A_SEQUENCE_OF(struct RICcontrolRequest_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1527P7_t; -typedef struct ProtocolIE_Container_1527P8 { - A_SEQUENCE_OF(struct RICcontrolAcknowledge_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1527P8_t; -typedef struct ProtocolIE_Container_1527P9 { - A_SEQUENCE_OF(struct RICcontrolFailure_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1527P9_t; -typedef struct ProtocolIE_Container_1527P10 { - A_SEQUENCE_OF(struct ErrorIndication_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1527P10_t; -typedef struct ProtocolIE_Container_1527P11 { - A_SEQUENCE_OF(struct E2setupRequestIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1527P11_t; -typedef struct ProtocolIE_Container_1527P12 { - A_SEQUENCE_OF(struct E2setupResponseIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1527P12_t; -typedef struct ProtocolIE_Container_1527P13 { - A_SEQUENCE_OF(struct E2setupFailureIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1527P13_t; -typedef struct ProtocolIE_Container_1527P14 { - A_SEQUENCE_OF(struct ResetRequestIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1527P14_t; -typedef struct ProtocolIE_Container_1527P15 { - A_SEQUENCE_OF(struct ResetResponseIEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1527P15_t; -typedef struct ProtocolIE_Container_1527P16 { - A_SEQUENCE_OF(struct RICserviceUpdate_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1527P16_t; -typedef struct ProtocolIE_Container_1527P17 { - A_SEQUENCE_OF(struct RICserviceUpdateAcknowledge_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1527P17_t; -typedef struct ProtocolIE_Container_1527P18 { - A_SEQUENCE_OF(struct RICserviceUpdateFailure_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1527P18_t; -typedef struct ProtocolIE_Container_1527P19 { - A_SEQUENCE_OF(struct RICserviceQuery_IEs) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1527P19_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P0; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P0_specs_1; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P0_1[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P0_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P1; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P1_specs_3; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P1_3[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P1_constr_3; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P2; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P2_specs_5; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P2_5[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P2_constr_5; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P3; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P3_specs_7; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P3_7[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P3_constr_7; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P4; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P4_specs_9; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P4_9[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P4_constr_9; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P5; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P5_specs_11; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P5_11[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P5_constr_11; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P6; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P6_specs_13; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P6_13[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P6_constr_13; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P7; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P7_specs_15; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P7_15[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P7_constr_15; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P8; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P8_specs_17; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P8_17[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P8_constr_17; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P9; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P9_specs_19; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P9_19[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P9_constr_19; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P10; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P10_specs_21; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P10_21[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P10_constr_21; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P11; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P11_specs_23; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P11_23[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P11_constr_23; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P12; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P12_specs_25; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P12_25[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P12_constr_25; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P13; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P13_specs_27; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P13_27[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P13_constr_27; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P14; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P14_specs_29; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P14_29[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P14_constr_29; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P15; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P15_specs_31; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P15_31[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P15_constr_31; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P16; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P16_specs_33; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P16_33[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P16_constr_33; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P17; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P17_specs_35; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P17_35[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P17_constr_35; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P18; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P18_specs_37; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P18_37[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P18_constr_37; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1527P19; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1527P19_specs_39; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1527P19_39[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1527P19_constr_39; - -#ifdef __cplusplus -} -#endif - -#endif /* _ProtocolIE_Container_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/ProtocolIE-ContainerList.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/ProtocolIE-ContainerList.c deleted file mode 100644 index c9d5808..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/ProtocolIE-ContainerList.c +++ /dev/null @@ -1,9 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-Containers" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "ProtocolIE-ContainerList.h" - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/ProtocolIE-ContainerList.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/ProtocolIE-ContainerList.h deleted file mode 100644 index 3376410..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/ProtocolIE-ContainerList.h +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-Containers" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _ProtocolIE_ContainerList_H_ -#define _ProtocolIE_ContainerList_H_ - - -#include "asn_application.h" - -#ifdef __cplusplus -extern "C" { -#endif - -#ifdef __cplusplus -} -#endif - -#endif /* _ProtocolIE_ContainerList_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/ProtocolIE-ContainerPair.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/ProtocolIE-ContainerPair.c deleted file mode 100644 index ad1c8b8..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/ProtocolIE-ContainerPair.c +++ /dev/null @@ -1,9 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-Containers" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "ProtocolIE-ContainerPair.h" - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/ProtocolIE-ContainerPair.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/ProtocolIE-ContainerPair.h deleted file mode 100644 index 5b730c7..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/ProtocolIE-ContainerPair.h +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-Containers" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _ProtocolIE_ContainerPair_H_ -#define _ProtocolIE_ContainerPair_H_ - - -#include "asn_application.h" - -#ifdef __cplusplus -extern "C" { -#endif - -#ifdef __cplusplus -} -#endif - -#endif /* _ProtocolIE_ContainerPair_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/ProtocolIE-ContainerPairList.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/ProtocolIE-ContainerPairList.c deleted file mode 100644 index f77445b..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/ProtocolIE-ContainerPairList.c +++ /dev/null @@ -1,9 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-Containers" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "ProtocolIE-ContainerPairList.h" - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/ProtocolIE-ContainerPairList.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/ProtocolIE-ContainerPairList.h deleted file mode 100644 index 1837ac8..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/ProtocolIE-ContainerPairList.h +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-Containers" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _ProtocolIE_ContainerPairList_H_ -#define _ProtocolIE_ContainerPairList_H_ - - -#include "asn_application.h" - -#ifdef __cplusplus -extern "C" { -#endif - -#ifdef __cplusplus -} -#endif - -#endif /* _ProtocolIE_ContainerPairList_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/ProtocolIE-Field.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/ProtocolIE-Field.c deleted file mode 100644 index af5597c..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/ProtocolIE-Field.c +++ /dev/null @@ -1,7190 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-Containers" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "ProtocolIE-Field.h" - -static const long asn_VAL_4_id_RICaction_ToBeSetup_Item = 19; -static const long asn_VAL_4_ignore = 1; -static const long asn_VAL_4_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_RICaction_ToBeSetup_ItemIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_4_id_RICaction_ToBeSetup_Item }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_4_ignore }, - { "&Value", aioc__type, &asn_DEF_RICaction_ToBeSetup_Item }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_4_mandatory } -}; -static const asn_ioc_set_t asn_IOS_RICaction_ToBeSetup_ItemIEs_1[] = { - { 1, 4, asn_IOS_RICaction_ToBeSetup_ItemIEs_1_rows } -}; -static const long asn_VAL_9_id_RICaction_Admitted_Item = 14; -static const long asn_VAL_9_ignore = 1; -static const long asn_VAL_9_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_RICaction_Admitted_ItemIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_9_id_RICaction_Admitted_Item }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_9_ignore }, - { "&Value", aioc__type, &asn_DEF_RICaction_Admitted_Item }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_9_mandatory } -}; -static const asn_ioc_set_t asn_IOS_RICaction_Admitted_ItemIEs_1[] = { - { 1, 4, asn_IOS_RICaction_Admitted_ItemIEs_1_rows } -}; -static const long asn_VAL_10_id_RICaction_NotAdmitted_Item = 16; -static const long asn_VAL_10_ignore = 1; -static const long asn_VAL_10_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_RICaction_NotAdmitted_ItemIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_10_id_RICaction_NotAdmitted_Item }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_10_ignore }, - { "&Value", aioc__type, &asn_DEF_RICaction_NotAdmitted_Item }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_10_mandatory } -}; -static const asn_ioc_set_t asn_IOS_RICaction_NotAdmitted_ItemIEs_1[] = { - { 1, 4, asn_IOS_RICaction_NotAdmitted_ItemIEs_1_rows } -}; -static const long asn_VAL_64_id_RANfunction_Item = 8; -static const long asn_VAL_64_ignore = 1; -static const long asn_VAL_64_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_RANfunction_ItemIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_64_id_RANfunction_Item }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_64_ignore }, - { "&Value", aioc__type, &asn_DEF_RANfunction_Item }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_64_mandatory } -}; -static const asn_ioc_set_t asn_IOS_RANfunction_ItemIEs_1[] = { - { 1, 4, asn_IOS_RANfunction_ItemIEs_1_rows } -}; -static const long asn_VAL_65_id_RANfunctionID_Item = 6; -static const long asn_VAL_65_ignore = 1; -static const long asn_VAL_65_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_RANfunctionID_ItemIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_65_id_RANfunctionID_Item }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_65_ignore }, - { "&Value", aioc__type, &asn_DEF_RANfunctionID_Item }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_65_mandatory } -}; -static const asn_ioc_set_t asn_IOS_RANfunctionID_ItemIEs_1[] = { - { 1, 4, asn_IOS_RANfunctionID_ItemIEs_1_rows } -}; -static const long asn_VAL_68_id_RANfunctionIEcause_Item = 7; -static const long asn_VAL_68_ignore = 1; -static const long asn_VAL_68_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_RANfunctionIDcause_ItemIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_68_id_RANfunctionIEcause_Item }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_68_ignore }, - { "&Value", aioc__type, &asn_DEF_RANfunctionIDcause_Item }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_68_mandatory } -}; -static const asn_ioc_set_t asn_IOS_RANfunctionIDcause_ItemIEs_1[] = { - { 1, 4, asn_IOS_RANfunctionIDcause_ItemIEs_1_rows } -}; -static const long asn_VAL_1_id_RICrequestID = 29; -static const long asn_VAL_1_reject = 0; -static const long asn_VAL_1_mandatory = 2; -static const long asn_VAL_2_id_RANfunctionID = 5; -static const long asn_VAL_2_reject = 0; -static const long asn_VAL_2_mandatory = 2; -static const long asn_VAL_3_id_RICsubscriptionDetails = 30; -static const long asn_VAL_3_reject = 0; -static const long asn_VAL_3_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_RICsubscriptionRequest_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_1_id_RICrequestID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_1_reject }, - { "&Value", aioc__type, &asn_DEF_RICrequestID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_1_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_2_id_RANfunctionID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_2_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_2_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_3_id_RICsubscriptionDetails }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_3_reject }, - { "&Value", aioc__type, &asn_DEF_RICsubscriptionDetails }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_3_mandatory } -}; -static const asn_ioc_set_t asn_IOS_RICsubscriptionRequest_IEs_1[] = { - { 3, 4, asn_IOS_RICsubscriptionRequest_IEs_1_rows } -}; -static const long asn_VAL_5_id_RICrequestID = 29; -static const long asn_VAL_5_reject = 0; -static const long asn_VAL_5_mandatory = 2; -static const long asn_VAL_6_id_RANfunctionID = 5; -static const long asn_VAL_6_reject = 0; -static const long asn_VAL_6_mandatory = 2; -static const long asn_VAL_7_id_RICactions_Admitted = 17; -static const long asn_VAL_7_reject = 0; -static const long asn_VAL_7_mandatory = 2; -static const long asn_VAL_8_id_RICactions_NotAdmitted = 18; -static const long asn_VAL_8_reject = 0; -static const long asn_VAL_8_optional = 0; -static const asn_ioc_cell_t asn_IOS_RICsubscriptionResponse_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_5_id_RICrequestID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_5_reject }, - { "&Value", aioc__type, &asn_DEF_RICrequestID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_5_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_6_id_RANfunctionID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_6_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_6_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_7_id_RICactions_Admitted }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_7_reject }, - { "&Value", aioc__type, &asn_DEF_RICaction_Admitted_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_7_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_8_id_RICactions_NotAdmitted }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_8_reject }, - { "&Value", aioc__type, &asn_DEF_RICaction_NotAdmitted_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_8_optional } -}; -static const asn_ioc_set_t asn_IOS_RICsubscriptionResponse_IEs_1[] = { - { 4, 4, asn_IOS_RICsubscriptionResponse_IEs_1_rows } -}; -static const long asn_VAL_11_id_RICrequestID = 29; -static const long asn_VAL_11_reject = 0; -static const long asn_VAL_11_mandatory = 2; -static const long asn_VAL_12_id_RANfunctionID = 5; -static const long asn_VAL_12_reject = 0; -static const long asn_VAL_12_mandatory = 2; -static const long asn_VAL_13_id_RICactions_NotAdmitted = 18; -static const long asn_VAL_13_reject = 0; -static const long asn_VAL_13_mandatory = 2; -static const long asn_VAL_14_id_CriticalityDiagnostics = 2; -static const long asn_VAL_14_ignore = 1; -static const long asn_VAL_14_optional = 0; -static const asn_ioc_cell_t asn_IOS_RICsubscriptionFailure_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_11_id_RICrequestID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_11_reject }, - { "&Value", aioc__type, &asn_DEF_RICrequestID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_11_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_12_id_RANfunctionID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_12_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_12_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_13_id_RICactions_NotAdmitted }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_13_reject }, - { "&Value", aioc__type, &asn_DEF_RICaction_NotAdmitted_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_13_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_14_id_CriticalityDiagnostics }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_14_ignore }, - { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_14_optional } -}; -static const asn_ioc_set_t asn_IOS_RICsubscriptionFailure_IEs_1[] = { - { 4, 4, asn_IOS_RICsubscriptionFailure_IEs_1_rows } -}; -static const long asn_VAL_15_id_RICrequestID = 29; -static const long asn_VAL_15_reject = 0; -static const long asn_VAL_15_mandatory = 2; -static const long asn_VAL_16_id_RANfunctionID = 5; -static const long asn_VAL_16_reject = 0; -static const long asn_VAL_16_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_RICsubscriptionDeleteRequest_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_15_id_RICrequestID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_15_reject }, - { "&Value", aioc__type, &asn_DEF_RICrequestID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_15_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_16_id_RANfunctionID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_16_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_16_mandatory } -}; -static const asn_ioc_set_t asn_IOS_RICsubscriptionDeleteRequest_IEs_1[] = { - { 2, 4, asn_IOS_RICsubscriptionDeleteRequest_IEs_1_rows } -}; -static const long asn_VAL_17_id_RICrequestID = 29; -static const long asn_VAL_17_reject = 0; -static const long asn_VAL_17_mandatory = 2; -static const long asn_VAL_18_id_RANfunctionID = 5; -static const long asn_VAL_18_reject = 0; -static const long asn_VAL_18_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_RICsubscriptionDeleteResponse_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_17_id_RICrequestID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_17_reject }, - { "&Value", aioc__type, &asn_DEF_RICrequestID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_17_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_18_id_RANfunctionID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_18_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_18_mandatory } -}; -static const asn_ioc_set_t asn_IOS_RICsubscriptionDeleteResponse_IEs_1[] = { - { 2, 4, asn_IOS_RICsubscriptionDeleteResponse_IEs_1_rows } -}; -static const long asn_VAL_19_id_RICrequestID = 29; -static const long asn_VAL_19_reject = 0; -static const long asn_VAL_19_mandatory = 2; -static const long asn_VAL_20_id_RANfunctionID = 5; -static const long asn_VAL_20_reject = 0; -static const long asn_VAL_20_mandatory = 2; -static const long asn_VAL_21_id_Cause = 1; -static const long asn_VAL_21_ignore = 1; -static const long asn_VAL_21_mandatory = 2; -static const long asn_VAL_22_id_CriticalityDiagnostics = 2; -static const long asn_VAL_22_ignore = 1; -static const long asn_VAL_22_optional = 0; -static const asn_ioc_cell_t asn_IOS_RICsubscriptionDeleteFailure_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_19_id_RICrequestID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_19_reject }, - { "&Value", aioc__type, &asn_DEF_RICrequestID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_19_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_20_id_RANfunctionID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_20_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_20_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_21_id_Cause }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_21_ignore }, - { "&Value", aioc__type, &asn_DEF_Cause }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_21_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_22_id_CriticalityDiagnostics }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_22_ignore }, - { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_22_optional } -}; -static const asn_ioc_set_t asn_IOS_RICsubscriptionDeleteFailure_IEs_1[] = { - { 4, 4, asn_IOS_RICsubscriptionDeleteFailure_IEs_1_rows } -}; -static const long asn_VAL_23_id_RICrequestID = 29; -static const long asn_VAL_23_reject = 0; -static const long asn_VAL_23_mandatory = 2; -static const long asn_VAL_24_id_RANfunctionID = 5; -static const long asn_VAL_24_reject = 0; -static const long asn_VAL_24_mandatory = 2; -static const long asn_VAL_25_id_RICactionID = 15; -static const long asn_VAL_25_reject = 0; -static const long asn_VAL_25_mandatory = 2; -static const long asn_VAL_26_id_RICindicationSN = 27; -static const long asn_VAL_26_reject = 0; -static const long asn_VAL_26_optional = 0; -static const long asn_VAL_27_id_RICindicationType = 28; -static const long asn_VAL_27_reject = 0; -static const long asn_VAL_27_mandatory = 2; -static const long asn_VAL_28_id_RICindicationHeader = 25; -static const long asn_VAL_28_reject = 0; -static const long asn_VAL_28_mandatory = 2; -static const long asn_VAL_29_id_RICindicationMessage = 26; -static const long asn_VAL_29_reject = 0; -static const long asn_VAL_29_mandatory = 2; -static const long asn_VAL_30_id_RICcallProcessID = 20; -static const long asn_VAL_30_reject = 0; -static const long asn_VAL_30_optional = 0; -static const asn_ioc_cell_t asn_IOS_RICindication_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_23_id_RICrequestID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_23_reject }, - { "&Value", aioc__type, &asn_DEF_RICrequestID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_23_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_24_id_RANfunctionID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_24_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_24_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_25_id_RICactionID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_25_reject }, - { "&Value", aioc__type, &asn_DEF_RICactionID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_25_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_26_id_RICindicationSN }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_26_reject }, - { "&Value", aioc__type, &asn_DEF_RICindicationSN }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_26_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_27_id_RICindicationType }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_27_reject }, - { "&Value", aioc__type, &asn_DEF_RICindicationType }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_27_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_28_id_RICindicationHeader }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_28_reject }, - { "&Value", aioc__type, &asn_DEF_RICindicationHeader }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_28_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_29_id_RICindicationMessage }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_29_reject }, - { "&Value", aioc__type, &asn_DEF_RICindicationMessage }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_29_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_30_id_RICcallProcessID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_30_reject }, - { "&Value", aioc__type, &asn_DEF_RICcallProcessID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_30_optional } -}; -static const asn_ioc_set_t asn_IOS_RICindication_IEs_1[] = { - { 8, 4, asn_IOS_RICindication_IEs_1_rows } -}; -static const long asn_VAL_31_id_RICrequestID = 29; -static const long asn_VAL_31_reject = 0; -static const long asn_VAL_31_mandatory = 2; -static const long asn_VAL_32_id_RANfunctionID = 5; -static const long asn_VAL_32_reject = 0; -static const long asn_VAL_32_mandatory = 2; -static const long asn_VAL_33_id_RICcallProcessID = 20; -static const long asn_VAL_33_reject = 0; -static const long asn_VAL_33_optional = 0; -static const long asn_VAL_34_id_RICcontrolHeader = 22; -static const long asn_VAL_34_reject = 0; -static const long asn_VAL_34_mandatory = 2; -static const long asn_VAL_35_id_RICcontrolMessage = 23; -static const long asn_VAL_35_reject = 0; -static const long asn_VAL_35_mandatory = 2; -static const long asn_VAL_36_id_RICcontrolAckRequest = 21; -static const long asn_VAL_36_reject = 0; -static const long asn_VAL_36_optional = 0; -static const asn_ioc_cell_t asn_IOS_RICcontrolRequest_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_31_id_RICrequestID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_31_reject }, - { "&Value", aioc__type, &asn_DEF_RICrequestID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_31_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_32_id_RANfunctionID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_32_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_32_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_33_id_RICcallProcessID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_33_reject }, - { "&Value", aioc__type, &asn_DEF_RICcallProcessID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_33_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_34_id_RICcontrolHeader }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_34_reject }, - { "&Value", aioc__type, &asn_DEF_RICcontrolHeader }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_34_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_35_id_RICcontrolMessage }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_35_reject }, - { "&Value", aioc__type, &asn_DEF_RICcontrolMessage }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_35_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_36_id_RICcontrolAckRequest }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_36_reject }, - { "&Value", aioc__type, &asn_DEF_RICcontrolAckRequest }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_36_optional } -}; -static const asn_ioc_set_t asn_IOS_RICcontrolRequest_IEs_1[] = { - { 6, 4, asn_IOS_RICcontrolRequest_IEs_1_rows } -}; -static const long asn_VAL_37_id_RICrequestID = 29; -static const long asn_VAL_37_reject = 0; -static const long asn_VAL_37_mandatory = 2; -static const long asn_VAL_38_id_RANfunctionID = 5; -static const long asn_VAL_38_reject = 0; -static const long asn_VAL_38_mandatory = 2; -static const long asn_VAL_39_id_RICcallProcessID = 20; -static const long asn_VAL_39_reject = 0; -static const long asn_VAL_39_optional = 0; -static const long asn_VAL_40_id_RICcontrolStatus = 24; -static const long asn_VAL_40_reject = 0; -static const long asn_VAL_40_mandatory = 2; -static const long asn_VAL_41_id_RICcontrolOutcome = 32; -static const long asn_VAL_41_reject = 0; -static const long asn_VAL_41_optional = 0; -static const asn_ioc_cell_t asn_IOS_RICcontrolAcknowledge_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_37_id_RICrequestID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_37_reject }, - { "&Value", aioc__type, &asn_DEF_RICrequestID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_37_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_38_id_RANfunctionID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_38_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_38_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_39_id_RICcallProcessID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_39_reject }, - { "&Value", aioc__type, &asn_DEF_RICcallProcessID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_39_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_40_id_RICcontrolStatus }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_40_reject }, - { "&Value", aioc__type, &asn_DEF_RICcontrolStatus }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_40_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_41_id_RICcontrolOutcome }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_41_reject }, - { "&Value", aioc__type, &asn_DEF_RICcontrolOutcome }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_41_optional } -}; -static const asn_ioc_set_t asn_IOS_RICcontrolAcknowledge_IEs_1[] = { - { 5, 4, asn_IOS_RICcontrolAcknowledge_IEs_1_rows } -}; -static const long asn_VAL_42_id_RICrequestID = 29; -static const long asn_VAL_42_reject = 0; -static const long asn_VAL_42_mandatory = 2; -static const long asn_VAL_43_id_RANfunctionID = 5; -static const long asn_VAL_43_reject = 0; -static const long asn_VAL_43_mandatory = 2; -static const long asn_VAL_44_id_RICcallProcessID = 20; -static const long asn_VAL_44_reject = 0; -static const long asn_VAL_44_optional = 0; -static const long asn_VAL_45_id_Cause = 1; -static const long asn_VAL_45_ignore = 1; -static const long asn_VAL_45_mandatory = 2; -static const long asn_VAL_46_id_RICcontrolOutcome = 32; -static const long asn_VAL_46_reject = 0; -static const long asn_VAL_46_optional = 0; -static const asn_ioc_cell_t asn_IOS_RICcontrolFailure_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_42_id_RICrequestID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_42_reject }, - { "&Value", aioc__type, &asn_DEF_RICrequestID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_42_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_43_id_RANfunctionID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_43_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_43_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_44_id_RICcallProcessID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_44_reject }, - { "&Value", aioc__type, &asn_DEF_RICcallProcessID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_44_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_45_id_Cause }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_45_ignore }, - { "&Value", aioc__type, &asn_DEF_Cause }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_45_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_46_id_RICcontrolOutcome }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_46_reject }, - { "&Value", aioc__type, &asn_DEF_RICcontrolOutcome }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_46_optional } -}; -static const asn_ioc_set_t asn_IOS_RICcontrolFailure_IEs_1[] = { - { 5, 4, asn_IOS_RICcontrolFailure_IEs_1_rows } -}; -static const long asn_VAL_47_id_RICrequestID = 29; -static const long asn_VAL_47_reject = 0; -static const long asn_VAL_47_optional = 0; -static const long asn_VAL_48_id_RANfunctionID = 5; -static const long asn_VAL_48_reject = 0; -static const long asn_VAL_48_optional = 0; -static const long asn_VAL_49_id_Cause = 1; -static const long asn_VAL_49_ignore = 1; -static const long asn_VAL_49_optional = 0; -static const long asn_VAL_50_id_CriticalityDiagnostics = 2; -static const long asn_VAL_50_ignore = 1; -static const long asn_VAL_50_optional = 0; -static const asn_ioc_cell_t asn_IOS_ErrorIndication_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_47_id_RICrequestID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_47_reject }, - { "&Value", aioc__type, &asn_DEF_RICrequestID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_47_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_48_id_RANfunctionID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_48_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_48_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_49_id_Cause }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_49_ignore }, - { "&Value", aioc__type, &asn_DEF_Cause }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_49_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_50_id_CriticalityDiagnostics }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_50_ignore }, - { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_50_optional } -}; -static const asn_ioc_set_t asn_IOS_ErrorIndication_IEs_1[] = { - { 4, 4, asn_IOS_ErrorIndication_IEs_1_rows } -}; -static const long asn_VAL_51_id_GlobalE2node_ID = 3; -static const long asn_VAL_51_reject = 0; -static const long asn_VAL_51_mandatory = 2; -static const long asn_VAL_52_id_RANfunctionsAdded = 10; -static const long asn_VAL_52_reject = 0; -static const long asn_VAL_52_optional = 0; -static const asn_ioc_cell_t asn_IOS_E2setupRequestIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_51_id_GlobalE2node_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_51_reject }, - { "&Value", aioc__type, &asn_DEF_GlobalE2node_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_51_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_52_id_RANfunctionsAdded }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_52_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctions_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_52_optional } -}; -static const asn_ioc_set_t asn_IOS_E2setupRequestIEs_1[] = { - { 2, 4, asn_IOS_E2setupRequestIEs_1_rows } -}; -static const long asn_VAL_53_id_GlobalRIC_ID = 4; -static const long asn_VAL_53_reject = 0; -static const long asn_VAL_53_mandatory = 2; -static const long asn_VAL_54_id_RANfunctionsAccepted = 9; -static const long asn_VAL_54_reject = 0; -static const long asn_VAL_54_optional = 0; -static const long asn_VAL_55_id_RANfunctionsRejected = 13; -static const long asn_VAL_55_reject = 0; -static const long asn_VAL_55_optional = 0; -static const asn_ioc_cell_t asn_IOS_E2setupResponseIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_53_id_GlobalRIC_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_53_reject }, - { "&Value", aioc__type, &asn_DEF_GlobalRIC_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_53_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_54_id_RANfunctionsAccepted }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_54_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionsID_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_54_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_55_id_RANfunctionsRejected }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_55_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionsIDcause_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_55_optional } -}; -static const asn_ioc_set_t asn_IOS_E2setupResponseIEs_1[] = { - { 3, 4, asn_IOS_E2setupResponseIEs_1_rows } -}; -static const long asn_VAL_56_id_Cause = 1; -static const long asn_VAL_56_ignore = 1; -static const long asn_VAL_56_mandatory = 2; -static const long asn_VAL_57_id_TimeToWait = 31; -static const long asn_VAL_57_ignore = 1; -static const long asn_VAL_57_optional = 0; -static const long asn_VAL_58_id_CriticalityDiagnostics = 2; -static const long asn_VAL_58_ignore = 1; -static const long asn_VAL_58_optional = 0; -static const asn_ioc_cell_t asn_IOS_E2setupFailureIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_56_id_Cause }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_56_ignore }, - { "&Value", aioc__type, &asn_DEF_Cause }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_56_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_57_id_TimeToWait }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_57_ignore }, - { "&Value", aioc__type, &asn_DEF_TimeToWait }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_57_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_58_id_CriticalityDiagnostics }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_58_ignore }, - { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_58_optional } -}; -static const asn_ioc_set_t asn_IOS_E2setupFailureIEs_1[] = { - { 3, 4, asn_IOS_E2setupFailureIEs_1_rows } -}; -static const long asn_VAL_59_id_Cause = 1; -static const long asn_VAL_59_ignore = 1; -static const long asn_VAL_59_mandatory = 2; -static const asn_ioc_cell_t asn_IOS_ResetRequestIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_59_id_Cause }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_59_ignore }, - { "&Value", aioc__type, &asn_DEF_Cause }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_59_mandatory } -}; -static const asn_ioc_set_t asn_IOS_ResetRequestIEs_1[] = { - { 1, 4, asn_IOS_ResetRequestIEs_1_rows } -}; -static const long asn_VAL_60_id_CriticalityDiagnostics = 2; -static const long asn_VAL_60_ignore = 1; -static const long asn_VAL_60_optional = 0; -static const asn_ioc_cell_t asn_IOS_ResetResponseIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_60_id_CriticalityDiagnostics }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_60_ignore }, - { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_60_optional } -}; -static const asn_ioc_set_t asn_IOS_ResetResponseIEs_1[] = { - { 1, 4, asn_IOS_ResetResponseIEs_1_rows } -}; -static const long asn_VAL_61_id_RANfunctionsAdded = 10; -static const long asn_VAL_61_reject = 0; -static const long asn_VAL_61_optional = 0; -static const long asn_VAL_62_id_RANfunctionsModified = 12; -static const long asn_VAL_62_reject = 0; -static const long asn_VAL_62_optional = 0; -static const long asn_VAL_63_id_RANfunctionsDeleted = 11; -static const long asn_VAL_63_reject = 0; -static const long asn_VAL_63_optional = 0; -static const asn_ioc_cell_t asn_IOS_RICserviceUpdate_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_61_id_RANfunctionsAdded }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_61_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctions_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_61_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_62_id_RANfunctionsModified }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_62_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctions_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_62_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_63_id_RANfunctionsDeleted }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_63_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionsID_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_63_optional } -}; -static const asn_ioc_set_t asn_IOS_RICserviceUpdate_IEs_1[] = { - { 3, 4, asn_IOS_RICserviceUpdate_IEs_1_rows } -}; -static const long asn_VAL_66_id_RANfunctionsAccepted = 9; -static const long asn_VAL_66_reject = 0; -static const long asn_VAL_66_optional = 0; -static const long asn_VAL_67_id_RANfunctionsRejected = 13; -static const long asn_VAL_67_reject = 0; -static const long asn_VAL_67_optional = 0; -static const asn_ioc_cell_t asn_IOS_RICserviceUpdateAcknowledge_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_66_id_RANfunctionsAccepted }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_66_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionsID_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_66_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_67_id_RANfunctionsRejected }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_67_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionsIDcause_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_67_optional } -}; -static const asn_ioc_set_t asn_IOS_RICserviceUpdateAcknowledge_IEs_1[] = { - { 2, 4, asn_IOS_RICserviceUpdateAcknowledge_IEs_1_rows } -}; -static const long asn_VAL_69_id_RANfunctionsRejected = 13; -static const long asn_VAL_69_ignore = 1; -static const long asn_VAL_69_optional = 0; -static const long asn_VAL_70_id_TimeToWait = 31; -static const long asn_VAL_70_ignore = 1; -static const long asn_VAL_70_optional = 0; -static const long asn_VAL_71_id_CriticalityDiagnostics = 2; -static const long asn_VAL_71_ignore = 1; -static const long asn_VAL_71_optional = 0; -static const asn_ioc_cell_t asn_IOS_RICserviceUpdateFailure_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_69_id_RANfunctionsRejected }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_69_ignore }, - { "&Value", aioc__type, &asn_DEF_RANfunctionsIDcause_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_69_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_70_id_TimeToWait }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_70_ignore }, - { "&Value", aioc__type, &asn_DEF_TimeToWait }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_70_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_71_id_CriticalityDiagnostics }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_71_ignore }, - { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_71_optional } -}; -static const asn_ioc_set_t asn_IOS_RICserviceUpdateFailure_IEs_1[] = { - { 3, 4, asn_IOS_RICserviceUpdateFailure_IEs_1_rows } -}; -static const long asn_VAL_72_id_RANfunctionsAccepted = 9; -static const long asn_VAL_72_reject = 0; -static const long asn_VAL_72_optional = 0; -static const asn_ioc_cell_t asn_IOS_RICserviceQuery_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_72_id_RANfunctionsAccepted }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_72_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionsID_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_72_optional } -}; -static const asn_ioc_set_t asn_IOS_RICserviceQuery_IEs_1[] = { - { 1, 4, asn_IOS_RICserviceQuery_IEs_1_rows } -}; -static int -memb_id_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_RICaction_ToBeSetup_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICaction_ToBeSetup_ItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICaction_ToBeSetup_ItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_RICaction_ToBeSetup_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICaction_ToBeSetup_ItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICaction_ToBeSetup_ItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_5(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_RICaction_Admitted_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICaction_Admitted_ItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICaction_Admitted_ItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_5(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_RICaction_Admitted_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICaction_Admitted_ItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICaction_Admitted_ItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_5(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_9(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_RICaction_NotAdmitted_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICaction_NotAdmitted_ItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICaction_NotAdmitted_ItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_9(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_RICaction_NotAdmitted_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICaction_NotAdmitted_ItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICaction_NotAdmitted_ItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_9(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_13(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_RANfunction_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RANfunction_ItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RANfunction_ItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_13(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_RANfunction_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RANfunction_ItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RANfunction_ItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_13(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_17(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_RANfunctionID_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RANfunctionID_ItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RANfunctionID_ItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_17(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_RANfunctionID_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RANfunctionID_ItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RANfunctionID_ItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_17(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_21(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_RANfunctionIDcause_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RANfunctionIDcause_ItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RANfunctionIDcause_ItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_21(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_RANfunctionIDcause_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RANfunctionIDcause_ItemIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RANfunctionIDcause_ItemIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_21(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_25(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_RICsubscriptionRequest_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionRequest_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionRequest_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_25(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_RICsubscriptionRequest_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionRequest_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionRequest_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_25(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_29(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_RICsubscriptionResponse_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionResponse_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionResponse_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_29(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_RICsubscriptionResponse_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionResponse_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionResponse_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_29(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_33(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_RICsubscriptionFailure_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionFailure_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionFailure_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_33(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_RICsubscriptionFailure_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionFailure_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionFailure_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_33(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_37(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_RICsubscriptionDeleteRequest_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionDeleteRequest_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionDeleteRequest_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_37(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_RICsubscriptionDeleteRequest_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionDeleteRequest_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionDeleteRequest_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_37(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_41(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_RICsubscriptionDeleteResponse_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionDeleteResponse_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionDeleteResponse_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_41(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_RICsubscriptionDeleteResponse_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionDeleteResponse_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionDeleteResponse_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_41(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_45(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_RICsubscriptionDeleteFailure_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionDeleteFailure_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionDeleteFailure_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_45(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_RICsubscriptionDeleteFailure_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionDeleteFailure_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionDeleteFailure_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_45(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_49(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_RICindication_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICindication_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICindication_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_49(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_RICindication_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICindication_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICindication_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_49(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_53(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_RICcontrolRequest_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICcontrolRequest_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICcontrolRequest_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_53(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_RICcontrolRequest_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICcontrolRequest_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICcontrolRequest_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_53(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_57(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_RICcontrolAcknowledge_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICcontrolAcknowledge_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICcontrolAcknowledge_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_57(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_RICcontrolAcknowledge_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICcontrolAcknowledge_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICcontrolAcknowledge_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_57(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_61(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_RICcontrolFailure_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICcontrolFailure_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICcontrolFailure_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_61(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_RICcontrolFailure_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICcontrolFailure_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICcontrolFailure_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_61(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_65(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_ErrorIndication_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_ErrorIndication_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ErrorIndication_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_65(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_ErrorIndication_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_ErrorIndication_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ErrorIndication_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_65(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_69(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_E2setupRequestIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E2setupRequestIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2setupRequestIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_69(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_E2setupRequestIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E2setupRequestIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2setupRequestIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_69(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_73(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_E2setupResponseIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E2setupResponseIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2setupResponseIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_73(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_E2setupResponseIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E2setupResponseIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2setupResponseIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_73(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_77(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_E2setupFailureIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E2setupFailureIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2setupFailureIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_77(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_E2setupFailureIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E2setupFailureIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2setupFailureIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_77(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_81(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_ResetRequestIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_ResetRequestIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ResetRequestIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_81(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_ResetRequestIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_ResetRequestIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ResetRequestIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_81(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_85(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_ResetResponseIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_ResetResponseIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ResetResponseIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_85(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_ResetResponseIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_ResetResponseIEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ResetResponseIEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_85(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_89(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_RICserviceUpdate_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICserviceUpdate_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICserviceUpdate_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_89(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_RICserviceUpdate_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICserviceUpdate_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICserviceUpdate_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_89(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_93(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_RICserviceUpdateAcknowledge_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICserviceUpdateAcknowledge_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICserviceUpdateAcknowledge_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_93(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_RICserviceUpdateAcknowledge_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICserviceUpdateAcknowledge_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICserviceUpdateAcknowledge_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_93(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_97(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_RICserviceUpdateFailure_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICserviceUpdateFailure_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICserviceUpdateFailure_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_97(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_RICserviceUpdateFailure_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICserviceUpdateFailure_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICserviceUpdateFailure_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_97(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static int -memb_id_constraint_101(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_RICserviceQuery_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICserviceQuery_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 1; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICserviceQuery_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_101(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_RICserviceQuery_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICserviceQuery_IEs_1; - size_t constraining_column = 0; /* &id */ - size_t for_column = 2; /* &Value */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICserviceQuery_IEs, id)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_101(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_per_constraints_t asn_PER_memb_id_constr_2 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_3 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_4 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_6 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_7 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_8 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_10 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_11 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_12 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_14 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_15 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_16 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_18 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_19 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_20 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_22 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_23 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_24 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_26 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_27 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_28 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_30 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_31 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_32 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_34 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_35 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_36 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_38 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_39 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_40 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_42 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_43 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_44 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_46 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_47 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_48 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_50 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_51 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_52 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_54 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_55 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_56 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_58 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_59 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_60 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_62 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_63 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_64 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_66 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_67 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_68 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_70 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_71 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_72 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_74 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_75 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_76 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_78 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_79 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_80 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_82 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_83 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_84 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_86 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_87 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_88 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_90 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_91 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_92 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_94 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_95 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_96 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_98 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_99 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_100 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_102 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_103 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_104 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_value_4[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICaction_ToBeSetup_ItemIEs__value, choice.RICaction_ToBeSetup_Item), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICaction_ToBeSetup_Item, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICaction-ToBeSetup-Item" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_4[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RICaction-ToBeSetup-Item */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_4 = { - sizeof(struct RICaction_ToBeSetup_ItemIEs__value), - offsetof(struct RICaction_ToBeSetup_ItemIEs__value, _asn_ctx), - offsetof(struct RICaction_ToBeSetup_ItemIEs__value, present), - sizeof(((struct RICaction_ToBeSetup_ItemIEs__value *)0)->present), - asn_MAP_value_tag2el_4, - 1, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_4 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_4, - 1, /* Elements count */ - &asn_SPC_value_specs_4 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_RICaction_ToBeSetup_ItemIEs_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICaction_ToBeSetup_ItemIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_2, memb_id_constraint_1 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICaction_ToBeSetup_ItemIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_RICaction_ToBeSetup_ItemIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_3, memb_criticality_constraint_1 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICaction_ToBeSetup_ItemIEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_4, - select_RICaction_ToBeSetup_ItemIEs_value_type, - { 0, &asn_PER_memb_value_constr_4, memb_value_constraint_1 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICaction_ToBeSetup_ItemIEs_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICaction_ToBeSetup_ItemIEs_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICaction_ToBeSetup_ItemIEs_specs_1 = { - sizeof(struct RICaction_ToBeSetup_ItemIEs), - offsetof(struct RICaction_ToBeSetup_ItemIEs, _asn_ctx), - asn_MAP_RICaction_ToBeSetup_ItemIEs_tag2el_1, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICaction_ToBeSetup_ItemIEs = { - "RICaction-ToBeSetup-ItemIEs", - "RICaction-ToBeSetup-ItemIEs", - &asn_OP_SEQUENCE, - asn_DEF_RICaction_ToBeSetup_ItemIEs_tags_1, - sizeof(asn_DEF_RICaction_ToBeSetup_ItemIEs_tags_1) - /sizeof(asn_DEF_RICaction_ToBeSetup_ItemIEs_tags_1[0]), /* 1 */ - asn_DEF_RICaction_ToBeSetup_ItemIEs_tags_1, /* Same as above */ - sizeof(asn_DEF_RICaction_ToBeSetup_ItemIEs_tags_1) - /sizeof(asn_DEF_RICaction_ToBeSetup_ItemIEs_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICaction_ToBeSetup_ItemIEs_1, - 3, /* Elements count */ - &asn_SPC_RICaction_ToBeSetup_ItemIEs_specs_1 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_8[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICaction_Admitted_ItemIEs__value, choice.RICaction_Admitted_Item), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICaction_Admitted_Item, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICaction-Admitted-Item" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_8[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RICaction-Admitted-Item */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_8 = { - sizeof(struct RICaction_Admitted_ItemIEs__value), - offsetof(struct RICaction_Admitted_ItemIEs__value, _asn_ctx), - offsetof(struct RICaction_Admitted_ItemIEs__value, present), - sizeof(((struct RICaction_Admitted_ItemIEs__value *)0)->present), - asn_MAP_value_tag2el_8, - 1, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_8 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_8, - 1, /* Elements count */ - &asn_SPC_value_specs_8 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_RICaction_Admitted_ItemIEs_5[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICaction_Admitted_ItemIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_6, memb_id_constraint_5 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICaction_Admitted_ItemIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_RICaction_Admitted_ItemIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_7, memb_criticality_constraint_5 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICaction_Admitted_ItemIEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_8, - select_RICaction_Admitted_ItemIEs_value_type, - { 0, &asn_PER_memb_value_constr_8, memb_value_constraint_5 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICaction_Admitted_ItemIEs_tags_5[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICaction_Admitted_ItemIEs_tag2el_5[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICaction_Admitted_ItemIEs_specs_5 = { - sizeof(struct RICaction_Admitted_ItemIEs), - offsetof(struct RICaction_Admitted_ItemIEs, _asn_ctx), - asn_MAP_RICaction_Admitted_ItemIEs_tag2el_5, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICaction_Admitted_ItemIEs = { - "RICaction-Admitted-ItemIEs", - "RICaction-Admitted-ItemIEs", - &asn_OP_SEQUENCE, - asn_DEF_RICaction_Admitted_ItemIEs_tags_5, - sizeof(asn_DEF_RICaction_Admitted_ItemIEs_tags_5) - /sizeof(asn_DEF_RICaction_Admitted_ItemIEs_tags_5[0]), /* 1 */ - asn_DEF_RICaction_Admitted_ItemIEs_tags_5, /* Same as above */ - sizeof(asn_DEF_RICaction_Admitted_ItemIEs_tags_5) - /sizeof(asn_DEF_RICaction_Admitted_ItemIEs_tags_5[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICaction_Admitted_ItemIEs_5, - 3, /* Elements count */ - &asn_SPC_RICaction_Admitted_ItemIEs_specs_5 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_12[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICaction_NotAdmitted_ItemIEs__value, choice.RICaction_NotAdmitted_Item), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICaction_NotAdmitted_Item, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICaction-NotAdmitted-Item" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_12[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RICaction-NotAdmitted-Item */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_12 = { - sizeof(struct RICaction_NotAdmitted_ItemIEs__value), - offsetof(struct RICaction_NotAdmitted_ItemIEs__value, _asn_ctx), - offsetof(struct RICaction_NotAdmitted_ItemIEs__value, present), - sizeof(((struct RICaction_NotAdmitted_ItemIEs__value *)0)->present), - asn_MAP_value_tag2el_12, - 1, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_12 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_12, - 1, /* Elements count */ - &asn_SPC_value_specs_12 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_RICaction_NotAdmitted_ItemIEs_9[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICaction_NotAdmitted_ItemIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_10, memb_id_constraint_9 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICaction_NotAdmitted_ItemIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_RICaction_NotAdmitted_ItemIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_11, memb_criticality_constraint_9 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICaction_NotAdmitted_ItemIEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_12, - select_RICaction_NotAdmitted_ItemIEs_value_type, - { 0, &asn_PER_memb_value_constr_12, memb_value_constraint_9 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICaction_NotAdmitted_ItemIEs_tags_9[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICaction_NotAdmitted_ItemIEs_tag2el_9[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICaction_NotAdmitted_ItemIEs_specs_9 = { - sizeof(struct RICaction_NotAdmitted_ItemIEs), - offsetof(struct RICaction_NotAdmitted_ItemIEs, _asn_ctx), - asn_MAP_RICaction_NotAdmitted_ItemIEs_tag2el_9, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICaction_NotAdmitted_ItemIEs = { - "RICaction-NotAdmitted-ItemIEs", - "RICaction-NotAdmitted-ItemIEs", - &asn_OP_SEQUENCE, - asn_DEF_RICaction_NotAdmitted_ItemIEs_tags_9, - sizeof(asn_DEF_RICaction_NotAdmitted_ItemIEs_tags_9) - /sizeof(asn_DEF_RICaction_NotAdmitted_ItemIEs_tags_9[0]), /* 1 */ - asn_DEF_RICaction_NotAdmitted_ItemIEs_tags_9, /* Same as above */ - sizeof(asn_DEF_RICaction_NotAdmitted_ItemIEs_tags_9) - /sizeof(asn_DEF_RICaction_NotAdmitted_ItemIEs_tags_9[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICaction_NotAdmitted_ItemIEs_9, - 3, /* Elements count */ - &asn_SPC_RICaction_NotAdmitted_ItemIEs_specs_9 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_16[] = { - { ATF_NOFLAGS, 0, offsetof(struct RANfunction_ItemIEs__value, choice.RANfunction_Item), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RANfunction_Item, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RANfunction-Item" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_16[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RANfunction-Item */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_16 = { - sizeof(struct RANfunction_ItemIEs__value), - offsetof(struct RANfunction_ItemIEs__value, _asn_ctx), - offsetof(struct RANfunction_ItemIEs__value, present), - sizeof(((struct RANfunction_ItemIEs__value *)0)->present), - asn_MAP_value_tag2el_16, - 1, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_16 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_16, - 1, /* Elements count */ - &asn_SPC_value_specs_16 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_RANfunction_ItemIEs_13[] = { - { ATF_NOFLAGS, 0, offsetof(struct RANfunction_ItemIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_14, memb_id_constraint_13 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct RANfunction_ItemIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_RANfunction_ItemIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_15, memb_criticality_constraint_13 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RANfunction_ItemIEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_16, - select_RANfunction_ItemIEs_value_type, - { 0, &asn_PER_memb_value_constr_16, memb_value_constraint_13 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_RANfunction_ItemIEs_tags_13[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RANfunction_ItemIEs_tag2el_13[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RANfunction_ItemIEs_specs_13 = { - sizeof(struct RANfunction_ItemIEs), - offsetof(struct RANfunction_ItemIEs, _asn_ctx), - asn_MAP_RANfunction_ItemIEs_tag2el_13, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RANfunction_ItemIEs = { - "RANfunction-ItemIEs", - "RANfunction-ItemIEs", - &asn_OP_SEQUENCE, - asn_DEF_RANfunction_ItemIEs_tags_13, - sizeof(asn_DEF_RANfunction_ItemIEs_tags_13) - /sizeof(asn_DEF_RANfunction_ItemIEs_tags_13[0]), /* 1 */ - asn_DEF_RANfunction_ItemIEs_tags_13, /* Same as above */ - sizeof(asn_DEF_RANfunction_ItemIEs_tags_13) - /sizeof(asn_DEF_RANfunction_ItemIEs_tags_13[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RANfunction_ItemIEs_13, - 3, /* Elements count */ - &asn_SPC_RANfunction_ItemIEs_specs_13 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_20[] = { - { ATF_NOFLAGS, 0, offsetof(struct RANfunctionID_ItemIEs__value, choice.RANfunctionID_Item), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RANfunctionID_Item, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RANfunctionID-Item" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_20[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RANfunctionID-Item */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_20 = { - sizeof(struct RANfunctionID_ItemIEs__value), - offsetof(struct RANfunctionID_ItemIEs__value, _asn_ctx), - offsetof(struct RANfunctionID_ItemIEs__value, present), - sizeof(((struct RANfunctionID_ItemIEs__value *)0)->present), - asn_MAP_value_tag2el_20, - 1, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_20 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_20, - 1, /* Elements count */ - &asn_SPC_value_specs_20 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_RANfunctionID_ItemIEs_17[] = { - { ATF_NOFLAGS, 0, offsetof(struct RANfunctionID_ItemIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_18, memb_id_constraint_17 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct RANfunctionID_ItemIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_RANfunctionID_ItemIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_19, memb_criticality_constraint_17 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RANfunctionID_ItemIEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_20, - select_RANfunctionID_ItemIEs_value_type, - { 0, &asn_PER_memb_value_constr_20, memb_value_constraint_17 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_RANfunctionID_ItemIEs_tags_17[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RANfunctionID_ItemIEs_tag2el_17[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RANfunctionID_ItemIEs_specs_17 = { - sizeof(struct RANfunctionID_ItemIEs), - offsetof(struct RANfunctionID_ItemIEs, _asn_ctx), - asn_MAP_RANfunctionID_ItemIEs_tag2el_17, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RANfunctionID_ItemIEs = { - "RANfunctionID-ItemIEs", - "RANfunctionID-ItemIEs", - &asn_OP_SEQUENCE, - asn_DEF_RANfunctionID_ItemIEs_tags_17, - sizeof(asn_DEF_RANfunctionID_ItemIEs_tags_17) - /sizeof(asn_DEF_RANfunctionID_ItemIEs_tags_17[0]), /* 1 */ - asn_DEF_RANfunctionID_ItemIEs_tags_17, /* Same as above */ - sizeof(asn_DEF_RANfunctionID_ItemIEs_tags_17) - /sizeof(asn_DEF_RANfunctionID_ItemIEs_tags_17[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RANfunctionID_ItemIEs_17, - 3, /* Elements count */ - &asn_SPC_RANfunctionID_ItemIEs_specs_17 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_24[] = { - { ATF_NOFLAGS, 0, offsetof(struct RANfunctionIDcause_ItemIEs__value, choice.RANfunctionIDcause_Item), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RANfunctionIDcause_Item, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RANfunctionIDcause-Item" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_24[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RANfunctionIDcause-Item */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_24 = { - sizeof(struct RANfunctionIDcause_ItemIEs__value), - offsetof(struct RANfunctionIDcause_ItemIEs__value, _asn_ctx), - offsetof(struct RANfunctionIDcause_ItemIEs__value, present), - sizeof(((struct RANfunctionIDcause_ItemIEs__value *)0)->present), - asn_MAP_value_tag2el_24, - 1, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_24 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_24, - 1, /* Elements count */ - &asn_SPC_value_specs_24 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_RANfunctionIDcause_ItemIEs_21[] = { - { ATF_NOFLAGS, 0, offsetof(struct RANfunctionIDcause_ItemIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_22, memb_id_constraint_21 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct RANfunctionIDcause_ItemIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_RANfunctionIDcause_ItemIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_23, memb_criticality_constraint_21 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RANfunctionIDcause_ItemIEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_24, - select_RANfunctionIDcause_ItemIEs_value_type, - { 0, &asn_PER_memb_value_constr_24, memb_value_constraint_21 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_RANfunctionIDcause_ItemIEs_tags_21[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RANfunctionIDcause_ItemIEs_tag2el_21[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RANfunctionIDcause_ItemIEs_specs_21 = { - sizeof(struct RANfunctionIDcause_ItemIEs), - offsetof(struct RANfunctionIDcause_ItemIEs, _asn_ctx), - asn_MAP_RANfunctionIDcause_ItemIEs_tag2el_21, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RANfunctionIDcause_ItemIEs = { - "RANfunctionIDcause-ItemIEs", - "RANfunctionIDcause-ItemIEs", - &asn_OP_SEQUENCE, - asn_DEF_RANfunctionIDcause_ItemIEs_tags_21, - sizeof(asn_DEF_RANfunctionIDcause_ItemIEs_tags_21) - /sizeof(asn_DEF_RANfunctionIDcause_ItemIEs_tags_21[0]), /* 1 */ - asn_DEF_RANfunctionIDcause_ItemIEs_tags_21, /* Same as above */ - sizeof(asn_DEF_RANfunctionIDcause_ItemIEs_tags_21) - /sizeof(asn_DEF_RANfunctionIDcause_ItemIEs_tags_21[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RANfunctionIDcause_ItemIEs_21, - 3, /* Elements count */ - &asn_SPC_RANfunctionIDcause_ItemIEs_specs_21 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_28[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionRequest_IEs__value, choice.RICrequestID), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICrequestID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICrequestID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionRequest_IEs__value, choice.RANfunctionID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_RANfunctionID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RANfunctionID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionRequest_IEs__value, choice.RICsubscriptionDetails), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICsubscriptionDetails, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICsubscriptionDetails" - }, -}; -static const unsigned asn_MAP_value_to_canonical_28[] = { 1, 0, 2 }; -static const unsigned asn_MAP_value_from_canonical_28[] = { 1, 0, 2 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_28[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* RANfunctionID */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 1 }, /* RICrequestID */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -1, 0 } /* RICsubscriptionDetails */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_28 = { - sizeof(struct RICsubscriptionRequest_IEs__value), - offsetof(struct RICsubscriptionRequest_IEs__value, _asn_ctx), - offsetof(struct RICsubscriptionRequest_IEs__value, present), - sizeof(((struct RICsubscriptionRequest_IEs__value *)0)->present), - asn_MAP_value_tag2el_28, - 3, /* Count of tags in the map */ - asn_MAP_value_to_canonical_28, - asn_MAP_value_from_canonical_28, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_28 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_28, - 3, /* Elements count */ - &asn_SPC_value_specs_28 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_RICsubscriptionRequest_IEs_25[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionRequest_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_26, memb_id_constraint_25 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionRequest_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_RICsubscriptionRequest_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_27, memb_criticality_constraint_25 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionRequest_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_28, - select_RICsubscriptionRequest_IEs_value_type, - { 0, &asn_PER_memb_value_constr_28, memb_value_constraint_25 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICsubscriptionRequest_IEs_tags_25[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionRequest_IEs_tag2el_25[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionRequest_IEs_specs_25 = { - sizeof(struct RICsubscriptionRequest_IEs), - offsetof(struct RICsubscriptionRequest_IEs, _asn_ctx), - asn_MAP_RICsubscriptionRequest_IEs_tag2el_25, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICsubscriptionRequest_IEs = { - "RICsubscriptionRequest-IEs", - "RICsubscriptionRequest-IEs", - &asn_OP_SEQUENCE, - asn_DEF_RICsubscriptionRequest_IEs_tags_25, - sizeof(asn_DEF_RICsubscriptionRequest_IEs_tags_25) - /sizeof(asn_DEF_RICsubscriptionRequest_IEs_tags_25[0]), /* 1 */ - asn_DEF_RICsubscriptionRequest_IEs_tags_25, /* Same as above */ - sizeof(asn_DEF_RICsubscriptionRequest_IEs_tags_25) - /sizeof(asn_DEF_RICsubscriptionRequest_IEs_tags_25[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICsubscriptionRequest_IEs_25, - 3, /* Elements count */ - &asn_SPC_RICsubscriptionRequest_IEs_specs_25 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_32[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionResponse_IEs__value, choice.RICrequestID), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICrequestID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICrequestID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionResponse_IEs__value, choice.RANfunctionID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_RANfunctionID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RANfunctionID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionResponse_IEs__value, choice.RICaction_Admitted_List), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICaction_Admitted_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICaction-Admitted-List" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionResponse_IEs__value, choice.RICaction_NotAdmitted_List), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICaction_NotAdmitted_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICaction-NotAdmitted-List" - }, -}; -static const unsigned asn_MAP_value_to_canonical_32[] = { 1, 0, 2, 3 }; -static const unsigned asn_MAP_value_from_canonical_32[] = { 1, 0, 2, 3 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_32[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* RANfunctionID */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 2 }, /* RICrequestID */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -1, 1 }, /* RICaction-Admitted-List */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -2, 0 } /* RICaction-NotAdmitted-List */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_32 = { - sizeof(struct RICsubscriptionResponse_IEs__value), - offsetof(struct RICsubscriptionResponse_IEs__value, _asn_ctx), - offsetof(struct RICsubscriptionResponse_IEs__value, present), - sizeof(((struct RICsubscriptionResponse_IEs__value *)0)->present), - asn_MAP_value_tag2el_32, - 4, /* Count of tags in the map */ - asn_MAP_value_to_canonical_32, - asn_MAP_value_from_canonical_32, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_32 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_32, - 4, /* Elements count */ - &asn_SPC_value_specs_32 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_RICsubscriptionResponse_IEs_29[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionResponse_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_30, memb_id_constraint_29 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionResponse_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_RICsubscriptionResponse_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_31, memb_criticality_constraint_29 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionResponse_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_32, - select_RICsubscriptionResponse_IEs_value_type, - { 0, &asn_PER_memb_value_constr_32, memb_value_constraint_29 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICsubscriptionResponse_IEs_tags_29[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionResponse_IEs_tag2el_29[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionResponse_IEs_specs_29 = { - sizeof(struct RICsubscriptionResponse_IEs), - offsetof(struct RICsubscriptionResponse_IEs, _asn_ctx), - asn_MAP_RICsubscriptionResponse_IEs_tag2el_29, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICsubscriptionResponse_IEs = { - "RICsubscriptionResponse-IEs", - "RICsubscriptionResponse-IEs", - &asn_OP_SEQUENCE, - asn_DEF_RICsubscriptionResponse_IEs_tags_29, - sizeof(asn_DEF_RICsubscriptionResponse_IEs_tags_29) - /sizeof(asn_DEF_RICsubscriptionResponse_IEs_tags_29[0]), /* 1 */ - asn_DEF_RICsubscriptionResponse_IEs_tags_29, /* Same as above */ - sizeof(asn_DEF_RICsubscriptionResponse_IEs_tags_29) - /sizeof(asn_DEF_RICsubscriptionResponse_IEs_tags_29[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICsubscriptionResponse_IEs_29, - 3, /* Elements count */ - &asn_SPC_RICsubscriptionResponse_IEs_specs_29 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_36[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionFailure_IEs__value, choice.RICrequestID), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICrequestID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICrequestID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionFailure_IEs__value, choice.RANfunctionID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_RANfunctionID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RANfunctionID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionFailure_IEs__value, choice.RICaction_NotAdmitted_List), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICaction_NotAdmitted_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICaction-NotAdmitted-List" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionFailure_IEs__value, choice.CriticalityDiagnostics), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CriticalityDiagnostics, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "CriticalityDiagnostics" - }, -}; -static const unsigned asn_MAP_value_to_canonical_36[] = { 1, 0, 2, 3 }; -static const unsigned asn_MAP_value_from_canonical_36[] = { 1, 0, 2, 3 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_36[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* RANfunctionID */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 2 }, /* RICrequestID */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -1, 1 }, /* RICaction-NotAdmitted-List */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -2, 0 } /* CriticalityDiagnostics */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_36 = { - sizeof(struct RICsubscriptionFailure_IEs__value), - offsetof(struct RICsubscriptionFailure_IEs__value, _asn_ctx), - offsetof(struct RICsubscriptionFailure_IEs__value, present), - sizeof(((struct RICsubscriptionFailure_IEs__value *)0)->present), - asn_MAP_value_tag2el_36, - 4, /* Count of tags in the map */ - asn_MAP_value_to_canonical_36, - asn_MAP_value_from_canonical_36, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_36 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_36, - 4, /* Elements count */ - &asn_SPC_value_specs_36 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_RICsubscriptionFailure_IEs_33[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionFailure_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_34, memb_id_constraint_33 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionFailure_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_RICsubscriptionFailure_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_35, memb_criticality_constraint_33 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionFailure_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_36, - select_RICsubscriptionFailure_IEs_value_type, - { 0, &asn_PER_memb_value_constr_36, memb_value_constraint_33 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICsubscriptionFailure_IEs_tags_33[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionFailure_IEs_tag2el_33[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionFailure_IEs_specs_33 = { - sizeof(struct RICsubscriptionFailure_IEs), - offsetof(struct RICsubscriptionFailure_IEs, _asn_ctx), - asn_MAP_RICsubscriptionFailure_IEs_tag2el_33, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICsubscriptionFailure_IEs = { - "RICsubscriptionFailure-IEs", - "RICsubscriptionFailure-IEs", - &asn_OP_SEQUENCE, - asn_DEF_RICsubscriptionFailure_IEs_tags_33, - sizeof(asn_DEF_RICsubscriptionFailure_IEs_tags_33) - /sizeof(asn_DEF_RICsubscriptionFailure_IEs_tags_33[0]), /* 1 */ - asn_DEF_RICsubscriptionFailure_IEs_tags_33, /* Same as above */ - sizeof(asn_DEF_RICsubscriptionFailure_IEs_tags_33) - /sizeof(asn_DEF_RICsubscriptionFailure_IEs_tags_33[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICsubscriptionFailure_IEs_33, - 3, /* Elements count */ - &asn_SPC_RICsubscriptionFailure_IEs_specs_33 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_40[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteRequest_IEs__value, choice.RICrequestID), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICrequestID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICrequestID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteRequest_IEs__value, choice.RANfunctionID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_RANfunctionID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RANfunctionID" - }, -}; -static const unsigned asn_MAP_value_to_canonical_40[] = { 1, 0 }; -static const unsigned asn_MAP_value_from_canonical_40[] = { 1, 0 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_40[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* RANfunctionID */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RICrequestID */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_40 = { - sizeof(struct RICsubscriptionDeleteRequest_IEs__value), - offsetof(struct RICsubscriptionDeleteRequest_IEs__value, _asn_ctx), - offsetof(struct RICsubscriptionDeleteRequest_IEs__value, present), - sizeof(((struct RICsubscriptionDeleteRequest_IEs__value *)0)->present), - asn_MAP_value_tag2el_40, - 2, /* Count of tags in the map */ - asn_MAP_value_to_canonical_40, - asn_MAP_value_from_canonical_40, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_40 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_40, - 2, /* Elements count */ - &asn_SPC_value_specs_40 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteRequest_IEs_37[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteRequest_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_38, memb_id_constraint_37 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteRequest_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_RICsubscriptionDeleteRequest_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_39, memb_criticality_constraint_37 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteRequest_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_40, - select_RICsubscriptionDeleteRequest_IEs_value_type, - { 0, &asn_PER_memb_value_constr_40, memb_value_constraint_37 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICsubscriptionDeleteRequest_IEs_tags_37[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionDeleteRequest_IEs_tag2el_37[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteRequest_IEs_specs_37 = { - sizeof(struct RICsubscriptionDeleteRequest_IEs), - offsetof(struct RICsubscriptionDeleteRequest_IEs, _asn_ctx), - asn_MAP_RICsubscriptionDeleteRequest_IEs_tag2el_37, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDeleteRequest_IEs = { - "RICsubscriptionDeleteRequest-IEs", - "RICsubscriptionDeleteRequest-IEs", - &asn_OP_SEQUENCE, - asn_DEF_RICsubscriptionDeleteRequest_IEs_tags_37, - sizeof(asn_DEF_RICsubscriptionDeleteRequest_IEs_tags_37) - /sizeof(asn_DEF_RICsubscriptionDeleteRequest_IEs_tags_37[0]), /* 1 */ - asn_DEF_RICsubscriptionDeleteRequest_IEs_tags_37, /* Same as above */ - sizeof(asn_DEF_RICsubscriptionDeleteRequest_IEs_tags_37) - /sizeof(asn_DEF_RICsubscriptionDeleteRequest_IEs_tags_37[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICsubscriptionDeleteRequest_IEs_37, - 3, /* Elements count */ - &asn_SPC_RICsubscriptionDeleteRequest_IEs_specs_37 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_44[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteResponse_IEs__value, choice.RICrequestID), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICrequestID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICrequestID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteResponse_IEs__value, choice.RANfunctionID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_RANfunctionID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RANfunctionID" - }, -}; -static const unsigned asn_MAP_value_to_canonical_44[] = { 1, 0 }; -static const unsigned asn_MAP_value_from_canonical_44[] = { 1, 0 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_44[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* RANfunctionID */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RICrequestID */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_44 = { - sizeof(struct RICsubscriptionDeleteResponse_IEs__value), - offsetof(struct RICsubscriptionDeleteResponse_IEs__value, _asn_ctx), - offsetof(struct RICsubscriptionDeleteResponse_IEs__value, present), - sizeof(((struct RICsubscriptionDeleteResponse_IEs__value *)0)->present), - asn_MAP_value_tag2el_44, - 2, /* Count of tags in the map */ - asn_MAP_value_to_canonical_44, - asn_MAP_value_from_canonical_44, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_44 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_44, - 2, /* Elements count */ - &asn_SPC_value_specs_44 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteResponse_IEs_41[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteResponse_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_42, memb_id_constraint_41 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteResponse_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_RICsubscriptionDeleteResponse_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_43, memb_criticality_constraint_41 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteResponse_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_44, - select_RICsubscriptionDeleteResponse_IEs_value_type, - { 0, &asn_PER_memb_value_constr_44, memb_value_constraint_41 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICsubscriptionDeleteResponse_IEs_tags_41[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionDeleteResponse_IEs_tag2el_41[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteResponse_IEs_specs_41 = { - sizeof(struct RICsubscriptionDeleteResponse_IEs), - offsetof(struct RICsubscriptionDeleteResponse_IEs, _asn_ctx), - asn_MAP_RICsubscriptionDeleteResponse_IEs_tag2el_41, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDeleteResponse_IEs = { - "RICsubscriptionDeleteResponse-IEs", - "RICsubscriptionDeleteResponse-IEs", - &asn_OP_SEQUENCE, - asn_DEF_RICsubscriptionDeleteResponse_IEs_tags_41, - sizeof(asn_DEF_RICsubscriptionDeleteResponse_IEs_tags_41) - /sizeof(asn_DEF_RICsubscriptionDeleteResponse_IEs_tags_41[0]), /* 1 */ - asn_DEF_RICsubscriptionDeleteResponse_IEs_tags_41, /* Same as above */ - sizeof(asn_DEF_RICsubscriptionDeleteResponse_IEs_tags_41) - /sizeof(asn_DEF_RICsubscriptionDeleteResponse_IEs_tags_41[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICsubscriptionDeleteResponse_IEs_41, - 3, /* Elements count */ - &asn_SPC_RICsubscriptionDeleteResponse_IEs_specs_41 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_48[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteFailure_IEs__value, choice.RICrequestID), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICrequestID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICrequestID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteFailure_IEs__value, choice.RANfunctionID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_RANfunctionID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RANfunctionID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteFailure_IEs__value, choice.Cause), - -1 /* Ambiguous tag (CHOICE?) */, - 0, - &asn_DEF_Cause, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "Cause" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteFailure_IEs__value, choice.CriticalityDiagnostics), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CriticalityDiagnostics, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "CriticalityDiagnostics" - }, -}; -static const unsigned asn_MAP_value_to_canonical_48[] = { 1, 0, 3, 2 }; -static const unsigned asn_MAP_value_from_canonical_48[] = { 1, 0, 3, 2 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_48[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* RANfunctionID */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 1 }, /* RICrequestID */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -1, 0 }, /* CriticalityDiagnostics */ - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 2, 0, 0 }, /* ricRequest */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 2, 0, 0 }, /* ricService */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* transport */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 2, 0, 0 }, /* protocol */ - { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 2, 0, 0 } /* misc */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_48 = { - sizeof(struct RICsubscriptionDeleteFailure_IEs__value), - offsetof(struct RICsubscriptionDeleteFailure_IEs__value, _asn_ctx), - offsetof(struct RICsubscriptionDeleteFailure_IEs__value, present), - sizeof(((struct RICsubscriptionDeleteFailure_IEs__value *)0)->present), - asn_MAP_value_tag2el_48, - 8, /* Count of tags in the map */ - asn_MAP_value_to_canonical_48, - asn_MAP_value_from_canonical_48, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_48 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_48, - 4, /* Elements count */ - &asn_SPC_value_specs_48 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteFailure_IEs_45[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteFailure_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_46, memb_id_constraint_45 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteFailure_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_RICsubscriptionDeleteFailure_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_47, memb_criticality_constraint_45 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteFailure_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_48, - select_RICsubscriptionDeleteFailure_IEs_value_type, - { 0, &asn_PER_memb_value_constr_48, memb_value_constraint_45 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICsubscriptionDeleteFailure_IEs_tags_45[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionDeleteFailure_IEs_tag2el_45[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteFailure_IEs_specs_45 = { - sizeof(struct RICsubscriptionDeleteFailure_IEs), - offsetof(struct RICsubscriptionDeleteFailure_IEs, _asn_ctx), - asn_MAP_RICsubscriptionDeleteFailure_IEs_tag2el_45, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDeleteFailure_IEs = { - "RICsubscriptionDeleteFailure-IEs", - "RICsubscriptionDeleteFailure-IEs", - &asn_OP_SEQUENCE, - asn_DEF_RICsubscriptionDeleteFailure_IEs_tags_45, - sizeof(asn_DEF_RICsubscriptionDeleteFailure_IEs_tags_45) - /sizeof(asn_DEF_RICsubscriptionDeleteFailure_IEs_tags_45[0]), /* 1 */ - asn_DEF_RICsubscriptionDeleteFailure_IEs_tags_45, /* Same as above */ - sizeof(asn_DEF_RICsubscriptionDeleteFailure_IEs_tags_45) - /sizeof(asn_DEF_RICsubscriptionDeleteFailure_IEs_tags_45[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICsubscriptionDeleteFailure_IEs_45, - 3, /* Elements count */ - &asn_SPC_RICsubscriptionDeleteFailure_IEs_specs_45 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_52[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICindication_IEs__value, choice.RICrequestID), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICrequestID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICrequestID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICindication_IEs__value, choice.RANfunctionID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_RANfunctionID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RANfunctionID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICindication_IEs__value, choice.RICactionID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_RICactionID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICactionID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICindication_IEs__value, choice.RICindicationSN), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_RICindicationSN, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICindicationSN" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICindication_IEs__value, choice.RICindicationType), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_RICindicationType, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICindicationType" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICindication_IEs__value, choice.RICindicationHeader), - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), - 0, - &asn_DEF_RICindicationHeader, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICindicationHeader" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICindication_IEs__value, choice.RICindicationMessage), - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), - 0, - &asn_DEF_RICindicationMessage, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICindicationMessage" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICindication_IEs__value, choice.RICcallProcessID), - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), - 0, - &asn_DEF_RICcallProcessID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICcallProcessID" - }, -}; -static const unsigned asn_MAP_value_to_canonical_52[] = { 1, 2, 3, 5, 6, 7, 4, 0 }; -static const unsigned asn_MAP_value_from_canonical_52[] = { 7, 0, 1, 2, 6, 3, 4, 5 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_52[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 2 }, /* RANfunctionID */ - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 2, -1, 1 }, /* RICactionID */ - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 3, -2, 0 }, /* RICindicationSN */ - { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 5, 0, 2 }, /* RICindicationHeader */ - { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 6, -1, 1 }, /* RICindicationMessage */ - { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 7, -2, 0 }, /* RICcallProcessID */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 4, 0, 0 }, /* RICindicationType */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RICrequestID */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_52 = { - sizeof(struct RICindication_IEs__value), - offsetof(struct RICindication_IEs__value, _asn_ctx), - offsetof(struct RICindication_IEs__value, present), - sizeof(((struct RICindication_IEs__value *)0)->present), - asn_MAP_value_tag2el_52, - 8, /* Count of tags in the map */ - asn_MAP_value_to_canonical_52, - asn_MAP_value_from_canonical_52, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_52 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_52, - 8, /* Elements count */ - &asn_SPC_value_specs_52 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_RICindication_IEs_49[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICindication_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_50, memb_id_constraint_49 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICindication_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_RICindication_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_51, memb_criticality_constraint_49 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICindication_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_52, - select_RICindication_IEs_value_type, - { 0, &asn_PER_memb_value_constr_52, memb_value_constraint_49 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICindication_IEs_tags_49[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICindication_IEs_tag2el_49[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICindication_IEs_specs_49 = { - sizeof(struct RICindication_IEs), - offsetof(struct RICindication_IEs, _asn_ctx), - asn_MAP_RICindication_IEs_tag2el_49, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICindication_IEs = { - "RICindication-IEs", - "RICindication-IEs", - &asn_OP_SEQUENCE, - asn_DEF_RICindication_IEs_tags_49, - sizeof(asn_DEF_RICindication_IEs_tags_49) - /sizeof(asn_DEF_RICindication_IEs_tags_49[0]), /* 1 */ - asn_DEF_RICindication_IEs_tags_49, /* Same as above */ - sizeof(asn_DEF_RICindication_IEs_tags_49) - /sizeof(asn_DEF_RICindication_IEs_tags_49[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICindication_IEs_49, - 3, /* Elements count */ - &asn_SPC_RICindication_IEs_specs_49 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_56[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolRequest_IEs__value, choice.RICrequestID), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICrequestID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICrequestID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolRequest_IEs__value, choice.RANfunctionID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_RANfunctionID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RANfunctionID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolRequest_IEs__value, choice.RICcallProcessID), - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), - 0, - &asn_DEF_RICcallProcessID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICcallProcessID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolRequest_IEs__value, choice.RICcontrolHeader), - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), - 0, - &asn_DEF_RICcontrolHeader, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICcontrolHeader" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolRequest_IEs__value, choice.RICcontrolMessage), - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), - 0, - &asn_DEF_RICcontrolMessage, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICcontrolMessage" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolRequest_IEs__value, choice.RICcontrolAckRequest), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_RICcontrolAckRequest, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICcontrolAckRequest" - }, -}; -static const unsigned asn_MAP_value_to_canonical_56[] = { 1, 2, 3, 4, 5, 0 }; -static const unsigned asn_MAP_value_from_canonical_56[] = { 5, 0, 1, 2, 3, 4 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_56[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* RANfunctionID */ - { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 2, 0, 2 }, /* RICcallProcessID */ - { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 3, -1, 1 }, /* RICcontrolHeader */ - { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 4, -2, 0 }, /* RICcontrolMessage */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 5, 0, 0 }, /* RICcontrolAckRequest */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RICrequestID */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_56 = { - sizeof(struct RICcontrolRequest_IEs__value), - offsetof(struct RICcontrolRequest_IEs__value, _asn_ctx), - offsetof(struct RICcontrolRequest_IEs__value, present), - sizeof(((struct RICcontrolRequest_IEs__value *)0)->present), - asn_MAP_value_tag2el_56, - 6, /* Count of tags in the map */ - asn_MAP_value_to_canonical_56, - asn_MAP_value_from_canonical_56, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_56 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_56, - 6, /* Elements count */ - &asn_SPC_value_specs_56 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_RICcontrolRequest_IEs_53[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolRequest_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_54, memb_id_constraint_53 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolRequest_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_RICcontrolRequest_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_55, memb_criticality_constraint_53 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICcontrolRequest_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_56, - select_RICcontrolRequest_IEs_value_type, - { 0, &asn_PER_memb_value_constr_56, memb_value_constraint_53 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICcontrolRequest_IEs_tags_53[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICcontrolRequest_IEs_tag2el_53[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICcontrolRequest_IEs_specs_53 = { - sizeof(struct RICcontrolRequest_IEs), - offsetof(struct RICcontrolRequest_IEs, _asn_ctx), - asn_MAP_RICcontrolRequest_IEs_tag2el_53, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICcontrolRequest_IEs = { - "RICcontrolRequest-IEs", - "RICcontrolRequest-IEs", - &asn_OP_SEQUENCE, - asn_DEF_RICcontrolRequest_IEs_tags_53, - sizeof(asn_DEF_RICcontrolRequest_IEs_tags_53) - /sizeof(asn_DEF_RICcontrolRequest_IEs_tags_53[0]), /* 1 */ - asn_DEF_RICcontrolRequest_IEs_tags_53, /* Same as above */ - sizeof(asn_DEF_RICcontrolRequest_IEs_tags_53) - /sizeof(asn_DEF_RICcontrolRequest_IEs_tags_53[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICcontrolRequest_IEs_53, - 3, /* Elements count */ - &asn_SPC_RICcontrolRequest_IEs_specs_53 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_60[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolAcknowledge_IEs__value, choice.RICrequestID), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICrequestID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICrequestID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolAcknowledge_IEs__value, choice.RANfunctionID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_RANfunctionID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RANfunctionID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolAcknowledge_IEs__value, choice.RICcallProcessID), - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), - 0, - &asn_DEF_RICcallProcessID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICcallProcessID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolAcknowledge_IEs__value, choice.RICcontrolStatus), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_RICcontrolStatus, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICcontrolStatus" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolAcknowledge_IEs__value, choice.RICcontrolOutcome), - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), - 0, - &asn_DEF_RICcontrolOutcome, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICcontrolOutcome" - }, -}; -static const unsigned asn_MAP_value_to_canonical_60[] = { 1, 2, 4, 3, 0 }; -static const unsigned asn_MAP_value_from_canonical_60[] = { 4, 0, 1, 3, 2 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_60[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* RANfunctionID */ - { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 2, 0, 1 }, /* RICcallProcessID */ - { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 4, -1, 0 }, /* RICcontrolOutcome */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 3, 0, 0 }, /* RICcontrolStatus */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RICrequestID */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_60 = { - sizeof(struct RICcontrolAcknowledge_IEs__value), - offsetof(struct RICcontrolAcknowledge_IEs__value, _asn_ctx), - offsetof(struct RICcontrolAcknowledge_IEs__value, present), - sizeof(((struct RICcontrolAcknowledge_IEs__value *)0)->present), - asn_MAP_value_tag2el_60, - 5, /* Count of tags in the map */ - asn_MAP_value_to_canonical_60, - asn_MAP_value_from_canonical_60, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_60 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_60, - 5, /* Elements count */ - &asn_SPC_value_specs_60 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_RICcontrolAcknowledge_IEs_57[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolAcknowledge_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_58, memb_id_constraint_57 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolAcknowledge_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_RICcontrolAcknowledge_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_59, memb_criticality_constraint_57 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICcontrolAcknowledge_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_60, - select_RICcontrolAcknowledge_IEs_value_type, - { 0, &asn_PER_memb_value_constr_60, memb_value_constraint_57 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICcontrolAcknowledge_IEs_tags_57[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICcontrolAcknowledge_IEs_tag2el_57[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICcontrolAcknowledge_IEs_specs_57 = { - sizeof(struct RICcontrolAcknowledge_IEs), - offsetof(struct RICcontrolAcknowledge_IEs, _asn_ctx), - asn_MAP_RICcontrolAcknowledge_IEs_tag2el_57, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICcontrolAcknowledge_IEs = { - "RICcontrolAcknowledge-IEs", - "RICcontrolAcknowledge-IEs", - &asn_OP_SEQUENCE, - asn_DEF_RICcontrolAcknowledge_IEs_tags_57, - sizeof(asn_DEF_RICcontrolAcknowledge_IEs_tags_57) - /sizeof(asn_DEF_RICcontrolAcknowledge_IEs_tags_57[0]), /* 1 */ - asn_DEF_RICcontrolAcknowledge_IEs_tags_57, /* Same as above */ - sizeof(asn_DEF_RICcontrolAcknowledge_IEs_tags_57) - /sizeof(asn_DEF_RICcontrolAcknowledge_IEs_tags_57[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICcontrolAcknowledge_IEs_57, - 3, /* Elements count */ - &asn_SPC_RICcontrolAcknowledge_IEs_specs_57 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_64[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolFailure_IEs__value, choice.RICrequestID), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICrequestID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICrequestID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolFailure_IEs__value, choice.RANfunctionID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_RANfunctionID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RANfunctionID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolFailure_IEs__value, choice.RICcallProcessID), - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), - 0, - &asn_DEF_RICcallProcessID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICcallProcessID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolFailure_IEs__value, choice.Cause), - -1 /* Ambiguous tag (CHOICE?) */, - 0, - &asn_DEF_Cause, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "Cause" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolFailure_IEs__value, choice.RICcontrolOutcome), - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), - 0, - &asn_DEF_RICcontrolOutcome, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICcontrolOutcome" - }, -}; -static const unsigned asn_MAP_value_to_canonical_64[] = { 1, 2, 4, 0, 3 }; -static const unsigned asn_MAP_value_from_canonical_64[] = { 3, 0, 1, 4, 2 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_64[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* RANfunctionID */ - { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 2, 0, 1 }, /* RICcallProcessID */ - { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 4, -1, 0 }, /* RICcontrolOutcome */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 }, /* RICrequestID */ - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 3, 0, 0 }, /* ricRequest */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 3, 0, 0 }, /* ricService */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 3, 0, 0 }, /* transport */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* protocol */ - { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 3, 0, 0 } /* misc */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_64 = { - sizeof(struct RICcontrolFailure_IEs__value), - offsetof(struct RICcontrolFailure_IEs__value, _asn_ctx), - offsetof(struct RICcontrolFailure_IEs__value, present), - sizeof(((struct RICcontrolFailure_IEs__value *)0)->present), - asn_MAP_value_tag2el_64, - 9, /* Count of tags in the map */ - asn_MAP_value_to_canonical_64, - asn_MAP_value_from_canonical_64, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_64 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_64, - 5, /* Elements count */ - &asn_SPC_value_specs_64 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_RICcontrolFailure_IEs_61[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolFailure_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_62, memb_id_constraint_61 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolFailure_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_RICcontrolFailure_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_63, memb_criticality_constraint_61 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICcontrolFailure_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_64, - select_RICcontrolFailure_IEs_value_type, - { 0, &asn_PER_memb_value_constr_64, memb_value_constraint_61 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICcontrolFailure_IEs_tags_61[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICcontrolFailure_IEs_tag2el_61[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICcontrolFailure_IEs_specs_61 = { - sizeof(struct RICcontrolFailure_IEs), - offsetof(struct RICcontrolFailure_IEs, _asn_ctx), - asn_MAP_RICcontrolFailure_IEs_tag2el_61, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICcontrolFailure_IEs = { - "RICcontrolFailure-IEs", - "RICcontrolFailure-IEs", - &asn_OP_SEQUENCE, - asn_DEF_RICcontrolFailure_IEs_tags_61, - sizeof(asn_DEF_RICcontrolFailure_IEs_tags_61) - /sizeof(asn_DEF_RICcontrolFailure_IEs_tags_61[0]), /* 1 */ - asn_DEF_RICcontrolFailure_IEs_tags_61, /* Same as above */ - sizeof(asn_DEF_RICcontrolFailure_IEs_tags_61) - /sizeof(asn_DEF_RICcontrolFailure_IEs_tags_61[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICcontrolFailure_IEs_61, - 3, /* Elements count */ - &asn_SPC_RICcontrolFailure_IEs_specs_61 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_68[] = { - { ATF_NOFLAGS, 0, offsetof(struct ErrorIndication_IEs__value, choice.RICrequestID), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICrequestID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICrequestID" - }, - { ATF_NOFLAGS, 0, offsetof(struct ErrorIndication_IEs__value, choice.RANfunctionID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_RANfunctionID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RANfunctionID" - }, - { ATF_NOFLAGS, 0, offsetof(struct ErrorIndication_IEs__value, choice.Cause), - -1 /* Ambiguous tag (CHOICE?) */, - 0, - &asn_DEF_Cause, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "Cause" - }, - { ATF_NOFLAGS, 0, offsetof(struct ErrorIndication_IEs__value, choice.CriticalityDiagnostics), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CriticalityDiagnostics, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "CriticalityDiagnostics" - }, -}; -static const unsigned asn_MAP_value_to_canonical_68[] = { 1, 0, 3, 2 }; -static const unsigned asn_MAP_value_from_canonical_68[] = { 1, 0, 3, 2 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_68[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* RANfunctionID */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 1 }, /* RICrequestID */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -1, 0 }, /* CriticalityDiagnostics */ - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 2, 0, 0 }, /* ricRequest */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 2, 0, 0 }, /* ricService */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* transport */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 2, 0, 0 }, /* protocol */ - { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 2, 0, 0 } /* misc */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_68 = { - sizeof(struct ErrorIndication_IEs__value), - offsetof(struct ErrorIndication_IEs__value, _asn_ctx), - offsetof(struct ErrorIndication_IEs__value, present), - sizeof(((struct ErrorIndication_IEs__value *)0)->present), - asn_MAP_value_tag2el_68, - 8, /* Count of tags in the map */ - asn_MAP_value_to_canonical_68, - asn_MAP_value_from_canonical_68, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_68 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_68, - 4, /* Elements count */ - &asn_SPC_value_specs_68 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ErrorIndication_IEs_65[] = { - { ATF_NOFLAGS, 0, offsetof(struct ErrorIndication_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_66, memb_id_constraint_65 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct ErrorIndication_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_ErrorIndication_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_67, memb_criticality_constraint_65 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ErrorIndication_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_68, - select_ErrorIndication_IEs_value_type, - { 0, &asn_PER_memb_value_constr_68, memb_value_constraint_65 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_ErrorIndication_IEs_tags_65[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ErrorIndication_IEs_tag2el_65[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ErrorIndication_IEs_specs_65 = { - sizeof(struct ErrorIndication_IEs), - offsetof(struct ErrorIndication_IEs, _asn_ctx), - asn_MAP_ErrorIndication_IEs_tag2el_65, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ErrorIndication_IEs = { - "ErrorIndication-IEs", - "ErrorIndication-IEs", - &asn_OP_SEQUENCE, - asn_DEF_ErrorIndication_IEs_tags_65, - sizeof(asn_DEF_ErrorIndication_IEs_tags_65) - /sizeof(asn_DEF_ErrorIndication_IEs_tags_65[0]), /* 1 */ - asn_DEF_ErrorIndication_IEs_tags_65, /* Same as above */ - sizeof(asn_DEF_ErrorIndication_IEs_tags_65) - /sizeof(asn_DEF_ErrorIndication_IEs_tags_65[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ErrorIndication_IEs_65, - 3, /* Elements count */ - &asn_SPC_ErrorIndication_IEs_specs_65 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_72[] = { - { ATF_NOFLAGS, 0, offsetof(struct E2setupRequestIEs__value, choice.GlobalE2node_ID), - -1 /* Ambiguous tag (CHOICE?) */, - 0, - &asn_DEF_GlobalE2node_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "GlobalE2node-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct E2setupRequestIEs__value, choice.RANfunctions_List), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RANfunctions_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RANfunctions-List" - }, -}; -static const unsigned asn_MAP_value_to_canonical_72[] = { 1, 0 }; -static const unsigned asn_MAP_value_from_canonical_72[] = { 1, 0 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_72[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 0 }, /* RANfunctions-List */ - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* gNB */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 0, 0, 0 }, /* en-gNB */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 0, 0, 0 }, /* ng-eNB */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 0, 0, 0 } /* eNB */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_72 = { - sizeof(struct E2setupRequestIEs__value), - offsetof(struct E2setupRequestIEs__value, _asn_ctx), - offsetof(struct E2setupRequestIEs__value, present), - sizeof(((struct E2setupRequestIEs__value *)0)->present), - asn_MAP_value_tag2el_72, - 5, /* Count of tags in the map */ - asn_MAP_value_to_canonical_72, - asn_MAP_value_from_canonical_72, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_72 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_72, - 2, /* Elements count */ - &asn_SPC_value_specs_72 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E2setupRequestIEs_69[] = { - { ATF_NOFLAGS, 0, offsetof(struct E2setupRequestIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_70, memb_id_constraint_69 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E2setupRequestIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_E2setupRequestIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_71, memb_criticality_constraint_69 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E2setupRequestIEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_72, - select_E2setupRequestIEs_value_type, - { 0, &asn_PER_memb_value_constr_72, memb_value_constraint_69 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_E2setupRequestIEs_tags_69[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E2setupRequestIEs_tag2el_69[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E2setupRequestIEs_specs_69 = { - sizeof(struct E2setupRequestIEs), - offsetof(struct E2setupRequestIEs, _asn_ctx), - asn_MAP_E2setupRequestIEs_tag2el_69, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E2setupRequestIEs = { - "E2setupRequestIEs", - "E2setupRequestIEs", - &asn_OP_SEQUENCE, - asn_DEF_E2setupRequestIEs_tags_69, - sizeof(asn_DEF_E2setupRequestIEs_tags_69) - /sizeof(asn_DEF_E2setupRequestIEs_tags_69[0]), /* 1 */ - asn_DEF_E2setupRequestIEs_tags_69, /* Same as above */ - sizeof(asn_DEF_E2setupRequestIEs_tags_69) - /sizeof(asn_DEF_E2setupRequestIEs_tags_69[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E2setupRequestIEs_69, - 3, /* Elements count */ - &asn_SPC_E2setupRequestIEs_specs_69 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_76[] = { - { ATF_NOFLAGS, 0, offsetof(struct E2setupResponseIEs__value, choice.GlobalRIC_ID), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_GlobalRIC_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "GlobalRIC-ID" - }, - { ATF_NOFLAGS, 0, offsetof(struct E2setupResponseIEs__value, choice.RANfunctionsID_List), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RANfunctionsID_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RANfunctionsID-List" - }, - { ATF_NOFLAGS, 0, offsetof(struct E2setupResponseIEs__value, choice.RANfunctionsIDcause_List), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RANfunctionsIDcause_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RANfunctionsIDcause-List" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_76[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 2 }, /* GlobalRIC-ID */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 1 }, /* RANfunctionsID-List */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -2, 0 } /* RANfunctionsIDcause-List */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_76 = { - sizeof(struct E2setupResponseIEs__value), - offsetof(struct E2setupResponseIEs__value, _asn_ctx), - offsetof(struct E2setupResponseIEs__value, present), - sizeof(((struct E2setupResponseIEs__value *)0)->present), - asn_MAP_value_tag2el_76, - 3, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_76 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_76, - 3, /* Elements count */ - &asn_SPC_value_specs_76 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E2setupResponseIEs_73[] = { - { ATF_NOFLAGS, 0, offsetof(struct E2setupResponseIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_74, memb_id_constraint_73 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E2setupResponseIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_E2setupResponseIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_75, memb_criticality_constraint_73 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E2setupResponseIEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_76, - select_E2setupResponseIEs_value_type, - { 0, &asn_PER_memb_value_constr_76, memb_value_constraint_73 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_E2setupResponseIEs_tags_73[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E2setupResponseIEs_tag2el_73[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E2setupResponseIEs_specs_73 = { - sizeof(struct E2setupResponseIEs), - offsetof(struct E2setupResponseIEs, _asn_ctx), - asn_MAP_E2setupResponseIEs_tag2el_73, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E2setupResponseIEs = { - "E2setupResponseIEs", - "E2setupResponseIEs", - &asn_OP_SEQUENCE, - asn_DEF_E2setupResponseIEs_tags_73, - sizeof(asn_DEF_E2setupResponseIEs_tags_73) - /sizeof(asn_DEF_E2setupResponseIEs_tags_73[0]), /* 1 */ - asn_DEF_E2setupResponseIEs_tags_73, /* Same as above */ - sizeof(asn_DEF_E2setupResponseIEs_tags_73) - /sizeof(asn_DEF_E2setupResponseIEs_tags_73[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E2setupResponseIEs_73, - 3, /* Elements count */ - &asn_SPC_E2setupResponseIEs_specs_73 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_80[] = { - { ATF_NOFLAGS, 0, offsetof(struct E2setupFailureIEs__value, choice.Cause), - -1 /* Ambiguous tag (CHOICE?) */, - 0, - &asn_DEF_Cause, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "Cause" - }, - { ATF_NOFLAGS, 0, offsetof(struct E2setupFailureIEs__value, choice.TimeToWait), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_TimeToWait, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "TimeToWait" - }, - { ATF_NOFLAGS, 0, offsetof(struct E2setupFailureIEs__value, choice.CriticalityDiagnostics), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CriticalityDiagnostics, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "CriticalityDiagnostics" - }, -}; -static const unsigned asn_MAP_value_to_canonical_80[] = { 1, 2, 0 }; -static const unsigned asn_MAP_value_from_canonical_80[] = { 2, 0, 1 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_80[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 }, /* TimeToWait */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, 0, 0 }, /* CriticalityDiagnostics */ - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ricRequest */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 0, 0, 0 }, /* ricService */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 0, 0, 0 }, /* transport */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 0, 0, 0 }, /* protocol */ - { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 0, 0, 0 } /* misc */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_80 = { - sizeof(struct E2setupFailureIEs__value), - offsetof(struct E2setupFailureIEs__value, _asn_ctx), - offsetof(struct E2setupFailureIEs__value, present), - sizeof(((struct E2setupFailureIEs__value *)0)->present), - asn_MAP_value_tag2el_80, - 7, /* Count of tags in the map */ - asn_MAP_value_to_canonical_80, - asn_MAP_value_from_canonical_80, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_80 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_80, - 3, /* Elements count */ - &asn_SPC_value_specs_80 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E2setupFailureIEs_77[] = { - { ATF_NOFLAGS, 0, offsetof(struct E2setupFailureIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_78, memb_id_constraint_77 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct E2setupFailureIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_E2setupFailureIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_79, memb_criticality_constraint_77 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E2setupFailureIEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_80, - select_E2setupFailureIEs_value_type, - { 0, &asn_PER_memb_value_constr_80, memb_value_constraint_77 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_E2setupFailureIEs_tags_77[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E2setupFailureIEs_tag2el_77[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E2setupFailureIEs_specs_77 = { - sizeof(struct E2setupFailureIEs), - offsetof(struct E2setupFailureIEs, _asn_ctx), - asn_MAP_E2setupFailureIEs_tag2el_77, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E2setupFailureIEs = { - "E2setupFailureIEs", - "E2setupFailureIEs", - &asn_OP_SEQUENCE, - asn_DEF_E2setupFailureIEs_tags_77, - sizeof(asn_DEF_E2setupFailureIEs_tags_77) - /sizeof(asn_DEF_E2setupFailureIEs_tags_77[0]), /* 1 */ - asn_DEF_E2setupFailureIEs_tags_77, /* Same as above */ - sizeof(asn_DEF_E2setupFailureIEs_tags_77) - /sizeof(asn_DEF_E2setupFailureIEs_tags_77[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E2setupFailureIEs_77, - 3, /* Elements count */ - &asn_SPC_E2setupFailureIEs_specs_77 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_84[] = { - { ATF_NOFLAGS, 0, offsetof(struct ResetRequestIEs__value, choice.Cause), - -1 /* Ambiguous tag (CHOICE?) */, - 0, - &asn_DEF_Cause, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "Cause" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_84[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ricRequest */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 0, 0, 0 }, /* ricService */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 0, 0, 0 }, /* transport */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 0, 0, 0 }, /* protocol */ - { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 0, 0, 0 } /* misc */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_84 = { - sizeof(struct ResetRequestIEs__value), - offsetof(struct ResetRequestIEs__value, _asn_ctx), - offsetof(struct ResetRequestIEs__value, present), - sizeof(((struct ResetRequestIEs__value *)0)->present), - asn_MAP_value_tag2el_84, - 5, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_84 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_84, - 1, /* Elements count */ - &asn_SPC_value_specs_84 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ResetRequestIEs_81[] = { - { ATF_NOFLAGS, 0, offsetof(struct ResetRequestIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_82, memb_id_constraint_81 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct ResetRequestIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_ResetRequestIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_83, memb_criticality_constraint_81 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ResetRequestIEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_84, - select_ResetRequestIEs_value_type, - { 0, &asn_PER_memb_value_constr_84, memb_value_constraint_81 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_ResetRequestIEs_tags_81[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ResetRequestIEs_tag2el_81[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ResetRequestIEs_specs_81 = { - sizeof(struct ResetRequestIEs), - offsetof(struct ResetRequestIEs, _asn_ctx), - asn_MAP_ResetRequestIEs_tag2el_81, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ResetRequestIEs = { - "ResetRequestIEs", - "ResetRequestIEs", - &asn_OP_SEQUENCE, - asn_DEF_ResetRequestIEs_tags_81, - sizeof(asn_DEF_ResetRequestIEs_tags_81) - /sizeof(asn_DEF_ResetRequestIEs_tags_81[0]), /* 1 */ - asn_DEF_ResetRequestIEs_tags_81, /* Same as above */ - sizeof(asn_DEF_ResetRequestIEs_tags_81) - /sizeof(asn_DEF_ResetRequestIEs_tags_81[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ResetRequestIEs_81, - 3, /* Elements count */ - &asn_SPC_ResetRequestIEs_specs_81 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_88[] = { - { ATF_NOFLAGS, 0, offsetof(struct ResetResponseIEs__value, choice.CriticalityDiagnostics), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CriticalityDiagnostics, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "CriticalityDiagnostics" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_88[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* CriticalityDiagnostics */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_88 = { - sizeof(struct ResetResponseIEs__value), - offsetof(struct ResetResponseIEs__value, _asn_ctx), - offsetof(struct ResetResponseIEs__value, present), - sizeof(((struct ResetResponseIEs__value *)0)->present), - asn_MAP_value_tag2el_88, - 1, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_88 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_88, - 1, /* Elements count */ - &asn_SPC_value_specs_88 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ResetResponseIEs_85[] = { - { ATF_NOFLAGS, 0, offsetof(struct ResetResponseIEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_86, memb_id_constraint_85 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct ResetResponseIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_ResetResponseIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_87, memb_criticality_constraint_85 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ResetResponseIEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_88, - select_ResetResponseIEs_value_type, - { 0, &asn_PER_memb_value_constr_88, memb_value_constraint_85 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_ResetResponseIEs_tags_85[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ResetResponseIEs_tag2el_85[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ResetResponseIEs_specs_85 = { - sizeof(struct ResetResponseIEs), - offsetof(struct ResetResponseIEs, _asn_ctx), - asn_MAP_ResetResponseIEs_tag2el_85, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ResetResponseIEs = { - "ResetResponseIEs", - "ResetResponseIEs", - &asn_OP_SEQUENCE, - asn_DEF_ResetResponseIEs_tags_85, - sizeof(asn_DEF_ResetResponseIEs_tags_85) - /sizeof(asn_DEF_ResetResponseIEs_tags_85[0]), /* 1 */ - asn_DEF_ResetResponseIEs_tags_85, /* Same as above */ - sizeof(asn_DEF_ResetResponseIEs_tags_85) - /sizeof(asn_DEF_ResetResponseIEs_tags_85[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ResetResponseIEs_85, - 3, /* Elements count */ - &asn_SPC_ResetResponseIEs_specs_85 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_92[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdate_IEs__value, choice.RANfunctions_List), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RANfunctions_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RANfunctions-List" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdate_IEs__value, choice.RANfunctionsID_List), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RANfunctionsID_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RANfunctionsID-List" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_92[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 1 }, /* RANfunctions-List */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 0 } /* RANfunctionsID-List */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_92 = { - sizeof(struct RICserviceUpdate_IEs__value), - offsetof(struct RICserviceUpdate_IEs__value, _asn_ctx), - offsetof(struct RICserviceUpdate_IEs__value, present), - sizeof(((struct RICserviceUpdate_IEs__value *)0)->present), - asn_MAP_value_tag2el_92, - 2, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_92 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_92, - 2, /* Elements count */ - &asn_SPC_value_specs_92 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_RICserviceUpdate_IEs_89[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdate_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_90, memb_id_constraint_89 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdate_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_RICserviceUpdate_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_91, memb_criticality_constraint_89 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdate_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_92, - select_RICserviceUpdate_IEs_value_type, - { 0, &asn_PER_memb_value_constr_92, memb_value_constraint_89 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICserviceUpdate_IEs_tags_89[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICserviceUpdate_IEs_tag2el_89[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdate_IEs_specs_89 = { - sizeof(struct RICserviceUpdate_IEs), - offsetof(struct RICserviceUpdate_IEs, _asn_ctx), - asn_MAP_RICserviceUpdate_IEs_tag2el_89, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICserviceUpdate_IEs = { - "RICserviceUpdate-IEs", - "RICserviceUpdate-IEs", - &asn_OP_SEQUENCE, - asn_DEF_RICserviceUpdate_IEs_tags_89, - sizeof(asn_DEF_RICserviceUpdate_IEs_tags_89) - /sizeof(asn_DEF_RICserviceUpdate_IEs_tags_89[0]), /* 1 */ - asn_DEF_RICserviceUpdate_IEs_tags_89, /* Same as above */ - sizeof(asn_DEF_RICserviceUpdate_IEs_tags_89) - /sizeof(asn_DEF_RICserviceUpdate_IEs_tags_89[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICserviceUpdate_IEs_89, - 3, /* Elements count */ - &asn_SPC_RICserviceUpdate_IEs_specs_89 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_96[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateAcknowledge_IEs__value, choice.RANfunctionsID_List), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RANfunctionsID_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RANfunctionsID-List" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateAcknowledge_IEs__value, choice.RANfunctionsIDcause_List), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RANfunctionsIDcause_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RANfunctionsIDcause-List" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_96[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 1 }, /* RANfunctionsID-List */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 0 } /* RANfunctionsIDcause-List */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_96 = { - sizeof(struct RICserviceUpdateAcknowledge_IEs__value), - offsetof(struct RICserviceUpdateAcknowledge_IEs__value, _asn_ctx), - offsetof(struct RICserviceUpdateAcknowledge_IEs__value, present), - sizeof(((struct RICserviceUpdateAcknowledge_IEs__value *)0)->present), - asn_MAP_value_tag2el_96, - 2, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_96 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_96, - 2, /* Elements count */ - &asn_SPC_value_specs_96 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_RICserviceUpdateAcknowledge_IEs_93[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateAcknowledge_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_94, memb_id_constraint_93 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateAcknowledge_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_RICserviceUpdateAcknowledge_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_95, memb_criticality_constraint_93 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateAcknowledge_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_96, - select_RICserviceUpdateAcknowledge_IEs_value_type, - { 0, &asn_PER_memb_value_constr_96, memb_value_constraint_93 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICserviceUpdateAcknowledge_IEs_tags_93[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICserviceUpdateAcknowledge_IEs_tag2el_93[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdateAcknowledge_IEs_specs_93 = { - sizeof(struct RICserviceUpdateAcknowledge_IEs), - offsetof(struct RICserviceUpdateAcknowledge_IEs, _asn_ctx), - asn_MAP_RICserviceUpdateAcknowledge_IEs_tag2el_93, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICserviceUpdateAcknowledge_IEs = { - "RICserviceUpdateAcknowledge-IEs", - "RICserviceUpdateAcknowledge-IEs", - &asn_OP_SEQUENCE, - asn_DEF_RICserviceUpdateAcknowledge_IEs_tags_93, - sizeof(asn_DEF_RICserviceUpdateAcknowledge_IEs_tags_93) - /sizeof(asn_DEF_RICserviceUpdateAcknowledge_IEs_tags_93[0]), /* 1 */ - asn_DEF_RICserviceUpdateAcknowledge_IEs_tags_93, /* Same as above */ - sizeof(asn_DEF_RICserviceUpdateAcknowledge_IEs_tags_93) - /sizeof(asn_DEF_RICserviceUpdateAcknowledge_IEs_tags_93[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICserviceUpdateAcknowledge_IEs_93, - 3, /* Elements count */ - &asn_SPC_RICserviceUpdateAcknowledge_IEs_specs_93 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_100[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateFailure_IEs__value, choice.RANfunctionsIDcause_List), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RANfunctionsIDcause_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RANfunctionsIDcause-List" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateFailure_IEs__value, choice.TimeToWait), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_TimeToWait, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "TimeToWait" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateFailure_IEs__value, choice.CriticalityDiagnostics), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_CriticalityDiagnostics, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "CriticalityDiagnostics" - }, -}; -static const unsigned asn_MAP_value_to_canonical_100[] = { 1, 0, 2 }; -static const unsigned asn_MAP_value_from_canonical_100[] = { 1, 0, 2 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_100[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 }, /* TimeToWait */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 1 }, /* RANfunctionsIDcause-List */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -1, 0 } /* CriticalityDiagnostics */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_100 = { - sizeof(struct RICserviceUpdateFailure_IEs__value), - offsetof(struct RICserviceUpdateFailure_IEs__value, _asn_ctx), - offsetof(struct RICserviceUpdateFailure_IEs__value, present), - sizeof(((struct RICserviceUpdateFailure_IEs__value *)0)->present), - asn_MAP_value_tag2el_100, - 3, /* Count of tags in the map */ - asn_MAP_value_to_canonical_100, - asn_MAP_value_from_canonical_100, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_100 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_100, - 3, /* Elements count */ - &asn_SPC_value_specs_100 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_RICserviceUpdateFailure_IEs_97[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateFailure_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_98, memb_id_constraint_97 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateFailure_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_RICserviceUpdateFailure_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_99, memb_criticality_constraint_97 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateFailure_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_100, - select_RICserviceUpdateFailure_IEs_value_type, - { 0, &asn_PER_memb_value_constr_100, memb_value_constraint_97 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICserviceUpdateFailure_IEs_tags_97[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICserviceUpdateFailure_IEs_tag2el_97[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdateFailure_IEs_specs_97 = { - sizeof(struct RICserviceUpdateFailure_IEs), - offsetof(struct RICserviceUpdateFailure_IEs, _asn_ctx), - asn_MAP_RICserviceUpdateFailure_IEs_tag2el_97, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICserviceUpdateFailure_IEs = { - "RICserviceUpdateFailure-IEs", - "RICserviceUpdateFailure-IEs", - &asn_OP_SEQUENCE, - asn_DEF_RICserviceUpdateFailure_IEs_tags_97, - sizeof(asn_DEF_RICserviceUpdateFailure_IEs_tags_97) - /sizeof(asn_DEF_RICserviceUpdateFailure_IEs_tags_97[0]), /* 1 */ - asn_DEF_RICserviceUpdateFailure_IEs_tags_97, /* Same as above */ - sizeof(asn_DEF_RICserviceUpdateFailure_IEs_tags_97) - /sizeof(asn_DEF_RICserviceUpdateFailure_IEs_tags_97[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICserviceUpdateFailure_IEs_97, - 3, /* Elements count */ - &asn_SPC_RICserviceUpdateFailure_IEs_specs_97 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_value_104[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICserviceQuery_IEs__value, choice.RANfunctionsID_List), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RANfunctionsID_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RANfunctionsID-List" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_104[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RANfunctionsID-List */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_104 = { - sizeof(struct RICserviceQuery_IEs__value), - offsetof(struct RICserviceQuery_IEs__value, _asn_ctx), - offsetof(struct RICserviceQuery_IEs__value, present), - sizeof(((struct RICserviceQuery_IEs__value *)0)->present), - asn_MAP_value_tag2el_104, - 1, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_104 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_104, - 1, /* Elements count */ - &asn_SPC_value_specs_104 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_RICserviceQuery_IEs_101[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICserviceQuery_IEs, id), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ID, - 0, - { 0, &asn_PER_memb_id_constr_102, memb_id_constraint_101 }, - 0, 0, /* No default value */ - "id" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICserviceQuery_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_RICserviceQuery_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_103, memb_criticality_constraint_101 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICserviceQuery_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_104, - select_RICserviceQuery_IEs_value_type, - { 0, &asn_PER_memb_value_constr_104, memb_value_constraint_101 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICserviceQuery_IEs_tags_101[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICserviceQuery_IEs_tag2el_101[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICserviceQuery_IEs_specs_101 = { - sizeof(struct RICserviceQuery_IEs), - offsetof(struct RICserviceQuery_IEs, _asn_ctx), - asn_MAP_RICserviceQuery_IEs_tag2el_101, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICserviceQuery_IEs = { - "RICserviceQuery-IEs", - "RICserviceQuery-IEs", - &asn_OP_SEQUENCE, - asn_DEF_RICserviceQuery_IEs_tags_101, - sizeof(asn_DEF_RICserviceQuery_IEs_tags_101) - /sizeof(asn_DEF_RICserviceQuery_IEs_tags_101[0]), /* 1 */ - asn_DEF_RICserviceQuery_IEs_tags_101, /* Same as above */ - sizeof(asn_DEF_RICserviceQuery_IEs_tags_101) - /sizeof(asn_DEF_RICserviceQuery_IEs_tags_101[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICserviceQuery_IEs_101, - 3, /* Elements count */ - &asn_SPC_RICserviceQuery_IEs_specs_101 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/ProtocolIE-Field.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/ProtocolIE-Field.h deleted file mode 100644 index 573edcf..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/ProtocolIE-Field.h +++ /dev/null @@ -1,757 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-Containers" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _ProtocolIE_Field_H_ -#define _ProtocolIE_Field_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-ID.h" -#include "Criticality.h" -#include "ANY.h" -#include "asn_ioc.h" -#include "RICaction-ToBeSetup-Item.h" -#include "Presence.h" -#include "OPEN_TYPE.h" -#include "constr_CHOICE.h" -#include "constr_SEQUENCE.h" -#include "RICaction-Admitted-Item.h" -#include "RICaction-NotAdmitted-Item.h" -#include "RANfunction-Item.h" -#include "RANfunctionID-Item.h" -#include "RANfunctionIDcause-Item.h" -#include "RICrequestID.h" -#include "RANfunctionID.h" -#include "RICsubscriptionDetails.h" -#include "RICaction-Admitted-List.h" -#include "RICaction-NotAdmitted-List.h" -#include "CriticalityDiagnostics.h" -#include "Cause.h" -#include "RICactionID.h" -#include "RICindicationSN.h" -#include "RICindicationType.h" -#include "RICindicationHeader.h" -#include "RICindicationMessage.h" -#include "RICcallProcessID.h" -#include "RICcontrolHeader.h" -#include "RICcontrolMessage.h" -#include "RICcontrolAckRequest.h" -#include "RICcontrolStatus.h" -#include "RICcontrolOutcome.h" -#include "GlobalE2node-ID.h" -#include "RANfunctions-List.h" -#include "GlobalRIC-ID.h" -#include "RANfunctionsID-List.h" -#include "RANfunctionsIDcause-List.h" -#include "TimeToWait.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum RICaction_ToBeSetup_ItemIEs__value_PR { - RICaction_ToBeSetup_ItemIEs__value_PR_NOTHING, /* No components present */ - RICaction_ToBeSetup_ItemIEs__value_PR_RICaction_ToBeSetup_Item -} RICaction_ToBeSetup_ItemIEs__value_PR; -typedef enum RICaction_Admitted_ItemIEs__value_PR { - RICaction_Admitted_ItemIEs__value_PR_NOTHING, /* No components present */ - RICaction_Admitted_ItemIEs__value_PR_RICaction_Admitted_Item -} RICaction_Admitted_ItemIEs__value_PR; -typedef enum RICaction_NotAdmitted_ItemIEs__value_PR { - RICaction_NotAdmitted_ItemIEs__value_PR_NOTHING, /* No components present */ - RICaction_NotAdmitted_ItemIEs__value_PR_RICaction_NotAdmitted_Item -} RICaction_NotAdmitted_ItemIEs__value_PR; -typedef enum RANfunction_ItemIEs__value_PR { - RANfunction_ItemIEs__value_PR_NOTHING, /* No components present */ - RANfunction_ItemIEs__value_PR_RANfunction_Item -} RANfunction_ItemIEs__value_PR; -typedef enum RANfunctionID_ItemIEs__value_PR { - RANfunctionID_ItemIEs__value_PR_NOTHING, /* No components present */ - RANfunctionID_ItemIEs__value_PR_RANfunctionID_Item -} RANfunctionID_ItemIEs__value_PR; -typedef enum RANfunctionIDcause_ItemIEs__value_PR { - RANfunctionIDcause_ItemIEs__value_PR_NOTHING, /* No components present */ - RANfunctionIDcause_ItemIEs__value_PR_RANfunctionIDcause_Item -} RANfunctionIDcause_ItemIEs__value_PR; -typedef enum RICsubscriptionRequest_IEs__value_PR { - RICsubscriptionRequest_IEs__value_PR_NOTHING, /* No components present */ - RICsubscriptionRequest_IEs__value_PR_RICrequestID, - RICsubscriptionRequest_IEs__value_PR_RANfunctionID, - RICsubscriptionRequest_IEs__value_PR_RICsubscriptionDetails -} RICsubscriptionRequest_IEs__value_PR; -typedef enum RICsubscriptionResponse_IEs__value_PR { - RICsubscriptionResponse_IEs__value_PR_NOTHING, /* No components present */ - RICsubscriptionResponse_IEs__value_PR_RICrequestID, - RICsubscriptionResponse_IEs__value_PR_RANfunctionID, - RICsubscriptionResponse_IEs__value_PR_RICaction_Admitted_List, - RICsubscriptionResponse_IEs__value_PR_RICaction_NotAdmitted_List -} RICsubscriptionResponse_IEs__value_PR; -typedef enum RICsubscriptionFailure_IEs__value_PR { - RICsubscriptionFailure_IEs__value_PR_NOTHING, /* No components present */ - RICsubscriptionFailure_IEs__value_PR_RICrequestID, - RICsubscriptionFailure_IEs__value_PR_RANfunctionID, - RICsubscriptionFailure_IEs__value_PR_RICaction_NotAdmitted_List, - RICsubscriptionFailure_IEs__value_PR_CriticalityDiagnostics -} RICsubscriptionFailure_IEs__value_PR; -typedef enum RICsubscriptionDeleteRequest_IEs__value_PR { - RICsubscriptionDeleteRequest_IEs__value_PR_NOTHING, /* No components present */ - RICsubscriptionDeleteRequest_IEs__value_PR_RICrequestID, - RICsubscriptionDeleteRequest_IEs__value_PR_RANfunctionID -} RICsubscriptionDeleteRequest_IEs__value_PR; -typedef enum RICsubscriptionDeleteResponse_IEs__value_PR { - RICsubscriptionDeleteResponse_IEs__value_PR_NOTHING, /* No components present */ - RICsubscriptionDeleteResponse_IEs__value_PR_RICrequestID, - RICsubscriptionDeleteResponse_IEs__value_PR_RANfunctionID -} RICsubscriptionDeleteResponse_IEs__value_PR; -typedef enum RICsubscriptionDeleteFailure_IEs__value_PR { - RICsubscriptionDeleteFailure_IEs__value_PR_NOTHING, /* No components present */ - RICsubscriptionDeleteFailure_IEs__value_PR_RICrequestID, - RICsubscriptionDeleteFailure_IEs__value_PR_RANfunctionID, - RICsubscriptionDeleteFailure_IEs__value_PR_Cause, - RICsubscriptionDeleteFailure_IEs__value_PR_CriticalityDiagnostics -} RICsubscriptionDeleteFailure_IEs__value_PR; -typedef enum RICindication_IEs__value_PR { - RICindication_IEs__value_PR_NOTHING, /* No components present */ - RICindication_IEs__value_PR_RICrequestID, - RICindication_IEs__value_PR_RANfunctionID, - RICindication_IEs__value_PR_RICactionID, - RICindication_IEs__value_PR_RICindicationSN, - RICindication_IEs__value_PR_RICindicationType, - RICindication_IEs__value_PR_RICindicationHeader, - RICindication_IEs__value_PR_RICindicationMessage, - RICindication_IEs__value_PR_RICcallProcessID -} RICindication_IEs__value_PR; -typedef enum RICcontrolRequest_IEs__value_PR { - RICcontrolRequest_IEs__value_PR_NOTHING, /* No components present */ - RICcontrolRequest_IEs__value_PR_RICrequestID, - RICcontrolRequest_IEs__value_PR_RANfunctionID, - RICcontrolRequest_IEs__value_PR_RICcallProcessID, - RICcontrolRequest_IEs__value_PR_RICcontrolHeader, - RICcontrolRequest_IEs__value_PR_RICcontrolMessage, - RICcontrolRequest_IEs__value_PR_RICcontrolAckRequest -} RICcontrolRequest_IEs__value_PR; -typedef enum RICcontrolAcknowledge_IEs__value_PR { - RICcontrolAcknowledge_IEs__value_PR_NOTHING, /* No components present */ - RICcontrolAcknowledge_IEs__value_PR_RICrequestID, - RICcontrolAcknowledge_IEs__value_PR_RANfunctionID, - RICcontrolAcknowledge_IEs__value_PR_RICcallProcessID, - RICcontrolAcknowledge_IEs__value_PR_RICcontrolStatus, - RICcontrolAcknowledge_IEs__value_PR_RICcontrolOutcome -} RICcontrolAcknowledge_IEs__value_PR; -typedef enum RICcontrolFailure_IEs__value_PR { - RICcontrolFailure_IEs__value_PR_NOTHING, /* No components present */ - RICcontrolFailure_IEs__value_PR_RICrequestID, - RICcontrolFailure_IEs__value_PR_RANfunctionID, - RICcontrolFailure_IEs__value_PR_RICcallProcessID, - RICcontrolFailure_IEs__value_PR_Cause, - RICcontrolFailure_IEs__value_PR_RICcontrolOutcome -} RICcontrolFailure_IEs__value_PR; -typedef enum ErrorIndication_IEs__value_PR { - ErrorIndication_IEs__value_PR_NOTHING, /* No components present */ - ErrorIndication_IEs__value_PR_RICrequestID, - ErrorIndication_IEs__value_PR_RANfunctionID, - ErrorIndication_IEs__value_PR_Cause, - ErrorIndication_IEs__value_PR_CriticalityDiagnostics -} ErrorIndication_IEs__value_PR; -typedef enum E2setupRequestIEs__value_PR { - E2setupRequestIEs__value_PR_NOTHING, /* No components present */ - E2setupRequestIEs__value_PR_GlobalE2node_ID, - E2setupRequestIEs__value_PR_RANfunctions_List -} E2setupRequestIEs__value_PR; -typedef enum E2setupResponseIEs__value_PR { - E2setupResponseIEs__value_PR_NOTHING, /* No components present */ - E2setupResponseIEs__value_PR_GlobalRIC_ID, - E2setupResponseIEs__value_PR_RANfunctionsID_List, - E2setupResponseIEs__value_PR_RANfunctionsIDcause_List -} E2setupResponseIEs__value_PR; -typedef enum E2setupFailureIEs__value_PR { - E2setupFailureIEs__value_PR_NOTHING, /* No components present */ - E2setupFailureIEs__value_PR_Cause, - E2setupFailureIEs__value_PR_TimeToWait, - E2setupFailureIEs__value_PR_CriticalityDiagnostics -} E2setupFailureIEs__value_PR; -typedef enum ResetRequestIEs__value_PR { - ResetRequestIEs__value_PR_NOTHING, /* No components present */ - ResetRequestIEs__value_PR_Cause -} ResetRequestIEs__value_PR; -typedef enum ResetResponseIEs__value_PR { - ResetResponseIEs__value_PR_NOTHING, /* No components present */ - ResetResponseIEs__value_PR_CriticalityDiagnostics -} ResetResponseIEs__value_PR; -typedef enum RICserviceUpdate_IEs__value_PR { - RICserviceUpdate_IEs__value_PR_NOTHING, /* No components present */ - RICserviceUpdate_IEs__value_PR_RANfunctions_List, - RICserviceUpdate_IEs__value_PR_RANfunctionsID_List -} RICserviceUpdate_IEs__value_PR; -typedef enum RICserviceUpdateAcknowledge_IEs__value_PR { - RICserviceUpdateAcknowledge_IEs__value_PR_NOTHING, /* No components present */ - RICserviceUpdateAcknowledge_IEs__value_PR_RANfunctionsID_List, - RICserviceUpdateAcknowledge_IEs__value_PR_RANfunctionsIDcause_List -} RICserviceUpdateAcknowledge_IEs__value_PR; -typedef enum RICserviceUpdateFailure_IEs__value_PR { - RICserviceUpdateFailure_IEs__value_PR_NOTHING, /* No components present */ - RICserviceUpdateFailure_IEs__value_PR_RANfunctionsIDcause_List, - RICserviceUpdateFailure_IEs__value_PR_TimeToWait, - RICserviceUpdateFailure_IEs__value_PR_CriticalityDiagnostics -} RICserviceUpdateFailure_IEs__value_PR; -typedef enum RICserviceQuery_IEs__value_PR { - RICserviceQuery_IEs__value_PR_NOTHING, /* No components present */ - RICserviceQuery_IEs__value_PR_RANfunctionsID_List -} RICserviceQuery_IEs__value_PR; - -/* ProtocolIE-Field */ -typedef struct RICaction_ToBeSetup_ItemIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RICaction_ToBeSetup_ItemIEs__value { - RICaction_ToBeSetup_ItemIEs__value_PR present; - union RICaction_ToBeSetup_ItemIEs__value_u { - RICaction_ToBeSetup_Item_t RICaction_ToBeSetup_Item; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICaction_ToBeSetup_ItemIEs_t; -typedef struct RICaction_Admitted_ItemIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RICaction_Admitted_ItemIEs__value { - RICaction_Admitted_ItemIEs__value_PR present; - union RICaction_Admitted_ItemIEs__value_u { - RICaction_Admitted_Item_t RICaction_Admitted_Item; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICaction_Admitted_ItemIEs_t; -typedef struct RICaction_NotAdmitted_ItemIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RICaction_NotAdmitted_ItemIEs__value { - RICaction_NotAdmitted_ItemIEs__value_PR present; - union RICaction_NotAdmitted_ItemIEs__value_u { - RICaction_NotAdmitted_Item_t RICaction_NotAdmitted_Item; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICaction_NotAdmitted_ItemIEs_t; -typedef struct RANfunction_ItemIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RANfunction_ItemIEs__value { - RANfunction_ItemIEs__value_PR present; - union RANfunction_ItemIEs__value_u { - RANfunction_Item_t RANfunction_Item; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RANfunction_ItemIEs_t; -typedef struct RANfunctionID_ItemIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RANfunctionID_ItemIEs__value { - RANfunctionID_ItemIEs__value_PR present; - union RANfunctionID_ItemIEs__value_u { - RANfunctionID_Item_t RANfunctionID_Item; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RANfunctionID_ItemIEs_t; -typedef struct RANfunctionIDcause_ItemIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RANfunctionIDcause_ItemIEs__value { - RANfunctionIDcause_ItemIEs__value_PR present; - union RANfunctionIDcause_ItemIEs__value_u { - RANfunctionIDcause_Item_t RANfunctionIDcause_Item; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RANfunctionIDcause_ItemIEs_t; -typedef struct RICsubscriptionRequest_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RICsubscriptionRequest_IEs__value { - RICsubscriptionRequest_IEs__value_PR present; - union RICsubscriptionRequest_IEs__value_u { - RICrequestID_t RICrequestID; - RANfunctionID_t RANfunctionID; - RICsubscriptionDetails_t RICsubscriptionDetails; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICsubscriptionRequest_IEs_t; -typedef struct RICsubscriptionResponse_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RICsubscriptionResponse_IEs__value { - RICsubscriptionResponse_IEs__value_PR present; - union RICsubscriptionResponse_IEs__value_u { - RICrequestID_t RICrequestID; - RANfunctionID_t RANfunctionID; - RICaction_Admitted_List_t RICaction_Admitted_List; - RICaction_NotAdmitted_List_t RICaction_NotAdmitted_List; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICsubscriptionResponse_IEs_t; -typedef struct RICsubscriptionFailure_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RICsubscriptionFailure_IEs__value { - RICsubscriptionFailure_IEs__value_PR present; - union RICsubscriptionFailure_IEs__value_u { - RICrequestID_t RICrequestID; - RANfunctionID_t RANfunctionID; - RICaction_NotAdmitted_List_t RICaction_NotAdmitted_List; - CriticalityDiagnostics_t CriticalityDiagnostics; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICsubscriptionFailure_IEs_t; -typedef struct RICsubscriptionDeleteRequest_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RICsubscriptionDeleteRequest_IEs__value { - RICsubscriptionDeleteRequest_IEs__value_PR present; - union RICsubscriptionDeleteRequest_IEs__value_u { - RICrequestID_t RICrequestID; - RANfunctionID_t RANfunctionID; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICsubscriptionDeleteRequest_IEs_t; -typedef struct RICsubscriptionDeleteResponse_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RICsubscriptionDeleteResponse_IEs__value { - RICsubscriptionDeleteResponse_IEs__value_PR present; - union RICsubscriptionDeleteResponse_IEs__value_u { - RICrequestID_t RICrequestID; - RANfunctionID_t RANfunctionID; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICsubscriptionDeleteResponse_IEs_t; -typedef struct RICsubscriptionDeleteFailure_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RICsubscriptionDeleteFailure_IEs__value { - RICsubscriptionDeleteFailure_IEs__value_PR present; - union RICsubscriptionDeleteFailure_IEs__value_u { - RICrequestID_t RICrequestID; - RANfunctionID_t RANfunctionID; - Cause_t Cause; - CriticalityDiagnostics_t CriticalityDiagnostics; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICsubscriptionDeleteFailure_IEs_t; -typedef struct RICindication_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RICindication_IEs__value { - RICindication_IEs__value_PR present; - union RICindication_IEs__value_u { - RICrequestID_t RICrequestID; - RANfunctionID_t RANfunctionID; - RICactionID_t RICactionID; - RICindicationSN_t RICindicationSN; - RICindicationType_t RICindicationType; - RICindicationHeader_t RICindicationHeader; - RICindicationMessage_t RICindicationMessage; - RICcallProcessID_t RICcallProcessID; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICindication_IEs_t; -typedef struct RICcontrolRequest_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RICcontrolRequest_IEs__value { - RICcontrolRequest_IEs__value_PR present; - union RICcontrolRequest_IEs__value_u { - RICrequestID_t RICrequestID; - RANfunctionID_t RANfunctionID; - RICcallProcessID_t RICcallProcessID; - RICcontrolHeader_t RICcontrolHeader; - RICcontrolMessage_t RICcontrolMessage; - RICcontrolAckRequest_t RICcontrolAckRequest; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICcontrolRequest_IEs_t; -typedef struct RICcontrolAcknowledge_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RICcontrolAcknowledge_IEs__value { - RICcontrolAcknowledge_IEs__value_PR present; - union RICcontrolAcknowledge_IEs__value_u { - RICrequestID_t RICrequestID; - RANfunctionID_t RANfunctionID; - RICcallProcessID_t RICcallProcessID; - RICcontrolStatus_t RICcontrolStatus; - RICcontrolOutcome_t RICcontrolOutcome; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICcontrolAcknowledge_IEs_t; -typedef struct RICcontrolFailure_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RICcontrolFailure_IEs__value { - RICcontrolFailure_IEs__value_PR present; - union RICcontrolFailure_IEs__value_u { - RICrequestID_t RICrequestID; - RANfunctionID_t RANfunctionID; - RICcallProcessID_t RICcallProcessID; - Cause_t Cause; - RICcontrolOutcome_t RICcontrolOutcome; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICcontrolFailure_IEs_t; -typedef struct ErrorIndication_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct ErrorIndication_IEs__value { - ErrorIndication_IEs__value_PR present; - union ErrorIndication_IEs__value_u { - RICrequestID_t RICrequestID; - RANfunctionID_t RANfunctionID; - Cause_t Cause; - CriticalityDiagnostics_t CriticalityDiagnostics; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ErrorIndication_IEs_t; -typedef struct E2setupRequestIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct E2setupRequestIEs__value { - E2setupRequestIEs__value_PR present; - union E2setupRequestIEs__value_u { - GlobalE2node_ID_t GlobalE2node_ID; - RANfunctions_List_t RANfunctions_List; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E2setupRequestIEs_t; -typedef struct E2setupResponseIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct E2setupResponseIEs__value { - E2setupResponseIEs__value_PR present; - union E2setupResponseIEs__value_u { - GlobalRIC_ID_t GlobalRIC_ID; - RANfunctionsID_List_t RANfunctionsID_List; - RANfunctionsIDcause_List_t RANfunctionsIDcause_List; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E2setupResponseIEs_t; -typedef struct E2setupFailureIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct E2setupFailureIEs__value { - E2setupFailureIEs__value_PR present; - union E2setupFailureIEs__value_u { - Cause_t Cause; - TimeToWait_t TimeToWait; - CriticalityDiagnostics_t CriticalityDiagnostics; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E2setupFailureIEs_t; -typedef struct ResetRequestIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct ResetRequestIEs__value { - ResetRequestIEs__value_PR present; - union ResetRequestIEs__value_u { - Cause_t Cause; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ResetRequestIEs_t; -typedef struct ResetResponseIEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct ResetResponseIEs__value { - ResetResponseIEs__value_PR present; - union ResetResponseIEs__value_u { - CriticalityDiagnostics_t CriticalityDiagnostics; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ResetResponseIEs_t; -typedef struct RICserviceUpdate_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RICserviceUpdate_IEs__value { - RICserviceUpdate_IEs__value_PR present; - union RICserviceUpdate_IEs__value_u { - RANfunctions_List_t RANfunctions_List; - RANfunctionsID_List_t RANfunctionsID_List; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICserviceUpdate_IEs_t; -typedef struct RICserviceUpdateAcknowledge_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RICserviceUpdateAcknowledge_IEs__value { - RICserviceUpdateAcknowledge_IEs__value_PR present; - union RICserviceUpdateAcknowledge_IEs__value_u { - RANfunctionsID_List_t RANfunctionsID_List; - RANfunctionsIDcause_List_t RANfunctionsIDcause_List; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICserviceUpdateAcknowledge_IEs_t; -typedef struct RICserviceUpdateFailure_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RICserviceUpdateFailure_IEs__value { - RICserviceUpdateFailure_IEs__value_PR present; - union RICserviceUpdateFailure_IEs__value_u { - RANfunctionsIDcause_List_t RANfunctionsIDcause_List; - TimeToWait_t TimeToWait; - CriticalityDiagnostics_t CriticalityDiagnostics; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICserviceUpdateFailure_IEs_t; -typedef struct RICserviceQuery_IEs { - ProtocolIE_ID_t id; - Criticality_t criticality; - struct RICserviceQuery_IEs__value { - RICserviceQuery_IEs__value_PR present; - union RICserviceQuery_IEs__value_u { - RANfunctionsID_List_t RANfunctionsID_List; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICserviceQuery_IEs_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICaction_ToBeSetup_ItemIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RICaction_ToBeSetup_ItemIEs_specs_1; -extern asn_TYPE_member_t asn_MBR_RICaction_ToBeSetup_ItemIEs_1[3]; -extern asn_TYPE_descriptor_t asn_DEF_RICaction_Admitted_ItemIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RICaction_Admitted_ItemIEs_specs_5; -extern asn_TYPE_member_t asn_MBR_RICaction_Admitted_ItemIEs_5[3]; -extern asn_TYPE_descriptor_t asn_DEF_RICaction_NotAdmitted_ItemIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RICaction_NotAdmitted_ItemIEs_specs_9; -extern asn_TYPE_member_t asn_MBR_RICaction_NotAdmitted_ItemIEs_9[3]; -extern asn_TYPE_descriptor_t asn_DEF_RANfunction_ItemIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RANfunction_ItemIEs_specs_13; -extern asn_TYPE_member_t asn_MBR_RANfunction_ItemIEs_13[3]; -extern asn_TYPE_descriptor_t asn_DEF_RANfunctionID_ItemIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RANfunctionID_ItemIEs_specs_17; -extern asn_TYPE_member_t asn_MBR_RANfunctionID_ItemIEs_17[3]; -extern asn_TYPE_descriptor_t asn_DEF_RANfunctionIDcause_ItemIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RANfunctionIDcause_ItemIEs_specs_21; -extern asn_TYPE_member_t asn_MBR_RANfunctionIDcause_ItemIEs_21[3]; -extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionRequest_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionRequest_IEs_specs_25; -extern asn_TYPE_member_t asn_MBR_RICsubscriptionRequest_IEs_25[3]; -extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionResponse_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionResponse_IEs_specs_29; -extern asn_TYPE_member_t asn_MBR_RICsubscriptionResponse_IEs_29[3]; -extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionFailure_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionFailure_IEs_specs_33; -extern asn_TYPE_member_t asn_MBR_RICsubscriptionFailure_IEs_33[3]; -extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDeleteRequest_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteRequest_IEs_specs_37; -extern asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteRequest_IEs_37[3]; -extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDeleteResponse_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteResponse_IEs_specs_41; -extern asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteResponse_IEs_41[3]; -extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDeleteFailure_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteFailure_IEs_specs_45; -extern asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteFailure_IEs_45[3]; -extern asn_TYPE_descriptor_t asn_DEF_RICindication_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RICindication_IEs_specs_49; -extern asn_TYPE_member_t asn_MBR_RICindication_IEs_49[3]; -extern asn_TYPE_descriptor_t asn_DEF_RICcontrolRequest_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RICcontrolRequest_IEs_specs_53; -extern asn_TYPE_member_t asn_MBR_RICcontrolRequest_IEs_53[3]; -extern asn_TYPE_descriptor_t asn_DEF_RICcontrolAcknowledge_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RICcontrolAcknowledge_IEs_specs_57; -extern asn_TYPE_member_t asn_MBR_RICcontrolAcknowledge_IEs_57[3]; -extern asn_TYPE_descriptor_t asn_DEF_RICcontrolFailure_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RICcontrolFailure_IEs_specs_61; -extern asn_TYPE_member_t asn_MBR_RICcontrolFailure_IEs_61[3]; -extern asn_TYPE_descriptor_t asn_DEF_ErrorIndication_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_ErrorIndication_IEs_specs_65; -extern asn_TYPE_member_t asn_MBR_ErrorIndication_IEs_65[3]; -extern asn_TYPE_descriptor_t asn_DEF_E2setupRequestIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E2setupRequestIEs_specs_69; -extern asn_TYPE_member_t asn_MBR_E2setupRequestIEs_69[3]; -extern asn_TYPE_descriptor_t asn_DEF_E2setupResponseIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E2setupResponseIEs_specs_73; -extern asn_TYPE_member_t asn_MBR_E2setupResponseIEs_73[3]; -extern asn_TYPE_descriptor_t asn_DEF_E2setupFailureIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E2setupFailureIEs_specs_77; -extern asn_TYPE_member_t asn_MBR_E2setupFailureIEs_77[3]; -extern asn_TYPE_descriptor_t asn_DEF_ResetRequestIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_ResetRequestIEs_specs_81; -extern asn_TYPE_member_t asn_MBR_ResetRequestIEs_81[3]; -extern asn_TYPE_descriptor_t asn_DEF_ResetResponseIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_ResetResponseIEs_specs_85; -extern asn_TYPE_member_t asn_MBR_ResetResponseIEs_85[3]; -extern asn_TYPE_descriptor_t asn_DEF_RICserviceUpdate_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdate_IEs_specs_89; -extern asn_TYPE_member_t asn_MBR_RICserviceUpdate_IEs_89[3]; -extern asn_TYPE_descriptor_t asn_DEF_RICserviceUpdateAcknowledge_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdateAcknowledge_IEs_specs_93; -extern asn_TYPE_member_t asn_MBR_RICserviceUpdateAcknowledge_IEs_93[3]; -extern asn_TYPE_descriptor_t asn_DEF_RICserviceUpdateFailure_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdateFailure_IEs_specs_97; -extern asn_TYPE_member_t asn_MBR_RICserviceUpdateFailure_IEs_97[3]; -extern asn_TYPE_descriptor_t asn_DEF_RICserviceQuery_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RICserviceQuery_IEs_specs_101; -extern asn_TYPE_member_t asn_MBR_RICserviceQuery_IEs_101[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _ProtocolIE_Field_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/ProtocolIE-FieldPair.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/ProtocolIE-FieldPair.c deleted file mode 100644 index 9c7e653..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/ProtocolIE-FieldPair.c +++ /dev/null @@ -1,9 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-Containers" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "ProtocolIE-FieldPair.h" - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/ProtocolIE-FieldPair.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/ProtocolIE-FieldPair.h deleted file mode 100644 index 8193bd6..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/ProtocolIE-FieldPair.h +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-Containers" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _ProtocolIE_FieldPair_H_ -#define _ProtocolIE_FieldPair_H_ - - -#include "asn_application.h" - -#ifdef __cplusplus -extern "C" { -#endif - -#ifdef __cplusplus -} -#endif - -#endif /* _ProtocolIE_FieldPair_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/ProtocolIE-ID.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/ProtocolIE-ID.c deleted file mode 100644 index 9afe610..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/ProtocolIE-ID.c +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-CommonDataTypes" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "ProtocolIE-ID.h" - -int -ProtocolIE_ID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using NativeInteger, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_ProtocolIE_ID_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_ID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ID = { - "ProtocolIE-ID", - "ProtocolIE-ID", - &asn_OP_NativeInteger, - asn_DEF_ProtocolIE_ID_tags_1, - sizeof(asn_DEF_ProtocolIE_ID_tags_1) - /sizeof(asn_DEF_ProtocolIE_ID_tags_1[0]), /* 1 */ - asn_DEF_ProtocolIE_ID_tags_1, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_ID_tags_1) - /sizeof(asn_DEF_ProtocolIE_ID_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_ID_constr_1, ProtocolIE_ID_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/ProtocolIE-ID.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/ProtocolIE-ID.h deleted file mode 100644 index f6d2261..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/ProtocolIE-ID.h +++ /dev/null @@ -1,76 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-CommonDataTypes" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _ProtocolIE_ID_H_ -#define _ProtocolIE_ID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeInteger.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* ProtocolIE-ID */ -typedef long ProtocolIE_ID_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_ProtocolIE_ID_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ID; -asn_struct_free_f ProtocolIE_ID_free; -asn_struct_print_f ProtocolIE_ID_print; -asn_constr_check_f ProtocolIE_ID_constraint; -ber_type_decoder_f ProtocolIE_ID_decode_ber; -der_type_encoder_f ProtocolIE_ID_encode_der; -xer_type_decoder_f ProtocolIE_ID_decode_xer; -xer_type_encoder_f ProtocolIE_ID_encode_xer; -per_type_decoder_f ProtocolIE_ID_decode_uper; -per_type_encoder_f ProtocolIE_ID_encode_uper; -per_type_decoder_f ProtocolIE_ID_decode_aper; -per_type_encoder_f ProtocolIE_ID_encode_aper; -#define ProtocolIE_ID_id_Cause ((ProtocolIE_ID_t)1) -#define ProtocolIE_ID_id_CriticalityDiagnostics ((ProtocolIE_ID_t)2) -#define ProtocolIE_ID_id_GlobalE2node_ID ((ProtocolIE_ID_t)3) -#define ProtocolIE_ID_id_GlobalRIC_ID ((ProtocolIE_ID_t)4) -#define ProtocolIE_ID_id_RANfunctionID ((ProtocolIE_ID_t)5) -#define ProtocolIE_ID_id_RANfunctionID_Item ((ProtocolIE_ID_t)6) -#define ProtocolIE_ID_id_RANfunctionIEcause_Item ((ProtocolIE_ID_t)7) -#define ProtocolIE_ID_id_RANfunction_Item ((ProtocolIE_ID_t)8) -#define ProtocolIE_ID_id_RANfunctionsAccepted ((ProtocolIE_ID_t)9) -#define ProtocolIE_ID_id_RANfunctionsAdded ((ProtocolIE_ID_t)10) -#define ProtocolIE_ID_id_RANfunctionsDeleted ((ProtocolIE_ID_t)11) -#define ProtocolIE_ID_id_RANfunctionsModified ((ProtocolIE_ID_t)12) -#define ProtocolIE_ID_id_RANfunctionsRejected ((ProtocolIE_ID_t)13) -#define ProtocolIE_ID_id_RICaction_Admitted_Item ((ProtocolIE_ID_t)14) -#define ProtocolIE_ID_id_RICactionID ((ProtocolIE_ID_t)15) -#define ProtocolIE_ID_id_RICaction_NotAdmitted_Item ((ProtocolIE_ID_t)16) -#define ProtocolIE_ID_id_RICactions_Admitted ((ProtocolIE_ID_t)17) -#define ProtocolIE_ID_id_RICactions_NotAdmitted ((ProtocolIE_ID_t)18) -#define ProtocolIE_ID_id_RICaction_ToBeSetup_Item ((ProtocolIE_ID_t)19) -#define ProtocolIE_ID_id_RICcallProcessID ((ProtocolIE_ID_t)20) -#define ProtocolIE_ID_id_RICcontrolAckRequest ((ProtocolIE_ID_t)21) -#define ProtocolIE_ID_id_RICcontrolHeader ((ProtocolIE_ID_t)22) -#define ProtocolIE_ID_id_RICcontrolMessage ((ProtocolIE_ID_t)23) -#define ProtocolIE_ID_id_RICcontrolStatus ((ProtocolIE_ID_t)24) -#define ProtocolIE_ID_id_RICindicationHeader ((ProtocolIE_ID_t)25) -#define ProtocolIE_ID_id_RICindicationMessage ((ProtocolIE_ID_t)26) -#define ProtocolIE_ID_id_RICindicationSN ((ProtocolIE_ID_t)27) -#define ProtocolIE_ID_id_RICindicationType ((ProtocolIE_ID_t)28) -#define ProtocolIE_ID_id_RICrequestID ((ProtocolIE_ID_t)29) -#define ProtocolIE_ID_id_RICsubscriptionDetails ((ProtocolIE_ID_t)30) -#define ProtocolIE_ID_id_TimeToWait ((ProtocolIE_ID_t)31) -#define ProtocolIE_ID_id_RICcontrolOutcome ((ProtocolIE_ID_t)32) - -#ifdef __cplusplus -} -#endif - -#endif /* _ProtocolIE_ID_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/ProtocolIE-SingleContainer.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/ProtocolIE-SingleContainer.c deleted file mode 100644 index c516962..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/ProtocolIE-SingleContainer.c +++ /dev/null @@ -1,147 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-Containers" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "ProtocolIE-SingleContainer.h" - -/* - * This type is implemented using RICaction_ToBeSetup_ItemIEs, - * so here we adjust the DEF accordingly. - */ -/* - * This type is implemented using RICaction_Admitted_ItemIEs, - * so here we adjust the DEF accordingly. - */ -/* - * This type is implemented using RICaction_NotAdmitted_ItemIEs, - * so here we adjust the DEF accordingly. - */ -/* - * This type is implemented using RANfunction_ItemIEs, - * so here we adjust the DEF accordingly. - */ -/* - * This type is implemented using RANfunctionID_ItemIEs, - * so here we adjust the DEF accordingly. - */ -/* - * This type is implemented using RANfunctionIDcause_ItemIEs, - * so here we adjust the DEF accordingly. - */ -static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_1530P0_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1530P0 = { - "ProtocolIE-SingleContainer", - "ProtocolIE-SingleContainer", - &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_SingleContainer_1530P0_tags_1, - sizeof(asn_DEF_ProtocolIE_SingleContainer_1530P0_tags_1) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1530P0_tags_1[0]), /* 1 */ - asn_DEF_ProtocolIE_SingleContainer_1530P0_tags_1, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_SingleContainer_1530P0_tags_1) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1530P0_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICaction_ToBeSetup_ItemIEs_1, - 3, /* Elements count */ - &asn_SPC_RICaction_ToBeSetup_ItemIEs_specs_1 /* Additional specs */ -}; - -static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_1530P1_tags_2[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1530P1 = { - "ProtocolIE-SingleContainer", - "ProtocolIE-SingleContainer", - &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_SingleContainer_1530P1_tags_2, - sizeof(asn_DEF_ProtocolIE_SingleContainer_1530P1_tags_2) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1530P1_tags_2[0]), /* 1 */ - asn_DEF_ProtocolIE_SingleContainer_1530P1_tags_2, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_SingleContainer_1530P1_tags_2) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1530P1_tags_2[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICaction_Admitted_ItemIEs_5, - 3, /* Elements count */ - &asn_SPC_RICaction_Admitted_ItemIEs_specs_5 /* Additional specs */ -}; - -static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_1530P2_tags_3[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1530P2 = { - "ProtocolIE-SingleContainer", - "ProtocolIE-SingleContainer", - &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_SingleContainer_1530P2_tags_3, - sizeof(asn_DEF_ProtocolIE_SingleContainer_1530P2_tags_3) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1530P2_tags_3[0]), /* 1 */ - asn_DEF_ProtocolIE_SingleContainer_1530P2_tags_3, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_SingleContainer_1530P2_tags_3) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1530P2_tags_3[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICaction_NotAdmitted_ItemIEs_9, - 3, /* Elements count */ - &asn_SPC_RICaction_NotAdmitted_ItemIEs_specs_9 /* Additional specs */ -}; - -static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_1530P3_tags_4[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1530P3 = { - "ProtocolIE-SingleContainer", - "ProtocolIE-SingleContainer", - &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_SingleContainer_1530P3_tags_4, - sizeof(asn_DEF_ProtocolIE_SingleContainer_1530P3_tags_4) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1530P3_tags_4[0]), /* 1 */ - asn_DEF_ProtocolIE_SingleContainer_1530P3_tags_4, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_SingleContainer_1530P3_tags_4) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1530P3_tags_4[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RANfunction_ItemIEs_13, - 3, /* Elements count */ - &asn_SPC_RANfunction_ItemIEs_specs_13 /* Additional specs */ -}; - -static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_1530P4_tags_5[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1530P4 = { - "ProtocolIE-SingleContainer", - "ProtocolIE-SingleContainer", - &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_SingleContainer_1530P4_tags_5, - sizeof(asn_DEF_ProtocolIE_SingleContainer_1530P4_tags_5) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1530P4_tags_5[0]), /* 1 */ - asn_DEF_ProtocolIE_SingleContainer_1530P4_tags_5, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_SingleContainer_1530P4_tags_5) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1530P4_tags_5[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RANfunctionID_ItemIEs_17, - 3, /* Elements count */ - &asn_SPC_RANfunctionID_ItemIEs_specs_17 /* Additional specs */ -}; - -static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_1530P5_tags_6[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1530P5 = { - "ProtocolIE-SingleContainer", - "ProtocolIE-SingleContainer", - &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_SingleContainer_1530P5_tags_6, - sizeof(asn_DEF_ProtocolIE_SingleContainer_1530P5_tags_6) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1530P5_tags_6[0]), /* 1 */ - asn_DEF_ProtocolIE_SingleContainer_1530P5_tags_6, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_SingleContainer_1530P5_tags_6) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1530P5_tags_6[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RANfunctionIDcause_ItemIEs_21, - 3, /* Elements count */ - &asn_SPC_RANfunctionIDcause_ItemIEs_specs_21 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/ProtocolIE-SingleContainer.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/ProtocolIE-SingleContainer.h deleted file mode 100644 index b17c298..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/ProtocolIE-SingleContainer.h +++ /dev/null @@ -1,108 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-Containers" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _ProtocolIE_SingleContainer_H_ -#define _ProtocolIE_SingleContainer_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Field.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* ProtocolIE-SingleContainer */ -typedef RICaction_ToBeSetup_ItemIEs_t ProtocolIE_SingleContainer_1530P0_t; -typedef RICaction_Admitted_ItemIEs_t ProtocolIE_SingleContainer_1530P1_t; -typedef RICaction_NotAdmitted_ItemIEs_t ProtocolIE_SingleContainer_1530P2_t; -typedef RANfunction_ItemIEs_t ProtocolIE_SingleContainer_1530P3_t; -typedef RANfunctionID_ItemIEs_t ProtocolIE_SingleContainer_1530P4_t; -typedef RANfunctionIDcause_ItemIEs_t ProtocolIE_SingleContainer_1530P5_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1530P0; -asn_struct_free_f ProtocolIE_SingleContainer_1530P0_free; -asn_struct_print_f ProtocolIE_SingleContainer_1530P0_print; -asn_constr_check_f ProtocolIE_SingleContainer_1530P0_constraint; -ber_type_decoder_f ProtocolIE_SingleContainer_1530P0_decode_ber; -der_type_encoder_f ProtocolIE_SingleContainer_1530P0_encode_der; -xer_type_decoder_f ProtocolIE_SingleContainer_1530P0_decode_xer; -xer_type_encoder_f ProtocolIE_SingleContainer_1530P0_encode_xer; -per_type_decoder_f ProtocolIE_SingleContainer_1530P0_decode_uper; -per_type_encoder_f ProtocolIE_SingleContainer_1530P0_encode_uper; -per_type_decoder_f ProtocolIE_SingleContainer_1530P0_decode_aper; -per_type_encoder_f ProtocolIE_SingleContainer_1530P0_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1530P1; -asn_struct_free_f ProtocolIE_SingleContainer_1530P1_free; -asn_struct_print_f ProtocolIE_SingleContainer_1530P1_print; -asn_constr_check_f ProtocolIE_SingleContainer_1530P1_constraint; -ber_type_decoder_f ProtocolIE_SingleContainer_1530P1_decode_ber; -der_type_encoder_f ProtocolIE_SingleContainer_1530P1_encode_der; -xer_type_decoder_f ProtocolIE_SingleContainer_1530P1_decode_xer; -xer_type_encoder_f ProtocolIE_SingleContainer_1530P1_encode_xer; -per_type_decoder_f ProtocolIE_SingleContainer_1530P1_decode_uper; -per_type_encoder_f ProtocolIE_SingleContainer_1530P1_encode_uper; -per_type_decoder_f ProtocolIE_SingleContainer_1530P1_decode_aper; -per_type_encoder_f ProtocolIE_SingleContainer_1530P1_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1530P2; -asn_struct_free_f ProtocolIE_SingleContainer_1530P2_free; -asn_struct_print_f ProtocolIE_SingleContainer_1530P2_print; -asn_constr_check_f ProtocolIE_SingleContainer_1530P2_constraint; -ber_type_decoder_f ProtocolIE_SingleContainer_1530P2_decode_ber; -der_type_encoder_f ProtocolIE_SingleContainer_1530P2_encode_der; -xer_type_decoder_f ProtocolIE_SingleContainer_1530P2_decode_xer; -xer_type_encoder_f ProtocolIE_SingleContainer_1530P2_encode_xer; -per_type_decoder_f ProtocolIE_SingleContainer_1530P2_decode_uper; -per_type_encoder_f ProtocolIE_SingleContainer_1530P2_encode_uper; -per_type_decoder_f ProtocolIE_SingleContainer_1530P2_decode_aper; -per_type_encoder_f ProtocolIE_SingleContainer_1530P2_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1530P3; -asn_struct_free_f ProtocolIE_SingleContainer_1530P3_free; -asn_struct_print_f ProtocolIE_SingleContainer_1530P3_print; -asn_constr_check_f ProtocolIE_SingleContainer_1530P3_constraint; -ber_type_decoder_f ProtocolIE_SingleContainer_1530P3_decode_ber; -der_type_encoder_f ProtocolIE_SingleContainer_1530P3_encode_der; -xer_type_decoder_f ProtocolIE_SingleContainer_1530P3_decode_xer; -xer_type_encoder_f ProtocolIE_SingleContainer_1530P3_encode_xer; -per_type_decoder_f ProtocolIE_SingleContainer_1530P3_decode_uper; -per_type_encoder_f ProtocolIE_SingleContainer_1530P3_encode_uper; -per_type_decoder_f ProtocolIE_SingleContainer_1530P3_decode_aper; -per_type_encoder_f ProtocolIE_SingleContainer_1530P3_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1530P4; -asn_struct_free_f ProtocolIE_SingleContainer_1530P4_free; -asn_struct_print_f ProtocolIE_SingleContainer_1530P4_print; -asn_constr_check_f ProtocolIE_SingleContainer_1530P4_constraint; -ber_type_decoder_f ProtocolIE_SingleContainer_1530P4_decode_ber; -der_type_encoder_f ProtocolIE_SingleContainer_1530P4_encode_der; -xer_type_decoder_f ProtocolIE_SingleContainer_1530P4_decode_xer; -xer_type_encoder_f ProtocolIE_SingleContainer_1530P4_encode_xer; -per_type_decoder_f ProtocolIE_SingleContainer_1530P4_decode_uper; -per_type_encoder_f ProtocolIE_SingleContainer_1530P4_encode_uper; -per_type_decoder_f ProtocolIE_SingleContainer_1530P4_decode_aper; -per_type_encoder_f ProtocolIE_SingleContainer_1530P4_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1530P5; -asn_struct_free_f ProtocolIE_SingleContainer_1530P5_free; -asn_struct_print_f ProtocolIE_SingleContainer_1530P5_print; -asn_constr_check_f ProtocolIE_SingleContainer_1530P5_constraint; -ber_type_decoder_f ProtocolIE_SingleContainer_1530P5_decode_ber; -der_type_encoder_f ProtocolIE_SingleContainer_1530P5_encode_der; -xer_type_decoder_f ProtocolIE_SingleContainer_1530P5_decode_xer; -xer_type_encoder_f ProtocolIE_SingleContainer_1530P5_encode_xer; -per_type_decoder_f ProtocolIE_SingleContainer_1530P5_decode_uper; -per_type_encoder_f ProtocolIE_SingleContainer_1530P5_encode_uper; -per_type_decoder_f ProtocolIE_SingleContainer_1530P5_decode_aper; -per_type_encoder_f ProtocolIE_SingleContainer_1530P5_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _ProtocolIE_SingleContainer_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RAN-Container.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/RAN-Container.c deleted file mode 100644 index 373508b..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RAN-Container.c +++ /dev/null @@ -1,127 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "RAN-Container.h" - -static asn_oer_constraints_t asn_OER_type_reportContainer_constr_3 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_type_reportContainer_constr_3 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 2 } /* (0..2,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_reportContainer_3[] = { - { ATF_NOFLAGS, 0, offsetof(struct RAN_Container__reportContainer, choice.oDU_UE), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_DU_Usage_Report_Per_UE, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "oDU-UE" - }, - { ATF_NOFLAGS, 0, offsetof(struct RAN_Container__reportContainer, choice.oCU_CP_UE), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_CU_CP_Usage_Report_Per_UE, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "oCU-CP-UE" - }, - { ATF_NOFLAGS, 0, offsetof(struct RAN_Container__reportContainer, choice.oCU_UP_UE), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_CU_UP_Usage_Report_Per_UE, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "oCU-UP-UE" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_reportContainer_tag2el_3[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* oDU-UE */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* oCU-CP-UE */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* oCU-UP-UE */ -}; -static asn_CHOICE_specifics_t asn_SPC_reportContainer_specs_3 = { - sizeof(struct RAN_Container__reportContainer), - offsetof(struct RAN_Container__reportContainer, _asn_ctx), - offsetof(struct RAN_Container__reportContainer, present), - sizeof(((struct RAN_Container__reportContainer *)0)->present), - asn_MAP_reportContainer_tag2el_3, - 3, /* Count of tags in the map */ - 0, 0, - 3 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_reportContainer_3 = { - "reportContainer", - "reportContainer", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { &asn_OER_type_reportContainer_constr_3, &asn_PER_type_reportContainer_constr_3, CHOICE_constraint }, - asn_MBR_reportContainer_3, - 3, /* Elements count */ - &asn_SPC_reportContainer_specs_3 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_RAN_Container_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RAN_Container, timestamp), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Timestamp, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "timestamp" - }, - { ATF_NOFLAGS, 0, offsetof(struct RAN_Container, reportContainer), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_reportContainer_3, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "reportContainer" - }, -}; -static const ber_tlv_tag_t asn_DEF_RAN_Container_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RAN_Container_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* timestamp */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* reportContainer */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RAN_Container_specs_1 = { - sizeof(struct RAN_Container), - offsetof(struct RAN_Container, _asn_ctx), - asn_MAP_RAN_Container_tag2el_1, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 2, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RAN_Container = { - "RAN-Container", - "RAN-Container", - &asn_OP_SEQUENCE, - asn_DEF_RAN_Container_tags_1, - sizeof(asn_DEF_RAN_Container_tags_1) - /sizeof(asn_DEF_RAN_Container_tags_1[0]), /* 1 */ - asn_DEF_RAN_Container_tags_1, /* Same as above */ - sizeof(asn_DEF_RAN_Container_tags_1) - /sizeof(asn_DEF_RAN_Container_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RAN_Container_1, - 2, /* Elements count */ - &asn_SPC_RAN_Container_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RAN-Container.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/RAN-Container.h deleted file mode 100644 index 8184460..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RAN-Container.h +++ /dev/null @@ -1,73 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _RAN_Container_H_ -#define _RAN_Container_H_ - - -#include - -/* Including external dependencies */ -#include "Timestamp.h" -#include "DU-Usage-Report-Per-UE.h" -#include "CU-CP-Usage-Report-Per-UE.h" -#include "CU-UP-Usage-Report-Per-UE.h" -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum RAN_Container__reportContainer_PR { - RAN_Container__reportContainer_PR_NOTHING, /* No components present */ - RAN_Container__reportContainer_PR_oDU_UE, - RAN_Container__reportContainer_PR_oCU_CP_UE, - RAN_Container__reportContainer_PR_oCU_UP_UE - /* Extensions may appear below */ - -} RAN_Container__reportContainer_PR; - -/* RAN-Container */ -typedef struct RAN_Container { - Timestamp_t timestamp; - struct RAN_Container__reportContainer { - RAN_Container__reportContainer_PR present; - union RAN_Container__reportContainer_u { - DU_Usage_Report_Per_UE_t oDU_UE; - CU_CP_Usage_Report_Per_UE_t oCU_CP_UE; - CU_UP_Usage_Report_Per_UE_t oCU_UP_UE; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } reportContainer; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RAN_Container_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RAN_Container; -extern asn_SEQUENCE_specifics_t asn_SPC_RAN_Container_specs_1; -extern asn_TYPE_member_t asn_MBR_RAN_Container_1[2]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RAN_Container_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RANcallProcess-ID-string.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/RANcallProcess-ID-string.c deleted file mode 100644 index 4cd1b70..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RANcallProcess-ID-string.c +++ /dev/null @@ -1,109 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "RANcallProcess-ID-string.h" - -static const int permitted_alphabet_table_1[256] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */ - 1, 0, 0, 0, 0, 0, 0, 2, 3, 4, 0, 5, 6, 7, 8, 9, /* . '() +,-./ */ -10,11,12,13,14,15,16,17,18,19,20, 0, 0,21, 0,22, /* 0123456789: = ? */ - 0,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37, /* ABCDEFGHIJKLMNO */ -38,39,40,41,42,43,44,45,46,47,48, 0, 0, 0, 0, 0, /* PQRSTUVWXYZ */ - 0,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63, /* abcdefghijklmno */ -64,65,66,67,68,69,70,71,72,73,74, 0, 0, 0, 0, 0, /* pqrstuvwxyz */ -}; -static const int permitted_alphabet_code2value_1[74] = { -32,39,40,41,43,44,45,46,47,48,49,50,51,52,53,54, -55,56,57,58,61,63,65,66,67,68,69,70,71,72,73,74, -75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90, -97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112, -113,114,115,116,117,118,119,120,121,122,}; - - -static int check_permitted_alphabet_1(const void *sptr) { - const int *table = permitted_alphabet_table_1; - /* The underlying type is PrintableString */ - const PrintableString_t *st = (const PrintableString_t *)sptr; - const uint8_t *ch = st->buf; - const uint8_t *end = ch + st->size; - - for(; ch < end; ch++) { - uint8_t cv = *ch; - if(!table[cv]) return -1; - } - return 0; -} - -int -RANcallProcess_ID_string_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const PrintableString_t *st = (const PrintableString_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - size = st->size; - - if((size >= 1 && size <= 150) - && !check_permitted_alphabet_1(st)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int asn_PER_MAP_RANcallProcess_ID_string_1_v2c(unsigned int value) { - if(value >= sizeof(permitted_alphabet_table_1)/sizeof(permitted_alphabet_table_1[0])) - return -1; - return permitted_alphabet_table_1[value] - 1; -} -static int asn_PER_MAP_RANcallProcess_ID_string_1_c2v(unsigned int code) { - if(code >= sizeof(permitted_alphabet_code2value_1)/sizeof(permitted_alphabet_code2value_1[0])) - return -1; - return permitted_alphabet_code2value_1[code]; -} -/* - * This type is implemented using PrintableString, - * so here we adjust the DEF accordingly. - */ -static asn_oer_constraints_t asn_OER_type_RANcallProcess_ID_string_constr_1 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(0..MAX)) */}; -static asn_per_constraints_t asn_PER_type_RANcallProcess_ID_string_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED, 7, 7, 32, 122 } /* (32..122) */, - { APC_CONSTRAINED | APC_EXTENSIBLE, 8, 8, 1, 150 } /* (SIZE(1..150,...)) */, - asn_PER_MAP_RANcallProcess_ID_string_1_v2c, /* Value to PER code map */ - asn_PER_MAP_RANcallProcess_ID_string_1_c2v /* PER code to value map */ -}; -static const ber_tlv_tag_t asn_DEF_RANcallProcess_ID_string_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (19 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RANcallProcess_ID_string = { - "RANcallProcess-ID-string", - "RANcallProcess-ID-string", - &asn_OP_PrintableString, - asn_DEF_RANcallProcess_ID_string_tags_1, - sizeof(asn_DEF_RANcallProcess_ID_string_tags_1) - /sizeof(asn_DEF_RANcallProcess_ID_string_tags_1[0]), /* 1 */ - asn_DEF_RANcallProcess_ID_string_tags_1, /* Same as above */ - sizeof(asn_DEF_RANcallProcess_ID_string_tags_1) - /sizeof(asn_DEF_RANcallProcess_ID_string_tags_1[0]), /* 1 */ - { &asn_OER_type_RANcallProcess_ID_string_constr_1, &asn_PER_type_RANcallProcess_ID_string_constr_1, RANcallProcess_ID_string_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RANcallProcess-ID-string.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/RANcallProcess-ID-string.h deleted file mode 100644 index 087cdc0..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RANcallProcess-ID-string.h +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _RANcallProcess_ID_string_H_ -#define _RANcallProcess_ID_string_H_ - - -#include - -/* Including external dependencies */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* RANcallProcess-ID-string */ -typedef PrintableString_t RANcallProcess_ID_string_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RANcallProcess_ID_string; -asn_struct_free_f RANcallProcess_ID_string_free; -asn_struct_print_f RANcallProcess_ID_string_print; -asn_constr_check_f RANcallProcess_ID_string_constraint; -ber_type_decoder_f RANcallProcess_ID_string_decode_ber; -der_type_encoder_f RANcallProcess_ID_string_encode_der; -xer_type_decoder_f RANcallProcess_ID_string_decode_xer; -xer_type_encoder_f RANcallProcess_ID_string_encode_xer; -oer_type_decoder_f RANcallProcess_ID_string_decode_oer; -oer_type_encoder_f RANcallProcess_ID_string_encode_oer; -per_type_decoder_f RANcallProcess_ID_string_decode_uper; -per_type_encoder_f RANcallProcess_ID_string_encode_uper; -per_type_decoder_f RANcallProcess_ID_string_decode_aper; -per_type_encoder_f RANcallProcess_ID_string_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RANcallProcess_ID_string_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RANfunction-Item.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/RANfunction-Item.c deleted file mode 100644 index f1554d0..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RANfunction-Item.c +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RANfunction-Item.h" - -static asn_TYPE_member_t asn_MBR_RANfunction_Item_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RANfunction_Item, ranFunctionID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RANfunctionID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ranFunctionID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RANfunction_Item, ranFunctionDefinition), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RANfunctionDefinition, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ranFunctionDefinition" - }, - { ATF_NOFLAGS, 0, offsetof(struct RANfunction_Item, ranFunctionRevision), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RANfunctionRevision, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ranFunctionRevision" - }, -}; -static const ber_tlv_tag_t asn_DEF_RANfunction_Item_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RANfunction_Item_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ranFunctionID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ranFunctionDefinition */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* ranFunctionRevision */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_RANfunction_Item_specs_1 = { - sizeof(struct RANfunction_Item), - offsetof(struct RANfunction_Item, _asn_ctx), - asn_MAP_RANfunction_Item_tag2el_1, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RANfunction_Item = { - "RANfunction-Item", - "RANfunction-Item", - &asn_OP_SEQUENCE, - asn_DEF_RANfunction_Item_tags_1, - sizeof(asn_DEF_RANfunction_Item_tags_1) - /sizeof(asn_DEF_RANfunction_Item_tags_1[0]), /* 1 */ - asn_DEF_RANfunction_Item_tags_1, /* Same as above */ - sizeof(asn_DEF_RANfunction_Item_tags_1) - /sizeof(asn_DEF_RANfunction_Item_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RANfunction_Item_1, - 3, /* Elements count */ - &asn_SPC_RANfunction_Item_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RANfunction-Item.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/RANfunction-Item.h deleted file mode 100644 index e7fd073..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RANfunction-Item.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RANfunction_Item_H_ -#define _RANfunction_Item_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "RANfunctionID.h" -#include "RANfunctionDefinition.h" -#include "RANfunctionRevision.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RANfunction-Item */ -typedef struct RANfunction_Item { - RANfunctionID_t ranFunctionID; - RANfunctionDefinition_t ranFunctionDefinition; - RANfunctionRevision_t ranFunctionRevision; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RANfunction_Item_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RANfunction_Item; - -#ifdef __cplusplus -} -#endif - -#endif /* _RANfunction_Item_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RANfunction-Name.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/RANfunction-Name.c deleted file mode 100644 index 72a90a9..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RANfunction-Name.c +++ /dev/null @@ -1,316 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "RANfunction-Name.h" - -static const int permitted_alphabet_table_2[256] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */ - 1, 0, 0, 0, 0, 0, 0, 2, 3, 4, 0, 5, 6, 7, 8, 9, /* . '() +,-./ */ -10,11,12,13,14,15,16,17,18,19,20, 0, 0,21, 0,22, /* 0123456789: = ? */ - 0,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37, /* ABCDEFGHIJKLMNO */ -38,39,40,41,42,43,44,45,46,47,48, 0, 0, 0, 0, 0, /* PQRSTUVWXYZ */ - 0,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63, /* abcdefghijklmno */ -64,65,66,67,68,69,70,71,72,73,74, 0, 0, 0, 0, 0, /* pqrstuvwxyz */ -}; -static const int permitted_alphabet_code2value_2[74] = { -32,39,40,41,43,44,45,46,47,48,49,50,51,52,53,54, -55,56,57,58,61,63,65,66,67,68,69,70,71,72,73,74, -75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90, -97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112, -113,114,115,116,117,118,119,120,121,122,}; - - -static int check_permitted_alphabet_2(const void *sptr) { - const int *table = permitted_alphabet_table_2; - /* The underlying type is PrintableString */ - const PrintableString_t *st = (const PrintableString_t *)sptr; - const uint8_t *ch = st->buf; - const uint8_t *end = ch + st->size; - - for(; ch < end; ch++) { - uint8_t cv = *ch; - if(!table[cv]) return -1; - } - return 0; -} - -static const int permitted_alphabet_table_3[256] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */ - 1, 0, 0, 0, 0, 0, 0, 2, 3, 4, 0, 5, 6, 7, 8, 9, /* . '() +,-./ */ -10,11,12,13,14,15,16,17,18,19,20, 0, 0,21, 0,22, /* 0123456789: = ? */ - 0,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37, /* ABCDEFGHIJKLMNO */ -38,39,40,41,42,43,44,45,46,47,48, 0, 0, 0, 0, 0, /* PQRSTUVWXYZ */ - 0,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63, /* abcdefghijklmno */ -64,65,66,67,68,69,70,71,72,73,74, 0, 0, 0, 0, 0, /* pqrstuvwxyz */ -}; -static const int permitted_alphabet_code2value_3[74] = { -32,39,40,41,43,44,45,46,47,48,49,50,51,52,53,54, -55,56,57,58,61,63,65,66,67,68,69,70,71,72,73,74, -75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90, -97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112, -113,114,115,116,117,118,119,120,121,122,}; - - -static int check_permitted_alphabet_3(const void *sptr) { - const int *table = permitted_alphabet_table_3; - /* The underlying type is PrintableString */ - const PrintableString_t *st = (const PrintableString_t *)sptr; - const uint8_t *ch = st->buf; - const uint8_t *end = ch + st->size; - - for(; ch < end; ch++) { - uint8_t cv = *ch; - if(!table[cv]) return -1; - } - return 0; -} - -static const int permitted_alphabet_table_4[256] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */ - 1, 0, 0, 0, 0, 0, 0, 2, 3, 4, 0, 5, 6, 7, 8, 9, /* . '() +,-./ */ -10,11,12,13,14,15,16,17,18,19,20, 0, 0,21, 0,22, /* 0123456789: = ? */ - 0,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37, /* ABCDEFGHIJKLMNO */ -38,39,40,41,42,43,44,45,46,47,48, 0, 0, 0, 0, 0, /* PQRSTUVWXYZ */ - 0,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63, /* abcdefghijklmno */ -64,65,66,67,68,69,70,71,72,73,74, 0, 0, 0, 0, 0, /* pqrstuvwxyz */ -}; -static const int permitted_alphabet_code2value_4[74] = { -32,39,40,41,43,44,45,46,47,48,49,50,51,52,53,54, -55,56,57,58,61,63,65,66,67,68,69,70,71,72,73,74, -75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90, -97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112, -113,114,115,116,117,118,119,120,121,122,}; - - -static int check_permitted_alphabet_4(const void *sptr) { - const int *table = permitted_alphabet_table_4; - /* The underlying type is PrintableString */ - const PrintableString_t *st = (const PrintableString_t *)sptr; - const uint8_t *ch = st->buf; - const uint8_t *end = ch + st->size; - - for(; ch < end; ch++) { - uint8_t cv = *ch; - if(!table[cv]) return -1; - } - return 0; -} - -static int -memb_ranFunction_ShortName_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const PrintableString_t *st = (const PrintableString_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - size = st->size; - - if((size >= 1 && size <= 150) - && !check_permitted_alphabet_2(st)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int asn_PER_MAP_ranFunction_ShortName_2_v2c(unsigned int value) { - if(value >= sizeof(permitted_alphabet_table_2)/sizeof(permitted_alphabet_table_2[0])) - return -1; - return permitted_alphabet_table_2[value] - 1; -} -static int asn_PER_MAP_ranFunction_ShortName_2_c2v(unsigned int code) { - if(code >= sizeof(permitted_alphabet_code2value_2)/sizeof(permitted_alphabet_code2value_2[0])) - return -1; - return permitted_alphabet_code2value_2[code]; -} -static int -memb_ranFunction_E2SM_OID_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const PrintableString_t *st = (const PrintableString_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - size = st->size; - - if((size >= 1 && size <= 1000) - && !check_permitted_alphabet_3(st)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int asn_PER_MAP_ranFunction_E2SM_OID_3_v2c(unsigned int value) { - if(value >= sizeof(permitted_alphabet_table_3)/sizeof(permitted_alphabet_table_3[0])) - return -1; - return permitted_alphabet_table_3[value] - 1; -} -static int asn_PER_MAP_ranFunction_E2SM_OID_3_c2v(unsigned int code) { - if(code >= sizeof(permitted_alphabet_code2value_3)/sizeof(permitted_alphabet_code2value_3[0])) - return -1; - return permitted_alphabet_code2value_3[code]; -} -static int -memb_ranFunction_Description_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const PrintableString_t *st = (const PrintableString_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - size = st->size; - - if((size >= 1 && size <= 150) - && !check_permitted_alphabet_4(st)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int asn_PER_MAP_ranFunction_Description_4_v2c(unsigned int value) { - if(value >= sizeof(permitted_alphabet_table_4)/sizeof(permitted_alphabet_table_4[0])) - return -1; - return permitted_alphabet_table_4[value] - 1; -} -static int asn_PER_MAP_ranFunction_Description_4_c2v(unsigned int code) { - if(code >= sizeof(permitted_alphabet_code2value_4)/sizeof(permitted_alphabet_code2value_4[0])) - return -1; - return permitted_alphabet_code2value_4[code]; -} -static asn_oer_constraints_t asn_OER_memb_ranFunction_ShortName_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(0..MAX)) */}; -static asn_per_constraints_t asn_PER_memb_ranFunction_ShortName_constr_2 CC_NOTUSED = { - { APC_CONSTRAINED, 7, 7, 32, 122 } /* (32..122) */, - { APC_CONSTRAINED | APC_EXTENSIBLE, 8, 8, 1, 150 } /* (SIZE(1..150,...)) */, - asn_PER_MAP_ranFunction_ShortName_2_v2c, /* Value to PER code map */ - asn_PER_MAP_ranFunction_ShortName_2_c2v /* PER code to value map */ -}; -static asn_oer_constraints_t asn_OER_memb_ranFunction_E2SM_OID_constr_3 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(0..MAX)) */}; -static asn_per_constraints_t asn_PER_memb_ranFunction_E2SM_OID_constr_3 CC_NOTUSED = { - { APC_CONSTRAINED, 7, 7, 32, 122 } /* (32..122) */, - { APC_CONSTRAINED | APC_EXTENSIBLE, 10, 10, 1, 1000 } /* (SIZE(1..1000,...)) */, - asn_PER_MAP_ranFunction_E2SM_OID_3_v2c, /* Value to PER code map */ - asn_PER_MAP_ranFunction_E2SM_OID_3_c2v /* PER code to value map */ -}; -static asn_oer_constraints_t asn_OER_memb_ranFunction_Description_constr_4 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(0..MAX)) */}; -static asn_per_constraints_t asn_PER_memb_ranFunction_Description_constr_4 CC_NOTUSED = { - { APC_CONSTRAINED, 7, 7, 32, 122 } /* (32..122) */, - { APC_CONSTRAINED | APC_EXTENSIBLE, 8, 8, 1, 150 } /* (SIZE(1..150,...)) */, - asn_PER_MAP_ranFunction_Description_4_v2c, /* Value to PER code map */ - asn_PER_MAP_ranFunction_Description_4_c2v /* PER code to value map */ -}; -asn_TYPE_member_t asn_MBR_RANfunction_Name_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RANfunction_Name, ranFunction_ShortName), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_PrintableString, - 0, - { &asn_OER_memb_ranFunction_ShortName_constr_2, &asn_PER_memb_ranFunction_ShortName_constr_2, memb_ranFunction_ShortName_constraint_1 }, - 0, 0, /* No default value */ - "ranFunction-ShortName" - }, - { ATF_NOFLAGS, 0, offsetof(struct RANfunction_Name, ranFunction_E2SM_OID), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_PrintableString, - 0, - { &asn_OER_memb_ranFunction_E2SM_OID_constr_3, &asn_PER_memb_ranFunction_E2SM_OID_constr_3, memb_ranFunction_E2SM_OID_constraint_1 }, - 0, 0, /* No default value */ - "ranFunction-E2SM-OID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RANfunction_Name, ranFunction_Description), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_PrintableString, - 0, - { &asn_OER_memb_ranFunction_Description_constr_4, &asn_PER_memb_ranFunction_Description_constr_4, memb_ranFunction_Description_constraint_1 }, - 0, 0, /* No default value */ - "ranFunction-Description" - }, - { ATF_POINTER, 1, offsetof(struct RANfunction_Name, ranFunction_Instance), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ranFunction-Instance" - }, -}; -static const int asn_MAP_RANfunction_Name_oms_1[] = { 3 }; -static const ber_tlv_tag_t asn_DEF_RANfunction_Name_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RANfunction_Name_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ranFunction-ShortName */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ranFunction-E2SM-OID */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* ranFunction-Description */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* ranFunction-Instance */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RANfunction_Name_specs_1 = { - sizeof(struct RANfunction_Name), - offsetof(struct RANfunction_Name, _asn_ctx), - asn_MAP_RANfunction_Name_tag2el_1, - 4, /* Count of tags in the map */ - asn_MAP_RANfunction_Name_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 4, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RANfunction_Name = { - "RANfunction-Name", - "RANfunction-Name", - &asn_OP_SEQUENCE, - asn_DEF_RANfunction_Name_tags_1, - sizeof(asn_DEF_RANfunction_Name_tags_1) - /sizeof(asn_DEF_RANfunction_Name_tags_1[0]), /* 1 */ - asn_DEF_RANfunction_Name_tags_1, /* Same as above */ - sizeof(asn_DEF_RANfunction_Name_tags_1) - /sizeof(asn_DEF_RANfunction_Name_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RANfunction_Name_1, - 4, /* Elements count */ - &asn_SPC_RANfunction_Name_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RANfunction-Name.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/RANfunction-Name.h deleted file mode 100644 index 0fe182b..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RANfunction-Name.h +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _RANfunction_Name_H_ -#define _RANfunction_Name_H_ - - -#include - -/* Including external dependencies */ -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* RANfunction-Name */ -typedef struct RANfunction_Name { - PrintableString_t ranFunction_ShortName; - PrintableString_t ranFunction_E2SM_OID; - PrintableString_t ranFunction_Description; - long *ranFunction_Instance; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RANfunction_Name_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RANfunction_Name; -extern asn_SEQUENCE_specifics_t asn_SPC_RANfunction_Name_specs_1; -extern asn_TYPE_member_t asn_MBR_RANfunction_Name_1[4]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RANfunction_Name_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RANfunctionDefinition.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/RANfunctionDefinition.c deleted file mode 100644 index 3d8697d..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RANfunctionDefinition.c +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RANfunctionDefinition.h" - -/* - * This type is implemented using OCTET_STRING, - * so here we adjust the DEF accordingly. - */ -static const ber_tlv_tag_t asn_DEF_RANfunctionDefinition_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RANfunctionDefinition = { - "RANfunctionDefinition", - "RANfunctionDefinition", - &asn_OP_OCTET_STRING, - asn_DEF_RANfunctionDefinition_tags_1, - sizeof(asn_DEF_RANfunctionDefinition_tags_1) - /sizeof(asn_DEF_RANfunctionDefinition_tags_1[0]), /* 1 */ - asn_DEF_RANfunctionDefinition_tags_1, /* Same as above */ - sizeof(asn_DEF_RANfunctionDefinition_tags_1) - /sizeof(asn_DEF_RANfunctionDefinition_tags_1[0]), /* 1 */ - { 0, 0, OCTET_STRING_constraint }, - 0, 0, /* No members */ - &asn_SPC_OCTET_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RANfunctionDefinition.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/RANfunctionDefinition.h deleted file mode 100644 index 4e54dde..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RANfunctionDefinition.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RANfunctionDefinition_H_ -#define _RANfunctionDefinition_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "OCTET_STRING.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RANfunctionDefinition */ -typedef OCTET_STRING_t RANfunctionDefinition_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RANfunctionDefinition; -asn_struct_free_f RANfunctionDefinition_free; -asn_struct_print_f RANfunctionDefinition_print; -asn_constr_check_f RANfunctionDefinition_constraint; -ber_type_decoder_f RANfunctionDefinition_decode_ber; -der_type_encoder_f RANfunctionDefinition_encode_der; -xer_type_decoder_f RANfunctionDefinition_decode_xer; -xer_type_encoder_f RANfunctionDefinition_encode_xer; -per_type_decoder_f RANfunctionDefinition_decode_uper; -per_type_encoder_f RANfunctionDefinition_encode_uper; -per_type_decoder_f RANfunctionDefinition_decode_aper; -per_type_encoder_f RANfunctionDefinition_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RANfunctionDefinition_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RANfunctionID-Item.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/RANfunctionID-Item.c deleted file mode 100644 index 7661a88..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RANfunctionID-Item.c +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RANfunctionID-Item.h" - -static asn_TYPE_member_t asn_MBR_RANfunctionID_Item_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RANfunctionID_Item, ranFunctionID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RANfunctionID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ranFunctionID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RANfunctionID_Item, ranFunctionRevision), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RANfunctionRevision, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ranFunctionRevision" - }, -}; -static const ber_tlv_tag_t asn_DEF_RANfunctionID_Item_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RANfunctionID_Item_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ranFunctionID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ranFunctionRevision */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_RANfunctionID_Item_specs_1 = { - sizeof(struct RANfunctionID_Item), - offsetof(struct RANfunctionID_Item, _asn_ctx), - asn_MAP_RANfunctionID_Item_tag2el_1, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 2, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RANfunctionID_Item = { - "RANfunctionID-Item", - "RANfunctionID-Item", - &asn_OP_SEQUENCE, - asn_DEF_RANfunctionID_Item_tags_1, - sizeof(asn_DEF_RANfunctionID_Item_tags_1) - /sizeof(asn_DEF_RANfunctionID_Item_tags_1[0]), /* 1 */ - asn_DEF_RANfunctionID_Item_tags_1, /* Same as above */ - sizeof(asn_DEF_RANfunctionID_Item_tags_1) - /sizeof(asn_DEF_RANfunctionID_Item_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RANfunctionID_Item_1, - 2, /* Elements count */ - &asn_SPC_RANfunctionID_Item_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RANfunctionID-Item.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/RANfunctionID-Item.h deleted file mode 100644 index 9b3be69..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RANfunctionID-Item.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RANfunctionID_Item_H_ -#define _RANfunctionID_Item_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "RANfunctionID.h" -#include "RANfunctionRevision.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RANfunctionID-Item */ -typedef struct RANfunctionID_Item { - RANfunctionID_t ranFunctionID; - RANfunctionRevision_t ranFunctionRevision; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RANfunctionID_Item_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RANfunctionID_Item; - -#ifdef __cplusplus -} -#endif - -#endif /* _RANfunctionID_Item_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RANfunctionID.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/RANfunctionID.c deleted file mode 100644 index fc95705..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RANfunctionID.c +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RANfunctionID.h" - -int -RANfunctionID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 4095)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using NativeInteger, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_RANfunctionID_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED, 12, 12, 0, 4095 } /* (0..4095) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_RANfunctionID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RANfunctionID = { - "RANfunctionID", - "RANfunctionID", - &asn_OP_NativeInteger, - asn_DEF_RANfunctionID_tags_1, - sizeof(asn_DEF_RANfunctionID_tags_1) - /sizeof(asn_DEF_RANfunctionID_tags_1[0]), /* 1 */ - asn_DEF_RANfunctionID_tags_1, /* Same as above */ - sizeof(asn_DEF_RANfunctionID_tags_1) - /sizeof(asn_DEF_RANfunctionID_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_RANfunctionID_constr_1, RANfunctionID_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RANfunctionID.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/RANfunctionID.h deleted file mode 100644 index f0a61a0..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RANfunctionID.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RANfunctionID_H_ -#define _RANfunctionID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeInteger.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RANfunctionID */ -typedef long RANfunctionID_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_RANfunctionID_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_RANfunctionID; -asn_struct_free_f RANfunctionID_free; -asn_struct_print_f RANfunctionID_print; -asn_constr_check_f RANfunctionID_constraint; -ber_type_decoder_f RANfunctionID_decode_ber; -der_type_encoder_f RANfunctionID_encode_der; -xer_type_decoder_f RANfunctionID_decode_xer; -xer_type_encoder_f RANfunctionID_encode_xer; -per_type_decoder_f RANfunctionID_decode_uper; -per_type_encoder_f RANfunctionID_encode_uper; -per_type_decoder_f RANfunctionID_decode_aper; -per_type_encoder_f RANfunctionID_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RANfunctionID_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RANfunctionIDcause-Item.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/RANfunctionIDcause-Item.c deleted file mode 100644 index 985330a..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RANfunctionIDcause-Item.c +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RANfunctionIDcause-Item.h" - -static asn_TYPE_member_t asn_MBR_RANfunctionIDcause_Item_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RANfunctionIDcause_Item, ranFunctionID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RANfunctionID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ranFunctionID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RANfunctionIDcause_Item, cause), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_Cause, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "cause" - }, -}; -static const ber_tlv_tag_t asn_DEF_RANfunctionIDcause_Item_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RANfunctionIDcause_Item_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ranFunctionID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* cause */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_RANfunctionIDcause_Item_specs_1 = { - sizeof(struct RANfunctionIDcause_Item), - offsetof(struct RANfunctionIDcause_Item, _asn_ctx), - asn_MAP_RANfunctionIDcause_Item_tag2el_1, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 2, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RANfunctionIDcause_Item = { - "RANfunctionIDcause-Item", - "RANfunctionIDcause-Item", - &asn_OP_SEQUENCE, - asn_DEF_RANfunctionIDcause_Item_tags_1, - sizeof(asn_DEF_RANfunctionIDcause_Item_tags_1) - /sizeof(asn_DEF_RANfunctionIDcause_Item_tags_1[0]), /* 1 */ - asn_DEF_RANfunctionIDcause_Item_tags_1, /* Same as above */ - sizeof(asn_DEF_RANfunctionIDcause_Item_tags_1) - /sizeof(asn_DEF_RANfunctionIDcause_Item_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RANfunctionIDcause_Item_1, - 2, /* Elements count */ - &asn_SPC_RANfunctionIDcause_Item_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RANfunctionIDcause-Item.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/RANfunctionIDcause-Item.h deleted file mode 100644 index 033ed53..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RANfunctionIDcause-Item.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RANfunctionIDcause_Item_H_ -#define _RANfunctionIDcause_Item_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "RANfunctionID.h" -#include "Cause.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RANfunctionIDcause-Item */ -typedef struct RANfunctionIDcause_Item { - RANfunctionID_t ranFunctionID; - Cause_t cause; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RANfunctionIDcause_Item_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RANfunctionIDcause_Item; - -#ifdef __cplusplus -} -#endif - -#endif /* _RANfunctionIDcause_Item_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RANfunctionRevision.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/RANfunctionRevision.c deleted file mode 100644 index a0b271b..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RANfunctionRevision.c +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RANfunctionRevision.h" - -int -RANfunctionRevision_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 4095)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using NativeInteger, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_RANfunctionRevision_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED, 12, 12, 0, 4095 } /* (0..4095) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_RANfunctionRevision_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RANfunctionRevision = { - "RANfunctionRevision", - "RANfunctionRevision", - &asn_OP_NativeInteger, - asn_DEF_RANfunctionRevision_tags_1, - sizeof(asn_DEF_RANfunctionRevision_tags_1) - /sizeof(asn_DEF_RANfunctionRevision_tags_1[0]), /* 1 */ - asn_DEF_RANfunctionRevision_tags_1, /* Same as above */ - sizeof(asn_DEF_RANfunctionRevision_tags_1) - /sizeof(asn_DEF_RANfunctionRevision_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_RANfunctionRevision_constr_1, RANfunctionRevision_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RANfunctionRevision.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/RANfunctionRevision.h deleted file mode 100644 index 58ec9ba..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RANfunctionRevision.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RANfunctionRevision_H_ -#define _RANfunctionRevision_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeInteger.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RANfunctionRevision */ -typedef long RANfunctionRevision_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_RANfunctionRevision_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_RANfunctionRevision; -asn_struct_free_f RANfunctionRevision_free; -asn_struct_print_f RANfunctionRevision_print; -asn_constr_check_f RANfunctionRevision_constraint; -ber_type_decoder_f RANfunctionRevision_decode_ber; -der_type_encoder_f RANfunctionRevision_encode_der; -xer_type_decoder_f RANfunctionRevision_decode_xer; -xer_type_encoder_f RANfunctionRevision_encode_xer; -per_type_decoder_f RANfunctionRevision_decode_uper; -per_type_encoder_f RANfunctionRevision_encode_uper; -per_type_decoder_f RANfunctionRevision_decode_aper; -per_type_encoder_f RANfunctionRevision_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RANfunctionRevision_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RANfunctions-List.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/RANfunctions-List.c deleted file mode 100644 index f55d0a1..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RANfunctions-List.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RANfunctions-List.h" - -#include "ProtocolIE-SingleContainer.h" -static asn_per_constraints_t asn_PER_type_RANfunctions_List_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 9, 9, 0, 256 } /* (SIZE(0..256)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_RANfunctions_List_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ProtocolIE_SingleContainer_1530P3, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_RANfunctions_List_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_RANfunctions_List_specs_1 = { - sizeof(struct RANfunctions_List), - offsetof(struct RANfunctions_List, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_RANfunctions_List = { - "RANfunctions-List", - "RANfunctions-List", - &asn_OP_SEQUENCE_OF, - asn_DEF_RANfunctions_List_tags_1, - sizeof(asn_DEF_RANfunctions_List_tags_1) - /sizeof(asn_DEF_RANfunctions_List_tags_1[0]), /* 1 */ - asn_DEF_RANfunctions_List_tags_1, /* Same as above */ - sizeof(asn_DEF_RANfunctions_List_tags_1) - /sizeof(asn_DEF_RANfunctions_List_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_RANfunctions_List_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_RANfunctions_List_1, - 1, /* Single element */ - &asn_SPC_RANfunctions_List_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RANfunctions-List.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/RANfunctions-List.h deleted file mode 100644 index 9e45736..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RANfunctions-List.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RANfunctions_List_H_ -#define _RANfunctions_List_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolIE_SingleContainer; - -/* RANfunctions-List */ -typedef struct RANfunctions_List { - A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RANfunctions_List_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RANfunctions_List; - -#ifdef __cplusplus -} -#endif - -#endif /* _RANfunctions_List_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RANfunctionsID-List.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/RANfunctionsID-List.c deleted file mode 100644 index c52b90c..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RANfunctionsID-List.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RANfunctionsID-List.h" - -#include "ProtocolIE-SingleContainer.h" -static asn_per_constraints_t asn_PER_type_RANfunctionsID_List_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 9, 9, 0, 256 } /* (SIZE(0..256)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_RANfunctionsID_List_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ProtocolIE_SingleContainer_1530P4, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_RANfunctionsID_List_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_RANfunctionsID_List_specs_1 = { - sizeof(struct RANfunctionsID_List), - offsetof(struct RANfunctionsID_List, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_RANfunctionsID_List = { - "RANfunctionsID-List", - "RANfunctionsID-List", - &asn_OP_SEQUENCE_OF, - asn_DEF_RANfunctionsID_List_tags_1, - sizeof(asn_DEF_RANfunctionsID_List_tags_1) - /sizeof(asn_DEF_RANfunctionsID_List_tags_1[0]), /* 1 */ - asn_DEF_RANfunctionsID_List_tags_1, /* Same as above */ - sizeof(asn_DEF_RANfunctionsID_List_tags_1) - /sizeof(asn_DEF_RANfunctionsID_List_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_RANfunctionsID_List_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_RANfunctionsID_List_1, - 1, /* Single element */ - &asn_SPC_RANfunctionsID_List_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RANfunctionsID-List.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/RANfunctionsID-List.h deleted file mode 100644 index b8bd23c..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RANfunctionsID-List.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RANfunctionsID_List_H_ -#define _RANfunctionsID_List_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolIE_SingleContainer; - -/* RANfunctionsID-List */ -typedef struct RANfunctionsID_List { - A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RANfunctionsID_List_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RANfunctionsID_List; - -#ifdef __cplusplus -} -#endif - -#endif /* _RANfunctionsID_List_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RANfunctionsIDcause-List.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/RANfunctionsIDcause-List.c deleted file mode 100644 index fb5c08d..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RANfunctionsIDcause-List.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RANfunctionsIDcause-List.h" - -#include "ProtocolIE-SingleContainer.h" -static asn_per_constraints_t asn_PER_type_RANfunctionsIDcause_List_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 9, 9, 0, 256 } /* (SIZE(0..256)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_RANfunctionsIDcause_List_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ProtocolIE_SingleContainer_1530P5, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_RANfunctionsIDcause_List_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_RANfunctionsIDcause_List_specs_1 = { - sizeof(struct RANfunctionsIDcause_List), - offsetof(struct RANfunctionsIDcause_List, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_RANfunctionsIDcause_List = { - "RANfunctionsIDcause-List", - "RANfunctionsIDcause-List", - &asn_OP_SEQUENCE_OF, - asn_DEF_RANfunctionsIDcause_List_tags_1, - sizeof(asn_DEF_RANfunctionsIDcause_List_tags_1) - /sizeof(asn_DEF_RANfunctionsIDcause_List_tags_1[0]), /* 1 */ - asn_DEF_RANfunctionsIDcause_List_tags_1, /* Same as above */ - sizeof(asn_DEF_RANfunctionsIDcause_List_tags_1) - /sizeof(asn_DEF_RANfunctionsIDcause_List_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_RANfunctionsIDcause_List_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_RANfunctionsIDcause_List_1, - 1, /* Single element */ - &asn_SPC_RANfunctionsIDcause_List_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RANfunctionsIDcause-List.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/RANfunctionsIDcause-List.h deleted file mode 100644 index 386c289..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RANfunctionsIDcause-List.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RANfunctionsIDcause_List_H_ -#define _RANfunctionsIDcause_List_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolIE_SingleContainer; - -/* RANfunctionsIDcause-List */ -typedef struct RANfunctionsIDcause_List { - A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RANfunctionsIDcause_List_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RANfunctionsIDcause_List; - -#ifdef __cplusplus -} -#endif - -#endif /* _RANfunctionsIDcause_List_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RIC-EventTriggerStyle-List.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/RIC-EventTriggerStyle-List.c deleted file mode 100644 index 246322a..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RIC-EventTriggerStyle-List.c +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "RIC-EventTriggerStyle-List.h" - -asn_TYPE_member_t asn_MBR_RIC_EventTriggerStyle_List_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RIC_EventTriggerStyle_List, ric_EventTriggerStyle_Type), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RIC_Style_Type, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ric-EventTriggerStyle-Type" - }, - { ATF_NOFLAGS, 0, offsetof(struct RIC_EventTriggerStyle_List, ric_EventTriggerStyle_Name), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RIC_Style_Name, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ric-EventTriggerStyle-Name" - }, - { ATF_NOFLAGS, 0, offsetof(struct RIC_EventTriggerStyle_List, ric_EventTriggerFormat_Type), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RIC_Format_Type, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ric-EventTriggerFormat-Type" - }, -}; -static const ber_tlv_tag_t asn_DEF_RIC_EventTriggerStyle_List_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RIC_EventTriggerStyle_List_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ric-EventTriggerStyle-Type */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ric-EventTriggerStyle-Name */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* ric-EventTriggerFormat-Type */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RIC_EventTriggerStyle_List_specs_1 = { - sizeof(struct RIC_EventTriggerStyle_List), - offsetof(struct RIC_EventTriggerStyle_List, _asn_ctx), - asn_MAP_RIC_EventTriggerStyle_List_tag2el_1, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RIC_EventTriggerStyle_List = { - "RIC-EventTriggerStyle-List", - "RIC-EventTriggerStyle-List", - &asn_OP_SEQUENCE, - asn_DEF_RIC_EventTriggerStyle_List_tags_1, - sizeof(asn_DEF_RIC_EventTriggerStyle_List_tags_1) - /sizeof(asn_DEF_RIC_EventTriggerStyle_List_tags_1[0]), /* 1 */ - asn_DEF_RIC_EventTriggerStyle_List_tags_1, /* Same as above */ - sizeof(asn_DEF_RIC_EventTriggerStyle_List_tags_1) - /sizeof(asn_DEF_RIC_EventTriggerStyle_List_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RIC_EventTriggerStyle_List_1, - 3, /* Elements count */ - &asn_SPC_RIC_EventTriggerStyle_List_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RIC-EventTriggerStyle-List.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/RIC-EventTriggerStyle-List.h deleted file mode 100644 index 18a6a8a..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RIC-EventTriggerStyle-List.h +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _RIC_EventTriggerStyle_List_H_ -#define _RIC_EventTriggerStyle_List_H_ - - -#include - -/* Including external dependencies */ -#include "RIC-Style-Type.h" -#include "RIC-Style-Name.h" -#include "RIC-Format-Type.h" -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* RIC-EventTriggerStyle-List */ -typedef struct RIC_EventTriggerStyle_List { - RIC_Style_Type_t ric_EventTriggerStyle_Type; - RIC_Style_Name_t ric_EventTriggerStyle_Name; - RIC_Format_Type_t ric_EventTriggerFormat_Type; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RIC_EventTriggerStyle_List_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RIC_EventTriggerStyle_List; -extern asn_SEQUENCE_specifics_t asn_SPC_RIC_EventTriggerStyle_List_specs_1; -extern asn_TYPE_member_t asn_MBR_RIC_EventTriggerStyle_List_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RIC_EventTriggerStyle_List_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RIC-Format-Type.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/RIC-Format-Type.c deleted file mode 100644 index 53f0624..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RIC-Format-Type.c +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "RIC-Format-Type.h" - -/* - * This type is implemented using NativeInteger, - * so here we adjust the DEF accordingly. - */ -static const ber_tlv_tag_t asn_DEF_RIC_Format_Type_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RIC_Format_Type = { - "RIC-Format-Type", - "RIC-Format-Type", - &asn_OP_NativeInteger, - asn_DEF_RIC_Format_Type_tags_1, - sizeof(asn_DEF_RIC_Format_Type_tags_1) - /sizeof(asn_DEF_RIC_Format_Type_tags_1[0]), /* 1 */ - asn_DEF_RIC_Format_Type_tags_1, /* Same as above */ - sizeof(asn_DEF_RIC_Format_Type_tags_1) - /sizeof(asn_DEF_RIC_Format_Type_tags_1[0]), /* 1 */ - { 0, 0, NativeInteger_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RIC-Format-Type.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/RIC-Format-Type.h deleted file mode 100644 index 81cec85..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RIC-Format-Type.h +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _RIC_Format_Type_H_ -#define _RIC_Format_Type_H_ - - -#include - -/* Including external dependencies */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* RIC-Format-Type */ -typedef long RIC_Format_Type_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RIC_Format_Type; -asn_struct_free_f RIC_Format_Type_free; -asn_struct_print_f RIC_Format_Type_print; -asn_constr_check_f RIC_Format_Type_constraint; -ber_type_decoder_f RIC_Format_Type_decode_ber; -der_type_encoder_f RIC_Format_Type_encode_der; -xer_type_decoder_f RIC_Format_Type_decode_xer; -xer_type_encoder_f RIC_Format_Type_encode_xer; -oer_type_decoder_f RIC_Format_Type_decode_oer; -oer_type_encoder_f RIC_Format_Type_encode_oer; -per_type_decoder_f RIC_Format_Type_decode_uper; -per_type_encoder_f RIC_Format_Type_encode_uper; -per_type_decoder_f RIC_Format_Type_decode_aper; -per_type_encoder_f RIC_Format_Type_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RIC_Format_Type_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RIC-ReportStyle-List.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/RIC-ReportStyle-List.c deleted file mode 100644 index 93d4a15..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RIC-ReportStyle-List.c +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "RIC-ReportStyle-List.h" - -asn_TYPE_member_t asn_MBR_RIC_ReportStyle_List_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RIC_ReportStyle_List, ric_ReportStyle_Type), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RIC_Style_Type, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ric-ReportStyle-Type" - }, - { ATF_NOFLAGS, 0, offsetof(struct RIC_ReportStyle_List, ric_ReportStyle_Name), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RIC_Style_Name, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ric-ReportStyle-Name" - }, - { ATF_NOFLAGS, 0, offsetof(struct RIC_ReportStyle_List, ric_IndicationHeaderFormat_Type), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RIC_Format_Type, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ric-IndicationHeaderFormat-Type" - }, - { ATF_NOFLAGS, 0, offsetof(struct RIC_ReportStyle_List, ric_IndicationMessageFormat_Type), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RIC_Format_Type, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ric-IndicationMessageFormat-Type" - }, -}; -static const ber_tlv_tag_t asn_DEF_RIC_ReportStyle_List_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RIC_ReportStyle_List_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ric-ReportStyle-Type */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ric-ReportStyle-Name */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* ric-IndicationHeaderFormat-Type */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* ric-IndicationMessageFormat-Type */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RIC_ReportStyle_List_specs_1 = { - sizeof(struct RIC_ReportStyle_List), - offsetof(struct RIC_ReportStyle_List, _asn_ctx), - asn_MAP_RIC_ReportStyle_List_tag2el_1, - 4, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 4, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RIC_ReportStyle_List = { - "RIC-ReportStyle-List", - "RIC-ReportStyle-List", - &asn_OP_SEQUENCE, - asn_DEF_RIC_ReportStyle_List_tags_1, - sizeof(asn_DEF_RIC_ReportStyle_List_tags_1) - /sizeof(asn_DEF_RIC_ReportStyle_List_tags_1[0]), /* 1 */ - asn_DEF_RIC_ReportStyle_List_tags_1, /* Same as above */ - sizeof(asn_DEF_RIC_ReportStyle_List_tags_1) - /sizeof(asn_DEF_RIC_ReportStyle_List_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RIC_ReportStyle_List_1, - 4, /* Elements count */ - &asn_SPC_RIC_ReportStyle_List_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RIC-ReportStyle-List.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/RIC-ReportStyle-List.h deleted file mode 100644 index af886aa..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RIC-ReportStyle-List.h +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _RIC_ReportStyle_List_H_ -#define _RIC_ReportStyle_List_H_ - - -#include - -/* Including external dependencies */ -#include "RIC-Style-Type.h" -#include "RIC-Style-Name.h" -#include "RIC-Format-Type.h" -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* RIC-ReportStyle-List */ -typedef struct RIC_ReportStyle_List { - RIC_Style_Type_t ric_ReportStyle_Type; - RIC_Style_Name_t ric_ReportStyle_Name; - RIC_Format_Type_t ric_IndicationHeaderFormat_Type; - RIC_Format_Type_t ric_IndicationMessageFormat_Type; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RIC_ReportStyle_List_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RIC_ReportStyle_List; -extern asn_SEQUENCE_specifics_t asn_SPC_RIC_ReportStyle_List_specs_1; -extern asn_TYPE_member_t asn_MBR_RIC_ReportStyle_List_1[4]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RIC_ReportStyle_List_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RIC-Style-Name.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/RIC-Style-Name.c deleted file mode 100644 index 2c4a054..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RIC-Style-Name.c +++ /dev/null @@ -1,109 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "RIC-Style-Name.h" - -static const int permitted_alphabet_table_1[256] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */ - 1, 0, 0, 0, 0, 0, 0, 2, 3, 4, 0, 5, 6, 7, 8, 9, /* . '() +,-./ */ -10,11,12,13,14,15,16,17,18,19,20, 0, 0,21, 0,22, /* 0123456789: = ? */ - 0,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37, /* ABCDEFGHIJKLMNO */ -38,39,40,41,42,43,44,45,46,47,48, 0, 0, 0, 0, 0, /* PQRSTUVWXYZ */ - 0,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63, /* abcdefghijklmno */ -64,65,66,67,68,69,70,71,72,73,74, 0, 0, 0, 0, 0, /* pqrstuvwxyz */ -}; -static const int permitted_alphabet_code2value_1[74] = { -32,39,40,41,43,44,45,46,47,48,49,50,51,52,53,54, -55,56,57,58,61,63,65,66,67,68,69,70,71,72,73,74, -75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90, -97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112, -113,114,115,116,117,118,119,120,121,122,}; - - -static int check_permitted_alphabet_1(const void *sptr) { - const int *table = permitted_alphabet_table_1; - /* The underlying type is PrintableString */ - const PrintableString_t *st = (const PrintableString_t *)sptr; - const uint8_t *ch = st->buf; - const uint8_t *end = ch + st->size; - - for(; ch < end; ch++) { - uint8_t cv = *ch; - if(!table[cv]) return -1; - } - return 0; -} - -int -RIC_Style_Name_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const PrintableString_t *st = (const PrintableString_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - size = st->size; - - if((size >= 1 && size <= 150) - && !check_permitted_alphabet_1(st)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int asn_PER_MAP_RIC_Style_Name_1_v2c(unsigned int value) { - if(value >= sizeof(permitted_alphabet_table_1)/sizeof(permitted_alphabet_table_1[0])) - return -1; - return permitted_alphabet_table_1[value] - 1; -} -static int asn_PER_MAP_RIC_Style_Name_1_c2v(unsigned int code) { - if(code >= sizeof(permitted_alphabet_code2value_1)/sizeof(permitted_alphabet_code2value_1[0])) - return -1; - return permitted_alphabet_code2value_1[code]; -} -/* - * This type is implemented using PrintableString, - * so here we adjust the DEF accordingly. - */ -static asn_oer_constraints_t asn_OER_type_RIC_Style_Name_constr_1 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(0..MAX)) */}; -asn_per_constraints_t asn_PER_type_RIC_Style_Name_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED, 7, 7, 32, 122 } /* (32..122) */, - { APC_CONSTRAINED | APC_EXTENSIBLE, 8, 8, 1, 150 } /* (SIZE(1..150,...)) */, - asn_PER_MAP_RIC_Style_Name_1_v2c, /* Value to PER code map */ - asn_PER_MAP_RIC_Style_Name_1_c2v /* PER code to value map */ -}; -static const ber_tlv_tag_t asn_DEF_RIC_Style_Name_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (19 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RIC_Style_Name = { - "RIC-Style-Name", - "RIC-Style-Name", - &asn_OP_PrintableString, - asn_DEF_RIC_Style_Name_tags_1, - sizeof(asn_DEF_RIC_Style_Name_tags_1) - /sizeof(asn_DEF_RIC_Style_Name_tags_1[0]), /* 1 */ - asn_DEF_RIC_Style_Name_tags_1, /* Same as above */ - sizeof(asn_DEF_RIC_Style_Name_tags_1) - /sizeof(asn_DEF_RIC_Style_Name_tags_1[0]), /* 1 */ - { &asn_OER_type_RIC_Style_Name_constr_1, &asn_PER_type_RIC_Style_Name_constr_1, RIC_Style_Name_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RIC-Style-Name.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/RIC-Style-Name.h deleted file mode 100644 index bb02b2c..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RIC-Style-Name.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _RIC_Style_Name_H_ -#define _RIC_Style_Name_H_ - - -#include - -/* Including external dependencies */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* RIC-Style-Name */ -typedef PrintableString_t RIC_Style_Name_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_RIC_Style_Name_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_RIC_Style_Name; -asn_struct_free_f RIC_Style_Name_free; -asn_struct_print_f RIC_Style_Name_print; -asn_constr_check_f RIC_Style_Name_constraint; -ber_type_decoder_f RIC_Style_Name_decode_ber; -der_type_encoder_f RIC_Style_Name_encode_der; -xer_type_decoder_f RIC_Style_Name_decode_xer; -xer_type_encoder_f RIC_Style_Name_encode_xer; -oer_type_decoder_f RIC_Style_Name_decode_oer; -oer_type_encoder_f RIC_Style_Name_encode_oer; -per_type_decoder_f RIC_Style_Name_decode_uper; -per_type_encoder_f RIC_Style_Name_encode_uper; -per_type_decoder_f RIC_Style_Name_decode_aper; -per_type_encoder_f RIC_Style_Name_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RIC_Style_Name_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RIC-Style-Type.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/RIC-Style-Type.c deleted file mode 100644 index 5324c4a..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RIC-Style-Type.c +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "RIC-Style-Type.h" - -/* - * This type is implemented using NativeInteger, - * so here we adjust the DEF accordingly. - */ -static const ber_tlv_tag_t asn_DEF_RIC_Style_Type_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RIC_Style_Type = { - "RIC-Style-Type", - "RIC-Style-Type", - &asn_OP_NativeInteger, - asn_DEF_RIC_Style_Type_tags_1, - sizeof(asn_DEF_RIC_Style_Type_tags_1) - /sizeof(asn_DEF_RIC_Style_Type_tags_1[0]), /* 1 */ - asn_DEF_RIC_Style_Type_tags_1, /* Same as above */ - sizeof(asn_DEF_RIC_Style_Type_tags_1) - /sizeof(asn_DEF_RIC_Style_Type_tags_1[0]), /* 1 */ - { 0, 0, NativeInteger_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RIC-Style-Type.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/RIC-Style-Type.h deleted file mode 100644 index 9948bb0..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RIC-Style-Type.h +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _RIC_Style_Type_H_ -#define _RIC_Style_Type_H_ - - -#include - -/* Including external dependencies */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* RIC-Style-Type */ -typedef long RIC_Style_Type_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RIC_Style_Type; -asn_struct_free_f RIC_Style_Type_free; -asn_struct_print_f RIC_Style_Type_print; -asn_constr_check_f RIC_Style_Type_constraint; -ber_type_decoder_f RIC_Style_Type_decode_ber; -der_type_encoder_f RIC_Style_Type_encode_der; -xer_type_decoder_f RIC_Style_Type_decode_xer; -xer_type_encoder_f RIC_Style_Type_encode_xer; -oer_type_decoder_f RIC_Style_Type_decode_oer; -oer_type_encoder_f RIC_Style_Type_encode_oer; -per_type_decoder_f RIC_Style_Type_decode_uper; -per_type_encoder_f RIC_Style_Type_encode_uper; -per_type_decoder_f RIC_Style_Type_decode_aper; -per_type_encoder_f RIC_Style_Type_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RIC_Style_Type_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICaction-Admitted-Item.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICaction-Admitted-Item.c deleted file mode 100644 index 0b566bb..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICaction-Admitted-Item.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICaction-Admitted-Item.h" - -static asn_TYPE_member_t asn_MBR_RICaction_Admitted_Item_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICaction_Admitted_Item, ricActionID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RICactionID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ricActionID" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICaction_Admitted_Item_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICaction_Admitted_Item_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* ricActionID */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_RICaction_Admitted_Item_specs_1 = { - sizeof(struct RICaction_Admitted_Item), - offsetof(struct RICaction_Admitted_Item, _asn_ctx), - asn_MAP_RICaction_Admitted_Item_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICaction_Admitted_Item = { - "RICaction-Admitted-Item", - "RICaction-Admitted-Item", - &asn_OP_SEQUENCE, - asn_DEF_RICaction_Admitted_Item_tags_1, - sizeof(asn_DEF_RICaction_Admitted_Item_tags_1) - /sizeof(asn_DEF_RICaction_Admitted_Item_tags_1[0]), /* 1 */ - asn_DEF_RICaction_Admitted_Item_tags_1, /* Same as above */ - sizeof(asn_DEF_RICaction_Admitted_Item_tags_1) - /sizeof(asn_DEF_RICaction_Admitted_Item_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICaction_Admitted_Item_1, - 1, /* Elements count */ - &asn_SPC_RICaction_Admitted_Item_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICaction-Admitted-Item.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICaction-Admitted-Item.h deleted file mode 100644 index d7f13c1..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICaction-Admitted-Item.h +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICaction_Admitted_Item_H_ -#define _RICaction_Admitted_Item_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "RICactionID.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICaction-Admitted-Item */ -typedef struct RICaction_Admitted_Item { - RICactionID_t ricActionID; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICaction_Admitted_Item_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICaction_Admitted_Item; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICaction_Admitted_Item_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICaction-Admitted-List.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICaction-Admitted-List.c deleted file mode 100644 index 692fd38..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICaction-Admitted-List.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICaction-Admitted-List.h" - -#include "ProtocolIE-SingleContainer.h" -static asn_per_constraints_t asn_PER_type_RICaction_Admitted_List_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 4, 4, 1, 16 } /* (SIZE(1..16)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_RICaction_Admitted_List_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ProtocolIE_SingleContainer_1530P1, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICaction_Admitted_List_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_RICaction_Admitted_List_specs_1 = { - sizeof(struct RICaction_Admitted_List), - offsetof(struct RICaction_Admitted_List, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_RICaction_Admitted_List = { - "RICaction-Admitted-List", - "RICaction-Admitted-List", - &asn_OP_SEQUENCE_OF, - asn_DEF_RICaction_Admitted_List_tags_1, - sizeof(asn_DEF_RICaction_Admitted_List_tags_1) - /sizeof(asn_DEF_RICaction_Admitted_List_tags_1[0]), /* 1 */ - asn_DEF_RICaction_Admitted_List_tags_1, /* Same as above */ - sizeof(asn_DEF_RICaction_Admitted_List_tags_1) - /sizeof(asn_DEF_RICaction_Admitted_List_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_RICaction_Admitted_List_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_RICaction_Admitted_List_1, - 1, /* Single element */ - &asn_SPC_RICaction_Admitted_List_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICaction-Admitted-List.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICaction-Admitted-List.h deleted file mode 100644 index 8eaf217..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICaction-Admitted-List.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICaction_Admitted_List_H_ -#define _RICaction_Admitted_List_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolIE_SingleContainer; - -/* RICaction-Admitted-List */ -typedef struct RICaction_Admitted_List { - A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICaction_Admitted_List_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICaction_Admitted_List; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICaction_Admitted_List_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICaction-NotAdmitted-Item.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICaction-NotAdmitted-Item.c deleted file mode 100644 index 515679d..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICaction-NotAdmitted-Item.c +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICaction-NotAdmitted-Item.h" - -static asn_TYPE_member_t asn_MBR_RICaction_NotAdmitted_Item_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICaction_NotAdmitted_Item, ricActionID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RICactionID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ricActionID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICaction_NotAdmitted_Item, cause), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_Cause, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "cause" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICaction_NotAdmitted_Item_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICaction_NotAdmitted_Item_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ricActionID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* cause */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_RICaction_NotAdmitted_Item_specs_1 = { - sizeof(struct RICaction_NotAdmitted_Item), - offsetof(struct RICaction_NotAdmitted_Item, _asn_ctx), - asn_MAP_RICaction_NotAdmitted_Item_tag2el_1, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 2, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICaction_NotAdmitted_Item = { - "RICaction-NotAdmitted-Item", - "RICaction-NotAdmitted-Item", - &asn_OP_SEQUENCE, - asn_DEF_RICaction_NotAdmitted_Item_tags_1, - sizeof(asn_DEF_RICaction_NotAdmitted_Item_tags_1) - /sizeof(asn_DEF_RICaction_NotAdmitted_Item_tags_1[0]), /* 1 */ - asn_DEF_RICaction_NotAdmitted_Item_tags_1, /* Same as above */ - sizeof(asn_DEF_RICaction_NotAdmitted_Item_tags_1) - /sizeof(asn_DEF_RICaction_NotAdmitted_Item_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICaction_NotAdmitted_Item_1, - 2, /* Elements count */ - &asn_SPC_RICaction_NotAdmitted_Item_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICaction-NotAdmitted-Item.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICaction-NotAdmitted-Item.h deleted file mode 100644 index 48645e1..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICaction-NotAdmitted-Item.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICaction_NotAdmitted_Item_H_ -#define _RICaction_NotAdmitted_Item_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "RICactionID.h" -#include "Cause.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICaction-NotAdmitted-Item */ -typedef struct RICaction_NotAdmitted_Item { - RICactionID_t ricActionID; - Cause_t cause; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICaction_NotAdmitted_Item_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICaction_NotAdmitted_Item; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICaction_NotAdmitted_Item_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICaction-NotAdmitted-List.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICaction-NotAdmitted-List.c deleted file mode 100644 index 51f45f4..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICaction-NotAdmitted-List.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICaction-NotAdmitted-List.h" - -#include "ProtocolIE-SingleContainer.h" -static asn_per_constraints_t asn_PER_type_RICaction_NotAdmitted_List_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 5, 5, 0, 16 } /* (SIZE(0..16)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_RICaction_NotAdmitted_List_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ProtocolIE_SingleContainer_1530P2, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICaction_NotAdmitted_List_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_RICaction_NotAdmitted_List_specs_1 = { - sizeof(struct RICaction_NotAdmitted_List), - offsetof(struct RICaction_NotAdmitted_List, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_RICaction_NotAdmitted_List = { - "RICaction-NotAdmitted-List", - "RICaction-NotAdmitted-List", - &asn_OP_SEQUENCE_OF, - asn_DEF_RICaction_NotAdmitted_List_tags_1, - sizeof(asn_DEF_RICaction_NotAdmitted_List_tags_1) - /sizeof(asn_DEF_RICaction_NotAdmitted_List_tags_1[0]), /* 1 */ - asn_DEF_RICaction_NotAdmitted_List_tags_1, /* Same as above */ - sizeof(asn_DEF_RICaction_NotAdmitted_List_tags_1) - /sizeof(asn_DEF_RICaction_NotAdmitted_List_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_RICaction_NotAdmitted_List_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_RICaction_NotAdmitted_List_1, - 1, /* Single element */ - &asn_SPC_RICaction_NotAdmitted_List_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICaction-NotAdmitted-List.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICaction-NotAdmitted-List.h deleted file mode 100644 index 95bbadf..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICaction-NotAdmitted-List.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICaction_NotAdmitted_List_H_ -#define _RICaction_NotAdmitted_List_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolIE_SingleContainer; - -/* RICaction-NotAdmitted-List */ -typedef struct RICaction_NotAdmitted_List { - A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICaction_NotAdmitted_List_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICaction_NotAdmitted_List; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICaction_NotAdmitted_List_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICaction-ToBeSetup-Item.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICaction-ToBeSetup-Item.c deleted file mode 100644 index 2e8bc94..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICaction-ToBeSetup-Item.c +++ /dev/null @@ -1,83 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICaction-ToBeSetup-Item.h" - -#include "RICsubsequentAction.h" -static asn_TYPE_member_t asn_MBR_RICaction_ToBeSetup_Item_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICaction_ToBeSetup_Item, ricActionID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RICactionID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ricActionID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICaction_ToBeSetup_Item, ricActionType), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RICactionType, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ricActionType" - }, - { ATF_POINTER, 2, offsetof(struct RICaction_ToBeSetup_Item, ricActionDefinition), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RICactionDefinition, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ricActionDefinition" - }, - { ATF_POINTER, 1, offsetof(struct RICaction_ToBeSetup_Item, ricSubsequentAction), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RICsubsequentAction, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ricSubsequentAction" - }, -}; -static const int asn_MAP_RICaction_ToBeSetup_Item_oms_1[] = { 2, 3 }; -static const ber_tlv_tag_t asn_DEF_RICaction_ToBeSetup_Item_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICaction_ToBeSetup_Item_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ricActionID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ricActionType */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* ricActionDefinition */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* ricSubsequentAction */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_RICaction_ToBeSetup_Item_specs_1 = { - sizeof(struct RICaction_ToBeSetup_Item), - offsetof(struct RICaction_ToBeSetup_Item, _asn_ctx), - asn_MAP_RICaction_ToBeSetup_Item_tag2el_1, - 4, /* Count of tags in the map */ - asn_MAP_RICaction_ToBeSetup_Item_oms_1, /* Optional members */ - 2, 0, /* Root/Additions */ - 4, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICaction_ToBeSetup_Item = { - "RICaction-ToBeSetup-Item", - "RICaction-ToBeSetup-Item", - &asn_OP_SEQUENCE, - asn_DEF_RICaction_ToBeSetup_Item_tags_1, - sizeof(asn_DEF_RICaction_ToBeSetup_Item_tags_1) - /sizeof(asn_DEF_RICaction_ToBeSetup_Item_tags_1[0]), /* 1 */ - asn_DEF_RICaction_ToBeSetup_Item_tags_1, /* Same as above */ - sizeof(asn_DEF_RICaction_ToBeSetup_Item_tags_1) - /sizeof(asn_DEF_RICaction_ToBeSetup_Item_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICaction_ToBeSetup_Item_1, - 4, /* Elements count */ - &asn_SPC_RICaction_ToBeSetup_Item_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICaction-ToBeSetup-Item.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICaction-ToBeSetup-Item.h deleted file mode 100644 index c3f5d07..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICaction-ToBeSetup-Item.h +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICaction_ToBeSetup_Item_H_ -#define _RICaction_ToBeSetup_Item_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "RICactionID.h" -#include "RICactionType.h" -#include "RICactionDefinition.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct RICsubsequentAction; - -/* RICaction-ToBeSetup-Item */ -typedef struct RICaction_ToBeSetup_Item { - RICactionID_t ricActionID; - RICactionType_t ricActionType; - RICactionDefinition_t *ricActionDefinition; /* OPTIONAL */ - struct RICsubsequentAction *ricSubsequentAction; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICaction_ToBeSetup_Item_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICaction_ToBeSetup_Item; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICaction_ToBeSetup_Item_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICactionDefinition.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICactionDefinition.c deleted file mode 100644 index dd1d941..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICactionDefinition.c +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICactionDefinition.h" - -/* - * This type is implemented using OCTET_STRING, - * so here we adjust the DEF accordingly. - */ -static const ber_tlv_tag_t asn_DEF_RICactionDefinition_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RICactionDefinition = { - "RICactionDefinition", - "RICactionDefinition", - &asn_OP_OCTET_STRING, - asn_DEF_RICactionDefinition_tags_1, - sizeof(asn_DEF_RICactionDefinition_tags_1) - /sizeof(asn_DEF_RICactionDefinition_tags_1[0]), /* 1 */ - asn_DEF_RICactionDefinition_tags_1, /* Same as above */ - sizeof(asn_DEF_RICactionDefinition_tags_1) - /sizeof(asn_DEF_RICactionDefinition_tags_1[0]), /* 1 */ - { 0, 0, OCTET_STRING_constraint }, - 0, 0, /* No members */ - &asn_SPC_OCTET_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICactionDefinition.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICactionDefinition.h deleted file mode 100644 index e1eeca6..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICactionDefinition.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICactionDefinition_H_ -#define _RICactionDefinition_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "OCTET_STRING.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICactionDefinition */ -typedef OCTET_STRING_t RICactionDefinition_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICactionDefinition; -asn_struct_free_f RICactionDefinition_free; -asn_struct_print_f RICactionDefinition_print; -asn_constr_check_f RICactionDefinition_constraint; -ber_type_decoder_f RICactionDefinition_decode_ber; -der_type_encoder_f RICactionDefinition_encode_der; -xer_type_decoder_f RICactionDefinition_decode_xer; -xer_type_encoder_f RICactionDefinition_encode_xer; -per_type_decoder_f RICactionDefinition_decode_uper; -per_type_encoder_f RICactionDefinition_encode_uper; -per_type_decoder_f RICactionDefinition_decode_aper; -per_type_encoder_f RICactionDefinition_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICactionDefinition_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICactionID.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICactionID.c deleted file mode 100644 index ecd1ea7..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICactionID.c +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICactionID.h" - -int -RICactionID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 255)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using NativeInteger, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_RICactionID_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_RICactionID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RICactionID = { - "RICactionID", - "RICactionID", - &asn_OP_NativeInteger, - asn_DEF_RICactionID_tags_1, - sizeof(asn_DEF_RICactionID_tags_1) - /sizeof(asn_DEF_RICactionID_tags_1[0]), /* 1 */ - asn_DEF_RICactionID_tags_1, /* Same as above */ - sizeof(asn_DEF_RICactionID_tags_1) - /sizeof(asn_DEF_RICactionID_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_RICactionID_constr_1, RICactionID_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICactionID.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICactionID.h deleted file mode 100644 index b21d3a8..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICactionID.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICactionID_H_ -#define _RICactionID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeInteger.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICactionID */ -typedef long RICactionID_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_RICactionID_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_RICactionID; -asn_struct_free_f RICactionID_free; -asn_struct_print_f RICactionID_print; -asn_constr_check_f RICactionID_constraint; -ber_type_decoder_f RICactionID_decode_ber; -der_type_encoder_f RICactionID_encode_der; -xer_type_decoder_f RICactionID_decode_xer; -xer_type_encoder_f RICactionID_encode_xer; -per_type_decoder_f RICactionID_decode_uper; -per_type_encoder_f RICactionID_encode_uper; -per_type_decoder_f RICactionID_decode_aper; -per_type_encoder_f RICactionID_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICactionID_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICactionType.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICactionType.c deleted file mode 100644 index 69f2101..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICactionType.c +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICactionType.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_RICactionType_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 2 } /* (0..2,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_RICactionType_value2enum_1[] = { - { 0, 6, "report" }, - { 1, 6, "insert" }, - { 2, 6, "policy" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_RICactionType_enum2value_1[] = { - 1, /* insert(1) */ - 2, /* policy(2) */ - 0 /* report(0) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_RICactionType_specs_1 = { - asn_MAP_RICactionType_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_RICactionType_enum2value_1, /* N => "tag"; sorted by N */ - 3, /* Number of elements in the maps */ - 4, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_RICactionType_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RICactionType = { - "RICactionType", - "RICactionType", - &asn_OP_NativeEnumerated, - asn_DEF_RICactionType_tags_1, - sizeof(asn_DEF_RICactionType_tags_1) - /sizeof(asn_DEF_RICactionType_tags_1[0]), /* 1 */ - asn_DEF_RICactionType_tags_1, /* Same as above */ - sizeof(asn_DEF_RICactionType_tags_1) - /sizeof(asn_DEF_RICactionType_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_RICactionType_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_RICactionType_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICactionType.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICactionType.h deleted file mode 100644 index b51809c..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICactionType.h +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICactionType_H_ -#define _RICactionType_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum RICactionType { - RICactionType_report = 0, - RICactionType_insert = 1, - RICactionType_policy = 2 - /* - * Enumeration is extensible - */ -} e_RICactionType; - -/* RICactionType */ -typedef long RICactionType_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_RICactionType_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_RICactionType; -extern const asn_INTEGER_specifics_t asn_SPC_RICactionType_specs_1; -asn_struct_free_f RICactionType_free; -asn_struct_print_f RICactionType_print; -asn_constr_check_f RICactionType_constraint; -ber_type_decoder_f RICactionType_decode_ber; -der_type_encoder_f RICactionType_encode_der; -xer_type_decoder_f RICactionType_decode_xer; -xer_type_encoder_f RICactionType_encode_xer; -per_type_decoder_f RICactionType_decode_uper; -per_type_encoder_f RICactionType_encode_uper; -per_type_decoder_f RICactionType_decode_aper; -per_type_encoder_f RICactionType_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICactionType_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICactions-ToBeSetup-List.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICactions-ToBeSetup-List.c deleted file mode 100644 index c1445fd..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICactions-ToBeSetup-List.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICactions-ToBeSetup-List.h" - -#include "ProtocolIE-SingleContainer.h" -asn_per_constraints_t asn_PER_type_RICactions_ToBeSetup_List_constr_1 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 4, 4, 1, 16 } /* (SIZE(1..16)) */, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_RICactions_ToBeSetup_List_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ProtocolIE_SingleContainer_1530P0, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICactions_ToBeSetup_List_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_RICactions_ToBeSetup_List_specs_1 = { - sizeof(struct RICactions_ToBeSetup_List), - offsetof(struct RICactions_ToBeSetup_List, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_RICactions_ToBeSetup_List = { - "RICactions-ToBeSetup-List", - "RICactions-ToBeSetup-List", - &asn_OP_SEQUENCE_OF, - asn_DEF_RICactions_ToBeSetup_List_tags_1, - sizeof(asn_DEF_RICactions_ToBeSetup_List_tags_1) - /sizeof(asn_DEF_RICactions_ToBeSetup_List_tags_1[0]), /* 1 */ - asn_DEF_RICactions_ToBeSetup_List_tags_1, /* Same as above */ - sizeof(asn_DEF_RICactions_ToBeSetup_List_tags_1) - /sizeof(asn_DEF_RICactions_ToBeSetup_List_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_RICactions_ToBeSetup_List_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_RICactions_ToBeSetup_List_1, - 1, /* Single element */ - &asn_SPC_RICactions_ToBeSetup_List_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICactions-ToBeSetup-List.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICactions-ToBeSetup-List.h deleted file mode 100644 index 7acfeb4..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICactions-ToBeSetup-List.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICactions_ToBeSetup_List_H_ -#define _RICactions_ToBeSetup_List_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "asn_SEQUENCE_OF.h" -#include "constr_SEQUENCE_OF.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct ProtocolIE_SingleContainer; - -/* RICactions-ToBeSetup-List */ -typedef struct RICactions_ToBeSetup_List { - A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICactions_ToBeSetup_List_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICactions_ToBeSetup_List; -extern asn_SET_OF_specifics_t asn_SPC_RICactions_ToBeSetup_List_specs_1; -extern asn_TYPE_member_t asn_MBR_RICactions_ToBeSetup_List_1[1]; -extern asn_per_constraints_t asn_PER_type_RICactions_ToBeSetup_List_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICactions_ToBeSetup_List_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICcallProcessID.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICcallProcessID.c deleted file mode 100644 index a7d682f..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICcallProcessID.c +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICcallProcessID.h" - -/* - * This type is implemented using OCTET_STRING, - * so here we adjust the DEF accordingly. - */ -static const ber_tlv_tag_t asn_DEF_RICcallProcessID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RICcallProcessID = { - "RICcallProcessID", - "RICcallProcessID", - &asn_OP_OCTET_STRING, - asn_DEF_RICcallProcessID_tags_1, - sizeof(asn_DEF_RICcallProcessID_tags_1) - /sizeof(asn_DEF_RICcallProcessID_tags_1[0]), /* 1 */ - asn_DEF_RICcallProcessID_tags_1, /* Same as above */ - sizeof(asn_DEF_RICcallProcessID_tags_1) - /sizeof(asn_DEF_RICcallProcessID_tags_1[0]), /* 1 */ - { 0, 0, OCTET_STRING_constraint }, - 0, 0, /* No members */ - &asn_SPC_OCTET_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICcallProcessID.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICcallProcessID.h deleted file mode 100644 index d388b85..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICcallProcessID.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICcallProcessID_H_ -#define _RICcallProcessID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "OCTET_STRING.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICcallProcessID */ -typedef OCTET_STRING_t RICcallProcessID_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICcallProcessID; -asn_struct_free_f RICcallProcessID_free; -asn_struct_print_f RICcallProcessID_print; -asn_constr_check_f RICcallProcessID_constraint; -ber_type_decoder_f RICcallProcessID_decode_ber; -der_type_encoder_f RICcallProcessID_encode_der; -xer_type_decoder_f RICcallProcessID_decode_xer; -xer_type_encoder_f RICcallProcessID_encode_xer; -per_type_decoder_f RICcallProcessID_decode_uper; -per_type_encoder_f RICcallProcessID_encode_uper; -per_type_decoder_f RICcallProcessID_decode_aper; -per_type_encoder_f RICcallProcessID_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICcallProcessID_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICcontrolAckRequest.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICcontrolAckRequest.c deleted file mode 100644 index d69a24c..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICcontrolAckRequest.c +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICcontrolAckRequest.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -static asn_per_constraints_t asn_PER_type_RICcontrolAckRequest_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 2 } /* (0..2,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_RICcontrolAckRequest_value2enum_1[] = { - { 0, 5, "noAck" }, - { 1, 3, "ack" }, - { 2, 4, "nAck" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_RICcontrolAckRequest_enum2value_1[] = { - 1, /* ack(1) */ - 2, /* nAck(2) */ - 0 /* noAck(0) */ - /* This list is extensible */ -}; -static const asn_INTEGER_specifics_t asn_SPC_RICcontrolAckRequest_specs_1 = { - asn_MAP_RICcontrolAckRequest_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_RICcontrolAckRequest_enum2value_1, /* N => "tag"; sorted by N */ - 3, /* Number of elements in the maps */ - 4, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_RICcontrolAckRequest_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RICcontrolAckRequest = { - "RICcontrolAckRequest", - "RICcontrolAckRequest", - &asn_OP_NativeEnumerated, - asn_DEF_RICcontrolAckRequest_tags_1, - sizeof(asn_DEF_RICcontrolAckRequest_tags_1) - /sizeof(asn_DEF_RICcontrolAckRequest_tags_1[0]), /* 1 */ - asn_DEF_RICcontrolAckRequest_tags_1, /* Same as above */ - sizeof(asn_DEF_RICcontrolAckRequest_tags_1) - /sizeof(asn_DEF_RICcontrolAckRequest_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_RICcontrolAckRequest_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_RICcontrolAckRequest_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICcontrolAckRequest.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICcontrolAckRequest.h deleted file mode 100644 index 73f9da7..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICcontrolAckRequest.h +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICcontrolAckRequest_H_ -#define _RICcontrolAckRequest_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum RICcontrolAckRequest { - RICcontrolAckRequest_noAck = 0, - RICcontrolAckRequest_ack = 1, - RICcontrolAckRequest_nAck = 2 - /* - * Enumeration is extensible - */ -} e_RICcontrolAckRequest; - -/* RICcontrolAckRequest */ -typedef long RICcontrolAckRequest_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICcontrolAckRequest; -asn_struct_free_f RICcontrolAckRequest_free; -asn_struct_print_f RICcontrolAckRequest_print; -asn_constr_check_f RICcontrolAckRequest_constraint; -ber_type_decoder_f RICcontrolAckRequest_decode_ber; -der_type_encoder_f RICcontrolAckRequest_encode_der; -xer_type_decoder_f RICcontrolAckRequest_decode_xer; -xer_type_encoder_f RICcontrolAckRequest_encode_xer; -per_type_decoder_f RICcontrolAckRequest_decode_uper; -per_type_encoder_f RICcontrolAckRequest_encode_uper; -per_type_decoder_f RICcontrolAckRequest_decode_aper; -per_type_encoder_f RICcontrolAckRequest_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICcontrolAckRequest_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICcontrolAcknowledge.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICcontrolAcknowledge.c deleted file mode 100644 index eb3d6d2..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICcontrolAcknowledge.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICcontrolAcknowledge.h" - -asn_TYPE_member_t asn_MBR_RICcontrolAcknowledge_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolAcknowledge, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_1527P8, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICcontrolAcknowledge_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICcontrolAcknowledge_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICcontrolAcknowledge_specs_1 = { - sizeof(struct RICcontrolAcknowledge), - offsetof(struct RICcontrolAcknowledge, _asn_ctx), - asn_MAP_RICcontrolAcknowledge_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICcontrolAcknowledge = { - "RICcontrolAcknowledge", - "RICcontrolAcknowledge", - &asn_OP_SEQUENCE, - asn_DEF_RICcontrolAcknowledge_tags_1, - sizeof(asn_DEF_RICcontrolAcknowledge_tags_1) - /sizeof(asn_DEF_RICcontrolAcknowledge_tags_1[0]), /* 1 */ - asn_DEF_RICcontrolAcknowledge_tags_1, /* Same as above */ - sizeof(asn_DEF_RICcontrolAcknowledge_tags_1) - /sizeof(asn_DEF_RICcontrolAcknowledge_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICcontrolAcknowledge_1, - 1, /* Elements count */ - &asn_SPC_RICcontrolAcknowledge_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICcontrolAcknowledge.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICcontrolAcknowledge.h deleted file mode 100644 index 63dbb73..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICcontrolAcknowledge.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICcontrolAcknowledge_H_ -#define _RICcontrolAcknowledge_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICcontrolAcknowledge */ -typedef struct RICcontrolAcknowledge { - ProtocolIE_Container_1527P8_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICcontrolAcknowledge_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICcontrolAcknowledge; -extern asn_SEQUENCE_specifics_t asn_SPC_RICcontrolAcknowledge_specs_1; -extern asn_TYPE_member_t asn_MBR_RICcontrolAcknowledge_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICcontrolAcknowledge_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICcontrolFailure.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICcontrolFailure.c deleted file mode 100644 index 044706c..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICcontrolFailure.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICcontrolFailure.h" - -asn_TYPE_member_t asn_MBR_RICcontrolFailure_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolFailure, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_1527P9, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICcontrolFailure_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICcontrolFailure_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICcontrolFailure_specs_1 = { - sizeof(struct RICcontrolFailure), - offsetof(struct RICcontrolFailure, _asn_ctx), - asn_MAP_RICcontrolFailure_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICcontrolFailure = { - "RICcontrolFailure", - "RICcontrolFailure", - &asn_OP_SEQUENCE, - asn_DEF_RICcontrolFailure_tags_1, - sizeof(asn_DEF_RICcontrolFailure_tags_1) - /sizeof(asn_DEF_RICcontrolFailure_tags_1[0]), /* 1 */ - asn_DEF_RICcontrolFailure_tags_1, /* Same as above */ - sizeof(asn_DEF_RICcontrolFailure_tags_1) - /sizeof(asn_DEF_RICcontrolFailure_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICcontrolFailure_1, - 1, /* Elements count */ - &asn_SPC_RICcontrolFailure_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICcontrolFailure.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICcontrolFailure.h deleted file mode 100644 index 919f11c..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICcontrolFailure.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICcontrolFailure_H_ -#define _RICcontrolFailure_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICcontrolFailure */ -typedef struct RICcontrolFailure { - ProtocolIE_Container_1527P9_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICcontrolFailure_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICcontrolFailure; -extern asn_SEQUENCE_specifics_t asn_SPC_RICcontrolFailure_specs_1; -extern asn_TYPE_member_t asn_MBR_RICcontrolFailure_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICcontrolFailure_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICcontrolHeader.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICcontrolHeader.c deleted file mode 100644 index 2b0400b..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICcontrolHeader.c +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICcontrolHeader.h" - -/* - * This type is implemented using OCTET_STRING, - * so here we adjust the DEF accordingly. - */ -static const ber_tlv_tag_t asn_DEF_RICcontrolHeader_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RICcontrolHeader = { - "RICcontrolHeader", - "RICcontrolHeader", - &asn_OP_OCTET_STRING, - asn_DEF_RICcontrolHeader_tags_1, - sizeof(asn_DEF_RICcontrolHeader_tags_1) - /sizeof(asn_DEF_RICcontrolHeader_tags_1[0]), /* 1 */ - asn_DEF_RICcontrolHeader_tags_1, /* Same as above */ - sizeof(asn_DEF_RICcontrolHeader_tags_1) - /sizeof(asn_DEF_RICcontrolHeader_tags_1[0]), /* 1 */ - { 0, 0, OCTET_STRING_constraint }, - 0, 0, /* No members */ - &asn_SPC_OCTET_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICcontrolHeader.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICcontrolHeader.h deleted file mode 100644 index f26977c..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICcontrolHeader.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICcontrolHeader_H_ -#define _RICcontrolHeader_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "OCTET_STRING.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICcontrolHeader */ -typedef OCTET_STRING_t RICcontrolHeader_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICcontrolHeader; -asn_struct_free_f RICcontrolHeader_free; -asn_struct_print_f RICcontrolHeader_print; -asn_constr_check_f RICcontrolHeader_constraint; -ber_type_decoder_f RICcontrolHeader_decode_ber; -der_type_encoder_f RICcontrolHeader_encode_der; -xer_type_decoder_f RICcontrolHeader_decode_xer; -xer_type_encoder_f RICcontrolHeader_encode_xer; -per_type_decoder_f RICcontrolHeader_decode_uper; -per_type_encoder_f RICcontrolHeader_encode_uper; -per_type_decoder_f RICcontrolHeader_decode_aper; -per_type_encoder_f RICcontrolHeader_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICcontrolHeader_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICcontrolMessage.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICcontrolMessage.c deleted file mode 100644 index f3df4b1..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICcontrolMessage.c +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICcontrolMessage.h" - -/* - * This type is implemented using OCTET_STRING, - * so here we adjust the DEF accordingly. - */ -static const ber_tlv_tag_t asn_DEF_RICcontrolMessage_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RICcontrolMessage = { - "RICcontrolMessage", - "RICcontrolMessage", - &asn_OP_OCTET_STRING, - asn_DEF_RICcontrolMessage_tags_1, - sizeof(asn_DEF_RICcontrolMessage_tags_1) - /sizeof(asn_DEF_RICcontrolMessage_tags_1[0]), /* 1 */ - asn_DEF_RICcontrolMessage_tags_1, /* Same as above */ - sizeof(asn_DEF_RICcontrolMessage_tags_1) - /sizeof(asn_DEF_RICcontrolMessage_tags_1[0]), /* 1 */ - { 0, 0, OCTET_STRING_constraint }, - 0, 0, /* No members */ - &asn_SPC_OCTET_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICcontrolMessage.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICcontrolMessage.h deleted file mode 100644 index 5cc6cc3..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICcontrolMessage.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICcontrolMessage_H_ -#define _RICcontrolMessage_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "OCTET_STRING.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICcontrolMessage */ -typedef OCTET_STRING_t RICcontrolMessage_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICcontrolMessage; -asn_struct_free_f RICcontrolMessage_free; -asn_struct_print_f RICcontrolMessage_print; -asn_constr_check_f RICcontrolMessage_constraint; -ber_type_decoder_f RICcontrolMessage_decode_ber; -der_type_encoder_f RICcontrolMessage_encode_der; -xer_type_decoder_f RICcontrolMessage_decode_xer; -xer_type_encoder_f RICcontrolMessage_encode_xer; -per_type_decoder_f RICcontrolMessage_decode_uper; -per_type_encoder_f RICcontrolMessage_encode_uper; -per_type_decoder_f RICcontrolMessage_decode_aper; -per_type_encoder_f RICcontrolMessage_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICcontrolMessage_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICcontrolOutcome.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICcontrolOutcome.c deleted file mode 100644 index c40874d..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICcontrolOutcome.c +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICcontrolOutcome.h" - -/* - * This type is implemented using OCTET_STRING, - * so here we adjust the DEF accordingly. - */ -static const ber_tlv_tag_t asn_DEF_RICcontrolOutcome_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RICcontrolOutcome = { - "RICcontrolOutcome", - "RICcontrolOutcome", - &asn_OP_OCTET_STRING, - asn_DEF_RICcontrolOutcome_tags_1, - sizeof(asn_DEF_RICcontrolOutcome_tags_1) - /sizeof(asn_DEF_RICcontrolOutcome_tags_1[0]), /* 1 */ - asn_DEF_RICcontrolOutcome_tags_1, /* Same as above */ - sizeof(asn_DEF_RICcontrolOutcome_tags_1) - /sizeof(asn_DEF_RICcontrolOutcome_tags_1[0]), /* 1 */ - { 0, 0, OCTET_STRING_constraint }, - 0, 0, /* No members */ - &asn_SPC_OCTET_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICcontrolOutcome.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICcontrolOutcome.h deleted file mode 100644 index 94481fc..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICcontrolOutcome.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICcontrolOutcome_H_ -#define _RICcontrolOutcome_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "OCTET_STRING.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICcontrolOutcome */ -typedef OCTET_STRING_t RICcontrolOutcome_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICcontrolOutcome; -asn_struct_free_f RICcontrolOutcome_free; -asn_struct_print_f RICcontrolOutcome_print; -asn_constr_check_f RICcontrolOutcome_constraint; -ber_type_decoder_f RICcontrolOutcome_decode_ber; -der_type_encoder_f RICcontrolOutcome_encode_der; -xer_type_decoder_f RICcontrolOutcome_decode_xer; -xer_type_encoder_f RICcontrolOutcome_encode_xer; -per_type_decoder_f RICcontrolOutcome_decode_uper; -per_type_encoder_f RICcontrolOutcome_encode_uper; -per_type_decoder_f RICcontrolOutcome_decode_aper; -per_type_encoder_f RICcontrolOutcome_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICcontrolOutcome_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICcontrolRequest.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICcontrolRequest.c deleted file mode 100644 index 2b54af3..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICcontrolRequest.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICcontrolRequest.h" - -asn_TYPE_member_t asn_MBR_RICcontrolRequest_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolRequest, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_1527P7, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICcontrolRequest_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICcontrolRequest_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICcontrolRequest_specs_1 = { - sizeof(struct RICcontrolRequest), - offsetof(struct RICcontrolRequest, _asn_ctx), - asn_MAP_RICcontrolRequest_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICcontrolRequest = { - "RICcontrolRequest", - "RICcontrolRequest", - &asn_OP_SEQUENCE, - asn_DEF_RICcontrolRequest_tags_1, - sizeof(asn_DEF_RICcontrolRequest_tags_1) - /sizeof(asn_DEF_RICcontrolRequest_tags_1[0]), /* 1 */ - asn_DEF_RICcontrolRequest_tags_1, /* Same as above */ - sizeof(asn_DEF_RICcontrolRequest_tags_1) - /sizeof(asn_DEF_RICcontrolRequest_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICcontrolRequest_1, - 1, /* Elements count */ - &asn_SPC_RICcontrolRequest_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICcontrolRequest.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICcontrolRequest.h deleted file mode 100644 index f35e61d..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICcontrolRequest.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICcontrolRequest_H_ -#define _RICcontrolRequest_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICcontrolRequest */ -typedef struct RICcontrolRequest { - ProtocolIE_Container_1527P7_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICcontrolRequest_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICcontrolRequest; -extern asn_SEQUENCE_specifics_t asn_SPC_RICcontrolRequest_specs_1; -extern asn_TYPE_member_t asn_MBR_RICcontrolRequest_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICcontrolRequest_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICcontrolStatus.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICcontrolStatus.c deleted file mode 100644 index 8dc0c58..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICcontrolStatus.c +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICcontrolStatus.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -static asn_per_constraints_t asn_PER_type_RICcontrolStatus_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 2 } /* (0..2,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_RICcontrolStatus_value2enum_1[] = { - { 0, 7, "success" }, - { 1, 8, "rejected" }, - { 2, 6, "failed" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_RICcontrolStatus_enum2value_1[] = { - 2, /* failed(2) */ - 1, /* rejected(1) */ - 0 /* success(0) */ - /* This list is extensible */ -}; -static const asn_INTEGER_specifics_t asn_SPC_RICcontrolStatus_specs_1 = { - asn_MAP_RICcontrolStatus_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_RICcontrolStatus_enum2value_1, /* N => "tag"; sorted by N */ - 3, /* Number of elements in the maps */ - 4, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_RICcontrolStatus_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RICcontrolStatus = { - "RICcontrolStatus", - "RICcontrolStatus", - &asn_OP_NativeEnumerated, - asn_DEF_RICcontrolStatus_tags_1, - sizeof(asn_DEF_RICcontrolStatus_tags_1) - /sizeof(asn_DEF_RICcontrolStatus_tags_1[0]), /* 1 */ - asn_DEF_RICcontrolStatus_tags_1, /* Same as above */ - sizeof(asn_DEF_RICcontrolStatus_tags_1) - /sizeof(asn_DEF_RICcontrolStatus_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_RICcontrolStatus_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_RICcontrolStatus_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICcontrolStatus.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICcontrolStatus.h deleted file mode 100644 index 627ebaa..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICcontrolStatus.h +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICcontrolStatus_H_ -#define _RICcontrolStatus_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum RICcontrolStatus { - RICcontrolStatus_success = 0, - RICcontrolStatus_rejected = 1, - RICcontrolStatus_failed = 2 - /* - * Enumeration is extensible - */ -} e_RICcontrolStatus; - -/* RICcontrolStatus */ -typedef long RICcontrolStatus_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICcontrolStatus; -asn_struct_free_f RICcontrolStatus_free; -asn_struct_print_f RICcontrolStatus_print; -asn_constr_check_f RICcontrolStatus_constraint; -ber_type_decoder_f RICcontrolStatus_decode_ber; -der_type_encoder_f RICcontrolStatus_encode_der; -xer_type_decoder_f RICcontrolStatus_decode_xer; -xer_type_encoder_f RICcontrolStatus_encode_xer; -per_type_decoder_f RICcontrolStatus_decode_uper; -per_type_encoder_f RICcontrolStatus_encode_uper; -per_type_decoder_f RICcontrolStatus_decode_aper; -per_type_encoder_f RICcontrolStatus_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICcontrolStatus_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICeventTriggerDefinition.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICeventTriggerDefinition.c deleted file mode 100644 index 4c892e0..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICeventTriggerDefinition.c +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICeventTriggerDefinition.h" - -/* - * This type is implemented using OCTET_STRING, - * so here we adjust the DEF accordingly. - */ -static const ber_tlv_tag_t asn_DEF_RICeventTriggerDefinition_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RICeventTriggerDefinition = { - "RICeventTriggerDefinition", - "RICeventTriggerDefinition", - &asn_OP_OCTET_STRING, - asn_DEF_RICeventTriggerDefinition_tags_1, - sizeof(asn_DEF_RICeventTriggerDefinition_tags_1) - /sizeof(asn_DEF_RICeventTriggerDefinition_tags_1[0]), /* 1 */ - asn_DEF_RICeventTriggerDefinition_tags_1, /* Same as above */ - sizeof(asn_DEF_RICeventTriggerDefinition_tags_1) - /sizeof(asn_DEF_RICeventTriggerDefinition_tags_1[0]), /* 1 */ - { 0, 0, OCTET_STRING_constraint }, - 0, 0, /* No members */ - &asn_SPC_OCTET_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICeventTriggerDefinition.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICeventTriggerDefinition.h deleted file mode 100644 index f323980..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICeventTriggerDefinition.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICeventTriggerDefinition_H_ -#define _RICeventTriggerDefinition_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "OCTET_STRING.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICeventTriggerDefinition */ -typedef OCTET_STRING_t RICeventTriggerDefinition_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICeventTriggerDefinition; -asn_struct_free_f RICeventTriggerDefinition_free; -asn_struct_print_f RICeventTriggerDefinition_print; -asn_constr_check_f RICeventTriggerDefinition_constraint; -ber_type_decoder_f RICeventTriggerDefinition_decode_ber; -der_type_encoder_f RICeventTriggerDefinition_encode_der; -xer_type_decoder_f RICeventTriggerDefinition_decode_xer; -xer_type_encoder_f RICeventTriggerDefinition_encode_xer; -per_type_decoder_f RICeventTriggerDefinition_decode_uper; -per_type_encoder_f RICeventTriggerDefinition_encode_uper; -per_type_decoder_f RICeventTriggerDefinition_decode_aper; -per_type_encoder_f RICeventTriggerDefinition_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICeventTriggerDefinition_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICindication.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICindication.c deleted file mode 100644 index be2a72a..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICindication.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICindication.h" - -asn_TYPE_member_t asn_MBR_RICindication_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICindication, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_1527P6, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICindication_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICindication_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICindication_specs_1 = { - sizeof(struct RICindication), - offsetof(struct RICindication, _asn_ctx), - asn_MAP_RICindication_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICindication = { - "RICindication", - "RICindication", - &asn_OP_SEQUENCE, - asn_DEF_RICindication_tags_1, - sizeof(asn_DEF_RICindication_tags_1) - /sizeof(asn_DEF_RICindication_tags_1[0]), /* 1 */ - asn_DEF_RICindication_tags_1, /* Same as above */ - sizeof(asn_DEF_RICindication_tags_1) - /sizeof(asn_DEF_RICindication_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICindication_1, - 1, /* Elements count */ - &asn_SPC_RICindication_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICindication.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICindication.h deleted file mode 100644 index 8a8173d..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICindication.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICindication_H_ -#define _RICindication_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICindication */ -typedef struct RICindication { - ProtocolIE_Container_1527P6_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICindication_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICindication; -extern asn_SEQUENCE_specifics_t asn_SPC_RICindication_specs_1; -extern asn_TYPE_member_t asn_MBR_RICindication_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICindication_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICindicationHeader.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICindicationHeader.c deleted file mode 100644 index 31e2f7f..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICindicationHeader.c +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICindicationHeader.h" - -/* - * This type is implemented using OCTET_STRING, - * so here we adjust the DEF accordingly. - */ -static const ber_tlv_tag_t asn_DEF_RICindicationHeader_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RICindicationHeader = { - "RICindicationHeader", - "RICindicationHeader", - &asn_OP_OCTET_STRING, - asn_DEF_RICindicationHeader_tags_1, - sizeof(asn_DEF_RICindicationHeader_tags_1) - /sizeof(asn_DEF_RICindicationHeader_tags_1[0]), /* 1 */ - asn_DEF_RICindicationHeader_tags_1, /* Same as above */ - sizeof(asn_DEF_RICindicationHeader_tags_1) - /sizeof(asn_DEF_RICindicationHeader_tags_1[0]), /* 1 */ - { 0, 0, OCTET_STRING_constraint }, - 0, 0, /* No members */ - &asn_SPC_OCTET_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICindicationHeader.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICindicationHeader.h deleted file mode 100644 index 0d1448d..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICindicationHeader.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICindicationHeader_H_ -#define _RICindicationHeader_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "OCTET_STRING.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICindicationHeader */ -typedef OCTET_STRING_t RICindicationHeader_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICindicationHeader; -asn_struct_free_f RICindicationHeader_free; -asn_struct_print_f RICindicationHeader_print; -asn_constr_check_f RICindicationHeader_constraint; -ber_type_decoder_f RICindicationHeader_decode_ber; -der_type_encoder_f RICindicationHeader_encode_der; -xer_type_decoder_f RICindicationHeader_decode_xer; -xer_type_encoder_f RICindicationHeader_encode_xer; -per_type_decoder_f RICindicationHeader_decode_uper; -per_type_encoder_f RICindicationHeader_encode_uper; -per_type_decoder_f RICindicationHeader_decode_aper; -per_type_encoder_f RICindicationHeader_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICindicationHeader_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICindicationMessage.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICindicationMessage.c deleted file mode 100644 index 096f61d..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICindicationMessage.c +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICindicationMessage.h" - -/* - * This type is implemented using OCTET_STRING, - * so here we adjust the DEF accordingly. - */ -static const ber_tlv_tag_t asn_DEF_RICindicationMessage_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RICindicationMessage = { - "RICindicationMessage", - "RICindicationMessage", - &asn_OP_OCTET_STRING, - asn_DEF_RICindicationMessage_tags_1, - sizeof(asn_DEF_RICindicationMessage_tags_1) - /sizeof(asn_DEF_RICindicationMessage_tags_1[0]), /* 1 */ - asn_DEF_RICindicationMessage_tags_1, /* Same as above */ - sizeof(asn_DEF_RICindicationMessage_tags_1) - /sizeof(asn_DEF_RICindicationMessage_tags_1[0]), /* 1 */ - { 0, 0, OCTET_STRING_constraint }, - 0, 0, /* No members */ - &asn_SPC_OCTET_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICindicationMessage.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICindicationMessage.h deleted file mode 100644 index 97ce63e..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICindicationMessage.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICindicationMessage_H_ -#define _RICindicationMessage_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "OCTET_STRING.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICindicationMessage */ -typedef OCTET_STRING_t RICindicationMessage_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICindicationMessage; -asn_struct_free_f RICindicationMessage_free; -asn_struct_print_f RICindicationMessage_print; -asn_constr_check_f RICindicationMessage_constraint; -ber_type_decoder_f RICindicationMessage_decode_ber; -der_type_encoder_f RICindicationMessage_encode_der; -xer_type_decoder_f RICindicationMessage_decode_xer; -xer_type_encoder_f RICindicationMessage_encode_xer; -per_type_decoder_f RICindicationMessage_decode_uper; -per_type_encoder_f RICindicationMessage_encode_uper; -per_type_decoder_f RICindicationMessage_decode_aper; -per_type_encoder_f RICindicationMessage_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICindicationMessage_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICindicationSN.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICindicationSN.c deleted file mode 100644 index 74782d8..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICindicationSN.c +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICindicationSN.h" - -int -RICindicationSN_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -/* - * This type is implemented using NativeInteger, - * so here we adjust the DEF accordingly. - */ -static asn_per_constraints_t asn_PER_type_RICindicationSN_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const ber_tlv_tag_t asn_DEF_RICindicationSN_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RICindicationSN = { - "RICindicationSN", - "RICindicationSN", - &asn_OP_NativeInteger, - asn_DEF_RICindicationSN_tags_1, - sizeof(asn_DEF_RICindicationSN_tags_1) - /sizeof(asn_DEF_RICindicationSN_tags_1[0]), /* 1 */ - asn_DEF_RICindicationSN_tags_1, /* Same as above */ - sizeof(asn_DEF_RICindicationSN_tags_1) - /sizeof(asn_DEF_RICindicationSN_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_RICindicationSN_constr_1, RICindicationSN_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICindicationSN.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICindicationSN.h deleted file mode 100644 index 30d8c55..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICindicationSN.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICindicationSN_H_ -#define _RICindicationSN_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeInteger.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICindicationSN */ -typedef long RICindicationSN_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICindicationSN; -asn_struct_free_f RICindicationSN_free; -asn_struct_print_f RICindicationSN_print; -asn_constr_check_f RICindicationSN_constraint; -ber_type_decoder_f RICindicationSN_decode_ber; -der_type_encoder_f RICindicationSN_encode_der; -xer_type_decoder_f RICindicationSN_decode_xer; -xer_type_encoder_f RICindicationSN_encode_xer; -per_type_decoder_f RICindicationSN_decode_uper; -per_type_encoder_f RICindicationSN_encode_uper; -per_type_decoder_f RICindicationSN_decode_aper; -per_type_encoder_f RICindicationSN_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICindicationSN_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICindicationType.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICindicationType.c deleted file mode 100644 index 81beabe..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICindicationType.c +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICindicationType.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -static asn_per_constraints_t asn_PER_type_RICindicationType_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_RICindicationType_value2enum_1[] = { - { 0, 6, "report" }, - { 1, 6, "insert" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_RICindicationType_enum2value_1[] = { - 1, /* insert(1) */ - 0 /* report(0) */ - /* This list is extensible */ -}; -static const asn_INTEGER_specifics_t asn_SPC_RICindicationType_specs_1 = { - asn_MAP_RICindicationType_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_RICindicationType_enum2value_1, /* N => "tag"; sorted by N */ - 2, /* Number of elements in the maps */ - 3, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_RICindicationType_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RICindicationType = { - "RICindicationType", - "RICindicationType", - &asn_OP_NativeEnumerated, - asn_DEF_RICindicationType_tags_1, - sizeof(asn_DEF_RICindicationType_tags_1) - /sizeof(asn_DEF_RICindicationType_tags_1[0]), /* 1 */ - asn_DEF_RICindicationType_tags_1, /* Same as above */ - sizeof(asn_DEF_RICindicationType_tags_1) - /sizeof(asn_DEF_RICindicationType_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_RICindicationType_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_RICindicationType_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICindicationType.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICindicationType.h deleted file mode 100644 index ae14d7a..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICindicationType.h +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICindicationType_H_ -#define _RICindicationType_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum RICindicationType { - RICindicationType_report = 0, - RICindicationType_insert = 1 - /* - * Enumeration is extensible - */ -} e_RICindicationType; - -/* RICindicationType */ -typedef long RICindicationType_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICindicationType; -asn_struct_free_f RICindicationType_free; -asn_struct_print_f RICindicationType_print; -asn_constr_check_f RICindicationType_constraint; -ber_type_decoder_f RICindicationType_decode_ber; -der_type_encoder_f RICindicationType_encode_der; -xer_type_decoder_f RICindicationType_decode_xer; -xer_type_encoder_f RICindicationType_encode_xer; -per_type_decoder_f RICindicationType_decode_uper; -per_type_encoder_f RICindicationType_encode_uper; -per_type_decoder_f RICindicationType_decode_aper; -per_type_encoder_f RICindicationType_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICindicationType_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICrequestID.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICrequestID.c deleted file mode 100644 index dfe67b5..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICrequestID.c +++ /dev/null @@ -1,120 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICrequestID.h" - -static int -memb_ricRequestorID_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_ricInstanceID_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 65535)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_per_constraints_t asn_PER_memb_ricRequestorID_constr_2 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_ricInstanceID_constr_3 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_RICrequestID_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICrequestID, ricRequestorID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { 0, &asn_PER_memb_ricRequestorID_constr_2, memb_ricRequestorID_constraint_1 }, - 0, 0, /* No default value */ - "ricRequestorID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICrequestID, ricInstanceID), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { 0, &asn_PER_memb_ricInstanceID_constr_3, memb_ricInstanceID_constraint_1 }, - 0, 0, /* No default value */ - "ricInstanceID" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICrequestID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICrequestID_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ricRequestorID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ricInstanceID */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICrequestID_specs_1 = { - sizeof(struct RICrequestID), - offsetof(struct RICrequestID, _asn_ctx), - asn_MAP_RICrequestID_tag2el_1, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 2, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICrequestID = { - "RICrequestID", - "RICrequestID", - &asn_OP_SEQUENCE, - asn_DEF_RICrequestID_tags_1, - sizeof(asn_DEF_RICrequestID_tags_1) - /sizeof(asn_DEF_RICrequestID_tags_1[0]), /* 1 */ - asn_DEF_RICrequestID_tags_1, /* Same as above */ - sizeof(asn_DEF_RICrequestID_tags_1) - /sizeof(asn_DEF_RICrequestID_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICrequestID_1, - 2, /* Elements count */ - &asn_SPC_RICrequestID_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICrequestID.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICrequestID.h deleted file mode 100644 index 24636d4..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICrequestID.h +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICrequestID_H_ -#define _RICrequestID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeInteger.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICrequestID */ -typedef struct RICrequestID { - long ricRequestorID; - long ricInstanceID; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICrequestID_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICrequestID; -extern asn_SEQUENCE_specifics_t asn_SPC_RICrequestID_specs_1; -extern asn_TYPE_member_t asn_MBR_RICrequestID_1[2]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICrequestID_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICserviceQuery.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICserviceQuery.c deleted file mode 100644 index a2c83c8..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICserviceQuery.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICserviceQuery.h" - -asn_TYPE_member_t asn_MBR_RICserviceQuery_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICserviceQuery, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_1527P19, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICserviceQuery_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICserviceQuery_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICserviceQuery_specs_1 = { - sizeof(struct RICserviceQuery), - offsetof(struct RICserviceQuery, _asn_ctx), - asn_MAP_RICserviceQuery_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICserviceQuery = { - "RICserviceQuery", - "RICserviceQuery", - &asn_OP_SEQUENCE, - asn_DEF_RICserviceQuery_tags_1, - sizeof(asn_DEF_RICserviceQuery_tags_1) - /sizeof(asn_DEF_RICserviceQuery_tags_1[0]), /* 1 */ - asn_DEF_RICserviceQuery_tags_1, /* Same as above */ - sizeof(asn_DEF_RICserviceQuery_tags_1) - /sizeof(asn_DEF_RICserviceQuery_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICserviceQuery_1, - 1, /* Elements count */ - &asn_SPC_RICserviceQuery_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICserviceQuery.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICserviceQuery.h deleted file mode 100644 index 7db0a4f..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICserviceQuery.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICserviceQuery_H_ -#define _RICserviceQuery_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICserviceQuery */ -typedef struct RICserviceQuery { - ProtocolIE_Container_1527P19_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICserviceQuery_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICserviceQuery; -extern asn_SEQUENCE_specifics_t asn_SPC_RICserviceQuery_specs_1; -extern asn_TYPE_member_t asn_MBR_RICserviceQuery_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICserviceQuery_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICserviceUpdate.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICserviceUpdate.c deleted file mode 100644 index 8ec4465..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICserviceUpdate.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICserviceUpdate.h" - -asn_TYPE_member_t asn_MBR_RICserviceUpdate_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdate, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_1527P16, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICserviceUpdate_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICserviceUpdate_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdate_specs_1 = { - sizeof(struct RICserviceUpdate), - offsetof(struct RICserviceUpdate, _asn_ctx), - asn_MAP_RICserviceUpdate_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICserviceUpdate = { - "RICserviceUpdate", - "RICserviceUpdate", - &asn_OP_SEQUENCE, - asn_DEF_RICserviceUpdate_tags_1, - sizeof(asn_DEF_RICserviceUpdate_tags_1) - /sizeof(asn_DEF_RICserviceUpdate_tags_1[0]), /* 1 */ - asn_DEF_RICserviceUpdate_tags_1, /* Same as above */ - sizeof(asn_DEF_RICserviceUpdate_tags_1) - /sizeof(asn_DEF_RICserviceUpdate_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICserviceUpdate_1, - 1, /* Elements count */ - &asn_SPC_RICserviceUpdate_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICserviceUpdate.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICserviceUpdate.h deleted file mode 100644 index f9353cb..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICserviceUpdate.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICserviceUpdate_H_ -#define _RICserviceUpdate_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICserviceUpdate */ -typedef struct RICserviceUpdate { - ProtocolIE_Container_1527P16_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICserviceUpdate_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICserviceUpdate; -extern asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdate_specs_1; -extern asn_TYPE_member_t asn_MBR_RICserviceUpdate_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICserviceUpdate_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICserviceUpdateAcknowledge.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICserviceUpdateAcknowledge.c deleted file mode 100644 index fe21337..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICserviceUpdateAcknowledge.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICserviceUpdateAcknowledge.h" - -asn_TYPE_member_t asn_MBR_RICserviceUpdateAcknowledge_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateAcknowledge, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_1527P17, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICserviceUpdateAcknowledge_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICserviceUpdateAcknowledge_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdateAcknowledge_specs_1 = { - sizeof(struct RICserviceUpdateAcknowledge), - offsetof(struct RICserviceUpdateAcknowledge, _asn_ctx), - asn_MAP_RICserviceUpdateAcknowledge_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICserviceUpdateAcknowledge = { - "RICserviceUpdateAcknowledge", - "RICserviceUpdateAcknowledge", - &asn_OP_SEQUENCE, - asn_DEF_RICserviceUpdateAcknowledge_tags_1, - sizeof(asn_DEF_RICserviceUpdateAcknowledge_tags_1) - /sizeof(asn_DEF_RICserviceUpdateAcknowledge_tags_1[0]), /* 1 */ - asn_DEF_RICserviceUpdateAcknowledge_tags_1, /* Same as above */ - sizeof(asn_DEF_RICserviceUpdateAcknowledge_tags_1) - /sizeof(asn_DEF_RICserviceUpdateAcknowledge_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICserviceUpdateAcknowledge_1, - 1, /* Elements count */ - &asn_SPC_RICserviceUpdateAcknowledge_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICserviceUpdateAcknowledge.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICserviceUpdateAcknowledge.h deleted file mode 100644 index ec27597..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICserviceUpdateAcknowledge.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICserviceUpdateAcknowledge_H_ -#define _RICserviceUpdateAcknowledge_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICserviceUpdateAcknowledge */ -typedef struct RICserviceUpdateAcknowledge { - ProtocolIE_Container_1527P17_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICserviceUpdateAcknowledge_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICserviceUpdateAcknowledge; -extern asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdateAcknowledge_specs_1; -extern asn_TYPE_member_t asn_MBR_RICserviceUpdateAcknowledge_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICserviceUpdateAcknowledge_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICserviceUpdateFailure.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICserviceUpdateFailure.c deleted file mode 100644 index 61334b4..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICserviceUpdateFailure.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICserviceUpdateFailure.h" - -asn_TYPE_member_t asn_MBR_RICserviceUpdateFailure_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateFailure, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_1527P18, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICserviceUpdateFailure_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICserviceUpdateFailure_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdateFailure_specs_1 = { - sizeof(struct RICserviceUpdateFailure), - offsetof(struct RICserviceUpdateFailure, _asn_ctx), - asn_MAP_RICserviceUpdateFailure_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICserviceUpdateFailure = { - "RICserviceUpdateFailure", - "RICserviceUpdateFailure", - &asn_OP_SEQUENCE, - asn_DEF_RICserviceUpdateFailure_tags_1, - sizeof(asn_DEF_RICserviceUpdateFailure_tags_1) - /sizeof(asn_DEF_RICserviceUpdateFailure_tags_1[0]), /* 1 */ - asn_DEF_RICserviceUpdateFailure_tags_1, /* Same as above */ - sizeof(asn_DEF_RICserviceUpdateFailure_tags_1) - /sizeof(asn_DEF_RICserviceUpdateFailure_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICserviceUpdateFailure_1, - 1, /* Elements count */ - &asn_SPC_RICserviceUpdateFailure_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICserviceUpdateFailure.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICserviceUpdateFailure.h deleted file mode 100644 index 71e1e62..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICserviceUpdateFailure.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICserviceUpdateFailure_H_ -#define _RICserviceUpdateFailure_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICserviceUpdateFailure */ -typedef struct RICserviceUpdateFailure { - ProtocolIE_Container_1527P18_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICserviceUpdateFailure_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICserviceUpdateFailure; -extern asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdateFailure_specs_1; -extern asn_TYPE_member_t asn_MBR_RICserviceUpdateFailure_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICserviceUpdateFailure_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICsubscriptionDeleteFailure.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICsubscriptionDeleteFailure.c deleted file mode 100644 index 04b54c7..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICsubscriptionDeleteFailure.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICsubscriptionDeleteFailure.h" - -asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteFailure_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteFailure, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_1527P5, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICsubscriptionDeleteFailure_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionDeleteFailure_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteFailure_specs_1 = { - sizeof(struct RICsubscriptionDeleteFailure), - offsetof(struct RICsubscriptionDeleteFailure, _asn_ctx), - asn_MAP_RICsubscriptionDeleteFailure_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDeleteFailure = { - "RICsubscriptionDeleteFailure", - "RICsubscriptionDeleteFailure", - &asn_OP_SEQUENCE, - asn_DEF_RICsubscriptionDeleteFailure_tags_1, - sizeof(asn_DEF_RICsubscriptionDeleteFailure_tags_1) - /sizeof(asn_DEF_RICsubscriptionDeleteFailure_tags_1[0]), /* 1 */ - asn_DEF_RICsubscriptionDeleteFailure_tags_1, /* Same as above */ - sizeof(asn_DEF_RICsubscriptionDeleteFailure_tags_1) - /sizeof(asn_DEF_RICsubscriptionDeleteFailure_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICsubscriptionDeleteFailure_1, - 1, /* Elements count */ - &asn_SPC_RICsubscriptionDeleteFailure_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICsubscriptionDeleteFailure.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICsubscriptionDeleteFailure.h deleted file mode 100644 index 1560efb..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICsubscriptionDeleteFailure.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICsubscriptionDeleteFailure_H_ -#define _RICsubscriptionDeleteFailure_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICsubscriptionDeleteFailure */ -typedef struct RICsubscriptionDeleteFailure { - ProtocolIE_Container_1527P5_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICsubscriptionDeleteFailure_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDeleteFailure; -extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteFailure_specs_1; -extern asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteFailure_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICsubscriptionDeleteFailure_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICsubscriptionDeleteRequest.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICsubscriptionDeleteRequest.c deleted file mode 100644 index 4ff78c6..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICsubscriptionDeleteRequest.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICsubscriptionDeleteRequest.h" - -asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteRequest_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteRequest, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_1527P3, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICsubscriptionDeleteRequest_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionDeleteRequest_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteRequest_specs_1 = { - sizeof(struct RICsubscriptionDeleteRequest), - offsetof(struct RICsubscriptionDeleteRequest, _asn_ctx), - asn_MAP_RICsubscriptionDeleteRequest_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDeleteRequest = { - "RICsubscriptionDeleteRequest", - "RICsubscriptionDeleteRequest", - &asn_OP_SEQUENCE, - asn_DEF_RICsubscriptionDeleteRequest_tags_1, - sizeof(asn_DEF_RICsubscriptionDeleteRequest_tags_1) - /sizeof(asn_DEF_RICsubscriptionDeleteRequest_tags_1[0]), /* 1 */ - asn_DEF_RICsubscriptionDeleteRequest_tags_1, /* Same as above */ - sizeof(asn_DEF_RICsubscriptionDeleteRequest_tags_1) - /sizeof(asn_DEF_RICsubscriptionDeleteRequest_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICsubscriptionDeleteRequest_1, - 1, /* Elements count */ - &asn_SPC_RICsubscriptionDeleteRequest_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICsubscriptionDeleteRequest.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICsubscriptionDeleteRequest.h deleted file mode 100644 index f25c782..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICsubscriptionDeleteRequest.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICsubscriptionDeleteRequest_H_ -#define _RICsubscriptionDeleteRequest_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICsubscriptionDeleteRequest */ -typedef struct RICsubscriptionDeleteRequest { - ProtocolIE_Container_1527P3_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICsubscriptionDeleteRequest_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDeleteRequest; -extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteRequest_specs_1; -extern asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteRequest_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICsubscriptionDeleteRequest_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICsubscriptionDeleteResponse.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICsubscriptionDeleteResponse.c deleted file mode 100644 index 70a20c7..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICsubscriptionDeleteResponse.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICsubscriptionDeleteResponse.h" - -asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteResponse_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteResponse, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_1527P4, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICsubscriptionDeleteResponse_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionDeleteResponse_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteResponse_specs_1 = { - sizeof(struct RICsubscriptionDeleteResponse), - offsetof(struct RICsubscriptionDeleteResponse, _asn_ctx), - asn_MAP_RICsubscriptionDeleteResponse_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDeleteResponse = { - "RICsubscriptionDeleteResponse", - "RICsubscriptionDeleteResponse", - &asn_OP_SEQUENCE, - asn_DEF_RICsubscriptionDeleteResponse_tags_1, - sizeof(asn_DEF_RICsubscriptionDeleteResponse_tags_1) - /sizeof(asn_DEF_RICsubscriptionDeleteResponse_tags_1[0]), /* 1 */ - asn_DEF_RICsubscriptionDeleteResponse_tags_1, /* Same as above */ - sizeof(asn_DEF_RICsubscriptionDeleteResponse_tags_1) - /sizeof(asn_DEF_RICsubscriptionDeleteResponse_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICsubscriptionDeleteResponse_1, - 1, /* Elements count */ - &asn_SPC_RICsubscriptionDeleteResponse_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICsubscriptionDeleteResponse.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICsubscriptionDeleteResponse.h deleted file mode 100644 index 9b93735..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICsubscriptionDeleteResponse.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICsubscriptionDeleteResponse_H_ -#define _RICsubscriptionDeleteResponse_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICsubscriptionDeleteResponse */ -typedef struct RICsubscriptionDeleteResponse { - ProtocolIE_Container_1527P4_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICsubscriptionDeleteResponse_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDeleteResponse; -extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteResponse_specs_1; -extern asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteResponse_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICsubscriptionDeleteResponse_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICsubscriptionDetails.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICsubscriptionDetails.c deleted file mode 100644 index 39475fd..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICsubscriptionDetails.c +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICsubscriptionDetails.h" - -static asn_TYPE_member_t asn_MBR_RICsubscriptionDetails_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDetails, ricEventTriggerDefinition), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RICeventTriggerDefinition, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ricEventTriggerDefinition" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDetails, ricAction_ToBeSetup_List), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RICactions_ToBeSetup_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ricAction-ToBeSetup-List" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICsubscriptionDetails_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionDetails_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ricEventTriggerDefinition */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ricAction-ToBeSetup-List */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDetails_specs_1 = { - sizeof(struct RICsubscriptionDetails), - offsetof(struct RICsubscriptionDetails, _asn_ctx), - asn_MAP_RICsubscriptionDetails_tag2el_1, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 2, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDetails = { - "RICsubscriptionDetails", - "RICsubscriptionDetails", - &asn_OP_SEQUENCE, - asn_DEF_RICsubscriptionDetails_tags_1, - sizeof(asn_DEF_RICsubscriptionDetails_tags_1) - /sizeof(asn_DEF_RICsubscriptionDetails_tags_1[0]), /* 1 */ - asn_DEF_RICsubscriptionDetails_tags_1, /* Same as above */ - sizeof(asn_DEF_RICsubscriptionDetails_tags_1) - /sizeof(asn_DEF_RICsubscriptionDetails_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICsubscriptionDetails_1, - 2, /* Elements count */ - &asn_SPC_RICsubscriptionDetails_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICsubscriptionDetails.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICsubscriptionDetails.h deleted file mode 100644 index cd5b0f8..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICsubscriptionDetails.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICsubscriptionDetails_H_ -#define _RICsubscriptionDetails_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "RICeventTriggerDefinition.h" -#include "RICactions-ToBeSetup-List.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICsubscriptionDetails */ -typedef struct RICsubscriptionDetails { - RICeventTriggerDefinition_t ricEventTriggerDefinition; - RICactions_ToBeSetup_List_t ricAction_ToBeSetup_List; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICsubscriptionDetails_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDetails; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICsubscriptionDetails_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICsubscriptionFailure.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICsubscriptionFailure.c deleted file mode 100644 index f0a7a43..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICsubscriptionFailure.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICsubscriptionFailure.h" - -asn_TYPE_member_t asn_MBR_RICsubscriptionFailure_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionFailure, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_1527P2, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICsubscriptionFailure_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionFailure_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionFailure_specs_1 = { - sizeof(struct RICsubscriptionFailure), - offsetof(struct RICsubscriptionFailure, _asn_ctx), - asn_MAP_RICsubscriptionFailure_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICsubscriptionFailure = { - "RICsubscriptionFailure", - "RICsubscriptionFailure", - &asn_OP_SEQUENCE, - asn_DEF_RICsubscriptionFailure_tags_1, - sizeof(asn_DEF_RICsubscriptionFailure_tags_1) - /sizeof(asn_DEF_RICsubscriptionFailure_tags_1[0]), /* 1 */ - asn_DEF_RICsubscriptionFailure_tags_1, /* Same as above */ - sizeof(asn_DEF_RICsubscriptionFailure_tags_1) - /sizeof(asn_DEF_RICsubscriptionFailure_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICsubscriptionFailure_1, - 1, /* Elements count */ - &asn_SPC_RICsubscriptionFailure_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICsubscriptionFailure.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICsubscriptionFailure.h deleted file mode 100644 index fb43397..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICsubscriptionFailure.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICsubscriptionFailure_H_ -#define _RICsubscriptionFailure_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICsubscriptionFailure */ -typedef struct RICsubscriptionFailure { - ProtocolIE_Container_1527P2_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICsubscriptionFailure_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionFailure; -extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionFailure_specs_1; -extern asn_TYPE_member_t asn_MBR_RICsubscriptionFailure_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICsubscriptionFailure_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICsubscriptionRequest.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICsubscriptionRequest.c deleted file mode 100644 index dcc451e..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICsubscriptionRequest.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICsubscriptionRequest.h" - -asn_TYPE_member_t asn_MBR_RICsubscriptionRequest_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionRequest, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_1527P0, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICsubscriptionRequest_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionRequest_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionRequest_specs_1 = { - sizeof(struct RICsubscriptionRequest), - offsetof(struct RICsubscriptionRequest, _asn_ctx), - asn_MAP_RICsubscriptionRequest_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICsubscriptionRequest = { - "RICsubscriptionRequest", - "RICsubscriptionRequest", - &asn_OP_SEQUENCE, - asn_DEF_RICsubscriptionRequest_tags_1, - sizeof(asn_DEF_RICsubscriptionRequest_tags_1) - /sizeof(asn_DEF_RICsubscriptionRequest_tags_1[0]), /* 1 */ - asn_DEF_RICsubscriptionRequest_tags_1, /* Same as above */ - sizeof(asn_DEF_RICsubscriptionRequest_tags_1) - /sizeof(asn_DEF_RICsubscriptionRequest_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICsubscriptionRequest_1, - 1, /* Elements count */ - &asn_SPC_RICsubscriptionRequest_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICsubscriptionRequest.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICsubscriptionRequest.h deleted file mode 100644 index d6ed804..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICsubscriptionRequest.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICsubscriptionRequest_H_ -#define _RICsubscriptionRequest_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICsubscriptionRequest */ -typedef struct RICsubscriptionRequest { - ProtocolIE_Container_1527P0_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICsubscriptionRequest_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionRequest; -extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionRequest_specs_1; -extern asn_TYPE_member_t asn_MBR_RICsubscriptionRequest_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICsubscriptionRequest_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICsubscriptionResponse.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICsubscriptionResponse.c deleted file mode 100644 index 836322b..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICsubscriptionResponse.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICsubscriptionResponse.h" - -asn_TYPE_member_t asn_MBR_RICsubscriptionResponse_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionResponse, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_1527P1, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICsubscriptionResponse_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionResponse_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionResponse_specs_1 = { - sizeof(struct RICsubscriptionResponse), - offsetof(struct RICsubscriptionResponse, _asn_ctx), - asn_MAP_RICsubscriptionResponse_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICsubscriptionResponse = { - "RICsubscriptionResponse", - "RICsubscriptionResponse", - &asn_OP_SEQUENCE, - asn_DEF_RICsubscriptionResponse_tags_1, - sizeof(asn_DEF_RICsubscriptionResponse_tags_1) - /sizeof(asn_DEF_RICsubscriptionResponse_tags_1[0]), /* 1 */ - asn_DEF_RICsubscriptionResponse_tags_1, /* Same as above */ - sizeof(asn_DEF_RICsubscriptionResponse_tags_1) - /sizeof(asn_DEF_RICsubscriptionResponse_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICsubscriptionResponse_1, - 1, /* Elements count */ - &asn_SPC_RICsubscriptionResponse_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICsubscriptionResponse.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICsubscriptionResponse.h deleted file mode 100644 index 64e2e45..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICsubscriptionResponse.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICsubscriptionResponse_H_ -#define _RICsubscriptionResponse_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICsubscriptionResponse */ -typedef struct RICsubscriptionResponse { - ProtocolIE_Container_1527P1_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICsubscriptionResponse_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionResponse; -extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionResponse_specs_1; -extern asn_TYPE_member_t asn_MBR_RICsubscriptionResponse_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICsubscriptionResponse_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICsubsequentAction.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICsubsequentAction.c deleted file mode 100644 index 1008fb1..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICsubsequentAction.c +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICsubsequentAction.h" - -asn_TYPE_member_t asn_MBR_RICsubsequentAction_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICsubsequentAction, ricSubsequentActionType), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RICsubsequentActionType, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ricSubsequentActionType" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubsequentAction, ricTimeToWait), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RICtimeToWait, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ricTimeToWait" - }, -}; -static const ber_tlv_tag_t asn_DEF_RICsubsequentAction_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_RICsubsequentAction_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ricSubsequentActionType */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ricTimeToWait */ -}; -asn_SEQUENCE_specifics_t asn_SPC_RICsubsequentAction_specs_1 = { - sizeof(struct RICsubsequentAction), - offsetof(struct RICsubsequentAction, _asn_ctx), - asn_MAP_RICsubsequentAction_tag2el_1, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 2, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RICsubsequentAction = { - "RICsubsequentAction", - "RICsubsequentAction", - &asn_OP_SEQUENCE, - asn_DEF_RICsubsequentAction_tags_1, - sizeof(asn_DEF_RICsubsequentAction_tags_1) - /sizeof(asn_DEF_RICsubsequentAction_tags_1[0]), /* 1 */ - asn_DEF_RICsubsequentAction_tags_1, /* Same as above */ - sizeof(asn_DEF_RICsubsequentAction_tags_1) - /sizeof(asn_DEF_RICsubsequentAction_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICsubsequentAction_1, - 2, /* Elements count */ - &asn_SPC_RICsubsequentAction_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICsubsequentAction.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICsubsequentAction.h deleted file mode 100644 index dae24c8..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICsubsequentAction.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICsubsequentAction_H_ -#define _RICsubsequentAction_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "RICsubsequentActionType.h" -#include "RICtimeToWait.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* RICsubsequentAction */ -typedef struct RICsubsequentAction { - RICsubsequentActionType_t ricSubsequentActionType; - RICtimeToWait_t ricTimeToWait; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} RICsubsequentAction_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICsubsequentAction; -extern asn_SEQUENCE_specifics_t asn_SPC_RICsubsequentAction_specs_1; -extern asn_TYPE_member_t asn_MBR_RICsubsequentAction_1[2]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICsubsequentAction_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICsubsequentActionType.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICsubsequentActionType.c deleted file mode 100644 index c622986..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICsubsequentActionType.c +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICsubsequentActionType.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_RICsubsequentActionType_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_RICsubsequentActionType_value2enum_1[] = { - { 0, 8, "continue" }, - { 1, 4, "wait" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_RICsubsequentActionType_enum2value_1[] = { - 0, /* continue(0) */ - 1 /* wait(1) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_RICsubsequentActionType_specs_1 = { - asn_MAP_RICsubsequentActionType_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_RICsubsequentActionType_enum2value_1, /* N => "tag"; sorted by N */ - 2, /* Number of elements in the maps */ - 3, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_RICsubsequentActionType_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RICsubsequentActionType = { - "RICsubsequentActionType", - "RICsubsequentActionType", - &asn_OP_NativeEnumerated, - asn_DEF_RICsubsequentActionType_tags_1, - sizeof(asn_DEF_RICsubsequentActionType_tags_1) - /sizeof(asn_DEF_RICsubsequentActionType_tags_1[0]), /* 1 */ - asn_DEF_RICsubsequentActionType_tags_1, /* Same as above */ - sizeof(asn_DEF_RICsubsequentActionType_tags_1) - /sizeof(asn_DEF_RICsubsequentActionType_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_RICsubsequentActionType_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_RICsubsequentActionType_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICsubsequentActionType.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICsubsequentActionType.h deleted file mode 100644 index 18f61c7..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICsubsequentActionType.h +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICsubsequentActionType_H_ -#define _RICsubsequentActionType_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum RICsubsequentActionType { - RICsubsequentActionType_continue = 0, - RICsubsequentActionType_wait = 1 - /* - * Enumeration is extensible - */ -} e_RICsubsequentActionType; - -/* RICsubsequentActionType */ -typedef long RICsubsequentActionType_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_RICsubsequentActionType_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_RICsubsequentActionType; -extern const asn_INTEGER_specifics_t asn_SPC_RICsubsequentActionType_specs_1; -asn_struct_free_f RICsubsequentActionType_free; -asn_struct_print_f RICsubsequentActionType_print; -asn_constr_check_f RICsubsequentActionType_constraint; -ber_type_decoder_f RICsubsequentActionType_decode_ber; -der_type_encoder_f RICsubsequentActionType_encode_der; -xer_type_decoder_f RICsubsequentActionType_decode_xer; -xer_type_encoder_f RICsubsequentActionType_encode_xer; -per_type_decoder_f RICsubsequentActionType_decode_uper; -per_type_encoder_f RICsubsequentActionType_encode_uper; -per_type_decoder_f RICsubsequentActionType_decode_aper; -per_type_encoder_f RICsubsequentActionType_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICsubsequentActionType_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICtimeToWait.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICtimeToWait.c deleted file mode 100644 index 159b5e3..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICtimeToWait.c +++ /dev/null @@ -1,87 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "RICtimeToWait.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_RICtimeToWait_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 5, 5, 0, 17 } /* (0..17,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_RICtimeToWait_value2enum_1[] = { - { 0, 4, "zero" }, - { 1, 4, "w1ms" }, - { 2, 4, "w2ms" }, - { 3, 4, "w5ms" }, - { 4, 5, "w10ms" }, - { 5, 5, "w20ms" }, - { 6, 5, "w30ms" }, - { 7, 5, "w40ms" }, - { 8, 5, "w50ms" }, - { 9, 6, "w100ms" }, - { 10, 6, "w200ms" }, - { 11, 6, "w500ms" }, - { 12, 3, "w1s" }, - { 13, 3, "w2s" }, - { 14, 3, "w5s" }, - { 15, 4, "w10s" }, - { 16, 4, "w20s" }, - { 17, 4, "w60s" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_RICtimeToWait_enum2value_1[] = { - 9, /* w100ms(9) */ - 4, /* w10ms(4) */ - 15, /* w10s(15) */ - 1, /* w1ms(1) */ - 12, /* w1s(12) */ - 10, /* w200ms(10) */ - 5, /* w20ms(5) */ - 16, /* w20s(16) */ - 2, /* w2ms(2) */ - 13, /* w2s(13) */ - 6, /* w30ms(6) */ - 7, /* w40ms(7) */ - 11, /* w500ms(11) */ - 8, /* w50ms(8) */ - 3, /* w5ms(3) */ - 14, /* w5s(14) */ - 17, /* w60s(17) */ - 0 /* zero(0) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_RICtimeToWait_specs_1 = { - asn_MAP_RICtimeToWait_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_RICtimeToWait_enum2value_1, /* N => "tag"; sorted by N */ - 18, /* Number of elements in the maps */ - 19, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_RICtimeToWait_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RICtimeToWait = { - "RICtimeToWait", - "RICtimeToWait", - &asn_OP_NativeEnumerated, - asn_DEF_RICtimeToWait_tags_1, - sizeof(asn_DEF_RICtimeToWait_tags_1) - /sizeof(asn_DEF_RICtimeToWait_tags_1[0]), /* 1 */ - asn_DEF_RICtimeToWait_tags_1, /* Same as above */ - sizeof(asn_DEF_RICtimeToWait_tags_1) - /sizeof(asn_DEF_RICtimeToWait_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_RICtimeToWait_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_RICtimeToWait_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICtimeToWait.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICtimeToWait.h deleted file mode 100644 index 6bd2096..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RICtimeToWait.h +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _RICtimeToWait_H_ -#define _RICtimeToWait_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum RICtimeToWait { - RICtimeToWait_zero = 0, - RICtimeToWait_w1ms = 1, - RICtimeToWait_w2ms = 2, - RICtimeToWait_w5ms = 3, - RICtimeToWait_w10ms = 4, - RICtimeToWait_w20ms = 5, - RICtimeToWait_w30ms = 6, - RICtimeToWait_w40ms = 7, - RICtimeToWait_w50ms = 8, - RICtimeToWait_w100ms = 9, - RICtimeToWait_w200ms = 10, - RICtimeToWait_w500ms = 11, - RICtimeToWait_w1s = 12, - RICtimeToWait_w2s = 13, - RICtimeToWait_w5s = 14, - RICtimeToWait_w10s = 15, - RICtimeToWait_w20s = 16, - RICtimeToWait_w60s = 17 - /* - * Enumeration is extensible - */ -} e_RICtimeToWait; - -/* RICtimeToWait */ -typedef long RICtimeToWait_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_RICtimeToWait_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_RICtimeToWait; -extern const asn_INTEGER_specifics_t asn_SPC_RICtimeToWait_specs_1; -asn_struct_free_f RICtimeToWait_free; -asn_struct_print_f RICtimeToWait_print; -asn_constr_check_f RICtimeToWait_constraint; -ber_type_decoder_f RICtimeToWait_decode_ber; -der_type_encoder_f RICtimeToWait_encode_der; -xer_type_decoder_f RICtimeToWait_decode_xer; -xer_type_encoder_f RICtimeToWait_encode_xer; -per_type_decoder_f RICtimeToWait_decode_uper; -per_type_encoder_f RICtimeToWait_encode_uper; -per_type_decoder_f RICtimeToWait_decode_aper; -per_type_encoder_f RICtimeToWait_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICtimeToWait_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RT-Period-IE.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/RT-Period-IE.c deleted file mode 100644 index 5f99297..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RT-Period-IE.c +++ /dev/null @@ -1,94 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "RT-Period-IE.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -static asn_oer_constraints_t asn_OER_type_RT_Period_IE_constr_1 CC_NOTUSED = { - { 0, 0 }, - -1}; -asn_per_constraints_t asn_PER_type_RT_Period_IE_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 5, 5, 0, 19 } /* (0..19,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_RT_Period_IE_value2enum_1[] = { - { 0, 4, "ms10" }, - { 1, 4, "ms20" }, - { 2, 4, "ms32" }, - { 3, 4, "ms40" }, - { 4, 4, "ms60" }, - { 5, 4, "ms64" }, - { 6, 4, "ms70" }, - { 7, 4, "ms80" }, - { 8, 5, "ms128" }, - { 9, 5, "ms160" }, - { 10, 5, "ms256" }, - { 11, 5, "ms320" }, - { 12, 5, "ms512" }, - { 13, 5, "ms640" }, - { 14, 6, "ms1024" }, - { 15, 6, "ms1280" }, - { 16, 6, "ms2048" }, - { 17, 6, "ms2560" }, - { 18, 6, "ms5120" }, - { 19, 7, "ms10240" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_RT_Period_IE_enum2value_1[] = { - 0, /* ms10(0) */ - 14, /* ms1024(14) */ - 19, /* ms10240(19) */ - 8, /* ms128(8) */ - 15, /* ms1280(15) */ - 9, /* ms160(9) */ - 1, /* ms20(1) */ - 16, /* ms2048(16) */ - 10, /* ms256(10) */ - 17, /* ms2560(17) */ - 2, /* ms32(2) */ - 11, /* ms320(11) */ - 3, /* ms40(3) */ - 12, /* ms512(12) */ - 18, /* ms5120(18) */ - 4, /* ms60(4) */ - 5, /* ms64(5) */ - 13, /* ms640(13) */ - 6, /* ms70(6) */ - 7 /* ms80(7) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_RT_Period_IE_specs_1 = { - asn_MAP_RT_Period_IE_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_RT_Period_IE_enum2value_1, /* N => "tag"; sorted by N */ - 20, /* Number of elements in the maps */ - 21, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_RT_Period_IE_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RT_Period_IE = { - "RT-Period-IE", - "RT-Period-IE", - &asn_OP_NativeEnumerated, - asn_DEF_RT_Period_IE_tags_1, - sizeof(asn_DEF_RT_Period_IE_tags_1) - /sizeof(asn_DEF_RT_Period_IE_tags_1[0]), /* 1 */ - asn_DEF_RT_Period_IE_tags_1, /* Same as above */ - sizeof(asn_DEF_RT_Period_IE_tags_1) - /sizeof(asn_DEF_RT_Period_IE_tags_1[0]), /* 1 */ - { &asn_OER_type_RT_Period_IE_constr_1, &asn_PER_type_RT_Period_IE_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_RT_Period_IE_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RT-Period-IE.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/RT-Period-IE.h deleted file mode 100644 index 30d2843..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/RT-Period-IE.h +++ /dev/null @@ -1,74 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _RT_Period_IE_H_ -#define _RT_Period_IE_H_ - - -#include - -/* Including external dependencies */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum RT_Period_IE { - RT_Period_IE_ms10 = 0, - RT_Period_IE_ms20 = 1, - RT_Period_IE_ms32 = 2, - RT_Period_IE_ms40 = 3, - RT_Period_IE_ms60 = 4, - RT_Period_IE_ms64 = 5, - RT_Period_IE_ms70 = 6, - RT_Period_IE_ms80 = 7, - RT_Period_IE_ms128 = 8, - RT_Period_IE_ms160 = 9, - RT_Period_IE_ms256 = 10, - RT_Period_IE_ms320 = 11, - RT_Period_IE_ms512 = 12, - RT_Period_IE_ms640 = 13, - RT_Period_IE_ms1024 = 14, - RT_Period_IE_ms1280 = 15, - RT_Period_IE_ms2048 = 16, - RT_Period_IE_ms2560 = 17, - RT_Period_IE_ms5120 = 18, - RT_Period_IE_ms10240 = 19 - /* - * Enumeration is extensible - */ -} e_RT_Period_IE; - -/* RT-Period-IE */ -typedef long RT_Period_IE_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_RT_Period_IE_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_RT_Period_IE; -extern const asn_INTEGER_specifics_t asn_SPC_RT_Period_IE_specs_1; -asn_struct_free_f RT_Period_IE_free; -asn_struct_print_f RT_Period_IE_print; -asn_constr_check_f RT_Period_IE_constraint; -ber_type_decoder_f RT_Period_IE_decode_ber; -der_type_encoder_f RT_Period_IE_encode_der; -xer_type_decoder_f RT_Period_IE_decode_xer; -xer_type_encoder_f RT_Period_IE_encode_xer; -oer_type_decoder_f RT_Period_IE_decode_oer; -oer_type_encoder_f RT_Period_IE_encode_oer; -per_type_decoder_f RT_Period_IE_decode_uper; -per_type_encoder_f RT_Period_IE_encode_uper; -per_type_decoder_f RT_Period_IE_decode_aper; -per_type_encoder_f RT_Period_IE_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RT_Period_IE_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/ResetRequest.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/ResetRequest.c deleted file mode 100644 index 3f96a6d..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/ResetRequest.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "ResetRequest.h" - -asn_TYPE_member_t asn_MBR_ResetRequest_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct ResetRequest, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_1527P14, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_ResetRequest_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ResetRequest_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ResetRequest_specs_1 = { - sizeof(struct ResetRequest), - offsetof(struct ResetRequest, _asn_ctx), - asn_MAP_ResetRequest_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ResetRequest = { - "ResetRequest", - "ResetRequest", - &asn_OP_SEQUENCE, - asn_DEF_ResetRequest_tags_1, - sizeof(asn_DEF_ResetRequest_tags_1) - /sizeof(asn_DEF_ResetRequest_tags_1[0]), /* 1 */ - asn_DEF_ResetRequest_tags_1, /* Same as above */ - sizeof(asn_DEF_ResetRequest_tags_1) - /sizeof(asn_DEF_ResetRequest_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ResetRequest_1, - 1, /* Elements count */ - &asn_SPC_ResetRequest_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/ResetRequest.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/ResetRequest.h deleted file mode 100644 index e7f6ec8..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/ResetRequest.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _ResetRequest_H_ -#define _ResetRequest_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* ResetRequest */ -typedef struct ResetRequest { - ProtocolIE_Container_1527P14_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ResetRequest_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ResetRequest; -extern asn_SEQUENCE_specifics_t asn_SPC_ResetRequest_specs_1; -extern asn_TYPE_member_t asn_MBR_ResetRequest_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _ResetRequest_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/ResetResponse.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/ResetResponse.c deleted file mode 100644 index c8afcc4..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/ResetResponse.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "ResetResponse.h" - -asn_TYPE_member_t asn_MBR_ResetResponse_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct ResetResponse, protocolIEs), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_1527P15, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "protocolIEs" - }, -}; -static const ber_tlv_tag_t asn_DEF_ResetResponse_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ResetResponse_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ResetResponse_specs_1 = { - sizeof(struct ResetResponse), - offsetof(struct ResetResponse, _asn_ctx), - asn_MAP_ResetResponse_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ResetResponse = { - "ResetResponse", - "ResetResponse", - &asn_OP_SEQUENCE, - asn_DEF_ResetResponse_tags_1, - sizeof(asn_DEF_ResetResponse_tags_1) - /sizeof(asn_DEF_ResetResponse_tags_1[0]), /* 1 */ - asn_DEF_ResetResponse_tags_1, /* Same as above */ - sizeof(asn_DEF_ResetResponse_tags_1) - /sizeof(asn_DEF_ResetResponse_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ResetResponse_1, - 1, /* Elements count */ - &asn_SPC_ResetResponse_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/ResetResponse.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/ResetResponse.h deleted file mode 100644 index 08a576e..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/ResetResponse.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _ResetResponse_H_ -#define _ResetResponse_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProtocolIE-Container.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* ResetResponse */ -typedef struct ResetResponse { - ProtocolIE_Container_1527P15_t protocolIEs; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ResetResponse_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ResetResponse; -extern asn_SEQUENCE_specifics_t asn_SPC_ResetResponse_specs_1; -extern asn_TYPE_member_t asn_MBR_ResetResponse_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _ResetResponse_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/SNSSAI.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/SNSSAI.c deleted file mode 100644 index 39afcad..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/SNSSAI.c +++ /dev/null @@ -1,130 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "SNSSAI.h" - -static int -memb_sST_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - size = st->size; - - if((size == 1)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static int -memb_sD_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - size = st->size; - - if((size == 3)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_oer_constraints_t asn_OER_memb_sST_constr_2 CC_NOTUSED = { - { 0, 0 }, - 1 /* (SIZE(1..1)) */}; -static asn_per_constraints_t asn_PER_memb_sST_constr_2 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 0, 0, 1, 1 } /* (SIZE(1..1)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_sD_constr_3 CC_NOTUSED = { - { 0, 0 }, - 3 /* (SIZE(3..3)) */}; -static asn_per_constraints_t asn_PER_memb_sD_constr_3 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 0, 0, 3, 3 } /* (SIZE(3..3)) */, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_SNSSAI_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct SNSSAI, sST), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_OCTET_STRING, - 0, - { &asn_OER_memb_sST_constr_2, &asn_PER_memb_sST_constr_2, memb_sST_constraint_1 }, - 0, 0, /* No default value */ - "sST" - }, - { ATF_POINTER, 1, offsetof(struct SNSSAI, sD), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_OCTET_STRING, - 0, - { &asn_OER_memb_sD_constr_3, &asn_PER_memb_sD_constr_3, memb_sD_constraint_1 }, - 0, 0, /* No default value */ - "sD" - }, -}; -static const int asn_MAP_SNSSAI_oms_1[] = { 1 }; -static const ber_tlv_tag_t asn_DEF_SNSSAI_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_SNSSAI_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sST */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* sD */ -}; -asn_SEQUENCE_specifics_t asn_SPC_SNSSAI_specs_1 = { - sizeof(struct SNSSAI), - offsetof(struct SNSSAI, _asn_ctx), - asn_MAP_SNSSAI_tag2el_1, - 2, /* Count of tags in the map */ - asn_MAP_SNSSAI_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_SNSSAI = { - "SNSSAI", - "SNSSAI", - &asn_OP_SEQUENCE, - asn_DEF_SNSSAI_tags_1, - sizeof(asn_DEF_SNSSAI_tags_1) - /sizeof(asn_DEF_SNSSAI_tags_1[0]), /* 1 */ - asn_DEF_SNSSAI_tags_1, /* Same as above */ - sizeof(asn_DEF_SNSSAI_tags_1) - /sizeof(asn_DEF_SNSSAI_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_SNSSAI_1, - 2, /* Elements count */ - &asn_SPC_SNSSAI_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/SNSSAI.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/SNSSAI.h deleted file mode 100644 index b854e6f..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/SNSSAI.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _SNSSAI_H_ -#define _SNSSAI_H_ - - -#include - -/* Including external dependencies */ -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* SNSSAI */ -typedef struct SNSSAI { - OCTET_STRING_t sST; - OCTET_STRING_t *sD; /* OPTIONAL */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} SNSSAI_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_SNSSAI; -extern asn_SEQUENCE_specifics_t asn_SPC_SNSSAI_specs_1; -extern asn_TYPE_member_t asn_MBR_SNSSAI_1[2]; - -#ifdef __cplusplus -} -#endif - -#endif /* _SNSSAI_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/ServedPlmnPerCellListItem.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/ServedPlmnPerCellListItem.c deleted file mode 100644 index 52fbaf5..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/ServedPlmnPerCellListItem.c +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "ServedPlmnPerCellListItem.h" - -asn_TYPE_member_t asn_MBR_ServedPlmnPerCellListItem_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct ServedPlmnPerCellListItem, pLMN_Identity), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_PLMN_Identity, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "pLMN-Identity" - }, - { ATF_POINTER, 2, offsetof(struct ServedPlmnPerCellListItem, du_PM_5GC), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_FGC_DU_PM_Container, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "du-PM-5GC" - }, - { ATF_POINTER, 1, offsetof(struct ServedPlmnPerCellListItem, du_PM_EPC), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_EPC_DU_PM_Container, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "du-PM-EPC" - }, -}; -static const int asn_MAP_ServedPlmnPerCellListItem_oms_1[] = { 1, 2 }; -static const ber_tlv_tag_t asn_DEF_ServedPlmnPerCellListItem_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ServedPlmnPerCellListItem_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pLMN-Identity */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* du-PM-5GC */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* du-PM-EPC */ -}; -asn_SEQUENCE_specifics_t asn_SPC_ServedPlmnPerCellListItem_specs_1 = { - sizeof(struct ServedPlmnPerCellListItem), - offsetof(struct ServedPlmnPerCellListItem, _asn_ctx), - asn_MAP_ServedPlmnPerCellListItem_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_ServedPlmnPerCellListItem_oms_1, /* Optional members */ - 2, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ServedPlmnPerCellListItem = { - "ServedPlmnPerCellListItem", - "ServedPlmnPerCellListItem", - &asn_OP_SEQUENCE, - asn_DEF_ServedPlmnPerCellListItem_tags_1, - sizeof(asn_DEF_ServedPlmnPerCellListItem_tags_1) - /sizeof(asn_DEF_ServedPlmnPerCellListItem_tags_1[0]), /* 1 */ - asn_DEF_ServedPlmnPerCellListItem_tags_1, /* Same as above */ - sizeof(asn_DEF_ServedPlmnPerCellListItem_tags_1) - /sizeof(asn_DEF_ServedPlmnPerCellListItem_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ServedPlmnPerCellListItem_1, - 3, /* Elements count */ - &asn_SPC_ServedPlmnPerCellListItem_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/ServedPlmnPerCellListItem.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/ServedPlmnPerCellListItem.h deleted file mode 100644 index be5ecd6..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/ServedPlmnPerCellListItem.h +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _ServedPlmnPerCellListItem_H_ -#define _ServedPlmnPerCellListItem_H_ - - -#include - -/* Including external dependencies */ -#include "PLMN-Identity.h" -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct FGC_DU_PM_Container; -struct EPC_DU_PM_Container; - -/* ServedPlmnPerCellListItem */ -typedef struct ServedPlmnPerCellListItem { - PLMN_Identity_t pLMN_Identity; - struct FGC_DU_PM_Container *du_PM_5GC; /* OPTIONAL */ - struct EPC_DU_PM_Container *du_PM_EPC; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ServedPlmnPerCellListItem_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ServedPlmnPerCellListItem; -extern asn_SEQUENCE_specifics_t asn_SPC_ServedPlmnPerCellListItem_specs_1; -extern asn_TYPE_member_t asn_MBR_ServedPlmnPerCellListItem_1[3]; - -#ifdef __cplusplus -} -#endif - -/* Referred external types */ -#include "FGC-DU-PM-Container.h" -#include "EPC-DU-PM-Container.h" - -#endif /* _ServedPlmnPerCellListItem_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/SlicePerPlmnPerCellListItem.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/SlicePerPlmnPerCellListItem.c deleted file mode 100644 index a463803..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/SlicePerPlmnPerCellListItem.c +++ /dev/null @@ -1,139 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "SlicePerPlmnPerCellListItem.h" - -static int -memb_fQIPERSlicesPerPlmnPerCellList_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - /* Determine the number of elements */ - size = _A_CSEQUENCE_FROM_VOID(sptr)->count; - - if((size >= 1 && size <= 64)) { - /* Perform validation of the inner elements */ - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_oer_constraints_t asn_OER_type_fQIPERSlicesPerPlmnPerCellList_constr_3 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..64)) */}; -static asn_per_constraints_t asn_PER_type_fQIPERSlicesPerPlmnPerCellList_constr_3 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 6, 6, 1, 64 } /* (SIZE(1..64)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_fQIPERSlicesPerPlmnPerCellList_constr_3 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..64)) */}; -static asn_per_constraints_t asn_PER_memb_fQIPERSlicesPerPlmnPerCellList_constr_3 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 6, 6, 1, 64 } /* (SIZE(1..64)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_fQIPERSlicesPerPlmnPerCellList_3[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_FQIPERSlicesPerPlmnPerCellListItem, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_fQIPERSlicesPerPlmnPerCellList_tags_3[] = { - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_fQIPERSlicesPerPlmnPerCellList_specs_3 = { - sizeof(struct SlicePerPlmnPerCellListItem__fQIPERSlicesPerPlmnPerCellList), - offsetof(struct SlicePerPlmnPerCellListItem__fQIPERSlicesPerPlmnPerCellList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_fQIPERSlicesPerPlmnPerCellList_3 = { - "fQIPERSlicesPerPlmnPerCellList", - "fQIPERSlicesPerPlmnPerCellList", - &asn_OP_SEQUENCE_OF, - asn_DEF_fQIPERSlicesPerPlmnPerCellList_tags_3, - sizeof(asn_DEF_fQIPERSlicesPerPlmnPerCellList_tags_3) - /sizeof(asn_DEF_fQIPERSlicesPerPlmnPerCellList_tags_3[0]) - 1, /* 1 */ - asn_DEF_fQIPERSlicesPerPlmnPerCellList_tags_3, /* Same as above */ - sizeof(asn_DEF_fQIPERSlicesPerPlmnPerCellList_tags_3) - /sizeof(asn_DEF_fQIPERSlicesPerPlmnPerCellList_tags_3[0]), /* 2 */ - { &asn_OER_type_fQIPERSlicesPerPlmnPerCellList_constr_3, &asn_PER_type_fQIPERSlicesPerPlmnPerCellList_constr_3, SEQUENCE_OF_constraint }, - asn_MBR_fQIPERSlicesPerPlmnPerCellList_3, - 1, /* Single element */ - &asn_SPC_fQIPERSlicesPerPlmnPerCellList_specs_3 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_SlicePerPlmnPerCellListItem_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct SlicePerPlmnPerCellListItem, sliceID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_SNSSAI, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "sliceID" - }, - { ATF_NOFLAGS, 0, offsetof(struct SlicePerPlmnPerCellListItem, fQIPERSlicesPerPlmnPerCellList), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - 0, - &asn_DEF_fQIPERSlicesPerPlmnPerCellList_3, - 0, - { &asn_OER_memb_fQIPERSlicesPerPlmnPerCellList_constr_3, &asn_PER_memb_fQIPERSlicesPerPlmnPerCellList_constr_3, memb_fQIPERSlicesPerPlmnPerCellList_constraint_1 }, - 0, 0, /* No default value */ - "fQIPERSlicesPerPlmnPerCellList" - }, -}; -static const ber_tlv_tag_t asn_DEF_SlicePerPlmnPerCellListItem_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_SlicePerPlmnPerCellListItem_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sliceID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* fQIPERSlicesPerPlmnPerCellList */ -}; -asn_SEQUENCE_specifics_t asn_SPC_SlicePerPlmnPerCellListItem_specs_1 = { - sizeof(struct SlicePerPlmnPerCellListItem), - offsetof(struct SlicePerPlmnPerCellListItem, _asn_ctx), - asn_MAP_SlicePerPlmnPerCellListItem_tag2el_1, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 2, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_SlicePerPlmnPerCellListItem = { - "SlicePerPlmnPerCellListItem", - "SlicePerPlmnPerCellListItem", - &asn_OP_SEQUENCE, - asn_DEF_SlicePerPlmnPerCellListItem_tags_1, - sizeof(asn_DEF_SlicePerPlmnPerCellListItem_tags_1) - /sizeof(asn_DEF_SlicePerPlmnPerCellListItem_tags_1[0]), /* 1 */ - asn_DEF_SlicePerPlmnPerCellListItem_tags_1, /* Same as above */ - sizeof(asn_DEF_SlicePerPlmnPerCellListItem_tags_1) - /sizeof(asn_DEF_SlicePerPlmnPerCellListItem_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_SlicePerPlmnPerCellListItem_1, - 2, /* Elements count */ - &asn_SPC_SlicePerPlmnPerCellListItem_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/SlicePerPlmnPerCellListItem.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/SlicePerPlmnPerCellListItem.h deleted file mode 100644 index 1d704d5..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/SlicePerPlmnPerCellListItem.h +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _SlicePerPlmnPerCellListItem_H_ -#define _SlicePerPlmnPerCellListItem_H_ - - -#include - -/* Including external dependencies */ -#include "SNSSAI.h" -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct FQIPERSlicesPerPlmnPerCellListItem; - -/* SlicePerPlmnPerCellListItem */ -typedef struct SlicePerPlmnPerCellListItem { - SNSSAI_t sliceID; - struct SlicePerPlmnPerCellListItem__fQIPERSlicesPerPlmnPerCellList { - A_SEQUENCE_OF(struct FQIPERSlicesPerPlmnPerCellListItem) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } fQIPERSlicesPerPlmnPerCellList; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} SlicePerPlmnPerCellListItem_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_SlicePerPlmnPerCellListItem; -extern asn_SEQUENCE_specifics_t asn_SPC_SlicePerPlmnPerCellListItem_specs_1; -extern asn_TYPE_member_t asn_MBR_SlicePerPlmnPerCellListItem_1[2]; - -#ifdef __cplusplus -} -#endif - -/* Referred external types */ -#include "FQIPERSlicesPerPlmnPerCellListItem.h" - -#endif /* _SlicePerPlmnPerCellListItem_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/SliceToReportListItem.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/SliceToReportListItem.c deleted file mode 100644 index ae32ba9..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/SliceToReportListItem.c +++ /dev/null @@ -1,139 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "SliceToReportListItem.h" - -static int -memb_fQIPERSlicesPerPlmnList_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - size_t size; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - /* Determine the number of elements */ - size = _A_CSEQUENCE_FROM_VOID(sptr)->count; - - if((size >= 1 && size <= 64)) { - /* Perform validation of the inner elements */ - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_oer_constraints_t asn_OER_type_fQIPERSlicesPerPlmnList_constr_3 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..64)) */}; -static asn_per_constraints_t asn_PER_type_fQIPERSlicesPerPlmnList_constr_3 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 6, 6, 1, 64 } /* (SIZE(1..64)) */, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_fQIPERSlicesPerPlmnList_constr_3 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..64)) */}; -static asn_per_constraints_t asn_PER_memb_fQIPERSlicesPerPlmnList_constr_3 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 6, 6, 1, 64 } /* (SIZE(1..64)) */, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_fQIPERSlicesPerPlmnList_3[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_FQIPERSlicesPerPlmnListItem, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_fQIPERSlicesPerPlmnList_tags_3[] = { - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_fQIPERSlicesPerPlmnList_specs_3 = { - sizeof(struct SliceToReportListItem__fQIPERSlicesPerPlmnList), - offsetof(struct SliceToReportListItem__fQIPERSlicesPerPlmnList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_fQIPERSlicesPerPlmnList_3 = { - "fQIPERSlicesPerPlmnList", - "fQIPERSlicesPerPlmnList", - &asn_OP_SEQUENCE_OF, - asn_DEF_fQIPERSlicesPerPlmnList_tags_3, - sizeof(asn_DEF_fQIPERSlicesPerPlmnList_tags_3) - /sizeof(asn_DEF_fQIPERSlicesPerPlmnList_tags_3[0]) - 1, /* 1 */ - asn_DEF_fQIPERSlicesPerPlmnList_tags_3, /* Same as above */ - sizeof(asn_DEF_fQIPERSlicesPerPlmnList_tags_3) - /sizeof(asn_DEF_fQIPERSlicesPerPlmnList_tags_3[0]), /* 2 */ - { &asn_OER_type_fQIPERSlicesPerPlmnList_constr_3, &asn_PER_type_fQIPERSlicesPerPlmnList_constr_3, SEQUENCE_OF_constraint }, - asn_MBR_fQIPERSlicesPerPlmnList_3, - 1, /* Single element */ - &asn_SPC_fQIPERSlicesPerPlmnList_specs_3 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_SliceToReportListItem_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct SliceToReportListItem, sliceID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_SNSSAI, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "sliceID" - }, - { ATF_NOFLAGS, 0, offsetof(struct SliceToReportListItem, fQIPERSlicesPerPlmnList), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - 0, - &asn_DEF_fQIPERSlicesPerPlmnList_3, - 0, - { &asn_OER_memb_fQIPERSlicesPerPlmnList_constr_3, &asn_PER_memb_fQIPERSlicesPerPlmnList_constr_3, memb_fQIPERSlicesPerPlmnList_constraint_1 }, - 0, 0, /* No default value */ - "fQIPERSlicesPerPlmnList" - }, -}; -static const ber_tlv_tag_t asn_DEF_SliceToReportListItem_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_SliceToReportListItem_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sliceID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* fQIPERSlicesPerPlmnList */ -}; -asn_SEQUENCE_specifics_t asn_SPC_SliceToReportListItem_specs_1 = { - sizeof(struct SliceToReportListItem), - offsetof(struct SliceToReportListItem, _asn_ctx), - asn_MAP_SliceToReportListItem_tag2el_1, - 2, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 2, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_SliceToReportListItem = { - "SliceToReportListItem", - "SliceToReportListItem", - &asn_OP_SEQUENCE, - asn_DEF_SliceToReportListItem_tags_1, - sizeof(asn_DEF_SliceToReportListItem_tags_1) - /sizeof(asn_DEF_SliceToReportListItem_tags_1[0]), /* 1 */ - asn_DEF_SliceToReportListItem_tags_1, /* Same as above */ - sizeof(asn_DEF_SliceToReportListItem_tags_1) - /sizeof(asn_DEF_SliceToReportListItem_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_SliceToReportListItem_1, - 2, /* Elements count */ - &asn_SPC_SliceToReportListItem_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/SliceToReportListItem.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/SliceToReportListItem.h deleted file mode 100644 index c25b20a..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/SliceToReportListItem.h +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _SliceToReportListItem_H_ -#define _SliceToReportListItem_H_ - - -#include - -/* Including external dependencies */ -#include "SNSSAI.h" -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct FQIPERSlicesPerPlmnListItem; - -/* SliceToReportListItem */ -typedef struct SliceToReportListItem { - SNSSAI_t sliceID; - struct SliceToReportListItem__fQIPERSlicesPerPlmnList { - A_SEQUENCE_OF(struct FQIPERSlicesPerPlmnListItem) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } fQIPERSlicesPerPlmnList; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} SliceToReportListItem_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_SliceToReportListItem; -extern asn_SEQUENCE_specifics_t asn_SPC_SliceToReportListItem_specs_1; -extern asn_TYPE_member_t asn_MBR_SliceToReportListItem_1[2]; - -#ifdef __cplusplus -} -#endif - -/* Referred external types */ -#include "FQIPERSlicesPerPlmnListItem.h" - -#endif /* _SliceToReportListItem_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/SuccessfulOutcome.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/SuccessfulOutcome.c deleted file mode 100644 index 55bad07..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/SuccessfulOutcome.c +++ /dev/null @@ -1,359 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Descriptions" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "SuccessfulOutcome.h" - -static const long asn_VAL_1_id_RICsubscription = 8; -static const long asn_VAL_1_reject = 0; -static const long asn_VAL_2_id_RICsubscriptionDelete = 9; -static const long asn_VAL_2_reject = 0; -static const long asn_VAL_3_id_RICserviceUpdate = 7; -static const long asn_VAL_3_reject = 0; -static const long asn_VAL_4_id_RICcontrol = 4; -static const long asn_VAL_4_reject = 0; -static const long asn_VAL_5_id_E2setup = 1; -static const long asn_VAL_5_reject = 0; -static const long asn_VAL_6_id_Reset = 3; -static const long asn_VAL_6_reject = 0; -static const long asn_VAL_7_id_RICindication = 5; -static const long asn_VAL_7_ignore = 1; -static const long asn_VAL_8_id_RICserviceQuery = 6; -static const long asn_VAL_8_ignore = 1; -static const long asn_VAL_9_id_ErrorIndication = 2; -static const long asn_VAL_9_ignore = 1; -static const asn_ioc_cell_t asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1_rows[] = { - { "&InitiatingMessage", aioc__type, &asn_DEF_RICsubscriptionRequest }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionResponse }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_1_id_RICsubscription }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_1_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_RICsubscriptionDeleteRequest }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionDeleteResponse }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionDeleteFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_2_id_RICsubscriptionDelete }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_2_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_RICserviceUpdate }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_RICserviceUpdateAcknowledge }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RICserviceUpdateFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_3_id_RICserviceUpdate }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_3_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_RICcontrolRequest }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_RICcontrolAcknowledge }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RICcontrolFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_4_id_RICcontrol }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_4_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_E2setupRequest }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_E2setupResponse }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_E2setupFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_5_id_E2setup }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_5_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_ResetRequest }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_ResetResponse }, - { "&UnsuccessfulOutcome", }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_6_id_Reset }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_6_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_RICindication }, - { "&SuccessfulOutcome", }, - { "&UnsuccessfulOutcome", }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_7_id_RICindication }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_7_ignore }, - { "&InitiatingMessage", aioc__type, &asn_DEF_RICserviceQuery }, - { "&SuccessfulOutcome", }, - { "&UnsuccessfulOutcome", }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_8_id_RICserviceQuery }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_8_ignore }, - { "&InitiatingMessage", aioc__type, &asn_DEF_ErrorIndication }, - { "&SuccessfulOutcome", }, - { "&UnsuccessfulOutcome", }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_9_id_ErrorIndication }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_9_ignore } -}; -static const asn_ioc_set_t asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1[] = { - { 9, 5, asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1_rows } -}; -static int -memb_procedureCode_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 255)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_SuccessfulOutcome_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1; - size_t constraining_column = 3; /* &procedureCode */ - size_t for_column = 4; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SuccessfulOutcome, procedureCode)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_SuccessfulOutcome_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1; - size_t constraining_column = 3; /* &procedureCode */ - size_t for_column = 1; /* &SuccessfulOutcome */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SuccessfulOutcome, procedureCode)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_per_constraints_t asn_PER_memb_procedureCode_constr_2 CC_NOTUSED = { - { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_3 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_4 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_value_4[] = { - { ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome__value, choice.RICsubscriptionResponse), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICsubscriptionResponse, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICsubscriptionResponse" - }, - { ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome__value, choice.RICsubscriptionDeleteResponse), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICsubscriptionDeleteResponse, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICsubscriptionDeleteResponse" - }, - { ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome__value, choice.RICserviceUpdateAcknowledge), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICserviceUpdateAcknowledge, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICserviceUpdateAcknowledge" - }, - { ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome__value, choice.RICcontrolAcknowledge), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICcontrolAcknowledge, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICcontrolAcknowledge" - }, - { ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome__value, choice.E2setupResponse), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E2setupResponse, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "E2setupResponse" - }, - { ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome__value, choice.ResetResponse), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_ResetResponse, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ResetResponse" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_4[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 5 }, /* RICsubscriptionResponse */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 4 }, /* RICsubscriptionDeleteResponse */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -2, 3 }, /* RICserviceUpdateAcknowledge */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -3, 2 }, /* RICcontrolAcknowledge */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, -4, 1 }, /* E2setupResponse */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 5, -5, 0 } /* ResetResponse */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_4 = { - sizeof(struct SuccessfulOutcome__value), - offsetof(struct SuccessfulOutcome__value, _asn_ctx), - offsetof(struct SuccessfulOutcome__value, present), - sizeof(((struct SuccessfulOutcome__value *)0)->present), - asn_MAP_value_tag2el_4, - 6, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_4 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_4, - 6, /* Elements count */ - &asn_SPC_value_specs_4 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_SuccessfulOutcome_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome, procedureCode), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProcedureCode, - 0, - { 0, &asn_PER_memb_procedureCode_constr_2, memb_procedureCode_constraint_1 }, - 0, 0, /* No default value */ - "procedureCode" - }, - { ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_SuccessfulOutcome_criticality_type, - { 0, &asn_PER_memb_criticality_constr_3, memb_criticality_constraint_1 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_4, - select_SuccessfulOutcome_value_type, - { 0, &asn_PER_memb_value_constr_4, memb_value_constraint_1 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_SuccessfulOutcome_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_SuccessfulOutcome_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* procedureCode */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_SuccessfulOutcome_specs_1 = { - sizeof(struct SuccessfulOutcome), - offsetof(struct SuccessfulOutcome, _asn_ctx), - asn_MAP_SuccessfulOutcome_tag2el_1, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_SuccessfulOutcome = { - "SuccessfulOutcome", - "SuccessfulOutcome", - &asn_OP_SEQUENCE, - asn_DEF_SuccessfulOutcome_tags_1, - sizeof(asn_DEF_SuccessfulOutcome_tags_1) - /sizeof(asn_DEF_SuccessfulOutcome_tags_1[0]), /* 1 */ - asn_DEF_SuccessfulOutcome_tags_1, /* Same as above */ - sizeof(asn_DEF_SuccessfulOutcome_tags_1) - /sizeof(asn_DEF_SuccessfulOutcome_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_SuccessfulOutcome_1, - 3, /* Elements count */ - &asn_SPC_SuccessfulOutcome_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/SuccessfulOutcome.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/SuccessfulOutcome.h deleted file mode 100644 index fd04d94..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/SuccessfulOutcome.h +++ /dev/null @@ -1,91 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Descriptions" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _SuccessfulOutcome_H_ -#define _SuccessfulOutcome_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProcedureCode.h" -#include "Criticality.h" -#include "ANY.h" -#include "asn_ioc.h" -#include "RICsubscriptionRequest.h" -#include "RICsubscriptionResponse.h" -#include "RICsubscriptionFailure.h" -#include "RICsubscriptionDeleteRequest.h" -#include "RICsubscriptionDeleteResponse.h" -#include "RICsubscriptionDeleteFailure.h" -#include "RICserviceUpdate.h" -#include "RICserviceUpdateAcknowledge.h" -#include "RICserviceUpdateFailure.h" -#include "RICcontrolRequest.h" -#include "RICcontrolAcknowledge.h" -#include "RICcontrolFailure.h" -#include "E2setupRequest.h" -#include "E2setupResponse.h" -#include "E2setupFailure.h" -#include "ResetRequest.h" -#include "ResetResponse.h" -#include "RICindication.h" -#include "RICserviceQuery.h" -#include "ErrorIndication.h" -#include "OPEN_TYPE.h" -#include "constr_CHOICE.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum SuccessfulOutcome__value_PR { - SuccessfulOutcome__value_PR_NOTHING, /* No components present */ - SuccessfulOutcome__value_PR_RICsubscriptionResponse, - SuccessfulOutcome__value_PR_RICsubscriptionDeleteResponse, - SuccessfulOutcome__value_PR_RICserviceUpdateAcknowledge, - SuccessfulOutcome__value_PR_RICcontrolAcknowledge, - SuccessfulOutcome__value_PR_E2setupResponse, - SuccessfulOutcome__value_PR_ResetResponse -} SuccessfulOutcome__value_PR; - -/* SuccessfulOutcome */ -typedef struct SuccessfulOutcome { - ProcedureCode_t procedureCode; - Criticality_t criticality; - struct SuccessfulOutcome__value { - SuccessfulOutcome__value_PR present; - union SuccessfulOutcome__value_u { - RICsubscriptionResponse_t RICsubscriptionResponse; - RICsubscriptionDeleteResponse_t RICsubscriptionDeleteResponse; - RICserviceUpdateAcknowledge_t RICserviceUpdateAcknowledge; - RICcontrolAcknowledge_t RICcontrolAcknowledge; - E2setupResponse_t E2setupResponse; - ResetResponse_t ResetResponse; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} SuccessfulOutcome_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_SuccessfulOutcome; -extern asn_SEQUENCE_specifics_t asn_SPC_SuccessfulOutcome_specs_1; -extern asn_TYPE_member_t asn_MBR_SuccessfulOutcome_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _SuccessfulOutcome_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/TimeToWait.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/TimeToWait.c deleted file mode 100644 index c4eec34..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/TimeToWait.c +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "TimeToWait.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -static asn_per_constraints_t asn_PER_type_TimeToWait_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 5 } /* (0..5,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_TimeToWait_value2enum_1[] = { - { 0, 3, "v1s" }, - { 1, 3, "v2s" }, - { 2, 3, "v5s" }, - { 3, 4, "v10s" }, - { 4, 4, "v20s" }, - { 5, 4, "v60s" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_TimeToWait_enum2value_1[] = { - 3, /* v10s(3) */ - 0, /* v1s(0) */ - 4, /* v20s(4) */ - 1, /* v2s(1) */ - 2, /* v5s(2) */ - 5 /* v60s(5) */ - /* This list is extensible */ -}; -static const asn_INTEGER_specifics_t asn_SPC_TimeToWait_specs_1 = { - asn_MAP_TimeToWait_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_TimeToWait_enum2value_1, /* N => "tag"; sorted by N */ - 6, /* Number of elements in the maps */ - 7, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_TimeToWait_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_TimeToWait = { - "TimeToWait", - "TimeToWait", - &asn_OP_NativeEnumerated, - asn_DEF_TimeToWait_tags_1, - sizeof(asn_DEF_TimeToWait_tags_1) - /sizeof(asn_DEF_TimeToWait_tags_1[0]), /* 1 */ - asn_DEF_TimeToWait_tags_1, /* Same as above */ - sizeof(asn_DEF_TimeToWait_tags_1) - /sizeof(asn_DEF_TimeToWait_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_TimeToWait_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_TimeToWait_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/TimeToWait.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/TimeToWait.h deleted file mode 100644 index 6fad8ee..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/TimeToWait.h +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _TimeToWait_H_ -#define _TimeToWait_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum TimeToWait { - TimeToWait_v1s = 0, - TimeToWait_v2s = 1, - TimeToWait_v5s = 2, - TimeToWait_v10s = 3, - TimeToWait_v20s = 4, - TimeToWait_v60s = 5 - /* - * Enumeration is extensible - */ -} e_TimeToWait; - -/* TimeToWait */ -typedef long TimeToWait_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_TimeToWait; -asn_struct_free_f TimeToWait_free; -asn_struct_print_f TimeToWait_print; -asn_constr_check_f TimeToWait_constraint; -ber_type_decoder_f TimeToWait_decode_ber; -der_type_encoder_f TimeToWait_encode_der; -xer_type_decoder_f TimeToWait_decode_xer; -xer_type_encoder_f TimeToWait_encode_xer; -per_type_decoder_f TimeToWait_decode_uper; -per_type_encoder_f TimeToWait_encode_uper; -per_type_decoder_f TimeToWait_decode_aper; -per_type_encoder_f TimeToWait_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _TimeToWait_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/Timestamp.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/Timestamp.c deleted file mode 100644 index 4087751..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/Timestamp.c +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "Timestamp.h" - -/* - * This type is implemented using OCTET_STRING, - * so here we adjust the DEF accordingly. - */ -static const ber_tlv_tag_t asn_DEF_Timestamp_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_Timestamp = { - "Timestamp", - "Timestamp", - &asn_OP_OCTET_STRING, - asn_DEF_Timestamp_tags_1, - sizeof(asn_DEF_Timestamp_tags_1) - /sizeof(asn_DEF_Timestamp_tags_1[0]), /* 1 */ - asn_DEF_Timestamp_tags_1, /* Same as above */ - sizeof(asn_DEF_Timestamp_tags_1) - /sizeof(asn_DEF_Timestamp_tags_1[0]), /* 1 */ - { 0, 0, OCTET_STRING_constraint }, - 0, 0, /* No members */ - &asn_SPC_OCTET_STRING_specs /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/Timestamp.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/Timestamp.h deleted file mode 100644 index f77ac4a..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/Timestamp.h +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _Timestamp_H_ -#define _Timestamp_H_ - - -#include - -/* Including external dependencies */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Timestamp */ -typedef OCTET_STRING_t Timestamp_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_Timestamp; -asn_struct_free_f Timestamp_free; -asn_struct_print_f Timestamp_print; -asn_constr_check_f Timestamp_constraint; -ber_type_decoder_f Timestamp_decode_ber; -der_type_encoder_f Timestamp_encode_der; -xer_type_decoder_f Timestamp_decode_xer; -xer_type_encoder_f Timestamp_encode_xer; -oer_type_decoder_f Timestamp_decode_oer; -oer_type_encoder_f Timestamp_encode_oer; -per_type_decoder_f Timestamp_decode_uper; -per_type_encoder_f Timestamp_encode_uper; -per_type_decoder_f Timestamp_decode_aper; -per_type_encoder_f Timestamp_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _Timestamp_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/Trigger-ConditionIE-Item.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/Trigger-ConditionIE-Item.c deleted file mode 100644 index 069fd1d..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/Trigger-ConditionIE-Item.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "Trigger-ConditionIE-Item.h" - -asn_TYPE_member_t asn_MBR_Trigger_ConditionIE_Item_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct Trigger_ConditionIE_Item, report_Period_IE), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RT_Period_IE, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "report-Period-IE" - }, -}; -static const ber_tlv_tag_t asn_DEF_Trigger_ConditionIE_Item_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_Trigger_ConditionIE_Item_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* report-Period-IE */ -}; -asn_SEQUENCE_specifics_t asn_SPC_Trigger_ConditionIE_Item_specs_1 = { - sizeof(struct Trigger_ConditionIE_Item), - offsetof(struct Trigger_ConditionIE_Item, _asn_ctx), - asn_MAP_Trigger_ConditionIE_Item_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_Trigger_ConditionIE_Item = { - "Trigger-ConditionIE-Item", - "Trigger-ConditionIE-Item", - &asn_OP_SEQUENCE, - asn_DEF_Trigger_ConditionIE_Item_tags_1, - sizeof(asn_DEF_Trigger_ConditionIE_Item_tags_1) - /sizeof(asn_DEF_Trigger_ConditionIE_Item_tags_1[0]), /* 1 */ - asn_DEF_Trigger_ConditionIE_Item_tags_1, /* Same as above */ - sizeof(asn_DEF_Trigger_ConditionIE_Item_tags_1) - /sizeof(asn_DEF_Trigger_ConditionIE_Item_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_Trigger_ConditionIE_Item_1, - 1, /* Elements count */ - &asn_SPC_Trigger_ConditionIE_Item_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/Trigger-ConditionIE-Item.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/Trigger-ConditionIE-Item.h deleted file mode 100644 index 173b46a..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/Trigger-ConditionIE-Item.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _Trigger_ConditionIE_Item_H_ -#define _Trigger_ConditionIE_Item_H_ - - -#include - -/* Including external dependencies */ -#include "RT-Period-IE.h" -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Trigger-ConditionIE-Item */ -typedef struct Trigger_ConditionIE_Item { - RT_Period_IE_t report_Period_IE; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} Trigger_ConditionIE_Item_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_Trigger_ConditionIE_Item; -extern asn_SEQUENCE_specifics_t asn_SPC_Trigger_ConditionIE_Item_specs_1; -extern asn_TYPE_member_t asn_MBR_Trigger_ConditionIE_Item_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _Trigger_ConditionIE_Item_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/TriggeringMessage.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/TriggeringMessage.c deleted file mode 100644 index 45dcd5f..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/TriggeringMessage.c +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-CommonDataTypes" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "TriggeringMessage.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_TriggeringMessage_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_TriggeringMessage_value2enum_1[] = { - { 0, 18, "initiating-message" }, - { 1, 18, "successful-outcome" }, - { 2, 21, "unsuccessfull-outcome" } -}; -static const unsigned int asn_MAP_TriggeringMessage_enum2value_1[] = { - 0, /* initiating-message(0) */ - 1, /* successful-outcome(1) */ - 2 /* unsuccessfull-outcome(2) */ -}; -const asn_INTEGER_specifics_t asn_SPC_TriggeringMessage_specs_1 = { - asn_MAP_TriggeringMessage_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_TriggeringMessage_enum2value_1, /* N => "tag"; sorted by N */ - 3, /* Number of elements in the maps */ - 0, /* Enumeration is not extensible */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_TriggeringMessage_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_TriggeringMessage = { - "TriggeringMessage", - "TriggeringMessage", - &asn_OP_NativeEnumerated, - asn_DEF_TriggeringMessage_tags_1, - sizeof(asn_DEF_TriggeringMessage_tags_1) - /sizeof(asn_DEF_TriggeringMessage_tags_1[0]), /* 1 */ - asn_DEF_TriggeringMessage_tags_1, /* Same as above */ - sizeof(asn_DEF_TriggeringMessage_tags_1) - /sizeof(asn_DEF_TriggeringMessage_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_TriggeringMessage_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_TriggeringMessage_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/TriggeringMessage.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/TriggeringMessage.h deleted file mode 100644 index 734cefa..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/TriggeringMessage.h +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-CommonDataTypes" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _TriggeringMessage_H_ -#define _TriggeringMessage_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum TriggeringMessage { - TriggeringMessage_initiating_message = 0, - TriggeringMessage_successful_outcome = 1, - TriggeringMessage_unsuccessfull_outcome = 2 -} e_TriggeringMessage; - -/* TriggeringMessage */ -typedef long TriggeringMessage_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_TriggeringMessage_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_TriggeringMessage; -extern const asn_INTEGER_specifics_t asn_SPC_TriggeringMessage_specs_1; -asn_struct_free_f TriggeringMessage_free; -asn_struct_print_f TriggeringMessage_print; -asn_constr_check_f TriggeringMessage_constraint; -ber_type_decoder_f TriggeringMessage_decode_ber; -der_type_encoder_f TriggeringMessage_encode_der; -xer_type_decoder_f TriggeringMessage_decode_xer; -xer_type_encoder_f TriggeringMessage_encode_xer; -per_type_decoder_f TriggeringMessage_decode_uper; -per_type_encoder_f TriggeringMessage_encode_uper; -per_type_decoder_f TriggeringMessage_decode_aper; -per_type_encoder_f TriggeringMessage_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _TriggeringMessage_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/TypeOfError.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/TypeOfError.c deleted file mode 100644 index 76beba5..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/TypeOfError.c +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "TypeOfError.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_TypeOfError_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_TypeOfError_value2enum_1[] = { - { 0, 14, "not-understood" }, - { 1, 7, "missing" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_TypeOfError_enum2value_1[] = { - 1, /* missing(1) */ - 0 /* not-understood(0) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_TypeOfError_specs_1 = { - asn_MAP_TypeOfError_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_TypeOfError_enum2value_1, /* N => "tag"; sorted by N */ - 2, /* Number of elements in the maps */ - 3, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_TypeOfError_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_TypeOfError = { - "TypeOfError", - "TypeOfError", - &asn_OP_NativeEnumerated, - asn_DEF_TypeOfError_tags_1, - sizeof(asn_DEF_TypeOfError_tags_1) - /sizeof(asn_DEF_TypeOfError_tags_1[0]), /* 1 */ - asn_DEF_TypeOfError_tags_1, /* Same as above */ - sizeof(asn_DEF_TypeOfError_tags_1) - /sizeof(asn_DEF_TypeOfError_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_TypeOfError_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_TypeOfError_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/TypeOfError.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/TypeOfError.h deleted file mode 100644 index 9451b1e..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/TypeOfError.h +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _TypeOfError_H_ -#define _TypeOfError_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum TypeOfError { - TypeOfError_not_understood = 0, - TypeOfError_missing = 1 - /* - * Enumeration is extensible - */ -} e_TypeOfError; - -/* TypeOfError */ -typedef long TypeOfError_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_TypeOfError_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_TypeOfError; -extern const asn_INTEGER_specifics_t asn_SPC_TypeOfError_specs_1; -asn_struct_free_f TypeOfError_free; -asn_struct_print_f TypeOfError_print; -asn_constr_check_f TypeOfError_constraint; -ber_type_decoder_f TypeOfError_decode_ber; -der_type_encoder_f TypeOfError_encode_der; -xer_type_decoder_f TypeOfError_decode_xer; -xer_type_encoder_f TypeOfError_encode_xer; -per_type_decoder_f TypeOfError_decode_uper; -per_type_encoder_f TypeOfError_encode_uper; -per_type_decoder_f TypeOfError_decode_aper; -per_type_encoder_f TypeOfError_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _TypeOfError_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/UE-Report-Type.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/UE-Report-Type.c deleted file mode 100644 index 1966c27..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/UE-Report-Type.c +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#include "UE-Report-Type.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -static asn_oer_constraints_t asn_OER_type_UE_Report_Type_constr_1 CC_NOTUSED = { - { 0, 0 }, - -1}; -asn_per_constraints_t asn_PER_type_UE_Report_Type_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 2 } /* (0..2,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_UE_Report_Type_value2enum_1[] = { - { 0, 17, "oDU-Report-Per-UE" }, - { 1, 20, "oCU-CP-Report-Per-UE" }, - { 2, 20, "oCU-UP-Report-Per-UE" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_UE_Report_Type_enum2value_1[] = { - 1, /* oCU-CP-Report-Per-UE(1) */ - 2, /* oCU-UP-Report-Per-UE(2) */ - 0 /* oDU-Report-Per-UE(0) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_UE_Report_Type_specs_1 = { - asn_MAP_UE_Report_Type_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_UE_Report_Type_enum2value_1, /* N => "tag"; sorted by N */ - 3, /* Number of elements in the maps */ - 4, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_UE_Report_Type_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_UE_Report_Type = { - "UE-Report-Type", - "UE-Report-Type", - &asn_OP_NativeEnumerated, - asn_DEF_UE_Report_Type_tags_1, - sizeof(asn_DEF_UE_Report_Type_tags_1) - /sizeof(asn_DEF_UE_Report_Type_tags_1[0]), /* 1 */ - asn_DEF_UE_Report_Type_tags_1, /* Same as above */ - sizeof(asn_DEF_UE_Report_Type_tags_1) - /sizeof(asn_DEF_UE_Report_Type_tags_1[0]), /* 1 */ - { &asn_OER_type_UE_Report_Type_constr_1, &asn_PER_type_UE_Report_Type_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_UE_Report_Type_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/UE-Report-Type.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/UE-Report-Type.h deleted file mode 100644 index 02e7cb5..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/UE-Report-Type.h +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2SM-KPM-IEs" - * found in "/home/rshacham/e2sm-kpm-v01.02.asn" - * `asn1c -fcompound-names` - */ - -#ifndef _UE_Report_Type_H_ -#define _UE_Report_Type_H_ - - -#include - -/* Including external dependencies */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum UE_Report_Type { - UE_Report_Type_oDU_Report_Per_UE = 0, - UE_Report_Type_oCU_CP_Report_Per_UE = 1, - UE_Report_Type_oCU_UP_Report_Per_UE = 2 - /* - * Enumeration is extensible - */ -} e_UE_Report_Type; - -/* UE-Report-Type */ -typedef long UE_Report_Type_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_UE_Report_Type_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_UE_Report_Type; -extern const asn_INTEGER_specifics_t asn_SPC_UE_Report_Type_specs_1; -asn_struct_free_f UE_Report_Type_free; -asn_struct_print_f UE_Report_Type_print; -asn_constr_check_f UE_Report_Type_constraint; -ber_type_decoder_f UE_Report_Type_decode_ber; -der_type_encoder_f UE_Report_Type_encode_der; -xer_type_decoder_f UE_Report_Type_decode_xer; -xer_type_encoder_f UE_Report_Type_encode_xer; -oer_type_decoder_f UE_Report_Type_decode_oer; -oer_type_encoder_f UE_Report_Type_encode_oer; -per_type_decoder_f UE_Report_Type_decode_uper; -per_type_encoder_f UE_Report_Type_encode_uper; -per_type_decoder_f UE_Report_Type_decode_aper; -per_type_encoder_f UE_Report_Type_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _UE_Report_Type_H_ */ -#include diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/UnsuccessfulOutcome.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/UnsuccessfulOutcome.c deleted file mode 100644 index 327134e..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/UnsuccessfulOutcome.c +++ /dev/null @@ -1,349 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Descriptions" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#include "UnsuccessfulOutcome.h" - -static const long asn_VAL_1_id_RICsubscription = 8; -static const long asn_VAL_1_reject = 0; -static const long asn_VAL_2_id_RICsubscriptionDelete = 9; -static const long asn_VAL_2_reject = 0; -static const long asn_VAL_3_id_RICserviceUpdate = 7; -static const long asn_VAL_3_reject = 0; -static const long asn_VAL_4_id_RICcontrol = 4; -static const long asn_VAL_4_reject = 0; -static const long asn_VAL_5_id_E2setup = 1; -static const long asn_VAL_5_reject = 0; -static const long asn_VAL_6_id_Reset = 3; -static const long asn_VAL_6_reject = 0; -static const long asn_VAL_7_id_RICindication = 5; -static const long asn_VAL_7_ignore = 1; -static const long asn_VAL_8_id_RICserviceQuery = 6; -static const long asn_VAL_8_ignore = 1; -static const long asn_VAL_9_id_ErrorIndication = 2; -static const long asn_VAL_9_ignore = 1; -static const asn_ioc_cell_t asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1_rows[] = { - { "&InitiatingMessage", aioc__type, &asn_DEF_RICsubscriptionRequest }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionResponse }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_1_id_RICsubscription }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_1_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_RICsubscriptionDeleteRequest }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionDeleteResponse }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionDeleteFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_2_id_RICsubscriptionDelete }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_2_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_RICserviceUpdate }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_RICserviceUpdateAcknowledge }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RICserviceUpdateFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_3_id_RICserviceUpdate }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_3_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_RICcontrolRequest }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_RICcontrolAcknowledge }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RICcontrolFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_4_id_RICcontrol }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_4_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_E2setupRequest }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_E2setupResponse }, - { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_E2setupFailure }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_5_id_E2setup }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_5_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_ResetRequest }, - { "&SuccessfulOutcome", aioc__type, &asn_DEF_ResetResponse }, - { "&UnsuccessfulOutcome", }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_6_id_Reset }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_6_reject }, - { "&InitiatingMessage", aioc__type, &asn_DEF_RICindication }, - { "&SuccessfulOutcome", }, - { "&UnsuccessfulOutcome", }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_7_id_RICindication }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_7_ignore }, - { "&InitiatingMessage", aioc__type, &asn_DEF_RICserviceQuery }, - { "&SuccessfulOutcome", }, - { "&UnsuccessfulOutcome", }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_8_id_RICserviceQuery }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_8_ignore }, - { "&InitiatingMessage", aioc__type, &asn_DEF_ErrorIndication }, - { "&SuccessfulOutcome", }, - { "&UnsuccessfulOutcome", }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_9_id_ErrorIndication }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_9_ignore } -}; -static const asn_ioc_set_t asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1[] = { - { 9, 5, asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1_rows } -}; -static int -memb_procedureCode_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - long value; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - value = *(const long *)sptr; - - if((value >= 0 && value <= 255)) { - /* Constraint check succeeded */ - return 0; - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: constraint failed (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -static asn_type_selector_result_t -select_UnsuccessfulOutcome_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1; - size_t constraining_column = 3; /* &procedureCode */ - size_t for_column = 4; /* &criticality */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct UnsuccessfulOutcome, procedureCode)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_criticality_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_type_selector_result_t -select_UnsuccessfulOutcome_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { - asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1; - size_t constraining_column = 3; /* &procedureCode */ - size_t for_column = 2; /* &UnsuccessfulOutcome */ - size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct UnsuccessfulOutcome, procedureCode)); - - for(row=0; row < itable->rows_count; row++) { - const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; - const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; - - if(type_cell->cell_kind == aioc__undefined) - continue; - - presence_index++; - if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { - result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; - break; - } - } - - return result; -} - -static int -memb_value_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - - if(1 /* No applicable constraints whatsoever */) { - /* Nothing is here. See below */ - } - - return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); -} - -static asn_per_constraints_t asn_PER_memb_procedureCode_constr_2 CC_NOTUSED = { - { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_3 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_4 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_TYPE_member_t asn_MBR_value_4[] = { - { ATF_NOFLAGS, 0, offsetof(struct UnsuccessfulOutcome__value, choice.RICsubscriptionFailure), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICsubscriptionFailure, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICsubscriptionFailure" - }, - { ATF_NOFLAGS, 0, offsetof(struct UnsuccessfulOutcome__value, choice.RICsubscriptionDeleteFailure), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICsubscriptionDeleteFailure, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICsubscriptionDeleteFailure" - }, - { ATF_NOFLAGS, 0, offsetof(struct UnsuccessfulOutcome__value, choice.RICserviceUpdateFailure), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICserviceUpdateFailure, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICserviceUpdateFailure" - }, - { ATF_NOFLAGS, 0, offsetof(struct UnsuccessfulOutcome__value, choice.RICcontrolFailure), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICcontrolFailure, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICcontrolFailure" - }, - { ATF_NOFLAGS, 0, offsetof(struct UnsuccessfulOutcome__value, choice.E2setupFailure), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_E2setupFailure, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "E2setupFailure" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_4[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 4 }, /* RICsubscriptionFailure */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 3 }, /* RICsubscriptionDeleteFailure */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -2, 2 }, /* RICserviceUpdateFailure */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -3, 1 }, /* RICcontrolFailure */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, -4, 0 } /* E2setupFailure */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_4 = { - sizeof(struct UnsuccessfulOutcome__value), - offsetof(struct UnsuccessfulOutcome__value, _asn_ctx), - offsetof(struct UnsuccessfulOutcome__value, present), - sizeof(((struct UnsuccessfulOutcome__value *)0)->present), - asn_MAP_value_tag2el_4, - 5, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_4 = { - "value", - "value", - &asn_OP_OPEN_TYPE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_4, - 5, /* Elements count */ - &asn_SPC_value_specs_4 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_UnsuccessfulOutcome_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct UnsuccessfulOutcome, procedureCode), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProcedureCode, - 0, - { 0, &asn_PER_memb_procedureCode_constr_2, memb_procedureCode_constraint_1 }, - 0, 0, /* No default value */ - "procedureCode" - }, - { ATF_NOFLAGS, 0, offsetof(struct UnsuccessfulOutcome, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Criticality, - select_UnsuccessfulOutcome_criticality_type, - { 0, &asn_PER_memb_criticality_constr_3, memb_criticality_constraint_1 }, - 0, 0, /* No default value */ - "criticality" - }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct UnsuccessfulOutcome, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_4, - select_UnsuccessfulOutcome_value_type, - { 0, &asn_PER_memb_value_constr_4, memb_value_constraint_1 }, - 0, 0, /* No default value */ - "value" - }, -}; -static const ber_tlv_tag_t asn_DEF_UnsuccessfulOutcome_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_UnsuccessfulOutcome_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* procedureCode */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ -}; -asn_SEQUENCE_specifics_t asn_SPC_UnsuccessfulOutcome_specs_1 = { - sizeof(struct UnsuccessfulOutcome), - offsetof(struct UnsuccessfulOutcome, _asn_ctx), - asn_MAP_UnsuccessfulOutcome_tag2el_1, - 3, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_UnsuccessfulOutcome = { - "UnsuccessfulOutcome", - "UnsuccessfulOutcome", - &asn_OP_SEQUENCE, - asn_DEF_UnsuccessfulOutcome_tags_1, - sizeof(asn_DEF_UnsuccessfulOutcome_tags_1) - /sizeof(asn_DEF_UnsuccessfulOutcome_tags_1[0]), /* 1 */ - asn_DEF_UnsuccessfulOutcome_tags_1, /* Same as above */ - sizeof(asn_DEF_UnsuccessfulOutcome_tags_1) - /sizeof(asn_DEF_UnsuccessfulOutcome_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_UnsuccessfulOutcome_1, - 3, /* Elements count */ - &asn_SPC_UnsuccessfulOutcome_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/UnsuccessfulOutcome.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/UnsuccessfulOutcome.h deleted file mode 100644 index 7762209..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/UnsuccessfulOutcome.h +++ /dev/null @@ -1,89 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-PDU-Descriptions" - * found in "/home/rshacham/e2ap-v01.00.00.asn" - * `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D .` - */ - -#ifndef _UnsuccessfulOutcome_H_ -#define _UnsuccessfulOutcome_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "ProcedureCode.h" -#include "Criticality.h" -#include "ANY.h" -#include "asn_ioc.h" -#include "RICsubscriptionRequest.h" -#include "RICsubscriptionResponse.h" -#include "RICsubscriptionFailure.h" -#include "RICsubscriptionDeleteRequest.h" -#include "RICsubscriptionDeleteResponse.h" -#include "RICsubscriptionDeleteFailure.h" -#include "RICserviceUpdate.h" -#include "RICserviceUpdateAcknowledge.h" -#include "RICserviceUpdateFailure.h" -#include "RICcontrolRequest.h" -#include "RICcontrolAcknowledge.h" -#include "RICcontrolFailure.h" -#include "E2setupRequest.h" -#include "E2setupResponse.h" -#include "E2setupFailure.h" -#include "ResetRequest.h" -#include "ResetResponse.h" -#include "RICindication.h" -#include "RICserviceQuery.h" -#include "ErrorIndication.h" -#include "OPEN_TYPE.h" -#include "constr_CHOICE.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum UnsuccessfulOutcome__value_PR { - UnsuccessfulOutcome__value_PR_NOTHING, /* No components present */ - UnsuccessfulOutcome__value_PR_RICsubscriptionFailure, - UnsuccessfulOutcome__value_PR_RICsubscriptionDeleteFailure, - UnsuccessfulOutcome__value_PR_RICserviceUpdateFailure, - UnsuccessfulOutcome__value_PR_RICcontrolFailure, - UnsuccessfulOutcome__value_PR_E2setupFailure -} UnsuccessfulOutcome__value_PR; - -/* UnsuccessfulOutcome */ -typedef struct UnsuccessfulOutcome { - ProcedureCode_t procedureCode; - Criticality_t criticality; - struct UnsuccessfulOutcome__value { - UnsuccessfulOutcome__value_PR present; - union UnsuccessfulOutcome__value_u { - RICsubscriptionFailure_t RICsubscriptionFailure; - RICsubscriptionDeleteFailure_t RICsubscriptionDeleteFailure; - RICserviceUpdateFailure_t RICserviceUpdateFailure; - RICcontrolFailure_t RICcontrolFailure; - E2setupFailure_t E2setupFailure; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } value; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} UnsuccessfulOutcome_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_UnsuccessfulOutcome; -extern asn_SEQUENCE_specifics_t asn_SPC_UnsuccessfulOutcome_specs_1; -extern asn_TYPE_member_t asn_MBR_UnsuccessfulOutcome_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _UnsuccessfulOutcome_H_ */ -#include "asn_internal.h" diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/asn_SEQUENCE_OF.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/asn_SEQUENCE_OF.c deleted file mode 100644 index ec952fc..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/asn_SEQUENCE_OF.c +++ /dev/null @@ -1,41 +0,0 @@ -/*- - * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include - -typedef A_SEQUENCE_OF(void) asn_sequence; - -void -asn_sequence_del(void *asn_sequence_of_x, int number, int _do_free) { - asn_sequence *as = (asn_sequence *)asn_sequence_of_x; - - if(as) { - void *ptr; - int n; - - if(number < 0 || number >= as->count) - return; /* Nothing to delete */ - - if(_do_free && as->free) { - ptr = as->array[number]; - } else { - ptr = 0; - } - - /* - * Shift all elements to the left to hide the gap. - */ - --as->count; - for(n = number; n < as->count; n++) - as->array[n] = as->array[n+1]; - - /* - * Invoke the third-party function only when the state - * of the parent structure is consistent. - */ - if(ptr) as->free(ptr); - } -} - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/asn_SEQUENCE_OF.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/asn_SEQUENCE_OF.h deleted file mode 100644 index e35bc44..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/asn_SEQUENCE_OF.h +++ /dev/null @@ -1,52 +0,0 @@ -/*- - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef ASN_SEQUENCE_OF_H -#define ASN_SEQUENCE_OF_H - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * SEQUENCE OF is the same as SET OF with a tiny difference: - * the delete operation preserves the initial order of elements - * and thus MAY operate in non-constant time. - */ -#define A_SEQUENCE_OF(type) A_SET_OF(type) - -#define ASN_SEQUENCE_ADD(headptr, ptr) \ - asn_sequence_add((headptr), (ptr)) - -/*********************************************** - * Implementation of the SEQUENCE OF structure. - */ - -#define asn_sequence_add asn_set_add -#define asn_sequence_empty asn_set_empty - -/* - * Delete the element from the set by its number (base 0). - * This is NOT a constant-time operation. - * The order of elements is preserved. - * If _do_free is given AND the (*free) is initialized, the element - * will be freed using the custom (*free) function as well. - */ -void asn_sequence_del(void *asn_sequence_of_x, int number, int _do_free); - -/* - * Cope with different conversions requirements to/from void in C and C++. - * This is mostly useful for support library. - */ -typedef A_SEQUENCE_OF(void) asn_anonymous_sequence_; -#define _A_SEQUENCE_FROM_VOID(ptr) ((asn_anonymous_sequence_ *)(ptr)) -#define _A_CSEQUENCE_FROM_VOID(ptr) ((const asn_anonymous_sequence_ *)(ptr)) - -#ifdef __cplusplus -} -#endif - -#endif /* ASN_SEQUENCE_OF_H */ diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/asn_SET_OF.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/asn_SET_OF.c deleted file mode 100644 index 944f2cb..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/asn_SET_OF.c +++ /dev/null @@ -1,88 +0,0 @@ -/*- - * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include - -/* - * Add another element into the set. - */ -int -asn_set_add(void *asn_set_of_x, void *ptr) { - asn_anonymous_set_ *as = _A_SET_FROM_VOID(asn_set_of_x); - - if(as == 0 || ptr == 0) { - errno = EINVAL; /* Invalid arguments */ - return -1; - } - - /* - * Make sure there's enough space to insert an element. - */ - if(as->count == as->size) { - int _newsize = as->size ? (as->size << 1) : 4; - void *_new_arr; - _new_arr = REALLOC(as->array, _newsize * sizeof(as->array[0])); - if(_new_arr) { - as->array = (void **)_new_arr; - as->size = _newsize; - } else { - /* ENOMEM */ - return -1; - } - } - - as->array[as->count++] = ptr; - - return 0; -} - -void -asn_set_del(void *asn_set_of_x, int number, int _do_free) { - asn_anonymous_set_ *as = _A_SET_FROM_VOID(asn_set_of_x); - - if(as) { - void *ptr; - if(number < 0 || number >= as->count) - return; - - if(_do_free && as->free) { - ptr = as->array[number]; - } else { - ptr = 0; - } - - as->array[number] = as->array[--as->count]; - - /* - * Invoke the third-party function only when the state - * of the parent structure is consistent. - */ - if(ptr) as->free(ptr); - } -} - -/* - * Free the contents of the set, do not free the set itself. - */ -void -asn_set_empty(void *asn_set_of_x) { - asn_anonymous_set_ *as = _A_SET_FROM_VOID(asn_set_of_x); - - if(as) { - if(as->array) { - if(as->free) { - while(as->count--) - as->free(as->array[as->count]); - } - FREEMEM(as->array); - as->array = 0; - } - as->count = 0; - as->size = 0; - } - -} - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/asn_SET_OF.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/asn_SET_OF.h deleted file mode 100644 index 882e1a4..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/asn_SET_OF.h +++ /dev/null @@ -1,72 +0,0 @@ -/*- - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef ASN_SET_OF_H -#define ASN_SET_OF_H - -#ifdef __cplusplus -#define A_SET_OF(type) \ - struct { \ - type **array; \ - int count; /* Meaningful size */ \ - int size; /* Allocated size */ \ - void (*free)(decltype(*array)); \ - } -#else /* C */ -#define A_SET_OF(type) \ - struct { \ - type **array; \ - int count; /* Meaningful size */ \ - int size; /* Allocated size */ \ - void (*free)(type *); \ - } -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -#define ASN_SET_ADD(headptr, ptr) \ - asn_set_add((headptr), (ptr)) - -/******************************************* - * Implementation of the SET OF structure. - */ - -/* - * Add another structure into the set by its pointer. - * RETURN VALUES: - * 0 for success and -1/errno for failure. - */ -int asn_set_add(void *asn_set_of_x, void *ptr); - -/* - * Delete the element from the set by its number (base 0). - * This is a constant-time operation. The order of elements before the - * deleted ones is guaranteed, the order of elements after the deleted - * one is NOT guaranteed. - * If _do_free is given AND the (*free) is initialized, the element - * will be freed using the custom (*free) function as well. - */ -void asn_set_del(void *asn_set_of_x, int number, int _do_free); - -/* - * Empty the contents of the set. Will free the elements, if (*free) is given. - * Will NOT free the set itself. - */ -void asn_set_empty(void *asn_set_of_x); - -/* - * Cope with different conversions requirements to/from void in C and C++. - * This is mostly useful for support library. - */ -typedef A_SET_OF(void) asn_anonymous_set_; -#define _A_SET_FROM_VOID(ptr) ((asn_anonymous_set_ *)(ptr)) -#define _A_CSET_FROM_VOID(ptr) ((const asn_anonymous_set_ *)(ptr)) - -#ifdef __cplusplus -} -#endif - -#endif /* ASN_SET_OF_H */ diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/asn_application.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/asn_application.c deleted file mode 100644 index 2bff460..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/asn_application.c +++ /dev/null @@ -1,481 +0,0 @@ -/* - * Copyright (c) 2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include - -static asn_enc_rval_t asn_encode_internal(const asn_codec_ctx_t *opt_codec_ctx, - enum asn_transfer_syntax syntax, - const asn_TYPE_descriptor_t *td, - const void *sptr, - asn_app_consume_bytes_f *callback, - void *callback_key); - - -struct callback_count_bytes_key { - asn_app_consume_bytes_f *callback; - void *callback_key; - size_t computed_size; -}; - -/* - * Encoder which just counts bytes that come through it. - */ -static int -callback_count_bytes_cb(const void *data, size_t size, void *keyp) { - struct callback_count_bytes_key *key = keyp; - int ret; - - ret = key->callback(data, size, key->callback_key); - if(ret >= 0) { - key->computed_size += size; - } - - return ret; -} - -struct overrun_encoder_key { - void *buffer; - size_t buffer_size; - size_t computed_size; -}; - -struct dynamic_encoder_key { - void *buffer; - size_t buffer_size; - size_t computed_size; -}; - -struct callback_failure_catch_key { - asn_app_consume_bytes_f *callback; - void *callback_key; - int callback_failed; -}; - -/* - * Encoder which doesn't stop counting bytes - * even if it reaches the end of the buffer. - */ -static int -overrun_encoder_cb(const void *data, size_t size, void *keyp) { - struct overrun_encoder_key *key = keyp; - - if(key->computed_size + size > key->buffer_size) { - /* - * Avoid accident on the next call: - * stop adding bytes to the buffer. - */ - key->buffer_size = 0; - } else { - memcpy((char *)key->buffer + key->computed_size, data, size); - } - key->computed_size += size; - - return 0; -} - -/* - * Encoder which dynamically allocates output, and continues - * to count even if allocation failed. - */ -static int -dynamic_encoder_cb(const void *data, size_t size, void *keyp) { - struct dynamic_encoder_key *key = keyp; - - if(key->buffer) { - if(key->computed_size + size >= key->buffer_size) { - void *p; - size_t new_size = key->buffer_size; - - do { - new_size *= 2; - } while(new_size <= key->computed_size + size); - - p = REALLOC(key->buffer, new_size); - if(p) { - key->buffer = p; - key->buffer_size = new_size; - } else { - FREEMEM(key->buffer); - key->buffer = 0; - key->buffer_size = 0; - key->computed_size += size; - return 0; - } - } - memcpy((char *)key->buffer + key->computed_size, data, size); - } - - key->computed_size += size; - - return 0; -} - -/* - * Encoder which help convert the application level encoder failure into EIO. - */ -static int -callback_failure_catch_cb(const void *data, size_t size, void *keyp) { - struct callback_failure_catch_key *key = keyp; - int ret; - - ret = key->callback(data, size, key->callback_key); - if(ret < 0) { - key->callback_failed = 1; - } - - return ret; -} - -asn_enc_rval_t -asn_encode(const asn_codec_ctx_t *opt_codec_ctx, - enum asn_transfer_syntax syntax, const asn_TYPE_descriptor_t *td, - const void *sptr, asn_app_consume_bytes_f *callback, void *callback_key) { - struct callback_failure_catch_key cb_key; - asn_enc_rval_t er = {0,0,0}; - - if(!callback) { - errno = EINVAL; - ASN__ENCODE_FAILED; - } - - cb_key.callback = callback; - cb_key.callback_key = callback_key; - cb_key.callback_failed = 0; - - er = asn_encode_internal(opt_codec_ctx, syntax, td, sptr, - callback_failure_catch_cb, &cb_key); - if(cb_key.callback_failed) { - assert(er.encoded == -1); - assert(errno == EBADF); - errno = EIO; - } - - return er; -} - -asn_enc_rval_t -asn_encode_to_buffer(const asn_codec_ctx_t *opt_codec_ctx, - enum asn_transfer_syntax syntax, - const asn_TYPE_descriptor_t *td, const void *sptr, - void *buffer, size_t buffer_size) { - struct overrun_encoder_key buf_key; - asn_enc_rval_t er = {0,0,0}; - - if(buffer_size > 0 && !buffer) { - errno = EINVAL; - ASN__ENCODE_FAILED; - } - - buf_key.buffer = buffer; - buf_key.buffer_size = buffer_size; - buf_key.computed_size = 0; - - er = asn_encode_internal(opt_codec_ctx, syntax, td, sptr, - overrun_encoder_cb, &buf_key); - - if(er.encoded >= 0 && (size_t)er.encoded != buf_key.computed_size) { - ASN_DEBUG("asn_encode() returned %" ASN_PRI_SSIZE - " yet produced %" ASN_PRI_SIZE " bytes", - er.encoded, buf_key.computed_size); - assert(er.encoded < 0 || (size_t)er.encoded == buf_key.computed_size); - } - - return er; -} - -asn_encode_to_new_buffer_result_t -asn_encode_to_new_buffer(const asn_codec_ctx_t *opt_codec_ctx, - enum asn_transfer_syntax syntax, - const asn_TYPE_descriptor_t *td, const void *sptr) { - struct dynamic_encoder_key buf_key; - asn_encode_to_new_buffer_result_t res; - - buf_key.buffer_size = 16; - buf_key.buffer = MALLOC(buf_key.buffer_size); - buf_key.computed_size = 0; - - res.result = asn_encode_internal(opt_codec_ctx, syntax, td, sptr, - dynamic_encoder_cb, &buf_key); - - if(res.result.encoded >= 0 - && (size_t)res.result.encoded != buf_key.computed_size) { - ASN_DEBUG("asn_encode() returned %" ASN_PRI_SSIZE - " yet produced %" ASN_PRI_SIZE " bytes", - res.result.encoded, buf_key.computed_size); - assert(res.result.encoded < 0 - || (size_t)res.result.encoded == buf_key.computed_size); - } - - res.buffer = buf_key.buffer; - - /* 0-terminate just in case. */ - if(res.buffer) { - assert(buf_key.computed_size < buf_key.buffer_size); - ((char *)res.buffer)[buf_key.computed_size] = '\0'; - } - - return res; -} - -static asn_enc_rval_t -asn_encode_internal(const asn_codec_ctx_t *opt_codec_ctx, - enum asn_transfer_syntax syntax, - const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_consume_bytes_f *callback, void *callback_key) { - asn_enc_rval_t er = {0,0,0}; - enum xer_encoder_flags_e xer_flags = XER_F_CANONICAL; - - (void)opt_codec_ctx; /* Parameters are not checked on encode yet. */ - - if(!td || !sptr) { - errno = EINVAL; - ASN__ENCODE_FAILED; - } - - switch(syntax) { - case ATS_NONSTANDARD_PLAINTEXT: - if(td->op->print_struct) { - struct callback_count_bytes_key cb_key; - cb_key.callback = callback; - cb_key.callback_key = callback_key; - cb_key.computed_size = 0; - if(td->op->print_struct(td, sptr, 1, callback_count_bytes_cb, - &cb_key) - < 0 - || callback_count_bytes_cb("\n", 1, &cb_key) < 0) { - errno = EBADF; /* Structure has incorrect form. */ - er.encoded = -1; - er.failed_type = td; - er.structure_ptr = sptr; - } else { - er.encoded = cb_key.computed_size; - er.failed_type = 0; - er.structure_ptr = 0; - } - } else { - errno = ENOENT; /* Transfer syntax is not defined for this type. */ - ASN__ENCODE_FAILED; - } - break; - - case ATS_RANDOM: - errno = ENOENT; /* Randomization doesn't make sense on output. */ - ASN__ENCODE_FAILED; - - case ATS_BER: - /* BER is a superset of DER. */ - /* Fall through. */ - case ATS_DER: - if(td->op->der_encoder) { - er = der_encode(td, sptr, callback, callback_key); - if(er.encoded == -1) { - if(er.failed_type && er.failed_type->op->der_encoder) { - errno = EBADF; /* Structure has incorrect form. */ - } else { - errno = ENOENT; /* DER is not defined for this type. */ - } - } - } else { - errno = ENOENT; /* Transfer syntax is not defined for this type. */ - ASN__ENCODE_FAILED; - } - break; - case ATS_CER: - errno = ENOENT; /* Transfer syntax is not defined for any type. */ - ASN__ENCODE_FAILED; - -#ifdef ASN_DISABLE_OER_SUPPORT - case ATS_BASIC_OER: - case ATS_CANONICAL_OER: - errno = ENOENT; /* PER is not defined. */ - ASN__ENCODE_FAILED; - break; -#else /* ASN_DISABLE_OER_SUPPORT */ - case ATS_BASIC_OER: - /* CANONICAL-OER is a superset of BASIC-OER. */ - /* Fall through. */ - case ATS_CANONICAL_OER: - if(td->op->oer_encoder) { - er = oer_encode(td, sptr, callback, callback_key); - if(er.encoded == -1) { - if(er.failed_type && er.failed_type->op->oer_encoder) { - errno = EBADF; /* Structure has incorrect form. */ - } else { - errno = ENOENT; /* OER is not defined for this type. */ - } - } - } else { - errno = ENOENT; /* Transfer syntax is not defined for this type. */ - ASN__ENCODE_FAILED; - } - break; -#endif /* ASN_DISABLE_OER_SUPPORT */ - -#ifdef ASN_DISABLE_PER_SUPPORT - case ATS_UNALIGNED_BASIC_PER: - case ATS_UNALIGNED_CANONICAL_PER: - case ATS_ALIGNED_BASIC_PER: - case ATS_ALIGNED_CANONICAL_PER: - errno = ENOENT; /* PER is not defined. */ - ASN__ENCODE_FAILED; - break; -#else /* ASN_DISABLE_PER_SUPPORT */ - case ATS_UNALIGNED_BASIC_PER: - /* CANONICAL-UPER is a superset of BASIC-UPER. */ - /* Fall through. */ - case ATS_UNALIGNED_CANONICAL_PER: - if(td->op->uper_encoder) { - er = uper_encode(td, 0, sptr, callback, callback_key); - if(er.encoded == -1) { - if(er.failed_type && er.failed_type->op->uper_encoder) { - errno = EBADF; /* Structure has incorrect form. */ - } else { - errno = ENOENT; /* UPER is not defined for this type. */ - } - } else { - ASN_DEBUG("Complete encoded in %ld bits", (long)er.encoded); - if(er.encoded == 0) { - /* Enforce "Complete Encoding" of X.691 #11.1 */ - if(callback("\0", 1, callback_key) < 0) { - errno = EBADF; - ASN__ENCODE_FAILED; - } - er.encoded = 8; /* Exactly 8 zero bits is added. */ - } - /* Convert bits into bytes */ - er.encoded = (er.encoded + 7) >> 3; - } - } else { - errno = ENOENT; /* Transfer syntax is not defined for this type. */ - ASN__ENCODE_FAILED; - } - break; - case ATS_ALIGNED_BASIC_PER: - /* CANONICAL-APER is a superset of BASIC-APER. */ - /* Fall through. */ - case ATS_ALIGNED_CANONICAL_PER: - if(td->op->aper_encoder) { - er = aper_encode(td, 0, sptr, callback, callback_key); - if(er.encoded == -1) { - if(er.failed_type && er.failed_type->op->aper_encoder) { - errno = EBADF; /* Structure has incorrect form. */ - } else { - errno = ENOENT; /* APER is not defined for this type. */ - } - } else { - ASN_DEBUG("Complete encoded in %ld bits", (long)er.encoded); - if(er.encoded == 0) { - /* Enforce "Complete Encoding" of X.691 #11.1 */ - if(callback("\0", 1, callback_key) < 0) { - errno = EBADF; - ASN__ENCODE_FAILED; - } - er.encoded = 8; /* Exactly 8 zero bits is added. */ - } - /* Convert bits into bytes */ - er.encoded = (er.encoded + 7) >> 3; - } - } else { - errno = ENOENT; /* Transfer syntax is not defined for this type. */ - ASN__ENCODE_FAILED; - } - break; -#endif /* ASN_DISABLE_PER_SUPPORT */ - - case ATS_BASIC_XER: - /* CANONICAL-XER is a superset of BASIC-XER. */ - xer_flags &= ~XER_F_CANONICAL; - xer_flags |= XER_F_BASIC; - /* Fall through. */ - case ATS_CANONICAL_XER: - if(td->op->xer_encoder) { - er = xer_encode(td, sptr, xer_flags, callback, callback_key); - if(er.encoded == -1) { - if(er.failed_type && er.failed_type->op->xer_encoder) { - errno = EBADF; /* Structure has incorrect form. */ - } else { - errno = ENOENT; /* XER is not defined for this type. */ - } - } - } else { - errno = ENOENT; /* Transfer syntax is not defined for this type. */ - ASN__ENCODE_FAILED; - } - break; - - default: - errno = ENOENT; - ASN__ENCODE_FAILED; - } - - return er; -} - -asn_dec_rval_t -asn_decode(const asn_codec_ctx_t *opt_codec_ctx, - enum asn_transfer_syntax syntax, const asn_TYPE_descriptor_t *td, - void **sptr, const void *buffer, size_t size) { - if(!td || !td->op || !sptr || (size && !buffer)) { - ASN__DECODE_FAILED; - } - - switch(syntax) { - case ATS_CER: - case ATS_NONSTANDARD_PLAINTEXT: - default: - errno = ENOENT; - ASN__DECODE_FAILED; - - case ATS_RANDOM: - if(!td->op->random_fill) { - ASN__DECODE_FAILED; - } else { - if(asn_random_fill(td, sptr, 16000) == 0) { - asn_dec_rval_t ret = {RC_OK, 0}; - return ret; - } else { - ASN__DECODE_FAILED; - } - } - break; - - case ATS_DER: - case ATS_BER: - return ber_decode(opt_codec_ctx, td, sptr, buffer, size); - - case ATS_BASIC_OER: - case ATS_CANONICAL_OER: -#ifdef ASN_DISABLE_OER_SUPPORT - errno = ENOENT; - ASN__DECODE_FAILED; -#else - return oer_decode(opt_codec_ctx, td, sptr, buffer, size); -#endif - - case ATS_UNALIGNED_BASIC_PER: - case ATS_UNALIGNED_CANONICAL_PER: -#ifdef ASN_DISABLE_PER_SUPPORT - errno = ENOENT; - ASN__DECODE_FAILED; -#else - return uper_decode_complete(opt_codec_ctx, td, sptr, buffer, size); -#endif - - case ATS_ALIGNED_BASIC_PER: - case ATS_ALIGNED_CANONICAL_PER: -#ifdef ASN_DISABLE_PER_SUPPORT - errno = ENOENT; - ASN__DECODE_FAILED; -#else - return aper_decode_complete(opt_codec_ctx, td, sptr, buffer, size); -#endif - - case ATS_BASIC_XER: - case ATS_CANONICAL_XER: - return xer_decode(opt_codec_ctx, td, sptr, buffer, size); - } -} - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/asn_application.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/asn_application.h deleted file mode 100644 index 034f646..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/asn_application.h +++ /dev/null @@ -1,171 +0,0 @@ -/*- - * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -/* - * Application-level ASN.1 callbacks. - */ -#ifndef ASN_APPLICATION_H -#define ASN_APPLICATION_H - -#include "asn_system.h" /* for platform-dependent types */ -#include "asn_codecs.h" /* for ASN.1 codecs specifics */ - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * A selection of ASN.1 Transfer Syntaxes to use with generalized - * encoders and decoders declared further in this .h file. - */ -enum asn_transfer_syntax { - /* Avoid appearance of a default transfer syntax. */ - ATS_INVALID = 0, - /* Plaintext output (not conforming to any standard), for debugging. */ - ATS_NONSTANDARD_PLAINTEXT, - /* Returns a randomly generated structure. */ - ATS_RANDOM, - /* - * X.690: - * BER: Basic Encoding Rules. - * DER: Distinguished Encoding Rules. - * CER: Canonical Encoding Rules. - * DER and CER are more strict variants of BER. - */ - ATS_BER, - ATS_DER, - ATS_CER, /* Only decoding is supported */ - /* - * X.696: - * OER: Octet Encoding Rules. - * CANONICAL-OER is a more strict variant of BASIC-OER. - */ - ATS_BASIC_OER, - ATS_CANONICAL_OER, - /* - * X.691: - * PER: Packed Encoding Rules. - * CANONICAL-PER is a more strict variant of BASIC-PER. - * NOTE: Produces or consumes a complete encoding (X.691 (08/2015) #11.1). - */ - ATS_UNALIGNED_BASIC_PER, - ATS_UNALIGNED_CANONICAL_PER, - ATS_ALIGNED_BASIC_PER, - ATS_ALIGNED_CANONICAL_PER, - /* - * X.693: - * XER: XML Encoding Rules. - * CANONICAL-XER is a more strict variant of BASIC-XER. - */ - ATS_BASIC_XER, - ATS_CANONICAL_XER -}; - -/* - * A generic encoder for any supported transfer syntax. - * RETURN VALUES: - * The (.encoded) field of the return value is REDEFINED to mean the following: - * >=0: The computed size of the encoded data. Can exceed the (buffer_size). - * -1: Error encoding the structure. See the error code in (errno): - * EINVAL: Incorrect parameters to the function, such as NULLs. - * ENOENT: Encoding transfer syntax is not defined (for this type). - * EBADF: The structure has invalid form or content constraint failed. - * The (.failed_type) and (.structure_ptr) MIGHT be set to the appropriate - * values at the place of failure, if at all possible. - * WARNING: The (.encoded) field of the return value can exceed the buffer_size. - * This is similar to snprintf(3) contract which might return values - * greater than the buffer size. - */ -asn_enc_rval_t asn_encode_to_buffer( - const asn_codec_ctx_t *opt_codec_parameters, /* See asn_codecs.h */ - enum asn_transfer_syntax, - const struct asn_TYPE_descriptor_s *type_to_encode, - const void *structure_to_encode, void *buffer, size_t buffer_size); - -/* - * A variant of asn_encode_to_buffer() with automatically allocated buffer. - * RETURN VALUES: - * On success, returns a newly allocated (.buffer) containing the whole message. - * The message size is returned in (.result.encoded). - * On failure: - * (.buffer) is NULL, - * (.result.encoded) as in asn_encode_to_buffer(), - * The errno codes as in asn_encode_to_buffer(), plus the following: - * ENOMEM: Memory allocation failed due to system or internal limits. - * The user is responsible for freeing the (.buffer). - */ -typedef struct asn_encode_to_new_buffer_result_s { - void *buffer; /* NULL if failed to encode. */ - asn_enc_rval_t result; -} asn_encode_to_new_buffer_result_t; -asn_encode_to_new_buffer_result_t asn_encode_to_new_buffer( - const asn_codec_ctx_t *opt_codec_parameters, /* See asn_codecs.h */ - enum asn_transfer_syntax, - const struct asn_TYPE_descriptor_s *type_to_encode, - const void *structure_to_encode); - - -/* - * Generic type of an application-defined callback to return various - * types of data to the application. - * EXPECTED RETURN VALUES: - * -1: Failed to consume bytes. Abort the mission. - * Non-negative return values indicate success, and ignored. - */ -typedef int(asn_app_consume_bytes_f)(const void *buffer, size_t size, - void *application_specific_key); - - -/* - * A generic encoder for any supported transfer syntax. - * Returns the comprehensive encoding result descriptor (see asn_codecs.h). - * RETURN VALUES: - * The negative (.encoded) field of the return values is accompanied with the - * following error codes (errno): - * EINVAL: Incorrect parameters to the function, such as NULLs. - * ENOENT: Encoding transfer syntax is not defined (for this type). - * EBADF: The structure has invalid form or content constraint failed. - * EIO: The (callback) has returned negative value during encoding. - */ -asn_enc_rval_t asn_encode( - const asn_codec_ctx_t *opt_codec_parameters, /* See asn_codecs.h */ - enum asn_transfer_syntax, - const struct asn_TYPE_descriptor_s *type_to_encode, - const void *structure_to_encode, - asn_app_consume_bytes_f *callback, void *callback_key); - - -/* - * A generic decoder for any supported transfer syntax. - */ -asn_dec_rval_t asn_decode( - const asn_codec_ctx_t *opt_codec_parameters, enum asn_transfer_syntax, - const struct asn_TYPE_descriptor_s *type_to_decode, - void **structure_ptr, /* Pointer to a target structure's pointer */ - const void *buffer, /* Data to be decoded */ - size_t size /* Size of that buffer */ -); - - -/* - * A callback of this type is called whenever constraint validation fails - * on some ASN.1 type. See "constraints.h" for more details on constraint - * validation. - * This callback specifies a descriptor of the ASN.1 type which failed - * the constraint check, as well as human readable message on what - * particular constraint has failed. - */ -typedef void (asn_app_constraint_failed_f)(void *application_specific_key, - const struct asn_TYPE_descriptor_s *type_descriptor_which_failed, - const void *structure_which_failed_ptr, - const char *error_message_format, ...) CC_PRINTFLIKE(4, 5); - - -#ifdef __cplusplus -} -#endif - -#include "constr_TYPE.h" /* for asn_TYPE_descriptor_t */ - -#endif /* ASN_APPLICATION_H */ diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/asn_bit_data.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/asn_bit_data.c deleted file mode 100644 index fe4b89b..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/asn_bit_data.c +++ /dev/null @@ -1,333 +0,0 @@ -/* - * Copyright (c) 2005-2017 Lev Walkin . - * All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include - -/* - * Create a contiguous non-refillable bit data structure. - * Can be freed by FREEMEM(). - */ -asn_bit_data_t * -asn_bit_data_new_contiguous(const void *data, size_t size_bits) { - size_t size_bytes = (size_bits + 7) / 8; - asn_bit_data_t *pd; - uint8_t *bytes; - - /* Get the extensions map */ - pd = CALLOC(1, sizeof(*pd) + size_bytes + 1); - if(!pd) { - return NULL; - } - bytes = (void *)(((char *)pd) + sizeof(*pd)); - memcpy(bytes, data, size_bytes); - bytes[size_bytes] = 0; - pd->buffer = bytes; - pd->nboff = 0; - pd->nbits = size_bits; - - return pd; -} - - -char * -asn_bit_data_string(asn_bit_data_t *pd) { - static char buf[2][32]; - static int n; - n = (n+1) % 2; - snprintf(buf[n], sizeof(buf[n]), - "{m=%" ASN_PRI_SIZE " span %" ASN_PRI_SIZE "[%" ASN_PRI_SIZE - "..%" ASN_PRI_SIZE "] (%" ASN_PRI_SIZE ")}", - pd->moved, ((uintptr_t)(pd->buffer) & 0xf), pd->nboff, pd->nbits, - pd->nbits - pd->nboff); - return buf[n]; -} - -void -asn_get_undo(asn_bit_data_t *pd, int nbits) { - if((ssize_t)pd->nboff < nbits) { - assert((ssize_t)pd->nboff < nbits); - } else { - pd->nboff -= nbits; - pd->moved -= nbits; - } -} - -/* - * Extract a small number of bits (<= 31) from the specified PER data pointer. - */ -int32_t -asn_get_few_bits(asn_bit_data_t *pd, int nbits) { - size_t off; /* Next after last bit offset */ - ssize_t nleft; /* Number of bits left in this stream */ - uint32_t accum; - const uint8_t *buf; - - if(nbits < 0) - return -1; - - nleft = pd->nbits - pd->nboff; - if(nbits > nleft) { - int32_t tailv, vhead; - if(!pd->refill || nbits > 31) return -1; - /* Accumulate unused bytes before refill */ - ASN_DEBUG("Obtain the rest %d bits (want %d)", - (int)nleft, (int)nbits); - tailv = asn_get_few_bits(pd, nleft); - if(tailv < 0) return -1; - /* Refill (replace pd contents with new data) */ - if(pd->refill(pd)) - return -1; - nbits -= nleft; - vhead = asn_get_few_bits(pd, nbits); - /* Combine the rest of previous pd with the head of new one */ - tailv = (tailv << nbits) | vhead; /* Could == -1 */ - return tailv; - } - - /* - * Normalize position indicator. - */ - if(pd->nboff >= 8) { - pd->buffer += (pd->nboff >> 3); - pd->nbits -= (pd->nboff & ~0x07); - pd->nboff &= 0x07; - } - pd->moved += nbits; - pd->nboff += nbits; - off = pd->nboff; - buf = pd->buffer; - - /* - * Extract specified number of bits. - */ - if(off <= 8) - accum = nbits ? (buf[0]) >> (8 - off) : 0; - else if(off <= 16) - accum = ((buf[0] << 8) + buf[1]) >> (16 - off); - else if(off <= 24) - accum = ((buf[0] << 16) + (buf[1] << 8) + buf[2]) >> (24 - off); - else if(off <= 31) - accum = (((uint32_t)buf[0] << 24) + (buf[1] << 16) - + (buf[2] << 8) + (buf[3])) >> (32 - off); - else if(nbits <= 31) { - asn_bit_data_t tpd = *pd; - /* Here are we with our 31-bits limit plus 1..7 bits offset. */ - asn_get_undo(&tpd, nbits); - /* The number of available bits in the stream allow - * for the following operations to take place without - * invoking the ->refill() function */ - accum = asn_get_few_bits(&tpd, nbits - 24) << 24; - accum |= asn_get_few_bits(&tpd, 24); - } else { - asn_get_undo(pd, nbits); - return -1; - } - - accum &= (((uint32_t)1 << nbits) - 1); - - ASN_DEBUG(" [PER got %2d<=%2d bits => span %d %+ld[%d..%d]:%02x (%d) => 0x%x]", - (int)nbits, (int)nleft, - (int)pd->moved, - (((long)pd->buffer) & 0xf), - (int)pd->nboff, (int)pd->nbits, - ((pd->buffer != NULL)?pd->buffer[0]:0), - (int)(pd->nbits - pd->nboff), - (int)accum); - - return accum; -} - -/* - * Extract a large number of bits from the specified PER data pointer. - */ -int -asn_get_many_bits(asn_bit_data_t *pd, uint8_t *dst, int alright, int nbits) { - int32_t value; - - if(alright && (nbits & 7)) { - /* Perform right alignment of a first few bits */ - value = asn_get_few_bits(pd, nbits & 0x07); - if(value < 0) return -1; - *dst++ = value; /* value is already right-aligned */ - nbits &= ~7; - } - - while(nbits) { - if(nbits >= 24) { - value = asn_get_few_bits(pd, 24); - if(value < 0) return -1; - *(dst++) = value >> 16; - *(dst++) = value >> 8; - *(dst++) = value; - nbits -= 24; - } else { - value = asn_get_few_bits(pd, nbits); - if(value < 0) return -1; - if(nbits & 7) { /* implies left alignment */ - value <<= 8 - (nbits & 7), - nbits += 8 - (nbits & 7); - if(nbits > 24) - *dst++ = value >> 24; - } - if(nbits > 16) - *dst++ = value >> 16; - if(nbits > 8) - *dst++ = value >> 8; - *dst++ = value; - break; - } - } - - return 0; -} - -/* - * Put a small number of bits (<= 31). - */ -int -asn_put_few_bits(asn_bit_outp_t *po, uint32_t bits, int obits) { - size_t off; /* Next after last bit offset */ - size_t omsk; /* Existing last byte meaningful bits mask */ - uint8_t *buf; - - if(obits <= 0 || obits >= 32) return obits ? -1 : 0; - - ASN_DEBUG("[PER put %d bits %x to %p+%d bits]", - obits, (int)bits, (void *)po->buffer, (int)po->nboff); - - /* - * Normalize position indicator. - */ - if(po->nboff >= 8) { - po->buffer += (po->nboff >> 3); - po->nbits -= (po->nboff & ~0x07); - po->nboff &= 0x07; - } - - /* - * Flush whole-bytes output, if necessary. - */ - if(po->nboff + obits > po->nbits) { - size_t complete_bytes; - if(!po->buffer) po->buffer = po->tmpspace; - complete_bytes = (po->buffer - po->tmpspace); - ASN_DEBUG("[PER output %ld complete + %ld]", - (long)complete_bytes, (long)po->flushed_bytes); - if(po->output(po->tmpspace, complete_bytes, po->op_key) < 0) - return -1; - if(po->nboff) - po->tmpspace[0] = po->buffer[0]; - po->buffer = po->tmpspace; - po->nbits = 8 * sizeof(po->tmpspace); - po->flushed_bytes += complete_bytes; - } - - /* - * Now, due to sizeof(tmpspace), we are guaranteed large enough space. - */ - buf = po->buffer; - omsk = ~((1 << (8 - po->nboff)) - 1); - off = (po->nboff + obits); - - /* Clear data of debris before meaningful bits */ - bits &= (((uint32_t)1 << obits) - 1); - - ASN_DEBUG("[PER out %d %u/%x (t=%d,o=%d) %x&%x=%x]", obits, - (int)bits, (int)bits, - (int)po->nboff, (int)off, - buf[0], (int)(omsk&0xff), - (int)(buf[0] & omsk)); - - if(off <= 8) /* Completely within 1 byte */ - po->nboff = off, - bits <<= (8 - off), - buf[0] = (buf[0] & omsk) | bits; - else if(off <= 16) - po->nboff = off, - bits <<= (16 - off), - buf[0] = (buf[0] & omsk) | (bits >> 8), - buf[1] = bits; - else if(off <= 24) - po->nboff = off, - bits <<= (24 - off), - buf[0] = (buf[0] & omsk) | (bits >> 16), - buf[1] = bits >> 8, - buf[2] = bits; - else if(off <= 31) - po->nboff = off, - bits <<= (32 - off), - buf[0] = (buf[0] & omsk) | (bits >> 24), - buf[1] = bits >> 16, - buf[2] = bits >> 8, - buf[3] = bits; - else { - if(asn_put_few_bits(po, bits >> (obits - 24), 24)) return -1; - if(asn_put_few_bits(po, bits, obits - 24)) return -1; - } - - ASN_DEBUG("[PER out %u/%x => %02x buf+%ld]", - (int)bits, (int)bits, buf[0], - (long)(po->buffer - po->tmpspace)); - - return 0; -} - - -/* - * Output a large number of bits. - */ -int -asn_put_many_bits(asn_bit_outp_t *po, const uint8_t *src, int nbits) { - - while(nbits) { - uint32_t value; - - if(nbits >= 24) { - value = (src[0] << 16) | (src[1] << 8) | src[2]; - src += 3; - nbits -= 24; - if(asn_put_few_bits(po, value, 24)) - return -1; - } else { - value = src[0]; - if(nbits > 8) - value = (value << 8) | src[1]; - if(nbits > 16) - value = (value << 8) | src[2]; - if(nbits & 0x07) - value >>= (8 - (nbits & 0x07)); - if(asn_put_few_bits(po, value, nbits)) - return -1; - break; - } - } - - return 0; -} - - -int -asn_put_aligned_flush(asn_bit_outp_t *po) { - uint32_t unused_bits = (0x7 & (8 - (po->nboff & 0x07))); - size_t complete_bytes = - (po->buffer ? po->buffer - po->tmpspace : 0) + ((po->nboff + 7) >> 3); - - if(unused_bits) { - po->buffer[po->nboff >> 3] &= ~0u << unused_bits; - } - - if(po->output(po->tmpspace, complete_bytes, po->op_key) < 0) { - return -1; - } else { - po->buffer = po->tmpspace; - po->nboff = 0; - po->nbits = 8 * sizeof(po->tmpspace); - po->flushed_bytes += complete_bytes; - return 0; - } -} - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/asn_bit_data.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/asn_bit_data.h deleted file mode 100644 index 59de7af..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/asn_bit_data.h +++ /dev/null @@ -1,83 +0,0 @@ -/* - * Copyright (c) 2005-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef ASN_BIT_DATA -#define ASN_BIT_DATA - -#include /* Platform-specific types */ - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * This structure describes a position inside an incoming PER bit stream. - */ -typedef struct asn_bit_data_s { - const uint8_t *buffer; /* Pointer to the octet stream */ - size_t nboff; /* Bit offset to the meaningful bit */ - size_t nbits; /* Number of bits in the stream */ - size_t moved; /* Number of bits moved through this bit stream */ - int (*refill)(struct asn_bit_data_s *); - void *refill_key; -} asn_bit_data_t; - -/* - * Create a contiguous non-refillable bit data structure. - * Can be freed by FREEMEM(). - */ -asn_bit_data_t *asn_bit_data_new_contiguous(const void *data, size_t size_bits); - -/* - * Extract a small number of bits (<= 31) from the specified PER data pointer. - * This function returns -1 if the specified number of bits could not be - * extracted due to EOD or other conditions. - */ -int32_t asn_get_few_bits(asn_bit_data_t *, int get_nbits); - -/* Undo the immediately preceeding "get_few_bits" operation */ -void asn_get_undo(asn_bit_data_t *, int get_nbits); - -/* - * Extract a large number of bits from the specified PER data pointer. - * This function returns -1 if the specified number of bits could not be - * extracted due to EOD or other conditions. - */ -int asn_get_many_bits(asn_bit_data_t *, uint8_t *dst, int right_align, - int get_nbits); - -/* Non-thread-safe debugging function, don't use it */ -char *asn_bit_data_string(asn_bit_data_t *); - -/* - * This structure supports forming bit output. - */ -typedef struct asn_bit_outp_s { - uint8_t *buffer; /* Pointer into the (tmpspace) */ - size_t nboff; /* Bit offset to the meaningful bit */ - size_t nbits; /* Number of bits left in (tmpspace) */ - uint8_t tmpspace[32]; /* Preliminary storage to hold data */ - int (*output)(const void *data, size_t size, void *op_key); - void *op_key; /* Key for (output) data callback */ - size_t flushed_bytes; /* Bytes already flushed through (output) */ -} asn_bit_outp_t; - -/* Output a small number of bits (<= 31) */ -int asn_put_few_bits(asn_bit_outp_t *, uint32_t bits, int obits); - -/* Output a large number of bits */ -int asn_put_many_bits(asn_bit_outp_t *, const uint8_t *src, int put_nbits); - -/* - * Flush whole bytes (0 or more) through (outper) member. - * The least significant bits which are not used are guaranteed to be set to 0. - * Returns -1 if callback returns -1. Otherwise, 0. - */ -int asn_put_aligned_flush(asn_bit_outp_t *); - -#ifdef __cplusplus -} -#endif - -#endif /* ASN_BIT_DATA */ diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/asn_codecs.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/asn_codecs.h deleted file mode 100644 index e75c270..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/asn_codecs.h +++ /dev/null @@ -1,108 +0,0 @@ -/* - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef ASN_CODECS_H -#define ASN_CODECS_H - -#ifdef __cplusplus -extern "C" { -#endif - -struct asn_TYPE_descriptor_s; /* Forward declaration */ - -/* - * This structure defines a set of parameters that may be passed - * to every ASN.1 encoder or decoder function. - * WARNING: if max_stack_size member is set, and you are calling the - * function pointers of the asn_TYPE_descriptor_t directly, - * this structure must be ALLOCATED ON THE STACK! - * If you can't always satisfy this requirement, use ber_decode(), - * xer_decode() and uper_decode() functions instead. - */ -typedef struct asn_codec_ctx_s { - /* - * Limit the decoder routines to use no (much) more stack than a given - * number of bytes. Most of decoders are stack-based, and this - * would protect against stack overflows if the number of nested - * encodings is high. - * The OCTET STRING, BIT STRING and ANY BER decoders are heap-based, - * and are safe from this kind of overflow. - * A value from getrlimit(RLIMIT_STACK) may be used to initialize - * this variable. Be careful in multithreaded environments, as the - * stack size is rather limited. - */ - size_t max_stack_size; /* 0 disables stack bounds checking */ -} asn_codec_ctx_t; - -/* - * Type of the return value of the encoding functions (der_encode, xer_encode). - */ -typedef struct asn_enc_rval_s { - /* - * Number of bytes encoded. - * -1 indicates failure to encode the structure. - * In this case, the members below this one are meaningful. - */ - ssize_t encoded; - - /* - * Members meaningful when (encoded == -1), for post mortem analysis. - */ - - /* Type which cannot be encoded */ - const struct asn_TYPE_descriptor_s *failed_type; - - /* Pointer to the structure of that type */ - const void *structure_ptr; -} asn_enc_rval_t; -#define ASN__ENCODE_FAILED do { \ - asn_enc_rval_t tmp_error; \ - tmp_error.encoded = -1; \ - tmp_error.failed_type = td; \ - tmp_error.structure_ptr = sptr; \ - ASN_DEBUG("Failed to encode element %s", td ? td->name : ""); \ - return tmp_error; \ -} while(0) -#define ASN__ENCODED_OK(rval) do { \ - rval.structure_ptr = 0; \ - rval.failed_type = 0; \ - return rval; \ -} while(0) - -/* - * Type of the return value of the decoding functions (ber_decode, xer_decode) - * - * Please note that the number of consumed bytes is ALWAYS meaningful, - * even if code==RC_FAIL. This is to indicate the number of successfully - * decoded bytes, hence providing a possibility to fail with more diagnostics - * (i.e., print the offending remainder of the buffer). - */ -enum asn_dec_rval_code_e { - RC_OK, /* Decoded successfully */ - RC_WMORE, /* More data expected, call again */ - RC_FAIL /* Failure to decode data */ -}; -typedef struct asn_dec_rval_s { - enum asn_dec_rval_code_e code; /* Result code */ - size_t consumed; /* Number of bytes consumed */ -} asn_dec_rval_t; -#define ASN__DECODE_FAILED do { \ - asn_dec_rval_t tmp_error; \ - tmp_error.code = RC_FAIL; \ - tmp_error.consumed = 0; \ - ASN_DEBUG("Failed to decode element %s", td ? td->name : ""); \ - return tmp_error; \ -} while(0) -#define ASN__DECODE_STARVED do { \ - asn_dec_rval_t tmp_error; \ - tmp_error.code = RC_WMORE; \ - tmp_error.consumed = 0; \ - return tmp_error; \ -} while(0) - -#ifdef __cplusplus -} -#endif - -#endif /* ASN_CODECS_H */ diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/asn_codecs_prim.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/asn_codecs_prim.c deleted file mode 100644 index fc24247..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/asn_codecs_prim.c +++ /dev/null @@ -1,317 +0,0 @@ -/*- - * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include - -/* - * Decode an always-primitive type. - */ -asn_dec_rval_t -ber_decode_primitive(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **sptr, - const void *buf_ptr, size_t size, int tag_mode) { - ASN__PRIMITIVE_TYPE_t *st = (ASN__PRIMITIVE_TYPE_t *)*sptr; - asn_dec_rval_t rval; - ber_tlv_len_t length = 0; /* =0 to avoid [incorrect] warning. */ - - /* - * If the structure is not there, allocate it. - */ - if(st == NULL) { - st = (ASN__PRIMITIVE_TYPE_t *)CALLOC(1, sizeof(*st)); - if(st == NULL) ASN__DECODE_FAILED; - *sptr = (void *)st; - } - - ASN_DEBUG("Decoding %s as plain primitive (tm=%d)", - td->name, tag_mode); - - /* - * Check tags and extract value length. - */ - rval = ber_check_tags(opt_codec_ctx, td, 0, buf_ptr, size, - tag_mode, 0, &length, 0); - if(rval.code != RC_OK) - return rval; - - ASN_DEBUG("%s length is %d bytes", td->name, (int)length); - - /* - * Make sure we have this length. - */ - buf_ptr = ((const char *)buf_ptr) + rval.consumed; - size -= rval.consumed; - if(length > (ber_tlv_len_t)size) { - rval.code = RC_WMORE; - rval.consumed = 0; - return rval; - } - - st->size = (int)length; - /* The following better be optimized away. */ - if(sizeof(st->size) != sizeof(length) - && (ber_tlv_len_t)st->size != length) { - st->size = 0; - ASN__DECODE_FAILED; - } - - st->buf = (uint8_t *)MALLOC(length + 1); - if(!st->buf) { - st->size = 0; - ASN__DECODE_FAILED; - } - - memcpy(st->buf, buf_ptr, length); - st->buf[length] = '\0'; /* Just in case */ - - rval.code = RC_OK; - rval.consumed += length; - - ASN_DEBUG("Took %ld/%ld bytes to encode %s", - (long)rval.consumed, - (long)length, td->name); - - return rval; -} - -/* - * Encode an always-primitive type using DER. - */ -asn_enc_rval_t -der_encode_primitive(const asn_TYPE_descriptor_t *td, const void *sptr, - int tag_mode, ber_tlv_tag_t tag, - asn_app_consume_bytes_f *cb, void *app_key) { - asn_enc_rval_t erval = {0,0,0}; - const ASN__PRIMITIVE_TYPE_t *st = (const ASN__PRIMITIVE_TYPE_t *)sptr; - - ASN_DEBUG("%s %s as a primitive type (tm=%d)", - cb?"Encoding":"Estimating", td->name, tag_mode); - - erval.encoded = der_write_tags(td, st->size, tag_mode, 0, tag, - cb, app_key); - ASN_DEBUG("%s wrote tags %d", td->name, (int)erval.encoded); - if(erval.encoded == -1) { - erval.failed_type = td; - erval.structure_ptr = sptr; - return erval; - } - - if(cb && st->buf) { - if(cb(st->buf, st->size, app_key) < 0) { - erval.encoded = -1; - erval.failed_type = td; - erval.structure_ptr = sptr; - return erval; - } - } else { - assert(st->buf || st->size == 0); - } - - erval.encoded += st->size; - ASN__ENCODED_OK(erval); -} - -void -ASN__PRIMITIVE_TYPE_free(const asn_TYPE_descriptor_t *td, void *sptr, - enum asn_struct_free_method method) { - ASN__PRIMITIVE_TYPE_t *st = (ASN__PRIMITIVE_TYPE_t *)sptr; - - if(!td || !sptr) - return; - - ASN_DEBUG("Freeing %s as a primitive type", td->name); - - if(st->buf) - FREEMEM(st->buf); - - switch(method) { - case ASFM_FREE_EVERYTHING: - FREEMEM(sptr); - break; - case ASFM_FREE_UNDERLYING: - break; - case ASFM_FREE_UNDERLYING_AND_RESET: - memset(sptr, 0, sizeof(ASN__PRIMITIVE_TYPE_t)); - break; - } -} - - -/* - * Local internal type passed around as an argument. - */ -struct xdp_arg_s { - const asn_TYPE_descriptor_t *type_descriptor; - void *struct_key; - xer_primitive_body_decoder_f *prim_body_decoder; - int decoded_something; - int want_more; -}; - -/* - * Since some kinds of primitive values can be encoded using value-specific - * tags (, , etc), the primitive decoder must - * be supplied with such tags to parse them as needed. - */ -static int -xer_decode__unexpected_tag(void *key, const void *chunk_buf, size_t chunk_size) { - struct xdp_arg_s *arg = (struct xdp_arg_s *)key; - enum xer_pbd_rval bret; - - /* - * The chunk_buf is guaranteed to start at '<'. - */ - assert(chunk_size && ((const char *)chunk_buf)[0] == 0x3c); - - /* - * Decoding was performed once already. Prohibit doing it again. - */ - if(arg->decoded_something) - return -1; - - bret = arg->prim_body_decoder(arg->type_descriptor, - arg->struct_key, chunk_buf, chunk_size); - switch(bret) { - case XPBD_SYSTEM_FAILURE: - case XPBD_DECODER_LIMIT: - case XPBD_BROKEN_ENCODING: - break; - case XPBD_BODY_CONSUMED: - /* Tag decoded successfully */ - arg->decoded_something = 1; - /* Fall through */ - case XPBD_NOT_BODY_IGNORE: /* Safe to proceed further */ - return 0; - } - - return -1; -} - -static ssize_t -xer_decode__primitive_body(void *key, const void *chunk_buf, size_t chunk_size, int have_more) { - struct xdp_arg_s *arg = (struct xdp_arg_s *)key; - enum xer_pbd_rval bret; - size_t lead_wsp_size; - - if(arg->decoded_something) { - if(xer_whitespace_span(chunk_buf, chunk_size) == chunk_size) { - /* - * Example: - * "123 " - * ^- chunk_buf position. - */ - return chunk_size; - } - /* - * Decoding was done once already. Prohibit doing it again. - */ - return -1; - } - - if(!have_more) { - /* - * If we've received something like "1", we can't really - * tell whether it is really `1` or `123`, until we know - * that there is no more data coming. - * The have_more argument will be set to 1 once something - * like this is available to the caller of this callback: - * "1want_more = 1; - return -1; - } - - lead_wsp_size = xer_whitespace_span(chunk_buf, chunk_size); - chunk_buf = (const char *)chunk_buf + lead_wsp_size; - chunk_size -= lead_wsp_size; - - bret = arg->prim_body_decoder(arg->type_descriptor, - arg->struct_key, chunk_buf, chunk_size); - switch(bret) { - case XPBD_SYSTEM_FAILURE: - case XPBD_DECODER_LIMIT: - case XPBD_BROKEN_ENCODING: - break; - case XPBD_BODY_CONSUMED: - /* Tag decoded successfully */ - arg->decoded_something = 1; - /* Fall through */ - case XPBD_NOT_BODY_IGNORE: /* Safe to proceed further */ - return lead_wsp_size + chunk_size; - } - - return -1; -} - - -asn_dec_rval_t -xer_decode_primitive(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **sptr, - size_t struct_size, const char *opt_mname, - const void *buf_ptr, size_t size, - xer_primitive_body_decoder_f *prim_body_decoder) { - const char *xml_tag = opt_mname ? opt_mname : td->xml_tag; - asn_struct_ctx_t s_ctx; - struct xdp_arg_s s_arg; - asn_dec_rval_t rc; - - /* - * Create the structure if does not exist. - */ - if(!*sptr) { - *sptr = CALLOC(1, struct_size); - if(!*sptr) ASN__DECODE_FAILED; - } - - memset(&s_ctx, 0, sizeof(s_ctx)); - s_arg.type_descriptor = td; - s_arg.struct_key = *sptr; - s_arg.prim_body_decoder = prim_body_decoder; - s_arg.decoded_something = 0; - s_arg.want_more = 0; - - rc = xer_decode_general(opt_codec_ctx, &s_ctx, &s_arg, - xml_tag, buf_ptr, size, - xer_decode__unexpected_tag, xer_decode__primitive_body); - switch(rc.code) { - case RC_OK: - if(!s_arg.decoded_something) { - char ch; - ASN_DEBUG("Primitive body is not recognized, " - "supplying empty one"); - /* - * Decoding opportunity has come and gone. - * Where's the result? - * Try to feed with empty body, see if it eats it. - */ - if(prim_body_decoder(s_arg.type_descriptor, - s_arg.struct_key, &ch, 0) - != XPBD_BODY_CONSUMED) { - /* - * This decoder does not like empty stuff. - */ - ASN__DECODE_FAILED; - } - } - break; - case RC_WMORE: - /* - * Redo the whole thing later. - * We don't have a context to save intermediate parsing state. - */ - rc.consumed = 0; - break; - case RC_FAIL: - rc.consumed = 0; - if(s_arg.want_more) - rc.code = RC_WMORE; - else - ASN__DECODE_FAILED; - break; - } - return rc; -} - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/asn_codecs_prim.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/asn_codecs_prim.h deleted file mode 100644 index fbc5576..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/asn_codecs_prim.h +++ /dev/null @@ -1,51 +0,0 @@ -/*- - * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef ASN_CODECS_PRIM_H -#define ASN_CODECS_PRIM_H - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct ASN__PRIMITIVE_TYPE_s { - uint8_t *buf; /* Buffer with consecutive primitive encoding bytes */ - size_t size; /* Size of the buffer */ -} ASN__PRIMITIVE_TYPE_t; /* Do not use this type directly! */ - -asn_struct_free_f ASN__PRIMITIVE_TYPE_free; -ber_type_decoder_f ber_decode_primitive; -der_type_encoder_f der_encode_primitive; - -/* - * A callback specification for the xer_decode_primitive() function below. - */ -enum xer_pbd_rval { - XPBD_SYSTEM_FAILURE, /* System failure (memory shortage, etc) */ - XPBD_DECODER_LIMIT, /* Hit some decoder limitation or deficiency */ - XPBD_BROKEN_ENCODING, /* Encoding of a primitive body is broken */ - XPBD_NOT_BODY_IGNORE, /* Not a body format, but safe to ignore */ - XPBD_BODY_CONSUMED /* Body is recognized and consumed */ -}; -typedef enum xer_pbd_rval(xer_primitive_body_decoder_f)( - const asn_TYPE_descriptor_t *td, void *struct_ptr, const void *chunk_buf, - size_t chunk_size); - -/* - * Specific function to decode simple primitive types. - * Also see xer_decode_general() in xer_decoder.h - */ -asn_dec_rval_t xer_decode_primitive( - const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *type_descriptor, void **struct_ptr, - size_t struct_size, const char *opt_mname, const void *buf_ptr, size_t size, - xer_primitive_body_decoder_f *prim_body_decoder); - -#ifdef __cplusplus -} -#endif - -#endif /* ASN_CODECS_PRIM_H */ diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/asn_constant.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/asn_constant.h deleted file mode 100644 index af5a0fd..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/asn_constant.h +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - */ - -#ifndef _ASN_CONSTANT_H -#define _ASN_CONSTANT_H - -#ifdef __cplusplus -extern "C" { -#endif - -#define maxofMessageProtocolTests (15) -#define maxofRICstyles (63) -#define maxnoofQCI (256) -#define maxnoofQoSFlows (64) -#define maxnoofSliceItems (1024) -#define maxnoofContainerListItems (3) -#define maxCellingNBDU (512) -#define maxofContainers (8) -#define maxPLMN (12) -#define maxofRANparamters (65536) -#define maxUeReport (32) -#define maxCellingNB (16384) - - -#ifdef __cplusplus -} -#endif - -#endif /* _ASN_CONSTANT_H */ diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/asn_internal.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/asn_internal.c deleted file mode 100644 index 1aff95f..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/asn_internal.c +++ /dev/null @@ -1,48 +0,0 @@ -#include - -ssize_t -asn__format_to_callback(int (*cb)(const void *, size_t, void *key), void *key, - const char *fmt, ...) { - char scratch[64]; - char *buf = scratch; - size_t buf_size = sizeof(scratch); - int wrote; - int cb_ret; - - do { - va_list args; - va_start(args, fmt); - - wrote = vsnprintf(buf, buf_size, fmt, args); - if(wrote < (ssize_t)buf_size) { - if(wrote < 0) { - if(buf != scratch) FREEMEM(buf); - va_end(args); - return -1; - } - break; - } - - buf_size <<= 1; - if(buf == scratch) { - buf = MALLOC(buf_size); - if(!buf) return -1; - } else { - void *p = REALLOC(buf, buf_size); - if(!p) { - FREEMEM(buf); - return -1; - } - buf = p; - } - } while(1); - - cb_ret = cb(buf, wrote, key); - if(buf != scratch) FREEMEM(buf); - if(cb_ret < 0) { - return -1; - } - - return wrote; -} - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/asn_internal.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/asn_internal.h deleted file mode 100644 index c4105ad..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/asn_internal.h +++ /dev/null @@ -1,159 +0,0 @@ -/* - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -/* - * Declarations internally useful for the ASN.1 support code. - */ -#ifndef ASN_INTERNAL_H -#define ASN_INTERNAL_H -#define __EXTENSIONS__ /* for Sun */ - -#include "asn_application.h" /* Application-visible API */ - -#ifndef __NO_ASSERT_H__ /* Include assert.h only for internal use. */ -#include /* for assert() macro */ -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -/* Environment version might be used to avoid running with the old library */ -#define ASN1C_ENVIRONMENT_VERSION 923 /* Compile-time version */ -int get_asn1c_environment_version(void); /* Run-time version */ - -#define CALLOC(nmemb, size) calloc(nmemb, size) -#define MALLOC(size) malloc(size) -#define REALLOC(oldptr, size) realloc(oldptr, size) -#define FREEMEM(ptr) free(ptr) - -#define asn_debug_indent 0 -#define ASN_DEBUG_INDENT_ADD(i) do{}while(0) - -#ifdef EMIT_ASN_DEBUG -#warning "Use ASN_EMIT_DEBUG instead of EMIT_ASN_DEBUG" -#define ASN_EMIT_DEBUG EMIT_ASN_DEBUG -#endif - -/* - * A macro for debugging the ASN.1 internals. - * You may enable or override it. - */ -#ifndef ASN_DEBUG /* If debugging code is not defined elsewhere... */ -#if ASN_EMIT_DEBUG == 1 /* And it was asked to emit this code... */ -#if !defined(BELL_LABS) /* Bell Labs */ - //#if __STDC_VERSION__ >= 199901L -#ifdef ASN_THREAD_SAFE -/* Thread safety requires sacrifice in output indentation: - * Retain empty definition of ASN_DEBUG_INDENT_ADD. */ -#else /* !ASN_THREAD_SAFE */ -#undef ASN_DEBUG_INDENT_ADD -#undef asn_debug_indent -int asn_debug_indent; -#define ASN_DEBUG_INDENT_ADD(i) do { asn_debug_indent += i; } while(0) -#endif /* ASN_THREAD_SAFE */ -#if defined(BELL_LABS) /* Bell Labs version */ -extern int logAsn1c(const char *filename, int linenumber, const char *format, ...); -#define ASN_DEBUG(fmt, args...) do { \ - (void) logAsn1c(__FILE__, __LINE__, fmt, ##args); \ - } while(0) -#else -#define ASN_DEBUG(fmt, args...) do { \ - int adi = asn_debug_indent; \ - while(adi--) fprintf(stderr, " "); \ - fprintf(stderr, fmt, ##args); \ - fprintf(stderr, " (%s:%d)\n", \ - __FILE__, __LINE__); \ - } while(0) -#endif /* BELL_LABS */ -#else /* !C99 */ -void CC_PRINTFLIKE(1, 2) ASN_DEBUG_f(const char *fmt, ...); -#define ASN_DEBUG ASN_DEBUG_f -#endif /* C99 */ -#else /* ASN_EMIT_DEBUG != 1 */ -#if __STDC_VERSION__ >= 199901L -#define ASN_DEBUG(...) do{}while(0) -#else /* not C99 */ -static void CC_PRINTFLIKE(1, 2) ASN_DEBUG(const char *fmt, ...) { (void)fmt; } -#endif /* C99 or better */ -#endif /* ASN_EMIT_DEBUG */ -#endif /* ASN_DEBUG */ - -/* - * Print to a callback. - * The callback is expected to return negative values on error. - * 0 and positive values are treated as success. - * RETURN VALUES: - * -1: Failed to format or invoke the callback. - * >0: Size of the data that got delivered to the callback. - */ -ssize_t CC_PRINTFLIKE(3, 4) -asn__format_to_callback( - int (*callback)(const void *, size_t, void *key), void *key, - const char *fmt, ...); - -/* - * Invoke the application-supplied callback and fail, if something is wrong. - */ -#define ASN__E_cbc(buf, size) (cb((buf), (size), app_key) < 0) -#define ASN__E_CALLBACK(size, foo) \ - do { \ - if(foo) goto cb_failed; \ - er.encoded += (size); \ - } while(0) -#define ASN__CALLBACK(buf, size) ASN__E_CALLBACK(size, ASN__E_cbc(buf, size)) -#define ASN__CALLBACK2(buf1, size1, buf2, size2) \ - ASN__E_CALLBACK((size1) + (size2), \ - ASN__E_cbc(buf1, size1) || ASN__E_cbc(buf2, size2)) -#define ASN__CALLBACK3(buf1, size1, buf2, size2, buf3, size3) \ - ASN__E_CALLBACK((size1) + (size2) + (size3), \ - ASN__E_cbc(buf1, size1) || ASN__E_cbc(buf2, size2) \ - || ASN__E_cbc(buf3, size3)) - -#define ASN__TEXT_INDENT(nl, level) \ - do { \ - int tmp_level = (level); \ - int tmp_nl = ((nl) != 0); \ - int tmp_i; \ - if(tmp_nl) ASN__CALLBACK("\n", 1); \ - if(tmp_level < 0) tmp_level = 0; \ - for(tmp_i = 0; tmp_i < tmp_level; tmp_i++) ASN__CALLBACK(" ", 4); \ - } while(0) - -#define _i_INDENT(nl) do { \ - int tmp_i; \ - if((nl) && cb("\n", 1, app_key) < 0) \ - return -1; \ - for(tmp_i = 0; tmp_i < ilevel; tmp_i++) \ - if(cb(" ", 4, app_key) < 0) \ - return -1; \ - } while(0) - -/* - * Check stack against overflow, if limit is set. - */ -#define ASN__DEFAULT_STACK_MAX (30000) -static int CC_NOTUSED -ASN__STACK_OVERFLOW_CHECK(const asn_codec_ctx_t *ctx) { - if(ctx && ctx->max_stack_size) { - - /* ctx MUST be allocated on the stack */ - ptrdiff_t usedstack = ((const char *)ctx - (const char *)&ctx); - if(usedstack > 0) usedstack = -usedstack; /* grows up! */ - - /* double negative required to avoid int wrap-around */ - if(usedstack < -(ptrdiff_t)ctx->max_stack_size) { - ASN_DEBUG("Stack limit %ld reached", - (long)ctx->max_stack_size); - return -1; - } - } - return 0; -} - -#ifdef __cplusplus -} -#endif - -#endif /* ASN_INTERNAL_H */ diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/asn_ioc.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/asn_ioc.h deleted file mode 100644 index 7de210e..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/asn_ioc.h +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Run-time support for Information Object Classes. - * Copyright (c) 2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef ASN_IOC_H -#define ASN_IOC_H - -#include /* Platform-specific types */ - -#ifdef __cplusplus -extern "C" { -#endif - -struct asn_TYPE_descriptor_s; -struct asn_ioc_cell_s; - -/* - * X.681, #13 - */ -typedef struct asn_ioc_set_s { - size_t rows_count; - size_t columns_count; - const struct asn_ioc_cell_s *rows; -} asn_ioc_set_t; - - -typedef struct asn_ioc_cell_s { - const char *field_name; /* Is equal to corresponding column_name */ - enum { - aioc__undefined = 0, - aioc__value, - aioc__type, - aioc__open_type, - } cell_kind; - struct asn_TYPE_descriptor_s *type_descriptor; - const void *value_sptr; - struct { - size_t types_count; - struct { - unsigned choice_position; - } *types; - } open_type; -} asn_ioc_cell_t; - - -#ifdef __cplusplus -} -#endif - -#endif /* ASN_IOC_H */ diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/asn_random_fill.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/asn_random_fill.c deleted file mode 100644 index 819cf70..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/asn_random_fill.c +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Copyright (c) 2017 Lev Walkin . - * All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include - -int -asn_random_fill(const struct asn_TYPE_descriptor_s *td, void **struct_ptr, - size_t length) { - - if(td && td->op->random_fill) { - asn_random_fill_result_t res = - td->op->random_fill(td, struct_ptr, 0, length); - return (res.code == ARFILL_OK) ? 0 : -1; - } else { - return -1; - } -} - -static uintmax_t -asn__intmax_range(intmax_t lb, intmax_t ub) { - assert(lb <= ub); - if((ub < 0) == (lb < 0)) { - return ub - lb; - } else if(lb < 0) { - return 1 + ((uintmax_t)ub + (uintmax_t)-(lb + 1)); - } else { - assert(!"Unreachable"); - return 0; - } -} - -intmax_t -asn_random_between(intmax_t lb, intmax_t rb) { - if(lb == rb) { - return lb; - } else { - const uintmax_t intmax_max = ((~(uintmax_t)0) >> 1); - uintmax_t range = asn__intmax_range(lb, rb); - uintmax_t value = 0; - uintmax_t got_entropy = 0; - - assert(RAND_MAX > 0xffffff); /* Seen 7ffffffd! */ - assert(range < intmax_max); - - for(; got_entropy < range;) { - got_entropy = (got_entropy << 24) | 0xffffff; - value = (value << 24) | (random() % 0xffffff); - } - - return lb + (intmax_t)(value % (range + 1)); - } -} diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/asn_random_fill.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/asn_random_fill.h deleted file mode 100644 index 47f9b8a..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/asn_random_fill.h +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Copyright (c) 2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef ASN_RANDOM_FILL -#define ASN_RANDOM_FILL - -/* Forward declarations */ -struct asn_TYPE_descriptor_s; -struct asn_encoding_constraints_s; - -/* - * Initialize a structure with random data according to the type specification - * and optional member constraints. - * ARGUMENTS: - * (max_length) - See (approx_max_length_limit). - * (memb_constraints) - Member constraints, if exist. - * The type can be constrained differently according - * to PER and OER specifications, so we find a value - * at the intersection of these constraints. - * In case the return differs from ARFILL_OK, the (struct_ptr) contents - * and (current_length) value remain in their original state. - */ -typedef struct asn_random_fill_result_s { - enum { - ARFILL_FAILED = -1, /* System error (memory?) */ - ARFILL_OK = 0, /* Initialization succeeded */ - ARFILL_SKIPPED = 1 /* Not done due to (length?) constraint */ - } code; - size_t length; /* Approximate number of bytes created. */ -} asn_random_fill_result_t; -typedef asn_random_fill_result_t(asn_random_fill_f)( - const struct asn_TYPE_descriptor_s *td, void **struct_ptr, - const struct asn_encoding_constraints_s *memb_constraints, - size_t max_length); - -/* - * Returns 0 if the structure was properly initialized, -1 otherwise. - * The (approx_max_length_limit) specifies the approximate limit of the - * resulting structure in units closely resembling bytes. The actual result - * might be several times larger or smaller than the length limit. - */ -int asn_random_fill(const struct asn_TYPE_descriptor_s *td, void **struct_ptr, - size_t approx_max_length_limit); - -/* - * Returns a random number between min and max. - */ -intmax_t asn_random_between(intmax_t min, intmax_t max); - -#endif /* ASN_RANDOM_FILL */ diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/asn_system.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/asn_system.h deleted file mode 100644 index fa8cf11..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/asn_system.h +++ /dev/null @@ -1,150 +0,0 @@ -/* - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -/* - * Miscellaneous system-dependent types. - */ -#ifndef ASN_SYSTEM_H -#define ASN_SYSTEM_H - -#ifdef HAVE_CONFIG_H -#include "config.h" -#endif - -#ifndef _DEFAULT_SOURCE -#define _DEFAULT_SOURCE 1 -#endif - -#ifndef _BSD_SOURCE -#define _BSD_SOURCE /* for snprintf() on some linux systems */ -#endif - -#include /* For snprintf(3) */ -#include /* For *alloc(3) */ -#include /* For memcpy(3) */ -#include /* For size_t */ -#include /* For LONG_MAX */ -#include /* For va_start */ -#include /* for offsetof and ptrdiff_t */ - -#ifdef _WIN32 - -#include -#define snprintf _snprintf -#define vsnprintf _vsnprintf - -/* To avoid linking with ws2_32.lib, here's the definition of ntohl() */ -#define sys_ntohl(l) ((((l) << 24) & 0xff000000) \ - | (((l) << 8) & 0xff0000) \ - | (((l) >> 8) & 0xff00) \ - | ((l >> 24) & 0xff)) - -#ifdef _MSC_VER /* MSVS.Net */ -#ifndef __cplusplus -#define inline __inline -#endif -#ifndef ASSUMESTDTYPES /* Standard types have been defined elsewhere */ -#define ssize_t SSIZE_T -#if _MSC_VER < 1600 -typedef char int8_t; -typedef short int16_t; -typedef int int32_t; -typedef unsigned char uint8_t; -typedef unsigned short uint16_t; -typedef unsigned int uint32_t; -#else /* _MSC_VER >= 1600 */ -#include -#endif /* _MSC_VER < 1600 */ -#endif /* ASSUMESTDTYPES */ -#define WIN32_LEAN_AND_MEAN -#include -#include -#define isnan _isnan -#define finite _finite -#define copysign _copysign -#define ilogb _logb -#else /* !_MSC_VER */ -#include -#endif /* _MSC_VER */ - -#else /* !_WIN32 */ - -#if defined(__vxworks) -#include -#else /* !defined(__vxworks) */ - -#include /* C99 specifies this file */ -#include /* for ntohl() */ -#define sys_ntohl(foo) ntohl(foo) -#endif /* defined(__vxworks) */ - -#endif /* _WIN32 */ - -#if __GNUC__ >= 3 || defined(__clang__) -#define CC_ATTRIBUTE(attr) __attribute__((attr)) -#else -#define CC_ATTRIBUTE(attr) -#endif -#define CC_PRINTFLIKE(fmt, var) CC_ATTRIBUTE(format(printf, fmt, var)) -#define CC_NOTUSED CC_ATTRIBUTE(unused) -#ifndef CC_ATTR_NO_SANITIZE -#define CC_ATTR_NO_SANITIZE(what) CC_ATTRIBUTE(no_sanitize(what)) -#endif - -/* Figure out if thread safety is requested */ -#if !defined(ASN_THREAD_SAFE) && (defined(THREAD_SAFE) || defined(_REENTRANT)) -#define ASN_THREAD_SAFE -#endif /* Thread safety */ - -#ifndef offsetof /* If not defined by */ -#define offsetof(s, m) ((ptrdiff_t)&(((s *)0)->m) - (ptrdiff_t)((s *)0)) -#endif /* offsetof */ - -#ifndef MIN /* Suitable for comparing primitive types (integers) */ -#if defined(__GNUC__) -#define MIN(a,b) ({ __typeof a _a = a; __typeof b _b = b; \ - ((_a)<(_b)?(_a):(_b)); }) -#else /* !__GNUC__ */ -#define MIN(a,b) ((a)<(b)?(a):(b)) /* Unsafe variant */ -#endif /* __GNUC__ */ -#endif /* MIN */ - -#if __STDC_VERSION__ >= 199901L -#ifndef SIZE_MAX -#define SIZE_MAX ((~((size_t)0)) >> 1) -#endif - -#ifndef RSIZE_MAX /* C11, Annex K */ -#define RSIZE_MAX (SIZE_MAX >> 1) -#endif -#ifndef RSSIZE_MAX /* Halve signed size even further than unsigned */ -#define RSSIZE_MAX ((ssize_t)(RSIZE_MAX >> 1)) -#endif -#else /* Old compiler */ -#undef SIZE_MAX -#undef RSIZE_MAX -#undef RSSIZE_MAX -#define SIZE_MAX ((~((size_t)0)) >> 1) -#define RSIZE_MAX (SIZE_MAX >> 1) -#define RSSIZE_MAX ((ssize_t)(RSIZE_MAX >> 1)) -#endif - -#if __STDC_VERSION__ >= 199901L -#define ASN_PRI_SIZE "zu" -#define ASN_PRI_SSIZE "zd" -#define ASN_PRIuMAX PRIuMAX -#define ASN_PRIdMAX PRIdMAX -#else -#define ASN_PRI_SIZE "lu" -#define ASN_PRI_SSIZE "ld" -#if LLONG_MAX > LONG_MAX -#define ASN_PRIuMAX "llu" -#define ASN_PRIdMAX "lld" -#else -#define ASN_PRIuMAX "lu" -#define ASN_PRIdMAX "ld" -#endif -#endif - -#endif /* ASN_SYSTEM_H */ diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/ber_decoder.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/ber_decoder.c deleted file mode 100644 index 75d6016..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/ber_decoder.c +++ /dev/null @@ -1,283 +0,0 @@ -/*- - * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include - -#undef ADVANCE -#define ADVANCE(num_bytes) do { \ - size_t num = num_bytes; \ - ptr = ((const char *)ptr) + num; \ - size -= num; \ - consumed_myself += num; \ - } while(0) -#undef RETURN -#define RETURN(_code) do { \ - asn_dec_rval_t rval; \ - rval.code = _code; \ - if(opt_ctx) opt_ctx->step = step; /* Save context */ \ - if(_code == RC_OK || opt_ctx) \ - rval.consumed = consumed_myself; \ - else \ - rval.consumed = 0; /* Context-free */ \ - return rval; \ - } while(0) - -/* - * The BER decoder of any type. - */ -asn_dec_rval_t -ber_decode(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *type_descriptor, void **struct_ptr, - const void *ptr, size_t size) { - asn_codec_ctx_t s_codec_ctx; - - /* - * Stack checker requires that the codec context - * must be allocated on the stack. - */ - if(opt_codec_ctx) { - if(opt_codec_ctx->max_stack_size) { - s_codec_ctx = *opt_codec_ctx; - opt_codec_ctx = &s_codec_ctx; - } - } else { - /* If context is not given, be security-conscious anyway */ - memset(&s_codec_ctx, 0, sizeof(s_codec_ctx)); - s_codec_ctx.max_stack_size = ASN__DEFAULT_STACK_MAX; - opt_codec_ctx = &s_codec_ctx; - } - - /* - * Invoke type-specific decoder. - */ - return type_descriptor->op->ber_decoder(opt_codec_ctx, type_descriptor, - struct_ptr, /* Pointer to the destination structure */ - ptr, size, /* Buffer and its size */ - 0 /* Default tag mode is 0 */ - ); -} - -/* - * Check the set of >> tags matches the definition. - */ -asn_dec_rval_t -ber_check_tags(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, asn_struct_ctx_t *opt_ctx, - const void *ptr, size_t size, int tag_mode, int last_tag_form, - ber_tlv_len_t *last_length, int *opt_tlv_form) { - ssize_t consumed_myself = 0; - ssize_t tag_len; - ssize_t len_len; - ber_tlv_tag_t tlv_tag; - ber_tlv_len_t tlv_len; - ber_tlv_len_t limit_len = -1; - int expect_00_terminators = 0; - int tlv_constr = -1; /* If CHOICE, opt_tlv_form is not given */ - int step = opt_ctx ? opt_ctx->step : 0; /* Where we left previously */ - int tagno; - - /* - * Make sure we didn't exceed the maximum stack size. - */ - if(ASN__STACK_OVERFLOW_CHECK(opt_codec_ctx)) - RETURN(RC_FAIL); - - /* - * So what does all this implicit skip stuff mean? - * Imagine two types, - * A ::= [5] IMPLICIT T - * B ::= [2] EXPLICIT T - * Where T is defined as - * T ::= [4] IMPLICIT SEQUENCE { ... } - * - * Let's say, we are starting to decode type A, given the - * following TLV stream: <5> <0>. What does this mean? - * It means that the type A contains type T which is, - * in turn, empty. - * Remember though, that we are still in A. We cannot - * just pass control to the type T decoder. Why? Because - * the type T decoder expects <4> <0>, not <5> <0>. - * So, we must make sure we are going to receive <5> while - * still in A, then pass control to the T decoder, indicating - * that the tag <4> was implicitly skipped. The decoder of T - * hence will be prepared to treat <4> as valid tag, and decode - * it appropriately. - */ - - tagno = step /* Continuing where left previously */ - + (tag_mode==1?-1:0) - ; - ASN_DEBUG("ber_check_tags(%s, size=%ld, tm=%d, step=%d, tagno=%d)", - td->name, (long)size, tag_mode, step, tagno); - /* assert(td->tags_count >= 1) May not be the case for CHOICE or ANY */ - - if(tag_mode == 0 && tagno == (int)td->tags_count) { - /* - * This must be the _untagged_ ANY type, - * which outermost tag isn't known in advance. - * Fetch the tag and length separately. - */ - tag_len = ber_fetch_tag(ptr, size, &tlv_tag); - switch(tag_len) { - case -1: RETURN(RC_FAIL); - case 0: RETURN(RC_WMORE); - } - tlv_constr = BER_TLV_CONSTRUCTED(ptr); - len_len = ber_fetch_length(tlv_constr, - (const char *)ptr + tag_len, size - tag_len, &tlv_len); - switch(len_len) { - case -1: RETURN(RC_FAIL); - case 0: RETURN(RC_WMORE); - } - ASN_DEBUG("Advancing %ld in ANY case", - (long)(tag_len + len_len)); - ADVANCE(tag_len + len_len); - } else { - assert(tagno < (int)td->tags_count); /* At least one loop */ - } - for((void)tagno; tagno < (int)td->tags_count; tagno++, step++) { - - /* - * Fetch and process T from TLV. - */ - tag_len = ber_fetch_tag(ptr, size, &tlv_tag); - ASN_DEBUG("Fetching tag from {%p,%ld}: " - "len %ld, step %d, tagno %d got %s", - ptr, (long)size, - (long)tag_len, step, tagno, - ber_tlv_tag_string(tlv_tag)); - switch(tag_len) { - case -1: RETURN(RC_FAIL); - case 0: RETURN(RC_WMORE); - } - - tlv_constr = BER_TLV_CONSTRUCTED(ptr); - - /* - * If {I}, don't check anything. - * If {I,B,C}, check B and C unless we're at I. - */ - if(tag_mode != 0 && step == 0) { - /* - * We don't expect tag to match here. - * It's just because we don't know how the tag - * is supposed to look like. - */ - } else { - assert(tagno >= 0); /* Guaranteed by the code above */ - if(tlv_tag != td->tags[tagno]) { - /* - * Unexpected tag. Too bad. - */ - ASN_DEBUG("Expected: %s, " - "expectation failed (tn=%d, tm=%d)", - ber_tlv_tag_string(td->tags[tagno]), - tagno, tag_mode - ); - RETURN(RC_FAIL); - } - } - - /* - * Attention: if there are more tags expected, - * ensure that the current tag is presented - * in constructed form (it contains other tags!). - * If this one is the last one, check that the tag form - * matches the one given in descriptor. - */ - if(tagno < ((int)td->tags_count - 1)) { - if(tlv_constr == 0) { - ASN_DEBUG("tlv_constr = %d, expfail", - tlv_constr); - RETURN(RC_FAIL); - } - } else { - if(last_tag_form != tlv_constr - && last_tag_form != -1) { - ASN_DEBUG("last_tag_form %d != %d", - last_tag_form, tlv_constr); - RETURN(RC_FAIL); - } - } - - /* - * Fetch and process L from TLV. - */ - len_len = ber_fetch_length(tlv_constr, - (const char *)ptr + tag_len, size - tag_len, &tlv_len); - ASN_DEBUG("Fetching len = %ld", (long)len_len); - switch(len_len) { - case -1: RETURN(RC_FAIL); - case 0: RETURN(RC_WMORE); - } - - /* - * FIXME - * As of today, the chain of tags - * must either contain several indefinite length TLVs, - * or several definite length ones. - * No mixing is allowed. - */ - if(tlv_len == -1) { - /* - * Indefinite length. - */ - if(limit_len == -1) { - expect_00_terminators++; - } else { - ASN_DEBUG("Unexpected indefinite length " - "in a chain of definite lengths"); - RETURN(RC_FAIL); - } - ADVANCE(tag_len + len_len); - continue; - } else { - if(expect_00_terminators) { - ASN_DEBUG("Unexpected definite length " - "in a chain of indefinite lengths"); - RETURN(RC_FAIL); - } - } - - /* - * Check that multiple TLVs specify ever decreasing length, - * which is consistent. - */ - if(limit_len == -1) { - limit_len = tlv_len + tag_len + len_len; - if(limit_len < 0) { - /* Too great tlv_len value? */ - RETURN(RC_FAIL); - } - } else if(limit_len != tlv_len + tag_len + len_len) { - /* - * Inner TLV specifies length which is inconsistent - * with the outer TLV's length value. - */ - ASN_DEBUG("Outer TLV is %ld and inner is %ld", - (long)limit_len, (long)tlv_len); - RETURN(RC_FAIL); - } - - ADVANCE(tag_len + len_len); - - limit_len -= (tag_len + len_len); - if((ssize_t)size > limit_len) { - /* - * Make sure that we won't consume more bytes - * from the parent frame than the inferred limit. - */ - size = limit_len; - } - } - - if(opt_tlv_form) - *opt_tlv_form = tlv_constr; - if(expect_00_terminators) - *last_length = -expect_00_terminators; - else - *last_length = tlv_len; - - RETURN(RC_OK); -} diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/ber_decoder.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/ber_decoder.h deleted file mode 100644 index 1ac2a5e..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/ber_decoder.h +++ /dev/null @@ -1,66 +0,0 @@ -/*- - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef _BER_DECODER_H_ -#define _BER_DECODER_H_ - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -struct asn_TYPE_descriptor_s; /* Forward declaration */ -struct asn_codec_ctx_s; /* Forward declaration */ - -/* - * The BER decoder of any type. - * This function may be invoked directly from the application. - * Decodes BER, DER and CER data (DER and CER are different subsets of BER). - * - * NOTE: Use the der_encode() function (der_encoder.h) to produce encoding - * which is compliant with ber_decode(). - */ -asn_dec_rval_t ber_decode( - const struct asn_codec_ctx_s *opt_codec_ctx, - const struct asn_TYPE_descriptor_s *type_descriptor, - void **struct_ptr, /* Pointer to a target structure's pointer */ - const void *buffer, /* Data to be decoded */ - size_t size /* Size of that buffer */ -); - -/* - * Type of generic function which decodes the byte stream into the structure. - */ -typedef asn_dec_rval_t(ber_type_decoder_f)( - const struct asn_codec_ctx_s *opt_codec_ctx, - const struct asn_TYPE_descriptor_s *type_descriptor, void **struct_ptr, - const void *buf_ptr, size_t size, int tag_mode); - -/******************************* - * INTERNALLY USEFUL FUNCTIONS * - *******************************/ - -/* - * Check that all tags correspond to the type definition (as given in head). - * On return, last_length would contain either a non-negative length of the - * value part of the last TLV, or the negative number of expected - * "end of content" sequences. The number may only be negative if the - * head->last_tag_form is non-zero. - */ -asn_dec_rval_t ber_check_tags( - const struct asn_codec_ctx_s *opt_codec_ctx, /* codec options */ - const struct asn_TYPE_descriptor_s *type_descriptor, - asn_struct_ctx_t *opt_ctx, /* saved decoding context */ - const void *ptr, size_t size, - int tag_mode, /* {-1,0,1}: IMPLICIT, no, EXPLICIT */ - int last_tag_form, /* {-1,0:1}: any, primitive, constr */ - ber_tlv_len_t *last_length, int *opt_tlv_form /* optional tag form */ -); - -#ifdef __cplusplus -} -#endif - -#endif /* _BER_DECODER_H_ */ diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/ber_tlv_length.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/ber_tlv_length.c deleted file mode 100644 index 0a0deec..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/ber_tlv_length.c +++ /dev/null @@ -1,168 +0,0 @@ -/*- - * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include - -ssize_t -ber_fetch_length(int _is_constructed, const void *bufptr, size_t size, - ber_tlv_len_t *len_r) { - const uint8_t *buf = (const uint8_t *)bufptr; - unsigned oct; - - if(size == 0) - return 0; /* Want more */ - - oct = *(const uint8_t *)buf; - if((oct & 0x80) == 0) { - /* - * Short definite length. - */ - *len_r = oct; /* & 0x7F */ - return 1; - } else { - ber_tlv_len_t len; - size_t skipped; - - if(_is_constructed && oct == 0x80) { - *len_r = -1; /* Indefinite length */ - return 1; - } - - if(oct == 0xff) { - /* Reserved in standard for future use. */ - return -1; - } - - oct &= 0x7F; /* Leave only the 7 LS bits */ - for(len = 0, buf++, skipped = 1; - oct && (++skipped <= size); buf++, oct--) { - - /* Verify that we won't overflow. */ - if(!(len >> ((8 * sizeof(len)) - (8+1)))) { - len = (len << 8) | *buf; - } else { - /* Too large length value. */ - return -1; - } - } - - if(oct == 0) { - if(len < 0 || len > RSSIZE_MAX) { - /* Length value out of sane range. */ - return -1; - } - - *len_r = len; - return skipped; - } - - return 0; /* Want more */ - } - -} - -ssize_t -ber_skip_length(const asn_codec_ctx_t *opt_codec_ctx, - int _is_constructed, const void *ptr, size_t size) { - ber_tlv_len_t vlen; /* Length of V in TLV */ - ssize_t tl; /* Length of L in TLV */ - ssize_t ll; /* Length of L in TLV */ - size_t skip; - - /* - * Make sure we didn't exceed the maximum stack size. - */ - if(ASN__STACK_OVERFLOW_CHECK(opt_codec_ctx)) - return -1; - - /* - * Determine the size of L in TLV. - */ - ll = ber_fetch_length(_is_constructed, ptr, size, &vlen); - if(ll <= 0) return ll; - - /* - * Definite length. - */ - if(vlen >= 0) { - skip = ll + vlen; - if(skip > size) - return 0; /* Want more */ - return skip; - } - - /* - * Indefinite length! - */ - ASN_DEBUG("Skipping indefinite length"); - for(skip = ll, ptr = ((const char *)ptr) + ll, size -= ll;;) { - ber_tlv_tag_t tag; - - /* Fetch the tag */ - tl = ber_fetch_tag(ptr, size, &tag); - if(tl <= 0) return tl; - - ll = ber_skip_length(opt_codec_ctx, - BER_TLV_CONSTRUCTED(ptr), - ((const char *)ptr) + tl, size - tl); - if(ll <= 0) return ll; - - skip += tl + ll; - - /* - * This may be the end of the indefinite length structure, - * two consecutive 0 octets. - * Check if it is true. - */ - if(((const uint8_t *)ptr)[0] == 0 - && ((const uint8_t *)ptr)[1] == 0) - return skip; - - ptr = ((const char *)ptr) + tl + ll; - size -= tl + ll; - } - - /* UNREACHABLE */ -} - -size_t -der_tlv_length_serialize(ber_tlv_len_t len, void *bufp, size_t size) { - size_t required_size; /* Size of len encoding */ - uint8_t *buf = (uint8_t *)bufp; - uint8_t *end; - int i; - - if(len <= 127) { - /* Encoded in 1 octet */ - if(size) *buf = (uint8_t)len; - return 1; - } - - /* - * Compute the size of the subsequent bytes. - */ - for(required_size = 1, i = 8; i < 8 * (int)sizeof(len); i += 8) { - if(len >> i) - required_size++; - else - break; - } - - if(size <= required_size) - return required_size + 1; - - *buf++ = (uint8_t)(0x80 | required_size); /* Length of the encoding */ - - /* - * Produce the len encoding, space permitting. - */ - end = buf + required_size; - for(i -= 8; buf < end; i -= 8, buf++) - *buf = (uint8_t)(len >> i); - - return required_size + 1; -} - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/ber_tlv_length.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/ber_tlv_length.h deleted file mode 100644 index d1e4d48..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/ber_tlv_length.h +++ /dev/null @@ -1,50 +0,0 @@ -/*- - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef _BER_TLV_LENGTH_H_ -#define _BER_TLV_LENGTH_H_ - -#ifdef __cplusplus -extern "C" { -#endif - -typedef ssize_t ber_tlv_len_t; - -/* - * This function tries to fetch the length of the BER TLV value and place it - * in *len_r. - * RETURN VALUES: - * 0: More data expected than bufptr contains. - * -1: Fatal error deciphering length. - * >0: Number of bytes used from bufptr. - * On return with >0, len_r is constrained as -1..MAX, where -1 mean - * that the value is of indefinite length. - */ -ssize_t ber_fetch_length(int _is_constructed, const void *bufptr, size_t size, - ber_tlv_len_t *len_r); - -/* - * This function expects bufptr to be positioned over L in TLV. - * It returns number of bytes occupied by L and V together, suitable - * for skipping. The function properly handles indefinite length. - * RETURN VALUES: - * Standard {-1,0,>0} convention. - */ -ssize_t ber_skip_length( - const struct asn_codec_ctx_s *opt_codec_ctx, /* optional context */ - int _is_constructed, const void *bufptr, size_t size); - -/* - * This function serializes the length (L from TLV) in DER format. - * It always returns number of bytes necessary to represent the length, - * it is a caller's responsibility to check the return value - * against the supplied buffer's size. - */ -size_t der_tlv_length_serialize(ber_tlv_len_t len, void *bufptr, size_t size); - -#ifdef __cplusplus -} -#endif - -#endif /* _BER_TLV_LENGTH_H_ */ diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/ber_tlv_tag.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/ber_tlv_tag.c deleted file mode 100644 index 4a7d732..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/ber_tlv_tag.c +++ /dev/null @@ -1,144 +0,0 @@ -/*- - * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include - -ssize_t -ber_fetch_tag(const void *ptr, size_t size, ber_tlv_tag_t *tag_r) { - ber_tlv_tag_t val; - ber_tlv_tag_t tclass; - size_t skipped; - - if(size == 0) - return 0; - - val = *(const uint8_t *)ptr; - tclass = (val >> 6); - if((val &= 0x1F) != 0x1F) { - /* - * Simple form: everything encoded in a single octet. - * Tag Class is encoded using two least significant bits. - */ - *tag_r = (val << 2) | tclass; - return 1; - } - - /* - * Each octet contains 7 bits of useful information. - * The MSB is 0 if it is the last octet of the tag. - */ - for(val = 0, ptr = ((const char *)ptr) + 1, skipped = 2; - skipped <= size; - ptr = ((const char *)ptr) + 1, skipped++) { - unsigned int oct = *(const uint8_t *)ptr; - if(oct & 0x80) { - val = (val << 7) | (oct & 0x7F); - /* - * Make sure there are at least 9 bits spare - * at the MS side of a value. - */ - if(val >> ((8 * sizeof(val)) - 9)) { - /* - * We would not be able to accomodate - * any more tag bits. - */ - return -1; - } - } else { - val = (val << 7) | oct; - *tag_r = (val << 2) | tclass; - return skipped; - } - } - - return 0; /* Want more */ -} - - -ssize_t -ber_tlv_tag_fwrite(ber_tlv_tag_t tag, FILE *f) { - char buf[sizeof("[APPLICATION ]") + 32]; - ssize_t ret; - - ret = ber_tlv_tag_snprint(tag, buf, sizeof(buf)); - if(ret >= (ssize_t)sizeof(buf) || ret < 2) { - errno = EPERM; - return -1; - } - - return fwrite(buf, 1, ret, f); -} - -ssize_t -ber_tlv_tag_snprint(ber_tlv_tag_t tag, char *buf, size_t size) { - const char *type = 0; - int ret; - - switch(tag & 0x3) { - case ASN_TAG_CLASS_UNIVERSAL: type = "UNIVERSAL "; break; - case ASN_TAG_CLASS_APPLICATION: type = "APPLICATION "; break; - case ASN_TAG_CLASS_CONTEXT: type = ""; break; - case ASN_TAG_CLASS_PRIVATE: type = "PRIVATE "; break; - } - - ret = snprintf(buf, size, "[%s%u]", type, ((unsigned)tag) >> 2); - if(ret <= 0 && size) buf[0] = '\0'; /* against broken libc's */ - - return ret; -} - -char * -ber_tlv_tag_string(ber_tlv_tag_t tag) { - static char buf[sizeof("[APPLICATION ]") + 32]; - - (void)ber_tlv_tag_snprint(tag, buf, sizeof(buf)); - - return buf; -} - - -size_t -ber_tlv_tag_serialize(ber_tlv_tag_t tag, void *bufp, size_t size) { - int tclass = BER_TAG_CLASS(tag); - ber_tlv_tag_t tval = BER_TAG_VALUE(tag); - uint8_t *buf = (uint8_t *)bufp; - uint8_t *end; - size_t required_size; - size_t i; - - if(tval <= 30) { - /* Encoded in 1 octet */ - if(size) buf[0] = (tclass << 6) | tval; - return 1; - } else if(size) { - *buf++ = (tclass << 6) | 0x1F; - size--; - } - - /* - * Compute the size of the subsequent bytes. - */ - for(required_size = 1, i = 7; i < 8 * sizeof(tval); i += 7) { - if(tval >> i) - required_size++; - else - break; - } - - if(size < required_size) - return required_size + 1; - - /* - * Fill in the buffer, space permitting. - */ - end = buf + required_size - 1; - for(i -= 7; buf < end; i -= 7, buf++) - *buf = 0x80 | ((tval >> i) & 0x7F); - *buf = (tval & 0x7F); /* Last octet without high bit */ - - return required_size + 1; -} - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/ber_tlv_tag.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/ber_tlv_tag.h deleted file mode 100644 index ce227ad..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/ber_tlv_tag.h +++ /dev/null @@ -1,60 +0,0 @@ -/*- - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef _BER_TLV_TAG_H_ -#define _BER_TLV_TAG_H_ - -#ifdef __cplusplus -extern "C" { -#endif - -enum asn_tag_class { - ASN_TAG_CLASS_UNIVERSAL = 0, /* 0b00 */ - ASN_TAG_CLASS_APPLICATION = 1, /* 0b01 */ - ASN_TAG_CLASS_CONTEXT = 2, /* 0b10 */ - ASN_TAG_CLASS_PRIVATE = 3 /* 0b11 */ -}; -typedef unsigned ber_tlv_tag_t; /* BER TAG from Tag-Length-Value */ - -/* - * Tag class is encoded together with tag value for optimization purposes. - */ -#define BER_TAG_CLASS(tag) ((tag) & 0x3) -#define BER_TAG_VALUE(tag) ((tag) >> 2) -#define BER_TLV_CONSTRUCTED(tagptr) (((*(const uint8_t *)tagptr)&0x20)?1:0) - -#define BER_TAGS_EQUAL(tag1, tag2) ((tag1) == (tag2)) - -/* - * Several functions for printing the TAG in the canonical form - * (i.e. "[PRIVATE 0]"). - * Return values correspond to their libc counterparts (if any). - */ -ssize_t ber_tlv_tag_snprint(ber_tlv_tag_t tag, char *buf, size_t buflen); -ssize_t ber_tlv_tag_fwrite(ber_tlv_tag_t tag, FILE *); -char *ber_tlv_tag_string(ber_tlv_tag_t tag); - - -/* - * This function tries to fetch the tag from the input stream. - * RETURN VALUES: - * 0: More data expected than bufptr contains. - * -1: Fatal error deciphering tag. - * >0: Number of bytes used from bufptr. tag_r will contain the tag. - */ -ssize_t ber_fetch_tag(const void *bufptr, size_t size, ber_tlv_tag_t *tag_r); - -/* - * This function serializes the tag (T from TLV) in BER format. - * It always returns number of bytes necessary to represent the tag, - * it is a caller's responsibility to check the return value - * against the supplied buffer's size. - */ -size_t ber_tlv_tag_serialize(ber_tlv_tag_t tag, void *bufptr, size_t size); - -#ifdef __cplusplus -} -#endif - -#endif /* _BER_TLV_TAG_H_ */ diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/constr_CHOICE.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/constr_CHOICE.c deleted file mode 100644 index 86dcbb0..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/constr_CHOICE.c +++ /dev/null @@ -1,1533 +0,0 @@ -/* - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include - -/* - * Number of bytes left for this structure. - * (ctx->left) indicates the number of bytes _transferred_ for the structure. - * (size) contains the number of bytes in the buffer passed. - */ -#define LEFT ((size<(size_t)ctx->left)?size:(size_t)ctx->left) - -/* - * If the subprocessor function returns with an indication that it wants - * more data, it may well be a fatal decoding problem, because the - * size is constrained by the 's L, even if the buffer size allows - * reading more data. - * For example, consider the buffer containing the following TLVs: - * ... - * The TLV length clearly indicates that one byte is expected in V, but - * if the V processor returns with "want more data" even if the buffer - * contains way more data than the V processor have seen. - */ -#define SIZE_VIOLATION (ctx->left >= 0 && (size_t)ctx->left <= size) - -/* - * This macro "eats" the part of the buffer which is definitely "consumed", - * i.e. was correctly converted into local representation or rightfully skipped. - */ -#undef ADVANCE -#define ADVANCE(num_bytes) do { \ - size_t num = num_bytes; \ - ptr = ((const char *)ptr) + num;\ - size -= num; \ - if(ctx->left >= 0) \ - ctx->left -= num; \ - consumed_myself += num; \ - } while(0) - -/* - * Switch to the next phase of parsing. - */ -#undef NEXT_PHASE -#define NEXT_PHASE(ctx) do { \ - ctx->phase++; \ - ctx->step = 0; \ - } while(0) - -/* - * Return a standardized complex structure. - */ -#undef RETURN -#define RETURN(_code) do { \ - rval.code = _code; \ - rval.consumed = consumed_myself;\ - return rval; \ - } while(0) - -/* - * See the definitions. - */ -static unsigned _fetch_present_idx(const void *struct_ptr, unsigned off, - unsigned size); -static void _set_present_idx(void *sptr, unsigned offset, unsigned size, - unsigned pres); -static const void *_get_member_ptr(const asn_TYPE_descriptor_t *, - const void *sptr, asn_TYPE_member_t **elm, - unsigned *present); - -/* - * Tags are canonically sorted in the tag to member table. - */ -static int -_search4tag(const void *ap, const void *bp) { - const asn_TYPE_tag2member_t *a = (const asn_TYPE_tag2member_t *)ap; - const asn_TYPE_tag2member_t *b = (const asn_TYPE_tag2member_t *)bp; - - int a_class = BER_TAG_CLASS(a->el_tag); - int b_class = BER_TAG_CLASS(b->el_tag); - - if(a_class == b_class) { - ber_tlv_tag_t a_value = BER_TAG_VALUE(a->el_tag); - ber_tlv_tag_t b_value = BER_TAG_VALUE(b->el_tag); - - if(a_value == b_value) - return 0; - else if(a_value < b_value) - return -1; - else - return 1; - } else if(a_class < b_class) { - return -1; - } else { - return 1; - } -} - -/* - * The decoder of the CHOICE type. - */ -asn_dec_rval_t -CHOICE_decode_ber(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **struct_ptr, - const void *ptr, size_t size, int tag_mode) { - /* - * Bring closer parts of structure description. - */ - const asn_CHOICE_specifics_t *specs = - (const asn_CHOICE_specifics_t *)td->specifics; - asn_TYPE_member_t *elements = td->elements; - - /* - * Parts of the structure being constructed. - */ - void *st = *struct_ptr; /* Target structure. */ - asn_struct_ctx_t *ctx; /* Decoder context */ - - ber_tlv_tag_t tlv_tag; /* T from TLV */ - ssize_t tag_len; /* Length of TLV's T */ - asn_dec_rval_t rval; /* Return code from subparsers */ - - ssize_t consumed_myself = 0; /* Consumed bytes from ptr */ - - ASN_DEBUG("Decoding %s as CHOICE", td->name); - - /* - * Create the target structure if it is not present already. - */ - if(st == 0) { - st = *struct_ptr = CALLOC(1, specs->struct_size); - if(st == 0) { - RETURN(RC_FAIL); - } - } - - /* - * Restore parsing context. - */ - ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset); - - /* - * Start to parse where left previously - */ - switch(ctx->phase) { - case 0: - /* - * PHASE 0. - * Check that the set of tags associated with given structure - * perfectly fits our expectations. - */ - - if(tag_mode || td->tags_count) { - rval = ber_check_tags(opt_codec_ctx, td, ctx, ptr, size, - tag_mode, -1, &ctx->left, 0); - if(rval.code != RC_OK) { - ASN_DEBUG("%s tagging check failed: %d", - td->name, rval.code); - return rval; - } - - if(ctx->left >= 0) { - /* ?Substracted below! */ - ctx->left += rval.consumed; - } - ADVANCE(rval.consumed); - } else { - ctx->left = -1; - } - - NEXT_PHASE(ctx); - - ASN_DEBUG("Structure consumes %ld bytes, buffer %ld", - (long)ctx->left, (long)size); - - /* Fall through */ - case 1: - /* - * Fetch the T from TLV. - */ - tag_len = ber_fetch_tag(ptr, LEFT, &tlv_tag); - ASN_DEBUG("In %s CHOICE tag length %d", td->name, (int)tag_len); - switch(tag_len) { - case 0: if(!SIZE_VIOLATION) RETURN(RC_WMORE); - /* Fall through */ - case -1: RETURN(RC_FAIL); - } - - do { - const asn_TYPE_tag2member_t *t2m; - asn_TYPE_tag2member_t key; - - key.el_tag = tlv_tag; - t2m = (const asn_TYPE_tag2member_t *)bsearch(&key, - specs->tag2el, specs->tag2el_count, - sizeof(specs->tag2el[0]), _search4tag); - if(t2m) { - /* - * Found the element corresponding to the tag. - */ - NEXT_PHASE(ctx); - ctx->step = t2m->el_no; - break; - } else if(specs->ext_start == -1) { - ASN_DEBUG("Unexpected tag %s " - "in non-extensible CHOICE %s", - ber_tlv_tag_string(tlv_tag), td->name); - RETURN(RC_FAIL); - } else { - /* Skip this tag */ - ssize_t skip; - - ASN_DEBUG("Skipping unknown tag %s", - ber_tlv_tag_string(tlv_tag)); - - skip = ber_skip_length(opt_codec_ctx, - BER_TLV_CONSTRUCTED(ptr), - (const char *)ptr + tag_len, - LEFT - tag_len); - - switch(skip) { - case 0: if(!SIZE_VIOLATION) RETURN(RC_WMORE); - /* Fall through */ - case -1: RETURN(RC_FAIL); - } - - ADVANCE(skip + tag_len); - RETURN(RC_OK); - } - } while(0); - - case 2: - /* - * PHASE 2. - * Read in the element. - */ - do { - asn_TYPE_member_t *elm;/* CHOICE's element */ - void *memb_ptr; /* Pointer to the member */ - void **memb_ptr2; /* Pointer to that pointer */ - - elm = &elements[ctx->step]; - - /* - * Compute the position of the member inside a structure, - * and also a type of containment (it may be contained - * as pointer or using inline inclusion). - */ - if(elm->flags & ATF_POINTER) { - /* Member is a pointer to another structure */ - memb_ptr2 = (void **)((char *)st + elm->memb_offset); - } else { - /* - * A pointer to a pointer - * holding the start of the structure - */ - memb_ptr = (char *)st + elm->memb_offset; - memb_ptr2 = &memb_ptr; - } - /* Set presence to be able to free it properly at any time */ - _set_present_idx(st, specs->pres_offset, - specs->pres_size, ctx->step + 1); - /* - * Invoke the member fetch routine according to member's type - */ - rval = elm->type->op->ber_decoder(opt_codec_ctx, elm->type, - memb_ptr2, ptr, LEFT, elm->tag_mode); - switch(rval.code) { - case RC_OK: - break; - case RC_WMORE: /* More data expected */ - if(!SIZE_VIOLATION) { - ADVANCE(rval.consumed); - RETURN(RC_WMORE); - } - RETURN(RC_FAIL); - case RC_FAIL: /* Fatal error */ - RETURN(rval.code); - } /* switch(rval) */ - - ADVANCE(rval.consumed); - } while(0); - - NEXT_PHASE(ctx); - - /* Fall through */ - case 3: - ASN_DEBUG("CHOICE %s Leftover: %ld, size = %ld, tm=%d, tc=%d", - td->name, (long)ctx->left, (long)size, - tag_mode, td->tags_count); - - if(ctx->left > 0) { - /* - * The type must be fully decoded - * by the CHOICE member-specific decoder. - */ - RETURN(RC_FAIL); - } - - if(ctx->left == -1 - && !(tag_mode || td->tags_count)) { - /* - * This is an untagged CHOICE. - * It doesn't contain nothing - * except for the member itself, including all its tags. - * The decoding is completed. - */ - NEXT_PHASE(ctx); - break; - } - - /* - * Read in the "end of data chunks"'s. - */ - while(ctx->left < 0) { - ssize_t tl; - - tl = ber_fetch_tag(ptr, LEFT, &tlv_tag); - switch(tl) { - case 0: if(!SIZE_VIOLATION) RETURN(RC_WMORE); - /* Fall through */ - case -1: RETURN(RC_FAIL); - } - - /* - * Expected <0><0>... - */ - if(((const uint8_t *)ptr)[0] == 0) { - if(LEFT < 2) { - if(SIZE_VIOLATION) - RETURN(RC_FAIL); - else - RETURN(RC_WMORE); - } else if(((const uint8_t *)ptr)[1] == 0) { - /* - * Correctly finished with <0><0>. - */ - ADVANCE(2); - ctx->left++; - continue; - } - } else { - ASN_DEBUG("Unexpected continuation in %s", - td->name); - RETURN(RC_FAIL); - } - - /* UNREACHABLE */ - } - - NEXT_PHASE(ctx); - case 4: - /* No meaningful work here */ - break; - } - - RETURN(RC_OK); -} - -asn_enc_rval_t -CHOICE_encode_der(const asn_TYPE_descriptor_t *td, const void *sptr, - int tag_mode, ber_tlv_tag_t tag, asn_app_consume_bytes_f *cb, - void *app_key) { - const asn_CHOICE_specifics_t *specs = (const asn_CHOICE_specifics_t *)td->specifics; - asn_TYPE_member_t *elm; /* CHOICE element */ - asn_enc_rval_t erval = {0,0,0}; - const void *memb_ptr; - size_t computed_size = 0; - unsigned present; - - if(!sptr) ASN__ENCODE_FAILED; - - ASN_DEBUG("%s %s as CHOICE", - cb?"Encoding":"Estimating", td->name); - - present = _fetch_present_idx(sptr, - specs->pres_offset, specs->pres_size); - - /* - * If the structure was not initialized, it cannot be encoded: - * can't deduce what to encode in the choice type. - */ - if(present == 0 || present > td->elements_count) { - if(present == 0 && td->elements_count == 0) { - /* The CHOICE is empty?! */ - erval.encoded = 0; - ASN__ENCODED_OK(erval); - } - ASN__ENCODE_FAILED; - } - - /* - * Seek over the present member of the structure. - */ - elm = &td->elements[present-1]; - if(elm->flags & ATF_POINTER) { - memb_ptr = - *(const void *const *)((const char *)sptr + elm->memb_offset); - if(memb_ptr == 0) { - if(elm->optional) { - erval.encoded = 0; - ASN__ENCODED_OK(erval); - } - /* Mandatory element absent */ - ASN__ENCODE_FAILED; - } - } else { - memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); - } - - /* - * If the CHOICE itself is tagged EXPLICIT: - * T ::= [2] EXPLICIT CHOICE { ... } - * Then emit the appropriate tags. - */ - if(tag_mode == 1 || td->tags_count) { - /* - * For this, we need to pre-compute the member. - */ - ssize_t ret; - - /* Encode member with its tag */ - erval = elm->type->op->der_encoder(elm->type, memb_ptr, - elm->tag_mode, elm->tag, 0, 0); - if(erval.encoded == -1) - return erval; - - /* Encode CHOICE with parent or my own tag */ - ret = der_write_tags(td, erval.encoded, tag_mode, 1, tag, - cb, app_key); - if(ret == -1) - ASN__ENCODE_FAILED; - computed_size += ret; - } - - /* - * Encode the single underlying member. - */ - erval = elm->type->op->der_encoder(elm->type, memb_ptr, - elm->tag_mode, elm->tag, cb, app_key); - if(erval.encoded == -1) - return erval; - - ASN_DEBUG("Encoded CHOICE member in %ld bytes (+%ld)", - (long)erval.encoded, (long)computed_size); - - erval.encoded += computed_size; - - return erval; -} - -ber_tlv_tag_t -CHOICE_outmost_tag(const asn_TYPE_descriptor_t *td, const void *ptr, int tag_mode, ber_tlv_tag_t tag) { - const asn_CHOICE_specifics_t *specs = (const asn_CHOICE_specifics_t *)td->specifics; - unsigned present; - - assert(tag_mode == 0); (void)tag_mode; - assert(tag == 0); (void)tag; - - /* - * Figure out which CHOICE element is encoded. - */ - present = _fetch_present_idx(ptr, specs->pres_offset, specs->pres_size); - - if(present > 0 && present <= td->elements_count) { - const asn_TYPE_member_t *elm = &td->elements[present-1]; - const void *memb_ptr; - - if(elm->flags & ATF_POINTER) { - memb_ptr = *(const void * const *) - ((const char *)ptr + elm->memb_offset); - } else { - memb_ptr = (const void *) - ((const char *)ptr + elm->memb_offset); - } - - return asn_TYPE_outmost_tag(elm->type, memb_ptr, - elm->tag_mode, elm->tag); - } else { - return (ber_tlv_tag_t)-1; - } -} - -int -CHOICE_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const asn_CHOICE_specifics_t *specs = - (const asn_CHOICE_specifics_t *)td->specifics; - unsigned present; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - /* - * Figure out which CHOICE element is encoded. - */ - present = _fetch_present_idx(sptr, specs->pres_offset,specs->pres_size); - if(present > 0 && present <= td->elements_count) { - asn_TYPE_member_t *elm = &td->elements[present-1]; - const void *memb_ptr; - - if(elm->flags & ATF_POINTER) { - memb_ptr = *(const void * const *)((const char *)sptr + elm->memb_offset); - if(!memb_ptr) { - if(elm->optional) - return 0; - ASN__CTFAIL(app_key, td, sptr, - "%s: mandatory CHOICE element %s absent (%s:%d)", - td->name, elm->name, __FILE__, __LINE__); - return -1; - } - } else { - memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); - } - - if(elm->encoding_constraints.general_constraints) { - return elm->encoding_constraints.general_constraints(elm->type, memb_ptr, - ctfailcb, app_key); - } else { - return elm->type->encoding_constraints.general_constraints(elm->type, - memb_ptr, ctfailcb, app_key); - } - } else { - ASN__CTFAIL(app_key, td, sptr, - "%s: no CHOICE element given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } -} - -#undef XER_ADVANCE -#define XER_ADVANCE(num_bytes) do { \ - size_t num = num_bytes; \ - buf_ptr = (const void *)(((const char *)buf_ptr) + num); \ - size -= num; \ - consumed_myself += num; \ - } while(0) - -/* - * Decode the XER (XML) data. - */ -asn_dec_rval_t -CHOICE_decode_xer(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **struct_ptr, - const char *opt_mname, const void *buf_ptr, size_t size) { - /* - * Bring closer parts of structure description. - */ - const asn_CHOICE_specifics_t *specs = (const asn_CHOICE_specifics_t *)td->specifics; - const char *xml_tag = opt_mname ? opt_mname : td->xml_tag; - - /* - * Parts of the structure being constructed. - */ - void *st = *struct_ptr; /* Target structure. */ - asn_struct_ctx_t *ctx; /* Decoder context */ - - asn_dec_rval_t rval; /* Return value of a decoder */ - ssize_t consumed_myself = 0; /* Consumed bytes from ptr */ - size_t edx; /* Element index */ - - /* - * Create the target structure if it is not present already. - */ - if(st == 0) { - st = *struct_ptr = CALLOC(1, specs->struct_size); - if(st == 0) RETURN(RC_FAIL); - } - - /* - * Restore parsing context. - */ - ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset); - if(ctx->phase == 0 && !*xml_tag) - ctx->phase = 1; /* Skip the outer tag checking phase */ - - /* - * Phases of XER/XML processing: - * Phase 0: Check that the opening tag matches our expectations. - * Phase 1: Processing body and reacting on closing tag. - * Phase 2: Processing inner type. - * Phase 3: Only waiting for closing tag. - * Phase 4: Skipping unknown extensions. - * Phase 5: PHASED OUT - */ - for(edx = ctx->step; ctx->phase <= 4;) { - pxer_chunk_type_e ch_type; /* XER chunk type */ - ssize_t ch_size; /* Chunk size */ - xer_check_tag_e tcv; /* Tag check value */ - asn_TYPE_member_t *elm; - - /* - * Go inside the member. - */ - if(ctx->phase == 2) { - asn_dec_rval_t tmprval; - void *memb_ptr; /* Pointer to the member */ - void **memb_ptr2; /* Pointer to that pointer */ - unsigned old_present; - - elm = &td->elements[edx]; - - if(elm->flags & ATF_POINTER) { - /* Member is a pointer to another structure */ - memb_ptr2 = (void **)((char *)st - + elm->memb_offset); - } else { - memb_ptr = (char *)st + elm->memb_offset; - memb_ptr2 = &memb_ptr; - } - - /* Start/Continue decoding the inner member */ - tmprval = elm->type->op->xer_decoder(opt_codec_ctx, - elm->type, memb_ptr2, elm->name, - buf_ptr, size); - XER_ADVANCE(tmprval.consumed); - ASN_DEBUG("XER/CHOICE: itdf: [%s] code=%d", - elm->type->name, tmprval.code); - old_present = _fetch_present_idx(st, - specs->pres_offset, specs->pres_size); - assert(old_present == 0 || old_present == edx + 1); - /* Record what we've got */ - _set_present_idx(st, - specs->pres_offset, specs->pres_size, edx + 1); - if(tmprval.code != RC_OK) - RETURN(tmprval.code); - ctx->phase = 3; - /* Fall through */ - } - - /* No need to wait for closing tag; special mode. */ - if(ctx->phase == 3 && !*xml_tag) { - ctx->phase = 5; /* Phase out */ - RETURN(RC_OK); - } - - /* - * Get the next part of the XML stream. - */ - ch_size = xer_next_token(&ctx->context, buf_ptr, size, &ch_type); - if(ch_size == -1) { - RETURN(RC_FAIL); - } else { - switch(ch_type) { - case PXER_WMORE: - RETURN(RC_WMORE); - case PXER_COMMENT: /* Got XML comment */ - case PXER_TEXT: /* Ignore free-standing text */ - XER_ADVANCE(ch_size); /* Skip silently */ - continue; - case PXER_TAG: - break; /* Check the rest down there */ - } - } - - tcv = xer_check_tag(buf_ptr, ch_size, xml_tag); - ASN_DEBUG("XER/CHOICE checked [%c%c%c%c] vs [%s], tcv=%d", - ch_size>0?((const uint8_t *)buf_ptr)[0]:'?', - ch_size>1?((const uint8_t *)buf_ptr)[1]:'?', - ch_size>2?((const uint8_t *)buf_ptr)[2]:'?', - ch_size>3?((const uint8_t *)buf_ptr)[3]:'?', - xml_tag, tcv); - - /* Skip the extensions section */ - if(ctx->phase == 4) { - ASN_DEBUG("skip_unknown(%d, %ld)", - tcv, (long)ctx->left); - switch(xer_skip_unknown(tcv, &ctx->left)) { - case -1: - ctx->phase = 5; - RETURN(RC_FAIL); - case 1: - ctx->phase = 3; - /* Fall through */ - case 0: - XER_ADVANCE(ch_size); - continue; - case 2: - ctx->phase = 3; - break; - } - } - - switch(tcv) { - case XCT_BOTH: - break; /* No CHOICE? */ - case XCT_CLOSING: - if(ctx->phase != 3) - break; - XER_ADVANCE(ch_size); - ctx->phase = 5; /* Phase out */ - RETURN(RC_OK); - case XCT_OPENING: - if(ctx->phase == 0) { - XER_ADVANCE(ch_size); - ctx->phase = 1; /* Processing body phase */ - continue; - } - /* Fall through */ - case XCT_UNKNOWN_OP: - case XCT_UNKNOWN_BO: - - if(ctx->phase != 1) - break; /* Really unexpected */ - - /* - * Search which inner member corresponds to this tag. - */ - for(edx = 0; edx < td->elements_count; edx++) { - elm = &td->elements[edx]; - tcv = xer_check_tag(buf_ptr,ch_size,elm->name); - switch(tcv) { - case XCT_BOTH: - case XCT_OPENING: - /* - * Process this member. - */ - ctx->step = edx; - ctx->phase = 2; - break; - case XCT_UNKNOWN_OP: - case XCT_UNKNOWN_BO: - continue; - default: - edx = td->elements_count; - break; /* Phase out */ - } - break; - } - if(edx != td->elements_count) - continue; - - /* It is expected extension */ - if(specs->ext_start != -1) { - ASN_DEBUG("Got anticipated extension"); - /* - * Check for (XCT_BOTH or XCT_UNKNOWN_BO) - * By using a mask. Only record a pure - * tags. - */ - if(tcv & XCT_CLOSING) { - /* Found without body */ - ctx->phase = 3; /* Terminating */ - } else { - ctx->left = 1; - ctx->phase = 4; /* Skip ...'s */ - } - XER_ADVANCE(ch_size); - continue; - } - - /* Fall through */ - default: - break; - } - - ASN_DEBUG("Unexpected XML tag [%c%c%c%c] in CHOICE [%s]" - " (ph=%d, tag=%s)", - ch_size>0?((const uint8_t *)buf_ptr)[0]:'?', - ch_size>1?((const uint8_t *)buf_ptr)[1]:'?', - ch_size>2?((const uint8_t *)buf_ptr)[2]:'?', - ch_size>3?((const uint8_t *)buf_ptr)[3]:'?', - td->name, ctx->phase, xml_tag); - break; - } - - ctx->phase = 5; /* Phase out, just in case */ - RETURN(RC_FAIL); -} - - -asn_enc_rval_t -CHOICE_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, - enum xer_encoder_flags_e flags, asn_app_consume_bytes_f *cb, - void *app_key) { - const asn_CHOICE_specifics_t *specs = - (const asn_CHOICE_specifics_t *)td->specifics; - asn_enc_rval_t er = {0,0,0}; - unsigned present = 0; - - if(!sptr) - ASN__ENCODE_FAILED; - - /* - * Figure out which CHOICE element is encoded. - */ - present = _fetch_present_idx(sptr, specs->pres_offset,specs->pres_size); - - if(present == 0 || present > td->elements_count) { - ASN__ENCODE_FAILED; - } else { - asn_enc_rval_t tmper = {0,0,0}; - asn_TYPE_member_t *elm = &td->elements[present-1]; - const void *memb_ptr = NULL; - const char *mname = elm->name; - unsigned int mlen = strlen(mname); - - if(elm->flags & ATF_POINTER) { - memb_ptr = - *(const void *const *)((const char *)sptr + elm->memb_offset); - if(!memb_ptr) ASN__ENCODE_FAILED; - } else { - memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); - } - - er.encoded = 0; - - if(!(flags & XER_F_CANONICAL)) ASN__TEXT_INDENT(1, ilevel); - ASN__CALLBACK3("<", 1, mname, mlen, ">", 1); - - tmper = elm->type->op->xer_encoder(elm->type, memb_ptr, - ilevel + 1, flags, cb, app_key); - if(tmper.encoded == -1) return tmper; - er.encoded += tmper.encoded; - - ASN__CALLBACK3("", 1); - } - - if(!(flags & XER_F_CANONICAL)) ASN__TEXT_INDENT(1, ilevel - 1); - - ASN__ENCODED_OK(er); -cb_failed: - ASN__ENCODE_FAILED; -} - -asn_dec_rval_t -CHOICE_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, - asn_per_data_t *pd) { - const asn_CHOICE_specifics_t *specs = - (const asn_CHOICE_specifics_t *)td->specifics; - asn_dec_rval_t rv; - const asn_per_constraint_t *ct; - asn_TYPE_member_t *elm; /* CHOICE's element */ - void *memb_ptr; - void **memb_ptr2; - void *st = *sptr; - int value; - - if(ASN__STACK_OVERFLOW_CHECK(opt_codec_ctx)) - ASN__DECODE_FAILED; - - /* - * Create the target structure if it is not present already. - */ - if(!st) { - st = *sptr = CALLOC(1, specs->struct_size); - if(!st) ASN__DECODE_FAILED; - } - - if(constraints) ct = &constraints->value; - else if(td->encoding_constraints.per_constraints) ct = &td->encoding_constraints.per_constraints->value; - else ct = 0; - - if(ct && ct->flags & APC_EXTENSIBLE) { - value = per_get_few_bits(pd, 1); - if(value < 0) ASN__DECODE_STARVED; - if(value) ct = 0; /* Not restricted */ - } - - if(ct && ct->range_bits >= 0) { - value = per_get_few_bits(pd, ct->range_bits); - if(value < 0) ASN__DECODE_STARVED; - ASN_DEBUG("CHOICE %s got index %d in range %d", - td->name, value, ct->range_bits); - if(value > ct->upper_bound) - ASN__DECODE_FAILED; - } else { - if(specs->ext_start == -1) - ASN__DECODE_FAILED; - value = uper_get_nsnnwn(pd); - if(value < 0) ASN__DECODE_STARVED; - value += specs->ext_start; - if((unsigned)value >= td->elements_count) - ASN__DECODE_FAILED; - } - - /* Adjust if canonical order is different from natural order */ - if(specs->from_canonical_order) { - ASN_DEBUG("CHOICE presence from wire %d", value); - value = specs->from_canonical_order[value]; - ASN_DEBUG("CHOICE presence index effective %d", value); - } - - /* Set presence to be able to free it later */ - _set_present_idx(st, specs->pres_offset, specs->pres_size, value + 1); - - elm = &td->elements[value]; - if(elm->flags & ATF_POINTER) { - /* Member is a pointer to another structure */ - memb_ptr2 = (void **)((char *)st + elm->memb_offset); - } else { - memb_ptr = (char *)st + elm->memb_offset; - memb_ptr2 = &memb_ptr; - } - ASN_DEBUG("Discovered CHOICE %s encodes %s", td->name, elm->name); - - if(ct && ct->range_bits >= 0) { - rv = elm->type->op->uper_decoder(opt_codec_ctx, elm->type, - elm->encoding_constraints.per_constraints, memb_ptr2, pd); - } else { - rv = uper_open_type_get(opt_codec_ctx, elm->type, - elm->encoding_constraints.per_constraints, memb_ptr2, pd); - } - - if(rv.code != RC_OK) - ASN_DEBUG("Failed to decode %s in %s (CHOICE) %d", - elm->name, td->name, rv.code); - return rv; -} - -asn_enc_rval_t -CHOICE_encode_uper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, const void *sptr, - asn_per_outp_t *po) { - const asn_CHOICE_specifics_t *specs = (const asn_CHOICE_specifics_t *)td->specifics; - asn_TYPE_member_t *elm; /* CHOICE's element */ - const asn_per_constraint_t *ct; - const void *memb_ptr; - unsigned present; - int present_enc; - - if(!sptr) ASN__ENCODE_FAILED; - - ASN_DEBUG("Encoding %s as CHOICE", td->name); - - if(constraints) ct = &constraints->value; - else if(td->encoding_constraints.per_constraints) - ct = &td->encoding_constraints.per_constraints->value; - else ct = 0; - - present = _fetch_present_idx(sptr, specs->pres_offset, specs->pres_size); - - /* - * If the structure was not initialized properly, it cannot be encoded: - * can't deduce what to encode in the choice type. - */ - if(present == 0 || present > td->elements_count) - ASN__ENCODE_FAILED; - else - present--; - - ASN_DEBUG("Encoding %s CHOICE element %d", td->name, present); - - /* Adjust if canonical order is different from natural order */ - if(specs->to_canonical_order) - present_enc = specs->to_canonical_order[present]; - else - present_enc = present; - - if(ct && ct->range_bits >= 0) { - if(present_enc < ct->lower_bound - || present_enc > ct->upper_bound) { - if(ct->flags & APC_EXTENSIBLE) { - ASN_DEBUG( - "CHOICE member %d (enc %d) is an extension (%ld..%ld)", - present, present_enc, ct->lower_bound, ct->upper_bound); - if(per_put_few_bits(po, 1, 1)) - ASN__ENCODE_FAILED; - } else { - ASN__ENCODE_FAILED; - } - ct = 0; - } - } - if(ct && ct->flags & APC_EXTENSIBLE) { - ASN_DEBUG("CHOICE member %d (enc %d) is not an extension (%ld..%ld)", - present, present_enc, ct->lower_bound, ct->upper_bound); - if(per_put_few_bits(po, 0, 1)) - ASN__ENCODE_FAILED; - } - - - elm = &td->elements[present]; - ASN_DEBUG("CHOICE member \"%s\" %d (as %d)", elm->name, present, - present_enc); - if(elm->flags & ATF_POINTER) { - /* Member is a pointer to another structure */ - memb_ptr = - *(const void *const *)((const char *)sptr + elm->memb_offset); - if(!memb_ptr) ASN__ENCODE_FAILED; - } else { - memb_ptr = (const char *)sptr + elm->memb_offset; - } - - if(ct && ct->range_bits >= 0) { - if(per_put_few_bits(po, present_enc, ct->range_bits)) - ASN__ENCODE_FAILED; - - return elm->type->op->uper_encoder( - elm->type, elm->encoding_constraints.per_constraints, memb_ptr, po); - } else { - asn_enc_rval_t rval = {0,0,0}; - if(specs->ext_start == -1) ASN__ENCODE_FAILED; - if(uper_put_nsnnwn(po, present_enc - specs->ext_start)) - ASN__ENCODE_FAILED; - if(uper_open_type_put(elm->type, - elm->encoding_constraints.per_constraints, - memb_ptr, po)) - ASN__ENCODE_FAILED; - rval.encoded = 0; - ASN__ENCODED_OK(rval); - } -} - -asn_dec_rval_t -CHOICE_decode_aper(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, asn_per_data_t *pd) { - const asn_CHOICE_specifics_t *specs = (const asn_CHOICE_specifics_t *)td->specifics; - asn_dec_rval_t rv; - const asn_per_constraint_t *ct; - const asn_per_constraint_t *ext_ct = NULL; - asn_TYPE_member_t *elm; /* CHOICE's element */ - void *memb_ptr; - void **memb_ptr2; - void *st = *sptr; - int value; - - if(ASN__STACK_OVERFLOW_CHECK(opt_codec_ctx)) - ASN__DECODE_FAILED; - - /* - * Create the target structure if it is not present already. - */ - if(!st) { - st = *sptr = CALLOC(1, specs->struct_size); - if(!st) ASN__DECODE_FAILED; - } - - if(constraints) ct = &constraints->value; - else if(td->encoding_constraints.per_constraints) - ct = &td->encoding_constraints.per_constraints->value; - else ct = 0; - - if(ct && ct->flags & APC_EXTENSIBLE) { - value = per_get_few_bits(pd, 1); - if(value < 0) ASN__DECODE_STARVED; - if(value) { - ext_ct = ct; - ct = 0; /* Not restricted */ - } - } - - - if(ct && ct->range_bits >= 0) { - value = per_get_few_bits(pd, ct->range_bits); - if(value < 0) ASN__DECODE_STARVED; - ASN_DEBUG("CHOICE %s got index %d in range %d", - td->name, value, ct->range_bits); - if(value > ct->upper_bound) - ASN__DECODE_FAILED; - } else { - if(specs->ext_start == -1) - ASN__DECODE_FAILED; - value = aper_get_nsnnwn(pd, ext_ct->range_bits); - if(value < 0) ASN__DECODE_STARVED; - value += specs->ext_start; - if((unsigned)value >= td->elements_count) - ASN__DECODE_FAILED; - } - - /* Adjust if canonical order is different from natural order */ - if(specs->from_canonical_order) - value = specs->from_canonical_order[value]; - - /* Set presence to be able to free it later */ - _set_present_idx(st, specs->pres_offset, specs->pres_size, value + 1); - - elm = &td->elements[value]; - if(elm->flags & ATF_POINTER) { - /* Member is a pointer to another structure */ - memb_ptr2 = (void **)((char *)st + elm->memb_offset); - } else { - memb_ptr = (char *)st + elm->memb_offset; - memb_ptr2 = &memb_ptr; - } - ASN_DEBUG("Discovered CHOICE %s encodes %s", td->name, elm->name); - - if(ct && ct->range_bits >= 0) { - rv = elm->type->op->aper_decoder(opt_codec_ctx, elm->type, - elm->encoding_constraints.per_constraints, memb_ptr2, pd); - } else { - rv = aper_open_type_get(opt_codec_ctx, elm->type, - elm->encoding_constraints.per_constraints, memb_ptr2, pd); - } - - if(rv.code != RC_OK) - ASN_DEBUG("Failed to decode %s in %s (CHOICE) %d", - elm->name, td->name, rv.code); - return rv; -} - -asn_enc_rval_t -CHOICE_encode_aper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_per_outp_t *po) { - const asn_CHOICE_specifics_t *specs = (const asn_CHOICE_specifics_t *)td->specifics; - const asn_TYPE_member_t *elm; /* CHOICE's element */ - const asn_per_constraint_t *ct = NULL; - const asn_per_constraint_t *ext_ct = NULL; - const void *memb_ptr; - unsigned present; - int present_enc; - - if(!sptr) ASN__ENCODE_FAILED; - - ASN_DEBUG("Encoding %s as CHOICE using ALIGNED PER", td->name); - - if(constraints) ct = &constraints->value; - else if(td->encoding_constraints.per_constraints) - ct = &td->encoding_constraints.per_constraints->value; - else ct = NULL; - - present = _fetch_present_idx(sptr, - specs->pres_offset, specs->pres_size); - - /* - * If the structure was not initialized properly, it cannot be encoded: - * can't deduce what to encode in the choice type. - */ - if(present <= 0 || (unsigned)present > td->elements_count) - ASN__ENCODE_FAILED; - else - present--; - - /* Adjust if canonical order is different from natural order */ - if(specs->to_canonical_order) - present_enc = specs->to_canonical_order[present]; - else - present_enc = present; - - ASN_DEBUG("Encoding %s CHOICE element %d", td->name, present); - - if(ct && (ct->range_bits >= 0)) { - // Value is not within the range of the primary values ? - if(present < ct->lower_bound || present > ct->upper_bound) { - if(ct->flags & APC_EXTENSIBLE) { - ASN_DEBUG("CHOICE member %d (enc %d) is an extension (%ld..%ld)", - present, present_enc, ct->lower_bound, ct->upper_bound); - // X691/23.5 Extension marker = 1 - if(per_put_few_bits(po, 1, 1)) { - ASN__ENCODE_FAILED; - } - } else { - ASN__ENCODE_FAILED; - } - // no more need of constraint. - ext_ct = ct; - ct = NULL; - } - } - - if(ct && (ct->flags & APC_EXTENSIBLE)) { - ASN_DEBUG("CHOICE member %d (enc %d) is not an extension (%ld..%ld)", - present, present, ct->lower_bound, ct->upper_bound); - // X691.23.5 Extension marker = 0 - if(per_put_few_bits(po, 0, 1)) { - ASN__ENCODE_FAILED; - } - } - - elm = &td->elements[present]; - if(elm->flags & ATF_POINTER) { - /* Member is a pointer to another structure */ - memb_ptr = *(const void *const *)((const char *)sptr + elm->memb_offset); - if(!memb_ptr) ASN__ENCODE_FAILED; - } else { - memb_ptr = (const char *)sptr + elm->memb_offset; - } - - if(ct && (ct->range_bits >= 0)) { - // By construction (ct != 0), the alternative value is a non extended one. - // X691/23.7 X691/23.6 alternative value encoded as a range_bits bits value. - if(per_put_few_bits(po, present_enc, ct->range_bits)) - ASN__ENCODE_FAILED; - - return elm->type->op->aper_encoder(elm->type, elm->encoding_constraints.per_constraints, - memb_ptr, po); - } else { - asn_enc_rval_t rval = {0,0,0}; - if(specs->ext_start == -1) - ASN__ENCODE_FAILED; - // X691/23.8 normally encoded as a small non negative whole number - - if(ext_ct && aper_put_nsnnwn(po, ext_ct->range_bits, present_enc - specs->ext_start)) - ASN__ENCODE_FAILED; - if(aper_open_type_put(elm->type, elm->encoding_constraints.per_constraints, - memb_ptr, po)) - ASN__ENCODE_FAILED; - rval.encoded = 0; - ASN__ENCODED_OK(rval); - } -} - -int -CHOICE_print(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, - asn_app_consume_bytes_f *cb, void *app_key) { - const asn_CHOICE_specifics_t *specs = (const asn_CHOICE_specifics_t *)td->specifics; - unsigned present; - - if(!sptr) return (cb("", 8, app_key) < 0) ? -1 : 0; - - /* - * Figure out which CHOICE element is encoded. - */ - present = _fetch_present_idx(sptr, specs->pres_offset,specs->pres_size); - - /* - * Print that element. - */ - if(present > 0 && present <= td->elements_count) { - asn_TYPE_member_t *elm = &td->elements[present-1]; - const void *memb_ptr; - - if(elm->flags & ATF_POINTER) { - memb_ptr = *(const void * const *)((const char *)sptr + elm->memb_offset); - if(!memb_ptr) return (cb("", 8, app_key) < 0) ? -1 : 0; - } else { - memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); - } - - /* Print member's name and stuff */ - if(0) { - if(cb(elm->name, strlen(elm->name), app_key) < 0 - || cb(": ", 2, app_key) < 0) - return -1; - } - - return elm->type->op->print_struct(elm->type, memb_ptr, ilevel, - cb, app_key); - } else { - return (cb("", 8, app_key) < 0) ? -1 : 0; - } -} - -void -CHOICE_free(const asn_TYPE_descriptor_t *td, void *ptr, - enum asn_struct_free_method method) { - const asn_CHOICE_specifics_t *specs = - (const asn_CHOICE_specifics_t *)td->specifics; - unsigned present; - - if(!td || !ptr) - return; - - ASN_DEBUG("Freeing %s as CHOICE", td->name); - - /* - * Figure out which CHOICE element is encoded. - */ - present = _fetch_present_idx(ptr, specs->pres_offset, specs->pres_size); - - /* - * Free that element. - */ - if(present > 0 && present <= td->elements_count) { - asn_TYPE_member_t *elm = &td->elements[present-1]; - void *memb_ptr; - - if(elm->flags & ATF_POINTER) { - memb_ptr = *(void **)((char *)ptr + elm->memb_offset); - if(memb_ptr) - ASN_STRUCT_FREE(*elm->type, memb_ptr); - } else { - memb_ptr = (void *)((char *)ptr + elm->memb_offset); - ASN_STRUCT_FREE_CONTENTS_ONLY(*elm->type, memb_ptr); - } - } - - switch(method) { - case ASFM_FREE_EVERYTHING: - FREEMEM(ptr); - break; - case ASFM_FREE_UNDERLYING: - break; - case ASFM_FREE_UNDERLYING_AND_RESET: - memset(ptr, 0, specs->struct_size); - break; - } -} - - -/* - * The following functions functions offer protection against -fshort-enums, - * compatible with little- and big-endian machines. - * If assertion is triggered, either disable -fshort-enums, or add an entry - * here with the ->pres_size of your target stracture. - * Unless the target structure is packed, the ".present" member - * is guaranteed to be aligned properly. ASN.1 compiler itself does not - * produce packed code. - */ -static unsigned -_fetch_present_idx(const void *struct_ptr, unsigned pres_offset, - unsigned pres_size) { - const void *present_ptr; - unsigned present; - - present_ptr = ((const char *)struct_ptr) + pres_offset; - - switch(pres_size) { - case sizeof(int): present = *(const unsigned int *)present_ptr; break; - case sizeof(short): present = *(const unsigned short *)present_ptr; break; - case sizeof(char): present = *(const unsigned char *)present_ptr; break; - default: - /* ANSI C mandates enum to be equivalent to integer */ - assert(pres_size != sizeof(int)); - return 0; /* If not aborted, pass back safe value */ - } - - return present; -} - -static void -_set_present_idx(void *struct_ptr, unsigned pres_offset, unsigned pres_size, - unsigned present) { - void *present_ptr; - present_ptr = ((char *)struct_ptr) + pres_offset; - - switch(pres_size) { - case sizeof(int): *(unsigned int *)present_ptr = present; break; - case sizeof(short): *(unsigned short *)present_ptr = present; break; - case sizeof(char): *(unsigned char *)present_ptr = present; break; - default: - /* ANSI C mandates enum to be equivalent to integer */ - assert(pres_size != sizeof(int)); - } -} - -static const void * -_get_member_ptr(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_TYPE_member_t **elm_ptr, unsigned *present_out) { - const asn_CHOICE_specifics_t *specs = - (const asn_CHOICE_specifics_t *)td->specifics; - unsigned present; - - if(!sptr) { - *elm_ptr = NULL; - *present_out = 0; - return NULL; - } - - /* - * Figure out which CHOICE element is encoded. - */ - present = _fetch_present_idx(sptr, specs->pres_offset, specs->pres_size); - *present_out = present; - - /* - * The presence index is intentionally 1-based to avoid - * treating zeroed structure as a valid one. - */ - if(present > 0 && present <= td->elements_count) { - asn_TYPE_member_t *const elm = &td->elements[present - 1]; - const void *memb_ptr; - - if(elm->flags & ATF_POINTER) { - memb_ptr = - *(const void *const *)((const char *)sptr + elm->memb_offset); - } else { - memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); - } - *elm_ptr = elm; - return memb_ptr; - } else { - *elm_ptr = NULL; - return NULL; - } - -} - -int -CHOICE_compare(const asn_TYPE_descriptor_t *td, const void *aptr, const void *bptr) { - asn_TYPE_member_t *aelm; - asn_TYPE_member_t *belm; - unsigned apresent = 0; - unsigned bpresent = 0; - const void *amember = _get_member_ptr(td, aptr, &aelm, &apresent); - const void *bmember = _get_member_ptr(td, bptr, &belm, &bpresent); - - if(amember && bmember) { - if(apresent == bpresent) { - assert(aelm == belm); - return aelm->type->op->compare_struct(aelm->type, amember, bmember); - } else if(apresent < bpresent) { - return -1; - } else { - return 1; - } - } else if(!amember) { - return -1; - } else { - return 1; - } -} - -/* - * Return the 1-based choice variant presence index. - * Returns 0 in case of error. - */ -unsigned -CHOICE_variant_get_presence(const asn_TYPE_descriptor_t *td, const void *sptr) { - const asn_CHOICE_specifics_t *specs = - (const asn_CHOICE_specifics_t *)td->specifics; - return _fetch_present_idx(sptr, specs->pres_offset, specs->pres_size); -} - -/* - * Sets or resets the 1-based choice variant presence index. - * In case a previous index is not zero, the currently selected structure - * member is freed and zeroed-out first. - * Returns 0 on success and -1 on error. - */ -int -CHOICE_variant_set_presence(const asn_TYPE_descriptor_t *td, void *sptr, - unsigned present) { - const asn_CHOICE_specifics_t *specs = - (const asn_CHOICE_specifics_t *)td->specifics; - unsigned old_present; - - if(!sptr) { - return -1; - } - - if(present > td->elements_count) - return -1; - - old_present = - _fetch_present_idx(sptr, specs->pres_offset, specs->pres_size); - if(present == old_present) - return 0; - - if(old_present != 0) { - assert(old_present <= td->elements_count); - ASN_STRUCT_RESET(*td, sptr); - } - - _set_present_idx(sptr, specs->pres_offset, specs->pres_size, present); - - return 0; -} - - -asn_random_fill_result_t -CHOICE_random_fill(const asn_TYPE_descriptor_t *td, void **sptr, - const asn_encoding_constraints_t *constr, - size_t max_length) { - const asn_CHOICE_specifics_t *specs = - (const asn_CHOICE_specifics_t *)td->specifics; - asn_random_fill_result_t res; - asn_random_fill_result_t result_failed = {ARFILL_FAILED, 0}; - asn_random_fill_result_t result_skipped = {ARFILL_SKIPPED, 0}; - const asn_TYPE_member_t *elm; - unsigned present; - void *memb_ptr; /* Pointer to the member */ - void **memb_ptr2; /* Pointer to that pointer */ - void *st = *sptr; - - if(max_length == 0) return result_skipped; - - (void)constr; - - if(st == NULL) { - st = CALLOC(1, specs->struct_size); - if(st == NULL) { - return result_failed; - } - } - - present = asn_random_between(1, td->elements_count); - elm = &td->elements[present - 1]; - - if(elm->flags & ATF_POINTER) { - /* Member is a pointer to another structure */ - memb_ptr2 = (void **)((char *)st + elm->memb_offset); - } else { - memb_ptr = (char *)st + elm->memb_offset; - memb_ptr2 = &memb_ptr; - } - - res = elm->type->op->random_fill(elm->type, memb_ptr2, - &elm->encoding_constraints, max_length); - _set_present_idx(st, specs->pres_offset, specs->pres_size, present); - if(res.code == ARFILL_OK) { - *sptr = st; - } else { - if(st == *sptr) { - ASN_STRUCT_RESET(*td, st); - } else { - ASN_STRUCT_FREE(*td, st); - } - } - - return res; -} - - -asn_TYPE_operation_t asn_OP_CHOICE = { - CHOICE_free, - CHOICE_print, - CHOICE_compare, - CHOICE_decode_ber, - CHOICE_encode_der, - CHOICE_decode_xer, - CHOICE_encode_xer, -#ifdef ASN_DISABLE_OER_SUPPORT - 0, - 0, -#else - CHOICE_decode_oer, - CHOICE_encode_oer, -#endif /* ASN_DISABLE_OER_SUPPORT */ -#ifdef ASN_DISABLE_PER_SUPPORT - 0, - 0, - 0, - 0, -#else - CHOICE_decode_uper, - CHOICE_encode_uper, - CHOICE_decode_aper, - CHOICE_encode_aper, -#endif /* ASN_DISABLE_PER_SUPPORT */ - CHOICE_random_fill, - CHOICE_outmost_tag -}; diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/constr_CHOICE.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/constr_CHOICE.h deleted file mode 100644 index a1999ed..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/constr_CHOICE.h +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef _CONSTR_CHOICE_H_ -#define _CONSTR_CHOICE_H_ - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct asn_CHOICE_specifics_s { - /* - * Target structure description. - */ - unsigned struct_size; /* Size of the target structure. */ - unsigned ctx_offset; /* Offset of the asn_codec_ctx_t member */ - unsigned pres_offset; /* Identifier of the present member */ - unsigned pres_size; /* Size of the identifier (enum) */ - - /* - * Tags to members mapping table. - */ - const asn_TYPE_tag2member_t *tag2el; - unsigned tag2el_count; - - /* Canonical ordering of CHOICE elements, for PER */ - const unsigned *to_canonical_order; - const unsigned *from_canonical_order; - - /* - * Extensions-related stuff. - */ - signed ext_start; /* First member of extensions, or -1 */ -} asn_CHOICE_specifics_t; - -/* - * A set specialized functions dealing with the CHOICE type. - */ -asn_struct_free_f CHOICE_free; -asn_struct_print_f CHOICE_print; -asn_struct_compare_f CHOICE_compare; -asn_constr_check_f CHOICE_constraint; -ber_type_decoder_f CHOICE_decode_ber; -der_type_encoder_f CHOICE_encode_der; -xer_type_decoder_f CHOICE_decode_xer; -xer_type_encoder_f CHOICE_encode_xer; -oer_type_decoder_f CHOICE_decode_oer; -oer_type_encoder_f CHOICE_encode_oer; -per_type_decoder_f CHOICE_decode_uper; -per_type_encoder_f CHOICE_encode_uper; -per_type_decoder_f CHOICE_decode_aper; -per_type_encoder_f CHOICE_encode_aper; -asn_outmost_tag_f CHOICE_outmost_tag; -asn_random_fill_f CHOICE_random_fill; -extern asn_TYPE_operation_t asn_OP_CHOICE; - -/* - * Return the 1-based choice variant presence index. - * Returns 0 in case of error. - */ -unsigned CHOICE_variant_get_presence(const asn_TYPE_descriptor_t *td, - const void *structure_ptr); - -/* - * Sets or resets the 1-based choice variant presence index. - * In case a previous index is not zero, the currently selected structure - * member is freed and zeroed-out first. - * Returns 0 on success and -1 on error. - */ -int CHOICE_variant_set_presence(const asn_TYPE_descriptor_t *td, - void *structure_ptr, unsigned present); - -#ifdef __cplusplus -} -#endif - -#endif /* _CONSTR_CHOICE_H_ */ diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/constr_CHOICE_oer.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/constr_CHOICE_oer.c deleted file mode 100644 index a4c591c..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/constr_CHOICE_oer.c +++ /dev/null @@ -1,380 +0,0 @@ -/* - * Copyright (c) 2017 Lev Walkin . - * All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef ASN_DISABLE_OER_SUPPORT - -#include -#include -#include - -/* - * Return a standardized complex structure. - */ -#undef RETURN -#define RETURN(_code) \ - do { \ - asn_dec_rval_t rval; \ - rval.code = _code; \ - rval.consumed = consumed_myself; \ - return rval; \ - } while(0) - -#undef ADVANCE -#define ADVANCE(num_bytes) \ - do { \ - size_t num = num_bytes; \ - ptr = ((const char *)ptr) + num; \ - size -= num; \ - consumed_myself += num; \ - } while(0) - -/* - * Switch to the next phase of parsing. - */ -#undef NEXT_PHASE -#define NEXT_PHASE(ctx) \ - do { \ - ctx->phase++; \ - ctx->step = 0; \ - } while(0) -#undef SET_PHASE -#define SET_PHASE(ctx, value) \ - do { \ - ctx->phase = value; \ - ctx->step = 0; \ - } while(0) - -/* - * Tags are canonically sorted in the tag to member table. - */ -static int -_search4tag(const void *ap, const void *bp) { - const asn_TYPE_tag2member_t *a = (const asn_TYPE_tag2member_t *)ap; - const asn_TYPE_tag2member_t *b = (const asn_TYPE_tag2member_t *)bp; - - int a_class = BER_TAG_CLASS(a->el_tag); - int b_class = BER_TAG_CLASS(b->el_tag); - - if(a_class == b_class) { - ber_tlv_tag_t a_value = BER_TAG_VALUE(a->el_tag); - ber_tlv_tag_t b_value = BER_TAG_VALUE(b->el_tag); - - if(a_value == b_value) - return 0; - else if(a_value < b_value) - return -1; - else - return 1; - } else if(a_class < b_class) { - return -1; - } else { - return 1; - } -} - -/* - * X.696 (08/2015) #8.7 Encoding of tags - */ -static ssize_t -oer_fetch_tag(const void *ptr, size_t size, ber_tlv_tag_t *tag_r) { - ber_tlv_tag_t val; - ber_tlv_tag_t tclass; - size_t skipped; - - if(size == 0) - return 0; - - val = *(const uint8_t *)ptr; - tclass = (val >> 6); - if((val & 0x3F) != 0x3F) { - /* #8.7.1 */ - *tag_r = ((val & 0x3F) << 2) | tclass; - return 1; - } - - /* - * Each octet contains 7 bits of useful information. - * The MSB is 0 if it is the last octet of the tag. - */ - for(val = 0, ptr = ((const char *)ptr) + 1, skipped = 2; skipped <= size; - ptr = ((const char *)ptr) + 1, skipped++) { - unsigned int oct = *(const uint8_t *)ptr; - if(oct & 0x80) { - val = (val << 7) | (oct & 0x7F); - /* - * Make sure there are at least 9 bits spare - * at the MS side of a value. - */ - if(val >> ((8 * sizeof(val)) - 9)) { - /* - * We would not be able to accomodate - * any more tag bits. - */ - return -1; - } - } else { - val = (val << 7) | oct; - *tag_r = (val << 2) | tclass; - return skipped; - } - } - - return 0; /* Want more */ -} - -asn_dec_rval_t -CHOICE_decode_oer(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_oer_constraints_t *constraints, void **struct_ptr, - const void *ptr, size_t size) { - /* - * Bring closer parts of structure description. - */ - const asn_CHOICE_specifics_t *specs = - (const asn_CHOICE_specifics_t *)td->specifics; - asn_TYPE_member_t *elements = td->elements; - - /* - * Parts of the structure being constructed. - */ - void *st = *struct_ptr; /* Target structure. */ - asn_struct_ctx_t *ctx; /* Decoder context */ - - ssize_t consumed_myself = 0; /* Consumed bytes from ptr */ - - (void)constraints; - - ASN_DEBUG("Decoding %s as CHOICE", td->name); - - /* - * Create the target structure if it is not present already. - */ - if(st == 0) { - st = *struct_ptr = CALLOC(1, specs->struct_size); - if(st == 0) { - RETURN(RC_FAIL); - } - } - - /* - * Restore parsing context. - */ - ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset); - switch(ctx->phase) { - case 0: { - /* - * Discover the tag. - */ - ber_tlv_tag_t tlv_tag; /* T from TLV */ - ssize_t tag_len; /* Length of TLV's T */ - - tag_len = oer_fetch_tag(ptr, size, &tlv_tag); - switch(tag_len) { - case 0: - ASN__DECODE_STARVED; - case -1: - ASN__DECODE_FAILED; - } - - do { - const asn_TYPE_tag2member_t *t2m; - asn_TYPE_tag2member_t key = {0, 0, 0, 0}; - key.el_tag = tlv_tag; - - t2m = (const asn_TYPE_tag2member_t *)bsearch( - &key, specs->tag2el, specs->tag2el_count, - sizeof(specs->tag2el[0]), _search4tag); - if(t2m) { - /* - * Found the element corresponding to the tag. - */ - NEXT_PHASE(ctx); - ctx->step = t2m->el_no; - break; - } else if(specs->ext_start == -1) { - ASN_DEBUG( - "Unexpected tag %s " - "in non-extensible CHOICE %s", - ber_tlv_tag_string(tlv_tag), td->name); - RETURN(RC_FAIL); - } else { - /* Skip open type extension */ - ASN_DEBUG( - "Not implemented skipping open type extension for tag %s", - ber_tlv_tag_string(tlv_tag)); - RETURN(RC_FAIL); - } - } while(0); - - - ADVANCE(tag_len); - } - /* Fall through */ - case 1: { - asn_TYPE_member_t *elm = &elements[ctx->step]; /* CHOICE's element */ - void *memb_ptr; /* Pointer to the member */ - void **memb_ptr2; /* Pointer to that pointer */ - asn_dec_rval_t rval = {0,0}; - - /* - * Compute the position of the member inside a structure, - * and also a type of containment (it may be contained - * as pointer or using inline inclusion). - */ - if(elm->flags & ATF_POINTER) { - /* Member is a pointer to another structure */ - memb_ptr2 = (void **)((char *)st + elm->memb_offset); - } else { - /* - * A pointer to a pointer - * holding the start of the structure - */ - memb_ptr = (char *)st + elm->memb_offset; - memb_ptr2 = &memb_ptr; - } - - /* Set presence to be able to free it properly at any time */ - (void)CHOICE_variant_set_presence(td, st, ctx->step + 1); - - if(specs->ext_start >= 0 && specs->ext_start <= ctx->step) { - ssize_t got = - oer_open_type_get(opt_codec_ctx, elm->type, - elm->encoding_constraints.oer_constraints, - memb_ptr2, ptr, size); - if(got < 0) ASN__DECODE_FAILED; - if(got == 0) ASN__DECODE_STARVED; - rval.code = RC_OK; - rval.consumed = got; - } else { - rval = elm->type->op->oer_decoder( - opt_codec_ctx, elm->type, - elm->encoding_constraints.oer_constraints, memb_ptr2, ptr, - size); - } - rval.consumed += consumed_myself; - switch(rval.code) { - case RC_OK: - NEXT_PHASE(ctx); - case RC_WMORE: - break; - case RC_FAIL: - SET_PHASE(ctx, 3); /* => 3 */ - } - return rval; - } - case 2: - /* Already decoded everything */ - RETURN(RC_OK); - case 3: - /* Failed to decode, after all */ - RETURN(RC_FAIL); - } - - RETURN(RC_FAIL); -} - -/* - * X.696 (08/2015) #8.7 Encoding of tags - */ -static ssize_t -oer_put_tag(ber_tlv_tag_t tag, asn_app_consume_bytes_f *cb, void *app_key) { - uint8_t tclass = BER_TAG_CLASS(tag); - ber_tlv_tag_t tval = BER_TAG_VALUE(tag); - - if(tval < 0x3F) { - uint8_t b = (uint8_t)((tclass << 6) | tval); - if(cb(&b, 1, app_key) < 0) { - return -1; - } - return 1; - } else { - uint8_t buf[1 + 2 * sizeof(tval)]; - uint8_t *b = &buf[sizeof(buf)-1]; /* Last addressable */ - size_t encoded; - for(; ; tval >>= 7) { - if(tval >> 7) { - *b-- = 0x80 | (tval & 0x7f); - } else { - *b-- = tval & 0x7f; - break; - } - } - *b = (uint8_t)((tclass << 6) | 0x3F); - encoded = sizeof(buf) - (b - buf); - if(cb(b, encoded, app_key) < 0) { - return -1; - } - return encoded; - } - -} - -/* - * Encode as Canonical OER. - */ -asn_enc_rval_t -CHOICE_encode_oer(const asn_TYPE_descriptor_t *td, - const asn_oer_constraints_t *constraints, const void *sptr, - asn_app_consume_bytes_f *cb, void *app_key) { - const asn_CHOICE_specifics_t *specs = - (const asn_CHOICE_specifics_t *)td->specifics; - asn_TYPE_member_t *elm; /* CHOICE element */ - unsigned present; - const void *memb_ptr; - ber_tlv_tag_t tag; - ssize_t tag_len; - asn_enc_rval_t er = {0, 0, 0}; - - (void)constraints; - - if(!sptr) ASN__ENCODE_FAILED; - - ASN_DEBUG("OER %s encoding as CHOICE", td->name); - - present = CHOICE_variant_get_presence(td, sptr); - if(present == 0 || present > td->elements_count) { - ASN_DEBUG("CHOICE %s member is not selected", td->name); - ASN__ENCODE_FAILED; - } - - elm = &td->elements[present-1]; - if(elm->flags & ATF_POINTER) { - memb_ptr = - *(const void *const *)((const char *)sptr + elm->memb_offset); - if(memb_ptr == 0) { - /* Mandatory element absent */ - ASN__ENCODE_FAILED; - } - } else { - memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); - } - - tag = asn_TYPE_outmost_tag(elm->type, memb_ptr, elm->tag_mode, elm->tag); - if(tag == 0) { - ASN__ENCODE_FAILED; - } - - tag_len = oer_put_tag(tag, cb, app_key); - if(tag_len < 0) { - ASN__ENCODE_FAILED; - } - - if(specs->ext_start >= 0 && (unsigned)specs->ext_start <= (present-1)) { - ssize_t encoded = oer_open_type_put(elm->type, - elm->encoding_constraints.oer_constraints, - memb_ptr, cb, app_key); - if(encoded < 0) ASN__ENCODE_FAILED; - er.encoded = tag_len + encoded; - } else { - er = elm->type->op->oer_encoder( - elm->type, elm->encoding_constraints.oer_constraints, memb_ptr, cb, - app_key); - if(er.encoded >= 0) er.encoded += tag_len; - } - - return er; -} - -#endif /* ASN_DISABLE_OER_SUPPORT */ diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/constr_SEQUENCE.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/constr_SEQUENCE.c deleted file mode 100644 index 43dcac7..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/constr_SEQUENCE.c +++ /dev/null @@ -1,2059 +0,0 @@ -/* - * Copyright (c) 2003-2017 Lev Walkin . - * All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include -#include - -/* - * Number of bytes left for this structure. - * (ctx->left) indicates the number of bytes _transferred_ for the structure. - * (size) contains the number of bytes in the buffer passed. - */ -#define LEFT ((size<(size_t)ctx->left)?size:(size_t)ctx->left) - -/* - * If the subprocessor function returns with an indication that it wants - * more data, it may well be a fatal decoding problem, because the - * size is constrained by the 's L, even if the buffer size allows - * reading more data. - * For example, consider the buffer containing the following TLVs: - * ... - * The TLV length clearly indicates that one byte is expected in V, but - * if the V processor returns with "want more data" even if the buffer - * contains way more data than the V processor have seen. - */ -#define SIZE_VIOLATION (ctx->left >= 0 && (size_t)ctx->left <= size) - -/* - * This macro "eats" the part of the buffer which is definitely "consumed", - * i.e. was correctly converted into local representation or rightfully skipped. - */ -#undef ADVANCE -#define ADVANCE(num_bytes) do { \ - size_t num = num_bytes; \ - ptr = ((const char *)ptr) + num; \ - size -= num; \ - if(ctx->left >= 0) \ - ctx->left -= num; \ - consumed_myself += num; \ - } while(0) - -/* - * Switch to the next phase of parsing. - */ -#undef NEXT_PHASE -#undef PHASE_OUT -#define NEXT_PHASE(ctx) do { \ - ctx->phase++; \ - ctx->step = 0; \ - } while(0) -#define PHASE_OUT(ctx) do { ctx->phase = 10; } while(0) - -/* - * Return a standardized complex structure. - */ -#undef RETURN -#define RETURN(_code) do { \ - rval.code = _code; \ - rval.consumed = consumed_myself;\ - return rval; \ - } while(0) - -/* - * Check whether we are inside the extensions group. - */ -#define IN_EXTENSION_GROUP(specs, memb_idx) \ - ((specs)->first_extension >= 0 \ - && (unsigned)(specs)->first_extension <= (memb_idx)) - -/* - * Tags are canonically sorted in the tag2element map. - */ -static int -_t2e_cmp(const void *ap, const void *bp) { - const asn_TYPE_tag2member_t *a = (const asn_TYPE_tag2member_t *)ap; - const asn_TYPE_tag2member_t *b = (const asn_TYPE_tag2member_t *)bp; - - int a_class = BER_TAG_CLASS(a->el_tag); - int b_class = BER_TAG_CLASS(b->el_tag); - - if(a_class == b_class) { - ber_tlv_tag_t a_value = BER_TAG_VALUE(a->el_tag); - ber_tlv_tag_t b_value = BER_TAG_VALUE(b->el_tag); - - if(a_value == b_value) { - if(a->el_no > b->el_no) - return 1; - /* - * Important: we do not check - * for a->el_no <= b->el_no! - */ - return 0; - } else if(a_value < b_value) - return -1; - else - return 1; - } else if(a_class < b_class) { - return -1; - } else { - return 1; - } -} - - -/* - * The decoder of the SEQUENCE type. - */ -asn_dec_rval_t -SEQUENCE_decode_ber(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **struct_ptr, - const void *ptr, size_t size, int tag_mode) { - /* - * Bring closer parts of structure description. - */ - const asn_SEQUENCE_specifics_t *specs = (const asn_SEQUENCE_specifics_t *)td->specifics; - const asn_TYPE_member_t *elements = td->elements; - - /* - * Parts of the structure being constructed. - */ - void *st = *struct_ptr; /* Target structure. */ - asn_struct_ctx_t *ctx; /* Decoder context */ - - ber_tlv_tag_t tlv_tag; /* T from TLV */ - asn_dec_rval_t rval; /* Return code from subparsers */ - - ssize_t consumed_myself = 0; /* Consumed bytes from ptr */ - size_t edx; /* SEQUENCE element's index */ - - ASN_DEBUG("Decoding %s as SEQUENCE", td->name); - - /* - * Create the target structure if it is not present already. - */ - if(st == 0) { - st = *struct_ptr = CALLOC(1, specs->struct_size); - if(st == 0) { - RETURN(RC_FAIL); - } - } - - /* - * Restore parsing context. - */ - ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset); - - /* - * Start to parse where left previously - */ - switch(ctx->phase) { - case 0: - /* - * PHASE 0. - * Check that the set of tags associated with given structure - * perfectly fits our expectations. - */ - - rval = ber_check_tags(opt_codec_ctx, td, ctx, ptr, size, - tag_mode, 1, &ctx->left, 0); - if(rval.code != RC_OK) { - ASN_DEBUG("%s tagging check failed: %d", - td->name, rval.code); - return rval; - } - - if(ctx->left >= 0) - ctx->left += rval.consumed; /* ?Substracted below! */ - ADVANCE(rval.consumed); - - NEXT_PHASE(ctx); - - ASN_DEBUG("Structure consumes %ld bytes, buffer %ld", - (long)ctx->left, (long)size); - - /* Fall through */ - case 1: - /* - * PHASE 1. - * From the place where we've left it previously, - * try to decode the next member from the list of - * this structure's elements. - * (ctx->step) stores the member being processed - * between invocations and the microphase {0,1} of parsing - * that member: - * step = ( * 2 + ). - */ - for(edx = ((size_t)ctx->step >> 1); edx < td->elements_count; - edx++, ctx->step = (ctx->step & ~1) + 2) { - void *memb_ptr; /* Pointer to the member */ - void **memb_ptr2; /* Pointer to that pointer */ - ssize_t tag_len; /* Length of TLV's T */ - size_t opt_edx_end; /* Next non-optional element */ - size_t n; - int use_bsearch; - - if(ctx->step & 1) - goto microphase2; - - /* - * MICROPHASE 1: Synchronize decoding. - */ - ASN_DEBUG("In %s SEQUENCE left %d, edx=%" ASN_PRI_SIZE " flags=%d" - " opt=%d ec=%d", - td->name, (int)ctx->left, edx, - elements[edx].flags, elements[edx].optional, - td->elements_count); - - if(ctx->left == 0 /* No more stuff is expected */ - && ( - /* Explicit OPTIONAL specification reaches the end */ - (edx + elements[edx].optional == td->elements_count) || - /* All extensions are optional */ - IN_EXTENSION_GROUP(specs, edx))) { - ASN_DEBUG("End of SEQUENCE %s", td->name); - /* - * Found the legitimate end of the structure. - */ - PHASE_OUT(ctx); - RETURN(RC_OK); - } - - /* - * Fetch the T from TLV. - */ - tag_len = ber_fetch_tag(ptr, LEFT, &tlv_tag); - ASN_DEBUG("Current tag in %s SEQUENCE for element %" ASN_PRI_SIZE " " - "(%s) is %s encoded in %d bytes, of frame %ld", - td->name, edx, elements[edx].name, - ber_tlv_tag_string(tlv_tag), (int)tag_len, (long)LEFT); - switch(tag_len) { - case 0: if(!SIZE_VIOLATION) RETURN(RC_WMORE); - /* Fall through */ - case -1: RETURN(RC_FAIL); - } - - if(ctx->left < 0 && ((const uint8_t *)ptr)[0] == 0) { - if(LEFT < 2) { - if(SIZE_VIOLATION) { - RETURN(RC_FAIL); - } else { - RETURN(RC_WMORE); - } - } else if(((const uint8_t *)ptr)[1] == 0) { - ASN_DEBUG("edx = %" ASN_PRI_SIZE ", opt = %d, ec=%d", edx, - elements[edx].optional, td->elements_count); - if((edx + elements[edx].optional == td->elements_count) - || IN_EXTENSION_GROUP(specs, edx)) { - /* - * Yeah, baby! Found the terminator - * of the indefinite length structure. - */ - /* - * Proceed to the canonical - * finalization function. - * No advancing is necessary. - */ - goto phase3; - } - } - } - - /* - * Find the next available type with this tag. - */ - use_bsearch = 0; - opt_edx_end = edx + elements[edx].optional + 1; - if(opt_edx_end > td->elements_count) - opt_edx_end = td->elements_count; /* Cap */ - else if(opt_edx_end - edx > 8) { - /* Limit the scope of linear search... */ - opt_edx_end = edx + 8; - use_bsearch = 1; - /* ... and resort to bsearch() */ - } - for(n = edx; n < opt_edx_end; n++) { - if(BER_TAGS_EQUAL(tlv_tag, elements[n].tag)) { - /* - * Found element corresponding to the tag - * being looked at. - * Reposition over the right element. - */ - edx = n; - ctx->step = 1 + 2 * edx; /* Remember! */ - goto microphase2; - } else if(elements[n].flags & ATF_ANY_TYPE) { - /* - * This is the ANY type, which may bear - * any flag whatsoever. - */ - edx = n; - ctx->step = 1 + 2 * edx; /* Remember! */ - goto microphase2; - } else if(elements[n].tag == (ber_tlv_tag_t)-1) { - use_bsearch = 1; - break; - } - } - if(use_bsearch) { - /* - * Resort to a binary search over - * sorted array of tags. - */ - const asn_TYPE_tag2member_t *t2m; - asn_TYPE_tag2member_t key = {0, 0, 0, 0}; - key.el_tag = tlv_tag; - key.el_no = edx; - t2m = (const asn_TYPE_tag2member_t *)bsearch(&key, - specs->tag2el, specs->tag2el_count, - sizeof(specs->tag2el[0]), _t2e_cmp); - if(t2m) { - const asn_TYPE_tag2member_t *best = 0; - const asn_TYPE_tag2member_t *t2m_f, *t2m_l; - size_t edx_max = edx + elements[edx].optional; - /* - * Rewind to the first element with that tag, - * `cause bsearch() does not guarantee order. - */ - t2m_f = t2m + t2m->toff_first; - t2m_l = t2m + t2m->toff_last; - for(t2m = t2m_f; t2m <= t2m_l; t2m++) { - if(t2m->el_no > edx_max) break; - if(t2m->el_no < edx) continue; - best = t2m; - } - if(best) { - edx = best->el_no; - ctx->step = 1 + 2 * edx; - goto microphase2; - } - } - n = opt_edx_end; - } - if(n == opt_edx_end) { - /* - * If tag is unknown, it may be either - * an unknown (thus, incorrect) tag, - * or an extension (...), - * or an end of the indefinite-length structure. - */ - if(!IN_EXTENSION_GROUP(specs, - edx + elements[edx].optional)) { - ASN_DEBUG("Unexpected tag %s (at %" ASN_PRI_SIZE ")", - ber_tlv_tag_string(tlv_tag), edx); - ASN_DEBUG("Expected tag %s (%s)%s", - ber_tlv_tag_string(elements[edx].tag), - elements[edx].name, - elements[edx].optional - ?" or alternatives":""); - RETURN(RC_FAIL); - } else { - /* Skip this tag */ - ssize_t skip; - edx += elements[edx].optional; - - ASN_DEBUG("Skipping unexpected %s (at %" ASN_PRI_SIZE ")", - ber_tlv_tag_string(tlv_tag), edx); - skip = ber_skip_length(opt_codec_ctx, - BER_TLV_CONSTRUCTED(ptr), - (const char *)ptr + tag_len, - LEFT - tag_len); - ASN_DEBUG("Skip length %d in %s", - (int)skip, td->name); - switch(skip) { - case 0: if(!SIZE_VIOLATION) RETURN(RC_WMORE); - /* Fall through */ - case -1: RETURN(RC_FAIL); - } - - ADVANCE(skip + tag_len); - ctx->step -= 2; - edx--; - continue; /* Try again with the next tag */ - } - } - - /* - * MICROPHASE 2: Invoke the member-specific decoder. - */ - ctx->step |= 1; /* Confirm entering next microphase */ - microphase2: - ASN_DEBUG("Inside SEQUENCE %s MF2", td->name); - - /* - * Compute the position of the member inside a structure, - * and also a type of containment (it may be contained - * as pointer or using inline inclusion). - */ - if(elements[edx].flags & ATF_POINTER) { - /* Member is a pointer to another structure */ - memb_ptr2 = (void **)((char *)st + elements[edx].memb_offset); - } else { - /* - * A pointer to a pointer - * holding the start of the structure - */ - memb_ptr = (char *)st + elements[edx].memb_offset; - memb_ptr2 = &memb_ptr; - } - /* - * Invoke the member fetch routine according to member's type - */ - if(elements[edx].flags & ATF_OPEN_TYPE) { - rval = OPEN_TYPE_ber_get(opt_codec_ctx, td, st, &elements[edx], ptr, LEFT); - } else { - rval = elements[edx].type->op->ber_decoder(opt_codec_ctx, - elements[edx].type, - memb_ptr2, ptr, LEFT, - elements[edx].tag_mode); - } - ASN_DEBUG("In %s SEQUENCE decoded %" ASN_PRI_SIZE " %s of %d " - "in %d bytes rval.code %d, size=%d", - td->name, edx, elements[edx].type->name, - (int)LEFT, (int)rval.consumed, rval.code, (int)size); - switch(rval.code) { - case RC_OK: - break; - case RC_WMORE: /* More data expected */ - if(!SIZE_VIOLATION) { - ADVANCE(rval.consumed); - RETURN(RC_WMORE); - } - ASN_DEBUG("Size violation (c->l=%ld <= s=%ld)", - (long)ctx->left, (long)size); - /* Fall through */ - case RC_FAIL: /* Fatal error */ - RETURN(RC_FAIL); - } /* switch(rval) */ - - ADVANCE(rval.consumed); - } /* for(all structure members) */ - - phase3: - ctx->phase = 3; - /* Fall through */ - case 3: /* 00 and other tags expected */ - case 4: /* only 00's expected */ - - ASN_DEBUG("SEQUENCE %s Leftover: %ld, size = %ld", - td->name, (long)ctx->left, (long)size); - - /* - * Skip everything until the end of the SEQUENCE. - */ - while(ctx->left) { - ssize_t tl, ll; - - tl = ber_fetch_tag(ptr, LEFT, &tlv_tag); - switch(tl) { - case 0: if(!SIZE_VIOLATION) RETURN(RC_WMORE); - /* Fall through */ - case -1: RETURN(RC_FAIL); - } - - /* - * If expected <0><0>... - */ - if(ctx->left < 0 - && ((const uint8_t *)ptr)[0] == 0) { - if(LEFT < 2) { - if(SIZE_VIOLATION) - RETURN(RC_FAIL); - else - RETURN(RC_WMORE); - } else if(((const uint8_t *)ptr)[1] == 0) { - /* - * Correctly finished with <0><0>. - */ - ADVANCE(2); - ctx->left++; - ctx->phase = 4; - continue; - } - } - - if(!IN_EXTENSION_GROUP(specs, td->elements_count) - || ctx->phase == 4) { - ASN_DEBUG("Unexpected continuation " - "of a non-extensible type " - "%s (SEQUENCE): %s", - td->name, - ber_tlv_tag_string(tlv_tag)); - RETURN(RC_FAIL); - } - - ll = ber_skip_length(opt_codec_ctx, - BER_TLV_CONSTRUCTED(ptr), - (const char *)ptr + tl, LEFT - tl); - switch(ll) { - case 0: if(!SIZE_VIOLATION) RETURN(RC_WMORE); - /* Fall through */ - case -1: RETURN(RC_FAIL); - } - - ADVANCE(tl + ll); - } - - PHASE_OUT(ctx); - } - - RETURN(RC_OK); -} - - -/* - * The DER encoder of the SEQUENCE type. - */ -asn_enc_rval_t -SEQUENCE_encode_der(const asn_TYPE_descriptor_t *td, const void *sptr, - int tag_mode, ber_tlv_tag_t tag, - asn_app_consume_bytes_f *cb, void *app_key) { - size_t computed_size = 0; - asn_enc_rval_t erval = {0,0,0}; - ssize_t ret; - size_t edx; - - ASN_DEBUG("%s %s as SEQUENCE", - cb?"Encoding":"Estimating", td->name); - - /* - * Gather the length of the underlying members sequence. - */ - for(edx = 0; edx < td->elements_count; edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - - const void *memb_ptr; /* Pointer to the member */ - const void *const *memb_ptr2; /* Pointer to that pointer */ - - if(elm->flags & ATF_POINTER) { - memb_ptr2 = - (const void *const *)((const char *)sptr + elm->memb_offset); - if(!*memb_ptr2) { - ASN_DEBUG("Element %s %" ASN_PRI_SIZE " not present", - elm->name, edx); - if(elm->optional) - continue; - /* Mandatory element is missing */ - ASN__ENCODE_FAILED; - } - } else { - memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); - memb_ptr2 = &memb_ptr; - } - - /* Eliminate default values */ - if(elm->default_value_cmp && elm->default_value_cmp(*memb_ptr2) == 0) - continue; - - erval = elm->type->op->der_encoder(elm->type, *memb_ptr2, - elm->tag_mode, elm->tag, - 0, 0); - if(erval.encoded == -1) - return erval; - computed_size += erval.encoded; - ASN_DEBUG("Member %" ASN_PRI_SIZE " %s estimated %ld bytes", - edx, elm->name, (long)erval.encoded); - } - - /* - * Encode the TLV for the sequence itself. - */ - ret = der_write_tags(td, computed_size, tag_mode, 1, tag, cb, app_key); - ASN_DEBUG("Wrote tags: %ld (+%ld)", (long)ret, (long)computed_size); - if(ret == -1) - ASN__ENCODE_FAILED; - erval.encoded = computed_size + ret; - - if(!cb) ASN__ENCODED_OK(erval); - - /* - * Encode all members. - */ - for(edx = 0; edx < td->elements_count; edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - asn_enc_rval_t tmperval = {0,0,0}; - const void *memb_ptr; /* Pointer to the member */ - const void *const *memb_ptr2; /* Pointer to that pointer */ - - if(elm->flags & ATF_POINTER) { - memb_ptr2 = - (const void *const *)((const char *)sptr + elm->memb_offset); - if(!*memb_ptr2) continue; - } else { - memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); - memb_ptr2 = &memb_ptr; - } - - /* Eliminate default values */ - if(elm->default_value_cmp && elm->default_value_cmp(*memb_ptr2) == 0) - continue; - - tmperval = elm->type->op->der_encoder(elm->type, *memb_ptr2, - elm->tag_mode, elm->tag, cb, app_key); - if(tmperval.encoded == -1) - return tmperval; - computed_size -= tmperval.encoded; - ASN_DEBUG("Member %" ASN_PRI_SIZE " %s of SEQUENCE %s encoded in %ld bytes", - edx, elm->name, td->name, (long)tmperval.encoded); - } - - if(computed_size != 0) - /* - * Encoded size is not equal to the computed size. - */ - ASN__ENCODE_FAILED; - - ASN__ENCODED_OK(erval); -} - - -#undef XER_ADVANCE -#define XER_ADVANCE(num_bytes) \ - do { \ - size_t num = (num_bytes); \ - ptr = ((const char *)ptr) + num; \ - size -= num; \ - consumed_myself += num; \ - } while(0) - -/* - * Decode the XER (XML) data. - */ -asn_dec_rval_t -SEQUENCE_decode_xer(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **struct_ptr, - const char *opt_mname, const void *ptr, size_t size) { - /* - * Bring closer parts of structure description. - */ - const asn_SEQUENCE_specifics_t *specs - = (const asn_SEQUENCE_specifics_t *)td->specifics; - asn_TYPE_member_t *elements = td->elements; - const char *xml_tag = opt_mname ? opt_mname : td->xml_tag; - - /* - * ... and parts of the structure being constructed. - */ - void *st = *struct_ptr; /* Target structure. */ - asn_struct_ctx_t *ctx; /* Decoder context */ - - asn_dec_rval_t rval; /* Return value from a decoder */ - ssize_t consumed_myself = 0; /* Consumed bytes from ptr */ - size_t edx; /* Element index */ - - /* - * Create the target structure if it is not present already. - */ - if(st == 0) { - st = *struct_ptr = CALLOC(1, specs->struct_size); - if(st == 0) RETURN(RC_FAIL); - } - - /* - * Restore parsing context. - */ - ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset); - - - /* - * Phases of XER/XML processing: - * Phase 0: Check that the opening tag matches our expectations. - * Phase 1: Processing body and reacting on closing tag. - * Phase 2: Processing inner type. - * Phase 3: Skipping unknown extensions. - * Phase 4: PHASED OUT - */ - for(edx = ctx->step; ctx->phase <= 3;) { - pxer_chunk_type_e ch_type; /* XER chunk type */ - ssize_t ch_size; /* Chunk size */ - xer_check_tag_e tcv; /* Tag check value */ - asn_TYPE_member_t *elm; - - /* - * Go inside the inner member of a sequence. - */ - if(ctx->phase == 2) { - asn_dec_rval_t tmprval; - void *memb_ptr_dontuse; /* Pointer to the member */ - void **memb_ptr2; /* Pointer to that pointer */ - - elm = &td->elements[edx]; - - if(elm->flags & ATF_POINTER) { - /* Member is a pointer to another structure */ - memb_ptr2 = (void **)((char *)st + elm->memb_offset); - } else { - memb_ptr_dontuse = (char *)st + elm->memb_offset; - memb_ptr2 = &memb_ptr_dontuse; /* Only use of memb_ptr_dontuse */ - } - - if(elm->flags & ATF_OPEN_TYPE) { - tmprval = OPEN_TYPE_xer_get(opt_codec_ctx, td, st, elm, ptr, size); - } else { - /* Invoke the inner type decoder, m.b. multiple times */ - tmprval = elm->type->op->xer_decoder(opt_codec_ctx, - elm->type, memb_ptr2, elm->name, - ptr, size); - } - XER_ADVANCE(tmprval.consumed); - if(tmprval.code != RC_OK) - RETURN(tmprval.code); - ctx->phase = 1; /* Back to body processing */ - ctx->step = ++edx; - ASN_DEBUG("XER/SEQUENCE phase => %d, step => %d", - ctx->phase, ctx->step); - /* Fall through */ - } - - /* - * Get the next part of the XML stream. - */ - ch_size = xer_next_token(&ctx->context, ptr, size, - &ch_type); - if(ch_size == -1) { - RETURN(RC_FAIL); - } else { - switch(ch_type) { - case PXER_WMORE: - RETURN(RC_WMORE); - case PXER_COMMENT: /* Got XML comment */ - case PXER_TEXT: /* Ignore free-standing text */ - XER_ADVANCE(ch_size); /* Skip silently */ - continue; - case PXER_TAG: - break; /* Check the rest down there */ - } - } - - tcv = xer_check_tag(ptr, ch_size, xml_tag); - ASN_DEBUG("XER/SEQUENCE: tcv = %d, ph=%d [%s]", - tcv, ctx->phase, xml_tag); - - /* Skip the extensions section */ - if(ctx->phase == 3) { - switch(xer_skip_unknown(tcv, &ctx->left)) { - case -1: - ctx->phase = 4; - RETURN(RC_FAIL); - case 0: - XER_ADVANCE(ch_size); - continue; - case 1: - XER_ADVANCE(ch_size); - ctx->phase = 1; - continue; - case 2: - ctx->phase = 1; - break; - } - } - - switch(tcv) { - case XCT_CLOSING: - if(ctx->phase == 0) break; - ctx->phase = 0; - /* Fall through */ - case XCT_BOTH: - if(ctx->phase == 0) { - if(edx >= td->elements_count || - /* Explicit OPTIONAL specs reaches the end */ - (edx + elements[edx].optional == td->elements_count) || - /* All extensions are optional */ - IN_EXTENSION_GROUP(specs, edx)) { - XER_ADVANCE(ch_size); - ctx->phase = 4; /* Phase out */ - RETURN(RC_OK); - } else { - ASN_DEBUG("Premature end of XER SEQUENCE"); - RETURN(RC_FAIL); - } - } - /* Fall through */ - case XCT_OPENING: - if(ctx->phase == 0) { - XER_ADVANCE(ch_size); - ctx->phase = 1; /* Processing body phase */ - continue; - } - /* Fall through */ - case XCT_UNKNOWN_OP: - case XCT_UNKNOWN_BO: - - ASN_DEBUG("XER/SEQUENCE: tcv=%d, ph=%d, edx=%" ASN_PRI_SIZE "", - tcv, ctx->phase, edx); - if(ctx->phase != 1) { - break; /* Really unexpected */ - } - - if(edx < td->elements_count) { - /* - * Search which member corresponds to this tag. - */ - size_t n; - size_t edx_end = edx + elements[edx].optional + 1; - if(edx_end > td->elements_count) - edx_end = td->elements_count; - for(n = edx; n < edx_end; n++) { - elm = &td->elements[n]; - tcv = xer_check_tag(ptr, ch_size, elm->name); - switch(tcv) { - case XCT_BOTH: - case XCT_OPENING: - /* - * Process this member. - */ - ctx->step = edx = n; - ctx->phase = 2; - break; - case XCT_UNKNOWN_OP: - case XCT_UNKNOWN_BO: - continue; - default: - n = edx_end; - break; /* Phase out */ - } - break; - } - if(n != edx_end) - continue; - } else { - ASN_DEBUG("Out of defined members: %" ASN_PRI_SIZE "/%u", - edx, td->elements_count); - } - - /* It is expected extension */ - if(IN_EXTENSION_GROUP(specs, - edx + (edx < td->elements_count - ? elements[edx].optional : 0))) { - ASN_DEBUG("Got anticipated extension at %" ASN_PRI_SIZE "", - edx); - /* - * Check for (XCT_BOTH or XCT_UNKNOWN_BO) - * By using a mask. Only record a pure - * tags. - */ - if(tcv & XCT_CLOSING) { - /* Found without body */ - } else { - ctx->left = 1; - ctx->phase = 3; /* Skip ...'s */ - } - XER_ADVANCE(ch_size); - continue; - } - - /* Fall through */ - default: - break; - } - - ASN_DEBUG("Unexpected XML tag in SEQUENCE [%c%c%c%c%c%c]", - size>0?((const char *)ptr)[0]:'.', - size>1?((const char *)ptr)[1]:'.', - size>2?((const char *)ptr)[2]:'.', - size>3?((const char *)ptr)[3]:'.', - size>4?((const char *)ptr)[4]:'.', - size>5?((const char *)ptr)[5]:'.'); - break; - } - - ctx->phase = 4; /* "Phase out" on hard failure */ - RETURN(RC_FAIL); -} - -asn_enc_rval_t -SEQUENCE_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, - int ilevel, enum xer_encoder_flags_e flags, - asn_app_consume_bytes_f *cb, void *app_key) { - asn_enc_rval_t er = {0,0,0}; - int xcan = (flags & XER_F_CANONICAL); - asn_TYPE_descriptor_t *tmp_def_val_td = 0; - void *tmp_def_val = 0; - size_t edx; - - if(!sptr) ASN__ENCODE_FAILED; - - er.encoded = 0; - - for(edx = 0; edx < td->elements_count; edx++) { - asn_enc_rval_t tmper = {0,0,0}; - asn_TYPE_member_t *elm = &td->elements[edx]; - const void *memb_ptr; - const char *mname = elm->name; - unsigned int mlen = strlen(mname); - - if(elm->flags & ATF_POINTER) { - memb_ptr = - *(const void *const *)((const char *)sptr + elm->memb_offset); - if(!memb_ptr) { - assert(tmp_def_val == 0); - if(elm->default_value_set) { - if(elm->default_value_set(&tmp_def_val)) { - ASN__ENCODE_FAILED; - } else { - memb_ptr = tmp_def_val; - tmp_def_val_td = elm->type; - } - } else if(elm->optional) { - continue; - } else { - /* Mandatory element is missing */ - ASN__ENCODE_FAILED; - } - } - } else { - memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); - } - - if(!xcan) ASN__TEXT_INDENT(1, ilevel); - ASN__CALLBACK3("<", 1, mname, mlen, ">", 1); - - /* Print the member itself */ - tmper = elm->type->op->xer_encoder(elm->type, memb_ptr, ilevel + 1, - flags, cb, app_key); - if(tmp_def_val) { - ASN_STRUCT_FREE(*tmp_def_val_td, tmp_def_val); - tmp_def_val = 0; - } - if(tmper.encoded == -1) return tmper; - er.encoded += tmper.encoded; - - ASN__CALLBACK3("", 1); - } - - if(!xcan) ASN__TEXT_INDENT(1, ilevel - 1); - - ASN__ENCODED_OK(er); -cb_failed: - if(tmp_def_val) ASN_STRUCT_FREE(*tmp_def_val_td, tmp_def_val); - ASN__ENCODE_FAILED; -} - -int -SEQUENCE_print(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, - asn_app_consume_bytes_f *cb, void *app_key) { - size_t edx; - int ret; - - if(!sptr) return (cb("", 8, app_key) < 0) ? -1 : 0; - - /* Dump preamble */ - if(cb(td->name, strlen(td->name), app_key) < 0 - || cb(" ::= {", 6, app_key) < 0) - return -1; - - for(edx = 0; edx < td->elements_count; edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - const void *memb_ptr; - - if(elm->flags & ATF_POINTER) { - memb_ptr = *(const void * const *)((const char *)sptr + elm->memb_offset); - if(!memb_ptr) { - if(elm->optional) continue; - /* Print line */ - /* Fall through */ - } - } else { - memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); - } - - /* Indentation */ - _i_INDENT(1); - - /* Print the member's name and stuff */ - if(cb(elm->name, strlen(elm->name), app_key) < 0 - || cb(": ", 2, app_key) < 0) - return -1; - - /* Print the member itself */ - ret = elm->type->op->print_struct(elm->type, memb_ptr, ilevel + 1, - cb, app_key); - if(ret) return ret; - } - - ilevel--; - _i_INDENT(1); - - return (cb("}", 1, app_key) < 0) ? -1 : 0; -} - -void -SEQUENCE_free(const asn_TYPE_descriptor_t *td, void *sptr, - enum asn_struct_free_method method) { - size_t edx; - const asn_SEQUENCE_specifics_t *specs = - (const asn_SEQUENCE_specifics_t *)td->specifics; - asn_struct_ctx_t *ctx; /* Decoder context */ - - if(!td || !sptr) - return; - - ASN_DEBUG("Freeing %s as SEQUENCE", td->name); - - for(edx = 0; edx < td->elements_count; edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - void *memb_ptr; - if(elm->flags & ATF_POINTER) { - memb_ptr = *(void **)((char *)sptr + elm->memb_offset); - if(memb_ptr) - ASN_STRUCT_FREE(*elm->type, memb_ptr); - } else { - memb_ptr = (void *)((char *)sptr + elm->memb_offset); - ASN_STRUCT_FREE_CONTENTS_ONLY(*elm->type, memb_ptr); - } - } - - /* Clean parsing context */ - ctx = (asn_struct_ctx_t *)((char *)sptr + specs->ctx_offset); - FREEMEM(ctx->ptr); - - switch(method) { - case ASFM_FREE_EVERYTHING: - FREEMEM(sptr); - break; - case ASFM_FREE_UNDERLYING: - break; - case ASFM_FREE_UNDERLYING_AND_RESET: - memset( - sptr, 0, - ((const asn_SEQUENCE_specifics_t *)(td->specifics))->struct_size); - break; - } -} - -int -SEQUENCE_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - size_t edx; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - /* - * Iterate over structure members and check their validity. - */ - for(edx = 0; edx < td->elements_count; edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - const void *memb_ptr; - - if(elm->flags & ATF_POINTER) { - memb_ptr = *(const void * const *)((const char *)sptr + elm->memb_offset); - if(!memb_ptr) { - if(elm->optional) - continue; - ASN__CTFAIL(app_key, td, sptr, - "%s: mandatory element %s absent (%s:%d)", - td->name, elm->name, __FILE__, __LINE__); - return -1; - } - } else { - memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); - } - - if(elm->encoding_constraints.general_constraints) { - int ret = elm->encoding_constraints.general_constraints(elm->type, memb_ptr, - ctfailcb, app_key); - if(ret) return ret; - } else { - return elm->type->encoding_constraints.general_constraints(elm->type, - memb_ptr, ctfailcb, app_key); - } - } - - return 0; -} - -#ifndef ASN_DISABLE_PER_SUPPORT - -asn_dec_rval_t -SEQUENCE_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, - asn_per_data_t *pd) { - const asn_SEQUENCE_specifics_t *specs = (const asn_SEQUENCE_specifics_t *)td->specifics; - void *st = *sptr; /* Target structure. */ - int extpresent; /* Extension additions are present */ - uint8_t *opres; /* Presence of optional root members */ - asn_per_data_t opmd; - asn_dec_rval_t rv; - size_t edx; - - (void)constraints; - - if(ASN__STACK_OVERFLOW_CHECK(opt_codec_ctx)) - ASN__DECODE_FAILED; - - if(!st) { - st = *sptr = CALLOC(1, specs->struct_size); - if(!st) ASN__DECODE_FAILED; - } - - ASN_DEBUG("Decoding %s as SEQUENCE (UPER)", td->name); - - /* Handle extensions */ - if(specs->first_extension < 0) { - extpresent = 0; - } else { - extpresent = per_get_few_bits(pd, 1); - if(extpresent < 0) ASN__DECODE_STARVED; - } - - /* Prepare a place and read-in the presence bitmap */ - memset(&opmd, 0, sizeof(opmd)); - if(specs->roms_count) { - opres = (uint8_t *)MALLOC(((specs->roms_count + 7) >> 3) + 1); - if(!opres) ASN__DECODE_FAILED; - /* Get the presence map */ - if(per_get_many_bits(pd, opres, 0, specs->roms_count)) { - FREEMEM(opres); - ASN__DECODE_STARVED; - } - opmd.buffer = opres; - opmd.nbits = specs->roms_count; - ASN_DEBUG("Read in presence bitmap for %s of %d bits (%x..)", - td->name, specs->roms_count, *opres); - } else { - opres = 0; - } - - /* - * Get the sequence ROOT elements. - */ - for(edx = 0; - edx < (specs->first_extension < 0 ? td->elements_count - : (size_t)specs->first_extension); - edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - void *memb_ptr; /* Pointer to the member */ - void **memb_ptr2; /* Pointer to that pointer */ - - assert(!IN_EXTENSION_GROUP(specs, edx)); - - /* Fetch the pointer to this member */ - if(elm->flags & ATF_POINTER) { - memb_ptr2 = (void **)((char *)st + elm->memb_offset); - } else { - memb_ptr = (char *)st + elm->memb_offset; - memb_ptr2 = &memb_ptr; - } - - /* Deal with optionality */ - if(elm->optional) { - int present = per_get_few_bits(&opmd, 1); - ASN_DEBUG("Member %s->%s is optional, p=%d (%d->%d)", - td->name, elm->name, present, - (int)opmd.nboff, (int)opmd.nbits); - if(present == 0) { - /* This element is not present */ - if(elm->default_value_set) { - /* Fill-in DEFAULT */ - if(elm->default_value_set(memb_ptr2)) { - FREEMEM(opres); - ASN__DECODE_FAILED; - } - ASN_DEBUG("Filled-in default"); - } - /* The member is just not present */ - continue; - } - /* Fall through */ - } - - /* Fetch the member from the stream */ - ASN_DEBUG("Decoding member \"%s\" in %s", elm->name, td->name); - - if(elm->flags & ATF_OPEN_TYPE) { - rv = OPEN_TYPE_uper_get(opt_codec_ctx, td, st, elm, pd); - } else { - rv = elm->type->op->uper_decoder(opt_codec_ctx, elm->type, - elm->encoding_constraints.per_constraints, memb_ptr2, pd); - } - if(rv.code != RC_OK) { - ASN_DEBUG("Failed decode %s in %s", - elm->name, td->name); - FREEMEM(opres); - return rv; - } - } - - /* Optionality map is not needed anymore */ - FREEMEM(opres); - - /* - * Deal with extensions. - */ - if(extpresent) { - ssize_t bmlength; - uint8_t *epres; /* Presence of extension members */ - asn_per_data_t epmd; - - bmlength = uper_get_nslength(pd); - if(bmlength < 0) ASN__DECODE_STARVED; - - ASN_DEBUG("Extensions %" ASN_PRI_SSIZE " present in %s", bmlength, td->name); - - epres = (uint8_t *)MALLOC((bmlength + 15) >> 3); - if(!epres) ASN__DECODE_STARVED; - - /* Get the extensions map */ - if(per_get_many_bits(pd, epres, 0, bmlength)) { - FREEMEM(epres); - ASN__DECODE_STARVED; - } - - memset(&epmd, 0, sizeof(epmd)); - epmd.buffer = epres; - epmd.nbits = bmlength; - ASN_DEBUG("Read in extensions bitmap for %s of %ld bits (%x..)", - td->name, (long)bmlength, *epres); - - /* Go over extensions and read them in */ - for(edx = specs->first_extension; edx < td->elements_count; edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - void *memb_ptr; /* Pointer to the member */ - void **memb_ptr2; /* Pointer to that pointer */ - int present; - - /* Fetch the pointer to this member */ - if(elm->flags & ATF_POINTER) { - memb_ptr2 = (void **)((char *)st + elm->memb_offset); - } else { - memb_ptr = (void *)((char *)st + elm->memb_offset); - memb_ptr2 = &memb_ptr; - } - - present = per_get_few_bits(&epmd, 1); - if(present <= 0) { - if(present < 0) break; /* No more extensions */ - continue; - } - - ASN_DEBUG("Decoding member %s in %s %p", elm->name, td->name, - *memb_ptr2); - rv = uper_open_type_get(opt_codec_ctx, elm->type, - elm->encoding_constraints.per_constraints, - memb_ptr2, pd); - if(rv.code != RC_OK) { - FREEMEM(epres); - return rv; - } - } - - /* Skip over overflow extensions which aren't present - * in this system's version of the protocol */ - for(;;) { - ASN_DEBUG("Getting overflow extensions"); - switch(per_get_few_bits(&epmd, 1)) { - case -1: break; - case 0: continue; - default: - if(uper_open_type_skip(opt_codec_ctx, pd)) { - FREEMEM(epres); - ASN__DECODE_STARVED; - } - ASN_DEBUG("Skipped overflow extension"); - continue; - } - break; - } - - FREEMEM(epres); - } - - if(specs->first_extension >= 0) { - unsigned i; - /* Fill DEFAULT members in extensions */ - for(i = specs->roms_count; i < specs->roms_count + specs->aoms_count; - i++) { - asn_TYPE_member_t *elm; - void **memb_ptr2; /* Pointer to member pointer */ - - edx = specs->oms[i]; - elm = &td->elements[edx]; - - if(!elm->default_value_set) continue; - - /* Fetch the pointer to this member */ - if(elm->flags & ATF_POINTER) { - memb_ptr2 = (void **)((char *)st + elm->memb_offset); - if(*memb_ptr2) continue; - } else { - continue; /* Extensions are all optionals */ - } - - /* Set default value */ - if(elm->default_value_set(memb_ptr2)) { - ASN__DECODE_FAILED; - } - } - } - - rv.consumed = 0; - rv.code = RC_OK; - return rv; -} - -static int -SEQUENCE__handle_extensions(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_per_outp_t *po1, asn_per_outp_t *po2) { - const asn_SEQUENCE_specifics_t *specs = - (const asn_SEQUENCE_specifics_t *)td->specifics; - int exts_present = 0; - int exts_count = 0; - size_t edx; - - if(specs->first_extension < 0) { - return 0; - } - - /* Find out which extensions are present */ - for(edx = specs->first_extension; edx < td->elements_count; edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - const void *memb_ptr; /* Pointer to the member */ - const void *const *memb_ptr2; /* Pointer to that pointer */ - int present; - - /* Fetch the pointer to this member */ - if(elm->flags & ATF_POINTER) { - memb_ptr2 = - (const void *const *)((const char *)sptr + elm->memb_offset); - present = (*memb_ptr2 != 0); - } else { - memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); - memb_ptr2 = &memb_ptr; - present = 1; - } - - ASN_DEBUG("checking %s:%s (@%" ASN_PRI_SIZE ") present => %d", elm->name, - elm->type->name, edx, present); - exts_count++; - exts_present += present; - - /* Encode as presence marker */ - if(po1 && per_put_few_bits(po1, present, 1)) { - return -1; - } - /* Encode as open type field */ - if(po2 && present - && uper_open_type_put(elm->type, - elm->encoding_constraints.per_constraints, - *memb_ptr2, po2)) - return -1; - } - - return exts_present ? exts_count : 0; -} - -asn_enc_rval_t -SEQUENCE_encode_uper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, const void *sptr, - asn_per_outp_t *po) { - const asn_SEQUENCE_specifics_t *specs - = (const asn_SEQUENCE_specifics_t *)td->specifics; - asn_enc_rval_t er = {0,0,0}; - int n_extensions; - size_t edx; - size_t i; - - (void)constraints; - - if(!sptr) - ASN__ENCODE_FAILED; - - er.encoded = 0; - - ASN_DEBUG("Encoding %s as SEQUENCE (UPER)", td->name); - - /* - * X.691#18.1 Whether structure is extensible - * and whether to encode extensions - */ - if(specs->first_extension < 0) { - n_extensions = 0; /* There are no extensions to encode */ - } else { - n_extensions = SEQUENCE__handle_extensions(td, sptr, 0, 0); - if(n_extensions < 0) ASN__ENCODE_FAILED; - if(per_put_few_bits(po, n_extensions ? 1 : 0, 1)) { - ASN__ENCODE_FAILED; - } - } - - /* Encode a presence bitmap */ - for(i = 0; i < specs->roms_count; i++) { - asn_TYPE_member_t *elm; - const void *memb_ptr; /* Pointer to the member */ - const void *const *memb_ptr2; /* Pointer to that pointer */ - int present; - - edx = specs->oms[i]; - elm = &td->elements[edx]; - - /* Fetch the pointer to this member */ - if(elm->flags & ATF_POINTER) { - memb_ptr2 = - (const void *const *)((const char *)sptr + elm->memb_offset); - present = (*memb_ptr2 != 0); - } else { - memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); - memb_ptr2 = &memb_ptr; - present = 1; - } - - /* Eliminate default values */ - if(present && elm->default_value_cmp - && elm->default_value_cmp(*memb_ptr2) == 0) - present = 0; - - ASN_DEBUG("Element %s %s %s->%s is %s", - elm->flags & ATF_POINTER ? "ptr" : "inline", - elm->default_value_cmp ? "def" : "wtv", - td->name, elm->name, present ? "present" : "absent"); - if(per_put_few_bits(po, present, 1)) - ASN__ENCODE_FAILED; - } - - /* - * Encode the sequence ROOT elements. - */ - ASN_DEBUG("first_extension = %d, elements = %d", specs->first_extension, - td->elements_count); - for(edx = 0; - edx < ((specs->first_extension < 0) ? td->elements_count - : (size_t)specs->first_extension); - edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - const void *memb_ptr; /* Pointer to the member */ - const void *const *memb_ptr2; /* Pointer to that pointer */ - - ASN_DEBUG("About to encode %s", elm->type->name); - - /* Fetch the pointer to this member */ - if(elm->flags & ATF_POINTER) { - memb_ptr2 = - (const void *const *)((const char *)sptr + elm->memb_offset); - if(!*memb_ptr2) { - ASN_DEBUG("Element %s %" ASN_PRI_SIZE " not present", - elm->name, edx); - if(elm->optional) - continue; - /* Mandatory element is missing */ - ASN__ENCODE_FAILED; - } - } else { - memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); - memb_ptr2 = &memb_ptr; - } - - /* Eliminate default values */ - if(elm->default_value_cmp && elm->default_value_cmp(*memb_ptr2) == 0) - continue; - - ASN_DEBUG("Encoding %s->%s:%s", td->name, elm->name, elm->type->name); - er = elm->type->op->uper_encoder( - elm->type, elm->encoding_constraints.per_constraints, *memb_ptr2, - po); - if(er.encoded == -1) return er; - } - - /* No extensions to encode */ - if(!n_extensions) ASN__ENCODED_OK(er); - - ASN_DEBUG("Length of extensions %d bit-map", n_extensions); - /* #18.8. Write down the presence bit-map length. */ - if(uper_put_nslength(po, n_extensions)) - ASN__ENCODE_FAILED; - - ASN_DEBUG("Bit-map of %d elements", n_extensions); - /* #18.7. Encoding the extensions presence bit-map. */ - /* TODO: act upon NOTE in #18.7 for canonical PER */ - if(SEQUENCE__handle_extensions(td, sptr, po, 0) != n_extensions) - ASN__ENCODE_FAILED; - - ASN_DEBUG("Writing %d extensions", n_extensions); - /* #18.9. Encode extensions as open type fields. */ - if(SEQUENCE__handle_extensions(td, sptr, 0, po) != n_extensions) - ASN__ENCODE_FAILED; - - ASN__ENCODED_OK(er); -} - -asn_dec_rval_t -SEQUENCE_decode_aper(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, asn_per_data_t *pd) { - const asn_SEQUENCE_specifics_t *specs = (const asn_SEQUENCE_specifics_t *)td->specifics; - void *st = *sptr; /* Target structure. */ - int extpresent; /* Extension additions are present */ - uint8_t *opres; /* Presence of optional root members */ - asn_per_data_t opmd; - asn_dec_rval_t rv; - size_t edx; - - (void)constraints; - - if(ASN__STACK_OVERFLOW_CHECK(opt_codec_ctx)) - ASN__DECODE_FAILED; - - if(!st) { - st = *sptr = CALLOC(1, specs->struct_size); - if(!st) ASN__DECODE_FAILED; - } - - ASN_DEBUG("Decoding %s as SEQUENCE (APER)", td->name); - - /* Handle extensions */ - if(specs->first_extension < 0) { - extpresent = 0; - } else { - extpresent = per_get_few_bits(pd, 1); - if(extpresent < 0) ASN__DECODE_STARVED; - } - - /* Prepare a place and read-in the presence bitmap */ - memset(&opmd, 0, sizeof(opmd)); - if(specs->roms_count) { - opres = (uint8_t *)MALLOC(((specs->roms_count + 7) >> 3) + 1); - if(!opres) ASN__DECODE_FAILED; - /* Get the presence map */ - if(per_get_many_bits(pd, opres, 0, specs->roms_count)) { - FREEMEM(opres); - ASN__DECODE_STARVED; - } - opmd.buffer = opres; - opmd.nbits = specs->roms_count; - ASN_DEBUG("Read in presence bitmap for %s of %d bits (%x..)", - td->name, specs->roms_count, *opres); - } else { - opres = 0; - } - - /* - * Get the sequence ROOT elements. - */ - for(edx = 0; edx < td->elements_count; edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - void *memb_ptr; /* Pointer to the member */ - void **memb_ptr2; /* Pointer to that pointer */ -#if 0 - int padding; -#endif - - if(IN_EXTENSION_GROUP(specs, edx)) - continue; - - /* Fetch the pointer to this member */ - if(elm->flags & ATF_POINTER) { - memb_ptr2 = (void **)((char *)st + elm->memb_offset); - } else { - memb_ptr = (char *)st + elm->memb_offset; - memb_ptr2 = &memb_ptr; - } -#if 0 - /* Get Padding */ - padding = (8 - (pd->moved % 8)) % 8; - if(padding > 0) - ASN_DEBUG("For element %s,offset= %ld Padding bits = %d", td->name, pd->moved, padding); -#if 0 /* old way of removing padding */ - per_get_few_bits(pd, padding); -#else /* Experimental fix proposed by @mhanna123 */ - if(edx != (td->elements_count-1)) - per_get_few_bits(pd, padding); - else { - if(specs->roms_count && (padding > 0)) - ASN_DEBUG(">>>>> not skipping padding of %d bits for element:%ld out of %d", padding, edx, td->elements_count); - else - per_get_few_bits(pd, padding); - } -#endif /* dealing with padding */ -#endif - /* Deal with optionality */ - if(elm->optional) { - int present = per_get_few_bits(&opmd, 1); - ASN_DEBUG("Member %s->%s is optional, p=%d (%d->%d)", - td->name, elm->name, present, - (int)opmd.nboff, (int)opmd.nbits); - if(present == 0) { - /* This element is not present */ - if(elm->default_value_set) { - /* Fill-in DEFAULT */ - if(elm->default_value_set(memb_ptr2)) { - FREEMEM(opres); - ASN__DECODE_FAILED; - } - ASN_DEBUG("Filled-in default"); - } - /* The member is just not present */ - continue; - } - /* Fall through */ - } - - /* Fetch the member from the stream */ - ASN_DEBUG("Decoding member \"%s\" in %s", elm->name, td->name); - - if(elm->flags & ATF_OPEN_TYPE) { - rv = OPEN_TYPE_aper_get(opt_codec_ctx, td, st, elm, pd); - } else { - rv = elm->type->op->aper_decoder(opt_codec_ctx, elm->type, - elm->encoding_constraints.per_constraints, memb_ptr2, pd); - } - if(rv.code != RC_OK) { - ASN_DEBUG("Failed decode %s in %s", - elm->name, td->name); - FREEMEM(opres); - return rv; - } - } - - /* Optionality map is not needed anymore */ - FREEMEM(opres); - - /* - * Deal with extensions. - */ - if(extpresent) { - ssize_t bmlength; - uint8_t *epres; /* Presence of extension members */ - asn_per_data_t epmd; - - bmlength = aper_get_nslength(pd); - if(bmlength < 0) ASN__DECODE_STARVED; - - ASN_DEBUG("Extensions %" ASN_PRI_SSIZE " present in %s", bmlength, td->name); - - epres = (uint8_t *)MALLOC((bmlength + 15) >> 3); - if(!epres) ASN__DECODE_STARVED; - - /* Get the extensions map */ - if(per_get_many_bits(pd, epres, 0, bmlength)) - ASN__DECODE_STARVED; - - memset(&epmd, 0, sizeof(epmd)); - epmd.buffer = epres; - epmd.nbits = bmlength; - ASN_DEBUG("Read in extensions bitmap for %s of %ld bits (%x..)", - td->name, bmlength, *epres); - - /* Go over extensions and read them in */ - for(edx = specs->first_extension; edx < td->elements_count; edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - void *memb_ptr; /* Pointer to the member */ - void **memb_ptr2; /* Pointer to that pointer */ - int present; - - if(!IN_EXTENSION_GROUP(specs, edx)) { - ASN_DEBUG("%ld is not extension", edx); - continue; - } - - /* Fetch the pointer to this member */ - if(elm->flags & ATF_POINTER) { - memb_ptr2 = (void **)((char *)st + elm->memb_offset); - } else { - memb_ptr = (void *)((char *)st + elm->memb_offset); - memb_ptr2 = &memb_ptr; - } - - present = per_get_few_bits(&epmd, 1); - if(present <= 0) { - if(present < 0) break; /* No more extensions */ - continue; - } - - ASN_DEBUG("Decoding member %s in %s %p", elm->name, td->name, *memb_ptr2); - rv = aper_open_type_get(opt_codec_ctx, elm->type, - elm->encoding_constraints.per_constraints, memb_ptr2, pd); - if(rv.code != RC_OK) { - FREEMEM(epres); - return rv; - } - } - - /* Skip over overflow extensions which aren't present - * in this system's version of the protocol */ - for(;;) { - ASN_DEBUG("Getting overflow extensions"); - switch(per_get_few_bits(&epmd, 1)) { - case -1: - break; - case 0: - continue; - default: - if(aper_open_type_skip(opt_codec_ctx, pd)) { - FREEMEM(epres); - ASN__DECODE_STARVED; - } - } - break; - } - - FREEMEM(epres); - } - - /* Fill DEFAULT members in extensions */ - for(edx = specs->roms_count; edx < specs->roms_count - + specs->aoms_count; edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - void **memb_ptr2; /* Pointer to member pointer */ - - if(!elm->default_value_set) continue; - - /* Fetch the pointer to this member */ - if(elm->flags & ATF_POINTER) { - memb_ptr2 = (void **)((char *)st - + elm->memb_offset); - if(*memb_ptr2) continue; - } else { - continue; /* Extensions are all optionals */ - } - - /* Set default value */ - if(elm->default_value_set(memb_ptr2)) { - ASN__DECODE_FAILED; - } - } - - rv.consumed = 0; - rv.code = RC_OK; - return rv; -} - -static int -SEQUENCE_handle_extensions_aper(const asn_TYPE_descriptor_t *td, - const void *sptr, - asn_per_outp_t *po1, asn_per_outp_t *po2) { - const asn_SEQUENCE_specifics_t *specs - = (const asn_SEQUENCE_specifics_t *)td->specifics; - int exts_present = 0; - int exts_count = 0; - size_t edx; - - if(specs->first_extension < 0) { - return 0; - } - - /* Find out which extensions are present */ - for(edx = specs->first_extension; edx < td->elements_count; edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - const void *memb_ptr; /* Pointer to the member */ - const void * const *memb_ptr2; /* Pointer to that pointer */ - int present; - - if(!IN_EXTENSION_GROUP(specs, edx)) { - ASN_DEBUG("%s (@%ld) is not extension", elm->type->name, edx); - continue; - } - - /* Fetch the pointer to this member */ - if(elm->flags & ATF_POINTER) { - memb_ptr2 = (const void * const *)((const char *)sptr + elm->memb_offset); - present = (*memb_ptr2 != 0); - } else { - memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); - memb_ptr2 = &memb_ptr; - present = 1; - } - - ASN_DEBUG("checking %s (@%ld) present => %d", - elm->type->name, edx, present); - exts_count++; - exts_present += present; - - /* Encode as presence marker */ - if(po1 && per_put_few_bits(po1, present, 1)) - return -1; - /* Encode as open type field */ - if(po2 && present && aper_open_type_put(elm->type, - elm->encoding_constraints.per_constraints, *memb_ptr2, po2)) - return -1; - - } - - return exts_present ? exts_count : 0; -} - -asn_enc_rval_t -SEQUENCE_encode_aper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_per_outp_t *po) { - const asn_SEQUENCE_specifics_t *specs - = (const asn_SEQUENCE_specifics_t *)td->specifics; - asn_enc_rval_t er = {0,0,0}; - int n_extensions; - size_t edx; - size_t i; - - (void)constraints; - - if(!sptr) - ASN__ENCODE_FAILED; - - er.encoded = 0; - - ASN_DEBUG("Encoding %s as SEQUENCE (APER)", td->name); - - /* - * X.691#18.1 Whether structure is extensible - * and whether to encode extensions - */ - if(specs->first_extension < 0) { - n_extensions = 0; /* There are no extensions to encode */ - } else { - n_extensions = SEQUENCE_handle_extensions_aper(td, sptr, 0, 0); - if(n_extensions < 0) ASN__ENCODE_FAILED; - if(per_put_few_bits(po, n_extensions ? 1 : 0, 1)) { - ASN__ENCODE_FAILED; - } - } - - /* Encode a presence bitmap */ - for(i = 0; i < specs->roms_count; i++) { - asn_TYPE_member_t *elm; - const void *memb_ptr; /* Pointer to the member */ - const void * const *memb_ptr2; /* Pointer to that pointer */ - int present; - - edx = specs->oms[i]; - elm = &td->elements[edx]; - - /* Fetch the pointer to this member */ - if(elm->flags & ATF_POINTER) { - memb_ptr2 = (const void * const *)((const char *)sptr + elm->memb_offset); - present = (*memb_ptr2 != 0); - } else { - memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); - memb_ptr2 = &memb_ptr; - present = 1; - } - - /* Eliminate default values */ - if(present && elm->default_value_cmp - && elm->default_value_cmp(memb_ptr2) == 1) - present = 0; - - ASN_DEBUG("Element %s %s %s->%s is %s", - elm->flags & ATF_POINTER ? "ptr" : "inline", - elm->default_value_cmp ? "def" : "wtv", - td->name, elm->name, present ? "present" : "absent"); - if(per_put_few_bits(po, present, 1)) - ASN__ENCODE_FAILED; - } - - /* - * Encode the sequence ROOT elements. - */ - ASN_DEBUG("first_extension = %d, elements = %d", specs->first_extension, - td->elements_count); - for(edx = 0; - edx < ((specs->first_extension < 0) ? td->elements_count - : (size_t)specs->first_extension); - edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - const void *memb_ptr; /* Pointer to the member */ - const void * const *memb_ptr2; /* Pointer to that pointer */ - - if(IN_EXTENSION_GROUP(specs, edx)) - continue; - - ASN_DEBUG("About to encode %s", elm->type->name); - - /* Fetch the pointer to this member */ - if(elm->flags & ATF_POINTER) { - memb_ptr2 = (const void * const *)((const char *)sptr + elm->memb_offset); - if(!*memb_ptr2) { - ASN_DEBUG("Element %s %ld not present", - elm->name, edx); - if(elm->optional) - continue; - /* Mandatory element is missing */ - ASN__ENCODE_FAILED; - } - } else { - memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); - memb_ptr2 = &memb_ptr; - } - - /* Eliminate default values */ - if(elm->default_value_cmp && elm->default_value_cmp(memb_ptr2) == 1) - continue; - - ASN_DEBUG("Encoding %s->%s", td->name, elm->name); - er = elm->type->op->aper_encoder(elm->type, elm->encoding_constraints.per_constraints, - *memb_ptr2, po); - if(er.encoded == -1) - return er; - } - - /* No extensions to encode */ - if(!n_extensions) ASN__ENCODED_OK(er); - - ASN_DEBUG("Length of %d bit-map", n_extensions); - /* #18.8. Write down the presence bit-map length. */ - if(aper_put_nslength(po, n_extensions)) - ASN__ENCODE_FAILED; - - ASN_DEBUG("Bit-map of %d elements", n_extensions); - /* #18.7. Encoding the extensions presence bit-map. */ - /* TODO: act upon NOTE in #18.7 for canonical PER */ - if(SEQUENCE_handle_extensions_aper(td, sptr, po, 0) != n_extensions) - ASN__ENCODE_FAILED; - - ASN_DEBUG("Writing %d extensions", n_extensions); - /* #18.9. Encode extensions as open type fields. */ - if(SEQUENCE_handle_extensions_aper(td, sptr, 0, po) != n_extensions) - ASN__ENCODE_FAILED; - - ASN__ENCODED_OK(er); -} - -#endif /* ASN_DISABLE_PER_SUPPORT */ - -int -SEQUENCE_compare(const asn_TYPE_descriptor_t *td, const void *aptr, - const void *bptr) { - size_t edx; - - for(edx = 0; edx < td->elements_count; edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - const void *amemb; - const void *bmemb; - int ret; - - if(elm->flags & ATF_POINTER) { - amemb = - *(const void *const *)((const char *)aptr + elm->memb_offset); - bmemb = - *(const void *const *)((const char *)bptr + elm->memb_offset); - if(!amemb) { - if(!bmemb) continue; - if(elm->default_value_cmp - && elm->default_value_cmp(bmemb) == 0) { - /* A is absent, but B is present and equal to DEFAULT */ - continue; - } - return -1; - } else if(!bmemb) { - if(elm->default_value_cmp - && elm->default_value_cmp(amemb) == 0) { - /* B is absent, but A is present and equal to DEFAULT */ - continue; - } - return 1; - } - } else { - amemb = (const void *)((const char *)aptr + elm->memb_offset); - bmemb = (const void *)((const char *)bptr + elm->memb_offset); - } - - ret = elm->type->op->compare_struct(elm->type, amemb, bmemb); - if(ret != 0) return ret; - } - - return 0; -} - -asn_TYPE_operation_t asn_OP_SEQUENCE = { - SEQUENCE_free, - SEQUENCE_print, - SEQUENCE_compare, - SEQUENCE_decode_ber, - SEQUENCE_encode_der, - SEQUENCE_decode_xer, - SEQUENCE_encode_xer, -#ifdef ASN_DISABLE_OER_SUPPORT - 0, - 0, -#else - SEQUENCE_decode_oer, - SEQUENCE_encode_oer, -#endif /* ASN_DISABLE_OER_SUPPORT */ -#ifdef ASN_DISABLE_PER_SUPPORT - 0, - 0, - 0, - 0, -#else - SEQUENCE_decode_uper, - SEQUENCE_encode_uper, - SEQUENCE_decode_aper, - SEQUENCE_encode_aper, -#endif /* ASN_DISABLE_PER_SUPPORT */ - SEQUENCE_random_fill, - 0 /* Use generic outmost tag fetcher */ -}; - - -asn_random_fill_result_t -SEQUENCE_random_fill(const asn_TYPE_descriptor_t *td, void **sptr, - const asn_encoding_constraints_t *constr, - size_t max_length) { - const asn_SEQUENCE_specifics_t *specs = - (const asn_SEQUENCE_specifics_t *)td->specifics; - asn_random_fill_result_t result_ok = {ARFILL_OK, 0}; - asn_random_fill_result_t result_failed = {ARFILL_FAILED, 0}; - asn_random_fill_result_t result_skipped = {ARFILL_SKIPPED, 0}; - void *st = *sptr; - size_t edx; - - if(max_length == 0) return result_skipped; - - (void)constr; - - if(st == NULL) { - st = CALLOC(1, specs->struct_size); - if(st == NULL) { - return result_failed; - } - } - - for(edx = 0; edx < td->elements_count; edx++) { - const asn_TYPE_member_t *elm = &td->elements[edx]; - void *memb_ptr; /* Pointer to the member */ - void **memb_ptr2; /* Pointer to that pointer */ - asn_random_fill_result_t tmpres; - - if(elm->optional && asn_random_between(0, 4) == 2) { - /* Sometimes decide not to fill the optional value */ - continue; - } - - if(elm->flags & ATF_POINTER) { - /* Member is a pointer to another structure */ - memb_ptr2 = (void **)((char *)st + elm->memb_offset); - } else { - memb_ptr = (char *)st + elm->memb_offset; - memb_ptr2 = &memb_ptr; - } - - tmpres = elm->type->op->random_fill( - elm->type, memb_ptr2, &elm->encoding_constraints, - max_length > result_ok.length ? max_length - result_ok.length : 0); - switch(tmpres.code) { - case ARFILL_OK: - result_ok.length += tmpres.length; - continue; - case ARFILL_SKIPPED: - assert(!(elm->flags & ATF_POINTER) || *memb_ptr2 == NULL); - continue; - case ARFILL_FAILED: - if(st == *sptr) { - ASN_STRUCT_RESET(*td, st); - } else { - ASN_STRUCT_FREE(*td, st); - } - return tmpres; - } - } - - *sptr = st; - - return result_ok; -} - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/constr_SEQUENCE.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/constr_SEQUENCE.h deleted file mode 100644 index a22ed3a..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/constr_SEQUENCE.h +++ /dev/null @@ -1,68 +0,0 @@ -/*- - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef _CONSTR_SEQUENCE_H_ -#define _CONSTR_SEQUENCE_H_ - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct asn_SEQUENCE_specifics_s { - /* - * Target structure description. - */ - unsigned struct_size; /* Size of the target structure. */ - unsigned ctx_offset; /* Offset of the asn_struct_ctx_t member */ - - /* - * Tags to members mapping table (sorted). - */ - const asn_TYPE_tag2member_t *tag2el; - unsigned tag2el_count; - - /* - * Optional members of the extensions root (roms) or additions (aoms). - * Meaningful for PER. - */ - const int *oms; /* Optional MemberS */ - unsigned roms_count; /* Root optional members count */ - unsigned aoms_count; /* Additions optional members count */ - - /* - * Description of an extensions group. - * Root components are clustered at the beginning of the structure, - * whereas extensions are clustered at the end. -1 means not extensible. - */ - signed first_extension; /* First extension addition */ -} asn_SEQUENCE_specifics_t; - - -/* - * A set specialized functions dealing with the SEQUENCE type. - */ -asn_struct_free_f SEQUENCE_free; -asn_struct_print_f SEQUENCE_print; -asn_struct_compare_f SEQUENCE_compare; -asn_constr_check_f SEQUENCE_constraint; -ber_type_decoder_f SEQUENCE_decode_ber; -der_type_encoder_f SEQUENCE_encode_der; -xer_type_decoder_f SEQUENCE_decode_xer; -xer_type_encoder_f SEQUENCE_encode_xer; -oer_type_decoder_f SEQUENCE_decode_oer; -oer_type_encoder_f SEQUENCE_encode_oer; -per_type_decoder_f SEQUENCE_decode_uper; -per_type_encoder_f SEQUENCE_encode_uper; -per_type_decoder_f SEQUENCE_decode_aper; -per_type_encoder_f SEQUENCE_encode_aper; -asn_random_fill_f SEQUENCE_random_fill; -extern asn_TYPE_operation_t asn_OP_SEQUENCE; - -#ifdef __cplusplus -} -#endif - -#endif /* _CONSTR_SEQUENCE_H_ */ diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/constr_SEQUENCE_OF.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/constr_SEQUENCE_OF.c deleted file mode 100644 index 10f18cf..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/constr_SEQUENCE_OF.c +++ /dev/null @@ -1,358 +0,0 @@ -/*- - * Copyright (c) 2003, 2004, 2006 Lev Walkin . - * All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include - -/* - * The DER encoder of the SEQUENCE OF type. - */ -asn_enc_rval_t -SEQUENCE_OF_encode_der(const asn_TYPE_descriptor_t *td, const void *ptr, - int tag_mode, ber_tlv_tag_t tag, - asn_app_consume_bytes_f *cb, void *app_key) { - asn_TYPE_member_t *elm = td->elements; - const asn_anonymous_sequence_ *list = _A_CSEQUENCE_FROM_VOID(ptr); - size_t computed_size = 0; - ssize_t encoding_size = 0; - asn_enc_rval_t erval = {0,0,0}; - int edx; - - ASN_DEBUG("Estimating size of SEQUENCE OF %s", td->name); - - /* - * Gather the length of the underlying members sequence. - */ - for(edx = 0; edx < list->count; edx++) { - void *memb_ptr = list->array[edx]; - if(!memb_ptr) continue; - erval = elm->type->op->der_encoder(elm->type, memb_ptr, - 0, elm->tag, - 0, 0); - if(erval.encoded == -1) - return erval; - computed_size += erval.encoded; - } - - /* - * Encode the TLV for the sequence itself. - */ - encoding_size = der_write_tags(td, computed_size, tag_mode, 1, tag, - cb, app_key); - if(encoding_size == -1) { - erval.encoded = -1; - erval.failed_type = td; - erval.structure_ptr = ptr; - return erval; - } - - computed_size += encoding_size; - if(!cb) { - erval.encoded = computed_size; - ASN__ENCODED_OK(erval); - } - - ASN_DEBUG("Encoding members of SEQUENCE OF %s", td->name); - - /* - * Encode all members. - */ - for(edx = 0; edx < list->count; edx++) { - void *memb_ptr = list->array[edx]; - if(!memb_ptr) continue; - erval = elm->type->op->der_encoder(elm->type, memb_ptr, - 0, elm->tag, - cb, app_key); - if(erval.encoded == -1) - return erval; - encoding_size += erval.encoded; - } - - if(computed_size != (size_t)encoding_size) { - /* - * Encoded size is not equal to the computed size. - */ - erval.encoded = -1; - erval.failed_type = td; - erval.structure_ptr = ptr; - } else { - erval.encoded = computed_size; - erval.structure_ptr = 0; - erval.failed_type = 0; - } - - return erval; -} - -asn_enc_rval_t -SEQUENCE_OF_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, - int ilevel, enum xer_encoder_flags_e flags, - asn_app_consume_bytes_f *cb, void *app_key) { - asn_enc_rval_t er = {0,0,0}; - const asn_SET_OF_specifics_t *specs = (const asn_SET_OF_specifics_t *)td->specifics; - const asn_TYPE_member_t *elm = td->elements; - const asn_anonymous_sequence_ *list = _A_CSEQUENCE_FROM_VOID(sptr); - const char *mname = specs->as_XMLValueList - ? 0 - : ((*elm->name) ? elm->name : elm->type->xml_tag); - size_t mlen = mname ? strlen(mname) : 0; - int xcan = (flags & XER_F_CANONICAL); - int i; - - if(!sptr) ASN__ENCODE_FAILED; - - er.encoded = 0; - - for(i = 0; i < list->count; i++) { - asn_enc_rval_t tmper = {0,0,0}; - void *memb_ptr = list->array[i]; - if(!memb_ptr) continue; - - if(mname) { - if(!xcan) ASN__TEXT_INDENT(1, ilevel); - ASN__CALLBACK3("<", 1, mname, mlen, ">", 1); - } - - tmper = elm->type->op->xer_encoder(elm->type, memb_ptr, ilevel + 1, - flags, cb, app_key); - if(tmper.encoded == -1) return tmper; - er.encoded += tmper.encoded; - if(tmper.encoded == 0 && specs->as_XMLValueList) { - const char *name = elm->type->xml_tag; - size_t len = strlen(name); - if(!xcan) ASN__TEXT_INDENT(1, ilevel + 1); - ASN__CALLBACK3("<", 1, name, len, "/>", 2); - } - - if(mname) { - ASN__CALLBACK3("", 1); - } - } - - if(!xcan) ASN__TEXT_INDENT(1, ilevel - 1); - - ASN__ENCODED_OK(er); -cb_failed: - ASN__ENCODE_FAILED; -} - -#ifndef ASN_DISABLE_PER_SUPPORT - -asn_enc_rval_t -SEQUENCE_OF_encode_uper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_per_outp_t *po) { - const asn_anonymous_sequence_ *list; - const asn_per_constraint_t *ct; - asn_enc_rval_t er = {0,0,0}; - const asn_TYPE_member_t *elm = td->elements; - size_t encoded_edx; - - if(!sptr) ASN__ENCODE_FAILED; - list = _A_CSEQUENCE_FROM_VOID(sptr); - - er.encoded = 0; - - ASN_DEBUG("Encoding %s as SEQUENCE OF (%d)", td->name, list->count); - - if(constraints) ct = &constraints->size; - else if(td->encoding_constraints.per_constraints) - ct = &td->encoding_constraints.per_constraints->size; - else ct = 0; - - /* If extensible constraint, check if size is in root */ - if(ct) { - int not_in_root = - (list->count < ct->lower_bound || list->count > ct->upper_bound); - ASN_DEBUG("lb %ld ub %ld %s", ct->lower_bound, ct->upper_bound, - ct->flags & APC_EXTENSIBLE ? "ext" : "fix"); - if(ct->flags & APC_EXTENSIBLE) { - /* Declare whether size is in extension root */ - if(per_put_few_bits(po, not_in_root, 1)) ASN__ENCODE_FAILED; - if(not_in_root) ct = 0; - } else if(not_in_root && ct->effective_bits >= 0) { - ASN__ENCODE_FAILED; - } - - } - - if(ct && ct->effective_bits >= 0) { - /* X.691, #19.5: No length determinant */ - if(per_put_few_bits(po, list->count - ct->lower_bound, - ct->effective_bits)) - ASN__ENCODE_FAILED; - } else if(list->count == 0) { - /* When the list is empty add only the length determinant - * X.691, #20.6 and #11.9.4.1 - */ - if (uper_put_length(po, 0, 0)) { - ASN__ENCODE_FAILED; - } - ASN__ENCODED_OK(er); - } - - for(encoded_edx = 0; (ssize_t)encoded_edx < list->count;) { - ssize_t may_encode; - size_t edx; - int need_eom = 0; - - if(ct && ct->effective_bits >= 0) { - may_encode = list->count; - } else { - may_encode = - uper_put_length(po, list->count - encoded_edx, &need_eom); - if(may_encode < 0) ASN__ENCODE_FAILED; - } - - for(edx = encoded_edx; edx < encoded_edx + may_encode; edx++) { - void *memb_ptr = list->array[edx]; - if(!memb_ptr) ASN__ENCODE_FAILED; - er = elm->type->op->uper_encoder( - elm->type, elm->encoding_constraints.per_constraints, memb_ptr, - po); - if(er.encoded == -1) ASN__ENCODE_FAILED; - } - - if(need_eom && uper_put_length(po, 0, 0)) - ASN__ENCODE_FAILED; /* End of Message length */ - - encoded_edx += may_encode; - } - - ASN__ENCODED_OK(er); -} - -asn_enc_rval_t -SEQUENCE_OF_encode_aper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_per_outp_t *po) { - const asn_anonymous_sequence_ *list; - const asn_per_constraint_t *ct; - asn_enc_rval_t er = {0,0,0}; - asn_TYPE_member_t *elm = td->elements; - int seq; - - if(!sptr) ASN__ENCODE_FAILED; - list = _A_CSEQUENCE_FROM_VOID(sptr); - - er.encoded = 0; - - ASN_DEBUG("Encoding %s as SEQUENCE OF size (%d) using ALIGNED PER", td->name, list->count); - - if(constraints) ct = &constraints->size; - else if(td->encoding_constraints.per_constraints) - ct = &td->encoding_constraints.per_constraints->size; - else ct = 0; - - /* If extensible constraint, check if size is in root */ - if(ct) { - int not_in_root = (list->count < ct->lower_bound - || list->count > ct->upper_bound); - ASN_DEBUG("lb %ld ub %ld %s", - ct->lower_bound, ct->upper_bound, - ct->flags & APC_EXTENSIBLE ? "ext" : "fix"); - if(ct->flags & APC_EXTENSIBLE) { - /* Declare whether size is in extension root */ - if(per_put_few_bits(po, not_in_root, 1)) - ASN__ENCODE_FAILED; - if(not_in_root) ct = 0; - } else if(not_in_root && ct->effective_bits >= 0) - ASN__ENCODE_FAILED; - } - - if(ct && ct->effective_bits >= 0) { - /* X.691, #19.5: No length determinant */ -/* if(per_put_few_bits(po, list->count - ct->lower_bound, - ct->effective_bits)) - ASN__ENCODE_FAILED; -*/ - if (aper_put_length(po, ct->upper_bound - ct->lower_bound + 1, list->count - ct->lower_bound) < 0) - ASN__ENCODE_FAILED; - } - - for(seq = -1; seq < list->count;) { - ssize_t mayEncode; - if(seq < 0) seq = 0; - if(ct && ct->effective_bits >= 0) { - mayEncode = list->count; - } else { - mayEncode = aper_put_length(po, -1, list->count - seq); - if(mayEncode < 0) ASN__ENCODE_FAILED; - } - - while(mayEncode--) { - void *memb_ptr = list->array[seq++]; - if(!memb_ptr) ASN__ENCODE_FAILED; - er = elm->type->op->aper_encoder(elm->type, - elm->encoding_constraints.per_constraints, memb_ptr, po); - if(er.encoded == -1) - ASN__ENCODE_FAILED; - } - } - - ASN__ENCODED_OK(er); -} -#endif /* ASN_DISABLE_PER_SUPPORT */ - -int -SEQUENCE_OF_compare(const asn_TYPE_descriptor_t *td, const void *aptr, - const void *bptr) { - const asn_anonymous_sequence_ *a = _A_CSEQUENCE_FROM_VOID(aptr); - const asn_anonymous_sequence_ *b = _A_CSEQUENCE_FROM_VOID(bptr); - ssize_t idx; - - if(a && b) { - ssize_t common_length = (a->count < b->count ? a->count : b->count); - for(idx = 0; idx < common_length; idx++) { - int ret = td->elements->type->op->compare_struct( - td->elements->type, a->array[idx], b->array[idx]); - if(ret) return ret; - } - - if(idx < b->count) /* more elements in b */ - return -1; /* a is shorter, so put it first */ - if(idx < a->count) return 1; - - } else if(!a) { - return -1; - } else if(!b) { - return 1; - } - - return 0; -} - - -asn_TYPE_operation_t asn_OP_SEQUENCE_OF = { - SEQUENCE_OF_free, - SEQUENCE_OF_print, - SEQUENCE_OF_compare, - SEQUENCE_OF_decode_ber, - SEQUENCE_OF_encode_der, - SEQUENCE_OF_decode_xer, - SEQUENCE_OF_encode_xer, -#ifdef ASN_DISABLE_OER_SUPPORT - 0, - 0, -#else - SEQUENCE_OF_decode_oer, /* Same as SET OF decoder. */ - SEQUENCE_OF_encode_oer, /* Same as SET OF encoder */ -#endif /* ASN_DISABLE_OER_SUPPORT */ -#ifdef ASN_DISABLE_PER_SUPPORT - 0, - 0, - 0, - 0, -#else - SEQUENCE_OF_decode_uper, /* Same as SET OF decoder */ - SEQUENCE_OF_encode_uper, - SEQUENCE_OF_decode_aper, - SEQUENCE_OF_encode_aper, -#endif /* ASN_DISABLE_PER_SUPPORT */ - SEQUENCE_OF_random_fill, - 0 /* Use generic outmost tag fetcher */ -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/constr_SEQUENCE_OF.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/constr_SEQUENCE_OF.h deleted file mode 100644 index 6857f0f..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/constr_SEQUENCE_OF.h +++ /dev/null @@ -1,41 +0,0 @@ -/*- - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef _CONSTR_SEQUENCE_OF_H_ -#define _CONSTR_SEQUENCE_OF_H_ - -#include -#include /* Implemented using SET OF */ - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * A set specialized functions dealing with the SEQUENCE OF type. - * Generally implemented using SET OF. - */ -asn_struct_compare_f SEQUENCE_OF_compare; -der_type_encoder_f SEQUENCE_OF_encode_der; -xer_type_encoder_f SEQUENCE_OF_encode_xer; -per_type_encoder_f SEQUENCE_OF_encode_uper; -per_type_encoder_f SEQUENCE_OF_encode_aper; -extern asn_TYPE_operation_t asn_OP_SEQUENCE_OF; - -#define SEQUENCE_OF_free SET_OF_free -#define SEQUENCE_OF_print SET_OF_print -#define SEQUENCE_OF_constraint SET_OF_constraint -#define SEQUENCE_OF_decode_ber SET_OF_decode_ber -#define SEQUENCE_OF_decode_xer SET_OF_decode_xer -#define SEQUENCE_OF_decode_oer SET_OF_decode_oer -#define SEQUENCE_OF_encode_oer SET_OF_encode_oer -#define SEQUENCE_OF_decode_uper SET_OF_decode_uper -#define SEQUENCE_OF_decode_aper SET_OF_decode_aper -#define SEQUENCE_OF_random_fill SET_OF_random_fill - -#ifdef __cplusplus -} -#endif - -#endif /* _CONSTR_SET_OF_H_ */ diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/constr_SEQUENCE_oer.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/constr_SEQUENCE_oer.c deleted file mode 100644 index ecb589c..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/constr_SEQUENCE_oer.c +++ /dev/null @@ -1,561 +0,0 @@ -/* - * Copyright (c) 2017 Lev Walkin . - * All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef ASN_DISABLE_OER_SUPPORT - -#include -#include -#include -#include - -/* - * This macro "eats" the part of the buffer which is definitely "consumed", - * i.e. was correctly converted into local representation or rightfully skipped. - */ -#undef ADVANCE -#define ADVANCE(num_bytes) \ - do { \ - size_t num = num_bytes; \ - ptr = ((const char *)ptr) + num; \ - size -= num; \ - consumed_myself += num; \ - } while(0) - -/* - * Switch to the next phase of parsing. - */ -#undef NEXT_PHASE -#undef PHASE_OUT -#define NEXT_PHASE(ctx) \ - do { \ - ctx->phase++; \ - ctx->step = 0; \ - } while(0) - -/* - * Check whether we are inside the extensions group. - */ -#define IN_EXTENSION_GROUP(specs, memb_idx) \ - ((specs)->first_extension >= 0 \ - && (unsigned)(specs)->first_extension <= (memb_idx)) - -#define IN_ROOT_GROUP_PRED(edx) \ - edx < (specs->first_extension < 0 ? td->elements_count \ - : (size_t)specs->first_extension) - -#define FOR_IN_ROOT_GROUP(edx) for(edx = 0; IN_ROOT_GROUP_PRED(edx); edx++) - -/* - * Return a standardized complex structure. - */ -#undef RETURN -#define RETURN(_code) do { \ - rval.code = _code; \ - rval.consumed = consumed_myself;\ - return rval; \ - } while(0) - -/* - * Return pointer to a member. - */ -static void ** -element_ptrptr(void *struct_ptr, asn_TYPE_member_t *elm, void **tmp_save_ptr) { - if(elm->flags & ATF_POINTER) { - /* Member is a pointer to another structure */ - return (void **)((char *)struct_ptr + elm->memb_offset); - } else { - assert(tmp_save_ptr); - *tmp_save_ptr = (void *)((char *)struct_ptr + elm->memb_offset); - return tmp_save_ptr; - } -} - -static const void * -element_ptr(const void *struct_ptr, const asn_TYPE_member_t *elm) { - if(elm->flags & ATF_POINTER) { - /* Member is a pointer to another structure */ - return *(const void *const *)((const char *)struct_ptr - + elm->memb_offset); - } else { - return (const void *)((const char *)struct_ptr + elm->memb_offset); - } -} - -asn_dec_rval_t -SEQUENCE_decode_oer(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_oer_constraints_t *constraints, void **struct_ptr, - const void *ptr, size_t size) { - const asn_SEQUENCE_specifics_t *specs = - (const asn_SEQUENCE_specifics_t *)td->specifics; - asn_dec_rval_t rval = {RC_OK, 0}; - void *st = *struct_ptr; /* Target structure */ - asn_struct_ctx_t *ctx; /* Decoder context */ - size_t consumed_myself = 0; /* Consumed bytes from ptr. */ - - (void)constraints; - - if(ASN__STACK_OVERFLOW_CHECK(opt_codec_ctx)) - ASN__DECODE_FAILED; - - /* - * Create the target structure if it is not present already. - */ - if(st == 0) { - st = *struct_ptr = CALLOC(1, specs->struct_size); - if(st == 0) { - RETURN(RC_FAIL); - } - } - - /* - * Restore parsing context. - */ - ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset); - - /* - * Start to parse where left previously. - */ - switch(ctx->phase) { - case 0: { - /* - * Fetch preamble. - */ - asn_bit_data_t *preamble; - int has_extensions_bit = (specs->first_extension >= 0); - size_t preamble_bits = (has_extensions_bit + specs->roms_count); - size_t preamble_bytes = ((7 + preamble_bits) >> 3); - - ASN_DEBUG("OER SEQUENCE %s Decoding PHASE 0", td->name); - - ASN_DEBUG( - "Expecting preamble bits %" ASN_PRI_SIZE " for %s (including %d extension bits)", - preamble_bits, td->name, has_extensions_bit); - - if(preamble_bytes > size) { - ASN__DECODE_STARVED; - } - - preamble = asn_bit_data_new_contiguous(ptr, preamble_bits); - if(!preamble) { - RETURN(RC_FAIL); - } - preamble->nboff = has_extensions_bit; - ctx->ptr = preamble; - ADVANCE(preamble_bytes); - } - NEXT_PHASE(ctx); - /* FALL THROUGH */ - case 1: { - /* Decode components of the extension root */ - asn_bit_data_t *preamble = ctx->ptr; - size_t edx; - - ASN_DEBUG("OER SEQUENCE %s Decoding PHASE 1 (Root)", td->name); - - assert(preamble); - - for(edx = (ctx->step >> 1); IN_ROOT_GROUP_PRED(edx); - edx++, ctx->step = (ctx->step & ~1) + 2) { - asn_TYPE_member_t *elm = &td->elements[edx]; - - ASN_DEBUG("Decoding %s->%s", td->name, elm->name); - - assert(!IN_EXTENSION_GROUP(specs, edx)); - - if(ctx->step & 1) { - goto microphase2_decode_continues; - } - - - if(elm->optional) { - int32_t present = asn_get_few_bits(preamble, 1); - if(present < 0) { - ASN_DEBUG("Presence map ended prematurely: %d", present); - RETURN(RC_FAIL); - } else if(present == 0) { - if(elm->default_value_set) { - /* Fill-in DEFAULT */ - void *tmp; - if(elm->default_value_set( - element_ptrptr(st, elm, &tmp))) { - RETURN(RC_FAIL); - } - } - /* The member is not present. */ - continue; - } - /* Present OPTIONAL or DEFAULT component. */ - } - - /* - * MICROPHASE 2: Invoke the member-specific decoder. - */ - ctx->step |= 1; /* Confirm entering next microphase */ - microphase2_decode_continues: - if(elm->flags & ATF_OPEN_TYPE) { - rval = OPEN_TYPE_oer_get(opt_codec_ctx, td, st, elm, ptr, size); - } else { - void *save_memb_ptr; /* Temporary reference. */ - void **memb_ptr2; /* Pointer to a pointer to a memmber */ - - memb_ptr2 = element_ptrptr(st, elm, &save_memb_ptr); - - rval = elm->type->op->oer_decoder( - opt_codec_ctx, elm->type, - elm->encoding_constraints.oer_constraints, memb_ptr2, ptr, - size); - } - switch(rval.code) { - case RC_OK: - ADVANCE(rval.consumed); - break; - case RC_WMORE: - ASN_DEBUG("More bytes needed at element %s \"%s\"", td->name, - elm->name); - ADVANCE(rval.consumed); - RETURN(RC_WMORE); - case RC_FAIL: - ASN_DEBUG("Decoding failed at element %s \"%s\"", td->name, - elm->name); - RETURN(RC_FAIL); - } - } /* for(all root members) */ - - } - NEXT_PHASE(ctx); - /* FALL THROUGH */ - case 2: - assert(ctx->ptr); - { - /* Cleanup preamble. */ - asn_bit_data_t *preamble = ctx->ptr; - asn_bit_data_t *extadds; - int has_extensions_bit = (specs->first_extension >= 0); - int extensions_present = - has_extensions_bit - && (preamble->buffer == NULL - || (((const uint8_t *)preamble->buffer)[0] & 0x80)); - uint8_t unused_bits; - size_t len = 0; - ssize_t len_len; - - ASN_DEBUG("OER SEQUENCE %s Decoding PHASE 2", td->name); - - preamble->buffer = 0; /* Will do extensions_present==1 next time. */ - - if(!extensions_present) { - ctx->phase = 10; - RETURN(RC_OK); - } - - /* - * X.696 (08/2015) #16.1 (c), #16.4 - * Read in the extension addition presence bitmap. - */ - - len_len = oer_fetch_length(ptr, size, &len); - if(len_len > 0) { - ADVANCE(len_len); - } else if(len_len < 0) { - RETURN(RC_FAIL); - } else { - RETURN(RC_WMORE); - } - - if(len == 0) { - /* 16.4.1-2 */ - RETURN(RC_FAIL); - } else if(len > size) { - RETURN(RC_WMORE); - } - - /* Account for unused bits */ - unused_bits = 0x7 & *(const uint8_t *)ptr; - ADVANCE(1); - len--; - if(unused_bits && len == 0) { - RETURN(RC_FAIL); - } - - /* Get the extensions map */ - extadds = asn_bit_data_new_contiguous(ptr, len * 8 - unused_bits); - if(!extadds) { - RETURN(RC_FAIL); - } - FREEMEM(preamble); - ctx->ptr = extadds; - ADVANCE(len); - } - NEXT_PHASE(ctx); - ctx->step = - (specs->first_extension < 0 ? td->elements_count - : (size_t)specs->first_extension); - /* Fall through */ - case 3: - ASN_DEBUG("OER SEQUENCE %s Decoding PHASE 3 (Extensions)", td->name); - for(; ctx->step < (signed)td->elements_count; ctx->step++) { - asn_bit_data_t *extadds = ctx->ptr; - size_t edx = ctx->step; - asn_TYPE_member_t *elm = &td->elements[edx]; - void *tmp_memb_ptr; - void **memb_ptr2 = element_ptrptr(st, elm, &tmp_memb_ptr); - - switch(asn_get_few_bits(extadds, 1)) { - case -1: - /* - * Not every one of our extensions is known to the remote side. - * Continue filling in their defaults though. - */ - /* Fall through */ - case 0: - /* Fill-in DEFAULT */ - if(elm->default_value_set - && elm->default_value_set(memb_ptr2)) { - RETURN(RC_FAIL); - } - continue; - case 1: { - /* Read OER open type */ - ssize_t ot_size = - oer_open_type_get(opt_codec_ctx, elm->type, - elm->encoding_constraints.oer_constraints, - memb_ptr2, ptr, size); - assert(ot_size <= (ssize_t)size); - if(ot_size > 0) { - ADVANCE(ot_size); - } else if(ot_size < 0) { - RETURN(RC_FAIL); - } else { - /* Roll back open type parsing */ - asn_get_undo(extadds, 1); - RETURN(RC_WMORE); - } - break; - } - default: - RETURN(RC_FAIL); - } - } - - NEXT_PHASE(ctx); - /* Fall through */ - case 4: - ASN_DEBUG("OER SEQUENCE %s Decoding PHASE 4", td->name); - /* Read in the rest of Open Types while ignoring them */ - for(;;) { - asn_bit_data_t *extadds = ctx->ptr; - switch(asn_get_few_bits(extadds, 1)) { - case 0: - continue; - case 1: { - ssize_t skipped = oer_open_type_skip(ptr, size); - if(skipped > 0) { - ADVANCE(skipped); - } else if(skipped < 0) { - RETURN(RC_FAIL); - } else { - asn_get_undo(extadds, 1); - RETURN(RC_WMORE); - } - continue; - } - case -1: - /* No more Open Type encoded components */ - break; - default: - RETURN(RC_FAIL); - } - break; - } - } - - RETURN(RC_OK); -} - -/* - * Encode as Canonical OER. - */ -asn_enc_rval_t -SEQUENCE_encode_oer(const asn_TYPE_descriptor_t *td, - const asn_oer_constraints_t *constraints, const void *sptr, - asn_app_consume_bytes_f *cb, void *app_key) { - const asn_SEQUENCE_specifics_t *specs = (const asn_SEQUENCE_specifics_t *)td->specifics; - size_t computed_size = 0; - int has_extensions_bit = (specs->first_extension >= 0); - size_t preamble_bits = (has_extensions_bit + specs->roms_count); - uint32_t has_extensions = 0; - size_t edx; - int ret; - - (void)constraints; - - if(preamble_bits) { - asn_bit_outp_t preamble; - - memset(&preamble, 0, sizeof(preamble)); - preamble.output = cb; - preamble.op_key = app_key; - - if(has_extensions_bit) { - for(edx = specs->first_extension; edx < td->elements_count; edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - const void *memb_ptr = element_ptr(sptr, elm); - if(memb_ptr) { - if(elm->default_value_cmp - && elm->default_value_cmp(memb_ptr) == 0) { - /* Do not encode default values in extensions */ - } else { - has_extensions = 1; - break; - } - } - } - ret = asn_put_few_bits(&preamble, has_extensions, 1); - assert(ret == 0); - if(ret < 0) { - ASN__ENCODE_FAILED; - } - } - - /* - * Encode optional components bitmap. - */ - if(specs->roms_count) { - FOR_IN_ROOT_GROUP(edx) { - asn_TYPE_member_t *elm = &td->elements[edx]; - - if(IN_EXTENSION_GROUP(specs, edx)) break; - - if(elm->optional) { - const void *memb_ptr = element_ptr(sptr, elm); - uint32_t has_component = memb_ptr != NULL; - if(has_component && elm->default_value_cmp - && elm->default_value_cmp(memb_ptr) == 0) { - has_component = 0; - } - ret = asn_put_few_bits(&preamble, has_component, 1); - if(ret < 0) { - ASN__ENCODE_FAILED; - } - } - } - } - - asn_put_aligned_flush(&preamble); - computed_size += preamble.flushed_bytes; - } /* if(preamble_bits) */ - - /* - * Put root components and extensions root. - */ - for(edx = 0; edx < td->elements_count; edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - asn_enc_rval_t er = {0,0,0}; - const void *memb_ptr; - - if(IN_EXTENSION_GROUP(specs, edx)) break; - - memb_ptr = element_ptr(sptr, elm); - if(memb_ptr) { - if(elm->default_value_cmp - && elm->default_value_cmp(memb_ptr) == 0) { - /* Skip default values in encoding */ - continue; - } - } else { - if(elm->optional) continue; - /* Mandatory element is missing */ - ASN__ENCODE_FAILED; - } - if(!elm->type->op->oer_encoder) { - ASN_DEBUG("OER encoder is not defined for type %s", elm->type->name); - ASN__ENCODE_FAILED; - } - er = elm->type->op->oer_encoder( - elm->type, elm->encoding_constraints.oer_constraints, memb_ptr, cb, - app_key); - if(er.encoded == -1) { - ASN_DEBUG("... while encoding %s member \"%s\"\n", td->name, - elm->name); - return er; - } - computed_size += er.encoded; - } - - /* - * Before encode extensions, encode extensions additions presense bitmap - # X.696 (08/2015) #16.4. - */ - if(has_extensions) { - asn_bit_outp_t extadds; - - /* Special case allowing us to use exactly one byte for #8.6 */ - size_t aoms_length_bits = specs->aoms_count; - size_t aoms_length_bytes = (7 + aoms_length_bits) >> 3; - uint8_t unused_bits = 0x07 & (8 - (aoms_length_bits & 0x07)); - - assert(1 + aoms_length_bytes <= 127); - - memset(&extadds, 0, sizeof(extadds)); - extadds.output = cb; - extadds.op_key = app_key; - - /* #8.6 length determinant */ - ret = asn_put_few_bits(&extadds, (1 + aoms_length_bytes), 8); - if(ret < 0) ASN__ENCODE_FAILED; - - /* Number of unused bytes, #16.4.2 */ - ret = asn_put_few_bits(&extadds, unused_bits, 8); - if(ret < 0) ASN__ENCODE_FAILED; - - /* Encode presence bitmap #16.4.3 */ - for(edx = specs->first_extension; edx < td->elements_count; edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - const void *memb_ptr = element_ptr(sptr, elm); - if(memb_ptr && elm->default_value_cmp - && elm->default_value_cmp(memb_ptr) == 0) { - memb_ptr = 0; /* Do not encode default value. */ - } - ret |= asn_put_few_bits(&extadds, memb_ptr ? 1 : 0, 1); - } - if(ret < 0) ASN__ENCODE_FAILED; - - asn_put_aligned_flush(&extadds); - computed_size += extadds.flushed_bytes; - - /* Now, encode extensions */ - for(edx = specs->first_extension; edx < td->elements_count; edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - const void *memb_ptr = element_ptr(sptr, elm); - - if(memb_ptr) { - if(elm->default_value_cmp - && elm->default_value_cmp(memb_ptr) == 0) { - /* Do not encode default value. */ - } else { - ssize_t wrote = oer_open_type_put( - elm->type, elm->encoding_constraints.oer_constraints, - memb_ptr, cb, app_key); - if(wrote == -1) { - ASN__ENCODE_FAILED; - } - computed_size += wrote; - } - } else if(!elm->optional) { - ASN__ENCODE_FAILED; - } - } - } /* if(has_extensions) */ - - - { - asn_enc_rval_t er = {0, 0, 0}; - er.encoded = computed_size; - ASN__ENCODED_OK(er); - } -} - -#endif /* ASN_DISABLE_OER_SUPPORT */ diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/constr_SET_OF.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/constr_SET_OF.c deleted file mode 100644 index bf1dc27..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/constr_SET_OF.c +++ /dev/null @@ -1,1441 +0,0 @@ -/* - * Copyright (c) 2003-2017 Lev Walkin . - * All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include - -/* - * Number of bytes left for this structure. - * (ctx->left) indicates the number of bytes _transferred_ for the structure. - * (size) contains the number of bytes in the buffer passed. - */ -#define LEFT ((size<(size_t)ctx->left)?size:(size_t)ctx->left) - -/* - * If the subprocessor function returns with an indication that it wants - * more data, it may well be a fatal decoding problem, because the - * size is constrained by the 's L, even if the buffer size allows - * reading more data. - * For example, consider the buffer containing the following TLVs: - * ... - * The TLV length clearly indicates that one byte is expected in V, but - * if the V processor returns with "want more data" even if the buffer - * contains way more data than the V processor have seen. - */ -#define SIZE_VIOLATION (ctx->left >= 0 && (size_t)ctx->left <= size) - -/* - * This macro "eats" the part of the buffer which is definitely "consumed", - * i.e. was correctly converted into local representation or rightfully skipped. - */ -#undef ADVANCE -#define ADVANCE(num_bytes) do { \ - size_t num = num_bytes; \ - ptr = ((const char *)ptr) + num;\ - size -= num; \ - if(ctx->left >= 0) \ - ctx->left -= num; \ - consumed_myself += num; \ - } while(0) - -/* - * Switch to the next phase of parsing. - */ -#undef NEXT_PHASE -#undef PHASE_OUT -#define NEXT_PHASE(ctx) do { \ - ctx->phase++; \ - ctx->step = 0; \ - } while(0) -#define PHASE_OUT(ctx) do { ctx->phase = 10; } while(0) - -/* - * Return a standardized complex structure. - */ -#undef RETURN -#define RETURN(_code) do { \ - rval.code = _code; \ - rval.consumed = consumed_myself;\ - return rval; \ - } while(0) - -/* - * The decoder of the SET OF type. - */ -asn_dec_rval_t -SET_OF_decode_ber(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **struct_ptr, - const void *ptr, size_t size, int tag_mode) { - /* - * Bring closer parts of structure description. - */ - const asn_SET_OF_specifics_t *specs = (const asn_SET_OF_specifics_t *)td->specifics; - const asn_TYPE_member_t *elm = td->elements; /* Single one */ - - /* - * Parts of the structure being constructed. - */ - void *st = *struct_ptr; /* Target structure. */ - asn_struct_ctx_t *ctx; /* Decoder context */ - - ber_tlv_tag_t tlv_tag; /* T from TLV */ - asn_dec_rval_t rval; /* Return code from subparsers */ - - ssize_t consumed_myself = 0; /* Consumed bytes from ptr */ - - ASN_DEBUG("Decoding %s as SET OF", td->name); - - /* - * Create the target structure if it is not present already. - */ - if(st == 0) { - st = *struct_ptr = CALLOC(1, specs->struct_size); - if(st == 0) { - RETURN(RC_FAIL); - } - } - - /* - * Restore parsing context. - */ - ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset); - - /* - * Start to parse where left previously - */ - switch(ctx->phase) { - case 0: - /* - * PHASE 0. - * Check that the set of tags associated with given structure - * perfectly fits our expectations. - */ - - rval = ber_check_tags(opt_codec_ctx, td, ctx, ptr, size, - tag_mode, 1, &ctx->left, 0); - if(rval.code != RC_OK) { - ASN_DEBUG("%s tagging check failed: %d", - td->name, rval.code); - return rval; - } - - if(ctx->left >= 0) - ctx->left += rval.consumed; /* ?Substracted below! */ - ADVANCE(rval.consumed); - - ASN_DEBUG("Structure consumes %ld bytes, " - "buffer %ld", (long)ctx->left, (long)size); - - NEXT_PHASE(ctx); - /* Fall through */ - case 1: - /* - * PHASE 1. - * From the place where we've left it previously, - * try to decode the next item. - */ - for(;; ctx->step = 0) { - ssize_t tag_len; /* Length of TLV's T */ - - if(ctx->step & 1) - goto microphase2; - - /* - * MICROPHASE 1: Synchronize decoding. - */ - - if(ctx->left == 0) { - ASN_DEBUG("End of SET OF %s", td->name); - /* - * No more things to decode. - * Exit out of here. - */ - PHASE_OUT(ctx); - RETURN(RC_OK); - } - - /* - * Fetch the T from TLV. - */ - tag_len = ber_fetch_tag(ptr, LEFT, &tlv_tag); - switch(tag_len) { - case 0: if(!SIZE_VIOLATION) RETURN(RC_WMORE); - /* Fall through */ - case -1: RETURN(RC_FAIL); - } - - if(ctx->left < 0 && ((const uint8_t *)ptr)[0] == 0) { - if(LEFT < 2) { - if(SIZE_VIOLATION) - RETURN(RC_FAIL); - else - RETURN(RC_WMORE); - } else if(((const uint8_t *)ptr)[1] == 0) { - /* - * Found the terminator of the - * indefinite length structure. - */ - break; - } - } - - /* Outmost tag may be unknown and cannot be fetched/compared */ - if(elm->tag != (ber_tlv_tag_t)-1) { - if(BER_TAGS_EQUAL(tlv_tag, elm->tag)) { - /* - * The new list member of expected type has arrived. - */ - } else { - ASN_DEBUG("Unexpected tag %s fixed SET OF %s", - ber_tlv_tag_string(tlv_tag), td->name); - ASN_DEBUG("%s SET OF has tag %s", - td->name, ber_tlv_tag_string(elm->tag)); - RETURN(RC_FAIL); - } - } - - /* - * MICROPHASE 2: Invoke the member-specific decoder. - */ - ctx->step |= 1; /* Confirm entering next microphase */ - microphase2: - - /* - * Invoke the member fetch routine according to member's type - */ - rval = elm->type->op->ber_decoder(opt_codec_ctx, - elm->type, &ctx->ptr, ptr, LEFT, 0); - ASN_DEBUG("In %s SET OF %s code %d consumed %d", - td->name, elm->type->name, - rval.code, (int)rval.consumed); - switch(rval.code) { - case RC_OK: - { - asn_anonymous_set_ *list = _A_SET_FROM_VOID(st); - if(ASN_SET_ADD(list, ctx->ptr) != 0) - RETURN(RC_FAIL); - else - ctx->ptr = 0; - } - break; - case RC_WMORE: /* More data expected */ - if(!SIZE_VIOLATION) { - ADVANCE(rval.consumed); - RETURN(RC_WMORE); - } - /* Fall through */ - case RC_FAIL: /* Fatal error */ - ASN_STRUCT_FREE(*elm->type, ctx->ptr); - ctx->ptr = 0; - RETURN(RC_FAIL); - } /* switch(rval) */ - - ADVANCE(rval.consumed); - } /* for(all list members) */ - - NEXT_PHASE(ctx); - case 2: - /* - * Read in all "end of content" TLVs. - */ - while(ctx->left < 0) { - if(LEFT < 2) { - if(LEFT > 0 && ((const char *)ptr)[0] != 0) { - /* Unexpected tag */ - RETURN(RC_FAIL); - } else { - RETURN(RC_WMORE); - } - } - if(((const char *)ptr)[0] == 0 - && ((const char *)ptr)[1] == 0) { - ADVANCE(2); - ctx->left++; - } else { - RETURN(RC_FAIL); - } - } - - PHASE_OUT(ctx); - } - - RETURN(RC_OK); -} - -/* - * Internally visible buffer holding a single encoded element. - */ -struct _el_buffer { - uint8_t *buf; - size_t length; - size_t allocated_size; - unsigned bits_unused; -}; -/* Append bytes to the above structure */ -static int _el_addbytes(const void *buffer, size_t size, void *el_buf_ptr) { - struct _el_buffer *el_buf = (struct _el_buffer *)el_buf_ptr; - - if(el_buf->length + size > el_buf->allocated_size) { - size_t new_size = el_buf->allocated_size ? el_buf->allocated_size : 8; - void *p; - - do { - new_size <<= 2; - } while(el_buf->length + size > new_size); - - p = REALLOC(el_buf->buf, new_size); - if(p) { - el_buf->buf = p; - el_buf->allocated_size = new_size; - } else { - return -1; - } - } - - memcpy(el_buf->buf + el_buf->length, buffer, size); - - el_buf->length += size; - return 0; -} - -static void assert_unused_bits(const struct _el_buffer* p) { - if(p->length) { - assert((p->buf[p->length-1] & ~(0xff << p->bits_unused)) == 0); - } else { - assert(p->bits_unused == 0); - } -} - -static int _el_buf_cmp(const void *ap, const void *bp) { - const struct _el_buffer *a = (const struct _el_buffer *)ap; - const struct _el_buffer *b = (const struct _el_buffer *)bp; - size_t common_len; - int ret = 0; - - if(a->length < b->length) - common_len = a->length; - else - common_len = b->length; - - if (a->buf && b->buf) { - ret = memcmp(a->buf, b->buf, common_len); - } - if(ret == 0) { - if(a->length < b->length) - ret = -1; - else if(a->length > b->length) - ret = 1; - /* Ignore unused bits. */ - assert_unused_bits(a); - assert_unused_bits(b); - } - - return ret; -} - -static void -SET_OF__encode_sorted_free(struct _el_buffer *el_buf, size_t count) { - size_t i; - - for(i = 0; i < count; i++) { - FREEMEM(el_buf[i].buf); - } - - FREEMEM(el_buf); -} - -enum SET_OF__encode_method { - SOES_DER, /* Distinguished Encoding Rules */ - SOES_CUPER /* Canonical Unaligned Packed Encoding Rules */ -}; - -static struct _el_buffer * -SET_OF__encode_sorted(const asn_TYPE_member_t *elm, - const asn_anonymous_set_ *list, - enum SET_OF__encode_method method) { - struct _el_buffer *encoded_els; - int edx; - - encoded_els = - (struct _el_buffer *)CALLOC(list->count, sizeof(encoded_els[0])); - if(encoded_els == NULL) { - return NULL; - } - - /* - * Encode all members. - */ - for(edx = 0; edx < list->count; edx++) { - const void *memb_ptr = list->array[edx]; - struct _el_buffer *encoding_el = &encoded_els[edx]; - asn_enc_rval_t erval = {0,0,0}; - - if(!memb_ptr) break; - - /* - * Encode the member into the prepared space. - */ - switch(method) { - case SOES_DER: - erval = elm->type->op->der_encoder(elm->type, memb_ptr, 0, elm->tag, - _el_addbytes, encoding_el); - break; - case SOES_CUPER: - erval = uper_encode(elm->type, - elm->encoding_constraints.per_constraints, - memb_ptr, _el_addbytes, encoding_el); - if(erval.encoded != -1) { - size_t extra_bits = erval.encoded % 8; - assert(encoding_el->length == (size_t)(erval.encoded + 7) / 8); - encoding_el->bits_unused = (8 - extra_bits) & 0x7; - } - break; - default: - assert(!"Unreachable"); - break; - } - if(erval.encoded < 0) break; - } - - if(edx == list->count) { - /* - * Sort the encoded elements according to their encoding. - */ - qsort(encoded_els, list->count, sizeof(encoded_els[0]), _el_buf_cmp); - - return encoded_els; - } else { - SET_OF__encode_sorted_free(encoded_els, edx); - return NULL; - } -} - - -/* - * The DER encoder of the SET OF type. - */ -asn_enc_rval_t -SET_OF_encode_der(const asn_TYPE_descriptor_t *td, const void *sptr, - int tag_mode, ber_tlv_tag_t tag, asn_app_consume_bytes_f *cb, - void *app_key) { - const asn_TYPE_member_t *elm = td->elements; - const asn_anonymous_set_ *list = _A_CSET_FROM_VOID(sptr); - size_t computed_size = 0; - ssize_t encoding_size = 0; - struct _el_buffer *encoded_els; - int edx; - - ASN_DEBUG("Estimating size for SET OF %s", td->name); - - /* - * Gather the length of the underlying members sequence. - */ - for(edx = 0; edx < list->count; edx++) { - void *memb_ptr = list->array[edx]; - asn_enc_rval_t erval = {0,0,0}; - - if(!memb_ptr) ASN__ENCODE_FAILED; - - erval = - elm->type->op->der_encoder(elm->type, memb_ptr, 0, elm->tag, 0, 0); - if(erval.encoded == -1) return erval; - computed_size += erval.encoded; - } - - - /* - * Encode the TLV for the sequence itself. - */ - encoding_size = - der_write_tags(td, computed_size, tag_mode, 1, tag, cb, app_key); - if(encoding_size < 0) { - ASN__ENCODE_FAILED; - } - computed_size += encoding_size; - - if(!cb || list->count == 0) { - asn_enc_rval_t erval = {0,0,0}; - erval.encoded = computed_size; - ASN__ENCODED_OK(erval); - } - - ASN_DEBUG("Encoding members of %s SET OF", td->name); - - /* - * DER mandates dynamic sorting of the SET OF elements - * according to their encodings. Build an array of the - * encoded elements. - */ - encoded_els = SET_OF__encode_sorted(elm, list, SOES_DER); - - /* - * Report encoded elements to the application. - * Dispose of temporary sorted members table. - */ - for(edx = 0; edx < list->count; edx++) { - struct _el_buffer *encoded_el = &encoded_els[edx]; - /* Report encoded chunks to the application */ - if(cb(encoded_el->buf, encoded_el->length, app_key) < 0) { - break; - } else { - encoding_size += encoded_el->length; - } - } - - SET_OF__encode_sorted_free(encoded_els, list->count); - - if(edx == list->count) { - asn_enc_rval_t erval = {0,0,0}; - assert(computed_size == (size_t)encoding_size); - erval.encoded = computed_size; - ASN__ENCODED_OK(erval); - } else { - ASN__ENCODE_FAILED; - } -} - -#undef XER_ADVANCE -#define XER_ADVANCE(num_bytes) do { \ - size_t num = num_bytes; \ - buf_ptr = ((const char *)buf_ptr) + num;\ - size -= num; \ - consumed_myself += num; \ - } while(0) - -/* - * Decode the XER (XML) data. - */ -asn_dec_rval_t -SET_OF_decode_xer(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **struct_ptr, - const char *opt_mname, const void *buf_ptr, size_t size) { - /* - * Bring closer parts of structure description. - */ - const asn_SET_OF_specifics_t *specs = (const asn_SET_OF_specifics_t *)td->specifics; - const asn_TYPE_member_t *element = td->elements; - const char *elm_tag; - const char *xml_tag = opt_mname ? opt_mname : td->xml_tag; - - /* - * ... and parts of the structure being constructed. - */ - void *st = *struct_ptr; /* Target structure. */ - asn_struct_ctx_t *ctx; /* Decoder context */ - - asn_dec_rval_t rval = {RC_OK, 0};/* Return value from a decoder */ - ssize_t consumed_myself = 0; /* Consumed bytes from ptr */ - - /* - * Create the target structure if it is not present already. - */ - if(st == 0) { - st = *struct_ptr = CALLOC(1, specs->struct_size); - if(st == 0) RETURN(RC_FAIL); - } - - /* Which tag is expected for the downstream */ - if(specs->as_XMLValueList) { - elm_tag = (specs->as_XMLValueList == 1) ? 0 : ""; - } else { - elm_tag = (*element->name) - ? element->name : element->type->xml_tag; - } - - /* - * Restore parsing context. - */ - ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset); - - /* - * Phases of XER/XML processing: - * Phase 0: Check that the opening tag matches our expectations. - * Phase 1: Processing body and reacting on closing tag. - * Phase 2: Processing inner type. - */ - for(; ctx->phase <= 2;) { - pxer_chunk_type_e ch_type; /* XER chunk type */ - ssize_t ch_size; /* Chunk size */ - xer_check_tag_e tcv; /* Tag check value */ - - /* - * Go inside the inner member of a set. - */ - if(ctx->phase == 2) { - asn_dec_rval_t tmprval = {RC_OK, 0}; - - /* Invoke the inner type decoder, m.b. multiple times */ - ASN_DEBUG("XER/SET OF element [%s]", elm_tag); - tmprval = element->type->op->xer_decoder(opt_codec_ctx, - element->type, &ctx->ptr, elm_tag, - buf_ptr, size); - if(tmprval.code == RC_OK) { - asn_anonymous_set_ *list = _A_SET_FROM_VOID(st); - if(ASN_SET_ADD(list, ctx->ptr) != 0) - RETURN(RC_FAIL); - ctx->ptr = 0; - XER_ADVANCE(tmprval.consumed); - } else { - XER_ADVANCE(tmprval.consumed); - RETURN(tmprval.code); - } - ctx->phase = 1; /* Back to body processing */ - ASN_DEBUG("XER/SET OF phase => %d", ctx->phase); - /* Fall through */ - } - - /* - * Get the next part of the XML stream. - */ - ch_size = xer_next_token(&ctx->context, - buf_ptr, size, &ch_type); - if(ch_size == -1) { - RETURN(RC_FAIL); - } else { - switch(ch_type) { - case PXER_WMORE: - RETURN(RC_WMORE); - case PXER_COMMENT: /* Got XML comment */ - case PXER_TEXT: /* Ignore free-standing text */ - XER_ADVANCE(ch_size); /* Skip silently */ - continue; - case PXER_TAG: - break; /* Check the rest down there */ - } - } - - tcv = xer_check_tag(buf_ptr, ch_size, xml_tag); - ASN_DEBUG("XER/SET OF: tcv = %d, ph=%d t=%s", - tcv, ctx->phase, xml_tag); - switch(tcv) { - case XCT_CLOSING: - if(ctx->phase == 0) break; - ctx->phase = 0; - /* Fall through */ - case XCT_BOTH: - if(ctx->phase == 0) { - /* No more things to decode */ - XER_ADVANCE(ch_size); - ctx->phase = 3; /* Phase out */ - RETURN(RC_OK); - } - /* Fall through */ - case XCT_OPENING: - if(ctx->phase == 0) { - XER_ADVANCE(ch_size); - ctx->phase = 1; /* Processing body phase */ - continue; - } - /* Fall through */ - case XCT_UNKNOWN_OP: - case XCT_UNKNOWN_BO: - - ASN_DEBUG("XER/SET OF: tcv=%d, ph=%d", tcv, ctx->phase); - if(ctx->phase == 1) { - /* - * Process a single possible member. - */ - ctx->phase = 2; - continue; - } - /* Fall through */ - default: - break; - } - - ASN_DEBUG("Unexpected XML tag in SET OF"); - break; - } - - ctx->phase = 3; /* "Phase out" on hard failure */ - RETURN(RC_FAIL); -} - - - -typedef struct xer_tmp_enc_s { - void *buffer; - size_t offset; - size_t size; -} xer_tmp_enc_t; -static int -SET_OF_encode_xer_callback(const void *buffer, size_t size, void *key) { - xer_tmp_enc_t *t = (xer_tmp_enc_t *)key; - if(t->offset + size >= t->size) { - size_t newsize = (t->size << 2) + size; - void *p = REALLOC(t->buffer, newsize); - if(!p) return -1; - t->buffer = p; - t->size = newsize; - } - memcpy((char *)t->buffer + t->offset, buffer, size); - t->offset += size; - return 0; -} -static int -SET_OF_xer_order(const void *aptr, const void *bptr) { - const xer_tmp_enc_t *a = (const xer_tmp_enc_t *)aptr; - const xer_tmp_enc_t *b = (const xer_tmp_enc_t *)bptr; - size_t minlen = a->offset; - int ret; - if(b->offset < minlen) minlen = b->offset; - /* Well-formed UTF-8 has this nice lexicographical property... */ - ret = memcmp(a->buffer, b->buffer, minlen); - if(ret != 0) return ret; - if(a->offset == b->offset) - return 0; - if(a->offset == minlen) - return -1; - return 1; -} - - -asn_enc_rval_t -SET_OF_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, - enum xer_encoder_flags_e flags, asn_app_consume_bytes_f *cb, - void *app_key) { - asn_enc_rval_t er = {0,0,0}; - const asn_SET_OF_specifics_t *specs = (const asn_SET_OF_specifics_t *)td->specifics; - const asn_TYPE_member_t *elm = td->elements; - const asn_anonymous_set_ *list = _A_CSET_FROM_VOID(sptr); - const char *mname = specs->as_XMLValueList - ? 0 : ((*elm->name) ? elm->name : elm->type->xml_tag); - size_t mlen = mname ? strlen(mname) : 0; - int xcan = (flags & XER_F_CANONICAL); - xer_tmp_enc_t *encs = 0; - size_t encs_count = 0; - void *original_app_key = app_key; - asn_app_consume_bytes_f *original_cb = cb; - int i; - - if(!sptr) ASN__ENCODE_FAILED; - - if(xcan) { - encs = (xer_tmp_enc_t *)MALLOC(list->count * sizeof(encs[0])); - if(!encs) ASN__ENCODE_FAILED; - cb = SET_OF_encode_xer_callback; - } - - er.encoded = 0; - - for(i = 0; i < list->count; i++) { - asn_enc_rval_t tmper = {0,0,0}; - - void *memb_ptr = list->array[i]; - if(!memb_ptr) continue; - - if(encs) { - memset(&encs[encs_count], 0, sizeof(encs[0])); - app_key = &encs[encs_count]; - encs_count++; - } - - if(mname) { - if(!xcan) ASN__TEXT_INDENT(1, ilevel); - ASN__CALLBACK3("<", 1, mname, mlen, ">", 1); - } - - if(!xcan && specs->as_XMLValueList == 1) - ASN__TEXT_INDENT(1, ilevel + 1); - tmper = elm->type->op->xer_encoder(elm->type, memb_ptr, - ilevel + (specs->as_XMLValueList != 2), - flags, cb, app_key); - if(tmper.encoded == -1) return tmper; - er.encoded += tmper.encoded; - if(tmper.encoded == 0 && specs->as_XMLValueList) { - const char *name = elm->type->xml_tag; - size_t len = strlen(name); - ASN__CALLBACK3("<", 1, name, len, "/>", 2); - } - - if(mname) { - ASN__CALLBACK3("", 1); - } - - } - - if(!xcan) ASN__TEXT_INDENT(1, ilevel - 1); - - if(encs) { - xer_tmp_enc_t *enc = encs; - xer_tmp_enc_t *end = encs + encs_count; - ssize_t control_size = 0; - - er.encoded = 0; - cb = original_cb; - app_key = original_app_key; - qsort(encs, encs_count, sizeof(encs[0]), SET_OF_xer_order); - - for(; enc < end; enc++) { - ASN__CALLBACK(enc->buffer, enc->offset); - FREEMEM(enc->buffer); - enc->buffer = 0; - control_size += enc->offset; - } - assert(control_size == er.encoded); - } - - goto cleanup; -cb_failed: - ASN__ENCODE_FAILED; -cleanup: - if(encs) { - size_t n; - for(n = 0; n < encs_count; n++) { - FREEMEM(encs[n].buffer); - } - FREEMEM(encs); - } - ASN__ENCODED_OK(er); -} - -int -SET_OF_print(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, - asn_app_consume_bytes_f *cb, void *app_key) { - asn_TYPE_member_t *elm = td->elements; - const asn_anonymous_set_ *list = _A_CSET_FROM_VOID(sptr); - int ret; - int i; - - if(!sptr) return (cb("", 8, app_key) < 0) ? -1 : 0; - - /* Dump preamble */ - if(cb(td->name, strlen(td->name), app_key) < 0 - || cb(" ::= {", 6, app_key) < 0) - return -1; - - for(i = 0; i < list->count; i++) { - const void *memb_ptr = list->array[i]; - if(!memb_ptr) continue; - - _i_INDENT(1); - - ret = elm->type->op->print_struct(elm->type, memb_ptr, - ilevel + 1, cb, app_key); - if(ret) return ret; - } - - ilevel--; - _i_INDENT(1); - - return (cb("}", 1, app_key) < 0) ? -1 : 0; -} - -void -SET_OF_free(const asn_TYPE_descriptor_t *td, void *ptr, - enum asn_struct_free_method method) { - if(td && ptr) { - const asn_SET_OF_specifics_t *specs; - asn_TYPE_member_t *elm = td->elements; - asn_anonymous_set_ *list = _A_SET_FROM_VOID(ptr); - asn_struct_ctx_t *ctx; /* Decoder context */ - int i; - - /* - * Could not use set_of_empty() because of (*free) - * incompatibility. - */ - for(i = 0; i < list->count; i++) { - void *memb_ptr = list->array[i]; - if(memb_ptr) - ASN_STRUCT_FREE(*elm->type, memb_ptr); - } - list->count = 0; /* No meaningful elements left */ - - asn_set_empty(list); /* Remove (list->array) */ - - specs = (const asn_SET_OF_specifics_t *)td->specifics; - ctx = (asn_struct_ctx_t *)((char *)ptr + specs->ctx_offset); - if(ctx->ptr) { - ASN_STRUCT_FREE(*elm->type, ctx->ptr); - ctx->ptr = 0; - } - - switch(method) { - case ASFM_FREE_EVERYTHING: - FREEMEM(ptr); - break; - case ASFM_FREE_UNDERLYING: - break; - case ASFM_FREE_UNDERLYING_AND_RESET: - memset(ptr, 0, specs->struct_size); - break; - } - } -} - -int -SET_OF_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, - asn_app_constraint_failed_f *ctfailcb, void *app_key) { - const asn_TYPE_member_t *elm = td->elements; - asn_constr_check_f *constr; - const asn_anonymous_set_ *list = _A_CSET_FROM_VOID(sptr); - int i; - - if(!sptr) { - ASN__CTFAIL(app_key, td, sptr, - "%s: value not given (%s:%d)", - td->name, __FILE__, __LINE__); - return -1; - } - - constr = elm->encoding_constraints.general_constraints; - if(!constr) constr = elm->type->encoding_constraints.general_constraints; - - /* - * Iterate over the members of an array. - * Validate each in turn, until one fails. - */ - for(i = 0; i < list->count; i++) { - const void *memb_ptr = list->array[i]; - int ret; - - if(!memb_ptr) continue; - - ret = constr(elm->type, memb_ptr, ctfailcb, app_key); - if(ret) return ret; - } - - return 0; -} - -#ifndef ASN_DISABLE_PER_SUPPORT - -asn_dec_rval_t -SET_OF_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, - asn_per_data_t *pd) { - asn_dec_rval_t rv = {RC_OK, 0}; - const asn_SET_OF_specifics_t *specs = (const asn_SET_OF_specifics_t *)td->specifics; - const asn_TYPE_member_t *elm = td->elements; /* Single one */ - void *st = *sptr; - asn_anonymous_set_ *list; - const asn_per_constraint_t *ct; - int repeat = 0; - ssize_t nelems; - - if(ASN__STACK_OVERFLOW_CHECK(opt_codec_ctx)) - ASN__DECODE_FAILED; - - /* - * Create the target structure if it is not present already. - */ - if(!st) { - st = *sptr = CALLOC(1, specs->struct_size); - if(!st) ASN__DECODE_FAILED; - } - list = _A_SET_FROM_VOID(st); - - /* Figure out which constraints to use */ - if(constraints) ct = &constraints->size; - else if(td->encoding_constraints.per_constraints) - ct = &td->encoding_constraints.per_constraints->size; - else ct = 0; - - if(ct && ct->flags & APC_EXTENSIBLE) { - int value = per_get_few_bits(pd, 1); - if(value < 0) ASN__DECODE_STARVED; - if(value) ct = 0; /* Not restricted! */ - } - - if(ct && ct->effective_bits >= 0) { - /* X.691, #19.5: No length determinant */ - nelems = per_get_few_bits(pd, ct->effective_bits); - ASN_DEBUG("Preparing to fetch %ld+%ld elements from %s", - (long)nelems, ct->lower_bound, td->name); - if(nelems < 0) ASN__DECODE_STARVED; - nelems += ct->lower_bound; - } else { - nelems = -1; - } - - do { - int i; - if(nelems < 0) { - nelems = uper_get_length(pd, -1, 0, &repeat); - ASN_DEBUG("Got to decode %" ASN_PRI_SSIZE " elements (eff %d)", - nelems, (int)(ct ? ct->effective_bits : -1)); - if(nelems < 0) ASN__DECODE_STARVED; - } - - for(i = 0; i < nelems; i++) { - void *ptr = 0; - ASN_DEBUG("SET OF %s decoding", elm->type->name); - rv = elm->type->op->uper_decoder(opt_codec_ctx, elm->type, - elm->encoding_constraints.per_constraints, &ptr, pd); - ASN_DEBUG("%s SET OF %s decoded %d, %p", - td->name, elm->type->name, rv.code, ptr); - if(rv.code == RC_OK) { - if(ASN_SET_ADD(list, ptr) == 0) { - if(rv.consumed == 0 && nelems > 200) { - /* Protect from SET OF NULL compression bombs. */ - ASN__DECODE_FAILED; - } - continue; - } - ASN_DEBUG("Failed to add element into %s", - td->name); - /* Fall through */ - rv.code = RC_FAIL; - } else { - ASN_DEBUG("Failed decoding %s of %s (SET OF)", - elm->type->name, td->name); - } - if(ptr) ASN_STRUCT_FREE(*elm->type, ptr); - return rv; - } - - nelems = -1; /* Allow uper_get_length() */ - } while(repeat); - - ASN_DEBUG("Decoded %s as SET OF", td->name); - - rv.code = RC_OK; - rv.consumed = 0; - return rv; -} - -asn_enc_rval_t -SET_OF_encode_uper(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, const void *sptr, - asn_per_outp_t *po) { - const asn_anonymous_set_ *list; - const asn_per_constraint_t *ct; - const asn_TYPE_member_t *elm = td->elements; - struct _el_buffer *encoded_els; - asn_enc_rval_t er = {0,0,0}; - size_t encoded_edx; - - if(!sptr) ASN__ENCODE_FAILED; - - list = _A_CSET_FROM_VOID(sptr); - - er.encoded = 0; - - ASN_DEBUG("Encoding %s as SEQUENCE OF (%d)", td->name, list->count); - - if(constraints) ct = &constraints->size; - else if(td->encoding_constraints.per_constraints) - ct = &td->encoding_constraints.per_constraints->size; - else ct = 0; - - /* If extensible constraint, check if size is in root */ - if(ct) { - int not_in_root = - (list->count < ct->lower_bound || list->count > ct->upper_bound); - ASN_DEBUG("lb %ld ub %ld %s", ct->lower_bound, ct->upper_bound, - ct->flags & APC_EXTENSIBLE ? "ext" : "fix"); - if(ct->flags & APC_EXTENSIBLE) { - /* Declare whether size is in extension root */ - if(per_put_few_bits(po, not_in_root, 1)) ASN__ENCODE_FAILED; - if(not_in_root) ct = 0; - } else if(not_in_root && ct->effective_bits >= 0) { - ASN__ENCODE_FAILED; - } - - } - - if(ct && ct->effective_bits >= 0) { - /* X.691, #19.5: No length determinant */ - if(per_put_few_bits(po, list->count - ct->lower_bound, - ct->effective_bits)) - ASN__ENCODE_FAILED; - } else if(list->count == 0) { - /* When the list is empty add only the length determinant - * X.691, #20.6 and #11.9.4.1 - */ - if (uper_put_length(po, 0, 0)) { - ASN__ENCODE_FAILED; - } - ASN__ENCODED_OK(er); - } - - - /* - * Canonical UPER #22.1 mandates dynamic sorting of the SET OF elements - * according to their encodings. Build an array of the encoded elements. - */ - encoded_els = SET_OF__encode_sorted(elm, list, SOES_CUPER); - - for(encoded_edx = 0; (ssize_t)encoded_edx < list->count;) { - ssize_t may_encode; - size_t edx; - int need_eom = 0; - - if(ct && ct->effective_bits >= 0) { - may_encode = list->count; - } else { - may_encode = - uper_put_length(po, list->count - encoded_edx, &need_eom); - if(may_encode < 0) ASN__ENCODE_FAILED; - } - - for(edx = encoded_edx; edx < encoded_edx + may_encode; edx++) { - const struct _el_buffer *el = &encoded_els[edx]; - if(asn_put_many_bits(po, el->buf, - (8 * el->length) - el->bits_unused) < 0) { - break; - } - } - - if(need_eom && uper_put_length(po, 0, 0)) - ASN__ENCODE_FAILED; /* End of Message length */ - - encoded_edx += may_encode; - } - - SET_OF__encode_sorted_free(encoded_els, list->count); - - if((ssize_t)encoded_edx == list->count) { - ASN__ENCODED_OK(er); - } else { - ASN__ENCODE_FAILED; - } -} - -asn_dec_rval_t -SET_OF_decode_aper(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, asn_per_data_t *pd) { - asn_dec_rval_t rv = {RC_OK, 0}; - const asn_SET_OF_specifics_t *specs = (const asn_SET_OF_specifics_t *)td->specifics; - const asn_TYPE_member_t *elm = td->elements; /* Single one */ - void *st = *sptr; - asn_anonymous_set_ *list; - const asn_per_constraint_t *ct; - int repeat = 0; - ssize_t nelems; - - if(ASN__STACK_OVERFLOW_CHECK(opt_codec_ctx)) - ASN__DECODE_FAILED; - - /* - * Create the target structure if it is not present already. - */ - if(!st) { - st = *sptr = CALLOC(1, specs->struct_size); - if(!st) ASN__DECODE_FAILED; - } - list = _A_SET_FROM_VOID(st); - - /* Figure out which constraints to use */ - if(constraints) ct = &constraints->size; - else if(td->encoding_constraints.per_constraints) - ct = &td->encoding_constraints.per_constraints->size; - else ct = 0; - - if(ct && ct->flags & APC_EXTENSIBLE) { - int value = per_get_few_bits(pd, 1); - if(value < 0) ASN__DECODE_STARVED; - if(value) ct = 0; /* Not restricted! */ - } - - if(ct && ct->effective_bits >= 0) { - /* X.691, #19.5: No length determinant */ - nelems = aper_get_nsnnwn(pd, ct->upper_bound - ct->lower_bound + 1); - ASN_DEBUG("Preparing to fetch %ld+%ld elements from %s", - (long)nelems, ct->lower_bound, td->name); - if(nelems < 0) ASN__DECODE_STARVED; - nelems += ct->lower_bound; - } else { - nelems = -1; - } - - do { - int i; - if(nelems < 0) { - nelems = aper_get_length(pd, ct ? ct->upper_bound - ct->lower_bound + 1 : -1, - ct ? ct->effective_bits : -1, &repeat); - ASN_DEBUG("Got to decode %d elements (eff %d)", - (int)nelems, (int)(ct ? ct->effective_bits : -1)); - if(nelems < 0) ASN__DECODE_STARVED; - } - - for(i = 0; i < nelems; i++) { - void *ptr = 0; - ASN_DEBUG("SET OF %s decoding", elm->type->name); - rv = elm->type->op->aper_decoder(opt_codec_ctx, elm->type, - elm->encoding_constraints.per_constraints, &ptr, pd); - ASN_DEBUG("%s SET OF %s decoded %d, %p", - td->name, elm->type->name, rv.code, ptr); - if(rv.code == RC_OK) { - if(ASN_SET_ADD(list, ptr) == 0) - continue; - ASN_DEBUG("Failed to add element into %s", - td->name); - /* Fall through */ - rv.code = RC_FAIL; - } else { - ASN_DEBUG("Failed decoding %s of %s (SET OF)", - elm->type->name, td->name); - } - if(ptr) ASN_STRUCT_FREE(*elm->type, ptr); - return rv; - } - - nelems = -1; /* Allow uper_get_length() */ - } while(repeat); - - ASN_DEBUG("Decoded %s as SET OF", td->name); - - rv.code = RC_OK; - rv.consumed = 0; - return rv; -} - -#endif /* ASN_DISABLE_PER_SUPPORT */ - -struct comparable_ptr { - const asn_TYPE_descriptor_t *td; - const void *sptr; -}; - -static int -SET_OF__compare_cb(const void *aptr, const void *bptr) { - const struct comparable_ptr *a = aptr; - const struct comparable_ptr *b = bptr; - assert(a->td == b->td); - return a->td->op->compare_struct(a->td, a->sptr, b->sptr); -} - -int -SET_OF_compare(const asn_TYPE_descriptor_t *td, const void *aptr, - const void *bptr) { - const asn_anonymous_set_ *a = _A_CSET_FROM_VOID(aptr); - const asn_anonymous_set_ *b = _A_CSET_FROM_VOID(bptr); - - if(a && b) { - struct comparable_ptr *asorted; - struct comparable_ptr *bsorted; - ssize_t common_length; - ssize_t idx; - - if(a->count == 0) { - if(b->count) return -1; - return 0; - } else if(b->count == 0) { - return 1; - } - - asorted = MALLOC(a->count * sizeof(asorted[0])); - bsorted = MALLOC(b->count * sizeof(bsorted[0])); - if(!asorted || !bsorted) { - FREEMEM(asorted); - FREEMEM(bsorted); - return -1; - } - - for(idx = 0; idx < a->count; idx++) { - asorted[idx].td = td->elements->type; - asorted[idx].sptr = a->array[idx]; - } - - for(idx = 0; idx < b->count; idx++) { - bsorted[idx].td = td->elements->type; - bsorted[idx].sptr = b->array[idx]; - } - - qsort(asorted, a->count, sizeof(asorted[0]), SET_OF__compare_cb); - qsort(bsorted, b->count, sizeof(bsorted[0]), SET_OF__compare_cb); - - common_length = (a->count < b->count ? a->count : b->count); - for(idx = 0; idx < common_length; idx++) { - int ret = td->elements->type->op->compare_struct( - td->elements->type, asorted[idx].sptr, bsorted[idx].sptr); - if(ret) { - FREEMEM(asorted); - FREEMEM(bsorted); - return ret; - } - } - - FREEMEM(asorted); - FREEMEM(bsorted); - - if(idx < b->count) /* more elements in b */ - return -1; /* a is shorter, so put it first */ - if(idx < a->count) return 1; - } else if(!a) { - return -1; - } else if(!b) { - return 1; - } - - return 0; -} - - -asn_TYPE_operation_t asn_OP_SET_OF = { - SET_OF_free, - SET_OF_print, - SET_OF_compare, - SET_OF_decode_ber, - SET_OF_encode_der, - SET_OF_decode_xer, - SET_OF_encode_xer, -#ifdef ASN_DISABLE_OER_SUPPORT - 0, - 0, -#else - SET_OF_decode_oer, - SET_OF_encode_oer, -#endif -#ifdef ASN_DISABLE_PER_SUPPORT - 0, - 0, - 0, - 0, -#else - SET_OF_decode_uper, - SET_OF_encode_uper, - SET_OF_decode_aper, - 0, /* SET_OF_encode_aper */ -#endif /* ASN_DISABLE_PER_SUPPORT */ - SET_OF_random_fill, - 0 /* Use generic outmost tag fetcher */ -}; - - -asn_random_fill_result_t -SET_OF_random_fill(const asn_TYPE_descriptor_t *td, void **sptr, - const asn_encoding_constraints_t *constraints, - size_t max_length) { - const asn_SET_OF_specifics_t *specs = - (const asn_SET_OF_specifics_t *)td->specifics; - asn_random_fill_result_t res_ok = {ARFILL_OK, 0}; - asn_random_fill_result_t result_failed = {ARFILL_FAILED, 0}; - asn_random_fill_result_t result_skipped = {ARFILL_SKIPPED, 0}; - const asn_TYPE_member_t *elm = td->elements; - void *st = *sptr; - long max_elements = 5; - long slb = 0; /* Lower size bound */ - long sub = 0; /* Upper size bound */ - size_t rnd_len; - - if(max_length == 0) return result_skipped; - - if(st == NULL) { - st = (*sptr = CALLOC(1, specs->struct_size)); - if(st == NULL) { - return result_failed; - } - } - - switch(asn_random_between(0, 6)) { - case 0: max_elements = 0; break; - case 1: max_elements = 1; break; - case 2: max_elements = 5; break; - case 3: max_elements = max_length; break; - case 4: max_elements = max_length / 2; break; - case 5: max_elements = max_length / 4; break; - default: break; - } - sub = slb + max_elements; - - if(!constraints || !constraints->per_constraints) - constraints = &td->encoding_constraints; - if(constraints->per_constraints) { - const asn_per_constraint_t *pc = &constraints->per_constraints->size; - if(pc->flags & APC_SEMI_CONSTRAINED) { - slb = pc->lower_bound; - sub = pc->lower_bound + max_elements; - } else if(pc->flags & APC_CONSTRAINED) { - slb = pc->lower_bound; - sub = pc->upper_bound; - if(sub - slb > max_elements) sub = slb + max_elements; - } - } - - /* Bias towards edges of allowed space */ - switch(asn_random_between(-1, 4)) { - default: - case -1: - /* Prepare lengths somewhat outside of constrained range. */ - if(constraints->per_constraints - && (constraints->per_constraints->size.flags & APC_EXTENSIBLE)) { - switch(asn_random_between(0, 5)) { - default: - case 0: - rnd_len = 0; - break; - case 1: - if(slb > 0) { - rnd_len = slb - 1; - } else { - rnd_len = 0; - } - break; - case 2: - rnd_len = asn_random_between(0, slb); - break; - case 3: - if(sub < (ssize_t)max_length) { - rnd_len = sub + 1; - } else { - rnd_len = max_length; - } - break; - case 4: - if(sub < (ssize_t)max_length) { - rnd_len = asn_random_between(sub + 1, max_length); - } else { - rnd_len = max_length; - } - break; - case 5: - rnd_len = max_length; - break; - } - break; - } - /* Fall through */ - case 0: - rnd_len = asn_random_between(slb, sub); - break; - case 1: - if(slb < sub) { - rnd_len = asn_random_between(slb + 1, sub); - break; - } - /* Fall through */ - case 2: - rnd_len = asn_random_between(slb, slb); - break; - case 3: - if(slb < sub) { - rnd_len = asn_random_between(slb, sub - 1); - break; - } - /* Fall through */ - case 4: - rnd_len = asn_random_between(sub, sub); - break; - } - - for(; rnd_len > 0; rnd_len--) { - asn_anonymous_set_ *list = _A_SET_FROM_VOID(st); - void *ptr = 0; - asn_random_fill_result_t tmpres = elm->type->op->random_fill( - elm->type, &ptr, &elm->encoding_constraints, - (max_length > res_ok.length ? max_length - res_ok.length : 0) - / rnd_len); - switch(tmpres.code) { - case ARFILL_OK: - ASN_SET_ADD(list, ptr); - res_ok.length += tmpres.length; - break; - case ARFILL_SKIPPED: - break; - case ARFILL_FAILED: - assert(ptr == 0); - return tmpres; - } - } - - return res_ok; -} - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/constr_SET_OF.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/constr_SET_OF.h deleted file mode 100644 index 7681062..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/constr_SET_OF.h +++ /dev/null @@ -1,49 +0,0 @@ -/*- - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef CONSTR_SET_OF_H -#define CONSTR_SET_OF_H - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct asn_SET_OF_specifics_s { - /* - * Target structure description. - */ - unsigned struct_size; /* Size of the target structure. */ - unsigned ctx_offset; /* Offset of the asn_struct_ctx_t member */ - - /* XER-specific stuff */ - int as_XMLValueList; /* The member type must be encoded like this */ -} asn_SET_OF_specifics_t; - -/* - * A set specialized functions dealing with the SET OF type. - */ -asn_struct_free_f SET_OF_free; -asn_struct_print_f SET_OF_print; -asn_struct_compare_f SET_OF_compare; -asn_constr_check_f SET_OF_constraint; -ber_type_decoder_f SET_OF_decode_ber; -der_type_encoder_f SET_OF_encode_der; -xer_type_decoder_f SET_OF_decode_xer; -xer_type_encoder_f SET_OF_encode_xer; -oer_type_decoder_f SET_OF_decode_oer; -oer_type_encoder_f SET_OF_encode_oer; -per_type_decoder_f SET_OF_decode_uper; -per_type_encoder_f SET_OF_encode_uper; -per_type_decoder_f SET_OF_decode_aper; -per_type_encoder_f SET_OF_encode_aper; -asn_random_fill_f SET_OF_random_fill; -extern asn_TYPE_operation_t asn_OP_SET_OF; - -#ifdef __cplusplus -} -#endif - -#endif /* CONSTR_SET_OF_H */ diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/constr_SET_OF_oer.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/constr_SET_OF_oer.c deleted file mode 100644 index 5200518..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/constr_SET_OF_oer.c +++ /dev/null @@ -1,285 +0,0 @@ -/* - * Copyright (c) 2017 Lev Walkin . - * All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef ASN_DISABLE_OER_SUPPORT - -#include -#include -#include -#include - -/* - * This macro "eats" the part of the buffer which is definitely "consumed", - * i.e. was correctly converted into local representation or rightfully skipped. - */ -#undef ADVANCE -#define ADVANCE(num_bytes) \ - do { \ - size_t num = num_bytes; \ - ptr = ((const char *)ptr) + num; \ - size -= num; \ - consumed_myself += num; \ - } while(0) - -/* - * Switch to the next phase of parsing. - */ -#undef NEXT_PHASE -#define NEXT_PHASE(ctx) \ - do { \ - ctx->phase++; \ - ctx->step = 0; \ - } while(0) -#undef SET_PHASE -#define SET_PHASE(ctx, value) \ - do { \ - ctx->phase = value; \ - ctx->step = 0; \ - } while(0) - -/* - * Return a standardized complex structure. - */ -#undef RETURN -#define RETURN(_code) \ - do { \ - asn_dec_rval_t rval; \ - rval.code = _code; \ - rval.consumed = consumed_myself; \ - return rval; \ - } while(0) - -/* - * The SEQUENCE OF and SET OF values utilize a "quantity field". - * It is is a pointless combination of #8.6 (length determinant, capable - * of encoding tiny and huge numbers in the shortest possible number of octets) - * and the variable sized integer. What could have been encoded by #8.6 alone - * is required to be encoded by #8.6 followed by that number of unsigned octets. - * This doesn't make too much sense. It seems that the original version of OER - * standard have been using the unconstrained unsigned integer as a quantity - * field, and this legacy have gone through ISO/ITU-T standardization process. - */ -static ssize_t -oer_fetch_quantity(const void *ptr, size_t size, size_t *qty_r) { - const uint8_t *b; - const uint8_t *bend; - size_t len = 0; - size_t qty; - - ssize_t len_len = oer_fetch_length(ptr, size, &len); - if(len_len <= 0) { - *qty_r = 0; - return len_len; - } - - if((len_len + len) > size) { - *qty_r = 0; - return 0; - } - - b = (const uint8_t *)ptr + len_len; - bend = b + len; - - /* Skip the leading 0-bytes */ - for(; b < bend && *b == 0; b++) { - } - - if((bend - b) > (ssize_t)sizeof(size_t)) { - /* Length is not representable by the native size_t type */ - *qty_r = 0; - return -1; - } - - for(qty = 0; b < bend; b++) { - qty = (qty << 8) + *b; - } - - if(qty > RSIZE_MAX) { /* A bit of C11 validation */ - *qty_r = 0; - return -1; - } - - *qty_r = qty; - assert((size_t)len_len + len == (size_t)(bend - (const uint8_t *)ptr)); - return len_len + len; -} - -asn_dec_rval_t -SET_OF_decode_oer(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_oer_constraints_t *constraints, void **struct_ptr, - const void *ptr, size_t size) { - const asn_SET_OF_specifics_t *specs = (const asn_SET_OF_specifics_t *)td->specifics; - asn_dec_rval_t rval = {RC_OK, 0}; - void *st = *struct_ptr; /* Target structure */ - asn_struct_ctx_t *ctx; /* Decoder context */ - size_t consumed_myself = 0; /* Consumed bytes from ptr. */ - - (void)constraints; - - if(ASN__STACK_OVERFLOW_CHECK(opt_codec_ctx)) - ASN__DECODE_FAILED; - - /* - * Create the target structure if it is not present already. - */ - if(st == 0) { - st = *struct_ptr = CALLOC(1, specs->struct_size); - if(st == 0) { - RETURN(RC_FAIL); - } - } - - /* - * Restore parsing context. - */ - ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset); - - /* - * Start to parse where left previously. - */ - switch(ctx->phase) { - case 0: { - /* - * Fetch number of elements to decode. - */ - size_t length = 0; - size_t len_size = oer_fetch_quantity(ptr, size, &length); - switch(len_size) { - case 0: - RETURN(RC_WMORE); - case -1: - RETURN(RC_FAIL); - default: - ADVANCE(len_size); - ctx->left = length; - } - } - NEXT_PHASE(ctx); - /* FALL THROUGH */ - case 1: { - /* Decode components of the extension root */ - asn_TYPE_member_t *elm = td->elements; - asn_anonymous_set_ *list = _A_SET_FROM_VOID(st); - const void *base_ptr = ptr; - ber_tlv_len_t base_ctx_left = ctx->left; - - assert(td->elements_count == 1); - - ASN_DEBUG("OER SET OF %s Decoding PHASE 1", td->name); - - for(; ctx->left > 0; ctx->left--) { - asn_dec_rval_t rv = elm->type->op->oer_decoder( - opt_codec_ctx, elm->type, - elm->encoding_constraints.oer_constraints, &ctx->ptr, ptr, - size); - ADVANCE(rv.consumed); - switch(rv.code) { - case RC_OK: - if(ASN_SET_ADD(list, ctx->ptr) != 0) { - RETURN(RC_FAIL); - } else { - ctx->ptr = 0; - /* - * This check is to avoid compression bomb with - * specs like SEQUENCE/SET OF NULL which don't - * consume data at all. - */ - if(rv.consumed == 0 && base_ptr == ptr - && (base_ctx_left - ctx->left) > 200) { - ASN__DECODE_FAILED; - } - break; - } - case RC_WMORE: - RETURN(RC_WMORE); - case RC_FAIL: - ASN_STRUCT_FREE(*elm->type, ctx->ptr); - ctx->ptr = 0; - SET_PHASE(ctx, 3); - RETURN(RC_FAIL); - } - } - /* Decoded decently. */ - NEXT_PHASE(ctx); - } - /* Fall through */ - case 2: - /* Ignore fully decoded */ - assert(ctx->left == 0); - RETURN(RC_OK); - case 3: - /* Failed to decode. */ - RETURN(RC_FAIL); - } - - return rval; -} - -static ssize_t -oer_put_quantity(size_t qty, asn_app_consume_bytes_f *cb, void *app_key) { - uint8_t buf[1 + sizeof(size_t)]; - uint8_t *b = &buf[sizeof(size_t)]; /* Last addressable */ - size_t encoded; - - do { - *b-- = qty; - qty >>= 8; - } while(qty); - - *b = sizeof(buf) - (b-buf) - 1; - encoded = sizeof(buf) - (b-buf); - if(cb(b, encoded, app_key) < 0) - return -1; - return encoded; -} - -/* - * Encode as Canonical OER. - */ -asn_enc_rval_t -SET_OF_encode_oer(const asn_TYPE_descriptor_t *td, - const asn_oer_constraints_t *constraints, const void *sptr, - asn_app_consume_bytes_f *cb, void *app_key) { - const asn_TYPE_member_t *elm; - const asn_anonymous_set_ *list; - size_t computed_size = 0; - ssize_t qty_len; - int n; - - (void)constraints; - - if(!sptr) ASN__ENCODE_FAILED; - - elm = td->elements; - list = _A_CSET_FROM_VOID(sptr); - - qty_len = oer_put_quantity(list->count, cb, app_key); - if(qty_len < 0) { - ASN__ENCODE_FAILED; - } - computed_size += qty_len; - - for(n = 0; n < list->count; n++) { - void *memb_ptr = list->array[n]; - asn_enc_rval_t er = {0,0,0}; - er = elm->type->op->oer_encoder( - elm->type, elm->encoding_constraints.oer_constraints, memb_ptr, cb, - app_key); - if(er.encoded < 0) { - return er; - } else { - computed_size += er.encoded; - } - } - - { - asn_enc_rval_t erval = {0,0,0}; - erval.encoded = computed_size; - ASN__ENCODED_OK(erval); - } -} - -#endif /* ASN_DISABLE_OER_SUPPORT */ diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/constr_TYPE.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/constr_TYPE.c deleted file mode 100644 index aefaefd..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/constr_TYPE.c +++ /dev/null @@ -1,80 +0,0 @@ -/*- - * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include - -/* - * Version of the ASN.1 infrastructure shipped with compiler. - */ -int get_asn1c_environment_version() { return ASN1C_ENVIRONMENT_VERSION; } - -static asn_app_consume_bytes_f _print2fp; - -/* - * Return the outmost tag of the type. - */ -ber_tlv_tag_t -asn_TYPE_outmost_tag(const asn_TYPE_descriptor_t *type_descriptor, - const void *struct_ptr, int tag_mode, ber_tlv_tag_t tag) { - - if(tag_mode) - return tag; - - if(type_descriptor->tags_count) - return type_descriptor->tags[0]; - - return type_descriptor->op->outmost_tag(type_descriptor, struct_ptr, 0, 0); -} - -/* - * Print the target language's structure in human readable form. - */ -int -asn_fprint(FILE *stream, const asn_TYPE_descriptor_t *td, - const void *struct_ptr) { - if(!stream) stream = stdout; - if(!td || !struct_ptr) { - errno = EINVAL; - return -1; - } - - /* Invoke type-specific printer */ - if(td->op->print_struct(td, struct_ptr, 1, _print2fp, stream)) { - return -1; - } - - /* Terminate the output */ - if(_print2fp("\n", 1, stream)) { - return -1; - } - - return fflush(stream); -} - -/* Dump the data into the specified stdio stream */ -static int -_print2fp(const void *buffer, size_t size, void *app_key) { - FILE *stream = (FILE *)app_key; - - if(fwrite(buffer, 1, size, stream) != size) - return -1; - - return 0; -} - - -/* - * Some compilers do not support variable args macros. - * This function is a replacement of ASN_DEBUG() macro. - */ -void ASN_DEBUG_f(const char *fmt, ...); -void ASN_DEBUG_f(const char *fmt, ...) { - va_list ap; - va_start(ap, fmt); - vfprintf(stderr, fmt, ap); - fprintf(stderr, "\n"); - va_end(ap); -} diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/constr_TYPE.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/constr_TYPE.h deleted file mode 100644 index d80dea5..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/constr_TYPE.h +++ /dev/null @@ -1,262 +0,0 @@ -/* - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -/* - * This file contains the declaration structure called "ASN.1 Type Definition", - * which holds all information necessary for encoding and decoding routines. - * This structure even contains pointer to these encoding and decoding routines - * for each defined ASN.1 type. - */ -#ifndef _CONSTR_TYPE_H_ -#define _CONSTR_TYPE_H_ - -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -struct asn_TYPE_descriptor_s; /* Forward declaration */ -struct asn_TYPE_member_s; /* Forward declaration */ - -/* - * This type provides the context information for various ASN.1 routines, - * primarily ones doing decoding. A member _asn_ctx of this type must be - * included into certain target language's structures, such as compound types. - */ -typedef struct asn_struct_ctx_s { - short phase; /* Decoding phase */ - short step; /* Elementary step of a phase */ - int context; /* Other context information */ - void *ptr; /* Decoder-specific stuff (stack elements) */ - ber_tlv_len_t left; /* Number of bytes left, -1 for indefinite */ -} asn_struct_ctx_t; - -#include /* Basic Encoding Rules decoder */ -#include /* Distinguished Encoding Rules encoder */ -#include /* Decoder of XER (XML, text) */ -#include /* Encoder into XER (XML, text) */ -#include /* Packet Encoding Rules decoder */ -#include /* Packet Encoding Rules encoder */ -#include /* Subtype constraints support */ -#include /* Random structures support */ - -#ifdef ASN_DISABLE_OER_SUPPORT -typedef void (oer_type_decoder_f)(void); -typedef void (oer_type_encoder_f)(void); -typedef void asn_oer_constraints_t; -#else -#include /* Octet Encoding Rules encoder */ -#include /* Octet Encoding Rules encoder */ -#endif - -/* - * Free the structure according to its specification. - * Use one of ASN_STRUCT_{FREE,RESET,CONTENTS_ONLY} macros instead. - * Do not use directly. - */ -enum asn_struct_free_method { - ASFM_FREE_EVERYTHING, /* free(struct_ptr) and underlying members */ - ASFM_FREE_UNDERLYING, /* free underlying members */ - ASFM_FREE_UNDERLYING_AND_RESET /* FREE_UNDERLYING + memset(0) */ -}; -typedef void (asn_struct_free_f)( - const struct asn_TYPE_descriptor_s *type_descriptor, - void *struct_ptr, enum asn_struct_free_method); - -/* - * Free the structure including freeing the memory pointed to by ptr itself. - */ -#define ASN_STRUCT_FREE(asn_DEF, ptr) \ - (asn_DEF).op->free_struct(&(asn_DEF), (ptr), ASFM_FREE_EVERYTHING) - -/* - * Free the memory used by the members of the structure without freeing the - * the structure pointer itself. - * ZERO-OUT the structure to the safe clean state. - * (Retaining the pointer may be useful in case the structure is allocated - * statically or arranged on the stack, yet its elements are dynamic.) - */ -#define ASN_STRUCT_RESET(asn_DEF, ptr) \ - (asn_DEF).op->free_struct(&(asn_DEF), (ptr), ASFM_FREE_UNDERLYING_AND_RESET) - -/* - * Free memory used by the members of the structure without freeing - * the structure pointer itself. - * (Retaining the pointer may be useful in case the structure is allocated - * statically or arranged on the stack, yet its elements are dynamic.) - * AVOID using it in the application code; - * Use a safer ASN_STRUCT_RESET() instead. - */ -#define ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF, ptr) \ - (asn_DEF).op->free_struct(&(asn_DEF), (ptr), ASFM_FREE_UNDERLYING) - -/* - * Print the structure according to its specification. - */ -typedef int(asn_struct_print_f)( - const struct asn_TYPE_descriptor_s *type_descriptor, - const void *struct_ptr, - int level, /* Indentation level */ - asn_app_consume_bytes_f *callback, void *app_key); - -/* - * Compare two structs between each other. - * Returns <0 if struct_A is "smaller" than struct_B, >0 if "greater", - * and =0 if "equal to", for some type-specific, stable definition of - * "smaller", "greater" and "equal to". - */ -typedef int (asn_struct_compare_f)( - const struct asn_TYPE_descriptor_s *type_descriptor, - const void *struct_A, - const void *struct_B); - -/* - * Return the outmost tag of the type. - * If the type is untagged CHOICE, the dynamic operation is performed. - * NOTE: This function pointer type is only useful internally. - * Do not use it in your application. - */ -typedef ber_tlv_tag_t (asn_outmost_tag_f)( - const struct asn_TYPE_descriptor_s *type_descriptor, - const void *struct_ptr, int tag_mode, ber_tlv_tag_t tag); -/* The instance of the above function type; used internally. */ -asn_outmost_tag_f asn_TYPE_outmost_tag; - -/* - * Fetch the desired type of the Open Type based on the - * Information Object Set driven constraints. - */ -typedef struct asn_type_selector_result_s { - const struct asn_TYPE_descriptor_s *type_descriptor; /* Type encoded. */ - unsigned presence_index; /* Associated choice variant. */ -} asn_type_selector_result_t; -typedef asn_type_selector_result_t(asn_type_selector_f)( - const struct asn_TYPE_descriptor_s *parent_type_descriptor, - const void *parent_structure_ptr); - -/* - * Generalized functions for dealing with the speciic type. - * May be directly invoked by applications. - */ -typedef struct asn_TYPE_operation_s { - asn_struct_free_f *free_struct; /* Free the structure */ - asn_struct_print_f *print_struct; /* Human readable output */ - asn_struct_compare_f *compare_struct; /* Compare two structures */ - ber_type_decoder_f *ber_decoder; /* Generic BER decoder */ - der_type_encoder_f *der_encoder; /* Canonical DER encoder */ - xer_type_decoder_f *xer_decoder; /* Generic XER decoder */ - xer_type_encoder_f *xer_encoder; /* [Canonical] XER encoder */ - oer_type_decoder_f *oer_decoder; /* Generic OER decoder */ - oer_type_encoder_f *oer_encoder; /* Canonical OER encoder */ - per_type_decoder_f *uper_decoder; /* Unaligned PER decoder */ - per_type_encoder_f *uper_encoder; /* Unaligned PER encoder */ - per_type_decoder_f *aper_decoder; /* Aligned PER decoder */ - per_type_encoder_f *aper_encoder; /* Aligned PER encoder */ - asn_random_fill_f *random_fill; /* Initialize with a random value */ - asn_outmost_tag_f *outmost_tag; /* */ -} asn_TYPE_operation_t; - -/* - * A constraints tuple specifying both the OER and PER constraints. - */ -typedef struct asn_encoding_constraints_s { - const struct asn_oer_constraints_s *oer_constraints; - const struct asn_per_constraints_s *per_constraints; - asn_constr_check_f *general_constraints; -} asn_encoding_constraints_t; - -/* - * The definitive description of the destination language's structure. - */ -typedef struct asn_TYPE_descriptor_s { - const char *name; /* A name of the ASN.1 type. "" in some cases. */ - const char *xml_tag; /* Name used in XML tag */ - - /* - * Generalized functions for dealing with the specific type. - * May be directly invoked by applications. - */ - asn_TYPE_operation_t *op; - - /*********************************************************************** - * Internally useful members. Not to be used by applications directly. * - **********************************************************************/ - - /* - * Tags that are expected to occur. - */ - const ber_tlv_tag_t *tags; /* Effective tags sequence for this type */ - unsigned tags_count; /* Number of tags which are expected */ - const ber_tlv_tag_t *all_tags; /* Every tag for BER/containment */ - unsigned all_tags_count; /* Number of tags */ - - /* OER, PER, and general constraints */ - asn_encoding_constraints_t encoding_constraints; - - /* - * An ASN.1 production type members (members of SEQUENCE, SET, CHOICE). - */ - struct asn_TYPE_member_s *elements; - unsigned elements_count; - - /* - * Additional information describing the type, used by appropriate - * functions above. - */ - const void *specifics; -} asn_TYPE_descriptor_t; - -/* - * This type describes an element of the constructed type, - * i.e. SEQUENCE, SET, CHOICE, etc. - */ - enum asn_TYPE_flags_e { - ATF_NOFLAGS, - ATF_POINTER = 0x01, /* Represented by the pointer */ - ATF_OPEN_TYPE = 0x02, /* Open Type */ - ATF_ANY_TYPE = 0x04 /* ANY type (deprecated!) */ - }; -typedef struct asn_TYPE_member_s { - enum asn_TYPE_flags_e flags; /* Element's presentation flags */ - unsigned optional; /* Following optional members, including current */ - unsigned memb_offset; /* Offset of the element */ - ber_tlv_tag_t tag; /* Outmost (most immediate) tag */ - int tag_mode; /* IMPLICIT/no/EXPLICIT tag at current level */ - asn_TYPE_descriptor_t *type; /* Member type descriptor */ - asn_type_selector_f *type_selector; /* IoS runtime type selector */ - asn_encoding_constraints_t encoding_constraints; - int (*default_value_cmp)(const void *sptr); /* Compare DEFAULT */ - int (*default_value_set)(void **sptr); /* Set DEFAULT */ - const char *name; /* ASN.1 identifier of the element */ -} asn_TYPE_member_t; - -/* - * BER tag to element number mapping. - */ -typedef struct asn_TYPE_tag2member_s { - ber_tlv_tag_t el_tag; /* Outmost tag of the member */ - unsigned el_no; /* Index of the associated member, base 0 */ - int toff_first; /* First occurence of the el_tag, relative */ - int toff_last; /* Last occurence of the el_tag, relative */ -} asn_TYPE_tag2member_t; - -/* - * This function prints out the contents of the target language's structure - * (struct_ptr) into the file pointer (stream) in human readable form. - * RETURN VALUES: - * 0: The structure is printed. - * -1: Problem dumping the structure. - * (See also xer_fprint() in xer_encoder.h) - */ -int asn_fprint(FILE *stream, /* Destination stream descriptor */ - const asn_TYPE_descriptor_t *td, /* ASN.1 type descriptor */ - const void *struct_ptr); /* Structure to be printed */ - -#ifdef __cplusplus -} -#endif - -#endif /* _CONSTR_TYPE_H_ */ diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/constraints.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/constraints.c deleted file mode 100644 index df3c6c1..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/constraints.c +++ /dev/null @@ -1,93 +0,0 @@ -#include -#include - -int -asn_generic_no_constraint(const asn_TYPE_descriptor_t *type_descriptor, - const void *struct_ptr, - asn_app_constraint_failed_f *cb, void *key) { - (void)type_descriptor; /* Unused argument */ - (void)struct_ptr; /* Unused argument */ - (void)cb; /* Unused argument */ - (void)key; /* Unused argument */ - - /* Nothing to check */ - return 0; -} - -int -asn_generic_unknown_constraint(const asn_TYPE_descriptor_t *type_descriptor, - const void *struct_ptr, - asn_app_constraint_failed_f *cb, void *key) { - (void)type_descriptor; /* Unused argument */ - (void)struct_ptr; /* Unused argument */ - (void)cb; /* Unused argument */ - (void)key; /* Unused argument */ - - /* Unknown how to check */ - return 0; -} - -struct errbufDesc { - const asn_TYPE_descriptor_t *failed_type; - const void *failed_struct_ptr; - char *errbuf; - size_t errlen; -}; - -static void -_asn_i_ctfailcb(void *key, const asn_TYPE_descriptor_t *td, const void *sptr, - const char *fmt, ...) { - struct errbufDesc *arg = key; - va_list ap; - ssize_t vlen; - ssize_t maxlen; - - arg->failed_type = td; - arg->failed_struct_ptr = sptr; - - maxlen = arg->errlen; - if(maxlen <= 0) - return; - - va_start(ap, fmt); - vlen = vsnprintf(arg->errbuf, maxlen, fmt, ap); - va_end(ap); - if(vlen >= maxlen) { - arg->errbuf[maxlen-1] = '\0'; /* Ensuring libc correctness */ - arg->errlen = maxlen - 1; /* Not counting termination */ - return; - } else if(vlen >= 0) { - arg->errbuf[vlen] = '\0'; /* Ensuring libc correctness */ - arg->errlen = vlen; /* Not counting termination */ - } else { - /* - * The libc on this system is broken. - */ - vlen = sizeof("") - 1; - maxlen--; - arg->errlen = vlen < maxlen ? vlen : maxlen; - memcpy(arg->errbuf, "", arg->errlen); - arg->errbuf[arg->errlen] = 0; - } - - return; -} - -int -asn_check_constraints(const asn_TYPE_descriptor_t *type_descriptor, - const void *struct_ptr, char *errbuf, size_t *errlen) { - struct errbufDesc arg; - int ret; - - arg.failed_type = 0; - arg.failed_struct_ptr = 0; - arg.errbuf = errbuf; - arg.errlen = errlen ? *errlen : 0; - - ret = type_descriptor->encoding_constraints.general_constraints( - type_descriptor, struct_ptr, _asn_i_ctfailcb, &arg); - if(ret == -1 && errlen) *errlen = arg.errlen; - - return ret; -} - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/constraints.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/constraints.h deleted file mode 100644 index 0bd86a9..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/constraints.h +++ /dev/null @@ -1,62 +0,0 @@ -/*- - * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef ASN1_CONSTRAINTS_VALIDATOR_H -#define ASN1_CONSTRAINTS_VALIDATOR_H - -#include /* Platform-dependent types */ - -#ifdef __cplusplus -extern "C" { -#endif - -struct asn_TYPE_descriptor_s; /* Forward declaration */ - -/* - * Validate the structure according to the ASN.1 constraints. - * If errbuf and errlen are given, they shall be pointing to the appropriate - * buffer space and its length before calling this function. Alternatively, - * they could be passed as NULL's. If constraints validation fails, - * errlen will contain the actual number of bytes taken from the errbuf - * to encode an error message (properly 0-terminated). - * - * RETURN VALUES: - * This function returns 0 in case all ASN.1 constraints are met - * and -1 if one or more constraints were failed. - */ -int asn_check_constraints( - const struct asn_TYPE_descriptor_s *type_descriptor, - const void *struct_ptr, /* Target language's structure */ - char *errbuf, /* Returned error description */ - size_t *errlen /* Length of the error description */ -); - - -/* - * Generic type for constraint checking callback, - * associated with every type descriptor. - */ -typedef int(asn_constr_check_f)( - const struct asn_TYPE_descriptor_s *type_descriptor, const void *struct_ptr, - asn_app_constraint_failed_f *optional_callback, /* Log the error */ - void *optional_app_key /* Opaque key passed to a callback */ -); - -/******************************* - * INTERNALLY USEFUL FUNCTIONS * - *******************************/ - -asn_constr_check_f asn_generic_no_constraint; /* No constraint whatsoever */ -asn_constr_check_f asn_generic_unknown_constraint; /* Not fully supported */ - -/* - * Invoke the callback with a complete error message. - */ -#define ASN__CTFAIL if(ctfailcb) ctfailcb - -#ifdef __cplusplus -} -#endif - -#endif /* ASN1_CONSTRAINTS_VALIDATOR_H */ diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/converter-example.mk b/e2sim/previous/e2apv1sim/ricsim/ASN1c/converter-example.mk deleted file mode 100644 index 0109476..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/converter-example.mk +++ /dev/null @@ -1,33 +0,0 @@ -include Makefile.am.libasncodec - -LIBS += -lm -CFLAGS += $(ASN_MODULE_CFLAGS) -DASN_PDU_COLLECTION -I. -ASN_LIBRARY ?= libasncodec.a -ASN_PROGRAM ?= converter-example -ASN_PROGRAM_SRCS ?= \ - converter-example.c\ - pdu_collection.c - -all: $(ASN_PROGRAM) - -$(ASN_PROGRAM): $(ASN_LIBRARY) $(ASN_PROGRAM_SRCS:.c=.o) - $(CC) $(CFLAGS) $(CPPFLAGS) -o $(ASN_PROGRAM) $(ASN_PROGRAM_SRCS:.c=.o) $(LDFLAGS) $(ASN_LIBRARY) $(LIBS) - -$(ASN_LIBRARY): $(ASN_MODULE_SRCS:.c=.o) - $(AR) rcs $@ $(ASN_MODULE_SRCS:.c=.o) - -.SUFFIXES: -.SUFFIXES: .c .o - -.c.o: - $(CC) $(CFLAGS) -o $@ -c $< - -clean: - rm -f $(ASN_PROGRAM) $(ASN_LIBRARY) - rm -f $(ASN_MODULE_SRCS:.c=.o) $(ASN_PROGRAM_SRCS:.c=.o) - -regen: regenerate-from-asn1-source - -regenerate-from-asn1-source: - asn1c -fcompound-names /home/rshacham/e2sm-kpm-v01.02.asn - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/der_encoder.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/der_encoder.c deleted file mode 100644 index 2c6a6f7..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/der_encoder.c +++ /dev/null @@ -1,194 +0,0 @@ -/*- - * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include - -static ssize_t der_write_TL(ber_tlv_tag_t tag, ber_tlv_len_t len, - asn_app_consume_bytes_f *cb, void *app_key, int constructed); - -/* - * The DER encoder of any type. - */ -asn_enc_rval_t -der_encode(const asn_TYPE_descriptor_t *type_descriptor, const void *struct_ptr, - asn_app_consume_bytes_f *consume_bytes, void *app_key) { - ASN_DEBUG("DER encoder invoked for %s", - type_descriptor->name); - - /* - * Invoke type-specific encoder. - */ - return type_descriptor->op->der_encoder( - type_descriptor, struct_ptr, /* Pointer to the destination structure */ - 0, 0, consume_bytes, app_key); -} - -/* - * Argument type and callback necessary for der_encode_to_buffer(). - */ -typedef struct enc_to_buf_arg { - void *buffer; - size_t left; -} enc_to_buf_arg; -static int encode_to_buffer_cb(const void *buffer, size_t size, void *key) { - enc_to_buf_arg *arg = (enc_to_buf_arg *)key; - - if(arg->left < size) - return -1; /* Data exceeds the available buffer size */ - - memcpy(arg->buffer, buffer, size); - arg->buffer = ((char *)arg->buffer) + size; - arg->left -= size; - - return 0; -} - -/* - * A variant of the der_encode() which encodes the data into the provided buffer - */ -asn_enc_rval_t -der_encode_to_buffer(const asn_TYPE_descriptor_t *type_descriptor, - const void *struct_ptr, void *buffer, size_t buffer_size) { - enc_to_buf_arg arg; - asn_enc_rval_t ec; - - arg.buffer = buffer; - arg.left = buffer_size; - - ec = type_descriptor->op->der_encoder(type_descriptor, - struct_ptr, /* Pointer to the destination structure */ - 0, 0, encode_to_buffer_cb, &arg); - if(ec.encoded != -1) { - assert(ec.encoded == (ssize_t)(buffer_size - arg.left)); - /* Return the encoded contents size */ - } - return ec; -} - - -/* - * Write out leading TL[v] sequence according to the type definition. - */ -ssize_t -der_write_tags(const asn_TYPE_descriptor_t *sd, size_t struct_length, - int tag_mode, int last_tag_form, - ber_tlv_tag_t tag, /* EXPLICIT or IMPLICIT tag */ - asn_app_consume_bytes_f *cb, void *app_key) { -#define ASN1_DER_MAX_TAGS_COUNT 4 - ber_tlv_tag_t - tags_buf_scratch[ASN1_DER_MAX_TAGS_COUNT * sizeof(ber_tlv_tag_t)]; - ssize_t lens[ASN1_DER_MAX_TAGS_COUNT * sizeof(ssize_t)]; - const ber_tlv_tag_t *tags; /* Copy of tags stream */ - int tags_count; /* Number of tags */ - size_t overall_length; - int i; - - ASN_DEBUG("Writing tags (%s, tm=%d, tc=%d, tag=%s, mtc=%d)", - sd->name, tag_mode, sd->tags_count, - ber_tlv_tag_string(tag), - tag_mode - ?(sd->tags_count+1 - -((tag_mode == -1) && sd->tags_count)) - :sd->tags_count - ); - - if(sd->tags_count + 1 > ASN1_DER_MAX_TAGS_COUNT) { - ASN_DEBUG("System limit %d on tags count", ASN1_DER_MAX_TAGS_COUNT); - return -1; - } - - if(tag_mode) { - /* - * Instead of doing shaman dance like we do in ber_check_tags(), - * allocate a small array on the stack - * and initialize it appropriately. - */ - int stag_offset; - ber_tlv_tag_t *tags_buf = tags_buf_scratch; - tags_count = sd->tags_count - + 1 /* EXPLICIT or IMPLICIT tag is given */ - - ((tag_mode == -1) && sd->tags_count); - /* Copy tags over */ - tags_buf[0] = tag; - stag_offset = -1 + ((tag_mode == -1) && sd->tags_count); - for(i = 1; i < tags_count; i++) - tags_buf[i] = sd->tags[i + stag_offset]; - tags = tags_buf; - } else { - tags = sd->tags; - tags_count = sd->tags_count; - } - - /* No tags to write */ - if(tags_count == 0) - return 0; - - /* - * Array of tags is initialized. - * Now, compute the size of the TLV pairs, from right to left. - */ - overall_length = struct_length; - for(i = tags_count - 1; i >= 0; --i) { - lens[i] = der_write_TL(tags[i], overall_length, 0, 0, 0); - if(lens[i] == -1) return -1; - overall_length += lens[i]; - lens[i] = overall_length - lens[i]; - } - - if(!cb) return overall_length - struct_length; - - ASN_DEBUG("Encoding %s TL sequence (%d elements)", sd->name, - tags_count); - - /* - * Encode the TL sequence for real. - */ - for(i = 0; i < tags_count; i++) { - ssize_t len; - int _constr; - - /* Check if this tag happens to be constructed */ - _constr = (last_tag_form || i < (tags_count - 1)); - - len = der_write_TL(tags[i], lens[i], cb, app_key, _constr); - if(len == -1) return -1; - } - - return overall_length - struct_length; -} - -static ssize_t -der_write_TL(ber_tlv_tag_t tag, ber_tlv_len_t len, - asn_app_consume_bytes_f *cb, void *app_key, - int constructed) { - uint8_t buf[32]; - size_t size = 0; - int buf_size = cb?sizeof(buf):0; - ssize_t tmp; - - /* Serialize tag (T from TLV) into possibly zero-length buffer */ - tmp = ber_tlv_tag_serialize(tag, buf, buf_size); - if(tmp == -1 || tmp > (ssize_t)sizeof(buf)) return -1; - size += tmp; - - /* Serialize length (L from TLV) into possibly zero-length buffer */ - tmp = der_tlv_length_serialize(len, buf+size, buf_size?buf_size-size:0); - if(tmp == -1) return -1; - size += tmp; - - if(size > sizeof(buf)) - return -1; - - /* - * If callback is specified, invoke it, and check its return value. - */ - if(cb) { - if(constructed) *buf |= 0x20; - if(cb(buf, size, app_key) < 0) - return -1; - } - - return size; -} diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/der_encoder.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/der_encoder.h deleted file mode 100644 index e93944e..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/der_encoder.h +++ /dev/null @@ -1,68 +0,0 @@ -/*- - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef _DER_ENCODER_H_ -#define _DER_ENCODER_H_ - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -struct asn_TYPE_descriptor_s; /* Forward declaration */ - -/* - * The DER encoder of any type. May be invoked by the application. - * Produces DER- and BER-compliant encoding. (DER is a subset of BER). - * - * NOTE: Use the ber_decode() function (ber_decoder.h) to decode data - * produced by der_encode(). - */ -asn_enc_rval_t der_encode(const struct asn_TYPE_descriptor_s *type_descriptor, - const void *struct_ptr, /* Structure to be encoded */ - asn_app_consume_bytes_f *consume_bytes_cb, - void *app_key /* Arbitrary callback argument */ -); - -/* A variant of der_encode() which encodes data into the pre-allocated buffer */ -asn_enc_rval_t der_encode_to_buffer( - const struct asn_TYPE_descriptor_s *type_descriptor, - const void *struct_ptr, /* Structure to be encoded */ - void *buffer, /* Pre-allocated buffer */ - size_t buffer_size /* Initial buffer size (maximum) */ -); - -/* - * Type of the generic DER encoder. - */ -typedef asn_enc_rval_t(der_type_encoder_f)( - const struct asn_TYPE_descriptor_s *type_descriptor, - const void *struct_ptr, /* Structure to be encoded */ - int tag_mode, /* {-1,0,1}: IMPLICIT, no, EXPLICIT */ - ber_tlv_tag_t tag, asn_app_consume_bytes_f *consume_bytes_cb, /* Callback */ - void *app_key /* Arbitrary callback argument */ -); - - -/******************************* - * INTERNALLY USEFUL FUNCTIONS * - *******************************/ - -/* - * Write out leading TL[v] sequence according to the type definition. - */ -ssize_t der_write_tags(const struct asn_TYPE_descriptor_s *type_descriptor, - size_t struct_length, - int tag_mode, /* {-1,0,1}: IMPLICIT, no, EXPLICIT */ - int last_tag_form, /* {0,!0}: prim, constructed */ - ber_tlv_tag_t tag, - asn_app_consume_bytes_f *consume_bytes_cb, - void *app_key); - -#ifdef __cplusplus -} -#endif - -#endif /* _DER_ENCODER_H_ */ diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/oer_decoder.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/oer_decoder.c deleted file mode 100644 index 0701738..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/oer_decoder.c +++ /dev/null @@ -1,152 +0,0 @@ -/* - * Copyright (c) 2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include - -/* - * The OER decoder of any type. - */ -asn_dec_rval_t -oer_decode(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *type_descriptor, void **struct_ptr, - const void *ptr, size_t size) { - asn_codec_ctx_t s_codec_ctx; - - /* - * Stack checker requires that the codec context - * must be allocated on the stack. - */ - if(opt_codec_ctx) { - if(opt_codec_ctx->max_stack_size) { - s_codec_ctx = *opt_codec_ctx; - opt_codec_ctx = &s_codec_ctx; - } - } else { - /* If context is not given, be security-conscious anyway */ - memset(&s_codec_ctx, 0, sizeof(s_codec_ctx)); - s_codec_ctx.max_stack_size = ASN__DEFAULT_STACK_MAX; - opt_codec_ctx = &s_codec_ctx; - } - - /* - * Invoke type-specific decoder. - */ - return type_descriptor->op->oer_decoder(opt_codec_ctx, type_descriptor, 0, - struct_ptr, /* Pointer to the destination structure */ - ptr, size /* Buffer and its size */ - ); -} - -/* - * Open Type is encoded as a length (#8.6) followed by that number of bytes. - * Since we're just skipping, reading the length would be enough. - */ -ssize_t -oer_open_type_skip(const void *bufptr, size_t size) { - size_t len = 0; - return oer_fetch_length(bufptr, size, &len); -} - -/* - * Read the Open Type (X.696 (08/2015), #30). - * RETURN VALUES: - * 0: More data expected than bufptr contains. - * -1: Fatal error deciphering length. - * >0: Number of bytes used from bufptr. - */ -ssize_t -oer_open_type_get(const asn_codec_ctx_t *opt_codec_ctx, - const struct asn_TYPE_descriptor_s *td, - const asn_oer_constraints_t *constraints, void **struct_ptr, - const void *bufptr, size_t size) { - asn_dec_rval_t dr; - size_t container_len = 0; - ssize_t len_len; - enum asn_struct_free_method dispose_method = - (*struct_ptr) ? ASFM_FREE_UNDERLYING_AND_RESET : ASFM_FREE_EVERYTHING; - - /* Get the size of a length determinant */ - len_len = oer_fetch_length(bufptr, size, &container_len); - if(len_len <= 0) { - return len_len; /* Error or more data expected */ - } - - /* - * len_len can't be bigger than size, but size without len_len - * should be bigger or equal to container length - */ - if(size - len_len < container_len) { - /* More data is expected */ - return 0; - } - - dr = td->op->oer_decoder(opt_codec_ctx, td, constraints, struct_ptr, - (const uint8_t *)bufptr + len_len, container_len); - if(dr.code == RC_OK) { - return len_len + container_len; - } else { - /* Even if RC_WMORE, we can't get more data into a closed container. */ - td->op->free_struct(td, *struct_ptr, dispose_method); - *struct_ptr = NULL; - return -1; - } -} - - -asn_dec_rval_t -oer_decode_primitive(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_oer_constraints_t *constraints, void **sptr, - const void *ptr, size_t size) { - ASN__PRIMITIVE_TYPE_t *st = (ASN__PRIMITIVE_TYPE_t *)*sptr; - asn_dec_rval_t rval = {RC_OK, 0}; - size_t expected_length = 0; - ssize_t len_len; - - (void)td; - (void)opt_codec_ctx; - (void)constraints; - - if(!st) { - st = (ASN__PRIMITIVE_TYPE_t *)(*sptr = CALLOC( - 1, sizeof(ASN__PRIMITIVE_TYPE_t))); - if(!st) ASN__DECODE_FAILED; - } - - - /* - * X.696 (08/2015) #27.2 - * Encode length determinant as _number of octets_, but only - * if upper bound is not equal to lower bound. - */ - len_len = oer_fetch_length(ptr, size, &expected_length); - if(len_len > 0) { - rval.consumed = len_len; - ptr = (const char *)ptr + len_len; - size -= len_len; - } else if(len_len == 0) { - ASN__DECODE_STARVED; - } else if(len_len < 0) { - ASN__DECODE_FAILED; - } - - if(size < expected_length) { - ASN__DECODE_STARVED; - } else { - uint8_t *buf = MALLOC(expected_length + 1); - if(buf == NULL) { - ASN__DECODE_FAILED; - } else { - memcpy(buf, ptr, expected_length); - buf[expected_length] = '\0'; - } - FREEMEM(st->buf); - st->buf = buf; - st->size = expected_length; - - rval.consumed += expected_length; - return rval; - } -} diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/oer_decoder.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/oer_decoder.h deleted file mode 100644 index 40992e9..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/oer_decoder.h +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Copyright (c) 2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef OER_DECODER_H -#define OER_DECODER_H - -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -struct asn_TYPE_descriptor_s; /* Forward declaration */ -struct asn_codec_ctx_s; /* Forward declaration */ - -/* - * The Octet Encoding Rules (OER, X.696 08/2015) decoder for any given type. - * This function may be invoked directly by the application. - * Parses CANONICAL-OER and BASIC-OER. - */ -asn_dec_rval_t oer_decode(const struct asn_codec_ctx_s *opt_codec_ctx, - const struct asn_TYPE_descriptor_s *type_descriptor, - void **struct_ptr, /* Pointer to a target structure's pointer */ - const void *buffer, /* Data to be decoded */ - size_t size /* Size of that buffer */ - ); - -/* - * Type of generic function which decodes the byte stream into the structure. - */ -typedef asn_dec_rval_t(oer_type_decoder_f)( - const struct asn_codec_ctx_s *opt_codec_ctx, - const struct asn_TYPE_descriptor_s *type_descriptor, - const asn_oer_constraints_t *constraints, - void **struct_ptr, - const void *buf_ptr, - size_t size); - -/* - * Swallow the Open Type (X.696 (08/2015), #30) into /dev/null. - * RETURN VALUES: - * -1: Fatal error deciphering length. - * 0: More data expected than bufptr contains. - * >0: Number of bytes used from bufptr. - */ -ssize_t oer_open_type_skip(const void *bufptr, size_t size); - -/* - * Read the Open Type (X.696 (08/2015), #30). - * RETURN VALUES: - * 0: More data expected than bufptr contains. - * -1: Fatal error deciphering length. - * >0: Number of bytes used from bufptr. - */ -ssize_t oer_open_type_get(const asn_codec_ctx_t *opt_codec_ctx, - const struct asn_TYPE_descriptor_s *td, - const asn_oer_constraints_t *constraints, - void **struct_ptr, const void *bufptr, size_t size); - -/* - * Length-prefixed buffer decoding for primitive types. - */ -oer_type_decoder_f oer_decode_primitive; - - -#ifdef __cplusplus -} -#endif - -#endif /* OER_DECODER_H */ diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/oer_encoder.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/oer_encoder.c deleted file mode 100644 index a284cc2..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/oer_encoder.c +++ /dev/null @@ -1,141 +0,0 @@ -/* - * Copyright (c) 2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include - -/* - * The OER encoder of any type. - */ -asn_enc_rval_t -oer_encode(const asn_TYPE_descriptor_t *type_descriptor, const void *struct_ptr, - asn_app_consume_bytes_f *consume_bytes, void *app_key) { - ASN_DEBUG("OER encoder invoked for %s", type_descriptor->name); - - /* - * Invoke type-specific encoder. - */ - return type_descriptor->op->oer_encoder( - type_descriptor, 0, - struct_ptr, /* Pointer to the destination structure */ - consume_bytes, app_key); -} - -/* - * Argument type and callback necessary for oer_encode_to_buffer(). - */ -typedef struct enc_to_buf_arg { - void *buffer; - size_t left; -} enc_to_buf_arg; -static int -encode_to_buffer_cb(const void *buffer, size_t size, void *key) { - enc_to_buf_arg *arg = (enc_to_buf_arg *)key; - - if(arg->left < size) return -1; /* Data exceeds the available buffer size */ - - memcpy(arg->buffer, buffer, size); - arg->buffer = ((char *)arg->buffer) + size; - arg->left -= size; - - return 0; -} - -/* - * A variant of the oer_encode() which encodes the data into the provided buffer - */ -asn_enc_rval_t -oer_encode_to_buffer(const asn_TYPE_descriptor_t *type_descriptor, - const asn_oer_constraints_t *constraints, - const void *struct_ptr, /* Structure to be encoded */ - void *buffer, /* Pre-allocated buffer */ - size_t buffer_size /* Initial buffer size (maximum) */ -) { - enc_to_buf_arg arg; - asn_enc_rval_t ec; - - arg.buffer = buffer; - arg.left = buffer_size; - - if(type_descriptor->op->oer_encoder == NULL) { - ec.encoded = -1; - ec.failed_type = type_descriptor; - ec.structure_ptr = struct_ptr; - ASN_DEBUG("OER encoder is not defined for %s", - type_descriptor->name); - } else { - ec = type_descriptor->op->oer_encoder( - type_descriptor, constraints, - struct_ptr, /* Pointer to the destination structure */ - encode_to_buffer_cb, &arg); - if(ec.encoded != -1) { - assert(ec.encoded == (ssize_t)(buffer_size - arg.left)); - /* Return the encoded contents size */ - } - } - return ec; -} - -asn_enc_rval_t -oer_encode_primitive(const asn_TYPE_descriptor_t *td, - const asn_oer_constraints_t *constraints, const void *sptr, - asn_app_consume_bytes_f *cb, void *app_key) { - const ASN__PRIMITIVE_TYPE_t *st = (const ASN__PRIMITIVE_TYPE_t *)sptr; - asn_enc_rval_t er = {0, 0, 0}; - ssize_t ret; - - (void)constraints; - - if(!st) ASN__ENCODE_FAILED; - - ASN_DEBUG("Encoding %s (%" ASN_PRI_SIZE " bytes)", td ? td->name : "", st->size); - - /* - * X.696 (08/2015) #27.2 - */ - ret = oer_serialize_length(st->size, cb, app_key); - if(ret < 0) { - ASN__ENCODE_FAILED; - } - er.encoded += ret; - - er.encoded += st->size; - if(cb(st->buf, st->size, app_key) < 0) { - ASN__ENCODE_FAILED; - } else { - ASN__ENCODED_OK(er); - } -} - -static int -oer__count_bytes(const void *buffer, size_t size, void *bytes_ptr) { - size_t *bytes = bytes_ptr; - (void)buffer; - *bytes += size; - return 0; -} - -ssize_t -oer_open_type_put(const asn_TYPE_descriptor_t *td, - const asn_oer_constraints_t *constraints, const void *sptr, - asn_app_consume_bytes_f *cb, void *app_key) { - size_t serialized_byte_count = 0; - asn_enc_rval_t er = {0,0,0}; - ssize_t len_len; - - er = td->op->oer_encoder(td, constraints, sptr, oer__count_bytes, - &serialized_byte_count); - if(er.encoded < 0) return -1; - assert(serialized_byte_count == (size_t)er.encoded); - - len_len = oer_serialize_length(serialized_byte_count, cb, app_key); - if(len_len == -1) return -1; - - er = td->op->oer_encoder(td, constraints, sptr, cb, app_key); - if(er.encoded < 0) return -1; - assert(serialized_byte_count == (size_t)er.encoded); - - return len_len + er.encoded; -} - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/oer_encoder.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/oer_encoder.h deleted file mode 100644 index 6a7b681..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/oer_encoder.h +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Copyright (c) 2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef OER_ENCODER_H -#define OER_ENCODER_H - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -struct asn_TYPE_descriptor_s; /* Forward declaration */ - -/* - * The Octet Encoding Rules (OER, X.696 08/2015) encoder for any type. - * This function may be invoked directly by the application. - * Produces CANONICAL-OER output compatible with CANONICAL-OER - * and BASIC-OER decoders. - */ -asn_enc_rval_t oer_encode(const struct asn_TYPE_descriptor_s *type_descriptor, - const void *struct_ptr, /* Structure to be encoded */ - asn_app_consume_bytes_f *consume_bytes_cb, - void *app_key /* Arbitrary callback argument */ -); - -/* A variant of oer_encode() which encodes data into the pre-allocated buffer */ -asn_enc_rval_t oer_encode_to_buffer( - const struct asn_TYPE_descriptor_s *type_descriptor, - const asn_oer_constraints_t *constraints, - const void *struct_ptr, /* Structure to be encoded */ - void *buffer, /* Pre-allocated buffer */ - size_t buffer_size /* Initial buffer size (maximum) */ -); - -/* - * Type of the generic OER encoder. - */ -typedef asn_enc_rval_t(oer_type_encoder_f)( - const struct asn_TYPE_descriptor_s *type_descriptor, - const asn_oer_constraints_t *constraints, - const void *struct_ptr, /* Structure to be encoded */ - asn_app_consume_bytes_f *consume_bytes_cb, /* Callback */ - void *app_key /* Arbitrary callback argument */ -); - -/* - * Write out the Open Type (X.696 (08/2015), #30). - * RETURN VALUES: - * -1: Fatal error encoding the type. - * >0: Number of bytes serialized. - */ -ssize_t oer_open_type_put(const struct asn_TYPE_descriptor_s *td, - const asn_oer_constraints_t *constraints, - const void *struct_ptr, - asn_app_consume_bytes_f *consume_bytes_cb, - void *app_key); - - -/* - * Length-prefixed buffer encoding for primitive types. - */ -oer_type_encoder_f oer_encode_primitive; - -#ifdef __cplusplus -} -#endif - -#endif /* OER_ENCODER_H */ diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/oer_support.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/oer_support.c deleted file mode 100644 index b15a3bc..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/oer_support.c +++ /dev/null @@ -1,122 +0,0 @@ -/* - * Copyright (c) 2017 Lev Walkin . - * All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include - -#include - -/* - * Fetch the length determinant (X.696 08/2015, #8.6) into *len_r. - * RETURN VALUES: - * 0: More data expected than bufptr contains. - * -1: Fatal error deciphering length. - * >0: Number of bytes used from bufptr. - */ -ssize_t -oer_fetch_length(const void *bufptr, size_t size, size_t *len_r) { - uint8_t first_byte; - size_t len_len; /* Length of the length determinant */ - const uint8_t *b; - const uint8_t *bend; - size_t len; - - if(size == 0) { - *len_r = 0; - return 0; - } - - first_byte = *(const uint8_t *)bufptr; - if((first_byte & 0x80) == 0) { /* Short form */ - *len_r = first_byte; /* 0..127 */ - return 1; - } - - len_len = (first_byte & 0x7f); - if((1 + len_len) > size) { - *len_r = 0; - return 0; - } - - b = (const uint8_t *)bufptr + 1; - bend = b + len_len; - - for(; b < bend && *b == 0; b++) { - /* Skip the leading 0-bytes */ - } - - if((bend - b) > (ssize_t)sizeof(size_t)) { - /* Length is not representable by the native size_t type */ - *len_r = 0; - return -1; - } - - for(len = 0; b < bend; b++) { - len = (len << 8) + *b; - } - - if(len > RSIZE_MAX) { /* A bit of C11 validation */ - *len_r = 0; - return -1; - } - - *len_r = len; - assert(len_len + 1 == (size_t)(bend - (const uint8_t *)bufptr)); - return len_len + 1; -} - - -/* - * Serialize OER length. Returns the number of bytes serialized - * or -1 if a given callback returned with negative result. - */ -ssize_t -oer_serialize_length(size_t length, asn_app_consume_bytes_f *cb, - void *app_key) { - uint8_t scratch[1 + sizeof(length)]; - uint8_t *sp = scratch; - int littleEndian = 1; /* Run-time detection */ - const uint8_t *pstart; - const uint8_t *pend; - const uint8_t *p; - int add; - - if(length <= 127) { - uint8_t b = length; - if(cb(&b, 1, app_key) < 0) { - return -1; - } - return 1; - } - - if(*(char *)&littleEndian) { - pstart = (const uint8_t *)&length + sizeof(length) - 1; - pend = (const uint8_t *)&length; - add = -1; - } else { - pstart = (const uint8_t *)&length; - pend = pstart + sizeof(length); - add = 1; - } - - for(p = pstart; p != pend; p += add) { - /* Skip leading zeros. */ - if(*p) break; - } - - for(sp = scratch + 1; ; p += add) { - *sp++ = *p; - if(p == pend) break; - } - assert((sp - scratch) - 1 <= 0x7f); - scratch[0] = 0x80 + ((sp - scratch) - 1); - - if(cb(scratch, sp - scratch, app_key) < 0) { - return -1; - } - - return sp - scratch; -} - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/oer_support.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/oer_support.h deleted file mode 100644 index dbc9b5f..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/oer_support.h +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright (c) 2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef OER_SUPPORT_H -#define OER_SUPPORT_H - -#include /* Platform-specific types */ - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * Pre-computed OER constraints. - */ -typedef struct asn_oer_constraint_number_s { - unsigned width; /* ±8,4,2,1 fixed bytes */ - unsigned positive; /* 1 for unsigned number, 0 for signed */ -} asn_oer_constraint_number_t; -typedef struct asn_oer_constraints_s { - asn_oer_constraint_number_t value; - ssize_t size; /* -1 (no constraint) or >= 0 */ -} asn_oer_constraints_t; - - -/* - * Fetch the length determinant (X.696 (08/2015), #8.6) into *len_r. - * RETURN VALUES: - * 0: More data expected than bufptr contains. - * -1: Fatal error deciphering length. - * >0: Number of bytes used from bufptr. - */ -ssize_t oer_fetch_length(const void *bufptr, size_t size, size_t *len_r); - -/* - * Serialize OER length. Returns the number of bytes serialized - * or -1 if a given callback returned with negative result. - */ -ssize_t oer_serialize_length(size_t length, asn_app_consume_bytes_f *cb, void *app_key); - - -#ifdef __cplusplus -} -#endif - -#endif /* OER_SUPPORT_H */ diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/pdu_collection.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/pdu_collection.c deleted file mode 100644 index 0d559a4..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/pdu_collection.c +++ /dev/null @@ -1,25 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - */ - -struct asn_TYPE_descriptor_s; /* Forward declaration */ - -extern struct asn_TYPE_descriptor_s asn_DEF_E2SM_KPM_EventTriggerDefinition; -extern struct asn_TYPE_descriptor_s asn_DEF_E2SM_KPM_ActionDefinition; -extern struct asn_TYPE_descriptor_s asn_DEF_E2SM_KPM_IndicationHeader; -extern struct asn_TYPE_descriptor_s asn_DEF_E2SM_KPM_IndicationMessage; -extern struct asn_TYPE_descriptor_s asn_DEF_E2SM_KPM_RANfunction_Description; -extern struct asn_TYPE_descriptor_s asn_DEF_RANcallProcess_ID_string; - - -struct asn_TYPE_descriptor_s *asn_pdu_collection[] = { - /* From module E2SM-KPM-IEs in /home/rshacham/e2sm-kpm-v01.02.asn */ - &asn_DEF_E2SM_KPM_EventTriggerDefinition, - &asn_DEF_E2SM_KPM_ActionDefinition, - &asn_DEF_E2SM_KPM_IndicationHeader, - &asn_DEF_E2SM_KPM_IndicationMessage, - &asn_DEF_E2SM_KPM_RANfunction_Description, - &asn_DEF_RANcallProcess_ID_string, - 0 -}; - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/per_decoder.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/per_decoder.c deleted file mode 100644 index 8a3e39d..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/per_decoder.c +++ /dev/null @@ -1,185 +0,0 @@ -#include -#include -#include - -/* - * Decode a "Production of a complete encoding", X.691#10.1. - * The complete encoding contains at least one byte, and is an integral - * multiple of 8 bytes. - */ -asn_dec_rval_t -uper_decode_complete(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **sptr, - const void *buffer, size_t size) { - asn_dec_rval_t rval; - - rval = uper_decode(opt_codec_ctx, td, sptr, buffer, size, 0, 0); - if(rval.consumed) { - /* - * We've always given 8-aligned data, - * so convert bits to integral bytes. - */ - rval.consumed += 7; - rval.consumed >>= 3; - } else if(rval.code == RC_OK) { - if(size) { - if(((const uint8_t *)buffer)[0] == 0) { - rval.consumed = 1; /* 1 byte */ - } else { - ASN_DEBUG("Expecting single zeroed byte"); - rval.code = RC_FAIL; - } - } else { - /* Must contain at least 8 bits. */ - rval.code = RC_WMORE; - } - } - - return rval; -} - -asn_dec_rval_t -uper_decode(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **sptr, const void *buffer, - size_t size, int skip_bits, int unused_bits) { - asn_codec_ctx_t s_codec_ctx; - asn_dec_rval_t rval; - asn_per_data_t pd; - - if(skip_bits < 0 || skip_bits > 7 - || unused_bits < 0 || unused_bits > 7 - || (unused_bits > 0 && !size)) - ASN__DECODE_FAILED; - - /* - * Stack checker requires that the codec context - * must be allocated on the stack. - */ - if(opt_codec_ctx) { - if(opt_codec_ctx->max_stack_size) { - s_codec_ctx = *opt_codec_ctx; - opt_codec_ctx = &s_codec_ctx; - } - } else { - /* If context is not given, be security-conscious anyway */ - memset(&s_codec_ctx, 0, sizeof(s_codec_ctx)); - s_codec_ctx.max_stack_size = ASN__DEFAULT_STACK_MAX; - opt_codec_ctx = &s_codec_ctx; - } - - /* Fill in the position indicator */ - memset(&pd, 0, sizeof(pd)); - pd.buffer = (const uint8_t *)buffer; - pd.nboff = skip_bits; - pd.nbits = 8 * size - unused_bits; /* 8 is CHAR_BIT from */ - if(pd.nboff > pd.nbits) - ASN__DECODE_FAILED; - - /* - * Invoke type-specific decoder. - */ - if(!td->op->uper_decoder) - ASN__DECODE_FAILED; /* PER is not compiled in */ - rval = td->op->uper_decoder(opt_codec_ctx, td, 0, sptr, &pd); - if(rval.code == RC_OK) { - /* Return the number of consumed bits */ - rval.consumed = ((pd.buffer - (const uint8_t *)buffer) << 3) - + pd.nboff - skip_bits; - ASN_DEBUG("PER decoding consumed %ld, counted %ld", - (long)rval.consumed, (long)pd.moved); - assert(rval.consumed == pd.moved); - } else { - /* PER codec is not a restartable */ - rval.consumed = 0; - } - return rval; -} - -asn_dec_rval_t -aper_decode_complete(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **sptr, - const void *buffer, size_t size) { - asn_dec_rval_t rval; - - rval = aper_decode(opt_codec_ctx, td, sptr, buffer, size, 0, 0); - if(rval.consumed) { - /* - * We've always given 8-aligned data, - * so convert bits to integral bytes. - */ - rval.consumed += 7; - rval.consumed >>= 3; - } else if(rval.code == RC_OK) { - if(size) { - if(((const uint8_t *)buffer)[0] == 0) { - rval.consumed = 1; /* 1 byte */ - } else { - ASN_DEBUG("Expecting single zeroed byte"); - rval.code = RC_FAIL; - } - } else { - /* Must contain at least 8 bits. */ - rval.code = RC_WMORE; - } - } - - return rval; -} - -asn_dec_rval_t -aper_decode(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **sptr, const void *buffer, - size_t size, int skip_bits, int unused_bits) { - asn_codec_ctx_t s_codec_ctx; - asn_dec_rval_t rval; - asn_per_data_t pd; - - if(skip_bits < 0 || skip_bits > 7 - || unused_bits < 0 || unused_bits > 7 - || (unused_bits > 0 && !size)) - ASN__DECODE_FAILED; - - /* - * Stack checker requires that the codec context - * must be allocated on the stack. - */ - if(opt_codec_ctx) { - if(opt_codec_ctx->max_stack_size) { - s_codec_ctx = *opt_codec_ctx; - opt_codec_ctx = &s_codec_ctx; - } - } else { - /* If context is not given, be security-conscious anyway */ - memset(&s_codec_ctx, 0, sizeof(s_codec_ctx)); - s_codec_ctx.max_stack_size = ASN__DEFAULT_STACK_MAX; - opt_codec_ctx = &s_codec_ctx; - } - - /* Fill in the position indicator */ - memset(&pd, 0, sizeof(pd)); - pd.buffer = (const uint8_t *)buffer; - pd.nboff = skip_bits; - pd.nbits = 8 * size - unused_bits; /* 8 is CHAR_BIT from */ - if(pd.nboff > pd.nbits) - ASN__DECODE_FAILED; - - /* - * Invoke type-specific decoder. - */ - if(!td->op->aper_decoder) - ASN__DECODE_FAILED; /* PER is not compiled in */ - rval = td->op->aper_decoder(opt_codec_ctx, td, 0, sptr, &pd); - if(rval.code == RC_OK) { - /* Return the number of consumed bits */ - rval.consumed = ((pd.buffer - (const uint8_t *)buffer) << 3) - + pd.nboff - skip_bits; - ASN_DEBUG("PER decoding consumed %zu, counted %zu", - rval.consumed, pd.moved); - assert(rval.consumed == pd.moved); - } else { - /* PER codec is not a restartable */ - rval.consumed = 0; - } - return rval; -} - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/per_decoder.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/per_decoder.h deleted file mode 100644 index eea474a..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/per_decoder.h +++ /dev/null @@ -1,82 +0,0 @@ -/*- - * Copyright (c) 2005-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef _PER_DECODER_H_ -#define _PER_DECODER_H_ - -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -struct asn_TYPE_descriptor_s; /* Forward declaration */ - -/* - * Unaligned PER decoder of a "complete encoding" as per X.691 (08/2015) #11.1. - * On success, this call always returns (.consumed >= 1), as per #11.1.3. - */ -asn_dec_rval_t uper_decode_complete( - const struct asn_codec_ctx_s *opt_codec_ctx, - const struct asn_TYPE_descriptor_s *type_descriptor, /* Type to decode */ - void **struct_ptr, /* Pointer to a target structure's pointer */ - const void *buffer, /* Data to be decoded */ - size_t size /* Size of data buffer */ -); - -/* - * Unaligned PER decoder of any ASN.1 type. May be invoked by the application. - * WARNING: This call returns the number of BITS read from the stream. Beware. - */ -asn_dec_rval_t uper_decode( - const struct asn_codec_ctx_s *opt_codec_ctx, - const struct asn_TYPE_descriptor_s *type_descriptor, /* Type to decode */ - void **struct_ptr, /* Pointer to a target structure's pointer */ - const void *buffer, /* Data to be decoded */ - size_t size, /* Size of the input data buffer, in bytes */ - int skip_bits, /* Number of unused leading bits, 0..7 */ - int unused_bits /* Number of unused tailing bits, 0..7 */ -); - -/* - * Aligned PER decoder of a "complete encoding" as per X.691#10.1. - * On success, this call always returns (.consumed >= 1), in BITS, as per X.691#10.1.3. - */ -asn_dec_rval_t aper_decode_complete( - const struct asn_codec_ctx_s *opt_codec_ctx, - const struct asn_TYPE_descriptor_s *type_descriptor, /* Type to decode */ - void **struct_ptr, /* Pointer to a target structure's pointer */ - const void *buffer, /* Data to be decoded */ - size_t size /* Size of data buffer */ - ); - -/* - * Aligned PER decoder of any ASN.1 type. May be invoked by the application. - * WARNING: This call returns the number of BITS read from the stream. Beware. - */ -asn_dec_rval_t aper_decode( - const struct asn_codec_ctx_s *opt_codec_ctx, - const struct asn_TYPE_descriptor_s *type_descriptor, /* Type to decode */ - void **struct_ptr, /* Pointer to a target structure's pointer */ - const void *buffer, /* Data to be decoded */ - size_t size, /* Size of data buffer */ - int skip_bits, /* Number of unused leading bits, 0..7 */ - int unused_bits /* Number of unused tailing bits, 0..7 */ - ); - -/* - * Type of the type-specific PER decoder function. - */ -typedef asn_dec_rval_t(per_type_decoder_f)( - const asn_codec_ctx_t *opt_codec_ctx, - const struct asn_TYPE_descriptor_s *type_descriptor, - const asn_per_constraints_t *constraints, void **struct_ptr, - asn_per_data_t *per_data); - -#ifdef __cplusplus -} -#endif - -#endif /* _PER_DECODER_H_ */ diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/per_encoder.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/per_encoder.c deleted file mode 100644 index a35e1f0..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/per_encoder.c +++ /dev/null @@ -1,265 +0,0 @@ -#include -#include -#include - -static int _uper_encode_flush_outp(asn_per_outp_t *po); - -static int -ignore_output(const void *data, size_t size, void *app_key) { - (void)data; - (void)size; - (void)app_key; - return 0; -} - -asn_enc_rval_t -uper_encode(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, const void *sptr, - asn_app_consume_bytes_f *cb, void *app_key) { - asn_per_outp_t po; - asn_enc_rval_t er = {0,0,0}; - - /* - * Invoke type-specific encoder. - */ - if(!td || !td->op->uper_encoder) - ASN__ENCODE_FAILED; /* PER is not compiled in */ - - po.buffer = po.tmpspace; - po.nboff = 0; - po.nbits = 8 * sizeof(po.tmpspace); - po.output = cb ? cb : ignore_output; - po.op_key = app_key; - po.flushed_bytes = 0; - - er = td->op->uper_encoder(td, constraints, sptr, &po); - if(er.encoded != -1) { - size_t bits_to_flush; - - bits_to_flush = ((po.buffer - po.tmpspace) << 3) + po.nboff; - - /* Set number of bits encoded to a firm value */ - er.encoded = (po.flushed_bytes << 3) + bits_to_flush; - - if(_uper_encode_flush_outp(&po)) ASN__ENCODE_FAILED; - } - - return er; -} - -/* - * Argument type and callback necessary for uper_encode_to_buffer(). - */ -typedef struct enc_to_buf_arg { - void *buffer; - size_t left; -} enc_to_buf_arg; -static int encode_to_buffer_cb(const void *buffer, size_t size, void *key) { - enc_to_buf_arg *arg = (enc_to_buf_arg *)key; - - if(arg->left < size) - return -1; /* Data exceeds the available buffer size */ - - memcpy(arg->buffer, buffer, size); - arg->buffer = ((char *)arg->buffer) + size; - arg->left -= size; - - return 0; -} - -asn_enc_rval_t -uper_encode_to_buffer(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, void *buffer, size_t buffer_size) { - enc_to_buf_arg key; - - key.buffer = buffer; - key.left = buffer_size; - - if(td) ASN_DEBUG("Encoding \"%s\" using UNALIGNED PER", td->name); - - return uper_encode(td, constraints, sptr, encode_to_buffer_cb, &key); -} - -typedef struct enc_dyn_arg { - void *buffer; - size_t length; - size_t allocated; -} enc_dyn_arg; -static int -encode_dyn_cb(const void *buffer, size_t size, void *key) { - enc_dyn_arg *arg = key; - if(arg->length + size >= arg->allocated) { - size_t new_size = arg->allocated ? arg->allocated : 8; - void *p; - - do { - new_size <<= 2; - } while(arg->length + size >= new_size); - - p = REALLOC(arg->buffer, new_size); - if(!p) { - FREEMEM(arg->buffer); - memset(arg, 0, sizeof(*arg)); - return -1; - } - arg->buffer = p; - arg->allocated = new_size; - } - memcpy(((char *)arg->buffer) + arg->length, buffer, size); - arg->length += size; - return 0; -} -ssize_t -uper_encode_to_new_buffer(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, void **buffer_r) { - asn_enc_rval_t er = {0,0,0}; - enc_dyn_arg key; - - memset(&key, 0, sizeof(key)); - - er = uper_encode(td, constraints, sptr, encode_dyn_cb, &key); - switch(er.encoded) { - case -1: - FREEMEM(key.buffer); - return -1; - case 0: - FREEMEM(key.buffer); - key.buffer = MALLOC(1); - if(key.buffer) { - *(char *)key.buffer = '\0'; - *buffer_r = key.buffer; - return 1; - } else { - return -1; - } - default: - *buffer_r = key.buffer; - ASN_DEBUG("Complete encoded in %ld bits", (long)er.encoded); - return ((er.encoded + 7) >> 3); - } -} - -/* - * Internally useful functions. - */ - -/* Flush partially filled buffer */ -static int -_uper_encode_flush_outp(asn_per_outp_t *po) { - uint8_t *buf; - - if(po->nboff == 0 && po->buffer == po->tmpspace) - return 0; - - buf = po->buffer + (po->nboff >> 3); - /* Make sure we account for the last, partially filled */ - if(po->nboff & 0x07) { - buf[0] &= 0xff << (8 - (po->nboff & 0x07)); - buf++; - } - - return po->output(po->tmpspace, buf - po->tmpspace, po->op_key); -} - -asn_enc_rval_t -aper_encode_to_buffer(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, void *buffer, size_t buffer_size) { - enc_to_buf_arg key; - - key.buffer = buffer; - key.left = buffer_size; - - if(td) ASN_DEBUG("Encoding \"%s\" using ALIGNED PER", td->name); - - return aper_encode(td, constraints, sptr, encode_to_buffer_cb, &key); -} - -ssize_t -aper_encode_to_new_buffer(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, void **buffer_r) { - asn_enc_rval_t er = {0,0,0}; - enc_dyn_arg key; - - memset(&key, 0, sizeof(key)); - - er = aper_encode(td, constraints, sptr, encode_dyn_cb, &key); - switch(er.encoded) { - case -1: - FREEMEM(key.buffer); - return -1; - case 0: - FREEMEM(key.buffer); - key.buffer = MALLOC(1); - if(key.buffer) { - *(char *)key.buffer = '\0'; - *buffer_r = key.buffer; - return 1; - } else { - return -1; - } - default: - *buffer_r = key.buffer; - ASN_DEBUG("Complete encoded in %ld bits", (long)er.encoded); - return ((er.encoded + 7) >> 3); - } -} - -static int -_aper_encode_flush_outp(asn_per_outp_t *po) { - uint8_t *buf; - - if(po->nboff == 0 && po->buffer == po->tmpspace) - return 0; - - buf = po->buffer + (po->nboff >> 3); - /* Make sure we account for the last, partially filled */ - if(po->nboff & 0x07) { - buf[0] &= 0xff << (8 - (po->nboff & 0x07)); - buf++; - } - - if (po->output) { - return po->output(po->tmpspace, buf - po->tmpspace, po->op_key); - } - return 0; -} - -asn_enc_rval_t -aper_encode(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_app_consume_bytes_f *cb, void *app_key) { - asn_per_outp_t po; - asn_enc_rval_t er = {0,0,0}; - - /* - * Invoke type-specific encoder. - */ - if(!td || !td->op->aper_encoder) - ASN__ENCODE_FAILED; /* PER is not compiled in */ - - po.buffer = po.tmpspace; - po.nboff = 0; - po.nbits = 8 * sizeof(po.tmpspace); - po.output = cb; - po.op_key = app_key; - po.flushed_bytes = 0; - - er = td->op->aper_encoder(td, constraints, sptr, &po); - if(er.encoded != -1) { - size_t bits_to_flush; - - bits_to_flush = ((po.buffer - po.tmpspace) << 3) + po.nboff; - - /* Set number of bits encoded to a firm value */ - er.encoded = (po.flushed_bytes << 3) + bits_to_flush; - - if(_aper_encode_flush_outp(&po)) - ASN__ENCODE_FAILED; - } - - return er; -} diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/per_encoder.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/per_encoder.h deleted file mode 100644 index b615ef0..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/per_encoder.h +++ /dev/null @@ -1,93 +0,0 @@ -/*- - * Copyright (c) 2006-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef _PER_ENCODER_H_ -#define _PER_ENCODER_H_ - -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -struct asn_TYPE_descriptor_s; /* Forward declaration */ - -/* - * Unaligned PER encoder of any ASN.1 type. May be invoked by the application. - * WARNING: This function returns the number of encoded bits in the .encoded - * field of the return value. Use the following formula to convert to bytes: - * bytes = ((.encoded + 7) / 8) - */ -asn_enc_rval_t uper_encode( - const struct asn_TYPE_descriptor_s *type_descriptor, - const asn_per_constraints_t *constraints, - const void *struct_ptr, /* Structure to be encoded */ - asn_app_consume_bytes_f *consume_bytes_cb, /* Data collector */ - void *app_key /* Arbitrary callback argument */ -); - -asn_enc_rval_t aper_encode( - const struct asn_TYPE_descriptor_s *type_descriptor, - const asn_per_constraints_t *constraints, - const void *struct_ptr, /* Structure to be encoded */ - asn_app_consume_bytes_f *consume_bytes_cb, /* Data collector */ - void *app_key /* Arbitrary callback argument */ -); - -/* - * A variant of uper_encode() which encodes data into the existing buffer - * WARNING: This function returns the number of encoded bits in the .encoded - * field of the return value. - */ -asn_enc_rval_t uper_encode_to_buffer( - const struct asn_TYPE_descriptor_s *type_descriptor, - const asn_per_constraints_t *constraints, - const void *struct_ptr, /* Structure to be encoded */ - void *buffer, /* Pre-allocated buffer */ - size_t buffer_size /* Initial buffer size (max) */ -); - -asn_enc_rval_t aper_encode_to_buffer( - const struct asn_TYPE_descriptor_s *type_descriptor, - const asn_per_constraints_t *constraints, - const void *struct_ptr, /* Structure to be encoded */ - void *buffer, /* Pre-allocated buffer */ - size_t buffer_size /* Initial buffer size (max) */ -); -/* - * A variant of uper_encode_to_buffer() which allocates buffer itself. - * Returns the number of bytes in the buffer or -1 in case of failure. - * WARNING: This function produces a "Production of the complete encoding", - * with length of at least one octet. Contrast this to precise bit-packing - * encoding of uper_encode() and uper_encode_to_buffer(). - */ -ssize_t uper_encode_to_new_buffer( - const struct asn_TYPE_descriptor_s *type_descriptor, - const asn_per_constraints_t *constraints, - const void *struct_ptr, /* Structure to be encoded */ - void **buffer_r /* Buffer allocated and returned */ -); - -ssize_t -aper_encode_to_new_buffer( - const struct asn_TYPE_descriptor_s *td, - const asn_per_constraints_t *constraints, - const void *sptr, - void **buffer_r -); - -/* - * Type of the generic PER encoder function. - */ -typedef asn_enc_rval_t(per_type_encoder_f)( - const struct asn_TYPE_descriptor_s *type_descriptor, - const asn_per_constraints_t *constraints, const void *struct_ptr, - asn_per_outp_t *per_output); - -#ifdef __cplusplus -} -#endif - -#endif /* _PER_ENCODER_H_ */ diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/per_opentype.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/per_opentype.c deleted file mode 100644 index 28f3cb6..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/per_opentype.c +++ /dev/null @@ -1,533 +0,0 @@ -/* - * Copyright (c) 2007 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include -#include - -typedef struct uper_ugot_key { - asn_per_data_t oldpd; /* Old per data source */ - size_t unclaimed; - size_t ot_moved; /* Number of bits moved by OT processing */ - int repeat; -} uper_ugot_key; - -static int uper_ugot_refill(asn_per_data_t *pd); -static int per_skip_bits(asn_per_data_t *pd, int skip_nbits); -static asn_dec_rval_t uper_sot_suck(const asn_codec_ctx_t *, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - void **sptr, asn_per_data_t *pd); - -/* - * Encode an "open type field". - * #10.1, #10.2 - */ -int -uper_open_type_put(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, const void *sptr, - asn_per_outp_t *po) { - void *buf; - void *bptr; - ssize_t size; - - ASN_DEBUG("Open type put %s ...", td->name); - - size = uper_encode_to_new_buffer(td, constraints, sptr, &buf); - if(size <= 0) return -1; - - ASN_DEBUG("Open type put %s of length %" ASN_PRI_SSIZE " + overhead (1byte?)", td->name, - size); - - bptr = buf; - do { - int need_eom = 0; - ssize_t may_save = uper_put_length(po, size, &need_eom); - ASN_DEBUG("Prepending length %" ASN_PRI_SSIZE - " to %s and allowing to save %" ASN_PRI_SSIZE, - size, td->name, may_save); - if(may_save < 0) break; - if(per_put_many_bits(po, bptr, may_save * 8)) break; - bptr = (char *)bptr + may_save; - size -= may_save; - if(need_eom && uper_put_length(po, 0, 0)) { - FREEMEM(buf); - return -1; - } - } while(size); - - FREEMEM(buf); - if(size) return -1; - - return 0; -} - -static asn_dec_rval_t -uper_open_type_get_simple(const asn_codec_ctx_t *ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, - asn_per_data_t *pd) { - asn_dec_rval_t rv; - ssize_t chunk_bytes; - int repeat; - uint8_t *buf = 0; - size_t bufLen = 0; - size_t bufSize = 0; - asn_per_data_t spd; - size_t padding; - - ASN__STACK_OVERFLOW_CHECK(ctx); - - ASN_DEBUG("Getting open type %s...", td->name); - - do { - chunk_bytes = uper_get_length(pd, -1, 0, &repeat); - if(chunk_bytes < 0) { - FREEMEM(buf); - ASN__DECODE_STARVED; - } - if(bufLen + chunk_bytes > bufSize) { - void *ptr; - bufSize = chunk_bytes + (bufSize << 2); - ptr = REALLOC(buf, bufSize); - if(!ptr) { - FREEMEM(buf); - ASN__DECODE_FAILED; - } - buf = ptr; - } - if(per_get_many_bits(pd, buf + bufLen, 0, chunk_bytes << 3)) { - FREEMEM(buf); - ASN__DECODE_STARVED; - } - bufLen += chunk_bytes; - } while(repeat); - - ASN_DEBUG("Getting open type %s encoded in %ld bytes", td->name, - (long)bufLen); - - memset(&spd, 0, sizeof(spd)); - spd.buffer = buf; - spd.nbits = bufLen << 3; - - ASN_DEBUG_INDENT_ADD(+4); - rv = td->op->uper_decoder(ctx, td, constraints, sptr, &spd); - ASN_DEBUG_INDENT_ADD(-4); - - if(rv.code == RC_OK) { - /* Check padding validity */ - padding = spd.nbits - spd.nboff; - if (((padding > 0 && padding < 8) || - /* X.691#10.1.3 */ - (spd.nboff == 0 && spd.nbits == 8 && spd.buffer == buf)) && - per_get_few_bits(&spd, padding) == 0) { - /* Everything is cool */ - FREEMEM(buf); - return rv; - } - FREEMEM(buf); - if(padding >= 8) { - ASN_DEBUG("Too large padding %d in open type", (int)padding); - ASN__DECODE_FAILED; - } else { - ASN_DEBUG("No padding"); - } - } else { - FREEMEM(buf); - /* rv.code could be RC_WMORE, nonsense in this context */ - rv.code = RC_FAIL; /* Noone would give us more */ - } - - return rv; -} - -static asn_dec_rval_t CC_NOTUSED -uper_open_type_get_complex(const asn_codec_ctx_t *ctx, - const asn_TYPE_descriptor_t *td, - asn_per_constraints_t *constraints, void **sptr, - asn_per_data_t *pd) { - uper_ugot_key arg; - asn_dec_rval_t rv; - ssize_t padding; - - ASN__STACK_OVERFLOW_CHECK(ctx); - - ASN_DEBUG("Getting open type %s from %s", td->name, - asn_bit_data_string(pd)); - arg.oldpd = *pd; - arg.unclaimed = 0; - arg.ot_moved = 0; - arg.repeat = 1; - pd->refill = uper_ugot_refill; - pd->refill_key = &arg; - pd->nbits = pd->nboff; /* 0 good bits at this point, will refill */ - pd->moved = 0; /* This now counts the open type size in bits */ - - ASN_DEBUG_INDENT_ADD(+4); - rv = td->op->uper_decoder(ctx, td, constraints, sptr, pd); - ASN_DEBUG_INDENT_ADD(-4); - -#define UPDRESTOREPD do { \ - /* buffer and nboff are valid, preserve them. */ \ - pd->nbits = arg.oldpd.nbits - (pd->moved - arg.ot_moved); \ - pd->moved = arg.oldpd.moved + (pd->moved - arg.ot_moved); \ - pd->refill = arg.oldpd.refill; \ - pd->refill_key = arg.oldpd.refill_key; \ - } while(0) - - if(rv.code != RC_OK) { - UPDRESTOREPD; - return rv; - } - - ASN_DEBUG("OpenType %s pd%s old%s unclaimed=%d, repeat=%d", td->name, - asn_bit_data_string(pd), - asn_bit_data_string(&arg.oldpd), - (int)arg.unclaimed, (int)arg.repeat); - - padding = pd->moved % 8; - if(padding) { - int32_t pvalue; - if(padding > 7) { - ASN_DEBUG("Too large padding %d in open type", - (int)padding); - rv.code = RC_FAIL; - UPDRESTOREPD; - return rv; - } - padding = 8 - padding; - ASN_DEBUG("Getting padding of %d bits", (int)padding); - pvalue = per_get_few_bits(pd, padding); - switch(pvalue) { - case -1: - ASN_DEBUG("Padding skip failed"); - UPDRESTOREPD; - ASN__DECODE_STARVED; - case 0: break; - default: - ASN_DEBUG("Non-blank padding (%d bits 0x%02x)", - (int)padding, (int)pvalue); - UPDRESTOREPD; - ASN__DECODE_FAILED; - } - } - if(pd->nboff != pd->nbits) { - ASN_DEBUG("Open type %s overhead pd%s old%s", td->name, - asn_bit_data_string(pd), asn_bit_data_string(&arg.oldpd)); - if(1) { - UPDRESTOREPD; - ASN__DECODE_FAILED; - } else { - arg.unclaimed += pd->nbits - pd->nboff; - } - } - - /* Adjust pd back so it points to original data */ - UPDRESTOREPD; - - /* Skip data not consumed by the decoder */ - if(arg.unclaimed) { - ASN_DEBUG("Getting unclaimed %d", (int)arg.unclaimed); - switch(per_skip_bits(pd, arg.unclaimed)) { - case -1: - ASN_DEBUG("Claim of %d failed", (int)arg.unclaimed); - ASN__DECODE_STARVED; - case 0: - ASN_DEBUG("Got claim of %d", (int)arg.unclaimed); - break; - default: - /* Padding must be blank */ - ASN_DEBUG("Non-blank unconsumed padding"); - ASN__DECODE_FAILED; - } - arg.unclaimed = 0; - } - - if(arg.repeat) { - ASN_DEBUG("Not consumed the whole thing"); - rv.code = RC_FAIL; - return rv; - } - - return rv; -} - - -asn_dec_rval_t -uper_open_type_get(const asn_codec_ctx_t *ctx, const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, - asn_per_data_t *pd) { - return uper_open_type_get_simple(ctx, td, constraints, sptr, pd); -} - -int -uper_open_type_skip(const asn_codec_ctx_t *ctx, asn_per_data_t *pd) { - asn_TYPE_descriptor_t s_td; - asn_TYPE_operation_t s_op; - asn_dec_rval_t rv; - - s_td.name = ""; - s_td.op = &s_op; - s_op.uper_decoder = uper_sot_suck; - - rv = uper_open_type_get(ctx, &s_td, 0, 0, pd); - if(rv.code != RC_OK) - return -1; - else - return 0; -} - -/* - * Internal functions. - */ - -static asn_dec_rval_t -uper_sot_suck(const asn_codec_ctx_t *ctx, const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, - asn_per_data_t *pd) { - asn_dec_rval_t rv; - - (void)ctx; - (void)td; - (void)constraints; - (void)sptr; - - while(per_get_few_bits(pd, 1) >= 0); - - rv.code = RC_OK; - rv.consumed = pd->moved; - - return rv; -} - -static int -uper_ugot_refill(asn_per_data_t *pd) { - uper_ugot_key *arg = pd->refill_key; - ssize_t next_chunk_bytes, next_chunk_bits; - ssize_t avail; - - asn_per_data_t *oldpd = &arg->oldpd; - - ASN_DEBUG("REFILLING pd->moved=%ld, oldpd->moved=%ld", - (long)pd->moved, (long)oldpd->moved); - - /* Advance our position to where pd is */ - oldpd->buffer = pd->buffer; - oldpd->nboff = pd->nboff; - oldpd->nbits -= pd->moved - arg->ot_moved; - oldpd->moved += pd->moved - arg->ot_moved; - arg->ot_moved = pd->moved; - - if(arg->unclaimed) { - /* Refill the container */ - if(per_get_few_bits(oldpd, 1)) - return -1; - if(oldpd->nboff == 0) { - assert(0); - return -1; - } - pd->buffer = oldpd->buffer; - pd->nboff = oldpd->nboff - 1; - pd->nbits = oldpd->nbits; - ASN_DEBUG("UNCLAIMED <- return from (pd->moved=%ld)", - (long)pd->moved); - return 0; - } - - if(!arg->repeat) { - ASN_DEBUG("Want more but refill doesn't have it"); - return -1; - } - - next_chunk_bytes = uper_get_length(oldpd, -1, 0, &arg->repeat); - ASN_DEBUG("Open type LENGTH %ld bytes at off %ld, repeat %ld", - (long)next_chunk_bytes, (long)oldpd->moved, (long)arg->repeat); - if(next_chunk_bytes < 0) return -1; - if(next_chunk_bytes == 0) { - pd->refill = 0; /* No more refills, naturally */ - assert(!arg->repeat); /* Implementation guarantee */ - } - next_chunk_bits = next_chunk_bytes << 3; - avail = oldpd->nbits - oldpd->nboff; - if(avail >= next_chunk_bits) { - pd->nbits = oldpd->nboff + next_chunk_bits; - arg->unclaimed = 0; - ASN_DEBUG("!+Parent frame %ld bits, alloting %ld [%ld..%ld] (%ld)", - (long)next_chunk_bits, (long)oldpd->moved, - (long)oldpd->nboff, (long)oldpd->nbits, - (long)(oldpd->nbits - oldpd->nboff)); - } else { - pd->nbits = oldpd->nbits; - arg->unclaimed = next_chunk_bits - avail; - ASN_DEBUG("!-Parent frame %ld, require %ld, will claim %ld", - (long)avail, (long)next_chunk_bits, - (long)arg->unclaimed); - } - pd->buffer = oldpd->buffer; - pd->nboff = oldpd->nboff; - ASN_DEBUG("Refilled pd%s old%s", - asn_bit_data_string(pd), asn_bit_data_string(oldpd)); - return 0; -} - -static int -per_skip_bits(asn_per_data_t *pd, int skip_nbits) { - int hasNonZeroBits = 0; - while(skip_nbits > 0) { - int skip; - - /* per_get_few_bits() is more efficient when nbits <= 24 */ - if(skip_nbits < 24) - skip = skip_nbits; - else - skip = 24; - skip_nbits -= skip; - - switch(per_get_few_bits(pd, skip)) { - case -1: return -1; /* Starving */ - case 0: continue; /* Skipped empty space */ - default: hasNonZeroBits = 1; continue; - } - } - return hasNonZeroBits; -} - -static asn_dec_rval_t -aper_open_type_get_simple(const asn_codec_ctx_t *ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, void **sptr, asn_per_data_t *pd) { - asn_dec_rval_t rv; - ssize_t chunk_bytes; - int repeat; - uint8_t *buf = 0; - size_t bufLen = 0; - size_t bufSize = 0; - asn_per_data_t spd; - size_t padding; - - ASN__STACK_OVERFLOW_CHECK(ctx); - - ASN_DEBUG("Getting open type %s...", td->name); - - do { - chunk_bytes = aper_get_length(pd, -1, -1, &repeat); - if(chunk_bytes < 0) { - FREEMEM(buf); - ASN__DECODE_STARVED; - } - if(bufLen + chunk_bytes > bufSize) { - void *ptr; - bufSize = chunk_bytes + (bufSize << 2); - ptr = REALLOC(buf, bufSize); - if(!ptr) { - FREEMEM(buf); - ASN__DECODE_FAILED; - } - buf = ptr; - } - if(per_get_many_bits(pd, buf + bufLen, 0, chunk_bytes << 3)) { - FREEMEM(buf); - ASN__DECODE_STARVED; - } - bufLen += chunk_bytes; - } while(repeat); - - ASN_DEBUG("Getting open type %s encoded in %ld bytes", td->name, - (long)bufLen); - - memset(&spd, 0, sizeof(spd)); - spd.buffer = buf; - spd.nbits = bufLen << 3; - - ASN_DEBUG_INDENT_ADD(+4); - rv = td->op->aper_decoder(ctx, td, constraints, sptr, &spd); - ASN_DEBUG_INDENT_ADD(-4); - - if(rv.code == RC_OK) { - /* Check padding validity */ - padding = spd.nbits - spd.nboff; - if (((padding > 0 && padding < 8) || - /* X.691#10.1.3 */ - (spd.nboff == 0 && spd.nbits == 8 && spd.buffer == buf)) && - per_get_few_bits(&spd, padding) == 0) { - /* Everything is cool */ - FREEMEM(buf); - return rv; - } - FREEMEM(buf); - if(padding >= 8) { - ASN_DEBUG("Too large padding %d in open type", (int)padding); - ASN__DECODE_FAILED; - } else { - ASN_DEBUG("No padding"); - } - } else { - FREEMEM(buf); - /* rv.code could be RC_WMORE, nonsense in this context */ - rv.code = RC_FAIL; /* Noone would give us more */ - } - - return rv; -} - -int -aper_open_type_put(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_per_outp_t *po) { - void *buf; - void *bptr; - ssize_t size; - size_t toGo; - - ASN_DEBUG("Open type put %s ...", td->name); - - size = aper_encode_to_new_buffer(td, constraints, sptr, &buf); - if(size <= 0) return -1; - - for(bptr = buf, toGo = size; toGo;) { - ssize_t maySave = aper_put_length(po, -1, toGo); - if(maySave < 0) break; - if(per_put_many_bits(po, bptr, maySave * 8)) break; - bptr = (char *)bptr + maySave; - toGo -= maySave; - } - - FREEMEM(buf); - if(toGo) return -1; - - ASN_DEBUG("Open type put %s of length %ld + overhead (1byte?)", - td->name, size); - - return 0; -} - -asn_dec_rval_t -aper_open_type_get(const asn_codec_ctx_t *ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - void **sptr, asn_per_data_t *pd) { - - return aper_open_type_get_simple(ctx, td, constraints, sptr, pd); -} - -int -aper_open_type_skip(const asn_codec_ctx_t *ctx, asn_per_data_t *pd) { - asn_TYPE_descriptor_t s_td; - asn_dec_rval_t rv; - asn_TYPE_operation_t op_t; - - memset(&op_t, 0, sizeof(op_t)); - s_td.name = ""; - s_td.op = &op_t; - s_td.op->aper_decoder = uper_sot_suck; - - rv = aper_open_type_get(ctx, &s_td, 0, 0, pd); - if(rv.code != RC_OK) - return -1; - else - return 0; -} - - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/per_opentype.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/per_opentype.h deleted file mode 100644 index 1493b2d..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/per_opentype.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Copyright (c) 2007-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef _PER_OPENTYPE_H_ -#define _PER_OPENTYPE_H_ - -#ifdef __cplusplus -extern "C" { -#endif - -asn_dec_rval_t uper_open_type_get(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - void **sptr, asn_per_data_t *pd); - -int uper_open_type_skip(const asn_codec_ctx_t *opt_codec_ctx, - asn_per_data_t *pd); - -/* - * X.691 (2015/08), #11.2 - * Returns -1 if error is encountered. 0 if all OK. - */ -int uper_open_type_put(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_per_outp_t *po); - -asn_dec_rval_t aper_open_type_get(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - void **sptr, asn_per_data_t *pd); - - -int aper_open_type_skip(const asn_codec_ctx_t *opt_codec_ctx, asn_per_data_t *pd); - -int aper_open_type_put(const asn_TYPE_descriptor_t *td, - const asn_per_constraints_t *constraints, - const void *sptr, asn_per_outp_t *po); - -#ifdef __cplusplus -} -#endif - -#endif /* _PER_OPENTYPE_H_ */ diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/per_support.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/per_support.c deleted file mode 100644 index 2285677..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/per_support.c +++ /dev/null @@ -1,489 +0,0 @@ -/* - * Copyright (c) 2005-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include - -/* - * X.691-201508 #10.9 General rules for encoding a length determinant. - * Get the optionally constrained length "n" from the stream. - */ -ssize_t -uper_get_length(asn_per_data_t *pd, int ebits, size_t lower_bound, - int *repeat) { - ssize_t value; - - *repeat = 0; - - /* #11.9.4.1 Encoding if constrained (according to effective bits) */ - if(ebits >= 0 && ebits <= 16) { - value = per_get_few_bits(pd, ebits); - if(value >= 0) value += lower_bound; - return value; - } - - value = per_get_few_bits(pd, 8); - if((value & 0x80) == 0) { /* #11.9.3.6 */ - return (value & 0x7F); - } else if((value & 0x40) == 0) { /* #11.9.3.7 */ - /* bit 8 ... set to 1 and bit 7 ... set to zero */ - value = ((value & 0x3f) << 8) | per_get_few_bits(pd, 8); - return value; /* potential -1 from per_get_few_bits passes through. */ - } else if(value < 0) { - ASN_DEBUG("END of stream reached for PER"); - return -1; - } - value &= 0x3f; /* this is "m" from X.691, #11.9.3.8 */ - if(value < 1 || value > 4) { - return -1; /* Prohibited by #11.9.3.8 */ - } - *repeat = 1; - return (16384 * value); -} - -/* - * Get the normally small length "n". - * This procedure used to decode length of extensions bit-maps - * for SET and SEQUENCE types. - */ -ssize_t -uper_get_nslength(asn_per_data_t *pd) { - ssize_t length; - - ASN_DEBUG("Getting normally small length"); - - if(per_get_few_bits(pd, 1) == 0) { - length = per_get_few_bits(pd, 6) + 1; - if(length <= 0) return -1; - ASN_DEBUG("l=%d", (int)length); - return length; - } else { - int repeat; - length = uper_get_length(pd, -1, 0, &repeat); - if(length >= 0 && !repeat) return length; - return -1; /* Error, or do not support >16K extensions */ - } -} - -/* - * Get the normally small non-negative whole number. - * X.691, #10.6 - */ -ssize_t -uper_get_nsnnwn(asn_per_data_t *pd) { - ssize_t value; - - value = per_get_few_bits(pd, 7); - if(value & 64) { /* implicit (value < 0) */ - value &= 63; - value <<= 2; - value |= per_get_few_bits(pd, 2); - if(value & 128) /* implicit (value < 0) */ - return -1; - if(value == 0) - return 0; - if(value >= 3) - return -1; - value = per_get_few_bits(pd, 8 * value); - return value; - } - - return value; -} - -/* - * X.691-11/2008, #11.6 - * Encoding of a normally small non-negative whole number - */ -int -uper_put_nsnnwn(asn_per_outp_t *po, int n) { - int bytes; - - if(n <= 63) { - if(n < 0) return -1; - return per_put_few_bits(po, n, 7); - } - if(n < 256) - bytes = 1; - else if(n < 65536) - bytes = 2; - else if(n < 256 * 65536) - bytes = 3; - else - return -1; /* This is not a "normally small" value */ - if(per_put_few_bits(po, bytes, 8)) - return -1; - - return per_put_few_bits(po, n, 8 * bytes); -} - - -/* X.691-2008/11, #11.5.6 -> #11.3 */ -int uper_get_constrained_whole_number(asn_per_data_t *pd, unsigned long *out_value, int nbits) { - unsigned long lhalf; /* Lower half of the number*/ - long half; - - if(nbits <= 31) { - half = per_get_few_bits(pd, nbits); - if(half < 0) return -1; - *out_value = half; - return 0; - } - - if((size_t)nbits > 8 * sizeof(*out_value)) - return -1; /* RANGE */ - - half = per_get_few_bits(pd, 31); - if(half < 0) return -1; - - if(uper_get_constrained_whole_number(pd, &lhalf, nbits - 31)) - return -1; - - *out_value = ((unsigned long)half << (nbits - 31)) | lhalf; - return 0; -} - - -/* X.691-2008/11, #11.5.6 -> #11.3 */ -int -uper_put_constrained_whole_number_u(asn_per_outp_t *po, unsigned long v, - int nbits) { - if(nbits <= 31) { - return per_put_few_bits(po, v, nbits); - } else { - /* Put higher portion first, followed by lower 31-bit */ - if(uper_put_constrained_whole_number_u(po, v >> 31, nbits - 31)) - return -1; - return per_put_few_bits(po, v, 31); - } -} - -/* - * X.691 (08/2015) #11.9 "General rules for encoding a length determinant" - * Put the length "n" (or part of it) into the stream. - */ -ssize_t -uper_put_length(asn_per_outp_t *po, size_t length, int *need_eom) { - int dummy = 0; - if(!need_eom) need_eom = &dummy; - - if(length <= 127) { /* #11.9.3.6 */ - *need_eom = 0; - return per_put_few_bits(po, length, 8) - ? -1 : (ssize_t)length; - } else if(length < 16384) { /* #10.9.3.7 */ - *need_eom = 0; - return per_put_few_bits(po, length|0x8000, 16) - ? -1 : (ssize_t)length; - } - - *need_eom = 0 == (length & 16383); - length >>= 14; - if(length > 4) { - *need_eom = 0; - length = 4; - } - - return per_put_few_bits(po, 0xC0 | length, 8) - ? -1 : (ssize_t)(length << 14); - -} - - -/* - * Put the normally small length "n" into the stream. - * This procedure used to encode length of extensions bit-maps - * for SET and SEQUENCE types. - */ -int -uper_put_nslength(asn_per_outp_t *po, size_t length) { - if(length <= 64) { - /* #11.9.3.4 */ - if(length == 0) return -1; - return per_put_few_bits(po, length - 1, 7) ? -1 : 0; - } else { - int need_eom = 0; - if(uper_put_length(po, length, &need_eom) != (ssize_t)length - || need_eom) { - /* This might happen in case of >16K extensions */ - return -1; - } - } - - return 0; -} - -static int -per__long_range(long lb, long ub, unsigned long *range_r) { - unsigned long bounds_range; - if((ub < 0) == (lb < 0)) { - bounds_range = ub - lb; - } else if(lb < 0) { - assert(ub >= 0); - bounds_range = 1 + ((unsigned long)ub + (unsigned long)-(lb + 1)); - } else { - assert(!"Unreachable"); - return -1; - } - *range_r = bounds_range; - return 0; -} - -int -per_long_range_rebase(long v, long lb, long ub, unsigned long *output) { - unsigned long range; - - assert(lb <= ub); - - if(v < lb || v > ub || per__long_range(lb, ub, &range) < 0) { - /* Range error. */ - return -1; - } - - /* - * Fundamentally what we're doing is returning (v-lb). - * However, this triggers undefined behavior when the word width - * of signed (v) is the same as the size of unsigned (*output). - * In practice, it triggers the UndefinedSanitizer. Therefore we shall - * compute the ranges accurately to avoid C's undefined behavior. - */ - if((v < 0) == (lb < 0)) { - *output = v-lb; - return 0; - } else if(v < 0) { - unsigned long rebased = 1 + (unsigned long)-(v+1) + (unsigned long)lb; - assert(rebased <= range); /* By construction */ - *output = rebased; - return 0; - } else if(lb < 0) { - unsigned long rebased = 1 + (unsigned long)-(lb+1) + (unsigned long)v; - assert(rebased <= range); /* By construction */ - *output = rebased; - return 0; - } else { - assert(!"Unreachable"); - return -1; - } -} - -int -per_long_range_unrebase(unsigned long inp, long lb, long ub, long *outp) { - unsigned long range; - - if(per__long_range(lb, ub, &range) != 0) { - return -1; - } - - if(inp > range) { - /* - * We can encode something in the given number of bits that technically - * exceeds the range. This is an avenue for security errors, - * so we don't allow that. - */ - return -1; - } - - if(inp <= LONG_MAX) { - *outp = (long)inp + lb; - } else { - *outp = (lb + LONG_MAX + 1) + (long)((inp - LONG_MAX) - 1); - } - - return 0; -} - -int32_t -aper_get_align(asn_per_data_t *pd) { - - if(pd->nboff & 0x7) { - ASN_DEBUG("Aligning %ld bits", 8 - ((unsigned long)pd->nboff & 0x7)); - return per_get_few_bits(pd, 8 - (pd->nboff & 0x7)); - } - return 0; -} - -ssize_t -aper_get_length(asn_per_data_t *pd, int range, int ebits, int *repeat) { - ssize_t value; - - *repeat = 0; - - if (range <= 65536 && range >= 0) - return aper_get_nsnnwn(pd, range); - - if (aper_get_align(pd) < 0) - return -1; - - if(ebits >= 0) return per_get_few_bits(pd, ebits); - - value = per_get_few_bits(pd, 8); - if(value < 0) return -1; - if((value & 128) == 0) /* #10.9.3.6 */ - return (value & 0x7F); - if((value & 64) == 0) { /* #10.9.3.7 */ - value = ((value & 63) << 8) | per_get_few_bits(pd, 8); - if(value < 0) return -1; - return value; - } - value &= 63; /* this is "m" from X.691, #10.9.3.8 */ - if(value < 1 || value > 4) - return -1; - *repeat = 1; - return (16384 * value); -} - -ssize_t -aper_get_nslength(asn_per_data_t *pd) { - ssize_t length; - - ASN_DEBUG("Getting normally small length"); - - if(per_get_few_bits(pd, 1) == 0) { - length = per_get_few_bits(pd, 6) + 1; - if(length <= 0) return -1; - ASN_DEBUG("l=%ld", length); - return length; - } else { - int repeat; - length = aper_get_length(pd, -1, -1, &repeat); - if(length >= 0 && !repeat) return length; - return -1; /* Error, or do not support >16K extensions */ - } -} - -ssize_t -aper_get_nsnnwn(asn_per_data_t *pd, int range) { - ssize_t value; - int bytes = 0; - - ASN_DEBUG("getting nsnnwn with range %d", range); - - if(range <= 255) { - int i; - - if (range < 0) return -1; - /* 1 -> 8 bits */ - for (i = 1; i <= 8; i++) { - int upper = 1 << i; - if (upper >= range) - break; - } - value = per_get_few_bits(pd, i); - return value; - } else if (range == 256){ - /* 1 byte */ - bytes = 1; - } else if (range <= 65536) { - /* 2 bytes */ - bytes = 2; - } else { - return -1; - } - if (aper_get_align(pd) < 0) - return -1; - value = per_get_few_bits(pd, 8 * bytes); - return value; -} - -int aper_put_align(asn_per_outp_t *po) { - - if(po->nboff & 0x7) { - ASN_DEBUG("Aligning %ld bits", 8 - ((unsigned long)po->nboff & 0x7)); - if(per_put_few_bits(po, 0x00, (8 - (po->nboff & 0x7)))) - return -1; - } - return 0; -} - -ssize_t -aper_put_length(asn_per_outp_t *po, int range, size_t length) { - - ASN_DEBUG("APER put length %zu with range %d", length, range); - - /* 10.9 X.691 Note 2 */ - if (range <= 65536 && range >= 0) - return aper_put_nsnnwn(po, range, length); - - if (aper_put_align(po) < 0) - return -1; - - if(length <= 127) /* #10.9.3.6 */{ - return per_put_few_bits(po, length, 8) - ? -1 : (ssize_t)length; - } - else if(length < 16384) /* #10.9.3.7 */ - return per_put_few_bits(po, length|0x8000, 16) - ? -1 : (ssize_t)length; - - length >>= 14; - if(length > 4) length = 4; - - return per_put_few_bits(po, 0xC0 | length, 8) - ? -1 : (ssize_t)(length << 14); -} - - -int -aper_put_nslength(asn_per_outp_t *po, size_t length) { - - if(length <= 64) { - /* #10.9.3.4 */ - if(length == 0) return -1; - return per_put_few_bits(po, length-1, 7) ? -1 : 0; - } else { - if(aper_put_length(po, -1, length) != (ssize_t)length) { - /* This might happen in case of >16K extensions */ - return -1; - } - } - - return 0; -} - -int -aper_put_nsnnwn(asn_per_outp_t *po, int range, int number) { - int bytes; - - ASN_DEBUG("aper put nsnnwn %d with range %d", number, range); - /* 10.5.7.1 X.691 */ - if(range < 0) { - int i; - for (i = 1; ; i++) { - int bits = 1 << (8 * i); - if (number <= bits) - break; - } - bytes = i; - assert(i <= 4); - } - if(range <= 255) { - int i; - for (i = 1; i <= 8; i++) { - int bits = 1 << i; - if (range <= bits) - break; - } - return per_put_few_bits(po, number, i); - } else if(range == 256) { - bytes = 1; - } else if(range <= 65536) { - bytes = 2; - } else { /* Ranges > 64K */ - int i; - for (i = 1; ; i++) { - int bits = 1 << (8 * i); - if (range <= bits) - break; - } - assert(i <= 4); - bytes = i; - } - if(aper_put_align(po) < 0) /* Aligning on octet */ - return -1; -/* if(per_put_few_bits(po, bytes, 8)) - return -1; -*/ - return per_put_few_bits(po, number, 8 * bytes); -} diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/per_support.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/per_support.h deleted file mode 100644 index 23079c9..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/per_support.h +++ /dev/null @@ -1,127 +0,0 @@ -/* - * Copyright (c) 2005-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef _PER_SUPPORT_H_ -#define _PER_SUPPORT_H_ - -#include /* Platform-specific types */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * Pre-computed PER constraints. - */ -typedef struct asn_per_constraint_s { - enum asn_per_constraint_flags { - APC_UNCONSTRAINED = 0x0, /* No PER visible constraints */ - APC_SEMI_CONSTRAINED = 0x1, /* Constrained at "lb" */ - APC_CONSTRAINED = 0x2, /* Fully constrained */ - APC_EXTENSIBLE = 0x4 /* May have extension */ - } flags; - int range_bits; /* Full number of bits in the range */ - int effective_bits; /* Effective bits */ - long lower_bound; /* "lb" value */ - long upper_bound; /* "ub" value */ -} asn_per_constraint_t; -typedef struct asn_per_constraints_s { - asn_per_constraint_t value; - asn_per_constraint_t size; - int (*value2code)(unsigned int value); - int (*code2value)(unsigned int code); -} asn_per_constraints_t; - -/* Temporary compatibility layer. Will get removed. */ -typedef struct asn_bit_data_s asn_per_data_t; -#define per_get_few_bits(data, bits) asn_get_few_bits(data, bits) -#define per_get_undo(data, bits) asn_get_undo(data, bits) -#define per_get_many_bits(data, dst, align, bits) \ - asn_get_many_bits(data, dst, align, bits) - -/* - * X.691 (08/2015) #11.9 "General rules for encoding a length determinant" - * Get the length "n" from the Unaligned PER stream. - */ -ssize_t uper_get_length(asn_per_data_t *pd, int effective_bound_bits, - size_t lower_bound, int *repeat); - -ssize_t aper_get_length(asn_per_data_t *pd, int range, - int effective_bound_bits, int *repeat); - -/* - * Get the normally small length "n". - */ -ssize_t uper_get_nslength(asn_per_data_t *pd); -ssize_t aper_get_nslength(asn_per_data_t *pd); - -/* - * Get the normally small non-negative whole number. - */ -ssize_t uper_get_nsnnwn(asn_per_data_t *pd); -ssize_t aper_get_nsnnwn(asn_per_data_t *pd, int range); - -/* X.691-2008/11, #11.5.6 */ -int uper_get_constrained_whole_number(asn_per_data_t *pd, unsigned long *v, int nbits); - - -/* Temporary compatibility layer. Will get removed. */ -typedef struct asn_bit_outp_s asn_per_outp_t; -#define per_put_few_bits(out, bits, obits) asn_put_few_bits(out, bits, obits) -#define per_put_many_bits(out, src, nbits) asn_put_many_bits(out, src, nbits) -#define per_put_aligned_flush(out) asn_put_aligned_flush(out) - - -/* - * Rebase the given value as an offset into the range specified by the - * lower bound (lb) and upper bound (ub). - * RETURN VALUES: - * -1: Conversion failed due to range problems. - * 0: Conversion was successful. - */ -int per_long_range_rebase(long v, long lb, long ub, unsigned long *output); -/* The inverse operation: restores the value by the offset and its bounds. */ -int per_long_range_unrebase(unsigned long inp, long lb, long ub, long *outp); - -/* X.691-2008/11, #11.5 */ -int uper_put_constrained_whole_number_u(asn_per_outp_t *po, unsigned long v, int nbits); - -/* - * X.691 (08/2015) #11.9 "General rules for encoding a length determinant" - * Put the length "whole_length" to the Unaligned PER stream. - * If (opt_need_eom) is given, it will be set to 1 if final 0-length is needed. - * In that case, invoke uper_put_length(po, 0, 0) after encoding the last block. - * This function returns the number of units which may be flushed - * in the next units saving iteration. - */ -ssize_t uper_put_length(asn_per_outp_t *po, size_t whole_length, - int *opt_need_eom); - -ssize_t aper_put_length(asn_per_outp_t *po, int range, size_t length); - -/* Align the current bit position to octet bundary */ -int aper_put_align(asn_per_outp_t *po); -int32_t aper_get_align(asn_per_data_t *pd); - -/* - * Put the normally small length "n" to the Unaligned PER stream. - * Returns 0 or -1. - */ -int uper_put_nslength(asn_per_outp_t *po, size_t length); - -int aper_put_nslength(asn_per_outp_t *po, size_t length); - -/* - * Put the normally small non-negative whole number. - */ -int uper_put_nsnnwn(asn_per_outp_t *po, int n); - -int aper_put_nsnnwn(asn_per_outp_t *po, int range, int number); - -#ifdef __cplusplus -} -#endif - -#endif /* _PER_SUPPORT_H_ */ diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/xer_decoder.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/xer_decoder.c deleted file mode 100644 index 5b87703..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/xer_decoder.c +++ /dev/null @@ -1,369 +0,0 @@ -/* - * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include /* XER/XML parsing support */ - - -/* - * Decode the XER encoding of a given type. - */ -asn_dec_rval_t -xer_decode(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void **struct_ptr, - const void *buffer, size_t size) { - asn_codec_ctx_t s_codec_ctx; - - /* - * Stack checker requires that the codec context - * must be allocated on the stack. - */ - if(opt_codec_ctx) { - if(opt_codec_ctx->max_stack_size) { - s_codec_ctx = *opt_codec_ctx; - opt_codec_ctx = &s_codec_ctx; - } - } else { - /* If context is not given, be security-conscious anyway */ - memset(&s_codec_ctx, 0, sizeof(s_codec_ctx)); - s_codec_ctx.max_stack_size = ASN__DEFAULT_STACK_MAX; - opt_codec_ctx = &s_codec_ctx; - } - - /* - * Invoke type-specific decoder. - */ - return td->op->xer_decoder(opt_codec_ctx, td, struct_ptr, 0, buffer, size); -} - - - -struct xer__cb_arg { - pxml_chunk_type_e chunk_type; - size_t chunk_size; - const void *chunk_buf; - int callback_not_invoked; -}; - -static int -xer__token_cb(pxml_chunk_type_e type, const void *_chunk_data, size_t _chunk_size, void *key) { - struct xer__cb_arg *arg = (struct xer__cb_arg *)key; - arg->chunk_type = type; - arg->chunk_size = _chunk_size; - arg->chunk_buf = _chunk_data; - arg->callback_not_invoked = 0; - return -1; /* Terminate the XML parsing */ -} - -/* - * Fetch the next token from the XER/XML stream. - */ -ssize_t -xer_next_token(int *stateContext, const void *buffer, size_t size, pxer_chunk_type_e *ch_type) { - struct xer__cb_arg arg; - int new_stateContext = *stateContext; - ssize_t ret; - - arg.callback_not_invoked = 1; - ret = pxml_parse(&new_stateContext, buffer, size, xer__token_cb, &arg); - if(ret < 0) return -1; - if(arg.callback_not_invoked) { - assert(ret == 0); /* No data was consumed */ - *ch_type = PXER_WMORE; - return 0; /* Try again with more data */ - } else { - assert(arg.chunk_size); - assert(arg.chunk_buf == buffer); - } - - /* - * Translate the XML chunk types into more convenient ones. - */ - switch(arg.chunk_type) { - case PXML_TEXT: - *ch_type = PXER_TEXT; - break; - case PXML_TAG: - *ch_type = PXER_WMORE; - return 0; /* Want more */ - case PXML_TAG_END: - *ch_type = PXER_TAG; - break; - case PXML_COMMENT: - case PXML_COMMENT_END: - *ch_type = PXER_COMMENT; - break; - } - - *stateContext = new_stateContext; - return arg.chunk_size; -} - -#define CSLASH 0x2f /* '/' */ -#define LANGLE 0x3c /* '<' */ -#define RANGLE 0x3e /* '>' */ - -xer_check_tag_e -xer_check_tag(const void *buf_ptr, int size, const char *need_tag) { - const char *buf = (const char *)buf_ptr; - const char *end; - xer_check_tag_e ct = XCT_OPENING; - - if(size < 2 || buf[0] != LANGLE || buf[size-1] != RANGLE) { - if(size >= 2) - ASN_DEBUG("Broken XML tag: \"%c...%c\"", - buf[0], buf[size - 1]); - return XCT_BROKEN; - } - - /* - * Determine the tag class. - */ - if(buf[1] == CSLASH) { - buf += 2; /* advance past "" */ - ct = XCT_CLOSING; - if(size > 0 && buf[size-1] == CSLASH) - return XCT_BROKEN; /* */ - } else { - buf++; /* advance past "<" */ - size -= 2; /* strip "<" and ">" */ - if(size > 0 && buf[size-1] == CSLASH) { - ct = XCT_BOTH; - size--; /* One more, for "/" */ - } - } - - /* Sometimes we don't care about the tag */ - if(!need_tag || !*need_tag) - return (xer_check_tag_e)(XCT__UNK__MASK | ct); - - /* - * Determine the tag name. - */ - for(end = buf + size; buf < end; buf++, need_tag++) { - int b = *buf, n = *need_tag; - if(b != n) { - if(n == 0) { - switch(b) { - case 0x09: case 0x0a: case 0x0c: case 0x0d: - case 0x20: - /* "": whitespace is normal */ - return ct; - } - } - return (xer_check_tag_e)(XCT__UNK__MASK | ct); - } - if(b == 0) - return XCT_BROKEN; /* Embedded 0 in buf?! */ - } - if(*need_tag) - return (xer_check_tag_e)(XCT__UNK__MASK | ct); - - return ct; -} - - -#undef ADVANCE -#define ADVANCE(num_bytes) do { \ - size_t num = (num_bytes); \ - buf_ptr = ((const char *)buf_ptr) + num; \ - size -= num; \ - consumed_myself += num; \ - } while(0) - -#undef RETURN -#define RETURN(_code) do { \ - rval.code = _code; \ - rval.consumed = consumed_myself; \ - if(rval.code != RC_OK) \ - ASN_DEBUG("Failed with %d", rval.code); \ - return rval; \ - } while(0) - -#define XER_GOT_BODY(chunk_buf, chunk_size, size) do { \ - ssize_t converted_size = body_receiver \ - (struct_key, chunk_buf, chunk_size, \ - (size_t)chunk_size < size); \ - if(converted_size == -1) RETURN(RC_FAIL); \ - if(converted_size == 0 \ - && size == (size_t)chunk_size) \ - RETURN(RC_WMORE); \ - chunk_size = converted_size; \ - } while(0) -#define XER_GOT_EMPTY() do { \ - if(body_receiver(struct_key, 0, 0, size > 0) == -1) \ - RETURN(RC_FAIL); \ - } while(0) - -/* - * Generalized function for decoding the primitive values. - */ -asn_dec_rval_t -xer_decode_general(const asn_codec_ctx_t *opt_codec_ctx, - asn_struct_ctx_t *ctx, /* Type decoder context */ - void *struct_key, - const char *xml_tag, /* Expected XML tag */ - const void *buf_ptr, size_t size, - int (*opt_unexpected_tag_decoder) - (void *struct_key, const void *chunk_buf, size_t chunk_size), - ssize_t (*body_receiver) - (void *struct_key, const void *chunk_buf, size_t chunk_size, - int have_more) - ) { - - asn_dec_rval_t rval; - ssize_t consumed_myself = 0; - - (void)opt_codec_ctx; - - /* - * Phases of XER/XML processing: - * Phase 0: Check that the opening tag matches our expectations. - * Phase 1: Processing body and reacting on closing tag. - */ - if(ctx->phase > 1) RETURN(RC_FAIL); - for(;;) { - pxer_chunk_type_e ch_type; /* XER chunk type */ - ssize_t ch_size; /* Chunk size */ - xer_check_tag_e tcv; /* Tag check value */ - - /* - * Get the next part of the XML stream. - */ - ch_size = xer_next_token(&ctx->context, buf_ptr, size, - &ch_type); - if(ch_size == -1) { - RETURN(RC_FAIL); - } else { - switch(ch_type) { - case PXER_WMORE: - RETURN(RC_WMORE); - case PXER_COMMENT: /* Got XML comment */ - ADVANCE(ch_size); /* Skip silently */ - continue; - case PXER_TEXT: - if(ctx->phase == 0) { - /* - * We have to ignore whitespace here, - * but in order to be forward compatible - * with EXTENDED-XER (EMBED-VALUES, #25) - * any text is just ignored here. - */ - } else { - XER_GOT_BODY(buf_ptr, ch_size, size); - } - ADVANCE(ch_size); - continue; - case PXER_TAG: - break; /* Check the rest down there */ - } - } - - assert(ch_type == PXER_TAG && size); - - tcv = xer_check_tag(buf_ptr, ch_size, xml_tag); - /* - * Phase 0: - * Expecting the opening tag - * for the type being processed. - * Phase 1: - * Waiting for the closing XML tag. - */ - switch(tcv) { - case XCT_BOTH: - if(ctx->phase) break; - /* Finished decoding of an empty element */ - XER_GOT_EMPTY(); - ADVANCE(ch_size); - ctx->phase = 2; /* Phase out */ - RETURN(RC_OK); - case XCT_OPENING: - if(ctx->phase) break; - ADVANCE(ch_size); - ctx->phase = 1; /* Processing body phase */ - continue; - case XCT_CLOSING: - if(!ctx->phase) break; - ADVANCE(ch_size); - ctx->phase = 2; /* Phase out */ - RETURN(RC_OK); - case XCT_UNKNOWN_BO: - /* - * Certain tags in the body may be expected. - */ - if(opt_unexpected_tag_decoder - && opt_unexpected_tag_decoder(struct_key, - buf_ptr, ch_size) >= 0) { - /* Tag's processed fine */ - ADVANCE(ch_size); - if(!ctx->phase) { - /* We are not expecting - * the closing tag anymore. */ - ctx->phase = 2; /* Phase out */ - RETURN(RC_OK); - } - continue; - } - /* Fall through */ - default: - break; /* Unexpected tag */ - } - - ASN_DEBUG("Unexpected XML tag (expected \"%s\")", xml_tag); - break; /* Dark and mysterious things have just happened */ - } - - RETURN(RC_FAIL); -} - - -size_t -xer_whitespace_span(const void *chunk_buf, size_t chunk_size) { - const char *p = (const char *)chunk_buf; - const char *pend = p + chunk_size; - - for(; p < pend; p++) { - switch(*p) { - /* X.693, #8.1.4 - * HORISONTAL TAB (9) - * LINE FEED (10) - * CARRIAGE RETURN (13) - * SPACE (32) - */ - case 0x09: case 0x0a: case 0x0d: case 0x20: - continue; - default: - break; - } - break; - } - return (p - (const char *)chunk_buf); -} - -/* - * This is a vastly simplified, non-validating XML tree skipper. - */ -int -xer_skip_unknown(xer_check_tag_e tcv, ber_tlv_len_t *depth) { - assert(*depth > 0); - switch(tcv) { - case XCT_BOTH: - case XCT_UNKNOWN_BO: - /* These negate each other. */ - return 0; - case XCT_OPENING: - case XCT_UNKNOWN_OP: - ++(*depth); - return 0; - case XCT_CLOSING: - case XCT_UNKNOWN_CL: - if(--(*depth) == 0) - return (tcv == XCT_CLOSING) ? 2 : 1; - return 0; - default: - return -1; - } -} diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/xer_decoder.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/xer_decoder.h deleted file mode 100644 index b951c41..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/xer_decoder.h +++ /dev/null @@ -1,106 +0,0 @@ -/*- - * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef _XER_DECODER_H_ -#define _XER_DECODER_H_ - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -struct asn_TYPE_descriptor_s; /* Forward declaration */ - -/* - * The XER decoder of any ASN.1 type. May be invoked by the application. - * Decodes CANONICAL-XER and BASIC-XER. - */ -asn_dec_rval_t xer_decode( - const struct asn_codec_ctx_s *opt_codec_ctx, - const struct asn_TYPE_descriptor_s *type_descriptor, - void **struct_ptr, /* Pointer to a target structure's pointer */ - const void *buffer, /* Data to be decoded */ - size_t size /* Size of data buffer */ -); - -/* - * Type of the type-specific XER decoder function. - */ -typedef asn_dec_rval_t(xer_type_decoder_f)( - const asn_codec_ctx_t *opt_codec_ctx, - const struct asn_TYPE_descriptor_s *type_descriptor, void **struct_ptr, - const char *opt_mname, /* Member name */ - const void *buf_ptr, size_t size); - -/******************************* - * INTERNALLY USEFUL FUNCTIONS * - *******************************/ - -/* - * Generalized function for decoding the primitive values. - * Used by more specialized functions, such as OCTET_STRING_decode_xer_utf8 - * and others. This function should not be used by applications, as its API - * is subject to changes. - */ -asn_dec_rval_t xer_decode_general( - const asn_codec_ctx_t *opt_codec_ctx, - asn_struct_ctx_t *ctx, /* Type decoder context */ - void *struct_key, /* Treated as opaque pointer */ - const char *xml_tag, /* Expected XML tag name */ - const void *buf_ptr, size_t size, - int (*opt_unexpected_tag_decoder)(void *struct_key, const void *chunk_buf, - size_t chunk_size), - ssize_t (*body_receiver)(void *struct_key, const void *chunk_buf, - size_t chunk_size, int have_more)); - - -/* - * Fetch the next XER (XML) token from the stream. - * The function returns the number of bytes occupied by the chunk type, - * returned in the _ch_type. The _ch_type is only set (and valid) when - * the return value is >= 0. - */ - typedef enum pxer_chunk_type { - PXER_WMORE, /* Chunk type is not clear, more data expected. */ - PXER_TAG, /* Complete XER tag */ - PXER_TEXT, /* Plain text between XER tags */ - PXER_COMMENT /* A comment, may be part of */ - } pxer_chunk_type_e; -ssize_t xer_next_token(int *stateContext, - const void *buffer, size_t size, pxer_chunk_type_e *_ch_type); - -/* - * This function checks the buffer against the tag name is expected to occur. - */ - typedef enum xer_check_tag { - XCT_BROKEN = 0, /* The tag is broken */ - XCT_OPENING = 1, /* This is the tag */ - XCT_CLOSING = 2, /* This is the tag */ - XCT_BOTH = 3, /* This is the tag */ - XCT__UNK__MASK = 4, /* Mask of everything unexpected */ - XCT_UNKNOWN_OP = 5, /* Unexpected tag */ - XCT_UNKNOWN_CL = 6, /* Unexpected tag */ - XCT_UNKNOWN_BO = 7 /* Unexpected tag */ - } xer_check_tag_e; -xer_check_tag_e xer_check_tag(const void *buf_ptr, int size, - const char *need_tag); - -/* - * Get the number of bytes consisting entirely of XER whitespace characters. - * RETURN VALUES: - * >=0: Number of whitespace characters in the string. - */ -size_t xer_whitespace_span(const void *chunk_buf, size_t chunk_size); - -/* - * Skip the series of anticipated extensions. - */ -int xer_skip_unknown(xer_check_tag_e tcv, ber_tlv_len_t *depth); - -#ifdef __cplusplus -} -#endif - -#endif /* _XER_DECODER_H_ */ diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/xer_encoder.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/xer_encoder.c deleted file mode 100644 index 4177ede..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/xer_encoder.c +++ /dev/null @@ -1,237 +0,0 @@ -/*- - * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include - -/* - * The XER encoder of any type. May be invoked by the application. - */ -asn_enc_rval_t -xer_encode(const asn_TYPE_descriptor_t *td, const void *sptr, - enum xer_encoder_flags_e xer_flags, asn_app_consume_bytes_f *cb, - void *app_key) { - asn_enc_rval_t er = {0, 0, 0}; - asn_enc_rval_t tmper; - const char *mname; - size_t mlen; - int xcan = (xer_flags & XER_F_CANONICAL) ? 1 : 2; - - if(!td || !sptr) goto cb_failed; - - mname = td->xml_tag; - mlen = strlen(mname); - - ASN__CALLBACK3("<", 1, mname, mlen, ">", 1); - - tmper = td->op->xer_encoder(td, sptr, 1, xer_flags, cb, app_key); - if(tmper.encoded == -1) return tmper; - er.encoded += tmper.encoded; - - ASN__CALLBACK3("\n", xcan); - - ASN__ENCODED_OK(er); -cb_failed: - ASN__ENCODE_FAILED; -} - -/* - * This is a helper function for xer_fprint, which directs all incoming data - * into the provided file descriptor. - */ -static int -xer__print2fp(const void *buffer, size_t size, void *app_key) { - FILE *stream = (FILE *)app_key; - - if(fwrite(buffer, 1, size, stream) != size) - return -1; - - return 0; -} - -int -xer_fprint(FILE *stream, const asn_TYPE_descriptor_t *td, const void *sptr) { - asn_enc_rval_t er = {0,0,0}; - - if(!stream) stream = stdout; - if(!td || !sptr) - return -1; - - er = xer_encode(td, sptr, XER_F_BASIC, xer__print2fp, stream); - if(er.encoded == -1) - return -1; - - return fflush(stream); -} - -struct xer_buffer { - char *buffer; - size_t buffer_size; - size_t allocated_size; -}; - -static int -xer__buffer_append(const void *buffer, size_t size, void *app_key) { - struct xer_buffer *xb = app_key; - - while(xb->buffer_size + size + 1 > xb->allocated_size) { - size_t new_size = 2 * (xb->allocated_size ? xb->allocated_size : 64); - char *new_buf = MALLOC(new_size); - if(!new_buf) return -1; - if (xb->buffer) { - memcpy(new_buf, xb->buffer, xb->buffer_size); - } - FREEMEM(xb->buffer); - xb->buffer = new_buf; - xb->allocated_size = new_size; - } - - memcpy(xb->buffer + xb->buffer_size, buffer, size); - xb->buffer_size += size; - xb->buffer[xb->buffer_size] = '\0'; - return 0; -} - -enum xer_equivalence_e -xer_equivalent(const struct asn_TYPE_descriptor_s *td, const void *struct1, - const void *struct2, FILE *opt_debug_stream) { - struct xer_buffer xb1 = {0, 0, 0}; - struct xer_buffer xb2 = {0, 0, 0}; - asn_enc_rval_t e1, e2; - asn_dec_rval_t rval; - void *sptr = NULL; - - if(!td || !struct1 || !struct2) { - if(opt_debug_stream) { - if(!td) fprintf(opt_debug_stream, "Type descriptor missing\n"); - if(!struct1) fprintf(opt_debug_stream, "Structure 1 missing\n"); - if(!struct2) fprintf(opt_debug_stream, "Structure 2 missing\n"); - } - return XEQ_FAILURE; - } - - e1 = xer_encode(td, struct1, XER_F_BASIC, xer__buffer_append, &xb1); - if(e1.encoded == -1) { - if(opt_debug_stream) { - fprintf(stderr, "XER Encoding of %s failed\n", td->name); - } - FREEMEM(xb1.buffer); - return XEQ_ENCODE1_FAILED; - } - - e2 = xer_encode(td, struct2, XER_F_BASIC, xer__buffer_append, &xb2); - if(e2.encoded == -1) { - if(opt_debug_stream) { - fprintf(stderr, "XER Encoding of %s failed\n", td->name); - } - FREEMEM(xb1.buffer); - FREEMEM(xb2.buffer); - return XEQ_ENCODE1_FAILED; - } - - if(xb1.buffer_size != xb2.buffer_size - || memcmp(xb1.buffer, xb2.buffer, xb1.buffer_size) != 0) { - if(opt_debug_stream) { - fprintf(opt_debug_stream, - "Structures XER-encoded into different byte streams:\n=== " - "Structure 1 ===\n%s\n=== Structure 2 ===\n%s\n", - xb1.buffer, xb2.buffer); - } - FREEMEM(xb1.buffer); - FREEMEM(xb2.buffer); - return XEQ_DIFFERENT; - } else { - if(opt_debug_stream) { - fprintf(opt_debug_stream, - "Both structures encoded into the same XER byte stream " - "of size %" ASN_PRI_SIZE ":\n%s", - xb1.buffer_size, xb1.buffer); - } - } - - rval = xer_decode(NULL, td, (void **)&sptr, xb1.buffer, - xb1.buffer_size); - switch(rval.code) { - case RC_OK: - break; - case RC_WMORE: - if(opt_debug_stream) { - fprintf(opt_debug_stream, - "Structure %s XER decode unexpectedly requires " - "more data:\n%s\n", - td->name, xb1.buffer); - } - /* Fall through */ - case RC_FAIL: - default: - if(opt_debug_stream) { - fprintf(opt_debug_stream, - "Structure %s XER decoding resulted in failure.\n", - td->name); - } - ASN_STRUCT_FREE(*td, sptr); - FREEMEM(xb1.buffer); - FREEMEM(xb2.buffer); - return XEQ_DECODE_FAILED; - } - - if(rval.consumed != xb1.buffer_size - && ((rval.consumed > xb1.buffer_size) - || xer_whitespace_span(xb1.buffer + rval.consumed, - xb1.buffer_size - rval.consumed) - != (xb1.buffer_size - rval.consumed))) { - if(opt_debug_stream) { - fprintf(opt_debug_stream, - "Round-trip decode of %s required less bytes (%" ASN_PRI_SIZE ") than " - "encoded (%" ASN_PRI_SIZE ")\n", - td->name, rval.consumed, xb1.buffer_size); - } - ASN_STRUCT_FREE(*td, sptr); - FREEMEM(xb1.buffer); - FREEMEM(xb2.buffer); - return XEQ_ROUND_TRIP_FAILED; - } - - /* - * Reuse xb2 to encode newly decoded structure. - */ - FREEMEM(xb2.buffer); - memset(&xb2, 0, sizeof(xb2)); - - e2 = xer_encode(td, sptr, XER_F_BASIC, xer__buffer_append, &xb2); - if(e2.encoded == -1) { - if(opt_debug_stream) { - fprintf(stderr, "XER Encoding of round-trip decode of %s failed\n", - td->name); - } - ASN_STRUCT_FREE(*td, sptr); - FREEMEM(xb1.buffer); - FREEMEM(xb2.buffer); - return XEQ_ROUND_TRIP_FAILED; - } - - ASN_STRUCT_FREE(*td, sptr); - sptr = 0; - - if(xb1.buffer_size != xb2.buffer_size - || memcmp(xb1.buffer, xb2.buffer, xb1.buffer_size) != 0) { - if(opt_debug_stream) { - fprintf(opt_debug_stream, - "XER Encoding of round-trip decode of %s resulted in " - "different byte stream:\n" - "=== Original ===\n%s\n" - "=== Round-tripped ===\n%s\n", - xb1.buffer, xb2.buffer, td->name); - } - FREEMEM(xb1.buffer); - FREEMEM(xb2.buffer); - return XEQ_ROUND_TRIP_FAILED; - } - - FREEMEM(xb1.buffer); - FREEMEM(xb2.buffer); - return XEQ_SUCCESS; -} - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/xer_encoder.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/xer_encoder.h deleted file mode 100644 index 9d75922..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/xer_encoder.h +++ /dev/null @@ -1,83 +0,0 @@ -/*- - * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef _XER_ENCODER_H_ -#define _XER_ENCODER_H_ - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -struct asn_TYPE_descriptor_s; /* Forward declaration */ - -/* Flags used by the xer_encode() and (*xer_type_encoder_f), defined below */ -enum xer_encoder_flags_e { - /* Mode of encoding */ - XER_F_BASIC = 0x01, /* BASIC-XER (pretty-printing) */ - XER_F_CANONICAL = 0x02 /* Canonical XER (strict rules) */ -}; - -/* - * The XER encoder of any type. May be invoked by the application. - * Produces CANONICAL-XER and BASIC-XER depending on the (xer_flags). - */ -asn_enc_rval_t xer_encode(const struct asn_TYPE_descriptor_s *type_descriptor, - const void *struct_ptr, /* Structure to be encoded */ - enum xer_encoder_flags_e xer_flags, - asn_app_consume_bytes_f *consume_bytes_cb, - void *app_key /* Arbitrary callback argument */ -); - -/* - * The variant of the above function which dumps the BASIC-XER (XER_F_BASIC) - * output into the chosen file pointer. - * RETURN VALUES: - * 0: The structure is printed. - * -1: Problem printing the structure. - * WARNING: No sensible errno value is returned. - */ -int xer_fprint(FILE *stream, const struct asn_TYPE_descriptor_s *td, - const void *struct_ptr); - -/* - * A helper function that uses XER encoding/decoding to verify that: - * - Both structures encode into the same BASIC XER. - * - Both resulting XER byte streams can be decoded back. - * - Both decoded structures encode into the same BASIC XER (round-trip). - * All of this verifies equivalence between structures and a round-trip. - * ARGUMENTS: - * (opt_debug_stream) - If specified, prints ongoing details. - */ -enum xer_equivalence_e { - XEQ_SUCCESS, /* The only completely positive return value */ - XEQ_FAILURE, /* General failure */ - XEQ_ENCODE1_FAILED, /* First sructure XER encoding failed */ - XEQ_ENCODE2_FAILED, /* Second structure XER encoding failed */ - XEQ_DIFFERENT, /* Structures encoded into different XER */ - XEQ_DECODE_FAILED, /* Decode of the XER data failed */ - XEQ_ROUND_TRIP_FAILED /* Bad round-trip */ -}; -enum xer_equivalence_e xer_equivalent( - const struct asn_TYPE_descriptor_s *type_descriptor, const void *struct1, - const void *struct2, FILE *opt_debug_stream); - -/* - * Type of the generic XER encoder. - */ -typedef asn_enc_rval_t(xer_type_encoder_f)( - const struct asn_TYPE_descriptor_s *type_descriptor, - const void *struct_ptr, /* Structure to be encoded */ - int ilevel, /* Level of indentation */ - enum xer_encoder_flags_e xer_flags, - asn_app_consume_bytes_f *consume_bytes_cb, /* Callback */ - void *app_key /* Arbitrary callback argument */ -); - -#ifdef __cplusplus -} -#endif - -#endif /* _XER_ENCODER_H_ */ diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/xer_support.c b/e2sim/previous/e2apv1sim/ricsim/ASN1c/xer_support.c deleted file mode 100644 index 36b4bfb..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/xer_support.c +++ /dev/null @@ -1,227 +0,0 @@ -/* - * Copyright (c) 2003, 2004 X/IO Labs, xiolabs.com. - * Copyright (c) 2003, 2004, 2005 Lev Walkin . - * All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include - -/* Parser states */ -typedef enum { - ST_TEXT, - ST_TAG_START, - ST_TAG_BODY, - ST_TAG_QUOTE_WAIT, - ST_TAG_QUOTED_STRING, - ST_TAG_UNQUOTED_STRING, - ST_COMMENT_WAIT_DASH1, /* ""[0] */ - ST_COMMENT_CLO_RT /* "-->"[1] */ -} pstate_e; - -static const int -_charclass[256] = { - 0,0,0,0,0,0,0,0, 0,1,1,0,1,1,0,0, - 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0, - 1,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0, - 2,2,2,2,2,2,2,2, 2,2,0,0,0,0,0,0, /* 01234567 89 */ - 0,3,3,3,3,3,3,3, 3,3,3,3,3,3,3,3, /* ABCDEFG HIJKLMNO */ - 3,3,3,3,3,3,3,3, 3,3,3,0,0,0,0,0, /* PQRSTUVW XYZ */ - 0,3,3,3,3,3,3,3, 3,3,3,3,3,3,3,3, /* abcdefg hijklmno */ - 3,3,3,3,3,3,3,3, 3,3,3,0,0,0,0,0 /* pqrstuvw xyz */ -}; -#define WHITESPACE(c) (_charclass[(unsigned char)(c)] == 1) -#define ALNUM(c) (_charclass[(unsigned char)(c)] >= 2) -#define ALPHA(c) (_charclass[(unsigned char)(c)] == 3) - -/* Aliases for characters, ASCII/UTF-8 */ -#define EXCLAM 0x21 /* '!' */ -#define CQUOTE 0x22 /* '"' */ -#define CDASH 0x2d /* '-' */ -#define CSLASH 0x2f /* '/' */ -#define LANGLE 0x3c /* '<' */ -#define CEQUAL 0x3d /* '=' */ -#define RANGLE 0x3e /* '>' */ -#define CQUEST 0x3f /* '?' */ - -/* Invoke token callback */ -#define TOKEN_CB_CALL(type, _ns, _current_too, _final) do { \ - int _ret; \ - pstate_e ns = _ns; \ - ssize_t _sz = (p - chunk_start) + _current_too; \ - if (!_sz) { \ - /* Shortcut */ \ - state = _ns; \ - break; \ - } \ - _ret = cb(type, chunk_start, _sz, key); \ - if(_ret < _sz) { \ - if(_current_too && _ret == -1) \ - state = ns; \ - goto finish; \ - } \ - chunk_start = p + _current_too; \ - state = ns; \ - } while(0) - -#define TOKEN_CB(_type, _ns, _current_too) \ - TOKEN_CB_CALL(_type, _ns, _current_too, 0) - -#define PXML_TAG_FINAL_CHUNK_TYPE PXML_TAG_END -#define PXML_COMMENT_FINAL_CHUNK_TYPE PXML_COMMENT_END - -#define TOKEN_CB_FINAL(_type, _ns, _current_too) \ - TOKEN_CB_CALL( _type ## _FINAL_CHUNK_TYPE , _ns, _current_too, 1) - -/* - * Parser itself - */ -ssize_t pxml_parse(int *stateContext, const void *xmlbuf, size_t size, pxml_callback_f *cb, void *key) { - pstate_e state = (pstate_e)*stateContext; - const char *chunk_start = (const char *)xmlbuf; - const char *p = chunk_start; - const char *end = p + size; - - for(; p < end; p++) { - int C = *(const unsigned char *)p; - switch(state) { - case ST_TEXT: - /* - * Initial state: we're in the middle of some text, - * or just have started. - */ - if (C == LANGLE) - /* We're now in the tag, probably */ - TOKEN_CB(PXML_TEXT, ST_TAG_START, 0); - break; - case ST_TAG_START: - if (ALPHA(C) || (C == CSLASH)) - state = ST_TAG_BODY; - else if (C == EXCLAM) - state = ST_COMMENT_WAIT_DASH1; - else - /* - * Not characters and not whitespace. - * Must be something like "3 < 4". - */ - TOKEN_CB(PXML_TEXT, ST_TEXT, 1);/* Flush as data */ - break; - case ST_TAG_BODY: - switch(C) { - case RANGLE: - /* End of the tag */ - TOKEN_CB_FINAL(PXML_TAG, ST_TEXT, 1); - break; - case LANGLE: - /* - * The previous tag wasn't completed, but still - * recognized as valid. (Mozilla-compatible) - */ - TOKEN_CB_FINAL(PXML_TAG, ST_TAG_START, 0); - break; - case CEQUAL: - state = ST_TAG_QUOTE_WAIT; - break; - } - break; - case ST_TAG_QUOTE_WAIT: - /* - * State after the equal sign ("=") in the tag. - */ - switch(C) { - case CQUOTE: - state = ST_TAG_QUOTED_STRING; - break; - case RANGLE: - /* End of the tag */ - TOKEN_CB_FINAL(PXML_TAG, ST_TEXT, 1); - break; - default: - if(!WHITESPACE(C)) - /* Unquoted string value */ - state = ST_TAG_UNQUOTED_STRING; - } - break; - case ST_TAG_QUOTED_STRING: - /* - * Tag attribute's string value in quotes. - */ - if(C == CQUOTE) { - /* Return back to the tag state */ - state = ST_TAG_BODY; - } - break; - case ST_TAG_UNQUOTED_STRING: - if(C == RANGLE) { - /* End of the tag */ - TOKEN_CB_FINAL(PXML_TAG, ST_TEXT, 1); - } else if(WHITESPACE(C)) { - /* Return back to the tag state */ - state = ST_TAG_BODY; - } - break; - case ST_COMMENT_WAIT_DASH1: - if(C == CDASH) { - state = ST_COMMENT_WAIT_DASH2; - } else { - /* Some ordinary tag. */ - state = ST_TAG_BODY; - } - break; - case ST_COMMENT_WAIT_DASH2: - if(C == CDASH) { - /* Seen "<--" */ - state = ST_COMMENT; - } else { - /* Some ordinary tag */ - state = ST_TAG_BODY; - } - break; - case ST_COMMENT: - if(C == CDASH) { - state = ST_COMMENT_CLO_DASH2; - } - break; - case ST_COMMENT_CLO_DASH2: - if(C == CDASH) { - state = ST_COMMENT_CLO_RT; - } else { - /* This is not an end of a comment */ - state = ST_COMMENT; - } - break; - case ST_COMMENT_CLO_RT: - if(C == RANGLE) { - TOKEN_CB_FINAL(PXML_COMMENT, ST_TEXT, 1); - } else if(C == CDASH) { - /* Maintain current state, still waiting for '>' */ - } else { - state = ST_COMMENT; - } - break; - } /* switch(*ptr) */ - } /* for() */ - - /* - * Flush the partially processed chunk, state permitting. - */ - if(p - chunk_start) { - switch (state) { - case ST_COMMENT: - TOKEN_CB(PXML_COMMENT, state, 0); - break; - case ST_TEXT: - TOKEN_CB(PXML_TEXT, state, 0); - break; - default: break; /* a no-op */ - } - } - -finish: - *stateContext = (int)state; - return chunk_start - (const char *)xmlbuf; -} - diff --git a/e2sim/previous/e2apv1sim/ricsim/ASN1c/xer_support.h b/e2sim/previous/e2apv1sim/ricsim/ASN1c/xer_support.h deleted file mode 100644 index c3a36e7..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ASN1c/xer_support.h +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Copyright (c) 2003, 2004 X/IO Labs, xiolabs.com. - * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef _XER_SUPPORT_H_ -#define _XER_SUPPORT_H_ - -#include /* Platform-specific types */ - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * Types of data transferred to the application. - */ -typedef enum { - PXML_TEXT, /* Plain text between XML tags. */ - PXML_TAG, /* A tag, starting with '<'. */ - PXML_COMMENT, /* An XML comment, including "". */ - /* - * The following chunk types are reported if the chunk - * terminates the specified XML element. - */ - PXML_TAG_END, /* Tag ended */ - PXML_COMMENT_END /* Comment ended */ -} pxml_chunk_type_e; - -/* - * Callback function that is called by the parser when parsed data is - * available. The _opaque is the pointer to a field containing opaque user - * data specified in pxml_create() call. The chunk type is _type and the text - * data is the piece of buffer identified by _bufid (as supplied to - * pxml_feed() call) starting at offset _offset and of _size bytes size. - * The chunk is NOT '\0'-terminated. - */ -typedef int (pxml_callback_f)(pxml_chunk_type_e _type, - const void *_chunk_data, size_t _chunk_size, void *_key); - -/* - * Parse the given buffer as it were a chunk of XML data. - * Invoke the specified callback each time the meaninful data is found. - * This function returns number of bytes consumed from the bufer. - * It will always be lesser than or equal to the specified _size. - * The next invocation of this function must account the difference. - */ -ssize_t pxml_parse(int *_stateContext, const void *_buf, size_t _size, - pxml_callback_f *cb, void *_key); - -#ifdef __cplusplus -} -#endif - -#endif /* _XER_SUPPORT_H_ */ diff --git a/e2sim/previous/e2apv1sim/ricsim/CMakeLists.txt b/e2sim/previous/e2apv1sim/ricsim/CMakeLists.txt deleted file mode 100644 index 7304f86..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/CMakeLists.txt +++ /dev/null @@ -1,61 +0,0 @@ -#/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -#******************************************************************************/ - -cmake_minimum_required(VERSION 3.5.1) -set(CMAKE_CXX_COMPILER "/usr/bin/g++") -set(CMAKE_CXX_STANDARD 14) - - - -project(e2sim) - -set (E2SIM_ROOT ./) - - -include_directories("${E2SIM_ROOT}") -include_directories("${E2SIM_ROOT}/src") -include_directories("${E2SIM_ROOT}/src/DEF") -include_directories("${E2SIM_ROOT}/src/SCTP/") -include_directories("${E2SIM_ROOT}/src/E2APr") -include_directories("${E2SIM_ROOT}/src/E2AP/E2SM") -include_directories("${E2SIM_ROOT}/ASN1c") - - -#set(CMAKE_THREAD_PREFER_PTHREAD TRUE) -set(THREADS_PREFER_PTHREAD_FLAG ON) - -find_library( SCTP_STD_LIB sctp ) #needed for sctp_sendmsgf -find_package( Threads REQUIRED ) - - -#---------------------------------------------- -file(GLOB RICSIM_SOURCES - - "${E2SIM_ROOT}/ricsim.cpp" - "${E2SIM_ROOT}/encode_e2apv1.cpp" - "${E2SIM_ROOT}/encode_kpm.cpp" - "${E2SIM_ROOT}/src/DEF/*.cpp" - "${E2SIM_ROOT}/src/SCTP/*.cpp" - "${E2SIM_ROOT}/src/E2APr/*.c" - "${E2SIM_ROOT}/src/E2APr/*.cpp" - "${E2SIM_ROOT}/ASN1c/*.c" - ) -add_executable(ricsim ${RICSIM_SOURCES}) -target_link_libraries( ricsim ${SCTP_STD_LIB} ) - diff --git a/e2sim/previous/e2apv1sim/ricsim/build_e2sim b/e2sim/previous/e2apv1sim/ricsim/build_e2sim deleted file mode 100755 index 80a53c6..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/build_e2sim +++ /dev/null @@ -1,86 +0,0 @@ -#!/bin/bash -#/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -#******************************************************************************/ - -set -e - -E2SIM_VERSION='1.4.0' -export E2SIM_DIR=$PWD -source $E2SIM_DIR/tools/build_helper.bash -DOCKER_IMAGE='e2sim' - -print_help() { - echo " - This program installs E2 Simulator - You should have ubuntu 14.xx, updated, and the Linux kernel >= 3.14 - The program is run by default with no option - - USAGE: - ./build_e2sim [OPTIONS] - - OPTIONS: - --clean - Erase all files to make a rebuild from start - --docker - Build docker image - -h - Print this help - " -} - -function main(){ - case "$1" in - --clean) - echo_info "Will clean all previously producted files under build/" - rm -rf $E2SIM_DIR/build - echo_success "Clean Done" - exit - ;; - - --docker) - echo "Will build docker image ${DOCKER_IMAGE}:${E2SIM_VERSION}" - sudo docker build -f docker/Dockerfile -t $DOCKER_IMAGE:$E2SIM_VERSION . - exit - ;; - - "") - ;; - - -h) - print_help - exit 1;; - - *) - echo_error "Unknown option $1" - exit - esac - - BUILD_DIR=$E2SIM_DIR/build - mkdir -p $BUILD_DIR - - echo_info "Will build e2sim" - cd $BUILD_DIR - rm -rf CMakeCache.txt - cmake .. - make -j`nproc` - - echo_success "e2sim compiled" -} - -main "$@" diff --git a/e2sim/previous/e2apv1sim/ricsim/encode_e2apv1.cpp b/e2sim/previous/e2apv1sim/ricsim/encode_e2apv1.cpp deleted file mode 100644 index 7db74aa..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/encode_e2apv1.cpp +++ /dev/null @@ -1,1112 +0,0 @@ -#include -#include -#include -#include - -#include -#include - - -#include "encode_e2apv1.hpp" - -extern "C" { -#include "E2SM-KPM-RANfunction-Description.h" - -#include "e2ap_asn1c_codec.h" -#include "GlobalE2node-ID.h" -#include "GlobalE2node-gNB-ID.h" -#include "GlobalgNB-ID.h" -#include "OCTET_STRING.h" -#include "asn_application.h" -#include "GNB-ID-Choice.h" -#include "ProtocolIE-Field.h" -#include "E2setupRequest.h" -#include "RICaction-ToBeSetup-Item.h" -#include "RICactions-ToBeSetup-List.h" -#include "RICeventTriggerDefinition.h" -#include "RICsubscriptionRequest.h" -#include "RICsubscriptionResponse.h" -#include "ProtocolIE-SingleContainer.h" -#include "RANfunctions-List.h" -#include "RICindication.h" -#include "RICsubsequentActionType.h" -#include "RICsubsequentAction.h" -#include "RICtimeToWait.h" - -} - -long get_function_id_from_subscription(E2AP_PDU_t *e2ap_pdu) { - - RICsubscriptionRequest_t orig_req = - e2ap_pdu->choice.initiatingMessage->value.choice.RICsubscriptionRequest; - - RICsubscriptionResponse_IEs_t *ricreqid = - (RICsubscriptionResponse_IEs_t*)calloc(1, sizeof(RICsubscriptionResponse_IEs_t)); - - int count = orig_req.protocolIEs.list.count; - int size = orig_req.protocolIEs.list.size; - - RICsubscriptionRequest_IEs_t **ies = (RICsubscriptionRequest_IEs_t**)orig_req.protocolIEs.list.array; - - fprintf(stderr, "count%d\n", count); - fprintf(stderr, "size%d\n", size); - - RICsubscriptionRequest_IEs__value_PR pres; - - long func_id; - - for (int i=0; i < count; i++) { - RICsubscriptionRequest_IEs_t *next_ie = ies[i]; - pres = next_ie->value.present; - - fprintf(stderr, "next present value %d\n", pres); - - if (pres == RICsubscriptionRequest_IEs__value_PR_RANfunctionID) { - func_id = next_ie->value.choice.RANfunctionID; - } - - } - - return func_id; - -} - -void generate_e2apv1_setup_request_parameterized(E2AP_PDU_t *e2ap_pdu, long ranFunctionId, uint8_t *ranFuncDescEncoded, int ranFuncLength) { - - // uint8_t *buf = (uint8_t *)"gnb1" - - BIT_STRING_t *gnb_bstring = (BIT_STRING_t*)calloc(1, sizeof(BIT_STRING_t));; - gnb_bstring->buf = (uint8_t*)calloc(1,4); - gnb_bstring->size = 4; - gnb_bstring->buf[0] = 0xB5; - gnb_bstring->buf[1] = 0xC6; - gnb_bstring->buf[2] = 0x77; - gnb_bstring->buf[3] = 0x88; - - gnb_bstring->bits_unused = 3; - - uint8_t *buf2 = (uint8_t *)"747"; - OCTET_STRING_t *plmn = (OCTET_STRING_t*)calloc(1, sizeof(OCTET_STRING_t)); - plmn->buf = (uint8_t*)calloc(1,3); - memcpy(plmn->buf, buf2, 3); - plmn->size = 3; - - GNB_ID_Choice_t *gnbchoice = (GNB_ID_Choice_t*)calloc(1,sizeof(GNB_ID_Choice_t)); - GNB_ID_Choice_PR pres2 = GNB_ID_Choice_PR_gnb_ID; - gnbchoice->present = pres2; - gnbchoice->choice.gnb_ID = *gnb_bstring; - - GlobalgNB_ID_t *gnb = (GlobalgNB_ID_t*)calloc(1, sizeof(GlobalgNB_ID_t)); - gnb->plmn_id = *plmn; - gnb->gnb_id = *gnbchoice; - - GlobalE2node_gNB_ID_t *e2gnb = (GlobalE2node_gNB_ID_t*)calloc(1, sizeof(GlobalE2node_gNB_ID_t)); - e2gnb->global_gNB_ID = *gnb; - - GlobalE2node_ID_t *globale2nodeid = (GlobalE2node_ID_t*)calloc(1, sizeof(GlobalE2node_ID_t)); - GlobalE2node_ID_PR pres; - pres = GlobalE2node_ID_PR_gNB; - globale2nodeid->present = pres; - globale2nodeid->choice.gNB = e2gnb; - - E2setupRequestIEs_t *e2setuprid = (E2setupRequestIEs_t*)calloc(1, sizeof(E2setupRequestIEs_t)); - E2setupRequestIEs__value_PR pres3; - pres3 = E2setupRequestIEs__value_PR_GlobalE2node_ID; - e2setuprid->id = 3; - e2setuprid->criticality = 0; - e2setuprid->value.choice.GlobalE2node_ID = *globale2nodeid; - e2setuprid->value.present = pres3; - - - auto *ranFlistIEs = (E2setupRequestIEs_t *)calloc(1, sizeof(E2setupRequestIEs_t)); - ASN_STRUCT_RESET(asn_DEF_E2setupRequestIEs, ranFlistIEs); - ranFlistIEs->criticality = 0; - ranFlistIEs->id = ProtocolIE_ID_id_RANfunctionsAdded; - ranFlistIEs->value.present = E2setupRequestIEs__value_PR_RANfunctions_List; - - auto *itemIes = (RANfunction_ItemIEs_t *)calloc(1, sizeof(RANfunction_ItemIEs_t)); - itemIes->id = ProtocolIE_ID_id_RANfunction_Item; - itemIes->criticality = Criticality_reject; - itemIes->value.present = RANfunction_ItemIEs__value_PR_RANfunction_Item; - itemIes->value.choice.RANfunction_Item.ranFunctionID = ranFunctionId; - - E2SM_KPM_RANfunction_Description_t *ranfunc_desc = - (E2SM_KPM_RANfunction_Description_t*)calloc(1,sizeof(E2SM_KPM_RANfunction_Description_t)); - encode_kpm_function_description(ranfunc_desc); - - uint8_t e2smbuffer[8192]; - size_t e2smbuffer_size = 8192; - - asn_codec_ctx_t *opt_cod; - - asn_enc_rval_t er = - asn_encode_to_buffer(opt_cod, - ATS_ALIGNED_BASIC_PER, - &asn_DEF_E2SM_KPM_RANfunction_Description, - ranfunc_desc, e2smbuffer, e2smbuffer_size); - - fprintf(stderr, "er encded is %d\n", er.encoded); - fprintf(stderr, "after encoding message\n"); - - OCTET_STRING_t *ranfuncdesc_str = (OCTET_STRING_t*)calloc(1,sizeof(OCTET_STRING_t)); - // ranfuncdesc_str->buf = (uint8_t*)calloc(1,er.encoded); - ranfuncdesc_str->buf = (uint8_t*)calloc(1,ranFuncLength); - // ranfuncdesc_str->size = er.encoded; - ranfuncdesc_str->size = ranFuncLength; - // memcpy(ranfuncdesc_str->buf, e2smbuffer, er.encoded); - memcpy(ranfuncdesc_str->buf, ranFuncDescEncoded, ranFuncLength); - - - itemIes->value.choice.RANfunction_Item.ranFunctionDefinition = *ranfuncdesc_str; - itemIes->value.choice.RANfunction_Item.ranFunctionRevision = (long)2; - - ASN_SEQUENCE_ADD(&ranFlistIEs->value.choice.RANfunctions_List.list, itemIes); - - E2setupRequest_t *e2setupreq = (E2setupRequest_t*)calloc(1, sizeof(E2setupRequest_t)); - ASN_SEQUENCE_ADD(&e2setupreq->protocolIEs.list, e2setuprid); - ASN_SEQUENCE_ADD(&e2setupreq->protocolIEs.list, ranFlistIEs); - - InitiatingMessage__value_PR pres4; - pres4 = InitiatingMessage__value_PR_E2setupRequest; - InitiatingMessage_t *initmsg = (InitiatingMessage_t*)calloc(1, sizeof(InitiatingMessage_t)); - - initmsg->procedureCode = ProcedureCode_id_E2setup; - initmsg->criticality = Criticality_reject; - initmsg->value.present = pres4; - initmsg->value.choice.E2setupRequest = *e2setupreq; - - E2AP_PDU_PR pres5; - pres5 = E2AP_PDU_PR_initiatingMessage; - - - e2ap_pdu->present = pres5; - e2ap_pdu->choice.initiatingMessage = initmsg; - -} - -void generate_e2apv1_setup_request(E2AP_PDU_t *e2ap_pdu) { - - // uint8_t *buf = (uint8_t *)"gnb1" - - BIT_STRING_t *gnb_bstring = (BIT_STRING_t*)calloc(1, sizeof(BIT_STRING_t));; - gnb_bstring->buf = (uint8_t*)calloc(1,4); - gnb_bstring->size = 4; - gnb_bstring->buf[0] = 0xB5; - gnb_bstring->buf[1] = 0xC6; - gnb_bstring->buf[2] = 0x77; - gnb_bstring->buf[3] = 0x88; - - gnb_bstring->bits_unused = 3; - - uint8_t *buf2 = (uint8_t *)"747"; - OCTET_STRING_t *plmn = (OCTET_STRING_t*)calloc(1, sizeof(OCTET_STRING_t)); - plmn->buf = (uint8_t*)calloc(1,3); - memcpy(plmn->buf, buf2, 3); - plmn->size = 3; - - GNB_ID_Choice_t *gnbchoice = (GNB_ID_Choice_t*)calloc(1,sizeof(GNB_ID_Choice_t)); - GNB_ID_Choice_PR pres2 = GNB_ID_Choice_PR_gnb_ID; - gnbchoice->present = pres2; - gnbchoice->choice.gnb_ID = *gnb_bstring; - - GlobalgNB_ID_t *gnb = (GlobalgNB_ID_t*)calloc(1, sizeof(GlobalgNB_ID_t)); - gnb->plmn_id = *plmn; - gnb->gnb_id = *gnbchoice; - - GlobalE2node_gNB_ID_t *e2gnb = (GlobalE2node_gNB_ID_t*)calloc(1, sizeof(GlobalE2node_gNB_ID_t)); - e2gnb->global_gNB_ID = *gnb; - - GlobalE2node_ID_t *globale2nodeid = (GlobalE2node_ID_t*)calloc(1, sizeof(GlobalE2node_ID_t)); - GlobalE2node_ID_PR pres; - pres = GlobalE2node_ID_PR_gNB; - globale2nodeid->present = pres; - globale2nodeid->choice.gNB = e2gnb; - - E2setupRequestIEs_t *e2setuprid = (E2setupRequestIEs_t*)calloc(1, sizeof(E2setupRequestIEs_t)); - E2setupRequestIEs__value_PR pres3; - pres3 = E2setupRequestIEs__value_PR_GlobalE2node_ID; - e2setuprid->id = 3; - e2setuprid->criticality = 0; - e2setuprid->value.choice.GlobalE2node_ID = *globale2nodeid; - e2setuprid->value.present = pres3; - - - auto *ranFlistIEs = (E2setupRequestIEs_t *)calloc(1, sizeof(E2setupRequestIEs_t)); - ASN_STRUCT_RESET(asn_DEF_E2setupRequestIEs, ranFlistIEs); - ranFlistIEs->criticality = 0; - ranFlistIEs->id = ProtocolIE_ID_id_RANfunctionsAdded; - ranFlistIEs->value.present = E2setupRequestIEs__value_PR_RANfunctions_List; - - auto *itemIes = (RANfunction_ItemIEs_t *)calloc(1, sizeof(RANfunction_ItemIEs_t)); - itemIes->id = ProtocolIE_ID_id_RANfunction_Item; - itemIes->criticality = Criticality_reject; - itemIes->value.present = RANfunction_ItemIEs__value_PR_RANfunction_Item; - itemIes->value.choice.RANfunction_Item.ranFunctionID = 1; - - E2SM_KPM_RANfunction_Description_t *ranfunc_desc = - (E2SM_KPM_RANfunction_Description_t*)calloc(1,sizeof(E2SM_KPM_RANfunction_Description_t)); - encode_kpm_function_description(ranfunc_desc); - - uint8_t e2smbuffer[8192]; - size_t e2smbuffer_size = 8192; - - asn_codec_ctx_t *opt_cod; - - asn_enc_rval_t er = - asn_encode_to_buffer(opt_cod, - ATS_ALIGNED_BASIC_PER, - &asn_DEF_E2SM_KPM_RANfunction_Description, - ranfunc_desc, e2smbuffer, e2smbuffer_size); - - fprintf(stderr, "er encded is %d\n", er.encoded); - fprintf(stderr, "after encoding message\n"); - - OCTET_STRING_t *ranfuncdesc_str = (OCTET_STRING_t*)calloc(1,sizeof(OCTET_STRING_t)); - ranfuncdesc_str->buf = (uint8_t*)calloc(1,er.encoded); - ranfuncdesc_str->size = er.encoded; - memcpy(ranfuncdesc_str->buf, e2smbuffer, er.encoded); - - - itemIes->value.choice.RANfunction_Item.ranFunctionDefinition = *ranfuncdesc_str; - itemIes->value.choice.RANfunction_Item.ranFunctionRevision = (long)2; - - ASN_SEQUENCE_ADD(&ranFlistIEs->value.choice.RANfunctions_List.list, itemIes); - - E2setupRequest_t *e2setupreq = (E2setupRequest_t*)calloc(1, sizeof(E2setupRequest_t)); - ASN_SEQUENCE_ADD(&e2setupreq->protocolIEs.list, e2setuprid); - ASN_SEQUENCE_ADD(&e2setupreq->protocolIEs.list, ranFlistIEs); - - InitiatingMessage__value_PR pres4; - pres4 = InitiatingMessage__value_PR_E2setupRequest; - InitiatingMessage_t *initmsg = (InitiatingMessage_t*)calloc(1, sizeof(InitiatingMessage_t)); - - initmsg->procedureCode = ProcedureCode_id_E2setup; - initmsg->criticality = Criticality_reject; - initmsg->value.present = pres4; - initmsg->value.choice.E2setupRequest = *e2setupreq; - - E2AP_PDU_PR pres5; - pres5 = E2AP_PDU_PR_initiatingMessage; - - - e2ap_pdu->present = pres5; - e2ap_pdu->choice.initiatingMessage = initmsg; - -} - - -void generate_e2apv1_setup_response(E2AP_PDU_t *e2ap_pdu) { - - E2setupResponseIEs *resp_ies1 = (E2setupResponseIEs_t*)calloc(1, sizeof(E2setupResponseIEs_t)); - E2setupResponseIEs *resp_ies2 = (E2setupResponseIEs_t*)calloc(1, sizeof(E2setupResponseIEs_t)); - E2setupResponseIEs *resp_ies3 = (E2setupResponseIEs_t*)calloc(1, sizeof(E2setupResponseIEs_t)); - - uint8_t *buf = (uint8_t *)"gnb1"; - - BIT_STRING_t *ricid_bstring = (BIT_STRING_t*)calloc(1,sizeof(BIT_STRING_t)); - ricid_bstring->buf = buf; - ricid_bstring->size = 4; - ricid_bstring->bits_unused = 0; - - uint8_t *buf2 = (uint8_t *)"plmn3"; - OCTET_STRING_t *plmn = (OCTET_STRING_t*)calloc(1,sizeof(OCTET_STRING_t)); - plmn->buf = buf2; - plmn->size = 5; - - GlobalRIC_ID_t *globalricid = (GlobalRIC_ID_t*)calloc(1,sizeof(GlobalRIC_ID_t)); - globalricid->pLMN_Identity = *plmn; - globalricid->ric_ID = *ricid_bstring; - - E2setupResponseIEs__value_PR pres1; - pres1 = E2setupResponseIEs__value_PR_GlobalRIC_ID; - - resp_ies1->id = ProtocolIE_ID_id_GlobalRIC_ID; - resp_ies1->criticality = 0; - resp_ies1->value.present = pres1; - resp_ies1->value.choice.GlobalRIC_ID = *globalricid; - - E2setupResponse_t *e2setupresp = (E2setupResponse_t*)calloc(1,sizeof(E2setupResponse_t)); - int ret = ASN_SEQUENCE_ADD(&e2setupresp->protocolIEs.list, resp_ies1); - - - SuccessfulOutcome__value_PR pres; - pres = SuccessfulOutcome__value_PR_E2setupResponse; - SuccessfulOutcome_t *successoutcome = (SuccessfulOutcome_t*)calloc(1, sizeof(SuccessfulOutcome_t)); - successoutcome->procedureCode = 1; - successoutcome->criticality = 0; - successoutcome->value.present = pres; - successoutcome->value.choice.E2setupResponse = *e2setupresp; - - E2AP_PDU_PR pres5 = E2AP_PDU_PR_successfulOutcome; - - e2ap_pdu->present = pres5; - e2ap_pdu->choice.successfulOutcome = successoutcome; - -} - - -void generate_e2apv1_subscription_request(E2AP_PDU *e2ap_pdu) { - - fprintf(stderr, "in sub 1\n"); - RICsubscriptionRequest_IEs_t *ricreqid = (RICsubscriptionRequest_IEs_t*)calloc(1, sizeof(RICsubscriptionRequest_IEs_t)); - fprintf(stderr, "in sub 2\n"); - ASN_STRUCT_RESET(asn_DEF_RICsubscriptionRequest_IEs, ricreqid); - - - RICsubscriptionRequest_IEs_t *ranfuncid = (RICsubscriptionRequest_IEs_t*)calloc(1, sizeof(RICsubscriptionRequest_IEs_t)); - fprintf(stderr, "in sub 2\n"); - ASN_STRUCT_RESET(asn_DEF_RICsubscriptionRequest_IEs, ranfuncid); - - - fprintf(stderr, "in sub 3\n"); - auto *ricsubrid = (RICsubscriptionRequest_IEs_t*)calloc(1, sizeof(RICsubscriptionRequest_IEs_t)); - fprintf(stderr, "in sub 4\n"); - ASN_STRUCT_RESET(asn_DEF_RICsubscriptionRequest_IEs, ricsubrid); - - fprintf(stderr, "in generate sub\n"); - uint8_t *buf2 = (uint8_t *)"SubscriptionTriggers"; - fprintf(stderr, "in gen sub 1\n"); - OCTET_STRING_t *triggerdef = (OCTET_STRING_t*)calloc(1, sizeof(OCTET_STRING_t)); - triggerdef->buf = (uint8_t *)calloc(1,20); - triggerdef->size = 20; - memcpy(triggerdef->buf, buf2, triggerdef->size); - - - fprintf(stderr, "sub1\n"); - ProtocolIE_ID_t proto_id= ProtocolIE_ID_id_RICaction_ToBeSetup_Item; - - RICaction_ToBeSetup_ItemIEs__value_PR pres6; - pres6 = RICaction_ToBeSetup_ItemIEs__value_PR_RICaction_ToBeSetup_Item; - - printf("sub2\n"); - - uint8_t *buf5 = (uint8_t *)"ActionDef"; - - OCTET_STRING_t *actdef = (OCTET_STRING_t*)calloc(1, sizeof(OCTET_STRING_t)); - actdef->buf = (uint8_t *)calloc(1,9); - actdef->size = 9; - memcpy(triggerdef->buf, buf5, 9); - - auto *sa = (RICsubsequentAction_t *) calloc(1, sizeof(RICsubsequentAction_t)); - ASN_STRUCT_RESET(asn_DEF_RICsubsequentAction, sa); - - sa->ricTimeToWait = RICtimeToWait_w500ms; - sa->ricSubsequentActionType = RICsubsequentActionType_continue; - - /* - RICaction_ToBeSetup_Item_t *action_item = (RICaction_ToBeSetup_Item_t*)calloc(1, sizeof(RICaction_ToBeSetup_Item_t)); - action_item->ricActionID = 5; - action_item->ricActionType = 9; - action_item->ricActionDefinition = actdef; - action_item->ricSubsequentAction = sa; - */ - printf("sub3\n"); - - RICaction_ToBeSetup_ItemIEs_t *action_item_ies = (RICaction_ToBeSetup_ItemIEs_t *)calloc(1, sizeof(RICaction_ToBeSetup_Item_t)); - action_item_ies->id = proto_id; - action_item_ies->criticality = 0; - - action_item_ies->value.present = pres6; - action_item_ies->value.choice.RICaction_ToBeSetup_Item.ricActionID = 5; - action_item_ies->value.choice.RICaction_ToBeSetup_Item.ricActionType = RICactionType_report; - action_item_ies->value.choice.RICaction_ToBeSetup_Item.ricActionDefinition = actdef; - action_item_ies->value.choice.RICaction_ToBeSetup_Item.ricSubsequentAction = sa; - - - printf("sub5\n"); - /* - RICsubscriptionDetails_t *ricsubdetails = (RICsubscriptionDetails_t*)calloc(1, sizeof(RICsubscriptionDetails_t)); - printf("sub5.5\n"); - - ASN_SEQUENCE_ADD(&ricsubdetails->ricAction_ToBeSetup_List.list, action_item_ies); - ricsubdetails->ricEventTriggerDefinition = *triggerdef; - - printf("sub6\n"); - */ - - ranfuncid->id = ProtocolIE_ID_id_RANfunctionID; - ranfuncid->criticality = 0; - ranfuncid->value.present = RICsubscriptionRequest_IEs__value_PR_RANfunctionID; - ranfuncid->value.choice.RANfunctionID = 1; - - - RICsubscriptionRequest_IEs__value_PR pres3; - printf("sub6.1\n"); - pres3 = RICsubscriptionRequest_IEs__value_PR_RICsubscriptionDetails; - ricsubrid->id = ProtocolIE_ID_id_RICsubscriptionDetails; - printf("sub6.2\n"); - - ricsubrid->criticality = 0; - ricsubrid->value.present = pres3; - printf("sub6.3\n"); - - ricsubrid->value.choice.RICsubscriptionDetails.ricEventTriggerDefinition = *triggerdef; - printf("sub6.4\n"); - - ASN_SEQUENCE_ADD(&ricsubrid->value.choice.RICsubscriptionDetails.ricAction_ToBeSetup_List.list, action_item_ies); - - printf("sub7\n"); - - - ricreqid->id = ProtocolIE_ID_id_RICrequestID; - ricreqid->criticality = 0; - ricreqid->value.present = RICsubscriptionRequest_IEs__value_PR_RICrequestID; - ricreqid->value.choice.RICrequestID.ricRequestorID = 22; - ricreqid->value.choice.RICrequestID.ricInstanceID = 6; - - RICsubscriptionRequest_t *ricsubreq = (RICsubscriptionRequest_t*)calloc(1, sizeof(RICsubscriptionRequest_t)); - - ASN_SEQUENCE_ADD(&ricsubreq->protocolIEs.list,ricreqid); - ASN_SEQUENCE_ADD(&ricsubreq->protocolIEs.list,ricsubrid); - ASN_SEQUENCE_ADD(&ricsubreq->protocolIEs.list,ranfuncid); - - - - InitiatingMessage__value_PR pres4; - pres4 = InitiatingMessage__value_PR_RICsubscriptionRequest; - InitiatingMessage_t *initmsg = (InitiatingMessage_t*)calloc(1, sizeof(InitiatingMessage_t)); - initmsg->procedureCode = ProcedureCode_id_RICsubscription; - initmsg->criticality = Criticality_reject; - initmsg->value.present = pres4; - initmsg->value.choice.RICsubscriptionRequest = *ricsubreq; - - E2AP_PDU_PR pres5; - pres5 = E2AP_PDU_PR_initiatingMessage; - - - e2ap_pdu->present = pres5; - e2ap_pdu->choice.initiatingMessage = initmsg; - - char *error_buf = (char*)calloc(300, sizeof(char));; - size_t errlen; - - asn_check_constraints(&asn_DEF_E2AP_PDU, e2ap_pdu, error_buf, &errlen); - printf("error length %d\n", errlen); - printf("error buf %s\n", error_buf); - - // xer_fprint(stderr, &asn_DEF_E2AP_PDU, e2ap_pdu); - -} - -void generate_e2apv1_subscription_response_success(E2AP_PDU *e2ap_pdu, long reqActionIdsAccepted[], - long reqActionIdsRejected[], int accept_size, int reject_size, - long reqRequestorId, long reqInstanceId) { - - RICsubscriptionResponse_IEs_t *respricreqid = - (RICsubscriptionResponse_IEs_t*)calloc(1, sizeof(RICsubscriptionResponse_IEs_t)); - - respricreqid->id = ProtocolIE_ID_id_RICrequestID; - respricreqid->criticality = 0; - respricreqid->value.present = RICsubscriptionResponse_IEs__value_PR_RICrequestID; - respricreqid->value.choice.RICrequestID.ricRequestorID = reqRequestorId; - - respricreqid->value.choice.RICrequestID.ricInstanceID = reqInstanceId; - - - RICsubscriptionResponse_IEs_t *ricactionadmitted = - (RICsubscriptionResponse_IEs_t*)calloc(1, sizeof(RICsubscriptionResponse_IEs_t)); - ricactionadmitted->id = ProtocolIE_ID_id_RICactions_Admitted; - ricactionadmitted->criticality = 0; - ricactionadmitted->value.present = RICsubscriptionResponse_IEs__value_PR_RICaction_Admitted_List; - - RICaction_Admitted_List_t* admlist = - (RICaction_Admitted_List_t*)calloc(1,sizeof(RICaction_Admitted_List_t)); - ricactionadmitted->value.choice.RICaction_Admitted_List = *admlist; - - // int numAccept = sizeof(reqActionIdsAccepted); - int numAccept = accept_size; - int numReject = reject_size; - // int numReject = sizeof(reqActionIdsRejected); - - - for (int i=0; i < numAccept ; i++) { - fprintf(stderr, "in for loop i = %d\n", i); - - long aid = reqActionIdsAccepted[i]; - - RICaction_Admitted_ItemIEs_t *admitie = (RICaction_Admitted_ItemIEs_t*)calloc(1,sizeof(RICaction_Admitted_ItemIEs_t)); - admitie->id = ProtocolIE_ID_id_RICaction_Admitted_Item; - admitie->criticality = 0; - admitie->value.present = RICaction_Admitted_ItemIEs__value_PR_RICaction_Admitted_Item; - admitie->value.choice.RICaction_Admitted_Item.ricActionID = aid; - - ASN_SEQUENCE_ADD(&ricactionadmitted->value.choice.RICaction_Admitted_List.list, admitie); - - } - - RICsubscriptionResponse_t *ricsubresp = (RICsubscriptionResponse_t*)calloc(1,sizeof(RICsubscriptionResponse_t)); - ASN_SEQUENCE_ADD(&ricsubresp->protocolIEs.list, respricreqid); - ASN_SEQUENCE_ADD(&ricsubresp->protocolIEs.list, ricactionadmitted); - - - if (numReject > 0) { - - RICsubscriptionResponse_IEs_t *ricactionrejected = - (RICsubscriptionResponse_IEs_t*)calloc(1, sizeof(RICsubscriptionResponse_IEs_t)); - ricactionrejected->id = ProtocolIE_ID_id_RICactions_NotAdmitted; - ricactionrejected->criticality = 0; - ricactionrejected->value.present = RICsubscriptionResponse_IEs__value_PR_RICaction_NotAdmitted_List; - - RICaction_NotAdmitted_List_t* rejectlist = - (RICaction_NotAdmitted_List_t*)calloc(1,sizeof(RICaction_NotAdmitted_List_t)); - ricactionadmitted->value.choice.RICaction_NotAdmitted_List = *rejectlist; - - for (int i=0; i < numReject; i++) { - fprintf(stderr, "in for loop i = %d\n", i); - - long aid = reqActionIdsRejected[i]; - - RICaction_NotAdmitted_ItemIEs_t *noadmitie = (RICaction_NotAdmitted_ItemIEs_t*)calloc(1,sizeof(RICaction_NotAdmitted_ItemIEs_t)); - noadmitie->id = ProtocolIE_ID_id_RICaction_NotAdmitted_Item; - noadmitie->criticality = 0; - noadmitie->value.present = RICaction_NotAdmitted_ItemIEs__value_PR_RICaction_NotAdmitted_Item; - noadmitie->value.choice.RICaction_NotAdmitted_Item.ricActionID = aid; - - ASN_SEQUENCE_ADD(&ricactionrejected->value.choice.RICaction_NotAdmitted_List.list, noadmitie); - ASN_SEQUENCE_ADD(&ricsubresp->protocolIEs.list, ricactionrejected); - } - } - - - SuccessfulOutcome__value_PR pres2; - pres2 = SuccessfulOutcome__value_PR_RICsubscriptionResponse; - SuccessfulOutcome_t *successoutcome = (SuccessfulOutcome_t*)calloc(1, sizeof(SuccessfulOutcome_t)); - successoutcome->procedureCode = ProcedureCode_id_RICsubscription; - successoutcome->criticality = 0; - successoutcome->value.present = pres2; - successoutcome->value.choice.RICsubscriptionResponse = *ricsubresp; - - E2AP_PDU_PR pres5 = E2AP_PDU_PR_successfulOutcome; - - e2ap_pdu->present = pres5; - e2ap_pdu->choice.successfulOutcome = successoutcome; - - char *error_buf = (char*)calloc(300, sizeof(char)); - size_t errlen; - - asn_check_constraints(&asn_DEF_E2AP_PDU, e2ap_pdu, error_buf, &errlen); - printf("error length %d\n", errlen); - printf("error buf %s\n", error_buf); - - -} - -void generate_e2apv1_subscription_response(E2AP_PDU *e2ap_pdu, E2AP_PDU *sub_req_pdu) { - - //Gather details of the request - - RICsubscriptionRequest_t orig_req = - sub_req_pdu->choice.initiatingMessage->value.choice.RICsubscriptionRequest; - - RICsubscriptionResponse_IEs_t *ricreqid = - (RICsubscriptionResponse_IEs_t*)calloc(1, sizeof(RICsubscriptionResponse_IEs_t)); - - int count = orig_req.protocolIEs.list.count; - int size = orig_req.protocolIEs.list.size; - - RICsubscriptionRequest_IEs_t **ies = (RICsubscriptionRequest_IEs_t**)orig_req.protocolIEs.list.array; - - fprintf(stderr, "count%d\n", count); - fprintf(stderr, "size%d\n", size); - - RICsubscriptionRequest_IEs__value_PR pres; - - long responseRequestorId; - long responseInstanceId; - long responseActionId; - - std::vector actionIds; - - for (int i=0; i < count; i++) { - RICsubscriptionRequest_IEs_t *next_ie = ies[i]; - pres = next_ie->value.present; - - fprintf(stderr, "next present value %d\n", pres); - - switch(pres) { - case RICsubscriptionRequest_IEs__value_PR_RICrequestID: - { - RICrequestID_t reqId = next_ie->value.choice.RICrequestID; - long requestorId = reqId.ricRequestorID; - long instanceId = reqId.ricInstanceID; - fprintf(stderr, "requestorId %d\n", requestorId); - fprintf(stderr, "instanceId %d\n", instanceId); - responseRequestorId = requestorId; - responseInstanceId = instanceId; - - break; - } - case RICsubscriptionRequest_IEs__value_PR_RANfunctionID: - break; - case RICsubscriptionRequest_IEs__value_PR_RICsubscriptionDetails: - { - RICsubscriptionDetails_t subDetails = next_ie->value.choice.RICsubscriptionDetails; - RICeventTriggerDefinition_t triggerDef = subDetails.ricEventTriggerDefinition; - RICactions_ToBeSetup_List_t actionList = subDetails.ricAction_ToBeSetup_List; - - int actionCount = actionList.list.count; - fprintf(stderr, "action count%d\n", actionCount); - - auto **item_array = actionList.list.array; - - for (int i=0; i < actionCount; i++) { - //RICaction_ToBeSetup_Item_t - auto *next_item = item_array[i]; - RICactionID_t actionId = ((RICaction_ToBeSetup_ItemIEs*)next_item)->value.choice.RICaction_ToBeSetup_Item.ricActionID; - fprintf(stderr, "Next Action ID %ld\n", actionId); - responseActionId = actionId; - actionIds.push_back(responseActionId); - } - - break; - } - } - - } - - fprintf(stderr, "After Processing Subscription Request\n"); - - fprintf(stderr, "requestorId %d\n", responseRequestorId); - fprintf(stderr, "instanceId %d\n", responseInstanceId); - - - for (int i=0; i < actionIds.size(); i++) { - fprintf(stderr, "Action ID %d %ld\n", i, actionIds.at(i)); - - } - - - RICsubscriptionResponse_IEs_t *respricreqid = - (RICsubscriptionResponse_IEs_t*)calloc(1, sizeof(RICsubscriptionResponse_IEs_t)); - - respricreqid->id = ProtocolIE_ID_id_RICrequestID; - respricreqid->criticality = 0; - respricreqid->value.present = RICsubscriptionResponse_IEs__value_PR_RICrequestID; - respricreqid->value.choice.RICrequestID.ricRequestorID = responseRequestorId; - - respricreqid->value.choice.RICrequestID.ricInstanceID = responseInstanceId; - - - RICsubscriptionResponse_IEs_t *ricactionadmitted = - (RICsubscriptionResponse_IEs_t*)calloc(1, sizeof(RICsubscriptionResponse_IEs_t)); - ricactionadmitted->id = ProtocolIE_ID_id_RICactions_Admitted; - ricactionadmitted->criticality = 0; - ricactionadmitted->value.present = RICsubscriptionResponse_IEs__value_PR_RICaction_Admitted_List; - - RICaction_Admitted_List_t* admlist = - (RICaction_Admitted_List_t*)calloc(1,sizeof(RICaction_Admitted_List_t)); - ricactionadmitted->value.choice.RICaction_Admitted_List = *admlist; - - for (int i=0; i < actionIds.size(); i++) { - fprintf(stderr, "in for loop i = %d\n", i); - - long aid = actionIds.at(i); - - RICaction_Admitted_ItemIEs_t *admitie = (RICaction_Admitted_ItemIEs_t*)calloc(1,sizeof(RICaction_Admitted_ItemIEs_t)); - admitie->id = ProtocolIE_ID_id_RICaction_Admitted_Item; - admitie->criticality = 0; - admitie->value.present = RICaction_Admitted_ItemIEs__value_PR_RICaction_Admitted_Item; - admitie->value.choice.RICaction_Admitted_Item.ricActionID = aid; - - ASN_SEQUENCE_ADD(&ricactionadmitted->value.choice.RICaction_Admitted_List.list, admitie); - - } - - - RICsubscriptionResponse_t *ricsubresp = (RICsubscriptionResponse_t*)calloc(1,sizeof(RICsubscriptionResponse_t)); - - ASN_SEQUENCE_ADD(&ricsubresp->protocolIEs.list, respricreqid); - ASN_SEQUENCE_ADD(&ricsubresp->protocolIEs.list, ricactionadmitted); - - - SuccessfulOutcome__value_PR pres2; - pres2 = SuccessfulOutcome__value_PR_RICsubscriptionResponse; - SuccessfulOutcome_t *successoutcome = (SuccessfulOutcome_t*)calloc(1, sizeof(SuccessfulOutcome_t)); - successoutcome->procedureCode = ProcedureCode_id_RICsubscription; - successoutcome->criticality = 0; - successoutcome->value.present = pres2; - successoutcome->value.choice.RICsubscriptionResponse = *ricsubresp; - - E2AP_PDU_PR pres5 = E2AP_PDU_PR_successfulOutcome; - - e2ap_pdu->present = pres5; - e2ap_pdu->choice.successfulOutcome = successoutcome; - - char *error_buf = (char*)calloc(300, sizeof(char)); - size_t errlen; - - asn_check_constraints(&asn_DEF_E2AP_PDU, e2ap_pdu, error_buf, &errlen); - printf("error length %d\n", errlen); - printf("error buf %s\n", error_buf); - -} - -void generate_e2apv1_indication_request_parameterized(E2AP_PDU *e2ap_pdu, - long requestorId, - long instanceId, - long ranFunctionId, - long actionId, - long seqNum, - uint8_t *ind_header_buf, - int header_length, - uint8_t *ind_message_buf, - int message_length) { - - fprintf(stderr, "ind1\n"); - RICindication_IEs_t *ricind_ies = (RICindication_IEs_t*)calloc(1, sizeof(RICindication_IEs_t)); - RICindication_IEs_t *ricind_ies2 = (RICindication_IEs_t*)calloc(1, sizeof(RICindication_IEs_t)); - RICindication_IEs_t *ricind_ies3 = (RICindication_IEs_t*)calloc(1, sizeof(RICindication_IEs_t)); - RICindication_IEs_t *ricind_ies4 = (RICindication_IEs_t*)calloc(1, sizeof(RICindication_IEs_t)); - RICindication_IEs_t *ricind_ies5 = (RICindication_IEs_t*)calloc(1, sizeof(RICindication_IEs_t)); - RICindication_IEs_t *ricind_ies6 = (RICindication_IEs_t*)calloc(1, sizeof(RICindication_IEs_t)); - RICindication_IEs_t *ricind_ies7 = (RICindication_IEs_t*)calloc(1, sizeof(RICindication_IEs_t)); - RICindication_IEs_t *ricind_ies8 = (RICindication_IEs_t*)calloc(1, sizeof(RICindication_IEs_t)); - - RICindication_IEs__value_PR pres3; - - pres3 = RICindication_IEs__value_PR_RICrequestID; - ricind_ies->id = ProtocolIE_ID_id_RICrequestID; - ricind_ies->criticality = 0; - ricind_ies->value.present = pres3; - ricind_ies->value.choice.RICrequestID.ricRequestorID = requestorId; - ricind_ies->value.choice.RICrequestID.ricInstanceID = instanceId; - - fprintf(stderr, "ind2\n"); - - pres3 = RICindication_IEs__value_PR_RANfunctionID; - ricind_ies2->id = ProtocolIE_ID_id_RANfunctionID; - ricind_ies2->criticality = 0; - ricind_ies2->value.present = pres3; - ricind_ies2->value.choice.RANfunctionID = ranFunctionId; - - - ricind_ies3->id = ProtocolIE_ID_id_RICactionID; - ricind_ies3->criticality = 0; - pres3 = RICindication_IEs__value_PR_RICactionID; - ricind_ies3->value.present = pres3; - ricind_ies3->value.choice.RICactionID = actionId; - - - pres3 = RICindication_IEs__value_PR_RICindicationSN; - ricind_ies4->id = ProtocolIE_ID_id_RICindicationSN; - ricind_ies4->criticality = 0; - ricind_ies4->value.present = pres3; - ricind_ies4->value.choice.RICindicationSN = seqNum; - - //Indication type is REPORT - pres3 = RICindication_IEs__value_PR_RICindicationType; - ricind_ies5->id = ProtocolIE_ID_id_RICindicationType; - ricind_ies5->criticality = 0; - ricind_ies5->value.present = pres3; - ricind_ies5->value.choice.RICindicationType = 0; - - - uint8_t *buf2 = (uint8_t *)"reportheader"; - OCTET_STRING_t *hdr_str = (OCTET_STRING_t*)calloc(1,sizeof(OCTET_STRING_t)); - - hdr_str->buf = (uint8_t*)calloc(1,header_length); - hdr_str->size = header_length; - memcpy(hdr_str->buf, ind_header_buf, header_length); - - fprintf(stderr, "ind3\n"); - - ricind_ies6->value.choice.RICindicationHeader.buf = (uint8_t*)calloc(1,header_length); - - pres3 = RICindication_IEs__value_PR_RICindicationHeader; - ricind_ies6->id = ProtocolIE_ID_id_RICindicationHeader; - ricind_ies6->criticality = 0; - ricind_ies6->value.present = pres3; - ricind_ies6->value.choice.RICindicationHeader.size = header_length; - memcpy(ricind_ies6->value.choice.RICindicationHeader.buf, ind_header_buf, header_length); - - ricind_ies7->value.choice.RICindicationMessage.buf = (uint8_t*)calloc(1,8192); - - - - - pres3 = RICindication_IEs__value_PR_RICindicationMessage; - ricind_ies7->id = ProtocolIE_ID_id_RICindicationMessage; - fprintf(stderr, "after encoding message 1\n"); - - ricind_ies7->criticality = 0; - ricind_ies7->value.present = pres3; - - fprintf(stderr, "after encoding message 2\n"); - - fprintf(stderr, "after encoding message 3\n"); - ricind_ies7->value.choice.RICindicationMessage.size = message_length; - - fprintf(stderr, "after encoding message 4\n"); - memcpy(ricind_ies7->value.choice.RICindicationMessage.buf, ind_message_buf, message_length); - - fprintf(stderr, "after encoding message 5\n"); - - uint8_t *cpid_buf = (uint8_t *)"cpid"; - OCTET_STRING_t cpid_str; - - printf("5.1\n"); - - int cpid_buf_len = strlen((char*)cpid_buf); - pres3 = RICindication_IEs__value_PR_RICcallProcessID; - ricind_ies8->id = ProtocolIE_ID_id_RICcallProcessID; - - ricind_ies8->criticality = 0; - ricind_ies8->value.present = pres3; - - ricind_ies8->value.choice.RICcallProcessID.buf = (uint8_t*)calloc(1,cpid_buf_len); - ricind_ies8->value.choice.RICcallProcessID.size = cpid_buf_len; - - memcpy(ricind_ies8->value.choice.RICcallProcessID.buf, cpid_buf, cpid_buf_len); - - printf("5.2\n"); - - RICindication_t *ricindication = (RICindication_t*)calloc(1, sizeof(RICindication_t)); - - - int ret; - - ret = ASN_SEQUENCE_ADD(&ricindication->protocolIEs.list, ricind_ies); - - ret = ASN_SEQUENCE_ADD(&ricindication->protocolIEs.list, ricind_ies2); - - printf("5.3\n"); - - ret = ASN_SEQUENCE_ADD(&ricindication->protocolIEs.list, ricind_ies3); - - printf("5.35\n"); - - ret = ASN_SEQUENCE_ADD(&ricindication->protocolIEs.list, ricind_ies4); - - printf("5.36\n"); - - ret = ASN_SEQUENCE_ADD(&ricindication->protocolIEs.list, ricind_ies5); - - printf("5.4\n"); - - ret = ASN_SEQUENCE_ADD(&ricindication->protocolIEs.list, ricind_ies6); - - printf("5.5\n"); - - ret = ASN_SEQUENCE_ADD(&ricindication->protocolIEs.list, ricind_ies7); - - // ret = ASN_SEQUENCE_ADD(&ricindication->protocolIEs.list, ricind_ies8); - - - InitiatingMessage__value_PR pres4; - pres4 = InitiatingMessage__value_PR_RICindication; - InitiatingMessage_t *initmsg = (InitiatingMessage_t*)calloc(1, sizeof(InitiatingMessage_t)); - initmsg->procedureCode = 5; - initmsg->criticality = 1; - initmsg->value.present = pres4; - initmsg->value.choice.RICindication = *ricindication; - - E2AP_PDU_PR pres5; - pres5 = E2AP_PDU_PR_initiatingMessage; - - e2ap_pdu->present = pres5; - e2ap_pdu->choice.initiatingMessage = initmsg; - - char *error_buf = (char*)calloc(300, sizeof(char)); - size_t errlen; - - asn_check_constraints(&asn_DEF_E2AP_PDU, e2ap_pdu, error_buf, &errlen); - printf("error length %d\n", errlen); - printf("error buf %s\n", error_buf); - - xer_fprint(stderr, &asn_DEF_E2AP_PDU, e2ap_pdu); - -} - -void generate_e2apv1_indication_request(E2AP_PDU *e2ap_pdu) { - fprintf(stderr, "ind1\n"); - RICindication_IEs_t *ricind_ies = (RICindication_IEs_t*)calloc(1, sizeof(RICindication_IEs_t)); - RICindication_IEs_t *ricind_ies2 = (RICindication_IEs_t*)calloc(1, sizeof(RICindication_IEs_t)); - RICindication_IEs_t *ricind_ies3 = (RICindication_IEs_t*)calloc(1, sizeof(RICindication_IEs_t)); - RICindication_IEs_t *ricind_ies4 = (RICindication_IEs_t*)calloc(1, sizeof(RICindication_IEs_t)); - RICindication_IEs_t *ricind_ies5 = (RICindication_IEs_t*)calloc(1, sizeof(RICindication_IEs_t)); - RICindication_IEs_t *ricind_ies6 = (RICindication_IEs_t*)calloc(1, sizeof(RICindication_IEs_t)); - RICindication_IEs_t *ricind_ies7 = (RICindication_IEs_t*)calloc(1, sizeof(RICindication_IEs_t)); - RICindication_IEs_t *ricind_ies8 = (RICindication_IEs_t*)calloc(1, sizeof(RICindication_IEs_t)); - - RICindication_IEs__value_PR pres3; - - pres3 = RICindication_IEs__value_PR_RICrequestID; - ricind_ies->id = ProtocolIE_ID_id_RICrequestID; - ricind_ies->criticality = 0; - ricind_ies->value.present = pres3; - ricind_ies->value.choice.RICrequestID.ricRequestorID = 25; - ricind_ies->value.choice.RICrequestID.ricInstanceID = 3; - - fprintf(stderr, "ind2\n"); - - pres3 = RICindication_IEs__value_PR_RANfunctionID; - ricind_ies2->id = ProtocolIE_ID_id_RANfunctionID; - ricind_ies2->criticality = 0; - ricind_ies2->value.present = pres3; - ricind_ies2->value.choice.RANfunctionID = 70; - - - ricind_ies3->id = ProtocolIE_ID_id_RICactionID; - ricind_ies3->criticality = 0; - pres3 = RICindication_IEs__value_PR_RICactionID; - ricind_ies3->value.present = pres3; - ricind_ies3->value.choice.RICactionID = 80; - - - pres3 = RICindication_IEs__value_PR_RICindicationSN; - ricind_ies4->id = ProtocolIE_ID_id_RICindicationSN; - ricind_ies4->criticality = 0; - ricind_ies4->value.present = pres3; - ricind_ies4->value.choice.RICindicationSN = 45; - - pres3 = RICindication_IEs__value_PR_RICindicationType; - ricind_ies5->id = ProtocolIE_ID_id_RICindicationType; - ricind_ies5->criticality = 0; - ricind_ies5->value.present = pres3; - ricind_ies5->value.choice.RICindicationType = 0; - - - uint8_t *buf2 = (uint8_t *)"reportheader"; - OCTET_STRING_t *hdr_str = (OCTET_STRING_t*)calloc(1,sizeof(OCTET_STRING_t)); - hdr_str->buf = (uint8_t*)calloc(1,12); - hdr_str->size = 12; - memcpy(hdr_str->buf, buf2, 12); - - fprintf(stderr, "ind3\n"); - - ricind_ies6->value.choice.RICindicationHeader.buf = (uint8_t*)calloc(1,12); - - pres3 = RICindication_IEs__value_PR_RICindicationHeader; - ricind_ies6->id = ProtocolIE_ID_id_RICindicationHeader; - ricind_ies6->criticality = 0; - ricind_ies6->value.present = pres3; - ricind_ies6->value.choice.RICindicationHeader.size = 12; - memcpy(ricind_ies6->value.choice.RICindicationHeader.buf, buf2, 12); - - ricind_ies7->value.choice.RICindicationMessage.buf = (uint8_t*)calloc(1,8192); - // uint8_t *buf9 = (uint8_t *)"reportmsg"; - - /* - E2SM_KPM_IndicationMessage_t *e2sm_ind_msg = - (E2SM_KPM_IndicationMessage_t*)calloc(1,sizeof(E2SM_KPM_IndicationMessage_t)); - - encode_kpm(e2sm_ind_msg); - */ - - E2SM_KPM_RANfunction_Description_t *e2sm_desc = - (E2SM_KPM_RANfunction_Description_t*)calloc(1,sizeof(E2SM_KPM_RANfunction_Description_t)); - - encode_kpm_function_description(e2sm_desc); - - - uint8_t e2smbuffer[8192]; - size_t e2smbuffer_size = 8192; - - asn_codec_ctx_t *opt_cod; - - - asn_enc_rval_t er = - asn_encode_to_buffer(opt_cod, - ATS_ALIGNED_BASIC_PER, - &asn_DEF_E2SM_KPM_RANfunction_Description, - e2sm_desc, e2smbuffer, e2smbuffer_size); - - /* - asn_encode_to_buffer(opt_cod, - ATS_ALIGNED_BASIC_PER, - &asn_DEF_E2SM_KPM_IndicationMessage, - e2sm_ind_msg, e2smbuffer, e2smbuffer_size); - */ - - - - fprintf(stderr, "er encded is %d\n", er.encoded); - fprintf(stderr, "after encoding message\n"); - - OCTET_STRING_t *msg_str = (OCTET_STRING_t*)calloc(1,sizeof(OCTET_STRING_t)); - msg_str->buf = (uint8_t*)calloc(1,er.encoded); - msg_str->size = er.encoded; - memcpy(msg_str->buf, e2smbuffer, er.encoded); - - - pres3 = RICindication_IEs__value_PR_RICindicationMessage; - ricind_ies7->id = ProtocolIE_ID_id_RICindicationMessage; - fprintf(stderr, "after encoding message 1\n"); - - ricind_ies7->criticality = 0; - ricind_ies7->value.present = pres3; - - fprintf(stderr, "after encoding message 2\n"); - - fprintf(stderr, "after encoding message 3\n"); - ricind_ies7->value.choice.RICindicationMessage.size = er.encoded; - - fprintf(stderr, "after encoding message 4\n"); - memcpy(ricind_ies7->value.choice.RICindicationMessage.buf, e2smbuffer, er.encoded); - - fprintf(stderr, "after encoding message 5\n"); - - uint8_t *buf4 = (uint8_t *)"cpid"; - OCTET_STRING_t cpid_str; - cpid_str.buf = buf4; - cpid_str.size = 4; - - - pres3 = RICindication_IEs__value_PR_RICcallProcessID; - ricind_ies8->id = ProtocolIE_ID_id_RICcallProcessID; - - ricind_ies8->criticality = 0; - ricind_ies8->value.present = pres3; - - ricind_ies8->value.choice.RICcallProcessID = cpid_str; - - - RICindication_t *ricindication = (RICindication_t*)calloc(1, sizeof(RICindication_t)); - - - int ret; - /* - ret = ASN_SEQUENCE_ADD(&ricindication->protocolIEs.list, ricind_ies); - - ret = ASN_SEQUENCE_ADD(&ricindication->protocolIEs.list, ricind_ies2); - - ret = ASN_SEQUENCE_ADD(&ricindication->protocolIEs.list, ricind_ies3); - ret = ASN_SEQUENCE_ADD(&ricindication->protocolIEs.list, ricind_ies4); - ret = ASN_SEQUENCE_ADD(&ricindication->protocolIEs.list, ricind_ies5); - - ret = ASN_SEQUENCE_ADD(&ricindication->protocolIEs.list, ricind_ies6); - */ - ret = ASN_SEQUENCE_ADD(&ricindication->protocolIEs.list, ricind_ies7); - - ret = ASN_SEQUENCE_ADD(&ricindication->protocolIEs.list, ricind_ies8); - - - InitiatingMessage__value_PR pres4; - pres4 = InitiatingMessage__value_PR_RICindication; - InitiatingMessage_t *initmsg = (InitiatingMessage_t*)calloc(1, sizeof(InitiatingMessage_t)); - initmsg->procedureCode = 5; - initmsg->criticality = 1; - initmsg->value.present = pres4; - initmsg->value.choice.RICindication = *ricindication; - - E2AP_PDU_PR pres5; - pres5 = E2AP_PDU_PR_initiatingMessage; - - e2ap_pdu->present = pres5; - e2ap_pdu->choice.initiatingMessage = initmsg; - - char *error_buf = (char*)calloc(300, sizeof(char));; - size_t errlen; - - asn_check_constraints(&asn_DEF_E2AP_PDU, e2ap_pdu, error_buf, &errlen); - printf("error length %d\n", errlen); - printf("error buf %s\n", error_buf); - - xer_fprint(stderr, &asn_DEF_E2AP_PDU, e2ap_pdu); -} - - -void generate_e2apv1_indication_response(E2AP_PDU *e2ap_pdu) { - - -} diff --git a/e2sim/previous/e2apv1sim/ricsim/encode_e2apv1.hpp b/e2sim/previous/e2apv1sim/ricsim/encode_e2apv1.hpp deleted file mode 100644 index 477509c..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/encode_e2apv1.hpp +++ /dev/null @@ -1,46 +0,0 @@ - -#ifndef ENCODE_E2APV1_HPP -#define ENCODE_E2APV1_HPP -/* -#include -#include -#include -*/ - -//#include -//#include -//#include - -//#include "e2sim_sctp.hpp" -//#include "e2ap_message_handler.hpp" -#include "encode_kpm.hpp" - - -extern "C" { - //#include "e2sim_defs.h" -#include "E2AP-PDU.h" - - -} - -long get_function_id_from_subscription(E2AP_PDU_t *e2ap_pdu); - -void buildSubsReq(E2AP_PDU_t *pdu); - -void generate_e2apv1_setup_request(E2AP_PDU_t *setup_req_pdu); - -void generate_e2apv1_setup_request_parameterized(E2AP_PDU_t *setup_req_pdu, long ranFuncId, uint8_t* ranFuncDesc, int ranFuncLength); - -void generate_e2apv1_setup_response(E2AP_PDU_t *setup_resp_pdu); - -void generate_e2apv1_subscription_request(E2AP_PDU_t *sub_req_pdu); - -void generate_e2apv1_subscription_response(E2AP_PDU_t *sub_resp_pdu, E2AP_PDU_t *sub_req_pdu); - -void generate_e2apv1_indication_request(E2AP_PDU_t *ind_req_pdu); - -void generate_e2apv1_subscription_response_success(E2AP_PDU *e2ap_pdu, long reqActionIdsAccepted[], long reqActionIdsRejected[], int accept_size, int reject_size, long reqRequestorId, long reqInstanceId); - -void generate_e2apv1_indication_request_parameterized(E2AP_PDU *e2ap_pdu, long requestorId, long instanceId, long ranFunctionId, long actionId, long seqNum, uint8_t *ind_header_buf, int header_length, uint8_t *ind_message_buf, int message_length); - -#endif diff --git a/e2sim/previous/e2apv1sim/ricsim/encode_kpm.cpp b/e2sim/previous/e2apv1sim/ricsim/encode_kpm.cpp deleted file mode 100644 index d518a36..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/encode_kpm.cpp +++ /dev/null @@ -1,1853 +0,0 @@ -#include -#include -#include -#include -#include - -#include "encode_kpm.hpp" - -using namespace std; - -void encode_kpm_function_description(E2SM_KPM_RANfunction_Description_t* ranfunc_desc) { - - printf("kpm0\n"); - - uint8_t *buf = (uint8_t*)"ORAN-E2SM-KPM"; - uint8_t *buf2 = (uint8_t*)"KPM monitor"; - uint8_t *buf3 = (uint8_t*)"OID123"; - - OCTET_STRING_t *sname = (OCTET_STRING_t*)calloc(1, sizeof(OCTET_STRING_t)); - sname->buf = (uint8_t*)calloc(1,13); - - memcpy(sname->buf, buf, 13); - sname->size = strlen((char*)buf); - ranfunc_desc->ranFunction_Name.ranFunction_ShortName = *sname; - - long inst = 1; - - ASN_STRUCT_RESET(asn_DEF_E2SM_KPM_RANfunction_Description, ranfunc_desc); - - // ranfunc_desc->ranFunction_Name.ranFunction_Description = (OCTET_STRING_t*)calloc(1, sizeof(OCTET_STRING_t)); - ranfunc_desc->ranFunction_Name.ranFunction_Description.buf = (uint8_t*)calloc(1,strlen((char*)buf2)); - memcpy(ranfunc_desc->ranFunction_Name.ranFunction_Description.buf, buf2, strlen((char*)buf2)); - ranfunc_desc->ranFunction_Name.ranFunction_Description.size = strlen((char*)buf2); - ranfunc_desc->ranFunction_Name.ranFunction_Instance = &inst; - - printf("kpm0.9\n"); - - // ranfunc_desc->ranFunction_Name.ranFunction_E2SM_OID = (OCTET_STRING_t*)calloc(1, sizeof(OCTET_STRING_t)); - ranfunc_desc->ranFunction_Name.ranFunction_E2SM_OID.buf = (uint8_t*)calloc(1,strlen((char*)buf3)); - memcpy(ranfunc_desc->ranFunction_Name.ranFunction_E2SM_OID.buf, buf3, strlen((char*)buf3)); - ranfunc_desc->ranFunction_Name.ranFunction_E2SM_OID.size = strlen((char*)buf3); - - printf("kpm2\n"); - - - RIC_EventTriggerStyle_List_t *trigger_style = - (RIC_EventTriggerStyle_List_t*)calloc(1, sizeof(RIC_EventTriggerStyle_List_t)); - trigger_style->ric_EventTriggerStyle_Type = 1; - uint8_t *buf4 = (uint8_t*)"Periodic report"; - // trigger_style->ric_EventTriggerStyle_Name = (OCTET_STRING_t*)calloc(1, sizeof(OCTET_STRING_t)); - trigger_style->ric_EventTriggerStyle_Name.buf = (uint8_t*)calloc(1,strlen((char*)buf4)); - memcpy(trigger_style->ric_EventTriggerStyle_Name.buf, buf4, strlen((char*)buf4)); - trigger_style->ric_EventTriggerStyle_Name.size = strlen((char*)buf4); - trigger_style->ric_EventTriggerFormat_Type = 5; - - printf("kpm3\n"); - - ranfunc_desc->e2SM_KPM_RANfunction_Item.ric_EventTriggerStyle_List = - (E2SM_KPM_RANfunction_Description::E2SM_KPM_RANfunction_Description__e2SM_KPM_RANfunction_Item::E2SM_KPM_RANfunction_Description__e2SM_KPM_RANfunction_Item__ric_EventTriggerStyle_List*)calloc(1,sizeof(E2SM_KPM_RANfunction_Description::E2SM_KPM_RANfunction_Description__e2SM_KPM_RANfunction_Item::E2SM_KPM_RANfunction_Description__e2SM_KPM_RANfunction_Item__ric_EventTriggerStyle_List)); - - int ret = ASN_SEQUENCE_ADD(&ranfunc_desc->e2SM_KPM_RANfunction_Item.ric_EventTriggerStyle_List->list , trigger_style); - printf("ret is %d\n", ret); - - RIC_ReportStyle_List_t *report_style1 = (RIC_ReportStyle_List_t*)calloc(1, sizeof(RIC_ReportStyle_List_t)); - report_style1->ric_ReportStyle_Type = 1; - - uint8_t *buf5 = (uint8_t*)"O-DU Measurement Container for the 5GC connected deployment"; - - printf("kpm4\n"); - - // report_style1->ric_ReportStyle_Name = (OCTET_STRING_t*)calloc(1, sizeof(OCTET_STRING_t)); - report_style1->ric_ReportStyle_Name.buf = (uint8_t*)calloc(1,strlen((char*)buf5)); - memcpy(report_style1->ric_ReportStyle_Name.buf, buf5, strlen((char*)buf5)); - report_style1->ric_ReportStyle_Name.size = strlen((char*)buf5); - report_style1->ric_IndicationHeaderFormat_Type = 1; - report_style1->ric_IndicationMessageFormat_Type = 1; - - printf("kpm5\n"); - - RIC_ReportStyle_List_t *report_style2 = (RIC_ReportStyle_List_t*)calloc(1, sizeof(RIC_ReportStyle_List_t)); - report_style2->ric_ReportStyle_Type = 2; - - uint8_t *buf6 = (uint8_t*)"O-DU Measurement Container for the EPC connected deployment"; - - // report_style2->ric_ReportStyle_Name = (OCTET_STRING_t*)calloc(1, sizeof(OCTET_STRING_t)); - - - report_style2->ric_ReportStyle_Name.buf = (uint8_t*)calloc(1,strlen((char*)buf6)); - memcpy(report_style2->ric_ReportStyle_Name.buf, buf6, strlen((char*)buf6)); - report_style2->ric_ReportStyle_Name.size = strlen((char*)buf6); - report_style2->ric_IndicationHeaderFormat_Type = 1; - report_style2->ric_IndicationMessageFormat_Type = 1; - - printf("kpm6\n"); - - RIC_ReportStyle_List_t *report_style3 = (RIC_ReportStyle_List_t*)calloc(1, sizeof(RIC_ReportStyle_List_t)); - report_style3->ric_ReportStyle_Type = 3; - - uint8_t *buf7 = (uint8_t*)"O-CU-CP Measurement Container for the 5GC connected deployment"; - - // report_style3->ric_ReportStyle_Name = (OCTET_STRING_t*)calloc(1, sizeof(OCTET_STRING_t)); - report_style3->ric_ReportStyle_Name.buf = (uint8_t*)calloc(1,strlen((char*)buf7)); - memcpy(report_style3->ric_ReportStyle_Name.buf, buf7, strlen((char*)buf7)); - report_style3->ric_ReportStyle_Name.size = strlen((char*)buf7); - report_style3->ric_IndicationHeaderFormat_Type = 1; - report_style3->ric_IndicationMessageFormat_Type = 1; - - RIC_ReportStyle_List_t *report_style4 = (RIC_ReportStyle_List_t*)calloc(1, sizeof(RIC_ReportStyle_List_t)); - report_style4->ric_ReportStyle_Type = 4; - - uint8_t *buf8 = (uint8_t*)"O-CU-CP Measurement Container for the EPC connected deployment"; - - // report_style3->ric_ReportStyle_Name = (OCTET_STRING_t*)calloc(1, sizeof(OCTET_STRING_t)); - report_style4->ric_ReportStyle_Name.buf = (uint8_t*)calloc(1,strlen((char*)buf8)); - memcpy(report_style4->ric_ReportStyle_Name.buf, buf8, strlen((char*)buf8)); - report_style4->ric_ReportStyle_Name.size = strlen((char*)buf8); - report_style4->ric_IndicationHeaderFormat_Type = 1; - report_style4->ric_IndicationMessageFormat_Type = 1; - - RIC_ReportStyle_List_t *report_style5 = (RIC_ReportStyle_List_t*)calloc(1, sizeof(RIC_ReportStyle_List_t)); - report_style5->ric_ReportStyle_Type = 5; - - uint8_t *buf9 = (uint8_t*)"O-CU-UP Measurement Container for the 5GC connected deployment"; - - // report_style3->ric_ReportStyle_Name = (OCTET_STRING_t*)calloc(1, sizeof(OCTET_STRING_t)); - report_style5->ric_ReportStyle_Name.buf = (uint8_t*)calloc(1,strlen((char*)buf9)); - memcpy(report_style5->ric_ReportStyle_Name.buf, buf9, strlen((char*)buf9)); - report_style5->ric_ReportStyle_Name.size = strlen((char*)buf9); - report_style5->ric_IndicationHeaderFormat_Type = 1; - report_style5->ric_IndicationMessageFormat_Type = 1; - - - RIC_ReportStyle_List_t *report_style6 = (RIC_ReportStyle_List_t*)calloc(1, sizeof(RIC_ReportStyle_List_t)); - report_style6->ric_ReportStyle_Type = 6; - - uint8_t *buf10 = (uint8_t*)"O-CU-UP Measurement Container for the EPC connected deployment"; - - // report_style3->ric_ReportStyle_Name = (OCTET_STRING_t*)calloc(1, sizeof(OCTET_STRING_t)); - report_style6->ric_ReportStyle_Name.buf = (uint8_t*)calloc(1,strlen((char*)buf10)); - memcpy(report_style6->ric_ReportStyle_Name.buf, buf10, strlen((char*)buf10)); - report_style6->ric_ReportStyle_Name.size = strlen((char*)buf10); - report_style6->ric_IndicationHeaderFormat_Type = 1; - report_style6->ric_IndicationMessageFormat_Type = 1; - - - ranfunc_desc->e2SM_KPM_RANfunction_Item.ric_ReportStyle_List = - (E2SM_KPM_RANfunction_Description::E2SM_KPM_RANfunction_Description__e2SM_KPM_RANfunction_Item::E2SM_KPM_RANfunction_Description__e2SM_KPM_RANfunction_Item__ric_ReportStyle_List*)calloc(1,sizeof(E2SM_KPM_RANfunction_Description::E2SM_KPM_RANfunction_Description__e2SM_KPM_RANfunction_Item::E2SM_KPM_RANfunction_Description__e2SM_KPM_RANfunction_Item__ric_ReportStyle_List)); - - ASN_SEQUENCE_ADD(&ranfunc_desc->e2SM_KPM_RANfunction_Item.ric_ReportStyle_List->list, report_style1); - ASN_SEQUENCE_ADD(&ranfunc_desc->e2SM_KPM_RANfunction_Item.ric_ReportStyle_List->list, report_style2); - ASN_SEQUENCE_ADD(&ranfunc_desc->e2SM_KPM_RANfunction_Item.ric_ReportStyle_List->list, report_style3); - ASN_SEQUENCE_ADD(&ranfunc_desc->e2SM_KPM_RANfunction_Item.ric_ReportStyle_List->list, report_style4); - ASN_SEQUENCE_ADD(&ranfunc_desc->e2SM_KPM_RANfunction_Item.ric_ReportStyle_List->list, report_style5); - ASN_SEQUENCE_ADD(&ranfunc_desc->e2SM_KPM_RANfunction_Item.ric_ReportStyle_List->list, report_style6); - - xer_fprint(stderr, &asn_DEF_E2SM_KPM_RANfunction_Description, ranfunc_desc); -} - -void encode_kpm_ocuup_user_level(RAN_Container_t *ranco) { - - uint8_t *buf = (uint8_t*)"2020.06.13 13:01:05.222"; - Timestamp_t *ts = (Timestamp_t*)calloc(1,sizeof(Timestamp_t)); - ts->buf = (uint8_t*)calloc(strlen((char*)buf),1); - ts->size = strlen((char*)buf); - memcpy(ts->buf,buf,ts->size); - - printf("enc1\n"); - - CU_UP_Usage_Report_CellResourceReportItem_t *report_item = - (CU_UP_Usage_Report_CellResourceReportItem_t*)calloc(1,sizeof(CU_UP_Usage_Report_CellResourceReportItem_t)); - - uint8_t *buf2 = (uint8_t*)"747"; - - OCTET_STRING_t *plmnidstr = (OCTET_STRING_t*)calloc(1,sizeof(OCTET_STRING_t)); - plmnidstr->buf = (uint8_t*)calloc(3,1); - plmnidstr->size = 3; - memcpy(plmnidstr->buf, buf2, plmnidstr->size); - - printf("enc2\n"); - - NRCellIdentity_t *nrcellid = (NRCellIdentity_t*)calloc(1,sizeof(NRCellIdentity_t)); - uint8_t* buf3 = (uint8_t*)"12340"; - nrcellid->buf = (uint8_t*)calloc(1,5); - memcpy(nrcellid->buf, buf3, 5); - nrcellid->size = 5; - nrcellid->bits_unused = 4; - - NRCGI *nrcgi = (NRCGI*)calloc(1,sizeof(NRCGI)); - nrcgi->pLMN_Identity = *plmnidstr; - nrcgi->nRCellIdentity = *nrcellid; - - printf("enc3\n"); - - report_item->nRCGI = *nrcgi; - - CU_UP_Usage_Report_UeResourceReportItem *ue_report_item = - (CU_UP_Usage_Report_UeResourceReportItem*)calloc(1,sizeof(CU_UP_Usage_Report_UeResourceReportItem)); - - printf("enc3.2\n"); - - uint8_t* crnti_str = (uint8_t*)"1111"; - OCTET_STRING *crnti = (OCTET_STRING*)calloc(1,sizeof(OCTET_STRING)); - crnti->buf = (uint8_t*)calloc(1,4); - - printf("enc3.3\n"); - - crnti->size = strlen((char*)crnti_str); - - printf("enc3.4\n"); - memcpy(crnti->buf, crnti_str, crnti->size); - - printf("enc4\n"); - - INTEGER_t *bytesdl = (INTEGER_t*)calloc(1, sizeof(INTEGER_t)); - uint8_t buffer[1]; - buffer[0]= 40000; - bytesdl->buf = (uint8_t*)calloc(1,1); - memcpy(bytesdl->buf, buffer,1); - bytesdl->size = 1; - - INTEGER_t *bytesul = (INTEGER_t*)calloc(1, sizeof(INTEGER_t)); - uint8_t buffer1[1]; - buffer1[0] = 50000; - bytesul->buf = (uint8_t*)calloc(1,1); - memcpy(bytesul->buf, buffer1, 1); - bytesul->size = 1; - - - ue_report_item->c_RNTI = *crnti; - ue_report_item->pDCPBytesDL = bytesdl; - ue_report_item->pDCPBytesUL = bytesul; - - - ASN_SEQUENCE_ADD(&report_item->ueResourceReportList.list, ue_report_item); - - ranco->timestamp = *ts; - ranco->reportContainer.present = RAN_Container__reportContainer_PR_oCU_UP_UE; - ASN_SEQUENCE_ADD(&ranco->reportContainer.choice.oCU_UP_UE.cellResourceReportList.list, report_item); - - xer_fprint(stderr, &asn_DEF_RAN_Container, ranco); - -} - -void encode_kpm_ocucp_user_level(RAN_Container_t *ranco, - uint8_t *plmnid_buf, - uint8_t *nrcellid_buf, - uint8_t *crnti_buf, - const uint8_t *serving_buf, - const uint8_t *neighbor_buf) { - uint8_t *buf = (uint8_t*)"2020.06.13 13:01:05.222"; - Timestamp_t *ts = (Timestamp_t*)calloc(1,sizeof(Timestamp_t)); - ts->buf = (uint8_t*)calloc(strlen((char*)buf),1); - ts->size = strlen((char*)buf); - memcpy(ts->buf,buf,ts->size); - - printf("enc1\n"); - - CU_CP_Usage_Report_CellResourceReportItem_t *report_item = - (CU_CP_Usage_Report_CellResourceReportItem_t*)calloc(1,sizeof(CU_CP_Usage_Report_CellResourceReportItem_t)); - - int plmnid_size = strlen((char*)plmnid_buf); - OCTET_STRING_t *plmnidstr = (OCTET_STRING_t*)calloc(1,sizeof(OCTET_STRING_t)); - plmnidstr->buf = (uint8_t*)calloc(plmnid_size,1); - plmnidstr->size = plmnid_size; - memcpy(plmnidstr->buf, plmnid_buf, plmnidstr->size); - - printf("enc2\n"); - - NRCellIdentity_t *nrcellid = (NRCellIdentity_t*)calloc(1,sizeof(NRCellIdentity_t)); - - int nrcellid_size = strlen((char*)nrcellid_buf); - nrcellid->buf = (uint8_t*)calloc(1, nrcellid_size); - memcpy(nrcellid->buf, nrcellid_buf, nrcellid_size); - nrcellid->size = 5; - nrcellid->bits_unused = 4; - - NRCGI *nrcgi = (NRCGI*)calloc(1,sizeof(NRCGI)); - nrcgi->pLMN_Identity = *plmnidstr; - nrcgi->nRCellIdentity = *nrcellid; - - printf("enc3\n"); - - report_item->nRCGI = *nrcgi; - - CU_CP_Usage_Report_UeResourceReportItem *ue_report_item = - (CU_CP_Usage_Report_UeResourceReportItem*)calloc(1,sizeof(CU_CP_Usage_Report_UeResourceReportItem)); - - printf("enc3.2\n"); - - - int crnti_size = strlen((char*)crnti_buf); - OCTET_STRING *crnti = (OCTET_STRING*)calloc(1,sizeof(OCTET_STRING)); - crnti->buf = (uint8_t*)calloc(1, crnti_size); - - printf("enc3.3\n"); - - crnti->size = strlen((char*)crnti_buf); - - printf("enc3.4\n"); - memcpy(crnti->buf, crnti_buf, crnti->size); - - // uint8_t *buf_serving = (uint8_t*)"RSRP10"; - - int serving_buf_len = strlen((char*)serving_buf); - OCTET_STRING_t *servingstr = (OCTET_STRING_t*)calloc(1,sizeof(OCTET_STRING_t)); - servingstr->buf = (uint8_t*)calloc(serving_buf_len,1); - servingstr->size = serving_buf_len; - memcpy(servingstr->buf, serving_buf, servingstr->size); - - - int neighbor_buf_len = strlen((char*)neighbor_buf); - // uint8_t *buf_neighbor = (uint8_t*)"-10,-15"; - OCTET_STRING_t *neighborstr = (OCTET_STRING_t*)calloc(1,sizeof(OCTET_STRING_t)); - ts->buf = (uint8_t*)calloc(neighbor_buf_len,1); - neighborstr->buf = (uint8_t*)calloc(neighbor_buf_len,1); - neighborstr->size = neighbor_buf_len; - memcpy(neighborstr->buf, neighbor_buf, neighborstr->size); - - ue_report_item->c_RNTI = *crnti; - ue_report_item->serving_Cell_RF_Type = servingstr; - ue_report_item->neighbor_Cell_RF = neighborstr; - - - ASN_SEQUENCE_ADD(&report_item->ueResourceReportList.list, ue_report_item); - - ranco->timestamp = *ts; - ranco->reportContainer.present = RAN_Container__reportContainer_PR_oCU_CP_UE; - ASN_SEQUENCE_ADD(&ranco->reportContainer.choice.oCU_CP_UE.cellResourceReportList.list, report_item); - - xer_fprint(stderr, &asn_DEF_RAN_Container, ranco); - - -} - -void encode_kpm_ocucp_user_level(RAN_Container_t *ranco) { - - uint8_t *buf = (uint8_t*)"2020.06.13 13:01:05.222"; - Timestamp_t *ts = (Timestamp_t*)calloc(1,sizeof(Timestamp_t)); - ts->buf = (uint8_t*)calloc(strlen((char*)buf),1); - ts->size = strlen((char*)buf); - memcpy(ts->buf,buf,ts->size); - - printf("enc1\n"); - - CU_CP_Usage_Report_CellResourceReportItem_t *report_item = - (CU_CP_Usage_Report_CellResourceReportItem_t*)calloc(1,sizeof(CU_CP_Usage_Report_CellResourceReportItem_t)); - - uint8_t *buf2 = (uint8_t*)"747"; - - OCTET_STRING_t *plmnidstr = (OCTET_STRING_t*)calloc(1,sizeof(OCTET_STRING_t)); - plmnidstr->buf = (uint8_t*)calloc(3,1); - plmnidstr->size = 3; - memcpy(plmnidstr->buf, buf2, plmnidstr->size); - - printf("enc2\n"); - - NRCellIdentity_t *nrcellid = (NRCellIdentity_t*)calloc(1,sizeof(NRCellIdentity_t)); - uint8_t* buf3 = (uint8_t*)"12340"; - nrcellid->buf = (uint8_t*)calloc(1,5); - memcpy(nrcellid->buf, buf3, 5); - nrcellid->size = 5; - nrcellid->bits_unused = 4; - - NRCGI *nrcgi = (NRCGI*)calloc(1,sizeof(NRCGI)); - nrcgi->pLMN_Identity = *plmnidstr; - nrcgi->nRCellIdentity = *nrcellid; - - printf("enc3\n"); - - report_item->nRCGI = *nrcgi; - - CU_CP_Usage_Report_UeResourceReportItem *ue_report_item = - (CU_CP_Usage_Report_UeResourceReportItem*)calloc(1,sizeof(CU_CP_Usage_Report_UeResourceReportItem)); - - printf("enc3.2\n"); - - uint8_t* crnti_str = (uint8_t*)"1111"; - OCTET_STRING *crnti = (OCTET_STRING*)calloc(1,sizeof(OCTET_STRING)); - crnti->buf = (uint8_t*)calloc(1,4); - - printf("enc3.3\n"); - - crnti->size = strlen((char*)crnti_str); - - printf("enc3.4\n"); - memcpy(crnti->buf, crnti_str, crnti->size); - - uint8_t *buf_serving = (uint8_t*)"RSRP10"; - OCTET_STRING_t *servingstr = (OCTET_STRING_t*)calloc(1,sizeof(OCTET_STRING_t)); - servingstr->buf = (uint8_t*)calloc(6,1); - servingstr->size = 6; - memcpy(servingstr->buf, buf_serving, servingstr->size); - - uint8_t *buf_neighbor = (uint8_t*)"-10,-15"; - OCTET_STRING_t *neighborstr = (OCTET_STRING_t*)calloc(1,sizeof(OCTET_STRING_t)); - neighborstr->buf = (uint8_t*)calloc(7,1); - neighborstr->size = 7; - memcpy(neighborstr->buf, buf_neighbor, neighborstr->size); - - ue_report_item->c_RNTI = *crnti; - ue_report_item->serving_Cell_RF_Type = servingstr; - ue_report_item->neighbor_Cell_RF = neighborstr; - - - ASN_SEQUENCE_ADD(&report_item->ueResourceReportList.list, ue_report_item); - - ranco->timestamp = *ts; - ranco->reportContainer.present = RAN_Container__reportContainer_PR_oCU_CP_UE; - ASN_SEQUENCE_ADD(&ranco->reportContainer.choice.oCU_CP_UE.cellResourceReportList.list, report_item); - - xer_fprint(stderr, &asn_DEF_RAN_Container, ranco); - -} - - -void encode_kpm_odu_user_level(RAN_Container_t *ranco) { - - uint8_t *buf = (uint8_t*)"2020.06.13 13:01:05.222"; - Timestamp_t *ts = (Timestamp_t*)calloc(1,sizeof(Timestamp_t)); - ts->buf = (uint8_t*)calloc(strlen((char*)buf),1); - ts->size = strlen((char*)buf); - memcpy(ts->buf,buf,ts->size); - - printf("enc1\n"); - - DU_Usage_Report_CellResourceReportItem_t *report_item = - (DU_Usage_Report_CellResourceReportItem_t*)calloc(1,sizeof(DU_Usage_Report_CellResourceReportItem_t)); - - uint8_t *buf2 = (uint8_t*)"747"; - - OCTET_STRING_t *plmnidstr = (OCTET_STRING_t*)calloc(1,sizeof(OCTET_STRING_t)); - plmnidstr->buf = (uint8_t*)calloc(3,1); - plmnidstr->size = 3; - memcpy(plmnidstr->buf, buf2, plmnidstr->size); - - printf("enc2\n"); - - NRCellIdentity_t *nrcellid = (NRCellIdentity_t*)calloc(1,sizeof(NRCellIdentity_t)); - uint8_t* buf3 = (uint8_t*)"12340"; - nrcellid->buf = (uint8_t*)calloc(1,5); - memcpy(nrcellid->buf, buf3, 5); - nrcellid->size = 5; - nrcellid->bits_unused = 4; - - NRCGI *nrcgi = (NRCGI*)calloc(1,sizeof(NRCGI)); - nrcgi->pLMN_Identity = *plmnidstr; - nrcgi->nRCellIdentity = *nrcellid; - - printf("enc3\n"); - - report_item->nRCGI = *nrcgi; - - printf("enc3.1\n"); - - DU_Usage_Report_UeResourceReportItem *ue_report_item = - (DU_Usage_Report_UeResourceReportItem*)calloc(1,sizeof(DU_Usage_Report_UeResourceReportItem)); - - printf("enc3.2\n"); - - uint8_t* crnti_str = (uint8_t*)"1111"; - OCTET_STRING *crnti = (OCTET_STRING*)calloc(1,sizeof(OCTET_STRING)); - crnti->buf = (uint8_t*)calloc(1,4); - - printf("enc3.3\n"); - - crnti->size = strlen((char*)crnti_str); - - printf("enc3.4\n"); - memcpy(crnti->buf, crnti_str, crnti->size); - - printf("enc4\n"); - - long lval1 = 2; - long lval2 = 1; - - ue_report_item->c_RNTI = *crnti; - ue_report_item->dl_PRBUsage = &lval1; - - printf("enc5\n"); - - ue_report_item->ul_PRBUsage = &lval2; - - printf("enc6\n"); - - ASN_SEQUENCE_ADD(&report_item->ueResourceReportList.list, ue_report_item); - - - ranco->timestamp = *ts; - ranco->reportContainer.present = RAN_Container__reportContainer_PR_oDU_UE; - ASN_SEQUENCE_ADD(&ranco->reportContainer.choice.oDU_UE.cellResourceReportList.list, report_item); - - xer_fprint(stderr, &asn_DEF_RAN_Container, ranco); - - -} - -void encode_kpm_report_rancontainer_du(E2SM_KPM_IndicationMessage_t* indicationmessage) { - - RAN_Container_t *ranco = (RAN_Container_t*)calloc(1,sizeof(RAN_Container_t)); - encode_kpm_odu_user_level(ranco); - - PM_Containers_List_t *containers_list = (PM_Containers_List_t*)calloc(1, sizeof(PM_Containers_List_t)); - ASN_STRUCT_RESET(asn_DEF_PM_Containers_List, containers_list); - containers_list->theRANContainer = ranco; - - E2SM_KPM_IndicationMessage_Format1_t *format = - (E2SM_KPM_IndicationMessage_Format1_t*)calloc(1, sizeof(E2SM_KPM_IndicationMessage_Format1_t)); - ASN_STRUCT_RESET(asn_DEF_E2SM_KPM_IndicationMessage_Format1, format); - - int ret = ASN_SEQUENCE_ADD(&format->pm_Containers.list, containers_list); - - E2SM_KPM_IndicationMessage__indicationMessage_PR pres = E2SM_KPM_IndicationMessage__indicationMessage_PR_indicationMessage_Format1; - - indicationmessage->indicationMessage.present = pres; - - indicationmessage->indicationMessage.choice.indicationMessage_Format1 = *format; - - char *error_buf = (char*)calloc(300, sizeof(char)); - size_t errlen; - - asn_check_constraints(&asn_DEF_E2SM_KPM_IndicationMessage, indicationmessage, error_buf, &errlen); - printf("error length %d\n", errlen); - printf("error buf %s\n", error_buf); - - xer_fprint(stderr, &asn_DEF_E2SM_KPM_IndicationMessage, indicationmessage); - - asn_codec_ctx_t *opt_cod; - - uint8_t e2smbuffer[8192]; - size_t e2smbuffer_size = 8192; - - uint8_t e2smbuffer2[8192]; - size_t e2smbuffer_size2 = 8192; - - asn_enc_rval_t er = - asn_encode_to_buffer(opt_cod, - ATS_ALIGNED_BASIC_PER, - &asn_DEF_E2SM_KPM_IndicationMessage, - indicationmessage, e2smbuffer, e2smbuffer_size); - - fprintf(stderr, "er encded is %d\n", er.encoded); - fprintf(stderr, "after encoding message\n"); - - -} - -void encode_kpm_report_rancontainer_cucp_parameterized(E2SM_KPM_IndicationMessage_t* indicationmessage, - uint8_t *plmnid_buf, - uint8_t *nrcellid_buf, - uint8_t *crnti_buf, - const uint8_t *serving_buf, - const uint8_t *neighbor_buf) { - - RAN_Container_t *ranco = (RAN_Container_t*)calloc(1,sizeof(RAN_Container_t)); - encode_kpm_ocucp_user_level(ranco, plmnid_buf, - nrcellid_buf, crnti_buf, - serving_buf, neighbor_buf); - - PM_Containers_List_t *containers_list = (PM_Containers_List_t*)calloc(1, sizeof(PM_Containers_List_t)); - ASN_STRUCT_RESET(asn_DEF_PM_Containers_List, containers_list); - containers_list->theRANContainer = ranco; - - E2SM_KPM_IndicationMessage_Format1_t *format = - (E2SM_KPM_IndicationMessage_Format1_t*)calloc(1, sizeof(E2SM_KPM_IndicationMessage_Format1_t)); - ASN_STRUCT_RESET(asn_DEF_E2SM_KPM_IndicationMessage_Format1, format); - - int ret = ASN_SEQUENCE_ADD(&format->pm_Containers.list, containers_list); - - E2SM_KPM_IndicationMessage__indicationMessage_PR pres = E2SM_KPM_IndicationMessage__indicationMessage_PR_indicationMessage_Format1; - - indicationmessage->indicationMessage.present = pres; - - indicationmessage->indicationMessage.choice.indicationMessage_Format1 = *format; - - char *error_buf = (char*)calloc(300, sizeof(char)); - size_t errlen; - - asn_check_constraints(&asn_DEF_E2SM_KPM_IndicationMessage, indicationmessage, error_buf, &errlen); - printf("error length %d\n", errlen); - printf("error buf %s\n", error_buf); - - xer_fprint(stderr, &asn_DEF_E2SM_KPM_IndicationMessage, indicationmessage); - - asn_codec_ctx_t *opt_cod; - - uint8_t e2smbuffer[8192]; - size_t e2smbuffer_size = 8192; - - uint8_t e2smbuffer2[8192]; - size_t e2smbuffer_size2 = 8192; - - asn_enc_rval_t er = - asn_encode_to_buffer(opt_cod, - ATS_ALIGNED_BASIC_PER, - &asn_DEF_E2SM_KPM_IndicationMessage, - indicationmessage, e2smbuffer, e2smbuffer_size); - - fprintf(stderr, "er encded is %d\n", er.encoded); - fprintf(stderr, "after encoding message\n"); - -} - - -void encode_kpm_report_rancontainer_cucp(E2SM_KPM_IndicationMessage_t* indicationmessage) { - - RAN_Container_t *ranco = (RAN_Container_t*)calloc(1,sizeof(RAN_Container_t)); - encode_kpm_ocucp_user_level(ranco); - - PM_Containers_List_t *containers_list = (PM_Containers_List_t*)calloc(1, sizeof(PM_Containers_List_t)); - ASN_STRUCT_RESET(asn_DEF_PM_Containers_List, containers_list); - containers_list->theRANContainer = ranco; - - E2SM_KPM_IndicationMessage_Format1_t *format = - (E2SM_KPM_IndicationMessage_Format1_t*)calloc(1, sizeof(E2SM_KPM_IndicationMessage_Format1_t)); - ASN_STRUCT_RESET(asn_DEF_E2SM_KPM_IndicationMessage_Format1, format); - - int ret = ASN_SEQUENCE_ADD(&format->pm_Containers.list, containers_list); - - E2SM_KPM_IndicationMessage__indicationMessage_PR pres = E2SM_KPM_IndicationMessage__indicationMessage_PR_indicationMessage_Format1; - - indicationmessage->indicationMessage.present = pres; - - indicationmessage->indicationMessage.choice.indicationMessage_Format1 = *format; - - char *error_buf = (char*)calloc(300, sizeof(char)); - size_t errlen; - - asn_check_constraints(&asn_DEF_E2SM_KPM_IndicationMessage, indicationmessage, error_buf, &errlen); - printf("error length %d\n", errlen); - printf("error buf %s\n", error_buf); - - xer_fprint(stderr, &asn_DEF_E2SM_KPM_IndicationMessage, indicationmessage); - - asn_codec_ctx_t *opt_cod; - - uint8_t e2smbuffer[8192]; - size_t e2smbuffer_size = 8192; - - uint8_t e2smbuffer2[8192]; - size_t e2smbuffer_size2 = 8192; - - asn_enc_rval_t er = - asn_encode_to_buffer(opt_cod, - ATS_ALIGNED_BASIC_PER, - &asn_DEF_E2SM_KPM_IndicationMessage, - indicationmessage, e2smbuffer, e2smbuffer_size); - - fprintf(stderr, "er encded is %d\n", er.encoded); - fprintf(stderr, "after encoding message\n"); - - -} - -void encode_kpm_report_rancontainer_cuup_parameterized(E2SM_KPM_IndicationMessage_t* indicationmessage, - uint8_t *plmnid_buf, - uint8_t *nrcellid_buf, - uint8_t *crnti_buf, - int pdcp_bytesdl, - int pdcp_bytesul) { - - -} - -void encode_kpm_report_rancontainer_cuup(E2SM_KPM_IndicationMessage_t* indicationmessage) { - - RAN_Container_t *ranco = (RAN_Container_t*)calloc(1,sizeof(RAN_Container_t)); - //encode_kpm_ocuup_user_level(ranco); - - - uint8_t *buf = (uint8_t*)"2020.06.13 13:01:05.222"; - Timestamp_t *ts = (Timestamp_t*)calloc(1,sizeof(Timestamp_t)); - ts->buf = (uint8_t*)calloc(strlen((char*)buf),1); - ts->size = strlen((char*)buf); - memcpy(ts->buf,buf,ts->size); - - printf("enc1\n"); - - CU_CP_Usage_Report_CellResourceReportItem_t *report_item = - (CU_CP_Usage_Report_CellResourceReportItem_t*)calloc(1,sizeof(CU_CP_Usage_Report_CellResourceReportItem_t)); - - uint8_t *buf2 = (uint8_t*)"747"; - - OCTET_STRING_t *plmnidstr = (OCTET_STRING_t*)calloc(1,sizeof(OCTET_STRING_t)); - plmnidstr->buf = (uint8_t*)calloc(3,1); - plmnidstr->size = 3; - memcpy(plmnidstr->buf, buf2, plmnidstr->size); - - printf("enc2\n"); - - NRCellIdentity_t *nrcellid = (NRCellIdentity_t*)calloc(1,sizeof(NRCellIdentity_t)); - uint8_t* buf3 = (uint8_t*)"12340"; - nrcellid->buf = (uint8_t*)calloc(1,5); - memcpy(nrcellid->buf, buf3, 5); - nrcellid->size = 5; - nrcellid->bits_unused = 4; - - NRCGI *nrcgi = (NRCGI*)calloc(1,sizeof(NRCGI)); - nrcgi->pLMN_Identity = *plmnidstr; - nrcgi->nRCellIdentity = *nrcellid; - - printf("enc3\n"); - - report_item->nRCGI = *nrcgi; - - CU_CP_Usage_Report_UeResourceReportItem *ue_report_item = - (CU_CP_Usage_Report_UeResourceReportItem*)calloc(1,sizeof(CU_CP_Usage_Report_UeResourceReportItem)); - - printf("enc3.2\n"); - - uint8_t* crnti_str = (uint8_t*)"1111"; - OCTET_STRING *crnti = (OCTET_STRING*)calloc(1,sizeof(OCTET_STRING)); - crnti->buf = (uint8_t*)calloc(1,4); - - printf("enc3.3\n"); - - crnti->size = strlen((char*)crnti_str); - - printf("enc3.4\n"); - memcpy(crnti->buf, crnti_str, crnti->size); - - uint8_t *buf_serving = (uint8_t*)"RSRP10"; - OCTET_STRING_t *servingstr = (OCTET_STRING_t*)calloc(1,sizeof(OCTET_STRING_t)); - servingstr->buf = (uint8_t*)calloc(6,1); - servingstr->size = 6; - memcpy(servingstr->buf, buf_serving, servingstr->size); - - uint8_t *buf_neighbor = (uint8_t*)"-10,-15"; - OCTET_STRING_t *neighborstr = (OCTET_STRING_t*)calloc(1,sizeof(OCTET_STRING_t)); - neighborstr->buf = (uint8_t*)calloc(7,1); - neighborstr->size = 7; - memcpy(neighborstr->buf, buf_neighbor, neighborstr->size); - - ue_report_item->c_RNTI = *crnti; - ue_report_item->serving_Cell_RF_Type = servingstr; - ue_report_item->neighbor_Cell_RF = neighborstr; - - - ASN_SEQUENCE_ADD(&report_item->ueResourceReportList.list, ue_report_item); - - ranco->timestamp = *ts; - ranco->reportContainer.present = RAN_Container__reportContainer_PR_oCU_CP_UE; - ASN_SEQUENCE_ADD(&ranco->reportContainer.choice.oCU_CP_UE.cellResourceReportList.list, report_item); - - // xer_fprint(stderr, &asn_DEF_RAN_Container, ranco); - - - PM_Containers_List_t *containers_list = (PM_Containers_List_t*)calloc(1, sizeof(PM_Containers_List_t)); - ASN_STRUCT_RESET(asn_DEF_PM_Containers_List, containers_list); - containers_list->theRANContainer = ranco; - - E2SM_KPM_IndicationMessage_Format1_t *format = - (E2SM_KPM_IndicationMessage_Format1_t*)calloc(1, sizeof(E2SM_KPM_IndicationMessage_Format1_t)); - ASN_STRUCT_RESET(asn_DEF_E2SM_KPM_IndicationMessage_Format1, format); - - int ret = ASN_SEQUENCE_ADD(&format->pm_Containers.list, containers_list); - - E2SM_KPM_IndicationMessage__indicationMessage_PR pres = E2SM_KPM_IndicationMessage__indicationMessage_PR_indicationMessage_Format1; - - indicationmessage->indicationMessage.present = pres; - - indicationmessage->indicationMessage.choice.indicationMessage_Format1 = *format; - - char *error_buf = (char*)calloc(300, sizeof(char)); - size_t errlen; - - asn_check_constraints(&asn_DEF_E2SM_KPM_IndicationMessage, indicationmessage, error_buf, &errlen); - printf("error length %d\n", errlen); - printf("error buf %s\n", error_buf); - - xer_fprint(stderr, &asn_DEF_E2SM_KPM_IndicationMessage, indicationmessage); - - asn_codec_ctx_t *opt_cod; - - uint8_t e2smbuffer[8192]; - size_t e2smbuffer_size = 8192; - - uint8_t e2smbuffer2[8192]; - size_t e2smbuffer_size2 = 8192; - - asn_enc_rval_t er = - asn_encode_to_buffer(opt_cod, - ATS_ALIGNED_BASIC_PER, - &asn_DEF_E2SM_KPM_IndicationMessage, - indicationmessage, e2smbuffer, e2smbuffer_size); - - fprintf(stderr, "er encded is %d\n", er.encoded); - fprintf(stderr, "after encoding message\n"); - - -} - -void encode_kpm_report_style1_parameterized(E2SM_KPM_IndicationMessage_t* indicationmessage, - long fiveqi, - long dl_prb_usage, - long ul_prb_usage, - uint8_t* sd_buf, - uint8_t* sst_buf, - uint8_t* plmnid_buf, - uint8_t* nrcellid_buf, - long *dl_prbs, - long *ul_prbs) { - - - asn_codec_ctx_t *opt_cod; - - FQIPERSlicesPerPlmnPerCellListItem_t *fqi_item = - (FQIPERSlicesPerPlmnPerCellListItem_t*)calloc(1,sizeof(FQIPERSlicesPerPlmnPerCellListItem_t)); - fqi_item->fiveQI = fiveqi; - fqi_item->dl_PRBUsage = &dl_prb_usage; - fqi_item->ul_PRBUsage = &ul_prb_usage; - - uint8_t *buf1 = (uint8_t*)"4"; - OCTET_STRING_t *sst = (OCTET_STRING_t*)calloc(1, sizeof(OCTET_STRING_t)); - sst->size = 6; - sst->buf = (uint8_t*)calloc(1,6); - memcpy(sst->buf,buf1,sst->size); - - // std::string sd = "SD1"; - // std::vector sdvec(sd.begin(), sd.end()); - // uint8_t *bufz = &sdvec[0]; - uint8_t *bufz = (uint8_t*)"SD1"; - OCTET_STRING_t *sds = (OCTET_STRING_t*)calloc(1, sizeof(OCTET_STRING_t)); - sds->size = 3; - sds->buf = (uint8_t*)calloc(1,3); - memcpy(sds->buf, bufz, sds->size); - - - SNSSAI_t *snssai = (SNSSAI_t*)calloc(1, sizeof(SNSSAI_t)); - ASN_STRUCT_RESET(asn_DEF_SNSSAI,snssai); - snssai->sST.buf = (uint8_t*)calloc(1,1); - snssai->sST.size = 1; - memcpy(snssai->sST.buf, sst_buf, 1); - snssai->sD = (OCTET_STRING_t*)calloc(1, sizeof(OCTET_STRING_t)); - snssai->sD->buf = (uint8_t*)calloc(1,3); - snssai->sD->size = 3; - memcpy(snssai->sD->buf, sd_buf, 3); - - - SlicePerPlmnPerCellListItem_t *sliceitem = - (SlicePerPlmnPerCellListItem_t*)calloc(1,sizeof(SlicePerPlmnPerCellListItem_t)); - sliceitem->sliceID = *snssai; - ASN_SEQUENCE_ADD(&sliceitem->fQIPERSlicesPerPlmnPerCellList.list, fqi_item); - - uint8_t *buf2 = (uint8_t*)"747"; - - OCTET_STRING_t *plmnid = (OCTET_STRING_t*)calloc(1,sizeof(OCTET_STRING_t)); - plmnid->buf = (uint8_t*)calloc(3,1); - plmnid->size = 3; - memcpy(plmnid->buf, plmnid_buf, plmnid->size); - - ServedPlmnPerCellListItem_t *percellitem1 = - (ServedPlmnPerCellListItem_t*)calloc(1,sizeof(ServedPlmnPerCellListItem_t)); - percellitem1->pLMN_Identity = *plmnid; - percellitem1->du_PM_5GC = (FGC_DU_PM_Container*)calloc(1,sizeof(FGC_DU_PM_Container)); - ASN_SEQUENCE_ADD(&percellitem1->du_PM_5GC->slicePerPlmnPerCellList.list, sliceitem); - - OCTET_STRING_t *plmnidstr = (OCTET_STRING_t*)calloc(1,sizeof(OCTET_STRING_t)); - plmnidstr->buf = (uint8_t*)calloc(3,1); - plmnidstr->size = 3; - memcpy(plmnidstr->buf, plmnid_buf, plmnidstr->size); - - printf("enc2\n"); - - NRCellIdentity_t *nrcellid = (NRCellIdentity_t*)calloc(1,sizeof(NRCellIdentity_t)); - uint8_t* buf3 = (uint8_t*)"12340"; - nrcellid->buf = (uint8_t*)calloc(1,5); - memcpy(nrcellid->buf, nrcellid_buf, 5); - nrcellid->size = 5; - nrcellid->bits_unused = 4; - - NRCGI *nrcgi = (NRCGI*)calloc(1,sizeof(NRCGI)); - nrcgi->pLMN_Identity = *plmnidstr; - nrcgi->nRCellIdentity = *nrcellid; - - - CellResourceReportListItem_t *listitem1 = (CellResourceReportListItem_t*)calloc(1,sizeof(CellResourceReportListItem_t)); - listitem1->nRCGI = *nrcgi; - listitem1->dl_TotalofAvailablePRBs = dl_prbs; - listitem1->ul_TotalofAvailablePRBs = ul_prbs; - ASN_SEQUENCE_ADD(&listitem1->servedPlmnPerCellList.list, percellitem1); - - - ODU_PF_Container_t *ducont = (ODU_PF_Container_t*)calloc(1,sizeof(ODU_PF_Container_t)); - ASN_STRUCT_RESET(asn_DEF_ODU_PF_Container, ducont); - int ret = ASN_SEQUENCE_ADD(&ducont->cellResourceReportList.list, listitem1); - - PF_Container_PR pres1 = PF_Container_PR_oDU; - - PF_Container_t *pfcontainer = (PF_Container_t*)calloc(1, sizeof(PF_Container_t)); - ASN_STRUCT_RESET(asn_DEF_PF_Container, pfcontainer); - pfcontainer->present = pres1; - pfcontainer->choice.oDU = *ducont; - - PM_Containers_List_t *containers_list = (PM_Containers_List_t*)calloc(1, sizeof(PM_Containers_List_t)); - ASN_STRUCT_RESET(asn_DEF_PM_Containers_List, containers_list); - containers_list->performanceContainer = pfcontainer; - - E2SM_KPM_IndicationMessage_Format1_t *format = - (E2SM_KPM_IndicationMessage_Format1_t*)calloc(1, sizeof(E2SM_KPM_IndicationMessage_Format1_t)); - ASN_STRUCT_RESET(asn_DEF_E2SM_KPM_IndicationMessage_Format1, format); - - ret = ASN_SEQUENCE_ADD(&format->pm_Containers.list, containers_list); - - E2SM_KPM_IndicationMessage__indicationMessage_PR pres = E2SM_KPM_IndicationMessage__indicationMessage_PR_indicationMessage_Format1; - - indicationmessage->indicationMessage.present = pres; - - indicationmessage->indicationMessage.choice.indicationMessage_Format1 = *format; - - char *error_buf = (char*)calloc(300, sizeof(char)); - size_t errlen; - - asn_check_constraints(&asn_DEF_E2SM_KPM_IndicationMessage, indicationmessage, error_buf, &errlen); - printf("error length %d\n", errlen); - printf("error buf %s\n", error_buf); - - xer_fprint(stderr, &asn_DEF_E2SM_KPM_IndicationMessage, indicationmessage); - - - uint8_t e2smbuffer[8192]; - size_t e2smbuffer_size = 8192; - - uint8_t e2smbuffer2[8192]; - size_t e2smbuffer_size2 = 8192; - - asn_enc_rval_t er = - asn_encode_to_buffer(opt_cod, - ATS_ALIGNED_BASIC_PER, - &asn_DEF_E2SM_KPM_IndicationMessage, - indicationmessage, e2smbuffer, e2smbuffer_size); - - fprintf(stderr, "er encded is %d\n", er.encoded); - fprintf(stderr, "after encoding message\n"); - - -} - - -void encode_kpm_report_style1(E2SM_KPM_IndicationMessage_t* indicationmessage) { - - long fiveqi = 8; - long dl_prb_usage = 50; - long ul_prb_usage = 70; - - asn_codec_ctx_t *opt_cod; - - FQIPERSlicesPerPlmnPerCellListItem_t *fqi_item = - (FQIPERSlicesPerPlmnPerCellListItem_t*)calloc(1,sizeof(FQIPERSlicesPerPlmnPerCellListItem_t)); - fqi_item->fiveQI = fiveqi; - fqi_item->dl_PRBUsage = &dl_prb_usage; - fqi_item->ul_PRBUsage = &ul_prb_usage; - - uint8_t *buf1 = (uint8_t*)"4"; - OCTET_STRING_t *sst = (OCTET_STRING_t*)calloc(1, sizeof(OCTET_STRING_t)); - sst->size = 6; - sst->buf = (uint8_t*)calloc(1,6); - memcpy(sst->buf,buf1,sst->size); - - // std::string sd = "SD1"; - // std::vector sdvec(sd.begin(), sd.end()); - // uint8_t *bufz = &sdvec[0]; - uint8_t *bufz = (uint8_t*)"SD1"; - OCTET_STRING_t *sds = (OCTET_STRING_t*)calloc(1, sizeof(OCTET_STRING_t)); - sds->size = 3; - sds->buf = (uint8_t*)calloc(1,3); - memcpy(sds->buf, bufz, sds->size); - - - SNSSAI_t *snssai = (SNSSAI_t*)calloc(1, sizeof(SNSSAI_t)); - ASN_STRUCT_RESET(asn_DEF_SNSSAI,snssai); - snssai->sST.buf = (uint8_t*)calloc(1,1); - snssai->sST.size = 1; - memcpy(snssai->sST.buf, buf1, 1); - snssai->sD = (OCTET_STRING_t*)calloc(1, sizeof(OCTET_STRING_t)); - snssai->sD->buf = (uint8_t*)calloc(1,3); - snssai->sD->size = 3; - memcpy(snssai->sD->buf, bufz, 3); - - - SlicePerPlmnPerCellListItem_t *sliceitem = - (SlicePerPlmnPerCellListItem_t*)calloc(1,sizeof(SlicePerPlmnPerCellListItem_t)); - sliceitem->sliceID = *snssai; - ASN_SEQUENCE_ADD(&sliceitem->fQIPERSlicesPerPlmnPerCellList.list, fqi_item); - - uint8_t *buf2 = (uint8_t*)"747"; - - OCTET_STRING_t *plmnid = (OCTET_STRING_t*)calloc(1,sizeof(OCTET_STRING_t)); - plmnid->buf = (uint8_t*)calloc(3,1); - plmnid->size = 3; - memcpy(plmnid->buf, buf2, plmnid->size); - - ServedPlmnPerCellListItem_t *percellitem1 = - (ServedPlmnPerCellListItem_t*)calloc(1,sizeof(ServedPlmnPerCellListItem_t)); - percellitem1->pLMN_Identity = *plmnid; - percellitem1->du_PM_5GC = (FGC_DU_PM_Container*)calloc(1,sizeof(FGC_DU_PM_Container)); - ASN_SEQUENCE_ADD(&percellitem1->du_PM_5GC->slicePerPlmnPerCellList.list, sliceitem); - - OCTET_STRING_t *plmnidstr = (OCTET_STRING_t*)calloc(1,sizeof(OCTET_STRING_t)); - plmnidstr->buf = (uint8_t*)calloc(3,1); - plmnidstr->size = 3; - memcpy(plmnidstr->buf, buf2, plmnidstr->size); - - printf("enc2\n"); - - NRCellIdentity_t *nrcellid = (NRCellIdentity_t*)calloc(1,sizeof(NRCellIdentity_t)); - uint8_t* buf3 = (uint8_t*)"12340"; - nrcellid->buf = (uint8_t*)calloc(1,5); - memcpy(nrcellid->buf, buf3, 5); - nrcellid->size = 5; - nrcellid->bits_unused = 4; - - NRCGI *nrcgi = (NRCGI*)calloc(1,sizeof(NRCGI)); - nrcgi->pLMN_Identity = *plmnidstr; - nrcgi->nRCellIdentity = *nrcellid; - - long dl_prbs = (long)100; - long ul_prbs = (long)120; - - CellResourceReportListItem_t *listitem1 = (CellResourceReportListItem_t*)calloc(1,sizeof(CellResourceReportListItem_t)); - listitem1->nRCGI = *nrcgi; - listitem1->dl_TotalofAvailablePRBs = &dl_prbs; - listitem1->ul_TotalofAvailablePRBs = &ul_prbs; - ASN_SEQUENCE_ADD(&listitem1->servedPlmnPerCellList.list, percellitem1); - - - ODU_PF_Container_t *ducont = (ODU_PF_Container_t*)calloc(1,sizeof(ODU_PF_Container_t)); - ASN_STRUCT_RESET(asn_DEF_ODU_PF_Container, ducont); - int ret = ASN_SEQUENCE_ADD(&ducont->cellResourceReportList.list, listitem1); - - PF_Container_PR pres1 = PF_Container_PR_oDU; - - PF_Container_t *pfcontainer = (PF_Container_t*)calloc(1, sizeof(PF_Container_t)); - ASN_STRUCT_RESET(asn_DEF_PF_Container, pfcontainer); - pfcontainer->present = pres1; - pfcontainer->choice.oDU = *ducont; - - PM_Containers_List_t *containers_list = (PM_Containers_List_t*)calloc(1, sizeof(PM_Containers_List_t)); - ASN_STRUCT_RESET(asn_DEF_PM_Containers_List, containers_list); - containers_list->performanceContainer = pfcontainer; - - E2SM_KPM_IndicationMessage_Format1_t *format = - (E2SM_KPM_IndicationMessage_Format1_t*)calloc(1, sizeof(E2SM_KPM_IndicationMessage_Format1_t)); - ASN_STRUCT_RESET(asn_DEF_E2SM_KPM_IndicationMessage_Format1, format); - - ret = ASN_SEQUENCE_ADD(&format->pm_Containers.list, containers_list); - - E2SM_KPM_IndicationMessage__indicationMessage_PR pres = E2SM_KPM_IndicationMessage__indicationMessage_PR_indicationMessage_Format1; - - indicationmessage->indicationMessage.present = pres; - - indicationmessage->indicationMessage.choice.indicationMessage_Format1 = *format; - - char *error_buf = (char*)calloc(300, sizeof(char)); - size_t errlen; - - asn_check_constraints(&asn_DEF_E2SM_KPM_IndicationMessage, indicationmessage, error_buf, &errlen); - printf("error length %d\n", errlen); - printf("error buf %s\n", error_buf); - - xer_fprint(stderr, &asn_DEF_E2SM_KPM_IndicationMessage, indicationmessage); - - - uint8_t e2smbuffer[8192]; - size_t e2smbuffer_size = 8192; - - uint8_t e2smbuffer2[8192]; - size_t e2smbuffer_size2 = 8192; - - asn_enc_rval_t er = - asn_encode_to_buffer(opt_cod, - ATS_ALIGNED_BASIC_PER, - &asn_DEF_E2SM_KPM_IndicationMessage, - indicationmessage, e2smbuffer, e2smbuffer_size); - - fprintf(stderr, "er encded is %d\n", er.encoded); - fprintf(stderr, "after encoding message\n"); - - -} - -void encode_kpm_report_style5_parameterized(E2SM_KPM_IndicationMessage_t* indicationmessage, - uint8_t *gnbcuupname_buf, - int bytes_dl, - int bytes_ul, - uint8_t *sst_buf, - uint8_t *sd_buf, - uint8_t *plmnid_buf) { - - ASN_STRUCT_RESET(asn_DEF_E2SM_KPM_IndicationMessage, indicationmessage); - - - // uint8_t *buf = (uint8_t*)"GNBCUUP5"; - OCTET_STRING_t *gnbcuupname = (OCTET_STRING_t*)calloc(1, sizeof(OCTET_STRING_t)); - gnbcuupname->size = 8; - gnbcuupname->buf = (uint8_t*)calloc(1,8); - memcpy(gnbcuupname->buf, gnbcuupname_buf, gnbcuupname->size); - - - //We need to convert bytes_dl into array of uint8_t - - int array_size_dl; - - INTEGER_t *bytesdl = (INTEGER_t*)calloc(1, sizeof(INTEGER_t)); - - if (bytes_dl <= 64) { - array_size_dl = 1; - - uint8_t buffer[array_size_dl]; - buffer[0] = bytes_dl & 0xFF; - bytesdl->buf = (uint8_t*)calloc(1,1); - memcpy(bytesdl->buf,buffer,1); - bytesdl->size = 1; - - } else if (bytes_dl <= 16384) { - array_size_dl = 2; - - uint8_t buffer[array_size_dl]; - buffer[0] = (bytes_dl >> 8) & 0xFF; - buffer[1] = bytes_dl & 0xFF; - bytesdl->buf = (uint8_t*)calloc(2,1); - memcpy(bytesdl->buf,buffer,2); - bytesdl->size = 2; - - } else if (bytes_dl <= 4194304) { - array_size_dl = 3; - - uint8_t buffer[array_size_dl]; - buffer[0] = (bytes_dl >> 16) & 0xFF; - buffer[1] = (bytes_dl >> 8) & 0xFF; - buffer[2] = bytes_dl & 0xFF; - bytesdl->buf = (uint8_t*)calloc(3,1); - memcpy(bytesdl->buf,buffer,3); - bytesdl->size = 3; - - } else if (bytes_dl <= 1073741824) { - array_size_dl = 4; - uint8_t buffer[array_size_dl]; - buffer[0] = (bytes_dl >> 24) & 0xFF; - buffer[1] = (bytes_dl >> 16) & 0xFF; - buffer[2] = (bytes_dl >> 8) & 0xFF; - buffer[3] = bytes_dl & 0xFF; - bytesdl->buf = (uint8_t*)calloc(4,1); - memcpy(bytesdl->buf,buffer,4); - bytesdl->size = 4; - } - - - //We need to convert bytes_ul into array of uint8_t - INTEGER_t *bytesul = (INTEGER_t*)calloc(1, sizeof(INTEGER_t)); - - int array_size_ul; - - if (bytes_ul <= 64) { - array_size_ul = 1; - - uint8_t buffer[array_size_ul]; - buffer[0] = bytes_ul & 0xFF; - bytesul->buf = (uint8_t*)calloc(1,1); - memcpy(bytesul->buf,buffer,1); - bytesul->size = 1; - - } else if (bytes_ul <= 16384) { - array_size_ul = 2; - - uint8_t buffer[array_size_ul]; - buffer[0] = (bytes_ul >> 8) & 0xFF; - buffer[1] = bytes_ul & 0xFF; - bytesul->buf = (uint8_t*)calloc(2,1); - memcpy(bytesul->buf,buffer,2); - bytesul->size = 2; - - } else if (bytes_ul <= 4194304) { - array_size_ul = 3; - - uint8_t buffer[array_size_ul]; - buffer[0] = (bytes_ul >> 16) & 0xFF; - buffer[1] = (bytes_ul >> 8) & 0xFF; - buffer[2] = bytes_ul & 0xFF; - bytesul->buf = (uint8_t*)calloc(3,1); - memcpy(bytesul->buf,buffer,3); - bytesul->size = 3; - - } else if (bytes_ul <= 1073741824) { - array_size_ul = 4; - uint8_t buffer[array_size_ul]; - buffer[0] = (bytes_ul >> 24) & 0xFF; - buffer[1] = (bytes_ul >> 16) & 0xFF; - buffer[2] = (bytes_ul >> 8) & 0xFF; - buffer[3] = bytes_ul & 0xFF; - bytesul->buf = (uint8_t*)calloc(4,1); - memcpy(bytesul->buf,buffer,4); - bytesul->size = 4; - } - - - FQIPERSlicesPerPlmnListItem_t *fqilistitem = (FQIPERSlicesPerPlmnListItem_t*)calloc(1, sizeof(FQIPERSlicesPerPlmnListItem_t)); - ASN_STRUCT_RESET(asn_DEF_FQIPERSlicesPerPlmnListItem, fqilistitem); - fqilistitem->fiveQI = 9; - fqilistitem->pDCPBytesDL = bytesdl; - fqilistitem->pDCPBytesUL = bytesul; - - - uint8_t *buf1 = (uint8_t*)"4"; - OCTET_STRING_t *sst = (OCTET_STRING_t*)calloc(1, sizeof(OCTET_STRING_t)); - sst->size = 6; - sst->buf = (uint8_t*)calloc(1,6); - memcpy(sst->buf,sst_buf,sst->size); - - - uint8_t *bufz = (uint8_t*)"SD1"; - OCTET_STRING_t *sds = (OCTET_STRING_t*)calloc(1, sizeof(OCTET_STRING_t)); - sds->size = 3; - sds->buf = (uint8_t*)calloc(1,3); - memcpy(sds->buf, sd_buf, sds->size); - - - SNSSAI_t *snssai = (SNSSAI_t*)calloc(1, sizeof(SNSSAI_t)); - ASN_STRUCT_RESET(asn_DEF_SNSSAI,snssai); - snssai->sST.buf = (uint8_t*)calloc(1,1); - snssai->sST.size = 1; - memcpy(snssai->sST.buf, sst_buf, 1); - snssai->sD = (OCTET_STRING_t*)calloc(1, sizeof(OCTET_STRING_t)); - snssai->sD->buf = (uint8_t*)calloc(1,3); - snssai->sD->size = 3; - memcpy(snssai->sD->buf, sd_buf, 3); - - - - SliceToReportListItem_t *slicelistitem = (SliceToReportListItem_t*)calloc(1,sizeof(SliceToReportListItem_t)); - ASN_STRUCT_RESET(asn_DEF_SliceToReportListItem, slicelistitem); - slicelistitem->sliceID = *snssai; - int ret = ASN_SEQUENCE_ADD(&slicelistitem->fQIPERSlicesPerPlmnList.list, fqilistitem); - - asn_codec_ctx_t *opt_cod; - - - uint8_t e2smbuffera[8192]; - size_t e2smbuffer_sizea = 8192; - - - - asn_enc_rval_t era = - asn_encode_to_buffer(opt_cod, - ATS_ALIGNED_BASIC_PER, - &asn_DEF_SliceToReportListItem, - slicelistitem, e2smbuffera, e2smbuffer_sizea); - fprintf(stderr, "inner er encded is %d\n", era.encoded); - fprintf(stderr, "after encoding message\n"); - - - - FGC_CUUP_PM_Format_t *pm_format = (FGC_CUUP_PM_Format_t*)calloc(1,sizeof(FGC_CUUP_PM_Format_t)); - ASN_STRUCT_RESET(asn_DEF_FGC_CUUP_PM_Format, pm_format); - ret = ASN_SEQUENCE_ADD(&pm_format->sliceToReportList.list, slicelistitem); - - uint8_t *buf2 = (uint8_t*)"747"; - // std::string pl = "PLMNID7"; - // std::vector plvec(pl.begin(), pl.end()); - // uint8_t *buf2 = &plvec[0]; - - OCTET_STRING_t *plmnid = (OCTET_STRING_t*)calloc(1,sizeof(OCTET_STRING_t)); - plmnid->buf = (uint8_t*)calloc(3,1); - plmnid->size = 3; - memcpy(plmnid->buf, plmnid_buf, plmnid->size); - - - PlmnID_List_t *plmnidlist = (PlmnID_List_t*)calloc(1,sizeof(PlmnID_List_t)); - ASN_STRUCT_RESET(asn_DEF_PlmnID_List, plmnidlist); - plmnidlist->pLMN_Identity = *plmnid; - plmnidlist->cu_UP_PM_5GC = pm_format; - - CUUPMeasurement_Container_t *meas_cont = (CUUPMeasurement_Container_t*)calloc(1, sizeof(CUUPMeasurement_Container_t)); - ASN_STRUCT_RESET(asn_DEF_CUUPMeasurement_Container, meas_cont); - ret = ASN_SEQUENCE_ADD(&meas_cont->plmnList.list, plmnidlist); - - - - - PF_ContainerListItem_t *listitem1 = (PF_ContainerListItem_t*)calloc(1, sizeof(PF_ContainerListItem_t)); - ASN_STRUCT_RESET(asn_DEF_PF_ContainerListItem, listitem1); - listitem1->interface_type = 2; - listitem1->o_CU_UP_PM_Container = *meas_cont; - - OCUUP_PF_Container_t *cuupcont = (OCUUP_PF_Container_t*)calloc(1,sizeof(OCUUP_PF_Container_t)); - ASN_STRUCT_RESET(asn_DEF_OCUUP_PF_Container, cuupcont); - cuupcont->gNB_CU_UP_Name = gnbcuupname; - ret = ASN_SEQUENCE_ADD(&cuupcont->pf_ContainerList.list, listitem1); - - PF_Container_PR pres1 = PF_Container_PR_oCU_UP; - - PF_Container_t *pfcontainer = (PF_Container_t*)calloc(1, sizeof(PF_Container_t)); - ASN_STRUCT_RESET(asn_DEF_PF_Container, pfcontainer); - pfcontainer->present = pres1; - pfcontainer->choice.oCU_UP = *cuupcont; - - PM_Containers_List_t *containers_list = (PM_Containers_List_t*)calloc(1, sizeof(PM_Containers_List_t)); - ASN_STRUCT_RESET(asn_DEF_PM_Containers_List, containers_list); - containers_list->performanceContainer = pfcontainer; - - E2SM_KPM_IndicationMessage_Format1_t *format = - (E2SM_KPM_IndicationMessage_Format1_t*)calloc(1, sizeof(E2SM_KPM_IndicationMessage_Format1_t)); - ASN_STRUCT_RESET(asn_DEF_E2SM_KPM_IndicationMessage_Format1, format); - - ret = ASN_SEQUENCE_ADD(&format->pm_Containers.list, containers_list); - - E2SM_KPM_IndicationMessage__indicationMessage_PR pres = E2SM_KPM_IndicationMessage__indicationMessage_PR_indicationMessage_Format1; - - indicationmessage->indicationMessage.present = pres; - - indicationmessage->indicationMessage.choice.indicationMessage_Format1 = *format; - - char *error_buf = (char*)calloc(300, sizeof(char)); - size_t errlen; - - asn_check_constraints(&asn_DEF_E2SM_KPM_IndicationMessage, indicationmessage, error_buf, &errlen); - printf("error length %d\n", errlen); - printf("error buf %s\n", error_buf); - - xer_fprint(stderr, &asn_DEF_E2SM_KPM_IndicationMessage, indicationmessage); - - - uint8_t e2smbuffer[8192]; - size_t e2smbuffer_size = 8192; - - uint8_t e2smbuffer2[8192]; - size_t e2smbuffer_size2 = 8192; - - asn_enc_rval_t er = - asn_encode_to_buffer(opt_cod, - ATS_ALIGNED_BASIC_PER, - &asn_DEF_E2SM_KPM_IndicationMessage, - indicationmessage, e2smbuffer, e2smbuffer_size); - - fprintf(stderr, "er encded is %d\n", er.encoded); - fprintf(stderr, "after encoding message\n"); - - -} - -void encode_kpm_report_style5(E2SM_KPM_IndicationMessage_t* indicationmessage) { - - ASN_STRUCT_RESET(asn_DEF_E2SM_KPM_IndicationMessage, indicationmessage); - - - uint8_t *buf = (uint8_t*)"GNBCUUP5"; - OCTET_STRING_t *gnbcuupname = (OCTET_STRING_t*)calloc(1, sizeof(OCTET_STRING_t)); - gnbcuupname->size = 8; - gnbcuupname->buf = (uint8_t*)calloc(1,8); - memcpy(gnbcuupname->buf, buf, gnbcuupname->size); - - - INTEGER_t *bytesdl = (INTEGER_t*)calloc(1, sizeof(INTEGER_t)); - uint8_t buffer[1]; - buffer[0]= 40000; - bytesdl->buf = (uint8_t*)calloc(1,1); - memcpy(bytesdl->buf, buffer,1); - bytesdl->size = 1; - - INTEGER_t *bytesul = (INTEGER_t*)calloc(1, sizeof(INTEGER_t)); - uint8_t buffer1[1]; - buffer1[0] = 50000; - bytesul->buf = (uint8_t*)calloc(1,1); - memcpy(bytesul->buf, buffer1, 1); - bytesul->size = 1; - - FQIPERSlicesPerPlmnListItem_t *fqilistitem = (FQIPERSlicesPerPlmnListItem_t*)calloc(1, sizeof(FQIPERSlicesPerPlmnListItem_t)); - ASN_STRUCT_RESET(asn_DEF_FQIPERSlicesPerPlmnListItem, fqilistitem); - fqilistitem->fiveQI = 9; - fqilistitem->pDCPBytesDL = bytesdl; - fqilistitem->pDCPBytesUL = bytesul; - - - uint8_t *buf1 = (uint8_t*)"4"; - OCTET_STRING_t *sst = (OCTET_STRING_t*)calloc(1, sizeof(OCTET_STRING_t)); - sst->size = 6; - sst->buf = (uint8_t*)calloc(1,6); - memcpy(sst->buf,buf1,sst->size); - - - uint8_t *bufz = (uint8_t*)"SD1"; - OCTET_STRING_t *sds = (OCTET_STRING_t*)calloc(1, sizeof(OCTET_STRING_t)); - sds->size = 3; - sds->buf = (uint8_t*)calloc(1,3); - memcpy(sds->buf, bufz, sds->size); - - - SNSSAI_t *snssai = (SNSSAI_t*)calloc(1, sizeof(SNSSAI_t)); - ASN_STRUCT_RESET(asn_DEF_SNSSAI,snssai); - snssai->sST.buf = (uint8_t*)calloc(1,1); - snssai->sST.size = 1; - memcpy(snssai->sST.buf, buf1, 1); - snssai->sD = (OCTET_STRING_t*)calloc(1, sizeof(OCTET_STRING_t)); - snssai->sD->buf = (uint8_t*)calloc(1,3); - snssai->sD->size = 3; - memcpy(snssai->sD->buf, bufz, 3); - - - - SliceToReportListItem_t *slicelistitem = (SliceToReportListItem_t*)calloc(1,sizeof(SliceToReportListItem_t)); - ASN_STRUCT_RESET(asn_DEF_SliceToReportListItem, slicelistitem); - slicelistitem->sliceID = *snssai; - int ret = ASN_SEQUENCE_ADD(&slicelistitem->fQIPERSlicesPerPlmnList.list, fqilistitem); - - asn_codec_ctx_t *opt_cod; - - - uint8_t e2smbuffera[8192]; - size_t e2smbuffer_sizea = 8192; - - - - asn_enc_rval_t era = - asn_encode_to_buffer(opt_cod, - ATS_ALIGNED_BASIC_PER, - &asn_DEF_SliceToReportListItem, - slicelistitem, e2smbuffera, e2smbuffer_sizea); - fprintf(stderr, "inner er encded is %d\n", era.encoded); - fprintf(stderr, "after encoding message\n"); - - - - FGC_CUUP_PM_Format_t *pm_format = (FGC_CUUP_PM_Format_t*)calloc(1,sizeof(FGC_CUUP_PM_Format_t)); - ASN_STRUCT_RESET(asn_DEF_FGC_CUUP_PM_Format, pm_format); - ret = ASN_SEQUENCE_ADD(&pm_format->sliceToReportList.list, slicelistitem); - - uint8_t *buf2 = (uint8_t*)"747"; - // std::string pl = "PLMNID7"; - // std::vector plvec(pl.begin(), pl.end()); - // uint8_t *buf2 = &plvec[0]; - - OCTET_STRING_t *plmnid = (OCTET_STRING_t*)calloc(1,sizeof(OCTET_STRING_t)); - plmnid->buf = (uint8_t*)calloc(3,1); - plmnid->size = 3; - memcpy(plmnid->buf, buf2, plmnid->size); - - - PlmnID_List_t *plmnidlist = (PlmnID_List_t*)calloc(1,sizeof(PlmnID_List_t)); - ASN_STRUCT_RESET(asn_DEF_PlmnID_List, plmnidlist); - plmnidlist->pLMN_Identity = *plmnid; - plmnidlist->cu_UP_PM_5GC = pm_format; - - CUUPMeasurement_Container_t *meas_cont = (CUUPMeasurement_Container_t*)calloc(1, sizeof(CUUPMeasurement_Container_t)); - ASN_STRUCT_RESET(asn_DEF_CUUPMeasurement_Container, meas_cont); - ret = ASN_SEQUENCE_ADD(&meas_cont->plmnList.list, plmnidlist); - - - - - PF_ContainerListItem_t *listitem1 = (PF_ContainerListItem_t*)calloc(1, sizeof(PF_ContainerListItem_t)); - ASN_STRUCT_RESET(asn_DEF_PF_ContainerListItem, listitem1); - listitem1->interface_type = 2; - listitem1->o_CU_UP_PM_Container = *meas_cont; - - OCUUP_PF_Container_t *cuupcont = (OCUUP_PF_Container_t*)calloc(1,sizeof(OCUUP_PF_Container_t)); - ASN_STRUCT_RESET(asn_DEF_OCUUP_PF_Container, cuupcont); - cuupcont->gNB_CU_UP_Name = gnbcuupname; - ret = ASN_SEQUENCE_ADD(&cuupcont->pf_ContainerList.list, listitem1); - - PF_Container_PR pres1 = PF_Container_PR_oCU_UP; - - PF_Container_t *pfcontainer = (PF_Container_t*)calloc(1, sizeof(PF_Container_t)); - ASN_STRUCT_RESET(asn_DEF_PF_Container, pfcontainer); - pfcontainer->present = pres1; - pfcontainer->choice.oCU_UP = *cuupcont; - - PM_Containers_List_t *containers_list = (PM_Containers_List_t*)calloc(1, sizeof(PM_Containers_List_t)); - ASN_STRUCT_RESET(asn_DEF_PM_Containers_List, containers_list); - containers_list->performanceContainer = pfcontainer; - - E2SM_KPM_IndicationMessage_Format1_t *format = - (E2SM_KPM_IndicationMessage_Format1_t*)calloc(1, sizeof(E2SM_KPM_IndicationMessage_Format1_t)); - ASN_STRUCT_RESET(asn_DEF_E2SM_KPM_IndicationMessage_Format1, format); - - ret = ASN_SEQUENCE_ADD(&format->pm_Containers.list, containers_list); - - E2SM_KPM_IndicationMessage__indicationMessage_PR pres = E2SM_KPM_IndicationMessage__indicationMessage_PR_indicationMessage_Format1; - - indicationmessage->indicationMessage.present = pres; - - indicationmessage->indicationMessage.choice.indicationMessage_Format1 = *format; - - char *error_buf = (char*)calloc(300, sizeof(char)); - size_t errlen; - - asn_check_constraints(&asn_DEF_E2SM_KPM_IndicationMessage, indicationmessage, error_buf, &errlen); - printf("error length %d\n", errlen); - printf("error buf %s\n", error_buf); - - xer_fprint(stderr, &asn_DEF_E2SM_KPM_IndicationMessage, indicationmessage); - - - uint8_t e2smbuffer[8192]; - size_t e2smbuffer_size = 8192; - - uint8_t e2smbuffer2[8192]; - size_t e2smbuffer_size2 = 8192; - - asn_enc_rval_t er = - asn_encode_to_buffer(opt_cod, - ATS_ALIGNED_BASIC_PER, - &asn_DEF_E2SM_KPM_IndicationMessage, - indicationmessage, e2smbuffer, e2smbuffer_size); - - fprintf(stderr, "er encded is %d\n", er.encoded); - fprintf(stderr, "after encoding message\n"); - -} - - -void encode_kpm(E2SM_KPM_IndicationMessage_t* indicationmessage) { - - /* - ASN_STRUCT_RESET(asn_DEF_E2SM_KPM_IndicationMessage, indicationmessage); - //std::string gn = "GNBCUUP5"; - //std::vector gnvec(gn.begin(), gn.end()); - //uint8_t *buf = &gnvec[0]; - uint8_t *buf = (uint8_t*)"GNBCUUP5"; - OCTET_STRING_t *gnbcuupname = (OCTET_STRING_t*)calloc(1, sizeof(OCTET_STRING_t)); - gnbcuupname->size = 8; - gnbcuupname->buf = (uint8_t*)calloc(1,8); - memcpy(gnbcuupname->buf, buf, gnbcuupname->size); - - - INTEGER_t *bytesdl = (INTEGER_t*)calloc(1, sizeof(INTEGER_t)); - uint8_t buffer[1]; - buffer[0]= 40000; - bytesdl->buf = (uint8_t*)calloc(1,1); - memcpy(bytesdl->buf, buffer,1); - bytesdl->size = 1; - - INTEGER_t *bytesul = (INTEGER_t*)calloc(1, sizeof(INTEGER_t)); - uint8_t buffer1[1]; - buffer1[0] = 50000; - bytesul->buf = (uint8_t*)calloc(1,1); - memcpy(bytesul->buf, buffer1, 1); - bytesul->size = 1; - - FQIPERSlicesPerPlmnListItem_t *fqilistitem = (FQIPERSlicesPerPlmnListItem_t*)calloc(1, sizeof(FQIPERSlicesPerPlmnListItem_t)); - ASN_STRUCT_RESET(asn_DEF_FQIPERSlicesPerPlmnListItem, fqilistitem); - fqilistitem->fiveQI = 9; - fqilistitem->pDCPBytesDL = bytesdl; - fqilistitem->pDCPBytesUL = bytesul; - - - - // std::string sl = "SLICE4"; - // std::vector slvec(sl.begin(), sl.end()); - // uint8_t *buf1 = &slvec[0]; - uint8_t *buf1 = (uint8_t*)"4"; - OCTET_STRING_t *sst = (OCTET_STRING_t*)calloc(1, sizeof(OCTET_STRING_t)); - sst->size = 6; - sst->buf = (uint8_t*)calloc(1,6); - memcpy(sst->buf,buf1,sst->size); - - // std::string sd = "SD1"; - // std::vector sdvec(sd.begin(), sd.end()); - // uint8_t *bufz = &sdvec[0]; - uint8_t *bufz = (uint8_t*)"SD1"; - OCTET_STRING_t *sds = (OCTET_STRING_t*)calloc(1, sizeof(OCTET_STRING_t)); - sds->size = 3; - sds->buf = (uint8_t*)calloc(1,3); - memcpy(sds->buf, bufz, sds->size); - - - SNSSAI_t *snssai = (SNSSAI_t*)calloc(1, sizeof(SNSSAI_t)); - ASN_STRUCT_RESET(asn_DEF_SNSSAI,snssai); - snssai->sST.buf = (uint8_t*)calloc(1,1); - snssai->sST.size = 1; - memcpy(snssai->sST.buf, buf1, 1); - snssai->sD = (OCTET_STRING_t*)calloc(1, sizeof(OCTET_STRING_t)); - snssai->sD->buf = (uint8_t*)calloc(1,3); - snssai->sD->size = 3; - memcpy(snssai->sD->buf, bufz, 3); - - - - SliceToReportListItem_t *slicelistitem = (SliceToReportListItem_t*)calloc(1,sizeof(SliceToReportListItem_t)); - ASN_STRUCT_RESET(asn_DEF_SliceToReportListItem, slicelistitem); - slicelistitem->sliceID = *snssai; - int ret = ASN_SEQUENCE_ADD(&slicelistitem->fQIPERSlicesPerPlmnList.list, fqilistitem); - - asn_codec_ctx_t *opt_cod; - - - uint8_t e2smbuffera[8192]; - size_t e2smbuffer_sizea = 8192; - - - - asn_enc_rval_t era = - asn_encode_to_buffer(opt_cod, - ATS_ALIGNED_BASIC_PER, - &asn_DEF_SliceToReportListItem, - slicelistitem, e2smbuffera, e2smbuffer_sizea); - fprintf(stderr, "inner er encded is %d\n", era.encoded); - fprintf(stderr, "after encoding message\n"); - - - - FGC_CUUP_PM_Format_t *pm_format = (FGC_CUUP_PM_Format_t*)calloc(1,sizeof(FGC_CUUP_PM_Format_t)); - ASN_STRUCT_RESET(asn_DEF_FGC_CUUP_PM_Format, pm_format); - ret = ASN_SEQUENCE_ADD(&pm_format->sliceToReportList.list, slicelistitem); - - uint8_t *buf2 = (uint8_t*)"747"; - // std::string pl = "PLMNID7"; - // std::vector plvec(pl.begin(), pl.end()); - // uint8_t *buf2 = &plvec[0]; - - OCTET_STRING_t *plmnid = (OCTET_STRING_t*)calloc(1,sizeof(OCTET_STRING_t)); - plmnid->buf = (uint8_t*)calloc(3,1); - plmnid->size = 3; - memcpy(plmnid->buf, buf2, plmnid->size); - - - PlmnID_List_t *plmnidlist = (PlmnID_List_t*)calloc(1,sizeof(PlmnID_List_t)); - ASN_STRUCT_RESET(asn_DEF_PlmnID_List, plmnidlist); - plmnidlist->pLMN_Identity = *plmnid; - plmnidlist->cu_UP_PM_5GC = pm_format; - - CUUPMeasurement_Container_t *meas_cont = (CUUPMeasurement_Container_t*)calloc(1, sizeof(CUUPMeasurement_Container_t)); - ASN_STRUCT_RESET(asn_DEF_CUUPMeasurement_Container, meas_cont); - ret = ASN_SEQUENCE_ADD(&meas_cont->plmnList.list, plmnidlist); - - - - - PF_ContainerListItem_t *listitem1 = (PF_ContainerListItem_t*)calloc(1, sizeof(PF_ContainerListItem_t)); - ASN_STRUCT_RESET(asn_DEF_PF_ContainerListItem, listitem1); - listitem1->interface_type = 2; - listitem1->o_CU_UP_PM_Container = *meas_cont; - - OCUUP_PF_Container_t *cuupcont = (OCUUP_PF_Container_t*)calloc(1,sizeof(OCUUP_PF_Container_t)); - ASN_STRUCT_RESET(asn_DEF_OCUUP_PF_Container, cuupcont); - cuupcont->gNB_CU_UP_Name = gnbcuupname; - ret = ASN_SEQUENCE_ADD(&cuupcont->pf_ContainerList.list, listitem1); - - PF_Container_PR pres1 = PF_Container_PR_oCU_UP; - - PF_Container_t *pfcontainer = (PF_Container_t*)calloc(1, sizeof(PF_Container_t)); - ASN_STRUCT_RESET(asn_DEF_PF_Container, pfcontainer); - pfcontainer->present = pres1; - pfcontainer->choice.oCU_UP = *cuupcont; - - PM_Containers_List_t *containers_list = (PM_Containers_List_t*)calloc(1, sizeof(PM_Containers_List_t)); - ASN_STRUCT_RESET(asn_DEF_PM_Containers_List, containers_list); - containers_list->performanceContainer = pfcontainer; - - E2SM_KPM_IndicationMessage_Format1_t *format = - (E2SM_KPM_IndicationMessage_Format1_t*)calloc(1, sizeof(E2SM_KPM_IndicationMessage_Format1_t)); - ASN_STRUCT_RESET(asn_DEF_E2SM_KPM_IndicationMessage_Format1, format); - - ret = ASN_SEQUENCE_ADD(&format->pm_Containers.list, containers_list); - - E2SM_KPM_IndicationMessage_PR pres = E2SM_KPM_IndicationMessage_PR_indicationMessage_Format1; - - indicationmessage->present = pres; - - indicationmessage->choice.indicationMessage_Format1 = *format; - - char *error_buf = (char*)calloc(300, sizeof(char)); - size_t errlen; - - asn_check_constraints(&asn_DEF_E2SM_KPM_IndicationMessage, indicationmessage, error_buf, &errlen); - printf("error length %d\n", errlen); - printf("error buf %s\n", error_buf); - - xer_fprint(stderr, &asn_DEF_E2SM_KPM_IndicationMessage, indicationmessage); - - - uint8_t e2smbuffer[8192]; - size_t e2smbuffer_size = 8192; - - uint8_t e2smbuffer2[8192]; - size_t e2smbuffer_size2 = 8192; - - asn_enc_rval_t er = - asn_encode_to_buffer(opt_cod, - ATS_ALIGNED_BASIC_PER, - &asn_DEF_E2SM_KPM_IndicationMessage, - indicationmessage, e2smbuffer, e2smbuffer_size); - - fprintf(stderr, "er encded is %d\n", er.encoded); - fprintf(stderr, "after encoding message\n"); - - */ -} - -/* -void encode_kpm_bak(E2SM_KPM_IndicationMessage_t* indicationmessage) { - ASN_STRUCT_RESET(asn_DEF_E2SM_KPM_IndicationMessage, indicationmessage); - std::string gn = "GNBCUUP5"; - std::vector gnvec(gn.begin(), gn.end()); - uint8_t *buf = &gnvec[0]; - OCTET_STRING_t *gnbcuupname = (OCTET_STRING_t*)calloc(1, sizeof(OCTET_STRING_t)); - gnbcuupname->size = 8; - gnbcuupname->buf = (uint8_t*)calloc(1,8); - memcpy(gnbcuupname->buf, buf, gnbcuupname->size); - - - INTEGER_t *bytesdl = (INTEGER_t*)calloc(1, sizeof(INTEGER_t)); - uint8_t buffer[1]; - buffer[0]= 40000; - bytesdl->buf = (uint8_t*)calloc(1,1); - memcpy(bytesdl->buf, buffer,1); - bytesdl->size = 1; - - INTEGER_t *bytesul = (INTEGER_t*)calloc(1, sizeof(INTEGER_t)); - uint8_t buffer1[1]; - buffer1[0] = 50000; - bytesul->buf = (uint8_t*)calloc(1,1); - memcpy(bytesul->buf, buffer1, 1); - bytesul->size = 1; - - FQIPERSlicesPerPlmnListItem_t *fqilistitem = (FQIPERSlicesPerPlmnListItem_t*)calloc(1, sizeof(FQIPERSlicesPerPlmnListItem_t)); - ASN_STRUCT_RESET(asn_DEF_FQIPERSlicesPerPlmnListItem, fqilistitem); - fqilistitem->fiveQI = 9; - fqilistitem->pDCPBytesDL = bytesdl; - fqilistitem->pDCPBytesUL = bytesul; - - - - std::string sl = "SLICE4"; - std::vector slvec(sl.begin(), sl.end()); - // uint8_t *buf1 = &slvec[0]; - uint8_t *buf1 = (uint8_t*)"SLICE4"; - OCTET_STRING_t *sst = (OCTET_STRING_t*)calloc(1, sizeof(OCTET_STRING_t)); - sst->size = 6; - sst->buf = (uint8_t*)calloc(1,6); - memcpy(sst->buf,buf1,sst->size); - - std::string sd = "SD1"; - std::vector sdvec(sd.begin(), sd.end()); - // uint8_t *bufz = &sdvec[0]; - uint8_t *bufz = (uint8_t*)"SD1"; - OCTET_STRING_t *sds = (OCTET_STRING_t*)calloc(1, sizeof(OCTET_STRING_t)); - sds->size = 3; - sds->buf = (uint8_t*)calloc(1,3); - memcpy(sds->buf, bufz, sds->size); - - - SNSSAI_t *snssai = (SNSSAI_t*)calloc(1, sizeof(SNSSAI_t)); - ASN_STRUCT_RESET(asn_DEF_SNSSAI,snssai); - snssai->sST.buf = (uint8_t*)calloc(6,1); - snssai->sST.size = 6; - memcpy(snssai->sST.buf, buf1, 6); - snssai->sD = (OCTET_STRING_t*)calloc(1, sizeof(OCTET_STRING_t)); - snssai->sD->buf = (uint8_t*)calloc(1,3); - snssai->sD->size = 3; - memcpy(snssai->sD->buf, bufz, 3); - - - - SliceToReportListItem_t *slicelistitem = (SliceToReportListItem_t*)calloc(1,sizeof(SliceToReportListItem_t)); - ASN_STRUCT_RESET(asn_DEF_SliceToReportListItem, slicelistitem); - slicelistitem->sliceID = *snssai; - int ret = ASN_SEQUENCE_ADD(&slicelistitem->fQIPERSlicesPerPlmnList.list, fqilistitem); - - uint8_t e2smbuffera[8192]; - size_t e2smbuffer_sizea = 8192; - - auto era = - asn_encode_to_buffer(nullptr, - ATS_ALIGNED_BASIC_PER, - &asn_DEF_SliceToReportListItem, - slicelistitem, e2smbuffera, e2smbuffer_sizea); - fprintf(stderr, "inner er encded is %d\n", era.encoded); - fprintf(stderr, "after encoding message\n"); - - FGC_CUUP_PM_Format_t *pm_format = (FGC_CUUP_PM_Format_t*)calloc(1,sizeof(FGC_CUUP_PM_Format_t)); - ASN_STRUCT_RESET(asn_DEF_FGC_CUUP_PM_Format, pm_format); - ret = ASN_SEQUENCE_ADD(&pm_format->sliceToReportList.list, slicelistitem); - - std::string pl = "PLMNID7"; - std::vector plvec(pl.begin(), pl.end()); - uint8_t *buf2 = &plvec[0]; - - OCTET_STRING_t *plmnid = (OCTET_STRING_t*)calloc(1,sizeof(OCTET_STRING_t)); - plmnid->buf = (uint8_t*)calloc(1,7); - plmnid->size = 7; - memcpy(plmnid->buf, buf2, plmnid->size); - - - PlmnID_List_t *plmnidlist = (PlmnID_List_t*)calloc(1,sizeof(PlmnID_List_t)); - ASN_STRUCT_RESET(asn_DEF_PlmnID_List, plmnidlist); - plmnidlist->pLMN_Identity = *plmnid; - plmnidlist->cu_UP_PM_5GC = pm_format; - - CUUPMeasurement_Container_t *meas_cont = (CUUPMeasurement_Container_t*)calloc(1, sizeof(CUUPMeasurement_Container_t)); - ASN_STRUCT_RESET(asn_DEF_CUUPMeasurement_Container, meas_cont); - ret = ASN_SEQUENCE_ADD(&meas_cont->plmnList.list, plmnidlist); - - - - - PF_ContainerListItem_t *listitem1 = (PF_ContainerListItem_t*)calloc(1, sizeof(PF_ContainerListItem_t)); - ASN_STRUCT_RESET(asn_DEF_PF_ContainerListItem, listitem1); - listitem1->interface_type = 2; - listitem1->o_CU_UP_PM_Container = *meas_cont; - - OCUUP_PF_Container_t *cuupcont = (OCUUP_PF_Container_t*)calloc(1,sizeof(OCUUP_PF_Container_t)); - ASN_STRUCT_RESET(asn_DEF_OCUUP_PF_Container, cuupcont); - cuupcont->gNB_CU_UP_Name = gnbcuupname; - ret = ASN_SEQUENCE_ADD(&cuupcont->pf_ContainerList.list, listitem1); - - PF_Container_PR pres1 = PF_Container_PR_oCU_UP; - - PF_Container_t *pfcontainer = (PF_Container_t*)calloc(1, sizeof(PF_Container_t)); - ASN_STRUCT_RESET(asn_DEF_PF_Container, pfcontainer); - pfcontainer->present = pres1; - pfcontainer->choice.oCU_UP = *cuupcont; - - PM_Containers_List_t *containers_list = (PM_Containers_List_t*)calloc(1, sizeof(PM_Containers_List_t)); - ASN_STRUCT_RESET(asn_DEF_PM_Containers_List, containers_list); - containers_list->performanceContainer = pfcontainer; - - E2SM_KPM_IndicationMessage_Format1_t *format = - (E2SM_KPM_IndicationMessage_Format1_t*)calloc(1, sizeof(E2SM_KPM_IndicationMessage_Format1_t)); - ASN_STRUCT_RESET(asn_DEF_E2SM_KPM_IndicationMessage_Format1, format); - - ret = ASN_SEQUENCE_ADD(&format->pm_Containers.list, containers_list); - - E2SM_KPM_IndicationMessage_PR pres = E2SM_KPM_IndicationMessage_PR_indicationMessage_Format1; - - indicationmessage->present = pres; - - indicationmessage->choice.indicationMessage_Format1 = *format; - - char *error_buf = (char*)calloc(300, sizeof(char)); - size_t errlen; - - asn_check_constraints(&asn_DEF_E2SM_KPM_IndicationMessage, indicationmessage, error_buf, &errlen); - printf("error length %d\n", errlen); - printf("error buf %s\n", error_buf); - - - uint8_t e2smbuffer[8192]; - size_t e2smbuffer_size = 8192; - - uint8_t e2smbuffer2[8192]; - size_t e2smbuffer_size2 = 8192; - - auto er = - asn_encode_to_buffer(nullptr, - ATS_ALIGNED_BASIC_PER, - &asn_DEF_E2SM_KPM_IndicationMessage, - indicationmessage, e2smbuffer, e2smbuffer_size); - - fprintf(stderr, "er encded is %d\n", er.encoded); - fprintf(stderr, "after encoding message\n"); - - -} -*/ diff --git a/e2sim/previous/e2apv1sim/ricsim/encode_kpm.hpp b/e2sim/previous/e2apv1sim/ricsim/encode_kpm.hpp deleted file mode 100644 index 682814c..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/encode_kpm.hpp +++ /dev/null @@ -1,45 +0,0 @@ -#ifndef ENCODE_KPM_HPP -#define ENCODE_KPM_HPP - -extern "C" { - #include "OCUCP-PF-Container.h" - #include "OCTET_STRING.h" - #include "asn_application.h" - #include "E2SM-KPM-IndicationMessage.h" - #include "FQIPERSlicesPerPlmnListItem.h" - #include "E2SM-KPM-RANfunction-Description.h" - #include "Timestamp.h" -} - -void encode_kpm(E2SM_KPM_IndicationMessage_t* indicationmessage); - -void encode_kpm_bak(E2SM_KPM_IndicationMessage_t* indicationmessage); - -void encode_kpm_function_description(E2SM_KPM_RANfunction_Description_t* ranfunc_desc); - -void encode_kpm_report_style5(E2SM_KPM_IndicationMessage_t* indicationmessage); - -void encode_kpm_odu_user_level(RAN_Container_t *ranco); - -void encode_kpm_ocucp_user_level(RAN_Container_t *ranco); - -void encode_kpm_ocuup_user_level(RAN_Container_t *ranco); - -void encode_kpm_report_rancontainer_du(E2SM_KPM_IndicationMessage_t *indMsg); - -void encode_kpm_report_rancontainer_cucp(E2SM_KPM_IndicationMessage_t *indMsg); - -void encode_kpm_report_rancontainer_cuup(E2SM_KPM_IndicationMessage_t *indMsg); - -void encode_kpm_report_style1(E2SM_KPM_IndicationMessage_t* indicationmessage); - -void encode_kpm_report_rancontainer_cucp_parameterized(E2SM_KPM_IndicationMessage_t* indicationmessage,uint8_t *plmnid_buf,uint8_t *nrcellid_buf,uint8_t *crnti_buf,const uint8_t *serving_buf, const uint8_t *neighbor_buf); - -void encode_kpm_report_rancontainer_cuup_parameterized(E2SM_KPM_IndicationMessage_t* indicationmessage, uint8_t *plmnid_buf, uint8_t *nrcellid_buf, uint8_t *crnti_buf,int pdcp_bytesdl, int pdcp_bytesul); - -void encode_kpm_report_style1_parameterized(E2SM_KPM_IndicationMessage_t* indicationmessage, long fiveqi, long dl_prb_usage, long ul_prb_usage, uint8_t* sd_buf, uint8_t* sst_buf,uint8_t* plmnid_buf, uint8_t* nrcellid_buf, long *dl_prbs, long *ul_prbs); - -void encode_kpm_report_style5_parameterized(E2SM_KPM_IndicationMessage_t* indicationmessage, uint8_t *gnbcuupname_buf, int bytes_dl,int bytes_ul, uint8_t *sst_buf, uint8_t *sd_buf, uint8_t *plmnid_buf); - - -#endif diff --git a/e2sim/previous/e2apv1sim/ricsim/extras/ricsim.cpp b/e2sim/previous/e2apv1sim/ricsim/extras/ricsim.cpp deleted file mode 100644 index 5f9b7f2..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/extras/ricsim.cpp +++ /dev/null @@ -1,216 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -#include -#include -#include - -#include "e2sim_sctp.hpp" -#include "e2ap_message_handler.hpp" - -extern "C" { - #include "e2sim_defs.h" - #include "E2AP-PDU.h" - #include "e2ap_asn1c_codec.h" - #include "GlobalE2node-ID.h" - #include "GlobalE2node-gNB-ID.h" - #include "GlobalgNB-ID.h" - #include "OCTET_STRING.h" - #include "asn_application.h" - #include "GNB-ID-Choice.h" - #include "ProtocolIE-Field.h" - #include "E2setupRequest.h" -} - -using namespace std; - -/* -struct { - type **array; - int count; - int size; - void (*free)(decltype(*array)); -} -*/ - -void encode_and_send_sctp_data(E2AP_PDU_t* pdu, int client_fd) -{ - uint8_t *buf; - sctp_buffer_t data; - - data.len = e2ap_asn1c_encode_pdu(pdu, &buf); - memcpy(data.buffer, buf, min(data.len, MAX_SCTP_BUFFER)); - - sctp_send_data(client_fd, data); -} - -void wait_for_sctp_data(int client_fd) -{ - sctp_buffer_t recv_buf; - if(sctp_receive_data(client_fd, recv_buf) > 0) - { - LOG_I("[SCTP] Received new data of size %d", recv_buf.len); - e2ap_handle_sctp_data(client_fd, recv_buf); - } -} - -int main(int argc, char* argv[]){ - LOG_I("Start RIC Simulator"); - - options_t ops = read_input_options(argc, argv); - int client_fd = sctp_start_client(ops.server_ip, ops.server_port); - - //1. Send ENDCX2Setup - // E2AP_PDU_t* pdu_setup = e2ap_xml_to_pdu("E2AP_ENDCX2SetupRequest.xml"); - - printf("out0\n"); - - uint8_t *buf = (uint8_t *)"gnb1"; - - BIT_STRING_t gnb_bstring; - gnb_bstring.buf = buf; - gnb_bstring.size = 4; - gnb_bstring.bits_unused = 0; - - printf("out1\n"); - - - uint8_t *buf2 = (uint8_t *)"plmn3"; - OCTET_STRING_t plmn; - plmn.buf = buf2; - plmn.size = 5; - - GNB_ID_Choice_t gnbchoice; - GNB_ID_Choice_PR pres2 = GNB_ID_Choice_PR_gnb_ID; - gnbchoice.present = pres2; - gnbchoice.choice.gnb_ID = gnb_bstring; - - GlobalgNB_ID_t gnb; - gnb.plmn_id = plmn; - gnb.gnb_id = gnbchoice; - - - - GlobalE2node_gNB_ID_t *e2gnb = (GlobalE2node_gNB_ID_t*)calloc(1, sizeof(GlobalE2node_gNB_ID_t)); - e2gnb->global_gNB_ID = gnb; - - /* - GlobalE2node_ID_t *globale2nodeid = (GlobalE2node_ID_t*)calloc(1, sizeof(GlobalE2node_ID_t)); - GlobalE2node_ID_PR pres; - pres = GlobalE2node_ID_PR_gNB; - globale2nodeid->present = pres; - globale2nodeid->choice.gNB = e2gnb; - */ - - GlobalE2node_ID_t globale2nodeid; - GlobalE2node_ID_PR pres; - pres = GlobalE2node_ID_PR_gNB; - globale2nodeid.present = pres; - globale2nodeid.choice.gNB = e2gnb; - - E2setupRequestIEs_t *e2setuprid = (E2setupRequestIEs_t*)calloc(1, sizeof(E2setupRequest_t));; - E2setupRequestIEs__value_PR pres3; - pres3 = E2setupRequestIEs__value_PR_GlobalE2node_ID; - e2setuprid->id = 4; - e2setuprid->criticality = 0; - e2setuprid->value.choice.GlobalE2node_ID = globale2nodeid; - e2setuprid->value.present = pres3; - - - E2setupRequest_t e2setupreq; - e2setupreq.protocolIEs.list.size = sizeof(E2setupRequestIEs); - e2setupreq.protocolIEs.list.count = 1; - e2setupreq.protocolIEs.list.array = &e2setuprid; - - InitiatingMessage__value_PR pres4; - pres4 = InitiatingMessage__value_PR_E2setupRequest; - InitiatingMessage_t *initmsg = (InitiatingMessage_t*)calloc(1, sizeof(InitiatingMessage_t)); - initmsg->procedureCode = 1; - initmsg->criticality = 0; - initmsg->value.present = pres4; - initmsg->value.choice.E2setupRequest = e2setupreq; - - E2AP_PDU_PR pres5; - pres5 = E2AP_PDU_PR_initiatingMessage; - - E2AP_PDU_t *e2ap_pdu = (E2AP_PDU_t*)calloc(1, sizeof(E2AP_PDU_t)); - e2ap_pdu->present = pres5; - e2ap_pdu->choice.initiatingMessage = initmsg; - - printf("over here\n"); - - asn_fprint(stdout, &asn_DEF_E2AP_PDU, e2ap_pdu); - - - printf("over here 2\n"); - - xer_fprint(stdout, &asn_DEF_E2AP_PDU, e2ap_pdu); - - printf("over here 55\n"); - - E2AP_PDU_t* pdu_setup = e2ap_xml_to_pdu("E2AP_SetupRequest2.xml"); - e2ap_asn1c_print_pdu(pdu_setup); - encode_and_send_sctp_data(pdu_setup, client_fd); - LOG_I("[SCTP] Sent ENDC X2 SETUP REQUEST"); - - - // E2setupRequest_t* pdu_setup = smaller_e2ap_xml_to_pdu("E2AP_PartSetupRequest.xml"); - // e2ap_asn1c_print_pdu(pdu_setup); - // encode_and_send_sctp_data(pdu_setup, client_fd); - LOG_I("[SCTP] Sent ENDC X2 SETUP REQUEST"); - - /* - GlobalE2node_ID_t* pdu_setup = smaller_e2ap_xml_to_pdu("GlobalE2node-ID.xml"); - - asn_fprint(stdout, &asn_DEF_GlobalE2node_ID, pdu_setup); - - printf("over here 2\n"); - - xer_fprint(stdout, &asn_DEF_GlobalE2node_ID, pdu_setup); - */ - /* - e2ap_asn1c_print_pdu(pdu_setup); - encode_and_send_sctp_data(pdu_setup, client_fd); - */ - LOG_I("[SCTP] Sent ENDC X2 SETUP REQUEST"); - - - //2. Receive ENDCX2SetupResponse - wait_for_sctp_data(client_fd); - - //3. Send RICSubscriptionRequest - /* - E2AP_PDU_t* pdu_sub = e2ap_xml_to_pdu("E2AP_RICsubscriptionRequest_Ashwin.xml"); - e2ap_asn1c_print_pdu(pdu_sub); - encode_and_send_sctp_data(pdu_sub, client_fd); - LOG_I("[SCTP] Sent RIC SUBSCRIPTION REQUEST"); - */ - //4. Receive RICSubscriptionResponse - while(1){ - wait_for_sctp_data(client_fd); - } - - - //--------------------------------------- - close(client_fd); - LOG_I("[SCTP] Connection closed."); - - return 0; - -} diff --git a/e2sim/previous/e2apv1sim/ricsim/ricsim.cpp b/e2sim/previous/e2apv1sim/ricsim/ricsim.cpp deleted file mode 100644 index d91c9e5..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ricsim.cpp +++ /dev/null @@ -1,132 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -#include -#include -#include - -#include "e2sim_sctp.hpp" -#include "e2ap_message_handler.hpp" - -#include "encode_e2apv1.hpp" -#include "encode_kpm.hpp" - -extern "C" { - #include "e2sim_defs.h" - #include "E2AP-PDU.h" - #include "e2ap_asn1c_codec.h" - #include "GlobalE2node-ID.h" - #include "GlobalE2node-gNB-ID.h" - #include "GlobalgNB-ID.h" - #include "OCTET_STRING.h" - #include "asn_application.h" - #include "GNB-ID-Choice.h" - #include "ProtocolIE-Field.h" - #include "E2setupRequest.h" - #include "RICaction-ToBeSetup-Item.h" - #include "RICactions-ToBeSetup-List.h" - #include "RICeventTriggerDefinition.h" - #include "RICsubscriptionRequest.h" - #include "ProtocolIE-SingleContainer.h" - #include "RANfunctions-List.h" - #include "RICindication.h" - #include "RICsubsequentActionType.h" - #include "RICsubsequentAction.h" - #include "RICtimeToWait.h" -} - -using namespace std; - -/* -struct { - type **array; - int count; - int size; - void (*free)(decltype(*array)); -} -*/ - -int client_fd = 0; - -void encode_and_send_sctp_data(E2AP_PDU_t* pdu, int client_fd) -{ - uint8_t *buf; - sctp_buffer_t data; - - data.len = e2ap_asn1c_encode_pdu(pdu, &buf); - memcpy(data.buffer, buf, min(data.len, MAX_SCTP_BUFFER)); - - sctp_send_data(client_fd, data); -} - - -void encode_and_send_sctp_data(E2AP_PDU_t* pdu) -{ - uint8_t *buf; - sctp_buffer_t data; - - data.len = e2ap_asn1c_encode_pdu(pdu, &buf); - memcpy(data.buffer, buf, min(data.len, MAX_SCTP_BUFFER)); - - sctp_send_data(client_fd, data); -} - -void wait_for_sctp_data(int client_fd) -{ - sctp_buffer_t recv_buf; - if(sctp_receive_data(client_fd, recv_buf) > 0) - { - LOG_I("[SCTP] Received new data of size %d", recv_buf.len); - e2ap_handle_sctp_data(client_fd, recv_buf, false); - } -} - - - -int main(int argc, char* argv[]){ - LOG_I("Start RIC Simulator"); - - bool xmlenc = true; - - options_t ops = read_input_options(argc, argv); - - int server_fd = sctp_start_server(ops.server_ip, ops.server_port); - client_fd = sctp_accept_connection(ops.server_ip, server_fd); - - sctp_buffer_t recv_buf; - - LOG_I("[SCTP] Waiting for SCTP data"); - - while(1) //constantly looking for data on SCTP interface - { - LOG_I("in while loop"); - if(sctp_receive_data(client_fd, recv_buf) <= 0) - break; - - LOG_I("[SCTP] Received new data of size %d", recv_buf.len); - - e2ap_handle_sctp_data(client_fd, recv_buf, xmlenc); - - if (xmlenc) - xmlenc = false; - } - - return 0; - -} diff --git a/e2sim/previous/e2apv1sim/ricsim/ricsim.hpp b/e2sim/previous/e2apv1sim/ricsim/ricsim.hpp deleted file mode 100644 index 9af2552..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/ricsim.hpp +++ /dev/null @@ -1,5 +0,0 @@ -#include "E2AP-PDU.h" - -void encode_and_send_sctp_data(E2AP_PDU_t* pdu); - -void encode_and_send_sctp_data(E2AP_PDU_t* pdu, int socket_fd); diff --git a/e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/asn.hpp b/e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/asn.hpp deleted file mode 100755 index 3affd81..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/asn.hpp +++ /dev/null @@ -1,27 +0,0 @@ -#pragma once -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -*******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries - -// Local Includes: Application specific classes, functions, and libraries -#include "asn/version.hpp" -#include "asn/elements.hpp" -#include "asn/constraints.hpp" -#include "asn/variant.hpp" \ No newline at end of file diff --git a/e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/ber/codec.hpp b/e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/ber/codec.hpp deleted file mode 100755 index 3a42ad5..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/ber/codec.hpp +++ /dev/null @@ -1,931 +0,0 @@ -#pragma once -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries - -// Local Includes: Application specific classes, functions, and libraries -#include "asn/elements.hpp" -#include "asn/ber/common.hpp" -#include "asn/ber/context.hpp" -#include "asn/ber/tag.hpp" -#include "asn/ber/length.hpp" -#include "asn/ber/visitor.hpp" -#include "asn/ber/opentype.hpp" - -namespace asn { -namespace ber { - -/******************************************************************************** -pack (X.690) -*********************************************************************************/ -template -bool pack(IE const& ie, EncoderCtx& ctx) -{ - ctx.refErrorCtx().reset(); - Element::run(ie, ctx); - - if (ctx) - Tools::bit_accessor::padByte(ctx.refBuffer()); - - return static_cast(ctx); -} -/******************************************************************************** -unpack (X.690) -*********************************************************************************/ -template -bool unpack(IE& ie, DecoderCtx& ctx) -{ - Element::run(ie, ctx); - - if (ctx) - Tools::bit_accessor::padByte(ctx.refBuffer()); - - if(ctx && ctx.refBuffer().getBytesLeft()) - { - ctx.ie_name(IE::name()); - ctx.refErrorCtx().lengthErrorBytes(ctx.refBuffer().getBytesLeft(), 0); - } - - return static_cast(ctx); -} - -/*************************************************************************************** -* ElementType -***************************************************************************************/ -template -struct ElementType; - -/*************************************************************************************** -* ExplicitCodec: Codec for elements with EXPLICIT tag -***************************************************************************************/ -template -struct ExplicitCodec -{ - using tag_t = Tag; - static bool inline is_matched(tag_value_t _tag) {return _tag == tag_t::value();} - - static void inline run(IE const& ie, EncoderCtx& ctx) - { - auto & buffer = ctx.refBuffer(); - - tag_t::encode(ctx); - u8* len_ptr = buffer.advance(1); //reserve for the length - - Element::run(static_cast(ie), ctx); - - size_t len = buffer.begin() - len_ptr - 1; - if(len > 127) - { - len_ptr[0] = 0x80; //undefinite length form per X.690 8.1.3.6 - uint8_t buff[2] = {0}; // end-of-contents octets (X.690 8.1.5) - buffer.putBytes(buff, sizeof(buff)); - } - else - { - len_ptr[0] = static_cast(len); //one byte form per X.690 8.1.3.4 - } - } - - static void inline run(IE& ie, DecoderCtx& ctx, tag_value_t tag) - { - if(tag_t::value() != tag) - ctx.refErrorCtx().tagError(static_cast(tag)); - else - { - auto & buffer = ctx.refBuffer(); - size_t length = Length::decode(ctx); - - ASN_DECODER_TRACE("EX buffer: %s", static_cast(tag), length, ctx.refBuffer().toString()); - - if(length == indefinite_length) - { - Element::run(static_cast(ie), ctx); - - if(ctx) - { - uint8_t const* data_in = ctx.refBuffer().getBytes(2); - if(data_in && (data_in[0] || data_in[1])) - { - ctx.refErrorCtx().errorWrongEndOfContent(); - } - } - } - else - { - if (buffer.getBytesLeft() < length) - { - ctx.refErrorCtx().lengthErrorBytes(buffer.getBytesLeft(), length); - } - else - { - DecoderCtx::buf_type::pointer end = buffer.end(); - buffer.set_end(buffer.begin() + length); - - Element::run(static_cast(ie), ctx); - - buffer.set_end(end); - } - } - - } - } -}; - -/*************************************************************************************** -* BOOLEAN: Encoding the boolean type (X.690 8.2) -***************************************************************************************/ -template -struct ElementType > -{ - using tag_t = Tag; - - static bool inline is_matched(tag_value_t tag) {return tag == tag_t::value();} - - static void inline run(IE const& ie, EncoderCtx& ctx) - { - tag_t::encode(ctx); - Length::encode(1, ctx); - if(ie.get()) - Tools::put_bytes(0xFF, 1, ctx); - else - Tools::put_bytes(0, 1, ctx); - } - - static void inline run(IE& ie, DecoderCtx& ctx, tag_value_t tag) - { - if(tag_t::value() != tag) - ctx.refErrorCtx().tagError(static_cast(tag)); - else - { - size_t length = Length::decode(ctx); - if(length != 1) - { - ctx.refErrorCtx().sizeRangeError(length, 1, 1); - } - else - { - ASN_DECODER_TRACE("IE buffer: %s", static_cast(IE::ie_type), IE::name(), static_cast(tag), length, ctx.refBuffer().toString()); - uint8_t value; - Tools::get_bytes(value, 1, ctx); - ie.set(value > 0); - } - } - } -}; -/*************************************************************************************** -* INTEGER: Encoding the integer type (X.690 8.3) -***************************************************************************************/ -template -struct ElementType > -{ - using tag_t = Tag; - - static bool inline is_matched(tag_value_t tag) {return tag == tag_t::value();} - - static void inline run(IE const& ie, EncoderCtx& ctx) - { - tag_t::encode(ctx); - size_t length = Length::get(ie.get()); - Length::encode(length, ctx); - Tools::put_bytes(ie.get(), length, ctx); - } - static void inline run(IE& ie, DecoderCtx& ctx, tag_value_t tag) - { - if(tag_t::value() != tag) - { - ctx.refErrorCtx().tagError(static_cast(tag)); - } - else - { - size_t length = Length::decode(ctx); - if(!length || length == indefinite_length) - ctx.refErrorCtx().sizeRangeError(length); - else - { - ASN_DECODER_TRACE("IE buffer: %s", static_cast(IE::ie_type), IE::name(), static_cast(tag), length, ctx.refBuffer().toString()); - typename IE::value_type value; - Tools::get_bytes(value, length, ctx); - ie.set(value); - } - } - } -}; -/*************************************************************************************** -* ENUMERATED: Encoding the enumerated type (X.690 8.4) -***************************************************************************************/ -template -struct ElementType > -{ - using tag_t = Tag; - - static bool inline is_matched(tag_value_t tag) {return tag == tag_t::value();} - - static void inline run(IE const& ie, EncoderCtx& ctx) - { - tag_t::encode(ctx); - size_t length = Length::get(ie.get()); - Length::encode(length, ctx); - Tools::put_bytes(ie.get(), length, ctx); - } - static void inline run(IE& ie, DecoderCtx& ctx, tag_value_t tag) - { - if(tag_t::value() != tag) - ctx.refErrorCtx().tagError(static_cast(tag)); - else - { - size_t length = Length::decode(ctx); - if(!length || length == indefinite_length) - ctx.refErrorCtx().sizeRangeError(length); - else - { - ASN_DECODER_TRACE("IE buffer: %s", static_cast(IE::ie_type), IE::name(), static_cast(tag), length, ctx.refBuffer().toString()); - typename IE::value_type value; - Tools::get_bytes(value, length, ctx); - ie.set(value); - } - } - } -}; -/*************************************************************************************** -* REAL: Encoding the real type (X.690 8.5) -***************************************************************************************/ -//missing... -/*************************************************************************************** -* BIT STRING: Encoding the bitstring type (X.690 8.6) -***************************************************************************************/ -template -struct ElementType > -{ - using tag_t = Tag; - using ctag_t = Tag; - - static bool inline is_matched(tag_value_t tag) {return tag == tag_t::value() || tag == ctag_t::value();} - - static void inline run(IE const& ie, EncoderCtx& ctx) - { - tag_t::encode(ctx); - - uint8_t tail = ie.get_bitqty() % 8; - - size_t length = ie.get_buffer().size(); - Length::encode(length + 1, ctx); - - auto & buffer = ctx.refBuffer(); - buffer.putByte((8 - tail) & 0x7F); - - if (tail) - { - buffer.putBytes(ie.get_buffer().data(), length - 1); - u8 last_byte = *(ie.get_buffer().data() + length - 1); - - last_byte <<= 8 - tail; - buffer.putBytes(&last_byte, 1); - } - else - { - buffer.putBytes(ie.get_buffer().data(), length); - } - } - static void inline run(IE& ie, DecoderCtx& ctx, tag_value_t tag) - { - ie.clear(); - if(tag_t::value() == tag) - { - size_t length = Length::decode(ctx); - if(!length || length == indefinite_length) - { - ctx.refErrorCtx().sizeRangeError(length); - } - else - { - ASN_DECODER_TRACE("IE buffer: %s", static_cast(IE::ie_type), IE::name(), static_cast(tag), length, ctx.refBuffer().toString()); - uint8_t const* data_in = ctx.refBuffer().getBytes(length); - if(data_in) - { - size_t len_bytes = length - 1; - size_t bitqty = len_bytes << 3; - - if((data_in[0] & 0x80) || (bitqty < data_in[0])) - { - ctx.refErrorCtx().valueRangeError(data_in[0]); - } - else - { - bitqty = bitqty - data_in[0]; - uint8_t* data_out = ctx.refAllocator().alloc_bytes(len_bytes); - if (data_out) - { - memcpy(data_out, &data_in[1], len_bytes); - const u8 shift = bitqty % 8; - if (shift) - { - data_out[len_bytes - 1] >>= 8 - shift; - } - ie.set_buffer(bitqty, data_out); - } - else - { - ctx.refErrorCtx().allocatorNoMem(0, len_bytes); - } - } - } - } - } - else if(ctag_t::value() == tag) - { - //todo: implement the segmented data - ctx.refErrorCtx().errorUnsupported(); - } - else - { - ctx.refErrorCtx().tagError(static_cast(tag)); - } - } -}; -/*************************************************************************************** -* OCTET STRING: Encoding the octetstring type (X.690 8.7) -* Restricted Character string types (X.690 8.23) -***************************************************************************************/ -template -struct ElementType > -{ - using tag_t = Tag; - using ctag_t = Tag; - - static bool inline is_matched(tag_value_t tag) {return tag == tag_t::value() || tag == ctag_t::value();} - - static void inline run(IE const& ie, EncoderCtx& ctx) - { - tag_t::encode(ctx); - size_t length = ie.get().size(); - Length::encode(length, ctx); - ctx.refBuffer().putBytes(ie.get().data(), length); - } - static void inline run(IE& ie, DecoderCtx& ctx, tag_value_t tag) - { - ie.clear(); - if(tag_t::value() == tag) - { - size_t length = Length::decode(ctx); - if(length == indefinite_length) - { - ctx.refErrorCtx().sizeRangeError(length); - } - else - { - ASN_DECODER_TRACE("IE buffer: %s", static_cast(IE::ie_type), IE::name(), static_cast(tag), length, ctx.refBuffer().toString()); - uint8_t const* data_in = ctx.refBuffer().getBytes(length); - if(data_in) - { - ie.set(length, data_in); - } - } - } - else if(ctag_t::value() == tag) - { - //todo: implement the segmented data - ctx.refErrorCtx().errorUnsupported(); - } - else - { - ctx.refErrorCtx().tagError(static_cast(tag)); - } - } -}; -/*************************************************************************************** -* NULL: Encoding the null type (X.690 8.8) -***************************************************************************************/ -template -struct ElementType > -{ - using tag_t = Tag; - - static bool inline is_matched(tag_value_t tag) {return tag == tag_t::value();} - - static void inline run(IE const& ie, EncoderCtx& ctx) - { - tag_t::encode(ctx); - Length::encode(0, ctx); - } - - static void inline run(IE& ie, DecoderCtx& ctx, tag_value_t tag) - { - if(tag_t::value() != tag) - ctx.refErrorCtx().tagError(static_cast(tag)); - else - { - size_t length = Length::decode(ctx); - if(length) - ctx.refErrorCtx().sizeRangeError(length); - ASN_DECODER_TRACE("IE buffer: %s", static_cast(IE::ie_type), IE::name(), static_cast(tag), length, ctx.refBuffer().toString()); - } - } -}; -/*************************************************************************************** -* SEQUENCE: Encoding the sequence type (X.690 8.9) -* SET: Encoding the set type (X.690 8.11) -***************************************************************************************/ -template -struct ElementType > -{ - using tag_t = Tag; - - static bool inline is_matched(tag_value_t tag) {return tag == tag_t::value();} - - static void inline run(IE const& ie, EncoderCtx& ctx) - { - auto & buffer = ctx.refBuffer(); - - tag_t::encode(ctx); - u8* len_ptr = buffer.advance(1); //reserve for the length - - VisitorEncoderSeq ve(ctx, ie); - ie.encode(ve); - - size_t len = buffer.begin() - len_ptr - 1; - if(len > 127) - { - len_ptr[0] = 0x80; //undefinite length form per X.690 8.1.3.6 - uint8_t buff[2] = {0}; // end-of-contents octets (X.690 8.1.5) - buffer.putBytes(buff, sizeof(buff)); - } - else - len_ptr[0] = static_cast(len); //one byte form per X.690 8.1.3.4 - } - - static void inline run(IE& ie, DecoderCtx& ctx, tag_value_t tag) //todo: support arbitrary order of IEs in SET - { - if(tag_t::value() != tag) - ctx.refErrorCtx().tagError(static_cast(tag)); - else - { - VisitorDecoderSeq vd(ctx, ie); - auto & buffer = ctx.refBuffer(); - - size_t length = Length::decode(ctx); - - ASN_DECODER_TRACE("IE buffer: %s", static_cast(IE::ie_type), IE::name(), static_cast(tag), length, ctx.refBuffer().toString()); - - if(length == indefinite_length) - { - ie.decode(vd); - if(ctx) - { - if(invalid_tag != vd.get_unhandled_tag()) - { - tag_value_t _tag = vd.get_unhandled_tag(); - if(IE::constraint_t::extended) //skip the unknown extension now - { - tag_value_t const* tag_ptr = &_tag; - size_t _length; - do - { - _tag = OpenType::decode(ctx, _length, tag_ptr); - tag_ptr = nullptr; - - } while(ctx && !(_tag == 0 && _length == 0)); - } - else // it should be the end-of-contents octets (8.1.5) - { - uint8_t const* data_in = ctx.refBuffer().getBytes(1); - if(data_in && (_tag || data_in[0])) - { - ctx.refErrorCtx().errorWrongEndOfContent(); - } - } - } - else - { - uint8_t const* data_in = ctx.refBuffer().getBytes(2); - if(data_in && (data_in[0] || data_in[1])) - { - ctx.refErrorCtx().errorWrongEndOfContent(); - } - } - } - } - else - { - if (buffer.getBytesLeft() < length) - { - ctx.refErrorCtx().lengthErrorBytes(buffer.getBytesLeft(), length); - } - else - { - DecoderCtx::buf_type::pointer end = buffer.end(); - buffer.set_end(buffer.begin() + length); - ie.decode(vd); - tag_value_t _tag = vd.get_unhandled_tag(); - if(invalid_tag != _tag) - { - if(IE::constraint_t::extended) //skip the unknown extension now - { - tag_value_t const* tag_ptr = &_tag; - size_t _length; - do - { - _tag = OpenType::decode(ctx, _length, tag_ptr); - tag_ptr = nullptr; - - } while(ctx && buffer.getBytesLeft() > 0); - } - else - ctx.refErrorCtx().tagError(static_cast(tag)); // unexpected tag - } - buffer.set_end(end); - } - } - - } - } -}; -/*************************************************************************************** -* SEQUENCE OF: Encoding the sequence-of type (X.690 8.10) -* SET OF: Encoding the set-of type (X.690 8.12) -***************************************************************************************/ -template -struct ElementType > -{ - using tag_t = Tag; - - static bool inline is_matched(tag_value_t tag) {return tag == tag_t::value();} - - static void inline run(IE const& ie, EncoderCtx& ctx) - { - auto & buffer = ctx.refBuffer(); - - tag_t::encode(ctx); - u8* len_ptr = buffer.advance(1); //reserve for the length - - for (auto& elem : ie) - { - Element::run(elem, ctx); - } - - size_t len = buffer.begin() - len_ptr - 1; - if(len > 127) - { - len_ptr[0] = 0x80; //undefinite length form per X.690 8.1.3.6 - uint8_t buff[2] = {0}; // end-of-contents octets (X.690 8.1.5) - buffer.putBytes(buff, sizeof(buff)); - } - else - len_ptr[0] = static_cast(len); //one byte form per X.690 8.1.3.4 - } - static void inline run(IE& ie, DecoderCtx& ctx, tag_value_t tag) - { - ie.clear(); - - if(tag_t::value() != tag) - ctx.refErrorCtx().tagError(static_cast(tag)); - else - { - auto & buffer = ctx.refBuffer(); - - size_t length = Length::decode(ctx); - - ASN_DECODER_TRACE("IE buffer: %s", static_cast(IE::ie_type), IE::name(), static_cast(tag), length, ctx.refBuffer().toString()); - - if(length == indefinite_length) - { - tag_value_t elm_tag = get_tag(ctx); - - while(ctx && Element::is_matched(elm_tag)) - { - add_element(ie, ctx, &elm_tag); - elm_tag = get_tag(ctx); - } - - if(ctx) - { - uint8_t const* data_in = ctx.refBuffer().getBytes(1); - if(data_in && (elm_tag || data_in[0])) - { - ctx.refErrorCtx().errorWrongEndOfContent(); - } - } - } - else - { - if (buffer.getBytesLeft() < length) - { - ctx.refErrorCtx().lengthErrorBytes(buffer.getBytesLeft(), length); - } - else - { - DecoderCtx::buf_type::pointer end = buffer.end(); - buffer.set_end(buffer.begin() + length); - - while(ctx && buffer.getBytesLeft() > 0) - add_element(ie, ctx); - - buffer.set_end(end); - } - } - } - } - -private: - static void inline add_element(IE& ie, DecoderCtx& ctx, tag_value_t const* elm_tag = nullptr) - { - uint8_t* data = ctx.refAllocator().alloc_bytes(sizeof(typename IE::value_type)); - if (data) - { - typename IE::value_type * v = new (data) typename IE::value_type; - v->clear(); - ie.push_back(*v); - Element::run(*v, ctx, elm_tag); - } - else - { - ctx.refErrorCtx().allocatorNoMem(0, sizeof(typename IE::value_type)); - } - } -}; - -/*************************************************************************************** -* CHOICE: Encoding the choice type -***************************************************************************************/ -struct ChoiceVisitorEncoder -{ - ChoiceVisitorEncoder(EncoderCtx& ctx) : m_ctx(ctx) {} - - template - bool operator()(IE const& ie) - { - Element::run(ie, m_ctx); - return static_cast(m_ctx); - } - - EncoderCtx& m_ctx; -}; - -struct ChoiceVisitorDecoder -{ - ChoiceVisitorDecoder(DecoderCtx& ctx, tag_value_t tag) : m_ctx(ctx), m_tag(tag) {} - - template bool operator()(IE& ie) - { - Element::run(ie, m_ctx, &m_tag); - return static_cast(m_ctx); - } - - DecoderCtx& m_ctx; - tag_value_t m_tag; -}; - -template -struct ElementType > -{ - struct Selector - { - Selector(tag_value_t tag) : m_tag(tag) {} - - template void operator()(size_t idx) - { - if(!m_valid && Element::is_matched(m_tag)) - { - m_index = idx; - m_valid = true; - } - } - - size_t get_idx() const {return m_index;} - bool is_valid() const {return m_valid;} - - private: - tag_value_t m_tag; - size_t m_index {0}; - bool m_valid {false}; - }; - - static bool inline is_matched(tag_value_t tag) - { - Selector selector {tag}; - IE::enumerate(selector); - return selector.is_valid(); - } - - static void inline run(IE const& ie, EncoderCtx& ctx) - { - ChoiceVisitorEncoder ve(ctx); - - if(ctx && !ie.encode(ve)) - ctx.refErrorCtx().tagError(ie.get_index()); - } - static void inline run(IE& ie, DecoderCtx& ctx, tag_value_t tag) - { - ie.clear(); - - Selector selector {tag}; - IE::enumerate(selector); - - if(!selector.is_valid()) - ctx.refErrorCtx().tagError(static_cast(tag)); - else - { - ChoiceVisitorDecoder vd {ctx, tag}; - if(ctx && !ie.decode(selector.get_idx(), vd)) - ctx.refErrorCtx().tagError(ie.get_index()); - } - } -}; - -template -struct ElementType > -{ - static bool inline is_matched(tag_value_t _tag) {return ExplicitCodec::is_matched(_tag);} - - static void inline run(IE const& ie, EncoderCtx& ctx) - { - ExplicitCodec::run(ie, ctx); - } - - static void inline run(IE& ie, DecoderCtx& ctx, tag_value_t tag) - { - ExplicitCodec::run(ie, ctx, tag); - } -}; - -/*************************************************************************************** -* IE_OBJECT_IDENTIFIER: Encoding the object identifier type -***************************************************************************************/ -template -struct ElementType > -{ - using tag_t = Tag; - - static bool inline is_matched(tag_value_t _tag) {return _tag == tag_t::value();} - - static void inline run(IE const& ie, EncoderCtx& ctx) - { - tag_t::encode(ctx); - size_t length = ie.get().size(); - Length::encode(length, ctx); - ctx.refBuffer().putBytes(ie.get().data(), length); - } - static void inline run(IE& ie, DecoderCtx& ctx, tag_value_t tag) - { - ie.clear(); - if(tag_t::value() == tag) - { - size_t length = Length::decode(ctx); - if(!length || length == indefinite_length) - { - ctx.refErrorCtx().sizeRangeError(length); - } - else - { - ASN_DECODER_TRACE("IE buffer: %s", static_cast(IE::ie_type), IE::name(), static_cast(tag), length, ctx.refBuffer().toString()); - uint8_t const* data_in = ctx.refBuffer().getBytes(length); - if(data_in) - { - ie.set(length, data_in); - } - } - } - else - { - ctx.refErrorCtx().tagError(static_cast(tag)); - } - } -}; - -/*************************************************************************************** -* T_OBJFIELD_FTV -***************************************************************************************/ -template -struct ElementType > -{ - using tag_t = Tag; - - static bool inline is_matched(tag_value_t _tag) {return _tag == tag_t::value();} -}; - -/*************************************************************************************** -* T_OBJFIELD_TF -***************************************************************************************/ -template -struct ElementType > -{ - struct Selector - { - Selector(tag_value_t tag) : m_tag(tag) {} - - template void operator()(size_t idx) - { - if(Element::is_matched(m_tag)) - { - m_index = idx; - m_valid = true; - } - } - - size_t get_idx() const {return m_index;} - bool is_valid() const {return m_valid;} - - private: - tag_value_t m_tag; - size_t m_index {0}; - bool m_valid {false}; - }; - - static bool inline is_matched(tag_value_t tag) - { - Selector selector(tag); - IE::enumerate(selector); - - return selector.is_valid(); - } -}; - -/*************************************************************************************** -* Identifier -***************************************************************************************/ -template -struct Identifier -{ - static bool inline is_matched(tag_value_t _tag) - { - return ElementType::is_matched(_tag); - } - - static void inline run(IE const& ie, EncoderCtx& ctx) - { - ElementType::run(ie, ctx); - } - - static void inline run(IE& ie, DecoderCtx& ctx, tag_value_t tag) - { - ElementType::run(ie, ctx, tag); - } -}; - -template -struct Identifier > -{ - static bool inline is_matched(tag_value_t _tag) {return ExplicitCodec::is_matched(_tag);} - - static void inline run(IE const& ie, EncoderCtx& ctx) - { - ExplicitCodec::run(ie, ctx); - } - - static void inline run(IE& ie, DecoderCtx& ctx, tag_value_t tag) - { - ExplicitCodec::run(ie, ctx, tag); - } -}; - -/*************************************************************************************** -* COMMON: Element -***************************************************************************************/ -template -struct Element -{ - static bool inline is_matched(tag_value_t _tag) - { - return Identifier::is_matched(_tag); - } - - static void inline run(IE const& ie, EncoderCtx& ctx) - { - if (ctx) - { - ASN_ENCODER_TRACE("IE buffer: %s", static_cast(IE::ie_type), IE::name(), ctx.refBuffer().toString()); - ctx.ie_name(IE::name()); - Identifier::run(ie, ctx); - } - } - static void inline run(IE& ie, DecoderCtx& ctx, tag_value_t const* tag_ptr = nullptr) - { - if (ctx) - { - ctx.ie_name(IE::name()); - - tag_value_t tag = tag_ptr ? *tag_ptr : get_tag(ctx); - if(ctx) - Identifier::run(ie, ctx, tag); - } - } -}; - -} //namespace ber -} //namespace asn diff --git a/e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/ber/common.hpp b/e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/ber/common.hpp deleted file mode 100755 index edd830b..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/ber/common.hpp +++ /dev/null @@ -1,51 +0,0 @@ -#pragma once -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries -#include - -// Local Includes: Application specific classes, functions, and libraries -#include "asn/asn.hpp" -#include "asn/buffer.hpp" -#include "asn/ber/context.hpp" -#include "asn/ber/tools.hpp" - -//#define ASN_DECODER_TRACE_ENABLE -//#define ASN_ENCODER_TRACE_ENABLE - -#ifdef ASN_DECODER_TRACE_ENABLE -#define ASN_DECODER_TRACE(FMT, ...) printf(FMT "\n", __VA_ARGS__) -#else -#define ASN_DECODER_TRACE(...) -#endif - -#ifdef ASN_ENCODER_TRACE_ENABLE -#define ASN_ENCODER_TRACE(FMT, ...) printf(FMT "\n", __VA_ARGS__) -#else -#define ASN_ENCODER_TRACE(...) -#endif - -namespace asn { -namespace ber { - -template struct Element; - -} //namespace ber -} //namespace asn diff --git a/e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/ber/context.hpp b/e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/ber/context.hpp deleted file mode 100755 index 4159f00..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/ber/context.hpp +++ /dev/null @@ -1,118 +0,0 @@ -#pragma once -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries -#include - -// Local Includes: Application specific classes, functions, and libraries -#include "asn/utility.hpp" -#include "asn/buffer.hpp" -#include "asn/error_context.hpp" - -namespace asn { -namespace ber { - -/******************************************************************************** -EncoderCtx -*********************************************************************************/ -class EncoderCtx : boost::noncopyable -{ -public: - typedef buffer buf_type; - - EncoderCtx(u8* data, size_t size) - : m_buffer{ m_errCtx } - { - Reset(data, size); - } - - template - explicit EncoderCtx(u8(&buff)[SIZE]) - : EncoderCtx(buff, SIZE) - { - } - - explicit EncoderCtx() - : EncoderCtx(nullptr, 0) - { - } - - buf_type& refBuffer() { return m_buffer; } - error_context& refErrorCtx() { return m_errCtx; } - explicit operator bool() const { return static_cast(m_errCtx); } - - void Reset(void* data = nullptr, size_t size = 0) - { - m_buffer.reset(static_cast(data), size); - m_errCtx.reset(); - } - - //Name of the being processed IE - void ie_name(const char* name) { m_errCtx.ie_name(name); } - char const* ie_name() const { return m_errCtx.ie_name(); } - -private: - template - friend struct Encode; - - error_context m_errCtx; - buf_type m_buffer; -}; - - -/******************************************************************************** -DecoderCtx -*********************************************************************************/ -class DecoderCtx : boost::noncopyable -{ -public: - typedef buffer buf_type; - typedef allocator alloc_type; - - DecoderCtx(const void* data = nullptr, size_t size = 0, void* alloc_buffer = nullptr, size_t alloc_buffer_size = 0) - : m_buffer{ m_errCtx } - { - reset(data, size, alloc_buffer, alloc_buffer_size); - } - - buf_type& refBuffer() { return m_buffer; } - alloc_type& refAllocator() { return m_allocator; } - error_context& refErrorCtx() { return m_errCtx; } - explicit operator bool() const { return static_cast(m_errCtx); } - - void reset(const void* data = nullptr, size_t size = 0, void* alloc_buffer = nullptr, size_t alloc_buffer_size = 0) - { - m_allocator.reset(alloc_buffer, alloc_buffer_size); - m_buffer.reset(static_cast(data), size); - m_errCtx.reset(); - } - - //Name of the being processed IE - void ie_name(const char* name) { m_errCtx.ie_name(name); } - char const* ie_name() const { return m_errCtx.ie_name(); } - -private: - error_context m_errCtx; - buf_type m_buffer; - alloc_type m_allocator; -}; - -} //namespace ber -} //namespace asn diff --git a/e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/ber/length.hpp b/e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/ber/length.hpp deleted file mode 100755 index 51b387c..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/ber/length.hpp +++ /dev/null @@ -1,103 +0,0 @@ -#pragma once -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries - -// Local Includes: Application specific classes, functions, and libraries - -namespace asn { -namespace ber { - -constexpr size_t indefinite_length = std::numeric_limits::max(); - -/*************************************************************************************** -* Length -***************************************************************************************/ -struct Length -{ - static size_t inline get(int64_t value) - { - size_t length = 1; - - if(value != 0) - { - size_t extra_sign_bits = __builtin_clrsbll(value); - length = sizeof(value) - (extra_sign_bits >> 3) ; - } - - return length; - } - - static void inline encode(size_t length, EncoderCtx& ctx) - { - auto & buffer = ctx.refBuffer(); - - if(length <= 0x7F) - { - buffer.putByte(static_cast(length)); - } - else - { - size_t lenlen = get(length); - if(lenlen > 0x7F) - { - ctx.refErrorCtx().sizeRangeError(length, 0, 0x7F); - } - else - { - uint8_t bt = static_cast(lenlen); - bt |= 0x80; - buffer.putByte(bt); - Tools::put_bytes(length, lenlen, ctx); - } - } - - } - - static size_t inline decode(DecoderCtx& ctx) - { - auto & buffer = ctx.refBuffer(); - size_t length = 0; - - uint8_t const* data = buffer.getBytes(1); - - if(data) - { - if(!(data[0] & 0x80)) - { - length = data[0]; - } - else - { - size_t lenlen = data[0] & 0x7F; - - if(lenlen) - Tools::get_bytes(length, lenlen, ctx); - else - length = indefinite_length; - } - } - - return length; - } -}; - -} //namespace ber -} //namespace asn diff --git a/e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/ber/opentype.hpp b/e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/ber/opentype.hpp deleted file mode 100755 index 0ff9366..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/ber/opentype.hpp +++ /dev/null @@ -1,73 +0,0 @@ -#pragma once -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries - -// Local Includes: Application specific classes, functions, and libraries - -namespace asn { -namespace ber { - -/*************************************************************************************** -* OpenType -***************************************************************************************/ -struct OpenType -{ - static tag_value_t decode(DecoderCtx& ctx, size_t& length, tag_value_t const* tag_ptr = nullptr) - { - auto & buffer = ctx.refBuffer(); - tag_value_t tag = tag_ptr ? *tag_ptr : get_tag(ctx); - length = Length::decode(ctx); - - if(!length) - { - //just return - } - else if(length == indefinite_length) - { - tag_value_t _tag; - size_t _length; - do - { - _tag = OpenType::decode(ctx, _length); - - } while(ctx && !(_tag == 0 && _length == 0)); - } - else - { - if (buffer.getBytesLeft() < length) - { - ctx.refErrorCtx().lengthErrorBytes(buffer.getBytesLeft(), length); - } - else - { - size_t _length; - DecoderCtx::buf_type::pointer end = buffer.end(); - buffer.set_end(buffer.begin() + length); - decode(ctx, _length); - buffer.set_end(end); - } - } - return tag; - } -}; - -} //namespace ber -} //namespace asn \ No newline at end of file diff --git a/e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/ber/tag.hpp b/e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/ber/tag.hpp deleted file mode 100755 index dba9733..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/ber/tag.hpp +++ /dev/null @@ -1,163 +0,0 @@ -#pragma once -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries - -// Local Includes: Application specific classes, functions, and libraries - -#define IE_CLASS_SHIFT 6 -#define IE_PC_SHIFT 5 -#define IE_BIG_TAG_FST_OCTET 0b011111 - -namespace asn { -namespace ber { - -constexpr tag_value_t invalid_tag = std::numeric_limits::max(); - -/*************************************************************************************** -* Tag -***************************************************************************************/ -template -struct Tag; - -template -struct Tag > -{ - static constexpr tag_value_t value() - { - tag_value_t v = static_cast(IE::asn_identifier_t::class_type); - v <<= IE_CLASS_SHIFT; - v = constructed ? (v | (1u << IE_PC_SHIFT)) : v; - v |= static_cast(IE::asn_identifier_t::tag_value); - return v; - } - - static void inline encode(EncoderCtx& ctx) - { - ctx.refBuffer().putByte(static_cast(value())); - } -}; - - -template -struct Tag= 31) > > -{ - static constexpr tag_value_t value() - { - static_assert(IE::asn_identifier_t::tag_value > 0, "null tag value"); - - tag_value_t v = static_cast(IE::asn_identifier_t::class_type); - v <<= IE_CLASS_SHIFT; - v = constructed ? (v | (1u << IE_PC_SHIFT)) : v; - v |= IE_BIG_TAG_FST_OCTET; - - size_t leadbits = __builtin_clzll(IE::asn_identifier_t::tag_value); - tag_value_t tv = IE::asn_identifier_t::tag_value << leadbits; - size_t length = sizeof(tag_value_t)*CHAR_BIT - leadbits; - - size_t shift = sizeof(tag_value_t)*CHAR_BIT - 7; - - size_t lb = length % 7; - if(lb) - { - v <<= 8; - v |= 0x80; - v |= static_cast(tv >> (shift + 7 - lb)); - tv <<= lb; - length -= lb; - } - - while(length) - { - v <<= 8; - v |= 0x80; - v |= static_cast(tv >> shift); - tv <<= 7; - length -= 7; - } - v &= ((tag_value_t)-1) & ~((tag_value_t) 0x80); - - return v; - } - - static void inline encode(EncoderCtx& ctx) - { - size_t size = 0; - tag_value_t tv = data(size); - ctx.refBuffer().putBytes(reinterpret_cast(&tv), size); - } - -private: - - static constexpr tag_value_t data(size_t& size) - { - tag_value_t rv = 0; - tag_value_t tv = value(); - size = sizeof(tag_value_t) - (__builtin_clzll(tv) >> 3); - - uint8_t* ptr = reinterpret_cast(&rv); - - size_t shift = (size - 1) * 8; - for(size_t i = 0; i < size; ++i) - { - ptr[i] = static_cast(tv >> shift); - shift -= 8; - } - - return rv; - } -}; - -inline -tag_value_t get_tag(DecoderCtx& ctx) -{ - tag_value_t rv = 0; - auto & buffer = ctx.refBuffer(); - uint8_t const* data = buffer.getBytes(1); - - if (data) - { - rv = data[0]; - if((data[0] & 0x1F) == IE_BIG_TAG_FST_OCTET) - { - size_t limit = sizeof(tag_value_t) - 1; - while((data = buffer.getBytes(1))) - { - if(!limit) - { - ctx.refErrorCtx().sizeRangeError(0); - break; - } - - rv <<= 8; - rv |= data[0]; - --limit; - - if(!(data[0] & 0x80)) - break; - } - } - } - return rv; -} - -} //namespace ber -} //namespace asn - diff --git a/e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/ber/tools.hpp b/e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/ber/tools.hpp deleted file mode 100755 index 9f9bc9b..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/ber/tools.hpp +++ /dev/null @@ -1,68 +0,0 @@ -#pragma once -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries - -// Local Includes: Application specific classes, functions, and libraries - -namespace asn { -namespace ber { - -struct Tools -{ - typedef bit_accessor_cross_byte bit_accessor; - - - template - static void put_bytes(T value, size_t length, EncoderCtx& ctx) - { - auto & buffer = ctx.refBuffer(); - - size_t shift = (length - 1) << 3; - for(size_t i = 0; i < length; ++i) - { - buffer.putByte(static_cast(value >> shift)); - shift -= 8; - } - } - - template - static void get_bytes(T& value, size_t length, DecoderCtx& ctx) - { - auto & buffer = ctx.refBuffer(); - - value = 0; - uint8_t const* data = buffer.getBytes(length); - - if(data) - { - value = data[0]; - for(size_t i = 1; i < length; ++i) - { - value <<= 8; - value |= data[i]; - } - } - } - -}; - -} //namespace ber -} //namespace asn diff --git a/e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/ber/visitor.hpp b/e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/ber/visitor.hpp deleted file mode 100755 index 98c1f05..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/ber/visitor.hpp +++ /dev/null @@ -1,177 +0,0 @@ -#pragma once -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries - -// Local Includes: Application specific classes, functions, and libraries - -namespace asn { -namespace ber { - -/*************************************************************************************** -* VisitorEncoder -***************************************************************************************/ -struct VisitorEncoder -{ - VisitorEncoder(EncoderCtx& ctx) : m_ctx(ctx){} - - template bool operator() (ELM const& elm) - { - if(m_ctx) - Element::run(elm, m_ctx); - return static_cast(m_ctx); - } -private: - EncoderCtx& m_ctx; -}; - -/*************************************************************************************** -* VisitorDecoder -***************************************************************************************/ -struct VisitorDecoder -{ - VisitorDecoder(DecoderCtx& ctx, tag_value_t tag) : m_ctx(ctx), m_tag(tag){} - - template bool operator() (ELM& elm) - { - if(m_ctx) - Element::run(elm, m_ctx, &m_tag); - return static_cast(m_ctx); - } - -private: - DecoderCtx& m_ctx; - tag_value_t m_tag; -}; - -/*************************************************************************************** -* VisitorAdapter -***************************************************************************************/ -template -struct VisitorAdapter //default -{ - static void inline run(IE const& ie, EncoderCtx& ctx, Container const& cont) - { - Element::run(ie, ctx); - } - static void inline run(IE& ie, DecoderCtx& ctx, Container const& cont, tag_value_t tag) - { - Element::run(ie, ctx, &tag); - } -}; - -template -struct VisitorAdapter > -{ - static void inline run(IE const& ie, EncoderCtx& ctx, Container const& cont) - { - VisitorEncoder v(ctx); - bool rv = ie.encode(v, cont); - if(!rv && static_cast(ctx)) - { - ctx.refErrorCtx().errorNoObject(Container::name()); - } - } - static void inline run(IE& ie, DecoderCtx& ctx, Container const& cont, tag_value_t tag) - { - VisitorDecoder v(ctx, tag); - bool rv = ie.decode(v, cont); - if(!rv && static_cast(ctx)) - { - ctx.refErrorCtx().errorNoObject(Container::name()); - } - } -}; - -/*************************************************************************************** -* VisitorEncoderSeq -***************************************************************************************/ -template -struct VisitorEncoderSeq -{ - VisitorEncoderSeq(EncoderCtx& ctx, CONT const& cont) : m_ctx(ctx), m_cont(cont){} - - template void operator() (ELM const& elm) - { - if(ELM::optional) - { - if(elm.is_valid()) - VisitorAdapter::run(elm, m_ctx, m_cont); - } - else - VisitorAdapter::run(elm, m_ctx, m_cont); - } - - EncoderCtx& m_ctx; - CONT const& m_cont; -}; - - -/*************************************************************************************** -* VisitorDecoderSeq -***************************************************************************************/ -template -struct VisitorDecoderSeq -{ - VisitorDecoderSeq(DecoderCtx& ctx, CONT const& cont) : m_ctx(ctx), m_cont(cont){} - - template void operator() (ELM& elm) - { - if(m_ctx) - { - tag_value_t tag; - - if(invalid_tag == m_tag && m_ctx.refBuffer().getBytesLeft()) - { - m_tag = get_tag(m_ctx); - } - tag = m_tag; - - if(m_ctx) - { - if (!Element::is_matched(tag)) - { - if(!ELM::optional) - { - m_ctx.refErrorCtx().tagError(static_cast(tag)); - } - } - else - { - m_tag = invalid_tag; - VisitorAdapter::run(elm, m_ctx, m_cont, tag); - elm.setpresent(true); - } - } - } - } - - tag_value_t get_unhandled_tag() const {return m_tag;} - - DecoderCtx& m_ctx; - tag_value_t m_tag {invalid_tag}; - CONT const& m_cont; -}; - -} //namespace ber -} //namespace asn diff --git a/e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/buffer.hpp b/e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/buffer.hpp deleted file mode 100755 index 4022b48..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/buffer.hpp +++ /dev/null @@ -1,689 +0,0 @@ -#pragma once -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -*******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries -#include - -// Local Includes: Application specific classes, functions, and libraries -#include "asn/error_context.hpp" -#include "value_traits.hpp" - -//#define CODEC_BIT_TRACE_ENABLE -#ifdef CODEC_BIT_TRACE_ENABLE - #define CODEC_BIT_TRACE(FMT, args...) printf("%s[%u]:" FMT "\n", std::strrchr(__FILE__, '/') + 1, __LINE__, ##args) -#else - #define CODEC_BIT_TRACE(...) -#endif - -namespace asn { - -template -struct bit_accessor; - -template -struct bit_accessor_cross_byte; - -template -class buffer -{ -public: - typedef PTR pointer; - - explicit buffer(error_context& err) - : m_errCtx(err) - {} - - void reset(pointer data, u32 size) - { - m_start = data; - m_end = m_start + size; - m_current = m_start; - m_shift = 0; - } - - u32 getOffset() const { return begin() - m_start; } - - u32 getBytesLeft() const { return end() - begin(); } - u32 getBytesUsed() const { return getOffset() + (get_shift() ? 1 : 0); } - - u8 get_shift() const { return m_shift; } - void reset_shift() { m_shift = 0; } - void byte_align() { if (get_shift()) { m_shift = 0; ++m_current; } } - - pointer advance(u32 delta) { pointer p = begin(); m_current += delta; return p; } - - pointer begin() const { return m_current; } - - void set_begin(pointer ptr, u8 bit_shift) - { - if (m_start <= ptr && ptr <= end()) - { - m_current = ptr; - m_shift = bit_shift; - } - } - - pointer end() const { return m_end; } - void set_end(pointer v) { m_end = v; } - - bool checkAlignment(char const* name, u8 const mask = 0xFF) - { - if (0 == (get_shift() & mask)) return true; - m_errCtx.alignmentError(name, get_shift()); - return false; - } - - bool checkBytesLeft(char const* name, u32 const num_bytes) - { - if (getBytesLeft() >= num_bytes) return true; - m_errCtx.lengthErrorBytes(name, getBytesLeft(), num_bytes); - return false; - } - - bool checkBitsLeft(char const* name, u32 const num_bits) - { - if (getBitsLeft() >= num_bits) return true; - m_errCtx.lengthErrorBits(name, getBitsLeft(), num_bits); - return false; - } - - bool checkBytesAndAlignment(char const* name, u32 const num_bytes, u8 const mask = 0xFF) - { - if (getBytesLeft() >= num_bytes) - { - if (0 == (get_shift() & mask)) return true; - m_errCtx.alignmentError(name, get_shift()); - } - else - { - m_errCtx.lengthErrorBytes(name, getBytesLeft(), num_bytes); - } - return false; - } - - pointer getBytes(char const* name, u32 num_bytes) - { - if (checkBytesAndAlignment(name, num_bytes)) - { - return advance(num_bytes); - } - return nullptr; - } - - //NOTE! num_bytes should be set to minimal number of bytes expected - pointer getBytes(char const* name, u32 max_requested, u32& num_bytes) - { - if (checkAlignment(name)) - { - u32 const left = getBytesLeft(); - if (left >= num_bytes) - { - num_bytes = (left > max_requested) ? max_requested : left; - return advance(num_bytes); - } - - m_errCtx.lengthErrorBytes(name, getBytesLeft(), num_bytes); - } - return nullptr; - } - - bool putByte(char const* name, u8 byte) - { - if (checkBytesAndAlignment(name, 1)) - { - begin()[0] = byte; - ++m_current; - return true; - } - return false; - } - - bool putBytes(char const* name, void const* in, u32 num_bytes) - { - if (checkBytesAndAlignment(name, num_bytes)) - { - std::memcpy(begin(), in, num_bytes); - m_current += num_bytes; - return true; - } - return false; - } - - bool checkAlignment(u8 const mask = 0xFF) - { - if (0 == (get_shift() & mask)) return true; - m_errCtx.alignmentError(get_shift()); - return false; - } - - bool checkBytesLeft(u32 const num_bytes) - { - if (getBytesLeft() >= num_bytes) return true; - m_errCtx.lengthErrorBytes(getBytesLeft(), num_bytes); - return false; - } - - bool checkBitsLeft(u32 const num_bits) - { - if (getBitsLeft() >= num_bits) return true; - m_errCtx.lengthErrorBits(getBitsLeft(), num_bits); - return false; - } - - bool checkBytesAndAlignment(u32 const num_bytes, u8 const mask = 0xFF) - { - if (getBytesLeft() >= num_bytes) - { - if (0 == (get_shift() & mask)) return true; - m_errCtx.alignmentError(get_shift()); - } - else - { - m_errCtx.lengthErrorBytes(getBytesLeft(), num_bytes); - } - return false; - } - - pointer getBytes(u32 num_bytes) - { - if (checkBytesAndAlignment(num_bytes)) - { - return advance(num_bytes); - } - return nullptr; - } - - //NOTE! num_bytes should be set to minimal number of bytes expected - pointer getBytes(u32 max_requested, u32& num_bytes) - { - if (checkAlignment()) - { - u32 const left = getBytesLeft(); - if (left >= num_bytes) - { - num_bytes = (left > max_requested) ? max_requested : left; - return advance(num_bytes); - } - - m_errCtx.lengthErrorBytes(getBytesLeft(), num_bytes); - } - return nullptr; - } - - bool putByte(u8 byte) - { - if (checkBytesAndAlignment(1)) - { - begin()[0] = byte; - ++m_current; - return true; - } - return false; - } - - bool putBytes(void const* in, u32 num_bytes) - { - if (num_bytes) - { - if(checkBytesAndAlignment(num_bytes)) - { - std::memcpy(begin(), in, num_bytes); - m_current += num_bytes; - } - else - return false; - } - return true; - } - - char const* toString() const - { - static char sz[64]; - u8 const* p = begin(); - snprintf(sz, sizeof(sz), "%02X %02X %02X %02X [%02X]=%p@%u..%p -%u bits: +%u bytes", p[-4], p[-3], p[-2], p[-1], p[0], p - , getOffset(), end(), get_shift(), getBytesLeft()); - return sz; - } - -private: - template - friend class bit_accessor; - - template - friend struct bit_accessor_cross_byte; - - template - void push_u8(U value) { *m_current++ = static_cast(value); } - template - void put_u8(U value) { m_current[0] = static_cast(value); } - -//khxm68: TODO: won't compile without it. WTF?! -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wmaybe-uninitialized" - u8 get_u8() const { return m_current[0]; } -#pragma GCC diagnostic pop - u8 extract_u8(u8 value, u8 mask, u8 shift) const - { return (get_u8() & ~(mask << shift)) | ((value & mask) << shift); } - - u16 get_u16() const { return (static_cast(m_current[0]) << 8) | m_current[1]; } - u16 extract_u16(u16 value, u16 mask, u16 shift) const - { return (get_u16() & ~(mask << shift)) | ((value & mask) << shift); } - - u32 get_u24() const { return (static_cast(m_current[0]) << 16) | (static_cast(m_current[1]) << 8) | m_current[2]; } - u32 extract_u24(u32 value, u32 mask, u32 shift) const - { return (get_u24() & ~(mask << shift)) | ((value & mask) << shift); } - - u32 get_u32() const { return (static_cast(m_current[0]) << 24) | (static_cast(m_current[1]) << 16) | (static_cast(m_current[2]) << 8) | m_current[3]; } - u32 extract_u32(u32 value, u32 mask, u32 shift) const - { return (get_u32() & ~(mask << shift)) | ((value & mask) << shift); } - - u32 getBitsLeft() const { return begin() == end() ? 0 : (getBytesLeft()*8 - get_shift()); } - - void bit_advance(u8 num_bits) - { - m_shift += num_bits; - if (get_shift() > 7) - { - reset_shift(); - m_current++; - } - } - - pointer m_current; - pointer m_end; - pointer m_start; - u8 m_shift; - error_context& m_errCtx; -}; - -template //LSB 1..7 bits -struct bit_accessor -{ - static_assert(IE::length::value > 0 && IE::length::value < 8, "something wrong with traits!"); - - static void put(u8 value, buffer& buf) - { - u8 const mask = static_cast((1u << IE::length::value) - 1); - u8 const shift = buf.get_shift(); - u8 const data = buf.extract_u8(value, mask, shift); - buf.put_u8(data); - - CODEC_BIT_TRACE("put shift=%u(%u) data[%u]=%02X(%02X) mask=%04X: %s", shift, buf.get_shift() - , IE::length::value, data, value, mask, buf.toString()); - - buf.bit_advance(IE::length::value); - } - - static u8 get(buffer& buf) - { - u8 const mask = static_cast((1u << IE::length::value) - 1); - u8 const shift = buf.get_shift(); - u8 const data = (buf.get_u8() >> shift) & mask; - - CODEC_BIT_TRACE("get shift=%u(%u) data[%u]=%02X mask=%02X: %s", shift, buf.get_shift() - , IE::length::value, data, mask, buf.toString()); - - buf.bit_advance(IE::length::value); - return data; - } -}; - -template //LSB 9..15 bits -struct bit_accessor -{ - static_assert(IE::length::value > 8 && IE::length::value < 16, "something wrong with traits!"); - - static void put(u16 value, buffer& buf) - { - u16 const mask = static_cast((1u << IE::length::value) - 1); - u16 const shift = buf.get_shift(); - u16 const data = buf.extract_u16(value, mask, shift); - buf.push_u8(data >> 8); - buf.put_u8(data); - - CODEC_BIT_TRACE("put shift=%u(%u) data[%u]=%04X(%04X) mask=%04X: %s", shift, buf.get_shift() - , IE::length::value, data, value, mask, buf.toString()); - - buf.bit_advance(IE::length::value - 8); - } - - static u16 get(buffer& buf) - { - u16 const mask = static_cast((1u << IE::length::value) - 1); - u16 const shift = buf.get_shift(); - u16 const data = (buf.get_u16() >> shift) & mask; - buf.m_current += 1; - - CODEC_BIT_TRACE("get shift=%u(%u) data[%u]=%04X mask=%04X: %s", shift, buf.get_shift() - , IE::length::value, data, mask, buf.toString()); - - buf.bit_advance(IE::length::value - 8); - return data; - } -}; - -template //LSB 17..24 bits -struct bit_accessor -{ - static_assert(IE::length::value > 16 && IE::length::value <= 24, "something wrong with traits!"); - - static void put(u32 value, buffer& buf) - { - u32 const mask = static_cast((1u << IE::length::value) - 1); - u32 const shift = buf.get_shift(); - u32 const data = buf.extract_u24(value, mask, shift); - - buf.push_u8(data >> 16); - buf.push_u8(data >> 8); - buf.put_u8(data); - - CODEC_BIT_TRACE("put shift=%u(%u) data[%u]=%06X(%06X) mask=%06X: %s", shift, buf.get_shift() - , IE::length::value, data, value, mask, buf.toString()); - - buf.bit_advance(IE::length::value - 16); - } - - static u32 get(buffer& buf) - { - u32 const mask = static_cast((1u << IE::length::value) - 1); - u32 const shift = buf.get_shift(); - u32 const data = (buf.get_u24() >> shift) & mask; - buf.m_current += 2; - - CODEC_BIT_TRACE("get shift=%u(%u) data[%u]=%06X mask=%06X: %s", shift, buf.get_shift() - , IE::length::value, data, mask, buf.toString()); - - buf.bit_advance(IE::length::value - 16); - return data; - } -}; - -template //LSB 25..31 bits -struct bit_accessor -{ - static_assert(IE::length::value > 24 && IE::length::value < 32, "something wrong with traits!"); - - static void put(u32 value, buffer& buf) - { - u32 const mask = static_cast((1u << IE::length::value) - 1); - u32 const shift = buf.get_shift(); - u32 const data = buf.extract_u32(value, mask, shift); - - buf.push_u8(data >> 24); - buf.push_u8(data >> 16); - buf.push_u8(data >> 8); - buf.put_u8(data); - - CODEC_BIT_TRACE("put shift=%u(%u) data[%u]=%08X(%08X) mask=%08X: %s", shift, buf.get_shift() - , IE::length::value, data, value, mask, buf.toString()); - - buf.bit_advance(IE::length::value - 24); - } - - static u32 get(buffer& buf) - { - u32 const mask = static_cast((1u << IE::length::value) - 1); - u32 const shift = buf.get_shift(); - u32 const data = (buf.get_u32() >> shift) & mask; - buf.m_current += 3; - - CODEC_BIT_TRACE("get shift=%u(%u) data[%u]=%08X mask=%08X: %s", shift, buf.get_shift() - , IE::length::value, data, mask, buf.toString()); - - buf.bit_advance(IE::length::value - 24); - return data; - } -}; - - -template //MSB 1..7 bits -struct bit_accessor -{ - static_assert(IE::length::value > 0 && IE::length::value < 8, "something wrong with traits!"); - - static void put(u8 value, buffer& buf) - { - u8 const mask = static_cast((1u << IE::length::value) - 1); - u8 const shift = 8 - buf.get_shift() - IE::length::value; - u8 const data = buf.extract_u8(value, mask, shift); - buf.put_u8(data); - - CODEC_BIT_TRACE("put shift=%u(%u) data[%u]=%02X(%02X) mask=%04X: %s", shift, buf.get_shift() - , IE::length::value, data, value, mask, buf.toString()); - - buf.bit_advance(IE::length::value); - } - - static u8 get(buffer& buf) - { - u8 const mask = static_cast((1u << IE::length::value) - 1); - u8 const shift = 8 - buf.get_shift() - IE::length::value; - u8 const data = (buf.get_u8() >> shift) & mask; - - CODEC_BIT_TRACE("get shift=%u(%u) data[%u]=%02X mask=%02X: %s", shift, buf.get_shift() - , IE::length::value, data, mask, buf.toString()); - - buf.bit_advance(IE::length::value); - return data; - } -}; - -template //MSB 9..15 bits -struct bit_accessor -{ - static_assert(IE::length::value > 8 && IE::length::value < 16, "something wrong with traits!"); - - static void put(u16 value, buffer& buf) - { - u16 const mask = static_cast((1u << IE::length::value) - 1); - u16 const shift = 16 - buf.get_shift() - IE::length::value; - u16 const data = buf.extract_u16(value, mask, shift); - - buf.push_u8(data >> 8); - buf.put_u8(data); - - CODEC_BIT_TRACE("put shift=%u(%u) data[%u]=%04X(%04X) mask=%04X: %s", shift, buf.get_shift() - , IE::length::value, data, value, mask, buf.toString()); - - buf.bit_advance(IE::length::value - 8); - } - - static u16 get(buffer& buf) - { - u16 const mask = static_cast((1u << IE::length::value) - 1); - u16 const shift = 16 - buf.get_shift() - IE::length::value; - u16 const data = (buf.get_u16() >> shift) & mask; - buf.m_current += 1; - - CODEC_BIT_TRACE("get shift=%u(%u) data[%u]=%04X mask=%04X: %s", shift, buf.get_shift() - , IE::length::value, data, mask, buf.toString()); - - buf.bit_advance(IE::length::value - 8); - return data; - } -}; - - -template //MSB 17..24 bits -struct bit_accessor -{ - static_assert(IE::length::value > 16 && IE::length::value <= 24, "something wrong with traits!"); - - static void put(u32 value, buffer& buf) - { - u32 const mask = static_cast((1u << IE::length::value) - 1); - u32 const shift = 24 - buf.get_shift() - IE::length::value; - u32 const data = buf.extract_u24(value, mask, shift); - - buf.push_u8(data >> 16); - buf.push_u8(data >> 8); - buf.put_u8(data); - - CODEC_BIT_TRACE("put shift=%u(%u) data[%u]=%06X(%06X) mask=%06X: %s", shift, buf.get_shift() - , IE::length::value, data, value, mask, buf.toString()); - - buf.bit_advance(IE::length::value - 16); - } - - static u32 get(buffer& buf) - { - u32 const mask = static_cast((1u << IE::length::value) - 1); - u32 const shift = 24 - buf.get_shift() - IE::length::value; - u32 const data = (buf.get_u24() >> shift) & mask; - buf.m_current += 2; - - CODEC_BIT_TRACE("get shift=%u(%u) data[%u]=%06X mask=%06X: %s", shift, buf.get_shift() - , IE::length::value, data, mask, buf.toString()); - - buf.bit_advance(IE::length::value - 16); - return data; - } -}; - -template //MSB 25..31 bits -struct bit_accessor -{ - static_assert(IE::length::value > 24 && IE::length::value < 32, "something wrong with traits!"); - - static void put(u32 value, buffer& buf) - { - u32 const mask = static_cast((1u << IE::length::value) - 1); - u32 const shift = 32 - buf.get_shift() - IE::length::value; - u32 const data = buf.extract_u32(value, mask, shift); - - buf.push_u8(data >> 24); - buf.push_u8(data >> 16); - buf.push_u8(data >> 8); - buf.put_u8(data); - - CODEC_BIT_TRACE("put shift=%u(%u) data[%u]=%08X(%08X) mask=%08X: %s", shift, buf.get_shift() - , IE::length::value, data, value, mask, buf.toString()); - - buf.bit_advance(IE::length::value - 24); - } - - static u32 get(buffer& buf) - { - u32 const mask = static_cast((1u << IE::length::value) - 1); - u32 const shift = 32 - buf.get_shift() - IE::length::value; - u32 const data = (buf.get_u32() >> shift) & mask; - buf.m_current += 3; - - CODEC_BIT_TRACE("get shift=%u(%u) data[%u]=%08X mask=%08X: %s", shift, buf.get_shift() - , IE::length::value, data, mask, buf.toString()); - - buf.bit_advance(IE::length::value - 24); - return data; - } -}; - -/******************************************************************************** -bit_accessor_cross_byte -*********************************************************************************/ -template<> -struct bit_accessor_cross_byte //MSB -{ - static bool put(u8 value, u8 length, buffer& buf) - { - u8 spare = 8 - buf.get_shift(); - - if (spare < length) - { - length -= spare; - u8 chunk = value >> length; - u8 const mask = static_cast((1u << spare) - 1); - u8 data = buf.extract_u8(chunk, mask, 0); - buf.put_u8(data); - - buf.bit_advance(spare); - } - if (buf.checkBytesLeft(1)) - { - u8 const mask = static_cast((1u << length) - 1); - u8 const shift = 8 - buf.get_shift() - length; - u8 data = buf.extract_u8(value, mask, shift); - buf.put_u8(data); - - buf.bit_advance(length); - - return true; - } - return false; - } - - static u8 get(u8 length, buffer& buf) - { - u8 rval {0}; - u8 const mask = static_cast((1u << length) - 1); - u8 const spare = 8 - buf.get_shift(); - if (spare < length) - { - length -= spare; - rval = buf.get_u8() << length; - buf.bit_advance(spare); - } - if (length && buf.checkBytesLeft(1)) - { - u8 val = buf.get_u8(); - val = val >> (8 - length - buf.get_shift()); - rval |= val; - rval &= mask; - buf.bit_advance(length); - } - return rval; - } - - static void padByte(buffer& buf) - { - if (buf.get_shift()) - { - u8 mask = static_cast((1u << buf.get_shift()) - 1); - mask = mask << (8 - buf.get_shift()); - buf.begin()[0] &= mask; - buf.bit_advance(8 - buf.get_shift()); - } - } - - static void padByte(buffer& buf) - { - if(buf.get_shift()) - buf.bit_advance(8 - buf.get_shift()); - } - - static bool put(const u8* in, size_t len, buffer& buf, u8 trail_bitsqty) - { - if (len) - { - if (trail_bitsqty) - { - buf.putBytes(in, len - 1); - u8 last_byte = in[len - 1]; - last_byte = last_byte >> (8 - trail_bitsqty); - return put(last_byte, trail_bitsqty, buf); - } - buf.putBytes(in, len); - } - return true; - } -}; - -} //end: namespace asn - - diff --git a/e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/chunked_allocator.hpp b/e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/chunked_allocator.hpp deleted file mode 100755 index 008be98..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/chunked_allocator.hpp +++ /dev/null @@ -1,84 +0,0 @@ -#pragma once - -/******************************************************************************* -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -*******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries -#include -#include //std::bad_alloc -#include -#include - -// Platform Includes: Platform specific classes, functions, and libraries - -// Local Includes: Application specific classes, functions, and libraries - -namespace asn { - -template -class chunked_allocator -{ -public: - using allocator_t = ALLOC; - - chunked_allocator() - { - put_chunk(new_chunk()); - } - - template - decltype(auto) emplace_back(TSEQ& v) - { - try - { - return v.emplace_back(m_allocator); - } - catch (std::bad_alloc const&) - { - put_chunk(new_chunk()); - return v.emplace_back(m_allocator); - } - } - - uint8_t* alloc_bytes(std::size_t sz) - { - //TODO: unify allocation: now it returns nullptr instead of throw! - auto* ret = m_allocator.alloc_bytes(sz); - if (!ret) - { - put_chunk(new_chunk()); - ret = m_allocator.alloc_bytes(sz); - } - return ret; - } - -private: - static constexpr std::size_t CHUNK_SIZE = 32*1024; - using chunk_t = std::array; - using chunks_t = std::list; - - chunk_t& new_chunk() { return m_chunks.emplace_back(); } - void put_chunk(chunk_t& c) { m_allocator.reset(c.data(), c.size()); } - - - allocator_t m_allocator; - chunks_t m_chunks; -}; - -} //end: namespace asn diff --git a/e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/constraints.hpp b/e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/constraints.hpp deleted file mode 100755 index e8e787d..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/constraints.hpp +++ /dev/null @@ -1,140 +0,0 @@ -#pragma once - -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -* -******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries -#include -#include -#include -#include - -// Local Includes: Application specific classes, functions, and libraries - -namespace asn { - -using bound_t = int64_t; - -enum class constraint_type : uint8_t -{ - UNCONSTRAINED, - CONSTRAINED, - SEMICONSTRAINED, - CONSTRAINED_EXTENDED, - SEMICONSTRAINED_EXTENDED -}; - -template -struct span -{ - static_assert(UB >= LB, "UPPER >= LOWER"); - static constexpr bound_t lower_bound = LB; - static constexpr bound_t upper_bound = UB; -}; - -template -struct pair -{ - T const lower_bound; - T const upper_bound; -}; - -template -struct one : span {}; - -struct max : one::max()> {}; -struct min : one::min()> {}; - -static constexpr bound_t MAX = std::numeric_limits::max(); -static constexpr bound_t MIN = std::numeric_limits::min(); - -template -struct constraints -{ - static constexpr bool extended = Extended; - static constexpr bound_t lower_bound = std::min({RANGE::lower_bound...}); - static constexpr bound_t upper_bound = std::max({RANGE::upper_bound...}); - - static constexpr constraint_type type = - (Extended && lower_bound > min::lower_bound && upper_bound < max::upper_bound) ? constraint_type::CONSTRAINED_EXTENDED : - (!Extended && lower_bound > min::lower_bound && upper_bound < max::upper_bound) ? constraint_type::CONSTRAINED : - (Extended && lower_bound > min::lower_bound && upper_bound == max::upper_bound) ? constraint_type::SEMICONSTRAINED_EXTENDED : - (!Extended && lower_bound == min::lower_bound && upper_bound < max::upper_bound) ? constraint_type::SEMICONSTRAINED : - (Extended && lower_bound == min::lower_bound && upper_bound < max::upper_bound) ? constraint_type::SEMICONSTRAINED_EXTENDED : - (!Extended && lower_bound > min::lower_bound && upper_bound == max::upper_bound) ? constraint_type::SEMICONSTRAINED : constraint_type::UNCONSTRAINED; - - static constexpr bool is_signed = lower_bound < 0; - - static constexpr bound_t num_spans = static_cast(sizeof...(RANGE)); - static constexpr pair bounds[] = {{RANGE::lower_bound, RANGE::upper_bound}...}; - - using boundary_type = bound_t; - - static constexpr bool is_extended(bound_t val) - { - for (bound_t i = 0; i < num_spans; ++i) - { - auto const& p = bounds[i]; - if (val <= p.upper_bound) - { - if(val < p.lower_bound) - return true; - return false; - } - } - return true; - } -}; - -template -constexpr pair constraints::bounds[]; - -template -struct constraints -{ - static constexpr bool extended = Extended; - static constexpr constraint_type type = constraint_type::UNCONSTRAINED; - static constexpr bound_t lower_bound = std::numeric_limits::min(); - static constexpr bound_t upper_bound = std::numeric_limits::max(); - - static constexpr bool is_extended(bound_t val) {return true;} -}; - -/*************************************************************************************** -* RANGE for sequences -***************************************************************************************/ -template -struct seq_range -{ - static_assert(Extended || TotalNumEntries > 0, "TotalNumEntries must be > 0"); - static_assert(NumExtEntries <= TotalNumEntries, "NumExtEntries must be <= TotalNumEntries"); - - static constexpr constraint_type type = Extended ? constraint_type::CONSTRAINED_EXTENDED : constraint_type::CONSTRAINED; - static constexpr bool extended = Extended; - static constexpr bound_t lower_bound = 0; - static constexpr bound_t upper_bound = TotalNumEntries - NumExtEntries - 1; - static constexpr bound_t default_value = lower_bound; - static constexpr bound_t total_num_entries = TotalNumEntries; - - using boundary_type = bound_t; - using value_type = uint32_t; -}; - -} // namespace asn diff --git a/e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/elements.hpp b/e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/elements.hpp deleted file mode 100755 index 9cbcd42..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/elements.hpp +++ /dev/null @@ -1,565 +0,0 @@ -#pragma once - -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries -#include -#include - -// Local Includes: Application specific classes, functions, and libraries -#include "asn/constraints.hpp" -#include "asn/identifier.hpp" - -namespace asn { - -enum class element_type : uint8_t -{ - T_BOOLEAN - ,T_INTEGER - ,T_ENUMERATED - ,T_REAL - ,T_BITSTRING - ,T_OCTETSTRING - ,T_NULL - ,T_SEQUENCE - ,T_SEQUENCE_OF - ,T_SET - ,T_SET_OF - ,T_CHOICE - ,T_OBJECTIDENTIFIER - ,T_OBJFIELD_FTV - ,T_OBJFIELD_TF -}; - -/*************************************************************************************** -* BASE -***************************************************************************************/ - -struct base -{ - static constexpr bool optional = false; - static constexpr bool extension = false; - - static constexpr char const* name() {return "";} - - void setpresent(bool p) {is_set = p;} - void clear() {is_set = false;} - - bool is_valid() const {return is_set;} - -protected: - base() {} - void set() {is_set = true;} -protected: - bool is_set {false}; - - base& operator=(const base&) = delete; - base (const base&) = delete; -}; - -/*************************************************************************************** -* IE_NULL -***************************************************************************************/ - -struct nulltype : base -{ - using asn_identifier_t = identifier(tag_rvalue_t::NULL_TYPE), tag_type_t::IMPLICIT>; - - static constexpr element_type ie_type = element_type::T_NULL; - static constexpr const char* name() {return "NULL";} - - void clear() {} -}; - -/*************************************************************************************** -* T_BOOLEAN -***************************************************************************************/ - -struct boolean : base -{ - using asn_identifier_t = identifier(tag_rvalue_t::BOOLEAN), tag_type_t::IMPLICIT>; - - static constexpr element_type ie_type = element_type::T_BOOLEAN; - static constexpr const char* name() {return "BOOLEAN";} - - using value_type = bool; - - void set(value_type vl) { m_value = vl; base::set();} - value_type get() const { return m_value; } - void clear() { m_value = false; base::clear();} - -private: - value_type m_value {false}; -}; - -/*************************************************************************************** -* T_INTEGER -***************************************************************************************/ -template < class Constraint = constraints > -struct integer : base -{ - using asn_identifier_t = identifier(tag_rvalue_t::INTEGER), tag_type_t::IMPLICIT>; - - static constexpr element_type ie_type = element_type::T_INTEGER; - static constexpr const char* name() {return "INTEGER";} - - using constraint_t = Constraint; - using value_type = int64_t; - - bool equal(value_type v) const {return m_value == v;} - - void set(value_type v) { m_value = v; base::set();} - value_type get() const { return m_value; } - - void clear() { m_value = 0; base::clear();} - -private: - value_type m_value; -}; - -/*************************************************************************************** -* T_ENUMERATED -***************************************************************************************/ -template -struct enumerated : base -{ - using asn_identifier_t = identifier(tag_rvalue_t::ENUMERATED), tag_type_t::IMPLICIT>; - - static constexpr element_type ie_type = element_type::T_ENUMERATED; - static constexpr const char* name() {return "ENUMERATED";} - - using constraint_t = seq_range; - using value_type = typename constraint_t::value_type; - - bool equal(value_type v) const {return m_value == v;} - void set(value_type vl) { m_value = vl; base::set();} - value_type get() const { return m_value; } - void clear() { m_value = constraint_t::default_value; base::clear();} - -private: - value_type m_value; -}; - -/*************************************************************************************** -* T_OCTETSTRING -***************************************************************************************/ -template< class Constraint = constraints > -struct ostring : base -{ - using asn_identifier_t = identifier(tag_rvalue_t::OCTET_STRING), tag_type_t::IMPLICIT>; - - static constexpr element_type ie_type = element_type::T_OCTETSTRING; - static constexpr const char* name() {return "OCTET STING";} - using constraint_t = Constraint; - - struct value_type - { - value_type() {} - value_type(size_t size, const char* data) : m_size(size), m_data(reinterpret_cast(data)) {} - - size_t size() const { return m_size; } - const uint8_t* data() const { return m_data; } - - using const_iterator = uint8_t const*; - const_iterator begin() const { return data(); } - const_iterator end() const { return begin() + size(); } - - void assign(void const* p, size_t sz) { m_data = static_cast(p); m_size = sz; } - - private: - const uint8_t* m_data{ 0 }; - size_t m_size{ 0 }; - }; - - value_type const& get() const { return m_value; } - - //Use std::string, std::vector or IE_OSTR::value_type - template value_type const& set(T const& tval) - { - set(tval.size(), tval.data()); - base::set(); - return m_value; - } - - void set(size_t size, void const* data) - { - m_value.assign(data, size); - base::set(); - } - - template - ostring& emplace(AT& allocator, size_t size, uint8_t const * data_in) - { - if(size) - { - base::clear(); - uint8_t* data_out = allocator.alloc_bytes(size); - if (data_out) - { - memcpy(data_out, data_in, size); - set(size, data_out); - } - } - else - base::set(); - return *this; - } - - template - ostring& emplace(AT& allocator, T const& tval) - { - return emplace(allocator, tval.size(), reinterpret_cast(tval.data())); - } - - void clear() { m_value = value_type{}; base::clear();} - -private: - value_type m_value; -}; - -/*************************************************************************************** -* T_BITSTRING -***************************************************************************************/ -template > -struct bstring : base -{ - using asn_identifier_t = identifier(tag_rvalue_t::BIT_STRING), tag_type_t::IMPLICIT>; - - static constexpr element_type ie_type = element_type::T_BITSTRING; - static constexpr const char* name() {return "BIT STING";} - using constraint_t = Constraint; - - struct value_type - { - value_type() {} - value_type(size_t size, const char* data, size_t bitqty) : m_size(size), m_data(reinterpret_cast(data)), m_bitqty(bitqty){} - - size_t size() const { return m_size; } - const uint8_t* data() const { return m_data; } - size_t bitqty() const { return m_bitqty; } - - void assign(void const* p, size_t sz, size_t bits) { m_data = static_cast(p); m_size = sz; m_bitqty = bits; } - - private: - const uint8_t* m_data{ nullptr }; - size_t m_size{ 0 }; - size_t m_bitqty{ 0 }; - }; - - value_type const& get_buffer() const { return m_value; } - - size_t get_bitqty() const { return m_value.bitqty(); } - - //Use std::string, std::vector or IE_BSTR::value_type - template value_type const& set_buffer(T& tval, size_t bitqty) - { - m_value.assign(tval.data(), tval.size(), bitqty); - base::set(); - return m_value; - } - - void set_buffer(size_t bitqty, const uint8_t* data) - { - m_value.assign(data, (bitqty +7) >> 3, bitqty); - base::set(); - } - - template - bstring& emplace_buffer(AT& allocator, size_t bitqty, uint8_t const * data_in) - { - size_t size = (bitqty +7) >> 3; - uint8_t* data_out = allocator.alloc_bytes(size); - if (!data_out) { - throw std::bad_alloc(); - } - memcpy(data_out, data_in, size); - set_buffer(bitqty, data_out); - return *this; - } - - void clear() { m_value = value_type{}; base::clear();} - - uint64_t get_number() const - { - uint64_t retval{0}; - size_t i = 0; - for(; i < m_value.size() - 1; ++i) - { - retval <<= 8; - retval |= m_value.data()[i]; - } - - uint8_t shift = m_value.bitqty() % 8; - if (shift) - { - retval <<= shift; - } - else - { - retval <<= 8; - } - - retval |= m_value.data()[i]; - - return retval; - } - - template - void set_number(AT& allocator, size_t bitqty, uint64_t data) - { - size_t size = (bitqty +7) >> 3; - uint8_t* data_out = allocator.alloc_bytes(size); - if (!data_out) { - throw std::bad_alloc(); - } - - const uint8_t shift = bitqty % 8; - if (shift) - { - data_out[size-1] = data & (0xFF >> (8 - shift)); - data >>= shift; - } - else - { - data_out[size-1] = data & (0xFF); - data >>= 8; - } - - for (size_t i = 1; i <= size - 1; i++) - { - data_out[size-1-i] = data & (0xFF); - data >>= 8; - } - - m_value.assign(data_out, size, bitqty); - base::set(); - } - -private: - value_type m_value; -}; - -/*************************************************************************************** -* T_CHOICE -***************************************************************************************/ -template -struct choice : base -{ - using asn_identifier_t = identifier(tag_rvalue_t::CHOICE), tag_type_t::IMPLICIT>; - - static constexpr element_type ie_type = element_type::T_CHOICE; - static constexpr const char* name() {return "CHOICE";} - - using constraint_t = seq_range; - using index_type = size_t; - using value_type = size_t; - - static constexpr index_type fst_index = 1; - static constexpr index_type ext_index = fst_index + TotalNumEntries; - - static index_type normalize(index_type idx) {return idx - fst_index;} - static index_type denormalize(index_type idx) {return idx + fst_index;} -}; - -/*************************************************************************************** -* T_SEQUENCE -***************************************************************************************/ -template -struct sequence : base -{ - using asn_identifier_t = identifier(tag_rvalue_t::SEQUENCE), tag_type_t::IMPLICIT>; - - static constexpr element_type ie_type = element_type::T_SEQUENCE; - static constexpr const char* name() {return "SEQUENCE";} - - static constexpr bound_t num_total_entries = TotalNumEntries; - static constexpr bound_t num_opt_entries = NumOptEntries; - static constexpr bound_t num_ext_entries = NumExtEntries; - - using constraint_t = seq_range; - -}; - -/*************************************************************************************** -* T_SEQUENCE_OF -***************************************************************************************/ -template > -struct sequenceof : base -{ - using asn_identifier_t = identifier(tag_rvalue_t::SEQUENCE_OF), tag_type_t::IMPLICIT>; - - static constexpr element_type ie_type = element_type::T_SEQUENCE_OF; - static constexpr const char* name() {return "SEQUENCE OF";} - - struct value_type : T, boost::intrusive::list_base_hook< boost::intrusive::link_mode > - { - value_type(){} - private: - value_type& operator=(const value_type&) = delete; - value_type (const value_type&) = delete; - }; - - using values_t = boost::intrusive::list>; - using constraint_t = Constraint; - using element_t = T; - - void clear() { m_list.clear(); base::clear();} - size_t size() const { return m_list.size(); } - template - void sort(Predicate const& p) { m_list.sort(p); } - - template - void set(V& v) {for(auto & e : v) {m_list.push_back(e);} base::set();} - - void push_back(value_type& v) { m_list.push_back(v); base::set();} - - template //Note: Allocator must return word alligned buffer! - T& emplace_back(AT& allocator) - { - uint8_t* data = allocator.alloc_bytes(sizeof(value_type)); - if(!data) - throw std::bad_alloc(); - value_type* v = new (data) value_type; - push_back(*v); - return *v; - }; - - using iterator = typename values_t::iterator; - iterator begin() { return m_list.begin(); } - iterator end() { return m_list.end(); } - - using const_iterator = typename values_t::const_iterator; - const_iterator begin() const { return m_list.begin(); } - const_iterator end() const { return m_list.end(); } - - sequenceof(){} - -private: - values_t m_list; -}; - -/*************************************************************************************** -* T_OBJFIELD_FTV -***************************************************************************************/ -template -struct fixedtypefield : T -{ - static constexpr element_type ie_type = element_type::T_OBJFIELD_FTV; - - T& ref_nested() {return *this;} - T const & ref_nested() const {return *this;} -}; - -/*************************************************************************************** -* T_OBJFIELD_TF -***************************************************************************************/ -template -struct typefield : base -{ - static constexpr element_type ie_type = element_type::T_OBJFIELD_TF; - static constexpr const char* name() {return "type-field";} - - typefield& ref_nested() {return *this;} - typefield const& ref_nested() const {return *this;} - - bool is_unknown() const {return false;} -}; - -/*************************************************************************************** -* T_OBJECTIDENTIFIER -***************************************************************************************/ -struct oid : ostring<> -{ - using asn_identifier_t = identifier(tag_rvalue_t::OBJECT_IDENTIFIER), tag_type_t::IMPLICIT>; - - static constexpr element_type ie_type = element_type::T_OBJECTIDENTIFIER; - static constexpr const char* name() {return "OBJECT IDENTIFIER";} -}; - -/*************************************************************************************** -* T_PRINTABLESTRING -***************************************************************************************/ -template > -struct printable_string : ostring -{ - using asn_identifier_t = identifier(tag_rvalue_t::PrintableString), tag_type_t::IMPLICIT>; - static constexpr const char* name() {return "PrintableString";} -}; - -/*************************************************************************************** -* T_IA5_STRING -***************************************************************************************/ -template > -struct ia5_string : ostring -{ - using asn_identifier_t = identifier(tag_rvalue_t::IA5String), tag_type_t::IMPLICIT>; - static constexpr const char* name() {return "IA5String";} -}; - -/*************************************************************************************** -* T_GRAPHIC_STRING -***************************************************************************************/ -template > -struct graphic_string : ostring -{ - using asn_identifier_t = identifier(tag_rvalue_t::GraphicString), tag_type_t::IMPLICIT>; - static constexpr const char* name() {return "IA5String";} -}; - -/*************************************************************************************** -* T_UTF8_STRING -***************************************************************************************/ -template > -struct utf8_string : ostring -{ - using asn_identifier_t = identifier(tag_rvalue_t::UTF8String), tag_type_t::IMPLICIT>; - static constexpr const char* name() {return "UTF8String";} -}; - -/*************************************************************************************** -* T_SET -***************************************************************************************/ -template -struct set : base -{ - using asn_identifier_t = identifier(tag_rvalue_t::SET), tag_type_t::IMPLICIT>; - - static constexpr element_type ie_type = element_type::T_SET; - static constexpr const char* name() {return "SET";} - - static constexpr bound_t num_total_entries = TotalNumEntries; - static constexpr bound_t num_opt_entries = NumOptEntries; - static constexpr bound_t num_ext_entries = NumExtEntries; - - using constraint_t = seq_range; -}; - -/*************************************************************************************** -* T_SET_OF -***************************************************************************************/ -template > -struct setof : sequenceof -{ - using asn_identifier_t = identifier(tag_rvalue_t::SET_OF), tag_type_t::IMPLICIT>; - - static constexpr element_type ie_type = element_type::T_SET_OF; - static constexpr const char* name() {return "SET OF";} -}; -} //namespace asn diff --git a/e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/error_context.hpp b/e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/error_context.hpp deleted file mode 100755 index 8a7285a..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/error_context.hpp +++ /dev/null @@ -1,267 +0,0 @@ -#pragma once - -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries - - -// Local Includes: Application specific classes, functions, and libraries -#include "type_defs.h" - -namespace asn { - -class error_context -{ -public: - enum error_e : u8 - { - SUCCESS = 0 - ,INCORRECT_LENGTH_BITS - ,INCORRECT_LENGTH_BYTES - ,ALIGNMENT - ,INCORRECT_VALUE - ,INCORRECT_CHOICE_TAG - ,INCORRECT_IE_TAG - ,VALUE_OUT_OF_RANGE - ,SIZE_OUT_OF_RANGE - ,ALLOC_NO_MEMORY - ,NO_OBJECT - ,NO_MANDATORY - ,WRONG_END_OF_CONTENT - ,UNSUPPORTED - ,UNSPECIFIED - }; - - explicit operator bool() const { return SUCCESS == m_error; } - - void reset() { m_error = SUCCESS; } - error_e getError() const { return m_error; } - - char const* toString() const; - - void alignmentError(u32 shift); - void lengthErrorBytes(u32 bytes_left, u32 requested); - void lengthErrorBits(u32 bits_left, u32 requested); - void valueError(u32 got, u32 expected, u32 ofs); - void tagError(u32 tag); - void valueRangeError(size_t value); - void sizeRangeError(size_t size, size_t low = 0, size_t high = 0); - void allocatorNoMem(size_t bytes_left, size_t bytes_required); - void errorUnsupported() {setError(UNSUPPORTED);} - void errorUnspecified() {setError(UNSPECIFIED);} - void errorNoObject(const char* container_name_); - void errorNoMandatory(); - void errorWrongEndOfContent() {setError(WRONG_END_OF_CONTENT);} - - //to inline in choice decoder: TODO: think of changing it! - void choiceError(char const* name, u32 id) - { - m_name = name; - m_param[0] = id; - setError(INCORRECT_CHOICE_TAG); - } - //Name of the being processed IE - void ie_name(const char* name) { m_ie_name = name; } - char const* ie_name() const { return m_ie_name; } - - void container_name(const char* name) { m_container_name = name; } - char const* container_name() const { return m_container_name; } - - -private: - void setError(error_e n) { m_error = n; } - - enum { MAX_PARAMS = 3 }; - error_e m_error; - char const* m_name; - char const* m_ie_name {""}; - char const* m_container_name {""}; - size_t m_param[MAX_PARAMS]; - -}; - -inline -void error_context::errorNoObject(const char* c_name) -{ - container_name(c_name); - m_name = m_ie_name; - setError(NO_OBJECT); -} - -inline -void error_context::errorNoMandatory() -{ - m_name = m_ie_name; - setError(NO_MANDATORY); -} - -inline -void error_context::alignmentError(u32 shift) -{ - m_name = m_ie_name; - m_param[0] = shift; - setError(ALIGNMENT); -} - -inline -void error_context::lengthErrorBytes(u32 bytes_left, u32 requested) -{ - m_name = m_ie_name; - m_param[0] = bytes_left; - m_param[1] = requested; - setError(INCORRECT_LENGTH_BYTES); -} - -inline -void error_context::lengthErrorBits(u32 bits_left, u32 requested) -{ - m_name = m_ie_name; - m_param[0] = bits_left; - m_param[1] = requested; - setError(INCORRECT_LENGTH_BITS); -} - -inline -void error_context::valueError(u32 got, u32 expected, u32 ofs) -{ - m_name = m_ie_name; - m_param[0] = got; - m_param[1] = expected; - m_param[2] = ofs; - setError(INCORRECT_VALUE); -} - -inline -void error_context::tagError(u32 tag) -{ - m_name = m_ie_name; - m_param[0] = tag; - setError(INCORRECT_IE_TAG); -} - -inline -void error_context::valueRangeError(size_t value) -{ - m_name = m_ie_name; - m_param[0] = value; - setError(VALUE_OUT_OF_RANGE); -} - -inline -void error_context::sizeRangeError(size_t size, size_t low, size_t high) -{ - m_name = m_ie_name; - m_param[0] = size; - m_param[1] = low; - m_param[2] = high; - setError(SIZE_OUT_OF_RANGE); -} - -inline -void error_context::allocatorNoMem(size_t bytes_left, size_t bytes_required) -{ - m_name = m_ie_name; - m_param[0] = bytes_left; - m_param[1] = bytes_required; - setError(ALLOC_NO_MEMORY); -} - -inline -char const* error_context::toString() const -{ - static char sz[256]; - - switch (m_error) - { - case SUCCESS: - return "OK"; - - case INCORRECT_LENGTH_BITS: - snprintf(sz, sizeof(sz)-1, "%zu bits left, '%s::%s' needs %zu", m_param[0], m_container_name, m_name, m_param[1]); - break; - - case INCORRECT_LENGTH_BYTES: - snprintf(sz, sizeof(sz)-1, "%zu bytes left, '%s::%s' needs %zu", m_param[0], m_container_name, m_name, m_param[1]); - break; - case ALIGNMENT: - snprintf(sz, sizeof(sz)-1, "misaligned '%s::%s': shift %zu bits", m_container_name, m_name, m_param[0]); - break; - - case INCORRECT_VALUE: - snprintf(sz, sizeof(sz)-1, "Wrong value of '%s::%s' at %zu: 0x%zX expected=0x%zX", m_container_name, m_name, m_param[2], m_param[0], m_param[1]); - break; - - case INCORRECT_CHOICE_TAG: - snprintf(sz, sizeof(sz)-1, "Wrong choice tag of '%s::%s': %zu (0x%zX)", m_container_name, m_name, m_param[0], m_param[0]); - break; - - case INCORRECT_IE_TAG: - snprintf(sz, sizeof(sz)-1, "Wrong tag of '%s::%s': %zu (0x%zX)", m_container_name, m_name, m_param[0], m_param[0]); - break; - - case VALUE_OUT_OF_RANGE: - snprintf(sz, sizeof(sz) - 1, "Value is out of the range '%s::%s': value: %zu", m_container_name, m_name, m_param[0]); - break; - - case SIZE_OUT_OF_RANGE: - if (m_param[2]) - { - snprintf(sz, sizeof(sz) - 1, "Size=%zu bytes is out of the range [%zu, %zu] in '%s::%s'", m_param[0], m_param[1], m_param[2], m_container_name, m_name); - } - else - { - if (m_param[1]) - { - snprintf(sz, sizeof(sz) - 1, "Size=%zu bytes is less than %zu in '%s::%s'", m_param[0], m_param[1], m_container_name, m_name); - } - else - { - snprintf(sz, sizeof(sz) - 1, "Size=%zu bytes is out of the range in '%s::%s'", m_param[0], m_container_name, m_name); - } - } - break; - - case ALLOC_NO_MEMORY: - snprintf(sz, sizeof(sz) - 1, "Allocator memory has ended '%s::%s': left bytes: %zu; required bytes: %zu", m_container_name, m_name, m_param[0], m_param[1]); - break; - case NO_OBJECT: - snprintf(sz, sizeof(sz) - 1, "Component relation constraint violated '%s::%s'", m_container_name, m_name); - break; - case NO_MANDATORY: - snprintf(sz, sizeof(sz) - 1, "no mandatory '%s::%s' is found", m_container_name, m_name); - break; - case UNSUPPORTED: - snprintf(sz, sizeof(sz) - 1, "unsupported object '%s::%s' is found", m_container_name, m_name); - return "unsupported"; - break; - case UNSPECIFIED: - snprintf(sz, sizeof(sz) - 1, "unspecified object '%s::%s' is found", m_container_name, m_name); - return "unspecified"; - break; - case WRONG_END_OF_CONTENT: - snprintf(sz, sizeof(sz) - 1, "wrong end of content in object '%s::%s'", m_container_name, m_name); - return "wrong end of content"; - break; - } - - return sz; -} - -} //end: namespace asn diff --git a/e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/identifier.hpp b/e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/identifier.hpp deleted file mode 100755 index 9b603fb..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/identifier.hpp +++ /dev/null @@ -1,97 +0,0 @@ -#pragma once - -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries - -// Local Includes: Application specific classes, functions, and libraries - -namespace asn { - -enum class class_type_t : uint8_t -{ - UNIVERSAL - ,APPLICATION - ,CONTEXT - ,PRIVATE - ,UNSPECIFIED //reserved for internal use -}; - -enum class tag_type_t : uint8_t -{ - EXPLICIT - ,IMPLICIT - ,AUTOMATIC -}; - -using tag_value_t = uint64_t; - -template -struct identifier -{ - static constexpr class_type_t class_type = CT; - static constexpr tag_value_t tag_value = TAG; - static constexpr tag_type_t tag_type = TT; -}; - - -enum class tag_rvalue_t : tag_value_t -{ - BOOLEAN = 1 - ,INTEGER = 2 - ,BIT_STRING = 3 - ,OCTET_STRING = 4 - ,NULL_TYPE = 5 - ,OBJECT_IDENTIFIER = 6 - ,REAL = 9 - ,ENUMERATED = 10 - ,SEQUENCE = 16 - ,SEQUENCE_OF = 16 - ,UTF8String = 12 - ,NumericString = 18 - ,IA5String = 22 - ,VisibleString = 26 - ,DATE = 31 - ,TIME_OF_DAY = 32 - ,DATE_TIME = 33 - ,DURATION = 34 - ,ObjectDescriptor = 7 - ,EXTERNAL = 8 - ,EMBEDDED_PDV = 11 - ,OID_IRI = 35 - ,RELATIVE_OID_IRI = 36 - ,SET = 17 - ,SET_OF = 17 - ,UTCTime = 23 - ,GeneralizedTime = 24 - ,PrintableString = 19 - ,T61String = 20 - ,VideotexString = 21 - ,GraphicString = 25 - ,GeneralString = 27 - ,UniversalString = 28 - ,CHARACTER_STRING = 29 - ,BMPString = 30 - ,ISO646String = 26 - ,TeletexString = 20 - ,CHOICE = 99 // fake id for internal use -}; - -} //namespace asn diff --git a/e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/per/binary_integer.hpp b/e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/per/binary_integer.hpp deleted file mode 100755 index 6ba2f15..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/per/binary_integer.hpp +++ /dev/null @@ -1,168 +0,0 @@ -#pragma once -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries - -// Local Includes: Application specific classes, functions, and libraries -#include "asn/per/common.hpp" -#include "asn/per/length.hpp" - -namespace asn { -namespace per { - -template -struct BinaryIntegerLength; - -/*************************************************************************************** -* Encoding of a non-negative-binary-integer (X.691 10.3) -***************************************************************************************/ -template -struct NonnegativeBinaryInteger -{ - static void inline run(u64 val, EncoderCtx& ctx) - { - if(val) - { - size_t const len = sizeof(val) - (__builtin_clzll(val) >> 3); - - BinaryIntegerLength< Range >::run(ctx, len); - Tools::bit_accessor::padByte(ctx.refBuffer()); - - u8 buff[len]; - size_t shift = (len - 1) << 3; - for(size_t i = 0; i < len; ++i) - { - buff[i] = static_cast(val >> shift); - shift -= 8; - } - - ctx.refBuffer().putBytes(buff, len); - } - else - { - BinaryIntegerLength< Range >::run(ctx, 1); - Tools::bit_accessor::padByte(ctx.refBuffer()); - ctx.refBuffer().putByte(0); - } - } - template - static void inline run(T& retval, DecoderCtx& ctx, bool extended_val) - { - retval = 0; - size_t len = (size_t)BinaryIntegerLength< Range >::run(ctx, extended_val); - Tools::bit_accessor::padByte(ctx.refBuffer()); - u8 const* data = ctx.refBuffer().getBytes(len); - - if (data) - { - for (size_t i = 0; i < len; ++i) - { - retval = retval << 8; - retval |= data[i]; - } - } - } -}; - -/*************************************************************************************** -* Encoding of a 2's-complement-binary-integer (X.691 10.4) -***************************************************************************************/ - -template -struct TwosComplementBinaryInteger -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - Tools::bit_accessor::padByte(ctx.refBuffer()); - - u64 val = ie.get(); - u64 tval = val; - u64 mask = static_cast(-128); - u8 len = 1; - u8 i = 7; - - u8 buf[8]; - - while (len < 8) - { - buf[i] = static_cast(tval); - if (!(val & mask) || (val & mask) == mask) - break; - mask = mask << 8; - tval = tval >> 8; - len++; - i--; - } - - ctx.refBuffer().putByte(len) && ctx.refBuffer().putBytes(&buf[i], len); - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - Tools::bit_accessor::padByte(ctx.refBuffer()); - - u8 const* data = nullptr; - typename IE::value_type val = 0; - - u8 const* len = ctx.refBuffer().getBytes(1); - - if (len && (*len) <= 8 && (data = ctx.refBuffer().getBytes(*len))) - { - for (u8 i = 0; i < *len; ++i) - { - val = val << 8; - val |= data[i]; - } - } - ie.set(val); - } -}; - -/*************************************************************************************** -* Encoding of a normally small non-negativebinary integer (X.691 10.6) -***************************************************************************************/ -template -struct NormallySmallNonnegativeBinaryInteger -{ - static void inline run(IE const& ie, EncoderCtx& ctx, typename IE::constraint_t::boundary_type val) - { - if (val <= 63) - { - Tools::bit_accessor::put(static_cast(val), 7, ctx.refBuffer()); //7 bits ('0' indicator + value) - } - else - { - Tools::bit_accessor::put(1, 1, ctx.refBuffer()); //1 bit ('1' indicator) - NonnegativeBinaryInteger::run(val, ctx); - } - } - static TValue inline run(DecoderCtx& ctx) - { - u8 ext = Tools::bit_accessor::get(1, ctx.refBuffer()); - if (ext) { - TValue rval = 0; - NonnegativeBinaryInteger::run(rval, ctx, true); - return rval; - } - return Tools::bit_accessor::get(6, ctx.refBuffer()); - } -}; - -} //namespace per -} //namespace asn diff --git a/e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/per/bstring.hpp b/e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/per/bstring.hpp deleted file mode 100755 index 5d25599..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/per/bstring.hpp +++ /dev/null @@ -1,279 +0,0 @@ -#pragma once -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries - -// Local Includes: Application specific classes, functions, and libraries -#include "asn/per/common.hpp" - -namespace asn { -namespace per { - -//15.11 Default -template -struct BitstringNoExt -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - LengthDeterminant::run(ctx, ie.get_bitqty()); - Tools::bit_accessor::padByte(ctx.refBuffer()); - - const u8 tail = ie.get_bitqty() % 8; - if (tail) - { - ctx.refBuffer().putBytes(ie.get_buffer().data(), ie.get_buffer().size() - 1); - u8 last_byte = *(ie.get_buffer().data() + ie.get_buffer().size() - 1); - - last_byte <<= 8 - tail; - ctx.refBuffer().putBytes(&last_byte, 1); - ctx.refBuffer().set_begin(ctx.refBuffer().begin() - 1, tail); - } - else - { - ctx.refBuffer().putBytes(ie.get_buffer().data(), ie.get_buffer().size()); - } - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - size_t len = LengthDeterminant::run(ctx, false); - size_t len_bytes = (len + 7) >> 3; - Tools::bit_accessor::padByte(ctx.refBuffer()); - u8 const* data_in = ctx.refBuffer().getBytes(len_bytes); - if (data_in) - { - u8* data_out = ctx.refAllocator().alloc_bytes(len_bytes); - if (data_out) - { - memcpy(data_out, data_in, len_bytes); - const u8 shift = len % 8; - if (shift) - { - ctx.refBuffer().set_begin(ctx.refBuffer().begin() - 1, shift); - data_out[len_bytes - 1] >>= 8 - shift; - } - ie.set_buffer(len, data_out); - } - else - ctx.refErrorCtx().allocatorNoMem(0, len_bytes); - } - } -}; - -//15.8 Zero length -template -struct BitstringNoExt > -{ - static void inline run(IE const& ie, EncoderCtx& ctx) {/* do nothing */ } - static void inline run(IE& ie, DecoderCtx& ctx) { ie.setpresent(true); } -}; - -//15.9 Up to 6 bits, fixed length -template -struct BitstringNoExt 0)) ->> -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - Tools::bit_accessor::put((static_cast(ie.get_buffer().data()[0])) & (0xFF >> (8 - IE::constraint_t::upper_bound)), - IE::constraint_t::upper_bound, ctx.refBuffer()); - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - u8 * data = ctx.refAllocator().alloc_bytes(1); - if (data) - { - data[0] = Tools::bit_accessor::get(IE::constraint_t::upper_bound, ctx.refBuffer()); - ie.set_buffer(IE::constraint_t::upper_bound, data); - } - else - ctx.refErrorCtx().allocatorNoMem(0, 1); - } -}; -template -struct BitstringNoExt 8)) ->> -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - Tools::bit_accessor::put(ie.get_buffer().data()[0], 8, ctx.refBuffer()); - Tools::bit_accessor::put((static_cast(ie.get_buffer().data()[1])) & (0xFF >> (16 - IE::constraint_t::upper_bound)), - IE::constraint_t::upper_bound - 8, ctx.refBuffer()); - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - u8 * data = ctx.refAllocator().alloc_bytes(2); - if (data) - { - data[0] = Tools::bit_accessor::get(8, ctx.refBuffer()); - data[1] = Tools::bit_accessor::get(IE::constraint_t::upper_bound - 8, ctx.refBuffer()); - ie.set_buffer(IE::constraint_t::upper_bound, data); - } - else - ctx.refErrorCtx().allocatorNoMem(0, 2); - } -}; - -//15.10 More than 6 bits, up to 64K bits, fixed length -template -struct BitstringNoExt 16)) ->> -{ - constexpr static size_t len_bytes = (IE::constraint_t::upper_bound + 7) >> 3; - - static void inline run(IE const& ie, EncoderCtx& ctx) - { - Tools::bit_accessor::padByte(ctx.refBuffer()); - if (ie.get_buffer().size() != len_bytes) - { - ctx.refErrorCtx().sizeRangeError(ie.get_buffer().size(), len_bytes, len_bytes); - } - else - { - const u8 tail = ie.get_bitqty() % 8; - if (tail) - { - ctx.refBuffer().putBytes(ie.get_buffer().data(), ie.get_buffer().size() - 1); - u8 last_byte = *(ie.get_buffer().data() + ie.get_buffer().size() - 1); - last_byte <<= 8 - tail; - ctx.refBuffer().putBytes(&last_byte, 1); - ctx.refBuffer().set_begin(ctx.refBuffer().begin() - 1, tail); - } - else - { - ctx.refBuffer().putBytes(ie.get_buffer().data(), ie.get_buffer().size()); - } - } - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - Tools::bit_accessor::padByte(ctx.refBuffer()); - u8 const* data_in = ctx.refBuffer().getBytes(len_bytes); - if (data_in) - { - u8* data_out = ctx.refAllocator().alloc_bytes(len_bytes); - if (data_out) - { - memcpy(data_out, data_in, len_bytes); - const u8 shift = IE::constraint_t::upper_bound % 8; - if (shift) - { - ctx.refBuffer().set_begin(ctx.refBuffer().begin() - 1, shift); - data_out[len_bytes - 1] >>= 8 - shift; - } - ie.set_buffer(IE::constraint_t::upper_bound, data_out); - } - else - ctx.refErrorCtx().allocatorNoMem(0, len_bytes); - } - } -}; - -/**************************************************/ - -template -struct Bitstring; - -//15.6 : Extension present -template -struct Bitstring > -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - - if (ie.get_bitqty() <= IE::constraint_t::upper_bound && ie.get_bitqty() >= IE::constraint_t::lower_bound) - { - Tools::bit_accessor::put(0, 1, ctx.refBuffer()); - BitstringNoExt::run(ie, ctx); - } - else - { - Tools::bit_accessor::put(1, 1, ctx.refBuffer()); - Tools::bit_accessor::padByte(ctx.refBuffer()); - LengthDeterminant::run(ctx, ie.get_bitqty()); - Tools::bit_accessor::padByte(ctx.refBuffer()); - const u8 tail = ie.get_bitqty() % 8; - if (tail) - { - ctx.refBuffer().putBytes(ie.get_buffer().data(), ie.get_buffer().size() - 1); - u8 last_byte = *(ie.get_buffer().data() + ie.get_buffer().size() - 1); - - last_byte <<= 8 - tail; - - ctx.refBuffer().putBytes(&last_byte, 1); - ctx.refBuffer().set_begin(ctx.refBuffer().begin() - 1, tail); - } - else - { - ctx.refBuffer().putBytes(ie.get_buffer().data(), ie.get_buffer().size()); - } - } - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - u8 ext = Tools::bit_accessor::get(1, ctx.refBuffer()); - if (ext) - { - Tools::bit_accessor::padByte(ctx.refBuffer()); - const size_t len = LengthDeterminant::run(ctx, true); - const size_t len_bytes = (len + 7) >> 3; - Tools::bit_accessor::padByte(ctx.refBuffer()); - u8 const* data_in = ctx.refBuffer().getBytes(len_bytes); - if (data_in) - { - u8* data_out = ctx.refAllocator().alloc_bytes(len_bytes); - if (data_out) - { - memcpy(data_out, data_in, len_bytes); - const u8 shift = len % 8; - if (shift) - { - ctx.refBuffer().set_begin(ctx.refBuffer().begin() - 1, shift); - data_out[len_bytes - 1] >>= 8 - shift; - } - ie.set_buffer(len, data_out); - } - else - ctx.refErrorCtx().allocatorNoMem(0, len_bytes); - } - } - else - BitstringNoExt::run(ie, ctx); - } -}; - -//15.7 : No extension -template -struct Bitstring > -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - BitstringNoExt::run(ie, ctx); - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - BitstringNoExt::run(ie, ctx); - } -}; - -} //namespace per -} //namespace asn diff --git a/e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/per/choice.hpp b/e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/per/choice.hpp deleted file mode 100755 index f0d115c..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/per/choice.hpp +++ /dev/null @@ -1,136 +0,0 @@ -#pragma once -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries - -// Local Includes: Application specific classes, functions, and libraries -#include "asn/per/common.hpp" -#include "asn/per/visitor.hpp" - -namespace asn { -namespace per { - -/******************************************************************************** -Choice -*********************************************************************************/ - -/**************************************************/ -//22.6-7 Default -template -struct ChoiceNoExt -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - ConstrainedWholeNumber::run(ctx, IE::normalize(ie.get_index())); - VisitorEncoder ve{ ctx }; - ie.encode(ve); - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - typename IE::index_type idx = ConstrainedWholeNumber::run(ctx); - VisitorDecoder ve{ ctx }; - ie.decode(IE::denormalize(idx), ve); - } -}; - -//22.4 One alternative -template -struct ChoiceNoExt > -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - VisitorEncoder ve{ ctx }; - ie.encode(ve); - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - VisitorDecoder ve{ ctx }; - ie.decode(IE::denormalize(0), ve); - } -}; - -/**************************************************/ - -template -struct Choice; - -//22.5 Extension present -template -struct Choice > -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - auto idx = IE::normalize(ie.get_index()); - if (idx <= IE::constraint_t::upper_bound) - { - Tools::bit_accessor::put(0, 1, ctx.refBuffer()); - ChoiceNoExt::run(ie, ctx); - } - else - { - Tools::bit_accessor::put(1, 1, ctx.refBuffer()); - NormallySmallNonnegativeBinaryInteger::run(ie, ctx, idx - IE::constraint_t::upper_bound - 1); - OpenTypeVisitorEncoder ve{ ctx }; - ie.encode(ve); - } - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - u8 ext = Tools::bit_accessor::get(1, ctx.refBuffer()); - if (ext) - { - typename IE::index_type idx = IE::constraint_t::upper_bound + 1 + NormallySmallNonnegativeBinaryInteger::run(ctx); - if (idx >= IE::constraint_t::total_num_entries) - { - ie.set_unknown(); - size_t size = LengthDeterminantDefault::run(ctx); - DecoderCtx::buf_type& buffer = ctx.refBuffer(); - if (buffer.getBytesLeft() < size) - ctx.refErrorCtx().lengthErrorBytes(buffer.getBytesLeft(), size); - else - buffer.advance(size); - } - else - { - OpenTypeVisitorDecoder ve{ ctx }; - ie.decode(IE::denormalize(idx), ve); - } - } - else - ChoiceNoExt::run(ie, ctx); - } -}; - -//22.6 No extension -template -struct Choice > -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - ChoiceNoExt::run(ie, ctx); - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - ChoiceNoExt::run(ie, ctx); - } -}; - -} //namespace per -} //namespace asn diff --git a/e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/per/codec.hpp b/e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/per/codec.hpp deleted file mode 100755 index 176792a..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/per/codec.hpp +++ /dev/null @@ -1,325 +0,0 @@ -#pragma once -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries - -// Local Includes: Application specific classes, functions, and libraries -#include "asn/per/common.hpp" -#include "asn/elements.hpp" -#include "asn/per/context.hpp" -#include "asn/per/length.hpp" -#include "asn/per/integer.hpp" -#include "asn/per/enumerated.hpp" -#include "asn/per/ostring.hpp" -#include "asn/per/bstring.hpp" -#include "asn/per/sequence_of.hpp" -#include "asn/per/sequence.hpp" -#include "asn/per/choice.hpp" -#include "asn/per/visitor.hpp" -#include "asn/per/oid.hpp" - -namespace asn { -namespace per { - -/******************************************************************************** -pack -*********************************************************************************/ -template -bool pack(IE const& ie, EncoderCtx& ctx) -{ - ctx.refErrorCtx().reset(); - Element::run(ie, ctx); - - if (ctx) - Tools::bit_accessor::padByte(ctx.refBuffer()); - - return static_cast(ctx); -} -/******************************************************************************** -unpack -*********************************************************************************/ -template -bool unpack(IE& ie, DecoderCtx& ctx) -{ - Element::run(ie, ctx); - - if (ctx) - Tools::bit_accessor::padByte(ctx.refBuffer()); - - if(ctx && ctx.refBuffer().getBytesLeft()) - { - ctx.ie_name(IE::name()); - ctx.refErrorCtx().lengthErrorBytes(ctx.refBuffer().getBytesLeft(), 0); - } - - return static_cast(ctx); -} - -/*************************************************************************************** -* ElementType -***************************************************************************************/ -template -struct ElementType; - -/*************************************************************************************** -* BOOLEAN: Encoding the boolean type (X.691 11) -***************************************************************************************/ -template -struct ElementType -{ -protected: - template friend struct Element; - - static void inline run(IE const& ie, EncoderCtx& ctx) - { - Tools::bit_accessor::put(static_cast(ie.get()), 1, ctx.refBuffer()); - } - - static void inline run(IE& ie, DecoderCtx& ctx) - { - ie.set(0 != Tools::bit_accessor::get(1, ctx.refBuffer())); - } -}; -/*************************************************************************************** -* INTEGER: Encoding the integer type (X.691 12) -***************************************************************************************/ -template -struct ElementType -{ -protected: - template friend struct Element; - - static void inline run(IE const& ie, EncoderCtx& ctx) - { - Integer::run(ie, ctx); - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - Integer::run(ie, ctx); - } -}; -/*************************************************************************************** -* ENUMERATED: Encoding the enumerated type (X.691 13) -***************************************************************************************/ -template -struct ElementType -{ -protected: - template friend struct Element; - - static void inline run(IE const& ie, EncoderCtx& ctx) - { - Enumerated::run(ie, ctx); - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - Enumerated::run(ie, ctx); - } -}; -/*************************************************************************************** -* BIT STRING: Encoding the bitstring type (X.691 15) -***************************************************************************************/ -template -struct ElementType -{ -protected: - template friend struct Element; - - static void inline run(IE const& ie, EncoderCtx& ctx) - { - Bitstring::run(ie, ctx); - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - ie.clear(); - Bitstring::run(ie, ctx); - } -}; -/*************************************************************************************** -* OCTET STRING: Encoding the octetstring type (X.691 16) -***************************************************************************************/ -template -struct ElementType -{ -protected: - template friend struct Element; - - static void inline run(IE const& ie, EncoderCtx& ctx) - { - Octetstring::run(ie, ctx); - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - ie.clear(); - Octetstring::run(ie, ctx); - } -}; -/*************************************************************************************** -* NULL: Encoding the null type (X.691 17) -***************************************************************************************/ -template -struct ElementType -{ -protected: - template friend struct Element; - - static void inline run(IE const& ie, EncoderCtx& ctx) { /*do nothing*/ } - static void inline run(IE& ie, DecoderCtx& ctx) - { - ie.setpresent(true); - } -}; -/*************************************************************************************** -* SEQUENCE: Encoding the sequence type (X.691 18) -***************************************************************************************/ -template -struct ElementType -{ -protected: - template friend struct Element; - - static void inline run(IE const& ie, EncoderCtx& ctx) - { - ctx.container_name(IE::name()); - Seq::run(ie, ctx); - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - ctx.m_container = &ie; - Seq::run(ie, ctx); - ctx.m_container = nullptr; - } -}; -/*************************************************************************************** -* SEQUENCE OF: Encoding the sequence-of type (X.691 19) -***************************************************************************************/ -template -struct ElementType -{ -protected: - template friend struct Element; - - static void inline run(IE const& ie, EncoderCtx& ctx) - { - ctx.container_name(IE::name()); - SequenceOf::run(ie, ctx); - - for (auto& elem : ie) - Element::run(elem, ctx); - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - ie.clear(); - SequenceOf::run(ie, ctx); - - for (auto & elem : ie) - Element::run(elem, ctx); - } -}; -/*************************************************************************************** -* SET: Encoding the set type (X.691 20) -***************************************************************************************/ - - -/*************************************************************************************** -* SET OF: Encoding the set-of type (X.691 21) -***************************************************************************************/ - -/*************************************************************************************** -* CHOICE: Encoding the choice type (X.691 22) -***************************************************************************************/ -template -struct ElementType -{ -protected: - template friend struct Element; - - static void inline run(IE const& ie, EncoderCtx& ctx) - { - if(ie.is_valid()) - { - ctx.container_name(IE::name()); - Choice::run(ie, ctx); - } - else - ctx.refErrorCtx().tagError(ie.get_index()); - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - ie.clear(); - ctx.m_container = &ie; - Choice::run(ie, ctx); - ctx.m_container = nullptr; - } -}; - -/*************************************************************************************** -* IE_OBJECT_IDENTIFIER: Encoding the object identifier type (X.691 23) -***************************************************************************************/ -template -struct ElementType -{ -protected: - template friend struct Element; - - static void inline run(IE const& ie, EncoderCtx& ctx) - { - Oid::run(ie, ctx); - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - ie.clear(); - Oid::run(ie, ctx); - } -}; - -/*************************************************************************************** -* COMMON: Element -***************************************************************************************/ -template -struct Element -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - if (ctx) - { - ASN_ENCODER_TRACE("IE buffer: %s", static_cast(IE_TYPE), IE::name(), ctx.refBuffer().toString()); - ctx.ie_name(IE::name()); - if (IE_TYPE != element_type::T_SEQUENCE && !ie.is_valid()) - { - ctx.refErrorCtx().errorNoMandatory(); - } - else - ElementType::run(ie, ctx); - } - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - if (ctx) - { - ASN_DECODER_TRACE("IE buffer: %s", static_cast(IE_TYPE), IE::name(), ctx.refBuffer().toString()); - ctx.ie_name(IE::name()); - ElementType::run(ie, ctx); - } - } -}; - -} //namespace per -} //namespace asn diff --git a/e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/per/common.hpp b/e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/per/common.hpp deleted file mode 100755 index 5b92100..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/per/common.hpp +++ /dev/null @@ -1,58 +0,0 @@ -#pragma once -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries -#include - -// Local Includes: Application specific classes, functions, and libraries -#include "asn/asn.hpp" -#include "type_defs.h" - -#include "asn/buffer.hpp" -#include "context.hpp" - -//#define ASN_DECODER_TRACE_ENABLE -//#define ASN_ENCODER_TRACE_ENABLE - -#ifdef ASN_DECODER_TRACE_ENABLE -#define ASN_DECODER_TRACE(FMT, ...) printf(FMT "\n", __VA_ARGS__) -#else -#define ASN_DECODER_TRACE(...) -#endif - -#ifdef ASN_ENCODER_TRACE_ENABLE -#define ASN_ENCODER_TRACE(FMT, ...) printf(FMT "\n", __VA_ARGS__) -#else -#define ASN_ENCODER_TRACE(...) -#endif - -namespace asn { -namespace per { - -struct Tools -{ - typedef bit_accessor_cross_byte bit_accessor; -}; - -template -struct Element; - -} //namespace per -} //namespace asn diff --git a/e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/per/context.hpp b/e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/per/context.hpp deleted file mode 100755 index 2a5d7e9..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/per/context.hpp +++ /dev/null @@ -1,154 +0,0 @@ -#pragma once -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries -#include - -// Local Includes: Application specific classes, functions, and libraries -#include "asn/utility.hpp" -#include "asn/buffer.hpp" -#include "asn/error_context.hpp" - -namespace asn { -namespace per { - -/******************************************************************************** -EncoderCtx -*********************************************************************************/ -class EncoderCtx : boost::noncopyable -{ -public: - typedef buffer buf_type; - - EncoderCtx(u8* data, size_t size) - : m_buffer{ m_errCtx } - { - Reset(data, size); - } - - template - explicit EncoderCtx(u8(&buff)[SIZE]) - : EncoderCtx(buff, SIZE) - { - } - - explicit EncoderCtx() - : EncoderCtx(nullptr, 0) - { - } - - buf_type& refBuffer() { return m_buffer; } - error_context& refErrorCtx() { return m_errCtx; } - explicit operator bool() const { return static_cast(m_errCtx); } - - void Reset(void* data = nullptr, size_t size = 0) - { - m_buffer.reset(static_cast(data), size); - m_errCtx.reset(); - } - - //Name of the being processed IE - void ie_name(const char* name) { m_errCtx.ie_name(name); } - char const* ie_name() const { return m_errCtx.ie_name(); } - - void container_name(const char* name) { m_errCtx.container_name(name); } - char const* container_name() const { return m_errCtx.container_name(); } - -private: - template - friend struct Encode; - - error_context m_errCtx; - buf_type m_buffer; -}; - - -/******************************************************************************** -DecoderCtx -*********************************************************************************/ -class DecoderCtx : boost::noncopyable -{ -public: - typedef buffer buf_type; - typedef allocator alloc_type; - typedef u64 map_type; - - DecoderCtx(const void* data = nullptr, size_t size = 0, void* alloc_buffer = nullptr, size_t alloc_buffer_size = 0) - : m_buffer{ m_errCtx } - { - reset(data, size, alloc_buffer, alloc_buffer_size); - } - - buf_type& refBuffer() { return m_buffer; } - alloc_type& refAllocator() { return m_allocator; } - error_context& refErrorCtx() { return m_errCtx; } - explicit operator bool() const { return static_cast(m_errCtx); } - - void reset(const void* data = nullptr, size_t size = 0, void* alloc_buffer = nullptr, size_t alloc_buffer_size = 0) - { - m_allocator.reset(alloc_buffer, alloc_buffer_size); - m_buffer.reset(static_cast(data), size); - m_errCtx.reset(); - m_map = 0; - m_container = nullptr; - } - - bool map_elm() - { - //m_map = (m_map << 1) | (m_map >> (sizeof(m_map)*CHAR_BIT - 1)); - //return m_map & 1u; - - constexpr map_type mask = ((map_type)1) << (sizeof(map_type)*CHAR_BIT - 1); - - bool rv = m_map & mask; - m_map = m_map << 1; - - return rv; - } - - map_type set_map(map_type map) - { - map_type rval = m_map; - m_map = map; - return rval; - } - - map_type get_map() const {return m_map;} - - //Pointer to container (SEQ | CHO) - void* m_container{ nullptr }; - - //Name of the being processed IE - void ie_name(const char* name) { m_errCtx.ie_name(name); } - char const* ie_name() const { return m_errCtx.ie_name(); } - - void container_name(const char* name) { m_errCtx.container_name(name); } - char const* container_name() const { return m_errCtx.container_name(); } - -private: - //Optional or Extension elements' presence bitmap. Used in sequences - map_type m_map{ 0 }; - error_context m_errCtx; - buf_type m_buffer; - alloc_type m_allocator; -}; - -} //namespace per -} //namespace asn diff --git a/e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/per/enumerated.hpp b/e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/per/enumerated.hpp deleted file mode 100755 index c2e8851..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/per/enumerated.hpp +++ /dev/null @@ -1,79 +0,0 @@ -#pragma once -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries - -// Local Includes: Application specific classes, functions, and libraries -#include "asn/per/common.hpp" -#include "asn/per/whole_number.hpp" -#include "asn/per/binary_integer.hpp" - -namespace asn { -namespace per { - -template -struct Enumerated; - -template -struct Enumerated > -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - if (ie.get() > IE::constraint_t::upper_bound) - { - ctx.refErrorCtx().valueRangeError(static_cast(ie.get())); - return; - } - ConstrainedWholeNumber::run(ctx, ie.get()); - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - ie.set(ConstrainedWholeNumber::run(ctx)); - } -}; - -template -struct Enumerated > -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - if (ie.get() <= IE::constraint_t::upper_bound) - { - Tools::bit_accessor::put(0, 1, ctx.refBuffer()); - ConstrainedWholeNumber::run(ctx, ie.get()); - } - else - { - Tools::bit_accessor::put(1, 1, ctx.refBuffer()); - NormallySmallNonnegativeBinaryInteger::run(ie, ctx, ie.get() - IE::constraint_t::upper_bound - 1); - } - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - u8 ext = Tools::bit_accessor::get(1, ctx.refBuffer()); - if (ext) - ie.set(IE::constraint_t::upper_bound + 1 + NormallySmallNonnegativeBinaryInteger::run(ctx)); - else - ie.set(ConstrainedWholeNumber::run(ctx)); - } -}; - -} //namespace per -} //namespace asn diff --git a/e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/per/integer.hpp b/e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/per/integer.hpp deleted file mode 100755 index 7bb93c2..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/per/integer.hpp +++ /dev/null @@ -1,154 +0,0 @@ -#pragma once -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries - -// Local Includes: Application specific classes, functions, and libraries -#include "asn/elements.hpp" -#include "asn/per/common.hpp" -#include "asn/per/binary_integer.hpp" -#include "asn/per/whole_number.hpp" - -namespace asn { -namespace per { - -template -struct Integer; - -template -struct Integer > -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - if(IE::constraint_t::is_extended(ie.get())) - { - ctx.refErrorCtx().valueRangeError(static_cast(ie.get())); - return; - } - ConstrainedWholeNumber::run(ctx, ie.get()); - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - ie.set(ConstrainedWholeNumber::run(ctx)); - } -}; - -template -struct Integer > -{ - //X.691 12.1 - static void inline run(IE const& ie, EncoderCtx& ctx) - { - if (!IE::constraint_t::is_extended(ie.get())) - { - Tools::bit_accessor::put(0, 1, ctx.refBuffer()); - //X.691 12.2 - ConstrainedWholeNumber::run(ctx, ie.get()); - } - else - { - Tools::bit_accessor::put(1, 1, ctx.refBuffer()); - //X.691 12.2.4, 12.2.6, 10.8s - TwosComplementBinaryInteger::run(ie, ctx); - } - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - - u8 ext = Tools::bit_accessor::get(1, ctx.refBuffer()); - if (ext) - TwosComplementBinaryInteger::run(ie, ctx); - else - ie.set(ConstrainedWholeNumber::run(ctx)); - } -}; - -// (X.691 10.7) -template -struct Integer > -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - if(IE::constraint_t::is_extended(ie.get())) - { - ctx.refErrorCtx().valueRangeError(static_cast(ie.get())); - return; - } - NonnegativeBinaryInteger::run(ie.get() - IE::constraint_t::lower_bound, ctx); - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - typename IE::value_type val = 0; - NonnegativeBinaryInteger::run(val, ctx, false); - ie.set(IE::constraint_t::lower_bound + val); - } -}; - -template -struct Integer > -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - if (!IE::constraint_t::is_extended(ie.get())) - { - Tools::bit_accessor::put(0, 1, ctx.refBuffer()); - NonnegativeBinaryInteger::run(ie.get() - IE::constraint_t::lower_bound, ctx); - } - else - { - Tools::bit_accessor::put(1, 1, ctx.refBuffer()); - TwosComplementBinaryInteger::run(ie, ctx); - } - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - u8 ext = Tools::bit_accessor::get(1, ctx.refBuffer()); - - if (ext) - TwosComplementBinaryInteger::run(ie, ctx); - else - { - typename IE::value_type val = 0; - NonnegativeBinaryInteger::run(val, ctx, false); - ie.set(val + IE::constraint_t::lower_bound); - } - } -}; - -/*************************************************************************************** -* Encoding of an unconstrained whole number (X.691 10.8) -***************************************************************************************/ - -template -struct Integer > -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - TwosComplementBinaryInteger::run(ie, ctx); - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - TwosComplementBinaryInteger::run(ie, ctx); - } -}; - -} //namespace per -} //namespace asn - diff --git a/e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/per/length.hpp b/e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/per/length.hpp deleted file mode 100755 index 488a830..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/per/length.hpp +++ /dev/null @@ -1,238 +0,0 @@ -#pragma once -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries -#include - -// Local Includes: Application specific classes, functions, and libraries -#include "asn/per/common.hpp" -#include "asn/per/whole_number.hpp" - -namespace asn { -namespace per { - -/******************************************************************************** -* Encoding of a length determinant (X.691 10.9) -*********************************************************************************/ - -template -struct LengthDeterminant; - -struct LengthDeterminantDefault //Unconstrained length -{ - static u8 bytes_needed(size_t len) - { - if (len <= 127) - return 1; - return 2; - } - - static void run(EncoderCtx& ctx, size_t len) - { - if (len <= 127) - { - Tools::bit_accessor::padByte(ctx.refBuffer()); - ctx.refBuffer().putByte(static_cast(len)); - } - else if (len < 16384) - { - Tools::bit_accessor::padByte(ctx.refBuffer()); - len += 0x8000; - ctx.refBuffer().putByte(static_cast(len >> 8)); - ctx.refBuffer().putByte(static_cast(len)); - } - else - { - //todo: 10.9.3.8.1 for len >= 16K - } - } - static size_t run(DecoderCtx& ctx) - { - size_t rval = 0; - Tools::bit_accessor::padByte(ctx.refBuffer()); - - u8 const* data = ctx.refBuffer().getBytes(1); - if (data) - { - if (*data & 0x80) - { - rval = (*data & 0x7F) << 8; - data = ctx.refBuffer().getBytes(1); - if (data) - rval |= *data; - } - else - rval = *data; - } - return rval; - } -}; - -//10.9.3.3 -template -struct LengthDeterminant> -{ - static void run(EncoderCtx& ctx, size_t len) - { - ConstrainedWholeNumber::run(ctx, len); - } - static size_t inline run(DecoderCtx& ctx, bool extended_len) - { - return ConstrainedWholeNumber::run(ctx); - } -}; -template -struct LengthDeterminant> -{ - static void run(EncoderCtx& ctx, size_t len) - { - if (len > Range::upper_bound || len < Range::lower_bound) - LengthDeterminantDefault::run(ctx, len); - else - ConstrainedWholeNumber::run(ctx, len); - } - static size_t inline run(DecoderCtx& ctx, bool extended_len) - { - if (extended_len) - return LengthDeterminantDefault::run(ctx); - - return ConstrainedWholeNumber::run(ctx); - } -}; - -template -struct LengthDeterminant= 65536) > > -{ - static void run(EncoderCtx& ctx, size_t len) - { - LengthDeterminantDefault::run(ctx, len); - } - static size_t inline run(DecoderCtx& ctx, bool extended_len) - { - return LengthDeterminantDefault::run(ctx); - } -}; - -//10.9.3.4 : for "normally small length". bitmaps, sequence types -template -struct NormallySmallLength; - -template -struct NormallySmallLength > -{ - static_assert(Length > 0, "NormallySmallLength must be > 0"); - - static void run(EncoderCtx& ctx) - { - Tools::bit_accessor::put((u8)(Length - 1), 7, ctx.refBuffer()); - } - static size_t run(DecoderCtx& ctx) - { - u8 ext = Tools::bit_accessor::get(1, ctx.refBuffer()); - if (ext) - return LengthDeterminantDefault::run(ctx); - return Tools::bit_accessor::get(6, ctx.refBuffer()) + 1; - } -}; - -template -struct NormallySmallLength 64)> > -{ - static void run(EncoderCtx& ctx) - { - Tools::bit_accessor::put(1, 1, ctx.refBuffer()); - LengthDeterminantDefault::run(ctx, Length); - } -}; - -/* -* BinaryIntegerLength -*/ - -template -struct NBytes -{ - static constexpr bound_t value = std::log2( N ) / 8 + 1; -}; - -template -struct NBytes > -{ - static constexpr bound_t value = 1; -}; - -template -struct NRange -{ - static constexpr bound_t lower_bound = B1; - static constexpr bound_t upper_bound = B2; -}; - -template -struct NRange > -{ - static constexpr bound_t lower_bound = B2; - static constexpr bound_t upper_bound = B1; -}; - -template -struct BinaryIntegerLength -{ - typedef NRange< - NBytes::value, - NBytes::value - > nrange; - - using boundary_type = typename Range::boundary_type; - static constexpr bool extended = Range::extended; - static constexpr bound_t lower_bound = nrange::lower_bound; - static constexpr bound_t upper_bound = nrange::upper_bound; - - static void run(EncoderCtx& ctx, size_t len) - { - LengthDeterminant::run(ctx, len); - } - static size_t inline run(DecoderCtx& ctx, bool extended_len) - { - return LengthDeterminant::run(ctx, extended_len); - } -}; - -template -struct BinaryIntegerLength> -{ - static void run(EncoderCtx& ctx, size_t len) - { - LengthDeterminantDefault::run(ctx, len); - } - static size_t inline run(DecoderCtx& ctx, bool extended_len) - { - return LengthDeterminantDefault::run(ctx); - } -}; - -} //namespace per -} //namespace asn diff --git a/e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/per/oid.hpp b/e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/per/oid.hpp deleted file mode 100755 index c4f222a..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/per/oid.hpp +++ /dev/null @@ -1,68 +0,0 @@ -#pragma once -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries - -// Local Includes: Application specific classes, functions, and libraries -#include "asn/per/common.hpp" - -namespace asn { -namespace per { - -template -struct Oid -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - size_t len = ie.get().size(); - - if (len > 255) - { - ctx.refErrorCtx().valueError(len, 0, 0); - } - else - { - Tools::bit_accessor::padByte(ctx.refBuffer()); - ctx.refBuffer().putBytes(reinterpret_cast(&len), 1); - ctx.refBuffer().putBytes(ie.get().data(), len); - } - } - - static void inline run(IE& ie, DecoderCtx& ctx) - { - Tools::bit_accessor::padByte(ctx.refBuffer()); - - uint8_t const* data_in = ctx.refBuffer().getBytes(1); // length - - if(data_in) - { - size_t len = *data_in; - data_in = ctx.refBuffer().getBytes(len); - - if (data_in) - { - ie.set(len, data_in); - } - } - } -}; - -} //namespace per -} //namespace asn diff --git a/e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/per/ostring.hpp b/e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/per/ostring.hpp deleted file mode 100755 index 4d601bb..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/per/ostring.hpp +++ /dev/null @@ -1,209 +0,0 @@ -#pragma once -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries - -// Local Includes: Application specific classes, functions, and libraries -#include "asn/per/common.hpp" - -namespace asn { -namespace per { - -template < class IE, class Enable = void> -struct Octetstring; - -//16.8 Default -template -struct OctetstringNoExt -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - bound_t size = ie.get().size(); - LengthDeterminant::run(ctx, size); - Tools::bit_accessor::padByte(ctx.refBuffer()); - ctx.refBuffer().putBytes(ie.get().data(), size); - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - size_t len = LengthDeterminant::run(ctx, false); - Tools::bit_accessor::padByte(ctx.refBuffer()); - u8 const* data_in = ctx.refBuffer().getBytes(len); - - if (data_in) - { - ie.set(len, data_in); - } - - } -}; - -//16.5 Zero length -template -struct OctetstringNoExt > -{ - static void inline run(IE const& ie, EncoderCtx& ctx) {/* do nothing */ } - static void inline run(IE& ie, DecoderCtx& ctx) { ie.setpresent(true); } -}; - -//16.6 Up to two octets, fixed length -template -struct OctetstringNoExt> -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - Tools::bit_accessor::put(static_cast(ie.get().data()[0]), 8, ctx.refBuffer()); - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - u8 data_in = Tools::bit_accessor::get(8, ctx.refBuffer()); - u8* data_out = ctx.refAllocator().alloc_bytes(1); - if (data_out) { - data_out[0] = data_in; - ie.set(1, data_out); - } - else - ctx.refErrorCtx().allocatorNoMem(0, 1); - } -}; - -template -struct OctetstringNoExt> -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - Tools::bit_accessor::put(static_cast(ie.get().data()[0]), 8, ctx.refBuffer()); - Tools::bit_accessor::put(static_cast(ie.get().data()[1]), 8, ctx.refBuffer()); - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - u8 data_in[2]; - data_in[0] = Tools::bit_accessor::get(8, ctx.refBuffer()); - data_in[1] = Tools::bit_accessor::get(8, ctx.refBuffer()); - u8* data_out = ctx.refAllocator().alloc_bytes(sizeof(data_in)); - if (data_out) { - data_out[0] = data_in[0]; - data_out[1] = data_in[1]; - ie.set(sizeof(data_in), data_out); - } - else - ctx.refErrorCtx().allocatorNoMem(0, sizeof(data_in)); - } -}; - -//16.7 More than 2 octets, up to 64K, fixed length -template -struct OctetstringNoExt 2)) ->> -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - Tools::bit_accessor::padByte(ctx.refBuffer()); - ctx.refBuffer().putBytes(ie.get().data(), ie.get().size()); - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - Tools::bit_accessor::padByte(ctx.refBuffer()); - const size_t len = (size_t)IE::constraint_t::upper_bound; - u8 const* data_in = ctx.refBuffer().getBytes(len); - if (data_in) - { - ie.set(len, data_in); - } - } -}; - -/**************************************************/ - -//16.3 : Extension present -template -struct Octetstring > -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - bound_t size = ie.get().size(); - if (size <= IE::constraint_t::upper_bound && size >= IE::constraint_t::lower_bound) - { - Tools::bit_accessor::put(0, 1, ctx.refBuffer()); - OctetstringNoExt::run(ie, ctx); - } - else - { - Tools::bit_accessor::put(1, 1, ctx.refBuffer()); - Tools::bit_accessor::padByte(ctx.refBuffer()); - LengthDeterminant::run(ctx, size); - Tools::bit_accessor::padByte(ctx.refBuffer()); - ctx.refBuffer().putBytes(ie.get().data(), size); - } - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - u8 ext = Tools::bit_accessor::get(1, ctx.refBuffer()); - if (ext) - { - Tools::bit_accessor::padByte(ctx.refBuffer()); - size_t len = LengthDeterminant::run(ctx, true); - Tools::bit_accessor::padByte(ctx.refBuffer()); - u8 const* data_in = ctx.refBuffer().getBytes(len); - if (data_in) - { - ie.set(len, data_in); - } - } - else - OctetstringNoExt::run(ie, ctx); - } -}; - -//16.4 : No extension -template -struct Octetstring > -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - if ( ie.get().size() > size_t(IE::constraint_t::upper_bound) || - (IE::constraint_t::lower_bound >= 0 && ie.get().size() < size_t(IE::constraint_t::lower_bound))) - { - ctx.refErrorCtx().sizeRangeError(ie.get().size(), size_t(IE::constraint_t::lower_bound), - size_t(IE::constraint_t::upper_bound)); - } - else - { - OctetstringNoExt::run(ie, ctx); - } - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - OctetstringNoExt::run(ie, ctx); - if ( ie.get().size() > size_t(IE::constraint_t::upper_bound) || - (IE::constraint_t::lower_bound >= 0 && ie.get().size() < size_t(IE::constraint_t::lower_bound))) - { - ctx.refErrorCtx().sizeRangeError(ie.get().size(), size_t(IE::constraint_t::lower_bound), - size_t(IE::constraint_t::upper_bound)); - } - } -}; - -} //namespace per -} //namespace asn diff --git a/e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/per/sequence.hpp b/e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/per/sequence.hpp deleted file mode 100755 index e533e80..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/per/sequence.hpp +++ /dev/null @@ -1,568 +0,0 @@ -#pragma once -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries - -// Local Includes: Application specific classes, functions, and libraries -#include "asn/per/common.hpp" -#include "asn/per/visitor.hpp" - -namespace asn { -namespace per { - -/****************************************************************** - * Adapter - *****************************************************************/ -template -struct Adapter -{ - static void inline run(IE const& ie, EncoderCtx& ctx, Container const& cont) - { - Element::run(ie, ctx); - } - - static void inline run(IE& ie, DecoderCtx& ctx, Container const& cont) - { - Element::run(ie, ctx); - } -}; -template -struct Adapter> -{ - static void inline run(IE const& ie, EncoderCtx& ctx, Container const& cont) - { - VisitorEncoder v(ctx); - bool rv = ie.encode(v, cont); - if(!rv && static_cast(ctx)) - { - ctx.refErrorCtx().errorNoObject(Container::name()); - } - } - - static void inline run(IE& ie, DecoderCtx& ctx, Container const& cont) - { - VisitorDecoder v(ctx); - bool rv = ie.decode(v, cont); - if(!rv && static_cast(ctx)) - { - ctx.refErrorCtx().errorNoObject(Container::name()); - } - } -}; -template -struct Adapter > -{ - static void inline run(IE const& ie, EncoderCtx& ctx, Container const& cont) - { - OpenTypeVisitorEncoder v(ctx); - bool rv = ie.encode(v, cont); - if(!rv && static_cast(ctx)) - { - ctx.refErrorCtx().errorNoObject(Container::name()); - } - } - - static void inline run(IE& ie, DecoderCtx& ctx, Container const& cont) - { - OpenTypeVisitorDecoder v(ctx); - bool rv = ie.decode(v, cont); - if(!rv && static_cast(ctx)) - { - ctx.refErrorCtx().errorNoObject(Container::name()); - } - if(ie.is_unknown()) //skip the unknown Open Type - { - size_t size = LengthDeterminantDefault::run(ctx); - DecoderCtx::buf_type& buffer = ctx.refBuffer(); - if (buffer.getBytesLeft() < size) - ctx.refErrorCtx().lengthErrorBytes(buffer.getBytesLeft(), size); - else - buffer.advance(size); - } - } -}; - -/****************************************************************** - * RootEncoder - *****************************************************************/ -template -struct RootEncoder -{ - RootEncoder(EncoderCtx& ctx, Container const& cont) : m_ctx(ctx), m_cont(cont) {} - - template - bool operator() (IE const& ie) const - { - if(!IE::extension) - { - if(IE::optional && !ie.is_valid()) - return static_cast(m_ctx); - Adapter::run(ie, m_ctx, m_cont); - } - return static_cast(m_ctx); - } - EncoderCtx& m_ctx; - Container const& m_cont; -}; - -/****************************************************************** - * RootDecoder - *****************************************************************/ -template -struct RootDecoder -{ - RootDecoder(DecoderCtx& ctx, Container const& cont) : m_ctx(ctx), m_cont(cont) {} - - template - bool operator() (IE& ie) const - { - if(!IE::extension) - { - if(IE::optional) - { - if(m_ctx.map_elm()) - { - ie.setpresent(true); - Adapter::run(ie, m_ctx, m_cont); - } - else - ie.setpresent(false); - } - else - { - Adapter::run(ie, m_ctx, m_cont); - } - } - return static_cast(m_ctx); - } - DecoderCtx& m_ctx; - Container const& m_cont; -}; - -/****************************************************************** - * ExtEncoder - *****************************************************************/ -template -struct ExtEncoder -{ - explicit ExtEncoder(EncoderCtx& ctx, Container const& cont) : m_ctx(ctx), m_cont(cont) {} - - template - bool operator() (IE const& ie) const - { - if(!IE::extension) - return static_cast(m_ctx); - - if(IE::optional && !ie.is_valid()) - return static_cast(m_ctx); - - size_t reserved_size = 1; //1 byte length is most likely - Tools::bit_accessor::padByte(m_ctx.refBuffer()); - - if (m_ctx.refBuffer().getBytesLeft()) - { - EncoderCtx::buf_type::pointer p = m_ctx.refBuffer().advance(reserved_size); - EncoderCtx::buf_type::pointer start = p + reserved_size; - - Adapter::run(ie, m_ctx, m_cont); - - if (m_ctx) - { - Tools::bit_accessor::padByte(m_ctx.refBuffer()); - EncoderCtx::buf_type::pointer p_new = m_ctx.refBuffer().begin(); - size_t size = p_new - start; - size_t needed = LengthDeterminantDefault::bytes_needed(size) - reserved_size; - if (needed) //1 byte is not enough for the length determinant. it is hardly possible - { - if (m_ctx.refBuffer().getBytesLeft() < needed) { - m_ctx.refErrorCtx().lengthErrorBytes(m_ctx.refBuffer().getBytesLeft(), needed); - return false; - } - memmove(start + needed, start, size); - p_new += needed; - } - m_ctx.refBuffer().set_begin(p, 0); - LengthDeterminantDefault::run(m_ctx, size); - if (m_ctx) { - m_ctx.refBuffer().set_begin(p_new, 0); - Tools::bit_accessor::padByte(m_ctx.refBuffer()); - } - } - } - else - { - m_ctx.refErrorCtx().lengthErrorBytes(m_ctx.refBuffer().getBytesLeft(), reserved_size); - return false; - } - return static_cast(m_ctx); - } - EncoderCtx& m_ctx; - Container const& m_cont; -}; - -/****************************************************************** - * ExtDecoder - *****************************************************************/ -template -struct ExtDecoder -{ - explicit ExtDecoder(DecoderCtx& ctx, Container const& cont) : m_ctx(ctx), m_cont(cont) {} - - template - bool operator() (IE& ie) const - { - if(!IE::extension) - return static_cast(m_ctx); - - if (m_ctx.map_elm()) - { - ie.setpresent(true); - size_t size = LengthDeterminantDefault::run(m_ctx); - DecoderCtx::buf_type& buffer = m_ctx.refBuffer(); - if (buffer.getBytesLeft() < size) - { - m_ctx.refErrorCtx().lengthErrorBytes(buffer.getBytesLeft(), size); - return false; - } - DecoderCtx::buf_type::pointer end = buffer.end(); - buffer.set_end(buffer.begin() + size); - Adapter::run(ie, m_ctx, m_cont); - Tools::bit_accessor::padByte(m_ctx.refBuffer()); - buffer.set_end(end); - } - else - { - ie.setpresent(false); - } - - return static_cast(m_ctx); - } - DecoderCtx& m_ctx; - Container const& m_cont; -}; - -/****************************************************************** - * SeqMap - *****************************************************************/ -template -struct SeqMap; - -/* -template -struct SeqMap 8) > > -{ - static void inline run(EncoderCtx& ctx, size_t val) - { - u8 k = IE::num_opt_entries / 8; // num of full bytes in a seq map mask - u8 fb_bits = IE::num_opt_entries % 8; // num of first byte bits (without padding) - - if (fb_bits) { - // Put a part of a first byte (without padding, only seq map own bits) - Tools::bit_accessor::put((u8)(val >> 8*k), fb_bits, ctx.refBuffer()); - } - - // Put other bytes (full bytes) - for (int i = (k-1); i >= 0; i--) { - Tools::bit_accessor::put((u8)(val >> 8*i), 8, ctx.refBuffer()); - } - } - - static DecoderCtx::map_type inline run(DecoderCtx& ctx) - { - uint num_opts = IE::num_opt_entries; - u64 res = 0; - u8 k = 1; - u8 lb_bits = IE::num_opt_entries % 8; // num of last byte bits (without padding) - - while (num_opts >= 8) { - size_t shift = sizeof(DecoderCtx::map_type) * CHAR_BIT - 8*k; - - DecoderCtx::map_type rval = Tools::bit_accessor::get(8, ctx.refBuffer()); - - rval = rval << shift; - res |= rval; - - k++; - num_opts -= 8; - } - - if (lb_bits > 0) { - // (8 - lb_bits) - padding in a last byte - size_t shift = sizeof(DecoderCtx::map_type) * CHAR_BIT - 8*k + 8 - lb_bits; - - DecoderCtx::map_type rval = Tools::bit_accessor::get(lb_bits, ctx.refBuffer()); - - rval = rval << shift; - res |= rval; - } - - return res; - } -} -; -*/ - -template -struct SeqMap > //todo: to add code for more than 8 optional elements -{ - static void inline run(EncoderCtx& ctx, size_t val) - { - Tools::bit_accessor::put((u8)val, IE::num_opt_entries, ctx.refBuffer()); - } - static DecoderCtx::map_type inline run(DecoderCtx& ctx) - { - size_t shift = sizeof(DecoderCtx::map_type) * CHAR_BIT - IE::num_opt_entries; - DecoderCtx::map_type rval = Tools::bit_accessor::get(IE::num_opt_entries, ctx.refBuffer()); - rval = rval << shift; - return rval; - } -}; - -/****************************************************************** - * SeqExtMap - *****************************************************************/ -template -struct SeqExtMap -{ - static void inline run(EncoderCtx& ctx, size_t val) {} - static DecoderCtx::map_type inline run(DecoderCtx& ctx) - { - size_t len = NormallySmallLength<1>::run(ctx); - size_t shift = sizeof(DecoderCtx::map_type) * CHAR_BIT - len; - u8 tmp; - DecoderCtx::map_type rval{ 0 }; - u8 val; - - while (len) { - tmp = len > 8 ? 8 : (u8)len; - val = Tools::bit_accessor::get(tmp, ctx.refBuffer()); - rval = rval << tmp; - rval |= val; - len -= tmp; - } - rval = rval << shift; - return rval; - } -}; - -template -struct SeqExtMap 0)) > > -{ - static void inline run(EncoderCtx& ctx, size_t val) - { - NormallySmallLength::run(ctx); - Tools::bit_accessor::put((u8)val, NumExtEntries, ctx.refBuffer()); - } -}; - -template -struct SeqExtMap 8) > > -{ - static void inline run(EncoderCtx& ctx, size_t val) - { - NormallySmallLength::run(ctx); - - size_t len = NumExtEntries; - size_t tmp; - - while (len) { - tmp = len > 8 ? 8 : len; - Tools::bit_accessor::put((u8)val, tmp, ctx.refBuffer()); - val = val >> tmp; - len -= tmp; - } - } -}; - -/****************************************************************** - * SeqMapBuilder - *****************************************************************/ -struct SeqMapBuilder -{ - SeqMapBuilder(uint64_t& map) : m_map(map) {} - - template - bool operator()(IE const& ie) - { - if(!IE::extension && IE::optional) - { - m_map = m_map << 1; - if(ie.is_valid()) - m_map |= 1; - } - return true; - } - uint64_t& m_map; -}; - -/****************************************************************** - * SeqExtMapBuilder - *****************************************************************/ -struct SeqExtMapBuilder -{ - SeqExtMapBuilder(uint64_t& map) : m_map(map) {} - - template - bool operator()(IE const& ie) - { - if(IE::extension) - { - m_map = m_map << 1; - if(!IE::optional || (IE::optional && ie.is_valid())) - m_map |= 1; - } - return true; - } - uint64_t& m_map; -}; - -/****************************************************************** - * SeqNoExtDefault - *****************************************************************/ -// Default (No OPT/DEF present within the extension root) -template -struct SeqNoExtDefault -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - RootEncoder ve(ctx, ie); - ie.encode(ve); - } - static void inline run(IE& ie, DecoderCtx& ctx, DecoderCtx::map_type map = 0) - { - RootDecoder ve(ctx, ie); - - DecoderCtx::map_type old_map = ctx.set_map(map); - ie.decode(ve); - ctx.set_map(old_map); - } -}; - -/****************************************************************** - * SeqNoExt - *****************************************************************/ -// Default (No OPT/DEF present within the extension root) -template -struct SeqNoExt -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - SeqNoExtDefault::run(ie, ctx); - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - SeqNoExtDefault::run(ie, ctx); - } -}; - -//18.2 OPT/DEF present within the extension root -template -struct SeqNoExt 0) > > -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - uint64_t map = 0; - SeqMapBuilder mb(map); - ie.encode(mb); - SeqMap::run(ctx, map); - SeqNoExtDefault::run(ie, ctx); - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - SeqNoExtDefault::run(ie, ctx, SeqMap::run(ctx)); - } -}; - -/****************************************************************** - * Seq - *****************************************************************/ -template -struct Seq; - -template -struct Seq > -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - uint64_t map = 0; - SeqExtMapBuilder emb(map); - ie.encode(emb); - - if (map) { - Tools::bit_accessor::put(1, 1, ctx.refBuffer()); - SeqNoExt::run(ie, ctx); - SeqExtMap::run(ctx, map); - ExtEncoder ove(ctx, ie); - ie.encode(ove); - } - else { - Tools::bit_accessor::put(0, 1, ctx.refBuffer()); - SeqNoExt::run(ie, ctx); - } - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - u8 ext = Tools::bit_accessor::get(1, ctx.refBuffer()); - if (ext) - { - SeqNoExt::run(ie, ctx); - - auto old_map = ctx.set_map(SeqExtMap::run(ctx)); // we do not know how many exts can be received - { - ExtDecoder ove(ctx, ie); - ie.decode(ove); - - auto& buffer = ctx.refBuffer(); - while(ctx.get_map()) - { - if(ctx.map_elm()) //skip unknown extensions - { - size_t size = LengthDeterminantDefault::run(ctx); - if (buffer.getBytesLeft() < size) - { - ctx.refErrorCtx().lengthErrorBytes(buffer.getBytesLeft(), size); - break; - } - buffer.advance(size); - } - } - } - ctx.set_map(old_map); - } - else - SeqNoExt::run(ie, ctx); - } -}; - -template -struct Seq > -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - SeqNoExt::run(ie, ctx); - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - SeqNoExt::run(ie, ctx); - } -}; - -} //namespace per -} //namespace asn diff --git a/e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/per/sequence_of.hpp b/e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/per/sequence_of.hpp deleted file mode 100755 index d4e21a9..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/per/sequence_of.hpp +++ /dev/null @@ -1,156 +0,0 @@ -#pragma once -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries - -// Local Includes: Application specific classes, functions, and libraries -#include "asn/per/common.hpp" - -namespace asn { -namespace per { - -template -struct SequenceOf; - -//19.6 Default -template -struct SequenceOfNoExt -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - LengthDeterminant::run(ctx, ie.size()); - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - size_t len = LengthDeterminant::run(ctx, false); - for (size_t i = 0; i < len; ++i) - { - u8* data = ctx.refAllocator().alloc_bytes(sizeof(typename IE::value_type)); - if (data) - { - typename IE::value_type * v = new (data) typename IE::value_type; - v->clear(); - ie.push_back(*v); - } - else - { - ctx.refErrorCtx().allocatorNoMem(0, sizeof(typename IE::value_type)); - break; - } - } - } -}; - -//16.6 -template -struct SequenceOfNoExt> -{ - static void inline run(IE const& ie, EncoderCtx& ctx) {/*do nothing*/ } - static void inline run(IE& ie, DecoderCtx& ctx) - { - for (size_t i = 0; i < IE::constraint_t::upper_bound; ++i) - { - u8* data = ctx.refAllocator().alloc_bytes(sizeof(typename IE::value_type)); - if (data) - { - typename IE::value_type * v = new (data) typename IE::value_type; - v->clear(); - ie.push_back(*v); - } - else - { - ctx.refErrorCtx().allocatorNoMem(0, sizeof(typename IE::value_type)); - break; - } - } - } -}; - -/**************************************************/ - -//19.4 Extension present -template -struct SequenceOf > -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - if (ie.size() <= IE::constraint_t::upper_bound && ie.size() >= IE::constraint_t::lower_bound) - { - Tools::bit_accessor::put(0, 1, ctx.refBuffer()); - SequenceOfNoExt::run(ie, ctx); - } - else - { - Tools::bit_accessor::put(1, 1, ctx.refBuffer()); - LengthDeterminant::run(ctx, ie.size()); - } - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - u8 ext = Tools::bit_accessor::get(1, ctx.refBuffer()); - if (ext) - { - size_t len = LengthDeterminant::run(ctx, true); - for (size_t i = 0; i < len; ++i) - { - u8* data = ctx.refAllocator().alloc_bytes(sizeof(typename IE::value_type)); - if (data) - { - typename IE::value_type * v = new (data) typename IE::value_type; - //v->clear(); - ie.push_back(*v); - } - else - { - ctx.refErrorCtx().allocatorNoMem(0, sizeof(typename IE::value_type)); - break; - } - } - } - else - SequenceOfNoExt::run(ie, ctx); - } -}; - -//19.5-6 No extension -template -struct SequenceOf > -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - if (IE::constraint_t::lower_bound >= 0 && ie.size() < size_t(IE::constraint_t::lower_bound)) - { - ctx.refErrorCtx().sizeRangeError(ie.size(), size_t(IE::constraint_t::lower_bound)); - } - else - { - SequenceOfNoExt::run(ie, ctx); - } - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - SequenceOfNoExt::run(ie, ctx); - } -}; - -} //namespace per -} //namespace asn diff --git a/e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/per/visitor.hpp b/e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/per/visitor.hpp deleted file mode 100755 index f379044..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/per/visitor.hpp +++ /dev/null @@ -1,141 +0,0 @@ -#pragma once -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries - -// Local Includes: Application specific classes, functions, and libraries -#include "asn/per/common.hpp" - -namespace asn { -namespace per { - -/******************************************************************************** -VisitorEncoder -*********************************************************************************/ -struct VisitorEncoder -{ - explicit VisitorEncoder(EncoderCtx& ctx) : m_ctx(ctx) {} - - template - bool operator() (IE const& ie) const - { - Element::run(ie, m_ctx); - return static_cast(m_ctx); - } - EncoderCtx& m_ctx; -}; - -/******************************************************************************** -VisitorDecoder -*********************************************************************************/ -struct VisitorDecoder -{ - VisitorDecoder(DecoderCtx& ctx) : m_ctx(ctx) {} - - template - bool operator() (IE& ie) const - { - Element::run(ie, m_ctx); - return static_cast(m_ctx); - } - DecoderCtx& m_ctx; -}; - -/*************************************************************************************** -* Open Type Visitor // Encode Open Type (10.2) -***************************************************************************************/ -struct OpenTypeVisitorEncoder -{ - explicit OpenTypeVisitorEncoder(EncoderCtx& ctx) : m_ctx(ctx) {} - - template - bool operator() (IE const& ie) const - { - size_t reserved_size = 1; //1 byte length is most likely - Tools::bit_accessor::padByte(m_ctx.refBuffer()); - - if (m_ctx.refBuffer().getBytesLeft()) - { - EncoderCtx::buf_type::pointer p = m_ctx.refBuffer().advance(reserved_size); - EncoderCtx::buf_type::pointer start = p + reserved_size; - - Element::run(ie, m_ctx); - - if (m_ctx) - { - Tools::bit_accessor::padByte(m_ctx.refBuffer()); - EncoderCtx::buf_type::pointer p_new = m_ctx.refBuffer().begin(); - size_t size = p_new - start; - size_t needed = LengthDeterminantDefault::bytes_needed(size) - reserved_size; - if (needed) //1 byte is not enough for the length determinant. it is hardly possible - { - if (m_ctx.refBuffer().getBytesLeft() < needed) { - m_ctx.refErrorCtx().lengthErrorBytes(m_ctx.refBuffer().getBytesLeft(), needed); - return false; - } - memmove(start + needed, start, size); - p_new += needed; - } - m_ctx.refBuffer().set_begin(p, 0); - LengthDeterminantDefault::run(m_ctx, size); - if (m_ctx) { - m_ctx.refBuffer().set_begin(p_new, 0); - Tools::bit_accessor::padByte(m_ctx.refBuffer()); - } - } - } - else - { - m_ctx.refErrorCtx().lengthErrorBytes(m_ctx.refBuffer().getBytesLeft(), reserved_size); - } - return static_cast(m_ctx); - } - EncoderCtx& m_ctx; -}; - -/*************************************************************************************** -* Open Type Visitor // Decode Open Type (10.2) -***************************************************************************************/ -struct OpenTypeVisitorDecoder -{ - explicit OpenTypeVisitorDecoder(DecoderCtx& ctx) : m_ctx(ctx) {} - - template - bool operator() (IE& ie) const - { - size_t size = LengthDeterminantDefault::run(m_ctx); - DecoderCtx::buf_type& buffer = m_ctx.refBuffer(); - if (buffer.getBytesLeft() < size) - { - m_ctx.refErrorCtx().lengthErrorBytes(buffer.getBytesLeft(), size); - return false; - } - DecoderCtx::buf_type::pointer end = buffer.end(); - buffer.set_end(buffer.begin() + size); - Element::run(ie, m_ctx); - buffer.set_end(end); - - return static_cast(m_ctx); - } - DecoderCtx& m_ctx; -}; - -} //namespace per -} //namespace asn diff --git a/e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/per/whole_number.hpp b/e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/per/whole_number.hpp deleted file mode 100755 index c614998..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/per/whole_number.hpp +++ /dev/null @@ -1,147 +0,0 @@ -#pragma once -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries -#include -#include - -// Local Includes: Application specific classes, functions, and libraries -#include "asn/per/common.hpp" -#include "asn/per/binary_integer.hpp" - -namespace asn { -namespace per { - -/*************************************************************************************** -* Encoding of a constrained whole number (X.691 10.5) -***************************************************************************************/ - -template -struct length_determinant; - -template -struct length_determinant > { static constexpr bound_t value = 0; }; - -template -struct length_determinant > { static constexpr bound_t value = 1; }; - -template -struct length_determinant 1) > > { static constexpr bound_t value = boost::static_log2<(R - 1)>::value + 1; }; - -/*************************************************************************************** -***************************************************************************************/ - -template -struct ConstrainedWholeNumber; - -//Bit-field case -template -struct ConstrainedWholeNumber > -{ - //non-negative-binary-integer X.691 10.5 - static void inline run(EncoderCtx& ctx, const V& val) - { - Tools::bit_accessor::put(static_cast(val - Range::lower_bound), - length_determinant<(Range::upper_bound - Range::lower_bound + 1)>::value, - ctx.refBuffer()); - } - static V inline run(DecoderCtx& ctx) - { - return Range::lower_bound + Tools::bit_accessor::get( - length_determinant<(Range::upper_bound - Range::lower_bound + 1)>::value, - ctx.refBuffer()); - } -}; - -//One octet case -template -struct ConstrainedWholeNumber > -{ - //non-negative-binary-integer X.691 10.5 - static void inline run(EncoderCtx& ctx, const V& val) - { - Tools::bit_accessor::padByte(ctx.refBuffer()); - ctx.refBuffer().putByte(static_cast(val - Range::lower_bound)); - } - static V inline run(DecoderCtx& ctx) - { - V rval = 0; - Tools::bit_accessor::padByte(ctx.refBuffer()); - u8 const* data = ctx.refBuffer().getBytes(1); - if (data) - rval = Range::lower_bound + data[0]; - return rval; - } -}; - -//Two octets case -template -struct ConstrainedWholeNumber (Range::lower_bound + 255)) && (Range::upper_bound <= (Range::lower_bound + 65535))> > -{ - //non-negative-binary-integer X.691 10.5 - static void inline run(EncoderCtx& ctx, const V& v) - { - u64 val = static_cast(v - Range::lower_bound); - Tools::bit_accessor::padByte(ctx.refBuffer()); - ctx.refBuffer().putByte((u8)(val >> 8)); - ctx.refBuffer().putByte((u8)val); - } - static V inline run(DecoderCtx& ctx) - { - V rval = 0; - Tools::bit_accessor::padByte(ctx.refBuffer()); - u8 const* data = ctx.refBuffer().getBytes(2); - if (data) { - rval = data[0]; - rval = rval << 8; - rval |= data[1]; - rval += Range::lower_bound; - } - return rval; - } -}; - -//Indefinite case -template -struct ConstrainedWholeNumber Range::lower_bound + 65535) > > -{ - struct NormalizedValueRange - { - using boundary_type = typename Range::boundary_type; - static constexpr bool extended = Range::extended; - static constexpr boundary_type lower_bound = 0; - static constexpr boundary_type upper_bound = Range::upper_bound - Range::lower_bound; - }; - - //non-negative-binary-integer X.691 10.5 - static void inline run(EncoderCtx& ctx, const V& val) - { - NonnegativeBinaryInteger::run(val - Range::lower_bound, ctx); - } - static V inline run(DecoderCtx& ctx) - { - V rval = 0; - NonnegativeBinaryInteger::run(rval, ctx, false); - return rval + Range::lower_bound; - } -}; - -} //namespace per -} //namespace asn diff --git a/e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/printer.hpp b/e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/printer.hpp deleted file mode 100755 index b21eaef..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/printer.hpp +++ /dev/null @@ -1,338 +0,0 @@ -#pragma once - -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries -#include -#include - -// Local Includes: Application specific classes, functions, and libraries -#include "asn/elements.hpp" - -namespace asn{ - -/******************************************************************************** -Utility -**********************************S***********************************************/ -inline void skip_row(std::ostream* str, size_t row_shift) - //{*str << std::string(row_shift, ' ');} -{ - std::string s(row_shift, ' '); - str->write(s.data(), s.size()); -} - -inline void print_hex(std::ostream* str, size_t size, const uint8_t* data, size_t row_shift) -{ - *str << std::setfill('0') << std::hex << std::noshowbase; - for (size_t i = 0; i < size; ++i) - { - if (i && (0x00 == (i & 0x0f))) { skip_row(str, row_shift); } - *str << std::setw(2) << (int)data[i] << " "; - if (0x0f == (i & 0x0f)) { *str << '\n'; } - } -} - -/******************************************************************************** - -Print - -*********************************************************************************/ - - -/******************************************************************************** -default implementation for IE -*********************************************************************************/ -template -struct Print; - -template -void print(IE const& ie, std::ostream& out, size_t row_shift) -{ - Print::run(ie, &out, row_shift); -} - -template -std::string get_printed(IE const& ie, size_t row_shift = 0) -{ - std::stringstream out; - print(ie, out, row_shift); - return out.str(); -} - - -/******************************************************************************** -VisitorPrinter -*********************************************************************************/ -struct VisitorPrinter -{ - VisitorPrinter(std::ostream* str, size_t row_shift) : m_pStream(str), m_RowShift(row_shift) {} - - template - bool operator() (IE & ie) - { - Print::run(ie, m_pStream, m_RowShift); - return true; - } - - std::ostream* m_pStream; - size_t m_RowShift; -}; - -/****************************************************************** - * PrinterAdapter - *****************************************************************/ -template -struct PrinterAdapter -{ - static void inline run(IE const& ie, std::ostream* str, size_t row_shift, Container const& cont) - { - Print::run(ie, str, row_shift); - } -}; -template -struct PrinterAdapter> -{ - static void inline run(IE const& ie, std::ostream* str, size_t row_shift, Container const& cont) - { - VisitorPrinter vp(str, row_shift); - ie.encode(vp, cont); - } -}; -template -struct PrinterAdapter > -{ - static void inline run(IE const& ie, std::ostream* str, size_t row_shift, Container const& cont) - { - VisitorPrinter vp(str, row_shift); - ie.encode(vp, cont); - } -}; - -/******************************************************************************** -SeqVisitorPrinter -*********************************************************************************/ -template -struct SeqVisitorPrinter -{ - SeqVisitorPrinter(Container const& cont, std::ostream* str, size_t row_shift) : m_pStream(str), m_RowShift(row_shift), m_cont(cont) {} - - template - bool operator() (IE & ie) - { - if(!IE::optional || ie.is_valid()) - PrinterAdapter::run(ie, m_pStream, m_RowShift, m_cont); - return true; - } - - std::ostream* m_pStream; - size_t m_RowShift; - Container const& m_cont; -}; - - -/******************************************************************************** -T_NULL -*********************************************************************************/ - -template -struct Print -{ - static void inline run(IE const& ie, std::ostream* str, size_t row_shift) - { - skip_row(str, row_shift); - *str << IE::name() << std::endl; - } -}; - -/******************************************************************************** -T_BOOLEAN -*********************************************************************************/ -template -struct Print -{ - static void inline run(IE const& ie, std::ostream* str, size_t row_shift) - { - skip_row(str, row_shift); - *str << IE::name() << " = " << (ie.get() ? "true" : "false")<< std::endl; - } -}; - -/******************************************************************************** -T_INTEGER -*********************************************************************************/ -template -struct Print -{ - static void inline run(IE const& ie, std::ostream* str, size_t row_shift) - { - skip_row(str, row_shift); - *str << IE::name() << " = " << std::hex << std::showbase << (size_t)ie.get() << std::endl; - } -}; - -/******************************************************************************** -T_ENUMERATED -*********************************************************************************/ -template -struct Print -{ - static void inline run(IE const& ie, std::ostream* str, size_t row_shift) - { - skip_row(str, row_shift); - *str << IE::name() << " = " << std::hex << std::showbase << (size_t)ie.get() << std::endl; - } -}; - -/******************************************************************************** -T_BITSTRING -*********************************************************************************/ -template -struct Print -{ - static void inline run(IE const& ie, std::ostream* str, size_t row_shift) - { - skip_row(str, row_shift); - auto& val = ie.get_buffer(); - *str << IE::name() << " = "; - - print_hex(str, val.size() - 1, val.data(), row_shift + strlen(IE::name()) + 3); - - size_t i = val.size() - 1; - uint8_t c = val.data()[i]; - uint8_t b = val.bitqty() % 8; - if (b != 0) c = c << (8 - b); - - if (i && (0x00 == (i & 0x0f))) { skip_row(str, row_shift); } - *str << std::setw(2) << (int)c; - - *str << " (" << std::dec << val.bitqty() << " bits)" << std::endl; - - } -}; - -/******************************************************************************** -T_OCTETSTRING -*********************************************************************************/ -template -struct Print -{ - static void inline run(IE const& ie, std::ostream* str, size_t row_shift) - { - skip_row(str, row_shift); - *str << IE::name() << " = "; - auto & val = ie.get(); - print_hex(str, val.size(), val.data(), row_shift + strlen(IE::name()) + 3); - *str << std::endl; - } -}; - -/******************************************************************************** -T_SEQUENCE -*********************************************************************************/ -template -struct Print -{ - static void inline run(IE const& ie, std::ostream* str, size_t row_shift) - { - skip_row(str, row_shift); - *str << IE::name() << std::endl; - SeqVisitorPrinter vp(ie, str, row_shift + 1); - ie.encode(vp); - } -}; - -/******************************************************************************** -T_SET -*********************************************************************************/ -template -struct Print -{ - static void inline run(IE const& ie, std::ostream* str, size_t row_shift) - { - skip_row(str, row_shift); - *str << IE::name() << std::endl; - SeqVisitorPrinter vp(ie, str, row_shift + 1); - ie.encode(vp); - } -}; - - -/******************************************************************************** -T_CHOICE -*********************************************************************************/ -template -struct Print -{ - static void inline run(IE const& ie, std::ostream* str, size_t row_shift) - { - VisitorPrinter vp(str, row_shift+1); - skip_row(str, row_shift); *str << IE::name() << ":\n"; - ie.encode(vp); - } -}; - -/******************************************************************************** -T_SEQUENCE_OF -*********************************************************************************/ -template -struct Print -{ - static void inline run(IE const& ie, std::ostream* str, size_t row_shift) - { - skip_row(str, row_shift); *str << IE::name() << ":\n"; - ++row_shift; - for (auto& elem : ie) - { - Print::run(elem, str, row_shift); - } - } -}; - -/******************************************************************************** -T_SET_OF -*********************************************************************************/ -template -struct Print -{ - static void inline run(IE const& ie, std::ostream* str, size_t row_shift) - { - skip_row(str, row_shift); *str << IE::name() << ":\n"; - ++row_shift; - for (auto& elem : ie) - { - Print::run(elem, str, row_shift); - } - } -}; - -/******************************************************************************** -T_OBJECTIDENTIFIER -*********************************************************************************/ -template -struct Print -{ - static void inline run(IE const& ie, std::ostream* str, size_t row_shift) - { - skip_row(str, row_shift); - *str << IE::name() << std::endl; - } -}; - -} //namespace asn diff --git a/e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/type_defs.h b/e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/type_defs.h deleted file mode 100755 index e7cc539..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/type_defs.h +++ /dev/null @@ -1,36 +0,0 @@ -#pragma once -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -*******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries -#include - -// Platform Includes: Platform specific classes, functions, and libraries - -// Local Includes: Application specific classes, functions, and libraries - -typedef uint8_t u8; -typedef uint16_t u16; -typedef uint32_t u32; -typedef uint64_t u64; - -typedef int8_t i8; -typedef int16_t i16; -typedef int32_t i32; -typedef int64_t i64; diff --git a/e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/utility.hpp b/e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/utility.hpp deleted file mode 100755 index ae1ad74..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/utility.hpp +++ /dev/null @@ -1,88 +0,0 @@ -#pragma once - -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries -#include -#include - -// Local Includes: Application specific classes, functions, and libraries - -namespace asn -{ - -struct allocator -{ - allocator() = default; - - allocator(void* data, size_t size) { reset(data, size); } - - template - explicit allocator(T (&buf)[SZ]) : allocator(buf, SZ * sizeof(T)) { } - - void reset(void* data, size_t size) - { - std::size_t space = size; - m_begin = static_cast(std::align(alignment, size, data, space)); - m_end = m_begin ? m_begin + space : nullptr; - m_current = m_begin; - m_ref_counter = 0; - } - - uint8_t* alloc_bytes(std::size_t size) - { - std::size_t const esize = (size + alignment - 1) & -alignment; - if (m_current + esize > m_end) { return nullptr; } //throw std::bad_alloc(); - - uint8_t* const rval = m_current; - m_current += esize; - return rval; - } - - size_t add_ref() { return ++m_ref_counter; } - size_t release() - { - if (m_ref_counter) --m_ref_counter; - if (m_ref_counter == 0) reset(); - return m_ref_counter; - } - size_t ref_counter() const { return m_ref_counter; } -private: - //called by last release() when m_ref_counter becomes 0 - void reset() - { - m_current = m_begin; - } - - - enum : std::size_t - { - alignment = alignof(std::size_t) - }; - - uint8_t* m_begin { nullptr }; //set in reset() - uint8_t* m_current { nullptr }; //changed by alloc_bytes - uint8_t* m_end { nullptr }; - - size_t m_ref_counter {0}; -}; - -} //namespace asn - diff --git a/e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/value_traits.hpp b/e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/value_traits.hpp deleted file mode 100755 index 4b67374..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/value_traits.hpp +++ /dev/null @@ -1,187 +0,0 @@ -#ifndef _STDEX_VALUE_TRAITS_HPP_INCLUDED_ -#define _STDEX_VALUE_TRAITS_HPP_INCLUDED_ - -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -******************************************************************************/ - -#include -#include -#include -#include -#include - -#include "type_defs.h" - -namespace stdex { -namespace value { - -namespace mpl = boost::mpl; - -//NOTE! length is in bits -typedef mpl::int_<8> _8; -typedef mpl::int_<16> _16; -typedef mpl::int_<24> _24; -typedef mpl::int_<32> _32; -typedef mpl::int_<40> _40; -typedef mpl::int_<48> _48; -typedef mpl::int_<56> _56; -typedef mpl::int_<64> _64; - -template -struct bits_to_bytes : mpl::int_< (num_bits + 7) / 8 > {}; - -/****************************************************************************** -* Class: value::traits -* Description: select min integer type to fit LEN bits -* Notes: LEN is positive integer type (mpl::int_) = number of bits -******************************************************************************/ -template struct traits; - -template -struct traits - >::type -> -{ - typedef _8 value_length; - typedef u8 value_type; - typedef value_type param_type; -}; - -template -struct traits, mpl::less_equal > - >::type -> -{ - typedef _16 value_length; - typedef u16 value_type; - typedef value_type param_type; -}; - -template -struct traits, mpl::less_equal > - >::type -> -{ - typedef _24 value_length; - typedef u32 value_type; - typedef value_type param_type; -}; - -template -struct traits, mpl::less_equal > - >::type -> -{ - typedef _32 value_length; - typedef u32 value_type; - typedef value_type param_type; -}; - -template -struct traits, mpl::less_equal > - >::type -> -{ - typedef _40 value_length; - typedef u64 value_type; - typedef value_type param_type; -}; - -template -struct traits, mpl::less_equal > - >::type -> -{ - typedef _48 value_length; - typedef u64 value_type; - typedef value_type param_type; -}; - -template -struct traits, mpl::less_equal > - >::type -> -{ - typedef _56 value_length; - typedef u64 value_type; - typedef value_type param_type; -}; - -template -struct traits, mpl::less_equal > - >::type -> -{ - typedef _64 value_length; - typedef u64 value_type; - typedef value_type param_type; -}; - -template -struct traits - >::type -> -{ - typedef LEN value_length; - struct value_type {u8 value[bits_to_bytes::value];}; - typedef value_type const& param_type; -}; - - -//template -//struct traits -// >::type -//> -//{ -// typedef LEN value_length; -// struct value_type {unsigned char value[LEN::value/8];}; -// typedef value_type const& param_type; -// -//}; - -/****************************************************************************** -* Class: value::traits_c -* Description: select min integer type to fit BITS bits -* Notes: N is positive integer value = number of bits -******************************************************************************/ -template -struct traits_c : traits > -{ -}; - -} //end: namespace value - -} //end: namespace stdex - -#ifdef _MSC_VER -#pragma component( mintypeinfo, off ) -#endif - -#endif //_STDEX_VALUE_TRAITS_HPP_INCLUDED_ diff --git a/e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/variant.hpp b/e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/variant.hpp deleted file mode 100755 index be205aa..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/variant.hpp +++ /dev/null @@ -1,146 +0,0 @@ -#pragma once - -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries -#include -#include - - -// Local Includes: Application specific classes, functions, and libraries - - -namespace asn{ - -template -struct variant -{ - typedef variant self_type; - - template - static void check_size () {static_assert(sizeof (T) <= S, "wrong type");} - - variant () - : typeinfo (nullptr) - {} - - template - variant (const T& t) - : typeinfo (&typeid (T)) - { - check_size(); - new (as_()) T (t); - } - - ~variant () - { - assert(!typeinfo); - } - - template - T& build () - { - assert(!typeinfo); - typeinfo = & typeid (T); - return *new (as_()) T; - } - - template - T& build (const T& t) - { - assert(!typeinfo); - check_size(); - typeinfo = & typeid (T); - return *new (as_ ()) T (t); - } - - template - T& as() - { - assert(*typeinfo == typeid (T)); - check_size(); - return *as_ (); - } - - template - const T& as() const - { - assert(*typeinfo == typeid (T)); - check_size(); - return *as_ (); - } - - template - void swap(self_type& other) - { - assert (typeinfo); - assert (*typeinfo == *other.typeinfo); - std::swap (as (), other.as ()); - } - - template - void move(self_type& other) - { - build (); - swap (other); - other.destroy (); - } - - template - void copy(const self_type& other) - { - build (other.as ()); - } - - template - void destroy() - { - as ().~T (); - typeinfo = nullptr; - } - -private: - self_type& operator=(const self_type&){} - variant (const self_type&){} - - template - T* as_() - { - void *p = buffer.raw; - return static_cast (p); - } - - template - const T* as_() const - { - const void *p = buffer.raw; - return static_cast (p); - } - - union - { - long double align_me; - char raw[S]; - } buffer; - - const std::type_info *typeinfo; -}; - -} //namspace asn diff --git a/e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/version.hpp b/e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/version.hpp deleted file mode 100755 index 50854f3..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/ASN1/asn/version.hpp +++ /dev/null @@ -1,27 +0,0 @@ -#pragma once - -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries - -// Local Includes: Application specific classes, functions, and libraries - -#define ASN_API_VERSION_MAJOR 5 -#define ASN_API_VERSION_MINOR 0 diff --git a/e2sim/previous/e2apv1sim/ricsim/src/ASN1/generated/E2AP-Constants.hpp b/e2sim/previous/e2apv1sim/ricsim/src/ASN1/generated/E2AP-Constants.hpp deleted file mode 100644 index 2ed8200..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/ASN1/generated/E2AP-Constants.hpp +++ /dev/null @@ -1,244 +0,0 @@ -/***************************************************************************** -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -#pragma once - -#include "asn/asn.hpp" -static_assert(ASN_API_VERSION_MAJOR == 5, "re-generate the ASN parser's code using 'make regen-asn' (do not use -j option)"); - -#include "X2AP-CommonDataTypes.hpp" - -/* -id-RANfunction-Item ProtocolIE-ID ::= 60001 -*/ - -constexpr int64_t id_RANfunction_Item = 60001; -/* -id-RANfunctionDefinition ProtocolIE-ID ::= 60002 -*/ - -constexpr int64_t id_RANfunctionDefinition = 60002; -/* -id-RANfunctionID ProtocolIE-ID ::= 60003 -*/ - -constexpr int64_t id_RANfunctionID = 60003; -/* -id-RANfunctionID-Item ProtocolIE-ID ::= 60004 -*/ - -constexpr int64_t id_RANfunctionID_Item = 60004; -/* -id-RANfunctionIEcause-Item ProtocolIE-ID ::= 60005 -*/ - -constexpr int64_t id_RANfunctionIEcause_Item = 60005; -/* -id-RANfunctionsAccepted ProtocolIE-ID ::= 60006 -*/ - -constexpr int64_t id_RANfunctionsAccepted = 60006; -/* -id-RANfunctionsAdded ProtocolIE-ID ::= 60007 -*/ - -constexpr int64_t id_RANfunctionsAdded = 60007; -/* -id-RANfunctionsDeleted ProtocolIE-ID ::= 60008 -*/ - -constexpr int64_t id_RANfunctionsDeleted = 60008; -/* -id-RANfunctionsModified ProtocolIE-ID ::= 60009 -*/ - -constexpr int64_t id_RANfunctionsModified = 60009; -/* -id-RANfunctionsRejected ProtocolIE-ID ::= 60010 -*/ - -constexpr int64_t id_RANfunctionsRejected = 60010; -/* -id-RICaction-Admitted-Item ProtocolIE-ID ::= 60013 -*/ - -constexpr int64_t id_RICaction_Admitted_Item = 60013; -/* -id-RICaction-NotAdmitted-Item ProtocolIE-ID ::= 60015 -*/ - -constexpr int64_t id_RICaction_NotAdmitted_Item = 60015; -/* -id-RICaction-ToBeSetup-Item ProtocolIE-ID ::= 60011 -*/ - -constexpr int64_t id_RICaction_ToBeSetup_Item = 60011; -/* -id-RICactionDefinition ProtocolIE-ID ::= 60016 -*/ - -constexpr int64_t id_RICactionDefinition = 60016; -/* -id-RICactionID ProtocolIE-ID ::= 60017 -*/ - -constexpr int64_t id_RICactionID = 60017; -/* -id-RICactionType ProtocolIE-ID ::= 60018 -*/ - -constexpr int64_t id_RICactionType = 60018; -/* -id-RICactions-Admitted ProtocolIE-ID ::= 60012 -*/ - -constexpr int64_t id_RICactions_Admitted = 60012; -/* -id-RICactions-NotAdmitted ProtocolIE-ID ::= 60014 -*/ - -constexpr int64_t id_RICactions_NotAdmitted = 60014; -/* -id-RICcallProcessID ProtocolIE-ID ::= 60019 -*/ - -constexpr int64_t id_RICcallProcessID = 60019; -/* -id-RICcause ProtocolIE-ID ::= 60020 -*/ - -constexpr int64_t id_RICcause = 60020; -/* -id-RICcontrolAckRequest ProtocolIE-ID ::= 60021 -*/ - -constexpr int64_t id_RICcontrolAckRequest = 60021; -/* -id-RICcontrolHeader ProtocolIE-ID ::= 60022 -*/ - -constexpr int64_t id_RICcontrolHeader = 60022; -/* -id-RICcontrolMessage ProtocolIE-ID ::= 60023 -*/ - -constexpr int64_t id_RICcontrolMessage = 60023; -/* -id-RICcontrolStatus ProtocolIE-ID ::= 60024 -*/ - -constexpr int64_t id_RICcontrolStatus = 60024; -/* -id-RICeventTriggerDefinition ProtocolIE-ID ::= 60025 -*/ - -constexpr int64_t id_RICeventTriggerDefinition = 60025; -/* -id-RICindicationHeader ProtocolIE-ID ::= 60026 -*/ - -constexpr int64_t id_RICindicationHeader = 60026; -/* -id-RICindicationMessage ProtocolIE-ID ::= 60027 -*/ - -constexpr int64_t id_RICindicationMessage = 60027; -/* -id-RICindicationSN ProtocolIE-ID ::= 60028 -*/ - -constexpr int64_t id_RICindicationSN = 60028; -/* -id-RICindicationType ProtocolIE-ID ::= 60029 -*/ - -constexpr int64_t id_RICindicationType = 60029; -/* -id-RICrequestID ProtocolIE-ID ::= 60030 -*/ - -constexpr int64_t id_RICrequestID = 60030; -/* -id-RICrequestSequenceNumber ProtocolIE-ID ::= 60032 -*/ - -constexpr int64_t id_RICrequestSequenceNumber = 60032; -/* -id-RICrequestorID ProtocolIE-ID ::= 60031 -*/ - -constexpr int64_t id_RICrequestorID = 60031; -/* -id-RICsubscription ProtocolIE-ID ::= 60033 -*/ - -constexpr int64_t id_RICsubscription = 60033; -/* -id-RICsubsequentAction ProtocolIE-ID ::= 60034 -*/ - -constexpr int64_t id_RICsubsequentAction = 60034; -/* -id-RICsubsequentActionType ProtocolIE-ID ::= 60035 -*/ - -constexpr int64_t id_RICsubsequentActionType = 60035; -/* -id-RICtimeToWait ProtocolIE-ID ::= 60036 -*/ - -constexpr int64_t id_RICtimeToWait = 60036; -/* -id-ricControl ProcedureCode ::= 204 -*/ - -constexpr int64_t id_ricControl = 204; -/* -id-ricIndication ProcedureCode ::= 205 -*/ - -constexpr int64_t id_ricIndication = 205; -/* -id-ricServiceQuery ProcedureCode ::= 206 -*/ - -constexpr int64_t id_ricServiceQuery = 206; -/* -id-ricServiceUpdate ProcedureCode ::= 203 -*/ - -constexpr int64_t id_ricServiceUpdate = 203; -/* -id-ricSubscription ProcedureCode ::= 201 -*/ - -constexpr int64_t id_ricSubscription = 201; -/* -id-ricSubscriptionDelete ProcedureCode ::= 202 -*/ - -constexpr int64_t id_ricSubscriptionDelete = 202; -/* -maxofRANfunctionID INTEGER ::=256 -*/ - -constexpr int64_t maxofRANfunctionID = 256; -/* -maxofRICactionID INTEGER ::= 16 -*/ - -constexpr int64_t maxofRICactionID = 16; diff --git a/e2sim/previous/e2apv1sim/ricsim/src/ASN1/generated/E2AP-IEs.hpp b/e2sim/previous/e2apv1sim/ricsim/src/ASN1/generated/E2AP-IEs.hpp deleted file mode 100644 index 40f7bbb..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/ASN1/generated/E2AP-IEs.hpp +++ /dev/null @@ -1,568 +0,0 @@ -/***************************************************************************** -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -#pragma once - -#include "asn/asn.hpp" -static_assert(ASN_API_VERSION_MAJOR == 5, "re-generate the ASN parser's code using 'make regen-asn' (do not use -j option)"); - -#include "X2AP-IEs.hpp" - -/* -CauseRIC ::= ENUMERATED { - function-id-Invalid, - action-not-supported, - excessive-actions, - duplicate-action, - duplicate-event, - function-resource-limit, - request-id-unknown, - inconsistent-action-subsequent-action-sequence, - control-message-invalid, - call-process-id-invalid, - function-not-required, - excessive-functions, - ric-resource-limit, - ... -} -*/ - -struct CauseRIC : asn::enumerated<13, 0, true> -{ - static constexpr const char* name() {return "CauseRIC";} - using parent_t = asn::enumerated<13, 0, true>; - typedef enum { - function_id_Invalid - ,action_not_supported - ,excessive_actions - ,duplicate_action - ,duplicate_event - ,function_resource_limit - ,request_id_unknown - ,inconsistent_action_subsequent_action_sequence - ,control_message_invalid - ,call_process_id_invalid - ,function_not_required - ,excessive_functions - ,ric_resource_limit - } index_t; - -}; - -/* -RANfunctionDefinition ::= OCTET STRING -*/ - -struct RANfunctionDefinition : asn::ostring<> -{ - static constexpr const char* name() {return "RANfunctionDefinition";} - using parent_t = asn::ostring<>; - -}; - -/* -RANfunctionID ::= INTEGER (0..4095) -*/ - -struct RANfunctionID : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "RANfunctionID";} - using parent_t = asn::integer<>; - -}; - -/* -RICactionDefinition ::= OCTET STRING -*/ - -struct RICactionDefinition : asn::ostring<> -{ - static constexpr const char* name() {return "RICactionDefinition";} - using parent_t = asn::ostring<>; - -}; - -/* -RICactionID ::= INTEGER (0..255) -*/ - -struct RICactionID : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "RICactionID";} - using parent_t = asn::integer<>; - -}; - -/* -RICactionType ::= ENUMERATED{ - report, - insert, - policy, - ... -} -*/ - -struct RICactionType : asn::enumerated<3, 0, true> -{ - static constexpr const char* name() {return "RICactionType";} - using parent_t = asn::enumerated<3, 0, true>; - typedef enum { - report - ,insert - ,policy - } index_t; - -}; - -/* -RICcallProcessID ::= OCTET STRING -*/ - -struct RICcallProcessID : asn::ostring<> -{ - static constexpr const char* name() {return "RICcallProcessID";} - using parent_t = asn::ostring<>; - -}; - -/* -RICcause ::= CHOICE { - radioNetwork CauseRadioNetwork, - transport CauseTransport, - protocol CauseProtocol, - misc CauseMisc, - ric CauseRIC, - ... -} -*/ - -struct RICcause : asn::choice<5, 0, true> -{ - static constexpr const char* name() {return "RICcause";} - using parent_t = asn::choice<5, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 6;} - void set_unknown() { set_index(6); } - ~RICcause() {clear();} - struct radioNetwork_t : CauseRadioNetwork - { - static constexpr const char* name() {return "radioNetwork_t";} - using parent_t = CauseRadioNetwork; - - }; - struct transport_t : CauseTransport - { - static constexpr const char* name() {return "transport_t";} - using parent_t = CauseTransport; - - }; - struct protocol_t : CauseProtocol - { - static constexpr const char* name() {return "protocol_t";} - using parent_t = CauseProtocol; - - }; - struct misc_t : CauseMisc - { - static constexpr const char* name() {return "misc_t";} - using parent_t = CauseMisc; - - }; - struct ric_t : CauseRIC - { - static constexpr const char* name() {return "ric_t";} - using parent_t = CauseRIC; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - case 3: set_index(3); return v(var.build()); - case 4: set_index(4); return v(var.build()); - case 5: set_index(5); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - case 3: return v(var.as()); - case 4: return v(var.as()); - case 5: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - - } - radioNetwork_t& select_radioNetwork() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - radioNetwork_t const* get_radioNetwork() const { if(get_index() == 1) { return &var.as();} return nullptr; } - transport_t& select_transport() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - transport_t const* get_transport() const { if(get_index() == 2) { return &var.as();} return nullptr; } - protocol_t& select_protocol() { if(get_index() != 3) { clear(); set_index(3); return var.build();} return var.as();} - protocol_t const* get_protocol() const { if(get_index() == 3) { return &var.as();} return nullptr; } - misc_t& select_misc() { if(get_index() != 4) { clear(); set_index(4); return var.build();} return var.as();} - misc_t const* get_misc() const { if(get_index() == 4) { return &var.as();} return nullptr; } - ric_t& select_ric() { if(get_index() != 5) { clear(); set_index(5); return var.build();} return var.as();} - ric_t const* get_ric() const { if(get_index() == 5) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(radioNetwork_t)]; - char dummy2[sizeof(transport_t)]; - char dummy3[sizeof(protocol_t)]; - char dummy4[sizeof(misc_t)]; - char dummy5[sizeof(ric_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -RICcontrolAckRequest ::= ENUMERATED{ - noAck, - ack, - nAck, - ... -} -*/ - -struct RICcontrolAckRequest : asn::enumerated<3, 0, true> -{ - static constexpr const char* name() {return "RICcontrolAckRequest";} - using parent_t = asn::enumerated<3, 0, true>; - typedef enum { - noAck - ,ack - ,nAck - } index_t; - -}; - -/* -RICcontrolHeader ::= OCTET STRING -*/ - -struct RICcontrolHeader : asn::ostring<> -{ - static constexpr const char* name() {return "RICcontrolHeader";} - using parent_t = asn::ostring<>; - -}; - -/* -RICcontrolMessage ::= OCTET STRING -*/ - -struct RICcontrolMessage : asn::ostring<> -{ - static constexpr const char* name() {return "RICcontrolMessage";} - using parent_t = asn::ostring<>; - -}; - -/* -RICcontrolStatus ::= ENUMERATED{ - success, - rejected, - failed, - ... -} -*/ - -struct RICcontrolStatus : asn::enumerated<3, 0, true> -{ - static constexpr const char* name() {return "RICcontrolStatus";} - using parent_t = asn::enumerated<3, 0, true>; - typedef enum { - success - ,rejected - ,failed - } index_t; - -}; - -/* -RICeventTriggerDefinition ::= OCTET STRING -*/ - -struct RICeventTriggerDefinition : asn::ostring<> -{ - static constexpr const char* name() {return "RICeventTriggerDefinition";} - using parent_t = asn::ostring<>; - -}; - -/* -RICindicationHeader ::= OCTET STRING -*/ - -struct RICindicationHeader : asn::ostring<> -{ - static constexpr const char* name() {return "RICindicationHeader";} - using parent_t = asn::ostring<>; - -}; - -/* -RICindicationMessage ::= OCTET STRING -*/ - -struct RICindicationMessage : asn::ostring<> -{ - static constexpr const char* name() {return "RICindicationMessage";} - using parent_t = asn::ostring<>; - -}; - -/* -RICindicationSN ::= INTEGER (0..65535) -*/ - -struct RICindicationSN : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "RICindicationSN";} - using parent_t = asn::integer<>; - -}; - -/* -RICindicationType ::= ENUMERATED{ - report, - insert, - ... -} -*/ - -struct RICindicationType : asn::enumerated<2, 0, true> -{ - static constexpr const char* name() {return "RICindicationType";} - using parent_t = asn::enumerated<2, 0, true>; - typedef enum { - report - ,insert - } index_t; - -}; - -/* -RICrequestID ::= SEQUENCE { - ricRequestorID INTEGER (0..65535), - ricRequestSequenceNumber INTEGER (0..65535), - ... -} -*/ - -struct RICrequestID : asn::sequence<2, 0, true, 0> -{ - static constexpr const char* name() {return "RICrequestID";} - using parent_t = asn::sequence<2, 0, true, 0>; - struct ricRequestorID_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "ricRequestorID_t";} - using parent_t = asn::integer<>; - - }; - - ricRequestorID_t& ref_ricRequestorID() {return ricRequestorID;} - ricRequestorID_t const& ref_ricRequestorID() const {return ricRequestorID;} - struct ricRequestSequenceNumber_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "ricRequestSequenceNumber_t";} - using parent_t = asn::integer<>; - - }; - - ricRequestSequenceNumber_t& ref_ricRequestSequenceNumber() {return ricRequestSequenceNumber;} - ricRequestSequenceNumber_t const& ref_ricRequestSequenceNumber() const {return ricRequestSequenceNumber;} - template void decode(V& v) - { - v(ricRequestorID); - v(ricRequestSequenceNumber); - - }; - template void encode(V& v) const - { - v(ricRequestorID); - v(ricRequestSequenceNumber); - - }; - void clear() - { - ricRequestorID.clear(); - ricRequestSequenceNumber.clear(); - - }; - private: - ricRequestorID_t ricRequestorID; - ricRequestSequenceNumber_t ricRequestSequenceNumber; - -}; -/* -RICsubsequentActionType ::= ENUMERATED{ - continue, - wait, - ... -} -*/ - -struct RICsubsequentActionType : asn::enumerated<2, 0, true> -{ - static constexpr const char* name() {return "RICsubsequentActionType";} - using parent_t = asn::enumerated<2, 0, true>; - typedef enum { - Continue - ,wait - } index_t; - -}; - -/* -RICtimeToWait ::= ENUMERATED{ - zero, - w1ms, - w2ms, - w5ms, - w10ms, - w20ms, - w30ms, - w40ms, - w50ms, - w100ms, - w200ms, - w500ms, - w1s, - w2s, - w5s, - w10s, - w20s, - w60s, - ... -} -*/ - -struct RICtimeToWait : asn::enumerated<18, 0, true> -{ - static constexpr const char* name() {return "RICtimeToWait";} - using parent_t = asn::enumerated<18, 0, true>; - typedef enum { - zero - ,w1ms - ,w2ms - ,w5ms - ,w10ms - ,w20ms - ,w30ms - ,w40ms - ,w50ms - ,w100ms - ,w200ms - ,w500ms - ,w1s - ,w2s - ,w5s - ,w10s - ,w20s - ,w60s - } index_t; - -}; - -/* -RICsubsequentAction ::=SEQUENCE{ - ricSubsequentActionType RICsubsequentActionType, - ricTimeToWait RICtimeToWait, - ... -} -*/ - -struct RICsubsequentAction : asn::sequence<2, 0, true, 0> -{ - static constexpr const char* name() {return "RICsubsequentAction";} - using parent_t = asn::sequence<2, 0, true, 0>; - struct ricSubsequentActionType_t : RICsubsequentActionType - { - static constexpr const char* name() {return "ricSubsequentActionType_t";} - using parent_t = RICsubsequentActionType; - - }; - ricSubsequentActionType_t& ref_ricSubsequentActionType() {return ricSubsequentActionType;} - ricSubsequentActionType_t const& ref_ricSubsequentActionType() const {return ricSubsequentActionType;} - struct ricTimeToWait_t : RICtimeToWait - { - static constexpr const char* name() {return "ricTimeToWait_t";} - using parent_t = RICtimeToWait; - - }; - ricTimeToWait_t& ref_ricTimeToWait() {return ricTimeToWait;} - ricTimeToWait_t const& ref_ricTimeToWait() const {return ricTimeToWait;} - template void decode(V& v) - { - v(ricSubsequentActionType); - v(ricTimeToWait); - - }; - template void encode(V& v) const - { - v(ricSubsequentActionType); - v(ricTimeToWait); - - }; - void clear() - { - ricSubsequentActionType.clear(); - ricTimeToWait.clear(); - - }; - private: - ricSubsequentActionType_t ricSubsequentActionType; - ricTimeToWait_t ricTimeToWait; - -}; diff --git a/e2sim/previous/e2apv1sim/ricsim/src/ASN1/generated/E2AP-PDU-Contents.hpp b/e2sim/previous/e2apv1sim/ricsim/src/ASN1/generated/E2AP-PDU-Contents.hpp deleted file mode 100644 index e2073d1..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/ASN1/generated/E2AP-PDU-Contents.hpp +++ /dev/null @@ -1,5512 +0,0 @@ -/***************************************************************************** -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -#pragma once - -#include "asn/asn.hpp" -static_assert(ASN_API_VERSION_MAJOR == 5, "re-generate the ASN parser's code using 'make regen-asn' (do not use -j option)"); - -#include "E2AP-IEs.hpp" -#include "X2AP-IEs.hpp" -#include "X2AP-Constants.hpp" -#include "X2AP-Containers.hpp" -#include "E2AP-Constants.hpp" - -/* -RANfunction-Item ::= SEQUENCE { - ranFunctionID RANfunctionID, - ranFunctionDefinition RANfunctionDefinition, - ... -} -*/ - -struct RANfunction_Item : asn::sequence<2, 0, true, 0> -{ - static constexpr const char* name() {return "RANfunction-Item";} - using parent_t = asn::sequence<2, 0, true, 0>; - struct ranFunctionID_t : RANfunctionID - { - static constexpr const char* name() {return "ranFunctionID_t";} - using parent_t = RANfunctionID; - - }; - ranFunctionID_t& ref_ranFunctionID() {return ranFunctionID;} - ranFunctionID_t const& ref_ranFunctionID() const {return ranFunctionID;} - struct ranFunctionDefinition_t : RANfunctionDefinition - { - static constexpr const char* name() {return "ranFunctionDefinition_t";} - using parent_t = RANfunctionDefinition; - - }; - ranFunctionDefinition_t& ref_ranFunctionDefinition() {return ranFunctionDefinition;} - ranFunctionDefinition_t const& ref_ranFunctionDefinition() const {return ranFunctionDefinition;} - template void decode(V& v) - { - v(ranFunctionID); - v(ranFunctionDefinition); - - }; - template void encode(V& v) const - { - v(ranFunctionID); - v(ranFunctionDefinition); - - }; - void clear() - { - ranFunctionID.clear(); - ranFunctionDefinition.clear(); - - }; - private: - ranFunctionID_t ranFunctionID; - ranFunctionDefinition_t ranFunctionDefinition; - -}; -/* -RANfunction-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-RANfunction-Item CRITICALITY ignore TYPE RANfunction-Item PRESENCE mandatory }, - ... -} -*/ - -struct RANfunction_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RANfunction_Item() { set(id_RANfunction_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_RANfunction_Item)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_RANfunction_Item);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RANfunction_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - RANfunction_Item& select_id_RANfunction_Item() { return set(1); } - RANfunction_Item const* get_id_RANfunction_Item() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_RANfunction_Item()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(RANfunction_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RANfunction_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RANfunctionID-Item ::= SEQUENCE { - ranFunctionID RANfunctionID, - ... -} -*/ - -struct RANfunctionID_Item : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "RANfunctionID-Item";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct ranFunctionID_t : RANfunctionID - { - static constexpr const char* name() {return "ranFunctionID_t";} - using parent_t = RANfunctionID; - - }; - ranFunctionID_t& ref_ranFunctionID() {return ranFunctionID;} - ranFunctionID_t const& ref_ranFunctionID() const {return ranFunctionID;} - template void decode(V& v) - { - v(ranFunctionID); - - }; - template void encode(V& v) const - { - v(ranFunctionID); - - }; - void clear() - { - ranFunctionID.clear(); - - }; - private: - ranFunctionID_t ranFunctionID; - -}; -/* -RANfunctionID-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-RANfunctionID-Item CRITICALITY ignore TYPE RANfunctionID-Item PRESENCE mandatory }, - ... -} -*/ - -struct RANfunctionID_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RANfunctionID_Item() { set(id_RANfunctionID_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_RANfunctionID_Item)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_RANfunctionID_Item);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RANfunctionID_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - RANfunctionID_Item& select_id_RANfunctionID_Item() { return set(1); } - RANfunctionID_Item const* get_id_RANfunctionID_Item() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_RANfunctionID_Item()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(RANfunctionID_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RANfunctionID_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RANfunctionIDcause-Item ::= SEQUENCE { - ranFunctionID RANfunctionID, - ricCause RICcause, - ... -} -*/ - -struct RANfunctionIDcause_Item : asn::sequence<2, 0, true, 0> -{ - static constexpr const char* name() {return "RANfunctionIDcause-Item";} - using parent_t = asn::sequence<2, 0, true, 0>; - struct ranFunctionID_t : RANfunctionID - { - static constexpr const char* name() {return "ranFunctionID_t";} - using parent_t = RANfunctionID; - - }; - ranFunctionID_t& ref_ranFunctionID() {return ranFunctionID;} - ranFunctionID_t const& ref_ranFunctionID() const {return ranFunctionID;} - struct ricCause_t : RICcause - { - static constexpr const char* name() {return "ricCause_t";} - using parent_t = RICcause; - - }; - ricCause_t& ref_ricCause() {return ricCause;} - ricCause_t const& ref_ricCause() const {return ricCause;} - template void decode(V& v) - { - v(ranFunctionID); - v(ricCause); - - }; - template void encode(V& v) const - { - v(ranFunctionID); - v(ricCause); - - }; - void clear() - { - ranFunctionID.clear(); - ricCause.clear(); - - }; - private: - ranFunctionID_t ranFunctionID; - ricCause_t ricCause; - -}; -/* -RANfunctionIDcause-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-RANfunctionIEcause-Item CRITICALITY ignore TYPE RANfunctionIDcause-Item PRESENCE mandatory }, - ... -} -*/ - -struct RANfunctionIDcause_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RANfunctionIEcause_Item() { set(id_RANfunctionIEcause_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_RANfunctionIEcause_Item)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_RANfunctionIEcause_Item);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RANfunctionIEcause_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - RANfunctionIDcause_Item& select_id_RANfunctionIEcause_Item() { return set(1); } - RANfunctionIDcause_Item const* get_id_RANfunctionIEcause_Item() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_RANfunctionIEcause_Item()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(RANfunctionIDcause_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RANfunctionIEcause_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RANfunctions-List ::= SEQUENCE (SIZE(0..maxofRANfunctionID)) OF ProtocolIE-Single-Container { {RANfunction-ItemIEs} } -*/ - -struct RANfunctions_List_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "RANfunctions_List_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct RANfunctions_List : asn::sequenceof -{ - static constexpr const char* name() {return "RANfunctions-List";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -RANfunctionsID-List ::= SEQUENCE (SIZE(0..maxofRANfunctionID)) OF ProtocolIE-Single-Container{{RANfunctionID-ItemIEs}} -*/ - -struct RANfunctionsID_List_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "RANfunctionsID_List_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct RANfunctionsID_List : asn::sequenceof -{ - static constexpr const char* name() {return "RANfunctionsID-List";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -RANfunctionsIDcause-List ::= SEQUENCE (SIZE(0..maxofRANfunctionID)) OF ProtocolIE-Single-Container { {RANfunctionIDcause-ItemIEs} } -*/ - -struct RANfunctionsIDcause_List_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "RANfunctionsIDcause_List_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct RANfunctionsIDcause_List : asn::sequenceof -{ - static constexpr const char* name() {return "RANfunctionsIDcause-List";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -RICaction-Admitted-Item ::= SEQUENCE { - ricActionID RICactionID, - ... -} -*/ - -struct RICaction_Admitted_Item : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "RICaction-Admitted-Item";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct ricActionID_t : RICactionID - { - static constexpr const char* name() {return "ricActionID_t";} - using parent_t = RICactionID; - - }; - ricActionID_t& ref_ricActionID() {return ricActionID;} - ricActionID_t const& ref_ricActionID() const {return ricActionID;} - template void decode(V& v) - { - v(ricActionID); - - }; - template void encode(V& v) const - { - v(ricActionID); - - }; - void clear() - { - ricActionID.clear(); - - }; - private: - ricActionID_t ricActionID; - -}; -/* -RICaction-Admitted-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-RICaction-Admitted-Item CRITICALITY ignore TYPE RICaction-Admitted-Item PRESENCE mandatory }, - ... -} -*/ - -struct RICaction_Admitted_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RICaction_Admitted_Item() { set(id_RICaction_Admitted_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_RICaction_Admitted_Item)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_RICaction_Admitted_Item);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RICaction_Admitted_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - RICaction_Admitted_Item& select_id_RICaction_Admitted_Item() { return set(1); } - RICaction_Admitted_Item const* get_id_RICaction_Admitted_Item() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_RICaction_Admitted_Item()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(RICaction_Admitted_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RICaction_Admitted_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RICaction-Admitted-List ::= SEQUENCE (SIZE(1..maxofRICactionID)) OF ProtocolIE-Single-Container{{RICaction-Admitted-ItemIEs}} -*/ - -struct RICaction_Admitted_List_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "RICaction_Admitted_List_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct RICaction_Admitted_List : asn::sequenceof -{ - static constexpr const char* name() {return "RICaction-Admitted-List";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -RICaction-NotAdmitted-Item ::= SEQUENCE { - ricActionID RICactionID, - ricCause RICcause, - ... -} -*/ - -struct RICaction_NotAdmitted_Item : asn::sequence<2, 0, true, 0> -{ - static constexpr const char* name() {return "RICaction-NotAdmitted-Item";} - using parent_t = asn::sequence<2, 0, true, 0>; - struct ricActionID_t : RICactionID - { - static constexpr const char* name() {return "ricActionID_t";} - using parent_t = RICactionID; - - }; - ricActionID_t& ref_ricActionID() {return ricActionID;} - ricActionID_t const& ref_ricActionID() const {return ricActionID;} - struct ricCause_t : RICcause - { - static constexpr const char* name() {return "ricCause_t";} - using parent_t = RICcause; - - }; - ricCause_t& ref_ricCause() {return ricCause;} - ricCause_t const& ref_ricCause() const {return ricCause;} - template void decode(V& v) - { - v(ricActionID); - v(ricCause); - - }; - template void encode(V& v) const - { - v(ricActionID); - v(ricCause); - - }; - void clear() - { - ricActionID.clear(); - ricCause.clear(); - - }; - private: - ricActionID_t ricActionID; - ricCause_t ricCause; - -}; -/* -RICaction-NotAdmitted-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-RICaction-NotAdmitted-Item CRITICALITY ignore TYPE RICaction-NotAdmitted-Item PRESENCE mandatory }, - ... -} -*/ - -struct RICaction_NotAdmitted_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RICaction_NotAdmitted_Item() { set(id_RICaction_NotAdmitted_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_RICaction_NotAdmitted_Item)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_RICaction_NotAdmitted_Item);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RICaction_NotAdmitted_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - RICaction_NotAdmitted_Item& select_id_RICaction_NotAdmitted_Item() { return set(1); } - RICaction_NotAdmitted_Item const* get_id_RICaction_NotAdmitted_Item() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_RICaction_NotAdmitted_Item()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(RICaction_NotAdmitted_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RICaction_NotAdmitted_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RICaction-NotAdmitted-List ::= SEQUENCE (SIZE(0..maxofRICactionID)) OF ProtocolIE-Single-Container { {RICaction-NotAdmitted-ItemIEs} } -*/ - -struct RICaction_NotAdmitted_List_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "RICaction_NotAdmitted_List_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct RICaction_NotAdmitted_List : asn::sequenceof -{ - static constexpr const char* name() {return "RICaction-NotAdmitted-List";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -RICaction-ToBeSetup-Item ::= SEQUENCE { - ricActionID RICactionID, - ricActionType RICactionType, - ricActionDefinition RICactionDefinition OPTIONAL, - ricSubsequentAction RICsubsequentAction OPTIONAL, - ... -} -*/ - -struct RICaction_ToBeSetup_Item : asn::sequence<4, 0, true, 2> -{ - static constexpr const char* name() {return "RICaction-ToBeSetup-Item";} - using parent_t = asn::sequence<4, 0, true, 2>; - struct ricActionID_t : RICactionID - { - static constexpr const char* name() {return "ricActionID_t";} - using parent_t = RICactionID; - - }; - ricActionID_t& ref_ricActionID() {return ricActionID;} - ricActionID_t const& ref_ricActionID() const {return ricActionID;} - struct ricActionType_t : RICactionType - { - static constexpr const char* name() {return "ricActionType_t";} - using parent_t = RICactionType; - - }; - ricActionType_t& ref_ricActionType() {return ricActionType;} - ricActionType_t const& ref_ricActionType() const {return ricActionType;} - struct ricActionDefinition_t : RICactionDefinition - { - static constexpr const char* name() {return "ricActionDefinition_t";} - using parent_t = RICactionDefinition; - static constexpr bool optional = true; - - }; - ricActionDefinition_t& set_ricActionDefinition() { ricActionDefinition.setpresent(true); return ricActionDefinition;} - ricActionDefinition_t const* get_ricActionDefinition() const {return ricActionDefinition.is_valid() ? &ricActionDefinition : nullptr;} - struct ricSubsequentAction_t : RICsubsequentAction - { - static constexpr const char* name() {return "ricSubsequentAction_t";} - using parent_t = RICsubsequentAction; - static constexpr bool optional = true; - - }; - ricSubsequentAction_t& set_ricSubsequentAction() { ricSubsequentAction.setpresent(true); return ricSubsequentAction;} - ricSubsequentAction_t const* get_ricSubsequentAction() const {return ricSubsequentAction.is_valid() ? &ricSubsequentAction : nullptr;} - template void decode(V& v) - { - v(ricActionID); - v(ricActionType); - v(ricActionDefinition); - v(ricSubsequentAction); - - }; - template void encode(V& v) const - { - v(ricActionID); - v(ricActionType); - v(ricActionDefinition); - v(ricSubsequentAction); - - }; - void clear() - { - ricActionID.clear(); - ricActionType.clear(); - ricActionDefinition.clear(); - ricSubsequentAction.clear(); - - }; - private: - ricActionID_t ricActionID; - ricActionType_t ricActionType; - ricActionDefinition_t ricActionDefinition; - ricSubsequentAction_t ricSubsequentAction; - -}; -/* -RICaction-ToBeSetup-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-RICaction-ToBeSetup-Item CRITICALITY ignore TYPE RICaction-ToBeSetup-Item PRESENCE mandatory }, - ... -} -*/ - -struct RICaction_ToBeSetup_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RICaction_ToBeSetup_Item() { set(id_RICaction_ToBeSetup_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_RICaction_ToBeSetup_Item)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_RICaction_ToBeSetup_Item);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RICaction_ToBeSetup_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - RICaction_ToBeSetup_Item& select_id_RICaction_ToBeSetup_Item() { return set(1); } - RICaction_ToBeSetup_Item const* get_id_RICaction_ToBeSetup_Item() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_RICaction_ToBeSetup_Item()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(RICaction_ToBeSetup_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RICaction_ToBeSetup_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RICactions-ToBeSetup-List ::= SEQUENCE (SIZE(1..maxofRICactionID)) OF ProtocolIE-Single-Container { {RICaction-ToBeSetup-ItemIEs} } -*/ - -struct RICactions_ToBeSetup_List_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "RICactions_ToBeSetup_List_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct RICactions_ToBeSetup_List : asn::sequenceof -{ - static constexpr const char* name() {return "RICactions-ToBeSetup-List";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -RICcontrolAcknowledge-IEs X2AP-PROTOCOL-IES ::= { - { ID id-RICrequestID CRITICALITY reject TYPE RICrequestID PRESENCE mandatory}| - { ID id-RANfunctionID CRITICALITY reject TYPE RANfunctionID PRESENCE mandatory}| - { ID id-RICcallProcessID CRITICALITY reject TYPE RICcallProcessID PRESENCE optional}| - { ID id-RICcontrolStatus CRITICALITY reject TYPE RICcontrolStatus PRESENCE mandatory}, - ... -} -*/ - -struct RICcontrolAcknowledge_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_RICrequestID() { set(id_RICrequestID); type=1;} - void select_id_RANfunctionID() { set(id_RANfunctionID); type=2;} - void select_id_RICcallProcessID() { set(id_RICcallProcessID); type=3;} - void select_id_RICcontrolStatus() { set(id_RICcontrolStatus); type=4;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_RICrequestID)) { type = 1; return true; } - else if(equal(id_RANfunctionID)) { type = 2; return true; } - else if(equal(id_RICcallProcessID)) { type = 3; return true; } - else if(equal(id_RICcontrolStatus)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_RICrequestID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_RANfunctionID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_RICcallProcessID);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_RICcontrolStatus);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_RICrequestID() { set(reject); type=1;} - void select_id_RANfunctionID() { set(reject); type=2;} - void select_id_RICcallProcessID() { set(reject); type=3;} - void select_id_RICcontrolStatus() { set(reject); type=4;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(reject)) { type = 3; return true; } - else if(equal(reject)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(reject);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(reject);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - RICrequestID& select_id_RICrequestID() { return set(1); } - RICrequestID const* get_id_RICrequestID() const { return get(1); } - RANfunctionID& select_id_RANfunctionID() { return set(2); } - RANfunctionID const* get_id_RANfunctionID() const { return get(2); } - RICcallProcessID& select_id_RICcallProcessID() { return set(3); } - RICcallProcessID const* get_id_RICcallProcessID() const { return get(3); } - RICcontrolStatus& select_id_RICcontrolStatus() { return set(4); } - RICcontrolStatus const* get_id_RICcontrolStatus() const { return get(4); } - bool is_unknown() const { return type == 5; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_RICrequestID()); return true; - case 2: v(select_id_RANfunctionID()); return true; - case 3: v(select_id_RICcallProcessID()); return true; - case 4: v(select_id_RICcontrolStatus()); return true; - case 5: if(type != 5) {clear(); asn::base::set();} type = 5; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(RANfunctionID)]; - char dummy2[sizeof(RICcallProcessID)]; - char dummy3[sizeof(RICcontrolStatus)]; - char dummy4[sizeof(RICrequestID)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_RICrequestID() { set(mandatory); type=1;} - void select_id_RANfunctionID() { set(mandatory); type=2;} - void select_id_RICcallProcessID() { set(optional); type=3;} - void select_id_RICcontrolStatus() { set(mandatory); type=4;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else if(equal(mandatory)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(mandatory);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RICcontrolAcknowledge ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{RICcontrolAcknowledge-IEs}}, - ... -} -*/ - -struct RICcontrolAcknowledge : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "RICcontrolAcknowledge";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -RICcontrolFailure-IEs X2AP-PROTOCOL-IES ::= { - { ID id-RICrequestID CRITICALITY reject TYPE RICrequestID PRESENCE mandatory}| - { ID id-RANfunctionID CRITICALITY reject TYPE RANfunctionID PRESENCE mandatory}| - { ID id-RICcallProcessID CRITICALITY reject TYPE RICcallProcessID PRESENCE optional}| - { ID id-RICcause CRITICALITY reject TYPE RICcause PRESENCE mandatory}, - ... -} -*/ - -struct RICcontrolFailure_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_RICrequestID() { set(id_RICrequestID); type=1;} - void select_id_RANfunctionID() { set(id_RANfunctionID); type=2;} - void select_id_RICcallProcessID() { set(id_RICcallProcessID); type=3;} - void select_id_RICcause() { set(id_RICcause); type=4;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_RICrequestID)) { type = 1; return true; } - else if(equal(id_RANfunctionID)) { type = 2; return true; } - else if(equal(id_RICcallProcessID)) { type = 3; return true; } - else if(equal(id_RICcause)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_RICrequestID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_RANfunctionID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_RICcallProcessID);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_RICcause);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_RICrequestID() { set(reject); type=1;} - void select_id_RANfunctionID() { set(reject); type=2;} - void select_id_RICcallProcessID() { set(reject); type=3;} - void select_id_RICcause() { set(reject); type=4;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(reject)) { type = 3; return true; } - else if(equal(reject)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(reject);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(reject);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - RICrequestID& select_id_RICrequestID() { return set(1); } - RICrequestID const* get_id_RICrequestID() const { return get(1); } - RANfunctionID& select_id_RANfunctionID() { return set(2); } - RANfunctionID const* get_id_RANfunctionID() const { return get(2); } - RICcallProcessID& select_id_RICcallProcessID() { return set(3); } - RICcallProcessID const* get_id_RICcallProcessID() const { return get(3); } - RICcause& select_id_RICcause() { return set(4); } - RICcause const* get_id_RICcause() const { return get(4); } - bool is_unknown() const { return type == 5; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_RICrequestID()); return true; - case 2: v(select_id_RANfunctionID()); return true; - case 3: v(select_id_RICcallProcessID()); return true; - case 4: v(select_id_RICcause()); return true; - case 5: if(type != 5) {clear(); asn::base::set();} type = 5; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(RANfunctionID)]; - char dummy2[sizeof(RICcallProcessID)]; - char dummy3[sizeof(RICcause)]; - char dummy4[sizeof(RICrequestID)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_RICrequestID() { set(mandatory); type=1;} - void select_id_RANfunctionID() { set(mandatory); type=2;} - void select_id_RICcallProcessID() { set(optional); type=3;} - void select_id_RICcause() { set(mandatory); type=4;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else if(equal(mandatory)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(mandatory);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RICcontrolFailure ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{RICcontrolFailure-IEs}}, - ... -} -*/ - -struct RICcontrolFailure : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "RICcontrolFailure";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -RICcontrolRequest-IEs X2AP-PROTOCOL-IES ::= { - { ID id-RICrequestID CRITICALITY reject TYPE RICrequestID PRESENCE mandatory}| - { ID id-RANfunctionID CRITICALITY reject TYPE RANfunctionID PRESENCE mandatory}| - { ID id-RICcallProcessID CRITICALITY reject TYPE RICcallProcessID PRESENCE optional}| - { ID id-RICcontrolHeader CRITICALITY reject TYPE RICcontrolHeader PRESENCE mandatory}| - { ID id-RICcontrolMessage CRITICALITY reject TYPE RICcontrolMessage PRESENCE mandatory}| - { ID id-RICcontrolAckRequest CRITICALITY reject TYPE RICcontrolAckRequest PRESENCE optional}, - ... -} -*/ - -struct RICcontrolRequest_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_RICrequestID() { set(id_RICrequestID); type=1;} - void select_id_RANfunctionID() { set(id_RANfunctionID); type=2;} - void select_id_RICcallProcessID() { set(id_RICcallProcessID); type=3;} - void select_id_RICcontrolHeader() { set(id_RICcontrolHeader); type=4;} - void select_id_RICcontrolMessage() { set(id_RICcontrolMessage); type=5;} - void select_id_RICcontrolAckRequest() { set(id_RICcontrolAckRequest); type=6;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_RICrequestID)) { type = 1; return true; } - else if(equal(id_RANfunctionID)) { type = 2; return true; } - else if(equal(id_RICcallProcessID)) { type = 3; return true; } - else if(equal(id_RICcontrolHeader)) { type = 4; return true; } - else if(equal(id_RICcontrolMessage)) { type = 5; return true; } - else if(equal(id_RICcontrolAckRequest)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_RICrequestID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_RANfunctionID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_RICcallProcessID);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_RICcontrolHeader);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_RICcontrolMessage);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_RICcontrolAckRequest);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_RICrequestID() { set(reject); type=1;} - void select_id_RANfunctionID() { set(reject); type=2;} - void select_id_RICcallProcessID() { set(reject); type=3;} - void select_id_RICcontrolHeader() { set(reject); type=4;} - void select_id_RICcontrolMessage() { set(reject); type=5;} - void select_id_RICcontrolAckRequest() { set(reject); type=6;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(reject)) { type = 3; return true; } - else if(equal(reject)) { type = 4; return true; } - else if(equal(reject)) { type = 5; return true; } - else if(equal(reject)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(reject);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(reject);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(reject);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(reject);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - RICrequestID& select_id_RICrequestID() { return set(1); } - RICrequestID const* get_id_RICrequestID() const { return get(1); } - RANfunctionID& select_id_RANfunctionID() { return set(2); } - RANfunctionID const* get_id_RANfunctionID() const { return get(2); } - RICcallProcessID& select_id_RICcallProcessID() { return set(3); } - RICcallProcessID const* get_id_RICcallProcessID() const { return get(3); } - RICcontrolHeader& select_id_RICcontrolHeader() { return set(4); } - RICcontrolHeader const* get_id_RICcontrolHeader() const { return get(4); } - RICcontrolMessage& select_id_RICcontrolMessage() { return set(5); } - RICcontrolMessage const* get_id_RICcontrolMessage() const { return get(5); } - RICcontrolAckRequest& select_id_RICcontrolAckRequest() { return set(6); } - RICcontrolAckRequest const* get_id_RICcontrolAckRequest() const { return get(6); } - bool is_unknown() const { return type == 7; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_RICrequestID()); return true; - case 2: v(select_id_RANfunctionID()); return true; - case 3: v(select_id_RICcallProcessID()); return true; - case 4: v(select_id_RICcontrolHeader()); return true; - case 5: v(select_id_RICcontrolMessage()); return true; - case 6: v(select_id_RICcontrolAckRequest()); return true; - case 7: if(type != 7) {clear(); asn::base::set();} type = 7; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(RANfunctionID)]; - char dummy2[sizeof(RICcallProcessID)]; - char dummy3[sizeof(RICcontrolAckRequest)]; - char dummy4[sizeof(RICcontrolHeader)]; - char dummy5[sizeof(RICcontrolMessage)]; - char dummy6[sizeof(RICrequestID)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_RICrequestID() { set(mandatory); type=1;} - void select_id_RANfunctionID() { set(mandatory); type=2;} - void select_id_RICcallProcessID() { set(optional); type=3;} - void select_id_RICcontrolHeader() { set(mandatory); type=4;} - void select_id_RICcontrolMessage() { set(mandatory); type=5;} - void select_id_RICcontrolAckRequest() { set(optional); type=6;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else if(equal(mandatory)) { type = 4; return true; } - else if(equal(mandatory)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(mandatory);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(mandatory);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RICcontrolRequest ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{RICcontrolRequest-IEs}}, - ... -} -*/ - -struct RICcontrolRequest : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "RICcontrolRequest";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -RICindication-IEs X2AP-PROTOCOL-IES ::= { - { ID id-RICrequestID CRITICALITY reject TYPE RICrequestID PRESENCE mandatory}| - { ID id-RANfunctionID CRITICALITY reject TYPE RANfunctionID PRESENCE mandatory}| - { ID id-RICactionID CRITICALITY reject TYPE RICactionID PRESENCE mandatory}| - { ID id-RICindicationSN CRITICALITY reject TYPE RICindicationSN PRESENCE mandatory}| - { ID id-RICindicationType CRITICALITY reject TYPE RICindicationType PRESENCE mandatory}| - { ID id-RICindicationHeader CRITICALITY reject TYPE RICindicationHeader PRESENCE mandatory}| - { ID id-RICindicationMessage CRITICALITY reject TYPE RICindicationMessage PRESENCE mandatory} | - { ID id-RICcallProcessID CRITICALITY reject TYPE RICcallProcessID PRESENCE optional}, - ... -} -*/ - -struct RICindication_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 9; } - void clear() {type = 0;} - void select_id_RICrequestID() { set(id_RICrequestID); type=1;} - void select_id_RANfunctionID() { set(id_RANfunctionID); type=2;} - void select_id_RICactionID() { set(id_RICactionID); type=3;} - void select_id_RICindicationSN() { set(id_RICindicationSN); type=4;} - void select_id_RICindicationType() { set(id_RICindicationType); type=5;} - void select_id_RICindicationHeader() { set(id_RICindicationHeader); type=6;} - void select_id_RICindicationMessage() { set(id_RICindicationMessage); type=7;} - void select_id_RICcallProcessID() { set(id_RICcallProcessID); type=8;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_RICrequestID)) { type = 1; return true; } - else if(equal(id_RANfunctionID)) { type = 2; return true; } - else if(equal(id_RICactionID)) { type = 3; return true; } - else if(equal(id_RICindicationSN)) { type = 4; return true; } - else if(equal(id_RICindicationType)) { type = 5; return true; } - else if(equal(id_RICindicationHeader)) { type = 6; return true; } - else if(equal(id_RICindicationMessage)) { type = 7; return true; } - else if(equal(id_RICcallProcessID)) { type = 8; return true; } - else { type = 9; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_RICrequestID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_RANfunctionID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_RICactionID);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_RICindicationSN);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_RICindicationType);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_RICindicationHeader);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(id_RICindicationMessage);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(id_RICcallProcessID);} return false; - case 9: type = 9; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 9; } - void clear() {type = 0;} - void select_id_RICrequestID() { set(reject); type=1;} - void select_id_RANfunctionID() { set(reject); type=2;} - void select_id_RICactionID() { set(reject); type=3;} - void select_id_RICindicationSN() { set(reject); type=4;} - void select_id_RICindicationType() { set(reject); type=5;} - void select_id_RICindicationHeader() { set(reject); type=6;} - void select_id_RICindicationMessage() { set(reject); type=7;} - void select_id_RICcallProcessID() { set(reject); type=8;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(reject)) { type = 3; return true; } - else if(equal(reject)) { type = 4; return true; } - else if(equal(reject)) { type = 5; return true; } - else if(equal(reject)) { type = 6; return true; } - else if(equal(reject)) { type = 7; return true; } - else if(equal(reject)) { type = 8; return true; } - else { type = 9; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(reject);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(reject);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(reject);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(reject);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(reject);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(reject);} return false; - case 9: type = 9; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - RICrequestID& select_id_RICrequestID() { return set(1); } - RICrequestID const* get_id_RICrequestID() const { return get(1); } - RANfunctionID& select_id_RANfunctionID() { return set(2); } - RANfunctionID const* get_id_RANfunctionID() const { return get(2); } - RICactionID& select_id_RICactionID() { return set(3); } - RICactionID const* get_id_RICactionID() const { return get(3); } - RICindicationSN& select_id_RICindicationSN() { return set(4); } - RICindicationSN const* get_id_RICindicationSN() const { return get(4); } - RICindicationType& select_id_RICindicationType() { return set(5); } - RICindicationType const* get_id_RICindicationType() const { return get(5); } - RICindicationHeader& select_id_RICindicationHeader() { return set(6); } - RICindicationHeader const* get_id_RICindicationHeader() const { return get(6); } - RICindicationMessage& select_id_RICindicationMessage() { return set(7); } - RICindicationMessage const* get_id_RICindicationMessage() const { return get(7); } - RICcallProcessID& select_id_RICcallProcessID() { return set(8); } - RICcallProcessID const* get_id_RICcallProcessID() const { return get(8); } - bool is_unknown() const { return type == 9; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - case 7: var.destroy(); break; - case 8: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - v.template operator()(7); - v.template operator()(8); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_RICrequestID()); return true; - case 2: v(select_id_RANfunctionID()); return true; - case 3: v(select_id_RICactionID()); return true; - case 4: v(select_id_RICindicationSN()); return true; - case 5: v(select_id_RICindicationType()); return true; - case 6: v(select_id_RICindicationHeader()); return true; - case 7: v(select_id_RICindicationMessage()); return true; - case 8: v(select_id_RICcallProcessID()); return true; - case 9: if(type != 9) {clear(); asn::base::set();} type = 9; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - case 7: v(var.as()); return true; - case 8: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(RANfunctionID)]; - char dummy2[sizeof(RICactionID)]; - char dummy3[sizeof(RICcallProcessID)]; - char dummy4[sizeof(RICindicationHeader)]; - char dummy5[sizeof(RICindicationMessage)]; - char dummy6[sizeof(RICindicationSN)]; - char dummy7[sizeof(RICindicationType)]; - char dummy8[sizeof(RICrequestID)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 9; } - void clear() {type = 0;} - void select_id_RICrequestID() { set(mandatory); type=1;} - void select_id_RANfunctionID() { set(mandatory); type=2;} - void select_id_RICactionID() { set(mandatory); type=3;} - void select_id_RICindicationSN() { set(mandatory); type=4;} - void select_id_RICindicationType() { set(mandatory); type=5;} - void select_id_RICindicationHeader() { set(mandatory); type=6;} - void select_id_RICindicationMessage() { set(mandatory); type=7;} - void select_id_RICcallProcessID() { set(optional); type=8;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(mandatory)) { type = 4; return true; } - else if(equal(mandatory)) { type = 5; return true; } - else if(equal(mandatory)) { type = 6; return true; } - else if(equal(mandatory)) { type = 7; return true; } - else if(equal(optional)) { type = 8; return true; } - else { type = 9; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(mandatory);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(mandatory);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(mandatory);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(mandatory);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(optional);} return false; - case 9: type = 9; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RICindication ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{RICindication-IEs}}, - ... -} -*/ - -struct RICindication : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "RICindication";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -RICserviceQuery-IEs X2AP-PROTOCOL-IES ::= { - { ID id-RANfunctionsAccepted CRITICALITY reject TYPE RANfunctionsID-List PRESENCE optional}, - ... -} -*/ - -struct RICserviceQuery_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RANfunctionsAccepted() { set(id_RANfunctionsAccepted); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_RANfunctionsAccepted)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_RANfunctionsAccepted);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RANfunctionsAccepted() { set(reject); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - RANfunctionsID_List& select_id_RANfunctionsAccepted() { return set(1); } - RANfunctionsID_List const* get_id_RANfunctionsAccepted() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_RANfunctionsAccepted()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(RANfunctionsID_List)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RANfunctionsAccepted() { set(optional); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RICserviceQuery ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{RICserviceQuery-IEs}}, - ... -} -*/ - -struct RICserviceQuery : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "RICserviceQuery";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -RICserviceUpdate-IEs X2AP-PROTOCOL-IES ::= { - { ID id-RANfunctionsAdded CRITICALITY reject TYPE RANfunctions-List PRESENCE optional}| - { ID id-RANfunctionsModified CRITICALITY reject TYPE RANfunctions-List PRESENCE optional}| - { ID id-RANfunctionsDeleted CRITICALITY reject TYPE RANfunctionsID-List PRESENCE optional}, - ... -} -*/ - -struct RICserviceUpdate_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_RANfunctionsAdded() { set(id_RANfunctionsAdded); type=1;} - void select_id_RANfunctionsModified() { set(id_RANfunctionsModified); type=2;} - void select_id_RANfunctionsDeleted() { set(id_RANfunctionsDeleted); type=3;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_RANfunctionsAdded)) { type = 1; return true; } - else if(equal(id_RANfunctionsModified)) { type = 2; return true; } - else if(equal(id_RANfunctionsDeleted)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_RANfunctionsAdded);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_RANfunctionsModified);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_RANfunctionsDeleted);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_RANfunctionsAdded() { set(reject); type=1;} - void select_id_RANfunctionsModified() { set(reject); type=2;} - void select_id_RANfunctionsDeleted() { set(reject); type=3;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(reject)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(reject);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - RANfunctions_List& select_id_RANfunctionsAdded() { return set(1); } - RANfunctions_List const* get_id_RANfunctionsAdded() const { return get(1); } - RANfunctions_List& select_id_RANfunctionsModified() { return set(2); } - RANfunctions_List const* get_id_RANfunctionsModified() const { return get(2); } - RANfunctionsID_List& select_id_RANfunctionsDeleted() { return set(3); } - RANfunctionsID_List const* get_id_RANfunctionsDeleted() const { return get(3); } - bool is_unknown() const { return type == 4; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_RANfunctionsAdded()); return true; - case 2: v(select_id_RANfunctionsModified()); return true; - case 3: v(select_id_RANfunctionsDeleted()); return true; - case 4: if(type != 4) {clear(); asn::base::set();} type = 4; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(RANfunctionsID_List)]; - char dummy2[sizeof(RANfunctions_List)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_RANfunctionsAdded() { set(optional); type=1;} - void select_id_RANfunctionsModified() { set(optional); type=2;} - void select_id_RANfunctionsDeleted() { set(optional); type=3;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RICserviceUpdate ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{RICserviceUpdate-IEs}}, - ... -} -*/ - -struct RICserviceUpdate : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "RICserviceUpdate";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -RICserviceUpdateAcknowledge-IEs X2AP-PROTOCOL-IES ::= { - { ID id-RANfunctionsAccepted CRITICALITY reject TYPE RANfunctionsID-List PRESENCE optional}| - { ID id-RANfunctionsRejected CRITICALITY reject TYPE RANfunctionsIDcause-List PRESENCE optional}, - ... -} -*/ - -struct RICserviceUpdateAcknowledge_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_RANfunctionsAccepted() { set(id_RANfunctionsAccepted); type=1;} - void select_id_RANfunctionsRejected() { set(id_RANfunctionsRejected); type=2;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_RANfunctionsAccepted)) { type = 1; return true; } - else if(equal(id_RANfunctionsRejected)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_RANfunctionsAccepted);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_RANfunctionsRejected);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_RANfunctionsAccepted() { set(reject); type=1;} - void select_id_RANfunctionsRejected() { set(reject); type=2;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - RANfunctionsID_List& select_id_RANfunctionsAccepted() { return set(1); } - RANfunctionsID_List const* get_id_RANfunctionsAccepted() const { return get(1); } - RANfunctionsIDcause_List& select_id_RANfunctionsRejected() { return set(2); } - RANfunctionsIDcause_List const* get_id_RANfunctionsRejected() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_RANfunctionsAccepted()); return true; - case 2: v(select_id_RANfunctionsRejected()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(RANfunctionsID_List)]; - char dummy2[sizeof(RANfunctionsIDcause_List)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_RANfunctionsAccepted() { set(optional); type=1;} - void select_id_RANfunctionsRejected() { set(optional); type=2;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RICserviceUpdateAcknowledge ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{RICserviceUpdateAcknowledge-IEs}}, - ... -} -*/ - -struct RICserviceUpdateAcknowledge : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "RICserviceUpdateAcknowledge";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -RICserviceUpdateFailure-IEs X2AP-PROTOCOL-IES ::= { - { ID id-RANfunctionsRejected CRITICALITY reject TYPE RANfunctionsIDcause-List PRESENCE optional}| - { ID id-TimeToWait CRITICALITY ignore TYPE TimeToWait PRESENCE optional}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, - ... -} -*/ - -struct RICserviceUpdateFailure_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_RANfunctionsRejected() { set(id_RANfunctionsRejected); type=1;} - void select_id_TimeToWait() { set(id_TimeToWait); type=2;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=3;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_RANfunctionsRejected)) { type = 1; return true; } - else if(equal(id_TimeToWait)) { type = 2; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_RANfunctionsRejected);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_TimeToWait);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_RANfunctionsRejected() { set(reject); type=1;} - void select_id_TimeToWait() { set(ignore); type=2;} - void select_id_CriticalityDiagnostics() { set(ignore); type=3;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - RANfunctionsIDcause_List& select_id_RANfunctionsRejected() { return set(1); } - RANfunctionsIDcause_List const* get_id_RANfunctionsRejected() const { return get(1); } - TimeToWait& select_id_TimeToWait() { return set(2); } - TimeToWait const* get_id_TimeToWait() const { return get(2); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(3); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(3); } - bool is_unknown() const { return type == 4; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_RANfunctionsRejected()); return true; - case 2: v(select_id_TimeToWait()); return true; - case 3: v(select_id_CriticalityDiagnostics()); return true; - case 4: if(type != 4) {clear(); asn::base::set();} type = 4; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CriticalityDiagnostics)]; - char dummy2[sizeof(RANfunctionsIDcause_List)]; - char dummy3[sizeof(TimeToWait)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_RANfunctionsRejected() { set(optional); type=1;} - void select_id_TimeToWait() { set(optional); type=2;} - void select_id_CriticalityDiagnostics() { set(optional); type=3;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RICserviceUpdateFailure ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{RICserviceUpdateFailure-IEs}}, - ... -} -*/ - -struct RICserviceUpdateFailure : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "RICserviceUpdateFailure";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -RICsubscription ::= SEQUENCE { - ricEventTriggerDefinition RICeventTriggerDefinition, - ricAction-ToBeSetup-List RICactions-ToBeSetup-List, - ... -} -*/ - -struct RICsubscription : asn::sequence<2, 0, true, 0> -{ - static constexpr const char* name() {return "RICsubscription";} - using parent_t = asn::sequence<2, 0, true, 0>; - struct ricEventTriggerDefinition_t : RICeventTriggerDefinition - { - static constexpr const char* name() {return "ricEventTriggerDefinition_t";} - using parent_t = RICeventTriggerDefinition; - - }; - ricEventTriggerDefinition_t& ref_ricEventTriggerDefinition() {return ricEventTriggerDefinition;} - ricEventTriggerDefinition_t const& ref_ricEventTriggerDefinition() const {return ricEventTriggerDefinition;} - struct ricAction_ToBeSetup_List_t : RICactions_ToBeSetup_List - { - static constexpr const char* name() {return "ricAction_ToBeSetup_List_t";} - using parent_t = RICactions_ToBeSetup_List; - - }; - ricAction_ToBeSetup_List_t& ref_ricAction_ToBeSetup_List() {return ricAction_ToBeSetup_List;} - ricAction_ToBeSetup_List_t const& ref_ricAction_ToBeSetup_List() const {return ricAction_ToBeSetup_List;} - template void decode(V& v) - { - v(ricEventTriggerDefinition); - v(ricAction_ToBeSetup_List); - - }; - template void encode(V& v) const - { - v(ricEventTriggerDefinition); - v(ricAction_ToBeSetup_List); - - }; - void clear() - { - ricEventTriggerDefinition.clear(); - ricAction_ToBeSetup_List.clear(); - - }; - private: - ricEventTriggerDefinition_t ricEventTriggerDefinition; - ricAction_ToBeSetup_List_t ricAction_ToBeSetup_List; - -}; -/* -RICsubscriptionDeleteFailure-IEs X2AP-PROTOCOL-IES ::= { - { ID id-RICrequestID CRITICALITY reject TYPE RICrequestID PRESENCE mandatory}| - { ID id-RANfunctionID CRITICALITY reject TYPE RANfunctionID PRESENCE mandatory}| - { ID id-RICcause CRITICALITY reject TYPE RICcause PRESENCE mandatory}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, - ... -} -*/ - -struct RICsubscriptionDeleteFailure_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_RICrequestID() { set(id_RICrequestID); type=1;} - void select_id_RANfunctionID() { set(id_RANfunctionID); type=2;} - void select_id_RICcause() { set(id_RICcause); type=3;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=4;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_RICrequestID)) { type = 1; return true; } - else if(equal(id_RANfunctionID)) { type = 2; return true; } - else if(equal(id_RICcause)) { type = 3; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_RICrequestID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_RANfunctionID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_RICcause);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_RICrequestID() { set(reject); type=1;} - void select_id_RANfunctionID() { set(reject); type=2;} - void select_id_RICcause() { set(reject); type=3;} - void select_id_CriticalityDiagnostics() { set(ignore); type=4;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(reject)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(reject);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - RICrequestID& select_id_RICrequestID() { return set(1); } - RICrequestID const* get_id_RICrequestID() const { return get(1); } - RANfunctionID& select_id_RANfunctionID() { return set(2); } - RANfunctionID const* get_id_RANfunctionID() const { return get(2); } - RICcause& select_id_RICcause() { return set(3); } - RICcause const* get_id_RICcause() const { return get(3); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(4); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(4); } - bool is_unknown() const { return type == 5; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_RICrequestID()); return true; - case 2: v(select_id_RANfunctionID()); return true; - case 3: v(select_id_RICcause()); return true; - case 4: v(select_id_CriticalityDiagnostics()); return true; - case 5: if(type != 5) {clear(); asn::base::set();} type = 5; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CriticalityDiagnostics)]; - char dummy2[sizeof(RANfunctionID)]; - char dummy3[sizeof(RICcause)]; - char dummy4[sizeof(RICrequestID)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_RICrequestID() { set(mandatory); type=1;} - void select_id_RANfunctionID() { set(mandatory); type=2;} - void select_id_RICcause() { set(mandatory); type=3;} - void select_id_CriticalityDiagnostics() { set(optional); type=4;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RICsubscriptionDeleteFailure ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{RICsubscriptionDeleteFailure-IEs}}, - ... -} -*/ - -struct RICsubscriptionDeleteFailure : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "RICsubscriptionDeleteFailure";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -RICsubscriptionDeleteRequest-IEs X2AP-PROTOCOL-IES ::= { - { ID id-RICrequestID CRITICALITY reject TYPE RICrequestID PRESENCE mandatory}| - { ID id-RANfunctionID CRITICALITY reject TYPE RANfunctionID PRESENCE mandatory}, - ... -} -*/ - -struct RICsubscriptionDeleteRequest_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_RICrequestID() { set(id_RICrequestID); type=1;} - void select_id_RANfunctionID() { set(id_RANfunctionID); type=2;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_RICrequestID)) { type = 1; return true; } - else if(equal(id_RANfunctionID)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_RICrequestID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_RANfunctionID);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_RICrequestID() { set(reject); type=1;} - void select_id_RANfunctionID() { set(reject); type=2;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - RICrequestID& select_id_RICrequestID() { return set(1); } - RICrequestID const* get_id_RICrequestID() const { return get(1); } - RANfunctionID& select_id_RANfunctionID() { return set(2); } - RANfunctionID const* get_id_RANfunctionID() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_RICrequestID()); return true; - case 2: v(select_id_RANfunctionID()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(RANfunctionID)]; - char dummy2[sizeof(RICrequestID)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_RICrequestID() { set(mandatory); type=1;} - void select_id_RANfunctionID() { set(mandatory); type=2;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RICsubscriptionDeleteRequest ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{RICsubscriptionDeleteRequest-IEs}}, - ... -} -*/ - -struct RICsubscriptionDeleteRequest : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "RICsubscriptionDeleteRequest";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -RICsubscriptionDeleteResponse-IEs X2AP-PROTOCOL-IES ::= { - { ID id-RICrequestID CRITICALITY reject TYPE RICrequestID PRESENCE mandatory}| - { ID id-RANfunctionID CRITICALITY reject TYPE RANfunctionID PRESENCE mandatory}, - ... -} -*/ - -struct RICsubscriptionDeleteResponse_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_RICrequestID() { set(id_RICrequestID); type=1;} - void select_id_RANfunctionID() { set(id_RANfunctionID); type=2;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_RICrequestID)) { type = 1; return true; } - else if(equal(id_RANfunctionID)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_RICrequestID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_RANfunctionID);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_RICrequestID() { set(reject); type=1;} - void select_id_RANfunctionID() { set(reject); type=2;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - RICrequestID& select_id_RICrequestID() { return set(1); } - RICrequestID const* get_id_RICrequestID() const { return get(1); } - RANfunctionID& select_id_RANfunctionID() { return set(2); } - RANfunctionID const* get_id_RANfunctionID() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_RICrequestID()); return true; - case 2: v(select_id_RANfunctionID()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(RANfunctionID)]; - char dummy2[sizeof(RICrequestID)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_RICrequestID() { set(mandatory); type=1;} - void select_id_RANfunctionID() { set(mandatory); type=2;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RICsubscriptionDeleteResponse ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{RICsubscriptionDeleteResponse-IEs}}, - ... -} -*/ - -struct RICsubscriptionDeleteResponse : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "RICsubscriptionDeleteResponse";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -RICsubscriptionFailure-IEs X2AP-PROTOCOL-IES ::= { - { ID id-RICrequestID CRITICALITY reject TYPE RICrequestID PRESENCE mandatory}| - { ID id-RANfunctionID CRITICALITY reject TYPE RANfunctionID PRESENCE mandatory}| - { ID id-RICactions-NotAdmitted CRITICALITY reject TYPE RICaction-NotAdmitted-List PRESENCE mandatory}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, - ... -} -*/ - -struct RICsubscriptionFailure_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_RICrequestID() { set(id_RICrequestID); type=1;} - void select_id_RANfunctionID() { set(id_RANfunctionID); type=2;} - void select_id_RICactions_NotAdmitted() { set(id_RICactions_NotAdmitted); type=3;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=4;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_RICrequestID)) { type = 1; return true; } - else if(equal(id_RANfunctionID)) { type = 2; return true; } - else if(equal(id_RICactions_NotAdmitted)) { type = 3; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_RICrequestID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_RANfunctionID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_RICactions_NotAdmitted);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_RICrequestID() { set(reject); type=1;} - void select_id_RANfunctionID() { set(reject); type=2;} - void select_id_RICactions_NotAdmitted() { set(reject); type=3;} - void select_id_CriticalityDiagnostics() { set(ignore); type=4;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(reject)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(reject);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - RICrequestID& select_id_RICrequestID() { return set(1); } - RICrequestID const* get_id_RICrequestID() const { return get(1); } - RANfunctionID& select_id_RANfunctionID() { return set(2); } - RANfunctionID const* get_id_RANfunctionID() const { return get(2); } - RICaction_NotAdmitted_List& select_id_RICactions_NotAdmitted() { return set(3); } - RICaction_NotAdmitted_List const* get_id_RICactions_NotAdmitted() const { return get(3); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(4); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(4); } - bool is_unknown() const { return type == 5; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_RICrequestID()); return true; - case 2: v(select_id_RANfunctionID()); return true; - case 3: v(select_id_RICactions_NotAdmitted()); return true; - case 4: v(select_id_CriticalityDiagnostics()); return true; - case 5: if(type != 5) {clear(); asn::base::set();} type = 5; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CriticalityDiagnostics)]; - char dummy2[sizeof(RANfunctionID)]; - char dummy3[sizeof(RICaction_NotAdmitted_List)]; - char dummy4[sizeof(RICrequestID)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_RICrequestID() { set(mandatory); type=1;} - void select_id_RANfunctionID() { set(mandatory); type=2;} - void select_id_RICactions_NotAdmitted() { set(mandatory); type=3;} - void select_id_CriticalityDiagnostics() { set(optional); type=4;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RICsubscriptionFailure ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{RICsubscriptionFailure-IEs}}, - ... -} -*/ - -struct RICsubscriptionFailure : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "RICsubscriptionFailure";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -RICsubscriptionRequest-IEs X2AP-PROTOCOL-IES ::= { - { ID id-RICrequestID CRITICALITY reject TYPE RICrequestID PRESENCE mandatory}| - { ID id-RANfunctionID CRITICALITY reject TYPE RANfunctionID PRESENCE mandatory}| - { ID id-RICsubscription CRITICALITY reject TYPE RICsubscription PRESENCE mandatory}, - ... -} -*/ - -struct RICsubscriptionRequest_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_RICrequestID() { set(id_RICrequestID); type=1;} - void select_id_RANfunctionID() { set(id_RANfunctionID); type=2;} - void select_id_RICsubscription() { set(id_RICsubscription); type=3;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_RICrequestID)) { type = 1; return true; } - else if(equal(id_RANfunctionID)) { type = 2; return true; } - else if(equal(id_RICsubscription)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_RICrequestID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_RANfunctionID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_RICsubscription);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_RICrequestID() { set(reject); type=1;} - void select_id_RANfunctionID() { set(reject); type=2;} - void select_id_RICsubscription() { set(reject); type=3;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(reject)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(reject);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - RICrequestID& select_id_RICrequestID() { return set(1); } - RICrequestID const* get_id_RICrequestID() const { return get(1); } - RANfunctionID& select_id_RANfunctionID() { return set(2); } - RANfunctionID const* get_id_RANfunctionID() const { return get(2); } - RICsubscription& select_id_RICsubscription() { return set(3); } - RICsubscription const* get_id_RICsubscription() const { return get(3); } - bool is_unknown() const { return type == 4; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_RICrequestID()); return true; - case 2: v(select_id_RANfunctionID()); return true; - case 3: v(select_id_RICsubscription()); return true; - case 4: if(type != 4) {clear(); asn::base::set();} type = 4; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(RANfunctionID)]; - char dummy2[sizeof(RICrequestID)]; - char dummy3[sizeof(RICsubscription)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_RICrequestID() { set(mandatory); type=1;} - void select_id_RANfunctionID() { set(mandatory); type=2;} - void select_id_RICsubscription() { set(mandatory); type=3;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RICsubscriptionRequest ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{RICsubscriptionRequest-IEs}}, - ... -} -*/ - -struct RICsubscriptionRequest : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "RICsubscriptionRequest";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -RICsubscriptionResponse-IEs X2AP-PROTOCOL-IES ::= { - { ID id-RICrequestID CRITICALITY reject TYPE RICrequestID PRESENCE mandatory } | - { ID id-RANfunctionID CRITICALITY reject TYPE RANfunctionID PRESENCE mandatory } | - { ID id-RICactions-Admitted CRITICALITY reject TYPE RICaction-Admitted-List PRESENCE mandatory } | - { ID id-RICactions-NotAdmitted CRITICALITY reject TYPE RICaction-NotAdmitted-List PRESENCE optional }, - ... -} -*/ - -struct RICsubscriptionResponse_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_RICrequestID() { set(id_RICrequestID); type=1;} - void select_id_RANfunctionID() { set(id_RANfunctionID); type=2;} - void select_id_RICactions_Admitted() { set(id_RICactions_Admitted); type=3;} - void select_id_RICactions_NotAdmitted() { set(id_RICactions_NotAdmitted); type=4;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_RICrequestID)) { type = 1; return true; } - else if(equal(id_RANfunctionID)) { type = 2; return true; } - else if(equal(id_RICactions_Admitted)) { type = 3; return true; } - else if(equal(id_RICactions_NotAdmitted)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_RICrequestID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_RANfunctionID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_RICactions_Admitted);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_RICactions_NotAdmitted);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_RICrequestID() { set(reject); type=1;} - void select_id_RANfunctionID() { set(reject); type=2;} - void select_id_RICactions_Admitted() { set(reject); type=3;} - void select_id_RICactions_NotAdmitted() { set(reject); type=4;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(reject)) { type = 3; return true; } - else if(equal(reject)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(reject);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(reject);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - RICrequestID& select_id_RICrequestID() { return set(1); } - RICrequestID const* get_id_RICrequestID() const { return get(1); } - RANfunctionID& select_id_RANfunctionID() { return set(2); } - RANfunctionID const* get_id_RANfunctionID() const { return get(2); } - RICaction_Admitted_List& select_id_RICactions_Admitted() { return set(3); } - RICaction_Admitted_List const* get_id_RICactions_Admitted() const { return get(3); } - RICaction_NotAdmitted_List& select_id_RICactions_NotAdmitted() { return set(4); } - RICaction_NotAdmitted_List const* get_id_RICactions_NotAdmitted() const { return get(4); } - bool is_unknown() const { return type == 5; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_RICrequestID()); return true; - case 2: v(select_id_RANfunctionID()); return true; - case 3: v(select_id_RICactions_Admitted()); return true; - case 4: v(select_id_RICactions_NotAdmitted()); return true; - case 5: if(type != 5) {clear(); asn::base::set();} type = 5; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(RANfunctionID)]; - char dummy2[sizeof(RICaction_Admitted_List)]; - char dummy3[sizeof(RICaction_NotAdmitted_List)]; - char dummy4[sizeof(RICrequestID)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_RICrequestID() { set(mandatory); type=1;} - void select_id_RANfunctionID() { set(mandatory); type=2;} - void select_id_RICactions_Admitted() { set(mandatory); type=3;} - void select_id_RICactions_NotAdmitted() { set(optional); type=4;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RICsubscriptionResponse ::= SEQUENCE { - protocolIEs ProtocolIE-Container{{RICsubscriptionResponse-IEs}}, - ... -} -*/ - -struct RICsubscriptionResponse : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "RICsubscriptionResponse";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; diff --git a/e2sim/previous/e2apv1sim/ricsim/src/ASN1/generated/E2AP-PDU-Descriptions.hpp b/e2sim/previous/e2apv1sim/ricsim/src/ASN1/generated/E2AP-PDU-Descriptions.hpp deleted file mode 100644 index f426b97..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/ASN1/generated/E2AP-PDU-Descriptions.hpp +++ /dev/null @@ -1,980 +0,0 @@ -/***************************************************************************** -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -#pragma once - -#include "asn/asn.hpp" -static_assert(ASN_API_VERSION_MAJOR == 5, "re-generate the ASN parser's code using 'make regen-asn' (do not use -j option)"); - -#include "X2AP-CommonDataTypes.hpp" -#include "X2AP-PDU-Contents.hpp" -#include "X2AP-Constants.hpp" -#include "E2AP-PDU-Contents.hpp" -#include "E2AP-Constants.hpp" - -/* -E2AP-ELEMENTARY-PROCEDURE ::= CLASS { - &InitiatingMessage , - &SuccessfulOutcome OPTIONAL, - &UnsuccessfulOutcome OPTIONAL, - &procedureCode ProcedureCode UNIQUE, - &criticality Criticality DEFAULT ignore -} -WITH SYNTAX { - INITIATING MESSAGE &InitiatingMessage - [SUCCESSFUL OUTCOME &SuccessfulOutcome] - [UNSUCCESSFUL OUTCOME &UnsuccessfulOutcome] - PROCEDURE CODE &procedureCode - [CRITICALITY &criticality] -} -*/ - -struct E2AP_ELEMENTARY_PROCEDURE -{ - struct procedureCode_t : ProcedureCode - { - static constexpr const char* name() {return "procedureCode_t";} - using parent_t = ProcedureCode; - - }; - struct criticality_t : Criticality - { - static constexpr const char* name() {return "criticality_t";} - using parent_t = Criticality; - - }; - -}; -/* -E2AP-ELEMENTARY-PROCEDURES E2AP-ELEMENTARY-PROCEDURE ::= { - E2AP-ELEMENTARY-PROCEDURES-CLASS-1 | - E2AP-ELEMENTARY-PROCEDURES-CLASS-2, - ... -} -*/ - -struct E2AP_ELEMENTARY_PROCEDURES -{ - struct InitiatingMessage_t : asn::typefield - { - ~InitiatingMessage_t() {clear();} - size_t get_index() const {return type;} - RICsubscriptionRequest& select_id_ricSubscription() { return set(1); } - RICsubscriptionRequest const* get_id_ricSubscription() const { return get(1); } - RICsubscriptionDeleteRequest& select_id_ricSubscriptionDelete() { return set(2); } - RICsubscriptionDeleteRequest const* get_id_ricSubscriptionDelete() const { return get(2); } - RICserviceUpdate& select_id_ricServiceUpdate() { return set(3); } - RICserviceUpdate const* get_id_ricServiceUpdate() const { return get(3); } - RICcontrolRequest& select_id_ricControl() { return set(4); } - RICcontrolRequest const* get_id_ricControl() const { return get(4); } - X2SetupRequest& select_id_x2Setup() { return set(5); } - X2SetupRequest const* get_id_x2Setup() const { return get(5); } - ENDCX2SetupRequest& select_id_endcX2Setup() { return set(6); } - ENDCX2SetupRequest const* get_id_endcX2Setup() const { return get(6); } - ResourceStatusRequest& select_id_resourceStatusReportingInitiation() { return set(7); } - ResourceStatusRequest const* get_id_resourceStatusReportingInitiation() const { return get(7); } - ENBConfigurationUpdate& select_id_eNBConfigurationUpdate() { return set(8); } - ENBConfigurationUpdate const* get_id_eNBConfigurationUpdate() const { return get(8); } - ENDCConfigurationUpdate& select_id_endcConfigurationUpdate() { return set(9); } - ENDCConfigurationUpdate const* get_id_endcConfigurationUpdate() const { return get(9); } - ResetRequest& select_id_reset() { return set(10); } - ResetRequest const* get_id_reset() const { return get(10); } - RICindication& select_id_ricIndication() { return set(11); } - RICindication const* get_id_ricIndication() const { return get(11); } - RICserviceQuery& select_id_ricServiceQuery() { return set(12); } - RICserviceQuery const* get_id_ricServiceQuery() const { return get(12); } - LoadInformation& select_id_loadIndication() { return set(13); } - LoadInformation const* get_id_loadIndication() const { return get(13); } - GNBStatusIndication& select_id_gNBStatusIndication() { return set(14); } - GNBStatusIndication const* get_id_gNBStatusIndication() const { return get(14); } - ResourceStatusUpdate& select_id_resourceStatusReporting() { return set(15); } - ResourceStatusUpdate const* get_id_resourceStatusReporting() const { return get(15); } - ErrorIndication& select_id_errorIndication() { return set(16); } - ErrorIndication const* get_id_errorIndication() const { return get(16); } - bool is_unknown() const { return type == 17; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - case 7: var.destroy(); break; - case 8: var.destroy(); break; - case 9: var.destroy(); break; - case 10: var.destroy(); break; - case 11: var.destroy(); break; - case 12: var.destroy(); break; - case 13: var.destroy(); break; - case 14: var.destroy(); break; - case 15: var.destroy(); break; - case 16: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - v.template operator()(7); - v.template operator()(8); - v.template operator()(9); - v.template operator()(10); - v.template operator()(11); - v.template operator()(12); - v.template operator()(13); - v.template operator()(14); - v.template operator()(15); - v.template operator()(16); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_ricSubscription()); return true; - case 2: v(select_id_ricSubscriptionDelete()); return true; - case 3: v(select_id_ricServiceUpdate()); return true; - case 4: v(select_id_ricControl()); return true; - case 5: v(select_id_x2Setup()); return true; - case 6: v(select_id_endcX2Setup()); return true; - case 7: v(select_id_resourceStatusReportingInitiation()); return true; - case 8: v(select_id_eNBConfigurationUpdate()); return true; - case 9: v(select_id_endcConfigurationUpdate()); return true; - case 10: v(select_id_reset()); return true; - case 11: v(select_id_ricIndication()); return true; - case 12: v(select_id_ricServiceQuery()); return true; - case 13: v(select_id_loadIndication()); return true; - case 14: v(select_id_gNBStatusIndication()); return true; - case 15: v(select_id_resourceStatusReporting()); return true; - case 16: v(select_id_errorIndication()); return true; - case 17: if(type != 17) {clear(); asn::base::set();} type = 17; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - case 7: v(var.as()); return true; - case 8: v(var.as()); return true; - case 9: v(var.as()); return true; - case 10: v(var.as()); return true; - case 11: v(var.as()); return true; - case 12: v(var.as()); return true; - case 13: v(var.as()); return true; - case 14: v(var.as()); return true; - case 15: v(var.as()); return true; - case 16: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(ENBConfigurationUpdate)]; - char dummy2[sizeof(ENDCConfigurationUpdate)]; - char dummy3[sizeof(ENDCX2SetupRequest)]; - char dummy4[sizeof(ErrorIndication)]; - char dummy5[sizeof(GNBStatusIndication)]; - char dummy6[sizeof(LoadInformation)]; - char dummy7[sizeof(RICcontrolRequest)]; - char dummy8[sizeof(RICindication)]; - char dummy9[sizeof(RICserviceQuery)]; - char dummy10[sizeof(RICserviceUpdate)]; - char dummy11[sizeof(RICsubscriptionDeleteRequest)]; - char dummy12[sizeof(RICsubscriptionRequest)]; - char dummy13[sizeof(ResetRequest)]; - char dummy14[sizeof(ResourceStatusRequest)]; - char dummy15[sizeof(ResourceStatusUpdate)]; - char dummy16[sizeof(X2SetupRequest)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct SuccessfulOutcome_t : asn::typefield - { - ~SuccessfulOutcome_t() {clear();} - size_t get_index() const {return type;} - RICsubscriptionResponse& select_id_ricSubscription() { return set(1); } - RICsubscriptionResponse const* get_id_ricSubscription() const { return get(1); } - RICsubscriptionDeleteResponse& select_id_ricSubscriptionDelete() { return set(2); } - RICsubscriptionDeleteResponse const* get_id_ricSubscriptionDelete() const { return get(2); } - RICserviceUpdateAcknowledge& select_id_ricServiceUpdate() { return set(3); } - RICserviceUpdateAcknowledge const* get_id_ricServiceUpdate() const { return get(3); } - RICcontrolAcknowledge& select_id_ricControl() { return set(4); } - RICcontrolAcknowledge const* get_id_ricControl() const { return get(4); } - X2SetupResponse& select_id_x2Setup() { return set(5); } - X2SetupResponse const* get_id_x2Setup() const { return get(5); } - ENDCX2SetupResponse& select_id_endcX2Setup() { return set(6); } - ENDCX2SetupResponse const* get_id_endcX2Setup() const { return get(6); } - ResourceStatusResponse& select_id_resourceStatusReportingInitiation() { return set(7); } - ResourceStatusResponse const* get_id_resourceStatusReportingInitiation() const { return get(7); } - ENBConfigurationUpdateAcknowledge& select_id_eNBConfigurationUpdate() { return set(8); } - ENBConfigurationUpdateAcknowledge const* get_id_eNBConfigurationUpdate() const { return get(8); } - ENDCConfigurationUpdateAcknowledge& select_id_endcConfigurationUpdate() { return set(9); } - ENDCConfigurationUpdateAcknowledge const* get_id_endcConfigurationUpdate() const { return get(9); } - ResetResponse& select_id_reset() { return set(10); } - ResetResponse const* get_id_reset() const { return get(10); } - bool is_unknown() const { return type == 17; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - case 7: var.destroy(); break; - case 8: var.destroy(); break; - case 9: var.destroy(); break; - case 10: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - v.template operator()(7); - v.template operator()(8); - v.template operator()(9); - v.template operator()(10); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_ricSubscription()); return true; - case 2: v(select_id_ricSubscriptionDelete()); return true; - case 3: v(select_id_ricServiceUpdate()); return true; - case 4: v(select_id_ricControl()); return true; - case 5: v(select_id_x2Setup()); return true; - case 6: v(select_id_endcX2Setup()); return true; - case 7: v(select_id_resourceStatusReportingInitiation()); return true; - case 8: v(select_id_eNBConfigurationUpdate()); return true; - case 9: v(select_id_endcConfigurationUpdate()); return true; - case 10: v(select_id_reset()); return true; - case 17: if(type != 17) {clear(); asn::base::set();} type = 17; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - case 7: v(var.as()); return true; - case 8: v(var.as()); return true; - case 9: v(var.as()); return true; - case 10: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(ENBConfigurationUpdateAcknowledge)]; - char dummy2[sizeof(ENDCConfigurationUpdateAcknowledge)]; - char dummy3[sizeof(ENDCX2SetupResponse)]; - char dummy4[sizeof(RICcontrolAcknowledge)]; - char dummy5[sizeof(RICserviceUpdateAcknowledge)]; - char dummy6[sizeof(RICsubscriptionDeleteResponse)]; - char dummy7[sizeof(RICsubscriptionResponse)]; - char dummy8[sizeof(ResetResponse)]; - char dummy9[sizeof(ResourceStatusResponse)]; - char dummy10[sizeof(X2SetupResponse)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct UnsuccessfulOutcome_t : asn::typefield - { - ~UnsuccessfulOutcome_t() {clear();} - size_t get_index() const {return type;} - RICsubscriptionFailure& select_id_ricSubscription() { return set(1); } - RICsubscriptionFailure const* get_id_ricSubscription() const { return get(1); } - RICsubscriptionDeleteFailure& select_id_ricSubscriptionDelete() { return set(2); } - RICsubscriptionDeleteFailure const* get_id_ricSubscriptionDelete() const { return get(2); } - RICserviceUpdateFailure& select_id_ricServiceUpdate() { return set(3); } - RICserviceUpdateFailure const* get_id_ricServiceUpdate() const { return get(3); } - RICcontrolFailure& select_id_ricControl() { return set(4); } - RICcontrolFailure const* get_id_ricControl() const { return get(4); } - X2SetupFailure& select_id_x2Setup() { return set(5); } - X2SetupFailure const* get_id_x2Setup() const { return get(5); } - ENDCX2SetupFailure& select_id_endcX2Setup() { return set(6); } - ENDCX2SetupFailure const* get_id_endcX2Setup() const { return get(6); } - ResourceStatusFailure& select_id_resourceStatusReportingInitiation() { return set(7); } - ResourceStatusFailure const* get_id_resourceStatusReportingInitiation() const { return get(7); } - ENBConfigurationUpdateFailure& select_id_eNBConfigurationUpdate() { return set(8); } - ENBConfigurationUpdateFailure const* get_id_eNBConfigurationUpdate() const { return get(8); } - ENDCConfigurationUpdateFailure& select_id_endcConfigurationUpdate() { return set(9); } - ENDCConfigurationUpdateFailure const* get_id_endcConfigurationUpdate() const { return get(9); } - bool is_unknown() const { return type == 17; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - case 7: var.destroy(); break; - case 8: var.destroy(); break; - case 9: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - v.template operator()(7); - v.template operator()(8); - v.template operator()(9); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_ricSubscription()); return true; - case 2: v(select_id_ricSubscriptionDelete()); return true; - case 3: v(select_id_ricServiceUpdate()); return true; - case 4: v(select_id_ricControl()); return true; - case 5: v(select_id_x2Setup()); return true; - case 6: v(select_id_endcX2Setup()); return true; - case 7: v(select_id_resourceStatusReportingInitiation()); return true; - case 8: v(select_id_eNBConfigurationUpdate()); return true; - case 9: v(select_id_endcConfigurationUpdate()); return true; - case 17: if(type != 17) {clear(); asn::base::set();} type = 17; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - case 7: v(var.as()); return true; - case 8: v(var.as()); return true; - case 9: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(ENBConfigurationUpdateFailure)]; - char dummy2[sizeof(ENDCConfigurationUpdateFailure)]; - char dummy3[sizeof(ENDCX2SetupFailure)]; - char dummy4[sizeof(RICcontrolFailure)]; - char dummy5[sizeof(RICserviceUpdateFailure)]; - char dummy6[sizeof(RICsubscriptionDeleteFailure)]; - char dummy7[sizeof(RICsubscriptionFailure)]; - char dummy8[sizeof(ResourceStatusFailure)]; - char dummy9[sizeof(X2SetupFailure)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct procedureCode_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 17; } - void clear() {type = 0;} - void select_id_ricSubscription() { set(id_ricSubscription); type=1;} - void select_id_ricSubscriptionDelete() { set(id_ricSubscriptionDelete); type=2;} - void select_id_ricServiceUpdate() { set(id_ricServiceUpdate); type=3;} - void select_id_ricControl() { set(id_ricControl); type=4;} - void select_id_x2Setup() { set(id_x2Setup); type=5;} - void select_id_endcX2Setup() { set(id_endcX2Setup); type=6;} - void select_id_resourceStatusReportingInitiation() { set(id_resourceStatusReportingInitiation); type=7;} - void select_id_eNBConfigurationUpdate() { set(id_eNBConfigurationUpdate); type=8;} - void select_id_endcConfigurationUpdate() { set(id_endcConfigurationUpdate); type=9;} - void select_id_reset() { set(id_reset); type=10;} - void select_id_ricIndication() { set(id_ricIndication); type=11;} - void select_id_ricServiceQuery() { set(id_ricServiceQuery); type=12;} - void select_id_loadIndication() { set(id_loadIndication); type=13;} - void select_id_gNBStatusIndication() { set(id_gNBStatusIndication); type=14;} - void select_id_resourceStatusReporting() { set(id_resourceStatusReporting); type=15;} - void select_id_errorIndication() { set(id_errorIndication); type=16;} - E2AP_ELEMENTARY_PROCEDURE::procedureCode_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_ricSubscription)) { type = 1; return true; } - else if(equal(id_ricSubscriptionDelete)) { type = 2; return true; } - else if(equal(id_ricServiceUpdate)) { type = 3; return true; } - else if(equal(id_ricControl)) { type = 4; return true; } - else if(equal(id_x2Setup)) { type = 5; return true; } - else if(equal(id_endcX2Setup)) { type = 6; return true; } - else if(equal(id_resourceStatusReportingInitiation)) { type = 7; return true; } - else if(equal(id_eNBConfigurationUpdate)) { type = 8; return true; } - else if(equal(id_endcConfigurationUpdate)) { type = 9; return true; } - else if(equal(id_reset)) { type = 10; return true; } - else if(equal(id_ricIndication)) { type = 11; return true; } - else if(equal(id_ricServiceQuery)) { type = 12; return true; } - else if(equal(id_loadIndication)) { type = 13; return true; } - else if(equal(id_gNBStatusIndication)) { type = 14; return true; } - else if(equal(id_resourceStatusReporting)) { type = 15; return true; } - else if(equal(id_errorIndication)) { type = 16; return true; } - else { type = 17; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_ricSubscription);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_ricSubscriptionDelete);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_ricServiceUpdate);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_ricControl);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_x2Setup);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_endcX2Setup);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(id_resourceStatusReportingInitiation);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(id_eNBConfigurationUpdate);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(id_endcConfigurationUpdate);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(id_reset);} return false; - case 11: type = 11; if(v(ref_nested())) { return equal(id_ricIndication);} return false; - case 12: type = 12; if(v(ref_nested())) { return equal(id_ricServiceQuery);} return false; - case 13: type = 13; if(v(ref_nested())) { return equal(id_loadIndication);} return false; - case 14: type = 14; if(v(ref_nested())) { return equal(id_gNBStatusIndication);} return false; - case 15: type = 15; if(v(ref_nested())) { return equal(id_resourceStatusReporting);} return false; - case 16: type = 16; if(v(ref_nested())) { return equal(id_errorIndication);} return false; - case 17: type = 17; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 17; } - void clear() {type = 0;} - void select_id_ricSubscription() { set(reject); type=1;} - void select_id_ricSubscriptionDelete() { set(reject); type=2;} - void select_id_ricServiceUpdate() { set(reject); type=3;} - void select_id_ricControl() { set(reject); type=4;} - void select_id_x2Setup() { set(reject); type=5;} - void select_id_endcX2Setup() { set(reject); type=6;} - void select_id_resourceStatusReportingInitiation() { set(reject); type=7;} - void select_id_eNBConfigurationUpdate() { set(reject); type=8;} - void select_id_endcConfigurationUpdate() { set(reject); type=9;} - void select_id_reset() { set(reject); type=10;} - void select_id_ricIndication() { set(ignore); type=11;} - void select_id_ricServiceQuery() { set(ignore); type=12;} - void select_id_loadIndication() { set(ignore); type=13;} - void select_id_gNBStatusIndication() { set(ignore); type=14;} - void select_id_resourceStatusReporting() { set(ignore); type=15;} - void select_id_errorIndication() { set(ignore); type=16;} - E2AP_ELEMENTARY_PROCEDURE::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(reject)) { type = 3; return true; } - else if(equal(reject)) { type = 4; return true; } - else if(equal(reject)) { type = 5; return true; } - else if(equal(reject)) { type = 6; return true; } - else if(equal(reject)) { type = 7; return true; } - else if(equal(reject)) { type = 8; return true; } - else if(equal(reject)) { type = 9; return true; } - else if(equal(reject)) { type = 10; return true; } - else if(equal(ignore)) { type = 11; return true; } - else if(equal(ignore)) { type = 12; return true; } - else if(equal(ignore)) { type = 13; return true; } - else if(equal(ignore)) { type = 14; return true; } - else if(equal(ignore)) { type = 15; return true; } - else if(equal(ignore)) { type = 16; return true; } - else { type = 17; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(reject);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(reject);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(reject);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(reject);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(reject);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(reject);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(reject);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(reject);} return false; - case 11: type = 11; if(v(ref_nested())) { return equal(ignore);} return false; - case 12: type = 12; if(v(ref_nested())) { return equal(ignore);} return false; - case 13: type = 13; if(v(ref_nested())) { return equal(ignore);} return false; - case 14: type = 14; if(v(ref_nested())) { return equal(ignore);} return false; - case 15: type = 15; if(v(ref_nested())) { return equal(ignore);} return false; - case 16: type = 16; if(v(ref_nested())) { return equal(ignore);} return false; - case 17: type = 17; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -InitiatingMessage ::= SEQUENCE { - procedureCode E2AP-ELEMENTARY-PROCEDURE.&procedureCode({E2AP-ELEMENTARY-PROCEDURES}), - criticality E2AP-ELEMENTARY-PROCEDURE.&criticality({E2AP-ELEMENTARY-PROCEDURES}{@procedureCode}), - value E2AP-ELEMENTARY-PROCEDURE.&InitiatingMessage({E2AP-ELEMENTARY-PROCEDURES}{@procedureCode}) -} -*/ - -struct InitiatingMessage : asn::sequence<3, 0, false, 0> -{ - static constexpr const char* name() {return "InitiatingMessage";} - using parent_t = asn::sequence<3, 0, false, 0>; - struct procedureCode_t : E2AP_ELEMENTARY_PROCEDURES::procedureCode_t - { - static constexpr const char* name() {return "procedureCode_t";} - using parent_t = typename E2AP_ELEMENTARY_PROCEDURES::procedureCode_t; - template bool decode(V& v, InitiatingMessage const& c) - { - return E2AP_ELEMENTARY_PROCEDURES::procedureCode_t::decode(v); - }; - template bool encode(V& v, InitiatingMessage const& c) const - { - return E2AP_ELEMENTARY_PROCEDURES::procedureCode_t::encode(v); - }; - }; - procedureCode_t& ref_procedureCode() {return procedureCode;} - procedureCode_t const& ref_procedureCode() const {return procedureCode;} - struct criticality_t : E2AP_ELEMENTARY_PROCEDURES::criticality_t - { - static constexpr const char* name() {return "criticality_t";} - using parent_t = typename E2AP_ELEMENTARY_PROCEDURES::criticality_t; - template bool decode(V& v, InitiatingMessage const& c) - { - return E2AP_ELEMENTARY_PROCEDURES::criticality_t::decode(c.procedureCode.get_index(), v); - }; - template bool encode(V& v, InitiatingMessage const& c) const - { - return E2AP_ELEMENTARY_PROCEDURES::criticality_t::encode(c.procedureCode.get_index(), v); - }; - }; - criticality_t& ref_criticality() {return criticality;} - criticality_t const& ref_criticality() const {return criticality;} - struct value_t : E2AP_ELEMENTARY_PROCEDURES::InitiatingMessage_t - { - static constexpr const char* name() {return "value_t";} - using parent_t = typename E2AP_ELEMENTARY_PROCEDURES::InitiatingMessage_t; - template bool decode(V& v, InitiatingMessage const& c) - { - return E2AP_ELEMENTARY_PROCEDURES::InitiatingMessage_t::decode(c.procedureCode.get_index(), v); - }; - template bool encode(V& v, InitiatingMessage const& c) const - { - return E2AP_ELEMENTARY_PROCEDURES::InitiatingMessage_t::encode(c.procedureCode.get_index(), v); - }; - }; - value_t& ref_value() {return value;} - value_t const& ref_value() const {return value;} - template void decode(V& v) - { - v(procedureCode); - v(criticality); - v(value); - - }; - template void encode(V& v) const - { - v(procedureCode); - v(criticality); - v(value); - - }; - void clear() - { - procedureCode.clear(); - criticality.clear(); - value.clear(); - - }; - private: - procedureCode_t procedureCode; - criticality_t criticality; - value_t value; - -}; -/* -SuccessfulOutcome ::= SEQUENCE { - procedureCode E2AP-ELEMENTARY-PROCEDURE.&procedureCode({E2AP-ELEMENTARY-PROCEDURES}), - criticality E2AP-ELEMENTARY-PROCEDURE.&criticality({E2AP-ELEMENTARY-PROCEDURES}{@procedureCode}), - value E2AP-ELEMENTARY-PROCEDURE.&SuccessfulOutcome({E2AP-ELEMENTARY-PROCEDURES}{@procedureCode}) -} -*/ - -struct SuccessfulOutcome : asn::sequence<3, 0, false, 0> -{ - static constexpr const char* name() {return "SuccessfulOutcome";} - using parent_t = asn::sequence<3, 0, false, 0>; - struct procedureCode_t : E2AP_ELEMENTARY_PROCEDURES::procedureCode_t - { - static constexpr const char* name() {return "procedureCode_t";} - using parent_t = typename E2AP_ELEMENTARY_PROCEDURES::procedureCode_t; - template bool decode(V& v, SuccessfulOutcome const& c) - { - return E2AP_ELEMENTARY_PROCEDURES::procedureCode_t::decode(v); - }; - template bool encode(V& v, SuccessfulOutcome const& c) const - { - return E2AP_ELEMENTARY_PROCEDURES::procedureCode_t::encode(v); - }; - }; - procedureCode_t& ref_procedureCode() {return procedureCode;} - procedureCode_t const& ref_procedureCode() const {return procedureCode;} - struct criticality_t : E2AP_ELEMENTARY_PROCEDURES::criticality_t - { - static constexpr const char* name() {return "criticality_t";} - using parent_t = typename E2AP_ELEMENTARY_PROCEDURES::criticality_t; - template bool decode(V& v, SuccessfulOutcome const& c) - { - return E2AP_ELEMENTARY_PROCEDURES::criticality_t::decode(c.procedureCode.get_index(), v); - }; - template bool encode(V& v, SuccessfulOutcome const& c) const - { - return E2AP_ELEMENTARY_PROCEDURES::criticality_t::encode(c.procedureCode.get_index(), v); - }; - }; - criticality_t& ref_criticality() {return criticality;} - criticality_t const& ref_criticality() const {return criticality;} - struct value_t : E2AP_ELEMENTARY_PROCEDURES::SuccessfulOutcome_t - { - static constexpr const char* name() {return "value_t";} - using parent_t = typename E2AP_ELEMENTARY_PROCEDURES::SuccessfulOutcome_t; - template bool decode(V& v, SuccessfulOutcome const& c) - { - return E2AP_ELEMENTARY_PROCEDURES::SuccessfulOutcome_t::decode(c.procedureCode.get_index(), v); - }; - template bool encode(V& v, SuccessfulOutcome const& c) const - { - return E2AP_ELEMENTARY_PROCEDURES::SuccessfulOutcome_t::encode(c.procedureCode.get_index(), v); - }; - }; - value_t& ref_value() {return value;} - value_t const& ref_value() const {return value;} - template void decode(V& v) - { - v(procedureCode); - v(criticality); - v(value); - - }; - template void encode(V& v) const - { - v(procedureCode); - v(criticality); - v(value); - - }; - void clear() - { - procedureCode.clear(); - criticality.clear(); - value.clear(); - - }; - private: - procedureCode_t procedureCode; - criticality_t criticality; - value_t value; - -}; -/* -UnsuccessfulOutcome ::= SEQUENCE { - procedureCode E2AP-ELEMENTARY-PROCEDURE.&procedureCode({E2AP-ELEMENTARY-PROCEDURES}), - criticality E2AP-ELEMENTARY-PROCEDURE.&criticality({E2AP-ELEMENTARY-PROCEDURES}{@procedureCode}), - value E2AP-ELEMENTARY-PROCEDURE.&UnsuccessfulOutcome({E2AP-ELEMENTARY-PROCEDURES}{@procedureCode}) -} -*/ - -struct UnsuccessfulOutcome : asn::sequence<3, 0, false, 0> -{ - static constexpr const char* name() {return "UnsuccessfulOutcome";} - using parent_t = asn::sequence<3, 0, false, 0>; - struct procedureCode_t : E2AP_ELEMENTARY_PROCEDURES::procedureCode_t - { - static constexpr const char* name() {return "procedureCode_t";} - using parent_t = typename E2AP_ELEMENTARY_PROCEDURES::procedureCode_t; - template bool decode(V& v, UnsuccessfulOutcome const& c) - { - return E2AP_ELEMENTARY_PROCEDURES::procedureCode_t::decode(v); - }; - template bool encode(V& v, UnsuccessfulOutcome const& c) const - { - return E2AP_ELEMENTARY_PROCEDURES::procedureCode_t::encode(v); - }; - }; - procedureCode_t& ref_procedureCode() {return procedureCode;} - procedureCode_t const& ref_procedureCode() const {return procedureCode;} - struct criticality_t : E2AP_ELEMENTARY_PROCEDURES::criticality_t - { - static constexpr const char* name() {return "criticality_t";} - using parent_t = typename E2AP_ELEMENTARY_PROCEDURES::criticality_t; - template bool decode(V& v, UnsuccessfulOutcome const& c) - { - return E2AP_ELEMENTARY_PROCEDURES::criticality_t::decode(c.procedureCode.get_index(), v); - }; - template bool encode(V& v, UnsuccessfulOutcome const& c) const - { - return E2AP_ELEMENTARY_PROCEDURES::criticality_t::encode(c.procedureCode.get_index(), v); - }; - }; - criticality_t& ref_criticality() {return criticality;} - criticality_t const& ref_criticality() const {return criticality;} - struct value_t : E2AP_ELEMENTARY_PROCEDURES::UnsuccessfulOutcome_t - { - static constexpr const char* name() {return "value_t";} - using parent_t = typename E2AP_ELEMENTARY_PROCEDURES::UnsuccessfulOutcome_t; - template bool decode(V& v, UnsuccessfulOutcome const& c) - { - return E2AP_ELEMENTARY_PROCEDURES::UnsuccessfulOutcome_t::decode(c.procedureCode.get_index(), v); - }; - template bool encode(V& v, UnsuccessfulOutcome const& c) const - { - return E2AP_ELEMENTARY_PROCEDURES::UnsuccessfulOutcome_t::encode(c.procedureCode.get_index(), v); - }; - }; - value_t& ref_value() {return value;} - value_t const& ref_value() const {return value;} - template void decode(V& v) - { - v(procedureCode); - v(criticality); - v(value); - - }; - template void encode(V& v) const - { - v(procedureCode); - v(criticality); - v(value); - - }; - void clear() - { - procedureCode.clear(); - criticality.clear(); - value.clear(); - - }; - private: - procedureCode_t procedureCode; - criticality_t criticality; - value_t value; - -}; -/* -E2AP-PDU ::= CHOICE { - initiatingMessage InitiatingMessage, - successfulOutcome SuccessfulOutcome, - unsuccessfulOutcome UnsuccessfulOutcome, - ... -} -*/ - -struct E2AP_PDU : asn::choice<3, 0, true> -{ - static constexpr const char* name() {return "E2AP-PDU";} - using parent_t = asn::choice<3, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 4;} - void set_unknown() { set_index(4); } - ~E2AP_PDU() {clear();} - struct initiatingMessage_t : InitiatingMessage - { - static constexpr const char* name() {return "initiatingMessage_t";} - using parent_t = InitiatingMessage; - - }; - struct successfulOutcome_t : SuccessfulOutcome - { - static constexpr const char* name() {return "successfulOutcome_t";} - using parent_t = SuccessfulOutcome; - - }; - struct unsuccessfulOutcome_t : UnsuccessfulOutcome - { - static constexpr const char* name() {return "unsuccessfulOutcome_t";} - using parent_t = UnsuccessfulOutcome; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - case 3: set_index(3); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - case 3: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - - } - initiatingMessage_t& select_initiatingMessage() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - initiatingMessage_t const* get_initiatingMessage() const { if(get_index() == 1) { return &var.as();} return nullptr; } - successfulOutcome_t& select_successfulOutcome() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - successfulOutcome_t const* get_successfulOutcome() const { if(get_index() == 2) { return &var.as();} return nullptr; } - unsuccessfulOutcome_t& select_unsuccessfulOutcome() { if(get_index() != 3) { clear(); set_index(3); return var.build();} return var.as();} - unsuccessfulOutcome_t const* get_unsuccessfulOutcome() const { if(get_index() == 3) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(initiatingMessage_t)]; - char dummy2[sizeof(successfulOutcome_t)]; - char dummy3[sizeof(unsuccessfulOutcome_t)]; - - }; - asn::variant var; - index_type index {0}; -}; diff --git a/e2sim/previous/e2apv1sim/ricsim/src/ASN1/generated/X2AP-CommonDataTypes.hpp b/e2sim/previous/e2apv1sim/ricsim/src/ASN1/generated/X2AP-CommonDataTypes.hpp deleted file mode 100644 index 0e1bb53..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/ASN1/generated/X2AP-CommonDataTypes.hpp +++ /dev/null @@ -1,188 +0,0 @@ -/***************************************************************************** -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -#pragma once - -#include "asn/asn.hpp" -static_assert(ASN_API_VERSION_MAJOR == 5, "re-generate the ASN parser's code using 'make regen-asn' (do not use -j option)"); - - -/* -Criticality ::= ENUMERATED { reject, ignore, notify } -*/ - -struct Criticality : asn::enumerated<3, 0, false> -{ - static constexpr const char* name() {return "Criticality";} - using parent_t = asn::enumerated<3, 0, false>; - typedef enum { - reject - ,ignore - ,notify - } index_t; - -}; - -/* -Presence ::= ENUMERATED { optional, conditional, mandatory } -*/ - -struct Presence : asn::enumerated<3, 0, false> -{ - static constexpr const char* name() {return "Presence";} - using parent_t = asn::enumerated<3, 0, false>; - typedef enum { - optional - ,conditional - ,mandatory - } index_t; - -}; - -/* -maxPrivateIEs INTEGER ::= 65535 -*/ - -constexpr int64_t maxPrivateIEs = 65535; -/* -PrivateIE-ID ::= CHOICE { - local INTEGER (0.. maxPrivateIEs), - global OBJECT IDENTIFIER -} -*/ - -struct PrivateIE_ID : asn::choice<2, 0, false> -{ - static constexpr const char* name() {return "PrivateIE-ID";} - using parent_t = asn::choice<2, 0, false>; - index_type get_index() const {return index;} - ~PrivateIE_ID() {clear();} - struct local_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "local_t";} - using parent_t = asn::integer<>; - - }; - - struct global_t : asn::oid - { - static constexpr const char* name() {return "global_t";} - using parent_t = asn::oid; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - local_t& select_local() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - local_t const* get_local() const { if(get_index() == 1) { return &var.as();} return nullptr; } - global_t& select_global() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - global_t const* get_global() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(local_t)]; - char dummy2[sizeof(global_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -ProcedureCode ::= INTEGER (0..255) -*/ - -struct ProcedureCode : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "ProcedureCode";} - using parent_t = asn::integer<>; - -}; - -/* -maxProtocolIEs INTEGER ::= 65535 -*/ - -constexpr int64_t maxProtocolIEs = 65535; -/* -ProtocolIE-ID ::= INTEGER (0..maxProtocolIEs) -*/ - -struct ProtocolIE_ID : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "ProtocolIE-ID";} - using parent_t = asn::integer<>; - -}; - -/* -TriggeringMessage ::= ENUMERATED { initiating-message, successful-outcome, unsuccessful-outcome} -*/ - -struct TriggeringMessage : asn::enumerated<3, 0, false> -{ - static constexpr const char* name() {return "TriggeringMessage";} - using parent_t = asn::enumerated<3, 0, false>; - typedef enum { - initiating_message - ,successful_outcome - ,unsuccessful_outcome - } index_t; - -}; - -/* -maxProtocolExtensions INTEGER ::= 65535 -*/ - -constexpr int64_t maxProtocolExtensions = 65535; diff --git a/e2sim/previous/e2apv1sim/ricsim/src/ASN1/generated/X2AP-Constants.hpp b/e2sim/previous/e2apv1sim/ricsim/src/ASN1/generated/X2AP-Constants.hpp deleted file mode 100644 index 28be45d..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/ASN1/generated/X2AP-Constants.hpp +++ /dev/null @@ -1,2054 +0,0 @@ -/***************************************************************************** -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -#pragma once - -#include "asn/asn.hpp" -static_assert(ASN_API_VERSION_MAJOR == 5, "re-generate the ASN parser's code using 'make regen-asn' (do not use -j option)"); - -#include "X2AP-CommonDataTypes.hpp" - -/* -id-ABS-Status ProtocolIE-ID ::= 63 -*/ - -constexpr int64_t id_ABS_Status = 63; -/* -id-ABSInformation ProtocolIE-ID ::= 61 -*/ - -constexpr int64_t id_ABSInformation = 61; -/* -id-ActivatedCellList ProtocolIE-ID ::= 58 -*/ - -constexpr int64_t id_ActivatedCellList = 58; -/* -id-ActivatedNRCellList ProtocolIE-ID ::= 268 -*/ - -constexpr int64_t id_ActivatedNRCellList = 268; -/* -id-ActivationID ProtocolIE-ID ::= 256 -*/ - -constexpr int64_t id_ActivationID = 256; -/* -id-AdditionalSpecialSubframe-Info ProtocolIE-ID ::= 97 -*/ - -constexpr int64_t id_AdditionalSpecialSubframe_Info = 97; -/* -id-AdditionalSpecialSubframeExtension-Info ProtocolIE-ID ::= 179 -*/ - -constexpr int64_t id_AdditionalSpecialSubframeExtension_Info = 179; -/* -id-AdmittedSplitSRBs ProtocolIE-ID ::= 212 -*/ - -constexpr int64_t id_AdmittedSplitSRBs = 212; -/* -id-AdmittedSplitSRBsrelease ProtocolIE-ID ::= 281 -*/ - -constexpr int64_t id_AdmittedSplitSRBsrelease = 281; -/* -id-AerialUEsubscriptionInformation ProtocolIE-ID ::= 277 -*/ - -constexpr int64_t id_AerialUEsubscriptionInformation = 277; -/* -id-BandwidthReducedSI ProtocolIE-ID ::= 180 -*/ - -constexpr int64_t id_BandwidthReducedSI = 180; -/* -id-BearerType ProtocolIE-ID ::= 171 -*/ - -constexpr int64_t id_BearerType = 171; -/* -id-BluetoothMeasurementConfiguration ProtocolIE-ID ::= 303 -*/ - -constexpr int64_t id_BluetoothMeasurementConfiguration = 303; -/* -id-CNTypeRestrictions ProtocolIE-ID ::= 301 -*/ - -constexpr int64_t id_CNTypeRestrictions = 301; -/* -id-CSG-Id ProtocolIE-ID ::= 70 -*/ - -constexpr int64_t id_CSG_Id = 70; -/* -id-CSGMembershipStatus ProtocolIE-ID ::= 71 -*/ - -constexpr int64_t id_CSGMembershipStatus = 71; -/* -id-CSIReportList ProtocolIE-ID ::= 146 -*/ - -constexpr int64_t id_CSIReportList = 146; -/* -id-Cause ProtocolIE-ID ::= 5 -*/ - -constexpr int64_t id_Cause = 5; -/* -id-CellAssistanceInformation ProtocolIE-ID ::= 251 -*/ - -constexpr int64_t id_CellAssistanceInformation = 251; -/* -id-CellInformation ProtocolIE-ID ::= 6 -*/ - -constexpr int64_t id_CellInformation = 6; -/* -id-CellInformation-Item ProtocolIE-ID ::= 7 -*/ - -constexpr int64_t id_CellInformation_Item = 7; -/* -id-CellMeasurementResult ProtocolIE-ID ::= 32 -*/ - -constexpr int64_t id_CellMeasurementResult = 32; -/* -id-CellMeasurementResult-Item ProtocolIE-ID ::= 33 -*/ - -constexpr int64_t id_CellMeasurementResult_Item = 33; -/* -id-CellReportingIndicator ProtocolIE-ID ::= 170 -*/ - -constexpr int64_t id_CellReportingIndicator = 170; -/* -id-CellToReport ProtocolIE-ID ::= 29 -*/ - -constexpr int64_t id_CellToReport = 29; -/* -id-CellToReport-Item ProtocolIE-ID ::= 31 -*/ - -constexpr int64_t id_CellToReport_Item = 31; -/* -id-CoMPInformation ProtocolIE-ID ::= 108 -*/ - -constexpr int64_t id_CoMPInformation = 108; -/* -id-CompleteFailureCauseInformation-Item ProtocolIE-ID ::= 69 -*/ - -constexpr int64_t id_CompleteFailureCauseInformation_Item = 69; -/* -id-CompleteFailureCauseInformation-List ProtocolIE-ID ::= 68 -*/ - -constexpr int64_t id_CompleteFailureCauseInformation_List = 68; -/* -id-CompositeAvailableCapacityGroup ProtocolIE-ID ::= 42 -*/ - -constexpr int64_t id_CompositeAvailableCapacityGroup = 42; -/* -id-Correlation-ID ProtocolIE-ID ::= 166 -*/ - -constexpr int64_t id_Correlation_ID = 166; -/* -id-CoverageModificationList ProtocolIE-ID ::= 143 -*/ - -constexpr int64_t id_CoverageModificationList = 143; -/* -id-CriticalityDiagnostics ProtocolIE-ID ::= 17 -*/ - -constexpr int64_t id_CriticalityDiagnostics = 17; -/* -id-DL-EARFCNExtension ProtocolIE-ID ::= 96 -*/ - -constexpr int64_t id_DL_EARFCNExtension = 96; -/* -id-DL-scheduling-PDCCH-CCE-usage ProtocolIE-ID ::= 193 -*/ - -constexpr int64_t id_DL_scheduling_PDCCH_CCE_usage = 193; -/* -id-DLCOUNTValueExtended ProtocolIE-ID ::= 93 -*/ - -constexpr int64_t id_DLCOUNTValueExtended = 93; -/* -id-DLCOUNTValuePDCP-SNlength18 ProtocolIE-ID ::= 152 -*/ - -constexpr int64_t id_DLCOUNTValuePDCP_SNlength18 = 152; -/* -id-DataTrafficResourceIndication ProtocolIE-ID ::= 287 -*/ - -constexpr int64_t id_DataTrafficResourceIndication = 287; -/* -id-DeactivationIndication ProtocolIE-ID ::= 59 -*/ - -constexpr int64_t id_DeactivationIndication = 59; -/* -id-DownlinkPacketLossRate ProtocolIE-ID ::= 273 -*/ - -constexpr int64_t id_DownlinkPacketLossRate = 273; -/* -id-DynamicDLTransmissionInformation ProtocolIE-ID ::= 106 -*/ - -constexpr int64_t id_DynamicDLTransmissionInformation = 106; -/* -id-E-RAB-Item ProtocolIE-ID ::= 2 -*/ - -constexpr int64_t id_E_RAB_Item = 2; -/* -id-E-RABUsageReport-Item ProtocolIE-ID ::= 263 -*/ - -constexpr int64_t id_E_RABUsageReport_Item = 263; -/* -id-E-RABs-Admitted-Item ProtocolIE-ID ::= 0 -*/ - -constexpr int64_t id_E_RABs_Admitted_Item = 0; -/* -id-E-RABs-Admitted-List ProtocolIE-ID ::= 1 -*/ - -constexpr int64_t id_E_RABs_Admitted_List = 1; -/* -id-E-RABs-Admitted-ToBeAdded-Item ProtocolIE-ID ::= 121 -*/ - -constexpr int64_t id_E_RABs_Admitted_ToBeAdded_Item = 121; -/* -id-E-RABs-Admitted-ToBeAdded-List ProtocolIE-ID ::= 120 -*/ - -constexpr int64_t id_E_RABs_Admitted_ToBeAdded_List = 120; -/* -id-E-RABs-Admitted-ToBeAdded-ModAckItem ProtocolIE-ID ::= 131 -*/ - -constexpr int64_t id_E_RABs_Admitted_ToBeAdded_ModAckItem = 131; -/* -id-E-RABs-Admitted-ToBeAdded-ModAckList ProtocolIE-ID ::= 128 -*/ - -constexpr int64_t id_E_RABs_Admitted_ToBeAdded_ModAckList = 128; -/* -id-E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item ProtocolIE-ID ::= 213 -*/ - -constexpr int64_t id_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item = 213; -/* -id-E-RABs-Admitted-ToBeAdded-SgNBAddReqAckList ProtocolIE-ID ::= 210 -*/ - -constexpr int64_t id_E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList = 210; -/* -id-E-RABs-Admitted-ToBeAdded-SgNBModAck-Item ProtocolIE-ID ::= 222 -*/ - -constexpr int64_t id_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item = 222; -/* -id-E-RABs-Admitted-ToBeAdded-SgNBModAckList ProtocolIE-ID ::= 219 -*/ - -constexpr int64_t id_E_RABs_Admitted_ToBeAdded_SgNBModAckList = 219; -/* -id-E-RABs-Admitted-ToBeModified-ModAckItem ProtocolIE-ID ::= 132 -*/ - -constexpr int64_t id_E_RABs_Admitted_ToBeModified_ModAckItem = 132; -/* -id-E-RABs-Admitted-ToBeModified-ModAckList ProtocolIE-ID ::= 129 -*/ - -constexpr int64_t id_E_RABs_Admitted_ToBeModified_ModAckList = 129; -/* -id-E-RABs-Admitted-ToBeModified-SgNBModAck-Item ProtocolIE-ID ::= 223 -*/ - -constexpr int64_t id_E_RABs_Admitted_ToBeModified_SgNBModAck_Item = 223; -/* -id-E-RABs-Admitted-ToBeModified-SgNBModAckList ProtocolIE-ID ::= 220 -*/ - -constexpr int64_t id_E_RABs_Admitted_ToBeModified_SgNBModAckList = 220; -/* -id-E-RABs-Admitted-ToBeReleased-ModAckItem ProtocolIE-ID ::= 133 -*/ - -constexpr int64_t id_E_RABs_Admitted_ToBeReleased_ModAckItem = 133; -/* -id-E-RABs-Admitted-ToBeReleased-ModAckList ProtocolIE-ID ::= 130 -*/ - -constexpr int64_t id_E_RABs_Admitted_ToBeReleased_ModAckList = 130; -/* -id-E-RABs-Admitted-ToBeReleased-SgNBModAck-Item ProtocolIE-ID ::= 224 -*/ - -constexpr int64_t id_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item = 224; -/* -id-E-RABs-Admitted-ToBeReleased-SgNBModAckList ProtocolIE-ID ::= 221 -*/ - -constexpr int64_t id_E_RABs_Admitted_ToBeReleased_SgNBModAckList = 221; -/* -id-E-RABs-Admitted-ToBeReleased-SgNBRelReqAck-Item ProtocolIE-ID ::= 319 -*/ - -constexpr int64_t id_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item = 319; -/* -id-E-RABs-Admitted-ToBeReleased-SgNBRelReqAckList ProtocolIE-ID ::= 318 -*/ - -constexpr int64_t id_E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList = 318; -/* -id-E-RABs-AdmittedToBeModified-SgNBModConf-Item ProtocolIE-ID ::= 295 -*/ - -constexpr int64_t id_E_RABs_AdmittedToBeModified_SgNBModConf_Item = 295; -/* -id-E-RABs-AdmittedToBeModified-SgNBModConfList ProtocolIE-ID ::= 294 -*/ - -constexpr int64_t id_E_RABs_AdmittedToBeModified_SgNBModConfList = 294; -/* -id-E-RABs-DataForwardingAddress-Item ProtocolIE-ID ::= 308 -*/ - -constexpr int64_t id_E_RABs_DataForwardingAddress_Item = 308; -/* -id-E-RABs-DataForwardingAddress-List ProtocolIE-ID ::= 307 -*/ - -constexpr int64_t id_E_RABs_DataForwardingAddress_List = 307; -/* -id-E-RABs-NotAdmitted-List ProtocolIE-ID ::= 3 -*/ - -constexpr int64_t id_E_RABs_NotAdmitted_List = 3; -/* -id-E-RABs-SubjectToCounterCheck-List ProtocolIE-ID ::= 141 -*/ - -constexpr int64_t id_E_RABs_SubjectToCounterCheck_List = 141; -/* -id-E-RABs-SubjectToCounterCheckItem ProtocolIE-ID ::= 142 -*/ - -constexpr int64_t id_E_RABs_SubjectToCounterCheckItem = 142; -/* -id-E-RABs-SubjectToSgNBCounterCheck-Item ProtocolIE-ID ::= 236 -*/ - -constexpr int64_t id_E_RABs_SubjectToSgNBCounterCheck_Item = 236; -/* -id-E-RABs-SubjectToSgNBCounterCheck-List ProtocolIE-ID ::= 235 -*/ - -constexpr int64_t id_E_RABs_SubjectToSgNBCounterCheck_List = 235; -/* -id-E-RABs-SubjectToStatusTransfer-Item ProtocolIE-ID ::= 19 -*/ - -constexpr int64_t id_E_RABs_SubjectToStatusTransfer_Item = 19; -/* -id-E-RABs-SubjectToStatusTransfer-List ProtocolIE-ID ::= 18 -*/ - -constexpr int64_t id_E_RABs_SubjectToStatusTransfer_List = 18; -/* -id-E-RABs-ToBeAdded-Item ProtocolIE-ID ::= 118 -*/ - -constexpr int64_t id_E_RABs_ToBeAdded_Item = 118; -/* -id-E-RABs-ToBeAdded-List ProtocolIE-ID ::= 117 -*/ - -constexpr int64_t id_E_RABs_ToBeAdded_List = 117; -/* -id-E-RABs-ToBeAdded-ModReqItem ProtocolIE-ID ::= 125 -*/ - -constexpr int64_t id_E_RABs_ToBeAdded_ModReqItem = 125; -/* -id-E-RABs-ToBeAdded-SgNBAddReq-Item ProtocolIE-ID ::= 209 -*/ - -constexpr int64_t id_E_RABs_ToBeAdded_SgNBAddReq_Item = 209; -/* -id-E-RABs-ToBeAdded-SgNBAddReqList ProtocolIE-ID ::= 205 -*/ - -constexpr int64_t id_E_RABs_ToBeAdded_SgNBAddReqList = 205; -/* -id-E-RABs-ToBeAdded-SgNBModReq-Item ProtocolIE-ID ::= 216 -*/ - -constexpr int64_t id_E_RABs_ToBeAdded_SgNBModReq_Item = 216; -/* -id-E-RABs-ToBeModified-ModReqItem ProtocolIE-ID ::= 126 -*/ - -constexpr int64_t id_E_RABs_ToBeModified_ModReqItem = 126; -/* -id-E-RABs-ToBeModified-SgNBModReq-Item ProtocolIE-ID ::= 217 -*/ - -constexpr int64_t id_E_RABs_ToBeModified_SgNBModReq_Item = 217; -/* -id-E-RABs-ToBeModified-SgNBModReqd-Item ProtocolIE-ID ::= 228 -*/ - -constexpr int64_t id_E_RABs_ToBeModified_SgNBModReqd_Item = 228; -/* -id-E-RABs-ToBeModified-SgNBModReqdList ProtocolIE-ID ::= 226 -*/ - -constexpr int64_t id_E_RABs_ToBeModified_SgNBModReqdList = 226; -/* -id-E-RABs-ToBeReleased-List-RelConf ProtocolIE-ID ::= 139 -*/ - -constexpr int64_t id_E_RABs_ToBeReleased_List_RelConf = 139; -/* -id-E-RABs-ToBeReleased-List-RelReq ProtocolIE-ID ::= 137 -*/ - -constexpr int64_t id_E_RABs_ToBeReleased_List_RelReq = 137; -/* -id-E-RABs-ToBeReleased-ModReqItem ProtocolIE-ID ::= 127 -*/ - -constexpr int64_t id_E_RABs_ToBeReleased_ModReqItem = 127; -/* -id-E-RABs-ToBeReleased-ModReqd ProtocolIE-ID ::= 134 -*/ - -constexpr int64_t id_E_RABs_ToBeReleased_ModReqd = 134; -/* -id-E-RABs-ToBeReleased-ModReqdItem ProtocolIE-ID ::= 135 -*/ - -constexpr int64_t id_E_RABs_ToBeReleased_ModReqdItem = 135; -/* -id-E-RABs-ToBeReleased-RelConfItem ProtocolIE-ID ::= 140 -*/ - -constexpr int64_t id_E_RABs_ToBeReleased_RelConfItem = 140; -/* -id-E-RABs-ToBeReleased-RelReqItem ProtocolIE-ID ::= 138 -*/ - -constexpr int64_t id_E_RABs_ToBeReleased_RelReqItem = 138; -/* -id-E-RABs-ToBeReleased-SgNBChaConf-Item ProtocolIE-ID ::= 230 -*/ - -constexpr int64_t id_E_RABs_ToBeReleased_SgNBChaConf_Item = 230; -/* -id-E-RABs-ToBeReleased-SgNBChaConfList ProtocolIE-ID ::= 229 -*/ - -constexpr int64_t id_E_RABs_ToBeReleased_SgNBChaConfList = 229; -/* -id-E-RABs-ToBeReleased-SgNBModReq-Item ProtocolIE-ID ::= 218 -*/ - -constexpr int64_t id_E_RABs_ToBeReleased_SgNBModReq_Item = 218; -/* -id-E-RABs-ToBeReleased-SgNBModReqd-Item ProtocolIE-ID ::= 227 -*/ - -constexpr int64_t id_E_RABs_ToBeReleased_SgNBModReqd_Item = 227; -/* -id-E-RABs-ToBeReleased-SgNBModReqdList ProtocolIE-ID ::= 225 -*/ - -constexpr int64_t id_E_RABs_ToBeReleased_SgNBModReqdList = 225; -/* -id-E-RABs-ToBeReleased-SgNBRelConf-Item ProtocolIE-ID ::= 234 -*/ - -constexpr int64_t id_E_RABs_ToBeReleased_SgNBRelConf_Item = 234; -/* -id-E-RABs-ToBeReleased-SgNBRelConfList ProtocolIE-ID ::= 233 -*/ - -constexpr int64_t id_E_RABs_ToBeReleased_SgNBRelConfList = 233; -/* -id-E-RABs-ToBeReleased-SgNBRelReq-Item ProtocolIE-ID ::= 232 -*/ - -constexpr int64_t id_E_RABs_ToBeReleased_SgNBRelReq_Item = 232; -/* -id-E-RABs-ToBeReleased-SgNBRelReqList ProtocolIE-ID ::= 231 -*/ - -constexpr int64_t id_E_RABs_ToBeReleased_SgNBRelReqList = 231; -/* -id-E-RABs-ToBeReleased-SgNBRelReqd-Item ProtocolIE-ID ::= 321 -*/ - -constexpr int64_t id_E_RABs_ToBeReleased_SgNBRelReqd_Item = 321; -/* -id-E-RABs-ToBeReleased-SgNBRelReqdList ProtocolIE-ID ::= 320 -*/ - -constexpr int64_t id_E_RABs_ToBeReleased_SgNBRelReqdList = 320; -/* -id-E-RABs-ToBeSetup-Item ProtocolIE-ID ::= 4 -*/ - -constexpr int64_t id_E_RABs_ToBeSetup_Item = 4; -/* -id-E-RABs-ToBeSetupRetrieve-Item ProtocolIE-ID ::= 174 -*/ - -constexpr int64_t id_E_RABs_ToBeSetupRetrieve_Item = 174; -/* -id-ECGI ProtocolIE-ID ::= 316 -*/ - -constexpr int64_t id_ECGI = 316; -/* -id-ENB1-Cell-ID ProtocolIE-ID ::= 43 -*/ - -constexpr int64_t id_ENB1_Cell_ID = 43; -/* -id-ENB1-Measurement-ID ProtocolIE-ID ::= 39 -*/ - -constexpr int64_t id_ENB1_Measurement_ID = 39; -/* -id-ENB1-Mobility-Parameters ProtocolIE-ID ::= 46 -*/ - -constexpr int64_t id_ENB1_Mobility_Parameters = 46; -/* -id-ENB2-Cell-ID ProtocolIE-ID ::= 44 -*/ - -constexpr int64_t id_ENB2_Cell_ID = 44; -/* -id-ENB2-Measurement-ID ProtocolIE-ID ::= 40 -*/ - -constexpr int64_t id_ENB2_Measurement_ID = 40; -/* -id-ENB2-Mobility-Parameters-Modification-Range ProtocolIE-ID ::= 47 -*/ - -constexpr int64_t id_ENB2_Mobility_Parameters_Modification_Range = 47; -/* -id-ENB2-Proposed-Mobility-Parameters ProtocolIE-ID ::= 45 -*/ - -constexpr int64_t id_ENB2_Proposed_Mobility_Parameters = 45; -/* -id-ERABActivityNotifyItemList ProtocolIE-ID ::= 297 -*/ - -constexpr int64_t id_ERABActivityNotifyItemList = 297; -/* -id-ExpectedUEBehaviour ProtocolIE-ID ::= 104 -*/ - -constexpr int64_t id_ExpectedUEBehaviour = 104; -/* -id-ExtendedULInterferenceOverloadInfo ProtocolIE-ID ::= 100 -*/ - -constexpr int64_t id_ExtendedULInterferenceOverloadInfo = 100; -/* -id-FailureCellCRNTI ProtocolIE-ID ::= 50 -*/ - -constexpr int64_t id_FailureCellCRNTI = 50; -/* -id-FailureCellECGI ProtocolIE-ID ::= 53 -*/ - -constexpr int64_t id_FailureCellECGI = 53; -/* -id-FailureCellPCI ProtocolIE-ID ::= 48 -*/ - -constexpr int64_t id_FailureCellPCI = 48; -/* -id-FreqBandIndicatorPriority ProtocolIE-ID ::= 160 -*/ - -constexpr int64_t id_FreqBandIndicatorPriority = 160; -/* -id-GNBOverloadInformation ProtocolIE-ID ::= 310 -*/ - -constexpr int64_t id_GNBOverloadInformation = 310; -/* -id-GUGroupIDList ProtocolIE-ID ::= 24 -*/ - -constexpr int64_t id_GUGroupIDList = 24; -/* -id-GUGroupIDToAddList ProtocolIE-ID ::= 34 -*/ - -constexpr int64_t id_GUGroupIDToAddList = 34; -/* -id-GUGroupIDToDeleteList ProtocolIE-ID ::= 35 -*/ - -constexpr int64_t id_GUGroupIDToDeleteList = 35; -/* -id-GUMMEI-ID ProtocolIE-ID ::= 23 -*/ - -constexpr int64_t id_GUMMEI_ID = 23; -/* -id-GW-TransportLayerAddress ProtocolIE-ID ::= 165 -*/ - -constexpr int64_t id_GW_TransportLayerAddress = 165; -/* -id-GlobalENB-ID ProtocolIE-ID ::= 21 -*/ - -constexpr int64_t id_GlobalENB_ID = 21; -/* -id-Globalen-gNB-ID ProtocolIE-ID ::= 252 -*/ - -constexpr int64_t id_Globalen_gNB_ID = 252; -/* -id-HO-cause ProtocolIE-ID ::= 80 -*/ - -constexpr int64_t id_HO_cause = 80; -/* -id-HandoverReportType ProtocolIE-ID ::= 54 -*/ - -constexpr int64_t id_HandoverReportType = 54; -/* -id-HandoverRestrictionList ProtocolIE-ID ::= 240 -*/ - -constexpr int64_t id_HandoverRestrictionList = 240; -/* -id-InitiatingNodeType-EndcConfigUpdate ProtocolIE-ID ::= 245 -*/ - -constexpr int64_t id_InitiatingNodeType_EndcConfigUpdate = 245; -/* -id-InitiatingNodeType-EndcX2Removal ProtocolIE-ID ::= 298 -*/ - -constexpr int64_t id_InitiatingNodeType_EndcX2Removal = 298; -/* -id-InitiatingNodeType-EndcX2Setup ProtocolIE-ID ::= 244 -*/ - -constexpr int64_t id_InitiatingNodeType_EndcX2Setup = 244; -/* -id-InitiatingNodeType-EutranrCellResourceCoordination ProtocolIE-ID ::= 285 -*/ - -constexpr int64_t id_InitiatingNodeType_EutranrCellResourceCoordination = 285; -/* -id-IntendedULDLConfiguration ProtocolIE-ID ::= 99 -*/ - -constexpr int64_t id_IntendedULDLConfiguration = 99; -/* -id-InvokeIndication ProtocolIE-ID ::= 62 -*/ - -constexpr int64_t id_InvokeIndication = 62; -/* -id-LHN-ID ProtocolIE-ID ::= 159 -*/ - -constexpr int64_t id_LHN_ID = 159; -/* -id-ListofEUTRACellsinEUTRACoordinationReq ProtocolIE-ID ::= 289 -*/ - -constexpr int64_t id_ListofEUTRACellsinEUTRACoordinationReq = 289; -/* -id-ListofEUTRACellsinEUTRACoordinationResp ProtocolIE-ID ::= 290 -*/ - -constexpr int64_t id_ListofEUTRACellsinEUTRACoordinationResp = 290; -/* -id-ListofEUTRACellsinNRCoordinationReq ProtocolIE-ID ::= 291 -*/ - -constexpr int64_t id_ListofEUTRACellsinNRCoordinationReq = 291; -/* -id-ListofNRCellsinNRCoordinationReq ProtocolIE-ID ::= 292 -*/ - -constexpr int64_t id_ListofNRCellsinNRCoordinationReq = 292; -/* -id-ListofNRCellsinNRCoordinationResp ProtocolIE-ID ::= 293 -*/ - -constexpr int64_t id_ListofNRCellsinNRCoordinationResp = 293; -/* -id-M3Configuration ProtocolIE-ID ::= 85 -*/ - -constexpr int64_t id_M3Configuration = 85; -/* -id-M4Configuration ProtocolIE-ID ::= 86 -*/ - -constexpr int64_t id_M4Configuration = 86; -/* -id-M5Configuration ProtocolIE-ID ::= 87 -*/ - -constexpr int64_t id_M5Configuration = 87; -/* -id-M6Configuration ProtocolIE-ID ::= 161 -*/ - -constexpr int64_t id_M6Configuration = 161; -/* -id-M7Configuration ProtocolIE-ID ::= 162 -*/ - -constexpr int64_t id_M7Configuration = 162; -/* -id-MBMS-Service-Area-List ProtocolIE-ID ::= 79 -*/ - -constexpr int64_t id_MBMS_Service_Area_List = 79; -/* -id-MBSFN-Subframe-Info ProtocolIE-ID ::= 56 -*/ - -constexpr int64_t id_MBSFN_Subframe_Info = 56; -/* -id-MDT-Location-Info ProtocolIE-ID ::= 88 -*/ - -constexpr int64_t id_MDT_Location_Info = 88; -/* -id-MDTConfiguration ProtocolIE-ID ::= 72 -*/ - -constexpr int64_t id_MDTConfiguration = 72; -/* -id-MakeBeforeBreakIndicator ProtocolIE-ID ::= 181 -*/ - -constexpr int64_t id_MakeBeforeBreakIndicator = 181; -/* -id-ManagementBasedMDTPLMNList ProtocolIE-ID ::= 89 -*/ - -constexpr int64_t id_ManagementBasedMDTPLMNList = 89; -/* -id-ManagementBasedMDTallowed ProtocolIE-ID ::= 74 -*/ - -constexpr int64_t id_ManagementBasedMDTallowed = 74; -/* -id-Masked-IMEISV ProtocolIE-ID ::= 98 -*/ - -constexpr int64_t id_Masked_IMEISV = 98; -/* -id-MeNB-UE-X2AP-ID ProtocolIE-ID ::= 111 -*/ - -constexpr int64_t id_MeNB_UE_X2AP_ID = 111; -/* -id-MeNB-UE-X2AP-ID-Extension ProtocolIE-ID ::= 157 -*/ - -constexpr int64_t id_MeNB_UE_X2AP_ID_Extension = 157; -/* -id-MeNBCell-ID ProtocolIE-ID ::= 279 -*/ - -constexpr int64_t id_MeNBCell_ID = 279; -/* -id-MeNBCoordinationAssistanceInformation ProtocolIE-ID ::= 323 -*/ - -constexpr int64_t id_MeNBCoordinationAssistanceInformation = 323; -/* -id-MeNBResourceCoordinationInformation ProtocolIE-ID ::= 257 -*/ - -constexpr int64_t id_MeNBResourceCoordinationInformation = 257; -/* -id-MeNBtoSeNBContainer ProtocolIE-ID ::= 119 -*/ - -constexpr int64_t id_MeNBtoSeNBContainer = 119; -/* -id-MeNBtoSgNBContainer ProtocolIE-ID ::= 206 -*/ - -constexpr int64_t id_MeNBtoSgNBContainer = 206; -/* -id-Measurement-ID ProtocolIE-ID ::= 37 -*/ - -constexpr int64_t id_Measurement_ID = 37; -/* -id-MeasurementFailureCause-Item ProtocolIE-ID ::= 67 -*/ - -constexpr int64_t id_MeasurementFailureCause_Item = 67; -/* -id-MeasurementInitiationResult-Item ProtocolIE-ID ::= 66 -*/ - -constexpr int64_t id_MeasurementInitiationResult_Item = 66; -/* -id-MeasurementInitiationResult-List ProtocolIE-ID ::= 65 -*/ - -constexpr int64_t id_MeasurementInitiationResult_List = 65; -/* -id-MobilityInformation ProtocolIE-ID ::= 82 -*/ - -constexpr int64_t id_MobilityInformation = 82; -/* -id-MultibandInfoList ProtocolIE-ID ::= 84 -*/ - -constexpr int64_t id_MultibandInfoList = 84; -/* -id-NRCGI ProtocolIE-ID ::= 322 -*/ - -constexpr int64_t id_NRCGI = 322; -/* -id-NRS-NSSS-PowerOffset ProtocolIE-ID ::= 282 -*/ - -constexpr int64_t id_NRS_NSSS_PowerOffset = 282; -/* -id-NRUESecurityCapabilities ProtocolIE-ID ::= 248 -*/ - -constexpr int64_t id_NRUESecurityCapabilities = 248; -/* -id-NRrestrictionin5GS ProtocolIE-ID ::= 305 -*/ - -constexpr int64_t id_NRrestrictionin5GS = 305; -/* -id-NRrestrictioninEPSasSecondaryRAT ProtocolIE-ID ::= 202 -*/ - -constexpr int64_t id_NRrestrictioninEPSasSecondaryRAT = 202; -/* -id-NSSS-NumOccasionDifferentPrecoder ProtocolIE-ID ::= 283 -*/ - -constexpr int64_t id_NSSS_NumOccasionDifferentPrecoder = 283; -/* -id-NeighbourTAC ProtocolIE-ID ::= 76 -*/ - -constexpr int64_t id_NeighbourTAC = 76; -/* -id-New-eNB-UE-X2AP-ID ProtocolIE-ID ::= 9 -*/ - -constexpr int64_t id_New_eNB_UE_X2AP_ID = 9; -/* -id-New-eNB-UE-X2AP-ID-Extension ProtocolIE-ID ::= 155 -*/ - -constexpr int64_t id_New_eNB_UE_X2AP_ID_Extension = 155; -/* -id-NewEUTRANCellIdentifier ProtocolIE-ID ::= 175 -*/ - -constexpr int64_t id_NewEUTRANCellIdentifier = 175; -/* -id-Number-of-Antennaports ProtocolIE-ID ::= 41 -*/ - -constexpr int64_t id_Number_of_Antennaports = 41; -/* -id-OffsetOfNbiotChannelNumberToDL-EARFCN ProtocolIE-ID ::= 177 -*/ - -constexpr int64_t id_OffsetOfNbiotChannelNumberToDL_EARFCN = 177; -/* -id-OffsetOfNbiotChannelNumberToUL-EARFCN ProtocolIE-ID ::= 178 -*/ - -constexpr int64_t id_OffsetOfNbiotChannelNumberToUL_EARFCN = 178; -/* -id-Old-SgNB-UE-X2AP-ID ProtocolIE-ID ::= 264 -*/ - -constexpr int64_t id_Old_SgNB_UE_X2AP_ID = 264; -/* -id-Old-eNB-UE-X2AP-ID ProtocolIE-ID ::= 10 -*/ - -constexpr int64_t id_Old_eNB_UE_X2AP_ID = 10; -/* -id-Old-eNB-UE-X2AP-ID-Extension ProtocolIE-ID ::= 156 -*/ - -constexpr int64_t id_Old_eNB_UE_X2AP_ID_Extension = 156; -/* -id-PDCPChangeIndication ProtocolIE-ID ::= 249 -*/ - -constexpr int64_t id_PDCPChangeIndication = 249; -/* -id-PRACH-Configuration ProtocolIE-ID ::= 55 -*/ - -constexpr int64_t id_PRACH_Configuration = 55; -/* -id-PartialSuccessIndicator ProtocolIE-ID ::= 64 -*/ - -constexpr int64_t id_PartialSuccessIndicator = 64; -/* -id-ProSeAuthorized ProtocolIE-ID ::= 103 -*/ - -constexpr int64_t id_ProSeAuthorized = 103; -/* -id-ProSeUEtoNetworkRelaying ProtocolIE-ID ::= 149 -*/ - -constexpr int64_t id_ProSeUEtoNetworkRelaying = 149; -/* -id-ProtectedEUTRAResourceIndication ProtocolIE-ID ::= 284 -*/ - -constexpr int64_t id_ProtectedEUTRAResourceIndication = 284; -/* -id-RLC-Status ProtocolIE-ID ::= 300 -*/ - -constexpr int64_t id_RLC_Status = 300; -/* -id-RLCMode-transferred ProtocolIE-ID ::= 317 -*/ - -constexpr int64_t id_RLCMode_transferred = 317; -/* -id-RNL-Header ProtocolIE-ID ::= 101 -*/ - -constexpr int64_t id_RNL_Header = 101; -/* -id-RRCConfigIndication ProtocolIE-ID ::= 272 -*/ - -constexpr int64_t id_RRCConfigIndication = 272; -/* -id-RRCConnReestabIndicator ProtocolIE-ID ::= 78 -*/ - -constexpr int64_t id_RRCConnReestabIndicator = 78; -/* -id-RRCConnSetupIndicator ProtocolIE-ID ::= 75 -*/ - -constexpr int64_t id_RRCConnSetupIndicator = 75; -/* -id-RRCContainer ProtocolIE-ID ::= 237 -*/ - -constexpr int64_t id_RRCContainer = 237; -/* -id-RSRPMRList ProtocolIE-ID ::= 110 -*/ - -constexpr int64_t id_RSRPMRList = 110; -/* -id-Re-establishmentCellECGI ProtocolIE-ID ::= 49 -*/ - -constexpr int64_t id_Re_establishmentCellECGI = 49; -/* -id-ReceiveStatusOfULPDCPSDUsExtended ProtocolIE-ID ::= 91 -*/ - -constexpr int64_t id_ReceiveStatusOfULPDCPSDUsExtended = 91; -/* -id-ReceiveStatusOfULPDCPSDUsPDCP-SNlength18 ProtocolIE-ID ::= 150 -*/ - -constexpr int64_t id_ReceiveStatusOfULPDCPSDUsPDCP_SNlength18 = 150; -/* -id-Registration-Request ProtocolIE-ID ::= 28 -*/ - -constexpr int64_t id_Registration_Request = 28; -/* -id-ReportCharacteristics ProtocolIE-ID ::= 38 -*/ - -constexpr int64_t id_ReportCharacteristics = 38; -/* -id-ReportingPeriodicity ProtocolIE-ID ::= 30 -*/ - -constexpr int64_t id_ReportingPeriodicity = 30; -/* -id-ReportingPeriodicityCSIR ProtocolIE-ID ::= 145 -*/ - -constexpr int64_t id_ReportingPeriodicityCSIR = 145; -/* -id-ReportingPeriodicityRSRPMR ProtocolIE-ID ::= 109 -*/ - -constexpr int64_t id_ReportingPeriodicityRSRPMR = 109; -/* -id-RequestedSplitSRBs ProtocolIE-ID ::= 208 -*/ - -constexpr int64_t id_RequestedSplitSRBs = 208; -/* -id-RequestedSplitSRBsrelease ProtocolIE-ID ::= 280 -*/ - -constexpr int64_t id_RequestedSplitSRBsrelease = 280; -/* -id-RespondingNodeType-EndcConfigUpdate ProtocolIE-ID ::= 247 -*/ - -constexpr int64_t id_RespondingNodeType_EndcConfigUpdate = 247; -/* -id-RespondingNodeType-EndcX2Removal ProtocolIE-ID ::= 299 -*/ - -constexpr int64_t id_RespondingNodeType_EndcX2Removal = 299; -/* -id-RespondingNodeType-EndcX2Setup ProtocolIE-ID ::= 246 -*/ - -constexpr int64_t id_RespondingNodeType_EndcX2Setup = 246; -/* -id-RespondingNodeType-EutranrCellResourceCoordination ProtocolIE-ID ::= 286 -*/ - -constexpr int64_t id_RespondingNodeType_EutranrCellResourceCoordination = 286; -/* -id-ResponseInformationSeNBReconfComp ProtocolIE-ID ::= 123 -*/ - -constexpr int64_t id_ResponseInformationSeNBReconfComp = 123; -/* -id-ResponseInformationSgNBReconfComp ProtocolIE-ID ::= 214 -*/ - -constexpr int64_t id_ResponseInformationSgNBReconfComp = 214; -/* -id-SCGChangeIndication ProtocolIE-ID ::= 136 -*/ - -constexpr int64_t id_SCGChangeIndication = 136; -/* -id-SCGConfigurationQuery ProtocolIE-ID ::= 241 -*/ - -constexpr int64_t id_SCGConfigurationQuery = 241; -/* -id-SGNB-Addition-Trigger-Ind ProtocolIE-ID ::= 278 -*/ - -constexpr int64_t id_SGNB_Addition_Trigger_Ind = 278; -/* -id-SIPTO-BearerDeactivationIndication ProtocolIE-ID ::= 164 -*/ - -constexpr int64_t id_SIPTO_BearerDeactivationIndication = 164; -/* -id-SIPTO-Correlation-ID ProtocolIE-ID ::= 167 -*/ - -constexpr int64_t id_SIPTO_Correlation_ID = 167; -/* -id-SIPTO-L-GW-TransportLayerAddress ProtocolIE-ID ::= 168 -*/ - -constexpr int64_t id_SIPTO_L_GW_TransportLayerAddress = 168; -/* -id-SRBType ProtocolIE-ID ::= 238 -*/ - -constexpr int64_t id_SRBType = 238; -/* -id-SRVCCOperationPossible ProtocolIE-ID ::= 36 -*/ - -constexpr int64_t id_SRVCCOperationPossible = 36; -/* -id-SeNB-UE-X2AP-ID ProtocolIE-ID ::= 112 -*/ - -constexpr int64_t id_SeNB_UE_X2AP_ID = 112; -/* -id-SeNB-UE-X2AP-ID-Extension ProtocolIE-ID ::= 158 -*/ - -constexpr int64_t id_SeNB_UE_X2AP_ID_Extension = 158; -/* -id-SeNBSecurityKey ProtocolIE-ID ::= 114 -*/ - -constexpr int64_t id_SeNBSecurityKey = 114; -/* -id-SeNBUEAggregateMaximumBitRate ProtocolIE-ID ::= 115 -*/ - -constexpr int64_t id_SeNBUEAggregateMaximumBitRate = 115; -/* -id-SeNBtoMeNBContainer ProtocolIE-ID ::= 122 -*/ - -constexpr int64_t id_SeNBtoMeNBContainer = 122; -/* -id-SecondaryRATUsageReport ProtocolIE-ID ::= 255 -*/ - -constexpr int64_t id_SecondaryRATUsageReport = 255; -/* -id-SecondaryRATUsageReport-Item ProtocolIE-ID ::= 266 -*/ - -constexpr int64_t id_SecondaryRATUsageReport_Item = 266; -/* -id-SecondaryRATUsageReportList ProtocolIE-ID ::= 265 -*/ - -constexpr int64_t id_SecondaryRATUsageReportList = 265; -/* -id-SelectedPLMN ProtocolIE-ID ::= 269 -*/ - -constexpr int64_t id_SelectedPLMN = 269; -/* -id-ServedCells ProtocolIE-ID ::= 20 -*/ - -constexpr int64_t id_ServedCells = 20; -/* -id-ServedCellsToActivate ProtocolIE-ID ::= 57 -*/ - -constexpr int64_t id_ServedCellsToActivate = 57; -/* -id-ServedCellsToAdd ProtocolIE-ID ::= 25 -*/ - -constexpr int64_t id_ServedCellsToAdd = 25; -/* -id-ServedCellsToDelete ProtocolIE-ID ::= 27 -*/ - -constexpr int64_t id_ServedCellsToDelete = 27; -/* -id-ServedCellsToModify ProtocolIE-ID ::= 26 -*/ - -constexpr int64_t id_ServedCellsToModify = 26; -/* -id-ServedEUTRAcellsENDCX2ManagementList ProtocolIE-ID ::= 250 -*/ - -constexpr int64_t id_ServedEUTRAcellsENDCX2ManagementList = 250; -/* -id-ServedEUTRAcellsToDeleteListENDCConfUpd ProtocolIE-ID ::= 260 -*/ - -constexpr int64_t id_ServedEUTRAcellsToDeleteListENDCConfUpd = 260; -/* -id-ServedEUTRAcellsToModifyListENDCConfUpd ProtocolIE-ID ::= 259 -*/ - -constexpr int64_t id_ServedEUTRAcellsToModifyListENDCConfUpd = 259; -/* -id-ServedNRCellsToActivate ProtocolIE-ID ::= 267 -*/ - -constexpr int64_t id_ServedNRCellsToActivate = 267; -/* -id-ServedNRcellsENDCX2ManagementList ProtocolIE-ID ::= 253 -*/ - -constexpr int64_t id_ServedNRcellsENDCX2ManagementList = 253; -/* -id-ServedNRcellsToDeleteListENDCConfUpd ProtocolIE-ID ::= 262 -*/ - -constexpr int64_t id_ServedNRcellsToDeleteListENDCConfUpd = 262; -/* -id-ServedNRcellsToModifyListENDCConfUpd ProtocolIE-ID ::= 261 -*/ - -constexpr int64_t id_ServedNRcellsToModifyListENDCConfUpd = 261; -/* -id-ServingPLMN ProtocolIE-ID ::= 116 -*/ - -constexpr int64_t id_ServingPLMN = 116; -/* -id-SgNB-UE-X2AP-ID ProtocolIE-ID ::= 207 -*/ - -constexpr int64_t id_SgNB_UE_X2AP_ID = 207; -/* -id-SgNBActivityNotification ProcedureCode ::= 42 -*/ - -constexpr int64_t id_SgNBActivityNotification = 42; -/* -id-SgNBCoordinationAssistanceInformation ProtocolIE-ID ::= 324 -*/ - -constexpr int64_t id_SgNBCoordinationAssistanceInformation = 324; -/* -id-SgNBResourceCoordinationInformation ProtocolIE-ID ::= 258 -*/ - -constexpr int64_t id_SgNBResourceCoordinationInformation = 258; -/* -id-SgNBSecurityKey ProtocolIE-ID ::= 203 -*/ - -constexpr int64_t id_SgNBSecurityKey = 203; -/* -id-SgNBUEAggregateMaximumBitRate ProtocolIE-ID ::= 204 -*/ - -constexpr int64_t id_SgNBUEAggregateMaximumBitRate = 204; -/* -id-SgNBtoMeNBContainer ProtocolIE-ID ::= 211 -*/ - -constexpr int64_t id_SgNBtoMeNBContainer = 211; -/* -id-ShortMAC-I ProtocolIE-ID ::= 51 -*/ - -constexpr int64_t id_ShortMAC_I = 51; -/* -id-SignallingBasedMDTPLMNList ProtocolIE-ID ::= 90 -*/ - -constexpr int64_t id_SignallingBasedMDTPLMNList = 90; -/* -id-SourceCellCRNTI ProtocolIE-ID ::= 83 -*/ - -constexpr int64_t id_SourceCellCRNTI = 83; -/* -id-SourceCellECGI ProtocolIE-ID ::= 52 -*/ - -constexpr int64_t id_SourceCellECGI = 52; -/* -id-SpectrumSharingGroupID ProtocolIE-ID ::= 288 -*/ - -constexpr int64_t id_SpectrumSharingGroupID = 288; -/* -id-SplitSRB ProtocolIE-ID ::= 242 -*/ - -constexpr int64_t id_SplitSRB = 242; -/* -id-SubscriberProfileIDforRFP ProtocolIE-ID ::= 275 -*/ - -constexpr int64_t id_SubscriberProfileIDforRFP = 275; -/* -id-Subscription-Based-UE-DifferentiationInfo ProtocolIE-ID ::= 309 -*/ - -constexpr int64_t id_Subscription_Based_UE_DifferentiationInfo = 309; -/* -id-Target-SgNB-ID ProtocolIE-ID ::= 239 -*/ - -constexpr int64_t id_Target_SgNB_ID = 239; -/* -id-TargetCell-ID ProtocolIE-ID ::= 11 -*/ - -constexpr int64_t id_TargetCell_ID = 11; -/* -id-TargetCellInUTRAN ProtocolIE-ID ::= 81 -*/ - -constexpr int64_t id_TargetCellInUTRAN = 81; -/* -id-TargeteNBtoSource-eNBTransparentContainer ProtocolIE-ID ::= 12 -*/ - -constexpr int64_t id_TargeteNBtoSource_eNBTransparentContainer = 12; -/* -id-Time-UE-StayedInCell-EnhancedGranularity ProtocolIE-ID ::= 77 -*/ - -constexpr int64_t id_Time_UE_StayedInCell_EnhancedGranularity = 77; -/* -id-TimeToWait ProtocolIE-ID ::= 22 -*/ - -constexpr int64_t id_TimeToWait = 22; -/* -id-TraceActivation ProtocolIE-ID ::= 13 -*/ - -constexpr int64_t id_TraceActivation = 13; -/* -id-Tunnel-Information-for-BBF ProtocolIE-ID ::= 163 -*/ - -constexpr int64_t id_Tunnel_Information_for_BBF = 163; -/* -id-UE-ContextInformation ProtocolIE-ID ::= 14 -*/ - -constexpr int64_t id_UE_ContextInformation = 14; -/* -id-UE-ContextInformation-SgNBModReq ProtocolIE-ID ::= 215 -*/ - -constexpr int64_t id_UE_ContextInformation_SgNBModReq = 215; -/* -id-UE-ContextInformationRetrieve ProtocolIE-ID ::= 173 -*/ - -constexpr int64_t id_UE_ContextInformationRetrieve = 173; -/* -id-UE-ContextInformationSeNBModReq ProtocolIE-ID ::= 124 -*/ - -constexpr int64_t id_UE_ContextInformationSeNBModReq = 124; -/* -id-UE-ContextKeptIndicator ProtocolIE-ID ::= 154 -*/ - -constexpr int64_t id_UE_ContextKeptIndicator = 154; -/* -id-UE-ContextReferenceAtSeNB ProtocolIE-ID ::= 153 -*/ - -constexpr int64_t id_UE_ContextReferenceAtSeNB = 153; -/* -id-UE-ContextReferenceAtSgNB ProtocolIE-ID ::= 254 -*/ - -constexpr int64_t id_UE_ContextReferenceAtSgNB = 254; -/* -id-UE-ContextReferenceAtWT ProtocolIE-ID ::= 182 -*/ - -constexpr int64_t id_UE_ContextReferenceAtWT = 182; -/* -id-UE-HistoryInformation ProtocolIE-ID ::= 15 -*/ - -constexpr int64_t id_UE_HistoryInformation = 15; -/* -id-UE-HistoryInformationFromTheUE ProtocolIE-ID ::= 105 -*/ - -constexpr int64_t id_UE_HistoryInformationFromTheUE = 105; -/* -id-UE-RLF-Report-Container ProtocolIE-ID ::= 60 -*/ - -constexpr int64_t id_UE_RLF_Report_Container = 60; -/* -id-UE-RLF-Report-Container-for-extended-bands ProtocolIE-ID ::= 107 -*/ - -constexpr int64_t id_UE_RLF_Report_Container_for_extended_bands = 107; -/* -id-UE-SecurityCapabilities ProtocolIE-ID ::= 113 -*/ - -constexpr int64_t id_UE_SecurityCapabilities = 113; -/* -id-UE-X2AP-ID ProtocolIE-ID ::= 16 -*/ - -constexpr int64_t id_UE_X2AP_ID = 16; -/* -id-UEAppLayerMeasConfig ProtocolIE-ID ::= 195 -*/ - -constexpr int64_t id_UEAppLayerMeasConfig = 195; -/* -id-UEContextLevelUserPlaneActivity ProtocolIE-ID ::= 296 -*/ - -constexpr int64_t id_UEContextLevelUserPlaneActivity = 296; -/* -id-UEID ProtocolIE-ID ::= 147 -*/ - -constexpr int64_t id_UEID = 147; -/* -id-UENRMeasurement ProtocolIE-ID ::= 243 -*/ - -constexpr int64_t id_UENRMeasurement = 243; -/* -id-UESidelinkAggregateMaximumBitRate ProtocolIE-ID ::= 184 -*/ - -constexpr int64_t id_UESidelinkAggregateMaximumBitRate = 184; -/* -id-UEs-Admitted-ToBeReset ProtocolIE-ID ::= 271 -*/ - -constexpr int64_t id_UEs_Admitted_ToBeReset = 271; -/* -id-UEs-ToBeReset ProtocolIE-ID ::= 270 -*/ - -constexpr int64_t id_UEs_ToBeReset = 270; -/* -id-UL-EARFCNExtension ProtocolIE-ID ::= 95 -*/ - -constexpr int64_t id_UL_EARFCNExtension = 95; -/* -id-UL-scheduling-PDCCH-CCE-usage ProtocolIE-ID ::= 194 -*/ - -constexpr int64_t id_UL_scheduling_PDCCH_CCE_usage = 194; -/* -id-ULCOUNTValueExtended ProtocolIE-ID ::= 92 -*/ - -constexpr int64_t id_ULCOUNTValueExtended = 92; -/* -id-ULCOUNTValuePDCP-SNlength18 ProtocolIE-ID ::= 151 -*/ - -constexpr int64_t id_ULCOUNTValuePDCP_SNlength18 = 151; -/* -id-UplinkPacketLossRate ProtocolIE-ID ::= 274 -*/ - -constexpr int64_t id_UplinkPacketLossRate = 274; -/* -id-V2XServicesAuthorized ProtocolIE-ID ::= 176 -*/ - -constexpr int64_t id_V2XServicesAuthorized = 176; -/* -id-WLANMeasurementConfiguration ProtocolIE-ID ::= 304 -*/ - -constexpr int64_t id_WLANMeasurementConfiguration = 304; -/* -id-WT-UE-ContextKeptIndicator ProtocolIE-ID ::= 183 -*/ - -constexpr int64_t id_WT_UE_ContextKeptIndicator = 183; -/* -id-X2RemovalThreshold ProtocolIE-ID ::= 169 -*/ - -constexpr int64_t id_X2RemovalThreshold = 169; -/* -id-cellActivation ProcedureCode ::= 15 -*/ - -constexpr int64_t id_cellActivation = 15; -/* -id-dL-Forwarding ProtocolIE-ID ::= 306 -*/ - -constexpr int64_t id_dL_Forwarding = 306; -/* -id-dLPDCPSnLength ProtocolIE-ID ::= 311 -*/ - -constexpr int64_t id_dLPDCPSnLength = 311; -/* -id-dataForwardingAddressIndication ProcedureCode ::= 44 -*/ - -constexpr int64_t id_dataForwardingAddressIndication = 44; -/* -id-duplicationActivation ProtocolIE-ID ::= 315 -*/ - -constexpr int64_t id_duplicationActivation = 315; -/* -id-eARFCNExtension ProtocolIE-ID ::= 94 -*/ - -constexpr int64_t id_eARFCNExtension = 94; -/* -id-eNBConfigurationUpdate ProcedureCode ::= 8 -*/ - -constexpr int64_t id_eNBConfigurationUpdate = 8; -/* -id-eUTRANRCellResourceCoordination ProcedureCode ::= 41 -*/ - -constexpr int64_t id_eUTRANRCellResourceCoordination = 41; -/* -id-endcCellActivation ProcedureCode ::= 39 -*/ - -constexpr int64_t id_endcCellActivation = 39; -/* -id-endcConfigurationUpdate ProcedureCode ::= 37 -*/ - -constexpr int64_t id_endcConfigurationUpdate = 37; -/* -id-endcPartialReset ProcedureCode ::= 40 -*/ - -constexpr int64_t id_endcPartialReset = 40; -/* -id-endcX2Removal ProcedureCode ::= 43 -*/ - -constexpr int64_t id_endcX2Removal = 43; -/* -id-endcX2Setup ProcedureCode ::= 36 -*/ - -constexpr int64_t id_endcX2Setup = 36; -/* -id-enhancedRNTP ProtocolIE-ID ::= 148 -*/ - -constexpr int64_t id_enhancedRNTP = 148; -/* -id-errorIndication ProcedureCode ::= 3 -*/ - -constexpr int64_t id_errorIndication = 3; -/* -id-extended-e-RAB-GuaranteedBitrateDL ProtocolIE-ID ::= 198 -*/ - -constexpr int64_t id_extended_e_RAB_GuaranteedBitrateDL = 198; -/* -id-extended-e-RAB-GuaranteedBitrateUL ProtocolIE-ID ::= 199 -*/ - -constexpr int64_t id_extended_e_RAB_GuaranteedBitrateUL = 199; -/* -id-extended-e-RAB-MaximumBitrateDL ProtocolIE-ID ::= 196 -*/ - -constexpr int64_t id_extended_e_RAB_MaximumBitrateDL = 196; -/* -id-extended-e-RAB-MaximumBitrateUL ProtocolIE-ID ::= 197 -*/ - -constexpr int64_t id_extended_e_RAB_MaximumBitrateUL = 197; -/* -id-extended-uEaggregateMaximumBitRateDownlink ProtocolIE-ID ::= 200 -*/ - -constexpr int64_t id_extended_uEaggregateMaximumBitRateDownlink = 200; -/* -id-extended-uEaggregateMaximumBitRateUplink ProtocolIE-ID ::= 201 -*/ - -constexpr int64_t id_extended_uEaggregateMaximumBitRateUplink = 201; -/* -id-gNBStatusIndication ProcedureCode ::= 45 -*/ - -constexpr int64_t id_gNBStatusIndication = 45; -/* -id-handoverCancel ProcedureCode ::= 1 -*/ - -constexpr int64_t id_handoverCancel = 1; -/* -id-handoverPreparation ProcedureCode ::= 0 -*/ - -constexpr int64_t id_handoverPreparation = 0; -/* -id-handoverReport ProcedureCode ::= 14 -*/ - -constexpr int64_t id_handoverReport = 14; -/* -id-lCID ProtocolIE-ID ::= 314 -*/ - -constexpr int64_t id_lCID = 314; -/* -id-loadIndication ProcedureCode ::= 2 -*/ - -constexpr int64_t id_loadIndication = 2; -/* -id-meNBinitiatedSeNBModificationPreparation ProcedureCode ::= 21 -*/ - -constexpr int64_t id_meNBinitiatedSeNBModificationPreparation = 21; -/* -id-meNBinitiatedSeNBRelease ProcedureCode ::= 23 -*/ - -constexpr int64_t id_meNBinitiatedSeNBRelease = 23; -/* -id-meNBinitiatedSgNBModificationPreparation ProcedureCode ::= 29 -*/ - -constexpr int64_t id_meNBinitiatedSgNBModificationPreparation = 29; -/* -id-meNBinitiatedSgNBRelease ProcedureCode ::= 31 -*/ - -constexpr int64_t id_meNBinitiatedSgNBRelease = 31; -/* -id-mobilitySettingsChange ProcedureCode ::= 12 -*/ - -constexpr int64_t id_mobilitySettingsChange = 12; -/* -id-new-drb-ID-req ProtocolIE-ID ::= 325 -*/ - -constexpr int64_t id_new_drb_ID_req = 325; -/* -id-privateMessage ProcedureCode ::= 11 -*/ - -constexpr int64_t id_privateMessage = 11; -/* -id-rLFIndication ProcedureCode ::= 13 -*/ - -constexpr int64_t id_rLFIndication = 13; -/* -id-rRCTransfer ProcedureCode ::= 35 -*/ - -constexpr int64_t id_rRCTransfer = 35; -/* -id-reset ProcedureCode ::= 7 -*/ - -constexpr int64_t id_reset = 7; -/* -id-resourceStatusReporting ProcedureCode ::= 10 -*/ - -constexpr int64_t id_resourceStatusReporting = 10; -/* -id-resourceStatusReportingInitiation ProcedureCode ::= 9 -*/ - -constexpr int64_t id_resourceStatusReportingInitiation = 9; -/* -id-resumeID ProtocolIE-ID ::= 172 -*/ - -constexpr int64_t id_resumeID = 172; -/* -id-retrieveUEContext ProcedureCode ::= 26 -*/ - -constexpr int64_t id_retrieveUEContext = 26; -/* -id-seNBAdditionPreparation ProcedureCode ::= 19 -*/ - -constexpr int64_t id_seNBAdditionPreparation = 19; -/* -id-seNBCounterCheck ProcedureCode ::= 25 -*/ - -constexpr int64_t id_seNBCounterCheck = 25; -/* -id-seNBReconfigurationCompletion ProcedureCode ::= 20 -*/ - -constexpr int64_t id_seNBReconfigurationCompletion = 20; -/* -id-seNBinitiatedSeNBModification ProcedureCode ::= 22 -*/ - -constexpr int64_t id_seNBinitiatedSeNBModification = 22; -/* -id-seNBinitiatedSeNBRelease ProcedureCode ::= 24 -*/ - -constexpr int64_t id_seNBinitiatedSeNBRelease = 24; -/* -id-secondaryRATDataUsageReport ProcedureCode ::= 38 -*/ - -constexpr int64_t id_secondaryRATDataUsageReport = 38; -/* -id-secondarymeNBULGTPTEIDatPDCP ProtocolIE-ID ::= 313 -*/ - -constexpr int64_t id_secondarymeNBULGTPTEIDatPDCP = 313; -/* -id-secondarysgNBDLGTPTEIDatPDCP ProtocolIE-ID ::= 312 -*/ - -constexpr int64_t id_secondarysgNBDLGTPTEIDatPDCP = 312; -/* -id-serviceType ProtocolIE-ID ::= 276 -*/ - -constexpr int64_t id_serviceType = 276; -/* -id-sgNBAdditionPreparation ProcedureCode ::= 27 -*/ - -constexpr int64_t id_sgNBAdditionPreparation = 27; -/* -id-sgNBChange ProcedureCode ::= 34 -*/ - -constexpr int64_t id_sgNBChange = 34; -/* -id-sgNBCounterCheck ProcedureCode ::= 33 -*/ - -constexpr int64_t id_sgNBCounterCheck = 33; -/* -id-sgNBReconfigurationCompletion ProcedureCode ::= 28 -*/ - -constexpr int64_t id_sgNBReconfigurationCompletion = 28; -/* -id-sgNBinitiatedSgNBModification ProcedureCode ::= 30 -*/ - -constexpr int64_t id_sgNBinitiatedSgNBModification = 30; -/* -id-sgNBinitiatedSgNBRelease ProcedureCode ::= 32 -*/ - -constexpr int64_t id_sgNBinitiatedSgNBRelease = 32; -/* -id-snStatusTransfer ProcedureCode ::= 4 -*/ - -constexpr int64_t id_snStatusTransfer = 4; -/* -id-uEContextRelease ProcedureCode ::= 5 -*/ - -constexpr int64_t id_uEContextRelease = 5; -/* -id-uL-GTPtunnelEndpoint ProtocolIE-ID ::= 185 -*/ - -constexpr int64_t id_uL_GTPtunnelEndpoint = 185; -/* -id-uLpDCPSnLength ProtocolIE-ID ::= 302 -*/ - -constexpr int64_t id_uLpDCPSnLength = 302; -/* -id-x2APMessage ProtocolIE-ID ::= 102 -*/ - -constexpr int64_t id_x2APMessage = 102; -/* -id-x2APMessageTransfer ProcedureCode ::= 17 -*/ - -constexpr int64_t id_x2APMessageTransfer = 17; -/* -id-x2Release ProcedureCode ::= 16 -*/ - -constexpr int64_t id_x2Release = 16; -/* -id-x2Removal ProcedureCode ::= 18 -*/ - -constexpr int64_t id_x2Removal = 18; -/* -id-x2Setup ProcedureCode ::= 6 -*/ - -constexpr int64_t id_x2Setup = 6; -/* -maxCSIProcess INTEGER ::= 4 -*/ - -constexpr int64_t maxCSIProcess = 4; -/* -maxCSIReport INTEGER ::= 2 -*/ - -constexpr int64_t maxCSIReport = 2; -/* -maxCellReport INTEGER ::= 9 -*/ - -constexpr int64_t maxCellReport = 9; -/* -maxCellineNB INTEGER ::= 256 -*/ - -constexpr int64_t maxCellineNB = 256; -/* -maxCellinengNB INTEGER ::= 16384 -*/ - -constexpr int64_t maxCellinengNB = 16384; -/* -maxEARFCN INTEGER ::= 65535 -*/ - -constexpr int64_t maxEARFCN = 65535; -/* -maxEARFCNPlusOne INTEGER ::= 65536 -*/ - -constexpr int64_t maxEARFCNPlusOne = 65536; -/* -maxFailedMeasObjects INTEGER ::= 32 -*/ - -constexpr int64_t maxFailedMeasObjects = 32; -/* -maxInterfaces INTEGER ::= 16 -*/ - -constexpr int64_t maxInterfaces = 16; -/* -maxNrOfErrors INTEGER ::= 256 -*/ - -constexpr int64_t maxNrOfErrors = 256; -/* -maxPools INTEGER ::= 16 -*/ - -constexpr int64_t maxPools = 16; -/* -maxSubband INTEGER ::= 14 -*/ - -constexpr int64_t maxSubband = 14; -/* -maxUEReport INTEGER ::= 128 -*/ - -constexpr int64_t maxUEReport = 128; -/* -maxUEsinengNBDU INTEGER ::= 8192 -*/ - -constexpr int64_t maxUEsinengNBDU = 8192; -/* -maxnoNRcellsSpectrumSharingWithE-UTRA INTEGER ::= 64 -*/ - -constexpr int64_t maxnoNRcellsSpectrumSharingWithE_UTRA = 64; -/* -maxnoofBPLMNs INTEGER ::= 6 -*/ - -constexpr int64_t maxnoofBPLMNs = 6; -/* -maxnoofBands INTEGER ::= 16 -*/ - -constexpr int64_t maxnoofBands = 16; -/* -maxnoofBearers INTEGER ::= 256 -*/ - -constexpr int64_t maxnoofBearers = 256; -/* -maxnoofBluetoothName INTEGER ::= 4 -*/ - -constexpr int64_t maxnoofBluetoothName = 4; -/* -maxnoofCellIDforMDT INTEGER ::= 32 -*/ - -constexpr int64_t maxnoofCellIDforMDT = 32; -/* -maxnoofCellIDforQMC INTEGER ::= 32 -*/ - -constexpr int64_t maxnoofCellIDforQMC = 32; -/* -maxnoofCells INTEGER ::= 16 -*/ - -constexpr int64_t maxnoofCells = 16; -/* -maxnoofCoMPCells INTEGER ::= 32 -*/ - -constexpr int64_t maxnoofCoMPCells = 32; -/* -maxnoofCoMPHypothesisSet INTEGER ::= 256 -*/ - -constexpr int64_t maxnoofCoMPHypothesisSet = 256; -/* -maxnoofEPLMNs INTEGER ::= 15 -*/ - -constexpr int64_t maxnoofEPLMNs = 15; -/* -maxnoofEPLMNsPlusOne INTEGER ::= 16 -*/ - -constexpr int64_t maxnoofEPLMNsPlusOne = 16; -/* -maxnoofForbLACs INTEGER ::= 4096 -*/ - -constexpr int64_t maxnoofForbLACs = 4096; -/* -maxnoofForbTACs INTEGER ::= 4096 -*/ - -constexpr int64_t maxnoofForbTACs = 4096; -/* -maxnoofMBMSServiceAreaIdentities INTEGER ::= 256 -*/ - -constexpr int64_t maxnoofMBMSServiceAreaIdentities = 256; -/* -maxnoofMBSFN INTEGER ::= 8 -*/ - -constexpr int64_t maxnoofMBSFN = 8; -/* -maxnoofMDTPLMNs INTEGER ::= 16 -*/ - -constexpr int64_t maxnoofMDTPLMNs = 16; -/* -maxnoofNeighbours INTEGER ::= 512 -*/ - -constexpr int64_t maxnoofNeighbours = 512; -/* -maxnoofNrCellBands INTEGER ::= 32 -*/ - -constexpr int64_t maxnoofNrCellBands = 32; -/* -maxnoofPA INTEGER ::= 3 -*/ - -constexpr int64_t maxnoofPA = 3; -/* -maxnoofPDCP-SN INTEGER ::= 16 -*/ - -constexpr int64_t maxnoofPDCP_SN = 16; -/* -maxnoofPLMNforQMC INTEGER ::= 16 -*/ - -constexpr int64_t maxnoofPLMNforQMC = 16; -/* -maxnoofPRBs INTEGER ::= 110 -*/ - -constexpr int64_t maxnoofPRBs = 110; -/* -maxnoofProtectedResourcePatterns INTEGER ::= 16 -*/ - -constexpr int64_t maxnoofProtectedResourcePatterns = 16; -/* -maxnoofTAforMDT INTEGER ::= 8 -*/ - -constexpr int64_t maxnoofTAforMDT = 8; -/* -maxnoofTAforQMC INTEGER ::= 8 -*/ - -constexpr int64_t maxnoofTAforQMC = 8; -/* -maxnoofWLANName INTEGER ::= 4 -*/ - -constexpr int64_t maxnoofWLANName = 4; -/* -maxnooftimeperiods INTEGER ::= 2 -*/ - -constexpr int64_t maxnooftimeperiods = 2; -/* -maxofNRNeighbours INTEGER ::= 1024 -*/ - -constexpr int64_t maxofNRNeighbours = 1024; -/* -newmaxEARFCN INTEGER ::= 262143 -*/ - -constexpr int64_t newmaxEARFCN = 262143; diff --git a/e2sim/previous/e2apv1sim/ricsim/src/ASN1/generated/X2AP-Containers.hpp b/e2sim/previous/e2apv1sim/ricsim/src/ASN1/generated/X2AP-Containers.hpp deleted file mode 100644 index 09545bf..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/ASN1/generated/X2AP-Containers.hpp +++ /dev/null @@ -1,700 +0,0 @@ -/***************************************************************************** -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -#pragma once - -#include "asn/asn.hpp" -static_assert(ASN_API_VERSION_MAJOR == 5, "re-generate the ASN parser's code using 'make regen-asn' (do not use -j option)"); - -#include "X2AP-CommonDataTypes.hpp" - -/* -X2AP-PRIVATE-IES ::= CLASS { - &id PrivateIE-ID, - &criticality Criticality, - &Value, - &presence Presence -} -WITH SYNTAX { - ID &id - CRITICALITY &criticality - TYPE &Value - PRESENCE &presence -} -*/ - -struct X2AP_PRIVATE_IES -{ - struct id_t : PrivateIE_ID - { - static constexpr const char* name() {return "id_t";} - using parent_t = PrivateIE_ID; - - }; - struct criticality_t : Criticality - { - static constexpr const char* name() {return "criticality_t";} - using parent_t = Criticality; - - }; - struct presence_t : Presence - { - static constexpr const char* name() {return "presence_t";} - using parent_t = Presence; - - }; - -}; -/* -PrivateIE-Field {X2AP-PRIVATE-IES : IEsSetParam} ::= SEQUENCE { - id X2AP-PRIVATE-IES.&id ({IEsSetParam}), - criticality X2AP-PRIVATE-IES.&criticality ({IEsSetParam}{@id}), - value X2AP-PRIVATE-IES.&Value ({IEsSetParam}{@id}) -} -*/ - -template -struct PrivateIE_Field : asn::sequence<3, 0, false, 0> -{ - static constexpr const char* name() {return "PrivateIE-Field";} - using parent_t = asn::sequence<3, 0, false, 0>; - struct id_t : IEsSetParam::id_t - { - static constexpr const char* name() {return "id_t";} - using parent_t = typename IEsSetParam::id_t; - template bool decode(V& v, PrivateIE_Field const& c) - { - return IEsSetParam::id_t::decode(v); - }; - template bool encode(V& v, PrivateIE_Field const& c) const - { - return IEsSetParam::id_t::encode(v); - }; - }; - id_t& ref_id() {return id;} - id_t const& ref_id() const {return id;} - struct criticality_t : IEsSetParam::criticality_t - { - static constexpr const char* name() {return "criticality_t";} - using parent_t = typename IEsSetParam::criticality_t; - template bool decode(V& v, PrivateIE_Field const& c) - { - return IEsSetParam::criticality_t::decode(c.id.get_index(), v); - }; - template bool encode(V& v, PrivateIE_Field const& c) const - { - return IEsSetParam::criticality_t::encode(c.id.get_index(), v); - }; - }; - criticality_t& ref_criticality() {return criticality;} - criticality_t const& ref_criticality() const {return criticality;} - struct value_t : IEsSetParam::Value_t - { - static constexpr const char* name() {return "value_t";} - using parent_t = typename IEsSetParam::Value_t; - template bool decode(V& v, PrivateIE_Field const& c) - { - return IEsSetParam::Value_t::decode(c.id.get_index(), v); - }; - template bool encode(V& v, PrivateIE_Field const& c) const - { - return IEsSetParam::Value_t::encode(c.id.get_index(), v); - }; - }; - value_t& ref_value() {return value;} - value_t const& ref_value() const {return value;} - template void decode(V& v) - { - v(id); - v(criticality); - v(value); - - }; - template void encode(V& v) const - { - v(id); - v(criticality); - v(value); - - }; - void clear() - { - id.clear(); - criticality.clear(); - value.clear(); - - }; - private: - id_t id; - criticality_t criticality; - value_t value; - -}; -/* -PrivateIE-Container {X2AP-PRIVATE-IES : IEsSetParam} ::= - SEQUENCE (SIZE (1..maxPrivateIEs)) OF - PrivateIE-Field {{IEsSetParam}} -*/ - -template -struct PrivateIE_Container_elm : PrivateIE_Field -{ - static constexpr const char* name() {return "PrivateIE_Container_elm";} - using parent_t = PrivateIE_Field; - -}; -template -struct PrivateIE_Container : asn::sequenceof > -{ - static constexpr const char* name() {return "PrivateIE-Container";} - using parent_t = asn::sequenceof >; - using constraint_t = asn::constraints>; - -}; -/* -X2AP-PROTOCOL-EXTENSION ::= CLASS { - &id ProtocolIE-ID UNIQUE, - &criticality Criticality, - &Extension, - &presence Presence -} -WITH SYNTAX { - ID &id - CRITICALITY &criticality - EXTENSION &Extension - PRESENCE &presence -} -*/ - -struct X2AP_PROTOCOL_EXTENSION -{ - struct id_t : ProtocolIE_ID - { - static constexpr const char* name() {return "id_t";} - using parent_t = ProtocolIE_ID; - - }; - struct criticality_t : Criticality - { - static constexpr const char* name() {return "criticality_t";} - using parent_t = Criticality; - - }; - struct presence_t : Presence - { - static constexpr const char* name() {return "presence_t";} - using parent_t = Presence; - - }; - -}; -/* -ProtocolExtensionField {X2AP-PROTOCOL-EXTENSION : ExtensionSetParam} ::= SEQUENCE { - id X2AP-PROTOCOL-EXTENSION.&id ({ExtensionSetParam}), - criticality X2AP-PROTOCOL-EXTENSION.&criticality ({ExtensionSetParam}{@id}), - extensionValue X2AP-PROTOCOL-EXTENSION.&Extension ({ExtensionSetParam}{@id}) -} -*/ - -template -struct ProtocolExtensionField : asn::sequence<3, 0, false, 0> -{ - static constexpr const char* name() {return "ProtocolExtensionField";} - using parent_t = asn::sequence<3, 0, false, 0>; - struct id_t : ExtensionSetParam::id_t - { - static constexpr const char* name() {return "id_t";} - using parent_t = typename ExtensionSetParam::id_t; - template bool decode(V& v, ProtocolExtensionField const& c) - { - return ExtensionSetParam::id_t::decode(v); - }; - template bool encode(V& v, ProtocolExtensionField const& c) const - { - return ExtensionSetParam::id_t::encode(v); - }; - }; - id_t& ref_id() {return id;} - id_t const& ref_id() const {return id;} - struct criticality_t : ExtensionSetParam::criticality_t - { - static constexpr const char* name() {return "criticality_t";} - using parent_t = typename ExtensionSetParam::criticality_t; - template bool decode(V& v, ProtocolExtensionField const& c) - { - return ExtensionSetParam::criticality_t::decode(c.id.get_index(), v); - }; - template bool encode(V& v, ProtocolExtensionField const& c) const - { - return ExtensionSetParam::criticality_t::encode(c.id.get_index(), v); - }; - }; - criticality_t& ref_criticality() {return criticality;} - criticality_t const& ref_criticality() const {return criticality;} - struct extensionValue_t : ExtensionSetParam::Extension_t - { - static constexpr const char* name() {return "extensionValue_t";} - using parent_t = typename ExtensionSetParam::Extension_t; - template bool decode(V& v, ProtocolExtensionField const& c) - { - return ExtensionSetParam::Extension_t::decode(c.id.get_index(), v); - }; - template bool encode(V& v, ProtocolExtensionField const& c) const - { - return ExtensionSetParam::Extension_t::encode(c.id.get_index(), v); - }; - }; - extensionValue_t& ref_extensionValue() {return extensionValue;} - extensionValue_t const& ref_extensionValue() const {return extensionValue;} - template void decode(V& v) - { - v(id); - v(criticality); - v(extensionValue); - - }; - template void encode(V& v) const - { - v(id); - v(criticality); - v(extensionValue); - - }; - void clear() - { - id.clear(); - criticality.clear(); - extensionValue.clear(); - - }; - private: - id_t id; - criticality_t criticality; - extensionValue_t extensionValue; - -}; -/* -ProtocolExtensionContainer {X2AP-PROTOCOL-EXTENSION : ExtensionSetParam} ::= - SEQUENCE (SIZE (1..maxProtocolExtensions)) OF - ProtocolExtensionField {{ExtensionSetParam}} -*/ - -template -struct ProtocolExtensionContainer_elm : ProtocolExtensionField -{ - static constexpr const char* name() {return "ProtocolExtensionContainer_elm";} - using parent_t = ProtocolExtensionField; - -}; -template -struct ProtocolExtensionContainer : asn::sequenceof > -{ - static constexpr const char* name() {return "ProtocolExtensionContainer";} - using parent_t = asn::sequenceof >; - using constraint_t = asn::constraints>; - -}; -/* -X2AP-PROTOCOL-IES ::= CLASS { - &id ProtocolIE-ID UNIQUE, - &criticality Criticality, - &Value, - &presence Presence -} -WITH SYNTAX { - ID &id - CRITICALITY &criticality - TYPE &Value - PRESENCE &presence -} -*/ - -struct X2AP_PROTOCOL_IES -{ - struct id_t : ProtocolIE_ID - { - static constexpr const char* name() {return "id_t";} - using parent_t = ProtocolIE_ID; - - }; - struct criticality_t : Criticality - { - static constexpr const char* name() {return "criticality_t";} - using parent_t = Criticality; - - }; - struct presence_t : Presence - { - static constexpr const char* name() {return "presence_t";} - using parent_t = Presence; - - }; - -}; -/* -ProtocolIE-Field {X2AP-PROTOCOL-IES : IEsSetParam} ::= SEQUENCE { - id X2AP-PROTOCOL-IES.&id ({IEsSetParam}), - criticality X2AP-PROTOCOL-IES.&criticality ({IEsSetParam}{@id}), - value X2AP-PROTOCOL-IES.&Value ({IEsSetParam}{@id}) -} -*/ - -template -struct ProtocolIE_Field : asn::sequence<3, 0, false, 0> -{ - static constexpr const char* name() {return "ProtocolIE-Field";} - using parent_t = asn::sequence<3, 0, false, 0>; - struct id_t : IEsSetParam::id_t - { - static constexpr const char* name() {return "id_t";} - using parent_t = typename IEsSetParam::id_t; - template bool decode(V& v, ProtocolIE_Field const& c) - { - return IEsSetParam::id_t::decode(v); - }; - template bool encode(V& v, ProtocolIE_Field const& c) const - { - return IEsSetParam::id_t::encode(v); - }; - }; - id_t& ref_id() {return id;} - id_t const& ref_id() const {return id;} - struct criticality_t : IEsSetParam::criticality_t - { - static constexpr const char* name() {return "criticality_t";} - using parent_t = typename IEsSetParam::criticality_t; - template bool decode(V& v, ProtocolIE_Field const& c) - { - return IEsSetParam::criticality_t::decode(c.id.get_index(), v); - }; - template bool encode(V& v, ProtocolIE_Field const& c) const - { - return IEsSetParam::criticality_t::encode(c.id.get_index(), v); - }; - }; - criticality_t& ref_criticality() {return criticality;} - criticality_t const& ref_criticality() const {return criticality;} - struct value_t : IEsSetParam::Value_t - { - static constexpr const char* name() {return "value_t";} - using parent_t = typename IEsSetParam::Value_t; - template bool decode(V& v, ProtocolIE_Field const& c) - { - return IEsSetParam::Value_t::decode(c.id.get_index(), v); - }; - template bool encode(V& v, ProtocolIE_Field const& c) const - { - return IEsSetParam::Value_t::encode(c.id.get_index(), v); - }; - }; - value_t& ref_value() {return value;} - value_t const& ref_value() const {return value;} - template void decode(V& v) - { - v(id); - v(criticality); - v(value); - - }; - template void encode(V& v) const - { - v(id); - v(criticality); - v(value); - - }; - void clear() - { - id.clear(); - criticality.clear(); - value.clear(); - - }; - private: - id_t id; - criticality_t criticality; - value_t value; - -}; -/* -ProtocolIE-Container {X2AP-PROTOCOL-IES : IEsSetParam} ::= - SEQUENCE (SIZE (0..maxProtocolIEs)) OF - ProtocolIE-Field {{IEsSetParam}} -*/ - -template -struct ProtocolIE_Container_elm : ProtocolIE_Field -{ - static constexpr const char* name() {return "ProtocolIE_Container_elm";} - using parent_t = ProtocolIE_Field; - -}; -template -struct ProtocolIE_Container : asn::sequenceof > -{ - static constexpr const char* name() {return "ProtocolIE-Container";} - using parent_t = asn::sequenceof >; - using constraint_t = asn::constraints>; - -}; -/* -ProtocolIE-ContainerList {INTEGER : lowerBound, INTEGER : upperBound, X2AP-PROTOCOL-IES : IEsSetParam} ::= - SEQUENCE (SIZE (lowerBound..upperBound)) OF - ProtocolIE-Container {{IEsSetParam}} -*/ - -template -struct ProtocolIE_ContainerList_elm : ProtocolIE_Container -{ - static constexpr const char* name() {return "ProtocolIE_ContainerList_elm";} - using parent_t = ProtocolIE_Container; - -}; -template -struct ProtocolIE_ContainerList : asn::sequenceof > -{ - static constexpr const char* name() {return "ProtocolIE-ContainerList";} - using parent_t = asn::sequenceof >; - using constraint_t = asn::constraints>; - -}; -/* -X2AP-PROTOCOL-IES-PAIR ::= CLASS { - &id ProtocolIE-ID UNIQUE, - &firstCriticality Criticality, - &FirstValue, - &secondCriticality Criticality, - &SecondValue, - &presence Presence -} -WITH SYNTAX { - ID &id - FIRST CRITICALITY &firstCriticality - FIRST TYPE &FirstValue - SECOND CRITICALITY &secondCriticality - SECOND TYPE &SecondValue - PRESENCE &presence -} -*/ - -struct X2AP_PROTOCOL_IES_PAIR -{ - struct id_t : ProtocolIE_ID - { - static constexpr const char* name() {return "id_t";} - using parent_t = ProtocolIE_ID; - - }; - struct firstCriticality_t : Criticality - { - static constexpr const char* name() {return "firstCriticality_t";} - using parent_t = Criticality; - - }; - struct secondCriticality_t : Criticality - { - static constexpr const char* name() {return "secondCriticality_t";} - using parent_t = Criticality; - - }; - struct presence_t : Presence - { - static constexpr const char* name() {return "presence_t";} - using parent_t = Presence; - - }; - -}; -/* -ProtocolIE-FieldPair {X2AP-PROTOCOL-IES-PAIR : IEsSetParam} ::= SEQUENCE { - id X2AP-PROTOCOL-IES-PAIR.&id ({IEsSetParam}), - firstCriticality X2AP-PROTOCOL-IES-PAIR.&firstCriticality ({IEsSetParam}{@id}), - firstValue X2AP-PROTOCOL-IES-PAIR.&FirstValue ({IEsSetParam}{@id}), - secondCriticality X2AP-PROTOCOL-IES-PAIR.&secondCriticality ({IEsSetParam}{@id}), - secondValue X2AP-PROTOCOL-IES-PAIR.&SecondValue ({IEsSetParam}{@id}) -} -*/ - -template -struct ProtocolIE_FieldPair : asn::sequence<5, 0, false, 0> -{ - static constexpr const char* name() {return "ProtocolIE-FieldPair";} - using parent_t = asn::sequence<5, 0, false, 0>; - struct id_t : IEsSetParam::id_t - { - static constexpr const char* name() {return "id_t";} - using parent_t = typename IEsSetParam::id_t; - template bool decode(V& v, ProtocolIE_FieldPair const& c) - { - return IEsSetParam::id_t::decode(v); - }; - template bool encode(V& v, ProtocolIE_FieldPair const& c) const - { - return IEsSetParam::id_t::encode(v); - }; - }; - id_t& ref_id() {return id;} - id_t const& ref_id() const {return id;} - struct firstCriticality_t : IEsSetParam::firstCriticality_t - { - static constexpr const char* name() {return "firstCriticality_t";} - using parent_t = typename IEsSetParam::firstCriticality_t; - template bool decode(V& v, ProtocolIE_FieldPair const& c) - { - return IEsSetParam::firstCriticality_t::decode(c.id.get_index(), v); - }; - template bool encode(V& v, ProtocolIE_FieldPair const& c) const - { - return IEsSetParam::firstCriticality_t::encode(c.id.get_index(), v); - }; - }; - firstCriticality_t& ref_firstCriticality() {return firstCriticality;} - firstCriticality_t const& ref_firstCriticality() const {return firstCriticality;} - struct firstValue_t : IEsSetParam::FirstValue_t - { - static constexpr const char* name() {return "firstValue_t";} - using parent_t = typename IEsSetParam::FirstValue_t; - template bool decode(V& v, ProtocolIE_FieldPair const& c) - { - return IEsSetParam::FirstValue_t::decode(c.id.get_index(), v); - }; - template bool encode(V& v, ProtocolIE_FieldPair const& c) const - { - return IEsSetParam::FirstValue_t::encode(c.id.get_index(), v); - }; - }; - firstValue_t& ref_firstValue() {return firstValue;} - firstValue_t const& ref_firstValue() const {return firstValue;} - struct secondCriticality_t : IEsSetParam::secondCriticality_t - { - static constexpr const char* name() {return "secondCriticality_t";} - using parent_t = typename IEsSetParam::secondCriticality_t; - template bool decode(V& v, ProtocolIE_FieldPair const& c) - { - return IEsSetParam::secondCriticality_t::decode(c.id.get_index(), v); - }; - template bool encode(V& v, ProtocolIE_FieldPair const& c) const - { - return IEsSetParam::secondCriticality_t::encode(c.id.get_index(), v); - }; - }; - secondCriticality_t& ref_secondCriticality() {return secondCriticality;} - secondCriticality_t const& ref_secondCriticality() const {return secondCriticality;} - struct secondValue_t : IEsSetParam::SecondValue_t - { - static constexpr const char* name() {return "secondValue_t";} - using parent_t = typename IEsSetParam::SecondValue_t; - template bool decode(V& v, ProtocolIE_FieldPair const& c) - { - return IEsSetParam::SecondValue_t::decode(c.id.get_index(), v); - }; - template bool encode(V& v, ProtocolIE_FieldPair const& c) const - { - return IEsSetParam::SecondValue_t::encode(c.id.get_index(), v); - }; - }; - secondValue_t& ref_secondValue() {return secondValue;} - secondValue_t const& ref_secondValue() const {return secondValue;} - template void decode(V& v) - { - v(id); - v(firstCriticality); - v(firstValue); - v(secondCriticality); - v(secondValue); - - }; - template void encode(V& v) const - { - v(id); - v(firstCriticality); - v(firstValue); - v(secondCriticality); - v(secondValue); - - }; - void clear() - { - id.clear(); - firstCriticality.clear(); - firstValue.clear(); - secondCriticality.clear(); - secondValue.clear(); - - }; - private: - id_t id; - firstCriticality_t firstCriticality; - firstValue_t firstValue; - secondCriticality_t secondCriticality; - secondValue_t secondValue; - -}; -/* -ProtocolIE-ContainerPair {X2AP-PROTOCOL-IES-PAIR : IEsSetParam} ::= - SEQUENCE (SIZE (0..maxProtocolIEs)) OF - ProtocolIE-FieldPair {{IEsSetParam}} -*/ - -template -struct ProtocolIE_ContainerPair_elm : ProtocolIE_FieldPair -{ - static constexpr const char* name() {return "ProtocolIE_ContainerPair_elm";} - using parent_t = ProtocolIE_FieldPair; - -}; -template -struct ProtocolIE_ContainerPair : asn::sequenceof > -{ - static constexpr const char* name() {return "ProtocolIE-ContainerPair";} - using parent_t = asn::sequenceof >; - using constraint_t = asn::constraints>; - -}; -/* -ProtocolIE-ContainerPairList {INTEGER : lowerBound, INTEGER : upperBound, X2AP-PROTOCOL-IES-PAIR : IEsSetParam} ::= - SEQUENCE (SIZE (lowerBound..upperBound)) OF - ProtocolIE-ContainerPair {{IEsSetParam}} -*/ - -template -struct ProtocolIE_ContainerPairList_elm : ProtocolIE_ContainerPair -{ - static constexpr const char* name() {return "ProtocolIE_ContainerPairList_elm";} - using parent_t = ProtocolIE_ContainerPair; - -}; -template -struct ProtocolIE_ContainerPairList : asn::sequenceof > -{ - static constexpr const char* name() {return "ProtocolIE-ContainerPairList";} - using parent_t = asn::sequenceof >; - using constraint_t = asn::constraints>; - -}; -/* -ProtocolIE-Single-Container {X2AP-PROTOCOL-IES : IEsSetParam} ::= - ProtocolIE-Field {{IEsSetParam}} -*/ - -template -struct ProtocolIE_Single_Container : ProtocolIE_Field -{ - static constexpr const char* name() {return "ProtocolIE-Single-Container";} - using parent_t = ProtocolIE_Field; - -}; diff --git a/e2sim/previous/e2apv1sim/ricsim/src/ASN1/generated/X2AP-IEs.hpp b/e2sim/previous/e2apv1sim/ricsim/src/ASN1/generated/X2AP-IEs.hpp deleted file mode 100644 index f056563..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/ASN1/generated/X2AP-IEs.hpp +++ /dev/null @@ -1,35962 +0,0 @@ -/***************************************************************************** -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -#pragma once - -#include "asn/asn.hpp" -static_assert(ASN_API_VERSION_MAJOR == 5, "re-generate the ASN parser's code using 'make regen-asn' (do not use -j option)"); - -#include "X2AP-Constants.hpp" -#include "X2AP-CommonDataTypes.hpp" -#include "X2AP-Containers.hpp" - -/* -DL-ABS-status::= INTEGER (0..100) -*/ - -struct DL_ABS_status : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "DL-ABS-status";} - using parent_t = asn::integer<>; - -}; - -/* -UsableABSInformationFDD-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct UsableABSInformationFDD_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -UsableABSInformationFDD ::= SEQUENCE { - usable-abs-pattern-info BIT STRING (SIZE(40)), - iE-Extensions ProtocolExtensionContainer { {UsableABSInformationFDD-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct UsableABSInformationFDD : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "UsableABSInformationFDD";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct usable_abs_pattern_info_t : asn::bstring<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "usable_abs_pattern_info_t";} - using parent_t = asn::bstring<>; - - }; - - usable_abs_pattern_info_t& ref_usable_abs_pattern_info() {return usable_abs_pattern_info;} - usable_abs_pattern_info_t const& ref_usable_abs_pattern_info() const {return usable_abs_pattern_info;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(usable_abs_pattern_info); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(usable_abs_pattern_info); - v(iE_Extensions); - - }; - void clear() - { - usable_abs_pattern_info.clear(); - iE_Extensions.clear(); - - }; - private: - usable_abs_pattern_info_t usable_abs_pattern_info; - iE_Extensions_t iE_Extensions; - -}; -/* -UsableABSInformationTDD-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct UsableABSInformationTDD_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -UsableABSInformationTDD ::= SEQUENCE { - usaable-abs-pattern-info BIT STRING (SIZE(1..70, ...)), - iE-Extensions ProtocolExtensionContainer { {UsableABSInformationTDD-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct UsableABSInformationTDD : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "UsableABSInformationTDD";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct usaable_abs_pattern_info_t : asn::bstring<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "usaable_abs_pattern_info_t";} - using parent_t = asn::bstring<>; - - }; - - usaable_abs_pattern_info_t& ref_usaable_abs_pattern_info() {return usaable_abs_pattern_info;} - usaable_abs_pattern_info_t const& ref_usaable_abs_pattern_info() const {return usaable_abs_pattern_info;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(usaable_abs_pattern_info); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(usaable_abs_pattern_info); - v(iE_Extensions); - - }; - void clear() - { - usaable_abs_pattern_info.clear(); - iE_Extensions.clear(); - - }; - private: - usaable_abs_pattern_info_t usaable_abs_pattern_info; - iE_Extensions_t iE_Extensions; - -}; -/* -UsableABSInformation ::= CHOICE { - fdd UsableABSInformationFDD, - tdd UsableABSInformationTDD, - ... -} -*/ - -struct UsableABSInformation : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "UsableABSInformation";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~UsableABSInformation() {clear();} - struct fdd_t : UsableABSInformationFDD - { - static constexpr const char* name() {return "fdd_t";} - using parent_t = UsableABSInformationFDD; - - }; - struct tdd_t : UsableABSInformationTDD - { - static constexpr const char* name() {return "tdd_t";} - using parent_t = UsableABSInformationTDD; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - fdd_t& select_fdd() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - fdd_t const* get_fdd() const { if(get_index() == 1) { return &var.as();} return nullptr; } - tdd_t& select_tdd() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - tdd_t const* get_tdd() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(fdd_t)]; - char dummy2[sizeof(tdd_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -ABS-Status-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct ABS_Status_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ABS-Status ::= SEQUENCE { - dL-ABS-status DL-ABS-status, - usableABSInformation UsableABSInformation, - iE-Extensions ProtocolExtensionContainer { {ABS-Status-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct ABS_Status : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "ABS-Status";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct dL_ABS_status_t : DL_ABS_status - { - static constexpr const char* name() {return "dL_ABS_status_t";} - using parent_t = DL_ABS_status; - - }; - dL_ABS_status_t& ref_dL_ABS_status() {return dL_ABS_status;} - dL_ABS_status_t const& ref_dL_ABS_status() const {return dL_ABS_status;} - struct usableABSInformation_t : UsableABSInformation - { - static constexpr const char* name() {return "usableABSInformation_t";} - using parent_t = UsableABSInformation; - - }; - usableABSInformation_t& ref_usableABSInformation() {return usableABSInformation;} - usableABSInformation_t const& ref_usableABSInformation() const {return usableABSInformation;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(dL_ABS_status); - v(usableABSInformation); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(dL_ABS_status); - v(usableABSInformation); - v(iE_Extensions); - - }; - void clear() - { - dL_ABS_status.clear(); - usableABSInformation.clear(); - iE_Extensions.clear(); - - }; - private: - dL_ABS_status_t dL_ABS_status; - usableABSInformation_t usableABSInformation; - iE_Extensions_t iE_Extensions; - -}; -/* -ABSInformationFDD-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct ABSInformationFDD_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ABSInformationFDD ::= SEQUENCE { - abs-pattern-info BIT STRING (SIZE(40)), - numberOfCellSpecificAntennaPorts ENUMERATED {one, two, four, ...}, - measurement-subset BIT STRING (SIZE(40)), - iE-Extensions ProtocolExtensionContainer { {ABSInformationFDD-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct ABSInformationFDD : asn::sequence<4, 0, true, 1> -{ - static constexpr const char* name() {return "ABSInformationFDD";} - using parent_t = asn::sequence<4, 0, true, 1>; - struct abs_pattern_info_t : asn::bstring<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "abs_pattern_info_t";} - using parent_t = asn::bstring<>; - - }; - - abs_pattern_info_t& ref_abs_pattern_info() {return abs_pattern_info;} - abs_pattern_info_t const& ref_abs_pattern_info() const {return abs_pattern_info;} - struct numberOfCellSpecificAntennaPorts_t : asn::enumerated<3, 0, true> - { - static constexpr const char* name() {return "numberOfCellSpecificAntennaPorts_t";} - using parent_t = asn::enumerated<3, 0, true>; - typedef enum { - one - ,two - ,four - } index_t; - - }; - - numberOfCellSpecificAntennaPorts_t& ref_numberOfCellSpecificAntennaPorts() {return numberOfCellSpecificAntennaPorts;} - numberOfCellSpecificAntennaPorts_t const& ref_numberOfCellSpecificAntennaPorts() const {return numberOfCellSpecificAntennaPorts;} - struct measurement_subset_t : asn::bstring<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "measurement_subset_t";} - using parent_t = asn::bstring<>; - - }; - - measurement_subset_t& ref_measurement_subset() {return measurement_subset;} - measurement_subset_t const& ref_measurement_subset() const {return measurement_subset;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(abs_pattern_info); - v(numberOfCellSpecificAntennaPorts); - v(measurement_subset); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(abs_pattern_info); - v(numberOfCellSpecificAntennaPorts); - v(measurement_subset); - v(iE_Extensions); - - }; - void clear() - { - abs_pattern_info.clear(); - numberOfCellSpecificAntennaPorts.clear(); - measurement_subset.clear(); - iE_Extensions.clear(); - - }; - private: - abs_pattern_info_t abs_pattern_info; - numberOfCellSpecificAntennaPorts_t numberOfCellSpecificAntennaPorts; - measurement_subset_t measurement_subset; - iE_Extensions_t iE_Extensions; - -}; -/* -ABSInformationTDD-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct ABSInformationTDD_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ABSInformationTDD ::= SEQUENCE { - abs-pattern-info BIT STRING (SIZE(1..70, ...)), - numberOfCellSpecificAntennaPorts ENUMERATED {one, two, four, ...}, - measurement-subset BIT STRING (SIZE(1..70, ...)), - iE-Extensions ProtocolExtensionContainer { {ABSInformationTDD-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct ABSInformationTDD : asn::sequence<4, 0, true, 1> -{ - static constexpr const char* name() {return "ABSInformationTDD";} - using parent_t = asn::sequence<4, 0, true, 1>; - struct abs_pattern_info_t : asn::bstring<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "abs_pattern_info_t";} - using parent_t = asn::bstring<>; - - }; - - abs_pattern_info_t& ref_abs_pattern_info() {return abs_pattern_info;} - abs_pattern_info_t const& ref_abs_pattern_info() const {return abs_pattern_info;} - struct numberOfCellSpecificAntennaPorts_t : asn::enumerated<3, 0, true> - { - static constexpr const char* name() {return "numberOfCellSpecificAntennaPorts_t";} - using parent_t = asn::enumerated<3, 0, true>; - typedef enum { - one - ,two - ,four - } index_t; - - }; - - numberOfCellSpecificAntennaPorts_t& ref_numberOfCellSpecificAntennaPorts() {return numberOfCellSpecificAntennaPorts;} - numberOfCellSpecificAntennaPorts_t const& ref_numberOfCellSpecificAntennaPorts() const {return numberOfCellSpecificAntennaPorts;} - struct measurement_subset_t : asn::bstring<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "measurement_subset_t";} - using parent_t = asn::bstring<>; - - }; - - measurement_subset_t& ref_measurement_subset() {return measurement_subset;} - measurement_subset_t const& ref_measurement_subset() const {return measurement_subset;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(abs_pattern_info); - v(numberOfCellSpecificAntennaPorts); - v(measurement_subset); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(abs_pattern_info); - v(numberOfCellSpecificAntennaPorts); - v(measurement_subset); - v(iE_Extensions); - - }; - void clear() - { - abs_pattern_info.clear(); - numberOfCellSpecificAntennaPorts.clear(); - measurement_subset.clear(); - iE_Extensions.clear(); - - }; - private: - abs_pattern_info_t abs_pattern_info; - numberOfCellSpecificAntennaPorts_t numberOfCellSpecificAntennaPorts; - measurement_subset_t measurement_subset; - iE_Extensions_t iE_Extensions; - -}; -/* -ABSInformation ::= CHOICE { - fdd ABSInformationFDD, - tdd ABSInformationTDD, - abs-inactive NULL, - ... -} -*/ - -struct ABSInformation : asn::choice<3, 0, true> -{ - static constexpr const char* name() {return "ABSInformation";} - using parent_t = asn::choice<3, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 4;} - void set_unknown() { set_index(4); } - ~ABSInformation() {clear();} - struct fdd_t : ABSInformationFDD - { - static constexpr const char* name() {return "fdd_t";} - using parent_t = ABSInformationFDD; - - }; - struct tdd_t : ABSInformationTDD - { - static constexpr const char* name() {return "tdd_t";} - using parent_t = ABSInformationTDD; - - }; - struct abs_inactive_t : asn::nulltype - { - static constexpr const char* name() {return "abs_inactive_t";} - using parent_t = asn::nulltype; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - case 3: set_index(3); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - case 3: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - - } - fdd_t& select_fdd() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - fdd_t const* get_fdd() const { if(get_index() == 1) { return &var.as();} return nullptr; } - tdd_t& select_tdd() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - tdd_t const* get_tdd() const { if(get_index() == 2) { return &var.as();} return nullptr; } - abs_inactive_t& select_abs_inactive() { if(get_index() != 3) { clear(); set_index(3); return var.build();} return var.as();} - abs_inactive_t const* get_abs_inactive() const { if(get_index() == 3) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(fdd_t)]; - char dummy2[sizeof(tdd_t)]; - char dummy3[sizeof(abs_inactive_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -Key-eNodeB-Star ::= BIT STRING (SIZE(256)) -*/ - -struct Key_eNodeB_Star : asn::bstring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "Key-eNodeB-Star";} - using parent_t = asn::bstring<>; - -}; - -/* -NextHopChainingCount ::= INTEGER (0..7) -*/ - -struct NextHopChainingCount : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "NextHopChainingCount";} - using parent_t = asn::integer<>; - -}; - -/* -AS-SecurityInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct AS_SecurityInformation_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -AS-SecurityInformation ::= SEQUENCE { - key-eNodeB-star Key-eNodeB-Star, - nextHopChainingCount NextHopChainingCount, - iE-Extensions ProtocolExtensionContainer { {AS-SecurityInformation-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct AS_SecurityInformation : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "AS-SecurityInformation";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct key_eNodeB_star_t : Key_eNodeB_Star - { - static constexpr const char* name() {return "key_eNodeB_star_t";} - using parent_t = Key_eNodeB_Star; - - }; - key_eNodeB_star_t& ref_key_eNodeB_star() {return key_eNodeB_star;} - key_eNodeB_star_t const& ref_key_eNodeB_star() const {return key_eNodeB_star;} - struct nextHopChainingCount_t : NextHopChainingCount - { - static constexpr const char* name() {return "nextHopChainingCount_t";} - using parent_t = NextHopChainingCount; - - }; - nextHopChainingCount_t& ref_nextHopChainingCount() {return nextHopChainingCount;} - nextHopChainingCount_t const& ref_nextHopChainingCount() const {return nextHopChainingCount;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(key_eNodeB_star); - v(nextHopChainingCount); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(key_eNodeB_star); - v(nextHopChainingCount); - v(iE_Extensions); - - }; - void clear() - { - key_eNodeB_star.clear(); - nextHopChainingCount.clear(); - iE_Extensions.clear(); - - }; - private: - key_eNodeB_star_t key_eNodeB_star; - nextHopChainingCount_t nextHopChainingCount; - iE_Extensions_t iE_Extensions; - -}; -/* -ActivationID ::= INTEGER (0..255) -*/ - -struct ActivationID : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "ActivationID";} - using parent_t = asn::integer<>; - -}; - -/* -AdditionalSpecialSubframePatterns ::= ENUMERATED { - ssp0, - ssp1, - ssp2, - ssp3, - ssp4, - ssp5, - ssp6, - ssp7, - ssp8, - ssp9, - ... -} -*/ - -struct AdditionalSpecialSubframePatterns : asn::enumerated<10, 0, true> -{ - static constexpr const char* name() {return "AdditionalSpecialSubframePatterns";} - using parent_t = asn::enumerated<10, 0, true>; - typedef enum { - ssp0 - ,ssp1 - ,ssp2 - ,ssp3 - ,ssp4 - ,ssp5 - ,ssp6 - ,ssp7 - ,ssp8 - ,ssp9 - } index_t; - -}; - -/* -CyclicPrefixDL ::= ENUMERATED { - normal, - extended, - ... -} -*/ - -struct CyclicPrefixDL : asn::enumerated<2, 0, true> -{ - static constexpr const char* name() {return "CyclicPrefixDL";} - using parent_t = asn::enumerated<2, 0, true>; - typedef enum { - normal - ,extended - } index_t; - -}; - -/* -CyclicPrefixUL ::= ENUMERATED { - normal, - extended, - ... -} -*/ - -struct CyclicPrefixUL : asn::enumerated<2, 0, true> -{ - static constexpr const char* name() {return "CyclicPrefixUL";} - using parent_t = asn::enumerated<2, 0, true>; - typedef enum { - normal - ,extended - } index_t; - -}; - -/* -AdditionalSpecialSubframe-Info-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct AdditionalSpecialSubframe_Info_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -AdditionalSpecialSubframe-Info ::= SEQUENCE { - additionalspecialSubframePatterns AdditionalSpecialSubframePatterns, - cyclicPrefixDL CyclicPrefixDL, - cyclicPrefixUL CyclicPrefixUL, - iE-Extensions ProtocolExtensionContainer { {AdditionalSpecialSubframe-Info-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct AdditionalSpecialSubframe_Info : asn::sequence<4, 0, true, 1> -{ - static constexpr const char* name() {return "AdditionalSpecialSubframe-Info";} - using parent_t = asn::sequence<4, 0, true, 1>; - struct additionalspecialSubframePatterns_t : AdditionalSpecialSubframePatterns - { - static constexpr const char* name() {return "additionalspecialSubframePatterns_t";} - using parent_t = AdditionalSpecialSubframePatterns; - - }; - additionalspecialSubframePatterns_t& ref_additionalspecialSubframePatterns() {return additionalspecialSubframePatterns;} - additionalspecialSubframePatterns_t const& ref_additionalspecialSubframePatterns() const {return additionalspecialSubframePatterns;} - struct cyclicPrefixDL_t : CyclicPrefixDL - { - static constexpr const char* name() {return "cyclicPrefixDL_t";} - using parent_t = CyclicPrefixDL; - - }; - cyclicPrefixDL_t& ref_cyclicPrefixDL() {return cyclicPrefixDL;} - cyclicPrefixDL_t const& ref_cyclicPrefixDL() const {return cyclicPrefixDL;} - struct cyclicPrefixUL_t : CyclicPrefixUL - { - static constexpr const char* name() {return "cyclicPrefixUL_t";} - using parent_t = CyclicPrefixUL; - - }; - cyclicPrefixUL_t& ref_cyclicPrefixUL() {return cyclicPrefixUL;} - cyclicPrefixUL_t const& ref_cyclicPrefixUL() const {return cyclicPrefixUL;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(additionalspecialSubframePatterns); - v(cyclicPrefixDL); - v(cyclicPrefixUL); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(additionalspecialSubframePatterns); - v(cyclicPrefixDL); - v(cyclicPrefixUL); - v(iE_Extensions); - - }; - void clear() - { - additionalspecialSubframePatterns.clear(); - cyclicPrefixDL.clear(); - cyclicPrefixUL.clear(); - iE_Extensions.clear(); - - }; - private: - additionalspecialSubframePatterns_t additionalspecialSubframePatterns; - cyclicPrefixDL_t cyclicPrefixDL; - cyclicPrefixUL_t cyclicPrefixUL; - iE_Extensions_t iE_Extensions; - -}; -/* -AdditionalSpecialSubframePatternsExtension ::= ENUMERATED { - ssp10, - ... -} -*/ - -struct AdditionalSpecialSubframePatternsExtension : asn::enumerated<1, 0, true> -{ - static constexpr const char* name() {return "AdditionalSpecialSubframePatternsExtension";} - using parent_t = asn::enumerated<1, 0, true>; - typedef enum { - ssp10 - } index_t; - -}; - -/* -AdditionalSpecialSubframeExtension-Info-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct AdditionalSpecialSubframeExtension_Info_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -AdditionalSpecialSubframeExtension-Info ::= SEQUENCE { - additionalspecialSubframePatternsExtension AdditionalSpecialSubframePatternsExtension, - cyclicPrefixDL CyclicPrefixDL, - cyclicPrefixUL CyclicPrefixUL, - iE-Extensions ProtocolExtensionContainer { {AdditionalSpecialSubframeExtension-Info-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct AdditionalSpecialSubframeExtension_Info : asn::sequence<4, 0, true, 1> -{ - static constexpr const char* name() {return "AdditionalSpecialSubframeExtension-Info";} - using parent_t = asn::sequence<4, 0, true, 1>; - struct additionalspecialSubframePatternsExtension_t : AdditionalSpecialSubframePatternsExtension - { - static constexpr const char* name() {return "additionalspecialSubframePatternsExtension_t";} - using parent_t = AdditionalSpecialSubframePatternsExtension; - - }; - additionalspecialSubframePatternsExtension_t& ref_additionalspecialSubframePatternsExtension() {return additionalspecialSubframePatternsExtension;} - additionalspecialSubframePatternsExtension_t const& ref_additionalspecialSubframePatternsExtension() const {return additionalspecialSubframePatternsExtension;} - struct cyclicPrefixDL_t : CyclicPrefixDL - { - static constexpr const char* name() {return "cyclicPrefixDL_t";} - using parent_t = CyclicPrefixDL; - - }; - cyclicPrefixDL_t& ref_cyclicPrefixDL() {return cyclicPrefixDL;} - cyclicPrefixDL_t const& ref_cyclicPrefixDL() const {return cyclicPrefixDL;} - struct cyclicPrefixUL_t : CyclicPrefixUL - { - static constexpr const char* name() {return "cyclicPrefixUL_t";} - using parent_t = CyclicPrefixUL; - - }; - cyclicPrefixUL_t& ref_cyclicPrefixUL() {return cyclicPrefixUL;} - cyclicPrefixUL_t const& ref_cyclicPrefixUL() const {return cyclicPrefixUL;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(additionalspecialSubframePatternsExtension); - v(cyclicPrefixDL); - v(cyclicPrefixUL); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(additionalspecialSubframePatternsExtension); - v(cyclicPrefixDL); - v(cyclicPrefixUL); - v(iE_Extensions); - - }; - void clear() - { - additionalspecialSubframePatternsExtension.clear(); - cyclicPrefixDL.clear(); - cyclicPrefixUL.clear(); - iE_Extensions.clear(); - - }; - private: - additionalspecialSubframePatternsExtension_t additionalspecialSubframePatternsExtension; - cyclicPrefixDL_t cyclicPrefixDL; - cyclicPrefixUL_t cyclicPrefixUL; - iE_Extensions_t iE_Extensions; - -}; -/* -AerialUEsubscriptionInformation ::= ENUMERATED { - allowed, - not-allowed, - ... -} -*/ - -struct AerialUEsubscriptionInformation : asn::enumerated<2, 0, true> -{ - static constexpr const char* name() {return "AerialUEsubscriptionInformation";} - using parent_t = asn::enumerated<2, 0, true>; - typedef enum { - allowed - ,not_allowed - } index_t; - -}; - -/* -PriorityLevel ::= INTEGER { spare (0), highest (1), lowest (14), no-priority (15) } (0..15) -*/ - -struct PriorityLevel : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "PriorityLevel";} - using parent_t = asn::integer<>; - enum {spare = 0, highest = 1, lowest = 14, no_priority = 15}; - -}; - -/* -Pre-emptionCapability ::= ENUMERATED { - shall-not-trigger-pre-emption, - may-trigger-pre-emption -} -*/ - -struct Pre_emptionCapability : asn::enumerated<2, 0, false> -{ - static constexpr const char* name() {return "Pre-emptionCapability";} - using parent_t = asn::enumerated<2, 0, false>; - typedef enum { - shall_not_trigger_pre_emption - ,may_trigger_pre_emption - } index_t; - -}; - -/* -Pre-emptionVulnerability ::= ENUMERATED { - not-pre-emptable, - pre-emptable -} -*/ - -struct Pre_emptionVulnerability : asn::enumerated<2, 0, false> -{ - static constexpr const char* name() {return "Pre-emptionVulnerability";} - using parent_t = asn::enumerated<2, 0, false>; - typedef enum { - not_pre_emptable - ,pre_emptable - } index_t; - -}; - -/* -AllocationAndRetentionPriority-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct AllocationAndRetentionPriority_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -AllocationAndRetentionPriority ::= SEQUENCE { - priorityLevel PriorityLevel, - pre-emptionCapability Pre-emptionCapability, - pre-emptionVulnerability Pre-emptionVulnerability, - iE-Extensions ProtocolExtensionContainer { {AllocationAndRetentionPriority-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct AllocationAndRetentionPriority : asn::sequence<4, 0, true, 1> -{ - static constexpr const char* name() {return "AllocationAndRetentionPriority";} - using parent_t = asn::sequence<4, 0, true, 1>; - struct priorityLevel_t : PriorityLevel - { - static constexpr const char* name() {return "priorityLevel_t";} - using parent_t = PriorityLevel; - - }; - priorityLevel_t& ref_priorityLevel() {return priorityLevel;} - priorityLevel_t const& ref_priorityLevel() const {return priorityLevel;} - struct pre_emptionCapability_t : Pre_emptionCapability - { - static constexpr const char* name() {return "pre_emptionCapability_t";} - using parent_t = Pre_emptionCapability; - - }; - pre_emptionCapability_t& ref_pre_emptionCapability() {return pre_emptionCapability;} - pre_emptionCapability_t const& ref_pre_emptionCapability() const {return pre_emptionCapability;} - struct pre_emptionVulnerability_t : Pre_emptionVulnerability - { - static constexpr const char* name() {return "pre_emptionVulnerability_t";} - using parent_t = Pre_emptionVulnerability; - - }; - pre_emptionVulnerability_t& ref_pre_emptionVulnerability() {return pre_emptionVulnerability;} - pre_emptionVulnerability_t const& ref_pre_emptionVulnerability() const {return pre_emptionVulnerability;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(priorityLevel); - v(pre_emptionCapability); - v(pre_emptionVulnerability); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(priorityLevel); - v(pre_emptionCapability); - v(pre_emptionVulnerability); - v(iE_Extensions); - - }; - void clear() - { - priorityLevel.clear(); - pre_emptionCapability.clear(); - pre_emptionVulnerability.clear(); - iE_Extensions.clear(); - - }; - private: - priorityLevel_t priorityLevel; - pre_emptionCapability_t pre_emptionCapability; - pre_emptionVulnerability_t pre_emptionVulnerability; - iE_Extensions_t iE_Extensions; - -}; -/* -PLMN-Identity ::= OCTET STRING (SIZE(3)) -*/ - -struct PLMN_Identity : asn::ostring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "PLMN-Identity";} - using parent_t = asn::ostring<>; - -}; - -/* -EUTRANCellIdentifier ::= BIT STRING (SIZE (28)) -*/ - -struct EUTRANCellIdentifier : asn::bstring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "EUTRANCellIdentifier";} - using parent_t = asn::bstring<>; - -}; - -/* -ECGI-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct ECGI_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ECGI ::= SEQUENCE { - pLMN-Identity PLMN-Identity, - eUTRANcellIdentifier EUTRANCellIdentifier, - iE-Extensions ProtocolExtensionContainer { {ECGI-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct ECGI : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "ECGI";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct pLMN_Identity_t : PLMN_Identity - { - static constexpr const char* name() {return "pLMN_Identity_t";} - using parent_t = PLMN_Identity; - - }; - pLMN_Identity_t& ref_pLMN_Identity() {return pLMN_Identity;} - pLMN_Identity_t const& ref_pLMN_Identity() const {return pLMN_Identity;} - struct eUTRANcellIdentifier_t : EUTRANCellIdentifier - { - static constexpr const char* name() {return "eUTRANcellIdentifier_t";} - using parent_t = EUTRANCellIdentifier; - - }; - eUTRANcellIdentifier_t& ref_eUTRANcellIdentifier() {return eUTRANcellIdentifier;} - eUTRANcellIdentifier_t const& ref_eUTRANcellIdentifier() const {return eUTRANcellIdentifier;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(pLMN_Identity); - v(eUTRANcellIdentifier); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(pLMN_Identity); - v(eUTRANcellIdentifier); - v(iE_Extensions); - - }; - void clear() - { - pLMN_Identity.clear(); - eUTRANcellIdentifier.clear(); - iE_Extensions.clear(); - - }; - private: - pLMN_Identity_t pLMN_Identity; - eUTRANcellIdentifier_t eUTRANcellIdentifier; - iE_Extensions_t iE_Extensions; - -}; -/* -CellIdListforMDT ::= SEQUENCE (SIZE(1..maxnoofCellIDforMDT)) OF ECGI -*/ - -struct CellIdListforMDT_elm : ECGI -{ - static constexpr const char* name() {return "CellIdListforMDT_elm";} - using parent_t = ECGI; - -}; -struct CellIdListforMDT : asn::sequenceof -{ - static constexpr const char* name() {return "CellIdListforMDT";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -CellBasedMDT-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct CellBasedMDT_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -CellBasedMDT::= SEQUENCE { - cellIdListforMDT CellIdListforMDT, - iE-Extensions ProtocolExtensionContainer { {CellBasedMDT-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct CellBasedMDT : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "CellBasedMDT";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct cellIdListforMDT_t : CellIdListforMDT - { - static constexpr const char* name() {return "cellIdListforMDT_t";} - using parent_t = CellIdListforMDT; - - }; - cellIdListforMDT_t& ref_cellIdListforMDT() {return cellIdListforMDT;} - cellIdListforMDT_t const& ref_cellIdListforMDT() const {return cellIdListforMDT;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(cellIdListforMDT); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(cellIdListforMDT); - v(iE_Extensions); - - }; - void clear() - { - cellIdListforMDT.clear(); - iE_Extensions.clear(); - - }; - private: - cellIdListforMDT_t cellIdListforMDT; - iE_Extensions_t iE_Extensions; - -}; -/* -TAC ::= OCTET STRING (SIZE (2)) -*/ - -struct TAC : asn::ostring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "TAC";} - using parent_t = asn::ostring<>; - -}; - -/* -TAListforMDT ::= SEQUENCE (SIZE(1..maxnoofTAforMDT)) OF TAC -*/ - -struct TAListforMDT_elm : TAC -{ - static constexpr const char* name() {return "TAListforMDT_elm";} - using parent_t = TAC; - -}; -struct TAListforMDT : asn::sequenceof -{ - static constexpr const char* name() {return "TAListforMDT";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -TABasedMDT-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct TABasedMDT_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -TABasedMDT::= SEQUENCE { - tAListforMDT TAListforMDT, - iE-Extensions ProtocolExtensionContainer { {TABasedMDT-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct TABasedMDT : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "TABasedMDT";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct tAListforMDT_t : TAListforMDT - { - static constexpr const char* name() {return "tAListforMDT_t";} - using parent_t = TAListforMDT; - - }; - tAListforMDT_t& ref_tAListforMDT() {return tAListforMDT;} - tAListforMDT_t const& ref_tAListforMDT() const {return tAListforMDT;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(tAListforMDT); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(tAListforMDT); - v(iE_Extensions); - - }; - void clear() - { - tAListforMDT.clear(); - iE_Extensions.clear(); - - }; - private: - tAListforMDT_t tAListforMDT; - iE_Extensions_t iE_Extensions; - -}; -/* -TAI-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct TAI_Item_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -TAI-Item ::= SEQUENCE { - tAC TAC, - pLMN-Identity PLMN-Identity, - iE-Extensions ProtocolExtensionContainer { {TAI-Item-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct TAI_Item : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "TAI-Item";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct tAC_t : TAC - { - static constexpr const char* name() {return "tAC_t";} - using parent_t = TAC; - - }; - tAC_t& ref_tAC() {return tAC;} - tAC_t const& ref_tAC() const {return tAC;} - struct pLMN_Identity_t : PLMN_Identity - { - static constexpr const char* name() {return "pLMN_Identity_t";} - using parent_t = PLMN_Identity; - - }; - pLMN_Identity_t& ref_pLMN_Identity() {return pLMN_Identity;} - pLMN_Identity_t const& ref_pLMN_Identity() const {return pLMN_Identity;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(tAC); - v(pLMN_Identity); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(tAC); - v(pLMN_Identity); - v(iE_Extensions); - - }; - void clear() - { - tAC.clear(); - pLMN_Identity.clear(); - iE_Extensions.clear(); - - }; - private: - tAC_t tAC; - pLMN_Identity_t pLMN_Identity; - iE_Extensions_t iE_Extensions; - -}; -/* -TAIListforMDT ::= SEQUENCE (SIZE(1..maxnoofTAforMDT)) OF TAI-Item -*/ - -struct TAIListforMDT_elm : TAI_Item -{ - static constexpr const char* name() {return "TAIListforMDT_elm";} - using parent_t = TAI_Item; - -}; -struct TAIListforMDT : asn::sequenceof -{ - static constexpr const char* name() {return "TAIListforMDT";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -TAIBasedMDT-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct TAIBasedMDT_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -TAIBasedMDT ::= SEQUENCE { - tAIListforMDT TAIListforMDT, - iE-Extensions ProtocolExtensionContainer { {TAIBasedMDT-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct TAIBasedMDT : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "TAIBasedMDT";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct tAIListforMDT_t : TAIListforMDT - { - static constexpr const char* name() {return "tAIListforMDT_t";} - using parent_t = TAIListforMDT; - - }; - tAIListforMDT_t& ref_tAIListforMDT() {return tAIListforMDT;} - tAIListforMDT_t const& ref_tAIListforMDT() const {return tAIListforMDT;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(tAIListforMDT); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(tAIListforMDT); - v(iE_Extensions); - - }; - void clear() - { - tAIListforMDT.clear(); - iE_Extensions.clear(); - - }; - private: - tAIListforMDT_t tAIListforMDT; - iE_Extensions_t iE_Extensions; - -}; -/* -AreaScopeOfMDT ::= CHOICE { - cellBased CellBasedMDT, - tABased TABasedMDT, - pLMNWide NULL, - ..., - tAIBased TAIBasedMDT -} -*/ - -struct AreaScopeOfMDT : asn::choice<4, 1, true> -{ - static constexpr const char* name() {return "AreaScopeOfMDT";} - using parent_t = asn::choice<4, 1, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 5;} - void set_unknown() { set_index(5); } - ~AreaScopeOfMDT() {clear();} - struct cellBased_t : CellBasedMDT - { - static constexpr const char* name() {return "cellBased_t";} - using parent_t = CellBasedMDT; - - }; - struct tABased_t : TABasedMDT - { - static constexpr const char* name() {return "tABased_t";} - using parent_t = TABasedMDT; - - }; - struct pLMNWide_t : asn::nulltype - { - static constexpr const char* name() {return "pLMNWide_t";} - using parent_t = asn::nulltype; - - }; - struct tAIBased_t : TAIBasedMDT - { - static constexpr const char* name() {return "tAIBased_t";} - using parent_t = TAIBasedMDT; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - case 3: set_index(3); return v(var.build()); - case 4: set_index(4); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - case 3: return v(var.as()); - case 4: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - - } - cellBased_t& select_cellBased() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - cellBased_t const* get_cellBased() const { if(get_index() == 1) { return &var.as();} return nullptr; } - tABased_t& select_tABased() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - tABased_t const* get_tABased() const { if(get_index() == 2) { return &var.as();} return nullptr; } - pLMNWide_t& select_pLMNWide() { if(get_index() != 3) { clear(); set_index(3); return var.build();} return var.as();} - pLMNWide_t const* get_pLMNWide() const { if(get_index() == 3) { return &var.as();} return nullptr; } - tAIBased_t& select_tAIBased() { if(get_index() != 4) { clear(); set_index(4); return var.build();} return var.as();} - tAIBased_t const* get_tAIBased() const { if(get_index() == 4) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(cellBased_t)]; - char dummy2[sizeof(tABased_t)]; - char dummy3[sizeof(pLMNWide_t)]; - char dummy4[sizeof(tAIBased_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -CellIdListforQMC ::= SEQUENCE (SIZE(1..maxnoofCellIDforQMC)) OF ECGI -*/ - -struct CellIdListforQMC_elm : ECGI -{ - static constexpr const char* name() {return "CellIdListforQMC_elm";} - using parent_t = ECGI; - -}; -struct CellIdListforQMC : asn::sequenceof -{ - static constexpr const char* name() {return "CellIdListforQMC";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -CellBasedQMC-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct CellBasedQMC_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -CellBasedQMC::= SEQUENCE { - cellIdListforQMC CellIdListforQMC, - iE-Extensions ProtocolExtensionContainer { {CellBasedQMC-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct CellBasedQMC : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "CellBasedQMC";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct cellIdListforQMC_t : CellIdListforQMC - { - static constexpr const char* name() {return "cellIdListforQMC_t";} - using parent_t = CellIdListforQMC; - - }; - cellIdListforQMC_t& ref_cellIdListforQMC() {return cellIdListforQMC;} - cellIdListforQMC_t const& ref_cellIdListforQMC() const {return cellIdListforQMC;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(cellIdListforQMC); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(cellIdListforQMC); - v(iE_Extensions); - - }; - void clear() - { - cellIdListforQMC.clear(); - iE_Extensions.clear(); - - }; - private: - cellIdListforQMC_t cellIdListforQMC; - iE_Extensions_t iE_Extensions; - -}; -/* -TAListforQMC ::= SEQUENCE (SIZE(1..maxnoofTAforQMC)) OF TAC -*/ - -struct TAListforQMC_elm : TAC -{ - static constexpr const char* name() {return "TAListforQMC_elm";} - using parent_t = TAC; - -}; -struct TAListforQMC : asn::sequenceof -{ - static constexpr const char* name() {return "TAListforQMC";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -TABasedQMC-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct TABasedQMC_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -TABasedQMC ::= SEQUENCE { - tAListforQMC TAListforQMC, - iE-Extensions ProtocolExtensionContainer { {TABasedQMC-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct TABasedQMC : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "TABasedQMC";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct tAListforQMC_t : TAListforQMC - { - static constexpr const char* name() {return "tAListforQMC_t";} - using parent_t = TAListforQMC; - - }; - tAListforQMC_t& ref_tAListforQMC() {return tAListforQMC;} - tAListforQMC_t const& ref_tAListforQMC() const {return tAListforQMC;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(tAListforQMC); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(tAListforQMC); - v(iE_Extensions); - - }; - void clear() - { - tAListforQMC.clear(); - iE_Extensions.clear(); - - }; - private: - tAListforQMC_t tAListforQMC; - iE_Extensions_t iE_Extensions; - -}; -/* -TAIListforQMC ::= SEQUENCE (SIZE(1..maxnoofTAforQMC)) OF TAI-Item -*/ - -struct TAIListforQMC_elm : TAI_Item -{ - static constexpr const char* name() {return "TAIListforQMC_elm";} - using parent_t = TAI_Item; - -}; -struct TAIListforQMC : asn::sequenceof -{ - static constexpr const char* name() {return "TAIListforQMC";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -TAIBasedQMC-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct TAIBasedQMC_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -TAIBasedQMC ::= SEQUENCE { - tAIListforQMC TAIListforQMC, - iE-Extensions ProtocolExtensionContainer { {TAIBasedQMC-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct TAIBasedQMC : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "TAIBasedQMC";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct tAIListforQMC_t : TAIListforQMC - { - static constexpr const char* name() {return "tAIListforQMC_t";} - using parent_t = TAIListforQMC; - - }; - tAIListforQMC_t& ref_tAIListforQMC() {return tAIListforQMC;} - tAIListforQMC_t const& ref_tAIListforQMC() const {return tAIListforQMC;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(tAIListforQMC); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(tAIListforQMC); - v(iE_Extensions); - - }; - void clear() - { - tAIListforQMC.clear(); - iE_Extensions.clear(); - - }; - private: - tAIListforQMC_t tAIListforQMC; - iE_Extensions_t iE_Extensions; - -}; -/* -PLMNListforQMC ::= SEQUENCE (SIZE(1..maxnoofPLMNforQMC)) OF PLMN-Identity -*/ - -struct PLMNListforQMC_elm : PLMN_Identity -{ - static constexpr const char* name() {return "PLMNListforQMC_elm";} - using parent_t = PLMN_Identity; - -}; -struct PLMNListforQMC : asn::sequenceof -{ - static constexpr const char* name() {return "PLMNListforQMC";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -PLMNAreaBasedQMC-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct PLMNAreaBasedQMC_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -PLMNAreaBasedQMC ::= SEQUENCE { - plmnListforQMC PLMNListforQMC, - iE-Extensions ProtocolExtensionContainer { {PLMNAreaBasedQMC-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct PLMNAreaBasedQMC : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "PLMNAreaBasedQMC";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct plmnListforQMC_t : PLMNListforQMC - { - static constexpr const char* name() {return "plmnListforQMC_t";} - using parent_t = PLMNListforQMC; - - }; - plmnListforQMC_t& ref_plmnListforQMC() {return plmnListforQMC;} - plmnListforQMC_t const& ref_plmnListforQMC() const {return plmnListforQMC;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(plmnListforQMC); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(plmnListforQMC); - v(iE_Extensions); - - }; - void clear() - { - plmnListforQMC.clear(); - iE_Extensions.clear(); - - }; - private: - plmnListforQMC_t plmnListforQMC; - iE_Extensions_t iE_Extensions; - -}; -/* -AreaScopeOfQMC ::= CHOICE { - cellBased CellBasedQMC, - tABased TABasedQMC, - tAIBased TAIBasedQMC, - pLMNAreaBased PLMNAreaBasedQMC, - ... -} -*/ - -struct AreaScopeOfQMC : asn::choice<4, 0, true> -{ - static constexpr const char* name() {return "AreaScopeOfQMC";} - using parent_t = asn::choice<4, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 5;} - void set_unknown() { set_index(5); } - ~AreaScopeOfQMC() {clear();} - struct cellBased_t : CellBasedQMC - { - static constexpr const char* name() {return "cellBased_t";} - using parent_t = CellBasedQMC; - - }; - struct tABased_t : TABasedQMC - { - static constexpr const char* name() {return "tABased_t";} - using parent_t = TABasedQMC; - - }; - struct tAIBased_t : TAIBasedQMC - { - static constexpr const char* name() {return "tAIBased_t";} - using parent_t = TAIBasedQMC; - - }; - struct pLMNAreaBased_t : PLMNAreaBasedQMC - { - static constexpr const char* name() {return "pLMNAreaBased_t";} - using parent_t = PLMNAreaBasedQMC; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - case 3: set_index(3); return v(var.build()); - case 4: set_index(4); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - case 3: return v(var.as()); - case 4: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - - } - cellBased_t& select_cellBased() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - cellBased_t const* get_cellBased() const { if(get_index() == 1) { return &var.as();} return nullptr; } - tABased_t& select_tABased() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - tABased_t const* get_tABased() const { if(get_index() == 2) { return &var.as();} return nullptr; } - tAIBased_t& select_tAIBased() { if(get_index() != 3) { clear(); set_index(3); return var.build();} return var.as();} - tAIBased_t const* get_tAIBased() const { if(get_index() == 3) { return &var.as();} return nullptr; } - pLMNAreaBased_t& select_pLMNAreaBased() { if(get_index() != 4) { clear(); set_index(4); return var.build();} return var.as();} - pLMNAreaBased_t const* get_pLMNAreaBased() const { if(get_index() == 4) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(cellBased_t)]; - char dummy2[sizeof(tABased_t)]; - char dummy3[sizeof(tAIBased_t)]; - char dummy4[sizeof(pLMNAreaBased_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -FreqBandIndicator ::= INTEGER (1..256, ...) -*/ - -struct FreqBandIndicator : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "FreqBandIndicator";} - using parent_t = asn::integer<>; - -}; - -/* -BandInfo-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct BandInfo_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -BandInfo ::= SEQUENCE { - freqBandIndicator FreqBandIndicator, - iE-Extensions ProtocolExtensionContainer { {BandInfo-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct BandInfo : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "BandInfo";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct freqBandIndicator_t : FreqBandIndicator - { - static constexpr const char* name() {return "freqBandIndicator_t";} - using parent_t = FreqBandIndicator; - - }; - freqBandIndicator_t& ref_freqBandIndicator() {return freqBandIndicator;} - freqBandIndicator_t const& ref_freqBandIndicator() const {return freqBandIndicator;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(freqBandIndicator); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(freqBandIndicator); - v(iE_Extensions); - - }; - void clear() - { - freqBandIndicator.clear(); - iE_Extensions.clear(); - - }; - private: - freqBandIndicator_t freqBandIndicator; - iE_Extensions_t iE_Extensions; - -}; -/* -BandwidthReducedSI::= ENUMERATED { - scheduled, - ... -} -*/ - -struct BandwidthReducedSI : asn::enumerated<1, 0, true> -{ - static constexpr const char* name() {return "BandwidthReducedSI";} - using parent_t = asn::enumerated<1, 0, true>; - typedef enum { - scheduled - } index_t; - -}; - -/* -BearerType ::= ENUMERATED { - non-IP, - ... -} -*/ - -struct BearerType : asn::enumerated<1, 0, true> -{ - static constexpr const char* name() {return "BearerType";} - using parent_t = asn::enumerated<1, 0, true>; - typedef enum { - non_IP - } index_t; - -}; - -/* -BenefitMetric ::= INTEGER (-101..100, ...) -*/ - -struct BenefitMetric : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "BenefitMetric";} - using parent_t = asn::integer<>; - -}; - -/* -BitRate ::= INTEGER (0..10000000000) -*/ - -struct BitRate : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "BitRate";} - using parent_t = asn::integer<>; - -}; - -/* -BluetoothMeasConfig::= ENUMERATED {setup,...} -*/ - -struct BluetoothMeasConfig : asn::enumerated<1, 0, true> -{ - static constexpr const char* name() {return "BluetoothMeasConfig";} - using parent_t = asn::enumerated<1, 0, true>; - typedef enum { - setup - } index_t; - -}; - -/* -BluetoothName ::= OCTET STRING (SIZE (1..248)) -*/ - -struct BluetoothName : asn::ostring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "BluetoothName";} - using parent_t = asn::ostring<>; - -}; - -/* -BluetoothMeasConfigNameList ::= SEQUENCE (SIZE(1..maxnoofBluetoothName)) OF BluetoothName -*/ - -struct BluetoothMeasConfigNameList_elm : BluetoothName -{ - static constexpr const char* name() {return "BluetoothMeasConfigNameList_elm";} - using parent_t = BluetoothName; - -}; -struct BluetoothMeasConfigNameList : asn::sequenceof -{ - static constexpr const char* name() {return "BluetoothMeasConfigNameList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -BluetoothMeasurementConfiguration-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct BluetoothMeasurementConfiguration_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -BluetoothMeasurementConfiguration ::= SEQUENCE { - bluetoothMeasConfig BluetoothMeasConfig, - bluetoothMeasConfigNameList BluetoothMeasConfigNameList OPTIONAL, - bt-rssi ENUMERATED {true, ...} OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {BluetoothMeasurementConfiguration-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct BluetoothMeasurementConfiguration : asn::sequence<4, 0, true, 3> -{ - static constexpr const char* name() {return "BluetoothMeasurementConfiguration";} - using parent_t = asn::sequence<4, 0, true, 3>; - struct bluetoothMeasConfig_t : BluetoothMeasConfig - { - static constexpr const char* name() {return "bluetoothMeasConfig_t";} - using parent_t = BluetoothMeasConfig; - - }; - bluetoothMeasConfig_t& ref_bluetoothMeasConfig() {return bluetoothMeasConfig;} - bluetoothMeasConfig_t const& ref_bluetoothMeasConfig() const {return bluetoothMeasConfig;} - struct bluetoothMeasConfigNameList_t : BluetoothMeasConfigNameList - { - static constexpr const char* name() {return "bluetoothMeasConfigNameList_t";} - using parent_t = BluetoothMeasConfigNameList; - static constexpr bool optional = true; - - }; - bluetoothMeasConfigNameList_t& set_bluetoothMeasConfigNameList() { bluetoothMeasConfigNameList.setpresent(true); return bluetoothMeasConfigNameList;} - bluetoothMeasConfigNameList_t const* get_bluetoothMeasConfigNameList() const {return bluetoothMeasConfigNameList.is_valid() ? &bluetoothMeasConfigNameList : nullptr;} - struct bt_rssi_t : asn::enumerated<1, 0, true> - { - static constexpr const char* name() {return "bt_rssi_t";} - using parent_t = asn::enumerated<1, 0, true>; - static constexpr bool optional = true; - typedef enum { - True - } index_t; - - }; - - bt_rssi_t& set_bt_rssi() { bt_rssi.setpresent(true); return bt_rssi;} - bt_rssi_t const* get_bt_rssi() const {return bt_rssi.is_valid() ? &bt_rssi : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(bluetoothMeasConfig); - v(bluetoothMeasConfigNameList); - v(bt_rssi); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(bluetoothMeasConfig); - v(bluetoothMeasConfigNameList); - v(bt_rssi); - v(iE_Extensions); - - }; - void clear() - { - bluetoothMeasConfig.clear(); - bluetoothMeasConfigNameList.clear(); - bt_rssi.clear(); - iE_Extensions.clear(); - - }; - private: - bluetoothMeasConfig_t bluetoothMeasConfig; - bluetoothMeasConfigNameList_t bluetoothMeasConfigNameList; - bt_rssi_t bt_rssi; - iE_Extensions_t iE_Extensions; - -}; -/* -BroadcastPLMNs-Item ::= SEQUENCE (SIZE(1..maxnoofBPLMNs)) OF PLMN-Identity -*/ - -struct BroadcastPLMNs_Item_elm : PLMN_Identity -{ - static constexpr const char* name() {return "BroadcastPLMNs_Item_elm";} - using parent_t = PLMN_Identity; - -}; -struct BroadcastPLMNs_Item : asn::sequenceof -{ - static constexpr const char* name() {return "BroadcastPLMNs-Item";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -CNTypeRestrictionsItem-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct CNTypeRestrictionsItem_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -CNTypeRestrictionsItem ::= SEQUENCE { - plmn-Id PLMN-Identity, - cn-type ENUMERATED {fiveGC-forbidden, ...}, - iE-Extensions ProtocolExtensionContainer { {CNTypeRestrictionsItem-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct CNTypeRestrictionsItem : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "CNTypeRestrictionsItem";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct plmn_Id_t : PLMN_Identity - { - static constexpr const char* name() {return "plmn_Id_t";} - using parent_t = PLMN_Identity; - - }; - plmn_Id_t& ref_plmn_Id() {return plmn_Id;} - plmn_Id_t const& ref_plmn_Id() const {return plmn_Id;} - struct cn_type_t : asn::enumerated<1, 0, true> - { - static constexpr const char* name() {return "cn_type_t";} - using parent_t = asn::enumerated<1, 0, true>; - typedef enum { - fiveGC_forbidden - } index_t; - - }; - - cn_type_t& ref_cn_type() {return cn_type;} - cn_type_t const& ref_cn_type() const {return cn_type;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(plmn_Id); - v(cn_type); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(plmn_Id); - v(cn_type); - v(iE_Extensions); - - }; - void clear() - { - plmn_Id.clear(); - cn_type.clear(); - iE_Extensions.clear(); - - }; - private: - plmn_Id_t plmn_Id; - cn_type_t cn_type; - iE_Extensions_t iE_Extensions; - -}; -/* -CNTypeRestrictions ::= SEQUENCE (SIZE(1.. maxnoofEPLMNsPlusOne)) OF CNTypeRestrictionsItem -*/ - -struct CNTypeRestrictions_elm : CNTypeRestrictionsItem -{ - static constexpr const char* name() {return "CNTypeRestrictions_elm";} - using parent_t = CNTypeRestrictionsItem; - -}; -struct CNTypeRestrictions : asn::sequenceof -{ - static constexpr const char* name() {return "CNTypeRestrictions";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -PDCP-SNExtended ::= INTEGER (0..32767) -*/ - -struct PDCP_SNExtended : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "PDCP-SNExtended";} - using parent_t = asn::integer<>; - -}; - -/* -HFNModified ::= INTEGER (0..131071) -*/ - -struct HFNModified : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "HFNModified";} - using parent_t = asn::integer<>; - -}; - -/* -COUNTValueExtended-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct COUNTValueExtended_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -COUNTValueExtended ::= SEQUENCE { - pDCP-SNExtended PDCP-SNExtended, - hFNModified HFNModified, - iE-Extensions ProtocolExtensionContainer { {COUNTValueExtended-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct COUNTValueExtended : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "COUNTValueExtended";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct pDCP_SNExtended_t : PDCP_SNExtended - { - static constexpr const char* name() {return "pDCP_SNExtended_t";} - using parent_t = PDCP_SNExtended; - - }; - pDCP_SNExtended_t& ref_pDCP_SNExtended() {return pDCP_SNExtended;} - pDCP_SNExtended_t const& ref_pDCP_SNExtended() const {return pDCP_SNExtended;} - struct hFNModified_t : HFNModified - { - static constexpr const char* name() {return "hFNModified_t";} - using parent_t = HFNModified; - - }; - hFNModified_t& ref_hFNModified() {return hFNModified;} - hFNModified_t const& ref_hFNModified() const {return hFNModified;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(pDCP_SNExtended); - v(hFNModified); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(pDCP_SNExtended); - v(hFNModified); - v(iE_Extensions); - - }; - void clear() - { - pDCP_SNExtended.clear(); - hFNModified.clear(); - iE_Extensions.clear(); - - }; - private: - pDCP_SNExtended_t pDCP_SNExtended; - hFNModified_t hFNModified; - iE_Extensions_t iE_Extensions; - -}; -/* -PDCP-SN ::= INTEGER (0..4095) -*/ - -struct PDCP_SN : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "PDCP-SN";} - using parent_t = asn::integer<>; - -}; - -/* -HFN ::= INTEGER (0..1048575) -*/ - -struct HFN : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "HFN";} - using parent_t = asn::integer<>; - -}; - -/* -COUNTvalue-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct COUNTvalue_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -COUNTvalue ::= SEQUENCE { - pDCP-SN PDCP-SN, - hFN HFN, - iE-Extensions ProtocolExtensionContainer { {COUNTvalue-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct COUNTvalue : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "COUNTvalue";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct pDCP_SN_t : PDCP_SN - { - static constexpr const char* name() {return "pDCP_SN_t";} - using parent_t = PDCP_SN; - - }; - pDCP_SN_t& ref_pDCP_SN() {return pDCP_SN;} - pDCP_SN_t const& ref_pDCP_SN() const {return pDCP_SN;} - struct hFN_t : HFN - { - static constexpr const char* name() {return "hFN_t";} - using parent_t = HFN; - - }; - hFN_t& ref_hFN() {return hFN;} - hFN_t const& ref_hFN() const {return hFN;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(pDCP_SN); - v(hFN); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(pDCP_SN); - v(hFN); - v(iE_Extensions); - - }; - void clear() - { - pDCP_SN.clear(); - hFN.clear(); - iE_Extensions.clear(); - - }; - private: - pDCP_SN_t pDCP_SN; - hFN_t hFN; - iE_Extensions_t iE_Extensions; - -}; -/* -PDCP-SNlength18 ::= INTEGER (0..262143) -*/ - -struct PDCP_SNlength18 : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "PDCP-SNlength18";} - using parent_t = asn::integer<>; - -}; - -/* -HFNforPDCP-SNlength18 ::= INTEGER (0..16383) -*/ - -struct HFNforPDCP_SNlength18 : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "HFNforPDCP-SNlength18";} - using parent_t = asn::integer<>; - -}; - -/* -COUNTvaluePDCP-SNlength18-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct COUNTvaluePDCP_SNlength18_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -COUNTvaluePDCP-SNlength18 ::= SEQUENCE { - pDCP-SNlength18 PDCP-SNlength18, - hFNforPDCP-SNlength18 HFNforPDCP-SNlength18, - iE-Extensions ProtocolExtensionContainer { {COUNTvaluePDCP-SNlength18-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct COUNTvaluePDCP_SNlength18 : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "COUNTvaluePDCP-SNlength18";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct pDCP_SNlength18_t : PDCP_SNlength18 - { - static constexpr const char* name() {return "pDCP_SNlength18_t";} - using parent_t = PDCP_SNlength18; - - }; - pDCP_SNlength18_t& ref_pDCP_SNlength18() {return pDCP_SNlength18;} - pDCP_SNlength18_t const& ref_pDCP_SNlength18() const {return pDCP_SNlength18;} - struct hFNforPDCP_SNlength18_t : HFNforPDCP_SNlength18 - { - static constexpr const char* name() {return "hFNforPDCP_SNlength18_t";} - using parent_t = HFNforPDCP_SNlength18; - - }; - hFNforPDCP_SNlength18_t& ref_hFNforPDCP_SNlength18() {return hFNforPDCP_SNlength18;} - hFNforPDCP_SNlength18_t const& ref_hFNforPDCP_SNlength18() const {return hFNforPDCP_SNlength18;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(pDCP_SNlength18); - v(hFNforPDCP_SNlength18); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(pDCP_SNlength18); - v(hFNforPDCP_SNlength18); - v(iE_Extensions); - - }; - void clear() - { - pDCP_SNlength18.clear(); - hFNforPDCP_SNlength18.clear(); - iE_Extensions.clear(); - - }; - private: - pDCP_SNlength18_t pDCP_SNlength18; - hFNforPDCP_SNlength18_t hFNforPDCP_SNlength18; - iE_Extensions_t iE_Extensions; - -}; -/* -CRNTI ::= BIT STRING (SIZE (16)) -*/ - -struct CRNTI : asn::bstring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "CRNTI";} - using parent_t = asn::bstring<>; - -}; - -/* -CSG-Id ::= BIT STRING (SIZE (27)) -*/ - -struct CSG_Id : asn::bstring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "CSG-Id";} - using parent_t = asn::bstring<>; - -}; - -/* -CSGMembershipStatus ::= ENUMERATED { - member, - not-member -} -*/ - -struct CSGMembershipStatus : asn::enumerated<2, 0, false> -{ - static constexpr const char* name() {return "CSGMembershipStatus";} - using parent_t = asn::enumerated<2, 0, false>; - typedef enum { - member - ,not_member - } index_t; - -}; - -/* -UEID ::= BIT STRING (SIZE (16)) -*/ - -struct UEID : asn::bstring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "UEID";} - using parent_t = asn::bstring<>; - -}; - -/* -WidebandCQICodeword1::= CHOICE { - four-bitCQI INTEGER (0..15, ...), - three-bitSpatialDifferentialCQI INTEGER (0..7, ...), - ... -} -*/ - -struct WidebandCQICodeword1 : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "WidebandCQICodeword1";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~WidebandCQICodeword1() {clear();} - struct four_bitCQI_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "four_bitCQI_t";} - using parent_t = asn::integer<>; - - }; - - struct three_bitSpatialDifferentialCQI_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "three_bitSpatialDifferentialCQI_t";} - using parent_t = asn::integer<>; - - }; - - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - four_bitCQI_t& select_four_bitCQI() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - four_bitCQI_t const* get_four_bitCQI() const { if(get_index() == 1) { return &var.as();} return nullptr; } - three_bitSpatialDifferentialCQI_t& select_three_bitSpatialDifferentialCQI() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - three_bitSpatialDifferentialCQI_t const* get_three_bitSpatialDifferentialCQI() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(four_bitCQI_t)]; - char dummy2[sizeof(three_bitSpatialDifferentialCQI_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -WidebandCQI-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct WidebandCQI_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -WidebandCQI ::= SEQUENCE { - widebandCQICodeword0 INTEGER (0..15, ...), - widebandCQICodeword1 WidebandCQICodeword1 OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {WidebandCQI-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct WidebandCQI : asn::sequence<3, 0, true, 2> -{ - static constexpr const char* name() {return "WidebandCQI";} - using parent_t = asn::sequence<3, 0, true, 2>; - struct widebandCQICodeword0_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "widebandCQICodeword0_t";} - using parent_t = asn::integer<>; - - }; - - widebandCQICodeword0_t& ref_widebandCQICodeword0() {return widebandCQICodeword0;} - widebandCQICodeword0_t const& ref_widebandCQICodeword0() const {return widebandCQICodeword0;} - struct widebandCQICodeword1_t : WidebandCQICodeword1 - { - static constexpr const char* name() {return "widebandCQICodeword1_t";} - using parent_t = WidebandCQICodeword1; - static constexpr bool optional = true; - - }; - widebandCQICodeword1_t& set_widebandCQICodeword1() { widebandCQICodeword1.setpresent(true); return widebandCQICodeword1;} - widebandCQICodeword1_t const* get_widebandCQICodeword1() const {return widebandCQICodeword1.is_valid() ? &widebandCQICodeword1 : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(widebandCQICodeword0); - v(widebandCQICodeword1); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(widebandCQICodeword0); - v(widebandCQICodeword1); - v(iE_Extensions); - - }; - void clear() - { - widebandCQICodeword0.clear(); - widebandCQICodeword1.clear(); - iE_Extensions.clear(); - - }; - private: - widebandCQICodeword0_t widebandCQICodeword0; - widebandCQICodeword1_t widebandCQICodeword1; - iE_Extensions_t iE_Extensions; - -}; -/* -SubbandSize ::= ENUMERATED { - size2, - size3, - size4, - size6, - size8, - ... -} -*/ - -struct SubbandSize : asn::enumerated<5, 0, true> -{ - static constexpr const char* name() {return "SubbandSize";} - using parent_t = asn::enumerated<5, 0, true>; - typedef enum { - size2 - ,size3 - ,size4 - ,size6 - ,size8 - } index_t; - -}; - -/* -SubbandCQICodeword0 ::= CHOICE { - four-bitCQI INTEGER (0..15, ...), - two-bitSubbandDifferentialCQI INTEGER (0..3, ...), - two-bitDifferentialCQI INTEGER (0..3, ...), - ... -} -*/ - -struct SubbandCQICodeword0 : asn::choice<3, 0, true> -{ - static constexpr const char* name() {return "SubbandCQICodeword0";} - using parent_t = asn::choice<3, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 4;} - void set_unknown() { set_index(4); } - ~SubbandCQICodeword0() {clear();} - struct four_bitCQI_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "four_bitCQI_t";} - using parent_t = asn::integer<>; - - }; - - struct two_bitSubbandDifferentialCQI_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "two_bitSubbandDifferentialCQI_t";} - using parent_t = asn::integer<>; - - }; - - struct two_bitDifferentialCQI_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "two_bitDifferentialCQI_t";} - using parent_t = asn::integer<>; - - }; - - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - case 3: set_index(3); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - case 3: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - - } - four_bitCQI_t& select_four_bitCQI() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - four_bitCQI_t const* get_four_bitCQI() const { if(get_index() == 1) { return &var.as();} return nullptr; } - two_bitSubbandDifferentialCQI_t& select_two_bitSubbandDifferentialCQI() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - two_bitSubbandDifferentialCQI_t const* get_two_bitSubbandDifferentialCQI() const { if(get_index() == 2) { return &var.as();} return nullptr; } - two_bitDifferentialCQI_t& select_two_bitDifferentialCQI() { if(get_index() != 3) { clear(); set_index(3); return var.build();} return var.as();} - two_bitDifferentialCQI_t const* get_two_bitDifferentialCQI() const { if(get_index() == 3) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(four_bitCQI_t)]; - char dummy2[sizeof(two_bitSubbandDifferentialCQI_t)]; - char dummy3[sizeof(two_bitDifferentialCQI_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -SubbandCQICodeword1 ::= CHOICE { - four-bitCQI INTEGER (0..15, ...), - three-bitSpatialDifferentialCQI INTEGER (0..7, ...), - two-bitSubbandDifferentialCQI INTEGER (0..3, ...), - two-bitDifferentialCQI INTEGER (0..3, ...), - ... -} -*/ - -struct SubbandCQICodeword1 : asn::choice<4, 0, true> -{ - static constexpr const char* name() {return "SubbandCQICodeword1";} - using parent_t = asn::choice<4, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 5;} - void set_unknown() { set_index(5); } - ~SubbandCQICodeword1() {clear();} - struct four_bitCQI_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "four_bitCQI_t";} - using parent_t = asn::integer<>; - - }; - - struct three_bitSpatialDifferentialCQI_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "three_bitSpatialDifferentialCQI_t";} - using parent_t = asn::integer<>; - - }; - - struct two_bitSubbandDifferentialCQI_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "two_bitSubbandDifferentialCQI_t";} - using parent_t = asn::integer<>; - - }; - - struct two_bitDifferentialCQI_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "two_bitDifferentialCQI_t";} - using parent_t = asn::integer<>; - - }; - - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - case 3: set_index(3); return v(var.build()); - case 4: set_index(4); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - case 3: return v(var.as()); - case 4: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - - } - four_bitCQI_t& select_four_bitCQI() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - four_bitCQI_t const* get_four_bitCQI() const { if(get_index() == 1) { return &var.as();} return nullptr; } - three_bitSpatialDifferentialCQI_t& select_three_bitSpatialDifferentialCQI() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - three_bitSpatialDifferentialCQI_t const* get_three_bitSpatialDifferentialCQI() const { if(get_index() == 2) { return &var.as();} return nullptr; } - two_bitSubbandDifferentialCQI_t& select_two_bitSubbandDifferentialCQI() { if(get_index() != 3) { clear(); set_index(3); return var.build();} return var.as();} - two_bitSubbandDifferentialCQI_t const* get_two_bitSubbandDifferentialCQI() const { if(get_index() == 3) { return &var.as();} return nullptr; } - two_bitDifferentialCQI_t& select_two_bitDifferentialCQI() { if(get_index() != 4) { clear(); set_index(4); return var.build();} return var.as();} - two_bitDifferentialCQI_t const* get_two_bitDifferentialCQI() const { if(get_index() == 4) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(four_bitCQI_t)]; - char dummy2[sizeof(three_bitSpatialDifferentialCQI_t)]; - char dummy3[sizeof(two_bitSubbandDifferentialCQI_t)]; - char dummy4[sizeof(two_bitDifferentialCQI_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -SubbandCQI-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct SubbandCQI_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SubbandCQI ::= SEQUENCE { - subbandCQICodeword0 SubbandCQICodeword0, - subbandCQICodeword1 SubbandCQICodeword1 OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {SubbandCQI-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct SubbandCQI : asn::sequence<3, 0, true, 2> -{ - static constexpr const char* name() {return "SubbandCQI";} - using parent_t = asn::sequence<3, 0, true, 2>; - struct subbandCQICodeword0_t : SubbandCQICodeword0 - { - static constexpr const char* name() {return "subbandCQICodeword0_t";} - using parent_t = SubbandCQICodeword0; - - }; - subbandCQICodeword0_t& ref_subbandCQICodeword0() {return subbandCQICodeword0;} - subbandCQICodeword0_t const& ref_subbandCQICodeword0() const {return subbandCQICodeword0;} - struct subbandCQICodeword1_t : SubbandCQICodeword1 - { - static constexpr const char* name() {return "subbandCQICodeword1_t";} - using parent_t = SubbandCQICodeword1; - static constexpr bool optional = true; - - }; - subbandCQICodeword1_t& set_subbandCQICodeword1() { subbandCQICodeword1.setpresent(true); return subbandCQICodeword1;} - subbandCQICodeword1_t const* get_subbandCQICodeword1() const {return subbandCQICodeword1.is_valid() ? &subbandCQICodeword1 : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(subbandCQICodeword0); - v(subbandCQICodeword1); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(subbandCQICodeword0); - v(subbandCQICodeword1); - v(iE_Extensions); - - }; - void clear() - { - subbandCQICodeword0.clear(); - subbandCQICodeword1.clear(); - iE_Extensions.clear(); - - }; - private: - subbandCQICodeword0_t subbandCQICodeword0; - subbandCQICodeword1_t subbandCQICodeword1; - iE_Extensions_t iE_Extensions; - -}; -/* -SubbandCQIItem-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct SubbandCQIItem_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SubbandCQIItem ::= SEQUENCE { - subbandCQI SubbandCQI, - subbandIndex INTEGER (0..27,...), - iE-Extensions ProtocolExtensionContainer { {SubbandCQIItem-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct SubbandCQIItem : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "SubbandCQIItem";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct subbandCQI_t : SubbandCQI - { - static constexpr const char* name() {return "subbandCQI_t";} - using parent_t = SubbandCQI; - - }; - subbandCQI_t& ref_subbandCQI() {return subbandCQI;} - subbandCQI_t const& ref_subbandCQI() const {return subbandCQI;} - struct subbandIndex_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "subbandIndex_t";} - using parent_t = asn::integer<>; - - }; - - subbandIndex_t& ref_subbandIndex() {return subbandIndex;} - subbandIndex_t const& ref_subbandIndex() const {return subbandIndex;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(subbandCQI); - v(subbandIndex); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(subbandCQI); - v(subbandIndex); - v(iE_Extensions); - - }; - void clear() - { - subbandCQI.clear(); - subbandIndex.clear(); - iE_Extensions.clear(); - - }; - private: - subbandCQI_t subbandCQI; - subbandIndex_t subbandIndex; - iE_Extensions_t iE_Extensions; - -}; -/* -SubbandCQIList ::= SEQUENCE (SIZE(1.. maxSubband)) OF SubbandCQIItem -*/ - -struct SubbandCQIList_elm : SubbandCQIItem -{ - static constexpr const char* name() {return "SubbandCQIList_elm";} - using parent_t = SubbandCQIItem; - -}; -struct SubbandCQIList : asn::sequenceof -{ - static constexpr const char* name() {return "SubbandCQIList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -CSIReportPerCSIProcessItem-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct CSIReportPerCSIProcessItem_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -CSIReportPerCSIProcessItem ::= SEQUENCE (SIZE(1.. maxCSIReport)) OF - SEQUENCE { - rI INTEGER (1..8, ...), - widebandCQI WidebandCQI, - subbandSize SubbandSize, - subbandCQIList SubbandCQIList OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {CSIReportPerCSIProcessItem-ExtIEs} } OPTIONAL, - ... - } -*/ - -struct CSIReportPerCSIProcessItem_elm : asn::sequence<5, 0, true, 2> -{ - static constexpr const char* name() {return "CSIReportPerCSIProcessItem_elm";} - using parent_t = asn::sequence<5, 0, true, 2>; - struct rI_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "rI_t";} - using parent_t = asn::integer<>; - - }; - - rI_t& ref_rI() {return rI;} - rI_t const& ref_rI() const {return rI;} - struct widebandCQI_t : WidebandCQI - { - static constexpr const char* name() {return "widebandCQI_t";} - using parent_t = WidebandCQI; - - }; - widebandCQI_t& ref_widebandCQI() {return widebandCQI;} - widebandCQI_t const& ref_widebandCQI() const {return widebandCQI;} - struct subbandSize_t : SubbandSize - { - static constexpr const char* name() {return "subbandSize_t";} - using parent_t = SubbandSize; - - }; - subbandSize_t& ref_subbandSize() {return subbandSize;} - subbandSize_t const& ref_subbandSize() const {return subbandSize;} - struct subbandCQIList_t : SubbandCQIList - { - static constexpr const char* name() {return "subbandCQIList_t";} - using parent_t = SubbandCQIList; - static constexpr bool optional = true; - - }; - subbandCQIList_t& set_subbandCQIList() { subbandCQIList.setpresent(true); return subbandCQIList;} - subbandCQIList_t const* get_subbandCQIList() const {return subbandCQIList.is_valid() ? &subbandCQIList : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(rI); - v(widebandCQI); - v(subbandSize); - v(subbandCQIList); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(rI); - v(widebandCQI); - v(subbandSize); - v(subbandCQIList); - v(iE_Extensions); - - }; - void clear() - { - rI.clear(); - widebandCQI.clear(); - subbandSize.clear(); - subbandCQIList.clear(); - iE_Extensions.clear(); - - }; - private: - rI_t rI; - widebandCQI_t widebandCQI; - subbandSize_t subbandSize; - subbandCQIList_t subbandCQIList; - iE_Extensions_t iE_Extensions; - -}; -struct CSIReportPerCSIProcessItem : asn::sequenceof -{ - static constexpr const char* name() {return "CSIReportPerCSIProcessItem";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -CSIReportPerCSIProcess-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct CSIReportPerCSIProcess_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -CSIReportPerCSIProcess ::= SEQUENCE (SIZE(1.. maxCSIProcess)) OF - SEQUENCE { - cSIProcessConfigurationIndex INTEGER (1..7, ...), - cSIReportPerCSIProcessItem CSIReportPerCSIProcessItem, - iE-Extensions ProtocolExtensionContainer { {CSIReportPerCSIProcess-ExtIEs} } OPTIONAL, - ... - } -*/ - -struct CSIReportPerCSIProcess_elm : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "CSIReportPerCSIProcess_elm";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct cSIProcessConfigurationIndex_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "cSIProcessConfigurationIndex_t";} - using parent_t = asn::integer<>; - - }; - - cSIProcessConfigurationIndex_t& ref_cSIProcessConfigurationIndex() {return cSIProcessConfigurationIndex;} - cSIProcessConfigurationIndex_t const& ref_cSIProcessConfigurationIndex() const {return cSIProcessConfigurationIndex;} - struct cSIReportPerCSIProcessItem_t : CSIReportPerCSIProcessItem - { - static constexpr const char* name() {return "cSIReportPerCSIProcessItem_t";} - using parent_t = CSIReportPerCSIProcessItem; - - }; - cSIReportPerCSIProcessItem_t& ref_cSIReportPerCSIProcessItem() {return cSIReportPerCSIProcessItem;} - cSIReportPerCSIProcessItem_t const& ref_cSIReportPerCSIProcessItem() const {return cSIReportPerCSIProcessItem;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(cSIProcessConfigurationIndex); - v(cSIReportPerCSIProcessItem); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(cSIProcessConfigurationIndex); - v(cSIReportPerCSIProcessItem); - v(iE_Extensions); - - }; - void clear() - { - cSIProcessConfigurationIndex.clear(); - cSIReportPerCSIProcessItem.clear(); - iE_Extensions.clear(); - - }; - private: - cSIProcessConfigurationIndex_t cSIProcessConfigurationIndex; - cSIReportPerCSIProcessItem_t cSIReportPerCSIProcessItem; - iE_Extensions_t iE_Extensions; - -}; -struct CSIReportPerCSIProcess : asn::sequenceof -{ - static constexpr const char* name() {return "CSIReportPerCSIProcess";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -CSIReportList-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct CSIReportList_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -CSIReportList ::= SEQUENCE (SIZE(1..maxUEReport)) OF - SEQUENCE { - uEID UEID, - cSIReportPerCSIProcess CSIReportPerCSIProcess, - iE-Extensions ProtocolExtensionContainer { {CSIReportList-ExtIEs} } OPTIONAL, - ... - } -*/ - -struct CSIReportList_elm : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "CSIReportList_elm";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct uEID_t : UEID - { - static constexpr const char* name() {return "uEID_t";} - using parent_t = UEID; - - }; - uEID_t& ref_uEID() {return uEID;} - uEID_t const& ref_uEID() const {return uEID;} - struct cSIReportPerCSIProcess_t : CSIReportPerCSIProcess - { - static constexpr const char* name() {return "cSIReportPerCSIProcess_t";} - using parent_t = CSIReportPerCSIProcess; - - }; - cSIReportPerCSIProcess_t& ref_cSIReportPerCSIProcess() {return cSIReportPerCSIProcess;} - cSIReportPerCSIProcess_t const& ref_cSIReportPerCSIProcess() const {return cSIReportPerCSIProcess;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(uEID); - v(cSIReportPerCSIProcess); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(uEID); - v(cSIReportPerCSIProcess); - v(iE_Extensions); - - }; - void clear() - { - uEID.clear(); - cSIReportPerCSIProcess.clear(); - iE_Extensions.clear(); - - }; - private: - uEID_t uEID; - cSIReportPerCSIProcess_t cSIReportPerCSIProcess; - iE_Extensions_t iE_Extensions; - -}; -struct CSIReportList : asn::sequenceof -{ - static constexpr const char* name() {return "CSIReportList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -CapacityValue ::= INTEGER (0..100) -*/ - -struct CapacityValue : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "CapacityValue";} - using parent_t = asn::integer<>; - -}; - -/* -CauseRadioNetwork ::= ENUMERATED { - handover-desirable-for-radio-reasons, - time-critical-handover, - resource-optimisation-handover, - reduce-load-in-serving-cell, - partial-handover, - unknown-new-eNB-UE-X2AP-ID, - unknown-old-eNB-UE-X2AP-ID, - unknown-pair-of-UE-X2AP-ID, - ho-target-not-allowed, - tx2relocoverall-expiry, - trelocprep-expiry, - cell-not-available, - no-radio-resources-available-in-target-cell, - invalid-MME-GroupID, - unknown-MME-Code, - encryption-and-or-integrity-protection-algorithms-not-supported, - reportCharacteristicsEmpty, - noReportPeriodicity, - existingMeasurementID, - unknown-eNB-Measurement-ID, - measurement-temporarily-not-available, - unspecified, - ..., - load-balancing, - handover-optimisation, - value-out-of-allowed-range, - multiple-E-RAB-ID-instances, - switch-off-ongoing, - not-supported-QCI-value, - measurement-not-supported-for-the-object, - tDCoverall-expiry, - tDCprep-expiry, - action-desirable-for-radio-reasons, - reduce-load, - resource-optimisation, - time-critical-action, - target-not-allowed, - no-radio-resources-available, - invalid-QoS-combination, - encryption-algorithms-not-aupported, - procedure-cancelled, - rRM-purpose, - improve-user-bit-rate, - user-inactivity, - radio-connection-with-UE-lost, - failure-in-the-radio-interface-procedure, - bearer-option-not-supported, - mCG-Mobility, - sCG-Mobility, - count-reaches-max-value, - unknown-old-en-gNB-UE-X2AP-ID, - pDCP-Overload - -} -*/ - -struct CauseRadioNetwork : asn::enumerated<51, 29, true> -{ - static constexpr const char* name() {return "CauseRadioNetwork";} - using parent_t = asn::enumerated<51, 29, true>; - typedef enum { - handover_desirable_for_radio_reasons - ,time_critical_handover - ,resource_optimisation_handover - ,reduce_load_in_serving_cell - ,partial_handover - ,unknown_new_eNB_UE_X2AP_ID - ,unknown_old_eNB_UE_X2AP_ID - ,unknown_pair_of_UE_X2AP_ID - ,ho_target_not_allowed - ,tx2relocoverall_expiry - ,trelocprep_expiry - ,cell_not_available - ,no_radio_resources_available_in_target_cell - ,invalid_MME_GroupID - ,unknown_MME_Code - ,encryption_and_or_integrity_protection_algorithms_not_supported - ,reportCharacteristicsEmpty - ,noReportPeriodicity - ,existingMeasurementID - ,unknown_eNB_Measurement_ID - ,measurement_temporarily_not_available - ,unspecified - ,load_balancing - ,handover_optimisation - ,value_out_of_allowed_range - ,multiple_E_RAB_ID_instances - ,switch_off_ongoing - ,not_supported_QCI_value - ,measurement_not_supported_for_the_object - ,tDCoverall_expiry - ,tDCprep_expiry - ,action_desirable_for_radio_reasons - ,reduce_load - ,resource_optimisation - ,time_critical_action - ,target_not_allowed - ,no_radio_resources_available - ,invalid_QoS_combination - ,encryption_algorithms_not_aupported - ,procedure_cancelled - ,rRM_purpose - ,improve_user_bit_rate - ,user_inactivity - ,radio_connection_with_UE_lost - ,failure_in_the_radio_interface_procedure - ,bearer_option_not_supported - ,mCG_Mobility - ,sCG_Mobility - ,count_reaches_max_value - ,unknown_old_en_gNB_UE_X2AP_ID - ,pDCP_Overload - } index_t; - -}; - -/* -CauseTransport ::= ENUMERATED { - transport-resource-unavailable, - unspecified, - ... -} -*/ - -struct CauseTransport : asn::enumerated<2, 0, true> -{ - static constexpr const char* name() {return "CauseTransport";} - using parent_t = asn::enumerated<2, 0, true>; - typedef enum { - transport_resource_unavailable - ,unspecified - } index_t; - -}; - -/* -CauseProtocol ::= ENUMERATED { - transfer-syntax-error, - abstract-syntax-error-reject, - abstract-syntax-error-ignore-and-notify, - message-not-compatible-with-receiver-state, - semantic-error, - unspecified, - abstract-syntax-error-falsely-constructed-message, - ... -} -*/ - -struct CauseProtocol : asn::enumerated<7, 0, true> -{ - static constexpr const char* name() {return "CauseProtocol";} - using parent_t = asn::enumerated<7, 0, true>; - typedef enum { - transfer_syntax_error - ,abstract_syntax_error_reject - ,abstract_syntax_error_ignore_and_notify - ,message_not_compatible_with_receiver_state - ,semantic_error - ,unspecified - ,abstract_syntax_error_falsely_constructed_message - } index_t; - -}; - -/* -CauseMisc ::= ENUMERATED { - control-processing-overload, - hardware-failure, - om-intervention, - not-enough-user-plane-processing-resources, - unspecified, - ... -} -*/ - -struct CauseMisc : asn::enumerated<5, 0, true> -{ - static constexpr const char* name() {return "CauseMisc";} - using parent_t = asn::enumerated<5, 0, true>; - typedef enum { - control_processing_overload - ,hardware_failure - ,om_intervention - ,not_enough_user_plane_processing_resources - ,unspecified - } index_t; - -}; - -/* -Cause ::= CHOICE { - radioNetwork CauseRadioNetwork, - transport CauseTransport, - protocol CauseProtocol, - misc CauseMisc, - ... -} -*/ - -struct Cause : asn::choice<4, 0, true> -{ - static constexpr const char* name() {return "Cause";} - using parent_t = asn::choice<4, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 5;} - void set_unknown() { set_index(5); } - ~Cause() {clear();} - struct radioNetwork_t : CauseRadioNetwork - { - static constexpr const char* name() {return "radioNetwork_t";} - using parent_t = CauseRadioNetwork; - - }; - struct transport_t : CauseTransport - { - static constexpr const char* name() {return "transport_t";} - using parent_t = CauseTransport; - - }; - struct protocol_t : CauseProtocol - { - static constexpr const char* name() {return "protocol_t";} - using parent_t = CauseProtocol; - - }; - struct misc_t : CauseMisc - { - static constexpr const char* name() {return "misc_t";} - using parent_t = CauseMisc; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - case 3: set_index(3); return v(var.build()); - case 4: set_index(4); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - case 3: return v(var.as()); - case 4: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - - } - radioNetwork_t& select_radioNetwork() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - radioNetwork_t const* get_radioNetwork() const { if(get_index() == 1) { return &var.as();} return nullptr; } - transport_t& select_transport() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - transport_t const* get_transport() const { if(get_index() == 2) { return &var.as();} return nullptr; } - protocol_t& select_protocol() { if(get_index() != 3) { clear(); set_index(3); return var.build();} return var.as();} - protocol_t const* get_protocol() const { if(get_index() == 3) { return &var.as();} return nullptr; } - misc_t& select_misc() { if(get_index() != 4) { clear(); set_index(4); return var.build();} return var.as();} - misc_t const* get_misc() const { if(get_index() == 4) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(radioNetwork_t)]; - char dummy2[sizeof(transport_t)]; - char dummy3[sizeof(protocol_t)]; - char dummy4[sizeof(misc_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -Cell-Size ::= ENUMERATED {verysmall, small, medium, large, ... } -*/ - -struct Cell_Size : asn::enumerated<4, 0, true> -{ - static constexpr const char* name() {return "Cell-Size";} - using parent_t = asn::enumerated<4, 0, true>; - typedef enum { - verysmall - ,small - ,medium - ,large - } index_t; - -}; - -/* -CellCapacityClassValue ::= INTEGER (1..100, ...) -*/ - -struct CellCapacityClassValue : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "CellCapacityClassValue";} - using parent_t = asn::integer<>; - -}; - -/* -CellDeploymentStatusIndicator ::= ENUMERATED {pre-change-notification, ...} -*/ - -struct CellDeploymentStatusIndicator : asn::enumerated<1, 0, true> -{ - static constexpr const char* name() {return "CellDeploymentStatusIndicator";} - using parent_t = asn::enumerated<1, 0, true>; - typedef enum { - pre_change_notification - } index_t; - -}; - -/* -ReplacingCellsList-Item ::= SEQUENCE { - eCGI ECGI, - ... -} -*/ - -struct ReplacingCellsList_Item : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "ReplacingCellsList-Item";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct eCGI_t : ECGI - { - static constexpr const char* name() {return "eCGI_t";} - using parent_t = ECGI; - - }; - eCGI_t& ref_eCGI() {return eCGI;} - eCGI_t const& ref_eCGI() const {return eCGI;} - template void decode(V& v) - { - v(eCGI); - - }; - template void encode(V& v) const - { - v(eCGI); - - }; - void clear() - { - eCGI.clear(); - - }; - private: - eCGI_t eCGI; - -}; -/* -ReplacingCellsList ::= SEQUENCE (SIZE(0.. maxCellineNB)) OF ReplacingCellsList-Item -*/ - -struct ReplacingCellsList_elm : ReplacingCellsList_Item -{ - static constexpr const char* name() {return "ReplacingCellsList_elm";} - using parent_t = ReplacingCellsList_Item; - -}; -struct ReplacingCellsList : asn::sequenceof -{ - static constexpr const char* name() {return "ReplacingCellsList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -CellReplacingInfo-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct CellReplacingInfo_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -CellReplacingInfo ::= SEQUENCE { - replacingCellsList ReplacingCellsList, - iE-Extensions ProtocolExtensionContainer { {CellReplacingInfo-ExtIEs}} OPTIONAL, - ... -} -*/ - -struct CellReplacingInfo : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "CellReplacingInfo";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct replacingCellsList_t : ReplacingCellsList - { - static constexpr const char* name() {return "replacingCellsList_t";} - using parent_t = ReplacingCellsList; - - }; - replacingCellsList_t& ref_replacingCellsList() {return replacingCellsList;} - replacingCellsList_t const& ref_replacingCellsList() const {return replacingCellsList;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(replacingCellsList); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(replacingCellsList); - v(iE_Extensions); - - }; - void clear() - { - replacingCellsList.clear(); - iE_Extensions.clear(); - - }; - private: - replacingCellsList_t replacingCellsList; - iE_Extensions_t iE_Extensions; - -}; -/* -CellReportingIndicator ::= ENUMERATED {stop-request, ... } -*/ - -struct CellReportingIndicator : asn::enumerated<1, 0, true> -{ - static constexpr const char* name() {return "CellReportingIndicator";} - using parent_t = asn::enumerated<1, 0, true>; - typedef enum { - stop_request - } index_t; - -}; - -/* -CellType-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct CellType_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -CellType ::= SEQUENCE { - cell-Size Cell-Size, - iE-Extensions ProtocolExtensionContainer { {CellType-ExtIEs}} OPTIONAL, - ... -} -*/ - -struct CellType : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "CellType";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct cell_Size_t : Cell_Size - { - static constexpr const char* name() {return "cell_Size_t";} - using parent_t = Cell_Size; - - }; - cell_Size_t& ref_cell_Size() {return cell_Size;} - cell_Size_t const& ref_cell_Size() const {return cell_Size;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(cell_Size); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(cell_Size); - v(iE_Extensions); - - }; - void clear() - { - cell_Size.clear(); - iE_Extensions.clear(); - - }; - private: - cell_Size_t cell_Size; - iE_Extensions_t iE_Extensions; - -}; -/* -CoMPHypothesisSetItem-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct CoMPHypothesisSetItem_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -CoMPHypothesisSetItem ::= SEQUENCE { - coMPCellID ECGI, - coMPHypothesis BIT STRING (SIZE(6..4400, ...)), - iE-Extensions ProtocolExtensionContainer { {CoMPHypothesisSetItem-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct CoMPHypothesisSetItem : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "CoMPHypothesisSetItem";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct coMPCellID_t : ECGI - { - static constexpr const char* name() {return "coMPCellID_t";} - using parent_t = ECGI; - - }; - coMPCellID_t& ref_coMPCellID() {return coMPCellID;} - coMPCellID_t const& ref_coMPCellID() const {return coMPCellID;} - struct coMPHypothesis_t : asn::bstring<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "coMPHypothesis_t";} - using parent_t = asn::bstring<>; - - }; - - coMPHypothesis_t& ref_coMPHypothesis() {return coMPHypothesis;} - coMPHypothesis_t const& ref_coMPHypothesis() const {return coMPHypothesis;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(coMPCellID); - v(coMPHypothesis); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(coMPCellID); - v(coMPHypothesis); - v(iE_Extensions); - - }; - void clear() - { - coMPCellID.clear(); - coMPHypothesis.clear(); - iE_Extensions.clear(); - - }; - private: - coMPCellID_t coMPCellID; - coMPHypothesis_t coMPHypothesis; - iE_Extensions_t iE_Extensions; - -}; -/* -CoMPHypothesisSet ::= SEQUENCE (SIZE(1..maxnoofCoMPCells)) OF CoMPHypothesisSetItem -*/ - -struct CoMPHypothesisSet_elm : CoMPHypothesisSetItem -{ - static constexpr const char* name() {return "CoMPHypothesisSet_elm";} - using parent_t = CoMPHypothesisSetItem; - -}; -struct CoMPHypothesisSet : asn::sequenceof -{ - static constexpr const char* name() {return "CoMPHypothesisSet";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -CoMPInformationItem-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct CoMPInformationItem_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -CoMPInformationItem ::= SEQUENCE (SIZE(1..maxnoofCoMPHypothesisSet)) OF - SEQUENCE { - coMPHypothesisSet CoMPHypothesisSet, - benefitMetric BenefitMetric, - iE-Extensions ProtocolExtensionContainer { {CoMPInformationItem-ExtIEs} } OPTIONAL, - ... - } -*/ - -struct CoMPInformationItem_elm : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "CoMPInformationItem_elm";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct coMPHypothesisSet_t : CoMPHypothesisSet - { - static constexpr const char* name() {return "coMPHypothesisSet_t";} - using parent_t = CoMPHypothesisSet; - - }; - coMPHypothesisSet_t& ref_coMPHypothesisSet() {return coMPHypothesisSet;} - coMPHypothesisSet_t const& ref_coMPHypothesisSet() const {return coMPHypothesisSet;} - struct benefitMetric_t : BenefitMetric - { - static constexpr const char* name() {return "benefitMetric_t";} - using parent_t = BenefitMetric; - - }; - benefitMetric_t& ref_benefitMetric() {return benefitMetric;} - benefitMetric_t const& ref_benefitMetric() const {return benefitMetric;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(coMPHypothesisSet); - v(benefitMetric); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(coMPHypothesisSet); - v(benefitMetric); - v(iE_Extensions); - - }; - void clear() - { - coMPHypothesisSet.clear(); - benefitMetric.clear(); - iE_Extensions.clear(); - - }; - private: - coMPHypothesisSet_t coMPHypothesisSet; - benefitMetric_t benefitMetric; - iE_Extensions_t iE_Extensions; - -}; -struct CoMPInformationItem : asn::sequenceof -{ - static constexpr const char* name() {return "CoMPInformationItem";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -CoMPInformationStartTime-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct CoMPInformationStartTime_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -CoMPInformationStartTime ::= SEQUENCE (SIZE(0..1)) OF - SEQUENCE { - startSFN INTEGER (0..1023, ...), - startSubframeNumber INTEGER (0..9, ...), - iE-Extensions ProtocolExtensionContainer { {CoMPInformationStartTime-ExtIEs} } OPTIONAL, - ... - } -*/ - -struct CoMPInformationStartTime_elm : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "CoMPInformationStartTime_elm";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct startSFN_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "startSFN_t";} - using parent_t = asn::integer<>; - - }; - - startSFN_t& ref_startSFN() {return startSFN;} - startSFN_t const& ref_startSFN() const {return startSFN;} - struct startSubframeNumber_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "startSubframeNumber_t";} - using parent_t = asn::integer<>; - - }; - - startSubframeNumber_t& ref_startSubframeNumber() {return startSubframeNumber;} - startSubframeNumber_t const& ref_startSubframeNumber() const {return startSubframeNumber;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(startSFN); - v(startSubframeNumber); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(startSFN); - v(startSubframeNumber); - v(iE_Extensions); - - }; - void clear() - { - startSFN.clear(); - startSubframeNumber.clear(); - iE_Extensions.clear(); - - }; - private: - startSFN_t startSFN; - startSubframeNumber_t startSubframeNumber; - iE_Extensions_t iE_Extensions; - -}; -struct CoMPInformationStartTime : asn::sequenceof -{ - static constexpr const char* name() {return "CoMPInformationStartTime";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -CoMPInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct CoMPInformation_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -CoMPInformation ::= SEQUENCE { - coMPInformationItem CoMPInformationItem, - coMPInformationStartTime CoMPInformationStartTime, - iE-Extensions ProtocolExtensionContainer { {CoMPInformation-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct CoMPInformation : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "CoMPInformation";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct coMPInformationItem_t : CoMPInformationItem - { - static constexpr const char* name() {return "coMPInformationItem_t";} - using parent_t = CoMPInformationItem; - - }; - coMPInformationItem_t& ref_coMPInformationItem() {return coMPInformationItem;} - coMPInformationItem_t const& ref_coMPInformationItem() const {return coMPInformationItem;} - struct coMPInformationStartTime_t : CoMPInformationStartTime - { - static constexpr const char* name() {return "coMPInformationStartTime_t";} - using parent_t = CoMPInformationStartTime; - - }; - coMPInformationStartTime_t& ref_coMPInformationStartTime() {return coMPInformationStartTime;} - coMPInformationStartTime_t const& ref_coMPInformationStartTime() const {return coMPInformationStartTime;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(coMPInformationItem); - v(coMPInformationStartTime); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(coMPInformationItem); - v(coMPInformationStartTime); - v(iE_Extensions); - - }; - void clear() - { - coMPInformationItem.clear(); - coMPInformationStartTime.clear(); - iE_Extensions.clear(); - - }; - private: - coMPInformationItem_t coMPInformationItem; - coMPInformationStartTime_t coMPInformationStartTime; - iE_Extensions_t iE_Extensions; - -}; -/* -CompositeAvailableCapacity-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct CompositeAvailableCapacity_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -CompositeAvailableCapacity ::= SEQUENCE { - cellCapacityClassValue CellCapacityClassValue OPTIONAL, - capacityValue CapacityValue, - iE-Extensions ProtocolExtensionContainer { {CompositeAvailableCapacity-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct CompositeAvailableCapacity : asn::sequence<3, 0, true, 2> -{ - static constexpr const char* name() {return "CompositeAvailableCapacity";} - using parent_t = asn::sequence<3, 0, true, 2>; - struct cellCapacityClassValue_t : CellCapacityClassValue - { - static constexpr const char* name() {return "cellCapacityClassValue_t";} - using parent_t = CellCapacityClassValue; - static constexpr bool optional = true; - - }; - cellCapacityClassValue_t& set_cellCapacityClassValue() { cellCapacityClassValue.setpresent(true); return cellCapacityClassValue;} - cellCapacityClassValue_t const* get_cellCapacityClassValue() const {return cellCapacityClassValue.is_valid() ? &cellCapacityClassValue : nullptr;} - struct capacityValue_t : CapacityValue - { - static constexpr const char* name() {return "capacityValue_t";} - using parent_t = CapacityValue; - - }; - capacityValue_t& ref_capacityValue() {return capacityValue;} - capacityValue_t const& ref_capacityValue() const {return capacityValue;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(cellCapacityClassValue); - v(capacityValue); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(cellCapacityClassValue); - v(capacityValue); - v(iE_Extensions); - - }; - void clear() - { - cellCapacityClassValue.clear(); - capacityValue.clear(); - iE_Extensions.clear(); - - }; - private: - cellCapacityClassValue_t cellCapacityClassValue; - capacityValue_t capacityValue; - iE_Extensions_t iE_Extensions; - -}; -/* -CompositeAvailableCapacityGroup-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct CompositeAvailableCapacityGroup_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -CompositeAvailableCapacityGroup ::= SEQUENCE { - dL-CompositeAvailableCapacity CompositeAvailableCapacity, - uL-CompositeAvailableCapacity CompositeAvailableCapacity, - iE-Extensions ProtocolExtensionContainer { {CompositeAvailableCapacityGroup-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct CompositeAvailableCapacityGroup : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "CompositeAvailableCapacityGroup";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct dL_CompositeAvailableCapacity_t : CompositeAvailableCapacity - { - static constexpr const char* name() {return "dL_CompositeAvailableCapacity_t";} - using parent_t = CompositeAvailableCapacity; - - }; - dL_CompositeAvailableCapacity_t& ref_dL_CompositeAvailableCapacity() {return dL_CompositeAvailableCapacity;} - dL_CompositeAvailableCapacity_t const& ref_dL_CompositeAvailableCapacity() const {return dL_CompositeAvailableCapacity;} - struct uL_CompositeAvailableCapacity_t : CompositeAvailableCapacity - { - static constexpr const char* name() {return "uL_CompositeAvailableCapacity_t";} - using parent_t = CompositeAvailableCapacity; - - }; - uL_CompositeAvailableCapacity_t& ref_uL_CompositeAvailableCapacity() {return uL_CompositeAvailableCapacity;} - uL_CompositeAvailableCapacity_t const& ref_uL_CompositeAvailableCapacity() const {return uL_CompositeAvailableCapacity;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(dL_CompositeAvailableCapacity); - v(uL_CompositeAvailableCapacity); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(dL_CompositeAvailableCapacity); - v(uL_CompositeAvailableCapacity); - v(iE_Extensions); - - }; - void clear() - { - dL_CompositeAvailableCapacity.clear(); - uL_CompositeAvailableCapacity.clear(); - iE_Extensions.clear(); - - }; - private: - dL_CompositeAvailableCapacity_t dL_CompositeAvailableCapacity; - uL_CompositeAvailableCapacity_t uL_CompositeAvailableCapacity; - iE_Extensions_t iE_Extensions; - -}; -/* -Correlation-ID ::= OCTET STRING (SIZE (4)) -*/ - -struct Correlation_ID : asn::ostring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "Correlation-ID";} - using parent_t = asn::ostring<>; - -}; - -/* -CoverageModification-Item ::= SEQUENCE { - eCGI ECGI, - coverageState INTEGER (0..15, ...), - cellDeploymentStatusIndicator CellDeploymentStatusIndicator OPTIONAL, - cellReplacingInfo CellReplacingInfo OPTIONAL, --- Included in case the Cell Deployment Status Indicator IE is present - ... -} -*/ - -struct CoverageModification_Item : asn::sequence<4, 0, true, 2> -{ - static constexpr const char* name() {return "CoverageModification-Item";} - using parent_t = asn::sequence<4, 0, true, 2>; - struct eCGI_t : ECGI - { - static constexpr const char* name() {return "eCGI_t";} - using parent_t = ECGI; - - }; - eCGI_t& ref_eCGI() {return eCGI;} - eCGI_t const& ref_eCGI() const {return eCGI;} - struct coverageState_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "coverageState_t";} - using parent_t = asn::integer<>; - - }; - - coverageState_t& ref_coverageState() {return coverageState;} - coverageState_t const& ref_coverageState() const {return coverageState;} - struct cellDeploymentStatusIndicator_t : CellDeploymentStatusIndicator - { - static constexpr const char* name() {return "cellDeploymentStatusIndicator_t";} - using parent_t = CellDeploymentStatusIndicator; - static constexpr bool optional = true; - - }; - cellDeploymentStatusIndicator_t& set_cellDeploymentStatusIndicator() { cellDeploymentStatusIndicator.setpresent(true); return cellDeploymentStatusIndicator;} - cellDeploymentStatusIndicator_t const* get_cellDeploymentStatusIndicator() const {return cellDeploymentStatusIndicator.is_valid() ? &cellDeploymentStatusIndicator : nullptr;} - struct cellReplacingInfo_t : CellReplacingInfo - { - static constexpr const char* name() {return "cellReplacingInfo_t";} - using parent_t = CellReplacingInfo; - static constexpr bool optional = true; - - }; - cellReplacingInfo_t& set_cellReplacingInfo() { cellReplacingInfo.setpresent(true); return cellReplacingInfo;} - cellReplacingInfo_t const* get_cellReplacingInfo() const {return cellReplacingInfo.is_valid() ? &cellReplacingInfo : nullptr;} - template void decode(V& v) - { - v(eCGI); - v(coverageState); - v(cellDeploymentStatusIndicator); - v(cellReplacingInfo); - - }; - template void encode(V& v) const - { - v(eCGI); - v(coverageState); - v(cellDeploymentStatusIndicator); - v(cellReplacingInfo); - - }; - void clear() - { - eCGI.clear(); - coverageState.clear(); - cellDeploymentStatusIndicator.clear(); - cellReplacingInfo.clear(); - - }; - private: - eCGI_t eCGI; - coverageState_t coverageState; - cellDeploymentStatusIndicator_t cellDeploymentStatusIndicator; - cellReplacingInfo_t cellReplacingInfo; - -}; -/* -CoverageModificationList ::= SEQUENCE (SIZE (1..maxCellineNB)) OF CoverageModification-Item -*/ - -struct CoverageModificationList_elm : CoverageModification_Item -{ - static constexpr const char* name() {return "CoverageModificationList_elm";} - using parent_t = CoverageModification_Item; - -}; -struct CoverageModificationList : asn::sequenceof -{ - static constexpr const char* name() {return "CoverageModificationList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -TypeOfError ::= ENUMERATED { - not-understood, - missing, - ... -} -*/ - -struct TypeOfError : asn::enumerated<2, 0, true> -{ - static constexpr const char* name() {return "TypeOfError";} - using parent_t = asn::enumerated<2, 0, true>; - typedef enum { - not_understood - ,missing - } index_t; - -}; - -/* -CriticalityDiagnostics-IE-List-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct CriticalityDiagnostics_IE_List_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -CriticalityDiagnostics-IE-List ::= SEQUENCE (SIZE (1..maxNrOfErrors)) OF - SEQUENCE { - iECriticality Criticality, - iE-ID ProtocolIE-ID, - typeOfError TypeOfError, - iE-Extensions ProtocolExtensionContainer { {CriticalityDiagnostics-IE-List-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct CriticalityDiagnostics_IE_List_elm : asn::sequence<4, 0, true, 1> -{ - static constexpr const char* name() {return "CriticalityDiagnostics_IE_List_elm";} - using parent_t = asn::sequence<4, 0, true, 1>; - struct iECriticality_t : Criticality - { - static constexpr const char* name() {return "iECriticality_t";} - using parent_t = Criticality; - - }; - iECriticality_t& ref_iECriticality() {return iECriticality;} - iECriticality_t const& ref_iECriticality() const {return iECriticality;} - struct iE_ID_t : ProtocolIE_ID - { - static constexpr const char* name() {return "iE_ID_t";} - using parent_t = ProtocolIE_ID; - - }; - iE_ID_t& ref_iE_ID() {return iE_ID;} - iE_ID_t const& ref_iE_ID() const {return iE_ID;} - struct typeOfError_t : TypeOfError - { - static constexpr const char* name() {return "typeOfError_t";} - using parent_t = TypeOfError; - - }; - typeOfError_t& ref_typeOfError() {return typeOfError;} - typeOfError_t const& ref_typeOfError() const {return typeOfError;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(iECriticality); - v(iE_ID); - v(typeOfError); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(iECriticality); - v(iE_ID); - v(typeOfError); - v(iE_Extensions); - - }; - void clear() - { - iECriticality.clear(); - iE_ID.clear(); - typeOfError.clear(); - iE_Extensions.clear(); - - }; - private: - iECriticality_t iECriticality; - iE_ID_t iE_ID; - typeOfError_t typeOfError; - iE_Extensions_t iE_Extensions; - -}; -struct CriticalityDiagnostics_IE_List : asn::sequenceof -{ - static constexpr const char* name() {return "CriticalityDiagnostics-IE-List";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -CriticalityDiagnostics-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct CriticalityDiagnostics_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -CriticalityDiagnostics ::= SEQUENCE { - procedureCode ProcedureCode OPTIONAL, - triggeringMessage TriggeringMessage OPTIONAL, - procedureCriticality Criticality OPTIONAL, - iEsCriticalityDiagnostics CriticalityDiagnostics-IE-List OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {CriticalityDiagnostics-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct CriticalityDiagnostics : asn::sequence<5, 0, true, 5> -{ - static constexpr const char* name() {return "CriticalityDiagnostics";} - using parent_t = asn::sequence<5, 0, true, 5>; - struct procedureCode_t : ProcedureCode - { - static constexpr const char* name() {return "procedureCode_t";} - using parent_t = ProcedureCode; - static constexpr bool optional = true; - - }; - procedureCode_t& set_procedureCode() { procedureCode.setpresent(true); return procedureCode;} - procedureCode_t const* get_procedureCode() const {return procedureCode.is_valid() ? &procedureCode : nullptr;} - struct triggeringMessage_t : TriggeringMessage - { - static constexpr const char* name() {return "triggeringMessage_t";} - using parent_t = TriggeringMessage; - static constexpr bool optional = true; - - }; - triggeringMessage_t& set_triggeringMessage() { triggeringMessage.setpresent(true); return triggeringMessage;} - triggeringMessage_t const* get_triggeringMessage() const {return triggeringMessage.is_valid() ? &triggeringMessage : nullptr;} - struct procedureCriticality_t : Criticality - { - static constexpr const char* name() {return "procedureCriticality_t";} - using parent_t = Criticality; - static constexpr bool optional = true; - - }; - procedureCriticality_t& set_procedureCriticality() { procedureCriticality.setpresent(true); return procedureCriticality;} - procedureCriticality_t const* get_procedureCriticality() const {return procedureCriticality.is_valid() ? &procedureCriticality : nullptr;} - struct iEsCriticalityDiagnostics_t : CriticalityDiagnostics_IE_List - { - static constexpr const char* name() {return "iEsCriticalityDiagnostics_t";} - using parent_t = CriticalityDiagnostics_IE_List; - static constexpr bool optional = true; - - }; - iEsCriticalityDiagnostics_t& set_iEsCriticalityDiagnostics() { iEsCriticalityDiagnostics.setpresent(true); return iEsCriticalityDiagnostics;} - iEsCriticalityDiagnostics_t const* get_iEsCriticalityDiagnostics() const {return iEsCriticalityDiagnostics.is_valid() ? &iEsCriticalityDiagnostics : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(procedureCode); - v(triggeringMessage); - v(procedureCriticality); - v(iEsCriticalityDiagnostics); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(procedureCode); - v(triggeringMessage); - v(procedureCriticality); - v(iEsCriticalityDiagnostics); - v(iE_Extensions); - - }; - void clear() - { - procedureCode.clear(); - triggeringMessage.clear(); - procedureCriticality.clear(); - iEsCriticalityDiagnostics.clear(); - iE_Extensions.clear(); - - }; - private: - procedureCode_t procedureCode; - triggeringMessage_t triggeringMessage; - procedureCriticality_t procedureCriticality; - iEsCriticalityDiagnostics_t iEsCriticalityDiagnostics; - iE_Extensions_t iE_Extensions; - -}; -/* -DL-Forwarding ::= ENUMERATED { - dL-forwardingProposed, - ... -} -*/ - -struct DL_Forwarding : asn::enumerated<1, 0, true> -{ - static constexpr const char* name() {return "DL-Forwarding";} - using parent_t = asn::enumerated<1, 0, true>; - typedef enum { - dL_forwardingProposed - } index_t; - -}; - -/* -DL-GBR-PRB-usage::= INTEGER (0..100) -*/ - -struct DL_GBR_PRB_usage : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "DL-GBR-PRB-usage";} - using parent_t = asn::integer<>; - -}; - -/* -DL-Total-PRB-usage::= INTEGER (0..100) -*/ - -struct DL_Total_PRB_usage : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "DL-Total-PRB-usage";} - using parent_t = asn::integer<>; - -}; - -/* -DL-non-GBR-PRB-usage::= INTEGER (0..100) -*/ - -struct DL_non_GBR_PRB_usage : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "DL-non-GBR-PRB-usage";} - using parent_t = asn::integer<>; - -}; - -/* -DL-scheduling-PDCCH-CCE-usage::= INTEGER (0..100) -*/ - -struct DL_scheduling_PDCCH_CCE_usage : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "DL-scheduling-PDCCH-CCE-usage";} - using parent_t = asn::integer<>; - -}; - -/* -DataTrafficResources ::= BIT STRING (SIZE(6..17600)) -*/ - -struct DataTrafficResources : asn::bstring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "DataTrafficResources";} - using parent_t = asn::bstring<>; - -}; - -/* -DLResourceBitmapULandDLSharing ::= DataTrafficResources -*/ - -struct DLResourceBitmapULandDLSharing : DataTrafficResources -{ - static constexpr const char* name() {return "DLResourceBitmapULandDLSharing";} - using parent_t = DataTrafficResources; - -}; -/* -DLResourcesULandDLSharing ::= CHOICE { -unchanged NULL, - changed DLResourceBitmapULandDLSharing, - ... -} -*/ - -struct DLResourcesULandDLSharing : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "DLResourcesULandDLSharing";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~DLResourcesULandDLSharing() {clear();} - struct unchanged_t : asn::nulltype - { - static constexpr const char* name() {return "unchanged_t";} - using parent_t = asn::nulltype; - - }; - struct changed_t : DLResourceBitmapULandDLSharing - { - static constexpr const char* name() {return "changed_t";} - using parent_t = DLResourceBitmapULandDLSharing; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - unchanged_t& select_unchanged() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - unchanged_t const* get_unchanged() const { if(get_index() == 1) { return &var.as();} return nullptr; } - changed_t& select_changed() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - changed_t const* get_changed() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(unchanged_t)]; - char dummy2[sizeof(changed_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -DRB-ID ::= INTEGER (1..32) -*/ - -struct DRB_ID : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "DRB-ID";} - using parent_t = asn::integer<>; - -}; - -/* -ULOnlySharing-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct ULOnlySharing_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ULOnlySharing ::= SEQUENCE{ - uLResourceBitmapULOnlySharing DataTrafficResources, - iE-Extensions ProtocolExtensionContainer { {ULOnlySharing-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct ULOnlySharing : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "ULOnlySharing";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct uLResourceBitmapULOnlySharing_t : DataTrafficResources - { - static constexpr const char* name() {return "uLResourceBitmapULOnlySharing_t";} - using parent_t = DataTrafficResources; - - }; - uLResourceBitmapULOnlySharing_t& ref_uLResourceBitmapULOnlySharing() {return uLResourceBitmapULOnlySharing;} - uLResourceBitmapULOnlySharing_t const& ref_uLResourceBitmapULOnlySharing() const {return uLResourceBitmapULOnlySharing;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(uLResourceBitmapULOnlySharing); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(uLResourceBitmapULOnlySharing); - v(iE_Extensions); - - }; - void clear() - { - uLResourceBitmapULOnlySharing.clear(); - iE_Extensions.clear(); - - }; - private: - uLResourceBitmapULOnlySharing_t uLResourceBitmapULOnlySharing; - iE_Extensions_t iE_Extensions; - -}; -/* -ULResourceBitmapULandDLSharing ::= DataTrafficResources -*/ - -struct ULResourceBitmapULandDLSharing : DataTrafficResources -{ - static constexpr const char* name() {return "ULResourceBitmapULandDLSharing";} - using parent_t = DataTrafficResources; - -}; -/* -ULResourcesULandDLSharing ::= CHOICE { - unchanged NULL, - changed ULResourceBitmapULandDLSharing, - ... -} -*/ - -struct ULResourcesULandDLSharing : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "ULResourcesULandDLSharing";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~ULResourcesULandDLSharing() {clear();} - struct unchanged_t : asn::nulltype - { - static constexpr const char* name() {return "unchanged_t";} - using parent_t = asn::nulltype; - - }; - struct changed_t : ULResourceBitmapULandDLSharing - { - static constexpr const char* name() {return "changed_t";} - using parent_t = ULResourceBitmapULandDLSharing; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - unchanged_t& select_unchanged() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - unchanged_t const* get_unchanged() const { if(get_index() == 1) { return &var.as();} return nullptr; } - changed_t& select_changed() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - changed_t const* get_changed() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(unchanged_t)]; - char dummy2[sizeof(changed_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -ULandDLSharing-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct ULandDLSharing_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ULandDLSharing ::= SEQUENCE{ - uLResourcesULandDLSharing ULResourcesULandDLSharing, - dLResourcesULandDLSharing DLResourcesULandDLSharing, - iE-Extensions ProtocolExtensionContainer { {ULandDLSharing-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct ULandDLSharing : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "ULandDLSharing";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct uLResourcesULandDLSharing_t : ULResourcesULandDLSharing - { - static constexpr const char* name() {return "uLResourcesULandDLSharing_t";} - using parent_t = ULResourcesULandDLSharing; - - }; - uLResourcesULandDLSharing_t& ref_uLResourcesULandDLSharing() {return uLResourcesULandDLSharing;} - uLResourcesULandDLSharing_t const& ref_uLResourcesULandDLSharing() const {return uLResourcesULandDLSharing;} - struct dLResourcesULandDLSharing_t : DLResourcesULandDLSharing - { - static constexpr const char* name() {return "dLResourcesULandDLSharing_t";} - using parent_t = DLResourcesULandDLSharing; - - }; - dLResourcesULandDLSharing_t& ref_dLResourcesULandDLSharing() {return dLResourcesULandDLSharing;} - dLResourcesULandDLSharing_t const& ref_dLResourcesULandDLSharing() const {return dLResourcesULandDLSharing;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(uLResourcesULandDLSharing); - v(dLResourcesULandDLSharing); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(uLResourcesULandDLSharing); - v(dLResourcesULandDLSharing); - v(iE_Extensions); - - }; - void clear() - { - uLResourcesULandDLSharing.clear(); - dLResourcesULandDLSharing.clear(); - iE_Extensions.clear(); - - }; - private: - uLResourcesULandDLSharing_t uLResourcesULandDLSharing; - dLResourcesULandDLSharing_t dLResourcesULandDLSharing; - iE_Extensions_t iE_Extensions; - -}; -/* -SharedResourceType ::= CHOICE{ - uLOnlySharing ULOnlySharing, - uLandDLSharing ULandDLSharing, - ... -} -*/ - -struct SharedResourceType : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "SharedResourceType";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~SharedResourceType() {clear();} - struct uLOnlySharing_t : ULOnlySharing - { - static constexpr const char* name() {return "uLOnlySharing_t";} - using parent_t = ULOnlySharing; - - }; - struct uLandDLSharing_t : ULandDLSharing - { - static constexpr const char* name() {return "uLandDLSharing_t";} - using parent_t = ULandDLSharing; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - uLOnlySharing_t& select_uLOnlySharing() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - uLOnlySharing_t const* get_uLOnlySharing() const { if(get_index() == 1) { return &var.as();} return nullptr; } - uLandDLSharing_t& select_uLandDLSharing() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - uLandDLSharing_t const* get_uLandDLSharing() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(uLOnlySharing_t)]; - char dummy2[sizeof(uLandDLSharing_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -SubframeType ::= ENUMERATED{mbsfn,nonmbsfn,...} -*/ - -struct SubframeType : asn::enumerated<2, 0, true> -{ - static constexpr const char* name() {return "SubframeType";} - using parent_t = asn::enumerated<2, 0, true>; - typedef enum { - mbsfn - ,nonmbsfn - } index_t; - -}; - -/* -ReservedSubframePattern-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct ReservedSubframePattern_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ReservedSubframePattern ::= SEQUENCE{ - subframeType SubframeType, - reservedSubframePattern BIT STRING (SIZE(10..160)), - mBSFNControlRegionLength INTEGER (0..3), - iE-Extensions ProtocolExtensionContainer { {ReservedSubframePattern-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct ReservedSubframePattern : asn::sequence<4, 0, true, 1> -{ - static constexpr const char* name() {return "ReservedSubframePattern";} - using parent_t = asn::sequence<4, 0, true, 1>; - struct subframeType_t : SubframeType - { - static constexpr const char* name() {return "subframeType_t";} - using parent_t = SubframeType; - - }; - subframeType_t& ref_subframeType() {return subframeType;} - subframeType_t const& ref_subframeType() const {return subframeType;} - struct reservedSubframePattern_t : asn::bstring<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "reservedSubframePattern_t";} - using parent_t = asn::bstring<>; - - }; - - reservedSubframePattern_t& ref_reservedSubframePattern() {return reservedSubframePattern;} - reservedSubframePattern_t const& ref_reservedSubframePattern() const {return reservedSubframePattern;} - struct mBSFNControlRegionLength_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "mBSFNControlRegionLength_t";} - using parent_t = asn::integer<>; - - }; - - mBSFNControlRegionLength_t& ref_mBSFNControlRegionLength() {return mBSFNControlRegionLength;} - mBSFNControlRegionLength_t const& ref_mBSFNControlRegionLength() const {return mBSFNControlRegionLength;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(subframeType); - v(reservedSubframePattern); - v(mBSFNControlRegionLength); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(subframeType); - v(reservedSubframePattern); - v(mBSFNControlRegionLength); - v(iE_Extensions); - - }; - void clear() - { - subframeType.clear(); - reservedSubframePattern.clear(); - mBSFNControlRegionLength.clear(); - iE_Extensions.clear(); - - }; - private: - subframeType_t subframeType; - reservedSubframePattern_t reservedSubframePattern; - mBSFNControlRegionLength_t mBSFNControlRegionLength; - iE_Extensions_t iE_Extensions; - -}; -/* -DataTrafficResourceIndication-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct DataTrafficResourceIndication_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -DataTrafficResourceIndication ::= SEQUENCE { - activationSFN INTEGER (0..1023), - sharedResourceType SharedResourceType, - reservedSubframePattern ReservedSubframePattern OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {DataTrafficResourceIndication-ExtIEs} } OPTIONAL, -... -} -*/ - -struct DataTrafficResourceIndication : asn::sequence<4, 0, true, 2> -{ - static constexpr const char* name() {return "DataTrafficResourceIndication";} - using parent_t = asn::sequence<4, 0, true, 2>; - struct activationSFN_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "activationSFN_t";} - using parent_t = asn::integer<>; - - }; - - activationSFN_t& ref_activationSFN() {return activationSFN;} - activationSFN_t const& ref_activationSFN() const {return activationSFN;} - struct sharedResourceType_t : SharedResourceType - { - static constexpr const char* name() {return "sharedResourceType_t";} - using parent_t = SharedResourceType; - - }; - sharedResourceType_t& ref_sharedResourceType() {return sharedResourceType;} - sharedResourceType_t const& ref_sharedResourceType() const {return sharedResourceType;} - struct reservedSubframePattern_t : ReservedSubframePattern - { - static constexpr const char* name() {return "reservedSubframePattern_t";} - using parent_t = ReservedSubframePattern; - static constexpr bool optional = true; - - }; - reservedSubframePattern_t& set_reservedSubframePattern() { reservedSubframePattern.setpresent(true); return reservedSubframePattern;} - reservedSubframePattern_t const* get_reservedSubframePattern() const {return reservedSubframePattern.is_valid() ? &reservedSubframePattern : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(activationSFN); - v(sharedResourceType); - v(reservedSubframePattern); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(activationSFN); - v(sharedResourceType); - v(reservedSubframePattern); - v(iE_Extensions); - - }; - void clear() - { - activationSFN.clear(); - sharedResourceType.clear(); - reservedSubframePattern.clear(); - iE_Extensions.clear(); - - }; - private: - activationSFN_t activationSFN; - sharedResourceType_t sharedResourceType; - reservedSubframePattern_t reservedSubframePattern; - iE_Extensions_t iE_Extensions; - -}; -/* -DeactivationIndication::= ENUMERATED { - deactivated, - ... -} -*/ - -struct DeactivationIndication : asn::enumerated<1, 0, true> -{ - static constexpr const char* name() {return "DeactivationIndication";} - using parent_t = asn::enumerated<1, 0, true>; - typedef enum { - deactivated - } index_t; - -}; - -/* -DeliveryStatus-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct DeliveryStatus_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -DeliveryStatus ::= SEQUENCE { - highestSuccessDeliveredPDCPSN INTEGER (0..4095), - iE-Extensions ProtocolExtensionContainer { {DeliveryStatus-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct DeliveryStatus : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "DeliveryStatus";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct highestSuccessDeliveredPDCPSN_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "highestSuccessDeliveredPDCPSN_t";} - using parent_t = asn::integer<>; - - }; - - highestSuccessDeliveredPDCPSN_t& ref_highestSuccessDeliveredPDCPSN() {return highestSuccessDeliveredPDCPSN;} - highestSuccessDeliveredPDCPSN_t const& ref_highestSuccessDeliveredPDCPSN() const {return highestSuccessDeliveredPDCPSN;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(highestSuccessDeliveredPDCPSN); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(highestSuccessDeliveredPDCPSN); - v(iE_Extensions); - - }; - void clear() - { - highestSuccessDeliveredPDCPSN.clear(); - iE_Extensions.clear(); - - }; - private: - highestSuccessDeliveredPDCPSN_t highestSuccessDeliveredPDCPSN; - iE_Extensions_t iE_Extensions; - -}; -/* -DuplicationActivation::= ENUMERATED {active, inactive, ...} -*/ - -struct DuplicationActivation : asn::enumerated<2, 0, true> -{ - static constexpr const char* name() {return "DuplicationActivation";} - using parent_t = asn::enumerated<2, 0, true>; - typedef enum { - active - ,inactive - } index_t; - -}; - -/* -PA-Values ::= ENUMERATED { - dB-6, - dB-4dot77, - dB-3, - dB-1dot77, - dB0, - dB1, - dB2, - dB3, - ... -} -*/ - -struct PA_Values : asn::enumerated<8, 0, true> -{ - static constexpr const char* name() {return "PA-Values";} - using parent_t = asn::enumerated<8, 0, true>; - typedef enum { - dB_6 - ,dB_4dot77 - ,dB_3 - ,dB_1dot77 - ,dB0 - ,dB1 - ,dB2 - ,dB3 - } index_t; - -}; - -/* -DynamicNAICSInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct DynamicNAICSInformation_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -DynamicNAICSInformation ::= SEQUENCE { - transmissionModes BIT STRING (SIZE(8)) OPTIONAL, - pB-information INTEGER(0..3) OPTIONAL, - pA-list SEQUENCE (SIZE(0..maxnoofPA)) OF PA-Values, - iE-Extensions ProtocolExtensionContainer { {DynamicNAICSInformation-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct DynamicNAICSInformation : asn::sequence<4, 0, true, 3> -{ - static constexpr const char* name() {return "DynamicNAICSInformation";} - using parent_t = asn::sequence<4, 0, true, 3>; - struct transmissionModes_t : asn::bstring<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "transmissionModes_t";} - using parent_t = asn::bstring<>; - static constexpr bool optional = true; - - }; - - transmissionModes_t& set_transmissionModes() { transmissionModes.setpresent(true); return transmissionModes;} - transmissionModes_t const* get_transmissionModes() const {return transmissionModes.is_valid() ? &transmissionModes : nullptr;} - struct pB_information_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "pB_information_t";} - using parent_t = asn::integer<>; - static constexpr bool optional = true; - - }; - - pB_information_t& set_pB_information() { pB_information.setpresent(true); return pB_information;} - pB_information_t const* get_pB_information() const {return pB_information.is_valid() ? &pB_information : nullptr;} - struct pA_list_t_elm : PA_Values - { - static constexpr const char* name() {return "pA_list_t_elm";} - using parent_t = PA_Values; - - }; - struct pA_list_t : asn::sequenceof - { - static constexpr const char* name() {return "pA_list_t";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - - }; - pA_list_t& ref_pA_list() {return pA_list;} - pA_list_t const& ref_pA_list() const {return pA_list;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(transmissionModes); - v(pB_information); - v(pA_list); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(transmissionModes); - v(pB_information); - v(pA_list); - v(iE_Extensions); - - }; - void clear() - { - transmissionModes.clear(); - pB_information.clear(); - pA_list.clear(); - iE_Extensions.clear(); - - }; - private: - transmissionModes_t transmissionModes; - pB_information_t pB_information; - pA_list_t pA_list; - iE_Extensions_t iE_Extensions; - -}; -/* -DynamicDLTransmissionInformation ::= CHOICE { - naics-active DynamicNAICSInformation, - naics-inactive NULL, - ... -} -*/ - -struct DynamicDLTransmissionInformation : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "DynamicDLTransmissionInformation";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~DynamicDLTransmissionInformation() {clear();} - struct naics_active_t : DynamicNAICSInformation - { - static constexpr const char* name() {return "naics_active_t";} - using parent_t = DynamicNAICSInformation; - - }; - struct naics_inactive_t : asn::nulltype - { - static constexpr const char* name() {return "naics_inactive_t";} - using parent_t = asn::nulltype; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - naics_active_t& select_naics_active() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - naics_active_t const* get_naics_active() const { if(get_index() == 1) { return &var.as();} return nullptr; } - naics_inactive_t& select_naics_inactive() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - naics_inactive_t const* get_naics_inactive() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(naics_active_t)]; - char dummy2[sizeof(naics_inactive_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -E-RAB-ID ::= INTEGER (0..15, ...) -*/ - -struct E_RAB_ID : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "E-RAB-ID";} - using parent_t = asn::integer<>; - -}; - -/* -E-RAB-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RAB_Item_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RAB-Item ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - cause Cause, - iE-Extensions ProtocolExtensionContainer { {E-RAB-Item-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RAB_Item : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "E-RAB-Item";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct cause_t : Cause - { - static constexpr const char* name() {return "cause_t";} - using parent_t = Cause; - - }; - cause_t& ref_cause() {return cause;} - cause_t const& ref_cause() const {return cause;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(cause); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(cause); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - cause.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - cause_t cause; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RAB-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RAB-Item CRITICALITY ignore TYPE E-RAB-Item PRESENCE mandatory }, - ... -} -*/ - -struct E_RAB_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RAB_Item() { set(id_E_RAB_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RAB_Item)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RAB_Item);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RAB_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RAB_Item& select_id_E_RAB_Item() { return set(1); } - E_RAB_Item const* get_id_E_RAB_Item() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RAB_Item()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RAB_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RAB_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -QCI ::= INTEGER (0..255) -*/ - -struct QCI : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "QCI";} - using parent_t = asn::integer<>; - -}; - -/* -ExtendedBitRate ::= INTEGER (10000000001..4000000000000,...) -*/ - -struct ExtendedBitRate : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "ExtendedBitRate";} - using parent_t = asn::integer<>; - -}; - -/* -GBR-QosInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { --- Extension for maximum bitrate > 10Gbps -- - { ID id-extended-e-RAB-MaximumBitrateDL CRITICALITY ignore EXTENSION ExtendedBitRate PRESENCE optional}| - { ID id-extended-e-RAB-MaximumBitrateUL CRITICALITY ignore EXTENSION ExtendedBitRate PRESENCE optional}| - { ID id-extended-e-RAB-GuaranteedBitrateDL CRITICALITY ignore EXTENSION ExtendedBitRate PRESENCE optional}| - { ID id-extended-e-RAB-GuaranteedBitrateUL CRITICALITY ignore EXTENSION ExtendedBitRate PRESENCE optional}, - ... -} -*/ - -struct GBR_QosInformation_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_extended_e_RAB_MaximumBitrateDL() { set(id_extended_e_RAB_MaximumBitrateDL); type=1;} - void select_id_extended_e_RAB_MaximumBitrateUL() { set(id_extended_e_RAB_MaximumBitrateUL); type=2;} - void select_id_extended_e_RAB_GuaranteedBitrateDL() { set(id_extended_e_RAB_GuaranteedBitrateDL); type=3;} - void select_id_extended_e_RAB_GuaranteedBitrateUL() { set(id_extended_e_RAB_GuaranteedBitrateUL); type=4;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_extended_e_RAB_MaximumBitrateDL)) { type = 1; return true; } - else if(equal(id_extended_e_RAB_MaximumBitrateUL)) { type = 2; return true; } - else if(equal(id_extended_e_RAB_GuaranteedBitrateDL)) { type = 3; return true; } - else if(equal(id_extended_e_RAB_GuaranteedBitrateUL)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_extended_e_RAB_MaximumBitrateDL);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_extended_e_RAB_MaximumBitrateUL);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_extended_e_RAB_GuaranteedBitrateDL);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_extended_e_RAB_GuaranteedBitrateUL);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_extended_e_RAB_MaximumBitrateDL() { set(ignore); type=1;} - void select_id_extended_e_RAB_MaximumBitrateUL() { set(ignore); type=2;} - void select_id_extended_e_RAB_GuaranteedBitrateDL() { set(ignore); type=3;} - void select_id_extended_e_RAB_GuaranteedBitrateUL() { set(ignore); type=4;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - ExtendedBitRate& select_id_extended_e_RAB_MaximumBitrateDL() { return set(1); } - ExtendedBitRate const* get_id_extended_e_RAB_MaximumBitrateDL() const { return get(1); } - ExtendedBitRate& select_id_extended_e_RAB_MaximumBitrateUL() { return set(2); } - ExtendedBitRate const* get_id_extended_e_RAB_MaximumBitrateUL() const { return get(2); } - ExtendedBitRate& select_id_extended_e_RAB_GuaranteedBitrateDL() { return set(3); } - ExtendedBitRate const* get_id_extended_e_RAB_GuaranteedBitrateDL() const { return get(3); } - ExtendedBitRate& select_id_extended_e_RAB_GuaranteedBitrateUL() { return set(4); } - ExtendedBitRate const* get_id_extended_e_RAB_GuaranteedBitrateUL() const { return get(4); } - bool is_unknown() const { return type == 5; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_extended_e_RAB_MaximumBitrateDL()); return true; - case 2: v(select_id_extended_e_RAB_MaximumBitrateUL()); return true; - case 3: v(select_id_extended_e_RAB_GuaranteedBitrateDL()); return true; - case 4: v(select_id_extended_e_RAB_GuaranteedBitrateUL()); return true; - case 5: if(type != 5) {clear(); asn::base::set();} type = 5; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(ExtendedBitRate)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_extended_e_RAB_MaximumBitrateDL() { set(optional); type=1;} - void select_id_extended_e_RAB_MaximumBitrateUL() { set(optional); type=2;} - void select_id_extended_e_RAB_GuaranteedBitrateDL() { set(optional); type=3;} - void select_id_extended_e_RAB_GuaranteedBitrateUL() { set(optional); type=4;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -GBR-QosInformation ::= SEQUENCE { - e-RAB-MaximumBitrateDL BitRate, - e-RAB-MaximumBitrateUL BitRate, - e-RAB-GuaranteedBitrateDL BitRate, - e-RAB-GuaranteedBitrateUL BitRate, - iE-Extensions ProtocolExtensionContainer { {GBR-QosInformation-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct GBR_QosInformation : asn::sequence<5, 0, true, 1> -{ - static constexpr const char* name() {return "GBR-QosInformation";} - using parent_t = asn::sequence<5, 0, true, 1>; - struct e_RAB_MaximumBitrateDL_t : BitRate - { - static constexpr const char* name() {return "e_RAB_MaximumBitrateDL_t";} - using parent_t = BitRate; - - }; - e_RAB_MaximumBitrateDL_t& ref_e_RAB_MaximumBitrateDL() {return e_RAB_MaximumBitrateDL;} - e_RAB_MaximumBitrateDL_t const& ref_e_RAB_MaximumBitrateDL() const {return e_RAB_MaximumBitrateDL;} - struct e_RAB_MaximumBitrateUL_t : BitRate - { - static constexpr const char* name() {return "e_RAB_MaximumBitrateUL_t";} - using parent_t = BitRate; - - }; - e_RAB_MaximumBitrateUL_t& ref_e_RAB_MaximumBitrateUL() {return e_RAB_MaximumBitrateUL;} - e_RAB_MaximumBitrateUL_t const& ref_e_RAB_MaximumBitrateUL() const {return e_RAB_MaximumBitrateUL;} - struct e_RAB_GuaranteedBitrateDL_t : BitRate - { - static constexpr const char* name() {return "e_RAB_GuaranteedBitrateDL_t";} - using parent_t = BitRate; - - }; - e_RAB_GuaranteedBitrateDL_t& ref_e_RAB_GuaranteedBitrateDL() {return e_RAB_GuaranteedBitrateDL;} - e_RAB_GuaranteedBitrateDL_t const& ref_e_RAB_GuaranteedBitrateDL() const {return e_RAB_GuaranteedBitrateDL;} - struct e_RAB_GuaranteedBitrateUL_t : BitRate - { - static constexpr const char* name() {return "e_RAB_GuaranteedBitrateUL_t";} - using parent_t = BitRate; - - }; - e_RAB_GuaranteedBitrateUL_t& ref_e_RAB_GuaranteedBitrateUL() {return e_RAB_GuaranteedBitrateUL;} - e_RAB_GuaranteedBitrateUL_t const& ref_e_RAB_GuaranteedBitrateUL() const {return e_RAB_GuaranteedBitrateUL;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_MaximumBitrateDL); - v(e_RAB_MaximumBitrateUL); - v(e_RAB_GuaranteedBitrateDL); - v(e_RAB_GuaranteedBitrateUL); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_MaximumBitrateDL); - v(e_RAB_MaximumBitrateUL); - v(e_RAB_GuaranteedBitrateDL); - v(e_RAB_GuaranteedBitrateUL); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_MaximumBitrateDL.clear(); - e_RAB_MaximumBitrateUL.clear(); - e_RAB_GuaranteedBitrateDL.clear(); - e_RAB_GuaranteedBitrateUL.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_MaximumBitrateDL_t e_RAB_MaximumBitrateDL; - e_RAB_MaximumBitrateUL_t e_RAB_MaximumBitrateUL; - e_RAB_GuaranteedBitrateDL_t e_RAB_GuaranteedBitrateDL; - e_RAB_GuaranteedBitrateUL_t e_RAB_GuaranteedBitrateUL; - iE_Extensions_t iE_Extensions; - -}; -/* -Packet-LossRate ::= INTEGER(0..1000) -*/ - -struct Packet_LossRate : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "Packet-LossRate";} - using parent_t = asn::integer<>; - -}; - -/* -E-RAB-Level-QoS-Parameters-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { --- Extended for introduction of downlink and uplink packet loss rate for enhanced Voice performance – - { ID id-DownlinkPacketLossRate CRITICALITY ignore EXTENSION Packet-LossRate PRESENCE optional}| - { ID id-UplinkPacketLossRate CRITICALITY ignore EXTENSION Packet-LossRate PRESENCE optional}, - ... -} -*/ - -struct E_RAB_Level_QoS_Parameters_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_DownlinkPacketLossRate() { set(id_DownlinkPacketLossRate); type=1;} - void select_id_UplinkPacketLossRate() { set(id_UplinkPacketLossRate); type=2;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_DownlinkPacketLossRate)) { type = 1; return true; } - else if(equal(id_UplinkPacketLossRate)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_DownlinkPacketLossRate);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_UplinkPacketLossRate);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_DownlinkPacketLossRate() { set(ignore); type=1;} - void select_id_UplinkPacketLossRate() { set(ignore); type=2;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - Packet_LossRate& select_id_DownlinkPacketLossRate() { return set(1); } - Packet_LossRate const* get_id_DownlinkPacketLossRate() const { return get(1); } - Packet_LossRate& select_id_UplinkPacketLossRate() { return set(2); } - Packet_LossRate const* get_id_UplinkPacketLossRate() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_DownlinkPacketLossRate()); return true; - case 2: v(select_id_UplinkPacketLossRate()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Packet_LossRate)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_DownlinkPacketLossRate() { set(optional); type=1;} - void select_id_UplinkPacketLossRate() { set(optional); type=2;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RAB-Level-QoS-Parameters ::= SEQUENCE { - qCI QCI, - allocationAndRetentionPriority AllocationAndRetentionPriority, - gbrQosInformation GBR-QosInformation OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {E-RAB-Level-QoS-Parameters-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RAB_Level_QoS_Parameters : asn::sequence<4, 0, true, 2> -{ - static constexpr const char* name() {return "E-RAB-Level-QoS-Parameters";} - using parent_t = asn::sequence<4, 0, true, 2>; - struct qCI_t : QCI - { - static constexpr const char* name() {return "qCI_t";} - using parent_t = QCI; - - }; - qCI_t& ref_qCI() {return qCI;} - qCI_t const& ref_qCI() const {return qCI;} - struct allocationAndRetentionPriority_t : AllocationAndRetentionPriority - { - static constexpr const char* name() {return "allocationAndRetentionPriority_t";} - using parent_t = AllocationAndRetentionPriority; - - }; - allocationAndRetentionPriority_t& ref_allocationAndRetentionPriority() {return allocationAndRetentionPriority;} - allocationAndRetentionPriority_t const& ref_allocationAndRetentionPriority() const {return allocationAndRetentionPriority;} - struct gbrQosInformation_t : GBR_QosInformation - { - static constexpr const char* name() {return "gbrQosInformation_t";} - using parent_t = GBR_QosInformation; - static constexpr bool optional = true; - - }; - gbrQosInformation_t& set_gbrQosInformation() { gbrQosInformation.setpresent(true); return gbrQosInformation;} - gbrQosInformation_t const* get_gbrQosInformation() const {return gbrQosInformation.is_valid() ? &gbrQosInformation : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(qCI); - v(allocationAndRetentionPriority); - v(gbrQosInformation); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(qCI); - v(allocationAndRetentionPriority); - v(gbrQosInformation); - v(iE_Extensions); - - }; - void clear() - { - qCI.clear(); - allocationAndRetentionPriority.clear(); - gbrQosInformation.clear(); - iE_Extensions.clear(); - - }; - private: - qCI_t qCI; - allocationAndRetentionPriority_t allocationAndRetentionPriority; - gbrQosInformation_t gbrQosInformation; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RAB-List ::= SEQUENCE (SIZE(1.. maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RAB-ItemIEs} } -*/ - -struct E_RAB_List_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RAB_List_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RAB_List : asn::sequenceof -{ - static constexpr const char* name() {return "E-RAB-List";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABUsageReport-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABUsageReport_Item_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABUsageReport-Item ::= SEQUENCE { - startTimeStamp OCTET STRING (SIZE(4)), - endTimeStamp OCTET STRING (SIZE(4)), - usageCountUL INTEGER (0..4294967295), - usageCountDL INTEGER (0..4294967295), - iE-Extensions ProtocolExtensionContainer { {E-RABUsageReport-Item-ExtIEs} } OPTIONAL, -... -} -*/ - -struct E_RABUsageReport_Item : asn::sequence<5, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABUsageReport-Item";} - using parent_t = asn::sequence<5, 0, true, 1>; - struct startTimeStamp_t : asn::ostring<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "startTimeStamp_t";} - using parent_t = asn::ostring<>; - - }; - - startTimeStamp_t& ref_startTimeStamp() {return startTimeStamp;} - startTimeStamp_t const& ref_startTimeStamp() const {return startTimeStamp;} - struct endTimeStamp_t : asn::ostring<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "endTimeStamp_t";} - using parent_t = asn::ostring<>; - - }; - - endTimeStamp_t& ref_endTimeStamp() {return endTimeStamp;} - endTimeStamp_t const& ref_endTimeStamp() const {return endTimeStamp;} - struct usageCountUL_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "usageCountUL_t";} - using parent_t = asn::integer<>; - - }; - - usageCountUL_t& ref_usageCountUL() {return usageCountUL;} - usageCountUL_t const& ref_usageCountUL() const {return usageCountUL;} - struct usageCountDL_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "usageCountDL_t";} - using parent_t = asn::integer<>; - - }; - - usageCountDL_t& ref_usageCountDL() {return usageCountDL;} - usageCountDL_t const& ref_usageCountDL() const {return usageCountDL;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(startTimeStamp); - v(endTimeStamp); - v(usageCountUL); - v(usageCountDL); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(startTimeStamp); - v(endTimeStamp); - v(usageCountUL); - v(usageCountDL); - v(iE_Extensions); - - }; - void clear() - { - startTimeStamp.clear(); - endTimeStamp.clear(); - usageCountUL.clear(); - usageCountDL.clear(); - iE_Extensions.clear(); - - }; - private: - startTimeStamp_t startTimeStamp; - endTimeStamp_t endTimeStamp; - usageCountUL_t usageCountUL; - usageCountDL_t usageCountDL; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABUsageReport-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABUsageReport-Item CRITICALITY ignore TYPE E-RABUsageReport-Item PRESENCE mandatory }, - ... -} -*/ - -struct E_RABUsageReport_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABUsageReport_Item() { set(id_E_RABUsageReport_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABUsageReport_Item)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABUsageReport_Item);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABUsageReport_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABUsageReport_Item& select_id_E_RABUsageReport_Item() { return set(1); } - E_RABUsageReport_Item const* get_id_E_RABUsageReport_Item() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABUsageReport_Item()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABUsageReport_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABUsageReport_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABUsageReportList ::= SEQUENCE (SIZE(1..maxnooftimeperiods)) OF ProtocolIE-Single-Container { {E-RABUsageReport-ItemIEs} } -*/ - -struct E_RABUsageReportList_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABUsageReportList_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABUsageReportList : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABUsageReportList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -EARFCN ::= INTEGER (0..maxEARFCN) -*/ - -struct EARFCN : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "EARFCN";} - using parent_t = asn::integer<>; - -}; - -/* -EARFCNExtension ::= INTEGER(maxEARFCNPlusOne..newmaxEARFCN, ...) -*/ - -struct EARFCNExtension : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "EARFCNExtension";} - using parent_t = asn::integer<>; - -}; - -/* -EN-DC-ResourceConfigurationExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct EN_DC_ResourceConfigurationExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -EN-DC-ResourceConfiguration ::= SEQUENCE { - pDCPatSgNB ENUMERATED {present, not-present, ...}, - mCGresources ENUMERATED {present, not-present, ...}, - sCGresources ENUMERATED {present, not-present, ...}, - iE-Extensions ProtocolExtensionContainer { {EN-DC-ResourceConfigurationExtIEs} } OPTIONAL, - ... -} -*/ - -struct EN_DC_ResourceConfiguration : asn::sequence<4, 0, true, 1> -{ - static constexpr const char* name() {return "EN-DC-ResourceConfiguration";} - using parent_t = asn::sequence<4, 0, true, 1>; - struct pDCPatSgNB_t : asn::enumerated<2, 0, true> - { - static constexpr const char* name() {return "pDCPatSgNB_t";} - using parent_t = asn::enumerated<2, 0, true>; - typedef enum { - present - ,not_present - } index_t; - - }; - - pDCPatSgNB_t& ref_pDCPatSgNB() {return pDCPatSgNB;} - pDCPatSgNB_t const& ref_pDCPatSgNB() const {return pDCPatSgNB;} - struct mCGresources_t : asn::enumerated<2, 0, true> - { - static constexpr const char* name() {return "mCGresources_t";} - using parent_t = asn::enumerated<2, 0, true>; - typedef enum { - present - ,not_present - } index_t; - - }; - - mCGresources_t& ref_mCGresources() {return mCGresources;} - mCGresources_t const& ref_mCGresources() const {return mCGresources;} - struct sCGresources_t : asn::enumerated<2, 0, true> - { - static constexpr const char* name() {return "sCGresources_t";} - using parent_t = asn::enumerated<2, 0, true>; - typedef enum { - present - ,not_present - } index_t; - - }; - - sCGresources_t& ref_sCGresources() {return sCGresources;} - sCGresources_t const& ref_sCGresources() const {return sCGresources;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(pDCPatSgNB); - v(mCGresources); - v(sCGresources); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(pDCPatSgNB); - v(mCGresources); - v(sCGresources); - v(iE_Extensions); - - }; - void clear() - { - pDCPatSgNB.clear(); - mCGresources.clear(); - sCGresources.clear(); - iE_Extensions.clear(); - - }; - private: - pDCPatSgNB_t pDCPatSgNB; - mCGresources_t mCGresources; - sCGresources_t sCGresources; - iE_Extensions_t iE_Extensions; - -}; -/* -ENB-ID ::= CHOICE { - macro-eNB-ID BIT STRING (SIZE (20)), - home-eNB-ID BIT STRING (SIZE (28)), - ... , - short-Macro-eNB-ID BIT STRING (SIZE(18)), - long-Macro-eNB-ID BIT STRING (SIZE(21)) -} -*/ - -struct ENB_ID : asn::choice<4, 2, true> -{ - static constexpr const char* name() {return "ENB-ID";} - using parent_t = asn::choice<4, 2, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 5;} - void set_unknown() { set_index(5); } - ~ENB_ID() {clear();} - struct macro_eNB_ID_t : asn::bstring<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "macro_eNB_ID_t";} - using parent_t = asn::bstring<>; - - }; - - struct home_eNB_ID_t : asn::bstring<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "home_eNB_ID_t";} - using parent_t = asn::bstring<>; - - }; - - struct short_Macro_eNB_ID_t : asn::bstring<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "short_Macro_eNB_ID_t";} - using parent_t = asn::bstring<>; - - }; - - struct long_Macro_eNB_ID_t : asn::bstring<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "long_Macro_eNB_ID_t";} - using parent_t = asn::bstring<>; - - }; - - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - case 3: set_index(3); return v(var.build()); - case 4: set_index(4); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - case 3: return v(var.as()); - case 4: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - - } - macro_eNB_ID_t& select_macro_eNB_ID() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - macro_eNB_ID_t const* get_macro_eNB_ID() const { if(get_index() == 1) { return &var.as();} return nullptr; } - home_eNB_ID_t& select_home_eNB_ID() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - home_eNB_ID_t const* get_home_eNB_ID() const { if(get_index() == 2) { return &var.as();} return nullptr; } - short_Macro_eNB_ID_t& select_short_Macro_eNB_ID() { if(get_index() != 3) { clear(); set_index(3); return var.build();} return var.as();} - short_Macro_eNB_ID_t const* get_short_Macro_eNB_ID() const { if(get_index() == 3) { return &var.as();} return nullptr; } - long_Macro_eNB_ID_t& select_long_Macro_eNB_ID() { if(get_index() != 4) { clear(); set_index(4); return var.build();} return var.as();} - long_Macro_eNB_ID_t const* get_long_Macro_eNB_ID() const { if(get_index() == 4) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(macro_eNB_ID_t)]; - char dummy2[sizeof(home_eNB_ID_t)]; - char dummy3[sizeof(short_Macro_eNB_ID_t)]; - char dummy4[sizeof(long_Macro_eNB_ID_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -EPLMNs ::= SEQUENCE (SIZE(1..maxnoofEPLMNs)) OF PLMN-Identity -*/ - -struct EPLMNs_elm : PLMN_Identity -{ - static constexpr const char* name() {return "EPLMNs_elm";} - using parent_t = PLMN_Identity; - -}; -struct EPLMNs : asn::sequenceof -{ - static constexpr const char* name() {return "EPLMNs";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -UserPlaneTrafficActivityReport ::= ENUMERATED {inactive, re-activated, ...} -*/ - -struct UserPlaneTrafficActivityReport : asn::enumerated<2, 0, true> -{ - static constexpr const char* name() {return "UserPlaneTrafficActivityReport";} - using parent_t = asn::enumerated<2, 0, true>; - typedef enum { - inactive - ,re_activated - } index_t; - -}; - -/* -ERABActivityNotifyItem-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct ERABActivityNotifyItem_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ERABActivityNotifyItem ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - activityReport UserPlaneTrafficActivityReport, - iE-Extensions ProtocolExtensionContainer { {ERABActivityNotifyItem-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct ERABActivityNotifyItem : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "ERABActivityNotifyItem";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct activityReport_t : UserPlaneTrafficActivityReport - { - static constexpr const char* name() {return "activityReport_t";} - using parent_t = UserPlaneTrafficActivityReport; - - }; - activityReport_t& ref_activityReport() {return activityReport;} - activityReport_t const& ref_activityReport() const {return activityReport;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(activityReport); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(activityReport); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - activityReport.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - activityReport_t activityReport; - iE_Extensions_t iE_Extensions; - -}; -/* -ERABActivityNotifyItemList ::= SEQUENCE (SIZE (0..maxnoofBearers)) OF ERABActivityNotifyItem -*/ - -struct ERABActivityNotifyItemList_elm : ERABActivityNotifyItem -{ - static constexpr const char* name() {return "ERABActivityNotifyItemList_elm";} - using parent_t = ERABActivityNotifyItem; - -}; -struct ERABActivityNotifyItemList : asn::sequenceof -{ - static constexpr const char* name() {return "ERABActivityNotifyItemList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -Transmission-Bandwidth ::= ENUMERATED { - bw6, - bw15, - bw25, - bw50, - bw75, - bw100, - ..., - bw1 -} -*/ - -struct Transmission_Bandwidth : asn::enumerated<7, 1, true> -{ - static constexpr const char* name() {return "Transmission-Bandwidth";} - using parent_t = asn::enumerated<7, 1, true>; - typedef enum { - bw6 - ,bw15 - ,bw25 - ,bw50 - ,bw75 - ,bw100 - ,bw1 - } index_t; - -}; - -/* -OffsetOfNbiotChannelNumberToEARFCN ::= ENUMERATED { - minusTen, - minusNine, - minusEight, - minusSeven, - minusSix, - minusFive, - minusFour, - minusThree, - minusTwo, - minusOne, - minusZeroDotFive, - zero, - one, - two, - three, - four, - five, - six, - seven, - eight, - nine, - ... -} -*/ - -struct OffsetOfNbiotChannelNumberToEARFCN : asn::enumerated<21, 0, true> -{ - static constexpr const char* name() {return "OffsetOfNbiotChannelNumberToEARFCN";} - using parent_t = asn::enumerated<21, 0, true>; - typedef enum { - minusTen - ,minusNine - ,minusEight - ,minusSeven - ,minusSix - ,minusFive - ,minusFour - ,minusThree - ,minusTwo - ,minusOne - ,minusZeroDotFive - ,zero - ,one - ,two - ,three - ,four - ,five - ,six - ,seven - ,eight - ,nine - } index_t; - -}; - -/* -NRS-NSSS-PowerOffset ::= ENUMERATED { minusThree, zero, three, ...} -*/ - -struct NRS_NSSS_PowerOffset : asn::enumerated<3, 0, true> -{ - static constexpr const char* name() {return "NRS-NSSS-PowerOffset";} - using parent_t = asn::enumerated<3, 0, true>; - typedef enum { - minusThree - ,zero - ,three - } index_t; - -}; - -/* -NSSS-NumOccasionDifferentPrecoder ::= ENUMERATED { two, four, eight, ...} -*/ - -struct NSSS_NumOccasionDifferentPrecoder : asn::enumerated<3, 0, true> -{ - static constexpr const char* name() {return "NSSS-NumOccasionDifferentPrecoder";} - using parent_t = asn::enumerated<3, 0, true>; - typedef enum { - two - ,four - ,eight - } index_t; - -}; - -/* -FDD-Info-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-UL-EARFCNExtension CRITICALITY reject EXTENSION EARFCNExtension PRESENCE optional}| - { ID id-DL-EARFCNExtension CRITICALITY reject EXTENSION EARFCNExtension PRESENCE optional}| - { ID id-OffsetOfNbiotChannelNumberToDL-EARFCN CRITICALITY reject EXTENSION OffsetOfNbiotChannelNumberToEARFCN PRESENCE optional}| - { ID id-OffsetOfNbiotChannelNumberToUL-EARFCN CRITICALITY reject EXTENSION OffsetOfNbiotChannelNumberToEARFCN PRESENCE optional}| - { ID id-NRS-NSSS-PowerOffset CRITICALITY ignore EXTENSION NRS-NSSS-PowerOffset PRESENCE optional}| - { ID id-NSSS-NumOccasionDifferentPrecoder CRITICALITY ignore EXTENSION NSSS-NumOccasionDifferentPrecoder PRESENCE optional}, - ... -} -*/ - -struct FDD_Info_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_UL_EARFCNExtension() { set(id_UL_EARFCNExtension); type=1;} - void select_id_DL_EARFCNExtension() { set(id_DL_EARFCNExtension); type=2;} - void select_id_OffsetOfNbiotChannelNumberToDL_EARFCN() { set(id_OffsetOfNbiotChannelNumberToDL_EARFCN); type=3;} - void select_id_OffsetOfNbiotChannelNumberToUL_EARFCN() { set(id_OffsetOfNbiotChannelNumberToUL_EARFCN); type=4;} - void select_id_NRS_NSSS_PowerOffset() { set(id_NRS_NSSS_PowerOffset); type=5;} - void select_id_NSSS_NumOccasionDifferentPrecoder() { set(id_NSSS_NumOccasionDifferentPrecoder); type=6;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_UL_EARFCNExtension)) { type = 1; return true; } - else if(equal(id_DL_EARFCNExtension)) { type = 2; return true; } - else if(equal(id_OffsetOfNbiotChannelNumberToDL_EARFCN)) { type = 3; return true; } - else if(equal(id_OffsetOfNbiotChannelNumberToUL_EARFCN)) { type = 4; return true; } - else if(equal(id_NRS_NSSS_PowerOffset)) { type = 5; return true; } - else if(equal(id_NSSS_NumOccasionDifferentPrecoder)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_UL_EARFCNExtension);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_DL_EARFCNExtension);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_OffsetOfNbiotChannelNumberToDL_EARFCN);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_OffsetOfNbiotChannelNumberToUL_EARFCN);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_NRS_NSSS_PowerOffset);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_NSSS_NumOccasionDifferentPrecoder);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_UL_EARFCNExtension() { set(reject); type=1;} - void select_id_DL_EARFCNExtension() { set(reject); type=2;} - void select_id_OffsetOfNbiotChannelNumberToDL_EARFCN() { set(reject); type=3;} - void select_id_OffsetOfNbiotChannelNumberToUL_EARFCN() { set(reject); type=4;} - void select_id_NRS_NSSS_PowerOffset() { set(ignore); type=5;} - void select_id_NSSS_NumOccasionDifferentPrecoder() { set(ignore); type=6;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(reject)) { type = 3; return true; } - else if(equal(reject)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else if(equal(ignore)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(reject);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(reject);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(ignore);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - EARFCNExtension& select_id_UL_EARFCNExtension() { return set(1); } - EARFCNExtension const* get_id_UL_EARFCNExtension() const { return get(1); } - EARFCNExtension& select_id_DL_EARFCNExtension() { return set(2); } - EARFCNExtension const* get_id_DL_EARFCNExtension() const { return get(2); } - OffsetOfNbiotChannelNumberToEARFCN& select_id_OffsetOfNbiotChannelNumberToDL_EARFCN() { return set(3); } - OffsetOfNbiotChannelNumberToEARFCN const* get_id_OffsetOfNbiotChannelNumberToDL_EARFCN() const { return get(3); } - OffsetOfNbiotChannelNumberToEARFCN& select_id_OffsetOfNbiotChannelNumberToUL_EARFCN() { return set(4); } - OffsetOfNbiotChannelNumberToEARFCN const* get_id_OffsetOfNbiotChannelNumberToUL_EARFCN() const { return get(4); } - NRS_NSSS_PowerOffset& select_id_NRS_NSSS_PowerOffset() { return set(5); } - NRS_NSSS_PowerOffset const* get_id_NRS_NSSS_PowerOffset() const { return get(5); } - NSSS_NumOccasionDifferentPrecoder& select_id_NSSS_NumOccasionDifferentPrecoder() { return set(6); } - NSSS_NumOccasionDifferentPrecoder const* get_id_NSSS_NumOccasionDifferentPrecoder() const { return get(6); } - bool is_unknown() const { return type == 7; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_UL_EARFCNExtension()); return true; - case 2: v(select_id_DL_EARFCNExtension()); return true; - case 3: v(select_id_OffsetOfNbiotChannelNumberToDL_EARFCN()); return true; - case 4: v(select_id_OffsetOfNbiotChannelNumberToUL_EARFCN()); return true; - case 5: v(select_id_NRS_NSSS_PowerOffset()); return true; - case 6: v(select_id_NSSS_NumOccasionDifferentPrecoder()); return true; - case 7: if(type != 7) {clear(); asn::base::set();} type = 7; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(EARFCNExtension)]; - char dummy2[sizeof(NRS_NSSS_PowerOffset)]; - char dummy3[sizeof(NSSS_NumOccasionDifferentPrecoder)]; - char dummy4[sizeof(OffsetOfNbiotChannelNumberToEARFCN)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_UL_EARFCNExtension() { set(optional); type=1;} - void select_id_DL_EARFCNExtension() { set(optional); type=2;} - void select_id_OffsetOfNbiotChannelNumberToDL_EARFCN() { set(optional); type=3;} - void select_id_OffsetOfNbiotChannelNumberToUL_EARFCN() { set(optional); type=4;} - void select_id_NRS_NSSS_PowerOffset() { set(optional); type=5;} - void select_id_NSSS_NumOccasionDifferentPrecoder() { set(optional); type=6;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -FDD-Info ::= SEQUENCE { - uL-EARFCN EARFCN, - dL-EARFCN EARFCN, - uL-Transmission-Bandwidth Transmission-Bandwidth, - dL-Transmission-Bandwidth Transmission-Bandwidth, - iE-Extensions ProtocolExtensionContainer { {FDD-Info-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct FDD_Info : asn::sequence<5, 0, true, 1> -{ - static constexpr const char* name() {return "FDD-Info";} - using parent_t = asn::sequence<5, 0, true, 1>; - struct uL_EARFCN_t : EARFCN - { - static constexpr const char* name() {return "uL_EARFCN_t";} - using parent_t = EARFCN; - - }; - uL_EARFCN_t& ref_uL_EARFCN() {return uL_EARFCN;} - uL_EARFCN_t const& ref_uL_EARFCN() const {return uL_EARFCN;} - struct dL_EARFCN_t : EARFCN - { - static constexpr const char* name() {return "dL_EARFCN_t";} - using parent_t = EARFCN; - - }; - dL_EARFCN_t& ref_dL_EARFCN() {return dL_EARFCN;} - dL_EARFCN_t const& ref_dL_EARFCN() const {return dL_EARFCN;} - struct uL_Transmission_Bandwidth_t : Transmission_Bandwidth - { - static constexpr const char* name() {return "uL_Transmission_Bandwidth_t";} - using parent_t = Transmission_Bandwidth; - - }; - uL_Transmission_Bandwidth_t& ref_uL_Transmission_Bandwidth() {return uL_Transmission_Bandwidth;} - uL_Transmission_Bandwidth_t const& ref_uL_Transmission_Bandwidth() const {return uL_Transmission_Bandwidth;} - struct dL_Transmission_Bandwidth_t : Transmission_Bandwidth - { - static constexpr const char* name() {return "dL_Transmission_Bandwidth_t";} - using parent_t = Transmission_Bandwidth; - - }; - dL_Transmission_Bandwidth_t& ref_dL_Transmission_Bandwidth() {return dL_Transmission_Bandwidth;} - dL_Transmission_Bandwidth_t const& ref_dL_Transmission_Bandwidth() const {return dL_Transmission_Bandwidth;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(uL_EARFCN); - v(dL_EARFCN); - v(uL_Transmission_Bandwidth); - v(dL_Transmission_Bandwidth); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(uL_EARFCN); - v(dL_EARFCN); - v(uL_Transmission_Bandwidth); - v(dL_Transmission_Bandwidth); - v(iE_Extensions); - - }; - void clear() - { - uL_EARFCN.clear(); - dL_EARFCN.clear(); - uL_Transmission_Bandwidth.clear(); - dL_Transmission_Bandwidth.clear(); - iE_Extensions.clear(); - - }; - private: - uL_EARFCN_t uL_EARFCN; - dL_EARFCN_t dL_EARFCN; - uL_Transmission_Bandwidth_t uL_Transmission_Bandwidth; - dL_Transmission_Bandwidth_t dL_Transmission_Bandwidth; - iE_Extensions_t iE_Extensions; - -}; -/* -SubframeAssignment ::= ENUMERATED { - sa0, - sa1, - sa2, - sa3, - sa4, - sa5, - sa6, - ... -} -*/ - -struct SubframeAssignment : asn::enumerated<7, 0, true> -{ - static constexpr const char* name() {return "SubframeAssignment";} - using parent_t = asn::enumerated<7, 0, true>; - typedef enum { - sa0 - ,sa1 - ,sa2 - ,sa3 - ,sa4 - ,sa5 - ,sa6 - } index_t; - -}; - -/* -SpecialSubframePatterns ::= ENUMERATED { - ssp0, - ssp1, - ssp2, - ssp3, - ssp4, - ssp5, - ssp6, - ssp7, - ssp8, - ... -} -*/ - -struct SpecialSubframePatterns : asn::enumerated<9, 0, true> -{ - static constexpr const char* name() {return "SpecialSubframePatterns";} - using parent_t = asn::enumerated<9, 0, true>; - typedef enum { - ssp0 - ,ssp1 - ,ssp2 - ,ssp3 - ,ssp4 - ,ssp5 - ,ssp6 - ,ssp7 - ,ssp8 - } index_t; - -}; - -/* -SpecialSubframe-Info-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct SpecialSubframe_Info_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SpecialSubframe-Info ::= SEQUENCE { - specialSubframePatterns SpecialSubframePatterns, - cyclicPrefixDL CyclicPrefixDL, - cyclicPrefixUL CyclicPrefixUL, - iE-Extensions ProtocolExtensionContainer { {SpecialSubframe-Info-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct SpecialSubframe_Info : asn::sequence<4, 0, true, 1> -{ - static constexpr const char* name() {return "SpecialSubframe-Info";} - using parent_t = asn::sequence<4, 0, true, 1>; - struct specialSubframePatterns_t : SpecialSubframePatterns - { - static constexpr const char* name() {return "specialSubframePatterns_t";} - using parent_t = SpecialSubframePatterns; - - }; - specialSubframePatterns_t& ref_specialSubframePatterns() {return specialSubframePatterns;} - specialSubframePatterns_t const& ref_specialSubframePatterns() const {return specialSubframePatterns;} - struct cyclicPrefixDL_t : CyclicPrefixDL - { - static constexpr const char* name() {return "cyclicPrefixDL_t";} - using parent_t = CyclicPrefixDL; - - }; - cyclicPrefixDL_t& ref_cyclicPrefixDL() {return cyclicPrefixDL;} - cyclicPrefixDL_t const& ref_cyclicPrefixDL() const {return cyclicPrefixDL;} - struct cyclicPrefixUL_t : CyclicPrefixUL - { - static constexpr const char* name() {return "cyclicPrefixUL_t";} - using parent_t = CyclicPrefixUL; - - }; - cyclicPrefixUL_t& ref_cyclicPrefixUL() {return cyclicPrefixUL;} - cyclicPrefixUL_t const& ref_cyclicPrefixUL() const {return cyclicPrefixUL;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(specialSubframePatterns); - v(cyclicPrefixDL); - v(cyclicPrefixUL); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(specialSubframePatterns); - v(cyclicPrefixDL); - v(cyclicPrefixUL); - v(iE_Extensions); - - }; - void clear() - { - specialSubframePatterns.clear(); - cyclicPrefixDL.clear(); - cyclicPrefixUL.clear(); - iE_Extensions.clear(); - - }; - private: - specialSubframePatterns_t specialSubframePatterns; - cyclicPrefixDL_t cyclicPrefixDL; - cyclicPrefixUL_t cyclicPrefixUL; - iE_Extensions_t iE_Extensions; - -}; -/* -TDD-Info-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-AdditionalSpecialSubframe-Info CRITICALITY ignore EXTENSION AdditionalSpecialSubframe-Info PRESENCE optional}| - { ID id-eARFCNExtension CRITICALITY reject EXTENSION EARFCNExtension PRESENCE optional}| - { ID id-AdditionalSpecialSubframeExtension-Info CRITICALITY ignore EXTENSION AdditionalSpecialSubframeExtension-Info PRESENCE optional}, - ... -} -*/ - -struct TDD_Info_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_AdditionalSpecialSubframe_Info() { set(id_AdditionalSpecialSubframe_Info); type=1;} - void select_id_eARFCNExtension() { set(id_eARFCNExtension); type=2;} - void select_id_AdditionalSpecialSubframeExtension_Info() { set(id_AdditionalSpecialSubframeExtension_Info); type=3;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_AdditionalSpecialSubframe_Info)) { type = 1; return true; } - else if(equal(id_eARFCNExtension)) { type = 2; return true; } - else if(equal(id_AdditionalSpecialSubframeExtension_Info)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_AdditionalSpecialSubframe_Info);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_eARFCNExtension);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_AdditionalSpecialSubframeExtension_Info);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_AdditionalSpecialSubframe_Info() { set(ignore); type=1;} - void select_id_eARFCNExtension() { set(reject); type=2;} - void select_id_AdditionalSpecialSubframeExtension_Info() { set(ignore); type=3;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - AdditionalSpecialSubframe_Info& select_id_AdditionalSpecialSubframe_Info() { return set(1); } - AdditionalSpecialSubframe_Info const* get_id_AdditionalSpecialSubframe_Info() const { return get(1); } - EARFCNExtension& select_id_eARFCNExtension() { return set(2); } - EARFCNExtension const* get_id_eARFCNExtension() const { return get(2); } - AdditionalSpecialSubframeExtension_Info& select_id_AdditionalSpecialSubframeExtension_Info() { return set(3); } - AdditionalSpecialSubframeExtension_Info const* get_id_AdditionalSpecialSubframeExtension_Info() const { return get(3); } - bool is_unknown() const { return type == 4; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_AdditionalSpecialSubframe_Info()); return true; - case 2: v(select_id_eARFCNExtension()); return true; - case 3: v(select_id_AdditionalSpecialSubframeExtension_Info()); return true; - case 4: if(type != 4) {clear(); asn::base::set();} type = 4; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(AdditionalSpecialSubframeExtension_Info)]; - char dummy2[sizeof(AdditionalSpecialSubframe_Info)]; - char dummy3[sizeof(EARFCNExtension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_AdditionalSpecialSubframe_Info() { set(optional); type=1;} - void select_id_eARFCNExtension() { set(optional); type=2;} - void select_id_AdditionalSpecialSubframeExtension_Info() { set(optional); type=3;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -TDD-Info ::= SEQUENCE { - eARFCN EARFCN, - transmission-Bandwidth Transmission-Bandwidth, - subframeAssignment SubframeAssignment, - specialSubframe-Info SpecialSubframe-Info, - iE-Extensions ProtocolExtensionContainer { {TDD-Info-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct TDD_Info : asn::sequence<5, 0, true, 1> -{ - static constexpr const char* name() {return "TDD-Info";} - using parent_t = asn::sequence<5, 0, true, 1>; - struct eARFCN_t : EARFCN - { - static constexpr const char* name() {return "eARFCN_t";} - using parent_t = EARFCN; - - }; - eARFCN_t& ref_eARFCN() {return eARFCN;} - eARFCN_t const& ref_eARFCN() const {return eARFCN;} - struct transmission_Bandwidth_t : Transmission_Bandwidth - { - static constexpr const char* name() {return "transmission_Bandwidth_t";} - using parent_t = Transmission_Bandwidth; - - }; - transmission_Bandwidth_t& ref_transmission_Bandwidth() {return transmission_Bandwidth;} - transmission_Bandwidth_t const& ref_transmission_Bandwidth() const {return transmission_Bandwidth;} - struct subframeAssignment_t : SubframeAssignment - { - static constexpr const char* name() {return "subframeAssignment_t";} - using parent_t = SubframeAssignment; - - }; - subframeAssignment_t& ref_subframeAssignment() {return subframeAssignment;} - subframeAssignment_t const& ref_subframeAssignment() const {return subframeAssignment;} - struct specialSubframe_Info_t : SpecialSubframe_Info - { - static constexpr const char* name() {return "specialSubframe_Info_t";} - using parent_t = SpecialSubframe_Info; - - }; - specialSubframe_Info_t& ref_specialSubframe_Info() {return specialSubframe_Info;} - specialSubframe_Info_t const& ref_specialSubframe_Info() const {return specialSubframe_Info;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(eARFCN); - v(transmission_Bandwidth); - v(subframeAssignment); - v(specialSubframe_Info); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(eARFCN); - v(transmission_Bandwidth); - v(subframeAssignment); - v(specialSubframe_Info); - v(iE_Extensions); - - }; - void clear() - { - eARFCN.clear(); - transmission_Bandwidth.clear(); - subframeAssignment.clear(); - specialSubframe_Info.clear(); - iE_Extensions.clear(); - - }; - private: - eARFCN_t eARFCN; - transmission_Bandwidth_t transmission_Bandwidth; - subframeAssignment_t subframeAssignment; - specialSubframe_Info_t specialSubframe_Info; - iE_Extensions_t iE_Extensions; - -}; -/* -EUTRA-Mode-Info ::= CHOICE { - fDD FDD-Info, - tDD TDD-Info, - ... -} -*/ - -struct EUTRA_Mode_Info : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "EUTRA-Mode-Info";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~EUTRA_Mode_Info() {clear();} - struct fDD_t : FDD_Info - { - static constexpr const char* name() {return "fDD_t";} - using parent_t = FDD_Info; - - }; - struct tDD_t : TDD_Info - { - static constexpr const char* name() {return "tDD_t";} - using parent_t = TDD_Info; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - fDD_t& select_fDD() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - fDD_t const* get_fDD() const { if(get_index() == 1) { return &var.as();} return nullptr; } - tDD_t& select_tDD() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - tDD_t const* get_tDD() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(fDD_t)]; - char dummy2[sizeof(tDD_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -EUTRANTraceID ::= OCTET STRING (SIZE (8)) -*/ - -struct EUTRANTraceID : asn::ostring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "EUTRANTraceID";} - using parent_t = asn::ostring<>; - -}; - -/* -EncryptionAlgorithms ::= BIT STRING (SIZE (16, ...)) -*/ - -struct EncryptionAlgorithms : asn::bstring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "EncryptionAlgorithms";} - using parent_t = asn::bstring<>; - -}; - -/* -RNTP-Threshold ::= ENUMERATED { - minusInfinity, - minusEleven, - minusTen, - minusNine, - minusEight, - minusSeven, - minusSix, - minusFive, - minusFour, - minusThree, - minusTwo, - minusOne, - zero, - one, - two, - three, - ... -} -*/ - -struct RNTP_Threshold : asn::enumerated<16, 0, true> -{ - static constexpr const char* name() {return "RNTP-Threshold";} - using parent_t = asn::enumerated<16, 0, true>; - typedef enum { - minusInfinity - ,minusEleven - ,minusTen - ,minusNine - ,minusEight - ,minusSeven - ,minusSix - ,minusFive - ,minusFour - ,minusThree - ,minusTwo - ,minusOne - ,zero - ,one - ,two - ,three - } index_t; - -}; - -/* -EnhancedRNTPStartTime-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct EnhancedRNTPStartTime_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -EnhancedRNTPStartTime ::= SEQUENCE { - startSFN INTEGER (0..1023, ...), - startSubframeNumber INTEGER (0..9, ...), - iE-Extensions ProtocolExtensionContainer { {EnhancedRNTPStartTime-ExtIEs} } OPTIONAL, - ... - } -*/ - -struct EnhancedRNTPStartTime : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "EnhancedRNTPStartTime";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct startSFN_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "startSFN_t";} - using parent_t = asn::integer<>; - - }; - - startSFN_t& ref_startSFN() {return startSFN;} - startSFN_t const& ref_startSFN() const {return startSFN;} - struct startSubframeNumber_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "startSubframeNumber_t";} - using parent_t = asn::integer<>; - - }; - - startSubframeNumber_t& ref_startSubframeNumber() {return startSubframeNumber;} - startSubframeNumber_t const& ref_startSubframeNumber() const {return startSubframeNumber;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(startSFN); - v(startSubframeNumber); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(startSFN); - v(startSubframeNumber); - v(iE_Extensions); - - }; - void clear() - { - startSFN.clear(); - startSubframeNumber.clear(); - iE_Extensions.clear(); - - }; - private: - startSFN_t startSFN; - startSubframeNumber_t startSubframeNumber; - iE_Extensions_t iE_Extensions; - -}; -/* -EnhancedRNTP-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct EnhancedRNTP_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -EnhancedRNTP ::= SEQUENCE { - enhancedRNTPBitmap BIT STRING (SIZE(12..8800, ...)), - rNTP-High-Power-Threshold RNTP-Threshold, - enhancedRNTPStartTime EnhancedRNTPStartTime OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {EnhancedRNTP-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct EnhancedRNTP : asn::sequence<4, 0, true, 2> -{ - static constexpr const char* name() {return "EnhancedRNTP";} - using parent_t = asn::sequence<4, 0, true, 2>; - struct enhancedRNTPBitmap_t : asn::bstring<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "enhancedRNTPBitmap_t";} - using parent_t = asn::bstring<>; - - }; - - enhancedRNTPBitmap_t& ref_enhancedRNTPBitmap() {return enhancedRNTPBitmap;} - enhancedRNTPBitmap_t const& ref_enhancedRNTPBitmap() const {return enhancedRNTPBitmap;} - struct rNTP_High_Power_Threshold_t : RNTP_Threshold - { - static constexpr const char* name() {return "rNTP_High_Power_Threshold_t";} - using parent_t = RNTP_Threshold; - - }; - rNTP_High_Power_Threshold_t& ref_rNTP_High_Power_Threshold() {return rNTP_High_Power_Threshold;} - rNTP_High_Power_Threshold_t const& ref_rNTP_High_Power_Threshold() const {return rNTP_High_Power_Threshold;} - struct enhancedRNTPStartTime_t : EnhancedRNTPStartTime - { - static constexpr const char* name() {return "enhancedRNTPStartTime_t";} - using parent_t = EnhancedRNTPStartTime; - static constexpr bool optional = true; - - }; - enhancedRNTPStartTime_t& set_enhancedRNTPStartTime() { enhancedRNTPStartTime.setpresent(true); return enhancedRNTPStartTime;} - enhancedRNTPStartTime_t const* get_enhancedRNTPStartTime() const {return enhancedRNTPStartTime.is_valid() ? &enhancedRNTPStartTime : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(enhancedRNTPBitmap); - v(rNTP_High_Power_Threshold); - v(enhancedRNTPStartTime); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(enhancedRNTPBitmap); - v(rNTP_High_Power_Threshold); - v(enhancedRNTPStartTime); - v(iE_Extensions); - - }; - void clear() - { - enhancedRNTPBitmap.clear(); - rNTP_High_Power_Threshold.clear(); - enhancedRNTPStartTime.clear(); - iE_Extensions.clear(); - - }; - private: - enhancedRNTPBitmap_t enhancedRNTPBitmap; - rNTP_High_Power_Threshold_t rNTP_High_Power_Threshold; - enhancedRNTPStartTime_t enhancedRNTPStartTime; - iE_Extensions_t iE_Extensions; - -}; -/* -EventType ::= ENUMERATED{ - change-of-serving-cell, - ... -} -*/ - -struct EventType : asn::enumerated<1, 0, true> -{ - static constexpr const char* name() {return "EventType";} - using parent_t = asn::enumerated<1, 0, true>; - typedef enum { - change_of_serving_cell - } index_t; - -}; - -/* -ExpectedActivityPeriod ::= INTEGER (1..30|40|50|60|80|100|120|150|180|181,...) -*/ - -struct ExpectedActivityPeriod : asn::integer<> -{ - using constraint_t = asn::constraints,asn::one<40>,asn::one<50>,asn::one<60>,asn::one<80>,asn::one<100>,asn::one<120>,asn::one<150>,asn::one<180>,asn::one<181>>; - static constexpr const char* name() {return "ExpectedActivityPeriod";} - using parent_t = asn::integer<>; - -}; - -/* -ExpectedHOInterval ::= ENUMERATED { - sec15, sec30, sec60, sec90, sec120, sec180, long-time, - ... -} -*/ - -struct ExpectedHOInterval : asn::enumerated<7, 0, true> -{ - static constexpr const char* name() {return "ExpectedHOInterval";} - using parent_t = asn::enumerated<7, 0, true>; - typedef enum { - sec15 - ,sec30 - ,sec60 - ,sec90 - ,sec120 - ,sec180 - ,long_time - } index_t; - -}; - -/* -ExpectedIdlePeriod ::= INTEGER (1..30|40|50|60|80|100|120|150|180|181,...) -*/ - -struct ExpectedIdlePeriod : asn::integer<> -{ - using constraint_t = asn::constraints,asn::one<40>,asn::one<50>,asn::one<60>,asn::one<80>,asn::one<100>,asn::one<120>,asn::one<150>,asn::one<180>,asn::one<181>>; - static constexpr const char* name() {return "ExpectedIdlePeriod";} - using parent_t = asn::integer<>; - -}; - -/* -SourceOfUEActivityBehaviourInformation ::= ENUMERATED { - subscription-information, - statistics, - ... -} -*/ - -struct SourceOfUEActivityBehaviourInformation : asn::enumerated<2, 0, true> -{ - static constexpr const char* name() {return "SourceOfUEActivityBehaviourInformation";} - using parent_t = asn::enumerated<2, 0, true>; - typedef enum { - subscription_information - ,statistics - } index_t; - -}; - -/* -ExpectedUEActivityBehaviour-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct ExpectedUEActivityBehaviour_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ExpectedUEActivityBehaviour ::= SEQUENCE { - expectedActivityPeriod ExpectedActivityPeriod OPTIONAL, - expectedIdlePeriod ExpectedIdlePeriod OPTIONAL, - sourceofUEActivityBehaviourInformation SourceOfUEActivityBehaviourInformation OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {ExpectedUEActivityBehaviour-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct ExpectedUEActivityBehaviour : asn::sequence<4, 0, true, 4> -{ - static constexpr const char* name() {return "ExpectedUEActivityBehaviour";} - using parent_t = asn::sequence<4, 0, true, 4>; - struct expectedActivityPeriod_t : ExpectedActivityPeriod - { - static constexpr const char* name() {return "expectedActivityPeriod_t";} - using parent_t = ExpectedActivityPeriod; - static constexpr bool optional = true; - - }; - expectedActivityPeriod_t& set_expectedActivityPeriod() { expectedActivityPeriod.setpresent(true); return expectedActivityPeriod;} - expectedActivityPeriod_t const* get_expectedActivityPeriod() const {return expectedActivityPeriod.is_valid() ? &expectedActivityPeriod : nullptr;} - struct expectedIdlePeriod_t : ExpectedIdlePeriod - { - static constexpr const char* name() {return "expectedIdlePeriod_t";} - using parent_t = ExpectedIdlePeriod; - static constexpr bool optional = true; - - }; - expectedIdlePeriod_t& set_expectedIdlePeriod() { expectedIdlePeriod.setpresent(true); return expectedIdlePeriod;} - expectedIdlePeriod_t const* get_expectedIdlePeriod() const {return expectedIdlePeriod.is_valid() ? &expectedIdlePeriod : nullptr;} - struct sourceofUEActivityBehaviourInformation_t : SourceOfUEActivityBehaviourInformation - { - static constexpr const char* name() {return "sourceofUEActivityBehaviourInformation_t";} - using parent_t = SourceOfUEActivityBehaviourInformation; - static constexpr bool optional = true; - - }; - sourceofUEActivityBehaviourInformation_t& set_sourceofUEActivityBehaviourInformation() { sourceofUEActivityBehaviourInformation.setpresent(true); return sourceofUEActivityBehaviourInformation;} - sourceofUEActivityBehaviourInformation_t const* get_sourceofUEActivityBehaviourInformation() const {return sourceofUEActivityBehaviourInformation.is_valid() ? &sourceofUEActivityBehaviourInformation : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(expectedActivityPeriod); - v(expectedIdlePeriod); - v(sourceofUEActivityBehaviourInformation); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(expectedActivityPeriod); - v(expectedIdlePeriod); - v(sourceofUEActivityBehaviourInformation); - v(iE_Extensions); - - }; - void clear() - { - expectedActivityPeriod.clear(); - expectedIdlePeriod.clear(); - sourceofUEActivityBehaviourInformation.clear(); - iE_Extensions.clear(); - - }; - private: - expectedActivityPeriod_t expectedActivityPeriod; - expectedIdlePeriod_t expectedIdlePeriod; - sourceofUEActivityBehaviourInformation_t sourceofUEActivityBehaviourInformation; - iE_Extensions_t iE_Extensions; - -}; -/* -ExpectedUEBehaviour-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct ExpectedUEBehaviour_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ExpectedUEBehaviour ::= SEQUENCE { - expectedActivity ExpectedUEActivityBehaviour OPTIONAL, - expectedHOInterval ExpectedHOInterval OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {ExpectedUEBehaviour-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct ExpectedUEBehaviour : asn::sequence<3, 0, true, 3> -{ - static constexpr const char* name() {return "ExpectedUEBehaviour";} - using parent_t = asn::sequence<3, 0, true, 3>; - struct expectedActivity_t : ExpectedUEActivityBehaviour - { - static constexpr const char* name() {return "expectedActivity_t";} - using parent_t = ExpectedUEActivityBehaviour; - static constexpr bool optional = true; - - }; - expectedActivity_t& set_expectedActivity() { expectedActivity.setpresent(true); return expectedActivity;} - expectedActivity_t const* get_expectedActivity() const {return expectedActivity.is_valid() ? &expectedActivity : nullptr;} - struct expectedHOInterval_t : ExpectedHOInterval - { - static constexpr const char* name() {return "expectedHOInterval_t";} - using parent_t = ExpectedHOInterval; - static constexpr bool optional = true; - - }; - expectedHOInterval_t& set_expectedHOInterval() { expectedHOInterval.setpresent(true); return expectedHOInterval;} - expectedHOInterval_t const* get_expectedHOInterval() const {return expectedHOInterval.is_valid() ? &expectedHOInterval : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(expectedActivity); - v(expectedHOInterval); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(expectedActivity); - v(expectedHOInterval); - v(iE_Extensions); - - }; - void clear() - { - expectedActivity.clear(); - expectedHOInterval.clear(); - iE_Extensions.clear(); - - }; - private: - expectedActivity_t expectedActivity; - expectedHOInterval_t expectedHOInterval; - iE_Extensions_t iE_Extensions; - -}; -/* -UL-InterferenceOverloadIndication-Item ::= ENUMERATED { - high-interference, - medium-interference, - low-interference, - ... -} -*/ - -struct UL_InterferenceOverloadIndication_Item : asn::enumerated<3, 0, true> -{ - static constexpr const char* name() {return "UL-InterferenceOverloadIndication-Item";} - using parent_t = asn::enumerated<3, 0, true>; - typedef enum { - high_interference - ,medium_interference - ,low_interference - } index_t; - -}; - -/* -UL-InterferenceOverloadIndication ::= SEQUENCE (SIZE(1..maxnoofPRBs)) OF UL-InterferenceOverloadIndication-Item -*/ - -struct UL_InterferenceOverloadIndication_elm : UL_InterferenceOverloadIndication_Item -{ - static constexpr const char* name() {return "UL_InterferenceOverloadIndication_elm";} - using parent_t = UL_InterferenceOverloadIndication_Item; - -}; -struct UL_InterferenceOverloadIndication : asn::sequenceof -{ - static constexpr const char* name() {return "UL-InterferenceOverloadIndication";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -ExtendedULInterferenceOverloadInfo-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct ExtendedULInterferenceOverloadInfo_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ExtendedULInterferenceOverloadInfo ::= SEQUENCE { - associatedSubframes BIT STRING (SIZE (5)), - extended-ul-InterferenceOverloadIndication UL-InterferenceOverloadIndication, - iE-Extensions ProtocolExtensionContainer { {ExtendedULInterferenceOverloadInfo-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct ExtendedULInterferenceOverloadInfo : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "ExtendedULInterferenceOverloadInfo";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct associatedSubframes_t : asn::bstring<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "associatedSubframes_t";} - using parent_t = asn::bstring<>; - - }; - - associatedSubframes_t& ref_associatedSubframes() {return associatedSubframes;} - associatedSubframes_t const& ref_associatedSubframes() const {return associatedSubframes;} - struct extended_ul_InterferenceOverloadIndication_t : UL_InterferenceOverloadIndication - { - static constexpr const char* name() {return "extended_ul_InterferenceOverloadIndication_t";} - using parent_t = UL_InterferenceOverloadIndication; - - }; - extended_ul_InterferenceOverloadIndication_t& ref_extended_ul_InterferenceOverloadIndication() {return extended_ul_InterferenceOverloadIndication;} - extended_ul_InterferenceOverloadIndication_t const& ref_extended_ul_InterferenceOverloadIndication() const {return extended_ul_InterferenceOverloadIndication;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(associatedSubframes); - v(extended_ul_InterferenceOverloadIndication); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(associatedSubframes); - v(extended_ul_InterferenceOverloadIndication); - v(iE_Extensions); - - }; - void clear() - { - associatedSubframes.clear(); - extended_ul_InterferenceOverloadIndication.clear(); - iE_Extensions.clear(); - - }; - private: - associatedSubframes_t associatedSubframes; - extended_ul_InterferenceOverloadIndication_t extended_ul_InterferenceOverloadIndication; - iE_Extensions_t iE_Extensions; - -}; -/* -FiveGS-TAC ::= OCTET STRING (SIZE (3)) -*/ - -struct FiveGS_TAC : asn::ostring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "FiveGS-TAC";} - using parent_t = asn::ostring<>; - -}; - -/* -ForbiddenInterRATs ::= ENUMERATED { - all, - geran, - utran, - cdma2000, - ..., - geranandutran, - cdma2000andutran - -} -*/ - -struct ForbiddenInterRATs : asn::enumerated<6, 2, true> -{ - static constexpr const char* name() {return "ForbiddenInterRATs";} - using parent_t = asn::enumerated<6, 2, true>; - typedef enum { - all - ,geran - ,utran - ,cdma2000 - ,geranandutran - ,cdma2000andutran - } index_t; - -}; - -/* -LAC ::= OCTET STRING (SIZE (2)) --(EXCEPT ('0000'H|'FFFE'H)) -*/ - -struct LAC : asn::ostring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "LAC";} - using parent_t = asn::ostring<>; - -}; - -/* -ForbiddenLACs ::= SEQUENCE (SIZE(1..maxnoofForbLACs)) OF LAC -*/ - -struct ForbiddenLACs_elm : LAC -{ - static constexpr const char* name() {return "ForbiddenLACs_elm";} - using parent_t = LAC; - -}; -struct ForbiddenLACs : asn::sequenceof -{ - static constexpr const char* name() {return "ForbiddenLACs";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -ForbiddenLAs-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct ForbiddenLAs_Item_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ForbiddenLAs-Item ::= SEQUENCE { - pLMN-Identity PLMN-Identity, - forbiddenLACs ForbiddenLACs, - iE-Extensions ProtocolExtensionContainer { {ForbiddenLAs-Item-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct ForbiddenLAs_Item : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "ForbiddenLAs-Item";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct pLMN_Identity_t : PLMN_Identity - { - static constexpr const char* name() {return "pLMN_Identity_t";} - using parent_t = PLMN_Identity; - - }; - pLMN_Identity_t& ref_pLMN_Identity() {return pLMN_Identity;} - pLMN_Identity_t const& ref_pLMN_Identity() const {return pLMN_Identity;} - struct forbiddenLACs_t : ForbiddenLACs - { - static constexpr const char* name() {return "forbiddenLACs_t";} - using parent_t = ForbiddenLACs; - - }; - forbiddenLACs_t& ref_forbiddenLACs() {return forbiddenLACs;} - forbiddenLACs_t const& ref_forbiddenLACs() const {return forbiddenLACs;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(pLMN_Identity); - v(forbiddenLACs); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(pLMN_Identity); - v(forbiddenLACs); - v(iE_Extensions); - - }; - void clear() - { - pLMN_Identity.clear(); - forbiddenLACs.clear(); - iE_Extensions.clear(); - - }; - private: - pLMN_Identity_t pLMN_Identity; - forbiddenLACs_t forbiddenLACs; - iE_Extensions_t iE_Extensions; - -}; -/* -ForbiddenLAs ::= SEQUENCE (SIZE(1..maxnoofEPLMNsPlusOne)) OF ForbiddenLAs-Item -*/ - -struct ForbiddenLAs_elm : ForbiddenLAs_Item -{ - static constexpr const char* name() {return "ForbiddenLAs_elm";} - using parent_t = ForbiddenLAs_Item; - -}; -struct ForbiddenLAs : asn::sequenceof -{ - static constexpr const char* name() {return "ForbiddenLAs";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -ForbiddenTACs ::= SEQUENCE (SIZE(1..maxnoofForbTACs)) OF TAC -*/ - -struct ForbiddenTACs_elm : TAC -{ - static constexpr const char* name() {return "ForbiddenTACs_elm";} - using parent_t = TAC; - -}; -struct ForbiddenTACs : asn::sequenceof -{ - static constexpr const char* name() {return "ForbiddenTACs";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -ForbiddenTAs-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct ForbiddenTAs_Item_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ForbiddenTAs-Item ::= SEQUENCE { - pLMN-Identity PLMN-Identity, - forbiddenTACs ForbiddenTACs, - iE-Extensions ProtocolExtensionContainer { {ForbiddenTAs-Item-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct ForbiddenTAs_Item : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "ForbiddenTAs-Item";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct pLMN_Identity_t : PLMN_Identity - { - static constexpr const char* name() {return "pLMN_Identity_t";} - using parent_t = PLMN_Identity; - - }; - pLMN_Identity_t& ref_pLMN_Identity() {return pLMN_Identity;} - pLMN_Identity_t const& ref_pLMN_Identity() const {return pLMN_Identity;} - struct forbiddenTACs_t : ForbiddenTACs - { - static constexpr const char* name() {return "forbiddenTACs_t";} - using parent_t = ForbiddenTACs; - - }; - forbiddenTACs_t& ref_forbiddenTACs() {return forbiddenTACs;} - forbiddenTACs_t const& ref_forbiddenTACs() const {return forbiddenTACs;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(pLMN_Identity); - v(forbiddenTACs); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(pLMN_Identity); - v(forbiddenTACs); - v(iE_Extensions); - - }; - void clear() - { - pLMN_Identity.clear(); - forbiddenTACs.clear(); - iE_Extensions.clear(); - - }; - private: - pLMN_Identity_t pLMN_Identity; - forbiddenTACs_t forbiddenTACs; - iE_Extensions_t iE_Extensions; - -}; -/* -ForbiddenTAs ::= SEQUENCE (SIZE(1.. maxnoofEPLMNsPlusOne)) OF ForbiddenTAs-Item -*/ - -struct ForbiddenTAs_elm : ForbiddenTAs_Item -{ - static constexpr const char* name() {return "ForbiddenTAs_elm";} - using parent_t = ForbiddenTAs_Item; - -}; -struct ForbiddenTAs : asn::sequenceof -{ - static constexpr const char* name() {return "ForbiddenTAs";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -Fourframes ::= BIT STRING (SIZE (24)) -*/ - -struct Fourframes : asn::bstring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "Fourframes";} - using parent_t = asn::bstring<>; - -}; - -/* -FreqBandIndicatorPriority ::= ENUMERATED { - not-broadcasted, - broadcasted, - ... -} -*/ - -struct FreqBandIndicatorPriority : asn::enumerated<2, 0, true> -{ - static constexpr const char* name() {return "FreqBandIndicatorPriority";} - using parent_t = asn::enumerated<2, 0, true>; - typedef enum { - not_broadcasted - ,broadcasted - } index_t; - -}; - -/* -SupportedSULFreqBandItem-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct SupportedSULFreqBandItem_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SupportedSULFreqBandItem ::= SEQUENCE { - freqBandIndicatorNr INTEGER (1..1024,...), - iE-Extensions ProtocolExtensionContainer { {SupportedSULFreqBandItem-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct SupportedSULFreqBandItem : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "SupportedSULFreqBandItem";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct freqBandIndicatorNr_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "freqBandIndicatorNr_t";} - using parent_t = asn::integer<>; - - }; - - freqBandIndicatorNr_t& ref_freqBandIndicatorNr() {return freqBandIndicatorNr;} - freqBandIndicatorNr_t const& ref_freqBandIndicatorNr() const {return freqBandIndicatorNr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(freqBandIndicatorNr); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(freqBandIndicatorNr); - v(iE_Extensions); - - }; - void clear() - { - freqBandIndicatorNr.clear(); - iE_Extensions.clear(); - - }; - private: - freqBandIndicatorNr_t freqBandIndicatorNr; - iE_Extensions_t iE_Extensions; - -}; -/* -FreqBandNrItem-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct FreqBandNrItem_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -FreqBandNrItem ::= SEQUENCE { - freqBandIndicatorNr INTEGER (1..1024,...), - supportedSULBandList SEQUENCE (SIZE(0..maxnoofNrCellBands)) OF SupportedSULFreqBandItem, - iE-Extensions ProtocolExtensionContainer { {FreqBandNrItem-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct FreqBandNrItem : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "FreqBandNrItem";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct freqBandIndicatorNr_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "freqBandIndicatorNr_t";} - using parent_t = asn::integer<>; - - }; - - freqBandIndicatorNr_t& ref_freqBandIndicatorNr() {return freqBandIndicatorNr;} - freqBandIndicatorNr_t const& ref_freqBandIndicatorNr() const {return freqBandIndicatorNr;} - struct supportedSULBandList_t_elm : SupportedSULFreqBandItem - { - static constexpr const char* name() {return "supportedSULBandList_t_elm";} - using parent_t = SupportedSULFreqBandItem; - - }; - struct supportedSULBandList_t : asn::sequenceof - { - static constexpr const char* name() {return "supportedSULBandList_t";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - - }; - supportedSULBandList_t& ref_supportedSULBandList() {return supportedSULBandList;} - supportedSULBandList_t const& ref_supportedSULBandList() const {return supportedSULBandList;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(freqBandIndicatorNr); - v(supportedSULBandList); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(freqBandIndicatorNr); - v(supportedSULBandList); - v(iE_Extensions); - - }; - void clear() - { - freqBandIndicatorNr.clear(); - supportedSULBandList.clear(); - iE_Extensions.clear(); - - }; - private: - freqBandIndicatorNr_t freqBandIndicatorNr; - supportedSULBandList_t supportedSULBandList; - iE_Extensions_t iE_Extensions; - -}; -/* -GNB-ID ::= CHOICE { - gNB-ID BIT STRING (SIZE (22..32)), - ... -} -*/ - -struct GNB_ID : asn::choice<1, 0, true> -{ - static constexpr const char* name() {return "GNB-ID";} - using parent_t = asn::choice<1, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 2;} - void set_unknown() { set_index(2); } - ~GNB_ID() {clear();} - struct gNB_ID_t : asn::bstring<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "gNB_ID_t";} - using parent_t = asn::bstring<>; - - }; - - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - gNB_ID_t& select_gNB_ID() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - gNB_ID_t const* get_gNB_ID() const { if(get_index() == 1) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(gNB_ID_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -GNBOverloadInformation ::= ENUMERATED {overloaded, not-overloaded, ...} -*/ - -struct GNBOverloadInformation : asn::enumerated<2, 0, true> -{ - static constexpr const char* name() {return "GNBOverloadInformation";} - using parent_t = asn::enumerated<2, 0, true>; - typedef enum { - overloaded - ,not_overloaded - } index_t; - -}; - -/* -GTP-TEI ::= OCTET STRING (SIZE (4)) -*/ - -struct GTP_TEI : asn::ostring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "GTP-TEI";} - using parent_t = asn::ostring<>; - -}; - -/* -TransportLayerAddress ::= BIT STRING (SIZE(1..160, ...)) -*/ - -struct TransportLayerAddress : asn::bstring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "TransportLayerAddress";} - using parent_t = asn::bstring<>; - -}; - -/* -GTPtunnelEndpoint-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct GTPtunnelEndpoint_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -GTPtunnelEndpoint ::= SEQUENCE { - transportLayerAddress TransportLayerAddress, - gTP-TEID GTP-TEI, - iE-Extensions ProtocolExtensionContainer { {GTPtunnelEndpoint-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct GTPtunnelEndpoint : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "GTPtunnelEndpoint";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct transportLayerAddress_t : TransportLayerAddress - { - static constexpr const char* name() {return "transportLayerAddress_t";} - using parent_t = TransportLayerAddress; - - }; - transportLayerAddress_t& ref_transportLayerAddress() {return transportLayerAddress;} - transportLayerAddress_t const& ref_transportLayerAddress() const {return transportLayerAddress;} - struct gTP_TEID_t : GTP_TEI - { - static constexpr const char* name() {return "gTP_TEID_t";} - using parent_t = GTP_TEI; - - }; - gTP_TEID_t& ref_gTP_TEID() {return gTP_TEID;} - gTP_TEID_t const& ref_gTP_TEID() const {return gTP_TEID;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(transportLayerAddress); - v(gTP_TEID); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(transportLayerAddress); - v(gTP_TEID); - v(iE_Extensions); - - }; - void clear() - { - transportLayerAddress.clear(); - gTP_TEID.clear(); - iE_Extensions.clear(); - - }; - private: - transportLayerAddress_t transportLayerAddress; - gTP_TEID_t gTP_TEID; - iE_Extensions_t iE_Extensions; - -}; -/* -MME-Group-ID ::= OCTET STRING (SIZE (2)) -*/ - -struct MME_Group_ID : asn::ostring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "MME-Group-ID";} - using parent_t = asn::ostring<>; - -}; - -/* -GU-Group-ID-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct GU_Group_ID_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -GU-Group-ID ::= SEQUENCE { - pLMN-Identity PLMN-Identity, - mME-Group-ID MME-Group-ID, - iE-Extensions ProtocolExtensionContainer { {GU-Group-ID-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct GU_Group_ID : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "GU-Group-ID";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct pLMN_Identity_t : PLMN_Identity - { - static constexpr const char* name() {return "pLMN_Identity_t";} - using parent_t = PLMN_Identity; - - }; - pLMN_Identity_t& ref_pLMN_Identity() {return pLMN_Identity;} - pLMN_Identity_t const& ref_pLMN_Identity() const {return pLMN_Identity;} - struct mME_Group_ID_t : MME_Group_ID - { - static constexpr const char* name() {return "mME_Group_ID_t";} - using parent_t = MME_Group_ID; - - }; - mME_Group_ID_t& ref_mME_Group_ID() {return mME_Group_ID;} - mME_Group_ID_t const& ref_mME_Group_ID() const {return mME_Group_ID;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(pLMN_Identity); - v(mME_Group_ID); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(pLMN_Identity); - v(mME_Group_ID); - v(iE_Extensions); - - }; - void clear() - { - pLMN_Identity.clear(); - mME_Group_ID.clear(); - iE_Extensions.clear(); - - }; - private: - pLMN_Identity_t pLMN_Identity; - mME_Group_ID_t mME_Group_ID; - iE_Extensions_t iE_Extensions; - -}; -/* -GUGroupIDList ::= SEQUENCE (SIZE (1..maxPools)) OF GU-Group-ID -*/ - -struct GUGroupIDList_elm : GU_Group_ID -{ - static constexpr const char* name() {return "GUGroupIDList_elm";} - using parent_t = GU_Group_ID; - -}; -struct GUGroupIDList : asn::sequenceof -{ - static constexpr const char* name() {return "GUGroupIDList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -MME-Code ::= OCTET STRING (SIZE (1)) -*/ - -struct MME_Code : asn::ostring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "MME-Code";} - using parent_t = asn::ostring<>; - -}; - -/* -GUMMEI-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct GUMMEI_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -GUMMEI ::= SEQUENCE { - - gU-Group-ID GU-Group-ID, - mME-Code MME-Code, - iE-Extensions ProtocolExtensionContainer { {GUMMEI-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct GUMMEI : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "GUMMEI";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct gU_Group_ID_t : GU_Group_ID - { - static constexpr const char* name() {return "gU_Group_ID_t";} - using parent_t = GU_Group_ID; - - }; - gU_Group_ID_t& ref_gU_Group_ID() {return gU_Group_ID;} - gU_Group_ID_t const& ref_gU_Group_ID() const {return gU_Group_ID;} - struct mME_Code_t : MME_Code - { - static constexpr const char* name() {return "mME_Code_t";} - using parent_t = MME_Code; - - }; - mME_Code_t& ref_mME_Code() {return mME_Code;} - mME_Code_t const& ref_mME_Code() const {return mME_Code;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(gU_Group_ID); - v(mME_Code); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(gU_Group_ID); - v(mME_Code); - v(iE_Extensions); - - }; - void clear() - { - gU_Group_ID.clear(); - mME_Code.clear(); - iE_Extensions.clear(); - - }; - private: - gU_Group_ID_t gU_Group_ID; - mME_Code_t mME_Code; - iE_Extensions_t iE_Extensions; - -}; -/* -GlobalENB-ID-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct GlobalENB_ID_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -GlobalENB-ID ::= SEQUENCE { - pLMN-Identity PLMN-Identity, - eNB-ID ENB-ID, - iE-Extensions ProtocolExtensionContainer { {GlobalENB-ID-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct GlobalENB_ID : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "GlobalENB-ID";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct pLMN_Identity_t : PLMN_Identity - { - static constexpr const char* name() {return "pLMN_Identity_t";} - using parent_t = PLMN_Identity; - - }; - pLMN_Identity_t& ref_pLMN_Identity() {return pLMN_Identity;} - pLMN_Identity_t const& ref_pLMN_Identity() const {return pLMN_Identity;} - struct eNB_ID_t : ENB_ID - { - static constexpr const char* name() {return "eNB_ID_t";} - using parent_t = ENB_ID; - - }; - eNB_ID_t& ref_eNB_ID() {return eNB_ID;} - eNB_ID_t const& ref_eNB_ID() const {return eNB_ID;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(pLMN_Identity); - v(eNB_ID); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(pLMN_Identity); - v(eNB_ID); - v(iE_Extensions); - - }; - void clear() - { - pLMN_Identity.clear(); - eNB_ID.clear(); - iE_Extensions.clear(); - - }; - private: - pLMN_Identity_t pLMN_Identity; - eNB_ID_t eNB_ID; - iE_Extensions_t iE_Extensions; - -}; -/* -GlobalGNB-ID-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct GlobalGNB_ID_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -GlobalGNB-ID ::= SEQUENCE { - pLMN-Identity PLMN-Identity, - gNB-ID GNB-ID, - iE-Extensions ProtocolExtensionContainer { {GlobalGNB-ID-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct GlobalGNB_ID : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "GlobalGNB-ID";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct pLMN_Identity_t : PLMN_Identity - { - static constexpr const char* name() {return "pLMN_Identity_t";} - using parent_t = PLMN_Identity; - - }; - pLMN_Identity_t& ref_pLMN_Identity() {return pLMN_Identity;} - pLMN_Identity_t const& ref_pLMN_Identity() const {return pLMN_Identity;} - struct gNB_ID_t : GNB_ID - { - static constexpr const char* name() {return "gNB_ID_t";} - using parent_t = GNB_ID; - - }; - gNB_ID_t& ref_gNB_ID() {return gNB_ID;} - gNB_ID_t const& ref_gNB_ID() const {return gNB_ID;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(pLMN_Identity); - v(gNB_ID); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(pLMN_Identity); - v(gNB_ID); - v(iE_Extensions); - - }; - void clear() - { - pLMN_Identity.clear(); - gNB_ID.clear(); - iE_Extensions.clear(); - - }; - private: - pLMN_Identity_t pLMN_Identity; - gNB_ID_t gNB_ID; - iE_Extensions_t iE_Extensions; - -}; -/* -LoadIndicator ::= ENUMERATED { - lowLoad, - mediumLoad, - highLoad, - overLoad, - ... -} -*/ - -struct LoadIndicator : asn::enumerated<4, 0, true> -{ - static constexpr const char* name() {return "LoadIndicator";} - using parent_t = asn::enumerated<4, 0, true>; - typedef enum { - lowLoad - ,mediumLoad - ,highLoad - ,overLoad - } index_t; - -}; - -/* -HWLoadIndicator-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct HWLoadIndicator_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -HWLoadIndicator ::= SEQUENCE { - dLHWLoadIndicator LoadIndicator, - uLHWLoadIndicator LoadIndicator, - iE-Extensions ProtocolExtensionContainer { {HWLoadIndicator-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct HWLoadIndicator : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "HWLoadIndicator";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct dLHWLoadIndicator_t : LoadIndicator - { - static constexpr const char* name() {return "dLHWLoadIndicator_t";} - using parent_t = LoadIndicator; - - }; - dLHWLoadIndicator_t& ref_dLHWLoadIndicator() {return dLHWLoadIndicator;} - dLHWLoadIndicator_t const& ref_dLHWLoadIndicator() const {return dLHWLoadIndicator;} - struct uLHWLoadIndicator_t : LoadIndicator - { - static constexpr const char* name() {return "uLHWLoadIndicator_t";} - using parent_t = LoadIndicator; - - }; - uLHWLoadIndicator_t& ref_uLHWLoadIndicator() {return uLHWLoadIndicator;} - uLHWLoadIndicator_t const& ref_uLHWLoadIndicator() const {return uLHWLoadIndicator;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(dLHWLoadIndicator); - v(uLHWLoadIndicator); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(dLHWLoadIndicator); - v(uLHWLoadIndicator); - v(iE_Extensions); - - }; - void clear() - { - dLHWLoadIndicator.clear(); - uLHWLoadIndicator.clear(); - iE_Extensions.clear(); - - }; - private: - dLHWLoadIndicator_t dLHWLoadIndicator; - uLHWLoadIndicator_t uLHWLoadIndicator; - iE_Extensions_t iE_Extensions; - -}; -/* -HandoverReportType ::= ENUMERATED { - hoTooEarly, - hoToWrongCell, - ..., - interRATpingpong -} -*/ - -struct HandoverReportType : asn::enumerated<3, 1, true> -{ - static constexpr const char* name() {return "HandoverReportType";} - using parent_t = asn::enumerated<3, 1, true>; - typedef enum { - hoTooEarly - ,hoToWrongCell - ,interRATpingpong - } index_t; - -}; - -/* -NRrestrictioninEPSasSecondaryRAT ::= ENUMERATED { - nRrestrictedinEPSasSecondaryRAT, - ... -} -*/ - -struct NRrestrictioninEPSasSecondaryRAT : asn::enumerated<1, 0, true> -{ - static constexpr const char* name() {return "NRrestrictioninEPSasSecondaryRAT";} - using parent_t = asn::enumerated<1, 0, true>; - typedef enum { - nRrestrictedinEPSasSecondaryRAT - } index_t; - -}; - -/* -NRrestrictionin5GS ::= ENUMERATED { - nRrestrictedin5GS, - ... -} -*/ - -struct NRrestrictionin5GS : asn::enumerated<1, 0, true> -{ - static constexpr const char* name() {return "NRrestrictionin5GS";} - using parent_t = asn::enumerated<1, 0, true>; - typedef enum { - nRrestrictedin5GS - } index_t; - -}; - -/* -HandoverRestrictionList-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-NRrestrictioninEPSasSecondaryRAT CRITICALITY ignore EXTENSION NRrestrictioninEPSasSecondaryRAT PRESENCE optional}| - { ID id-CNTypeRestrictions CRITICALITY ignore EXTENSION CNTypeRestrictions PRESENCE optional}| - { ID id-NRrestrictionin5GS CRITICALITY ignore EXTENSION NRrestrictionin5GS PRESENCE optional}, - ... -} -*/ - -struct HandoverRestrictionList_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_NRrestrictioninEPSasSecondaryRAT() { set(id_NRrestrictioninEPSasSecondaryRAT); type=1;} - void select_id_CNTypeRestrictions() { set(id_CNTypeRestrictions); type=2;} - void select_id_NRrestrictionin5GS() { set(id_NRrestrictionin5GS); type=3;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_NRrestrictioninEPSasSecondaryRAT)) { type = 1; return true; } - else if(equal(id_CNTypeRestrictions)) { type = 2; return true; } - else if(equal(id_NRrestrictionin5GS)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_NRrestrictioninEPSasSecondaryRAT);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_CNTypeRestrictions);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_NRrestrictionin5GS);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_NRrestrictioninEPSasSecondaryRAT() { set(ignore); type=1;} - void select_id_CNTypeRestrictions() { set(ignore); type=2;} - void select_id_NRrestrictionin5GS() { set(ignore); type=3;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - NRrestrictioninEPSasSecondaryRAT& select_id_NRrestrictioninEPSasSecondaryRAT() { return set(1); } - NRrestrictioninEPSasSecondaryRAT const* get_id_NRrestrictioninEPSasSecondaryRAT() const { return get(1); } - CNTypeRestrictions& select_id_CNTypeRestrictions() { return set(2); } - CNTypeRestrictions const* get_id_CNTypeRestrictions() const { return get(2); } - NRrestrictionin5GS& select_id_NRrestrictionin5GS() { return set(3); } - NRrestrictionin5GS const* get_id_NRrestrictionin5GS() const { return get(3); } - bool is_unknown() const { return type == 4; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_NRrestrictioninEPSasSecondaryRAT()); return true; - case 2: v(select_id_CNTypeRestrictions()); return true; - case 3: v(select_id_NRrestrictionin5GS()); return true; - case 4: if(type != 4) {clear(); asn::base::set();} type = 4; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CNTypeRestrictions)]; - char dummy2[sizeof(NRrestrictionin5GS)]; - char dummy3[sizeof(NRrestrictioninEPSasSecondaryRAT)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_NRrestrictioninEPSasSecondaryRAT() { set(optional); type=1;} - void select_id_CNTypeRestrictions() { set(optional); type=2;} - void select_id_NRrestrictionin5GS() { set(optional); type=3;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -HandoverRestrictionList ::= SEQUENCE { - servingPLMN PLMN-Identity, - equivalentPLMNs EPLMNs OPTIONAL, - forbiddenTAs ForbiddenTAs OPTIONAL, - forbiddenLAs ForbiddenLAs OPTIONAL, - forbiddenInterRATs ForbiddenInterRATs OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {HandoverRestrictionList-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct HandoverRestrictionList : asn::sequence<6, 0, true, 5> -{ - static constexpr const char* name() {return "HandoverRestrictionList";} - using parent_t = asn::sequence<6, 0, true, 5>; - struct servingPLMN_t : PLMN_Identity - { - static constexpr const char* name() {return "servingPLMN_t";} - using parent_t = PLMN_Identity; - - }; - servingPLMN_t& ref_servingPLMN() {return servingPLMN;} - servingPLMN_t const& ref_servingPLMN() const {return servingPLMN;} - struct equivalentPLMNs_t : EPLMNs - { - static constexpr const char* name() {return "equivalentPLMNs_t";} - using parent_t = EPLMNs; - static constexpr bool optional = true; - - }; - equivalentPLMNs_t& set_equivalentPLMNs() { equivalentPLMNs.setpresent(true); return equivalentPLMNs;} - equivalentPLMNs_t const* get_equivalentPLMNs() const {return equivalentPLMNs.is_valid() ? &equivalentPLMNs : nullptr;} - struct forbiddenTAs_t : ForbiddenTAs - { - static constexpr const char* name() {return "forbiddenTAs_t";} - using parent_t = ForbiddenTAs; - static constexpr bool optional = true; - - }; - forbiddenTAs_t& set_forbiddenTAs() { forbiddenTAs.setpresent(true); return forbiddenTAs;} - forbiddenTAs_t const* get_forbiddenTAs() const {return forbiddenTAs.is_valid() ? &forbiddenTAs : nullptr;} - struct forbiddenLAs_t : ForbiddenLAs - { - static constexpr const char* name() {return "forbiddenLAs_t";} - using parent_t = ForbiddenLAs; - static constexpr bool optional = true; - - }; - forbiddenLAs_t& set_forbiddenLAs() { forbiddenLAs.setpresent(true); return forbiddenLAs;} - forbiddenLAs_t const* get_forbiddenLAs() const {return forbiddenLAs.is_valid() ? &forbiddenLAs : nullptr;} - struct forbiddenInterRATs_t : ForbiddenInterRATs - { - static constexpr const char* name() {return "forbiddenInterRATs_t";} - using parent_t = ForbiddenInterRATs; - static constexpr bool optional = true; - - }; - forbiddenInterRATs_t& set_forbiddenInterRATs() { forbiddenInterRATs.setpresent(true); return forbiddenInterRATs;} - forbiddenInterRATs_t const* get_forbiddenInterRATs() const {return forbiddenInterRATs.is_valid() ? &forbiddenInterRATs : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(servingPLMN); - v(equivalentPLMNs); - v(forbiddenTAs); - v(forbiddenLAs); - v(forbiddenInterRATs); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(servingPLMN); - v(equivalentPLMNs); - v(forbiddenTAs); - v(forbiddenLAs); - v(forbiddenInterRATs); - v(iE_Extensions); - - }; - void clear() - { - servingPLMN.clear(); - equivalentPLMNs.clear(); - forbiddenTAs.clear(); - forbiddenLAs.clear(); - forbiddenInterRATs.clear(); - iE_Extensions.clear(); - - }; - private: - servingPLMN_t servingPLMN; - equivalentPLMNs_t equivalentPLMNs; - forbiddenTAs_t forbiddenTAs; - forbiddenLAs_t forbiddenLAs; - forbiddenInterRATs_t forbiddenInterRATs; - iE_Extensions_t iE_Extensions; - -}; -/* -IntegrityProtectionAlgorithms ::= BIT STRING (SIZE (16, ...)) -*/ - -struct IntegrityProtectionAlgorithms : asn::bstring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "IntegrityProtectionAlgorithms";} - using parent_t = asn::bstring<>; - -}; - -/* -InterfacesToTrace ::= BIT STRING (SIZE (8)) -*/ - -struct InterfacesToTrace : asn::bstring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "InterfacesToTrace";} - using parent_t = asn::bstring<>; - -}; - -/* -InvokeIndication ::= ENUMERATED{ - abs-information, - ..., - naics-information-start, - naics-information-stop -} -*/ - -struct InvokeIndication : asn::enumerated<3, 2, true> -{ - static constexpr const char* name() {return "InvokeIndication";} - using parent_t = asn::enumerated<3, 2, true>; - typedef enum { - abs_information - ,naics_information_start - ,naics_information_stop - } index_t; - -}; - -/* -LCID ::= INTEGER(1..32, ...) -*/ - -struct LCID : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "LCID";} - using parent_t = asn::integer<>; - -}; - -/* -LHN-ID ::= OCTET STRING(SIZE (32..256)) -*/ - -struct LHN_ID : asn::ostring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "LHN-ID";} - using parent_t = asn::ostring<>; - -}; - -/* -Time-UE-StayedInCell ::= INTEGER (0..4095) -*/ - -struct Time_UE_StayedInCell : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "Time-UE-StayedInCell";} - using parent_t = asn::integer<>; - -}; - -/* -Time-UE-StayedInCell-EnhancedGranularity ::= INTEGER (0..40950) -*/ - -struct Time_UE_StayedInCell_EnhancedGranularity : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "Time-UE-StayedInCell-EnhancedGranularity";} - using parent_t = asn::integer<>; - -}; - -/* -LastVisitedEUTRANCellInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { --- Extension for Rel-11 to support enhanced granularity for time UE stayed in cell -- - { ID id-Time-UE-StayedInCell-EnhancedGranularity CRITICALITY ignore EXTENSION Time-UE-StayedInCell-EnhancedGranularity PRESENCE optional}| - { ID id-HO-cause CRITICALITY ignore EXTENSION Cause PRESENCE optional}, - ... -} -*/ - -struct LastVisitedEUTRANCellInformation_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_Time_UE_StayedInCell_EnhancedGranularity() { set(id_Time_UE_StayedInCell_EnhancedGranularity); type=1;} - void select_id_HO_cause() { set(id_HO_cause); type=2;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_Time_UE_StayedInCell_EnhancedGranularity)) { type = 1; return true; } - else if(equal(id_HO_cause)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_Time_UE_StayedInCell_EnhancedGranularity);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_HO_cause);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_Time_UE_StayedInCell_EnhancedGranularity() { set(ignore); type=1;} - void select_id_HO_cause() { set(ignore); type=2;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - Time_UE_StayedInCell_EnhancedGranularity& select_id_Time_UE_StayedInCell_EnhancedGranularity() { return set(1); } - Time_UE_StayedInCell_EnhancedGranularity const* get_id_Time_UE_StayedInCell_EnhancedGranularity() const { return get(1); } - Cause& select_id_HO_cause() { return set(2); } - Cause const* get_id_HO_cause() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_Time_UE_StayedInCell_EnhancedGranularity()); return true; - case 2: v(select_id_HO_cause()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(Time_UE_StayedInCell_EnhancedGranularity)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_Time_UE_StayedInCell_EnhancedGranularity() { set(optional); type=1;} - void select_id_HO_cause() { set(optional); type=2;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -LastVisitedEUTRANCellInformation ::= SEQUENCE { - global-Cell-ID ECGI, - cellType CellType, - time-UE-StayedInCell Time-UE-StayedInCell, - iE-Extensions ProtocolExtensionContainer { {LastVisitedEUTRANCellInformation-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct LastVisitedEUTRANCellInformation : asn::sequence<4, 0, true, 1> -{ - static constexpr const char* name() {return "LastVisitedEUTRANCellInformation";} - using parent_t = asn::sequence<4, 0, true, 1>; - struct global_Cell_ID_t : ECGI - { - static constexpr const char* name() {return "global_Cell_ID_t";} - using parent_t = ECGI; - - }; - global_Cell_ID_t& ref_global_Cell_ID() {return global_Cell_ID;} - global_Cell_ID_t const& ref_global_Cell_ID() const {return global_Cell_ID;} - struct cellType_t : CellType - { - static constexpr const char* name() {return "cellType_t";} - using parent_t = CellType; - - }; - cellType_t& ref_cellType() {return cellType;} - cellType_t const& ref_cellType() const {return cellType;} - struct time_UE_StayedInCell_t : Time_UE_StayedInCell - { - static constexpr const char* name() {return "time_UE_StayedInCell_t";} - using parent_t = Time_UE_StayedInCell; - - }; - time_UE_StayedInCell_t& ref_time_UE_StayedInCell() {return time_UE_StayedInCell;} - time_UE_StayedInCell_t const& ref_time_UE_StayedInCell() const {return time_UE_StayedInCell;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(global_Cell_ID); - v(cellType); - v(time_UE_StayedInCell); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(global_Cell_ID); - v(cellType); - v(time_UE_StayedInCell); - v(iE_Extensions); - - }; - void clear() - { - global_Cell_ID.clear(); - cellType.clear(); - time_UE_StayedInCell.clear(); - iE_Extensions.clear(); - - }; - private: - global_Cell_ID_t global_Cell_ID; - cellType_t cellType; - time_UE_StayedInCell_t time_UE_StayedInCell; - iE_Extensions_t iE_Extensions; - -}; -/* -LastVisitedUTRANCellInformation ::= OCTET STRING -*/ - -struct LastVisitedUTRANCellInformation : asn::ostring<> -{ - static constexpr const char* name() {return "LastVisitedUTRANCellInformation";} - using parent_t = asn::ostring<>; - -}; - -/* -LastVisitedGERANCellInformation ::= CHOICE { - undefined NULL, - ... -} -*/ - -struct LastVisitedGERANCellInformation : asn::choice<1, 0, true> -{ - static constexpr const char* name() {return "LastVisitedGERANCellInformation";} - using parent_t = asn::choice<1, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 2;} - void set_unknown() { set_index(2); } - ~LastVisitedGERANCellInformation() {clear();} - struct undefined_t : asn::nulltype - { - static constexpr const char* name() {return "undefined_t";} - using parent_t = asn::nulltype; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - undefined_t& select_undefined() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - undefined_t const* get_undefined() const { if(get_index() == 1) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(undefined_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -LastVisitedNGRANCellInformation ::= OCTET STRING -*/ - -struct LastVisitedNGRANCellInformation : asn::ostring<> -{ - static constexpr const char* name() {return "LastVisitedNGRANCellInformation";} - using parent_t = asn::ostring<>; - -}; - -/* -LastVisitedCell-Item ::= CHOICE { - e-UTRAN-Cell LastVisitedEUTRANCellInformation, - uTRAN-Cell LastVisitedUTRANCellInformation, - gERAN-Cell LastVisitedGERANCellInformation, - ..., - nG-RAN-Cell LastVisitedNGRANCellInformation -} -*/ - -struct LastVisitedCell_Item : asn::choice<4, 1, true> -{ - static constexpr const char* name() {return "LastVisitedCell-Item";} - using parent_t = asn::choice<4, 1, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 5;} - void set_unknown() { set_index(5); } - ~LastVisitedCell_Item() {clear();} - struct e_UTRAN_Cell_t : LastVisitedEUTRANCellInformation - { - static constexpr const char* name() {return "e_UTRAN_Cell_t";} - using parent_t = LastVisitedEUTRANCellInformation; - - }; - struct uTRAN_Cell_t : LastVisitedUTRANCellInformation - { - static constexpr const char* name() {return "uTRAN_Cell_t";} - using parent_t = LastVisitedUTRANCellInformation; - - }; - struct gERAN_Cell_t : LastVisitedGERANCellInformation - { - static constexpr const char* name() {return "gERAN_Cell_t";} - using parent_t = LastVisitedGERANCellInformation; - - }; - struct nG_RAN_Cell_t : LastVisitedNGRANCellInformation - { - static constexpr const char* name() {return "nG_RAN_Cell_t";} - using parent_t = LastVisitedNGRANCellInformation; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - case 3: set_index(3); return v(var.build()); - case 4: set_index(4); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - case 3: return v(var.as()); - case 4: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - - } - e_UTRAN_Cell_t& select_e_UTRAN_Cell() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - e_UTRAN_Cell_t const* get_e_UTRAN_Cell() const { if(get_index() == 1) { return &var.as();} return nullptr; } - uTRAN_Cell_t& select_uTRAN_Cell() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - uTRAN_Cell_t const* get_uTRAN_Cell() const { if(get_index() == 2) { return &var.as();} return nullptr; } - gERAN_Cell_t& select_gERAN_Cell() { if(get_index() != 3) { clear(); set_index(3); return var.build();} return var.as();} - gERAN_Cell_t const* get_gERAN_Cell() const { if(get_index() == 3) { return &var.as();} return nullptr; } - nG_RAN_Cell_t& select_nG_RAN_Cell() { if(get_index() != 4) { clear(); set_index(4); return var.build();} return var.as();} - nG_RAN_Cell_t const* get_nG_RAN_Cell() const { if(get_index() == 4) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(e_UTRAN_Cell_t)]; - char dummy2[sizeof(uTRAN_Cell_t)]; - char dummy3[sizeof(gERAN_Cell_t)]; - char dummy4[sizeof(nG_RAN_Cell_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -Links-to-log ::= ENUMERATED {uplink, downlink, both-uplink-and-downlink, ...} -*/ - -struct Links_to_log : asn::enumerated<3, 0, true> -{ - static constexpr const char* name() {return "Links-to-log";} - using parent_t = asn::enumerated<3, 0, true>; - typedef enum { - uplink - ,downlink - ,both_uplink_and_downlink - } index_t; - -}; - -/* -ReportArea ::= ENUMERATED{ - ecgi, - ... -} -*/ - -struct ReportArea : asn::enumerated<1, 0, true> -{ - static constexpr const char* name() {return "ReportArea";} - using parent_t = asn::enumerated<1, 0, true>; - typedef enum { - ecgi - } index_t; - -}; - -/* -LocationReportingInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::={ - ... -} -*/ - -struct LocationReportingInformation_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -LocationReportingInformation ::= SEQUENCE { - eventType EventType, - reportArea ReportArea, - iE-Extensions ProtocolExtensionContainer { {LocationReportingInformation-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct LocationReportingInformation : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "LocationReportingInformation";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct eventType_t : EventType - { - static constexpr const char* name() {return "eventType_t";} - using parent_t = EventType; - - }; - eventType_t& ref_eventType() {return eventType;} - eventType_t const& ref_eventType() const {return eventType;} - struct reportArea_t : ReportArea - { - static constexpr const char* name() {return "reportArea_t";} - using parent_t = ReportArea; - - }; - reportArea_t& ref_reportArea() {return reportArea;} - reportArea_t const& ref_reportArea() const {return reportArea;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(eventType); - v(reportArea); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(eventType); - v(reportArea); - v(iE_Extensions); - - }; - void clear() - { - eventType.clear(); - reportArea.clear(); - iE_Extensions.clear(); - - }; - private: - eventType_t eventType; - reportArea_t reportArea; - iE_Extensions_t iE_Extensions; - -}; -/* -ReportIntervalMDT ::= ENUMERATED {ms120, ms240, ms480, ms640, ms1024, ms2048, ms5120, ms10240, min1, min6, min12, min30, min60} -*/ - -struct ReportIntervalMDT : asn::enumerated<13, 0, false> -{ - static constexpr const char* name() {return "ReportIntervalMDT";} - using parent_t = asn::enumerated<13, 0, false>; - typedef enum { - ms120 - ,ms240 - ,ms480 - ,ms640 - ,ms1024 - ,ms2048 - ,ms5120 - ,ms10240 - ,min1 - ,min6 - ,min12 - ,min30 - ,min60 - } index_t; - -}; - -/* -ReportAmountMDT ::= ENUMERATED{r1, r2, r4, r8, r16, r32, r64, rinfinity} -*/ - -struct ReportAmountMDT : asn::enumerated<8, 0, false> -{ - static constexpr const char* name() {return "ReportAmountMDT";} - using parent_t = asn::enumerated<8, 0, false>; - typedef enum { - r1 - ,r2 - ,r4 - ,r8 - ,r16 - ,r32 - ,r64 - ,rinfinity - } index_t; - -}; - -/* -M1PeriodicReporting-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct M1PeriodicReporting_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -M1PeriodicReporting ::= SEQUENCE { - reportInterval ReportIntervalMDT, - reportAmount ReportAmountMDT, - iE-Extensions ProtocolExtensionContainer { {M1PeriodicReporting-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct M1PeriodicReporting : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "M1PeriodicReporting";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct reportInterval_t : ReportIntervalMDT - { - static constexpr const char* name() {return "reportInterval_t";} - using parent_t = ReportIntervalMDT; - - }; - reportInterval_t& ref_reportInterval() {return reportInterval;} - reportInterval_t const& ref_reportInterval() const {return reportInterval;} - struct reportAmount_t : ReportAmountMDT - { - static constexpr const char* name() {return "reportAmount_t";} - using parent_t = ReportAmountMDT; - - }; - reportAmount_t& ref_reportAmount() {return reportAmount;} - reportAmount_t const& ref_reportAmount() const {return reportAmount;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(reportInterval); - v(reportAmount); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(reportInterval); - v(reportAmount); - v(iE_Extensions); - - }; - void clear() - { - reportInterval.clear(); - reportAmount.clear(); - iE_Extensions.clear(); - - }; - private: - reportInterval_t reportInterval; - reportAmount_t reportAmount; - iE_Extensions_t iE_Extensions; - -}; -/* -M1ReportingTrigger::= ENUMERATED{ - periodic, - a2eventtriggered, - ..., - a2eventtriggered-periodic -} -*/ - -struct M1ReportingTrigger : asn::enumerated<3, 1, true> -{ - static constexpr const char* name() {return "M1ReportingTrigger";} - using parent_t = asn::enumerated<3, 1, true>; - typedef enum { - periodic - ,a2eventtriggered - ,a2eventtriggered_periodic - } index_t; - -}; - -/* -Threshold-RSRP ::= INTEGER(0..97) -*/ - -struct Threshold_RSRP : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "Threshold-RSRP";} - using parent_t = asn::integer<>; - -}; - -/* -Threshold-RSRQ ::= INTEGER(0..34) -*/ - -struct Threshold_RSRQ : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "Threshold-RSRQ";} - using parent_t = asn::integer<>; - -}; - -/* -MeasurementThresholdA2 ::= CHOICE { - threshold-RSRP Threshold-RSRP, - threshold-RSRQ Threshold-RSRQ, - ... -} -*/ - -struct MeasurementThresholdA2 : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "MeasurementThresholdA2";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~MeasurementThresholdA2() {clear();} - struct threshold_RSRP_t : Threshold_RSRP - { - static constexpr const char* name() {return "threshold_RSRP_t";} - using parent_t = Threshold_RSRP; - - }; - struct threshold_RSRQ_t : Threshold_RSRQ - { - static constexpr const char* name() {return "threshold_RSRQ_t";} - using parent_t = Threshold_RSRQ; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - threshold_RSRP_t& select_threshold_RSRP() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - threshold_RSRP_t const* get_threshold_RSRP() const { if(get_index() == 1) { return &var.as();} return nullptr; } - threshold_RSRQ_t& select_threshold_RSRQ() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - threshold_RSRQ_t const* get_threshold_RSRQ() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(threshold_RSRP_t)]; - char dummy2[sizeof(threshold_RSRQ_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -M1ThresholdEventA2-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct M1ThresholdEventA2_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -M1ThresholdEventA2 ::= SEQUENCE { - measurementThreshold MeasurementThresholdA2, - iE-Extensions ProtocolExtensionContainer { {M1ThresholdEventA2-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct M1ThresholdEventA2 : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "M1ThresholdEventA2";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct measurementThreshold_t : MeasurementThresholdA2 - { - static constexpr const char* name() {return "measurementThreshold_t";} - using parent_t = MeasurementThresholdA2; - - }; - measurementThreshold_t& ref_measurementThreshold() {return measurementThreshold;} - measurementThreshold_t const& ref_measurementThreshold() const {return measurementThreshold;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(measurementThreshold); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(measurementThreshold); - v(iE_Extensions); - - }; - void clear() - { - measurementThreshold.clear(); - iE_Extensions.clear(); - - }; - private: - measurementThreshold_t measurementThreshold; - iE_Extensions_t iE_Extensions; - -}; -/* -M3period ::= ENUMERATED {ms100, ms1000, ms10000, ... } -*/ - -struct M3period : asn::enumerated<3, 0, true> -{ - static constexpr const char* name() {return "M3period";} - using parent_t = asn::enumerated<3, 0, true>; - typedef enum { - ms100 - ,ms1000 - ,ms10000 - } index_t; - -}; - -/* -M3Configuration-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct M3Configuration_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -M3Configuration ::= SEQUENCE { - m3period M3period, - iE-Extensions ProtocolExtensionContainer { {M3Configuration-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct M3Configuration : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "M3Configuration";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct m3period_t : M3period - { - static constexpr const char* name() {return "m3period_t";} - using parent_t = M3period; - - }; - m3period_t& ref_m3period() {return m3period;} - m3period_t const& ref_m3period() const {return m3period;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(m3period); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(m3period); - v(iE_Extensions); - - }; - void clear() - { - m3period.clear(); - iE_Extensions.clear(); - - }; - private: - m3period_t m3period; - iE_Extensions_t iE_Extensions; - -}; -/* -M4period ::= ENUMERATED {ms1024, ms2048, ms5120, ms10240, min1, ... } -*/ - -struct M4period : asn::enumerated<5, 0, true> -{ - static constexpr const char* name() {return "M4period";} - using parent_t = asn::enumerated<5, 0, true>; - typedef enum { - ms1024 - ,ms2048 - ,ms5120 - ,ms10240 - ,min1 - } index_t; - -}; - -/* -M4Configuration-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct M4Configuration_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -M4Configuration ::= SEQUENCE { - m4period M4period, - m4-links-to-log Links-to-log, - iE-Extensions ProtocolExtensionContainer { {M4Configuration-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct M4Configuration : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "M4Configuration";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct m4period_t : M4period - { - static constexpr const char* name() {return "m4period_t";} - using parent_t = M4period; - - }; - m4period_t& ref_m4period() {return m4period;} - m4period_t const& ref_m4period() const {return m4period;} - struct m4_links_to_log_t : Links_to_log - { - static constexpr const char* name() {return "m4_links_to_log_t";} - using parent_t = Links_to_log; - - }; - m4_links_to_log_t& ref_m4_links_to_log() {return m4_links_to_log;} - m4_links_to_log_t const& ref_m4_links_to_log() const {return m4_links_to_log;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(m4period); - v(m4_links_to_log); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(m4period); - v(m4_links_to_log); - v(iE_Extensions); - - }; - void clear() - { - m4period.clear(); - m4_links_to_log.clear(); - iE_Extensions.clear(); - - }; - private: - m4period_t m4period; - m4_links_to_log_t m4_links_to_log; - iE_Extensions_t iE_Extensions; - -}; -/* -M5period ::= ENUMERATED {ms1024, ms2048, ms5120, ms10240, min1, ... } -*/ - -struct M5period : asn::enumerated<5, 0, true> -{ - static constexpr const char* name() {return "M5period";} - using parent_t = asn::enumerated<5, 0, true>; - typedef enum { - ms1024 - ,ms2048 - ,ms5120 - ,ms10240 - ,min1 - } index_t; - -}; - -/* -M5Configuration-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct M5Configuration_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -M5Configuration ::= SEQUENCE { - m5period M5period, - m5-links-to-log Links-to-log, - iE-Extensions ProtocolExtensionContainer { {M5Configuration-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct M5Configuration : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "M5Configuration";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct m5period_t : M5period - { - static constexpr const char* name() {return "m5period_t";} - using parent_t = M5period; - - }; - m5period_t& ref_m5period() {return m5period;} - m5period_t const& ref_m5period() const {return m5period;} - struct m5_links_to_log_t : Links_to_log - { - static constexpr const char* name() {return "m5_links_to_log_t";} - using parent_t = Links_to_log; - - }; - m5_links_to_log_t& ref_m5_links_to_log() {return m5_links_to_log;} - m5_links_to_log_t const& ref_m5_links_to_log() const {return m5_links_to_log;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(m5period); - v(m5_links_to_log); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(m5period); - v(m5_links_to_log); - v(iE_Extensions); - - }; - void clear() - { - m5period.clear(); - m5_links_to_log.clear(); - iE_Extensions.clear(); - - }; - private: - m5period_t m5period; - m5_links_to_log_t m5_links_to_log; - iE_Extensions_t iE_Extensions; - -}; -/* -M6report-interval ::= ENUMERATED { ms1024, ms2048, ms5120, ms10240, ... } -*/ - -struct M6report_interval : asn::enumerated<4, 0, true> -{ - static constexpr const char* name() {return "M6report-interval";} - using parent_t = asn::enumerated<4, 0, true>; - typedef enum { - ms1024 - ,ms2048 - ,ms5120 - ,ms10240 - } index_t; - -}; - -/* -M6delay-threshold ::= ENUMERATED { ms30, ms40, ms50, ms60, ms70, ms80, ms90, ms100, ms150, ms300, ms500, ms750, ... } -*/ - -struct M6delay_threshold : asn::enumerated<12, 0, true> -{ - static constexpr const char* name() {return "M6delay-threshold";} - using parent_t = asn::enumerated<12, 0, true>; - typedef enum { - ms30 - ,ms40 - ,ms50 - ,ms60 - ,ms70 - ,ms80 - ,ms90 - ,ms100 - ,ms150 - ,ms300 - ,ms500 - ,ms750 - } index_t; - -}; - -/* -M6Configuration-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct M6Configuration_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -M6Configuration ::= SEQUENCE { - m6report-interval M6report-interval, - m6delay-threshold M6delay-threshold OPTIONAL, --- This IE shall be present if the M6 Links to log IE is set to “uplink” or to “both-uplink-and-downlink” -- - m6-links-to-log Links-to-log, - iE-Extensions ProtocolExtensionContainer { {M6Configuration-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct M6Configuration : asn::sequence<4, 0, true, 2> -{ - static constexpr const char* name() {return "M6Configuration";} - using parent_t = asn::sequence<4, 0, true, 2>; - struct m6report_interval_t : M6report_interval - { - static constexpr const char* name() {return "m6report_interval_t";} - using parent_t = M6report_interval; - - }; - m6report_interval_t& ref_m6report_interval() {return m6report_interval;} - m6report_interval_t const& ref_m6report_interval() const {return m6report_interval;} - struct m6delay_threshold_t : M6delay_threshold - { - static constexpr const char* name() {return "m6delay_threshold_t";} - using parent_t = M6delay_threshold; - static constexpr bool optional = true; - - }; - m6delay_threshold_t& set_m6delay_threshold() { m6delay_threshold.setpresent(true); return m6delay_threshold;} - m6delay_threshold_t const* get_m6delay_threshold() const {return m6delay_threshold.is_valid() ? &m6delay_threshold : nullptr;} - struct m6_links_to_log_t : Links_to_log - { - static constexpr const char* name() {return "m6_links_to_log_t";} - using parent_t = Links_to_log; - - }; - m6_links_to_log_t& ref_m6_links_to_log() {return m6_links_to_log;} - m6_links_to_log_t const& ref_m6_links_to_log() const {return m6_links_to_log;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(m6report_interval); - v(m6delay_threshold); - v(m6_links_to_log); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(m6report_interval); - v(m6delay_threshold); - v(m6_links_to_log); - v(iE_Extensions); - - }; - void clear() - { - m6report_interval.clear(); - m6delay_threshold.clear(); - m6_links_to_log.clear(); - iE_Extensions.clear(); - - }; - private: - m6report_interval_t m6report_interval; - m6delay_threshold_t m6delay_threshold; - m6_links_to_log_t m6_links_to_log; - iE_Extensions_t iE_Extensions; - -}; -/* -M7period ::= INTEGER(1..60, ...) -*/ - -struct M7period : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "M7period";} - using parent_t = asn::integer<>; - -}; - -/* -M7Configuration-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct M7Configuration_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -M7Configuration ::= SEQUENCE { - m7period M7period, - m7-links-to-log Links-to-log, - iE-Extensions ProtocolExtensionContainer { {M7Configuration-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct M7Configuration : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "M7Configuration";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct m7period_t : M7period - { - static constexpr const char* name() {return "m7period_t";} - using parent_t = M7period; - - }; - m7period_t& ref_m7period() {return m7period;} - m7period_t const& ref_m7period() const {return m7period;} - struct m7_links_to_log_t : Links_to_log - { - static constexpr const char* name() {return "m7_links_to_log_t";} - using parent_t = Links_to_log; - - }; - m7_links_to_log_t& ref_m7_links_to_log() {return m7_links_to_log;} - m7_links_to_log_t const& ref_m7_links_to_log() const {return m7_links_to_log;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(m7period); - v(m7_links_to_log); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(m7period); - v(m7_links_to_log); - v(iE_Extensions); - - }; - void clear() - { - m7period.clear(); - m7_links_to_log.clear(); - iE_Extensions.clear(); - - }; - private: - m7period_t m7period; - m7_links_to_log_t m7_links_to_log; - iE_Extensions_t iE_Extensions; - -}; -/* -MBMS-Service-Area-Identity ::= OCTET STRING (SIZE (2)) -*/ - -struct MBMS_Service_Area_Identity : asn::ostring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "MBMS-Service-Area-Identity";} - using parent_t = asn::ostring<>; - -}; - -/* -MBMS-Service-Area-Identity-List ::= SEQUENCE (SIZE(1.. maxnoofMBMSServiceAreaIdentities)) OF MBMS-Service-Area-Identity -*/ - -struct MBMS_Service_Area_Identity_List_elm : MBMS_Service_Area_Identity -{ - static constexpr const char* name() {return "MBMS_Service_Area_Identity_List_elm";} - using parent_t = MBMS_Service_Area_Identity; - -}; -struct MBMS_Service_Area_Identity_List : asn::sequenceof -{ - static constexpr const char* name() {return "MBMS-Service-Area-Identity-List";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -RadioframeAllocationPeriod ::= ENUMERATED{ - n1, - n2, - n4, - n8, - n16, - n32, - ... -} -*/ - -struct RadioframeAllocationPeriod : asn::enumerated<6, 0, true> -{ - static constexpr const char* name() {return "RadioframeAllocationPeriod";} - using parent_t = asn::enumerated<6, 0, true>; - typedef enum { - n1 - ,n2 - ,n4 - ,n8 - ,n16 - ,n32 - } index_t; - -}; - -/* -RadioframeAllocationOffset ::= INTEGER (0..7, ...) -*/ - -struct RadioframeAllocationOffset : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "RadioframeAllocationOffset";} - using parent_t = asn::integer<>; - -}; - -/* -Oneframe ::= BIT STRING (SIZE (6)) -*/ - -struct Oneframe : asn::bstring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "Oneframe";} - using parent_t = asn::bstring<>; - -}; - -/* -SubframeAllocation ::= CHOICE { - oneframe Oneframe, - fourframes Fourframes, - ... -} -*/ - -struct SubframeAllocation : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "SubframeAllocation";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~SubframeAllocation() {clear();} - struct oneframe_t : Oneframe - { - static constexpr const char* name() {return "oneframe_t";} - using parent_t = Oneframe; - - }; - struct fourframes_t : Fourframes - { - static constexpr const char* name() {return "fourframes_t";} - using parent_t = Fourframes; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - oneframe_t& select_oneframe() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - oneframe_t const* get_oneframe() const { if(get_index() == 1) { return &var.as();} return nullptr; } - fourframes_t& select_fourframes() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - fourframes_t const* get_fourframes() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(oneframe_t)]; - char dummy2[sizeof(fourframes_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -MBSFN-Subframe-Info-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct MBSFN_Subframe_Info_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -MBSFN-Subframe-Info ::= SEQUENCE { - radioframeAllocationPeriod RadioframeAllocationPeriod, - radioframeAllocationOffset RadioframeAllocationOffset, - subframeAllocation SubframeAllocation, - iE-Extensions ProtocolExtensionContainer { {MBSFN-Subframe-Info-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct MBSFN_Subframe_Info : asn::sequence<4, 0, true, 1> -{ - static constexpr const char* name() {return "MBSFN-Subframe-Info";} - using parent_t = asn::sequence<4, 0, true, 1>; - struct radioframeAllocationPeriod_t : RadioframeAllocationPeriod - { - static constexpr const char* name() {return "radioframeAllocationPeriod_t";} - using parent_t = RadioframeAllocationPeriod; - - }; - radioframeAllocationPeriod_t& ref_radioframeAllocationPeriod() {return radioframeAllocationPeriod;} - radioframeAllocationPeriod_t const& ref_radioframeAllocationPeriod() const {return radioframeAllocationPeriod;} - struct radioframeAllocationOffset_t : RadioframeAllocationOffset - { - static constexpr const char* name() {return "radioframeAllocationOffset_t";} - using parent_t = RadioframeAllocationOffset; - - }; - radioframeAllocationOffset_t& ref_radioframeAllocationOffset() {return radioframeAllocationOffset;} - radioframeAllocationOffset_t const& ref_radioframeAllocationOffset() const {return radioframeAllocationOffset;} - struct subframeAllocation_t : SubframeAllocation - { - static constexpr const char* name() {return "subframeAllocation_t";} - using parent_t = SubframeAllocation; - - }; - subframeAllocation_t& ref_subframeAllocation() {return subframeAllocation;} - subframeAllocation_t const& ref_subframeAllocation() const {return subframeAllocation;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(radioframeAllocationPeriod); - v(radioframeAllocationOffset); - v(subframeAllocation); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(radioframeAllocationPeriod); - v(radioframeAllocationOffset); - v(subframeAllocation); - v(iE_Extensions); - - }; - void clear() - { - radioframeAllocationPeriod.clear(); - radioframeAllocationOffset.clear(); - subframeAllocation.clear(); - iE_Extensions.clear(); - - }; - private: - radioframeAllocationPeriod_t radioframeAllocationPeriod; - radioframeAllocationOffset_t radioframeAllocationOffset; - subframeAllocation_t subframeAllocation; - iE_Extensions_t iE_Extensions; - -}; -/* -MBSFN-Subframe-Infolist::= SEQUENCE (SIZE(1.. maxnoofMBSFN)) OF MBSFN-Subframe-Info -*/ - -struct MBSFN_Subframe_Infolist_elm : MBSFN_Subframe_Info -{ - static constexpr const char* name() {return "MBSFN_Subframe_Infolist_elm";} - using parent_t = MBSFN_Subframe_Info; - -}; -struct MBSFN_Subframe_Infolist : asn::sequenceof -{ - static constexpr const char* name() {return "MBSFN-Subframe-Infolist";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -MDT-Activation ::= ENUMERATED { - immediate-MDT-only, - immediate-MDT-and-Trace, - ... -} -*/ - -struct MDT_Activation : asn::enumerated<2, 0, true> -{ - static constexpr const char* name() {return "MDT-Activation";} - using parent_t = asn::enumerated<2, 0, true>; - typedef enum { - immediate_MDT_only - ,immediate_MDT_and_Trace - } index_t; - -}; - -/* -MeasurementsToActivate::= BIT STRING (SIZE (8)) -*/ - -struct MeasurementsToActivate : asn::bstring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "MeasurementsToActivate";} - using parent_t = asn::bstring<>; - -}; - -/* -MDT-Location-Info ::= BIT STRING (SIZE (8)) -*/ - -struct MDT_Location_Info : asn::bstring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "MDT-Location-Info";} - using parent_t = asn::bstring<>; - -}; - -/* -MDTPLMNList ::= SEQUENCE (SIZE(1..maxnoofMDTPLMNs)) OF PLMN-Identity -*/ - -struct MDTPLMNList_elm : PLMN_Identity -{ - static constexpr const char* name() {return "MDTPLMNList_elm";} - using parent_t = PLMN_Identity; - -}; -struct MDTPLMNList : asn::sequenceof -{ - static constexpr const char* name() {return "MDTPLMNList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -WLANMeasConfig::= ENUMERATED {setup,...} -*/ - -struct WLANMeasConfig : asn::enumerated<1, 0, true> -{ - static constexpr const char* name() {return "WLANMeasConfig";} - using parent_t = asn::enumerated<1, 0, true>; - typedef enum { - setup - } index_t; - -}; - -/* -WLANName ::= OCTET STRING (SIZE (1..32)) -*/ - -struct WLANName : asn::ostring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "WLANName";} - using parent_t = asn::ostring<>; - -}; - -/* -WLANMeasConfigNameList ::= SEQUENCE (SIZE(1..maxnoofWLANName)) OF WLANName -*/ - -struct WLANMeasConfigNameList_elm : WLANName -{ - static constexpr const char* name() {return "WLANMeasConfigNameList_elm";} - using parent_t = WLANName; - -}; -struct WLANMeasConfigNameList : asn::sequenceof -{ - static constexpr const char* name() {return "WLANMeasConfigNameList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -WLANMeasurementConfiguration-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct WLANMeasurementConfiguration_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -WLANMeasurementConfiguration ::= SEQUENCE { - wlanMeasConfig WLANMeasConfig, - wlanMeasConfigNameList WLANMeasConfigNameList OPTIONAL, - wlan-rssi ENUMERATED {true, ...} OPTIONAL, - wlan-rtt ENUMERATED {true, ...} OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {WLANMeasurementConfiguration-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct WLANMeasurementConfiguration : asn::sequence<5, 0, true, 4> -{ - static constexpr const char* name() {return "WLANMeasurementConfiguration";} - using parent_t = asn::sequence<5, 0, true, 4>; - struct wlanMeasConfig_t : WLANMeasConfig - { - static constexpr const char* name() {return "wlanMeasConfig_t";} - using parent_t = WLANMeasConfig; - - }; - wlanMeasConfig_t& ref_wlanMeasConfig() {return wlanMeasConfig;} - wlanMeasConfig_t const& ref_wlanMeasConfig() const {return wlanMeasConfig;} - struct wlanMeasConfigNameList_t : WLANMeasConfigNameList - { - static constexpr const char* name() {return "wlanMeasConfigNameList_t";} - using parent_t = WLANMeasConfigNameList; - static constexpr bool optional = true; - - }; - wlanMeasConfigNameList_t& set_wlanMeasConfigNameList() { wlanMeasConfigNameList.setpresent(true); return wlanMeasConfigNameList;} - wlanMeasConfigNameList_t const* get_wlanMeasConfigNameList() const {return wlanMeasConfigNameList.is_valid() ? &wlanMeasConfigNameList : nullptr;} - struct wlan_rssi_t : asn::enumerated<1, 0, true> - { - static constexpr const char* name() {return "wlan_rssi_t";} - using parent_t = asn::enumerated<1, 0, true>; - static constexpr bool optional = true; - typedef enum { - True - } index_t; - - }; - - wlan_rssi_t& set_wlan_rssi() { wlan_rssi.setpresent(true); return wlan_rssi;} - wlan_rssi_t const* get_wlan_rssi() const {return wlan_rssi.is_valid() ? &wlan_rssi : nullptr;} - struct wlan_rtt_t : asn::enumerated<1, 0, true> - { - static constexpr const char* name() {return "wlan_rtt_t";} - using parent_t = asn::enumerated<1, 0, true>; - static constexpr bool optional = true; - typedef enum { - True - } index_t; - - }; - - wlan_rtt_t& set_wlan_rtt() { wlan_rtt.setpresent(true); return wlan_rtt;} - wlan_rtt_t const* get_wlan_rtt() const {return wlan_rtt.is_valid() ? &wlan_rtt : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(wlanMeasConfig); - v(wlanMeasConfigNameList); - v(wlan_rssi); - v(wlan_rtt); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(wlanMeasConfig); - v(wlanMeasConfigNameList); - v(wlan_rssi); - v(wlan_rtt); - v(iE_Extensions); - - }; - void clear() - { - wlanMeasConfig.clear(); - wlanMeasConfigNameList.clear(); - wlan_rssi.clear(); - wlan_rtt.clear(); - iE_Extensions.clear(); - - }; - private: - wlanMeasConfig_t wlanMeasConfig; - wlanMeasConfigNameList_t wlanMeasConfigNameList; - wlan_rssi_t wlan_rssi; - wlan_rtt_t wlan_rtt; - iE_Extensions_t iE_Extensions; - -}; -/* -MDT-Configuration-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - {ID id-M3Configuration CRITICALITY ignore EXTENSION M3Configuration PRESENCE conditional}| - {ID id-M4Configuration CRITICALITY ignore EXTENSION M4Configuration PRESENCE conditional}| - {ID id-M5Configuration CRITICALITY ignore EXTENSION M5Configuration PRESENCE conditional}| - {ID id-MDT-Location-Info CRITICALITY ignore EXTENSION MDT-Location-Info PRESENCE optional}| - {ID id-SignallingBasedMDTPLMNList CRITICALITY ignore EXTENSION MDTPLMNList PRESENCE optional}| - {ID id-M6Configuration CRITICALITY ignore EXTENSION M6Configuration PRESENCE conditional}| - {ID id-M7Configuration CRITICALITY ignore EXTENSION M7Configuration PRESENCE conditional}| - { ID id-BluetoothMeasurementConfiguration CRITICALITY ignore EXTENSION BluetoothMeasurementConfiguration PRESENCE optional}| - { ID id-WLANMeasurementConfiguration CRITICALITY ignore EXTENSION WLANMeasurementConfiguration PRESENCE optional}, - ... -} -*/ - -struct MDT_Configuration_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 10; } - void clear() {type = 0;} - void select_id_M3Configuration() { set(id_M3Configuration); type=1;} - void select_id_M4Configuration() { set(id_M4Configuration); type=2;} - void select_id_M5Configuration() { set(id_M5Configuration); type=3;} - void select_id_MDT_Location_Info() { set(id_MDT_Location_Info); type=4;} - void select_id_SignallingBasedMDTPLMNList() { set(id_SignallingBasedMDTPLMNList); type=5;} - void select_id_M6Configuration() { set(id_M6Configuration); type=6;} - void select_id_M7Configuration() { set(id_M7Configuration); type=7;} - void select_id_BluetoothMeasurementConfiguration() { set(id_BluetoothMeasurementConfiguration); type=8;} - void select_id_WLANMeasurementConfiguration() { set(id_WLANMeasurementConfiguration); type=9;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_M3Configuration)) { type = 1; return true; } - else if(equal(id_M4Configuration)) { type = 2; return true; } - else if(equal(id_M5Configuration)) { type = 3; return true; } - else if(equal(id_MDT_Location_Info)) { type = 4; return true; } - else if(equal(id_SignallingBasedMDTPLMNList)) { type = 5; return true; } - else if(equal(id_M6Configuration)) { type = 6; return true; } - else if(equal(id_M7Configuration)) { type = 7; return true; } - else if(equal(id_BluetoothMeasurementConfiguration)) { type = 8; return true; } - else if(equal(id_WLANMeasurementConfiguration)) { type = 9; return true; } - else { type = 10; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_M3Configuration);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_M4Configuration);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_M5Configuration);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_MDT_Location_Info);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_SignallingBasedMDTPLMNList);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_M6Configuration);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(id_M7Configuration);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(id_BluetoothMeasurementConfiguration);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(id_WLANMeasurementConfiguration);} return false; - case 10: type = 10; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 10; } - void clear() {type = 0;} - void select_id_M3Configuration() { set(ignore); type=1;} - void select_id_M4Configuration() { set(ignore); type=2;} - void select_id_M5Configuration() { set(ignore); type=3;} - void select_id_MDT_Location_Info() { set(ignore); type=4;} - void select_id_SignallingBasedMDTPLMNList() { set(ignore); type=5;} - void select_id_M6Configuration() { set(ignore); type=6;} - void select_id_M7Configuration() { set(ignore); type=7;} - void select_id_BluetoothMeasurementConfiguration() { set(ignore); type=8;} - void select_id_WLANMeasurementConfiguration() { set(ignore); type=9;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else if(equal(ignore)) { type = 6; return true; } - else if(equal(ignore)) { type = 7; return true; } - else if(equal(ignore)) { type = 8; return true; } - else if(equal(ignore)) { type = 9; return true; } - else { type = 10; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(ignore);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(ignore);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(ignore);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(ignore);} return false; - case 10: type = 10; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - M3Configuration& select_id_M3Configuration() { return set(1); } - M3Configuration const* get_id_M3Configuration() const { return get(1); } - M4Configuration& select_id_M4Configuration() { return set(2); } - M4Configuration const* get_id_M4Configuration() const { return get(2); } - M5Configuration& select_id_M5Configuration() { return set(3); } - M5Configuration const* get_id_M5Configuration() const { return get(3); } - MDT_Location_Info& select_id_MDT_Location_Info() { return set(4); } - MDT_Location_Info const* get_id_MDT_Location_Info() const { return get(4); } - MDTPLMNList& select_id_SignallingBasedMDTPLMNList() { return set(5); } - MDTPLMNList const* get_id_SignallingBasedMDTPLMNList() const { return get(5); } - M6Configuration& select_id_M6Configuration() { return set(6); } - M6Configuration const* get_id_M6Configuration() const { return get(6); } - M7Configuration& select_id_M7Configuration() { return set(7); } - M7Configuration const* get_id_M7Configuration() const { return get(7); } - BluetoothMeasurementConfiguration& select_id_BluetoothMeasurementConfiguration() { return set(8); } - BluetoothMeasurementConfiguration const* get_id_BluetoothMeasurementConfiguration() const { return get(8); } - WLANMeasurementConfiguration& select_id_WLANMeasurementConfiguration() { return set(9); } - WLANMeasurementConfiguration const* get_id_WLANMeasurementConfiguration() const { return get(9); } - bool is_unknown() const { return type == 10; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - case 7: var.destroy(); break; - case 8: var.destroy(); break; - case 9: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - v.template operator()(7); - v.template operator()(8); - v.template operator()(9); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_M3Configuration()); return true; - case 2: v(select_id_M4Configuration()); return true; - case 3: v(select_id_M5Configuration()); return true; - case 4: v(select_id_MDT_Location_Info()); return true; - case 5: v(select_id_SignallingBasedMDTPLMNList()); return true; - case 6: v(select_id_M6Configuration()); return true; - case 7: v(select_id_M7Configuration()); return true; - case 8: v(select_id_BluetoothMeasurementConfiguration()); return true; - case 9: v(select_id_WLANMeasurementConfiguration()); return true; - case 10: if(type != 10) {clear(); asn::base::set();} type = 10; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - case 7: v(var.as()); return true; - case 8: v(var.as()); return true; - case 9: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(BluetoothMeasurementConfiguration)]; - char dummy2[sizeof(M3Configuration)]; - char dummy3[sizeof(M4Configuration)]; - char dummy4[sizeof(M5Configuration)]; - char dummy5[sizeof(M6Configuration)]; - char dummy6[sizeof(M7Configuration)]; - char dummy7[sizeof(MDTPLMNList)]; - char dummy8[sizeof(MDT_Location_Info)]; - char dummy9[sizeof(WLANMeasurementConfiguration)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 10; } - void clear() {type = 0;} - void select_id_M3Configuration() { set(conditional); type=1;} - void select_id_M4Configuration() { set(conditional); type=2;} - void select_id_M5Configuration() { set(conditional); type=3;} - void select_id_MDT_Location_Info() { set(optional); type=4;} - void select_id_SignallingBasedMDTPLMNList() { set(optional); type=5;} - void select_id_M6Configuration() { set(conditional); type=6;} - void select_id_M7Configuration() { set(conditional); type=7;} - void select_id_BluetoothMeasurementConfiguration() { set(optional); type=8;} - void select_id_WLANMeasurementConfiguration() { set(optional); type=9;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(conditional)) { type = 1; return true; } - else if(equal(conditional)) { type = 2; return true; } - else if(equal(conditional)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else if(equal(conditional)) { type = 6; return true; } - else if(equal(conditional)) { type = 7; return true; } - else if(equal(optional)) { type = 8; return true; } - else if(equal(optional)) { type = 9; return true; } - else { type = 10; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(conditional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(conditional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(conditional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(conditional);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(conditional);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(optional);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(optional);} return false; - case 10: type = 10; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -MDT-Configuration ::= SEQUENCE { - mdt-Activation MDT-Activation, - areaScopeOfMDT AreaScopeOfMDT, - measurementsToActivate MeasurementsToActivate, - m1reportingTrigger M1ReportingTrigger, - m1thresholdeventA2 M1ThresholdEventA2 OPTIONAL, --- Included in case of event-triggered, or event-triggered periodic reporting for measurement M1 - m1periodicReporting M1PeriodicReporting OPTIONAL, --- Included in case of periodic, or event-triggered periodic reporting for measurement M1 - iE-Extensions ProtocolExtensionContainer { {MDT-Configuration-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct MDT_Configuration : asn::sequence<7, 0, true, 3> -{ - static constexpr const char* name() {return "MDT-Configuration";} - using parent_t = asn::sequence<7, 0, true, 3>; - struct mdt_Activation_t : MDT_Activation - { - static constexpr const char* name() {return "mdt_Activation_t";} - using parent_t = MDT_Activation; - - }; - mdt_Activation_t& ref_mdt_Activation() {return mdt_Activation;} - mdt_Activation_t const& ref_mdt_Activation() const {return mdt_Activation;} - struct areaScopeOfMDT_t : AreaScopeOfMDT - { - static constexpr const char* name() {return "areaScopeOfMDT_t";} - using parent_t = AreaScopeOfMDT; - - }; - areaScopeOfMDT_t& ref_areaScopeOfMDT() {return areaScopeOfMDT;} - areaScopeOfMDT_t const& ref_areaScopeOfMDT() const {return areaScopeOfMDT;} - struct measurementsToActivate_t : MeasurementsToActivate - { - static constexpr const char* name() {return "measurementsToActivate_t";} - using parent_t = MeasurementsToActivate; - - }; - measurementsToActivate_t& ref_measurementsToActivate() {return measurementsToActivate;} - measurementsToActivate_t const& ref_measurementsToActivate() const {return measurementsToActivate;} - struct m1reportingTrigger_t : M1ReportingTrigger - { - static constexpr const char* name() {return "m1reportingTrigger_t";} - using parent_t = M1ReportingTrigger; - - }; - m1reportingTrigger_t& ref_m1reportingTrigger() {return m1reportingTrigger;} - m1reportingTrigger_t const& ref_m1reportingTrigger() const {return m1reportingTrigger;} - struct m1thresholdeventA2_t : M1ThresholdEventA2 - { - static constexpr const char* name() {return "m1thresholdeventA2_t";} - using parent_t = M1ThresholdEventA2; - static constexpr bool optional = true; - - }; - m1thresholdeventA2_t& set_m1thresholdeventA2() { m1thresholdeventA2.setpresent(true); return m1thresholdeventA2;} - m1thresholdeventA2_t const* get_m1thresholdeventA2() const {return m1thresholdeventA2.is_valid() ? &m1thresholdeventA2 : nullptr;} - struct m1periodicReporting_t : M1PeriodicReporting - { - static constexpr const char* name() {return "m1periodicReporting_t";} - using parent_t = M1PeriodicReporting; - static constexpr bool optional = true; - - }; - m1periodicReporting_t& set_m1periodicReporting() { m1periodicReporting.setpresent(true); return m1periodicReporting;} - m1periodicReporting_t const* get_m1periodicReporting() const {return m1periodicReporting.is_valid() ? &m1periodicReporting : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(mdt_Activation); - v(areaScopeOfMDT); - v(measurementsToActivate); - v(m1reportingTrigger); - v(m1thresholdeventA2); - v(m1periodicReporting); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(mdt_Activation); - v(areaScopeOfMDT); - v(measurementsToActivate); - v(m1reportingTrigger); - v(m1thresholdeventA2); - v(m1periodicReporting); - v(iE_Extensions); - - }; - void clear() - { - mdt_Activation.clear(); - areaScopeOfMDT.clear(); - measurementsToActivate.clear(); - m1reportingTrigger.clear(); - m1thresholdeventA2.clear(); - m1periodicReporting.clear(); - iE_Extensions.clear(); - - }; - private: - mdt_Activation_t mdt_Activation; - areaScopeOfMDT_t areaScopeOfMDT; - measurementsToActivate_t measurementsToActivate; - m1reportingTrigger_t m1reportingTrigger; - m1thresholdeventA2_t m1thresholdeventA2; - m1periodicReporting_t m1periodicReporting; - iE_Extensions_t iE_Extensions; - -}; -/* -MakeBeforeBreakIndicator::= ENUMERATED {true, ...} -*/ - -struct MakeBeforeBreakIndicator : asn::enumerated<1, 0, true> -{ - static constexpr const char* name() {return "MakeBeforeBreakIndicator";} - using parent_t = asn::enumerated<1, 0, true>; - typedef enum { - True - } index_t; - -}; - -/* -ManagementBasedMDTallowed ::= ENUMERATED {allowed, ...} -*/ - -struct ManagementBasedMDTallowed : asn::enumerated<1, 0, true> -{ - static constexpr const char* name() {return "ManagementBasedMDTallowed";} - using parent_t = asn::enumerated<1, 0, true>; - typedef enum { - allowed - } index_t; - -}; - -/* -Masked-IMEISV ::= BIT STRING (SIZE (64)) -*/ - -struct Masked_IMEISV : asn::bstring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "Masked-IMEISV";} - using parent_t = asn::bstring<>; - -}; - -/* -MeNBCoordinationAssistanceInformation ::= ENUMERATED{ - coordination-not-required, - ... -} -*/ - -struct MeNBCoordinationAssistanceInformation : asn::enumerated<1, 0, true> -{ - static constexpr const char* name() {return "MeNBCoordinationAssistanceInformation";} - using parent_t = asn::enumerated<1, 0, true>; - typedef enum { - coordination_not_required - } index_t; - -}; - -/* -NRCellIdentifier ::= BIT STRING (SIZE (36)) -*/ - -struct NRCellIdentifier : asn::bstring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "NRCellIdentifier";} - using parent_t = asn::bstring<>; - -}; - -/* -NRCGI-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct NRCGI_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -NRCGI ::= SEQUENCE { - pLMN-Identity PLMN-Identity, - nRcellIdentifier NRCellIdentifier, - iE-Extensions ProtocolExtensionContainer { {NRCGI-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct NRCGI : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "NRCGI";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct pLMN_Identity_t : PLMN_Identity - { - static constexpr const char* name() {return "pLMN_Identity_t";} - using parent_t = PLMN_Identity; - - }; - pLMN_Identity_t& ref_pLMN_Identity() {return pLMN_Identity;} - pLMN_Identity_t const& ref_pLMN_Identity() const {return pLMN_Identity;} - struct nRcellIdentifier_t : NRCellIdentifier - { - static constexpr const char* name() {return "nRcellIdentifier_t";} - using parent_t = NRCellIdentifier; - - }; - nRcellIdentifier_t& ref_nRcellIdentifier() {return nRcellIdentifier;} - nRcellIdentifier_t const& ref_nRcellIdentifier() const {return nRcellIdentifier;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(pLMN_Identity); - v(nRcellIdentifier); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(pLMN_Identity); - v(nRcellIdentifier); - v(iE_Extensions); - - }; - void clear() - { - pLMN_Identity.clear(); - nRcellIdentifier.clear(); - iE_Extensions.clear(); - - }; - private: - pLMN_Identity_t pLMN_Identity; - nRcellIdentifier_t nRcellIdentifier; - iE_Extensions_t iE_Extensions; - -}; -/* -MeNBResourceCoordinationInformationExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-NRCGI CRITICALITY ignore EXTENSION NRCGI PRESENCE optional}| - { ID id-MeNBCoordinationAssistanceInformation CRITICALITY reject EXTENSION MeNBCoordinationAssistanceInformation PRESENCE optional}, - ... -} -*/ - -struct MeNBResourceCoordinationInformationExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_NRCGI() { set(id_NRCGI); type=1;} - void select_id_MeNBCoordinationAssistanceInformation() { set(id_MeNBCoordinationAssistanceInformation); type=2;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_NRCGI)) { type = 1; return true; } - else if(equal(id_MeNBCoordinationAssistanceInformation)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_NRCGI);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_MeNBCoordinationAssistanceInformation);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_NRCGI() { set(ignore); type=1;} - void select_id_MeNBCoordinationAssistanceInformation() { set(reject); type=2;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - NRCGI& select_id_NRCGI() { return set(1); } - NRCGI const* get_id_NRCGI() const { return get(1); } - MeNBCoordinationAssistanceInformation& select_id_MeNBCoordinationAssistanceInformation() { return set(2); } - MeNBCoordinationAssistanceInformation const* get_id_MeNBCoordinationAssistanceInformation() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_NRCGI()); return true; - case 2: v(select_id_MeNBCoordinationAssistanceInformation()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(MeNBCoordinationAssistanceInformation)]; - char dummy2[sizeof(NRCGI)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_NRCGI() { set(optional); type=1;} - void select_id_MeNBCoordinationAssistanceInformation() { set(optional); type=2;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -MeNBResourceCoordinationInformation ::= SEQUENCE { - eUTRA-Cell-ID ECGI, - uLCoordinationInformation BIT STRING (SIZE(6..4400, ...)), - dLCoordinationInformation BIT STRING (SIZE(6..4400, ...)) OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {MeNBResourceCoordinationInformationExtIEs} } OPTIONAL, - ... -} -*/ - -struct MeNBResourceCoordinationInformation : asn::sequence<4, 0, true, 2> -{ - static constexpr const char* name() {return "MeNBResourceCoordinationInformation";} - using parent_t = asn::sequence<4, 0, true, 2>; - struct eUTRA_Cell_ID_t : ECGI - { - static constexpr const char* name() {return "eUTRA_Cell_ID_t";} - using parent_t = ECGI; - - }; - eUTRA_Cell_ID_t& ref_eUTRA_Cell_ID() {return eUTRA_Cell_ID;} - eUTRA_Cell_ID_t const& ref_eUTRA_Cell_ID() const {return eUTRA_Cell_ID;} - struct uLCoordinationInformation_t : asn::bstring<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "uLCoordinationInformation_t";} - using parent_t = asn::bstring<>; - - }; - - uLCoordinationInformation_t& ref_uLCoordinationInformation() {return uLCoordinationInformation;} - uLCoordinationInformation_t const& ref_uLCoordinationInformation() const {return uLCoordinationInformation;} - struct dLCoordinationInformation_t : asn::bstring<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "dLCoordinationInformation_t";} - using parent_t = asn::bstring<>; - static constexpr bool optional = true; - - }; - - dLCoordinationInformation_t& set_dLCoordinationInformation() { dLCoordinationInformation.setpresent(true); return dLCoordinationInformation;} - dLCoordinationInformation_t const* get_dLCoordinationInformation() const {return dLCoordinationInformation.is_valid() ? &dLCoordinationInformation : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(eUTRA_Cell_ID); - v(uLCoordinationInformation); - v(dLCoordinationInformation); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(eUTRA_Cell_ID); - v(uLCoordinationInformation); - v(dLCoordinationInformation); - v(iE_Extensions); - - }; - void clear() - { - eUTRA_Cell_ID.clear(); - uLCoordinationInformation.clear(); - dLCoordinationInformation.clear(); - iE_Extensions.clear(); - - }; - private: - eUTRA_Cell_ID_t eUTRA_Cell_ID; - uLCoordinationInformation_t uLCoordinationInformation; - dLCoordinationInformation_t dLCoordinationInformation; - iE_Extensions_t iE_Extensions; - -}; -/* -MeNBtoSeNBContainer ::= OCTET STRING -*/ - -struct MeNBtoSeNBContainer : asn::ostring<> -{ - static constexpr const char* name() {return "MeNBtoSeNBContainer";} - using parent_t = asn::ostring<>; - -}; - -/* -MeNBtoSgNBContainer ::= OCTET STRING -*/ - -struct MeNBtoSgNBContainer : asn::ostring<> -{ - static constexpr const char* name() {return "MeNBtoSgNBContainer";} - using parent_t = asn::ostring<>; - -}; - -/* -Measurement-ID ::= INTEGER (1..4095, ...) -*/ - -struct Measurement_ID : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "Measurement-ID";} - using parent_t = asn::integer<>; - -}; - -/* -MobilityParametersInformation ::= SEQUENCE { - handoverTriggerChange INTEGER (-20..20), - ... -} -*/ - -struct MobilityParametersInformation : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "MobilityParametersInformation";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct handoverTriggerChange_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "handoverTriggerChange_t";} - using parent_t = asn::integer<>; - - }; - - handoverTriggerChange_t& ref_handoverTriggerChange() {return handoverTriggerChange;} - handoverTriggerChange_t const& ref_handoverTriggerChange() const {return handoverTriggerChange;} - template void decode(V& v) - { - v(handoverTriggerChange); - - }; - template void encode(V& v) const - { - v(handoverTriggerChange); - - }; - void clear() - { - handoverTriggerChange.clear(); - - }; - private: - handoverTriggerChange_t handoverTriggerChange; - -}; -/* -MobilityParametersModificationRange ::= SEQUENCE { - handoverTriggerChangeLowerLimit INTEGER (-20..20), - handoverTriggerChangeUpperLimit INTEGER (-20..20), - ... -} -*/ - -struct MobilityParametersModificationRange : asn::sequence<2, 0, true, 0> -{ - static constexpr const char* name() {return "MobilityParametersModificationRange";} - using parent_t = asn::sequence<2, 0, true, 0>; - struct handoverTriggerChangeLowerLimit_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "handoverTriggerChangeLowerLimit_t";} - using parent_t = asn::integer<>; - - }; - - handoverTriggerChangeLowerLimit_t& ref_handoverTriggerChangeLowerLimit() {return handoverTriggerChangeLowerLimit;} - handoverTriggerChangeLowerLimit_t const& ref_handoverTriggerChangeLowerLimit() const {return handoverTriggerChangeLowerLimit;} - struct handoverTriggerChangeUpperLimit_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "handoverTriggerChangeUpperLimit_t";} - using parent_t = asn::integer<>; - - }; - - handoverTriggerChangeUpperLimit_t& ref_handoverTriggerChangeUpperLimit() {return handoverTriggerChangeUpperLimit;} - handoverTriggerChangeUpperLimit_t const& ref_handoverTriggerChangeUpperLimit() const {return handoverTriggerChangeUpperLimit;} - template void decode(V& v) - { - v(handoverTriggerChangeLowerLimit); - v(handoverTriggerChangeUpperLimit); - - }; - template void encode(V& v) const - { - v(handoverTriggerChangeLowerLimit); - v(handoverTriggerChangeUpperLimit); - - }; - void clear() - { - handoverTriggerChangeLowerLimit.clear(); - handoverTriggerChangeUpperLimit.clear(); - - }; - private: - handoverTriggerChangeLowerLimit_t handoverTriggerChangeLowerLimit; - handoverTriggerChangeUpperLimit_t handoverTriggerChangeUpperLimit; - -}; -/* -MultibandInfoList ::= SEQUENCE (SIZE(1..maxnoofBands)) OF BandInfo -*/ - -struct MultibandInfoList_elm : BandInfo -{ - static constexpr const char* name() {return "MultibandInfoList_elm";} - using parent_t = BandInfo; - -}; -struct MultibandInfoList : asn::sequenceof -{ - static constexpr const char* name() {return "MultibandInfoList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -NRSCS ::= ENUMERATED { scs15, scs30, scs60, scs120, ...} -*/ - -struct NRSCS : asn::enumerated<4, 0, true> -{ - static constexpr const char* name() {return "NRSCS";} - using parent_t = asn::enumerated<4, 0, true>; - typedef enum { - scs15 - ,scs30 - ,scs60 - ,scs120 - } index_t; - -}; - -/* -NRNRB ::= ENUMERATED { nrb11, nrb18, nrb24, nrb25, nrb31, nrb32, nrb38, nrb51, nrb52, nrb65, nrb66, nrb78, nrb79, nrb93, nrb106, nrb107, nrb121, nrb132, nrb133, nrb135, nrb160, nrb162, nrb189, nrb216, nrb217, nrb245, nrb264, nrb270, nrb273, ...} -*/ - -struct NRNRB : asn::enumerated<29, 0, true> -{ - static constexpr const char* name() {return "NRNRB";} - using parent_t = asn::enumerated<29, 0, true>; - typedef enum { - nrb11 - ,nrb18 - ,nrb24 - ,nrb25 - ,nrb31 - ,nrb32 - ,nrb38 - ,nrb51 - ,nrb52 - ,nrb65 - ,nrb66 - ,nrb78 - ,nrb79 - ,nrb93 - ,nrb106 - ,nrb107 - ,nrb121 - ,nrb132 - ,nrb133 - ,nrb135 - ,nrb160 - ,nrb162 - ,nrb189 - ,nrb216 - ,nrb217 - ,nrb245 - ,nrb264 - ,nrb270 - ,nrb273 - } index_t; - -}; - -/* -NR-TxBW-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct NR_TxBW_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -NR-TxBW ::= SEQUENCE { - nRSCS NRSCS, - nRNRB NRNRB, - iE-Extensions ProtocolExtensionContainer { {NR-TxBW-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct NR_TxBW : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "NR-TxBW";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct nRSCS_t : NRSCS - { - static constexpr const char* name() {return "nRSCS_t";} - using parent_t = NRSCS; - - }; - nRSCS_t& ref_nRSCS() {return nRSCS;} - nRSCS_t const& ref_nRSCS() const {return nRSCS;} - struct nRNRB_t : NRNRB - { - static constexpr const char* name() {return "nRNRB_t";} - using parent_t = NRNRB; - - }; - nRNRB_t& ref_nRNRB() {return nRNRB;} - nRNRB_t const& ref_nRNRB() const {return nRNRB;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(nRSCS); - v(nRNRB); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(nRSCS); - v(nRNRB); - v(iE_Extensions); - - }; - void clear() - { - nRSCS.clear(); - nRNRB.clear(); - iE_Extensions.clear(); - - }; - private: - nRSCS_t nRSCS; - nRNRB_t nRNRB; - iE_Extensions_t iE_Extensions; - -}; -/* -SULInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct SULInformation_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SULInformation ::= SEQUENCE { - sUL-ARFCN INTEGER (0.. 3279165), - sUL-TxBW NR-TxBW, - iE-Extensions ProtocolExtensionContainer { {SULInformation-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct SULInformation : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "SULInformation";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct sUL_ARFCN_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "sUL_ARFCN_t";} - using parent_t = asn::integer<>; - - }; - - sUL_ARFCN_t& ref_sUL_ARFCN() {return sUL_ARFCN;} - sUL_ARFCN_t const& ref_sUL_ARFCN() const {return sUL_ARFCN;} - struct sUL_TxBW_t : NR_TxBW - { - static constexpr const char* name() {return "sUL_TxBW_t";} - using parent_t = NR_TxBW; - - }; - sUL_TxBW_t& ref_sUL_TxBW() {return sUL_TxBW;} - sUL_TxBW_t const& ref_sUL_TxBW() const {return sUL_TxBW;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(sUL_ARFCN); - v(sUL_TxBW); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(sUL_ARFCN); - v(sUL_TxBW); - v(iE_Extensions); - - }; - void clear() - { - sUL_ARFCN.clear(); - sUL_TxBW.clear(); - iE_Extensions.clear(); - - }; - private: - sUL_ARFCN_t sUL_ARFCN; - sUL_TxBW_t sUL_TxBW; - iE_Extensions_t iE_Extensions; - -}; -/* -NRFreqInfo-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct NRFreqInfo_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -NRFreqInfo ::= SEQUENCE{ - nRARFCN INTEGER (0.. 3279165), - freqBandListNr SEQUENCE (SIZE(1..maxnoofNrCellBands)) OF FreqBandNrItem, - sULInformation SULInformation OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {NRFreqInfo-ExtIEs} } OPTIONAL, - - ... -} -*/ - -struct NRFreqInfo : asn::sequence<4, 0, true, 2> -{ - static constexpr const char* name() {return "NRFreqInfo";} - using parent_t = asn::sequence<4, 0, true, 2>; - struct nRARFCN_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "nRARFCN_t";} - using parent_t = asn::integer<>; - - }; - - nRARFCN_t& ref_nRARFCN() {return nRARFCN;} - nRARFCN_t const& ref_nRARFCN() const {return nRARFCN;} - struct freqBandListNr_t_elm : FreqBandNrItem - { - static constexpr const char* name() {return "freqBandListNr_t_elm";} - using parent_t = FreqBandNrItem; - - }; - struct freqBandListNr_t : asn::sequenceof - { - static constexpr const char* name() {return "freqBandListNr_t";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - - }; - freqBandListNr_t& ref_freqBandListNr() {return freqBandListNr;} - freqBandListNr_t const& ref_freqBandListNr() const {return freqBandListNr;} - struct sULInformation_t : SULInformation - { - static constexpr const char* name() {return "sULInformation_t";} - using parent_t = SULInformation; - static constexpr bool optional = true; - - }; - sULInformation_t& set_sULInformation() { sULInformation.setpresent(true); return sULInformation;} - sULInformation_t const* get_sULInformation() const {return sULInformation.is_valid() ? &sULInformation : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(nRARFCN); - v(freqBandListNr); - v(sULInformation); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(nRARFCN); - v(freqBandListNr); - v(sULInformation); - v(iE_Extensions); - - }; - void clear() - { - nRARFCN.clear(); - freqBandListNr.clear(); - sULInformation.clear(); - iE_Extensions.clear(); - - }; - private: - nRARFCN_t nRARFCN; - freqBandListNr_t freqBandListNr; - sULInformation_t sULInformation; - iE_Extensions_t iE_Extensions; - -}; -/* -NRPCI ::= INTEGER (0..1007) -*/ - -struct NRPCI : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "NRPCI";} - using parent_t = asn::integer<>; - -}; - -/* -NRencryptionAlgorithms ::= BIT STRING (SIZE (16,...)) -*/ - -struct NRencryptionAlgorithms : asn::bstring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "NRencryptionAlgorithms";} - using parent_t = asn::bstring<>; - -}; - -/* -NRintegrityProtectionAlgorithms ::= BIT STRING (SIZE (16,...)) -*/ - -struct NRintegrityProtectionAlgorithms : asn::bstring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "NRintegrityProtectionAlgorithms";} - using parent_t = asn::bstring<>; - -}; - -/* -NRUESecurityCapabilities-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct NRUESecurityCapabilities_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -NRUESecurityCapabilities ::= SEQUENCE { - nRencryptionAlgorithms NRencryptionAlgorithms, - nRintegrityProtectionAlgorithms NRintegrityProtectionAlgorithms, - iE-Extensions ProtocolExtensionContainer { {NRUESecurityCapabilities-ExtIEs} } OPTIONAL, -... -} -*/ - -struct NRUESecurityCapabilities : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "NRUESecurityCapabilities";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct nRencryptionAlgorithms_t : NRencryptionAlgorithms - { - static constexpr const char* name() {return "nRencryptionAlgorithms_t";} - using parent_t = NRencryptionAlgorithms; - - }; - nRencryptionAlgorithms_t& ref_nRencryptionAlgorithms() {return nRencryptionAlgorithms;} - nRencryptionAlgorithms_t const& ref_nRencryptionAlgorithms() const {return nRencryptionAlgorithms;} - struct nRintegrityProtectionAlgorithms_t : NRintegrityProtectionAlgorithms - { - static constexpr const char* name() {return "nRintegrityProtectionAlgorithms_t";} - using parent_t = NRintegrityProtectionAlgorithms; - - }; - nRintegrityProtectionAlgorithms_t& ref_nRintegrityProtectionAlgorithms() {return nRintegrityProtectionAlgorithms;} - nRintegrityProtectionAlgorithms_t const& ref_nRintegrityProtectionAlgorithms() const {return nRintegrityProtectionAlgorithms;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(nRencryptionAlgorithms); - v(nRintegrityProtectionAlgorithms); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(nRencryptionAlgorithms); - v(nRintegrityProtectionAlgorithms); - v(iE_Extensions); - - }; - void clear() - { - nRencryptionAlgorithms.clear(); - nRintegrityProtectionAlgorithms.clear(); - iE_Extensions.clear(); - - }; - private: - nRencryptionAlgorithms_t nRencryptionAlgorithms; - nRintegrityProtectionAlgorithms_t nRintegrityProtectionAlgorithms; - iE_Extensions_t iE_Extensions; - -}; -/* -PCI ::= INTEGER (0..503, ...) -*/ - -struct PCI : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "PCI";} - using parent_t = asn::integer<>; - -}; - -/* -Neighbour-Information-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-NeighbourTAC CRITICALITY ignore EXTENSION TAC PRESENCE optional}| - { ID id-eARFCNExtension CRITICALITY reject EXTENSION EARFCNExtension PRESENCE optional}, - ... -} -*/ - -struct Neighbour_Information_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_NeighbourTAC() { set(id_NeighbourTAC); type=1;} - void select_id_eARFCNExtension() { set(id_eARFCNExtension); type=2;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_NeighbourTAC)) { type = 1; return true; } - else if(equal(id_eARFCNExtension)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_NeighbourTAC);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_eARFCNExtension);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_NeighbourTAC() { set(ignore); type=1;} - void select_id_eARFCNExtension() { set(reject); type=2;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - TAC& select_id_NeighbourTAC() { return set(1); } - TAC const* get_id_NeighbourTAC() const { return get(1); } - EARFCNExtension& select_id_eARFCNExtension() { return set(2); } - EARFCNExtension const* get_id_eARFCNExtension() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_NeighbourTAC()); return true; - case 2: v(select_id_eARFCNExtension()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(EARFCNExtension)]; - char dummy2[sizeof(TAC)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_NeighbourTAC() { set(optional); type=1;} - void select_id_eARFCNExtension() { set(optional); type=2;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -Neighbour-Information ::= SEQUENCE (SIZE (0..maxnoofNeighbours)) OF SEQUENCE { - eCGI ECGI, - pCI PCI, - eARFCN EARFCN, - iE-Extensions ProtocolExtensionContainer { {Neighbour-Information-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct Neighbour_Information_elm : asn::sequence<4, 0, true, 1> -{ - static constexpr const char* name() {return "Neighbour_Information_elm";} - using parent_t = asn::sequence<4, 0, true, 1>; - struct eCGI_t : ECGI - { - static constexpr const char* name() {return "eCGI_t";} - using parent_t = ECGI; - - }; - eCGI_t& ref_eCGI() {return eCGI;} - eCGI_t const& ref_eCGI() const {return eCGI;} - struct pCI_t : PCI - { - static constexpr const char* name() {return "pCI_t";} - using parent_t = PCI; - - }; - pCI_t& ref_pCI() {return pCI;} - pCI_t const& ref_pCI() const {return pCI;} - struct eARFCN_t : EARFCN - { - static constexpr const char* name() {return "eARFCN_t";} - using parent_t = EARFCN; - - }; - eARFCN_t& ref_eARFCN() {return eARFCN;} - eARFCN_t const& ref_eARFCN() const {return eARFCN;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(eCGI); - v(pCI); - v(eARFCN); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(eCGI); - v(pCI); - v(eARFCN); - v(iE_Extensions); - - }; - void clear() - { - eCGI.clear(); - pCI.clear(); - eARFCN.clear(); - iE_Extensions.clear(); - - }; - private: - eCGI_t eCGI; - pCI_t pCI; - eARFCN_t eARFCN; - iE_Extensions_t iE_Extensions; - -}; -struct Neighbour_Information : asn::sequenceof -{ - static constexpr const char* name() {return "Neighbour-Information";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -NewDRBIDrequest::= ENUMERATED {true, ...} -*/ - -struct NewDRBIDrequest : asn::enumerated<1, 0, true> -{ - static constexpr const char* name() {return "NewDRBIDrequest";} - using parent_t = asn::enumerated<1, 0, true>; - typedef enum { - True - } index_t; - -}; - -/* -Number-of-Antennaports ::= ENUMERATED { - an1, - an2, - an4, - ... -} -*/ - -struct Number_of_Antennaports : asn::enumerated<3, 0, true> -{ - static constexpr const char* name() {return "Number-of-Antennaports";} - using parent_t = asn::enumerated<3, 0, true>; - typedef enum { - an1 - ,an2 - ,an4 - } index_t; - -}; - -/* -PDCPChangeIndication ::= ENUMERATED {s-KgNB-update-required, pDCP-data-recovery-required,...} -*/ - -struct PDCPChangeIndication : asn::enumerated<2, 0, true> -{ - static constexpr const char* name() {return "PDCPChangeIndication";} - using parent_t = asn::enumerated<2, 0, true>; - typedef enum { - s_KgNB_update_required - ,pDCP_data_recovery_required - } index_t; - -}; - -/* -PDCPSnLength ::= ENUMERATED {twelve-bits,eighteen-bits,...} -*/ - -struct PDCPSnLength : asn::enumerated<2, 0, true> -{ - static constexpr const char* name() {return "PDCPSnLength";} - using parent_t = asn::enumerated<2, 0, true>; - typedef enum { - twelve_bits - ,eighteen_bits - } index_t; - -}; - -/* -PRACH-Configuration-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct PRACH_Configuration_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -PRACH-Configuration ::= SEQUENCE { - rootSequenceIndex INTEGER (0..837), - zeroCorrelationIndex INTEGER (0..15), - highSpeedFlag BOOLEAN, - prach-FreqOffset INTEGER (0..94), - prach-ConfigIndex INTEGER (0..63) OPTIONAL, -- present for TDD -- - iE-Extensions ProtocolExtensionContainer { {PRACH-Configuration-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct PRACH_Configuration : asn::sequence<6, 0, true, 2> -{ - static constexpr const char* name() {return "PRACH-Configuration";} - using parent_t = asn::sequence<6, 0, true, 2>; - struct rootSequenceIndex_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "rootSequenceIndex_t";} - using parent_t = asn::integer<>; - - }; - - rootSequenceIndex_t& ref_rootSequenceIndex() {return rootSequenceIndex;} - rootSequenceIndex_t const& ref_rootSequenceIndex() const {return rootSequenceIndex;} - struct zeroCorrelationIndex_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "zeroCorrelationIndex_t";} - using parent_t = asn::integer<>; - - }; - - zeroCorrelationIndex_t& ref_zeroCorrelationIndex() {return zeroCorrelationIndex;} - zeroCorrelationIndex_t const& ref_zeroCorrelationIndex() const {return zeroCorrelationIndex;} - struct highSpeedFlag_t : asn::boolean - { - static constexpr const char* name() {return "highSpeedFlag_t";} - using parent_t = asn::boolean; - - }; - highSpeedFlag_t& ref_highSpeedFlag() {return highSpeedFlag;} - highSpeedFlag_t const& ref_highSpeedFlag() const {return highSpeedFlag;} - struct prach_FreqOffset_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "prach_FreqOffset_t";} - using parent_t = asn::integer<>; - - }; - - prach_FreqOffset_t& ref_prach_FreqOffset() {return prach_FreqOffset;} - prach_FreqOffset_t const& ref_prach_FreqOffset() const {return prach_FreqOffset;} - struct prach_ConfigIndex_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "prach_ConfigIndex_t";} - using parent_t = asn::integer<>; - static constexpr bool optional = true; - - }; - - prach_ConfigIndex_t& set_prach_ConfigIndex() { prach_ConfigIndex.setpresent(true); return prach_ConfigIndex;} - prach_ConfigIndex_t const* get_prach_ConfigIndex() const {return prach_ConfigIndex.is_valid() ? &prach_ConfigIndex : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(rootSequenceIndex); - v(zeroCorrelationIndex); - v(highSpeedFlag); - v(prach_FreqOffset); - v(prach_ConfigIndex); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(rootSequenceIndex); - v(zeroCorrelationIndex); - v(highSpeedFlag); - v(prach_FreqOffset); - v(prach_ConfigIndex); - v(iE_Extensions); - - }; - void clear() - { - rootSequenceIndex.clear(); - zeroCorrelationIndex.clear(); - highSpeedFlag.clear(); - prach_FreqOffset.clear(); - prach_ConfigIndex.clear(); - iE_Extensions.clear(); - - }; - private: - rootSequenceIndex_t rootSequenceIndex; - zeroCorrelationIndex_t zeroCorrelationIndex; - highSpeedFlag_t highSpeedFlag; - prach_FreqOffset_t prach_FreqOffset; - prach_ConfigIndex_t prach_ConfigIndex; - iE_Extensions_t iE_Extensions; - -}; -/* -PedestrianUE ::= ENUMERATED { - authorized, - not-authorized, - ... -} -*/ - -struct PedestrianUE : asn::enumerated<2, 0, true> -{ - static constexpr const char* name() {return "PedestrianUE";} - using parent_t = asn::enumerated<2, 0, true>; - typedef enum { - authorized - ,not_authorized - } index_t; - -}; - -/* -Port-Number ::= OCTET STRING (SIZE (2)) -*/ - -struct Port_Number : asn::ostring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "Port-Number";} - using parent_t = asn::ostring<>; - -}; - -/* -ProSeDirectDiscovery ::= ENUMERATED { - authorized, - not-authorized, - ... -} -*/ - -struct ProSeDirectDiscovery : asn::enumerated<2, 0, true> -{ - static constexpr const char* name() {return "ProSeDirectDiscovery";} - using parent_t = asn::enumerated<2, 0, true>; - typedef enum { - authorized - ,not_authorized - } index_t; - -}; - -/* -ProSeDirectCommunication ::= ENUMERATED { - authorized, - not-authorized, - ... -} -*/ - -struct ProSeDirectCommunication : asn::enumerated<2, 0, true> -{ - static constexpr const char* name() {return "ProSeDirectCommunication";} - using parent_t = asn::enumerated<2, 0, true>; - typedef enum { - authorized - ,not_authorized - } index_t; - -}; - -/* -ProSeUEtoNetworkRelaying ::= ENUMERATED { - authorized, - not-authorized, - ... -} -*/ - -struct ProSeUEtoNetworkRelaying : asn::enumerated<2, 0, true> -{ - static constexpr const char* name() {return "ProSeUEtoNetworkRelaying";} - using parent_t = asn::enumerated<2, 0, true>; - typedef enum { - authorized - ,not_authorized - } index_t; - -}; - -/* -ProSeAuthorized-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-ProSeUEtoNetworkRelaying CRITICALITY ignore EXTENSION ProSeUEtoNetworkRelaying PRESENCE optional}, - ... -} -*/ - -struct ProSeAuthorized_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_ProSeUEtoNetworkRelaying() { set(id_ProSeUEtoNetworkRelaying); type=1;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_ProSeUEtoNetworkRelaying)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_ProSeUEtoNetworkRelaying);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_ProSeUEtoNetworkRelaying() { set(ignore); type=1;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - ProSeUEtoNetworkRelaying& select_id_ProSeUEtoNetworkRelaying() { return set(1); } - ProSeUEtoNetworkRelaying const* get_id_ProSeUEtoNetworkRelaying() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_ProSeUEtoNetworkRelaying()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(ProSeUEtoNetworkRelaying)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_ProSeUEtoNetworkRelaying() { set(optional); type=1;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ProSeAuthorized ::= SEQUENCE { - proSeDirectDiscovery ProSeDirectDiscovery OPTIONAL, - proSeDirectCommunication ProSeDirectCommunication OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {ProSeAuthorized-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct ProSeAuthorized : asn::sequence<3, 0, true, 3> -{ - static constexpr const char* name() {return "ProSeAuthorized";} - using parent_t = asn::sequence<3, 0, true, 3>; - struct proSeDirectDiscovery_t : ProSeDirectDiscovery - { - static constexpr const char* name() {return "proSeDirectDiscovery_t";} - using parent_t = ProSeDirectDiscovery; - static constexpr bool optional = true; - - }; - proSeDirectDiscovery_t& set_proSeDirectDiscovery() { proSeDirectDiscovery.setpresent(true); return proSeDirectDiscovery;} - proSeDirectDiscovery_t const* get_proSeDirectDiscovery() const {return proSeDirectDiscovery.is_valid() ? &proSeDirectDiscovery : nullptr;} - struct proSeDirectCommunication_t : ProSeDirectCommunication - { - static constexpr const char* name() {return "proSeDirectCommunication_t";} - using parent_t = ProSeDirectCommunication; - static constexpr bool optional = true; - - }; - proSeDirectCommunication_t& set_proSeDirectCommunication() { proSeDirectCommunication.setpresent(true); return proSeDirectCommunication;} - proSeDirectCommunication_t const* get_proSeDirectCommunication() const {return proSeDirectCommunication.is_valid() ? &proSeDirectCommunication : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(proSeDirectDiscovery); - v(proSeDirectCommunication); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(proSeDirectDiscovery); - v(proSeDirectCommunication); - v(iE_Extensions); - - }; - void clear() - { - proSeDirectDiscovery.clear(); - proSeDirectCommunication.clear(); - iE_Extensions.clear(); - - }; - private: - proSeDirectDiscovery_t proSeDirectDiscovery; - proSeDirectCommunication_t proSeDirectCommunication; - iE_Extensions_t iE_Extensions; - -}; -/* -ResourceType ::= ENUMERATED { - downlinknonCRS, - cRS, - uplink, - ... -} -*/ - -struct ResourceType : asn::enumerated<3, 0, true> -{ - static constexpr const char* name() {return "ResourceType";} - using parent_t = asn::enumerated<3, 0, true>; - typedef enum { - downlinknonCRS - ,cRS - ,uplink - } index_t; - -}; - -/* -ProtectedFootprintTimePattern-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct ProtectedFootprintTimePattern_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ProtectedFootprintTimePattern ::= SEQUENCE { - protectedFootprintTimePeriodicity INTEGER (1..320, ...), - protectedFootprintStartTime INTEGER (1..20, ...), - iE-Extensions ProtocolExtensionContainer { {ProtectedFootprintTimePattern-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct ProtectedFootprintTimePattern : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "ProtectedFootprintTimePattern";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct protectedFootprintTimePeriodicity_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "protectedFootprintTimePeriodicity_t";} - using parent_t = asn::integer<>; - - }; - - protectedFootprintTimePeriodicity_t& ref_protectedFootprintTimePeriodicity() {return protectedFootprintTimePeriodicity;} - protectedFootprintTimePeriodicity_t const& ref_protectedFootprintTimePeriodicity() const {return protectedFootprintTimePeriodicity;} - struct protectedFootprintStartTime_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "protectedFootprintStartTime_t";} - using parent_t = asn::integer<>; - - }; - - protectedFootprintStartTime_t& ref_protectedFootprintStartTime() {return protectedFootprintStartTime;} - protectedFootprintStartTime_t const& ref_protectedFootprintStartTime() const {return protectedFootprintStartTime;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(protectedFootprintTimePeriodicity); - v(protectedFootprintStartTime); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(protectedFootprintTimePeriodicity); - v(protectedFootprintStartTime); - v(iE_Extensions); - - }; - void clear() - { - protectedFootprintTimePeriodicity.clear(); - protectedFootprintStartTime.clear(); - iE_Extensions.clear(); - - }; - private: - protectedFootprintTimePeriodicity_t protectedFootprintTimePeriodicity; - protectedFootprintStartTime_t protectedFootprintStartTime; - iE_Extensions_t iE_Extensions; - -}; -/* -ProtectedResourceList-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct ProtectedResourceList_Item_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ProtectedResourceList-Item ::= SEQUENCE { - resourceType ResourceType, - intraPRBProtectedResourceFootprint BIT STRING (SIZE(84, ...)), - protectedFootprintFrequencyPattern BIT STRING (SIZE(6..110, ...)), - protectedFootprintTimePattern ProtectedFootprintTimePattern, - iE-Extensions ProtocolExtensionContainer { {ProtectedResourceList-Item-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct ProtectedResourceList_Item : asn::sequence<5, 0, true, 1> -{ - static constexpr const char* name() {return "ProtectedResourceList-Item";} - using parent_t = asn::sequence<5, 0, true, 1>; - struct resourceType_t : ResourceType - { - static constexpr const char* name() {return "resourceType_t";} - using parent_t = ResourceType; - - }; - resourceType_t& ref_resourceType() {return resourceType;} - resourceType_t const& ref_resourceType() const {return resourceType;} - struct intraPRBProtectedResourceFootprint_t : asn::bstring<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "intraPRBProtectedResourceFootprint_t";} - using parent_t = asn::bstring<>; - - }; - - intraPRBProtectedResourceFootprint_t& ref_intraPRBProtectedResourceFootprint() {return intraPRBProtectedResourceFootprint;} - intraPRBProtectedResourceFootprint_t const& ref_intraPRBProtectedResourceFootprint() const {return intraPRBProtectedResourceFootprint;} - struct protectedFootprintFrequencyPattern_t : asn::bstring<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "protectedFootprintFrequencyPattern_t";} - using parent_t = asn::bstring<>; - - }; - - protectedFootprintFrequencyPattern_t& ref_protectedFootprintFrequencyPattern() {return protectedFootprintFrequencyPattern;} - protectedFootprintFrequencyPattern_t const& ref_protectedFootprintFrequencyPattern() const {return protectedFootprintFrequencyPattern;} - struct protectedFootprintTimePattern_t : ProtectedFootprintTimePattern - { - static constexpr const char* name() {return "protectedFootprintTimePattern_t";} - using parent_t = ProtectedFootprintTimePattern; - - }; - protectedFootprintTimePattern_t& ref_protectedFootprintTimePattern() {return protectedFootprintTimePattern;} - protectedFootprintTimePattern_t const& ref_protectedFootprintTimePattern() const {return protectedFootprintTimePattern;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(resourceType); - v(intraPRBProtectedResourceFootprint); - v(protectedFootprintFrequencyPattern); - v(protectedFootprintTimePattern); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(resourceType); - v(intraPRBProtectedResourceFootprint); - v(protectedFootprintFrequencyPattern); - v(protectedFootprintTimePattern); - v(iE_Extensions); - - }; - void clear() - { - resourceType.clear(); - intraPRBProtectedResourceFootprint.clear(); - protectedFootprintFrequencyPattern.clear(); - protectedFootprintTimePattern.clear(); - iE_Extensions.clear(); - - }; - private: - resourceType_t resourceType; - intraPRBProtectedResourceFootprint_t intraPRBProtectedResourceFootprint; - protectedFootprintFrequencyPattern_t protectedFootprintFrequencyPattern; - protectedFootprintTimePattern_t protectedFootprintTimePattern; - iE_Extensions_t iE_Extensions; - -}; -/* -ProtectedResourceList ::= SEQUENCE (SIZE(1.. maxnoofProtectedResourcePatterns)) OF ProtectedResourceList-Item -*/ - -struct ProtectedResourceList_elm : ProtectedResourceList_Item -{ - static constexpr const char* name() {return "ProtectedResourceList_elm";} - using parent_t = ProtectedResourceList_Item; - -}; -struct ProtectedResourceList : asn::sequenceof -{ - static constexpr const char* name() {return "ProtectedResourceList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -ProtectedEUTRAResourceIndication-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -- Rapporteur: missing extension -- -*/ - -struct ProtectedEUTRAResourceIndication_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ProtectedEUTRAResourceIndication::= SEQUENCE { - activationSFN INTEGER (0..1023), - protectedResourceList ProtectedResourceList, - mBSFNControlRegionLength INTEGER (0..3) OPTIONAL, - pDCCHRegionLength INTEGER (1..3) OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {ProtectedEUTRAResourceIndication-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct ProtectedEUTRAResourceIndication : asn::sequence<5, 0, true, 3> -{ - static constexpr const char* name() {return "ProtectedEUTRAResourceIndication";} - using parent_t = asn::sequence<5, 0, true, 3>; - struct activationSFN_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "activationSFN_t";} - using parent_t = asn::integer<>; - - }; - - activationSFN_t& ref_activationSFN() {return activationSFN;} - activationSFN_t const& ref_activationSFN() const {return activationSFN;} - struct protectedResourceList_t : ProtectedResourceList - { - static constexpr const char* name() {return "protectedResourceList_t";} - using parent_t = ProtectedResourceList; - - }; - protectedResourceList_t& ref_protectedResourceList() {return protectedResourceList;} - protectedResourceList_t const& ref_protectedResourceList() const {return protectedResourceList;} - struct mBSFNControlRegionLength_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "mBSFNControlRegionLength_t";} - using parent_t = asn::integer<>; - static constexpr bool optional = true; - - }; - - mBSFNControlRegionLength_t& set_mBSFNControlRegionLength() { mBSFNControlRegionLength.setpresent(true); return mBSFNControlRegionLength;} - mBSFNControlRegionLength_t const* get_mBSFNControlRegionLength() const {return mBSFNControlRegionLength.is_valid() ? &mBSFNControlRegionLength : nullptr;} - struct pDCCHRegionLength_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "pDCCHRegionLength_t";} - using parent_t = asn::integer<>; - static constexpr bool optional = true; - - }; - - pDCCHRegionLength_t& set_pDCCHRegionLength() { pDCCHRegionLength.setpresent(true); return pDCCHRegionLength;} - pDCCHRegionLength_t const* get_pDCCHRegionLength() const {return pDCCHRegionLength.is_valid() ? &pDCCHRegionLength : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(activationSFN); - v(protectedResourceList); - v(mBSFNControlRegionLength); - v(pDCCHRegionLength); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(activationSFN); - v(protectedResourceList); - v(mBSFNControlRegionLength); - v(pDCCHRegionLength); - v(iE_Extensions); - - }; - void clear() - { - activationSFN.clear(); - protectedResourceList.clear(); - mBSFNControlRegionLength.clear(); - pDCCHRegionLength.clear(); - iE_Extensions.clear(); - - }; - private: - activationSFN_t activationSFN; - protectedResourceList_t protectedResourceList; - mBSFNControlRegionLength_t mBSFNControlRegionLength; - pDCCHRegionLength_t pDCCHRegionLength; - iE_Extensions_t iE_Extensions; - -}; -/* -Reestablishment-Indication ::= ENUMERATED { - reestablished, - ... -} -*/ - -struct Reestablishment_Indication : asn::enumerated<1, 0, true> -{ - static constexpr const char* name() {return "Reestablishment-Indication";} - using parent_t = asn::enumerated<1, 0, true>; - typedef enum { - reestablished - } index_t; - -}; - -/* -RLC-Status-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct RLC_Status_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RLC-Status ::= SEQUENCE { - reestablishment-Indication Reestablishment-Indication, - iE-Extensions ProtocolExtensionContainer { {RLC-Status-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct RLC_Status : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "RLC-Status";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct reestablishment_Indication_t : Reestablishment_Indication - { - static constexpr const char* name() {return "reestablishment_Indication_t";} - using parent_t = Reestablishment_Indication; - - }; - reestablishment_Indication_t& ref_reestablishment_Indication() {return reestablishment_Indication;} - reestablishment_Indication_t const& ref_reestablishment_Indication() const {return reestablishment_Indication;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(reestablishment_Indication); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(reestablishment_Indication); - v(iE_Extensions); - - }; - void clear() - { - reestablishment_Indication.clear(); - iE_Extensions.clear(); - - }; - private: - reestablishment_Indication_t reestablishment_Indication; - iE_Extensions_t iE_Extensions; - -}; -/* -RLCMode ::= ENUMERATED { - rlc-am, - rlc-um-bidirectional, - rlc-um-unidirectional-ul, - rlc-um-unidirectional-dl, - ... -} -*/ - -struct RLCMode : asn::enumerated<4, 0, true> -{ - static constexpr const char* name() {return "RLCMode";} - using parent_t = asn::enumerated<4, 0, true>; - typedef enum { - rlc_am - ,rlc_um_bidirectional - ,rlc_um_unidirectional_ul - ,rlc_um_unidirectional_dl - } index_t; - -}; - -/* -RRC-Config-Ind ::= ENUMERATED { - full-config, - delta-config, - ... -} -*/ - -struct RRC_Config_Ind : asn::enumerated<2, 0, true> -{ - static constexpr const char* name() {return "RRC-Config-Ind";} - using parent_t = asn::enumerated<2, 0, true>; - typedef enum { - full_config - ,delta_config - } index_t; - -}; - -/* -RRC-Context ::= OCTET STRING -*/ - -struct RRC_Context : asn::ostring<> -{ - static constexpr const char* name() {return "RRC-Context";} - using parent_t = asn::ostring<>; - -}; - -/* -RRCConnReestabIndicator ::= ENUMERATED { - reconfigurationFailure, handoverFailure, otherFailure, ... -} -*/ - -struct RRCConnReestabIndicator : asn::enumerated<3, 0, true> -{ - static constexpr const char* name() {return "RRCConnReestabIndicator";} - using parent_t = asn::enumerated<3, 0, true>; - typedef enum { - reconfigurationFailure - ,handoverFailure - ,otherFailure - } index_t; - -}; - -/* -RRCConnSetupIndicator::= ENUMERATED { - rrcConnSetup, - ... -} -*/ - -struct RRCConnSetupIndicator : asn::enumerated<1, 0, true> -{ - static constexpr const char* name() {return "RRCConnSetupIndicator";} - using parent_t = asn::enumerated<1, 0, true>; - typedef enum { - rrcConnSetup - } index_t; - -}; - -/* -RRCContainer ::= OCTET STRING -*/ - -struct RRCContainer : asn::ostring<> -{ - static constexpr const char* name() {return "RRCContainer";} - using parent_t = asn::ostring<>; - -}; - -/* -RSRPMeasurementResult-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct RSRPMeasurementResult_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RSRPMeasurementResult ::= SEQUENCE (SIZE(1..maxCellReport)) OF - SEQUENCE { - rSRPCellID ECGI, - rSRPMeasured INTEGER (0..97, ...), - iE-Extensions ProtocolExtensionContainer { {RSRPMeasurementResult-ExtIEs} } OPTIONAL, - ... - } -*/ - -struct RSRPMeasurementResult_elm : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "RSRPMeasurementResult_elm";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct rSRPCellID_t : ECGI - { - static constexpr const char* name() {return "rSRPCellID_t";} - using parent_t = ECGI; - - }; - rSRPCellID_t& ref_rSRPCellID() {return rSRPCellID;} - rSRPCellID_t const& ref_rSRPCellID() const {return rSRPCellID;} - struct rSRPMeasured_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "rSRPMeasured_t";} - using parent_t = asn::integer<>; - - }; - - rSRPMeasured_t& ref_rSRPMeasured() {return rSRPMeasured;} - rSRPMeasured_t const& ref_rSRPMeasured() const {return rSRPMeasured;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(rSRPCellID); - v(rSRPMeasured); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(rSRPCellID); - v(rSRPMeasured); - v(iE_Extensions); - - }; - void clear() - { - rSRPCellID.clear(); - rSRPMeasured.clear(); - iE_Extensions.clear(); - - }; - private: - rSRPCellID_t rSRPCellID; - rSRPMeasured_t rSRPMeasured; - iE_Extensions_t iE_Extensions; - -}; -struct RSRPMeasurementResult : asn::sequenceof -{ - static constexpr const char* name() {return "RSRPMeasurementResult";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -RSRPMRList-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-UEID CRITICALITY ignore EXTENSION UEID PRESENCE optional}, - ... -} -*/ - -struct RSRPMRList_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_UEID() { set(id_UEID); type=1;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_UEID)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_UEID);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_UEID() { set(ignore); type=1;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - UEID& select_id_UEID() { return set(1); } - UEID const* get_id_UEID() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_UEID()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(UEID)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_UEID() { set(optional); type=1;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RSRPMRList ::= SEQUENCE (SIZE(1..maxUEReport)) OF - SEQUENCE { - rSRPMeasurementResult RSRPMeasurementResult, - iE-Extensions ProtocolExtensionContainer { {RSRPMRList-ExtIEs} } OPTIONAL, - ... - } -*/ - -struct RSRPMRList_elm : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "RSRPMRList_elm";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct rSRPMeasurementResult_t : RSRPMeasurementResult - { - static constexpr const char* name() {return "rSRPMeasurementResult_t";} - using parent_t = RSRPMeasurementResult; - - }; - rSRPMeasurementResult_t& ref_rSRPMeasurementResult() {return rSRPMeasurementResult;} - rSRPMeasurementResult_t const& ref_rSRPMeasurementResult() const {return rSRPMeasurementResult;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(rSRPMeasurementResult); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(rSRPMeasurementResult); - v(iE_Extensions); - - }; - void clear() - { - rSRPMeasurementResult.clear(); - iE_Extensions.clear(); - - }; - private: - rSRPMeasurementResult_t rSRPMeasurementResult; - iE_Extensions_t iE_Extensions; - -}; -struct RSRPMRList : asn::sequenceof -{ - static constexpr const char* name() {return "RSRPMRList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -UL-GBR-PRB-usage::= INTEGER (0..100) -*/ - -struct UL_GBR_PRB_usage : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "UL-GBR-PRB-usage";} - using parent_t = asn::integer<>; - -}; - -/* -UL-non-GBR-PRB-usage::= INTEGER (0..100) -*/ - -struct UL_non_GBR_PRB_usage : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "UL-non-GBR-PRB-usage";} - using parent_t = asn::integer<>; - -}; - -/* -UL-Total-PRB-usage::= INTEGER (0..100) -*/ - -struct UL_Total_PRB_usage : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "UL-Total-PRB-usage";} - using parent_t = asn::integer<>; - -}; - -/* -UL-scheduling-PDCCH-CCE-usage::= INTEGER (0..100) -*/ - -struct UL_scheduling_PDCCH_CCE_usage : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "UL-scheduling-PDCCH-CCE-usage";} - using parent_t = asn::integer<>; - -}; - -/* -RadioResourceStatus-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - {ID id-DL-scheduling-PDCCH-CCE-usage CRITICALITY ignore EXTENSION DL-scheduling-PDCCH-CCE-usage PRESENCE optional}| - - {ID id-UL-scheduling-PDCCH-CCE-usage CRITICALITY ignore EXTENSION UL-scheduling-PDCCH-CCE-usage PRESENCE optional}, - ... -} -*/ - -struct RadioResourceStatus_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_DL_scheduling_PDCCH_CCE_usage() { set(id_DL_scheduling_PDCCH_CCE_usage); type=1;} - void select_id_UL_scheduling_PDCCH_CCE_usage() { set(id_UL_scheduling_PDCCH_CCE_usage); type=2;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_DL_scheduling_PDCCH_CCE_usage)) { type = 1; return true; } - else if(equal(id_UL_scheduling_PDCCH_CCE_usage)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_DL_scheduling_PDCCH_CCE_usage);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_UL_scheduling_PDCCH_CCE_usage);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_DL_scheduling_PDCCH_CCE_usage() { set(ignore); type=1;} - void select_id_UL_scheduling_PDCCH_CCE_usage() { set(ignore); type=2;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - DL_scheduling_PDCCH_CCE_usage& select_id_DL_scheduling_PDCCH_CCE_usage() { return set(1); } - DL_scheduling_PDCCH_CCE_usage const* get_id_DL_scheduling_PDCCH_CCE_usage() const { return get(1); } - UL_scheduling_PDCCH_CCE_usage& select_id_UL_scheduling_PDCCH_CCE_usage() { return set(2); } - UL_scheduling_PDCCH_CCE_usage const* get_id_UL_scheduling_PDCCH_CCE_usage() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_DL_scheduling_PDCCH_CCE_usage()); return true; - case 2: v(select_id_UL_scheduling_PDCCH_CCE_usage()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(DL_scheduling_PDCCH_CCE_usage)]; - char dummy2[sizeof(UL_scheduling_PDCCH_CCE_usage)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_DL_scheduling_PDCCH_CCE_usage() { set(optional); type=1;} - void select_id_UL_scheduling_PDCCH_CCE_usage() { set(optional); type=2;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RadioResourceStatus ::= SEQUENCE { - dL-GBR-PRB-usage DL-GBR-PRB-usage, - uL-GBR-PRB-usage UL-GBR-PRB-usage, - dL-non-GBR-PRB-usage DL-non-GBR-PRB-usage, - uL-non-GBR-PRB-usage UL-non-GBR-PRB-usage, - dL-Total-PRB-usage DL-Total-PRB-usage, - uL-Total-PRB-usage UL-Total-PRB-usage, - iE-Extensions ProtocolExtensionContainer { {RadioResourceStatus-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct RadioResourceStatus : asn::sequence<7, 0, true, 1> -{ - static constexpr const char* name() {return "RadioResourceStatus";} - using parent_t = asn::sequence<7, 0, true, 1>; - struct dL_GBR_PRB_usage_t : DL_GBR_PRB_usage - { - static constexpr const char* name() {return "dL_GBR_PRB_usage_t";} - using parent_t = DL_GBR_PRB_usage; - - }; - dL_GBR_PRB_usage_t& ref_dL_GBR_PRB_usage() {return dL_GBR_PRB_usage;} - dL_GBR_PRB_usage_t const& ref_dL_GBR_PRB_usage() const {return dL_GBR_PRB_usage;} - struct uL_GBR_PRB_usage_t : UL_GBR_PRB_usage - { - static constexpr const char* name() {return "uL_GBR_PRB_usage_t";} - using parent_t = UL_GBR_PRB_usage; - - }; - uL_GBR_PRB_usage_t& ref_uL_GBR_PRB_usage() {return uL_GBR_PRB_usage;} - uL_GBR_PRB_usage_t const& ref_uL_GBR_PRB_usage() const {return uL_GBR_PRB_usage;} - struct dL_non_GBR_PRB_usage_t : DL_non_GBR_PRB_usage - { - static constexpr const char* name() {return "dL_non_GBR_PRB_usage_t";} - using parent_t = DL_non_GBR_PRB_usage; - - }; - dL_non_GBR_PRB_usage_t& ref_dL_non_GBR_PRB_usage() {return dL_non_GBR_PRB_usage;} - dL_non_GBR_PRB_usage_t const& ref_dL_non_GBR_PRB_usage() const {return dL_non_GBR_PRB_usage;} - struct uL_non_GBR_PRB_usage_t : UL_non_GBR_PRB_usage - { - static constexpr const char* name() {return "uL_non_GBR_PRB_usage_t";} - using parent_t = UL_non_GBR_PRB_usage; - - }; - uL_non_GBR_PRB_usage_t& ref_uL_non_GBR_PRB_usage() {return uL_non_GBR_PRB_usage;} - uL_non_GBR_PRB_usage_t const& ref_uL_non_GBR_PRB_usage() const {return uL_non_GBR_PRB_usage;} - struct dL_Total_PRB_usage_t : DL_Total_PRB_usage - { - static constexpr const char* name() {return "dL_Total_PRB_usage_t";} - using parent_t = DL_Total_PRB_usage; - - }; - dL_Total_PRB_usage_t& ref_dL_Total_PRB_usage() {return dL_Total_PRB_usage;} - dL_Total_PRB_usage_t const& ref_dL_Total_PRB_usage() const {return dL_Total_PRB_usage;} - struct uL_Total_PRB_usage_t : UL_Total_PRB_usage - { - static constexpr const char* name() {return "uL_Total_PRB_usage_t";} - using parent_t = UL_Total_PRB_usage; - - }; - uL_Total_PRB_usage_t& ref_uL_Total_PRB_usage() {return uL_Total_PRB_usage;} - uL_Total_PRB_usage_t const& ref_uL_Total_PRB_usage() const {return uL_Total_PRB_usage;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(dL_GBR_PRB_usage); - v(uL_GBR_PRB_usage); - v(dL_non_GBR_PRB_usage); - v(uL_non_GBR_PRB_usage); - v(dL_Total_PRB_usage); - v(uL_Total_PRB_usage); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(dL_GBR_PRB_usage); - v(uL_GBR_PRB_usage); - v(dL_non_GBR_PRB_usage); - v(uL_non_GBR_PRB_usage); - v(dL_Total_PRB_usage); - v(uL_Total_PRB_usage); - v(iE_Extensions); - - }; - void clear() - { - dL_GBR_PRB_usage.clear(); - uL_GBR_PRB_usage.clear(); - dL_non_GBR_PRB_usage.clear(); - uL_non_GBR_PRB_usage.clear(); - dL_Total_PRB_usage.clear(); - uL_Total_PRB_usage.clear(); - iE_Extensions.clear(); - - }; - private: - dL_GBR_PRB_usage_t dL_GBR_PRB_usage; - uL_GBR_PRB_usage_t uL_GBR_PRB_usage; - dL_non_GBR_PRB_usage_t dL_non_GBR_PRB_usage; - uL_non_GBR_PRB_usage_t uL_non_GBR_PRB_usage; - dL_Total_PRB_usage_t dL_Total_PRB_usage; - uL_Total_PRB_usage_t uL_Total_PRB_usage; - iE_Extensions_t iE_Extensions; - -}; -/* -ReceiveStatusOfULPDCPSDUsExtended ::= BIT STRING (SIZE(1..16384)) -*/ - -struct ReceiveStatusOfULPDCPSDUsExtended : asn::bstring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "ReceiveStatusOfULPDCPSDUsExtended";} - using parent_t = asn::bstring<>; - -}; - -/* -ReceiveStatusOfULPDCPSDUsPDCP-SNlength18 ::= BIT STRING (SIZE(1..131072)) -*/ - -struct ReceiveStatusOfULPDCPSDUsPDCP_SNlength18 : asn::bstring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "ReceiveStatusOfULPDCPSDUsPDCP-SNlength18";} - using parent_t = asn::bstring<>; - -}; - -/* -ReceiveStatusofULPDCPSDUs ::= BIT STRING (SIZE(4096)) -*/ - -struct ReceiveStatusofULPDCPSDUs : asn::bstring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "ReceiveStatusofULPDCPSDUs";} - using parent_t = asn::bstring<>; - -}; - -/* -Registration-Request ::= ENUMERATED { - start, - stop, - ..., - partial-stop, - add -} -*/ - -struct Registration_Request : asn::enumerated<4, 2, true> -{ - static constexpr const char* name() {return "Registration-Request";} - using parent_t = asn::enumerated<4, 2, true>; - typedef enum { - start - ,stop - ,partial_stop - ,add - } index_t; - -}; - -/* -RelativeNarrowbandTxPower-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-enhancedRNTP CRITICALITY ignore EXTENSION EnhancedRNTP PRESENCE optional }, - ... -} -*/ - -struct RelativeNarrowbandTxPower_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_enhancedRNTP() { set(id_enhancedRNTP); type=1;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_enhancedRNTP)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_enhancedRNTP);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_enhancedRNTP() { set(ignore); type=1;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - EnhancedRNTP& select_id_enhancedRNTP() { return set(1); } - EnhancedRNTP const* get_id_enhancedRNTP() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_enhancedRNTP()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(EnhancedRNTP)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_enhancedRNTP() { set(optional); type=1;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RelativeNarrowbandTxPower ::= SEQUENCE { - - rNTP-PerPRB BIT STRING (SIZE(6..110, ...)), - rNTP-Threshold RNTP-Threshold, - numberOfCellSpecificAntennaPorts ENUMERATED {one, two, four, ...}, - p-B INTEGER (0..3,...), - pDCCH-InterferenceImpact INTEGER (0..4,...), - iE-Extensions ProtocolExtensionContainer { {RelativeNarrowbandTxPower-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct RelativeNarrowbandTxPower : asn::sequence<6, 0, true, 1> -{ - static constexpr const char* name() {return "RelativeNarrowbandTxPower";} - using parent_t = asn::sequence<6, 0, true, 1>; - struct rNTP_PerPRB_t : asn::bstring<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "rNTP_PerPRB_t";} - using parent_t = asn::bstring<>; - - }; - - rNTP_PerPRB_t& ref_rNTP_PerPRB() {return rNTP_PerPRB;} - rNTP_PerPRB_t const& ref_rNTP_PerPRB() const {return rNTP_PerPRB;} - struct rNTP_Threshold_t : RNTP_Threshold - { - static constexpr const char* name() {return "rNTP_Threshold_t";} - using parent_t = RNTP_Threshold; - - }; - rNTP_Threshold_t& ref_rNTP_Threshold() {return rNTP_Threshold;} - rNTP_Threshold_t const& ref_rNTP_Threshold() const {return rNTP_Threshold;} - struct numberOfCellSpecificAntennaPorts_t : asn::enumerated<3, 0, true> - { - static constexpr const char* name() {return "numberOfCellSpecificAntennaPorts_t";} - using parent_t = asn::enumerated<3, 0, true>; - typedef enum { - one - ,two - ,four - } index_t; - - }; - - numberOfCellSpecificAntennaPorts_t& ref_numberOfCellSpecificAntennaPorts() {return numberOfCellSpecificAntennaPorts;} - numberOfCellSpecificAntennaPorts_t const& ref_numberOfCellSpecificAntennaPorts() const {return numberOfCellSpecificAntennaPorts;} - struct p_B_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "p_B_t";} - using parent_t = asn::integer<>; - - }; - - p_B_t& ref_p_B() {return p_B;} - p_B_t const& ref_p_B() const {return p_B;} - struct pDCCH_InterferenceImpact_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "pDCCH_InterferenceImpact_t";} - using parent_t = asn::integer<>; - - }; - - pDCCH_InterferenceImpact_t& ref_pDCCH_InterferenceImpact() {return pDCCH_InterferenceImpact;} - pDCCH_InterferenceImpact_t const& ref_pDCCH_InterferenceImpact() const {return pDCCH_InterferenceImpact;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(rNTP_PerPRB); - v(rNTP_Threshold); - v(numberOfCellSpecificAntennaPorts); - v(p_B); - v(pDCCH_InterferenceImpact); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(rNTP_PerPRB); - v(rNTP_Threshold); - v(numberOfCellSpecificAntennaPorts); - v(p_B); - v(pDCCH_InterferenceImpact); - v(iE_Extensions); - - }; - void clear() - { - rNTP_PerPRB.clear(); - rNTP_Threshold.clear(); - numberOfCellSpecificAntennaPorts.clear(); - p_B.clear(); - pDCCH_InterferenceImpact.clear(); - iE_Extensions.clear(); - - }; - private: - rNTP_PerPRB_t rNTP_PerPRB; - rNTP_Threshold_t rNTP_Threshold; - numberOfCellSpecificAntennaPorts_t numberOfCellSpecificAntennaPorts; - p_B_t p_B; - pDCCH_InterferenceImpact_t pDCCH_InterferenceImpact; - iE_Extensions_t iE_Extensions; - -}; -/* -ReportCharacteristics ::= BIT STRING (SIZE (32)) -*/ - -struct ReportCharacteristics : asn::bstring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "ReportCharacteristics";} - using parent_t = asn::bstring<>; - -}; - -/* -ReportingPeriodicityCSIR ::= ENUMERATED { - ms5, - ms10, - ms20, - ms40, - ms80, -... -} -*/ - -struct ReportingPeriodicityCSIR : asn::enumerated<5, 0, true> -{ - static constexpr const char* name() {return "ReportingPeriodicityCSIR";} - using parent_t = asn::enumerated<5, 0, true>; - typedef enum { - ms5 - ,ms10 - ,ms20 - ,ms40 - ,ms80 - } index_t; - -}; - -/* -ReportingPeriodicityRSRPMR ::= ENUMERATED { - one-hundred-20-ms, - two-hundred-40-ms, - four-hundred-80-ms, - six-hundred-40-ms, -... -} -*/ - -struct ReportingPeriodicityRSRPMR : asn::enumerated<4, 0, true> -{ - static constexpr const char* name() {return "ReportingPeriodicityRSRPMR";} - using parent_t = asn::enumerated<4, 0, true>; - typedef enum { - one_hundred_20_ms - ,two_hundred_40_ms - ,four_hundred_80_ms - ,six_hundred_40_ms - } index_t; - -}; - -/* -ResumeID ::= CHOICE { - non-truncated BIT STRING(SIZE(40)), - truncated BIT STRING(SIZE(24)), - ... -} -*/ - -struct ResumeID : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "ResumeID";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~ResumeID() {clear();} - struct non_truncated_t : asn::bstring<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "non_truncated_t";} - using parent_t = asn::bstring<>; - - }; - - struct truncated_t : asn::bstring<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "truncated_t";} - using parent_t = asn::bstring<>; - - }; - - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - non_truncated_t& select_non_truncated() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - non_truncated_t const* get_non_truncated() const { if(get_index() == 1) { return &var.as();} return nullptr; } - truncated_t& select_truncated() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - truncated_t const* get_truncated() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(non_truncated_t)]; - char dummy2[sizeof(truncated_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -S1TNLLoadIndicator-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct S1TNLLoadIndicator_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -S1TNLLoadIndicator ::= SEQUENCE { - dLS1TNLLoadIndicator LoadIndicator, - uLS1TNLLoadIndicator LoadIndicator, - iE-Extensions ProtocolExtensionContainer { {S1TNLLoadIndicator-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct S1TNLLoadIndicator : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "S1TNLLoadIndicator";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct dLS1TNLLoadIndicator_t : LoadIndicator - { - static constexpr const char* name() {return "dLS1TNLLoadIndicator_t";} - using parent_t = LoadIndicator; - - }; - dLS1TNLLoadIndicator_t& ref_dLS1TNLLoadIndicator() {return dLS1TNLLoadIndicator;} - dLS1TNLLoadIndicator_t const& ref_dLS1TNLLoadIndicator() const {return dLS1TNLLoadIndicator;} - struct uLS1TNLLoadIndicator_t : LoadIndicator - { - static constexpr const char* name() {return "uLS1TNLLoadIndicator_t";} - using parent_t = LoadIndicator; - - }; - uLS1TNLLoadIndicator_t& ref_uLS1TNLLoadIndicator() {return uLS1TNLLoadIndicator;} - uLS1TNLLoadIndicator_t const& ref_uLS1TNLLoadIndicator() const {return uLS1TNLLoadIndicator;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(dLS1TNLLoadIndicator); - v(uLS1TNLLoadIndicator); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(dLS1TNLLoadIndicator); - v(uLS1TNLLoadIndicator); - v(iE_Extensions); - - }; - void clear() - { - dLS1TNLLoadIndicator.clear(); - uLS1TNLLoadIndicator.clear(); - iE_Extensions.clear(); - - }; - private: - dLS1TNLLoadIndicator_t dLS1TNLLoadIndicator; - uLS1TNLLoadIndicator_t uLS1TNLLoadIndicator; - iE_Extensions_t iE_Extensions; - -}; -/* -SCGChangeIndication ::= ENUMERATED {pDCPCountWrapAround, pSCellChange, other, ...} -*/ - -struct SCGChangeIndication : asn::enumerated<3, 0, true> -{ - static constexpr const char* name() {return "SCGChangeIndication";} - using parent_t = asn::enumerated<3, 0, true>; - typedef enum { - pDCPCountWrapAround - ,pSCellChange - ,other - } index_t; - -}; - -/* -SCGConfigurationQuery ::= ENUMERATED {true,...} -*/ - -struct SCGConfigurationQuery : asn::enumerated<1, 0, true> -{ - static constexpr const char* name() {return "SCGConfigurationQuery";} - using parent_t = asn::enumerated<1, 0, true>; - typedef enum { - True - } index_t; - -}; - -/* -SGNB-Addition-Trigger-Ind ::= ENUMERATED { - sn-change, - inter-eNB-HO, - intra-eNB-HO, - ... -} -*/ - -struct SGNB_Addition_Trigger_Ind : asn::enumerated<3, 0, true> -{ - static constexpr const char* name() {return "SGNB-Addition-Trigger-Ind";} - using parent_t = asn::enumerated<3, 0, true>; - typedef enum { - sn_change - ,inter_eNB_HO - ,intra_eNB_HO - } index_t; - -}; - -/* -SIPTOBearerDeactivationIndication ::= ENUMERATED { - true, - ... -} -*/ - -struct SIPTOBearerDeactivationIndication : asn::enumerated<1, 0, true> -{ - static constexpr const char* name() {return "SIPTOBearerDeactivationIndication";} - using parent_t = asn::enumerated<1, 0, true>; - typedef enum { - True - } index_t; - -}; - -/* -SRBType ::= ENUMERATED {srb1, srb2, ...} -*/ - -struct SRBType : asn::enumerated<2, 0, true> -{ - static constexpr const char* name() {return "SRBType";} - using parent_t = asn::enumerated<2, 0, true>; - typedef enum { - srb1 - ,srb2 - } index_t; - -}; - -/* -SRVCCOperationPossible ::= ENUMERATED { - possible, - ... -} -*/ - -struct SRVCCOperationPossible : asn::enumerated<1, 0, true> -{ - static constexpr const char* name() {return "SRVCCOperationPossible";} - using parent_t = asn::enumerated<1, 0, true>; - typedef enum { - possible - } index_t; - -}; - -/* -ScheduledCommunicationTime-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct ScheduledCommunicationTime_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ScheduledCommunicationTime ::= SEQUENCE { - dayofWeek BIT STRING (SIZE(7)) OPTIONAL, - timeofDayStart INTEGER (0..86399, ...) OPTIONAL, - timeofDayEnd INTEGER (0..86399, ...) OPTIONAL, - iE-Extensions ProtocolExtensionContainer { { ScheduledCommunicationTime-ExtIEs}} OPTIONAL, - ... -} -*/ - -struct ScheduledCommunicationTime : asn::sequence<4, 0, true, 4> -{ - static constexpr const char* name() {return "ScheduledCommunicationTime";} - using parent_t = asn::sequence<4, 0, true, 4>; - struct dayofWeek_t : asn::bstring<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "dayofWeek_t";} - using parent_t = asn::bstring<>; - static constexpr bool optional = true; - - }; - - dayofWeek_t& set_dayofWeek() { dayofWeek.setpresent(true); return dayofWeek;} - dayofWeek_t const* get_dayofWeek() const {return dayofWeek.is_valid() ? &dayofWeek : nullptr;} - struct timeofDayStart_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "timeofDayStart_t";} - using parent_t = asn::integer<>; - static constexpr bool optional = true; - - }; - - timeofDayStart_t& set_timeofDayStart() { timeofDayStart.setpresent(true); return timeofDayStart;} - timeofDayStart_t const* get_timeofDayStart() const {return timeofDayStart.is_valid() ? &timeofDayStart : nullptr;} - struct timeofDayEnd_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "timeofDayEnd_t";} - using parent_t = asn::integer<>; - static constexpr bool optional = true; - - }; - - timeofDayEnd_t& set_timeofDayEnd() { timeofDayEnd.setpresent(true); return timeofDayEnd;} - timeofDayEnd_t const* get_timeofDayEnd() const {return timeofDayEnd.is_valid() ? &timeofDayEnd : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(dayofWeek); - v(timeofDayStart); - v(timeofDayEnd); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(dayofWeek); - v(timeofDayStart); - v(timeofDayEnd); - v(iE_Extensions); - - }; - void clear() - { - dayofWeek.clear(); - timeofDayStart.clear(); - timeofDayEnd.clear(); - iE_Extensions.clear(); - - }; - private: - dayofWeek_t dayofWeek; - timeofDayStart_t timeofDayStart; - timeofDayEnd_t timeofDayEnd; - iE_Extensions_t iE_Extensions; - -}; -/* -SeNBSecurityKey ::= BIT STRING (SIZE(256)) -*/ - -struct SeNBSecurityKey : asn::bstring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "SeNBSecurityKey";} - using parent_t = asn::bstring<>; - -}; - -/* -SeNBtoMeNBContainer ::= OCTET STRING -*/ - -struct SeNBtoMeNBContainer : asn::ostring<> -{ - static constexpr const char* name() {return "SeNBtoMeNBContainer";} - using parent_t = asn::ostring<>; - -}; - -/* -SecondaryRATUsageReport-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct SecondaryRATUsageReport_Item_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SecondaryRATUsageReport-Item ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - secondaryRATType ENUMERATED {nr, ...}, - e-RABUsageReportList E-RABUsageReportList, - iE-Extensions ProtocolExtensionContainer { {SecondaryRATUsageReport-Item-ExtIEs} } OPTIONAL, -... -} -*/ - -struct SecondaryRATUsageReport_Item : asn::sequence<4, 0, true, 1> -{ - static constexpr const char* name() {return "SecondaryRATUsageReport-Item";} - using parent_t = asn::sequence<4, 0, true, 1>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct secondaryRATType_t : asn::enumerated<1, 0, true> - { - static constexpr const char* name() {return "secondaryRATType_t";} - using parent_t = asn::enumerated<1, 0, true>; - typedef enum { - nr - } index_t; - - }; - - secondaryRATType_t& ref_secondaryRATType() {return secondaryRATType;} - secondaryRATType_t const& ref_secondaryRATType() const {return secondaryRATType;} - struct e_RABUsageReportList_t : E_RABUsageReportList - { - static constexpr const char* name() {return "e_RABUsageReportList_t";} - using parent_t = E_RABUsageReportList; - - }; - e_RABUsageReportList_t& ref_e_RABUsageReportList() {return e_RABUsageReportList;} - e_RABUsageReportList_t const& ref_e_RABUsageReportList() const {return e_RABUsageReportList;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(secondaryRATType); - v(e_RABUsageReportList); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(secondaryRATType); - v(e_RABUsageReportList); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - secondaryRATType.clear(); - e_RABUsageReportList.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - secondaryRATType_t secondaryRATType; - e_RABUsageReportList_t e_RABUsageReportList; - iE_Extensions_t iE_Extensions; - -}; -/* -SecondaryRATUsageReport-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-SecondaryRATUsageReport-Item CRITICALITY reject TYPE SecondaryRATUsageReport-Item PRESENCE mandatory}, - ... -} -*/ - -struct SecondaryRATUsageReport_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_SecondaryRATUsageReport_Item() { set(id_SecondaryRATUsageReport_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_SecondaryRATUsageReport_Item)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_SecondaryRATUsageReport_Item);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_SecondaryRATUsageReport_Item() { set(reject); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - SecondaryRATUsageReport_Item& select_id_SecondaryRATUsageReport_Item() { return set(1); } - SecondaryRATUsageReport_Item const* get_id_SecondaryRATUsageReport_Item() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_SecondaryRATUsageReport_Item()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(SecondaryRATUsageReport_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_SecondaryRATUsageReport_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SecondaryRATUsageReportList ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container {{SecondaryRATUsageReport-ItemIEs}} -*/ - -struct SecondaryRATUsageReportList_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "SecondaryRATUsageReportList_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct SecondaryRATUsageReportList : asn::sequenceof -{ - static constexpr const char* name() {return "SecondaryRATUsageReportList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -ServedCell-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct ServedCell_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ServedCell-Information-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-Number-of-Antennaports CRITICALITY ignore EXTENSION Number-of-Antennaports PRESENCE optional}| - { ID id-PRACH-Configuration CRITICALITY ignore EXTENSION PRACH-Configuration PRESENCE optional}| - { ID id-MBSFN-Subframe-Info CRITICALITY ignore EXTENSION MBSFN-Subframe-Infolist PRESENCE optional}| - { ID id-CSG-Id CRITICALITY ignore EXTENSION CSG-Id PRESENCE optional}| - { ID id-MBMS-Service-Area-List CRITICALITY ignore EXTENSION MBMS-Service-Area-Identity-List PRESENCE optional}| - { ID id-MultibandInfoList CRITICALITY ignore EXTENSION MultibandInfoList PRESENCE optional}| - { ID id-FreqBandIndicatorPriority CRITICALITY ignore EXTENSION FreqBandIndicatorPriority PRESENCE optional}| - { ID id-BandwidthReducedSI CRITICALITY ignore EXTENSION BandwidthReducedSI PRESENCE optional}| - { ID id-ProtectedEUTRAResourceIndication CRITICALITY ignore EXTENSION ProtectedEUTRAResourceIndication PRESENCE optional}, - ... -} -*/ - -struct ServedCell_Information_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 10; } - void clear() {type = 0;} - void select_id_Number_of_Antennaports() { set(id_Number_of_Antennaports); type=1;} - void select_id_PRACH_Configuration() { set(id_PRACH_Configuration); type=2;} - void select_id_MBSFN_Subframe_Info() { set(id_MBSFN_Subframe_Info); type=3;} - void select_id_CSG_Id() { set(id_CSG_Id); type=4;} - void select_id_MBMS_Service_Area_List() { set(id_MBMS_Service_Area_List); type=5;} - void select_id_MultibandInfoList() { set(id_MultibandInfoList); type=6;} - void select_id_FreqBandIndicatorPriority() { set(id_FreqBandIndicatorPriority); type=7;} - void select_id_BandwidthReducedSI() { set(id_BandwidthReducedSI); type=8;} - void select_id_ProtectedEUTRAResourceIndication() { set(id_ProtectedEUTRAResourceIndication); type=9;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_Number_of_Antennaports)) { type = 1; return true; } - else if(equal(id_PRACH_Configuration)) { type = 2; return true; } - else if(equal(id_MBSFN_Subframe_Info)) { type = 3; return true; } - else if(equal(id_CSG_Id)) { type = 4; return true; } - else if(equal(id_MBMS_Service_Area_List)) { type = 5; return true; } - else if(equal(id_MultibandInfoList)) { type = 6; return true; } - else if(equal(id_FreqBandIndicatorPriority)) { type = 7; return true; } - else if(equal(id_BandwidthReducedSI)) { type = 8; return true; } - else if(equal(id_ProtectedEUTRAResourceIndication)) { type = 9; return true; } - else { type = 10; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_Number_of_Antennaports);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_PRACH_Configuration);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_MBSFN_Subframe_Info);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_CSG_Id);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_MBMS_Service_Area_List);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_MultibandInfoList);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(id_FreqBandIndicatorPriority);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(id_BandwidthReducedSI);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(id_ProtectedEUTRAResourceIndication);} return false; - case 10: type = 10; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 10; } - void clear() {type = 0;} - void select_id_Number_of_Antennaports() { set(ignore); type=1;} - void select_id_PRACH_Configuration() { set(ignore); type=2;} - void select_id_MBSFN_Subframe_Info() { set(ignore); type=3;} - void select_id_CSG_Id() { set(ignore); type=4;} - void select_id_MBMS_Service_Area_List() { set(ignore); type=5;} - void select_id_MultibandInfoList() { set(ignore); type=6;} - void select_id_FreqBandIndicatorPriority() { set(ignore); type=7;} - void select_id_BandwidthReducedSI() { set(ignore); type=8;} - void select_id_ProtectedEUTRAResourceIndication() { set(ignore); type=9;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else if(equal(ignore)) { type = 6; return true; } - else if(equal(ignore)) { type = 7; return true; } - else if(equal(ignore)) { type = 8; return true; } - else if(equal(ignore)) { type = 9; return true; } - else { type = 10; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(ignore);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(ignore);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(ignore);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(ignore);} return false; - case 10: type = 10; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - Number_of_Antennaports& select_id_Number_of_Antennaports() { return set(1); } - Number_of_Antennaports const* get_id_Number_of_Antennaports() const { return get(1); } - PRACH_Configuration& select_id_PRACH_Configuration() { return set(2); } - PRACH_Configuration const* get_id_PRACH_Configuration() const { return get(2); } - MBSFN_Subframe_Infolist& select_id_MBSFN_Subframe_Info() { return set(3); } - MBSFN_Subframe_Infolist const* get_id_MBSFN_Subframe_Info() const { return get(3); } - CSG_Id& select_id_CSG_Id() { return set(4); } - CSG_Id const* get_id_CSG_Id() const { return get(4); } - MBMS_Service_Area_Identity_List& select_id_MBMS_Service_Area_List() { return set(5); } - MBMS_Service_Area_Identity_List const* get_id_MBMS_Service_Area_List() const { return get(5); } - MultibandInfoList& select_id_MultibandInfoList() { return set(6); } - MultibandInfoList const* get_id_MultibandInfoList() const { return get(6); } - FreqBandIndicatorPriority& select_id_FreqBandIndicatorPriority() { return set(7); } - FreqBandIndicatorPriority const* get_id_FreqBandIndicatorPriority() const { return get(7); } - BandwidthReducedSI& select_id_BandwidthReducedSI() { return set(8); } - BandwidthReducedSI const* get_id_BandwidthReducedSI() const { return get(8); } - ProtectedEUTRAResourceIndication& select_id_ProtectedEUTRAResourceIndication() { return set(9); } - ProtectedEUTRAResourceIndication const* get_id_ProtectedEUTRAResourceIndication() const { return get(9); } - bool is_unknown() const { return type == 10; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - case 7: var.destroy(); break; - case 8: var.destroy(); break; - case 9: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - v.template operator()(7); - v.template operator()(8); - v.template operator()(9); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_Number_of_Antennaports()); return true; - case 2: v(select_id_PRACH_Configuration()); return true; - case 3: v(select_id_MBSFN_Subframe_Info()); return true; - case 4: v(select_id_CSG_Id()); return true; - case 5: v(select_id_MBMS_Service_Area_List()); return true; - case 6: v(select_id_MultibandInfoList()); return true; - case 7: v(select_id_FreqBandIndicatorPriority()); return true; - case 8: v(select_id_BandwidthReducedSI()); return true; - case 9: v(select_id_ProtectedEUTRAResourceIndication()); return true; - case 10: if(type != 10) {clear(); asn::base::set();} type = 10; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - case 7: v(var.as()); return true; - case 8: v(var.as()); return true; - case 9: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(BandwidthReducedSI)]; - char dummy2[sizeof(CSG_Id)]; - char dummy3[sizeof(FreqBandIndicatorPriority)]; - char dummy4[sizeof(MBMS_Service_Area_Identity_List)]; - char dummy5[sizeof(MBSFN_Subframe_Infolist)]; - char dummy6[sizeof(MultibandInfoList)]; - char dummy7[sizeof(Number_of_Antennaports)]; - char dummy8[sizeof(PRACH_Configuration)]; - char dummy9[sizeof(ProtectedEUTRAResourceIndication)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 10; } - void clear() {type = 0;} - void select_id_Number_of_Antennaports() { set(optional); type=1;} - void select_id_PRACH_Configuration() { set(optional); type=2;} - void select_id_MBSFN_Subframe_Info() { set(optional); type=3;} - void select_id_CSG_Id() { set(optional); type=4;} - void select_id_MBMS_Service_Area_List() { set(optional); type=5;} - void select_id_MultibandInfoList() { set(optional); type=6;} - void select_id_FreqBandIndicatorPriority() { set(optional); type=7;} - void select_id_BandwidthReducedSI() { set(optional); type=8;} - void select_id_ProtectedEUTRAResourceIndication() { set(optional); type=9;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else if(equal(optional)) { type = 7; return true; } - else if(equal(optional)) { type = 8; return true; } - else if(equal(optional)) { type = 9; return true; } - else { type = 10; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(optional);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(optional);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(optional);} return false; - case 10: type = 10; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ServedCell-Information ::= SEQUENCE { - pCI PCI, - cellId ECGI, - tAC TAC, - broadcastPLMNs BroadcastPLMNs-Item, - eUTRA-Mode-Info EUTRA-Mode-Info, - iE-Extensions ProtocolExtensionContainer { {ServedCell-Information-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct ServedCell_Information : asn::sequence<6, 0, true, 1> -{ - static constexpr const char* name() {return "ServedCell-Information";} - using parent_t = asn::sequence<6, 0, true, 1>; - struct pCI_t : PCI - { - static constexpr const char* name() {return "pCI_t";} - using parent_t = PCI; - - }; - pCI_t& ref_pCI() {return pCI;} - pCI_t const& ref_pCI() const {return pCI;} - struct cellId_t : ECGI - { - static constexpr const char* name() {return "cellId_t";} - using parent_t = ECGI; - - }; - cellId_t& ref_cellId() {return cellId;} - cellId_t const& ref_cellId() const {return cellId;} - struct tAC_t : TAC - { - static constexpr const char* name() {return "tAC_t";} - using parent_t = TAC; - - }; - tAC_t& ref_tAC() {return tAC;} - tAC_t const& ref_tAC() const {return tAC;} - struct broadcastPLMNs_t : BroadcastPLMNs_Item - { - static constexpr const char* name() {return "broadcastPLMNs_t";} - using parent_t = BroadcastPLMNs_Item; - - }; - broadcastPLMNs_t& ref_broadcastPLMNs() {return broadcastPLMNs;} - broadcastPLMNs_t const& ref_broadcastPLMNs() const {return broadcastPLMNs;} - struct eUTRA_Mode_Info_t : EUTRA_Mode_Info - { - static constexpr const char* name() {return "eUTRA_Mode_Info_t";} - using parent_t = EUTRA_Mode_Info; - - }; - eUTRA_Mode_Info_t& ref_eUTRA_Mode_Info() {return eUTRA_Mode_Info;} - eUTRA_Mode_Info_t const& ref_eUTRA_Mode_Info() const {return eUTRA_Mode_Info;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(pCI); - v(cellId); - v(tAC); - v(broadcastPLMNs); - v(eUTRA_Mode_Info); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(pCI); - v(cellId); - v(tAC); - v(broadcastPLMNs); - v(eUTRA_Mode_Info); - v(iE_Extensions); - - }; - void clear() - { - pCI.clear(); - cellId.clear(); - tAC.clear(); - broadcastPLMNs.clear(); - eUTRA_Mode_Info.clear(); - iE_Extensions.clear(); - - }; - private: - pCI_t pCI; - cellId_t cellId; - tAC_t tAC; - broadcastPLMNs_t broadcastPLMNs; - eUTRA_Mode_Info_t eUTRA_Mode_Info; - iE_Extensions_t iE_Extensions; - -}; -/* -ServedCells ::= SEQUENCE (SIZE (1.. maxCellineNB)) OF SEQUENCE { - servedCellInfo ServedCell-Information, - neighbour-Info Neighbour-Information OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {ServedCell-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct ServedCells_elm : asn::sequence<3, 0, true, 2> -{ - static constexpr const char* name() {return "ServedCells_elm";} - using parent_t = asn::sequence<3, 0, true, 2>; - struct servedCellInfo_t : ServedCell_Information - { - static constexpr const char* name() {return "servedCellInfo_t";} - using parent_t = ServedCell_Information; - - }; - servedCellInfo_t& ref_servedCellInfo() {return servedCellInfo;} - servedCellInfo_t const& ref_servedCellInfo() const {return servedCellInfo;} - struct neighbour_Info_t : Neighbour_Information - { - static constexpr const char* name() {return "neighbour_Info_t";} - using parent_t = Neighbour_Information; - static constexpr bool optional = true; - - }; - neighbour_Info_t& set_neighbour_Info() { neighbour_Info.setpresent(true); return neighbour_Info;} - neighbour_Info_t const* get_neighbour_Info() const {return neighbour_Info.is_valid() ? &neighbour_Info : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(servedCellInfo); - v(neighbour_Info); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(servedCellInfo); - v(neighbour_Info); - v(iE_Extensions); - - }; - void clear() - { - servedCellInfo.clear(); - neighbour_Info.clear(); - iE_Extensions.clear(); - - }; - private: - servedCellInfo_t servedCellInfo; - neighbour_Info_t neighbour_Info; - iE_Extensions_t iE_Extensions; - -}; -struct ServedCells : asn::sequenceof -{ - static constexpr const char* name() {return "ServedCells";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -ServiceType ::= ENUMERATED{ - qMC-for-streaming-service, - qMC-for-MTSI-service, - ... -} -*/ - -struct ServiceType : asn::enumerated<2, 0, true> -{ - static constexpr const char* name() {return "ServiceType";} - using parent_t = asn::enumerated<2, 0, true>; - typedef enum { - qMC_for_streaming_service - ,qMC_for_MTSI_service - } index_t; - -}; - -/* -SgNB-UE-X2AP-ID ::= INTEGER (0..4294967295) -*/ - -struct SgNB_UE_X2AP_ID : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "SgNB-UE-X2AP-ID";} - using parent_t = asn::integer<>; - -}; - -/* -SgNBCoordinationAssistanceInformation ::= ENUMERATED{ - coordination-not-required, - ... -} -*/ - -struct SgNBCoordinationAssistanceInformation : asn::enumerated<1, 0, true> -{ - static constexpr const char* name() {return "SgNBCoordinationAssistanceInformation";} - using parent_t = asn::enumerated<1, 0, true>; - typedef enum { - coordination_not_required - } index_t; - -}; - -/* -SgNBResourceCoordinationInformationExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-ECGI CRITICALITY ignore EXTENSION ECGI PRESENCE optional}| - { ID id-SgNBCoordinationAssistanceInformation CRITICALITY reject EXTENSION SgNBCoordinationAssistanceInformation PRESENCE optional}, - ... -} -*/ - -struct SgNBResourceCoordinationInformationExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_ECGI() { set(id_ECGI); type=1;} - void select_id_SgNBCoordinationAssistanceInformation() { set(id_SgNBCoordinationAssistanceInformation); type=2;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_ECGI)) { type = 1; return true; } - else if(equal(id_SgNBCoordinationAssistanceInformation)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_ECGI);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SgNBCoordinationAssistanceInformation);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_ECGI() { set(ignore); type=1;} - void select_id_SgNBCoordinationAssistanceInformation() { set(reject); type=2;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - ECGI& select_id_ECGI() { return set(1); } - ECGI const* get_id_ECGI() const { return get(1); } - SgNBCoordinationAssistanceInformation& select_id_SgNBCoordinationAssistanceInformation() { return set(2); } - SgNBCoordinationAssistanceInformation const* get_id_SgNBCoordinationAssistanceInformation() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_ECGI()); return true; - case 2: v(select_id_SgNBCoordinationAssistanceInformation()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(ECGI)]; - char dummy2[sizeof(SgNBCoordinationAssistanceInformation)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_ECGI() { set(optional); type=1;} - void select_id_SgNBCoordinationAssistanceInformation() { set(optional); type=2;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SgNBResourceCoordinationInformation ::= SEQUENCE { - nR-CGI NRCGI, - uLCoordinationInformation BIT STRING (SIZE(6..4400, ...)), - dLCoordinationInformation BIT STRING (SIZE(6..4400, ...)) OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {SgNBResourceCoordinationInformationExtIEs} } OPTIONAL, - ... -} -*/ - -struct SgNBResourceCoordinationInformation : asn::sequence<4, 0, true, 2> -{ - static constexpr const char* name() {return "SgNBResourceCoordinationInformation";} - using parent_t = asn::sequence<4, 0, true, 2>; - struct nR_CGI_t : NRCGI - { - static constexpr const char* name() {return "nR_CGI_t";} - using parent_t = NRCGI; - - }; - nR_CGI_t& ref_nR_CGI() {return nR_CGI;} - nR_CGI_t const& ref_nR_CGI() const {return nR_CGI;} - struct uLCoordinationInformation_t : asn::bstring<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "uLCoordinationInformation_t";} - using parent_t = asn::bstring<>; - - }; - - uLCoordinationInformation_t& ref_uLCoordinationInformation() {return uLCoordinationInformation;} - uLCoordinationInformation_t const& ref_uLCoordinationInformation() const {return uLCoordinationInformation;} - struct dLCoordinationInformation_t : asn::bstring<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "dLCoordinationInformation_t";} - using parent_t = asn::bstring<>; - static constexpr bool optional = true; - - }; - - dLCoordinationInformation_t& set_dLCoordinationInformation() { dLCoordinationInformation.setpresent(true); return dLCoordinationInformation;} - dLCoordinationInformation_t const* get_dLCoordinationInformation() const {return dLCoordinationInformation.is_valid() ? &dLCoordinationInformation : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(nR_CGI); - v(uLCoordinationInformation); - v(dLCoordinationInformation); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(nR_CGI); - v(uLCoordinationInformation); - v(dLCoordinationInformation); - v(iE_Extensions); - - }; - void clear() - { - nR_CGI.clear(); - uLCoordinationInformation.clear(); - dLCoordinationInformation.clear(); - iE_Extensions.clear(); - - }; - private: - nR_CGI_t nR_CGI; - uLCoordinationInformation_t uLCoordinationInformation; - dLCoordinationInformation_t dLCoordinationInformation; - iE_Extensions_t iE_Extensions; - -}; -/* -SgNBSecurityKey ::= BIT STRING (SIZE(256)) -*/ - -struct SgNBSecurityKey : asn::bstring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "SgNBSecurityKey";} - using parent_t = asn::bstring<>; - -}; - -/* -SgNBtoMeNBContainer ::= OCTET STRING -*/ - -struct SgNBtoMeNBContainer : asn::ostring<> -{ - static constexpr const char* name() {return "SgNBtoMeNBContainer";} - using parent_t = asn::ostring<>; - -}; - -/* -ShortMAC-I ::= BIT STRING (SIZE(16)) -*/ - -struct ShortMAC_I : asn::bstring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "ShortMAC-I";} - using parent_t = asn::bstring<>; - -}; - -/* -SpectrumSharingGroupID ::= INTEGER (1..maxCellineNB) -*/ - -struct SpectrumSharingGroupID : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "SpectrumSharingGroupID";} - using parent_t = asn::integer<>; - -}; - -/* -SplitSRB-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct SplitSRB_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SplitSRB ::= SEQUENCE { - rrcContainer RRCContainer OPTIONAL, - srbType SRBType, - deliveryStatus DeliveryStatus OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {SplitSRB-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct SplitSRB : asn::sequence<4, 0, true, 3> -{ - static constexpr const char* name() {return "SplitSRB";} - using parent_t = asn::sequence<4, 0, true, 3>; - struct rrcContainer_t : RRCContainer - { - static constexpr const char* name() {return "rrcContainer_t";} - using parent_t = RRCContainer; - static constexpr bool optional = true; - - }; - rrcContainer_t& set_rrcContainer() { rrcContainer.setpresent(true); return rrcContainer;} - rrcContainer_t const* get_rrcContainer() const {return rrcContainer.is_valid() ? &rrcContainer : nullptr;} - struct srbType_t : SRBType - { - static constexpr const char* name() {return "srbType_t";} - using parent_t = SRBType; - - }; - srbType_t& ref_srbType() {return srbType;} - srbType_t const& ref_srbType() const {return srbType;} - struct deliveryStatus_t : DeliveryStatus - { - static constexpr const char* name() {return "deliveryStatus_t";} - using parent_t = DeliveryStatus; - static constexpr bool optional = true; - - }; - deliveryStatus_t& set_deliveryStatus() { deliveryStatus.setpresent(true); return deliveryStatus;} - deliveryStatus_t const* get_deliveryStatus() const {return deliveryStatus.is_valid() ? &deliveryStatus : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(rrcContainer); - v(srbType); - v(deliveryStatus); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(rrcContainer); - v(srbType); - v(deliveryStatus); - v(iE_Extensions); - - }; - void clear() - { - rrcContainer.clear(); - srbType.clear(); - deliveryStatus.clear(); - iE_Extensions.clear(); - - }; - private: - rrcContainer_t rrcContainer; - srbType_t srbType; - deliveryStatus_t deliveryStatus; - iE_Extensions_t iE_Extensions; - -}; -/* -SplitSRBs ::= ENUMERATED {srb1, srb2, srb1and2, ...} -*/ - -struct SplitSRBs : asn::enumerated<3, 0, true> -{ - static constexpr const char* name() {return "SplitSRBs";} - using parent_t = asn::enumerated<3, 0, true>; - typedef enum { - srb1 - ,srb2 - ,srb1and2 - } index_t; - -}; - -/* -SubscriberProfileIDforRFP ::= INTEGER (1..256) -*/ - -struct SubscriberProfileIDforRFP : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "SubscriberProfileIDforRFP";} - using parent_t = asn::integer<>; - -}; - -/* -Subscription-Based-UE-DifferentiationInfo-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct Subscription_Based_UE_DifferentiationInfo_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -Subscription-Based-UE-DifferentiationInfo ::= SEQUENCE { - periodicCommunicationIndicator ENUMERATED {periodically, ondemand, ...} OPTIONAL, - periodicTime INTEGER (1..3600, ...) OPTIONAL, - scheduledCommunicationTime ScheduledCommunicationTime OPTIONAL, - stationaryIndication ENUMERATED {stationary, mobile, ...} OPTIONAL, - trafficProfile ENUMERATED {single-packet, dual-packets, multiple-packets, ...} OPTIONAL, - batteryIndication ENUMERATED {battery-powered, battery-powered-not-rechargeable-or-replaceable, not-battery-powered, ...} OPTIONAL, - iE-Extensions ProtocolExtensionContainer { { Subscription-Based-UE-DifferentiationInfo-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct Subscription_Based_UE_DifferentiationInfo : asn::sequence<7, 0, true, 7> -{ - static constexpr const char* name() {return "Subscription-Based-UE-DifferentiationInfo";} - using parent_t = asn::sequence<7, 0, true, 7>; - struct periodicCommunicationIndicator_t : asn::enumerated<2, 0, true> - { - static constexpr const char* name() {return "periodicCommunicationIndicator_t";} - using parent_t = asn::enumerated<2, 0, true>; - static constexpr bool optional = true; - typedef enum { - periodically - ,ondemand - } index_t; - - }; - - periodicCommunicationIndicator_t& set_periodicCommunicationIndicator() { periodicCommunicationIndicator.setpresent(true); return periodicCommunicationIndicator;} - periodicCommunicationIndicator_t const* get_periodicCommunicationIndicator() const {return periodicCommunicationIndicator.is_valid() ? &periodicCommunicationIndicator : nullptr;} - struct periodicTime_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "periodicTime_t";} - using parent_t = asn::integer<>; - static constexpr bool optional = true; - - }; - - periodicTime_t& set_periodicTime() { periodicTime.setpresent(true); return periodicTime;} - periodicTime_t const* get_periodicTime() const {return periodicTime.is_valid() ? &periodicTime : nullptr;} - struct scheduledCommunicationTime_t : ScheduledCommunicationTime - { - static constexpr const char* name() {return "scheduledCommunicationTime_t";} - using parent_t = ScheduledCommunicationTime; - static constexpr bool optional = true; - - }; - scheduledCommunicationTime_t& set_scheduledCommunicationTime() { scheduledCommunicationTime.setpresent(true); return scheduledCommunicationTime;} - scheduledCommunicationTime_t const* get_scheduledCommunicationTime() const {return scheduledCommunicationTime.is_valid() ? &scheduledCommunicationTime : nullptr;} - struct stationaryIndication_t : asn::enumerated<2, 0, true> - { - static constexpr const char* name() {return "stationaryIndication_t";} - using parent_t = asn::enumerated<2, 0, true>; - static constexpr bool optional = true; - typedef enum { - stationary - ,mobile - } index_t; - - }; - - stationaryIndication_t& set_stationaryIndication() { stationaryIndication.setpresent(true); return stationaryIndication;} - stationaryIndication_t const* get_stationaryIndication() const {return stationaryIndication.is_valid() ? &stationaryIndication : nullptr;} - struct trafficProfile_t : asn::enumerated<3, 0, true> - { - static constexpr const char* name() {return "trafficProfile_t";} - using parent_t = asn::enumerated<3, 0, true>; - static constexpr bool optional = true; - typedef enum { - single_packet - ,dual_packets - ,multiple_packets - } index_t; - - }; - - trafficProfile_t& set_trafficProfile() { trafficProfile.setpresent(true); return trafficProfile;} - trafficProfile_t const* get_trafficProfile() const {return trafficProfile.is_valid() ? &trafficProfile : nullptr;} - struct batteryIndication_t : asn::enumerated<3, 0, true> - { - static constexpr const char* name() {return "batteryIndication_t";} - using parent_t = asn::enumerated<3, 0, true>; - static constexpr bool optional = true; - typedef enum { - battery_powered - ,battery_powered_not_rechargeable_or_replaceable - ,not_battery_powered - } index_t; - - }; - - batteryIndication_t& set_batteryIndication() { batteryIndication.setpresent(true); return batteryIndication;} - batteryIndication_t const* get_batteryIndication() const {return batteryIndication.is_valid() ? &batteryIndication : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(periodicCommunicationIndicator); - v(periodicTime); - v(scheduledCommunicationTime); - v(stationaryIndication); - v(trafficProfile); - v(batteryIndication); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(periodicCommunicationIndicator); - v(periodicTime); - v(scheduledCommunicationTime); - v(stationaryIndication); - v(trafficProfile); - v(batteryIndication); - v(iE_Extensions); - - }; - void clear() - { - periodicCommunicationIndicator.clear(); - periodicTime.clear(); - scheduledCommunicationTime.clear(); - stationaryIndication.clear(); - trafficProfile.clear(); - batteryIndication.clear(); - iE_Extensions.clear(); - - }; - private: - periodicCommunicationIndicator_t periodicCommunicationIndicator; - periodicTime_t periodicTime; - scheduledCommunicationTime_t scheduledCommunicationTime; - stationaryIndication_t stationaryIndication; - trafficProfile_t trafficProfile; - batteryIndication_t batteryIndication; - iE_Extensions_t iE_Extensions; - -}; -/* -TargetCellInUTRAN ::= OCTET STRING -- This IE is to be encoded according to the UTRAN Cell ID in the Last Visited UTRAN Cell Information IE in TS 25.413 [24] -*/ - -struct TargetCellInUTRAN : asn::ostring<> -{ - static constexpr const char* name() {return "TargetCellInUTRAN";} - using parent_t = asn::ostring<>; - -}; - -/* -TargeteNBtoSource-eNBTransparentContainer ::= OCTET STRING -*/ - -struct TargeteNBtoSource_eNBTransparentContainer : asn::ostring<> -{ - static constexpr const char* name() {return "TargeteNBtoSource-eNBTransparentContainer";} - using parent_t = asn::ostring<>; - -}; - -/* -TimeToWait ::= ENUMERATED { - v1s, - v2s, - v5s, - v10s, - v20s, - v60s, - ... -} -*/ - -struct TimeToWait : asn::enumerated<6, 0, true> -{ - static constexpr const char* name() {return "TimeToWait";} - using parent_t = asn::enumerated<6, 0, true>; - typedef enum { - v1s - ,v2s - ,v5s - ,v10s - ,v20s - ,v60s - } index_t; - -}; - -/* -TraceDepth ::= ENUMERATED { - minimum, - medium, - maximum, - minimumWithoutVendorSpecificExtension, - mediumWithoutVendorSpecificExtension, - maximumWithoutVendorSpecificExtension, - ... -} -*/ - -struct TraceDepth : asn::enumerated<6, 0, true> -{ - static constexpr const char* name() {return "TraceDepth";} - using parent_t = asn::enumerated<6, 0, true>; - typedef enum { - minimum - ,medium - ,maximum - ,minimumWithoutVendorSpecificExtension - ,mediumWithoutVendorSpecificExtension - ,maximumWithoutVendorSpecificExtension - } index_t; - -}; - -/* -TraceCollectionEntityIPAddress ::= BIT STRING (SIZE(1..160, ...)) -*/ - -struct TraceCollectionEntityIPAddress : asn::bstring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "TraceCollectionEntityIPAddress";} - using parent_t = asn::bstring<>; - -}; - -/* -UEAppLayerMeasConfig-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - {ID id-serviceType CRITICALITY ignore EXTENSION ServiceType PRESENCE optional}, - ... -} -*/ - -struct UEAppLayerMeasConfig_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_serviceType() { set(id_serviceType); type=1;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_serviceType)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_serviceType);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_serviceType() { set(ignore); type=1;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - ServiceType& select_id_serviceType() { return set(1); } - ServiceType const* get_id_serviceType() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_serviceType()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(ServiceType)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_serviceType() { set(optional); type=1;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -UEAppLayerMeasConfig ::= SEQUENCE { - containerForAppLayerMeasConfig OCTET STRING (SIZE(1..1000)), - areaScopeOfQMC AreaScopeOfQMC, - iE-Extensions ProtocolExtensionContainer { {UEAppLayerMeasConfig-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct UEAppLayerMeasConfig : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "UEAppLayerMeasConfig";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct containerForAppLayerMeasConfig_t : asn::ostring<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "containerForAppLayerMeasConfig_t";} - using parent_t = asn::ostring<>; - - }; - - containerForAppLayerMeasConfig_t& ref_containerForAppLayerMeasConfig() {return containerForAppLayerMeasConfig;} - containerForAppLayerMeasConfig_t const& ref_containerForAppLayerMeasConfig() const {return containerForAppLayerMeasConfig;} - struct areaScopeOfQMC_t : AreaScopeOfQMC - { - static constexpr const char* name() {return "areaScopeOfQMC_t";} - using parent_t = AreaScopeOfQMC; - - }; - areaScopeOfQMC_t& ref_areaScopeOfQMC() {return areaScopeOfQMC;} - areaScopeOfQMC_t const& ref_areaScopeOfQMC() const {return areaScopeOfQMC;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(containerForAppLayerMeasConfig); - v(areaScopeOfQMC); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(containerForAppLayerMeasConfig); - v(areaScopeOfQMC); - v(iE_Extensions); - - }; - void clear() - { - containerForAppLayerMeasConfig.clear(); - areaScopeOfQMC.clear(); - iE_Extensions.clear(); - - }; - private: - containerForAppLayerMeasConfig_t containerForAppLayerMeasConfig; - areaScopeOfQMC_t areaScopeOfQMC; - iE_Extensions_t iE_Extensions; - -}; -/* -TraceActivation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-MDTConfiguration CRITICALITY ignore EXTENSION MDT-Configuration PRESENCE optional}| - { ID id-UEAppLayerMeasConfig CRITICALITY ignore EXTENSION UEAppLayerMeasConfig PRESENCE optional}, - ... -} -*/ - -struct TraceActivation_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_MDTConfiguration() { set(id_MDTConfiguration); type=1;} - void select_id_UEAppLayerMeasConfig() { set(id_UEAppLayerMeasConfig); type=2;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MDTConfiguration)) { type = 1; return true; } - else if(equal(id_UEAppLayerMeasConfig)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MDTConfiguration);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_UEAppLayerMeasConfig);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_MDTConfiguration() { set(ignore); type=1;} - void select_id_UEAppLayerMeasConfig() { set(ignore); type=2;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - MDT_Configuration& select_id_MDTConfiguration() { return set(1); } - MDT_Configuration const* get_id_MDTConfiguration() const { return get(1); } - UEAppLayerMeasConfig& select_id_UEAppLayerMeasConfig() { return set(2); } - UEAppLayerMeasConfig const* get_id_UEAppLayerMeasConfig() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MDTConfiguration()); return true; - case 2: v(select_id_UEAppLayerMeasConfig()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(MDT_Configuration)]; - char dummy2[sizeof(UEAppLayerMeasConfig)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_MDTConfiguration() { set(optional); type=1;} - void select_id_UEAppLayerMeasConfig() { set(optional); type=2;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -TraceActivation ::= SEQUENCE { - eUTRANTraceID EUTRANTraceID, - interfacesToTrace InterfacesToTrace, -traceDepth TraceDepth, -traceCollectionEntityIPAddress TraceCollectionEntityIPAddress, - iE-Extensions ProtocolExtensionContainer { {TraceActivation-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct TraceActivation : asn::sequence<5, 0, true, 1> -{ - static constexpr const char* name() {return "TraceActivation";} - using parent_t = asn::sequence<5, 0, true, 1>; - struct eUTRANTraceID_t : EUTRANTraceID - { - static constexpr const char* name() {return "eUTRANTraceID_t";} - using parent_t = EUTRANTraceID; - - }; - eUTRANTraceID_t& ref_eUTRANTraceID() {return eUTRANTraceID;} - eUTRANTraceID_t const& ref_eUTRANTraceID() const {return eUTRANTraceID;} - struct interfacesToTrace_t : InterfacesToTrace - { - static constexpr const char* name() {return "interfacesToTrace_t";} - using parent_t = InterfacesToTrace; - - }; - interfacesToTrace_t& ref_interfacesToTrace() {return interfacesToTrace;} - interfacesToTrace_t const& ref_interfacesToTrace() const {return interfacesToTrace;} - struct traceDepth_t : TraceDepth - { - static constexpr const char* name() {return "traceDepth_t";} - using parent_t = TraceDepth; - - }; - traceDepth_t& ref_traceDepth() {return traceDepth;} - traceDepth_t const& ref_traceDepth() const {return traceDepth;} - struct traceCollectionEntityIPAddress_t : TraceCollectionEntityIPAddress - { - static constexpr const char* name() {return "traceCollectionEntityIPAddress_t";} - using parent_t = TraceCollectionEntityIPAddress; - - }; - traceCollectionEntityIPAddress_t& ref_traceCollectionEntityIPAddress() {return traceCollectionEntityIPAddress;} - traceCollectionEntityIPAddress_t const& ref_traceCollectionEntityIPAddress() const {return traceCollectionEntityIPAddress;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(eUTRANTraceID); - v(interfacesToTrace); - v(traceDepth); - v(traceCollectionEntityIPAddress); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(eUTRANTraceID); - v(interfacesToTrace); - v(traceDepth); - v(traceCollectionEntityIPAddress); - v(iE_Extensions); - - }; - void clear() - { - eUTRANTraceID.clear(); - interfacesToTrace.clear(); - traceDepth.clear(); - traceCollectionEntityIPAddress.clear(); - iE_Extensions.clear(); - - }; - private: - eUTRANTraceID_t eUTRANTraceID; - interfacesToTrace_t interfacesToTrace; - traceDepth_t traceDepth; - traceCollectionEntityIPAddress_t traceCollectionEntityIPAddress; - iE_Extensions_t iE_Extensions; - -}; -/* -Tunnel-Information-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct Tunnel_Information_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -TunnelInformation ::= SEQUENCE { - transportLayerAddress TransportLayerAddress, - uDP-Port-Number Port-Number OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {Tunnel-Information-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct TunnelInformation : asn::sequence<3, 0, true, 2> -{ - static constexpr const char* name() {return "TunnelInformation";} - using parent_t = asn::sequence<3, 0, true, 2>; - struct transportLayerAddress_t : TransportLayerAddress - { - static constexpr const char* name() {return "transportLayerAddress_t";} - using parent_t = TransportLayerAddress; - - }; - transportLayerAddress_t& ref_transportLayerAddress() {return transportLayerAddress;} - transportLayerAddress_t const& ref_transportLayerAddress() const {return transportLayerAddress;} - struct uDP_Port_Number_t : Port_Number - { - static constexpr const char* name() {return "uDP_Port_Number_t";} - using parent_t = Port_Number; - static constexpr bool optional = true; - - }; - uDP_Port_Number_t& set_uDP_Port_Number() { uDP_Port_Number.setpresent(true); return uDP_Port_Number;} - uDP_Port_Number_t const* get_uDP_Port_Number() const {return uDP_Port_Number.is_valid() ? &uDP_Port_Number : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(transportLayerAddress); - v(uDP_Port_Number); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(transportLayerAddress); - v(uDP_Port_Number); - v(iE_Extensions); - - }; - void clear() - { - transportLayerAddress.clear(); - uDP_Port_Number.clear(); - iE_Extensions.clear(); - - }; - private: - transportLayerAddress_t transportLayerAddress; - uDP_Port_Number_t uDP_Port_Number; - iE_Extensions_t iE_Extensions; - -}; -/* -UE-ContextKeptIndicator ::= ENUMERATED { - true, - ... -} -*/ - -struct UE_ContextKeptIndicator : asn::enumerated<1, 0, true> -{ - static constexpr const char* name() {return "UE-ContextKeptIndicator";} - using parent_t = asn::enumerated<1, 0, true>; - typedef enum { - True - } index_t; - -}; - -/* -UE-HistoryInformation ::= SEQUENCE (SIZE(1..maxnoofCells)) OF LastVisitedCell-Item -*/ - -struct UE_HistoryInformation_elm : LastVisitedCell_Item -{ - static constexpr const char* name() {return "UE_HistoryInformation_elm";} - using parent_t = LastVisitedCell_Item; - -}; -struct UE_HistoryInformation : asn::sequenceof -{ - static constexpr const char* name() {return "UE-HistoryInformation";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -UE-HistoryInformationFromTheUE ::= OCTET STRING -*/ - -struct UE_HistoryInformationFromTheUE : asn::ostring<> -{ - static constexpr const char* name() {return "UE-HistoryInformationFromTheUE";} - using parent_t = asn::ostring<>; - -}; - -/* -UE-RLF-Report-Container::= OCTET STRING -*/ - -struct UE_RLF_Report_Container : asn::ostring<> -{ - static constexpr const char* name() {return "UE-RLF-Report-Container";} - using parent_t = asn::ostring<>; - -}; - -/* -UE-RLF-Report-Container-for-extended-bands ::= OCTET STRING -*/ - -struct UE_RLF_Report_Container_for_extended_bands : asn::ostring<> -{ - static constexpr const char* name() {return "UE-RLF-Report-Container-for-extended-bands";} - using parent_t = asn::ostring<>; - -}; - -/* -UE-S1AP-ID ::= INTEGER (0.. 4294967295) -*/ - -struct UE_S1AP_ID : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "UE-S1AP-ID";} - using parent_t = asn::integer<>; - -}; - -/* -UE-Sidelink-Aggregate-MaximumBitRate-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct UE_Sidelink_Aggregate_MaximumBitRate_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -UE-X2AP-ID ::= INTEGER (0..4095) -*/ - -struct UE_X2AP_ID : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "UE-X2AP-ID";} - using parent_t = asn::integer<>; - -}; - -/* -UE-X2AP-ID-Extension ::= INTEGER (0..4095, ...) -*/ - -struct UE_X2AP_ID_Extension : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "UE-X2AP-ID-Extension";} - using parent_t = asn::integer<>; - -}; - -/* -UEAggregate-MaximumBitrate-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-extended-uEaggregateMaximumBitRateDownlink CRITICALITY ignore EXTENSION ExtendedBitRate PRESENCE optional}| - { ID id-extended-uEaggregateMaximumBitRateUplink CRITICALITY ignore EXTENSION ExtendedBitRate PRESENCE optional}, - ... -} -*/ - -struct UEAggregate_MaximumBitrate_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_extended_uEaggregateMaximumBitRateDownlink() { set(id_extended_uEaggregateMaximumBitRateDownlink); type=1;} - void select_id_extended_uEaggregateMaximumBitRateUplink() { set(id_extended_uEaggregateMaximumBitRateUplink); type=2;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_extended_uEaggregateMaximumBitRateDownlink)) { type = 1; return true; } - else if(equal(id_extended_uEaggregateMaximumBitRateUplink)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_extended_uEaggregateMaximumBitRateDownlink);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_extended_uEaggregateMaximumBitRateUplink);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_extended_uEaggregateMaximumBitRateDownlink() { set(ignore); type=1;} - void select_id_extended_uEaggregateMaximumBitRateUplink() { set(ignore); type=2;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - ExtendedBitRate& select_id_extended_uEaggregateMaximumBitRateDownlink() { return set(1); } - ExtendedBitRate const* get_id_extended_uEaggregateMaximumBitRateDownlink() const { return get(1); } - ExtendedBitRate& select_id_extended_uEaggregateMaximumBitRateUplink() { return set(2); } - ExtendedBitRate const* get_id_extended_uEaggregateMaximumBitRateUplink() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_extended_uEaggregateMaximumBitRateDownlink()); return true; - case 2: v(select_id_extended_uEaggregateMaximumBitRateUplink()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(ExtendedBitRate)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_extended_uEaggregateMaximumBitRateDownlink() { set(optional); type=1;} - void select_id_extended_uEaggregateMaximumBitRateUplink() { set(optional); type=2;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -UEAggregateMaximumBitRate ::= SEQUENCE { - uEaggregateMaximumBitRateDownlink BitRate, - uEaggregateMaximumBitRateUplink BitRate, - iE-Extensions ProtocolExtensionContainer { {UEAggregate-MaximumBitrate-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct UEAggregateMaximumBitRate : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "UEAggregateMaximumBitRate";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct uEaggregateMaximumBitRateDownlink_t : BitRate - { - static constexpr const char* name() {return "uEaggregateMaximumBitRateDownlink_t";} - using parent_t = BitRate; - - }; - uEaggregateMaximumBitRateDownlink_t& ref_uEaggregateMaximumBitRateDownlink() {return uEaggregateMaximumBitRateDownlink;} - uEaggregateMaximumBitRateDownlink_t const& ref_uEaggregateMaximumBitRateDownlink() const {return uEaggregateMaximumBitRateDownlink;} - struct uEaggregateMaximumBitRateUplink_t : BitRate - { - static constexpr const char* name() {return "uEaggregateMaximumBitRateUplink_t";} - using parent_t = BitRate; - - }; - uEaggregateMaximumBitRateUplink_t& ref_uEaggregateMaximumBitRateUplink() {return uEaggregateMaximumBitRateUplink;} - uEaggregateMaximumBitRateUplink_t const& ref_uEaggregateMaximumBitRateUplink() const {return uEaggregateMaximumBitRateUplink;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(uEaggregateMaximumBitRateDownlink); - v(uEaggregateMaximumBitRateUplink); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(uEaggregateMaximumBitRateDownlink); - v(uEaggregateMaximumBitRateUplink); - v(iE_Extensions); - - }; - void clear() - { - uEaggregateMaximumBitRateDownlink.clear(); - uEaggregateMaximumBitRateUplink.clear(); - iE_Extensions.clear(); - - }; - private: - uEaggregateMaximumBitRateDownlink_t uEaggregateMaximumBitRateDownlink; - uEaggregateMaximumBitRateUplink_t uEaggregateMaximumBitRateUplink; - iE_Extensions_t iE_Extensions; - -}; -/* -UENRMeasurement-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct UENRMeasurement_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -UENRMeasurement ::= SEQUENCE { - uENRMeasurements RRCContainer, - iE-Extensions ProtocolExtensionContainer { {UENRMeasurement-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct UENRMeasurement : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "UENRMeasurement";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct uENRMeasurements_t : RRCContainer - { - static constexpr const char* name() {return "uENRMeasurements_t";} - using parent_t = RRCContainer; - - }; - uENRMeasurements_t& ref_uENRMeasurements() {return uENRMeasurements;} - uENRMeasurements_t const& ref_uENRMeasurements() const {return uENRMeasurements;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(uENRMeasurements); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(uENRMeasurements); - v(iE_Extensions); - - }; - void clear() - { - uENRMeasurements.clear(); - iE_Extensions.clear(); - - }; - private: - uENRMeasurements_t uENRMeasurements; - iE_Extensions_t iE_Extensions; - -}; -/* -UESecurityCapabilities-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct UESecurityCapabilities_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -UESecurityCapabilities ::= SEQUENCE { - encryptionAlgorithms EncryptionAlgorithms, - integrityProtectionAlgorithms IntegrityProtectionAlgorithms, - iE-Extensions ProtocolExtensionContainer { {UESecurityCapabilities-ExtIEs} } OPTIONAL, -... -} -*/ - -struct UESecurityCapabilities : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "UESecurityCapabilities";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct encryptionAlgorithms_t : EncryptionAlgorithms - { - static constexpr const char* name() {return "encryptionAlgorithms_t";} - using parent_t = EncryptionAlgorithms; - - }; - encryptionAlgorithms_t& ref_encryptionAlgorithms() {return encryptionAlgorithms;} - encryptionAlgorithms_t const& ref_encryptionAlgorithms() const {return encryptionAlgorithms;} - struct integrityProtectionAlgorithms_t : IntegrityProtectionAlgorithms - { - static constexpr const char* name() {return "integrityProtectionAlgorithms_t";} - using parent_t = IntegrityProtectionAlgorithms; - - }; - integrityProtectionAlgorithms_t& ref_integrityProtectionAlgorithms() {return integrityProtectionAlgorithms;} - integrityProtectionAlgorithms_t const& ref_integrityProtectionAlgorithms() const {return integrityProtectionAlgorithms;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(encryptionAlgorithms); - v(integrityProtectionAlgorithms); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(encryptionAlgorithms); - v(integrityProtectionAlgorithms); - v(iE_Extensions); - - }; - void clear() - { - encryptionAlgorithms.clear(); - integrityProtectionAlgorithms.clear(); - iE_Extensions.clear(); - - }; - private: - encryptionAlgorithms_t encryptionAlgorithms; - integrityProtectionAlgorithms_t integrityProtectionAlgorithms; - iE_Extensions_t iE_Extensions; - -}; -/* -UESidelinkAggregateMaximumBitRate ::= SEQUENCE { - uESidelinkAggregateMaximumBitRate BitRate, - iE-Extensions ProtocolExtensionContainer { {UE-Sidelink-Aggregate-MaximumBitRate-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct UESidelinkAggregateMaximumBitRate : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "UESidelinkAggregateMaximumBitRate";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct uESidelinkAggregateMaximumBitRate_t : BitRate - { - static constexpr const char* name() {return "uESidelinkAggregateMaximumBitRate_t";} - using parent_t = BitRate; - - }; - uESidelinkAggregateMaximumBitRate_t& ref_uESidelinkAggregateMaximumBitRate() {return uESidelinkAggregateMaximumBitRate;} - uESidelinkAggregateMaximumBitRate_t const& ref_uESidelinkAggregateMaximumBitRate() const {return uESidelinkAggregateMaximumBitRate;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(uESidelinkAggregateMaximumBitRate); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(uESidelinkAggregateMaximumBitRate); - v(iE_Extensions); - - }; - void clear() - { - uESidelinkAggregateMaximumBitRate.clear(); - iE_Extensions.clear(); - - }; - private: - uESidelinkAggregateMaximumBitRate_t uESidelinkAggregateMaximumBitRate; - iE_Extensions_t iE_Extensions; - -}; -/* -UEsToBeResetList-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct UEsToBeResetList_Item_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -UEsToBeResetList-Item::= SEQUENCE { - meNB-ID UE-X2AP-ID, - meNB-ID-ext UE-X2AP-ID-Extension OPTIONAL, - sgNB-ID SgNB-UE-X2AP-ID OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {UEsToBeResetList-Item-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct UEsToBeResetList_Item : asn::sequence<4, 0, true, 3> -{ - static constexpr const char* name() {return "UEsToBeResetList-Item";} - using parent_t = asn::sequence<4, 0, true, 3>; - struct meNB_ID_t : UE_X2AP_ID - { - static constexpr const char* name() {return "meNB_ID_t";} - using parent_t = UE_X2AP_ID; - - }; - meNB_ID_t& ref_meNB_ID() {return meNB_ID;} - meNB_ID_t const& ref_meNB_ID() const {return meNB_ID;} - struct meNB_ID_ext_t : UE_X2AP_ID_Extension - { - static constexpr const char* name() {return "meNB_ID_ext_t";} - using parent_t = UE_X2AP_ID_Extension; - static constexpr bool optional = true; - - }; - meNB_ID_ext_t& set_meNB_ID_ext() { meNB_ID_ext.setpresent(true); return meNB_ID_ext;} - meNB_ID_ext_t const* get_meNB_ID_ext() const {return meNB_ID_ext.is_valid() ? &meNB_ID_ext : nullptr;} - struct sgNB_ID_t : SgNB_UE_X2AP_ID - { - static constexpr const char* name() {return "sgNB_ID_t";} - using parent_t = SgNB_UE_X2AP_ID; - static constexpr bool optional = true; - - }; - sgNB_ID_t& set_sgNB_ID() { sgNB_ID.setpresent(true); return sgNB_ID;} - sgNB_ID_t const* get_sgNB_ID() const {return sgNB_ID.is_valid() ? &sgNB_ID : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(meNB_ID); - v(meNB_ID_ext); - v(sgNB_ID); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(meNB_ID); - v(meNB_ID_ext); - v(sgNB_ID); - v(iE_Extensions); - - }; - void clear() - { - meNB_ID.clear(); - meNB_ID_ext.clear(); - sgNB_ID.clear(); - iE_Extensions.clear(); - - }; - private: - meNB_ID_t meNB_ID; - meNB_ID_ext_t meNB_ID_ext; - sgNB_ID_t sgNB_ID; - iE_Extensions_t iE_Extensions; - -}; -/* -UEsToBeResetList ::= SEQUENCE (SIZE (1.. maxUEsinengNBDU)) OF UEsToBeResetList-Item -*/ - -struct UEsToBeResetList_elm : UEsToBeResetList_Item -{ - static constexpr const char* name() {return "UEsToBeResetList_elm";} - using parent_t = UEsToBeResetList_Item; - -}; -struct UEsToBeResetList : asn::sequenceof -{ - static constexpr const char* name() {return "UEsToBeResetList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -UL-HighInterferenceIndication ::= BIT STRING (SIZE(1..110, ...)) -*/ - -struct UL_HighInterferenceIndication : asn::bstring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "UL-HighInterferenceIndication";} - using parent_t = asn::bstring<>; - -}; - -/* -UL-HighInterferenceIndicationInfo-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct UL_HighInterferenceIndicationInfo_Item_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -UL-HighInterferenceIndicationInfo-Item ::= SEQUENCE { - target-Cell-ID ECGI, - ul-interferenceindication UL-HighInterferenceIndication, - iE-Extensions ProtocolExtensionContainer { {UL-HighInterferenceIndicationInfo-Item-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct UL_HighInterferenceIndicationInfo_Item : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "UL-HighInterferenceIndicationInfo-Item";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct target_Cell_ID_t : ECGI - { - static constexpr const char* name() {return "target_Cell_ID_t";} - using parent_t = ECGI; - - }; - target_Cell_ID_t& ref_target_Cell_ID() {return target_Cell_ID;} - target_Cell_ID_t const& ref_target_Cell_ID() const {return target_Cell_ID;} - struct ul_interferenceindication_t : UL_HighInterferenceIndication - { - static constexpr const char* name() {return "ul_interferenceindication_t";} - using parent_t = UL_HighInterferenceIndication; - - }; - ul_interferenceindication_t& ref_ul_interferenceindication() {return ul_interferenceindication;} - ul_interferenceindication_t const& ref_ul_interferenceindication() const {return ul_interferenceindication;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(target_Cell_ID); - v(ul_interferenceindication); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(target_Cell_ID); - v(ul_interferenceindication); - v(iE_Extensions); - - }; - void clear() - { - target_Cell_ID.clear(); - ul_interferenceindication.clear(); - iE_Extensions.clear(); - - }; - private: - target_Cell_ID_t target_Cell_ID; - ul_interferenceindication_t ul_interferenceindication; - iE_Extensions_t iE_Extensions; - -}; -/* -UL-HighInterferenceIndicationInfo ::= SEQUENCE (SIZE(1..maxCellineNB)) OF UL-HighInterferenceIndicationInfo-Item -*/ - -struct UL_HighInterferenceIndicationInfo_elm : UL_HighInterferenceIndicationInfo_Item -{ - static constexpr const char* name() {return "UL_HighInterferenceIndicationInfo_elm";} - using parent_t = UL_HighInterferenceIndicationInfo_Item; - -}; -struct UL_HighInterferenceIndicationInfo : asn::sequenceof -{ - static constexpr const char* name() {return "UL-HighInterferenceIndicationInfo";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -UL-UE-Configuration::= ENUMERATED { no-data, shared, only, ... } -*/ - -struct UL_UE_Configuration : asn::enumerated<3, 0, true> -{ - static constexpr const char* name() {return "UL-UE-Configuration";} - using parent_t = asn::enumerated<3, 0, true>; - typedef enum { - no_data - ,shared - ,only - } index_t; - -}; - -/* -ULConfiguration-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct ULConfiguration_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ULConfiguration::= SEQUENCE { - uL-PDCP UL-UE-Configuration, - iE-Extensions ProtocolExtensionContainer { {ULConfiguration-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct ULConfiguration : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "ULConfiguration";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct uL_PDCP_t : UL_UE_Configuration - { - static constexpr const char* name() {return "uL_PDCP_t";} - using parent_t = UL_UE_Configuration; - - }; - uL_PDCP_t& ref_uL_PDCP() {return uL_PDCP;} - uL_PDCP_t const& ref_uL_PDCP() const {return uL_PDCP;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(uL_PDCP); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(uL_PDCP); - v(iE_Extensions); - - }; - void clear() - { - uL_PDCP.clear(); - iE_Extensions.clear(); - - }; - private: - uL_PDCP_t uL_PDCP; - iE_Extensions_t iE_Extensions; - -}; -/* -VehicleUE ::= ENUMERATED { - authorized, - not-authorized, - ... -} -*/ - -struct VehicleUE : asn::enumerated<2, 0, true> -{ - static constexpr const char* name() {return "VehicleUE";} - using parent_t = asn::enumerated<2, 0, true>; - typedef enum { - authorized - ,not_authorized - } index_t; - -}; - -/* -V2XServicesAuthorized-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct V2XServicesAuthorized_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -V2XServicesAuthorized ::= SEQUENCE { - vehicleUE VehicleUE OPTIONAL, -pedestrianUE PedestrianUE OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {V2XServicesAuthorized-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct V2XServicesAuthorized : asn::sequence<3, 0, true, 3> -{ - static constexpr const char* name() {return "V2XServicesAuthorized";} - using parent_t = asn::sequence<3, 0, true, 3>; - struct vehicleUE_t : VehicleUE - { - static constexpr const char* name() {return "vehicleUE_t";} - using parent_t = VehicleUE; - static constexpr bool optional = true; - - }; - vehicleUE_t& set_vehicleUE() { vehicleUE.setpresent(true); return vehicleUE;} - vehicleUE_t const* get_vehicleUE() const {return vehicleUE.is_valid() ? &vehicleUE : nullptr;} - struct pedestrianUE_t : PedestrianUE - { - static constexpr const char* name() {return "pedestrianUE_t";} - using parent_t = PedestrianUE; - static constexpr bool optional = true; - - }; - pedestrianUE_t& set_pedestrianUE() { pedestrianUE.setpresent(true); return pedestrianUE;} - pedestrianUE_t const* get_pedestrianUE() const {return pedestrianUE.is_valid() ? &pedestrianUE : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(vehicleUE); - v(pedestrianUE); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(vehicleUE); - v(pedestrianUE); - v(iE_Extensions); - - }; - void clear() - { - vehicleUE.clear(); - pedestrianUE.clear(); - iE_Extensions.clear(); - - }; - private: - vehicleUE_t vehicleUE; - pedestrianUE_t pedestrianUE; - iE_Extensions_t iE_Extensions; - -}; -/* -WT-UE-XwAP-ID ::= OCTET STRING (SIZE (3)) -*/ - -struct WT_UE_XwAP_ID : asn::ostring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "WT-UE-XwAP-ID";} - using parent_t = asn::ostring<>; - -}; - -/* -WTID-Type1 ::= SEQUENCE { - pLMN-Identity PLMN-Identity, - shortWTID BIT STRING (SIZE(24)), - ... -} -*/ - -struct WTID_Type1 : asn::sequence<2, 0, true, 0> -{ - static constexpr const char* name() {return "WTID-Type1";} - using parent_t = asn::sequence<2, 0, true, 0>; - struct pLMN_Identity_t : PLMN_Identity - { - static constexpr const char* name() {return "pLMN_Identity_t";} - using parent_t = PLMN_Identity; - - }; - pLMN_Identity_t& ref_pLMN_Identity() {return pLMN_Identity;} - pLMN_Identity_t const& ref_pLMN_Identity() const {return pLMN_Identity;} - struct shortWTID_t : asn::bstring<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "shortWTID_t";} - using parent_t = asn::bstring<>; - - }; - - shortWTID_t& ref_shortWTID() {return shortWTID;} - shortWTID_t const& ref_shortWTID() const {return shortWTID;} - template void decode(V& v) - { - v(pLMN_Identity); - v(shortWTID); - - }; - template void encode(V& v) const - { - v(pLMN_Identity); - v(shortWTID); - - }; - void clear() - { - pLMN_Identity.clear(); - shortWTID.clear(); - - }; - private: - pLMN_Identity_t pLMN_Identity; - shortWTID_t shortWTID; - -}; -/* -WTID-Long-Type2 ::= BIT STRING (SIZE(48)) -*/ - -struct WTID_Long_Type2 : asn::bstring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "WTID-Long-Type2";} - using parent_t = asn::bstring<>; - -}; - -/* -WTID ::= CHOICE { - wTID-Type1 WTID-Type1, - wTID-Type2 WTID-Long-Type2, - ... -} -*/ - -struct WTID : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "WTID";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~WTID() {clear();} - struct wTID_Type1_t : WTID_Type1 - { - static constexpr const char* name() {return "wTID_Type1_t";} - using parent_t = WTID_Type1; - - }; - struct wTID_Type2_t : WTID_Long_Type2 - { - static constexpr const char* name() {return "wTID_Type2_t";} - using parent_t = WTID_Long_Type2; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - wTID_Type1_t& select_wTID_Type1() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - wTID_Type1_t const* get_wTID_Type1() const { if(get_index() == 1) { return &var.as();} return nullptr; } - wTID_Type2_t& select_wTID_Type2() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - wTID_Type2_t const* get_wTID_Type2() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(wTID_Type1_t)]; - char dummy2[sizeof(wTID_Type2_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -X2BenefitValue ::= INTEGER (1..8, ...) -*/ - -struct X2BenefitValue : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "X2BenefitValue";} - using parent_t = asn::integer<>; - -}; diff --git a/e2sim/previous/e2apv1sim/ricsim/src/ASN1/generated/X2AP-PDU-Contents.hpp b/e2sim/previous/e2apv1sim/ricsim/src/ASN1/generated/X2AP-PDU-Contents.hpp deleted file mode 100644 index dd85f97..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/ASN1/generated/X2AP-PDU-Contents.hpp +++ /dev/null @@ -1,68476 +0,0 @@ -/***************************************************************************** -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -#pragma once - -#include "asn/asn.hpp" -static_assert(ASN_API_VERSION_MAJOR == 5, "re-generate the ASN parser's code using 'make regen-asn' (do not use -j option)"); - -#include "X2AP-IEs.hpp" -#include "X2AP-Containers.hpp" -#include "X2AP-Constants.hpp" - -/* -ActivatedCellList-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct ActivatedCellList_Item_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ActivatedCellList-Item::= SEQUENCE { - ecgi ECGI, - iE-Extensions ProtocolExtensionContainer { {ActivatedCellList-Item-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct ActivatedCellList_Item : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "ActivatedCellList-Item";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct ecgi_t : ECGI - { - static constexpr const char* name() {return "ecgi_t";} - using parent_t = ECGI; - - }; - ecgi_t& ref_ecgi() {return ecgi;} - ecgi_t const& ref_ecgi() const {return ecgi;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(ecgi); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(ecgi); - v(iE_Extensions); - - }; - void clear() - { - ecgi.clear(); - iE_Extensions.clear(); - - }; - private: - ecgi_t ecgi; - iE_Extensions_t iE_Extensions; - -}; -/* -ActivatedCellList ::= SEQUENCE (SIZE (1..maxCellineNB)) OF ActivatedCellList-Item -*/ - -struct ActivatedCellList_elm : ActivatedCellList_Item -{ - static constexpr const char* name() {return "ActivatedCellList_elm";} - using parent_t = ActivatedCellList_Item; - -}; -struct ActivatedCellList : asn::sequenceof -{ - static constexpr const char* name() {return "ActivatedCellList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -ActivatedNRCellList-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct ActivatedNRCellList_Item_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ActivatedNRCellList-Item::= SEQUENCE { - nrCellID NRCGI, - iE-Extensions ProtocolExtensionContainer { {ActivatedNRCellList-Item-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct ActivatedNRCellList_Item : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "ActivatedNRCellList-Item";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct nrCellID_t : NRCGI - { - static constexpr const char* name() {return "nrCellID_t";} - using parent_t = NRCGI; - - }; - nrCellID_t& ref_nrCellID() {return nrCellID;} - nrCellID_t const& ref_nrCellID() const {return nrCellID;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(nrCellID); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(nrCellID); - v(iE_Extensions); - - }; - void clear() - { - nrCellID.clear(); - iE_Extensions.clear(); - - }; - private: - nrCellID_t nrCellID; - iE_Extensions_t iE_Extensions; - -}; -/* -ActivatedNRCellList ::= SEQUENCE (SIZE (1.. maxCellinengNB)) OF ActivatedNRCellList-Item -*/ - -struct ActivatedNRCellList_elm : ActivatedNRCellList_Item -{ - static constexpr const char* name() {return "ActivatedNRCellList_elm";} - using parent_t = ActivatedNRCellList_Item; - -}; -struct ActivatedNRCellList : asn::sequenceof -{ - static constexpr const char* name() {return "ActivatedNRCellList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -CellActivationFailure-IEs X2AP-PROTOCOL-IES ::= { - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, - ... -} -*/ - -struct CellActivationFailure_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_Cause() { set(id_Cause); type=1;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=2;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_Cause)) { type = 1; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_Cause() { set(ignore); type=1;} - void select_id_CriticalityDiagnostics() { set(ignore); type=2;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - Cause& select_id_Cause() { return set(1); } - Cause const* get_id_Cause() const { return get(1); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(2); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_Cause()); return true; - case 2: v(select_id_CriticalityDiagnostics()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(CriticalityDiagnostics)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_Cause() { set(mandatory); type=1;} - void select_id_CriticalityDiagnostics() { set(optional); type=2;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -CellActivationFailure ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{CellActivationFailure-IEs}}, - ... -} -*/ - -struct CellActivationFailure : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "CellActivationFailure";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -ServedCellsToActivate-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct ServedCellsToActivate_Item_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ServedCellsToActivate-Item::= SEQUENCE { - ecgi ECGI, - iE-Extensions ProtocolExtensionContainer { {ServedCellsToActivate-Item-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct ServedCellsToActivate_Item : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "ServedCellsToActivate-Item";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct ecgi_t : ECGI - { - static constexpr const char* name() {return "ecgi_t";} - using parent_t = ECGI; - - }; - ecgi_t& ref_ecgi() {return ecgi;} - ecgi_t const& ref_ecgi() const {return ecgi;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(ecgi); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(ecgi); - v(iE_Extensions); - - }; - void clear() - { - ecgi.clear(); - iE_Extensions.clear(); - - }; - private: - ecgi_t ecgi; - iE_Extensions_t iE_Extensions; - -}; -/* -ServedCellsToActivate::= SEQUENCE (SIZE (1..maxCellineNB)) OF ServedCellsToActivate-Item -*/ - -struct ServedCellsToActivate_elm : ServedCellsToActivate_Item -{ - static constexpr const char* name() {return "ServedCellsToActivate_elm";} - using parent_t = ServedCellsToActivate_Item; - -}; -struct ServedCellsToActivate : asn::sequenceof -{ - static constexpr const char* name() {return "ServedCellsToActivate";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -CellActivationRequest-IEs X2AP-PROTOCOL-IES ::= { - { ID id-ServedCellsToActivate CRITICALITY reject TYPE ServedCellsToActivate PRESENCE mandatory}, - ... -} -*/ - -struct CellActivationRequest_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_ServedCellsToActivate() { set(id_ServedCellsToActivate); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_ServedCellsToActivate)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_ServedCellsToActivate);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_ServedCellsToActivate() { set(reject); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - ServedCellsToActivate& select_id_ServedCellsToActivate() { return set(1); } - ServedCellsToActivate const* get_id_ServedCellsToActivate() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_ServedCellsToActivate()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(ServedCellsToActivate)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_ServedCellsToActivate() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -CellActivationRequest ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{CellActivationRequest-IEs}}, - ... -} -*/ - -struct CellActivationRequest : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "CellActivationRequest";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -CellActivationResponse-IEs X2AP-PROTOCOL-IES ::= { - { ID id-ActivatedCellList CRITICALITY ignore TYPE ActivatedCellList PRESENCE mandatory}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, - ... -} -*/ - -struct CellActivationResponse_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_ActivatedCellList() { set(id_ActivatedCellList); type=1;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=2;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_ActivatedCellList)) { type = 1; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_ActivatedCellList);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_ActivatedCellList() { set(ignore); type=1;} - void select_id_CriticalityDiagnostics() { set(ignore); type=2;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - ActivatedCellList& select_id_ActivatedCellList() { return set(1); } - ActivatedCellList const* get_id_ActivatedCellList() const { return get(1); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(2); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_ActivatedCellList()); return true; - case 2: v(select_id_CriticalityDiagnostics()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(ActivatedCellList)]; - char dummy2[sizeof(CriticalityDiagnostics)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_ActivatedCellList() { set(mandatory); type=1;} - void select_id_CriticalityDiagnostics() { set(optional); type=2;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -CellActivationResponse ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{CellActivationResponse-IEs}}, - ... -} -*/ - -struct CellActivationResponse : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "CellActivationResponse";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -Limited-list-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct Limited_list_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -Limited-list ::= SEQUENCE (SIZE (1..maxCellinengNB)) OF SEQUENCE { - nrCellID NRCGI, - iE-Extensions ProtocolExtensionContainer { {Limited-list-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct Limited_list_elm : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "Limited_list_elm";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct nrCellID_t : NRCGI - { - static constexpr const char* name() {return "nrCellID_t";} - using parent_t = NRCGI; - - }; - nrCellID_t& ref_nrCellID() {return nrCellID;} - nrCellID_t const& ref_nrCellID() const {return nrCellID;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(nrCellID); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(nrCellID); - v(iE_Extensions); - - }; - void clear() - { - nrCellID.clear(); - iE_Extensions.clear(); - - }; - private: - nrCellID_t nrCellID; - iE_Extensions_t iE_Extensions; - -}; -struct Limited_list : asn::sequenceof -{ - static constexpr const char* name() {return "Limited-list";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -CellAssistanceInformation ::= CHOICE { - limited-list Limited-list, - full-list ENUMERATED {allServedNRcells, ...}, - ... -} -*/ - -struct CellAssistanceInformation : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "CellAssistanceInformation";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~CellAssistanceInformation() {clear();} - struct limited_list_t : Limited_list - { - static constexpr const char* name() {return "limited_list_t";} - using parent_t = Limited_list; - - }; - struct full_list_t : asn::enumerated<1, 0, true> - { - static constexpr const char* name() {return "full_list_t";} - using parent_t = asn::enumerated<1, 0, true>; - typedef enum { - allServedNRcells - } index_t; - - }; - - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - limited_list_t& select_limited_list() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - limited_list_t const* get_limited_list() const { if(get_index() == 1) { return &var.as();} return nullptr; } - full_list_t& select_full_list() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - full_list_t const* get_full_list() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(limited_list_t)]; - char dummy2[sizeof(full_list_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -CellInformation-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { -{ ID id-ABSInformation CRITICALITY ignore EXTENSION ABSInformation PRESENCE optional }| -{ ID id-InvokeIndication CRITICALITY ignore EXTENSION InvokeIndication PRESENCE optional }| -{ ID id-IntendedULDLConfiguration CRITICALITY ignore EXTENSION SubframeAssignment PRESENCE optional }| -{ ID id-ExtendedULInterferenceOverloadInfo CRITICALITY ignore EXTENSION ExtendedULInterferenceOverloadInfo PRESENCE optional }| -{ ID id-CoMPInformation CRITICALITY ignore EXTENSION CoMPInformation PRESENCE optional }| -{ ID id-DynamicDLTransmissionInformation CRITICALITY ignore EXTENSION DynamicDLTransmissionInformation PRESENCE optional }, - ... -} -*/ - -struct CellInformation_Item_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_ABSInformation() { set(id_ABSInformation); type=1;} - void select_id_InvokeIndication() { set(id_InvokeIndication); type=2;} - void select_id_IntendedULDLConfiguration() { set(id_IntendedULDLConfiguration); type=3;} - void select_id_ExtendedULInterferenceOverloadInfo() { set(id_ExtendedULInterferenceOverloadInfo); type=4;} - void select_id_CoMPInformation() { set(id_CoMPInformation); type=5;} - void select_id_DynamicDLTransmissionInformation() { set(id_DynamicDLTransmissionInformation); type=6;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_ABSInformation)) { type = 1; return true; } - else if(equal(id_InvokeIndication)) { type = 2; return true; } - else if(equal(id_IntendedULDLConfiguration)) { type = 3; return true; } - else if(equal(id_ExtendedULInterferenceOverloadInfo)) { type = 4; return true; } - else if(equal(id_CoMPInformation)) { type = 5; return true; } - else if(equal(id_DynamicDLTransmissionInformation)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_ABSInformation);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_InvokeIndication);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_IntendedULDLConfiguration);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_ExtendedULInterferenceOverloadInfo);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_CoMPInformation);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_DynamicDLTransmissionInformation);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_ABSInformation() { set(ignore); type=1;} - void select_id_InvokeIndication() { set(ignore); type=2;} - void select_id_IntendedULDLConfiguration() { set(ignore); type=3;} - void select_id_ExtendedULInterferenceOverloadInfo() { set(ignore); type=4;} - void select_id_CoMPInformation() { set(ignore); type=5;} - void select_id_DynamicDLTransmissionInformation() { set(ignore); type=6;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else if(equal(ignore)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(ignore);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - ABSInformation& select_id_ABSInformation() { return set(1); } - ABSInformation const* get_id_ABSInformation() const { return get(1); } - InvokeIndication& select_id_InvokeIndication() { return set(2); } - InvokeIndication const* get_id_InvokeIndication() const { return get(2); } - SubframeAssignment& select_id_IntendedULDLConfiguration() { return set(3); } - SubframeAssignment const* get_id_IntendedULDLConfiguration() const { return get(3); } - ExtendedULInterferenceOverloadInfo& select_id_ExtendedULInterferenceOverloadInfo() { return set(4); } - ExtendedULInterferenceOverloadInfo const* get_id_ExtendedULInterferenceOverloadInfo() const { return get(4); } - CoMPInformation& select_id_CoMPInformation() { return set(5); } - CoMPInformation const* get_id_CoMPInformation() const { return get(5); } - DynamicDLTransmissionInformation& select_id_DynamicDLTransmissionInformation() { return set(6); } - DynamicDLTransmissionInformation const* get_id_DynamicDLTransmissionInformation() const { return get(6); } - bool is_unknown() const { return type == 7; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_ABSInformation()); return true; - case 2: v(select_id_InvokeIndication()); return true; - case 3: v(select_id_IntendedULDLConfiguration()); return true; - case 4: v(select_id_ExtendedULInterferenceOverloadInfo()); return true; - case 5: v(select_id_CoMPInformation()); return true; - case 6: v(select_id_DynamicDLTransmissionInformation()); return true; - case 7: if(type != 7) {clear(); asn::base::set();} type = 7; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(ABSInformation)]; - char dummy2[sizeof(CoMPInformation)]; - char dummy3[sizeof(DynamicDLTransmissionInformation)]; - char dummy4[sizeof(ExtendedULInterferenceOverloadInfo)]; - char dummy5[sizeof(InvokeIndication)]; - char dummy6[sizeof(SubframeAssignment)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_ABSInformation() { set(optional); type=1;} - void select_id_InvokeIndication() { set(optional); type=2;} - void select_id_IntendedULDLConfiguration() { set(optional); type=3;} - void select_id_ExtendedULInterferenceOverloadInfo() { set(optional); type=4;} - void select_id_CoMPInformation() { set(optional); type=5;} - void select_id_DynamicDLTransmissionInformation() { set(optional); type=6;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -CellInformation-Item ::= SEQUENCE { - cell-ID ECGI, - ul-InterferenceOverloadIndication UL-InterferenceOverloadIndication OPTIONAL, - ul-HighInterferenceIndicationInfo UL-HighInterferenceIndicationInfo OPTIONAL, - relativeNarrowbandTxPower RelativeNarrowbandTxPower OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {CellInformation-Item-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct CellInformation_Item : asn::sequence<5, 0, true, 4> -{ - static constexpr const char* name() {return "CellInformation-Item";} - using parent_t = asn::sequence<5, 0, true, 4>; - struct cell_ID_t : ECGI - { - static constexpr const char* name() {return "cell_ID_t";} - using parent_t = ECGI; - - }; - cell_ID_t& ref_cell_ID() {return cell_ID;} - cell_ID_t const& ref_cell_ID() const {return cell_ID;} - struct ul_InterferenceOverloadIndication_t : UL_InterferenceOverloadIndication - { - static constexpr const char* name() {return "ul_InterferenceOverloadIndication_t";} - using parent_t = UL_InterferenceOverloadIndication; - static constexpr bool optional = true; - - }; - ul_InterferenceOverloadIndication_t& set_ul_InterferenceOverloadIndication() { ul_InterferenceOverloadIndication.setpresent(true); return ul_InterferenceOverloadIndication;} - ul_InterferenceOverloadIndication_t const* get_ul_InterferenceOverloadIndication() const {return ul_InterferenceOverloadIndication.is_valid() ? &ul_InterferenceOverloadIndication : nullptr;} - struct ul_HighInterferenceIndicationInfo_t : UL_HighInterferenceIndicationInfo - { - static constexpr const char* name() {return "ul_HighInterferenceIndicationInfo_t";} - using parent_t = UL_HighInterferenceIndicationInfo; - static constexpr bool optional = true; - - }; - ul_HighInterferenceIndicationInfo_t& set_ul_HighInterferenceIndicationInfo() { ul_HighInterferenceIndicationInfo.setpresent(true); return ul_HighInterferenceIndicationInfo;} - ul_HighInterferenceIndicationInfo_t const* get_ul_HighInterferenceIndicationInfo() const {return ul_HighInterferenceIndicationInfo.is_valid() ? &ul_HighInterferenceIndicationInfo : nullptr;} - struct relativeNarrowbandTxPower_t : RelativeNarrowbandTxPower - { - static constexpr const char* name() {return "relativeNarrowbandTxPower_t";} - using parent_t = RelativeNarrowbandTxPower; - static constexpr bool optional = true; - - }; - relativeNarrowbandTxPower_t& set_relativeNarrowbandTxPower() { relativeNarrowbandTxPower.setpresent(true); return relativeNarrowbandTxPower;} - relativeNarrowbandTxPower_t const* get_relativeNarrowbandTxPower() const {return relativeNarrowbandTxPower.is_valid() ? &relativeNarrowbandTxPower : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(cell_ID); - v(ul_InterferenceOverloadIndication); - v(ul_HighInterferenceIndicationInfo); - v(relativeNarrowbandTxPower); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(cell_ID); - v(ul_InterferenceOverloadIndication); - v(ul_HighInterferenceIndicationInfo); - v(relativeNarrowbandTxPower); - v(iE_Extensions); - - }; - void clear() - { - cell_ID.clear(); - ul_InterferenceOverloadIndication.clear(); - ul_HighInterferenceIndicationInfo.clear(); - relativeNarrowbandTxPower.clear(); - iE_Extensions.clear(); - - }; - private: - cell_ID_t cell_ID; - ul_InterferenceOverloadIndication_t ul_InterferenceOverloadIndication; - ul_HighInterferenceIndicationInfo_t ul_HighInterferenceIndicationInfo; - relativeNarrowbandTxPower_t relativeNarrowbandTxPower; - iE_Extensions_t iE_Extensions; - -}; -/* -CellInformation-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-CellInformation-Item CRITICALITY ignore TYPE CellInformation-Item PRESENCE mandatory } -} -*/ - -struct CellInformation_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_CellInformation_Item() { set(id_CellInformation_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_CellInformation_Item)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_CellInformation_Item);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_CellInformation_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - CellInformation_Item& select_id_CellInformation_Item() { return set(1); } - CellInformation_Item const* get_id_CellInformation_Item() const { return get(1); } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_CellInformation_Item()); return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CellInformation_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_CellInformation_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -CellInformation-List ::= SEQUENCE (SIZE (1..maxCellineNB)) OF ProtocolIE-Single-Container { {CellInformation-ItemIEs} } -*/ - -struct CellInformation_List_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "CellInformation_List_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct CellInformation_List : asn::sequenceof -{ - static constexpr const char* name() {return "CellInformation-List";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -CellMeasurementResult-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-CompositeAvailableCapacityGroup CRITICALITY ignore EXTENSION CompositeAvailableCapacityGroup PRESENCE optional}| - { ID id-ABS-Status CRITICALITY ignore EXTENSION ABS-Status PRESENCE optional}| - { ID id-RSRPMRList CRITICALITY ignore EXTENSION RSRPMRList PRESENCE optional}| - { ID id-CSIReportList CRITICALITY ignore EXTENSION CSIReportList PRESENCE optional}| - { ID id-CellReportingIndicator CRITICALITY ignore EXTENSION CellReportingIndicator PRESENCE optional}, - ... -} -*/ - -struct CellMeasurementResult_Item_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_CompositeAvailableCapacityGroup() { set(id_CompositeAvailableCapacityGroup); type=1;} - void select_id_ABS_Status() { set(id_ABS_Status); type=2;} - void select_id_RSRPMRList() { set(id_RSRPMRList); type=3;} - void select_id_CSIReportList() { set(id_CSIReportList); type=4;} - void select_id_CellReportingIndicator() { set(id_CellReportingIndicator); type=5;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_CompositeAvailableCapacityGroup)) { type = 1; return true; } - else if(equal(id_ABS_Status)) { type = 2; return true; } - else if(equal(id_RSRPMRList)) { type = 3; return true; } - else if(equal(id_CSIReportList)) { type = 4; return true; } - else if(equal(id_CellReportingIndicator)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_CompositeAvailableCapacityGroup);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_ABS_Status);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_RSRPMRList);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_CSIReportList);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_CellReportingIndicator);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_CompositeAvailableCapacityGroup() { set(ignore); type=1;} - void select_id_ABS_Status() { set(ignore); type=2;} - void select_id_RSRPMRList() { set(ignore); type=3;} - void select_id_CSIReportList() { set(ignore); type=4;} - void select_id_CellReportingIndicator() { set(ignore); type=5;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - CompositeAvailableCapacityGroup& select_id_CompositeAvailableCapacityGroup() { return set(1); } - CompositeAvailableCapacityGroup const* get_id_CompositeAvailableCapacityGroup() const { return get(1); } - ABS_Status& select_id_ABS_Status() { return set(2); } - ABS_Status const* get_id_ABS_Status() const { return get(2); } - RSRPMRList& select_id_RSRPMRList() { return set(3); } - RSRPMRList const* get_id_RSRPMRList() const { return get(3); } - CSIReportList& select_id_CSIReportList() { return set(4); } - CSIReportList const* get_id_CSIReportList() const { return get(4); } - CellReportingIndicator& select_id_CellReportingIndicator() { return set(5); } - CellReportingIndicator const* get_id_CellReportingIndicator() const { return get(5); } - bool is_unknown() const { return type == 6; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_CompositeAvailableCapacityGroup()); return true; - case 2: v(select_id_ABS_Status()); return true; - case 3: v(select_id_RSRPMRList()); return true; - case 4: v(select_id_CSIReportList()); return true; - case 5: v(select_id_CellReportingIndicator()); return true; - case 6: if(type != 6) {clear(); asn::base::set();} type = 6; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(ABS_Status)]; - char dummy2[sizeof(CSIReportList)]; - char dummy3[sizeof(CellReportingIndicator)]; - char dummy4[sizeof(CompositeAvailableCapacityGroup)]; - char dummy5[sizeof(RSRPMRList)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_CompositeAvailableCapacityGroup() { set(optional); type=1;} - void select_id_ABS_Status() { set(optional); type=2;} - void select_id_RSRPMRList() { set(optional); type=3;} - void select_id_CSIReportList() { set(optional); type=4;} - void select_id_CellReportingIndicator() { set(optional); type=5;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -CellMeasurementResult-Item ::= SEQUENCE { - cell-ID ECGI, - hWLoadIndicator HWLoadIndicator OPTIONAL, - s1TNLLoadIndicator S1TNLLoadIndicator OPTIONAL, - radioResourceStatus RadioResourceStatus OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {CellMeasurementResult-Item-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct CellMeasurementResult_Item : asn::sequence<5, 0, true, 4> -{ - static constexpr const char* name() {return "CellMeasurementResult-Item";} - using parent_t = asn::sequence<5, 0, true, 4>; - struct cell_ID_t : ECGI - { - static constexpr const char* name() {return "cell_ID_t";} - using parent_t = ECGI; - - }; - cell_ID_t& ref_cell_ID() {return cell_ID;} - cell_ID_t const& ref_cell_ID() const {return cell_ID;} - struct hWLoadIndicator_t : HWLoadIndicator - { - static constexpr const char* name() {return "hWLoadIndicator_t";} - using parent_t = HWLoadIndicator; - static constexpr bool optional = true; - - }; - hWLoadIndicator_t& set_hWLoadIndicator() { hWLoadIndicator.setpresent(true); return hWLoadIndicator;} - hWLoadIndicator_t const* get_hWLoadIndicator() const {return hWLoadIndicator.is_valid() ? &hWLoadIndicator : nullptr;} - struct s1TNLLoadIndicator_t : S1TNLLoadIndicator - { - static constexpr const char* name() {return "s1TNLLoadIndicator_t";} - using parent_t = S1TNLLoadIndicator; - static constexpr bool optional = true; - - }; - s1TNLLoadIndicator_t& set_s1TNLLoadIndicator() { s1TNLLoadIndicator.setpresent(true); return s1TNLLoadIndicator;} - s1TNLLoadIndicator_t const* get_s1TNLLoadIndicator() const {return s1TNLLoadIndicator.is_valid() ? &s1TNLLoadIndicator : nullptr;} - struct radioResourceStatus_t : RadioResourceStatus - { - static constexpr const char* name() {return "radioResourceStatus_t";} - using parent_t = RadioResourceStatus; - static constexpr bool optional = true; - - }; - radioResourceStatus_t& set_radioResourceStatus() { radioResourceStatus.setpresent(true); return radioResourceStatus;} - radioResourceStatus_t const* get_radioResourceStatus() const {return radioResourceStatus.is_valid() ? &radioResourceStatus : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(cell_ID); - v(hWLoadIndicator); - v(s1TNLLoadIndicator); - v(radioResourceStatus); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(cell_ID); - v(hWLoadIndicator); - v(s1TNLLoadIndicator); - v(radioResourceStatus); - v(iE_Extensions); - - }; - void clear() - { - cell_ID.clear(); - hWLoadIndicator.clear(); - s1TNLLoadIndicator.clear(); - radioResourceStatus.clear(); - iE_Extensions.clear(); - - }; - private: - cell_ID_t cell_ID; - hWLoadIndicator_t hWLoadIndicator; - s1TNLLoadIndicator_t s1TNLLoadIndicator; - radioResourceStatus_t radioResourceStatus; - iE_Extensions_t iE_Extensions; - -}; -/* -CellMeasurementResult-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-CellMeasurementResult-Item CRITICALITY ignore TYPE CellMeasurementResult-Item PRESENCE mandatory} -} -*/ - -struct CellMeasurementResult_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_CellMeasurementResult_Item() { set(id_CellMeasurementResult_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_CellMeasurementResult_Item)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_CellMeasurementResult_Item);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_CellMeasurementResult_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - CellMeasurementResult_Item& select_id_CellMeasurementResult_Item() { return set(1); } - CellMeasurementResult_Item const* get_id_CellMeasurementResult_Item() const { return get(1); } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_CellMeasurementResult_Item()); return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CellMeasurementResult_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_CellMeasurementResult_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -CellMeasurementResult-List ::= SEQUENCE (SIZE (1..maxCellineNB)) OF ProtocolIE-Single-Container { {CellMeasurementResult-ItemIEs} } -*/ - -struct CellMeasurementResult_List_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "CellMeasurementResult_List_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct CellMeasurementResult_List : asn::sequenceof -{ - static constexpr const char* name() {return "CellMeasurementResult-List";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -CellToReport-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct CellToReport_Item_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -CellToReport-Item ::= SEQUENCE { - cell-ID ECGI, - iE-Extensions ProtocolExtensionContainer { {CellToReport-Item-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct CellToReport_Item : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "CellToReport-Item";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct cell_ID_t : ECGI - { - static constexpr const char* name() {return "cell_ID_t";} - using parent_t = ECGI; - - }; - cell_ID_t& ref_cell_ID() {return cell_ID;} - cell_ID_t const& ref_cell_ID() const {return cell_ID;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(cell_ID); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(cell_ID); - v(iE_Extensions); - - }; - void clear() - { - cell_ID.clear(); - iE_Extensions.clear(); - - }; - private: - cell_ID_t cell_ID; - iE_Extensions_t iE_Extensions; - -}; -/* -CellToReport-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-CellToReport-Item CRITICALITY ignore TYPE CellToReport-Item PRESENCE mandatory} -} -*/ - -struct CellToReport_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_CellToReport_Item() { set(id_CellToReport_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_CellToReport_Item)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_CellToReport_Item);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_CellToReport_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - CellToReport_Item& select_id_CellToReport_Item() { return set(1); } - CellToReport_Item const* get_id_CellToReport_Item() const { return get(1); } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_CellToReport_Item()); return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CellToReport_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_CellToReport_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -CellToReport-List ::= SEQUENCE (SIZE (1..maxCellineNB)) OF ProtocolIE-Single-Container { {CellToReport-ItemIEs} } -*/ - -struct CellToReport_List_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "CellToReport_List_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct CellToReport_List : asn::sequenceof -{ - static constexpr const char* name() {return "CellToReport-List";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -MeasurementFailureCause-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct MeasurementFailureCause_Item_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -MeasurementFailureCause-Item ::= SEQUENCE { - measurementFailedReportCharacteristics ReportCharacteristics, - cause Cause, - iE-Extensions ProtocolExtensionContainer { {MeasurementFailureCause-Item-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct MeasurementFailureCause_Item : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "MeasurementFailureCause-Item";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct measurementFailedReportCharacteristics_t : ReportCharacteristics - { - static constexpr const char* name() {return "measurementFailedReportCharacteristics_t";} - using parent_t = ReportCharacteristics; - - }; - measurementFailedReportCharacteristics_t& ref_measurementFailedReportCharacteristics() {return measurementFailedReportCharacteristics;} - measurementFailedReportCharacteristics_t const& ref_measurementFailedReportCharacteristics() const {return measurementFailedReportCharacteristics;} - struct cause_t : Cause - { - static constexpr const char* name() {return "cause_t";} - using parent_t = Cause; - - }; - cause_t& ref_cause() {return cause;} - cause_t const& ref_cause() const {return cause;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(measurementFailedReportCharacteristics); - v(cause); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(measurementFailedReportCharacteristics); - v(cause); - v(iE_Extensions); - - }; - void clear() - { - measurementFailedReportCharacteristics.clear(); - cause.clear(); - iE_Extensions.clear(); - - }; - private: - measurementFailedReportCharacteristics_t measurementFailedReportCharacteristics; - cause_t cause; - iE_Extensions_t iE_Extensions; - -}; -/* -MeasurementFailureCause-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-MeasurementFailureCause-Item CRITICALITY ignore TYPE MeasurementFailureCause-Item PRESENCE mandatory} -} -*/ - -struct MeasurementFailureCause_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_MeasurementFailureCause_Item() { set(id_MeasurementFailureCause_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeasurementFailureCause_Item)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeasurementFailureCause_Item);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_MeasurementFailureCause_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - MeasurementFailureCause_Item& select_id_MeasurementFailureCause_Item() { return set(1); } - MeasurementFailureCause_Item const* get_id_MeasurementFailureCause_Item() const { return get(1); } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeasurementFailureCause_Item()); return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(MeasurementFailureCause_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_MeasurementFailureCause_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -MeasurementFailureCause-List ::= SEQUENCE (SIZE (1..maxFailedMeasObjects)) OF ProtocolIE-Single-Container { {MeasurementFailureCause-ItemIEs} } -*/ - -struct MeasurementFailureCause_List_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "MeasurementFailureCause_List_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct MeasurementFailureCause_List : asn::sequenceof -{ - static constexpr const char* name() {return "MeasurementFailureCause-List";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -CompleteFailureCauseInformation-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct CompleteFailureCauseInformation_Item_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -CompleteFailureCauseInformation-Item ::= SEQUENCE { - cell-ID ECGI, - measurementFailureCause-List MeasurementFailureCause-List, - iE-Extensions ProtocolExtensionContainer { {CompleteFailureCauseInformation-Item-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct CompleteFailureCauseInformation_Item : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "CompleteFailureCauseInformation-Item";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct cell_ID_t : ECGI - { - static constexpr const char* name() {return "cell_ID_t";} - using parent_t = ECGI; - - }; - cell_ID_t& ref_cell_ID() {return cell_ID;} - cell_ID_t const& ref_cell_ID() const {return cell_ID;} - struct measurementFailureCause_List_t : MeasurementFailureCause_List - { - static constexpr const char* name() {return "measurementFailureCause_List_t";} - using parent_t = MeasurementFailureCause_List; - - }; - measurementFailureCause_List_t& ref_measurementFailureCause_List() {return measurementFailureCause_List;} - measurementFailureCause_List_t const& ref_measurementFailureCause_List() const {return measurementFailureCause_List;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(cell_ID); - v(measurementFailureCause_List); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(cell_ID); - v(measurementFailureCause_List); - v(iE_Extensions); - - }; - void clear() - { - cell_ID.clear(); - measurementFailureCause_List.clear(); - iE_Extensions.clear(); - - }; - private: - cell_ID_t cell_ID; - measurementFailureCause_List_t measurementFailureCause_List; - iE_Extensions_t iE_Extensions; - -}; -/* -CompleteFailureCauseInformation-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-CompleteFailureCauseInformation-Item CRITICALITY ignore TYPE CompleteFailureCauseInformation-Item PRESENCE mandatory} -} -*/ - -struct CompleteFailureCauseInformation_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_CompleteFailureCauseInformation_Item() { set(id_CompleteFailureCauseInformation_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_CompleteFailureCauseInformation_Item)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_CompleteFailureCauseInformation_Item);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_CompleteFailureCauseInformation_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - CompleteFailureCauseInformation_Item& select_id_CompleteFailureCauseInformation_Item() { return set(1); } - CompleteFailureCauseInformation_Item const* get_id_CompleteFailureCauseInformation_Item() const { return get(1); } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_CompleteFailureCauseInformation_Item()); return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CompleteFailureCauseInformation_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_CompleteFailureCauseInformation_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -CompleteFailureCauseInformation-List ::= SEQUENCE (SIZE (1..maxCellineNB)) OF ProtocolIE-Single-Container { {CompleteFailureCauseInformation-ItemIEs} } -*/ - -struct CompleteFailureCauseInformation_List_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "CompleteFailureCauseInformation_List_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct CompleteFailureCauseInformation_List : asn::sequenceof -{ - static constexpr const char* name() {return "CompleteFailureCauseInformation-List";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-DataForwardingAddress-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_DataForwardingAddress_ItemExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-DataForwardingAddress-Item ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - dl-GTPtunnelEndpoint GTPtunnelEndpoint, - iE-Extensions ProtocolExtensionContainer { {E-RABs-DataForwardingAddress-ItemExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_DataForwardingAddress_Item : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-DataForwardingAddress-Item";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct dl_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "dl_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - - }; - dl_GTPtunnelEndpoint_t& ref_dl_GTPtunnelEndpoint() {return dl_GTPtunnelEndpoint;} - dl_GTPtunnelEndpoint_t const& ref_dl_GTPtunnelEndpoint() const {return dl_GTPtunnelEndpoint;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(dl_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(dl_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - dl_GTPtunnelEndpoint.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - dl_GTPtunnelEndpoint_t dl_GTPtunnelEndpoint; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-DataForwardingAddress-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-DataForwardingAddress-Item CRITICALITY ignore TYPE E-RABs-DataForwardingAddress-Item PRESENCE mandatory}, - ... -} -*/ - -struct E_RABs_DataForwardingAddress_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_DataForwardingAddress_Item() { set(id_E_RABs_DataForwardingAddress_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_DataForwardingAddress_Item)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_DataForwardingAddress_Item);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_DataForwardingAddress_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_DataForwardingAddress_Item& select_id_E_RABs_DataForwardingAddress_Item() { return set(1); } - E_RABs_DataForwardingAddress_Item const* get_id_E_RABs_DataForwardingAddress_Item() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_DataForwardingAddress_Item()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_DataForwardingAddress_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_DataForwardingAddress_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-DataForwardingAddress-List ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-DataForwardingAddress-ItemIEs} } -*/ - -struct E_RABs_DataForwardingAddress_List_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_DataForwardingAddress_List_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_DataForwardingAddress_List : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-DataForwardingAddress-List";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -DataForwardingAddressIndication-IEs X2AP-PROTOCOL-IES ::= { - { ID id-New-eNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional }| - { ID id-Old-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-Old-eNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional }| - { ID id-E-RABs-DataForwardingAddress-List CRITICALITY ignore TYPE E-RABs-DataForwardingAddress-List PRESENCE mandatory}, - ... -} -*/ - -struct DataForwardingAddressIndication_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_New_eNB_UE_X2AP_ID_Extension() { set(id_New_eNB_UE_X2AP_ID_Extension); type=1;} - void select_id_Old_eNB_UE_X2AP_ID() { set(id_Old_eNB_UE_X2AP_ID); type=2;} - void select_id_Old_eNB_UE_X2AP_ID_Extension() { set(id_Old_eNB_UE_X2AP_ID_Extension); type=3;} - void select_id_E_RABs_DataForwardingAddress_List() { set(id_E_RABs_DataForwardingAddress_List); type=4;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_New_eNB_UE_X2AP_ID_Extension)) { type = 1; return true; } - else if(equal(id_Old_eNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_Old_eNB_UE_X2AP_ID_Extension)) { type = 3; return true; } - else if(equal(id_E_RABs_DataForwardingAddress_List)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_New_eNB_UE_X2AP_ID_Extension);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_Old_eNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_Old_eNB_UE_X2AP_ID_Extension);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_E_RABs_DataForwardingAddress_List);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_New_eNB_UE_X2AP_ID_Extension() { set(ignore); type=1;} - void select_id_Old_eNB_UE_X2AP_ID() { set(ignore); type=2;} - void select_id_Old_eNB_UE_X2AP_ID_Extension() { set(ignore); type=3;} - void select_id_E_RABs_DataForwardingAddress_List() { set(ignore); type=4;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID_Extension& select_id_New_eNB_UE_X2AP_ID_Extension() { return set(1); } - UE_X2AP_ID_Extension const* get_id_New_eNB_UE_X2AP_ID_Extension() const { return get(1); } - UE_X2AP_ID& select_id_Old_eNB_UE_X2AP_ID() { return set(2); } - UE_X2AP_ID const* get_id_Old_eNB_UE_X2AP_ID() const { return get(2); } - UE_X2AP_ID_Extension& select_id_Old_eNB_UE_X2AP_ID_Extension() { return set(3); } - UE_X2AP_ID_Extension const* get_id_Old_eNB_UE_X2AP_ID_Extension() const { return get(3); } - E_RABs_DataForwardingAddress_List& select_id_E_RABs_DataForwardingAddress_List() { return set(4); } - E_RABs_DataForwardingAddress_List const* get_id_E_RABs_DataForwardingAddress_List() const { return get(4); } - bool is_unknown() const { return type == 5; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_New_eNB_UE_X2AP_ID_Extension()); return true; - case 2: v(select_id_Old_eNB_UE_X2AP_ID()); return true; - case 3: v(select_id_Old_eNB_UE_X2AP_ID_Extension()); return true; - case 4: v(select_id_E_RABs_DataForwardingAddress_List()); return true; - case 5: if(type != 5) {clear(); asn::base::set();} type = 5; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_DataForwardingAddress_List)]; - char dummy2[sizeof(UE_X2AP_ID)]; - char dummy3[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_New_eNB_UE_X2AP_ID_Extension() { set(optional); type=1;} - void select_id_Old_eNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_Old_eNB_UE_X2AP_ID_Extension() { set(optional); type=3;} - void select_id_E_RABs_DataForwardingAddress_List() { set(mandatory); type=4;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else if(equal(mandatory)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(mandatory);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -DataForwardingAddressIndication ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{DataForwardingAddressIndication-IEs}}, - ... -} -*/ - -struct DataForwardingAddressIndication : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "DataForwardingAddressIndication";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -E-RABs-Admitted-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_Admitted_Item_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-Item ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - uL-GTP-TunnelEndpoint GTPtunnelEndpoint OPTIONAL, - dL-GTP-TunnelEndpoint GTPtunnelEndpoint OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-Item-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_Admitted_Item : asn::sequence<4, 0, true, 3> -{ - static constexpr const char* name() {return "E-RABs-Admitted-Item";} - using parent_t = asn::sequence<4, 0, true, 3>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct uL_GTP_TunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "uL_GTP_TunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - uL_GTP_TunnelEndpoint_t& set_uL_GTP_TunnelEndpoint() { uL_GTP_TunnelEndpoint.setpresent(true); return uL_GTP_TunnelEndpoint;} - uL_GTP_TunnelEndpoint_t const* get_uL_GTP_TunnelEndpoint() const {return uL_GTP_TunnelEndpoint.is_valid() ? &uL_GTP_TunnelEndpoint : nullptr;} - struct dL_GTP_TunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "dL_GTP_TunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - dL_GTP_TunnelEndpoint_t& set_dL_GTP_TunnelEndpoint() { dL_GTP_TunnelEndpoint.setpresent(true); return dL_GTP_TunnelEndpoint;} - dL_GTP_TunnelEndpoint_t const* get_dL_GTP_TunnelEndpoint() const {return dL_GTP_TunnelEndpoint.is_valid() ? &dL_GTP_TunnelEndpoint : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(uL_GTP_TunnelEndpoint); - v(dL_GTP_TunnelEndpoint); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(uL_GTP_TunnelEndpoint); - v(dL_GTP_TunnelEndpoint); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - uL_GTP_TunnelEndpoint.clear(); - dL_GTP_TunnelEndpoint.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - uL_GTP_TunnelEndpoint_t uL_GTP_TunnelEndpoint; - dL_GTP_TunnelEndpoint_t dL_GTP_TunnelEndpoint; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-Admitted-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-Admitted-Item CRITICALITY ignore TYPE E-RABs-Admitted-Item PRESENCE mandatory } -} -*/ - -struct E_RABs_Admitted_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_E_RABs_Admitted_Item() { set(id_E_RABs_Admitted_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_Admitted_Item)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_Admitted_Item);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_E_RABs_Admitted_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_Admitted_Item& select_id_E_RABs_Admitted_Item() { return set(1); } - E_RABs_Admitted_Item const* get_id_E_RABs_Admitted_Item() const { return get(1); } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_Admitted_Item()); return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_Admitted_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_E_RABs_Admitted_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-List ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-Admitted-ItemIEs} } -*/ - -struct E_RABs_Admitted_List_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_Admitted_List_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_Admitted_List : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-Admitted-List";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-Admitted-ToBeAdded-Item-SCG-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_Admitted_ToBeAdded_Item_SCG_BearerExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-ToBeAdded-Item-SCG-Bearer ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - s1-DL-GTPtunnelEndpoint GTPtunnelEndpoint, - dL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, - uL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeAdded-Item-SCG-BearerExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_Admitted_ToBeAdded_Item_SCG_Bearer : asn::sequence<5, 0, true, 3> -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeAdded-Item-SCG-Bearer";} - using parent_t = asn::sequence<5, 0, true, 3>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct s1_DL_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "s1_DL_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - - }; - s1_DL_GTPtunnelEndpoint_t& ref_s1_DL_GTPtunnelEndpoint() {return s1_DL_GTPtunnelEndpoint;} - s1_DL_GTPtunnelEndpoint_t const& ref_s1_DL_GTPtunnelEndpoint() const {return s1_DL_GTPtunnelEndpoint;} - struct dL_Forwarding_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "dL_Forwarding_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - dL_Forwarding_GTPtunnelEndpoint_t& set_dL_Forwarding_GTPtunnelEndpoint() { dL_Forwarding_GTPtunnelEndpoint.setpresent(true); return dL_Forwarding_GTPtunnelEndpoint;} - dL_Forwarding_GTPtunnelEndpoint_t const* get_dL_Forwarding_GTPtunnelEndpoint() const {return dL_Forwarding_GTPtunnelEndpoint.is_valid() ? &dL_Forwarding_GTPtunnelEndpoint : nullptr;} - struct uL_Forwarding_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "uL_Forwarding_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - uL_Forwarding_GTPtunnelEndpoint_t& set_uL_Forwarding_GTPtunnelEndpoint() { uL_Forwarding_GTPtunnelEndpoint.setpresent(true); return uL_Forwarding_GTPtunnelEndpoint;} - uL_Forwarding_GTPtunnelEndpoint_t const* get_uL_Forwarding_GTPtunnelEndpoint() const {return uL_Forwarding_GTPtunnelEndpoint.is_valid() ? &uL_Forwarding_GTPtunnelEndpoint : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(s1_DL_GTPtunnelEndpoint); - v(dL_Forwarding_GTPtunnelEndpoint); - v(uL_Forwarding_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(s1_DL_GTPtunnelEndpoint); - v(dL_Forwarding_GTPtunnelEndpoint); - v(uL_Forwarding_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - s1_DL_GTPtunnelEndpoint.clear(); - dL_Forwarding_GTPtunnelEndpoint.clear(); - uL_Forwarding_GTPtunnelEndpoint.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - s1_DL_GTPtunnelEndpoint_t s1_DL_GTPtunnelEndpoint; - dL_Forwarding_GTPtunnelEndpoint_t dL_Forwarding_GTPtunnelEndpoint; - uL_Forwarding_GTPtunnelEndpoint_t uL_Forwarding_GTPtunnelEndpoint; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-Admitted-ToBeAdded-Item-Split-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_Admitted_ToBeAdded_Item_Split_BearerExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-ToBeAdded-Item-Split-Bearer ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - seNB-GTPtunnelEndpoint GTPtunnelEndpoint, - iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeAdded-Item-Split-BearerExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_Admitted_ToBeAdded_Item_Split_Bearer : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeAdded-Item-Split-Bearer";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct seNB_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "seNB_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - - }; - seNB_GTPtunnelEndpoint_t& ref_seNB_GTPtunnelEndpoint() {return seNB_GTPtunnelEndpoint;} - seNB_GTPtunnelEndpoint_t const& ref_seNB_GTPtunnelEndpoint() const {return seNB_GTPtunnelEndpoint;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(seNB_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(seNB_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - seNB_GTPtunnelEndpoint.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - seNB_GTPtunnelEndpoint_t seNB_GTPtunnelEndpoint; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-Admitted-ToBeAdded-Item ::= CHOICE { - sCG-Bearer E-RABs-Admitted-ToBeAdded-Item-SCG-Bearer, - split-Bearer E-RABs-Admitted-ToBeAdded-Item-Split-Bearer, - ... -} -*/ - -struct E_RABs_Admitted_ToBeAdded_Item : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeAdded-Item";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~E_RABs_Admitted_ToBeAdded_Item() {clear();} - struct sCG_Bearer_t : E_RABs_Admitted_ToBeAdded_Item_SCG_Bearer - { - static constexpr const char* name() {return "sCG_Bearer_t";} - using parent_t = E_RABs_Admitted_ToBeAdded_Item_SCG_Bearer; - - }; - struct split_Bearer_t : E_RABs_Admitted_ToBeAdded_Item_Split_Bearer - { - static constexpr const char* name() {return "split_Bearer_t";} - using parent_t = E_RABs_Admitted_ToBeAdded_Item_Split_Bearer; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - sCG_Bearer_t& select_sCG_Bearer() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - sCG_Bearer_t const* get_sCG_Bearer() const { if(get_index() == 1) { return &var.as();} return nullptr; } - split_Bearer_t& select_split_Bearer() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - split_Bearer_t const* get_split_Bearer() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(sCG_Bearer_t)]; - char dummy2[sizeof(split_Bearer_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -E-RABs-Admitted-ToBeAdded-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-Admitted-ToBeAdded-Item CRITICALITY ignore TYPE E-RABs-Admitted-ToBeAdded-Item PRESENCE mandatory} -} -*/ - -struct E_RABs_Admitted_ToBeAdded_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_E_RABs_Admitted_ToBeAdded_Item() { set(id_E_RABs_Admitted_ToBeAdded_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_Admitted_ToBeAdded_Item)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_Admitted_ToBeAdded_Item);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_E_RABs_Admitted_ToBeAdded_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_Admitted_ToBeAdded_Item& select_id_E_RABs_Admitted_ToBeAdded_Item() { return set(1); } - E_RABs_Admitted_ToBeAdded_Item const* get_id_E_RABs_Admitted_ToBeAdded_Item() const { return get(1); } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_Admitted_ToBeAdded_Item()); return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_Admitted_ToBeAdded_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_E_RABs_Admitted_ToBeAdded_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-ToBeAdded-List ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-Admitted-ToBeAdded-ItemIEs} } -*/ - -struct E_RABs_Admitted_ToBeAdded_List_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_Admitted_ToBeAdded_List_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_Admitted_ToBeAdded_List : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeAdded-List";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-Admitted-ToBeAdded-ModAckItem-SCG-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_BearerExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-ToBeAdded-ModAckItem-SCG-Bearer ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - s1-DL-GTPtunnelEndpoint GTPtunnelEndpoint, - dL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, - uL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeAdded-ModAckItem-SCG-BearerExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_Bearer : asn::sequence<5, 0, true, 3> -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeAdded-ModAckItem-SCG-Bearer";} - using parent_t = asn::sequence<5, 0, true, 3>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct s1_DL_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "s1_DL_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - - }; - s1_DL_GTPtunnelEndpoint_t& ref_s1_DL_GTPtunnelEndpoint() {return s1_DL_GTPtunnelEndpoint;} - s1_DL_GTPtunnelEndpoint_t const& ref_s1_DL_GTPtunnelEndpoint() const {return s1_DL_GTPtunnelEndpoint;} - struct dL_Forwarding_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "dL_Forwarding_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - dL_Forwarding_GTPtunnelEndpoint_t& set_dL_Forwarding_GTPtunnelEndpoint() { dL_Forwarding_GTPtunnelEndpoint.setpresent(true); return dL_Forwarding_GTPtunnelEndpoint;} - dL_Forwarding_GTPtunnelEndpoint_t const* get_dL_Forwarding_GTPtunnelEndpoint() const {return dL_Forwarding_GTPtunnelEndpoint.is_valid() ? &dL_Forwarding_GTPtunnelEndpoint : nullptr;} - struct uL_Forwarding_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "uL_Forwarding_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - uL_Forwarding_GTPtunnelEndpoint_t& set_uL_Forwarding_GTPtunnelEndpoint() { uL_Forwarding_GTPtunnelEndpoint.setpresent(true); return uL_Forwarding_GTPtunnelEndpoint;} - uL_Forwarding_GTPtunnelEndpoint_t const* get_uL_Forwarding_GTPtunnelEndpoint() const {return uL_Forwarding_GTPtunnelEndpoint.is_valid() ? &uL_Forwarding_GTPtunnelEndpoint : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(s1_DL_GTPtunnelEndpoint); - v(dL_Forwarding_GTPtunnelEndpoint); - v(uL_Forwarding_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(s1_DL_GTPtunnelEndpoint); - v(dL_Forwarding_GTPtunnelEndpoint); - v(uL_Forwarding_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - s1_DL_GTPtunnelEndpoint.clear(); - dL_Forwarding_GTPtunnelEndpoint.clear(); - uL_Forwarding_GTPtunnelEndpoint.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - s1_DL_GTPtunnelEndpoint_t s1_DL_GTPtunnelEndpoint; - dL_Forwarding_GTPtunnelEndpoint_t dL_Forwarding_GTPtunnelEndpoint; - uL_Forwarding_GTPtunnelEndpoint_t uL_Forwarding_GTPtunnelEndpoint; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-Admitted-ToBeAdded-ModAckItem-Split-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_Admitted_ToBeAdded_ModAckItem_Split_BearerExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-ToBeAdded-ModAckItem-Split-Bearer ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - seNB-GTPtunnelEndpoint GTPtunnelEndpoint, - iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeAdded-ModAckItem-Split-BearerExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_Admitted_ToBeAdded_ModAckItem_Split_Bearer : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeAdded-ModAckItem-Split-Bearer";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct seNB_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "seNB_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - - }; - seNB_GTPtunnelEndpoint_t& ref_seNB_GTPtunnelEndpoint() {return seNB_GTPtunnelEndpoint;} - seNB_GTPtunnelEndpoint_t const& ref_seNB_GTPtunnelEndpoint() const {return seNB_GTPtunnelEndpoint;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(seNB_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(seNB_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - seNB_GTPtunnelEndpoint.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - seNB_GTPtunnelEndpoint_t seNB_GTPtunnelEndpoint; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-Admitted-ToBeAdded-ModAckItem ::= CHOICE { - sCG-Bearer E-RABs-Admitted-ToBeAdded-ModAckItem-SCG-Bearer, - split-Bearer E-RABs-Admitted-ToBeAdded-ModAckItem-Split-Bearer, - ... -} -*/ - -struct E_RABs_Admitted_ToBeAdded_ModAckItem : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeAdded-ModAckItem";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~E_RABs_Admitted_ToBeAdded_ModAckItem() {clear();} - struct sCG_Bearer_t : E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_Bearer - { - static constexpr const char* name() {return "sCG_Bearer_t";} - using parent_t = E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_Bearer; - - }; - struct split_Bearer_t : E_RABs_Admitted_ToBeAdded_ModAckItem_Split_Bearer - { - static constexpr const char* name() {return "split_Bearer_t";} - using parent_t = E_RABs_Admitted_ToBeAdded_ModAckItem_Split_Bearer; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - sCG_Bearer_t& select_sCG_Bearer() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - sCG_Bearer_t const* get_sCG_Bearer() const { if(get_index() == 1) { return &var.as();} return nullptr; } - split_Bearer_t& select_split_Bearer() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - split_Bearer_t const* get_split_Bearer() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(sCG_Bearer_t)]; - char dummy2[sizeof(split_Bearer_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -E-RABs-Admitted-ToBeAdded-ModAckItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-Admitted-ToBeAdded-ModAckItem CRITICALITY ignore TYPE E-RABs-Admitted-ToBeAdded-ModAckItem PRESENCE mandatory} -} -*/ - -struct E_RABs_Admitted_ToBeAdded_ModAckItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_E_RABs_Admitted_ToBeAdded_ModAckItem() { set(id_E_RABs_Admitted_ToBeAdded_ModAckItem); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_Admitted_ToBeAdded_ModAckItem)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_Admitted_ToBeAdded_ModAckItem);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_E_RABs_Admitted_ToBeAdded_ModAckItem() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_Admitted_ToBeAdded_ModAckItem& select_id_E_RABs_Admitted_ToBeAdded_ModAckItem() { return set(1); } - E_RABs_Admitted_ToBeAdded_ModAckItem const* get_id_E_RABs_Admitted_ToBeAdded_ModAckItem() const { return get(1); } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_Admitted_ToBeAdded_ModAckItem()); return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_Admitted_ToBeAdded_ModAckItem)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_E_RABs_Admitted_ToBeAdded_ModAckItem() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-ToBeAdded-ModAckList ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-Admitted-ToBeAdded-ModAckItemIEs} } -*/ - -struct E_RABs_Admitted_ToBeAdded_ModAckList_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_Admitted_ToBeAdded_ModAckList_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_Admitted_ToBeAdded_ModAckList : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeAdded-ModAckList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-uLpDCPSnLength CRITICALITY ignore EXTENSION PDCPSnLength PRESENCE optional}| - { ID id-dLPDCPSnLength CRITICALITY ignore EXTENSION PDCPSnLength PRESENCE optional}, - ... -} -*/ - -struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresentExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_uLpDCPSnLength() { set(id_uLpDCPSnLength); type=1;} - void select_id_dLPDCPSnLength() { set(id_dLPDCPSnLength); type=2;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_uLpDCPSnLength)) { type = 1; return true; } - else if(equal(id_dLPDCPSnLength)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_uLpDCPSnLength);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_dLPDCPSnLength);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_uLpDCPSnLength() { set(ignore); type=1;} - void select_id_dLPDCPSnLength() { set(ignore); type=2;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - PDCPSnLength& select_id_uLpDCPSnLength() { return set(1); } - PDCPSnLength const* get_id_uLpDCPSnLength() const { return get(1); } - PDCPSnLength& select_id_dLPDCPSnLength() { return set(2); } - PDCPSnLength const* get_id_dLPDCPSnLength() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_uLpDCPSnLength()); return true; - case 2: v(select_id_dLPDCPSnLength()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(PDCPSnLength)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_uLpDCPSnLength() { set(optional); type=1;} - void select_id_dLPDCPSnLength() { set(optional); type=2;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPpresent ::= SEQUENCE { - s1-DL-GTPtunnelEndpoint GTPtunnelEndpoint, - sgNB-UL-GTP-TEIDatPDCP GTPtunnelEndpoint OPTIONAL, --- This IE shall be present if MCG resource IE in the the EN-DC Resource Configuration IE is set to “present” -- - rlc-Mode RLCMode OPTIONAL, --- This IE shall be present if MCG resource IE in the the EN-DC Resource Configuration IE is set to “present” -- - dL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, - uL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, - mCG-E-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters OPTIONAL, --- This IE shall be present if MCG resource and SCG resource IEs in the the EN-DC Resource Configuration IE are set to “present” and the GBR QoS Information IE is present in the Requested MCG E-RAB Level QoS Parameters IE -- - uL-Configuration ULConfiguration OPTIONAL, --- This IE shall be present if MCG resource and SCG resources IEs in the the EN-DC Resource Configuration IE are set to “present” -- - iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPpresentExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresent : asn::sequence<8, 0, true, 7> -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPpresent";} - using parent_t = asn::sequence<8, 0, true, 7>; - struct s1_DL_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "s1_DL_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - - }; - s1_DL_GTPtunnelEndpoint_t& ref_s1_DL_GTPtunnelEndpoint() {return s1_DL_GTPtunnelEndpoint;} - s1_DL_GTPtunnelEndpoint_t const& ref_s1_DL_GTPtunnelEndpoint() const {return s1_DL_GTPtunnelEndpoint;} - struct sgNB_UL_GTP_TEIDatPDCP_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "sgNB_UL_GTP_TEIDatPDCP_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - sgNB_UL_GTP_TEIDatPDCP_t& set_sgNB_UL_GTP_TEIDatPDCP() { sgNB_UL_GTP_TEIDatPDCP.setpresent(true); return sgNB_UL_GTP_TEIDatPDCP;} - sgNB_UL_GTP_TEIDatPDCP_t const* get_sgNB_UL_GTP_TEIDatPDCP() const {return sgNB_UL_GTP_TEIDatPDCP.is_valid() ? &sgNB_UL_GTP_TEIDatPDCP : nullptr;} - struct rlc_Mode_t : RLCMode - { - static constexpr const char* name() {return "rlc_Mode_t";} - using parent_t = RLCMode; - static constexpr bool optional = true; - - }; - rlc_Mode_t& set_rlc_Mode() { rlc_Mode.setpresent(true); return rlc_Mode;} - rlc_Mode_t const* get_rlc_Mode() const {return rlc_Mode.is_valid() ? &rlc_Mode : nullptr;} - struct dL_Forwarding_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "dL_Forwarding_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - dL_Forwarding_GTPtunnelEndpoint_t& set_dL_Forwarding_GTPtunnelEndpoint() { dL_Forwarding_GTPtunnelEndpoint.setpresent(true); return dL_Forwarding_GTPtunnelEndpoint;} - dL_Forwarding_GTPtunnelEndpoint_t const* get_dL_Forwarding_GTPtunnelEndpoint() const {return dL_Forwarding_GTPtunnelEndpoint.is_valid() ? &dL_Forwarding_GTPtunnelEndpoint : nullptr;} - struct uL_Forwarding_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "uL_Forwarding_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - uL_Forwarding_GTPtunnelEndpoint_t& set_uL_Forwarding_GTPtunnelEndpoint() { uL_Forwarding_GTPtunnelEndpoint.setpresent(true); return uL_Forwarding_GTPtunnelEndpoint;} - uL_Forwarding_GTPtunnelEndpoint_t const* get_uL_Forwarding_GTPtunnelEndpoint() const {return uL_Forwarding_GTPtunnelEndpoint.is_valid() ? &uL_Forwarding_GTPtunnelEndpoint : nullptr;} - struct mCG_E_RAB_Level_QoS_Parameters_t : E_RAB_Level_QoS_Parameters - { - static constexpr const char* name() {return "mCG_E_RAB_Level_QoS_Parameters_t";} - using parent_t = E_RAB_Level_QoS_Parameters; - static constexpr bool optional = true; - - }; - mCG_E_RAB_Level_QoS_Parameters_t& set_mCG_E_RAB_Level_QoS_Parameters() { mCG_E_RAB_Level_QoS_Parameters.setpresent(true); return mCG_E_RAB_Level_QoS_Parameters;} - mCG_E_RAB_Level_QoS_Parameters_t const* get_mCG_E_RAB_Level_QoS_Parameters() const {return mCG_E_RAB_Level_QoS_Parameters.is_valid() ? &mCG_E_RAB_Level_QoS_Parameters : nullptr;} - struct uL_Configuration_t : ULConfiguration - { - static constexpr const char* name() {return "uL_Configuration_t";} - using parent_t = ULConfiguration; - static constexpr bool optional = true; - - }; - uL_Configuration_t& set_uL_Configuration() { uL_Configuration.setpresent(true); return uL_Configuration;} - uL_Configuration_t const* get_uL_Configuration() const {return uL_Configuration.is_valid() ? &uL_Configuration : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(s1_DL_GTPtunnelEndpoint); - v(sgNB_UL_GTP_TEIDatPDCP); - v(rlc_Mode); - v(dL_Forwarding_GTPtunnelEndpoint); - v(uL_Forwarding_GTPtunnelEndpoint); - v(mCG_E_RAB_Level_QoS_Parameters); - v(uL_Configuration); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(s1_DL_GTPtunnelEndpoint); - v(sgNB_UL_GTP_TEIDatPDCP); - v(rlc_Mode); - v(dL_Forwarding_GTPtunnelEndpoint); - v(uL_Forwarding_GTPtunnelEndpoint); - v(mCG_E_RAB_Level_QoS_Parameters); - v(uL_Configuration); - v(iE_Extensions); - - }; - void clear() - { - s1_DL_GTPtunnelEndpoint.clear(); - sgNB_UL_GTP_TEIDatPDCP.clear(); - rlc_Mode.clear(); - dL_Forwarding_GTPtunnelEndpoint.clear(); - uL_Forwarding_GTPtunnelEndpoint.clear(); - mCG_E_RAB_Level_QoS_Parameters.clear(); - uL_Configuration.clear(); - iE_Extensions.clear(); - - }; - private: - s1_DL_GTPtunnelEndpoint_t s1_DL_GTPtunnelEndpoint; - sgNB_UL_GTP_TEIDatPDCP_t sgNB_UL_GTP_TEIDatPDCP; - rlc_Mode_t rlc_Mode; - dL_Forwarding_GTPtunnelEndpoint_t dL_Forwarding_GTPtunnelEndpoint; - uL_Forwarding_GTPtunnelEndpoint_t uL_Forwarding_GTPtunnelEndpoint; - mCG_E_RAB_Level_QoS_Parameters_t mCG_E_RAB_Level_QoS_Parameters; - uL_Configuration_t uL_Configuration; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPnotpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-lCID CRITICALITY ignore EXTENSION LCID PRESENCE optional}, - ... -} -*/ - -struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresentExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_lCID() { set(id_lCID); type=1;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_lCID)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_lCID);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_lCID() { set(ignore); type=1;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - LCID& select_id_lCID() { return set(1); } - LCID const* get_id_lCID() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_lCID()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(LCID)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_lCID() { set(optional); type=1;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPnotpresent ::= SEQUENCE { - sgNB-DL-GTP-TEIDatSCG GTPtunnelEndpoint, - secondary-sgNB-DL-GTP-TEIDatSCG GTPtunnelEndpoint OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPnotpresentExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresent : asn::sequence<3, 0, true, 2> -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPnotpresent";} - using parent_t = asn::sequence<3, 0, true, 2>; - struct sgNB_DL_GTP_TEIDatSCG_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "sgNB_DL_GTP_TEIDatSCG_t";} - using parent_t = GTPtunnelEndpoint; - - }; - sgNB_DL_GTP_TEIDatSCG_t& ref_sgNB_DL_GTP_TEIDatSCG() {return sgNB_DL_GTP_TEIDatSCG;} - sgNB_DL_GTP_TEIDatSCG_t const& ref_sgNB_DL_GTP_TEIDatSCG() const {return sgNB_DL_GTP_TEIDatSCG;} - struct secondary_sgNB_DL_GTP_TEIDatSCG_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "secondary_sgNB_DL_GTP_TEIDatSCG_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - secondary_sgNB_DL_GTP_TEIDatSCG_t& set_secondary_sgNB_DL_GTP_TEIDatSCG() { secondary_sgNB_DL_GTP_TEIDatSCG.setpresent(true); return secondary_sgNB_DL_GTP_TEIDatSCG;} - secondary_sgNB_DL_GTP_TEIDatSCG_t const* get_secondary_sgNB_DL_GTP_TEIDatSCG() const {return secondary_sgNB_DL_GTP_TEIDatSCG.is_valid() ? &secondary_sgNB_DL_GTP_TEIDatSCG : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(sgNB_DL_GTP_TEIDatSCG); - v(secondary_sgNB_DL_GTP_TEIDatSCG); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(sgNB_DL_GTP_TEIDatSCG); - v(secondary_sgNB_DL_GTP_TEIDatSCG); - v(iE_Extensions); - - }; - void clear() - { - sgNB_DL_GTP_TEIDatSCG.clear(); - secondary_sgNB_DL_GTP_TEIDatSCG.clear(); - iE_Extensions.clear(); - - }; - private: - sgNB_DL_GTP_TEIDatSCG_t sgNB_DL_GTP_TEIDatSCG; - secondary_sgNB_DL_GTP_TEIDatSCG_t secondary_sgNB_DL_GTP_TEIDatSCG; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeAdded-SgNBAddReqAck-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_ToBeAdded_SgNBAddReqAck_ItemExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - en-DC-ResourceConfiguration EN-DC-ResourceConfiguration, - resource-configuration CHOICE { - sgNBPDCPpresent E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPpresent, - sgNBPDCPnotpresent E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPnotpresent, - ... - }, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeAdded-SgNBAddReqAck-ItemExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item : asn::sequence<4, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item";} - using parent_t = asn::sequence<4, 0, true, 1>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct en_DC_ResourceConfiguration_t : EN_DC_ResourceConfiguration - { - static constexpr const char* name() {return "en_DC_ResourceConfiguration_t";} - using parent_t = EN_DC_ResourceConfiguration; - - }; - en_DC_ResourceConfiguration_t& ref_en_DC_ResourceConfiguration() {return en_DC_ResourceConfiguration;} - en_DC_ResourceConfiguration_t const& ref_en_DC_ResourceConfiguration() const {return en_DC_ResourceConfiguration;} - struct resource_configuration_t : asn::choice<2, 0, true> - { - static constexpr const char* name() {return "resource_configuration_t";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~resource_configuration_t() {clear();} - struct sgNBPDCPpresent_t : E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresent - { - static constexpr const char* name() {return "sgNBPDCPpresent_t";} - using parent_t = E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresent; - - }; - struct sgNBPDCPnotpresent_t : E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresent - { - static constexpr const char* name() {return "sgNBPDCPnotpresent_t";} - using parent_t = E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresent; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - sgNBPDCPpresent_t& select_sgNBPDCPpresent() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - sgNBPDCPpresent_t const* get_sgNBPDCPpresent() const { if(get_index() == 1) { return &var.as();} return nullptr; } - sgNBPDCPnotpresent_t& select_sgNBPDCPnotpresent() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - sgNBPDCPnotpresent_t const* get_sgNBPDCPnotpresent() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(sgNBPDCPpresent_t)]; - char dummy2[sizeof(sgNBPDCPnotpresent_t)]; - - }; - asn::variant var; - index_type index {0}; - }; - resource_configuration_t& ref_resource_configuration() {return resource_configuration;} - resource_configuration_t const& ref_resource_configuration() const {return resource_configuration;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(en_DC_ResourceConfiguration); - v(resource_configuration); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(en_DC_ResourceConfiguration); - v(resource_configuration); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - en_DC_ResourceConfiguration.clear(); - resource_configuration.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - en_DC_ResourceConfiguration_t en_DC_ResourceConfiguration; - resource_configuration_t resource_configuration; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item CRITICALITY ignore TYPE E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item PRESENCE mandatory} -} -*/ - -struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item() { set(id_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item& select_id_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item() { return set(1); } - E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item const* get_id_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item() const { return get(1); } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item()); return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-ToBeAdded-SgNBAddReqAckList ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-ItemIEs} } -*/ - -struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeAdded-SgNBAddReqAckList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-uLpDCPSnLength CRITICALITY ignore EXTENSION PDCPSnLength PRESENCE optional}| - { ID id-dLPDCPSnLength CRITICALITY ignore EXTENSION PDCPSnLength PRESENCE optional}, - ... -} -*/ - -struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresentExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_uLpDCPSnLength() { set(id_uLpDCPSnLength); type=1;} - void select_id_dLPDCPSnLength() { set(id_dLPDCPSnLength); type=2;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_uLpDCPSnLength)) { type = 1; return true; } - else if(equal(id_dLPDCPSnLength)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_uLpDCPSnLength);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_dLPDCPSnLength);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_uLpDCPSnLength() { set(ignore); type=1;} - void select_id_dLPDCPSnLength() { set(ignore); type=2;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - PDCPSnLength& select_id_uLpDCPSnLength() { return set(1); } - PDCPSnLength const* get_id_uLpDCPSnLength() const { return get(1); } - PDCPSnLength& select_id_dLPDCPSnLength() { return set(2); } - PDCPSnLength const* get_id_dLPDCPSnLength() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_uLpDCPSnLength()); return true; - case 2: v(select_id_dLPDCPSnLength()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(PDCPSnLength)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_uLpDCPSnLength() { set(optional); type=1;} - void select_id_dLPDCPSnLength() { set(optional); type=2;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPpresent ::= SEQUENCE { - s1-DL-GTPtunnelEndpoint GTPtunnelEndpoint, - sgNB-UL-GTP-TEIDatPDCP GTPtunnelEndpoint OPTIONAL, --- This IE shall be present if MCG resource IE in the the EN-DC Resource Configuration IE are set to “present” -- - rlc-Mode RLCMode OPTIONAL, --- This IE shall be present if MCG resource IE in the the EN-DC Resource Configuration IE are set to “present” -- - dL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, - uL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, - mCG-E-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters OPTIONAL, --- This IE shall be present if MCG resource and SCG resource IEs in the the EN-DC Resource Configuration IE are set to “present” and the GBR QoS Information IE is present in the Requested MCG E-RAB Level QoS Parameters IE -- - uL-Configuration ULConfiguration OPTIONAL, --- This IE shall be present if MCG resource and SCG resources IEs in the the EN-DC Resource Configuration IE are set to “present” -- - iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPpresentExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresent : asn::sequence<8, 0, true, 7> -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPpresent";} - using parent_t = asn::sequence<8, 0, true, 7>; - struct s1_DL_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "s1_DL_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - - }; - s1_DL_GTPtunnelEndpoint_t& ref_s1_DL_GTPtunnelEndpoint() {return s1_DL_GTPtunnelEndpoint;} - s1_DL_GTPtunnelEndpoint_t const& ref_s1_DL_GTPtunnelEndpoint() const {return s1_DL_GTPtunnelEndpoint;} - struct sgNB_UL_GTP_TEIDatPDCP_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "sgNB_UL_GTP_TEIDatPDCP_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - sgNB_UL_GTP_TEIDatPDCP_t& set_sgNB_UL_GTP_TEIDatPDCP() { sgNB_UL_GTP_TEIDatPDCP.setpresent(true); return sgNB_UL_GTP_TEIDatPDCP;} - sgNB_UL_GTP_TEIDatPDCP_t const* get_sgNB_UL_GTP_TEIDatPDCP() const {return sgNB_UL_GTP_TEIDatPDCP.is_valid() ? &sgNB_UL_GTP_TEIDatPDCP : nullptr;} - struct rlc_Mode_t : RLCMode - { - static constexpr const char* name() {return "rlc_Mode_t";} - using parent_t = RLCMode; - static constexpr bool optional = true; - - }; - rlc_Mode_t& set_rlc_Mode() { rlc_Mode.setpresent(true); return rlc_Mode;} - rlc_Mode_t const* get_rlc_Mode() const {return rlc_Mode.is_valid() ? &rlc_Mode : nullptr;} - struct dL_Forwarding_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "dL_Forwarding_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - dL_Forwarding_GTPtunnelEndpoint_t& set_dL_Forwarding_GTPtunnelEndpoint() { dL_Forwarding_GTPtunnelEndpoint.setpresent(true); return dL_Forwarding_GTPtunnelEndpoint;} - dL_Forwarding_GTPtunnelEndpoint_t const* get_dL_Forwarding_GTPtunnelEndpoint() const {return dL_Forwarding_GTPtunnelEndpoint.is_valid() ? &dL_Forwarding_GTPtunnelEndpoint : nullptr;} - struct uL_Forwarding_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "uL_Forwarding_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - uL_Forwarding_GTPtunnelEndpoint_t& set_uL_Forwarding_GTPtunnelEndpoint() { uL_Forwarding_GTPtunnelEndpoint.setpresent(true); return uL_Forwarding_GTPtunnelEndpoint;} - uL_Forwarding_GTPtunnelEndpoint_t const* get_uL_Forwarding_GTPtunnelEndpoint() const {return uL_Forwarding_GTPtunnelEndpoint.is_valid() ? &uL_Forwarding_GTPtunnelEndpoint : nullptr;} - struct mCG_E_RAB_Level_QoS_Parameters_t : E_RAB_Level_QoS_Parameters - { - static constexpr const char* name() {return "mCG_E_RAB_Level_QoS_Parameters_t";} - using parent_t = E_RAB_Level_QoS_Parameters; - static constexpr bool optional = true; - - }; - mCG_E_RAB_Level_QoS_Parameters_t& set_mCG_E_RAB_Level_QoS_Parameters() { mCG_E_RAB_Level_QoS_Parameters.setpresent(true); return mCG_E_RAB_Level_QoS_Parameters;} - mCG_E_RAB_Level_QoS_Parameters_t const* get_mCG_E_RAB_Level_QoS_Parameters() const {return mCG_E_RAB_Level_QoS_Parameters.is_valid() ? &mCG_E_RAB_Level_QoS_Parameters : nullptr;} - struct uL_Configuration_t : ULConfiguration - { - static constexpr const char* name() {return "uL_Configuration_t";} - using parent_t = ULConfiguration; - static constexpr bool optional = true; - - }; - uL_Configuration_t& set_uL_Configuration() { uL_Configuration.setpresent(true); return uL_Configuration;} - uL_Configuration_t const* get_uL_Configuration() const {return uL_Configuration.is_valid() ? &uL_Configuration : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(s1_DL_GTPtunnelEndpoint); - v(sgNB_UL_GTP_TEIDatPDCP); - v(rlc_Mode); - v(dL_Forwarding_GTPtunnelEndpoint); - v(uL_Forwarding_GTPtunnelEndpoint); - v(mCG_E_RAB_Level_QoS_Parameters); - v(uL_Configuration); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(s1_DL_GTPtunnelEndpoint); - v(sgNB_UL_GTP_TEIDatPDCP); - v(rlc_Mode); - v(dL_Forwarding_GTPtunnelEndpoint); - v(uL_Forwarding_GTPtunnelEndpoint); - v(mCG_E_RAB_Level_QoS_Parameters); - v(uL_Configuration); - v(iE_Extensions); - - }; - void clear() - { - s1_DL_GTPtunnelEndpoint.clear(); - sgNB_UL_GTP_TEIDatPDCP.clear(); - rlc_Mode.clear(); - dL_Forwarding_GTPtunnelEndpoint.clear(); - uL_Forwarding_GTPtunnelEndpoint.clear(); - mCG_E_RAB_Level_QoS_Parameters.clear(); - uL_Configuration.clear(); - iE_Extensions.clear(); - - }; - private: - s1_DL_GTPtunnelEndpoint_t s1_DL_GTPtunnelEndpoint; - sgNB_UL_GTP_TEIDatPDCP_t sgNB_UL_GTP_TEIDatPDCP; - rlc_Mode_t rlc_Mode; - dL_Forwarding_GTPtunnelEndpoint_t dL_Forwarding_GTPtunnelEndpoint; - uL_Forwarding_GTPtunnelEndpoint_t uL_Forwarding_GTPtunnelEndpoint; - mCG_E_RAB_Level_QoS_Parameters_t mCG_E_RAB_Level_QoS_Parameters; - uL_Configuration_t uL_Configuration; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPnotpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { - {ID id-lCID CRITICALITY ignore EXTENSION LCID PRESENCE optional}, - ... -} -*/ - -struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_lCID() { set(id_lCID); type=1;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_lCID)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_lCID);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_lCID() { set(ignore); type=1;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - LCID& select_id_lCID() { return set(1); } - LCID const* get_id_lCID() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_lCID()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(LCID)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_lCID() { set(optional); type=1;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPnotpresent ::= SEQUENCE { - sgNB-DL-GTP-TEIDatSCG GTPtunnelEndpoint, - secondary-sgNB-DL-GTP-TEIDatSCG GTPtunnelEndpoint OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPnotpresentExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresent : asn::sequence<3, 0, true, 2> -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPnotpresent";} - using parent_t = asn::sequence<3, 0, true, 2>; - struct sgNB_DL_GTP_TEIDatSCG_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "sgNB_DL_GTP_TEIDatSCG_t";} - using parent_t = GTPtunnelEndpoint; - - }; - sgNB_DL_GTP_TEIDatSCG_t& ref_sgNB_DL_GTP_TEIDatSCG() {return sgNB_DL_GTP_TEIDatSCG;} - sgNB_DL_GTP_TEIDatSCG_t const& ref_sgNB_DL_GTP_TEIDatSCG() const {return sgNB_DL_GTP_TEIDatSCG;} - struct secondary_sgNB_DL_GTP_TEIDatSCG_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "secondary_sgNB_DL_GTP_TEIDatSCG_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - secondary_sgNB_DL_GTP_TEIDatSCG_t& set_secondary_sgNB_DL_GTP_TEIDatSCG() { secondary_sgNB_DL_GTP_TEIDatSCG.setpresent(true); return secondary_sgNB_DL_GTP_TEIDatSCG;} - secondary_sgNB_DL_GTP_TEIDatSCG_t const* get_secondary_sgNB_DL_GTP_TEIDatSCG() const {return secondary_sgNB_DL_GTP_TEIDatSCG.is_valid() ? &secondary_sgNB_DL_GTP_TEIDatSCG : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(sgNB_DL_GTP_TEIDatSCG); - v(secondary_sgNB_DL_GTP_TEIDatSCG); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(sgNB_DL_GTP_TEIDatSCG); - v(secondary_sgNB_DL_GTP_TEIDatSCG); - v(iE_Extensions); - - }; - void clear() - { - sgNB_DL_GTP_TEIDatSCG.clear(); - secondary_sgNB_DL_GTP_TEIDatSCG.clear(); - iE_Extensions.clear(); - - }; - private: - sgNB_DL_GTP_TEIDatSCG_t sgNB_DL_GTP_TEIDatSCG; - secondary_sgNB_DL_GTP_TEIDatSCG_t secondary_sgNB_DL_GTP_TEIDatSCG; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-Admitted-ToBeAdded-SgNBModAck-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-ToBeAdded-SgNBModAck-Item ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - en-DC-ResourceConfiguration EN-DC-ResourceConfiguration, - resource-configuration CHOICE { - sgNBPDCPpresent E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPpresent, - sgNBPDCPnotpresent E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPnotpresent, - ... - }, - iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeAdded-SgNBModAck-ItemExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item : asn::sequence<4, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeAdded-SgNBModAck-Item";} - using parent_t = asn::sequence<4, 0, true, 1>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct en_DC_ResourceConfiguration_t : EN_DC_ResourceConfiguration - { - static constexpr const char* name() {return "en_DC_ResourceConfiguration_t";} - using parent_t = EN_DC_ResourceConfiguration; - - }; - en_DC_ResourceConfiguration_t& ref_en_DC_ResourceConfiguration() {return en_DC_ResourceConfiguration;} - en_DC_ResourceConfiguration_t const& ref_en_DC_ResourceConfiguration() const {return en_DC_ResourceConfiguration;} - struct resource_configuration_t : asn::choice<2, 0, true> - { - static constexpr const char* name() {return "resource_configuration_t";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~resource_configuration_t() {clear();} - struct sgNBPDCPpresent_t : E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresent - { - static constexpr const char* name() {return "sgNBPDCPpresent_t";} - using parent_t = E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresent; - - }; - struct sgNBPDCPnotpresent_t : E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresent - { - static constexpr const char* name() {return "sgNBPDCPnotpresent_t";} - using parent_t = E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresent; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - sgNBPDCPpresent_t& select_sgNBPDCPpresent() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - sgNBPDCPpresent_t const* get_sgNBPDCPpresent() const { if(get_index() == 1) { return &var.as();} return nullptr; } - sgNBPDCPnotpresent_t& select_sgNBPDCPnotpresent() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - sgNBPDCPnotpresent_t const* get_sgNBPDCPnotpresent() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(sgNBPDCPpresent_t)]; - char dummy2[sizeof(sgNBPDCPnotpresent_t)]; - - }; - asn::variant var; - index_type index {0}; - }; - resource_configuration_t& ref_resource_configuration() {return resource_configuration;} - resource_configuration_t const& ref_resource_configuration() const {return resource_configuration;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(en_DC_ResourceConfiguration); - v(resource_configuration); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(en_DC_ResourceConfiguration); - v(resource_configuration); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - en_DC_ResourceConfiguration.clear(); - resource_configuration.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - en_DC_ResourceConfiguration_t en_DC_ResourceConfiguration; - resource_configuration_t resource_configuration; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-Admitted-ToBeAdded-SgNBModAck-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-Admitted-ToBeAdded-SgNBModAck-Item CRITICALITY ignore TYPE E-RABs-Admitted-ToBeAdded-SgNBModAck-Item PRESENCE mandatory} -} -*/ - -struct E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item() { set(id_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_Admitted_ToBeAdded_SgNBModAck_Item& select_id_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item() { return set(1); } - E_RABs_Admitted_ToBeAdded_SgNBModAck_Item const* get_id_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item() const { return get(1); } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item()); return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_Admitted_ToBeAdded_SgNBModAck_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-ToBeAdded-SgNBModAckList ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-Admitted-ToBeAdded-SgNBModAck-ItemIEs} } -*/ - -struct E_RABs_Admitted_ToBeAdded_SgNBModAckList_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_Admitted_ToBeAdded_SgNBModAckList_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_Admitted_ToBeAdded_SgNBModAckList : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeAdded-SgNBModAckList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-Admitted-ToBeModified-ModAckItem-SCG-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_Admitted_ToBeModified_ModAckItem_SCG_BearerExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-ToBeModified-ModAckItem-SCG-Bearer ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - s1-DL-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeModified-ModAckItem-SCG-BearerExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_Admitted_ToBeModified_ModAckItem_SCG_Bearer : asn::sequence<3, 0, true, 2> -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeModified-ModAckItem-SCG-Bearer";} - using parent_t = asn::sequence<3, 0, true, 2>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct s1_DL_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "s1_DL_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - s1_DL_GTPtunnelEndpoint_t& set_s1_DL_GTPtunnelEndpoint() { s1_DL_GTPtunnelEndpoint.setpresent(true); return s1_DL_GTPtunnelEndpoint;} - s1_DL_GTPtunnelEndpoint_t const* get_s1_DL_GTPtunnelEndpoint() const {return s1_DL_GTPtunnelEndpoint.is_valid() ? &s1_DL_GTPtunnelEndpoint : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(s1_DL_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(s1_DL_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - s1_DL_GTPtunnelEndpoint.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - s1_DL_GTPtunnelEndpoint_t s1_DL_GTPtunnelEndpoint; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-Admitted-ToBeModified-ModAckItem-Split-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_Admitted_ToBeModified_ModAckItem_Split_BearerExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-ToBeModified-ModAckItem-Split-Bearer ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - seNB-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeModified-ModAckItem-Split-BearerExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_Admitted_ToBeModified_ModAckItem_Split_Bearer : asn::sequence<3, 0, true, 2> -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeModified-ModAckItem-Split-Bearer";} - using parent_t = asn::sequence<3, 0, true, 2>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct seNB_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "seNB_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - seNB_GTPtunnelEndpoint_t& set_seNB_GTPtunnelEndpoint() { seNB_GTPtunnelEndpoint.setpresent(true); return seNB_GTPtunnelEndpoint;} - seNB_GTPtunnelEndpoint_t const* get_seNB_GTPtunnelEndpoint() const {return seNB_GTPtunnelEndpoint.is_valid() ? &seNB_GTPtunnelEndpoint : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(seNB_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(seNB_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - seNB_GTPtunnelEndpoint.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - seNB_GTPtunnelEndpoint_t seNB_GTPtunnelEndpoint; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-Admitted-ToBeModified-ModAckItem ::= CHOICE { - sCG-Bearer E-RABs-Admitted-ToBeModified-ModAckItem-SCG-Bearer, - split-Bearer E-RABs-Admitted-ToBeModified-ModAckItem-Split-Bearer, - ... -} -*/ - -struct E_RABs_Admitted_ToBeModified_ModAckItem : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeModified-ModAckItem";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~E_RABs_Admitted_ToBeModified_ModAckItem() {clear();} - struct sCG_Bearer_t : E_RABs_Admitted_ToBeModified_ModAckItem_SCG_Bearer - { - static constexpr const char* name() {return "sCG_Bearer_t";} - using parent_t = E_RABs_Admitted_ToBeModified_ModAckItem_SCG_Bearer; - - }; - struct split_Bearer_t : E_RABs_Admitted_ToBeModified_ModAckItem_Split_Bearer - { - static constexpr const char* name() {return "split_Bearer_t";} - using parent_t = E_RABs_Admitted_ToBeModified_ModAckItem_Split_Bearer; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - sCG_Bearer_t& select_sCG_Bearer() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - sCG_Bearer_t const* get_sCG_Bearer() const { if(get_index() == 1) { return &var.as();} return nullptr; } - split_Bearer_t& select_split_Bearer() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - split_Bearer_t const* get_split_Bearer() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(sCG_Bearer_t)]; - char dummy2[sizeof(split_Bearer_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -E-RABs-Admitted-ToBeModified-ModAckItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-Admitted-ToBeModified-ModAckItem CRITICALITY ignore TYPE E-RABs-Admitted-ToBeModified-ModAckItem PRESENCE mandatory} -} -*/ - -struct E_RABs_Admitted_ToBeModified_ModAckItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_E_RABs_Admitted_ToBeModified_ModAckItem() { set(id_E_RABs_Admitted_ToBeModified_ModAckItem); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_Admitted_ToBeModified_ModAckItem)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_Admitted_ToBeModified_ModAckItem);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_E_RABs_Admitted_ToBeModified_ModAckItem() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_Admitted_ToBeModified_ModAckItem& select_id_E_RABs_Admitted_ToBeModified_ModAckItem() { return set(1); } - E_RABs_Admitted_ToBeModified_ModAckItem const* get_id_E_RABs_Admitted_ToBeModified_ModAckItem() const { return get(1); } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_Admitted_ToBeModified_ModAckItem()); return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_Admitted_ToBeModified_ModAckItem)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_E_RABs_Admitted_ToBeModified_ModAckItem() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-ToBeModified-ModAckList ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-Admitted-ToBeModified-ModAckItemIEs} } -*/ - -struct E_RABs_Admitted_ToBeModified_ModAckList_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_Admitted_ToBeModified_ModAckList_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_Admitted_ToBeModified_ModAckList : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeModified-ModAckList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-uLpDCPSnLength CRITICALITY ignore EXTENSION PDCPSnLength PRESENCE optional}| - { ID id-dLPDCPSnLength CRITICALITY ignore EXTENSION PDCPSnLength PRESENCE optional}, - ... -} -*/ - -struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresentExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_uLpDCPSnLength() { set(id_uLpDCPSnLength); type=1;} - void select_id_dLPDCPSnLength() { set(id_dLPDCPSnLength); type=2;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_uLpDCPSnLength)) { type = 1; return true; } - else if(equal(id_dLPDCPSnLength)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_uLpDCPSnLength);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_dLPDCPSnLength);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_uLpDCPSnLength() { set(ignore); type=1;} - void select_id_dLPDCPSnLength() { set(ignore); type=2;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - PDCPSnLength& select_id_uLpDCPSnLength() { return set(1); } - PDCPSnLength const* get_id_uLpDCPSnLength() const { return get(1); } - PDCPSnLength& select_id_dLPDCPSnLength() { return set(2); } - PDCPSnLength const* get_id_dLPDCPSnLength() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_uLpDCPSnLength()); return true; - case 2: v(select_id_dLPDCPSnLength()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(PDCPSnLength)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_uLpDCPSnLength() { set(optional); type=1;} - void select_id_dLPDCPSnLength() { set(optional); type=2;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPpresent ::= SEQUENCE { - s1-DL-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, - sgNB-UL-GTP-TEIDatPDCP GTPtunnelEndpoint OPTIONAL, - mCG-E-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters OPTIONAL, - uL-Configuration ULConfiguration OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPpresentExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresent : asn::sequence<5, 0, true, 5> -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPpresent";} - using parent_t = asn::sequence<5, 0, true, 5>; - struct s1_DL_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "s1_DL_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - s1_DL_GTPtunnelEndpoint_t& set_s1_DL_GTPtunnelEndpoint() { s1_DL_GTPtunnelEndpoint.setpresent(true); return s1_DL_GTPtunnelEndpoint;} - s1_DL_GTPtunnelEndpoint_t const* get_s1_DL_GTPtunnelEndpoint() const {return s1_DL_GTPtunnelEndpoint.is_valid() ? &s1_DL_GTPtunnelEndpoint : nullptr;} - struct sgNB_UL_GTP_TEIDatPDCP_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "sgNB_UL_GTP_TEIDatPDCP_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - sgNB_UL_GTP_TEIDatPDCP_t& set_sgNB_UL_GTP_TEIDatPDCP() { sgNB_UL_GTP_TEIDatPDCP.setpresent(true); return sgNB_UL_GTP_TEIDatPDCP;} - sgNB_UL_GTP_TEIDatPDCP_t const* get_sgNB_UL_GTP_TEIDatPDCP() const {return sgNB_UL_GTP_TEIDatPDCP.is_valid() ? &sgNB_UL_GTP_TEIDatPDCP : nullptr;} - struct mCG_E_RAB_Level_QoS_Parameters_t : E_RAB_Level_QoS_Parameters - { - static constexpr const char* name() {return "mCG_E_RAB_Level_QoS_Parameters_t";} - using parent_t = E_RAB_Level_QoS_Parameters; - static constexpr bool optional = true; - - }; - mCG_E_RAB_Level_QoS_Parameters_t& set_mCG_E_RAB_Level_QoS_Parameters() { mCG_E_RAB_Level_QoS_Parameters.setpresent(true); return mCG_E_RAB_Level_QoS_Parameters;} - mCG_E_RAB_Level_QoS_Parameters_t const* get_mCG_E_RAB_Level_QoS_Parameters() const {return mCG_E_RAB_Level_QoS_Parameters.is_valid() ? &mCG_E_RAB_Level_QoS_Parameters : nullptr;} - struct uL_Configuration_t : ULConfiguration - { - static constexpr const char* name() {return "uL_Configuration_t";} - using parent_t = ULConfiguration; - static constexpr bool optional = true; - - }; - uL_Configuration_t& set_uL_Configuration() { uL_Configuration.setpresent(true); return uL_Configuration;} - uL_Configuration_t const* get_uL_Configuration() const {return uL_Configuration.is_valid() ? &uL_Configuration : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(s1_DL_GTPtunnelEndpoint); - v(sgNB_UL_GTP_TEIDatPDCP); - v(mCG_E_RAB_Level_QoS_Parameters); - v(uL_Configuration); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(s1_DL_GTPtunnelEndpoint); - v(sgNB_UL_GTP_TEIDatPDCP); - v(mCG_E_RAB_Level_QoS_Parameters); - v(uL_Configuration); - v(iE_Extensions); - - }; - void clear() - { - s1_DL_GTPtunnelEndpoint.clear(); - sgNB_UL_GTP_TEIDatPDCP.clear(); - mCG_E_RAB_Level_QoS_Parameters.clear(); - uL_Configuration.clear(); - iE_Extensions.clear(); - - }; - private: - s1_DL_GTPtunnelEndpoint_t s1_DL_GTPtunnelEndpoint; - sgNB_UL_GTP_TEIDatPDCP_t sgNB_UL_GTP_TEIDatPDCP; - mCG_E_RAB_Level_QoS_Parameters_t mCG_E_RAB_Level_QoS_Parameters; - uL_Configuration_t uL_Configuration; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPnotpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-secondarysgNBDLGTPTEIDatPDCP CRITICALITY ignore EXTENSION GTPtunnelEndpoint PRESENCE optional}| - { ID id-RLC-Status CRITICALITY ignore EXTENSION RLC-Status PRESENCE optional }, - ... -} -*/ - -struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_secondarysgNBDLGTPTEIDatPDCP() { set(id_secondarysgNBDLGTPTEIDatPDCP); type=1;} - void select_id_RLC_Status() { set(id_RLC_Status); type=2;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_secondarysgNBDLGTPTEIDatPDCP)) { type = 1; return true; } - else if(equal(id_RLC_Status)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_secondarysgNBDLGTPTEIDatPDCP);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_RLC_Status);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_secondarysgNBDLGTPTEIDatPDCP() { set(ignore); type=1;} - void select_id_RLC_Status() { set(ignore); type=2;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - GTPtunnelEndpoint& select_id_secondarysgNBDLGTPTEIDatPDCP() { return set(1); } - GTPtunnelEndpoint const* get_id_secondarysgNBDLGTPTEIDatPDCP() const { return get(1); } - RLC_Status& select_id_RLC_Status() { return set(2); } - RLC_Status const* get_id_RLC_Status() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_secondarysgNBDLGTPTEIDatPDCP()); return true; - case 2: v(select_id_RLC_Status()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(GTPtunnelEndpoint)]; - char dummy2[sizeof(RLC_Status)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_secondarysgNBDLGTPTEIDatPDCP() { set(optional); type=1;} - void select_id_RLC_Status() { set(optional); type=2;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPnotpresent ::= SEQUENCE { - sgNB-DL-GTP-TEIDatSCG GTPtunnelEndpoint OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPnotpresentExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresent : asn::sequence<2, 0, true, 2> -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPnotpresent";} - using parent_t = asn::sequence<2, 0, true, 2>; - struct sgNB_DL_GTP_TEIDatSCG_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "sgNB_DL_GTP_TEIDatSCG_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - sgNB_DL_GTP_TEIDatSCG_t& set_sgNB_DL_GTP_TEIDatSCG() { sgNB_DL_GTP_TEIDatSCG.setpresent(true); return sgNB_DL_GTP_TEIDatSCG;} - sgNB_DL_GTP_TEIDatSCG_t const* get_sgNB_DL_GTP_TEIDatSCG() const {return sgNB_DL_GTP_TEIDatSCG.is_valid() ? &sgNB_DL_GTP_TEIDatSCG : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(sgNB_DL_GTP_TEIDatSCG); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(sgNB_DL_GTP_TEIDatSCG); - v(iE_Extensions); - - }; - void clear() - { - sgNB_DL_GTP_TEIDatSCG.clear(); - iE_Extensions.clear(); - - }; - private: - sgNB_DL_GTP_TEIDatSCG_t sgNB_DL_GTP_TEIDatSCG; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeAdded-SgNBModAck-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_ToBeAdded_SgNBModAck_ItemExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-ToBeModified-SgNBModAck-Item ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - en-DC-ResourceConfiguration EN-DC-ResourceConfiguration, - resource-configuration CHOICE { - sgNBPDCPpresent E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPpresent, - sgNBPDCPnotpresent E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPnotpresent, - ... - }, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeAdded-SgNBModAck-ItemExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item : asn::sequence<4, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeModified-SgNBModAck-Item";} - using parent_t = asn::sequence<4, 0, true, 1>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct en_DC_ResourceConfiguration_t : EN_DC_ResourceConfiguration - { - static constexpr const char* name() {return "en_DC_ResourceConfiguration_t";} - using parent_t = EN_DC_ResourceConfiguration; - - }; - en_DC_ResourceConfiguration_t& ref_en_DC_ResourceConfiguration() {return en_DC_ResourceConfiguration;} - en_DC_ResourceConfiguration_t const& ref_en_DC_ResourceConfiguration() const {return en_DC_ResourceConfiguration;} - struct resource_configuration_t : asn::choice<2, 0, true> - { - static constexpr const char* name() {return "resource_configuration_t";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~resource_configuration_t() {clear();} - struct sgNBPDCPpresent_t : E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresent - { - static constexpr const char* name() {return "sgNBPDCPpresent_t";} - using parent_t = E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresent; - - }; - struct sgNBPDCPnotpresent_t : E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresent - { - static constexpr const char* name() {return "sgNBPDCPnotpresent_t";} - using parent_t = E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresent; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - sgNBPDCPpresent_t& select_sgNBPDCPpresent() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - sgNBPDCPpresent_t const* get_sgNBPDCPpresent() const { if(get_index() == 1) { return &var.as();} return nullptr; } - sgNBPDCPnotpresent_t& select_sgNBPDCPnotpresent() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - sgNBPDCPnotpresent_t const* get_sgNBPDCPnotpresent() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(sgNBPDCPpresent_t)]; - char dummy2[sizeof(sgNBPDCPnotpresent_t)]; - - }; - asn::variant var; - index_type index {0}; - }; - resource_configuration_t& ref_resource_configuration() {return resource_configuration;} - resource_configuration_t const& ref_resource_configuration() const {return resource_configuration;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(en_DC_ResourceConfiguration); - v(resource_configuration); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(en_DC_ResourceConfiguration); - v(resource_configuration); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - en_DC_ResourceConfiguration.clear(); - resource_configuration.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - en_DC_ResourceConfiguration_t en_DC_ResourceConfiguration; - resource_configuration_t resource_configuration; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-Admitted-ToBeModified-SgNBModAck-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-Admitted-ToBeModified-SgNBModAck-Item CRITICALITY ignore TYPE E-RABs-Admitted-ToBeModified-SgNBModAck-Item PRESENCE mandatory} -} -*/ - -struct E_RABs_Admitted_ToBeModified_SgNBModAck_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_E_RABs_Admitted_ToBeModified_SgNBModAck_Item() { set(id_E_RABs_Admitted_ToBeModified_SgNBModAck_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_Admitted_ToBeModified_SgNBModAck_Item)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_Admitted_ToBeModified_SgNBModAck_Item);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_E_RABs_Admitted_ToBeModified_SgNBModAck_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_Admitted_ToBeModified_SgNBModAck_Item& select_id_E_RABs_Admitted_ToBeModified_SgNBModAck_Item() { return set(1); } - E_RABs_Admitted_ToBeModified_SgNBModAck_Item const* get_id_E_RABs_Admitted_ToBeModified_SgNBModAck_Item() const { return get(1); } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_Admitted_ToBeModified_SgNBModAck_Item()); return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_Admitted_ToBeModified_SgNBModAck_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_E_RABs_Admitted_ToBeModified_SgNBModAck_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-ToBeModified-SgNBModAckList ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-Admitted-ToBeModified-SgNBModAck-ItemIEs} } -*/ - -struct E_RABs_Admitted_ToBeModified_SgNBModAckList_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_Admitted_ToBeModified_SgNBModAckList_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_Admitted_ToBeModified_SgNBModAckList : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeModified-SgNBModAckList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-Admitted-ToBeReleased-ModAckItem-SCG-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_BearerExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-ToBeReleased-ModAckItem-SCG-Bearer ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeReleased-ModAckItem-SCG-BearerExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_Bearer : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeReleased-ModAckItem-SCG-Bearer";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-Admitted-ToBeReleased-ModAckItem-Split-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_Admitted_ToBeReleased_ModAckItem_Split_BearerExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-ToBeReleased-ModAckItem-Split-Bearer ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeReleased-ModAckItem-Split-BearerExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_Admitted_ToBeReleased_ModAckItem_Split_Bearer : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeReleased-ModAckItem-Split-Bearer";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-Admitted-ToReleased-ModAckItem ::= CHOICE { - sCG-Bearer E-RABs-Admitted-ToBeReleased-ModAckItem-SCG-Bearer, - split-Bearer E-RABs-Admitted-ToBeReleased-ModAckItem-Split-Bearer, - ... -} -*/ - -struct E_RABs_Admitted_ToReleased_ModAckItem : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToReleased-ModAckItem";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~E_RABs_Admitted_ToReleased_ModAckItem() {clear();} - struct sCG_Bearer_t : E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_Bearer - { - static constexpr const char* name() {return "sCG_Bearer_t";} - using parent_t = E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_Bearer; - - }; - struct split_Bearer_t : E_RABs_Admitted_ToBeReleased_ModAckItem_Split_Bearer - { - static constexpr const char* name() {return "split_Bearer_t";} - using parent_t = E_RABs_Admitted_ToBeReleased_ModAckItem_Split_Bearer; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - sCG_Bearer_t& select_sCG_Bearer() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - sCG_Bearer_t const* get_sCG_Bearer() const { if(get_index() == 1) { return &var.as();} return nullptr; } - split_Bearer_t& select_split_Bearer() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - split_Bearer_t const* get_split_Bearer() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(sCG_Bearer_t)]; - char dummy2[sizeof(split_Bearer_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -E-RABs-Admitted-ToBeReleased-ModAckItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-Admitted-ToBeReleased-ModAckItem CRITICALITY ignore TYPE E-RABs-Admitted-ToReleased-ModAckItem PRESENCE mandatory} -} -*/ - -struct E_RABs_Admitted_ToBeReleased_ModAckItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_E_RABs_Admitted_ToBeReleased_ModAckItem() { set(id_E_RABs_Admitted_ToBeReleased_ModAckItem); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_Admitted_ToBeReleased_ModAckItem)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_Admitted_ToBeReleased_ModAckItem);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_E_RABs_Admitted_ToBeReleased_ModAckItem() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_Admitted_ToReleased_ModAckItem& select_id_E_RABs_Admitted_ToBeReleased_ModAckItem() { return set(1); } - E_RABs_Admitted_ToReleased_ModAckItem const* get_id_E_RABs_Admitted_ToBeReleased_ModAckItem() const { return get(1); } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_Admitted_ToBeReleased_ModAckItem()); return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_Admitted_ToReleased_ModAckItem)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_E_RABs_Admitted_ToBeReleased_ModAckItem() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-ToBeReleased-ModAckList ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-Admitted-ToBeReleased-ModAckItemIEs} } -*/ - -struct E_RABs_Admitted_ToBeReleased_ModAckList_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_Admitted_ToBeReleased_ModAckList_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_Admitted_ToBeReleased_ModAckList : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeReleased-ModAckList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPnotpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPnotpresent ::= SEQUENCE { - iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPnotpresentExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresent : asn::sequence<1, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPnotpresent";} - using parent_t = asn::sequence<1, 0, true, 1>; - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(iE_Extensions); - - }; - void clear() - { - iE_Extensions.clear(); - - }; - private: - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresentExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPpresent ::= SEQUENCE { - iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPpresentExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresent : asn::sequence<1, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPpresent";} - using parent_t = asn::sequence<1, 0, true, 1>; - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(iE_Extensions); - - }; - void clear() - { - iE_Extensions.clear(); - - }; - private: - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeReleased-SgNBModAck-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBModAck_ItemExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-ToReleased-SgNBModAck-Item ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - en-DC-ResourceConfiguration EN-DC-ResourceConfiguration, - resource-configuration CHOICE { - sgNBPDCPpresent E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPpresent, - sgNBPDCPnotpresent E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPnotpresent, - ... - }, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-SgNBModAck-ItemExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_Admitted_ToReleased_SgNBModAck_Item : asn::sequence<4, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToReleased-SgNBModAck-Item";} - using parent_t = asn::sequence<4, 0, true, 1>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct en_DC_ResourceConfiguration_t : EN_DC_ResourceConfiguration - { - static constexpr const char* name() {return "en_DC_ResourceConfiguration_t";} - using parent_t = EN_DC_ResourceConfiguration; - - }; - en_DC_ResourceConfiguration_t& ref_en_DC_ResourceConfiguration() {return en_DC_ResourceConfiguration;} - en_DC_ResourceConfiguration_t const& ref_en_DC_ResourceConfiguration() const {return en_DC_ResourceConfiguration;} - struct resource_configuration_t : asn::choice<2, 0, true> - { - static constexpr const char* name() {return "resource_configuration_t";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~resource_configuration_t() {clear();} - struct sgNBPDCPpresent_t : E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresent - { - static constexpr const char* name() {return "sgNBPDCPpresent_t";} - using parent_t = E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresent; - - }; - struct sgNBPDCPnotpresent_t : E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresent - { - static constexpr const char* name() {return "sgNBPDCPnotpresent_t";} - using parent_t = E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresent; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - sgNBPDCPpresent_t& select_sgNBPDCPpresent() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - sgNBPDCPpresent_t const* get_sgNBPDCPpresent() const { if(get_index() == 1) { return &var.as();} return nullptr; } - sgNBPDCPnotpresent_t& select_sgNBPDCPnotpresent() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - sgNBPDCPnotpresent_t const* get_sgNBPDCPnotpresent() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(sgNBPDCPpresent_t)]; - char dummy2[sizeof(sgNBPDCPnotpresent_t)]; - - }; - asn::variant var; - index_type index {0}; - }; - resource_configuration_t& ref_resource_configuration() {return resource_configuration;} - resource_configuration_t const& ref_resource_configuration() const {return resource_configuration;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(en_DC_ResourceConfiguration); - v(resource_configuration); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(en_DC_ResourceConfiguration); - v(resource_configuration); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - en_DC_ResourceConfiguration.clear(); - resource_configuration.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - en_DC_ResourceConfiguration_t en_DC_ResourceConfiguration; - resource_configuration_t resource_configuration; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-Admitted-ToBeReleased-SgNBModAck-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-Admitted-ToBeReleased-SgNBModAck-Item CRITICALITY ignore TYPE E-RABs-Admitted-ToReleased-SgNBModAck-Item PRESENCE mandatory} -} -*/ - -struct E_RABs_Admitted_ToBeReleased_SgNBModAck_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item() { set(id_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_Admitted_ToReleased_SgNBModAck_Item& select_id_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item() { return set(1); } - E_RABs_Admitted_ToReleased_SgNBModAck_Item const* get_id_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item() const { return get(1); } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item()); return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_Admitted_ToReleased_SgNBModAck_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-ToBeReleased-SgNBModAckList ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-Admitted-ToBeReleased-SgNBModAck-ItemIEs} } -*/ - -struct E_RABs_Admitted_ToBeReleased_SgNBModAckList_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_Admitted_ToBeReleased_SgNBModAckList_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_Admitted_ToBeReleased_SgNBModAckList : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeReleased-SgNBModAckList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-Admitted-ToBeReleased-SgNBRelReqAck-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-ToBeReleased-SgNBRelReqAck-Item ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - rlc-Mode-transferred RLCMode, - iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeReleased-SgNBRelReqAck-ItemExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeReleased-SgNBRelReqAck-Item";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct rlc_Mode_transferred_t : RLCMode - { - static constexpr const char* name() {return "rlc_Mode_transferred_t";} - using parent_t = RLCMode; - - }; - rlc_Mode_transferred_t& ref_rlc_Mode_transferred() {return rlc_Mode_transferred;} - rlc_Mode_transferred_t const& ref_rlc_Mode_transferred() const {return rlc_Mode_transferred;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(rlc_Mode_transferred); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(rlc_Mode_transferred); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - rlc_Mode_transferred.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - rlc_Mode_transferred_t rlc_Mode_transferred; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-Admitted-ToBeReleased-SgNBRelReqAck-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-Admitted-ToBeReleased-SgNBRelReqAck-Item CRITICALITY ignore TYPE E-RABs-Admitted-ToBeReleased-SgNBRelReqAck-Item PRESENCE mandatory}, - ... -} -*/ - -struct E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item() { set(id_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item& select_id_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item() { return set(1); } - E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item const* get_id_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-ToBeReleased-SgNBRelReqAckList ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF - ProtocolIE-Single-Container { {E-RABs-Admitted-ToBeReleased-SgNBRelReqAck-ItemIEs} } -*/ - -struct E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeReleased-SgNBRelReqAckList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresentExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPpresent ::= SEQUENCE { - iE-Extensions ProtocolExtensionContainer { {E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPpresentExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresent : asn::sequence<1, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPpresent";} - using parent_t = asn::sequence<1, 0, true, 1>; - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(iE_Extensions); - - }; - void clear() - { - iE_Extensions.clear(); - - }; - private: - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPnotpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-uLpDCPSnLength CRITICALITY ignore EXTENSION PDCPSnLength PRESENCE optional}| - { ID id-dLPDCPSnLength CRITICALITY ignore EXTENSION PDCPSnLength PRESENCE optional}, - ... -} -*/ - -struct E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresentExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_uLpDCPSnLength() { set(id_uLpDCPSnLength); type=1;} - void select_id_dLPDCPSnLength() { set(id_dLPDCPSnLength); type=2;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_uLpDCPSnLength)) { type = 1; return true; } - else if(equal(id_dLPDCPSnLength)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_uLpDCPSnLength);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_dLPDCPSnLength);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_uLpDCPSnLength() { set(ignore); type=1;} - void select_id_dLPDCPSnLength() { set(ignore); type=2;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - PDCPSnLength& select_id_uLpDCPSnLength() { return set(1); } - PDCPSnLength const* get_id_uLpDCPSnLength() const { return get(1); } - PDCPSnLength& select_id_dLPDCPSnLength() { return set(2); } - PDCPSnLength const* get_id_dLPDCPSnLength() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_uLpDCPSnLength()); return true; - case 2: v(select_id_dLPDCPSnLength()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(PDCPSnLength)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_uLpDCPSnLength() { set(optional); type=1;} - void select_id_dLPDCPSnLength() { set(optional); type=2;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPnotpresent ::= SEQUENCE { - secondary-meNB-UL-GTP-TEIDatPDCP GTPtunnelEndpoint OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPnotpresentExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresent : asn::sequence<2, 0, true, 2> -{ - static constexpr const char* name() {return "E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPnotpresent";} - using parent_t = asn::sequence<2, 0, true, 2>; - struct secondary_meNB_UL_GTP_TEIDatPDCP_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "secondary_meNB_UL_GTP_TEIDatPDCP_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - secondary_meNB_UL_GTP_TEIDatPDCP_t& set_secondary_meNB_UL_GTP_TEIDatPDCP() { secondary_meNB_UL_GTP_TEIDatPDCP.setpresent(true); return secondary_meNB_UL_GTP_TEIDatPDCP;} - secondary_meNB_UL_GTP_TEIDatPDCP_t const* get_secondary_meNB_UL_GTP_TEIDatPDCP() const {return secondary_meNB_UL_GTP_TEIDatPDCP.is_valid() ? &secondary_meNB_UL_GTP_TEIDatPDCP : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(secondary_meNB_UL_GTP_TEIDatPDCP); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(secondary_meNB_UL_GTP_TEIDatPDCP); - v(iE_Extensions); - - }; - void clear() - { - secondary_meNB_UL_GTP_TEIDatPDCP.clear(); - iE_Extensions.clear(); - - }; - private: - secondary_meNB_UL_GTP_TEIDatPDCP_t secondary_meNB_UL_GTP_TEIDatPDCP; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-AdmittedToBeModified-SgNBModConf-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_AdmittedToBeModified_SgNBModConf_ItemExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-AdmittedToBeModified-SgNBModConf-Item ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - en-DC-ResourceConfiguration EN-DC-ResourceConfiguration, - resource-configuration CHOICE { - sgNBPDCPpresent E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPpresent, - sgNBPDCPnotpresent E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPnotpresent, - ... - }, - iE-Extensions ProtocolExtensionContainer { {E-RABs-AdmittedToBeModified-SgNBModConf-ItemExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_AdmittedToBeModified_SgNBModConf_Item : asn::sequence<4, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-AdmittedToBeModified-SgNBModConf-Item";} - using parent_t = asn::sequence<4, 0, true, 1>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct en_DC_ResourceConfiguration_t : EN_DC_ResourceConfiguration - { - static constexpr const char* name() {return "en_DC_ResourceConfiguration_t";} - using parent_t = EN_DC_ResourceConfiguration; - - }; - en_DC_ResourceConfiguration_t& ref_en_DC_ResourceConfiguration() {return en_DC_ResourceConfiguration;} - en_DC_ResourceConfiguration_t const& ref_en_DC_ResourceConfiguration() const {return en_DC_ResourceConfiguration;} - struct resource_configuration_t : asn::choice<2, 0, true> - { - static constexpr const char* name() {return "resource_configuration_t";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~resource_configuration_t() {clear();} - struct sgNBPDCPpresent_t : E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresent - { - static constexpr const char* name() {return "sgNBPDCPpresent_t";} - using parent_t = E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresent; - - }; - struct sgNBPDCPnotpresent_t : E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresent - { - static constexpr const char* name() {return "sgNBPDCPnotpresent_t";} - using parent_t = E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresent; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - sgNBPDCPpresent_t& select_sgNBPDCPpresent() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - sgNBPDCPpresent_t const* get_sgNBPDCPpresent() const { if(get_index() == 1) { return &var.as();} return nullptr; } - sgNBPDCPnotpresent_t& select_sgNBPDCPnotpresent() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - sgNBPDCPnotpresent_t const* get_sgNBPDCPnotpresent() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(sgNBPDCPpresent_t)]; - char dummy2[sizeof(sgNBPDCPnotpresent_t)]; - - }; - asn::variant var; - index_type index {0}; - }; - resource_configuration_t& ref_resource_configuration() {return resource_configuration;} - resource_configuration_t const& ref_resource_configuration() const {return resource_configuration;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(en_DC_ResourceConfiguration); - v(resource_configuration); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(en_DC_ResourceConfiguration); - v(resource_configuration); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - en_DC_ResourceConfiguration.clear(); - resource_configuration.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - en_DC_ResourceConfiguration_t en_DC_ResourceConfiguration; - resource_configuration_t resource_configuration; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-AdmittedToBeModified-SgNBModConf-ItemIEs X2AP-PROTOCOL-IES ::= { -{ ID id-E-RABs-AdmittedToBeModified-SgNBModConf-Item CRITICALITY ignore TYPE E-RABs-AdmittedToBeModified-SgNBModConf-Item PRESENCE mandatory }, - ... -} -*/ - -struct E_RABs_AdmittedToBeModified_SgNBModConf_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_AdmittedToBeModified_SgNBModConf_Item() { set(id_E_RABs_AdmittedToBeModified_SgNBModConf_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_AdmittedToBeModified_SgNBModConf_Item)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_AdmittedToBeModified_SgNBModConf_Item);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_AdmittedToBeModified_SgNBModConf_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_AdmittedToBeModified_SgNBModConf_Item& select_id_E_RABs_AdmittedToBeModified_SgNBModConf_Item() { return set(1); } - E_RABs_AdmittedToBeModified_SgNBModConf_Item const* get_id_E_RABs_AdmittedToBeModified_SgNBModConf_Item() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_AdmittedToBeModified_SgNBModConf_Item()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_AdmittedToBeModified_SgNBModConf_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_AdmittedToBeModified_SgNBModConf_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-AdmittedToBeModified-SgNBModConfList ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container - { {E-RABs-AdmittedToBeModified-SgNBModConf-ItemIEs} } -*/ - -struct E_RABs_AdmittedToBeModified_SgNBModConfList_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_AdmittedToBeModified_SgNBModConfList_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_AdmittedToBeModified_SgNBModConfList : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-AdmittedToBeModified-SgNBModConfList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-SubjectToCounterCheckItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_SubjectToCounterCheckItemExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-SubjectToCounterCheckItem ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - uL-Count INTEGER (0..4294967295), - dL-Count INTEGER (0..4294967295), - iE-Extensions ProtocolExtensionContainer { {E-RABs-SubjectToCounterCheckItemExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_SubjectToCounterCheckItem : asn::sequence<4, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-SubjectToCounterCheckItem";} - using parent_t = asn::sequence<4, 0, true, 1>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct uL_Count_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "uL_Count_t";} - using parent_t = asn::integer<>; - - }; - - uL_Count_t& ref_uL_Count() {return uL_Count;} - uL_Count_t const& ref_uL_Count() const {return uL_Count;} - struct dL_Count_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "dL_Count_t";} - using parent_t = asn::integer<>; - - }; - - dL_Count_t& ref_dL_Count() {return dL_Count;} - dL_Count_t const& ref_dL_Count() const {return dL_Count;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(uL_Count); - v(dL_Count); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(uL_Count); - v(dL_Count); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - uL_Count.clear(); - dL_Count.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - uL_Count_t uL_Count; - dL_Count_t dL_Count; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-SubjectToCounterCheckItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-SubjectToCounterCheckItem CRITICALITY ignore TYPE E-RABs-SubjectToCounterCheckItem PRESENCE mandatory}, - ... -} -*/ - -struct E_RABs_SubjectToCounterCheckItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_SubjectToCounterCheckItem() { set(id_E_RABs_SubjectToCounterCheckItem); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_SubjectToCounterCheckItem)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_SubjectToCounterCheckItem);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_SubjectToCounterCheckItem() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_SubjectToCounterCheckItem& select_id_E_RABs_SubjectToCounterCheckItem() { return set(1); } - E_RABs_SubjectToCounterCheckItem const* get_id_E_RABs_SubjectToCounterCheckItem() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_SubjectToCounterCheckItem()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_SubjectToCounterCheckItem)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_SubjectToCounterCheckItem() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-SubjectToCounterCheck-List ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-SubjectToCounterCheckItemIEs} } -*/ - -struct E_RABs_SubjectToCounterCheck_List_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_SubjectToCounterCheck_List_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_SubjectToCounterCheck_List : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-SubjectToCounterCheck-List";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-SubjectToSgNBCounterCheck-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_SubjectToSgNBCounterCheck_ItemExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-SubjectToSgNBCounterCheck-Item ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - uL-Count INTEGER (0..4294967295), - dL-Count INTEGER (0..4294967295), - iE-Extensions ProtocolExtensionContainer { {E-RABs-SubjectToSgNBCounterCheck-ItemExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_SubjectToSgNBCounterCheck_Item : asn::sequence<4, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-SubjectToSgNBCounterCheck-Item";} - using parent_t = asn::sequence<4, 0, true, 1>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct uL_Count_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "uL_Count_t";} - using parent_t = asn::integer<>; - - }; - - uL_Count_t& ref_uL_Count() {return uL_Count;} - uL_Count_t const& ref_uL_Count() const {return uL_Count;} - struct dL_Count_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "dL_Count_t";} - using parent_t = asn::integer<>; - - }; - - dL_Count_t& ref_dL_Count() {return dL_Count;} - dL_Count_t const& ref_dL_Count() const {return dL_Count;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(uL_Count); - v(dL_Count); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(uL_Count); - v(dL_Count); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - uL_Count.clear(); - dL_Count.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - uL_Count_t uL_Count; - dL_Count_t dL_Count; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-SubjectToSgNBCounterCheck-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-SubjectToSgNBCounterCheck-Item CRITICALITY ignore TYPE E-RABs-SubjectToSgNBCounterCheck-Item PRESENCE mandatory}, - ... -} -*/ - -struct E_RABs_SubjectToSgNBCounterCheck_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_SubjectToSgNBCounterCheck_Item() { set(id_E_RABs_SubjectToSgNBCounterCheck_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_SubjectToSgNBCounterCheck_Item)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_SubjectToSgNBCounterCheck_Item);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_SubjectToSgNBCounterCheck_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_SubjectToSgNBCounterCheck_Item& select_id_E_RABs_SubjectToSgNBCounterCheck_Item() { return set(1); } - E_RABs_SubjectToSgNBCounterCheck_Item const* get_id_E_RABs_SubjectToSgNBCounterCheck_Item() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_SubjectToSgNBCounterCheck_Item()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_SubjectToSgNBCounterCheck_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_SubjectToSgNBCounterCheck_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-SubjectToSgNBCounterCheck-List ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-SubjectToSgNBCounterCheck-ItemIEs} } -*/ - -struct E_RABs_SubjectToSgNBCounterCheck_List_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_SubjectToSgNBCounterCheck_List_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_SubjectToSgNBCounterCheck_List : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-SubjectToSgNBCounterCheck-List";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-SubjectToStatusTransfer-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-ReceiveStatusOfULPDCPSDUsExtended CRITICALITY ignore EXTENSION ReceiveStatusOfULPDCPSDUsExtended PRESENCE optional}| - { ID id-ULCOUNTValueExtended CRITICALITY ignore EXTENSION COUNTValueExtended PRESENCE optional}| - { ID id-DLCOUNTValueExtended CRITICALITY ignore EXTENSION COUNTValueExtended PRESENCE optional}| - { ID id-ReceiveStatusOfULPDCPSDUsPDCP-SNlength18 CRITICALITY ignore EXTENSION ReceiveStatusOfULPDCPSDUsPDCP-SNlength18 PRESENCE optional}| - { ID id-ULCOUNTValuePDCP-SNlength18 CRITICALITY ignore EXTENSION COUNTvaluePDCP-SNlength18 PRESENCE optional}| - { ID id-DLCOUNTValuePDCP-SNlength18 CRITICALITY ignore EXTENSION COUNTvaluePDCP-SNlength18 PRESENCE optional}, - ... -} -*/ - -struct E_RABs_SubjectToStatusTransfer_ItemExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_ReceiveStatusOfULPDCPSDUsExtended() { set(id_ReceiveStatusOfULPDCPSDUsExtended); type=1;} - void select_id_ULCOUNTValueExtended() { set(id_ULCOUNTValueExtended); type=2;} - void select_id_DLCOUNTValueExtended() { set(id_DLCOUNTValueExtended); type=3;} - void select_id_ReceiveStatusOfULPDCPSDUsPDCP_SNlength18() { set(id_ReceiveStatusOfULPDCPSDUsPDCP_SNlength18); type=4;} - void select_id_ULCOUNTValuePDCP_SNlength18() { set(id_ULCOUNTValuePDCP_SNlength18); type=5;} - void select_id_DLCOUNTValuePDCP_SNlength18() { set(id_DLCOUNTValuePDCP_SNlength18); type=6;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_ReceiveStatusOfULPDCPSDUsExtended)) { type = 1; return true; } - else if(equal(id_ULCOUNTValueExtended)) { type = 2; return true; } - else if(equal(id_DLCOUNTValueExtended)) { type = 3; return true; } - else if(equal(id_ReceiveStatusOfULPDCPSDUsPDCP_SNlength18)) { type = 4; return true; } - else if(equal(id_ULCOUNTValuePDCP_SNlength18)) { type = 5; return true; } - else if(equal(id_DLCOUNTValuePDCP_SNlength18)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_ReceiveStatusOfULPDCPSDUsExtended);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_ULCOUNTValueExtended);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_DLCOUNTValueExtended);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_ReceiveStatusOfULPDCPSDUsPDCP_SNlength18);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_ULCOUNTValuePDCP_SNlength18);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_DLCOUNTValuePDCP_SNlength18);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_ReceiveStatusOfULPDCPSDUsExtended() { set(ignore); type=1;} - void select_id_ULCOUNTValueExtended() { set(ignore); type=2;} - void select_id_DLCOUNTValueExtended() { set(ignore); type=3;} - void select_id_ReceiveStatusOfULPDCPSDUsPDCP_SNlength18() { set(ignore); type=4;} - void select_id_ULCOUNTValuePDCP_SNlength18() { set(ignore); type=5;} - void select_id_DLCOUNTValuePDCP_SNlength18() { set(ignore); type=6;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else if(equal(ignore)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(ignore);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - ReceiveStatusOfULPDCPSDUsExtended& select_id_ReceiveStatusOfULPDCPSDUsExtended() { return set(1); } - ReceiveStatusOfULPDCPSDUsExtended const* get_id_ReceiveStatusOfULPDCPSDUsExtended() const { return get(1); } - COUNTValueExtended& select_id_ULCOUNTValueExtended() { return set(2); } - COUNTValueExtended const* get_id_ULCOUNTValueExtended() const { return get(2); } - COUNTValueExtended& select_id_DLCOUNTValueExtended() { return set(3); } - COUNTValueExtended const* get_id_DLCOUNTValueExtended() const { return get(3); } - ReceiveStatusOfULPDCPSDUsPDCP_SNlength18& select_id_ReceiveStatusOfULPDCPSDUsPDCP_SNlength18() { return set(4); } - ReceiveStatusOfULPDCPSDUsPDCP_SNlength18 const* get_id_ReceiveStatusOfULPDCPSDUsPDCP_SNlength18() const { return get(4); } - COUNTvaluePDCP_SNlength18& select_id_ULCOUNTValuePDCP_SNlength18() { return set(5); } - COUNTvaluePDCP_SNlength18 const* get_id_ULCOUNTValuePDCP_SNlength18() const { return get(5); } - COUNTvaluePDCP_SNlength18& select_id_DLCOUNTValuePDCP_SNlength18() { return set(6); } - COUNTvaluePDCP_SNlength18 const* get_id_DLCOUNTValuePDCP_SNlength18() const { return get(6); } - bool is_unknown() const { return type == 7; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_ReceiveStatusOfULPDCPSDUsExtended()); return true; - case 2: v(select_id_ULCOUNTValueExtended()); return true; - case 3: v(select_id_DLCOUNTValueExtended()); return true; - case 4: v(select_id_ReceiveStatusOfULPDCPSDUsPDCP_SNlength18()); return true; - case 5: v(select_id_ULCOUNTValuePDCP_SNlength18()); return true; - case 6: v(select_id_DLCOUNTValuePDCP_SNlength18()); return true; - case 7: if(type != 7) {clear(); asn::base::set();} type = 7; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(COUNTValueExtended)]; - char dummy2[sizeof(COUNTvaluePDCP_SNlength18)]; - char dummy3[sizeof(ReceiveStatusOfULPDCPSDUsExtended)]; - char dummy4[sizeof(ReceiveStatusOfULPDCPSDUsPDCP_SNlength18)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_ReceiveStatusOfULPDCPSDUsExtended() { set(optional); type=1;} - void select_id_ULCOUNTValueExtended() { set(optional); type=2;} - void select_id_DLCOUNTValueExtended() { set(optional); type=3;} - void select_id_ReceiveStatusOfULPDCPSDUsPDCP_SNlength18() { set(optional); type=4;} - void select_id_ULCOUNTValuePDCP_SNlength18() { set(optional); type=5;} - void select_id_DLCOUNTValuePDCP_SNlength18() { set(optional); type=6;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-SubjectToStatusTransfer-Item ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - - receiveStatusofULPDCPSDUs ReceiveStatusofULPDCPSDUs OPTIONAL, - uL-COUNTvalue COUNTvalue, - dL-COUNTvalue COUNTvalue, - iE-Extensions ProtocolExtensionContainer { {E-RABs-SubjectToStatusTransfer-ItemExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_SubjectToStatusTransfer_Item : asn::sequence<5, 0, true, 2> -{ - static constexpr const char* name() {return "E-RABs-SubjectToStatusTransfer-Item";} - using parent_t = asn::sequence<5, 0, true, 2>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct receiveStatusofULPDCPSDUs_t : ReceiveStatusofULPDCPSDUs - { - static constexpr const char* name() {return "receiveStatusofULPDCPSDUs_t";} - using parent_t = ReceiveStatusofULPDCPSDUs; - static constexpr bool optional = true; - - }; - receiveStatusofULPDCPSDUs_t& set_receiveStatusofULPDCPSDUs() { receiveStatusofULPDCPSDUs.setpresent(true); return receiveStatusofULPDCPSDUs;} - receiveStatusofULPDCPSDUs_t const* get_receiveStatusofULPDCPSDUs() const {return receiveStatusofULPDCPSDUs.is_valid() ? &receiveStatusofULPDCPSDUs : nullptr;} - struct uL_COUNTvalue_t : COUNTvalue - { - static constexpr const char* name() {return "uL_COUNTvalue_t";} - using parent_t = COUNTvalue; - - }; - uL_COUNTvalue_t& ref_uL_COUNTvalue() {return uL_COUNTvalue;} - uL_COUNTvalue_t const& ref_uL_COUNTvalue() const {return uL_COUNTvalue;} - struct dL_COUNTvalue_t : COUNTvalue - { - static constexpr const char* name() {return "dL_COUNTvalue_t";} - using parent_t = COUNTvalue; - - }; - dL_COUNTvalue_t& ref_dL_COUNTvalue() {return dL_COUNTvalue;} - dL_COUNTvalue_t const& ref_dL_COUNTvalue() const {return dL_COUNTvalue;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(receiveStatusofULPDCPSDUs); - v(uL_COUNTvalue); - v(dL_COUNTvalue); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(receiveStatusofULPDCPSDUs); - v(uL_COUNTvalue); - v(dL_COUNTvalue); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - receiveStatusofULPDCPSDUs.clear(); - uL_COUNTvalue.clear(); - dL_COUNTvalue.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - receiveStatusofULPDCPSDUs_t receiveStatusofULPDCPSDUs; - uL_COUNTvalue_t uL_COUNTvalue; - dL_COUNTvalue_t dL_COUNTvalue; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-SubjectToStatusTransfer-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-SubjectToStatusTransfer-Item CRITICALITY ignore TYPE E-RABs-SubjectToStatusTransfer-Item PRESENCE mandatory } -} -*/ - -struct E_RABs_SubjectToStatusTransfer_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_E_RABs_SubjectToStatusTransfer_Item() { set(id_E_RABs_SubjectToStatusTransfer_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_SubjectToStatusTransfer_Item)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_SubjectToStatusTransfer_Item);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_E_RABs_SubjectToStatusTransfer_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_SubjectToStatusTransfer_Item& select_id_E_RABs_SubjectToStatusTransfer_Item() { return set(1); } - E_RABs_SubjectToStatusTransfer_Item const* get_id_E_RABs_SubjectToStatusTransfer_Item() const { return get(1); } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_SubjectToStatusTransfer_Item()); return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_SubjectToStatusTransfer_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_E_RABs_SubjectToStatusTransfer_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-SubjectToStatusTransfer-List ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-SubjectToStatusTransfer-ItemIEs} } -*/ - -struct E_RABs_SubjectToStatusTransfer_List_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_SubjectToStatusTransfer_List_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_SubjectToStatusTransfer_List : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-SubjectToStatusTransfer-List";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-ToBeAdded-Item-SCG-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-Correlation-ID CRITICALITY ignore EXTENSION Correlation-ID PRESENCE optional}| - { ID id-SIPTO-Correlation-ID CRITICALITY ignore EXTENSION Correlation-ID PRESENCE optional}, - ... -} -*/ - -struct E_RABs_ToBeAdded_Item_SCG_BearerExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_Correlation_ID() { set(id_Correlation_ID); type=1;} - void select_id_SIPTO_Correlation_ID() { set(id_SIPTO_Correlation_ID); type=2;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_Correlation_ID)) { type = 1; return true; } - else if(equal(id_SIPTO_Correlation_ID)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_Correlation_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SIPTO_Correlation_ID);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_Correlation_ID() { set(ignore); type=1;} - void select_id_SIPTO_Correlation_ID() { set(ignore); type=2;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - Correlation_ID& select_id_Correlation_ID() { return set(1); } - Correlation_ID const* get_id_Correlation_ID() const { return get(1); } - Correlation_ID& select_id_SIPTO_Correlation_ID() { return set(2); } - Correlation_ID const* get_id_SIPTO_Correlation_ID() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_Correlation_ID()); return true; - case 2: v(select_id_SIPTO_Correlation_ID()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Correlation_ID)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_Correlation_ID() { set(optional); type=1;} - void select_id_SIPTO_Correlation_ID() { set(optional); type=2;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeAdded-Item-SCG-Bearer ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - e-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters, - dL-Forwarding DL-Forwarding OPTIONAL, - s1-UL-GTPtunnelEndpoint GTPtunnelEndpoint, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeAdded-Item-SCG-BearerExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeAdded_Item_SCG_Bearer : asn::sequence<5, 0, true, 2> -{ - static constexpr const char* name() {return "E-RABs-ToBeAdded-Item-SCG-Bearer";} - using parent_t = asn::sequence<5, 0, true, 2>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct e_RAB_Level_QoS_Parameters_t : E_RAB_Level_QoS_Parameters - { - static constexpr const char* name() {return "e_RAB_Level_QoS_Parameters_t";} - using parent_t = E_RAB_Level_QoS_Parameters; - - }; - e_RAB_Level_QoS_Parameters_t& ref_e_RAB_Level_QoS_Parameters() {return e_RAB_Level_QoS_Parameters;} - e_RAB_Level_QoS_Parameters_t const& ref_e_RAB_Level_QoS_Parameters() const {return e_RAB_Level_QoS_Parameters;} - struct dL_Forwarding_t : DL_Forwarding - { - static constexpr const char* name() {return "dL_Forwarding_t";} - using parent_t = DL_Forwarding; - static constexpr bool optional = true; - - }; - dL_Forwarding_t& set_dL_Forwarding() { dL_Forwarding.setpresent(true); return dL_Forwarding;} - dL_Forwarding_t const* get_dL_Forwarding() const {return dL_Forwarding.is_valid() ? &dL_Forwarding : nullptr;} - struct s1_UL_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "s1_UL_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - - }; - s1_UL_GTPtunnelEndpoint_t& ref_s1_UL_GTPtunnelEndpoint() {return s1_UL_GTPtunnelEndpoint;} - s1_UL_GTPtunnelEndpoint_t const& ref_s1_UL_GTPtunnelEndpoint() const {return s1_UL_GTPtunnelEndpoint;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(e_RAB_Level_QoS_Parameters); - v(dL_Forwarding); - v(s1_UL_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(e_RAB_Level_QoS_Parameters); - v(dL_Forwarding); - v(s1_UL_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - e_RAB_Level_QoS_Parameters.clear(); - dL_Forwarding.clear(); - s1_UL_GTPtunnelEndpoint.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - e_RAB_Level_QoS_Parameters_t e_RAB_Level_QoS_Parameters; - dL_Forwarding_t dL_Forwarding; - s1_UL_GTPtunnelEndpoint_t s1_UL_GTPtunnelEndpoint; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeAdded-Item-Split-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_ToBeAdded_Item_Split_BearerExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeAdded-Item-Split-Bearer ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - e-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters, - meNB-GTPtunnelEndpoint GTPtunnelEndpoint, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeAdded-Item-Split-BearerExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeAdded_Item_Split_Bearer : asn::sequence<4, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-ToBeAdded-Item-Split-Bearer";} - using parent_t = asn::sequence<4, 0, true, 1>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct e_RAB_Level_QoS_Parameters_t : E_RAB_Level_QoS_Parameters - { - static constexpr const char* name() {return "e_RAB_Level_QoS_Parameters_t";} - using parent_t = E_RAB_Level_QoS_Parameters; - - }; - e_RAB_Level_QoS_Parameters_t& ref_e_RAB_Level_QoS_Parameters() {return e_RAB_Level_QoS_Parameters;} - e_RAB_Level_QoS_Parameters_t const& ref_e_RAB_Level_QoS_Parameters() const {return e_RAB_Level_QoS_Parameters;} - struct meNB_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "meNB_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - - }; - meNB_GTPtunnelEndpoint_t& ref_meNB_GTPtunnelEndpoint() {return meNB_GTPtunnelEndpoint;} - meNB_GTPtunnelEndpoint_t const& ref_meNB_GTPtunnelEndpoint() const {return meNB_GTPtunnelEndpoint;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(e_RAB_Level_QoS_Parameters); - v(meNB_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(e_RAB_Level_QoS_Parameters); - v(meNB_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - e_RAB_Level_QoS_Parameters.clear(); - meNB_GTPtunnelEndpoint.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - e_RAB_Level_QoS_Parameters_t e_RAB_Level_QoS_Parameters; - meNB_GTPtunnelEndpoint_t meNB_GTPtunnelEndpoint; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeAdded-Item ::= CHOICE { - sCG-Bearer E-RABs-ToBeAdded-Item-SCG-Bearer, - split-Bearer E-RABs-ToBeAdded-Item-Split-Bearer, - ... -} -*/ - -struct E_RABs_ToBeAdded_Item : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "E-RABs-ToBeAdded-Item";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~E_RABs_ToBeAdded_Item() {clear();} - struct sCG_Bearer_t : E_RABs_ToBeAdded_Item_SCG_Bearer - { - static constexpr const char* name() {return "sCG_Bearer_t";} - using parent_t = E_RABs_ToBeAdded_Item_SCG_Bearer; - - }; - struct split_Bearer_t : E_RABs_ToBeAdded_Item_Split_Bearer - { - static constexpr const char* name() {return "split_Bearer_t";} - using parent_t = E_RABs_ToBeAdded_Item_Split_Bearer; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - sCG_Bearer_t& select_sCG_Bearer() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - sCG_Bearer_t const* get_sCG_Bearer() const { if(get_index() == 1) { return &var.as();} return nullptr; } - split_Bearer_t& select_split_Bearer() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - split_Bearer_t const* get_split_Bearer() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(sCG_Bearer_t)]; - char dummy2[sizeof(split_Bearer_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -E-RABs-ToBeAdded-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-ToBeAdded-Item CRITICALITY reject TYPE E-RABs-ToBeAdded-Item PRESENCE mandatory}, - ... -} -*/ - -struct E_RABs_ToBeAdded_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeAdded_Item() { set(id_E_RABs_ToBeAdded_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_ToBeAdded_Item)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_ToBeAdded_Item);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeAdded_Item() { set(reject); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_ToBeAdded_Item& select_id_E_RABs_ToBeAdded_Item() { return set(1); } - E_RABs_ToBeAdded_Item const* get_id_E_RABs_ToBeAdded_Item() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_ToBeAdded_Item()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_ToBeAdded_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeAdded_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeAdded-List ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeAdded-ItemIEs} } -*/ - -struct E_RABs_ToBeAdded_List_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_ToBeAdded_List_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_ToBeAdded_List : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-ToBeAdded-List";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-ToBeAdded-ModReqItem-SCG-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-Correlation-ID CRITICALITY ignore EXTENSION Correlation-ID PRESENCE optional}| - { ID id-SIPTO-Correlation-ID CRITICALITY ignore EXTENSION Correlation-ID PRESENCE optional}, - ... -} -*/ - -struct E_RABs_ToBeAdded_ModReqItem_SCG_BearerExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_Correlation_ID() { set(id_Correlation_ID); type=1;} - void select_id_SIPTO_Correlation_ID() { set(id_SIPTO_Correlation_ID); type=2;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_Correlation_ID)) { type = 1; return true; } - else if(equal(id_SIPTO_Correlation_ID)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_Correlation_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SIPTO_Correlation_ID);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_Correlation_ID() { set(ignore); type=1;} - void select_id_SIPTO_Correlation_ID() { set(ignore); type=2;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - Correlation_ID& select_id_Correlation_ID() { return set(1); } - Correlation_ID const* get_id_Correlation_ID() const { return get(1); } - Correlation_ID& select_id_SIPTO_Correlation_ID() { return set(2); } - Correlation_ID const* get_id_SIPTO_Correlation_ID() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_Correlation_ID()); return true; - case 2: v(select_id_SIPTO_Correlation_ID()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Correlation_ID)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_Correlation_ID() { set(optional); type=1;} - void select_id_SIPTO_Correlation_ID() { set(optional); type=2;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeAdded-ModReqItem-SCG-Bearer ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - e-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters, - dL-Forwarding DL-Forwarding OPTIONAL, - s1-UL-GTPtunnelEndpoint GTPtunnelEndpoint, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeAdded-ModReqItem-SCG-BearerExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeAdded_ModReqItem_SCG_Bearer : asn::sequence<5, 0, true, 2> -{ - static constexpr const char* name() {return "E-RABs-ToBeAdded-ModReqItem-SCG-Bearer";} - using parent_t = asn::sequence<5, 0, true, 2>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct e_RAB_Level_QoS_Parameters_t : E_RAB_Level_QoS_Parameters - { - static constexpr const char* name() {return "e_RAB_Level_QoS_Parameters_t";} - using parent_t = E_RAB_Level_QoS_Parameters; - - }; - e_RAB_Level_QoS_Parameters_t& ref_e_RAB_Level_QoS_Parameters() {return e_RAB_Level_QoS_Parameters;} - e_RAB_Level_QoS_Parameters_t const& ref_e_RAB_Level_QoS_Parameters() const {return e_RAB_Level_QoS_Parameters;} - struct dL_Forwarding_t : DL_Forwarding - { - static constexpr const char* name() {return "dL_Forwarding_t";} - using parent_t = DL_Forwarding; - static constexpr bool optional = true; - - }; - dL_Forwarding_t& set_dL_Forwarding() { dL_Forwarding.setpresent(true); return dL_Forwarding;} - dL_Forwarding_t const* get_dL_Forwarding() const {return dL_Forwarding.is_valid() ? &dL_Forwarding : nullptr;} - struct s1_UL_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "s1_UL_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - - }; - s1_UL_GTPtunnelEndpoint_t& ref_s1_UL_GTPtunnelEndpoint() {return s1_UL_GTPtunnelEndpoint;} - s1_UL_GTPtunnelEndpoint_t const& ref_s1_UL_GTPtunnelEndpoint() const {return s1_UL_GTPtunnelEndpoint;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(e_RAB_Level_QoS_Parameters); - v(dL_Forwarding); - v(s1_UL_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(e_RAB_Level_QoS_Parameters); - v(dL_Forwarding); - v(s1_UL_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - e_RAB_Level_QoS_Parameters.clear(); - dL_Forwarding.clear(); - s1_UL_GTPtunnelEndpoint.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - e_RAB_Level_QoS_Parameters_t e_RAB_Level_QoS_Parameters; - dL_Forwarding_t dL_Forwarding; - s1_UL_GTPtunnelEndpoint_t s1_UL_GTPtunnelEndpoint; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeAdded-ModReqItem-Split-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_ToBeAdded_ModReqItem_Split_BearerExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeAdded-ModReqItem-Split-Bearer ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - e-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters, - meNB-GTPtunnelEndpoint GTPtunnelEndpoint, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeAdded-ModReqItem-Split-BearerExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeAdded_ModReqItem_Split_Bearer : asn::sequence<4, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-ToBeAdded-ModReqItem-Split-Bearer";} - using parent_t = asn::sequence<4, 0, true, 1>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct e_RAB_Level_QoS_Parameters_t : E_RAB_Level_QoS_Parameters - { - static constexpr const char* name() {return "e_RAB_Level_QoS_Parameters_t";} - using parent_t = E_RAB_Level_QoS_Parameters; - - }; - e_RAB_Level_QoS_Parameters_t& ref_e_RAB_Level_QoS_Parameters() {return e_RAB_Level_QoS_Parameters;} - e_RAB_Level_QoS_Parameters_t const& ref_e_RAB_Level_QoS_Parameters() const {return e_RAB_Level_QoS_Parameters;} - struct meNB_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "meNB_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - - }; - meNB_GTPtunnelEndpoint_t& ref_meNB_GTPtunnelEndpoint() {return meNB_GTPtunnelEndpoint;} - meNB_GTPtunnelEndpoint_t const& ref_meNB_GTPtunnelEndpoint() const {return meNB_GTPtunnelEndpoint;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(e_RAB_Level_QoS_Parameters); - v(meNB_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(e_RAB_Level_QoS_Parameters); - v(meNB_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - e_RAB_Level_QoS_Parameters.clear(); - meNB_GTPtunnelEndpoint.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - e_RAB_Level_QoS_Parameters_t e_RAB_Level_QoS_Parameters; - meNB_GTPtunnelEndpoint_t meNB_GTPtunnelEndpoint; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeAdded-ModReqItem ::= CHOICE { - sCG-Bearer E-RABs-ToBeAdded-ModReqItem-SCG-Bearer, - split-Bearer E-RABs-ToBeAdded-ModReqItem-Split-Bearer, - ... -} -*/ - -struct E_RABs_ToBeAdded_ModReqItem : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "E-RABs-ToBeAdded-ModReqItem";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~E_RABs_ToBeAdded_ModReqItem() {clear();} - struct sCG_Bearer_t : E_RABs_ToBeAdded_ModReqItem_SCG_Bearer - { - static constexpr const char* name() {return "sCG_Bearer_t";} - using parent_t = E_RABs_ToBeAdded_ModReqItem_SCG_Bearer; - - }; - struct split_Bearer_t : E_RABs_ToBeAdded_ModReqItem_Split_Bearer - { - static constexpr const char* name() {return "split_Bearer_t";} - using parent_t = E_RABs_ToBeAdded_ModReqItem_Split_Bearer; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - sCG_Bearer_t& select_sCG_Bearer() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - sCG_Bearer_t const* get_sCG_Bearer() const { if(get_index() == 1) { return &var.as();} return nullptr; } - split_Bearer_t& select_split_Bearer() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - split_Bearer_t const* get_split_Bearer() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(sCG_Bearer_t)]; - char dummy2[sizeof(split_Bearer_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -E-RABs-ToBeAdded-ModReqItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-ToBeAdded-ModReqItem CRITICALITY ignore TYPE E-RABs-ToBeAdded-ModReqItem PRESENCE mandatory}, - ... -} -*/ - -struct E_RABs_ToBeAdded_ModReqItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeAdded_ModReqItem() { set(id_E_RABs_ToBeAdded_ModReqItem); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_ToBeAdded_ModReqItem)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_ToBeAdded_ModReqItem);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeAdded_ModReqItem() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_ToBeAdded_ModReqItem& select_id_E_RABs_ToBeAdded_ModReqItem() { return set(1); } - E_RABs_ToBeAdded_ModReqItem const* get_id_E_RABs_ToBeAdded_ModReqItem() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_ToBeAdded_ModReqItem()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_ToBeAdded_ModReqItem)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeAdded_ModReqItem() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeAdded-List-ModReq ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeAdded-ModReqItemIEs} } -*/ - -struct E_RABs_ToBeAdded_List_ModReq_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_ToBeAdded_List_ModReq_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_ToBeAdded_List_ModReq : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-ToBeAdded-List-ModReq";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-RLCMode-transferred CRITICALITY ignore EXTENSION RLCMode PRESENCE optional}, - ... -} -*/ - -struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresentExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RLCMode_transferred() { set(id_RLCMode_transferred); type=1;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_RLCMode_transferred)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_RLCMode_transferred);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RLCMode_transferred() { set(ignore); type=1;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - RLCMode& select_id_RLCMode_transferred() { return set(1); } - RLCMode const* get_id_RLCMode_transferred() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_RLCMode_transferred()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(RLCMode)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RLCMode_transferred() { set(optional); type=1;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPpresent ::= SEQUENCE { - full-E-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters, - max-MCG-admit-E-RAB-Level-QoS-Parameters GBR-QosInformation OPTIONAL, --- This IE shall be present if MCG resource and SCG resources IEs in the the EN-DC Resource Configuration IE are set to “present” and GBR QoS Information IE is present in Full E-RAB Level QoS Parameters IE -- - dL-Forwarding DL-Forwarding OPTIONAL, - meNB-DL-GTP-TEIDatMCG GTPtunnelEndpoint OPTIONAL, --- This IE shall be present if MCG resource IE in the the EN-DC Resource Configuration IE is set to “present” -- - s1-UL-GTPtunnelEndpoint GTPtunnelEndpoint, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPpresentExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresent : asn::sequence<6, 0, true, 4> -{ - static constexpr const char* name() {return "E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPpresent";} - using parent_t = asn::sequence<6, 0, true, 4>; - struct full_E_RAB_Level_QoS_Parameters_t : E_RAB_Level_QoS_Parameters - { - static constexpr const char* name() {return "full_E_RAB_Level_QoS_Parameters_t";} - using parent_t = E_RAB_Level_QoS_Parameters; - - }; - full_E_RAB_Level_QoS_Parameters_t& ref_full_E_RAB_Level_QoS_Parameters() {return full_E_RAB_Level_QoS_Parameters;} - full_E_RAB_Level_QoS_Parameters_t const& ref_full_E_RAB_Level_QoS_Parameters() const {return full_E_RAB_Level_QoS_Parameters;} - struct max_MCG_admit_E_RAB_Level_QoS_Parameters_t : GBR_QosInformation - { - static constexpr const char* name() {return "max_MCG_admit_E_RAB_Level_QoS_Parameters_t";} - using parent_t = GBR_QosInformation; - static constexpr bool optional = true; - - }; - max_MCG_admit_E_RAB_Level_QoS_Parameters_t& set_max_MCG_admit_E_RAB_Level_QoS_Parameters() { max_MCG_admit_E_RAB_Level_QoS_Parameters.setpresent(true); return max_MCG_admit_E_RAB_Level_QoS_Parameters;} - max_MCG_admit_E_RAB_Level_QoS_Parameters_t const* get_max_MCG_admit_E_RAB_Level_QoS_Parameters() const {return max_MCG_admit_E_RAB_Level_QoS_Parameters.is_valid() ? &max_MCG_admit_E_RAB_Level_QoS_Parameters : nullptr;} - struct dL_Forwarding_t : DL_Forwarding - { - static constexpr const char* name() {return "dL_Forwarding_t";} - using parent_t = DL_Forwarding; - static constexpr bool optional = true; - - }; - dL_Forwarding_t& set_dL_Forwarding() { dL_Forwarding.setpresent(true); return dL_Forwarding;} - dL_Forwarding_t const* get_dL_Forwarding() const {return dL_Forwarding.is_valid() ? &dL_Forwarding : nullptr;} - struct meNB_DL_GTP_TEIDatMCG_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "meNB_DL_GTP_TEIDatMCG_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - meNB_DL_GTP_TEIDatMCG_t& set_meNB_DL_GTP_TEIDatMCG() { meNB_DL_GTP_TEIDatMCG.setpresent(true); return meNB_DL_GTP_TEIDatMCG;} - meNB_DL_GTP_TEIDatMCG_t const* get_meNB_DL_GTP_TEIDatMCG() const {return meNB_DL_GTP_TEIDatMCG.is_valid() ? &meNB_DL_GTP_TEIDatMCG : nullptr;} - struct s1_UL_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "s1_UL_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - - }; - s1_UL_GTPtunnelEndpoint_t& ref_s1_UL_GTPtunnelEndpoint() {return s1_UL_GTPtunnelEndpoint;} - s1_UL_GTPtunnelEndpoint_t const& ref_s1_UL_GTPtunnelEndpoint() const {return s1_UL_GTPtunnelEndpoint;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(full_E_RAB_Level_QoS_Parameters); - v(max_MCG_admit_E_RAB_Level_QoS_Parameters); - v(dL_Forwarding); - v(meNB_DL_GTP_TEIDatMCG); - v(s1_UL_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(full_E_RAB_Level_QoS_Parameters); - v(max_MCG_admit_E_RAB_Level_QoS_Parameters); - v(dL_Forwarding); - v(meNB_DL_GTP_TEIDatMCG); - v(s1_UL_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - void clear() - { - full_E_RAB_Level_QoS_Parameters.clear(); - max_MCG_admit_E_RAB_Level_QoS_Parameters.clear(); - dL_Forwarding.clear(); - meNB_DL_GTP_TEIDatMCG.clear(); - s1_UL_GTPtunnelEndpoint.clear(); - iE_Extensions.clear(); - - }; - private: - full_E_RAB_Level_QoS_Parameters_t full_E_RAB_Level_QoS_Parameters; - max_MCG_admit_E_RAB_Level_QoS_Parameters_t max_MCG_admit_E_RAB_Level_QoS_Parameters; - dL_Forwarding_t dL_Forwarding; - meNB_DL_GTP_TEIDatMCG_t meNB_DL_GTP_TEIDatMCG; - s1_UL_GTPtunnelEndpoint_t s1_UL_GTPtunnelEndpoint; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPnotpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-uLpDCPSnLength CRITICALITY ignore EXTENSION PDCPSnLength PRESENCE optional}| - { ID id-dLPDCPSnLength CRITICALITY ignore EXTENSION PDCPSnLength PRESENCE optional}| - { ID id-duplicationActivation CRITICALITY ignore EXTENSION DuplicationActivation PRESENCE optional}, - ... -} -*/ - -struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresentExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_uLpDCPSnLength() { set(id_uLpDCPSnLength); type=1;} - void select_id_dLPDCPSnLength() { set(id_dLPDCPSnLength); type=2;} - void select_id_duplicationActivation() { set(id_duplicationActivation); type=3;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_uLpDCPSnLength)) { type = 1; return true; } - else if(equal(id_dLPDCPSnLength)) { type = 2; return true; } - else if(equal(id_duplicationActivation)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_uLpDCPSnLength);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_dLPDCPSnLength);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_duplicationActivation);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_uLpDCPSnLength() { set(ignore); type=1;} - void select_id_dLPDCPSnLength() { set(ignore); type=2;} - void select_id_duplicationActivation() { set(ignore); type=3;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - PDCPSnLength& select_id_uLpDCPSnLength() { return set(1); } - PDCPSnLength const* get_id_uLpDCPSnLength() const { return get(1); } - PDCPSnLength& select_id_dLPDCPSnLength() { return set(2); } - PDCPSnLength const* get_id_dLPDCPSnLength() const { return get(2); } - DuplicationActivation& select_id_duplicationActivation() { return set(3); } - DuplicationActivation const* get_id_duplicationActivation() const { return get(3); } - bool is_unknown() const { return type == 4; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_uLpDCPSnLength()); return true; - case 2: v(select_id_dLPDCPSnLength()); return true; - case 3: v(select_id_duplicationActivation()); return true; - case 4: if(type != 4) {clear(); asn::base::set();} type = 4; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(DuplicationActivation)]; - char dummy2[sizeof(PDCPSnLength)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_uLpDCPSnLength() { set(optional); type=1;} - void select_id_dLPDCPSnLength() { set(optional); type=2;} - void select_id_duplicationActivation() { set(optional); type=3;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPnotpresent ::= SEQUENCE { - requested-SCG-E-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters, - meNB-UL-GTP-TEIDatPDCP GTPtunnelEndpoint, - secondary-meNB-UL-GTP-TEIDatPDCP GTPtunnelEndpoint OPTIONAL, - rlc-Mode RLCMode, - uL-Configuration ULConfiguration OPTIONAL, --- This IE shall be present if MCG resource and SCG resources IEs in the the EN-DC Resource Configuration IE are set to “present” -- - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPnotpresentExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresent : asn::sequence<6, 0, true, 3> -{ - static constexpr const char* name() {return "E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPnotpresent";} - using parent_t = asn::sequence<6, 0, true, 3>; - struct requested_SCG_E_RAB_Level_QoS_Parameters_t : E_RAB_Level_QoS_Parameters - { - static constexpr const char* name() {return "requested_SCG_E_RAB_Level_QoS_Parameters_t";} - using parent_t = E_RAB_Level_QoS_Parameters; - - }; - requested_SCG_E_RAB_Level_QoS_Parameters_t& ref_requested_SCG_E_RAB_Level_QoS_Parameters() {return requested_SCG_E_RAB_Level_QoS_Parameters;} - requested_SCG_E_RAB_Level_QoS_Parameters_t const& ref_requested_SCG_E_RAB_Level_QoS_Parameters() const {return requested_SCG_E_RAB_Level_QoS_Parameters;} - struct meNB_UL_GTP_TEIDatPDCP_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "meNB_UL_GTP_TEIDatPDCP_t";} - using parent_t = GTPtunnelEndpoint; - - }; - meNB_UL_GTP_TEIDatPDCP_t& ref_meNB_UL_GTP_TEIDatPDCP() {return meNB_UL_GTP_TEIDatPDCP;} - meNB_UL_GTP_TEIDatPDCP_t const& ref_meNB_UL_GTP_TEIDatPDCP() const {return meNB_UL_GTP_TEIDatPDCP;} - struct secondary_meNB_UL_GTP_TEIDatPDCP_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "secondary_meNB_UL_GTP_TEIDatPDCP_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - secondary_meNB_UL_GTP_TEIDatPDCP_t& set_secondary_meNB_UL_GTP_TEIDatPDCP() { secondary_meNB_UL_GTP_TEIDatPDCP.setpresent(true); return secondary_meNB_UL_GTP_TEIDatPDCP;} - secondary_meNB_UL_GTP_TEIDatPDCP_t const* get_secondary_meNB_UL_GTP_TEIDatPDCP() const {return secondary_meNB_UL_GTP_TEIDatPDCP.is_valid() ? &secondary_meNB_UL_GTP_TEIDatPDCP : nullptr;} - struct rlc_Mode_t : RLCMode - { - static constexpr const char* name() {return "rlc_Mode_t";} - using parent_t = RLCMode; - - }; - rlc_Mode_t& ref_rlc_Mode() {return rlc_Mode;} - rlc_Mode_t const& ref_rlc_Mode() const {return rlc_Mode;} - struct uL_Configuration_t : ULConfiguration - { - static constexpr const char* name() {return "uL_Configuration_t";} - using parent_t = ULConfiguration; - static constexpr bool optional = true; - - }; - uL_Configuration_t& set_uL_Configuration() { uL_Configuration.setpresent(true); return uL_Configuration;} - uL_Configuration_t const* get_uL_Configuration() const {return uL_Configuration.is_valid() ? &uL_Configuration : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(requested_SCG_E_RAB_Level_QoS_Parameters); - v(meNB_UL_GTP_TEIDatPDCP); - v(secondary_meNB_UL_GTP_TEIDatPDCP); - v(rlc_Mode); - v(uL_Configuration); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(requested_SCG_E_RAB_Level_QoS_Parameters); - v(meNB_UL_GTP_TEIDatPDCP); - v(secondary_meNB_UL_GTP_TEIDatPDCP); - v(rlc_Mode); - v(uL_Configuration); - v(iE_Extensions); - - }; - void clear() - { - requested_SCG_E_RAB_Level_QoS_Parameters.clear(); - meNB_UL_GTP_TEIDatPDCP.clear(); - secondary_meNB_UL_GTP_TEIDatPDCP.clear(); - rlc_Mode.clear(); - uL_Configuration.clear(); - iE_Extensions.clear(); - - }; - private: - requested_SCG_E_RAB_Level_QoS_Parameters_t requested_SCG_E_RAB_Level_QoS_Parameters; - meNB_UL_GTP_TEIDatPDCP_t meNB_UL_GTP_TEIDatPDCP; - secondary_meNB_UL_GTP_TEIDatPDCP_t secondary_meNB_UL_GTP_TEIDatPDCP; - rlc_Mode_t rlc_Mode; - uL_Configuration_t uL_Configuration; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeAdded-SgNBAddReq-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_ToBeAdded_SgNBAddReq_ItemExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeAdded-SgNBAddReq-Item ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - drb-ID DRB-ID, - en-DC-ResourceConfiguration EN-DC-ResourceConfiguration, - resource-configuration CHOICE { - sgNBPDCPpresent E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPpresent, - sgNBPDCPnotpresent E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPnotpresent, - ... - }, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeAdded-SgNBAddReq-ItemExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeAdded_SgNBAddReq_Item : asn::sequence<5, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-ToBeAdded-SgNBAddReq-Item";} - using parent_t = asn::sequence<5, 0, true, 1>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct drb_ID_t : DRB_ID - { - static constexpr const char* name() {return "drb_ID_t";} - using parent_t = DRB_ID; - - }; - drb_ID_t& ref_drb_ID() {return drb_ID;} - drb_ID_t const& ref_drb_ID() const {return drb_ID;} - struct en_DC_ResourceConfiguration_t : EN_DC_ResourceConfiguration - { - static constexpr const char* name() {return "en_DC_ResourceConfiguration_t";} - using parent_t = EN_DC_ResourceConfiguration; - - }; - en_DC_ResourceConfiguration_t& ref_en_DC_ResourceConfiguration() {return en_DC_ResourceConfiguration;} - en_DC_ResourceConfiguration_t const& ref_en_DC_ResourceConfiguration() const {return en_DC_ResourceConfiguration;} - struct resource_configuration_t : asn::choice<2, 0, true> - { - static constexpr const char* name() {return "resource_configuration_t";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~resource_configuration_t() {clear();} - struct sgNBPDCPpresent_t : E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresent - { - static constexpr const char* name() {return "sgNBPDCPpresent_t";} - using parent_t = E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresent; - - }; - struct sgNBPDCPnotpresent_t : E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresent - { - static constexpr const char* name() {return "sgNBPDCPnotpresent_t";} - using parent_t = E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresent; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - sgNBPDCPpresent_t& select_sgNBPDCPpresent() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - sgNBPDCPpresent_t const* get_sgNBPDCPpresent() const { if(get_index() == 1) { return &var.as();} return nullptr; } - sgNBPDCPnotpresent_t& select_sgNBPDCPnotpresent() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - sgNBPDCPnotpresent_t const* get_sgNBPDCPnotpresent() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(sgNBPDCPpresent_t)]; - char dummy2[sizeof(sgNBPDCPnotpresent_t)]; - - }; - asn::variant var; - index_type index {0}; - }; - resource_configuration_t& ref_resource_configuration() {return resource_configuration;} - resource_configuration_t const& ref_resource_configuration() const {return resource_configuration;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(drb_ID); - v(en_DC_ResourceConfiguration); - v(resource_configuration); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(drb_ID); - v(en_DC_ResourceConfiguration); - v(resource_configuration); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - drb_ID.clear(); - en_DC_ResourceConfiguration.clear(); - resource_configuration.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - drb_ID_t drb_ID; - en_DC_ResourceConfiguration_t en_DC_ResourceConfiguration; - resource_configuration_t resource_configuration; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeAdded-SgNBAddReq-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-ToBeAdded-SgNBAddReq-Item CRITICALITY reject TYPE E-RABs-ToBeAdded-SgNBAddReq-Item PRESENCE mandatory}, - ... -} -*/ - -struct E_RABs_ToBeAdded_SgNBAddReq_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeAdded_SgNBAddReq_Item() { set(id_E_RABs_ToBeAdded_SgNBAddReq_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_ToBeAdded_SgNBAddReq_Item)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_ToBeAdded_SgNBAddReq_Item);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeAdded_SgNBAddReq_Item() { set(reject); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_ToBeAdded_SgNBAddReq_Item& select_id_E_RABs_ToBeAdded_SgNBAddReq_Item() { return set(1); } - E_RABs_ToBeAdded_SgNBAddReq_Item const* get_id_E_RABs_ToBeAdded_SgNBAddReq_Item() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_ToBeAdded_SgNBAddReq_Item()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_ToBeAdded_SgNBAddReq_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeAdded_SgNBAddReq_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeAdded-SgNBAddReqList ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeAdded-SgNBAddReq-ItemIEs} } -*/ - -struct E_RABs_ToBeAdded_SgNBAddReqList_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_ToBeAdded_SgNBAddReqList_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_ToBeAdded_SgNBAddReqList : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-ToBeAdded-SgNBAddReqList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-RLCMode-transferred CRITICALITY ignore EXTENSION RLCMode PRESENCE optional}, - ... -} -*/ - -struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresentExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RLCMode_transferred() { set(id_RLCMode_transferred); type=1;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_RLCMode_transferred)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_RLCMode_transferred);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RLCMode_transferred() { set(ignore); type=1;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - RLCMode& select_id_RLCMode_transferred() { return set(1); } - RLCMode const* get_id_RLCMode_transferred() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_RLCMode_transferred()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(RLCMode)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RLCMode_transferred() { set(optional); type=1;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPpresent ::= SEQUENCE { - full-E-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters, - max-MN-admit-E-RAB-Level-QoS-Parameters GBR-QosInformation OPTIONAL, --- This IE shall be present if MCG resource and SCG resources IEs in the the EN-DC Resource Configuration IE are set to “present” and GBR QoS Information IE is present in Full E-RAB Level QoS Parameters IE -- - dL-Forwarding DL-Forwarding OPTIONAL, - meNB-DL-GTP-TEIDatMCG GTPtunnelEndpoint OPTIONAL, --- This IE shall be present if MCG resource IE in the the EN-DC Resource Configuration IE is set to “present” -- - s1-UL-GTPtunnelEndpoint GTPtunnelEndpoint, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPpresentExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresent : asn::sequence<6, 0, true, 4> -{ - static constexpr const char* name() {return "E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPpresent";} - using parent_t = asn::sequence<6, 0, true, 4>; - struct full_E_RAB_Level_QoS_Parameters_t : E_RAB_Level_QoS_Parameters - { - static constexpr const char* name() {return "full_E_RAB_Level_QoS_Parameters_t";} - using parent_t = E_RAB_Level_QoS_Parameters; - - }; - full_E_RAB_Level_QoS_Parameters_t& ref_full_E_RAB_Level_QoS_Parameters() {return full_E_RAB_Level_QoS_Parameters;} - full_E_RAB_Level_QoS_Parameters_t const& ref_full_E_RAB_Level_QoS_Parameters() const {return full_E_RAB_Level_QoS_Parameters;} - struct max_MN_admit_E_RAB_Level_QoS_Parameters_t : GBR_QosInformation - { - static constexpr const char* name() {return "max_MN_admit_E_RAB_Level_QoS_Parameters_t";} - using parent_t = GBR_QosInformation; - static constexpr bool optional = true; - - }; - max_MN_admit_E_RAB_Level_QoS_Parameters_t& set_max_MN_admit_E_RAB_Level_QoS_Parameters() { max_MN_admit_E_RAB_Level_QoS_Parameters.setpresent(true); return max_MN_admit_E_RAB_Level_QoS_Parameters;} - max_MN_admit_E_RAB_Level_QoS_Parameters_t const* get_max_MN_admit_E_RAB_Level_QoS_Parameters() const {return max_MN_admit_E_RAB_Level_QoS_Parameters.is_valid() ? &max_MN_admit_E_RAB_Level_QoS_Parameters : nullptr;} - struct dL_Forwarding_t : DL_Forwarding - { - static constexpr const char* name() {return "dL_Forwarding_t";} - using parent_t = DL_Forwarding; - static constexpr bool optional = true; - - }; - dL_Forwarding_t& set_dL_Forwarding() { dL_Forwarding.setpresent(true); return dL_Forwarding;} - dL_Forwarding_t const* get_dL_Forwarding() const {return dL_Forwarding.is_valid() ? &dL_Forwarding : nullptr;} - struct meNB_DL_GTP_TEIDatMCG_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "meNB_DL_GTP_TEIDatMCG_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - meNB_DL_GTP_TEIDatMCG_t& set_meNB_DL_GTP_TEIDatMCG() { meNB_DL_GTP_TEIDatMCG.setpresent(true); return meNB_DL_GTP_TEIDatMCG;} - meNB_DL_GTP_TEIDatMCG_t const* get_meNB_DL_GTP_TEIDatMCG() const {return meNB_DL_GTP_TEIDatMCG.is_valid() ? &meNB_DL_GTP_TEIDatMCG : nullptr;} - struct s1_UL_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "s1_UL_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - - }; - s1_UL_GTPtunnelEndpoint_t& ref_s1_UL_GTPtunnelEndpoint() {return s1_UL_GTPtunnelEndpoint;} - s1_UL_GTPtunnelEndpoint_t const& ref_s1_UL_GTPtunnelEndpoint() const {return s1_UL_GTPtunnelEndpoint;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(full_E_RAB_Level_QoS_Parameters); - v(max_MN_admit_E_RAB_Level_QoS_Parameters); - v(dL_Forwarding); - v(meNB_DL_GTP_TEIDatMCG); - v(s1_UL_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(full_E_RAB_Level_QoS_Parameters); - v(max_MN_admit_E_RAB_Level_QoS_Parameters); - v(dL_Forwarding); - v(meNB_DL_GTP_TEIDatMCG); - v(s1_UL_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - void clear() - { - full_E_RAB_Level_QoS_Parameters.clear(); - max_MN_admit_E_RAB_Level_QoS_Parameters.clear(); - dL_Forwarding.clear(); - meNB_DL_GTP_TEIDatMCG.clear(); - s1_UL_GTPtunnelEndpoint.clear(); - iE_Extensions.clear(); - - }; - private: - full_E_RAB_Level_QoS_Parameters_t full_E_RAB_Level_QoS_Parameters; - max_MN_admit_E_RAB_Level_QoS_Parameters_t max_MN_admit_E_RAB_Level_QoS_Parameters; - dL_Forwarding_t dL_Forwarding; - meNB_DL_GTP_TEIDatMCG_t meNB_DL_GTP_TEIDatMCG; - s1_UL_GTPtunnelEndpoint_t s1_UL_GTPtunnelEndpoint; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPnotpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-uLpDCPSnLength CRITICALITY ignore EXTENSION PDCPSnLength PRESENCE optional}| - { ID id-dLPDCPSnLength CRITICALITY ignore EXTENSION PDCPSnLength PRESENCE optional}| - { ID id-duplicationActivation CRITICALITY ignore EXTENSION DuplicationActivation PRESENCE optional}, - ... -} -*/ - -struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_uLpDCPSnLength() { set(id_uLpDCPSnLength); type=1;} - void select_id_dLPDCPSnLength() { set(id_dLPDCPSnLength); type=2;} - void select_id_duplicationActivation() { set(id_duplicationActivation); type=3;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_uLpDCPSnLength)) { type = 1; return true; } - else if(equal(id_dLPDCPSnLength)) { type = 2; return true; } - else if(equal(id_duplicationActivation)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_uLpDCPSnLength);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_dLPDCPSnLength);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_duplicationActivation);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_uLpDCPSnLength() { set(ignore); type=1;} - void select_id_dLPDCPSnLength() { set(ignore); type=2;} - void select_id_duplicationActivation() { set(ignore); type=3;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - PDCPSnLength& select_id_uLpDCPSnLength() { return set(1); } - PDCPSnLength const* get_id_uLpDCPSnLength() const { return get(1); } - PDCPSnLength& select_id_dLPDCPSnLength() { return set(2); } - PDCPSnLength const* get_id_dLPDCPSnLength() const { return get(2); } - DuplicationActivation& select_id_duplicationActivation() { return set(3); } - DuplicationActivation const* get_id_duplicationActivation() const { return get(3); } - bool is_unknown() const { return type == 4; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_uLpDCPSnLength()); return true; - case 2: v(select_id_dLPDCPSnLength()); return true; - case 3: v(select_id_duplicationActivation()); return true; - case 4: if(type != 4) {clear(); asn::base::set();} type = 4; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(DuplicationActivation)]; - char dummy2[sizeof(PDCPSnLength)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_uLpDCPSnLength() { set(optional); type=1;} - void select_id_dLPDCPSnLength() { set(optional); type=2;} - void select_id_duplicationActivation() { set(optional); type=3;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPnotpresent ::= SEQUENCE { - requested-SCG-E-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters, - meNB-UL-GTP-TEIDatPDCP GTPtunnelEndpoint, - secondary-meNB-UL-GTP-TEIDatPDCP GTPtunnelEndpoint OPTIONAL, - rlc-Mode RLCMode, - uL-Configuration ULConfiguration OPTIONAL, --- This IE shall be present if MCG resource and SCG resources IEs in the the EN-DC Resource Configuration IE are set to “present” -- - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPnotpresentExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresent : asn::sequence<6, 0, true, 3> -{ - static constexpr const char* name() {return "E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPnotpresent";} - using parent_t = asn::sequence<6, 0, true, 3>; - struct requested_SCG_E_RAB_Level_QoS_Parameters_t : E_RAB_Level_QoS_Parameters - { - static constexpr const char* name() {return "requested_SCG_E_RAB_Level_QoS_Parameters_t";} - using parent_t = E_RAB_Level_QoS_Parameters; - - }; - requested_SCG_E_RAB_Level_QoS_Parameters_t& ref_requested_SCG_E_RAB_Level_QoS_Parameters() {return requested_SCG_E_RAB_Level_QoS_Parameters;} - requested_SCG_E_RAB_Level_QoS_Parameters_t const& ref_requested_SCG_E_RAB_Level_QoS_Parameters() const {return requested_SCG_E_RAB_Level_QoS_Parameters;} - struct meNB_UL_GTP_TEIDatPDCP_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "meNB_UL_GTP_TEIDatPDCP_t";} - using parent_t = GTPtunnelEndpoint; - - }; - meNB_UL_GTP_TEIDatPDCP_t& ref_meNB_UL_GTP_TEIDatPDCP() {return meNB_UL_GTP_TEIDatPDCP;} - meNB_UL_GTP_TEIDatPDCP_t const& ref_meNB_UL_GTP_TEIDatPDCP() const {return meNB_UL_GTP_TEIDatPDCP;} - struct secondary_meNB_UL_GTP_TEIDatPDCP_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "secondary_meNB_UL_GTP_TEIDatPDCP_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - secondary_meNB_UL_GTP_TEIDatPDCP_t& set_secondary_meNB_UL_GTP_TEIDatPDCP() { secondary_meNB_UL_GTP_TEIDatPDCP.setpresent(true); return secondary_meNB_UL_GTP_TEIDatPDCP;} - secondary_meNB_UL_GTP_TEIDatPDCP_t const* get_secondary_meNB_UL_GTP_TEIDatPDCP() const {return secondary_meNB_UL_GTP_TEIDatPDCP.is_valid() ? &secondary_meNB_UL_GTP_TEIDatPDCP : nullptr;} - struct rlc_Mode_t : RLCMode - { - static constexpr const char* name() {return "rlc_Mode_t";} - using parent_t = RLCMode; - - }; - rlc_Mode_t& ref_rlc_Mode() {return rlc_Mode;} - rlc_Mode_t const& ref_rlc_Mode() const {return rlc_Mode;} - struct uL_Configuration_t : ULConfiguration - { - static constexpr const char* name() {return "uL_Configuration_t";} - using parent_t = ULConfiguration; - static constexpr bool optional = true; - - }; - uL_Configuration_t& set_uL_Configuration() { uL_Configuration.setpresent(true); return uL_Configuration;} - uL_Configuration_t const* get_uL_Configuration() const {return uL_Configuration.is_valid() ? &uL_Configuration : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(requested_SCG_E_RAB_Level_QoS_Parameters); - v(meNB_UL_GTP_TEIDatPDCP); - v(secondary_meNB_UL_GTP_TEIDatPDCP); - v(rlc_Mode); - v(uL_Configuration); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(requested_SCG_E_RAB_Level_QoS_Parameters); - v(meNB_UL_GTP_TEIDatPDCP); - v(secondary_meNB_UL_GTP_TEIDatPDCP); - v(rlc_Mode); - v(uL_Configuration); - v(iE_Extensions); - - }; - void clear() - { - requested_SCG_E_RAB_Level_QoS_Parameters.clear(); - meNB_UL_GTP_TEIDatPDCP.clear(); - secondary_meNB_UL_GTP_TEIDatPDCP.clear(); - rlc_Mode.clear(); - uL_Configuration.clear(); - iE_Extensions.clear(); - - }; - private: - requested_SCG_E_RAB_Level_QoS_Parameters_t requested_SCG_E_RAB_Level_QoS_Parameters; - meNB_UL_GTP_TEIDatPDCP_t meNB_UL_GTP_TEIDatPDCP; - secondary_meNB_UL_GTP_TEIDatPDCP_t secondary_meNB_UL_GTP_TEIDatPDCP; - rlc_Mode_t rlc_Mode; - uL_Configuration_t uL_Configuration; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeAdded-SgNBModReq-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_ToBeAdded_SgNBModReq_ItemExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeAdded-SgNBModReq-Item ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - drb-ID DRB-ID, - en-DC-ResourceConfiguration EN-DC-ResourceConfiguration, - resource-configuration CHOICE { - sgNBPDCPpresent E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPpresent, - sgNBPDCPnotpresent E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPnotpresent, - ... - }, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeAdded-SgNBModReq-ItemExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeAdded_SgNBModReq_Item : asn::sequence<5, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-ToBeAdded-SgNBModReq-Item";} - using parent_t = asn::sequence<5, 0, true, 1>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct drb_ID_t : DRB_ID - { - static constexpr const char* name() {return "drb_ID_t";} - using parent_t = DRB_ID; - - }; - drb_ID_t& ref_drb_ID() {return drb_ID;} - drb_ID_t const& ref_drb_ID() const {return drb_ID;} - struct en_DC_ResourceConfiguration_t : EN_DC_ResourceConfiguration - { - static constexpr const char* name() {return "en_DC_ResourceConfiguration_t";} - using parent_t = EN_DC_ResourceConfiguration; - - }; - en_DC_ResourceConfiguration_t& ref_en_DC_ResourceConfiguration() {return en_DC_ResourceConfiguration;} - en_DC_ResourceConfiguration_t const& ref_en_DC_ResourceConfiguration() const {return en_DC_ResourceConfiguration;} - struct resource_configuration_t : asn::choice<2, 0, true> - { - static constexpr const char* name() {return "resource_configuration_t";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~resource_configuration_t() {clear();} - struct sgNBPDCPpresent_t : E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresent - { - static constexpr const char* name() {return "sgNBPDCPpresent_t";} - using parent_t = E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresent; - - }; - struct sgNBPDCPnotpresent_t : E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresent - { - static constexpr const char* name() {return "sgNBPDCPnotpresent_t";} - using parent_t = E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresent; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - sgNBPDCPpresent_t& select_sgNBPDCPpresent() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - sgNBPDCPpresent_t const* get_sgNBPDCPpresent() const { if(get_index() == 1) { return &var.as();} return nullptr; } - sgNBPDCPnotpresent_t& select_sgNBPDCPnotpresent() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - sgNBPDCPnotpresent_t const* get_sgNBPDCPnotpresent() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(sgNBPDCPpresent_t)]; - char dummy2[sizeof(sgNBPDCPnotpresent_t)]; - - }; - asn::variant var; - index_type index {0}; - }; - resource_configuration_t& ref_resource_configuration() {return resource_configuration;} - resource_configuration_t const& ref_resource_configuration() const {return resource_configuration;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(drb_ID); - v(en_DC_ResourceConfiguration); - v(resource_configuration); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(drb_ID); - v(en_DC_ResourceConfiguration); - v(resource_configuration); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - drb_ID.clear(); - en_DC_ResourceConfiguration.clear(); - resource_configuration.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - drb_ID_t drb_ID; - en_DC_ResourceConfiguration_t en_DC_ResourceConfiguration; - resource_configuration_t resource_configuration; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeAdded-SgNBModReq-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-ToBeAdded-SgNBModReq-Item CRITICALITY ignore TYPE E-RABs-ToBeAdded-SgNBModReq-Item PRESENCE mandatory}, - ... -} -*/ - -struct E_RABs_ToBeAdded_SgNBModReq_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeAdded_SgNBModReq_Item() { set(id_E_RABs_ToBeAdded_SgNBModReq_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_ToBeAdded_SgNBModReq_Item)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_ToBeAdded_SgNBModReq_Item);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeAdded_SgNBModReq_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_ToBeAdded_SgNBModReq_Item& select_id_E_RABs_ToBeAdded_SgNBModReq_Item() { return set(1); } - E_RABs_ToBeAdded_SgNBModReq_Item const* get_id_E_RABs_ToBeAdded_SgNBModReq_Item() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_ToBeAdded_SgNBModReq_Item()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_ToBeAdded_SgNBModReq_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeAdded_SgNBModReq_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeAdded-SgNBModReq-List ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeAdded-SgNBModReq-ItemIEs} } -*/ - -struct E_RABs_ToBeAdded_SgNBModReq_List_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_ToBeAdded_SgNBModReq_List_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_ToBeAdded_SgNBModReq_List : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-ToBeAdded-SgNBModReq-List";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-ToBeModified-ModReqItem-SCG-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_ToBeModified_ModReqItem_SCG_BearerExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeModified-ModReqItem-SCG-Bearer ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - e-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters OPTIONAL, - s1-UL-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeModified-ModReqItem-SCG-BearerExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeModified_ModReqItem_SCG_Bearer : asn::sequence<4, 0, true, 3> -{ - static constexpr const char* name() {return "E-RABs-ToBeModified-ModReqItem-SCG-Bearer";} - using parent_t = asn::sequence<4, 0, true, 3>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct e_RAB_Level_QoS_Parameters_t : E_RAB_Level_QoS_Parameters - { - static constexpr const char* name() {return "e_RAB_Level_QoS_Parameters_t";} - using parent_t = E_RAB_Level_QoS_Parameters; - static constexpr bool optional = true; - - }; - e_RAB_Level_QoS_Parameters_t& set_e_RAB_Level_QoS_Parameters() { e_RAB_Level_QoS_Parameters.setpresent(true); return e_RAB_Level_QoS_Parameters;} - e_RAB_Level_QoS_Parameters_t const* get_e_RAB_Level_QoS_Parameters() const {return e_RAB_Level_QoS_Parameters.is_valid() ? &e_RAB_Level_QoS_Parameters : nullptr;} - struct s1_UL_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "s1_UL_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - s1_UL_GTPtunnelEndpoint_t& set_s1_UL_GTPtunnelEndpoint() { s1_UL_GTPtunnelEndpoint.setpresent(true); return s1_UL_GTPtunnelEndpoint;} - s1_UL_GTPtunnelEndpoint_t const* get_s1_UL_GTPtunnelEndpoint() const {return s1_UL_GTPtunnelEndpoint.is_valid() ? &s1_UL_GTPtunnelEndpoint : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(e_RAB_Level_QoS_Parameters); - v(s1_UL_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(e_RAB_Level_QoS_Parameters); - v(s1_UL_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - e_RAB_Level_QoS_Parameters.clear(); - s1_UL_GTPtunnelEndpoint.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - e_RAB_Level_QoS_Parameters_t e_RAB_Level_QoS_Parameters; - s1_UL_GTPtunnelEndpoint_t s1_UL_GTPtunnelEndpoint; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeModified-ModReqItem-Split-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_ToBeModified_ModReqItem_Split_BearerExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeModified-ModReqItem-Split-Bearer ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - e-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters OPTIONAL, - meNB-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeModified-ModReqItem-Split-BearerExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeModified_ModReqItem_Split_Bearer : asn::sequence<4, 0, true, 3> -{ - static constexpr const char* name() {return "E-RABs-ToBeModified-ModReqItem-Split-Bearer";} - using parent_t = asn::sequence<4, 0, true, 3>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct e_RAB_Level_QoS_Parameters_t : E_RAB_Level_QoS_Parameters - { - static constexpr const char* name() {return "e_RAB_Level_QoS_Parameters_t";} - using parent_t = E_RAB_Level_QoS_Parameters; - static constexpr bool optional = true; - - }; - e_RAB_Level_QoS_Parameters_t& set_e_RAB_Level_QoS_Parameters() { e_RAB_Level_QoS_Parameters.setpresent(true); return e_RAB_Level_QoS_Parameters;} - e_RAB_Level_QoS_Parameters_t const* get_e_RAB_Level_QoS_Parameters() const {return e_RAB_Level_QoS_Parameters.is_valid() ? &e_RAB_Level_QoS_Parameters : nullptr;} - struct meNB_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "meNB_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - meNB_GTPtunnelEndpoint_t& set_meNB_GTPtunnelEndpoint() { meNB_GTPtunnelEndpoint.setpresent(true); return meNB_GTPtunnelEndpoint;} - meNB_GTPtunnelEndpoint_t const* get_meNB_GTPtunnelEndpoint() const {return meNB_GTPtunnelEndpoint.is_valid() ? &meNB_GTPtunnelEndpoint : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(e_RAB_Level_QoS_Parameters); - v(meNB_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(e_RAB_Level_QoS_Parameters); - v(meNB_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - e_RAB_Level_QoS_Parameters.clear(); - meNB_GTPtunnelEndpoint.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - e_RAB_Level_QoS_Parameters_t e_RAB_Level_QoS_Parameters; - meNB_GTPtunnelEndpoint_t meNB_GTPtunnelEndpoint; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeModified-ModReqItem ::= CHOICE { - sCG-Bearer E-RABs-ToBeModified-ModReqItem-SCG-Bearer, - split-Bearer E-RABs-ToBeModified-ModReqItem-Split-Bearer, - ... -} -*/ - -struct E_RABs_ToBeModified_ModReqItem : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "E-RABs-ToBeModified-ModReqItem";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~E_RABs_ToBeModified_ModReqItem() {clear();} - struct sCG_Bearer_t : E_RABs_ToBeModified_ModReqItem_SCG_Bearer - { - static constexpr const char* name() {return "sCG_Bearer_t";} - using parent_t = E_RABs_ToBeModified_ModReqItem_SCG_Bearer; - - }; - struct split_Bearer_t : E_RABs_ToBeModified_ModReqItem_Split_Bearer - { - static constexpr const char* name() {return "split_Bearer_t";} - using parent_t = E_RABs_ToBeModified_ModReqItem_Split_Bearer; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - sCG_Bearer_t& select_sCG_Bearer() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - sCG_Bearer_t const* get_sCG_Bearer() const { if(get_index() == 1) { return &var.as();} return nullptr; } - split_Bearer_t& select_split_Bearer() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - split_Bearer_t const* get_split_Bearer() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(sCG_Bearer_t)]; - char dummy2[sizeof(split_Bearer_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -E-RABs-ToBeModified-ModReqItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-ToBeModified-ModReqItem CRITICALITY ignore TYPE E-RABs-ToBeModified-ModReqItem PRESENCE mandatory}, - ... -} -*/ - -struct E_RABs_ToBeModified_ModReqItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeModified_ModReqItem() { set(id_E_RABs_ToBeModified_ModReqItem); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_ToBeModified_ModReqItem)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_ToBeModified_ModReqItem);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeModified_ModReqItem() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_ToBeModified_ModReqItem& select_id_E_RABs_ToBeModified_ModReqItem() { return set(1); } - E_RABs_ToBeModified_ModReqItem const* get_id_E_RABs_ToBeModified_ModReqItem() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_ToBeModified_ModReqItem()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_ToBeModified_ModReqItem)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeModified_ModReqItem() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeModified-List-ModReq ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeModified-ModReqItemIEs} } -*/ - -struct E_RABs_ToBeModified_List_ModReq_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_ToBeModified_List_ModReq_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_ToBeModified_List_ModReq : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-ToBeModified-List-ModReq";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-RLC-Status CRITICALITY ignore EXTENSION RLC-Status PRESENCE optional }, - ... -} -*/ - -struct E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresentExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RLC_Status() { set(id_RLC_Status); type=1;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_RLC_Status)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_RLC_Status);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RLC_Status() { set(ignore); type=1;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - RLC_Status& select_id_RLC_Status() { return set(1); } - RLC_Status const* get_id_RLC_Status() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_RLC_Status()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(RLC_Status)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RLC_Status() { set(optional); type=1;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPpresent ::= SEQUENCE { - full-E-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters OPTIONAL, - max-MN-admit-E-RAB-Level-QoS-Parameters GBR-QosInformation OPTIONAL, - meNB-DL-GTP-TEIDatMCG GTPtunnelEndpoint OPTIONAL, - s1-UL-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPpresentExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresent : asn::sequence<5, 0, true, 5> -{ - static constexpr const char* name() {return "E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPpresent";} - using parent_t = asn::sequence<5, 0, true, 5>; - struct full_E_RAB_Level_QoS_Parameters_t : E_RAB_Level_QoS_Parameters - { - static constexpr const char* name() {return "full_E_RAB_Level_QoS_Parameters_t";} - using parent_t = E_RAB_Level_QoS_Parameters; - static constexpr bool optional = true; - - }; - full_E_RAB_Level_QoS_Parameters_t& set_full_E_RAB_Level_QoS_Parameters() { full_E_RAB_Level_QoS_Parameters.setpresent(true); return full_E_RAB_Level_QoS_Parameters;} - full_E_RAB_Level_QoS_Parameters_t const* get_full_E_RAB_Level_QoS_Parameters() const {return full_E_RAB_Level_QoS_Parameters.is_valid() ? &full_E_RAB_Level_QoS_Parameters : nullptr;} - struct max_MN_admit_E_RAB_Level_QoS_Parameters_t : GBR_QosInformation - { - static constexpr const char* name() {return "max_MN_admit_E_RAB_Level_QoS_Parameters_t";} - using parent_t = GBR_QosInformation; - static constexpr bool optional = true; - - }; - max_MN_admit_E_RAB_Level_QoS_Parameters_t& set_max_MN_admit_E_RAB_Level_QoS_Parameters() { max_MN_admit_E_RAB_Level_QoS_Parameters.setpresent(true); return max_MN_admit_E_RAB_Level_QoS_Parameters;} - max_MN_admit_E_RAB_Level_QoS_Parameters_t const* get_max_MN_admit_E_RAB_Level_QoS_Parameters() const {return max_MN_admit_E_RAB_Level_QoS_Parameters.is_valid() ? &max_MN_admit_E_RAB_Level_QoS_Parameters : nullptr;} - struct meNB_DL_GTP_TEIDatMCG_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "meNB_DL_GTP_TEIDatMCG_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - meNB_DL_GTP_TEIDatMCG_t& set_meNB_DL_GTP_TEIDatMCG() { meNB_DL_GTP_TEIDatMCG.setpresent(true); return meNB_DL_GTP_TEIDatMCG;} - meNB_DL_GTP_TEIDatMCG_t const* get_meNB_DL_GTP_TEIDatMCG() const {return meNB_DL_GTP_TEIDatMCG.is_valid() ? &meNB_DL_GTP_TEIDatMCG : nullptr;} - struct s1_UL_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "s1_UL_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - s1_UL_GTPtunnelEndpoint_t& set_s1_UL_GTPtunnelEndpoint() { s1_UL_GTPtunnelEndpoint.setpresent(true); return s1_UL_GTPtunnelEndpoint;} - s1_UL_GTPtunnelEndpoint_t const* get_s1_UL_GTPtunnelEndpoint() const {return s1_UL_GTPtunnelEndpoint.is_valid() ? &s1_UL_GTPtunnelEndpoint : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(full_E_RAB_Level_QoS_Parameters); - v(max_MN_admit_E_RAB_Level_QoS_Parameters); - v(meNB_DL_GTP_TEIDatMCG); - v(s1_UL_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(full_E_RAB_Level_QoS_Parameters); - v(max_MN_admit_E_RAB_Level_QoS_Parameters); - v(meNB_DL_GTP_TEIDatMCG); - v(s1_UL_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - void clear() - { - full_E_RAB_Level_QoS_Parameters.clear(); - max_MN_admit_E_RAB_Level_QoS_Parameters.clear(); - meNB_DL_GTP_TEIDatMCG.clear(); - s1_UL_GTPtunnelEndpoint.clear(); - iE_Extensions.clear(); - - }; - private: - full_E_RAB_Level_QoS_Parameters_t full_E_RAB_Level_QoS_Parameters; - max_MN_admit_E_RAB_Level_QoS_Parameters_t max_MN_admit_E_RAB_Level_QoS_Parameters; - meNB_DL_GTP_TEIDatMCG_t meNB_DL_GTP_TEIDatMCG; - s1_UL_GTPtunnelEndpoint_t s1_UL_GTPtunnelEndpoint; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPnotpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-uLpDCPSnLength CRITICALITY ignore EXTENSION PDCPSnLength PRESENCE optional}| - { ID id-dLPDCPSnLength CRITICALITY ignore EXTENSION PDCPSnLength PRESENCE optional}| - { ID id-secondarymeNBULGTPTEIDatPDCP CRITICALITY ignore EXTENSION GTPtunnelEndpoint PRESENCE optional}, - ... -} -*/ - -struct E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_uLpDCPSnLength() { set(id_uLpDCPSnLength); type=1;} - void select_id_dLPDCPSnLength() { set(id_dLPDCPSnLength); type=2;} - void select_id_secondarymeNBULGTPTEIDatPDCP() { set(id_secondarymeNBULGTPTEIDatPDCP); type=3;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_uLpDCPSnLength)) { type = 1; return true; } - else if(equal(id_dLPDCPSnLength)) { type = 2; return true; } - else if(equal(id_secondarymeNBULGTPTEIDatPDCP)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_uLpDCPSnLength);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_dLPDCPSnLength);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_secondarymeNBULGTPTEIDatPDCP);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_uLpDCPSnLength() { set(ignore); type=1;} - void select_id_dLPDCPSnLength() { set(ignore); type=2;} - void select_id_secondarymeNBULGTPTEIDatPDCP() { set(ignore); type=3;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - PDCPSnLength& select_id_uLpDCPSnLength() { return set(1); } - PDCPSnLength const* get_id_uLpDCPSnLength() const { return get(1); } - PDCPSnLength& select_id_dLPDCPSnLength() { return set(2); } - PDCPSnLength const* get_id_dLPDCPSnLength() const { return get(2); } - GTPtunnelEndpoint& select_id_secondarymeNBULGTPTEIDatPDCP() { return set(3); } - GTPtunnelEndpoint const* get_id_secondarymeNBULGTPTEIDatPDCP() const { return get(3); } - bool is_unknown() const { return type == 4; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_uLpDCPSnLength()); return true; - case 2: v(select_id_dLPDCPSnLength()); return true; - case 3: v(select_id_secondarymeNBULGTPTEIDatPDCP()); return true; - case 4: if(type != 4) {clear(); asn::base::set();} type = 4; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(GTPtunnelEndpoint)]; - char dummy2[sizeof(PDCPSnLength)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_uLpDCPSnLength() { set(optional); type=1;} - void select_id_dLPDCPSnLength() { set(optional); type=2;} - void select_id_secondarymeNBULGTPTEIDatPDCP() { set(optional); type=3;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPnotpresent ::= SEQUENCE { - requested-SCG-E-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters OPTIONAL, - meNB-UL-GTP-TEIDatPDCP GTPtunnelEndpoint OPTIONAL, - uL-Configuration ULConfiguration OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPnotpresentExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresent : asn::sequence<4, 0, true, 4> -{ - static constexpr const char* name() {return "E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPnotpresent";} - using parent_t = asn::sequence<4, 0, true, 4>; - struct requested_SCG_E_RAB_Level_QoS_Parameters_t : E_RAB_Level_QoS_Parameters - { - static constexpr const char* name() {return "requested_SCG_E_RAB_Level_QoS_Parameters_t";} - using parent_t = E_RAB_Level_QoS_Parameters; - static constexpr bool optional = true; - - }; - requested_SCG_E_RAB_Level_QoS_Parameters_t& set_requested_SCG_E_RAB_Level_QoS_Parameters() { requested_SCG_E_RAB_Level_QoS_Parameters.setpresent(true); return requested_SCG_E_RAB_Level_QoS_Parameters;} - requested_SCG_E_RAB_Level_QoS_Parameters_t const* get_requested_SCG_E_RAB_Level_QoS_Parameters() const {return requested_SCG_E_RAB_Level_QoS_Parameters.is_valid() ? &requested_SCG_E_RAB_Level_QoS_Parameters : nullptr;} - struct meNB_UL_GTP_TEIDatPDCP_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "meNB_UL_GTP_TEIDatPDCP_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - meNB_UL_GTP_TEIDatPDCP_t& set_meNB_UL_GTP_TEIDatPDCP() { meNB_UL_GTP_TEIDatPDCP.setpresent(true); return meNB_UL_GTP_TEIDatPDCP;} - meNB_UL_GTP_TEIDatPDCP_t const* get_meNB_UL_GTP_TEIDatPDCP() const {return meNB_UL_GTP_TEIDatPDCP.is_valid() ? &meNB_UL_GTP_TEIDatPDCP : nullptr;} - struct uL_Configuration_t : ULConfiguration - { - static constexpr const char* name() {return "uL_Configuration_t";} - using parent_t = ULConfiguration; - static constexpr bool optional = true; - - }; - uL_Configuration_t& set_uL_Configuration() { uL_Configuration.setpresent(true); return uL_Configuration;} - uL_Configuration_t const* get_uL_Configuration() const {return uL_Configuration.is_valid() ? &uL_Configuration : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(requested_SCG_E_RAB_Level_QoS_Parameters); - v(meNB_UL_GTP_TEIDatPDCP); - v(uL_Configuration); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(requested_SCG_E_RAB_Level_QoS_Parameters); - v(meNB_UL_GTP_TEIDatPDCP); - v(uL_Configuration); - v(iE_Extensions); - - }; - void clear() - { - requested_SCG_E_RAB_Level_QoS_Parameters.clear(); - meNB_UL_GTP_TEIDatPDCP.clear(); - uL_Configuration.clear(); - iE_Extensions.clear(); - - }; - private: - requested_SCG_E_RAB_Level_QoS_Parameters_t requested_SCG_E_RAB_Level_QoS_Parameters; - meNB_UL_GTP_TEIDatPDCP_t meNB_UL_GTP_TEIDatPDCP; - uL_Configuration_t uL_Configuration; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeModified-SgNBModReq-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_ToBeModified_SgNBModReq_ItemExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeModified-SgNBModReq-Item ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - en-DC-ResourceConfiguration EN-DC-ResourceConfiguration, - resource-configuration CHOICE { - sgNBPDCPpresent E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPpresent, - sgNBPDCPnotpresent E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPnotpresent, - ... - }, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeModified-SgNBModReq-ItemExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeModified_SgNBModReq_Item : asn::sequence<4, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-ToBeModified-SgNBModReq-Item";} - using parent_t = asn::sequence<4, 0, true, 1>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct en_DC_ResourceConfiguration_t : EN_DC_ResourceConfiguration - { - static constexpr const char* name() {return "en_DC_ResourceConfiguration_t";} - using parent_t = EN_DC_ResourceConfiguration; - - }; - en_DC_ResourceConfiguration_t& ref_en_DC_ResourceConfiguration() {return en_DC_ResourceConfiguration;} - en_DC_ResourceConfiguration_t const& ref_en_DC_ResourceConfiguration() const {return en_DC_ResourceConfiguration;} - struct resource_configuration_t : asn::choice<2, 0, true> - { - static constexpr const char* name() {return "resource_configuration_t";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~resource_configuration_t() {clear();} - struct sgNBPDCPpresent_t : E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresent - { - static constexpr const char* name() {return "sgNBPDCPpresent_t";} - using parent_t = E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresent; - - }; - struct sgNBPDCPnotpresent_t : E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresent - { - static constexpr const char* name() {return "sgNBPDCPnotpresent_t";} - using parent_t = E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresent; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - sgNBPDCPpresent_t& select_sgNBPDCPpresent() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - sgNBPDCPpresent_t const* get_sgNBPDCPpresent() const { if(get_index() == 1) { return &var.as();} return nullptr; } - sgNBPDCPnotpresent_t& select_sgNBPDCPnotpresent() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - sgNBPDCPnotpresent_t const* get_sgNBPDCPnotpresent() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(sgNBPDCPpresent_t)]; - char dummy2[sizeof(sgNBPDCPnotpresent_t)]; - - }; - asn::variant var; - index_type index {0}; - }; - resource_configuration_t& ref_resource_configuration() {return resource_configuration;} - resource_configuration_t const& ref_resource_configuration() const {return resource_configuration;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(en_DC_ResourceConfiguration); - v(resource_configuration); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(en_DC_ResourceConfiguration); - v(resource_configuration); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - en_DC_ResourceConfiguration.clear(); - resource_configuration.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - en_DC_ResourceConfiguration_t en_DC_ResourceConfiguration; - resource_configuration_t resource_configuration; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeModified-SgNBModReq-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-ToBeModified-SgNBModReq-Item CRITICALITY ignore TYPE E-RABs-ToBeModified-SgNBModReq-Item PRESENCE mandatory}, - ... -} -*/ - -struct E_RABs_ToBeModified_SgNBModReq_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeModified_SgNBModReq_Item() { set(id_E_RABs_ToBeModified_SgNBModReq_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_ToBeModified_SgNBModReq_Item)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_ToBeModified_SgNBModReq_Item);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeModified_SgNBModReq_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_ToBeModified_SgNBModReq_Item& select_id_E_RABs_ToBeModified_SgNBModReq_Item() { return set(1); } - E_RABs_ToBeModified_SgNBModReq_Item const* get_id_E_RABs_ToBeModified_SgNBModReq_Item() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_ToBeModified_SgNBModReq_Item()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_ToBeModified_SgNBModReq_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeModified_SgNBModReq_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeModified-SgNBModReq-List ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeModified-SgNBModReq-ItemIEs} } -*/ - -struct E_RABs_ToBeModified_SgNBModReq_List_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_ToBeModified_SgNBModReq_List_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_ToBeModified_SgNBModReq_List : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-ToBeModified-SgNBModReq-List";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-uLpDCPSnLength CRITICALITY ignore EXTENSION PDCPSnLength PRESENCE optional}| - { ID id-dLPDCPSnLength CRITICALITY ignore EXTENSION PDCPSnLength PRESENCE optional}| - { ID id-new-drb-ID-req CRITICALITY ignore EXTENSION NewDRBIDrequest PRESENCE optional}, - ... -} -*/ - -struct E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresentExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_uLpDCPSnLength() { set(id_uLpDCPSnLength); type=1;} - void select_id_dLPDCPSnLength() { set(id_dLPDCPSnLength); type=2;} - void select_id_new_drb_ID_req() { set(id_new_drb_ID_req); type=3;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_uLpDCPSnLength)) { type = 1; return true; } - else if(equal(id_dLPDCPSnLength)) { type = 2; return true; } - else if(equal(id_new_drb_ID_req)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_uLpDCPSnLength);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_dLPDCPSnLength);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_new_drb_ID_req);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_uLpDCPSnLength() { set(ignore); type=1;} - void select_id_dLPDCPSnLength() { set(ignore); type=2;} - void select_id_new_drb_ID_req() { set(ignore); type=3;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - PDCPSnLength& select_id_uLpDCPSnLength() { return set(1); } - PDCPSnLength const* get_id_uLpDCPSnLength() const { return get(1); } - PDCPSnLength& select_id_dLPDCPSnLength() { return set(2); } - PDCPSnLength const* get_id_dLPDCPSnLength() const { return get(2); } - NewDRBIDrequest& select_id_new_drb_ID_req() { return set(3); } - NewDRBIDrequest const* get_id_new_drb_ID_req() const { return get(3); } - bool is_unknown() const { return type == 4; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_uLpDCPSnLength()); return true; - case 2: v(select_id_dLPDCPSnLength()); return true; - case 3: v(select_id_new_drb_ID_req()); return true; - case 4: if(type != 4) {clear(); asn::base::set();} type = 4; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(NewDRBIDrequest)]; - char dummy2[sizeof(PDCPSnLength)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_uLpDCPSnLength() { set(optional); type=1;} - void select_id_dLPDCPSnLength() { set(optional); type=2;} - void select_id_new_drb_ID_req() { set(optional); type=3;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPpresent ::= SEQUENCE { - requested-MCG-E-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters OPTIONAL, - uL-Configuration ULConfiguration OPTIONAL, - sgNB-UL-GTP-TEIDatPDCP GTPtunnelEndpoint OPTIONAL, - s1-DL-GTP-TEIDatSgNB GTPtunnelEndpoint OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPpresentExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresent : asn::sequence<5, 0, true, 5> -{ - static constexpr const char* name() {return "E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPpresent";} - using parent_t = asn::sequence<5, 0, true, 5>; - struct requested_MCG_E_RAB_Level_QoS_Parameters_t : E_RAB_Level_QoS_Parameters - { - static constexpr const char* name() {return "requested_MCG_E_RAB_Level_QoS_Parameters_t";} - using parent_t = E_RAB_Level_QoS_Parameters; - static constexpr bool optional = true; - - }; - requested_MCG_E_RAB_Level_QoS_Parameters_t& set_requested_MCG_E_RAB_Level_QoS_Parameters() { requested_MCG_E_RAB_Level_QoS_Parameters.setpresent(true); return requested_MCG_E_RAB_Level_QoS_Parameters;} - requested_MCG_E_RAB_Level_QoS_Parameters_t const* get_requested_MCG_E_RAB_Level_QoS_Parameters() const {return requested_MCG_E_RAB_Level_QoS_Parameters.is_valid() ? &requested_MCG_E_RAB_Level_QoS_Parameters : nullptr;} - struct uL_Configuration_t : ULConfiguration - { - static constexpr const char* name() {return "uL_Configuration_t";} - using parent_t = ULConfiguration; - static constexpr bool optional = true; - - }; - uL_Configuration_t& set_uL_Configuration() { uL_Configuration.setpresent(true); return uL_Configuration;} - uL_Configuration_t const* get_uL_Configuration() const {return uL_Configuration.is_valid() ? &uL_Configuration : nullptr;} - struct sgNB_UL_GTP_TEIDatPDCP_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "sgNB_UL_GTP_TEIDatPDCP_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - sgNB_UL_GTP_TEIDatPDCP_t& set_sgNB_UL_GTP_TEIDatPDCP() { sgNB_UL_GTP_TEIDatPDCP.setpresent(true); return sgNB_UL_GTP_TEIDatPDCP;} - sgNB_UL_GTP_TEIDatPDCP_t const* get_sgNB_UL_GTP_TEIDatPDCP() const {return sgNB_UL_GTP_TEIDatPDCP.is_valid() ? &sgNB_UL_GTP_TEIDatPDCP : nullptr;} - struct s1_DL_GTP_TEIDatSgNB_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "s1_DL_GTP_TEIDatSgNB_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - s1_DL_GTP_TEIDatSgNB_t& set_s1_DL_GTP_TEIDatSgNB() { s1_DL_GTP_TEIDatSgNB.setpresent(true); return s1_DL_GTP_TEIDatSgNB;} - s1_DL_GTP_TEIDatSgNB_t const* get_s1_DL_GTP_TEIDatSgNB() const {return s1_DL_GTP_TEIDatSgNB.is_valid() ? &s1_DL_GTP_TEIDatSgNB : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(requested_MCG_E_RAB_Level_QoS_Parameters); - v(uL_Configuration); - v(sgNB_UL_GTP_TEIDatPDCP); - v(s1_DL_GTP_TEIDatSgNB); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(requested_MCG_E_RAB_Level_QoS_Parameters); - v(uL_Configuration); - v(sgNB_UL_GTP_TEIDatPDCP); - v(s1_DL_GTP_TEIDatSgNB); - v(iE_Extensions); - - }; - void clear() - { - requested_MCG_E_RAB_Level_QoS_Parameters.clear(); - uL_Configuration.clear(); - sgNB_UL_GTP_TEIDatPDCP.clear(); - s1_DL_GTP_TEIDatSgNB.clear(); - iE_Extensions.clear(); - - }; - private: - requested_MCG_E_RAB_Level_QoS_Parameters_t requested_MCG_E_RAB_Level_QoS_Parameters; - uL_Configuration_t uL_Configuration; - sgNB_UL_GTP_TEIDatPDCP_t sgNB_UL_GTP_TEIDatPDCP; - s1_DL_GTP_TEIDatSgNB_t s1_DL_GTP_TEIDatSgNB; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPnotpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-RLC-Status CRITICALITY ignore EXTENSION RLC-Status PRESENCE optional}| - { ID id-lCID CRITICALITY ignore EXTENSION LCID PRESENCE optional}, - ... -} -*/ - -struct E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresentExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_RLC_Status() { set(id_RLC_Status); type=1;} - void select_id_lCID() { set(id_lCID); type=2;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_RLC_Status)) { type = 1; return true; } - else if(equal(id_lCID)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_RLC_Status);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_lCID);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_RLC_Status() { set(ignore); type=1;} - void select_id_lCID() { set(ignore); type=2;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - RLC_Status& select_id_RLC_Status() { return set(1); } - RLC_Status const* get_id_RLC_Status() const { return get(1); } - LCID& select_id_lCID() { return set(2); } - LCID const* get_id_lCID() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_RLC_Status()); return true; - case 2: v(select_id_lCID()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(LCID)]; - char dummy2[sizeof(RLC_Status)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_RLC_Status() { set(optional); type=1;} - void select_id_lCID() { set(optional); type=2;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPnotpresent ::= SEQUENCE { - sgNB-DL-GTP-TEIDatSCG GTPtunnelEndpoint OPTIONAL, - secondary-sgNB-DL-GTP-TEIDatSCG GTPtunnelEndpoint OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPnotpresentExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresent : asn::sequence<3, 0, true, 3> -{ - static constexpr const char* name() {return "E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPnotpresent";} - using parent_t = asn::sequence<3, 0, true, 3>; - struct sgNB_DL_GTP_TEIDatSCG_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "sgNB_DL_GTP_TEIDatSCG_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - sgNB_DL_GTP_TEIDatSCG_t& set_sgNB_DL_GTP_TEIDatSCG() { sgNB_DL_GTP_TEIDatSCG.setpresent(true); return sgNB_DL_GTP_TEIDatSCG;} - sgNB_DL_GTP_TEIDatSCG_t const* get_sgNB_DL_GTP_TEIDatSCG() const {return sgNB_DL_GTP_TEIDatSCG.is_valid() ? &sgNB_DL_GTP_TEIDatSCG : nullptr;} - struct secondary_sgNB_DL_GTP_TEIDatSCG_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "secondary_sgNB_DL_GTP_TEIDatSCG_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - secondary_sgNB_DL_GTP_TEIDatSCG_t& set_secondary_sgNB_DL_GTP_TEIDatSCG() { secondary_sgNB_DL_GTP_TEIDatSCG.setpresent(true); return secondary_sgNB_DL_GTP_TEIDatSCG;} - secondary_sgNB_DL_GTP_TEIDatSCG_t const* get_secondary_sgNB_DL_GTP_TEIDatSCG() const {return secondary_sgNB_DL_GTP_TEIDatSCG.is_valid() ? &secondary_sgNB_DL_GTP_TEIDatSCG : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(sgNB_DL_GTP_TEIDatSCG); - v(secondary_sgNB_DL_GTP_TEIDatSCG); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(sgNB_DL_GTP_TEIDatSCG); - v(secondary_sgNB_DL_GTP_TEIDatSCG); - v(iE_Extensions); - - }; - void clear() - { - sgNB_DL_GTP_TEIDatSCG.clear(); - secondary_sgNB_DL_GTP_TEIDatSCG.clear(); - iE_Extensions.clear(); - - }; - private: - sgNB_DL_GTP_TEIDatSCG_t sgNB_DL_GTP_TEIDatSCG; - secondary_sgNB_DL_GTP_TEIDatSCG_t secondary_sgNB_DL_GTP_TEIDatSCG; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeModified-SgNBModReqd-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_ToBeModified_SgNBModReqd_ItemExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeModified-SgNBModReqd-Item ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - en-DC-ResourceConfiguration EN-DC-ResourceConfiguration, - resource-configuration CHOICE { - sgNBPDCPpresent E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPpresent, - sgNBPDCPnotpresent E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPnotpresent, - ... - }, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeModified-SgNBModReqd-ItemExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeModified_SgNBModReqd_Item : asn::sequence<4, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-ToBeModified-SgNBModReqd-Item";} - using parent_t = asn::sequence<4, 0, true, 1>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct en_DC_ResourceConfiguration_t : EN_DC_ResourceConfiguration - { - static constexpr const char* name() {return "en_DC_ResourceConfiguration_t";} - using parent_t = EN_DC_ResourceConfiguration; - - }; - en_DC_ResourceConfiguration_t& ref_en_DC_ResourceConfiguration() {return en_DC_ResourceConfiguration;} - en_DC_ResourceConfiguration_t const& ref_en_DC_ResourceConfiguration() const {return en_DC_ResourceConfiguration;} - struct resource_configuration_t : asn::choice<2, 0, true> - { - static constexpr const char* name() {return "resource_configuration_t";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~resource_configuration_t() {clear();} - struct sgNBPDCPpresent_t : E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresent - { - static constexpr const char* name() {return "sgNBPDCPpresent_t";} - using parent_t = E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresent; - - }; - struct sgNBPDCPnotpresent_t : E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresent - { - static constexpr const char* name() {return "sgNBPDCPnotpresent_t";} - using parent_t = E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresent; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - sgNBPDCPpresent_t& select_sgNBPDCPpresent() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - sgNBPDCPpresent_t const* get_sgNBPDCPpresent() const { if(get_index() == 1) { return &var.as();} return nullptr; } - sgNBPDCPnotpresent_t& select_sgNBPDCPnotpresent() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - sgNBPDCPnotpresent_t const* get_sgNBPDCPnotpresent() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(sgNBPDCPpresent_t)]; - char dummy2[sizeof(sgNBPDCPnotpresent_t)]; - - }; - asn::variant var; - index_type index {0}; - }; - resource_configuration_t& ref_resource_configuration() {return resource_configuration;} - resource_configuration_t const& ref_resource_configuration() const {return resource_configuration;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(en_DC_ResourceConfiguration); - v(resource_configuration); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(en_DC_ResourceConfiguration); - v(resource_configuration); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - en_DC_ResourceConfiguration.clear(); - resource_configuration.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - en_DC_ResourceConfiguration_t en_DC_ResourceConfiguration; - resource_configuration_t resource_configuration; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeModified-SgNBModReqd-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-ToBeModified-SgNBModReqd-Item CRITICALITY ignore TYPE E-RABs-ToBeModified-SgNBModReqd-Item PRESENCE mandatory }, - ... -} -*/ - -struct E_RABs_ToBeModified_SgNBModReqd_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeModified_SgNBModReqd_Item() { set(id_E_RABs_ToBeModified_SgNBModReqd_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_ToBeModified_SgNBModReqd_Item)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_ToBeModified_SgNBModReqd_Item);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeModified_SgNBModReqd_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_ToBeModified_SgNBModReqd_Item& select_id_E_RABs_ToBeModified_SgNBModReqd_Item() { return set(1); } - E_RABs_ToBeModified_SgNBModReqd_Item const* get_id_E_RABs_ToBeModified_SgNBModReqd_Item() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_ToBeModified_SgNBModReqd_Item()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_ToBeModified_SgNBModReqd_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeModified_SgNBModReqd_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeModified-SgNBModReqdList ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeModified-SgNBModReqd-ItemIEs} } -*/ - -struct E_RABs_ToBeModified_SgNBModReqdList_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_ToBeModified_SgNBModReqdList_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_ToBeModified_SgNBModReqdList : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-ToBeModified-SgNBModReqdList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-ToBeReleased-ModReqItem-SCG-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_ToBeReleased_ModReqItem_SCG_BearerExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeReleased-ModReqItem-SCG-Bearer ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - dL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, - uL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-ModReqItem-SCG-BearerExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeReleased_ModReqItem_SCG_Bearer : asn::sequence<4, 0, true, 3> -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-ModReqItem-SCG-Bearer";} - using parent_t = asn::sequence<4, 0, true, 3>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct dL_Forwarding_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "dL_Forwarding_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - dL_Forwarding_GTPtunnelEndpoint_t& set_dL_Forwarding_GTPtunnelEndpoint() { dL_Forwarding_GTPtunnelEndpoint.setpresent(true); return dL_Forwarding_GTPtunnelEndpoint;} - dL_Forwarding_GTPtunnelEndpoint_t const* get_dL_Forwarding_GTPtunnelEndpoint() const {return dL_Forwarding_GTPtunnelEndpoint.is_valid() ? &dL_Forwarding_GTPtunnelEndpoint : nullptr;} - struct uL_Forwarding_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "uL_Forwarding_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - uL_Forwarding_GTPtunnelEndpoint_t& set_uL_Forwarding_GTPtunnelEndpoint() { uL_Forwarding_GTPtunnelEndpoint.setpresent(true); return uL_Forwarding_GTPtunnelEndpoint;} - uL_Forwarding_GTPtunnelEndpoint_t const* get_uL_Forwarding_GTPtunnelEndpoint() const {return uL_Forwarding_GTPtunnelEndpoint.is_valid() ? &uL_Forwarding_GTPtunnelEndpoint : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(dL_Forwarding_GTPtunnelEndpoint); - v(uL_Forwarding_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(dL_Forwarding_GTPtunnelEndpoint); - v(uL_Forwarding_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - dL_Forwarding_GTPtunnelEndpoint.clear(); - uL_Forwarding_GTPtunnelEndpoint.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - dL_Forwarding_GTPtunnelEndpoint_t dL_Forwarding_GTPtunnelEndpoint; - uL_Forwarding_GTPtunnelEndpoint_t uL_Forwarding_GTPtunnelEndpoint; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeReleased-ModReqItem-Split-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_ToBeReleased_ModReqItem_Split_BearerExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeReleased-ModReqItem-Split-Bearer ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - dL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-ModReqItem-Split-BearerExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeReleased_ModReqItem_Split_Bearer : asn::sequence<3, 0, true, 2> -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-ModReqItem-Split-Bearer";} - using parent_t = asn::sequence<3, 0, true, 2>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct dL_Forwarding_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "dL_Forwarding_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - dL_Forwarding_GTPtunnelEndpoint_t& set_dL_Forwarding_GTPtunnelEndpoint() { dL_Forwarding_GTPtunnelEndpoint.setpresent(true); return dL_Forwarding_GTPtunnelEndpoint;} - dL_Forwarding_GTPtunnelEndpoint_t const* get_dL_Forwarding_GTPtunnelEndpoint() const {return dL_Forwarding_GTPtunnelEndpoint.is_valid() ? &dL_Forwarding_GTPtunnelEndpoint : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(dL_Forwarding_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(dL_Forwarding_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - dL_Forwarding_GTPtunnelEndpoint.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - dL_Forwarding_GTPtunnelEndpoint_t dL_Forwarding_GTPtunnelEndpoint; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeReleased-ModReqItem ::= CHOICE { - sCG-Bearer E-RABs-ToBeReleased-ModReqItem-SCG-Bearer, - split-Bearer E-RABs-ToBeReleased-ModReqItem-Split-Bearer, - ... -} -*/ - -struct E_RABs_ToBeReleased_ModReqItem : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-ModReqItem";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~E_RABs_ToBeReleased_ModReqItem() {clear();} - struct sCG_Bearer_t : E_RABs_ToBeReleased_ModReqItem_SCG_Bearer - { - static constexpr const char* name() {return "sCG_Bearer_t";} - using parent_t = E_RABs_ToBeReleased_ModReqItem_SCG_Bearer; - - }; - struct split_Bearer_t : E_RABs_ToBeReleased_ModReqItem_Split_Bearer - { - static constexpr const char* name() {return "split_Bearer_t";} - using parent_t = E_RABs_ToBeReleased_ModReqItem_Split_Bearer; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - sCG_Bearer_t& select_sCG_Bearer() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - sCG_Bearer_t const* get_sCG_Bearer() const { if(get_index() == 1) { return &var.as();} return nullptr; } - split_Bearer_t& select_split_Bearer() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - split_Bearer_t const* get_split_Bearer() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(sCG_Bearer_t)]; - char dummy2[sizeof(split_Bearer_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -E-RABs-ToBeReleased-ModReqItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-ToBeReleased-ModReqItem CRITICALITY ignore TYPE E-RABs-ToBeReleased-ModReqItem PRESENCE mandatory}, - ... -} -*/ - -struct E_RABs_ToBeReleased_ModReqItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeReleased_ModReqItem() { set(id_E_RABs_ToBeReleased_ModReqItem); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_ToBeReleased_ModReqItem)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_ToBeReleased_ModReqItem);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeReleased_ModReqItem() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_ToBeReleased_ModReqItem& select_id_E_RABs_ToBeReleased_ModReqItem() { return set(1); } - E_RABs_ToBeReleased_ModReqItem const* get_id_E_RABs_ToBeReleased_ModReqItem() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_ToBeReleased_ModReqItem()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_ToBeReleased_ModReqItem)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeReleased_ModReqItem() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeReleased-List-ModReq ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeReleased-ModReqItemIEs} } -*/ - -struct E_RABs_ToBeReleased_List_ModReq_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_ToBeReleased_List_ModReq_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_ToBeReleased_List_ModReq : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-List-ModReq";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-ToBeReleased-RelConfItem-SCG-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_ToBeReleased_RelConfItem_SCG_BearerExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeReleased-RelConfItem-SCG-Bearer ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - uL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, - dL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-RelConfItem-SCG-BearerExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeReleased_RelConfItem_SCG_Bearer : asn::sequence<4, 0, true, 3> -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-RelConfItem-SCG-Bearer";} - using parent_t = asn::sequence<4, 0, true, 3>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct uL_Forwarding_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "uL_Forwarding_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - uL_Forwarding_GTPtunnelEndpoint_t& set_uL_Forwarding_GTPtunnelEndpoint() { uL_Forwarding_GTPtunnelEndpoint.setpresent(true); return uL_Forwarding_GTPtunnelEndpoint;} - uL_Forwarding_GTPtunnelEndpoint_t const* get_uL_Forwarding_GTPtunnelEndpoint() const {return uL_Forwarding_GTPtunnelEndpoint.is_valid() ? &uL_Forwarding_GTPtunnelEndpoint : nullptr;} - struct dL_Forwarding_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "dL_Forwarding_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - dL_Forwarding_GTPtunnelEndpoint_t& set_dL_Forwarding_GTPtunnelEndpoint() { dL_Forwarding_GTPtunnelEndpoint.setpresent(true); return dL_Forwarding_GTPtunnelEndpoint;} - dL_Forwarding_GTPtunnelEndpoint_t const* get_dL_Forwarding_GTPtunnelEndpoint() const {return dL_Forwarding_GTPtunnelEndpoint.is_valid() ? &dL_Forwarding_GTPtunnelEndpoint : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(uL_Forwarding_GTPtunnelEndpoint); - v(dL_Forwarding_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(uL_Forwarding_GTPtunnelEndpoint); - v(dL_Forwarding_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - uL_Forwarding_GTPtunnelEndpoint.clear(); - dL_Forwarding_GTPtunnelEndpoint.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - uL_Forwarding_GTPtunnelEndpoint_t uL_Forwarding_GTPtunnelEndpoint; - dL_Forwarding_GTPtunnelEndpoint_t dL_Forwarding_GTPtunnelEndpoint; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeReleased-RelConfItem-Split-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_ToBeReleased_RelConfItem_Split_BearerExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeReleased-RelConfItem-Split-Bearer ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - dL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-RelConfItem-Split-BearerExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeReleased_RelConfItem_Split_Bearer : asn::sequence<3, 0, true, 2> -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-RelConfItem-Split-Bearer";} - using parent_t = asn::sequence<3, 0, true, 2>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct dL_Forwarding_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "dL_Forwarding_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - dL_Forwarding_GTPtunnelEndpoint_t& set_dL_Forwarding_GTPtunnelEndpoint() { dL_Forwarding_GTPtunnelEndpoint.setpresent(true); return dL_Forwarding_GTPtunnelEndpoint;} - dL_Forwarding_GTPtunnelEndpoint_t const* get_dL_Forwarding_GTPtunnelEndpoint() const {return dL_Forwarding_GTPtunnelEndpoint.is_valid() ? &dL_Forwarding_GTPtunnelEndpoint : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(dL_Forwarding_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(dL_Forwarding_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - dL_Forwarding_GTPtunnelEndpoint.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - dL_Forwarding_GTPtunnelEndpoint_t dL_Forwarding_GTPtunnelEndpoint; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeReleased-RelConfItem ::= CHOICE { - sCG-Bearer E-RABs-ToBeReleased-RelConfItem-SCG-Bearer, - split-Bearer E-RABs-ToBeReleased-RelConfItem-Split-Bearer, - ... -} -*/ - -struct E_RABs_ToBeReleased_RelConfItem : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-RelConfItem";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~E_RABs_ToBeReleased_RelConfItem() {clear();} - struct sCG_Bearer_t : E_RABs_ToBeReleased_RelConfItem_SCG_Bearer - { - static constexpr const char* name() {return "sCG_Bearer_t";} - using parent_t = E_RABs_ToBeReleased_RelConfItem_SCG_Bearer; - - }; - struct split_Bearer_t : E_RABs_ToBeReleased_RelConfItem_Split_Bearer - { - static constexpr const char* name() {return "split_Bearer_t";} - using parent_t = E_RABs_ToBeReleased_RelConfItem_Split_Bearer; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - sCG_Bearer_t& select_sCG_Bearer() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - sCG_Bearer_t const* get_sCG_Bearer() const { if(get_index() == 1) { return &var.as();} return nullptr; } - split_Bearer_t& select_split_Bearer() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - split_Bearer_t const* get_split_Bearer() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(sCG_Bearer_t)]; - char dummy2[sizeof(split_Bearer_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -E-RABs-ToBeReleased-RelConfItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-ToBeReleased-RelConfItem CRITICALITY ignore TYPE E-RABs-ToBeReleased-RelConfItem PRESENCE mandatory}, - ... -} -*/ - -struct E_RABs_ToBeReleased_RelConfItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeReleased_RelConfItem() { set(id_E_RABs_ToBeReleased_RelConfItem); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_ToBeReleased_RelConfItem)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_ToBeReleased_RelConfItem);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeReleased_RelConfItem() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_ToBeReleased_RelConfItem& select_id_E_RABs_ToBeReleased_RelConfItem() { return set(1); } - E_RABs_ToBeReleased_RelConfItem const* get_id_E_RABs_ToBeReleased_RelConfItem() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_ToBeReleased_RelConfItem()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_ToBeReleased_RelConfItem)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeReleased_RelConfItem() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeReleased-List-RelConf ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeReleased-RelConfItemIEs} } -*/ - -struct E_RABs_ToBeReleased_List_RelConf_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_ToBeReleased_List_RelConf_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_ToBeReleased_List_RelConf : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-List-RelConf";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-ToBeReleased-RelReqItem-SCG-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_ToBeReleased_RelReqItem_SCG_BearerExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeReleased-RelReqItem-SCG-Bearer ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - uL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, - dL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-RelReqItem-SCG-BearerExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeReleased_RelReqItem_SCG_Bearer : asn::sequence<4, 0, true, 3> -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-RelReqItem-SCG-Bearer";} - using parent_t = asn::sequence<4, 0, true, 3>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct uL_Forwarding_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "uL_Forwarding_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - uL_Forwarding_GTPtunnelEndpoint_t& set_uL_Forwarding_GTPtunnelEndpoint() { uL_Forwarding_GTPtunnelEndpoint.setpresent(true); return uL_Forwarding_GTPtunnelEndpoint;} - uL_Forwarding_GTPtunnelEndpoint_t const* get_uL_Forwarding_GTPtunnelEndpoint() const {return uL_Forwarding_GTPtunnelEndpoint.is_valid() ? &uL_Forwarding_GTPtunnelEndpoint : nullptr;} - struct dL_Forwarding_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "dL_Forwarding_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - dL_Forwarding_GTPtunnelEndpoint_t& set_dL_Forwarding_GTPtunnelEndpoint() { dL_Forwarding_GTPtunnelEndpoint.setpresent(true); return dL_Forwarding_GTPtunnelEndpoint;} - dL_Forwarding_GTPtunnelEndpoint_t const* get_dL_Forwarding_GTPtunnelEndpoint() const {return dL_Forwarding_GTPtunnelEndpoint.is_valid() ? &dL_Forwarding_GTPtunnelEndpoint : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(uL_Forwarding_GTPtunnelEndpoint); - v(dL_Forwarding_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(uL_Forwarding_GTPtunnelEndpoint); - v(dL_Forwarding_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - uL_Forwarding_GTPtunnelEndpoint.clear(); - dL_Forwarding_GTPtunnelEndpoint.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - uL_Forwarding_GTPtunnelEndpoint_t uL_Forwarding_GTPtunnelEndpoint; - dL_Forwarding_GTPtunnelEndpoint_t dL_Forwarding_GTPtunnelEndpoint; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeReleased-RelReqItem-Split-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_ToBeReleased_RelReqItem_Split_BearerExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeReleased-RelReqItem-Split-Bearer ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - dL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-RelReqItem-Split-BearerExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeReleased_RelReqItem_Split_Bearer : asn::sequence<3, 0, true, 2> -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-RelReqItem-Split-Bearer";} - using parent_t = asn::sequence<3, 0, true, 2>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct dL_Forwarding_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "dL_Forwarding_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - dL_Forwarding_GTPtunnelEndpoint_t& set_dL_Forwarding_GTPtunnelEndpoint() { dL_Forwarding_GTPtunnelEndpoint.setpresent(true); return dL_Forwarding_GTPtunnelEndpoint;} - dL_Forwarding_GTPtunnelEndpoint_t const* get_dL_Forwarding_GTPtunnelEndpoint() const {return dL_Forwarding_GTPtunnelEndpoint.is_valid() ? &dL_Forwarding_GTPtunnelEndpoint : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(dL_Forwarding_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(dL_Forwarding_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - dL_Forwarding_GTPtunnelEndpoint.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - dL_Forwarding_GTPtunnelEndpoint_t dL_Forwarding_GTPtunnelEndpoint; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeReleased-RelReqItem ::= CHOICE { - sCG-Bearer E-RABs-ToBeReleased-RelReqItem-SCG-Bearer, - split-Bearer E-RABs-ToBeReleased-RelReqItem-Split-Bearer, - ... -} -*/ - -struct E_RABs_ToBeReleased_RelReqItem : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-RelReqItem";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~E_RABs_ToBeReleased_RelReqItem() {clear();} - struct sCG_Bearer_t : E_RABs_ToBeReleased_RelReqItem_SCG_Bearer - { - static constexpr const char* name() {return "sCG_Bearer_t";} - using parent_t = E_RABs_ToBeReleased_RelReqItem_SCG_Bearer; - - }; - struct split_Bearer_t : E_RABs_ToBeReleased_RelReqItem_Split_Bearer - { - static constexpr const char* name() {return "split_Bearer_t";} - using parent_t = E_RABs_ToBeReleased_RelReqItem_Split_Bearer; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - sCG_Bearer_t& select_sCG_Bearer() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - sCG_Bearer_t const* get_sCG_Bearer() const { if(get_index() == 1) { return &var.as();} return nullptr; } - split_Bearer_t& select_split_Bearer() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - split_Bearer_t const* get_split_Bearer() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(sCG_Bearer_t)]; - char dummy2[sizeof(split_Bearer_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -E-RABs-ToBeReleased-RelReqItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-ToBeReleased-RelReqItem CRITICALITY ignore TYPE E-RABs-ToBeReleased-RelReqItem PRESENCE mandatory}, - ... -} -*/ - -struct E_RABs_ToBeReleased_RelReqItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeReleased_RelReqItem() { set(id_E_RABs_ToBeReleased_RelReqItem); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_ToBeReleased_RelReqItem)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_ToBeReleased_RelReqItem);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeReleased_RelReqItem() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_ToBeReleased_RelReqItem& select_id_E_RABs_ToBeReleased_RelReqItem() { return set(1); } - E_RABs_ToBeReleased_RelReqItem const* get_id_E_RABs_ToBeReleased_RelReqItem() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_ToBeReleased_RelReqItem()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_ToBeReleased_RelReqItem)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeReleased_RelReqItem() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeReleased-List-RelReq ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeReleased-RelReqItemIEs} } -*/ - -struct E_RABs_ToBeReleased_List_RelReq_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_ToBeReleased_List_RelReq_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_ToBeReleased_List_RelReq : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-List-RelReq";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-ToBeReleased-ModReqdItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_ToBeReleased_ModReqdItemExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeReleased-ModReqdItem ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - cause Cause, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-ModReqdItemExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeReleased_ModReqdItem : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-ModReqdItem";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct cause_t : Cause - { - static constexpr const char* name() {return "cause_t";} - using parent_t = Cause; - - }; - cause_t& ref_cause() {return cause;} - cause_t const& ref_cause() const {return cause;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(cause); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(cause); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - cause.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - cause_t cause; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeReleased-ModReqdItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-ToBeReleased-ModReqdItem CRITICALITY ignore TYPE E-RABs-ToBeReleased-ModReqdItem PRESENCE mandatory }, - ... -} -*/ - -struct E_RABs_ToBeReleased_ModReqdItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeReleased_ModReqdItem() { set(id_E_RABs_ToBeReleased_ModReqdItem); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_ToBeReleased_ModReqdItem)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_ToBeReleased_ModReqdItem);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeReleased_ModReqdItem() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_ToBeReleased_ModReqdItem& select_id_E_RABs_ToBeReleased_ModReqdItem() { return set(1); } - E_RABs_ToBeReleased_ModReqdItem const* get_id_E_RABs_ToBeReleased_ModReqdItem() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_ToBeReleased_ModReqdItem()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_ToBeReleased_ModReqdItem)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeReleased_ModReqdItem() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeReleased-ModReqd ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeReleased-ModReqdItemIEs} } -*/ - -struct E_RABs_ToBeReleased_ModReqd_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_ToBeReleased_ModReqd_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_ToBeReleased_ModReqd : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-ModReqd";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresentExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPpresent ::= SEQUENCE { - uL-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, - dL-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPpresentExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresent : asn::sequence<3, 0, true, 3> -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPpresent";} - using parent_t = asn::sequence<3, 0, true, 3>; - struct uL_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "uL_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - uL_GTPtunnelEndpoint_t& set_uL_GTPtunnelEndpoint() { uL_GTPtunnelEndpoint.setpresent(true); return uL_GTPtunnelEndpoint;} - uL_GTPtunnelEndpoint_t const* get_uL_GTPtunnelEndpoint() const {return uL_GTPtunnelEndpoint.is_valid() ? &uL_GTPtunnelEndpoint : nullptr;} - struct dL_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "dL_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - dL_GTPtunnelEndpoint_t& set_dL_GTPtunnelEndpoint() { dL_GTPtunnelEndpoint.setpresent(true); return dL_GTPtunnelEndpoint;} - dL_GTPtunnelEndpoint_t const* get_dL_GTPtunnelEndpoint() const {return dL_GTPtunnelEndpoint.is_valid() ? &dL_GTPtunnelEndpoint : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(uL_GTPtunnelEndpoint); - v(dL_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(uL_GTPtunnelEndpoint); - v(dL_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - void clear() - { - uL_GTPtunnelEndpoint.clear(); - dL_GTPtunnelEndpoint.clear(); - iE_Extensions.clear(); - - }; - private: - uL_GTPtunnelEndpoint_t uL_GTPtunnelEndpoint; - dL_GTPtunnelEndpoint_t dL_GTPtunnelEndpoint; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPnotpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresentExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPnotpresent ::= SEQUENCE { - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPnotpresentExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresent : asn::sequence<1, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPnotpresent";} - using parent_t = asn::sequence<1, 0, true, 1>; - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(iE_Extensions); - - }; - void clear() - { - iE_Extensions.clear(); - - }; - private: - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeReleased-SgNBChaConf-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBChaConf_ItemExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeReleased-SgNBChaConf-Item ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - en-DC-ResourceConfiguration EN-DC-ResourceConfiguration, - resource-configuration CHOICE { - sgNBPDCPpresent E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPpresent, - sgNBPDCPnotpresent E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPnotpresent, - ... - }, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-SgNBChaConf-ItemExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBChaConf_Item : asn::sequence<4, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-SgNBChaConf-Item";} - using parent_t = asn::sequence<4, 0, true, 1>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct en_DC_ResourceConfiguration_t : EN_DC_ResourceConfiguration - { - static constexpr const char* name() {return "en_DC_ResourceConfiguration_t";} - using parent_t = EN_DC_ResourceConfiguration; - - }; - en_DC_ResourceConfiguration_t& ref_en_DC_ResourceConfiguration() {return en_DC_ResourceConfiguration;} - en_DC_ResourceConfiguration_t const& ref_en_DC_ResourceConfiguration() const {return en_DC_ResourceConfiguration;} - struct resource_configuration_t : asn::choice<2, 0, true> - { - static constexpr const char* name() {return "resource_configuration_t";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~resource_configuration_t() {clear();} - struct sgNBPDCPpresent_t : E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresent - { - static constexpr const char* name() {return "sgNBPDCPpresent_t";} - using parent_t = E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresent; - - }; - struct sgNBPDCPnotpresent_t : E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresent - { - static constexpr const char* name() {return "sgNBPDCPnotpresent_t";} - using parent_t = E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresent; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - sgNBPDCPpresent_t& select_sgNBPDCPpresent() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - sgNBPDCPpresent_t const* get_sgNBPDCPpresent() const { if(get_index() == 1) { return &var.as();} return nullptr; } - sgNBPDCPnotpresent_t& select_sgNBPDCPnotpresent() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - sgNBPDCPnotpresent_t const* get_sgNBPDCPnotpresent() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(sgNBPDCPpresent_t)]; - char dummy2[sizeof(sgNBPDCPnotpresent_t)]; - - }; - asn::variant var; - index_type index {0}; - }; - resource_configuration_t& ref_resource_configuration() {return resource_configuration;} - resource_configuration_t const& ref_resource_configuration() const {return resource_configuration;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(en_DC_ResourceConfiguration); - v(resource_configuration); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(en_DC_ResourceConfiguration); - v(resource_configuration); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - en_DC_ResourceConfiguration.clear(); - resource_configuration.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - en_DC_ResourceConfiguration_t en_DC_ResourceConfiguration; - resource_configuration_t resource_configuration; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeReleased-SgNBChaConf-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-ToBeReleased-SgNBChaConf-Item CRITICALITY ignore TYPE E-RABs-ToBeReleased-SgNBChaConf-Item PRESENCE mandatory}, - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBChaConf_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeReleased_SgNBChaConf_Item() { set(id_E_RABs_ToBeReleased_SgNBChaConf_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_ToBeReleased_SgNBChaConf_Item)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_ToBeReleased_SgNBChaConf_Item);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeReleased_SgNBChaConf_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_ToBeReleased_SgNBChaConf_Item& select_id_E_RABs_ToBeReleased_SgNBChaConf_Item() { return set(1); } - E_RABs_ToBeReleased_SgNBChaConf_Item const* get_id_E_RABs_ToBeReleased_SgNBChaConf_Item() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_ToBeReleased_SgNBChaConf_Item()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_ToBeReleased_SgNBChaConf_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeReleased_SgNBChaConf_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeReleased-SgNBChaConfList ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeReleased-SgNBChaConf-ItemIEs} } -*/ - -struct E_RABs_ToBeReleased_SgNBChaConfList_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_ToBeReleased_SgNBChaConfList_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_ToBeReleased_SgNBChaConfList : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-SgNBChaConfList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresentExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPpresent ::= SEQUENCE { - dL-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, - uL-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPpresentExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresent : asn::sequence<3, 0, true, 3> -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPpresent";} - using parent_t = asn::sequence<3, 0, true, 3>; - struct dL_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "dL_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - dL_GTPtunnelEndpoint_t& set_dL_GTPtunnelEndpoint() { dL_GTPtunnelEndpoint.setpresent(true); return dL_GTPtunnelEndpoint;} - dL_GTPtunnelEndpoint_t const* get_dL_GTPtunnelEndpoint() const {return dL_GTPtunnelEndpoint.is_valid() ? &dL_GTPtunnelEndpoint : nullptr;} - struct uL_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "uL_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - uL_GTPtunnelEndpoint_t& set_uL_GTPtunnelEndpoint() { uL_GTPtunnelEndpoint.setpresent(true); return uL_GTPtunnelEndpoint;} - uL_GTPtunnelEndpoint_t const* get_uL_GTPtunnelEndpoint() const {return uL_GTPtunnelEndpoint.is_valid() ? &uL_GTPtunnelEndpoint : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(dL_GTPtunnelEndpoint); - v(uL_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(dL_GTPtunnelEndpoint); - v(uL_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - void clear() - { - dL_GTPtunnelEndpoint.clear(); - uL_GTPtunnelEndpoint.clear(); - iE_Extensions.clear(); - - }; - private: - dL_GTPtunnelEndpoint_t dL_GTPtunnelEndpoint; - uL_GTPtunnelEndpoint_t uL_GTPtunnelEndpoint; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPnotpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPnotpresent ::= SEQUENCE { - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPnotpresentExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresent : asn::sequence<1, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPnotpresent";} - using parent_t = asn::sequence<1, 0, true, 1>; - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(iE_Extensions); - - }; - void clear() - { - iE_Extensions.clear(); - - }; - private: - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeReleased-SgNBModReq-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBModReq_ItemExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeReleased-SgNBModReq-Item ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - en-DC-ResourceConfiguration EN-DC-ResourceConfiguration, - resource-configuration CHOICE { - sgNBPDCPpresent E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPpresent, - sgNBPDCPnotpresent E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPnotpresent, - ... - }, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-SgNBModReq-ItemExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBModReq_Item : asn::sequence<4, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-SgNBModReq-Item";} - using parent_t = asn::sequence<4, 0, true, 1>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct en_DC_ResourceConfiguration_t : EN_DC_ResourceConfiguration - { - static constexpr const char* name() {return "en_DC_ResourceConfiguration_t";} - using parent_t = EN_DC_ResourceConfiguration; - - }; - en_DC_ResourceConfiguration_t& ref_en_DC_ResourceConfiguration() {return en_DC_ResourceConfiguration;} - en_DC_ResourceConfiguration_t const& ref_en_DC_ResourceConfiguration() const {return en_DC_ResourceConfiguration;} - struct resource_configuration_t : asn::choice<2, 0, true> - { - static constexpr const char* name() {return "resource_configuration_t";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~resource_configuration_t() {clear();} - struct sgNBPDCPpresent_t : E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresent - { - static constexpr const char* name() {return "sgNBPDCPpresent_t";} - using parent_t = E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresent; - - }; - struct sgNBPDCPnotpresent_t : E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresent - { - static constexpr const char* name() {return "sgNBPDCPnotpresent_t";} - using parent_t = E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresent; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - sgNBPDCPpresent_t& select_sgNBPDCPpresent() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - sgNBPDCPpresent_t const* get_sgNBPDCPpresent() const { if(get_index() == 1) { return &var.as();} return nullptr; } - sgNBPDCPnotpresent_t& select_sgNBPDCPnotpresent() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - sgNBPDCPnotpresent_t const* get_sgNBPDCPnotpresent() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(sgNBPDCPpresent_t)]; - char dummy2[sizeof(sgNBPDCPnotpresent_t)]; - - }; - asn::variant var; - index_type index {0}; - }; - resource_configuration_t& ref_resource_configuration() {return resource_configuration;} - resource_configuration_t const& ref_resource_configuration() const {return resource_configuration;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(en_DC_ResourceConfiguration); - v(resource_configuration); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(en_DC_ResourceConfiguration); - v(resource_configuration); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - en_DC_ResourceConfiguration.clear(); - resource_configuration.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - en_DC_ResourceConfiguration_t en_DC_ResourceConfiguration; - resource_configuration_t resource_configuration; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeReleased-SgNBModReq-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-ToBeReleased-SgNBModReq-Item CRITICALITY ignore TYPE E-RABs-ToBeReleased-SgNBModReq-Item PRESENCE mandatory}, - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBModReq_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeReleased_SgNBModReq_Item() { set(id_E_RABs_ToBeReleased_SgNBModReq_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_ToBeReleased_SgNBModReq_Item)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_ToBeReleased_SgNBModReq_Item);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeReleased_SgNBModReq_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_ToBeReleased_SgNBModReq_Item& select_id_E_RABs_ToBeReleased_SgNBModReq_Item() { return set(1); } - E_RABs_ToBeReleased_SgNBModReq_Item const* get_id_E_RABs_ToBeReleased_SgNBModReq_Item() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_ToBeReleased_SgNBModReq_Item()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_ToBeReleased_SgNBModReq_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeReleased_SgNBModReq_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeReleased-SgNBModReq-List ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeReleased-SgNBModReq-ItemIEs} } -*/ - -struct E_RABs_ToBeReleased_SgNBModReq_List_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_ToBeReleased_SgNBModReq_List_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_ToBeReleased_SgNBModReq_List : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-SgNBModReq-List";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-ToBeReleased-SgNBModReqd-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-RLCMode-transferred CRITICALITY ignore EXTENSION RLCMode PRESENCE optional}, - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBModReqd_ItemExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RLCMode_transferred() { set(id_RLCMode_transferred); type=1;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_RLCMode_transferred)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_RLCMode_transferred);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RLCMode_transferred() { set(ignore); type=1;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - RLCMode& select_id_RLCMode_transferred() { return set(1); } - RLCMode const* get_id_RLCMode_transferred() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_RLCMode_transferred()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(RLCMode)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RLCMode_transferred() { set(optional); type=1;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeReleased-SgNBModReqd-Item ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - cause Cause, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-SgNBModReqd-ItemExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBModReqd_Item : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-SgNBModReqd-Item";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct cause_t : Cause - { - static constexpr const char* name() {return "cause_t";} - using parent_t = Cause; - - }; - cause_t& ref_cause() {return cause;} - cause_t const& ref_cause() const {return cause;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(cause); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(cause); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - cause.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - cause_t cause; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeReleased-SgNBModReqd-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-ToBeReleased-SgNBModReqd-Item CRITICALITY ignore TYPE E-RABs-ToBeReleased-SgNBModReqd-Item PRESENCE mandatory }, - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBModReqd_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeReleased_SgNBModReqd_Item() { set(id_E_RABs_ToBeReleased_SgNBModReqd_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_ToBeReleased_SgNBModReqd_Item)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_ToBeReleased_SgNBModReqd_Item);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeReleased_SgNBModReqd_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_ToBeReleased_SgNBModReqd_Item& select_id_E_RABs_ToBeReleased_SgNBModReqd_Item() { return set(1); } - E_RABs_ToBeReleased_SgNBModReqd_Item const* get_id_E_RABs_ToBeReleased_SgNBModReqd_Item() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_ToBeReleased_SgNBModReqd_Item()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_ToBeReleased_SgNBModReqd_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeReleased_SgNBModReqd_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeReleased-SgNBModReqdList ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeReleased-SgNBModReqd-ItemIEs} } -*/ - -struct E_RABs_ToBeReleased_SgNBModReqdList_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_ToBeReleased_SgNBModReqdList_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_ToBeReleased_SgNBModReqdList : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-SgNBModReqdList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresentExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPpresent ::= SEQUENCE { - uL-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, - dL-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPpresentExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresent : asn::sequence<3, 0, true, 3> -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPpresent";} - using parent_t = asn::sequence<3, 0, true, 3>; - struct uL_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "uL_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - uL_GTPtunnelEndpoint_t& set_uL_GTPtunnelEndpoint() { uL_GTPtunnelEndpoint.setpresent(true); return uL_GTPtunnelEndpoint;} - uL_GTPtunnelEndpoint_t const* get_uL_GTPtunnelEndpoint() const {return uL_GTPtunnelEndpoint.is_valid() ? &uL_GTPtunnelEndpoint : nullptr;} - struct dL_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "dL_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - dL_GTPtunnelEndpoint_t& set_dL_GTPtunnelEndpoint() { dL_GTPtunnelEndpoint.setpresent(true); return dL_GTPtunnelEndpoint;} - dL_GTPtunnelEndpoint_t const* get_dL_GTPtunnelEndpoint() const {return dL_GTPtunnelEndpoint.is_valid() ? &dL_GTPtunnelEndpoint : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(uL_GTPtunnelEndpoint); - v(dL_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(uL_GTPtunnelEndpoint); - v(dL_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - void clear() - { - uL_GTPtunnelEndpoint.clear(); - dL_GTPtunnelEndpoint.clear(); - iE_Extensions.clear(); - - }; - private: - uL_GTPtunnelEndpoint_t uL_GTPtunnelEndpoint; - dL_GTPtunnelEndpoint_t dL_GTPtunnelEndpoint; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPnotpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresentExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPnotpresent ::= SEQUENCE { - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPnotpresentExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresent : asn::sequence<1, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPnotpresent";} - using parent_t = asn::sequence<1, 0, true, 1>; - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(iE_Extensions); - - }; - void clear() - { - iE_Extensions.clear(); - - }; - private: - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeReleased-SgNBRelConf-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBRelConf_ItemExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeReleased-SgNBRelConf-Item ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - en-DC-ResourceConfiguration EN-DC-ResourceConfiguration, - resource-configuration CHOICE { - sgNBPDCPpresent E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPpresent, - sgNBPDCPnotpresent E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPnotpresent, - ... - }, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-SgNBRelConf-ItemExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBRelConf_Item : asn::sequence<4, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-SgNBRelConf-Item";} - using parent_t = asn::sequence<4, 0, true, 1>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct en_DC_ResourceConfiguration_t : EN_DC_ResourceConfiguration - { - static constexpr const char* name() {return "en_DC_ResourceConfiguration_t";} - using parent_t = EN_DC_ResourceConfiguration; - - }; - en_DC_ResourceConfiguration_t& ref_en_DC_ResourceConfiguration() {return en_DC_ResourceConfiguration;} - en_DC_ResourceConfiguration_t const& ref_en_DC_ResourceConfiguration() const {return en_DC_ResourceConfiguration;} - struct resource_configuration_t : asn::choice<2, 0, true> - { - static constexpr const char* name() {return "resource_configuration_t";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~resource_configuration_t() {clear();} - struct sgNBPDCPpresent_t : E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresent - { - static constexpr const char* name() {return "sgNBPDCPpresent_t";} - using parent_t = E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresent; - - }; - struct sgNBPDCPnotpresent_t : E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresent - { - static constexpr const char* name() {return "sgNBPDCPnotpresent_t";} - using parent_t = E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresent; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - sgNBPDCPpresent_t& select_sgNBPDCPpresent() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - sgNBPDCPpresent_t const* get_sgNBPDCPpresent() const { if(get_index() == 1) { return &var.as();} return nullptr; } - sgNBPDCPnotpresent_t& select_sgNBPDCPnotpresent() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - sgNBPDCPnotpresent_t const* get_sgNBPDCPnotpresent() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(sgNBPDCPpresent_t)]; - char dummy2[sizeof(sgNBPDCPnotpresent_t)]; - - }; - asn::variant var; - index_type index {0}; - }; - resource_configuration_t& ref_resource_configuration() {return resource_configuration;} - resource_configuration_t const& ref_resource_configuration() const {return resource_configuration;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(en_DC_ResourceConfiguration); - v(resource_configuration); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(en_DC_ResourceConfiguration); - v(resource_configuration); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - en_DC_ResourceConfiguration.clear(); - resource_configuration.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - en_DC_ResourceConfiguration_t en_DC_ResourceConfiguration; - resource_configuration_t resource_configuration; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeReleased-SgNBRelConf-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-ToBeReleased-SgNBRelConf-Item CRITICALITY ignore TYPE E-RABs-ToBeReleased-SgNBRelConf-Item PRESENCE mandatory}, - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBRelConf_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeReleased_SgNBRelConf_Item() { set(id_E_RABs_ToBeReleased_SgNBRelConf_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_ToBeReleased_SgNBRelConf_Item)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_ToBeReleased_SgNBRelConf_Item);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeReleased_SgNBRelConf_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_ToBeReleased_SgNBRelConf_Item& select_id_E_RABs_ToBeReleased_SgNBRelConf_Item() { return set(1); } - E_RABs_ToBeReleased_SgNBRelConf_Item const* get_id_E_RABs_ToBeReleased_SgNBRelConf_Item() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_ToBeReleased_SgNBRelConf_Item()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_ToBeReleased_SgNBRelConf_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeReleased_SgNBRelConf_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeReleased-SgNBRelConfList ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeReleased-SgNBRelConf-ItemIEs} } -*/ - -struct E_RABs_ToBeReleased_SgNBRelConfList_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_ToBeReleased_SgNBRelConfList_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_ToBeReleased_SgNBRelConfList : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-SgNBRelConfList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresentExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPpresent ::= SEQUENCE { - uL-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, - dL-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPpresentExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresent : asn::sequence<3, 0, true, 3> -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPpresent";} - using parent_t = asn::sequence<3, 0, true, 3>; - struct uL_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "uL_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - uL_GTPtunnelEndpoint_t& set_uL_GTPtunnelEndpoint() { uL_GTPtunnelEndpoint.setpresent(true); return uL_GTPtunnelEndpoint;} - uL_GTPtunnelEndpoint_t const* get_uL_GTPtunnelEndpoint() const {return uL_GTPtunnelEndpoint.is_valid() ? &uL_GTPtunnelEndpoint : nullptr;} - struct dL_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "dL_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - dL_GTPtunnelEndpoint_t& set_dL_GTPtunnelEndpoint() { dL_GTPtunnelEndpoint.setpresent(true); return dL_GTPtunnelEndpoint;} - dL_GTPtunnelEndpoint_t const* get_dL_GTPtunnelEndpoint() const {return dL_GTPtunnelEndpoint.is_valid() ? &dL_GTPtunnelEndpoint : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(uL_GTPtunnelEndpoint); - v(dL_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(uL_GTPtunnelEndpoint); - v(dL_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - void clear() - { - uL_GTPtunnelEndpoint.clear(); - dL_GTPtunnelEndpoint.clear(); - iE_Extensions.clear(); - - }; - private: - uL_GTPtunnelEndpoint_t uL_GTPtunnelEndpoint; - dL_GTPtunnelEndpoint_t dL_GTPtunnelEndpoint; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPnotpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresentExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPnotpresent ::= SEQUENCE { - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPnotpresentExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresent : asn::sequence<1, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPnotpresent";} - using parent_t = asn::sequence<1, 0, true, 1>; - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(iE_Extensions); - - }; - void clear() - { - iE_Extensions.clear(); - - }; - private: - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeReleased-SgNBRelReq-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBRelReq_ItemExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeReleased-SgNBRelReq-Item ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - en-DC-ResourceConfiguration EN-DC-ResourceConfiguration, - resource-configuration CHOICE { - sgNBPDCPpresent E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPpresent, - sgNBPDCPnotpresent E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPnotpresent, - ... - }, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-SgNBRelReq-ItemExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBRelReq_Item : asn::sequence<4, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-SgNBRelReq-Item";} - using parent_t = asn::sequence<4, 0, true, 1>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct en_DC_ResourceConfiguration_t : EN_DC_ResourceConfiguration - { - static constexpr const char* name() {return "en_DC_ResourceConfiguration_t";} - using parent_t = EN_DC_ResourceConfiguration; - - }; - en_DC_ResourceConfiguration_t& ref_en_DC_ResourceConfiguration() {return en_DC_ResourceConfiguration;} - en_DC_ResourceConfiguration_t const& ref_en_DC_ResourceConfiguration() const {return en_DC_ResourceConfiguration;} - struct resource_configuration_t : asn::choice<2, 0, true> - { - static constexpr const char* name() {return "resource_configuration_t";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~resource_configuration_t() {clear();} - struct sgNBPDCPpresent_t : E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresent - { - static constexpr const char* name() {return "sgNBPDCPpresent_t";} - using parent_t = E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresent; - - }; - struct sgNBPDCPnotpresent_t : E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresent - { - static constexpr const char* name() {return "sgNBPDCPnotpresent_t";} - using parent_t = E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresent; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - sgNBPDCPpresent_t& select_sgNBPDCPpresent() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - sgNBPDCPpresent_t const* get_sgNBPDCPpresent() const { if(get_index() == 1) { return &var.as();} return nullptr; } - sgNBPDCPnotpresent_t& select_sgNBPDCPnotpresent() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - sgNBPDCPnotpresent_t const* get_sgNBPDCPnotpresent() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(sgNBPDCPpresent_t)]; - char dummy2[sizeof(sgNBPDCPnotpresent_t)]; - - }; - asn::variant var; - index_type index {0}; - }; - resource_configuration_t& ref_resource_configuration() {return resource_configuration;} - resource_configuration_t const& ref_resource_configuration() const {return resource_configuration;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(en_DC_ResourceConfiguration); - v(resource_configuration); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(en_DC_ResourceConfiguration); - v(resource_configuration); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - en_DC_ResourceConfiguration.clear(); - resource_configuration.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - en_DC_ResourceConfiguration_t en_DC_ResourceConfiguration; - resource_configuration_t resource_configuration; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeReleased-SgNBRelReq-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-ToBeReleased-SgNBRelReq-Item CRITICALITY ignore TYPE E-RABs-ToBeReleased-SgNBRelReq-Item PRESENCE mandatory}, - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBRelReq_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeReleased_SgNBRelReq_Item() { set(id_E_RABs_ToBeReleased_SgNBRelReq_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_ToBeReleased_SgNBRelReq_Item)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_ToBeReleased_SgNBRelReq_Item);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeReleased_SgNBRelReq_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_ToBeReleased_SgNBRelReq_Item& select_id_E_RABs_ToBeReleased_SgNBRelReq_Item() { return set(1); } - E_RABs_ToBeReleased_SgNBRelReq_Item const* get_id_E_RABs_ToBeReleased_SgNBRelReq_Item() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_ToBeReleased_SgNBRelReq_Item()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_ToBeReleased_SgNBRelReq_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeReleased_SgNBRelReq_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeReleased-SgNBRelReqList ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeReleased-SgNBRelReq-ItemIEs} } -*/ - -struct E_RABs_ToBeReleased_SgNBRelReqList_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_ToBeReleased_SgNBRelReqList_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_ToBeReleased_SgNBRelReqList : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-SgNBRelReqList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-ToBeReleased-SgNBRelReqd-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBRelReqd_ItemExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeReleased-SgNBRelReqd-Item ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - rlc-Mode-transferred RLCMode, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-SgNBRelReqd-ItemExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBRelReqd_Item : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-SgNBRelReqd-Item";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct rlc_Mode_transferred_t : RLCMode - { - static constexpr const char* name() {return "rlc_Mode_transferred_t";} - using parent_t = RLCMode; - - }; - rlc_Mode_transferred_t& ref_rlc_Mode_transferred() {return rlc_Mode_transferred;} - rlc_Mode_transferred_t const& ref_rlc_Mode_transferred() const {return rlc_Mode_transferred;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(rlc_Mode_transferred); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(rlc_Mode_transferred); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - rlc_Mode_transferred.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - rlc_Mode_transferred_t rlc_Mode_transferred; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeReleased-SgNBRelReqd-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-ToBeReleased-SgNBRelReqd-Item CRITICALITY ignore TYPE E-RABs-ToBeReleased-SgNBRelReqd-Item PRESENCE mandatory}, - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBRelReqd_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeReleased_SgNBRelReqd_Item() { set(id_E_RABs_ToBeReleased_SgNBRelReqd_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_ToBeReleased_SgNBRelReqd_Item)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_ToBeReleased_SgNBRelReqd_Item);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeReleased_SgNBRelReqd_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_ToBeReleased_SgNBRelReqd_Item& select_id_E_RABs_ToBeReleased_SgNBRelReqd_Item() { return set(1); } - E_RABs_ToBeReleased_SgNBRelReqd_Item const* get_id_E_RABs_ToBeReleased_SgNBRelReqd_Item() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_ToBeReleased_SgNBRelReqd_Item()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_ToBeReleased_SgNBRelReqd_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeReleased_SgNBRelReqd_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeReleased-SgNBRelReqdList ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeReleased-SgNBRelReqd-ItemIEs} } -*/ - -struct E_RABs_ToBeReleased_SgNBRelReqdList_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_ToBeReleased_SgNBRelReqdList_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_ToBeReleased_SgNBRelReqdList : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-SgNBRelReqdList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-ToBeSetup-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-BearerType CRITICALITY reject EXTENSION BearerType PRESENCE optional}, - ... -} -*/ - -struct E_RABs_ToBeSetup_ItemExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_BearerType() { set(id_BearerType); type=1;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_BearerType)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_BearerType);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_BearerType() { set(reject); type=1;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - BearerType& select_id_BearerType() { return set(1); } - BearerType const* get_id_BearerType() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_BearerType()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(BearerType)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_BearerType() { set(optional); type=1;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeSetup-Item ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - e-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters, - dL-Forwarding DL-Forwarding OPTIONAL, - uL-GTPtunnelEndpoint GTPtunnelEndpoint, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeSetup-ItemExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeSetup_Item : asn::sequence<5, 0, true, 2> -{ - static constexpr const char* name() {return "E-RABs-ToBeSetup-Item";} - using parent_t = asn::sequence<5, 0, true, 2>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct e_RAB_Level_QoS_Parameters_t : E_RAB_Level_QoS_Parameters - { - static constexpr const char* name() {return "e_RAB_Level_QoS_Parameters_t";} - using parent_t = E_RAB_Level_QoS_Parameters; - - }; - e_RAB_Level_QoS_Parameters_t& ref_e_RAB_Level_QoS_Parameters() {return e_RAB_Level_QoS_Parameters;} - e_RAB_Level_QoS_Parameters_t const& ref_e_RAB_Level_QoS_Parameters() const {return e_RAB_Level_QoS_Parameters;} - struct dL_Forwarding_t : DL_Forwarding - { - static constexpr const char* name() {return "dL_Forwarding_t";} - using parent_t = DL_Forwarding; - static constexpr bool optional = true; - - }; - dL_Forwarding_t& set_dL_Forwarding() { dL_Forwarding.setpresent(true); return dL_Forwarding;} - dL_Forwarding_t const* get_dL_Forwarding() const {return dL_Forwarding.is_valid() ? &dL_Forwarding : nullptr;} - struct uL_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "uL_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - - }; - uL_GTPtunnelEndpoint_t& ref_uL_GTPtunnelEndpoint() {return uL_GTPtunnelEndpoint;} - uL_GTPtunnelEndpoint_t const& ref_uL_GTPtunnelEndpoint() const {return uL_GTPtunnelEndpoint;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(e_RAB_Level_QoS_Parameters); - v(dL_Forwarding); - v(uL_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(e_RAB_Level_QoS_Parameters); - v(dL_Forwarding); - v(uL_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - e_RAB_Level_QoS_Parameters.clear(); - dL_Forwarding.clear(); - uL_GTPtunnelEndpoint.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - e_RAB_Level_QoS_Parameters_t e_RAB_Level_QoS_Parameters; - dL_Forwarding_t dL_Forwarding; - uL_GTPtunnelEndpoint_t uL_GTPtunnelEndpoint; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeSetup-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-ToBeSetup-Item CRITICALITY ignore TYPE E-RABs-ToBeSetup-Item PRESENCE mandatory }, - ... -} -*/ - -struct E_RABs_ToBeSetup_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeSetup_Item() { set(id_E_RABs_ToBeSetup_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_ToBeSetup_Item)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_ToBeSetup_Item);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeSetup_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_ToBeSetup_Item& select_id_E_RABs_ToBeSetup_Item() { return set(1); } - E_RABs_ToBeSetup_Item const* get_id_E_RABs_ToBeSetup_Item() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_ToBeSetup_Item()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_ToBeSetup_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeSetup_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeSetup-List ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeSetup-ItemIEs} } -*/ - -struct E_RABs_ToBeSetup_List_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_ToBeSetup_List_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_ToBeSetup_List : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-ToBeSetup-List";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-ToBeSetupRetrieve-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-uL-GTPtunnelEndpoint CRITICALITY reject EXTENSION GTPtunnelEndpoint PRESENCE mandatory}| - { ID id-dL-Forwarding CRITICALITY ignore EXTENSION DL-Forwarding PRESENCE optional }, - ... -} -*/ - -struct E_RABs_ToBeSetupRetrieve_ItemExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_uL_GTPtunnelEndpoint() { set(id_uL_GTPtunnelEndpoint); type=1;} - void select_id_dL_Forwarding() { set(id_dL_Forwarding); type=2;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_uL_GTPtunnelEndpoint)) { type = 1; return true; } - else if(equal(id_dL_Forwarding)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_uL_GTPtunnelEndpoint);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_dL_Forwarding);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_uL_GTPtunnelEndpoint() { set(reject); type=1;} - void select_id_dL_Forwarding() { set(ignore); type=2;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - GTPtunnelEndpoint& select_id_uL_GTPtunnelEndpoint() { return set(1); } - GTPtunnelEndpoint const* get_id_uL_GTPtunnelEndpoint() const { return get(1); } - DL_Forwarding& select_id_dL_Forwarding() { return set(2); } - DL_Forwarding const* get_id_dL_Forwarding() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_uL_GTPtunnelEndpoint()); return true; - case 2: v(select_id_dL_Forwarding()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(DL_Forwarding)]; - char dummy2[sizeof(GTPtunnelEndpoint)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_uL_GTPtunnelEndpoint() { set(mandatory); type=1;} - void select_id_dL_Forwarding() { set(optional); type=2;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeSetupRetrieve-Item ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - e-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters, - bearerType BearerType OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeSetupRetrieve-ItemExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeSetupRetrieve_Item : asn::sequence<4, 0, true, 2> -{ - static constexpr const char* name() {return "E-RABs-ToBeSetupRetrieve-Item";} - using parent_t = asn::sequence<4, 0, true, 2>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct e_RAB_Level_QoS_Parameters_t : E_RAB_Level_QoS_Parameters - { - static constexpr const char* name() {return "e_RAB_Level_QoS_Parameters_t";} - using parent_t = E_RAB_Level_QoS_Parameters; - - }; - e_RAB_Level_QoS_Parameters_t& ref_e_RAB_Level_QoS_Parameters() {return e_RAB_Level_QoS_Parameters;} - e_RAB_Level_QoS_Parameters_t const& ref_e_RAB_Level_QoS_Parameters() const {return e_RAB_Level_QoS_Parameters;} - struct bearerType_t : BearerType - { - static constexpr const char* name() {return "bearerType_t";} - using parent_t = BearerType; - static constexpr bool optional = true; - - }; - bearerType_t& set_bearerType() { bearerType.setpresent(true); return bearerType;} - bearerType_t const* get_bearerType() const {return bearerType.is_valid() ? &bearerType : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(e_RAB_Level_QoS_Parameters); - v(bearerType); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(e_RAB_Level_QoS_Parameters); - v(bearerType); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - e_RAB_Level_QoS_Parameters.clear(); - bearerType.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - e_RAB_Level_QoS_Parameters_t e_RAB_Level_QoS_Parameters; - bearerType_t bearerType; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeSetupRetrieve-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-ToBeSetupRetrieve-Item CRITICALITY ignore TYPE E-RABs-ToBeSetupRetrieve-Item PRESENCE mandatory}, - ... -} -*/ - -struct E_RABs_ToBeSetupRetrieve_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeSetupRetrieve_Item() { set(id_E_RABs_ToBeSetupRetrieve_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_ToBeSetupRetrieve_Item)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_ToBeSetupRetrieve_Item);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeSetupRetrieve_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_ToBeSetupRetrieve_Item& select_id_E_RABs_ToBeSetupRetrieve_Item() { return set(1); } - E_RABs_ToBeSetupRetrieve_Item const* get_id_E_RABs_ToBeSetupRetrieve_Item() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_ToBeSetupRetrieve_Item()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_ToBeSetupRetrieve_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeSetupRetrieve_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeSetup-ListRetrieve ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeSetupRetrieve-ItemIEs} } -*/ - -struct E_RABs_ToBeSetup_ListRetrieve_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_ToBeSetup_ListRetrieve_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_ToBeSetup_ListRetrieve : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-ToBeSetup-ListRetrieve";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -ENB-ENDCConfigUpdateAckIEs X2AP-PROTOCOL-IES ::= { - ... -} -*/ - -struct ENB_ENDCConfigUpdateAckIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -FDD-InfoNeighbourServedNRCell-Information-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct FDD_InfoNeighbourServedNRCell_Information_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -FDD-InfoNeighbourServedNRCell-Information ::= SEQUENCE { - ul-NRFreqInfo NRFreqInfo, - dl-NRFreqInfo NRFreqInfo, - iE-Extensions ProtocolExtensionContainer { {FDD-InfoNeighbourServedNRCell-Information-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct FDD_InfoNeighbourServedNRCell_Information : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "FDD-InfoNeighbourServedNRCell-Information";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct ul_NRFreqInfo_t : NRFreqInfo - { - static constexpr const char* name() {return "ul_NRFreqInfo_t";} - using parent_t = NRFreqInfo; - - }; - ul_NRFreqInfo_t& ref_ul_NRFreqInfo() {return ul_NRFreqInfo;} - ul_NRFreqInfo_t const& ref_ul_NRFreqInfo() const {return ul_NRFreqInfo;} - struct dl_NRFreqInfo_t : NRFreqInfo - { - static constexpr const char* name() {return "dl_NRFreqInfo_t";} - using parent_t = NRFreqInfo; - - }; - dl_NRFreqInfo_t& ref_dl_NRFreqInfo() {return dl_NRFreqInfo;} - dl_NRFreqInfo_t const& ref_dl_NRFreqInfo() const {return dl_NRFreqInfo;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(ul_NRFreqInfo); - v(dl_NRFreqInfo); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(ul_NRFreqInfo); - v(dl_NRFreqInfo); - v(iE_Extensions); - - }; - void clear() - { - ul_NRFreqInfo.clear(); - dl_NRFreqInfo.clear(); - iE_Extensions.clear(); - - }; - private: - ul_NRFreqInfo_t ul_NRFreqInfo; - dl_NRFreqInfo_t dl_NRFreqInfo; - iE_Extensions_t iE_Extensions; - -}; -/* -TDD-InfoNeighbourServedNRCell-Information-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct TDD_InfoNeighbourServedNRCell_Information_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -TDD-InfoNeighbourServedNRCell-Information ::= SEQUENCE { - nRFreqInfo NRFreqInfo, - iE-Extensions ProtocolExtensionContainer { {TDD-InfoNeighbourServedNRCell-Information-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct TDD_InfoNeighbourServedNRCell_Information : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "TDD-InfoNeighbourServedNRCell-Information";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct nRFreqInfo_t : NRFreqInfo - { - static constexpr const char* name() {return "nRFreqInfo_t";} - using parent_t = NRFreqInfo; - - }; - nRFreqInfo_t& ref_nRFreqInfo() {return nRFreqInfo;} - nRFreqInfo_t const& ref_nRFreqInfo() const {return nRFreqInfo;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(nRFreqInfo); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(nRFreqInfo); - v(iE_Extensions); - - }; - void clear() - { - nRFreqInfo.clear(); - iE_Extensions.clear(); - - }; - private: - nRFreqInfo_t nRFreqInfo; - iE_Extensions_t iE_Extensions; - -}; -/* -NRNeighbour-Information-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct NRNeighbour_Information_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -NRNeighbour-Information ::= SEQUENCE (SIZE (1.. maxofNRNeighbours))OF SEQUENCE { - nrpCI NRPCI, - nrCellID NRCGI, - fiveGS-TAC FiveGS-TAC OPTIONAL, - configured-TAC TAC OPTIONAL, - measurementTimingConfiguration OCTET STRING, - nRNeighbourModeInfo CHOICE { - fdd FDD-InfoNeighbourServedNRCell-Information, - tdd TDD-InfoNeighbourServedNRCell-Information, - ... - }, - iE-Extensions ProtocolExtensionContainer { {NRNeighbour-Information-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct NRNeighbour_Information_elm : asn::sequence<7, 0, true, 3> -{ - static constexpr const char* name() {return "NRNeighbour_Information_elm";} - using parent_t = asn::sequence<7, 0, true, 3>; - struct nrpCI_t : NRPCI - { - static constexpr const char* name() {return "nrpCI_t";} - using parent_t = NRPCI; - - }; - nrpCI_t& ref_nrpCI() {return nrpCI;} - nrpCI_t const& ref_nrpCI() const {return nrpCI;} - struct nrCellID_t : NRCGI - { - static constexpr const char* name() {return "nrCellID_t";} - using parent_t = NRCGI; - - }; - nrCellID_t& ref_nrCellID() {return nrCellID;} - nrCellID_t const& ref_nrCellID() const {return nrCellID;} - struct fiveGS_TAC_t : FiveGS_TAC - { - static constexpr const char* name() {return "fiveGS_TAC_t";} - using parent_t = FiveGS_TAC; - static constexpr bool optional = true; - - }; - fiveGS_TAC_t& set_fiveGS_TAC() { fiveGS_TAC.setpresent(true); return fiveGS_TAC;} - fiveGS_TAC_t const* get_fiveGS_TAC() const {return fiveGS_TAC.is_valid() ? &fiveGS_TAC : nullptr;} - struct configured_TAC_t : TAC - { - static constexpr const char* name() {return "configured_TAC_t";} - using parent_t = TAC; - static constexpr bool optional = true; - - }; - configured_TAC_t& set_configured_TAC() { configured_TAC.setpresent(true); return configured_TAC;} - configured_TAC_t const* get_configured_TAC() const {return configured_TAC.is_valid() ? &configured_TAC : nullptr;} - struct measurementTimingConfiguration_t : asn::ostring<> - { - static constexpr const char* name() {return "measurementTimingConfiguration_t";} - using parent_t = asn::ostring<>; - - }; - - measurementTimingConfiguration_t& ref_measurementTimingConfiguration() {return measurementTimingConfiguration;} - measurementTimingConfiguration_t const& ref_measurementTimingConfiguration() const {return measurementTimingConfiguration;} - struct nRNeighbourModeInfo_t : asn::choice<2, 0, true> - { - static constexpr const char* name() {return "nRNeighbourModeInfo_t";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~nRNeighbourModeInfo_t() {clear();} - struct fdd_t : FDD_InfoNeighbourServedNRCell_Information - { - static constexpr const char* name() {return "fdd_t";} - using parent_t = FDD_InfoNeighbourServedNRCell_Information; - - }; - struct tdd_t : TDD_InfoNeighbourServedNRCell_Information - { - static constexpr const char* name() {return "tdd_t";} - using parent_t = TDD_InfoNeighbourServedNRCell_Information; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - fdd_t& select_fdd() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - fdd_t const* get_fdd() const { if(get_index() == 1) { return &var.as();} return nullptr; } - tdd_t& select_tdd() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - tdd_t const* get_tdd() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(fdd_t)]; - char dummy2[sizeof(tdd_t)]; - - }; - asn::variant var; - index_type index {0}; - }; - nRNeighbourModeInfo_t& ref_nRNeighbourModeInfo() {return nRNeighbourModeInfo;} - nRNeighbourModeInfo_t const& ref_nRNeighbourModeInfo() const {return nRNeighbourModeInfo;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(nrpCI); - v(nrCellID); - v(fiveGS_TAC); - v(configured_TAC); - v(measurementTimingConfiguration); - v(nRNeighbourModeInfo); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(nrpCI); - v(nrCellID); - v(fiveGS_TAC); - v(configured_TAC); - v(measurementTimingConfiguration); - v(nRNeighbourModeInfo); - v(iE_Extensions); - - }; - void clear() - { - nrpCI.clear(); - nrCellID.clear(); - fiveGS_TAC.clear(); - configured_TAC.clear(); - measurementTimingConfiguration.clear(); - nRNeighbourModeInfo.clear(); - iE_Extensions.clear(); - - }; - private: - nrpCI_t nrpCI; - nrCellID_t nrCellID; - fiveGS_TAC_t fiveGS_TAC; - configured_TAC_t configured_TAC; - measurementTimingConfiguration_t measurementTimingConfiguration; - nRNeighbourModeInfo_t nRNeighbourModeInfo; - iE_Extensions_t iE_Extensions; - -}; -struct NRNeighbour_Information : asn::sequenceof -{ - static constexpr const char* name() {return "NRNeighbour-Information";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -ServedEUTRAcellsENDCX2Management-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct ServedEUTRAcellsENDCX2Management_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ServedEUTRAcellsENDCX2ManagementList ::= SEQUENCE (SIZE (1.. maxCellineNB)) OF SEQUENCE { - servedEUTRACellInfo ServedCell-Information, - nrNeighbourInfo NRNeighbour-Information OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {ServedEUTRAcellsENDCX2Management-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct ServedEUTRAcellsENDCX2ManagementList_elm : asn::sequence<3, 0, true, 2> -{ - static constexpr const char* name() {return "ServedEUTRAcellsENDCX2ManagementList_elm";} - using parent_t = asn::sequence<3, 0, true, 2>; - struct servedEUTRACellInfo_t : ServedCell_Information - { - static constexpr const char* name() {return "servedEUTRACellInfo_t";} - using parent_t = ServedCell_Information; - - }; - servedEUTRACellInfo_t& ref_servedEUTRACellInfo() {return servedEUTRACellInfo;} - servedEUTRACellInfo_t const& ref_servedEUTRACellInfo() const {return servedEUTRACellInfo;} - struct nrNeighbourInfo_t : NRNeighbour_Information - { - static constexpr const char* name() {return "nrNeighbourInfo_t";} - using parent_t = NRNeighbour_Information; - static constexpr bool optional = true; - - }; - nrNeighbourInfo_t& set_nrNeighbourInfo() { nrNeighbourInfo.setpresent(true); return nrNeighbourInfo;} - nrNeighbourInfo_t const* get_nrNeighbourInfo() const {return nrNeighbourInfo.is_valid() ? &nrNeighbourInfo : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(servedEUTRACellInfo); - v(nrNeighbourInfo); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(servedEUTRACellInfo); - v(nrNeighbourInfo); - v(iE_Extensions); - - }; - void clear() - { - servedEUTRACellInfo.clear(); - nrNeighbourInfo.clear(); - iE_Extensions.clear(); - - }; - private: - servedEUTRACellInfo_t servedEUTRACellInfo; - nrNeighbourInfo_t nrNeighbourInfo; - iE_Extensions_t iE_Extensions; - -}; -struct ServedEUTRAcellsENDCX2ManagementList : asn::sequenceof -{ - static constexpr const char* name() {return "ServedEUTRAcellsENDCX2ManagementList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -ServedEUTRAcellsToModifyListENDCConfUpd-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct ServedEUTRAcellsToModifyListENDCConfUpd_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ServedEUTRAcellsToModifyListENDCConfUpd ::= SEQUENCE (SIZE (1.. maxCellineNB)) OF SEQUENCE { - old-ECGI ECGI, - servedEUTRACellInfo ServedCell-Information, - nrNeighbourInfo NRNeighbour-Information OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {ServedEUTRAcellsToModifyListENDCConfUpd-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct ServedEUTRAcellsToModifyListENDCConfUpd_elm : asn::sequence<4, 0, true, 2> -{ - static constexpr const char* name() {return "ServedEUTRAcellsToModifyListENDCConfUpd_elm";} - using parent_t = asn::sequence<4, 0, true, 2>; - struct old_ECGI_t : ECGI - { - static constexpr const char* name() {return "old_ECGI_t";} - using parent_t = ECGI; - - }; - old_ECGI_t& ref_old_ECGI() {return old_ECGI;} - old_ECGI_t const& ref_old_ECGI() const {return old_ECGI;} - struct servedEUTRACellInfo_t : ServedCell_Information - { - static constexpr const char* name() {return "servedEUTRACellInfo_t";} - using parent_t = ServedCell_Information; - - }; - servedEUTRACellInfo_t& ref_servedEUTRACellInfo() {return servedEUTRACellInfo;} - servedEUTRACellInfo_t const& ref_servedEUTRACellInfo() const {return servedEUTRACellInfo;} - struct nrNeighbourInfo_t : NRNeighbour_Information - { - static constexpr const char* name() {return "nrNeighbourInfo_t";} - using parent_t = NRNeighbour_Information; - static constexpr bool optional = true; - - }; - nrNeighbourInfo_t& set_nrNeighbourInfo() { nrNeighbourInfo.setpresent(true); return nrNeighbourInfo;} - nrNeighbourInfo_t const* get_nrNeighbourInfo() const {return nrNeighbourInfo.is_valid() ? &nrNeighbourInfo : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(old_ECGI); - v(servedEUTRACellInfo); - v(nrNeighbourInfo); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(old_ECGI); - v(servedEUTRACellInfo); - v(nrNeighbourInfo); - v(iE_Extensions); - - }; - void clear() - { - old_ECGI.clear(); - servedEUTRACellInfo.clear(); - nrNeighbourInfo.clear(); - iE_Extensions.clear(); - - }; - private: - old_ECGI_t old_ECGI; - servedEUTRACellInfo_t servedEUTRACellInfo; - nrNeighbourInfo_t nrNeighbourInfo; - iE_Extensions_t iE_Extensions; - -}; -struct ServedEUTRAcellsToModifyListENDCConfUpd : asn::sequenceof -{ - static constexpr const char* name() {return "ServedEUTRAcellsToModifyListENDCConfUpd";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -ServedEUTRAcellsToDeleteListENDCConfUpd ::= SEQUENCE (SIZE (1..maxCellineNB)) OF ECGI -*/ - -struct ServedEUTRAcellsToDeleteListENDCConfUpd_elm : ECGI -{ - static constexpr const char* name() {return "ServedEUTRAcellsToDeleteListENDCConfUpd_elm";} - using parent_t = ECGI; - -}; -struct ServedEUTRAcellsToDeleteListENDCConfUpd : asn::sequenceof -{ - static constexpr const char* name() {return "ServedEUTRAcellsToDeleteListENDCConfUpd";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -ENB-ENDCConfigUpdateIEs X2AP-PROTOCOL-IES ::= { - { ID id-CellAssistanceInformation CRITICALITY reject TYPE CellAssistanceInformation PRESENCE optional }| - { ID id-ServedEUTRAcellsENDCX2ManagementList CRITICALITY reject TYPE ServedEUTRAcellsENDCX2ManagementList PRESENCE optional }| - { ID id-ServedEUTRAcellsToModifyListENDCConfUpd CRITICALITY reject TYPE ServedEUTRAcellsToModifyListENDCConfUpd PRESENCE optional }| - { ID id-ServedEUTRAcellsToDeleteListENDCConfUpd CRITICALITY reject TYPE ServedEUTRAcellsToDeleteListENDCConfUpd PRESENCE optional }, - ... -} -*/ - -struct ENB_ENDCConfigUpdateIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_CellAssistanceInformation() { set(id_CellAssistanceInformation); type=1;} - void select_id_ServedEUTRAcellsENDCX2ManagementList() { set(id_ServedEUTRAcellsENDCX2ManagementList); type=2;} - void select_id_ServedEUTRAcellsToModifyListENDCConfUpd() { set(id_ServedEUTRAcellsToModifyListENDCConfUpd); type=3;} - void select_id_ServedEUTRAcellsToDeleteListENDCConfUpd() { set(id_ServedEUTRAcellsToDeleteListENDCConfUpd); type=4;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_CellAssistanceInformation)) { type = 1; return true; } - else if(equal(id_ServedEUTRAcellsENDCX2ManagementList)) { type = 2; return true; } - else if(equal(id_ServedEUTRAcellsToModifyListENDCConfUpd)) { type = 3; return true; } - else if(equal(id_ServedEUTRAcellsToDeleteListENDCConfUpd)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_CellAssistanceInformation);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_ServedEUTRAcellsENDCX2ManagementList);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_ServedEUTRAcellsToModifyListENDCConfUpd);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_ServedEUTRAcellsToDeleteListENDCConfUpd);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_CellAssistanceInformation() { set(reject); type=1;} - void select_id_ServedEUTRAcellsENDCX2ManagementList() { set(reject); type=2;} - void select_id_ServedEUTRAcellsToModifyListENDCConfUpd() { set(reject); type=3;} - void select_id_ServedEUTRAcellsToDeleteListENDCConfUpd() { set(reject); type=4;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(reject)) { type = 3; return true; } - else if(equal(reject)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(reject);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(reject);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - CellAssistanceInformation& select_id_CellAssistanceInformation() { return set(1); } - CellAssistanceInformation const* get_id_CellAssistanceInformation() const { return get(1); } - ServedEUTRAcellsENDCX2ManagementList& select_id_ServedEUTRAcellsENDCX2ManagementList() { return set(2); } - ServedEUTRAcellsENDCX2ManagementList const* get_id_ServedEUTRAcellsENDCX2ManagementList() const { return get(2); } - ServedEUTRAcellsToModifyListENDCConfUpd& select_id_ServedEUTRAcellsToModifyListENDCConfUpd() { return set(3); } - ServedEUTRAcellsToModifyListENDCConfUpd const* get_id_ServedEUTRAcellsToModifyListENDCConfUpd() const { return get(3); } - ServedEUTRAcellsToDeleteListENDCConfUpd& select_id_ServedEUTRAcellsToDeleteListENDCConfUpd() { return set(4); } - ServedEUTRAcellsToDeleteListENDCConfUpd const* get_id_ServedEUTRAcellsToDeleteListENDCConfUpd() const { return get(4); } - bool is_unknown() const { return type == 5; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_CellAssistanceInformation()); return true; - case 2: v(select_id_ServedEUTRAcellsENDCX2ManagementList()); return true; - case 3: v(select_id_ServedEUTRAcellsToModifyListENDCConfUpd()); return true; - case 4: v(select_id_ServedEUTRAcellsToDeleteListENDCConfUpd()); return true; - case 5: if(type != 5) {clear(); asn::base::set();} type = 5; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CellAssistanceInformation)]; - char dummy2[sizeof(ServedEUTRAcellsENDCX2ManagementList)]; - char dummy3[sizeof(ServedEUTRAcellsToDeleteListENDCConfUpd)]; - char dummy4[sizeof(ServedEUTRAcellsToModifyListENDCConfUpd)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_CellAssistanceInformation() { set(optional); type=1;} - void select_id_ServedEUTRAcellsENDCX2ManagementList() { set(optional); type=2;} - void select_id_ServedEUTRAcellsToModifyListENDCConfUpd() { set(optional); type=3;} - void select_id_ServedEUTRAcellsToDeleteListENDCConfUpd() { set(optional); type=4;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ENB-ENDCX2RemovalReqAckIEs X2AP-PROTOCOL-IES ::= { - { ID id-GlobalENB-ID CRITICALITY reject TYPE GlobalENB-ID PRESENCE mandatory}, - ... -} -*/ - -struct ENB_ENDCX2RemovalReqAckIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_GlobalENB_ID() { set(id_GlobalENB_ID); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_GlobalENB_ID)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_GlobalENB_ID);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_GlobalENB_ID() { set(reject); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - GlobalENB_ID& select_id_GlobalENB_ID() { return set(1); } - GlobalENB_ID const* get_id_GlobalENB_ID() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_GlobalENB_ID()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(GlobalENB_ID)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_GlobalENB_ID() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ENB-ENDCX2RemovalReqIEs X2AP-PROTOCOL-IES ::= { - { ID id-GlobalENB-ID CRITICALITY reject TYPE GlobalENB-ID PRESENCE mandatory}, - ... -} -*/ - -struct ENB_ENDCX2RemovalReqIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_GlobalENB_ID() { set(id_GlobalENB_ID); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_GlobalENB_ID)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_GlobalENB_ID);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_GlobalENB_ID() { set(reject); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - GlobalENB_ID& select_id_GlobalENB_ID() { return set(1); } - GlobalENB_ID const* get_id_GlobalENB_ID() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_GlobalENB_ID()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(GlobalENB_ID)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_GlobalENB_ID() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ENB-ENDCX2SetupReqAckIEs X2AP-PROTOCOL-IES ::= { - { ID id-GlobalENB-ID CRITICALITY reject TYPE GlobalENB-ID PRESENCE mandatory}| - { ID id-ServedEUTRAcellsENDCX2ManagementList CRITICALITY reject TYPE ServedEUTRAcellsENDCX2ManagementList PRESENCE mandatory}, - ... -} -*/ - -struct ENB_ENDCX2SetupReqAckIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_GlobalENB_ID() { set(id_GlobalENB_ID); type=1;} - void select_id_ServedEUTRAcellsENDCX2ManagementList() { set(id_ServedEUTRAcellsENDCX2ManagementList); type=2;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_GlobalENB_ID)) { type = 1; return true; } - else if(equal(id_ServedEUTRAcellsENDCX2ManagementList)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_GlobalENB_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_ServedEUTRAcellsENDCX2ManagementList);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_GlobalENB_ID() { set(reject); type=1;} - void select_id_ServedEUTRAcellsENDCX2ManagementList() { set(reject); type=2;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - GlobalENB_ID& select_id_GlobalENB_ID() { return set(1); } - GlobalENB_ID const* get_id_GlobalENB_ID() const { return get(1); } - ServedEUTRAcellsENDCX2ManagementList& select_id_ServedEUTRAcellsENDCX2ManagementList() { return set(2); } - ServedEUTRAcellsENDCX2ManagementList const* get_id_ServedEUTRAcellsENDCX2ManagementList() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_GlobalENB_ID()); return true; - case 2: v(select_id_ServedEUTRAcellsENDCX2ManagementList()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(GlobalENB_ID)]; - char dummy2[sizeof(ServedEUTRAcellsENDCX2ManagementList)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_GlobalENB_ID() { set(mandatory); type=1;} - void select_id_ServedEUTRAcellsENDCX2ManagementList() { set(mandatory); type=2;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ENB-ENDCX2SetupReqIEs X2AP-PROTOCOL-IES ::= { - { ID id-GlobalENB-ID CRITICALITY reject TYPE GlobalENB-ID PRESENCE mandatory}| - { ID id-ServedEUTRAcellsENDCX2ManagementList CRITICALITY reject TYPE ServedEUTRAcellsENDCX2ManagementList PRESENCE mandatory}, - ... -} -*/ - -struct ENB_ENDCX2SetupReqIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_GlobalENB_ID() { set(id_GlobalENB_ID); type=1;} - void select_id_ServedEUTRAcellsENDCX2ManagementList() { set(id_ServedEUTRAcellsENDCX2ManagementList); type=2;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_GlobalENB_ID)) { type = 1; return true; } - else if(equal(id_ServedEUTRAcellsENDCX2ManagementList)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_GlobalENB_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_ServedEUTRAcellsENDCX2ManagementList);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_GlobalENB_ID() { set(reject); type=1;} - void select_id_ServedEUTRAcellsENDCX2ManagementList() { set(reject); type=2;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - GlobalENB_ID& select_id_GlobalENB_ID() { return set(1); } - GlobalENB_ID const* get_id_GlobalENB_ID() const { return get(1); } - ServedEUTRAcellsENDCX2ManagementList& select_id_ServedEUTRAcellsENDCX2ManagementList() { return set(2); } - ServedEUTRAcellsENDCX2ManagementList const* get_id_ServedEUTRAcellsENDCX2ManagementList() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_GlobalENB_ID()); return true; - case 2: v(select_id_ServedEUTRAcellsENDCX2ManagementList()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(GlobalENB_ID)]; - char dummy2[sizeof(ServedEUTRAcellsENDCX2ManagementList)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_GlobalENB_ID() { set(mandatory); type=1;} - void select_id_ServedEUTRAcellsENDCX2ManagementList() { set(mandatory); type=2;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ListofEUTRACellsinEUTRACoordinationResp ::= SEQUENCE (SIZE (0..maxCellineNB)) OF ECGI -*/ - -struct ListofEUTRACellsinEUTRACoordinationResp_elm : ECGI -{ - static constexpr const char* name() {return "ListofEUTRACellsinEUTRACoordinationResp_elm";} - using parent_t = ECGI; - -}; -struct ListofEUTRACellsinEUTRACoordinationResp : asn::sequenceof -{ - static constexpr const char* name() {return "ListofEUTRACellsinEUTRACoordinationResp";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -ENB-EUTRA-NRCellResourceCoordinationReqAckIEs X2AP-PROTOCOL-IES ::= { - { ID id-DataTrafficResourceIndication CRITICALITY reject TYPE DataTrafficResourceIndication PRESENCE mandatory}| - { ID id-SpectrumSharingGroupID CRITICALITY reject TYPE SpectrumSharingGroupID PRESENCE mandatory}| - { ID id-ListofEUTRACellsinEUTRACoordinationResp CRITICALITY reject TYPE ListofEUTRACellsinEUTRACoordinationResp PRESENCE mandatory}, - ... -} -*/ - -struct ENB_EUTRA_NRCellResourceCoordinationReqAckIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_DataTrafficResourceIndication() { set(id_DataTrafficResourceIndication); type=1;} - void select_id_SpectrumSharingGroupID() { set(id_SpectrumSharingGroupID); type=2;} - void select_id_ListofEUTRACellsinEUTRACoordinationResp() { set(id_ListofEUTRACellsinEUTRACoordinationResp); type=3;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_DataTrafficResourceIndication)) { type = 1; return true; } - else if(equal(id_SpectrumSharingGroupID)) { type = 2; return true; } - else if(equal(id_ListofEUTRACellsinEUTRACoordinationResp)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_DataTrafficResourceIndication);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SpectrumSharingGroupID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_ListofEUTRACellsinEUTRACoordinationResp);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_DataTrafficResourceIndication() { set(reject); type=1;} - void select_id_SpectrumSharingGroupID() { set(reject); type=2;} - void select_id_ListofEUTRACellsinEUTRACoordinationResp() { set(reject); type=3;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(reject)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(reject);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - DataTrafficResourceIndication& select_id_DataTrafficResourceIndication() { return set(1); } - DataTrafficResourceIndication const* get_id_DataTrafficResourceIndication() const { return get(1); } - SpectrumSharingGroupID& select_id_SpectrumSharingGroupID() { return set(2); } - SpectrumSharingGroupID const* get_id_SpectrumSharingGroupID() const { return get(2); } - ListofEUTRACellsinEUTRACoordinationResp& select_id_ListofEUTRACellsinEUTRACoordinationResp() { return set(3); } - ListofEUTRACellsinEUTRACoordinationResp const* get_id_ListofEUTRACellsinEUTRACoordinationResp() const { return get(3); } - bool is_unknown() const { return type == 4; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_DataTrafficResourceIndication()); return true; - case 2: v(select_id_SpectrumSharingGroupID()); return true; - case 3: v(select_id_ListofEUTRACellsinEUTRACoordinationResp()); return true; - case 4: if(type != 4) {clear(); asn::base::set();} type = 4; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(DataTrafficResourceIndication)]; - char dummy2[sizeof(ListofEUTRACellsinEUTRACoordinationResp)]; - char dummy3[sizeof(SpectrumSharingGroupID)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_DataTrafficResourceIndication() { set(mandatory); type=1;} - void select_id_SpectrumSharingGroupID() { set(mandatory); type=2;} - void select_id_ListofEUTRACellsinEUTRACoordinationResp() { set(mandatory); type=3;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ListofEUTRACellsinEUTRACoordinationReq ::= SEQUENCE (SIZE (0..maxCellineNB)) OF ECGI -*/ - -struct ListofEUTRACellsinEUTRACoordinationReq_elm : ECGI -{ - static constexpr const char* name() {return "ListofEUTRACellsinEUTRACoordinationReq_elm";} - using parent_t = ECGI; - -}; -struct ListofEUTRACellsinEUTRACoordinationReq : asn::sequenceof -{ - static constexpr const char* name() {return "ListofEUTRACellsinEUTRACoordinationReq";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -ENB-EUTRA-NRCellResourceCoordinationReqIEs X2AP-PROTOCOL-IES ::= { - { ID id-DataTrafficResourceIndication CRITICALITY reject TYPE DataTrafficResourceIndication PRESENCE mandatory}| - { ID id-SpectrumSharingGroupID CRITICALITY reject TYPE SpectrumSharingGroupID PRESENCE mandatory}| - { ID id-ListofEUTRACellsinEUTRACoordinationReq CRITICALITY reject TYPE ListofEUTRACellsinEUTRACoordinationReq PRESENCE mandatory}, - ... -} -*/ - -struct ENB_EUTRA_NRCellResourceCoordinationReqIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_DataTrafficResourceIndication() { set(id_DataTrafficResourceIndication); type=1;} - void select_id_SpectrumSharingGroupID() { set(id_SpectrumSharingGroupID); type=2;} - void select_id_ListofEUTRACellsinEUTRACoordinationReq() { set(id_ListofEUTRACellsinEUTRACoordinationReq); type=3;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_DataTrafficResourceIndication)) { type = 1; return true; } - else if(equal(id_SpectrumSharingGroupID)) { type = 2; return true; } - else if(equal(id_ListofEUTRACellsinEUTRACoordinationReq)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_DataTrafficResourceIndication);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SpectrumSharingGroupID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_ListofEUTRACellsinEUTRACoordinationReq);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_DataTrafficResourceIndication() { set(reject); type=1;} - void select_id_SpectrumSharingGroupID() { set(reject); type=2;} - void select_id_ListofEUTRACellsinEUTRACoordinationReq() { set(reject); type=3;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(reject)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(reject);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - DataTrafficResourceIndication& select_id_DataTrafficResourceIndication() { return set(1); } - DataTrafficResourceIndication const* get_id_DataTrafficResourceIndication() const { return get(1); } - SpectrumSharingGroupID& select_id_SpectrumSharingGroupID() { return set(2); } - SpectrumSharingGroupID const* get_id_SpectrumSharingGroupID() const { return get(2); } - ListofEUTRACellsinEUTRACoordinationReq& select_id_ListofEUTRACellsinEUTRACoordinationReq() { return set(3); } - ListofEUTRACellsinEUTRACoordinationReq const* get_id_ListofEUTRACellsinEUTRACoordinationReq() const { return get(3); } - bool is_unknown() const { return type == 4; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_DataTrafficResourceIndication()); return true; - case 2: v(select_id_SpectrumSharingGroupID()); return true; - case 3: v(select_id_ListofEUTRACellsinEUTRACoordinationReq()); return true; - case 4: if(type != 4) {clear(); asn::base::set();} type = 4; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(DataTrafficResourceIndication)]; - char dummy2[sizeof(ListofEUTRACellsinEUTRACoordinationReq)]; - char dummy3[sizeof(SpectrumSharingGroupID)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_DataTrafficResourceIndication() { set(mandatory); type=1;} - void select_id_SpectrumSharingGroupID() { set(mandatory); type=2;} - void select_id_ListofEUTRACellsinEUTRACoordinationReq() { set(mandatory); type=3;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ServedCellsToModify-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { -{ ID id-DeactivationIndication CRITICALITY ignore EXTENSION DeactivationIndication PRESENCE optional }, - ... -} -*/ - -struct ServedCellsToModify_Item_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_DeactivationIndication() { set(id_DeactivationIndication); type=1;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_DeactivationIndication)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_DeactivationIndication);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_DeactivationIndication() { set(ignore); type=1;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - DeactivationIndication& select_id_DeactivationIndication() { return set(1); } - DeactivationIndication const* get_id_DeactivationIndication() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_DeactivationIndication()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(DeactivationIndication)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_DeactivationIndication() { set(optional); type=1;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ServedCellsToModify-Item::= SEQUENCE { - old-ecgi ECGI, - servedCellInfo ServedCell-Information, - neighbour-Info Neighbour-Information OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {ServedCellsToModify-Item-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct ServedCellsToModify_Item : asn::sequence<4, 0, true, 2> -{ - static constexpr const char* name() {return "ServedCellsToModify-Item";} - using parent_t = asn::sequence<4, 0, true, 2>; - struct old_ecgi_t : ECGI - { - static constexpr const char* name() {return "old_ecgi_t";} - using parent_t = ECGI; - - }; - old_ecgi_t& ref_old_ecgi() {return old_ecgi;} - old_ecgi_t const& ref_old_ecgi() const {return old_ecgi;} - struct servedCellInfo_t : ServedCell_Information - { - static constexpr const char* name() {return "servedCellInfo_t";} - using parent_t = ServedCell_Information; - - }; - servedCellInfo_t& ref_servedCellInfo() {return servedCellInfo;} - servedCellInfo_t const& ref_servedCellInfo() const {return servedCellInfo;} - struct neighbour_Info_t : Neighbour_Information - { - static constexpr const char* name() {return "neighbour_Info_t";} - using parent_t = Neighbour_Information; - static constexpr bool optional = true; - - }; - neighbour_Info_t& set_neighbour_Info() { neighbour_Info.setpresent(true); return neighbour_Info;} - neighbour_Info_t const* get_neighbour_Info() const {return neighbour_Info.is_valid() ? &neighbour_Info : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(old_ecgi); - v(servedCellInfo); - v(neighbour_Info); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(old_ecgi); - v(servedCellInfo); - v(neighbour_Info); - v(iE_Extensions); - - }; - void clear() - { - old_ecgi.clear(); - servedCellInfo.clear(); - neighbour_Info.clear(); - iE_Extensions.clear(); - - }; - private: - old_ecgi_t old_ecgi; - servedCellInfo_t servedCellInfo; - neighbour_Info_t neighbour_Info; - iE_Extensions_t iE_Extensions; - -}; -/* -ServedCellsToModify::= SEQUENCE (SIZE (1..maxCellineNB)) OF ServedCellsToModify-Item -*/ - -struct ServedCellsToModify_elm : ServedCellsToModify_Item -{ - static constexpr const char* name() {return "ServedCellsToModify_elm";} - using parent_t = ServedCellsToModify_Item; - -}; -struct ServedCellsToModify : asn::sequenceof -{ - static constexpr const char* name() {return "ServedCellsToModify";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -Old-ECGIs::= SEQUENCE (SIZE (1..maxCellineNB)) OF ECGI -*/ - -struct Old_ECGIs_elm : ECGI -{ - static constexpr const char* name() {return "Old_ECGIs_elm";} - using parent_t = ECGI; - -}; -struct Old_ECGIs : asn::sequenceof -{ - static constexpr const char* name() {return "Old-ECGIs";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -ENBConfigurationUpdate-IEs X2AP-PROTOCOL-IES ::= { - { ID id-ServedCellsToAdd CRITICALITY reject TYPE ServedCells PRESENCE optional}| - { ID id-ServedCellsToModify CRITICALITY reject TYPE ServedCellsToModify PRESENCE optional}| - { ID id-ServedCellsToDelete CRITICALITY reject TYPE Old-ECGIs PRESENCE optional}| - { ID id-GUGroupIDToAddList CRITICALITY reject TYPE GUGroupIDList PRESENCE optional}| - { ID id-GUGroupIDToDeleteList CRITICALITY reject TYPE GUGroupIDList PRESENCE optional}| - { ID id-CoverageModificationList CRITICALITY reject TYPE CoverageModificationList PRESENCE optional}, - ... -} -*/ - -struct ENBConfigurationUpdate_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_ServedCellsToAdd() { set(id_ServedCellsToAdd); type=1;} - void select_id_ServedCellsToModify() { set(id_ServedCellsToModify); type=2;} - void select_id_ServedCellsToDelete() { set(id_ServedCellsToDelete); type=3;} - void select_id_GUGroupIDToAddList() { set(id_GUGroupIDToAddList); type=4;} - void select_id_GUGroupIDToDeleteList() { set(id_GUGroupIDToDeleteList); type=5;} - void select_id_CoverageModificationList() { set(id_CoverageModificationList); type=6;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_ServedCellsToAdd)) { type = 1; return true; } - else if(equal(id_ServedCellsToModify)) { type = 2; return true; } - else if(equal(id_ServedCellsToDelete)) { type = 3; return true; } - else if(equal(id_GUGroupIDToAddList)) { type = 4; return true; } - else if(equal(id_GUGroupIDToDeleteList)) { type = 5; return true; } - else if(equal(id_CoverageModificationList)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_ServedCellsToAdd);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_ServedCellsToModify);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_ServedCellsToDelete);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_GUGroupIDToAddList);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_GUGroupIDToDeleteList);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_CoverageModificationList);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_ServedCellsToAdd() { set(reject); type=1;} - void select_id_ServedCellsToModify() { set(reject); type=2;} - void select_id_ServedCellsToDelete() { set(reject); type=3;} - void select_id_GUGroupIDToAddList() { set(reject); type=4;} - void select_id_GUGroupIDToDeleteList() { set(reject); type=5;} - void select_id_CoverageModificationList() { set(reject); type=6;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(reject)) { type = 3; return true; } - else if(equal(reject)) { type = 4; return true; } - else if(equal(reject)) { type = 5; return true; } - else if(equal(reject)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(reject);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(reject);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(reject);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(reject);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - ServedCells& select_id_ServedCellsToAdd() { return set(1); } - ServedCells const* get_id_ServedCellsToAdd() const { return get(1); } - ServedCellsToModify& select_id_ServedCellsToModify() { return set(2); } - ServedCellsToModify const* get_id_ServedCellsToModify() const { return get(2); } - Old_ECGIs& select_id_ServedCellsToDelete() { return set(3); } - Old_ECGIs const* get_id_ServedCellsToDelete() const { return get(3); } - GUGroupIDList& select_id_GUGroupIDToAddList() { return set(4); } - GUGroupIDList const* get_id_GUGroupIDToAddList() const { return get(4); } - GUGroupIDList& select_id_GUGroupIDToDeleteList() { return set(5); } - GUGroupIDList const* get_id_GUGroupIDToDeleteList() const { return get(5); } - CoverageModificationList& select_id_CoverageModificationList() { return set(6); } - CoverageModificationList const* get_id_CoverageModificationList() const { return get(6); } - bool is_unknown() const { return type == 7; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_ServedCellsToAdd()); return true; - case 2: v(select_id_ServedCellsToModify()); return true; - case 3: v(select_id_ServedCellsToDelete()); return true; - case 4: v(select_id_GUGroupIDToAddList()); return true; - case 5: v(select_id_GUGroupIDToDeleteList()); return true; - case 6: v(select_id_CoverageModificationList()); return true; - case 7: if(type != 7) {clear(); asn::base::set();} type = 7; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CoverageModificationList)]; - char dummy2[sizeof(GUGroupIDList)]; - char dummy3[sizeof(Old_ECGIs)]; - char dummy4[sizeof(ServedCells)]; - char dummy5[sizeof(ServedCellsToModify)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_ServedCellsToAdd() { set(optional); type=1;} - void select_id_ServedCellsToModify() { set(optional); type=2;} - void select_id_ServedCellsToDelete() { set(optional); type=3;} - void select_id_GUGroupIDToAddList() { set(optional); type=4;} - void select_id_GUGroupIDToDeleteList() { set(optional); type=5;} - void select_id_CoverageModificationList() { set(optional); type=6;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ENBConfigurationUpdate ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ENBConfigurationUpdate-IEs}}, - ... -} -*/ - -struct ENBConfigurationUpdate : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "ENBConfigurationUpdate";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -ENBConfigurationUpdateAcknowledge-IEs X2AP-PROTOCOL-IES ::= { - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, -... -} -*/ - -struct ENBConfigurationUpdateAcknowledge_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_CriticalityDiagnostics)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_CriticalityDiagnostics() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(1); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_CriticalityDiagnostics()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CriticalityDiagnostics)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_CriticalityDiagnostics() { set(optional); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ENBConfigurationUpdateAcknowledge ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ENBConfigurationUpdateAcknowledge-IEs}}, - ... -} -*/ - -struct ENBConfigurationUpdateAcknowledge : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "ENBConfigurationUpdateAcknowledge";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -ENBConfigurationUpdateFailure-IEs X2AP-PROTOCOL-IES ::= { - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| - { ID id-TimeToWait CRITICALITY ignore TYPE TimeToWait PRESENCE optional}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, - ... -} -*/ - -struct ENBConfigurationUpdateFailure_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_Cause() { set(id_Cause); type=1;} - void select_id_TimeToWait() { set(id_TimeToWait); type=2;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=3;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_Cause)) { type = 1; return true; } - else if(equal(id_TimeToWait)) { type = 2; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_TimeToWait);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_Cause() { set(ignore); type=1;} - void select_id_TimeToWait() { set(ignore); type=2;} - void select_id_CriticalityDiagnostics() { set(ignore); type=3;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - Cause& select_id_Cause() { return set(1); } - Cause const* get_id_Cause() const { return get(1); } - TimeToWait& select_id_TimeToWait() { return set(2); } - TimeToWait const* get_id_TimeToWait() const { return get(2); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(3); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(3); } - bool is_unknown() const { return type == 4; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_Cause()); return true; - case 2: v(select_id_TimeToWait()); return true; - case 3: v(select_id_CriticalityDiagnostics()); return true; - case 4: if(type != 4) {clear(); asn::base::set();} type = 4; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(CriticalityDiagnostics)]; - char dummy3[sizeof(TimeToWait)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_Cause() { set(mandatory); type=1;} - void select_id_TimeToWait() { set(optional); type=2;} - void select_id_CriticalityDiagnostics() { set(optional); type=3;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ENBConfigurationUpdateFailure ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ENBConfigurationUpdateFailure-IEs}}, - ... -} -*/ - -struct ENBConfigurationUpdateFailure : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "ENBConfigurationUpdateFailure";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -ENDCCellActivationFailure-IEs X2AP-PROTOCOL-IES ::= { - { ID id-ActivationID CRITICALITY reject TYPE ActivationID PRESENCE mandatory }| - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, - ... -} -*/ - -struct ENDCCellActivationFailure_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_ActivationID() { set(id_ActivationID); type=1;} - void select_id_Cause() { set(id_Cause); type=2;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=3;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_ActivationID)) { type = 1; return true; } - else if(equal(id_Cause)) { type = 2; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_ActivationID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_ActivationID() { set(reject); type=1;} - void select_id_Cause() { set(ignore); type=2;} - void select_id_CriticalityDiagnostics() { set(ignore); type=3;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - ActivationID& select_id_ActivationID() { return set(1); } - ActivationID const* get_id_ActivationID() const { return get(1); } - Cause& select_id_Cause() { return set(2); } - Cause const* get_id_Cause() const { return get(2); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(3); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(3); } - bool is_unknown() const { return type == 4; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_ActivationID()); return true; - case 2: v(select_id_Cause()); return true; - case 3: v(select_id_CriticalityDiagnostics()); return true; - case 4: if(type != 4) {clear(); asn::base::set();} type = 4; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(ActivationID)]; - char dummy2[sizeof(Cause)]; - char dummy3[sizeof(CriticalityDiagnostics)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_ActivationID() { set(mandatory); type=1;} - void select_id_Cause() { set(mandatory); type=2;} - void select_id_CriticalityDiagnostics() { set(optional); type=3;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ENDCCellActivationFailure ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ENDCCellActivationFailure-IEs}}, - ... -} -*/ - -struct ENDCCellActivationFailure : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "ENDCCellActivationFailure";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -ServedNRCellsToActivate-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct ServedNRCellsToActivate_Item_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ServedNRCellsToActivate-Item::= SEQUENCE { - nrCellID NRCGI, - iE-Extensions ProtocolExtensionContainer { {ServedNRCellsToActivate-Item-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct ServedNRCellsToActivate_Item : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "ServedNRCellsToActivate-Item";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct nrCellID_t : NRCGI - { - static constexpr const char* name() {return "nrCellID_t";} - using parent_t = NRCGI; - - }; - nrCellID_t& ref_nrCellID() {return nrCellID;} - nrCellID_t const& ref_nrCellID() const {return nrCellID;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(nrCellID); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(nrCellID); - v(iE_Extensions); - - }; - void clear() - { - nrCellID.clear(); - iE_Extensions.clear(); - - }; - private: - nrCellID_t nrCellID; - iE_Extensions_t iE_Extensions; - -}; -/* -ServedNRCellsToActivate::= SEQUENCE (SIZE (1.. maxCellinengNB)) OF ServedNRCellsToActivate-Item -*/ - -struct ServedNRCellsToActivate_elm : ServedNRCellsToActivate_Item -{ - static constexpr const char* name() {return "ServedNRCellsToActivate_elm";} - using parent_t = ServedNRCellsToActivate_Item; - -}; -struct ServedNRCellsToActivate : asn::sequenceof -{ - static constexpr const char* name() {return "ServedNRCellsToActivate";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -ENDCCellActivationRequest-IEs X2AP-PROTOCOL-IES ::= { - { ID id-ServedNRCellsToActivate CRITICALITY reject TYPE ServedNRCellsToActivate PRESENCE mandatory}| - { ID id-ActivationID CRITICALITY reject TYPE ActivationID PRESENCE mandatory}, - ... -} -*/ - -struct ENDCCellActivationRequest_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_ServedNRCellsToActivate() { set(id_ServedNRCellsToActivate); type=1;} - void select_id_ActivationID() { set(id_ActivationID); type=2;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_ServedNRCellsToActivate)) { type = 1; return true; } - else if(equal(id_ActivationID)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_ServedNRCellsToActivate);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_ActivationID);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_ServedNRCellsToActivate() { set(reject); type=1;} - void select_id_ActivationID() { set(reject); type=2;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - ServedNRCellsToActivate& select_id_ServedNRCellsToActivate() { return set(1); } - ServedNRCellsToActivate const* get_id_ServedNRCellsToActivate() const { return get(1); } - ActivationID& select_id_ActivationID() { return set(2); } - ActivationID const* get_id_ActivationID() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_ServedNRCellsToActivate()); return true; - case 2: v(select_id_ActivationID()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(ActivationID)]; - char dummy2[sizeof(ServedNRCellsToActivate)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_ServedNRCellsToActivate() { set(mandatory); type=1;} - void select_id_ActivationID() { set(mandatory); type=2;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ENDCCellActivationRequest ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ENDCCellActivationRequest-IEs}}, - ... -} -*/ - -struct ENDCCellActivationRequest : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "ENDCCellActivationRequest";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -ENDCCellActivationResponse-IEs X2AP-PROTOCOL-IES ::= { - { ID id-ActivatedNRCellList CRITICALITY ignore TYPE ActivatedNRCellList PRESENCE mandatory}| - { ID id-ActivationID CRITICALITY reject TYPE ActivationID PRESENCE mandatory}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, - ... -} -*/ - -struct ENDCCellActivationResponse_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_ActivatedNRCellList() { set(id_ActivatedNRCellList); type=1;} - void select_id_ActivationID() { set(id_ActivationID); type=2;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=3;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_ActivatedNRCellList)) { type = 1; return true; } - else if(equal(id_ActivationID)) { type = 2; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_ActivatedNRCellList);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_ActivationID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_ActivatedNRCellList() { set(ignore); type=1;} - void select_id_ActivationID() { set(reject); type=2;} - void select_id_CriticalityDiagnostics() { set(ignore); type=3;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - ActivatedNRCellList& select_id_ActivatedNRCellList() { return set(1); } - ActivatedNRCellList const* get_id_ActivatedNRCellList() const { return get(1); } - ActivationID& select_id_ActivationID() { return set(2); } - ActivationID const* get_id_ActivationID() const { return get(2); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(3); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(3); } - bool is_unknown() const { return type == 4; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_ActivatedNRCellList()); return true; - case 2: v(select_id_ActivationID()); return true; - case 3: v(select_id_CriticalityDiagnostics()); return true; - case 4: if(type != 4) {clear(); asn::base::set();} type = 4; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(ActivatedNRCellList)]; - char dummy2[sizeof(ActivationID)]; - char dummy3[sizeof(CriticalityDiagnostics)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_ActivatedNRCellList() { set(mandatory); type=1;} - void select_id_ActivationID() { set(mandatory); type=2;} - void select_id_CriticalityDiagnostics() { set(optional); type=3;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ENDCCellActivationResponse ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ENDCCellActivationResponse-IEs}}, - ... -} -*/ - -struct ENDCCellActivationResponse : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "ENDCCellActivationResponse";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -FDD-InfoServedNRCell-Information-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct FDD_InfoServedNRCell_Information_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -FDD-InfoServedNRCell-Information ::= SEQUENCE { - ul-NRFreqInfo NRFreqInfo, - dl-NRFreqInfo NRFreqInfo, - ul-NR-TxBW NR-TxBW, - dl-NR-TxBW NR-TxBW, - iE-Extensions ProtocolExtensionContainer { {FDD-InfoServedNRCell-Information-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct FDD_InfoServedNRCell_Information : asn::sequence<5, 0, true, 1> -{ - static constexpr const char* name() {return "FDD-InfoServedNRCell-Information";} - using parent_t = asn::sequence<5, 0, true, 1>; - struct ul_NRFreqInfo_t : NRFreqInfo - { - static constexpr const char* name() {return "ul_NRFreqInfo_t";} - using parent_t = NRFreqInfo; - - }; - ul_NRFreqInfo_t& ref_ul_NRFreqInfo() {return ul_NRFreqInfo;} - ul_NRFreqInfo_t const& ref_ul_NRFreqInfo() const {return ul_NRFreqInfo;} - struct dl_NRFreqInfo_t : NRFreqInfo - { - static constexpr const char* name() {return "dl_NRFreqInfo_t";} - using parent_t = NRFreqInfo; - - }; - dl_NRFreqInfo_t& ref_dl_NRFreqInfo() {return dl_NRFreqInfo;} - dl_NRFreqInfo_t const& ref_dl_NRFreqInfo() const {return dl_NRFreqInfo;} - struct ul_NR_TxBW_t : NR_TxBW - { - static constexpr const char* name() {return "ul_NR_TxBW_t";} - using parent_t = NR_TxBW; - - }; - ul_NR_TxBW_t& ref_ul_NR_TxBW() {return ul_NR_TxBW;} - ul_NR_TxBW_t const& ref_ul_NR_TxBW() const {return ul_NR_TxBW;} - struct dl_NR_TxBW_t : NR_TxBW - { - static constexpr const char* name() {return "dl_NR_TxBW_t";} - using parent_t = NR_TxBW; - - }; - dl_NR_TxBW_t& ref_dl_NR_TxBW() {return dl_NR_TxBW;} - dl_NR_TxBW_t const& ref_dl_NR_TxBW() const {return dl_NR_TxBW;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(ul_NRFreqInfo); - v(dl_NRFreqInfo); - v(ul_NR_TxBW); - v(dl_NR_TxBW); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(ul_NRFreqInfo); - v(dl_NRFreqInfo); - v(ul_NR_TxBW); - v(dl_NR_TxBW); - v(iE_Extensions); - - }; - void clear() - { - ul_NRFreqInfo.clear(); - dl_NRFreqInfo.clear(); - ul_NR_TxBW.clear(); - dl_NR_TxBW.clear(); - iE_Extensions.clear(); - - }; - private: - ul_NRFreqInfo_t ul_NRFreqInfo; - dl_NRFreqInfo_t dl_NRFreqInfo; - ul_NR_TxBW_t ul_NR_TxBW; - dl_NR_TxBW_t dl_NR_TxBW; - iE_Extensions_t iE_Extensions; - -}; -/* -TDD-InfoServedNRCell-Information-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct TDD_InfoServedNRCell_Information_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -TDD-InfoServedNRCell-Information ::= SEQUENCE { - nRFreqInfo NRFreqInfo, - nR-TxBW NR-TxBW, - iE-Extensions ProtocolExtensionContainer { {TDD-InfoServedNRCell-Information-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct TDD_InfoServedNRCell_Information : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "TDD-InfoServedNRCell-Information";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct nRFreqInfo_t : NRFreqInfo - { - static constexpr const char* name() {return "nRFreqInfo_t";} - using parent_t = NRFreqInfo; - - }; - nRFreqInfo_t& ref_nRFreqInfo() {return nRFreqInfo;} - nRFreqInfo_t const& ref_nRFreqInfo() const {return nRFreqInfo;} - struct nR_TxBW_t : NR_TxBW - { - static constexpr const char* name() {return "nR_TxBW_t";} - using parent_t = NR_TxBW; - - }; - nR_TxBW_t& ref_nR_TxBW() {return nR_TxBW;} - nR_TxBW_t const& ref_nR_TxBW() const {return nR_TxBW;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(nRFreqInfo); - v(nR_TxBW); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(nRFreqInfo); - v(nR_TxBW); - v(iE_Extensions); - - }; - void clear() - { - nRFreqInfo.clear(); - nR_TxBW.clear(); - iE_Extensions.clear(); - - }; - private: - nRFreqInfo_t nRFreqInfo; - nR_TxBW_t nR_TxBW; - iE_Extensions_t iE_Extensions; - -}; -/* -ServedNRCell-Information-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct ServedNRCell_Information_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ServedNRCell-Information ::= SEQUENCE { - nrpCI NRPCI, - nrCellID NRCGI, - fiveGS-TAC FiveGS-TAC OPTIONAL, - configured-TAC TAC OPTIONAL, - broadcastPLMNs BroadcastPLMNs-Item, - nrModeInfo CHOICE { - fdd FDD-InfoServedNRCell-Information, - tdd TDD-InfoServedNRCell-Information, - ... - }, - measurementTimingConfiguration OCTET STRING, - iE-Extensions ProtocolExtensionContainer { {ServedNRCell-Information-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct ServedNRCell_Information : asn::sequence<8, 0, true, 3> -{ - static constexpr const char* name() {return "ServedNRCell-Information";} - using parent_t = asn::sequence<8, 0, true, 3>; - struct nrpCI_t : NRPCI - { - static constexpr const char* name() {return "nrpCI_t";} - using parent_t = NRPCI; - - }; - nrpCI_t& ref_nrpCI() {return nrpCI;} - nrpCI_t const& ref_nrpCI() const {return nrpCI;} - struct nrCellID_t : NRCGI - { - static constexpr const char* name() {return "nrCellID_t";} - using parent_t = NRCGI; - - }; - nrCellID_t& ref_nrCellID() {return nrCellID;} - nrCellID_t const& ref_nrCellID() const {return nrCellID;} - struct fiveGS_TAC_t : FiveGS_TAC - { - static constexpr const char* name() {return "fiveGS_TAC_t";} - using parent_t = FiveGS_TAC; - static constexpr bool optional = true; - - }; - fiveGS_TAC_t& set_fiveGS_TAC() { fiveGS_TAC.setpresent(true); return fiveGS_TAC;} - fiveGS_TAC_t const* get_fiveGS_TAC() const {return fiveGS_TAC.is_valid() ? &fiveGS_TAC : nullptr;} - struct configured_TAC_t : TAC - { - static constexpr const char* name() {return "configured_TAC_t";} - using parent_t = TAC; - static constexpr bool optional = true; - - }; - configured_TAC_t& set_configured_TAC() { configured_TAC.setpresent(true); return configured_TAC;} - configured_TAC_t const* get_configured_TAC() const {return configured_TAC.is_valid() ? &configured_TAC : nullptr;} - struct broadcastPLMNs_t : BroadcastPLMNs_Item - { - static constexpr const char* name() {return "broadcastPLMNs_t";} - using parent_t = BroadcastPLMNs_Item; - - }; - broadcastPLMNs_t& ref_broadcastPLMNs() {return broadcastPLMNs;} - broadcastPLMNs_t const& ref_broadcastPLMNs() const {return broadcastPLMNs;} - struct nrModeInfo_t : asn::choice<2, 0, true> - { - static constexpr const char* name() {return "nrModeInfo_t";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~nrModeInfo_t() {clear();} - struct fdd_t : FDD_InfoServedNRCell_Information - { - static constexpr const char* name() {return "fdd_t";} - using parent_t = FDD_InfoServedNRCell_Information; - - }; - struct tdd_t : TDD_InfoServedNRCell_Information - { - static constexpr const char* name() {return "tdd_t";} - using parent_t = TDD_InfoServedNRCell_Information; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - fdd_t& select_fdd() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - fdd_t const* get_fdd() const { if(get_index() == 1) { return &var.as();} return nullptr; } - tdd_t& select_tdd() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - tdd_t const* get_tdd() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(fdd_t)]; - char dummy2[sizeof(tdd_t)]; - - }; - asn::variant var; - index_type index {0}; - }; - nrModeInfo_t& ref_nrModeInfo() {return nrModeInfo;} - nrModeInfo_t const& ref_nrModeInfo() const {return nrModeInfo;} - struct measurementTimingConfiguration_t : asn::ostring<> - { - static constexpr const char* name() {return "measurementTimingConfiguration_t";} - using parent_t = asn::ostring<>; - - }; - - measurementTimingConfiguration_t& ref_measurementTimingConfiguration() {return measurementTimingConfiguration;} - measurementTimingConfiguration_t const& ref_measurementTimingConfiguration() const {return measurementTimingConfiguration;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(nrpCI); - v(nrCellID); - v(fiveGS_TAC); - v(configured_TAC); - v(broadcastPLMNs); - v(nrModeInfo); - v(measurementTimingConfiguration); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(nrpCI); - v(nrCellID); - v(fiveGS_TAC); - v(configured_TAC); - v(broadcastPLMNs); - v(nrModeInfo); - v(measurementTimingConfiguration); - v(iE_Extensions); - - }; - void clear() - { - nrpCI.clear(); - nrCellID.clear(); - fiveGS_TAC.clear(); - configured_TAC.clear(); - broadcastPLMNs.clear(); - nrModeInfo.clear(); - measurementTimingConfiguration.clear(); - iE_Extensions.clear(); - - }; - private: - nrpCI_t nrpCI; - nrCellID_t nrCellID; - fiveGS_TAC_t fiveGS_TAC; - configured_TAC_t configured_TAC; - broadcastPLMNs_t broadcastPLMNs; - nrModeInfo_t nrModeInfo; - measurementTimingConfiguration_t measurementTimingConfiguration; - iE_Extensions_t iE_Extensions; - -}; -/* -En-gNBServedCells-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct En_gNBServedCells_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ServedNRcellsENDCX2ManagementList ::= SEQUENCE (SIZE (1.. maxCellinengNB)) OF SEQUENCE { - servedNRCellInfo ServedNRCell-Information, - nRNeighbourInfo NRNeighbour-Information OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {En-gNBServedCells-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct ServedNRcellsENDCX2ManagementList_elm : asn::sequence<3, 0, true, 2> -{ - static constexpr const char* name() {return "ServedNRcellsENDCX2ManagementList_elm";} - using parent_t = asn::sequence<3, 0, true, 2>; - struct servedNRCellInfo_t : ServedNRCell_Information - { - static constexpr const char* name() {return "servedNRCellInfo_t";} - using parent_t = ServedNRCell_Information; - - }; - servedNRCellInfo_t& ref_servedNRCellInfo() {return servedNRCellInfo;} - servedNRCellInfo_t const& ref_servedNRCellInfo() const {return servedNRCellInfo;} - struct nRNeighbourInfo_t : NRNeighbour_Information - { - static constexpr const char* name() {return "nRNeighbourInfo_t";} - using parent_t = NRNeighbour_Information; - static constexpr bool optional = true; - - }; - nRNeighbourInfo_t& set_nRNeighbourInfo() { nRNeighbourInfo.setpresent(true); return nRNeighbourInfo;} - nRNeighbourInfo_t const* get_nRNeighbourInfo() const {return nRNeighbourInfo.is_valid() ? &nRNeighbourInfo : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(servedNRCellInfo); - v(nRNeighbourInfo); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(servedNRCellInfo); - v(nRNeighbourInfo); - v(iE_Extensions); - - }; - void clear() - { - servedNRCellInfo.clear(); - nRNeighbourInfo.clear(); - iE_Extensions.clear(); - - }; - private: - servedNRCellInfo_t servedNRCellInfo; - nRNeighbourInfo_t nRNeighbourInfo; - iE_Extensions_t iE_Extensions; - -}; -struct ServedNRcellsENDCX2ManagementList : asn::sequenceof -{ - static constexpr const char* name() {return "ServedNRcellsENDCX2ManagementList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -ServedNRCellsToModify-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct ServedNRCellsToModify_Item_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ServedNRCellsToModify-Item::= SEQUENCE { - old-nrcgi NRCGI, - servedNRCellInformation ServedNRCell-Information, - nrNeighbourInformation NRNeighbour-Information OPTIONAL, - nrDeactivationIndication DeactivationIndication OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {ServedNRCellsToModify-Item-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct ServedNRCellsToModify_Item : asn::sequence<5, 0, true, 3> -{ - static constexpr const char* name() {return "ServedNRCellsToModify-Item";} - using parent_t = asn::sequence<5, 0, true, 3>; - struct old_nrcgi_t : NRCGI - { - static constexpr const char* name() {return "old_nrcgi_t";} - using parent_t = NRCGI; - - }; - old_nrcgi_t& ref_old_nrcgi() {return old_nrcgi;} - old_nrcgi_t const& ref_old_nrcgi() const {return old_nrcgi;} - struct servedNRCellInformation_t : ServedNRCell_Information - { - static constexpr const char* name() {return "servedNRCellInformation_t";} - using parent_t = ServedNRCell_Information; - - }; - servedNRCellInformation_t& ref_servedNRCellInformation() {return servedNRCellInformation;} - servedNRCellInformation_t const& ref_servedNRCellInformation() const {return servedNRCellInformation;} - struct nrNeighbourInformation_t : NRNeighbour_Information - { - static constexpr const char* name() {return "nrNeighbourInformation_t";} - using parent_t = NRNeighbour_Information; - static constexpr bool optional = true; - - }; - nrNeighbourInformation_t& set_nrNeighbourInformation() { nrNeighbourInformation.setpresent(true); return nrNeighbourInformation;} - nrNeighbourInformation_t const* get_nrNeighbourInformation() const {return nrNeighbourInformation.is_valid() ? &nrNeighbourInformation : nullptr;} - struct nrDeactivationIndication_t : DeactivationIndication - { - static constexpr const char* name() {return "nrDeactivationIndication_t";} - using parent_t = DeactivationIndication; - static constexpr bool optional = true; - - }; - nrDeactivationIndication_t& set_nrDeactivationIndication() { nrDeactivationIndication.setpresent(true); return nrDeactivationIndication;} - nrDeactivationIndication_t const* get_nrDeactivationIndication() const {return nrDeactivationIndication.is_valid() ? &nrDeactivationIndication : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(old_nrcgi); - v(servedNRCellInformation); - v(nrNeighbourInformation); - v(nrDeactivationIndication); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(old_nrcgi); - v(servedNRCellInformation); - v(nrNeighbourInformation); - v(nrDeactivationIndication); - v(iE_Extensions); - - }; - void clear() - { - old_nrcgi.clear(); - servedNRCellInformation.clear(); - nrNeighbourInformation.clear(); - nrDeactivationIndication.clear(); - iE_Extensions.clear(); - - }; - private: - old_nrcgi_t old_nrcgi; - servedNRCellInformation_t servedNRCellInformation; - nrNeighbourInformation_t nrNeighbourInformation; - nrDeactivationIndication_t nrDeactivationIndication; - iE_Extensions_t iE_Extensions; - -}; -/* -ServedNRcellsToModifyENDCConfUpdList ::= SEQUENCE (SIZE (1..maxCellinengNB)) OF ServedNRCellsToModify-Item -*/ - -struct ServedNRcellsToModifyENDCConfUpdList_elm : ServedNRCellsToModify_Item -{ - static constexpr const char* name() {return "ServedNRcellsToModifyENDCConfUpdList_elm";} - using parent_t = ServedNRCellsToModify_Item; - -}; -struct ServedNRcellsToModifyENDCConfUpdList : asn::sequenceof -{ - static constexpr const char* name() {return "ServedNRcellsToModifyENDCConfUpdList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -ServedNRcellsToDeleteENDCConfUpdList ::= SEQUENCE (SIZE (1..maxCellinengNB)) OF NRCGI -*/ - -struct ServedNRcellsToDeleteENDCConfUpdList_elm : NRCGI -{ - static constexpr const char* name() {return "ServedNRcellsToDeleteENDCConfUpdList_elm";} - using parent_t = NRCGI; - -}; -struct ServedNRcellsToDeleteENDCConfUpdList : asn::sequenceof -{ - static constexpr const char* name() {return "ServedNRcellsToDeleteENDCConfUpdList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -En-gNB-ENDCConfigUpdateIEs X2AP-PROTOCOL-IES ::= { - { ID id-ServedNRcellsENDCX2ManagementList CRITICALITY reject TYPE ServedNRcellsENDCX2ManagementList PRESENCE optional }| - { ID id-ServedNRcellsToModifyListENDCConfUpd CRITICALITY reject TYPE ServedNRcellsToModifyENDCConfUpdList PRESENCE optional }| - { ID id-ServedNRcellsToDeleteListENDCConfUpd CRITICALITY reject TYPE ServedNRcellsToDeleteENDCConfUpdList PRESENCE optional }, - ... -} -*/ - -struct En_gNB_ENDCConfigUpdateIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_ServedNRcellsENDCX2ManagementList() { set(id_ServedNRcellsENDCX2ManagementList); type=1;} - void select_id_ServedNRcellsToModifyListENDCConfUpd() { set(id_ServedNRcellsToModifyListENDCConfUpd); type=2;} - void select_id_ServedNRcellsToDeleteListENDCConfUpd() { set(id_ServedNRcellsToDeleteListENDCConfUpd); type=3;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_ServedNRcellsENDCX2ManagementList)) { type = 1; return true; } - else if(equal(id_ServedNRcellsToModifyListENDCConfUpd)) { type = 2; return true; } - else if(equal(id_ServedNRcellsToDeleteListENDCConfUpd)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_ServedNRcellsENDCX2ManagementList);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_ServedNRcellsToModifyListENDCConfUpd);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_ServedNRcellsToDeleteListENDCConfUpd);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_ServedNRcellsENDCX2ManagementList() { set(reject); type=1;} - void select_id_ServedNRcellsToModifyListENDCConfUpd() { set(reject); type=2;} - void select_id_ServedNRcellsToDeleteListENDCConfUpd() { set(reject); type=3;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(reject)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(reject);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - ServedNRcellsENDCX2ManagementList& select_id_ServedNRcellsENDCX2ManagementList() { return set(1); } - ServedNRcellsENDCX2ManagementList const* get_id_ServedNRcellsENDCX2ManagementList() const { return get(1); } - ServedNRcellsToModifyENDCConfUpdList& select_id_ServedNRcellsToModifyListENDCConfUpd() { return set(2); } - ServedNRcellsToModifyENDCConfUpdList const* get_id_ServedNRcellsToModifyListENDCConfUpd() const { return get(2); } - ServedNRcellsToDeleteENDCConfUpdList& select_id_ServedNRcellsToDeleteListENDCConfUpd() { return set(3); } - ServedNRcellsToDeleteENDCConfUpdList const* get_id_ServedNRcellsToDeleteListENDCConfUpd() const { return get(3); } - bool is_unknown() const { return type == 4; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_ServedNRcellsENDCX2ManagementList()); return true; - case 2: v(select_id_ServedNRcellsToModifyListENDCConfUpd()); return true; - case 3: v(select_id_ServedNRcellsToDeleteListENDCConfUpd()); return true; - case 4: if(type != 4) {clear(); asn::base::set();} type = 4; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(ServedNRcellsENDCX2ManagementList)]; - char dummy2[sizeof(ServedNRcellsToDeleteENDCConfUpdList)]; - char dummy3[sizeof(ServedNRcellsToModifyENDCConfUpdList)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_ServedNRcellsENDCX2ManagementList() { set(optional); type=1;} - void select_id_ServedNRcellsToModifyListENDCConfUpd() { set(optional); type=2;} - void select_id_ServedNRcellsToDeleteListENDCConfUpd() { set(optional); type=3;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -InitiatingNodeType-EndcConfigUpdate::= CHOICE { - init-eNB ProtocolIE-Container {{ENB-ENDCConfigUpdateIEs}}, - init-en-gNB ProtocolIE-Container {{En-gNB-ENDCConfigUpdateIEs}}, - ... -} -*/ - -struct InitiatingNodeType_EndcConfigUpdate : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "InitiatingNodeType-EndcConfigUpdate";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~InitiatingNodeType_EndcConfigUpdate() {clear();} - struct init_eNB_t : ProtocolIE_Container - { - static constexpr const char* name() {return "init_eNB_t";} - using parent_t = ProtocolIE_Container; - - }; - struct init_en_gNB_t : ProtocolIE_Container - { - static constexpr const char* name() {return "init_en_gNB_t";} - using parent_t = ProtocolIE_Container; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - init_eNB_t& select_init_eNB() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - init_eNB_t const* get_init_eNB() const { if(get_index() == 1) { return &var.as();} return nullptr; } - init_en_gNB_t& select_init_en_gNB() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - init_en_gNB_t const* get_init_en_gNB() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(init_eNB_t)]; - char dummy2[sizeof(init_en_gNB_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -ENDCConfigurationUpdate-IEs X2AP-PROTOCOL-IES ::= { - { ID id-InitiatingNodeType-EndcConfigUpdate CRITICALITY reject TYPE InitiatingNodeType-EndcConfigUpdate PRESENCE mandatory}, - ... -} -*/ - -struct ENDCConfigurationUpdate_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_InitiatingNodeType_EndcConfigUpdate() { set(id_InitiatingNodeType_EndcConfigUpdate); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_InitiatingNodeType_EndcConfigUpdate)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_InitiatingNodeType_EndcConfigUpdate);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_InitiatingNodeType_EndcConfigUpdate() { set(reject); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - InitiatingNodeType_EndcConfigUpdate& select_id_InitiatingNodeType_EndcConfigUpdate() { return set(1); } - InitiatingNodeType_EndcConfigUpdate const* get_id_InitiatingNodeType_EndcConfigUpdate() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_InitiatingNodeType_EndcConfigUpdate()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(InitiatingNodeType_EndcConfigUpdate)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_InitiatingNodeType_EndcConfigUpdate() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ENDCConfigurationUpdate ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ENDCConfigurationUpdate-IEs}}, - ... -} -*/ - -struct ENDCConfigurationUpdate : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "ENDCConfigurationUpdate";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -En-gNB-ENDCConfigUpdateAckIEs X2AP-PROTOCOL-IES ::= { - { ID id-ServedNRcellsENDCX2ManagementList CRITICALITY reject TYPE ServedNRcellsENDCX2ManagementList PRESENCE optional}, - ... -} -*/ - -struct En_gNB_ENDCConfigUpdateAckIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_ServedNRcellsENDCX2ManagementList() { set(id_ServedNRcellsENDCX2ManagementList); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_ServedNRcellsENDCX2ManagementList)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_ServedNRcellsENDCX2ManagementList);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_ServedNRcellsENDCX2ManagementList() { set(reject); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - ServedNRcellsENDCX2ManagementList& select_id_ServedNRcellsENDCX2ManagementList() { return set(1); } - ServedNRcellsENDCX2ManagementList const* get_id_ServedNRcellsENDCX2ManagementList() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_ServedNRcellsENDCX2ManagementList()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(ServedNRcellsENDCX2ManagementList)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_ServedNRcellsENDCX2ManagementList() { set(optional); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RespondingNodeType-EndcConfigUpdate::= CHOICE { - respond-eNB ProtocolIE-Container {{ENB-ENDCConfigUpdateAckIEs}}, - respond-en-gNB ProtocolIE-Container {{En-gNB-ENDCConfigUpdateAckIEs}}, - ... -} -*/ - -struct RespondingNodeType_EndcConfigUpdate : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "RespondingNodeType-EndcConfigUpdate";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~RespondingNodeType_EndcConfigUpdate() {clear();} - struct respond_eNB_t : ProtocolIE_Container - { - static constexpr const char* name() {return "respond_eNB_t";} - using parent_t = ProtocolIE_Container; - - }; - struct respond_en_gNB_t : ProtocolIE_Container - { - static constexpr const char* name() {return "respond_en_gNB_t";} - using parent_t = ProtocolIE_Container; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - respond_eNB_t& select_respond_eNB() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - respond_eNB_t const* get_respond_eNB() const { if(get_index() == 1) { return &var.as();} return nullptr; } - respond_en_gNB_t& select_respond_en_gNB() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - respond_en_gNB_t const* get_respond_en_gNB() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(respond_eNB_t)]; - char dummy2[sizeof(respond_en_gNB_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -ENDCConfigurationUpdateAcknowledge-IEs X2AP-PROTOCOL-IES ::= { - { ID id-RespondingNodeType-EndcConfigUpdate CRITICALITY reject TYPE RespondingNodeType-EndcConfigUpdate PRESENCE mandatory}, - ... -} -*/ - -struct ENDCConfigurationUpdateAcknowledge_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RespondingNodeType_EndcConfigUpdate() { set(id_RespondingNodeType_EndcConfigUpdate); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_RespondingNodeType_EndcConfigUpdate)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_RespondingNodeType_EndcConfigUpdate);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RespondingNodeType_EndcConfigUpdate() { set(reject); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - RespondingNodeType_EndcConfigUpdate& select_id_RespondingNodeType_EndcConfigUpdate() { return set(1); } - RespondingNodeType_EndcConfigUpdate const* get_id_RespondingNodeType_EndcConfigUpdate() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_RespondingNodeType_EndcConfigUpdate()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(RespondingNodeType_EndcConfigUpdate)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RespondingNodeType_EndcConfigUpdate() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ENDCConfigurationUpdateAcknowledge ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ENDCConfigurationUpdateAcknowledge-IEs}}, - ... -} -*/ - -struct ENDCConfigurationUpdateAcknowledge : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "ENDCConfigurationUpdateAcknowledge";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -ENDCConfigurationUpdateFailure-IEs X2AP-PROTOCOL-IES ::= { - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }| - { ID id-TimeToWait CRITICALITY ignore TYPE TimeToWait PRESENCE optional }, - ... -} -*/ - -struct ENDCConfigurationUpdateFailure_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_Cause() { set(id_Cause); type=1;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=2;} - void select_id_TimeToWait() { set(id_TimeToWait); type=3;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_Cause)) { type = 1; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 2; return true; } - else if(equal(id_TimeToWait)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_TimeToWait);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_Cause() { set(ignore); type=1;} - void select_id_CriticalityDiagnostics() { set(ignore); type=2;} - void select_id_TimeToWait() { set(ignore); type=3;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - Cause& select_id_Cause() { return set(1); } - Cause const* get_id_Cause() const { return get(1); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(2); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(2); } - TimeToWait& select_id_TimeToWait() { return set(3); } - TimeToWait const* get_id_TimeToWait() const { return get(3); } - bool is_unknown() const { return type == 4; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_Cause()); return true; - case 2: v(select_id_CriticalityDiagnostics()); return true; - case 3: v(select_id_TimeToWait()); return true; - case 4: if(type != 4) {clear(); asn::base::set();} type = 4; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(CriticalityDiagnostics)]; - char dummy3[sizeof(TimeToWait)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_Cause() { set(mandatory); type=1;} - void select_id_CriticalityDiagnostics() { set(optional); type=2;} - void select_id_TimeToWait() { set(optional); type=3;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ENDCConfigurationUpdateFailure ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ENDCConfigurationUpdateFailure-IEs}}, - ... -} -*/ - -struct ENDCConfigurationUpdateFailure : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "ENDCConfigurationUpdateFailure";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -ENDCPartialResetConfirm-IEs X2AP-PROTOCOL-IES ::= { - { ID id-UEs-Admitted-ToBeReset CRITICALITY reject TYPE UEsToBeResetList PRESENCE mandatory}, - ... -} -*/ - -struct ENDCPartialResetConfirm_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_UEs_Admitted_ToBeReset() { set(id_UEs_Admitted_ToBeReset); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_UEs_Admitted_ToBeReset)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_UEs_Admitted_ToBeReset);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_UEs_Admitted_ToBeReset() { set(reject); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UEsToBeResetList& select_id_UEs_Admitted_ToBeReset() { return set(1); } - UEsToBeResetList const* get_id_UEs_Admitted_ToBeReset() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_UEs_Admitted_ToBeReset()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(UEsToBeResetList)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_UEs_Admitted_ToBeReset() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ENDCPartialResetConfirm ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ENDCPartialResetConfirm-IEs}}, - ... -} -*/ - -struct ENDCPartialResetConfirm : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "ENDCPartialResetConfirm";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -ENDCPartialResetRequired-IEs X2AP-PROTOCOL-IES ::= { - { ID id-UEs-ToBeReset CRITICALITY reject TYPE UEsToBeResetList PRESENCE mandatory}| - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }, - ... -} -*/ - -struct ENDCPartialResetRequired_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_UEs_ToBeReset() { set(id_UEs_ToBeReset); type=1;} - void select_id_Cause() { set(id_Cause); type=2;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_UEs_ToBeReset)) { type = 1; return true; } - else if(equal(id_Cause)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_UEs_ToBeReset);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_UEs_ToBeReset() { set(reject); type=1;} - void select_id_Cause() { set(ignore); type=2;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UEsToBeResetList& select_id_UEs_ToBeReset() { return set(1); } - UEsToBeResetList const* get_id_UEs_ToBeReset() const { return get(1); } - Cause& select_id_Cause() { return set(2); } - Cause const* get_id_Cause() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_UEs_ToBeReset()); return true; - case 2: v(select_id_Cause()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(UEsToBeResetList)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_UEs_ToBeReset() { set(mandatory); type=1;} - void select_id_Cause() { set(mandatory); type=2;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ENDCPartialResetRequired ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ENDCPartialResetRequired-IEs}}, - ... -} -*/ - -struct ENDCPartialResetRequired : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "ENDCPartialResetRequired";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -ENDCX2RemovalFailure-IEs X2AP-PROTOCOL-IES ::= { - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory} | - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, - ... -} -*/ - -struct ENDCX2RemovalFailure_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_Cause() { set(id_Cause); type=1;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=2;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_Cause)) { type = 1; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_Cause() { set(ignore); type=1;} - void select_id_CriticalityDiagnostics() { set(ignore); type=2;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - Cause& select_id_Cause() { return set(1); } - Cause const* get_id_Cause() const { return get(1); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(2); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_Cause()); return true; - case 2: v(select_id_CriticalityDiagnostics()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(CriticalityDiagnostics)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_Cause() { set(mandatory); type=1;} - void select_id_CriticalityDiagnostics() { set(optional); type=2;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ENDCX2RemovalFailure ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ENDCX2RemovalFailure-IEs}}, - ... -} -*/ - -struct ENDCX2RemovalFailure : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "ENDCX2RemovalFailure";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -En-gNB-ENDCX2RemovalReqIEs X2AP-PROTOCOL-IES ::= { - { ID id-Globalen-gNB-ID CRITICALITY reject TYPE GlobalGNB-ID PRESENCE mandatory}, - ... -} -*/ - -struct En_gNB_ENDCX2RemovalReqIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_Globalen_gNB_ID() { set(id_Globalen_gNB_ID); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_Globalen_gNB_ID)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_Globalen_gNB_ID);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_Globalen_gNB_ID() { set(reject); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - GlobalGNB_ID& select_id_Globalen_gNB_ID() { return set(1); } - GlobalGNB_ID const* get_id_Globalen_gNB_ID() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_Globalen_gNB_ID()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(GlobalGNB_ID)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_Globalen_gNB_ID() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -InitiatingNodeType-EndcX2Removal ::= CHOICE { - init-eNB ProtocolIE-Container {{ENB-ENDCX2RemovalReqIEs}}, - init-en-gNB ProtocolIE-Container {{En-gNB-ENDCX2RemovalReqIEs}}, - ... -} -*/ - -struct InitiatingNodeType_EndcX2Removal : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "InitiatingNodeType-EndcX2Removal";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~InitiatingNodeType_EndcX2Removal() {clear();} - struct init_eNB_t : ProtocolIE_Container - { - static constexpr const char* name() {return "init_eNB_t";} - using parent_t = ProtocolIE_Container; - - }; - struct init_en_gNB_t : ProtocolIE_Container - { - static constexpr const char* name() {return "init_en_gNB_t";} - using parent_t = ProtocolIE_Container; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - init_eNB_t& select_init_eNB() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - init_eNB_t const* get_init_eNB() const { if(get_index() == 1) { return &var.as();} return nullptr; } - init_en_gNB_t& select_init_en_gNB() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - init_en_gNB_t const* get_init_en_gNB() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(init_eNB_t)]; - char dummy2[sizeof(init_en_gNB_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -ENDCX2RemovalRequest-IEs X2AP-PROTOCOL-IES ::= { - { ID id-InitiatingNodeType-EndcX2Removal CRITICALITY reject TYPE InitiatingNodeType-EndcX2Removal PRESENCE mandatory}, - ... -} -*/ - -struct ENDCX2RemovalRequest_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_InitiatingNodeType_EndcX2Removal() { set(id_InitiatingNodeType_EndcX2Removal); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_InitiatingNodeType_EndcX2Removal)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_InitiatingNodeType_EndcX2Removal);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_InitiatingNodeType_EndcX2Removal() { set(reject); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - InitiatingNodeType_EndcX2Removal& select_id_InitiatingNodeType_EndcX2Removal() { return set(1); } - InitiatingNodeType_EndcX2Removal const* get_id_InitiatingNodeType_EndcX2Removal() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_InitiatingNodeType_EndcX2Removal()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(InitiatingNodeType_EndcX2Removal)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_InitiatingNodeType_EndcX2Removal() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ENDCX2RemovalRequest ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ENDCX2RemovalRequest-IEs}}, - ... -} -*/ - -struct ENDCX2RemovalRequest : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "ENDCX2RemovalRequest";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -En-gNB-ENDCX2RemovalReqAckIEs X2AP-PROTOCOL-IES ::= { - { ID id-Globalen-gNB-ID CRITICALITY reject TYPE GlobalGNB-ID PRESENCE mandatory}, - ... -} -*/ - -struct En_gNB_ENDCX2RemovalReqAckIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_Globalen_gNB_ID() { set(id_Globalen_gNB_ID); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_Globalen_gNB_ID)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_Globalen_gNB_ID);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_Globalen_gNB_ID() { set(reject); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - GlobalGNB_ID& select_id_Globalen_gNB_ID() { return set(1); } - GlobalGNB_ID const* get_id_Globalen_gNB_ID() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_Globalen_gNB_ID()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(GlobalGNB_ID)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_Globalen_gNB_ID() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RespondingNodeType-EndcX2Removal ::= CHOICE { - respond-eNB ProtocolIE-Container {{ENB-ENDCX2RemovalReqAckIEs}}, - respond-en-gNB ProtocolIE-Container {{En-gNB-ENDCX2RemovalReqAckIEs}}, - ... -} -*/ - -struct RespondingNodeType_EndcX2Removal : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "RespondingNodeType-EndcX2Removal";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~RespondingNodeType_EndcX2Removal() {clear();} - struct respond_eNB_t : ProtocolIE_Container - { - static constexpr const char* name() {return "respond_eNB_t";} - using parent_t = ProtocolIE_Container; - - }; - struct respond_en_gNB_t : ProtocolIE_Container - { - static constexpr const char* name() {return "respond_en_gNB_t";} - using parent_t = ProtocolIE_Container; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - respond_eNB_t& select_respond_eNB() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - respond_eNB_t const* get_respond_eNB() const { if(get_index() == 1) { return &var.as();} return nullptr; } - respond_en_gNB_t& select_respond_en_gNB() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - respond_en_gNB_t const* get_respond_en_gNB() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(respond_eNB_t)]; - char dummy2[sizeof(respond_en_gNB_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -ENDCX2RemovalResponse-IEs X2AP-PROTOCOL-IES ::= { - { ID id-RespondingNodeType-EndcX2Removal CRITICALITY reject TYPE RespondingNodeType-EndcX2Removal PRESENCE mandatory}, - ... -} -*/ - -struct ENDCX2RemovalResponse_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RespondingNodeType_EndcX2Removal() { set(id_RespondingNodeType_EndcX2Removal); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_RespondingNodeType_EndcX2Removal)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_RespondingNodeType_EndcX2Removal);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RespondingNodeType_EndcX2Removal() { set(reject); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - RespondingNodeType_EndcX2Removal& select_id_RespondingNodeType_EndcX2Removal() { return set(1); } - RespondingNodeType_EndcX2Removal const* get_id_RespondingNodeType_EndcX2Removal() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_RespondingNodeType_EndcX2Removal()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(RespondingNodeType_EndcX2Removal)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RespondingNodeType_EndcX2Removal() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ENDCX2RemovalResponse ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ENDCX2RemovalResponse-IEs}}, - ... -} -*/ - -struct ENDCX2RemovalResponse : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "ENDCX2RemovalResponse";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -ENDCX2SetupFailure-IEs X2AP-PROTOCOL-IES ::= { - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory} | - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional } | - { ID id-TimeToWait CRITICALITY ignore TYPE TimeToWait PRESENCE optional }, - ... -} -*/ - -struct ENDCX2SetupFailure_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_Cause() { set(id_Cause); type=1;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=2;} - void select_id_TimeToWait() { set(id_TimeToWait); type=3;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_Cause)) { type = 1; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 2; return true; } - else if(equal(id_TimeToWait)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_TimeToWait);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_Cause() { set(ignore); type=1;} - void select_id_CriticalityDiagnostics() { set(ignore); type=2;} - void select_id_TimeToWait() { set(ignore); type=3;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - Cause& select_id_Cause() { return set(1); } - Cause const* get_id_Cause() const { return get(1); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(2); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(2); } - TimeToWait& select_id_TimeToWait() { return set(3); } - TimeToWait const* get_id_TimeToWait() const { return get(3); } - bool is_unknown() const { return type == 4; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_Cause()); return true; - case 2: v(select_id_CriticalityDiagnostics()); return true; - case 3: v(select_id_TimeToWait()); return true; - case 4: if(type != 4) {clear(); asn::base::set();} type = 4; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(CriticalityDiagnostics)]; - char dummy3[sizeof(TimeToWait)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_Cause() { set(mandatory); type=1;} - void select_id_CriticalityDiagnostics() { set(optional); type=2;} - void select_id_TimeToWait() { set(optional); type=3;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ENDCX2SetupFailure ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ENDCX2SetupFailure-IEs}}, - ... -} -*/ - -struct ENDCX2SetupFailure : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "ENDCX2SetupFailure";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -En-gNB-ENDCX2SetupReqIEs X2AP-PROTOCOL-IES ::= { - { ID id-Globalen-gNB-ID CRITICALITY reject TYPE GlobalGNB-ID PRESENCE mandatory}| - { ID id-ServedNRcellsENDCX2ManagementList CRITICALITY reject TYPE ServedNRcellsENDCX2ManagementList PRESENCE mandatory}, - ... -} -*/ - -struct En_gNB_ENDCX2SetupReqIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_Globalen_gNB_ID() { set(id_Globalen_gNB_ID); type=1;} - void select_id_ServedNRcellsENDCX2ManagementList() { set(id_ServedNRcellsENDCX2ManagementList); type=2;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_Globalen_gNB_ID)) { type = 1; return true; } - else if(equal(id_ServedNRcellsENDCX2ManagementList)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_Globalen_gNB_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_ServedNRcellsENDCX2ManagementList);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_Globalen_gNB_ID() { set(reject); type=1;} - void select_id_ServedNRcellsENDCX2ManagementList() { set(reject); type=2;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - GlobalGNB_ID& select_id_Globalen_gNB_ID() { return set(1); } - GlobalGNB_ID const* get_id_Globalen_gNB_ID() const { return get(1); } - ServedNRcellsENDCX2ManagementList& select_id_ServedNRcellsENDCX2ManagementList() { return set(2); } - ServedNRcellsENDCX2ManagementList const* get_id_ServedNRcellsENDCX2ManagementList() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_Globalen_gNB_ID()); return true; - case 2: v(select_id_ServedNRcellsENDCX2ManagementList()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(GlobalGNB_ID)]; - char dummy2[sizeof(ServedNRcellsENDCX2ManagementList)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_Globalen_gNB_ID() { set(mandatory); type=1;} - void select_id_ServedNRcellsENDCX2ManagementList() { set(mandatory); type=2;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -InitiatingNodeType-EndcX2Setup ::= CHOICE { - init-eNB ProtocolIE-Container {{ENB-ENDCX2SetupReqIEs}}, - init-en-gNB ProtocolIE-Container {{En-gNB-ENDCX2SetupReqIEs}}, - ... -} -*/ - -struct InitiatingNodeType_EndcX2Setup : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "InitiatingNodeType-EndcX2Setup";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~InitiatingNodeType_EndcX2Setup() {clear();} - struct init_eNB_t : ProtocolIE_Container - { - static constexpr const char* name() {return "init_eNB_t";} - using parent_t = ProtocolIE_Container; - - }; - struct init_en_gNB_t : ProtocolIE_Container - { - static constexpr const char* name() {return "init_en_gNB_t";} - using parent_t = ProtocolIE_Container; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - init_eNB_t& select_init_eNB() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - init_eNB_t const* get_init_eNB() const { if(get_index() == 1) { return &var.as();} return nullptr; } - init_en_gNB_t& select_init_en_gNB() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - init_en_gNB_t const* get_init_en_gNB() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(init_eNB_t)]; - char dummy2[sizeof(init_en_gNB_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -ENDCX2SetupRequest-IEs X2AP-PROTOCOL-IES ::= { - { ID id-InitiatingNodeType-EndcX2Setup CRITICALITY reject TYPE InitiatingNodeType-EndcX2Setup PRESENCE mandatory}, - ... -} -*/ - -struct ENDCX2SetupRequest_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_InitiatingNodeType_EndcX2Setup() { set(id_InitiatingNodeType_EndcX2Setup); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_InitiatingNodeType_EndcX2Setup)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_InitiatingNodeType_EndcX2Setup);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_InitiatingNodeType_EndcX2Setup() { set(reject); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - InitiatingNodeType_EndcX2Setup& select_id_InitiatingNodeType_EndcX2Setup() { return set(1); } - InitiatingNodeType_EndcX2Setup const* get_id_InitiatingNodeType_EndcX2Setup() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_InitiatingNodeType_EndcX2Setup()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(InitiatingNodeType_EndcX2Setup)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_InitiatingNodeType_EndcX2Setup() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ENDCX2SetupRequest ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ENDCX2SetupRequest-IEs}}, - ... -} -*/ - -struct ENDCX2SetupRequest : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "ENDCX2SetupRequest";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -En-gNB-ENDCX2SetupReqAckIEs X2AP-PROTOCOL-IES ::= { - { ID id-Globalen-gNB-ID CRITICALITY reject TYPE GlobalGNB-ID PRESENCE mandatory}| - { ID id-ServedNRcellsENDCX2ManagementList CRITICALITY reject TYPE ServedNRcellsENDCX2ManagementList PRESENCE mandatory}, - ... -} -*/ - -struct En_gNB_ENDCX2SetupReqAckIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_Globalen_gNB_ID() { set(id_Globalen_gNB_ID); type=1;} - void select_id_ServedNRcellsENDCX2ManagementList() { set(id_ServedNRcellsENDCX2ManagementList); type=2;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_Globalen_gNB_ID)) { type = 1; return true; } - else if(equal(id_ServedNRcellsENDCX2ManagementList)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_Globalen_gNB_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_ServedNRcellsENDCX2ManagementList);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_Globalen_gNB_ID() { set(reject); type=1;} - void select_id_ServedNRcellsENDCX2ManagementList() { set(reject); type=2;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - GlobalGNB_ID& select_id_Globalen_gNB_ID() { return set(1); } - GlobalGNB_ID const* get_id_Globalen_gNB_ID() const { return get(1); } - ServedNRcellsENDCX2ManagementList& select_id_ServedNRcellsENDCX2ManagementList() { return set(2); } - ServedNRcellsENDCX2ManagementList const* get_id_ServedNRcellsENDCX2ManagementList() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_Globalen_gNB_ID()); return true; - case 2: v(select_id_ServedNRcellsENDCX2ManagementList()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(GlobalGNB_ID)]; - char dummy2[sizeof(ServedNRcellsENDCX2ManagementList)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_Globalen_gNB_ID() { set(mandatory); type=1;} - void select_id_ServedNRcellsENDCX2ManagementList() { set(mandatory); type=2;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RespondingNodeType-EndcX2Setup ::= CHOICE { - respond-eNB ProtocolIE-Container {{ENB-ENDCX2SetupReqAckIEs}}, - respond-en-gNB ProtocolIE-Container {{En-gNB-ENDCX2SetupReqAckIEs}}, - ... -} -*/ - -struct RespondingNodeType_EndcX2Setup : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "RespondingNodeType-EndcX2Setup";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~RespondingNodeType_EndcX2Setup() {clear();} - struct respond_eNB_t : ProtocolIE_Container - { - static constexpr const char* name() {return "respond_eNB_t";} - using parent_t = ProtocolIE_Container; - - }; - struct respond_en_gNB_t : ProtocolIE_Container - { - static constexpr const char* name() {return "respond_en_gNB_t";} - using parent_t = ProtocolIE_Container; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - respond_eNB_t& select_respond_eNB() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - respond_eNB_t const* get_respond_eNB() const { if(get_index() == 1) { return &var.as();} return nullptr; } - respond_en_gNB_t& select_respond_en_gNB() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - respond_en_gNB_t const* get_respond_en_gNB() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(respond_eNB_t)]; - char dummy2[sizeof(respond_en_gNB_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -ENDCX2SetupResponse-IEs X2AP-PROTOCOL-IES ::= { - { ID id-RespondingNodeType-EndcX2Setup CRITICALITY reject TYPE RespondingNodeType-EndcX2Setup PRESENCE mandatory}, - ... -} -*/ - -struct ENDCX2SetupResponse_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RespondingNodeType_EndcX2Setup() { set(id_RespondingNodeType_EndcX2Setup); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_RespondingNodeType_EndcX2Setup)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_RespondingNodeType_EndcX2Setup);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RespondingNodeType_EndcX2Setup() { set(reject); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - RespondingNodeType_EndcX2Setup& select_id_RespondingNodeType_EndcX2Setup() { return set(1); } - RespondingNodeType_EndcX2Setup const* get_id_RespondingNodeType_EndcX2Setup() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_RespondingNodeType_EndcX2Setup()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(RespondingNodeType_EndcX2Setup)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RespondingNodeType_EndcX2Setup() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ENDCX2SetupResponse ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ENDCX2SetupResponse-IEs}}, - ... -} -*/ - -struct ENDCX2SetupResponse : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "ENDCX2SetupResponse";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -ListofEUTRACellsinNRCoordinationReq ::= SEQUENCE (SIZE (1..maxCellineNB)) OF ECGI -*/ - -struct ListofEUTRACellsinNRCoordinationReq_elm : ECGI -{ - static constexpr const char* name() {return "ListofEUTRACellsinNRCoordinationReq_elm";} - using parent_t = ECGI; - -}; -struct ListofEUTRACellsinNRCoordinationReq : asn::sequenceof -{ - static constexpr const char* name() {return "ListofEUTRACellsinNRCoordinationReq";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -ListofNRCellsinNRCoordinationReq ::= SEQUENCE (SIZE (0..maxnoNRcellsSpectrumSharingWithE-UTRA)) OF NRCGI -*/ - -struct ListofNRCellsinNRCoordinationReq_elm : NRCGI -{ - static constexpr const char* name() {return "ListofNRCellsinNRCoordinationReq_elm";} - using parent_t = NRCGI; - -}; -struct ListofNRCellsinNRCoordinationReq : asn::sequenceof -{ - static constexpr const char* name() {return "ListofNRCellsinNRCoordinationReq";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -En-gNB-EUTRA-NRCellResourceCoordinationReqIEs X2AP-PROTOCOL-IES ::= { - { ID id-DataTrafficResourceIndication CRITICALITY reject TYPE DataTrafficResourceIndication PRESENCE mandatory}| - { ID id-ListofEUTRACellsinNRCoordinationReq CRITICALITY reject TYPE ListofEUTRACellsinNRCoordinationReq PRESENCE mandatory }| - { ID id-SpectrumSharingGroupID CRITICALITY reject TYPE SpectrumSharingGroupID PRESENCE mandatory}| - { ID id-ListofNRCellsinNRCoordinationReq CRITICALITY reject TYPE ListofNRCellsinNRCoordinationReq PRESENCE mandatory}, - ... -} -*/ - -struct En_gNB_EUTRA_NRCellResourceCoordinationReqIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_DataTrafficResourceIndication() { set(id_DataTrafficResourceIndication); type=1;} - void select_id_ListofEUTRACellsinNRCoordinationReq() { set(id_ListofEUTRACellsinNRCoordinationReq); type=2;} - void select_id_SpectrumSharingGroupID() { set(id_SpectrumSharingGroupID); type=3;} - void select_id_ListofNRCellsinNRCoordinationReq() { set(id_ListofNRCellsinNRCoordinationReq); type=4;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_DataTrafficResourceIndication)) { type = 1; return true; } - else if(equal(id_ListofEUTRACellsinNRCoordinationReq)) { type = 2; return true; } - else if(equal(id_SpectrumSharingGroupID)) { type = 3; return true; } - else if(equal(id_ListofNRCellsinNRCoordinationReq)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_DataTrafficResourceIndication);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_ListofEUTRACellsinNRCoordinationReq);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_SpectrumSharingGroupID);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_ListofNRCellsinNRCoordinationReq);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_DataTrafficResourceIndication() { set(reject); type=1;} - void select_id_ListofEUTRACellsinNRCoordinationReq() { set(reject); type=2;} - void select_id_SpectrumSharingGroupID() { set(reject); type=3;} - void select_id_ListofNRCellsinNRCoordinationReq() { set(reject); type=4;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(reject)) { type = 3; return true; } - else if(equal(reject)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(reject);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(reject);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - DataTrafficResourceIndication& select_id_DataTrafficResourceIndication() { return set(1); } - DataTrafficResourceIndication const* get_id_DataTrafficResourceIndication() const { return get(1); } - ListofEUTRACellsinNRCoordinationReq& select_id_ListofEUTRACellsinNRCoordinationReq() { return set(2); } - ListofEUTRACellsinNRCoordinationReq const* get_id_ListofEUTRACellsinNRCoordinationReq() const { return get(2); } - SpectrumSharingGroupID& select_id_SpectrumSharingGroupID() { return set(3); } - SpectrumSharingGroupID const* get_id_SpectrumSharingGroupID() const { return get(3); } - ListofNRCellsinNRCoordinationReq& select_id_ListofNRCellsinNRCoordinationReq() { return set(4); } - ListofNRCellsinNRCoordinationReq const* get_id_ListofNRCellsinNRCoordinationReq() const { return get(4); } - bool is_unknown() const { return type == 5; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_DataTrafficResourceIndication()); return true; - case 2: v(select_id_ListofEUTRACellsinNRCoordinationReq()); return true; - case 3: v(select_id_SpectrumSharingGroupID()); return true; - case 4: v(select_id_ListofNRCellsinNRCoordinationReq()); return true; - case 5: if(type != 5) {clear(); asn::base::set();} type = 5; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(DataTrafficResourceIndication)]; - char dummy2[sizeof(ListofEUTRACellsinNRCoordinationReq)]; - char dummy3[sizeof(ListofNRCellsinNRCoordinationReq)]; - char dummy4[sizeof(SpectrumSharingGroupID)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_DataTrafficResourceIndication() { set(mandatory); type=1;} - void select_id_ListofEUTRACellsinNRCoordinationReq() { set(mandatory); type=2;} - void select_id_SpectrumSharingGroupID() { set(mandatory); type=3;} - void select_id_ListofNRCellsinNRCoordinationReq() { set(mandatory); type=4;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(mandatory)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(mandatory);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -InitiatingNodeType-EutranrCellResourceCoordination ::= CHOICE { - initiate-eNB ProtocolIE-Container {{ENB-EUTRA-NRCellResourceCoordinationReqIEs}}, - initiate-en-gNB ProtocolIE-Container {{En-gNB-EUTRA-NRCellResourceCoordinationReqIEs}}, - ... -} -*/ - -struct InitiatingNodeType_EutranrCellResourceCoordination : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "InitiatingNodeType-EutranrCellResourceCoordination";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~InitiatingNodeType_EutranrCellResourceCoordination() {clear();} - struct initiate_eNB_t : ProtocolIE_Container - { - static constexpr const char* name() {return "initiate_eNB_t";} - using parent_t = ProtocolIE_Container; - - }; - struct initiate_en_gNB_t : ProtocolIE_Container - { - static constexpr const char* name() {return "initiate_en_gNB_t";} - using parent_t = ProtocolIE_Container; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - initiate_eNB_t& select_initiate_eNB() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - initiate_eNB_t const* get_initiate_eNB() const { if(get_index() == 1) { return &var.as();} return nullptr; } - initiate_en_gNB_t& select_initiate_en_gNB() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - initiate_en_gNB_t const* get_initiate_en_gNB() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(initiate_eNB_t)]; - char dummy2[sizeof(initiate_en_gNB_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -EUTRANRCellResourceCoordinationRequest-IEs X2AP-PROTOCOL-IES ::= { - { ID id-InitiatingNodeType-EutranrCellResourceCoordination CRITICALITY reject TYPE InitiatingNodeType-EutranrCellResourceCoordination PRESENCE mandatory}, - ... -} -*/ - -struct EUTRANRCellResourceCoordinationRequest_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_InitiatingNodeType_EutranrCellResourceCoordination() { set(id_InitiatingNodeType_EutranrCellResourceCoordination); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_InitiatingNodeType_EutranrCellResourceCoordination)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_InitiatingNodeType_EutranrCellResourceCoordination);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_InitiatingNodeType_EutranrCellResourceCoordination() { set(reject); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - InitiatingNodeType_EutranrCellResourceCoordination& select_id_InitiatingNodeType_EutranrCellResourceCoordination() { return set(1); } - InitiatingNodeType_EutranrCellResourceCoordination const* get_id_InitiatingNodeType_EutranrCellResourceCoordination() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_InitiatingNodeType_EutranrCellResourceCoordination()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(InitiatingNodeType_EutranrCellResourceCoordination)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_InitiatingNodeType_EutranrCellResourceCoordination() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -EUTRANRCellResourceCoordinationRequest ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{EUTRANRCellResourceCoordinationRequest-IEs}}, - ... -} -*/ - -struct EUTRANRCellResourceCoordinationRequest : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "EUTRANRCellResourceCoordinationRequest";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -ListofNRCellsinNRCoordinationResp ::= SEQUENCE (SIZE (0..maxnoNRcellsSpectrumSharingWithE-UTRA)) OF NRCGI -*/ - -struct ListofNRCellsinNRCoordinationResp_elm : NRCGI -{ - static constexpr const char* name() {return "ListofNRCellsinNRCoordinationResp_elm";} - using parent_t = NRCGI; - -}; -struct ListofNRCellsinNRCoordinationResp : asn::sequenceof -{ - static constexpr const char* name() {return "ListofNRCellsinNRCoordinationResp";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -En-gNB-EUTRA-NRCellResourceCoordinationReqAckIEs X2AP-PROTOCOL-IES ::= { - { ID id-DataTrafficResourceIndication CRITICALITY reject TYPE DataTrafficResourceIndication PRESENCE mandatory}| - { ID id-SpectrumSharingGroupID CRITICALITY reject TYPE SpectrumSharingGroupID PRESENCE mandatory}| - { ID id-ListofNRCellsinNRCoordinationResp CRITICALITY reject TYPE ListofNRCellsinNRCoordinationResp PRESENCE mandatory}, - - - ... -} -*/ - -struct En_gNB_EUTRA_NRCellResourceCoordinationReqAckIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_DataTrafficResourceIndication() { set(id_DataTrafficResourceIndication); type=1;} - void select_id_SpectrumSharingGroupID() { set(id_SpectrumSharingGroupID); type=2;} - void select_id_ListofNRCellsinNRCoordinationResp() { set(id_ListofNRCellsinNRCoordinationResp); type=3;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_DataTrafficResourceIndication)) { type = 1; return true; } - else if(equal(id_SpectrumSharingGroupID)) { type = 2; return true; } - else if(equal(id_ListofNRCellsinNRCoordinationResp)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_DataTrafficResourceIndication);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SpectrumSharingGroupID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_ListofNRCellsinNRCoordinationResp);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_DataTrafficResourceIndication() { set(reject); type=1;} - void select_id_SpectrumSharingGroupID() { set(reject); type=2;} - void select_id_ListofNRCellsinNRCoordinationResp() { set(reject); type=3;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(reject)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(reject);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - DataTrafficResourceIndication& select_id_DataTrafficResourceIndication() { return set(1); } - DataTrafficResourceIndication const* get_id_DataTrafficResourceIndication() const { return get(1); } - SpectrumSharingGroupID& select_id_SpectrumSharingGroupID() { return set(2); } - SpectrumSharingGroupID const* get_id_SpectrumSharingGroupID() const { return get(2); } - ListofNRCellsinNRCoordinationResp& select_id_ListofNRCellsinNRCoordinationResp() { return set(3); } - ListofNRCellsinNRCoordinationResp const* get_id_ListofNRCellsinNRCoordinationResp() const { return get(3); } - bool is_unknown() const { return type == 4; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_DataTrafficResourceIndication()); return true; - case 2: v(select_id_SpectrumSharingGroupID()); return true; - case 3: v(select_id_ListofNRCellsinNRCoordinationResp()); return true; - case 4: if(type != 4) {clear(); asn::base::set();} type = 4; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(DataTrafficResourceIndication)]; - char dummy2[sizeof(ListofNRCellsinNRCoordinationResp)]; - char dummy3[sizeof(SpectrumSharingGroupID)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_DataTrafficResourceIndication() { set(mandatory); type=1;} - void select_id_SpectrumSharingGroupID() { set(mandatory); type=2;} - void select_id_ListofNRCellsinNRCoordinationResp() { set(mandatory); type=3;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RespondingNodeType-EutranrCellResourceCoordination ::= CHOICE { - respond-eNB ProtocolIE-Container {{ENB-EUTRA-NRCellResourceCoordinationReqAckIEs}}, - respond-en-gNB ProtocolIE-Container {{En-gNB-EUTRA-NRCellResourceCoordinationReqAckIEs}}, - ... -} -*/ - -struct RespondingNodeType_EutranrCellResourceCoordination : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "RespondingNodeType-EutranrCellResourceCoordination";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~RespondingNodeType_EutranrCellResourceCoordination() {clear();} - struct respond_eNB_t : ProtocolIE_Container - { - static constexpr const char* name() {return "respond_eNB_t";} - using parent_t = ProtocolIE_Container; - - }; - struct respond_en_gNB_t : ProtocolIE_Container - { - static constexpr const char* name() {return "respond_en_gNB_t";} - using parent_t = ProtocolIE_Container; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - respond_eNB_t& select_respond_eNB() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - respond_eNB_t const* get_respond_eNB() const { if(get_index() == 1) { return &var.as();} return nullptr; } - respond_en_gNB_t& select_respond_en_gNB() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - respond_en_gNB_t const* get_respond_en_gNB() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(respond_eNB_t)]; - char dummy2[sizeof(respond_en_gNB_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -EUTRANRCellResourceCoordinationResponse-IEs X2AP-PROTOCOL-IES ::= { - { ID id-RespondingNodeType-EutranrCellResourceCoordination CRITICALITY reject TYPE RespondingNodeType-EutranrCellResourceCoordination PRESENCE mandatory}, - ... -} -*/ - -struct EUTRANRCellResourceCoordinationResponse_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RespondingNodeType_EutranrCellResourceCoordination() { set(id_RespondingNodeType_EutranrCellResourceCoordination); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_RespondingNodeType_EutranrCellResourceCoordination)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_RespondingNodeType_EutranrCellResourceCoordination);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RespondingNodeType_EutranrCellResourceCoordination() { set(reject); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - RespondingNodeType_EutranrCellResourceCoordination& select_id_RespondingNodeType_EutranrCellResourceCoordination() { return set(1); } - RespondingNodeType_EutranrCellResourceCoordination const* get_id_RespondingNodeType_EutranrCellResourceCoordination() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_RespondingNodeType_EutranrCellResourceCoordination()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(RespondingNodeType_EutranrCellResourceCoordination)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RespondingNodeType_EutranrCellResourceCoordination() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -EUTRANRCellResourceCoordinationResponse ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{EUTRANRCellResourceCoordinationResponse-IEs}}, - ... -} -*/ - -struct EUTRANRCellResourceCoordinationResponse : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "EUTRANRCellResourceCoordinationResponse";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -ErrorIndication-IEs X2AP-PROTOCOL-IES ::= { - { ID id-Old-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE optional}| - { ID id-New-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE optional}| - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE optional}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| - { ID id-Old-eNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-New-eNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-Old-SgNB-UE-X2AP-ID CRITICALITY ignore TYPE SgNB-UE-X2AP-ID PRESENCE optional}, - ... -} -*/ - -struct ErrorIndication_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 8; } - void clear() {type = 0;} - void select_id_Old_eNB_UE_X2AP_ID() { set(id_Old_eNB_UE_X2AP_ID); type=1;} - void select_id_New_eNB_UE_X2AP_ID() { set(id_New_eNB_UE_X2AP_ID); type=2;} - void select_id_Cause() { set(id_Cause); type=3;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=4;} - void select_id_Old_eNB_UE_X2AP_ID_Extension() { set(id_Old_eNB_UE_X2AP_ID_Extension); type=5;} - void select_id_New_eNB_UE_X2AP_ID_Extension() { set(id_New_eNB_UE_X2AP_ID_Extension); type=6;} - void select_id_Old_SgNB_UE_X2AP_ID() { set(id_Old_SgNB_UE_X2AP_ID); type=7;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_Old_eNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_New_eNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_Cause)) { type = 3; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 4; return true; } - else if(equal(id_Old_eNB_UE_X2AP_ID_Extension)) { type = 5; return true; } - else if(equal(id_New_eNB_UE_X2AP_ID_Extension)) { type = 6; return true; } - else if(equal(id_Old_SgNB_UE_X2AP_ID)) { type = 7; return true; } - else { type = 8; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_Old_eNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_New_eNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_Old_eNB_UE_X2AP_ID_Extension);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_New_eNB_UE_X2AP_ID_Extension);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(id_Old_SgNB_UE_X2AP_ID);} return false; - case 8: type = 8; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 8; } - void clear() {type = 0;} - void select_id_Old_eNB_UE_X2AP_ID() { set(ignore); type=1;} - void select_id_New_eNB_UE_X2AP_ID() { set(ignore); type=2;} - void select_id_Cause() { set(ignore); type=3;} - void select_id_CriticalityDiagnostics() { set(ignore); type=4;} - void select_id_Old_eNB_UE_X2AP_ID_Extension() { set(ignore); type=5;} - void select_id_New_eNB_UE_X2AP_ID_Extension() { set(ignore); type=6;} - void select_id_Old_SgNB_UE_X2AP_ID() { set(ignore); type=7;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else if(equal(ignore)) { type = 6; return true; } - else if(equal(ignore)) { type = 7; return true; } - else { type = 8; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(ignore);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(ignore);} return false; - case 8: type = 8; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_Old_eNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_Old_eNB_UE_X2AP_ID() const { return get(1); } - UE_X2AP_ID& select_id_New_eNB_UE_X2AP_ID() { return set(2); } - UE_X2AP_ID const* get_id_New_eNB_UE_X2AP_ID() const { return get(2); } - Cause& select_id_Cause() { return set(3); } - Cause const* get_id_Cause() const { return get(3); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(4); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(4); } - UE_X2AP_ID_Extension& select_id_Old_eNB_UE_X2AP_ID_Extension() { return set(5); } - UE_X2AP_ID_Extension const* get_id_Old_eNB_UE_X2AP_ID_Extension() const { return get(5); } - UE_X2AP_ID_Extension& select_id_New_eNB_UE_X2AP_ID_Extension() { return set(6); } - UE_X2AP_ID_Extension const* get_id_New_eNB_UE_X2AP_ID_Extension() const { return get(6); } - SgNB_UE_X2AP_ID& select_id_Old_SgNB_UE_X2AP_ID() { return set(7); } - SgNB_UE_X2AP_ID const* get_id_Old_SgNB_UE_X2AP_ID() const { return get(7); } - bool is_unknown() const { return type == 8; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - case 7: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - v.template operator()(7); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_Old_eNB_UE_X2AP_ID()); return true; - case 2: v(select_id_New_eNB_UE_X2AP_ID()); return true; - case 3: v(select_id_Cause()); return true; - case 4: v(select_id_CriticalityDiagnostics()); return true; - case 5: v(select_id_Old_eNB_UE_X2AP_ID_Extension()); return true; - case 6: v(select_id_New_eNB_UE_X2AP_ID_Extension()); return true; - case 7: v(select_id_Old_SgNB_UE_X2AP_ID()); return true; - case 8: if(type != 8) {clear(); asn::base::set();} type = 8; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - case 7: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(CriticalityDiagnostics)]; - char dummy3[sizeof(SgNB_UE_X2AP_ID)]; - char dummy4[sizeof(UE_X2AP_ID)]; - char dummy5[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 8; } - void clear() {type = 0;} - void select_id_Old_eNB_UE_X2AP_ID() { set(optional); type=1;} - void select_id_New_eNB_UE_X2AP_ID() { set(optional); type=2;} - void select_id_Cause() { set(optional); type=3;} - void select_id_CriticalityDiagnostics() { set(optional); type=4;} - void select_id_Old_eNB_UE_X2AP_ID_Extension() { set(optional); type=5;} - void select_id_New_eNB_UE_X2AP_ID_Extension() { set(optional); type=6;} - void select_id_Old_SgNB_UE_X2AP_ID() { set(optional); type=7;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else if(equal(optional)) { type = 7; return true; } - else { type = 8; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(optional);} return false; - case 8: type = 8; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ErrorIndication ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ErrorIndication-IEs}}, - ... -} -*/ - -struct ErrorIndication : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "ErrorIndication";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -GNBStatusIndicationIEs X2AP-PROTOCOL-IES ::= { - { ID id-GNBOverloadInformation CRITICALITY ignore TYPE GNBOverloadInformation PRESENCE mandatory}, - ... -} -*/ - -struct GNBStatusIndicationIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_GNBOverloadInformation() { set(id_GNBOverloadInformation); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_GNBOverloadInformation)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_GNBOverloadInformation);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_GNBOverloadInformation() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - GNBOverloadInformation& select_id_GNBOverloadInformation() { return set(1); } - GNBOverloadInformation const* get_id_GNBOverloadInformation() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_GNBOverloadInformation()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(GNBOverloadInformation)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_GNBOverloadInformation() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -GNBStatusIndication ::= SEQUENCE { - protocolIEs ProtocolIE-Container { { GNBStatusIndicationIEs} }, - ... -} -*/ - -struct GNBStatusIndication : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "GNBStatusIndication";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -HandoverCancel-IEs X2AP-PROTOCOL-IES ::= { - { ID id-Old-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-New-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE optional}| - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| - { ID id-Old-eNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-New-eNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}, - ... -} -*/ - -struct HandoverCancel_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_Old_eNB_UE_X2AP_ID() { set(id_Old_eNB_UE_X2AP_ID); type=1;} - void select_id_New_eNB_UE_X2AP_ID() { set(id_New_eNB_UE_X2AP_ID); type=2;} - void select_id_Cause() { set(id_Cause); type=3;} - void select_id_Old_eNB_UE_X2AP_ID_Extension() { set(id_Old_eNB_UE_X2AP_ID_Extension); type=4;} - void select_id_New_eNB_UE_X2AP_ID_Extension() { set(id_New_eNB_UE_X2AP_ID_Extension); type=5;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_Old_eNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_New_eNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_Cause)) { type = 3; return true; } - else if(equal(id_Old_eNB_UE_X2AP_ID_Extension)) { type = 4; return true; } - else if(equal(id_New_eNB_UE_X2AP_ID_Extension)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_Old_eNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_New_eNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_Old_eNB_UE_X2AP_ID_Extension);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_New_eNB_UE_X2AP_ID_Extension);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_Old_eNB_UE_X2AP_ID() { set(reject); type=1;} - void select_id_New_eNB_UE_X2AP_ID() { set(ignore); type=2;} - void select_id_Cause() { set(ignore); type=3;} - void select_id_Old_eNB_UE_X2AP_ID_Extension() { set(reject); type=4;} - void select_id_New_eNB_UE_X2AP_ID_Extension() { set(ignore); type=5;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(reject)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(reject);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_Old_eNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_Old_eNB_UE_X2AP_ID() const { return get(1); } - UE_X2AP_ID& select_id_New_eNB_UE_X2AP_ID() { return set(2); } - UE_X2AP_ID const* get_id_New_eNB_UE_X2AP_ID() const { return get(2); } - Cause& select_id_Cause() { return set(3); } - Cause const* get_id_Cause() const { return get(3); } - UE_X2AP_ID_Extension& select_id_Old_eNB_UE_X2AP_ID_Extension() { return set(4); } - UE_X2AP_ID_Extension const* get_id_Old_eNB_UE_X2AP_ID_Extension() const { return get(4); } - UE_X2AP_ID_Extension& select_id_New_eNB_UE_X2AP_ID_Extension() { return set(5); } - UE_X2AP_ID_Extension const* get_id_New_eNB_UE_X2AP_ID_Extension() const { return get(5); } - bool is_unknown() const { return type == 6; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_Old_eNB_UE_X2AP_ID()); return true; - case 2: v(select_id_New_eNB_UE_X2AP_ID()); return true; - case 3: v(select_id_Cause()); return true; - case 4: v(select_id_Old_eNB_UE_X2AP_ID_Extension()); return true; - case 5: v(select_id_New_eNB_UE_X2AP_ID_Extension()); return true; - case 6: if(type != 6) {clear(); asn::base::set();} type = 6; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(UE_X2AP_ID)]; - char dummy3[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_Old_eNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_New_eNB_UE_X2AP_ID() { set(optional); type=2;} - void select_id_Cause() { set(mandatory); type=3;} - void select_id_Old_eNB_UE_X2AP_ID_Extension() { set(optional); type=4;} - void select_id_New_eNB_UE_X2AP_ID_Extension() { set(optional); type=5;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -HandoverCancel ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{HandoverCancel-IEs}}, - ... -} -*/ - -struct HandoverCancel : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "HandoverCancel";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -HandoverPreparationFailure-IEs X2AP-PROTOCOL-IES ::= { - { ID id-Old-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| - { ID id-Old-eNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}, - - ... -} -*/ - -struct HandoverPreparationFailure_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_Old_eNB_UE_X2AP_ID() { set(id_Old_eNB_UE_X2AP_ID); type=1;} - void select_id_Cause() { set(id_Cause); type=2;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=3;} - void select_id_Old_eNB_UE_X2AP_ID_Extension() { set(id_Old_eNB_UE_X2AP_ID_Extension); type=4;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_Old_eNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_Cause)) { type = 2; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 3; return true; } - else if(equal(id_Old_eNB_UE_X2AP_ID_Extension)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_Old_eNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_Old_eNB_UE_X2AP_ID_Extension);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_Old_eNB_UE_X2AP_ID() { set(ignore); type=1;} - void select_id_Cause() { set(ignore); type=2;} - void select_id_CriticalityDiagnostics() { set(ignore); type=3;} - void select_id_Old_eNB_UE_X2AP_ID_Extension() { set(ignore); type=4;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_Old_eNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_Old_eNB_UE_X2AP_ID() const { return get(1); } - Cause& select_id_Cause() { return set(2); } - Cause const* get_id_Cause() const { return get(2); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(3); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(3); } - UE_X2AP_ID_Extension& select_id_Old_eNB_UE_X2AP_ID_Extension() { return set(4); } - UE_X2AP_ID_Extension const* get_id_Old_eNB_UE_X2AP_ID_Extension() const { return get(4); } - bool is_unknown() const { return type == 5; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_Old_eNB_UE_X2AP_ID()); return true; - case 2: v(select_id_Cause()); return true; - case 3: v(select_id_CriticalityDiagnostics()); return true; - case 4: v(select_id_Old_eNB_UE_X2AP_ID_Extension()); return true; - case 5: if(type != 5) {clear(); asn::base::set();} type = 5; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(CriticalityDiagnostics)]; - char dummy3[sizeof(UE_X2AP_ID)]; - char dummy4[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_Old_eNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_Cause() { set(mandatory); type=2;} - void select_id_CriticalityDiagnostics() { set(optional); type=3;} - void select_id_Old_eNB_UE_X2AP_ID_Extension() { set(optional); type=4;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -HandoverPreparationFailure ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{HandoverPreparationFailure-IEs}}, - ... -} -*/ - -struct HandoverPreparationFailure : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "HandoverPreparationFailure";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -MobilityInformation ::= BIT STRING (SIZE(32)) -*/ - -struct MobilityInformation : asn::bstring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "MobilityInformation";} - using parent_t = asn::bstring<>; - -}; - -/* -HandoverReport-IEs X2AP-PROTOCOL-IES ::= { - { ID id-HandoverReportType CRITICALITY ignore TYPE HandoverReportType PRESENCE mandatory}| - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| - { ID id-SourceCellECGI CRITICALITY ignore TYPE ECGI PRESENCE mandatory}| - { ID id-FailureCellECGI CRITICALITY ignore TYPE ECGI PRESENCE mandatory}| - { ID id-Re-establishmentCellECGI CRITICALITY ignore TYPE ECGI PRESENCE conditional} -- The IE shall be present if the Handover Report Type IE is set to “HO to Wrong Cell” -- | - { ID id-TargetCellInUTRAN CRITICALITY ignore TYPE TargetCellInUTRAN PRESENCE conditional} -- The IE shall be present if the Handover Report Type IE is set to "InterRAT ping-pong" --| - { ID id-SourceCellCRNTI CRITICALITY ignore TYPE CRNTI PRESENCE optional}| - { ID id-MobilityInformation CRITICALITY ignore TYPE MobilityInformation PRESENCE optional}| - { ID id-UE-RLF-Report-Container CRITICALITY ignore TYPE UE-RLF-Report-Container PRESENCE optional}| - { ID id-UE-RLF-Report-Container-for-extended-bands CRITICALITY ignore TYPE UE-RLF-Report-Container-for-extended-bands PRESENCE optional}, - ... -} -*/ - -struct HandoverReport_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 11; } - void clear() {type = 0;} - void select_id_HandoverReportType() { set(id_HandoverReportType); type=1;} - void select_id_Cause() { set(id_Cause); type=2;} - void select_id_SourceCellECGI() { set(id_SourceCellECGI); type=3;} - void select_id_FailureCellECGI() { set(id_FailureCellECGI); type=4;} - void select_id_Re_establishmentCellECGI() { set(id_Re_establishmentCellECGI); type=5;} - void select_id_TargetCellInUTRAN() { set(id_TargetCellInUTRAN); type=6;} - void select_id_SourceCellCRNTI() { set(id_SourceCellCRNTI); type=7;} - void select_id_MobilityInformation() { set(id_MobilityInformation); type=8;} - void select_id_UE_RLF_Report_Container() { set(id_UE_RLF_Report_Container); type=9;} - void select_id_UE_RLF_Report_Container_for_extended_bands() { set(id_UE_RLF_Report_Container_for_extended_bands); type=10;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_HandoverReportType)) { type = 1; return true; } - else if(equal(id_Cause)) { type = 2; return true; } - else if(equal(id_SourceCellECGI)) { type = 3; return true; } - else if(equal(id_FailureCellECGI)) { type = 4; return true; } - else if(equal(id_Re_establishmentCellECGI)) { type = 5; return true; } - else if(equal(id_TargetCellInUTRAN)) { type = 6; return true; } - else if(equal(id_SourceCellCRNTI)) { type = 7; return true; } - else if(equal(id_MobilityInformation)) { type = 8; return true; } - else if(equal(id_UE_RLF_Report_Container)) { type = 9; return true; } - else if(equal(id_UE_RLF_Report_Container_for_extended_bands)) { type = 10; return true; } - else { type = 11; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_HandoverReportType);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_SourceCellECGI);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_FailureCellECGI);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_Re_establishmentCellECGI);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_TargetCellInUTRAN);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(id_SourceCellCRNTI);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(id_MobilityInformation);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(id_UE_RLF_Report_Container);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(id_UE_RLF_Report_Container_for_extended_bands);} return false; - case 11: type = 11; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 11; } - void clear() {type = 0;} - void select_id_HandoverReportType() { set(ignore); type=1;} - void select_id_Cause() { set(ignore); type=2;} - void select_id_SourceCellECGI() { set(ignore); type=3;} - void select_id_FailureCellECGI() { set(ignore); type=4;} - void select_id_Re_establishmentCellECGI() { set(ignore); type=5;} - void select_id_TargetCellInUTRAN() { set(ignore); type=6;} - void select_id_SourceCellCRNTI() { set(ignore); type=7;} - void select_id_MobilityInformation() { set(ignore); type=8;} - void select_id_UE_RLF_Report_Container() { set(ignore); type=9;} - void select_id_UE_RLF_Report_Container_for_extended_bands() { set(ignore); type=10;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else if(equal(ignore)) { type = 6; return true; } - else if(equal(ignore)) { type = 7; return true; } - else if(equal(ignore)) { type = 8; return true; } - else if(equal(ignore)) { type = 9; return true; } - else if(equal(ignore)) { type = 10; return true; } - else { type = 11; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(ignore);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(ignore);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(ignore);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(ignore);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(ignore);} return false; - case 11: type = 11; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - HandoverReportType& select_id_HandoverReportType() { return set(1); } - HandoverReportType const* get_id_HandoverReportType() const { return get(1); } - Cause& select_id_Cause() { return set(2); } - Cause const* get_id_Cause() const { return get(2); } - ECGI& select_id_SourceCellECGI() { return set(3); } - ECGI const* get_id_SourceCellECGI() const { return get(3); } - ECGI& select_id_FailureCellECGI() { return set(4); } - ECGI const* get_id_FailureCellECGI() const { return get(4); } - ECGI& select_id_Re_establishmentCellECGI() { return set(5); } - ECGI const* get_id_Re_establishmentCellECGI() const { return get(5); } - TargetCellInUTRAN& select_id_TargetCellInUTRAN() { return set(6); } - TargetCellInUTRAN const* get_id_TargetCellInUTRAN() const { return get(6); } - CRNTI& select_id_SourceCellCRNTI() { return set(7); } - CRNTI const* get_id_SourceCellCRNTI() const { return get(7); } - MobilityInformation& select_id_MobilityInformation() { return set(8); } - MobilityInformation const* get_id_MobilityInformation() const { return get(8); } - UE_RLF_Report_Container& select_id_UE_RLF_Report_Container() { return set(9); } - UE_RLF_Report_Container const* get_id_UE_RLF_Report_Container() const { return get(9); } - UE_RLF_Report_Container_for_extended_bands& select_id_UE_RLF_Report_Container_for_extended_bands() { return set(10); } - UE_RLF_Report_Container_for_extended_bands const* get_id_UE_RLF_Report_Container_for_extended_bands() const { return get(10); } - bool is_unknown() const { return type == 11; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - case 7: var.destroy(); break; - case 8: var.destroy(); break; - case 9: var.destroy(); break; - case 10: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - v.template operator()(7); - v.template operator()(8); - v.template operator()(9); - v.template operator()(10); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_HandoverReportType()); return true; - case 2: v(select_id_Cause()); return true; - case 3: v(select_id_SourceCellECGI()); return true; - case 4: v(select_id_FailureCellECGI()); return true; - case 5: v(select_id_Re_establishmentCellECGI()); return true; - case 6: v(select_id_TargetCellInUTRAN()); return true; - case 7: v(select_id_SourceCellCRNTI()); return true; - case 8: v(select_id_MobilityInformation()); return true; - case 9: v(select_id_UE_RLF_Report_Container()); return true; - case 10: v(select_id_UE_RLF_Report_Container_for_extended_bands()); return true; - case 11: if(type != 11) {clear(); asn::base::set();} type = 11; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - case 7: v(var.as()); return true; - case 8: v(var.as()); return true; - case 9: v(var.as()); return true; - case 10: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CRNTI)]; - char dummy2[sizeof(Cause)]; - char dummy3[sizeof(ECGI)]; - char dummy4[sizeof(HandoverReportType)]; - char dummy5[sizeof(MobilityInformation)]; - char dummy6[sizeof(TargetCellInUTRAN)]; - char dummy7[sizeof(UE_RLF_Report_Container)]; - char dummy8[sizeof(UE_RLF_Report_Container_for_extended_bands)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 11; } - void clear() {type = 0;} - void select_id_HandoverReportType() { set(mandatory); type=1;} - void select_id_Cause() { set(mandatory); type=2;} - void select_id_SourceCellECGI() { set(mandatory); type=3;} - void select_id_FailureCellECGI() { set(mandatory); type=4;} - void select_id_Re_establishmentCellECGI() { set(conditional); type=5;} - void select_id_TargetCellInUTRAN() { set(conditional); type=6;} - void select_id_SourceCellCRNTI() { set(optional); type=7;} - void select_id_MobilityInformation() { set(optional); type=8;} - void select_id_UE_RLF_Report_Container() { set(optional); type=9;} - void select_id_UE_RLF_Report_Container_for_extended_bands() { set(optional); type=10;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(mandatory)) { type = 4; return true; } - else if(equal(conditional)) { type = 5; return true; } - else if(equal(conditional)) { type = 6; return true; } - else if(equal(optional)) { type = 7; return true; } - else if(equal(optional)) { type = 8; return true; } - else if(equal(optional)) { type = 9; return true; } - else if(equal(optional)) { type = 10; return true; } - else { type = 11; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(mandatory);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(conditional);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(conditional);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(optional);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(optional);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(optional);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(optional);} return false; - case 11: type = 11; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -HandoverReport ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{HandoverReport-IEs}}, - ... -} -*/ - -struct HandoverReport : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "HandoverReport";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -UE-ContextInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { -{ ID id-ManagementBasedMDTallowed CRITICALITY ignore EXTENSION ManagementBasedMDTallowed PRESENCE optional }| -{ ID id-ManagementBasedMDTPLMNList CRITICALITY ignore EXTENSION MDTPLMNList PRESENCE optional }| -{ ID id-UESidelinkAggregateMaximumBitRate CRITICALITY ignore EXTENSION UESidelinkAggregateMaximumBitRate PRESENCE optional}, - ... -} -*/ - -struct UE_ContextInformation_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_ManagementBasedMDTallowed() { set(id_ManagementBasedMDTallowed); type=1;} - void select_id_ManagementBasedMDTPLMNList() { set(id_ManagementBasedMDTPLMNList); type=2;} - void select_id_UESidelinkAggregateMaximumBitRate() { set(id_UESidelinkAggregateMaximumBitRate); type=3;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_ManagementBasedMDTallowed)) { type = 1; return true; } - else if(equal(id_ManagementBasedMDTPLMNList)) { type = 2; return true; } - else if(equal(id_UESidelinkAggregateMaximumBitRate)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_ManagementBasedMDTallowed);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_ManagementBasedMDTPLMNList);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_UESidelinkAggregateMaximumBitRate);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_ManagementBasedMDTallowed() { set(ignore); type=1;} - void select_id_ManagementBasedMDTPLMNList() { set(ignore); type=2;} - void select_id_UESidelinkAggregateMaximumBitRate() { set(ignore); type=3;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - ManagementBasedMDTallowed& select_id_ManagementBasedMDTallowed() { return set(1); } - ManagementBasedMDTallowed const* get_id_ManagementBasedMDTallowed() const { return get(1); } - MDTPLMNList& select_id_ManagementBasedMDTPLMNList() { return set(2); } - MDTPLMNList const* get_id_ManagementBasedMDTPLMNList() const { return get(2); } - UESidelinkAggregateMaximumBitRate& select_id_UESidelinkAggregateMaximumBitRate() { return set(3); } - UESidelinkAggregateMaximumBitRate const* get_id_UESidelinkAggregateMaximumBitRate() const { return get(3); } - bool is_unknown() const { return type == 4; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_ManagementBasedMDTallowed()); return true; - case 2: v(select_id_ManagementBasedMDTPLMNList()); return true; - case 3: v(select_id_UESidelinkAggregateMaximumBitRate()); return true; - case 4: if(type != 4) {clear(); asn::base::set();} type = 4; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(MDTPLMNList)]; - char dummy2[sizeof(ManagementBasedMDTallowed)]; - char dummy3[sizeof(UESidelinkAggregateMaximumBitRate)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_ManagementBasedMDTallowed() { set(optional); type=1;} - void select_id_ManagementBasedMDTPLMNList() { set(optional); type=2;} - void select_id_UESidelinkAggregateMaximumBitRate() { set(optional); type=3;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -UE-ContextInformation ::= SEQUENCE { - mME-UE-S1AP-ID UE-S1AP-ID, - uESecurityCapabilities UESecurityCapabilities, - aS-SecurityInformation AS-SecurityInformation, - uEaggregateMaximumBitRate UEAggregateMaximumBitRate, - subscriberProfileIDforRFP SubscriberProfileIDforRFP OPTIONAL, - e-RABs-ToBeSetup-List E-RABs-ToBeSetup-List, - rRC-Context RRC-Context, - handoverRestrictionList HandoverRestrictionList OPTIONAL, - locationReportingInformation LocationReportingInformation OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {UE-ContextInformation-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct UE_ContextInformation : asn::sequence<10, 0, true, 4> -{ - static constexpr const char* name() {return "UE-ContextInformation";} - using parent_t = asn::sequence<10, 0, true, 4>; - struct mME_UE_S1AP_ID_t : UE_S1AP_ID - { - static constexpr const char* name() {return "mME_UE_S1AP_ID_t";} - using parent_t = UE_S1AP_ID; - - }; - mME_UE_S1AP_ID_t& ref_mME_UE_S1AP_ID() {return mME_UE_S1AP_ID;} - mME_UE_S1AP_ID_t const& ref_mME_UE_S1AP_ID() const {return mME_UE_S1AP_ID;} - struct uESecurityCapabilities_t : UESecurityCapabilities - { - static constexpr const char* name() {return "uESecurityCapabilities_t";} - using parent_t = UESecurityCapabilities; - - }; - uESecurityCapabilities_t& ref_uESecurityCapabilities() {return uESecurityCapabilities;} - uESecurityCapabilities_t const& ref_uESecurityCapabilities() const {return uESecurityCapabilities;} - struct aS_SecurityInformation_t : AS_SecurityInformation - { - static constexpr const char* name() {return "aS_SecurityInformation_t";} - using parent_t = AS_SecurityInformation; - - }; - aS_SecurityInformation_t& ref_aS_SecurityInformation() {return aS_SecurityInformation;} - aS_SecurityInformation_t const& ref_aS_SecurityInformation() const {return aS_SecurityInformation;} - struct uEaggregateMaximumBitRate_t : UEAggregateMaximumBitRate - { - static constexpr const char* name() {return "uEaggregateMaximumBitRate_t";} - using parent_t = UEAggregateMaximumBitRate; - - }; - uEaggregateMaximumBitRate_t& ref_uEaggregateMaximumBitRate() {return uEaggregateMaximumBitRate;} - uEaggregateMaximumBitRate_t const& ref_uEaggregateMaximumBitRate() const {return uEaggregateMaximumBitRate;} - struct subscriberProfileIDforRFP_t : SubscriberProfileIDforRFP - { - static constexpr const char* name() {return "subscriberProfileIDforRFP_t";} - using parent_t = SubscriberProfileIDforRFP; - static constexpr bool optional = true; - - }; - subscriberProfileIDforRFP_t& set_subscriberProfileIDforRFP() { subscriberProfileIDforRFP.setpresent(true); return subscriberProfileIDforRFP;} - subscriberProfileIDforRFP_t const* get_subscriberProfileIDforRFP() const {return subscriberProfileIDforRFP.is_valid() ? &subscriberProfileIDforRFP : nullptr;} - struct e_RABs_ToBeSetup_List_t : E_RABs_ToBeSetup_List - { - static constexpr const char* name() {return "e_RABs_ToBeSetup_List_t";} - using parent_t = E_RABs_ToBeSetup_List; - - }; - e_RABs_ToBeSetup_List_t& ref_e_RABs_ToBeSetup_List() {return e_RABs_ToBeSetup_List;} - e_RABs_ToBeSetup_List_t const& ref_e_RABs_ToBeSetup_List() const {return e_RABs_ToBeSetup_List;} - struct rRC_Context_t : RRC_Context - { - static constexpr const char* name() {return "rRC_Context_t";} - using parent_t = RRC_Context; - - }; - rRC_Context_t& ref_rRC_Context() {return rRC_Context;} - rRC_Context_t const& ref_rRC_Context() const {return rRC_Context;} - struct handoverRestrictionList_t : HandoverRestrictionList - { - static constexpr const char* name() {return "handoverRestrictionList_t";} - using parent_t = HandoverRestrictionList; - static constexpr bool optional = true; - - }; - handoverRestrictionList_t& set_handoverRestrictionList() { handoverRestrictionList.setpresent(true); return handoverRestrictionList;} - handoverRestrictionList_t const* get_handoverRestrictionList() const {return handoverRestrictionList.is_valid() ? &handoverRestrictionList : nullptr;} - struct locationReportingInformation_t : LocationReportingInformation - { - static constexpr const char* name() {return "locationReportingInformation_t";} - using parent_t = LocationReportingInformation; - static constexpr bool optional = true; - - }; - locationReportingInformation_t& set_locationReportingInformation() { locationReportingInformation.setpresent(true); return locationReportingInformation;} - locationReportingInformation_t const* get_locationReportingInformation() const {return locationReportingInformation.is_valid() ? &locationReportingInformation : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(mME_UE_S1AP_ID); - v(uESecurityCapabilities); - v(aS_SecurityInformation); - v(uEaggregateMaximumBitRate); - v(subscriberProfileIDforRFP); - v(e_RABs_ToBeSetup_List); - v(rRC_Context); - v(handoverRestrictionList); - v(locationReportingInformation); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(mME_UE_S1AP_ID); - v(uESecurityCapabilities); - v(aS_SecurityInformation); - v(uEaggregateMaximumBitRate); - v(subscriberProfileIDforRFP); - v(e_RABs_ToBeSetup_List); - v(rRC_Context); - v(handoverRestrictionList); - v(locationReportingInformation); - v(iE_Extensions); - - }; - void clear() - { - mME_UE_S1AP_ID.clear(); - uESecurityCapabilities.clear(); - aS_SecurityInformation.clear(); - uEaggregateMaximumBitRate.clear(); - subscriberProfileIDforRFP.clear(); - e_RABs_ToBeSetup_List.clear(); - rRC_Context.clear(); - handoverRestrictionList.clear(); - locationReportingInformation.clear(); - iE_Extensions.clear(); - - }; - private: - mME_UE_S1AP_ID_t mME_UE_S1AP_ID; - uESecurityCapabilities_t uESecurityCapabilities; - aS_SecurityInformation_t aS_SecurityInformation; - uEaggregateMaximumBitRate_t uEaggregateMaximumBitRate; - subscriberProfileIDforRFP_t subscriberProfileIDforRFP; - e_RABs_ToBeSetup_List_t e_RABs_ToBeSetup_List; - rRC_Context_t rRC_Context; - handoverRestrictionList_t handoverRestrictionList; - locationReportingInformation_t locationReportingInformation; - iE_Extensions_t iE_Extensions; - -}; -/* -UE-ContextReferenceAtSeNB-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct UE_ContextReferenceAtSeNB_ItemExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -UE-ContextReferenceAtSeNB ::= SEQUENCE { - source-GlobalSeNB-ID GlobalENB-ID, - seNB-UE-X2AP-ID UE-X2AP-ID, - seNB-UE-X2AP-ID-Extension UE-X2AP-ID-Extension, - iE-Extensions ProtocolExtensionContainer { {UE-ContextReferenceAtSeNB-ItemExtIEs} } OPTIONAL, - ... -} -*/ - -struct UE_ContextReferenceAtSeNB : asn::sequence<4, 0, true, 1> -{ - static constexpr const char* name() {return "UE-ContextReferenceAtSeNB";} - using parent_t = asn::sequence<4, 0, true, 1>; - struct source_GlobalSeNB_ID_t : GlobalENB_ID - { - static constexpr const char* name() {return "source_GlobalSeNB_ID_t";} - using parent_t = GlobalENB_ID; - - }; - source_GlobalSeNB_ID_t& ref_source_GlobalSeNB_ID() {return source_GlobalSeNB_ID;} - source_GlobalSeNB_ID_t const& ref_source_GlobalSeNB_ID() const {return source_GlobalSeNB_ID;} - struct seNB_UE_X2AP_ID_t : UE_X2AP_ID - { - static constexpr const char* name() {return "seNB_UE_X2AP_ID_t";} - using parent_t = UE_X2AP_ID; - - }; - seNB_UE_X2AP_ID_t& ref_seNB_UE_X2AP_ID() {return seNB_UE_X2AP_ID;} - seNB_UE_X2AP_ID_t const& ref_seNB_UE_X2AP_ID() const {return seNB_UE_X2AP_ID;} - struct seNB_UE_X2AP_ID_Extension_t : UE_X2AP_ID_Extension - { - static constexpr const char* name() {return "seNB_UE_X2AP_ID_Extension_t";} - using parent_t = UE_X2AP_ID_Extension; - - }; - seNB_UE_X2AP_ID_Extension_t& ref_seNB_UE_X2AP_ID_Extension() {return seNB_UE_X2AP_ID_Extension;} - seNB_UE_X2AP_ID_Extension_t const& ref_seNB_UE_X2AP_ID_Extension() const {return seNB_UE_X2AP_ID_Extension;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(source_GlobalSeNB_ID); - v(seNB_UE_X2AP_ID); - v(seNB_UE_X2AP_ID_Extension); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(source_GlobalSeNB_ID); - v(seNB_UE_X2AP_ID); - v(seNB_UE_X2AP_ID_Extension); - v(iE_Extensions); - - }; - void clear() - { - source_GlobalSeNB_ID.clear(); - seNB_UE_X2AP_ID.clear(); - seNB_UE_X2AP_ID_Extension.clear(); - iE_Extensions.clear(); - - }; - private: - source_GlobalSeNB_ID_t source_GlobalSeNB_ID; - seNB_UE_X2AP_ID_t seNB_UE_X2AP_ID; - seNB_UE_X2AP_ID_Extension_t seNB_UE_X2AP_ID_Extension; - iE_Extensions_t iE_Extensions; - -}; -/* -UE-ContextReferenceAtWT-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct UE_ContextReferenceAtWT_ItemExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -UE-ContextReferenceAtWT ::= SEQUENCE { - wTID WTID, - wT-UE-XwAP-ID WT-UE-XwAP-ID, - iE-Extensions ProtocolExtensionContainer { {UE-ContextReferenceAtWT-ItemExtIEs} } OPTIONAL, - ... -} -*/ - -struct UE_ContextReferenceAtWT : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "UE-ContextReferenceAtWT";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct wTID_t : WTID - { - static constexpr const char* name() {return "wTID_t";} - using parent_t = WTID; - - }; - wTID_t& ref_wTID() {return wTID;} - wTID_t const& ref_wTID() const {return wTID;} - struct wT_UE_XwAP_ID_t : WT_UE_XwAP_ID - { - static constexpr const char* name() {return "wT_UE_XwAP_ID_t";} - using parent_t = WT_UE_XwAP_ID; - - }; - wT_UE_XwAP_ID_t& ref_wT_UE_XwAP_ID() {return wT_UE_XwAP_ID;} - wT_UE_XwAP_ID_t const& ref_wT_UE_XwAP_ID() const {return wT_UE_XwAP_ID;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(wTID); - v(wT_UE_XwAP_ID); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(wTID); - v(wT_UE_XwAP_ID); - v(iE_Extensions); - - }; - void clear() - { - wTID.clear(); - wT_UE_XwAP_ID.clear(); - iE_Extensions.clear(); - - }; - private: - wTID_t wTID; - wT_UE_XwAP_ID_t wT_UE_XwAP_ID; - iE_Extensions_t iE_Extensions; - -}; -/* -UE-ContextReferenceAtSgNB-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct UE_ContextReferenceAtSgNB_ItemExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -UE-ContextReferenceAtSgNB ::= SEQUENCE { - source-GlobalSgNB-ID GlobalGNB-ID, - sgNB-UE-X2AP-ID SgNB-UE-X2AP-ID, - iE-Extensions ProtocolExtensionContainer { {UE-ContextReferenceAtSgNB-ItemExtIEs} } OPTIONAL, - ... -} -*/ - -struct UE_ContextReferenceAtSgNB : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "UE-ContextReferenceAtSgNB";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct source_GlobalSgNB_ID_t : GlobalGNB_ID - { - static constexpr const char* name() {return "source_GlobalSgNB_ID_t";} - using parent_t = GlobalGNB_ID; - - }; - source_GlobalSgNB_ID_t& ref_source_GlobalSgNB_ID() {return source_GlobalSgNB_ID;} - source_GlobalSgNB_ID_t const& ref_source_GlobalSgNB_ID() const {return source_GlobalSgNB_ID;} - struct sgNB_UE_X2AP_ID_t : SgNB_UE_X2AP_ID - { - static constexpr const char* name() {return "sgNB_UE_X2AP_ID_t";} - using parent_t = SgNB_UE_X2AP_ID; - - }; - sgNB_UE_X2AP_ID_t& ref_sgNB_UE_X2AP_ID() {return sgNB_UE_X2AP_ID;} - sgNB_UE_X2AP_ID_t const& ref_sgNB_UE_X2AP_ID() const {return sgNB_UE_X2AP_ID;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(source_GlobalSgNB_ID); - v(sgNB_UE_X2AP_ID); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(source_GlobalSgNB_ID); - v(sgNB_UE_X2AP_ID); - v(iE_Extensions); - - }; - void clear() - { - source_GlobalSgNB_ID.clear(); - sgNB_UE_X2AP_ID.clear(); - iE_Extensions.clear(); - - }; - private: - source_GlobalSgNB_ID_t source_GlobalSgNB_ID; - sgNB_UE_X2AP_ID_t sgNB_UE_X2AP_ID; - iE_Extensions_t iE_Extensions; - -}; -/* -HandoverRequest-IEs X2AP-PROTOCOL-IES ::= { - { ID id-Old-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| - { ID id-TargetCell-ID CRITICALITY reject TYPE ECGI PRESENCE mandatory}| - { ID id-GUMMEI-ID CRITICALITY reject TYPE GUMMEI PRESENCE mandatory}| - { ID id-UE-ContextInformation CRITICALITY reject TYPE UE-ContextInformation PRESENCE mandatory}| - { ID id-UE-HistoryInformation CRITICALITY ignore TYPE UE-HistoryInformation PRESENCE mandatory}| - { ID id-TraceActivation CRITICALITY ignore TYPE TraceActivation PRESENCE optional}| - { ID id-SRVCCOperationPossible CRITICALITY ignore TYPE SRVCCOperationPossible PRESENCE optional}| - { ID id-CSGMembershipStatus CRITICALITY reject TYPE CSGMembershipStatus PRESENCE optional}| - { ID id-MobilityInformation CRITICALITY ignore TYPE MobilityInformation PRESENCE optional}| - { ID id-Masked-IMEISV CRITICALITY ignore TYPE Masked-IMEISV PRESENCE optional}| - { ID id-UE-HistoryInformationFromTheUE CRITICALITY ignore TYPE UE-HistoryInformationFromTheUE PRESENCE optional}| - { ID id-ExpectedUEBehaviour CRITICALITY ignore TYPE ExpectedUEBehaviour PRESENCE optional}| - { ID id-ProSeAuthorized CRITICALITY ignore TYPE ProSeAuthorized PRESENCE optional}| - { ID id-UE-ContextReferenceAtSeNB CRITICALITY ignore TYPE UE-ContextReferenceAtSeNB PRESENCE optional}| - { ID id-Old-eNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-V2XServicesAuthorized CRITICALITY ignore TYPE V2XServicesAuthorized PRESENCE optional}| - { ID id-UE-ContextReferenceAtWT CRITICALITY ignore TYPE UE-ContextReferenceAtWT PRESENCE optional}| - { ID id-NRUESecurityCapabilities CRITICALITY ignore TYPE NRUESecurityCapabilities PRESENCE optional}| - { ID id-UE-ContextReferenceAtSgNB CRITICALITY ignore TYPE UE-ContextReferenceAtSgNB PRESENCE optional}| - { ID id-AerialUEsubscriptionInformation CRITICALITY ignore TYPE AerialUEsubscriptionInformation PRESENCE optional}| - { ID id-Subscription-Based-UE-DifferentiationInfo CRITICALITY ignore TYPE Subscription-Based-UE-DifferentiationInfo PRESENCE optional}, - ... -} -*/ - -struct HandoverRequest_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 23; } - void clear() {type = 0;} - void select_id_Old_eNB_UE_X2AP_ID() { set(id_Old_eNB_UE_X2AP_ID); type=1;} - void select_id_Cause() { set(id_Cause); type=2;} - void select_id_TargetCell_ID() { set(id_TargetCell_ID); type=3;} - void select_id_GUMMEI_ID() { set(id_GUMMEI_ID); type=4;} - void select_id_UE_ContextInformation() { set(id_UE_ContextInformation); type=5;} - void select_id_UE_HistoryInformation() { set(id_UE_HistoryInformation); type=6;} - void select_id_TraceActivation() { set(id_TraceActivation); type=7;} - void select_id_SRVCCOperationPossible() { set(id_SRVCCOperationPossible); type=8;} - void select_id_CSGMembershipStatus() { set(id_CSGMembershipStatus); type=9;} - void select_id_MobilityInformation() { set(id_MobilityInformation); type=10;} - void select_id_Masked_IMEISV() { set(id_Masked_IMEISV); type=11;} - void select_id_UE_HistoryInformationFromTheUE() { set(id_UE_HistoryInformationFromTheUE); type=12;} - void select_id_ExpectedUEBehaviour() { set(id_ExpectedUEBehaviour); type=13;} - void select_id_ProSeAuthorized() { set(id_ProSeAuthorized); type=14;} - void select_id_UE_ContextReferenceAtSeNB() { set(id_UE_ContextReferenceAtSeNB); type=15;} - void select_id_Old_eNB_UE_X2AP_ID_Extension() { set(id_Old_eNB_UE_X2AP_ID_Extension); type=16;} - void select_id_V2XServicesAuthorized() { set(id_V2XServicesAuthorized); type=17;} - void select_id_UE_ContextReferenceAtWT() { set(id_UE_ContextReferenceAtWT); type=18;} - void select_id_NRUESecurityCapabilities() { set(id_NRUESecurityCapabilities); type=19;} - void select_id_UE_ContextReferenceAtSgNB() { set(id_UE_ContextReferenceAtSgNB); type=20;} - void select_id_AerialUEsubscriptionInformation() { set(id_AerialUEsubscriptionInformation); type=21;} - void select_id_Subscription_Based_UE_DifferentiationInfo() { set(id_Subscription_Based_UE_DifferentiationInfo); type=22;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_Old_eNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_Cause)) { type = 2; return true; } - else if(equal(id_TargetCell_ID)) { type = 3; return true; } - else if(equal(id_GUMMEI_ID)) { type = 4; return true; } - else if(equal(id_UE_ContextInformation)) { type = 5; return true; } - else if(equal(id_UE_HistoryInformation)) { type = 6; return true; } - else if(equal(id_TraceActivation)) { type = 7; return true; } - else if(equal(id_SRVCCOperationPossible)) { type = 8; return true; } - else if(equal(id_CSGMembershipStatus)) { type = 9; return true; } - else if(equal(id_MobilityInformation)) { type = 10; return true; } - else if(equal(id_Masked_IMEISV)) { type = 11; return true; } - else if(equal(id_UE_HistoryInformationFromTheUE)) { type = 12; return true; } - else if(equal(id_ExpectedUEBehaviour)) { type = 13; return true; } - else if(equal(id_ProSeAuthorized)) { type = 14; return true; } - else if(equal(id_UE_ContextReferenceAtSeNB)) { type = 15; return true; } - else if(equal(id_Old_eNB_UE_X2AP_ID_Extension)) { type = 16; return true; } - else if(equal(id_V2XServicesAuthorized)) { type = 17; return true; } - else if(equal(id_UE_ContextReferenceAtWT)) { type = 18; return true; } - else if(equal(id_NRUESecurityCapabilities)) { type = 19; return true; } - else if(equal(id_UE_ContextReferenceAtSgNB)) { type = 20; return true; } - else if(equal(id_AerialUEsubscriptionInformation)) { type = 21; return true; } - else if(equal(id_Subscription_Based_UE_DifferentiationInfo)) { type = 22; return true; } - else { type = 23; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_Old_eNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_TargetCell_ID);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_GUMMEI_ID);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_UE_ContextInformation);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_UE_HistoryInformation);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(id_TraceActivation);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(id_SRVCCOperationPossible);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(id_CSGMembershipStatus);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(id_MobilityInformation);} return false; - case 11: type = 11; if(v(ref_nested())) { return equal(id_Masked_IMEISV);} return false; - case 12: type = 12; if(v(ref_nested())) { return equal(id_UE_HistoryInformationFromTheUE);} return false; - case 13: type = 13; if(v(ref_nested())) { return equal(id_ExpectedUEBehaviour);} return false; - case 14: type = 14; if(v(ref_nested())) { return equal(id_ProSeAuthorized);} return false; - case 15: type = 15; if(v(ref_nested())) { return equal(id_UE_ContextReferenceAtSeNB);} return false; - case 16: type = 16; if(v(ref_nested())) { return equal(id_Old_eNB_UE_X2AP_ID_Extension);} return false; - case 17: type = 17; if(v(ref_nested())) { return equal(id_V2XServicesAuthorized);} return false; - case 18: type = 18; if(v(ref_nested())) { return equal(id_UE_ContextReferenceAtWT);} return false; - case 19: type = 19; if(v(ref_nested())) { return equal(id_NRUESecurityCapabilities);} return false; - case 20: type = 20; if(v(ref_nested())) { return equal(id_UE_ContextReferenceAtSgNB);} return false; - case 21: type = 21; if(v(ref_nested())) { return equal(id_AerialUEsubscriptionInformation);} return false; - case 22: type = 22; if(v(ref_nested())) { return equal(id_Subscription_Based_UE_DifferentiationInfo);} return false; - case 23: type = 23; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 23; } - void clear() {type = 0;} - void select_id_Old_eNB_UE_X2AP_ID() { set(reject); type=1;} - void select_id_Cause() { set(ignore); type=2;} - void select_id_TargetCell_ID() { set(reject); type=3;} - void select_id_GUMMEI_ID() { set(reject); type=4;} - void select_id_UE_ContextInformation() { set(reject); type=5;} - void select_id_UE_HistoryInformation() { set(ignore); type=6;} - void select_id_TraceActivation() { set(ignore); type=7;} - void select_id_SRVCCOperationPossible() { set(ignore); type=8;} - void select_id_CSGMembershipStatus() { set(reject); type=9;} - void select_id_MobilityInformation() { set(ignore); type=10;} - void select_id_Masked_IMEISV() { set(ignore); type=11;} - void select_id_UE_HistoryInformationFromTheUE() { set(ignore); type=12;} - void select_id_ExpectedUEBehaviour() { set(ignore); type=13;} - void select_id_ProSeAuthorized() { set(ignore); type=14;} - void select_id_UE_ContextReferenceAtSeNB() { set(ignore); type=15;} - void select_id_Old_eNB_UE_X2AP_ID_Extension() { set(reject); type=16;} - void select_id_V2XServicesAuthorized() { set(ignore); type=17;} - void select_id_UE_ContextReferenceAtWT() { set(ignore); type=18;} - void select_id_NRUESecurityCapabilities() { set(ignore); type=19;} - void select_id_UE_ContextReferenceAtSgNB() { set(ignore); type=20;} - void select_id_AerialUEsubscriptionInformation() { set(ignore); type=21;} - void select_id_Subscription_Based_UE_DifferentiationInfo() { set(ignore); type=22;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(reject)) { type = 3; return true; } - else if(equal(reject)) { type = 4; return true; } - else if(equal(reject)) { type = 5; return true; } - else if(equal(ignore)) { type = 6; return true; } - else if(equal(ignore)) { type = 7; return true; } - else if(equal(ignore)) { type = 8; return true; } - else if(equal(reject)) { type = 9; return true; } - else if(equal(ignore)) { type = 10; return true; } - else if(equal(ignore)) { type = 11; return true; } - else if(equal(ignore)) { type = 12; return true; } - else if(equal(ignore)) { type = 13; return true; } - else if(equal(ignore)) { type = 14; return true; } - else if(equal(ignore)) { type = 15; return true; } - else if(equal(reject)) { type = 16; return true; } - else if(equal(ignore)) { type = 17; return true; } - else if(equal(ignore)) { type = 18; return true; } - else if(equal(ignore)) { type = 19; return true; } - else if(equal(ignore)) { type = 20; return true; } - else if(equal(ignore)) { type = 21; return true; } - else if(equal(ignore)) { type = 22; return true; } - else { type = 23; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(reject);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(reject);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(reject);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(ignore);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(ignore);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(ignore);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(reject);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(ignore);} return false; - case 11: type = 11; if(v(ref_nested())) { return equal(ignore);} return false; - case 12: type = 12; if(v(ref_nested())) { return equal(ignore);} return false; - case 13: type = 13; if(v(ref_nested())) { return equal(ignore);} return false; - case 14: type = 14; if(v(ref_nested())) { return equal(ignore);} return false; - case 15: type = 15; if(v(ref_nested())) { return equal(ignore);} return false; - case 16: type = 16; if(v(ref_nested())) { return equal(reject);} return false; - case 17: type = 17; if(v(ref_nested())) { return equal(ignore);} return false; - case 18: type = 18; if(v(ref_nested())) { return equal(ignore);} return false; - case 19: type = 19; if(v(ref_nested())) { return equal(ignore);} return false; - case 20: type = 20; if(v(ref_nested())) { return equal(ignore);} return false; - case 21: type = 21; if(v(ref_nested())) { return equal(ignore);} return false; - case 22: type = 22; if(v(ref_nested())) { return equal(ignore);} return false; - case 23: type = 23; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_Old_eNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_Old_eNB_UE_X2AP_ID() const { return get(1); } - Cause& select_id_Cause() { return set(2); } - Cause const* get_id_Cause() const { return get(2); } - ECGI& select_id_TargetCell_ID() { return set(3); } - ECGI const* get_id_TargetCell_ID() const { return get(3); } - GUMMEI& select_id_GUMMEI_ID() { return set(4); } - GUMMEI const* get_id_GUMMEI_ID() const { return get(4); } - UE_ContextInformation& select_id_UE_ContextInformation() { return set(5); } - UE_ContextInformation const* get_id_UE_ContextInformation() const { return get(5); } - UE_HistoryInformation& select_id_UE_HistoryInformation() { return set(6); } - UE_HistoryInformation const* get_id_UE_HistoryInformation() const { return get(6); } - TraceActivation& select_id_TraceActivation() { return set(7); } - TraceActivation const* get_id_TraceActivation() const { return get(7); } - SRVCCOperationPossible& select_id_SRVCCOperationPossible() { return set(8); } - SRVCCOperationPossible const* get_id_SRVCCOperationPossible() const { return get(8); } - CSGMembershipStatus& select_id_CSGMembershipStatus() { return set(9); } - CSGMembershipStatus const* get_id_CSGMembershipStatus() const { return get(9); } - MobilityInformation& select_id_MobilityInformation() { return set(10); } - MobilityInformation const* get_id_MobilityInformation() const { return get(10); } - Masked_IMEISV& select_id_Masked_IMEISV() { return set(11); } - Masked_IMEISV const* get_id_Masked_IMEISV() const { return get(11); } - UE_HistoryInformationFromTheUE& select_id_UE_HistoryInformationFromTheUE() { return set(12); } - UE_HistoryInformationFromTheUE const* get_id_UE_HistoryInformationFromTheUE() const { return get(12); } - ExpectedUEBehaviour& select_id_ExpectedUEBehaviour() { return set(13); } - ExpectedUEBehaviour const* get_id_ExpectedUEBehaviour() const { return get(13); } - ProSeAuthorized& select_id_ProSeAuthorized() { return set(14); } - ProSeAuthorized const* get_id_ProSeAuthorized() const { return get(14); } - UE_ContextReferenceAtSeNB& select_id_UE_ContextReferenceAtSeNB() { return set(15); } - UE_ContextReferenceAtSeNB const* get_id_UE_ContextReferenceAtSeNB() const { return get(15); } - UE_X2AP_ID_Extension& select_id_Old_eNB_UE_X2AP_ID_Extension() { return set(16); } - UE_X2AP_ID_Extension const* get_id_Old_eNB_UE_X2AP_ID_Extension() const { return get(16); } - V2XServicesAuthorized& select_id_V2XServicesAuthorized() { return set(17); } - V2XServicesAuthorized const* get_id_V2XServicesAuthorized() const { return get(17); } - UE_ContextReferenceAtWT& select_id_UE_ContextReferenceAtWT() { return set(18); } - UE_ContextReferenceAtWT const* get_id_UE_ContextReferenceAtWT() const { return get(18); } - NRUESecurityCapabilities& select_id_NRUESecurityCapabilities() { return set(19); } - NRUESecurityCapabilities const* get_id_NRUESecurityCapabilities() const { return get(19); } - UE_ContextReferenceAtSgNB& select_id_UE_ContextReferenceAtSgNB() { return set(20); } - UE_ContextReferenceAtSgNB const* get_id_UE_ContextReferenceAtSgNB() const { return get(20); } - AerialUEsubscriptionInformation& select_id_AerialUEsubscriptionInformation() { return set(21); } - AerialUEsubscriptionInformation const* get_id_AerialUEsubscriptionInformation() const { return get(21); } - Subscription_Based_UE_DifferentiationInfo& select_id_Subscription_Based_UE_DifferentiationInfo() { return set(22); } - Subscription_Based_UE_DifferentiationInfo const* get_id_Subscription_Based_UE_DifferentiationInfo() const { return get(22); } - bool is_unknown() const { return type == 23; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - case 7: var.destroy(); break; - case 8: var.destroy(); break; - case 9: var.destroy(); break; - case 10: var.destroy(); break; - case 11: var.destroy(); break; - case 12: var.destroy(); break; - case 13: var.destroy(); break; - case 14: var.destroy(); break; - case 15: var.destroy(); break; - case 16: var.destroy(); break; - case 17: var.destroy(); break; - case 18: var.destroy(); break; - case 19: var.destroy(); break; - case 20: var.destroy(); break; - case 21: var.destroy(); break; - case 22: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - v.template operator()(7); - v.template operator()(8); - v.template operator()(9); - v.template operator()(10); - v.template operator()(11); - v.template operator()(12); - v.template operator()(13); - v.template operator()(14); - v.template operator()(15); - v.template operator()(16); - v.template operator()(17); - v.template operator()(18); - v.template operator()(19); - v.template operator()(20); - v.template operator()(21); - v.template operator()(22); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_Old_eNB_UE_X2AP_ID()); return true; - case 2: v(select_id_Cause()); return true; - case 3: v(select_id_TargetCell_ID()); return true; - case 4: v(select_id_GUMMEI_ID()); return true; - case 5: v(select_id_UE_ContextInformation()); return true; - case 6: v(select_id_UE_HistoryInformation()); return true; - case 7: v(select_id_TraceActivation()); return true; - case 8: v(select_id_SRVCCOperationPossible()); return true; - case 9: v(select_id_CSGMembershipStatus()); return true; - case 10: v(select_id_MobilityInformation()); return true; - case 11: v(select_id_Masked_IMEISV()); return true; - case 12: v(select_id_UE_HistoryInformationFromTheUE()); return true; - case 13: v(select_id_ExpectedUEBehaviour()); return true; - case 14: v(select_id_ProSeAuthorized()); return true; - case 15: v(select_id_UE_ContextReferenceAtSeNB()); return true; - case 16: v(select_id_Old_eNB_UE_X2AP_ID_Extension()); return true; - case 17: v(select_id_V2XServicesAuthorized()); return true; - case 18: v(select_id_UE_ContextReferenceAtWT()); return true; - case 19: v(select_id_NRUESecurityCapabilities()); return true; - case 20: v(select_id_UE_ContextReferenceAtSgNB()); return true; - case 21: v(select_id_AerialUEsubscriptionInformation()); return true; - case 22: v(select_id_Subscription_Based_UE_DifferentiationInfo()); return true; - case 23: if(type != 23) {clear(); asn::base::set();} type = 23; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - case 7: v(var.as()); return true; - case 8: v(var.as()); return true; - case 9: v(var.as()); return true; - case 10: v(var.as()); return true; - case 11: v(var.as()); return true; - case 12: v(var.as()); return true; - case 13: v(var.as()); return true; - case 14: v(var.as()); return true; - case 15: v(var.as()); return true; - case 16: v(var.as()); return true; - case 17: v(var.as()); return true; - case 18: v(var.as()); return true; - case 19: v(var.as()); return true; - case 20: v(var.as()); return true; - case 21: v(var.as()); return true; - case 22: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(AerialUEsubscriptionInformation)]; - char dummy2[sizeof(CSGMembershipStatus)]; - char dummy3[sizeof(Cause)]; - char dummy4[sizeof(ECGI)]; - char dummy5[sizeof(ExpectedUEBehaviour)]; - char dummy6[sizeof(GUMMEI)]; - char dummy7[sizeof(Masked_IMEISV)]; - char dummy8[sizeof(MobilityInformation)]; - char dummy9[sizeof(NRUESecurityCapabilities)]; - char dummy10[sizeof(ProSeAuthorized)]; - char dummy11[sizeof(SRVCCOperationPossible)]; - char dummy12[sizeof(Subscription_Based_UE_DifferentiationInfo)]; - char dummy13[sizeof(TraceActivation)]; - char dummy14[sizeof(UE_ContextInformation)]; - char dummy15[sizeof(UE_ContextReferenceAtSeNB)]; - char dummy16[sizeof(UE_ContextReferenceAtSgNB)]; - char dummy17[sizeof(UE_ContextReferenceAtWT)]; - char dummy18[sizeof(UE_HistoryInformation)]; - char dummy19[sizeof(UE_HistoryInformationFromTheUE)]; - char dummy20[sizeof(UE_X2AP_ID)]; - char dummy21[sizeof(UE_X2AP_ID_Extension)]; - char dummy22[sizeof(V2XServicesAuthorized)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 23; } - void clear() {type = 0;} - void select_id_Old_eNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_Cause() { set(mandatory); type=2;} - void select_id_TargetCell_ID() { set(mandatory); type=3;} - void select_id_GUMMEI_ID() { set(mandatory); type=4;} - void select_id_UE_ContextInformation() { set(mandatory); type=5;} - void select_id_UE_HistoryInformation() { set(mandatory); type=6;} - void select_id_TraceActivation() { set(optional); type=7;} - void select_id_SRVCCOperationPossible() { set(optional); type=8;} - void select_id_CSGMembershipStatus() { set(optional); type=9;} - void select_id_MobilityInformation() { set(optional); type=10;} - void select_id_Masked_IMEISV() { set(optional); type=11;} - void select_id_UE_HistoryInformationFromTheUE() { set(optional); type=12;} - void select_id_ExpectedUEBehaviour() { set(optional); type=13;} - void select_id_ProSeAuthorized() { set(optional); type=14;} - void select_id_UE_ContextReferenceAtSeNB() { set(optional); type=15;} - void select_id_Old_eNB_UE_X2AP_ID_Extension() { set(optional); type=16;} - void select_id_V2XServicesAuthorized() { set(optional); type=17;} - void select_id_UE_ContextReferenceAtWT() { set(optional); type=18;} - void select_id_NRUESecurityCapabilities() { set(optional); type=19;} - void select_id_UE_ContextReferenceAtSgNB() { set(optional); type=20;} - void select_id_AerialUEsubscriptionInformation() { set(optional); type=21;} - void select_id_Subscription_Based_UE_DifferentiationInfo() { set(optional); type=22;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(mandatory)) { type = 4; return true; } - else if(equal(mandatory)) { type = 5; return true; } - else if(equal(mandatory)) { type = 6; return true; } - else if(equal(optional)) { type = 7; return true; } - else if(equal(optional)) { type = 8; return true; } - else if(equal(optional)) { type = 9; return true; } - else if(equal(optional)) { type = 10; return true; } - else if(equal(optional)) { type = 11; return true; } - else if(equal(optional)) { type = 12; return true; } - else if(equal(optional)) { type = 13; return true; } - else if(equal(optional)) { type = 14; return true; } - else if(equal(optional)) { type = 15; return true; } - else if(equal(optional)) { type = 16; return true; } - else if(equal(optional)) { type = 17; return true; } - else if(equal(optional)) { type = 18; return true; } - else if(equal(optional)) { type = 19; return true; } - else if(equal(optional)) { type = 20; return true; } - else if(equal(optional)) { type = 21; return true; } - else if(equal(optional)) { type = 22; return true; } - else { type = 23; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(mandatory);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(mandatory);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(mandatory);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(optional);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(optional);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(optional);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(optional);} return false; - case 11: type = 11; if(v(ref_nested())) { return equal(optional);} return false; - case 12: type = 12; if(v(ref_nested())) { return equal(optional);} return false; - case 13: type = 13; if(v(ref_nested())) { return equal(optional);} return false; - case 14: type = 14; if(v(ref_nested())) { return equal(optional);} return false; - case 15: type = 15; if(v(ref_nested())) { return equal(optional);} return false; - case 16: type = 16; if(v(ref_nested())) { return equal(optional);} return false; - case 17: type = 17; if(v(ref_nested())) { return equal(optional);} return false; - case 18: type = 18; if(v(ref_nested())) { return equal(optional);} return false; - case 19: type = 19; if(v(ref_nested())) { return equal(optional);} return false; - case 20: type = 20; if(v(ref_nested())) { return equal(optional);} return false; - case 21: type = 21; if(v(ref_nested())) { return equal(optional);} return false; - case 22: type = 22; if(v(ref_nested())) { return equal(optional);} return false; - case 23: type = 23; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -HandoverRequest ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{HandoverRequest-IEs}}, - ... -} -*/ - -struct HandoverRequest : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "HandoverRequest";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -HandoverRequestAcknowledge-IEs X2AP-PROTOCOL-IES ::= { - { ID id-Old-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-New-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-E-RABs-Admitted-List CRITICALITY ignore TYPE E-RABs-Admitted-List PRESENCE mandatory}| - { ID id-E-RABs-NotAdmitted-List CRITICALITY ignore TYPE E-RAB-List PRESENCE optional}| - { ID id-TargeteNBtoSource-eNBTransparentContainer CRITICALITY ignore TYPE TargeteNBtoSource-eNBTransparentContainer PRESENCE mandatory}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| - { ID id-UE-ContextKeptIndicator CRITICALITY ignore TYPE UE-ContextKeptIndicator PRESENCE optional}| - { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-Old-eNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-New-eNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-WT-UE-ContextKeptIndicator CRITICALITY ignore TYPE UE-ContextKeptIndicator PRESENCE optional}, - ... -} -*/ - -struct HandoverRequestAcknowledge_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 12; } - void clear() {type = 0;} - void select_id_Old_eNB_UE_X2AP_ID() { set(id_Old_eNB_UE_X2AP_ID); type=1;} - void select_id_New_eNB_UE_X2AP_ID() { set(id_New_eNB_UE_X2AP_ID); type=2;} - void select_id_E_RABs_Admitted_List() { set(id_E_RABs_Admitted_List); type=3;} - void select_id_E_RABs_NotAdmitted_List() { set(id_E_RABs_NotAdmitted_List); type=4;} - void select_id_TargeteNBtoSource_eNBTransparentContainer() { set(id_TargeteNBtoSource_eNBTransparentContainer); type=5;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=6;} - void select_id_UE_ContextKeptIndicator() { set(id_UE_ContextKeptIndicator); type=7;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(id_SeNB_UE_X2AP_ID_Extension); type=8;} - void select_id_Old_eNB_UE_X2AP_ID_Extension() { set(id_Old_eNB_UE_X2AP_ID_Extension); type=9;} - void select_id_New_eNB_UE_X2AP_ID_Extension() { set(id_New_eNB_UE_X2AP_ID_Extension); type=10;} - void select_id_WT_UE_ContextKeptIndicator() { set(id_WT_UE_ContextKeptIndicator); type=11;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_Old_eNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_New_eNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_E_RABs_Admitted_List)) { type = 3; return true; } - else if(equal(id_E_RABs_NotAdmitted_List)) { type = 4; return true; } - else if(equal(id_TargeteNBtoSource_eNBTransparentContainer)) { type = 5; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 6; return true; } - else if(equal(id_UE_ContextKeptIndicator)) { type = 7; return true; } - else if(equal(id_SeNB_UE_X2AP_ID_Extension)) { type = 8; return true; } - else if(equal(id_Old_eNB_UE_X2AP_ID_Extension)) { type = 9; return true; } - else if(equal(id_New_eNB_UE_X2AP_ID_Extension)) { type = 10; return true; } - else if(equal(id_WT_UE_ContextKeptIndicator)) { type = 11; return true; } - else { type = 12; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_Old_eNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_New_eNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_E_RABs_Admitted_List);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_E_RABs_NotAdmitted_List);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_TargeteNBtoSource_eNBTransparentContainer);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(id_UE_ContextKeptIndicator);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(id_SeNB_UE_X2AP_ID_Extension);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(id_Old_eNB_UE_X2AP_ID_Extension);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(id_New_eNB_UE_X2AP_ID_Extension);} return false; - case 11: type = 11; if(v(ref_nested())) { return equal(id_WT_UE_ContextKeptIndicator);} return false; - case 12: type = 12; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 12; } - void clear() {type = 0;} - void select_id_Old_eNB_UE_X2AP_ID() { set(ignore); type=1;} - void select_id_New_eNB_UE_X2AP_ID() { set(ignore); type=2;} - void select_id_E_RABs_Admitted_List() { set(ignore); type=3;} - void select_id_E_RABs_NotAdmitted_List() { set(ignore); type=4;} - void select_id_TargeteNBtoSource_eNBTransparentContainer() { set(ignore); type=5;} - void select_id_CriticalityDiagnostics() { set(ignore); type=6;} - void select_id_UE_ContextKeptIndicator() { set(ignore); type=7;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(ignore); type=8;} - void select_id_Old_eNB_UE_X2AP_ID_Extension() { set(ignore); type=9;} - void select_id_New_eNB_UE_X2AP_ID_Extension() { set(reject); type=10;} - void select_id_WT_UE_ContextKeptIndicator() { set(ignore); type=11;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else if(equal(ignore)) { type = 6; return true; } - else if(equal(ignore)) { type = 7; return true; } - else if(equal(ignore)) { type = 8; return true; } - else if(equal(ignore)) { type = 9; return true; } - else if(equal(reject)) { type = 10; return true; } - else if(equal(ignore)) { type = 11; return true; } - else { type = 12; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(ignore);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(ignore);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(ignore);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(ignore);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(reject);} return false; - case 11: type = 11; if(v(ref_nested())) { return equal(ignore);} return false; - case 12: type = 12; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_Old_eNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_Old_eNB_UE_X2AP_ID() const { return get(1); } - UE_X2AP_ID& select_id_New_eNB_UE_X2AP_ID() { return set(2); } - UE_X2AP_ID const* get_id_New_eNB_UE_X2AP_ID() const { return get(2); } - E_RABs_Admitted_List& select_id_E_RABs_Admitted_List() { return set(3); } - E_RABs_Admitted_List const* get_id_E_RABs_Admitted_List() const { return get(3); } - E_RAB_List& select_id_E_RABs_NotAdmitted_List() { return set(4); } - E_RAB_List const* get_id_E_RABs_NotAdmitted_List() const { return get(4); } - TargeteNBtoSource_eNBTransparentContainer& select_id_TargeteNBtoSource_eNBTransparentContainer() { return set(5); } - TargeteNBtoSource_eNBTransparentContainer const* get_id_TargeteNBtoSource_eNBTransparentContainer() const { return get(5); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(6); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(6); } - UE_ContextKeptIndicator& select_id_UE_ContextKeptIndicator() { return set(7); } - UE_ContextKeptIndicator const* get_id_UE_ContextKeptIndicator() const { return get(7); } - UE_X2AP_ID_Extension& select_id_SeNB_UE_X2AP_ID_Extension() { return set(8); } - UE_X2AP_ID_Extension const* get_id_SeNB_UE_X2AP_ID_Extension() const { return get(8); } - UE_X2AP_ID_Extension& select_id_Old_eNB_UE_X2AP_ID_Extension() { return set(9); } - UE_X2AP_ID_Extension const* get_id_Old_eNB_UE_X2AP_ID_Extension() const { return get(9); } - UE_X2AP_ID_Extension& select_id_New_eNB_UE_X2AP_ID_Extension() { return set(10); } - UE_X2AP_ID_Extension const* get_id_New_eNB_UE_X2AP_ID_Extension() const { return get(10); } - UE_ContextKeptIndicator& select_id_WT_UE_ContextKeptIndicator() { return set(11); } - UE_ContextKeptIndicator const* get_id_WT_UE_ContextKeptIndicator() const { return get(11); } - bool is_unknown() const { return type == 12; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - case 7: var.destroy(); break; - case 8: var.destroy(); break; - case 9: var.destroy(); break; - case 10: var.destroy(); break; - case 11: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - v.template operator()(7); - v.template operator()(8); - v.template operator()(9); - v.template operator()(10); - v.template operator()(11); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_Old_eNB_UE_X2AP_ID()); return true; - case 2: v(select_id_New_eNB_UE_X2AP_ID()); return true; - case 3: v(select_id_E_RABs_Admitted_List()); return true; - case 4: v(select_id_E_RABs_NotAdmitted_List()); return true; - case 5: v(select_id_TargeteNBtoSource_eNBTransparentContainer()); return true; - case 6: v(select_id_CriticalityDiagnostics()); return true; - case 7: v(select_id_UE_ContextKeptIndicator()); return true; - case 8: v(select_id_SeNB_UE_X2AP_ID_Extension()); return true; - case 9: v(select_id_Old_eNB_UE_X2AP_ID_Extension()); return true; - case 10: v(select_id_New_eNB_UE_X2AP_ID_Extension()); return true; - case 11: v(select_id_WT_UE_ContextKeptIndicator()); return true; - case 12: if(type != 12) {clear(); asn::base::set();} type = 12; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - case 7: v(var.as()); return true; - case 8: v(var.as()); return true; - case 9: v(var.as()); return true; - case 10: v(var.as()); return true; - case 11: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CriticalityDiagnostics)]; - char dummy2[sizeof(E_RAB_List)]; - char dummy3[sizeof(E_RABs_Admitted_List)]; - char dummy4[sizeof(TargeteNBtoSource_eNBTransparentContainer)]; - char dummy5[sizeof(UE_ContextKeptIndicator)]; - char dummy6[sizeof(UE_X2AP_ID)]; - char dummy7[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 12; } - void clear() {type = 0;} - void select_id_Old_eNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_New_eNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_E_RABs_Admitted_List() { set(mandatory); type=3;} - void select_id_E_RABs_NotAdmitted_List() { set(optional); type=4;} - void select_id_TargeteNBtoSource_eNBTransparentContainer() { set(mandatory); type=5;} - void select_id_CriticalityDiagnostics() { set(optional); type=6;} - void select_id_UE_ContextKeptIndicator() { set(optional); type=7;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(optional); type=8;} - void select_id_Old_eNB_UE_X2AP_ID_Extension() { set(optional); type=9;} - void select_id_New_eNB_UE_X2AP_ID_Extension() { set(optional); type=10;} - void select_id_WT_UE_ContextKeptIndicator() { set(optional); type=11;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(mandatory)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else if(equal(optional)) { type = 7; return true; } - else if(equal(optional)) { type = 8; return true; } - else if(equal(optional)) { type = 9; return true; } - else if(equal(optional)) { type = 10; return true; } - else if(equal(optional)) { type = 11; return true; } - else { type = 12; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(mandatory);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(optional);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(optional);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(optional);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(optional);} return false; - case 11: type = 11; if(v(ref_nested())) { return equal(optional);} return false; - case 12: type = 12; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -HandoverRequestAcknowledge ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{HandoverRequestAcknowledge-IEs}}, - ... -} -*/ - -struct HandoverRequestAcknowledge : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "HandoverRequestAcknowledge";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -LoadInformation-IEs X2AP-PROTOCOL-IES ::= { - { ID id-CellInformation CRITICALITY ignore TYPE CellInformation-List PRESENCE mandatory} , - ... -} -*/ - -struct LoadInformation_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_CellInformation() { set(id_CellInformation); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_CellInformation)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_CellInformation);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_CellInformation() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - CellInformation_List& select_id_CellInformation() { return set(1); } - CellInformation_List const* get_id_CellInformation() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_CellInformation()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CellInformation_List)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_CellInformation() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -LoadInformation ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{LoadInformation-IEs}}, - ... -} -*/ - -struct LoadInformation : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "LoadInformation";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -MeasurementInitiationResult-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct MeasurementInitiationResult_Item_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -MeasurementInitiationResult-Item ::= SEQUENCE { - cell-ID ECGI, - measurementFailureCause-List MeasurementFailureCause-List OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {MeasurementInitiationResult-Item-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct MeasurementInitiationResult_Item : asn::sequence<3, 0, true, 2> -{ - static constexpr const char* name() {return "MeasurementInitiationResult-Item";} - using parent_t = asn::sequence<3, 0, true, 2>; - struct cell_ID_t : ECGI - { - static constexpr const char* name() {return "cell_ID_t";} - using parent_t = ECGI; - - }; - cell_ID_t& ref_cell_ID() {return cell_ID;} - cell_ID_t const& ref_cell_ID() const {return cell_ID;} - struct measurementFailureCause_List_t : MeasurementFailureCause_List - { - static constexpr const char* name() {return "measurementFailureCause_List_t";} - using parent_t = MeasurementFailureCause_List; - static constexpr bool optional = true; - - }; - measurementFailureCause_List_t& set_measurementFailureCause_List() { measurementFailureCause_List.setpresent(true); return measurementFailureCause_List;} - measurementFailureCause_List_t const* get_measurementFailureCause_List() const {return measurementFailureCause_List.is_valid() ? &measurementFailureCause_List : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(cell_ID); - v(measurementFailureCause_List); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(cell_ID); - v(measurementFailureCause_List); - v(iE_Extensions); - - }; - void clear() - { - cell_ID.clear(); - measurementFailureCause_List.clear(); - iE_Extensions.clear(); - - }; - private: - cell_ID_t cell_ID; - measurementFailureCause_List_t measurementFailureCause_List; - iE_Extensions_t iE_Extensions; - -}; -/* -MeasurementInitiationResult-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-MeasurementInitiationResult-Item CRITICALITY ignore TYPE MeasurementInitiationResult-Item PRESENCE mandatory} -} -*/ - -struct MeasurementInitiationResult_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_MeasurementInitiationResult_Item() { set(id_MeasurementInitiationResult_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeasurementInitiationResult_Item)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeasurementInitiationResult_Item);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_MeasurementInitiationResult_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - MeasurementInitiationResult_Item& select_id_MeasurementInitiationResult_Item() { return set(1); } - MeasurementInitiationResult_Item const* get_id_MeasurementInitiationResult_Item() const { return get(1); } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeasurementInitiationResult_Item()); return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(MeasurementInitiationResult_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_MeasurementInitiationResult_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -MeasurementInitiationResult-List ::= SEQUENCE (SIZE (1..maxCellineNB)) OF ProtocolIE-Single-Container { {MeasurementInitiationResult-ItemIEs} } -*/ - -struct MeasurementInitiationResult_List_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "MeasurementInitiationResult_List_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct MeasurementInitiationResult_List : asn::sequenceof -{ - static constexpr const char* name() {return "MeasurementInitiationResult-List";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -MobilityChangeAcknowledge-IEs X2AP-PROTOCOL-IES ::= { - { ID id-ENB1-Cell-ID CRITICALITY reject TYPE ECGI PRESENCE mandatory}| - { ID id-ENB2-Cell-ID CRITICALITY reject TYPE ECGI PRESENCE mandatory}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, - ... -} -*/ - -struct MobilityChangeAcknowledge_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_ENB1_Cell_ID() { set(id_ENB1_Cell_ID); type=1;} - void select_id_ENB2_Cell_ID() { set(id_ENB2_Cell_ID); type=2;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=3;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_ENB1_Cell_ID)) { type = 1; return true; } - else if(equal(id_ENB2_Cell_ID)) { type = 2; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_ENB1_Cell_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_ENB2_Cell_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_ENB1_Cell_ID() { set(reject); type=1;} - void select_id_ENB2_Cell_ID() { set(reject); type=2;} - void select_id_CriticalityDiagnostics() { set(ignore); type=3;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - ECGI& select_id_ENB1_Cell_ID() { return set(1); } - ECGI const* get_id_ENB1_Cell_ID() const { return get(1); } - ECGI& select_id_ENB2_Cell_ID() { return set(2); } - ECGI const* get_id_ENB2_Cell_ID() const { return get(2); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(3); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(3); } - bool is_unknown() const { return type == 4; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_ENB1_Cell_ID()); return true; - case 2: v(select_id_ENB2_Cell_ID()); return true; - case 3: v(select_id_CriticalityDiagnostics()); return true; - case 4: if(type != 4) {clear(); asn::base::set();} type = 4; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CriticalityDiagnostics)]; - char dummy2[sizeof(ECGI)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_ENB1_Cell_ID() { set(mandatory); type=1;} - void select_id_ENB2_Cell_ID() { set(mandatory); type=2;} - void select_id_CriticalityDiagnostics() { set(optional); type=3;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -MobilityChangeAcknowledge ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{MobilityChangeAcknowledge-IEs}}, - ... -} -*/ - -struct MobilityChangeAcknowledge : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "MobilityChangeAcknowledge";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -MobilityChangeFailure-IEs X2AP-PROTOCOL-IES ::= { - { ID id-ENB1-Cell-ID CRITICALITY ignore TYPE ECGI PRESENCE mandatory}| - { ID id-ENB2-Cell-ID CRITICALITY ignore TYPE ECGI PRESENCE mandatory}| - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| - { ID id-ENB2-Mobility-Parameters-Modification-Range CRITICALITY ignore TYPE MobilityParametersModificationRange PRESENCE optional}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, - ... -} -*/ - -struct MobilityChangeFailure_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_ENB1_Cell_ID() { set(id_ENB1_Cell_ID); type=1;} - void select_id_ENB2_Cell_ID() { set(id_ENB2_Cell_ID); type=2;} - void select_id_Cause() { set(id_Cause); type=3;} - void select_id_ENB2_Mobility_Parameters_Modification_Range() { set(id_ENB2_Mobility_Parameters_Modification_Range); type=4;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=5;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_ENB1_Cell_ID)) { type = 1; return true; } - else if(equal(id_ENB2_Cell_ID)) { type = 2; return true; } - else if(equal(id_Cause)) { type = 3; return true; } - else if(equal(id_ENB2_Mobility_Parameters_Modification_Range)) { type = 4; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_ENB1_Cell_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_ENB2_Cell_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_ENB2_Mobility_Parameters_Modification_Range);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_ENB1_Cell_ID() { set(ignore); type=1;} - void select_id_ENB2_Cell_ID() { set(ignore); type=2;} - void select_id_Cause() { set(ignore); type=3;} - void select_id_ENB2_Mobility_Parameters_Modification_Range() { set(ignore); type=4;} - void select_id_CriticalityDiagnostics() { set(ignore); type=5;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - ECGI& select_id_ENB1_Cell_ID() { return set(1); } - ECGI const* get_id_ENB1_Cell_ID() const { return get(1); } - ECGI& select_id_ENB2_Cell_ID() { return set(2); } - ECGI const* get_id_ENB2_Cell_ID() const { return get(2); } - Cause& select_id_Cause() { return set(3); } - Cause const* get_id_Cause() const { return get(3); } - MobilityParametersModificationRange& select_id_ENB2_Mobility_Parameters_Modification_Range() { return set(4); } - MobilityParametersModificationRange const* get_id_ENB2_Mobility_Parameters_Modification_Range() const { return get(4); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(5); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(5); } - bool is_unknown() const { return type == 6; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_ENB1_Cell_ID()); return true; - case 2: v(select_id_ENB2_Cell_ID()); return true; - case 3: v(select_id_Cause()); return true; - case 4: v(select_id_ENB2_Mobility_Parameters_Modification_Range()); return true; - case 5: v(select_id_CriticalityDiagnostics()); return true; - case 6: if(type != 6) {clear(); asn::base::set();} type = 6; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(CriticalityDiagnostics)]; - char dummy3[sizeof(ECGI)]; - char dummy4[sizeof(MobilityParametersModificationRange)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_ENB1_Cell_ID() { set(mandatory); type=1;} - void select_id_ENB2_Cell_ID() { set(mandatory); type=2;} - void select_id_Cause() { set(mandatory); type=3;} - void select_id_ENB2_Mobility_Parameters_Modification_Range() { set(optional); type=4;} - void select_id_CriticalityDiagnostics() { set(optional); type=5;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -MobilityChangeFailure ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{MobilityChangeFailure-IEs}}, - ... -} -*/ - -struct MobilityChangeFailure : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "MobilityChangeFailure";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -MobilityChangeRequest-IEs X2AP-PROTOCOL-IES ::= { - { ID id-ENB1-Cell-ID CRITICALITY reject TYPE ECGI PRESENCE mandatory}| - { ID id-ENB2-Cell-ID CRITICALITY reject TYPE ECGI PRESENCE mandatory}| - { ID id-ENB1-Mobility-Parameters CRITICALITY ignore TYPE MobilityParametersInformation PRESENCE optional}| - { ID id-ENB2-Proposed-Mobility-Parameters CRITICALITY reject TYPE MobilityParametersInformation PRESENCE mandatory}| - { ID id-Cause CRITICALITY reject TYPE Cause PRESENCE mandatory}, - ... -} -*/ - -struct MobilityChangeRequest_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_ENB1_Cell_ID() { set(id_ENB1_Cell_ID); type=1;} - void select_id_ENB2_Cell_ID() { set(id_ENB2_Cell_ID); type=2;} - void select_id_ENB1_Mobility_Parameters() { set(id_ENB1_Mobility_Parameters); type=3;} - void select_id_ENB2_Proposed_Mobility_Parameters() { set(id_ENB2_Proposed_Mobility_Parameters); type=4;} - void select_id_Cause() { set(id_Cause); type=5;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_ENB1_Cell_ID)) { type = 1; return true; } - else if(equal(id_ENB2_Cell_ID)) { type = 2; return true; } - else if(equal(id_ENB1_Mobility_Parameters)) { type = 3; return true; } - else if(equal(id_ENB2_Proposed_Mobility_Parameters)) { type = 4; return true; } - else if(equal(id_Cause)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_ENB1_Cell_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_ENB2_Cell_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_ENB1_Mobility_Parameters);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_ENB2_Proposed_Mobility_Parameters);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_ENB1_Cell_ID() { set(reject); type=1;} - void select_id_ENB2_Cell_ID() { set(reject); type=2;} - void select_id_ENB1_Mobility_Parameters() { set(ignore); type=3;} - void select_id_ENB2_Proposed_Mobility_Parameters() { set(reject); type=4;} - void select_id_Cause() { set(reject); type=5;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(reject)) { type = 4; return true; } - else if(equal(reject)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(reject);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(reject);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - ECGI& select_id_ENB1_Cell_ID() { return set(1); } - ECGI const* get_id_ENB1_Cell_ID() const { return get(1); } - ECGI& select_id_ENB2_Cell_ID() { return set(2); } - ECGI const* get_id_ENB2_Cell_ID() const { return get(2); } - MobilityParametersInformation& select_id_ENB1_Mobility_Parameters() { return set(3); } - MobilityParametersInformation const* get_id_ENB1_Mobility_Parameters() const { return get(3); } - MobilityParametersInformation& select_id_ENB2_Proposed_Mobility_Parameters() { return set(4); } - MobilityParametersInformation const* get_id_ENB2_Proposed_Mobility_Parameters() const { return get(4); } - Cause& select_id_Cause() { return set(5); } - Cause const* get_id_Cause() const { return get(5); } - bool is_unknown() const { return type == 6; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_ENB1_Cell_ID()); return true; - case 2: v(select_id_ENB2_Cell_ID()); return true; - case 3: v(select_id_ENB1_Mobility_Parameters()); return true; - case 4: v(select_id_ENB2_Proposed_Mobility_Parameters()); return true; - case 5: v(select_id_Cause()); return true; - case 6: if(type != 6) {clear(); asn::base::set();} type = 6; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(ECGI)]; - char dummy3[sizeof(MobilityParametersInformation)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_ENB1_Cell_ID() { set(mandatory); type=1;} - void select_id_ENB2_Cell_ID() { set(mandatory); type=2;} - void select_id_ENB1_Mobility_Parameters() { set(optional); type=3;} - void select_id_ENB2_Proposed_Mobility_Parameters() { set(mandatory); type=4;} - void select_id_Cause() { set(mandatory); type=5;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else if(equal(mandatory)) { type = 4; return true; } - else if(equal(mandatory)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(mandatory);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(mandatory);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -MobilityChangeRequest ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{MobilityChangeRequest-IEs}}, - ... -} -*/ - -struct MobilityChangeRequest : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "MobilityChangeRequest";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -PartialSuccessIndicator ::= ENUMERATED { - partial-success-allowed, -... -} -*/ - -struct PartialSuccessIndicator : asn::enumerated<1, 0, true> -{ - static constexpr const char* name() {return "PartialSuccessIndicator";} - using parent_t = asn::enumerated<1, 0, true>; - typedef enum { - partial_success_allowed - } index_t; - -}; - -/* -PrivateMessage-IEs X2AP-PRIVATE-IES ::= { - ... -} -*/ - -struct PrivateMessage_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PRIVATE_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PRIVATE_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PRIVATE_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -PrivateMessage ::= SEQUENCE { - privateIEs PrivateIE-Container {{PrivateMessage-IEs}}, - ... -} -*/ - -struct PrivateMessage : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "PrivateMessage";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct privateIEs_t : PrivateIE_Container - { - static constexpr const char* name() {return "privateIEs_t";} - using parent_t = PrivateIE_Container; - - }; - privateIEs_t& ref_privateIEs() {return privateIEs;} - privateIEs_t const& ref_privateIEs() const {return privateIEs;} - template void decode(V& v) - { - v(privateIEs); - - }; - template void encode(V& v) const - { - v(privateIEs); - - }; - void clear() - { - privateIEs.clear(); - - }; - private: - privateIEs_t privateIEs; - -}; -/* -RLFIndication-IEs X2AP-PROTOCOL-IES ::= { - { ID id-FailureCellPCI CRITICALITY ignore TYPE PCI PRESENCE mandatory}| - { ID id-Re-establishmentCellECGI CRITICALITY ignore TYPE ECGI PRESENCE mandatory}| - { ID id-FailureCellCRNTI CRITICALITY ignore TYPE CRNTI PRESENCE mandatory}| - { ID id-ShortMAC-I CRITICALITY ignore TYPE ShortMAC-I PRESENCE optional}| - { ID id-UE-RLF-Report-Container CRITICALITY ignore TYPE UE-RLF-Report-Container PRESENCE optional}| - { ID id-RRCConnSetupIndicator CRITICALITY reject TYPE RRCConnSetupIndicator PRESENCE optional}| - { ID id-RRCConnReestabIndicator CRITICALITY ignore TYPE RRCConnReestabIndicator PRESENCE optional}| - { ID id-UE-RLF-Report-Container-for-extended-bands CRITICALITY ignore TYPE UE-RLF-Report-Container-for-extended-bands PRESENCE optional}, - ... -} -*/ - -struct RLFIndication_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 9; } - void clear() {type = 0;} - void select_id_FailureCellPCI() { set(id_FailureCellPCI); type=1;} - void select_id_Re_establishmentCellECGI() { set(id_Re_establishmentCellECGI); type=2;} - void select_id_FailureCellCRNTI() { set(id_FailureCellCRNTI); type=3;} - void select_id_ShortMAC_I() { set(id_ShortMAC_I); type=4;} - void select_id_UE_RLF_Report_Container() { set(id_UE_RLF_Report_Container); type=5;} - void select_id_RRCConnSetupIndicator() { set(id_RRCConnSetupIndicator); type=6;} - void select_id_RRCConnReestabIndicator() { set(id_RRCConnReestabIndicator); type=7;} - void select_id_UE_RLF_Report_Container_for_extended_bands() { set(id_UE_RLF_Report_Container_for_extended_bands); type=8;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_FailureCellPCI)) { type = 1; return true; } - else if(equal(id_Re_establishmentCellECGI)) { type = 2; return true; } - else if(equal(id_FailureCellCRNTI)) { type = 3; return true; } - else if(equal(id_ShortMAC_I)) { type = 4; return true; } - else if(equal(id_UE_RLF_Report_Container)) { type = 5; return true; } - else if(equal(id_RRCConnSetupIndicator)) { type = 6; return true; } - else if(equal(id_RRCConnReestabIndicator)) { type = 7; return true; } - else if(equal(id_UE_RLF_Report_Container_for_extended_bands)) { type = 8; return true; } - else { type = 9; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_FailureCellPCI);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_Re_establishmentCellECGI);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_FailureCellCRNTI);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_ShortMAC_I);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_UE_RLF_Report_Container);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_RRCConnSetupIndicator);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(id_RRCConnReestabIndicator);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(id_UE_RLF_Report_Container_for_extended_bands);} return false; - case 9: type = 9; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 9; } - void clear() {type = 0;} - void select_id_FailureCellPCI() { set(ignore); type=1;} - void select_id_Re_establishmentCellECGI() { set(ignore); type=2;} - void select_id_FailureCellCRNTI() { set(ignore); type=3;} - void select_id_ShortMAC_I() { set(ignore); type=4;} - void select_id_UE_RLF_Report_Container() { set(ignore); type=5;} - void select_id_RRCConnSetupIndicator() { set(reject); type=6;} - void select_id_RRCConnReestabIndicator() { set(ignore); type=7;} - void select_id_UE_RLF_Report_Container_for_extended_bands() { set(ignore); type=8;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else if(equal(reject)) { type = 6; return true; } - else if(equal(ignore)) { type = 7; return true; } - else if(equal(ignore)) { type = 8; return true; } - else { type = 9; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(reject);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(ignore);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(ignore);} return false; - case 9: type = 9; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - PCI& select_id_FailureCellPCI() { return set(1); } - PCI const* get_id_FailureCellPCI() const { return get(1); } - ECGI& select_id_Re_establishmentCellECGI() { return set(2); } - ECGI const* get_id_Re_establishmentCellECGI() const { return get(2); } - CRNTI& select_id_FailureCellCRNTI() { return set(3); } - CRNTI const* get_id_FailureCellCRNTI() const { return get(3); } - ShortMAC_I& select_id_ShortMAC_I() { return set(4); } - ShortMAC_I const* get_id_ShortMAC_I() const { return get(4); } - UE_RLF_Report_Container& select_id_UE_RLF_Report_Container() { return set(5); } - UE_RLF_Report_Container const* get_id_UE_RLF_Report_Container() const { return get(5); } - RRCConnSetupIndicator& select_id_RRCConnSetupIndicator() { return set(6); } - RRCConnSetupIndicator const* get_id_RRCConnSetupIndicator() const { return get(6); } - RRCConnReestabIndicator& select_id_RRCConnReestabIndicator() { return set(7); } - RRCConnReestabIndicator const* get_id_RRCConnReestabIndicator() const { return get(7); } - UE_RLF_Report_Container_for_extended_bands& select_id_UE_RLF_Report_Container_for_extended_bands() { return set(8); } - UE_RLF_Report_Container_for_extended_bands const* get_id_UE_RLF_Report_Container_for_extended_bands() const { return get(8); } - bool is_unknown() const { return type == 9; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - case 7: var.destroy(); break; - case 8: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - v.template operator()(7); - v.template operator()(8); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_FailureCellPCI()); return true; - case 2: v(select_id_Re_establishmentCellECGI()); return true; - case 3: v(select_id_FailureCellCRNTI()); return true; - case 4: v(select_id_ShortMAC_I()); return true; - case 5: v(select_id_UE_RLF_Report_Container()); return true; - case 6: v(select_id_RRCConnSetupIndicator()); return true; - case 7: v(select_id_RRCConnReestabIndicator()); return true; - case 8: v(select_id_UE_RLF_Report_Container_for_extended_bands()); return true; - case 9: if(type != 9) {clear(); asn::base::set();} type = 9; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - case 7: v(var.as()); return true; - case 8: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CRNTI)]; - char dummy2[sizeof(ECGI)]; - char dummy3[sizeof(PCI)]; - char dummy4[sizeof(RRCConnReestabIndicator)]; - char dummy5[sizeof(RRCConnSetupIndicator)]; - char dummy6[sizeof(ShortMAC_I)]; - char dummy7[sizeof(UE_RLF_Report_Container)]; - char dummy8[sizeof(UE_RLF_Report_Container_for_extended_bands)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 9; } - void clear() {type = 0;} - void select_id_FailureCellPCI() { set(mandatory); type=1;} - void select_id_Re_establishmentCellECGI() { set(mandatory); type=2;} - void select_id_FailureCellCRNTI() { set(mandatory); type=3;} - void select_id_ShortMAC_I() { set(optional); type=4;} - void select_id_UE_RLF_Report_Container() { set(optional); type=5;} - void select_id_RRCConnSetupIndicator() { set(optional); type=6;} - void select_id_RRCConnReestabIndicator() { set(optional); type=7;} - void select_id_UE_RLF_Report_Container_for_extended_bands() { set(optional); type=8;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else if(equal(optional)) { type = 7; return true; } - else if(equal(optional)) { type = 8; return true; } - else { type = 9; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(optional);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(optional);} return false; - case 9: type = 9; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RLFIndication ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{RLFIndication-IEs}}, - ... -} -*/ - -struct RLFIndication : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "RLFIndication";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -RNL-Header-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct RNL_Header_Item_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RNL-Header ::= SEQUENCE { - source-GlobalENB-ID GlobalENB-ID, - target-GlobalENB-ID GlobalENB-ID OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {RNL-Header-Item-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct RNL_Header : asn::sequence<3, 0, true, 2> -{ - static constexpr const char* name() {return "RNL-Header";} - using parent_t = asn::sequence<3, 0, true, 2>; - struct source_GlobalENB_ID_t : GlobalENB_ID - { - static constexpr const char* name() {return "source_GlobalENB_ID_t";} - using parent_t = GlobalENB_ID; - - }; - source_GlobalENB_ID_t& ref_source_GlobalENB_ID() {return source_GlobalENB_ID;} - source_GlobalENB_ID_t const& ref_source_GlobalENB_ID() const {return source_GlobalENB_ID;} - struct target_GlobalENB_ID_t : GlobalENB_ID - { - static constexpr const char* name() {return "target_GlobalENB_ID_t";} - using parent_t = GlobalENB_ID; - static constexpr bool optional = true; - - }; - target_GlobalENB_ID_t& set_target_GlobalENB_ID() { target_GlobalENB_ID.setpresent(true); return target_GlobalENB_ID;} - target_GlobalENB_ID_t const* get_target_GlobalENB_ID() const {return target_GlobalENB_ID.is_valid() ? &target_GlobalENB_ID : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(source_GlobalENB_ID); - v(target_GlobalENB_ID); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(source_GlobalENB_ID); - v(target_GlobalENB_ID); - v(iE_Extensions); - - }; - void clear() - { - source_GlobalENB_ID.clear(); - target_GlobalENB_ID.clear(); - iE_Extensions.clear(); - - }; - private: - source_GlobalENB_ID_t source_GlobalENB_ID; - target_GlobalENB_ID_t target_GlobalENB_ID; - iE_Extensions_t iE_Extensions; - -}; -/* -RRCTransfer-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SgNB-UE-X2AP-ID CRITICALITY reject TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}| - { ID id-SplitSRB CRITICALITY reject TYPE SplitSRB PRESENCE optional}| - { ID id-UENRMeasurement CRITICALITY reject TYPE UENRMeasurement PRESENCE optional}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}, - ... -} -*/ - -struct RRCTransfer_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(id_SgNB_UE_X2AP_ID); type=2;} - void select_id_SplitSRB() { set(id_SplitSRB); type=3;} - void select_id_UENRMeasurement() { set(id_UENRMeasurement); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=5;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SgNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_SplitSRB)) { type = 3; return true; } - else if(equal(id_UENRMeasurement)) { type = 4; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SgNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_SplitSRB);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_UENRMeasurement);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(reject); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(reject); type=2;} - void select_id_SplitSRB() { set(reject); type=3;} - void select_id_UENRMeasurement() { set(reject); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(reject); type=5;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(reject)) { type = 3; return true; } - else if(equal(reject)) { type = 4; return true; } - else if(equal(reject)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(reject);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(reject);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(reject);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - SgNB_UE_X2AP_ID& select_id_SgNB_UE_X2AP_ID() { return set(2); } - SgNB_UE_X2AP_ID const* get_id_SgNB_UE_X2AP_ID() const { return get(2); } - SplitSRB& select_id_SplitSRB() { return set(3); } - SplitSRB const* get_id_SplitSRB() const { return get(3); } - UENRMeasurement& select_id_UENRMeasurement() { return set(4); } - UENRMeasurement const* get_id_UENRMeasurement() const { return get(4); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(5); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(5); } - bool is_unknown() const { return type == 6; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SgNB_UE_X2AP_ID()); return true; - case 3: v(select_id_SplitSRB()); return true; - case 4: v(select_id_UENRMeasurement()); return true; - case 5: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 6: if(type != 6) {clear(); asn::base::set();} type = 6; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(SgNB_UE_X2AP_ID)]; - char dummy2[sizeof(SplitSRB)]; - char dummy3[sizeof(UENRMeasurement)]; - char dummy4[sizeof(UE_X2AP_ID)]; - char dummy5[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_SplitSRB() { set(optional); type=3;} - void select_id_UENRMeasurement() { set(optional); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=5;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RRCTransfer ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{RRCTransfer-IEs}}, - ... -} -*/ - -struct RRCTransfer : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "RRCTransfer";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -ReportingPeriodicity ::= ENUMERATED { - one-thousand-ms, - two-thousand-ms, - five-thousand-ms, - ten-thousand-ms, -... -} -*/ - -struct ReportingPeriodicity : asn::enumerated<4, 0, true> -{ - static constexpr const char* name() {return "ReportingPeriodicity";} - using parent_t = asn::enumerated<4, 0, true>; - typedef enum { - one_thousand_ms - ,two_thousand_ms - ,five_thousand_ms - ,ten_thousand_ms - } index_t; - -}; - -/* -ResetRequest-IEs X2AP-PROTOCOL-IES ::= { - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}, - ... -} -*/ - -struct ResetRequest_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_Cause() { set(id_Cause); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_Cause)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_Cause() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - Cause& select_id_Cause() { return set(1); } - Cause const* get_id_Cause() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_Cause()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_Cause() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ResetRequest ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ResetRequest-IEs}}, - ... -} -*/ - -struct ResetRequest : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "ResetRequest";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -ResetResponse-IEs X2AP-PROTOCOL-IES ::= { - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, - ... -} -*/ - -struct ResetResponse_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_CriticalityDiagnostics)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_CriticalityDiagnostics() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(1); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_CriticalityDiagnostics()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CriticalityDiagnostics)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_CriticalityDiagnostics() { set(optional); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ResetResponse ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ResetResponse-IEs}}, - ... -} -*/ - -struct ResetResponse : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "ResetResponse";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -ResourceStatusFailure-IEs X2AP-PROTOCOL-IES ::= { - { ID id-ENB1-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| - { ID id-ENB2-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| - { ID id-CompleteFailureCauseInformation-List CRITICALITY ignore TYPE CompleteFailureCauseInformation-List PRESENCE optional}, - ... -} -*/ - -struct ResourceStatusFailure_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_ENB1_Measurement_ID() { set(id_ENB1_Measurement_ID); type=1;} - void select_id_ENB2_Measurement_ID() { set(id_ENB2_Measurement_ID); type=2;} - void select_id_Cause() { set(id_Cause); type=3;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=4;} - void select_id_CompleteFailureCauseInformation_List() { set(id_CompleteFailureCauseInformation_List); type=5;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_ENB1_Measurement_ID)) { type = 1; return true; } - else if(equal(id_ENB2_Measurement_ID)) { type = 2; return true; } - else if(equal(id_Cause)) { type = 3; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 4; return true; } - else if(equal(id_CompleteFailureCauseInformation_List)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_ENB1_Measurement_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_ENB2_Measurement_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_CompleteFailureCauseInformation_List);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_ENB1_Measurement_ID() { set(reject); type=1;} - void select_id_ENB2_Measurement_ID() { set(reject); type=2;} - void select_id_Cause() { set(ignore); type=3;} - void select_id_CriticalityDiagnostics() { set(ignore); type=4;} - void select_id_CompleteFailureCauseInformation_List() { set(ignore); type=5;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - Measurement_ID& select_id_ENB1_Measurement_ID() { return set(1); } - Measurement_ID const* get_id_ENB1_Measurement_ID() const { return get(1); } - Measurement_ID& select_id_ENB2_Measurement_ID() { return set(2); } - Measurement_ID const* get_id_ENB2_Measurement_ID() const { return get(2); } - Cause& select_id_Cause() { return set(3); } - Cause const* get_id_Cause() const { return get(3); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(4); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(4); } - CompleteFailureCauseInformation_List& select_id_CompleteFailureCauseInformation_List() { return set(5); } - CompleteFailureCauseInformation_List const* get_id_CompleteFailureCauseInformation_List() const { return get(5); } - bool is_unknown() const { return type == 6; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_ENB1_Measurement_ID()); return true; - case 2: v(select_id_ENB2_Measurement_ID()); return true; - case 3: v(select_id_Cause()); return true; - case 4: v(select_id_CriticalityDiagnostics()); return true; - case 5: v(select_id_CompleteFailureCauseInformation_List()); return true; - case 6: if(type != 6) {clear(); asn::base::set();} type = 6; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(CompleteFailureCauseInformation_List)]; - char dummy3[sizeof(CriticalityDiagnostics)]; - char dummy4[sizeof(Measurement_ID)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_ENB1_Measurement_ID() { set(mandatory); type=1;} - void select_id_ENB2_Measurement_ID() { set(mandatory); type=2;} - void select_id_Cause() { set(mandatory); type=3;} - void select_id_CriticalityDiagnostics() { set(optional); type=4;} - void select_id_CompleteFailureCauseInformation_List() { set(optional); type=5;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ResourceStatusFailure ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ResourceStatusFailure-IEs}}, - ... -} -*/ - -struct ResourceStatusFailure : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "ResourceStatusFailure";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -ResourceStatusRequest-IEs X2AP-PROTOCOL-IES ::= { - { ID id-ENB1-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| - { ID id-ENB2-Measurement-ID CRITICALITY ignore TYPE Measurement-ID PRESENCE conditional}|-- The IE shall be present if the Registration Request IE is set to “Stop”, “Partial stop” or to “Add”-- - { ID id-Registration-Request CRITICALITY reject TYPE Registration-Request PRESENCE mandatory}| - { ID id-ReportCharacteristics CRITICALITY reject TYPE ReportCharacteristics PRESENCE optional}| - { ID id-CellToReport CRITICALITY ignore TYPE CellToReport-List PRESENCE mandatory}| - { ID id-ReportingPeriodicity CRITICALITY ignore TYPE ReportingPeriodicity PRESENCE optional}| - { ID id-PartialSuccessIndicator CRITICALITY ignore TYPE PartialSuccessIndicator PRESENCE optional}| - { ID id-ReportingPeriodicityRSRPMR CRITICALITY ignore TYPE ReportingPeriodicityRSRPMR PRESENCE optional}| - { ID id-ReportingPeriodicityCSIR CRITICALITY ignore TYPE ReportingPeriodicityCSIR PRESENCE optional}, - ... -} -*/ - -struct ResourceStatusRequest_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 10; } - void clear() {type = 0;} - void select_id_ENB1_Measurement_ID() { set(id_ENB1_Measurement_ID); type=1;} - void select_id_ENB2_Measurement_ID() { set(id_ENB2_Measurement_ID); type=2;} - void select_id_Registration_Request() { set(id_Registration_Request); type=3;} - void select_id_ReportCharacteristics() { set(id_ReportCharacteristics); type=4;} - void select_id_CellToReport() { set(id_CellToReport); type=5;} - void select_id_ReportingPeriodicity() { set(id_ReportingPeriodicity); type=6;} - void select_id_PartialSuccessIndicator() { set(id_PartialSuccessIndicator); type=7;} - void select_id_ReportingPeriodicityRSRPMR() { set(id_ReportingPeriodicityRSRPMR); type=8;} - void select_id_ReportingPeriodicityCSIR() { set(id_ReportingPeriodicityCSIR); type=9;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_ENB1_Measurement_ID)) { type = 1; return true; } - else if(equal(id_ENB2_Measurement_ID)) { type = 2; return true; } - else if(equal(id_Registration_Request)) { type = 3; return true; } - else if(equal(id_ReportCharacteristics)) { type = 4; return true; } - else if(equal(id_CellToReport)) { type = 5; return true; } - else if(equal(id_ReportingPeriodicity)) { type = 6; return true; } - else if(equal(id_PartialSuccessIndicator)) { type = 7; return true; } - else if(equal(id_ReportingPeriodicityRSRPMR)) { type = 8; return true; } - else if(equal(id_ReportingPeriodicityCSIR)) { type = 9; return true; } - else { type = 10; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_ENB1_Measurement_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_ENB2_Measurement_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_Registration_Request);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_ReportCharacteristics);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_CellToReport);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_ReportingPeriodicity);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(id_PartialSuccessIndicator);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(id_ReportingPeriodicityRSRPMR);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(id_ReportingPeriodicityCSIR);} return false; - case 10: type = 10; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 10; } - void clear() {type = 0;} - void select_id_ENB1_Measurement_ID() { set(reject); type=1;} - void select_id_ENB2_Measurement_ID() { set(ignore); type=2;} - void select_id_Registration_Request() { set(reject); type=3;} - void select_id_ReportCharacteristics() { set(reject); type=4;} - void select_id_CellToReport() { set(ignore); type=5;} - void select_id_ReportingPeriodicity() { set(ignore); type=6;} - void select_id_PartialSuccessIndicator() { set(ignore); type=7;} - void select_id_ReportingPeriodicityRSRPMR() { set(ignore); type=8;} - void select_id_ReportingPeriodicityCSIR() { set(ignore); type=9;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(reject)) { type = 3; return true; } - else if(equal(reject)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else if(equal(ignore)) { type = 6; return true; } - else if(equal(ignore)) { type = 7; return true; } - else if(equal(ignore)) { type = 8; return true; } - else if(equal(ignore)) { type = 9; return true; } - else { type = 10; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(reject);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(reject);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(ignore);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(ignore);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(ignore);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(ignore);} return false; - case 10: type = 10; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - Measurement_ID& select_id_ENB1_Measurement_ID() { return set(1); } - Measurement_ID const* get_id_ENB1_Measurement_ID() const { return get(1); } - Measurement_ID& select_id_ENB2_Measurement_ID() { return set(2); } - Measurement_ID const* get_id_ENB2_Measurement_ID() const { return get(2); } - Registration_Request& select_id_Registration_Request() { return set(3); } - Registration_Request const* get_id_Registration_Request() const { return get(3); } - ReportCharacteristics& select_id_ReportCharacteristics() { return set(4); } - ReportCharacteristics const* get_id_ReportCharacteristics() const { return get(4); } - CellToReport_List& select_id_CellToReport() { return set(5); } - CellToReport_List const* get_id_CellToReport() const { return get(5); } - ReportingPeriodicity& select_id_ReportingPeriodicity() { return set(6); } - ReportingPeriodicity const* get_id_ReportingPeriodicity() const { return get(6); } - PartialSuccessIndicator& select_id_PartialSuccessIndicator() { return set(7); } - PartialSuccessIndicator const* get_id_PartialSuccessIndicator() const { return get(7); } - ReportingPeriodicityRSRPMR& select_id_ReportingPeriodicityRSRPMR() { return set(8); } - ReportingPeriodicityRSRPMR const* get_id_ReportingPeriodicityRSRPMR() const { return get(8); } - ReportingPeriodicityCSIR& select_id_ReportingPeriodicityCSIR() { return set(9); } - ReportingPeriodicityCSIR const* get_id_ReportingPeriodicityCSIR() const { return get(9); } - bool is_unknown() const { return type == 10; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - case 7: var.destroy(); break; - case 8: var.destroy(); break; - case 9: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - v.template operator()(7); - v.template operator()(8); - v.template operator()(9); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_ENB1_Measurement_ID()); return true; - case 2: v(select_id_ENB2_Measurement_ID()); return true; - case 3: v(select_id_Registration_Request()); return true; - case 4: v(select_id_ReportCharacteristics()); return true; - case 5: v(select_id_CellToReport()); return true; - case 6: v(select_id_ReportingPeriodicity()); return true; - case 7: v(select_id_PartialSuccessIndicator()); return true; - case 8: v(select_id_ReportingPeriodicityRSRPMR()); return true; - case 9: v(select_id_ReportingPeriodicityCSIR()); return true; - case 10: if(type != 10) {clear(); asn::base::set();} type = 10; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - case 7: v(var.as()); return true; - case 8: v(var.as()); return true; - case 9: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CellToReport_List)]; - char dummy2[sizeof(Measurement_ID)]; - char dummy3[sizeof(PartialSuccessIndicator)]; - char dummy4[sizeof(Registration_Request)]; - char dummy5[sizeof(ReportCharacteristics)]; - char dummy6[sizeof(ReportingPeriodicity)]; - char dummy7[sizeof(ReportingPeriodicityCSIR)]; - char dummy8[sizeof(ReportingPeriodicityRSRPMR)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 10; } - void clear() {type = 0;} - void select_id_ENB1_Measurement_ID() { set(mandatory); type=1;} - void select_id_ENB2_Measurement_ID() { set(conditional); type=2;} - void select_id_Registration_Request() { set(mandatory); type=3;} - void select_id_ReportCharacteristics() { set(optional); type=4;} - void select_id_CellToReport() { set(mandatory); type=5;} - void select_id_ReportingPeriodicity() { set(optional); type=6;} - void select_id_PartialSuccessIndicator() { set(optional); type=7;} - void select_id_ReportingPeriodicityRSRPMR() { set(optional); type=8;} - void select_id_ReportingPeriodicityCSIR() { set(optional); type=9;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(conditional)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(mandatory)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else if(equal(optional)) { type = 7; return true; } - else if(equal(optional)) { type = 8; return true; } - else if(equal(optional)) { type = 9; return true; } - else { type = 10; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(conditional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(mandatory);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(optional);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(optional);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(optional);} return false; - case 10: type = 10; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ResourceStatusRequest ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ResourceStatusRequest-IEs}}, - ... -} -*/ - -struct ResourceStatusRequest : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "ResourceStatusRequest";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -ResourceStatusResponse-IEs X2AP-PROTOCOL-IES ::= { - { ID id-ENB1-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| - { ID id-ENB2-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| - { ID id-MeasurementInitiationResult-List CRITICALITY ignore TYPE MeasurementInitiationResult-List PRESENCE optional}, - ... -} -*/ - -struct ResourceStatusResponse_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_ENB1_Measurement_ID() { set(id_ENB1_Measurement_ID); type=1;} - void select_id_ENB2_Measurement_ID() { set(id_ENB2_Measurement_ID); type=2;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=3;} - void select_id_MeasurementInitiationResult_List() { set(id_MeasurementInitiationResult_List); type=4;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_ENB1_Measurement_ID)) { type = 1; return true; } - else if(equal(id_ENB2_Measurement_ID)) { type = 2; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 3; return true; } - else if(equal(id_MeasurementInitiationResult_List)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_ENB1_Measurement_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_ENB2_Measurement_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_MeasurementInitiationResult_List);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_ENB1_Measurement_ID() { set(reject); type=1;} - void select_id_ENB2_Measurement_ID() { set(reject); type=2;} - void select_id_CriticalityDiagnostics() { set(ignore); type=3;} - void select_id_MeasurementInitiationResult_List() { set(ignore); type=4;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - Measurement_ID& select_id_ENB1_Measurement_ID() { return set(1); } - Measurement_ID const* get_id_ENB1_Measurement_ID() const { return get(1); } - Measurement_ID& select_id_ENB2_Measurement_ID() { return set(2); } - Measurement_ID const* get_id_ENB2_Measurement_ID() const { return get(2); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(3); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(3); } - MeasurementInitiationResult_List& select_id_MeasurementInitiationResult_List() { return set(4); } - MeasurementInitiationResult_List const* get_id_MeasurementInitiationResult_List() const { return get(4); } - bool is_unknown() const { return type == 5; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_ENB1_Measurement_ID()); return true; - case 2: v(select_id_ENB2_Measurement_ID()); return true; - case 3: v(select_id_CriticalityDiagnostics()); return true; - case 4: v(select_id_MeasurementInitiationResult_List()); return true; - case 5: if(type != 5) {clear(); asn::base::set();} type = 5; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CriticalityDiagnostics)]; - char dummy2[sizeof(MeasurementInitiationResult_List)]; - char dummy3[sizeof(Measurement_ID)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_ENB1_Measurement_ID() { set(mandatory); type=1;} - void select_id_ENB2_Measurement_ID() { set(mandatory); type=2;} - void select_id_CriticalityDiagnostics() { set(optional); type=3;} - void select_id_MeasurementInitiationResult_List() { set(optional); type=4;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ResourceStatusResponse ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ResourceStatusResponse-IEs}}, - ... -} -*/ - -struct ResourceStatusResponse : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "ResourceStatusResponse";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -ResourceStatusUpdate-IEs X2AP-PROTOCOL-IES ::= { - { ID id-ENB1-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| - { ID id-ENB2-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| - { ID id-CellMeasurementResult CRITICALITY ignore TYPE CellMeasurementResult-List PRESENCE mandatory}, - ... -} -*/ - -struct ResourceStatusUpdate_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_ENB1_Measurement_ID() { set(id_ENB1_Measurement_ID); type=1;} - void select_id_ENB2_Measurement_ID() { set(id_ENB2_Measurement_ID); type=2;} - void select_id_CellMeasurementResult() { set(id_CellMeasurementResult); type=3;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_ENB1_Measurement_ID)) { type = 1; return true; } - else if(equal(id_ENB2_Measurement_ID)) { type = 2; return true; } - else if(equal(id_CellMeasurementResult)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_ENB1_Measurement_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_ENB2_Measurement_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_CellMeasurementResult);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_ENB1_Measurement_ID() { set(reject); type=1;} - void select_id_ENB2_Measurement_ID() { set(reject); type=2;} - void select_id_CellMeasurementResult() { set(ignore); type=3;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - Measurement_ID& select_id_ENB1_Measurement_ID() { return set(1); } - Measurement_ID const* get_id_ENB1_Measurement_ID() const { return get(1); } - Measurement_ID& select_id_ENB2_Measurement_ID() { return set(2); } - Measurement_ID const* get_id_ENB2_Measurement_ID() const { return get(2); } - CellMeasurementResult_List& select_id_CellMeasurementResult() { return set(3); } - CellMeasurementResult_List const* get_id_CellMeasurementResult() const { return get(3); } - bool is_unknown() const { return type == 4; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_ENB1_Measurement_ID()); return true; - case 2: v(select_id_ENB2_Measurement_ID()); return true; - case 3: v(select_id_CellMeasurementResult()); return true; - case 4: if(type != 4) {clear(); asn::base::set();} type = 4; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CellMeasurementResult_List)]; - char dummy2[sizeof(Measurement_ID)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_ENB1_Measurement_ID() { set(mandatory); type=1;} - void select_id_ENB2_Measurement_ID() { set(mandatory); type=2;} - void select_id_CellMeasurementResult() { set(mandatory); type=3;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ResourceStatusUpdate ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ResourceStatusUpdate-IEs}}, - ... -} -*/ - -struct ResourceStatusUpdate : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "ResourceStatusUpdate";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -ResponseInformationSeNBReconfComp-SuccessItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct ResponseInformationSeNBReconfComp_SuccessItemExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ResponseInformationSeNBReconfComp-SuccessItem ::= SEQUENCE { - meNBtoSeNBContainer MeNBtoSeNBContainer OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {ResponseInformationSeNBReconfComp-SuccessItemExtIEs} } OPTIONAL, - ... -} -*/ - -struct ResponseInformationSeNBReconfComp_SuccessItem : asn::sequence<2, 0, true, 2> -{ - static constexpr const char* name() {return "ResponseInformationSeNBReconfComp-SuccessItem";} - using parent_t = asn::sequence<2, 0, true, 2>; - struct meNBtoSeNBContainer_t : MeNBtoSeNBContainer - { - static constexpr const char* name() {return "meNBtoSeNBContainer_t";} - using parent_t = MeNBtoSeNBContainer; - static constexpr bool optional = true; - - }; - meNBtoSeNBContainer_t& set_meNBtoSeNBContainer() { meNBtoSeNBContainer.setpresent(true); return meNBtoSeNBContainer;} - meNBtoSeNBContainer_t const* get_meNBtoSeNBContainer() const {return meNBtoSeNBContainer.is_valid() ? &meNBtoSeNBContainer : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(meNBtoSeNBContainer); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(meNBtoSeNBContainer); - v(iE_Extensions); - - }; - void clear() - { - meNBtoSeNBContainer.clear(); - iE_Extensions.clear(); - - }; - private: - meNBtoSeNBContainer_t meNBtoSeNBContainer; - iE_Extensions_t iE_Extensions; - -}; -/* -ResponseInformationSeNBReconfComp-RejectByMeNBItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct ResponseInformationSeNBReconfComp_RejectByMeNBItemExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ResponseInformationSeNBReconfComp-RejectByMeNBItem ::= SEQUENCE { - cause Cause, - meNBtoSeNBContainer MeNBtoSeNBContainer OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {ResponseInformationSeNBReconfComp-RejectByMeNBItemExtIEs} } OPTIONAL, - ... -} -*/ - -struct ResponseInformationSeNBReconfComp_RejectByMeNBItem : asn::sequence<3, 0, true, 2> -{ - static constexpr const char* name() {return "ResponseInformationSeNBReconfComp-RejectByMeNBItem";} - using parent_t = asn::sequence<3, 0, true, 2>; - struct cause_t : Cause - { - static constexpr const char* name() {return "cause_t";} - using parent_t = Cause; - - }; - cause_t& ref_cause() {return cause;} - cause_t const& ref_cause() const {return cause;} - struct meNBtoSeNBContainer_t : MeNBtoSeNBContainer - { - static constexpr const char* name() {return "meNBtoSeNBContainer_t";} - using parent_t = MeNBtoSeNBContainer; - static constexpr bool optional = true; - - }; - meNBtoSeNBContainer_t& set_meNBtoSeNBContainer() { meNBtoSeNBContainer.setpresent(true); return meNBtoSeNBContainer;} - meNBtoSeNBContainer_t const* get_meNBtoSeNBContainer() const {return meNBtoSeNBContainer.is_valid() ? &meNBtoSeNBContainer : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(cause); - v(meNBtoSeNBContainer); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(cause); - v(meNBtoSeNBContainer); - v(iE_Extensions); - - }; - void clear() - { - cause.clear(); - meNBtoSeNBContainer.clear(); - iE_Extensions.clear(); - - }; - private: - cause_t cause; - meNBtoSeNBContainer_t meNBtoSeNBContainer; - iE_Extensions_t iE_Extensions; - -}; -/* -ResponseInformationSeNBReconfComp ::= CHOICE { - success ResponseInformationSeNBReconfComp-SuccessItem, - reject-by-MeNB ResponseInformationSeNBReconfComp-RejectByMeNBItem, - ... -} -*/ - -struct ResponseInformationSeNBReconfComp : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "ResponseInformationSeNBReconfComp";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~ResponseInformationSeNBReconfComp() {clear();} - struct success_t : ResponseInformationSeNBReconfComp_SuccessItem - { - static constexpr const char* name() {return "success_t";} - using parent_t = ResponseInformationSeNBReconfComp_SuccessItem; - - }; - struct reject_by_MeNB_t : ResponseInformationSeNBReconfComp_RejectByMeNBItem - { - static constexpr const char* name() {return "reject_by_MeNB_t";} - using parent_t = ResponseInformationSeNBReconfComp_RejectByMeNBItem; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - success_t& select_success() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - success_t const* get_success() const { if(get_index() == 1) { return &var.as();} return nullptr; } - reject_by_MeNB_t& select_reject_by_MeNB() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - reject_by_MeNB_t const* get_reject_by_MeNB() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(success_t)]; - char dummy2[sizeof(reject_by_MeNB_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -ResponseInformationSgNBReconfComp-SuccessItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct ResponseInformationSgNBReconfComp_SuccessItemExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ResponseInformationSgNBReconfComp-SuccessItem ::= SEQUENCE { - meNBtoSgNBContainer MeNBtoSgNBContainer OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {ResponseInformationSgNBReconfComp-SuccessItemExtIEs} } OPTIONAL, - ... -} -*/ - -struct ResponseInformationSgNBReconfComp_SuccessItem : asn::sequence<2, 0, true, 2> -{ - static constexpr const char* name() {return "ResponseInformationSgNBReconfComp-SuccessItem";} - using parent_t = asn::sequence<2, 0, true, 2>; - struct meNBtoSgNBContainer_t : MeNBtoSgNBContainer - { - static constexpr const char* name() {return "meNBtoSgNBContainer_t";} - using parent_t = MeNBtoSgNBContainer; - static constexpr bool optional = true; - - }; - meNBtoSgNBContainer_t& set_meNBtoSgNBContainer() { meNBtoSgNBContainer.setpresent(true); return meNBtoSgNBContainer;} - meNBtoSgNBContainer_t const* get_meNBtoSgNBContainer() const {return meNBtoSgNBContainer.is_valid() ? &meNBtoSgNBContainer : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(meNBtoSgNBContainer); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(meNBtoSgNBContainer); - v(iE_Extensions); - - }; - void clear() - { - meNBtoSgNBContainer.clear(); - iE_Extensions.clear(); - - }; - private: - meNBtoSgNBContainer_t meNBtoSgNBContainer; - iE_Extensions_t iE_Extensions; - -}; -/* -ResponseInformationSgNBReconfComp-RejectByMeNBItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct ResponseInformationSgNBReconfComp_RejectByMeNBItemExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ResponseInformationSgNBReconfComp-RejectByMeNBItem ::= SEQUENCE { - cause Cause, - iE-Extensions ProtocolExtensionContainer { {ResponseInformationSgNBReconfComp-RejectByMeNBItemExtIEs} } OPTIONAL, - ... -} -*/ - -struct ResponseInformationSgNBReconfComp_RejectByMeNBItem : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "ResponseInformationSgNBReconfComp-RejectByMeNBItem";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct cause_t : Cause - { - static constexpr const char* name() {return "cause_t";} - using parent_t = Cause; - - }; - cause_t& ref_cause() {return cause;} - cause_t const& ref_cause() const {return cause;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(cause); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(cause); - v(iE_Extensions); - - }; - void clear() - { - cause.clear(); - iE_Extensions.clear(); - - }; - private: - cause_t cause; - iE_Extensions_t iE_Extensions; - -}; -/* -ResponseInformationSgNBReconfComp ::= CHOICE { - success-SgNBReconfComp ResponseInformationSgNBReconfComp-SuccessItem, - reject-by-MeNB-SgNBReconfComp ResponseInformationSgNBReconfComp-RejectByMeNBItem, - ... -} -*/ - -struct ResponseInformationSgNBReconfComp : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "ResponseInformationSgNBReconfComp";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~ResponseInformationSgNBReconfComp() {clear();} - struct success_SgNBReconfComp_t : ResponseInformationSgNBReconfComp_SuccessItem - { - static constexpr const char* name() {return "success_SgNBReconfComp_t";} - using parent_t = ResponseInformationSgNBReconfComp_SuccessItem; - - }; - struct reject_by_MeNB_SgNBReconfComp_t : ResponseInformationSgNBReconfComp_RejectByMeNBItem - { - static constexpr const char* name() {return "reject_by_MeNB_SgNBReconfComp_t";} - using parent_t = ResponseInformationSgNBReconfComp_RejectByMeNBItem; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - success_SgNBReconfComp_t& select_success_SgNBReconfComp() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - success_SgNBReconfComp_t const* get_success_SgNBReconfComp() const { if(get_index() == 1) { return &var.as();} return nullptr; } - reject_by_MeNB_SgNBReconfComp_t& select_reject_by_MeNB_SgNBReconfComp() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - reject_by_MeNB_SgNBReconfComp_t const* get_reject_by_MeNB_SgNBReconfComp() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(success_SgNBReconfComp_t)]; - char dummy2[sizeof(reject_by_MeNB_SgNBReconfComp_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -RetrieveUEContextFailure-IEs X2AP-PROTOCOL-IES ::= { - { ID id-New-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-New-eNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, - ... -} -*/ - -struct RetrieveUEContextFailure_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_New_eNB_UE_X2AP_ID() { set(id_New_eNB_UE_X2AP_ID); type=1;} - void select_id_New_eNB_UE_X2AP_ID_Extension() { set(id_New_eNB_UE_X2AP_ID_Extension); type=2;} - void select_id_Cause() { set(id_Cause); type=3;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=4;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_New_eNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_New_eNB_UE_X2AP_ID_Extension)) { type = 2; return true; } - else if(equal(id_Cause)) { type = 3; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_New_eNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_New_eNB_UE_X2AP_ID_Extension);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_New_eNB_UE_X2AP_ID() { set(ignore); type=1;} - void select_id_New_eNB_UE_X2AP_ID_Extension() { set(ignore); type=2;} - void select_id_Cause() { set(ignore); type=3;} - void select_id_CriticalityDiagnostics() { set(ignore); type=4;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_New_eNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_New_eNB_UE_X2AP_ID() const { return get(1); } - UE_X2AP_ID_Extension& select_id_New_eNB_UE_X2AP_ID_Extension() { return set(2); } - UE_X2AP_ID_Extension const* get_id_New_eNB_UE_X2AP_ID_Extension() const { return get(2); } - Cause& select_id_Cause() { return set(3); } - Cause const* get_id_Cause() const { return get(3); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(4); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(4); } - bool is_unknown() const { return type == 5; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_New_eNB_UE_X2AP_ID()); return true; - case 2: v(select_id_New_eNB_UE_X2AP_ID_Extension()); return true; - case 3: v(select_id_Cause()); return true; - case 4: v(select_id_CriticalityDiagnostics()); return true; - case 5: if(type != 5) {clear(); asn::base::set();} type = 5; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(CriticalityDiagnostics)]; - char dummy3[sizeof(UE_X2AP_ID)]; - char dummy4[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_New_eNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_New_eNB_UE_X2AP_ID_Extension() { set(optional); type=2;} - void select_id_Cause() { set(mandatory); type=3;} - void select_id_CriticalityDiagnostics() { set(optional); type=4;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RetrieveUEContextFailure ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ RetrieveUEContextFailure-IEs}}, - ... -} -*/ - -struct RetrieveUEContextFailure : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "RetrieveUEContextFailure";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -RetrieveUEContextRequest-IEs X2AP-PROTOCOL-IES ::= { - { ID id-New-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-resumeID CRITICALITY reject TYPE ResumeID PRESENCE mandatory}| - { ID id-ShortMAC-I CRITICALITY reject TYPE ShortMAC-I PRESENCE mandatory}| - { ID id-NewEUTRANCellIdentifier CRITICALITY reject TYPE EUTRANCellIdentifier PRESENCE mandatory}| - {ID id-FailureCellCRNTI CRITICALITY reject TYPE CRNTI PRESENCE optional}| - {ID id-FailureCellPCI CRITICALITY reject TYPE PCI PRESENCE optional}, - ... -} -*/ - -struct RetrieveUEContextRequest_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 8; } - void clear() {type = 0;} - void select_id_New_eNB_UE_X2AP_ID() { set(id_New_eNB_UE_X2AP_ID); type=1;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(id_SeNB_UE_X2AP_ID_Extension); type=2;} - void select_id_resumeID() { set(id_resumeID); type=3;} - void select_id_ShortMAC_I() { set(id_ShortMAC_I); type=4;} - void select_id_NewEUTRANCellIdentifier() { set(id_NewEUTRANCellIdentifier); type=5;} - void select_id_FailureCellCRNTI() { set(id_FailureCellCRNTI); type=6;} - void select_id_FailureCellPCI() { set(id_FailureCellPCI); type=7;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_New_eNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SeNB_UE_X2AP_ID_Extension)) { type = 2; return true; } - else if(equal(id_resumeID)) { type = 3; return true; } - else if(equal(id_ShortMAC_I)) { type = 4; return true; } - else if(equal(id_NewEUTRANCellIdentifier)) { type = 5; return true; } - else if(equal(id_FailureCellCRNTI)) { type = 6; return true; } - else if(equal(id_FailureCellPCI)) { type = 7; return true; } - else { type = 8; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_New_eNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SeNB_UE_X2AP_ID_Extension);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_resumeID);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_ShortMAC_I);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_NewEUTRANCellIdentifier);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_FailureCellCRNTI);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(id_FailureCellPCI);} return false; - case 8: type = 8; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 8; } - void clear() {type = 0;} - void select_id_New_eNB_UE_X2AP_ID() { set(reject); type=1;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(reject); type=2;} - void select_id_resumeID() { set(reject); type=3;} - void select_id_ShortMAC_I() { set(reject); type=4;} - void select_id_NewEUTRANCellIdentifier() { set(reject); type=5;} - void select_id_FailureCellCRNTI() { set(reject); type=6;} - void select_id_FailureCellPCI() { set(reject); type=7;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(reject)) { type = 3; return true; } - else if(equal(reject)) { type = 4; return true; } - else if(equal(reject)) { type = 5; return true; } - else if(equal(reject)) { type = 6; return true; } - else if(equal(reject)) { type = 7; return true; } - else { type = 8; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(reject);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(reject);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(reject);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(reject);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(reject);} return false; - case 8: type = 8; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_New_eNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_New_eNB_UE_X2AP_ID() const { return get(1); } - UE_X2AP_ID_Extension& select_id_SeNB_UE_X2AP_ID_Extension() { return set(2); } - UE_X2AP_ID_Extension const* get_id_SeNB_UE_X2AP_ID_Extension() const { return get(2); } - ResumeID& select_id_resumeID() { return set(3); } - ResumeID const* get_id_resumeID() const { return get(3); } - ShortMAC_I& select_id_ShortMAC_I() { return set(4); } - ShortMAC_I const* get_id_ShortMAC_I() const { return get(4); } - EUTRANCellIdentifier& select_id_NewEUTRANCellIdentifier() { return set(5); } - EUTRANCellIdentifier const* get_id_NewEUTRANCellIdentifier() const { return get(5); } - CRNTI& select_id_FailureCellCRNTI() { return set(6); } - CRNTI const* get_id_FailureCellCRNTI() const { return get(6); } - PCI& select_id_FailureCellPCI() { return set(7); } - PCI const* get_id_FailureCellPCI() const { return get(7); } - bool is_unknown() const { return type == 8; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - case 7: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - v.template operator()(7); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_New_eNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SeNB_UE_X2AP_ID_Extension()); return true; - case 3: v(select_id_resumeID()); return true; - case 4: v(select_id_ShortMAC_I()); return true; - case 5: v(select_id_NewEUTRANCellIdentifier()); return true; - case 6: v(select_id_FailureCellCRNTI()); return true; - case 7: v(select_id_FailureCellPCI()); return true; - case 8: if(type != 8) {clear(); asn::base::set();} type = 8; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - case 7: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CRNTI)]; - char dummy2[sizeof(EUTRANCellIdentifier)]; - char dummy3[sizeof(PCI)]; - char dummy4[sizeof(ResumeID)]; - char dummy5[sizeof(ShortMAC_I)]; - char dummy6[sizeof(UE_X2AP_ID)]; - char dummy7[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 8; } - void clear() {type = 0;} - void select_id_New_eNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(optional); type=2;} - void select_id_resumeID() { set(mandatory); type=3;} - void select_id_ShortMAC_I() { set(mandatory); type=4;} - void select_id_NewEUTRANCellIdentifier() { set(mandatory); type=5;} - void select_id_FailureCellCRNTI() { set(optional); type=6;} - void select_id_FailureCellPCI() { set(optional); type=7;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(mandatory)) { type = 4; return true; } - else if(equal(mandatory)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else if(equal(optional)) { type = 7; return true; } - else { type = 8; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(mandatory);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(mandatory);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(optional);} return false; - case 8: type = 8; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RetrieveUEContextRequest ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ RetrieveUEContextRequest-IEs}}, - ... -} -*/ - -struct RetrieveUEContextRequest : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "RetrieveUEContextRequest";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -UE-ContextInformationRetrieve-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { -{ ID id-UESidelinkAggregateMaximumBitRate CRITICALITY ignore EXTENSION UESidelinkAggregateMaximumBitRate PRESENCE optional}, - ... -} -*/ - -struct UE_ContextInformationRetrieve_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_UESidelinkAggregateMaximumBitRate() { set(id_UESidelinkAggregateMaximumBitRate); type=1;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_UESidelinkAggregateMaximumBitRate)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_UESidelinkAggregateMaximumBitRate);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_UESidelinkAggregateMaximumBitRate() { set(ignore); type=1;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - UESidelinkAggregateMaximumBitRate& select_id_UESidelinkAggregateMaximumBitRate() { return set(1); } - UESidelinkAggregateMaximumBitRate const* get_id_UESidelinkAggregateMaximumBitRate() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_UESidelinkAggregateMaximumBitRate()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(UESidelinkAggregateMaximumBitRate)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_UESidelinkAggregateMaximumBitRate() { set(optional); type=1;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -UE-ContextInformationRetrieve ::= SEQUENCE { - mME-UE-S1AP-ID UE-S1AP-ID, - uESecurityCapabilities UESecurityCapabilities, - aS-SecurityInformation AS-SecurityInformation, - uEaggregateMaximumBitRate UEAggregateMaximumBitRate, - subscriberProfileIDforRFP SubscriberProfileIDforRFP OPTIONAL, - e-RABs-ToBeSetup-ListRetrieve E-RABs-ToBeSetup-ListRetrieve, - rRC-Context RRC-Context, - handoverRestrictionList HandoverRestrictionList OPTIONAL, - locationReportingInformation LocationReportingInformation OPTIONAL, - managBasedMDTallowed ManagementBasedMDTallowed OPTIONAL, - managBasedMDTPLMNList MDTPLMNList OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {UE-ContextInformationRetrieve-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct UE_ContextInformationRetrieve : asn::sequence<12, 0, true, 6> -{ - static constexpr const char* name() {return "UE-ContextInformationRetrieve";} - using parent_t = asn::sequence<12, 0, true, 6>; - struct mME_UE_S1AP_ID_t : UE_S1AP_ID - { - static constexpr const char* name() {return "mME_UE_S1AP_ID_t";} - using parent_t = UE_S1AP_ID; - - }; - mME_UE_S1AP_ID_t& ref_mME_UE_S1AP_ID() {return mME_UE_S1AP_ID;} - mME_UE_S1AP_ID_t const& ref_mME_UE_S1AP_ID() const {return mME_UE_S1AP_ID;} - struct uESecurityCapabilities_t : UESecurityCapabilities - { - static constexpr const char* name() {return "uESecurityCapabilities_t";} - using parent_t = UESecurityCapabilities; - - }; - uESecurityCapabilities_t& ref_uESecurityCapabilities() {return uESecurityCapabilities;} - uESecurityCapabilities_t const& ref_uESecurityCapabilities() const {return uESecurityCapabilities;} - struct aS_SecurityInformation_t : AS_SecurityInformation - { - static constexpr const char* name() {return "aS_SecurityInformation_t";} - using parent_t = AS_SecurityInformation; - - }; - aS_SecurityInformation_t& ref_aS_SecurityInformation() {return aS_SecurityInformation;} - aS_SecurityInformation_t const& ref_aS_SecurityInformation() const {return aS_SecurityInformation;} - struct uEaggregateMaximumBitRate_t : UEAggregateMaximumBitRate - { - static constexpr const char* name() {return "uEaggregateMaximumBitRate_t";} - using parent_t = UEAggregateMaximumBitRate; - - }; - uEaggregateMaximumBitRate_t& ref_uEaggregateMaximumBitRate() {return uEaggregateMaximumBitRate;} - uEaggregateMaximumBitRate_t const& ref_uEaggregateMaximumBitRate() const {return uEaggregateMaximumBitRate;} - struct subscriberProfileIDforRFP_t : SubscriberProfileIDforRFP - { - static constexpr const char* name() {return "subscriberProfileIDforRFP_t";} - using parent_t = SubscriberProfileIDforRFP; - static constexpr bool optional = true; - - }; - subscriberProfileIDforRFP_t& set_subscriberProfileIDforRFP() { subscriberProfileIDforRFP.setpresent(true); return subscriberProfileIDforRFP;} - subscriberProfileIDforRFP_t const* get_subscriberProfileIDforRFP() const {return subscriberProfileIDforRFP.is_valid() ? &subscriberProfileIDforRFP : nullptr;} - struct e_RABs_ToBeSetup_ListRetrieve_t : E_RABs_ToBeSetup_ListRetrieve - { - static constexpr const char* name() {return "e_RABs_ToBeSetup_ListRetrieve_t";} - using parent_t = E_RABs_ToBeSetup_ListRetrieve; - - }; - e_RABs_ToBeSetup_ListRetrieve_t& ref_e_RABs_ToBeSetup_ListRetrieve() {return e_RABs_ToBeSetup_ListRetrieve;} - e_RABs_ToBeSetup_ListRetrieve_t const& ref_e_RABs_ToBeSetup_ListRetrieve() const {return e_RABs_ToBeSetup_ListRetrieve;} - struct rRC_Context_t : RRC_Context - { - static constexpr const char* name() {return "rRC_Context_t";} - using parent_t = RRC_Context; - - }; - rRC_Context_t& ref_rRC_Context() {return rRC_Context;} - rRC_Context_t const& ref_rRC_Context() const {return rRC_Context;} - struct handoverRestrictionList_t : HandoverRestrictionList - { - static constexpr const char* name() {return "handoverRestrictionList_t";} - using parent_t = HandoverRestrictionList; - static constexpr bool optional = true; - - }; - handoverRestrictionList_t& set_handoverRestrictionList() { handoverRestrictionList.setpresent(true); return handoverRestrictionList;} - handoverRestrictionList_t const* get_handoverRestrictionList() const {return handoverRestrictionList.is_valid() ? &handoverRestrictionList : nullptr;} - struct locationReportingInformation_t : LocationReportingInformation - { - static constexpr const char* name() {return "locationReportingInformation_t";} - using parent_t = LocationReportingInformation; - static constexpr bool optional = true; - - }; - locationReportingInformation_t& set_locationReportingInformation() { locationReportingInformation.setpresent(true); return locationReportingInformation;} - locationReportingInformation_t const* get_locationReportingInformation() const {return locationReportingInformation.is_valid() ? &locationReportingInformation : nullptr;} - struct managBasedMDTallowed_t : ManagementBasedMDTallowed - { - static constexpr const char* name() {return "managBasedMDTallowed_t";} - using parent_t = ManagementBasedMDTallowed; - static constexpr bool optional = true; - - }; - managBasedMDTallowed_t& set_managBasedMDTallowed() { managBasedMDTallowed.setpresent(true); return managBasedMDTallowed;} - managBasedMDTallowed_t const* get_managBasedMDTallowed() const {return managBasedMDTallowed.is_valid() ? &managBasedMDTallowed : nullptr;} - struct managBasedMDTPLMNList_t : MDTPLMNList - { - static constexpr const char* name() {return "managBasedMDTPLMNList_t";} - using parent_t = MDTPLMNList; - static constexpr bool optional = true; - - }; - managBasedMDTPLMNList_t& set_managBasedMDTPLMNList() { managBasedMDTPLMNList.setpresent(true); return managBasedMDTPLMNList;} - managBasedMDTPLMNList_t const* get_managBasedMDTPLMNList() const {return managBasedMDTPLMNList.is_valid() ? &managBasedMDTPLMNList : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(mME_UE_S1AP_ID); - v(uESecurityCapabilities); - v(aS_SecurityInformation); - v(uEaggregateMaximumBitRate); - v(subscriberProfileIDforRFP); - v(e_RABs_ToBeSetup_ListRetrieve); - v(rRC_Context); - v(handoverRestrictionList); - v(locationReportingInformation); - v(managBasedMDTallowed); - v(managBasedMDTPLMNList); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(mME_UE_S1AP_ID); - v(uESecurityCapabilities); - v(aS_SecurityInformation); - v(uEaggregateMaximumBitRate); - v(subscriberProfileIDforRFP); - v(e_RABs_ToBeSetup_ListRetrieve); - v(rRC_Context); - v(handoverRestrictionList); - v(locationReportingInformation); - v(managBasedMDTallowed); - v(managBasedMDTPLMNList); - v(iE_Extensions); - - }; - void clear() - { - mME_UE_S1AP_ID.clear(); - uESecurityCapabilities.clear(); - aS_SecurityInformation.clear(); - uEaggregateMaximumBitRate.clear(); - subscriberProfileIDforRFP.clear(); - e_RABs_ToBeSetup_ListRetrieve.clear(); - rRC_Context.clear(); - handoverRestrictionList.clear(); - locationReportingInformation.clear(); - managBasedMDTallowed.clear(); - managBasedMDTPLMNList.clear(); - iE_Extensions.clear(); - - }; - private: - mME_UE_S1AP_ID_t mME_UE_S1AP_ID; - uESecurityCapabilities_t uESecurityCapabilities; - aS_SecurityInformation_t aS_SecurityInformation; - uEaggregateMaximumBitRate_t uEaggregateMaximumBitRate; - subscriberProfileIDforRFP_t subscriberProfileIDforRFP; - e_RABs_ToBeSetup_ListRetrieve_t e_RABs_ToBeSetup_ListRetrieve; - rRC_Context_t rRC_Context; - handoverRestrictionList_t handoverRestrictionList; - locationReportingInformation_t locationReportingInformation; - managBasedMDTallowed_t managBasedMDTallowed; - managBasedMDTPLMNList_t managBasedMDTPLMNList; - iE_Extensions_t iE_Extensions; - -}; -/* -RetrieveUEContextResponse-IEs X2AP-PROTOCOL-IES ::= { - { ID id-New-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-New-eNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-Old-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-Old-eNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-GUMMEI-ID CRITICALITY reject TYPE GUMMEI PRESENCE mandatory}| - { ID id-UE-ContextInformationRetrieve CRITICALITY reject TYPE UE-ContextInformationRetrieve PRESENCE mandatory}| - { ID id-TraceActivation CRITICALITY ignore TYPE TraceActivation PRESENCE optional}| - { ID id-SRVCCOperationPossible CRITICALITY ignore TYPE SRVCCOperationPossible PRESENCE optional}| - { ID id-Masked-IMEISV CRITICALITY ignore TYPE Masked-IMEISV PRESENCE optional}| - { ID id-ExpectedUEBehaviour CRITICALITY ignore TYPE ExpectedUEBehaviour PRESENCE optional}| - { ID id-ProSeAuthorized CRITICALITY ignore TYPE ProSeAuthorized PRESENCE optional}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| - { ID id-V2XServicesAuthorized CRITICALITY ignore TYPE V2XServicesAuthorized PRESENCE optional}| - { ID id-AerialUEsubscriptionInformation CRITICALITY ignore TYPE AerialUEsubscriptionInformation PRESENCE optional}| - { ID id-Subscription-Based-UE-DifferentiationInfo CRITICALITY ignore TYPE Subscription-Based-UE-DifferentiationInfo PRESENCE optional}, - ... -} -*/ - -struct RetrieveUEContextResponse_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 16; } - void clear() {type = 0;} - void select_id_New_eNB_UE_X2AP_ID() { set(id_New_eNB_UE_X2AP_ID); type=1;} - void select_id_New_eNB_UE_X2AP_ID_Extension() { set(id_New_eNB_UE_X2AP_ID_Extension); type=2;} - void select_id_Old_eNB_UE_X2AP_ID() { set(id_Old_eNB_UE_X2AP_ID); type=3;} - void select_id_Old_eNB_UE_X2AP_ID_Extension() { set(id_Old_eNB_UE_X2AP_ID_Extension); type=4;} - void select_id_GUMMEI_ID() { set(id_GUMMEI_ID); type=5;} - void select_id_UE_ContextInformationRetrieve() { set(id_UE_ContextInformationRetrieve); type=6;} - void select_id_TraceActivation() { set(id_TraceActivation); type=7;} - void select_id_SRVCCOperationPossible() { set(id_SRVCCOperationPossible); type=8;} - void select_id_Masked_IMEISV() { set(id_Masked_IMEISV); type=9;} - void select_id_ExpectedUEBehaviour() { set(id_ExpectedUEBehaviour); type=10;} - void select_id_ProSeAuthorized() { set(id_ProSeAuthorized); type=11;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=12;} - void select_id_V2XServicesAuthorized() { set(id_V2XServicesAuthorized); type=13;} - void select_id_AerialUEsubscriptionInformation() { set(id_AerialUEsubscriptionInformation); type=14;} - void select_id_Subscription_Based_UE_DifferentiationInfo() { set(id_Subscription_Based_UE_DifferentiationInfo); type=15;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_New_eNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_New_eNB_UE_X2AP_ID_Extension)) { type = 2; return true; } - else if(equal(id_Old_eNB_UE_X2AP_ID)) { type = 3; return true; } - else if(equal(id_Old_eNB_UE_X2AP_ID_Extension)) { type = 4; return true; } - else if(equal(id_GUMMEI_ID)) { type = 5; return true; } - else if(equal(id_UE_ContextInformationRetrieve)) { type = 6; return true; } - else if(equal(id_TraceActivation)) { type = 7; return true; } - else if(equal(id_SRVCCOperationPossible)) { type = 8; return true; } - else if(equal(id_Masked_IMEISV)) { type = 9; return true; } - else if(equal(id_ExpectedUEBehaviour)) { type = 10; return true; } - else if(equal(id_ProSeAuthorized)) { type = 11; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 12; return true; } - else if(equal(id_V2XServicesAuthorized)) { type = 13; return true; } - else if(equal(id_AerialUEsubscriptionInformation)) { type = 14; return true; } - else if(equal(id_Subscription_Based_UE_DifferentiationInfo)) { type = 15; return true; } - else { type = 16; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_New_eNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_New_eNB_UE_X2AP_ID_Extension);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_Old_eNB_UE_X2AP_ID);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_Old_eNB_UE_X2AP_ID_Extension);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_GUMMEI_ID);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_UE_ContextInformationRetrieve);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(id_TraceActivation);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(id_SRVCCOperationPossible);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(id_Masked_IMEISV);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(id_ExpectedUEBehaviour);} return false; - case 11: type = 11; if(v(ref_nested())) { return equal(id_ProSeAuthorized);} return false; - case 12: type = 12; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 13: type = 13; if(v(ref_nested())) { return equal(id_V2XServicesAuthorized);} return false; - case 14: type = 14; if(v(ref_nested())) { return equal(id_AerialUEsubscriptionInformation);} return false; - case 15: type = 15; if(v(ref_nested())) { return equal(id_Subscription_Based_UE_DifferentiationInfo);} return false; - case 16: type = 16; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 16; } - void clear() {type = 0;} - void select_id_New_eNB_UE_X2AP_ID() { set(ignore); type=1;} - void select_id_New_eNB_UE_X2AP_ID_Extension() { set(ignore); type=2;} - void select_id_Old_eNB_UE_X2AP_ID() { set(ignore); type=3;} - void select_id_Old_eNB_UE_X2AP_ID_Extension() { set(ignore); type=4;} - void select_id_GUMMEI_ID() { set(reject); type=5;} - void select_id_UE_ContextInformationRetrieve() { set(reject); type=6;} - void select_id_TraceActivation() { set(ignore); type=7;} - void select_id_SRVCCOperationPossible() { set(ignore); type=8;} - void select_id_Masked_IMEISV() { set(ignore); type=9;} - void select_id_ExpectedUEBehaviour() { set(ignore); type=10;} - void select_id_ProSeAuthorized() { set(ignore); type=11;} - void select_id_CriticalityDiagnostics() { set(ignore); type=12;} - void select_id_V2XServicesAuthorized() { set(ignore); type=13;} - void select_id_AerialUEsubscriptionInformation() { set(ignore); type=14;} - void select_id_Subscription_Based_UE_DifferentiationInfo() { set(ignore); type=15;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(reject)) { type = 5; return true; } - else if(equal(reject)) { type = 6; return true; } - else if(equal(ignore)) { type = 7; return true; } - else if(equal(ignore)) { type = 8; return true; } - else if(equal(ignore)) { type = 9; return true; } - else if(equal(ignore)) { type = 10; return true; } - else if(equal(ignore)) { type = 11; return true; } - else if(equal(ignore)) { type = 12; return true; } - else if(equal(ignore)) { type = 13; return true; } - else if(equal(ignore)) { type = 14; return true; } - else if(equal(ignore)) { type = 15; return true; } - else { type = 16; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(reject);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(reject);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(ignore);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(ignore);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(ignore);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(ignore);} return false; - case 11: type = 11; if(v(ref_nested())) { return equal(ignore);} return false; - case 12: type = 12; if(v(ref_nested())) { return equal(ignore);} return false; - case 13: type = 13; if(v(ref_nested())) { return equal(ignore);} return false; - case 14: type = 14; if(v(ref_nested())) { return equal(ignore);} return false; - case 15: type = 15; if(v(ref_nested())) { return equal(ignore);} return false; - case 16: type = 16; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_New_eNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_New_eNB_UE_X2AP_ID() const { return get(1); } - UE_X2AP_ID_Extension& select_id_New_eNB_UE_X2AP_ID_Extension() { return set(2); } - UE_X2AP_ID_Extension const* get_id_New_eNB_UE_X2AP_ID_Extension() const { return get(2); } - UE_X2AP_ID& select_id_Old_eNB_UE_X2AP_ID() { return set(3); } - UE_X2AP_ID const* get_id_Old_eNB_UE_X2AP_ID() const { return get(3); } - UE_X2AP_ID_Extension& select_id_Old_eNB_UE_X2AP_ID_Extension() { return set(4); } - UE_X2AP_ID_Extension const* get_id_Old_eNB_UE_X2AP_ID_Extension() const { return get(4); } - GUMMEI& select_id_GUMMEI_ID() { return set(5); } - GUMMEI const* get_id_GUMMEI_ID() const { return get(5); } - UE_ContextInformationRetrieve& select_id_UE_ContextInformationRetrieve() { return set(6); } - UE_ContextInformationRetrieve const* get_id_UE_ContextInformationRetrieve() const { return get(6); } - TraceActivation& select_id_TraceActivation() { return set(7); } - TraceActivation const* get_id_TraceActivation() const { return get(7); } - SRVCCOperationPossible& select_id_SRVCCOperationPossible() { return set(8); } - SRVCCOperationPossible const* get_id_SRVCCOperationPossible() const { return get(8); } - Masked_IMEISV& select_id_Masked_IMEISV() { return set(9); } - Masked_IMEISV const* get_id_Masked_IMEISV() const { return get(9); } - ExpectedUEBehaviour& select_id_ExpectedUEBehaviour() { return set(10); } - ExpectedUEBehaviour const* get_id_ExpectedUEBehaviour() const { return get(10); } - ProSeAuthorized& select_id_ProSeAuthorized() { return set(11); } - ProSeAuthorized const* get_id_ProSeAuthorized() const { return get(11); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(12); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(12); } - V2XServicesAuthorized& select_id_V2XServicesAuthorized() { return set(13); } - V2XServicesAuthorized const* get_id_V2XServicesAuthorized() const { return get(13); } - AerialUEsubscriptionInformation& select_id_AerialUEsubscriptionInformation() { return set(14); } - AerialUEsubscriptionInformation const* get_id_AerialUEsubscriptionInformation() const { return get(14); } - Subscription_Based_UE_DifferentiationInfo& select_id_Subscription_Based_UE_DifferentiationInfo() { return set(15); } - Subscription_Based_UE_DifferentiationInfo const* get_id_Subscription_Based_UE_DifferentiationInfo() const { return get(15); } - bool is_unknown() const { return type == 16; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - case 7: var.destroy(); break; - case 8: var.destroy(); break; - case 9: var.destroy(); break; - case 10: var.destroy(); break; - case 11: var.destroy(); break; - case 12: var.destroy(); break; - case 13: var.destroy(); break; - case 14: var.destroy(); break; - case 15: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - v.template operator()(7); - v.template operator()(8); - v.template operator()(9); - v.template operator()(10); - v.template operator()(11); - v.template operator()(12); - v.template operator()(13); - v.template operator()(14); - v.template operator()(15); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_New_eNB_UE_X2AP_ID()); return true; - case 2: v(select_id_New_eNB_UE_X2AP_ID_Extension()); return true; - case 3: v(select_id_Old_eNB_UE_X2AP_ID()); return true; - case 4: v(select_id_Old_eNB_UE_X2AP_ID_Extension()); return true; - case 5: v(select_id_GUMMEI_ID()); return true; - case 6: v(select_id_UE_ContextInformationRetrieve()); return true; - case 7: v(select_id_TraceActivation()); return true; - case 8: v(select_id_SRVCCOperationPossible()); return true; - case 9: v(select_id_Masked_IMEISV()); return true; - case 10: v(select_id_ExpectedUEBehaviour()); return true; - case 11: v(select_id_ProSeAuthorized()); return true; - case 12: v(select_id_CriticalityDiagnostics()); return true; - case 13: v(select_id_V2XServicesAuthorized()); return true; - case 14: v(select_id_AerialUEsubscriptionInformation()); return true; - case 15: v(select_id_Subscription_Based_UE_DifferentiationInfo()); return true; - case 16: if(type != 16) {clear(); asn::base::set();} type = 16; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - case 7: v(var.as()); return true; - case 8: v(var.as()); return true; - case 9: v(var.as()); return true; - case 10: v(var.as()); return true; - case 11: v(var.as()); return true; - case 12: v(var.as()); return true; - case 13: v(var.as()); return true; - case 14: v(var.as()); return true; - case 15: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(AerialUEsubscriptionInformation)]; - char dummy2[sizeof(CriticalityDiagnostics)]; - char dummy3[sizeof(ExpectedUEBehaviour)]; - char dummy4[sizeof(GUMMEI)]; - char dummy5[sizeof(Masked_IMEISV)]; - char dummy6[sizeof(ProSeAuthorized)]; - char dummy7[sizeof(SRVCCOperationPossible)]; - char dummy8[sizeof(Subscription_Based_UE_DifferentiationInfo)]; - char dummy9[sizeof(TraceActivation)]; - char dummy10[sizeof(UE_ContextInformationRetrieve)]; - char dummy11[sizeof(UE_X2AP_ID)]; - char dummy12[sizeof(UE_X2AP_ID_Extension)]; - char dummy13[sizeof(V2XServicesAuthorized)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 16; } - void clear() {type = 0;} - void select_id_New_eNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_New_eNB_UE_X2AP_ID_Extension() { set(optional); type=2;} - void select_id_Old_eNB_UE_X2AP_ID() { set(mandatory); type=3;} - void select_id_Old_eNB_UE_X2AP_ID_Extension() { set(optional); type=4;} - void select_id_GUMMEI_ID() { set(mandatory); type=5;} - void select_id_UE_ContextInformationRetrieve() { set(mandatory); type=6;} - void select_id_TraceActivation() { set(optional); type=7;} - void select_id_SRVCCOperationPossible() { set(optional); type=8;} - void select_id_Masked_IMEISV() { set(optional); type=9;} - void select_id_ExpectedUEBehaviour() { set(optional); type=10;} - void select_id_ProSeAuthorized() { set(optional); type=11;} - void select_id_CriticalityDiagnostics() { set(optional); type=12;} - void select_id_V2XServicesAuthorized() { set(optional); type=13;} - void select_id_AerialUEsubscriptionInformation() { set(optional); type=14;} - void select_id_Subscription_Based_UE_DifferentiationInfo() { set(optional); type=15;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(mandatory)) { type = 5; return true; } - else if(equal(mandatory)) { type = 6; return true; } - else if(equal(optional)) { type = 7; return true; } - else if(equal(optional)) { type = 8; return true; } - else if(equal(optional)) { type = 9; return true; } - else if(equal(optional)) { type = 10; return true; } - else if(equal(optional)) { type = 11; return true; } - else if(equal(optional)) { type = 12; return true; } - else if(equal(optional)) { type = 13; return true; } - else if(equal(optional)) { type = 14; return true; } - else if(equal(optional)) { type = 15; return true; } - else { type = 16; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(mandatory);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(mandatory);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(optional);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(optional);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(optional);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(optional);} return false; - case 11: type = 11; if(v(ref_nested())) { return equal(optional);} return false; - case 12: type = 12; if(v(ref_nested())) { return equal(optional);} return false; - case 13: type = 13; if(v(ref_nested())) { return equal(optional);} return false; - case 14: type = 14; if(v(ref_nested())) { return equal(optional);} return false; - case 15: type = 15; if(v(ref_nested())) { return equal(optional);} return false; - case 16: type = 16; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RetrieveUEContextResponse ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ RetrieveUEContextResponse-IEs}}, - ... -} -*/ - -struct RetrieveUEContextResponse : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "RetrieveUEContextResponse";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SNStatusTransfer-IEs X2AP-PROTOCOL-IES ::= { - { ID id-Old-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-New-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-E-RABs-SubjectToStatusTransfer-List CRITICALITY ignore TYPE E-RABs-SubjectToStatusTransfer-List PRESENCE mandatory}| - { ID id-Old-eNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-New-eNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-SgNB-UE-X2AP-ID CRITICALITY ignore TYPE SgNB-UE-X2AP-ID PRESENCE optional}, - ... -} -*/ - -struct SNStatusTransfer_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_Old_eNB_UE_X2AP_ID() { set(id_Old_eNB_UE_X2AP_ID); type=1;} - void select_id_New_eNB_UE_X2AP_ID() { set(id_New_eNB_UE_X2AP_ID); type=2;} - void select_id_E_RABs_SubjectToStatusTransfer_List() { set(id_E_RABs_SubjectToStatusTransfer_List); type=3;} - void select_id_Old_eNB_UE_X2AP_ID_Extension() { set(id_Old_eNB_UE_X2AP_ID_Extension); type=4;} - void select_id_New_eNB_UE_X2AP_ID_Extension() { set(id_New_eNB_UE_X2AP_ID_Extension); type=5;} - void select_id_SgNB_UE_X2AP_ID() { set(id_SgNB_UE_X2AP_ID); type=6;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_Old_eNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_New_eNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_E_RABs_SubjectToStatusTransfer_List)) { type = 3; return true; } - else if(equal(id_Old_eNB_UE_X2AP_ID_Extension)) { type = 4; return true; } - else if(equal(id_New_eNB_UE_X2AP_ID_Extension)) { type = 5; return true; } - else if(equal(id_SgNB_UE_X2AP_ID)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_Old_eNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_New_eNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_E_RABs_SubjectToStatusTransfer_List);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_Old_eNB_UE_X2AP_ID_Extension);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_New_eNB_UE_X2AP_ID_Extension);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_SgNB_UE_X2AP_ID);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_Old_eNB_UE_X2AP_ID() { set(reject); type=1;} - void select_id_New_eNB_UE_X2AP_ID() { set(reject); type=2;} - void select_id_E_RABs_SubjectToStatusTransfer_List() { set(ignore); type=3;} - void select_id_Old_eNB_UE_X2AP_ID_Extension() { set(reject); type=4;} - void select_id_New_eNB_UE_X2AP_ID_Extension() { set(reject); type=5;} - void select_id_SgNB_UE_X2AP_ID() { set(ignore); type=6;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(reject)) { type = 4; return true; } - else if(equal(reject)) { type = 5; return true; } - else if(equal(ignore)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(reject);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(reject);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(ignore);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_Old_eNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_Old_eNB_UE_X2AP_ID() const { return get(1); } - UE_X2AP_ID& select_id_New_eNB_UE_X2AP_ID() { return set(2); } - UE_X2AP_ID const* get_id_New_eNB_UE_X2AP_ID() const { return get(2); } - E_RABs_SubjectToStatusTransfer_List& select_id_E_RABs_SubjectToStatusTransfer_List() { return set(3); } - E_RABs_SubjectToStatusTransfer_List const* get_id_E_RABs_SubjectToStatusTransfer_List() const { return get(3); } - UE_X2AP_ID_Extension& select_id_Old_eNB_UE_X2AP_ID_Extension() { return set(4); } - UE_X2AP_ID_Extension const* get_id_Old_eNB_UE_X2AP_ID_Extension() const { return get(4); } - UE_X2AP_ID_Extension& select_id_New_eNB_UE_X2AP_ID_Extension() { return set(5); } - UE_X2AP_ID_Extension const* get_id_New_eNB_UE_X2AP_ID_Extension() const { return get(5); } - SgNB_UE_X2AP_ID& select_id_SgNB_UE_X2AP_ID() { return set(6); } - SgNB_UE_X2AP_ID const* get_id_SgNB_UE_X2AP_ID() const { return get(6); } - bool is_unknown() const { return type == 7; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_Old_eNB_UE_X2AP_ID()); return true; - case 2: v(select_id_New_eNB_UE_X2AP_ID()); return true; - case 3: v(select_id_E_RABs_SubjectToStatusTransfer_List()); return true; - case 4: v(select_id_Old_eNB_UE_X2AP_ID_Extension()); return true; - case 5: v(select_id_New_eNB_UE_X2AP_ID_Extension()); return true; - case 6: v(select_id_SgNB_UE_X2AP_ID()); return true; - case 7: if(type != 7) {clear(); asn::base::set();} type = 7; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_SubjectToStatusTransfer_List)]; - char dummy2[sizeof(SgNB_UE_X2AP_ID)]; - char dummy3[sizeof(UE_X2AP_ID)]; - char dummy4[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_Old_eNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_New_eNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_E_RABs_SubjectToStatusTransfer_List() { set(mandatory); type=3;} - void select_id_Old_eNB_UE_X2AP_ID_Extension() { set(optional); type=4;} - void select_id_New_eNB_UE_X2AP_ID_Extension() { set(optional); type=5;} - void select_id_SgNB_UE_X2AP_ID() { set(optional); type=6;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SNStatusTransfer ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SNStatusTransfer-IEs}}, - ... -} -*/ - -struct SNStatusTransfer : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SNStatusTransfer";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SeNBAdditionRequest-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-UE-SecurityCapabilities CRITICALITY reject TYPE UESecurityCapabilities PRESENCE conditional}| - -- This IE shall be present if the Bearer Option IE is set to the value “SCG bearer” -- - { ID id-SeNBSecurityKey CRITICALITY reject TYPE SeNBSecurityKey PRESENCE conditional}| - -- This IE shall be present if the Bearer Option IE is set to the value “SCG bearer” -- - { ID id-SeNBUEAggregateMaximumBitRate CRITICALITY reject TYPE UEAggregateMaximumBitRate PRESENCE mandatory}| - { ID id-ServingPLMN CRITICALITY ignore TYPE PLMN-Identity PRESENCE optional}| - { ID id-E-RABs-ToBeAdded-List CRITICALITY reject TYPE E-RABs-ToBeAdded-List PRESENCE mandatory}| - { ID id-MeNBtoSeNBContainer CRITICALITY reject TYPE MeNBtoSeNBContainer PRESENCE mandatory}| - { ID id-CSGMembershipStatus CRITICALITY reject TYPE CSGMembershipStatus PRESENCE optional}| - { ID id-SeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE optional}| - { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-ExpectedUEBehaviour CRITICALITY ignore TYPE ExpectedUEBehaviour PRESENCE optional}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}, - ... -} -*/ - -struct SeNBAdditionRequest_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 13; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_UE_SecurityCapabilities() { set(id_UE_SecurityCapabilities); type=2;} - void select_id_SeNBSecurityKey() { set(id_SeNBSecurityKey); type=3;} - void select_id_SeNBUEAggregateMaximumBitRate() { set(id_SeNBUEAggregateMaximumBitRate); type=4;} - void select_id_ServingPLMN() { set(id_ServingPLMN); type=5;} - void select_id_E_RABs_ToBeAdded_List() { set(id_E_RABs_ToBeAdded_List); type=6;} - void select_id_MeNBtoSeNBContainer() { set(id_MeNBtoSeNBContainer); type=7;} - void select_id_CSGMembershipStatus() { set(id_CSGMembershipStatus); type=8;} - void select_id_SeNB_UE_X2AP_ID() { set(id_SeNB_UE_X2AP_ID); type=9;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(id_SeNB_UE_X2AP_ID_Extension); type=10;} - void select_id_ExpectedUEBehaviour() { set(id_ExpectedUEBehaviour); type=11;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=12;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_UE_SecurityCapabilities)) { type = 2; return true; } - else if(equal(id_SeNBSecurityKey)) { type = 3; return true; } - else if(equal(id_SeNBUEAggregateMaximumBitRate)) { type = 4; return true; } - else if(equal(id_ServingPLMN)) { type = 5; return true; } - else if(equal(id_E_RABs_ToBeAdded_List)) { type = 6; return true; } - else if(equal(id_MeNBtoSeNBContainer)) { type = 7; return true; } - else if(equal(id_CSGMembershipStatus)) { type = 8; return true; } - else if(equal(id_SeNB_UE_X2AP_ID)) { type = 9; return true; } - else if(equal(id_SeNB_UE_X2AP_ID_Extension)) { type = 10; return true; } - else if(equal(id_ExpectedUEBehaviour)) { type = 11; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 12; return true; } - else { type = 13; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_UE_SecurityCapabilities);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_SeNBSecurityKey);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_SeNBUEAggregateMaximumBitRate);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_ServingPLMN);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_E_RABs_ToBeAdded_List);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(id_MeNBtoSeNBContainer);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(id_CSGMembershipStatus);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(id_SeNB_UE_X2AP_ID);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(id_SeNB_UE_X2AP_ID_Extension);} return false; - case 11: type = 11; if(v(ref_nested())) { return equal(id_ExpectedUEBehaviour);} return false; - case 12: type = 12; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 13: type = 13; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 13; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(reject); type=1;} - void select_id_UE_SecurityCapabilities() { set(reject); type=2;} - void select_id_SeNBSecurityKey() { set(reject); type=3;} - void select_id_SeNBUEAggregateMaximumBitRate() { set(reject); type=4;} - void select_id_ServingPLMN() { set(ignore); type=5;} - void select_id_E_RABs_ToBeAdded_List() { set(reject); type=6;} - void select_id_MeNBtoSeNBContainer() { set(reject); type=7;} - void select_id_CSGMembershipStatus() { set(reject); type=8;} - void select_id_SeNB_UE_X2AP_ID() { set(reject); type=9;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(reject); type=10;} - void select_id_ExpectedUEBehaviour() { set(ignore); type=11;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(reject); type=12;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(reject)) { type = 3; return true; } - else if(equal(reject)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else if(equal(reject)) { type = 6; return true; } - else if(equal(reject)) { type = 7; return true; } - else if(equal(reject)) { type = 8; return true; } - else if(equal(reject)) { type = 9; return true; } - else if(equal(reject)) { type = 10; return true; } - else if(equal(ignore)) { type = 11; return true; } - else if(equal(reject)) { type = 12; return true; } - else { type = 13; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(reject);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(reject);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(reject);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(reject);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(reject);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(reject);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(reject);} return false; - case 11: type = 11; if(v(ref_nested())) { return equal(ignore);} return false; - case 12: type = 12; if(v(ref_nested())) { return equal(reject);} return false; - case 13: type = 13; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - UESecurityCapabilities& select_id_UE_SecurityCapabilities() { return set(2); } - UESecurityCapabilities const* get_id_UE_SecurityCapabilities() const { return get(2); } - SeNBSecurityKey& select_id_SeNBSecurityKey() { return set(3); } - SeNBSecurityKey const* get_id_SeNBSecurityKey() const { return get(3); } - UEAggregateMaximumBitRate& select_id_SeNBUEAggregateMaximumBitRate() { return set(4); } - UEAggregateMaximumBitRate const* get_id_SeNBUEAggregateMaximumBitRate() const { return get(4); } - PLMN_Identity& select_id_ServingPLMN() { return set(5); } - PLMN_Identity const* get_id_ServingPLMN() const { return get(5); } - E_RABs_ToBeAdded_List& select_id_E_RABs_ToBeAdded_List() { return set(6); } - E_RABs_ToBeAdded_List const* get_id_E_RABs_ToBeAdded_List() const { return get(6); } - MeNBtoSeNBContainer& select_id_MeNBtoSeNBContainer() { return set(7); } - MeNBtoSeNBContainer const* get_id_MeNBtoSeNBContainer() const { return get(7); } - CSGMembershipStatus& select_id_CSGMembershipStatus() { return set(8); } - CSGMembershipStatus const* get_id_CSGMembershipStatus() const { return get(8); } - UE_X2AP_ID& select_id_SeNB_UE_X2AP_ID() { return set(9); } - UE_X2AP_ID const* get_id_SeNB_UE_X2AP_ID() const { return get(9); } - UE_X2AP_ID_Extension& select_id_SeNB_UE_X2AP_ID_Extension() { return set(10); } - UE_X2AP_ID_Extension const* get_id_SeNB_UE_X2AP_ID_Extension() const { return get(10); } - ExpectedUEBehaviour& select_id_ExpectedUEBehaviour() { return set(11); } - ExpectedUEBehaviour const* get_id_ExpectedUEBehaviour() const { return get(11); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(12); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(12); } - bool is_unknown() const { return type == 13; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - case 7: var.destroy(); break; - case 8: var.destroy(); break; - case 9: var.destroy(); break; - case 10: var.destroy(); break; - case 11: var.destroy(); break; - case 12: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - v.template operator()(7); - v.template operator()(8); - v.template operator()(9); - v.template operator()(10); - v.template operator()(11); - v.template operator()(12); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_UE_SecurityCapabilities()); return true; - case 3: v(select_id_SeNBSecurityKey()); return true; - case 4: v(select_id_SeNBUEAggregateMaximumBitRate()); return true; - case 5: v(select_id_ServingPLMN()); return true; - case 6: v(select_id_E_RABs_ToBeAdded_List()); return true; - case 7: v(select_id_MeNBtoSeNBContainer()); return true; - case 8: v(select_id_CSGMembershipStatus()); return true; - case 9: v(select_id_SeNB_UE_X2AP_ID()); return true; - case 10: v(select_id_SeNB_UE_X2AP_ID_Extension()); return true; - case 11: v(select_id_ExpectedUEBehaviour()); return true; - case 12: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 13: if(type != 13) {clear(); asn::base::set();} type = 13; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - case 7: v(var.as()); return true; - case 8: v(var.as()); return true; - case 9: v(var.as()); return true; - case 10: v(var.as()); return true; - case 11: v(var.as()); return true; - case 12: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CSGMembershipStatus)]; - char dummy2[sizeof(E_RABs_ToBeAdded_List)]; - char dummy3[sizeof(ExpectedUEBehaviour)]; - char dummy4[sizeof(MeNBtoSeNBContainer)]; - char dummy5[sizeof(PLMN_Identity)]; - char dummy6[sizeof(SeNBSecurityKey)]; - char dummy7[sizeof(UEAggregateMaximumBitRate)]; - char dummy8[sizeof(UESecurityCapabilities)]; - char dummy9[sizeof(UE_X2AP_ID)]; - char dummy10[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 13; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_UE_SecurityCapabilities() { set(conditional); type=2;} - void select_id_SeNBSecurityKey() { set(conditional); type=3;} - void select_id_SeNBUEAggregateMaximumBitRate() { set(mandatory); type=4;} - void select_id_ServingPLMN() { set(optional); type=5;} - void select_id_E_RABs_ToBeAdded_List() { set(mandatory); type=6;} - void select_id_MeNBtoSeNBContainer() { set(mandatory); type=7;} - void select_id_CSGMembershipStatus() { set(optional); type=8;} - void select_id_SeNB_UE_X2AP_ID() { set(optional); type=9;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(optional); type=10;} - void select_id_ExpectedUEBehaviour() { set(optional); type=11;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=12;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(conditional)) { type = 2; return true; } - else if(equal(conditional)) { type = 3; return true; } - else if(equal(mandatory)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else if(equal(mandatory)) { type = 6; return true; } - else if(equal(mandatory)) { type = 7; return true; } - else if(equal(optional)) { type = 8; return true; } - else if(equal(optional)) { type = 9; return true; } - else if(equal(optional)) { type = 10; return true; } - else if(equal(optional)) { type = 11; return true; } - else if(equal(optional)) { type = 12; return true; } - else { type = 13; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(conditional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(conditional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(mandatory);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(mandatory);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(mandatory);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(optional);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(optional);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(optional);} return false; - case 11: type = 11; if(v(ref_nested())) { return equal(optional);} return false; - case 12: type = 12; if(v(ref_nested())) { return equal(optional);} return false; - case 13: type = 13; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SeNBAdditionRequest ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SeNBAdditionRequest-IEs}}, - ... -} -*/ - -struct SeNBAdditionRequest : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SeNBAdditionRequest";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SeNBAdditionRequestAcknowledge-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-E-RABs-Admitted-ToBeAdded-List CRITICALITY ignore TYPE E-RABs-Admitted-ToBeAdded-List PRESENCE mandatory}| - { ID id-E-RABs-NotAdmitted-List CRITICALITY ignore TYPE E-RAB-List PRESENCE optional}| - { ID id-SeNBtoMeNBContainer CRITICALITY reject TYPE SeNBtoMeNBContainer PRESENCE mandatory}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| - { ID id-GW-TransportLayerAddress CRITICALITY ignore TYPE TransportLayerAddress PRESENCE optional}| - { ID id-SIPTO-L-GW-TransportLayerAddress CRITICALITY ignore TYPE TransportLayerAddress PRESENCE optional}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-Tunnel-Information-for-BBF CRITICALITY ignore TYPE TunnelInformation PRESENCE optional}, - ... -} -*/ - -struct SeNBAdditionRequestAcknowledge_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 12; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(id_SeNB_UE_X2AP_ID); type=2;} - void select_id_E_RABs_Admitted_ToBeAdded_List() { set(id_E_RABs_Admitted_ToBeAdded_List); type=3;} - void select_id_E_RABs_NotAdmitted_List() { set(id_E_RABs_NotAdmitted_List); type=4;} - void select_id_SeNBtoMeNBContainer() { set(id_SeNBtoMeNBContainer); type=5;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=6;} - void select_id_GW_TransportLayerAddress() { set(id_GW_TransportLayerAddress); type=7;} - void select_id_SIPTO_L_GW_TransportLayerAddress() { set(id_SIPTO_L_GW_TransportLayerAddress); type=8;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=9;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(id_SeNB_UE_X2AP_ID_Extension); type=10;} - void select_id_Tunnel_Information_for_BBF() { set(id_Tunnel_Information_for_BBF); type=11;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SeNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_E_RABs_Admitted_ToBeAdded_List)) { type = 3; return true; } - else if(equal(id_E_RABs_NotAdmitted_List)) { type = 4; return true; } - else if(equal(id_SeNBtoMeNBContainer)) { type = 5; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 6; return true; } - else if(equal(id_GW_TransportLayerAddress)) { type = 7; return true; } - else if(equal(id_SIPTO_L_GW_TransportLayerAddress)) { type = 8; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 9; return true; } - else if(equal(id_SeNB_UE_X2AP_ID_Extension)) { type = 10; return true; } - else if(equal(id_Tunnel_Information_for_BBF)) { type = 11; return true; } - else { type = 12; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SeNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_E_RABs_Admitted_ToBeAdded_List);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_E_RABs_NotAdmitted_List);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_SeNBtoMeNBContainer);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(id_GW_TransportLayerAddress);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(id_SIPTO_L_GW_TransportLayerAddress);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(id_SeNB_UE_X2AP_ID_Extension);} return false; - case 11: type = 11; if(v(ref_nested())) { return equal(id_Tunnel_Information_for_BBF);} return false; - case 12: type = 12; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 12; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(reject); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(reject); type=2;} - void select_id_E_RABs_Admitted_ToBeAdded_List() { set(ignore); type=3;} - void select_id_E_RABs_NotAdmitted_List() { set(ignore); type=4;} - void select_id_SeNBtoMeNBContainer() { set(reject); type=5;} - void select_id_CriticalityDiagnostics() { set(ignore); type=6;} - void select_id_GW_TransportLayerAddress() { set(ignore); type=7;} - void select_id_SIPTO_L_GW_TransportLayerAddress() { set(ignore); type=8;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(reject); type=9;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(reject); type=10;} - void select_id_Tunnel_Information_for_BBF() { set(ignore); type=11;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(reject)) { type = 5; return true; } - else if(equal(ignore)) { type = 6; return true; } - else if(equal(ignore)) { type = 7; return true; } - else if(equal(ignore)) { type = 8; return true; } - else if(equal(reject)) { type = 9; return true; } - else if(equal(reject)) { type = 10; return true; } - else if(equal(ignore)) { type = 11; return true; } - else { type = 12; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(reject);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(ignore);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(ignore);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(ignore);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(reject);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(reject);} return false; - case 11: type = 11; if(v(ref_nested())) { return equal(ignore);} return false; - case 12: type = 12; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - UE_X2AP_ID& select_id_SeNB_UE_X2AP_ID() { return set(2); } - UE_X2AP_ID const* get_id_SeNB_UE_X2AP_ID() const { return get(2); } - E_RABs_Admitted_ToBeAdded_List& select_id_E_RABs_Admitted_ToBeAdded_List() { return set(3); } - E_RABs_Admitted_ToBeAdded_List const* get_id_E_RABs_Admitted_ToBeAdded_List() const { return get(3); } - E_RAB_List& select_id_E_RABs_NotAdmitted_List() { return set(4); } - E_RAB_List const* get_id_E_RABs_NotAdmitted_List() const { return get(4); } - SeNBtoMeNBContainer& select_id_SeNBtoMeNBContainer() { return set(5); } - SeNBtoMeNBContainer const* get_id_SeNBtoMeNBContainer() const { return get(5); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(6); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(6); } - TransportLayerAddress& select_id_GW_TransportLayerAddress() { return set(7); } - TransportLayerAddress const* get_id_GW_TransportLayerAddress() const { return get(7); } - TransportLayerAddress& select_id_SIPTO_L_GW_TransportLayerAddress() { return set(8); } - TransportLayerAddress const* get_id_SIPTO_L_GW_TransportLayerAddress() const { return get(8); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(9); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(9); } - UE_X2AP_ID_Extension& select_id_SeNB_UE_X2AP_ID_Extension() { return set(10); } - UE_X2AP_ID_Extension const* get_id_SeNB_UE_X2AP_ID_Extension() const { return get(10); } - TunnelInformation& select_id_Tunnel_Information_for_BBF() { return set(11); } - TunnelInformation const* get_id_Tunnel_Information_for_BBF() const { return get(11); } - bool is_unknown() const { return type == 12; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - case 7: var.destroy(); break; - case 8: var.destroy(); break; - case 9: var.destroy(); break; - case 10: var.destroy(); break; - case 11: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - v.template operator()(7); - v.template operator()(8); - v.template operator()(9); - v.template operator()(10); - v.template operator()(11); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SeNB_UE_X2AP_ID()); return true; - case 3: v(select_id_E_RABs_Admitted_ToBeAdded_List()); return true; - case 4: v(select_id_E_RABs_NotAdmitted_List()); return true; - case 5: v(select_id_SeNBtoMeNBContainer()); return true; - case 6: v(select_id_CriticalityDiagnostics()); return true; - case 7: v(select_id_GW_TransportLayerAddress()); return true; - case 8: v(select_id_SIPTO_L_GW_TransportLayerAddress()); return true; - case 9: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 10: v(select_id_SeNB_UE_X2AP_ID_Extension()); return true; - case 11: v(select_id_Tunnel_Information_for_BBF()); return true; - case 12: if(type != 12) {clear(); asn::base::set();} type = 12; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - case 7: v(var.as()); return true; - case 8: v(var.as()); return true; - case 9: v(var.as()); return true; - case 10: v(var.as()); return true; - case 11: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CriticalityDiagnostics)]; - char dummy2[sizeof(E_RAB_List)]; - char dummy3[sizeof(E_RABs_Admitted_ToBeAdded_List)]; - char dummy4[sizeof(SeNBtoMeNBContainer)]; - char dummy5[sizeof(TransportLayerAddress)]; - char dummy6[sizeof(TunnelInformation)]; - char dummy7[sizeof(UE_X2AP_ID)]; - char dummy8[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 12; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_E_RABs_Admitted_ToBeAdded_List() { set(mandatory); type=3;} - void select_id_E_RABs_NotAdmitted_List() { set(optional); type=4;} - void select_id_SeNBtoMeNBContainer() { set(mandatory); type=5;} - void select_id_CriticalityDiagnostics() { set(optional); type=6;} - void select_id_GW_TransportLayerAddress() { set(optional); type=7;} - void select_id_SIPTO_L_GW_TransportLayerAddress() { set(optional); type=8;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=9;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(optional); type=10;} - void select_id_Tunnel_Information_for_BBF() { set(optional); type=11;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(mandatory)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else if(equal(optional)) { type = 7; return true; } - else if(equal(optional)) { type = 8; return true; } - else if(equal(optional)) { type = 9; return true; } - else if(equal(optional)) { type = 10; return true; } - else if(equal(optional)) { type = 11; return true; } - else { type = 12; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(mandatory);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(optional);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(optional);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(optional);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(optional);} return false; - case 11: type = 11; if(v(ref_nested())) { return equal(optional);} return false; - case 12: type = 12; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SeNBAdditionRequestAcknowledge ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SeNBAdditionRequestAcknowledge-IEs}}, - ... -} -*/ - -struct SeNBAdditionRequestAcknowledge : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SeNBAdditionRequestAcknowledge";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SeNBAdditionRequestReject-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}, - ... -} -*/ - -struct SeNBAdditionRequestReject_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(id_SeNB_UE_X2AP_ID); type=2;} - void select_id_Cause() { set(id_Cause); type=3;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=5;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(id_SeNB_UE_X2AP_ID_Extension); type=6;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SeNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_Cause)) { type = 3; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 4; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 5; return true; } - else if(equal(id_SeNB_UE_X2AP_ID_Extension)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SeNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_SeNB_UE_X2AP_ID_Extension);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(reject); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(reject); type=2;} - void select_id_Cause() { set(ignore); type=3;} - void select_id_CriticalityDiagnostics() { set(ignore); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(reject); type=5;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(reject); type=6;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(reject)) { type = 5; return true; } - else if(equal(reject)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(reject);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(reject);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - UE_X2AP_ID& select_id_SeNB_UE_X2AP_ID() { return set(2); } - UE_X2AP_ID const* get_id_SeNB_UE_X2AP_ID() const { return get(2); } - Cause& select_id_Cause() { return set(3); } - Cause const* get_id_Cause() const { return get(3); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(4); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(4); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(5); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(5); } - UE_X2AP_ID_Extension& select_id_SeNB_UE_X2AP_ID_Extension() { return set(6); } - UE_X2AP_ID_Extension const* get_id_SeNB_UE_X2AP_ID_Extension() const { return get(6); } - bool is_unknown() const { return type == 7; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SeNB_UE_X2AP_ID()); return true; - case 3: v(select_id_Cause()); return true; - case 4: v(select_id_CriticalityDiagnostics()); return true; - case 5: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 6: v(select_id_SeNB_UE_X2AP_ID_Extension()); return true; - case 7: if(type != 7) {clear(); asn::base::set();} type = 7; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(CriticalityDiagnostics)]; - char dummy3[sizeof(UE_X2AP_ID)]; - char dummy4[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_Cause() { set(mandatory); type=3;} - void select_id_CriticalityDiagnostics() { set(optional); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=5;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(optional); type=6;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SeNBAdditionRequestReject ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SeNBAdditionRequestReject-IEs}}, - ... -} -*/ - -struct SeNBAdditionRequestReject : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SeNBAdditionRequestReject";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SeNBCounterCheckRequest-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-E-RABs-SubjectToCounterCheck-List CRITICALITY ignore TYPE E-RABs-SubjectToCounterCheck-List PRESENCE mandatory}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}, - ... -} -*/ - -struct SeNBCounterCheckRequest_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(id_SeNB_UE_X2AP_ID); type=2;} - void select_id_E_RABs_SubjectToCounterCheck_List() { set(id_E_RABs_SubjectToCounterCheck_List); type=3;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=4;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(id_SeNB_UE_X2AP_ID_Extension); type=5;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SeNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_E_RABs_SubjectToCounterCheck_List)) { type = 3; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 4; return true; } - else if(equal(id_SeNB_UE_X2AP_ID_Extension)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SeNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_E_RABs_SubjectToCounterCheck_List);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_SeNB_UE_X2AP_ID_Extension);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(reject); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(reject); type=2;} - void select_id_E_RABs_SubjectToCounterCheck_List() { set(ignore); type=3;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(ignore); type=4;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(ignore); type=5;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - UE_X2AP_ID& select_id_SeNB_UE_X2AP_ID() { return set(2); } - UE_X2AP_ID const* get_id_SeNB_UE_X2AP_ID() const { return get(2); } - E_RABs_SubjectToCounterCheck_List& select_id_E_RABs_SubjectToCounterCheck_List() { return set(3); } - E_RABs_SubjectToCounterCheck_List const* get_id_E_RABs_SubjectToCounterCheck_List() const { return get(3); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(4); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(4); } - UE_X2AP_ID_Extension& select_id_SeNB_UE_X2AP_ID_Extension() { return set(5); } - UE_X2AP_ID_Extension const* get_id_SeNB_UE_X2AP_ID_Extension() const { return get(5); } - bool is_unknown() const { return type == 6; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SeNB_UE_X2AP_ID()); return true; - case 3: v(select_id_E_RABs_SubjectToCounterCheck_List()); return true; - case 4: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 5: v(select_id_SeNB_UE_X2AP_ID_Extension()); return true; - case 6: if(type != 6) {clear(); asn::base::set();} type = 6; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_SubjectToCounterCheck_List)]; - char dummy2[sizeof(UE_X2AP_ID)]; - char dummy3[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_E_RABs_SubjectToCounterCheck_List() { set(mandatory); type=3;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=4;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(optional); type=5;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SeNBCounterCheckRequest ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SeNBCounterCheckRequest-IEs}}, - ... -} -*/ - -struct SeNBCounterCheckRequest : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SeNBCounterCheckRequest";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SeNBModificationConfirm-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-MeNBtoSeNBContainer CRITICALITY ignore TYPE MeNBtoSeNBContainer PRESENCE optional}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}, - ... -} -*/ - -struct SeNBModificationConfirm_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(id_SeNB_UE_X2AP_ID); type=2;} - void select_id_MeNBtoSeNBContainer() { set(id_MeNBtoSeNBContainer); type=3;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=5;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(id_SeNB_UE_X2AP_ID_Extension); type=6;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SeNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_MeNBtoSeNBContainer)) { type = 3; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 4; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 5; return true; } - else if(equal(id_SeNB_UE_X2AP_ID_Extension)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SeNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_MeNBtoSeNBContainer);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_SeNB_UE_X2AP_ID_Extension);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(ignore); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(ignore); type=2;} - void select_id_MeNBtoSeNBContainer() { set(ignore); type=3;} - void select_id_CriticalityDiagnostics() { set(ignore); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(ignore); type=5;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(ignore); type=6;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else if(equal(ignore)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(ignore);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - UE_X2AP_ID& select_id_SeNB_UE_X2AP_ID() { return set(2); } - UE_X2AP_ID const* get_id_SeNB_UE_X2AP_ID() const { return get(2); } - MeNBtoSeNBContainer& select_id_MeNBtoSeNBContainer() { return set(3); } - MeNBtoSeNBContainer const* get_id_MeNBtoSeNBContainer() const { return get(3); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(4); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(4); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(5); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(5); } - UE_X2AP_ID_Extension& select_id_SeNB_UE_X2AP_ID_Extension() { return set(6); } - UE_X2AP_ID_Extension const* get_id_SeNB_UE_X2AP_ID_Extension() const { return get(6); } - bool is_unknown() const { return type == 7; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SeNB_UE_X2AP_ID()); return true; - case 3: v(select_id_MeNBtoSeNBContainer()); return true; - case 4: v(select_id_CriticalityDiagnostics()); return true; - case 5: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 6: v(select_id_SeNB_UE_X2AP_ID_Extension()); return true; - case 7: if(type != 7) {clear(); asn::base::set();} type = 7; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CriticalityDiagnostics)]; - char dummy2[sizeof(MeNBtoSeNBContainer)]; - char dummy3[sizeof(UE_X2AP_ID)]; - char dummy4[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_MeNBtoSeNBContainer() { set(optional); type=3;} - void select_id_CriticalityDiagnostics() { set(optional); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=5;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(optional); type=6;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SeNBModificationConfirm ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SeNBModificationConfirm-IEs}}, - ... -} -*/ - -struct SeNBModificationConfirm : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SeNBModificationConfirm";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SeNBModificationRefuse-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| - { ID id-MeNBtoSeNBContainer CRITICALITY ignore TYPE MeNBtoSeNBContainer PRESENCE optional}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}, - ... -} -*/ - -struct SeNBModificationRefuse_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 8; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(id_SeNB_UE_X2AP_ID); type=2;} - void select_id_Cause() { set(id_Cause); type=3;} - void select_id_MeNBtoSeNBContainer() { set(id_MeNBtoSeNBContainer); type=4;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=5;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=6;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(id_SeNB_UE_X2AP_ID_Extension); type=7;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SeNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_Cause)) { type = 3; return true; } - else if(equal(id_MeNBtoSeNBContainer)) { type = 4; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 5; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 6; return true; } - else if(equal(id_SeNB_UE_X2AP_ID_Extension)) { type = 7; return true; } - else { type = 8; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SeNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_MeNBtoSeNBContainer);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(id_SeNB_UE_X2AP_ID_Extension);} return false; - case 8: type = 8; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 8; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(ignore); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(ignore); type=2;} - void select_id_Cause() { set(ignore); type=3;} - void select_id_MeNBtoSeNBContainer() { set(ignore); type=4;} - void select_id_CriticalityDiagnostics() { set(ignore); type=5;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(ignore); type=6;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(ignore); type=7;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else if(equal(ignore)) { type = 6; return true; } - else if(equal(ignore)) { type = 7; return true; } - else { type = 8; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(ignore);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(ignore);} return false; - case 8: type = 8; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - UE_X2AP_ID& select_id_SeNB_UE_X2AP_ID() { return set(2); } - UE_X2AP_ID const* get_id_SeNB_UE_X2AP_ID() const { return get(2); } - Cause& select_id_Cause() { return set(3); } - Cause const* get_id_Cause() const { return get(3); } - MeNBtoSeNBContainer& select_id_MeNBtoSeNBContainer() { return set(4); } - MeNBtoSeNBContainer const* get_id_MeNBtoSeNBContainer() const { return get(4); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(5); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(5); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(6); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(6); } - UE_X2AP_ID_Extension& select_id_SeNB_UE_X2AP_ID_Extension() { return set(7); } - UE_X2AP_ID_Extension const* get_id_SeNB_UE_X2AP_ID_Extension() const { return get(7); } - bool is_unknown() const { return type == 8; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - case 7: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - v.template operator()(7); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SeNB_UE_X2AP_ID()); return true; - case 3: v(select_id_Cause()); return true; - case 4: v(select_id_MeNBtoSeNBContainer()); return true; - case 5: v(select_id_CriticalityDiagnostics()); return true; - case 6: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 7: v(select_id_SeNB_UE_X2AP_ID_Extension()); return true; - case 8: if(type != 8) {clear(); asn::base::set();} type = 8; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - case 7: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(CriticalityDiagnostics)]; - char dummy3[sizeof(MeNBtoSeNBContainer)]; - char dummy4[sizeof(UE_X2AP_ID)]; - char dummy5[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 8; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_Cause() { set(mandatory); type=3;} - void select_id_MeNBtoSeNBContainer() { set(optional); type=4;} - void select_id_CriticalityDiagnostics() { set(optional); type=5;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=6;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(optional); type=7;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else if(equal(optional)) { type = 7; return true; } - else { type = 8; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(optional);} return false; - case 8: type = 8; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SeNBModificationRefuse ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SeNBModificationRefuse-IEs}}, - ... -} -*/ - -struct SeNBModificationRefuse : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SeNBModificationRefuse";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -UE-ContextInformationSeNBModReqExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct UE_ContextInformationSeNBModReqExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -UE-ContextInformationSeNBModReq ::= SEQUENCE { - uE-SecurityCapabilities UESecurityCapabilities OPTIONAL, - seNB-SecurityKey SeNBSecurityKey OPTIONAL, - seNBUEAggregateMaximumBitRate UEAggregateMaximumBitRate OPTIONAL, - e-RABs-ToBeAdded E-RABs-ToBeAdded-List-ModReq OPTIONAL, - e-RABs-ToBeModified E-RABs-ToBeModified-List-ModReq OPTIONAL, - e-RABs-ToBeReleased E-RABs-ToBeReleased-List-ModReq OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {UE-ContextInformationSeNBModReqExtIEs} } OPTIONAL, - ... -} -*/ - -struct UE_ContextInformationSeNBModReq : asn::sequence<7, 0, true, 7> -{ - static constexpr const char* name() {return "UE-ContextInformationSeNBModReq";} - using parent_t = asn::sequence<7, 0, true, 7>; - struct uE_SecurityCapabilities_t : UESecurityCapabilities - { - static constexpr const char* name() {return "uE_SecurityCapabilities_t";} - using parent_t = UESecurityCapabilities; - static constexpr bool optional = true; - - }; - uE_SecurityCapabilities_t& set_uE_SecurityCapabilities() { uE_SecurityCapabilities.setpresent(true); return uE_SecurityCapabilities;} - uE_SecurityCapabilities_t const* get_uE_SecurityCapabilities() const {return uE_SecurityCapabilities.is_valid() ? &uE_SecurityCapabilities : nullptr;} - struct seNB_SecurityKey_t : SeNBSecurityKey - { - static constexpr const char* name() {return "seNB_SecurityKey_t";} - using parent_t = SeNBSecurityKey; - static constexpr bool optional = true; - - }; - seNB_SecurityKey_t& set_seNB_SecurityKey() { seNB_SecurityKey.setpresent(true); return seNB_SecurityKey;} - seNB_SecurityKey_t const* get_seNB_SecurityKey() const {return seNB_SecurityKey.is_valid() ? &seNB_SecurityKey : nullptr;} - struct seNBUEAggregateMaximumBitRate_t : UEAggregateMaximumBitRate - { - static constexpr const char* name() {return "seNBUEAggregateMaximumBitRate_t";} - using parent_t = UEAggregateMaximumBitRate; - static constexpr bool optional = true; - - }; - seNBUEAggregateMaximumBitRate_t& set_seNBUEAggregateMaximumBitRate() { seNBUEAggregateMaximumBitRate.setpresent(true); return seNBUEAggregateMaximumBitRate;} - seNBUEAggregateMaximumBitRate_t const* get_seNBUEAggregateMaximumBitRate() const {return seNBUEAggregateMaximumBitRate.is_valid() ? &seNBUEAggregateMaximumBitRate : nullptr;} - struct e_RABs_ToBeAdded_t : E_RABs_ToBeAdded_List_ModReq - { - static constexpr const char* name() {return "e_RABs_ToBeAdded_t";} - using parent_t = E_RABs_ToBeAdded_List_ModReq; - static constexpr bool optional = true; - - }; - e_RABs_ToBeAdded_t& set_e_RABs_ToBeAdded() { e_RABs_ToBeAdded.setpresent(true); return e_RABs_ToBeAdded;} - e_RABs_ToBeAdded_t const* get_e_RABs_ToBeAdded() const {return e_RABs_ToBeAdded.is_valid() ? &e_RABs_ToBeAdded : nullptr;} - struct e_RABs_ToBeModified_t : E_RABs_ToBeModified_List_ModReq - { - static constexpr const char* name() {return "e_RABs_ToBeModified_t";} - using parent_t = E_RABs_ToBeModified_List_ModReq; - static constexpr bool optional = true; - - }; - e_RABs_ToBeModified_t& set_e_RABs_ToBeModified() { e_RABs_ToBeModified.setpresent(true); return e_RABs_ToBeModified;} - e_RABs_ToBeModified_t const* get_e_RABs_ToBeModified() const {return e_RABs_ToBeModified.is_valid() ? &e_RABs_ToBeModified : nullptr;} - struct e_RABs_ToBeReleased_t : E_RABs_ToBeReleased_List_ModReq - { - static constexpr const char* name() {return "e_RABs_ToBeReleased_t";} - using parent_t = E_RABs_ToBeReleased_List_ModReq; - static constexpr bool optional = true; - - }; - e_RABs_ToBeReleased_t& set_e_RABs_ToBeReleased() { e_RABs_ToBeReleased.setpresent(true); return e_RABs_ToBeReleased;} - e_RABs_ToBeReleased_t const* get_e_RABs_ToBeReleased() const {return e_RABs_ToBeReleased.is_valid() ? &e_RABs_ToBeReleased : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(uE_SecurityCapabilities); - v(seNB_SecurityKey); - v(seNBUEAggregateMaximumBitRate); - v(e_RABs_ToBeAdded); - v(e_RABs_ToBeModified); - v(e_RABs_ToBeReleased); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(uE_SecurityCapabilities); - v(seNB_SecurityKey); - v(seNBUEAggregateMaximumBitRate); - v(e_RABs_ToBeAdded); - v(e_RABs_ToBeModified); - v(e_RABs_ToBeReleased); - v(iE_Extensions); - - }; - void clear() - { - uE_SecurityCapabilities.clear(); - seNB_SecurityKey.clear(); - seNBUEAggregateMaximumBitRate.clear(); - e_RABs_ToBeAdded.clear(); - e_RABs_ToBeModified.clear(); - e_RABs_ToBeReleased.clear(); - iE_Extensions.clear(); - - }; - private: - uE_SecurityCapabilities_t uE_SecurityCapabilities; - seNB_SecurityKey_t seNB_SecurityKey; - seNBUEAggregateMaximumBitRate_t seNBUEAggregateMaximumBitRate; - e_RABs_ToBeAdded_t e_RABs_ToBeAdded; - e_RABs_ToBeModified_t e_RABs_ToBeModified; - e_RABs_ToBeReleased_t e_RABs_ToBeReleased; - iE_Extensions_t iE_Extensions; - -}; -/* -SeNBModificationRequest-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| - { ID id-SCGChangeIndication CRITICALITY ignore TYPE SCGChangeIndication PRESENCE optional}| - { ID id-ServingPLMN CRITICALITY ignore TYPE PLMN-Identity PRESENCE optional}| - { ID id-UE-ContextInformationSeNBModReq CRITICALITY reject TYPE UE-ContextInformationSeNBModReq PRESENCE optional}| - { ID id-MeNBtoSeNBContainer CRITICALITY ignore TYPE MeNBtoSeNBContainer PRESENCE optional}| - { ID id-CSGMembershipStatus CRITICALITY reject TYPE CSGMembershipStatus PRESENCE optional}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}, - ... -} -*/ - -struct SeNBModificationRequest_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 11; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(id_SeNB_UE_X2AP_ID); type=2;} - void select_id_Cause() { set(id_Cause); type=3;} - void select_id_SCGChangeIndication() { set(id_SCGChangeIndication); type=4;} - void select_id_ServingPLMN() { set(id_ServingPLMN); type=5;} - void select_id_UE_ContextInformationSeNBModReq() { set(id_UE_ContextInformationSeNBModReq); type=6;} - void select_id_MeNBtoSeNBContainer() { set(id_MeNBtoSeNBContainer); type=7;} - void select_id_CSGMembershipStatus() { set(id_CSGMembershipStatus); type=8;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=9;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(id_SeNB_UE_X2AP_ID_Extension); type=10;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SeNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_Cause)) { type = 3; return true; } - else if(equal(id_SCGChangeIndication)) { type = 4; return true; } - else if(equal(id_ServingPLMN)) { type = 5; return true; } - else if(equal(id_UE_ContextInformationSeNBModReq)) { type = 6; return true; } - else if(equal(id_MeNBtoSeNBContainer)) { type = 7; return true; } - else if(equal(id_CSGMembershipStatus)) { type = 8; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 9; return true; } - else if(equal(id_SeNB_UE_X2AP_ID_Extension)) { type = 10; return true; } - else { type = 11; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SeNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_SCGChangeIndication);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_ServingPLMN);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_UE_ContextInformationSeNBModReq);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(id_MeNBtoSeNBContainer);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(id_CSGMembershipStatus);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(id_SeNB_UE_X2AP_ID_Extension);} return false; - case 11: type = 11; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 11; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(reject); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(reject); type=2;} - void select_id_Cause() { set(ignore); type=3;} - void select_id_SCGChangeIndication() { set(ignore); type=4;} - void select_id_ServingPLMN() { set(ignore); type=5;} - void select_id_UE_ContextInformationSeNBModReq() { set(reject); type=6;} - void select_id_MeNBtoSeNBContainer() { set(ignore); type=7;} - void select_id_CSGMembershipStatus() { set(reject); type=8;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(reject); type=9;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(reject); type=10;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else if(equal(reject)) { type = 6; return true; } - else if(equal(ignore)) { type = 7; return true; } - else if(equal(reject)) { type = 8; return true; } - else if(equal(reject)) { type = 9; return true; } - else if(equal(reject)) { type = 10; return true; } - else { type = 11; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(reject);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(ignore);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(reject);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(reject);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(reject);} return false; - case 11: type = 11; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - UE_X2AP_ID& select_id_SeNB_UE_X2AP_ID() { return set(2); } - UE_X2AP_ID const* get_id_SeNB_UE_X2AP_ID() const { return get(2); } - Cause& select_id_Cause() { return set(3); } - Cause const* get_id_Cause() const { return get(3); } - SCGChangeIndication& select_id_SCGChangeIndication() { return set(4); } - SCGChangeIndication const* get_id_SCGChangeIndication() const { return get(4); } - PLMN_Identity& select_id_ServingPLMN() { return set(5); } - PLMN_Identity const* get_id_ServingPLMN() const { return get(5); } - UE_ContextInformationSeNBModReq& select_id_UE_ContextInformationSeNBModReq() { return set(6); } - UE_ContextInformationSeNBModReq const* get_id_UE_ContextInformationSeNBModReq() const { return get(6); } - MeNBtoSeNBContainer& select_id_MeNBtoSeNBContainer() { return set(7); } - MeNBtoSeNBContainer const* get_id_MeNBtoSeNBContainer() const { return get(7); } - CSGMembershipStatus& select_id_CSGMembershipStatus() { return set(8); } - CSGMembershipStatus const* get_id_CSGMembershipStatus() const { return get(8); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(9); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(9); } - UE_X2AP_ID_Extension& select_id_SeNB_UE_X2AP_ID_Extension() { return set(10); } - UE_X2AP_ID_Extension const* get_id_SeNB_UE_X2AP_ID_Extension() const { return get(10); } - bool is_unknown() const { return type == 11; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - case 7: var.destroy(); break; - case 8: var.destroy(); break; - case 9: var.destroy(); break; - case 10: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - v.template operator()(7); - v.template operator()(8); - v.template operator()(9); - v.template operator()(10); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SeNB_UE_X2AP_ID()); return true; - case 3: v(select_id_Cause()); return true; - case 4: v(select_id_SCGChangeIndication()); return true; - case 5: v(select_id_ServingPLMN()); return true; - case 6: v(select_id_UE_ContextInformationSeNBModReq()); return true; - case 7: v(select_id_MeNBtoSeNBContainer()); return true; - case 8: v(select_id_CSGMembershipStatus()); return true; - case 9: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 10: v(select_id_SeNB_UE_X2AP_ID_Extension()); return true; - case 11: if(type != 11) {clear(); asn::base::set();} type = 11; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - case 7: v(var.as()); return true; - case 8: v(var.as()); return true; - case 9: v(var.as()); return true; - case 10: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CSGMembershipStatus)]; - char dummy2[sizeof(Cause)]; - char dummy3[sizeof(MeNBtoSeNBContainer)]; - char dummy4[sizeof(PLMN_Identity)]; - char dummy5[sizeof(SCGChangeIndication)]; - char dummy6[sizeof(UE_ContextInformationSeNBModReq)]; - char dummy7[sizeof(UE_X2AP_ID)]; - char dummy8[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 11; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_Cause() { set(mandatory); type=3;} - void select_id_SCGChangeIndication() { set(optional); type=4;} - void select_id_ServingPLMN() { set(optional); type=5;} - void select_id_UE_ContextInformationSeNBModReq() { set(optional); type=6;} - void select_id_MeNBtoSeNBContainer() { set(optional); type=7;} - void select_id_CSGMembershipStatus() { set(optional); type=8;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=9;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(optional); type=10;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else if(equal(optional)) { type = 7; return true; } - else if(equal(optional)) { type = 8; return true; } - else if(equal(optional)) { type = 9; return true; } - else if(equal(optional)) { type = 10; return true; } - else { type = 11; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(optional);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(optional);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(optional);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(optional);} return false; - case 11: type = 11; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SeNBModificationRequest ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ SeNBModificationRequest-IEs}}, - ... -} -*/ - -struct SeNBModificationRequest : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SeNBModificationRequest";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SeNBModificationRequestAcknowledge-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-E-RABs-Admitted-ToBeAdded-ModAckList CRITICALITY ignore TYPE E-RABs-Admitted-ToBeAdded-ModAckList PRESENCE optional}| - { ID id-E-RABs-Admitted-ToBeModified-ModAckList CRITICALITY ignore TYPE E-RABs-Admitted-ToBeModified-ModAckList PRESENCE optional}| - { ID id-E-RABs-Admitted-ToBeReleased-ModAckList CRITICALITY ignore TYPE E-RABs-Admitted-ToBeReleased-ModAckList PRESENCE optional}| - { ID id-E-RABs-NotAdmitted-List CRITICALITY ignore TYPE E-RAB-List PRESENCE optional}| - { ID id-SeNBtoMeNBContainer CRITICALITY ignore TYPE SeNBtoMeNBContainer PRESENCE optional}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}, - ... -} -*/ - -struct SeNBModificationRequestAcknowledge_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 11; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(id_SeNB_UE_X2AP_ID); type=2;} - void select_id_E_RABs_Admitted_ToBeAdded_ModAckList() { set(id_E_RABs_Admitted_ToBeAdded_ModAckList); type=3;} - void select_id_E_RABs_Admitted_ToBeModified_ModAckList() { set(id_E_RABs_Admitted_ToBeModified_ModAckList); type=4;} - void select_id_E_RABs_Admitted_ToBeReleased_ModAckList() { set(id_E_RABs_Admitted_ToBeReleased_ModAckList); type=5;} - void select_id_E_RABs_NotAdmitted_List() { set(id_E_RABs_NotAdmitted_List); type=6;} - void select_id_SeNBtoMeNBContainer() { set(id_SeNBtoMeNBContainer); type=7;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=8;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=9;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(id_SeNB_UE_X2AP_ID_Extension); type=10;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SeNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_E_RABs_Admitted_ToBeAdded_ModAckList)) { type = 3; return true; } - else if(equal(id_E_RABs_Admitted_ToBeModified_ModAckList)) { type = 4; return true; } - else if(equal(id_E_RABs_Admitted_ToBeReleased_ModAckList)) { type = 5; return true; } - else if(equal(id_E_RABs_NotAdmitted_List)) { type = 6; return true; } - else if(equal(id_SeNBtoMeNBContainer)) { type = 7; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 8; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 9; return true; } - else if(equal(id_SeNB_UE_X2AP_ID_Extension)) { type = 10; return true; } - else { type = 11; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SeNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_E_RABs_Admitted_ToBeAdded_ModAckList);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_E_RABs_Admitted_ToBeModified_ModAckList);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_E_RABs_Admitted_ToBeReleased_ModAckList);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_E_RABs_NotAdmitted_List);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(id_SeNBtoMeNBContainer);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(id_SeNB_UE_X2AP_ID_Extension);} return false; - case 11: type = 11; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 11; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(ignore); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(ignore); type=2;} - void select_id_E_RABs_Admitted_ToBeAdded_ModAckList() { set(ignore); type=3;} - void select_id_E_RABs_Admitted_ToBeModified_ModAckList() { set(ignore); type=4;} - void select_id_E_RABs_Admitted_ToBeReleased_ModAckList() { set(ignore); type=5;} - void select_id_E_RABs_NotAdmitted_List() { set(ignore); type=6;} - void select_id_SeNBtoMeNBContainer() { set(ignore); type=7;} - void select_id_CriticalityDiagnostics() { set(ignore); type=8;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(ignore); type=9;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(ignore); type=10;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else if(equal(ignore)) { type = 6; return true; } - else if(equal(ignore)) { type = 7; return true; } - else if(equal(ignore)) { type = 8; return true; } - else if(equal(ignore)) { type = 9; return true; } - else if(equal(ignore)) { type = 10; return true; } - else { type = 11; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(ignore);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(ignore);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(ignore);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(ignore);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(ignore);} return false; - case 11: type = 11; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - UE_X2AP_ID& select_id_SeNB_UE_X2AP_ID() { return set(2); } - UE_X2AP_ID const* get_id_SeNB_UE_X2AP_ID() const { return get(2); } - E_RABs_Admitted_ToBeAdded_ModAckList& select_id_E_RABs_Admitted_ToBeAdded_ModAckList() { return set(3); } - E_RABs_Admitted_ToBeAdded_ModAckList const* get_id_E_RABs_Admitted_ToBeAdded_ModAckList() const { return get(3); } - E_RABs_Admitted_ToBeModified_ModAckList& select_id_E_RABs_Admitted_ToBeModified_ModAckList() { return set(4); } - E_RABs_Admitted_ToBeModified_ModAckList const* get_id_E_RABs_Admitted_ToBeModified_ModAckList() const { return get(4); } - E_RABs_Admitted_ToBeReleased_ModAckList& select_id_E_RABs_Admitted_ToBeReleased_ModAckList() { return set(5); } - E_RABs_Admitted_ToBeReleased_ModAckList const* get_id_E_RABs_Admitted_ToBeReleased_ModAckList() const { return get(5); } - E_RAB_List& select_id_E_RABs_NotAdmitted_List() { return set(6); } - E_RAB_List const* get_id_E_RABs_NotAdmitted_List() const { return get(6); } - SeNBtoMeNBContainer& select_id_SeNBtoMeNBContainer() { return set(7); } - SeNBtoMeNBContainer const* get_id_SeNBtoMeNBContainer() const { return get(7); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(8); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(8); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(9); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(9); } - UE_X2AP_ID_Extension& select_id_SeNB_UE_X2AP_ID_Extension() { return set(10); } - UE_X2AP_ID_Extension const* get_id_SeNB_UE_X2AP_ID_Extension() const { return get(10); } - bool is_unknown() const { return type == 11; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - case 7: var.destroy(); break; - case 8: var.destroy(); break; - case 9: var.destroy(); break; - case 10: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - v.template operator()(7); - v.template operator()(8); - v.template operator()(9); - v.template operator()(10); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SeNB_UE_X2AP_ID()); return true; - case 3: v(select_id_E_RABs_Admitted_ToBeAdded_ModAckList()); return true; - case 4: v(select_id_E_RABs_Admitted_ToBeModified_ModAckList()); return true; - case 5: v(select_id_E_RABs_Admitted_ToBeReleased_ModAckList()); return true; - case 6: v(select_id_E_RABs_NotAdmitted_List()); return true; - case 7: v(select_id_SeNBtoMeNBContainer()); return true; - case 8: v(select_id_CriticalityDiagnostics()); return true; - case 9: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 10: v(select_id_SeNB_UE_X2AP_ID_Extension()); return true; - case 11: if(type != 11) {clear(); asn::base::set();} type = 11; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - case 7: v(var.as()); return true; - case 8: v(var.as()); return true; - case 9: v(var.as()); return true; - case 10: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CriticalityDiagnostics)]; - char dummy2[sizeof(E_RAB_List)]; - char dummy3[sizeof(E_RABs_Admitted_ToBeAdded_ModAckList)]; - char dummy4[sizeof(E_RABs_Admitted_ToBeModified_ModAckList)]; - char dummy5[sizeof(E_RABs_Admitted_ToBeReleased_ModAckList)]; - char dummy6[sizeof(SeNBtoMeNBContainer)]; - char dummy7[sizeof(UE_X2AP_ID)]; - char dummy8[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 11; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_E_RABs_Admitted_ToBeAdded_ModAckList() { set(optional); type=3;} - void select_id_E_RABs_Admitted_ToBeModified_ModAckList() { set(optional); type=4;} - void select_id_E_RABs_Admitted_ToBeReleased_ModAckList() { set(optional); type=5;} - void select_id_E_RABs_NotAdmitted_List() { set(optional); type=6;} - void select_id_SeNBtoMeNBContainer() { set(optional); type=7;} - void select_id_CriticalityDiagnostics() { set(optional); type=8;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=9;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(optional); type=10;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else if(equal(optional)) { type = 7; return true; } - else if(equal(optional)) { type = 8; return true; } - else if(equal(optional)) { type = 9; return true; } - else if(equal(optional)) { type = 10; return true; } - else { type = 11; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(optional);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(optional);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(optional);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(optional);} return false; - case 11: type = 11; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SeNBModificationRequestAcknowledge ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SeNBModificationRequestAcknowledge-IEs}}, - ... -} -*/ - -struct SeNBModificationRequestAcknowledge : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SeNBModificationRequestAcknowledge";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SeNBModificationRequestReject-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}, - ... -} -*/ - -struct SeNBModificationRequestReject_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(id_SeNB_UE_X2AP_ID); type=2;} - void select_id_Cause() { set(id_Cause); type=3;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=5;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(id_SeNB_UE_X2AP_ID_Extension); type=6;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SeNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_Cause)) { type = 3; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 4; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 5; return true; } - else if(equal(id_SeNB_UE_X2AP_ID_Extension)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SeNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_SeNB_UE_X2AP_ID_Extension);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(ignore); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(ignore); type=2;} - void select_id_Cause() { set(ignore); type=3;} - void select_id_CriticalityDiagnostics() { set(ignore); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(ignore); type=5;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(ignore); type=6;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else if(equal(ignore)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(ignore);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - UE_X2AP_ID& select_id_SeNB_UE_X2AP_ID() { return set(2); } - UE_X2AP_ID const* get_id_SeNB_UE_X2AP_ID() const { return get(2); } - Cause& select_id_Cause() { return set(3); } - Cause const* get_id_Cause() const { return get(3); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(4); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(4); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(5); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(5); } - UE_X2AP_ID_Extension& select_id_SeNB_UE_X2AP_ID_Extension() { return set(6); } - UE_X2AP_ID_Extension const* get_id_SeNB_UE_X2AP_ID_Extension() const { return get(6); } - bool is_unknown() const { return type == 7; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SeNB_UE_X2AP_ID()); return true; - case 3: v(select_id_Cause()); return true; - case 4: v(select_id_CriticalityDiagnostics()); return true; - case 5: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 6: v(select_id_SeNB_UE_X2AP_ID_Extension()); return true; - case 7: if(type != 7) {clear(); asn::base::set();} type = 7; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(CriticalityDiagnostics)]; - char dummy3[sizeof(UE_X2AP_ID)]; - char dummy4[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_Cause() { set(mandatory); type=3;} - void select_id_CriticalityDiagnostics() { set(optional); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=5;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(optional); type=6;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SeNBModificationRequestReject ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SeNBModificationRequestReject-IEs}}, - ... -} -*/ - -struct SeNBModificationRequestReject : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SeNBModificationRequestReject";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SeNBModificationRequired-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| - { ID id-SCGChangeIndication CRITICALITY ignore TYPE SCGChangeIndication PRESENCE optional}| - { ID id-E-RABs-ToBeReleased-ModReqd CRITICALITY ignore TYPE E-RABs-ToBeReleased-ModReqd PRESENCE optional}| - { ID id-SeNBtoMeNBContainer CRITICALITY ignore TYPE SeNBtoMeNBContainer PRESENCE optional}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}, - ... -} -*/ - -struct SeNBModificationRequired_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 9; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(id_SeNB_UE_X2AP_ID); type=2;} - void select_id_Cause() { set(id_Cause); type=3;} - void select_id_SCGChangeIndication() { set(id_SCGChangeIndication); type=4;} - void select_id_E_RABs_ToBeReleased_ModReqd() { set(id_E_RABs_ToBeReleased_ModReqd); type=5;} - void select_id_SeNBtoMeNBContainer() { set(id_SeNBtoMeNBContainer); type=6;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=7;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(id_SeNB_UE_X2AP_ID_Extension); type=8;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SeNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_Cause)) { type = 3; return true; } - else if(equal(id_SCGChangeIndication)) { type = 4; return true; } - else if(equal(id_E_RABs_ToBeReleased_ModReqd)) { type = 5; return true; } - else if(equal(id_SeNBtoMeNBContainer)) { type = 6; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 7; return true; } - else if(equal(id_SeNB_UE_X2AP_ID_Extension)) { type = 8; return true; } - else { type = 9; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SeNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_SCGChangeIndication);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_E_RABs_ToBeReleased_ModReqd);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_SeNBtoMeNBContainer);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(id_SeNB_UE_X2AP_ID_Extension);} return false; - case 9: type = 9; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 9; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(reject); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(reject); type=2;} - void select_id_Cause() { set(ignore); type=3;} - void select_id_SCGChangeIndication() { set(ignore); type=4;} - void select_id_E_RABs_ToBeReleased_ModReqd() { set(ignore); type=5;} - void select_id_SeNBtoMeNBContainer() { set(ignore); type=6;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(reject); type=7;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(reject); type=8;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else if(equal(ignore)) { type = 6; return true; } - else if(equal(reject)) { type = 7; return true; } - else if(equal(reject)) { type = 8; return true; } - else { type = 9; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(ignore);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(reject);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(reject);} return false; - case 9: type = 9; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - UE_X2AP_ID& select_id_SeNB_UE_X2AP_ID() { return set(2); } - UE_X2AP_ID const* get_id_SeNB_UE_X2AP_ID() const { return get(2); } - Cause& select_id_Cause() { return set(3); } - Cause const* get_id_Cause() const { return get(3); } - SCGChangeIndication& select_id_SCGChangeIndication() { return set(4); } - SCGChangeIndication const* get_id_SCGChangeIndication() const { return get(4); } - E_RABs_ToBeReleased_ModReqd& select_id_E_RABs_ToBeReleased_ModReqd() { return set(5); } - E_RABs_ToBeReleased_ModReqd const* get_id_E_RABs_ToBeReleased_ModReqd() const { return get(5); } - SeNBtoMeNBContainer& select_id_SeNBtoMeNBContainer() { return set(6); } - SeNBtoMeNBContainer const* get_id_SeNBtoMeNBContainer() const { return get(6); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(7); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(7); } - UE_X2AP_ID_Extension& select_id_SeNB_UE_X2AP_ID_Extension() { return set(8); } - UE_X2AP_ID_Extension const* get_id_SeNB_UE_X2AP_ID_Extension() const { return get(8); } - bool is_unknown() const { return type == 9; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - case 7: var.destroy(); break; - case 8: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - v.template operator()(7); - v.template operator()(8); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SeNB_UE_X2AP_ID()); return true; - case 3: v(select_id_Cause()); return true; - case 4: v(select_id_SCGChangeIndication()); return true; - case 5: v(select_id_E_RABs_ToBeReleased_ModReqd()); return true; - case 6: v(select_id_SeNBtoMeNBContainer()); return true; - case 7: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 8: v(select_id_SeNB_UE_X2AP_ID_Extension()); return true; - case 9: if(type != 9) {clear(); asn::base::set();} type = 9; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - case 7: v(var.as()); return true; - case 8: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(E_RABs_ToBeReleased_ModReqd)]; - char dummy3[sizeof(SCGChangeIndication)]; - char dummy4[sizeof(SeNBtoMeNBContainer)]; - char dummy5[sizeof(UE_X2AP_ID)]; - char dummy6[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 9; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_Cause() { set(mandatory); type=3;} - void select_id_SCGChangeIndication() { set(optional); type=4;} - void select_id_E_RABs_ToBeReleased_ModReqd() { set(optional); type=5;} - void select_id_SeNBtoMeNBContainer() { set(optional); type=6;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=7;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(optional); type=8;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else if(equal(optional)) { type = 7; return true; } - else if(equal(optional)) { type = 8; return true; } - else { type = 9; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(optional);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(optional);} return false; - case 9: type = 9; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SeNBModificationRequired ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SeNBModificationRequired-IEs}}, - ... -} -*/ - -struct SeNBModificationRequired : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SeNBModificationRequired";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SeNBReconfigurationComplete-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-ResponseInformationSeNBReconfComp CRITICALITY ignore TYPE ResponseInformationSeNBReconfComp PRESENCE mandatory}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}, - ... -} -*/ - -struct SeNBReconfigurationComplete_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(id_SeNB_UE_X2AP_ID); type=2;} - void select_id_ResponseInformationSeNBReconfComp() { set(id_ResponseInformationSeNBReconfComp); type=3;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=4;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(id_SeNB_UE_X2AP_ID_Extension); type=5;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SeNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_ResponseInformationSeNBReconfComp)) { type = 3; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 4; return true; } - else if(equal(id_SeNB_UE_X2AP_ID_Extension)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SeNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_ResponseInformationSeNBReconfComp);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_SeNB_UE_X2AP_ID_Extension);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(reject); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(reject); type=2;} - void select_id_ResponseInformationSeNBReconfComp() { set(ignore); type=3;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(reject); type=4;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(reject); type=5;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(reject)) { type = 4; return true; } - else if(equal(reject)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(reject);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(reject);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - UE_X2AP_ID& select_id_SeNB_UE_X2AP_ID() { return set(2); } - UE_X2AP_ID const* get_id_SeNB_UE_X2AP_ID() const { return get(2); } - ResponseInformationSeNBReconfComp& select_id_ResponseInformationSeNBReconfComp() { return set(3); } - ResponseInformationSeNBReconfComp const* get_id_ResponseInformationSeNBReconfComp() const { return get(3); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(4); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(4); } - UE_X2AP_ID_Extension& select_id_SeNB_UE_X2AP_ID_Extension() { return set(5); } - UE_X2AP_ID_Extension const* get_id_SeNB_UE_X2AP_ID_Extension() const { return get(5); } - bool is_unknown() const { return type == 6; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SeNB_UE_X2AP_ID()); return true; - case 3: v(select_id_ResponseInformationSeNBReconfComp()); return true; - case 4: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 5: v(select_id_SeNB_UE_X2AP_ID_Extension()); return true; - case 6: if(type != 6) {clear(); asn::base::set();} type = 6; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(ResponseInformationSeNBReconfComp)]; - char dummy2[sizeof(UE_X2AP_ID)]; - char dummy3[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_ResponseInformationSeNBReconfComp() { set(mandatory); type=3;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=4;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(optional); type=5;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SeNBReconfigurationComplete ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SeNBReconfigurationComplete-IEs}}, - ... -} -*/ - -struct SeNBReconfigurationComplete : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SeNBReconfigurationComplete";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SeNBReleaseConfirm-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-E-RABs-ToBeReleased-List-RelConf CRITICALITY ignore TYPE E-RABs-ToBeReleased-List-RelConf PRESENCE optional}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}, - ... -} -*/ - -struct SeNBReleaseConfirm_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(id_SeNB_UE_X2AP_ID); type=2;} - void select_id_E_RABs_ToBeReleased_List_RelConf() { set(id_E_RABs_ToBeReleased_List_RelConf); type=3;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=5;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(id_SeNB_UE_X2AP_ID_Extension); type=6;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SeNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_E_RABs_ToBeReleased_List_RelConf)) { type = 3; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 4; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 5; return true; } - else if(equal(id_SeNB_UE_X2AP_ID_Extension)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SeNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_E_RABs_ToBeReleased_List_RelConf);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_SeNB_UE_X2AP_ID_Extension);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(ignore); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(ignore); type=2;} - void select_id_E_RABs_ToBeReleased_List_RelConf() { set(ignore); type=3;} - void select_id_CriticalityDiagnostics() { set(ignore); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(ignore); type=5;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(ignore); type=6;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else if(equal(ignore)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(ignore);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - UE_X2AP_ID& select_id_SeNB_UE_X2AP_ID() { return set(2); } - UE_X2AP_ID const* get_id_SeNB_UE_X2AP_ID() const { return get(2); } - E_RABs_ToBeReleased_List_RelConf& select_id_E_RABs_ToBeReleased_List_RelConf() { return set(3); } - E_RABs_ToBeReleased_List_RelConf const* get_id_E_RABs_ToBeReleased_List_RelConf() const { return get(3); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(4); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(4); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(5); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(5); } - UE_X2AP_ID_Extension& select_id_SeNB_UE_X2AP_ID_Extension() { return set(6); } - UE_X2AP_ID_Extension const* get_id_SeNB_UE_X2AP_ID_Extension() const { return get(6); } - bool is_unknown() const { return type == 7; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SeNB_UE_X2AP_ID()); return true; - case 3: v(select_id_E_RABs_ToBeReleased_List_RelConf()); return true; - case 4: v(select_id_CriticalityDiagnostics()); return true; - case 5: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 6: v(select_id_SeNB_UE_X2AP_ID_Extension()); return true; - case 7: if(type != 7) {clear(); asn::base::set();} type = 7; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CriticalityDiagnostics)]; - char dummy2[sizeof(E_RABs_ToBeReleased_List_RelConf)]; - char dummy3[sizeof(UE_X2AP_ID)]; - char dummy4[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_E_RABs_ToBeReleased_List_RelConf() { set(optional); type=3;} - void select_id_CriticalityDiagnostics() { set(optional); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=5;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(optional); type=6;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SeNBReleaseConfirm ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SeNBReleaseConfirm-IEs}}, - ... -} -*/ - -struct SeNBReleaseConfirm : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SeNBReleaseConfirm";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SeNBReleaseRequest-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE optional}| - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE optional}| - { ID id-E-RABs-ToBeReleased-List-RelReq CRITICALITY ignore TYPE E-RABs-ToBeReleased-List-RelReq PRESENCE optional}| - { ID id-UE-ContextKeptIndicator CRITICALITY ignore TYPE UE-ContextKeptIndicator PRESENCE optional}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-MakeBeforeBreakIndicator CRITICALITY ignore TYPE MakeBeforeBreakIndicator PRESENCE optional}, - ... -} -*/ - -struct SeNBReleaseRequest_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 9; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(id_SeNB_UE_X2AP_ID); type=2;} - void select_id_Cause() { set(id_Cause); type=3;} - void select_id_E_RABs_ToBeReleased_List_RelReq() { set(id_E_RABs_ToBeReleased_List_RelReq); type=4;} - void select_id_UE_ContextKeptIndicator() { set(id_UE_ContextKeptIndicator); type=5;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=6;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(id_SeNB_UE_X2AP_ID_Extension); type=7;} - void select_id_MakeBeforeBreakIndicator() { set(id_MakeBeforeBreakIndicator); type=8;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SeNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_Cause)) { type = 3; return true; } - else if(equal(id_E_RABs_ToBeReleased_List_RelReq)) { type = 4; return true; } - else if(equal(id_UE_ContextKeptIndicator)) { type = 5; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 6; return true; } - else if(equal(id_SeNB_UE_X2AP_ID_Extension)) { type = 7; return true; } - else if(equal(id_MakeBeforeBreakIndicator)) { type = 8; return true; } - else { type = 9; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SeNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_E_RABs_ToBeReleased_List_RelReq);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_UE_ContextKeptIndicator);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(id_SeNB_UE_X2AP_ID_Extension);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(id_MakeBeforeBreakIndicator);} return false; - case 9: type = 9; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 9; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(reject); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(reject); type=2;} - void select_id_Cause() { set(ignore); type=3;} - void select_id_E_RABs_ToBeReleased_List_RelReq() { set(ignore); type=4;} - void select_id_UE_ContextKeptIndicator() { set(ignore); type=5;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(reject); type=6;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(reject); type=7;} - void select_id_MakeBeforeBreakIndicator() { set(ignore); type=8;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else if(equal(reject)) { type = 6; return true; } - else if(equal(reject)) { type = 7; return true; } - else if(equal(ignore)) { type = 8; return true; } - else { type = 9; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(reject);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(reject);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(ignore);} return false; - case 9: type = 9; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - UE_X2AP_ID& select_id_SeNB_UE_X2AP_ID() { return set(2); } - UE_X2AP_ID const* get_id_SeNB_UE_X2AP_ID() const { return get(2); } - Cause& select_id_Cause() { return set(3); } - Cause const* get_id_Cause() const { return get(3); } - E_RABs_ToBeReleased_List_RelReq& select_id_E_RABs_ToBeReleased_List_RelReq() { return set(4); } - E_RABs_ToBeReleased_List_RelReq const* get_id_E_RABs_ToBeReleased_List_RelReq() const { return get(4); } - UE_ContextKeptIndicator& select_id_UE_ContextKeptIndicator() { return set(5); } - UE_ContextKeptIndicator const* get_id_UE_ContextKeptIndicator() const { return get(5); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(6); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(6); } - UE_X2AP_ID_Extension& select_id_SeNB_UE_X2AP_ID_Extension() { return set(7); } - UE_X2AP_ID_Extension const* get_id_SeNB_UE_X2AP_ID_Extension() const { return get(7); } - MakeBeforeBreakIndicator& select_id_MakeBeforeBreakIndicator() { return set(8); } - MakeBeforeBreakIndicator const* get_id_MakeBeforeBreakIndicator() const { return get(8); } - bool is_unknown() const { return type == 9; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - case 7: var.destroy(); break; - case 8: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - v.template operator()(7); - v.template operator()(8); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SeNB_UE_X2AP_ID()); return true; - case 3: v(select_id_Cause()); return true; - case 4: v(select_id_E_RABs_ToBeReleased_List_RelReq()); return true; - case 5: v(select_id_UE_ContextKeptIndicator()); return true; - case 6: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 7: v(select_id_SeNB_UE_X2AP_ID_Extension()); return true; - case 8: v(select_id_MakeBeforeBreakIndicator()); return true; - case 9: if(type != 9) {clear(); asn::base::set();} type = 9; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - case 7: v(var.as()); return true; - case 8: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(E_RABs_ToBeReleased_List_RelReq)]; - char dummy3[sizeof(MakeBeforeBreakIndicator)]; - char dummy4[sizeof(UE_ContextKeptIndicator)]; - char dummy5[sizeof(UE_X2AP_ID)]; - char dummy6[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 9; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(optional); type=2;} - void select_id_Cause() { set(optional); type=3;} - void select_id_E_RABs_ToBeReleased_List_RelReq() { set(optional); type=4;} - void select_id_UE_ContextKeptIndicator() { set(optional); type=5;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=6;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(optional); type=7;} - void select_id_MakeBeforeBreakIndicator() { set(optional); type=8;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else if(equal(optional)) { type = 7; return true; } - else if(equal(optional)) { type = 8; return true; } - else { type = 9; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(optional);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(optional);} return false; - case 9: type = 9; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SeNBReleaseRequest ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SeNBReleaseRequest-IEs}}, - ... -} -*/ - -struct SeNBReleaseRequest : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SeNBReleaseRequest";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SeNBReleaseRequired-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}, - ... -} -*/ - -struct SeNBReleaseRequired_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(id_SeNB_UE_X2AP_ID); type=2;} - void select_id_Cause() { set(id_Cause); type=3;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=4;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(id_SeNB_UE_X2AP_ID_Extension); type=5;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SeNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_Cause)) { type = 3; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 4; return true; } - else if(equal(id_SeNB_UE_X2AP_ID_Extension)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SeNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_SeNB_UE_X2AP_ID_Extension);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(reject); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(reject); type=2;} - void select_id_Cause() { set(ignore); type=3;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(reject); type=4;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(reject); type=5;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(reject)) { type = 4; return true; } - else if(equal(reject)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(reject);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(reject);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - UE_X2AP_ID& select_id_SeNB_UE_X2AP_ID() { return set(2); } - UE_X2AP_ID const* get_id_SeNB_UE_X2AP_ID() const { return get(2); } - Cause& select_id_Cause() { return set(3); } - Cause const* get_id_Cause() const { return get(3); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(4); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(4); } - UE_X2AP_ID_Extension& select_id_SeNB_UE_X2AP_ID_Extension() { return set(5); } - UE_X2AP_ID_Extension const* get_id_SeNB_UE_X2AP_ID_Extension() const { return get(5); } - bool is_unknown() const { return type == 6; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SeNB_UE_X2AP_ID()); return true; - case 3: v(select_id_Cause()); return true; - case 4: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 5: v(select_id_SeNB_UE_X2AP_ID_Extension()); return true; - case 6: if(type != 6) {clear(); asn::base::set();} type = 6; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(UE_X2AP_ID)]; - char dummy3[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_Cause() { set(mandatory); type=3;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=4;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(optional); type=5;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SeNBReleaseRequired ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SeNBReleaseRequired-IEs}}, - ... -} -*/ - -struct SeNBReleaseRequired : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SeNBReleaseRequired";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SecondaryRATDataUsageReport-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SgNB-UE-X2AP-ID CRITICALITY reject TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}| - { ID id-SecondaryRATUsageReportList CRITICALITY reject TYPE SecondaryRATUsageReportList PRESENCE mandatory}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}, - ... -} -*/ - -struct SecondaryRATDataUsageReport_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(id_SgNB_UE_X2AP_ID); type=2;} - void select_id_SecondaryRATUsageReportList() { set(id_SecondaryRATUsageReportList); type=3;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=4;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SgNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_SecondaryRATUsageReportList)) { type = 3; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SgNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_SecondaryRATUsageReportList);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(reject); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(reject); type=2;} - void select_id_SecondaryRATUsageReportList() { set(reject); type=3;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(reject); type=4;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(reject)) { type = 3; return true; } - else if(equal(reject)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(reject);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(reject);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - SgNB_UE_X2AP_ID& select_id_SgNB_UE_X2AP_ID() { return set(2); } - SgNB_UE_X2AP_ID const* get_id_SgNB_UE_X2AP_ID() const { return get(2); } - SecondaryRATUsageReportList& select_id_SecondaryRATUsageReportList() { return set(3); } - SecondaryRATUsageReportList const* get_id_SecondaryRATUsageReportList() const { return get(3); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(4); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(4); } - bool is_unknown() const { return type == 5; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SgNB_UE_X2AP_ID()); return true; - case 3: v(select_id_SecondaryRATUsageReportList()); return true; - case 4: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 5: if(type != 5) {clear(); asn::base::set();} type = 5; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(SecondaryRATUsageReportList)]; - char dummy2[sizeof(SgNB_UE_X2AP_ID)]; - char dummy3[sizeof(UE_X2AP_ID)]; - char dummy4[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_SecondaryRATUsageReportList() { set(mandatory); type=3;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=4;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SecondaryRATDataUsageReport ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SecondaryRATDataUsageReport-IEs}}, - ... -} -*/ - -struct SecondaryRATDataUsageReport : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SecondaryRATDataUsageReport";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SgNBActivityNotification-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SgNB-UE-X2AP-ID CRITICALITY reject TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}| - { ID id-UEContextLevelUserPlaneActivity CRITICALITY ignore TYPE UserPlaneTrafficActivityReport PRESENCE optional}| - { ID id-ERABActivityNotifyItemList CRITICALITY ignore TYPE ERABActivityNotifyItemList PRESENCE optional}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}, - ... -} -*/ - -struct SgNBActivityNotification_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(id_SgNB_UE_X2AP_ID); type=2;} - void select_id_UEContextLevelUserPlaneActivity() { set(id_UEContextLevelUserPlaneActivity); type=3;} - void select_id_ERABActivityNotifyItemList() { set(id_ERABActivityNotifyItemList); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=5;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SgNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_UEContextLevelUserPlaneActivity)) { type = 3; return true; } - else if(equal(id_ERABActivityNotifyItemList)) { type = 4; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SgNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_UEContextLevelUserPlaneActivity);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_ERABActivityNotifyItemList);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(reject); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(reject); type=2;} - void select_id_UEContextLevelUserPlaneActivity() { set(ignore); type=3;} - void select_id_ERABActivityNotifyItemList() { set(ignore); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(reject); type=5;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(reject)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(reject);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - SgNB_UE_X2AP_ID& select_id_SgNB_UE_X2AP_ID() { return set(2); } - SgNB_UE_X2AP_ID const* get_id_SgNB_UE_X2AP_ID() const { return get(2); } - UserPlaneTrafficActivityReport& select_id_UEContextLevelUserPlaneActivity() { return set(3); } - UserPlaneTrafficActivityReport const* get_id_UEContextLevelUserPlaneActivity() const { return get(3); } - ERABActivityNotifyItemList& select_id_ERABActivityNotifyItemList() { return set(4); } - ERABActivityNotifyItemList const* get_id_ERABActivityNotifyItemList() const { return get(4); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(5); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(5); } - bool is_unknown() const { return type == 6; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SgNB_UE_X2AP_ID()); return true; - case 3: v(select_id_UEContextLevelUserPlaneActivity()); return true; - case 4: v(select_id_ERABActivityNotifyItemList()); return true; - case 5: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 6: if(type != 6) {clear(); asn::base::set();} type = 6; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(ERABActivityNotifyItemList)]; - char dummy2[sizeof(SgNB_UE_X2AP_ID)]; - char dummy3[sizeof(UE_X2AP_ID)]; - char dummy4[sizeof(UE_X2AP_ID_Extension)]; - char dummy5[sizeof(UserPlaneTrafficActivityReport)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_UEContextLevelUserPlaneActivity() { set(optional); type=3;} - void select_id_ERABActivityNotifyItemList() { set(optional); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=5;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SgNBActivityNotification ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SgNBActivityNotification-IEs}}, - ... -} -*/ - -struct SgNBActivityNotification : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SgNBActivityNotification";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SgNBAdditionRequest-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-NRUESecurityCapabilities CRITICALITY reject TYPE NRUESecurityCapabilities PRESENCE mandatory}| - { ID id-SgNBSecurityKey CRITICALITY reject TYPE SgNBSecurityKey PRESENCE mandatory}| - { ID id-SgNBUEAggregateMaximumBitRate CRITICALITY reject TYPE UEAggregateMaximumBitRate PRESENCE mandatory}| - { ID id-SelectedPLMN CRITICALITY ignore TYPE PLMN-Identity PRESENCE optional}| - { ID id-HandoverRestrictionList CRITICALITY ignore TYPE HandoverRestrictionList PRESENCE optional}| - { ID id-E-RABs-ToBeAdded-SgNBAddReqList CRITICALITY reject TYPE E-RABs-ToBeAdded-SgNBAddReqList PRESENCE mandatory}| - { ID id-MeNBtoSgNBContainer CRITICALITY reject TYPE MeNBtoSgNBContainer PRESENCE mandatory}| - { ID id-SgNB-UE-X2AP-ID CRITICALITY reject TYPE SgNB-UE-X2AP-ID PRESENCE optional}| - { ID id-ExpectedUEBehaviour CRITICALITY ignore TYPE ExpectedUEBehaviour PRESENCE optional}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-RequestedSplitSRBs CRITICALITY reject TYPE SplitSRBs PRESENCE optional}| - { ID id-MeNBResourceCoordinationInformation CRITICALITY ignore TYPE MeNBResourceCoordinationInformation PRESENCE optional}| - { ID id-SGNB-Addition-Trigger-Ind CRITICALITY reject TYPE SGNB-Addition-Trigger-Ind PRESENCE optional}| - { ID id-SubscriberProfileIDforRFP CRITICALITY ignore TYPE SubscriberProfileIDforRFP PRESENCE optional}| - { ID id-MeNBCell-ID CRITICALITY reject TYPE ECGI PRESENCE mandatory}, - ... -} -*/ - -struct SgNBAdditionRequest_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 17; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_NRUESecurityCapabilities() { set(id_NRUESecurityCapabilities); type=2;} - void select_id_SgNBSecurityKey() { set(id_SgNBSecurityKey); type=3;} - void select_id_SgNBUEAggregateMaximumBitRate() { set(id_SgNBUEAggregateMaximumBitRate); type=4;} - void select_id_SelectedPLMN() { set(id_SelectedPLMN); type=5;} - void select_id_HandoverRestrictionList() { set(id_HandoverRestrictionList); type=6;} - void select_id_E_RABs_ToBeAdded_SgNBAddReqList() { set(id_E_RABs_ToBeAdded_SgNBAddReqList); type=7;} - void select_id_MeNBtoSgNBContainer() { set(id_MeNBtoSgNBContainer); type=8;} - void select_id_SgNB_UE_X2AP_ID() { set(id_SgNB_UE_X2AP_ID); type=9;} - void select_id_ExpectedUEBehaviour() { set(id_ExpectedUEBehaviour); type=10;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=11;} - void select_id_RequestedSplitSRBs() { set(id_RequestedSplitSRBs); type=12;} - void select_id_MeNBResourceCoordinationInformation() { set(id_MeNBResourceCoordinationInformation); type=13;} - void select_id_SGNB_Addition_Trigger_Ind() { set(id_SGNB_Addition_Trigger_Ind); type=14;} - void select_id_SubscriberProfileIDforRFP() { set(id_SubscriberProfileIDforRFP); type=15;} - void select_id_MeNBCell_ID() { set(id_MeNBCell_ID); type=16;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_NRUESecurityCapabilities)) { type = 2; return true; } - else if(equal(id_SgNBSecurityKey)) { type = 3; return true; } - else if(equal(id_SgNBUEAggregateMaximumBitRate)) { type = 4; return true; } - else if(equal(id_SelectedPLMN)) { type = 5; return true; } - else if(equal(id_HandoverRestrictionList)) { type = 6; return true; } - else if(equal(id_E_RABs_ToBeAdded_SgNBAddReqList)) { type = 7; return true; } - else if(equal(id_MeNBtoSgNBContainer)) { type = 8; return true; } - else if(equal(id_SgNB_UE_X2AP_ID)) { type = 9; return true; } - else if(equal(id_ExpectedUEBehaviour)) { type = 10; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 11; return true; } - else if(equal(id_RequestedSplitSRBs)) { type = 12; return true; } - else if(equal(id_MeNBResourceCoordinationInformation)) { type = 13; return true; } - else if(equal(id_SGNB_Addition_Trigger_Ind)) { type = 14; return true; } - else if(equal(id_SubscriberProfileIDforRFP)) { type = 15; return true; } - else if(equal(id_MeNBCell_ID)) { type = 16; return true; } - else { type = 17; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_NRUESecurityCapabilities);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_SgNBSecurityKey);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_SgNBUEAggregateMaximumBitRate);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_SelectedPLMN);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_HandoverRestrictionList);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(id_E_RABs_ToBeAdded_SgNBAddReqList);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(id_MeNBtoSgNBContainer);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(id_SgNB_UE_X2AP_ID);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(id_ExpectedUEBehaviour);} return false; - case 11: type = 11; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 12: type = 12; if(v(ref_nested())) { return equal(id_RequestedSplitSRBs);} return false; - case 13: type = 13; if(v(ref_nested())) { return equal(id_MeNBResourceCoordinationInformation);} return false; - case 14: type = 14; if(v(ref_nested())) { return equal(id_SGNB_Addition_Trigger_Ind);} return false; - case 15: type = 15; if(v(ref_nested())) { return equal(id_SubscriberProfileIDforRFP);} return false; - case 16: type = 16; if(v(ref_nested())) { return equal(id_MeNBCell_ID);} return false; - case 17: type = 17; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 17; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(reject); type=1;} - void select_id_NRUESecurityCapabilities() { set(reject); type=2;} - void select_id_SgNBSecurityKey() { set(reject); type=3;} - void select_id_SgNBUEAggregateMaximumBitRate() { set(reject); type=4;} - void select_id_SelectedPLMN() { set(ignore); type=5;} - void select_id_HandoverRestrictionList() { set(ignore); type=6;} - void select_id_E_RABs_ToBeAdded_SgNBAddReqList() { set(reject); type=7;} - void select_id_MeNBtoSgNBContainer() { set(reject); type=8;} - void select_id_SgNB_UE_X2AP_ID() { set(reject); type=9;} - void select_id_ExpectedUEBehaviour() { set(ignore); type=10;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(reject); type=11;} - void select_id_RequestedSplitSRBs() { set(reject); type=12;} - void select_id_MeNBResourceCoordinationInformation() { set(ignore); type=13;} - void select_id_SGNB_Addition_Trigger_Ind() { set(reject); type=14;} - void select_id_SubscriberProfileIDforRFP() { set(ignore); type=15;} - void select_id_MeNBCell_ID() { set(reject); type=16;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(reject)) { type = 3; return true; } - else if(equal(reject)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else if(equal(ignore)) { type = 6; return true; } - else if(equal(reject)) { type = 7; return true; } - else if(equal(reject)) { type = 8; return true; } - else if(equal(reject)) { type = 9; return true; } - else if(equal(ignore)) { type = 10; return true; } - else if(equal(reject)) { type = 11; return true; } - else if(equal(reject)) { type = 12; return true; } - else if(equal(ignore)) { type = 13; return true; } - else if(equal(reject)) { type = 14; return true; } - else if(equal(ignore)) { type = 15; return true; } - else if(equal(reject)) { type = 16; return true; } - else { type = 17; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(reject);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(reject);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(ignore);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(reject);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(reject);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(reject);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(ignore);} return false; - case 11: type = 11; if(v(ref_nested())) { return equal(reject);} return false; - case 12: type = 12; if(v(ref_nested())) { return equal(reject);} return false; - case 13: type = 13; if(v(ref_nested())) { return equal(ignore);} return false; - case 14: type = 14; if(v(ref_nested())) { return equal(reject);} return false; - case 15: type = 15; if(v(ref_nested())) { return equal(ignore);} return false; - case 16: type = 16; if(v(ref_nested())) { return equal(reject);} return false; - case 17: type = 17; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - NRUESecurityCapabilities& select_id_NRUESecurityCapabilities() { return set(2); } - NRUESecurityCapabilities const* get_id_NRUESecurityCapabilities() const { return get(2); } - SgNBSecurityKey& select_id_SgNBSecurityKey() { return set(3); } - SgNBSecurityKey const* get_id_SgNBSecurityKey() const { return get(3); } - UEAggregateMaximumBitRate& select_id_SgNBUEAggregateMaximumBitRate() { return set(4); } - UEAggregateMaximumBitRate const* get_id_SgNBUEAggregateMaximumBitRate() const { return get(4); } - PLMN_Identity& select_id_SelectedPLMN() { return set(5); } - PLMN_Identity const* get_id_SelectedPLMN() const { return get(5); } - HandoverRestrictionList& select_id_HandoverRestrictionList() { return set(6); } - HandoverRestrictionList const* get_id_HandoverRestrictionList() const { return get(6); } - E_RABs_ToBeAdded_SgNBAddReqList& select_id_E_RABs_ToBeAdded_SgNBAddReqList() { return set(7); } - E_RABs_ToBeAdded_SgNBAddReqList const* get_id_E_RABs_ToBeAdded_SgNBAddReqList() const { return get(7); } - MeNBtoSgNBContainer& select_id_MeNBtoSgNBContainer() { return set(8); } - MeNBtoSgNBContainer const* get_id_MeNBtoSgNBContainer() const { return get(8); } - SgNB_UE_X2AP_ID& select_id_SgNB_UE_X2AP_ID() { return set(9); } - SgNB_UE_X2AP_ID const* get_id_SgNB_UE_X2AP_ID() const { return get(9); } - ExpectedUEBehaviour& select_id_ExpectedUEBehaviour() { return set(10); } - ExpectedUEBehaviour const* get_id_ExpectedUEBehaviour() const { return get(10); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(11); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(11); } - SplitSRBs& select_id_RequestedSplitSRBs() { return set(12); } - SplitSRBs const* get_id_RequestedSplitSRBs() const { return get(12); } - MeNBResourceCoordinationInformation& select_id_MeNBResourceCoordinationInformation() { return set(13); } - MeNBResourceCoordinationInformation const* get_id_MeNBResourceCoordinationInformation() const { return get(13); } - SGNB_Addition_Trigger_Ind& select_id_SGNB_Addition_Trigger_Ind() { return set(14); } - SGNB_Addition_Trigger_Ind const* get_id_SGNB_Addition_Trigger_Ind() const { return get(14); } - SubscriberProfileIDforRFP& select_id_SubscriberProfileIDforRFP() { return set(15); } - SubscriberProfileIDforRFP const* get_id_SubscriberProfileIDforRFP() const { return get(15); } - ECGI& select_id_MeNBCell_ID() { return set(16); } - ECGI const* get_id_MeNBCell_ID() const { return get(16); } - bool is_unknown() const { return type == 17; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - case 7: var.destroy(); break; - case 8: var.destroy(); break; - case 9: var.destroy(); break; - case 10: var.destroy(); break; - case 11: var.destroy(); break; - case 12: var.destroy(); break; - case 13: var.destroy(); break; - case 14: var.destroy(); break; - case 15: var.destroy(); break; - case 16: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - v.template operator()(7); - v.template operator()(8); - v.template operator()(9); - v.template operator()(10); - v.template operator()(11); - v.template operator()(12); - v.template operator()(13); - v.template operator()(14); - v.template operator()(15); - v.template operator()(16); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_NRUESecurityCapabilities()); return true; - case 3: v(select_id_SgNBSecurityKey()); return true; - case 4: v(select_id_SgNBUEAggregateMaximumBitRate()); return true; - case 5: v(select_id_SelectedPLMN()); return true; - case 6: v(select_id_HandoverRestrictionList()); return true; - case 7: v(select_id_E_RABs_ToBeAdded_SgNBAddReqList()); return true; - case 8: v(select_id_MeNBtoSgNBContainer()); return true; - case 9: v(select_id_SgNB_UE_X2AP_ID()); return true; - case 10: v(select_id_ExpectedUEBehaviour()); return true; - case 11: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 12: v(select_id_RequestedSplitSRBs()); return true; - case 13: v(select_id_MeNBResourceCoordinationInformation()); return true; - case 14: v(select_id_SGNB_Addition_Trigger_Ind()); return true; - case 15: v(select_id_SubscriberProfileIDforRFP()); return true; - case 16: v(select_id_MeNBCell_ID()); return true; - case 17: if(type != 17) {clear(); asn::base::set();} type = 17; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - case 7: v(var.as()); return true; - case 8: v(var.as()); return true; - case 9: v(var.as()); return true; - case 10: v(var.as()); return true; - case 11: v(var.as()); return true; - case 12: v(var.as()); return true; - case 13: v(var.as()); return true; - case 14: v(var.as()); return true; - case 15: v(var.as()); return true; - case 16: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(ECGI)]; - char dummy2[sizeof(E_RABs_ToBeAdded_SgNBAddReqList)]; - char dummy3[sizeof(ExpectedUEBehaviour)]; - char dummy4[sizeof(HandoverRestrictionList)]; - char dummy5[sizeof(MeNBResourceCoordinationInformation)]; - char dummy6[sizeof(MeNBtoSgNBContainer)]; - char dummy7[sizeof(NRUESecurityCapabilities)]; - char dummy8[sizeof(PLMN_Identity)]; - char dummy9[sizeof(SGNB_Addition_Trigger_Ind)]; - char dummy10[sizeof(SgNBSecurityKey)]; - char dummy11[sizeof(SgNB_UE_X2AP_ID)]; - char dummy12[sizeof(SplitSRBs)]; - char dummy13[sizeof(SubscriberProfileIDforRFP)]; - char dummy14[sizeof(UEAggregateMaximumBitRate)]; - char dummy15[sizeof(UE_X2AP_ID)]; - char dummy16[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 17; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_NRUESecurityCapabilities() { set(mandatory); type=2;} - void select_id_SgNBSecurityKey() { set(mandatory); type=3;} - void select_id_SgNBUEAggregateMaximumBitRate() { set(mandatory); type=4;} - void select_id_SelectedPLMN() { set(optional); type=5;} - void select_id_HandoverRestrictionList() { set(optional); type=6;} - void select_id_E_RABs_ToBeAdded_SgNBAddReqList() { set(mandatory); type=7;} - void select_id_MeNBtoSgNBContainer() { set(mandatory); type=8;} - void select_id_SgNB_UE_X2AP_ID() { set(optional); type=9;} - void select_id_ExpectedUEBehaviour() { set(optional); type=10;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=11;} - void select_id_RequestedSplitSRBs() { set(optional); type=12;} - void select_id_MeNBResourceCoordinationInformation() { set(optional); type=13;} - void select_id_SGNB_Addition_Trigger_Ind() { set(optional); type=14;} - void select_id_SubscriberProfileIDforRFP() { set(optional); type=15;} - void select_id_MeNBCell_ID() { set(mandatory); type=16;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(mandatory)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else if(equal(mandatory)) { type = 7; return true; } - else if(equal(mandatory)) { type = 8; return true; } - else if(equal(optional)) { type = 9; return true; } - else if(equal(optional)) { type = 10; return true; } - else if(equal(optional)) { type = 11; return true; } - else if(equal(optional)) { type = 12; return true; } - else if(equal(optional)) { type = 13; return true; } - else if(equal(optional)) { type = 14; return true; } - else if(equal(optional)) { type = 15; return true; } - else if(equal(mandatory)) { type = 16; return true; } - else { type = 17; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(mandatory);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(mandatory);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(mandatory);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(optional);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(optional);} return false; - case 11: type = 11; if(v(ref_nested())) { return equal(optional);} return false; - case 12: type = 12; if(v(ref_nested())) { return equal(optional);} return false; - case 13: type = 13; if(v(ref_nested())) { return equal(optional);} return false; - case 14: type = 14; if(v(ref_nested())) { return equal(optional);} return false; - case 15: type = 15; if(v(ref_nested())) { return equal(optional);} return false; - case 16: type = 16; if(v(ref_nested())) { return equal(mandatory);} return false; - case 17: type = 17; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SgNBAdditionRequest ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SgNBAdditionRequest-IEs}}, - ... -} -*/ - -struct SgNBAdditionRequest : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SgNBAdditionRequest";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SgNBAdditionRequestAcknowledge-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SgNB-UE-X2AP-ID CRITICALITY reject TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}| - { ID id-E-RABs-Admitted-ToBeAdded-SgNBAddReqAckList CRITICALITY ignore TYPE E-RABs-Admitted-ToBeAdded-SgNBAddReqAckList PRESENCE mandatory}| - { ID id-E-RABs-NotAdmitted-List CRITICALITY ignore TYPE E-RAB-List PRESENCE optional}| - { ID id-SgNBtoMeNBContainer CRITICALITY reject TYPE SgNBtoMeNBContainer PRESENCE mandatory}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-AdmittedSplitSRBs CRITICALITY reject TYPE SplitSRBs PRESENCE optional}| - { ID id-SgNBResourceCoordinationInformation CRITICALITY ignore TYPE SgNBResourceCoordinationInformation PRESENCE optional}| - { ID id-RRCConfigIndication CRITICALITY reject TYPE RRC-Config-Ind PRESENCE optional}, - ... -} -*/ - -struct SgNBAdditionRequestAcknowledge_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 11; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(id_SgNB_UE_X2AP_ID); type=2;} - void select_id_E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList() { set(id_E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList); type=3;} - void select_id_E_RABs_NotAdmitted_List() { set(id_E_RABs_NotAdmitted_List); type=4;} - void select_id_SgNBtoMeNBContainer() { set(id_SgNBtoMeNBContainer); type=5;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=6;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=7;} - void select_id_AdmittedSplitSRBs() { set(id_AdmittedSplitSRBs); type=8;} - void select_id_SgNBResourceCoordinationInformation() { set(id_SgNBResourceCoordinationInformation); type=9;} - void select_id_RRCConfigIndication() { set(id_RRCConfigIndication); type=10;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SgNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList)) { type = 3; return true; } - else if(equal(id_E_RABs_NotAdmitted_List)) { type = 4; return true; } - else if(equal(id_SgNBtoMeNBContainer)) { type = 5; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 6; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 7; return true; } - else if(equal(id_AdmittedSplitSRBs)) { type = 8; return true; } - else if(equal(id_SgNBResourceCoordinationInformation)) { type = 9; return true; } - else if(equal(id_RRCConfigIndication)) { type = 10; return true; } - else { type = 11; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SgNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_E_RABs_NotAdmitted_List);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_SgNBtoMeNBContainer);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(id_AdmittedSplitSRBs);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(id_SgNBResourceCoordinationInformation);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(id_RRCConfigIndication);} return false; - case 11: type = 11; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 11; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(reject); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(reject); type=2;} - void select_id_E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList() { set(ignore); type=3;} - void select_id_E_RABs_NotAdmitted_List() { set(ignore); type=4;} - void select_id_SgNBtoMeNBContainer() { set(reject); type=5;} - void select_id_CriticalityDiagnostics() { set(ignore); type=6;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(reject); type=7;} - void select_id_AdmittedSplitSRBs() { set(reject); type=8;} - void select_id_SgNBResourceCoordinationInformation() { set(ignore); type=9;} - void select_id_RRCConfigIndication() { set(reject); type=10;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(reject)) { type = 5; return true; } - else if(equal(ignore)) { type = 6; return true; } - else if(equal(reject)) { type = 7; return true; } - else if(equal(reject)) { type = 8; return true; } - else if(equal(ignore)) { type = 9; return true; } - else if(equal(reject)) { type = 10; return true; } - else { type = 11; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(reject);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(ignore);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(reject);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(reject);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(ignore);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(reject);} return false; - case 11: type = 11; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - SgNB_UE_X2AP_ID& select_id_SgNB_UE_X2AP_ID() { return set(2); } - SgNB_UE_X2AP_ID const* get_id_SgNB_UE_X2AP_ID() const { return get(2); } - E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList& select_id_E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList() { return set(3); } - E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList const* get_id_E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList() const { return get(3); } - E_RAB_List& select_id_E_RABs_NotAdmitted_List() { return set(4); } - E_RAB_List const* get_id_E_RABs_NotAdmitted_List() const { return get(4); } - SgNBtoMeNBContainer& select_id_SgNBtoMeNBContainer() { return set(5); } - SgNBtoMeNBContainer const* get_id_SgNBtoMeNBContainer() const { return get(5); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(6); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(6); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(7); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(7); } - SplitSRBs& select_id_AdmittedSplitSRBs() { return set(8); } - SplitSRBs const* get_id_AdmittedSplitSRBs() const { return get(8); } - SgNBResourceCoordinationInformation& select_id_SgNBResourceCoordinationInformation() { return set(9); } - SgNBResourceCoordinationInformation const* get_id_SgNBResourceCoordinationInformation() const { return get(9); } - RRC_Config_Ind& select_id_RRCConfigIndication() { return set(10); } - RRC_Config_Ind const* get_id_RRCConfigIndication() const { return get(10); } - bool is_unknown() const { return type == 11; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - case 7: var.destroy(); break; - case 8: var.destroy(); break; - case 9: var.destroy(); break; - case 10: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - v.template operator()(7); - v.template operator()(8); - v.template operator()(9); - v.template operator()(10); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SgNB_UE_X2AP_ID()); return true; - case 3: v(select_id_E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList()); return true; - case 4: v(select_id_E_RABs_NotAdmitted_List()); return true; - case 5: v(select_id_SgNBtoMeNBContainer()); return true; - case 6: v(select_id_CriticalityDiagnostics()); return true; - case 7: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 8: v(select_id_AdmittedSplitSRBs()); return true; - case 9: v(select_id_SgNBResourceCoordinationInformation()); return true; - case 10: v(select_id_RRCConfigIndication()); return true; - case 11: if(type != 11) {clear(); asn::base::set();} type = 11; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - case 7: v(var.as()); return true; - case 8: v(var.as()); return true; - case 9: v(var.as()); return true; - case 10: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CriticalityDiagnostics)]; - char dummy2[sizeof(E_RAB_List)]; - char dummy3[sizeof(E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList)]; - char dummy4[sizeof(RRC_Config_Ind)]; - char dummy5[sizeof(SgNBResourceCoordinationInformation)]; - char dummy6[sizeof(SgNB_UE_X2AP_ID)]; - char dummy7[sizeof(SgNBtoMeNBContainer)]; - char dummy8[sizeof(SplitSRBs)]; - char dummy9[sizeof(UE_X2AP_ID)]; - char dummy10[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 11; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList() { set(mandatory); type=3;} - void select_id_E_RABs_NotAdmitted_List() { set(optional); type=4;} - void select_id_SgNBtoMeNBContainer() { set(mandatory); type=5;} - void select_id_CriticalityDiagnostics() { set(optional); type=6;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=7;} - void select_id_AdmittedSplitSRBs() { set(optional); type=8;} - void select_id_SgNBResourceCoordinationInformation() { set(optional); type=9;} - void select_id_RRCConfigIndication() { set(optional); type=10;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(mandatory)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else if(equal(optional)) { type = 7; return true; } - else if(equal(optional)) { type = 8; return true; } - else if(equal(optional)) { type = 9; return true; } - else if(equal(optional)) { type = 10; return true; } - else { type = 11; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(mandatory);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(optional);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(optional);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(optional);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(optional);} return false; - case 11: type = 11; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SgNBAdditionRequestAcknowledge ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SgNBAdditionRequestAcknowledge-IEs}}, - ... -} -*/ - -struct SgNBAdditionRequestAcknowledge : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SgNBAdditionRequestAcknowledge";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SgNBAdditionRequestReject-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SgNB-UE-X2AP-ID CRITICALITY reject TYPE SgNB-UE-X2AP-ID PRESENCE optional}| - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}, - ... -} -*/ - -struct SgNBAdditionRequestReject_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(id_SgNB_UE_X2AP_ID); type=2;} - void select_id_Cause() { set(id_Cause); type=3;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=5;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SgNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_Cause)) { type = 3; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 4; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SgNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(reject); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(reject); type=2;} - void select_id_Cause() { set(ignore); type=3;} - void select_id_CriticalityDiagnostics() { set(ignore); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(reject); type=5;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(reject)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(reject);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - SgNB_UE_X2AP_ID& select_id_SgNB_UE_X2AP_ID() { return set(2); } - SgNB_UE_X2AP_ID const* get_id_SgNB_UE_X2AP_ID() const { return get(2); } - Cause& select_id_Cause() { return set(3); } - Cause const* get_id_Cause() const { return get(3); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(4); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(4); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(5); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(5); } - bool is_unknown() const { return type == 6; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SgNB_UE_X2AP_ID()); return true; - case 3: v(select_id_Cause()); return true; - case 4: v(select_id_CriticalityDiagnostics()); return true; - case 5: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 6: if(type != 6) {clear(); asn::base::set();} type = 6; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(CriticalityDiagnostics)]; - char dummy3[sizeof(SgNB_UE_X2AP_ID)]; - char dummy4[sizeof(UE_X2AP_ID)]; - char dummy5[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(optional); type=2;} - void select_id_Cause() { set(mandatory); type=3;} - void select_id_CriticalityDiagnostics() { set(optional); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=5;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SgNBAdditionRequestReject ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SgNBAdditionRequestReject-IEs}}, - ... -} -*/ - -struct SgNBAdditionRequestReject : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SgNBAdditionRequestReject";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SgNBChangeConfirm-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SgNB-UE-X2AP-ID CRITICALITY ignore TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}| - { ID id-E-RABs-ToBeReleased-SgNBChaConfList CRITICALITY ignore TYPE E-RABs-ToBeReleased-SgNBChaConfList PRESENCE optional}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}, - ... -} -*/ - -struct SgNBChangeConfirm_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(id_SgNB_UE_X2AP_ID); type=2;} - void select_id_E_RABs_ToBeReleased_SgNBChaConfList() { set(id_E_RABs_ToBeReleased_SgNBChaConfList); type=3;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=5;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SgNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_E_RABs_ToBeReleased_SgNBChaConfList)) { type = 3; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 4; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SgNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_E_RABs_ToBeReleased_SgNBChaConfList);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(ignore); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(ignore); type=2;} - void select_id_E_RABs_ToBeReleased_SgNBChaConfList() { set(ignore); type=3;} - void select_id_CriticalityDiagnostics() { set(ignore); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(ignore); type=5;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - SgNB_UE_X2AP_ID& select_id_SgNB_UE_X2AP_ID() { return set(2); } - SgNB_UE_X2AP_ID const* get_id_SgNB_UE_X2AP_ID() const { return get(2); } - E_RABs_ToBeReleased_SgNBChaConfList& select_id_E_RABs_ToBeReleased_SgNBChaConfList() { return set(3); } - E_RABs_ToBeReleased_SgNBChaConfList const* get_id_E_RABs_ToBeReleased_SgNBChaConfList() const { return get(3); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(4); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(4); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(5); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(5); } - bool is_unknown() const { return type == 6; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SgNB_UE_X2AP_ID()); return true; - case 3: v(select_id_E_RABs_ToBeReleased_SgNBChaConfList()); return true; - case 4: v(select_id_CriticalityDiagnostics()); return true; - case 5: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 6: if(type != 6) {clear(); asn::base::set();} type = 6; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CriticalityDiagnostics)]; - char dummy2[sizeof(E_RABs_ToBeReleased_SgNBChaConfList)]; - char dummy3[sizeof(SgNB_UE_X2AP_ID)]; - char dummy4[sizeof(UE_X2AP_ID)]; - char dummy5[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_E_RABs_ToBeReleased_SgNBChaConfList() { set(optional); type=3;} - void select_id_CriticalityDiagnostics() { set(optional); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=5;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SgNBChangeConfirm ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SgNBChangeConfirm-IEs}}, - ... -} -*/ - -struct SgNBChangeConfirm : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SgNBChangeConfirm";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SgNBChangeRefuse-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SgNB-UE-X2AP-ID CRITICALITY ignore TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}| - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}, - ... -} -*/ - -struct SgNBChangeRefuse_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(id_SgNB_UE_X2AP_ID); type=2;} - void select_id_Cause() { set(id_Cause); type=3;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=5;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SgNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_Cause)) { type = 3; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 4; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SgNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(ignore); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(ignore); type=2;} - void select_id_Cause() { set(ignore); type=3;} - void select_id_CriticalityDiagnostics() { set(ignore); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(reject); type=5;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(reject)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(reject);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - SgNB_UE_X2AP_ID& select_id_SgNB_UE_X2AP_ID() { return set(2); } - SgNB_UE_X2AP_ID const* get_id_SgNB_UE_X2AP_ID() const { return get(2); } - Cause& select_id_Cause() { return set(3); } - Cause const* get_id_Cause() const { return get(3); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(4); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(4); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(5); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(5); } - bool is_unknown() const { return type == 6; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SgNB_UE_X2AP_ID()); return true; - case 3: v(select_id_Cause()); return true; - case 4: v(select_id_CriticalityDiagnostics()); return true; - case 5: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 6: if(type != 6) {clear(); asn::base::set();} type = 6; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(CriticalityDiagnostics)]; - char dummy3[sizeof(SgNB_UE_X2AP_ID)]; - char dummy4[sizeof(UE_X2AP_ID)]; - char dummy5[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_Cause() { set(mandatory); type=3;} - void select_id_CriticalityDiagnostics() { set(optional); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=5;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SgNBChangeRefuse ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SgNBChangeRefuse-IEs}}, - ... -} -*/ - -struct SgNBChangeRefuse : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SgNBChangeRefuse";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SgNBChangeRequired-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SgNB-UE-X2AP-ID CRITICALITY reject TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}| - { ID id-Target-SgNB-ID CRITICALITY reject TYPE GlobalGNB-ID PRESENCE mandatory}| - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| - { ID id-SgNBtoMeNBContainer CRITICALITY reject TYPE SgNBtoMeNBContainer PRESENCE optional}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}, - ... -} -*/ - -struct SgNBChangeRequired_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(id_SgNB_UE_X2AP_ID); type=2;} - void select_id_Target_SgNB_ID() { set(id_Target_SgNB_ID); type=3;} - void select_id_Cause() { set(id_Cause); type=4;} - void select_id_SgNBtoMeNBContainer() { set(id_SgNBtoMeNBContainer); type=5;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=6;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SgNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_Target_SgNB_ID)) { type = 3; return true; } - else if(equal(id_Cause)) { type = 4; return true; } - else if(equal(id_SgNBtoMeNBContainer)) { type = 5; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SgNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_Target_SgNB_ID);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_SgNBtoMeNBContainer);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(reject); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(reject); type=2;} - void select_id_Target_SgNB_ID() { set(reject); type=3;} - void select_id_Cause() { set(ignore); type=4;} - void select_id_SgNBtoMeNBContainer() { set(reject); type=5;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(reject); type=6;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(reject)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(reject)) { type = 5; return true; } - else if(equal(reject)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(reject);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(reject);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(reject);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - SgNB_UE_X2AP_ID& select_id_SgNB_UE_X2AP_ID() { return set(2); } - SgNB_UE_X2AP_ID const* get_id_SgNB_UE_X2AP_ID() const { return get(2); } - GlobalGNB_ID& select_id_Target_SgNB_ID() { return set(3); } - GlobalGNB_ID const* get_id_Target_SgNB_ID() const { return get(3); } - Cause& select_id_Cause() { return set(4); } - Cause const* get_id_Cause() const { return get(4); } - SgNBtoMeNBContainer& select_id_SgNBtoMeNBContainer() { return set(5); } - SgNBtoMeNBContainer const* get_id_SgNBtoMeNBContainer() const { return get(5); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(6); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(6); } - bool is_unknown() const { return type == 7; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SgNB_UE_X2AP_ID()); return true; - case 3: v(select_id_Target_SgNB_ID()); return true; - case 4: v(select_id_Cause()); return true; - case 5: v(select_id_SgNBtoMeNBContainer()); return true; - case 6: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 7: if(type != 7) {clear(); asn::base::set();} type = 7; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(GlobalGNB_ID)]; - char dummy3[sizeof(SgNB_UE_X2AP_ID)]; - char dummy4[sizeof(SgNBtoMeNBContainer)]; - char dummy5[sizeof(UE_X2AP_ID)]; - char dummy6[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_Target_SgNB_ID() { set(mandatory); type=3;} - void select_id_Cause() { set(mandatory); type=4;} - void select_id_SgNBtoMeNBContainer() { set(optional); type=5;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=6;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(mandatory)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(mandatory);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SgNBChangeRequired ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SgNBChangeRequired-IEs}}, - ... -} -*/ - -struct SgNBChangeRequired : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SgNBChangeRequired";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SgNBCounterCheckRequest-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SgNB-UE-X2AP-ID CRITICALITY reject TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}| - { ID id-E-RABs-SubjectToSgNBCounterCheck-List CRITICALITY ignore TYPE E-RABs-SubjectToSgNBCounterCheck-List PRESENCE mandatory}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}, - ... -} -*/ - -struct SgNBCounterCheckRequest_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(id_SgNB_UE_X2AP_ID); type=2;} - void select_id_E_RABs_SubjectToSgNBCounterCheck_List() { set(id_E_RABs_SubjectToSgNBCounterCheck_List); type=3;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=4;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SgNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_E_RABs_SubjectToSgNBCounterCheck_List)) { type = 3; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SgNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_E_RABs_SubjectToSgNBCounterCheck_List);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(reject); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(reject); type=2;} - void select_id_E_RABs_SubjectToSgNBCounterCheck_List() { set(ignore); type=3;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(ignore); type=4;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - SgNB_UE_X2AP_ID& select_id_SgNB_UE_X2AP_ID() { return set(2); } - SgNB_UE_X2AP_ID const* get_id_SgNB_UE_X2AP_ID() const { return get(2); } - E_RABs_SubjectToSgNBCounterCheck_List& select_id_E_RABs_SubjectToSgNBCounterCheck_List() { return set(3); } - E_RABs_SubjectToSgNBCounterCheck_List const* get_id_E_RABs_SubjectToSgNBCounterCheck_List() const { return get(3); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(4); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(4); } - bool is_unknown() const { return type == 5; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SgNB_UE_X2AP_ID()); return true; - case 3: v(select_id_E_RABs_SubjectToSgNBCounterCheck_List()); return true; - case 4: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 5: if(type != 5) {clear(); asn::base::set();} type = 5; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_SubjectToSgNBCounterCheck_List)]; - char dummy2[sizeof(SgNB_UE_X2AP_ID)]; - char dummy3[sizeof(UE_X2AP_ID)]; - char dummy4[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_E_RABs_SubjectToSgNBCounterCheck_List() { set(mandatory); type=3;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=4;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SgNBCounterCheckRequest ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SgNBCounterCheckRequest-IEs}}, - ... -} -*/ - -struct SgNBCounterCheckRequest : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SgNBCounterCheckRequest";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SgNBModificationConfirm-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SgNB-UE-X2AP-ID CRITICALITY ignore TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}| - { ID id-E-RABs-AdmittedToBeModified-SgNBModConfList CRITICALITY ignore TYPE E-RABs-AdmittedToBeModified-SgNBModConfList PRESENCE optional}| - { ID id-MeNBtoSgNBContainer CRITICALITY ignore TYPE MeNBtoSgNBContainer PRESENCE optional}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-MeNBResourceCoordinationInformation CRITICALITY ignore TYPE MeNBResourceCoordinationInformation PRESENCE optional}, - ... -} -*/ - -struct SgNBModificationConfirm_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 8; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(id_SgNB_UE_X2AP_ID); type=2;} - void select_id_E_RABs_AdmittedToBeModified_SgNBModConfList() { set(id_E_RABs_AdmittedToBeModified_SgNBModConfList); type=3;} - void select_id_MeNBtoSgNBContainer() { set(id_MeNBtoSgNBContainer); type=4;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=5;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=6;} - void select_id_MeNBResourceCoordinationInformation() { set(id_MeNBResourceCoordinationInformation); type=7;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SgNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_E_RABs_AdmittedToBeModified_SgNBModConfList)) { type = 3; return true; } - else if(equal(id_MeNBtoSgNBContainer)) { type = 4; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 5; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 6; return true; } - else if(equal(id_MeNBResourceCoordinationInformation)) { type = 7; return true; } - else { type = 8; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SgNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_E_RABs_AdmittedToBeModified_SgNBModConfList);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_MeNBtoSgNBContainer);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(id_MeNBResourceCoordinationInformation);} return false; - case 8: type = 8; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 8; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(ignore); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(ignore); type=2;} - void select_id_E_RABs_AdmittedToBeModified_SgNBModConfList() { set(ignore); type=3;} - void select_id_MeNBtoSgNBContainer() { set(ignore); type=4;} - void select_id_CriticalityDiagnostics() { set(ignore); type=5;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(ignore); type=6;} - void select_id_MeNBResourceCoordinationInformation() { set(ignore); type=7;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else if(equal(ignore)) { type = 6; return true; } - else if(equal(ignore)) { type = 7; return true; } - else { type = 8; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(ignore);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(ignore);} return false; - case 8: type = 8; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - SgNB_UE_X2AP_ID& select_id_SgNB_UE_X2AP_ID() { return set(2); } - SgNB_UE_X2AP_ID const* get_id_SgNB_UE_X2AP_ID() const { return get(2); } - E_RABs_AdmittedToBeModified_SgNBModConfList& select_id_E_RABs_AdmittedToBeModified_SgNBModConfList() { return set(3); } - E_RABs_AdmittedToBeModified_SgNBModConfList const* get_id_E_RABs_AdmittedToBeModified_SgNBModConfList() const { return get(3); } - MeNBtoSgNBContainer& select_id_MeNBtoSgNBContainer() { return set(4); } - MeNBtoSgNBContainer const* get_id_MeNBtoSgNBContainer() const { return get(4); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(5); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(5); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(6); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(6); } - MeNBResourceCoordinationInformation& select_id_MeNBResourceCoordinationInformation() { return set(7); } - MeNBResourceCoordinationInformation const* get_id_MeNBResourceCoordinationInformation() const { return get(7); } - bool is_unknown() const { return type == 8; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - case 7: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - v.template operator()(7); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SgNB_UE_X2AP_ID()); return true; - case 3: v(select_id_E_RABs_AdmittedToBeModified_SgNBModConfList()); return true; - case 4: v(select_id_MeNBtoSgNBContainer()); return true; - case 5: v(select_id_CriticalityDiagnostics()); return true; - case 6: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 7: v(select_id_MeNBResourceCoordinationInformation()); return true; - case 8: if(type != 8) {clear(); asn::base::set();} type = 8; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - case 7: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CriticalityDiagnostics)]; - char dummy2[sizeof(E_RABs_AdmittedToBeModified_SgNBModConfList)]; - char dummy3[sizeof(MeNBResourceCoordinationInformation)]; - char dummy4[sizeof(MeNBtoSgNBContainer)]; - char dummy5[sizeof(SgNB_UE_X2AP_ID)]; - char dummy6[sizeof(UE_X2AP_ID)]; - char dummy7[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 8; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_E_RABs_AdmittedToBeModified_SgNBModConfList() { set(optional); type=3;} - void select_id_MeNBtoSgNBContainer() { set(optional); type=4;} - void select_id_CriticalityDiagnostics() { set(optional); type=5;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=6;} - void select_id_MeNBResourceCoordinationInformation() { set(optional); type=7;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else if(equal(optional)) { type = 7; return true; } - else { type = 8; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(optional);} return false; - case 8: type = 8; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SgNBModificationConfirm ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SgNBModificationConfirm-IEs}}, - ... -} -*/ - -struct SgNBModificationConfirm : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SgNBModificationConfirm";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SgNBModificationRefuse-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SgNB-UE-X2AP-ID CRITICALITY ignore TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}| - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| - { ID id-MeNBtoSgNBContainer CRITICALITY ignore TYPE MeNBtoSgNBContainer PRESENCE optional}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}, - ... -} -*/ - -struct SgNBModificationRefuse_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(id_SgNB_UE_X2AP_ID); type=2;} - void select_id_Cause() { set(id_Cause); type=3;} - void select_id_MeNBtoSgNBContainer() { set(id_MeNBtoSgNBContainer); type=4;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=5;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=6;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SgNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_Cause)) { type = 3; return true; } - else if(equal(id_MeNBtoSgNBContainer)) { type = 4; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 5; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SgNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_MeNBtoSgNBContainer);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(ignore); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(ignore); type=2;} - void select_id_Cause() { set(ignore); type=3;} - void select_id_MeNBtoSgNBContainer() { set(ignore); type=4;} - void select_id_CriticalityDiagnostics() { set(ignore); type=5;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(ignore); type=6;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else if(equal(ignore)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(ignore);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - SgNB_UE_X2AP_ID& select_id_SgNB_UE_X2AP_ID() { return set(2); } - SgNB_UE_X2AP_ID const* get_id_SgNB_UE_X2AP_ID() const { return get(2); } - Cause& select_id_Cause() { return set(3); } - Cause const* get_id_Cause() const { return get(3); } - MeNBtoSgNBContainer& select_id_MeNBtoSgNBContainer() { return set(4); } - MeNBtoSgNBContainer const* get_id_MeNBtoSgNBContainer() const { return get(4); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(5); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(5); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(6); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(6); } - bool is_unknown() const { return type == 7; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SgNB_UE_X2AP_ID()); return true; - case 3: v(select_id_Cause()); return true; - case 4: v(select_id_MeNBtoSgNBContainer()); return true; - case 5: v(select_id_CriticalityDiagnostics()); return true; - case 6: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 7: if(type != 7) {clear(); asn::base::set();} type = 7; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(CriticalityDiagnostics)]; - char dummy3[sizeof(MeNBtoSgNBContainer)]; - char dummy4[sizeof(SgNB_UE_X2AP_ID)]; - char dummy5[sizeof(UE_X2AP_ID)]; - char dummy6[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_Cause() { set(mandatory); type=3;} - void select_id_MeNBtoSgNBContainer() { set(optional); type=4;} - void select_id_CriticalityDiagnostics() { set(optional); type=5;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=6;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SgNBModificationRefuse ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SgNBModificationRefuse-IEs}}, - ... -} -*/ - -struct SgNBModificationRefuse : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SgNBModificationRefuse";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -UE-ContextInformationSgNBModReqExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-SubscriberProfileIDforRFP CRITICALITY ignore EXTENSION SubscriberProfileIDforRFP PRESENCE optional}, - ... -} -*/ - -struct UE_ContextInformationSgNBModReqExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_SubscriberProfileIDforRFP() { set(id_SubscriberProfileIDforRFP); type=1;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_SubscriberProfileIDforRFP)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_SubscriberProfileIDforRFP);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_SubscriberProfileIDforRFP() { set(ignore); type=1;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - SubscriberProfileIDforRFP& select_id_SubscriberProfileIDforRFP() { return set(1); } - SubscriberProfileIDforRFP const* get_id_SubscriberProfileIDforRFP() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_SubscriberProfileIDforRFP()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(SubscriberProfileIDforRFP)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_SubscriberProfileIDforRFP() { set(optional); type=1;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -UE-ContextInformation-SgNBModReq ::= SEQUENCE { - nRUE-SecurityCapabilities NRUESecurityCapabilities OPTIONAL, - sgNB-SecurityKey SgNBSecurityKey OPTIONAL, - sgNBUEAggregateMaximumBitRate UEAggregateMaximumBitRate OPTIONAL, - e-RABs-ToBeAdded E-RABs-ToBeAdded-SgNBModReq-List OPTIONAL, - e-RABs-ToBeModified E-RABs-ToBeModified-SgNBModReq-List OPTIONAL, - e-RABs-ToBeReleased E-RABs-ToBeReleased-SgNBModReq-List OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {UE-ContextInformationSgNBModReqExtIEs} } OPTIONAL, - ... -} -*/ - -struct UE_ContextInformation_SgNBModReq : asn::sequence<7, 0, true, 7> -{ - static constexpr const char* name() {return "UE-ContextInformation-SgNBModReq";} - using parent_t = asn::sequence<7, 0, true, 7>; - struct nRUE_SecurityCapabilities_t : NRUESecurityCapabilities - { - static constexpr const char* name() {return "nRUE_SecurityCapabilities_t";} - using parent_t = NRUESecurityCapabilities; - static constexpr bool optional = true; - - }; - nRUE_SecurityCapabilities_t& set_nRUE_SecurityCapabilities() { nRUE_SecurityCapabilities.setpresent(true); return nRUE_SecurityCapabilities;} - nRUE_SecurityCapabilities_t const* get_nRUE_SecurityCapabilities() const {return nRUE_SecurityCapabilities.is_valid() ? &nRUE_SecurityCapabilities : nullptr;} - struct sgNB_SecurityKey_t : SgNBSecurityKey - { - static constexpr const char* name() {return "sgNB_SecurityKey_t";} - using parent_t = SgNBSecurityKey; - static constexpr bool optional = true; - - }; - sgNB_SecurityKey_t& set_sgNB_SecurityKey() { sgNB_SecurityKey.setpresent(true); return sgNB_SecurityKey;} - sgNB_SecurityKey_t const* get_sgNB_SecurityKey() const {return sgNB_SecurityKey.is_valid() ? &sgNB_SecurityKey : nullptr;} - struct sgNBUEAggregateMaximumBitRate_t : UEAggregateMaximumBitRate - { - static constexpr const char* name() {return "sgNBUEAggregateMaximumBitRate_t";} - using parent_t = UEAggregateMaximumBitRate; - static constexpr bool optional = true; - - }; - sgNBUEAggregateMaximumBitRate_t& set_sgNBUEAggregateMaximumBitRate() { sgNBUEAggregateMaximumBitRate.setpresent(true); return sgNBUEAggregateMaximumBitRate;} - sgNBUEAggregateMaximumBitRate_t const* get_sgNBUEAggregateMaximumBitRate() const {return sgNBUEAggregateMaximumBitRate.is_valid() ? &sgNBUEAggregateMaximumBitRate : nullptr;} - struct e_RABs_ToBeAdded_t : E_RABs_ToBeAdded_SgNBModReq_List - { - static constexpr const char* name() {return "e_RABs_ToBeAdded_t";} - using parent_t = E_RABs_ToBeAdded_SgNBModReq_List; - static constexpr bool optional = true; - - }; - e_RABs_ToBeAdded_t& set_e_RABs_ToBeAdded() { e_RABs_ToBeAdded.setpresent(true); return e_RABs_ToBeAdded;} - e_RABs_ToBeAdded_t const* get_e_RABs_ToBeAdded() const {return e_RABs_ToBeAdded.is_valid() ? &e_RABs_ToBeAdded : nullptr;} - struct e_RABs_ToBeModified_t : E_RABs_ToBeModified_SgNBModReq_List - { - static constexpr const char* name() {return "e_RABs_ToBeModified_t";} - using parent_t = E_RABs_ToBeModified_SgNBModReq_List; - static constexpr bool optional = true; - - }; - e_RABs_ToBeModified_t& set_e_RABs_ToBeModified() { e_RABs_ToBeModified.setpresent(true); return e_RABs_ToBeModified;} - e_RABs_ToBeModified_t const* get_e_RABs_ToBeModified() const {return e_RABs_ToBeModified.is_valid() ? &e_RABs_ToBeModified : nullptr;} - struct e_RABs_ToBeReleased_t : E_RABs_ToBeReleased_SgNBModReq_List - { - static constexpr const char* name() {return "e_RABs_ToBeReleased_t";} - using parent_t = E_RABs_ToBeReleased_SgNBModReq_List; - static constexpr bool optional = true; - - }; - e_RABs_ToBeReleased_t& set_e_RABs_ToBeReleased() { e_RABs_ToBeReleased.setpresent(true); return e_RABs_ToBeReleased;} - e_RABs_ToBeReleased_t const* get_e_RABs_ToBeReleased() const {return e_RABs_ToBeReleased.is_valid() ? &e_RABs_ToBeReleased : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(nRUE_SecurityCapabilities); - v(sgNB_SecurityKey); - v(sgNBUEAggregateMaximumBitRate); - v(e_RABs_ToBeAdded); - v(e_RABs_ToBeModified); - v(e_RABs_ToBeReleased); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(nRUE_SecurityCapabilities); - v(sgNB_SecurityKey); - v(sgNBUEAggregateMaximumBitRate); - v(e_RABs_ToBeAdded); - v(e_RABs_ToBeModified); - v(e_RABs_ToBeReleased); - v(iE_Extensions); - - }; - void clear() - { - nRUE_SecurityCapabilities.clear(); - sgNB_SecurityKey.clear(); - sgNBUEAggregateMaximumBitRate.clear(); - e_RABs_ToBeAdded.clear(); - e_RABs_ToBeModified.clear(); - e_RABs_ToBeReleased.clear(); - iE_Extensions.clear(); - - }; - private: - nRUE_SecurityCapabilities_t nRUE_SecurityCapabilities; - sgNB_SecurityKey_t sgNB_SecurityKey; - sgNBUEAggregateMaximumBitRate_t sgNBUEAggregateMaximumBitRate; - e_RABs_ToBeAdded_t e_RABs_ToBeAdded; - e_RABs_ToBeModified_t e_RABs_ToBeModified; - e_RABs_ToBeReleased_t e_RABs_ToBeReleased; - iE_Extensions_t iE_Extensions; - -}; -/* -SgNBModificationRequest-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SgNB-UE-X2AP-ID CRITICALITY reject TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}| - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| - { ID id-SelectedPLMN CRITICALITY ignore TYPE PLMN-Identity PRESENCE optional}| - { ID id-HandoverRestrictionList CRITICALITY ignore TYPE HandoverRestrictionList PRESENCE optional}| - { ID id-SCGConfigurationQuery CRITICALITY ignore TYPE SCGConfigurationQuery PRESENCE optional}| - { ID id-UE-ContextInformation-SgNBModReq CRITICALITY reject TYPE UE-ContextInformation-SgNBModReq PRESENCE optional}| - { ID id-MeNBtoSgNBContainer CRITICALITY reject TYPE MeNBtoSgNBContainer PRESENCE optional}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-MeNBResourceCoordinationInformation CRITICALITY ignore TYPE MeNBResourceCoordinationInformation PRESENCE optional}| - { ID id-RequestedSplitSRBs CRITICALITY ignore TYPE SplitSRBs PRESENCE optional}| - { ID id-RequestedSplitSRBsrelease CRITICALITY ignore TYPE SplitSRBs PRESENCE optional}, - ... -} -*/ - -struct SgNBModificationRequest_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 13; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(id_SgNB_UE_X2AP_ID); type=2;} - void select_id_Cause() { set(id_Cause); type=3;} - void select_id_SelectedPLMN() { set(id_SelectedPLMN); type=4;} - void select_id_HandoverRestrictionList() { set(id_HandoverRestrictionList); type=5;} - void select_id_SCGConfigurationQuery() { set(id_SCGConfigurationQuery); type=6;} - void select_id_UE_ContextInformation_SgNBModReq() { set(id_UE_ContextInformation_SgNBModReq); type=7;} - void select_id_MeNBtoSgNBContainer() { set(id_MeNBtoSgNBContainer); type=8;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=9;} - void select_id_MeNBResourceCoordinationInformation() { set(id_MeNBResourceCoordinationInformation); type=10;} - void select_id_RequestedSplitSRBs() { set(id_RequestedSplitSRBs); type=11;} - void select_id_RequestedSplitSRBsrelease() { set(id_RequestedSplitSRBsrelease); type=12;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SgNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_Cause)) { type = 3; return true; } - else if(equal(id_SelectedPLMN)) { type = 4; return true; } - else if(equal(id_HandoverRestrictionList)) { type = 5; return true; } - else if(equal(id_SCGConfigurationQuery)) { type = 6; return true; } - else if(equal(id_UE_ContextInformation_SgNBModReq)) { type = 7; return true; } - else if(equal(id_MeNBtoSgNBContainer)) { type = 8; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 9; return true; } - else if(equal(id_MeNBResourceCoordinationInformation)) { type = 10; return true; } - else if(equal(id_RequestedSplitSRBs)) { type = 11; return true; } - else if(equal(id_RequestedSplitSRBsrelease)) { type = 12; return true; } - else { type = 13; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SgNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_SelectedPLMN);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_HandoverRestrictionList);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_SCGConfigurationQuery);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(id_UE_ContextInformation_SgNBModReq);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(id_MeNBtoSgNBContainer);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(id_MeNBResourceCoordinationInformation);} return false; - case 11: type = 11; if(v(ref_nested())) { return equal(id_RequestedSplitSRBs);} return false; - case 12: type = 12; if(v(ref_nested())) { return equal(id_RequestedSplitSRBsrelease);} return false; - case 13: type = 13; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 13; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(reject); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(reject); type=2;} - void select_id_Cause() { set(ignore); type=3;} - void select_id_SelectedPLMN() { set(ignore); type=4;} - void select_id_HandoverRestrictionList() { set(ignore); type=5;} - void select_id_SCGConfigurationQuery() { set(ignore); type=6;} - void select_id_UE_ContextInformation_SgNBModReq() { set(reject); type=7;} - void select_id_MeNBtoSgNBContainer() { set(reject); type=8;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(reject); type=9;} - void select_id_MeNBResourceCoordinationInformation() { set(ignore); type=10;} - void select_id_RequestedSplitSRBs() { set(ignore); type=11;} - void select_id_RequestedSplitSRBsrelease() { set(ignore); type=12;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else if(equal(ignore)) { type = 6; return true; } - else if(equal(reject)) { type = 7; return true; } - else if(equal(reject)) { type = 8; return true; } - else if(equal(reject)) { type = 9; return true; } - else if(equal(ignore)) { type = 10; return true; } - else if(equal(ignore)) { type = 11; return true; } - else if(equal(ignore)) { type = 12; return true; } - else { type = 13; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(ignore);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(reject);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(reject);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(reject);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(ignore);} return false; - case 11: type = 11; if(v(ref_nested())) { return equal(ignore);} return false; - case 12: type = 12; if(v(ref_nested())) { return equal(ignore);} return false; - case 13: type = 13; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - SgNB_UE_X2AP_ID& select_id_SgNB_UE_X2AP_ID() { return set(2); } - SgNB_UE_X2AP_ID const* get_id_SgNB_UE_X2AP_ID() const { return get(2); } - Cause& select_id_Cause() { return set(3); } - Cause const* get_id_Cause() const { return get(3); } - PLMN_Identity& select_id_SelectedPLMN() { return set(4); } - PLMN_Identity const* get_id_SelectedPLMN() const { return get(4); } - HandoverRestrictionList& select_id_HandoverRestrictionList() { return set(5); } - HandoverRestrictionList const* get_id_HandoverRestrictionList() const { return get(5); } - SCGConfigurationQuery& select_id_SCGConfigurationQuery() { return set(6); } - SCGConfigurationQuery const* get_id_SCGConfigurationQuery() const { return get(6); } - UE_ContextInformation_SgNBModReq& select_id_UE_ContextInformation_SgNBModReq() { return set(7); } - UE_ContextInformation_SgNBModReq const* get_id_UE_ContextInformation_SgNBModReq() const { return get(7); } - MeNBtoSgNBContainer& select_id_MeNBtoSgNBContainer() { return set(8); } - MeNBtoSgNBContainer const* get_id_MeNBtoSgNBContainer() const { return get(8); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(9); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(9); } - MeNBResourceCoordinationInformation& select_id_MeNBResourceCoordinationInformation() { return set(10); } - MeNBResourceCoordinationInformation const* get_id_MeNBResourceCoordinationInformation() const { return get(10); } - SplitSRBs& select_id_RequestedSplitSRBs() { return set(11); } - SplitSRBs const* get_id_RequestedSplitSRBs() const { return get(11); } - SplitSRBs& select_id_RequestedSplitSRBsrelease() { return set(12); } - SplitSRBs const* get_id_RequestedSplitSRBsrelease() const { return get(12); } - bool is_unknown() const { return type == 13; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - case 7: var.destroy(); break; - case 8: var.destroy(); break; - case 9: var.destroy(); break; - case 10: var.destroy(); break; - case 11: var.destroy(); break; - case 12: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - v.template operator()(7); - v.template operator()(8); - v.template operator()(9); - v.template operator()(10); - v.template operator()(11); - v.template operator()(12); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SgNB_UE_X2AP_ID()); return true; - case 3: v(select_id_Cause()); return true; - case 4: v(select_id_SelectedPLMN()); return true; - case 5: v(select_id_HandoverRestrictionList()); return true; - case 6: v(select_id_SCGConfigurationQuery()); return true; - case 7: v(select_id_UE_ContextInformation_SgNBModReq()); return true; - case 8: v(select_id_MeNBtoSgNBContainer()); return true; - case 9: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 10: v(select_id_MeNBResourceCoordinationInformation()); return true; - case 11: v(select_id_RequestedSplitSRBs()); return true; - case 12: v(select_id_RequestedSplitSRBsrelease()); return true; - case 13: if(type != 13) {clear(); asn::base::set();} type = 13; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - case 7: v(var.as()); return true; - case 8: v(var.as()); return true; - case 9: v(var.as()); return true; - case 10: v(var.as()); return true; - case 11: v(var.as()); return true; - case 12: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(HandoverRestrictionList)]; - char dummy3[sizeof(MeNBResourceCoordinationInformation)]; - char dummy4[sizeof(MeNBtoSgNBContainer)]; - char dummy5[sizeof(PLMN_Identity)]; - char dummy6[sizeof(SCGConfigurationQuery)]; - char dummy7[sizeof(SgNB_UE_X2AP_ID)]; - char dummy8[sizeof(SplitSRBs)]; - char dummy9[sizeof(UE_ContextInformation_SgNBModReq)]; - char dummy10[sizeof(UE_X2AP_ID)]; - char dummy11[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 13; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_Cause() { set(mandatory); type=3;} - void select_id_SelectedPLMN() { set(optional); type=4;} - void select_id_HandoverRestrictionList() { set(optional); type=5;} - void select_id_SCGConfigurationQuery() { set(optional); type=6;} - void select_id_UE_ContextInformation_SgNBModReq() { set(optional); type=7;} - void select_id_MeNBtoSgNBContainer() { set(optional); type=8;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=9;} - void select_id_MeNBResourceCoordinationInformation() { set(optional); type=10;} - void select_id_RequestedSplitSRBs() { set(optional); type=11;} - void select_id_RequestedSplitSRBsrelease() { set(optional); type=12;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else if(equal(optional)) { type = 7; return true; } - else if(equal(optional)) { type = 8; return true; } - else if(equal(optional)) { type = 9; return true; } - else if(equal(optional)) { type = 10; return true; } - else if(equal(optional)) { type = 11; return true; } - else if(equal(optional)) { type = 12; return true; } - else { type = 13; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(optional);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(optional);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(optional);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(optional);} return false; - case 11: type = 11; if(v(ref_nested())) { return equal(optional);} return false; - case 12: type = 12; if(v(ref_nested())) { return equal(optional);} return false; - case 13: type = 13; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SgNBModificationRequest ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ SgNBModificationRequest-IEs}}, - ... -} -*/ - -struct SgNBModificationRequest : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SgNBModificationRequest";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SgNBModificationRequestAcknowledge-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SgNB-UE-X2AP-ID CRITICALITY ignore TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}| - { ID id-E-RABs-Admitted-ToBeAdded-SgNBModAckList CRITICALITY ignore TYPE E-RABs-Admitted-ToBeAdded-SgNBModAckList PRESENCE optional}| - { ID id-E-RABs-Admitted-ToBeModified-SgNBModAckList CRITICALITY ignore TYPE E-RABs-Admitted-ToBeModified-SgNBModAckList PRESENCE optional}| - { ID id-E-RABs-Admitted-ToBeReleased-SgNBModAckList CRITICALITY ignore TYPE E-RABs-Admitted-ToBeReleased-SgNBModAckList PRESENCE optional}| - { ID id-E-RABs-NotAdmitted-List CRITICALITY ignore TYPE E-RAB-List PRESENCE optional}| - { ID id-SgNBtoMeNBContainer CRITICALITY ignore TYPE SgNBtoMeNBContainer PRESENCE optional}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-SgNBResourceCoordinationInformation CRITICALITY ignore TYPE SgNBResourceCoordinationInformation PRESENCE optional}| - { ID id-AdmittedSplitSRBs CRITICALITY ignore TYPE SplitSRBs PRESENCE optional}| - { ID id-AdmittedSplitSRBsrelease CRITICALITY ignore TYPE SplitSRBs PRESENCE optional}| - { ID id-RRCConfigIndication CRITICALITY reject TYPE RRC-Config-Ind PRESENCE optional}, - ... -} -*/ - -struct SgNBModificationRequestAcknowledge_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 14; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(id_SgNB_UE_X2AP_ID); type=2;} - void select_id_E_RABs_Admitted_ToBeAdded_SgNBModAckList() { set(id_E_RABs_Admitted_ToBeAdded_SgNBModAckList); type=3;} - void select_id_E_RABs_Admitted_ToBeModified_SgNBModAckList() { set(id_E_RABs_Admitted_ToBeModified_SgNBModAckList); type=4;} - void select_id_E_RABs_Admitted_ToBeReleased_SgNBModAckList() { set(id_E_RABs_Admitted_ToBeReleased_SgNBModAckList); type=5;} - void select_id_E_RABs_NotAdmitted_List() { set(id_E_RABs_NotAdmitted_List); type=6;} - void select_id_SgNBtoMeNBContainer() { set(id_SgNBtoMeNBContainer); type=7;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=8;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=9;} - void select_id_SgNBResourceCoordinationInformation() { set(id_SgNBResourceCoordinationInformation); type=10;} - void select_id_AdmittedSplitSRBs() { set(id_AdmittedSplitSRBs); type=11;} - void select_id_AdmittedSplitSRBsrelease() { set(id_AdmittedSplitSRBsrelease); type=12;} - void select_id_RRCConfigIndication() { set(id_RRCConfigIndication); type=13;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SgNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_E_RABs_Admitted_ToBeAdded_SgNBModAckList)) { type = 3; return true; } - else if(equal(id_E_RABs_Admitted_ToBeModified_SgNBModAckList)) { type = 4; return true; } - else if(equal(id_E_RABs_Admitted_ToBeReleased_SgNBModAckList)) { type = 5; return true; } - else if(equal(id_E_RABs_NotAdmitted_List)) { type = 6; return true; } - else if(equal(id_SgNBtoMeNBContainer)) { type = 7; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 8; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 9; return true; } - else if(equal(id_SgNBResourceCoordinationInformation)) { type = 10; return true; } - else if(equal(id_AdmittedSplitSRBs)) { type = 11; return true; } - else if(equal(id_AdmittedSplitSRBsrelease)) { type = 12; return true; } - else if(equal(id_RRCConfigIndication)) { type = 13; return true; } - else { type = 14; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SgNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_E_RABs_Admitted_ToBeAdded_SgNBModAckList);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_E_RABs_Admitted_ToBeModified_SgNBModAckList);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_E_RABs_Admitted_ToBeReleased_SgNBModAckList);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_E_RABs_NotAdmitted_List);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(id_SgNBtoMeNBContainer);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(id_SgNBResourceCoordinationInformation);} return false; - case 11: type = 11; if(v(ref_nested())) { return equal(id_AdmittedSplitSRBs);} return false; - case 12: type = 12; if(v(ref_nested())) { return equal(id_AdmittedSplitSRBsrelease);} return false; - case 13: type = 13; if(v(ref_nested())) { return equal(id_RRCConfigIndication);} return false; - case 14: type = 14; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 14; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(ignore); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(ignore); type=2;} - void select_id_E_RABs_Admitted_ToBeAdded_SgNBModAckList() { set(ignore); type=3;} - void select_id_E_RABs_Admitted_ToBeModified_SgNBModAckList() { set(ignore); type=4;} - void select_id_E_RABs_Admitted_ToBeReleased_SgNBModAckList() { set(ignore); type=5;} - void select_id_E_RABs_NotAdmitted_List() { set(ignore); type=6;} - void select_id_SgNBtoMeNBContainer() { set(ignore); type=7;} - void select_id_CriticalityDiagnostics() { set(ignore); type=8;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(ignore); type=9;} - void select_id_SgNBResourceCoordinationInformation() { set(ignore); type=10;} - void select_id_AdmittedSplitSRBs() { set(ignore); type=11;} - void select_id_AdmittedSplitSRBsrelease() { set(ignore); type=12;} - void select_id_RRCConfigIndication() { set(reject); type=13;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else if(equal(ignore)) { type = 6; return true; } - else if(equal(ignore)) { type = 7; return true; } - else if(equal(ignore)) { type = 8; return true; } - else if(equal(ignore)) { type = 9; return true; } - else if(equal(ignore)) { type = 10; return true; } - else if(equal(ignore)) { type = 11; return true; } - else if(equal(ignore)) { type = 12; return true; } - else if(equal(reject)) { type = 13; return true; } - else { type = 14; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(ignore);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(ignore);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(ignore);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(ignore);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(ignore);} return false; - case 11: type = 11; if(v(ref_nested())) { return equal(ignore);} return false; - case 12: type = 12; if(v(ref_nested())) { return equal(ignore);} return false; - case 13: type = 13; if(v(ref_nested())) { return equal(reject);} return false; - case 14: type = 14; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - SgNB_UE_X2AP_ID& select_id_SgNB_UE_X2AP_ID() { return set(2); } - SgNB_UE_X2AP_ID const* get_id_SgNB_UE_X2AP_ID() const { return get(2); } - E_RABs_Admitted_ToBeAdded_SgNBModAckList& select_id_E_RABs_Admitted_ToBeAdded_SgNBModAckList() { return set(3); } - E_RABs_Admitted_ToBeAdded_SgNBModAckList const* get_id_E_RABs_Admitted_ToBeAdded_SgNBModAckList() const { return get(3); } - E_RABs_Admitted_ToBeModified_SgNBModAckList& select_id_E_RABs_Admitted_ToBeModified_SgNBModAckList() { return set(4); } - E_RABs_Admitted_ToBeModified_SgNBModAckList const* get_id_E_RABs_Admitted_ToBeModified_SgNBModAckList() const { return get(4); } - E_RABs_Admitted_ToBeReleased_SgNBModAckList& select_id_E_RABs_Admitted_ToBeReleased_SgNBModAckList() { return set(5); } - E_RABs_Admitted_ToBeReleased_SgNBModAckList const* get_id_E_RABs_Admitted_ToBeReleased_SgNBModAckList() const { return get(5); } - E_RAB_List& select_id_E_RABs_NotAdmitted_List() { return set(6); } - E_RAB_List const* get_id_E_RABs_NotAdmitted_List() const { return get(6); } - SgNBtoMeNBContainer& select_id_SgNBtoMeNBContainer() { return set(7); } - SgNBtoMeNBContainer const* get_id_SgNBtoMeNBContainer() const { return get(7); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(8); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(8); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(9); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(9); } - SgNBResourceCoordinationInformation& select_id_SgNBResourceCoordinationInformation() { return set(10); } - SgNBResourceCoordinationInformation const* get_id_SgNBResourceCoordinationInformation() const { return get(10); } - SplitSRBs& select_id_AdmittedSplitSRBs() { return set(11); } - SplitSRBs const* get_id_AdmittedSplitSRBs() const { return get(11); } - SplitSRBs& select_id_AdmittedSplitSRBsrelease() { return set(12); } - SplitSRBs const* get_id_AdmittedSplitSRBsrelease() const { return get(12); } - RRC_Config_Ind& select_id_RRCConfigIndication() { return set(13); } - RRC_Config_Ind const* get_id_RRCConfigIndication() const { return get(13); } - bool is_unknown() const { return type == 14; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - case 7: var.destroy(); break; - case 8: var.destroy(); break; - case 9: var.destroy(); break; - case 10: var.destroy(); break; - case 11: var.destroy(); break; - case 12: var.destroy(); break; - case 13: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - v.template operator()(7); - v.template operator()(8); - v.template operator()(9); - v.template operator()(10); - v.template operator()(11); - v.template operator()(12); - v.template operator()(13); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SgNB_UE_X2AP_ID()); return true; - case 3: v(select_id_E_RABs_Admitted_ToBeAdded_SgNBModAckList()); return true; - case 4: v(select_id_E_RABs_Admitted_ToBeModified_SgNBModAckList()); return true; - case 5: v(select_id_E_RABs_Admitted_ToBeReleased_SgNBModAckList()); return true; - case 6: v(select_id_E_RABs_NotAdmitted_List()); return true; - case 7: v(select_id_SgNBtoMeNBContainer()); return true; - case 8: v(select_id_CriticalityDiagnostics()); return true; - case 9: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 10: v(select_id_SgNBResourceCoordinationInformation()); return true; - case 11: v(select_id_AdmittedSplitSRBs()); return true; - case 12: v(select_id_AdmittedSplitSRBsrelease()); return true; - case 13: v(select_id_RRCConfigIndication()); return true; - case 14: if(type != 14) {clear(); asn::base::set();} type = 14; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - case 7: v(var.as()); return true; - case 8: v(var.as()); return true; - case 9: v(var.as()); return true; - case 10: v(var.as()); return true; - case 11: v(var.as()); return true; - case 12: v(var.as()); return true; - case 13: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CriticalityDiagnostics)]; - char dummy2[sizeof(E_RAB_List)]; - char dummy3[sizeof(E_RABs_Admitted_ToBeAdded_SgNBModAckList)]; - char dummy4[sizeof(E_RABs_Admitted_ToBeModified_SgNBModAckList)]; - char dummy5[sizeof(E_RABs_Admitted_ToBeReleased_SgNBModAckList)]; - char dummy6[sizeof(RRC_Config_Ind)]; - char dummy7[sizeof(SgNBResourceCoordinationInformation)]; - char dummy8[sizeof(SgNB_UE_X2AP_ID)]; - char dummy9[sizeof(SgNBtoMeNBContainer)]; - char dummy10[sizeof(SplitSRBs)]; - char dummy11[sizeof(UE_X2AP_ID)]; - char dummy12[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 14; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_E_RABs_Admitted_ToBeAdded_SgNBModAckList() { set(optional); type=3;} - void select_id_E_RABs_Admitted_ToBeModified_SgNBModAckList() { set(optional); type=4;} - void select_id_E_RABs_Admitted_ToBeReleased_SgNBModAckList() { set(optional); type=5;} - void select_id_E_RABs_NotAdmitted_List() { set(optional); type=6;} - void select_id_SgNBtoMeNBContainer() { set(optional); type=7;} - void select_id_CriticalityDiagnostics() { set(optional); type=8;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=9;} - void select_id_SgNBResourceCoordinationInformation() { set(optional); type=10;} - void select_id_AdmittedSplitSRBs() { set(optional); type=11;} - void select_id_AdmittedSplitSRBsrelease() { set(optional); type=12;} - void select_id_RRCConfigIndication() { set(optional); type=13;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else if(equal(optional)) { type = 7; return true; } - else if(equal(optional)) { type = 8; return true; } - else if(equal(optional)) { type = 9; return true; } - else if(equal(optional)) { type = 10; return true; } - else if(equal(optional)) { type = 11; return true; } - else if(equal(optional)) { type = 12; return true; } - else if(equal(optional)) { type = 13; return true; } - else { type = 14; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(optional);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(optional);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(optional);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(optional);} return false; - case 11: type = 11; if(v(ref_nested())) { return equal(optional);} return false; - case 12: type = 12; if(v(ref_nested())) { return equal(optional);} return false; - case 13: type = 13; if(v(ref_nested())) { return equal(optional);} return false; - case 14: type = 14; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SgNBModificationRequestAcknowledge ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SgNBModificationRequestAcknowledge-IEs}}, - ... -} -*/ - -struct SgNBModificationRequestAcknowledge : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SgNBModificationRequestAcknowledge";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SgNBModificationRequestReject-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SgNB-UE-X2AP-ID CRITICALITY ignore TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}| - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}, - ... -} -*/ - -struct SgNBModificationRequestReject_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(id_SgNB_UE_X2AP_ID); type=2;} - void select_id_Cause() { set(id_Cause); type=3;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=5;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SgNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_Cause)) { type = 3; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 4; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SgNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(ignore); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(ignore); type=2;} - void select_id_Cause() { set(ignore); type=3;} - void select_id_CriticalityDiagnostics() { set(ignore); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(ignore); type=5;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - SgNB_UE_X2AP_ID& select_id_SgNB_UE_X2AP_ID() { return set(2); } - SgNB_UE_X2AP_ID const* get_id_SgNB_UE_X2AP_ID() const { return get(2); } - Cause& select_id_Cause() { return set(3); } - Cause const* get_id_Cause() const { return get(3); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(4); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(4); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(5); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(5); } - bool is_unknown() const { return type == 6; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SgNB_UE_X2AP_ID()); return true; - case 3: v(select_id_Cause()); return true; - case 4: v(select_id_CriticalityDiagnostics()); return true; - case 5: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 6: if(type != 6) {clear(); asn::base::set();} type = 6; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(CriticalityDiagnostics)]; - char dummy3[sizeof(SgNB_UE_X2AP_ID)]; - char dummy4[sizeof(UE_X2AP_ID)]; - char dummy5[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_Cause() { set(mandatory); type=3;} - void select_id_CriticalityDiagnostics() { set(optional); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=5;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SgNBModificationRequestReject ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SgNBModificationRequestReject-IEs}}, - ... -} -*/ - -struct SgNBModificationRequestReject : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SgNBModificationRequestReject";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SgNBModificationRequired-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SgNB-UE-X2AP-ID CRITICALITY reject TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}| - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| - { ID id-PDCPChangeIndication CRITICALITY ignore TYPE PDCPChangeIndication PRESENCE optional}| - { ID id-E-RABs-ToBeReleased-SgNBModReqdList CRITICALITY ignore TYPE E-RABs-ToBeReleased-SgNBModReqdList PRESENCE optional}| - { ID id-SgNBtoMeNBContainer CRITICALITY ignore TYPE SgNBtoMeNBContainer PRESENCE optional}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-E-RABs-ToBeModified-SgNBModReqdList CRITICALITY ignore TYPE E-RABs-ToBeModified-SgNBModReqdList PRESENCE optional}| - { ID id-SgNBResourceCoordinationInformation CRITICALITY ignore TYPE SgNBResourceCoordinationInformation PRESENCE optional}| - { ID id-RRCConfigIndication CRITICALITY reject TYPE RRC-Config-Ind PRESENCE optional}, - ... -} -*/ - -struct SgNBModificationRequired_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 11; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(id_SgNB_UE_X2AP_ID); type=2;} - void select_id_Cause() { set(id_Cause); type=3;} - void select_id_PDCPChangeIndication() { set(id_PDCPChangeIndication); type=4;} - void select_id_E_RABs_ToBeReleased_SgNBModReqdList() { set(id_E_RABs_ToBeReleased_SgNBModReqdList); type=5;} - void select_id_SgNBtoMeNBContainer() { set(id_SgNBtoMeNBContainer); type=6;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=7;} - void select_id_E_RABs_ToBeModified_SgNBModReqdList() { set(id_E_RABs_ToBeModified_SgNBModReqdList); type=8;} - void select_id_SgNBResourceCoordinationInformation() { set(id_SgNBResourceCoordinationInformation); type=9;} - void select_id_RRCConfigIndication() { set(id_RRCConfigIndication); type=10;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SgNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_Cause)) { type = 3; return true; } - else if(equal(id_PDCPChangeIndication)) { type = 4; return true; } - else if(equal(id_E_RABs_ToBeReleased_SgNBModReqdList)) { type = 5; return true; } - else if(equal(id_SgNBtoMeNBContainer)) { type = 6; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 7; return true; } - else if(equal(id_E_RABs_ToBeModified_SgNBModReqdList)) { type = 8; return true; } - else if(equal(id_SgNBResourceCoordinationInformation)) { type = 9; return true; } - else if(equal(id_RRCConfigIndication)) { type = 10; return true; } - else { type = 11; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SgNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_PDCPChangeIndication);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_E_RABs_ToBeReleased_SgNBModReqdList);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_SgNBtoMeNBContainer);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(id_E_RABs_ToBeModified_SgNBModReqdList);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(id_SgNBResourceCoordinationInformation);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(id_RRCConfigIndication);} return false; - case 11: type = 11; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 11; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(reject); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(reject); type=2;} - void select_id_Cause() { set(ignore); type=3;} - void select_id_PDCPChangeIndication() { set(ignore); type=4;} - void select_id_E_RABs_ToBeReleased_SgNBModReqdList() { set(ignore); type=5;} - void select_id_SgNBtoMeNBContainer() { set(ignore); type=6;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(reject); type=7;} - void select_id_E_RABs_ToBeModified_SgNBModReqdList() { set(ignore); type=8;} - void select_id_SgNBResourceCoordinationInformation() { set(ignore); type=9;} - void select_id_RRCConfigIndication() { set(reject); type=10;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else if(equal(ignore)) { type = 6; return true; } - else if(equal(reject)) { type = 7; return true; } - else if(equal(ignore)) { type = 8; return true; } - else if(equal(ignore)) { type = 9; return true; } - else if(equal(reject)) { type = 10; return true; } - else { type = 11; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(ignore);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(reject);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(ignore);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(ignore);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(reject);} return false; - case 11: type = 11; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - SgNB_UE_X2AP_ID& select_id_SgNB_UE_X2AP_ID() { return set(2); } - SgNB_UE_X2AP_ID const* get_id_SgNB_UE_X2AP_ID() const { return get(2); } - Cause& select_id_Cause() { return set(3); } - Cause const* get_id_Cause() const { return get(3); } - PDCPChangeIndication& select_id_PDCPChangeIndication() { return set(4); } - PDCPChangeIndication const* get_id_PDCPChangeIndication() const { return get(4); } - E_RABs_ToBeReleased_SgNBModReqdList& select_id_E_RABs_ToBeReleased_SgNBModReqdList() { return set(5); } - E_RABs_ToBeReleased_SgNBModReqdList const* get_id_E_RABs_ToBeReleased_SgNBModReqdList() const { return get(5); } - SgNBtoMeNBContainer& select_id_SgNBtoMeNBContainer() { return set(6); } - SgNBtoMeNBContainer const* get_id_SgNBtoMeNBContainer() const { return get(6); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(7); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(7); } - E_RABs_ToBeModified_SgNBModReqdList& select_id_E_RABs_ToBeModified_SgNBModReqdList() { return set(8); } - E_RABs_ToBeModified_SgNBModReqdList const* get_id_E_RABs_ToBeModified_SgNBModReqdList() const { return get(8); } - SgNBResourceCoordinationInformation& select_id_SgNBResourceCoordinationInformation() { return set(9); } - SgNBResourceCoordinationInformation const* get_id_SgNBResourceCoordinationInformation() const { return get(9); } - RRC_Config_Ind& select_id_RRCConfigIndication() { return set(10); } - RRC_Config_Ind const* get_id_RRCConfigIndication() const { return get(10); } - bool is_unknown() const { return type == 11; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - case 7: var.destroy(); break; - case 8: var.destroy(); break; - case 9: var.destroy(); break; - case 10: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - v.template operator()(7); - v.template operator()(8); - v.template operator()(9); - v.template operator()(10); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SgNB_UE_X2AP_ID()); return true; - case 3: v(select_id_Cause()); return true; - case 4: v(select_id_PDCPChangeIndication()); return true; - case 5: v(select_id_E_RABs_ToBeReleased_SgNBModReqdList()); return true; - case 6: v(select_id_SgNBtoMeNBContainer()); return true; - case 7: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 8: v(select_id_E_RABs_ToBeModified_SgNBModReqdList()); return true; - case 9: v(select_id_SgNBResourceCoordinationInformation()); return true; - case 10: v(select_id_RRCConfigIndication()); return true; - case 11: if(type != 11) {clear(); asn::base::set();} type = 11; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - case 7: v(var.as()); return true; - case 8: v(var.as()); return true; - case 9: v(var.as()); return true; - case 10: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(E_RABs_ToBeModified_SgNBModReqdList)]; - char dummy3[sizeof(E_RABs_ToBeReleased_SgNBModReqdList)]; - char dummy4[sizeof(PDCPChangeIndication)]; - char dummy5[sizeof(RRC_Config_Ind)]; - char dummy6[sizeof(SgNBResourceCoordinationInformation)]; - char dummy7[sizeof(SgNB_UE_X2AP_ID)]; - char dummy8[sizeof(SgNBtoMeNBContainer)]; - char dummy9[sizeof(UE_X2AP_ID)]; - char dummy10[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 11; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_Cause() { set(mandatory); type=3;} - void select_id_PDCPChangeIndication() { set(optional); type=4;} - void select_id_E_RABs_ToBeReleased_SgNBModReqdList() { set(optional); type=5;} - void select_id_SgNBtoMeNBContainer() { set(optional); type=6;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=7;} - void select_id_E_RABs_ToBeModified_SgNBModReqdList() { set(optional); type=8;} - void select_id_SgNBResourceCoordinationInformation() { set(optional); type=9;} - void select_id_RRCConfigIndication() { set(optional); type=10;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else if(equal(optional)) { type = 7; return true; } - else if(equal(optional)) { type = 8; return true; } - else if(equal(optional)) { type = 9; return true; } - else if(equal(optional)) { type = 10; return true; } - else { type = 11; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(optional);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(optional);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(optional);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(optional);} return false; - case 11: type = 11; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SgNBModificationRequired ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SgNBModificationRequired-IEs}}, - ... -} -*/ - -struct SgNBModificationRequired : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SgNBModificationRequired";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SgNBReconfigurationComplete-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SgNB-UE-X2AP-ID CRITICALITY reject TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}| - { ID id-ResponseInformationSgNBReconfComp CRITICALITY ignore TYPE ResponseInformationSgNBReconfComp PRESENCE mandatory}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}, - ... -} -*/ - -struct SgNBReconfigurationComplete_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(id_SgNB_UE_X2AP_ID); type=2;} - void select_id_ResponseInformationSgNBReconfComp() { set(id_ResponseInformationSgNBReconfComp); type=3;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=4;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SgNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_ResponseInformationSgNBReconfComp)) { type = 3; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SgNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_ResponseInformationSgNBReconfComp);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(reject); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(reject); type=2;} - void select_id_ResponseInformationSgNBReconfComp() { set(ignore); type=3;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(reject); type=4;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(reject)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(reject);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - SgNB_UE_X2AP_ID& select_id_SgNB_UE_X2AP_ID() { return set(2); } - SgNB_UE_X2AP_ID const* get_id_SgNB_UE_X2AP_ID() const { return get(2); } - ResponseInformationSgNBReconfComp& select_id_ResponseInformationSgNBReconfComp() { return set(3); } - ResponseInformationSgNBReconfComp const* get_id_ResponseInformationSgNBReconfComp() const { return get(3); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(4); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(4); } - bool is_unknown() const { return type == 5; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SgNB_UE_X2AP_ID()); return true; - case 3: v(select_id_ResponseInformationSgNBReconfComp()); return true; - case 4: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 5: if(type != 5) {clear(); asn::base::set();} type = 5; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(ResponseInformationSgNBReconfComp)]; - char dummy2[sizeof(SgNB_UE_X2AP_ID)]; - char dummy3[sizeof(UE_X2AP_ID)]; - char dummy4[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_ResponseInformationSgNBReconfComp() { set(mandatory); type=3;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=4;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SgNBReconfigurationComplete ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SgNBReconfigurationComplete-IEs}}, - ... -} -*/ - -struct SgNBReconfigurationComplete : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SgNBReconfigurationComplete";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SgNBReleaseConfirm-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SgNB-UE-X2AP-ID CRITICALITY ignore TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}| - { ID id-E-RABs-ToBeReleased-SgNBRelConfList CRITICALITY ignore TYPE E-RABs-ToBeReleased-SgNBRelConfList PRESENCE optional}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}, - ... -} -*/ - -struct SgNBReleaseConfirm_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(id_SgNB_UE_X2AP_ID); type=2;} - void select_id_E_RABs_ToBeReleased_SgNBRelConfList() { set(id_E_RABs_ToBeReleased_SgNBRelConfList); type=3;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=5;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SgNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_E_RABs_ToBeReleased_SgNBRelConfList)) { type = 3; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 4; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SgNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_E_RABs_ToBeReleased_SgNBRelConfList);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(ignore); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(ignore); type=2;} - void select_id_E_RABs_ToBeReleased_SgNBRelConfList() { set(ignore); type=3;} - void select_id_CriticalityDiagnostics() { set(ignore); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(ignore); type=5;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - SgNB_UE_X2AP_ID& select_id_SgNB_UE_X2AP_ID() { return set(2); } - SgNB_UE_X2AP_ID const* get_id_SgNB_UE_X2AP_ID() const { return get(2); } - E_RABs_ToBeReleased_SgNBRelConfList& select_id_E_RABs_ToBeReleased_SgNBRelConfList() { return set(3); } - E_RABs_ToBeReleased_SgNBRelConfList const* get_id_E_RABs_ToBeReleased_SgNBRelConfList() const { return get(3); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(4); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(4); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(5); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(5); } - bool is_unknown() const { return type == 6; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SgNB_UE_X2AP_ID()); return true; - case 3: v(select_id_E_RABs_ToBeReleased_SgNBRelConfList()); return true; - case 4: v(select_id_CriticalityDiagnostics()); return true; - case 5: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 6: if(type != 6) {clear(); asn::base::set();} type = 6; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CriticalityDiagnostics)]; - char dummy2[sizeof(E_RABs_ToBeReleased_SgNBRelConfList)]; - char dummy3[sizeof(SgNB_UE_X2AP_ID)]; - char dummy4[sizeof(UE_X2AP_ID)]; - char dummy5[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_E_RABs_ToBeReleased_SgNBRelConfList() { set(optional); type=3;} - void select_id_CriticalityDiagnostics() { set(optional); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=5;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SgNBReleaseConfirm ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SgNBReleaseConfirm-IEs}}, - ... -} -*/ - -struct SgNBReleaseConfirm : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SgNBReleaseConfirm";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SgNBReleaseRequest-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SgNB-UE-X2AP-ID CRITICALITY reject TYPE SgNB-UE-X2AP-ID PRESENCE optional}| - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| - { ID id-E-RABs-ToBeReleased-SgNBRelReqList CRITICALITY ignore TYPE E-RABs-ToBeReleased-SgNBRelReqList PRESENCE optional}| - { ID id-UE-ContextKeptIndicator CRITICALITY ignore TYPE UE-ContextKeptIndicator PRESENCE optional}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-MeNBtoSgNBContainer CRITICALITY reject TYPE MeNBtoSgNBContainer PRESENCE optional}, - ... -} -*/ - -struct SgNBReleaseRequest_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 8; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(id_SgNB_UE_X2AP_ID); type=2;} - void select_id_Cause() { set(id_Cause); type=3;} - void select_id_E_RABs_ToBeReleased_SgNBRelReqList() { set(id_E_RABs_ToBeReleased_SgNBRelReqList); type=4;} - void select_id_UE_ContextKeptIndicator() { set(id_UE_ContextKeptIndicator); type=5;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=6;} - void select_id_MeNBtoSgNBContainer() { set(id_MeNBtoSgNBContainer); type=7;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SgNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_Cause)) { type = 3; return true; } - else if(equal(id_E_RABs_ToBeReleased_SgNBRelReqList)) { type = 4; return true; } - else if(equal(id_UE_ContextKeptIndicator)) { type = 5; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 6; return true; } - else if(equal(id_MeNBtoSgNBContainer)) { type = 7; return true; } - else { type = 8; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SgNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_E_RABs_ToBeReleased_SgNBRelReqList);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_UE_ContextKeptIndicator);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(id_MeNBtoSgNBContainer);} return false; - case 8: type = 8; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 8; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(reject); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(reject); type=2;} - void select_id_Cause() { set(ignore); type=3;} - void select_id_E_RABs_ToBeReleased_SgNBRelReqList() { set(ignore); type=4;} - void select_id_UE_ContextKeptIndicator() { set(ignore); type=5;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(reject); type=6;} - void select_id_MeNBtoSgNBContainer() { set(reject); type=7;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else if(equal(reject)) { type = 6; return true; } - else if(equal(reject)) { type = 7; return true; } - else { type = 8; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(reject);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(reject);} return false; - case 8: type = 8; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - SgNB_UE_X2AP_ID& select_id_SgNB_UE_X2AP_ID() { return set(2); } - SgNB_UE_X2AP_ID const* get_id_SgNB_UE_X2AP_ID() const { return get(2); } - Cause& select_id_Cause() { return set(3); } - Cause const* get_id_Cause() const { return get(3); } - E_RABs_ToBeReleased_SgNBRelReqList& select_id_E_RABs_ToBeReleased_SgNBRelReqList() { return set(4); } - E_RABs_ToBeReleased_SgNBRelReqList const* get_id_E_RABs_ToBeReleased_SgNBRelReqList() const { return get(4); } - UE_ContextKeptIndicator& select_id_UE_ContextKeptIndicator() { return set(5); } - UE_ContextKeptIndicator const* get_id_UE_ContextKeptIndicator() const { return get(5); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(6); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(6); } - MeNBtoSgNBContainer& select_id_MeNBtoSgNBContainer() { return set(7); } - MeNBtoSgNBContainer const* get_id_MeNBtoSgNBContainer() const { return get(7); } - bool is_unknown() const { return type == 8; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - case 7: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - v.template operator()(7); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SgNB_UE_X2AP_ID()); return true; - case 3: v(select_id_Cause()); return true; - case 4: v(select_id_E_RABs_ToBeReleased_SgNBRelReqList()); return true; - case 5: v(select_id_UE_ContextKeptIndicator()); return true; - case 6: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 7: v(select_id_MeNBtoSgNBContainer()); return true; - case 8: if(type != 8) {clear(); asn::base::set();} type = 8; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - case 7: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(E_RABs_ToBeReleased_SgNBRelReqList)]; - char dummy3[sizeof(MeNBtoSgNBContainer)]; - char dummy4[sizeof(SgNB_UE_X2AP_ID)]; - char dummy5[sizeof(UE_ContextKeptIndicator)]; - char dummy6[sizeof(UE_X2AP_ID)]; - char dummy7[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 8; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(optional); type=2;} - void select_id_Cause() { set(mandatory); type=3;} - void select_id_E_RABs_ToBeReleased_SgNBRelReqList() { set(optional); type=4;} - void select_id_UE_ContextKeptIndicator() { set(optional); type=5;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=6;} - void select_id_MeNBtoSgNBContainer() { set(optional); type=7;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else if(equal(optional)) { type = 7; return true; } - else { type = 8; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(optional);} return false; - case 8: type = 8; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SgNBReleaseRequest ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SgNBReleaseRequest-IEs}}, - ... -} -*/ - -struct SgNBReleaseRequest : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SgNBReleaseRequest";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SgNBReleaseRequestAcknowledge-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SgNB-UE-X2AP-ID CRITICALITY ignore TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional }| - { ID id-E-RABs-Admitted-ToBeReleased-SgNBRelReqAckList CRITICALITY ignore TYPE E-RABs-Admitted-ToBeReleased-SgNBRelReqAckList PRESENCE optional }, - ... -} -*/ - -struct SgNBReleaseRequestAcknowledge_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(id_SgNB_UE_X2AP_ID); type=2;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=3;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=4;} - void select_id_E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList() { set(id_E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList); type=5;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SgNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 3; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 4; return true; } - else if(equal(id_E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SgNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(ignore); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(ignore); type=2;} - void select_id_CriticalityDiagnostics() { set(ignore); type=3;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(reject); type=4;} - void select_id_E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList() { set(ignore); type=5;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(reject)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(reject);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - SgNB_UE_X2AP_ID& select_id_SgNB_UE_X2AP_ID() { return set(2); } - SgNB_UE_X2AP_ID const* get_id_SgNB_UE_X2AP_ID() const { return get(2); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(3); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(3); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(4); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(4); } - E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList& select_id_E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList() { return set(5); } - E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList const* get_id_E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList() const { return get(5); } - bool is_unknown() const { return type == 6; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SgNB_UE_X2AP_ID()); return true; - case 3: v(select_id_CriticalityDiagnostics()); return true; - case 4: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 5: v(select_id_E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList()); return true; - case 6: if(type != 6) {clear(); asn::base::set();} type = 6; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CriticalityDiagnostics)]; - char dummy2[sizeof(E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList)]; - char dummy3[sizeof(SgNB_UE_X2AP_ID)]; - char dummy4[sizeof(UE_X2AP_ID)]; - char dummy5[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_CriticalityDiagnostics() { set(optional); type=3;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=4;} - void select_id_E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList() { set(optional); type=5;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SgNBReleaseRequestAcknowledge ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SgNBReleaseRequestAcknowledge-IEs}}, - ... -} -*/ - -struct SgNBReleaseRequestAcknowledge : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SgNBReleaseRequestAcknowledge";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SgNBReleaseRequestReject-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SgNB-UE-X2AP-ID CRITICALITY ignore TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}| - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}, - ... -} -*/ - -struct SgNBReleaseRequestReject_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(id_SgNB_UE_X2AP_ID); type=2;} - void select_id_Cause() { set(id_Cause); type=3;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=5;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SgNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_Cause)) { type = 3; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 4; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SgNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(ignore); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(ignore); type=2;} - void select_id_Cause() { set(ignore); type=3;} - void select_id_CriticalityDiagnostics() { set(ignore); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(reject); type=5;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(reject)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(reject);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - SgNB_UE_X2AP_ID& select_id_SgNB_UE_X2AP_ID() { return set(2); } - SgNB_UE_X2AP_ID const* get_id_SgNB_UE_X2AP_ID() const { return get(2); } - Cause& select_id_Cause() { return set(3); } - Cause const* get_id_Cause() const { return get(3); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(4); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(4); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(5); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(5); } - bool is_unknown() const { return type == 6; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SgNB_UE_X2AP_ID()); return true; - case 3: v(select_id_Cause()); return true; - case 4: v(select_id_CriticalityDiagnostics()); return true; - case 5: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 6: if(type != 6) {clear(); asn::base::set();} type = 6; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(CriticalityDiagnostics)]; - char dummy3[sizeof(SgNB_UE_X2AP_ID)]; - char dummy4[sizeof(UE_X2AP_ID)]; - char dummy5[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_Cause() { set(mandatory); type=3;} - void select_id_CriticalityDiagnostics() { set(optional); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=5;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SgNBReleaseRequestReject ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SgNBReleaseRequestReject-IEs}}, - ... -} -*/ - -struct SgNBReleaseRequestReject : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SgNBReleaseRequestReject";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SgNBReleaseRequired-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SgNB-UE-X2AP-ID CRITICALITY reject TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}| - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional }| - { ID id-E-RABs-ToBeReleased-SgNBRelReqdList CRITICALITY ignore TYPE E-RABs-ToBeReleased-SgNBRelReqdList PRESENCE optional }, - ... -} -*/ - -struct SgNBReleaseRequired_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(id_SgNB_UE_X2AP_ID); type=2;} - void select_id_Cause() { set(id_Cause); type=3;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=4;} - void select_id_E_RABs_ToBeReleased_SgNBRelReqdList() { set(id_E_RABs_ToBeReleased_SgNBRelReqdList); type=5;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SgNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_Cause)) { type = 3; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 4; return true; } - else if(equal(id_E_RABs_ToBeReleased_SgNBRelReqdList)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SgNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_E_RABs_ToBeReleased_SgNBRelReqdList);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(reject); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(reject); type=2;} - void select_id_Cause() { set(ignore); type=3;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(reject); type=4;} - void select_id_E_RABs_ToBeReleased_SgNBRelReqdList() { set(ignore); type=5;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(reject)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(reject);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - SgNB_UE_X2AP_ID& select_id_SgNB_UE_X2AP_ID() { return set(2); } - SgNB_UE_X2AP_ID const* get_id_SgNB_UE_X2AP_ID() const { return get(2); } - Cause& select_id_Cause() { return set(3); } - Cause const* get_id_Cause() const { return get(3); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(4); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(4); } - E_RABs_ToBeReleased_SgNBRelReqdList& select_id_E_RABs_ToBeReleased_SgNBRelReqdList() { return set(5); } - E_RABs_ToBeReleased_SgNBRelReqdList const* get_id_E_RABs_ToBeReleased_SgNBRelReqdList() const { return get(5); } - bool is_unknown() const { return type == 6; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SgNB_UE_X2AP_ID()); return true; - case 3: v(select_id_Cause()); return true; - case 4: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 5: v(select_id_E_RABs_ToBeReleased_SgNBRelReqdList()); return true; - case 6: if(type != 6) {clear(); asn::base::set();} type = 6; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(E_RABs_ToBeReleased_SgNBRelReqdList)]; - char dummy3[sizeof(SgNB_UE_X2AP_ID)]; - char dummy4[sizeof(UE_X2AP_ID)]; - char dummy5[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_Cause() { set(mandatory); type=3;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=4;} - void select_id_E_RABs_ToBeReleased_SgNBRelReqdList() { set(optional); type=5;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SgNBReleaseRequired ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SgNBReleaseRequired-IEs}}, - ... -} -*/ - -struct SgNBReleaseRequired : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SgNBReleaseRequired";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -UEContextRelease-IEs X2AP-PROTOCOL-IES ::= { - { ID id-Old-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-New-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-Old-eNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-New-eNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-SIPTO-BearerDeactivationIndication CRITICALITY ignore TYPE SIPTOBearerDeactivationIndication PRESENCE optional}| - { ID id-SgNB-UE-X2AP-ID CRITICALITY ignore TYPE SgNB-UE-X2AP-ID PRESENCE optional}, - ... -} -*/ - -struct UEContextRelease_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_Old_eNB_UE_X2AP_ID() { set(id_Old_eNB_UE_X2AP_ID); type=1;} - void select_id_New_eNB_UE_X2AP_ID() { set(id_New_eNB_UE_X2AP_ID); type=2;} - void select_id_Old_eNB_UE_X2AP_ID_Extension() { set(id_Old_eNB_UE_X2AP_ID_Extension); type=3;} - void select_id_New_eNB_UE_X2AP_ID_Extension() { set(id_New_eNB_UE_X2AP_ID_Extension); type=4;} - void select_id_SIPTO_BearerDeactivationIndication() { set(id_SIPTO_BearerDeactivationIndication); type=5;} - void select_id_SgNB_UE_X2AP_ID() { set(id_SgNB_UE_X2AP_ID); type=6;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_Old_eNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_New_eNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_Old_eNB_UE_X2AP_ID_Extension)) { type = 3; return true; } - else if(equal(id_New_eNB_UE_X2AP_ID_Extension)) { type = 4; return true; } - else if(equal(id_SIPTO_BearerDeactivationIndication)) { type = 5; return true; } - else if(equal(id_SgNB_UE_X2AP_ID)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_Old_eNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_New_eNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_Old_eNB_UE_X2AP_ID_Extension);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_New_eNB_UE_X2AP_ID_Extension);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_SIPTO_BearerDeactivationIndication);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_SgNB_UE_X2AP_ID);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_Old_eNB_UE_X2AP_ID() { set(reject); type=1;} - void select_id_New_eNB_UE_X2AP_ID() { set(reject); type=2;} - void select_id_Old_eNB_UE_X2AP_ID_Extension() { set(reject); type=3;} - void select_id_New_eNB_UE_X2AP_ID_Extension() { set(reject); type=4;} - void select_id_SIPTO_BearerDeactivationIndication() { set(ignore); type=5;} - void select_id_SgNB_UE_X2AP_ID() { set(ignore); type=6;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(reject)) { type = 3; return true; } - else if(equal(reject)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else if(equal(ignore)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(reject);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(reject);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(ignore);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_Old_eNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_Old_eNB_UE_X2AP_ID() const { return get(1); } - UE_X2AP_ID& select_id_New_eNB_UE_X2AP_ID() { return set(2); } - UE_X2AP_ID const* get_id_New_eNB_UE_X2AP_ID() const { return get(2); } - UE_X2AP_ID_Extension& select_id_Old_eNB_UE_X2AP_ID_Extension() { return set(3); } - UE_X2AP_ID_Extension const* get_id_Old_eNB_UE_X2AP_ID_Extension() const { return get(3); } - UE_X2AP_ID_Extension& select_id_New_eNB_UE_X2AP_ID_Extension() { return set(4); } - UE_X2AP_ID_Extension const* get_id_New_eNB_UE_X2AP_ID_Extension() const { return get(4); } - SIPTOBearerDeactivationIndication& select_id_SIPTO_BearerDeactivationIndication() { return set(5); } - SIPTOBearerDeactivationIndication const* get_id_SIPTO_BearerDeactivationIndication() const { return get(5); } - SgNB_UE_X2AP_ID& select_id_SgNB_UE_X2AP_ID() { return set(6); } - SgNB_UE_X2AP_ID const* get_id_SgNB_UE_X2AP_ID() const { return get(6); } - bool is_unknown() const { return type == 7; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_Old_eNB_UE_X2AP_ID()); return true; - case 2: v(select_id_New_eNB_UE_X2AP_ID()); return true; - case 3: v(select_id_Old_eNB_UE_X2AP_ID_Extension()); return true; - case 4: v(select_id_New_eNB_UE_X2AP_ID_Extension()); return true; - case 5: v(select_id_SIPTO_BearerDeactivationIndication()); return true; - case 6: v(select_id_SgNB_UE_X2AP_ID()); return true; - case 7: if(type != 7) {clear(); asn::base::set();} type = 7; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(SIPTOBearerDeactivationIndication)]; - char dummy2[sizeof(SgNB_UE_X2AP_ID)]; - char dummy3[sizeof(UE_X2AP_ID)]; - char dummy4[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_Old_eNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_New_eNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_Old_eNB_UE_X2AP_ID_Extension() { set(optional); type=3;} - void select_id_New_eNB_UE_X2AP_ID_Extension() { set(optional); type=4;} - void select_id_SIPTO_BearerDeactivationIndication() { set(optional); type=5;} - void select_id_SgNB_UE_X2AP_ID() { set(optional); type=6;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -UEContextRelease ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{UEContextRelease-IEs}}, - ... -} -*/ - -struct UEContextRelease : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "UEContextRelease";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -X2AP-Message ::= OCTET STRING -*/ - -struct X2AP_Message : asn::ostring<> -{ - static constexpr const char* name() {return "X2AP-Message";} - using parent_t = asn::ostring<>; - -}; - -/* -X2APMessageTransfer-IEs X2AP-PROTOCOL-IES ::= { - { ID id-RNL-Header CRITICALITY reject TYPE RNL-Header PRESENCE mandatory}| - { ID id-x2APMessage CRITICALITY reject TYPE X2AP-Message PRESENCE optional}, - ... -} -*/ - -struct X2APMessageTransfer_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_RNL_Header() { set(id_RNL_Header); type=1;} - void select_id_x2APMessage() { set(id_x2APMessage); type=2;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_RNL_Header)) { type = 1; return true; } - else if(equal(id_x2APMessage)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_RNL_Header);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_x2APMessage);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_RNL_Header() { set(reject); type=1;} - void select_id_x2APMessage() { set(reject); type=2;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - RNL_Header& select_id_RNL_Header() { return set(1); } - RNL_Header const* get_id_RNL_Header() const { return get(1); } - X2AP_Message& select_id_x2APMessage() { return set(2); } - X2AP_Message const* get_id_x2APMessage() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_RNL_Header()); return true; - case 2: v(select_id_x2APMessage()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(RNL_Header)]; - char dummy2[sizeof(X2AP_Message)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_RNL_Header() { set(mandatory); type=1;} - void select_id_x2APMessage() { set(optional); type=2;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -X2APMessageTransfer ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{X2APMessageTransfer-IEs}}, - ... -} -*/ - -struct X2APMessageTransfer : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "X2APMessageTransfer";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -X2Release-IEs X2AP-PROTOCOL-IES ::= { - { ID id-GlobalENB-ID CRITICALITY reject TYPE GlobalENB-ID PRESENCE mandatory}, -... -} -*/ - -struct X2Release_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_GlobalENB_ID() { set(id_GlobalENB_ID); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_GlobalENB_ID)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_GlobalENB_ID);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_GlobalENB_ID() { set(reject); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - GlobalENB_ID& select_id_GlobalENB_ID() { return set(1); } - GlobalENB_ID const* get_id_GlobalENB_ID() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_GlobalENB_ID()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(GlobalENB_ID)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_GlobalENB_ID() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -X2Release ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{X2Release-IEs}}, - ... -} -*/ - -struct X2Release : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "X2Release";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -X2RemovalFailure-IEs X2AP-PROTOCOL-IES ::= { - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, - ... -} -*/ - -struct X2RemovalFailure_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_Cause() { set(id_Cause); type=1;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=2;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_Cause)) { type = 1; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_Cause() { set(ignore); type=1;} - void select_id_CriticalityDiagnostics() { set(ignore); type=2;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - Cause& select_id_Cause() { return set(1); } - Cause const* get_id_Cause() const { return get(1); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(2); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_Cause()); return true; - case 2: v(select_id_CriticalityDiagnostics()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(CriticalityDiagnostics)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_Cause() { set(mandatory); type=1;} - void select_id_CriticalityDiagnostics() { set(optional); type=2;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -X2RemovalFailure ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{X2RemovalFailure-IEs}}, - ... -} -*/ - -struct X2RemovalFailure : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "X2RemovalFailure";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -X2RemovalRequest-IEs X2AP-PROTOCOL-IES ::= { - { ID id-GlobalENB-ID CRITICALITY reject TYPE GlobalENB-ID PRESENCE mandatory}| - { ID id-X2RemovalThreshold CRITICALITY reject TYPE X2BenefitValue PRESENCE optional}, -... -} -*/ - -struct X2RemovalRequest_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_GlobalENB_ID() { set(id_GlobalENB_ID); type=1;} - void select_id_X2RemovalThreshold() { set(id_X2RemovalThreshold); type=2;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_GlobalENB_ID)) { type = 1; return true; } - else if(equal(id_X2RemovalThreshold)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_GlobalENB_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_X2RemovalThreshold);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_GlobalENB_ID() { set(reject); type=1;} - void select_id_X2RemovalThreshold() { set(reject); type=2;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - GlobalENB_ID& select_id_GlobalENB_ID() { return set(1); } - GlobalENB_ID const* get_id_GlobalENB_ID() const { return get(1); } - X2BenefitValue& select_id_X2RemovalThreshold() { return set(2); } - X2BenefitValue const* get_id_X2RemovalThreshold() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_GlobalENB_ID()); return true; - case 2: v(select_id_X2RemovalThreshold()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(GlobalENB_ID)]; - char dummy2[sizeof(X2BenefitValue)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_GlobalENB_ID() { set(mandatory); type=1;} - void select_id_X2RemovalThreshold() { set(optional); type=2;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -X2RemovalRequest ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{X2RemovalRequest-IEs}}, - ... -} -*/ - -struct X2RemovalRequest : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "X2RemovalRequest";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -X2RemovalResponse-IEs X2AP-PROTOCOL-IES ::= { - { ID id-GlobalENB-ID CRITICALITY reject TYPE GlobalENB-ID PRESENCE mandatory}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, - ... -} -*/ - -struct X2RemovalResponse_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_GlobalENB_ID() { set(id_GlobalENB_ID); type=1;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=2;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_GlobalENB_ID)) { type = 1; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_GlobalENB_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_GlobalENB_ID() { set(reject); type=1;} - void select_id_CriticalityDiagnostics() { set(ignore); type=2;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - GlobalENB_ID& select_id_GlobalENB_ID() { return set(1); } - GlobalENB_ID const* get_id_GlobalENB_ID() const { return get(1); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(2); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_GlobalENB_ID()); return true; - case 2: v(select_id_CriticalityDiagnostics()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CriticalityDiagnostics)]; - char dummy2[sizeof(GlobalENB_ID)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_GlobalENB_ID() { set(mandatory); type=1;} - void select_id_CriticalityDiagnostics() { set(optional); type=2;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -X2RemovalResponse ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{X2RemovalResponse-IEs}}, - ... -} -*/ - -struct X2RemovalResponse : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "X2RemovalResponse";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -X2SetupFailure-IEs X2AP-PROTOCOL-IES ::= { - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory} | - { ID id-TimeToWait CRITICALITY ignore TYPE TimeToWait PRESENCE optional} | - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, - - ... -} -*/ - -struct X2SetupFailure_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_Cause() { set(id_Cause); type=1;} - void select_id_TimeToWait() { set(id_TimeToWait); type=2;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=3;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_Cause)) { type = 1; return true; } - else if(equal(id_TimeToWait)) { type = 2; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_TimeToWait);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_Cause() { set(ignore); type=1;} - void select_id_TimeToWait() { set(ignore); type=2;} - void select_id_CriticalityDiagnostics() { set(ignore); type=3;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - Cause& select_id_Cause() { return set(1); } - Cause const* get_id_Cause() const { return get(1); } - TimeToWait& select_id_TimeToWait() { return set(2); } - TimeToWait const* get_id_TimeToWait() const { return get(2); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(3); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(3); } - bool is_unknown() const { return type == 4; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_Cause()); return true; - case 2: v(select_id_TimeToWait()); return true; - case 3: v(select_id_CriticalityDiagnostics()); return true; - case 4: if(type != 4) {clear(); asn::base::set();} type = 4; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(CriticalityDiagnostics)]; - char dummy3[sizeof(TimeToWait)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_Cause() { set(mandatory); type=1;} - void select_id_TimeToWait() { set(optional); type=2;} - void select_id_CriticalityDiagnostics() { set(optional); type=3;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -X2SetupFailure ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{X2SetupFailure-IEs}}, - ... -} -*/ - -struct X2SetupFailure : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "X2SetupFailure";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -X2SetupRequest-IEs X2AP-PROTOCOL-IES ::= { - { ID id-GlobalENB-ID CRITICALITY reject TYPE GlobalENB-ID PRESENCE mandatory}| - { ID id-ServedCells CRITICALITY reject TYPE ServedCells PRESENCE mandatory}| - { ID id-GUGroupIDList CRITICALITY reject TYPE GUGroupIDList PRESENCE optional}| - { ID id-LHN-ID CRITICALITY ignore TYPE LHN-ID PRESENCE optional}, -... -} -*/ - -struct X2SetupRequest_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_GlobalENB_ID() { set(id_GlobalENB_ID); type=1;} - void select_id_ServedCells() { set(id_ServedCells); type=2;} - void select_id_GUGroupIDList() { set(id_GUGroupIDList); type=3;} - void select_id_LHN_ID() { set(id_LHN_ID); type=4;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_GlobalENB_ID)) { type = 1; return true; } - else if(equal(id_ServedCells)) { type = 2; return true; } - else if(equal(id_GUGroupIDList)) { type = 3; return true; } - else if(equal(id_LHN_ID)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_GlobalENB_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_ServedCells);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_GUGroupIDList);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_LHN_ID);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_GlobalENB_ID() { set(reject); type=1;} - void select_id_ServedCells() { set(reject); type=2;} - void select_id_GUGroupIDList() { set(reject); type=3;} - void select_id_LHN_ID() { set(ignore); type=4;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(reject)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(reject);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - GlobalENB_ID& select_id_GlobalENB_ID() { return set(1); } - GlobalENB_ID const* get_id_GlobalENB_ID() const { return get(1); } - ServedCells& select_id_ServedCells() { return set(2); } - ServedCells const* get_id_ServedCells() const { return get(2); } - GUGroupIDList& select_id_GUGroupIDList() { return set(3); } - GUGroupIDList const* get_id_GUGroupIDList() const { return get(3); } - LHN_ID& select_id_LHN_ID() { return set(4); } - LHN_ID const* get_id_LHN_ID() const { return get(4); } - bool is_unknown() const { return type == 5; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_GlobalENB_ID()); return true; - case 2: v(select_id_ServedCells()); return true; - case 3: v(select_id_GUGroupIDList()); return true; - case 4: v(select_id_LHN_ID()); return true; - case 5: if(type != 5) {clear(); asn::base::set();} type = 5; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(GUGroupIDList)]; - char dummy2[sizeof(GlobalENB_ID)]; - char dummy3[sizeof(LHN_ID)]; - char dummy4[sizeof(ServedCells)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_GlobalENB_ID() { set(mandatory); type=1;} - void select_id_ServedCells() { set(mandatory); type=2;} - void select_id_GUGroupIDList() { set(optional); type=3;} - void select_id_LHN_ID() { set(optional); type=4;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -X2SetupRequest ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{X2SetupRequest-IEs}}, - ... -} -*/ - -struct X2SetupRequest : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "X2SetupRequest";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -X2SetupResponse-IEs X2AP-PROTOCOL-IES ::= { - { ID id-GlobalENB-ID CRITICALITY reject TYPE GlobalENB-ID PRESENCE mandatory}| - { ID id-ServedCells CRITICALITY reject TYPE ServedCells PRESENCE mandatory}| - { ID id-GUGroupIDList CRITICALITY reject TYPE GUGroupIDList PRESENCE optional}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| - { ID id-LHN-ID CRITICALITY ignore TYPE LHN-ID PRESENCE optional}, - ... -} -*/ - -struct X2SetupResponse_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_GlobalENB_ID() { set(id_GlobalENB_ID); type=1;} - void select_id_ServedCells() { set(id_ServedCells); type=2;} - void select_id_GUGroupIDList() { set(id_GUGroupIDList); type=3;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=4;} - void select_id_LHN_ID() { set(id_LHN_ID); type=5;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_GlobalENB_ID)) { type = 1; return true; } - else if(equal(id_ServedCells)) { type = 2; return true; } - else if(equal(id_GUGroupIDList)) { type = 3; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 4; return true; } - else if(equal(id_LHN_ID)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_GlobalENB_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_ServedCells);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_GUGroupIDList);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_LHN_ID);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_GlobalENB_ID() { set(reject); type=1;} - void select_id_ServedCells() { set(reject); type=2;} - void select_id_GUGroupIDList() { set(reject); type=3;} - void select_id_CriticalityDiagnostics() { set(ignore); type=4;} - void select_id_LHN_ID() { set(ignore); type=5;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(reject)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(reject);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - GlobalENB_ID& select_id_GlobalENB_ID() { return set(1); } - GlobalENB_ID const* get_id_GlobalENB_ID() const { return get(1); } - ServedCells& select_id_ServedCells() { return set(2); } - ServedCells const* get_id_ServedCells() const { return get(2); } - GUGroupIDList& select_id_GUGroupIDList() { return set(3); } - GUGroupIDList const* get_id_GUGroupIDList() const { return get(3); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(4); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(4); } - LHN_ID& select_id_LHN_ID() { return set(5); } - LHN_ID const* get_id_LHN_ID() const { return get(5); } - bool is_unknown() const { return type == 6; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_GlobalENB_ID()); return true; - case 2: v(select_id_ServedCells()); return true; - case 3: v(select_id_GUGroupIDList()); return true; - case 4: v(select_id_CriticalityDiagnostics()); return true; - case 5: v(select_id_LHN_ID()); return true; - case 6: if(type != 6) {clear(); asn::base::set();} type = 6; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CriticalityDiagnostics)]; - char dummy2[sizeof(GUGroupIDList)]; - char dummy3[sizeof(GlobalENB_ID)]; - char dummy4[sizeof(LHN_ID)]; - char dummy5[sizeof(ServedCells)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_GlobalENB_ID() { set(mandatory); type=1;} - void select_id_ServedCells() { set(mandatory); type=2;} - void select_id_GUGroupIDList() { set(optional); type=3;} - void select_id_CriticalityDiagnostics() { set(optional); type=4;} - void select_id_LHN_ID() { set(optional); type=5;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -X2SetupResponse ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{X2SetupResponse-IEs}}, - ... -} -*/ - -struct X2SetupResponse : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "X2SetupResponse";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; diff --git a/e2sim/previous/e2apv1sim/ricsim/src/ASN1/generated/X2AP-PDU-Descriptions.hpp b/e2sim/previous/e2apv1sim/ricsim/src/ASN1/generated/X2AP-PDU-Descriptions.hpp deleted file mode 100644 index 5fbef04..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/ASN1/generated/X2AP-PDU-Descriptions.hpp +++ /dev/null @@ -1,1537 +0,0 @@ -/***************************************************************************** -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -#pragma once - -#include "asn/asn.hpp" -static_assert(ASN_API_VERSION_MAJOR == 5, "re-generate the ASN parser's code using 'make regen-asn' (do not use -j option)"); - -#include "X2AP-CommonDataTypes.hpp" -#include "X2AP-PDU-Contents.hpp" -#include "X2AP-Constants.hpp" - -/* -X2AP-ELEMENTARY-PROCEDURE ::= CLASS { - &InitiatingMessage , - &SuccessfulOutcome OPTIONAL, - &UnsuccessfulOutcome OPTIONAL, - &procedureCode ProcedureCode UNIQUE, - &criticality Criticality DEFAULT ignore -} -WITH SYNTAX { - INITIATING MESSAGE &InitiatingMessage - [SUCCESSFUL OUTCOME &SuccessfulOutcome] - [UNSUCCESSFUL OUTCOME &UnsuccessfulOutcome] - PROCEDURE CODE &procedureCode - [CRITICALITY &criticality] -} -*/ - -struct X2AP_ELEMENTARY_PROCEDURE -{ - struct procedureCode_t : ProcedureCode - { - static constexpr const char* name() {return "procedureCode_t";} - using parent_t = ProcedureCode; - - }; - struct criticality_t : Criticality - { - static constexpr const char* name() {return "criticality_t";} - using parent_t = Criticality; - - }; - -}; -/* -X2AP-ELEMENTARY-PROCEDURES X2AP-ELEMENTARY-PROCEDURE ::= { - X2AP-ELEMENTARY-PROCEDURES-CLASS-1 | - X2AP-ELEMENTARY-PROCEDURES-CLASS-2 , - ... -} -*/ - -struct X2AP_ELEMENTARY_PROCEDURES -{ - struct InitiatingMessage_t : asn::typefield - { - ~InitiatingMessage_t() {clear();} - size_t get_index() const {return type;} - HandoverRequest& select_id_handoverPreparation() { return set(1); } - HandoverRequest const* get_id_handoverPreparation() const { return get(1); } - ResetRequest& select_id_reset() { return set(2); } - ResetRequest const* get_id_reset() const { return get(2); } - X2SetupRequest& select_id_x2Setup() { return set(3); } - X2SetupRequest const* get_id_x2Setup() const { return get(3); } - ResourceStatusRequest& select_id_resourceStatusReportingInitiation() { return set(4); } - ResourceStatusRequest const* get_id_resourceStatusReportingInitiation() const { return get(4); } - ENBConfigurationUpdate& select_id_eNBConfigurationUpdate() { return set(5); } - ENBConfigurationUpdate const* get_id_eNBConfigurationUpdate() const { return get(5); } - MobilityChangeRequest& select_id_mobilitySettingsChange() { return set(6); } - MobilityChangeRequest const* get_id_mobilitySettingsChange() const { return get(6); } - CellActivationRequest& select_id_cellActivation() { return set(7); } - CellActivationRequest const* get_id_cellActivation() const { return get(7); } - SeNBAdditionRequest& select_id_seNBAdditionPreparation() { return set(8); } - SeNBAdditionRequest const* get_id_seNBAdditionPreparation() const { return get(8); } - SeNBModificationRequest& select_id_meNBinitiatedSeNBModificationPreparation() { return set(9); } - SeNBModificationRequest const* get_id_meNBinitiatedSeNBModificationPreparation() const { return get(9); } - SeNBModificationRequired& select_id_seNBinitiatedSeNBModification() { return set(10); } - SeNBModificationRequired const* get_id_seNBinitiatedSeNBModification() const { return get(10); } - SeNBReleaseRequired& select_id_seNBinitiatedSeNBRelease() { return set(11); } - SeNBReleaseRequired const* get_id_seNBinitiatedSeNBRelease() const { return get(11); } - X2RemovalRequest& select_id_x2Removal() { return set(12); } - X2RemovalRequest const* get_id_x2Removal() const { return get(12); } - RetrieveUEContextRequest& select_id_retrieveUEContext() { return set(13); } - RetrieveUEContextRequest const* get_id_retrieveUEContext() const { return get(13); } - SgNBAdditionRequest& select_id_sgNBAdditionPreparation() { return set(14); } - SgNBAdditionRequest const* get_id_sgNBAdditionPreparation() const { return get(14); } - SgNBModificationRequest& select_id_meNBinitiatedSgNBModificationPreparation() { return set(15); } - SgNBModificationRequest const* get_id_meNBinitiatedSgNBModificationPreparation() const { return get(15); } - SgNBModificationRequired& select_id_sgNBinitiatedSgNBModification() { return set(16); } - SgNBModificationRequired const* get_id_sgNBinitiatedSgNBModification() const { return get(16); } - SgNBReleaseRequest& select_id_meNBinitiatedSgNBRelease() { return set(17); } - SgNBReleaseRequest const* get_id_meNBinitiatedSgNBRelease() const { return get(17); } - SgNBReleaseRequired& select_id_sgNBinitiatedSgNBRelease() { return set(18); } - SgNBReleaseRequired const* get_id_sgNBinitiatedSgNBRelease() const { return get(18); } - SgNBChangeRequired& select_id_sgNBChange() { return set(19); } - SgNBChangeRequired const* get_id_sgNBChange() const { return get(19); } - ENDCX2SetupRequest& select_id_endcX2Setup() { return set(20); } - ENDCX2SetupRequest const* get_id_endcX2Setup() const { return get(20); } - ENDCConfigurationUpdate& select_id_endcConfigurationUpdate() { return set(21); } - ENDCConfigurationUpdate const* get_id_endcConfigurationUpdate() const { return get(21); } - ENDCCellActivationRequest& select_id_endcCellActivation() { return set(22); } - ENDCCellActivationRequest const* get_id_endcCellActivation() const { return get(22); } - ENDCPartialResetRequired& select_id_endcPartialReset() { return set(23); } - ENDCPartialResetRequired const* get_id_endcPartialReset() const { return get(23); } - EUTRANRCellResourceCoordinationRequest& select_id_eUTRANRCellResourceCoordination() { return set(24); } - EUTRANRCellResourceCoordinationRequest const* get_id_eUTRANRCellResourceCoordination() const { return get(24); } - ENDCX2RemovalRequest& select_id_endcX2Removal() { return set(25); } - ENDCX2RemovalRequest const* get_id_endcX2Removal() const { return get(25); } - SNStatusTransfer& select_id_snStatusTransfer() { return set(26); } - SNStatusTransfer const* get_id_snStatusTransfer() const { return get(26); } - UEContextRelease& select_id_uEContextRelease() { return set(27); } - UEContextRelease const* get_id_uEContextRelease() const { return get(27); } - HandoverCancel& select_id_handoverCancel() { return set(28); } - HandoverCancel const* get_id_handoverCancel() const { return get(28); } - ErrorIndication& select_id_errorIndication() { return set(29); } - ErrorIndication const* get_id_errorIndication() const { return get(29); } - ResourceStatusUpdate& select_id_resourceStatusReporting() { return set(30); } - ResourceStatusUpdate const* get_id_resourceStatusReporting() const { return get(30); } - LoadInformation& select_id_loadIndication() { return set(31); } - LoadInformation const* get_id_loadIndication() const { return get(31); } - PrivateMessage& select_id_privateMessage() { return set(32); } - PrivateMessage const* get_id_privateMessage() const { return get(32); } - RLFIndication& select_id_rLFIndication() { return set(33); } - RLFIndication const* get_id_rLFIndication() const { return get(33); } - HandoverReport& select_id_handoverReport() { return set(34); } - HandoverReport const* get_id_handoverReport() const { return get(34); } - X2Release& select_id_x2Release() { return set(35); } - X2Release const* get_id_x2Release() const { return get(35); } - X2APMessageTransfer& select_id_x2APMessageTransfer() { return set(36); } - X2APMessageTransfer const* get_id_x2APMessageTransfer() const { return get(36); } - SeNBReconfigurationComplete& select_id_seNBReconfigurationCompletion() { return set(37); } - SeNBReconfigurationComplete const* get_id_seNBReconfigurationCompletion() const { return get(37); } - SeNBReleaseRequest& select_id_meNBinitiatedSeNBRelease() { return set(38); } - SeNBReleaseRequest const* get_id_meNBinitiatedSeNBRelease() const { return get(38); } - SeNBCounterCheckRequest& select_id_seNBCounterCheck() { return set(39); } - SeNBCounterCheckRequest const* get_id_seNBCounterCheck() const { return get(39); } - SgNBReconfigurationComplete& select_id_sgNBReconfigurationCompletion() { return set(40); } - SgNBReconfigurationComplete const* get_id_sgNBReconfigurationCompletion() const { return get(40); } - SgNBCounterCheckRequest& select_id_sgNBCounterCheck() { return set(41); } - SgNBCounterCheckRequest const* get_id_sgNBCounterCheck() const { return get(41); } - RRCTransfer& select_id_rRCTransfer() { return set(42); } - RRCTransfer const* get_id_rRCTransfer() const { return get(42); } - SecondaryRATDataUsageReport& select_id_secondaryRATDataUsageReport() { return set(43); } - SecondaryRATDataUsageReport const* get_id_secondaryRATDataUsageReport() const { return get(43); } - SgNBActivityNotification& select_id_SgNBActivityNotification() { return set(44); } - SgNBActivityNotification const* get_id_SgNBActivityNotification() const { return get(44); } - DataForwardingAddressIndication& select_id_dataForwardingAddressIndication() { return set(45); } - DataForwardingAddressIndication const* get_id_dataForwardingAddressIndication() const { return get(45); } - bool is_unknown() const { return type == 46; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - case 7: var.destroy(); break; - case 8: var.destroy(); break; - case 9: var.destroy(); break; - case 10: var.destroy(); break; - case 11: var.destroy(); break; - case 12: var.destroy(); break; - case 13: var.destroy(); break; - case 14: var.destroy(); break; - case 15: var.destroy(); break; - case 16: var.destroy(); break; - case 17: var.destroy(); break; - case 18: var.destroy(); break; - case 19: var.destroy(); break; - case 20: var.destroy(); break; - case 21: var.destroy(); break; - case 22: var.destroy(); break; - case 23: var.destroy(); break; - case 24: var.destroy(); break; - case 25: var.destroy(); break; - case 26: var.destroy(); break; - case 27: var.destroy(); break; - case 28: var.destroy(); break; - case 29: var.destroy(); break; - case 30: var.destroy(); break; - case 31: var.destroy(); break; - case 32: var.destroy(); break; - case 33: var.destroy(); break; - case 34: var.destroy(); break; - case 35: var.destroy(); break; - case 36: var.destroy(); break; - case 37: var.destroy(); break; - case 38: var.destroy(); break; - case 39: var.destroy(); break; - case 40: var.destroy(); break; - case 41: var.destroy(); break; - case 42: var.destroy(); break; - case 43: var.destroy(); break; - case 44: var.destroy(); break; - case 45: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - v.template operator()(7); - v.template operator()(8); - v.template operator()(9); - v.template operator()(10); - v.template operator()(11); - v.template operator()(12); - v.template operator()(13); - v.template operator()(14); - v.template operator()(15); - v.template operator()(16); - v.template operator()(17); - v.template operator()(18); - v.template operator()(19); - v.template operator()(20); - v.template operator()(21); - v.template operator()(22); - v.template operator()(23); - v.template operator()(24); - v.template operator()(25); - v.template operator()(26); - v.template operator()(27); - v.template operator()(28); - v.template operator()(29); - v.template operator()(30); - v.template operator()(31); - v.template operator()(32); - v.template operator()(33); - v.template operator()(34); - v.template operator()(35); - v.template operator()(36); - v.template operator()(37); - v.template operator()(38); - v.template operator()(39); - v.template operator()(40); - v.template operator()(41); - v.template operator()(42); - v.template operator()(43); - v.template operator()(44); - v.template operator()(45); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_handoverPreparation()); return true; - case 2: v(select_id_reset()); return true; - case 3: v(select_id_x2Setup()); return true; - case 4: v(select_id_resourceStatusReportingInitiation()); return true; - case 5: v(select_id_eNBConfigurationUpdate()); return true; - case 6: v(select_id_mobilitySettingsChange()); return true; - case 7: v(select_id_cellActivation()); return true; - case 8: v(select_id_seNBAdditionPreparation()); return true; - case 9: v(select_id_meNBinitiatedSeNBModificationPreparation()); return true; - case 10: v(select_id_seNBinitiatedSeNBModification()); return true; - case 11: v(select_id_seNBinitiatedSeNBRelease()); return true; - case 12: v(select_id_x2Removal()); return true; - case 13: v(select_id_retrieveUEContext()); return true; - case 14: v(select_id_sgNBAdditionPreparation()); return true; - case 15: v(select_id_meNBinitiatedSgNBModificationPreparation()); return true; - case 16: v(select_id_sgNBinitiatedSgNBModification()); return true; - case 17: v(select_id_meNBinitiatedSgNBRelease()); return true; - case 18: v(select_id_sgNBinitiatedSgNBRelease()); return true; - case 19: v(select_id_sgNBChange()); return true; - case 20: v(select_id_endcX2Setup()); return true; - case 21: v(select_id_endcConfigurationUpdate()); return true; - case 22: v(select_id_endcCellActivation()); return true; - case 23: v(select_id_endcPartialReset()); return true; - case 24: v(select_id_eUTRANRCellResourceCoordination()); return true; - case 25: v(select_id_endcX2Removal()); return true; - case 26: v(select_id_snStatusTransfer()); return true; - case 27: v(select_id_uEContextRelease()); return true; - case 28: v(select_id_handoverCancel()); return true; - case 29: v(select_id_errorIndication()); return true; - case 30: v(select_id_resourceStatusReporting()); return true; - case 31: v(select_id_loadIndication()); return true; - case 32: v(select_id_privateMessage()); return true; - case 33: v(select_id_rLFIndication()); return true; - case 34: v(select_id_handoverReport()); return true; - case 35: v(select_id_x2Release()); return true; - case 36: v(select_id_x2APMessageTransfer()); return true; - case 37: v(select_id_seNBReconfigurationCompletion()); return true; - case 38: v(select_id_meNBinitiatedSeNBRelease()); return true; - case 39: v(select_id_seNBCounterCheck()); return true; - case 40: v(select_id_sgNBReconfigurationCompletion()); return true; - case 41: v(select_id_sgNBCounterCheck()); return true; - case 42: v(select_id_rRCTransfer()); return true; - case 43: v(select_id_secondaryRATDataUsageReport()); return true; - case 44: v(select_id_SgNBActivityNotification()); return true; - case 45: v(select_id_dataForwardingAddressIndication()); return true; - case 46: if(type != 46) {clear(); asn::base::set();} type = 46; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - case 7: v(var.as()); return true; - case 8: v(var.as()); return true; - case 9: v(var.as()); return true; - case 10: v(var.as()); return true; - case 11: v(var.as()); return true; - case 12: v(var.as()); return true; - case 13: v(var.as()); return true; - case 14: v(var.as()); return true; - case 15: v(var.as()); return true; - case 16: v(var.as()); return true; - case 17: v(var.as()); return true; - case 18: v(var.as()); return true; - case 19: v(var.as()); return true; - case 20: v(var.as()); return true; - case 21: v(var.as()); return true; - case 22: v(var.as()); return true; - case 23: v(var.as()); return true; - case 24: v(var.as()); return true; - case 25: v(var.as()); return true; - case 26: v(var.as()); return true; - case 27: v(var.as()); return true; - case 28: v(var.as()); return true; - case 29: v(var.as()); return true; - case 30: v(var.as()); return true; - case 31: v(var.as()); return true; - case 32: v(var.as()); return true; - case 33: v(var.as()); return true; - case 34: v(var.as()); return true; - case 35: v(var.as()); return true; - case 36: v(var.as()); return true; - case 37: v(var.as()); return true; - case 38: v(var.as()); return true; - case 39: v(var.as()); return true; - case 40: v(var.as()); return true; - case 41: v(var.as()); return true; - case 42: v(var.as()); return true; - case 43: v(var.as()); return true; - case 44: v(var.as()); return true; - case 45: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CellActivationRequest)]; - char dummy2[sizeof(DataForwardingAddressIndication)]; - char dummy3[sizeof(ENBConfigurationUpdate)]; - char dummy4[sizeof(ENDCCellActivationRequest)]; - char dummy5[sizeof(ENDCConfigurationUpdate)]; - char dummy6[sizeof(ENDCPartialResetRequired)]; - char dummy7[sizeof(ENDCX2RemovalRequest)]; - char dummy8[sizeof(ENDCX2SetupRequest)]; - char dummy9[sizeof(EUTRANRCellResourceCoordinationRequest)]; - char dummy10[sizeof(ErrorIndication)]; - char dummy11[sizeof(HandoverCancel)]; - char dummy12[sizeof(HandoverReport)]; - char dummy13[sizeof(HandoverRequest)]; - char dummy14[sizeof(LoadInformation)]; - char dummy15[sizeof(MobilityChangeRequest)]; - char dummy16[sizeof(PrivateMessage)]; - char dummy17[sizeof(RLFIndication)]; - char dummy18[sizeof(RRCTransfer)]; - char dummy19[sizeof(ResetRequest)]; - char dummy20[sizeof(ResourceStatusRequest)]; - char dummy21[sizeof(ResourceStatusUpdate)]; - char dummy22[sizeof(RetrieveUEContextRequest)]; - char dummy23[sizeof(SNStatusTransfer)]; - char dummy24[sizeof(SeNBAdditionRequest)]; - char dummy25[sizeof(SeNBCounterCheckRequest)]; - char dummy26[sizeof(SeNBModificationRequest)]; - char dummy27[sizeof(SeNBModificationRequired)]; - char dummy28[sizeof(SeNBReconfigurationComplete)]; - char dummy29[sizeof(SeNBReleaseRequest)]; - char dummy30[sizeof(SeNBReleaseRequired)]; - char dummy31[sizeof(SecondaryRATDataUsageReport)]; - char dummy32[sizeof(SgNBActivityNotification)]; - char dummy33[sizeof(SgNBAdditionRequest)]; - char dummy34[sizeof(SgNBChangeRequired)]; - char dummy35[sizeof(SgNBCounterCheckRequest)]; - char dummy36[sizeof(SgNBModificationRequest)]; - char dummy37[sizeof(SgNBModificationRequired)]; - char dummy38[sizeof(SgNBReconfigurationComplete)]; - char dummy39[sizeof(SgNBReleaseRequest)]; - char dummy40[sizeof(SgNBReleaseRequired)]; - char dummy41[sizeof(UEContextRelease)]; - char dummy42[sizeof(X2APMessageTransfer)]; - char dummy43[sizeof(X2Release)]; - char dummy44[sizeof(X2RemovalRequest)]; - char dummy45[sizeof(X2SetupRequest)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct SuccessfulOutcome_t : asn::typefield - { - ~SuccessfulOutcome_t() {clear();} - size_t get_index() const {return type;} - HandoverRequestAcknowledge& select_id_handoverPreparation() { return set(1); } - HandoverRequestAcknowledge const* get_id_handoverPreparation() const { return get(1); } - ResetResponse& select_id_reset() { return set(2); } - ResetResponse const* get_id_reset() const { return get(2); } - X2SetupResponse& select_id_x2Setup() { return set(3); } - X2SetupResponse const* get_id_x2Setup() const { return get(3); } - ResourceStatusResponse& select_id_resourceStatusReportingInitiation() { return set(4); } - ResourceStatusResponse const* get_id_resourceStatusReportingInitiation() const { return get(4); } - ENBConfigurationUpdateAcknowledge& select_id_eNBConfigurationUpdate() { return set(5); } - ENBConfigurationUpdateAcknowledge const* get_id_eNBConfigurationUpdate() const { return get(5); } - MobilityChangeAcknowledge& select_id_mobilitySettingsChange() { return set(6); } - MobilityChangeAcknowledge const* get_id_mobilitySettingsChange() const { return get(6); } - CellActivationResponse& select_id_cellActivation() { return set(7); } - CellActivationResponse const* get_id_cellActivation() const { return get(7); } - SeNBAdditionRequestAcknowledge& select_id_seNBAdditionPreparation() { return set(8); } - SeNBAdditionRequestAcknowledge const* get_id_seNBAdditionPreparation() const { return get(8); } - SeNBModificationRequestAcknowledge& select_id_meNBinitiatedSeNBModificationPreparation() { return set(9); } - SeNBModificationRequestAcknowledge const* get_id_meNBinitiatedSeNBModificationPreparation() const { return get(9); } - SeNBModificationConfirm& select_id_seNBinitiatedSeNBModification() { return set(10); } - SeNBModificationConfirm const* get_id_seNBinitiatedSeNBModification() const { return get(10); } - SeNBReleaseConfirm& select_id_seNBinitiatedSeNBRelease() { return set(11); } - SeNBReleaseConfirm const* get_id_seNBinitiatedSeNBRelease() const { return get(11); } - X2RemovalResponse& select_id_x2Removal() { return set(12); } - X2RemovalResponse const* get_id_x2Removal() const { return get(12); } - RetrieveUEContextResponse& select_id_retrieveUEContext() { return set(13); } - RetrieveUEContextResponse const* get_id_retrieveUEContext() const { return get(13); } - SgNBAdditionRequestAcknowledge& select_id_sgNBAdditionPreparation() { return set(14); } - SgNBAdditionRequestAcknowledge const* get_id_sgNBAdditionPreparation() const { return get(14); } - SgNBModificationRequestAcknowledge& select_id_meNBinitiatedSgNBModificationPreparation() { return set(15); } - SgNBModificationRequestAcknowledge const* get_id_meNBinitiatedSgNBModificationPreparation() const { return get(15); } - SgNBModificationConfirm& select_id_sgNBinitiatedSgNBModification() { return set(16); } - SgNBModificationConfirm const* get_id_sgNBinitiatedSgNBModification() const { return get(16); } - SgNBReleaseRequestAcknowledge& select_id_meNBinitiatedSgNBRelease() { return set(17); } - SgNBReleaseRequestAcknowledge const* get_id_meNBinitiatedSgNBRelease() const { return get(17); } - SgNBReleaseConfirm& select_id_sgNBinitiatedSgNBRelease() { return set(18); } - SgNBReleaseConfirm const* get_id_sgNBinitiatedSgNBRelease() const { return get(18); } - SgNBChangeConfirm& select_id_sgNBChange() { return set(19); } - SgNBChangeConfirm const* get_id_sgNBChange() const { return get(19); } - ENDCX2SetupResponse& select_id_endcX2Setup() { return set(20); } - ENDCX2SetupResponse const* get_id_endcX2Setup() const { return get(20); } - ENDCConfigurationUpdateAcknowledge& select_id_endcConfigurationUpdate() { return set(21); } - ENDCConfigurationUpdateAcknowledge const* get_id_endcConfigurationUpdate() const { return get(21); } - ENDCCellActivationResponse& select_id_endcCellActivation() { return set(22); } - ENDCCellActivationResponse const* get_id_endcCellActivation() const { return get(22); } - ENDCPartialResetConfirm& select_id_endcPartialReset() { return set(23); } - ENDCPartialResetConfirm const* get_id_endcPartialReset() const { return get(23); } - EUTRANRCellResourceCoordinationResponse& select_id_eUTRANRCellResourceCoordination() { return set(24); } - EUTRANRCellResourceCoordinationResponse const* get_id_eUTRANRCellResourceCoordination() const { return get(24); } - ENDCX2RemovalResponse& select_id_endcX2Removal() { return set(25); } - ENDCX2RemovalResponse const* get_id_endcX2Removal() const { return get(25); } - bool is_unknown() const { return type == 46; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - case 7: var.destroy(); break; - case 8: var.destroy(); break; - case 9: var.destroy(); break; - case 10: var.destroy(); break; - case 11: var.destroy(); break; - case 12: var.destroy(); break; - case 13: var.destroy(); break; - case 14: var.destroy(); break; - case 15: var.destroy(); break; - case 16: var.destroy(); break; - case 17: var.destroy(); break; - case 18: var.destroy(); break; - case 19: var.destroy(); break; - case 20: var.destroy(); break; - case 21: var.destroy(); break; - case 22: var.destroy(); break; - case 23: var.destroy(); break; - case 24: var.destroy(); break; - case 25: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - v.template operator()(7); - v.template operator()(8); - v.template operator()(9); - v.template operator()(10); - v.template operator()(11); - v.template operator()(12); - v.template operator()(13); - v.template operator()(14); - v.template operator()(15); - v.template operator()(16); - v.template operator()(17); - v.template operator()(18); - v.template operator()(19); - v.template operator()(20); - v.template operator()(21); - v.template operator()(22); - v.template operator()(23); - v.template operator()(24); - v.template operator()(25); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_handoverPreparation()); return true; - case 2: v(select_id_reset()); return true; - case 3: v(select_id_x2Setup()); return true; - case 4: v(select_id_resourceStatusReportingInitiation()); return true; - case 5: v(select_id_eNBConfigurationUpdate()); return true; - case 6: v(select_id_mobilitySettingsChange()); return true; - case 7: v(select_id_cellActivation()); return true; - case 8: v(select_id_seNBAdditionPreparation()); return true; - case 9: v(select_id_meNBinitiatedSeNBModificationPreparation()); return true; - case 10: v(select_id_seNBinitiatedSeNBModification()); return true; - case 11: v(select_id_seNBinitiatedSeNBRelease()); return true; - case 12: v(select_id_x2Removal()); return true; - case 13: v(select_id_retrieveUEContext()); return true; - case 14: v(select_id_sgNBAdditionPreparation()); return true; - case 15: v(select_id_meNBinitiatedSgNBModificationPreparation()); return true; - case 16: v(select_id_sgNBinitiatedSgNBModification()); return true; - case 17: v(select_id_meNBinitiatedSgNBRelease()); return true; - case 18: v(select_id_sgNBinitiatedSgNBRelease()); return true; - case 19: v(select_id_sgNBChange()); return true; - case 20: v(select_id_endcX2Setup()); return true; - case 21: v(select_id_endcConfigurationUpdate()); return true; - case 22: v(select_id_endcCellActivation()); return true; - case 23: v(select_id_endcPartialReset()); return true; - case 24: v(select_id_eUTRANRCellResourceCoordination()); return true; - case 25: v(select_id_endcX2Removal()); return true; - case 46: if(type != 46) {clear(); asn::base::set();} type = 46; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - case 7: v(var.as()); return true; - case 8: v(var.as()); return true; - case 9: v(var.as()); return true; - case 10: v(var.as()); return true; - case 11: v(var.as()); return true; - case 12: v(var.as()); return true; - case 13: v(var.as()); return true; - case 14: v(var.as()); return true; - case 15: v(var.as()); return true; - case 16: v(var.as()); return true; - case 17: v(var.as()); return true; - case 18: v(var.as()); return true; - case 19: v(var.as()); return true; - case 20: v(var.as()); return true; - case 21: v(var.as()); return true; - case 22: v(var.as()); return true; - case 23: v(var.as()); return true; - case 24: v(var.as()); return true; - case 25: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CellActivationResponse)]; - char dummy2[sizeof(ENBConfigurationUpdateAcknowledge)]; - char dummy3[sizeof(ENDCCellActivationResponse)]; - char dummy4[sizeof(ENDCConfigurationUpdateAcknowledge)]; - char dummy5[sizeof(ENDCPartialResetConfirm)]; - char dummy6[sizeof(ENDCX2RemovalResponse)]; - char dummy7[sizeof(ENDCX2SetupResponse)]; - char dummy8[sizeof(EUTRANRCellResourceCoordinationResponse)]; - char dummy9[sizeof(HandoverRequestAcknowledge)]; - char dummy10[sizeof(MobilityChangeAcknowledge)]; - char dummy11[sizeof(ResetResponse)]; - char dummy12[sizeof(ResourceStatusResponse)]; - char dummy13[sizeof(RetrieveUEContextResponse)]; - char dummy14[sizeof(SeNBAdditionRequestAcknowledge)]; - char dummy15[sizeof(SeNBModificationConfirm)]; - char dummy16[sizeof(SeNBModificationRequestAcknowledge)]; - char dummy17[sizeof(SeNBReleaseConfirm)]; - char dummy18[sizeof(SgNBAdditionRequestAcknowledge)]; - char dummy19[sizeof(SgNBChangeConfirm)]; - char dummy20[sizeof(SgNBModificationConfirm)]; - char dummy21[sizeof(SgNBModificationRequestAcknowledge)]; - char dummy22[sizeof(SgNBReleaseConfirm)]; - char dummy23[sizeof(SgNBReleaseRequestAcknowledge)]; - char dummy24[sizeof(X2RemovalResponse)]; - char dummy25[sizeof(X2SetupResponse)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct UnsuccessfulOutcome_t : asn::typefield - { - ~UnsuccessfulOutcome_t() {clear();} - size_t get_index() const {return type;} - HandoverPreparationFailure& select_id_handoverPreparation() { return set(1); } - HandoverPreparationFailure const* get_id_handoverPreparation() const { return get(1); } - X2SetupFailure& select_id_x2Setup() { return set(3); } - X2SetupFailure const* get_id_x2Setup() const { return get(3); } - ResourceStatusFailure& select_id_resourceStatusReportingInitiation() { return set(4); } - ResourceStatusFailure const* get_id_resourceStatusReportingInitiation() const { return get(4); } - ENBConfigurationUpdateFailure& select_id_eNBConfigurationUpdate() { return set(5); } - ENBConfigurationUpdateFailure const* get_id_eNBConfigurationUpdate() const { return get(5); } - MobilityChangeFailure& select_id_mobilitySettingsChange() { return set(6); } - MobilityChangeFailure const* get_id_mobilitySettingsChange() const { return get(6); } - CellActivationFailure& select_id_cellActivation() { return set(7); } - CellActivationFailure const* get_id_cellActivation() const { return get(7); } - SeNBAdditionRequestReject& select_id_seNBAdditionPreparation() { return set(8); } - SeNBAdditionRequestReject const* get_id_seNBAdditionPreparation() const { return get(8); } - SeNBModificationRequestReject& select_id_meNBinitiatedSeNBModificationPreparation() { return set(9); } - SeNBModificationRequestReject const* get_id_meNBinitiatedSeNBModificationPreparation() const { return get(9); } - SeNBModificationRefuse& select_id_seNBinitiatedSeNBModification() { return set(10); } - SeNBModificationRefuse const* get_id_seNBinitiatedSeNBModification() const { return get(10); } - X2RemovalFailure& select_id_x2Removal() { return set(12); } - X2RemovalFailure const* get_id_x2Removal() const { return get(12); } - RetrieveUEContextFailure& select_id_retrieveUEContext() { return set(13); } - RetrieveUEContextFailure const* get_id_retrieveUEContext() const { return get(13); } - SgNBAdditionRequestReject& select_id_sgNBAdditionPreparation() { return set(14); } - SgNBAdditionRequestReject const* get_id_sgNBAdditionPreparation() const { return get(14); } - SgNBModificationRequestReject& select_id_meNBinitiatedSgNBModificationPreparation() { return set(15); } - SgNBModificationRequestReject const* get_id_meNBinitiatedSgNBModificationPreparation() const { return get(15); } - SgNBModificationRefuse& select_id_sgNBinitiatedSgNBModification() { return set(16); } - SgNBModificationRefuse const* get_id_sgNBinitiatedSgNBModification() const { return get(16); } - SgNBReleaseRequestReject& select_id_meNBinitiatedSgNBRelease() { return set(17); } - SgNBReleaseRequestReject const* get_id_meNBinitiatedSgNBRelease() const { return get(17); } - SgNBChangeRefuse& select_id_sgNBChange() { return set(19); } - SgNBChangeRefuse const* get_id_sgNBChange() const { return get(19); } - ENDCX2SetupFailure& select_id_endcX2Setup() { return set(20); } - ENDCX2SetupFailure const* get_id_endcX2Setup() const { return get(20); } - ENDCConfigurationUpdateFailure& select_id_endcConfigurationUpdate() { return set(21); } - ENDCConfigurationUpdateFailure const* get_id_endcConfigurationUpdate() const { return get(21); } - ENDCCellActivationFailure& select_id_endcCellActivation() { return set(22); } - ENDCCellActivationFailure const* get_id_endcCellActivation() const { return get(22); } - ENDCX2RemovalFailure& select_id_endcX2Removal() { return set(25); } - ENDCX2RemovalFailure const* get_id_endcX2Removal() const { return get(25); } - bool is_unknown() const { return type == 46; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - case 7: var.destroy(); break; - case 8: var.destroy(); break; - case 9: var.destroy(); break; - case 10: var.destroy(); break; - case 12: var.destroy(); break; - case 13: var.destroy(); break; - case 14: var.destroy(); break; - case 15: var.destroy(); break; - case 16: var.destroy(); break; - case 17: var.destroy(); break; - case 19: var.destroy(); break; - case 20: var.destroy(); break; - case 21: var.destroy(); break; - case 22: var.destroy(); break; - case 25: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - v.template operator()(7); - v.template operator()(8); - v.template operator()(9); - v.template operator()(10); - v.template operator()(12); - v.template operator()(13); - v.template operator()(14); - v.template operator()(15); - v.template operator()(16); - v.template operator()(17); - v.template operator()(19); - v.template operator()(20); - v.template operator()(21); - v.template operator()(22); - v.template operator()(25); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_handoverPreparation()); return true; - case 3: v(select_id_x2Setup()); return true; - case 4: v(select_id_resourceStatusReportingInitiation()); return true; - case 5: v(select_id_eNBConfigurationUpdate()); return true; - case 6: v(select_id_mobilitySettingsChange()); return true; - case 7: v(select_id_cellActivation()); return true; - case 8: v(select_id_seNBAdditionPreparation()); return true; - case 9: v(select_id_meNBinitiatedSeNBModificationPreparation()); return true; - case 10: v(select_id_seNBinitiatedSeNBModification()); return true; - case 12: v(select_id_x2Removal()); return true; - case 13: v(select_id_retrieveUEContext()); return true; - case 14: v(select_id_sgNBAdditionPreparation()); return true; - case 15: v(select_id_meNBinitiatedSgNBModificationPreparation()); return true; - case 16: v(select_id_sgNBinitiatedSgNBModification()); return true; - case 17: v(select_id_meNBinitiatedSgNBRelease()); return true; - case 19: v(select_id_sgNBChange()); return true; - case 20: v(select_id_endcX2Setup()); return true; - case 21: v(select_id_endcConfigurationUpdate()); return true; - case 22: v(select_id_endcCellActivation()); return true; - case 25: v(select_id_endcX2Removal()); return true; - case 46: if(type != 46) {clear(); asn::base::set();} type = 46; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - case 7: v(var.as()); return true; - case 8: v(var.as()); return true; - case 9: v(var.as()); return true; - case 10: v(var.as()); return true; - case 12: v(var.as()); return true; - case 13: v(var.as()); return true; - case 14: v(var.as()); return true; - case 15: v(var.as()); return true; - case 16: v(var.as()); return true; - case 17: v(var.as()); return true; - case 19: v(var.as()); return true; - case 20: v(var.as()); return true; - case 21: v(var.as()); return true; - case 22: v(var.as()); return true; - case 25: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CellActivationFailure)]; - char dummy2[sizeof(ENBConfigurationUpdateFailure)]; - char dummy3[sizeof(ENDCCellActivationFailure)]; - char dummy4[sizeof(ENDCConfigurationUpdateFailure)]; - char dummy5[sizeof(ENDCX2RemovalFailure)]; - char dummy6[sizeof(ENDCX2SetupFailure)]; - char dummy7[sizeof(HandoverPreparationFailure)]; - char dummy8[sizeof(MobilityChangeFailure)]; - char dummy9[sizeof(ResourceStatusFailure)]; - char dummy10[sizeof(RetrieveUEContextFailure)]; - char dummy11[sizeof(SeNBAdditionRequestReject)]; - char dummy12[sizeof(SeNBModificationRefuse)]; - char dummy13[sizeof(SeNBModificationRequestReject)]; - char dummy14[sizeof(SgNBAdditionRequestReject)]; - char dummy15[sizeof(SgNBChangeRefuse)]; - char dummy16[sizeof(SgNBModificationRefuse)]; - char dummy17[sizeof(SgNBModificationRequestReject)]; - char dummy18[sizeof(SgNBReleaseRequestReject)]; - char dummy19[sizeof(X2RemovalFailure)]; - char dummy20[sizeof(X2SetupFailure)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct procedureCode_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 46; } - void clear() {type = 0;} - void select_id_handoverPreparation() { set(id_handoverPreparation); type=1;} - void select_id_reset() { set(id_reset); type=2;} - void select_id_x2Setup() { set(id_x2Setup); type=3;} - void select_id_resourceStatusReportingInitiation() { set(id_resourceStatusReportingInitiation); type=4;} - void select_id_eNBConfigurationUpdate() { set(id_eNBConfigurationUpdate); type=5;} - void select_id_mobilitySettingsChange() { set(id_mobilitySettingsChange); type=6;} - void select_id_cellActivation() { set(id_cellActivation); type=7;} - void select_id_seNBAdditionPreparation() { set(id_seNBAdditionPreparation); type=8;} - void select_id_meNBinitiatedSeNBModificationPreparation() { set(id_meNBinitiatedSeNBModificationPreparation); type=9;} - void select_id_seNBinitiatedSeNBModification() { set(id_seNBinitiatedSeNBModification); type=10;} - void select_id_seNBinitiatedSeNBRelease() { set(id_seNBinitiatedSeNBRelease); type=11;} - void select_id_x2Removal() { set(id_x2Removal); type=12;} - void select_id_retrieveUEContext() { set(id_retrieveUEContext); type=13;} - void select_id_sgNBAdditionPreparation() { set(id_sgNBAdditionPreparation); type=14;} - void select_id_meNBinitiatedSgNBModificationPreparation() { set(id_meNBinitiatedSgNBModificationPreparation); type=15;} - void select_id_sgNBinitiatedSgNBModification() { set(id_sgNBinitiatedSgNBModification); type=16;} - void select_id_meNBinitiatedSgNBRelease() { set(id_meNBinitiatedSgNBRelease); type=17;} - void select_id_sgNBinitiatedSgNBRelease() { set(id_sgNBinitiatedSgNBRelease); type=18;} - void select_id_sgNBChange() { set(id_sgNBChange); type=19;} - void select_id_endcX2Setup() { set(id_endcX2Setup); type=20;} - void select_id_endcConfigurationUpdate() { set(id_endcConfigurationUpdate); type=21;} - void select_id_endcCellActivation() { set(id_endcCellActivation); type=22;} - void select_id_endcPartialReset() { set(id_endcPartialReset); type=23;} - void select_id_eUTRANRCellResourceCoordination() { set(id_eUTRANRCellResourceCoordination); type=24;} - void select_id_endcX2Removal() { set(id_endcX2Removal); type=25;} - void select_id_snStatusTransfer() { set(id_snStatusTransfer); type=26;} - void select_id_uEContextRelease() { set(id_uEContextRelease); type=27;} - void select_id_handoverCancel() { set(id_handoverCancel); type=28;} - void select_id_errorIndication() { set(id_errorIndication); type=29;} - void select_id_resourceStatusReporting() { set(id_resourceStatusReporting); type=30;} - void select_id_loadIndication() { set(id_loadIndication); type=31;} - void select_id_privateMessage() { set(id_privateMessage); type=32;} - void select_id_rLFIndication() { set(id_rLFIndication); type=33;} - void select_id_handoverReport() { set(id_handoverReport); type=34;} - void select_id_x2Release() { set(id_x2Release); type=35;} - void select_id_x2APMessageTransfer() { set(id_x2APMessageTransfer); type=36;} - void select_id_seNBReconfigurationCompletion() { set(id_seNBReconfigurationCompletion); type=37;} - void select_id_meNBinitiatedSeNBRelease() { set(id_meNBinitiatedSeNBRelease); type=38;} - void select_id_seNBCounterCheck() { set(id_seNBCounterCheck); type=39;} - void select_id_sgNBReconfigurationCompletion() { set(id_sgNBReconfigurationCompletion); type=40;} - void select_id_sgNBCounterCheck() { set(id_sgNBCounterCheck); type=41;} - void select_id_rRCTransfer() { set(id_rRCTransfer); type=42;} - void select_id_secondaryRATDataUsageReport() { set(id_secondaryRATDataUsageReport); type=43;} - void select_id_SgNBActivityNotification() { set(id_SgNBActivityNotification); type=44;} - void select_id_dataForwardingAddressIndication() { set(id_dataForwardingAddressIndication); type=45;} - X2AP_ELEMENTARY_PROCEDURE::procedureCode_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_handoverPreparation)) { type = 1; return true; } - else if(equal(id_reset)) { type = 2; return true; } - else if(equal(id_x2Setup)) { type = 3; return true; } - else if(equal(id_resourceStatusReportingInitiation)) { type = 4; return true; } - else if(equal(id_eNBConfigurationUpdate)) { type = 5; return true; } - else if(equal(id_mobilitySettingsChange)) { type = 6; return true; } - else if(equal(id_cellActivation)) { type = 7; return true; } - else if(equal(id_seNBAdditionPreparation)) { type = 8; return true; } - else if(equal(id_meNBinitiatedSeNBModificationPreparation)) { type = 9; return true; } - else if(equal(id_seNBinitiatedSeNBModification)) { type = 10; return true; } - else if(equal(id_seNBinitiatedSeNBRelease)) { type = 11; return true; } - else if(equal(id_x2Removal)) { type = 12; return true; } - else if(equal(id_retrieveUEContext)) { type = 13; return true; } - else if(equal(id_sgNBAdditionPreparation)) { type = 14; return true; } - else if(equal(id_meNBinitiatedSgNBModificationPreparation)) { type = 15; return true; } - else if(equal(id_sgNBinitiatedSgNBModification)) { type = 16; return true; } - else if(equal(id_meNBinitiatedSgNBRelease)) { type = 17; return true; } - else if(equal(id_sgNBinitiatedSgNBRelease)) { type = 18; return true; } - else if(equal(id_sgNBChange)) { type = 19; return true; } - else if(equal(id_endcX2Setup)) { type = 20; return true; } - else if(equal(id_endcConfigurationUpdate)) { type = 21; return true; } - else if(equal(id_endcCellActivation)) { type = 22; return true; } - else if(equal(id_endcPartialReset)) { type = 23; return true; } - else if(equal(id_eUTRANRCellResourceCoordination)) { type = 24; return true; } - else if(equal(id_endcX2Removal)) { type = 25; return true; } - else if(equal(id_snStatusTransfer)) { type = 26; return true; } - else if(equal(id_uEContextRelease)) { type = 27; return true; } - else if(equal(id_handoverCancel)) { type = 28; return true; } - else if(equal(id_errorIndication)) { type = 29; return true; } - else if(equal(id_resourceStatusReporting)) { type = 30; return true; } - else if(equal(id_loadIndication)) { type = 31; return true; } - else if(equal(id_privateMessage)) { type = 32; return true; } - else if(equal(id_rLFIndication)) { type = 33; return true; } - else if(equal(id_handoverReport)) { type = 34; return true; } - else if(equal(id_x2Release)) { type = 35; return true; } - else if(equal(id_x2APMessageTransfer)) { type = 36; return true; } - else if(equal(id_seNBReconfigurationCompletion)) { type = 37; return true; } - else if(equal(id_meNBinitiatedSeNBRelease)) { type = 38; return true; } - else if(equal(id_seNBCounterCheck)) { type = 39; return true; } - else if(equal(id_sgNBReconfigurationCompletion)) { type = 40; return true; } - else if(equal(id_sgNBCounterCheck)) { type = 41; return true; } - else if(equal(id_rRCTransfer)) { type = 42; return true; } - else if(equal(id_secondaryRATDataUsageReport)) { type = 43; return true; } - else if(equal(id_SgNBActivityNotification)) { type = 44; return true; } - else if(equal(id_dataForwardingAddressIndication)) { type = 45; return true; } - else { type = 46; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_handoverPreparation);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_reset);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_x2Setup);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_resourceStatusReportingInitiation);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_eNBConfigurationUpdate);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_mobilitySettingsChange);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(id_cellActivation);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(id_seNBAdditionPreparation);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(id_meNBinitiatedSeNBModificationPreparation);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(id_seNBinitiatedSeNBModification);} return false; - case 11: type = 11; if(v(ref_nested())) { return equal(id_seNBinitiatedSeNBRelease);} return false; - case 12: type = 12; if(v(ref_nested())) { return equal(id_x2Removal);} return false; - case 13: type = 13; if(v(ref_nested())) { return equal(id_retrieveUEContext);} return false; - case 14: type = 14; if(v(ref_nested())) { return equal(id_sgNBAdditionPreparation);} return false; - case 15: type = 15; if(v(ref_nested())) { return equal(id_meNBinitiatedSgNBModificationPreparation);} return false; - case 16: type = 16; if(v(ref_nested())) { return equal(id_sgNBinitiatedSgNBModification);} return false; - case 17: type = 17; if(v(ref_nested())) { return equal(id_meNBinitiatedSgNBRelease);} return false; - case 18: type = 18; if(v(ref_nested())) { return equal(id_sgNBinitiatedSgNBRelease);} return false; - case 19: type = 19; if(v(ref_nested())) { return equal(id_sgNBChange);} return false; - case 20: type = 20; if(v(ref_nested())) { return equal(id_endcX2Setup);} return false; - case 21: type = 21; if(v(ref_nested())) { return equal(id_endcConfigurationUpdate);} return false; - case 22: type = 22; if(v(ref_nested())) { return equal(id_endcCellActivation);} return false; - case 23: type = 23; if(v(ref_nested())) { return equal(id_endcPartialReset);} return false; - case 24: type = 24; if(v(ref_nested())) { return equal(id_eUTRANRCellResourceCoordination);} return false; - case 25: type = 25; if(v(ref_nested())) { return equal(id_endcX2Removal);} return false; - case 26: type = 26; if(v(ref_nested())) { return equal(id_snStatusTransfer);} return false; - case 27: type = 27; if(v(ref_nested())) { return equal(id_uEContextRelease);} return false; - case 28: type = 28; if(v(ref_nested())) { return equal(id_handoverCancel);} return false; - case 29: type = 29; if(v(ref_nested())) { return equal(id_errorIndication);} return false; - case 30: type = 30; if(v(ref_nested())) { return equal(id_resourceStatusReporting);} return false; - case 31: type = 31; if(v(ref_nested())) { return equal(id_loadIndication);} return false; - case 32: type = 32; if(v(ref_nested())) { return equal(id_privateMessage);} return false; - case 33: type = 33; if(v(ref_nested())) { return equal(id_rLFIndication);} return false; - case 34: type = 34; if(v(ref_nested())) { return equal(id_handoverReport);} return false; - case 35: type = 35; if(v(ref_nested())) { return equal(id_x2Release);} return false; - case 36: type = 36; if(v(ref_nested())) { return equal(id_x2APMessageTransfer);} return false; - case 37: type = 37; if(v(ref_nested())) { return equal(id_seNBReconfigurationCompletion);} return false; - case 38: type = 38; if(v(ref_nested())) { return equal(id_meNBinitiatedSeNBRelease);} return false; - case 39: type = 39; if(v(ref_nested())) { return equal(id_seNBCounterCheck);} return false; - case 40: type = 40; if(v(ref_nested())) { return equal(id_sgNBReconfigurationCompletion);} return false; - case 41: type = 41; if(v(ref_nested())) { return equal(id_sgNBCounterCheck);} return false; - case 42: type = 42; if(v(ref_nested())) { return equal(id_rRCTransfer);} return false; - case 43: type = 43; if(v(ref_nested())) { return equal(id_secondaryRATDataUsageReport);} return false; - case 44: type = 44; if(v(ref_nested())) { return equal(id_SgNBActivityNotification);} return false; - case 45: type = 45; if(v(ref_nested())) { return equal(id_dataForwardingAddressIndication);} return false; - case 46: type = 46; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 46; } - void clear() {type = 0;} - void select_id_handoverPreparation() { set(reject); type=1;} - void select_id_reset() { set(reject); type=2;} - void select_id_x2Setup() { set(reject); type=3;} - void select_id_resourceStatusReportingInitiation() { set(reject); type=4;} - void select_id_eNBConfigurationUpdate() { set(reject); type=5;} - void select_id_mobilitySettingsChange() { set(reject); type=6;} - void select_id_cellActivation() { set(reject); type=7;} - void select_id_seNBAdditionPreparation() { set(reject); type=8;} - void select_id_meNBinitiatedSeNBModificationPreparation() { set(reject); type=9;} - void select_id_seNBinitiatedSeNBModification() { set(reject); type=10;} - void select_id_seNBinitiatedSeNBRelease() { set(reject); type=11;} - void select_id_x2Removal() { set(reject); type=12;} - void select_id_retrieveUEContext() { set(reject); type=13;} - void select_id_sgNBAdditionPreparation() { set(reject); type=14;} - void select_id_meNBinitiatedSgNBModificationPreparation() { set(reject); type=15;} - void select_id_sgNBinitiatedSgNBModification() { set(reject); type=16;} - void select_id_meNBinitiatedSgNBRelease() { set(ignore); type=17;} - void select_id_sgNBinitiatedSgNBRelease() { set(reject); type=18;} - void select_id_sgNBChange() { set(reject); type=19;} - void select_id_endcX2Setup() { set(reject); type=20;} - void select_id_endcConfigurationUpdate() { set(reject); type=21;} - void select_id_endcCellActivation() { set(reject); type=22;} - void select_id_endcPartialReset() { set(reject); type=23;} - void select_id_eUTRANRCellResourceCoordination() { set(reject); type=24;} - void select_id_endcX2Removal() { set(reject); type=25;} - void select_id_snStatusTransfer() { set(ignore); type=26;} - void select_id_uEContextRelease() { set(ignore); type=27;} - void select_id_handoverCancel() { set(ignore); type=28;} - void select_id_errorIndication() { set(ignore); type=29;} - void select_id_resourceStatusReporting() { set(ignore); type=30;} - void select_id_loadIndication() { set(ignore); type=31;} - void select_id_privateMessage() { set(ignore); type=32;} - void select_id_rLFIndication() { set(ignore); type=33;} - void select_id_handoverReport() { set(ignore); type=34;} - void select_id_x2Release() { set(reject); type=35;} - void select_id_x2APMessageTransfer() { set(reject); type=36;} - void select_id_seNBReconfigurationCompletion() { set(ignore); type=37;} - void select_id_meNBinitiatedSeNBRelease() { set(ignore); type=38;} - void select_id_seNBCounterCheck() { set(reject); type=39;} - void select_id_sgNBReconfigurationCompletion() { set(ignore); type=40;} - void select_id_sgNBCounterCheck() { set(reject); type=41;} - void select_id_rRCTransfer() { set(reject); type=42;} - void select_id_secondaryRATDataUsageReport() { set(reject); type=43;} - void select_id_SgNBActivityNotification() { set(reject); type=44;} - void select_id_dataForwardingAddressIndication() { set(ignore); type=45;} - X2AP_ELEMENTARY_PROCEDURE::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(reject)) { type = 3; return true; } - else if(equal(reject)) { type = 4; return true; } - else if(equal(reject)) { type = 5; return true; } - else if(equal(reject)) { type = 6; return true; } - else if(equal(reject)) { type = 7; return true; } - else if(equal(reject)) { type = 8; return true; } - else if(equal(reject)) { type = 9; return true; } - else if(equal(reject)) { type = 10; return true; } - else if(equal(reject)) { type = 11; return true; } - else if(equal(reject)) { type = 12; return true; } - else if(equal(reject)) { type = 13; return true; } - else if(equal(reject)) { type = 14; return true; } - else if(equal(reject)) { type = 15; return true; } - else if(equal(reject)) { type = 16; return true; } - else if(equal(ignore)) { type = 17; return true; } - else if(equal(reject)) { type = 18; return true; } - else if(equal(reject)) { type = 19; return true; } - else if(equal(reject)) { type = 20; return true; } - else if(equal(reject)) { type = 21; return true; } - else if(equal(reject)) { type = 22; return true; } - else if(equal(reject)) { type = 23; return true; } - else if(equal(reject)) { type = 24; return true; } - else if(equal(reject)) { type = 25; return true; } - else if(equal(ignore)) { type = 26; return true; } - else if(equal(ignore)) { type = 27; return true; } - else if(equal(ignore)) { type = 28; return true; } - else if(equal(ignore)) { type = 29; return true; } - else if(equal(ignore)) { type = 30; return true; } - else if(equal(ignore)) { type = 31; return true; } - else if(equal(ignore)) { type = 32; return true; } - else if(equal(ignore)) { type = 33; return true; } - else if(equal(ignore)) { type = 34; return true; } - else if(equal(reject)) { type = 35; return true; } - else if(equal(reject)) { type = 36; return true; } - else if(equal(ignore)) { type = 37; return true; } - else if(equal(ignore)) { type = 38; return true; } - else if(equal(reject)) { type = 39; return true; } - else if(equal(ignore)) { type = 40; return true; } - else if(equal(reject)) { type = 41; return true; } - else if(equal(reject)) { type = 42; return true; } - else if(equal(reject)) { type = 43; return true; } - else if(equal(reject)) { type = 44; return true; } - else if(equal(ignore)) { type = 45; return true; } - else { type = 46; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(reject);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(reject);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(reject);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(reject);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(reject);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(reject);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(reject);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(reject);} return false; - case 11: type = 11; if(v(ref_nested())) { return equal(reject);} return false; - case 12: type = 12; if(v(ref_nested())) { return equal(reject);} return false; - case 13: type = 13; if(v(ref_nested())) { return equal(reject);} return false; - case 14: type = 14; if(v(ref_nested())) { return equal(reject);} return false; - case 15: type = 15; if(v(ref_nested())) { return equal(reject);} return false; - case 16: type = 16; if(v(ref_nested())) { return equal(reject);} return false; - case 17: type = 17; if(v(ref_nested())) { return equal(ignore);} return false; - case 18: type = 18; if(v(ref_nested())) { return equal(reject);} return false; - case 19: type = 19; if(v(ref_nested())) { return equal(reject);} return false; - case 20: type = 20; if(v(ref_nested())) { return equal(reject);} return false; - case 21: type = 21; if(v(ref_nested())) { return equal(reject);} return false; - case 22: type = 22; if(v(ref_nested())) { return equal(reject);} return false; - case 23: type = 23; if(v(ref_nested())) { return equal(reject);} return false; - case 24: type = 24; if(v(ref_nested())) { return equal(reject);} return false; - case 25: type = 25; if(v(ref_nested())) { return equal(reject);} return false; - case 26: type = 26; if(v(ref_nested())) { return equal(ignore);} return false; - case 27: type = 27; if(v(ref_nested())) { return equal(ignore);} return false; - case 28: type = 28; if(v(ref_nested())) { return equal(ignore);} return false; - case 29: type = 29; if(v(ref_nested())) { return equal(ignore);} return false; - case 30: type = 30; if(v(ref_nested())) { return equal(ignore);} return false; - case 31: type = 31; if(v(ref_nested())) { return equal(ignore);} return false; - case 32: type = 32; if(v(ref_nested())) { return equal(ignore);} return false; - case 33: type = 33; if(v(ref_nested())) { return equal(ignore);} return false; - case 34: type = 34; if(v(ref_nested())) { return equal(ignore);} return false; - case 35: type = 35; if(v(ref_nested())) { return equal(reject);} return false; - case 36: type = 36; if(v(ref_nested())) { return equal(reject);} return false; - case 37: type = 37; if(v(ref_nested())) { return equal(ignore);} return false; - case 38: type = 38; if(v(ref_nested())) { return equal(ignore);} return false; - case 39: type = 39; if(v(ref_nested())) { return equal(reject);} return false; - case 40: type = 40; if(v(ref_nested())) { return equal(ignore);} return false; - case 41: type = 41; if(v(ref_nested())) { return equal(reject);} return false; - case 42: type = 42; if(v(ref_nested())) { return equal(reject);} return false; - case 43: type = 43; if(v(ref_nested())) { return equal(reject);} return false; - case 44: type = 44; if(v(ref_nested())) { return equal(reject);} return false; - case 45: type = 45; if(v(ref_nested())) { return equal(ignore);} return false; - case 46: type = 46; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -InitiatingMessage ::= SEQUENCE { - procedureCode X2AP-ELEMENTARY-PROCEDURE.&procedureCode ({X2AP-ELEMENTARY-PROCEDURES}), - criticality X2AP-ELEMENTARY-PROCEDURE.&criticality ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode}), - value X2AP-ELEMENTARY-PROCEDURE.&InitiatingMessage ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode}) -} -*/ - -struct InitiatingMessage : asn::sequence<3, 0, false, 0> -{ - static constexpr const char* name() {return "InitiatingMessage";} - using parent_t = asn::sequence<3, 0, false, 0>; - struct procedureCode_t : X2AP_ELEMENTARY_PROCEDURES::procedureCode_t - { - static constexpr const char* name() {return "procedureCode_t";} - using parent_t = typename X2AP_ELEMENTARY_PROCEDURES::procedureCode_t; - template bool decode(V& v, InitiatingMessage const& c) - { - return X2AP_ELEMENTARY_PROCEDURES::procedureCode_t::decode(v); - }; - template bool encode(V& v, InitiatingMessage const& c) const - { - return X2AP_ELEMENTARY_PROCEDURES::procedureCode_t::encode(v); - }; - }; - procedureCode_t& ref_procedureCode() {return procedureCode;} - procedureCode_t const& ref_procedureCode() const {return procedureCode;} - struct criticality_t : X2AP_ELEMENTARY_PROCEDURES::criticality_t - { - static constexpr const char* name() {return "criticality_t";} - using parent_t = typename X2AP_ELEMENTARY_PROCEDURES::criticality_t; - template bool decode(V& v, InitiatingMessage const& c) - { - return X2AP_ELEMENTARY_PROCEDURES::criticality_t::decode(c.procedureCode.get_index(), v); - }; - template bool encode(V& v, InitiatingMessage const& c) const - { - return X2AP_ELEMENTARY_PROCEDURES::criticality_t::encode(c.procedureCode.get_index(), v); - }; - }; - criticality_t& ref_criticality() {return criticality;} - criticality_t const& ref_criticality() const {return criticality;} - struct value_t : X2AP_ELEMENTARY_PROCEDURES::InitiatingMessage_t - { - static constexpr const char* name() {return "value_t";} - using parent_t = typename X2AP_ELEMENTARY_PROCEDURES::InitiatingMessage_t; - template bool decode(V& v, InitiatingMessage const& c) - { - return X2AP_ELEMENTARY_PROCEDURES::InitiatingMessage_t::decode(c.procedureCode.get_index(), v); - }; - template bool encode(V& v, InitiatingMessage const& c) const - { - return X2AP_ELEMENTARY_PROCEDURES::InitiatingMessage_t::encode(c.procedureCode.get_index(), v); - }; - }; - value_t& ref_value() {return value;} - value_t const& ref_value() const {return value;} - template void decode(V& v) - { - v(procedureCode); - v(criticality); - v(value); - - }; - template void encode(V& v) const - { - v(procedureCode); - v(criticality); - v(value); - - }; - void clear() - { - procedureCode.clear(); - criticality.clear(); - value.clear(); - - }; - private: - procedureCode_t procedureCode; - criticality_t criticality; - value_t value; - -}; -/* -SuccessfulOutcome ::= SEQUENCE { - procedureCode X2AP-ELEMENTARY-PROCEDURE.&procedureCode ({X2AP-ELEMENTARY-PROCEDURES}), - criticality X2AP-ELEMENTARY-PROCEDURE.&criticality ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode}), - value X2AP-ELEMENTARY-PROCEDURE.&SuccessfulOutcome ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode}) -} -*/ - -struct SuccessfulOutcome : asn::sequence<3, 0, false, 0> -{ - static constexpr const char* name() {return "SuccessfulOutcome";} - using parent_t = asn::sequence<3, 0, false, 0>; - struct procedureCode_t : X2AP_ELEMENTARY_PROCEDURES::procedureCode_t - { - static constexpr const char* name() {return "procedureCode_t";} - using parent_t = typename X2AP_ELEMENTARY_PROCEDURES::procedureCode_t; - template bool decode(V& v, SuccessfulOutcome const& c) - { - return X2AP_ELEMENTARY_PROCEDURES::procedureCode_t::decode(v); - }; - template bool encode(V& v, SuccessfulOutcome const& c) const - { - return X2AP_ELEMENTARY_PROCEDURES::procedureCode_t::encode(v); - }; - }; - procedureCode_t& ref_procedureCode() {return procedureCode;} - procedureCode_t const& ref_procedureCode() const {return procedureCode;} - struct criticality_t : X2AP_ELEMENTARY_PROCEDURES::criticality_t - { - static constexpr const char* name() {return "criticality_t";} - using parent_t = typename X2AP_ELEMENTARY_PROCEDURES::criticality_t; - template bool decode(V& v, SuccessfulOutcome const& c) - { - return X2AP_ELEMENTARY_PROCEDURES::criticality_t::decode(c.procedureCode.get_index(), v); - }; - template bool encode(V& v, SuccessfulOutcome const& c) const - { - return X2AP_ELEMENTARY_PROCEDURES::criticality_t::encode(c.procedureCode.get_index(), v); - }; - }; - criticality_t& ref_criticality() {return criticality;} - criticality_t const& ref_criticality() const {return criticality;} - struct value_t : X2AP_ELEMENTARY_PROCEDURES::SuccessfulOutcome_t - { - static constexpr const char* name() {return "value_t";} - using parent_t = typename X2AP_ELEMENTARY_PROCEDURES::SuccessfulOutcome_t; - template bool decode(V& v, SuccessfulOutcome const& c) - { - return X2AP_ELEMENTARY_PROCEDURES::SuccessfulOutcome_t::decode(c.procedureCode.get_index(), v); - }; - template bool encode(V& v, SuccessfulOutcome const& c) const - { - return X2AP_ELEMENTARY_PROCEDURES::SuccessfulOutcome_t::encode(c.procedureCode.get_index(), v); - }; - }; - value_t& ref_value() {return value;} - value_t const& ref_value() const {return value;} - template void decode(V& v) - { - v(procedureCode); - v(criticality); - v(value); - - }; - template void encode(V& v) const - { - v(procedureCode); - v(criticality); - v(value); - - }; - void clear() - { - procedureCode.clear(); - criticality.clear(); - value.clear(); - - }; - private: - procedureCode_t procedureCode; - criticality_t criticality; - value_t value; - -}; -/* -UnsuccessfulOutcome ::= SEQUENCE { - procedureCode X2AP-ELEMENTARY-PROCEDURE.&procedureCode ({X2AP-ELEMENTARY-PROCEDURES}), - criticality X2AP-ELEMENTARY-PROCEDURE.&criticality ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode}), - value X2AP-ELEMENTARY-PROCEDURE.&UnsuccessfulOutcome ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode}) -} -*/ - -struct UnsuccessfulOutcome : asn::sequence<3, 0, false, 0> -{ - static constexpr const char* name() {return "UnsuccessfulOutcome";} - using parent_t = asn::sequence<3, 0, false, 0>; - struct procedureCode_t : X2AP_ELEMENTARY_PROCEDURES::procedureCode_t - { - static constexpr const char* name() {return "procedureCode_t";} - using parent_t = typename X2AP_ELEMENTARY_PROCEDURES::procedureCode_t; - template bool decode(V& v, UnsuccessfulOutcome const& c) - { - return X2AP_ELEMENTARY_PROCEDURES::procedureCode_t::decode(v); - }; - template bool encode(V& v, UnsuccessfulOutcome const& c) const - { - return X2AP_ELEMENTARY_PROCEDURES::procedureCode_t::encode(v); - }; - }; - procedureCode_t& ref_procedureCode() {return procedureCode;} - procedureCode_t const& ref_procedureCode() const {return procedureCode;} - struct criticality_t : X2AP_ELEMENTARY_PROCEDURES::criticality_t - { - static constexpr const char* name() {return "criticality_t";} - using parent_t = typename X2AP_ELEMENTARY_PROCEDURES::criticality_t; - template bool decode(V& v, UnsuccessfulOutcome const& c) - { - return X2AP_ELEMENTARY_PROCEDURES::criticality_t::decode(c.procedureCode.get_index(), v); - }; - template bool encode(V& v, UnsuccessfulOutcome const& c) const - { - return X2AP_ELEMENTARY_PROCEDURES::criticality_t::encode(c.procedureCode.get_index(), v); - }; - }; - criticality_t& ref_criticality() {return criticality;} - criticality_t const& ref_criticality() const {return criticality;} - struct value_t : X2AP_ELEMENTARY_PROCEDURES::UnsuccessfulOutcome_t - { - static constexpr const char* name() {return "value_t";} - using parent_t = typename X2AP_ELEMENTARY_PROCEDURES::UnsuccessfulOutcome_t; - template bool decode(V& v, UnsuccessfulOutcome const& c) - { - return X2AP_ELEMENTARY_PROCEDURES::UnsuccessfulOutcome_t::decode(c.procedureCode.get_index(), v); - }; - template bool encode(V& v, UnsuccessfulOutcome const& c) const - { - return X2AP_ELEMENTARY_PROCEDURES::UnsuccessfulOutcome_t::encode(c.procedureCode.get_index(), v); - }; - }; - value_t& ref_value() {return value;} - value_t const& ref_value() const {return value;} - template void decode(V& v) - { - v(procedureCode); - v(criticality); - v(value); - - }; - template void encode(V& v) const - { - v(procedureCode); - v(criticality); - v(value); - - }; - void clear() - { - procedureCode.clear(); - criticality.clear(); - value.clear(); - - }; - private: - procedureCode_t procedureCode; - criticality_t criticality; - value_t value; - -}; -/* -X2AP-PDU ::= CHOICE { - initiatingMessage InitiatingMessage, - successfulOutcome SuccessfulOutcome, - unsuccessfulOutcome UnsuccessfulOutcome, - ... -} -*/ - -struct X2AP_PDU : asn::choice<3, 0, true> -{ - static constexpr const char* name() {return "X2AP-PDU";} - using parent_t = asn::choice<3, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 4;} - void set_unknown() { set_index(4); } - ~X2AP_PDU() {clear();} - struct initiatingMessage_t : InitiatingMessage - { - static constexpr const char* name() {return "initiatingMessage_t";} - using parent_t = InitiatingMessage; - - }; - struct successfulOutcome_t : SuccessfulOutcome - { - static constexpr const char* name() {return "successfulOutcome_t";} - using parent_t = SuccessfulOutcome; - - }; - struct unsuccessfulOutcome_t : UnsuccessfulOutcome - { - static constexpr const char* name() {return "unsuccessfulOutcome_t";} - using parent_t = UnsuccessfulOutcome; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - case 3: set_index(3); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - case 3: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - - } - initiatingMessage_t& select_initiatingMessage() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - initiatingMessage_t const* get_initiatingMessage() const { if(get_index() == 1) { return &var.as();} return nullptr; } - successfulOutcome_t& select_successfulOutcome() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - successfulOutcome_t const* get_successfulOutcome() const { if(get_index() == 2) { return &var.as();} return nullptr; } - unsuccessfulOutcome_t& select_unsuccessfulOutcome() { if(get_index() != 3) { clear(); set_index(3); return var.build();} return var.as();} - unsuccessfulOutcome_t const* get_unsuccessfulOutcome() const { if(get_index() == 3) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(initiatingMessage_t)]; - char dummy2[sizeof(successfulOutcome_t)]; - char dummy3[sizeof(unsuccessfulOutcome_t)]; - - }; - asn::variant var; - index_type index {0}; -}; diff --git a/e2sim/previous/e2apv1sim/ricsim/src/ASN1/lib/asn_e2ap.cpp b/e2sim/previous/e2apv1sim/ricsim/src/ASN1/lib/asn_e2ap.cpp deleted file mode 100644 index fa2fd88..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/ASN1/lib/asn_e2ap.cpp +++ /dev/null @@ -1,982 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ -#include "asn_e2ap.hpp" -#include "asn_e2ap_wrapper.hpp" - -/*----------------------------------------------------------------------- - COMMON ROUTINES -------------------------------------------------------------------------- -*/ -e2ap_pdu_t* new_e2ap_pdu(void) -{ - E2APpduWrapper* pduWrapper = new E2APpduWrapper(); - return reinterpret_cast(pduWrapper); -} - -void e2ap_asn_print(e2ap_pdu_t* pdu, char* buf, size_t buf_size) -{ - E2APpduWrapper* pduWrapper = reinterpret_cast(pdu); - - buf[0] = 0; - - strncat(buf, asn::get_printed(pduWrapper->ref_pdu()).c_str(), buf_size - 1); -} - -int e2ap_asn_per_encode(e2ap_pdu_t* pdu, unsigned char* buf, size_t buf_size, - char* err_buf, size_t err_buf_size) -{ - E2APpduWrapper* pduWrapper = reinterpret_cast(pdu); - - asn::per::EncoderCtx ctx{ buf, buf_size }; - - if (!asn::per::pack(pduWrapper->ref_pdu(), ctx)) { - err_buf[0] = 0; - //strncat(err_buf, ctx.refErrorCtx().toString().c_str(), err_buf_size - 1); - return -1; - } else { - return static_cast(ctx.refBuffer().getBytesUsed()); - } - -} - -int e2ap_asn_per_decode(e2ap_pdu_t* pdu, unsigned char const* buf, size_t buf_size, - char* err_buf, size_t err_buf_size) -{ - E2APpduWrapper* pduWrapper = reinterpret_cast(pdu); - - asn::per::DecoderCtx ctx{ buf, - buf_size, - pduWrapper->m_allocation_buffer, - pduWrapper->m_allocation_buffer_size }; - - if (!asn::per::unpack(pduWrapper->ref_pdu(), ctx)) { - err_buf[0] = 0; - //strncat(err_buf, ctx.refErrorCtx().toString().c_str(), err_buf_size - 1); - return -1; - } - - return 0; - -} - -int e2ap_get_index(e2ap_pdu_t* pdu) -{ - E2APpduWrapper* pduWrapper = reinterpret_cast(pdu); - - return pduWrapper->ref_pdu().get_index(); -} - -int e2ap_get_procedureCode(e2ap_pdu_t* pdu) -{ - E2APpduWrapper* pduWrapper = reinterpret_cast(pdu); - - switch(pduWrapper->ref_pdu().get_index()) - { - case 1: - return pduWrapper->ref_pdu().get_initiatingMessage()->ref_procedureCode().get(); - break; - - case 2: - return pduWrapper->ref_pdu().get_successfulOutcome()->ref_procedureCode().get(); - break; - - case 3: - return pduWrapper->ref_pdu().get_unsuccessfulOutcome()->ref_procedureCode().get(); - break; - - default: - return -1; - } - -} - -/*----------------------------------------------------------------------- - MESSAGE GENERATORS -------------------------------------------------------------------------- -*/ -//X2Setup -bool e2ap_init_X2SetupRequest(e2ap_pdu_t* pdu) -{ - E2APpduWrapper* pduWrapper = reinterpret_cast(pdu); - - //Initialization - pduWrapper->ref_pdu().select_initiatingMessage(); - pduWrapper->ref_pdu().select_initiatingMessage().clear(); - pduWrapper->ref_pdu().select_initiatingMessage().ref_procedureCode().select_id_x2Setup(); - pduWrapper->ref_pdu().select_initiatingMessage().ref_criticality().select_id_x2Setup(); - pduWrapper->ref_pdu().select_initiatingMessage().ref_value().select_id_x2Setup(); - - return true; -} - -bool e2ap_create_X2SetupRequest(e2ap_pdu_t* pdu, eNB_config &cfg) -{ - E2APpduWrapper* pduWrapper = reinterpret_cast(pdu); - - /* Initiaization */ - pduWrapper->ref_pdu().select_initiatingMessage().ref_procedureCode().select_id_x2Setup(); - pduWrapper->ref_pdu().select_initiatingMessage().ref_criticality().select_id_x2Setup(); - - X2SetupRequest* container = - &(pduWrapper->ref_pdu().select_initiatingMessage().ref_value().select_id_x2Setup()); - - using IE_value_t = X2SetupRequest::protocolIEs_t::value_type; - - /* X2SetupRequest-IEs : GlobalENB-ID*/ - IE_value_t* val_GlobalENB_ID = new IE_value_t; - container->ref_protocolIEs().push_back(*val_GlobalENB_ID); - - val_GlobalENB_ID->ref_id().select_id_GlobalENB_ID(); - val_GlobalENB_ID->ref_criticality().select_id_GlobalENB_ID(); - val_GlobalENB_ID->ref_value().select_id_GlobalENB_ID().ref_pLMN_Identity() - .set(3, cfg.pLMN_Identity); - val_GlobalENB_ID->ref_value().select_id_GlobalENB_ID().ref_eNB_ID() - .select_macro_eNB_ID().set_buffer(20, cfg.macro_eNB_ID); - - /* X2SetupRequest-IEs : ServedCells*/ - IE_value_t* val_ServedCells = new IE_value_t; - container->ref_protocolIEs().push_back(*val_ServedCells); - - val_ServedCells->ref_id().select_id_ServedCells(); - val_ServedCells->ref_criticality().select_id_ServedCells(); - val_ServedCells->ref_value().select_id_ServedCells(); - - //Add servedCellInfo - ServedCells::value_type* elm = new ServedCells::value_type(); - ServedCell_Information* info = &(elm->ref_servedCellInfo()); - { - //Set ServedCell-Information: pCI, cellId, tAC, broadcastPLMNs, eUTRA-Mode-Info - info->ref_pCI().set(cfg.pCI); - info->ref_cellId().ref_pLMN_Identity().set(3, cfg.pLMN_Identity); - info->ref_cellId().ref_eUTRANcellIdentifier().set_buffer(28, cfg.eUTRANcellIdentifier); - info->ref_tAC().set(2, cfg.tAC); - - BroadcastPLMNs_Item::value_type* item = new BroadcastPLMNs_Item::value_type(); - item->set(3, cfg.pLMN_Identity); - info->ref_broadcastPLMNs().push_back(*item); - - info->ref_eUTRA_Mode_Info().select_fDD().ref_uL_EARFCN().set(cfg.uL_EARFCN); - info->ref_eUTRA_Mode_Info().select_fDD().ref_dL_EARFCN().set(cfg.dL_EARFCN); - info->ref_eUTRA_Mode_Info().select_fDD().ref_uL_Transmission_Bandwidth() - .set(static_cast(cfg.uL_Bandwidth)); - info->ref_eUTRA_Mode_Info().select_fDD().ref_dL_Transmission_Bandwidth() - .set(static_cast(cfg.dL_Bandwidth)); - } - val_ServedCells->ref_value().select_id_ServedCells().push_back(*elm); - - return true; -} - -bool e2ap_create_X2SetupResponse(e2ap_pdu_t* pdu, eNB_config &cfg) -{ - E2APpduWrapper* pduWrapper = reinterpret_cast(pdu); - - /* Initiaization */ - pduWrapper->ref_pdu().select_successfulOutcome().ref_procedureCode().select_id_x2Setup(); - pduWrapper->ref_pdu().select_successfulOutcome().ref_criticality().select_id_x2Setup(); - - X2SetupResponse* container = - &(pduWrapper->ref_pdu().select_successfulOutcome().ref_value().select_id_x2Setup()); - - using IE_value_t = X2SetupResponse::protocolIEs_t::value_type; - - /* X2SetupResponse-IEs : GlobalENB-ID*/ - IE_value_t* val_GlobalENB_ID = new IE_value_t; - container->ref_protocolIEs().push_back(*val_GlobalENB_ID); - - val_GlobalENB_ID->ref_id().select_id_GlobalENB_ID(); - val_GlobalENB_ID->ref_criticality().select_id_GlobalENB_ID(); - val_GlobalENB_ID->ref_value().select_id_GlobalENB_ID().ref_pLMN_Identity() - .set(3, cfg.pLMN_Identity); - - val_GlobalENB_ID->ref_value().select_id_GlobalENB_ID().ref_eNB_ID() - .select_macro_eNB_ID().set_buffer(20, cfg.macro_eNB_ID); - - /* X2SetupResponse-IEs : ServedCells*/ - IE_value_t* val_ServedCells = new IE_value_t; - container->ref_protocolIEs().push_back(*val_ServedCells); - - val_ServedCells->ref_id().select_id_ServedCells(); - val_ServedCells->ref_criticality().select_id_ServedCells(); - val_ServedCells->ref_value().select_id_ServedCells(); - - //Add servedCellInfo - ServedCells::value_type* elm = new ServedCells::value_type(); - ServedCell_Information* info = &(elm->ref_servedCellInfo()); - { - //Set ServedCell-Information: pCI, cellId, tAC, broadcastPLMNs, eUTRA-Mode-Info - info->ref_pCI().set(cfg.pCI); - info->ref_cellId().ref_pLMN_Identity().set(3, cfg.pLMN_Identity); - info->ref_cellId().ref_eUTRANcellIdentifier().set_buffer(28, cfg.eUTRANcellIdentifier); - info->ref_tAC().set(2, cfg.tAC); - - BroadcastPLMNs_Item::value_type* item = new BroadcastPLMNs_Item::value_type(); - item->set(3, cfg.pLMN_Identity); - info->ref_broadcastPLMNs().push_back(*item); - - info->ref_eUTRA_Mode_Info().select_fDD().ref_uL_EARFCN().set(cfg.uL_EARFCN); - info->ref_eUTRA_Mode_Info().select_fDD().ref_dL_EARFCN().set(cfg.dL_EARFCN); - info->ref_eUTRA_Mode_Info().select_fDD().ref_uL_Transmission_Bandwidth() - .set(static_cast(cfg.uL_Bandwidth)); - info->ref_eUTRA_Mode_Info().select_fDD().ref_dL_Transmission_Bandwidth() - .set(static_cast(cfg.dL_Bandwidth)); - } - val_ServedCells->ref_value().select_id_ServedCells().push_back(*elm); - - return true; -} - -bool e2ap_create_X2SetupFailure(e2ap_pdu_t* pdu) -{ - E2APpduWrapper* pduWrapper = reinterpret_cast(pdu); - - /* Initiaization */ - pduWrapper->ref_pdu().select_unsuccessfulOutcome().ref_procedureCode().select_id_x2Setup(); - pduWrapper->ref_pdu().select_unsuccessfulOutcome().ref_criticality().select_id_x2Setup(); - - X2SetupFailure* container = - &(pduWrapper->ref_pdu().select_unsuccessfulOutcome().ref_value().select_id_x2Setup()); - - using IE_value_t = X2SetupFailure::protocolIEs_t::value_type; - - /* X2SetupFailure-IEs << id-Cause */ - IE_value_t* val_cause = new IE_value_t; - container->ref_protocolIEs().push_back(*val_cause); - - val_cause->ref_id().select_id_Cause(); - val_cause->ref_criticality().select_id_Cause(); - - /* Cause << radioNetwork */ - val_cause->ref_value().select_id_Cause().select_radioNetwork(); - - /* CauseRadioNetwork = ho-target-not-allowed (enum = 8)*/ - val_cause->ref_value().select_id_Cause().select_radioNetwork() - .set(static_cast(8)); - - return true; -} - -//ENDCX2Setup -bool e2ap_create_ENDCX2SetupRequest(e2ap_pdu_t* pdu, eNB_config &cfg) -{ - E2APpduWrapper* pduWrapper = reinterpret_cast(pdu); - - /* Initiaization */ - pduWrapper->ref_pdu().select_initiatingMessage().ref_procedureCode().select_id_endcX2Setup(); - pduWrapper->ref_pdu().select_initiatingMessage().ref_criticality().select_id_endcX2Setup(); - - ENDCX2SetupRequest* container = - &(pduWrapper->ref_pdu().select_initiatingMessage().ref_value().select_id_endcX2Setup()); - - using IE_value_t = ENDCX2SetupRequest::protocolIEs_t::value_type; - - /* ENDCX2SetupRequest-IEs = id-InitiatingNodeType-EndcX2Setup */ - IE_value_t* ie = new IE_value_t; - container->ref_protocolIEs().push_back(*ie); - ie->ref_id().select_id_InitiatingNodeType_EndcX2Setup(); - ie->ref_criticality().select_id_InitiatingNodeType_EndcX2Setup(); - ie->ref_value().select_id_InitiatingNodeType_EndcX2Setup(); - - /* InitiatingNodeType-EndcX2Setup = init-eNB {ENB-ENDCX2SetupReqIEs} */ - ie->ref_value().select_id_InitiatingNodeType_EndcX2Setup().select_init_eNB(); - - using eNB_val_t = InitiatingNodeType_EndcX2Setup::init_eNB_t::value_type; - - ProtocolIE_Container* eNB_node = - &(ie->ref_value().select_id_InitiatingNodeType_EndcX2Setup().select_init_eNB()); - - /* ENB-ENDCX2SetupReqIEs <-- id-GlobalENB-ID */ - eNB_val_t* val_GlobalENB_ID = new eNB_val_t; - eNB_node->push_back(*val_GlobalENB_ID); - - val_GlobalENB_ID->ref_id().select_id_GlobalENB_ID(); - val_GlobalENB_ID->ref_criticality().select_id_GlobalENB_ID(); - val_GlobalENB_ID->ref_value().select_id_GlobalENB_ID() - .ref_pLMN_Identity().set(3, cfg.pLMN_Identity); - val_GlobalENB_ID->ref_value().select_id_GlobalENB_ID().ref_eNB_ID() - .select_macro_eNB_ID().set_buffer(20, cfg.macro_eNB_ID); - - /* ENB-ENDCX2SetupReqIEs <-- id-ServedEUTRAcellsENDCX2ManagementList */ - eNB_val_t* val_EUTRAlist = new eNB_val_t; - eNB_node->push_back(*val_EUTRAlist); - - val_EUTRAlist->ref_id().select_id_ServedEUTRAcellsENDCX2ManagementList(); - val_EUTRAlist->ref_criticality().select_id_ServedEUTRAcellsENDCX2ManagementList(); - val_EUTRAlist->ref_value().select_id_ServedEUTRAcellsENDCX2ManagementList(); - - /* ServedEUTRAcellsENDCX2ManagementList <-- servedEUTRACellInfo */ - ServedEUTRAcellsENDCX2ManagementList::value_type* elm = - new ServedEUTRAcellsENDCX2ManagementList::value_type(); - ServedCell_Information* info = &(elm->ref_servedEUTRACellInfo()); - { - //Set ServedCell-Information: pCI, cellId, tAC, broadcastPLMNs, eUTRA-Mode-Info - info->ref_pCI().set(cfg.pCI); - info->ref_cellId().ref_pLMN_Identity().set(3, cfg.pLMN_Identity); - info->ref_cellId().ref_eUTRANcellIdentifier().set_buffer(28, cfg.eUTRANcellIdentifier); - info->ref_tAC().set(2, cfg.tAC); - - BroadcastPLMNs_Item::value_type* item = new BroadcastPLMNs_Item::value_type(); - item->set(3, cfg.pLMN_Identity); - info->ref_broadcastPLMNs().push_back(*item); - - info->ref_eUTRA_Mode_Info().select_fDD().ref_uL_EARFCN().set(cfg.uL_EARFCN); - info->ref_eUTRA_Mode_Info().select_fDD().ref_dL_EARFCN().set(cfg.dL_EARFCN); - info->ref_eUTRA_Mode_Info().select_fDD().ref_uL_Transmission_Bandwidth() - .set(static_cast(cfg.uL_Bandwidth)); - info->ref_eUTRA_Mode_Info().select_fDD().ref_dL_Transmission_Bandwidth() - .set(static_cast(cfg.dL_Bandwidth)); - } - val_EUTRAlist->ref_value().select_id_ServedEUTRAcellsENDCX2ManagementList() - .push_back(*elm); - - return true; -} - -bool e2ap_create_ENDCX2SetupResponse(e2ap_pdu_t* pdu, gNB_config &gnb_cfg) -{ - E2APpduWrapper* pduWrapper = reinterpret_cast(pdu); - - /* Initiaization */ - pduWrapper->ref_pdu().select_successfulOutcome().ref_procedureCode().select_id_endcX2Setup(); - pduWrapper->ref_pdu().select_successfulOutcome().ref_criticality().select_id_endcX2Setup(); - - ENDCX2SetupResponse* container = - &(pduWrapper->ref_pdu().select_successfulOutcome().ref_value().select_id_endcX2Setup()); - - using IE_value_t = ENDCX2SetupResponse::protocolIEs_t::value_type; - - /* ENDCX2SetupRequest-IEs = id-RespondingNodeType-EndcX2Setup */ - IE_value_t* ie = new IE_value_t; - container->ref_protocolIEs().push_back(*ie); - ie->ref_id().select_id_RespondingNodeType_EndcX2Setup(); - ie->ref_criticality().select_id_RespondingNodeType_EndcX2Setup(); - ie->ref_value().select_id_RespondingNodeType_EndcX2Setup(); - - /* RespondingNodeType-EndcX2Setup = respond-en-gNB {En-gNB-ENDCX2SetupReqAckIEs} */ - ie->ref_value().select_id_RespondingNodeType_EndcX2Setup().select_respond_en_gNB(); - - using gNB_val_t = RespondingNodeType_EndcX2Setup::respond_en_gNB_t::value_type; - - ProtocolIE_Container* gNB_node = - &(ie->ref_value().select_id_RespondingNodeType_EndcX2Setup().select_respond_en_gNB()); - - /* En-gNB-ENDCX2SetupReqAckIEs << id-Globalen-gNB-ID */ - gNB_val_t* val_Globalen_gNB_ID = new gNB_val_t; - gNB_node->push_back(*val_Globalen_gNB_ID); - - val_Globalen_gNB_ID->ref_id().select_id_Globalen_gNB_ID(); - val_Globalen_gNB_ID->ref_criticality().select_id_Globalen_gNB_ID(); - val_Globalen_gNB_ID->ref_value().select_id_Globalen_gNB_ID() - .ref_pLMN_Identity().set(3, gnb_cfg.pLMN_Identity); - val_Globalen_gNB_ID->ref_value().select_id_Globalen_gNB_ID().ref_gNB_ID() - .select_gNB_ID().set_buffer(22, gnb_cfg.gNB_ID); - - /* En-gNB-ENDCX2SetupReqAckIEs << id-ServedNRcellsENDCX2ManagementList */ - gNB_val_t* val_ServedNRCells = new gNB_val_t; - gNB_node->push_back(*val_ServedNRCells); - - val_ServedNRCells->ref_id().select_id_ServedNRcellsENDCX2ManagementList(); - val_ServedNRCells->ref_criticality().select_id_ServedNRcellsENDCX2ManagementList(); - val_ServedNRCells->ref_value().select_id_ServedNRcellsENDCX2ManagementList(); - - /* ServedNRcellsENDCX2ManagementList <-- servedNRCellInfo*/ - ServedNRcellsENDCX2ManagementList::value_type* elm = - new ServedNRcellsENDCX2ManagementList::value_type(); - - /* - ServedNRCell-Information ::= SEQUENCE { - nrpCI NRPCI, - nrCellID NRCGI, - fiveGS-TAC FiveGS-TAC OPTIONAL, - configured-TAC TAC OPTIONAL, - broadcastPLMNs BroadcastPLMNs-Item, - nrModeInfo CHOICE { - fdd FDD-InfoServedNRCell-Information, - tdd TDD-InfoServedNRCell-Information, - ... - }, - measurementTimingConfiguration OCTET STRING, - iE-Extensions ProtocolExtensionContainer { {ServedNRCell-Information-ExtIEs} } OPTIONAL, - ... - } - */ - ServedNRCell_Information* info = &(elm->ref_servedNRCellInfo()); - { - // nrpCI NRPCI, - info->ref_nrpCI().set(gnb_cfg.nrpCI); - - /* nrCellID NRCGI, - - NRCGI ::= SEQUENCE { - pLMN-Identity PLMN-Identity, - nRcellIdentifier NRCellIdentifier, - iE-Extensions ProtocolExtensionContainer { {NRCGI-ExtIEs} } OPTIONAL, - ... - } - */ - info->ref_nrCellID().ref_pLMN_Identity().set(3, gnb_cfg.pLMN_Identity); - info->ref_nrCellID().ref_nRcellIdentifier().set_buffer(36, gnb_cfg.nRcellIdentifier); - - /* broadcastPLMNs BroadcastPLMNs-Item */ - BroadcastPLMNs_Item::value_type* item = new BroadcastPLMNs_Item::value_type(); - item->set(3, gnb_cfg.pLMN_Identity); - info->ref_broadcastPLMNs().push_back(*item); - - /* nrModeInfo CHOICE { - fdd FDD-InfoServedNRCell-Information, - tdd TDD-InfoServedNRCell-Information, - ... - }, - - FDD-InfoServedNRCell-Information ::= SEQUENCE { - ul-NRFreqInfo NRFreqInfo, - dl-NRFreqInfo NRFreqInfo, - ul-NR-TxBW NR-TxBW, - dl-NR-TxBW NR-TxBW, - iE-Extensions ProtocolExtensionContainer { {FDD-InfoServedNRCell-Information-ExtIEs} } OPTIONAL, - ... - } - - NRFreqInfo ::= SEQUENCE{ - nRARFCN INTEGER (0.. 3279165), - freqBandListNr SEQUENCE (SIZE(1..maxnoofNrCellBands)) OF FreqBandNrItem, - sULInformation SULInformation OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {NRFreqInfo-ExtIEs} } OPTIONAL, - - ... - } - - */ - info->ref_nrModeInfo().select_fdd().ref_ul_NRFreqInfo().ref_nRARFCN().set(gnb_cfg.uL_nRARFCN); - info->ref_nrModeInfo().select_fdd().ref_dl_NRFreqInfo().ref_nRARFCN().set(gnb_cfg.dL_nRARFCN); - - /* - FreqBandNrItem ::= SEQUENCE { - freqBandIndicatorNr INTEGER (1..1024,...), - supportedSULBandList SEQUENCE (SIZE(0..maxnoofNrCellBands)) OF SupportedSULFreqBandItem, - iE-Extensions ProtocolExtensionContainer { {FreqBandNrItem-ExtIEs} } OPTIONAL, - ... - } - */ - //uplink - asn::sequenceof::value_type* ul_band_item = - new asn::sequenceof::value_type(); - { - ul_band_item->ref_freqBandIndicatorNr().set(gnb_cfg.ul_freqBandIndicatorNr); - - /* - SupportedSULFreqBandItem ::= SEQUENCE { - freqBandIndicatorNr INTEGER (1..1024,...), - iE-Extensions ProtocolExtensionContainer { {SupportedSULFreqBandItem-ExtIEs} } OPTIONAL, - ... - } - */ - - asn::sequenceof::value_type* ul_supported_band_item = - new asn::sequenceof::value_type(); - - ul_supported_band_item->ref_freqBandIndicatorNr().set(gnb_cfg.ul_freqBandIndicatorNr); - - ul_band_item->ref_supportedSULBandList().push_back(*ul_supported_band_item); - } - info->ref_nrModeInfo().select_fdd().ref_ul_NRFreqInfo() - .ref_freqBandListNr().push_back(*ul_band_item); - - //downlink - asn::sequenceof::value_type* dl_band_item = - new asn::sequenceof::value_type(); - { - dl_band_item->ref_freqBandIndicatorNr().set(gnb_cfg.dl_freqBandIndicatorNr); - - /* - SupportedSULFreqBandItem ::= SEQUENCE { - freqBandIndicatorNr INTEGER (1..1024,...), - iE-Extensions ProtocolExtensionContainer { {SupportedSULFreqBandItem-ExtIEs} } OPTIONAL, - ... - } - */ - - asn::sequenceof::value_type* dl_supported_band_item = - new asn::sequenceof::value_type(); - - dl_supported_band_item->ref_freqBandIndicatorNr().set(gnb_cfg.dl_freqBandIndicatorNr); - - dl_band_item->ref_supportedSULBandList().push_back(*dl_supported_band_item); - } - info->ref_nrModeInfo().select_fdd().ref_dl_NRFreqInfo() - .ref_freqBandListNr().push_back(*dl_band_item); - - /* - NR-TxBW ::= SEQUENCE { - nRSCS NRSCS, - nRNRB NRNRB, - iE-Extensions ProtocolExtensionContainer { {NR-TxBW-ExtIEs} } OPTIONAL, - ... - } - */ - { - info->ref_nrModeInfo().select_fdd().ref_ul_NR_TxBW().ref_nRNRB() - .set( static_cast(gnb_cfg.uL_NRNRB) ); - info->ref_nrModeInfo().select_fdd().ref_ul_NR_TxBW().ref_nRSCS() - .set( static_cast(gnb_cfg.uL_NRSCS) ); - - info->ref_nrModeInfo().select_fdd().ref_dl_NR_TxBW().ref_nRNRB() - .set( static_cast(gnb_cfg.dL_NRNRB) ); - info->ref_nrModeInfo().select_fdd().ref_dl_NR_TxBW().ref_nRSCS() - .set( static_cast(gnb_cfg.dL_NRSCS) ); - } - - /* - measurementTimingConfiguration OCTET STRING, - */ - info->ref_measurementTimingConfiguration().set(gnb_cfg.measurementTimingConfiguration); - } - val_ServedNRCells->ref_value().select_id_ServedNRcellsENDCX2ManagementList().push_back(*elm); - - - - return true; -} - -bool e2ap_create_ENDCX2SetupFailure(e2ap_pdu_t* pdu) -{ - - E2APpduWrapper* pduWrapper = reinterpret_cast(pdu); - - /* Initiaization */ - pduWrapper->ref_pdu().select_unsuccessfulOutcome().ref_procedureCode().select_id_endcX2Setup(); - pduWrapper->ref_pdu().select_unsuccessfulOutcome().ref_criticality().select_id_endcX2Setup(); - - ENDCX2SetupFailure* container = - &(pduWrapper->ref_pdu().select_unsuccessfulOutcome().ref_value().select_id_endcX2Setup()); - - using IE_value_t = ENDCX2SetupFailure::protocolIEs_t::value_type; - - /* ENDCX2SetupFailure-IEs := id-Cause*/ - IE_value_t* val_cause = new IE_value_t; - container->ref_protocolIEs().push_back(*val_cause); - - val_cause->ref_id().select_id_Cause(); - val_cause->ref_criticality().select_id_Cause(); - - /* Cause << radioNetwork */ - val_cause->ref_value().select_id_Cause().select_radioNetwork(); - - /* CauseRadioNetwork = ho-target-not-allowed (enum = 8)*/ - val_cause->ref_value().select_id_Cause().select_radioNetwork() - .set(static_cast(8)); - - return true; -} - -//RICSubscription -bool e2ap_create_RICsubscriptionRequest(e2ap_pdu_t* pdu, RICsubscription_params_t ¶ms) -{ - E2APpduWrapper* pduWrapper = reinterpret_cast(pdu); - - /* Initiaization */ - pduWrapper->ref_pdu().select_initiatingMessage() - .ref_procedureCode().select_id_ricSubscription(); - pduWrapper->ref_pdu().select_initiatingMessage() - .ref_criticality().select_id_ricSubscription(); - - RICsubscriptionRequest* container = &(pduWrapper->ref_pdu() - .select_initiatingMessage().ref_value().select_id_ricSubscription()); - - using IE_value_t = RICsubscriptionRequest::protocolIEs_t::value_type; - - /* RICsubscriptionRequest-IEs : RICrequestID */ - IE_value_t* ie_RICrequestID = new IE_value_t; - container->ref_protocolIEs().push_back(*ie_RICrequestID); - - ie_RICrequestID->ref_id().select_id_RICrequestID(); - ie_RICrequestID->ref_criticality().select_id_RICrequestID(); - ie_RICrequestID->ref_value().select_id_RICrequestID() - .ref_ricRequestorID().set(params.request_id); - ie_RICrequestID->ref_value().select_id_RICrequestID() - .ref_ricRequestSequenceNumber().set(params.seq_number); - - /* RICsubscriptionRequest-IEs : RANfunctionID */ - IE_value_t* ie_RANfunctionID = new IE_value_t; - container->ref_protocolIEs().push_back(*ie_RANfunctionID); - - ie_RANfunctionID->ref_id().select_id_RANfunctionID(); - ie_RANfunctionID->ref_criticality().select_id_RANfunctionID(); - ie_RANfunctionID->ref_value().select_id_RANfunctionID().set(params.ran_func_id); - - - /* - RICsubscription ::= SEQUENCE { - ricEventTriggerDefinition RICeventTriggerDefinition, - ricAction-ToBeSetup-List RICactions-ToBeSetup-List, - ... - } - - RICeventTriggerDefinition ::= OCTET STRING - RICactions-ToBeSetup-List ::= SEQUENCE (SIZE(1..maxofRICactionID)) OF ProtocolIE-Single-Container { {RICaction-ToBeSetup-ItemIEs} } - - RICaction-ToBeSetup-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-RICaction-ToBeSetup-Item CRITICALITY ignore TYPE RICaction-ToBeSetup-Item PRESENCE mandatory }, - ... - } - - RICaction-ToBeSetup-Item ::= SEQUENCE { - ricActionID RICactionID, - ricActionType RICactionType, - ricActionDefinition RICactionDefinition OPTIONAL, - ricSubsequentAction RICsubsequentAction OPTIONAL, - ... - } - - RICactionID ::= INTEGER (0..255) - - RICactionType ::= ENUMERATED{ - report, - insert, - policy, - ... - } - */ - - /* RICsubscriptionRequest-IEs : RICsubscription */ - IE_value_t* ie_RICsubscription = new IE_value_t; - container->ref_protocolIEs().push_back(*ie_RICsubscription); - - ie_RICsubscription->ref_id().select_id_RICsubscription(); - ie_RICsubscription->ref_criticality().select_id_RICsubscription(); - - // RICeventTriggerDefinition - ie_RICsubscription->ref_value().select_id_RICsubscription() - .ref_ricEventTriggerDefinition().set(params.event_trigger_def); - - //RICactions-ToBeSetup-List - for( auto const &action : params.actionList) - { - RICactions_ToBeSetup_List::value_type* item = - new RICactions_ToBeSetup_List::value_type(); - - ie_RICsubscription->ref_value().select_id_RICsubscription() - .ref_ricAction_ToBeSetup_List().push_back(*item); - - item->ref_id().select_id_RICaction_ToBeSetup_Item(); - item->ref_criticality().select_id_RICaction_ToBeSetup_Item(); - item->ref_value().select_id_RICaction_ToBeSetup_Item() - .ref_ricActionID().set(action.action_id); - item->ref_value().select_id_RICaction_ToBeSetup_Item() - .ref_ricActionType().set(action.action_type); - - } - - return true; -} - -bool e2ap_parse_RICsubscriptionRequest(e2ap_pdu_t* pdu, RICsubscription_params_t ¶ms) -{ - E2APpduWrapper* pduWrapper = reinterpret_cast(pdu); - - RICsubscriptionRequest* container = &(pduWrapper->ref_pdu() - .select_initiatingMessage().ref_value().select_id_ricSubscription()); - - - for(auto &e : container->ref_protocolIEs()) - { - /*See struct RICsubscriptionRequest_IEs*/ - size_t type = e.ref_value().get_index(); - - switch(type) - { - case 1: //RICrequestID - { - params.request_id = e.ref_value().select_id_RICrequestID().ref_ricRequestorID().get(); - params.seq_number = e.ref_value().select_id_RICrequestID().ref_ricRequestSequenceNumber().get(); - } - break; - - case 2: //RANfunctionID - params.ran_func_id = e.ref_value().select_id_RANfunctionID().get(); - break; - - case 3: //RICsubscription - { - auto event = e.ref_value().select_id_RICsubscription().ref_ricEventTriggerDefinition().get(); - (params.event_trigger_def).assign(std::string(event.data(), event.data() + event.size())); - - //ricAction_ToBeSetup_List - for (auto & f : e.ref_value().select_id_RICsubscription().ref_ricAction_ToBeSetup_List()) - { - RIC_action_t action; - action.action_id = f.ref_value() - .select_id_RICaction_ToBeSetup_Item().ref_ricActionID().get(); - action.action_type = static_cast(f.ref_value() - .select_id_RICaction_ToBeSetup_Item().ref_ricActionType().get()); - - params.actionList.push_back(action); - } - } - break; - - default: - printf("Unknown IE type = %d\n", (int)type); - return false; - } - } - - return true; -} - -bool e2ap_create_RICsubscriptionResponse(e2ap_pdu_t* pdu, RICsubscription_params_t ¶ms) -{ - E2APpduWrapper* pduWrapper = reinterpret_cast(pdu); - - /* Initiaization */ - pduWrapper->ref_pdu().select_successfulOutcome().ref_procedureCode().select_id_ricSubscription(); - pduWrapper->ref_pdu().select_successfulOutcome().ref_criticality().select_id_ricSubscription(); - - RICsubscriptionResponse* container = &(pduWrapper->ref_pdu() - .select_successfulOutcome().ref_value().select_id_ricSubscription()); - - using IE_value_t = RICsubscriptionResponse::protocolIEs_t::value_type; - - /* RICsubscriptionResponse-IEs : RICrequestID */ - IE_value_t* ie_RICrequestID = new IE_value_t; - container->ref_protocolIEs().push_back(*ie_RICrequestID); - - ie_RICrequestID->ref_id().select_id_RICrequestID(); - ie_RICrequestID->ref_criticality().select_id_RICrequestID(); - ie_RICrequestID->ref_value().select_id_RICrequestID() - .ref_ricRequestorID().set(params.request_id); - ie_RICrequestID->ref_value().select_id_RICrequestID() - .ref_ricRequestSequenceNumber().set(params.seq_number); - - /* RICsubscriptionResponse-IEs : RANfunctionID */ - IE_value_t* ie_RANfunctionID = new IE_value_t; - container->ref_protocolIEs().push_back(*ie_RANfunctionID); - - ie_RANfunctionID->ref_id().select_id_RANfunctionID(); - ie_RANfunctionID->ref_criticality().select_id_RANfunctionID(); - ie_RANfunctionID->ref_value().select_id_RANfunctionID().set(params.ran_func_id); - - /* RICsubscriptionResponse-IEs : RICaction-Admitted-List */ - IE_value_t* ie_admittedList = new IE_value_t; - container->ref_protocolIEs().push_back(*ie_admittedList); - - ie_admittedList->ref_id().select_id_RICactions_Admitted(); - ie_admittedList->ref_criticality().select_id_RICactions_Admitted(); - - /* RICsubscriptionResponse-IEs : RICaction-NotAdmitted-List */ - IE_value_t* ie_notAdmittedList = new IE_value_t; - container->ref_protocolIEs().push_back(*ie_notAdmittedList); - - ie_notAdmittedList->ref_id().select_id_RICactions_NotAdmitted(); - ie_notAdmittedList->ref_criticality().select_id_RICactions_NotAdmitted(); - - //add action to admitted and not-admitted list - for(auto const &a : params.actionList) - { - if(a.isAdmitted) - { - RICaction_Admitted_List::value_type* item = new RICaction_Admitted_List::value_type(); - - ie_admittedList->ref_value().select_id_RICactions_Admitted().push_back(*item); - - item->ref_id().select_id_RICaction_Admitted_Item(); - item->ref_criticality().select_id_RICaction_Admitted_Item(); - item->ref_value().select_id_RICaction_Admitted_Item().ref_ricActionID().set(a.action_id); - } - else - { - RICaction_NotAdmitted_List::value_type* item = new RICaction_NotAdmitted_List::value_type(); - - ie_notAdmittedList->ref_value().select_id_RICactions_NotAdmitted().push_back(*item); - - item->ref_id().select_id_RICaction_NotAdmitted_Item(); - item->ref_criticality().select_id_RICaction_NotAdmitted_Item(); - item->ref_value().select_id_RICaction_NotAdmitted_Item().ref_ricActionID().set(a.action_id); - - // set cause and sub-cause - switch(a.notAdmitted_cause) - { - case RICcause_radioNetwork: - item->ref_value().select_id_RICaction_NotAdmitted_Item().ref_ricCause().select_radioNetwork().set(a.notAdmitted_subCause); - break; - - case RICcause_transport: - item->ref_value().select_id_RICaction_NotAdmitted_Item().ref_ricCause().select_transport().set(a.notAdmitted_subCause); - break; - - case RICcause_protocol: - item->ref_value().select_id_RICaction_NotAdmitted_Item().ref_ricCause().select_protocol().set(a.notAdmitted_subCause); - break; - - case RICcause_misc: - item->ref_value().select_id_RICaction_NotAdmitted_Item().ref_ricCause().select_misc().set(a.notAdmitted_subCause); - break; - - case RICcause_ric: - item->ref_value().select_id_RICaction_NotAdmitted_Item().ref_ricCause().select_ric().set(a.notAdmitted_subCause); - break; - - default: - printf("Unknown cause for action not admitted = %d", (int)a.notAdmitted_cause); - } - } - } - - return true; -} - -bool e2ap_create_RICsubscriptionFailure(e2ap_pdu_t* pdu, RICsubscription_params_t ¶ms) -{ - E2APpduWrapper* pduWrapper = reinterpret_cast(pdu); - - /* Initiaization */ - pduWrapper->ref_pdu().select_unsuccessfulOutcome().ref_procedureCode().select_id_ricSubscription(); - pduWrapper->ref_pdu().select_unsuccessfulOutcome().ref_criticality().select_id_ricSubscription(); - - RICsubscriptionFailure* container = &(pduWrapper->ref_pdu() - .select_unsuccessfulOutcome().ref_value().select_id_ricSubscription()); - - using IE_value_t = RICsubscriptionFailure::protocolIEs_t::value_type; - - /* RICsubscriptionFailure-IEs : RICrequestID */ - IE_value_t* ie_RICrequestID = new IE_value_t; - container->ref_protocolIEs().push_back(*ie_RICrequestID); - - ie_RICrequestID->ref_id().select_id_RICrequestID(); - ie_RICrequestID->ref_criticality().select_id_RICrequestID(); - ie_RICrequestID->ref_value().select_id_RICrequestID() - .ref_ricRequestorID().set(params.request_id); - ie_RICrequestID->ref_value().select_id_RICrequestID() - .ref_ricRequestSequenceNumber().set(params.seq_number); - - /* RICsubscriptionFailure-IEs : RANfunctionID */ - IE_value_t* ie_RANfunctionID = new IE_value_t; - container->ref_protocolIEs().push_back(*ie_RANfunctionID); - - ie_RANfunctionID->ref_id().select_id_RANfunctionID(); - ie_RANfunctionID->ref_criticality().select_id_RANfunctionID(); - ie_RANfunctionID->ref_value().select_id_RANfunctionID().set(params.ran_func_id); - - /* RICsubscriptionFailure-IEs : RICaction-NotAdmitted-List */ - IE_value_t* ie_notAdmittedList = new IE_value_t; - container->ref_protocolIEs().push_back(*ie_notAdmittedList); - - ie_notAdmittedList->ref_id().select_id_RICactions_NotAdmitted(); - ie_notAdmittedList->ref_criticality().select_id_RICactions_NotAdmitted(); - - for(auto const &a : params.actionList) - { - if(!a.isAdmitted) - { - RICaction_NotAdmitted_List::value_type* item = new RICaction_NotAdmitted_List::value_type(); - - ie_notAdmittedList->ref_value().select_id_RICactions_NotAdmitted().push_back(*item); - - item->ref_id().select_id_RICaction_NotAdmitted_Item(); - item->ref_criticality().select_id_RICaction_NotAdmitted_Item(); - item->ref_value().select_id_RICaction_NotAdmitted_Item().ref_ricActionID().set(a.action_id); - - // set cause and sub-cause - switch(a.notAdmitted_cause) - { - case RICcause_radioNetwork: - item->ref_value().select_id_RICaction_NotAdmitted_Item().ref_ricCause().select_radioNetwork().set(a.notAdmitted_subCause); - break; - - case RICcause_transport: - item->ref_value().select_id_RICaction_NotAdmitted_Item().ref_ricCause().select_transport().set(a.notAdmitted_subCause); - break; - - case RICcause_protocol: - item->ref_value().select_id_RICaction_NotAdmitted_Item().ref_ricCause().select_protocol().set(a.notAdmitted_subCause); - break; - - case RICcause_misc: - item->ref_value().select_id_RICaction_NotAdmitted_Item().ref_ricCause().select_misc().set(a.notAdmitted_subCause); - break; - - case RICcause_ric: - item->ref_value().select_id_RICaction_NotAdmitted_Item().ref_ricCause().select_ric().set(a.notAdmitted_subCause); - break; - - default: - printf("Unknown cause for action not admitted = %d", (int)a.notAdmitted_cause); - } - } - } - - return true; -} - - -/*----------------------------------------------------------------------- - TESTS -------------------------------------------------------------------------- -*/ -void test_E2AP_X2Setup_codec(void) -{ - e2ap_pdu_t* pdu = new_e2ap_pdu(); - - // e2ap_init_X2SetupRequest(pdu); - eNB_config cfg; - e2ap_create_X2SetupRequest(pdu, cfg); - - char pdu_str[1024]; - e2ap_asn_print(pdu, pdu_str, sizeof(pdu_str)); - printf("%s\n", pdu_str); - - //Test encode - unsigned char packed_buf[4096]; - char err_buf[1024]; - - int packed_len = e2ap_asn_per_encode(pdu, packed_buf, sizeof(packed_buf), - err_buf, sizeof(err_buf)); - if(packed_len != -1) { - printf("Encode successful, packed_len = %d\n", packed_len); - } else { - printf("Encode Error: %s\n", err_buf); - } - - //Test decode - e2ap_pdu_t* pdu2 = new_e2ap_pdu(); - int rc = e2ap_asn_per_decode(pdu2, packed_buf, packed_len, err_buf, sizeof(err_buf)); - if(rc == -1) { - printf("Decode error: %s\n", err_buf); - } else { - printf("Decode successful\n"); - } - - e2ap_asn_print(pdu2, pdu_str, sizeof(pdu_str)); - printf("%s\n", pdu_str); - - printf("index = %d\n", e2ap_get_index(pdu2)); - printf("procedureCode = %d\n", e2ap_get_procedureCode(pdu2)); - - //Test X2SetupResponse - e2ap_pdu_t* pdu_resp = new_e2ap_pdu(); - e2ap_create_X2SetupResponse(pdu_resp, cfg); - e2ap_asn_print(pdu_resp, pdu_str, sizeof(pdu_str)); - printf("%s\n", pdu_str); - - //Test X2SetupFailure - e2ap_pdu_t* pdu_failure = new_e2ap_pdu(); - e2ap_create_X2SetupFailure(pdu_failure); - e2ap_asn_print(pdu_failure, pdu_str, sizeof(pdu_str)); - printf("%s \n", pdu_str); -} diff --git a/e2sim/previous/e2apv1sim/ricsim/src/ASN1/lib/asn_e2ap.hpp b/e2sim/previous/e2apv1sim/ricsim/src/ASN1/lib/asn_e2ap.hpp deleted file mode 100644 index aa858b2..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/ASN1/lib/asn_e2ap.hpp +++ /dev/null @@ -1,85 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -#ifndef ASN_E2AP_HPP -#define ASN_E2AP_HPP - -#include -#include -#include - -#include "e2ap_config.hpp" - -typedef struct c__dummy01 e2ap_pdu_t; - -/*----------------------------------------------------------------------- - COMMON ROUTINES -------------------------------------------------------------------------- -*/ -e2ap_pdu_t* new_e2ap_pdu(void); - -void e2ap_asn_print(e2ap_pdu_t* pdu, char* buf, size_t buf_size); - -int e2ap_asn_per_encode(e2ap_pdu_t* pdu, unsigned char* buf, size_t buf_size, - char* err_buf, size_t err_buf_size); - -int e2ap_asn_per_decode(e2ap_pdu_t* pdu, unsigned char const* buf, size_t buf_size, - char* err_buf, size_t err_buf_size); - -int e2ap_get_index(e2ap_pdu_t* pdu); - -int e2ap_get_procedureCode(e2ap_pdu_t* pdu); - -/*----------------------------------------------------------------------- - MESSAGE GENERATORS -------------------------------------------------------------------------- -*/ - -//X2Setup -bool e2ap_init_X2SetupRequest(e2ap_pdu_t* pdu); - -bool e2ap_create_X2SetupRequest(e2ap_pdu_t* pdu, eNB_config &cfg); - -bool e2ap_create_X2SetupResponse(e2ap_pdu_t* pdu, eNB_config &cfg); - -bool e2ap_create_X2SetupFailure(e2ap_pdu_t* pdu); - -//ENDCX2Setup -bool e2ap_create_ENDCX2SetupRequest(e2ap_pdu_t* pdu, eNB_config &cfg); - -bool e2ap_create_ENDCX2SetupResponse(e2ap_pdu_t* pdu, gNB_config &cfg); - -bool e2ap_create_ENDCX2SetupFailure(e2ap_pdu_t* pdu); - -//RIC Subscription -bool e2ap_create_RICsubscriptionRequest(e2ap_pdu_t* pdu, RICsubscription_params_t ¶ms); - -bool e2ap_parse_RICsubscriptionRequest(e2ap_pdu_t* pdu, RICsubscription_params_t ¶ms); - -bool e2ap_create_RICsubscriptionResponse(e2ap_pdu_t* pdu, RICsubscription_params_t ¶ms); - -bool e2ap_create_RICsubscriptionFailure(e2ap_pdu_t* pdu, RICsubscription_params_t ¶ms); - -/*----------------------------------------------------------------------- - TESTS -------------------------------------------------------------------------- -*/ -void test_E2AP_X2Setup_codec(void); - -#endif diff --git a/e2sim/previous/e2apv1sim/ricsim/src/ASN1/lib/asn_e2ap_wrapper.hpp b/e2sim/previous/e2apv1sim/ricsim/src/ASN1/lib/asn_e2ap_wrapper.hpp deleted file mode 100644 index 38704e8..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/ASN1/lib/asn_e2ap_wrapper.hpp +++ /dev/null @@ -1,85 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ -#ifndef ASN_E2AP_PDU_WRAPPER_HPP -#define ASN_E2AP_PDU_WRAPPER_HPP - -#include -#include -#include - -// #include - -// #include -// #include -// #include -// #include -// #include - -#include -// #include -#include -#include -#include - -#define E2AP_PDU_DEFAULT_BUFFER_SIZE 4096 - -//Credit: copied from E2-Manager -struct E2APpduWrapper -{ - unsigned char* m_allocation_buffer; - size_t m_allocation_buffer_size; - - E2APpduWrapper(size_t allocation_buffer_size = E2AP_PDU_DEFAULT_BUFFER_SIZE) - { - m_allocation_buffer_size = allocation_buffer_size; - m_allocation_buffer = 0; - if (allocation_buffer_size) { - m_allocation_buffer = - new (std::nothrow) unsigned char[allocation_buffer_size]; - m_allocator.reset( - m_allocation_buffer, - m_allocation_buffer_size); // initialized correctly on - // allocation failure. - } - } - - ~E2APpduWrapper() - { - if (m_allocation_buffer) - delete[] m_allocation_buffer; - } - - asn::allocator& ref_allocator() { return m_allocator; } - - E2AP_PDU& ref_pdu() { return m_pdu; } - - // reset pdu and allocation buffer. Allows reusing. - void clear() - { - m_pdu.clear(); - m_allocator.reset(m_allocation_buffer, m_allocation_buffer_size); - } - - private: - E2AP_PDU m_pdu; - asn::allocator m_allocator; -}; - - -#endif diff --git a/e2sim/previous/e2apv1sim/ricsim/src/ASN1/lib/asn_x2ap.cpp b/e2sim/previous/e2apv1sim/ricsim/src/ASN1/lib/asn_x2ap.cpp deleted file mode 100644 index dae9ca8..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/ASN1/lib/asn_x2ap.cpp +++ /dev/null @@ -1,428 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -#include "asn_x2ap.hpp" -#include "asn_x2ap_wrapper.hpp" - -/*----------------------------------------------------------------------- - COMMON ROUTINES -------------------------------------------------------------------------- -*/ -x2ap_pdu_t* new_x2ap_pdu(void) -{ - X2APpduWrapper* pduWrapper = new X2APpduWrapper(); - return reinterpret_cast(pduWrapper); -} - -void x2ap_asn_print(x2ap_pdu_t* pdu, char* buf, size_t buf_size) -{ - X2APpduWrapper* pduWrapper = reinterpret_cast(pdu); - - buf[0] = 0; - - strncat(buf, asn::get_printed(pduWrapper->ref_pdu()).c_str(), buf_size - 1); -} - -int x2ap_asn_per_encode(x2ap_pdu_t* pdu, unsigned char* buf, size_t buf_size, - char* err_buf, size_t err_buf_size) -{ - X2APpduWrapper* pduWrapper = reinterpret_cast(pdu); - - asn::per::EncoderCtx ctx{ buf, buf_size }; - - if (!asn::per::pack(pduWrapper->ref_pdu(), ctx)) { - err_buf[0] = 0; - // strncat(err_buf, ctx.refErrorCtx().toString().c_str(), err_buf_size - 1); - return -1; - } else { - return static_cast(ctx.refBuffer().getBytesUsed()); - } - -} - -int x2ap_asn_per_decode(x2ap_pdu_t* pdu, unsigned char const* buf, size_t buf_size, - char* err_buf, size_t err_buf_size) -{ - X2APpduWrapper* pduWrapper = reinterpret_cast(pdu); - - asn::per::DecoderCtx ctx{ buf, - buf_size, - pduWrapper->m_allocation_buffer, - pduWrapper->m_allocation_buffer_size }; - - if (!asn::per::unpack(pduWrapper->ref_pdu(), ctx)) { - err_buf[0] = 0; - // strncat(err_buf, ctx.refErrorCtx().toString().c_str(), err_buf_size - 1); - return -1; - } - - return 0; - -} - -int x2ap_get_index(x2ap_pdu_t* pdu) -{ - X2APpduWrapper* pduWrapper = reinterpret_cast(pdu); - - return pduWrapper->ref_pdu().get_index(); -} - -int x2ap_get_procedureCode(x2ap_pdu_t* pdu) -{ - X2APpduWrapper* pduWrapper = reinterpret_cast(pdu); - - switch(pduWrapper->ref_pdu().get_index()) - { - case 1: - return pduWrapper->ref_pdu().get_initiatingMessage()->ref_procedureCode().get(); - break; - - case 2: - return pduWrapper->ref_pdu().get_successfulOutcome()->ref_procedureCode().get(); - break; - - case 3: - return pduWrapper->ref_pdu().get_unsuccessfulOutcome()->ref_procedureCode().get(); - break; - - default: - return -1; - } - -} - -/*----------------------------------------------------------------------- - MESSAGE GENERATORS -------------------------------------------------------------------------- -*/ -//X2Setup -bool x2ap_init_X2SetupRequest(x2ap_pdu_t* pdu) -{ - X2APpduWrapper* pduWrapper = reinterpret_cast(pdu); - - //Initialization - pduWrapper->ref_pdu().select_initiatingMessage(); - pduWrapper->ref_pdu().select_initiatingMessage().clear(); - pduWrapper->ref_pdu().select_initiatingMessage().ref_procedureCode().select_id_x2Setup(); - pduWrapper->ref_pdu().select_initiatingMessage().ref_criticality().select_id_x2Setup(); - pduWrapper->ref_pdu().select_initiatingMessage().ref_value().select_id_x2Setup(); - - return true; -} - -bool x2ap_create_X2SetupRequest(x2ap_pdu_t* pdu, eNB_config &cfg) -{ - X2APpduWrapper* pduWrapper = reinterpret_cast(pdu); - - /* Initiaization */ - pduWrapper->ref_pdu().select_initiatingMessage().ref_procedureCode().select_id_x2Setup(); - pduWrapper->ref_pdu().select_initiatingMessage().ref_criticality().select_id_x2Setup(); - - X2SetupRequest* container = - &(pduWrapper->ref_pdu().select_initiatingMessage().ref_value().select_id_x2Setup()); - - using IE_value_t = X2SetupRequest::protocolIEs_t::value_type; - - /* X2SetupRequest-IEs : GlobalENB-ID*/ - IE_value_t* val_GlobalENB_ID = new IE_value_t; - container->ref_protocolIEs().push_back(*val_GlobalENB_ID); - - val_GlobalENB_ID->ref_id().select_id_GlobalENB_ID(); - val_GlobalENB_ID->ref_criticality().select_id_GlobalENB_ID(); - val_GlobalENB_ID->ref_value().select_id_GlobalENB_ID().ref_pLMN_Identity() - .set(3, cfg.pLMN_Identity); - - val_GlobalENB_ID->ref_value().select_id_GlobalENB_ID().ref_eNB_ID() - .select_macro_eNB_ID().set_buffer(20, cfg.macro_eNB_ID); - - /* X2SetupRequest-IEs : ServedCells*/ - IE_value_t* val_ServedCells = new IE_value_t; - container->ref_protocolIEs().push_back(*val_ServedCells); - - val_ServedCells->ref_id().select_id_ServedCells(); - val_ServedCells->ref_criticality().select_id_ServedCells(); - val_ServedCells->ref_value().select_id_ServedCells(); - - //Add servedCellInfo - ServedCells::value_type* elm = new ServedCells::value_type(); - ServedCell_Information* info = &(elm->ref_servedCellInfo()); - { - //Set ServedCell-Information: pCI, cellId, tAC, broadcastPLMNs, eUTRA-Mode-Info - info->ref_pCI().set(cfg.pCI); - info->ref_cellId().ref_pLMN_Identity().set(3, cfg.pLMN_Identity); - info->ref_cellId().ref_eUTRANcellIdentifier().set_buffer(28, cfg.eUTRANcellIdentifier); - info->ref_tAC().set(2, cfg.tAC); - - BroadcastPLMNs_Item::value_type* item = new BroadcastPLMNs_Item::value_type(); - item->set(3, cfg.pLMN_Identity); - info->ref_broadcastPLMNs().push_back(*item); - - info->ref_eUTRA_Mode_Info().select_fDD().ref_uL_EARFCN().set(cfg.uL_EARFCN); - info->ref_eUTRA_Mode_Info().select_fDD().ref_dL_EARFCN().set(cfg.dL_EARFCN); - info->ref_eUTRA_Mode_Info().select_fDD().ref_uL_Transmission_Bandwidth() - .set(static_cast(cfg.uL_Bandwidth)); - info->ref_eUTRA_Mode_Info().select_fDD().ref_dL_Transmission_Bandwidth() - .set(static_cast(cfg.dL_Bandwidth)); - } - val_ServedCells->ref_value().select_id_ServedCells().push_back(*elm); - - return true; -} - -bool x2ap_create_X2SetupResponse(x2ap_pdu_t* pdu, eNB_config &cfg) -{ - X2APpduWrapper* pduWrapper = reinterpret_cast(pdu); - - /* Initiaization */ - pduWrapper->ref_pdu().select_successfulOutcome().ref_procedureCode().select_id_x2Setup(); - pduWrapper->ref_pdu().select_successfulOutcome().ref_criticality().select_id_x2Setup(); - - X2SetupResponse* container = - &(pduWrapper->ref_pdu().select_successfulOutcome().ref_value().select_id_x2Setup()); - - using IE_value_t = X2SetupResponse::protocolIEs_t::value_type; - - /* X2SetupResponse-IEs : GlobalENB-ID*/ - IE_value_t* val_GlobalENB_ID = new IE_value_t; - container->ref_protocolIEs().push_back(*val_GlobalENB_ID); - - val_GlobalENB_ID->ref_id().select_id_GlobalENB_ID(); - val_GlobalENB_ID->ref_criticality().select_id_GlobalENB_ID(); - val_GlobalENB_ID->ref_value().select_id_GlobalENB_ID().ref_pLMN_Identity() - .set(3, cfg.pLMN_Identity); - - val_GlobalENB_ID->ref_value().select_id_GlobalENB_ID().ref_eNB_ID() - .select_macro_eNB_ID().set_buffer(20, cfg.macro_eNB_ID); - - /* X2SetupResponse-IEs : ServedCells*/ - IE_value_t* val_ServedCells = new IE_value_t; - container->ref_protocolIEs().push_back(*val_ServedCells); - - val_ServedCells->ref_id().select_id_ServedCells(); - val_ServedCells->ref_criticality().select_id_ServedCells(); - val_ServedCells->ref_value().select_id_ServedCells(); - - //Add servedCellInfo - ServedCells::value_type* elm = new ServedCells::value_type(); - ServedCell_Information* info = &(elm->ref_servedCellInfo()); - { - //Set ServedCell-Information: pCI, cellId, tAC, broadcastPLMNs, eUTRA-Mode-Info - info->ref_pCI().set(cfg.pCI); - info->ref_cellId().ref_pLMN_Identity().set(3, cfg.pLMN_Identity); - info->ref_cellId().ref_eUTRANcellIdentifier().set_buffer(28, cfg.eUTRANcellIdentifier); - info->ref_tAC().set(2, cfg.tAC); - - BroadcastPLMNs_Item::value_type* item = new BroadcastPLMNs_Item::value_type(); - item->set(3, cfg.pLMN_Identity); - info->ref_broadcastPLMNs().push_back(*item); - - info->ref_eUTRA_Mode_Info().select_fDD().ref_uL_EARFCN().set(cfg.uL_EARFCN); - info->ref_eUTRA_Mode_Info().select_fDD().ref_dL_EARFCN().set(cfg.dL_EARFCN); - info->ref_eUTRA_Mode_Info().select_fDD().ref_uL_Transmission_Bandwidth() - .set(static_cast(cfg.uL_Bandwidth)); - info->ref_eUTRA_Mode_Info().select_fDD().ref_dL_Transmission_Bandwidth() - .set(static_cast(cfg.dL_Bandwidth)); - } - val_ServedCells->ref_value().select_id_ServedCells().push_back(*elm); - - return true; -} - -bool x2ap_create_X2SetupFailure(x2ap_pdu_t* pdu) -{ - X2APpduWrapper* pduWrapper = reinterpret_cast(pdu); - - /* Initiaization */ - pduWrapper->ref_pdu().select_unsuccessfulOutcome().ref_procedureCode().select_id_x2Setup(); - pduWrapper->ref_pdu().select_unsuccessfulOutcome().ref_criticality().select_id_x2Setup(); - - X2SetupFailure* container = - &(pduWrapper->ref_pdu().select_unsuccessfulOutcome().ref_value().select_id_x2Setup()); - - using IE_value_t = X2SetupFailure::protocolIEs_t::value_type; - - /* X2SetupFailure-IEs << id-Cause */ - IE_value_t* val_cause = new IE_value_t; - container->ref_protocolIEs().push_back(*val_cause); - - val_cause->ref_id().select_id_Cause(); - val_cause->ref_criticality().select_id_Cause(); - - /* Cause << radioNetwork */ - val_cause->ref_value().select_id_Cause().select_radioNetwork(); - - /* CauseRadioNetwork = ho-target-not-allowed (enum = 8)*/ - val_cause->ref_value().select_id_Cause().select_radioNetwork() - .set(static_cast(8)); - - return true; -} - -//ENDCX2Setup -bool x2ap_create_ENDCX2SetupRequest(x2ap_pdu_t* pdu, eNB_config &cfg) -{ - X2APpduWrapper* pduWrapper = reinterpret_cast(pdu); - - /* Initiaization */ - pduWrapper->ref_pdu().select_initiatingMessage().ref_procedureCode().select_id_endcX2Setup(); - pduWrapper->ref_pdu().select_initiatingMessage().ref_criticality().select_id_endcX2Setup(); - - ENDCX2SetupRequest* container = - &(pduWrapper->ref_pdu().select_initiatingMessage().ref_value().select_id_endcX2Setup()); - - using IE_value_t = ENDCX2SetupRequest::protocolIEs_t::value_type; - - /* ENDCX2SetupRequest-IEs = id-InitiatingNodeType-EndcX2Setup */ - IE_value_t* ie = new IE_value_t; - container->ref_protocolIEs().push_back(*ie); - ie->ref_id().select_id_InitiatingNodeType_EndcX2Setup(); - ie->ref_criticality().select_id_InitiatingNodeType_EndcX2Setup(); - ie->ref_value().select_id_InitiatingNodeType_EndcX2Setup(); - - /* InitiatingNodeType-EndcX2Setup = init-eNB {ENB-ENDCX2SetupReqIEs} */ - ie->ref_value().select_id_InitiatingNodeType_EndcX2Setup().select_init_eNB(); - - using eNB_val_t = InitiatingNodeType_EndcX2Setup::init_eNB_t::value_type; - - ProtocolIE_Container* eNB_node = - &(ie->ref_value().select_id_InitiatingNodeType_EndcX2Setup().select_init_eNB()); - - /* ENB-ENDCX2SetupReqIEs <-- id-GlobalENB-ID */ - eNB_val_t* val_GlobalENB_ID = new eNB_val_t; - eNB_node->push_back(*val_GlobalENB_ID); - - val_GlobalENB_ID->ref_id().select_id_GlobalENB_ID(); - val_GlobalENB_ID->ref_criticality().select_id_GlobalENB_ID(); - val_GlobalENB_ID->ref_value().select_id_GlobalENB_ID() - .ref_pLMN_Identity().set(3, cfg.pLMN_Identity); - val_GlobalENB_ID->ref_value().select_id_GlobalENB_ID().ref_eNB_ID() - .select_macro_eNB_ID().set_buffer(20, cfg.macro_eNB_ID); - - /* ENB-ENDCX2SetupReqIEs <-- id-ServedEUTRAcellsENDCX2ManagementList */ - eNB_val_t* val_EUTRAlist = new eNB_val_t; - eNB_node->push_back(*val_EUTRAlist); - - val_EUTRAlist->ref_id().select_id_ServedEUTRAcellsENDCX2ManagementList(); - val_EUTRAlist->ref_criticality().select_id_ServedEUTRAcellsENDCX2ManagementList(); - val_EUTRAlist->ref_value().select_id_ServedEUTRAcellsENDCX2ManagementList(); - - /* ServedEUTRAcellsENDCX2ManagementList <-- servedEUTRACellInfo */ - ServedEUTRAcellsENDCX2ManagementList::value_type* elm = - new ServedEUTRAcellsENDCX2ManagementList::value_type(); - ServedCell_Information* info = &(elm->ref_servedEUTRACellInfo()); - { - //Set ServedCell-Information: pCI, cellId, tAC, broadcastPLMNs, eUTRA-Mode-Info - info->ref_pCI().set(cfg.pCI); - info->ref_cellId().ref_pLMN_Identity().set(3, cfg.pLMN_Identity); - info->ref_cellId().ref_eUTRANcellIdentifier().set_buffer(28, cfg.eUTRANcellIdentifier); - info->ref_tAC().set(2, cfg.tAC); - - BroadcastPLMNs_Item::value_type* item = new BroadcastPLMNs_Item::value_type(); - item->set(3, cfg.pLMN_Identity); - info->ref_broadcastPLMNs().push_back(*item); - - info->ref_eUTRA_Mode_Info().select_fDD().ref_uL_EARFCN().set(cfg.uL_EARFCN); - info->ref_eUTRA_Mode_Info().select_fDD().ref_dL_EARFCN().set(cfg.dL_EARFCN); - info->ref_eUTRA_Mode_Info().select_fDD().ref_uL_Transmission_Bandwidth() - .set(static_cast(cfg.uL_Bandwidth)); - info->ref_eUTRA_Mode_Info().select_fDD().ref_dL_Transmission_Bandwidth() - .set(static_cast(cfg.dL_Bandwidth)); - } - val_EUTRAlist->ref_value().select_id_ServedEUTRAcellsENDCX2ManagementList() - .push_back(*elm); - - return true; -} - -/*----------------------------------------------------------------------- - TESTS -------------------------------------------------------------------------- -*/ -void test_X2Setup_codec(void) -{ - x2ap_pdu_t* pdu = new_x2ap_pdu(); - - eNB_config cfg; - x2ap_create_X2SetupRequest(pdu, cfg); - - char pdu_str[1024]; - x2ap_asn_print(pdu, pdu_str, sizeof(pdu_str)); - printf("%s\n", pdu_str); - - //Test encode - unsigned char packed_buf[4096]; - char err_buf[1024]; - - int packed_len = x2ap_asn_per_encode(pdu, packed_buf, sizeof(packed_buf), - err_buf, sizeof(err_buf)); - if(packed_len != -1) { - printf("Encode successful, packed_len = %d\n", packed_len); - } else { - printf("Encode Error: %s\n", err_buf); - } - - //Test encode error - x2ap_pdu_t* pdu1 = new_x2ap_pdu(); - x2ap_init_X2SetupRequest(pdu1); - - int packed_len1 = x2ap_asn_per_encode(pdu1, packed_buf, sizeof(packed_buf), - err_buf, sizeof(err_buf)); - if(packed_len1 != -1) { - printf("Encode successful, packed_len = %d\n", packed_len1); - } else { - printf("Encode Error: %s\n", err_buf); - } - - //Test decode - x2ap_pdu_t* pdu2 = new_x2ap_pdu(); - int rc = x2ap_asn_per_decode(pdu2, packed_buf, packed_len, err_buf, sizeof(err_buf)); - if(rc == -1) { - printf("Decode error: %s\n", err_buf); - } else { - printf("Decode successful\n"); - } - - x2ap_asn_print(pdu2, pdu_str, sizeof(pdu_str)); - printf("%s\n", pdu_str); - - printf("index = %d\n", x2ap_get_index(pdu2)); - printf("procedureCode = %d\n", x2ap_get_procedureCode(pdu2)); - - - //Test decode error - x2ap_pdu_t* pdu3 = new_x2ap_pdu(); - int rc2 = x2ap_asn_per_decode(pdu3, packed_buf, 1, err_buf, sizeof(err_buf)); - if(rc2 == -1) { - printf("Decode error: %s\n", err_buf); - } else { - printf("Decode successful\n"); - } - - //Test X2SetupResponse - x2ap_pdu_t* pdu_resp = new_x2ap_pdu(); - x2ap_create_X2SetupResponse(pdu_resp, cfg); - x2ap_asn_print(pdu_resp, pdu_str, sizeof(pdu_str)); - printf("%s\n", pdu_str); - - //Test X2SetupFailure - x2ap_pdu_t* pdu_failure = new_x2ap_pdu(); - x2ap_create_X2SetupFailure(pdu_failure); - x2ap_asn_print(pdu_failure, pdu_str, sizeof(pdu_str)); - printf("%s \n", pdu_str); -} diff --git a/e2sim/previous/e2apv1sim/ricsim/src/ASN1/lib/asn_x2ap.hpp b/e2sim/previous/e2apv1sim/ricsim/src/ASN1/lib/asn_x2ap.hpp deleted file mode 100644 index d0c02d2..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/ASN1/lib/asn_x2ap.hpp +++ /dev/null @@ -1,72 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -#ifndef ASN_X2AP_HPP -#define ASN_X2AP_HPP - -#include -#include -#include - -#include "e2ap_config.hpp" - -typedef struct c__dummy00 x2ap_pdu_t; - -/*----------------------------------------------------------------------- - COMMON ROUTINES -------------------------------------------------------------------------- -*/ - -x2ap_pdu_t* new_x2ap_pdu(void); - -void x2ap_asn_print(x2ap_pdu_t* pdu, char* buf, size_t buf_size); - -int x2ap_asn_per_encode(x2ap_pdu_t* pdu, unsigned char* buf, size_t buf_size, - char* err_buf, size_t err_buf_size); - -int x2ap_asn_per_decode(x2ap_pdu_t* pdu, unsigned char const* buf, size_t buf_size, - char* err_buf, size_t err_buf_size); - -int x2ap_get_index(x2ap_pdu_t* pdu); - -int x2ap_get_procedureCode(x2ap_pdu_t* pdu); - -/*----------------------------------------------------------------------- - MESSAGE GENERATORS -------------------------------------------------------------------------- -*/ -//X2Setup -bool x2ap_init_X2SetupRequest(x2ap_pdu_t* pdu); - -bool x2ap_create_X2SetupRequest(x2ap_pdu_t* pdu, eNB_config &cfg); - -bool x2ap_create_X2SetupResponse(x2ap_pdu_t* pdu, eNB_config &cfg); - -bool x2ap_create_X2SetupFailure(x2ap_pdu_t* pdu); - -//ENDCX2Setup -bool x2ap_create_ENDCX2SetupRequest(x2ap_pdu_t* pdu, eNB_config &cfg); - -/*----------------------------------------------------------------------- - TESTS -------------------------------------------------------------------------- -*/ -void test_X2Setup_codec(void); - -#endif diff --git a/e2sim/previous/e2apv1sim/ricsim/src/ASN1/lib/asn_x2ap_wrapper.hpp b/e2sim/previous/e2apv1sim/ricsim/src/ASN1/lib/asn_x2ap_wrapper.hpp deleted file mode 100644 index 96ea81c..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/ASN1/lib/asn_x2ap_wrapper.hpp +++ /dev/null @@ -1,78 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ -#ifndef ASN_X2AP_PDU_WRAPPER_HPP -#define ASN_X2AP_PDU_WRAPPER_HPP - -#include -#include -#include - -#include -#include -#include -#include -#include -#include - -#define X2AP_PDU_DEFAULT_BUFFER_SIZE 4096 - -//Credit: copied from E2-Manager -struct X2APpduWrapper -{ - unsigned char* m_allocation_buffer; - size_t m_allocation_buffer_size; - - X2APpduWrapper(size_t allocation_buffer_size = X2AP_PDU_DEFAULT_BUFFER_SIZE) - { - m_allocation_buffer_size = allocation_buffer_size; - m_allocation_buffer = 0; - if (allocation_buffer_size) { - m_allocation_buffer = - new (std::nothrow) unsigned char[allocation_buffer_size]; - m_allocator.reset( - m_allocation_buffer, - m_allocation_buffer_size); // initialized correctly on - // allocation failure. - } - } - - ~X2APpduWrapper() - { - if (m_allocation_buffer) - delete[] m_allocation_buffer; - } - - asn::allocator& ref_allocator() { return m_allocator; } - - X2AP_PDU& ref_pdu() { return m_pdu; } - - // reset pdu and allocation buffer. Allows reusing. - void clear() - { - m_pdu.clear(); - m_allocator.reset(m_allocation_buffer, m_allocation_buffer_size); - } - - private: - X2AP_PDU m_pdu; - asn::allocator m_allocator; -}; - - -#endif diff --git a/e2sim/previous/e2apv1sim/ricsim/src/ASN1/lib/e2ap_config.hpp b/e2sim/previous/e2apv1sim/ricsim/src/ASN1/lib/e2ap_config.hpp deleted file mode 100644 index 9182ed1..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/ASN1/lib/e2ap_config.hpp +++ /dev/null @@ -1,160 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ -#ifndef E2AP_CONFIG_HPP -#define E2AP_CONFIG_HPP - -#include -#include - -enum enum_Transmission_Bandwidth { - enum_bw6, - enum_bw15, - enum_bw25, - enum_bw50, - enum_bw75, - enum_bw100, - enum_bw1 -}; - -enum enum_NRNRB{ - enum_nrb11, enum_nrb18, enum_nrb24, enum_nrb25, enum_nrb31, enum_nrb32, - enum_nrb38, enum_nrb51, enum_nrb52, enum_nrb65, enum_nrb66, enum_nrb78, - enum_nrb79, enum_nrb93, enum_nrb106, enum_nrb107, enum_nrb121, - enum_nrb132, enum_nrb133, enum_nrb135, enum_nrb160, enum_nrb162, - enum_nrb189, enum_nrb216, enum_nrb217, enum_nrb245, enum_nrb264, - enum_nrb270, enum_nrb273 -}; - -enum enum_NRSCS { - enum_scs15, enum_scs30, enum_scs60, enum_scs120 -}; - -class eNB_config { - public: - uint8_t* pLMN_Identity; - uint8_t* macro_eNB_ID; - int64_t pCI; - uint8_t* tAC; - uint8_t* eUTRANcellIdentifier; - - int64_t uL_EARFCN; - int64_t dL_EARFCN; - - enum_Transmission_Bandwidth uL_Bandwidth; - enum_Transmission_Bandwidth dL_Bandwidth; - - /*Default Constructor*/ - eNB_config() { - pLMN_Identity = (uint8_t*)"abc"; - macro_eNB_ID = (uint8_t*)"5"; - pCI = 0; - tAC = (uint8_t*)"ab"; - eUTRANcellIdentifier = (uint8_t*)"def"; - uL_EARFCN = 21400; - dL_EARFCN = 3400; - uL_Bandwidth = enum_bw25; - dL_Bandwidth = enum_bw50; - } -}; - -class gNB_config { - public: - uint8_t* pLMN_Identity; - uint8_t* gNB_ID; - int64_t nrpCI; - uint8_t* tAC; - uint8_t* nRcellIdentifier; - - int64_t uL_nRARFCN; - int64_t dL_nRARFCN; - - enum enum_NRNRB uL_NRNRB; - enum enum_NRNRB dL_NRNRB; - - enum enum_NRSCS uL_NRSCS; - enum enum_NRSCS dL_NRSCS; - - uint8_t ul_freqBandIndicatorNr; - uint8_t dl_freqBandIndicatorNr; - - std::string measurementTimingConfiguration; - - /*Default Constructor*/ - gNB_config() { - pLMN_Identity = (uint8_t*)"xyz"; - gNB_ID = (uint8_t*)"3"; - nrpCI = 1; - tAC = (uint8_t*)"ab"; - nRcellIdentifier = (uint8_t*)"gnb_id_123"; - uL_nRARFCN = 21400; - dL_nRARFCN = 21500; - - uL_NRNRB = enum_nrb11; - dL_NRNRB = enum_nrb121; - - uL_NRSCS = enum_scs15; - dL_NRSCS = enum_scs120; - - ul_freqBandIndicatorNr = 11; - dl_freqBandIndicatorNr = 12; - - measurementTimingConfiguration = "dummy timing"; - } -}; - -enum enum_RICactionType { - RICactionType_report, - RICactionType_insert, - RICactionType_policy -}; - -enum enum_RICcause { - RICcause_radioNetwork = 1, - RICcause_transport, - RICcause_protocol, - RICcause_misc, - RICcause_ric -}; - -struct RIC_action_t { - unsigned char action_id; - enum_RICactionType action_type; - bool isAdmitted = false; //for response/failure only - enum_RICcause notAdmitted_cause; //for response/failure only - unsigned int notAdmitted_subCause; //for response/failure only - - RIC_action_t() {;} - - RIC_action_t(unsigned char id, enum_RICactionType type) - { - action_id = id; - action_type = type; - } -}; - -struct RICsubscription_params_t { - uint16_t request_id = 0; - uint16_t seq_number = 0; - uint16_t ran_func_id = 0; - std::string event_trigger_def = ""; - - std::vector actionList; -} ; - -#endif diff --git a/e2sim/previous/e2apv1sim/ricsim/src/DEF/e2sim_defs.cpp b/e2sim/previous/e2apv1sim/ricsim/src/DEF/e2sim_defs.cpp deleted file mode 100644 index f1730d3..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/DEF/e2sim_defs.cpp +++ /dev/null @@ -1,125 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -#include "e2sim_defs.h" -#include -#include -#include - -char* time_stamp(void) -{ - timeval curTime; - gettimeofday(&curTime, NULL); - int milli = curTime.tv_usec / 1000; - - char buffer [80]; - strftime(buffer, 80, "%Y-%m-%d %H:%M:%S", localtime(&curTime.tv_sec)); - - const int time_buffer_len = 84; - static char currentTime[time_buffer_len] = ""; - snprintf(currentTime, time_buffer_len, "%s:%03d", buffer, milli); - - return currentTime; -} - -options_t read_input_options_old(int argc, char* argv[]) -{ - options_t options; - - options.server_ip = (char*)DEFAULT_SCTP_IP; - options.server_port = X2AP_SCTP_PORT; - - // Parse command line options - static struct option long_options[] = - { - {"ipv4", required_argument, 0, 'i'}, - {"ipv6", required_argument, 0, 'I'}, - {"port", required_argument, 0, 'p'}, - {"verbose", no_argument, 0, 'v'}, - }; - - while(1) - { - int option_index = 0; - - char c = getopt_long(argc, argv, "i:I:p:", long_options, &option_index); - - if(c == -1) - break; - - switch(c) - { - case 'i': - options.server_ip = optarg; - break; - case 'I': - break; - case 'p': - options.server_port = atoi(optarg); - if(options.server_port < 1 || options.server_port > 65535) - { - LOG_E("Invalid port number (%d). Valid values are between 1 and 65535.\n", - options.server_port); - exit(1); - } - break; - - default: - LOG_E("Error: unknown input option: %c\n", optopt); - exit(1); - } - } - - return options; -} - -options_t read_input_options(int argc, char *argv[]) -{ - options_t options; - - options.server_ip = (char*)DEFAULT_SCTP_IP; - options.server_port = X2AP_SCTP_PORT; - - if(argc == 3) //user provided IP and PORT - { - options.server_ip = argv[1]; - options.server_port = atoi(argv[2]); - if(options.server_port < 1 || options.server_port > 65535) { - LOG_E("Invalid port number (%d). Valid values are between 1 and 65535.\n", - options.server_port); - exit(1); - } - } - else if(argc == 2) //user provided only IP - { - options.server_ip = argv[1]; - } - else if(argc == 1) - { - options.server_ip = (char*)DEFAULT_SCTP_IP; - } - else - { - LOG_I("Unrecognized option.\n"); - LOG_I("Usage: %s [SERVER IP ADDRESS] [SERVER PORT]\n", argv[0]); - exit(1); - } - - return options; -} diff --git a/e2sim/previous/e2apv1sim/ricsim/src/DEF/e2sim_defs.h b/e2sim/previous/e2apv1sim/ricsim/src/DEF/e2sim_defs.h deleted file mode 100644 index cf4a0d6..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/DEF/e2sim_defs.h +++ /dev/null @@ -1,65 +0,0 @@ -/* - * - * Copyright 2019 AT&T Intellectual Property - * Copyright 2019 Nokia - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -#ifndef E2SIM_DEFS_H -#define E2SIM_DEFS_H - -// #include -#include -#include - -#define VERSION "1.2.0" //May 2019 -#define DEFAULT_SCTP_IP "127.0.0.1" -#define X2AP_PPID (452984832) //27 = 1b, PPID = 1b000000(hex) -> 452984832(dec) -#define X2AP_SCTP_PORT 36421 -#define RIC_SCTP_SRC_PORT 36422 -#define MAX_SCTP_BUFFER 10000 -#define WORKDIR_ENV "E2SIM_DIR" //environment variable - -char* time_stamp(void); - -// #define LOG_I(...) {printf("[%s]", time_stamp()); printf(__VA_ARGS__); printf("\n");} -// #define LOG_E(...) {printf("[%s]", time_stamp()); printf(__VA_ARGS__); printf("\n");} -// #define LOG_D(...) {printf("[%s]", time_stamp()); printf(__VA_ARGS__); printf("\n");} - -#define LOG_I(...) {printf(__VA_ARGS__); printf("\n");} -#define LOG_E(...) {printf(__VA_ARGS__); printf("\n");} -#define LOG_D(...) {printf(__VA_ARGS__); printf("\n");} - -typedef struct SCTP_DATA { - unsigned char *data; - int len; -} sctp_data_t; - -typedef struct { - unsigned char buffer[MAX_SCTP_BUFFER]; - int len; -} sctp_buffer_t; - -typedef struct { - char* server_ip; - int server_port; - //... extend as needed -} options_t; - -options_t read_input_options(int argc, char *argv[]); - -#define min(a, b) ((a) < (b)) ? (a) : (b) - -#endif diff --git a/e2sim/previous/e2apv1sim/ricsim/src/E2AP/E2SM/e2sm.c b/e2sim/previous/e2apv1sim/ricsim/src/E2AP/E2SM/e2sm.c deleted file mode 100644 index 6cad6cd..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/E2AP/E2SM/e2sm.c +++ /dev/null @@ -1,196 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ -#include "e2sm.h" - -#include "ActionParameter-Item.h" -#include "ActionParameter-Value.h" -#include "PLMN-Identity.h" -#include "GlobalENB-ID.h" -#include "GlobalGNB-ID.h" -#include "Interface-ID.h" -#include "ProtocolIE-Field.h" -#include "InterfaceMessageType.h" -#include "InterfaceProtocolIE-Item.h" - -static PLMN_Identity_t *createPLMN_ID(const unsigned char *data) { - - PLMN_Identity_t *plmnId = calloc(1, sizeof(PLMN_Identity_t)); - ASN_STRUCT_RESET(asn_DEF_PLMN_Identity, plmnId); - plmnId->size = 3; - plmnId->buf = calloc(1, 3); - memcpy(plmnId->buf, data, 3); - - return plmnId; -} - -static GNB_ID_t *createGnb_id(const unsigned char *data, int numOfBits) { - - if (numOfBits < 22 || numOfBits > 32) { - printf("[Error] GNB_ID_t number of bits = %d, needs to be 22 .. 32", numOfBits); - return NULL; - } - - GNB_ID_t *gnb = calloc(1, sizeof(GNB_ID_t)); - ASN_STRUCT_RESET(asn_DEF_GNB_ID, gnb); - - gnb->present = GNB_ID_PR_gNB_ID; - gnb->choice.gNB_ID.size = numOfBits % 8 == 0 ? (unsigned int)(numOfBits / 8) : (unsigned int)(numOfBits / 8 + 1); - gnb->choice.gNB_ID.bits_unused = gnb->choice.gNB_ID.size * 8 - numOfBits; - gnb->choice.gNB_ID.buf = calloc(1, gnb->choice.gNB_ID.size); - memcpy(gnb->choice.gNB_ID.buf, data, gnb->choice.gNB_ID.size); - gnb->choice.gNB_ID.buf[gnb->choice.gNB_ID.size - 1] = - ((unsigned)(gnb->choice.gNB_ID.buf[gnb->choice.gNB_ID.size - 1] >> (unsigned)gnb->choice.gNB_ID.bits_unused) - << (unsigned)gnb->choice.gNB_ID.bits_unused); - - return gnb; -} - -static GlobalGNB_ID_t *createGlobalGNB_ID(PLMN_Identity_t *plmnIdentity, GNB_ID_t *gnb) { - - GlobalGNB_ID_t *ggnbId = calloc(1, sizeof(GlobalGNB_ID_t)); - ASN_STRUCT_RESET(asn_DEF_GlobalGNB_ID, ggnbId); - - memcpy(&ggnbId->pLMN_Identity, plmnIdentity, sizeof(PLMN_Identity_t)); - memcpy(&ggnbId->gNB_ID, gnb, sizeof(GNB_ID_t)); - - return ggnbId; -} - -static Interface_ID_t *createInterfaceIDForGnb(GlobalGNB_ID_t *gnb) { - - Interface_ID_t *interfaceId = calloc(1, sizeof(Interface_ID_t)); - ASN_STRUCT_RESET(asn_DEF_Interface_ID, interfaceId); - - interfaceId->present = Interface_ID_PR_global_gNB_ID; - interfaceId->choice.global_gNB_ID = gnb; - - return interfaceId; -} - -static InterfaceMessageType_t *createInterfaceMessageInitiating(long procedureCode) { - - InterfaceMessageType_t *intMsgT = calloc(1, sizeof(InterfaceMessageType_t)); - ASN_STRUCT_RESET(asn_DEF_InterfaceMessageType, intMsgT); - - intMsgT->procedureCode = procedureCode; - intMsgT->typeOfMessage = TypeOfMessage_initiating_message; - - return intMsgT; -} - -E2SM_gNB_X2_eventTriggerDefinition_t* create_eventTriggerDefinition(void) -{ - //PLMN_Identity - unsigned char plmnidData[3] = {0x33, 0xF4, 0x55}; - PLMN_Identity_t *plmnid = createPLMN_ID(plmnidData); - // xer_fprint(stdout, &asn_DEF_PLMN_Identity, (void *)plmnid); - - //GNB_ID - unsigned char gnbData[3] = {0x99, 0xaa, 0xbb}; - GNB_ID_t *gnb = createGnb_id(gnbData, 26); - // xer_fprint(stdout, &asn_DEF_GNB_ID, (void *)gnb); - - //GlobalGNB_ID - GlobalGNB_ID_t *globaGnb = createGlobalGNB_ID(plmnid, gnb); - // xer_fprint(stdout, &asn_DEF_GlobalGNB_ID, (void *)globaGnb); - - //Interface_ID - Interface_ID_t *gnbInterfaceId = createInterfaceIDForGnb(globaGnb); - // xer_fprint(stdout, &asn_DEF_Interface_ID, (void *)gnbInterfaceId); - - //InterfaceMessageType - InterfaceMessageType_t *initiatingInterface = createInterfaceMessageInitiating(35); - - //EventTriggerDefinition - E2SM_gNB_X2_eventTriggerDefinition_t *eventTrigger = calloc(1, sizeof(E2SM_gNB_X2_eventTriggerDefinition_t)); - ASN_STRUCT_RESET(asn_DEF_E2SM_gNB_X2_eventTriggerDefinition, eventTrigger); - - memcpy(&eventTrigger->interface_ID , gnbInterfaceId, sizeof(Interface_ID_t)); - - eventTrigger->interfaceDirection = 0; - memcpy(&eventTrigger->interfaceMessageType, initiatingInterface, sizeof(InterfaceMessageType_t)); - - return eventTrigger; -} - -#define E2AP_ASN1C_FIND_PROTOCOLIE_BY_ID(IE_TYPE, ie, container, IE_ID) \ - do {\ - IE_TYPE **ptr; \ - ie = NULL; \ - for (ptr = container->protocolIEs.list.array; \ - ptr < &container->protocolIEs.list.array[container->protocolIEs.list.count]; \ - ptr++) { \ - if((*ptr)->id == IE_ID) { \ - ie = *ptr; \ - break; \ - } \ - } \ - } while(0) - - -void test_eventTriggerDefinition(void) -{ - E2SM_gNB_X2_eventTriggerDefinition_t *eventTrigger = create_eventTriggerDefinition(); - - xer_fprint(stdout, &asn_DEF_E2SM_gNB_X2_eventTriggerDefinition, (void *)eventTrigger); - printf("\n"); - - uint8_t *eventBuff; - int eventBuff_len; - - eventBuff_len = aper_encode_to_new_buffer(&asn_DEF_E2SM_gNB_X2_eventTriggerDefinition, - 0, eventTrigger, (void **)&eventBuff); - - LOG_I("Encoded eventBuff_len = %d", eventBuff_len); - - //----------------------------------------------------------------------- - E2AP_PDU_t* pdu = e2ap_xml_to_pdu("E2AP_RICsubscriptionRequest.xml"); - e2ap_asn1c_print_pdu(pdu); - - InitiatingMessage_t *initiatingMessage = pdu->choice.initiatingMessage; - xer_fprint(stdout, &asn_DEF_InitiatingMessage, (void *)initiatingMessage); - - RICsubscriptionRequest_t *request = &initiatingMessage->value.choice.RICsubscriptionRequest; - xer_fprint(stdout, &asn_DEF_RICsubscriptionRequest, (void *)request); - - LOG_I("num of IEs = %d", request->protocolIEs.list.count); - - - RICsubscriptionRequest_IEs_t *ie; - - ie = request->protocolIEs.list.array[2]; - - // E2AP_ASN1C_FIND_PROTOCOLIE_BY_ID(RICsubscriptionRequest_IEs_t, ie, request, ProtocolIE_ID_id_RICsubscription); - // E2AP_ASN1C_FIND_PROTOCOLIE_BY_ID(RICsubscriptionRequest_IEs_t, ie, request, ProtocolIE_ID_id_RICrequestID); - - assert( ie != NULL); - - xer_fprint(stdout, &asn_DEF_RICsubscription, (void *)ie); - // xer_fprint(stdout, &asn_DEF_RICrequestID, (void *)ie); - - -} - -// -// typedef struct ProtocolIE_Container_119P0 { -// A_SEQUENCE_OF(struct RICsubscriptionRequest_IEs) list; -// -// /* Context for parsing across buffer boundaries */ -// asn_struct_ctx_t _asn_ctx; -// } ProtocolIE_Container_119P0_t; diff --git a/e2sim/previous/e2apv1sim/ricsim/src/E2AP/E2SM/e2sm.h b/e2sim/previous/e2apv1sim/ricsim/src/E2AP/E2SM/e2sm.h deleted file mode 100644 index 19f30a2..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/E2AP/E2SM/e2sm.h +++ /dev/null @@ -1,30 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ -#ifndef E2SM_H -#define E2SM_H - -#include "E2SM-gNB-X2-eventTriggerDefinition.h" -#include "E2AP-PDU.h" -#include "e2ap_asn1c_codec.h" - -E2SM_gNB_X2_eventTriggerDefinition_t* create_eventTriggerDefinition(void); - -void test_eventTriggerDefinition(void); - -#endif diff --git a/e2sim/previous/e2apv1sim/ricsim/src/E2AP/XML/E2AP_ENDCX2SetupFailure.xml b/e2sim/previous/e2apv1sim/ricsim/src/E2AP/XML/E2AP_ENDCX2SetupFailure.xml deleted file mode 100644 index 633baee..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/E2AP/XML/E2AP_ENDCX2SetupFailure.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - 36 - - - - - - 5 - - - - - - - - - - - - diff --git a/e2sim/previous/e2apv1sim/ricsim/src/E2AP/XML/E2AP_ENDCX2SetupRequest.xml b/e2sim/previous/e2apv1sim/ricsim/src/E2AP/XML/E2AP_ENDCX2SetupRequest.xml deleted file mode 100644 index ddb071a..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/E2AP/XML/E2AP_ENDCX2SetupRequest.xml +++ /dev/null @@ -1,67 +0,0 @@ - - - 36 - - - - - - 244 - - - - - - 21 - - - - 61 62 63 - - - 00110101000000000001 - - - - - - - 250 - - - - - - 0 - - 61 62 63 - - 0110010001100101011001100000 - - - 61 62 - - 61 62 63 - - - - 21400 - 3400 - - - - - - - - - - - - - - - - - - diff --git a/e2sim/previous/e2apv1sim/ricsim/src/E2AP/XML/E2AP_ENDCX2SetupResponse.xml b/e2sim/previous/e2apv1sim/ricsim/src/E2AP/XML/E2AP_ENDCX2SetupResponse.xml deleted file mode 100644 index 896eed6..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/E2AP/XML/E2AP_ENDCX2SetupResponse.xml +++ /dev/null @@ -1,97 +0,0 @@ - - - 36 - - - - - - 246 - - - - - - 252 - - - - 02 F8 29 - - - 000000000001001000110100 - - - - - - - 253 - - - - - - 99 - - 02 F8 29 - - 000000000000011110101011000000010010 - - - - 02 F8 29 - - - - - 100 - - - 9 - - - 9 - - - - - - - 100 - - - 9 - - - 9 - - - - - - - - - - - - - - - - 04 05 - - - - - - - - - - - - - - diff --git a/e2sim/previous/e2apv1sim/ricsim/src/E2AP/XML/E2AP_ErrorIndication.xml b/e2sim/previous/e2apv1sim/ricsim/src/E2AP/XML/E2AP_ErrorIndication.xml deleted file mode 100644 index 8974693..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/E2AP/XML/E2AP_ErrorIndication.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - 3 - - - - - - 5 - - - - - - - - - - - - diff --git a/e2sim/previous/e2apv1sim/ricsim/src/E2AP/XML/E2AP_PartSetupRequest.xml b/e2sim/previous/e2apv1sim/ricsim/src/E2AP/XML/E2AP_PartSetupRequest.xml deleted file mode 100644 index 43db78a..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/E2AP/XML/E2AP_PartSetupRequest.xml +++ /dev/null @@ -1 +0,0 @@ -400 01 02 030000001010110000001100001010 diff --git a/e2sim/previous/e2apv1sim/ricsim/src/E2AP/XML/E2AP_PartSetupRequest.xml~ b/e2sim/previous/e2apv1sim/ricsim/src/E2AP/XML/E2AP_PartSetupRequest.xml~ deleted file mode 100644 index b2343b9..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/E2AP/XML/E2AP_PartSetupRequest.xml~ +++ /dev/null @@ -1 +0,0 @@ -1400 01 02 030000001010110000001100001010 diff --git a/e2sim/previous/e2apv1sim/ricsim/src/E2AP/XML/E2AP_RICindication_type1.xml b/e2sim/previous/e2apv1sim/ricsim/src/E2AP/XML/E2AP_RICindication_type1.xml deleted file mode 100644 index e4e3f38..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/E2AP/XML/E2AP_RICindication_type1.xml +++ /dev/null @@ -1,74 +0,0 @@ - - - 205 - - - - - - 60030 - - - - 6 - 12 - - - - - 60003 - - - 10 - - - - 60017 - - - 100 - - - - 60028 - - - 100 - - - - 60029 - - - - - - - 60026 - - - 10 74 68 65 10 68 65 6C 40 - - - - 60027 - - - - 00 1B 40 80 80 00 00 08 00 6F 00 02 00 0C 00 F8 - 00 05 08 4D 86 D6 40 00 CB 00 20 31 32 33 34 35 - 36 37 38 39 31 32 33 34 35 36 37 38 39 31 32 33 - 34 35 36 37 38 39 31 32 33 34 35 00 CC 00 06 08 - 07 D0 20 03 E8 00 CE 00 0C 0B 49 6E 66 6F 72 6D - 61 74 69 6F 6E 01 17 00 08 00 33 32 31 34 35 36 - 30 01 13 00 01 22 00 CD 00 1B 00 00 D1 00 16 1A - 11 50 00 08 21 09 E0 41 41 42 42 43 43 44 44 45 - 45 5A 5A 59 58 - - - - - - - - diff --git a/e2sim/previous/e2apv1sim/ricsim/src/E2AP/XML/E2AP_RICindication_type2.xml b/e2sim/previous/e2apv1sim/ricsim/src/E2AP/XML/E2AP_RICindication_type2.xml deleted file mode 100644 index 92bc727..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/E2AP/XML/E2AP_RICindication_type2.xml +++ /dev/null @@ -1,74 +0,0 @@ - - - 205 - - - - - - 60030 - - - - 6 - 12 - - - - - 60003 - - - 10 - - - - 60017 - - - 100 - - - - 60028 - - - 100 - - - - 60029 - - - - - - - 60026 - - - 10 74 68 65 10 68 65 6C 40 - - - - 60027 - - - - 00 1B 40 80 80 00 00 08 00 6F 00 02 00 0C 00 F8 - 00 05 08 4D 86 D6 40 00 CB 00 20 31 32 33 34 35 - 36 37 38 39 31 32 33 34 35 36 37 38 39 31 32 33 - 34 35 36 37 38 39 31 32 33 34 35 00 CC 00 06 08 - 07 D0 20 03 E8 00 CE 00 0C 0B 49 6E 66 6F 72 6D - 61 74 69 6F 6E 01 17 00 08 00 33 32 31 34 35 36 - 30 01 13 00 01 23 00 CD 00 1B 00 00 D1 00 16 1A - 11 50 00 08 21 09 E0 41 41 42 42 43 43 44 44 45 - 45 5A 5A 59 58 - - - - - - - - diff --git a/e2sim/previous/e2apv1sim/ricsim/src/E2AP/XML/E2AP_RICsubscriptionRequest.xml b/e2sim/previous/e2apv1sim/ricsim/src/E2AP/XML/E2AP_RICsubscriptionRequest.xml deleted file mode 100644 index ab3ea11..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/E2AP/XML/E2AP_RICsubscriptionRequest.xml +++ /dev/null @@ -1,50 +0,0 @@ - - - 201 - - - - - - 60030 - - - - 1 - 200 - - - - - 60003 - - - 33 - - - - 60033 - - - - 00 01 02 03 40 0b 16 02 00 23 40 - - - 60011 - - - - 255 - - - - - - - - - - - - - diff --git a/e2sim/previous/e2apv1sim/ricsim/src/E2AP/XML/E2AP_RICsubscriptionRequest_Ashwin.xml b/e2sim/previous/e2apv1sim/ricsim/src/E2AP/XML/E2AP_RICsubscriptionRequest_Ashwin.xml deleted file mode 100644 index 524f7af..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/E2AP/XML/E2AP_RICsubscriptionRequest_Ashwin.xml +++ /dev/null @@ -1,50 +0,0 @@ - - - 201 - - - - - - 60030 - - - - 2 - 1 - - - - - 60003 - - - 0 - - - - 60033 - - - - 10 54 65 73 10 54 65 73 40 1B 40 - - - 60011 - - - - 4 - - - - - - - - - - - - - diff --git a/e2sim/previous/e2apv1sim/ricsim/src/E2AP/XML/E2AP_RICsubscriptionResponse.xml b/e2sim/previous/e2apv1sim/ricsim/src/E2AP/XML/E2AP_RICsubscriptionResponse.xml deleted file mode 100644 index b7ea847..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/E2AP/XML/E2AP_RICsubscriptionResponse.xml +++ /dev/null @@ -1,46 +0,0 @@ - - - 201 - - - - - - 60030 - - - - 2 - 205 - - - - - 60003 - - - 0 - - - - 60012 - - - - - 60013 - - - - 1 - - - - - - - - - - - diff --git a/e2sim/previous/e2apv1sim/ricsim/src/E2AP/XML/E2AP_ResourceStatusFailure.xml b/e2sim/previous/e2apv1sim/ricsim/src/E2AP/XML/E2AP_ResourceStatusFailure.xml deleted file mode 100644 index 9898d55..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/E2AP/XML/E2AP_ResourceStatusFailure.xml +++ /dev/null @@ -1,35 +0,0 @@ - - - 9 - - - - - - 39 - - - 1 - - - - 40 - - - 74 - - - - 5 - - - - - - - - - - - - diff --git a/e2sim/previous/e2apv1sim/ricsim/src/E2AP/XML/E2AP_ResourceStatusRequest.xml b/e2sim/previous/e2apv1sim/ricsim/src/E2AP/XML/E2AP_ResourceStatusRequest.xml deleted file mode 100644 index a807971..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/E2AP/XML/E2AP_ResourceStatusRequest.xml +++ /dev/null @@ -1,85 +0,0 @@ - - - 9 - - - - - - 39 - - - 1 - - - - 28 - - - - - - - 38 - - - - 11111110000000000000000000000000 - - - - - 29 - - - - - 31 - - - - - 13 30 23 - - 0000001010110000001100001010 - - - - - - - - - - 30 - - - - - - - 64 - - - - - - - 109 - - - - - - - 145 - - - - - - - - - - diff --git a/e2sim/previous/e2apv1sim/ricsim/src/E2AP/XML/E2AP_ResourceStatusRequest_bad.xml b/e2sim/previous/e2apv1sim/ricsim/src/E2AP/XML/E2AP_ResourceStatusRequest_bad.xml deleted file mode 100644 index 6968e71..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/E2AP/XML/E2AP_ResourceStatusRequest_bad.xml +++ /dev/null @@ -1,85 +0,0 @@ - - - 9 - - - - - - 39 - - - 1 - - - - 28 - - - - - - - 38 - - - - 00000000000000000000000000000000 - - - - - 29 - - - - - 31 - - - - - 02 07 9f - - 0010101100000000001100001010 - - - - - - - - - - 30 - - - - - - - 64 - - - - - - - 109 - - - - - - - 145 - - - - - - - - - - diff --git a/e2sim/previous/e2apv1sim/ricsim/src/E2AP/XML/E2AP_ResourceStatusResponse.xml b/e2sim/previous/e2apv1sim/ricsim/src/E2AP/XML/E2AP_ResourceStatusResponse.xml deleted file mode 100644 index 12542a8..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/E2AP/XML/E2AP_ResourceStatusResponse.xml +++ /dev/null @@ -1,134 +0,0 @@ - - - 9 - - - - - - 39 - - - 1 - - - - 40 - - - 75 - - - - 65 - - - - - 66 - - - - - 13 30 23 - - 0000001010110000001100001010 - - - - - 67 - - - - - 00000010000000000000000000000000 - - - - - - - - - 67 - - - - - 00000100000000000000000000000000 - - - - - - - - - 67 - - - - - 00001000000000000000000000000000 - - - - - - - - - 67 - - - - - 00100000000000000000000000000000 - - - - - - - - - 67 - - - - - 01000000000000000000000000000000 - - - - - - - - - 67 - - - - - 10000000000000000000000000000000 - - - - - - - - - - - - - - - - - - - diff --git a/e2sim/previous/e2apv1sim/ricsim/src/E2AP/XML/E2AP_ResourceStatusUpdate.xml b/e2sim/previous/e2apv1sim/ricsim/src/E2AP/XML/E2AP_ResourceStatusUpdate.xml deleted file mode 100644 index b5630bc..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/E2AP/XML/E2AP_ResourceStatusUpdate.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - 10 - - - - - - 39 - - - 1 - - - - 40 - - - 75 - - - - 32 - - - - - 33 - - - - - 13 30 23 - - 0000001010110000001100001010 - - - - - 42 - - - - - 100 - 99 - - - 100 - 99 - - - - - - - - - - - - - - - - diff --git a/e2sim/previous/e2apv1sim/ricsim/src/E2AP/XML/E2AP_SetupRequest.xml b/e2sim/previous/e2apv1sim/ricsim/src/E2AP/XML/E2AP_SetupRequest.xml deleted file mode 100644 index b2343b9..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/E2AP/XML/E2AP_SetupRequest.xml +++ /dev/null @@ -1 +0,0 @@ -1400 01 02 030000001010110000001100001010 diff --git a/e2sim/previous/e2apv1sim/ricsim/src/E2AP/XML/E2AP_SetupRequest.xml~ b/e2sim/previous/e2apv1sim/ricsim/src/E2AP/XML/E2AP_SetupRequest.xml~ deleted file mode 100644 index b2343b9..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/E2AP/XML/E2AP_SetupRequest.xml~ +++ /dev/null @@ -1 +0,0 @@ -1400 01 02 030000001010110000001100001010 diff --git a/e2sim/previous/e2apv1sim/ricsim/src/E2AP/XML/E2AP_SetupRequest2.xml b/e2sim/previous/e2apv1sim/ricsim/src/E2AP/XML/E2AP_SetupRequest2.xml deleted file mode 100644 index 6d8c654..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/E2AP/XML/E2AP_SetupRequest2.xml +++ /dev/null @@ -1,30 +0,0 @@ - - - 1 - - - - - - 4 - - - - - - 70 6C 6D 6E 33 - - - 01100111011011100110001000110001 - - - - - - - - - - - - diff --git a/e2sim/previous/e2apv1sim/ricsim/src/E2AP/XML/E2AP_X2SetupFailure.xml b/e2sim/previous/e2apv1sim/ricsim/src/E2AP/XML/E2AP_X2SetupFailure.xml deleted file mode 100644 index 53acf31..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/E2AP/XML/E2AP_X2SetupFailure.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - 6 - - - - - - 5 - - - - - - - - - - - - diff --git a/e2sim/previous/e2apv1sim/ricsim/src/E2AP/XML/E2AP_X2SetupRequest.xml b/e2sim/previous/e2apv1sim/ricsim/src/E2AP/XML/E2AP_X2SetupRequest.xml deleted file mode 100644 index 9f0f286..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/E2AP/XML/E2AP_X2SetupRequest.xml +++ /dev/null @@ -1,57 +0,0 @@ - - - 6 - - - - - - 21 - - - - 13 30 23 - - - 11111111111111111111 - - - - - - - 20 - - - - - - 503 - - 13 30 23 - - 1111111111111111111100000000 - - - 00 00 - - 13 30 23 - - - - 0 - 0 - - - - - - - - - - - - - - diff --git a/e2sim/previous/e2apv1sim/ricsim/src/E2AP/XML/E2AP_X2SetupResponse.xml b/e2sim/previous/e2apv1sim/ricsim/src/E2AP/XML/E2AP_X2SetupResponse.xml deleted file mode 100644 index af42d5b..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/E2AP/XML/E2AP_X2SetupResponse.xml +++ /dev/null @@ -1,97 +0,0 @@ - - - 6 - - - - - - 21 - - - - 13 30 23 - - - 00000010101100000011 - - - - - - - 20 - - - - - - 308 - - 13 30 23 - - 0000001010110000001100001010 - - - 64 03 - - 13 30 23 - - - - 18650 - 650 - - - - - - - 41 - - - - - - - 55 - - - - 344 - 12 - - 5 - - - - - 160 - - - - - - - - - - - - - 24 - - - - - 13 30 23 - 80 00 - - - - - - - - - diff --git a/e2sim/previous/e2apv1sim/ricsim/src/E2AP/XML/GlobalE2node-ID.xml b/e2sim/previous/e2apv1sim/ricsim/src/E2AP/XML/GlobalE2node-ID.xml deleted file mode 100644 index dd21201..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/E2AP/XML/GlobalE2node-ID.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - 70 6C 6D 6E 33 - - - 01100111011011100110001000110001 - - - - - diff --git a/e2sim/previous/e2apv1sim/ricsim/src/E2AP/XML/reference_constants.txt b/e2sim/previous/e2apv1sim/ricsim/src/E2AP/XML/reference_constants.txt deleted file mode 100644 index b9a3b54..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/E2AP/XML/reference_constants.txt +++ /dev/null @@ -1,16 +0,0 @@ -/* Dependencies */ -typedef enum Criticality { - Criticality_reject = 0, - Criticality_ignore = 1, - Criticality_notify = 2 -} e_Criticality; - - --- Event Trigger Definition OCTET STRING contents -E2SM-gNB-X2-eventTriggerDefinition ::= SEQUENCE{ - interface-ID Interface-ID, - interfaceDirection InterfaceDirection, - interfaceMessageType InterfaceMessageType, - interfaceProtocolIE-List SEQUENCE (SIZE(1..maxofInterfaceProtocolIE)) OF InterfaceProtocolIE-Item OPTIONAL, - ... -} diff --git a/e2sim/previous/e2apv1sim/ricsim/src/E2AP/e2ap_asn1c_codec.c b/e2sim/previous/e2apv1sim/ricsim/src/E2AP/e2ap_asn1c_codec.c deleted file mode 100644 index f76032d..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/E2AP/e2ap_asn1c_codec.c +++ /dev/null @@ -1,229 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ -#include "e2ap_asn1c_codec.h" - - -void e2ap_asn1c_print_pdu(const E2AP_PDU_t* pdu) -{ - printf("before\n"); - // xer_fprint(stdout, &asn_DEF_E2AP_PDU, (void *)pdu); - xer_fprint(stdout, &asn_DEF_E2AP_PDU, pdu); - printf("after\n"); - printf("\n"); -} - -void asn1c_xer_print(asn_TYPE_descriptor_t *typeDescriptor, void *data) -{ - xer_fprint(stdout, typeDescriptor, (void *)data); - printf("\n"); -} - - -E2AP_PDU_t* e2ap_xml_to_pdu(char const* xml_message) -{ - // E2AP_PDU_t *pdu = new E2AP_PDU_t(); - E2AP_PDU_t *pdu = calloc(1, sizeof(E2AP_PDU_t)); - - assert(pdu != 0); - - printf("xmlpdu1\n"); - - uint8_t buf[MAX_XML_BUFFER]; - asn_dec_rval_t rval; - size_t size; - FILE *f; - - char XML_path[300]; - char *work_dir = getenv(WORKDIR_ENV); - - printf("xmlpdu2\n"); - - strcpy(XML_path, work_dir); - strcat(XML_path, E2AP_XML_DIR); - strcat(XML_path, xml_message); - - printf("xmlpdu4\n"); - - LOG_D("Generate E2AP PDU from XML file: %s\n", XML_path); - memset(buf, 0, sizeof(buf)); - - printf("xmlpdu3\n"); - - f = fopen(XML_path, "r"); - if(!f){ - LOG_E("Unable to open %s. Make sure you have set the Environment Variable E2SIM_DIR, see README", XML_path) - } - - printf("xmlpdu5\n"); - - assert(f); - - printf("xmlpdu6\n"); - - size = fread(buf, 1, sizeof(buf), f); - if(size == 0 || size == sizeof(buf)) - { - LOG_E("Input too long: %s", XML_path); - exit(1); - } - - fclose(f); - - printf("xmlpdu7\n"); - - rval = xer_decode(0, &asn_DEF_E2AP_PDU, (void **)&pdu, buf, size); - - printf("xmlpdu8\n"); - - assert(rval.code == RC_OK); - - return pdu; -} - - -E2setupRequest_t* smaller_e2ap_xml_to_pdu(char const* xml_message) -{ - // E2AP_PDU_t *pdu = new E2AP_PDU_t(); - E2AP_PDU_t *pdu = calloc(1, sizeof(E2AP_PDU_t)); - - // GlobalE2node_ID_t *globale2nodeid = (GlobalE2node_ID_t*)calloc(1, sizeof(GlobalE2node_ID_t)); - GlobalE2node_ID_t *globale2nodeid = (GlobalE2node_ID_t*)calloc(1, sizeof(GlobalE2node_ID_t)); - E2setupRequest_t *e2setuprequest = (E2setupRequest_t*)calloc(1,sizeof(E2setupRequest_t)); - - printf("xmlpdu1\n"); - - uint8_t buf[MAX_XML_BUFFER]; - asn_dec_rval_t rval; - size_t size; - FILE *f; - - char XML_path[300]; - char *work_dir = getenv(WORKDIR_ENV); - - printf("xmlpdu2\n"); - - strcpy(XML_path, work_dir); - strcat(XML_path, E2AP_XML_DIR); - strcat(XML_path, xml_message); - - printf("xmlpdu4\n"); - - LOG_D("Generate E2AP PDU from XML file: %s\n", XML_path); - memset(buf, 0, sizeof(buf)); - - printf("xmlpdu3\n"); - - f = fopen(XML_path, "r"); - if(!f){ - LOG_E("Unable to open %s. Make sure you have set the Environment Variable E2SIM_DIR, see README", XML_path) - } - - printf("xmlpdu5\n"); - - assert(f); - - printf("xmlpdu6\n"); - - size = fread(buf, 1, sizeof(buf), f); - if(size == 0 || size == sizeof(buf)) - { - LOG_E("Input too long: %s", XML_path); - exit(1); - } - - fclose(f); - - printf("xmlpdu7\n"); - - rval = xer_decode(0, &asn_DEF_E2setupRequest, (void **)&e2setuprequest, buf, size); - - printf("xmlpdu8\n"); - - assert(rval.code == RC_OK); - - return e2setuprequest; -} - - -int e2ap_asn1c_encode_pdu(E2AP_PDU_t* pdu, unsigned char **buffer) -{ - int len; - - *buffer = NULL; - assert(pdu != NULL); - assert(buffer != NULL); - - len = aper_encode_to_new_buffer(&asn_DEF_E2AP_PDU, 0, pdu, (void **)buffer); - - if (len < 0) { - LOG_E("[E2AP ASN] Unable to aper encode"); - exit(1); - } - else { - LOG_D("[E2AP ASN] Encoded succesfully, encoded size = %d", len); - } - - ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_E2AP_PDU, pdu); - - return len; -} - -void e2ap_asn1c_decode_pdu(E2AP_PDU_t* pdu, unsigned char *buffer, int len) -{ - asn_dec_rval_t dec_ret; - - assert(buffer != NULL); - - dec_ret = aper_decode(NULL, &asn_DEF_E2AP_PDU, (void **)&pdu, buffer, len, 0, 0); - - if (dec_ret.code != RC_OK) { - LOG_E("[E2AP ASN] Failed to decode pdu"); - exit(1); - } - else { - LOG_D("[E2AP ASN] Decoded succesfully"); - } -} - -int e2ap_asn1c_get_procedureCode(E2AP_PDU_t* pdu) -{ - int procedureCode = -1; - - switch(pdu->present) - { - case E2AP_PDU_PR_initiatingMessage: - fprintf(stderr,"initiating message\n"); - procedureCode = pdu->choice.initiatingMessage->procedureCode; - break; - - case E2AP_PDU_PR_successfulOutcome: - procedureCode = pdu->choice.successfulOutcome->procedureCode; - break; - - case E2AP_PDU_PR_unsuccessfulOutcome: - procedureCode = pdu->choice.unsuccessfulOutcome->procedureCode; - break; - - default: - LOG_E("[E2AP] Error: Unknown index %d in E2AP PDU", (int)pdu->present); - break; - } - - return procedureCode; -} diff --git a/e2sim/previous/e2apv1sim/ricsim/src/E2AP/e2ap_asn1c_codec.h b/e2sim/previous/e2apv1sim/ricsim/src/E2AP/e2ap_asn1c_codec.h deleted file mode 100644 index 314fd63..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/E2AP/e2ap_asn1c_codec.h +++ /dev/null @@ -1,48 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ -#ifndef E2AP_ASN1C_CODEC_H -#define E2AP_ASN1C_CODEC_H - -#include "e2sim_defs.h" -#include "E2AP-PDU.h" -#include "InitiatingMessage.h" -#include "SuccessfulOutcome.h" -#include "UnsuccessfulOutcome.h" - -#include "GlobalE2node-ID.h" -#include "E2setupRequest.h" - -#define ASN1C_PDU_PRINT_BUFFER 4096 -#define MAX_XML_BUFFER 10000 -#define E2AP_XML_DIR "/src/E2AP/XML/" - -void e2ap_asn1c_print_pdu(const E2AP_PDU_t* pdu); - -void asn1c_xer_print(asn_TYPE_descriptor_t *typeDescriptor, void *data); - -E2AP_PDU_t* e2ap_xml_to_pdu(char const* xml_message); -E2setupRequest_t* smaller_e2ap_xml_to_pdu(char const* xml_message); - -int e2ap_asn1c_encode_pdu(E2AP_PDU_t* pdu, unsigned char **buffer); - -void e2ap_asn1c_decode_pdu(E2AP_PDU_t* pdu, unsigned char *buffer, int len); - -int e2ap_asn1c_get_procedureCode(E2AP_PDU_t* pdu); - -#endif diff --git a/e2sim/previous/e2apv1sim/ricsim/src/E2AP/e2ap_message_handler.cpp b/e2sim/previous/e2apv1sim/ricsim/src/E2AP/e2ap_message_handler.cpp deleted file mode 100644 index fa157d5..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/E2AP/e2ap_message_handler.cpp +++ /dev/null @@ -1,295 +0,0 @@ - - -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ -#include "e2ap_message_handler.hpp" - -//#include -//#include - -#include "encode_e2apv1.hpp" -#include "kpm_callbacks.hpp" - -#include - -void e2ap_handle_sctp_data(int &socket_fd, sctp_buffer_t &data, bool xmlenc, E2Sim *e2sim) -{ - fprintf(stderr, "in e2ap_handle_sctp_data()\n"); - //decode the data into E2AP-PDU - E2AP_PDU_t* pdu = (E2AP_PDU_t*)calloc(1, sizeof(E2AP_PDU)); - ASN_STRUCT_RESET(asn_DEF_E2AP_PDU, pdu); - - fprintf(stderr, "decoding...\n"); - - asn_transfer_syntax syntax; - - - syntax = ATS_ALIGNED_BASIC_PER; - - - fprintf(stderr, "full buffer\n%s\n", data.buffer); - // e2ap_asn1c_decode_pdu(pdu, data.buffer, data.len); - - auto rval = asn_decode(nullptr, syntax, &asn_DEF_E2AP_PDU, (void **) &pdu, - data.buffer, data.len); - - - int index = (int)pdu->present; - fprintf(stderr, "length of data %d\n", rval.consumed); - fprintf(stderr, "result %d\n", rval.code); - fprintf(stderr, "index is %d\n", index); - - fprintf(stderr, "showing xer of data\n"); - - xer_fprint(stderr, &asn_DEF_E2AP_PDU, pdu); - - int procedureCode = e2ap_asn1c_get_procedureCode(pdu); - index = (int)pdu->present; - - LOG_D("[E2AP] Unpacked E2AP-PDU: index = %d, procedureCode = %d\n", - index, procedureCode); - - switch(procedureCode) - { - - case ProcedureCode_id_E2setup: - switch(index) - { - case E2AP_PDU_PR_initiatingMessage: - e2ap_handle_E2SetupRequest(pdu, socket_fd); - LOG_I("[E2AP] Received SETUP-REQUEST"); - break; - - case E2AP_PDU_PR_successfulOutcome: - LOG_I("[E2AP] Received SETUP-RESPONSE-SUCCESS"); - break; - - case E2AP_PDU_PR_unsuccessfulOutcome: - LOG_I("[E2AP] Received SETUP-RESPONSE-FAILURE"); - break; - - default: - LOG_E("[E2AP] Invalid message index=%d in E2AP-PDU", index); - break; - } - break; - - case ProcedureCode_id_Reset: //reset = 7 - switch(index) - { - case E2AP_PDU_PR_initiatingMessage: - LOG_I("[E2AP] Received RESET-REQUEST"); - break; - - case E2AP_PDU_PR_successfulOutcome: - break; - - case E2AP_PDU_PR_unsuccessfulOutcome: - break; - - default: - LOG_E("[E2AP] Invalid message index=%d in E2AP-PDU", index); - break; - } - break; - - case ProcedureCode_id_RICsubscription: //RIC SUBSCRIPTION = 201 - switch(index) - { - case E2AP_PDU_PR_initiatingMessage: { //initiatingMessage - LOG_I("[E2AP] Received RIC-SUBSCRIPTION-REQUEST"); - // e2ap_handle_RICSubscriptionRequest(pdu, socket_fd); - long func_id = get_function_id_from_subscription(pdu); - SubscriptionCallback cb = e2sim->get_subscription_callback(func_id); - cb(pdu,socket_fd); - // callback_kpm_subscription_request(pdu, socket_fd); - // e2ap_handle_RICSubscriptionRequest_securityDemo(pdu, socket_fd); - } - break; - - case E2AP_PDU_PR_successfulOutcome: - LOG_I("[E2AP] Received RIC-SUBSCRIPTION-RESPONSE"); - break; - - case E2AP_PDU_PR_unsuccessfulOutcome: - LOG_I("[E2AP] Received RIC-SUBSCRIPTION-FAILURE"); - break; - - default: - LOG_E("[E2AP] Invalid message index=%d in E2AP-PDU", index); - break; - } - break; - - case ProcedureCode_id_RICindication: // 205 - switch(index) - { - case E2AP_PDU_PR_initiatingMessage: //initiatingMessage - LOG_I("[E2AP] Received RIC-INDICATION-REQUEST"); - // e2ap_handle_RICSubscriptionRequest(pdu, socket_fd); - break; - case E2AP_PDU_PR_successfulOutcome: - LOG_I("[E2AP] Received RIC-INDICATION-RESPONSE"); - break; - - case E2AP_PDU_PR_unsuccessfulOutcome: - LOG_I("[E2AP] Received RIC-INDICATION-FAILURE"); - break; - - default: - LOG_E("[E2AP] Invalid message index=%d in E2AP-PDU %d", index, - (int)ProcedureCode_id_RICindication); - break; - } - break; - - default: - - LOG_E("[E2AP] No available handler for procedureCode=%d", procedureCode); - - break; - } -} - -void e2ap_handle_E2SetupRequest(E2AP_PDU_t* pdu, int &socket_fd) { - - - E2AP_PDU_t* res_pdu = (E2AP_PDU_t*)calloc(1, sizeof(E2AP_PDU)); - generate_e2apv1_setup_response(res_pdu); - - - LOG_D("[E2AP] Created E2-SETUP-RESPONSE"); - - e2ap_asn1c_print_pdu(res_pdu); - - - auto buffer_size = MAX_SCTP_BUFFER; - unsigned char buffer[MAX_SCTP_BUFFER]; - - sctp_buffer_t data; - auto er = asn_encode_to_buffer(nullptr, ATS_BASIC_XER, &asn_DEF_E2AP_PDU, res_pdu, buffer, buffer_size); - - data.len = er.encoded; - fprintf(stderr, "er encoded is %d\n", er.encoded); - - //data.len = e2ap_asn1c_encode_pdu(res_pdu, &buf); - memcpy(data.buffer, buffer, er.encoded); - - //send response data over sctp - if(sctp_send_data(socket_fd, data) > 0) { - LOG_I("[SCTP] Sent E2-SETUP-RESPONSE"); - } else { - LOG_E("[SCTP] Unable to send E2-SETUP-RESPONSE to peer"); - } - - sleep(5); - - //Sending Subscription Request - - E2AP_PDU_t* pdu_sub = (E2AP_PDU_t*)calloc(1,sizeof(E2AP_PDU)); - - generate_e2apv1_subscription_request(pdu_sub); - - xer_fprint(stderr, &asn_DEF_E2AP_PDU, pdu_sub); - - auto buffer_size2 = MAX_SCTP_BUFFER; - unsigned char buffer2[MAX_SCTP_BUFFER]; - - sctp_buffer_t data2; - - auto er2 = asn_encode_to_buffer(nullptr, ATS_ALIGNED_BASIC_PER, &asn_DEF_E2AP_PDU, pdu_sub, buffer2, buffer_size2); - - data2.len = er2.encoded; - memcpy(data2.buffer, buffer2, er2.encoded); - - fprintf(stderr, "er encded is %d\n", er2.encoded); - - if(sctp_send_data(socket_fd, data2) > 0) { - LOG_I("[SCTP] Sent E2-SUBSCRIPTION-REQUEST"); - } else { - LOG_E("[SCTP] Unable to send E2-SUBSCRIPTION-REQUEST to peer"); - } - - -} - - -void e2ap_handle_RICSubscriptionRequest(E2AP_PDU_t* pdu, int &socket_fd) -{ - - //Send back Subscription Success Response - - E2AP_PDU_t* pdu_resp = (E2AP_PDU_t*)calloc(1,sizeof(E2AP_PDU)); - - generate_e2apv1_subscription_response(pdu_resp, pdu); - - fprintf(stderr, "Subscription Response\n"); - - xer_fprint(stderr, &asn_DEF_E2AP_PDU, pdu_resp); - - auto buffer_size2 = MAX_SCTP_BUFFER; - unsigned char buffer2[MAX_SCTP_BUFFER]; - - sctp_buffer_t data2; - - auto er2 = asn_encode_to_buffer(nullptr, ATS_ALIGNED_BASIC_PER, &asn_DEF_E2AP_PDU, pdu_resp, buffer2, buffer_size2); - data2.len = er2.encoded; - - fprintf(stderr, "er encded is %d\n", er2.encoded); - - memcpy(data2.buffer, buffer2, er2.encoded); - - if(sctp_send_data(socket_fd, data2) > 0) { - LOG_I("[SCTP] Sent RIC-SUBSCRIPTION-RESPONSE"); - } else { - LOG_E("[SCTP] Unable to send RIC-SUBSCRIPTION-RESPONSE to peer"); - } - - - //Send back an Indication - - E2AP_PDU_t* pdu_ind = (E2AP_PDU_t*)calloc(1,sizeof(E2AP_PDU)); - - generate_e2apv1_indication_request(pdu_ind); - - xer_fprint(stderr, &asn_DEF_E2AP_PDU, pdu_ind); - - auto buffer_size = MAX_SCTP_BUFFER; - unsigned char buffer[MAX_SCTP_BUFFER]; - - sctp_buffer_t data; - - auto er = asn_encode_to_buffer(nullptr, ATS_ALIGNED_BASIC_PER, &asn_DEF_E2AP_PDU, pdu_ind, buffer, buffer_size); - data.len = er.encoded; - - fprintf(stderr, "er encded is %d\n", er.encoded); - - memcpy(data.buffer, buffer, er.encoded); - - if(sctp_send_data(socket_fd, data) > 0) { - LOG_I("[SCTP] Sent RIC-INDICATION-REQUEST"); - } else { - LOG_E("[SCTP] Unable to send RIC-INDICATION-REQUEST to peer"); - } - -} - - - - diff --git a/e2sim/previous/e2apv1sim/ricsim/src/E2AP/e2ap_message_handler.hpp b/e2sim/previous/e2apv1sim/ricsim/src/E2AP/e2ap_message_handler.hpp deleted file mode 100644 index 5ec288b..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/E2AP/e2ap_message_handler.hpp +++ /dev/null @@ -1,47 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ -#ifndef E2AP_MESSAGE_HANDLER_HPP -#define E2AP_MESSAGE_HANDLER_HPP - -#include "e2sim.hpp" -#include "e2sim_sctp.hpp" - - -extern "C" { - #include "e2sim_defs.h" - #include "e2ap_asn1c_codec.h" -} - -void e2ap_handle_sctp_data(int &socket_fd, sctp_buffer_t &data, bool xmlenc, E2Sim *e2sim); - -void e2ap_handle_X2SetupRequest(E2AP_PDU_t* pdu, int &socket_fd); - -void e2ap_handle_X2SetupResponse(E2AP_PDU_t* pdu, int &socket_fd); - -void e2ap_handle_ENDCX2SetupRequest(E2AP_PDU_t* pdu, int &socket_fd); - -void e2ap_handle_E2SetupRequest(E2AP_PDU_t* pdu, int &socket_fd); - -void e2ap_handle_RICSubscriptionRequest(E2AP_PDU_t* pdu, int &socket_fd); - -void e2ap_handle_RICSubscriptionRequest_securityDemo(E2AP_PDU_t* pdu, int &socket_fd); - -void e2ap_handle_ResourceStatusRequest(E2AP_PDU_t* pdu, int &socket_fd); - -#endif diff --git a/e2sim/previous/e2apv1sim/ricsim/src/E2APr/E2SM/e2sm.c b/e2sim/previous/e2apv1sim/ricsim/src/E2APr/E2SM/e2sm.c deleted file mode 100644 index 6cad6cd..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/E2APr/E2SM/e2sm.c +++ /dev/null @@ -1,196 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ -#include "e2sm.h" - -#include "ActionParameter-Item.h" -#include "ActionParameter-Value.h" -#include "PLMN-Identity.h" -#include "GlobalENB-ID.h" -#include "GlobalGNB-ID.h" -#include "Interface-ID.h" -#include "ProtocolIE-Field.h" -#include "InterfaceMessageType.h" -#include "InterfaceProtocolIE-Item.h" - -static PLMN_Identity_t *createPLMN_ID(const unsigned char *data) { - - PLMN_Identity_t *plmnId = calloc(1, sizeof(PLMN_Identity_t)); - ASN_STRUCT_RESET(asn_DEF_PLMN_Identity, plmnId); - plmnId->size = 3; - plmnId->buf = calloc(1, 3); - memcpy(plmnId->buf, data, 3); - - return plmnId; -} - -static GNB_ID_t *createGnb_id(const unsigned char *data, int numOfBits) { - - if (numOfBits < 22 || numOfBits > 32) { - printf("[Error] GNB_ID_t number of bits = %d, needs to be 22 .. 32", numOfBits); - return NULL; - } - - GNB_ID_t *gnb = calloc(1, sizeof(GNB_ID_t)); - ASN_STRUCT_RESET(asn_DEF_GNB_ID, gnb); - - gnb->present = GNB_ID_PR_gNB_ID; - gnb->choice.gNB_ID.size = numOfBits % 8 == 0 ? (unsigned int)(numOfBits / 8) : (unsigned int)(numOfBits / 8 + 1); - gnb->choice.gNB_ID.bits_unused = gnb->choice.gNB_ID.size * 8 - numOfBits; - gnb->choice.gNB_ID.buf = calloc(1, gnb->choice.gNB_ID.size); - memcpy(gnb->choice.gNB_ID.buf, data, gnb->choice.gNB_ID.size); - gnb->choice.gNB_ID.buf[gnb->choice.gNB_ID.size - 1] = - ((unsigned)(gnb->choice.gNB_ID.buf[gnb->choice.gNB_ID.size - 1] >> (unsigned)gnb->choice.gNB_ID.bits_unused) - << (unsigned)gnb->choice.gNB_ID.bits_unused); - - return gnb; -} - -static GlobalGNB_ID_t *createGlobalGNB_ID(PLMN_Identity_t *plmnIdentity, GNB_ID_t *gnb) { - - GlobalGNB_ID_t *ggnbId = calloc(1, sizeof(GlobalGNB_ID_t)); - ASN_STRUCT_RESET(asn_DEF_GlobalGNB_ID, ggnbId); - - memcpy(&ggnbId->pLMN_Identity, plmnIdentity, sizeof(PLMN_Identity_t)); - memcpy(&ggnbId->gNB_ID, gnb, sizeof(GNB_ID_t)); - - return ggnbId; -} - -static Interface_ID_t *createInterfaceIDForGnb(GlobalGNB_ID_t *gnb) { - - Interface_ID_t *interfaceId = calloc(1, sizeof(Interface_ID_t)); - ASN_STRUCT_RESET(asn_DEF_Interface_ID, interfaceId); - - interfaceId->present = Interface_ID_PR_global_gNB_ID; - interfaceId->choice.global_gNB_ID = gnb; - - return interfaceId; -} - -static InterfaceMessageType_t *createInterfaceMessageInitiating(long procedureCode) { - - InterfaceMessageType_t *intMsgT = calloc(1, sizeof(InterfaceMessageType_t)); - ASN_STRUCT_RESET(asn_DEF_InterfaceMessageType, intMsgT); - - intMsgT->procedureCode = procedureCode; - intMsgT->typeOfMessage = TypeOfMessage_initiating_message; - - return intMsgT; -} - -E2SM_gNB_X2_eventTriggerDefinition_t* create_eventTriggerDefinition(void) -{ - //PLMN_Identity - unsigned char plmnidData[3] = {0x33, 0xF4, 0x55}; - PLMN_Identity_t *plmnid = createPLMN_ID(plmnidData); - // xer_fprint(stdout, &asn_DEF_PLMN_Identity, (void *)plmnid); - - //GNB_ID - unsigned char gnbData[3] = {0x99, 0xaa, 0xbb}; - GNB_ID_t *gnb = createGnb_id(gnbData, 26); - // xer_fprint(stdout, &asn_DEF_GNB_ID, (void *)gnb); - - //GlobalGNB_ID - GlobalGNB_ID_t *globaGnb = createGlobalGNB_ID(plmnid, gnb); - // xer_fprint(stdout, &asn_DEF_GlobalGNB_ID, (void *)globaGnb); - - //Interface_ID - Interface_ID_t *gnbInterfaceId = createInterfaceIDForGnb(globaGnb); - // xer_fprint(stdout, &asn_DEF_Interface_ID, (void *)gnbInterfaceId); - - //InterfaceMessageType - InterfaceMessageType_t *initiatingInterface = createInterfaceMessageInitiating(35); - - //EventTriggerDefinition - E2SM_gNB_X2_eventTriggerDefinition_t *eventTrigger = calloc(1, sizeof(E2SM_gNB_X2_eventTriggerDefinition_t)); - ASN_STRUCT_RESET(asn_DEF_E2SM_gNB_X2_eventTriggerDefinition, eventTrigger); - - memcpy(&eventTrigger->interface_ID , gnbInterfaceId, sizeof(Interface_ID_t)); - - eventTrigger->interfaceDirection = 0; - memcpy(&eventTrigger->interfaceMessageType, initiatingInterface, sizeof(InterfaceMessageType_t)); - - return eventTrigger; -} - -#define E2AP_ASN1C_FIND_PROTOCOLIE_BY_ID(IE_TYPE, ie, container, IE_ID) \ - do {\ - IE_TYPE **ptr; \ - ie = NULL; \ - for (ptr = container->protocolIEs.list.array; \ - ptr < &container->protocolIEs.list.array[container->protocolIEs.list.count]; \ - ptr++) { \ - if((*ptr)->id == IE_ID) { \ - ie = *ptr; \ - break; \ - } \ - } \ - } while(0) - - -void test_eventTriggerDefinition(void) -{ - E2SM_gNB_X2_eventTriggerDefinition_t *eventTrigger = create_eventTriggerDefinition(); - - xer_fprint(stdout, &asn_DEF_E2SM_gNB_X2_eventTriggerDefinition, (void *)eventTrigger); - printf("\n"); - - uint8_t *eventBuff; - int eventBuff_len; - - eventBuff_len = aper_encode_to_new_buffer(&asn_DEF_E2SM_gNB_X2_eventTriggerDefinition, - 0, eventTrigger, (void **)&eventBuff); - - LOG_I("Encoded eventBuff_len = %d", eventBuff_len); - - //----------------------------------------------------------------------- - E2AP_PDU_t* pdu = e2ap_xml_to_pdu("E2AP_RICsubscriptionRequest.xml"); - e2ap_asn1c_print_pdu(pdu); - - InitiatingMessage_t *initiatingMessage = pdu->choice.initiatingMessage; - xer_fprint(stdout, &asn_DEF_InitiatingMessage, (void *)initiatingMessage); - - RICsubscriptionRequest_t *request = &initiatingMessage->value.choice.RICsubscriptionRequest; - xer_fprint(stdout, &asn_DEF_RICsubscriptionRequest, (void *)request); - - LOG_I("num of IEs = %d", request->protocolIEs.list.count); - - - RICsubscriptionRequest_IEs_t *ie; - - ie = request->protocolIEs.list.array[2]; - - // E2AP_ASN1C_FIND_PROTOCOLIE_BY_ID(RICsubscriptionRequest_IEs_t, ie, request, ProtocolIE_ID_id_RICsubscription); - // E2AP_ASN1C_FIND_PROTOCOLIE_BY_ID(RICsubscriptionRequest_IEs_t, ie, request, ProtocolIE_ID_id_RICrequestID); - - assert( ie != NULL); - - xer_fprint(stdout, &asn_DEF_RICsubscription, (void *)ie); - // xer_fprint(stdout, &asn_DEF_RICrequestID, (void *)ie); - - -} - -// -// typedef struct ProtocolIE_Container_119P0 { -// A_SEQUENCE_OF(struct RICsubscriptionRequest_IEs) list; -// -// /* Context for parsing across buffer boundaries */ -// asn_struct_ctx_t _asn_ctx; -// } ProtocolIE_Container_119P0_t; diff --git a/e2sim/previous/e2apv1sim/ricsim/src/E2APr/E2SM/e2sm.h b/e2sim/previous/e2apv1sim/ricsim/src/E2APr/E2SM/e2sm.h deleted file mode 100644 index 19f30a2..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/E2APr/E2SM/e2sm.h +++ /dev/null @@ -1,30 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ -#ifndef E2SM_H -#define E2SM_H - -#include "E2SM-gNB-X2-eventTriggerDefinition.h" -#include "E2AP-PDU.h" -#include "e2ap_asn1c_codec.h" - -E2SM_gNB_X2_eventTriggerDefinition_t* create_eventTriggerDefinition(void); - -void test_eventTriggerDefinition(void); - -#endif diff --git a/e2sim/previous/e2apv1sim/ricsim/src/E2APr/XML/E2AP_ENDCX2SetupFailure.xml b/e2sim/previous/e2apv1sim/ricsim/src/E2APr/XML/E2AP_ENDCX2SetupFailure.xml deleted file mode 100644 index 633baee..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/E2APr/XML/E2AP_ENDCX2SetupFailure.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - 36 - - - - - - 5 - - - - - - - - - - - - diff --git a/e2sim/previous/e2apv1sim/ricsim/src/E2APr/XML/E2AP_ENDCX2SetupRequest.xml b/e2sim/previous/e2apv1sim/ricsim/src/E2APr/XML/E2AP_ENDCX2SetupRequest.xml deleted file mode 100644 index ddb071a..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/E2APr/XML/E2AP_ENDCX2SetupRequest.xml +++ /dev/null @@ -1,67 +0,0 @@ - - - 36 - - - - - - 244 - - - - - - 21 - - - - 61 62 63 - - - 00110101000000000001 - - - - - - - 250 - - - - - - 0 - - 61 62 63 - - 0110010001100101011001100000 - - - 61 62 - - 61 62 63 - - - - 21400 - 3400 - - - - - - - - - - - - - - - - - - diff --git a/e2sim/previous/e2apv1sim/ricsim/src/E2APr/XML/E2AP_ENDCX2SetupResponse.xml b/e2sim/previous/e2apv1sim/ricsim/src/E2APr/XML/E2AP_ENDCX2SetupResponse.xml deleted file mode 100644 index 896eed6..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/E2APr/XML/E2AP_ENDCX2SetupResponse.xml +++ /dev/null @@ -1,97 +0,0 @@ - - - 36 - - - - - - 246 - - - - - - 252 - - - - 02 F8 29 - - - 000000000001001000110100 - - - - - - - 253 - - - - - - 99 - - 02 F8 29 - - 000000000000011110101011000000010010 - - - - 02 F8 29 - - - - - 100 - - - 9 - - - 9 - - - - - - - 100 - - - 9 - - - 9 - - - - - - - - - - - - - - - - 04 05 - - - - - - - - - - - - - - diff --git a/e2sim/previous/e2apv1sim/ricsim/src/E2APr/XML/E2AP_ErrorIndication.xml b/e2sim/previous/e2apv1sim/ricsim/src/E2APr/XML/E2AP_ErrorIndication.xml deleted file mode 100644 index 8974693..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/E2APr/XML/E2AP_ErrorIndication.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - 3 - - - - - - 5 - - - - - - - - - - - - diff --git a/e2sim/previous/e2apv1sim/ricsim/src/E2APr/XML/E2AP_PartSetupRequest.xml b/e2sim/previous/e2apv1sim/ricsim/src/E2APr/XML/E2AP_PartSetupRequest.xml deleted file mode 100644 index 43db78a..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/E2APr/XML/E2AP_PartSetupRequest.xml +++ /dev/null @@ -1 +0,0 @@ -400 01 02 030000001010110000001100001010 diff --git a/e2sim/previous/e2apv1sim/ricsim/src/E2APr/XML/E2AP_PartSetupRequest.xml~ b/e2sim/previous/e2apv1sim/ricsim/src/E2APr/XML/E2AP_PartSetupRequest.xml~ deleted file mode 100644 index b2343b9..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/E2APr/XML/E2AP_PartSetupRequest.xml~ +++ /dev/null @@ -1 +0,0 @@ -1400 01 02 030000001010110000001100001010 diff --git a/e2sim/previous/e2apv1sim/ricsim/src/E2APr/XML/E2AP_RICindication_type1.xml b/e2sim/previous/e2apv1sim/ricsim/src/E2APr/XML/E2AP_RICindication_type1.xml deleted file mode 100644 index e4e3f38..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/E2APr/XML/E2AP_RICindication_type1.xml +++ /dev/null @@ -1,74 +0,0 @@ - - - 205 - - - - - - 60030 - - - - 6 - 12 - - - - - 60003 - - - 10 - - - - 60017 - - - 100 - - - - 60028 - - - 100 - - - - 60029 - - - - - - - 60026 - - - 10 74 68 65 10 68 65 6C 40 - - - - 60027 - - - - 00 1B 40 80 80 00 00 08 00 6F 00 02 00 0C 00 F8 - 00 05 08 4D 86 D6 40 00 CB 00 20 31 32 33 34 35 - 36 37 38 39 31 32 33 34 35 36 37 38 39 31 32 33 - 34 35 36 37 38 39 31 32 33 34 35 00 CC 00 06 08 - 07 D0 20 03 E8 00 CE 00 0C 0B 49 6E 66 6F 72 6D - 61 74 69 6F 6E 01 17 00 08 00 33 32 31 34 35 36 - 30 01 13 00 01 22 00 CD 00 1B 00 00 D1 00 16 1A - 11 50 00 08 21 09 E0 41 41 42 42 43 43 44 44 45 - 45 5A 5A 59 58 - - - - - - - - diff --git a/e2sim/previous/e2apv1sim/ricsim/src/E2APr/XML/E2AP_RICindication_type2.xml b/e2sim/previous/e2apv1sim/ricsim/src/E2APr/XML/E2AP_RICindication_type2.xml deleted file mode 100644 index 92bc727..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/E2APr/XML/E2AP_RICindication_type2.xml +++ /dev/null @@ -1,74 +0,0 @@ - - - 205 - - - - - - 60030 - - - - 6 - 12 - - - - - 60003 - - - 10 - - - - 60017 - - - 100 - - - - 60028 - - - 100 - - - - 60029 - - - - - - - 60026 - - - 10 74 68 65 10 68 65 6C 40 - - - - 60027 - - - - 00 1B 40 80 80 00 00 08 00 6F 00 02 00 0C 00 F8 - 00 05 08 4D 86 D6 40 00 CB 00 20 31 32 33 34 35 - 36 37 38 39 31 32 33 34 35 36 37 38 39 31 32 33 - 34 35 36 37 38 39 31 32 33 34 35 00 CC 00 06 08 - 07 D0 20 03 E8 00 CE 00 0C 0B 49 6E 66 6F 72 6D - 61 74 69 6F 6E 01 17 00 08 00 33 32 31 34 35 36 - 30 01 13 00 01 23 00 CD 00 1B 00 00 D1 00 16 1A - 11 50 00 08 21 09 E0 41 41 42 42 43 43 44 44 45 - 45 5A 5A 59 58 - - - - - - - - diff --git a/e2sim/previous/e2apv1sim/ricsim/src/E2APr/XML/E2AP_RICsubscriptionRequest.xml b/e2sim/previous/e2apv1sim/ricsim/src/E2APr/XML/E2AP_RICsubscriptionRequest.xml deleted file mode 100644 index ab3ea11..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/E2APr/XML/E2AP_RICsubscriptionRequest.xml +++ /dev/null @@ -1,50 +0,0 @@ - - - 201 - - - - - - 60030 - - - - 1 - 200 - - - - - 60003 - - - 33 - - - - 60033 - - - - 00 01 02 03 40 0b 16 02 00 23 40 - - - 60011 - - - - 255 - - - - - - - - - - - - - diff --git a/e2sim/previous/e2apv1sim/ricsim/src/E2APr/XML/E2AP_RICsubscriptionRequest_Ashwin.xml b/e2sim/previous/e2apv1sim/ricsim/src/E2APr/XML/E2AP_RICsubscriptionRequest_Ashwin.xml deleted file mode 100644 index 524f7af..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/E2APr/XML/E2AP_RICsubscriptionRequest_Ashwin.xml +++ /dev/null @@ -1,50 +0,0 @@ - - - 201 - - - - - - 60030 - - - - 2 - 1 - - - - - 60003 - - - 0 - - - - 60033 - - - - 10 54 65 73 10 54 65 73 40 1B 40 - - - 60011 - - - - 4 - - - - - - - - - - - - - diff --git a/e2sim/previous/e2apv1sim/ricsim/src/E2APr/XML/E2AP_RICsubscriptionResponse.xml b/e2sim/previous/e2apv1sim/ricsim/src/E2APr/XML/E2AP_RICsubscriptionResponse.xml deleted file mode 100644 index b7ea847..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/E2APr/XML/E2AP_RICsubscriptionResponse.xml +++ /dev/null @@ -1,46 +0,0 @@ - - - 201 - - - - - - 60030 - - - - 2 - 205 - - - - - 60003 - - - 0 - - - - 60012 - - - - - 60013 - - - - 1 - - - - - - - - - - - diff --git a/e2sim/previous/e2apv1sim/ricsim/src/E2APr/XML/E2AP_ResourceStatusFailure.xml b/e2sim/previous/e2apv1sim/ricsim/src/E2APr/XML/E2AP_ResourceStatusFailure.xml deleted file mode 100644 index 9898d55..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/E2APr/XML/E2AP_ResourceStatusFailure.xml +++ /dev/null @@ -1,35 +0,0 @@ - - - 9 - - - - - - 39 - - - 1 - - - - 40 - - - 74 - - - - 5 - - - - - - - - - - - - diff --git a/e2sim/previous/e2apv1sim/ricsim/src/E2APr/XML/E2AP_ResourceStatusRequest.xml b/e2sim/previous/e2apv1sim/ricsim/src/E2APr/XML/E2AP_ResourceStatusRequest.xml deleted file mode 100644 index a807971..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/E2APr/XML/E2AP_ResourceStatusRequest.xml +++ /dev/null @@ -1,85 +0,0 @@ - - - 9 - - - - - - 39 - - - 1 - - - - 28 - - - - - - - 38 - - - - 11111110000000000000000000000000 - - - - - 29 - - - - - 31 - - - - - 13 30 23 - - 0000001010110000001100001010 - - - - - - - - - - 30 - - - - - - - 64 - - - - - - - 109 - - - - - - - 145 - - - - - - - - - - diff --git a/e2sim/previous/e2apv1sim/ricsim/src/E2APr/XML/E2AP_ResourceStatusRequest_bad.xml b/e2sim/previous/e2apv1sim/ricsim/src/E2APr/XML/E2AP_ResourceStatusRequest_bad.xml deleted file mode 100644 index 6968e71..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/E2APr/XML/E2AP_ResourceStatusRequest_bad.xml +++ /dev/null @@ -1,85 +0,0 @@ - - - 9 - - - - - - 39 - - - 1 - - - - 28 - - - - - - - 38 - - - - 00000000000000000000000000000000 - - - - - 29 - - - - - 31 - - - - - 02 07 9f - - 0010101100000000001100001010 - - - - - - - - - - 30 - - - - - - - 64 - - - - - - - 109 - - - - - - - 145 - - - - - - - - - - diff --git a/e2sim/previous/e2apv1sim/ricsim/src/E2APr/XML/E2AP_ResourceStatusResponse.xml b/e2sim/previous/e2apv1sim/ricsim/src/E2APr/XML/E2AP_ResourceStatusResponse.xml deleted file mode 100644 index 12542a8..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/E2APr/XML/E2AP_ResourceStatusResponse.xml +++ /dev/null @@ -1,134 +0,0 @@ - - - 9 - - - - - - 39 - - - 1 - - - - 40 - - - 75 - - - - 65 - - - - - 66 - - - - - 13 30 23 - - 0000001010110000001100001010 - - - - - 67 - - - - - 00000010000000000000000000000000 - - - - - - - - - 67 - - - - - 00000100000000000000000000000000 - - - - - - - - - 67 - - - - - 00001000000000000000000000000000 - - - - - - - - - 67 - - - - - 00100000000000000000000000000000 - - - - - - - - - 67 - - - - - 01000000000000000000000000000000 - - - - - - - - - 67 - - - - - 10000000000000000000000000000000 - - - - - - - - - - - - - - - - - - - diff --git a/e2sim/previous/e2apv1sim/ricsim/src/E2APr/XML/E2AP_ResourceStatusUpdate.xml b/e2sim/previous/e2apv1sim/ricsim/src/E2APr/XML/E2AP_ResourceStatusUpdate.xml deleted file mode 100644 index b5630bc..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/E2APr/XML/E2AP_ResourceStatusUpdate.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - 10 - - - - - - 39 - - - 1 - - - - 40 - - - 75 - - - - 32 - - - - - 33 - - - - - 13 30 23 - - 0000001010110000001100001010 - - - - - 42 - - - - - 100 - 99 - - - 100 - 99 - - - - - - - - - - - - - - - - diff --git a/e2sim/previous/e2apv1sim/ricsim/src/E2APr/XML/E2AP_SetupRequest.xml b/e2sim/previous/e2apv1sim/ricsim/src/E2APr/XML/E2AP_SetupRequest.xml deleted file mode 100644 index b2343b9..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/E2APr/XML/E2AP_SetupRequest.xml +++ /dev/null @@ -1 +0,0 @@ -1400 01 02 030000001010110000001100001010 diff --git a/e2sim/previous/e2apv1sim/ricsim/src/E2APr/XML/E2AP_SetupRequest.xml~ b/e2sim/previous/e2apv1sim/ricsim/src/E2APr/XML/E2AP_SetupRequest.xml~ deleted file mode 100644 index b2343b9..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/E2APr/XML/E2AP_SetupRequest.xml~ +++ /dev/null @@ -1 +0,0 @@ -1400 01 02 030000001010110000001100001010 diff --git a/e2sim/previous/e2apv1sim/ricsim/src/E2APr/XML/E2AP_SetupRequest2.xml b/e2sim/previous/e2apv1sim/ricsim/src/E2APr/XML/E2AP_SetupRequest2.xml deleted file mode 100644 index 6d8c654..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/E2APr/XML/E2AP_SetupRequest2.xml +++ /dev/null @@ -1,30 +0,0 @@ - - - 1 - - - - - - 4 - - - - - - 70 6C 6D 6E 33 - - - 01100111011011100110001000110001 - - - - - - - - - - - - diff --git a/e2sim/previous/e2apv1sim/ricsim/src/E2APr/XML/E2AP_X2SetupFailure.xml b/e2sim/previous/e2apv1sim/ricsim/src/E2APr/XML/E2AP_X2SetupFailure.xml deleted file mode 100644 index 53acf31..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/E2APr/XML/E2AP_X2SetupFailure.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - 6 - - - - - - 5 - - - - - - - - - - - - diff --git a/e2sim/previous/e2apv1sim/ricsim/src/E2APr/XML/E2AP_X2SetupRequest.xml b/e2sim/previous/e2apv1sim/ricsim/src/E2APr/XML/E2AP_X2SetupRequest.xml deleted file mode 100644 index 9f0f286..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/E2APr/XML/E2AP_X2SetupRequest.xml +++ /dev/null @@ -1,57 +0,0 @@ - - - 6 - - - - - - 21 - - - - 13 30 23 - - - 11111111111111111111 - - - - - - - 20 - - - - - - 503 - - 13 30 23 - - 1111111111111111111100000000 - - - 00 00 - - 13 30 23 - - - - 0 - 0 - - - - - - - - - - - - - - diff --git a/e2sim/previous/e2apv1sim/ricsim/src/E2APr/XML/E2AP_X2SetupResponse.xml b/e2sim/previous/e2apv1sim/ricsim/src/E2APr/XML/E2AP_X2SetupResponse.xml deleted file mode 100644 index af42d5b..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/E2APr/XML/E2AP_X2SetupResponse.xml +++ /dev/null @@ -1,97 +0,0 @@ - - - 6 - - - - - - 21 - - - - 13 30 23 - - - 00000010101100000011 - - - - - - - 20 - - - - - - 308 - - 13 30 23 - - 0000001010110000001100001010 - - - 64 03 - - 13 30 23 - - - - 18650 - 650 - - - - - - - 41 - - - - - - - 55 - - - - 344 - 12 - - 5 - - - - - 160 - - - - - - - - - - - - - 24 - - - - - 13 30 23 - 80 00 - - - - - - - - - diff --git a/e2sim/previous/e2apv1sim/ricsim/src/E2APr/XML/GlobalE2node-ID.xml b/e2sim/previous/e2apv1sim/ricsim/src/E2APr/XML/GlobalE2node-ID.xml deleted file mode 100644 index dd21201..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/E2APr/XML/GlobalE2node-ID.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - 70 6C 6D 6E 33 - - - 01100111011011100110001000110001 - - - - - diff --git a/e2sim/previous/e2apv1sim/ricsim/src/E2APr/XML/reference_constants.txt b/e2sim/previous/e2apv1sim/ricsim/src/E2APr/XML/reference_constants.txt deleted file mode 100644 index b9a3b54..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/E2APr/XML/reference_constants.txt +++ /dev/null @@ -1,16 +0,0 @@ -/* Dependencies */ -typedef enum Criticality { - Criticality_reject = 0, - Criticality_ignore = 1, - Criticality_notify = 2 -} e_Criticality; - - --- Event Trigger Definition OCTET STRING contents -E2SM-gNB-X2-eventTriggerDefinition ::= SEQUENCE{ - interface-ID Interface-ID, - interfaceDirection InterfaceDirection, - interfaceMessageType InterfaceMessageType, - interfaceProtocolIE-List SEQUENCE (SIZE(1..maxofInterfaceProtocolIE)) OF InterfaceProtocolIE-Item OPTIONAL, - ... -} diff --git a/e2sim/previous/e2apv1sim/ricsim/src/E2APr/e2ap_asn1c_codec.c b/e2sim/previous/e2apv1sim/ricsim/src/E2APr/e2ap_asn1c_codec.c deleted file mode 100644 index f76032d..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/E2APr/e2ap_asn1c_codec.c +++ /dev/null @@ -1,229 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ -#include "e2ap_asn1c_codec.h" - - -void e2ap_asn1c_print_pdu(const E2AP_PDU_t* pdu) -{ - printf("before\n"); - // xer_fprint(stdout, &asn_DEF_E2AP_PDU, (void *)pdu); - xer_fprint(stdout, &asn_DEF_E2AP_PDU, pdu); - printf("after\n"); - printf("\n"); -} - -void asn1c_xer_print(asn_TYPE_descriptor_t *typeDescriptor, void *data) -{ - xer_fprint(stdout, typeDescriptor, (void *)data); - printf("\n"); -} - - -E2AP_PDU_t* e2ap_xml_to_pdu(char const* xml_message) -{ - // E2AP_PDU_t *pdu = new E2AP_PDU_t(); - E2AP_PDU_t *pdu = calloc(1, sizeof(E2AP_PDU_t)); - - assert(pdu != 0); - - printf("xmlpdu1\n"); - - uint8_t buf[MAX_XML_BUFFER]; - asn_dec_rval_t rval; - size_t size; - FILE *f; - - char XML_path[300]; - char *work_dir = getenv(WORKDIR_ENV); - - printf("xmlpdu2\n"); - - strcpy(XML_path, work_dir); - strcat(XML_path, E2AP_XML_DIR); - strcat(XML_path, xml_message); - - printf("xmlpdu4\n"); - - LOG_D("Generate E2AP PDU from XML file: %s\n", XML_path); - memset(buf, 0, sizeof(buf)); - - printf("xmlpdu3\n"); - - f = fopen(XML_path, "r"); - if(!f){ - LOG_E("Unable to open %s. Make sure you have set the Environment Variable E2SIM_DIR, see README", XML_path) - } - - printf("xmlpdu5\n"); - - assert(f); - - printf("xmlpdu6\n"); - - size = fread(buf, 1, sizeof(buf), f); - if(size == 0 || size == sizeof(buf)) - { - LOG_E("Input too long: %s", XML_path); - exit(1); - } - - fclose(f); - - printf("xmlpdu7\n"); - - rval = xer_decode(0, &asn_DEF_E2AP_PDU, (void **)&pdu, buf, size); - - printf("xmlpdu8\n"); - - assert(rval.code == RC_OK); - - return pdu; -} - - -E2setupRequest_t* smaller_e2ap_xml_to_pdu(char const* xml_message) -{ - // E2AP_PDU_t *pdu = new E2AP_PDU_t(); - E2AP_PDU_t *pdu = calloc(1, sizeof(E2AP_PDU_t)); - - // GlobalE2node_ID_t *globale2nodeid = (GlobalE2node_ID_t*)calloc(1, sizeof(GlobalE2node_ID_t)); - GlobalE2node_ID_t *globale2nodeid = (GlobalE2node_ID_t*)calloc(1, sizeof(GlobalE2node_ID_t)); - E2setupRequest_t *e2setuprequest = (E2setupRequest_t*)calloc(1,sizeof(E2setupRequest_t)); - - printf("xmlpdu1\n"); - - uint8_t buf[MAX_XML_BUFFER]; - asn_dec_rval_t rval; - size_t size; - FILE *f; - - char XML_path[300]; - char *work_dir = getenv(WORKDIR_ENV); - - printf("xmlpdu2\n"); - - strcpy(XML_path, work_dir); - strcat(XML_path, E2AP_XML_DIR); - strcat(XML_path, xml_message); - - printf("xmlpdu4\n"); - - LOG_D("Generate E2AP PDU from XML file: %s\n", XML_path); - memset(buf, 0, sizeof(buf)); - - printf("xmlpdu3\n"); - - f = fopen(XML_path, "r"); - if(!f){ - LOG_E("Unable to open %s. Make sure you have set the Environment Variable E2SIM_DIR, see README", XML_path) - } - - printf("xmlpdu5\n"); - - assert(f); - - printf("xmlpdu6\n"); - - size = fread(buf, 1, sizeof(buf), f); - if(size == 0 || size == sizeof(buf)) - { - LOG_E("Input too long: %s", XML_path); - exit(1); - } - - fclose(f); - - printf("xmlpdu7\n"); - - rval = xer_decode(0, &asn_DEF_E2setupRequest, (void **)&e2setuprequest, buf, size); - - printf("xmlpdu8\n"); - - assert(rval.code == RC_OK); - - return e2setuprequest; -} - - -int e2ap_asn1c_encode_pdu(E2AP_PDU_t* pdu, unsigned char **buffer) -{ - int len; - - *buffer = NULL; - assert(pdu != NULL); - assert(buffer != NULL); - - len = aper_encode_to_new_buffer(&asn_DEF_E2AP_PDU, 0, pdu, (void **)buffer); - - if (len < 0) { - LOG_E("[E2AP ASN] Unable to aper encode"); - exit(1); - } - else { - LOG_D("[E2AP ASN] Encoded succesfully, encoded size = %d", len); - } - - ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_E2AP_PDU, pdu); - - return len; -} - -void e2ap_asn1c_decode_pdu(E2AP_PDU_t* pdu, unsigned char *buffer, int len) -{ - asn_dec_rval_t dec_ret; - - assert(buffer != NULL); - - dec_ret = aper_decode(NULL, &asn_DEF_E2AP_PDU, (void **)&pdu, buffer, len, 0, 0); - - if (dec_ret.code != RC_OK) { - LOG_E("[E2AP ASN] Failed to decode pdu"); - exit(1); - } - else { - LOG_D("[E2AP ASN] Decoded succesfully"); - } -} - -int e2ap_asn1c_get_procedureCode(E2AP_PDU_t* pdu) -{ - int procedureCode = -1; - - switch(pdu->present) - { - case E2AP_PDU_PR_initiatingMessage: - fprintf(stderr,"initiating message\n"); - procedureCode = pdu->choice.initiatingMessage->procedureCode; - break; - - case E2AP_PDU_PR_successfulOutcome: - procedureCode = pdu->choice.successfulOutcome->procedureCode; - break; - - case E2AP_PDU_PR_unsuccessfulOutcome: - procedureCode = pdu->choice.unsuccessfulOutcome->procedureCode; - break; - - default: - LOG_E("[E2AP] Error: Unknown index %d in E2AP PDU", (int)pdu->present); - break; - } - - return procedureCode; -} diff --git a/e2sim/previous/e2apv1sim/ricsim/src/E2APr/e2ap_asn1c_codec.h b/e2sim/previous/e2apv1sim/ricsim/src/E2APr/e2ap_asn1c_codec.h deleted file mode 100644 index 314fd63..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/E2APr/e2ap_asn1c_codec.h +++ /dev/null @@ -1,48 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ -#ifndef E2AP_ASN1C_CODEC_H -#define E2AP_ASN1C_CODEC_H - -#include "e2sim_defs.h" -#include "E2AP-PDU.h" -#include "InitiatingMessage.h" -#include "SuccessfulOutcome.h" -#include "UnsuccessfulOutcome.h" - -#include "GlobalE2node-ID.h" -#include "E2setupRequest.h" - -#define ASN1C_PDU_PRINT_BUFFER 4096 -#define MAX_XML_BUFFER 10000 -#define E2AP_XML_DIR "/src/E2AP/XML/" - -void e2ap_asn1c_print_pdu(const E2AP_PDU_t* pdu); - -void asn1c_xer_print(asn_TYPE_descriptor_t *typeDescriptor, void *data); - -E2AP_PDU_t* e2ap_xml_to_pdu(char const* xml_message); -E2setupRequest_t* smaller_e2ap_xml_to_pdu(char const* xml_message); - -int e2ap_asn1c_encode_pdu(E2AP_PDU_t* pdu, unsigned char **buffer); - -void e2ap_asn1c_decode_pdu(E2AP_PDU_t* pdu, unsigned char *buffer, int len); - -int e2ap_asn1c_get_procedureCode(E2AP_PDU_t* pdu); - -#endif diff --git a/e2sim/previous/e2apv1sim/ricsim/src/E2APr/e2ap_message_handler.cpp b/e2sim/previous/e2apv1sim/ricsim/src/E2APr/e2ap_message_handler.cpp deleted file mode 100644 index d3778c0..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/E2APr/e2ap_message_handler.cpp +++ /dev/null @@ -1,267 +0,0 @@ - - -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ -#include "e2ap_message_handler.hpp" - -//#include -//#include - -#include "encode_e2apv1.hpp" - - -#include - -void e2ap_handle_sctp_data(int &socket_fd, sctp_buffer_t &data, bool xmlenc) -{ - fprintf(stderr, "in e2ap_handle_sctp_data()\n"); - //decode the data into E2AP-PDU - E2AP_PDU_t* pdu = (E2AP_PDU_t*)calloc(1, sizeof(E2AP_PDU)); - ASN_STRUCT_RESET(asn_DEF_E2AP_PDU, pdu); - - fprintf(stderr, "decoding...\n"); - - asn_transfer_syntax syntax; - - - syntax = ATS_ALIGNED_BASIC_PER; - - - fprintf(stderr, "full buffer\n%s\n", data.buffer); - // e2ap_asn1c_decode_pdu(pdu, data.buffer, data.len); - - auto rval = asn_decode(nullptr, syntax, &asn_DEF_E2AP_PDU, (void **) &pdu, - data.buffer, data.len); - - - int index = (int)pdu->present; - fprintf(stderr, "length of data %d\n", rval.consumed); - fprintf(stderr, "result %d\n", rval.code); - fprintf(stderr, "index is %d\n", index); - - fprintf(stderr, "showing xer of data\n"); - - xer_fprint(stderr, &asn_DEF_E2AP_PDU, pdu); - - int procedureCode = e2ap_asn1c_get_procedureCode(pdu); - index = (int)pdu->present; - - LOG_D("[E2AP] Unpacked E2AP-PDU: index = %d, procedureCode = %d\n", - index, procedureCode); - - switch(procedureCode) - { - - case ProcedureCode_id_E2setup: - switch(index) - { - case E2AP_PDU_PR_initiatingMessage: - e2ap_handle_E2SetupRequest(pdu, socket_fd); - LOG_I("[E2AP] Received SETUP-REQUEST"); - break; - - case E2AP_PDU_PR_successfulOutcome: - LOG_I("[E2AP] Received SETUP-RESPONSE-SUCCESS"); - break; - - case E2AP_PDU_PR_unsuccessfulOutcome: - LOG_I("[E2AP] Received SETUP-RESPONSE-FAILURE"); - break; - - default: - LOG_E("[E2AP] Invalid message index=%d in E2AP-PDU", index); - break; - } - break; - - case ProcedureCode_id_Reset: //reset = 7 - switch(index) - { - case E2AP_PDU_PR_initiatingMessage: - LOG_I("[E2AP] Received RESET-REQUEST"); - break; - - case E2AP_PDU_PR_successfulOutcome: - break; - - case E2AP_PDU_PR_unsuccessfulOutcome: - break; - - default: - LOG_E("[E2AP] Invalid message index=%d in E2AP-PDU", index); - break; - } - break; - - case ProcedureCode_id_RICindication: // 205 - switch(index) - { - case E2AP_PDU_PR_initiatingMessage: //initiatingMessage - LOG_I("[E2AP] Received RIC-INDICATION-REQUEST"); - // e2ap_handle_RICSubscriptionRequest(pdu, socket_fd); - break; - case E2AP_PDU_PR_successfulOutcome: - LOG_I("[E2AP] Received RIC-INDICATION-RESPONSE"); - break; - - case E2AP_PDU_PR_unsuccessfulOutcome: - LOG_I("[E2AP] Received RIC-INDICATION-FAILURE"); - break; - - default: - LOG_E("[E2AP] Invalid message index=%d in E2AP-PDU %d", index, - (int)ProcedureCode_id_RICindication); - break; - } - break; - - default: - - LOG_E("[E2AP] No available handler for procedureCode=%d", procedureCode); - - break; - } -} - -void e2ap_handle_E2SetupRequest(E2AP_PDU_t* pdu, int &socket_fd) { - - - E2AP_PDU_t* res_pdu = (E2AP_PDU_t*)calloc(1, sizeof(E2AP_PDU)); - generate_e2apv1_setup_response(res_pdu); - - - LOG_D("[E2AP] Created E2-SETUP-RESPONSE"); - - e2ap_asn1c_print_pdu(res_pdu); - - - auto buffer_size = MAX_SCTP_BUFFER; - unsigned char buffer[MAX_SCTP_BUFFER]; - - sctp_buffer_t data; - auto er = asn_encode_to_buffer(nullptr, ATS_BASIC_XER, &asn_DEF_E2AP_PDU, res_pdu, buffer, buffer_size); - - data.len = er.encoded; - fprintf(stderr, "er encoded is %d\n", er.encoded); - - //data.len = e2ap_asn1c_encode_pdu(res_pdu, &buf); - memcpy(data.buffer, buffer, er.encoded); - - //send response data over sctp - if(sctp_send_data(socket_fd, data) > 0) { - LOG_I("[SCTP] Sent E2-SETUP-RESPONSE"); - } else { - LOG_E("[SCTP] Unable to send E2-SETUP-RESPONSE to peer"); - } - - sleep(5); - - //Sending Subscription Request - - E2AP_PDU_t* pdu_sub = (E2AP_PDU_t*)calloc(1,sizeof(E2AP_PDU)); - - generate_e2apv1_subscription_request(pdu_sub); - - xer_fprint(stderr, &asn_DEF_E2AP_PDU, pdu_sub); - - auto buffer_size2 = MAX_SCTP_BUFFER; - unsigned char buffer2[MAX_SCTP_BUFFER]; - - sctp_buffer_t data2; - - auto er2 = asn_encode_to_buffer(nullptr, ATS_ALIGNED_BASIC_PER, &asn_DEF_E2AP_PDU, pdu_sub, buffer2, buffer_size2); - - data2.len = er2.encoded; - memcpy(data2.buffer, buffer2, er2.encoded); - - fprintf(stderr, "er encded is %d\n", er2.encoded); - - if(sctp_send_data(socket_fd, data2) > 0) { - LOG_I("[SCTP] Sent E2-SUBSCRIPTION-REQUEST"); - } else { - LOG_E("[SCTP] Unable to send E2-SUBSCRIPTION-REQUEST to peer"); - } - - -} - - -void e2ap_handle_RICSubscriptionRequest(E2AP_PDU_t* pdu, int &socket_fd) -{ - - //Send back Subscription Success Response - - E2AP_PDU_t* pdu_resp = (E2AP_PDU_t*)calloc(1,sizeof(E2AP_PDU)); - - generate_e2apv1_subscription_response(pdu_resp, pdu); - - fprintf(stderr, "Subscription Response\n"); - - xer_fprint(stderr, &asn_DEF_E2AP_PDU, pdu_resp); - - auto buffer_size2 = MAX_SCTP_BUFFER; - unsigned char buffer2[MAX_SCTP_BUFFER]; - - sctp_buffer_t data2; - - auto er2 = asn_encode_to_buffer(nullptr, ATS_ALIGNED_BASIC_PER, &asn_DEF_E2AP_PDU, pdu_resp, buffer2, buffer_size2); - data2.len = er2.encoded; - - fprintf(stderr, "er encded is %d\n", er2.encoded); - - memcpy(data2.buffer, buffer2, er2.encoded); - - if(sctp_send_data(socket_fd, data2) > 0) { - LOG_I("[SCTP] Sent RIC-SUBSCRIPTION-RESPONSE"); - } else { - LOG_E("[SCTP] Unable to send RIC-SUBSCRIPTION-RESPONSE to peer"); - } - - - //Send back an Indication - - E2AP_PDU_t* pdu_ind = (E2AP_PDU_t*)calloc(1,sizeof(E2AP_PDU)); - - generate_e2apv1_indication_request(pdu_ind); - - xer_fprint(stderr, &asn_DEF_E2AP_PDU, pdu_ind); - - auto buffer_size = MAX_SCTP_BUFFER; - unsigned char buffer[MAX_SCTP_BUFFER]; - - sctp_buffer_t data; - - auto er = asn_encode_to_buffer(nullptr, ATS_ALIGNED_BASIC_PER, &asn_DEF_E2AP_PDU, pdu_ind, buffer, buffer_size); - data.len = er.encoded; - - fprintf(stderr, "er encded is %d\n", er.encoded); - - memcpy(data.buffer, buffer, er.encoded); - - if(sctp_send_data(socket_fd, data) > 0) { - LOG_I("[SCTP] Sent RIC-INDICATION-REQUEST"); - } else { - LOG_E("[SCTP] Unable to send RIC-INDICATION-REQUEST to peer"); - } - -} - - - - diff --git a/e2sim/previous/e2apv1sim/ricsim/src/E2APr/e2ap_message_handler.hpp b/e2sim/previous/e2apv1sim/ricsim/src/E2APr/e2ap_message_handler.hpp deleted file mode 100644 index 9c23165..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/E2APr/e2ap_message_handler.hpp +++ /dev/null @@ -1,47 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ -#ifndef E2AP_MESSAGE_HANDLER_HPP -#define E2AP_MESSAGE_HANDLER_HPP - - -#include "e2sim_sctp.hpp" - - -extern "C" { - #include "e2sim_defs.h" - #include "e2ap_asn1c_codec.h" -} - -void e2ap_handle_sctp_data(int &socket_fd, sctp_buffer_t &data, bool xmlenc); - -void e2ap_handle_X2SetupRequest(E2AP_PDU_t* pdu, int &socket_fd); - -void e2ap_handle_X2SetupResponse(E2AP_PDU_t* pdu, int &socket_fd); - -void e2ap_handle_ENDCX2SetupRequest(E2AP_PDU_t* pdu, int &socket_fd); - -void e2ap_handle_E2SetupRequest(E2AP_PDU_t* pdu, int &socket_fd); - -void e2ap_handle_RICSubscriptionRequest(E2AP_PDU_t* pdu, int &socket_fd); - -void e2ap_handle_RICSubscriptionRequest_securityDemo(E2AP_PDU_t* pdu, int &socket_fd); - -void e2ap_handle_ResourceStatusRequest(E2AP_PDU_t* pdu, int &socket_fd); - -#endif diff --git a/e2sim/previous/e2apv1sim/ricsim/src/SCTP/e2sim_sctp.c b/e2sim/previous/e2apv1sim/ricsim/src/SCTP/e2sim_sctp.c deleted file mode 100644 index b4880f9..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/SCTP/e2sim_sctp.c +++ /dev/null @@ -1,173 +0,0 @@ -/* - * - * Copyright 2019 AT&T Intellectual Property - * Copyright 2019 Nokia - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -#include -#include -#include //for close() -#include -#include -#include -#include -#include //for inet_ntop() -#include - -#include "e2sim_sctp.h" - -const int CLIENT_SEND_COUNT = 1; -const int SERVER_LISTEN_QUEUE_SIZE = 10; - -int sctp_start_server(const char *server_ip_str, const int server_port) -{ - if(server_port < 1 || server_port > 65535) { - fprintf(stderr, "Invalid port number (%d). Valid values are between 1 and 65535.\n", server_port); - return -1; - } - - int server_fd; - if((server_fd = socket(AF_INET, SOCK_STREAM, IPPROTO_SCTP)) == -1) { - perror("socket"); - return -1; - } - - struct sockaddr_in server_addr; - memset(&server_addr, 0, sizeof(struct sockaddr_in)); - server_addr.sin_family = AF_INET; - server_addr.sin_port = htons(server_port); - server_addr.sin_addr.s_addr = inet_addr(server_ip_str); - - if(bind(server_fd, (struct sockaddr*)&server_addr, sizeof(server_addr)) == -1) { - perror("bind"); - return -1; - } - - if(listen(server_fd, SERVER_LISTEN_QUEUE_SIZE) != 0) { - perror("listen"); - return -1; - } - - assert(server_fd != 0); - - fprintf(stderr, "SCTP server started on %s:%d\n", server_ip_str, server_port); - - return server_fd; -} - -int sctp_start_client(const char *server_ip_str, const int server_port) -{ - int client_fd; - - if((client_fd = socket(AF_INET, SOCK_STREAM, IPPROTO_SCTP)) == -1) - { - perror("socket"); - return -1; - } - - struct sockaddr_in peer_addr; - memset(&peer_addr, 0, sizeof(struct sockaddr_in)); - peer_addr.sin_family = AF_INET; - peer_addr.sin_port = htons(server_port); - peer_addr.sin_addr.s_addr = inet_addr(server_ip_str); - // if(inet_pton(AF_INET, server_ip, &(peer_addr.sin_addr)) != 1) { - // printf("Error converting IP address (%s) to sockaddr_in structure\n", server_ip); - // return 0; - // } - - fprintf(stderr, "Connecting to server at %s:%d ...", server_ip_str, server_port); - if(connect(client_fd, (struct sockaddr*)&peer_addr, sizeof(peer_addr)) == -1) { - perror("connect"); - return -1; - } - - assert(client_fd != 0); - - fprintf(stderr, "OK\n"); - - return client_fd; - -} - -//ssize_t sctp_send_to_socket(int sockfd, const void* buf, size_t len) -int sctp_send_to_socket(int sockfd, const void* buf, size_t len) -{ - int sent_len = 0; - - sent_len = send(sockfd, buf, len, 0); - - if(sent_len == -1) - { - perror("sctp_send_to_socket"); - return -1; - } - - return sent_len; -} - -// int sctp_recv_from_socket(int sockfd, void *buf, size_t buf_size) -// { -// //int len = 0; -// -// memset(buf, 0, buf_size); -// -// int len = recv(sockfd, &buf, buf_size, 0); -// if(len == -1) -// { -// perror("sctp_recv_from_socket"); -// return -1; -// } -// -// return len; -// } - - -//test only -void client_send_multiple_test_msg(int client_fd) -{ - char buf[1024]; - int SEND_COUNT = 4; - - for(int i = 0; i < SEND_COUNT; i++) - { - fprintf(stderr, "Sending message %d of %d \n", i+1, SEND_COUNT); - - memset(buf, 0, sizeof(buf)); - snprintf(buf, sizeof(buf)-1, "DATA %d", i+1); - - if(send(client_fd, &buf, strlen(buf), 0) == -1) { - perror("send"); - return; - } - - memset(buf, 0, sizeof(buf)); - - if(recv(client_fd, &buf, sizeof(buf), 0) == -1) { - perror("recv"); - return; - } - - fprintf(stderr, "Server reply: %s\n", buf); - - sleep(1); - } - - fprintf(stderr, "Closing...\n"); - if(close(client_fd) == -1) { - perror("close"); - return; - } -} diff --git a/e2sim/previous/e2apv1sim/ricsim/src/SCTP/e2sim_sctp.cpp b/e2sim/previous/e2apv1sim/ricsim/src/SCTP/e2sim_sctp.cpp deleted file mode 100644 index 55547b4..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/SCTP/e2sim_sctp.cpp +++ /dev/null @@ -1,297 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ -#include -#include -#include //for close() -#include -#include -#include -#include -#include //for inet_ntop() -#include - -#include "e2sim_sctp.hpp" -// #include "e2sim_defs.h" - - -#include -#include -#include -#include -#include -#include -#include -#include - -int sctp_start_server(const char *server_ip_str, const int server_port) -{ - if(server_port < 1 || server_port > 65535) { - LOG_E("Invalid port number (%d). Valid values are between 1 and 65535.\n", server_port); - exit(1); - } - - int server_fd, af; - struct sockaddr* server_addr; - size_t addr_len; - - struct sockaddr_in server4_addr; - memset(&server4_addr, 0, sizeof(struct sockaddr_in)); - - struct sockaddr_in6 server6_addr; - memset(&server6_addr, 0, sizeof(struct sockaddr_in6)); - - if(inet_pton(AF_INET, server_ip_str, &server4_addr.sin_addr) == 1) - { - server4_addr.sin_family = AF_INET; - server4_addr.sin_port = htons(server_port); - - server_addr = (struct sockaddr*)&server4_addr; - af = AF_INET; - addr_len = sizeof(server4_addr); - } - else if(inet_pton(AF_INET6, server_ip_str, &server6_addr.sin6_addr) == 1) - { - server6_addr.sin6_family = AF_INET6; - server6_addr.sin6_port = htons(server_port); - - server_addr = (struct sockaddr*)&server6_addr; - af = AF_INET6; - addr_len = sizeof(server6_addr); - } - else { - perror("inet_pton()"); - exit(1); - } - - if((server_fd = socket(af, SOCK_STREAM, IPPROTO_SCTP)) == -1) { - perror("socket"); - exit(1); - } - - //set send_buffer - // int sendbuff = 10000; - // socklen_t optlen = sizeof(sendbuff); - // if(getsockopt(server_fd, SOL_SOCKET, SO_SNDBUF, &sendbuff, &optlen) == -1) { - // perror("getsockopt send"); - // exit(1); - // } - // else - // LOG_D("[SCTP] send buffer size = %d\n", sendbuff); - - - if(bind(server_fd, server_addr, addr_len) == -1) { - perror("bind"); - exit(1); - } - - if(listen(server_fd, SERVER_LISTEN_QUEUE_SIZE) != 0) { - perror("listen"); - exit(1); - } - - assert(server_fd != 0); - - LOG_I("[SCTP] Server started on %s:%d", server_ip_str, server_port); - - return server_fd; -} - -int sctp_start_client(const char *server_ip_str, const int server_port) -{ - int client_fd, af; - - struct sockaddr* server_addr; - size_t addr_len; - - struct sockaddr_in server4_addr; - memset(&server4_addr, 0, sizeof(struct sockaddr_in)); - - struct sockaddr_in6 server6_addr; - memset(&server6_addr, 0, sizeof(struct sockaddr_in6)); - - if(inet_pton(AF_INET, server_ip_str, &server4_addr.sin_addr) == 1) - { - server4_addr.sin_family = AF_INET; - server4_addr.sin_port = htons(server_port); - server_addr = (struct sockaddr*)&server4_addr; - addr_len = sizeof(server4_addr); - } - else if(inet_pton(AF_INET6, server_ip_str, &server6_addr.sin6_addr) == 1) - { - server6_addr.sin6_family = AF_INET6; - server6_addr.sin6_port = htons(server_port); - server_addr = (struct sockaddr*)&server6_addr; - addr_len = sizeof(server6_addr); - } - else { - perror("inet_pton()"); - exit(1); - } - - if((client_fd = socket(AF_INET6, SOCK_STREAM, IPPROTO_SCTP)) == -1) - { - perror("socket"); - exit(1); - } - - // int sendbuff = 10000; - // socklen_t optlen = sizeof(sendbuff); - // if(getsockopt(client_fd, SOL_SOCKET, SO_SNDBUF, &sendbuff, &optlen) == -1) { - // perror("getsockopt send"); - // exit(1); - // } - // else - // LOG_D("[SCTP] send buffer size = %d\n", sendbuff); - - //-------------------------------- - //Bind before connect - auto optval = 1; - if( setsockopt(client_fd, SOL_SOCKET, SO_REUSEPORT, &optval, sizeof optval) != 0 ){ - perror("setsockopt port"); - exit(1); - } - - if( setsockopt(client_fd, SOL_SOCKET, SO_REUSEADDR, &optval, sizeof optval) != 0 ){ - perror("setsockopt addr"); - exit(1); - } - - struct sockaddr_in6 client6_addr {}; - client6_addr.sin6_family = AF_INET6; - client6_addr.sin6_port = htons(RIC_SCTP_SRC_PORT); - client6_addr.sin6_addr = in6addr_any; - - LOG_I("[SCTP] Binding client socket to source port %d", RIC_SCTP_SRC_PORT); - if(bind(client_fd, (struct sockaddr*)&client6_addr, sizeof(client6_addr)) == -1) { - perror("bind"); - exit(1); - } - // end binding --------------------- - - LOG_I("[SCTP] Connecting to server at %s:%d ...", server_ip_str, server_port); - if(connect(client_fd, server_addr, addr_len) == -1) { - perror("connect"); - exit(1); - } - assert(client_fd != 0); - - LOG_I("[SCTP] Connection established"); - - return client_fd; -} - -int sctp_accept_connection(const char *server_ip_str, const int server_fd) -{ - LOG_I("[SCTP] Waiting for new connection..."); - - struct sockaddr client_addr; - socklen_t client_addr_size; - int client_fd; - - //Blocking call - client_fd = accept(server_fd, &client_addr, &client_addr_size); - fprintf(stderr, "client fd is %d\n", client_fd); - if(client_fd == -1){ - perror("accept()"); - close(client_fd); - exit(1); - } - - //Retrieve client IP_ADDR - char client_ip6_addr[INET6_ADDRSTRLEN], client_ip4_addr[INET_ADDRSTRLEN]; - if(strchr(server_ip_str, ':') != NULL) //IPv6 - { - struct sockaddr_in6* client_ipv6 = (struct sockaddr_in6*)&client_addr; - inet_ntop(AF_INET6, &(client_ipv6->sin6_addr), client_ip6_addr, INET6_ADDRSTRLEN); - LOG_I("[SCTP] New client connected from %s", client_ip6_addr); - } - else { - struct sockaddr_in* client_ipv4 = (struct sockaddr_in*)&client_addr; - inet_ntop(AF_INET, &(client_ipv4->sin_addr), client_ip4_addr, INET_ADDRSTRLEN); - LOG_I("[SCTP] New client connected from %s", client_ip4_addr); - } - - return client_fd; -} - -int sctp_send_data(int &socket_fd, sctp_buffer_t &data) -{ - fprintf(stderr,"in sctp send data func\n"); - fprintf(stderr,"data.len is %d", data.len); - int sent_len = send(socket_fd, (void*)(&(data.buffer[0])), data.len, 0); - fprintf(stderr,"after getting sent_len\n"); - - if(sent_len == -1) { - perror("[SCTP] sctp_send_data"); - exit(1); - } - - return sent_len; -} - -int sctp_send_data_X2AP(int &socket_fd, sctp_buffer_t &data) -{ - int sent_len = sctp_sendmsg(socket_fd, (void*)(&(data.buffer[0])), data.len, - NULL, 0, (uint32_t) X2AP_PPID, 0, 0, 0, 0); - - if(sent_len == -1) { - perror("[SCTP] sctp_send_data"); - exit(1); - } - -} - -/* -Receive data from SCTP socket -Outcome of recv() --1: exit the program -0: close the connection -+: new data -*/ -int sctp_receive_data(int &socket_fd, sctp_buffer_t &data) -{ - //clear out the data before receiving - fprintf(stderr, "receive data1\n"); - memset(data.buffer, 0, sizeof(data.buffer)); - fprintf(stderr, "receive data2\n"); - data.len = 0; - - //receive data from the socket - int recv_len = recv(socket_fd, &(data.buffer), sizeof(data.buffer), 0); - fprintf(stderr, "receive data3\n"); - - if(recv_len == -1) - { - perror("[SCTP] recv"); - exit(1); - } - else if (recv_len == 0) - { - LOG_I("[SCTP] Connection closed by remote peer"); - if(close(socket_fd) == -1) - { - perror("[SCTP] close"); - } - return -1; - } - - data.len = recv_len; - - return recv_len; -} diff --git a/e2sim/previous/e2apv1sim/ricsim/src/SCTP/e2sim_sctp.h b/e2sim/previous/e2apv1sim/ricsim/src/SCTP/e2sim_sctp.h deleted file mode 100644 index c102df0..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/SCTP/e2sim_sctp.h +++ /dev/null @@ -1,39 +0,0 @@ -/* - * - * Copyright 2019 AT&T Intellectual Property - * Copyright 2019 Nokia - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -/*! \file e2sim_sctp.h - */ - -#ifndef E2SIM_SCTP_H -#define E2SIM_SCTP_H - -void *handle_connection(void *thread_data); - -int sctp_start_server(const char *server_ip_str, const int server_port); - -int sctp_start_client(const char *server_ip_str, const int server_port); - -int sctp_send_to_socket(int sockfd, const void *buf, size_t len); - -//int sctp_recv_from_socket(int sockfd, void *buf, size_t buf_size); - -//test only -void client_send_multiple_test_msg(int client_fd); - -#endif diff --git a/e2sim/previous/e2apv1sim/ricsim/src/SCTP/e2sim_sctp.hpp b/e2sim/previous/e2apv1sim/ricsim/src/SCTP/e2sim_sctp.hpp deleted file mode 100644 index b16fcf6..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/SCTP/e2sim_sctp.hpp +++ /dev/null @@ -1,39 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -#ifndef E2SIM_SCTP_HPP -#define E2SIM_SCTP_HPP - -#include "e2sim_defs.h" - -const int SERVER_LISTEN_QUEUE_SIZE = 10; - -int sctp_start_server(const char *server_ip_str, const int server_port); - -int sctp_start_client(const char *server_ip_str, const int server_port); - -int sctp_accept_connection(const char *server_ip_str, const int server_fd); - -int sctp_send_data(int &socket_fd, sctp_buffer_t &data); - -int sctp_send_data_X2AP(int &socket_fd, sctp_buffer_t &data); - -int sctp_receive_data(int &socket_fd, sctp_buffer_t &data); - -#endif diff --git a/e2sim/previous/e2apv1sim/ricsim/src/X2AP/MESSAGES/XML/sample_endc_x2_setup_failure.xml b/e2sim/previous/e2apv1sim/ricsim/src/X2AP/MESSAGES/XML/sample_endc_x2_setup_failure.xml deleted file mode 100644 index f0b6262..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/X2AP/MESSAGES/XML/sample_endc_x2_setup_failure.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - 36 - - - - - - 5 - - - - - - - - - - - - diff --git a/e2sim/previous/e2apv1sim/ricsim/src/X2AP/MESSAGES/XML/sample_endc_x2_setup_request.xml b/e2sim/previous/e2apv1sim/ricsim/src/X2AP/MESSAGES/XML/sample_endc_x2_setup_request.xml deleted file mode 100644 index 5f94d2e..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/X2AP/MESSAGES/XML/sample_endc_x2_setup_request.xml +++ /dev/null @@ -1,67 +0,0 @@ - - - 36 - - - - - - 244 - - - - - - 21 - - - - 61 62 63 - - - 00110101000000000001 - - - - - - - 250 - - - - - - 0 - - 61 62 63 - - 0110010001100101011001100000 - - - 61 62 - - 61 62 63 - - - - 21400 - 3400 - - - - - - - - - - - - - - - - - - diff --git a/e2sim/previous/e2apv1sim/ricsim/src/X2AP/MESSAGES/XML/sample_endc_x2_setup_response.xml b/e2sim/previous/e2apv1sim/ricsim/src/X2AP/MESSAGES/XML/sample_endc_x2_setup_response.xml deleted file mode 100644 index 587b578..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/X2AP/MESSAGES/XML/sample_endc_x2_setup_response.xml +++ /dev/null @@ -1,36 +0,0 @@ - - - 36 - - - - - - 246 - - - - - - 252 - - - - 02 F8 29 - - - 01001010100101010010101010101010 - - - - - - - - - - - - - - diff --git a/e2sim/previous/e2apv1sim/ricsim/src/X2AP/MESSAGES/XML/sample_x2_setup_failure.xml b/e2sim/previous/e2apv1sim/ricsim/src/X2AP/MESSAGES/XML/sample_x2_setup_failure.xml deleted file mode 100644 index 3b82969..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/X2AP/MESSAGES/XML/sample_x2_setup_failure.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - 6 - - - - - - 5 - - - - - - - - - - - - diff --git a/e2sim/previous/e2apv1sim/ricsim/src/X2AP/MESSAGES/XML/sample_x2_setup_request.xml b/e2sim/previous/e2apv1sim/ricsim/src/X2AP/MESSAGES/XML/sample_x2_setup_request.xml deleted file mode 100644 index 3589f28..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/X2AP/MESSAGES/XML/sample_x2_setup_request.xml +++ /dev/null @@ -1,57 +0,0 @@ - - - 6 - - - - - - 21 - - - - 02 F8 39 - - - 00000000111000100000 - - - - - - - 20 - - - - - - 0 - - 02 F8 39 - - 0000000011100010000000000000 - - - 00 01 - - 02 F8 39 - - - - 21400 - 3400 - - - - - - - - - - - - - - diff --git a/e2sim/previous/e2apv1sim/ricsim/src/X2AP/MESSAGES/XML/sample_x2_setup_response.xml b/e2sim/previous/e2apv1sim/ricsim/src/X2AP/MESSAGES/XML/sample_x2_setup_response.xml deleted file mode 100644 index bab51d3..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/X2AP/MESSAGES/XML/sample_x2_setup_response.xml +++ /dev/null @@ -1,69 +0,0 @@ - - - 6 - - - - - - 21 - - - - 02 F8 39 - - - 00000000111000110000 - - - - - - - 20 - - - - - - 0 - - 02 F8 39 - - 0000000011100011000000000000 - - - 00 01 - - 02 F8 39 - - - - 21400 - 3400 - - - - - - - - - - - 24 - - - - - 02 F8 39 - 00 00 - - - - - - - - - diff --git a/e2sim/previous/e2apv1sim/ricsim/src/X2AP/x2ap_asn_codec.c b/e2sim/previous/e2apv1sim/ricsim/src/X2AP/x2ap_asn_codec.c deleted file mode 100644 index 959e7ef..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/X2AP/x2ap_asn_codec.c +++ /dev/null @@ -1,64 +0,0 @@ -/* - * - * Copyright 2019 AT&T Intellectual Property - * Copyright 2019 Nokia - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -#include "x2ap_asn_codec.h" -#include "per_decoder.h" -#include "per_encoder.h" - -/* Encode X2AP PDU ASN1 buffer*/ -int X2AP_ASN_encode(X2AP_PDU_t *pdu, uint8_t **buffer, uint32_t *len) -{ - ssize_t encoded; - - assert(pdu != NULL); - assert(buffer != NULL); - assert(len != NULL); - - encoded = aper_encode_to_new_buffer(&asn_DEF_X2AP_PDU, 0, pdu, (void **)buffer); - - if (encoded < 0) - { - return -1; - } - - *len = encoded; - - ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_X2AP_PDU, pdu); - return encoded; -} - -/* Decode XASN1 buffer to X2AP PDU*/ -int X2AP_ASN_decode(X2AP_PDU_t *pdu, const uint8_t *const buffer, const int len) -{ - asn_dec_rval_t dec_ret; - - assert(buffer != NULL); - - dec_ret = aper_decode(NULL, &asn_DEF_X2AP_PDU, (void **)&pdu, buffer, - len, 0, 0); - - //xer_fprint(stdout, &asn_DEF_X2AP_PDU, pdu); - - if (dec_ret.code != RC_OK) { - fprintf(stderr, "ERROR: Failed to decode pdu\n"); - return -1; - } - - return 0; -} diff --git a/e2sim/previous/e2apv1sim/ricsim/src/X2AP/x2ap_asn_codec.cpp b/e2sim/previous/e2apv1sim/ricsim/src/X2AP/x2ap_asn_codec.cpp deleted file mode 100644 index 7f2e6be..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/X2AP/x2ap_asn_codec.cpp +++ /dev/null @@ -1,59 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -#include "x2ap_asn_codec.hpp" - -void x2ap_encode_pdu(x2ap_pdu_t* pdu, unsigned char* buf, int buf_size, int &encoded_size) -{ - char err_buf[X2AP_ERROR_MESSAGE_BUFFER]; - - encoded_size = x2ap_asn_per_encode(pdu, buf, buf_size, err_buf, sizeof(err_buf)); - - if(encoded_size != -1) - { - LOG_D("[X2AP] ASN Encode successful, encoded_size = %d", encoded_size); - } - else - { - LOG_E("[X2AP] Encode error: %s", err_buf); - exit(1); - } - -} - -void x2ap_decode_pdu(x2ap_pdu_t* pdu, unsigned char* buf, int &encoded_size) -{ - char err_buf[X2AP_ERROR_MESSAGE_BUFFER]; - - int rc = x2ap_asn_per_decode(pdu, buf, encoded_size, err_buf, sizeof(err_buf)); - if(rc == -1) { - LOG_E("[X2AP] Decode error: %s", err_buf); - } else { - LOG_D("[X2AP] ASN decode successful"); - } -} - -void x2ap_print_pdu(x2ap_pdu_t* pdu) -{ - char pdu_str[X2AP_PDU_PRINT_BUFFER]; - - x2ap_asn_print(pdu, pdu_str, sizeof(pdu_str)); - - LOG_D("[X2AP] %s", pdu_str); -} diff --git a/e2sim/previous/e2apv1sim/ricsim/src/X2AP/x2ap_asn_codec.h b/e2sim/previous/e2apv1sim/ricsim/src/X2AP/x2ap_asn_codec.h deleted file mode 100644 index bad3ae7..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/X2AP/x2ap_asn_codec.h +++ /dev/null @@ -1,30 +0,0 @@ -/* - * - * Copyright 2019 AT&T Intellectual Property - * Copyright 2019 Nokia - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -#ifndef X2AP_ASN_CODEC_H_ -#define X2AP_ASN_CODEC_H_ - -#include "X2AP-PDU.h" - -int X2AP_ASN_encode(X2AP_PDU_t *pdu, uint8_t **buffer, uint32_t *len) -__attribute__ ((warn_unused_result)); - -int X2AP_ASN_decode(X2AP_PDU_t *pdu, const uint8_t *const buffer, const int len); - -#endif diff --git a/e2sim/previous/e2apv1sim/ricsim/src/X2AP/x2ap_asn_codec.hpp b/e2sim/previous/e2apv1sim/ricsim/src/X2AP/x2ap_asn_codec.hpp deleted file mode 100644 index a07f441..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/X2AP/x2ap_asn_codec.hpp +++ /dev/null @@ -1,34 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ -#ifndef X2AP_ASN_CODEC_HPP -#define X2AP_ASN_CODEC_HPP - -#include "e2sim_defs.h" -#include "asn_x2ap.hpp" - -#define X2AP_ERROR_MESSAGE_BUFFER 1024 -#define X2AP_PDU_PRINT_BUFFER 4096 - -void x2ap_encode_pdu(x2ap_pdu_t* pdu, unsigned char* buf, int buf_size, int &encoded_size); - -void x2ap_decode_pdu(x2ap_pdu_t* pdu, unsigned char* buf, int &encoded_size); - -void x2ap_print_pdu(x2ap_pdu_t* pdu); - -#endif diff --git a/e2sim/previous/e2apv1sim/ricsim/src/X2AP/x2ap_generate_messages.c b/e2sim/previous/e2apv1sim/ricsim/src/X2AP/x2ap_generate_messages.c deleted file mode 100644 index db12a3e..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/X2AP/x2ap_generate_messages.c +++ /dev/null @@ -1,113 +0,0 @@ -/* - * - * Copyright 2019 AT&T Intellectual Property - * Copyright 2019 Nokia - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -#include -#include -#include -#include -#include -#include "x2ap_generate_messages.h" -#include "x2ap_asn_codec.h" -#include "e2sim_defs.h" - -int asn1_xer_print = 0; -int MAX_XML_BUFFER = 10000; - -void x2ap_fetch_pdu_from_XML(X2AP_PDU_t **pdu, char *filename) -{ - - uint8_t buf[MAX_XML_BUFFER]; - - asn_dec_rval_t rval; - size_t size; - FILE *f; - - char XML_path[200]; - char *work_dir = getenv(WORKDIR_ENV); - - strcpy(XML_path, work_dir); - strcat(XML_path, "/src/X2AP/MESSAGES/XML/"); - strcat(XML_path, filename); - - //printf("Generate X2AP PDU from XML file: %s\n", XML_path); - - f = fopen(XML_path, "r"); - assert(f); - size = fread(buf, 1, sizeof(buf), f); - if(size == 0 || size == sizeof(buf)) - { - fprintf(stderr, "%s: Too large input\n", XML_path); - exit(1); - } - - fclose(f); - - //printf("Decode the XER buffer\n"); - rval = xer_decode(NULL, &asn_DEF_X2AP_PDU, (void **)pdu, buf, size); - assert(rval.code == RC_OK); - -} - -uint32_t x2ap_generate_x2_setup_request(uint8_t **buffer) -{ - X2AP_PDU_t *pdu; - pdu = (X2AP_PDU_t *)calloc(1, sizeof(X2AP_PDU_t)); - - uint32_t len; - - char *XML_file = "sample_x2_setup_request.xml"; - - x2ap_fetch_pdu_from_XML(&pdu, XML_file); - - if(asn1_xer_print) - xer_fprint(stdout, &asn_DEF_X2AP_PDU, (void *)pdu); - - if(X2AP_ASN_encode(pdu, buffer, &len) < 0) - { - fprintf(stderr, "Failed to APER encode X2 Setup Request\n"); - return -1; - } - - return len; - -} - -uint32_t x2ap_generate_x2_setup_response(uint8_t **buffer) -{ - X2AP_PDU_t *pdu; - pdu = (X2AP_PDU_t *)calloc(1, sizeof(X2AP_PDU_t)); - - uint32_t len; - - char *XML_file = "sample_x2_setup_response.xml"; - - x2ap_fetch_pdu_from_XML(&pdu, XML_file); - - if(asn1_xer_print) - xer_fprint(stdout, &asn_DEF_X2AP_PDU, (void *)pdu); - - if(X2AP_ASN_encode(pdu, buffer, &len) < 0) - { - fprintf(stderr, "Failed to APER encode X2 Setup Request\n"); - return -1; - } - - return len; - -} diff --git a/e2sim/previous/e2apv1sim/ricsim/src/X2AP/x2ap_generate_messages.h b/e2sim/previous/e2apv1sim/ricsim/src/X2AP/x2ap_generate_messages.h deleted file mode 100644 index 53998b7..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/X2AP/x2ap_generate_messages.h +++ /dev/null @@ -1,31 +0,0 @@ -/* - * - * Copyright 2019 AT&T Intellectual Property - * Copyright 2019 Nokia - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -#ifndef X2AP_ENB_GENERATE_MESSAGES_H_ -#define X2AP_ENB_GENERATE_MESSAGES_H_ - -#include "X2AP-PDU.h" - -void x2ap_fetch_pdu_from_XML(X2AP_PDU_t **pdu, char *filename); - -uint32_t x2ap_generate_x2_setup_request(uint8_t **buffer); - -uint32_t x2ap_generate_x2_setup_response(uint8_t **buffer); - -#endif diff --git a/e2sim/previous/e2apv1sim/ricsim/src/X2AP/x2ap_message_handler.c b/e2sim/previous/e2apv1sim/ricsim/src/X2AP/x2ap_message_handler.c deleted file mode 100644 index 4fa635e..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/X2AP/x2ap_message_handler.c +++ /dev/null @@ -1,139 +0,0 @@ -/* - * - * Copyright 2019 AT&T Intellectual Property - * Copyright 2019 Nokia - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -#include -#include -#include - -#include "x2ap_message_handler.h" - -typedef int (*x2ap_message_decoded_handler)(X2AP_PDU_t *pdu, sctp_data_t *response); - -static int handle_x2_setup_request(X2AP_PDU_t *pdu, sctp_data_t *response); - -static int handle_x2_setup_response(X2AP_PDU_t *pdu, sctp_data_t *response); - -static int handle_x2_setup_failure(X2AP_PDU_t *pdu, sctp_data_t *response); - -/* Handlers matrix. Only eNB related procedure present here -/* rowID = procedureCode (start with 0) -*/ -x2ap_message_decoded_handler x2ap_messages_handler[][3] = { - { 0, 0, 0 }, /* handoverPreparation */ - { 0, 0, 0 }, /* handoverCancel */ - { 0, 0, 0 }, /* loadIndication */ - { 0, 0, 0 }, /* errorIndication */ - { 0, 0, 0 }, /* snStatusTransfer */ - { 0, 0, 0 }, /* uEContextRelease */ - { handle_x2_setup_request, handle_x2_setup_response, handle_x2_setup_failure }, /* x2Setup */ - { 0, 0, 0 }, /* reset */ - { 0, 0, 0 }, /* eNBConfigurationUpdate */ - { 0, 0, 0 }, /* resourceStatusReportingInitiation */ - { 0, 0, 0 }, /* resourceStatusReporting */ - { 0, 0, 0 }, /* privateMessage */ - { 0, 0, 0 }, /* mobilitySettingsChange */ - { 0, 0, 0 }, /* rLFIndication */ - { 0, 0, 0 }, /* handoverReport */ - { 0, 0, 0 }, /* cellActivation */ - { 0, 0, 0 }, /* x2Release */ - { 0, 0, 0 }, /* x2APMessageTransfer */ - { 0, 0, 0 }, /* x2Removal */ - { 0, 0, 0 }, /* seNBAdditionPreparation */ - { 0, 0, 0 }, /* seNBReconfigurationCompletion */ - { 0, 0, 0 }, /* meNBinitiatedSeNBModificationPreparation */ - { 0, 0, 0 }, /* seNBinitiatedSeNBModification */ - { 0, 0, 0 }, /* meNBinitiatedSeNBRelease */ - { 0, 0, 0 }, /* seNBinitiatedSeNBRelease */ - { 0, 0, 0 }, /* seNBCounterCheck */ - { 0, 0, 0 } /* retrieveUEContext */ -}; - -char *x2ap_direction2String(int x2ap_dir) -{ - static char *x2ap_direction_String[] = { - "", /* Nothing */ - "Originating message", /* originating message */ - "Successfull outcome", /* successfull outcome */ - "UnSuccessfull outcome", /* successfull outcome */ - }; - return(x2ap_direction_String[x2ap_dir]); -} - -int x2ap_eNB_handle_message(const uint8_t *const data, const int data_len, sctp_data_t* response) -{ - X2AP_PDU_t pdu; - int ret; - - memset(&pdu, 0, sizeof(pdu)); - - //printf("Decode the PDU \n"); - - if (X2AP_ASN_decode(&pdu, data, data_len) < 0){ - return -1; - } - - /* Checking procedure Code and direction of message */ - if (pdu.choice.initiatingMessage.procedureCode > sizeof(x2ap_messages_handler) - / (3 * sizeof(x2ap_message_decoded_handler)) - || (pdu.present > X2AP_PDU_PR_unsuccessfulOutcome)) { - - fprintf(stderr, "Either procedureCode %ld or direction %d exceed expected\n", - pdu.choice.initiatingMessage.procedureCode, pdu.present); - ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_X2AP_PDU, &pdu); - return -1; - } - - if (x2ap_messages_handler[pdu.choice.initiatingMessage.procedureCode][pdu.present - 1] == NULL) - { - fprintf(stderr, "No handler for procedureCode %ld in direction %s\n", - pdu.choice.initiatingMessage.procedureCode, - x2ap_direction2String(pdu.present - 1)); - ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_X2AP_PDU, &pdu); - return -1; - } - - /*calling the appropriate handler */ - ret = (*x2ap_messages_handler[pdu.choice.initiatingMessage.procedureCode][pdu.present - 1])(&pdu, response); - ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_X2AP_PDU, &pdu); - return ret; -} - -int handle_x2_setup_request(X2AP_PDU_t *pdu, sctp_data_t* response) -{ - fprintf(stderr, "Received X2 SETUP REQUEST\n"); - - /* Todo: when to generate X2 Setup Failure??? - */ - - response->len = x2ap_generate_x2_setup_response(&response->data); - - return 0; -} - -int handle_x2_setup_response(X2AP_PDU_t *pdu, sctp_data_t* response) -{ - fprintf(stderr, "Received X2 SETUP RESPONSE\n"); - return 0; -} - -int handle_x2_setup_failure(X2AP_PDU_t *pdu, sctp_data_t* response) -{ - fprintf(stderr, "Received X2 SETUP FAILURE\n"); - return 0; -} diff --git a/e2sim/previous/e2apv1sim/ricsim/src/X2AP/x2ap_message_handler.cpp b/e2sim/previous/e2apv1sim/ricsim/src/X2AP/x2ap_message_handler.cpp deleted file mode 100644 index f818304..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/X2AP/x2ap_message_handler.cpp +++ /dev/null @@ -1,128 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ -#include "x2ap_message_handler.hpp" - - -void x2ap_handle_sctp_data(int &socket_fd, sctp_buffer_t &data) -{ - //decode the data into X2AP-PDU - x2ap_pdu_t* pdu = new_x2ap_pdu(); - - x2ap_decode_pdu(pdu, data.buffer, data.len); - - x2ap_print_pdu(pdu); - - int index = x2ap_get_index(pdu); - int procedureCode = x2ap_get_procedureCode(pdu); - - switch(procedureCode) - { - case 6: //X2Setup - switch(index) - { - case 1: //initiatingMessage - LOG_D("[X2AP] Received X2 SETUP REQUEST"); - x2ap_handle_X2SetupRequest(pdu, socket_fd); - break; - - case 2: //successfulOutcome - LOG_D("[X2AP] Received X2 SETUP RESPONSE"); - //x2ap_handle_X2SetupResponse(pdu, socket_fd); - break; - - case 3: - LOG_D("[X2AP] Received X2 SETUP FAILURE"); - break; - - default: - LOG_E("[X2AP] Invalid message index=%d in X2AP-PDU", index); - break; - } - break; - - case 36: //ENDCX2Setup - switch(index) - { - case 1: //initiatingMessage - LOG_D("[X2AP] Received ENDC X2 SETUP REQUEST"); - x2ap_handle_ENDCX2SetupRequest(pdu, socket_fd); - break; - - case 2: //successfulOutcome - LOG_D("[X2AP] Received ENDC X2 SETUP RESPONSE"); - //x2ap_handle_X2SetupResponse(pdu, socket_fd); - break; - - case 3: - LOG_D("[X2AP] Received ENDC X2 SETUP FAILURE"); - break; - - default: - LOG_E("[X2AP] Invalid message index=%d in X2AP-PDU", index); - break; - } - break; - - default: - LOG_E("[X2AP] No available handler for procedureCode=%d", procedureCode); - break; - } -} - -void x2ap_handle_X2SetupRequest(x2ap_pdu_t* pdu, int &socket_fd) -{ - /* - Simply send back X2SetupResponse - Todo: add more handling options (failure, duplicated request, etc.) - */ - - x2ap_pdu_t* res_pdu = new_x2ap_pdu(); - eNB_config cfg; - - x2ap_create_X2SetupResponse(res_pdu, cfg); - LOG_D("[X2AP] Created X2 SETUP RESPONSE") - - x2ap_print_pdu(res_pdu); - - //encode response pdu into buffer - sctp_buffer_t res_data; - x2ap_encode_pdu(res_pdu, res_data.buffer, sizeof(res_data.buffer), res_data.len); - - //send response data over sctp - if(sctp_send_data(socket_fd, res_data) > 0) { - LOG_D("[SCTP] Sent X2 SETUP RESPONSE"); - } else { - LOG_D("[SCTP] Unable to send X2 SETUP RESPONSE to peer"); - } -} - -void x2ap_handle_X2SetupResponse(x2ap_pdu_t* pdu, int &socket_fd) -{ - ; -} - - -void x2ap_handle_ENDCX2SetupRequest(x2ap_pdu_t* pdu, int &socket_fd) -{ - /* - Simply send back ENDCX2SetupResponse - Todo: add more handling options (failure, duplicated request, etc.) - */ - ; -} diff --git a/e2sim/previous/e2apv1sim/ricsim/src/X2AP/x2ap_message_handler.h b/e2sim/previous/e2apv1sim/ricsim/src/X2AP/x2ap_message_handler.h deleted file mode 100644 index 9c9d6ff..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/X2AP/x2ap_message_handler.h +++ /dev/null @@ -1,30 +0,0 @@ -/* - * - * Copyright 2019 AT&T Intellectual Property - * Copyright 2019 Nokia - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -#ifndef X2AP_ENB_HANDLER_H_ -#define X2AP_ENB_HANDLER_H_ - -#include "x2ap_asn_codec.h" -#include "X2AP-PDU.h" -#include "e2sim_defs.h" -#include "x2ap_generate_messages.h" - -int x2ap_eNB_handle_message(const uint8_t *const data, const int data_len, sctp_data_t* response); - -#endif diff --git a/e2sim/previous/e2apv1sim/ricsim/src/X2AP/x2ap_message_handler.hpp b/e2sim/previous/e2apv1sim/ricsim/src/X2AP/x2ap_message_handler.hpp deleted file mode 100644 index b3146c7..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/src/X2AP/x2ap_message_handler.hpp +++ /dev/null @@ -1,35 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ -#ifndef X2AP_MESSAGE_HANDLER_HPP -#define X2AP_MESSAGE_HANDLER_HPP - -#include "e2sim_defs.h" -#include "e2sim_sctp.hpp" -#include "asn_x2ap.hpp" -#include "x2ap_asn_codec.hpp" - -void x2ap_handle_sctp_data(int &socket_fd, sctp_buffer_t &data); - -void x2ap_handle_X2SetupRequest(x2ap_pdu_t* pdu, int &socket_fd); - -void x2ap_handle_X2SetupResponse(x2ap_pdu_t* pdu, int &socket_fd); - -void x2ap_handle_ENDCX2SetupRequest(x2ap_pdu_t* pdu, int &socket_fd); - -#endif diff --git a/e2sim/previous/e2apv1sim/ricsim/test/Misc/CMakeLists.txt b/e2sim/previous/e2apv1sim/ricsim/test/Misc/CMakeLists.txt deleted file mode 100644 index bf6c51c..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/test/Misc/CMakeLists.txt +++ /dev/null @@ -1,86 +0,0 @@ -#/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -#******************************************************************************/ - -cmake_minimum_required(VERSION 3.5.1) -set(CMAKE_CXX_COMPILER "/usr/bin/g++") -set(CMAKE_CXX_STANDARD 14) - -add_definitions("-D ASN_DISABLE_OER_SUPPORT") - -project(e2sim) - -set (HOME_DIR $ENV{HOME}) -#set (E2SIM_ROOT ../../../) - -include_directories("src") -include_directories("src/SCTP/") -include_directories("src/E2AP") -include_directories("src/E2AP/E2SM") -include_directories("ASN1c") - -find_library( SCTP_LIBRARY sctp ) #needed for sctp_sendmsg - -#---------------------------------------------- -file(GLOB E2AGENT_SOURCES - "src/e2agent.cpp" - "src/e2sim_defs.cpp" - "src/SCTP/*.cpp" - "src/E2AP/*.c" - "src/E2AP/*.cpp" - "ASN1c/*.c" - ) -add_executable(e2agent ${E2AGENT_SOURCES}) -target_link_libraries( e2agent ${SCTP_LIBRARY} ) - -#---------------------------------------------- -file(GLOB RICSIM_SOURCES - "src/ric_sim.cpp" - "src/e2sim_defs.cpp" - "src/SCTP/*.cpp" - "src/E2AP/*.c" - "src/E2AP/*.cpp" - "ASN1c/*.c" - ) -add_executable(ric_sim ${RICSIM_SOURCES}) -target_link_libraries( ric_sim ${SCTP_LIBRARY} ) - - -#---------------------------------------------- -file(GLOB X2TERM_SOURCES - "src/x2term.cpp" - "src/e2sim_defs.cpp" - "src/SCTP/*.cpp" - "src/E2AP/*.c" - "src/E2AP/*.cpp" - "ASN1c/*.c" - ) -add_executable(x2term ${X2TERM_SOURCES}) -target_link_libraries( x2term ${SCTP_LIBRARY} ) - - -#----------------------------------------------- -file(GLOB TEST - "src/test_asn1c.cpp" - "src/e2sim_defs.cpp" -# "src/SCTP/*.cpp" - "ASN1c/*.c" - "src/E2AP/*.c" - "src/E2AP/E2SM/*.c" - ) -add_executable(test_asn1c ${TEST}) diff --git a/e2sim/previous/e2apv1sim/ricsim/test/Misc/test_asn1c.cpp b/e2sim/previous/e2apv1sim/ricsim/test/Misc/test_asn1c.cpp deleted file mode 100644 index 690f767..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/test/Misc/test_asn1c.cpp +++ /dev/null @@ -1,79 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -#include -#include -#include -#include -#include - -extern "C" { - #include "e2sim_defs.h" - #include "E2AP-PDU.h" - #include "e2ap_asn1c_codec.h" - #include "e2sm.h" - -} - -using namespace std; - -int main(int argc, char* argv[]){ - - LOG_I("Test ASN1c"); - - test_eventTriggerDefinition(); - return 0; - - E2AP_PDU_t* pdu = e2ap_xml_to_pdu("E2AP_X2SetupRequest.xml"); - // E2AP_PDU_t* pdu = e2ap_xml_to_pdu("E2AP_X2SetupResponse.xml"); - // E2AP_PDU_t* pdu = e2ap_xml_to_pdu("E2AP_X2SetupFailure.xml"); - - // E2AP_PDU_t* pdu = e2ap_xml_to_pdu("E2AP_ENDCX2SetupRequest.xml"); - // E2AP_PDU_t* pdu = e2ap_xml_to_pdu("E2AP_ENDCX2SetupResponse.xml"); - // E2AP_PDU_t* pdu = e2ap_xml_to_pdu("E2AP_ENDCX2SetupFailure.xml"); - - // E2AP_PDU_t* pdu = e2ap_xml_to_pdu("E2AP_RICsubscriptionRequest.xml"); - // E2AP_PDU_t* pdu = e2ap_xml_to_pdu("E2AP_RICsubscriptionResponse.xml"); - // E2AP_PDU_t* pdu = e2ap_xml_to_pdu("E2AP_ErrorIndication.xml"); - - e2ap_asn1c_print_pdu(pdu); - - /* Test encoding */ - uint8_t *buf; - sctp_buffer_t data; - - data.len = e2ap_asn1c_encode_pdu(pdu, &buf); - memcpy(data.buffer, buf, min(data.len, MAX_SCTP_BUFFER)); - - /* Test decoding */ - E2AP_PDU_t* pdu1 = new E2AP_PDU_t(); - - e2ap_asn1c_decode_pdu(pdu1, data.buffer, data.len); - - e2ap_asn1c_print_pdu(pdu1); - - int index = (int)pdu1->present; - - int pCode = e2ap_asn1c_get_procedureCode(pdu1); - - LOG_I("Index = %d, procedureCode = %d", index, pCode); - - - return 0; -} diff --git a/e2sim/previous/e2apv1sim/ricsim/test/Pendulum/Pendulum_asn_codec.c b/e2sim/previous/e2apv1sim/ricsim/test/Pendulum/Pendulum_asn_codec.c deleted file mode 100644 index 9b44adf..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/test/Pendulum/Pendulum_asn_codec.c +++ /dev/null @@ -1,180 +0,0 @@ -/* - * - * Copyright 2019 AT&T Intellectual Property - * Copyright 2019 Nokia - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -#include "Pendulum_asn_codec.h" -#include "per_decoder.h" -#include "per_encoder.h" - -#include "OCTET_STRING.h" - -static int ASN_DEBUG = 0; - -int pendulum_asn_encode(Pendulum_t *pend, uint8_t **buffer, uint32_t *len) -{ - ssize_t encoded; - assert(pend != NULL); - assert(buffer != NULL); - - encoded = aper_encode_to_new_buffer(&asn_DEF_Pendulum, 0, pend, (void **)buffer); - if(encoded < 0){ - perror("Failed to aper encode\n"); - exit(1); - } - - *len = encoded; - //ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_Pendulum, pend); - return encoded; -} - -int pendulum_asn_decode(Pendulum_t *pend, const uint8_t *const buffer, const int len) -{ - asn_dec_rval_t dec_ret; - - // THIS IS IMPORTANT, otherwise: Segmentation fault - memset(pend, 0, sizeof(*pend)); - - assert(buffer != NULL); - - dec_ret = aper_decode(NULL, &asn_DEF_Pendulum, (void **)&pend, buffer, len, 0, 0); - if (dec_ret.code != RC_OK) { - fprintf(stderr, "ERROR: Failed to decode asn1 message\n"); - return -1; - } - - if(ASN_DEBUG) - xer_fprint(stdout, &asn_DEF_Pendulum, pend); - - return 0; -} - -int pendulum_create_asn_msg(uint8_t **buffer, long sequence, - double angle, double torque, const char* msg) -{ - //Create Pendulum payload struct - Pendulum_t *pend; - - pend = calloc(1, sizeof(Pendulum_t)); - if(!pend){ - perror("calloc() failed"); - exit(1); - } - - //convert char* to PrintableString_t* - PrintableString_t *payload = calloc(1, sizeof(PrintableString_t)); - payload->buf = (uint8_t *)msg; - payload->size = strlen(msg); - - pend->strval = payload; - pend->sequence = &sequence; - pend->angle = ∠ - pend->torque = &torque; - - if (ASN_DEBUG) - xer_fprint(stdout, &asn_DEF_Pendulum, pend); - - //Encode Pendulum payload struct to asn1 buffer - uint32_t len; - if(pendulum_asn_encode(pend, buffer, &len) < 0) - { - return -1; - } - //fprintf(stderr, "len = %d\n", len); - - return len; -} - -long pendulum_get_sequence(const uint8_t *const buffer, const int len) -{ - Pendulum_t pend; - pendulum_asn_decode(&pend, buffer, len); - - return *(pend.sequence); -} - -double pendulum_get_angle(const uint8_t *const buffer, const int len) -{ - Pendulum_t pend; - pendulum_asn_decode(&pend, buffer, len); - - return *(pend.angle); -} - -double pendulum_get_torque(const uint8_t *const buffer, const int len) -{ - Pendulum_t pend; - pendulum_asn_decode(&pend, buffer, len); - - return *(pend.torque); -} - -char* pendulum_get_strval(const uint8_t *const buffer, const int len) -{ - Pendulum_t pend; - char* str; - - pendulum_asn_decode(&pend, buffer, len); - - str = (char*)pend.strval->buf; - - return str; -} - -void test_pendulum_msg(void) -{ - uint8_t *buffer = NULL; - uint32_t len = 0; - double angle = 1.9; - len = pendulum_create_asn_msg(&buffer, 0, angle, 0, NULL); - - double ex_angle = pendulum_get_angle(buffer, len); - fprintf(stderr, "Extracted angle = %f\n", ex_angle); -} - -void test_pendulum_asn1(void) -{ - fprintf(stderr, "test_pendulum_asn1\n"); - - Pendulum_t *pend; - - long sequence = 0; /* OPTIONAL */ - double angle = 1.5; /* OPTIONAL */ - //double torque = 0.7; /* OPTIONAL */ - - pend = calloc(1, sizeof(Pendulum_t)); - if(!pend){ - perror("calloc() failed"); - exit(1); - } - - pend->sequence = &sequence; - pend->angle = ∠ - //pend->torque = &torque; - - xer_fprint(stdout, &asn_DEF_Pendulum, pend); - - //encode - uint8_t *buffer = NULL; - uint32_t len; - pendulum_asn_encode(pend, &buffer, &len); - fprintf(stderr, "len = %d\n", len); - - //decode - Pendulum_t dec_pend; - pendulum_asn_decode(&dec_pend, buffer, len); -} diff --git a/e2sim/previous/e2apv1sim/ricsim/test/Pendulum/Pendulum_asn_codec.h b/e2sim/previous/e2apv1sim/ricsim/test/Pendulum/Pendulum_asn_codec.h deleted file mode 100644 index 3928caf..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/test/Pendulum/Pendulum_asn_codec.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * - * Copyright 2019 AT&T Intellectual Property - * Copyright 2019 Nokia - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -#ifndef PENDULUM_ASN_CODEC_H_ -#define PENDULUM_ASN_CODEC_H_ - -#include "Pendulum.h" - -int pendulum_asn_encode(Pendulum_t *pend, uint8_t **buffer, uint32_t *len); - -int pendulum_asn_decode(Pendulum_t *pend, const uint8_t *const buffer, const int len); - -int pendulum_create_asn_msg(uint8_t **buffer, long sequence, - double angle, double torque, const char* msg); - -long pendulum_get_sequence(const uint8_t *const buffer, const int len); - -double pendulum_get_angle(const uint8_t *const buffer, const int len); - -double pendulum_get_torque(const uint8_t *const buffer, const int len); - -char* pendulum_get_strval(const uint8_t *const buffer, const int len); - -//For testing only - -void test_pendulum_msg(void); - -void test_pendulum_asn1(void); - -#endif diff --git a/e2sim/previous/e2apv1sim/ricsim/test/Pendulum/Serial/adruino_serial.c b/e2sim/previous/e2apv1sim/ricsim/test/Pendulum/Serial/adruino_serial.c deleted file mode 100644 index e67465c..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/test/Pendulum/Serial/adruino_serial.c +++ /dev/null @@ -1,98 +0,0 @@ -/* - * - * Copyright 2019 AT&T Intellectual Property - * Copyright 2019 Nokia - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -#include "stdio.h" -#include -#include - -#include "adruino_serial.h" - -int start_serial_inferface(int baudrate, char *serial_port) -{ - int fd = -1; - - fd = serialport_init(serial_port, baudrate); - if(fd == -1) { - fprintf(stderr, "couldn't open serial port %s\n", serial_port); - return -1; - } else { - fprintf(stderr, "Openning serial port: %s ...\n", serial_port); - } - - serialport_flush(fd); // take 2 seconds - fprintf(stderr, "Serial port ready!\n"); - - return fd; - -} - -int serial_readline(int fd, char* buf, int buf_max) -{ - if( fd == -1 ){ - perror("serial port not opened"); - return -1; - } - - memset(buf, 0, buf_max); - - do { - serialport_read_until(fd, buf, SERIAL_EOL_CHAR, buf_max, SERIAL_TIMEOUT); - } while( buf[0] == '\n' ); - - // serialport_read_until(fd, buf, SERIAL_EOL_CHAR, buf_max, SERIAL_TIMEOUT); - - return 0; -} - -int serial_writeline(int fd, char* buf) -{ - if(buf[strlen(buf)-1] != SERIAL_EOL_CHAR){ - //append EOL to buf - int len = strlen(buf); - buf[len] = SERIAL_EOL_CHAR; - buf[len+1] = '\0'; - } - - serialport_write(fd, buf); - - return 0; -} - -//For testing only -void test_adruino_serial(void) -{ - int fd; - char buf[MAX_SERIAL_BUFFER]; - - fd = start_serial_inferface(DEFAULT_BAUDRATE, DEFAULT_SERIAL_PORT); - - while(1){ - fprintf(stderr, "[E2 Agent]: "); - fgets(buf, MAX_SERIAL_BUFFER, stdin); - - // serialport_write(fd, "hello\n"); - //serialport_write(fd, buf); - serial_writeline(fd, buf); - - serial_readline(fd, buf, MAX_SERIAL_BUFFER); - fprintf(stderr, "[Adruino] %s", buf); - } - - return; -} diff --git a/e2sim/previous/e2apv1sim/ricsim/test/Pendulum/Serial/adruino_serial.h b/e2sim/previous/e2apv1sim/ricsim/test/Pendulum/Serial/adruino_serial.h deleted file mode 100644 index c061f8a..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/test/Pendulum/Serial/adruino_serial.h +++ /dev/null @@ -1,40 +0,0 @@ -/* - * - * Copyright 2019 AT&T Intellectual Property - * Copyright 2019 Nokia - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -#ifndef ADRUINO_SERIAL_H -#define ADRUINO_SERIAL_H - -#include "arduino-serial-lib.h" - -#define MAX_SERIAL_BUFFER 256 -#define DEFAULT_SERIAL_PORT "/dev/ttyACM0" -#define DEFAULT_BAUDRATE 115200 -#define SERIAL_EOL_CHAR '\n' -#define SERIAL_TIMEOUT 5000 //ms - -int start_serial_inferface(int baudrate, char *serial_port); - -int serial_readline(int fd, char* buf, int buf_max); - -int serial_writeline(int fd, char* buf); - -//For testing only -void test_adruino_serial(void); - -#endif diff --git a/e2sim/previous/e2apv1sim/ricsim/test/Pendulum/Serial/arduino-serial-lib.c b/e2sim/previous/e2apv1sim/ricsim/test/Pendulum/Serial/arduino-serial-lib.c deleted file mode 100644 index 73cac84..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/test/Pendulum/Serial/arduino-serial-lib.c +++ /dev/null @@ -1,170 +0,0 @@ -/* - * - * Copyright 2019 AT&T Intellectual Property - * Copyright 2019 Nokia - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -// -// arduino-serial-lib -- simple library for reading/writing serial ports -// -// 2006-2013, Tod E. Kurt, http://todbot.com/blog/ -// - -#include "arduino-serial-lib.h" - -#include // Standard input/output definitions -#include // UNIX standard function definitions -#include // File control definitions -#include // Error number definitions -#include // POSIX terminal control definitions -#include // String function definitions -#include - -// uncomment this to debug reads -//#define SERIALPORTDEBUG - -// takes the string name of the serial port (e.g. "/dev/tty.usbserial","COM1") -// and a baud rate (bps) and connects to that port at that speed and 8N1. -// opens the port in fully raw mode so you can send binary data. -// returns valid fd, or -1 on error -int serialport_init(const char* serialport, int baud) -{ - struct termios toptions; - int fd; - - //fd = open(serialport, O_RDWR | O_NOCTTY | O_NDELAY); - fd = open(serialport, O_RDWR | O_NONBLOCK ); - - if (fd == -1) { - perror("serialport_init: Unable to open port s"); - return -1; - } - - //int iflags = TIOCM_DTR; - //ioctl(fd, TIOCMBIS, &iflags); // turn on DTR - //ioctl(fd, TIOCMBIC, &iflags); // turn off DTR - - if (tcgetattr(fd, &toptions) < 0) { - perror("serialport_init: Couldn't get term attributes"); - return -1; - } - speed_t brate = baud; // let you override switch below if needed - switch(baud) - { - case 4800: brate=B4800; break; - case 9600: brate=B9600; break; - #ifdef B14400 - case 14400: brate=B14400; break; - #endif - case 19200: brate=B19200; break; - #ifdef B28800 - case 28800: brate=B28800; break; - #endif - case 38400: brate=B38400; break; - case 57600: brate=B57600; break; - case 115200: brate=B115200; break; - } - cfsetispeed(&toptions, brate); - cfsetospeed(&toptions, brate); - - // 8N1 - toptions.c_cflag &= ~PARENB; - toptions.c_cflag &= ~CSTOPB; - toptions.c_cflag &= ~CSIZE; - toptions.c_cflag |= CS8; - // no flow control - toptions.c_cflag &= ~CRTSCTS; - - //toptions.c_cflag &= ~HUPCL; // disable hang-up-on-close to avoid reset - - toptions.c_cflag |= CREAD | CLOCAL; // turn on READ & ignore ctrl lines - toptions.c_iflag &= ~(IXON | IXOFF | IXANY); // turn off s/w flow ctrl - - toptions.c_lflag &= ~(ICANON | ECHO | ECHOE | ISIG); // make raw - toptions.c_oflag &= ~OPOST; // make raw - - // see: http://unixwiz.net/techtips/termios-vmin-vtime.html - toptions.c_cc[VMIN] = 0; - toptions.c_cc[VTIME] = 0; - //toptions.c_cc[VTIME] = 20; - - tcsetattr(fd, TCSANOW, &toptions); - if( tcsetattr(fd, TCSAFLUSH, &toptions) < 0) { - perror("init_serialport: Couldn't set term attributes"); - return -1; - } - - return fd; -} - -// -int serialport_close( int fd ) -{ - return close( fd ); -} - -// -int serialport_writebyte( int fd, uint8_t b) -{ - int n = write(fd,&b,1); - if( n!=1) - return -1; - return 0; -} - -// -int serialport_write(int fd, const char* str) -{ - int len = strlen(str); - int n = write(fd, str, len); - if( n!=len ) { - perror("serialport_write: couldn't write whole string\n"); - return -1; - } - return 0; -} - -// -int serialport_read_until(int fd, char* buf, char until, int buf_max, int timeout) -{ - char b[1]; // read expects an array, so we give it a 1-byte array - int i=0; - do { - int n = read(fd, b, 1); // read a char at a time - if( n==-1) return -1; // couldn't read - if( n==0 ) { - usleep( 1 * 1000 ); // wait 1 msec try again - timeout--; - if( timeout==0 ) return -2; - continue; - } -#ifdef SERIALPORTDEBUG - fprintf(stderr, "serialport_read_until: i=%d, n=%d b='%c'\n",i,n,b[0]); // debug -#endif - buf[i] = b[0]; - i++; - } while( b[0] != until && i < buf_max && timeout>0 ); - - buf[i] = 0; // null terminate the string - return 0; -} - -// -int serialport_flush(int fd) -{ - sleep(2); //required to make flush work, for some reason - return tcflush(fd, TCIOFLUSH); -} diff --git a/e2sim/previous/e2apv1sim/ricsim/test/Pendulum/Serial/arduino-serial-lib.h b/e2sim/previous/e2apv1sim/ricsim/test/Pendulum/Serial/arduino-serial-lib.h deleted file mode 100644 index 74fe592..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/test/Pendulum/Serial/arduino-serial-lib.h +++ /dev/null @@ -1,39 +0,0 @@ -/* - * - * Copyright 2019 AT&T Intellectual Property - * Copyright 2019 Nokia - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -// -// arduino-serial-lib -- simple library for reading/writing serial ports -// -// 2006-2013, Tod E. Kurt, http://todbot.com/blog/ -// - - -#ifndef __ARDUINO_SERIAL_LIB_H__ -#define __ARDUINO_SERIAL_LIB_H__ - -#include // Standard types - -int serialport_init(const char* serialport, int baud); -int serialport_close(int fd); -int serialport_writebyte( int fd, uint8_t b); -int serialport_write(int fd, const char* str); -int serialport_read_until(int fd, char* buf, char until, int buf_max,int timeout); -int serialport_flush(int fd); - -#endif diff --git a/e2sim/previous/e2apv1sim/ricsim/test/Pendulum/demo_setup.txt b/e2sim/previous/e2apv1sim/ricsim/test/Pendulum/demo_setup.txt deleted file mode 100644 index 03cd1d6..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/test/Pendulum/demo_setup.txt +++ /dev/null @@ -1,14 +0,0 @@ -# DEMO March 20, 2019 - ## E2 Agent Laptop with IP x.x.x.x - - Connect to adruino via USB - - Connect to E2 Termination Desktop via Ethernet - - Run E2 Agent: $E2SIM_DIR/build/e2sim x.x.x.x - - ## E2 Termination Desktop - - Run xApp - cd $E2SIM_DIR/rmr_interface/tests/pendulum_xapp - bash run_receiver - - - Run E2 Termination - cd $E2SIM_DIR - ./build_and_run_e2sim diff --git a/e2sim/previous/e2apv1sim/ricsim/test/Pendulum/e2sim_closedloop.c b/e2sim/previous/e2apv1sim/ricsim/test/Pendulum/e2sim_closedloop.c deleted file mode 100644 index 613ce57..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/test/Pendulum/e2sim_closedloop.c +++ /dev/null @@ -1,263 +0,0 @@ -/* - * - * Copyright 2019 AT&T Intellectual Property - * Copyright 2019 Nokia - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - - -#include -#include -#include -#include -#include -#include //for close() -#include //for inet_ntop() - -#include "e2sim_defs.h" -#include "e2sim_sctp.h" -#include "x2ap_message_handler.h" - -//OSN 2019 -#include "Pendulum_asn_codec.h" -#include "adruino_serial.h" - -//rmr -#include -#include -#include -#include "rmr_wrapper.h" - -static void pendulum_control_E2_agent(int client_fd) -{ - fprintf(stderr, "--------------------------------------\n"); - fprintf(stderr, "E2 AGENT - START PENDULUM CONTROL\n"); - fprintf(stderr, "--------------------------------------\n"); - - uint8_t *buffer; - uint32_t len; - clock_t begin; - double rtt; //ms - - uint8_t recv_buf[MAX_SCTP_BUFFER]; - int recv_len; - - double angle; - double torque; - long sqn; - int count = 0; - - //serial - // int serial_fd; - char serial_buffer[MAX_SERIAL_BUFFER]; - // serial_fd = start_serial_inferface(DEFAULT_BAUDRATE, DEFAULT_SERIAL_PORT); - // - // char *delay_str_prev = "$0#\n"; - // //char *delay_str_new; - // - // int MSG_NUM = 10; - // - // //Always start with 0 delay - // serialport_write(serial_fd, "$0#\n"); - - // for(int i = 0; i < MSG_NUM; i++) - while(1) - { - - fprintf(stderr, "----------------\n"); - count += 1; - buffer = NULL; - len = 0; - - // //1.Read from serial - // serial_readline(serial_fd, serial_buffer, MAX_SERIAL_BUFFER); - // if(serial_buffer[0] == '\n') - // { - // //fprintf(stderr, "RECEIVED EOL\n"); - // continue; - // } - // //fprintf(stderr, "[Adruino] %s", serial_buffer); - usleep(5*1000); - - snprintf(serial_buffer, sizeof(serial_buffer)-1, "E2 AGENT PING"); - - begin = clock(); - - //2. Encode pendulum angle to ASN1 message - - len = pendulum_create_asn_msg(&buffer, 0, 0, 0, serial_buffer); - - //3. Send ASN1 message to socket - if(sctp_send_to_socket(client_fd, buffer, (size_t)len) > 0){ - fprintf(stderr, "Sent ASN1 message to E2 Termination\n"); - } - - // 4. Receive response from E2 Termination - memset(recv_buf, 0, sizeof(recv_buf)); - recv_len = 0; - recv_len = recv(client_fd, &recv_buf, sizeof(recv_buf), 0); - if(recv_len == -1) - { - perror("recv()"); - return; - } - - char *recv_str; - recv_str = pendulum_get_strval(recv_buf, recv_len); - fprintf(stderr, "Received response message #%d from xApp: %s\n", count, recv_str); - - // 5. TODO: Send response to serial - // Compare if delay has changed: - // if(strcmp(delay_str_prev, recv_str) != 0) { - // serial_writeline(serial_fd, recv_str); - // } - - //serial_writeline(serial_fd, recv_str); - - //Write to a file - FILE *f; - f = fopen("arduino_delay.txt", "w"); - fprintf(f, "%s", recv_str); - fclose(f); - - begin = clock() - begin; - rtt = 1000*((double)begin)/CLOCKS_PER_SEC; // in ms - fprintf(stderr, "E2Agent-RIC-E2Agent RTT = %f ms\n", rtt); - - } - - close(client_fd); -} - -int main(int argc, char *argv[]) -{ - fprintf(stderr, "E2 AGENT - PENDULUM CONTROL. Version %s\n", VERSION); - - // char *recv_str = "9"; - // int delay; - // - // printf("delay = %d\n", atoi(recv_str)); - // - // long delay = 22.5; - // - // printf("delay = %d\n", (int)delay); - // return 0; - - // test_rmr(); return 0; - // test_adruino_serial(); return 0; - - char* server_ip = DEFAULT_SCTP_IP; - int server_port = X2AP_SCTP_PORT; - - int server_fd; - int client_fd; - struct sockaddr client_addr; - socklen_t client_addr_size; - - //read input - if(argc == 3) //user provided IP and PORT - { - server_ip = argv[1]; - server_port = atoi(argv[2]); - if(server_port < 1 || server_port > 65535) { - fprintf(stderr, "Invalid port number (%d). Valid values are between 1 and 65535.\n" , server_port); - return -1; - } - } - else if(argc == 2) //user provided only IP - { - server_ip = argv[1]; - } - else if(argc == 1) - { - server_ip = DEFAULT_SCTP_IP; - } - else - { - fprintf(stderr, "Unrecognized option.\n"); - fprintf(stderr, "Usage: %s [SERVER IP ADDRESS] [SERVER PORT]\n", argv[0]); - return -1; - } - - server_fd = sctp_start_server(server_ip, server_port); - - fprintf(stderr, "Waiting for connection...\n"); - client_fd = accept(server_fd, &client_addr, &client_addr_size); - if(client_fd == -1){ - perror("accept()"); - close(client_fd); - return -1; - } - - //Todo: retrieve client ip addr - struct sockaddr_in* client_ipv4 = (struct sockaddr_in*)&client_addr; - char client_ip_addr[INET_ADDRSTRLEN]; - inet_ntop(AF_INET, &(client_ipv4->sin_addr), client_ip_addr, INET_ADDRSTRLEN); - - fprintf(stderr, "New client connected from %s\n", client_ip_addr); - - // while(1) //put while loop if want to receive from multiple clients - // { - uint8_t recv_buf[MAX_SCTP_BUFFER]; - int recv_len = 0; - - memset(recv_buf, 0, sizeof(recv_buf)); - - fprintf(stderr, "------------------------\n"); - recv_len = recv(client_fd, &recv_buf, sizeof(recv_buf), 0); - if(recv_len == -1) - { - perror("recv()"); - return -1; - } - else if(recv_len == 0) - { - fprintf(stderr, "\nConnection from %s closed by remote peer\n", client_ip_addr); - if(close(client_fd) == -1) - { - perror("close"); - } - return -1; - } - - //fprintf(stderr, "Received a message of size %d\n", recv_len); - - //TODO: check PPID here before calling x2ap handler - - sctp_data_t response = {NULL, 0}; - x2ap_eNB_handle_message(recv_buf, recv_len, &response); - - //======================================================================= - //reply to client - assert(response.data != NULL); - if(sctp_send_to_socket(client_fd, response.data, (size_t)response.len) > 0){ - fprintf(stderr, "Sent X2 SETUP RESPONSE \n"); - } else{ - perror("send to socket"); - return -1; - } - - fprintf(stderr, "X2 Setup Completed \n"); - - //========================================================================= - // Pendulum interaction - // Send pendulum state to E2 Termination and receive response - pendulum_control_E2_agent(client_fd); - // } //end while - - close(client_fd); - - return 0; -} diff --git a/e2sim/previous/e2apv1sim/ricsim/test/Pendulum/e2sim_serial.c b/e2sim/previous/e2apv1sim/ricsim/test/Pendulum/e2sim_serial.c deleted file mode 100644 index 33fa0ba..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/test/Pendulum/e2sim_serial.c +++ /dev/null @@ -1,56 +0,0 @@ -/* - * - * Copyright 2019 AT&T Intellectual Property - * Copyright 2019 Nokia - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -#include -#include -#include -#include -#include -#include "e2sim_defs.h" -#include - -#include "adruino_serial.h" - -int main(int argc, char *argv[]) -{ - int fd; - char buf[MAX_SERIAL_BUFFER]; - - fd = start_serial_inferface(DEFAULT_BAUDRATE, DEFAULT_SERIAL_PORT); - - while(1) - { - //usleep(5*1000); //sleep 5ms between read - sleep(1); - - FILE *f; - f = fopen("arduino_delay.txt", "r"); - assert(f); - - fread(buf, 1, sizeof(buf), f); - - printf("delay content = %s \n", buf); - - serial_writeline(fd, buf); - - fclose(f); - } - - return 0; -} diff --git a/e2sim/previous/e2apv1sim/ricsim/test/Pendulum/e2sim_test_client.c b/e2sim/previous/e2apv1sim/ricsim/test/Pendulum/e2sim_test_client.c deleted file mode 100644 index b178ff7..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/test/Pendulum/e2sim_test_client.c +++ /dev/null @@ -1,378 +0,0 @@ -/* - * - * Copyright 2019 AT&T Intellectual Property - * Copyright 2019 Nokia - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -#include -#include -#include -#include //for close() -#include -#include -#include -#include -#include //for inet_ntop() -#include - -#include "e2sim_defs.h" -#include "e2sim_sctp.h" -#include "x2ap_message_handler.h" - -#include "x2ap_generate_messages.h" - -//OSN 2019 -#include "Pendulum_asn_codec.h" - -//rmr -#include -#include -#include -#include "rmr_wrapper.h" - -//time -#include - -//these are the metrics being sent to the a1 mediator -int ave_ric_rtt_last_epoch=0; -int ave_msg_rate_last_epoch=0; -int ave_pendulum_msg_rate_last_epoch=0; - -int total_rtt_current_epoch=0; -int total_messages_current_epoch=0; -int total_pendulum_messages_current_epoch=0; - -int total_rtt_entries_current_epoch=0; - -int epoch_duration = 1;//in seconds - -long rtt_epoch_start_time =0; - -long msg_rate_epoch_start_time =0; -long pendulum_msg_rate_epoch_start_time = 0; - -long current_timestamp_in_us(){ - struct timeval currentTime; - gettimeofday(¤tTime, NULL); - return currentTime.tv_sec * (int)1e6 + currentTime.tv_usec; -} -void update_rtt_metrics(long rtt){//called every time there is a new rtt measurement - if(rtt_epoch_start_time == 0) - rtt_epoch_start_time = current_timestamp_in_us(); //start of a new epoch - - total_rtt_current_epoch = total_rtt_current_epoch+rtt; - total_rtt_entries_current_epoch++; - - if((current_timestamp_in_us() - rtt_epoch_start_time) > (epoch_duration*1000000)){//an epoch has passed - ave_ric_rtt_last_epoch = total_rtt_current_epoch/total_rtt_entries_current_epoch; - total_rtt_current_epoch =0; - rtt_epoch_start_time = 0; - } -} - -void update_msg_rate_metrics(){ - if(msg_rate_epoch_start_time == 0) - msg_rate_epoch_start_time= current_timestamp_in_us(); //start of a new epoch - total_messages_current_epoch++; - if((current_timestamp_in_us() - msg_rate_epoch_start_time) > (epoch_duration*1000000)){//an epoch has passed - ave_msg_rate_last_epoch = total_messages_current_epoch; - total_messages_current_epoch =0; - msg_rate_epoch_start_time =0; - } -} - -void update_pendulum_control_rate() -{ - if(pendulum_msg_rate_epoch_start_time == 0) - pendulum_msg_rate_epoch_start_time = current_timestamp_in_us(); //start of a new epoch - total_pendulum_messages_current_epoch++; - - if((current_timestamp_in_us() - pendulum_msg_rate_epoch_start_time) > (epoch_duration*1000000)){//an epoch has passed - ave_pendulum_msg_rate_last_epoch = total_pendulum_messages_current_epoch; - total_pendulum_messages_current_epoch = 0; - pendulum_msg_rate_epoch_start_time = 0; - } - -} - -void send_metrics_to_a1_med(struct rmr_context *rmr_c){ - int mtype=103; - char* metrics= malloc(1024); - int time_int = current_timestamp_in_us()/1000000; - //int ave_msg_rate_last_epoch=500; - snprintf(metrics, 1024, "{%s:%d, %s:%d, %s:%d, %s:%d}", \ - "\"latency\"", ave_ric_rtt_last_epoch/1000, \ - "\"ricload\"",ave_msg_rate_last_epoch, \ - "\"load\"",ave_pendulum_msg_rate_last_epoch, \ - "\"time\"",time_int); - rmr_send_wrapper(rmr_c, mtype, metrics); - printf("Sent message of type:%d to a1_med with content:%s\n",mtype,metrics); -} - -void forward_to_load_consumer(struct rmr_context *rmr_c){//the content does not matter - int mtype=105; - char* load_message="dummy load"; - rmr_send_wrapper(rmr_c, mtype, load_message); - printf("Sent message of type:%d to load consumer with content:%s\n",mtype,load_message); -} - -static void pendulum_control_E2_Termination(int client_fd) -{ - printf("--------------------------------------\n"); - printf("E2 TERMINATION - START PENDULUM CONTROL\n"); - printf("--------------------------------------\n"); - - uint8_t *send_buffer; - uint8_t recv_buffer[1024]; - uint32_t send_len; - uint32_t recv_len; - - clock_t begin = clock(); - double rtt; - double rtt_stats[100000]; - long recv_count = 0; - long fail_count = -1; //ignore the first message (see adruino code) - - long sqn; - int count = 0; - - //================================= - - //Setup context - struct rmr_context *rmr_c; //obtain our enhanced rmr_context - int mtype = 0; // we can loop through several message types - char* lport = "43086"; // default listen port - long rcount = 0; // number of acks received - - if( (eparm = getenv( "E2TERM_RMR_RCV_PORT" )) != NULL ) { - lport = strdup( eparm ); - } - - rmr_c = rmr_init_wrapper(lport); - - while( ! rmr_ready( rmr_c->mrc ) ) { - fprintf( stderr, " waiting for RMR to indicate ready\n" ); - sleep( 1 ); - } - fprintf( stderr, "[OK] initialisation complete\n" ); - - - //================================== - long loop_start_time = 0; - while(1){ - printf("----------------\n"); - count += 1; - loop_start_time = current_timestamp_in_us(); - //0. Receiving ASN message from E2 Agent - memset(recv_buffer, 0, sizeof(recv_buffer)); - printf("Time to receive asn message after starting main loop: %ld microseconds \n",current_timestamp_in_us() - loop_start_time); - recv_len = 0; - - printf(" 1Time to receive asn message after starting main loop: %ld microseconds \n",current_timestamp_in_us() - loop_start_time); - //long time_of_message_from_e2agent = current_timestamp_in_us(); - - if((recv_len = recv(client_fd, &recv_buffer, sizeof(recv_buffer), 0)) == -1) { - perror("recv"); - return; - } - - long time_of_message_from_e2agent = current_timestamp_in_us(); - - printf(" 2Time to receive asn message after starting main loop: %ld microseconds \n",current_timestamp_in_us() - loop_start_time); - if(recv_len == 0) { - rmr_close_wrapper(rmr_c); - - printf("Connection from closed by remote peer.\n"); - if(close(client_fd) == -1) { - perror("close"); - } - return; - } - - printf(" 3Time to receive asn message after starting main loop: %ld microseconds \n",current_timestamp_in_us() - loop_start_time); - // begin = clock() - begin; - // rtt = 1000*((double)begin)/CLOCKS_PER_SEC; // in ms - //printf("E2Term-Adruino-E2Term = %f ms\n", rtt); - - //2. Decode ASN message and Extract pendulum angle - char *recv_str; - recv_str = pendulum_get_strval(recv_buffer, recv_len); - // if( (strcmp(recv_str, "-1") == 0) || (strcmp(recv_str, "") == 0) ) - - if(strcmp(recv_str, "\n") == 0) - { - printf("RECEIVED EOL\n"); - } - - printf(" 4Time to receive asn message after starting main loop: %ld microseconds \n",current_timestamp_in_us() - loop_start_time); - // if(atof(recv_str) <= 0) - // { - // printf("FAILLLLLL\n"); - // fail_count += 1; - // } - // else { - // rtt_stats[recv_count] = atof(recv_str); - // recv_count++; - // } - - printf("Time to receive angle message from arduino after starting main loop: %ld microseconds \n",current_timestamp_in_us() - loop_start_time); - printf("Received message #%d from Adruino: %s\n", count, recv_str); - //printf("Last reported RTT (Adruino-RIC-Adruino): %f ms, fail_count = %ld\n", - // atof(recv_str)/1000, fail_count); - - // 3. [BHARATH] send_to_xApp(&pendulum_state, &response) - // while(1) { - // usleep( 10 ); - // char* message = "foo 111"; - char reply[1024]; - int got_pend_control=0; - rmr_send_wrapper(rmr_c, mtype, recv_str ); - printf("Sent message of type:%d to pendulum xApp with content:%s\n",mtype,recv_str); - long angle_receive_time =0; - while (got_pend_control == 0){ - if(rmr_poll_for_message(rmr_c) == 1) { - update_msg_rate_metrics(); - switch(rmr_c->rbuf->mtype) { - case 33 : - angle_receive_time = current_timestamp_in_us(); - got_pend_control=1; - update_pendulum_control_rate(); //add this - strcpy(reply,rmr_c->rbuf->payload); - printf("Received control message from pendulum xapp with message type: %d and content %s\n",rmr_c->rbuf->mtype, reply); - break; - case 102 : - printf("Received METRIC request from A1 mediator with message type: %d and content %s\n",rmr_c->rbuf->mtype,rmr_c->rbuf->payload); - send_metrics_to_a1_med(rmr_c); - break; - case 104 : - printf("***************************Received load from load generator****************************"); - forward_to_load_consumer(rmr_c); - break; - default : - continue; - } - } - - } - printf("Time to receive control message from xapp after starting main loop: %ld microseconds \n",current_timestamp_in_us() - loop_start_time); -// snprintf(reply, 1024, "$%d#\n", (int)ave_ric_rtt_last_epoch/1000); - send_len = pendulum_create_asn_msg(&send_buffer, 0, 0, 0, reply); - printf("Time to create asn message after receiving angle: %ld microseconds\n",current_timestamp_in_us() - angle_receive_time); - begin = clock(); - - //6. Send ASN1 message to socket - if(sctp_send_to_socket(client_fd, send_buffer, (size_t)send_len) > 0){ - printf("Sent ASN1 response to E2 Agent\n"); - } - long time_of_reply_to_e2agent = current_timestamp_in_us(); - printf("Time to send asn message after receiving angle: %ld microseconds \n",current_timestamp_in_us() - angle_receive_time); - long rtt = (time_of_reply_to_e2agent - time_of_message_from_e2agent); - ave_ric_rtt_last_epoch = rtt; - printf("RIC RTT is %lf milliseconds\n", rtt/1000.0); - //update_rtt_metrics(rtt); - } - - rmr_close_wrapper(rmr_c); - -} - -int main(int argc, char* argv[]) -{ - // test_rmr(); return 0; - - const char* server_ip = DEFAULT_SCTP_IP; - int server_port = X2AP_SCTP_PORT; - - //read input - if(argc == 3) //user provided IP and PORT - { - server_ip = argv[1]; - server_port = atoi(argv[2]); - if(server_port < 1 || server_port > 65535) { - printf("Invalid port number (%d). Valid values are between 1 and 65535.\n", server_port); - return 1; - } - } - else if(argc == 2) //user provided only IP - { - server_ip = argv[1]; - } - else if(argc == 1) - { - server_ip = DEFAULT_SCTP_IP; - } - else - { - printf("Unrecognized option.\n"); - printf("Usage: %s [SERVER IP ADDRESS] [SERVER PORT]\n", argv[0]); - return 0; - } - - int client_fd; - client_fd = sctp_start_client(server_ip, server_port); - - uint8_t *buffer; - uint32_t len; - - //Note: put a while(1) loop here if want client to stay - // for(int i = 0; i < 3; i++) - // { - buffer = NULL; - len = 0; - - printf("------------------------\n"); - clock_t begin; - begin = clock(); - - //Create pdu for x2 message and send to socket - len = x2ap_generate_x2_setup_request(&buffer); - if(sctp_send_to_socket(client_fd, buffer, (size_t)len) > 0){ - printf("Sent X2 SETUP REQUEST\n"); - } - - //======================================================================= - //printf("waiting for server response\n"); - uint8_t recv_buf[MAX_SCTP_BUFFER]; - int recv_len = 0; - - //sctp_recv_from_socket(client_fd, recv_buf, sizeof(recv_buf)); - memset(recv_buf, 0, sizeof(recv_buf)); - recv_len = recv(client_fd, &recv_buf, sizeof(recv_buf), 0); - if(recv_len == -1) - { - perror("recv()"); - return -1; - } - - //printf("Received a message of size %d\n", recv_len); - x2ap_eNB_handle_message(recv_buf, recv_len, NULL); - - begin = clock() - begin; - double time_taken = 1000*((double)begin)/CLOCKS_PER_SEC; // in ms - printf("Close-loop time: %f ms \n", time_taken); - printf("X2 Setup Completed \n"); - - // } //end iteration - - //========================================================================= - // Pendulum interaction - // Receive pendulum state from E2 Agent and send response - pendulum_control_E2_Termination(client_fd); - - close(client_fd); - - return 0; -} diff --git a/e2sim/previous/e2apv1sim/ricsim/test/Pendulum/e2termination_test.cpp b/e2sim/previous/e2apv1sim/ricsim/test/Pendulum/e2termination_test.cpp deleted file mode 100644 index b65ac65..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/test/Pendulum/e2termination_test.cpp +++ /dev/null @@ -1,223 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -#include -#include -#include -#include - - -#include "e2sim_defs.h" -#include "asn_e2ap.hpp" -#include "e2sim_sctp.hpp" -#include "e2ap_message_handler.hpp" -#include "e2ap_asn_codec.hpp" - -using namespace std; - -void test_send_X2Setup(int &client_fd) -{ - //Create X2SetupRequest message - e2ap_pdu_t* pdu = new_e2ap_pdu(); - eNB_config cfg; - - e2ap_create_X2SetupRequest(pdu, cfg); - e2ap_print_pdu(pdu); - - //Encode into buffer - sctp_buffer_t data; - e2ap_encode_pdu(pdu, data.buffer, sizeof(data.buffer), data.len); - - //Send to sctp - sctp_send_data(client_fd, data); - LOG_I("[SCTP] Sent X2 SETUP REQUEST"); - - //wait to receive response - sctp_buffer_t recv_buf; - if(sctp_receive_data(client_fd, recv_buf) > 0) - { - LOG_I("[SCTP] Received new data of size %d", recv_buf.len); - e2ap_handle_sctp_data(client_fd, recv_buf); - } - - } - -void test_send_ENDCX2Setup(int &client_fd) -{ - //Create ENDCX2SetupRequest message - e2ap_pdu_t* pdu = new_e2ap_pdu(); - eNB_config cfg; - - e2ap_create_ENDCX2SetupRequest(pdu, cfg); - e2ap_print_pdu(pdu); - - //Encode into buffer - sctp_buffer_t data; - e2ap_encode_pdu(pdu, data.buffer, sizeof(data.buffer), data.len); - - //Send to sctp - sctp_send_data(client_fd, data); - LOG_I("[SCTP] Sent ENDC X2 SETUP REQUEST"); - - //wait to receive response - sctp_buffer_t recv_buf; - if(sctp_receive_data(client_fd, recv_buf) > 0) - { - LOG_I("[SCTP] Received new data of size %d", recv_buf.len); - e2ap_handle_sctp_data(client_fd, recv_buf); - } - -} - -void test_send_RICSubscriptionRequest(int &client_fd) -{ - LOG_I("Test RIC SUBSCRIPTION"); - - /* Create RIC SUBSCRITION REQUEST */ - e2ap_pdu_t* pdu = new_e2ap_pdu(); - - RICsubscription_params_t params; - params.request_id = 2; - params.seq_number = 200; - params.ran_func_id = 0; - params.event_trigger_def = "hello world"; - - RIC_action_t action1(1, RICactionType_report); - // RIC_action_t action2(3, RICactionType_insert); - // RIC_action_t action3(5, RICactionType_insert); - // RIC_action_t action4(7, RICactionType_insert); - params.actionList.push_back(action1); - // params.actionList.push_back(action2); - // params.actionList.push_back(action3); - // params.actionList.push_back(action4); - - e2ap_create_RICsubscriptionRequest(pdu, params); - e2ap_print_pdu(pdu); - - //Encode into buffer - sctp_buffer_t data; - e2ap_encode_pdu(pdu, data.buffer, sizeof(data.buffer), data.len); - - //Send to sctp - sctp_send_data(client_fd, data); - LOG_I("[SCTP] Sent RIC SUBSCRIPTION REQUEST"); - - //wait to receive response and indication (if any) - sctp_buffer_t recv_buf; - LOG_I("[SCTP] Waiting for SCTP data"); - while(1) - { - if(sctp_receive_data(client_fd, recv_buf) > 0) - { - LOG_I("[SCTP] Received new data of size %d", recv_buf.len); - e2ap_handle_sctp_data(client_fd, recv_buf); - } - else - break; - - } - - - return; - //========================================================================== - - //decode - e2ap_pdu_t* pdu2 = new_e2ap_pdu(); - - e2ap_decode_pdu(pdu2, data.buffer, data.len); - - RICsubscription_params_t params2; - e2ap_parse_RICsubscriptionRequest(pdu2, params2); - printf("request_id = %d\n", params2.request_id); - printf("seq_number = %d\n", params2.seq_number); - printf("ran_func_id = %d\n", params2.ran_func_id); - printf("event = %s\n", ¶ms2.event_trigger_def[0]); - - for( auto const &a : params.actionList) - { - printf("action id = %d, action type = %d\n", (int)a.action_id, (int)a.action_type); - } - - - LOG_I("================= RESPONSE ==========================="); - for(size_t i = 0; i < params2.actionList.size(); i++) - { - //example logic: admit every other action - if(i%2 == 0) { - params2.actionList[i].isAdmitted = true; - } else { - params2.actionList[i].isAdmitted = false; - params2.actionList[i].notAdmitted_cause = RICcause_radioNetwork; - params2.actionList[i].notAdmitted_subCause = 5; - } - } - - e2ap_pdu_t* res_pdu = new_e2ap_pdu(); - e2ap_create_RICsubscriptionResponse(res_pdu, params2); - - e2ap_print_pdu(res_pdu); - - //Encode into buffer - sctp_buffer_t data_resp; - e2ap_encode_pdu(res_pdu, data_resp.buffer, sizeof(data_resp.buffer), data_resp.len); - - LOG_I("================= FAILURE ==========================="); - e2ap_pdu_t* fail_pdu = new_e2ap_pdu(); - - RICsubscription_params_t params3; - e2ap_parse_RICsubscriptionRequest(pdu2, params3); - - for(size_t i = 0; i < params3.actionList.size(); i++) - { - params3.actionList[i].isAdmitted = false; - params3.actionList[i].notAdmitted_cause = RICcause_radioNetwork; - params3.actionList[i].notAdmitted_subCause = 5; - } - - e2ap_create_RICsubscriptionFailure(fail_pdu, params3); - e2ap_print_pdu(fail_pdu); - - //Encode into buffer - sctp_buffer_t data_fail; - e2ap_encode_pdu(fail_pdu, data_fail.buffer, sizeof(data_fail.buffer), data_fail.len); - -} - -int main(int argc, char* argv[]){ - - LOG_I("E2 Termination Test"); - - // test_send_RICSubscriptionRequest(); - // return 0; - - options_t ops = read_input_options(argc, argv); - int client_fd = sctp_start_client(ops.server_ip, ops.server_port); - - //--------------------------------------------------- - // test_send_X2Setup(client_fd); - test_send_ENDCX2Setup(client_fd); - test_send_RICSubscriptionRequest(client_fd); - - //--------------------------------------------------- - - close(client_fd); - LOG_I("[SCTP] Connection closed."); - - return 0; -} diff --git a/e2sim/previous/e2apv1sim/ricsim/test/Pendulum/pendulum.asn1 b/e2sim/previous/e2apv1sim/ricsim/test/Pendulum/pendulum.asn1 deleted file mode 100644 index 686d2c0..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/test/Pendulum/pendulum.asn1 +++ /dev/null @@ -1,12 +0,0 @@ -PendulumModule DEFINITIONS AUTOMATIC TAGS ::= - -BEGIN - -Pendulum ::= SEQUENCE { - sequence INTEGER OPTIONAL, - angle REAL OPTIONAL, - torque REAL OPTIONAL, - strval PrintableString OPTIONAL -} - -END diff --git a/e2sim/previous/e2apv1sim/ricsim/test/WLG/CMakeLists.txt b/e2sim/previous/e2apv1sim/ricsim/test/WLG/CMakeLists.txt deleted file mode 100644 index 4faee6a..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/test/WLG/CMakeLists.txt +++ /dev/null @@ -1,59 +0,0 @@ -#/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -#******************************************************************************/ - -cmake_minimum_required(VERSION 3.5.1) -set(CMAKE_CXX_COMPILER "/usr/bin/g++") -set(CMAKE_CXX_STANDARD 14) - -add_definitions("-D ASN_DISABLE_OER_SUPPORT") - -set (E2SIM_ROOT ../../) - -include_directories("${E2SIM_ROOT}/src") -include_directories("${E2SIM_ROOT}/src/DEF") -include_directories("${E2SIM_ROOT}/src/SCTP/") -include_directories("${E2SIM_ROOT}/src/E2AP") -include_directories("${E2SIM_ROOT}/src/E2AP/E2SM") -include_directories("${E2SIM_ROOT}/ASN1c") - -find_library( SCTP_STD_LIB sctp ) #needed for sctp_sendmsg - -#---------------------------------------------- -file(GLOB WLG_SOURCES - "${E2SIM_ROOT}/test/WLG/ric_wlg.cpp" - "${E2SIM_ROOT}/src/DEF/*.cpp" - "${E2SIM_ROOT}/src/SCTP/*.cpp" - "${E2SIM_ROOT}/src/E2AP/*.c" - "${E2SIM_ROOT}/src/E2AP/*.cpp" - "${E2SIM_ROOT}/ASN1c/*.c" - ) -add_executable(ric_wlg ${WLG_SOURCES}) -target_link_libraries( ric_wlg ${SCTP_STD_LIB} ) - -#---------------------------------------------- -file(GLOB RICPERF_SOURCES - "${E2SIM_ROOT}/test/WLG/ric_perf.cpp" - "${E2SIM_ROOT}/src/DEF/*.cpp" - "${E2SIM_ROOT}/src/SCTP/*.cpp" - "${E2SIM_ROOT}/src/E2AP/*.c" - "${E2SIM_ROOT}/src/E2AP/*.cpp" - "${E2SIM_ROOT}/ASN1c/*.c" - ) -add_executable(ric_perf ${RICPERF_SOURCES}) -target_link_libraries( ric_perf ${SCTP_STD_LIB} ) diff --git a/e2sim/previous/e2apv1sim/ricsim/test/WLG/build_wlg.sh b/e2sim/previous/e2apv1sim/ricsim/test/WLG/build_wlg.sh deleted file mode 100755 index 2f81b56..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/test/WLG/build_wlg.sh +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/bash -#/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -#******************************************************************************/ - -set -e - -mkdir -p build -cd build -rm -rf CMakeCache.txt -cmake .. -make -j`nproc` diff --git a/e2sim/previous/e2apv1sim/ricsim/test/WLG/ric_perf.cpp b/e2sim/previous/e2apv1sim/ricsim/test/WLG/ric_perf.cpp deleted file mode 100644 index 9403283..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/test/WLG/ric_perf.cpp +++ /dev/null @@ -1,287 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -#include -#include -#include - -#include "e2sim_sctp.hpp" -#include "e2ap_message_handler.hpp" - -extern "C" { - #include "e2sim_defs.h" - #include "E2AP-PDU.h" - #include "e2ap_asn1c_codec.h" - - #include "ProtocolIE-Field.h" -} - -using namespace std; - -void encode_and_send_sctp_data(E2AP_PDU_t* pdu, int client_fd) -{ - uint8_t *buf; - sctp_buffer_t data; - - data.len = e2ap_asn1c_encode_pdu(pdu, &buf); - memcpy(data.buffer, buf, min(data.len, MAX_SCTP_BUFFER)); - - sctp_send_data(client_fd, data); -} - -void wait_for_sctp_data(int client_fd) -{ - sctp_buffer_t recv_buf; - if(sctp_receive_data(client_fd, recv_buf) > 0) - { - LOG_I("[SCTP] Received new data of size %d", recv_buf.len); - e2ap_handle_sctp_data(client_fd, recv_buf); - } -} - -void set_seqnum(E2AP_PDU_t* pdu) -{ - InitiatingMessage_t *initiatingMessage = pdu->choice.initiatingMessage; - // xer_fprint(stdout, &asn_DEF_InitiatingMessage, (void *)initiatingMessage); - - RICsubscriptionRequest_t *request = &initiatingMessage->value.choice.RICsubscriptionRequest; - xer_fprint(stdout, &asn_DEF_RICsubscriptionRequest, (void *)request); - - LOG_I("num of IEs = %d", request->protocolIEs.list.count); - - RICsubscriptionRequest_IEs_t *ie; - - ie = request->protocolIEs.list.array[2]; - - xer_fprint(stdout, &asn_DEF_RICsubscription, (void *)ie); - - // e2ap_asn1c_print_pdu(pdu); -} - -int subresponse_get_sequenceNum(E2AP_PDU_t* pdu) -{ - SuccessfulOutcome_t *responseMsg = pdu->choice.successfulOutcome; - - RICrequestID_t *requestid; - - int num_IEs = responseMsg->value.choice.RICsubscriptionResponse.protocolIEs.list.count; - - for(int edx = 0; edx < num_IEs; edx++) - { - RICsubscriptionResponse_IEs_t *memb_ptr = - responseMsg->value.choice.RICsubscriptionResponse.protocolIEs.list.array[edx]; - - switch(memb_ptr->id) - { - case (ProtocolIE_ID_id_RICrequestID): - requestid = &memb_ptr->value.choice.RICrequestID; - // xer_fprint(stdout, &asn_DEF_RICrequestID, (void *)requestid); - return requestid->ricRequestSequenceNumber; - break; - } - } -} - -void subrequest_set_sequenceNum(E2AP_PDU_t* pdu, int seq) -{ - InitiatingMessage_t *initiatingMessage = pdu->choice.initiatingMessage; - - RICrequestID_t *requestid; - - int num_IEs = initiatingMessage->value.choice.RICsubscriptionRequest.protocolIEs.list.count; - - for(int edx = 0; edx < num_IEs; edx++) - { - RICsubscriptionRequest_IEs_t *memb_ptr = - initiatingMessage->value.choice.RICsubscriptionRequest.protocolIEs.list.array[edx]; - - switch(memb_ptr->id) - { - case (ProtocolIE_ID_id_RICrequestID): - requestid = &memb_ptr->value.choice.RICrequestID; - requestid->ricRequestSequenceNumber = seq; - break; - } - } - -} - -void subscription_response_get_field(E2AP_PDU_t* pdu) -{ - SuccessfulOutcome_t *responseMsg = pdu->choice.successfulOutcome; - - RICrequestID_t *requestid; - RANfunctionID_t * ranfunctionid; - RICsubscription_t * ricsubscription; - - int requestID_val, sequenceNum; - - int num_IEs = responseMsg->value.choice.RICsubscriptionResponse.protocolIEs.list.count; - - LOG_I("num of IEs = %d", num_IEs); - - for(int edx = 0; edx < num_IEs; edx++) - { - RICsubscriptionResponse_IEs_t *memb_ptr = - responseMsg->value.choice.RICsubscriptionResponse.protocolIEs.list.array[edx]; - - switch(memb_ptr->id) - { - case (ProtocolIE_ID_id_RICrequestID): - requestid = &memb_ptr->value.choice.RICrequestID; - xer_fprint(stdout, &asn_DEF_RICrequestID, (void *)requestid); - requestID_val = requestid->ricRequestorID; - sequenceNum = requestid->ricRequestSequenceNumber; - requestid->ricRequestSequenceNumber = 202; - break; - - case (ProtocolIE_ID_id_RANfunctionID): - ranfunctionid = &memb_ptr->value.choice.RANfunctionID; - xer_fprint(stdout, &asn_DEF_RANfunctionID, (void *)ranfunctionid); - break; - - // case (ProtocolIE_ID_id_RICsubscription): - // ricsubscription = &memb_ptr->value.choice.RICsubscription; - // xer_fprint(stdout, &asn_DEF_RICsubscription, (void *)ricsubscription); - // break; - } - } - - LOG_I("Request ID = %d, seq = %d", requestID_val, sequenceNum); -} - -void subscription_request_get_field(E2AP_PDU_t* pdu) -{ - InitiatingMessage_t *initiatingMessage = pdu->choice.initiatingMessage; - - RICrequestID_t *requestid; - RANfunctionID_t * ranfunctionid; - RICsubscription_t * ricsubscription; - - int num_IEs = initiatingMessage->value.choice.RICsubscriptionRequest.protocolIEs.list.count; - - LOG_I("num of IEs = %d", num_IEs); - - for(int edx = 0; edx < num_IEs; edx++) - { - RICsubscriptionRequest_IEs_t *memb_ptr = - initiatingMessage->value.choice.RICsubscriptionRequest.protocolIEs.list.array[edx]; - - switch(memb_ptr->id) - { - case (ProtocolIE_ID_id_RICrequestID): - requestid = &memb_ptr->value.choice.RICrequestID; - xer_fprint(stdout, &asn_DEF_RICrequestID, (void *)requestid); - break; - - case (ProtocolIE_ID_id_RANfunctionID): - ranfunctionid = &memb_ptr->value.choice.RANfunctionID; - xer_fprint(stdout, &asn_DEF_RANfunctionID, (void *)ranfunctionid); - break; - - case (ProtocolIE_ID_id_RICsubscription): - ricsubscription = &memb_ptr->value.choice.RICsubscription; - xer_fprint(stdout, &asn_DEF_RICsubscription, (void *)ricsubscription); - break; - } - } -} - -int main(int argc, char* argv[]){ - LOG_I("Start RIC Simulator - Performance Test"); - - options_t ops = read_input_options(argc, argv); - int client_fd = sctp_start_client(ops.server_ip, ops.server_port); - - //1. Send ENDCX2Setup - E2AP_PDU_t* pdu_setup = e2ap_xml_to_pdu("E2AP_ENDCX2SetupRequest.xml"); - // e2ap_asn1c_print_pdu(pdu_setup); - encode_and_send_sctp_data(pdu_setup, client_fd); - LOG_I("[SCTP] Sent ENDC X2 SETUP REQUEST"); - - //2. Receive ENDCX2SetupResponse - wait_for_sctp_data(client_fd); - - //3. Send RICSubscriptionRequest - E2AP_PDU_t* pdu_sub = e2ap_xml_to_pdu("E2AP_RICsubscriptionRequest_Ashwin.xml"); - e2ap_asn1c_print_pdu(pdu_sub); - encode_and_send_sctp_data(pdu_sub, client_fd); - LOG_I("[SCTP] Sent RIC SUBSCRIPTION REQUEST"); - - - //4. Receive RIC SUBSCRIPT RESPONSE - int count = 0; - - while(1) - { - usleep(1000); //sleep for one ms - - sctp_buffer_t recv_buf; - - int res_seq; - - if(sctp_receive_data(client_fd, recv_buf) > 0) - { - LOG_I("[SCTP] Received new data of size %d", recv_buf.len); - // e2ap_handle_sctp_data(client_fd, recv_buf); - - E2AP_PDU_t* res_pdu = new E2AP_PDU_t(); - - e2ap_asn1c_decode_pdu(res_pdu, recv_buf.buffer, recv_buf.len); - - int procedureCode = e2ap_asn1c_get_procedureCode(res_pdu); - int index = (int)res_pdu->present; - - if(index == E2AP_PDU_PR_successfulOutcome && \ - procedureCode == ProcedureCode_id_ricSubscription) - { - res_seq =subresponse_get_sequenceNum(res_pdu); - count++; - - LOG_I("Received RIC SUBSCRIPTION RESPONSE, seq = %d, totalCount = %d",\ - res_seq, count); - - //Put res_seq in new subscription request - E2AP_PDU_t* req_pdu = e2ap_xml_to_pdu("E2AP_RICsubscriptionRequest.xml"); - subrequest_set_sequenceNum(req_pdu, res_seq); - // e2ap_asn1c_print_pdu(req_pdu); - - encode_and_send_sctp_data(req_pdu, client_fd); - LOG_I("Send new SUBSCRIPT REQUEST, seq = %d", res_seq); - } - - } - } - - - // E2AP_PDU_t* res_pdu = e2ap_xml_to_pdu("E2AP_RICsubscriptionResponse.xml"); - // - // //Extract subscription response sequence number - // int res_seq = subresponse_get_sequenceNum(res_pdu); - // LOG_I("Subscription Response SeqNo = %d", res_seq); - // - // //Put responseSeq in new subscription request - // E2AP_PDU_t* req_pdu = e2ap_xml_to_pdu("E2AP_RICsubscriptionRequest.xml"); - // - // subrequest_set_sequenceNum(req_pdu, res_seq); - - // e2ap_asn1c_print_pdu(req_pdu); - - return 0; -} diff --git a/e2sim/previous/e2apv1sim/ricsim/test/WLG/ric_wlg.cpp b/e2sim/previous/e2apv1sim/ricsim/test/WLG/ric_wlg.cpp deleted file mode 100644 index 309153d..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/test/WLG/ric_wlg.cpp +++ /dev/null @@ -1,61 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -#include -#include -#include - -#include "e2sim_sctp.hpp" -#include "e2ap_message_handler.hpp" - -extern "C" { - #include "e2sim_defs.h" - #include "E2AP-PDU.h" - #include "e2ap_asn1c_codec.h" - - #include "ProtocolIE-Field.h" -} - -using namespace std; - - -int main(int argc, char* argv[]){ - LOG_I("Start RIC WLG"); - - options_t ops = read_input_options(argc, argv); - - int server_fd = sctp_start_server(ops.server_ip, ops.server_port); - int client_fd = sctp_accept_connection(ops.server_ip, server_fd); - - sctp_buffer_t recv_buf; - - LOG_I("[SCTP] Waiting for SCTP data"); - - while(1) //constantly looking for data on SCTP interface - { - if(sctp_receive_data(client_fd, recv_buf) <= 0) - break; - - LOG_I("[SCTP] Received new data of size %d", recv_buf.len); - - e2ap_handle_sctp_data(client_fd, recv_buf); - } - - return 0; -} diff --git a/e2sim/previous/e2apv1sim/ricsim/test/X2/CMakeLists.txt b/e2sim/previous/e2apv1sim/ricsim/test/X2/CMakeLists.txt deleted file mode 100644 index b257505..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/test/X2/CMakeLists.txt +++ /dev/null @@ -1,49 +0,0 @@ -#/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -#******************************************************************************/ - -cmake_minimum_required(VERSION 3.5.1) -set(CMAKE_CXX_COMPILER "/usr/bin/g++") -set(CMAKE_CXX_STANDARD 14) - -add_definitions("-D ASN_DISABLE_OER_SUPPORT") - -project(x2term) - -set (E2SIM_ROOT ../../) - -include_directories("${E2SIM_ROOT}/src") -include_directories("${E2SIM_ROOT}/src/DEF") -include_directories("${E2SIM_ROOT}/src/SCTP/") -include_directories("${E2SIM_ROOT}/src/E2AP") -include_directories("${E2SIM_ROOT}/src/E2AP/E2SM") -include_directories("${E2SIM_ROOT}/ASN1c") - -find_library( SCTP_STD_LIB sctp ) #needed for sctp_sendmsg - -#---------------------------------------------- -file(GLOB X2TERM_SOURCES - "${E2SIM_ROOT}/test/X2/x2term.cpp" - "${E2SIM_ROOT}/src/DEF/*.cpp" - "${E2SIM_ROOT}/src/SCTP/*.cpp" - "${E2SIM_ROOT}/src/E2AP/*.c" - "${E2SIM_ROOT}/src/E2AP/*.cpp" - "${E2SIM_ROOT}/ASN1c/*.c" - ) -add_executable(x2term ${X2TERM_SOURCES}) -target_link_libraries( x2term ${SCTP_STD_LIB} ) diff --git a/e2sim/previous/e2apv1sim/ricsim/test/X2/x2agent.cpp b/e2sim/previous/e2apv1sim/ricsim/test/X2/x2agent.cpp deleted file mode 100644 index db279a3..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/test/X2/x2agent.cpp +++ /dev/null @@ -1,41 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -#include -#include -#include - -#include "e2sim_defs.h" -#include "asn_x2ap.hpp" -#include "e2sim_sctp.hpp" - -using namespace std; - -int main(int argc, char* argv[]){ - - LOG_I("X2 Agent. Version %s", VERSION); - - options_t ops = read_input_options(argc, argv); - - int server_fd = sctp_start_server(ops.server_ip, ops.server_port); - int client_fd = sctp_accept_connection(server_fd); - - - return 0; -} diff --git a/e2sim/previous/e2apv1sim/ricsim/test/X2/x2term.cpp b/e2sim/previous/e2apv1sim/ricsim/test/X2/x2term.cpp deleted file mode 100644 index e325827..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/test/X2/x2term.cpp +++ /dev/null @@ -1,73 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -#include -#include -#include - -#include "e2sim_sctp.hpp" -#include "e2ap_message_handler.hpp" - -extern "C" { - #include "e2sim_defs.h" - #include "E2AP-PDU.h" - #include "e2ap_asn1c_codec.h" -} - -using namespace std; - -void encode_and_send_sctp_data(E2AP_PDU_t* pdu, int client_fd) -{ - uint8_t *buf; - sctp_buffer_t data; - - data.len = e2ap_asn1c_encode_pdu(pdu, &buf); - memcpy(data.buffer, buf, min(data.len, MAX_SCTP_BUFFER)); - - // sctp_send_data(client_fd, data); - sctp_send_data_X2AP(client_fd, data); -} - -void wait_for_sctp_data(int client_fd) -{ - sctp_buffer_t recv_buf; - if(sctp_receive_data(client_fd, recv_buf) > 0) - { - LOG_I("[SCTP] Received new data of size %d", recv_buf.len); - e2ap_handle_sctp_data(client_fd, recv_buf); - } -} - - -int main(int argc, char* argv[]){ - LOG_I("Start RIC Simulator"); - - options_t ops = read_input_options(argc, argv); - int client_fd = sctp_start_client(ops.server_ip, ops.server_port); - - //Send X2 Setup Request - E2AP_PDU_t* pdu_setup = e2ap_xml_to_pdu("E2AP_X2SetupRequest.xml"); - e2ap_asn1c_print_pdu(pdu_setup); - encode_and_send_sctp_data(pdu_setup, client_fd); - - //wait to receive X2SetupResponse - while(1){ - wait_for_sctp_data(client_fd); - } -} diff --git a/e2sim/previous/e2apv1sim/ricsim/test/X2/x2termination_test.cpp b/e2sim/previous/e2apv1sim/ricsim/test/X2/x2termination_test.cpp deleted file mode 100644 index 1953ce6..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/test/X2/x2termination_test.cpp +++ /dev/null @@ -1,119 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -#include -#include -#include - -#include "e2sim_defs.h" -#include "asn_x2ap.hpp" -#include "e2sim_sctp.hpp" -#include "x2ap_message_handler.hpp" -#include "x2ap_asn_codec.hpp" - -using namespace std; - -void test_X2Setup(int &client_fd) -{ - //Create X2SetupRequest message - x2ap_pdu_t* pdu = new_x2ap_pdu(); - eNB_config cfg; - - x2ap_create_X2SetupRequest(pdu, cfg); - x2ap_print_pdu(pdu); - - //Encode into buffer - sctp_buffer_t data; - x2ap_encode_pdu(pdu, data.buffer, sizeof(data.buffer), data.len); - - //Send to sctp - sctp_send_data(client_fd, data); - LOG_I("[SCTP] Sent X2 SETUP REQUEST"); - - //expect X2 SETUP RESPONSE - sctp_buffer_t recv_buf; - if(sctp_receive_data(client_fd, recv_buf) > 0) - { - LOG_I("[SCTP] Received new data of size %d", recv_buf.len); - x2ap_handle_sctp_data(client_fd, recv_buf); - } - - //Send again, expect X2 SETUP FAILURE - sctp_send_data(client_fd, data); - LOG_I("[SCTP] Sent X2 SETUP REQUEST"); - - if(sctp_receive_data(client_fd, recv_buf) > 0) - { - LOG_I("[SCTP] Received new data of size %d", recv_buf.len); - x2ap_handle_sctp_data(client_fd, recv_buf); - } - -} - -void test_ENDCX2Setup(int &client_fd) -{ - //Create ENDCX2SetupRequest message - x2ap_pdu_t* pdu = new_x2ap_pdu(); - eNB_config cfg; - - x2ap_create_ENDCX2SetupRequest(pdu, cfg); - x2ap_print_pdu(pdu); - - //Encode into buffer - sctp_buffer_t data; - x2ap_encode_pdu(pdu, data.buffer, sizeof(data.buffer), data.len); - - //Send to sctp - sctp_send_data(client_fd, data); - LOG_I("[SCTP] Sent ENDC X2 SETUP REQUEST"); - - //expect ENDC X2 SETUP RESPONSE - sctp_buffer_t recv_buf; - if(sctp_receive_data(client_fd, recv_buf) > 0) - { - LOG_I("[SCTP] Received new data of size %d", recv_buf.len); - x2ap_handle_sctp_data(client_fd, recv_buf); - } - - //Send again, expect ENDC X2 SETUP FAILURE - sctp_send_data(client_fd, data); - LOG_I("[SCTP] Sent ENDC X2 SETUP REQUEST"); - - if(sctp_receive_data(client_fd, recv_buf) > 0) - { - LOG_I("[SCTP] Received new data of size %d", recv_buf.len); - x2ap_handle_sctp_data(client_fd, recv_buf); - } - -} - -int main(int argc, char* argv[]){ - - LOG_I("X2 Termination Test"); - - options_t ops = read_input_options(argc, argv); - - int client_fd = sctp_start_client(ops.server_ip, ops.server_port); - - test_X2Setup(client_fd); - // test_ENDCX2Setup(client_fd); - - - return 0; -} diff --git a/e2sim/previous/e2apv1sim/ricsim/test/rmr_interface/README b/e2sim/previous/e2apv1sim/ricsim/test/rmr_interface/README deleted file mode 100644 index 9e5a197..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/test/rmr_interface/README +++ /dev/null @@ -1,13 +0,0 @@ -This is just a basic version of the README that the author of the E2 simulator can augment as he/she sees fit. - -Building rmr - -- Call the rmr_install.sh - - -# Running the sender and receiver - -- Create a route generate (.rt) file that is common to both the sender and receiver and place it in $HOME/global_rmr_files/global_rmr_routes.rt -- Build the receiver in the /tests/pendulum_xapp folder by invoking build_recvr.sh. Run it using bash run_receiver -- Build the sender in the /tests/sender folder by invoking build_sender.sh. Run it using bash run_sender. -- You can see packets being exchanged. diff --git a/e2sim/previous/e2apv1sim/ricsim/test/rmr_interface/rmr_install.sh b/e2sim/previous/e2apv1sim/ricsim/test/rmr_interface/rmr_install.sh deleted file mode 100644 index 786a07e..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/test/rmr_interface/rmr_install.sh +++ /dev/null @@ -1,28 +0,0 @@ -#!/bin/bash -eu -# -# -# Copyright 2019 AT&T Intellectual Property -# Copyright 2019 Nokia -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - - -#git clone https://gerrit.oran-osc.org/r/ric-plt/lib/rmr && (cd rmr && curl -kLo `git rev-parse --git-dir`/hooks/commit-msg https://gerrit.oran-osc.org/r/tools/hooks/commit-msg; chmod +x `git rev-parse --git-dir`/hooks/commit-msg && git checkout 6735f136906ce2 ) - -cd rmr/ -mkdir $HOME/usr -mkdir .build -cd .build -cmake .. -DCMAKE_INSTALL_PREFIX=$HOME/usr -make install diff --git a/e2sim/previous/e2apv1sim/ricsim/test/rmr_interface/tests/receiver/build_and_run_recvr.sh b/e2sim/previous/e2apv1sim/ricsim/test/rmr_interface/tests/receiver/build_and_run_recvr.sh deleted file mode 100755 index 602046f..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/test/rmr_interface/tests/receiver/build_and_run_recvr.sh +++ /dev/null @@ -1,30 +0,0 @@ -#!/bin/bash -eu -# -# -# Copyright 2019 AT&T Intellectual Property -# Copyright 2019 Nokia -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -export C_INCLUDE_PATH=$HOME/usr/include -export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/usr/lib -export RMR_SEED_RT=$HOME/global_rmr_files/global_rmr_routes.rt -gcc rmr_rcvr.c -g -o rmr_rcvr -L $HOME/usr/lib -lrmr_nng -lnng -lpthread -lm - -export PENDULUM_XAPP_RMR_RCV_PORT=5560 -export DEMO_SENDER_PTO=1 # poll timeout listening for replies - -export PRINT_FREQ=10000 #frequency at which test stats will be printed - -RMR_RCV_ACK=1 ./rmr_rcvr $PRINT_FREQ; # receiver that will ack every sender message diff --git a/e2sim/previous/e2apv1sim/ricsim/test/rmr_interface/tests/receiver/rmr_rcvr.c b/e2sim/previous/e2apv1sim/ricsim/test/rmr_interface/tests/receiver/rmr_rcvr.c deleted file mode 100644 index 2d8e7fd..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/test/rmr_interface/tests/receiver/rmr_rcvr.c +++ /dev/null @@ -1,163 +0,0 @@ -/* - * - * Copyright 2019 AT&T Intellectual Property - * Copyright 2019 Nokia - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -// :vim ts=4 sw=4 noet: -/* - Mnemonic: rmr_rcvr2.c - Abstract: Very simple test listener built on RMr libraries. It does nothing - but return the message it recevied back to the sender. - - Define these environment variables to have some control: - RMR_SEED_RT -- path to the static routing table - RMR_RTG_SVC -- host:port of the route table generator - - One command line parm is accepted: stats frequency. This is a number, n, - which causes stats to be generated after every n messages. If set to 0 - each message is written when received and no stats (msg rate) is generated. - - Date: 11 February 2018 - Author: E. Scott Daniels - - Mods: 18 Mar 2019 -- simplified for demo base. -*/ - -#include -#include -#include -#include -#include - -#include - -typedef struct { - int32_t mtype; // message type ("long" network integer) - int32_t plen; // payload length - unsigned char xid[RMR_MAX_XID]; // space for user transaction id or somesuch - unsigned char sid[RMR_MAX_SID]; // sender ID for return to sender needs - unsigned char src[RMR_MAX_SRC]; // name of the sender (source) - struct timespec ts; // timestamp ??? -} mhdr_t; - - -int main( int argc, char** argv ) { - void* mrc; // msg router context - rmr_mbuf_t* msg = NULL; // message received - int i; - char* listen_port; - char* tok; - int must_ack = 1; // flag -- if set we rts all messages - mhdr_t* hdr; - int last_seq = 0; // sequence number from last message - int this_seq; // sequence number on this message - int count = 0; // count of msg since last status - long long tcount = 0; // total count of messages - time_t ts; - time_t lts; - int stat_freq = 20000; // write stats after reciving this many messages - int first_seq = -1; // first sequence number we got to report total received - int max_rt = 1000; // max times we'll retry an ack - - if( (tok = getenv( "RMR_RCV_ACK" )) != NULL ) { - must_ack = atoi( tok ); - } - - if( (listen_port = getenv( "PENDULUM_XAPP_RMR_RCV_PORT" )) == NULL ) { - listen_port = "4560"; - } - - if( argc > 1 ) { - stat_freq = atoi( argv[1] ); - } - fprintf( stderr, " stats will be reported every %d messages\n", stat_freq ); - - mrc = rmr_init( listen_port, RMR_MAX_RCV_BYTES, RMRFL_NONE ); // start your engines! - if( mrc == NULL ) { - fprintf( stderr, " ABORT: unable to initialise RMr\n" ); - exit( 1 ); - } - - while( ! rmr_ready( mrc ) ) { - fprintf( stderr, " waiting for RMr to show ready\n" ); - sleep( 1 ); - } - fprintf( stderr, " RMr now shows ready\n" ); - - lts = time( NULL ); - fprintf( stderr, " listening on %s acking %s\n", listen_port, must_ack != 0 ? "on" : "off" ); - - //rmr_set_stimeout( mrc, 50 ); - while( 1 ) { - sleep (2 ); - msg = rmr_rcv_msg( mrc, msg ); // block until one arrives - if( msg == NULL ) { - continue; // shouldn't happen, but don't crash if we get nothing - } - if( msg->mtype < 0 || msg->state != RMR_OK ) { - fprintf( stderr, "[WRN] bad msg: state=%d errno=%d\n", msg->state, errno ); - continue; // just loop to receive another - } - - if( stat_freq == 0 ) { // mechanism to dump all received messages for quick testing - fprintf( stdout, " msg received: type = %d len = %d (%s)\n", msg->mtype, msg->len, msg->payload ); // assume a nil term string in payload - } - - count++; // messages received for stats output - tcount++; - - //if( stat_freq >= 1000 ) { - if(1) { - //if( (count % stat_freq) == 0 ) { - if(1) { - ts = time( NULL ); - if( ts - lts ) { - - fprintf( stderr, " %7lld received %5lld msg/s over the last %3lld seconds mrt=%d, with content=%s\n", - (long long) last_seq - first_seq, (long long) (count / (ts-lts)), (long long) ts-lts, max_rt,msg->payload ); - lts = ts; - count = 0; - } - } - } - - if( must_ack ) { // send back a response - //fprintf( stdout, " msg: type = %d len = %d; acking\n", msg->mtype, msg->len ); - //msg->len = snprintf( msg->payload, 1024, "bar %lld", tcount ); // ack with bar and counter - msg->len = snprintf( msg->payload, 1024, "Reply hello back to Arduino!\n"); - // msg->len = snprintf( msg->payload, 1024, "OK\n"); - - - //msg->mtype = 999; //only to be used if rts is not possible - - //msg = rmr_send_msg (mrc, msg); //only to be used if rts is not possible - - msg = rmr_rts_msg( mrc, msg ); // this is a retur to sender; preferred - //if( (msg = rmr_send_msg( mrc, msg )) != NULL ) { // this is a routed send; not preferred, but possible - if( (msg = rmr_rts_msg( mrc, msg )) != NULL ) { - //----- checking too many times here has been problematic and causes what appears to be race condidtions in NNG threads; for now max_rt should be small - max_rt = 2; - while( max_rt > 0 && msg->state != RMR_OK && errno == EAGAIN ) { // NNG likes to refuse sends, just keep trying on eagain - max_rt--; - rmr_rts_msg( mrc, msg ); - //rmr_send_msg (mrc, msg); - } - } - } - - } -} diff --git a/e2sim/previous/e2apv1sim/ricsim/test/rmr_interface/tests/sender/build_and_run_sender.sh b/e2sim/previous/e2apv1sim/ricsim/test/rmr_interface/tests/sender/build_and_run_sender.sh deleted file mode 100755 index c4eb8fc..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/test/rmr_interface/tests/sender/build_and_run_sender.sh +++ /dev/null @@ -1,29 +0,0 @@ -#!/bin/bash -eu -# -# -# Copyright 2019 AT&T Intellectual Property -# Copyright 2019 Nokia -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -export C_INCLUDE_PATH=$HOME/usr/include -export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/usr/lib -export RMR_SEED_RT=$HOME/global_rmr_files/global_rmr_routes.rt -gcc rmr_sender.c -g -o rmr_sender -L $HOME/usr/lib -lrmr_nng -lnng -lpthread -lm - -export DUMMY_SENDER_RMR_RCV_PORT=38086 -export DEMO_SENDER_PTO=1 # poll timeout listening for replies -export DEMO_MAX_PAYLOAD_BYTES=240 # max_size of payload - -./rmr_sender; diff --git a/e2sim/previous/e2apv1sim/ricsim/test/rmr_interface/tests/sender/rmr_sender.c b/e2sim/previous/e2apv1sim/ricsim/test/rmr_interface/tests/sender/rmr_sender.c deleted file mode 100644 index 724b0d1..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/test/rmr_interface/tests/sender/rmr_sender.c +++ /dev/null @@ -1,96 +0,0 @@ -/* - * - * Copyright 2019 AT&T Intellectual Property - * Copyright 2019 Nokia - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - - -// :vim ts=4 sw=4 noet: - -/* - Mnemonic: rmr_sender2.c - Abstract: Very simple test sender that polls and deals with responses - in between sends (from a single process). - - Date: 18 February 2018 - Author: E. Scott Daniels - - Modified: 18 Mar 2019 - changes to support demo -*/ - -#include -#include -#include -#include -#include -#include -#include -#include -#include "rmr_wrapper.h" - - -void usage( char* argv0 ) { - fprintf( stderr, "usage: %s [mtype-max]\n", argv0 ); - fprintf( stderr, "Sender will send messages with rotating msg types from 0 through mtype-max (if supplied)\n" ); - fprintf( stderr, "if not supplied, only mtype 0 is sent\n" ); - fprintf( stderr, "The default listen port for return messages is 43086; this can be changed by setting DUMMY_SENDER_RMR_RCV_PORT in the environment.\n" ); - fprintf( stderr, "The sender will send forever unless DEMO_SENDER_MAX is set in the environment which causes termination after max messages.\n" ); - fprintf( stderr, "The sender will poll for received messages after each send. The amount of time waited is controlled with DEMO_SENDER_PTO (ms) in the env. Use 0 for non-blocking poll.\n" ); -} - -int main( int argc, char** argv ) { - struct rmr_context *rmr_c; //obtain our enhanced rmr_context - int mtype = 0; // we can loop through several message types - long count = 0; - char* lport = "43086"; // default listen port - long rcount = 0; // number of acks received - - if( (eparm = getenv( "DUMMY_SENDER_RMR_RCV_PORT" )) != NULL ) { - lport = strdup( eparm ); - } - - rmr_c = rmr_init_wrapper(lport); - - while( ! rmr_ready( rmr_c->mrc ) ) { - fprintf( stderr, " waiting for RMr to indicate ready\n" ); - sleep( 1 ); - } - fprintf( stderr, "[OK] initialisation complete\n" ); - - while( 1 ) { - usleep( 10 ); // simulate some work being done - char* message = "foo 111"; - - if(rmr_send_wrapper (rmr_c, mtype, message ) == 1) { - //message successfully received in the receive buffer - char reply[1024]; - strcpy(reply,rmr_c->rbuf->payload); - fprintf( stderr, "Acknowledgment received with content:%s\n",rmr_c->rbuf->payload); - rcount++; - } - count++; - - if( (count % 5000) == 0 ) { - fprintf( stdout, "[INFO] total sent: %ld total received: %ld drops=%ld\n", count, rcount, count - rcount ); - } - - } - - fprintf( stderr, "[INFO] sender is terminating having sent %ld messages\n", count ); - rmr_close_wrapper(rmr_c); - - return 0; -} diff --git a/e2sim/previous/e2apv1sim/ricsim/test/rmr_interface/tests/sender/rmr_wrapper.h b/e2sim/previous/e2apv1sim/ricsim/test/rmr_interface/tests/sender/rmr_wrapper.h deleted file mode 100644 index 446d20d..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/test/rmr_interface/tests/sender/rmr_wrapper.h +++ /dev/null @@ -1,142 +0,0 @@ -/* - * - * Copyright 2019 AT&T Intellectual Property - * Copyright 2019 Nokia - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -int epoll_to = 1;// global default epoll timout -- 1ms -char* eparm; // generic env pointer - -struct rmr_context { - void* mrc; - int rcv_fd; // pollable fd - struct epoll_event epe; // event definition for event to listen to - struct epoll_event events[10]; // wait on 10 possible events - int ep_fd; - int max_payload_size; // ++SCOTT - rmr_mbuf_t* sbuf; // send buffer - rmr_mbuf_t* rbuf; // received buffer -}; - - -struct rmr_context * rmr_init_wrapper(char* lport){ - - struct rmr_context *rmr_c = malloc(sizeof (struct rmr_context)); - fprintf( stderr, "[INFO] glistening for replies on %s\n", lport ); - - - rmr_c->mrc = rmr_init(lport, RMR_MAX_RCV_BYTES, RMRFL_NONE ); // setup RMr and get a context (rmr_c.mrc) - rmr_c->ep_fd=-1; - - //polling related initializations - rmr_c->rcv_fd = rmr_get_rcvfd( rmr_c->mrc );// get the fd to poll for messages received - if( rmr_c->rcv_fd < 0 ) { - fprintf( stderr, "[FAIL] unable to set up polling fd\n" ); - exit( 1 ); - } - - if( (rmr_c->ep_fd = epoll_create1( 0 )) < 0 ) { - fprintf( stderr, "[FAIL] unable to create epoll fd: %d\n", errno ); - exit( 1 ); - } - rmr_c->epe.events = EPOLLIN; - rmr_c->epe.data.fd = rmr_c->rcv_fd; - - if( epoll_ctl( rmr_c->ep_fd, EPOLL_CTL_ADD, rmr_c->rcv_fd, &rmr_c->epe ) != 0 ) { - fprintf( stderr, "[FAIL] epoll_ctl status not 0 : %s\n", strerror( errno ) ); - exit( 1 ); - } - //end of polling related initializations - - //++SCOTT------ next lines until !!SCOTT - rmr_c->max_payload_size = 240; //default - if( (eparm = getenv( "DEMO_MAX_PAYLOAD_BYTES" )) != NULL ) { - rmr_c->max_payload_size = atoi(eparm); // override with env - } - //!!SCOTT - - //~~SCOTT next line - rmr_c->sbuf = rmr_alloc_msg( rmr_c->mrc, rmr_c->max_payload_size ); // allocate largest payload to send - rmr_c->rbuf = NULL; - - return rmr_c; -} - -void rmr_send_wrapper (struct rmr_context *rmr_c, int mtype, char* message) { - //--SCOTT int max_payload_size = 240; //default - //--SCOTT if( (eparm = getenv( "DEMO_MAX_PAYLOAD_BYTES" )) != NULL ) { - //--SCOTT max_payload_size = atoi(eparm); - //--SCOTT } - - //~~SCOTT next line - snprintf( rmr_c->sbuf->payload, rmr_c->max_payload_size, "%s", message); // simple send message -- replace with real content - - rmr_c->sbuf->mtype = mtype; // fill in message meta data - rmr_c->sbuf->len = strlen( rmr_c->sbuf->payload ) + 1; // actual length of payload (count the nil end of string) - rmr_c->sbuf->state = 0; - - //retry send for a few times before giving up - long natter = 0; // natter on for errors only once in a while - if( (rmr_c->sbuf = rmr_send_msg( rmr_c->mrc, rmr_c->sbuf )) != NULL ) {// unlikely, but might get a null pointer back if NNG really is buggered - if( rmr_c->sbuf->state != RMR_OK ) { - if( errno == EAGAIN ) { - while( rmr_c->sbuf->state != RMR_OK && errno == EAGAIN ) {// NNG likes to refuse sends, just keep trying on eagain - rmr_send_msg( rmr_c->mrc, rmr_c->sbuf ); - } - } else {// most likely connection refused, don't natter on - if( time( NULL ) > natter ) { - fprintf( stderr, "[WARN] send failed, pausing (%s)\n", strerror( errno ) ); - natter = time( NULL ) + 2; - } - sleep( 1 ); - } - } - } else { - if( time( NULL ) > natter ) { - fprintf( stderr, "[WARN] send failed, pausing (%s)\n", strerror( errno ) ); - natter = time( NULL ) + 2; - } - sleep( 1 ); - } - -} - -int rmr_poll_for_message(struct rmr_context *rmr_c){ - int nready; - int i; - int return_type =0; - //start polling the channel to read the acknowledgment - //~~SCOTT next line - - nready = epoll_wait( rmr_c->ep_fd, rmr_c->events, 10, epoll_to ); // wait up to epoll_to ms for a response - for( i = 0; i < nready && i < 10; i++ ) { // loop through to find what is ready - if( rmr_c->events[i].data.fd == rmr_c->rcv_fd ) { // RMr has something - errno = 0; - rmr_c->rbuf = rmr_rcv_msg( rmr_c->mrc, rmr_c->rbuf ); // something ready; this should not block - if( rmr_c->rbuf ) { - // fprintf( stderr, " acknowledgment received:%s\n",rmr_c->rbuf->payload); - return_type = 1; //the message has been acknowledged - } - } - } - return return_type; -} - -void rmr_close_wrapper (struct rmr_context *rmr_c){ - - rmr_close( rmr_c->mrc ); - free(rmr_c); -} diff --git a/e2sim/previous/e2apv1sim/ricsim/tools/asn_defs/generate_e2ap_e2sm_codes b/e2sim/previous/e2apv1sim/ricsim/tools/asn_defs/generate_e2ap_e2sm_codes deleted file mode 100755 index 87ced95..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/tools/asn_defs/generate_e2ap_e2sm_codes +++ /dev/null @@ -1,39 +0,0 @@ -#!/bin/bash -#/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -#******************************************************************************/ - -E2AP_asn="e2ap-v031.asn" -E2SM_asn="e2sm-gNB-X2-release-1-v041.asn" -X2AP_asn="x2ap-no-desc-15-04.asn" - -GEN_DIR=../../src/ASN1c/ - -rm -f $GEN_DIR/*.c $GEN_DIR/*.h - -asn1c -pdu=all -fcompound-names -gen-PER -no-gen-OER -no-gen-example \ - -fno-include-deps -D $GEN_DIR $E2AP_asn $X2AP_asn \ - |& egrep -v "^Copied|^Compiled" | sort -u - -asn1c -pdu=all -fcompound-names -gen-PER -no-gen-OER -no-gen-example \ - -fno-include-deps -D $GEN_DIR $E2SM_asn $X2AP_asn \ - |& egrep -v "^Copied|^Compiled" | sort -u - -echo "ASN1 C codes generated at $GEN_DIR" - -# asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER /tmp/e2ap-v031.asn /tmp/x2ap-no-desc-15-04.asn diff --git a/e2sim/previous/e2apv1sim/ricsim/tools/build_helper.bash b/e2sim/previous/e2apv1sim/ricsim/tools/build_helper.bash deleted file mode 100644 index 1759621..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/tools/build_helper.bash +++ /dev/null @@ -1,93 +0,0 @@ -#/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -#******************************************************************************/ - -####################################### -# Helper Func -###################################### - -black='\E[30m' -red='\E[31m' -green='\E[32m' -yellow='\E[33m' -blue='\E[34m' -magenta='\E[35m' -cyan='\E[36m' -white='\E[37m' -reset_color='\E[00m' - -cecho() # Color-echo. arg1 = message, arg2 = color -{ - local default_msg="No Message." - message=${1:-$default_msg} - color=${2:-$green} - echo -e -n "$color$message$reset_color" - echo - return -} - -echo_error() { - local my_string="" - until [ -z "$1" ] - do - my_string="$my_string$1" - shift - done - cecho "$my_string" $red -} - -echo_fatal() { - local my_string="" - until [ -z "$1" ] - do - my_string="$my_string$1" - shift - done - echo_error "$my_string" - exit -1 -} - -echo_warning() { - local my_string="" - until [ -z "$1" ] - do - my_string="$my_string$1" - shift - done - cecho "$my_string" $yellow -} - -echo_success() { - local my_string="" - until [ -z "$1" ] - do - my_string="$my_string$1" - shift - done - cecho "$my_string" $green -} - -echo_info() { - local my_string="" - until [ -z "$1" ] - do - my_string="$my_string$1" - shift - done - cecho "$my_string" $blue -} diff --git a/e2sim/previous/e2apv1sim/ricsim/tools/install_asn1c b/e2sim/previous/e2apv1sim/ricsim/tools/install_asn1c deleted file mode 100755 index 7d1391f..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/tools/install_asn1c +++ /dev/null @@ -1,31 +0,0 @@ -#!/bin/bash -#/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -#******************************************************************************/ - -echo "Will install asn1c" -sudo rm -rf asn1c -git clone https://gerrit.o-ran-sc.org/r/com/asn1c.git -cd asn1c/ -autoreconf -iv -./configure -cd examples -chmod u+x crfc2asn1.pl -cd .. -make -sudo make install diff --git a/e2sim/previous/e2apv1sim/ricsim/tools/install_dependencies b/e2sim/previous/e2apv1sim/ricsim/tools/install_dependencies deleted file mode 100755 index c5b3d7b..0000000 --- a/e2sim/previous/e2apv1sim/ricsim/tools/install_dependencies +++ /dev/null @@ -1,38 +0,0 @@ -#!/bin/bash -#/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -#******************************************************************************/ - -sudo apt-get update \ - && sudo apt-get install -y \ - build-essential \ - git \ - cmake \ - libsctp-dev \ - lksctp-tools \ - autoconf \ - automake \ - libtool \ - bison \ - flex \ - libboost-all-dev \ - iputils-ping \ - net-tools \ - nano \ - vim \ - && sudo apt-get clean diff --git a/e2sim/previous/e2apv1sim/simulation.txt b/e2sim/previous/e2apv1sim/simulation.txt deleted file mode 100644 index c1eedb7..0000000 --- a/e2sim/previous/e2apv1sim/simulation.txt +++ /dev/null @@ -1,3 +0,0 @@ -This is a silulation file -This is a simulation -This is a a a a a simulation file! diff --git a/e2sim/previous/e2apv1sim/src/ASN1/asn/asn.hpp b/e2sim/previous/e2apv1sim/src/ASN1/asn/asn.hpp deleted file mode 100755 index 3affd81..0000000 --- a/e2sim/previous/e2apv1sim/src/ASN1/asn/asn.hpp +++ /dev/null @@ -1,27 +0,0 @@ -#pragma once -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -*******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries - -// Local Includes: Application specific classes, functions, and libraries -#include "asn/version.hpp" -#include "asn/elements.hpp" -#include "asn/constraints.hpp" -#include "asn/variant.hpp" \ No newline at end of file diff --git a/e2sim/previous/e2apv1sim/src/ASN1/asn/ber/codec.hpp b/e2sim/previous/e2apv1sim/src/ASN1/asn/ber/codec.hpp deleted file mode 100755 index 3a42ad5..0000000 --- a/e2sim/previous/e2apv1sim/src/ASN1/asn/ber/codec.hpp +++ /dev/null @@ -1,931 +0,0 @@ -#pragma once -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries - -// Local Includes: Application specific classes, functions, and libraries -#include "asn/elements.hpp" -#include "asn/ber/common.hpp" -#include "asn/ber/context.hpp" -#include "asn/ber/tag.hpp" -#include "asn/ber/length.hpp" -#include "asn/ber/visitor.hpp" -#include "asn/ber/opentype.hpp" - -namespace asn { -namespace ber { - -/******************************************************************************** -pack (X.690) -*********************************************************************************/ -template -bool pack(IE const& ie, EncoderCtx& ctx) -{ - ctx.refErrorCtx().reset(); - Element::run(ie, ctx); - - if (ctx) - Tools::bit_accessor::padByte(ctx.refBuffer()); - - return static_cast(ctx); -} -/******************************************************************************** -unpack (X.690) -*********************************************************************************/ -template -bool unpack(IE& ie, DecoderCtx& ctx) -{ - Element::run(ie, ctx); - - if (ctx) - Tools::bit_accessor::padByte(ctx.refBuffer()); - - if(ctx && ctx.refBuffer().getBytesLeft()) - { - ctx.ie_name(IE::name()); - ctx.refErrorCtx().lengthErrorBytes(ctx.refBuffer().getBytesLeft(), 0); - } - - return static_cast(ctx); -} - -/*************************************************************************************** -* ElementType -***************************************************************************************/ -template -struct ElementType; - -/*************************************************************************************** -* ExplicitCodec: Codec for elements with EXPLICIT tag -***************************************************************************************/ -template -struct ExplicitCodec -{ - using tag_t = Tag; - static bool inline is_matched(tag_value_t _tag) {return _tag == tag_t::value();} - - static void inline run(IE const& ie, EncoderCtx& ctx) - { - auto & buffer = ctx.refBuffer(); - - tag_t::encode(ctx); - u8* len_ptr = buffer.advance(1); //reserve for the length - - Element::run(static_cast(ie), ctx); - - size_t len = buffer.begin() - len_ptr - 1; - if(len > 127) - { - len_ptr[0] = 0x80; //undefinite length form per X.690 8.1.3.6 - uint8_t buff[2] = {0}; // end-of-contents octets (X.690 8.1.5) - buffer.putBytes(buff, sizeof(buff)); - } - else - { - len_ptr[0] = static_cast(len); //one byte form per X.690 8.1.3.4 - } - } - - static void inline run(IE& ie, DecoderCtx& ctx, tag_value_t tag) - { - if(tag_t::value() != tag) - ctx.refErrorCtx().tagError(static_cast(tag)); - else - { - auto & buffer = ctx.refBuffer(); - size_t length = Length::decode(ctx); - - ASN_DECODER_TRACE("EX buffer: %s", static_cast(tag), length, ctx.refBuffer().toString()); - - if(length == indefinite_length) - { - Element::run(static_cast(ie), ctx); - - if(ctx) - { - uint8_t const* data_in = ctx.refBuffer().getBytes(2); - if(data_in && (data_in[0] || data_in[1])) - { - ctx.refErrorCtx().errorWrongEndOfContent(); - } - } - } - else - { - if (buffer.getBytesLeft() < length) - { - ctx.refErrorCtx().lengthErrorBytes(buffer.getBytesLeft(), length); - } - else - { - DecoderCtx::buf_type::pointer end = buffer.end(); - buffer.set_end(buffer.begin() + length); - - Element::run(static_cast(ie), ctx); - - buffer.set_end(end); - } - } - - } - } -}; - -/*************************************************************************************** -* BOOLEAN: Encoding the boolean type (X.690 8.2) -***************************************************************************************/ -template -struct ElementType > -{ - using tag_t = Tag; - - static bool inline is_matched(tag_value_t tag) {return tag == tag_t::value();} - - static void inline run(IE const& ie, EncoderCtx& ctx) - { - tag_t::encode(ctx); - Length::encode(1, ctx); - if(ie.get()) - Tools::put_bytes(0xFF, 1, ctx); - else - Tools::put_bytes(0, 1, ctx); - } - - static void inline run(IE& ie, DecoderCtx& ctx, tag_value_t tag) - { - if(tag_t::value() != tag) - ctx.refErrorCtx().tagError(static_cast(tag)); - else - { - size_t length = Length::decode(ctx); - if(length != 1) - { - ctx.refErrorCtx().sizeRangeError(length, 1, 1); - } - else - { - ASN_DECODER_TRACE("IE buffer: %s", static_cast(IE::ie_type), IE::name(), static_cast(tag), length, ctx.refBuffer().toString()); - uint8_t value; - Tools::get_bytes(value, 1, ctx); - ie.set(value > 0); - } - } - } -}; -/*************************************************************************************** -* INTEGER: Encoding the integer type (X.690 8.3) -***************************************************************************************/ -template -struct ElementType > -{ - using tag_t = Tag; - - static bool inline is_matched(tag_value_t tag) {return tag == tag_t::value();} - - static void inline run(IE const& ie, EncoderCtx& ctx) - { - tag_t::encode(ctx); - size_t length = Length::get(ie.get()); - Length::encode(length, ctx); - Tools::put_bytes(ie.get(), length, ctx); - } - static void inline run(IE& ie, DecoderCtx& ctx, tag_value_t tag) - { - if(tag_t::value() != tag) - { - ctx.refErrorCtx().tagError(static_cast(tag)); - } - else - { - size_t length = Length::decode(ctx); - if(!length || length == indefinite_length) - ctx.refErrorCtx().sizeRangeError(length); - else - { - ASN_DECODER_TRACE("IE buffer: %s", static_cast(IE::ie_type), IE::name(), static_cast(tag), length, ctx.refBuffer().toString()); - typename IE::value_type value; - Tools::get_bytes(value, length, ctx); - ie.set(value); - } - } - } -}; -/*************************************************************************************** -* ENUMERATED: Encoding the enumerated type (X.690 8.4) -***************************************************************************************/ -template -struct ElementType > -{ - using tag_t = Tag; - - static bool inline is_matched(tag_value_t tag) {return tag == tag_t::value();} - - static void inline run(IE const& ie, EncoderCtx& ctx) - { - tag_t::encode(ctx); - size_t length = Length::get(ie.get()); - Length::encode(length, ctx); - Tools::put_bytes(ie.get(), length, ctx); - } - static void inline run(IE& ie, DecoderCtx& ctx, tag_value_t tag) - { - if(tag_t::value() != tag) - ctx.refErrorCtx().tagError(static_cast(tag)); - else - { - size_t length = Length::decode(ctx); - if(!length || length == indefinite_length) - ctx.refErrorCtx().sizeRangeError(length); - else - { - ASN_DECODER_TRACE("IE buffer: %s", static_cast(IE::ie_type), IE::name(), static_cast(tag), length, ctx.refBuffer().toString()); - typename IE::value_type value; - Tools::get_bytes(value, length, ctx); - ie.set(value); - } - } - } -}; -/*************************************************************************************** -* REAL: Encoding the real type (X.690 8.5) -***************************************************************************************/ -//missing... -/*************************************************************************************** -* BIT STRING: Encoding the bitstring type (X.690 8.6) -***************************************************************************************/ -template -struct ElementType > -{ - using tag_t = Tag; - using ctag_t = Tag; - - static bool inline is_matched(tag_value_t tag) {return tag == tag_t::value() || tag == ctag_t::value();} - - static void inline run(IE const& ie, EncoderCtx& ctx) - { - tag_t::encode(ctx); - - uint8_t tail = ie.get_bitqty() % 8; - - size_t length = ie.get_buffer().size(); - Length::encode(length + 1, ctx); - - auto & buffer = ctx.refBuffer(); - buffer.putByte((8 - tail) & 0x7F); - - if (tail) - { - buffer.putBytes(ie.get_buffer().data(), length - 1); - u8 last_byte = *(ie.get_buffer().data() + length - 1); - - last_byte <<= 8 - tail; - buffer.putBytes(&last_byte, 1); - } - else - { - buffer.putBytes(ie.get_buffer().data(), length); - } - } - static void inline run(IE& ie, DecoderCtx& ctx, tag_value_t tag) - { - ie.clear(); - if(tag_t::value() == tag) - { - size_t length = Length::decode(ctx); - if(!length || length == indefinite_length) - { - ctx.refErrorCtx().sizeRangeError(length); - } - else - { - ASN_DECODER_TRACE("IE buffer: %s", static_cast(IE::ie_type), IE::name(), static_cast(tag), length, ctx.refBuffer().toString()); - uint8_t const* data_in = ctx.refBuffer().getBytes(length); - if(data_in) - { - size_t len_bytes = length - 1; - size_t bitqty = len_bytes << 3; - - if((data_in[0] & 0x80) || (bitqty < data_in[0])) - { - ctx.refErrorCtx().valueRangeError(data_in[0]); - } - else - { - bitqty = bitqty - data_in[0]; - uint8_t* data_out = ctx.refAllocator().alloc_bytes(len_bytes); - if (data_out) - { - memcpy(data_out, &data_in[1], len_bytes); - const u8 shift = bitqty % 8; - if (shift) - { - data_out[len_bytes - 1] >>= 8 - shift; - } - ie.set_buffer(bitqty, data_out); - } - else - { - ctx.refErrorCtx().allocatorNoMem(0, len_bytes); - } - } - } - } - } - else if(ctag_t::value() == tag) - { - //todo: implement the segmented data - ctx.refErrorCtx().errorUnsupported(); - } - else - { - ctx.refErrorCtx().tagError(static_cast(tag)); - } - } -}; -/*************************************************************************************** -* OCTET STRING: Encoding the octetstring type (X.690 8.7) -* Restricted Character string types (X.690 8.23) -***************************************************************************************/ -template -struct ElementType > -{ - using tag_t = Tag; - using ctag_t = Tag; - - static bool inline is_matched(tag_value_t tag) {return tag == tag_t::value() || tag == ctag_t::value();} - - static void inline run(IE const& ie, EncoderCtx& ctx) - { - tag_t::encode(ctx); - size_t length = ie.get().size(); - Length::encode(length, ctx); - ctx.refBuffer().putBytes(ie.get().data(), length); - } - static void inline run(IE& ie, DecoderCtx& ctx, tag_value_t tag) - { - ie.clear(); - if(tag_t::value() == tag) - { - size_t length = Length::decode(ctx); - if(length == indefinite_length) - { - ctx.refErrorCtx().sizeRangeError(length); - } - else - { - ASN_DECODER_TRACE("IE buffer: %s", static_cast(IE::ie_type), IE::name(), static_cast(tag), length, ctx.refBuffer().toString()); - uint8_t const* data_in = ctx.refBuffer().getBytes(length); - if(data_in) - { - ie.set(length, data_in); - } - } - } - else if(ctag_t::value() == tag) - { - //todo: implement the segmented data - ctx.refErrorCtx().errorUnsupported(); - } - else - { - ctx.refErrorCtx().tagError(static_cast(tag)); - } - } -}; -/*************************************************************************************** -* NULL: Encoding the null type (X.690 8.8) -***************************************************************************************/ -template -struct ElementType > -{ - using tag_t = Tag; - - static bool inline is_matched(tag_value_t tag) {return tag == tag_t::value();} - - static void inline run(IE const& ie, EncoderCtx& ctx) - { - tag_t::encode(ctx); - Length::encode(0, ctx); - } - - static void inline run(IE& ie, DecoderCtx& ctx, tag_value_t tag) - { - if(tag_t::value() != tag) - ctx.refErrorCtx().tagError(static_cast(tag)); - else - { - size_t length = Length::decode(ctx); - if(length) - ctx.refErrorCtx().sizeRangeError(length); - ASN_DECODER_TRACE("IE buffer: %s", static_cast(IE::ie_type), IE::name(), static_cast(tag), length, ctx.refBuffer().toString()); - } - } -}; -/*************************************************************************************** -* SEQUENCE: Encoding the sequence type (X.690 8.9) -* SET: Encoding the set type (X.690 8.11) -***************************************************************************************/ -template -struct ElementType > -{ - using tag_t = Tag; - - static bool inline is_matched(tag_value_t tag) {return tag == tag_t::value();} - - static void inline run(IE const& ie, EncoderCtx& ctx) - { - auto & buffer = ctx.refBuffer(); - - tag_t::encode(ctx); - u8* len_ptr = buffer.advance(1); //reserve for the length - - VisitorEncoderSeq ve(ctx, ie); - ie.encode(ve); - - size_t len = buffer.begin() - len_ptr - 1; - if(len > 127) - { - len_ptr[0] = 0x80; //undefinite length form per X.690 8.1.3.6 - uint8_t buff[2] = {0}; // end-of-contents octets (X.690 8.1.5) - buffer.putBytes(buff, sizeof(buff)); - } - else - len_ptr[0] = static_cast(len); //one byte form per X.690 8.1.3.4 - } - - static void inline run(IE& ie, DecoderCtx& ctx, tag_value_t tag) //todo: support arbitrary order of IEs in SET - { - if(tag_t::value() != tag) - ctx.refErrorCtx().tagError(static_cast(tag)); - else - { - VisitorDecoderSeq vd(ctx, ie); - auto & buffer = ctx.refBuffer(); - - size_t length = Length::decode(ctx); - - ASN_DECODER_TRACE("IE buffer: %s", static_cast(IE::ie_type), IE::name(), static_cast(tag), length, ctx.refBuffer().toString()); - - if(length == indefinite_length) - { - ie.decode(vd); - if(ctx) - { - if(invalid_tag != vd.get_unhandled_tag()) - { - tag_value_t _tag = vd.get_unhandled_tag(); - if(IE::constraint_t::extended) //skip the unknown extension now - { - tag_value_t const* tag_ptr = &_tag; - size_t _length; - do - { - _tag = OpenType::decode(ctx, _length, tag_ptr); - tag_ptr = nullptr; - - } while(ctx && !(_tag == 0 && _length == 0)); - } - else // it should be the end-of-contents octets (8.1.5) - { - uint8_t const* data_in = ctx.refBuffer().getBytes(1); - if(data_in && (_tag || data_in[0])) - { - ctx.refErrorCtx().errorWrongEndOfContent(); - } - } - } - else - { - uint8_t const* data_in = ctx.refBuffer().getBytes(2); - if(data_in && (data_in[0] || data_in[1])) - { - ctx.refErrorCtx().errorWrongEndOfContent(); - } - } - } - } - else - { - if (buffer.getBytesLeft() < length) - { - ctx.refErrorCtx().lengthErrorBytes(buffer.getBytesLeft(), length); - } - else - { - DecoderCtx::buf_type::pointer end = buffer.end(); - buffer.set_end(buffer.begin() + length); - ie.decode(vd); - tag_value_t _tag = vd.get_unhandled_tag(); - if(invalid_tag != _tag) - { - if(IE::constraint_t::extended) //skip the unknown extension now - { - tag_value_t const* tag_ptr = &_tag; - size_t _length; - do - { - _tag = OpenType::decode(ctx, _length, tag_ptr); - tag_ptr = nullptr; - - } while(ctx && buffer.getBytesLeft() > 0); - } - else - ctx.refErrorCtx().tagError(static_cast(tag)); // unexpected tag - } - buffer.set_end(end); - } - } - - } - } -}; -/*************************************************************************************** -* SEQUENCE OF: Encoding the sequence-of type (X.690 8.10) -* SET OF: Encoding the set-of type (X.690 8.12) -***************************************************************************************/ -template -struct ElementType > -{ - using tag_t = Tag; - - static bool inline is_matched(tag_value_t tag) {return tag == tag_t::value();} - - static void inline run(IE const& ie, EncoderCtx& ctx) - { - auto & buffer = ctx.refBuffer(); - - tag_t::encode(ctx); - u8* len_ptr = buffer.advance(1); //reserve for the length - - for (auto& elem : ie) - { - Element::run(elem, ctx); - } - - size_t len = buffer.begin() - len_ptr - 1; - if(len > 127) - { - len_ptr[0] = 0x80; //undefinite length form per X.690 8.1.3.6 - uint8_t buff[2] = {0}; // end-of-contents octets (X.690 8.1.5) - buffer.putBytes(buff, sizeof(buff)); - } - else - len_ptr[0] = static_cast(len); //one byte form per X.690 8.1.3.4 - } - static void inline run(IE& ie, DecoderCtx& ctx, tag_value_t tag) - { - ie.clear(); - - if(tag_t::value() != tag) - ctx.refErrorCtx().tagError(static_cast(tag)); - else - { - auto & buffer = ctx.refBuffer(); - - size_t length = Length::decode(ctx); - - ASN_DECODER_TRACE("IE buffer: %s", static_cast(IE::ie_type), IE::name(), static_cast(tag), length, ctx.refBuffer().toString()); - - if(length == indefinite_length) - { - tag_value_t elm_tag = get_tag(ctx); - - while(ctx && Element::is_matched(elm_tag)) - { - add_element(ie, ctx, &elm_tag); - elm_tag = get_tag(ctx); - } - - if(ctx) - { - uint8_t const* data_in = ctx.refBuffer().getBytes(1); - if(data_in && (elm_tag || data_in[0])) - { - ctx.refErrorCtx().errorWrongEndOfContent(); - } - } - } - else - { - if (buffer.getBytesLeft() < length) - { - ctx.refErrorCtx().lengthErrorBytes(buffer.getBytesLeft(), length); - } - else - { - DecoderCtx::buf_type::pointer end = buffer.end(); - buffer.set_end(buffer.begin() + length); - - while(ctx && buffer.getBytesLeft() > 0) - add_element(ie, ctx); - - buffer.set_end(end); - } - } - } - } - -private: - static void inline add_element(IE& ie, DecoderCtx& ctx, tag_value_t const* elm_tag = nullptr) - { - uint8_t* data = ctx.refAllocator().alloc_bytes(sizeof(typename IE::value_type)); - if (data) - { - typename IE::value_type * v = new (data) typename IE::value_type; - v->clear(); - ie.push_back(*v); - Element::run(*v, ctx, elm_tag); - } - else - { - ctx.refErrorCtx().allocatorNoMem(0, sizeof(typename IE::value_type)); - } - } -}; - -/*************************************************************************************** -* CHOICE: Encoding the choice type -***************************************************************************************/ -struct ChoiceVisitorEncoder -{ - ChoiceVisitorEncoder(EncoderCtx& ctx) : m_ctx(ctx) {} - - template - bool operator()(IE const& ie) - { - Element::run(ie, m_ctx); - return static_cast(m_ctx); - } - - EncoderCtx& m_ctx; -}; - -struct ChoiceVisitorDecoder -{ - ChoiceVisitorDecoder(DecoderCtx& ctx, tag_value_t tag) : m_ctx(ctx), m_tag(tag) {} - - template bool operator()(IE& ie) - { - Element::run(ie, m_ctx, &m_tag); - return static_cast(m_ctx); - } - - DecoderCtx& m_ctx; - tag_value_t m_tag; -}; - -template -struct ElementType > -{ - struct Selector - { - Selector(tag_value_t tag) : m_tag(tag) {} - - template void operator()(size_t idx) - { - if(!m_valid && Element::is_matched(m_tag)) - { - m_index = idx; - m_valid = true; - } - } - - size_t get_idx() const {return m_index;} - bool is_valid() const {return m_valid;} - - private: - tag_value_t m_tag; - size_t m_index {0}; - bool m_valid {false}; - }; - - static bool inline is_matched(tag_value_t tag) - { - Selector selector {tag}; - IE::enumerate(selector); - return selector.is_valid(); - } - - static void inline run(IE const& ie, EncoderCtx& ctx) - { - ChoiceVisitorEncoder ve(ctx); - - if(ctx && !ie.encode(ve)) - ctx.refErrorCtx().tagError(ie.get_index()); - } - static void inline run(IE& ie, DecoderCtx& ctx, tag_value_t tag) - { - ie.clear(); - - Selector selector {tag}; - IE::enumerate(selector); - - if(!selector.is_valid()) - ctx.refErrorCtx().tagError(static_cast(tag)); - else - { - ChoiceVisitorDecoder vd {ctx, tag}; - if(ctx && !ie.decode(selector.get_idx(), vd)) - ctx.refErrorCtx().tagError(ie.get_index()); - } - } -}; - -template -struct ElementType > -{ - static bool inline is_matched(tag_value_t _tag) {return ExplicitCodec::is_matched(_tag);} - - static void inline run(IE const& ie, EncoderCtx& ctx) - { - ExplicitCodec::run(ie, ctx); - } - - static void inline run(IE& ie, DecoderCtx& ctx, tag_value_t tag) - { - ExplicitCodec::run(ie, ctx, tag); - } -}; - -/*************************************************************************************** -* IE_OBJECT_IDENTIFIER: Encoding the object identifier type -***************************************************************************************/ -template -struct ElementType > -{ - using tag_t = Tag; - - static bool inline is_matched(tag_value_t _tag) {return _tag == tag_t::value();} - - static void inline run(IE const& ie, EncoderCtx& ctx) - { - tag_t::encode(ctx); - size_t length = ie.get().size(); - Length::encode(length, ctx); - ctx.refBuffer().putBytes(ie.get().data(), length); - } - static void inline run(IE& ie, DecoderCtx& ctx, tag_value_t tag) - { - ie.clear(); - if(tag_t::value() == tag) - { - size_t length = Length::decode(ctx); - if(!length || length == indefinite_length) - { - ctx.refErrorCtx().sizeRangeError(length); - } - else - { - ASN_DECODER_TRACE("IE buffer: %s", static_cast(IE::ie_type), IE::name(), static_cast(tag), length, ctx.refBuffer().toString()); - uint8_t const* data_in = ctx.refBuffer().getBytes(length); - if(data_in) - { - ie.set(length, data_in); - } - } - } - else - { - ctx.refErrorCtx().tagError(static_cast(tag)); - } - } -}; - -/*************************************************************************************** -* T_OBJFIELD_FTV -***************************************************************************************/ -template -struct ElementType > -{ - using tag_t = Tag; - - static bool inline is_matched(tag_value_t _tag) {return _tag == tag_t::value();} -}; - -/*************************************************************************************** -* T_OBJFIELD_TF -***************************************************************************************/ -template -struct ElementType > -{ - struct Selector - { - Selector(tag_value_t tag) : m_tag(tag) {} - - template void operator()(size_t idx) - { - if(Element::is_matched(m_tag)) - { - m_index = idx; - m_valid = true; - } - } - - size_t get_idx() const {return m_index;} - bool is_valid() const {return m_valid;} - - private: - tag_value_t m_tag; - size_t m_index {0}; - bool m_valid {false}; - }; - - static bool inline is_matched(tag_value_t tag) - { - Selector selector(tag); - IE::enumerate(selector); - - return selector.is_valid(); - } -}; - -/*************************************************************************************** -* Identifier -***************************************************************************************/ -template -struct Identifier -{ - static bool inline is_matched(tag_value_t _tag) - { - return ElementType::is_matched(_tag); - } - - static void inline run(IE const& ie, EncoderCtx& ctx) - { - ElementType::run(ie, ctx); - } - - static void inline run(IE& ie, DecoderCtx& ctx, tag_value_t tag) - { - ElementType::run(ie, ctx, tag); - } -}; - -template -struct Identifier > -{ - static bool inline is_matched(tag_value_t _tag) {return ExplicitCodec::is_matched(_tag);} - - static void inline run(IE const& ie, EncoderCtx& ctx) - { - ExplicitCodec::run(ie, ctx); - } - - static void inline run(IE& ie, DecoderCtx& ctx, tag_value_t tag) - { - ExplicitCodec::run(ie, ctx, tag); - } -}; - -/*************************************************************************************** -* COMMON: Element -***************************************************************************************/ -template -struct Element -{ - static bool inline is_matched(tag_value_t _tag) - { - return Identifier::is_matched(_tag); - } - - static void inline run(IE const& ie, EncoderCtx& ctx) - { - if (ctx) - { - ASN_ENCODER_TRACE("IE buffer: %s", static_cast(IE::ie_type), IE::name(), ctx.refBuffer().toString()); - ctx.ie_name(IE::name()); - Identifier::run(ie, ctx); - } - } - static void inline run(IE& ie, DecoderCtx& ctx, tag_value_t const* tag_ptr = nullptr) - { - if (ctx) - { - ctx.ie_name(IE::name()); - - tag_value_t tag = tag_ptr ? *tag_ptr : get_tag(ctx); - if(ctx) - Identifier::run(ie, ctx, tag); - } - } -}; - -} //namespace ber -} //namespace asn diff --git a/e2sim/previous/e2apv1sim/src/ASN1/asn/ber/common.hpp b/e2sim/previous/e2apv1sim/src/ASN1/asn/ber/common.hpp deleted file mode 100755 index edd830b..0000000 --- a/e2sim/previous/e2apv1sim/src/ASN1/asn/ber/common.hpp +++ /dev/null @@ -1,51 +0,0 @@ -#pragma once -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries -#include - -// Local Includes: Application specific classes, functions, and libraries -#include "asn/asn.hpp" -#include "asn/buffer.hpp" -#include "asn/ber/context.hpp" -#include "asn/ber/tools.hpp" - -//#define ASN_DECODER_TRACE_ENABLE -//#define ASN_ENCODER_TRACE_ENABLE - -#ifdef ASN_DECODER_TRACE_ENABLE -#define ASN_DECODER_TRACE(FMT, ...) printf(FMT "\n", __VA_ARGS__) -#else -#define ASN_DECODER_TRACE(...) -#endif - -#ifdef ASN_ENCODER_TRACE_ENABLE -#define ASN_ENCODER_TRACE(FMT, ...) printf(FMT "\n", __VA_ARGS__) -#else -#define ASN_ENCODER_TRACE(...) -#endif - -namespace asn { -namespace ber { - -template struct Element; - -} //namespace ber -} //namespace asn diff --git a/e2sim/previous/e2apv1sim/src/ASN1/asn/ber/context.hpp b/e2sim/previous/e2apv1sim/src/ASN1/asn/ber/context.hpp deleted file mode 100755 index 4159f00..0000000 --- a/e2sim/previous/e2apv1sim/src/ASN1/asn/ber/context.hpp +++ /dev/null @@ -1,118 +0,0 @@ -#pragma once -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries -#include - -// Local Includes: Application specific classes, functions, and libraries -#include "asn/utility.hpp" -#include "asn/buffer.hpp" -#include "asn/error_context.hpp" - -namespace asn { -namespace ber { - -/******************************************************************************** -EncoderCtx -*********************************************************************************/ -class EncoderCtx : boost::noncopyable -{ -public: - typedef buffer buf_type; - - EncoderCtx(u8* data, size_t size) - : m_buffer{ m_errCtx } - { - Reset(data, size); - } - - template - explicit EncoderCtx(u8(&buff)[SIZE]) - : EncoderCtx(buff, SIZE) - { - } - - explicit EncoderCtx() - : EncoderCtx(nullptr, 0) - { - } - - buf_type& refBuffer() { return m_buffer; } - error_context& refErrorCtx() { return m_errCtx; } - explicit operator bool() const { return static_cast(m_errCtx); } - - void Reset(void* data = nullptr, size_t size = 0) - { - m_buffer.reset(static_cast(data), size); - m_errCtx.reset(); - } - - //Name of the being processed IE - void ie_name(const char* name) { m_errCtx.ie_name(name); } - char const* ie_name() const { return m_errCtx.ie_name(); } - -private: - template - friend struct Encode; - - error_context m_errCtx; - buf_type m_buffer; -}; - - -/******************************************************************************** -DecoderCtx -*********************************************************************************/ -class DecoderCtx : boost::noncopyable -{ -public: - typedef buffer buf_type; - typedef allocator alloc_type; - - DecoderCtx(const void* data = nullptr, size_t size = 0, void* alloc_buffer = nullptr, size_t alloc_buffer_size = 0) - : m_buffer{ m_errCtx } - { - reset(data, size, alloc_buffer, alloc_buffer_size); - } - - buf_type& refBuffer() { return m_buffer; } - alloc_type& refAllocator() { return m_allocator; } - error_context& refErrorCtx() { return m_errCtx; } - explicit operator bool() const { return static_cast(m_errCtx); } - - void reset(const void* data = nullptr, size_t size = 0, void* alloc_buffer = nullptr, size_t alloc_buffer_size = 0) - { - m_allocator.reset(alloc_buffer, alloc_buffer_size); - m_buffer.reset(static_cast(data), size); - m_errCtx.reset(); - } - - //Name of the being processed IE - void ie_name(const char* name) { m_errCtx.ie_name(name); } - char const* ie_name() const { return m_errCtx.ie_name(); } - -private: - error_context m_errCtx; - buf_type m_buffer; - alloc_type m_allocator; -}; - -} //namespace ber -} //namespace asn diff --git a/e2sim/previous/e2apv1sim/src/ASN1/asn/ber/length.hpp b/e2sim/previous/e2apv1sim/src/ASN1/asn/ber/length.hpp deleted file mode 100755 index 51b387c..0000000 --- a/e2sim/previous/e2apv1sim/src/ASN1/asn/ber/length.hpp +++ /dev/null @@ -1,103 +0,0 @@ -#pragma once -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries - -// Local Includes: Application specific classes, functions, and libraries - -namespace asn { -namespace ber { - -constexpr size_t indefinite_length = std::numeric_limits::max(); - -/*************************************************************************************** -* Length -***************************************************************************************/ -struct Length -{ - static size_t inline get(int64_t value) - { - size_t length = 1; - - if(value != 0) - { - size_t extra_sign_bits = __builtin_clrsbll(value); - length = sizeof(value) - (extra_sign_bits >> 3) ; - } - - return length; - } - - static void inline encode(size_t length, EncoderCtx& ctx) - { - auto & buffer = ctx.refBuffer(); - - if(length <= 0x7F) - { - buffer.putByte(static_cast(length)); - } - else - { - size_t lenlen = get(length); - if(lenlen > 0x7F) - { - ctx.refErrorCtx().sizeRangeError(length, 0, 0x7F); - } - else - { - uint8_t bt = static_cast(lenlen); - bt |= 0x80; - buffer.putByte(bt); - Tools::put_bytes(length, lenlen, ctx); - } - } - - } - - static size_t inline decode(DecoderCtx& ctx) - { - auto & buffer = ctx.refBuffer(); - size_t length = 0; - - uint8_t const* data = buffer.getBytes(1); - - if(data) - { - if(!(data[0] & 0x80)) - { - length = data[0]; - } - else - { - size_t lenlen = data[0] & 0x7F; - - if(lenlen) - Tools::get_bytes(length, lenlen, ctx); - else - length = indefinite_length; - } - } - - return length; - } -}; - -} //namespace ber -} //namespace asn diff --git a/e2sim/previous/e2apv1sim/src/ASN1/asn/ber/opentype.hpp b/e2sim/previous/e2apv1sim/src/ASN1/asn/ber/opentype.hpp deleted file mode 100755 index 0ff9366..0000000 --- a/e2sim/previous/e2apv1sim/src/ASN1/asn/ber/opentype.hpp +++ /dev/null @@ -1,73 +0,0 @@ -#pragma once -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries - -// Local Includes: Application specific classes, functions, and libraries - -namespace asn { -namespace ber { - -/*************************************************************************************** -* OpenType -***************************************************************************************/ -struct OpenType -{ - static tag_value_t decode(DecoderCtx& ctx, size_t& length, tag_value_t const* tag_ptr = nullptr) - { - auto & buffer = ctx.refBuffer(); - tag_value_t tag = tag_ptr ? *tag_ptr : get_tag(ctx); - length = Length::decode(ctx); - - if(!length) - { - //just return - } - else if(length == indefinite_length) - { - tag_value_t _tag; - size_t _length; - do - { - _tag = OpenType::decode(ctx, _length); - - } while(ctx && !(_tag == 0 && _length == 0)); - } - else - { - if (buffer.getBytesLeft() < length) - { - ctx.refErrorCtx().lengthErrorBytes(buffer.getBytesLeft(), length); - } - else - { - size_t _length; - DecoderCtx::buf_type::pointer end = buffer.end(); - buffer.set_end(buffer.begin() + length); - decode(ctx, _length); - buffer.set_end(end); - } - } - return tag; - } -}; - -} //namespace ber -} //namespace asn \ No newline at end of file diff --git a/e2sim/previous/e2apv1sim/src/ASN1/asn/ber/tag.hpp b/e2sim/previous/e2apv1sim/src/ASN1/asn/ber/tag.hpp deleted file mode 100755 index dba9733..0000000 --- a/e2sim/previous/e2apv1sim/src/ASN1/asn/ber/tag.hpp +++ /dev/null @@ -1,163 +0,0 @@ -#pragma once -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries - -// Local Includes: Application specific classes, functions, and libraries - -#define IE_CLASS_SHIFT 6 -#define IE_PC_SHIFT 5 -#define IE_BIG_TAG_FST_OCTET 0b011111 - -namespace asn { -namespace ber { - -constexpr tag_value_t invalid_tag = std::numeric_limits::max(); - -/*************************************************************************************** -* Tag -***************************************************************************************/ -template -struct Tag; - -template -struct Tag > -{ - static constexpr tag_value_t value() - { - tag_value_t v = static_cast(IE::asn_identifier_t::class_type); - v <<= IE_CLASS_SHIFT; - v = constructed ? (v | (1u << IE_PC_SHIFT)) : v; - v |= static_cast(IE::asn_identifier_t::tag_value); - return v; - } - - static void inline encode(EncoderCtx& ctx) - { - ctx.refBuffer().putByte(static_cast(value())); - } -}; - - -template -struct Tag= 31) > > -{ - static constexpr tag_value_t value() - { - static_assert(IE::asn_identifier_t::tag_value > 0, "null tag value"); - - tag_value_t v = static_cast(IE::asn_identifier_t::class_type); - v <<= IE_CLASS_SHIFT; - v = constructed ? (v | (1u << IE_PC_SHIFT)) : v; - v |= IE_BIG_TAG_FST_OCTET; - - size_t leadbits = __builtin_clzll(IE::asn_identifier_t::tag_value); - tag_value_t tv = IE::asn_identifier_t::tag_value << leadbits; - size_t length = sizeof(tag_value_t)*CHAR_BIT - leadbits; - - size_t shift = sizeof(tag_value_t)*CHAR_BIT - 7; - - size_t lb = length % 7; - if(lb) - { - v <<= 8; - v |= 0x80; - v |= static_cast(tv >> (shift + 7 - lb)); - tv <<= lb; - length -= lb; - } - - while(length) - { - v <<= 8; - v |= 0x80; - v |= static_cast(tv >> shift); - tv <<= 7; - length -= 7; - } - v &= ((tag_value_t)-1) & ~((tag_value_t) 0x80); - - return v; - } - - static void inline encode(EncoderCtx& ctx) - { - size_t size = 0; - tag_value_t tv = data(size); - ctx.refBuffer().putBytes(reinterpret_cast(&tv), size); - } - -private: - - static constexpr tag_value_t data(size_t& size) - { - tag_value_t rv = 0; - tag_value_t tv = value(); - size = sizeof(tag_value_t) - (__builtin_clzll(tv) >> 3); - - uint8_t* ptr = reinterpret_cast(&rv); - - size_t shift = (size - 1) * 8; - for(size_t i = 0; i < size; ++i) - { - ptr[i] = static_cast(tv >> shift); - shift -= 8; - } - - return rv; - } -}; - -inline -tag_value_t get_tag(DecoderCtx& ctx) -{ - tag_value_t rv = 0; - auto & buffer = ctx.refBuffer(); - uint8_t const* data = buffer.getBytes(1); - - if (data) - { - rv = data[0]; - if((data[0] & 0x1F) == IE_BIG_TAG_FST_OCTET) - { - size_t limit = sizeof(tag_value_t) - 1; - while((data = buffer.getBytes(1))) - { - if(!limit) - { - ctx.refErrorCtx().sizeRangeError(0); - break; - } - - rv <<= 8; - rv |= data[0]; - --limit; - - if(!(data[0] & 0x80)) - break; - } - } - } - return rv; -} - -} //namespace ber -} //namespace asn - diff --git a/e2sim/previous/e2apv1sim/src/ASN1/asn/ber/tools.hpp b/e2sim/previous/e2apv1sim/src/ASN1/asn/ber/tools.hpp deleted file mode 100755 index 9f9bc9b..0000000 --- a/e2sim/previous/e2apv1sim/src/ASN1/asn/ber/tools.hpp +++ /dev/null @@ -1,68 +0,0 @@ -#pragma once -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries - -// Local Includes: Application specific classes, functions, and libraries - -namespace asn { -namespace ber { - -struct Tools -{ - typedef bit_accessor_cross_byte bit_accessor; - - - template - static void put_bytes(T value, size_t length, EncoderCtx& ctx) - { - auto & buffer = ctx.refBuffer(); - - size_t shift = (length - 1) << 3; - for(size_t i = 0; i < length; ++i) - { - buffer.putByte(static_cast(value >> shift)); - shift -= 8; - } - } - - template - static void get_bytes(T& value, size_t length, DecoderCtx& ctx) - { - auto & buffer = ctx.refBuffer(); - - value = 0; - uint8_t const* data = buffer.getBytes(length); - - if(data) - { - value = data[0]; - for(size_t i = 1; i < length; ++i) - { - value <<= 8; - value |= data[i]; - } - } - } - -}; - -} //namespace ber -} //namespace asn diff --git a/e2sim/previous/e2apv1sim/src/ASN1/asn/ber/visitor.hpp b/e2sim/previous/e2apv1sim/src/ASN1/asn/ber/visitor.hpp deleted file mode 100755 index 98c1f05..0000000 --- a/e2sim/previous/e2apv1sim/src/ASN1/asn/ber/visitor.hpp +++ /dev/null @@ -1,177 +0,0 @@ -#pragma once -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries - -// Local Includes: Application specific classes, functions, and libraries - -namespace asn { -namespace ber { - -/*************************************************************************************** -* VisitorEncoder -***************************************************************************************/ -struct VisitorEncoder -{ - VisitorEncoder(EncoderCtx& ctx) : m_ctx(ctx){} - - template bool operator() (ELM const& elm) - { - if(m_ctx) - Element::run(elm, m_ctx); - return static_cast(m_ctx); - } -private: - EncoderCtx& m_ctx; -}; - -/*************************************************************************************** -* VisitorDecoder -***************************************************************************************/ -struct VisitorDecoder -{ - VisitorDecoder(DecoderCtx& ctx, tag_value_t tag) : m_ctx(ctx), m_tag(tag){} - - template bool operator() (ELM& elm) - { - if(m_ctx) - Element::run(elm, m_ctx, &m_tag); - return static_cast(m_ctx); - } - -private: - DecoderCtx& m_ctx; - tag_value_t m_tag; -}; - -/*************************************************************************************** -* VisitorAdapter -***************************************************************************************/ -template -struct VisitorAdapter //default -{ - static void inline run(IE const& ie, EncoderCtx& ctx, Container const& cont) - { - Element::run(ie, ctx); - } - static void inline run(IE& ie, DecoderCtx& ctx, Container const& cont, tag_value_t tag) - { - Element::run(ie, ctx, &tag); - } -}; - -template -struct VisitorAdapter > -{ - static void inline run(IE const& ie, EncoderCtx& ctx, Container const& cont) - { - VisitorEncoder v(ctx); - bool rv = ie.encode(v, cont); - if(!rv && static_cast(ctx)) - { - ctx.refErrorCtx().errorNoObject(Container::name()); - } - } - static void inline run(IE& ie, DecoderCtx& ctx, Container const& cont, tag_value_t tag) - { - VisitorDecoder v(ctx, tag); - bool rv = ie.decode(v, cont); - if(!rv && static_cast(ctx)) - { - ctx.refErrorCtx().errorNoObject(Container::name()); - } - } -}; - -/*************************************************************************************** -* VisitorEncoderSeq -***************************************************************************************/ -template -struct VisitorEncoderSeq -{ - VisitorEncoderSeq(EncoderCtx& ctx, CONT const& cont) : m_ctx(ctx), m_cont(cont){} - - template void operator() (ELM const& elm) - { - if(ELM::optional) - { - if(elm.is_valid()) - VisitorAdapter::run(elm, m_ctx, m_cont); - } - else - VisitorAdapter::run(elm, m_ctx, m_cont); - } - - EncoderCtx& m_ctx; - CONT const& m_cont; -}; - - -/*************************************************************************************** -* VisitorDecoderSeq -***************************************************************************************/ -template -struct VisitorDecoderSeq -{ - VisitorDecoderSeq(DecoderCtx& ctx, CONT const& cont) : m_ctx(ctx), m_cont(cont){} - - template void operator() (ELM& elm) - { - if(m_ctx) - { - tag_value_t tag; - - if(invalid_tag == m_tag && m_ctx.refBuffer().getBytesLeft()) - { - m_tag = get_tag(m_ctx); - } - tag = m_tag; - - if(m_ctx) - { - if (!Element::is_matched(tag)) - { - if(!ELM::optional) - { - m_ctx.refErrorCtx().tagError(static_cast(tag)); - } - } - else - { - m_tag = invalid_tag; - VisitorAdapter::run(elm, m_ctx, m_cont, tag); - elm.setpresent(true); - } - } - } - } - - tag_value_t get_unhandled_tag() const {return m_tag;} - - DecoderCtx& m_ctx; - tag_value_t m_tag {invalid_tag}; - CONT const& m_cont; -}; - -} //namespace ber -} //namespace asn diff --git a/e2sim/previous/e2apv1sim/src/ASN1/asn/buffer.hpp b/e2sim/previous/e2apv1sim/src/ASN1/asn/buffer.hpp deleted file mode 100755 index 4022b48..0000000 --- a/e2sim/previous/e2apv1sim/src/ASN1/asn/buffer.hpp +++ /dev/null @@ -1,689 +0,0 @@ -#pragma once -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -*******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries -#include - -// Local Includes: Application specific classes, functions, and libraries -#include "asn/error_context.hpp" -#include "value_traits.hpp" - -//#define CODEC_BIT_TRACE_ENABLE -#ifdef CODEC_BIT_TRACE_ENABLE - #define CODEC_BIT_TRACE(FMT, args...) printf("%s[%u]:" FMT "\n", std::strrchr(__FILE__, '/') + 1, __LINE__, ##args) -#else - #define CODEC_BIT_TRACE(...) -#endif - -namespace asn { - -template -struct bit_accessor; - -template -struct bit_accessor_cross_byte; - -template -class buffer -{ -public: - typedef PTR pointer; - - explicit buffer(error_context& err) - : m_errCtx(err) - {} - - void reset(pointer data, u32 size) - { - m_start = data; - m_end = m_start + size; - m_current = m_start; - m_shift = 0; - } - - u32 getOffset() const { return begin() - m_start; } - - u32 getBytesLeft() const { return end() - begin(); } - u32 getBytesUsed() const { return getOffset() + (get_shift() ? 1 : 0); } - - u8 get_shift() const { return m_shift; } - void reset_shift() { m_shift = 0; } - void byte_align() { if (get_shift()) { m_shift = 0; ++m_current; } } - - pointer advance(u32 delta) { pointer p = begin(); m_current += delta; return p; } - - pointer begin() const { return m_current; } - - void set_begin(pointer ptr, u8 bit_shift) - { - if (m_start <= ptr && ptr <= end()) - { - m_current = ptr; - m_shift = bit_shift; - } - } - - pointer end() const { return m_end; } - void set_end(pointer v) { m_end = v; } - - bool checkAlignment(char const* name, u8 const mask = 0xFF) - { - if (0 == (get_shift() & mask)) return true; - m_errCtx.alignmentError(name, get_shift()); - return false; - } - - bool checkBytesLeft(char const* name, u32 const num_bytes) - { - if (getBytesLeft() >= num_bytes) return true; - m_errCtx.lengthErrorBytes(name, getBytesLeft(), num_bytes); - return false; - } - - bool checkBitsLeft(char const* name, u32 const num_bits) - { - if (getBitsLeft() >= num_bits) return true; - m_errCtx.lengthErrorBits(name, getBitsLeft(), num_bits); - return false; - } - - bool checkBytesAndAlignment(char const* name, u32 const num_bytes, u8 const mask = 0xFF) - { - if (getBytesLeft() >= num_bytes) - { - if (0 == (get_shift() & mask)) return true; - m_errCtx.alignmentError(name, get_shift()); - } - else - { - m_errCtx.lengthErrorBytes(name, getBytesLeft(), num_bytes); - } - return false; - } - - pointer getBytes(char const* name, u32 num_bytes) - { - if (checkBytesAndAlignment(name, num_bytes)) - { - return advance(num_bytes); - } - return nullptr; - } - - //NOTE! num_bytes should be set to minimal number of bytes expected - pointer getBytes(char const* name, u32 max_requested, u32& num_bytes) - { - if (checkAlignment(name)) - { - u32 const left = getBytesLeft(); - if (left >= num_bytes) - { - num_bytes = (left > max_requested) ? max_requested : left; - return advance(num_bytes); - } - - m_errCtx.lengthErrorBytes(name, getBytesLeft(), num_bytes); - } - return nullptr; - } - - bool putByte(char const* name, u8 byte) - { - if (checkBytesAndAlignment(name, 1)) - { - begin()[0] = byte; - ++m_current; - return true; - } - return false; - } - - bool putBytes(char const* name, void const* in, u32 num_bytes) - { - if (checkBytesAndAlignment(name, num_bytes)) - { - std::memcpy(begin(), in, num_bytes); - m_current += num_bytes; - return true; - } - return false; - } - - bool checkAlignment(u8 const mask = 0xFF) - { - if (0 == (get_shift() & mask)) return true; - m_errCtx.alignmentError(get_shift()); - return false; - } - - bool checkBytesLeft(u32 const num_bytes) - { - if (getBytesLeft() >= num_bytes) return true; - m_errCtx.lengthErrorBytes(getBytesLeft(), num_bytes); - return false; - } - - bool checkBitsLeft(u32 const num_bits) - { - if (getBitsLeft() >= num_bits) return true; - m_errCtx.lengthErrorBits(getBitsLeft(), num_bits); - return false; - } - - bool checkBytesAndAlignment(u32 const num_bytes, u8 const mask = 0xFF) - { - if (getBytesLeft() >= num_bytes) - { - if (0 == (get_shift() & mask)) return true; - m_errCtx.alignmentError(get_shift()); - } - else - { - m_errCtx.lengthErrorBytes(getBytesLeft(), num_bytes); - } - return false; - } - - pointer getBytes(u32 num_bytes) - { - if (checkBytesAndAlignment(num_bytes)) - { - return advance(num_bytes); - } - return nullptr; - } - - //NOTE! num_bytes should be set to minimal number of bytes expected - pointer getBytes(u32 max_requested, u32& num_bytes) - { - if (checkAlignment()) - { - u32 const left = getBytesLeft(); - if (left >= num_bytes) - { - num_bytes = (left > max_requested) ? max_requested : left; - return advance(num_bytes); - } - - m_errCtx.lengthErrorBytes(getBytesLeft(), num_bytes); - } - return nullptr; - } - - bool putByte(u8 byte) - { - if (checkBytesAndAlignment(1)) - { - begin()[0] = byte; - ++m_current; - return true; - } - return false; - } - - bool putBytes(void const* in, u32 num_bytes) - { - if (num_bytes) - { - if(checkBytesAndAlignment(num_bytes)) - { - std::memcpy(begin(), in, num_bytes); - m_current += num_bytes; - } - else - return false; - } - return true; - } - - char const* toString() const - { - static char sz[64]; - u8 const* p = begin(); - snprintf(sz, sizeof(sz), "%02X %02X %02X %02X [%02X]=%p@%u..%p -%u bits: +%u bytes", p[-4], p[-3], p[-2], p[-1], p[0], p - , getOffset(), end(), get_shift(), getBytesLeft()); - return sz; - } - -private: - template - friend class bit_accessor; - - template - friend struct bit_accessor_cross_byte; - - template - void push_u8(U value) { *m_current++ = static_cast(value); } - template - void put_u8(U value) { m_current[0] = static_cast(value); } - -//khxm68: TODO: won't compile without it. WTF?! -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wmaybe-uninitialized" - u8 get_u8() const { return m_current[0]; } -#pragma GCC diagnostic pop - u8 extract_u8(u8 value, u8 mask, u8 shift) const - { return (get_u8() & ~(mask << shift)) | ((value & mask) << shift); } - - u16 get_u16() const { return (static_cast(m_current[0]) << 8) | m_current[1]; } - u16 extract_u16(u16 value, u16 mask, u16 shift) const - { return (get_u16() & ~(mask << shift)) | ((value & mask) << shift); } - - u32 get_u24() const { return (static_cast(m_current[0]) << 16) | (static_cast(m_current[1]) << 8) | m_current[2]; } - u32 extract_u24(u32 value, u32 mask, u32 shift) const - { return (get_u24() & ~(mask << shift)) | ((value & mask) << shift); } - - u32 get_u32() const { return (static_cast(m_current[0]) << 24) | (static_cast(m_current[1]) << 16) | (static_cast(m_current[2]) << 8) | m_current[3]; } - u32 extract_u32(u32 value, u32 mask, u32 shift) const - { return (get_u32() & ~(mask << shift)) | ((value & mask) << shift); } - - u32 getBitsLeft() const { return begin() == end() ? 0 : (getBytesLeft()*8 - get_shift()); } - - void bit_advance(u8 num_bits) - { - m_shift += num_bits; - if (get_shift() > 7) - { - reset_shift(); - m_current++; - } - } - - pointer m_current; - pointer m_end; - pointer m_start; - u8 m_shift; - error_context& m_errCtx; -}; - -template //LSB 1..7 bits -struct bit_accessor -{ - static_assert(IE::length::value > 0 && IE::length::value < 8, "something wrong with traits!"); - - static void put(u8 value, buffer& buf) - { - u8 const mask = static_cast((1u << IE::length::value) - 1); - u8 const shift = buf.get_shift(); - u8 const data = buf.extract_u8(value, mask, shift); - buf.put_u8(data); - - CODEC_BIT_TRACE("put shift=%u(%u) data[%u]=%02X(%02X) mask=%04X: %s", shift, buf.get_shift() - , IE::length::value, data, value, mask, buf.toString()); - - buf.bit_advance(IE::length::value); - } - - static u8 get(buffer& buf) - { - u8 const mask = static_cast((1u << IE::length::value) - 1); - u8 const shift = buf.get_shift(); - u8 const data = (buf.get_u8() >> shift) & mask; - - CODEC_BIT_TRACE("get shift=%u(%u) data[%u]=%02X mask=%02X: %s", shift, buf.get_shift() - , IE::length::value, data, mask, buf.toString()); - - buf.bit_advance(IE::length::value); - return data; - } -}; - -template //LSB 9..15 bits -struct bit_accessor -{ - static_assert(IE::length::value > 8 && IE::length::value < 16, "something wrong with traits!"); - - static void put(u16 value, buffer& buf) - { - u16 const mask = static_cast((1u << IE::length::value) - 1); - u16 const shift = buf.get_shift(); - u16 const data = buf.extract_u16(value, mask, shift); - buf.push_u8(data >> 8); - buf.put_u8(data); - - CODEC_BIT_TRACE("put shift=%u(%u) data[%u]=%04X(%04X) mask=%04X: %s", shift, buf.get_shift() - , IE::length::value, data, value, mask, buf.toString()); - - buf.bit_advance(IE::length::value - 8); - } - - static u16 get(buffer& buf) - { - u16 const mask = static_cast((1u << IE::length::value) - 1); - u16 const shift = buf.get_shift(); - u16 const data = (buf.get_u16() >> shift) & mask; - buf.m_current += 1; - - CODEC_BIT_TRACE("get shift=%u(%u) data[%u]=%04X mask=%04X: %s", shift, buf.get_shift() - , IE::length::value, data, mask, buf.toString()); - - buf.bit_advance(IE::length::value - 8); - return data; - } -}; - -template //LSB 17..24 bits -struct bit_accessor -{ - static_assert(IE::length::value > 16 && IE::length::value <= 24, "something wrong with traits!"); - - static void put(u32 value, buffer& buf) - { - u32 const mask = static_cast((1u << IE::length::value) - 1); - u32 const shift = buf.get_shift(); - u32 const data = buf.extract_u24(value, mask, shift); - - buf.push_u8(data >> 16); - buf.push_u8(data >> 8); - buf.put_u8(data); - - CODEC_BIT_TRACE("put shift=%u(%u) data[%u]=%06X(%06X) mask=%06X: %s", shift, buf.get_shift() - , IE::length::value, data, value, mask, buf.toString()); - - buf.bit_advance(IE::length::value - 16); - } - - static u32 get(buffer& buf) - { - u32 const mask = static_cast((1u << IE::length::value) - 1); - u32 const shift = buf.get_shift(); - u32 const data = (buf.get_u24() >> shift) & mask; - buf.m_current += 2; - - CODEC_BIT_TRACE("get shift=%u(%u) data[%u]=%06X mask=%06X: %s", shift, buf.get_shift() - , IE::length::value, data, mask, buf.toString()); - - buf.bit_advance(IE::length::value - 16); - return data; - } -}; - -template //LSB 25..31 bits -struct bit_accessor -{ - static_assert(IE::length::value > 24 && IE::length::value < 32, "something wrong with traits!"); - - static void put(u32 value, buffer& buf) - { - u32 const mask = static_cast((1u << IE::length::value) - 1); - u32 const shift = buf.get_shift(); - u32 const data = buf.extract_u32(value, mask, shift); - - buf.push_u8(data >> 24); - buf.push_u8(data >> 16); - buf.push_u8(data >> 8); - buf.put_u8(data); - - CODEC_BIT_TRACE("put shift=%u(%u) data[%u]=%08X(%08X) mask=%08X: %s", shift, buf.get_shift() - , IE::length::value, data, value, mask, buf.toString()); - - buf.bit_advance(IE::length::value - 24); - } - - static u32 get(buffer& buf) - { - u32 const mask = static_cast((1u << IE::length::value) - 1); - u32 const shift = buf.get_shift(); - u32 const data = (buf.get_u32() >> shift) & mask; - buf.m_current += 3; - - CODEC_BIT_TRACE("get shift=%u(%u) data[%u]=%08X mask=%08X: %s", shift, buf.get_shift() - , IE::length::value, data, mask, buf.toString()); - - buf.bit_advance(IE::length::value - 24); - return data; - } -}; - - -template //MSB 1..7 bits -struct bit_accessor -{ - static_assert(IE::length::value > 0 && IE::length::value < 8, "something wrong with traits!"); - - static void put(u8 value, buffer& buf) - { - u8 const mask = static_cast((1u << IE::length::value) - 1); - u8 const shift = 8 - buf.get_shift() - IE::length::value; - u8 const data = buf.extract_u8(value, mask, shift); - buf.put_u8(data); - - CODEC_BIT_TRACE("put shift=%u(%u) data[%u]=%02X(%02X) mask=%04X: %s", shift, buf.get_shift() - , IE::length::value, data, value, mask, buf.toString()); - - buf.bit_advance(IE::length::value); - } - - static u8 get(buffer& buf) - { - u8 const mask = static_cast((1u << IE::length::value) - 1); - u8 const shift = 8 - buf.get_shift() - IE::length::value; - u8 const data = (buf.get_u8() >> shift) & mask; - - CODEC_BIT_TRACE("get shift=%u(%u) data[%u]=%02X mask=%02X: %s", shift, buf.get_shift() - , IE::length::value, data, mask, buf.toString()); - - buf.bit_advance(IE::length::value); - return data; - } -}; - -template //MSB 9..15 bits -struct bit_accessor -{ - static_assert(IE::length::value > 8 && IE::length::value < 16, "something wrong with traits!"); - - static void put(u16 value, buffer& buf) - { - u16 const mask = static_cast((1u << IE::length::value) - 1); - u16 const shift = 16 - buf.get_shift() - IE::length::value; - u16 const data = buf.extract_u16(value, mask, shift); - - buf.push_u8(data >> 8); - buf.put_u8(data); - - CODEC_BIT_TRACE("put shift=%u(%u) data[%u]=%04X(%04X) mask=%04X: %s", shift, buf.get_shift() - , IE::length::value, data, value, mask, buf.toString()); - - buf.bit_advance(IE::length::value - 8); - } - - static u16 get(buffer& buf) - { - u16 const mask = static_cast((1u << IE::length::value) - 1); - u16 const shift = 16 - buf.get_shift() - IE::length::value; - u16 const data = (buf.get_u16() >> shift) & mask; - buf.m_current += 1; - - CODEC_BIT_TRACE("get shift=%u(%u) data[%u]=%04X mask=%04X: %s", shift, buf.get_shift() - , IE::length::value, data, mask, buf.toString()); - - buf.bit_advance(IE::length::value - 8); - return data; - } -}; - - -template //MSB 17..24 bits -struct bit_accessor -{ - static_assert(IE::length::value > 16 && IE::length::value <= 24, "something wrong with traits!"); - - static void put(u32 value, buffer& buf) - { - u32 const mask = static_cast((1u << IE::length::value) - 1); - u32 const shift = 24 - buf.get_shift() - IE::length::value; - u32 const data = buf.extract_u24(value, mask, shift); - - buf.push_u8(data >> 16); - buf.push_u8(data >> 8); - buf.put_u8(data); - - CODEC_BIT_TRACE("put shift=%u(%u) data[%u]=%06X(%06X) mask=%06X: %s", shift, buf.get_shift() - , IE::length::value, data, value, mask, buf.toString()); - - buf.bit_advance(IE::length::value - 16); - } - - static u32 get(buffer& buf) - { - u32 const mask = static_cast((1u << IE::length::value) - 1); - u32 const shift = 24 - buf.get_shift() - IE::length::value; - u32 const data = (buf.get_u24() >> shift) & mask; - buf.m_current += 2; - - CODEC_BIT_TRACE("get shift=%u(%u) data[%u]=%06X mask=%06X: %s", shift, buf.get_shift() - , IE::length::value, data, mask, buf.toString()); - - buf.bit_advance(IE::length::value - 16); - return data; - } -}; - -template //MSB 25..31 bits -struct bit_accessor -{ - static_assert(IE::length::value > 24 && IE::length::value < 32, "something wrong with traits!"); - - static void put(u32 value, buffer& buf) - { - u32 const mask = static_cast((1u << IE::length::value) - 1); - u32 const shift = 32 - buf.get_shift() - IE::length::value; - u32 const data = buf.extract_u32(value, mask, shift); - - buf.push_u8(data >> 24); - buf.push_u8(data >> 16); - buf.push_u8(data >> 8); - buf.put_u8(data); - - CODEC_BIT_TRACE("put shift=%u(%u) data[%u]=%08X(%08X) mask=%08X: %s", shift, buf.get_shift() - , IE::length::value, data, value, mask, buf.toString()); - - buf.bit_advance(IE::length::value - 24); - } - - static u32 get(buffer& buf) - { - u32 const mask = static_cast((1u << IE::length::value) - 1); - u32 const shift = 32 - buf.get_shift() - IE::length::value; - u32 const data = (buf.get_u32() >> shift) & mask; - buf.m_current += 3; - - CODEC_BIT_TRACE("get shift=%u(%u) data[%u]=%08X mask=%08X: %s", shift, buf.get_shift() - , IE::length::value, data, mask, buf.toString()); - - buf.bit_advance(IE::length::value - 24); - return data; - } -}; - -/******************************************************************************** -bit_accessor_cross_byte -*********************************************************************************/ -template<> -struct bit_accessor_cross_byte //MSB -{ - static bool put(u8 value, u8 length, buffer& buf) - { - u8 spare = 8 - buf.get_shift(); - - if (spare < length) - { - length -= spare; - u8 chunk = value >> length; - u8 const mask = static_cast((1u << spare) - 1); - u8 data = buf.extract_u8(chunk, mask, 0); - buf.put_u8(data); - - buf.bit_advance(spare); - } - if (buf.checkBytesLeft(1)) - { - u8 const mask = static_cast((1u << length) - 1); - u8 const shift = 8 - buf.get_shift() - length; - u8 data = buf.extract_u8(value, mask, shift); - buf.put_u8(data); - - buf.bit_advance(length); - - return true; - } - return false; - } - - static u8 get(u8 length, buffer& buf) - { - u8 rval {0}; - u8 const mask = static_cast((1u << length) - 1); - u8 const spare = 8 - buf.get_shift(); - if (spare < length) - { - length -= spare; - rval = buf.get_u8() << length; - buf.bit_advance(spare); - } - if (length && buf.checkBytesLeft(1)) - { - u8 val = buf.get_u8(); - val = val >> (8 - length - buf.get_shift()); - rval |= val; - rval &= mask; - buf.bit_advance(length); - } - return rval; - } - - static void padByte(buffer& buf) - { - if (buf.get_shift()) - { - u8 mask = static_cast((1u << buf.get_shift()) - 1); - mask = mask << (8 - buf.get_shift()); - buf.begin()[0] &= mask; - buf.bit_advance(8 - buf.get_shift()); - } - } - - static void padByte(buffer& buf) - { - if(buf.get_shift()) - buf.bit_advance(8 - buf.get_shift()); - } - - static bool put(const u8* in, size_t len, buffer& buf, u8 trail_bitsqty) - { - if (len) - { - if (trail_bitsqty) - { - buf.putBytes(in, len - 1); - u8 last_byte = in[len - 1]; - last_byte = last_byte >> (8 - trail_bitsqty); - return put(last_byte, trail_bitsqty, buf); - } - buf.putBytes(in, len); - } - return true; - } -}; - -} //end: namespace asn - - diff --git a/e2sim/previous/e2apv1sim/src/ASN1/asn/chunked_allocator.hpp b/e2sim/previous/e2apv1sim/src/ASN1/asn/chunked_allocator.hpp deleted file mode 100755 index 008be98..0000000 --- a/e2sim/previous/e2apv1sim/src/ASN1/asn/chunked_allocator.hpp +++ /dev/null @@ -1,84 +0,0 @@ -#pragma once - -/******************************************************************************* -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -*******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries -#include -#include //std::bad_alloc -#include -#include - -// Platform Includes: Platform specific classes, functions, and libraries - -// Local Includes: Application specific classes, functions, and libraries - -namespace asn { - -template -class chunked_allocator -{ -public: - using allocator_t = ALLOC; - - chunked_allocator() - { - put_chunk(new_chunk()); - } - - template - decltype(auto) emplace_back(TSEQ& v) - { - try - { - return v.emplace_back(m_allocator); - } - catch (std::bad_alloc const&) - { - put_chunk(new_chunk()); - return v.emplace_back(m_allocator); - } - } - - uint8_t* alloc_bytes(std::size_t sz) - { - //TODO: unify allocation: now it returns nullptr instead of throw! - auto* ret = m_allocator.alloc_bytes(sz); - if (!ret) - { - put_chunk(new_chunk()); - ret = m_allocator.alloc_bytes(sz); - } - return ret; - } - -private: - static constexpr std::size_t CHUNK_SIZE = 32*1024; - using chunk_t = std::array; - using chunks_t = std::list; - - chunk_t& new_chunk() { return m_chunks.emplace_back(); } - void put_chunk(chunk_t& c) { m_allocator.reset(c.data(), c.size()); } - - - allocator_t m_allocator; - chunks_t m_chunks; -}; - -} //end: namespace asn diff --git a/e2sim/previous/e2apv1sim/src/ASN1/asn/constraints.hpp b/e2sim/previous/e2apv1sim/src/ASN1/asn/constraints.hpp deleted file mode 100755 index e8e787d..0000000 --- a/e2sim/previous/e2apv1sim/src/ASN1/asn/constraints.hpp +++ /dev/null @@ -1,140 +0,0 @@ -#pragma once - -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -* -******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries -#include -#include -#include -#include - -// Local Includes: Application specific classes, functions, and libraries - -namespace asn { - -using bound_t = int64_t; - -enum class constraint_type : uint8_t -{ - UNCONSTRAINED, - CONSTRAINED, - SEMICONSTRAINED, - CONSTRAINED_EXTENDED, - SEMICONSTRAINED_EXTENDED -}; - -template -struct span -{ - static_assert(UB >= LB, "UPPER >= LOWER"); - static constexpr bound_t lower_bound = LB; - static constexpr bound_t upper_bound = UB; -}; - -template -struct pair -{ - T const lower_bound; - T const upper_bound; -}; - -template -struct one : span {}; - -struct max : one::max()> {}; -struct min : one::min()> {}; - -static constexpr bound_t MAX = std::numeric_limits::max(); -static constexpr bound_t MIN = std::numeric_limits::min(); - -template -struct constraints -{ - static constexpr bool extended = Extended; - static constexpr bound_t lower_bound = std::min({RANGE::lower_bound...}); - static constexpr bound_t upper_bound = std::max({RANGE::upper_bound...}); - - static constexpr constraint_type type = - (Extended && lower_bound > min::lower_bound && upper_bound < max::upper_bound) ? constraint_type::CONSTRAINED_EXTENDED : - (!Extended && lower_bound > min::lower_bound && upper_bound < max::upper_bound) ? constraint_type::CONSTRAINED : - (Extended && lower_bound > min::lower_bound && upper_bound == max::upper_bound) ? constraint_type::SEMICONSTRAINED_EXTENDED : - (!Extended && lower_bound == min::lower_bound && upper_bound < max::upper_bound) ? constraint_type::SEMICONSTRAINED : - (Extended && lower_bound == min::lower_bound && upper_bound < max::upper_bound) ? constraint_type::SEMICONSTRAINED_EXTENDED : - (!Extended && lower_bound > min::lower_bound && upper_bound == max::upper_bound) ? constraint_type::SEMICONSTRAINED : constraint_type::UNCONSTRAINED; - - static constexpr bool is_signed = lower_bound < 0; - - static constexpr bound_t num_spans = static_cast(sizeof...(RANGE)); - static constexpr pair bounds[] = {{RANGE::lower_bound, RANGE::upper_bound}...}; - - using boundary_type = bound_t; - - static constexpr bool is_extended(bound_t val) - { - for (bound_t i = 0; i < num_spans; ++i) - { - auto const& p = bounds[i]; - if (val <= p.upper_bound) - { - if(val < p.lower_bound) - return true; - return false; - } - } - return true; - } -}; - -template -constexpr pair constraints::bounds[]; - -template -struct constraints -{ - static constexpr bool extended = Extended; - static constexpr constraint_type type = constraint_type::UNCONSTRAINED; - static constexpr bound_t lower_bound = std::numeric_limits::min(); - static constexpr bound_t upper_bound = std::numeric_limits::max(); - - static constexpr bool is_extended(bound_t val) {return true;} -}; - -/*************************************************************************************** -* RANGE for sequences -***************************************************************************************/ -template -struct seq_range -{ - static_assert(Extended || TotalNumEntries > 0, "TotalNumEntries must be > 0"); - static_assert(NumExtEntries <= TotalNumEntries, "NumExtEntries must be <= TotalNumEntries"); - - static constexpr constraint_type type = Extended ? constraint_type::CONSTRAINED_EXTENDED : constraint_type::CONSTRAINED; - static constexpr bool extended = Extended; - static constexpr bound_t lower_bound = 0; - static constexpr bound_t upper_bound = TotalNumEntries - NumExtEntries - 1; - static constexpr bound_t default_value = lower_bound; - static constexpr bound_t total_num_entries = TotalNumEntries; - - using boundary_type = bound_t; - using value_type = uint32_t; -}; - -} // namespace asn diff --git a/e2sim/previous/e2apv1sim/src/ASN1/asn/elements.hpp b/e2sim/previous/e2apv1sim/src/ASN1/asn/elements.hpp deleted file mode 100755 index 9cbcd42..0000000 --- a/e2sim/previous/e2apv1sim/src/ASN1/asn/elements.hpp +++ /dev/null @@ -1,565 +0,0 @@ -#pragma once - -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries -#include -#include - -// Local Includes: Application specific classes, functions, and libraries -#include "asn/constraints.hpp" -#include "asn/identifier.hpp" - -namespace asn { - -enum class element_type : uint8_t -{ - T_BOOLEAN - ,T_INTEGER - ,T_ENUMERATED - ,T_REAL - ,T_BITSTRING - ,T_OCTETSTRING - ,T_NULL - ,T_SEQUENCE - ,T_SEQUENCE_OF - ,T_SET - ,T_SET_OF - ,T_CHOICE - ,T_OBJECTIDENTIFIER - ,T_OBJFIELD_FTV - ,T_OBJFIELD_TF -}; - -/*************************************************************************************** -* BASE -***************************************************************************************/ - -struct base -{ - static constexpr bool optional = false; - static constexpr bool extension = false; - - static constexpr char const* name() {return "";} - - void setpresent(bool p) {is_set = p;} - void clear() {is_set = false;} - - bool is_valid() const {return is_set;} - -protected: - base() {} - void set() {is_set = true;} -protected: - bool is_set {false}; - - base& operator=(const base&) = delete; - base (const base&) = delete; -}; - -/*************************************************************************************** -* IE_NULL -***************************************************************************************/ - -struct nulltype : base -{ - using asn_identifier_t = identifier(tag_rvalue_t::NULL_TYPE), tag_type_t::IMPLICIT>; - - static constexpr element_type ie_type = element_type::T_NULL; - static constexpr const char* name() {return "NULL";} - - void clear() {} -}; - -/*************************************************************************************** -* T_BOOLEAN -***************************************************************************************/ - -struct boolean : base -{ - using asn_identifier_t = identifier(tag_rvalue_t::BOOLEAN), tag_type_t::IMPLICIT>; - - static constexpr element_type ie_type = element_type::T_BOOLEAN; - static constexpr const char* name() {return "BOOLEAN";} - - using value_type = bool; - - void set(value_type vl) { m_value = vl; base::set();} - value_type get() const { return m_value; } - void clear() { m_value = false; base::clear();} - -private: - value_type m_value {false}; -}; - -/*************************************************************************************** -* T_INTEGER -***************************************************************************************/ -template < class Constraint = constraints > -struct integer : base -{ - using asn_identifier_t = identifier(tag_rvalue_t::INTEGER), tag_type_t::IMPLICIT>; - - static constexpr element_type ie_type = element_type::T_INTEGER; - static constexpr const char* name() {return "INTEGER";} - - using constraint_t = Constraint; - using value_type = int64_t; - - bool equal(value_type v) const {return m_value == v;} - - void set(value_type v) { m_value = v; base::set();} - value_type get() const { return m_value; } - - void clear() { m_value = 0; base::clear();} - -private: - value_type m_value; -}; - -/*************************************************************************************** -* T_ENUMERATED -***************************************************************************************/ -template -struct enumerated : base -{ - using asn_identifier_t = identifier(tag_rvalue_t::ENUMERATED), tag_type_t::IMPLICIT>; - - static constexpr element_type ie_type = element_type::T_ENUMERATED; - static constexpr const char* name() {return "ENUMERATED";} - - using constraint_t = seq_range; - using value_type = typename constraint_t::value_type; - - bool equal(value_type v) const {return m_value == v;} - void set(value_type vl) { m_value = vl; base::set();} - value_type get() const { return m_value; } - void clear() { m_value = constraint_t::default_value; base::clear();} - -private: - value_type m_value; -}; - -/*************************************************************************************** -* T_OCTETSTRING -***************************************************************************************/ -template< class Constraint = constraints > -struct ostring : base -{ - using asn_identifier_t = identifier(tag_rvalue_t::OCTET_STRING), tag_type_t::IMPLICIT>; - - static constexpr element_type ie_type = element_type::T_OCTETSTRING; - static constexpr const char* name() {return "OCTET STING";} - using constraint_t = Constraint; - - struct value_type - { - value_type() {} - value_type(size_t size, const char* data) : m_size(size), m_data(reinterpret_cast(data)) {} - - size_t size() const { return m_size; } - const uint8_t* data() const { return m_data; } - - using const_iterator = uint8_t const*; - const_iterator begin() const { return data(); } - const_iterator end() const { return begin() + size(); } - - void assign(void const* p, size_t sz) { m_data = static_cast(p); m_size = sz; } - - private: - const uint8_t* m_data{ 0 }; - size_t m_size{ 0 }; - }; - - value_type const& get() const { return m_value; } - - //Use std::string, std::vector or IE_OSTR::value_type - template value_type const& set(T const& tval) - { - set(tval.size(), tval.data()); - base::set(); - return m_value; - } - - void set(size_t size, void const* data) - { - m_value.assign(data, size); - base::set(); - } - - template - ostring& emplace(AT& allocator, size_t size, uint8_t const * data_in) - { - if(size) - { - base::clear(); - uint8_t* data_out = allocator.alloc_bytes(size); - if (data_out) - { - memcpy(data_out, data_in, size); - set(size, data_out); - } - } - else - base::set(); - return *this; - } - - template - ostring& emplace(AT& allocator, T const& tval) - { - return emplace(allocator, tval.size(), reinterpret_cast(tval.data())); - } - - void clear() { m_value = value_type{}; base::clear();} - -private: - value_type m_value; -}; - -/*************************************************************************************** -* T_BITSTRING -***************************************************************************************/ -template > -struct bstring : base -{ - using asn_identifier_t = identifier(tag_rvalue_t::BIT_STRING), tag_type_t::IMPLICIT>; - - static constexpr element_type ie_type = element_type::T_BITSTRING; - static constexpr const char* name() {return "BIT STING";} - using constraint_t = Constraint; - - struct value_type - { - value_type() {} - value_type(size_t size, const char* data, size_t bitqty) : m_size(size), m_data(reinterpret_cast(data)), m_bitqty(bitqty){} - - size_t size() const { return m_size; } - const uint8_t* data() const { return m_data; } - size_t bitqty() const { return m_bitqty; } - - void assign(void const* p, size_t sz, size_t bits) { m_data = static_cast(p); m_size = sz; m_bitqty = bits; } - - private: - const uint8_t* m_data{ nullptr }; - size_t m_size{ 0 }; - size_t m_bitqty{ 0 }; - }; - - value_type const& get_buffer() const { return m_value; } - - size_t get_bitqty() const { return m_value.bitqty(); } - - //Use std::string, std::vector or IE_BSTR::value_type - template value_type const& set_buffer(T& tval, size_t bitqty) - { - m_value.assign(tval.data(), tval.size(), bitqty); - base::set(); - return m_value; - } - - void set_buffer(size_t bitqty, const uint8_t* data) - { - m_value.assign(data, (bitqty +7) >> 3, bitqty); - base::set(); - } - - template - bstring& emplace_buffer(AT& allocator, size_t bitqty, uint8_t const * data_in) - { - size_t size = (bitqty +7) >> 3; - uint8_t* data_out = allocator.alloc_bytes(size); - if (!data_out) { - throw std::bad_alloc(); - } - memcpy(data_out, data_in, size); - set_buffer(bitqty, data_out); - return *this; - } - - void clear() { m_value = value_type{}; base::clear();} - - uint64_t get_number() const - { - uint64_t retval{0}; - size_t i = 0; - for(; i < m_value.size() - 1; ++i) - { - retval <<= 8; - retval |= m_value.data()[i]; - } - - uint8_t shift = m_value.bitqty() % 8; - if (shift) - { - retval <<= shift; - } - else - { - retval <<= 8; - } - - retval |= m_value.data()[i]; - - return retval; - } - - template - void set_number(AT& allocator, size_t bitqty, uint64_t data) - { - size_t size = (bitqty +7) >> 3; - uint8_t* data_out = allocator.alloc_bytes(size); - if (!data_out) { - throw std::bad_alloc(); - } - - const uint8_t shift = bitqty % 8; - if (shift) - { - data_out[size-1] = data & (0xFF >> (8 - shift)); - data >>= shift; - } - else - { - data_out[size-1] = data & (0xFF); - data >>= 8; - } - - for (size_t i = 1; i <= size - 1; i++) - { - data_out[size-1-i] = data & (0xFF); - data >>= 8; - } - - m_value.assign(data_out, size, bitqty); - base::set(); - } - -private: - value_type m_value; -}; - -/*************************************************************************************** -* T_CHOICE -***************************************************************************************/ -template -struct choice : base -{ - using asn_identifier_t = identifier(tag_rvalue_t::CHOICE), tag_type_t::IMPLICIT>; - - static constexpr element_type ie_type = element_type::T_CHOICE; - static constexpr const char* name() {return "CHOICE";} - - using constraint_t = seq_range; - using index_type = size_t; - using value_type = size_t; - - static constexpr index_type fst_index = 1; - static constexpr index_type ext_index = fst_index + TotalNumEntries; - - static index_type normalize(index_type idx) {return idx - fst_index;} - static index_type denormalize(index_type idx) {return idx + fst_index;} -}; - -/*************************************************************************************** -* T_SEQUENCE -***************************************************************************************/ -template -struct sequence : base -{ - using asn_identifier_t = identifier(tag_rvalue_t::SEQUENCE), tag_type_t::IMPLICIT>; - - static constexpr element_type ie_type = element_type::T_SEQUENCE; - static constexpr const char* name() {return "SEQUENCE";} - - static constexpr bound_t num_total_entries = TotalNumEntries; - static constexpr bound_t num_opt_entries = NumOptEntries; - static constexpr bound_t num_ext_entries = NumExtEntries; - - using constraint_t = seq_range; - -}; - -/*************************************************************************************** -* T_SEQUENCE_OF -***************************************************************************************/ -template > -struct sequenceof : base -{ - using asn_identifier_t = identifier(tag_rvalue_t::SEQUENCE_OF), tag_type_t::IMPLICIT>; - - static constexpr element_type ie_type = element_type::T_SEQUENCE_OF; - static constexpr const char* name() {return "SEQUENCE OF";} - - struct value_type : T, boost::intrusive::list_base_hook< boost::intrusive::link_mode > - { - value_type(){} - private: - value_type& operator=(const value_type&) = delete; - value_type (const value_type&) = delete; - }; - - using values_t = boost::intrusive::list>; - using constraint_t = Constraint; - using element_t = T; - - void clear() { m_list.clear(); base::clear();} - size_t size() const { return m_list.size(); } - template - void sort(Predicate const& p) { m_list.sort(p); } - - template - void set(V& v) {for(auto & e : v) {m_list.push_back(e);} base::set();} - - void push_back(value_type& v) { m_list.push_back(v); base::set();} - - template //Note: Allocator must return word alligned buffer! - T& emplace_back(AT& allocator) - { - uint8_t* data = allocator.alloc_bytes(sizeof(value_type)); - if(!data) - throw std::bad_alloc(); - value_type* v = new (data) value_type; - push_back(*v); - return *v; - }; - - using iterator = typename values_t::iterator; - iterator begin() { return m_list.begin(); } - iterator end() { return m_list.end(); } - - using const_iterator = typename values_t::const_iterator; - const_iterator begin() const { return m_list.begin(); } - const_iterator end() const { return m_list.end(); } - - sequenceof(){} - -private: - values_t m_list; -}; - -/*************************************************************************************** -* T_OBJFIELD_FTV -***************************************************************************************/ -template -struct fixedtypefield : T -{ - static constexpr element_type ie_type = element_type::T_OBJFIELD_FTV; - - T& ref_nested() {return *this;} - T const & ref_nested() const {return *this;} -}; - -/*************************************************************************************** -* T_OBJFIELD_TF -***************************************************************************************/ -template -struct typefield : base -{ - static constexpr element_type ie_type = element_type::T_OBJFIELD_TF; - static constexpr const char* name() {return "type-field";} - - typefield& ref_nested() {return *this;} - typefield const& ref_nested() const {return *this;} - - bool is_unknown() const {return false;} -}; - -/*************************************************************************************** -* T_OBJECTIDENTIFIER -***************************************************************************************/ -struct oid : ostring<> -{ - using asn_identifier_t = identifier(tag_rvalue_t::OBJECT_IDENTIFIER), tag_type_t::IMPLICIT>; - - static constexpr element_type ie_type = element_type::T_OBJECTIDENTIFIER; - static constexpr const char* name() {return "OBJECT IDENTIFIER";} -}; - -/*************************************************************************************** -* T_PRINTABLESTRING -***************************************************************************************/ -template > -struct printable_string : ostring -{ - using asn_identifier_t = identifier(tag_rvalue_t::PrintableString), tag_type_t::IMPLICIT>; - static constexpr const char* name() {return "PrintableString";} -}; - -/*************************************************************************************** -* T_IA5_STRING -***************************************************************************************/ -template > -struct ia5_string : ostring -{ - using asn_identifier_t = identifier(tag_rvalue_t::IA5String), tag_type_t::IMPLICIT>; - static constexpr const char* name() {return "IA5String";} -}; - -/*************************************************************************************** -* T_GRAPHIC_STRING -***************************************************************************************/ -template > -struct graphic_string : ostring -{ - using asn_identifier_t = identifier(tag_rvalue_t::GraphicString), tag_type_t::IMPLICIT>; - static constexpr const char* name() {return "IA5String";} -}; - -/*************************************************************************************** -* T_UTF8_STRING -***************************************************************************************/ -template > -struct utf8_string : ostring -{ - using asn_identifier_t = identifier(tag_rvalue_t::UTF8String), tag_type_t::IMPLICIT>; - static constexpr const char* name() {return "UTF8String";} -}; - -/*************************************************************************************** -* T_SET -***************************************************************************************/ -template -struct set : base -{ - using asn_identifier_t = identifier(tag_rvalue_t::SET), tag_type_t::IMPLICIT>; - - static constexpr element_type ie_type = element_type::T_SET; - static constexpr const char* name() {return "SET";} - - static constexpr bound_t num_total_entries = TotalNumEntries; - static constexpr bound_t num_opt_entries = NumOptEntries; - static constexpr bound_t num_ext_entries = NumExtEntries; - - using constraint_t = seq_range; -}; - -/*************************************************************************************** -* T_SET_OF -***************************************************************************************/ -template > -struct setof : sequenceof -{ - using asn_identifier_t = identifier(tag_rvalue_t::SET_OF), tag_type_t::IMPLICIT>; - - static constexpr element_type ie_type = element_type::T_SET_OF; - static constexpr const char* name() {return "SET OF";} -}; -} //namespace asn diff --git a/e2sim/previous/e2apv1sim/src/ASN1/asn/error_context.hpp b/e2sim/previous/e2apv1sim/src/ASN1/asn/error_context.hpp deleted file mode 100755 index 8a7285a..0000000 --- a/e2sim/previous/e2apv1sim/src/ASN1/asn/error_context.hpp +++ /dev/null @@ -1,267 +0,0 @@ -#pragma once - -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries - - -// Local Includes: Application specific classes, functions, and libraries -#include "type_defs.h" - -namespace asn { - -class error_context -{ -public: - enum error_e : u8 - { - SUCCESS = 0 - ,INCORRECT_LENGTH_BITS - ,INCORRECT_LENGTH_BYTES - ,ALIGNMENT - ,INCORRECT_VALUE - ,INCORRECT_CHOICE_TAG - ,INCORRECT_IE_TAG - ,VALUE_OUT_OF_RANGE - ,SIZE_OUT_OF_RANGE - ,ALLOC_NO_MEMORY - ,NO_OBJECT - ,NO_MANDATORY - ,WRONG_END_OF_CONTENT - ,UNSUPPORTED - ,UNSPECIFIED - }; - - explicit operator bool() const { return SUCCESS == m_error; } - - void reset() { m_error = SUCCESS; } - error_e getError() const { return m_error; } - - char const* toString() const; - - void alignmentError(u32 shift); - void lengthErrorBytes(u32 bytes_left, u32 requested); - void lengthErrorBits(u32 bits_left, u32 requested); - void valueError(u32 got, u32 expected, u32 ofs); - void tagError(u32 tag); - void valueRangeError(size_t value); - void sizeRangeError(size_t size, size_t low = 0, size_t high = 0); - void allocatorNoMem(size_t bytes_left, size_t bytes_required); - void errorUnsupported() {setError(UNSUPPORTED);} - void errorUnspecified() {setError(UNSPECIFIED);} - void errorNoObject(const char* container_name_); - void errorNoMandatory(); - void errorWrongEndOfContent() {setError(WRONG_END_OF_CONTENT);} - - //to inline in choice decoder: TODO: think of changing it! - void choiceError(char const* name, u32 id) - { - m_name = name; - m_param[0] = id; - setError(INCORRECT_CHOICE_TAG); - } - //Name of the being processed IE - void ie_name(const char* name) { m_ie_name = name; } - char const* ie_name() const { return m_ie_name; } - - void container_name(const char* name) { m_container_name = name; } - char const* container_name() const { return m_container_name; } - - -private: - void setError(error_e n) { m_error = n; } - - enum { MAX_PARAMS = 3 }; - error_e m_error; - char const* m_name; - char const* m_ie_name {""}; - char const* m_container_name {""}; - size_t m_param[MAX_PARAMS]; - -}; - -inline -void error_context::errorNoObject(const char* c_name) -{ - container_name(c_name); - m_name = m_ie_name; - setError(NO_OBJECT); -} - -inline -void error_context::errorNoMandatory() -{ - m_name = m_ie_name; - setError(NO_MANDATORY); -} - -inline -void error_context::alignmentError(u32 shift) -{ - m_name = m_ie_name; - m_param[0] = shift; - setError(ALIGNMENT); -} - -inline -void error_context::lengthErrorBytes(u32 bytes_left, u32 requested) -{ - m_name = m_ie_name; - m_param[0] = bytes_left; - m_param[1] = requested; - setError(INCORRECT_LENGTH_BYTES); -} - -inline -void error_context::lengthErrorBits(u32 bits_left, u32 requested) -{ - m_name = m_ie_name; - m_param[0] = bits_left; - m_param[1] = requested; - setError(INCORRECT_LENGTH_BITS); -} - -inline -void error_context::valueError(u32 got, u32 expected, u32 ofs) -{ - m_name = m_ie_name; - m_param[0] = got; - m_param[1] = expected; - m_param[2] = ofs; - setError(INCORRECT_VALUE); -} - -inline -void error_context::tagError(u32 tag) -{ - m_name = m_ie_name; - m_param[0] = tag; - setError(INCORRECT_IE_TAG); -} - -inline -void error_context::valueRangeError(size_t value) -{ - m_name = m_ie_name; - m_param[0] = value; - setError(VALUE_OUT_OF_RANGE); -} - -inline -void error_context::sizeRangeError(size_t size, size_t low, size_t high) -{ - m_name = m_ie_name; - m_param[0] = size; - m_param[1] = low; - m_param[2] = high; - setError(SIZE_OUT_OF_RANGE); -} - -inline -void error_context::allocatorNoMem(size_t bytes_left, size_t bytes_required) -{ - m_name = m_ie_name; - m_param[0] = bytes_left; - m_param[1] = bytes_required; - setError(ALLOC_NO_MEMORY); -} - -inline -char const* error_context::toString() const -{ - static char sz[256]; - - switch (m_error) - { - case SUCCESS: - return "OK"; - - case INCORRECT_LENGTH_BITS: - snprintf(sz, sizeof(sz)-1, "%zu bits left, '%s::%s' needs %zu", m_param[0], m_container_name, m_name, m_param[1]); - break; - - case INCORRECT_LENGTH_BYTES: - snprintf(sz, sizeof(sz)-1, "%zu bytes left, '%s::%s' needs %zu", m_param[0], m_container_name, m_name, m_param[1]); - break; - case ALIGNMENT: - snprintf(sz, sizeof(sz)-1, "misaligned '%s::%s': shift %zu bits", m_container_name, m_name, m_param[0]); - break; - - case INCORRECT_VALUE: - snprintf(sz, sizeof(sz)-1, "Wrong value of '%s::%s' at %zu: 0x%zX expected=0x%zX", m_container_name, m_name, m_param[2], m_param[0], m_param[1]); - break; - - case INCORRECT_CHOICE_TAG: - snprintf(sz, sizeof(sz)-1, "Wrong choice tag of '%s::%s': %zu (0x%zX)", m_container_name, m_name, m_param[0], m_param[0]); - break; - - case INCORRECT_IE_TAG: - snprintf(sz, sizeof(sz)-1, "Wrong tag of '%s::%s': %zu (0x%zX)", m_container_name, m_name, m_param[0], m_param[0]); - break; - - case VALUE_OUT_OF_RANGE: - snprintf(sz, sizeof(sz) - 1, "Value is out of the range '%s::%s': value: %zu", m_container_name, m_name, m_param[0]); - break; - - case SIZE_OUT_OF_RANGE: - if (m_param[2]) - { - snprintf(sz, sizeof(sz) - 1, "Size=%zu bytes is out of the range [%zu, %zu] in '%s::%s'", m_param[0], m_param[1], m_param[2], m_container_name, m_name); - } - else - { - if (m_param[1]) - { - snprintf(sz, sizeof(sz) - 1, "Size=%zu bytes is less than %zu in '%s::%s'", m_param[0], m_param[1], m_container_name, m_name); - } - else - { - snprintf(sz, sizeof(sz) - 1, "Size=%zu bytes is out of the range in '%s::%s'", m_param[0], m_container_name, m_name); - } - } - break; - - case ALLOC_NO_MEMORY: - snprintf(sz, sizeof(sz) - 1, "Allocator memory has ended '%s::%s': left bytes: %zu; required bytes: %zu", m_container_name, m_name, m_param[0], m_param[1]); - break; - case NO_OBJECT: - snprintf(sz, sizeof(sz) - 1, "Component relation constraint violated '%s::%s'", m_container_name, m_name); - break; - case NO_MANDATORY: - snprintf(sz, sizeof(sz) - 1, "no mandatory '%s::%s' is found", m_container_name, m_name); - break; - case UNSUPPORTED: - snprintf(sz, sizeof(sz) - 1, "unsupported object '%s::%s' is found", m_container_name, m_name); - return "unsupported"; - break; - case UNSPECIFIED: - snprintf(sz, sizeof(sz) - 1, "unspecified object '%s::%s' is found", m_container_name, m_name); - return "unspecified"; - break; - case WRONG_END_OF_CONTENT: - snprintf(sz, sizeof(sz) - 1, "wrong end of content in object '%s::%s'", m_container_name, m_name); - return "wrong end of content"; - break; - } - - return sz; -} - -} //end: namespace asn diff --git a/e2sim/previous/e2apv1sim/src/ASN1/asn/identifier.hpp b/e2sim/previous/e2apv1sim/src/ASN1/asn/identifier.hpp deleted file mode 100755 index 9b603fb..0000000 --- a/e2sim/previous/e2apv1sim/src/ASN1/asn/identifier.hpp +++ /dev/null @@ -1,97 +0,0 @@ -#pragma once - -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries - -// Local Includes: Application specific classes, functions, and libraries - -namespace asn { - -enum class class_type_t : uint8_t -{ - UNIVERSAL - ,APPLICATION - ,CONTEXT - ,PRIVATE - ,UNSPECIFIED //reserved for internal use -}; - -enum class tag_type_t : uint8_t -{ - EXPLICIT - ,IMPLICIT - ,AUTOMATIC -}; - -using tag_value_t = uint64_t; - -template -struct identifier -{ - static constexpr class_type_t class_type = CT; - static constexpr tag_value_t tag_value = TAG; - static constexpr tag_type_t tag_type = TT; -}; - - -enum class tag_rvalue_t : tag_value_t -{ - BOOLEAN = 1 - ,INTEGER = 2 - ,BIT_STRING = 3 - ,OCTET_STRING = 4 - ,NULL_TYPE = 5 - ,OBJECT_IDENTIFIER = 6 - ,REAL = 9 - ,ENUMERATED = 10 - ,SEQUENCE = 16 - ,SEQUENCE_OF = 16 - ,UTF8String = 12 - ,NumericString = 18 - ,IA5String = 22 - ,VisibleString = 26 - ,DATE = 31 - ,TIME_OF_DAY = 32 - ,DATE_TIME = 33 - ,DURATION = 34 - ,ObjectDescriptor = 7 - ,EXTERNAL = 8 - ,EMBEDDED_PDV = 11 - ,OID_IRI = 35 - ,RELATIVE_OID_IRI = 36 - ,SET = 17 - ,SET_OF = 17 - ,UTCTime = 23 - ,GeneralizedTime = 24 - ,PrintableString = 19 - ,T61String = 20 - ,VideotexString = 21 - ,GraphicString = 25 - ,GeneralString = 27 - ,UniversalString = 28 - ,CHARACTER_STRING = 29 - ,BMPString = 30 - ,ISO646String = 26 - ,TeletexString = 20 - ,CHOICE = 99 // fake id for internal use -}; - -} //namespace asn diff --git a/e2sim/previous/e2apv1sim/src/ASN1/asn/per/binary_integer.hpp b/e2sim/previous/e2apv1sim/src/ASN1/asn/per/binary_integer.hpp deleted file mode 100755 index 6ba2f15..0000000 --- a/e2sim/previous/e2apv1sim/src/ASN1/asn/per/binary_integer.hpp +++ /dev/null @@ -1,168 +0,0 @@ -#pragma once -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries - -// Local Includes: Application specific classes, functions, and libraries -#include "asn/per/common.hpp" -#include "asn/per/length.hpp" - -namespace asn { -namespace per { - -template -struct BinaryIntegerLength; - -/*************************************************************************************** -* Encoding of a non-negative-binary-integer (X.691 10.3) -***************************************************************************************/ -template -struct NonnegativeBinaryInteger -{ - static void inline run(u64 val, EncoderCtx& ctx) - { - if(val) - { - size_t const len = sizeof(val) - (__builtin_clzll(val) >> 3); - - BinaryIntegerLength< Range >::run(ctx, len); - Tools::bit_accessor::padByte(ctx.refBuffer()); - - u8 buff[len]; - size_t shift = (len - 1) << 3; - for(size_t i = 0; i < len; ++i) - { - buff[i] = static_cast(val >> shift); - shift -= 8; - } - - ctx.refBuffer().putBytes(buff, len); - } - else - { - BinaryIntegerLength< Range >::run(ctx, 1); - Tools::bit_accessor::padByte(ctx.refBuffer()); - ctx.refBuffer().putByte(0); - } - } - template - static void inline run(T& retval, DecoderCtx& ctx, bool extended_val) - { - retval = 0; - size_t len = (size_t)BinaryIntegerLength< Range >::run(ctx, extended_val); - Tools::bit_accessor::padByte(ctx.refBuffer()); - u8 const* data = ctx.refBuffer().getBytes(len); - - if (data) - { - for (size_t i = 0; i < len; ++i) - { - retval = retval << 8; - retval |= data[i]; - } - } - } -}; - -/*************************************************************************************** -* Encoding of a 2's-complement-binary-integer (X.691 10.4) -***************************************************************************************/ - -template -struct TwosComplementBinaryInteger -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - Tools::bit_accessor::padByte(ctx.refBuffer()); - - u64 val = ie.get(); - u64 tval = val; - u64 mask = static_cast(-128); - u8 len = 1; - u8 i = 7; - - u8 buf[8]; - - while (len < 8) - { - buf[i] = static_cast(tval); - if (!(val & mask) || (val & mask) == mask) - break; - mask = mask << 8; - tval = tval >> 8; - len++; - i--; - } - - ctx.refBuffer().putByte(len) && ctx.refBuffer().putBytes(&buf[i], len); - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - Tools::bit_accessor::padByte(ctx.refBuffer()); - - u8 const* data = nullptr; - typename IE::value_type val = 0; - - u8 const* len = ctx.refBuffer().getBytes(1); - - if (len && (*len) <= 8 && (data = ctx.refBuffer().getBytes(*len))) - { - for (u8 i = 0; i < *len; ++i) - { - val = val << 8; - val |= data[i]; - } - } - ie.set(val); - } -}; - -/*************************************************************************************** -* Encoding of a normally small non-negativebinary integer (X.691 10.6) -***************************************************************************************/ -template -struct NormallySmallNonnegativeBinaryInteger -{ - static void inline run(IE const& ie, EncoderCtx& ctx, typename IE::constraint_t::boundary_type val) - { - if (val <= 63) - { - Tools::bit_accessor::put(static_cast(val), 7, ctx.refBuffer()); //7 bits ('0' indicator + value) - } - else - { - Tools::bit_accessor::put(1, 1, ctx.refBuffer()); //1 bit ('1' indicator) - NonnegativeBinaryInteger::run(val, ctx); - } - } - static TValue inline run(DecoderCtx& ctx) - { - u8 ext = Tools::bit_accessor::get(1, ctx.refBuffer()); - if (ext) { - TValue rval = 0; - NonnegativeBinaryInteger::run(rval, ctx, true); - return rval; - } - return Tools::bit_accessor::get(6, ctx.refBuffer()); - } -}; - -} //namespace per -} //namespace asn diff --git a/e2sim/previous/e2apv1sim/src/ASN1/asn/per/bstring.hpp b/e2sim/previous/e2apv1sim/src/ASN1/asn/per/bstring.hpp deleted file mode 100755 index 5d25599..0000000 --- a/e2sim/previous/e2apv1sim/src/ASN1/asn/per/bstring.hpp +++ /dev/null @@ -1,279 +0,0 @@ -#pragma once -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries - -// Local Includes: Application specific classes, functions, and libraries -#include "asn/per/common.hpp" - -namespace asn { -namespace per { - -//15.11 Default -template -struct BitstringNoExt -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - LengthDeterminant::run(ctx, ie.get_bitqty()); - Tools::bit_accessor::padByte(ctx.refBuffer()); - - const u8 tail = ie.get_bitqty() % 8; - if (tail) - { - ctx.refBuffer().putBytes(ie.get_buffer().data(), ie.get_buffer().size() - 1); - u8 last_byte = *(ie.get_buffer().data() + ie.get_buffer().size() - 1); - - last_byte <<= 8 - tail; - ctx.refBuffer().putBytes(&last_byte, 1); - ctx.refBuffer().set_begin(ctx.refBuffer().begin() - 1, tail); - } - else - { - ctx.refBuffer().putBytes(ie.get_buffer().data(), ie.get_buffer().size()); - } - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - size_t len = LengthDeterminant::run(ctx, false); - size_t len_bytes = (len + 7) >> 3; - Tools::bit_accessor::padByte(ctx.refBuffer()); - u8 const* data_in = ctx.refBuffer().getBytes(len_bytes); - if (data_in) - { - u8* data_out = ctx.refAllocator().alloc_bytes(len_bytes); - if (data_out) - { - memcpy(data_out, data_in, len_bytes); - const u8 shift = len % 8; - if (shift) - { - ctx.refBuffer().set_begin(ctx.refBuffer().begin() - 1, shift); - data_out[len_bytes - 1] >>= 8 - shift; - } - ie.set_buffer(len, data_out); - } - else - ctx.refErrorCtx().allocatorNoMem(0, len_bytes); - } - } -}; - -//15.8 Zero length -template -struct BitstringNoExt > -{ - static void inline run(IE const& ie, EncoderCtx& ctx) {/* do nothing */ } - static void inline run(IE& ie, DecoderCtx& ctx) { ie.setpresent(true); } -}; - -//15.9 Up to 6 bits, fixed length -template -struct BitstringNoExt 0)) ->> -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - Tools::bit_accessor::put((static_cast(ie.get_buffer().data()[0])) & (0xFF >> (8 - IE::constraint_t::upper_bound)), - IE::constraint_t::upper_bound, ctx.refBuffer()); - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - u8 * data = ctx.refAllocator().alloc_bytes(1); - if (data) - { - data[0] = Tools::bit_accessor::get(IE::constraint_t::upper_bound, ctx.refBuffer()); - ie.set_buffer(IE::constraint_t::upper_bound, data); - } - else - ctx.refErrorCtx().allocatorNoMem(0, 1); - } -}; -template -struct BitstringNoExt 8)) ->> -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - Tools::bit_accessor::put(ie.get_buffer().data()[0], 8, ctx.refBuffer()); - Tools::bit_accessor::put((static_cast(ie.get_buffer().data()[1])) & (0xFF >> (16 - IE::constraint_t::upper_bound)), - IE::constraint_t::upper_bound - 8, ctx.refBuffer()); - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - u8 * data = ctx.refAllocator().alloc_bytes(2); - if (data) - { - data[0] = Tools::bit_accessor::get(8, ctx.refBuffer()); - data[1] = Tools::bit_accessor::get(IE::constraint_t::upper_bound - 8, ctx.refBuffer()); - ie.set_buffer(IE::constraint_t::upper_bound, data); - } - else - ctx.refErrorCtx().allocatorNoMem(0, 2); - } -}; - -//15.10 More than 6 bits, up to 64K bits, fixed length -template -struct BitstringNoExt 16)) ->> -{ - constexpr static size_t len_bytes = (IE::constraint_t::upper_bound + 7) >> 3; - - static void inline run(IE const& ie, EncoderCtx& ctx) - { - Tools::bit_accessor::padByte(ctx.refBuffer()); - if (ie.get_buffer().size() != len_bytes) - { - ctx.refErrorCtx().sizeRangeError(ie.get_buffer().size(), len_bytes, len_bytes); - } - else - { - const u8 tail = ie.get_bitqty() % 8; - if (tail) - { - ctx.refBuffer().putBytes(ie.get_buffer().data(), ie.get_buffer().size() - 1); - u8 last_byte = *(ie.get_buffer().data() + ie.get_buffer().size() - 1); - last_byte <<= 8 - tail; - ctx.refBuffer().putBytes(&last_byte, 1); - ctx.refBuffer().set_begin(ctx.refBuffer().begin() - 1, tail); - } - else - { - ctx.refBuffer().putBytes(ie.get_buffer().data(), ie.get_buffer().size()); - } - } - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - Tools::bit_accessor::padByte(ctx.refBuffer()); - u8 const* data_in = ctx.refBuffer().getBytes(len_bytes); - if (data_in) - { - u8* data_out = ctx.refAllocator().alloc_bytes(len_bytes); - if (data_out) - { - memcpy(data_out, data_in, len_bytes); - const u8 shift = IE::constraint_t::upper_bound % 8; - if (shift) - { - ctx.refBuffer().set_begin(ctx.refBuffer().begin() - 1, shift); - data_out[len_bytes - 1] >>= 8 - shift; - } - ie.set_buffer(IE::constraint_t::upper_bound, data_out); - } - else - ctx.refErrorCtx().allocatorNoMem(0, len_bytes); - } - } -}; - -/**************************************************/ - -template -struct Bitstring; - -//15.6 : Extension present -template -struct Bitstring > -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - - if (ie.get_bitqty() <= IE::constraint_t::upper_bound && ie.get_bitqty() >= IE::constraint_t::lower_bound) - { - Tools::bit_accessor::put(0, 1, ctx.refBuffer()); - BitstringNoExt::run(ie, ctx); - } - else - { - Tools::bit_accessor::put(1, 1, ctx.refBuffer()); - Tools::bit_accessor::padByte(ctx.refBuffer()); - LengthDeterminant::run(ctx, ie.get_bitqty()); - Tools::bit_accessor::padByte(ctx.refBuffer()); - const u8 tail = ie.get_bitqty() % 8; - if (tail) - { - ctx.refBuffer().putBytes(ie.get_buffer().data(), ie.get_buffer().size() - 1); - u8 last_byte = *(ie.get_buffer().data() + ie.get_buffer().size() - 1); - - last_byte <<= 8 - tail; - - ctx.refBuffer().putBytes(&last_byte, 1); - ctx.refBuffer().set_begin(ctx.refBuffer().begin() - 1, tail); - } - else - { - ctx.refBuffer().putBytes(ie.get_buffer().data(), ie.get_buffer().size()); - } - } - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - u8 ext = Tools::bit_accessor::get(1, ctx.refBuffer()); - if (ext) - { - Tools::bit_accessor::padByte(ctx.refBuffer()); - const size_t len = LengthDeterminant::run(ctx, true); - const size_t len_bytes = (len + 7) >> 3; - Tools::bit_accessor::padByte(ctx.refBuffer()); - u8 const* data_in = ctx.refBuffer().getBytes(len_bytes); - if (data_in) - { - u8* data_out = ctx.refAllocator().alloc_bytes(len_bytes); - if (data_out) - { - memcpy(data_out, data_in, len_bytes); - const u8 shift = len % 8; - if (shift) - { - ctx.refBuffer().set_begin(ctx.refBuffer().begin() - 1, shift); - data_out[len_bytes - 1] >>= 8 - shift; - } - ie.set_buffer(len, data_out); - } - else - ctx.refErrorCtx().allocatorNoMem(0, len_bytes); - } - } - else - BitstringNoExt::run(ie, ctx); - } -}; - -//15.7 : No extension -template -struct Bitstring > -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - BitstringNoExt::run(ie, ctx); - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - BitstringNoExt::run(ie, ctx); - } -}; - -} //namespace per -} //namespace asn diff --git a/e2sim/previous/e2apv1sim/src/ASN1/asn/per/choice.hpp b/e2sim/previous/e2apv1sim/src/ASN1/asn/per/choice.hpp deleted file mode 100755 index f0d115c..0000000 --- a/e2sim/previous/e2apv1sim/src/ASN1/asn/per/choice.hpp +++ /dev/null @@ -1,136 +0,0 @@ -#pragma once -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries - -// Local Includes: Application specific classes, functions, and libraries -#include "asn/per/common.hpp" -#include "asn/per/visitor.hpp" - -namespace asn { -namespace per { - -/******************************************************************************** -Choice -*********************************************************************************/ - -/**************************************************/ -//22.6-7 Default -template -struct ChoiceNoExt -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - ConstrainedWholeNumber::run(ctx, IE::normalize(ie.get_index())); - VisitorEncoder ve{ ctx }; - ie.encode(ve); - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - typename IE::index_type idx = ConstrainedWholeNumber::run(ctx); - VisitorDecoder ve{ ctx }; - ie.decode(IE::denormalize(idx), ve); - } -}; - -//22.4 One alternative -template -struct ChoiceNoExt > -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - VisitorEncoder ve{ ctx }; - ie.encode(ve); - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - VisitorDecoder ve{ ctx }; - ie.decode(IE::denormalize(0), ve); - } -}; - -/**************************************************/ - -template -struct Choice; - -//22.5 Extension present -template -struct Choice > -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - auto idx = IE::normalize(ie.get_index()); - if (idx <= IE::constraint_t::upper_bound) - { - Tools::bit_accessor::put(0, 1, ctx.refBuffer()); - ChoiceNoExt::run(ie, ctx); - } - else - { - Tools::bit_accessor::put(1, 1, ctx.refBuffer()); - NormallySmallNonnegativeBinaryInteger::run(ie, ctx, idx - IE::constraint_t::upper_bound - 1); - OpenTypeVisitorEncoder ve{ ctx }; - ie.encode(ve); - } - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - u8 ext = Tools::bit_accessor::get(1, ctx.refBuffer()); - if (ext) - { - typename IE::index_type idx = IE::constraint_t::upper_bound + 1 + NormallySmallNonnegativeBinaryInteger::run(ctx); - if (idx >= IE::constraint_t::total_num_entries) - { - ie.set_unknown(); - size_t size = LengthDeterminantDefault::run(ctx); - DecoderCtx::buf_type& buffer = ctx.refBuffer(); - if (buffer.getBytesLeft() < size) - ctx.refErrorCtx().lengthErrorBytes(buffer.getBytesLeft(), size); - else - buffer.advance(size); - } - else - { - OpenTypeVisitorDecoder ve{ ctx }; - ie.decode(IE::denormalize(idx), ve); - } - } - else - ChoiceNoExt::run(ie, ctx); - } -}; - -//22.6 No extension -template -struct Choice > -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - ChoiceNoExt::run(ie, ctx); - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - ChoiceNoExt::run(ie, ctx); - } -}; - -} //namespace per -} //namespace asn diff --git a/e2sim/previous/e2apv1sim/src/ASN1/asn/per/codec.hpp b/e2sim/previous/e2apv1sim/src/ASN1/asn/per/codec.hpp deleted file mode 100755 index 176792a..0000000 --- a/e2sim/previous/e2apv1sim/src/ASN1/asn/per/codec.hpp +++ /dev/null @@ -1,325 +0,0 @@ -#pragma once -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries - -// Local Includes: Application specific classes, functions, and libraries -#include "asn/per/common.hpp" -#include "asn/elements.hpp" -#include "asn/per/context.hpp" -#include "asn/per/length.hpp" -#include "asn/per/integer.hpp" -#include "asn/per/enumerated.hpp" -#include "asn/per/ostring.hpp" -#include "asn/per/bstring.hpp" -#include "asn/per/sequence_of.hpp" -#include "asn/per/sequence.hpp" -#include "asn/per/choice.hpp" -#include "asn/per/visitor.hpp" -#include "asn/per/oid.hpp" - -namespace asn { -namespace per { - -/******************************************************************************** -pack -*********************************************************************************/ -template -bool pack(IE const& ie, EncoderCtx& ctx) -{ - ctx.refErrorCtx().reset(); - Element::run(ie, ctx); - - if (ctx) - Tools::bit_accessor::padByte(ctx.refBuffer()); - - return static_cast(ctx); -} -/******************************************************************************** -unpack -*********************************************************************************/ -template -bool unpack(IE& ie, DecoderCtx& ctx) -{ - Element::run(ie, ctx); - - if (ctx) - Tools::bit_accessor::padByte(ctx.refBuffer()); - - if(ctx && ctx.refBuffer().getBytesLeft()) - { - ctx.ie_name(IE::name()); - ctx.refErrorCtx().lengthErrorBytes(ctx.refBuffer().getBytesLeft(), 0); - } - - return static_cast(ctx); -} - -/*************************************************************************************** -* ElementType -***************************************************************************************/ -template -struct ElementType; - -/*************************************************************************************** -* BOOLEAN: Encoding the boolean type (X.691 11) -***************************************************************************************/ -template -struct ElementType -{ -protected: - template friend struct Element; - - static void inline run(IE const& ie, EncoderCtx& ctx) - { - Tools::bit_accessor::put(static_cast(ie.get()), 1, ctx.refBuffer()); - } - - static void inline run(IE& ie, DecoderCtx& ctx) - { - ie.set(0 != Tools::bit_accessor::get(1, ctx.refBuffer())); - } -}; -/*************************************************************************************** -* INTEGER: Encoding the integer type (X.691 12) -***************************************************************************************/ -template -struct ElementType -{ -protected: - template friend struct Element; - - static void inline run(IE const& ie, EncoderCtx& ctx) - { - Integer::run(ie, ctx); - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - Integer::run(ie, ctx); - } -}; -/*************************************************************************************** -* ENUMERATED: Encoding the enumerated type (X.691 13) -***************************************************************************************/ -template -struct ElementType -{ -protected: - template friend struct Element; - - static void inline run(IE const& ie, EncoderCtx& ctx) - { - Enumerated::run(ie, ctx); - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - Enumerated::run(ie, ctx); - } -}; -/*************************************************************************************** -* BIT STRING: Encoding the bitstring type (X.691 15) -***************************************************************************************/ -template -struct ElementType -{ -protected: - template friend struct Element; - - static void inline run(IE const& ie, EncoderCtx& ctx) - { - Bitstring::run(ie, ctx); - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - ie.clear(); - Bitstring::run(ie, ctx); - } -}; -/*************************************************************************************** -* OCTET STRING: Encoding the octetstring type (X.691 16) -***************************************************************************************/ -template -struct ElementType -{ -protected: - template friend struct Element; - - static void inline run(IE const& ie, EncoderCtx& ctx) - { - Octetstring::run(ie, ctx); - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - ie.clear(); - Octetstring::run(ie, ctx); - } -}; -/*************************************************************************************** -* NULL: Encoding the null type (X.691 17) -***************************************************************************************/ -template -struct ElementType -{ -protected: - template friend struct Element; - - static void inline run(IE const& ie, EncoderCtx& ctx) { /*do nothing*/ } - static void inline run(IE& ie, DecoderCtx& ctx) - { - ie.setpresent(true); - } -}; -/*************************************************************************************** -* SEQUENCE: Encoding the sequence type (X.691 18) -***************************************************************************************/ -template -struct ElementType -{ -protected: - template friend struct Element; - - static void inline run(IE const& ie, EncoderCtx& ctx) - { - ctx.container_name(IE::name()); - Seq::run(ie, ctx); - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - ctx.m_container = &ie; - Seq::run(ie, ctx); - ctx.m_container = nullptr; - } -}; -/*************************************************************************************** -* SEQUENCE OF: Encoding the sequence-of type (X.691 19) -***************************************************************************************/ -template -struct ElementType -{ -protected: - template friend struct Element; - - static void inline run(IE const& ie, EncoderCtx& ctx) - { - ctx.container_name(IE::name()); - SequenceOf::run(ie, ctx); - - for (auto& elem : ie) - Element::run(elem, ctx); - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - ie.clear(); - SequenceOf::run(ie, ctx); - - for (auto & elem : ie) - Element::run(elem, ctx); - } -}; -/*************************************************************************************** -* SET: Encoding the set type (X.691 20) -***************************************************************************************/ - - -/*************************************************************************************** -* SET OF: Encoding the set-of type (X.691 21) -***************************************************************************************/ - -/*************************************************************************************** -* CHOICE: Encoding the choice type (X.691 22) -***************************************************************************************/ -template -struct ElementType -{ -protected: - template friend struct Element; - - static void inline run(IE const& ie, EncoderCtx& ctx) - { - if(ie.is_valid()) - { - ctx.container_name(IE::name()); - Choice::run(ie, ctx); - } - else - ctx.refErrorCtx().tagError(ie.get_index()); - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - ie.clear(); - ctx.m_container = &ie; - Choice::run(ie, ctx); - ctx.m_container = nullptr; - } -}; - -/*************************************************************************************** -* IE_OBJECT_IDENTIFIER: Encoding the object identifier type (X.691 23) -***************************************************************************************/ -template -struct ElementType -{ -protected: - template friend struct Element; - - static void inline run(IE const& ie, EncoderCtx& ctx) - { - Oid::run(ie, ctx); - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - ie.clear(); - Oid::run(ie, ctx); - } -}; - -/*************************************************************************************** -* COMMON: Element -***************************************************************************************/ -template -struct Element -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - if (ctx) - { - ASN_ENCODER_TRACE("IE buffer: %s", static_cast(IE_TYPE), IE::name(), ctx.refBuffer().toString()); - ctx.ie_name(IE::name()); - if (IE_TYPE != element_type::T_SEQUENCE && !ie.is_valid()) - { - ctx.refErrorCtx().errorNoMandatory(); - } - else - ElementType::run(ie, ctx); - } - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - if (ctx) - { - ASN_DECODER_TRACE("IE buffer: %s", static_cast(IE_TYPE), IE::name(), ctx.refBuffer().toString()); - ctx.ie_name(IE::name()); - ElementType::run(ie, ctx); - } - } -}; - -} //namespace per -} //namespace asn diff --git a/e2sim/previous/e2apv1sim/src/ASN1/asn/per/common.hpp b/e2sim/previous/e2apv1sim/src/ASN1/asn/per/common.hpp deleted file mode 100755 index 5b92100..0000000 --- a/e2sim/previous/e2apv1sim/src/ASN1/asn/per/common.hpp +++ /dev/null @@ -1,58 +0,0 @@ -#pragma once -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries -#include - -// Local Includes: Application specific classes, functions, and libraries -#include "asn/asn.hpp" -#include "type_defs.h" - -#include "asn/buffer.hpp" -#include "context.hpp" - -//#define ASN_DECODER_TRACE_ENABLE -//#define ASN_ENCODER_TRACE_ENABLE - -#ifdef ASN_DECODER_TRACE_ENABLE -#define ASN_DECODER_TRACE(FMT, ...) printf(FMT "\n", __VA_ARGS__) -#else -#define ASN_DECODER_TRACE(...) -#endif - -#ifdef ASN_ENCODER_TRACE_ENABLE -#define ASN_ENCODER_TRACE(FMT, ...) printf(FMT "\n", __VA_ARGS__) -#else -#define ASN_ENCODER_TRACE(...) -#endif - -namespace asn { -namespace per { - -struct Tools -{ - typedef bit_accessor_cross_byte bit_accessor; -}; - -template -struct Element; - -} //namespace per -} //namespace asn diff --git a/e2sim/previous/e2apv1sim/src/ASN1/asn/per/context.hpp b/e2sim/previous/e2apv1sim/src/ASN1/asn/per/context.hpp deleted file mode 100755 index 2a5d7e9..0000000 --- a/e2sim/previous/e2apv1sim/src/ASN1/asn/per/context.hpp +++ /dev/null @@ -1,154 +0,0 @@ -#pragma once -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries -#include - -// Local Includes: Application specific classes, functions, and libraries -#include "asn/utility.hpp" -#include "asn/buffer.hpp" -#include "asn/error_context.hpp" - -namespace asn { -namespace per { - -/******************************************************************************** -EncoderCtx -*********************************************************************************/ -class EncoderCtx : boost::noncopyable -{ -public: - typedef buffer buf_type; - - EncoderCtx(u8* data, size_t size) - : m_buffer{ m_errCtx } - { - Reset(data, size); - } - - template - explicit EncoderCtx(u8(&buff)[SIZE]) - : EncoderCtx(buff, SIZE) - { - } - - explicit EncoderCtx() - : EncoderCtx(nullptr, 0) - { - } - - buf_type& refBuffer() { return m_buffer; } - error_context& refErrorCtx() { return m_errCtx; } - explicit operator bool() const { return static_cast(m_errCtx); } - - void Reset(void* data = nullptr, size_t size = 0) - { - m_buffer.reset(static_cast(data), size); - m_errCtx.reset(); - } - - //Name of the being processed IE - void ie_name(const char* name) { m_errCtx.ie_name(name); } - char const* ie_name() const { return m_errCtx.ie_name(); } - - void container_name(const char* name) { m_errCtx.container_name(name); } - char const* container_name() const { return m_errCtx.container_name(); } - -private: - template - friend struct Encode; - - error_context m_errCtx; - buf_type m_buffer; -}; - - -/******************************************************************************** -DecoderCtx -*********************************************************************************/ -class DecoderCtx : boost::noncopyable -{ -public: - typedef buffer buf_type; - typedef allocator alloc_type; - typedef u64 map_type; - - DecoderCtx(const void* data = nullptr, size_t size = 0, void* alloc_buffer = nullptr, size_t alloc_buffer_size = 0) - : m_buffer{ m_errCtx } - { - reset(data, size, alloc_buffer, alloc_buffer_size); - } - - buf_type& refBuffer() { return m_buffer; } - alloc_type& refAllocator() { return m_allocator; } - error_context& refErrorCtx() { return m_errCtx; } - explicit operator bool() const { return static_cast(m_errCtx); } - - void reset(const void* data = nullptr, size_t size = 0, void* alloc_buffer = nullptr, size_t alloc_buffer_size = 0) - { - m_allocator.reset(alloc_buffer, alloc_buffer_size); - m_buffer.reset(static_cast(data), size); - m_errCtx.reset(); - m_map = 0; - m_container = nullptr; - } - - bool map_elm() - { - //m_map = (m_map << 1) | (m_map >> (sizeof(m_map)*CHAR_BIT - 1)); - //return m_map & 1u; - - constexpr map_type mask = ((map_type)1) << (sizeof(map_type)*CHAR_BIT - 1); - - bool rv = m_map & mask; - m_map = m_map << 1; - - return rv; - } - - map_type set_map(map_type map) - { - map_type rval = m_map; - m_map = map; - return rval; - } - - map_type get_map() const {return m_map;} - - //Pointer to container (SEQ | CHO) - void* m_container{ nullptr }; - - //Name of the being processed IE - void ie_name(const char* name) { m_errCtx.ie_name(name); } - char const* ie_name() const { return m_errCtx.ie_name(); } - - void container_name(const char* name) { m_errCtx.container_name(name); } - char const* container_name() const { return m_errCtx.container_name(); } - -private: - //Optional or Extension elements' presence bitmap. Used in sequences - map_type m_map{ 0 }; - error_context m_errCtx; - buf_type m_buffer; - alloc_type m_allocator; -}; - -} //namespace per -} //namespace asn diff --git a/e2sim/previous/e2apv1sim/src/ASN1/asn/per/enumerated.hpp b/e2sim/previous/e2apv1sim/src/ASN1/asn/per/enumerated.hpp deleted file mode 100755 index c2e8851..0000000 --- a/e2sim/previous/e2apv1sim/src/ASN1/asn/per/enumerated.hpp +++ /dev/null @@ -1,79 +0,0 @@ -#pragma once -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries - -// Local Includes: Application specific classes, functions, and libraries -#include "asn/per/common.hpp" -#include "asn/per/whole_number.hpp" -#include "asn/per/binary_integer.hpp" - -namespace asn { -namespace per { - -template -struct Enumerated; - -template -struct Enumerated > -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - if (ie.get() > IE::constraint_t::upper_bound) - { - ctx.refErrorCtx().valueRangeError(static_cast(ie.get())); - return; - } - ConstrainedWholeNumber::run(ctx, ie.get()); - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - ie.set(ConstrainedWholeNumber::run(ctx)); - } -}; - -template -struct Enumerated > -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - if (ie.get() <= IE::constraint_t::upper_bound) - { - Tools::bit_accessor::put(0, 1, ctx.refBuffer()); - ConstrainedWholeNumber::run(ctx, ie.get()); - } - else - { - Tools::bit_accessor::put(1, 1, ctx.refBuffer()); - NormallySmallNonnegativeBinaryInteger::run(ie, ctx, ie.get() - IE::constraint_t::upper_bound - 1); - } - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - u8 ext = Tools::bit_accessor::get(1, ctx.refBuffer()); - if (ext) - ie.set(IE::constraint_t::upper_bound + 1 + NormallySmallNonnegativeBinaryInteger::run(ctx)); - else - ie.set(ConstrainedWholeNumber::run(ctx)); - } -}; - -} //namespace per -} //namespace asn diff --git a/e2sim/previous/e2apv1sim/src/ASN1/asn/per/integer.hpp b/e2sim/previous/e2apv1sim/src/ASN1/asn/per/integer.hpp deleted file mode 100755 index 7bb93c2..0000000 --- a/e2sim/previous/e2apv1sim/src/ASN1/asn/per/integer.hpp +++ /dev/null @@ -1,154 +0,0 @@ -#pragma once -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries - -// Local Includes: Application specific classes, functions, and libraries -#include "asn/elements.hpp" -#include "asn/per/common.hpp" -#include "asn/per/binary_integer.hpp" -#include "asn/per/whole_number.hpp" - -namespace asn { -namespace per { - -template -struct Integer; - -template -struct Integer > -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - if(IE::constraint_t::is_extended(ie.get())) - { - ctx.refErrorCtx().valueRangeError(static_cast(ie.get())); - return; - } - ConstrainedWholeNumber::run(ctx, ie.get()); - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - ie.set(ConstrainedWholeNumber::run(ctx)); - } -}; - -template -struct Integer > -{ - //X.691 12.1 - static void inline run(IE const& ie, EncoderCtx& ctx) - { - if (!IE::constraint_t::is_extended(ie.get())) - { - Tools::bit_accessor::put(0, 1, ctx.refBuffer()); - //X.691 12.2 - ConstrainedWholeNumber::run(ctx, ie.get()); - } - else - { - Tools::bit_accessor::put(1, 1, ctx.refBuffer()); - //X.691 12.2.4, 12.2.6, 10.8s - TwosComplementBinaryInteger::run(ie, ctx); - } - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - - u8 ext = Tools::bit_accessor::get(1, ctx.refBuffer()); - if (ext) - TwosComplementBinaryInteger::run(ie, ctx); - else - ie.set(ConstrainedWholeNumber::run(ctx)); - } -}; - -// (X.691 10.7) -template -struct Integer > -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - if(IE::constraint_t::is_extended(ie.get())) - { - ctx.refErrorCtx().valueRangeError(static_cast(ie.get())); - return; - } - NonnegativeBinaryInteger::run(ie.get() - IE::constraint_t::lower_bound, ctx); - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - typename IE::value_type val = 0; - NonnegativeBinaryInteger::run(val, ctx, false); - ie.set(IE::constraint_t::lower_bound + val); - } -}; - -template -struct Integer > -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - if (!IE::constraint_t::is_extended(ie.get())) - { - Tools::bit_accessor::put(0, 1, ctx.refBuffer()); - NonnegativeBinaryInteger::run(ie.get() - IE::constraint_t::lower_bound, ctx); - } - else - { - Tools::bit_accessor::put(1, 1, ctx.refBuffer()); - TwosComplementBinaryInteger::run(ie, ctx); - } - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - u8 ext = Tools::bit_accessor::get(1, ctx.refBuffer()); - - if (ext) - TwosComplementBinaryInteger::run(ie, ctx); - else - { - typename IE::value_type val = 0; - NonnegativeBinaryInteger::run(val, ctx, false); - ie.set(val + IE::constraint_t::lower_bound); - } - } -}; - -/*************************************************************************************** -* Encoding of an unconstrained whole number (X.691 10.8) -***************************************************************************************/ - -template -struct Integer > -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - TwosComplementBinaryInteger::run(ie, ctx); - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - TwosComplementBinaryInteger::run(ie, ctx); - } -}; - -} //namespace per -} //namespace asn - diff --git a/e2sim/previous/e2apv1sim/src/ASN1/asn/per/length.hpp b/e2sim/previous/e2apv1sim/src/ASN1/asn/per/length.hpp deleted file mode 100755 index 488a830..0000000 --- a/e2sim/previous/e2apv1sim/src/ASN1/asn/per/length.hpp +++ /dev/null @@ -1,238 +0,0 @@ -#pragma once -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries -#include - -// Local Includes: Application specific classes, functions, and libraries -#include "asn/per/common.hpp" -#include "asn/per/whole_number.hpp" - -namespace asn { -namespace per { - -/******************************************************************************** -* Encoding of a length determinant (X.691 10.9) -*********************************************************************************/ - -template -struct LengthDeterminant; - -struct LengthDeterminantDefault //Unconstrained length -{ - static u8 bytes_needed(size_t len) - { - if (len <= 127) - return 1; - return 2; - } - - static void run(EncoderCtx& ctx, size_t len) - { - if (len <= 127) - { - Tools::bit_accessor::padByte(ctx.refBuffer()); - ctx.refBuffer().putByte(static_cast(len)); - } - else if (len < 16384) - { - Tools::bit_accessor::padByte(ctx.refBuffer()); - len += 0x8000; - ctx.refBuffer().putByte(static_cast(len >> 8)); - ctx.refBuffer().putByte(static_cast(len)); - } - else - { - //todo: 10.9.3.8.1 for len >= 16K - } - } - static size_t run(DecoderCtx& ctx) - { - size_t rval = 0; - Tools::bit_accessor::padByte(ctx.refBuffer()); - - u8 const* data = ctx.refBuffer().getBytes(1); - if (data) - { - if (*data & 0x80) - { - rval = (*data & 0x7F) << 8; - data = ctx.refBuffer().getBytes(1); - if (data) - rval |= *data; - } - else - rval = *data; - } - return rval; - } -}; - -//10.9.3.3 -template -struct LengthDeterminant> -{ - static void run(EncoderCtx& ctx, size_t len) - { - ConstrainedWholeNumber::run(ctx, len); - } - static size_t inline run(DecoderCtx& ctx, bool extended_len) - { - return ConstrainedWholeNumber::run(ctx); - } -}; -template -struct LengthDeterminant> -{ - static void run(EncoderCtx& ctx, size_t len) - { - if (len > Range::upper_bound || len < Range::lower_bound) - LengthDeterminantDefault::run(ctx, len); - else - ConstrainedWholeNumber::run(ctx, len); - } - static size_t inline run(DecoderCtx& ctx, bool extended_len) - { - if (extended_len) - return LengthDeterminantDefault::run(ctx); - - return ConstrainedWholeNumber::run(ctx); - } -}; - -template -struct LengthDeterminant= 65536) > > -{ - static void run(EncoderCtx& ctx, size_t len) - { - LengthDeterminantDefault::run(ctx, len); - } - static size_t inline run(DecoderCtx& ctx, bool extended_len) - { - return LengthDeterminantDefault::run(ctx); - } -}; - -//10.9.3.4 : for "normally small length". bitmaps, sequence types -template -struct NormallySmallLength; - -template -struct NormallySmallLength > -{ - static_assert(Length > 0, "NormallySmallLength must be > 0"); - - static void run(EncoderCtx& ctx) - { - Tools::bit_accessor::put((u8)(Length - 1), 7, ctx.refBuffer()); - } - static size_t run(DecoderCtx& ctx) - { - u8 ext = Tools::bit_accessor::get(1, ctx.refBuffer()); - if (ext) - return LengthDeterminantDefault::run(ctx); - return Tools::bit_accessor::get(6, ctx.refBuffer()) + 1; - } -}; - -template -struct NormallySmallLength 64)> > -{ - static void run(EncoderCtx& ctx) - { - Tools::bit_accessor::put(1, 1, ctx.refBuffer()); - LengthDeterminantDefault::run(ctx, Length); - } -}; - -/* -* BinaryIntegerLength -*/ - -template -struct NBytes -{ - static constexpr bound_t value = std::log2( N ) / 8 + 1; -}; - -template -struct NBytes > -{ - static constexpr bound_t value = 1; -}; - -template -struct NRange -{ - static constexpr bound_t lower_bound = B1; - static constexpr bound_t upper_bound = B2; -}; - -template -struct NRange > -{ - static constexpr bound_t lower_bound = B2; - static constexpr bound_t upper_bound = B1; -}; - -template -struct BinaryIntegerLength -{ - typedef NRange< - NBytes::value, - NBytes::value - > nrange; - - using boundary_type = typename Range::boundary_type; - static constexpr bool extended = Range::extended; - static constexpr bound_t lower_bound = nrange::lower_bound; - static constexpr bound_t upper_bound = nrange::upper_bound; - - static void run(EncoderCtx& ctx, size_t len) - { - LengthDeterminant::run(ctx, len); - } - static size_t inline run(DecoderCtx& ctx, bool extended_len) - { - return LengthDeterminant::run(ctx, extended_len); - } -}; - -template -struct BinaryIntegerLength> -{ - static void run(EncoderCtx& ctx, size_t len) - { - LengthDeterminantDefault::run(ctx, len); - } - static size_t inline run(DecoderCtx& ctx, bool extended_len) - { - return LengthDeterminantDefault::run(ctx); - } -}; - -} //namespace per -} //namespace asn diff --git a/e2sim/previous/e2apv1sim/src/ASN1/asn/per/oid.hpp b/e2sim/previous/e2apv1sim/src/ASN1/asn/per/oid.hpp deleted file mode 100755 index c4f222a..0000000 --- a/e2sim/previous/e2apv1sim/src/ASN1/asn/per/oid.hpp +++ /dev/null @@ -1,68 +0,0 @@ -#pragma once -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries - -// Local Includes: Application specific classes, functions, and libraries -#include "asn/per/common.hpp" - -namespace asn { -namespace per { - -template -struct Oid -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - size_t len = ie.get().size(); - - if (len > 255) - { - ctx.refErrorCtx().valueError(len, 0, 0); - } - else - { - Tools::bit_accessor::padByte(ctx.refBuffer()); - ctx.refBuffer().putBytes(reinterpret_cast(&len), 1); - ctx.refBuffer().putBytes(ie.get().data(), len); - } - } - - static void inline run(IE& ie, DecoderCtx& ctx) - { - Tools::bit_accessor::padByte(ctx.refBuffer()); - - uint8_t const* data_in = ctx.refBuffer().getBytes(1); // length - - if(data_in) - { - size_t len = *data_in; - data_in = ctx.refBuffer().getBytes(len); - - if (data_in) - { - ie.set(len, data_in); - } - } - } -}; - -} //namespace per -} //namespace asn diff --git a/e2sim/previous/e2apv1sim/src/ASN1/asn/per/ostring.hpp b/e2sim/previous/e2apv1sim/src/ASN1/asn/per/ostring.hpp deleted file mode 100755 index 4d601bb..0000000 --- a/e2sim/previous/e2apv1sim/src/ASN1/asn/per/ostring.hpp +++ /dev/null @@ -1,209 +0,0 @@ -#pragma once -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries - -// Local Includes: Application specific classes, functions, and libraries -#include "asn/per/common.hpp" - -namespace asn { -namespace per { - -template < class IE, class Enable = void> -struct Octetstring; - -//16.8 Default -template -struct OctetstringNoExt -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - bound_t size = ie.get().size(); - LengthDeterminant::run(ctx, size); - Tools::bit_accessor::padByte(ctx.refBuffer()); - ctx.refBuffer().putBytes(ie.get().data(), size); - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - size_t len = LengthDeterminant::run(ctx, false); - Tools::bit_accessor::padByte(ctx.refBuffer()); - u8 const* data_in = ctx.refBuffer().getBytes(len); - - if (data_in) - { - ie.set(len, data_in); - } - - } -}; - -//16.5 Zero length -template -struct OctetstringNoExt > -{ - static void inline run(IE const& ie, EncoderCtx& ctx) {/* do nothing */ } - static void inline run(IE& ie, DecoderCtx& ctx) { ie.setpresent(true); } -}; - -//16.6 Up to two octets, fixed length -template -struct OctetstringNoExt> -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - Tools::bit_accessor::put(static_cast(ie.get().data()[0]), 8, ctx.refBuffer()); - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - u8 data_in = Tools::bit_accessor::get(8, ctx.refBuffer()); - u8* data_out = ctx.refAllocator().alloc_bytes(1); - if (data_out) { - data_out[0] = data_in; - ie.set(1, data_out); - } - else - ctx.refErrorCtx().allocatorNoMem(0, 1); - } -}; - -template -struct OctetstringNoExt> -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - Tools::bit_accessor::put(static_cast(ie.get().data()[0]), 8, ctx.refBuffer()); - Tools::bit_accessor::put(static_cast(ie.get().data()[1]), 8, ctx.refBuffer()); - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - u8 data_in[2]; - data_in[0] = Tools::bit_accessor::get(8, ctx.refBuffer()); - data_in[1] = Tools::bit_accessor::get(8, ctx.refBuffer()); - u8* data_out = ctx.refAllocator().alloc_bytes(sizeof(data_in)); - if (data_out) { - data_out[0] = data_in[0]; - data_out[1] = data_in[1]; - ie.set(sizeof(data_in), data_out); - } - else - ctx.refErrorCtx().allocatorNoMem(0, sizeof(data_in)); - } -}; - -//16.7 More than 2 octets, up to 64K, fixed length -template -struct OctetstringNoExt 2)) ->> -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - Tools::bit_accessor::padByte(ctx.refBuffer()); - ctx.refBuffer().putBytes(ie.get().data(), ie.get().size()); - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - Tools::bit_accessor::padByte(ctx.refBuffer()); - const size_t len = (size_t)IE::constraint_t::upper_bound; - u8 const* data_in = ctx.refBuffer().getBytes(len); - if (data_in) - { - ie.set(len, data_in); - } - } -}; - -/**************************************************/ - -//16.3 : Extension present -template -struct Octetstring > -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - bound_t size = ie.get().size(); - if (size <= IE::constraint_t::upper_bound && size >= IE::constraint_t::lower_bound) - { - Tools::bit_accessor::put(0, 1, ctx.refBuffer()); - OctetstringNoExt::run(ie, ctx); - } - else - { - Tools::bit_accessor::put(1, 1, ctx.refBuffer()); - Tools::bit_accessor::padByte(ctx.refBuffer()); - LengthDeterminant::run(ctx, size); - Tools::bit_accessor::padByte(ctx.refBuffer()); - ctx.refBuffer().putBytes(ie.get().data(), size); - } - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - u8 ext = Tools::bit_accessor::get(1, ctx.refBuffer()); - if (ext) - { - Tools::bit_accessor::padByte(ctx.refBuffer()); - size_t len = LengthDeterminant::run(ctx, true); - Tools::bit_accessor::padByte(ctx.refBuffer()); - u8 const* data_in = ctx.refBuffer().getBytes(len); - if (data_in) - { - ie.set(len, data_in); - } - } - else - OctetstringNoExt::run(ie, ctx); - } -}; - -//16.4 : No extension -template -struct Octetstring > -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - if ( ie.get().size() > size_t(IE::constraint_t::upper_bound) || - (IE::constraint_t::lower_bound >= 0 && ie.get().size() < size_t(IE::constraint_t::lower_bound))) - { - ctx.refErrorCtx().sizeRangeError(ie.get().size(), size_t(IE::constraint_t::lower_bound), - size_t(IE::constraint_t::upper_bound)); - } - else - { - OctetstringNoExt::run(ie, ctx); - } - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - OctetstringNoExt::run(ie, ctx); - if ( ie.get().size() > size_t(IE::constraint_t::upper_bound) || - (IE::constraint_t::lower_bound >= 0 && ie.get().size() < size_t(IE::constraint_t::lower_bound))) - { - ctx.refErrorCtx().sizeRangeError(ie.get().size(), size_t(IE::constraint_t::lower_bound), - size_t(IE::constraint_t::upper_bound)); - } - } -}; - -} //namespace per -} //namespace asn diff --git a/e2sim/previous/e2apv1sim/src/ASN1/asn/per/sequence.hpp b/e2sim/previous/e2apv1sim/src/ASN1/asn/per/sequence.hpp deleted file mode 100755 index e533e80..0000000 --- a/e2sim/previous/e2apv1sim/src/ASN1/asn/per/sequence.hpp +++ /dev/null @@ -1,568 +0,0 @@ -#pragma once -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries - -// Local Includes: Application specific classes, functions, and libraries -#include "asn/per/common.hpp" -#include "asn/per/visitor.hpp" - -namespace asn { -namespace per { - -/****************************************************************** - * Adapter - *****************************************************************/ -template -struct Adapter -{ - static void inline run(IE const& ie, EncoderCtx& ctx, Container const& cont) - { - Element::run(ie, ctx); - } - - static void inline run(IE& ie, DecoderCtx& ctx, Container const& cont) - { - Element::run(ie, ctx); - } -}; -template -struct Adapter> -{ - static void inline run(IE const& ie, EncoderCtx& ctx, Container const& cont) - { - VisitorEncoder v(ctx); - bool rv = ie.encode(v, cont); - if(!rv && static_cast(ctx)) - { - ctx.refErrorCtx().errorNoObject(Container::name()); - } - } - - static void inline run(IE& ie, DecoderCtx& ctx, Container const& cont) - { - VisitorDecoder v(ctx); - bool rv = ie.decode(v, cont); - if(!rv && static_cast(ctx)) - { - ctx.refErrorCtx().errorNoObject(Container::name()); - } - } -}; -template -struct Adapter > -{ - static void inline run(IE const& ie, EncoderCtx& ctx, Container const& cont) - { - OpenTypeVisitorEncoder v(ctx); - bool rv = ie.encode(v, cont); - if(!rv && static_cast(ctx)) - { - ctx.refErrorCtx().errorNoObject(Container::name()); - } - } - - static void inline run(IE& ie, DecoderCtx& ctx, Container const& cont) - { - OpenTypeVisitorDecoder v(ctx); - bool rv = ie.decode(v, cont); - if(!rv && static_cast(ctx)) - { - ctx.refErrorCtx().errorNoObject(Container::name()); - } - if(ie.is_unknown()) //skip the unknown Open Type - { - size_t size = LengthDeterminantDefault::run(ctx); - DecoderCtx::buf_type& buffer = ctx.refBuffer(); - if (buffer.getBytesLeft() < size) - ctx.refErrorCtx().lengthErrorBytes(buffer.getBytesLeft(), size); - else - buffer.advance(size); - } - } -}; - -/****************************************************************** - * RootEncoder - *****************************************************************/ -template -struct RootEncoder -{ - RootEncoder(EncoderCtx& ctx, Container const& cont) : m_ctx(ctx), m_cont(cont) {} - - template - bool operator() (IE const& ie) const - { - if(!IE::extension) - { - if(IE::optional && !ie.is_valid()) - return static_cast(m_ctx); - Adapter::run(ie, m_ctx, m_cont); - } - return static_cast(m_ctx); - } - EncoderCtx& m_ctx; - Container const& m_cont; -}; - -/****************************************************************** - * RootDecoder - *****************************************************************/ -template -struct RootDecoder -{ - RootDecoder(DecoderCtx& ctx, Container const& cont) : m_ctx(ctx), m_cont(cont) {} - - template - bool operator() (IE& ie) const - { - if(!IE::extension) - { - if(IE::optional) - { - if(m_ctx.map_elm()) - { - ie.setpresent(true); - Adapter::run(ie, m_ctx, m_cont); - } - else - ie.setpresent(false); - } - else - { - Adapter::run(ie, m_ctx, m_cont); - } - } - return static_cast(m_ctx); - } - DecoderCtx& m_ctx; - Container const& m_cont; -}; - -/****************************************************************** - * ExtEncoder - *****************************************************************/ -template -struct ExtEncoder -{ - explicit ExtEncoder(EncoderCtx& ctx, Container const& cont) : m_ctx(ctx), m_cont(cont) {} - - template - bool operator() (IE const& ie) const - { - if(!IE::extension) - return static_cast(m_ctx); - - if(IE::optional && !ie.is_valid()) - return static_cast(m_ctx); - - size_t reserved_size = 1; //1 byte length is most likely - Tools::bit_accessor::padByte(m_ctx.refBuffer()); - - if (m_ctx.refBuffer().getBytesLeft()) - { - EncoderCtx::buf_type::pointer p = m_ctx.refBuffer().advance(reserved_size); - EncoderCtx::buf_type::pointer start = p + reserved_size; - - Adapter::run(ie, m_ctx, m_cont); - - if (m_ctx) - { - Tools::bit_accessor::padByte(m_ctx.refBuffer()); - EncoderCtx::buf_type::pointer p_new = m_ctx.refBuffer().begin(); - size_t size = p_new - start; - size_t needed = LengthDeterminantDefault::bytes_needed(size) - reserved_size; - if (needed) //1 byte is not enough for the length determinant. it is hardly possible - { - if (m_ctx.refBuffer().getBytesLeft() < needed) { - m_ctx.refErrorCtx().lengthErrorBytes(m_ctx.refBuffer().getBytesLeft(), needed); - return false; - } - memmove(start + needed, start, size); - p_new += needed; - } - m_ctx.refBuffer().set_begin(p, 0); - LengthDeterminantDefault::run(m_ctx, size); - if (m_ctx) { - m_ctx.refBuffer().set_begin(p_new, 0); - Tools::bit_accessor::padByte(m_ctx.refBuffer()); - } - } - } - else - { - m_ctx.refErrorCtx().lengthErrorBytes(m_ctx.refBuffer().getBytesLeft(), reserved_size); - return false; - } - return static_cast(m_ctx); - } - EncoderCtx& m_ctx; - Container const& m_cont; -}; - -/****************************************************************** - * ExtDecoder - *****************************************************************/ -template -struct ExtDecoder -{ - explicit ExtDecoder(DecoderCtx& ctx, Container const& cont) : m_ctx(ctx), m_cont(cont) {} - - template - bool operator() (IE& ie) const - { - if(!IE::extension) - return static_cast(m_ctx); - - if (m_ctx.map_elm()) - { - ie.setpresent(true); - size_t size = LengthDeterminantDefault::run(m_ctx); - DecoderCtx::buf_type& buffer = m_ctx.refBuffer(); - if (buffer.getBytesLeft() < size) - { - m_ctx.refErrorCtx().lengthErrorBytes(buffer.getBytesLeft(), size); - return false; - } - DecoderCtx::buf_type::pointer end = buffer.end(); - buffer.set_end(buffer.begin() + size); - Adapter::run(ie, m_ctx, m_cont); - Tools::bit_accessor::padByte(m_ctx.refBuffer()); - buffer.set_end(end); - } - else - { - ie.setpresent(false); - } - - return static_cast(m_ctx); - } - DecoderCtx& m_ctx; - Container const& m_cont; -}; - -/****************************************************************** - * SeqMap - *****************************************************************/ -template -struct SeqMap; - -/* -template -struct SeqMap 8) > > -{ - static void inline run(EncoderCtx& ctx, size_t val) - { - u8 k = IE::num_opt_entries / 8; // num of full bytes in a seq map mask - u8 fb_bits = IE::num_opt_entries % 8; // num of first byte bits (without padding) - - if (fb_bits) { - // Put a part of a first byte (without padding, only seq map own bits) - Tools::bit_accessor::put((u8)(val >> 8*k), fb_bits, ctx.refBuffer()); - } - - // Put other bytes (full bytes) - for (int i = (k-1); i >= 0; i--) { - Tools::bit_accessor::put((u8)(val >> 8*i), 8, ctx.refBuffer()); - } - } - - static DecoderCtx::map_type inline run(DecoderCtx& ctx) - { - uint num_opts = IE::num_opt_entries; - u64 res = 0; - u8 k = 1; - u8 lb_bits = IE::num_opt_entries % 8; // num of last byte bits (without padding) - - while (num_opts >= 8) { - size_t shift = sizeof(DecoderCtx::map_type) * CHAR_BIT - 8*k; - - DecoderCtx::map_type rval = Tools::bit_accessor::get(8, ctx.refBuffer()); - - rval = rval << shift; - res |= rval; - - k++; - num_opts -= 8; - } - - if (lb_bits > 0) { - // (8 - lb_bits) - padding in a last byte - size_t shift = sizeof(DecoderCtx::map_type) * CHAR_BIT - 8*k + 8 - lb_bits; - - DecoderCtx::map_type rval = Tools::bit_accessor::get(lb_bits, ctx.refBuffer()); - - rval = rval << shift; - res |= rval; - } - - return res; - } -} -; -*/ - -template -struct SeqMap > //todo: to add code for more than 8 optional elements -{ - static void inline run(EncoderCtx& ctx, size_t val) - { - Tools::bit_accessor::put((u8)val, IE::num_opt_entries, ctx.refBuffer()); - } - static DecoderCtx::map_type inline run(DecoderCtx& ctx) - { - size_t shift = sizeof(DecoderCtx::map_type) * CHAR_BIT - IE::num_opt_entries; - DecoderCtx::map_type rval = Tools::bit_accessor::get(IE::num_opt_entries, ctx.refBuffer()); - rval = rval << shift; - return rval; - } -}; - -/****************************************************************** - * SeqExtMap - *****************************************************************/ -template -struct SeqExtMap -{ - static void inline run(EncoderCtx& ctx, size_t val) {} - static DecoderCtx::map_type inline run(DecoderCtx& ctx) - { - size_t len = NormallySmallLength<1>::run(ctx); - size_t shift = sizeof(DecoderCtx::map_type) * CHAR_BIT - len; - u8 tmp; - DecoderCtx::map_type rval{ 0 }; - u8 val; - - while (len) { - tmp = len > 8 ? 8 : (u8)len; - val = Tools::bit_accessor::get(tmp, ctx.refBuffer()); - rval = rval << tmp; - rval |= val; - len -= tmp; - } - rval = rval << shift; - return rval; - } -}; - -template -struct SeqExtMap 0)) > > -{ - static void inline run(EncoderCtx& ctx, size_t val) - { - NormallySmallLength::run(ctx); - Tools::bit_accessor::put((u8)val, NumExtEntries, ctx.refBuffer()); - } -}; - -template -struct SeqExtMap 8) > > -{ - static void inline run(EncoderCtx& ctx, size_t val) - { - NormallySmallLength::run(ctx); - - size_t len = NumExtEntries; - size_t tmp; - - while (len) { - tmp = len > 8 ? 8 : len; - Tools::bit_accessor::put((u8)val, tmp, ctx.refBuffer()); - val = val >> tmp; - len -= tmp; - } - } -}; - -/****************************************************************** - * SeqMapBuilder - *****************************************************************/ -struct SeqMapBuilder -{ - SeqMapBuilder(uint64_t& map) : m_map(map) {} - - template - bool operator()(IE const& ie) - { - if(!IE::extension && IE::optional) - { - m_map = m_map << 1; - if(ie.is_valid()) - m_map |= 1; - } - return true; - } - uint64_t& m_map; -}; - -/****************************************************************** - * SeqExtMapBuilder - *****************************************************************/ -struct SeqExtMapBuilder -{ - SeqExtMapBuilder(uint64_t& map) : m_map(map) {} - - template - bool operator()(IE const& ie) - { - if(IE::extension) - { - m_map = m_map << 1; - if(!IE::optional || (IE::optional && ie.is_valid())) - m_map |= 1; - } - return true; - } - uint64_t& m_map; -}; - -/****************************************************************** - * SeqNoExtDefault - *****************************************************************/ -// Default (No OPT/DEF present within the extension root) -template -struct SeqNoExtDefault -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - RootEncoder ve(ctx, ie); - ie.encode(ve); - } - static void inline run(IE& ie, DecoderCtx& ctx, DecoderCtx::map_type map = 0) - { - RootDecoder ve(ctx, ie); - - DecoderCtx::map_type old_map = ctx.set_map(map); - ie.decode(ve); - ctx.set_map(old_map); - } -}; - -/****************************************************************** - * SeqNoExt - *****************************************************************/ -// Default (No OPT/DEF present within the extension root) -template -struct SeqNoExt -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - SeqNoExtDefault::run(ie, ctx); - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - SeqNoExtDefault::run(ie, ctx); - } -}; - -//18.2 OPT/DEF present within the extension root -template -struct SeqNoExt 0) > > -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - uint64_t map = 0; - SeqMapBuilder mb(map); - ie.encode(mb); - SeqMap::run(ctx, map); - SeqNoExtDefault::run(ie, ctx); - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - SeqNoExtDefault::run(ie, ctx, SeqMap::run(ctx)); - } -}; - -/****************************************************************** - * Seq - *****************************************************************/ -template -struct Seq; - -template -struct Seq > -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - uint64_t map = 0; - SeqExtMapBuilder emb(map); - ie.encode(emb); - - if (map) { - Tools::bit_accessor::put(1, 1, ctx.refBuffer()); - SeqNoExt::run(ie, ctx); - SeqExtMap::run(ctx, map); - ExtEncoder ove(ctx, ie); - ie.encode(ove); - } - else { - Tools::bit_accessor::put(0, 1, ctx.refBuffer()); - SeqNoExt::run(ie, ctx); - } - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - u8 ext = Tools::bit_accessor::get(1, ctx.refBuffer()); - if (ext) - { - SeqNoExt::run(ie, ctx); - - auto old_map = ctx.set_map(SeqExtMap::run(ctx)); // we do not know how many exts can be received - { - ExtDecoder ove(ctx, ie); - ie.decode(ove); - - auto& buffer = ctx.refBuffer(); - while(ctx.get_map()) - { - if(ctx.map_elm()) //skip unknown extensions - { - size_t size = LengthDeterminantDefault::run(ctx); - if (buffer.getBytesLeft() < size) - { - ctx.refErrorCtx().lengthErrorBytes(buffer.getBytesLeft(), size); - break; - } - buffer.advance(size); - } - } - } - ctx.set_map(old_map); - } - else - SeqNoExt::run(ie, ctx); - } -}; - -template -struct Seq > -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - SeqNoExt::run(ie, ctx); - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - SeqNoExt::run(ie, ctx); - } -}; - -} //namespace per -} //namespace asn diff --git a/e2sim/previous/e2apv1sim/src/ASN1/asn/per/sequence_of.hpp b/e2sim/previous/e2apv1sim/src/ASN1/asn/per/sequence_of.hpp deleted file mode 100755 index d4e21a9..0000000 --- a/e2sim/previous/e2apv1sim/src/ASN1/asn/per/sequence_of.hpp +++ /dev/null @@ -1,156 +0,0 @@ -#pragma once -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries - -// Local Includes: Application specific classes, functions, and libraries -#include "asn/per/common.hpp" - -namespace asn { -namespace per { - -template -struct SequenceOf; - -//19.6 Default -template -struct SequenceOfNoExt -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - LengthDeterminant::run(ctx, ie.size()); - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - size_t len = LengthDeterminant::run(ctx, false); - for (size_t i = 0; i < len; ++i) - { - u8* data = ctx.refAllocator().alloc_bytes(sizeof(typename IE::value_type)); - if (data) - { - typename IE::value_type * v = new (data) typename IE::value_type; - v->clear(); - ie.push_back(*v); - } - else - { - ctx.refErrorCtx().allocatorNoMem(0, sizeof(typename IE::value_type)); - break; - } - } - } -}; - -//16.6 -template -struct SequenceOfNoExt> -{ - static void inline run(IE const& ie, EncoderCtx& ctx) {/*do nothing*/ } - static void inline run(IE& ie, DecoderCtx& ctx) - { - for (size_t i = 0; i < IE::constraint_t::upper_bound; ++i) - { - u8* data = ctx.refAllocator().alloc_bytes(sizeof(typename IE::value_type)); - if (data) - { - typename IE::value_type * v = new (data) typename IE::value_type; - v->clear(); - ie.push_back(*v); - } - else - { - ctx.refErrorCtx().allocatorNoMem(0, sizeof(typename IE::value_type)); - break; - } - } - } -}; - -/**************************************************/ - -//19.4 Extension present -template -struct SequenceOf > -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - if (ie.size() <= IE::constraint_t::upper_bound && ie.size() >= IE::constraint_t::lower_bound) - { - Tools::bit_accessor::put(0, 1, ctx.refBuffer()); - SequenceOfNoExt::run(ie, ctx); - } - else - { - Tools::bit_accessor::put(1, 1, ctx.refBuffer()); - LengthDeterminant::run(ctx, ie.size()); - } - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - u8 ext = Tools::bit_accessor::get(1, ctx.refBuffer()); - if (ext) - { - size_t len = LengthDeterminant::run(ctx, true); - for (size_t i = 0; i < len; ++i) - { - u8* data = ctx.refAllocator().alloc_bytes(sizeof(typename IE::value_type)); - if (data) - { - typename IE::value_type * v = new (data) typename IE::value_type; - //v->clear(); - ie.push_back(*v); - } - else - { - ctx.refErrorCtx().allocatorNoMem(0, sizeof(typename IE::value_type)); - break; - } - } - } - else - SequenceOfNoExt::run(ie, ctx); - } -}; - -//19.5-6 No extension -template -struct SequenceOf > -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - if (IE::constraint_t::lower_bound >= 0 && ie.size() < size_t(IE::constraint_t::lower_bound)) - { - ctx.refErrorCtx().sizeRangeError(ie.size(), size_t(IE::constraint_t::lower_bound)); - } - else - { - SequenceOfNoExt::run(ie, ctx); - } - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - SequenceOfNoExt::run(ie, ctx); - } -}; - -} //namespace per -} //namespace asn diff --git a/e2sim/previous/e2apv1sim/src/ASN1/asn/per/visitor.hpp b/e2sim/previous/e2apv1sim/src/ASN1/asn/per/visitor.hpp deleted file mode 100755 index f379044..0000000 --- a/e2sim/previous/e2apv1sim/src/ASN1/asn/per/visitor.hpp +++ /dev/null @@ -1,141 +0,0 @@ -#pragma once -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries - -// Local Includes: Application specific classes, functions, and libraries -#include "asn/per/common.hpp" - -namespace asn { -namespace per { - -/******************************************************************************** -VisitorEncoder -*********************************************************************************/ -struct VisitorEncoder -{ - explicit VisitorEncoder(EncoderCtx& ctx) : m_ctx(ctx) {} - - template - bool operator() (IE const& ie) const - { - Element::run(ie, m_ctx); - return static_cast(m_ctx); - } - EncoderCtx& m_ctx; -}; - -/******************************************************************************** -VisitorDecoder -*********************************************************************************/ -struct VisitorDecoder -{ - VisitorDecoder(DecoderCtx& ctx) : m_ctx(ctx) {} - - template - bool operator() (IE& ie) const - { - Element::run(ie, m_ctx); - return static_cast(m_ctx); - } - DecoderCtx& m_ctx; -}; - -/*************************************************************************************** -* Open Type Visitor // Encode Open Type (10.2) -***************************************************************************************/ -struct OpenTypeVisitorEncoder -{ - explicit OpenTypeVisitorEncoder(EncoderCtx& ctx) : m_ctx(ctx) {} - - template - bool operator() (IE const& ie) const - { - size_t reserved_size = 1; //1 byte length is most likely - Tools::bit_accessor::padByte(m_ctx.refBuffer()); - - if (m_ctx.refBuffer().getBytesLeft()) - { - EncoderCtx::buf_type::pointer p = m_ctx.refBuffer().advance(reserved_size); - EncoderCtx::buf_type::pointer start = p + reserved_size; - - Element::run(ie, m_ctx); - - if (m_ctx) - { - Tools::bit_accessor::padByte(m_ctx.refBuffer()); - EncoderCtx::buf_type::pointer p_new = m_ctx.refBuffer().begin(); - size_t size = p_new - start; - size_t needed = LengthDeterminantDefault::bytes_needed(size) - reserved_size; - if (needed) //1 byte is not enough for the length determinant. it is hardly possible - { - if (m_ctx.refBuffer().getBytesLeft() < needed) { - m_ctx.refErrorCtx().lengthErrorBytes(m_ctx.refBuffer().getBytesLeft(), needed); - return false; - } - memmove(start + needed, start, size); - p_new += needed; - } - m_ctx.refBuffer().set_begin(p, 0); - LengthDeterminantDefault::run(m_ctx, size); - if (m_ctx) { - m_ctx.refBuffer().set_begin(p_new, 0); - Tools::bit_accessor::padByte(m_ctx.refBuffer()); - } - } - } - else - { - m_ctx.refErrorCtx().lengthErrorBytes(m_ctx.refBuffer().getBytesLeft(), reserved_size); - } - return static_cast(m_ctx); - } - EncoderCtx& m_ctx; -}; - -/*************************************************************************************** -* Open Type Visitor // Decode Open Type (10.2) -***************************************************************************************/ -struct OpenTypeVisitorDecoder -{ - explicit OpenTypeVisitorDecoder(DecoderCtx& ctx) : m_ctx(ctx) {} - - template - bool operator() (IE& ie) const - { - size_t size = LengthDeterminantDefault::run(m_ctx); - DecoderCtx::buf_type& buffer = m_ctx.refBuffer(); - if (buffer.getBytesLeft() < size) - { - m_ctx.refErrorCtx().lengthErrorBytes(buffer.getBytesLeft(), size); - return false; - } - DecoderCtx::buf_type::pointer end = buffer.end(); - buffer.set_end(buffer.begin() + size); - Element::run(ie, m_ctx); - buffer.set_end(end); - - return static_cast(m_ctx); - } - DecoderCtx& m_ctx; -}; - -} //namespace per -} //namespace asn diff --git a/e2sim/previous/e2apv1sim/src/ASN1/asn/per/whole_number.hpp b/e2sim/previous/e2apv1sim/src/ASN1/asn/per/whole_number.hpp deleted file mode 100755 index c614998..0000000 --- a/e2sim/previous/e2apv1sim/src/ASN1/asn/per/whole_number.hpp +++ /dev/null @@ -1,147 +0,0 @@ -#pragma once -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries -#include -#include - -// Local Includes: Application specific classes, functions, and libraries -#include "asn/per/common.hpp" -#include "asn/per/binary_integer.hpp" - -namespace asn { -namespace per { - -/*************************************************************************************** -* Encoding of a constrained whole number (X.691 10.5) -***************************************************************************************/ - -template -struct length_determinant; - -template -struct length_determinant > { static constexpr bound_t value = 0; }; - -template -struct length_determinant > { static constexpr bound_t value = 1; }; - -template -struct length_determinant 1) > > { static constexpr bound_t value = boost::static_log2<(R - 1)>::value + 1; }; - -/*************************************************************************************** -***************************************************************************************/ - -template -struct ConstrainedWholeNumber; - -//Bit-field case -template -struct ConstrainedWholeNumber > -{ - //non-negative-binary-integer X.691 10.5 - static void inline run(EncoderCtx& ctx, const V& val) - { - Tools::bit_accessor::put(static_cast(val - Range::lower_bound), - length_determinant<(Range::upper_bound - Range::lower_bound + 1)>::value, - ctx.refBuffer()); - } - static V inline run(DecoderCtx& ctx) - { - return Range::lower_bound + Tools::bit_accessor::get( - length_determinant<(Range::upper_bound - Range::lower_bound + 1)>::value, - ctx.refBuffer()); - } -}; - -//One octet case -template -struct ConstrainedWholeNumber > -{ - //non-negative-binary-integer X.691 10.5 - static void inline run(EncoderCtx& ctx, const V& val) - { - Tools::bit_accessor::padByte(ctx.refBuffer()); - ctx.refBuffer().putByte(static_cast(val - Range::lower_bound)); - } - static V inline run(DecoderCtx& ctx) - { - V rval = 0; - Tools::bit_accessor::padByte(ctx.refBuffer()); - u8 const* data = ctx.refBuffer().getBytes(1); - if (data) - rval = Range::lower_bound + data[0]; - return rval; - } -}; - -//Two octets case -template -struct ConstrainedWholeNumber (Range::lower_bound + 255)) && (Range::upper_bound <= (Range::lower_bound + 65535))> > -{ - //non-negative-binary-integer X.691 10.5 - static void inline run(EncoderCtx& ctx, const V& v) - { - u64 val = static_cast(v - Range::lower_bound); - Tools::bit_accessor::padByte(ctx.refBuffer()); - ctx.refBuffer().putByte((u8)(val >> 8)); - ctx.refBuffer().putByte((u8)val); - } - static V inline run(DecoderCtx& ctx) - { - V rval = 0; - Tools::bit_accessor::padByte(ctx.refBuffer()); - u8 const* data = ctx.refBuffer().getBytes(2); - if (data) { - rval = data[0]; - rval = rval << 8; - rval |= data[1]; - rval += Range::lower_bound; - } - return rval; - } -}; - -//Indefinite case -template -struct ConstrainedWholeNumber Range::lower_bound + 65535) > > -{ - struct NormalizedValueRange - { - using boundary_type = typename Range::boundary_type; - static constexpr bool extended = Range::extended; - static constexpr boundary_type lower_bound = 0; - static constexpr boundary_type upper_bound = Range::upper_bound - Range::lower_bound; - }; - - //non-negative-binary-integer X.691 10.5 - static void inline run(EncoderCtx& ctx, const V& val) - { - NonnegativeBinaryInteger::run(val - Range::lower_bound, ctx); - } - static V inline run(DecoderCtx& ctx) - { - V rval = 0; - NonnegativeBinaryInteger::run(rval, ctx, false); - return rval + Range::lower_bound; - } -}; - -} //namespace per -} //namespace asn diff --git a/e2sim/previous/e2apv1sim/src/ASN1/asn/printer.hpp b/e2sim/previous/e2apv1sim/src/ASN1/asn/printer.hpp deleted file mode 100755 index b21eaef..0000000 --- a/e2sim/previous/e2apv1sim/src/ASN1/asn/printer.hpp +++ /dev/null @@ -1,338 +0,0 @@ -#pragma once - -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries -#include -#include - -// Local Includes: Application specific classes, functions, and libraries -#include "asn/elements.hpp" - -namespace asn{ - -/******************************************************************************** -Utility -**********************************S***********************************************/ -inline void skip_row(std::ostream* str, size_t row_shift) - //{*str << std::string(row_shift, ' ');} -{ - std::string s(row_shift, ' '); - str->write(s.data(), s.size()); -} - -inline void print_hex(std::ostream* str, size_t size, const uint8_t* data, size_t row_shift) -{ - *str << std::setfill('0') << std::hex << std::noshowbase; - for (size_t i = 0; i < size; ++i) - { - if (i && (0x00 == (i & 0x0f))) { skip_row(str, row_shift); } - *str << std::setw(2) << (int)data[i] << " "; - if (0x0f == (i & 0x0f)) { *str << '\n'; } - } -} - -/******************************************************************************** - -Print - -*********************************************************************************/ - - -/******************************************************************************** -default implementation for IE -*********************************************************************************/ -template -struct Print; - -template -void print(IE const& ie, std::ostream& out, size_t row_shift) -{ - Print::run(ie, &out, row_shift); -} - -template -std::string get_printed(IE const& ie, size_t row_shift = 0) -{ - std::stringstream out; - print(ie, out, row_shift); - return out.str(); -} - - -/******************************************************************************** -VisitorPrinter -*********************************************************************************/ -struct VisitorPrinter -{ - VisitorPrinter(std::ostream* str, size_t row_shift) : m_pStream(str), m_RowShift(row_shift) {} - - template - bool operator() (IE & ie) - { - Print::run(ie, m_pStream, m_RowShift); - return true; - } - - std::ostream* m_pStream; - size_t m_RowShift; -}; - -/****************************************************************** - * PrinterAdapter - *****************************************************************/ -template -struct PrinterAdapter -{ - static void inline run(IE const& ie, std::ostream* str, size_t row_shift, Container const& cont) - { - Print::run(ie, str, row_shift); - } -}; -template -struct PrinterAdapter> -{ - static void inline run(IE const& ie, std::ostream* str, size_t row_shift, Container const& cont) - { - VisitorPrinter vp(str, row_shift); - ie.encode(vp, cont); - } -}; -template -struct PrinterAdapter > -{ - static void inline run(IE const& ie, std::ostream* str, size_t row_shift, Container const& cont) - { - VisitorPrinter vp(str, row_shift); - ie.encode(vp, cont); - } -}; - -/******************************************************************************** -SeqVisitorPrinter -*********************************************************************************/ -template -struct SeqVisitorPrinter -{ - SeqVisitorPrinter(Container const& cont, std::ostream* str, size_t row_shift) : m_pStream(str), m_RowShift(row_shift), m_cont(cont) {} - - template - bool operator() (IE & ie) - { - if(!IE::optional || ie.is_valid()) - PrinterAdapter::run(ie, m_pStream, m_RowShift, m_cont); - return true; - } - - std::ostream* m_pStream; - size_t m_RowShift; - Container const& m_cont; -}; - - -/******************************************************************************** -T_NULL -*********************************************************************************/ - -template -struct Print -{ - static void inline run(IE const& ie, std::ostream* str, size_t row_shift) - { - skip_row(str, row_shift); - *str << IE::name() << std::endl; - } -}; - -/******************************************************************************** -T_BOOLEAN -*********************************************************************************/ -template -struct Print -{ - static void inline run(IE const& ie, std::ostream* str, size_t row_shift) - { - skip_row(str, row_shift); - *str << IE::name() << " = " << (ie.get() ? "true" : "false")<< std::endl; - } -}; - -/******************************************************************************** -T_INTEGER -*********************************************************************************/ -template -struct Print -{ - static void inline run(IE const& ie, std::ostream* str, size_t row_shift) - { - skip_row(str, row_shift); - *str << IE::name() << " = " << std::hex << std::showbase << (size_t)ie.get() << std::endl; - } -}; - -/******************************************************************************** -T_ENUMERATED -*********************************************************************************/ -template -struct Print -{ - static void inline run(IE const& ie, std::ostream* str, size_t row_shift) - { - skip_row(str, row_shift); - *str << IE::name() << " = " << std::hex << std::showbase << (size_t)ie.get() << std::endl; - } -}; - -/******************************************************************************** -T_BITSTRING -*********************************************************************************/ -template -struct Print -{ - static void inline run(IE const& ie, std::ostream* str, size_t row_shift) - { - skip_row(str, row_shift); - auto& val = ie.get_buffer(); - *str << IE::name() << " = "; - - print_hex(str, val.size() - 1, val.data(), row_shift + strlen(IE::name()) + 3); - - size_t i = val.size() - 1; - uint8_t c = val.data()[i]; - uint8_t b = val.bitqty() % 8; - if (b != 0) c = c << (8 - b); - - if (i && (0x00 == (i & 0x0f))) { skip_row(str, row_shift); } - *str << std::setw(2) << (int)c; - - *str << " (" << std::dec << val.bitqty() << " bits)" << std::endl; - - } -}; - -/******************************************************************************** -T_OCTETSTRING -*********************************************************************************/ -template -struct Print -{ - static void inline run(IE const& ie, std::ostream* str, size_t row_shift) - { - skip_row(str, row_shift); - *str << IE::name() << " = "; - auto & val = ie.get(); - print_hex(str, val.size(), val.data(), row_shift + strlen(IE::name()) + 3); - *str << std::endl; - } -}; - -/******************************************************************************** -T_SEQUENCE -*********************************************************************************/ -template -struct Print -{ - static void inline run(IE const& ie, std::ostream* str, size_t row_shift) - { - skip_row(str, row_shift); - *str << IE::name() << std::endl; - SeqVisitorPrinter vp(ie, str, row_shift + 1); - ie.encode(vp); - } -}; - -/******************************************************************************** -T_SET -*********************************************************************************/ -template -struct Print -{ - static void inline run(IE const& ie, std::ostream* str, size_t row_shift) - { - skip_row(str, row_shift); - *str << IE::name() << std::endl; - SeqVisitorPrinter vp(ie, str, row_shift + 1); - ie.encode(vp); - } -}; - - -/******************************************************************************** -T_CHOICE -*********************************************************************************/ -template -struct Print -{ - static void inline run(IE const& ie, std::ostream* str, size_t row_shift) - { - VisitorPrinter vp(str, row_shift+1); - skip_row(str, row_shift); *str << IE::name() << ":\n"; - ie.encode(vp); - } -}; - -/******************************************************************************** -T_SEQUENCE_OF -*********************************************************************************/ -template -struct Print -{ - static void inline run(IE const& ie, std::ostream* str, size_t row_shift) - { - skip_row(str, row_shift); *str << IE::name() << ":\n"; - ++row_shift; - for (auto& elem : ie) - { - Print::run(elem, str, row_shift); - } - } -}; - -/******************************************************************************** -T_SET_OF -*********************************************************************************/ -template -struct Print -{ - static void inline run(IE const& ie, std::ostream* str, size_t row_shift) - { - skip_row(str, row_shift); *str << IE::name() << ":\n"; - ++row_shift; - for (auto& elem : ie) - { - Print::run(elem, str, row_shift); - } - } -}; - -/******************************************************************************** -T_OBJECTIDENTIFIER -*********************************************************************************/ -template -struct Print -{ - static void inline run(IE const& ie, std::ostream* str, size_t row_shift) - { - skip_row(str, row_shift); - *str << IE::name() << std::endl; - } -}; - -} //namespace asn diff --git a/e2sim/previous/e2apv1sim/src/ASN1/asn/type_defs.h b/e2sim/previous/e2apv1sim/src/ASN1/asn/type_defs.h deleted file mode 100755 index e7cc539..0000000 --- a/e2sim/previous/e2apv1sim/src/ASN1/asn/type_defs.h +++ /dev/null @@ -1,36 +0,0 @@ -#pragma once -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -*******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries -#include - -// Platform Includes: Platform specific classes, functions, and libraries - -// Local Includes: Application specific classes, functions, and libraries - -typedef uint8_t u8; -typedef uint16_t u16; -typedef uint32_t u32; -typedef uint64_t u64; - -typedef int8_t i8; -typedef int16_t i16; -typedef int32_t i32; -typedef int64_t i64; diff --git a/e2sim/previous/e2apv1sim/src/ASN1/asn/utility.hpp b/e2sim/previous/e2apv1sim/src/ASN1/asn/utility.hpp deleted file mode 100755 index ae1ad74..0000000 --- a/e2sim/previous/e2apv1sim/src/ASN1/asn/utility.hpp +++ /dev/null @@ -1,88 +0,0 @@ -#pragma once - -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries -#include -#include - -// Local Includes: Application specific classes, functions, and libraries - -namespace asn -{ - -struct allocator -{ - allocator() = default; - - allocator(void* data, size_t size) { reset(data, size); } - - template - explicit allocator(T (&buf)[SZ]) : allocator(buf, SZ * sizeof(T)) { } - - void reset(void* data, size_t size) - { - std::size_t space = size; - m_begin = static_cast(std::align(alignment, size, data, space)); - m_end = m_begin ? m_begin + space : nullptr; - m_current = m_begin; - m_ref_counter = 0; - } - - uint8_t* alloc_bytes(std::size_t size) - { - std::size_t const esize = (size + alignment - 1) & -alignment; - if (m_current + esize > m_end) { return nullptr; } //throw std::bad_alloc(); - - uint8_t* const rval = m_current; - m_current += esize; - return rval; - } - - size_t add_ref() { return ++m_ref_counter; } - size_t release() - { - if (m_ref_counter) --m_ref_counter; - if (m_ref_counter == 0) reset(); - return m_ref_counter; - } - size_t ref_counter() const { return m_ref_counter; } -private: - //called by last release() when m_ref_counter becomes 0 - void reset() - { - m_current = m_begin; - } - - - enum : std::size_t - { - alignment = alignof(std::size_t) - }; - - uint8_t* m_begin { nullptr }; //set in reset() - uint8_t* m_current { nullptr }; //changed by alloc_bytes - uint8_t* m_end { nullptr }; - - size_t m_ref_counter {0}; -}; - -} //namespace asn - diff --git a/e2sim/previous/e2apv1sim/src/ASN1/asn/value_traits.hpp b/e2sim/previous/e2apv1sim/src/ASN1/asn/value_traits.hpp deleted file mode 100755 index 4b67374..0000000 --- a/e2sim/previous/e2apv1sim/src/ASN1/asn/value_traits.hpp +++ /dev/null @@ -1,187 +0,0 @@ -#ifndef _STDEX_VALUE_TRAITS_HPP_INCLUDED_ -#define _STDEX_VALUE_TRAITS_HPP_INCLUDED_ - -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -******************************************************************************/ - -#include -#include -#include -#include -#include - -#include "type_defs.h" - -namespace stdex { -namespace value { - -namespace mpl = boost::mpl; - -//NOTE! length is in bits -typedef mpl::int_<8> _8; -typedef mpl::int_<16> _16; -typedef mpl::int_<24> _24; -typedef mpl::int_<32> _32; -typedef mpl::int_<40> _40; -typedef mpl::int_<48> _48; -typedef mpl::int_<56> _56; -typedef mpl::int_<64> _64; - -template -struct bits_to_bytes : mpl::int_< (num_bits + 7) / 8 > {}; - -/****************************************************************************** -* Class: value::traits -* Description: select min integer type to fit LEN bits -* Notes: LEN is positive integer type (mpl::int_) = number of bits -******************************************************************************/ -template struct traits; - -template -struct traits - >::type -> -{ - typedef _8 value_length; - typedef u8 value_type; - typedef value_type param_type; -}; - -template -struct traits, mpl::less_equal > - >::type -> -{ - typedef _16 value_length; - typedef u16 value_type; - typedef value_type param_type; -}; - -template -struct traits, mpl::less_equal > - >::type -> -{ - typedef _24 value_length; - typedef u32 value_type; - typedef value_type param_type; -}; - -template -struct traits, mpl::less_equal > - >::type -> -{ - typedef _32 value_length; - typedef u32 value_type; - typedef value_type param_type; -}; - -template -struct traits, mpl::less_equal > - >::type -> -{ - typedef _40 value_length; - typedef u64 value_type; - typedef value_type param_type; -}; - -template -struct traits, mpl::less_equal > - >::type -> -{ - typedef _48 value_length; - typedef u64 value_type; - typedef value_type param_type; -}; - -template -struct traits, mpl::less_equal > - >::type -> -{ - typedef _56 value_length; - typedef u64 value_type; - typedef value_type param_type; -}; - -template -struct traits, mpl::less_equal > - >::type -> -{ - typedef _64 value_length; - typedef u64 value_type; - typedef value_type param_type; -}; - -template -struct traits - >::type -> -{ - typedef LEN value_length; - struct value_type {u8 value[bits_to_bytes::value];}; - typedef value_type const& param_type; -}; - - -//template -//struct traits -// >::type -//> -//{ -// typedef LEN value_length; -// struct value_type {unsigned char value[LEN::value/8];}; -// typedef value_type const& param_type; -// -//}; - -/****************************************************************************** -* Class: value::traits_c -* Description: select min integer type to fit BITS bits -* Notes: N is positive integer value = number of bits -******************************************************************************/ -template -struct traits_c : traits > -{ -}; - -} //end: namespace value - -} //end: namespace stdex - -#ifdef _MSC_VER -#pragma component( mintypeinfo, off ) -#endif - -#endif //_STDEX_VALUE_TRAITS_HPP_INCLUDED_ diff --git a/e2sim/previous/e2apv1sim/src/ASN1/asn/variant.hpp b/e2sim/previous/e2apv1sim/src/ASN1/asn/variant.hpp deleted file mode 100755 index be205aa..0000000 --- a/e2sim/previous/e2apv1sim/src/ASN1/asn/variant.hpp +++ /dev/null @@ -1,146 +0,0 @@ -#pragma once - -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries -#include -#include - - -// Local Includes: Application specific classes, functions, and libraries - - -namespace asn{ - -template -struct variant -{ - typedef variant self_type; - - template - static void check_size () {static_assert(sizeof (T) <= S, "wrong type");} - - variant () - : typeinfo (nullptr) - {} - - template - variant (const T& t) - : typeinfo (&typeid (T)) - { - check_size(); - new (as_()) T (t); - } - - ~variant () - { - assert(!typeinfo); - } - - template - T& build () - { - assert(!typeinfo); - typeinfo = & typeid (T); - return *new (as_()) T; - } - - template - T& build (const T& t) - { - assert(!typeinfo); - check_size(); - typeinfo = & typeid (T); - return *new (as_ ()) T (t); - } - - template - T& as() - { - assert(*typeinfo == typeid (T)); - check_size(); - return *as_ (); - } - - template - const T& as() const - { - assert(*typeinfo == typeid (T)); - check_size(); - return *as_ (); - } - - template - void swap(self_type& other) - { - assert (typeinfo); - assert (*typeinfo == *other.typeinfo); - std::swap (as (), other.as ()); - } - - template - void move(self_type& other) - { - build (); - swap (other); - other.destroy (); - } - - template - void copy(const self_type& other) - { - build (other.as ()); - } - - template - void destroy() - { - as ().~T (); - typeinfo = nullptr; - } - -private: - self_type& operator=(const self_type&){} - variant (const self_type&){} - - template - T* as_() - { - void *p = buffer.raw; - return static_cast (p); - } - - template - const T* as_() const - { - const void *p = buffer.raw; - return static_cast (p); - } - - union - { - long double align_me; - char raw[S]; - } buffer; - - const std::type_info *typeinfo; -}; - -} //namspace asn diff --git a/e2sim/previous/e2apv1sim/src/ASN1/asn/version.hpp b/e2sim/previous/e2apv1sim/src/ASN1/asn/version.hpp deleted file mode 100755 index 50854f3..0000000 --- a/e2sim/previous/e2apv1sim/src/ASN1/asn/version.hpp +++ /dev/null @@ -1,27 +0,0 @@ -#pragma once - -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries - -// Local Includes: Application specific classes, functions, and libraries - -#define ASN_API_VERSION_MAJOR 5 -#define ASN_API_VERSION_MINOR 0 diff --git a/e2sim/previous/e2apv1sim/src/ASN1/generated/E2AP-Constants.hpp b/e2sim/previous/e2apv1sim/src/ASN1/generated/E2AP-Constants.hpp deleted file mode 100644 index 2ed8200..0000000 --- a/e2sim/previous/e2apv1sim/src/ASN1/generated/E2AP-Constants.hpp +++ /dev/null @@ -1,244 +0,0 @@ -/***************************************************************************** -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -#pragma once - -#include "asn/asn.hpp" -static_assert(ASN_API_VERSION_MAJOR == 5, "re-generate the ASN parser's code using 'make regen-asn' (do not use -j option)"); - -#include "X2AP-CommonDataTypes.hpp" - -/* -id-RANfunction-Item ProtocolIE-ID ::= 60001 -*/ - -constexpr int64_t id_RANfunction_Item = 60001; -/* -id-RANfunctionDefinition ProtocolIE-ID ::= 60002 -*/ - -constexpr int64_t id_RANfunctionDefinition = 60002; -/* -id-RANfunctionID ProtocolIE-ID ::= 60003 -*/ - -constexpr int64_t id_RANfunctionID = 60003; -/* -id-RANfunctionID-Item ProtocolIE-ID ::= 60004 -*/ - -constexpr int64_t id_RANfunctionID_Item = 60004; -/* -id-RANfunctionIEcause-Item ProtocolIE-ID ::= 60005 -*/ - -constexpr int64_t id_RANfunctionIEcause_Item = 60005; -/* -id-RANfunctionsAccepted ProtocolIE-ID ::= 60006 -*/ - -constexpr int64_t id_RANfunctionsAccepted = 60006; -/* -id-RANfunctionsAdded ProtocolIE-ID ::= 60007 -*/ - -constexpr int64_t id_RANfunctionsAdded = 60007; -/* -id-RANfunctionsDeleted ProtocolIE-ID ::= 60008 -*/ - -constexpr int64_t id_RANfunctionsDeleted = 60008; -/* -id-RANfunctionsModified ProtocolIE-ID ::= 60009 -*/ - -constexpr int64_t id_RANfunctionsModified = 60009; -/* -id-RANfunctionsRejected ProtocolIE-ID ::= 60010 -*/ - -constexpr int64_t id_RANfunctionsRejected = 60010; -/* -id-RICaction-Admitted-Item ProtocolIE-ID ::= 60013 -*/ - -constexpr int64_t id_RICaction_Admitted_Item = 60013; -/* -id-RICaction-NotAdmitted-Item ProtocolIE-ID ::= 60015 -*/ - -constexpr int64_t id_RICaction_NotAdmitted_Item = 60015; -/* -id-RICaction-ToBeSetup-Item ProtocolIE-ID ::= 60011 -*/ - -constexpr int64_t id_RICaction_ToBeSetup_Item = 60011; -/* -id-RICactionDefinition ProtocolIE-ID ::= 60016 -*/ - -constexpr int64_t id_RICactionDefinition = 60016; -/* -id-RICactionID ProtocolIE-ID ::= 60017 -*/ - -constexpr int64_t id_RICactionID = 60017; -/* -id-RICactionType ProtocolIE-ID ::= 60018 -*/ - -constexpr int64_t id_RICactionType = 60018; -/* -id-RICactions-Admitted ProtocolIE-ID ::= 60012 -*/ - -constexpr int64_t id_RICactions_Admitted = 60012; -/* -id-RICactions-NotAdmitted ProtocolIE-ID ::= 60014 -*/ - -constexpr int64_t id_RICactions_NotAdmitted = 60014; -/* -id-RICcallProcessID ProtocolIE-ID ::= 60019 -*/ - -constexpr int64_t id_RICcallProcessID = 60019; -/* -id-RICcause ProtocolIE-ID ::= 60020 -*/ - -constexpr int64_t id_RICcause = 60020; -/* -id-RICcontrolAckRequest ProtocolIE-ID ::= 60021 -*/ - -constexpr int64_t id_RICcontrolAckRequest = 60021; -/* -id-RICcontrolHeader ProtocolIE-ID ::= 60022 -*/ - -constexpr int64_t id_RICcontrolHeader = 60022; -/* -id-RICcontrolMessage ProtocolIE-ID ::= 60023 -*/ - -constexpr int64_t id_RICcontrolMessage = 60023; -/* -id-RICcontrolStatus ProtocolIE-ID ::= 60024 -*/ - -constexpr int64_t id_RICcontrolStatus = 60024; -/* -id-RICeventTriggerDefinition ProtocolIE-ID ::= 60025 -*/ - -constexpr int64_t id_RICeventTriggerDefinition = 60025; -/* -id-RICindicationHeader ProtocolIE-ID ::= 60026 -*/ - -constexpr int64_t id_RICindicationHeader = 60026; -/* -id-RICindicationMessage ProtocolIE-ID ::= 60027 -*/ - -constexpr int64_t id_RICindicationMessage = 60027; -/* -id-RICindicationSN ProtocolIE-ID ::= 60028 -*/ - -constexpr int64_t id_RICindicationSN = 60028; -/* -id-RICindicationType ProtocolIE-ID ::= 60029 -*/ - -constexpr int64_t id_RICindicationType = 60029; -/* -id-RICrequestID ProtocolIE-ID ::= 60030 -*/ - -constexpr int64_t id_RICrequestID = 60030; -/* -id-RICrequestSequenceNumber ProtocolIE-ID ::= 60032 -*/ - -constexpr int64_t id_RICrequestSequenceNumber = 60032; -/* -id-RICrequestorID ProtocolIE-ID ::= 60031 -*/ - -constexpr int64_t id_RICrequestorID = 60031; -/* -id-RICsubscription ProtocolIE-ID ::= 60033 -*/ - -constexpr int64_t id_RICsubscription = 60033; -/* -id-RICsubsequentAction ProtocolIE-ID ::= 60034 -*/ - -constexpr int64_t id_RICsubsequentAction = 60034; -/* -id-RICsubsequentActionType ProtocolIE-ID ::= 60035 -*/ - -constexpr int64_t id_RICsubsequentActionType = 60035; -/* -id-RICtimeToWait ProtocolIE-ID ::= 60036 -*/ - -constexpr int64_t id_RICtimeToWait = 60036; -/* -id-ricControl ProcedureCode ::= 204 -*/ - -constexpr int64_t id_ricControl = 204; -/* -id-ricIndication ProcedureCode ::= 205 -*/ - -constexpr int64_t id_ricIndication = 205; -/* -id-ricServiceQuery ProcedureCode ::= 206 -*/ - -constexpr int64_t id_ricServiceQuery = 206; -/* -id-ricServiceUpdate ProcedureCode ::= 203 -*/ - -constexpr int64_t id_ricServiceUpdate = 203; -/* -id-ricSubscription ProcedureCode ::= 201 -*/ - -constexpr int64_t id_ricSubscription = 201; -/* -id-ricSubscriptionDelete ProcedureCode ::= 202 -*/ - -constexpr int64_t id_ricSubscriptionDelete = 202; -/* -maxofRANfunctionID INTEGER ::=256 -*/ - -constexpr int64_t maxofRANfunctionID = 256; -/* -maxofRICactionID INTEGER ::= 16 -*/ - -constexpr int64_t maxofRICactionID = 16; diff --git a/e2sim/previous/e2apv1sim/src/ASN1/generated/E2AP-IEs.hpp b/e2sim/previous/e2apv1sim/src/ASN1/generated/E2AP-IEs.hpp deleted file mode 100644 index 40f7bbb..0000000 --- a/e2sim/previous/e2apv1sim/src/ASN1/generated/E2AP-IEs.hpp +++ /dev/null @@ -1,568 +0,0 @@ -/***************************************************************************** -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -#pragma once - -#include "asn/asn.hpp" -static_assert(ASN_API_VERSION_MAJOR == 5, "re-generate the ASN parser's code using 'make regen-asn' (do not use -j option)"); - -#include "X2AP-IEs.hpp" - -/* -CauseRIC ::= ENUMERATED { - function-id-Invalid, - action-not-supported, - excessive-actions, - duplicate-action, - duplicate-event, - function-resource-limit, - request-id-unknown, - inconsistent-action-subsequent-action-sequence, - control-message-invalid, - call-process-id-invalid, - function-not-required, - excessive-functions, - ric-resource-limit, - ... -} -*/ - -struct CauseRIC : asn::enumerated<13, 0, true> -{ - static constexpr const char* name() {return "CauseRIC";} - using parent_t = asn::enumerated<13, 0, true>; - typedef enum { - function_id_Invalid - ,action_not_supported - ,excessive_actions - ,duplicate_action - ,duplicate_event - ,function_resource_limit - ,request_id_unknown - ,inconsistent_action_subsequent_action_sequence - ,control_message_invalid - ,call_process_id_invalid - ,function_not_required - ,excessive_functions - ,ric_resource_limit - } index_t; - -}; - -/* -RANfunctionDefinition ::= OCTET STRING -*/ - -struct RANfunctionDefinition : asn::ostring<> -{ - static constexpr const char* name() {return "RANfunctionDefinition";} - using parent_t = asn::ostring<>; - -}; - -/* -RANfunctionID ::= INTEGER (0..4095) -*/ - -struct RANfunctionID : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "RANfunctionID";} - using parent_t = asn::integer<>; - -}; - -/* -RICactionDefinition ::= OCTET STRING -*/ - -struct RICactionDefinition : asn::ostring<> -{ - static constexpr const char* name() {return "RICactionDefinition";} - using parent_t = asn::ostring<>; - -}; - -/* -RICactionID ::= INTEGER (0..255) -*/ - -struct RICactionID : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "RICactionID";} - using parent_t = asn::integer<>; - -}; - -/* -RICactionType ::= ENUMERATED{ - report, - insert, - policy, - ... -} -*/ - -struct RICactionType : asn::enumerated<3, 0, true> -{ - static constexpr const char* name() {return "RICactionType";} - using parent_t = asn::enumerated<3, 0, true>; - typedef enum { - report - ,insert - ,policy - } index_t; - -}; - -/* -RICcallProcessID ::= OCTET STRING -*/ - -struct RICcallProcessID : asn::ostring<> -{ - static constexpr const char* name() {return "RICcallProcessID";} - using parent_t = asn::ostring<>; - -}; - -/* -RICcause ::= CHOICE { - radioNetwork CauseRadioNetwork, - transport CauseTransport, - protocol CauseProtocol, - misc CauseMisc, - ric CauseRIC, - ... -} -*/ - -struct RICcause : asn::choice<5, 0, true> -{ - static constexpr const char* name() {return "RICcause";} - using parent_t = asn::choice<5, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 6;} - void set_unknown() { set_index(6); } - ~RICcause() {clear();} - struct radioNetwork_t : CauseRadioNetwork - { - static constexpr const char* name() {return "radioNetwork_t";} - using parent_t = CauseRadioNetwork; - - }; - struct transport_t : CauseTransport - { - static constexpr const char* name() {return "transport_t";} - using parent_t = CauseTransport; - - }; - struct protocol_t : CauseProtocol - { - static constexpr const char* name() {return "protocol_t";} - using parent_t = CauseProtocol; - - }; - struct misc_t : CauseMisc - { - static constexpr const char* name() {return "misc_t";} - using parent_t = CauseMisc; - - }; - struct ric_t : CauseRIC - { - static constexpr const char* name() {return "ric_t";} - using parent_t = CauseRIC; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - case 3: set_index(3); return v(var.build()); - case 4: set_index(4); return v(var.build()); - case 5: set_index(5); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - case 3: return v(var.as()); - case 4: return v(var.as()); - case 5: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - - } - radioNetwork_t& select_radioNetwork() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - radioNetwork_t const* get_radioNetwork() const { if(get_index() == 1) { return &var.as();} return nullptr; } - transport_t& select_transport() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - transport_t const* get_transport() const { if(get_index() == 2) { return &var.as();} return nullptr; } - protocol_t& select_protocol() { if(get_index() != 3) { clear(); set_index(3); return var.build();} return var.as();} - protocol_t const* get_protocol() const { if(get_index() == 3) { return &var.as();} return nullptr; } - misc_t& select_misc() { if(get_index() != 4) { clear(); set_index(4); return var.build();} return var.as();} - misc_t const* get_misc() const { if(get_index() == 4) { return &var.as();} return nullptr; } - ric_t& select_ric() { if(get_index() != 5) { clear(); set_index(5); return var.build();} return var.as();} - ric_t const* get_ric() const { if(get_index() == 5) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(radioNetwork_t)]; - char dummy2[sizeof(transport_t)]; - char dummy3[sizeof(protocol_t)]; - char dummy4[sizeof(misc_t)]; - char dummy5[sizeof(ric_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -RICcontrolAckRequest ::= ENUMERATED{ - noAck, - ack, - nAck, - ... -} -*/ - -struct RICcontrolAckRequest : asn::enumerated<3, 0, true> -{ - static constexpr const char* name() {return "RICcontrolAckRequest";} - using parent_t = asn::enumerated<3, 0, true>; - typedef enum { - noAck - ,ack - ,nAck - } index_t; - -}; - -/* -RICcontrolHeader ::= OCTET STRING -*/ - -struct RICcontrolHeader : asn::ostring<> -{ - static constexpr const char* name() {return "RICcontrolHeader";} - using parent_t = asn::ostring<>; - -}; - -/* -RICcontrolMessage ::= OCTET STRING -*/ - -struct RICcontrolMessage : asn::ostring<> -{ - static constexpr const char* name() {return "RICcontrolMessage";} - using parent_t = asn::ostring<>; - -}; - -/* -RICcontrolStatus ::= ENUMERATED{ - success, - rejected, - failed, - ... -} -*/ - -struct RICcontrolStatus : asn::enumerated<3, 0, true> -{ - static constexpr const char* name() {return "RICcontrolStatus";} - using parent_t = asn::enumerated<3, 0, true>; - typedef enum { - success - ,rejected - ,failed - } index_t; - -}; - -/* -RICeventTriggerDefinition ::= OCTET STRING -*/ - -struct RICeventTriggerDefinition : asn::ostring<> -{ - static constexpr const char* name() {return "RICeventTriggerDefinition";} - using parent_t = asn::ostring<>; - -}; - -/* -RICindicationHeader ::= OCTET STRING -*/ - -struct RICindicationHeader : asn::ostring<> -{ - static constexpr const char* name() {return "RICindicationHeader";} - using parent_t = asn::ostring<>; - -}; - -/* -RICindicationMessage ::= OCTET STRING -*/ - -struct RICindicationMessage : asn::ostring<> -{ - static constexpr const char* name() {return "RICindicationMessage";} - using parent_t = asn::ostring<>; - -}; - -/* -RICindicationSN ::= INTEGER (0..65535) -*/ - -struct RICindicationSN : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "RICindicationSN";} - using parent_t = asn::integer<>; - -}; - -/* -RICindicationType ::= ENUMERATED{ - report, - insert, - ... -} -*/ - -struct RICindicationType : asn::enumerated<2, 0, true> -{ - static constexpr const char* name() {return "RICindicationType";} - using parent_t = asn::enumerated<2, 0, true>; - typedef enum { - report - ,insert - } index_t; - -}; - -/* -RICrequestID ::= SEQUENCE { - ricRequestorID INTEGER (0..65535), - ricRequestSequenceNumber INTEGER (0..65535), - ... -} -*/ - -struct RICrequestID : asn::sequence<2, 0, true, 0> -{ - static constexpr const char* name() {return "RICrequestID";} - using parent_t = asn::sequence<2, 0, true, 0>; - struct ricRequestorID_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "ricRequestorID_t";} - using parent_t = asn::integer<>; - - }; - - ricRequestorID_t& ref_ricRequestorID() {return ricRequestorID;} - ricRequestorID_t const& ref_ricRequestorID() const {return ricRequestorID;} - struct ricRequestSequenceNumber_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "ricRequestSequenceNumber_t";} - using parent_t = asn::integer<>; - - }; - - ricRequestSequenceNumber_t& ref_ricRequestSequenceNumber() {return ricRequestSequenceNumber;} - ricRequestSequenceNumber_t const& ref_ricRequestSequenceNumber() const {return ricRequestSequenceNumber;} - template void decode(V& v) - { - v(ricRequestorID); - v(ricRequestSequenceNumber); - - }; - template void encode(V& v) const - { - v(ricRequestorID); - v(ricRequestSequenceNumber); - - }; - void clear() - { - ricRequestorID.clear(); - ricRequestSequenceNumber.clear(); - - }; - private: - ricRequestorID_t ricRequestorID; - ricRequestSequenceNumber_t ricRequestSequenceNumber; - -}; -/* -RICsubsequentActionType ::= ENUMERATED{ - continue, - wait, - ... -} -*/ - -struct RICsubsequentActionType : asn::enumerated<2, 0, true> -{ - static constexpr const char* name() {return "RICsubsequentActionType";} - using parent_t = asn::enumerated<2, 0, true>; - typedef enum { - Continue - ,wait - } index_t; - -}; - -/* -RICtimeToWait ::= ENUMERATED{ - zero, - w1ms, - w2ms, - w5ms, - w10ms, - w20ms, - w30ms, - w40ms, - w50ms, - w100ms, - w200ms, - w500ms, - w1s, - w2s, - w5s, - w10s, - w20s, - w60s, - ... -} -*/ - -struct RICtimeToWait : asn::enumerated<18, 0, true> -{ - static constexpr const char* name() {return "RICtimeToWait";} - using parent_t = asn::enumerated<18, 0, true>; - typedef enum { - zero - ,w1ms - ,w2ms - ,w5ms - ,w10ms - ,w20ms - ,w30ms - ,w40ms - ,w50ms - ,w100ms - ,w200ms - ,w500ms - ,w1s - ,w2s - ,w5s - ,w10s - ,w20s - ,w60s - } index_t; - -}; - -/* -RICsubsequentAction ::=SEQUENCE{ - ricSubsequentActionType RICsubsequentActionType, - ricTimeToWait RICtimeToWait, - ... -} -*/ - -struct RICsubsequentAction : asn::sequence<2, 0, true, 0> -{ - static constexpr const char* name() {return "RICsubsequentAction";} - using parent_t = asn::sequence<2, 0, true, 0>; - struct ricSubsequentActionType_t : RICsubsequentActionType - { - static constexpr const char* name() {return "ricSubsequentActionType_t";} - using parent_t = RICsubsequentActionType; - - }; - ricSubsequentActionType_t& ref_ricSubsequentActionType() {return ricSubsequentActionType;} - ricSubsequentActionType_t const& ref_ricSubsequentActionType() const {return ricSubsequentActionType;} - struct ricTimeToWait_t : RICtimeToWait - { - static constexpr const char* name() {return "ricTimeToWait_t";} - using parent_t = RICtimeToWait; - - }; - ricTimeToWait_t& ref_ricTimeToWait() {return ricTimeToWait;} - ricTimeToWait_t const& ref_ricTimeToWait() const {return ricTimeToWait;} - template void decode(V& v) - { - v(ricSubsequentActionType); - v(ricTimeToWait); - - }; - template void encode(V& v) const - { - v(ricSubsequentActionType); - v(ricTimeToWait); - - }; - void clear() - { - ricSubsequentActionType.clear(); - ricTimeToWait.clear(); - - }; - private: - ricSubsequentActionType_t ricSubsequentActionType; - ricTimeToWait_t ricTimeToWait; - -}; diff --git a/e2sim/previous/e2apv1sim/src/ASN1/generated/E2AP-PDU-Contents.hpp b/e2sim/previous/e2apv1sim/src/ASN1/generated/E2AP-PDU-Contents.hpp deleted file mode 100644 index e2073d1..0000000 --- a/e2sim/previous/e2apv1sim/src/ASN1/generated/E2AP-PDU-Contents.hpp +++ /dev/null @@ -1,5512 +0,0 @@ -/***************************************************************************** -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -#pragma once - -#include "asn/asn.hpp" -static_assert(ASN_API_VERSION_MAJOR == 5, "re-generate the ASN parser's code using 'make regen-asn' (do not use -j option)"); - -#include "E2AP-IEs.hpp" -#include "X2AP-IEs.hpp" -#include "X2AP-Constants.hpp" -#include "X2AP-Containers.hpp" -#include "E2AP-Constants.hpp" - -/* -RANfunction-Item ::= SEQUENCE { - ranFunctionID RANfunctionID, - ranFunctionDefinition RANfunctionDefinition, - ... -} -*/ - -struct RANfunction_Item : asn::sequence<2, 0, true, 0> -{ - static constexpr const char* name() {return "RANfunction-Item";} - using parent_t = asn::sequence<2, 0, true, 0>; - struct ranFunctionID_t : RANfunctionID - { - static constexpr const char* name() {return "ranFunctionID_t";} - using parent_t = RANfunctionID; - - }; - ranFunctionID_t& ref_ranFunctionID() {return ranFunctionID;} - ranFunctionID_t const& ref_ranFunctionID() const {return ranFunctionID;} - struct ranFunctionDefinition_t : RANfunctionDefinition - { - static constexpr const char* name() {return "ranFunctionDefinition_t";} - using parent_t = RANfunctionDefinition; - - }; - ranFunctionDefinition_t& ref_ranFunctionDefinition() {return ranFunctionDefinition;} - ranFunctionDefinition_t const& ref_ranFunctionDefinition() const {return ranFunctionDefinition;} - template void decode(V& v) - { - v(ranFunctionID); - v(ranFunctionDefinition); - - }; - template void encode(V& v) const - { - v(ranFunctionID); - v(ranFunctionDefinition); - - }; - void clear() - { - ranFunctionID.clear(); - ranFunctionDefinition.clear(); - - }; - private: - ranFunctionID_t ranFunctionID; - ranFunctionDefinition_t ranFunctionDefinition; - -}; -/* -RANfunction-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-RANfunction-Item CRITICALITY ignore TYPE RANfunction-Item PRESENCE mandatory }, - ... -} -*/ - -struct RANfunction_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RANfunction_Item() { set(id_RANfunction_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_RANfunction_Item)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_RANfunction_Item);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RANfunction_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - RANfunction_Item& select_id_RANfunction_Item() { return set(1); } - RANfunction_Item const* get_id_RANfunction_Item() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_RANfunction_Item()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(RANfunction_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RANfunction_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RANfunctionID-Item ::= SEQUENCE { - ranFunctionID RANfunctionID, - ... -} -*/ - -struct RANfunctionID_Item : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "RANfunctionID-Item";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct ranFunctionID_t : RANfunctionID - { - static constexpr const char* name() {return "ranFunctionID_t";} - using parent_t = RANfunctionID; - - }; - ranFunctionID_t& ref_ranFunctionID() {return ranFunctionID;} - ranFunctionID_t const& ref_ranFunctionID() const {return ranFunctionID;} - template void decode(V& v) - { - v(ranFunctionID); - - }; - template void encode(V& v) const - { - v(ranFunctionID); - - }; - void clear() - { - ranFunctionID.clear(); - - }; - private: - ranFunctionID_t ranFunctionID; - -}; -/* -RANfunctionID-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-RANfunctionID-Item CRITICALITY ignore TYPE RANfunctionID-Item PRESENCE mandatory }, - ... -} -*/ - -struct RANfunctionID_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RANfunctionID_Item() { set(id_RANfunctionID_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_RANfunctionID_Item)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_RANfunctionID_Item);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RANfunctionID_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - RANfunctionID_Item& select_id_RANfunctionID_Item() { return set(1); } - RANfunctionID_Item const* get_id_RANfunctionID_Item() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_RANfunctionID_Item()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(RANfunctionID_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RANfunctionID_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RANfunctionIDcause-Item ::= SEQUENCE { - ranFunctionID RANfunctionID, - ricCause RICcause, - ... -} -*/ - -struct RANfunctionIDcause_Item : asn::sequence<2, 0, true, 0> -{ - static constexpr const char* name() {return "RANfunctionIDcause-Item";} - using parent_t = asn::sequence<2, 0, true, 0>; - struct ranFunctionID_t : RANfunctionID - { - static constexpr const char* name() {return "ranFunctionID_t";} - using parent_t = RANfunctionID; - - }; - ranFunctionID_t& ref_ranFunctionID() {return ranFunctionID;} - ranFunctionID_t const& ref_ranFunctionID() const {return ranFunctionID;} - struct ricCause_t : RICcause - { - static constexpr const char* name() {return "ricCause_t";} - using parent_t = RICcause; - - }; - ricCause_t& ref_ricCause() {return ricCause;} - ricCause_t const& ref_ricCause() const {return ricCause;} - template void decode(V& v) - { - v(ranFunctionID); - v(ricCause); - - }; - template void encode(V& v) const - { - v(ranFunctionID); - v(ricCause); - - }; - void clear() - { - ranFunctionID.clear(); - ricCause.clear(); - - }; - private: - ranFunctionID_t ranFunctionID; - ricCause_t ricCause; - -}; -/* -RANfunctionIDcause-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-RANfunctionIEcause-Item CRITICALITY ignore TYPE RANfunctionIDcause-Item PRESENCE mandatory }, - ... -} -*/ - -struct RANfunctionIDcause_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RANfunctionIEcause_Item() { set(id_RANfunctionIEcause_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_RANfunctionIEcause_Item)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_RANfunctionIEcause_Item);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RANfunctionIEcause_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - RANfunctionIDcause_Item& select_id_RANfunctionIEcause_Item() { return set(1); } - RANfunctionIDcause_Item const* get_id_RANfunctionIEcause_Item() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_RANfunctionIEcause_Item()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(RANfunctionIDcause_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RANfunctionIEcause_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RANfunctions-List ::= SEQUENCE (SIZE(0..maxofRANfunctionID)) OF ProtocolIE-Single-Container { {RANfunction-ItemIEs} } -*/ - -struct RANfunctions_List_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "RANfunctions_List_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct RANfunctions_List : asn::sequenceof -{ - static constexpr const char* name() {return "RANfunctions-List";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -RANfunctionsID-List ::= SEQUENCE (SIZE(0..maxofRANfunctionID)) OF ProtocolIE-Single-Container{{RANfunctionID-ItemIEs}} -*/ - -struct RANfunctionsID_List_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "RANfunctionsID_List_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct RANfunctionsID_List : asn::sequenceof -{ - static constexpr const char* name() {return "RANfunctionsID-List";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -RANfunctionsIDcause-List ::= SEQUENCE (SIZE(0..maxofRANfunctionID)) OF ProtocolIE-Single-Container { {RANfunctionIDcause-ItemIEs} } -*/ - -struct RANfunctionsIDcause_List_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "RANfunctionsIDcause_List_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct RANfunctionsIDcause_List : asn::sequenceof -{ - static constexpr const char* name() {return "RANfunctionsIDcause-List";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -RICaction-Admitted-Item ::= SEQUENCE { - ricActionID RICactionID, - ... -} -*/ - -struct RICaction_Admitted_Item : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "RICaction-Admitted-Item";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct ricActionID_t : RICactionID - { - static constexpr const char* name() {return "ricActionID_t";} - using parent_t = RICactionID; - - }; - ricActionID_t& ref_ricActionID() {return ricActionID;} - ricActionID_t const& ref_ricActionID() const {return ricActionID;} - template void decode(V& v) - { - v(ricActionID); - - }; - template void encode(V& v) const - { - v(ricActionID); - - }; - void clear() - { - ricActionID.clear(); - - }; - private: - ricActionID_t ricActionID; - -}; -/* -RICaction-Admitted-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-RICaction-Admitted-Item CRITICALITY ignore TYPE RICaction-Admitted-Item PRESENCE mandatory }, - ... -} -*/ - -struct RICaction_Admitted_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RICaction_Admitted_Item() { set(id_RICaction_Admitted_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_RICaction_Admitted_Item)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_RICaction_Admitted_Item);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RICaction_Admitted_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - RICaction_Admitted_Item& select_id_RICaction_Admitted_Item() { return set(1); } - RICaction_Admitted_Item const* get_id_RICaction_Admitted_Item() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_RICaction_Admitted_Item()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(RICaction_Admitted_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RICaction_Admitted_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RICaction-Admitted-List ::= SEQUENCE (SIZE(1..maxofRICactionID)) OF ProtocolIE-Single-Container{{RICaction-Admitted-ItemIEs}} -*/ - -struct RICaction_Admitted_List_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "RICaction_Admitted_List_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct RICaction_Admitted_List : asn::sequenceof -{ - static constexpr const char* name() {return "RICaction-Admitted-List";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -RICaction-NotAdmitted-Item ::= SEQUENCE { - ricActionID RICactionID, - ricCause RICcause, - ... -} -*/ - -struct RICaction_NotAdmitted_Item : asn::sequence<2, 0, true, 0> -{ - static constexpr const char* name() {return "RICaction-NotAdmitted-Item";} - using parent_t = asn::sequence<2, 0, true, 0>; - struct ricActionID_t : RICactionID - { - static constexpr const char* name() {return "ricActionID_t";} - using parent_t = RICactionID; - - }; - ricActionID_t& ref_ricActionID() {return ricActionID;} - ricActionID_t const& ref_ricActionID() const {return ricActionID;} - struct ricCause_t : RICcause - { - static constexpr const char* name() {return "ricCause_t";} - using parent_t = RICcause; - - }; - ricCause_t& ref_ricCause() {return ricCause;} - ricCause_t const& ref_ricCause() const {return ricCause;} - template void decode(V& v) - { - v(ricActionID); - v(ricCause); - - }; - template void encode(V& v) const - { - v(ricActionID); - v(ricCause); - - }; - void clear() - { - ricActionID.clear(); - ricCause.clear(); - - }; - private: - ricActionID_t ricActionID; - ricCause_t ricCause; - -}; -/* -RICaction-NotAdmitted-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-RICaction-NotAdmitted-Item CRITICALITY ignore TYPE RICaction-NotAdmitted-Item PRESENCE mandatory }, - ... -} -*/ - -struct RICaction_NotAdmitted_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RICaction_NotAdmitted_Item() { set(id_RICaction_NotAdmitted_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_RICaction_NotAdmitted_Item)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_RICaction_NotAdmitted_Item);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RICaction_NotAdmitted_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - RICaction_NotAdmitted_Item& select_id_RICaction_NotAdmitted_Item() { return set(1); } - RICaction_NotAdmitted_Item const* get_id_RICaction_NotAdmitted_Item() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_RICaction_NotAdmitted_Item()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(RICaction_NotAdmitted_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RICaction_NotAdmitted_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RICaction-NotAdmitted-List ::= SEQUENCE (SIZE(0..maxofRICactionID)) OF ProtocolIE-Single-Container { {RICaction-NotAdmitted-ItemIEs} } -*/ - -struct RICaction_NotAdmitted_List_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "RICaction_NotAdmitted_List_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct RICaction_NotAdmitted_List : asn::sequenceof -{ - static constexpr const char* name() {return "RICaction-NotAdmitted-List";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -RICaction-ToBeSetup-Item ::= SEQUENCE { - ricActionID RICactionID, - ricActionType RICactionType, - ricActionDefinition RICactionDefinition OPTIONAL, - ricSubsequentAction RICsubsequentAction OPTIONAL, - ... -} -*/ - -struct RICaction_ToBeSetup_Item : asn::sequence<4, 0, true, 2> -{ - static constexpr const char* name() {return "RICaction-ToBeSetup-Item";} - using parent_t = asn::sequence<4, 0, true, 2>; - struct ricActionID_t : RICactionID - { - static constexpr const char* name() {return "ricActionID_t";} - using parent_t = RICactionID; - - }; - ricActionID_t& ref_ricActionID() {return ricActionID;} - ricActionID_t const& ref_ricActionID() const {return ricActionID;} - struct ricActionType_t : RICactionType - { - static constexpr const char* name() {return "ricActionType_t";} - using parent_t = RICactionType; - - }; - ricActionType_t& ref_ricActionType() {return ricActionType;} - ricActionType_t const& ref_ricActionType() const {return ricActionType;} - struct ricActionDefinition_t : RICactionDefinition - { - static constexpr const char* name() {return "ricActionDefinition_t";} - using parent_t = RICactionDefinition; - static constexpr bool optional = true; - - }; - ricActionDefinition_t& set_ricActionDefinition() { ricActionDefinition.setpresent(true); return ricActionDefinition;} - ricActionDefinition_t const* get_ricActionDefinition() const {return ricActionDefinition.is_valid() ? &ricActionDefinition : nullptr;} - struct ricSubsequentAction_t : RICsubsequentAction - { - static constexpr const char* name() {return "ricSubsequentAction_t";} - using parent_t = RICsubsequentAction; - static constexpr bool optional = true; - - }; - ricSubsequentAction_t& set_ricSubsequentAction() { ricSubsequentAction.setpresent(true); return ricSubsequentAction;} - ricSubsequentAction_t const* get_ricSubsequentAction() const {return ricSubsequentAction.is_valid() ? &ricSubsequentAction : nullptr;} - template void decode(V& v) - { - v(ricActionID); - v(ricActionType); - v(ricActionDefinition); - v(ricSubsequentAction); - - }; - template void encode(V& v) const - { - v(ricActionID); - v(ricActionType); - v(ricActionDefinition); - v(ricSubsequentAction); - - }; - void clear() - { - ricActionID.clear(); - ricActionType.clear(); - ricActionDefinition.clear(); - ricSubsequentAction.clear(); - - }; - private: - ricActionID_t ricActionID; - ricActionType_t ricActionType; - ricActionDefinition_t ricActionDefinition; - ricSubsequentAction_t ricSubsequentAction; - -}; -/* -RICaction-ToBeSetup-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-RICaction-ToBeSetup-Item CRITICALITY ignore TYPE RICaction-ToBeSetup-Item PRESENCE mandatory }, - ... -} -*/ - -struct RICaction_ToBeSetup_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RICaction_ToBeSetup_Item() { set(id_RICaction_ToBeSetup_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_RICaction_ToBeSetup_Item)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_RICaction_ToBeSetup_Item);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RICaction_ToBeSetup_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - RICaction_ToBeSetup_Item& select_id_RICaction_ToBeSetup_Item() { return set(1); } - RICaction_ToBeSetup_Item const* get_id_RICaction_ToBeSetup_Item() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_RICaction_ToBeSetup_Item()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(RICaction_ToBeSetup_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RICaction_ToBeSetup_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RICactions-ToBeSetup-List ::= SEQUENCE (SIZE(1..maxofRICactionID)) OF ProtocolIE-Single-Container { {RICaction-ToBeSetup-ItemIEs} } -*/ - -struct RICactions_ToBeSetup_List_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "RICactions_ToBeSetup_List_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct RICactions_ToBeSetup_List : asn::sequenceof -{ - static constexpr const char* name() {return "RICactions-ToBeSetup-List";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -RICcontrolAcknowledge-IEs X2AP-PROTOCOL-IES ::= { - { ID id-RICrequestID CRITICALITY reject TYPE RICrequestID PRESENCE mandatory}| - { ID id-RANfunctionID CRITICALITY reject TYPE RANfunctionID PRESENCE mandatory}| - { ID id-RICcallProcessID CRITICALITY reject TYPE RICcallProcessID PRESENCE optional}| - { ID id-RICcontrolStatus CRITICALITY reject TYPE RICcontrolStatus PRESENCE mandatory}, - ... -} -*/ - -struct RICcontrolAcknowledge_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_RICrequestID() { set(id_RICrequestID); type=1;} - void select_id_RANfunctionID() { set(id_RANfunctionID); type=2;} - void select_id_RICcallProcessID() { set(id_RICcallProcessID); type=3;} - void select_id_RICcontrolStatus() { set(id_RICcontrolStatus); type=4;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_RICrequestID)) { type = 1; return true; } - else if(equal(id_RANfunctionID)) { type = 2; return true; } - else if(equal(id_RICcallProcessID)) { type = 3; return true; } - else if(equal(id_RICcontrolStatus)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_RICrequestID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_RANfunctionID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_RICcallProcessID);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_RICcontrolStatus);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_RICrequestID() { set(reject); type=1;} - void select_id_RANfunctionID() { set(reject); type=2;} - void select_id_RICcallProcessID() { set(reject); type=3;} - void select_id_RICcontrolStatus() { set(reject); type=4;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(reject)) { type = 3; return true; } - else if(equal(reject)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(reject);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(reject);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - RICrequestID& select_id_RICrequestID() { return set(1); } - RICrequestID const* get_id_RICrequestID() const { return get(1); } - RANfunctionID& select_id_RANfunctionID() { return set(2); } - RANfunctionID const* get_id_RANfunctionID() const { return get(2); } - RICcallProcessID& select_id_RICcallProcessID() { return set(3); } - RICcallProcessID const* get_id_RICcallProcessID() const { return get(3); } - RICcontrolStatus& select_id_RICcontrolStatus() { return set(4); } - RICcontrolStatus const* get_id_RICcontrolStatus() const { return get(4); } - bool is_unknown() const { return type == 5; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_RICrequestID()); return true; - case 2: v(select_id_RANfunctionID()); return true; - case 3: v(select_id_RICcallProcessID()); return true; - case 4: v(select_id_RICcontrolStatus()); return true; - case 5: if(type != 5) {clear(); asn::base::set();} type = 5; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(RANfunctionID)]; - char dummy2[sizeof(RICcallProcessID)]; - char dummy3[sizeof(RICcontrolStatus)]; - char dummy4[sizeof(RICrequestID)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_RICrequestID() { set(mandatory); type=1;} - void select_id_RANfunctionID() { set(mandatory); type=2;} - void select_id_RICcallProcessID() { set(optional); type=3;} - void select_id_RICcontrolStatus() { set(mandatory); type=4;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else if(equal(mandatory)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(mandatory);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RICcontrolAcknowledge ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{RICcontrolAcknowledge-IEs}}, - ... -} -*/ - -struct RICcontrolAcknowledge : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "RICcontrolAcknowledge";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -RICcontrolFailure-IEs X2AP-PROTOCOL-IES ::= { - { ID id-RICrequestID CRITICALITY reject TYPE RICrequestID PRESENCE mandatory}| - { ID id-RANfunctionID CRITICALITY reject TYPE RANfunctionID PRESENCE mandatory}| - { ID id-RICcallProcessID CRITICALITY reject TYPE RICcallProcessID PRESENCE optional}| - { ID id-RICcause CRITICALITY reject TYPE RICcause PRESENCE mandatory}, - ... -} -*/ - -struct RICcontrolFailure_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_RICrequestID() { set(id_RICrequestID); type=1;} - void select_id_RANfunctionID() { set(id_RANfunctionID); type=2;} - void select_id_RICcallProcessID() { set(id_RICcallProcessID); type=3;} - void select_id_RICcause() { set(id_RICcause); type=4;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_RICrequestID)) { type = 1; return true; } - else if(equal(id_RANfunctionID)) { type = 2; return true; } - else if(equal(id_RICcallProcessID)) { type = 3; return true; } - else if(equal(id_RICcause)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_RICrequestID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_RANfunctionID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_RICcallProcessID);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_RICcause);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_RICrequestID() { set(reject); type=1;} - void select_id_RANfunctionID() { set(reject); type=2;} - void select_id_RICcallProcessID() { set(reject); type=3;} - void select_id_RICcause() { set(reject); type=4;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(reject)) { type = 3; return true; } - else if(equal(reject)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(reject);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(reject);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - RICrequestID& select_id_RICrequestID() { return set(1); } - RICrequestID const* get_id_RICrequestID() const { return get(1); } - RANfunctionID& select_id_RANfunctionID() { return set(2); } - RANfunctionID const* get_id_RANfunctionID() const { return get(2); } - RICcallProcessID& select_id_RICcallProcessID() { return set(3); } - RICcallProcessID const* get_id_RICcallProcessID() const { return get(3); } - RICcause& select_id_RICcause() { return set(4); } - RICcause const* get_id_RICcause() const { return get(4); } - bool is_unknown() const { return type == 5; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_RICrequestID()); return true; - case 2: v(select_id_RANfunctionID()); return true; - case 3: v(select_id_RICcallProcessID()); return true; - case 4: v(select_id_RICcause()); return true; - case 5: if(type != 5) {clear(); asn::base::set();} type = 5; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(RANfunctionID)]; - char dummy2[sizeof(RICcallProcessID)]; - char dummy3[sizeof(RICcause)]; - char dummy4[sizeof(RICrequestID)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_RICrequestID() { set(mandatory); type=1;} - void select_id_RANfunctionID() { set(mandatory); type=2;} - void select_id_RICcallProcessID() { set(optional); type=3;} - void select_id_RICcause() { set(mandatory); type=4;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else if(equal(mandatory)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(mandatory);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RICcontrolFailure ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{RICcontrolFailure-IEs}}, - ... -} -*/ - -struct RICcontrolFailure : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "RICcontrolFailure";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -RICcontrolRequest-IEs X2AP-PROTOCOL-IES ::= { - { ID id-RICrequestID CRITICALITY reject TYPE RICrequestID PRESENCE mandatory}| - { ID id-RANfunctionID CRITICALITY reject TYPE RANfunctionID PRESENCE mandatory}| - { ID id-RICcallProcessID CRITICALITY reject TYPE RICcallProcessID PRESENCE optional}| - { ID id-RICcontrolHeader CRITICALITY reject TYPE RICcontrolHeader PRESENCE mandatory}| - { ID id-RICcontrolMessage CRITICALITY reject TYPE RICcontrolMessage PRESENCE mandatory}| - { ID id-RICcontrolAckRequest CRITICALITY reject TYPE RICcontrolAckRequest PRESENCE optional}, - ... -} -*/ - -struct RICcontrolRequest_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_RICrequestID() { set(id_RICrequestID); type=1;} - void select_id_RANfunctionID() { set(id_RANfunctionID); type=2;} - void select_id_RICcallProcessID() { set(id_RICcallProcessID); type=3;} - void select_id_RICcontrolHeader() { set(id_RICcontrolHeader); type=4;} - void select_id_RICcontrolMessage() { set(id_RICcontrolMessage); type=5;} - void select_id_RICcontrolAckRequest() { set(id_RICcontrolAckRequest); type=6;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_RICrequestID)) { type = 1; return true; } - else if(equal(id_RANfunctionID)) { type = 2; return true; } - else if(equal(id_RICcallProcessID)) { type = 3; return true; } - else if(equal(id_RICcontrolHeader)) { type = 4; return true; } - else if(equal(id_RICcontrolMessage)) { type = 5; return true; } - else if(equal(id_RICcontrolAckRequest)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_RICrequestID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_RANfunctionID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_RICcallProcessID);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_RICcontrolHeader);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_RICcontrolMessage);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_RICcontrolAckRequest);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_RICrequestID() { set(reject); type=1;} - void select_id_RANfunctionID() { set(reject); type=2;} - void select_id_RICcallProcessID() { set(reject); type=3;} - void select_id_RICcontrolHeader() { set(reject); type=4;} - void select_id_RICcontrolMessage() { set(reject); type=5;} - void select_id_RICcontrolAckRequest() { set(reject); type=6;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(reject)) { type = 3; return true; } - else if(equal(reject)) { type = 4; return true; } - else if(equal(reject)) { type = 5; return true; } - else if(equal(reject)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(reject);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(reject);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(reject);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(reject);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - RICrequestID& select_id_RICrequestID() { return set(1); } - RICrequestID const* get_id_RICrequestID() const { return get(1); } - RANfunctionID& select_id_RANfunctionID() { return set(2); } - RANfunctionID const* get_id_RANfunctionID() const { return get(2); } - RICcallProcessID& select_id_RICcallProcessID() { return set(3); } - RICcallProcessID const* get_id_RICcallProcessID() const { return get(3); } - RICcontrolHeader& select_id_RICcontrolHeader() { return set(4); } - RICcontrolHeader const* get_id_RICcontrolHeader() const { return get(4); } - RICcontrolMessage& select_id_RICcontrolMessage() { return set(5); } - RICcontrolMessage const* get_id_RICcontrolMessage() const { return get(5); } - RICcontrolAckRequest& select_id_RICcontrolAckRequest() { return set(6); } - RICcontrolAckRequest const* get_id_RICcontrolAckRequest() const { return get(6); } - bool is_unknown() const { return type == 7; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_RICrequestID()); return true; - case 2: v(select_id_RANfunctionID()); return true; - case 3: v(select_id_RICcallProcessID()); return true; - case 4: v(select_id_RICcontrolHeader()); return true; - case 5: v(select_id_RICcontrolMessage()); return true; - case 6: v(select_id_RICcontrolAckRequest()); return true; - case 7: if(type != 7) {clear(); asn::base::set();} type = 7; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(RANfunctionID)]; - char dummy2[sizeof(RICcallProcessID)]; - char dummy3[sizeof(RICcontrolAckRequest)]; - char dummy4[sizeof(RICcontrolHeader)]; - char dummy5[sizeof(RICcontrolMessage)]; - char dummy6[sizeof(RICrequestID)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_RICrequestID() { set(mandatory); type=1;} - void select_id_RANfunctionID() { set(mandatory); type=2;} - void select_id_RICcallProcessID() { set(optional); type=3;} - void select_id_RICcontrolHeader() { set(mandatory); type=4;} - void select_id_RICcontrolMessage() { set(mandatory); type=5;} - void select_id_RICcontrolAckRequest() { set(optional); type=6;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else if(equal(mandatory)) { type = 4; return true; } - else if(equal(mandatory)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(mandatory);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(mandatory);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RICcontrolRequest ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{RICcontrolRequest-IEs}}, - ... -} -*/ - -struct RICcontrolRequest : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "RICcontrolRequest";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -RICindication-IEs X2AP-PROTOCOL-IES ::= { - { ID id-RICrequestID CRITICALITY reject TYPE RICrequestID PRESENCE mandatory}| - { ID id-RANfunctionID CRITICALITY reject TYPE RANfunctionID PRESENCE mandatory}| - { ID id-RICactionID CRITICALITY reject TYPE RICactionID PRESENCE mandatory}| - { ID id-RICindicationSN CRITICALITY reject TYPE RICindicationSN PRESENCE mandatory}| - { ID id-RICindicationType CRITICALITY reject TYPE RICindicationType PRESENCE mandatory}| - { ID id-RICindicationHeader CRITICALITY reject TYPE RICindicationHeader PRESENCE mandatory}| - { ID id-RICindicationMessage CRITICALITY reject TYPE RICindicationMessage PRESENCE mandatory} | - { ID id-RICcallProcessID CRITICALITY reject TYPE RICcallProcessID PRESENCE optional}, - ... -} -*/ - -struct RICindication_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 9; } - void clear() {type = 0;} - void select_id_RICrequestID() { set(id_RICrequestID); type=1;} - void select_id_RANfunctionID() { set(id_RANfunctionID); type=2;} - void select_id_RICactionID() { set(id_RICactionID); type=3;} - void select_id_RICindicationSN() { set(id_RICindicationSN); type=4;} - void select_id_RICindicationType() { set(id_RICindicationType); type=5;} - void select_id_RICindicationHeader() { set(id_RICindicationHeader); type=6;} - void select_id_RICindicationMessage() { set(id_RICindicationMessage); type=7;} - void select_id_RICcallProcessID() { set(id_RICcallProcessID); type=8;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_RICrequestID)) { type = 1; return true; } - else if(equal(id_RANfunctionID)) { type = 2; return true; } - else if(equal(id_RICactionID)) { type = 3; return true; } - else if(equal(id_RICindicationSN)) { type = 4; return true; } - else if(equal(id_RICindicationType)) { type = 5; return true; } - else if(equal(id_RICindicationHeader)) { type = 6; return true; } - else if(equal(id_RICindicationMessage)) { type = 7; return true; } - else if(equal(id_RICcallProcessID)) { type = 8; return true; } - else { type = 9; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_RICrequestID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_RANfunctionID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_RICactionID);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_RICindicationSN);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_RICindicationType);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_RICindicationHeader);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(id_RICindicationMessage);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(id_RICcallProcessID);} return false; - case 9: type = 9; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 9; } - void clear() {type = 0;} - void select_id_RICrequestID() { set(reject); type=1;} - void select_id_RANfunctionID() { set(reject); type=2;} - void select_id_RICactionID() { set(reject); type=3;} - void select_id_RICindicationSN() { set(reject); type=4;} - void select_id_RICindicationType() { set(reject); type=5;} - void select_id_RICindicationHeader() { set(reject); type=6;} - void select_id_RICindicationMessage() { set(reject); type=7;} - void select_id_RICcallProcessID() { set(reject); type=8;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(reject)) { type = 3; return true; } - else if(equal(reject)) { type = 4; return true; } - else if(equal(reject)) { type = 5; return true; } - else if(equal(reject)) { type = 6; return true; } - else if(equal(reject)) { type = 7; return true; } - else if(equal(reject)) { type = 8; return true; } - else { type = 9; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(reject);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(reject);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(reject);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(reject);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(reject);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(reject);} return false; - case 9: type = 9; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - RICrequestID& select_id_RICrequestID() { return set(1); } - RICrequestID const* get_id_RICrequestID() const { return get(1); } - RANfunctionID& select_id_RANfunctionID() { return set(2); } - RANfunctionID const* get_id_RANfunctionID() const { return get(2); } - RICactionID& select_id_RICactionID() { return set(3); } - RICactionID const* get_id_RICactionID() const { return get(3); } - RICindicationSN& select_id_RICindicationSN() { return set(4); } - RICindicationSN const* get_id_RICindicationSN() const { return get(4); } - RICindicationType& select_id_RICindicationType() { return set(5); } - RICindicationType const* get_id_RICindicationType() const { return get(5); } - RICindicationHeader& select_id_RICindicationHeader() { return set(6); } - RICindicationHeader const* get_id_RICindicationHeader() const { return get(6); } - RICindicationMessage& select_id_RICindicationMessage() { return set(7); } - RICindicationMessage const* get_id_RICindicationMessage() const { return get(7); } - RICcallProcessID& select_id_RICcallProcessID() { return set(8); } - RICcallProcessID const* get_id_RICcallProcessID() const { return get(8); } - bool is_unknown() const { return type == 9; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - case 7: var.destroy(); break; - case 8: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - v.template operator()(7); - v.template operator()(8); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_RICrequestID()); return true; - case 2: v(select_id_RANfunctionID()); return true; - case 3: v(select_id_RICactionID()); return true; - case 4: v(select_id_RICindicationSN()); return true; - case 5: v(select_id_RICindicationType()); return true; - case 6: v(select_id_RICindicationHeader()); return true; - case 7: v(select_id_RICindicationMessage()); return true; - case 8: v(select_id_RICcallProcessID()); return true; - case 9: if(type != 9) {clear(); asn::base::set();} type = 9; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - case 7: v(var.as()); return true; - case 8: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(RANfunctionID)]; - char dummy2[sizeof(RICactionID)]; - char dummy3[sizeof(RICcallProcessID)]; - char dummy4[sizeof(RICindicationHeader)]; - char dummy5[sizeof(RICindicationMessage)]; - char dummy6[sizeof(RICindicationSN)]; - char dummy7[sizeof(RICindicationType)]; - char dummy8[sizeof(RICrequestID)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 9; } - void clear() {type = 0;} - void select_id_RICrequestID() { set(mandatory); type=1;} - void select_id_RANfunctionID() { set(mandatory); type=2;} - void select_id_RICactionID() { set(mandatory); type=3;} - void select_id_RICindicationSN() { set(mandatory); type=4;} - void select_id_RICindicationType() { set(mandatory); type=5;} - void select_id_RICindicationHeader() { set(mandatory); type=6;} - void select_id_RICindicationMessage() { set(mandatory); type=7;} - void select_id_RICcallProcessID() { set(optional); type=8;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(mandatory)) { type = 4; return true; } - else if(equal(mandatory)) { type = 5; return true; } - else if(equal(mandatory)) { type = 6; return true; } - else if(equal(mandatory)) { type = 7; return true; } - else if(equal(optional)) { type = 8; return true; } - else { type = 9; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(mandatory);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(mandatory);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(mandatory);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(mandatory);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(optional);} return false; - case 9: type = 9; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RICindication ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{RICindication-IEs}}, - ... -} -*/ - -struct RICindication : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "RICindication";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -RICserviceQuery-IEs X2AP-PROTOCOL-IES ::= { - { ID id-RANfunctionsAccepted CRITICALITY reject TYPE RANfunctionsID-List PRESENCE optional}, - ... -} -*/ - -struct RICserviceQuery_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RANfunctionsAccepted() { set(id_RANfunctionsAccepted); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_RANfunctionsAccepted)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_RANfunctionsAccepted);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RANfunctionsAccepted() { set(reject); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - RANfunctionsID_List& select_id_RANfunctionsAccepted() { return set(1); } - RANfunctionsID_List const* get_id_RANfunctionsAccepted() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_RANfunctionsAccepted()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(RANfunctionsID_List)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RANfunctionsAccepted() { set(optional); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RICserviceQuery ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{RICserviceQuery-IEs}}, - ... -} -*/ - -struct RICserviceQuery : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "RICserviceQuery";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -RICserviceUpdate-IEs X2AP-PROTOCOL-IES ::= { - { ID id-RANfunctionsAdded CRITICALITY reject TYPE RANfunctions-List PRESENCE optional}| - { ID id-RANfunctionsModified CRITICALITY reject TYPE RANfunctions-List PRESENCE optional}| - { ID id-RANfunctionsDeleted CRITICALITY reject TYPE RANfunctionsID-List PRESENCE optional}, - ... -} -*/ - -struct RICserviceUpdate_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_RANfunctionsAdded() { set(id_RANfunctionsAdded); type=1;} - void select_id_RANfunctionsModified() { set(id_RANfunctionsModified); type=2;} - void select_id_RANfunctionsDeleted() { set(id_RANfunctionsDeleted); type=3;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_RANfunctionsAdded)) { type = 1; return true; } - else if(equal(id_RANfunctionsModified)) { type = 2; return true; } - else if(equal(id_RANfunctionsDeleted)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_RANfunctionsAdded);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_RANfunctionsModified);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_RANfunctionsDeleted);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_RANfunctionsAdded() { set(reject); type=1;} - void select_id_RANfunctionsModified() { set(reject); type=2;} - void select_id_RANfunctionsDeleted() { set(reject); type=3;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(reject)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(reject);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - RANfunctions_List& select_id_RANfunctionsAdded() { return set(1); } - RANfunctions_List const* get_id_RANfunctionsAdded() const { return get(1); } - RANfunctions_List& select_id_RANfunctionsModified() { return set(2); } - RANfunctions_List const* get_id_RANfunctionsModified() const { return get(2); } - RANfunctionsID_List& select_id_RANfunctionsDeleted() { return set(3); } - RANfunctionsID_List const* get_id_RANfunctionsDeleted() const { return get(3); } - bool is_unknown() const { return type == 4; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_RANfunctionsAdded()); return true; - case 2: v(select_id_RANfunctionsModified()); return true; - case 3: v(select_id_RANfunctionsDeleted()); return true; - case 4: if(type != 4) {clear(); asn::base::set();} type = 4; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(RANfunctionsID_List)]; - char dummy2[sizeof(RANfunctions_List)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_RANfunctionsAdded() { set(optional); type=1;} - void select_id_RANfunctionsModified() { set(optional); type=2;} - void select_id_RANfunctionsDeleted() { set(optional); type=3;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RICserviceUpdate ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{RICserviceUpdate-IEs}}, - ... -} -*/ - -struct RICserviceUpdate : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "RICserviceUpdate";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -RICserviceUpdateAcknowledge-IEs X2AP-PROTOCOL-IES ::= { - { ID id-RANfunctionsAccepted CRITICALITY reject TYPE RANfunctionsID-List PRESENCE optional}| - { ID id-RANfunctionsRejected CRITICALITY reject TYPE RANfunctionsIDcause-List PRESENCE optional}, - ... -} -*/ - -struct RICserviceUpdateAcknowledge_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_RANfunctionsAccepted() { set(id_RANfunctionsAccepted); type=1;} - void select_id_RANfunctionsRejected() { set(id_RANfunctionsRejected); type=2;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_RANfunctionsAccepted)) { type = 1; return true; } - else if(equal(id_RANfunctionsRejected)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_RANfunctionsAccepted);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_RANfunctionsRejected);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_RANfunctionsAccepted() { set(reject); type=1;} - void select_id_RANfunctionsRejected() { set(reject); type=2;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - RANfunctionsID_List& select_id_RANfunctionsAccepted() { return set(1); } - RANfunctionsID_List const* get_id_RANfunctionsAccepted() const { return get(1); } - RANfunctionsIDcause_List& select_id_RANfunctionsRejected() { return set(2); } - RANfunctionsIDcause_List const* get_id_RANfunctionsRejected() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_RANfunctionsAccepted()); return true; - case 2: v(select_id_RANfunctionsRejected()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(RANfunctionsID_List)]; - char dummy2[sizeof(RANfunctionsIDcause_List)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_RANfunctionsAccepted() { set(optional); type=1;} - void select_id_RANfunctionsRejected() { set(optional); type=2;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RICserviceUpdateAcknowledge ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{RICserviceUpdateAcknowledge-IEs}}, - ... -} -*/ - -struct RICserviceUpdateAcknowledge : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "RICserviceUpdateAcknowledge";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -RICserviceUpdateFailure-IEs X2AP-PROTOCOL-IES ::= { - { ID id-RANfunctionsRejected CRITICALITY reject TYPE RANfunctionsIDcause-List PRESENCE optional}| - { ID id-TimeToWait CRITICALITY ignore TYPE TimeToWait PRESENCE optional}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, - ... -} -*/ - -struct RICserviceUpdateFailure_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_RANfunctionsRejected() { set(id_RANfunctionsRejected); type=1;} - void select_id_TimeToWait() { set(id_TimeToWait); type=2;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=3;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_RANfunctionsRejected)) { type = 1; return true; } - else if(equal(id_TimeToWait)) { type = 2; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_RANfunctionsRejected);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_TimeToWait);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_RANfunctionsRejected() { set(reject); type=1;} - void select_id_TimeToWait() { set(ignore); type=2;} - void select_id_CriticalityDiagnostics() { set(ignore); type=3;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - RANfunctionsIDcause_List& select_id_RANfunctionsRejected() { return set(1); } - RANfunctionsIDcause_List const* get_id_RANfunctionsRejected() const { return get(1); } - TimeToWait& select_id_TimeToWait() { return set(2); } - TimeToWait const* get_id_TimeToWait() const { return get(2); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(3); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(3); } - bool is_unknown() const { return type == 4; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_RANfunctionsRejected()); return true; - case 2: v(select_id_TimeToWait()); return true; - case 3: v(select_id_CriticalityDiagnostics()); return true; - case 4: if(type != 4) {clear(); asn::base::set();} type = 4; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CriticalityDiagnostics)]; - char dummy2[sizeof(RANfunctionsIDcause_List)]; - char dummy3[sizeof(TimeToWait)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_RANfunctionsRejected() { set(optional); type=1;} - void select_id_TimeToWait() { set(optional); type=2;} - void select_id_CriticalityDiagnostics() { set(optional); type=3;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RICserviceUpdateFailure ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{RICserviceUpdateFailure-IEs}}, - ... -} -*/ - -struct RICserviceUpdateFailure : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "RICserviceUpdateFailure";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -RICsubscription ::= SEQUENCE { - ricEventTriggerDefinition RICeventTriggerDefinition, - ricAction-ToBeSetup-List RICactions-ToBeSetup-List, - ... -} -*/ - -struct RICsubscription : asn::sequence<2, 0, true, 0> -{ - static constexpr const char* name() {return "RICsubscription";} - using parent_t = asn::sequence<2, 0, true, 0>; - struct ricEventTriggerDefinition_t : RICeventTriggerDefinition - { - static constexpr const char* name() {return "ricEventTriggerDefinition_t";} - using parent_t = RICeventTriggerDefinition; - - }; - ricEventTriggerDefinition_t& ref_ricEventTriggerDefinition() {return ricEventTriggerDefinition;} - ricEventTriggerDefinition_t const& ref_ricEventTriggerDefinition() const {return ricEventTriggerDefinition;} - struct ricAction_ToBeSetup_List_t : RICactions_ToBeSetup_List - { - static constexpr const char* name() {return "ricAction_ToBeSetup_List_t";} - using parent_t = RICactions_ToBeSetup_List; - - }; - ricAction_ToBeSetup_List_t& ref_ricAction_ToBeSetup_List() {return ricAction_ToBeSetup_List;} - ricAction_ToBeSetup_List_t const& ref_ricAction_ToBeSetup_List() const {return ricAction_ToBeSetup_List;} - template void decode(V& v) - { - v(ricEventTriggerDefinition); - v(ricAction_ToBeSetup_List); - - }; - template void encode(V& v) const - { - v(ricEventTriggerDefinition); - v(ricAction_ToBeSetup_List); - - }; - void clear() - { - ricEventTriggerDefinition.clear(); - ricAction_ToBeSetup_List.clear(); - - }; - private: - ricEventTriggerDefinition_t ricEventTriggerDefinition; - ricAction_ToBeSetup_List_t ricAction_ToBeSetup_List; - -}; -/* -RICsubscriptionDeleteFailure-IEs X2AP-PROTOCOL-IES ::= { - { ID id-RICrequestID CRITICALITY reject TYPE RICrequestID PRESENCE mandatory}| - { ID id-RANfunctionID CRITICALITY reject TYPE RANfunctionID PRESENCE mandatory}| - { ID id-RICcause CRITICALITY reject TYPE RICcause PRESENCE mandatory}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, - ... -} -*/ - -struct RICsubscriptionDeleteFailure_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_RICrequestID() { set(id_RICrequestID); type=1;} - void select_id_RANfunctionID() { set(id_RANfunctionID); type=2;} - void select_id_RICcause() { set(id_RICcause); type=3;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=4;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_RICrequestID)) { type = 1; return true; } - else if(equal(id_RANfunctionID)) { type = 2; return true; } - else if(equal(id_RICcause)) { type = 3; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_RICrequestID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_RANfunctionID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_RICcause);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_RICrequestID() { set(reject); type=1;} - void select_id_RANfunctionID() { set(reject); type=2;} - void select_id_RICcause() { set(reject); type=3;} - void select_id_CriticalityDiagnostics() { set(ignore); type=4;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(reject)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(reject);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - RICrequestID& select_id_RICrequestID() { return set(1); } - RICrequestID const* get_id_RICrequestID() const { return get(1); } - RANfunctionID& select_id_RANfunctionID() { return set(2); } - RANfunctionID const* get_id_RANfunctionID() const { return get(2); } - RICcause& select_id_RICcause() { return set(3); } - RICcause const* get_id_RICcause() const { return get(3); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(4); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(4); } - bool is_unknown() const { return type == 5; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_RICrequestID()); return true; - case 2: v(select_id_RANfunctionID()); return true; - case 3: v(select_id_RICcause()); return true; - case 4: v(select_id_CriticalityDiagnostics()); return true; - case 5: if(type != 5) {clear(); asn::base::set();} type = 5; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CriticalityDiagnostics)]; - char dummy2[sizeof(RANfunctionID)]; - char dummy3[sizeof(RICcause)]; - char dummy4[sizeof(RICrequestID)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_RICrequestID() { set(mandatory); type=1;} - void select_id_RANfunctionID() { set(mandatory); type=2;} - void select_id_RICcause() { set(mandatory); type=3;} - void select_id_CriticalityDiagnostics() { set(optional); type=4;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RICsubscriptionDeleteFailure ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{RICsubscriptionDeleteFailure-IEs}}, - ... -} -*/ - -struct RICsubscriptionDeleteFailure : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "RICsubscriptionDeleteFailure";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -RICsubscriptionDeleteRequest-IEs X2AP-PROTOCOL-IES ::= { - { ID id-RICrequestID CRITICALITY reject TYPE RICrequestID PRESENCE mandatory}| - { ID id-RANfunctionID CRITICALITY reject TYPE RANfunctionID PRESENCE mandatory}, - ... -} -*/ - -struct RICsubscriptionDeleteRequest_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_RICrequestID() { set(id_RICrequestID); type=1;} - void select_id_RANfunctionID() { set(id_RANfunctionID); type=2;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_RICrequestID)) { type = 1; return true; } - else if(equal(id_RANfunctionID)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_RICrequestID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_RANfunctionID);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_RICrequestID() { set(reject); type=1;} - void select_id_RANfunctionID() { set(reject); type=2;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - RICrequestID& select_id_RICrequestID() { return set(1); } - RICrequestID const* get_id_RICrequestID() const { return get(1); } - RANfunctionID& select_id_RANfunctionID() { return set(2); } - RANfunctionID const* get_id_RANfunctionID() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_RICrequestID()); return true; - case 2: v(select_id_RANfunctionID()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(RANfunctionID)]; - char dummy2[sizeof(RICrequestID)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_RICrequestID() { set(mandatory); type=1;} - void select_id_RANfunctionID() { set(mandatory); type=2;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RICsubscriptionDeleteRequest ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{RICsubscriptionDeleteRequest-IEs}}, - ... -} -*/ - -struct RICsubscriptionDeleteRequest : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "RICsubscriptionDeleteRequest";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -RICsubscriptionDeleteResponse-IEs X2AP-PROTOCOL-IES ::= { - { ID id-RICrequestID CRITICALITY reject TYPE RICrequestID PRESENCE mandatory}| - { ID id-RANfunctionID CRITICALITY reject TYPE RANfunctionID PRESENCE mandatory}, - ... -} -*/ - -struct RICsubscriptionDeleteResponse_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_RICrequestID() { set(id_RICrequestID); type=1;} - void select_id_RANfunctionID() { set(id_RANfunctionID); type=2;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_RICrequestID)) { type = 1; return true; } - else if(equal(id_RANfunctionID)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_RICrequestID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_RANfunctionID);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_RICrequestID() { set(reject); type=1;} - void select_id_RANfunctionID() { set(reject); type=2;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - RICrequestID& select_id_RICrequestID() { return set(1); } - RICrequestID const* get_id_RICrequestID() const { return get(1); } - RANfunctionID& select_id_RANfunctionID() { return set(2); } - RANfunctionID const* get_id_RANfunctionID() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_RICrequestID()); return true; - case 2: v(select_id_RANfunctionID()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(RANfunctionID)]; - char dummy2[sizeof(RICrequestID)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_RICrequestID() { set(mandatory); type=1;} - void select_id_RANfunctionID() { set(mandatory); type=2;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RICsubscriptionDeleteResponse ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{RICsubscriptionDeleteResponse-IEs}}, - ... -} -*/ - -struct RICsubscriptionDeleteResponse : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "RICsubscriptionDeleteResponse";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -RICsubscriptionFailure-IEs X2AP-PROTOCOL-IES ::= { - { ID id-RICrequestID CRITICALITY reject TYPE RICrequestID PRESENCE mandatory}| - { ID id-RANfunctionID CRITICALITY reject TYPE RANfunctionID PRESENCE mandatory}| - { ID id-RICactions-NotAdmitted CRITICALITY reject TYPE RICaction-NotAdmitted-List PRESENCE mandatory}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, - ... -} -*/ - -struct RICsubscriptionFailure_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_RICrequestID() { set(id_RICrequestID); type=1;} - void select_id_RANfunctionID() { set(id_RANfunctionID); type=2;} - void select_id_RICactions_NotAdmitted() { set(id_RICactions_NotAdmitted); type=3;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=4;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_RICrequestID)) { type = 1; return true; } - else if(equal(id_RANfunctionID)) { type = 2; return true; } - else if(equal(id_RICactions_NotAdmitted)) { type = 3; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_RICrequestID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_RANfunctionID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_RICactions_NotAdmitted);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_RICrequestID() { set(reject); type=1;} - void select_id_RANfunctionID() { set(reject); type=2;} - void select_id_RICactions_NotAdmitted() { set(reject); type=3;} - void select_id_CriticalityDiagnostics() { set(ignore); type=4;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(reject)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(reject);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - RICrequestID& select_id_RICrequestID() { return set(1); } - RICrequestID const* get_id_RICrequestID() const { return get(1); } - RANfunctionID& select_id_RANfunctionID() { return set(2); } - RANfunctionID const* get_id_RANfunctionID() const { return get(2); } - RICaction_NotAdmitted_List& select_id_RICactions_NotAdmitted() { return set(3); } - RICaction_NotAdmitted_List const* get_id_RICactions_NotAdmitted() const { return get(3); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(4); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(4); } - bool is_unknown() const { return type == 5; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_RICrequestID()); return true; - case 2: v(select_id_RANfunctionID()); return true; - case 3: v(select_id_RICactions_NotAdmitted()); return true; - case 4: v(select_id_CriticalityDiagnostics()); return true; - case 5: if(type != 5) {clear(); asn::base::set();} type = 5; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CriticalityDiagnostics)]; - char dummy2[sizeof(RANfunctionID)]; - char dummy3[sizeof(RICaction_NotAdmitted_List)]; - char dummy4[sizeof(RICrequestID)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_RICrequestID() { set(mandatory); type=1;} - void select_id_RANfunctionID() { set(mandatory); type=2;} - void select_id_RICactions_NotAdmitted() { set(mandatory); type=3;} - void select_id_CriticalityDiagnostics() { set(optional); type=4;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RICsubscriptionFailure ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{RICsubscriptionFailure-IEs}}, - ... -} -*/ - -struct RICsubscriptionFailure : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "RICsubscriptionFailure";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -RICsubscriptionRequest-IEs X2AP-PROTOCOL-IES ::= { - { ID id-RICrequestID CRITICALITY reject TYPE RICrequestID PRESENCE mandatory}| - { ID id-RANfunctionID CRITICALITY reject TYPE RANfunctionID PRESENCE mandatory}| - { ID id-RICsubscription CRITICALITY reject TYPE RICsubscription PRESENCE mandatory}, - ... -} -*/ - -struct RICsubscriptionRequest_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_RICrequestID() { set(id_RICrequestID); type=1;} - void select_id_RANfunctionID() { set(id_RANfunctionID); type=2;} - void select_id_RICsubscription() { set(id_RICsubscription); type=3;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_RICrequestID)) { type = 1; return true; } - else if(equal(id_RANfunctionID)) { type = 2; return true; } - else if(equal(id_RICsubscription)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_RICrequestID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_RANfunctionID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_RICsubscription);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_RICrequestID() { set(reject); type=1;} - void select_id_RANfunctionID() { set(reject); type=2;} - void select_id_RICsubscription() { set(reject); type=3;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(reject)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(reject);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - RICrequestID& select_id_RICrequestID() { return set(1); } - RICrequestID const* get_id_RICrequestID() const { return get(1); } - RANfunctionID& select_id_RANfunctionID() { return set(2); } - RANfunctionID const* get_id_RANfunctionID() const { return get(2); } - RICsubscription& select_id_RICsubscription() { return set(3); } - RICsubscription const* get_id_RICsubscription() const { return get(3); } - bool is_unknown() const { return type == 4; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_RICrequestID()); return true; - case 2: v(select_id_RANfunctionID()); return true; - case 3: v(select_id_RICsubscription()); return true; - case 4: if(type != 4) {clear(); asn::base::set();} type = 4; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(RANfunctionID)]; - char dummy2[sizeof(RICrequestID)]; - char dummy3[sizeof(RICsubscription)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_RICrequestID() { set(mandatory); type=1;} - void select_id_RANfunctionID() { set(mandatory); type=2;} - void select_id_RICsubscription() { set(mandatory); type=3;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RICsubscriptionRequest ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{RICsubscriptionRequest-IEs}}, - ... -} -*/ - -struct RICsubscriptionRequest : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "RICsubscriptionRequest";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -RICsubscriptionResponse-IEs X2AP-PROTOCOL-IES ::= { - { ID id-RICrequestID CRITICALITY reject TYPE RICrequestID PRESENCE mandatory } | - { ID id-RANfunctionID CRITICALITY reject TYPE RANfunctionID PRESENCE mandatory } | - { ID id-RICactions-Admitted CRITICALITY reject TYPE RICaction-Admitted-List PRESENCE mandatory } | - { ID id-RICactions-NotAdmitted CRITICALITY reject TYPE RICaction-NotAdmitted-List PRESENCE optional }, - ... -} -*/ - -struct RICsubscriptionResponse_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_RICrequestID() { set(id_RICrequestID); type=1;} - void select_id_RANfunctionID() { set(id_RANfunctionID); type=2;} - void select_id_RICactions_Admitted() { set(id_RICactions_Admitted); type=3;} - void select_id_RICactions_NotAdmitted() { set(id_RICactions_NotAdmitted); type=4;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_RICrequestID)) { type = 1; return true; } - else if(equal(id_RANfunctionID)) { type = 2; return true; } - else if(equal(id_RICactions_Admitted)) { type = 3; return true; } - else if(equal(id_RICactions_NotAdmitted)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_RICrequestID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_RANfunctionID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_RICactions_Admitted);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_RICactions_NotAdmitted);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_RICrequestID() { set(reject); type=1;} - void select_id_RANfunctionID() { set(reject); type=2;} - void select_id_RICactions_Admitted() { set(reject); type=3;} - void select_id_RICactions_NotAdmitted() { set(reject); type=4;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(reject)) { type = 3; return true; } - else if(equal(reject)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(reject);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(reject);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - RICrequestID& select_id_RICrequestID() { return set(1); } - RICrequestID const* get_id_RICrequestID() const { return get(1); } - RANfunctionID& select_id_RANfunctionID() { return set(2); } - RANfunctionID const* get_id_RANfunctionID() const { return get(2); } - RICaction_Admitted_List& select_id_RICactions_Admitted() { return set(3); } - RICaction_Admitted_List const* get_id_RICactions_Admitted() const { return get(3); } - RICaction_NotAdmitted_List& select_id_RICactions_NotAdmitted() { return set(4); } - RICaction_NotAdmitted_List const* get_id_RICactions_NotAdmitted() const { return get(4); } - bool is_unknown() const { return type == 5; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_RICrequestID()); return true; - case 2: v(select_id_RANfunctionID()); return true; - case 3: v(select_id_RICactions_Admitted()); return true; - case 4: v(select_id_RICactions_NotAdmitted()); return true; - case 5: if(type != 5) {clear(); asn::base::set();} type = 5; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(RANfunctionID)]; - char dummy2[sizeof(RICaction_Admitted_List)]; - char dummy3[sizeof(RICaction_NotAdmitted_List)]; - char dummy4[sizeof(RICrequestID)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_RICrequestID() { set(mandatory); type=1;} - void select_id_RANfunctionID() { set(mandatory); type=2;} - void select_id_RICactions_Admitted() { set(mandatory); type=3;} - void select_id_RICactions_NotAdmitted() { set(optional); type=4;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RICsubscriptionResponse ::= SEQUENCE { - protocolIEs ProtocolIE-Container{{RICsubscriptionResponse-IEs}}, - ... -} -*/ - -struct RICsubscriptionResponse : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "RICsubscriptionResponse";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; diff --git a/e2sim/previous/e2apv1sim/src/ASN1/generated/E2AP-PDU-Descriptions.hpp b/e2sim/previous/e2apv1sim/src/ASN1/generated/E2AP-PDU-Descriptions.hpp deleted file mode 100644 index f426b97..0000000 --- a/e2sim/previous/e2apv1sim/src/ASN1/generated/E2AP-PDU-Descriptions.hpp +++ /dev/null @@ -1,980 +0,0 @@ -/***************************************************************************** -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -#pragma once - -#include "asn/asn.hpp" -static_assert(ASN_API_VERSION_MAJOR == 5, "re-generate the ASN parser's code using 'make regen-asn' (do not use -j option)"); - -#include "X2AP-CommonDataTypes.hpp" -#include "X2AP-PDU-Contents.hpp" -#include "X2AP-Constants.hpp" -#include "E2AP-PDU-Contents.hpp" -#include "E2AP-Constants.hpp" - -/* -E2AP-ELEMENTARY-PROCEDURE ::= CLASS { - &InitiatingMessage , - &SuccessfulOutcome OPTIONAL, - &UnsuccessfulOutcome OPTIONAL, - &procedureCode ProcedureCode UNIQUE, - &criticality Criticality DEFAULT ignore -} -WITH SYNTAX { - INITIATING MESSAGE &InitiatingMessage - [SUCCESSFUL OUTCOME &SuccessfulOutcome] - [UNSUCCESSFUL OUTCOME &UnsuccessfulOutcome] - PROCEDURE CODE &procedureCode - [CRITICALITY &criticality] -} -*/ - -struct E2AP_ELEMENTARY_PROCEDURE -{ - struct procedureCode_t : ProcedureCode - { - static constexpr const char* name() {return "procedureCode_t";} - using parent_t = ProcedureCode; - - }; - struct criticality_t : Criticality - { - static constexpr const char* name() {return "criticality_t";} - using parent_t = Criticality; - - }; - -}; -/* -E2AP-ELEMENTARY-PROCEDURES E2AP-ELEMENTARY-PROCEDURE ::= { - E2AP-ELEMENTARY-PROCEDURES-CLASS-1 | - E2AP-ELEMENTARY-PROCEDURES-CLASS-2, - ... -} -*/ - -struct E2AP_ELEMENTARY_PROCEDURES -{ - struct InitiatingMessage_t : asn::typefield - { - ~InitiatingMessage_t() {clear();} - size_t get_index() const {return type;} - RICsubscriptionRequest& select_id_ricSubscription() { return set(1); } - RICsubscriptionRequest const* get_id_ricSubscription() const { return get(1); } - RICsubscriptionDeleteRequest& select_id_ricSubscriptionDelete() { return set(2); } - RICsubscriptionDeleteRequest const* get_id_ricSubscriptionDelete() const { return get(2); } - RICserviceUpdate& select_id_ricServiceUpdate() { return set(3); } - RICserviceUpdate const* get_id_ricServiceUpdate() const { return get(3); } - RICcontrolRequest& select_id_ricControl() { return set(4); } - RICcontrolRequest const* get_id_ricControl() const { return get(4); } - X2SetupRequest& select_id_x2Setup() { return set(5); } - X2SetupRequest const* get_id_x2Setup() const { return get(5); } - ENDCX2SetupRequest& select_id_endcX2Setup() { return set(6); } - ENDCX2SetupRequest const* get_id_endcX2Setup() const { return get(6); } - ResourceStatusRequest& select_id_resourceStatusReportingInitiation() { return set(7); } - ResourceStatusRequest const* get_id_resourceStatusReportingInitiation() const { return get(7); } - ENBConfigurationUpdate& select_id_eNBConfigurationUpdate() { return set(8); } - ENBConfigurationUpdate const* get_id_eNBConfigurationUpdate() const { return get(8); } - ENDCConfigurationUpdate& select_id_endcConfigurationUpdate() { return set(9); } - ENDCConfigurationUpdate const* get_id_endcConfigurationUpdate() const { return get(9); } - ResetRequest& select_id_reset() { return set(10); } - ResetRequest const* get_id_reset() const { return get(10); } - RICindication& select_id_ricIndication() { return set(11); } - RICindication const* get_id_ricIndication() const { return get(11); } - RICserviceQuery& select_id_ricServiceQuery() { return set(12); } - RICserviceQuery const* get_id_ricServiceQuery() const { return get(12); } - LoadInformation& select_id_loadIndication() { return set(13); } - LoadInformation const* get_id_loadIndication() const { return get(13); } - GNBStatusIndication& select_id_gNBStatusIndication() { return set(14); } - GNBStatusIndication const* get_id_gNBStatusIndication() const { return get(14); } - ResourceStatusUpdate& select_id_resourceStatusReporting() { return set(15); } - ResourceStatusUpdate const* get_id_resourceStatusReporting() const { return get(15); } - ErrorIndication& select_id_errorIndication() { return set(16); } - ErrorIndication const* get_id_errorIndication() const { return get(16); } - bool is_unknown() const { return type == 17; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - case 7: var.destroy(); break; - case 8: var.destroy(); break; - case 9: var.destroy(); break; - case 10: var.destroy(); break; - case 11: var.destroy(); break; - case 12: var.destroy(); break; - case 13: var.destroy(); break; - case 14: var.destroy(); break; - case 15: var.destroy(); break; - case 16: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - v.template operator()(7); - v.template operator()(8); - v.template operator()(9); - v.template operator()(10); - v.template operator()(11); - v.template operator()(12); - v.template operator()(13); - v.template operator()(14); - v.template operator()(15); - v.template operator()(16); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_ricSubscription()); return true; - case 2: v(select_id_ricSubscriptionDelete()); return true; - case 3: v(select_id_ricServiceUpdate()); return true; - case 4: v(select_id_ricControl()); return true; - case 5: v(select_id_x2Setup()); return true; - case 6: v(select_id_endcX2Setup()); return true; - case 7: v(select_id_resourceStatusReportingInitiation()); return true; - case 8: v(select_id_eNBConfigurationUpdate()); return true; - case 9: v(select_id_endcConfigurationUpdate()); return true; - case 10: v(select_id_reset()); return true; - case 11: v(select_id_ricIndication()); return true; - case 12: v(select_id_ricServiceQuery()); return true; - case 13: v(select_id_loadIndication()); return true; - case 14: v(select_id_gNBStatusIndication()); return true; - case 15: v(select_id_resourceStatusReporting()); return true; - case 16: v(select_id_errorIndication()); return true; - case 17: if(type != 17) {clear(); asn::base::set();} type = 17; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - case 7: v(var.as()); return true; - case 8: v(var.as()); return true; - case 9: v(var.as()); return true; - case 10: v(var.as()); return true; - case 11: v(var.as()); return true; - case 12: v(var.as()); return true; - case 13: v(var.as()); return true; - case 14: v(var.as()); return true; - case 15: v(var.as()); return true; - case 16: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(ENBConfigurationUpdate)]; - char dummy2[sizeof(ENDCConfigurationUpdate)]; - char dummy3[sizeof(ENDCX2SetupRequest)]; - char dummy4[sizeof(ErrorIndication)]; - char dummy5[sizeof(GNBStatusIndication)]; - char dummy6[sizeof(LoadInformation)]; - char dummy7[sizeof(RICcontrolRequest)]; - char dummy8[sizeof(RICindication)]; - char dummy9[sizeof(RICserviceQuery)]; - char dummy10[sizeof(RICserviceUpdate)]; - char dummy11[sizeof(RICsubscriptionDeleteRequest)]; - char dummy12[sizeof(RICsubscriptionRequest)]; - char dummy13[sizeof(ResetRequest)]; - char dummy14[sizeof(ResourceStatusRequest)]; - char dummy15[sizeof(ResourceStatusUpdate)]; - char dummy16[sizeof(X2SetupRequest)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct SuccessfulOutcome_t : asn::typefield - { - ~SuccessfulOutcome_t() {clear();} - size_t get_index() const {return type;} - RICsubscriptionResponse& select_id_ricSubscription() { return set(1); } - RICsubscriptionResponse const* get_id_ricSubscription() const { return get(1); } - RICsubscriptionDeleteResponse& select_id_ricSubscriptionDelete() { return set(2); } - RICsubscriptionDeleteResponse const* get_id_ricSubscriptionDelete() const { return get(2); } - RICserviceUpdateAcknowledge& select_id_ricServiceUpdate() { return set(3); } - RICserviceUpdateAcknowledge const* get_id_ricServiceUpdate() const { return get(3); } - RICcontrolAcknowledge& select_id_ricControl() { return set(4); } - RICcontrolAcknowledge const* get_id_ricControl() const { return get(4); } - X2SetupResponse& select_id_x2Setup() { return set(5); } - X2SetupResponse const* get_id_x2Setup() const { return get(5); } - ENDCX2SetupResponse& select_id_endcX2Setup() { return set(6); } - ENDCX2SetupResponse const* get_id_endcX2Setup() const { return get(6); } - ResourceStatusResponse& select_id_resourceStatusReportingInitiation() { return set(7); } - ResourceStatusResponse const* get_id_resourceStatusReportingInitiation() const { return get(7); } - ENBConfigurationUpdateAcknowledge& select_id_eNBConfigurationUpdate() { return set(8); } - ENBConfigurationUpdateAcknowledge const* get_id_eNBConfigurationUpdate() const { return get(8); } - ENDCConfigurationUpdateAcknowledge& select_id_endcConfigurationUpdate() { return set(9); } - ENDCConfigurationUpdateAcknowledge const* get_id_endcConfigurationUpdate() const { return get(9); } - ResetResponse& select_id_reset() { return set(10); } - ResetResponse const* get_id_reset() const { return get(10); } - bool is_unknown() const { return type == 17; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - case 7: var.destroy(); break; - case 8: var.destroy(); break; - case 9: var.destroy(); break; - case 10: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - v.template operator()(7); - v.template operator()(8); - v.template operator()(9); - v.template operator()(10); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_ricSubscription()); return true; - case 2: v(select_id_ricSubscriptionDelete()); return true; - case 3: v(select_id_ricServiceUpdate()); return true; - case 4: v(select_id_ricControl()); return true; - case 5: v(select_id_x2Setup()); return true; - case 6: v(select_id_endcX2Setup()); return true; - case 7: v(select_id_resourceStatusReportingInitiation()); return true; - case 8: v(select_id_eNBConfigurationUpdate()); return true; - case 9: v(select_id_endcConfigurationUpdate()); return true; - case 10: v(select_id_reset()); return true; - case 17: if(type != 17) {clear(); asn::base::set();} type = 17; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - case 7: v(var.as()); return true; - case 8: v(var.as()); return true; - case 9: v(var.as()); return true; - case 10: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(ENBConfigurationUpdateAcknowledge)]; - char dummy2[sizeof(ENDCConfigurationUpdateAcknowledge)]; - char dummy3[sizeof(ENDCX2SetupResponse)]; - char dummy4[sizeof(RICcontrolAcknowledge)]; - char dummy5[sizeof(RICserviceUpdateAcknowledge)]; - char dummy6[sizeof(RICsubscriptionDeleteResponse)]; - char dummy7[sizeof(RICsubscriptionResponse)]; - char dummy8[sizeof(ResetResponse)]; - char dummy9[sizeof(ResourceStatusResponse)]; - char dummy10[sizeof(X2SetupResponse)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct UnsuccessfulOutcome_t : asn::typefield - { - ~UnsuccessfulOutcome_t() {clear();} - size_t get_index() const {return type;} - RICsubscriptionFailure& select_id_ricSubscription() { return set(1); } - RICsubscriptionFailure const* get_id_ricSubscription() const { return get(1); } - RICsubscriptionDeleteFailure& select_id_ricSubscriptionDelete() { return set(2); } - RICsubscriptionDeleteFailure const* get_id_ricSubscriptionDelete() const { return get(2); } - RICserviceUpdateFailure& select_id_ricServiceUpdate() { return set(3); } - RICserviceUpdateFailure const* get_id_ricServiceUpdate() const { return get(3); } - RICcontrolFailure& select_id_ricControl() { return set(4); } - RICcontrolFailure const* get_id_ricControl() const { return get(4); } - X2SetupFailure& select_id_x2Setup() { return set(5); } - X2SetupFailure const* get_id_x2Setup() const { return get(5); } - ENDCX2SetupFailure& select_id_endcX2Setup() { return set(6); } - ENDCX2SetupFailure const* get_id_endcX2Setup() const { return get(6); } - ResourceStatusFailure& select_id_resourceStatusReportingInitiation() { return set(7); } - ResourceStatusFailure const* get_id_resourceStatusReportingInitiation() const { return get(7); } - ENBConfigurationUpdateFailure& select_id_eNBConfigurationUpdate() { return set(8); } - ENBConfigurationUpdateFailure const* get_id_eNBConfigurationUpdate() const { return get(8); } - ENDCConfigurationUpdateFailure& select_id_endcConfigurationUpdate() { return set(9); } - ENDCConfigurationUpdateFailure const* get_id_endcConfigurationUpdate() const { return get(9); } - bool is_unknown() const { return type == 17; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - case 7: var.destroy(); break; - case 8: var.destroy(); break; - case 9: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - v.template operator()(7); - v.template operator()(8); - v.template operator()(9); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_ricSubscription()); return true; - case 2: v(select_id_ricSubscriptionDelete()); return true; - case 3: v(select_id_ricServiceUpdate()); return true; - case 4: v(select_id_ricControl()); return true; - case 5: v(select_id_x2Setup()); return true; - case 6: v(select_id_endcX2Setup()); return true; - case 7: v(select_id_resourceStatusReportingInitiation()); return true; - case 8: v(select_id_eNBConfigurationUpdate()); return true; - case 9: v(select_id_endcConfigurationUpdate()); return true; - case 17: if(type != 17) {clear(); asn::base::set();} type = 17; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - case 7: v(var.as()); return true; - case 8: v(var.as()); return true; - case 9: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(ENBConfigurationUpdateFailure)]; - char dummy2[sizeof(ENDCConfigurationUpdateFailure)]; - char dummy3[sizeof(ENDCX2SetupFailure)]; - char dummy4[sizeof(RICcontrolFailure)]; - char dummy5[sizeof(RICserviceUpdateFailure)]; - char dummy6[sizeof(RICsubscriptionDeleteFailure)]; - char dummy7[sizeof(RICsubscriptionFailure)]; - char dummy8[sizeof(ResourceStatusFailure)]; - char dummy9[sizeof(X2SetupFailure)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct procedureCode_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 17; } - void clear() {type = 0;} - void select_id_ricSubscription() { set(id_ricSubscription); type=1;} - void select_id_ricSubscriptionDelete() { set(id_ricSubscriptionDelete); type=2;} - void select_id_ricServiceUpdate() { set(id_ricServiceUpdate); type=3;} - void select_id_ricControl() { set(id_ricControl); type=4;} - void select_id_x2Setup() { set(id_x2Setup); type=5;} - void select_id_endcX2Setup() { set(id_endcX2Setup); type=6;} - void select_id_resourceStatusReportingInitiation() { set(id_resourceStatusReportingInitiation); type=7;} - void select_id_eNBConfigurationUpdate() { set(id_eNBConfigurationUpdate); type=8;} - void select_id_endcConfigurationUpdate() { set(id_endcConfigurationUpdate); type=9;} - void select_id_reset() { set(id_reset); type=10;} - void select_id_ricIndication() { set(id_ricIndication); type=11;} - void select_id_ricServiceQuery() { set(id_ricServiceQuery); type=12;} - void select_id_loadIndication() { set(id_loadIndication); type=13;} - void select_id_gNBStatusIndication() { set(id_gNBStatusIndication); type=14;} - void select_id_resourceStatusReporting() { set(id_resourceStatusReporting); type=15;} - void select_id_errorIndication() { set(id_errorIndication); type=16;} - E2AP_ELEMENTARY_PROCEDURE::procedureCode_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_ricSubscription)) { type = 1; return true; } - else if(equal(id_ricSubscriptionDelete)) { type = 2; return true; } - else if(equal(id_ricServiceUpdate)) { type = 3; return true; } - else if(equal(id_ricControl)) { type = 4; return true; } - else if(equal(id_x2Setup)) { type = 5; return true; } - else if(equal(id_endcX2Setup)) { type = 6; return true; } - else if(equal(id_resourceStatusReportingInitiation)) { type = 7; return true; } - else if(equal(id_eNBConfigurationUpdate)) { type = 8; return true; } - else if(equal(id_endcConfigurationUpdate)) { type = 9; return true; } - else if(equal(id_reset)) { type = 10; return true; } - else if(equal(id_ricIndication)) { type = 11; return true; } - else if(equal(id_ricServiceQuery)) { type = 12; return true; } - else if(equal(id_loadIndication)) { type = 13; return true; } - else if(equal(id_gNBStatusIndication)) { type = 14; return true; } - else if(equal(id_resourceStatusReporting)) { type = 15; return true; } - else if(equal(id_errorIndication)) { type = 16; return true; } - else { type = 17; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_ricSubscription);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_ricSubscriptionDelete);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_ricServiceUpdate);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_ricControl);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_x2Setup);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_endcX2Setup);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(id_resourceStatusReportingInitiation);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(id_eNBConfigurationUpdate);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(id_endcConfigurationUpdate);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(id_reset);} return false; - case 11: type = 11; if(v(ref_nested())) { return equal(id_ricIndication);} return false; - case 12: type = 12; if(v(ref_nested())) { return equal(id_ricServiceQuery);} return false; - case 13: type = 13; if(v(ref_nested())) { return equal(id_loadIndication);} return false; - case 14: type = 14; if(v(ref_nested())) { return equal(id_gNBStatusIndication);} return false; - case 15: type = 15; if(v(ref_nested())) { return equal(id_resourceStatusReporting);} return false; - case 16: type = 16; if(v(ref_nested())) { return equal(id_errorIndication);} return false; - case 17: type = 17; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 17; } - void clear() {type = 0;} - void select_id_ricSubscription() { set(reject); type=1;} - void select_id_ricSubscriptionDelete() { set(reject); type=2;} - void select_id_ricServiceUpdate() { set(reject); type=3;} - void select_id_ricControl() { set(reject); type=4;} - void select_id_x2Setup() { set(reject); type=5;} - void select_id_endcX2Setup() { set(reject); type=6;} - void select_id_resourceStatusReportingInitiation() { set(reject); type=7;} - void select_id_eNBConfigurationUpdate() { set(reject); type=8;} - void select_id_endcConfigurationUpdate() { set(reject); type=9;} - void select_id_reset() { set(reject); type=10;} - void select_id_ricIndication() { set(ignore); type=11;} - void select_id_ricServiceQuery() { set(ignore); type=12;} - void select_id_loadIndication() { set(ignore); type=13;} - void select_id_gNBStatusIndication() { set(ignore); type=14;} - void select_id_resourceStatusReporting() { set(ignore); type=15;} - void select_id_errorIndication() { set(ignore); type=16;} - E2AP_ELEMENTARY_PROCEDURE::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(reject)) { type = 3; return true; } - else if(equal(reject)) { type = 4; return true; } - else if(equal(reject)) { type = 5; return true; } - else if(equal(reject)) { type = 6; return true; } - else if(equal(reject)) { type = 7; return true; } - else if(equal(reject)) { type = 8; return true; } - else if(equal(reject)) { type = 9; return true; } - else if(equal(reject)) { type = 10; return true; } - else if(equal(ignore)) { type = 11; return true; } - else if(equal(ignore)) { type = 12; return true; } - else if(equal(ignore)) { type = 13; return true; } - else if(equal(ignore)) { type = 14; return true; } - else if(equal(ignore)) { type = 15; return true; } - else if(equal(ignore)) { type = 16; return true; } - else { type = 17; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(reject);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(reject);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(reject);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(reject);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(reject);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(reject);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(reject);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(reject);} return false; - case 11: type = 11; if(v(ref_nested())) { return equal(ignore);} return false; - case 12: type = 12; if(v(ref_nested())) { return equal(ignore);} return false; - case 13: type = 13; if(v(ref_nested())) { return equal(ignore);} return false; - case 14: type = 14; if(v(ref_nested())) { return equal(ignore);} return false; - case 15: type = 15; if(v(ref_nested())) { return equal(ignore);} return false; - case 16: type = 16; if(v(ref_nested())) { return equal(ignore);} return false; - case 17: type = 17; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -InitiatingMessage ::= SEQUENCE { - procedureCode E2AP-ELEMENTARY-PROCEDURE.&procedureCode({E2AP-ELEMENTARY-PROCEDURES}), - criticality E2AP-ELEMENTARY-PROCEDURE.&criticality({E2AP-ELEMENTARY-PROCEDURES}{@procedureCode}), - value E2AP-ELEMENTARY-PROCEDURE.&InitiatingMessage({E2AP-ELEMENTARY-PROCEDURES}{@procedureCode}) -} -*/ - -struct InitiatingMessage : asn::sequence<3, 0, false, 0> -{ - static constexpr const char* name() {return "InitiatingMessage";} - using parent_t = asn::sequence<3, 0, false, 0>; - struct procedureCode_t : E2AP_ELEMENTARY_PROCEDURES::procedureCode_t - { - static constexpr const char* name() {return "procedureCode_t";} - using parent_t = typename E2AP_ELEMENTARY_PROCEDURES::procedureCode_t; - template bool decode(V& v, InitiatingMessage const& c) - { - return E2AP_ELEMENTARY_PROCEDURES::procedureCode_t::decode(v); - }; - template bool encode(V& v, InitiatingMessage const& c) const - { - return E2AP_ELEMENTARY_PROCEDURES::procedureCode_t::encode(v); - }; - }; - procedureCode_t& ref_procedureCode() {return procedureCode;} - procedureCode_t const& ref_procedureCode() const {return procedureCode;} - struct criticality_t : E2AP_ELEMENTARY_PROCEDURES::criticality_t - { - static constexpr const char* name() {return "criticality_t";} - using parent_t = typename E2AP_ELEMENTARY_PROCEDURES::criticality_t; - template bool decode(V& v, InitiatingMessage const& c) - { - return E2AP_ELEMENTARY_PROCEDURES::criticality_t::decode(c.procedureCode.get_index(), v); - }; - template bool encode(V& v, InitiatingMessage const& c) const - { - return E2AP_ELEMENTARY_PROCEDURES::criticality_t::encode(c.procedureCode.get_index(), v); - }; - }; - criticality_t& ref_criticality() {return criticality;} - criticality_t const& ref_criticality() const {return criticality;} - struct value_t : E2AP_ELEMENTARY_PROCEDURES::InitiatingMessage_t - { - static constexpr const char* name() {return "value_t";} - using parent_t = typename E2AP_ELEMENTARY_PROCEDURES::InitiatingMessage_t; - template bool decode(V& v, InitiatingMessage const& c) - { - return E2AP_ELEMENTARY_PROCEDURES::InitiatingMessage_t::decode(c.procedureCode.get_index(), v); - }; - template bool encode(V& v, InitiatingMessage const& c) const - { - return E2AP_ELEMENTARY_PROCEDURES::InitiatingMessage_t::encode(c.procedureCode.get_index(), v); - }; - }; - value_t& ref_value() {return value;} - value_t const& ref_value() const {return value;} - template void decode(V& v) - { - v(procedureCode); - v(criticality); - v(value); - - }; - template void encode(V& v) const - { - v(procedureCode); - v(criticality); - v(value); - - }; - void clear() - { - procedureCode.clear(); - criticality.clear(); - value.clear(); - - }; - private: - procedureCode_t procedureCode; - criticality_t criticality; - value_t value; - -}; -/* -SuccessfulOutcome ::= SEQUENCE { - procedureCode E2AP-ELEMENTARY-PROCEDURE.&procedureCode({E2AP-ELEMENTARY-PROCEDURES}), - criticality E2AP-ELEMENTARY-PROCEDURE.&criticality({E2AP-ELEMENTARY-PROCEDURES}{@procedureCode}), - value E2AP-ELEMENTARY-PROCEDURE.&SuccessfulOutcome({E2AP-ELEMENTARY-PROCEDURES}{@procedureCode}) -} -*/ - -struct SuccessfulOutcome : asn::sequence<3, 0, false, 0> -{ - static constexpr const char* name() {return "SuccessfulOutcome";} - using parent_t = asn::sequence<3, 0, false, 0>; - struct procedureCode_t : E2AP_ELEMENTARY_PROCEDURES::procedureCode_t - { - static constexpr const char* name() {return "procedureCode_t";} - using parent_t = typename E2AP_ELEMENTARY_PROCEDURES::procedureCode_t; - template bool decode(V& v, SuccessfulOutcome const& c) - { - return E2AP_ELEMENTARY_PROCEDURES::procedureCode_t::decode(v); - }; - template bool encode(V& v, SuccessfulOutcome const& c) const - { - return E2AP_ELEMENTARY_PROCEDURES::procedureCode_t::encode(v); - }; - }; - procedureCode_t& ref_procedureCode() {return procedureCode;} - procedureCode_t const& ref_procedureCode() const {return procedureCode;} - struct criticality_t : E2AP_ELEMENTARY_PROCEDURES::criticality_t - { - static constexpr const char* name() {return "criticality_t";} - using parent_t = typename E2AP_ELEMENTARY_PROCEDURES::criticality_t; - template bool decode(V& v, SuccessfulOutcome const& c) - { - return E2AP_ELEMENTARY_PROCEDURES::criticality_t::decode(c.procedureCode.get_index(), v); - }; - template bool encode(V& v, SuccessfulOutcome const& c) const - { - return E2AP_ELEMENTARY_PROCEDURES::criticality_t::encode(c.procedureCode.get_index(), v); - }; - }; - criticality_t& ref_criticality() {return criticality;} - criticality_t const& ref_criticality() const {return criticality;} - struct value_t : E2AP_ELEMENTARY_PROCEDURES::SuccessfulOutcome_t - { - static constexpr const char* name() {return "value_t";} - using parent_t = typename E2AP_ELEMENTARY_PROCEDURES::SuccessfulOutcome_t; - template bool decode(V& v, SuccessfulOutcome const& c) - { - return E2AP_ELEMENTARY_PROCEDURES::SuccessfulOutcome_t::decode(c.procedureCode.get_index(), v); - }; - template bool encode(V& v, SuccessfulOutcome const& c) const - { - return E2AP_ELEMENTARY_PROCEDURES::SuccessfulOutcome_t::encode(c.procedureCode.get_index(), v); - }; - }; - value_t& ref_value() {return value;} - value_t const& ref_value() const {return value;} - template void decode(V& v) - { - v(procedureCode); - v(criticality); - v(value); - - }; - template void encode(V& v) const - { - v(procedureCode); - v(criticality); - v(value); - - }; - void clear() - { - procedureCode.clear(); - criticality.clear(); - value.clear(); - - }; - private: - procedureCode_t procedureCode; - criticality_t criticality; - value_t value; - -}; -/* -UnsuccessfulOutcome ::= SEQUENCE { - procedureCode E2AP-ELEMENTARY-PROCEDURE.&procedureCode({E2AP-ELEMENTARY-PROCEDURES}), - criticality E2AP-ELEMENTARY-PROCEDURE.&criticality({E2AP-ELEMENTARY-PROCEDURES}{@procedureCode}), - value E2AP-ELEMENTARY-PROCEDURE.&UnsuccessfulOutcome({E2AP-ELEMENTARY-PROCEDURES}{@procedureCode}) -} -*/ - -struct UnsuccessfulOutcome : asn::sequence<3, 0, false, 0> -{ - static constexpr const char* name() {return "UnsuccessfulOutcome";} - using parent_t = asn::sequence<3, 0, false, 0>; - struct procedureCode_t : E2AP_ELEMENTARY_PROCEDURES::procedureCode_t - { - static constexpr const char* name() {return "procedureCode_t";} - using parent_t = typename E2AP_ELEMENTARY_PROCEDURES::procedureCode_t; - template bool decode(V& v, UnsuccessfulOutcome const& c) - { - return E2AP_ELEMENTARY_PROCEDURES::procedureCode_t::decode(v); - }; - template bool encode(V& v, UnsuccessfulOutcome const& c) const - { - return E2AP_ELEMENTARY_PROCEDURES::procedureCode_t::encode(v); - }; - }; - procedureCode_t& ref_procedureCode() {return procedureCode;} - procedureCode_t const& ref_procedureCode() const {return procedureCode;} - struct criticality_t : E2AP_ELEMENTARY_PROCEDURES::criticality_t - { - static constexpr const char* name() {return "criticality_t";} - using parent_t = typename E2AP_ELEMENTARY_PROCEDURES::criticality_t; - template bool decode(V& v, UnsuccessfulOutcome const& c) - { - return E2AP_ELEMENTARY_PROCEDURES::criticality_t::decode(c.procedureCode.get_index(), v); - }; - template bool encode(V& v, UnsuccessfulOutcome const& c) const - { - return E2AP_ELEMENTARY_PROCEDURES::criticality_t::encode(c.procedureCode.get_index(), v); - }; - }; - criticality_t& ref_criticality() {return criticality;} - criticality_t const& ref_criticality() const {return criticality;} - struct value_t : E2AP_ELEMENTARY_PROCEDURES::UnsuccessfulOutcome_t - { - static constexpr const char* name() {return "value_t";} - using parent_t = typename E2AP_ELEMENTARY_PROCEDURES::UnsuccessfulOutcome_t; - template bool decode(V& v, UnsuccessfulOutcome const& c) - { - return E2AP_ELEMENTARY_PROCEDURES::UnsuccessfulOutcome_t::decode(c.procedureCode.get_index(), v); - }; - template bool encode(V& v, UnsuccessfulOutcome const& c) const - { - return E2AP_ELEMENTARY_PROCEDURES::UnsuccessfulOutcome_t::encode(c.procedureCode.get_index(), v); - }; - }; - value_t& ref_value() {return value;} - value_t const& ref_value() const {return value;} - template void decode(V& v) - { - v(procedureCode); - v(criticality); - v(value); - - }; - template void encode(V& v) const - { - v(procedureCode); - v(criticality); - v(value); - - }; - void clear() - { - procedureCode.clear(); - criticality.clear(); - value.clear(); - - }; - private: - procedureCode_t procedureCode; - criticality_t criticality; - value_t value; - -}; -/* -E2AP-PDU ::= CHOICE { - initiatingMessage InitiatingMessage, - successfulOutcome SuccessfulOutcome, - unsuccessfulOutcome UnsuccessfulOutcome, - ... -} -*/ - -struct E2AP_PDU : asn::choice<3, 0, true> -{ - static constexpr const char* name() {return "E2AP-PDU";} - using parent_t = asn::choice<3, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 4;} - void set_unknown() { set_index(4); } - ~E2AP_PDU() {clear();} - struct initiatingMessage_t : InitiatingMessage - { - static constexpr const char* name() {return "initiatingMessage_t";} - using parent_t = InitiatingMessage; - - }; - struct successfulOutcome_t : SuccessfulOutcome - { - static constexpr const char* name() {return "successfulOutcome_t";} - using parent_t = SuccessfulOutcome; - - }; - struct unsuccessfulOutcome_t : UnsuccessfulOutcome - { - static constexpr const char* name() {return "unsuccessfulOutcome_t";} - using parent_t = UnsuccessfulOutcome; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - case 3: set_index(3); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - case 3: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - - } - initiatingMessage_t& select_initiatingMessage() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - initiatingMessage_t const* get_initiatingMessage() const { if(get_index() == 1) { return &var.as();} return nullptr; } - successfulOutcome_t& select_successfulOutcome() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - successfulOutcome_t const* get_successfulOutcome() const { if(get_index() == 2) { return &var.as();} return nullptr; } - unsuccessfulOutcome_t& select_unsuccessfulOutcome() { if(get_index() != 3) { clear(); set_index(3); return var.build();} return var.as();} - unsuccessfulOutcome_t const* get_unsuccessfulOutcome() const { if(get_index() == 3) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(initiatingMessage_t)]; - char dummy2[sizeof(successfulOutcome_t)]; - char dummy3[sizeof(unsuccessfulOutcome_t)]; - - }; - asn::variant var; - index_type index {0}; -}; diff --git a/e2sim/previous/e2apv1sim/src/ASN1/generated/X2AP-CommonDataTypes.hpp b/e2sim/previous/e2apv1sim/src/ASN1/generated/X2AP-CommonDataTypes.hpp deleted file mode 100644 index 0e1bb53..0000000 --- a/e2sim/previous/e2apv1sim/src/ASN1/generated/X2AP-CommonDataTypes.hpp +++ /dev/null @@ -1,188 +0,0 @@ -/***************************************************************************** -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -#pragma once - -#include "asn/asn.hpp" -static_assert(ASN_API_VERSION_MAJOR == 5, "re-generate the ASN parser's code using 'make regen-asn' (do not use -j option)"); - - -/* -Criticality ::= ENUMERATED { reject, ignore, notify } -*/ - -struct Criticality : asn::enumerated<3, 0, false> -{ - static constexpr const char* name() {return "Criticality";} - using parent_t = asn::enumerated<3, 0, false>; - typedef enum { - reject - ,ignore - ,notify - } index_t; - -}; - -/* -Presence ::= ENUMERATED { optional, conditional, mandatory } -*/ - -struct Presence : asn::enumerated<3, 0, false> -{ - static constexpr const char* name() {return "Presence";} - using parent_t = asn::enumerated<3, 0, false>; - typedef enum { - optional - ,conditional - ,mandatory - } index_t; - -}; - -/* -maxPrivateIEs INTEGER ::= 65535 -*/ - -constexpr int64_t maxPrivateIEs = 65535; -/* -PrivateIE-ID ::= CHOICE { - local INTEGER (0.. maxPrivateIEs), - global OBJECT IDENTIFIER -} -*/ - -struct PrivateIE_ID : asn::choice<2, 0, false> -{ - static constexpr const char* name() {return "PrivateIE-ID";} - using parent_t = asn::choice<2, 0, false>; - index_type get_index() const {return index;} - ~PrivateIE_ID() {clear();} - struct local_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "local_t";} - using parent_t = asn::integer<>; - - }; - - struct global_t : asn::oid - { - static constexpr const char* name() {return "global_t";} - using parent_t = asn::oid; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - local_t& select_local() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - local_t const* get_local() const { if(get_index() == 1) { return &var.as();} return nullptr; } - global_t& select_global() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - global_t const* get_global() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(local_t)]; - char dummy2[sizeof(global_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -ProcedureCode ::= INTEGER (0..255) -*/ - -struct ProcedureCode : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "ProcedureCode";} - using parent_t = asn::integer<>; - -}; - -/* -maxProtocolIEs INTEGER ::= 65535 -*/ - -constexpr int64_t maxProtocolIEs = 65535; -/* -ProtocolIE-ID ::= INTEGER (0..maxProtocolIEs) -*/ - -struct ProtocolIE_ID : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "ProtocolIE-ID";} - using parent_t = asn::integer<>; - -}; - -/* -TriggeringMessage ::= ENUMERATED { initiating-message, successful-outcome, unsuccessful-outcome} -*/ - -struct TriggeringMessage : asn::enumerated<3, 0, false> -{ - static constexpr const char* name() {return "TriggeringMessage";} - using parent_t = asn::enumerated<3, 0, false>; - typedef enum { - initiating_message - ,successful_outcome - ,unsuccessful_outcome - } index_t; - -}; - -/* -maxProtocolExtensions INTEGER ::= 65535 -*/ - -constexpr int64_t maxProtocolExtensions = 65535; diff --git a/e2sim/previous/e2apv1sim/src/ASN1/generated/X2AP-Constants.hpp b/e2sim/previous/e2apv1sim/src/ASN1/generated/X2AP-Constants.hpp deleted file mode 100644 index 28be45d..0000000 --- a/e2sim/previous/e2apv1sim/src/ASN1/generated/X2AP-Constants.hpp +++ /dev/null @@ -1,2054 +0,0 @@ -/***************************************************************************** -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -#pragma once - -#include "asn/asn.hpp" -static_assert(ASN_API_VERSION_MAJOR == 5, "re-generate the ASN parser's code using 'make regen-asn' (do not use -j option)"); - -#include "X2AP-CommonDataTypes.hpp" - -/* -id-ABS-Status ProtocolIE-ID ::= 63 -*/ - -constexpr int64_t id_ABS_Status = 63; -/* -id-ABSInformation ProtocolIE-ID ::= 61 -*/ - -constexpr int64_t id_ABSInformation = 61; -/* -id-ActivatedCellList ProtocolIE-ID ::= 58 -*/ - -constexpr int64_t id_ActivatedCellList = 58; -/* -id-ActivatedNRCellList ProtocolIE-ID ::= 268 -*/ - -constexpr int64_t id_ActivatedNRCellList = 268; -/* -id-ActivationID ProtocolIE-ID ::= 256 -*/ - -constexpr int64_t id_ActivationID = 256; -/* -id-AdditionalSpecialSubframe-Info ProtocolIE-ID ::= 97 -*/ - -constexpr int64_t id_AdditionalSpecialSubframe_Info = 97; -/* -id-AdditionalSpecialSubframeExtension-Info ProtocolIE-ID ::= 179 -*/ - -constexpr int64_t id_AdditionalSpecialSubframeExtension_Info = 179; -/* -id-AdmittedSplitSRBs ProtocolIE-ID ::= 212 -*/ - -constexpr int64_t id_AdmittedSplitSRBs = 212; -/* -id-AdmittedSplitSRBsrelease ProtocolIE-ID ::= 281 -*/ - -constexpr int64_t id_AdmittedSplitSRBsrelease = 281; -/* -id-AerialUEsubscriptionInformation ProtocolIE-ID ::= 277 -*/ - -constexpr int64_t id_AerialUEsubscriptionInformation = 277; -/* -id-BandwidthReducedSI ProtocolIE-ID ::= 180 -*/ - -constexpr int64_t id_BandwidthReducedSI = 180; -/* -id-BearerType ProtocolIE-ID ::= 171 -*/ - -constexpr int64_t id_BearerType = 171; -/* -id-BluetoothMeasurementConfiguration ProtocolIE-ID ::= 303 -*/ - -constexpr int64_t id_BluetoothMeasurementConfiguration = 303; -/* -id-CNTypeRestrictions ProtocolIE-ID ::= 301 -*/ - -constexpr int64_t id_CNTypeRestrictions = 301; -/* -id-CSG-Id ProtocolIE-ID ::= 70 -*/ - -constexpr int64_t id_CSG_Id = 70; -/* -id-CSGMembershipStatus ProtocolIE-ID ::= 71 -*/ - -constexpr int64_t id_CSGMembershipStatus = 71; -/* -id-CSIReportList ProtocolIE-ID ::= 146 -*/ - -constexpr int64_t id_CSIReportList = 146; -/* -id-Cause ProtocolIE-ID ::= 5 -*/ - -constexpr int64_t id_Cause = 5; -/* -id-CellAssistanceInformation ProtocolIE-ID ::= 251 -*/ - -constexpr int64_t id_CellAssistanceInformation = 251; -/* -id-CellInformation ProtocolIE-ID ::= 6 -*/ - -constexpr int64_t id_CellInformation = 6; -/* -id-CellInformation-Item ProtocolIE-ID ::= 7 -*/ - -constexpr int64_t id_CellInformation_Item = 7; -/* -id-CellMeasurementResult ProtocolIE-ID ::= 32 -*/ - -constexpr int64_t id_CellMeasurementResult = 32; -/* -id-CellMeasurementResult-Item ProtocolIE-ID ::= 33 -*/ - -constexpr int64_t id_CellMeasurementResult_Item = 33; -/* -id-CellReportingIndicator ProtocolIE-ID ::= 170 -*/ - -constexpr int64_t id_CellReportingIndicator = 170; -/* -id-CellToReport ProtocolIE-ID ::= 29 -*/ - -constexpr int64_t id_CellToReport = 29; -/* -id-CellToReport-Item ProtocolIE-ID ::= 31 -*/ - -constexpr int64_t id_CellToReport_Item = 31; -/* -id-CoMPInformation ProtocolIE-ID ::= 108 -*/ - -constexpr int64_t id_CoMPInformation = 108; -/* -id-CompleteFailureCauseInformation-Item ProtocolIE-ID ::= 69 -*/ - -constexpr int64_t id_CompleteFailureCauseInformation_Item = 69; -/* -id-CompleteFailureCauseInformation-List ProtocolIE-ID ::= 68 -*/ - -constexpr int64_t id_CompleteFailureCauseInformation_List = 68; -/* -id-CompositeAvailableCapacityGroup ProtocolIE-ID ::= 42 -*/ - -constexpr int64_t id_CompositeAvailableCapacityGroup = 42; -/* -id-Correlation-ID ProtocolIE-ID ::= 166 -*/ - -constexpr int64_t id_Correlation_ID = 166; -/* -id-CoverageModificationList ProtocolIE-ID ::= 143 -*/ - -constexpr int64_t id_CoverageModificationList = 143; -/* -id-CriticalityDiagnostics ProtocolIE-ID ::= 17 -*/ - -constexpr int64_t id_CriticalityDiagnostics = 17; -/* -id-DL-EARFCNExtension ProtocolIE-ID ::= 96 -*/ - -constexpr int64_t id_DL_EARFCNExtension = 96; -/* -id-DL-scheduling-PDCCH-CCE-usage ProtocolIE-ID ::= 193 -*/ - -constexpr int64_t id_DL_scheduling_PDCCH_CCE_usage = 193; -/* -id-DLCOUNTValueExtended ProtocolIE-ID ::= 93 -*/ - -constexpr int64_t id_DLCOUNTValueExtended = 93; -/* -id-DLCOUNTValuePDCP-SNlength18 ProtocolIE-ID ::= 152 -*/ - -constexpr int64_t id_DLCOUNTValuePDCP_SNlength18 = 152; -/* -id-DataTrafficResourceIndication ProtocolIE-ID ::= 287 -*/ - -constexpr int64_t id_DataTrafficResourceIndication = 287; -/* -id-DeactivationIndication ProtocolIE-ID ::= 59 -*/ - -constexpr int64_t id_DeactivationIndication = 59; -/* -id-DownlinkPacketLossRate ProtocolIE-ID ::= 273 -*/ - -constexpr int64_t id_DownlinkPacketLossRate = 273; -/* -id-DynamicDLTransmissionInformation ProtocolIE-ID ::= 106 -*/ - -constexpr int64_t id_DynamicDLTransmissionInformation = 106; -/* -id-E-RAB-Item ProtocolIE-ID ::= 2 -*/ - -constexpr int64_t id_E_RAB_Item = 2; -/* -id-E-RABUsageReport-Item ProtocolIE-ID ::= 263 -*/ - -constexpr int64_t id_E_RABUsageReport_Item = 263; -/* -id-E-RABs-Admitted-Item ProtocolIE-ID ::= 0 -*/ - -constexpr int64_t id_E_RABs_Admitted_Item = 0; -/* -id-E-RABs-Admitted-List ProtocolIE-ID ::= 1 -*/ - -constexpr int64_t id_E_RABs_Admitted_List = 1; -/* -id-E-RABs-Admitted-ToBeAdded-Item ProtocolIE-ID ::= 121 -*/ - -constexpr int64_t id_E_RABs_Admitted_ToBeAdded_Item = 121; -/* -id-E-RABs-Admitted-ToBeAdded-List ProtocolIE-ID ::= 120 -*/ - -constexpr int64_t id_E_RABs_Admitted_ToBeAdded_List = 120; -/* -id-E-RABs-Admitted-ToBeAdded-ModAckItem ProtocolIE-ID ::= 131 -*/ - -constexpr int64_t id_E_RABs_Admitted_ToBeAdded_ModAckItem = 131; -/* -id-E-RABs-Admitted-ToBeAdded-ModAckList ProtocolIE-ID ::= 128 -*/ - -constexpr int64_t id_E_RABs_Admitted_ToBeAdded_ModAckList = 128; -/* -id-E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item ProtocolIE-ID ::= 213 -*/ - -constexpr int64_t id_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item = 213; -/* -id-E-RABs-Admitted-ToBeAdded-SgNBAddReqAckList ProtocolIE-ID ::= 210 -*/ - -constexpr int64_t id_E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList = 210; -/* -id-E-RABs-Admitted-ToBeAdded-SgNBModAck-Item ProtocolIE-ID ::= 222 -*/ - -constexpr int64_t id_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item = 222; -/* -id-E-RABs-Admitted-ToBeAdded-SgNBModAckList ProtocolIE-ID ::= 219 -*/ - -constexpr int64_t id_E_RABs_Admitted_ToBeAdded_SgNBModAckList = 219; -/* -id-E-RABs-Admitted-ToBeModified-ModAckItem ProtocolIE-ID ::= 132 -*/ - -constexpr int64_t id_E_RABs_Admitted_ToBeModified_ModAckItem = 132; -/* -id-E-RABs-Admitted-ToBeModified-ModAckList ProtocolIE-ID ::= 129 -*/ - -constexpr int64_t id_E_RABs_Admitted_ToBeModified_ModAckList = 129; -/* -id-E-RABs-Admitted-ToBeModified-SgNBModAck-Item ProtocolIE-ID ::= 223 -*/ - -constexpr int64_t id_E_RABs_Admitted_ToBeModified_SgNBModAck_Item = 223; -/* -id-E-RABs-Admitted-ToBeModified-SgNBModAckList ProtocolIE-ID ::= 220 -*/ - -constexpr int64_t id_E_RABs_Admitted_ToBeModified_SgNBModAckList = 220; -/* -id-E-RABs-Admitted-ToBeReleased-ModAckItem ProtocolIE-ID ::= 133 -*/ - -constexpr int64_t id_E_RABs_Admitted_ToBeReleased_ModAckItem = 133; -/* -id-E-RABs-Admitted-ToBeReleased-ModAckList ProtocolIE-ID ::= 130 -*/ - -constexpr int64_t id_E_RABs_Admitted_ToBeReleased_ModAckList = 130; -/* -id-E-RABs-Admitted-ToBeReleased-SgNBModAck-Item ProtocolIE-ID ::= 224 -*/ - -constexpr int64_t id_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item = 224; -/* -id-E-RABs-Admitted-ToBeReleased-SgNBModAckList ProtocolIE-ID ::= 221 -*/ - -constexpr int64_t id_E_RABs_Admitted_ToBeReleased_SgNBModAckList = 221; -/* -id-E-RABs-Admitted-ToBeReleased-SgNBRelReqAck-Item ProtocolIE-ID ::= 319 -*/ - -constexpr int64_t id_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item = 319; -/* -id-E-RABs-Admitted-ToBeReleased-SgNBRelReqAckList ProtocolIE-ID ::= 318 -*/ - -constexpr int64_t id_E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList = 318; -/* -id-E-RABs-AdmittedToBeModified-SgNBModConf-Item ProtocolIE-ID ::= 295 -*/ - -constexpr int64_t id_E_RABs_AdmittedToBeModified_SgNBModConf_Item = 295; -/* -id-E-RABs-AdmittedToBeModified-SgNBModConfList ProtocolIE-ID ::= 294 -*/ - -constexpr int64_t id_E_RABs_AdmittedToBeModified_SgNBModConfList = 294; -/* -id-E-RABs-DataForwardingAddress-Item ProtocolIE-ID ::= 308 -*/ - -constexpr int64_t id_E_RABs_DataForwardingAddress_Item = 308; -/* -id-E-RABs-DataForwardingAddress-List ProtocolIE-ID ::= 307 -*/ - -constexpr int64_t id_E_RABs_DataForwardingAddress_List = 307; -/* -id-E-RABs-NotAdmitted-List ProtocolIE-ID ::= 3 -*/ - -constexpr int64_t id_E_RABs_NotAdmitted_List = 3; -/* -id-E-RABs-SubjectToCounterCheck-List ProtocolIE-ID ::= 141 -*/ - -constexpr int64_t id_E_RABs_SubjectToCounterCheck_List = 141; -/* -id-E-RABs-SubjectToCounterCheckItem ProtocolIE-ID ::= 142 -*/ - -constexpr int64_t id_E_RABs_SubjectToCounterCheckItem = 142; -/* -id-E-RABs-SubjectToSgNBCounterCheck-Item ProtocolIE-ID ::= 236 -*/ - -constexpr int64_t id_E_RABs_SubjectToSgNBCounterCheck_Item = 236; -/* -id-E-RABs-SubjectToSgNBCounterCheck-List ProtocolIE-ID ::= 235 -*/ - -constexpr int64_t id_E_RABs_SubjectToSgNBCounterCheck_List = 235; -/* -id-E-RABs-SubjectToStatusTransfer-Item ProtocolIE-ID ::= 19 -*/ - -constexpr int64_t id_E_RABs_SubjectToStatusTransfer_Item = 19; -/* -id-E-RABs-SubjectToStatusTransfer-List ProtocolIE-ID ::= 18 -*/ - -constexpr int64_t id_E_RABs_SubjectToStatusTransfer_List = 18; -/* -id-E-RABs-ToBeAdded-Item ProtocolIE-ID ::= 118 -*/ - -constexpr int64_t id_E_RABs_ToBeAdded_Item = 118; -/* -id-E-RABs-ToBeAdded-List ProtocolIE-ID ::= 117 -*/ - -constexpr int64_t id_E_RABs_ToBeAdded_List = 117; -/* -id-E-RABs-ToBeAdded-ModReqItem ProtocolIE-ID ::= 125 -*/ - -constexpr int64_t id_E_RABs_ToBeAdded_ModReqItem = 125; -/* -id-E-RABs-ToBeAdded-SgNBAddReq-Item ProtocolIE-ID ::= 209 -*/ - -constexpr int64_t id_E_RABs_ToBeAdded_SgNBAddReq_Item = 209; -/* -id-E-RABs-ToBeAdded-SgNBAddReqList ProtocolIE-ID ::= 205 -*/ - -constexpr int64_t id_E_RABs_ToBeAdded_SgNBAddReqList = 205; -/* -id-E-RABs-ToBeAdded-SgNBModReq-Item ProtocolIE-ID ::= 216 -*/ - -constexpr int64_t id_E_RABs_ToBeAdded_SgNBModReq_Item = 216; -/* -id-E-RABs-ToBeModified-ModReqItem ProtocolIE-ID ::= 126 -*/ - -constexpr int64_t id_E_RABs_ToBeModified_ModReqItem = 126; -/* -id-E-RABs-ToBeModified-SgNBModReq-Item ProtocolIE-ID ::= 217 -*/ - -constexpr int64_t id_E_RABs_ToBeModified_SgNBModReq_Item = 217; -/* -id-E-RABs-ToBeModified-SgNBModReqd-Item ProtocolIE-ID ::= 228 -*/ - -constexpr int64_t id_E_RABs_ToBeModified_SgNBModReqd_Item = 228; -/* -id-E-RABs-ToBeModified-SgNBModReqdList ProtocolIE-ID ::= 226 -*/ - -constexpr int64_t id_E_RABs_ToBeModified_SgNBModReqdList = 226; -/* -id-E-RABs-ToBeReleased-List-RelConf ProtocolIE-ID ::= 139 -*/ - -constexpr int64_t id_E_RABs_ToBeReleased_List_RelConf = 139; -/* -id-E-RABs-ToBeReleased-List-RelReq ProtocolIE-ID ::= 137 -*/ - -constexpr int64_t id_E_RABs_ToBeReleased_List_RelReq = 137; -/* -id-E-RABs-ToBeReleased-ModReqItem ProtocolIE-ID ::= 127 -*/ - -constexpr int64_t id_E_RABs_ToBeReleased_ModReqItem = 127; -/* -id-E-RABs-ToBeReleased-ModReqd ProtocolIE-ID ::= 134 -*/ - -constexpr int64_t id_E_RABs_ToBeReleased_ModReqd = 134; -/* -id-E-RABs-ToBeReleased-ModReqdItem ProtocolIE-ID ::= 135 -*/ - -constexpr int64_t id_E_RABs_ToBeReleased_ModReqdItem = 135; -/* -id-E-RABs-ToBeReleased-RelConfItem ProtocolIE-ID ::= 140 -*/ - -constexpr int64_t id_E_RABs_ToBeReleased_RelConfItem = 140; -/* -id-E-RABs-ToBeReleased-RelReqItem ProtocolIE-ID ::= 138 -*/ - -constexpr int64_t id_E_RABs_ToBeReleased_RelReqItem = 138; -/* -id-E-RABs-ToBeReleased-SgNBChaConf-Item ProtocolIE-ID ::= 230 -*/ - -constexpr int64_t id_E_RABs_ToBeReleased_SgNBChaConf_Item = 230; -/* -id-E-RABs-ToBeReleased-SgNBChaConfList ProtocolIE-ID ::= 229 -*/ - -constexpr int64_t id_E_RABs_ToBeReleased_SgNBChaConfList = 229; -/* -id-E-RABs-ToBeReleased-SgNBModReq-Item ProtocolIE-ID ::= 218 -*/ - -constexpr int64_t id_E_RABs_ToBeReleased_SgNBModReq_Item = 218; -/* -id-E-RABs-ToBeReleased-SgNBModReqd-Item ProtocolIE-ID ::= 227 -*/ - -constexpr int64_t id_E_RABs_ToBeReleased_SgNBModReqd_Item = 227; -/* -id-E-RABs-ToBeReleased-SgNBModReqdList ProtocolIE-ID ::= 225 -*/ - -constexpr int64_t id_E_RABs_ToBeReleased_SgNBModReqdList = 225; -/* -id-E-RABs-ToBeReleased-SgNBRelConf-Item ProtocolIE-ID ::= 234 -*/ - -constexpr int64_t id_E_RABs_ToBeReleased_SgNBRelConf_Item = 234; -/* -id-E-RABs-ToBeReleased-SgNBRelConfList ProtocolIE-ID ::= 233 -*/ - -constexpr int64_t id_E_RABs_ToBeReleased_SgNBRelConfList = 233; -/* -id-E-RABs-ToBeReleased-SgNBRelReq-Item ProtocolIE-ID ::= 232 -*/ - -constexpr int64_t id_E_RABs_ToBeReleased_SgNBRelReq_Item = 232; -/* -id-E-RABs-ToBeReleased-SgNBRelReqList ProtocolIE-ID ::= 231 -*/ - -constexpr int64_t id_E_RABs_ToBeReleased_SgNBRelReqList = 231; -/* -id-E-RABs-ToBeReleased-SgNBRelReqd-Item ProtocolIE-ID ::= 321 -*/ - -constexpr int64_t id_E_RABs_ToBeReleased_SgNBRelReqd_Item = 321; -/* -id-E-RABs-ToBeReleased-SgNBRelReqdList ProtocolIE-ID ::= 320 -*/ - -constexpr int64_t id_E_RABs_ToBeReleased_SgNBRelReqdList = 320; -/* -id-E-RABs-ToBeSetup-Item ProtocolIE-ID ::= 4 -*/ - -constexpr int64_t id_E_RABs_ToBeSetup_Item = 4; -/* -id-E-RABs-ToBeSetupRetrieve-Item ProtocolIE-ID ::= 174 -*/ - -constexpr int64_t id_E_RABs_ToBeSetupRetrieve_Item = 174; -/* -id-ECGI ProtocolIE-ID ::= 316 -*/ - -constexpr int64_t id_ECGI = 316; -/* -id-ENB1-Cell-ID ProtocolIE-ID ::= 43 -*/ - -constexpr int64_t id_ENB1_Cell_ID = 43; -/* -id-ENB1-Measurement-ID ProtocolIE-ID ::= 39 -*/ - -constexpr int64_t id_ENB1_Measurement_ID = 39; -/* -id-ENB1-Mobility-Parameters ProtocolIE-ID ::= 46 -*/ - -constexpr int64_t id_ENB1_Mobility_Parameters = 46; -/* -id-ENB2-Cell-ID ProtocolIE-ID ::= 44 -*/ - -constexpr int64_t id_ENB2_Cell_ID = 44; -/* -id-ENB2-Measurement-ID ProtocolIE-ID ::= 40 -*/ - -constexpr int64_t id_ENB2_Measurement_ID = 40; -/* -id-ENB2-Mobility-Parameters-Modification-Range ProtocolIE-ID ::= 47 -*/ - -constexpr int64_t id_ENB2_Mobility_Parameters_Modification_Range = 47; -/* -id-ENB2-Proposed-Mobility-Parameters ProtocolIE-ID ::= 45 -*/ - -constexpr int64_t id_ENB2_Proposed_Mobility_Parameters = 45; -/* -id-ERABActivityNotifyItemList ProtocolIE-ID ::= 297 -*/ - -constexpr int64_t id_ERABActivityNotifyItemList = 297; -/* -id-ExpectedUEBehaviour ProtocolIE-ID ::= 104 -*/ - -constexpr int64_t id_ExpectedUEBehaviour = 104; -/* -id-ExtendedULInterferenceOverloadInfo ProtocolIE-ID ::= 100 -*/ - -constexpr int64_t id_ExtendedULInterferenceOverloadInfo = 100; -/* -id-FailureCellCRNTI ProtocolIE-ID ::= 50 -*/ - -constexpr int64_t id_FailureCellCRNTI = 50; -/* -id-FailureCellECGI ProtocolIE-ID ::= 53 -*/ - -constexpr int64_t id_FailureCellECGI = 53; -/* -id-FailureCellPCI ProtocolIE-ID ::= 48 -*/ - -constexpr int64_t id_FailureCellPCI = 48; -/* -id-FreqBandIndicatorPriority ProtocolIE-ID ::= 160 -*/ - -constexpr int64_t id_FreqBandIndicatorPriority = 160; -/* -id-GNBOverloadInformation ProtocolIE-ID ::= 310 -*/ - -constexpr int64_t id_GNBOverloadInformation = 310; -/* -id-GUGroupIDList ProtocolIE-ID ::= 24 -*/ - -constexpr int64_t id_GUGroupIDList = 24; -/* -id-GUGroupIDToAddList ProtocolIE-ID ::= 34 -*/ - -constexpr int64_t id_GUGroupIDToAddList = 34; -/* -id-GUGroupIDToDeleteList ProtocolIE-ID ::= 35 -*/ - -constexpr int64_t id_GUGroupIDToDeleteList = 35; -/* -id-GUMMEI-ID ProtocolIE-ID ::= 23 -*/ - -constexpr int64_t id_GUMMEI_ID = 23; -/* -id-GW-TransportLayerAddress ProtocolIE-ID ::= 165 -*/ - -constexpr int64_t id_GW_TransportLayerAddress = 165; -/* -id-GlobalENB-ID ProtocolIE-ID ::= 21 -*/ - -constexpr int64_t id_GlobalENB_ID = 21; -/* -id-Globalen-gNB-ID ProtocolIE-ID ::= 252 -*/ - -constexpr int64_t id_Globalen_gNB_ID = 252; -/* -id-HO-cause ProtocolIE-ID ::= 80 -*/ - -constexpr int64_t id_HO_cause = 80; -/* -id-HandoverReportType ProtocolIE-ID ::= 54 -*/ - -constexpr int64_t id_HandoverReportType = 54; -/* -id-HandoverRestrictionList ProtocolIE-ID ::= 240 -*/ - -constexpr int64_t id_HandoverRestrictionList = 240; -/* -id-InitiatingNodeType-EndcConfigUpdate ProtocolIE-ID ::= 245 -*/ - -constexpr int64_t id_InitiatingNodeType_EndcConfigUpdate = 245; -/* -id-InitiatingNodeType-EndcX2Removal ProtocolIE-ID ::= 298 -*/ - -constexpr int64_t id_InitiatingNodeType_EndcX2Removal = 298; -/* -id-InitiatingNodeType-EndcX2Setup ProtocolIE-ID ::= 244 -*/ - -constexpr int64_t id_InitiatingNodeType_EndcX2Setup = 244; -/* -id-InitiatingNodeType-EutranrCellResourceCoordination ProtocolIE-ID ::= 285 -*/ - -constexpr int64_t id_InitiatingNodeType_EutranrCellResourceCoordination = 285; -/* -id-IntendedULDLConfiguration ProtocolIE-ID ::= 99 -*/ - -constexpr int64_t id_IntendedULDLConfiguration = 99; -/* -id-InvokeIndication ProtocolIE-ID ::= 62 -*/ - -constexpr int64_t id_InvokeIndication = 62; -/* -id-LHN-ID ProtocolIE-ID ::= 159 -*/ - -constexpr int64_t id_LHN_ID = 159; -/* -id-ListofEUTRACellsinEUTRACoordinationReq ProtocolIE-ID ::= 289 -*/ - -constexpr int64_t id_ListofEUTRACellsinEUTRACoordinationReq = 289; -/* -id-ListofEUTRACellsinEUTRACoordinationResp ProtocolIE-ID ::= 290 -*/ - -constexpr int64_t id_ListofEUTRACellsinEUTRACoordinationResp = 290; -/* -id-ListofEUTRACellsinNRCoordinationReq ProtocolIE-ID ::= 291 -*/ - -constexpr int64_t id_ListofEUTRACellsinNRCoordinationReq = 291; -/* -id-ListofNRCellsinNRCoordinationReq ProtocolIE-ID ::= 292 -*/ - -constexpr int64_t id_ListofNRCellsinNRCoordinationReq = 292; -/* -id-ListofNRCellsinNRCoordinationResp ProtocolIE-ID ::= 293 -*/ - -constexpr int64_t id_ListofNRCellsinNRCoordinationResp = 293; -/* -id-M3Configuration ProtocolIE-ID ::= 85 -*/ - -constexpr int64_t id_M3Configuration = 85; -/* -id-M4Configuration ProtocolIE-ID ::= 86 -*/ - -constexpr int64_t id_M4Configuration = 86; -/* -id-M5Configuration ProtocolIE-ID ::= 87 -*/ - -constexpr int64_t id_M5Configuration = 87; -/* -id-M6Configuration ProtocolIE-ID ::= 161 -*/ - -constexpr int64_t id_M6Configuration = 161; -/* -id-M7Configuration ProtocolIE-ID ::= 162 -*/ - -constexpr int64_t id_M7Configuration = 162; -/* -id-MBMS-Service-Area-List ProtocolIE-ID ::= 79 -*/ - -constexpr int64_t id_MBMS_Service_Area_List = 79; -/* -id-MBSFN-Subframe-Info ProtocolIE-ID ::= 56 -*/ - -constexpr int64_t id_MBSFN_Subframe_Info = 56; -/* -id-MDT-Location-Info ProtocolIE-ID ::= 88 -*/ - -constexpr int64_t id_MDT_Location_Info = 88; -/* -id-MDTConfiguration ProtocolIE-ID ::= 72 -*/ - -constexpr int64_t id_MDTConfiguration = 72; -/* -id-MakeBeforeBreakIndicator ProtocolIE-ID ::= 181 -*/ - -constexpr int64_t id_MakeBeforeBreakIndicator = 181; -/* -id-ManagementBasedMDTPLMNList ProtocolIE-ID ::= 89 -*/ - -constexpr int64_t id_ManagementBasedMDTPLMNList = 89; -/* -id-ManagementBasedMDTallowed ProtocolIE-ID ::= 74 -*/ - -constexpr int64_t id_ManagementBasedMDTallowed = 74; -/* -id-Masked-IMEISV ProtocolIE-ID ::= 98 -*/ - -constexpr int64_t id_Masked_IMEISV = 98; -/* -id-MeNB-UE-X2AP-ID ProtocolIE-ID ::= 111 -*/ - -constexpr int64_t id_MeNB_UE_X2AP_ID = 111; -/* -id-MeNB-UE-X2AP-ID-Extension ProtocolIE-ID ::= 157 -*/ - -constexpr int64_t id_MeNB_UE_X2AP_ID_Extension = 157; -/* -id-MeNBCell-ID ProtocolIE-ID ::= 279 -*/ - -constexpr int64_t id_MeNBCell_ID = 279; -/* -id-MeNBCoordinationAssistanceInformation ProtocolIE-ID ::= 323 -*/ - -constexpr int64_t id_MeNBCoordinationAssistanceInformation = 323; -/* -id-MeNBResourceCoordinationInformation ProtocolIE-ID ::= 257 -*/ - -constexpr int64_t id_MeNBResourceCoordinationInformation = 257; -/* -id-MeNBtoSeNBContainer ProtocolIE-ID ::= 119 -*/ - -constexpr int64_t id_MeNBtoSeNBContainer = 119; -/* -id-MeNBtoSgNBContainer ProtocolIE-ID ::= 206 -*/ - -constexpr int64_t id_MeNBtoSgNBContainer = 206; -/* -id-Measurement-ID ProtocolIE-ID ::= 37 -*/ - -constexpr int64_t id_Measurement_ID = 37; -/* -id-MeasurementFailureCause-Item ProtocolIE-ID ::= 67 -*/ - -constexpr int64_t id_MeasurementFailureCause_Item = 67; -/* -id-MeasurementInitiationResult-Item ProtocolIE-ID ::= 66 -*/ - -constexpr int64_t id_MeasurementInitiationResult_Item = 66; -/* -id-MeasurementInitiationResult-List ProtocolIE-ID ::= 65 -*/ - -constexpr int64_t id_MeasurementInitiationResult_List = 65; -/* -id-MobilityInformation ProtocolIE-ID ::= 82 -*/ - -constexpr int64_t id_MobilityInformation = 82; -/* -id-MultibandInfoList ProtocolIE-ID ::= 84 -*/ - -constexpr int64_t id_MultibandInfoList = 84; -/* -id-NRCGI ProtocolIE-ID ::= 322 -*/ - -constexpr int64_t id_NRCGI = 322; -/* -id-NRS-NSSS-PowerOffset ProtocolIE-ID ::= 282 -*/ - -constexpr int64_t id_NRS_NSSS_PowerOffset = 282; -/* -id-NRUESecurityCapabilities ProtocolIE-ID ::= 248 -*/ - -constexpr int64_t id_NRUESecurityCapabilities = 248; -/* -id-NRrestrictionin5GS ProtocolIE-ID ::= 305 -*/ - -constexpr int64_t id_NRrestrictionin5GS = 305; -/* -id-NRrestrictioninEPSasSecondaryRAT ProtocolIE-ID ::= 202 -*/ - -constexpr int64_t id_NRrestrictioninEPSasSecondaryRAT = 202; -/* -id-NSSS-NumOccasionDifferentPrecoder ProtocolIE-ID ::= 283 -*/ - -constexpr int64_t id_NSSS_NumOccasionDifferentPrecoder = 283; -/* -id-NeighbourTAC ProtocolIE-ID ::= 76 -*/ - -constexpr int64_t id_NeighbourTAC = 76; -/* -id-New-eNB-UE-X2AP-ID ProtocolIE-ID ::= 9 -*/ - -constexpr int64_t id_New_eNB_UE_X2AP_ID = 9; -/* -id-New-eNB-UE-X2AP-ID-Extension ProtocolIE-ID ::= 155 -*/ - -constexpr int64_t id_New_eNB_UE_X2AP_ID_Extension = 155; -/* -id-NewEUTRANCellIdentifier ProtocolIE-ID ::= 175 -*/ - -constexpr int64_t id_NewEUTRANCellIdentifier = 175; -/* -id-Number-of-Antennaports ProtocolIE-ID ::= 41 -*/ - -constexpr int64_t id_Number_of_Antennaports = 41; -/* -id-OffsetOfNbiotChannelNumberToDL-EARFCN ProtocolIE-ID ::= 177 -*/ - -constexpr int64_t id_OffsetOfNbiotChannelNumberToDL_EARFCN = 177; -/* -id-OffsetOfNbiotChannelNumberToUL-EARFCN ProtocolIE-ID ::= 178 -*/ - -constexpr int64_t id_OffsetOfNbiotChannelNumberToUL_EARFCN = 178; -/* -id-Old-SgNB-UE-X2AP-ID ProtocolIE-ID ::= 264 -*/ - -constexpr int64_t id_Old_SgNB_UE_X2AP_ID = 264; -/* -id-Old-eNB-UE-X2AP-ID ProtocolIE-ID ::= 10 -*/ - -constexpr int64_t id_Old_eNB_UE_X2AP_ID = 10; -/* -id-Old-eNB-UE-X2AP-ID-Extension ProtocolIE-ID ::= 156 -*/ - -constexpr int64_t id_Old_eNB_UE_X2AP_ID_Extension = 156; -/* -id-PDCPChangeIndication ProtocolIE-ID ::= 249 -*/ - -constexpr int64_t id_PDCPChangeIndication = 249; -/* -id-PRACH-Configuration ProtocolIE-ID ::= 55 -*/ - -constexpr int64_t id_PRACH_Configuration = 55; -/* -id-PartialSuccessIndicator ProtocolIE-ID ::= 64 -*/ - -constexpr int64_t id_PartialSuccessIndicator = 64; -/* -id-ProSeAuthorized ProtocolIE-ID ::= 103 -*/ - -constexpr int64_t id_ProSeAuthorized = 103; -/* -id-ProSeUEtoNetworkRelaying ProtocolIE-ID ::= 149 -*/ - -constexpr int64_t id_ProSeUEtoNetworkRelaying = 149; -/* -id-ProtectedEUTRAResourceIndication ProtocolIE-ID ::= 284 -*/ - -constexpr int64_t id_ProtectedEUTRAResourceIndication = 284; -/* -id-RLC-Status ProtocolIE-ID ::= 300 -*/ - -constexpr int64_t id_RLC_Status = 300; -/* -id-RLCMode-transferred ProtocolIE-ID ::= 317 -*/ - -constexpr int64_t id_RLCMode_transferred = 317; -/* -id-RNL-Header ProtocolIE-ID ::= 101 -*/ - -constexpr int64_t id_RNL_Header = 101; -/* -id-RRCConfigIndication ProtocolIE-ID ::= 272 -*/ - -constexpr int64_t id_RRCConfigIndication = 272; -/* -id-RRCConnReestabIndicator ProtocolIE-ID ::= 78 -*/ - -constexpr int64_t id_RRCConnReestabIndicator = 78; -/* -id-RRCConnSetupIndicator ProtocolIE-ID ::= 75 -*/ - -constexpr int64_t id_RRCConnSetupIndicator = 75; -/* -id-RRCContainer ProtocolIE-ID ::= 237 -*/ - -constexpr int64_t id_RRCContainer = 237; -/* -id-RSRPMRList ProtocolIE-ID ::= 110 -*/ - -constexpr int64_t id_RSRPMRList = 110; -/* -id-Re-establishmentCellECGI ProtocolIE-ID ::= 49 -*/ - -constexpr int64_t id_Re_establishmentCellECGI = 49; -/* -id-ReceiveStatusOfULPDCPSDUsExtended ProtocolIE-ID ::= 91 -*/ - -constexpr int64_t id_ReceiveStatusOfULPDCPSDUsExtended = 91; -/* -id-ReceiveStatusOfULPDCPSDUsPDCP-SNlength18 ProtocolIE-ID ::= 150 -*/ - -constexpr int64_t id_ReceiveStatusOfULPDCPSDUsPDCP_SNlength18 = 150; -/* -id-Registration-Request ProtocolIE-ID ::= 28 -*/ - -constexpr int64_t id_Registration_Request = 28; -/* -id-ReportCharacteristics ProtocolIE-ID ::= 38 -*/ - -constexpr int64_t id_ReportCharacteristics = 38; -/* -id-ReportingPeriodicity ProtocolIE-ID ::= 30 -*/ - -constexpr int64_t id_ReportingPeriodicity = 30; -/* -id-ReportingPeriodicityCSIR ProtocolIE-ID ::= 145 -*/ - -constexpr int64_t id_ReportingPeriodicityCSIR = 145; -/* -id-ReportingPeriodicityRSRPMR ProtocolIE-ID ::= 109 -*/ - -constexpr int64_t id_ReportingPeriodicityRSRPMR = 109; -/* -id-RequestedSplitSRBs ProtocolIE-ID ::= 208 -*/ - -constexpr int64_t id_RequestedSplitSRBs = 208; -/* -id-RequestedSplitSRBsrelease ProtocolIE-ID ::= 280 -*/ - -constexpr int64_t id_RequestedSplitSRBsrelease = 280; -/* -id-RespondingNodeType-EndcConfigUpdate ProtocolIE-ID ::= 247 -*/ - -constexpr int64_t id_RespondingNodeType_EndcConfigUpdate = 247; -/* -id-RespondingNodeType-EndcX2Removal ProtocolIE-ID ::= 299 -*/ - -constexpr int64_t id_RespondingNodeType_EndcX2Removal = 299; -/* -id-RespondingNodeType-EndcX2Setup ProtocolIE-ID ::= 246 -*/ - -constexpr int64_t id_RespondingNodeType_EndcX2Setup = 246; -/* -id-RespondingNodeType-EutranrCellResourceCoordination ProtocolIE-ID ::= 286 -*/ - -constexpr int64_t id_RespondingNodeType_EutranrCellResourceCoordination = 286; -/* -id-ResponseInformationSeNBReconfComp ProtocolIE-ID ::= 123 -*/ - -constexpr int64_t id_ResponseInformationSeNBReconfComp = 123; -/* -id-ResponseInformationSgNBReconfComp ProtocolIE-ID ::= 214 -*/ - -constexpr int64_t id_ResponseInformationSgNBReconfComp = 214; -/* -id-SCGChangeIndication ProtocolIE-ID ::= 136 -*/ - -constexpr int64_t id_SCGChangeIndication = 136; -/* -id-SCGConfigurationQuery ProtocolIE-ID ::= 241 -*/ - -constexpr int64_t id_SCGConfigurationQuery = 241; -/* -id-SGNB-Addition-Trigger-Ind ProtocolIE-ID ::= 278 -*/ - -constexpr int64_t id_SGNB_Addition_Trigger_Ind = 278; -/* -id-SIPTO-BearerDeactivationIndication ProtocolIE-ID ::= 164 -*/ - -constexpr int64_t id_SIPTO_BearerDeactivationIndication = 164; -/* -id-SIPTO-Correlation-ID ProtocolIE-ID ::= 167 -*/ - -constexpr int64_t id_SIPTO_Correlation_ID = 167; -/* -id-SIPTO-L-GW-TransportLayerAddress ProtocolIE-ID ::= 168 -*/ - -constexpr int64_t id_SIPTO_L_GW_TransportLayerAddress = 168; -/* -id-SRBType ProtocolIE-ID ::= 238 -*/ - -constexpr int64_t id_SRBType = 238; -/* -id-SRVCCOperationPossible ProtocolIE-ID ::= 36 -*/ - -constexpr int64_t id_SRVCCOperationPossible = 36; -/* -id-SeNB-UE-X2AP-ID ProtocolIE-ID ::= 112 -*/ - -constexpr int64_t id_SeNB_UE_X2AP_ID = 112; -/* -id-SeNB-UE-X2AP-ID-Extension ProtocolIE-ID ::= 158 -*/ - -constexpr int64_t id_SeNB_UE_X2AP_ID_Extension = 158; -/* -id-SeNBSecurityKey ProtocolIE-ID ::= 114 -*/ - -constexpr int64_t id_SeNBSecurityKey = 114; -/* -id-SeNBUEAggregateMaximumBitRate ProtocolIE-ID ::= 115 -*/ - -constexpr int64_t id_SeNBUEAggregateMaximumBitRate = 115; -/* -id-SeNBtoMeNBContainer ProtocolIE-ID ::= 122 -*/ - -constexpr int64_t id_SeNBtoMeNBContainer = 122; -/* -id-SecondaryRATUsageReport ProtocolIE-ID ::= 255 -*/ - -constexpr int64_t id_SecondaryRATUsageReport = 255; -/* -id-SecondaryRATUsageReport-Item ProtocolIE-ID ::= 266 -*/ - -constexpr int64_t id_SecondaryRATUsageReport_Item = 266; -/* -id-SecondaryRATUsageReportList ProtocolIE-ID ::= 265 -*/ - -constexpr int64_t id_SecondaryRATUsageReportList = 265; -/* -id-SelectedPLMN ProtocolIE-ID ::= 269 -*/ - -constexpr int64_t id_SelectedPLMN = 269; -/* -id-ServedCells ProtocolIE-ID ::= 20 -*/ - -constexpr int64_t id_ServedCells = 20; -/* -id-ServedCellsToActivate ProtocolIE-ID ::= 57 -*/ - -constexpr int64_t id_ServedCellsToActivate = 57; -/* -id-ServedCellsToAdd ProtocolIE-ID ::= 25 -*/ - -constexpr int64_t id_ServedCellsToAdd = 25; -/* -id-ServedCellsToDelete ProtocolIE-ID ::= 27 -*/ - -constexpr int64_t id_ServedCellsToDelete = 27; -/* -id-ServedCellsToModify ProtocolIE-ID ::= 26 -*/ - -constexpr int64_t id_ServedCellsToModify = 26; -/* -id-ServedEUTRAcellsENDCX2ManagementList ProtocolIE-ID ::= 250 -*/ - -constexpr int64_t id_ServedEUTRAcellsENDCX2ManagementList = 250; -/* -id-ServedEUTRAcellsToDeleteListENDCConfUpd ProtocolIE-ID ::= 260 -*/ - -constexpr int64_t id_ServedEUTRAcellsToDeleteListENDCConfUpd = 260; -/* -id-ServedEUTRAcellsToModifyListENDCConfUpd ProtocolIE-ID ::= 259 -*/ - -constexpr int64_t id_ServedEUTRAcellsToModifyListENDCConfUpd = 259; -/* -id-ServedNRCellsToActivate ProtocolIE-ID ::= 267 -*/ - -constexpr int64_t id_ServedNRCellsToActivate = 267; -/* -id-ServedNRcellsENDCX2ManagementList ProtocolIE-ID ::= 253 -*/ - -constexpr int64_t id_ServedNRcellsENDCX2ManagementList = 253; -/* -id-ServedNRcellsToDeleteListENDCConfUpd ProtocolIE-ID ::= 262 -*/ - -constexpr int64_t id_ServedNRcellsToDeleteListENDCConfUpd = 262; -/* -id-ServedNRcellsToModifyListENDCConfUpd ProtocolIE-ID ::= 261 -*/ - -constexpr int64_t id_ServedNRcellsToModifyListENDCConfUpd = 261; -/* -id-ServingPLMN ProtocolIE-ID ::= 116 -*/ - -constexpr int64_t id_ServingPLMN = 116; -/* -id-SgNB-UE-X2AP-ID ProtocolIE-ID ::= 207 -*/ - -constexpr int64_t id_SgNB_UE_X2AP_ID = 207; -/* -id-SgNBActivityNotification ProcedureCode ::= 42 -*/ - -constexpr int64_t id_SgNBActivityNotification = 42; -/* -id-SgNBCoordinationAssistanceInformation ProtocolIE-ID ::= 324 -*/ - -constexpr int64_t id_SgNBCoordinationAssistanceInformation = 324; -/* -id-SgNBResourceCoordinationInformation ProtocolIE-ID ::= 258 -*/ - -constexpr int64_t id_SgNBResourceCoordinationInformation = 258; -/* -id-SgNBSecurityKey ProtocolIE-ID ::= 203 -*/ - -constexpr int64_t id_SgNBSecurityKey = 203; -/* -id-SgNBUEAggregateMaximumBitRate ProtocolIE-ID ::= 204 -*/ - -constexpr int64_t id_SgNBUEAggregateMaximumBitRate = 204; -/* -id-SgNBtoMeNBContainer ProtocolIE-ID ::= 211 -*/ - -constexpr int64_t id_SgNBtoMeNBContainer = 211; -/* -id-ShortMAC-I ProtocolIE-ID ::= 51 -*/ - -constexpr int64_t id_ShortMAC_I = 51; -/* -id-SignallingBasedMDTPLMNList ProtocolIE-ID ::= 90 -*/ - -constexpr int64_t id_SignallingBasedMDTPLMNList = 90; -/* -id-SourceCellCRNTI ProtocolIE-ID ::= 83 -*/ - -constexpr int64_t id_SourceCellCRNTI = 83; -/* -id-SourceCellECGI ProtocolIE-ID ::= 52 -*/ - -constexpr int64_t id_SourceCellECGI = 52; -/* -id-SpectrumSharingGroupID ProtocolIE-ID ::= 288 -*/ - -constexpr int64_t id_SpectrumSharingGroupID = 288; -/* -id-SplitSRB ProtocolIE-ID ::= 242 -*/ - -constexpr int64_t id_SplitSRB = 242; -/* -id-SubscriberProfileIDforRFP ProtocolIE-ID ::= 275 -*/ - -constexpr int64_t id_SubscriberProfileIDforRFP = 275; -/* -id-Subscription-Based-UE-DifferentiationInfo ProtocolIE-ID ::= 309 -*/ - -constexpr int64_t id_Subscription_Based_UE_DifferentiationInfo = 309; -/* -id-Target-SgNB-ID ProtocolIE-ID ::= 239 -*/ - -constexpr int64_t id_Target_SgNB_ID = 239; -/* -id-TargetCell-ID ProtocolIE-ID ::= 11 -*/ - -constexpr int64_t id_TargetCell_ID = 11; -/* -id-TargetCellInUTRAN ProtocolIE-ID ::= 81 -*/ - -constexpr int64_t id_TargetCellInUTRAN = 81; -/* -id-TargeteNBtoSource-eNBTransparentContainer ProtocolIE-ID ::= 12 -*/ - -constexpr int64_t id_TargeteNBtoSource_eNBTransparentContainer = 12; -/* -id-Time-UE-StayedInCell-EnhancedGranularity ProtocolIE-ID ::= 77 -*/ - -constexpr int64_t id_Time_UE_StayedInCell_EnhancedGranularity = 77; -/* -id-TimeToWait ProtocolIE-ID ::= 22 -*/ - -constexpr int64_t id_TimeToWait = 22; -/* -id-TraceActivation ProtocolIE-ID ::= 13 -*/ - -constexpr int64_t id_TraceActivation = 13; -/* -id-Tunnel-Information-for-BBF ProtocolIE-ID ::= 163 -*/ - -constexpr int64_t id_Tunnel_Information_for_BBF = 163; -/* -id-UE-ContextInformation ProtocolIE-ID ::= 14 -*/ - -constexpr int64_t id_UE_ContextInformation = 14; -/* -id-UE-ContextInformation-SgNBModReq ProtocolIE-ID ::= 215 -*/ - -constexpr int64_t id_UE_ContextInformation_SgNBModReq = 215; -/* -id-UE-ContextInformationRetrieve ProtocolIE-ID ::= 173 -*/ - -constexpr int64_t id_UE_ContextInformationRetrieve = 173; -/* -id-UE-ContextInformationSeNBModReq ProtocolIE-ID ::= 124 -*/ - -constexpr int64_t id_UE_ContextInformationSeNBModReq = 124; -/* -id-UE-ContextKeptIndicator ProtocolIE-ID ::= 154 -*/ - -constexpr int64_t id_UE_ContextKeptIndicator = 154; -/* -id-UE-ContextReferenceAtSeNB ProtocolIE-ID ::= 153 -*/ - -constexpr int64_t id_UE_ContextReferenceAtSeNB = 153; -/* -id-UE-ContextReferenceAtSgNB ProtocolIE-ID ::= 254 -*/ - -constexpr int64_t id_UE_ContextReferenceAtSgNB = 254; -/* -id-UE-ContextReferenceAtWT ProtocolIE-ID ::= 182 -*/ - -constexpr int64_t id_UE_ContextReferenceAtWT = 182; -/* -id-UE-HistoryInformation ProtocolIE-ID ::= 15 -*/ - -constexpr int64_t id_UE_HistoryInformation = 15; -/* -id-UE-HistoryInformationFromTheUE ProtocolIE-ID ::= 105 -*/ - -constexpr int64_t id_UE_HistoryInformationFromTheUE = 105; -/* -id-UE-RLF-Report-Container ProtocolIE-ID ::= 60 -*/ - -constexpr int64_t id_UE_RLF_Report_Container = 60; -/* -id-UE-RLF-Report-Container-for-extended-bands ProtocolIE-ID ::= 107 -*/ - -constexpr int64_t id_UE_RLF_Report_Container_for_extended_bands = 107; -/* -id-UE-SecurityCapabilities ProtocolIE-ID ::= 113 -*/ - -constexpr int64_t id_UE_SecurityCapabilities = 113; -/* -id-UE-X2AP-ID ProtocolIE-ID ::= 16 -*/ - -constexpr int64_t id_UE_X2AP_ID = 16; -/* -id-UEAppLayerMeasConfig ProtocolIE-ID ::= 195 -*/ - -constexpr int64_t id_UEAppLayerMeasConfig = 195; -/* -id-UEContextLevelUserPlaneActivity ProtocolIE-ID ::= 296 -*/ - -constexpr int64_t id_UEContextLevelUserPlaneActivity = 296; -/* -id-UEID ProtocolIE-ID ::= 147 -*/ - -constexpr int64_t id_UEID = 147; -/* -id-UENRMeasurement ProtocolIE-ID ::= 243 -*/ - -constexpr int64_t id_UENRMeasurement = 243; -/* -id-UESidelinkAggregateMaximumBitRate ProtocolIE-ID ::= 184 -*/ - -constexpr int64_t id_UESidelinkAggregateMaximumBitRate = 184; -/* -id-UEs-Admitted-ToBeReset ProtocolIE-ID ::= 271 -*/ - -constexpr int64_t id_UEs_Admitted_ToBeReset = 271; -/* -id-UEs-ToBeReset ProtocolIE-ID ::= 270 -*/ - -constexpr int64_t id_UEs_ToBeReset = 270; -/* -id-UL-EARFCNExtension ProtocolIE-ID ::= 95 -*/ - -constexpr int64_t id_UL_EARFCNExtension = 95; -/* -id-UL-scheduling-PDCCH-CCE-usage ProtocolIE-ID ::= 194 -*/ - -constexpr int64_t id_UL_scheduling_PDCCH_CCE_usage = 194; -/* -id-ULCOUNTValueExtended ProtocolIE-ID ::= 92 -*/ - -constexpr int64_t id_ULCOUNTValueExtended = 92; -/* -id-ULCOUNTValuePDCP-SNlength18 ProtocolIE-ID ::= 151 -*/ - -constexpr int64_t id_ULCOUNTValuePDCP_SNlength18 = 151; -/* -id-UplinkPacketLossRate ProtocolIE-ID ::= 274 -*/ - -constexpr int64_t id_UplinkPacketLossRate = 274; -/* -id-V2XServicesAuthorized ProtocolIE-ID ::= 176 -*/ - -constexpr int64_t id_V2XServicesAuthorized = 176; -/* -id-WLANMeasurementConfiguration ProtocolIE-ID ::= 304 -*/ - -constexpr int64_t id_WLANMeasurementConfiguration = 304; -/* -id-WT-UE-ContextKeptIndicator ProtocolIE-ID ::= 183 -*/ - -constexpr int64_t id_WT_UE_ContextKeptIndicator = 183; -/* -id-X2RemovalThreshold ProtocolIE-ID ::= 169 -*/ - -constexpr int64_t id_X2RemovalThreshold = 169; -/* -id-cellActivation ProcedureCode ::= 15 -*/ - -constexpr int64_t id_cellActivation = 15; -/* -id-dL-Forwarding ProtocolIE-ID ::= 306 -*/ - -constexpr int64_t id_dL_Forwarding = 306; -/* -id-dLPDCPSnLength ProtocolIE-ID ::= 311 -*/ - -constexpr int64_t id_dLPDCPSnLength = 311; -/* -id-dataForwardingAddressIndication ProcedureCode ::= 44 -*/ - -constexpr int64_t id_dataForwardingAddressIndication = 44; -/* -id-duplicationActivation ProtocolIE-ID ::= 315 -*/ - -constexpr int64_t id_duplicationActivation = 315; -/* -id-eARFCNExtension ProtocolIE-ID ::= 94 -*/ - -constexpr int64_t id_eARFCNExtension = 94; -/* -id-eNBConfigurationUpdate ProcedureCode ::= 8 -*/ - -constexpr int64_t id_eNBConfigurationUpdate = 8; -/* -id-eUTRANRCellResourceCoordination ProcedureCode ::= 41 -*/ - -constexpr int64_t id_eUTRANRCellResourceCoordination = 41; -/* -id-endcCellActivation ProcedureCode ::= 39 -*/ - -constexpr int64_t id_endcCellActivation = 39; -/* -id-endcConfigurationUpdate ProcedureCode ::= 37 -*/ - -constexpr int64_t id_endcConfigurationUpdate = 37; -/* -id-endcPartialReset ProcedureCode ::= 40 -*/ - -constexpr int64_t id_endcPartialReset = 40; -/* -id-endcX2Removal ProcedureCode ::= 43 -*/ - -constexpr int64_t id_endcX2Removal = 43; -/* -id-endcX2Setup ProcedureCode ::= 36 -*/ - -constexpr int64_t id_endcX2Setup = 36; -/* -id-enhancedRNTP ProtocolIE-ID ::= 148 -*/ - -constexpr int64_t id_enhancedRNTP = 148; -/* -id-errorIndication ProcedureCode ::= 3 -*/ - -constexpr int64_t id_errorIndication = 3; -/* -id-extended-e-RAB-GuaranteedBitrateDL ProtocolIE-ID ::= 198 -*/ - -constexpr int64_t id_extended_e_RAB_GuaranteedBitrateDL = 198; -/* -id-extended-e-RAB-GuaranteedBitrateUL ProtocolIE-ID ::= 199 -*/ - -constexpr int64_t id_extended_e_RAB_GuaranteedBitrateUL = 199; -/* -id-extended-e-RAB-MaximumBitrateDL ProtocolIE-ID ::= 196 -*/ - -constexpr int64_t id_extended_e_RAB_MaximumBitrateDL = 196; -/* -id-extended-e-RAB-MaximumBitrateUL ProtocolIE-ID ::= 197 -*/ - -constexpr int64_t id_extended_e_RAB_MaximumBitrateUL = 197; -/* -id-extended-uEaggregateMaximumBitRateDownlink ProtocolIE-ID ::= 200 -*/ - -constexpr int64_t id_extended_uEaggregateMaximumBitRateDownlink = 200; -/* -id-extended-uEaggregateMaximumBitRateUplink ProtocolIE-ID ::= 201 -*/ - -constexpr int64_t id_extended_uEaggregateMaximumBitRateUplink = 201; -/* -id-gNBStatusIndication ProcedureCode ::= 45 -*/ - -constexpr int64_t id_gNBStatusIndication = 45; -/* -id-handoverCancel ProcedureCode ::= 1 -*/ - -constexpr int64_t id_handoverCancel = 1; -/* -id-handoverPreparation ProcedureCode ::= 0 -*/ - -constexpr int64_t id_handoverPreparation = 0; -/* -id-handoverReport ProcedureCode ::= 14 -*/ - -constexpr int64_t id_handoverReport = 14; -/* -id-lCID ProtocolIE-ID ::= 314 -*/ - -constexpr int64_t id_lCID = 314; -/* -id-loadIndication ProcedureCode ::= 2 -*/ - -constexpr int64_t id_loadIndication = 2; -/* -id-meNBinitiatedSeNBModificationPreparation ProcedureCode ::= 21 -*/ - -constexpr int64_t id_meNBinitiatedSeNBModificationPreparation = 21; -/* -id-meNBinitiatedSeNBRelease ProcedureCode ::= 23 -*/ - -constexpr int64_t id_meNBinitiatedSeNBRelease = 23; -/* -id-meNBinitiatedSgNBModificationPreparation ProcedureCode ::= 29 -*/ - -constexpr int64_t id_meNBinitiatedSgNBModificationPreparation = 29; -/* -id-meNBinitiatedSgNBRelease ProcedureCode ::= 31 -*/ - -constexpr int64_t id_meNBinitiatedSgNBRelease = 31; -/* -id-mobilitySettingsChange ProcedureCode ::= 12 -*/ - -constexpr int64_t id_mobilitySettingsChange = 12; -/* -id-new-drb-ID-req ProtocolIE-ID ::= 325 -*/ - -constexpr int64_t id_new_drb_ID_req = 325; -/* -id-privateMessage ProcedureCode ::= 11 -*/ - -constexpr int64_t id_privateMessage = 11; -/* -id-rLFIndication ProcedureCode ::= 13 -*/ - -constexpr int64_t id_rLFIndication = 13; -/* -id-rRCTransfer ProcedureCode ::= 35 -*/ - -constexpr int64_t id_rRCTransfer = 35; -/* -id-reset ProcedureCode ::= 7 -*/ - -constexpr int64_t id_reset = 7; -/* -id-resourceStatusReporting ProcedureCode ::= 10 -*/ - -constexpr int64_t id_resourceStatusReporting = 10; -/* -id-resourceStatusReportingInitiation ProcedureCode ::= 9 -*/ - -constexpr int64_t id_resourceStatusReportingInitiation = 9; -/* -id-resumeID ProtocolIE-ID ::= 172 -*/ - -constexpr int64_t id_resumeID = 172; -/* -id-retrieveUEContext ProcedureCode ::= 26 -*/ - -constexpr int64_t id_retrieveUEContext = 26; -/* -id-seNBAdditionPreparation ProcedureCode ::= 19 -*/ - -constexpr int64_t id_seNBAdditionPreparation = 19; -/* -id-seNBCounterCheck ProcedureCode ::= 25 -*/ - -constexpr int64_t id_seNBCounterCheck = 25; -/* -id-seNBReconfigurationCompletion ProcedureCode ::= 20 -*/ - -constexpr int64_t id_seNBReconfigurationCompletion = 20; -/* -id-seNBinitiatedSeNBModification ProcedureCode ::= 22 -*/ - -constexpr int64_t id_seNBinitiatedSeNBModification = 22; -/* -id-seNBinitiatedSeNBRelease ProcedureCode ::= 24 -*/ - -constexpr int64_t id_seNBinitiatedSeNBRelease = 24; -/* -id-secondaryRATDataUsageReport ProcedureCode ::= 38 -*/ - -constexpr int64_t id_secondaryRATDataUsageReport = 38; -/* -id-secondarymeNBULGTPTEIDatPDCP ProtocolIE-ID ::= 313 -*/ - -constexpr int64_t id_secondarymeNBULGTPTEIDatPDCP = 313; -/* -id-secondarysgNBDLGTPTEIDatPDCP ProtocolIE-ID ::= 312 -*/ - -constexpr int64_t id_secondarysgNBDLGTPTEIDatPDCP = 312; -/* -id-serviceType ProtocolIE-ID ::= 276 -*/ - -constexpr int64_t id_serviceType = 276; -/* -id-sgNBAdditionPreparation ProcedureCode ::= 27 -*/ - -constexpr int64_t id_sgNBAdditionPreparation = 27; -/* -id-sgNBChange ProcedureCode ::= 34 -*/ - -constexpr int64_t id_sgNBChange = 34; -/* -id-sgNBCounterCheck ProcedureCode ::= 33 -*/ - -constexpr int64_t id_sgNBCounterCheck = 33; -/* -id-sgNBReconfigurationCompletion ProcedureCode ::= 28 -*/ - -constexpr int64_t id_sgNBReconfigurationCompletion = 28; -/* -id-sgNBinitiatedSgNBModification ProcedureCode ::= 30 -*/ - -constexpr int64_t id_sgNBinitiatedSgNBModification = 30; -/* -id-sgNBinitiatedSgNBRelease ProcedureCode ::= 32 -*/ - -constexpr int64_t id_sgNBinitiatedSgNBRelease = 32; -/* -id-snStatusTransfer ProcedureCode ::= 4 -*/ - -constexpr int64_t id_snStatusTransfer = 4; -/* -id-uEContextRelease ProcedureCode ::= 5 -*/ - -constexpr int64_t id_uEContextRelease = 5; -/* -id-uL-GTPtunnelEndpoint ProtocolIE-ID ::= 185 -*/ - -constexpr int64_t id_uL_GTPtunnelEndpoint = 185; -/* -id-uLpDCPSnLength ProtocolIE-ID ::= 302 -*/ - -constexpr int64_t id_uLpDCPSnLength = 302; -/* -id-x2APMessage ProtocolIE-ID ::= 102 -*/ - -constexpr int64_t id_x2APMessage = 102; -/* -id-x2APMessageTransfer ProcedureCode ::= 17 -*/ - -constexpr int64_t id_x2APMessageTransfer = 17; -/* -id-x2Release ProcedureCode ::= 16 -*/ - -constexpr int64_t id_x2Release = 16; -/* -id-x2Removal ProcedureCode ::= 18 -*/ - -constexpr int64_t id_x2Removal = 18; -/* -id-x2Setup ProcedureCode ::= 6 -*/ - -constexpr int64_t id_x2Setup = 6; -/* -maxCSIProcess INTEGER ::= 4 -*/ - -constexpr int64_t maxCSIProcess = 4; -/* -maxCSIReport INTEGER ::= 2 -*/ - -constexpr int64_t maxCSIReport = 2; -/* -maxCellReport INTEGER ::= 9 -*/ - -constexpr int64_t maxCellReport = 9; -/* -maxCellineNB INTEGER ::= 256 -*/ - -constexpr int64_t maxCellineNB = 256; -/* -maxCellinengNB INTEGER ::= 16384 -*/ - -constexpr int64_t maxCellinengNB = 16384; -/* -maxEARFCN INTEGER ::= 65535 -*/ - -constexpr int64_t maxEARFCN = 65535; -/* -maxEARFCNPlusOne INTEGER ::= 65536 -*/ - -constexpr int64_t maxEARFCNPlusOne = 65536; -/* -maxFailedMeasObjects INTEGER ::= 32 -*/ - -constexpr int64_t maxFailedMeasObjects = 32; -/* -maxInterfaces INTEGER ::= 16 -*/ - -constexpr int64_t maxInterfaces = 16; -/* -maxNrOfErrors INTEGER ::= 256 -*/ - -constexpr int64_t maxNrOfErrors = 256; -/* -maxPools INTEGER ::= 16 -*/ - -constexpr int64_t maxPools = 16; -/* -maxSubband INTEGER ::= 14 -*/ - -constexpr int64_t maxSubband = 14; -/* -maxUEReport INTEGER ::= 128 -*/ - -constexpr int64_t maxUEReport = 128; -/* -maxUEsinengNBDU INTEGER ::= 8192 -*/ - -constexpr int64_t maxUEsinengNBDU = 8192; -/* -maxnoNRcellsSpectrumSharingWithE-UTRA INTEGER ::= 64 -*/ - -constexpr int64_t maxnoNRcellsSpectrumSharingWithE_UTRA = 64; -/* -maxnoofBPLMNs INTEGER ::= 6 -*/ - -constexpr int64_t maxnoofBPLMNs = 6; -/* -maxnoofBands INTEGER ::= 16 -*/ - -constexpr int64_t maxnoofBands = 16; -/* -maxnoofBearers INTEGER ::= 256 -*/ - -constexpr int64_t maxnoofBearers = 256; -/* -maxnoofBluetoothName INTEGER ::= 4 -*/ - -constexpr int64_t maxnoofBluetoothName = 4; -/* -maxnoofCellIDforMDT INTEGER ::= 32 -*/ - -constexpr int64_t maxnoofCellIDforMDT = 32; -/* -maxnoofCellIDforQMC INTEGER ::= 32 -*/ - -constexpr int64_t maxnoofCellIDforQMC = 32; -/* -maxnoofCells INTEGER ::= 16 -*/ - -constexpr int64_t maxnoofCells = 16; -/* -maxnoofCoMPCells INTEGER ::= 32 -*/ - -constexpr int64_t maxnoofCoMPCells = 32; -/* -maxnoofCoMPHypothesisSet INTEGER ::= 256 -*/ - -constexpr int64_t maxnoofCoMPHypothesisSet = 256; -/* -maxnoofEPLMNs INTEGER ::= 15 -*/ - -constexpr int64_t maxnoofEPLMNs = 15; -/* -maxnoofEPLMNsPlusOne INTEGER ::= 16 -*/ - -constexpr int64_t maxnoofEPLMNsPlusOne = 16; -/* -maxnoofForbLACs INTEGER ::= 4096 -*/ - -constexpr int64_t maxnoofForbLACs = 4096; -/* -maxnoofForbTACs INTEGER ::= 4096 -*/ - -constexpr int64_t maxnoofForbTACs = 4096; -/* -maxnoofMBMSServiceAreaIdentities INTEGER ::= 256 -*/ - -constexpr int64_t maxnoofMBMSServiceAreaIdentities = 256; -/* -maxnoofMBSFN INTEGER ::= 8 -*/ - -constexpr int64_t maxnoofMBSFN = 8; -/* -maxnoofMDTPLMNs INTEGER ::= 16 -*/ - -constexpr int64_t maxnoofMDTPLMNs = 16; -/* -maxnoofNeighbours INTEGER ::= 512 -*/ - -constexpr int64_t maxnoofNeighbours = 512; -/* -maxnoofNrCellBands INTEGER ::= 32 -*/ - -constexpr int64_t maxnoofNrCellBands = 32; -/* -maxnoofPA INTEGER ::= 3 -*/ - -constexpr int64_t maxnoofPA = 3; -/* -maxnoofPDCP-SN INTEGER ::= 16 -*/ - -constexpr int64_t maxnoofPDCP_SN = 16; -/* -maxnoofPLMNforQMC INTEGER ::= 16 -*/ - -constexpr int64_t maxnoofPLMNforQMC = 16; -/* -maxnoofPRBs INTEGER ::= 110 -*/ - -constexpr int64_t maxnoofPRBs = 110; -/* -maxnoofProtectedResourcePatterns INTEGER ::= 16 -*/ - -constexpr int64_t maxnoofProtectedResourcePatterns = 16; -/* -maxnoofTAforMDT INTEGER ::= 8 -*/ - -constexpr int64_t maxnoofTAforMDT = 8; -/* -maxnoofTAforQMC INTEGER ::= 8 -*/ - -constexpr int64_t maxnoofTAforQMC = 8; -/* -maxnoofWLANName INTEGER ::= 4 -*/ - -constexpr int64_t maxnoofWLANName = 4; -/* -maxnooftimeperiods INTEGER ::= 2 -*/ - -constexpr int64_t maxnooftimeperiods = 2; -/* -maxofNRNeighbours INTEGER ::= 1024 -*/ - -constexpr int64_t maxofNRNeighbours = 1024; -/* -newmaxEARFCN INTEGER ::= 262143 -*/ - -constexpr int64_t newmaxEARFCN = 262143; diff --git a/e2sim/previous/e2apv1sim/src/ASN1/generated/X2AP-Containers.hpp b/e2sim/previous/e2apv1sim/src/ASN1/generated/X2AP-Containers.hpp deleted file mode 100644 index 09545bf..0000000 --- a/e2sim/previous/e2apv1sim/src/ASN1/generated/X2AP-Containers.hpp +++ /dev/null @@ -1,700 +0,0 @@ -/***************************************************************************** -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -#pragma once - -#include "asn/asn.hpp" -static_assert(ASN_API_VERSION_MAJOR == 5, "re-generate the ASN parser's code using 'make regen-asn' (do not use -j option)"); - -#include "X2AP-CommonDataTypes.hpp" - -/* -X2AP-PRIVATE-IES ::= CLASS { - &id PrivateIE-ID, - &criticality Criticality, - &Value, - &presence Presence -} -WITH SYNTAX { - ID &id - CRITICALITY &criticality - TYPE &Value - PRESENCE &presence -} -*/ - -struct X2AP_PRIVATE_IES -{ - struct id_t : PrivateIE_ID - { - static constexpr const char* name() {return "id_t";} - using parent_t = PrivateIE_ID; - - }; - struct criticality_t : Criticality - { - static constexpr const char* name() {return "criticality_t";} - using parent_t = Criticality; - - }; - struct presence_t : Presence - { - static constexpr const char* name() {return "presence_t";} - using parent_t = Presence; - - }; - -}; -/* -PrivateIE-Field {X2AP-PRIVATE-IES : IEsSetParam} ::= SEQUENCE { - id X2AP-PRIVATE-IES.&id ({IEsSetParam}), - criticality X2AP-PRIVATE-IES.&criticality ({IEsSetParam}{@id}), - value X2AP-PRIVATE-IES.&Value ({IEsSetParam}{@id}) -} -*/ - -template -struct PrivateIE_Field : asn::sequence<3, 0, false, 0> -{ - static constexpr const char* name() {return "PrivateIE-Field";} - using parent_t = asn::sequence<3, 0, false, 0>; - struct id_t : IEsSetParam::id_t - { - static constexpr const char* name() {return "id_t";} - using parent_t = typename IEsSetParam::id_t; - template bool decode(V& v, PrivateIE_Field const& c) - { - return IEsSetParam::id_t::decode(v); - }; - template bool encode(V& v, PrivateIE_Field const& c) const - { - return IEsSetParam::id_t::encode(v); - }; - }; - id_t& ref_id() {return id;} - id_t const& ref_id() const {return id;} - struct criticality_t : IEsSetParam::criticality_t - { - static constexpr const char* name() {return "criticality_t";} - using parent_t = typename IEsSetParam::criticality_t; - template bool decode(V& v, PrivateIE_Field const& c) - { - return IEsSetParam::criticality_t::decode(c.id.get_index(), v); - }; - template bool encode(V& v, PrivateIE_Field const& c) const - { - return IEsSetParam::criticality_t::encode(c.id.get_index(), v); - }; - }; - criticality_t& ref_criticality() {return criticality;} - criticality_t const& ref_criticality() const {return criticality;} - struct value_t : IEsSetParam::Value_t - { - static constexpr const char* name() {return "value_t";} - using parent_t = typename IEsSetParam::Value_t; - template bool decode(V& v, PrivateIE_Field const& c) - { - return IEsSetParam::Value_t::decode(c.id.get_index(), v); - }; - template bool encode(V& v, PrivateIE_Field const& c) const - { - return IEsSetParam::Value_t::encode(c.id.get_index(), v); - }; - }; - value_t& ref_value() {return value;} - value_t const& ref_value() const {return value;} - template void decode(V& v) - { - v(id); - v(criticality); - v(value); - - }; - template void encode(V& v) const - { - v(id); - v(criticality); - v(value); - - }; - void clear() - { - id.clear(); - criticality.clear(); - value.clear(); - - }; - private: - id_t id; - criticality_t criticality; - value_t value; - -}; -/* -PrivateIE-Container {X2AP-PRIVATE-IES : IEsSetParam} ::= - SEQUENCE (SIZE (1..maxPrivateIEs)) OF - PrivateIE-Field {{IEsSetParam}} -*/ - -template -struct PrivateIE_Container_elm : PrivateIE_Field -{ - static constexpr const char* name() {return "PrivateIE_Container_elm";} - using parent_t = PrivateIE_Field; - -}; -template -struct PrivateIE_Container : asn::sequenceof > -{ - static constexpr const char* name() {return "PrivateIE-Container";} - using parent_t = asn::sequenceof >; - using constraint_t = asn::constraints>; - -}; -/* -X2AP-PROTOCOL-EXTENSION ::= CLASS { - &id ProtocolIE-ID UNIQUE, - &criticality Criticality, - &Extension, - &presence Presence -} -WITH SYNTAX { - ID &id - CRITICALITY &criticality - EXTENSION &Extension - PRESENCE &presence -} -*/ - -struct X2AP_PROTOCOL_EXTENSION -{ - struct id_t : ProtocolIE_ID - { - static constexpr const char* name() {return "id_t";} - using parent_t = ProtocolIE_ID; - - }; - struct criticality_t : Criticality - { - static constexpr const char* name() {return "criticality_t";} - using parent_t = Criticality; - - }; - struct presence_t : Presence - { - static constexpr const char* name() {return "presence_t";} - using parent_t = Presence; - - }; - -}; -/* -ProtocolExtensionField {X2AP-PROTOCOL-EXTENSION : ExtensionSetParam} ::= SEQUENCE { - id X2AP-PROTOCOL-EXTENSION.&id ({ExtensionSetParam}), - criticality X2AP-PROTOCOL-EXTENSION.&criticality ({ExtensionSetParam}{@id}), - extensionValue X2AP-PROTOCOL-EXTENSION.&Extension ({ExtensionSetParam}{@id}) -} -*/ - -template -struct ProtocolExtensionField : asn::sequence<3, 0, false, 0> -{ - static constexpr const char* name() {return "ProtocolExtensionField";} - using parent_t = asn::sequence<3, 0, false, 0>; - struct id_t : ExtensionSetParam::id_t - { - static constexpr const char* name() {return "id_t";} - using parent_t = typename ExtensionSetParam::id_t; - template bool decode(V& v, ProtocolExtensionField const& c) - { - return ExtensionSetParam::id_t::decode(v); - }; - template bool encode(V& v, ProtocolExtensionField const& c) const - { - return ExtensionSetParam::id_t::encode(v); - }; - }; - id_t& ref_id() {return id;} - id_t const& ref_id() const {return id;} - struct criticality_t : ExtensionSetParam::criticality_t - { - static constexpr const char* name() {return "criticality_t";} - using parent_t = typename ExtensionSetParam::criticality_t; - template bool decode(V& v, ProtocolExtensionField const& c) - { - return ExtensionSetParam::criticality_t::decode(c.id.get_index(), v); - }; - template bool encode(V& v, ProtocolExtensionField const& c) const - { - return ExtensionSetParam::criticality_t::encode(c.id.get_index(), v); - }; - }; - criticality_t& ref_criticality() {return criticality;} - criticality_t const& ref_criticality() const {return criticality;} - struct extensionValue_t : ExtensionSetParam::Extension_t - { - static constexpr const char* name() {return "extensionValue_t";} - using parent_t = typename ExtensionSetParam::Extension_t; - template bool decode(V& v, ProtocolExtensionField const& c) - { - return ExtensionSetParam::Extension_t::decode(c.id.get_index(), v); - }; - template bool encode(V& v, ProtocolExtensionField const& c) const - { - return ExtensionSetParam::Extension_t::encode(c.id.get_index(), v); - }; - }; - extensionValue_t& ref_extensionValue() {return extensionValue;} - extensionValue_t const& ref_extensionValue() const {return extensionValue;} - template void decode(V& v) - { - v(id); - v(criticality); - v(extensionValue); - - }; - template void encode(V& v) const - { - v(id); - v(criticality); - v(extensionValue); - - }; - void clear() - { - id.clear(); - criticality.clear(); - extensionValue.clear(); - - }; - private: - id_t id; - criticality_t criticality; - extensionValue_t extensionValue; - -}; -/* -ProtocolExtensionContainer {X2AP-PROTOCOL-EXTENSION : ExtensionSetParam} ::= - SEQUENCE (SIZE (1..maxProtocolExtensions)) OF - ProtocolExtensionField {{ExtensionSetParam}} -*/ - -template -struct ProtocolExtensionContainer_elm : ProtocolExtensionField -{ - static constexpr const char* name() {return "ProtocolExtensionContainer_elm";} - using parent_t = ProtocolExtensionField; - -}; -template -struct ProtocolExtensionContainer : asn::sequenceof > -{ - static constexpr const char* name() {return "ProtocolExtensionContainer";} - using parent_t = asn::sequenceof >; - using constraint_t = asn::constraints>; - -}; -/* -X2AP-PROTOCOL-IES ::= CLASS { - &id ProtocolIE-ID UNIQUE, - &criticality Criticality, - &Value, - &presence Presence -} -WITH SYNTAX { - ID &id - CRITICALITY &criticality - TYPE &Value - PRESENCE &presence -} -*/ - -struct X2AP_PROTOCOL_IES -{ - struct id_t : ProtocolIE_ID - { - static constexpr const char* name() {return "id_t";} - using parent_t = ProtocolIE_ID; - - }; - struct criticality_t : Criticality - { - static constexpr const char* name() {return "criticality_t";} - using parent_t = Criticality; - - }; - struct presence_t : Presence - { - static constexpr const char* name() {return "presence_t";} - using parent_t = Presence; - - }; - -}; -/* -ProtocolIE-Field {X2AP-PROTOCOL-IES : IEsSetParam} ::= SEQUENCE { - id X2AP-PROTOCOL-IES.&id ({IEsSetParam}), - criticality X2AP-PROTOCOL-IES.&criticality ({IEsSetParam}{@id}), - value X2AP-PROTOCOL-IES.&Value ({IEsSetParam}{@id}) -} -*/ - -template -struct ProtocolIE_Field : asn::sequence<3, 0, false, 0> -{ - static constexpr const char* name() {return "ProtocolIE-Field";} - using parent_t = asn::sequence<3, 0, false, 0>; - struct id_t : IEsSetParam::id_t - { - static constexpr const char* name() {return "id_t";} - using parent_t = typename IEsSetParam::id_t; - template bool decode(V& v, ProtocolIE_Field const& c) - { - return IEsSetParam::id_t::decode(v); - }; - template bool encode(V& v, ProtocolIE_Field const& c) const - { - return IEsSetParam::id_t::encode(v); - }; - }; - id_t& ref_id() {return id;} - id_t const& ref_id() const {return id;} - struct criticality_t : IEsSetParam::criticality_t - { - static constexpr const char* name() {return "criticality_t";} - using parent_t = typename IEsSetParam::criticality_t; - template bool decode(V& v, ProtocolIE_Field const& c) - { - return IEsSetParam::criticality_t::decode(c.id.get_index(), v); - }; - template bool encode(V& v, ProtocolIE_Field const& c) const - { - return IEsSetParam::criticality_t::encode(c.id.get_index(), v); - }; - }; - criticality_t& ref_criticality() {return criticality;} - criticality_t const& ref_criticality() const {return criticality;} - struct value_t : IEsSetParam::Value_t - { - static constexpr const char* name() {return "value_t";} - using parent_t = typename IEsSetParam::Value_t; - template bool decode(V& v, ProtocolIE_Field const& c) - { - return IEsSetParam::Value_t::decode(c.id.get_index(), v); - }; - template bool encode(V& v, ProtocolIE_Field const& c) const - { - return IEsSetParam::Value_t::encode(c.id.get_index(), v); - }; - }; - value_t& ref_value() {return value;} - value_t const& ref_value() const {return value;} - template void decode(V& v) - { - v(id); - v(criticality); - v(value); - - }; - template void encode(V& v) const - { - v(id); - v(criticality); - v(value); - - }; - void clear() - { - id.clear(); - criticality.clear(); - value.clear(); - - }; - private: - id_t id; - criticality_t criticality; - value_t value; - -}; -/* -ProtocolIE-Container {X2AP-PROTOCOL-IES : IEsSetParam} ::= - SEQUENCE (SIZE (0..maxProtocolIEs)) OF - ProtocolIE-Field {{IEsSetParam}} -*/ - -template -struct ProtocolIE_Container_elm : ProtocolIE_Field -{ - static constexpr const char* name() {return "ProtocolIE_Container_elm";} - using parent_t = ProtocolIE_Field; - -}; -template -struct ProtocolIE_Container : asn::sequenceof > -{ - static constexpr const char* name() {return "ProtocolIE-Container";} - using parent_t = asn::sequenceof >; - using constraint_t = asn::constraints>; - -}; -/* -ProtocolIE-ContainerList {INTEGER : lowerBound, INTEGER : upperBound, X2AP-PROTOCOL-IES : IEsSetParam} ::= - SEQUENCE (SIZE (lowerBound..upperBound)) OF - ProtocolIE-Container {{IEsSetParam}} -*/ - -template -struct ProtocolIE_ContainerList_elm : ProtocolIE_Container -{ - static constexpr const char* name() {return "ProtocolIE_ContainerList_elm";} - using parent_t = ProtocolIE_Container; - -}; -template -struct ProtocolIE_ContainerList : asn::sequenceof > -{ - static constexpr const char* name() {return "ProtocolIE-ContainerList";} - using parent_t = asn::sequenceof >; - using constraint_t = asn::constraints>; - -}; -/* -X2AP-PROTOCOL-IES-PAIR ::= CLASS { - &id ProtocolIE-ID UNIQUE, - &firstCriticality Criticality, - &FirstValue, - &secondCriticality Criticality, - &SecondValue, - &presence Presence -} -WITH SYNTAX { - ID &id - FIRST CRITICALITY &firstCriticality - FIRST TYPE &FirstValue - SECOND CRITICALITY &secondCriticality - SECOND TYPE &SecondValue - PRESENCE &presence -} -*/ - -struct X2AP_PROTOCOL_IES_PAIR -{ - struct id_t : ProtocolIE_ID - { - static constexpr const char* name() {return "id_t";} - using parent_t = ProtocolIE_ID; - - }; - struct firstCriticality_t : Criticality - { - static constexpr const char* name() {return "firstCriticality_t";} - using parent_t = Criticality; - - }; - struct secondCriticality_t : Criticality - { - static constexpr const char* name() {return "secondCriticality_t";} - using parent_t = Criticality; - - }; - struct presence_t : Presence - { - static constexpr const char* name() {return "presence_t";} - using parent_t = Presence; - - }; - -}; -/* -ProtocolIE-FieldPair {X2AP-PROTOCOL-IES-PAIR : IEsSetParam} ::= SEQUENCE { - id X2AP-PROTOCOL-IES-PAIR.&id ({IEsSetParam}), - firstCriticality X2AP-PROTOCOL-IES-PAIR.&firstCriticality ({IEsSetParam}{@id}), - firstValue X2AP-PROTOCOL-IES-PAIR.&FirstValue ({IEsSetParam}{@id}), - secondCriticality X2AP-PROTOCOL-IES-PAIR.&secondCriticality ({IEsSetParam}{@id}), - secondValue X2AP-PROTOCOL-IES-PAIR.&SecondValue ({IEsSetParam}{@id}) -} -*/ - -template -struct ProtocolIE_FieldPair : asn::sequence<5, 0, false, 0> -{ - static constexpr const char* name() {return "ProtocolIE-FieldPair";} - using parent_t = asn::sequence<5, 0, false, 0>; - struct id_t : IEsSetParam::id_t - { - static constexpr const char* name() {return "id_t";} - using parent_t = typename IEsSetParam::id_t; - template bool decode(V& v, ProtocolIE_FieldPair const& c) - { - return IEsSetParam::id_t::decode(v); - }; - template bool encode(V& v, ProtocolIE_FieldPair const& c) const - { - return IEsSetParam::id_t::encode(v); - }; - }; - id_t& ref_id() {return id;} - id_t const& ref_id() const {return id;} - struct firstCriticality_t : IEsSetParam::firstCriticality_t - { - static constexpr const char* name() {return "firstCriticality_t";} - using parent_t = typename IEsSetParam::firstCriticality_t; - template bool decode(V& v, ProtocolIE_FieldPair const& c) - { - return IEsSetParam::firstCriticality_t::decode(c.id.get_index(), v); - }; - template bool encode(V& v, ProtocolIE_FieldPair const& c) const - { - return IEsSetParam::firstCriticality_t::encode(c.id.get_index(), v); - }; - }; - firstCriticality_t& ref_firstCriticality() {return firstCriticality;} - firstCriticality_t const& ref_firstCriticality() const {return firstCriticality;} - struct firstValue_t : IEsSetParam::FirstValue_t - { - static constexpr const char* name() {return "firstValue_t";} - using parent_t = typename IEsSetParam::FirstValue_t; - template bool decode(V& v, ProtocolIE_FieldPair const& c) - { - return IEsSetParam::FirstValue_t::decode(c.id.get_index(), v); - }; - template bool encode(V& v, ProtocolIE_FieldPair const& c) const - { - return IEsSetParam::FirstValue_t::encode(c.id.get_index(), v); - }; - }; - firstValue_t& ref_firstValue() {return firstValue;} - firstValue_t const& ref_firstValue() const {return firstValue;} - struct secondCriticality_t : IEsSetParam::secondCriticality_t - { - static constexpr const char* name() {return "secondCriticality_t";} - using parent_t = typename IEsSetParam::secondCriticality_t; - template bool decode(V& v, ProtocolIE_FieldPair const& c) - { - return IEsSetParam::secondCriticality_t::decode(c.id.get_index(), v); - }; - template bool encode(V& v, ProtocolIE_FieldPair const& c) const - { - return IEsSetParam::secondCriticality_t::encode(c.id.get_index(), v); - }; - }; - secondCriticality_t& ref_secondCriticality() {return secondCriticality;} - secondCriticality_t const& ref_secondCriticality() const {return secondCriticality;} - struct secondValue_t : IEsSetParam::SecondValue_t - { - static constexpr const char* name() {return "secondValue_t";} - using parent_t = typename IEsSetParam::SecondValue_t; - template bool decode(V& v, ProtocolIE_FieldPair const& c) - { - return IEsSetParam::SecondValue_t::decode(c.id.get_index(), v); - }; - template bool encode(V& v, ProtocolIE_FieldPair const& c) const - { - return IEsSetParam::SecondValue_t::encode(c.id.get_index(), v); - }; - }; - secondValue_t& ref_secondValue() {return secondValue;} - secondValue_t const& ref_secondValue() const {return secondValue;} - template void decode(V& v) - { - v(id); - v(firstCriticality); - v(firstValue); - v(secondCriticality); - v(secondValue); - - }; - template void encode(V& v) const - { - v(id); - v(firstCriticality); - v(firstValue); - v(secondCriticality); - v(secondValue); - - }; - void clear() - { - id.clear(); - firstCriticality.clear(); - firstValue.clear(); - secondCriticality.clear(); - secondValue.clear(); - - }; - private: - id_t id; - firstCriticality_t firstCriticality; - firstValue_t firstValue; - secondCriticality_t secondCriticality; - secondValue_t secondValue; - -}; -/* -ProtocolIE-ContainerPair {X2AP-PROTOCOL-IES-PAIR : IEsSetParam} ::= - SEQUENCE (SIZE (0..maxProtocolIEs)) OF - ProtocolIE-FieldPair {{IEsSetParam}} -*/ - -template -struct ProtocolIE_ContainerPair_elm : ProtocolIE_FieldPair -{ - static constexpr const char* name() {return "ProtocolIE_ContainerPair_elm";} - using parent_t = ProtocolIE_FieldPair; - -}; -template -struct ProtocolIE_ContainerPair : asn::sequenceof > -{ - static constexpr const char* name() {return "ProtocolIE-ContainerPair";} - using parent_t = asn::sequenceof >; - using constraint_t = asn::constraints>; - -}; -/* -ProtocolIE-ContainerPairList {INTEGER : lowerBound, INTEGER : upperBound, X2AP-PROTOCOL-IES-PAIR : IEsSetParam} ::= - SEQUENCE (SIZE (lowerBound..upperBound)) OF - ProtocolIE-ContainerPair {{IEsSetParam}} -*/ - -template -struct ProtocolIE_ContainerPairList_elm : ProtocolIE_ContainerPair -{ - static constexpr const char* name() {return "ProtocolIE_ContainerPairList_elm";} - using parent_t = ProtocolIE_ContainerPair; - -}; -template -struct ProtocolIE_ContainerPairList : asn::sequenceof > -{ - static constexpr const char* name() {return "ProtocolIE-ContainerPairList";} - using parent_t = asn::sequenceof >; - using constraint_t = asn::constraints>; - -}; -/* -ProtocolIE-Single-Container {X2AP-PROTOCOL-IES : IEsSetParam} ::= - ProtocolIE-Field {{IEsSetParam}} -*/ - -template -struct ProtocolIE_Single_Container : ProtocolIE_Field -{ - static constexpr const char* name() {return "ProtocolIE-Single-Container";} - using parent_t = ProtocolIE_Field; - -}; diff --git a/e2sim/previous/e2apv1sim/src/ASN1/generated/X2AP-IEs.hpp b/e2sim/previous/e2apv1sim/src/ASN1/generated/X2AP-IEs.hpp deleted file mode 100644 index f056563..0000000 --- a/e2sim/previous/e2apv1sim/src/ASN1/generated/X2AP-IEs.hpp +++ /dev/null @@ -1,35962 +0,0 @@ -/***************************************************************************** -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -#pragma once - -#include "asn/asn.hpp" -static_assert(ASN_API_VERSION_MAJOR == 5, "re-generate the ASN parser's code using 'make regen-asn' (do not use -j option)"); - -#include "X2AP-Constants.hpp" -#include "X2AP-CommonDataTypes.hpp" -#include "X2AP-Containers.hpp" - -/* -DL-ABS-status::= INTEGER (0..100) -*/ - -struct DL_ABS_status : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "DL-ABS-status";} - using parent_t = asn::integer<>; - -}; - -/* -UsableABSInformationFDD-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct UsableABSInformationFDD_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -UsableABSInformationFDD ::= SEQUENCE { - usable-abs-pattern-info BIT STRING (SIZE(40)), - iE-Extensions ProtocolExtensionContainer { {UsableABSInformationFDD-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct UsableABSInformationFDD : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "UsableABSInformationFDD";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct usable_abs_pattern_info_t : asn::bstring<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "usable_abs_pattern_info_t";} - using parent_t = asn::bstring<>; - - }; - - usable_abs_pattern_info_t& ref_usable_abs_pattern_info() {return usable_abs_pattern_info;} - usable_abs_pattern_info_t const& ref_usable_abs_pattern_info() const {return usable_abs_pattern_info;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(usable_abs_pattern_info); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(usable_abs_pattern_info); - v(iE_Extensions); - - }; - void clear() - { - usable_abs_pattern_info.clear(); - iE_Extensions.clear(); - - }; - private: - usable_abs_pattern_info_t usable_abs_pattern_info; - iE_Extensions_t iE_Extensions; - -}; -/* -UsableABSInformationTDD-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct UsableABSInformationTDD_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -UsableABSInformationTDD ::= SEQUENCE { - usaable-abs-pattern-info BIT STRING (SIZE(1..70, ...)), - iE-Extensions ProtocolExtensionContainer { {UsableABSInformationTDD-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct UsableABSInformationTDD : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "UsableABSInformationTDD";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct usaable_abs_pattern_info_t : asn::bstring<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "usaable_abs_pattern_info_t";} - using parent_t = asn::bstring<>; - - }; - - usaable_abs_pattern_info_t& ref_usaable_abs_pattern_info() {return usaable_abs_pattern_info;} - usaable_abs_pattern_info_t const& ref_usaable_abs_pattern_info() const {return usaable_abs_pattern_info;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(usaable_abs_pattern_info); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(usaable_abs_pattern_info); - v(iE_Extensions); - - }; - void clear() - { - usaable_abs_pattern_info.clear(); - iE_Extensions.clear(); - - }; - private: - usaable_abs_pattern_info_t usaable_abs_pattern_info; - iE_Extensions_t iE_Extensions; - -}; -/* -UsableABSInformation ::= CHOICE { - fdd UsableABSInformationFDD, - tdd UsableABSInformationTDD, - ... -} -*/ - -struct UsableABSInformation : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "UsableABSInformation";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~UsableABSInformation() {clear();} - struct fdd_t : UsableABSInformationFDD - { - static constexpr const char* name() {return "fdd_t";} - using parent_t = UsableABSInformationFDD; - - }; - struct tdd_t : UsableABSInformationTDD - { - static constexpr const char* name() {return "tdd_t";} - using parent_t = UsableABSInformationTDD; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - fdd_t& select_fdd() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - fdd_t const* get_fdd() const { if(get_index() == 1) { return &var.as();} return nullptr; } - tdd_t& select_tdd() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - tdd_t const* get_tdd() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(fdd_t)]; - char dummy2[sizeof(tdd_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -ABS-Status-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct ABS_Status_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ABS-Status ::= SEQUENCE { - dL-ABS-status DL-ABS-status, - usableABSInformation UsableABSInformation, - iE-Extensions ProtocolExtensionContainer { {ABS-Status-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct ABS_Status : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "ABS-Status";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct dL_ABS_status_t : DL_ABS_status - { - static constexpr const char* name() {return "dL_ABS_status_t";} - using parent_t = DL_ABS_status; - - }; - dL_ABS_status_t& ref_dL_ABS_status() {return dL_ABS_status;} - dL_ABS_status_t const& ref_dL_ABS_status() const {return dL_ABS_status;} - struct usableABSInformation_t : UsableABSInformation - { - static constexpr const char* name() {return "usableABSInformation_t";} - using parent_t = UsableABSInformation; - - }; - usableABSInformation_t& ref_usableABSInformation() {return usableABSInformation;} - usableABSInformation_t const& ref_usableABSInformation() const {return usableABSInformation;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(dL_ABS_status); - v(usableABSInformation); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(dL_ABS_status); - v(usableABSInformation); - v(iE_Extensions); - - }; - void clear() - { - dL_ABS_status.clear(); - usableABSInformation.clear(); - iE_Extensions.clear(); - - }; - private: - dL_ABS_status_t dL_ABS_status; - usableABSInformation_t usableABSInformation; - iE_Extensions_t iE_Extensions; - -}; -/* -ABSInformationFDD-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct ABSInformationFDD_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ABSInformationFDD ::= SEQUENCE { - abs-pattern-info BIT STRING (SIZE(40)), - numberOfCellSpecificAntennaPorts ENUMERATED {one, two, four, ...}, - measurement-subset BIT STRING (SIZE(40)), - iE-Extensions ProtocolExtensionContainer { {ABSInformationFDD-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct ABSInformationFDD : asn::sequence<4, 0, true, 1> -{ - static constexpr const char* name() {return "ABSInformationFDD";} - using parent_t = asn::sequence<4, 0, true, 1>; - struct abs_pattern_info_t : asn::bstring<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "abs_pattern_info_t";} - using parent_t = asn::bstring<>; - - }; - - abs_pattern_info_t& ref_abs_pattern_info() {return abs_pattern_info;} - abs_pattern_info_t const& ref_abs_pattern_info() const {return abs_pattern_info;} - struct numberOfCellSpecificAntennaPorts_t : asn::enumerated<3, 0, true> - { - static constexpr const char* name() {return "numberOfCellSpecificAntennaPorts_t";} - using parent_t = asn::enumerated<3, 0, true>; - typedef enum { - one - ,two - ,four - } index_t; - - }; - - numberOfCellSpecificAntennaPorts_t& ref_numberOfCellSpecificAntennaPorts() {return numberOfCellSpecificAntennaPorts;} - numberOfCellSpecificAntennaPorts_t const& ref_numberOfCellSpecificAntennaPorts() const {return numberOfCellSpecificAntennaPorts;} - struct measurement_subset_t : asn::bstring<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "measurement_subset_t";} - using parent_t = asn::bstring<>; - - }; - - measurement_subset_t& ref_measurement_subset() {return measurement_subset;} - measurement_subset_t const& ref_measurement_subset() const {return measurement_subset;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(abs_pattern_info); - v(numberOfCellSpecificAntennaPorts); - v(measurement_subset); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(abs_pattern_info); - v(numberOfCellSpecificAntennaPorts); - v(measurement_subset); - v(iE_Extensions); - - }; - void clear() - { - abs_pattern_info.clear(); - numberOfCellSpecificAntennaPorts.clear(); - measurement_subset.clear(); - iE_Extensions.clear(); - - }; - private: - abs_pattern_info_t abs_pattern_info; - numberOfCellSpecificAntennaPorts_t numberOfCellSpecificAntennaPorts; - measurement_subset_t measurement_subset; - iE_Extensions_t iE_Extensions; - -}; -/* -ABSInformationTDD-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct ABSInformationTDD_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ABSInformationTDD ::= SEQUENCE { - abs-pattern-info BIT STRING (SIZE(1..70, ...)), - numberOfCellSpecificAntennaPorts ENUMERATED {one, two, four, ...}, - measurement-subset BIT STRING (SIZE(1..70, ...)), - iE-Extensions ProtocolExtensionContainer { {ABSInformationTDD-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct ABSInformationTDD : asn::sequence<4, 0, true, 1> -{ - static constexpr const char* name() {return "ABSInformationTDD";} - using parent_t = asn::sequence<4, 0, true, 1>; - struct abs_pattern_info_t : asn::bstring<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "abs_pattern_info_t";} - using parent_t = asn::bstring<>; - - }; - - abs_pattern_info_t& ref_abs_pattern_info() {return abs_pattern_info;} - abs_pattern_info_t const& ref_abs_pattern_info() const {return abs_pattern_info;} - struct numberOfCellSpecificAntennaPorts_t : asn::enumerated<3, 0, true> - { - static constexpr const char* name() {return "numberOfCellSpecificAntennaPorts_t";} - using parent_t = asn::enumerated<3, 0, true>; - typedef enum { - one - ,two - ,four - } index_t; - - }; - - numberOfCellSpecificAntennaPorts_t& ref_numberOfCellSpecificAntennaPorts() {return numberOfCellSpecificAntennaPorts;} - numberOfCellSpecificAntennaPorts_t const& ref_numberOfCellSpecificAntennaPorts() const {return numberOfCellSpecificAntennaPorts;} - struct measurement_subset_t : asn::bstring<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "measurement_subset_t";} - using parent_t = asn::bstring<>; - - }; - - measurement_subset_t& ref_measurement_subset() {return measurement_subset;} - measurement_subset_t const& ref_measurement_subset() const {return measurement_subset;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(abs_pattern_info); - v(numberOfCellSpecificAntennaPorts); - v(measurement_subset); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(abs_pattern_info); - v(numberOfCellSpecificAntennaPorts); - v(measurement_subset); - v(iE_Extensions); - - }; - void clear() - { - abs_pattern_info.clear(); - numberOfCellSpecificAntennaPorts.clear(); - measurement_subset.clear(); - iE_Extensions.clear(); - - }; - private: - abs_pattern_info_t abs_pattern_info; - numberOfCellSpecificAntennaPorts_t numberOfCellSpecificAntennaPorts; - measurement_subset_t measurement_subset; - iE_Extensions_t iE_Extensions; - -}; -/* -ABSInformation ::= CHOICE { - fdd ABSInformationFDD, - tdd ABSInformationTDD, - abs-inactive NULL, - ... -} -*/ - -struct ABSInformation : asn::choice<3, 0, true> -{ - static constexpr const char* name() {return "ABSInformation";} - using parent_t = asn::choice<3, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 4;} - void set_unknown() { set_index(4); } - ~ABSInformation() {clear();} - struct fdd_t : ABSInformationFDD - { - static constexpr const char* name() {return "fdd_t";} - using parent_t = ABSInformationFDD; - - }; - struct tdd_t : ABSInformationTDD - { - static constexpr const char* name() {return "tdd_t";} - using parent_t = ABSInformationTDD; - - }; - struct abs_inactive_t : asn::nulltype - { - static constexpr const char* name() {return "abs_inactive_t";} - using parent_t = asn::nulltype; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - case 3: set_index(3); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - case 3: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - - } - fdd_t& select_fdd() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - fdd_t const* get_fdd() const { if(get_index() == 1) { return &var.as();} return nullptr; } - tdd_t& select_tdd() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - tdd_t const* get_tdd() const { if(get_index() == 2) { return &var.as();} return nullptr; } - abs_inactive_t& select_abs_inactive() { if(get_index() != 3) { clear(); set_index(3); return var.build();} return var.as();} - abs_inactive_t const* get_abs_inactive() const { if(get_index() == 3) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(fdd_t)]; - char dummy2[sizeof(tdd_t)]; - char dummy3[sizeof(abs_inactive_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -Key-eNodeB-Star ::= BIT STRING (SIZE(256)) -*/ - -struct Key_eNodeB_Star : asn::bstring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "Key-eNodeB-Star";} - using parent_t = asn::bstring<>; - -}; - -/* -NextHopChainingCount ::= INTEGER (0..7) -*/ - -struct NextHopChainingCount : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "NextHopChainingCount";} - using parent_t = asn::integer<>; - -}; - -/* -AS-SecurityInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct AS_SecurityInformation_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -AS-SecurityInformation ::= SEQUENCE { - key-eNodeB-star Key-eNodeB-Star, - nextHopChainingCount NextHopChainingCount, - iE-Extensions ProtocolExtensionContainer { {AS-SecurityInformation-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct AS_SecurityInformation : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "AS-SecurityInformation";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct key_eNodeB_star_t : Key_eNodeB_Star - { - static constexpr const char* name() {return "key_eNodeB_star_t";} - using parent_t = Key_eNodeB_Star; - - }; - key_eNodeB_star_t& ref_key_eNodeB_star() {return key_eNodeB_star;} - key_eNodeB_star_t const& ref_key_eNodeB_star() const {return key_eNodeB_star;} - struct nextHopChainingCount_t : NextHopChainingCount - { - static constexpr const char* name() {return "nextHopChainingCount_t";} - using parent_t = NextHopChainingCount; - - }; - nextHopChainingCount_t& ref_nextHopChainingCount() {return nextHopChainingCount;} - nextHopChainingCount_t const& ref_nextHopChainingCount() const {return nextHopChainingCount;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(key_eNodeB_star); - v(nextHopChainingCount); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(key_eNodeB_star); - v(nextHopChainingCount); - v(iE_Extensions); - - }; - void clear() - { - key_eNodeB_star.clear(); - nextHopChainingCount.clear(); - iE_Extensions.clear(); - - }; - private: - key_eNodeB_star_t key_eNodeB_star; - nextHopChainingCount_t nextHopChainingCount; - iE_Extensions_t iE_Extensions; - -}; -/* -ActivationID ::= INTEGER (0..255) -*/ - -struct ActivationID : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "ActivationID";} - using parent_t = asn::integer<>; - -}; - -/* -AdditionalSpecialSubframePatterns ::= ENUMERATED { - ssp0, - ssp1, - ssp2, - ssp3, - ssp4, - ssp5, - ssp6, - ssp7, - ssp8, - ssp9, - ... -} -*/ - -struct AdditionalSpecialSubframePatterns : asn::enumerated<10, 0, true> -{ - static constexpr const char* name() {return "AdditionalSpecialSubframePatterns";} - using parent_t = asn::enumerated<10, 0, true>; - typedef enum { - ssp0 - ,ssp1 - ,ssp2 - ,ssp3 - ,ssp4 - ,ssp5 - ,ssp6 - ,ssp7 - ,ssp8 - ,ssp9 - } index_t; - -}; - -/* -CyclicPrefixDL ::= ENUMERATED { - normal, - extended, - ... -} -*/ - -struct CyclicPrefixDL : asn::enumerated<2, 0, true> -{ - static constexpr const char* name() {return "CyclicPrefixDL";} - using parent_t = asn::enumerated<2, 0, true>; - typedef enum { - normal - ,extended - } index_t; - -}; - -/* -CyclicPrefixUL ::= ENUMERATED { - normal, - extended, - ... -} -*/ - -struct CyclicPrefixUL : asn::enumerated<2, 0, true> -{ - static constexpr const char* name() {return "CyclicPrefixUL";} - using parent_t = asn::enumerated<2, 0, true>; - typedef enum { - normal - ,extended - } index_t; - -}; - -/* -AdditionalSpecialSubframe-Info-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct AdditionalSpecialSubframe_Info_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -AdditionalSpecialSubframe-Info ::= SEQUENCE { - additionalspecialSubframePatterns AdditionalSpecialSubframePatterns, - cyclicPrefixDL CyclicPrefixDL, - cyclicPrefixUL CyclicPrefixUL, - iE-Extensions ProtocolExtensionContainer { {AdditionalSpecialSubframe-Info-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct AdditionalSpecialSubframe_Info : asn::sequence<4, 0, true, 1> -{ - static constexpr const char* name() {return "AdditionalSpecialSubframe-Info";} - using parent_t = asn::sequence<4, 0, true, 1>; - struct additionalspecialSubframePatterns_t : AdditionalSpecialSubframePatterns - { - static constexpr const char* name() {return "additionalspecialSubframePatterns_t";} - using parent_t = AdditionalSpecialSubframePatterns; - - }; - additionalspecialSubframePatterns_t& ref_additionalspecialSubframePatterns() {return additionalspecialSubframePatterns;} - additionalspecialSubframePatterns_t const& ref_additionalspecialSubframePatterns() const {return additionalspecialSubframePatterns;} - struct cyclicPrefixDL_t : CyclicPrefixDL - { - static constexpr const char* name() {return "cyclicPrefixDL_t";} - using parent_t = CyclicPrefixDL; - - }; - cyclicPrefixDL_t& ref_cyclicPrefixDL() {return cyclicPrefixDL;} - cyclicPrefixDL_t const& ref_cyclicPrefixDL() const {return cyclicPrefixDL;} - struct cyclicPrefixUL_t : CyclicPrefixUL - { - static constexpr const char* name() {return "cyclicPrefixUL_t";} - using parent_t = CyclicPrefixUL; - - }; - cyclicPrefixUL_t& ref_cyclicPrefixUL() {return cyclicPrefixUL;} - cyclicPrefixUL_t const& ref_cyclicPrefixUL() const {return cyclicPrefixUL;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(additionalspecialSubframePatterns); - v(cyclicPrefixDL); - v(cyclicPrefixUL); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(additionalspecialSubframePatterns); - v(cyclicPrefixDL); - v(cyclicPrefixUL); - v(iE_Extensions); - - }; - void clear() - { - additionalspecialSubframePatterns.clear(); - cyclicPrefixDL.clear(); - cyclicPrefixUL.clear(); - iE_Extensions.clear(); - - }; - private: - additionalspecialSubframePatterns_t additionalspecialSubframePatterns; - cyclicPrefixDL_t cyclicPrefixDL; - cyclicPrefixUL_t cyclicPrefixUL; - iE_Extensions_t iE_Extensions; - -}; -/* -AdditionalSpecialSubframePatternsExtension ::= ENUMERATED { - ssp10, - ... -} -*/ - -struct AdditionalSpecialSubframePatternsExtension : asn::enumerated<1, 0, true> -{ - static constexpr const char* name() {return "AdditionalSpecialSubframePatternsExtension";} - using parent_t = asn::enumerated<1, 0, true>; - typedef enum { - ssp10 - } index_t; - -}; - -/* -AdditionalSpecialSubframeExtension-Info-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct AdditionalSpecialSubframeExtension_Info_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -AdditionalSpecialSubframeExtension-Info ::= SEQUENCE { - additionalspecialSubframePatternsExtension AdditionalSpecialSubframePatternsExtension, - cyclicPrefixDL CyclicPrefixDL, - cyclicPrefixUL CyclicPrefixUL, - iE-Extensions ProtocolExtensionContainer { {AdditionalSpecialSubframeExtension-Info-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct AdditionalSpecialSubframeExtension_Info : asn::sequence<4, 0, true, 1> -{ - static constexpr const char* name() {return "AdditionalSpecialSubframeExtension-Info";} - using parent_t = asn::sequence<4, 0, true, 1>; - struct additionalspecialSubframePatternsExtension_t : AdditionalSpecialSubframePatternsExtension - { - static constexpr const char* name() {return "additionalspecialSubframePatternsExtension_t";} - using parent_t = AdditionalSpecialSubframePatternsExtension; - - }; - additionalspecialSubframePatternsExtension_t& ref_additionalspecialSubframePatternsExtension() {return additionalspecialSubframePatternsExtension;} - additionalspecialSubframePatternsExtension_t const& ref_additionalspecialSubframePatternsExtension() const {return additionalspecialSubframePatternsExtension;} - struct cyclicPrefixDL_t : CyclicPrefixDL - { - static constexpr const char* name() {return "cyclicPrefixDL_t";} - using parent_t = CyclicPrefixDL; - - }; - cyclicPrefixDL_t& ref_cyclicPrefixDL() {return cyclicPrefixDL;} - cyclicPrefixDL_t const& ref_cyclicPrefixDL() const {return cyclicPrefixDL;} - struct cyclicPrefixUL_t : CyclicPrefixUL - { - static constexpr const char* name() {return "cyclicPrefixUL_t";} - using parent_t = CyclicPrefixUL; - - }; - cyclicPrefixUL_t& ref_cyclicPrefixUL() {return cyclicPrefixUL;} - cyclicPrefixUL_t const& ref_cyclicPrefixUL() const {return cyclicPrefixUL;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(additionalspecialSubframePatternsExtension); - v(cyclicPrefixDL); - v(cyclicPrefixUL); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(additionalspecialSubframePatternsExtension); - v(cyclicPrefixDL); - v(cyclicPrefixUL); - v(iE_Extensions); - - }; - void clear() - { - additionalspecialSubframePatternsExtension.clear(); - cyclicPrefixDL.clear(); - cyclicPrefixUL.clear(); - iE_Extensions.clear(); - - }; - private: - additionalspecialSubframePatternsExtension_t additionalspecialSubframePatternsExtension; - cyclicPrefixDL_t cyclicPrefixDL; - cyclicPrefixUL_t cyclicPrefixUL; - iE_Extensions_t iE_Extensions; - -}; -/* -AerialUEsubscriptionInformation ::= ENUMERATED { - allowed, - not-allowed, - ... -} -*/ - -struct AerialUEsubscriptionInformation : asn::enumerated<2, 0, true> -{ - static constexpr const char* name() {return "AerialUEsubscriptionInformation";} - using parent_t = asn::enumerated<2, 0, true>; - typedef enum { - allowed - ,not_allowed - } index_t; - -}; - -/* -PriorityLevel ::= INTEGER { spare (0), highest (1), lowest (14), no-priority (15) } (0..15) -*/ - -struct PriorityLevel : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "PriorityLevel";} - using parent_t = asn::integer<>; - enum {spare = 0, highest = 1, lowest = 14, no_priority = 15}; - -}; - -/* -Pre-emptionCapability ::= ENUMERATED { - shall-not-trigger-pre-emption, - may-trigger-pre-emption -} -*/ - -struct Pre_emptionCapability : asn::enumerated<2, 0, false> -{ - static constexpr const char* name() {return "Pre-emptionCapability";} - using parent_t = asn::enumerated<2, 0, false>; - typedef enum { - shall_not_trigger_pre_emption - ,may_trigger_pre_emption - } index_t; - -}; - -/* -Pre-emptionVulnerability ::= ENUMERATED { - not-pre-emptable, - pre-emptable -} -*/ - -struct Pre_emptionVulnerability : asn::enumerated<2, 0, false> -{ - static constexpr const char* name() {return "Pre-emptionVulnerability";} - using parent_t = asn::enumerated<2, 0, false>; - typedef enum { - not_pre_emptable - ,pre_emptable - } index_t; - -}; - -/* -AllocationAndRetentionPriority-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct AllocationAndRetentionPriority_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -AllocationAndRetentionPriority ::= SEQUENCE { - priorityLevel PriorityLevel, - pre-emptionCapability Pre-emptionCapability, - pre-emptionVulnerability Pre-emptionVulnerability, - iE-Extensions ProtocolExtensionContainer { {AllocationAndRetentionPriority-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct AllocationAndRetentionPriority : asn::sequence<4, 0, true, 1> -{ - static constexpr const char* name() {return "AllocationAndRetentionPriority";} - using parent_t = asn::sequence<4, 0, true, 1>; - struct priorityLevel_t : PriorityLevel - { - static constexpr const char* name() {return "priorityLevel_t";} - using parent_t = PriorityLevel; - - }; - priorityLevel_t& ref_priorityLevel() {return priorityLevel;} - priorityLevel_t const& ref_priorityLevel() const {return priorityLevel;} - struct pre_emptionCapability_t : Pre_emptionCapability - { - static constexpr const char* name() {return "pre_emptionCapability_t";} - using parent_t = Pre_emptionCapability; - - }; - pre_emptionCapability_t& ref_pre_emptionCapability() {return pre_emptionCapability;} - pre_emptionCapability_t const& ref_pre_emptionCapability() const {return pre_emptionCapability;} - struct pre_emptionVulnerability_t : Pre_emptionVulnerability - { - static constexpr const char* name() {return "pre_emptionVulnerability_t";} - using parent_t = Pre_emptionVulnerability; - - }; - pre_emptionVulnerability_t& ref_pre_emptionVulnerability() {return pre_emptionVulnerability;} - pre_emptionVulnerability_t const& ref_pre_emptionVulnerability() const {return pre_emptionVulnerability;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(priorityLevel); - v(pre_emptionCapability); - v(pre_emptionVulnerability); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(priorityLevel); - v(pre_emptionCapability); - v(pre_emptionVulnerability); - v(iE_Extensions); - - }; - void clear() - { - priorityLevel.clear(); - pre_emptionCapability.clear(); - pre_emptionVulnerability.clear(); - iE_Extensions.clear(); - - }; - private: - priorityLevel_t priorityLevel; - pre_emptionCapability_t pre_emptionCapability; - pre_emptionVulnerability_t pre_emptionVulnerability; - iE_Extensions_t iE_Extensions; - -}; -/* -PLMN-Identity ::= OCTET STRING (SIZE(3)) -*/ - -struct PLMN_Identity : asn::ostring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "PLMN-Identity";} - using parent_t = asn::ostring<>; - -}; - -/* -EUTRANCellIdentifier ::= BIT STRING (SIZE (28)) -*/ - -struct EUTRANCellIdentifier : asn::bstring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "EUTRANCellIdentifier";} - using parent_t = asn::bstring<>; - -}; - -/* -ECGI-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct ECGI_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ECGI ::= SEQUENCE { - pLMN-Identity PLMN-Identity, - eUTRANcellIdentifier EUTRANCellIdentifier, - iE-Extensions ProtocolExtensionContainer { {ECGI-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct ECGI : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "ECGI";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct pLMN_Identity_t : PLMN_Identity - { - static constexpr const char* name() {return "pLMN_Identity_t";} - using parent_t = PLMN_Identity; - - }; - pLMN_Identity_t& ref_pLMN_Identity() {return pLMN_Identity;} - pLMN_Identity_t const& ref_pLMN_Identity() const {return pLMN_Identity;} - struct eUTRANcellIdentifier_t : EUTRANCellIdentifier - { - static constexpr const char* name() {return "eUTRANcellIdentifier_t";} - using parent_t = EUTRANCellIdentifier; - - }; - eUTRANcellIdentifier_t& ref_eUTRANcellIdentifier() {return eUTRANcellIdentifier;} - eUTRANcellIdentifier_t const& ref_eUTRANcellIdentifier() const {return eUTRANcellIdentifier;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(pLMN_Identity); - v(eUTRANcellIdentifier); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(pLMN_Identity); - v(eUTRANcellIdentifier); - v(iE_Extensions); - - }; - void clear() - { - pLMN_Identity.clear(); - eUTRANcellIdentifier.clear(); - iE_Extensions.clear(); - - }; - private: - pLMN_Identity_t pLMN_Identity; - eUTRANcellIdentifier_t eUTRANcellIdentifier; - iE_Extensions_t iE_Extensions; - -}; -/* -CellIdListforMDT ::= SEQUENCE (SIZE(1..maxnoofCellIDforMDT)) OF ECGI -*/ - -struct CellIdListforMDT_elm : ECGI -{ - static constexpr const char* name() {return "CellIdListforMDT_elm";} - using parent_t = ECGI; - -}; -struct CellIdListforMDT : asn::sequenceof -{ - static constexpr const char* name() {return "CellIdListforMDT";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -CellBasedMDT-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct CellBasedMDT_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -CellBasedMDT::= SEQUENCE { - cellIdListforMDT CellIdListforMDT, - iE-Extensions ProtocolExtensionContainer { {CellBasedMDT-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct CellBasedMDT : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "CellBasedMDT";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct cellIdListforMDT_t : CellIdListforMDT - { - static constexpr const char* name() {return "cellIdListforMDT_t";} - using parent_t = CellIdListforMDT; - - }; - cellIdListforMDT_t& ref_cellIdListforMDT() {return cellIdListforMDT;} - cellIdListforMDT_t const& ref_cellIdListforMDT() const {return cellIdListforMDT;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(cellIdListforMDT); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(cellIdListforMDT); - v(iE_Extensions); - - }; - void clear() - { - cellIdListforMDT.clear(); - iE_Extensions.clear(); - - }; - private: - cellIdListforMDT_t cellIdListforMDT; - iE_Extensions_t iE_Extensions; - -}; -/* -TAC ::= OCTET STRING (SIZE (2)) -*/ - -struct TAC : asn::ostring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "TAC";} - using parent_t = asn::ostring<>; - -}; - -/* -TAListforMDT ::= SEQUENCE (SIZE(1..maxnoofTAforMDT)) OF TAC -*/ - -struct TAListforMDT_elm : TAC -{ - static constexpr const char* name() {return "TAListforMDT_elm";} - using parent_t = TAC; - -}; -struct TAListforMDT : asn::sequenceof -{ - static constexpr const char* name() {return "TAListforMDT";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -TABasedMDT-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct TABasedMDT_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -TABasedMDT::= SEQUENCE { - tAListforMDT TAListforMDT, - iE-Extensions ProtocolExtensionContainer { {TABasedMDT-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct TABasedMDT : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "TABasedMDT";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct tAListforMDT_t : TAListforMDT - { - static constexpr const char* name() {return "tAListforMDT_t";} - using parent_t = TAListforMDT; - - }; - tAListforMDT_t& ref_tAListforMDT() {return tAListforMDT;} - tAListforMDT_t const& ref_tAListforMDT() const {return tAListforMDT;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(tAListforMDT); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(tAListforMDT); - v(iE_Extensions); - - }; - void clear() - { - tAListforMDT.clear(); - iE_Extensions.clear(); - - }; - private: - tAListforMDT_t tAListforMDT; - iE_Extensions_t iE_Extensions; - -}; -/* -TAI-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct TAI_Item_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -TAI-Item ::= SEQUENCE { - tAC TAC, - pLMN-Identity PLMN-Identity, - iE-Extensions ProtocolExtensionContainer { {TAI-Item-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct TAI_Item : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "TAI-Item";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct tAC_t : TAC - { - static constexpr const char* name() {return "tAC_t";} - using parent_t = TAC; - - }; - tAC_t& ref_tAC() {return tAC;} - tAC_t const& ref_tAC() const {return tAC;} - struct pLMN_Identity_t : PLMN_Identity - { - static constexpr const char* name() {return "pLMN_Identity_t";} - using parent_t = PLMN_Identity; - - }; - pLMN_Identity_t& ref_pLMN_Identity() {return pLMN_Identity;} - pLMN_Identity_t const& ref_pLMN_Identity() const {return pLMN_Identity;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(tAC); - v(pLMN_Identity); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(tAC); - v(pLMN_Identity); - v(iE_Extensions); - - }; - void clear() - { - tAC.clear(); - pLMN_Identity.clear(); - iE_Extensions.clear(); - - }; - private: - tAC_t tAC; - pLMN_Identity_t pLMN_Identity; - iE_Extensions_t iE_Extensions; - -}; -/* -TAIListforMDT ::= SEQUENCE (SIZE(1..maxnoofTAforMDT)) OF TAI-Item -*/ - -struct TAIListforMDT_elm : TAI_Item -{ - static constexpr const char* name() {return "TAIListforMDT_elm";} - using parent_t = TAI_Item; - -}; -struct TAIListforMDT : asn::sequenceof -{ - static constexpr const char* name() {return "TAIListforMDT";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -TAIBasedMDT-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct TAIBasedMDT_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -TAIBasedMDT ::= SEQUENCE { - tAIListforMDT TAIListforMDT, - iE-Extensions ProtocolExtensionContainer { {TAIBasedMDT-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct TAIBasedMDT : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "TAIBasedMDT";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct tAIListforMDT_t : TAIListforMDT - { - static constexpr const char* name() {return "tAIListforMDT_t";} - using parent_t = TAIListforMDT; - - }; - tAIListforMDT_t& ref_tAIListforMDT() {return tAIListforMDT;} - tAIListforMDT_t const& ref_tAIListforMDT() const {return tAIListforMDT;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(tAIListforMDT); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(tAIListforMDT); - v(iE_Extensions); - - }; - void clear() - { - tAIListforMDT.clear(); - iE_Extensions.clear(); - - }; - private: - tAIListforMDT_t tAIListforMDT; - iE_Extensions_t iE_Extensions; - -}; -/* -AreaScopeOfMDT ::= CHOICE { - cellBased CellBasedMDT, - tABased TABasedMDT, - pLMNWide NULL, - ..., - tAIBased TAIBasedMDT -} -*/ - -struct AreaScopeOfMDT : asn::choice<4, 1, true> -{ - static constexpr const char* name() {return "AreaScopeOfMDT";} - using parent_t = asn::choice<4, 1, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 5;} - void set_unknown() { set_index(5); } - ~AreaScopeOfMDT() {clear();} - struct cellBased_t : CellBasedMDT - { - static constexpr const char* name() {return "cellBased_t";} - using parent_t = CellBasedMDT; - - }; - struct tABased_t : TABasedMDT - { - static constexpr const char* name() {return "tABased_t";} - using parent_t = TABasedMDT; - - }; - struct pLMNWide_t : asn::nulltype - { - static constexpr const char* name() {return "pLMNWide_t";} - using parent_t = asn::nulltype; - - }; - struct tAIBased_t : TAIBasedMDT - { - static constexpr const char* name() {return "tAIBased_t";} - using parent_t = TAIBasedMDT; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - case 3: set_index(3); return v(var.build()); - case 4: set_index(4); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - case 3: return v(var.as()); - case 4: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - - } - cellBased_t& select_cellBased() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - cellBased_t const* get_cellBased() const { if(get_index() == 1) { return &var.as();} return nullptr; } - tABased_t& select_tABased() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - tABased_t const* get_tABased() const { if(get_index() == 2) { return &var.as();} return nullptr; } - pLMNWide_t& select_pLMNWide() { if(get_index() != 3) { clear(); set_index(3); return var.build();} return var.as();} - pLMNWide_t const* get_pLMNWide() const { if(get_index() == 3) { return &var.as();} return nullptr; } - tAIBased_t& select_tAIBased() { if(get_index() != 4) { clear(); set_index(4); return var.build();} return var.as();} - tAIBased_t const* get_tAIBased() const { if(get_index() == 4) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(cellBased_t)]; - char dummy2[sizeof(tABased_t)]; - char dummy3[sizeof(pLMNWide_t)]; - char dummy4[sizeof(tAIBased_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -CellIdListforQMC ::= SEQUENCE (SIZE(1..maxnoofCellIDforQMC)) OF ECGI -*/ - -struct CellIdListforQMC_elm : ECGI -{ - static constexpr const char* name() {return "CellIdListforQMC_elm";} - using parent_t = ECGI; - -}; -struct CellIdListforQMC : asn::sequenceof -{ - static constexpr const char* name() {return "CellIdListforQMC";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -CellBasedQMC-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct CellBasedQMC_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -CellBasedQMC::= SEQUENCE { - cellIdListforQMC CellIdListforQMC, - iE-Extensions ProtocolExtensionContainer { {CellBasedQMC-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct CellBasedQMC : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "CellBasedQMC";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct cellIdListforQMC_t : CellIdListforQMC - { - static constexpr const char* name() {return "cellIdListforQMC_t";} - using parent_t = CellIdListforQMC; - - }; - cellIdListforQMC_t& ref_cellIdListforQMC() {return cellIdListforQMC;} - cellIdListforQMC_t const& ref_cellIdListforQMC() const {return cellIdListforQMC;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(cellIdListforQMC); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(cellIdListforQMC); - v(iE_Extensions); - - }; - void clear() - { - cellIdListforQMC.clear(); - iE_Extensions.clear(); - - }; - private: - cellIdListforQMC_t cellIdListforQMC; - iE_Extensions_t iE_Extensions; - -}; -/* -TAListforQMC ::= SEQUENCE (SIZE(1..maxnoofTAforQMC)) OF TAC -*/ - -struct TAListforQMC_elm : TAC -{ - static constexpr const char* name() {return "TAListforQMC_elm";} - using parent_t = TAC; - -}; -struct TAListforQMC : asn::sequenceof -{ - static constexpr const char* name() {return "TAListforQMC";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -TABasedQMC-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct TABasedQMC_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -TABasedQMC ::= SEQUENCE { - tAListforQMC TAListforQMC, - iE-Extensions ProtocolExtensionContainer { {TABasedQMC-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct TABasedQMC : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "TABasedQMC";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct tAListforQMC_t : TAListforQMC - { - static constexpr const char* name() {return "tAListforQMC_t";} - using parent_t = TAListforQMC; - - }; - tAListforQMC_t& ref_tAListforQMC() {return tAListforQMC;} - tAListforQMC_t const& ref_tAListforQMC() const {return tAListforQMC;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(tAListforQMC); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(tAListforQMC); - v(iE_Extensions); - - }; - void clear() - { - tAListforQMC.clear(); - iE_Extensions.clear(); - - }; - private: - tAListforQMC_t tAListforQMC; - iE_Extensions_t iE_Extensions; - -}; -/* -TAIListforQMC ::= SEQUENCE (SIZE(1..maxnoofTAforQMC)) OF TAI-Item -*/ - -struct TAIListforQMC_elm : TAI_Item -{ - static constexpr const char* name() {return "TAIListforQMC_elm";} - using parent_t = TAI_Item; - -}; -struct TAIListforQMC : asn::sequenceof -{ - static constexpr const char* name() {return "TAIListforQMC";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -TAIBasedQMC-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct TAIBasedQMC_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -TAIBasedQMC ::= SEQUENCE { - tAIListforQMC TAIListforQMC, - iE-Extensions ProtocolExtensionContainer { {TAIBasedQMC-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct TAIBasedQMC : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "TAIBasedQMC";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct tAIListforQMC_t : TAIListforQMC - { - static constexpr const char* name() {return "tAIListforQMC_t";} - using parent_t = TAIListforQMC; - - }; - tAIListforQMC_t& ref_tAIListforQMC() {return tAIListforQMC;} - tAIListforQMC_t const& ref_tAIListforQMC() const {return tAIListforQMC;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(tAIListforQMC); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(tAIListforQMC); - v(iE_Extensions); - - }; - void clear() - { - tAIListforQMC.clear(); - iE_Extensions.clear(); - - }; - private: - tAIListforQMC_t tAIListforQMC; - iE_Extensions_t iE_Extensions; - -}; -/* -PLMNListforQMC ::= SEQUENCE (SIZE(1..maxnoofPLMNforQMC)) OF PLMN-Identity -*/ - -struct PLMNListforQMC_elm : PLMN_Identity -{ - static constexpr const char* name() {return "PLMNListforQMC_elm";} - using parent_t = PLMN_Identity; - -}; -struct PLMNListforQMC : asn::sequenceof -{ - static constexpr const char* name() {return "PLMNListforQMC";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -PLMNAreaBasedQMC-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct PLMNAreaBasedQMC_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -PLMNAreaBasedQMC ::= SEQUENCE { - plmnListforQMC PLMNListforQMC, - iE-Extensions ProtocolExtensionContainer { {PLMNAreaBasedQMC-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct PLMNAreaBasedQMC : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "PLMNAreaBasedQMC";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct plmnListforQMC_t : PLMNListforQMC - { - static constexpr const char* name() {return "plmnListforQMC_t";} - using parent_t = PLMNListforQMC; - - }; - plmnListforQMC_t& ref_plmnListforQMC() {return plmnListforQMC;} - plmnListforQMC_t const& ref_plmnListforQMC() const {return plmnListforQMC;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(plmnListforQMC); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(plmnListforQMC); - v(iE_Extensions); - - }; - void clear() - { - plmnListforQMC.clear(); - iE_Extensions.clear(); - - }; - private: - plmnListforQMC_t plmnListforQMC; - iE_Extensions_t iE_Extensions; - -}; -/* -AreaScopeOfQMC ::= CHOICE { - cellBased CellBasedQMC, - tABased TABasedQMC, - tAIBased TAIBasedQMC, - pLMNAreaBased PLMNAreaBasedQMC, - ... -} -*/ - -struct AreaScopeOfQMC : asn::choice<4, 0, true> -{ - static constexpr const char* name() {return "AreaScopeOfQMC";} - using parent_t = asn::choice<4, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 5;} - void set_unknown() { set_index(5); } - ~AreaScopeOfQMC() {clear();} - struct cellBased_t : CellBasedQMC - { - static constexpr const char* name() {return "cellBased_t";} - using parent_t = CellBasedQMC; - - }; - struct tABased_t : TABasedQMC - { - static constexpr const char* name() {return "tABased_t";} - using parent_t = TABasedQMC; - - }; - struct tAIBased_t : TAIBasedQMC - { - static constexpr const char* name() {return "tAIBased_t";} - using parent_t = TAIBasedQMC; - - }; - struct pLMNAreaBased_t : PLMNAreaBasedQMC - { - static constexpr const char* name() {return "pLMNAreaBased_t";} - using parent_t = PLMNAreaBasedQMC; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - case 3: set_index(3); return v(var.build()); - case 4: set_index(4); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - case 3: return v(var.as()); - case 4: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - - } - cellBased_t& select_cellBased() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - cellBased_t const* get_cellBased() const { if(get_index() == 1) { return &var.as();} return nullptr; } - tABased_t& select_tABased() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - tABased_t const* get_tABased() const { if(get_index() == 2) { return &var.as();} return nullptr; } - tAIBased_t& select_tAIBased() { if(get_index() != 3) { clear(); set_index(3); return var.build();} return var.as();} - tAIBased_t const* get_tAIBased() const { if(get_index() == 3) { return &var.as();} return nullptr; } - pLMNAreaBased_t& select_pLMNAreaBased() { if(get_index() != 4) { clear(); set_index(4); return var.build();} return var.as();} - pLMNAreaBased_t const* get_pLMNAreaBased() const { if(get_index() == 4) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(cellBased_t)]; - char dummy2[sizeof(tABased_t)]; - char dummy3[sizeof(tAIBased_t)]; - char dummy4[sizeof(pLMNAreaBased_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -FreqBandIndicator ::= INTEGER (1..256, ...) -*/ - -struct FreqBandIndicator : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "FreqBandIndicator";} - using parent_t = asn::integer<>; - -}; - -/* -BandInfo-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct BandInfo_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -BandInfo ::= SEQUENCE { - freqBandIndicator FreqBandIndicator, - iE-Extensions ProtocolExtensionContainer { {BandInfo-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct BandInfo : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "BandInfo";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct freqBandIndicator_t : FreqBandIndicator - { - static constexpr const char* name() {return "freqBandIndicator_t";} - using parent_t = FreqBandIndicator; - - }; - freqBandIndicator_t& ref_freqBandIndicator() {return freqBandIndicator;} - freqBandIndicator_t const& ref_freqBandIndicator() const {return freqBandIndicator;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(freqBandIndicator); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(freqBandIndicator); - v(iE_Extensions); - - }; - void clear() - { - freqBandIndicator.clear(); - iE_Extensions.clear(); - - }; - private: - freqBandIndicator_t freqBandIndicator; - iE_Extensions_t iE_Extensions; - -}; -/* -BandwidthReducedSI::= ENUMERATED { - scheduled, - ... -} -*/ - -struct BandwidthReducedSI : asn::enumerated<1, 0, true> -{ - static constexpr const char* name() {return "BandwidthReducedSI";} - using parent_t = asn::enumerated<1, 0, true>; - typedef enum { - scheduled - } index_t; - -}; - -/* -BearerType ::= ENUMERATED { - non-IP, - ... -} -*/ - -struct BearerType : asn::enumerated<1, 0, true> -{ - static constexpr const char* name() {return "BearerType";} - using parent_t = asn::enumerated<1, 0, true>; - typedef enum { - non_IP - } index_t; - -}; - -/* -BenefitMetric ::= INTEGER (-101..100, ...) -*/ - -struct BenefitMetric : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "BenefitMetric";} - using parent_t = asn::integer<>; - -}; - -/* -BitRate ::= INTEGER (0..10000000000) -*/ - -struct BitRate : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "BitRate";} - using parent_t = asn::integer<>; - -}; - -/* -BluetoothMeasConfig::= ENUMERATED {setup,...} -*/ - -struct BluetoothMeasConfig : asn::enumerated<1, 0, true> -{ - static constexpr const char* name() {return "BluetoothMeasConfig";} - using parent_t = asn::enumerated<1, 0, true>; - typedef enum { - setup - } index_t; - -}; - -/* -BluetoothName ::= OCTET STRING (SIZE (1..248)) -*/ - -struct BluetoothName : asn::ostring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "BluetoothName";} - using parent_t = asn::ostring<>; - -}; - -/* -BluetoothMeasConfigNameList ::= SEQUENCE (SIZE(1..maxnoofBluetoothName)) OF BluetoothName -*/ - -struct BluetoothMeasConfigNameList_elm : BluetoothName -{ - static constexpr const char* name() {return "BluetoothMeasConfigNameList_elm";} - using parent_t = BluetoothName; - -}; -struct BluetoothMeasConfigNameList : asn::sequenceof -{ - static constexpr const char* name() {return "BluetoothMeasConfigNameList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -BluetoothMeasurementConfiguration-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct BluetoothMeasurementConfiguration_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -BluetoothMeasurementConfiguration ::= SEQUENCE { - bluetoothMeasConfig BluetoothMeasConfig, - bluetoothMeasConfigNameList BluetoothMeasConfigNameList OPTIONAL, - bt-rssi ENUMERATED {true, ...} OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {BluetoothMeasurementConfiguration-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct BluetoothMeasurementConfiguration : asn::sequence<4, 0, true, 3> -{ - static constexpr const char* name() {return "BluetoothMeasurementConfiguration";} - using parent_t = asn::sequence<4, 0, true, 3>; - struct bluetoothMeasConfig_t : BluetoothMeasConfig - { - static constexpr const char* name() {return "bluetoothMeasConfig_t";} - using parent_t = BluetoothMeasConfig; - - }; - bluetoothMeasConfig_t& ref_bluetoothMeasConfig() {return bluetoothMeasConfig;} - bluetoothMeasConfig_t const& ref_bluetoothMeasConfig() const {return bluetoothMeasConfig;} - struct bluetoothMeasConfigNameList_t : BluetoothMeasConfigNameList - { - static constexpr const char* name() {return "bluetoothMeasConfigNameList_t";} - using parent_t = BluetoothMeasConfigNameList; - static constexpr bool optional = true; - - }; - bluetoothMeasConfigNameList_t& set_bluetoothMeasConfigNameList() { bluetoothMeasConfigNameList.setpresent(true); return bluetoothMeasConfigNameList;} - bluetoothMeasConfigNameList_t const* get_bluetoothMeasConfigNameList() const {return bluetoothMeasConfigNameList.is_valid() ? &bluetoothMeasConfigNameList : nullptr;} - struct bt_rssi_t : asn::enumerated<1, 0, true> - { - static constexpr const char* name() {return "bt_rssi_t";} - using parent_t = asn::enumerated<1, 0, true>; - static constexpr bool optional = true; - typedef enum { - True - } index_t; - - }; - - bt_rssi_t& set_bt_rssi() { bt_rssi.setpresent(true); return bt_rssi;} - bt_rssi_t const* get_bt_rssi() const {return bt_rssi.is_valid() ? &bt_rssi : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(bluetoothMeasConfig); - v(bluetoothMeasConfigNameList); - v(bt_rssi); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(bluetoothMeasConfig); - v(bluetoothMeasConfigNameList); - v(bt_rssi); - v(iE_Extensions); - - }; - void clear() - { - bluetoothMeasConfig.clear(); - bluetoothMeasConfigNameList.clear(); - bt_rssi.clear(); - iE_Extensions.clear(); - - }; - private: - bluetoothMeasConfig_t bluetoothMeasConfig; - bluetoothMeasConfigNameList_t bluetoothMeasConfigNameList; - bt_rssi_t bt_rssi; - iE_Extensions_t iE_Extensions; - -}; -/* -BroadcastPLMNs-Item ::= SEQUENCE (SIZE(1..maxnoofBPLMNs)) OF PLMN-Identity -*/ - -struct BroadcastPLMNs_Item_elm : PLMN_Identity -{ - static constexpr const char* name() {return "BroadcastPLMNs_Item_elm";} - using parent_t = PLMN_Identity; - -}; -struct BroadcastPLMNs_Item : asn::sequenceof -{ - static constexpr const char* name() {return "BroadcastPLMNs-Item";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -CNTypeRestrictionsItem-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct CNTypeRestrictionsItem_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -CNTypeRestrictionsItem ::= SEQUENCE { - plmn-Id PLMN-Identity, - cn-type ENUMERATED {fiveGC-forbidden, ...}, - iE-Extensions ProtocolExtensionContainer { {CNTypeRestrictionsItem-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct CNTypeRestrictionsItem : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "CNTypeRestrictionsItem";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct plmn_Id_t : PLMN_Identity - { - static constexpr const char* name() {return "plmn_Id_t";} - using parent_t = PLMN_Identity; - - }; - plmn_Id_t& ref_plmn_Id() {return plmn_Id;} - plmn_Id_t const& ref_plmn_Id() const {return plmn_Id;} - struct cn_type_t : asn::enumerated<1, 0, true> - { - static constexpr const char* name() {return "cn_type_t";} - using parent_t = asn::enumerated<1, 0, true>; - typedef enum { - fiveGC_forbidden - } index_t; - - }; - - cn_type_t& ref_cn_type() {return cn_type;} - cn_type_t const& ref_cn_type() const {return cn_type;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(plmn_Id); - v(cn_type); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(plmn_Id); - v(cn_type); - v(iE_Extensions); - - }; - void clear() - { - plmn_Id.clear(); - cn_type.clear(); - iE_Extensions.clear(); - - }; - private: - plmn_Id_t plmn_Id; - cn_type_t cn_type; - iE_Extensions_t iE_Extensions; - -}; -/* -CNTypeRestrictions ::= SEQUENCE (SIZE(1.. maxnoofEPLMNsPlusOne)) OF CNTypeRestrictionsItem -*/ - -struct CNTypeRestrictions_elm : CNTypeRestrictionsItem -{ - static constexpr const char* name() {return "CNTypeRestrictions_elm";} - using parent_t = CNTypeRestrictionsItem; - -}; -struct CNTypeRestrictions : asn::sequenceof -{ - static constexpr const char* name() {return "CNTypeRestrictions";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -PDCP-SNExtended ::= INTEGER (0..32767) -*/ - -struct PDCP_SNExtended : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "PDCP-SNExtended";} - using parent_t = asn::integer<>; - -}; - -/* -HFNModified ::= INTEGER (0..131071) -*/ - -struct HFNModified : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "HFNModified";} - using parent_t = asn::integer<>; - -}; - -/* -COUNTValueExtended-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct COUNTValueExtended_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -COUNTValueExtended ::= SEQUENCE { - pDCP-SNExtended PDCP-SNExtended, - hFNModified HFNModified, - iE-Extensions ProtocolExtensionContainer { {COUNTValueExtended-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct COUNTValueExtended : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "COUNTValueExtended";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct pDCP_SNExtended_t : PDCP_SNExtended - { - static constexpr const char* name() {return "pDCP_SNExtended_t";} - using parent_t = PDCP_SNExtended; - - }; - pDCP_SNExtended_t& ref_pDCP_SNExtended() {return pDCP_SNExtended;} - pDCP_SNExtended_t const& ref_pDCP_SNExtended() const {return pDCP_SNExtended;} - struct hFNModified_t : HFNModified - { - static constexpr const char* name() {return "hFNModified_t";} - using parent_t = HFNModified; - - }; - hFNModified_t& ref_hFNModified() {return hFNModified;} - hFNModified_t const& ref_hFNModified() const {return hFNModified;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(pDCP_SNExtended); - v(hFNModified); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(pDCP_SNExtended); - v(hFNModified); - v(iE_Extensions); - - }; - void clear() - { - pDCP_SNExtended.clear(); - hFNModified.clear(); - iE_Extensions.clear(); - - }; - private: - pDCP_SNExtended_t pDCP_SNExtended; - hFNModified_t hFNModified; - iE_Extensions_t iE_Extensions; - -}; -/* -PDCP-SN ::= INTEGER (0..4095) -*/ - -struct PDCP_SN : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "PDCP-SN";} - using parent_t = asn::integer<>; - -}; - -/* -HFN ::= INTEGER (0..1048575) -*/ - -struct HFN : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "HFN";} - using parent_t = asn::integer<>; - -}; - -/* -COUNTvalue-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct COUNTvalue_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -COUNTvalue ::= SEQUENCE { - pDCP-SN PDCP-SN, - hFN HFN, - iE-Extensions ProtocolExtensionContainer { {COUNTvalue-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct COUNTvalue : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "COUNTvalue";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct pDCP_SN_t : PDCP_SN - { - static constexpr const char* name() {return "pDCP_SN_t";} - using parent_t = PDCP_SN; - - }; - pDCP_SN_t& ref_pDCP_SN() {return pDCP_SN;} - pDCP_SN_t const& ref_pDCP_SN() const {return pDCP_SN;} - struct hFN_t : HFN - { - static constexpr const char* name() {return "hFN_t";} - using parent_t = HFN; - - }; - hFN_t& ref_hFN() {return hFN;} - hFN_t const& ref_hFN() const {return hFN;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(pDCP_SN); - v(hFN); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(pDCP_SN); - v(hFN); - v(iE_Extensions); - - }; - void clear() - { - pDCP_SN.clear(); - hFN.clear(); - iE_Extensions.clear(); - - }; - private: - pDCP_SN_t pDCP_SN; - hFN_t hFN; - iE_Extensions_t iE_Extensions; - -}; -/* -PDCP-SNlength18 ::= INTEGER (0..262143) -*/ - -struct PDCP_SNlength18 : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "PDCP-SNlength18";} - using parent_t = asn::integer<>; - -}; - -/* -HFNforPDCP-SNlength18 ::= INTEGER (0..16383) -*/ - -struct HFNforPDCP_SNlength18 : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "HFNforPDCP-SNlength18";} - using parent_t = asn::integer<>; - -}; - -/* -COUNTvaluePDCP-SNlength18-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct COUNTvaluePDCP_SNlength18_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -COUNTvaluePDCP-SNlength18 ::= SEQUENCE { - pDCP-SNlength18 PDCP-SNlength18, - hFNforPDCP-SNlength18 HFNforPDCP-SNlength18, - iE-Extensions ProtocolExtensionContainer { {COUNTvaluePDCP-SNlength18-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct COUNTvaluePDCP_SNlength18 : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "COUNTvaluePDCP-SNlength18";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct pDCP_SNlength18_t : PDCP_SNlength18 - { - static constexpr const char* name() {return "pDCP_SNlength18_t";} - using parent_t = PDCP_SNlength18; - - }; - pDCP_SNlength18_t& ref_pDCP_SNlength18() {return pDCP_SNlength18;} - pDCP_SNlength18_t const& ref_pDCP_SNlength18() const {return pDCP_SNlength18;} - struct hFNforPDCP_SNlength18_t : HFNforPDCP_SNlength18 - { - static constexpr const char* name() {return "hFNforPDCP_SNlength18_t";} - using parent_t = HFNforPDCP_SNlength18; - - }; - hFNforPDCP_SNlength18_t& ref_hFNforPDCP_SNlength18() {return hFNforPDCP_SNlength18;} - hFNforPDCP_SNlength18_t const& ref_hFNforPDCP_SNlength18() const {return hFNforPDCP_SNlength18;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(pDCP_SNlength18); - v(hFNforPDCP_SNlength18); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(pDCP_SNlength18); - v(hFNforPDCP_SNlength18); - v(iE_Extensions); - - }; - void clear() - { - pDCP_SNlength18.clear(); - hFNforPDCP_SNlength18.clear(); - iE_Extensions.clear(); - - }; - private: - pDCP_SNlength18_t pDCP_SNlength18; - hFNforPDCP_SNlength18_t hFNforPDCP_SNlength18; - iE_Extensions_t iE_Extensions; - -}; -/* -CRNTI ::= BIT STRING (SIZE (16)) -*/ - -struct CRNTI : asn::bstring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "CRNTI";} - using parent_t = asn::bstring<>; - -}; - -/* -CSG-Id ::= BIT STRING (SIZE (27)) -*/ - -struct CSG_Id : asn::bstring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "CSG-Id";} - using parent_t = asn::bstring<>; - -}; - -/* -CSGMembershipStatus ::= ENUMERATED { - member, - not-member -} -*/ - -struct CSGMembershipStatus : asn::enumerated<2, 0, false> -{ - static constexpr const char* name() {return "CSGMembershipStatus";} - using parent_t = asn::enumerated<2, 0, false>; - typedef enum { - member - ,not_member - } index_t; - -}; - -/* -UEID ::= BIT STRING (SIZE (16)) -*/ - -struct UEID : asn::bstring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "UEID";} - using parent_t = asn::bstring<>; - -}; - -/* -WidebandCQICodeword1::= CHOICE { - four-bitCQI INTEGER (0..15, ...), - three-bitSpatialDifferentialCQI INTEGER (0..7, ...), - ... -} -*/ - -struct WidebandCQICodeword1 : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "WidebandCQICodeword1";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~WidebandCQICodeword1() {clear();} - struct four_bitCQI_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "four_bitCQI_t";} - using parent_t = asn::integer<>; - - }; - - struct three_bitSpatialDifferentialCQI_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "three_bitSpatialDifferentialCQI_t";} - using parent_t = asn::integer<>; - - }; - - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - four_bitCQI_t& select_four_bitCQI() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - four_bitCQI_t const* get_four_bitCQI() const { if(get_index() == 1) { return &var.as();} return nullptr; } - three_bitSpatialDifferentialCQI_t& select_three_bitSpatialDifferentialCQI() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - three_bitSpatialDifferentialCQI_t const* get_three_bitSpatialDifferentialCQI() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(four_bitCQI_t)]; - char dummy2[sizeof(three_bitSpatialDifferentialCQI_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -WidebandCQI-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct WidebandCQI_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -WidebandCQI ::= SEQUENCE { - widebandCQICodeword0 INTEGER (0..15, ...), - widebandCQICodeword1 WidebandCQICodeword1 OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {WidebandCQI-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct WidebandCQI : asn::sequence<3, 0, true, 2> -{ - static constexpr const char* name() {return "WidebandCQI";} - using parent_t = asn::sequence<3, 0, true, 2>; - struct widebandCQICodeword0_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "widebandCQICodeword0_t";} - using parent_t = asn::integer<>; - - }; - - widebandCQICodeword0_t& ref_widebandCQICodeword0() {return widebandCQICodeword0;} - widebandCQICodeword0_t const& ref_widebandCQICodeword0() const {return widebandCQICodeword0;} - struct widebandCQICodeword1_t : WidebandCQICodeword1 - { - static constexpr const char* name() {return "widebandCQICodeword1_t";} - using parent_t = WidebandCQICodeword1; - static constexpr bool optional = true; - - }; - widebandCQICodeword1_t& set_widebandCQICodeword1() { widebandCQICodeword1.setpresent(true); return widebandCQICodeword1;} - widebandCQICodeword1_t const* get_widebandCQICodeword1() const {return widebandCQICodeword1.is_valid() ? &widebandCQICodeword1 : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(widebandCQICodeword0); - v(widebandCQICodeword1); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(widebandCQICodeword0); - v(widebandCQICodeword1); - v(iE_Extensions); - - }; - void clear() - { - widebandCQICodeword0.clear(); - widebandCQICodeword1.clear(); - iE_Extensions.clear(); - - }; - private: - widebandCQICodeword0_t widebandCQICodeword0; - widebandCQICodeword1_t widebandCQICodeword1; - iE_Extensions_t iE_Extensions; - -}; -/* -SubbandSize ::= ENUMERATED { - size2, - size3, - size4, - size6, - size8, - ... -} -*/ - -struct SubbandSize : asn::enumerated<5, 0, true> -{ - static constexpr const char* name() {return "SubbandSize";} - using parent_t = asn::enumerated<5, 0, true>; - typedef enum { - size2 - ,size3 - ,size4 - ,size6 - ,size8 - } index_t; - -}; - -/* -SubbandCQICodeword0 ::= CHOICE { - four-bitCQI INTEGER (0..15, ...), - two-bitSubbandDifferentialCQI INTEGER (0..3, ...), - two-bitDifferentialCQI INTEGER (0..3, ...), - ... -} -*/ - -struct SubbandCQICodeword0 : asn::choice<3, 0, true> -{ - static constexpr const char* name() {return "SubbandCQICodeword0";} - using parent_t = asn::choice<3, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 4;} - void set_unknown() { set_index(4); } - ~SubbandCQICodeword0() {clear();} - struct four_bitCQI_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "four_bitCQI_t";} - using parent_t = asn::integer<>; - - }; - - struct two_bitSubbandDifferentialCQI_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "two_bitSubbandDifferentialCQI_t";} - using parent_t = asn::integer<>; - - }; - - struct two_bitDifferentialCQI_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "two_bitDifferentialCQI_t";} - using parent_t = asn::integer<>; - - }; - - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - case 3: set_index(3); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - case 3: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - - } - four_bitCQI_t& select_four_bitCQI() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - four_bitCQI_t const* get_four_bitCQI() const { if(get_index() == 1) { return &var.as();} return nullptr; } - two_bitSubbandDifferentialCQI_t& select_two_bitSubbandDifferentialCQI() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - two_bitSubbandDifferentialCQI_t const* get_two_bitSubbandDifferentialCQI() const { if(get_index() == 2) { return &var.as();} return nullptr; } - two_bitDifferentialCQI_t& select_two_bitDifferentialCQI() { if(get_index() != 3) { clear(); set_index(3); return var.build();} return var.as();} - two_bitDifferentialCQI_t const* get_two_bitDifferentialCQI() const { if(get_index() == 3) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(four_bitCQI_t)]; - char dummy2[sizeof(two_bitSubbandDifferentialCQI_t)]; - char dummy3[sizeof(two_bitDifferentialCQI_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -SubbandCQICodeword1 ::= CHOICE { - four-bitCQI INTEGER (0..15, ...), - three-bitSpatialDifferentialCQI INTEGER (0..7, ...), - two-bitSubbandDifferentialCQI INTEGER (0..3, ...), - two-bitDifferentialCQI INTEGER (0..3, ...), - ... -} -*/ - -struct SubbandCQICodeword1 : asn::choice<4, 0, true> -{ - static constexpr const char* name() {return "SubbandCQICodeword1";} - using parent_t = asn::choice<4, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 5;} - void set_unknown() { set_index(5); } - ~SubbandCQICodeword1() {clear();} - struct four_bitCQI_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "four_bitCQI_t";} - using parent_t = asn::integer<>; - - }; - - struct three_bitSpatialDifferentialCQI_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "three_bitSpatialDifferentialCQI_t";} - using parent_t = asn::integer<>; - - }; - - struct two_bitSubbandDifferentialCQI_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "two_bitSubbandDifferentialCQI_t";} - using parent_t = asn::integer<>; - - }; - - struct two_bitDifferentialCQI_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "two_bitDifferentialCQI_t";} - using parent_t = asn::integer<>; - - }; - - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - case 3: set_index(3); return v(var.build()); - case 4: set_index(4); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - case 3: return v(var.as()); - case 4: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - - } - four_bitCQI_t& select_four_bitCQI() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - four_bitCQI_t const* get_four_bitCQI() const { if(get_index() == 1) { return &var.as();} return nullptr; } - three_bitSpatialDifferentialCQI_t& select_three_bitSpatialDifferentialCQI() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - three_bitSpatialDifferentialCQI_t const* get_three_bitSpatialDifferentialCQI() const { if(get_index() == 2) { return &var.as();} return nullptr; } - two_bitSubbandDifferentialCQI_t& select_two_bitSubbandDifferentialCQI() { if(get_index() != 3) { clear(); set_index(3); return var.build();} return var.as();} - two_bitSubbandDifferentialCQI_t const* get_two_bitSubbandDifferentialCQI() const { if(get_index() == 3) { return &var.as();} return nullptr; } - two_bitDifferentialCQI_t& select_two_bitDifferentialCQI() { if(get_index() != 4) { clear(); set_index(4); return var.build();} return var.as();} - two_bitDifferentialCQI_t const* get_two_bitDifferentialCQI() const { if(get_index() == 4) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(four_bitCQI_t)]; - char dummy2[sizeof(three_bitSpatialDifferentialCQI_t)]; - char dummy3[sizeof(two_bitSubbandDifferentialCQI_t)]; - char dummy4[sizeof(two_bitDifferentialCQI_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -SubbandCQI-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct SubbandCQI_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SubbandCQI ::= SEQUENCE { - subbandCQICodeword0 SubbandCQICodeword0, - subbandCQICodeword1 SubbandCQICodeword1 OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {SubbandCQI-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct SubbandCQI : asn::sequence<3, 0, true, 2> -{ - static constexpr const char* name() {return "SubbandCQI";} - using parent_t = asn::sequence<3, 0, true, 2>; - struct subbandCQICodeword0_t : SubbandCQICodeword0 - { - static constexpr const char* name() {return "subbandCQICodeword0_t";} - using parent_t = SubbandCQICodeword0; - - }; - subbandCQICodeword0_t& ref_subbandCQICodeword0() {return subbandCQICodeword0;} - subbandCQICodeword0_t const& ref_subbandCQICodeword0() const {return subbandCQICodeword0;} - struct subbandCQICodeword1_t : SubbandCQICodeword1 - { - static constexpr const char* name() {return "subbandCQICodeword1_t";} - using parent_t = SubbandCQICodeword1; - static constexpr bool optional = true; - - }; - subbandCQICodeword1_t& set_subbandCQICodeword1() { subbandCQICodeword1.setpresent(true); return subbandCQICodeword1;} - subbandCQICodeword1_t const* get_subbandCQICodeword1() const {return subbandCQICodeword1.is_valid() ? &subbandCQICodeword1 : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(subbandCQICodeword0); - v(subbandCQICodeword1); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(subbandCQICodeword0); - v(subbandCQICodeword1); - v(iE_Extensions); - - }; - void clear() - { - subbandCQICodeword0.clear(); - subbandCQICodeword1.clear(); - iE_Extensions.clear(); - - }; - private: - subbandCQICodeword0_t subbandCQICodeword0; - subbandCQICodeword1_t subbandCQICodeword1; - iE_Extensions_t iE_Extensions; - -}; -/* -SubbandCQIItem-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct SubbandCQIItem_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SubbandCQIItem ::= SEQUENCE { - subbandCQI SubbandCQI, - subbandIndex INTEGER (0..27,...), - iE-Extensions ProtocolExtensionContainer { {SubbandCQIItem-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct SubbandCQIItem : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "SubbandCQIItem";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct subbandCQI_t : SubbandCQI - { - static constexpr const char* name() {return "subbandCQI_t";} - using parent_t = SubbandCQI; - - }; - subbandCQI_t& ref_subbandCQI() {return subbandCQI;} - subbandCQI_t const& ref_subbandCQI() const {return subbandCQI;} - struct subbandIndex_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "subbandIndex_t";} - using parent_t = asn::integer<>; - - }; - - subbandIndex_t& ref_subbandIndex() {return subbandIndex;} - subbandIndex_t const& ref_subbandIndex() const {return subbandIndex;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(subbandCQI); - v(subbandIndex); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(subbandCQI); - v(subbandIndex); - v(iE_Extensions); - - }; - void clear() - { - subbandCQI.clear(); - subbandIndex.clear(); - iE_Extensions.clear(); - - }; - private: - subbandCQI_t subbandCQI; - subbandIndex_t subbandIndex; - iE_Extensions_t iE_Extensions; - -}; -/* -SubbandCQIList ::= SEQUENCE (SIZE(1.. maxSubband)) OF SubbandCQIItem -*/ - -struct SubbandCQIList_elm : SubbandCQIItem -{ - static constexpr const char* name() {return "SubbandCQIList_elm";} - using parent_t = SubbandCQIItem; - -}; -struct SubbandCQIList : asn::sequenceof -{ - static constexpr const char* name() {return "SubbandCQIList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -CSIReportPerCSIProcessItem-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct CSIReportPerCSIProcessItem_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -CSIReportPerCSIProcessItem ::= SEQUENCE (SIZE(1.. maxCSIReport)) OF - SEQUENCE { - rI INTEGER (1..8, ...), - widebandCQI WidebandCQI, - subbandSize SubbandSize, - subbandCQIList SubbandCQIList OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {CSIReportPerCSIProcessItem-ExtIEs} } OPTIONAL, - ... - } -*/ - -struct CSIReportPerCSIProcessItem_elm : asn::sequence<5, 0, true, 2> -{ - static constexpr const char* name() {return "CSIReportPerCSIProcessItem_elm";} - using parent_t = asn::sequence<5, 0, true, 2>; - struct rI_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "rI_t";} - using parent_t = asn::integer<>; - - }; - - rI_t& ref_rI() {return rI;} - rI_t const& ref_rI() const {return rI;} - struct widebandCQI_t : WidebandCQI - { - static constexpr const char* name() {return "widebandCQI_t";} - using parent_t = WidebandCQI; - - }; - widebandCQI_t& ref_widebandCQI() {return widebandCQI;} - widebandCQI_t const& ref_widebandCQI() const {return widebandCQI;} - struct subbandSize_t : SubbandSize - { - static constexpr const char* name() {return "subbandSize_t";} - using parent_t = SubbandSize; - - }; - subbandSize_t& ref_subbandSize() {return subbandSize;} - subbandSize_t const& ref_subbandSize() const {return subbandSize;} - struct subbandCQIList_t : SubbandCQIList - { - static constexpr const char* name() {return "subbandCQIList_t";} - using parent_t = SubbandCQIList; - static constexpr bool optional = true; - - }; - subbandCQIList_t& set_subbandCQIList() { subbandCQIList.setpresent(true); return subbandCQIList;} - subbandCQIList_t const* get_subbandCQIList() const {return subbandCQIList.is_valid() ? &subbandCQIList : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(rI); - v(widebandCQI); - v(subbandSize); - v(subbandCQIList); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(rI); - v(widebandCQI); - v(subbandSize); - v(subbandCQIList); - v(iE_Extensions); - - }; - void clear() - { - rI.clear(); - widebandCQI.clear(); - subbandSize.clear(); - subbandCQIList.clear(); - iE_Extensions.clear(); - - }; - private: - rI_t rI; - widebandCQI_t widebandCQI; - subbandSize_t subbandSize; - subbandCQIList_t subbandCQIList; - iE_Extensions_t iE_Extensions; - -}; -struct CSIReportPerCSIProcessItem : asn::sequenceof -{ - static constexpr const char* name() {return "CSIReportPerCSIProcessItem";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -CSIReportPerCSIProcess-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct CSIReportPerCSIProcess_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -CSIReportPerCSIProcess ::= SEQUENCE (SIZE(1.. maxCSIProcess)) OF - SEQUENCE { - cSIProcessConfigurationIndex INTEGER (1..7, ...), - cSIReportPerCSIProcessItem CSIReportPerCSIProcessItem, - iE-Extensions ProtocolExtensionContainer { {CSIReportPerCSIProcess-ExtIEs} } OPTIONAL, - ... - } -*/ - -struct CSIReportPerCSIProcess_elm : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "CSIReportPerCSIProcess_elm";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct cSIProcessConfigurationIndex_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "cSIProcessConfigurationIndex_t";} - using parent_t = asn::integer<>; - - }; - - cSIProcessConfigurationIndex_t& ref_cSIProcessConfigurationIndex() {return cSIProcessConfigurationIndex;} - cSIProcessConfigurationIndex_t const& ref_cSIProcessConfigurationIndex() const {return cSIProcessConfigurationIndex;} - struct cSIReportPerCSIProcessItem_t : CSIReportPerCSIProcessItem - { - static constexpr const char* name() {return "cSIReportPerCSIProcessItem_t";} - using parent_t = CSIReportPerCSIProcessItem; - - }; - cSIReportPerCSIProcessItem_t& ref_cSIReportPerCSIProcessItem() {return cSIReportPerCSIProcessItem;} - cSIReportPerCSIProcessItem_t const& ref_cSIReportPerCSIProcessItem() const {return cSIReportPerCSIProcessItem;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(cSIProcessConfigurationIndex); - v(cSIReportPerCSIProcessItem); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(cSIProcessConfigurationIndex); - v(cSIReportPerCSIProcessItem); - v(iE_Extensions); - - }; - void clear() - { - cSIProcessConfigurationIndex.clear(); - cSIReportPerCSIProcessItem.clear(); - iE_Extensions.clear(); - - }; - private: - cSIProcessConfigurationIndex_t cSIProcessConfigurationIndex; - cSIReportPerCSIProcessItem_t cSIReportPerCSIProcessItem; - iE_Extensions_t iE_Extensions; - -}; -struct CSIReportPerCSIProcess : asn::sequenceof -{ - static constexpr const char* name() {return "CSIReportPerCSIProcess";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -CSIReportList-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct CSIReportList_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -CSIReportList ::= SEQUENCE (SIZE(1..maxUEReport)) OF - SEQUENCE { - uEID UEID, - cSIReportPerCSIProcess CSIReportPerCSIProcess, - iE-Extensions ProtocolExtensionContainer { {CSIReportList-ExtIEs} } OPTIONAL, - ... - } -*/ - -struct CSIReportList_elm : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "CSIReportList_elm";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct uEID_t : UEID - { - static constexpr const char* name() {return "uEID_t";} - using parent_t = UEID; - - }; - uEID_t& ref_uEID() {return uEID;} - uEID_t const& ref_uEID() const {return uEID;} - struct cSIReportPerCSIProcess_t : CSIReportPerCSIProcess - { - static constexpr const char* name() {return "cSIReportPerCSIProcess_t";} - using parent_t = CSIReportPerCSIProcess; - - }; - cSIReportPerCSIProcess_t& ref_cSIReportPerCSIProcess() {return cSIReportPerCSIProcess;} - cSIReportPerCSIProcess_t const& ref_cSIReportPerCSIProcess() const {return cSIReportPerCSIProcess;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(uEID); - v(cSIReportPerCSIProcess); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(uEID); - v(cSIReportPerCSIProcess); - v(iE_Extensions); - - }; - void clear() - { - uEID.clear(); - cSIReportPerCSIProcess.clear(); - iE_Extensions.clear(); - - }; - private: - uEID_t uEID; - cSIReportPerCSIProcess_t cSIReportPerCSIProcess; - iE_Extensions_t iE_Extensions; - -}; -struct CSIReportList : asn::sequenceof -{ - static constexpr const char* name() {return "CSIReportList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -CapacityValue ::= INTEGER (0..100) -*/ - -struct CapacityValue : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "CapacityValue";} - using parent_t = asn::integer<>; - -}; - -/* -CauseRadioNetwork ::= ENUMERATED { - handover-desirable-for-radio-reasons, - time-critical-handover, - resource-optimisation-handover, - reduce-load-in-serving-cell, - partial-handover, - unknown-new-eNB-UE-X2AP-ID, - unknown-old-eNB-UE-X2AP-ID, - unknown-pair-of-UE-X2AP-ID, - ho-target-not-allowed, - tx2relocoverall-expiry, - trelocprep-expiry, - cell-not-available, - no-radio-resources-available-in-target-cell, - invalid-MME-GroupID, - unknown-MME-Code, - encryption-and-or-integrity-protection-algorithms-not-supported, - reportCharacteristicsEmpty, - noReportPeriodicity, - existingMeasurementID, - unknown-eNB-Measurement-ID, - measurement-temporarily-not-available, - unspecified, - ..., - load-balancing, - handover-optimisation, - value-out-of-allowed-range, - multiple-E-RAB-ID-instances, - switch-off-ongoing, - not-supported-QCI-value, - measurement-not-supported-for-the-object, - tDCoverall-expiry, - tDCprep-expiry, - action-desirable-for-radio-reasons, - reduce-load, - resource-optimisation, - time-critical-action, - target-not-allowed, - no-radio-resources-available, - invalid-QoS-combination, - encryption-algorithms-not-aupported, - procedure-cancelled, - rRM-purpose, - improve-user-bit-rate, - user-inactivity, - radio-connection-with-UE-lost, - failure-in-the-radio-interface-procedure, - bearer-option-not-supported, - mCG-Mobility, - sCG-Mobility, - count-reaches-max-value, - unknown-old-en-gNB-UE-X2AP-ID, - pDCP-Overload - -} -*/ - -struct CauseRadioNetwork : asn::enumerated<51, 29, true> -{ - static constexpr const char* name() {return "CauseRadioNetwork";} - using parent_t = asn::enumerated<51, 29, true>; - typedef enum { - handover_desirable_for_radio_reasons - ,time_critical_handover - ,resource_optimisation_handover - ,reduce_load_in_serving_cell - ,partial_handover - ,unknown_new_eNB_UE_X2AP_ID - ,unknown_old_eNB_UE_X2AP_ID - ,unknown_pair_of_UE_X2AP_ID - ,ho_target_not_allowed - ,tx2relocoverall_expiry - ,trelocprep_expiry - ,cell_not_available - ,no_radio_resources_available_in_target_cell - ,invalid_MME_GroupID - ,unknown_MME_Code - ,encryption_and_or_integrity_protection_algorithms_not_supported - ,reportCharacteristicsEmpty - ,noReportPeriodicity - ,existingMeasurementID - ,unknown_eNB_Measurement_ID - ,measurement_temporarily_not_available - ,unspecified - ,load_balancing - ,handover_optimisation - ,value_out_of_allowed_range - ,multiple_E_RAB_ID_instances - ,switch_off_ongoing - ,not_supported_QCI_value - ,measurement_not_supported_for_the_object - ,tDCoverall_expiry - ,tDCprep_expiry - ,action_desirable_for_radio_reasons - ,reduce_load - ,resource_optimisation - ,time_critical_action - ,target_not_allowed - ,no_radio_resources_available - ,invalid_QoS_combination - ,encryption_algorithms_not_aupported - ,procedure_cancelled - ,rRM_purpose - ,improve_user_bit_rate - ,user_inactivity - ,radio_connection_with_UE_lost - ,failure_in_the_radio_interface_procedure - ,bearer_option_not_supported - ,mCG_Mobility - ,sCG_Mobility - ,count_reaches_max_value - ,unknown_old_en_gNB_UE_X2AP_ID - ,pDCP_Overload - } index_t; - -}; - -/* -CauseTransport ::= ENUMERATED { - transport-resource-unavailable, - unspecified, - ... -} -*/ - -struct CauseTransport : asn::enumerated<2, 0, true> -{ - static constexpr const char* name() {return "CauseTransport";} - using parent_t = asn::enumerated<2, 0, true>; - typedef enum { - transport_resource_unavailable - ,unspecified - } index_t; - -}; - -/* -CauseProtocol ::= ENUMERATED { - transfer-syntax-error, - abstract-syntax-error-reject, - abstract-syntax-error-ignore-and-notify, - message-not-compatible-with-receiver-state, - semantic-error, - unspecified, - abstract-syntax-error-falsely-constructed-message, - ... -} -*/ - -struct CauseProtocol : asn::enumerated<7, 0, true> -{ - static constexpr const char* name() {return "CauseProtocol";} - using parent_t = asn::enumerated<7, 0, true>; - typedef enum { - transfer_syntax_error - ,abstract_syntax_error_reject - ,abstract_syntax_error_ignore_and_notify - ,message_not_compatible_with_receiver_state - ,semantic_error - ,unspecified - ,abstract_syntax_error_falsely_constructed_message - } index_t; - -}; - -/* -CauseMisc ::= ENUMERATED { - control-processing-overload, - hardware-failure, - om-intervention, - not-enough-user-plane-processing-resources, - unspecified, - ... -} -*/ - -struct CauseMisc : asn::enumerated<5, 0, true> -{ - static constexpr const char* name() {return "CauseMisc";} - using parent_t = asn::enumerated<5, 0, true>; - typedef enum { - control_processing_overload - ,hardware_failure - ,om_intervention - ,not_enough_user_plane_processing_resources - ,unspecified - } index_t; - -}; - -/* -Cause ::= CHOICE { - radioNetwork CauseRadioNetwork, - transport CauseTransport, - protocol CauseProtocol, - misc CauseMisc, - ... -} -*/ - -struct Cause : asn::choice<4, 0, true> -{ - static constexpr const char* name() {return "Cause";} - using parent_t = asn::choice<4, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 5;} - void set_unknown() { set_index(5); } - ~Cause() {clear();} - struct radioNetwork_t : CauseRadioNetwork - { - static constexpr const char* name() {return "radioNetwork_t";} - using parent_t = CauseRadioNetwork; - - }; - struct transport_t : CauseTransport - { - static constexpr const char* name() {return "transport_t";} - using parent_t = CauseTransport; - - }; - struct protocol_t : CauseProtocol - { - static constexpr const char* name() {return "protocol_t";} - using parent_t = CauseProtocol; - - }; - struct misc_t : CauseMisc - { - static constexpr const char* name() {return "misc_t";} - using parent_t = CauseMisc; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - case 3: set_index(3); return v(var.build()); - case 4: set_index(4); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - case 3: return v(var.as()); - case 4: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - - } - radioNetwork_t& select_radioNetwork() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - radioNetwork_t const* get_radioNetwork() const { if(get_index() == 1) { return &var.as();} return nullptr; } - transport_t& select_transport() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - transport_t const* get_transport() const { if(get_index() == 2) { return &var.as();} return nullptr; } - protocol_t& select_protocol() { if(get_index() != 3) { clear(); set_index(3); return var.build();} return var.as();} - protocol_t const* get_protocol() const { if(get_index() == 3) { return &var.as();} return nullptr; } - misc_t& select_misc() { if(get_index() != 4) { clear(); set_index(4); return var.build();} return var.as();} - misc_t const* get_misc() const { if(get_index() == 4) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(radioNetwork_t)]; - char dummy2[sizeof(transport_t)]; - char dummy3[sizeof(protocol_t)]; - char dummy4[sizeof(misc_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -Cell-Size ::= ENUMERATED {verysmall, small, medium, large, ... } -*/ - -struct Cell_Size : asn::enumerated<4, 0, true> -{ - static constexpr const char* name() {return "Cell-Size";} - using parent_t = asn::enumerated<4, 0, true>; - typedef enum { - verysmall - ,small - ,medium - ,large - } index_t; - -}; - -/* -CellCapacityClassValue ::= INTEGER (1..100, ...) -*/ - -struct CellCapacityClassValue : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "CellCapacityClassValue";} - using parent_t = asn::integer<>; - -}; - -/* -CellDeploymentStatusIndicator ::= ENUMERATED {pre-change-notification, ...} -*/ - -struct CellDeploymentStatusIndicator : asn::enumerated<1, 0, true> -{ - static constexpr const char* name() {return "CellDeploymentStatusIndicator";} - using parent_t = asn::enumerated<1, 0, true>; - typedef enum { - pre_change_notification - } index_t; - -}; - -/* -ReplacingCellsList-Item ::= SEQUENCE { - eCGI ECGI, - ... -} -*/ - -struct ReplacingCellsList_Item : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "ReplacingCellsList-Item";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct eCGI_t : ECGI - { - static constexpr const char* name() {return "eCGI_t";} - using parent_t = ECGI; - - }; - eCGI_t& ref_eCGI() {return eCGI;} - eCGI_t const& ref_eCGI() const {return eCGI;} - template void decode(V& v) - { - v(eCGI); - - }; - template void encode(V& v) const - { - v(eCGI); - - }; - void clear() - { - eCGI.clear(); - - }; - private: - eCGI_t eCGI; - -}; -/* -ReplacingCellsList ::= SEQUENCE (SIZE(0.. maxCellineNB)) OF ReplacingCellsList-Item -*/ - -struct ReplacingCellsList_elm : ReplacingCellsList_Item -{ - static constexpr const char* name() {return "ReplacingCellsList_elm";} - using parent_t = ReplacingCellsList_Item; - -}; -struct ReplacingCellsList : asn::sequenceof -{ - static constexpr const char* name() {return "ReplacingCellsList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -CellReplacingInfo-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct CellReplacingInfo_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -CellReplacingInfo ::= SEQUENCE { - replacingCellsList ReplacingCellsList, - iE-Extensions ProtocolExtensionContainer { {CellReplacingInfo-ExtIEs}} OPTIONAL, - ... -} -*/ - -struct CellReplacingInfo : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "CellReplacingInfo";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct replacingCellsList_t : ReplacingCellsList - { - static constexpr const char* name() {return "replacingCellsList_t";} - using parent_t = ReplacingCellsList; - - }; - replacingCellsList_t& ref_replacingCellsList() {return replacingCellsList;} - replacingCellsList_t const& ref_replacingCellsList() const {return replacingCellsList;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(replacingCellsList); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(replacingCellsList); - v(iE_Extensions); - - }; - void clear() - { - replacingCellsList.clear(); - iE_Extensions.clear(); - - }; - private: - replacingCellsList_t replacingCellsList; - iE_Extensions_t iE_Extensions; - -}; -/* -CellReportingIndicator ::= ENUMERATED {stop-request, ... } -*/ - -struct CellReportingIndicator : asn::enumerated<1, 0, true> -{ - static constexpr const char* name() {return "CellReportingIndicator";} - using parent_t = asn::enumerated<1, 0, true>; - typedef enum { - stop_request - } index_t; - -}; - -/* -CellType-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct CellType_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -CellType ::= SEQUENCE { - cell-Size Cell-Size, - iE-Extensions ProtocolExtensionContainer { {CellType-ExtIEs}} OPTIONAL, - ... -} -*/ - -struct CellType : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "CellType";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct cell_Size_t : Cell_Size - { - static constexpr const char* name() {return "cell_Size_t";} - using parent_t = Cell_Size; - - }; - cell_Size_t& ref_cell_Size() {return cell_Size;} - cell_Size_t const& ref_cell_Size() const {return cell_Size;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(cell_Size); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(cell_Size); - v(iE_Extensions); - - }; - void clear() - { - cell_Size.clear(); - iE_Extensions.clear(); - - }; - private: - cell_Size_t cell_Size; - iE_Extensions_t iE_Extensions; - -}; -/* -CoMPHypothesisSetItem-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct CoMPHypothesisSetItem_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -CoMPHypothesisSetItem ::= SEQUENCE { - coMPCellID ECGI, - coMPHypothesis BIT STRING (SIZE(6..4400, ...)), - iE-Extensions ProtocolExtensionContainer { {CoMPHypothesisSetItem-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct CoMPHypothesisSetItem : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "CoMPHypothesisSetItem";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct coMPCellID_t : ECGI - { - static constexpr const char* name() {return "coMPCellID_t";} - using parent_t = ECGI; - - }; - coMPCellID_t& ref_coMPCellID() {return coMPCellID;} - coMPCellID_t const& ref_coMPCellID() const {return coMPCellID;} - struct coMPHypothesis_t : asn::bstring<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "coMPHypothesis_t";} - using parent_t = asn::bstring<>; - - }; - - coMPHypothesis_t& ref_coMPHypothesis() {return coMPHypothesis;} - coMPHypothesis_t const& ref_coMPHypothesis() const {return coMPHypothesis;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(coMPCellID); - v(coMPHypothesis); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(coMPCellID); - v(coMPHypothesis); - v(iE_Extensions); - - }; - void clear() - { - coMPCellID.clear(); - coMPHypothesis.clear(); - iE_Extensions.clear(); - - }; - private: - coMPCellID_t coMPCellID; - coMPHypothesis_t coMPHypothesis; - iE_Extensions_t iE_Extensions; - -}; -/* -CoMPHypothesisSet ::= SEQUENCE (SIZE(1..maxnoofCoMPCells)) OF CoMPHypothesisSetItem -*/ - -struct CoMPHypothesisSet_elm : CoMPHypothesisSetItem -{ - static constexpr const char* name() {return "CoMPHypothesisSet_elm";} - using parent_t = CoMPHypothesisSetItem; - -}; -struct CoMPHypothesisSet : asn::sequenceof -{ - static constexpr const char* name() {return "CoMPHypothesisSet";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -CoMPInformationItem-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct CoMPInformationItem_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -CoMPInformationItem ::= SEQUENCE (SIZE(1..maxnoofCoMPHypothesisSet)) OF - SEQUENCE { - coMPHypothesisSet CoMPHypothesisSet, - benefitMetric BenefitMetric, - iE-Extensions ProtocolExtensionContainer { {CoMPInformationItem-ExtIEs} } OPTIONAL, - ... - } -*/ - -struct CoMPInformationItem_elm : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "CoMPInformationItem_elm";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct coMPHypothesisSet_t : CoMPHypothesisSet - { - static constexpr const char* name() {return "coMPHypothesisSet_t";} - using parent_t = CoMPHypothesisSet; - - }; - coMPHypothesisSet_t& ref_coMPHypothesisSet() {return coMPHypothesisSet;} - coMPHypothesisSet_t const& ref_coMPHypothesisSet() const {return coMPHypothesisSet;} - struct benefitMetric_t : BenefitMetric - { - static constexpr const char* name() {return "benefitMetric_t";} - using parent_t = BenefitMetric; - - }; - benefitMetric_t& ref_benefitMetric() {return benefitMetric;} - benefitMetric_t const& ref_benefitMetric() const {return benefitMetric;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(coMPHypothesisSet); - v(benefitMetric); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(coMPHypothesisSet); - v(benefitMetric); - v(iE_Extensions); - - }; - void clear() - { - coMPHypothesisSet.clear(); - benefitMetric.clear(); - iE_Extensions.clear(); - - }; - private: - coMPHypothesisSet_t coMPHypothesisSet; - benefitMetric_t benefitMetric; - iE_Extensions_t iE_Extensions; - -}; -struct CoMPInformationItem : asn::sequenceof -{ - static constexpr const char* name() {return "CoMPInformationItem";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -CoMPInformationStartTime-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct CoMPInformationStartTime_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -CoMPInformationStartTime ::= SEQUENCE (SIZE(0..1)) OF - SEQUENCE { - startSFN INTEGER (0..1023, ...), - startSubframeNumber INTEGER (0..9, ...), - iE-Extensions ProtocolExtensionContainer { {CoMPInformationStartTime-ExtIEs} } OPTIONAL, - ... - } -*/ - -struct CoMPInformationStartTime_elm : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "CoMPInformationStartTime_elm";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct startSFN_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "startSFN_t";} - using parent_t = asn::integer<>; - - }; - - startSFN_t& ref_startSFN() {return startSFN;} - startSFN_t const& ref_startSFN() const {return startSFN;} - struct startSubframeNumber_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "startSubframeNumber_t";} - using parent_t = asn::integer<>; - - }; - - startSubframeNumber_t& ref_startSubframeNumber() {return startSubframeNumber;} - startSubframeNumber_t const& ref_startSubframeNumber() const {return startSubframeNumber;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(startSFN); - v(startSubframeNumber); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(startSFN); - v(startSubframeNumber); - v(iE_Extensions); - - }; - void clear() - { - startSFN.clear(); - startSubframeNumber.clear(); - iE_Extensions.clear(); - - }; - private: - startSFN_t startSFN; - startSubframeNumber_t startSubframeNumber; - iE_Extensions_t iE_Extensions; - -}; -struct CoMPInformationStartTime : asn::sequenceof -{ - static constexpr const char* name() {return "CoMPInformationStartTime";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -CoMPInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct CoMPInformation_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -CoMPInformation ::= SEQUENCE { - coMPInformationItem CoMPInformationItem, - coMPInformationStartTime CoMPInformationStartTime, - iE-Extensions ProtocolExtensionContainer { {CoMPInformation-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct CoMPInformation : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "CoMPInformation";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct coMPInformationItem_t : CoMPInformationItem - { - static constexpr const char* name() {return "coMPInformationItem_t";} - using parent_t = CoMPInformationItem; - - }; - coMPInformationItem_t& ref_coMPInformationItem() {return coMPInformationItem;} - coMPInformationItem_t const& ref_coMPInformationItem() const {return coMPInformationItem;} - struct coMPInformationStartTime_t : CoMPInformationStartTime - { - static constexpr const char* name() {return "coMPInformationStartTime_t";} - using parent_t = CoMPInformationStartTime; - - }; - coMPInformationStartTime_t& ref_coMPInformationStartTime() {return coMPInformationStartTime;} - coMPInformationStartTime_t const& ref_coMPInformationStartTime() const {return coMPInformationStartTime;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(coMPInformationItem); - v(coMPInformationStartTime); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(coMPInformationItem); - v(coMPInformationStartTime); - v(iE_Extensions); - - }; - void clear() - { - coMPInformationItem.clear(); - coMPInformationStartTime.clear(); - iE_Extensions.clear(); - - }; - private: - coMPInformationItem_t coMPInformationItem; - coMPInformationStartTime_t coMPInformationStartTime; - iE_Extensions_t iE_Extensions; - -}; -/* -CompositeAvailableCapacity-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct CompositeAvailableCapacity_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -CompositeAvailableCapacity ::= SEQUENCE { - cellCapacityClassValue CellCapacityClassValue OPTIONAL, - capacityValue CapacityValue, - iE-Extensions ProtocolExtensionContainer { {CompositeAvailableCapacity-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct CompositeAvailableCapacity : asn::sequence<3, 0, true, 2> -{ - static constexpr const char* name() {return "CompositeAvailableCapacity";} - using parent_t = asn::sequence<3, 0, true, 2>; - struct cellCapacityClassValue_t : CellCapacityClassValue - { - static constexpr const char* name() {return "cellCapacityClassValue_t";} - using parent_t = CellCapacityClassValue; - static constexpr bool optional = true; - - }; - cellCapacityClassValue_t& set_cellCapacityClassValue() { cellCapacityClassValue.setpresent(true); return cellCapacityClassValue;} - cellCapacityClassValue_t const* get_cellCapacityClassValue() const {return cellCapacityClassValue.is_valid() ? &cellCapacityClassValue : nullptr;} - struct capacityValue_t : CapacityValue - { - static constexpr const char* name() {return "capacityValue_t";} - using parent_t = CapacityValue; - - }; - capacityValue_t& ref_capacityValue() {return capacityValue;} - capacityValue_t const& ref_capacityValue() const {return capacityValue;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(cellCapacityClassValue); - v(capacityValue); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(cellCapacityClassValue); - v(capacityValue); - v(iE_Extensions); - - }; - void clear() - { - cellCapacityClassValue.clear(); - capacityValue.clear(); - iE_Extensions.clear(); - - }; - private: - cellCapacityClassValue_t cellCapacityClassValue; - capacityValue_t capacityValue; - iE_Extensions_t iE_Extensions; - -}; -/* -CompositeAvailableCapacityGroup-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct CompositeAvailableCapacityGroup_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -CompositeAvailableCapacityGroup ::= SEQUENCE { - dL-CompositeAvailableCapacity CompositeAvailableCapacity, - uL-CompositeAvailableCapacity CompositeAvailableCapacity, - iE-Extensions ProtocolExtensionContainer { {CompositeAvailableCapacityGroup-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct CompositeAvailableCapacityGroup : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "CompositeAvailableCapacityGroup";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct dL_CompositeAvailableCapacity_t : CompositeAvailableCapacity - { - static constexpr const char* name() {return "dL_CompositeAvailableCapacity_t";} - using parent_t = CompositeAvailableCapacity; - - }; - dL_CompositeAvailableCapacity_t& ref_dL_CompositeAvailableCapacity() {return dL_CompositeAvailableCapacity;} - dL_CompositeAvailableCapacity_t const& ref_dL_CompositeAvailableCapacity() const {return dL_CompositeAvailableCapacity;} - struct uL_CompositeAvailableCapacity_t : CompositeAvailableCapacity - { - static constexpr const char* name() {return "uL_CompositeAvailableCapacity_t";} - using parent_t = CompositeAvailableCapacity; - - }; - uL_CompositeAvailableCapacity_t& ref_uL_CompositeAvailableCapacity() {return uL_CompositeAvailableCapacity;} - uL_CompositeAvailableCapacity_t const& ref_uL_CompositeAvailableCapacity() const {return uL_CompositeAvailableCapacity;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(dL_CompositeAvailableCapacity); - v(uL_CompositeAvailableCapacity); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(dL_CompositeAvailableCapacity); - v(uL_CompositeAvailableCapacity); - v(iE_Extensions); - - }; - void clear() - { - dL_CompositeAvailableCapacity.clear(); - uL_CompositeAvailableCapacity.clear(); - iE_Extensions.clear(); - - }; - private: - dL_CompositeAvailableCapacity_t dL_CompositeAvailableCapacity; - uL_CompositeAvailableCapacity_t uL_CompositeAvailableCapacity; - iE_Extensions_t iE_Extensions; - -}; -/* -Correlation-ID ::= OCTET STRING (SIZE (4)) -*/ - -struct Correlation_ID : asn::ostring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "Correlation-ID";} - using parent_t = asn::ostring<>; - -}; - -/* -CoverageModification-Item ::= SEQUENCE { - eCGI ECGI, - coverageState INTEGER (0..15, ...), - cellDeploymentStatusIndicator CellDeploymentStatusIndicator OPTIONAL, - cellReplacingInfo CellReplacingInfo OPTIONAL, --- Included in case the Cell Deployment Status Indicator IE is present - ... -} -*/ - -struct CoverageModification_Item : asn::sequence<4, 0, true, 2> -{ - static constexpr const char* name() {return "CoverageModification-Item";} - using parent_t = asn::sequence<4, 0, true, 2>; - struct eCGI_t : ECGI - { - static constexpr const char* name() {return "eCGI_t";} - using parent_t = ECGI; - - }; - eCGI_t& ref_eCGI() {return eCGI;} - eCGI_t const& ref_eCGI() const {return eCGI;} - struct coverageState_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "coverageState_t";} - using parent_t = asn::integer<>; - - }; - - coverageState_t& ref_coverageState() {return coverageState;} - coverageState_t const& ref_coverageState() const {return coverageState;} - struct cellDeploymentStatusIndicator_t : CellDeploymentStatusIndicator - { - static constexpr const char* name() {return "cellDeploymentStatusIndicator_t";} - using parent_t = CellDeploymentStatusIndicator; - static constexpr bool optional = true; - - }; - cellDeploymentStatusIndicator_t& set_cellDeploymentStatusIndicator() { cellDeploymentStatusIndicator.setpresent(true); return cellDeploymentStatusIndicator;} - cellDeploymentStatusIndicator_t const* get_cellDeploymentStatusIndicator() const {return cellDeploymentStatusIndicator.is_valid() ? &cellDeploymentStatusIndicator : nullptr;} - struct cellReplacingInfo_t : CellReplacingInfo - { - static constexpr const char* name() {return "cellReplacingInfo_t";} - using parent_t = CellReplacingInfo; - static constexpr bool optional = true; - - }; - cellReplacingInfo_t& set_cellReplacingInfo() { cellReplacingInfo.setpresent(true); return cellReplacingInfo;} - cellReplacingInfo_t const* get_cellReplacingInfo() const {return cellReplacingInfo.is_valid() ? &cellReplacingInfo : nullptr;} - template void decode(V& v) - { - v(eCGI); - v(coverageState); - v(cellDeploymentStatusIndicator); - v(cellReplacingInfo); - - }; - template void encode(V& v) const - { - v(eCGI); - v(coverageState); - v(cellDeploymentStatusIndicator); - v(cellReplacingInfo); - - }; - void clear() - { - eCGI.clear(); - coverageState.clear(); - cellDeploymentStatusIndicator.clear(); - cellReplacingInfo.clear(); - - }; - private: - eCGI_t eCGI; - coverageState_t coverageState; - cellDeploymentStatusIndicator_t cellDeploymentStatusIndicator; - cellReplacingInfo_t cellReplacingInfo; - -}; -/* -CoverageModificationList ::= SEQUENCE (SIZE (1..maxCellineNB)) OF CoverageModification-Item -*/ - -struct CoverageModificationList_elm : CoverageModification_Item -{ - static constexpr const char* name() {return "CoverageModificationList_elm";} - using parent_t = CoverageModification_Item; - -}; -struct CoverageModificationList : asn::sequenceof -{ - static constexpr const char* name() {return "CoverageModificationList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -TypeOfError ::= ENUMERATED { - not-understood, - missing, - ... -} -*/ - -struct TypeOfError : asn::enumerated<2, 0, true> -{ - static constexpr const char* name() {return "TypeOfError";} - using parent_t = asn::enumerated<2, 0, true>; - typedef enum { - not_understood - ,missing - } index_t; - -}; - -/* -CriticalityDiagnostics-IE-List-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct CriticalityDiagnostics_IE_List_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -CriticalityDiagnostics-IE-List ::= SEQUENCE (SIZE (1..maxNrOfErrors)) OF - SEQUENCE { - iECriticality Criticality, - iE-ID ProtocolIE-ID, - typeOfError TypeOfError, - iE-Extensions ProtocolExtensionContainer { {CriticalityDiagnostics-IE-List-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct CriticalityDiagnostics_IE_List_elm : asn::sequence<4, 0, true, 1> -{ - static constexpr const char* name() {return "CriticalityDiagnostics_IE_List_elm";} - using parent_t = asn::sequence<4, 0, true, 1>; - struct iECriticality_t : Criticality - { - static constexpr const char* name() {return "iECriticality_t";} - using parent_t = Criticality; - - }; - iECriticality_t& ref_iECriticality() {return iECriticality;} - iECriticality_t const& ref_iECriticality() const {return iECriticality;} - struct iE_ID_t : ProtocolIE_ID - { - static constexpr const char* name() {return "iE_ID_t";} - using parent_t = ProtocolIE_ID; - - }; - iE_ID_t& ref_iE_ID() {return iE_ID;} - iE_ID_t const& ref_iE_ID() const {return iE_ID;} - struct typeOfError_t : TypeOfError - { - static constexpr const char* name() {return "typeOfError_t";} - using parent_t = TypeOfError; - - }; - typeOfError_t& ref_typeOfError() {return typeOfError;} - typeOfError_t const& ref_typeOfError() const {return typeOfError;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(iECriticality); - v(iE_ID); - v(typeOfError); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(iECriticality); - v(iE_ID); - v(typeOfError); - v(iE_Extensions); - - }; - void clear() - { - iECriticality.clear(); - iE_ID.clear(); - typeOfError.clear(); - iE_Extensions.clear(); - - }; - private: - iECriticality_t iECriticality; - iE_ID_t iE_ID; - typeOfError_t typeOfError; - iE_Extensions_t iE_Extensions; - -}; -struct CriticalityDiagnostics_IE_List : asn::sequenceof -{ - static constexpr const char* name() {return "CriticalityDiagnostics-IE-List";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -CriticalityDiagnostics-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct CriticalityDiagnostics_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -CriticalityDiagnostics ::= SEQUENCE { - procedureCode ProcedureCode OPTIONAL, - triggeringMessage TriggeringMessage OPTIONAL, - procedureCriticality Criticality OPTIONAL, - iEsCriticalityDiagnostics CriticalityDiagnostics-IE-List OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {CriticalityDiagnostics-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct CriticalityDiagnostics : asn::sequence<5, 0, true, 5> -{ - static constexpr const char* name() {return "CriticalityDiagnostics";} - using parent_t = asn::sequence<5, 0, true, 5>; - struct procedureCode_t : ProcedureCode - { - static constexpr const char* name() {return "procedureCode_t";} - using parent_t = ProcedureCode; - static constexpr bool optional = true; - - }; - procedureCode_t& set_procedureCode() { procedureCode.setpresent(true); return procedureCode;} - procedureCode_t const* get_procedureCode() const {return procedureCode.is_valid() ? &procedureCode : nullptr;} - struct triggeringMessage_t : TriggeringMessage - { - static constexpr const char* name() {return "triggeringMessage_t";} - using parent_t = TriggeringMessage; - static constexpr bool optional = true; - - }; - triggeringMessage_t& set_triggeringMessage() { triggeringMessage.setpresent(true); return triggeringMessage;} - triggeringMessage_t const* get_triggeringMessage() const {return triggeringMessage.is_valid() ? &triggeringMessage : nullptr;} - struct procedureCriticality_t : Criticality - { - static constexpr const char* name() {return "procedureCriticality_t";} - using parent_t = Criticality; - static constexpr bool optional = true; - - }; - procedureCriticality_t& set_procedureCriticality() { procedureCriticality.setpresent(true); return procedureCriticality;} - procedureCriticality_t const* get_procedureCriticality() const {return procedureCriticality.is_valid() ? &procedureCriticality : nullptr;} - struct iEsCriticalityDiagnostics_t : CriticalityDiagnostics_IE_List - { - static constexpr const char* name() {return "iEsCriticalityDiagnostics_t";} - using parent_t = CriticalityDiagnostics_IE_List; - static constexpr bool optional = true; - - }; - iEsCriticalityDiagnostics_t& set_iEsCriticalityDiagnostics() { iEsCriticalityDiagnostics.setpresent(true); return iEsCriticalityDiagnostics;} - iEsCriticalityDiagnostics_t const* get_iEsCriticalityDiagnostics() const {return iEsCriticalityDiagnostics.is_valid() ? &iEsCriticalityDiagnostics : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(procedureCode); - v(triggeringMessage); - v(procedureCriticality); - v(iEsCriticalityDiagnostics); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(procedureCode); - v(triggeringMessage); - v(procedureCriticality); - v(iEsCriticalityDiagnostics); - v(iE_Extensions); - - }; - void clear() - { - procedureCode.clear(); - triggeringMessage.clear(); - procedureCriticality.clear(); - iEsCriticalityDiagnostics.clear(); - iE_Extensions.clear(); - - }; - private: - procedureCode_t procedureCode; - triggeringMessage_t triggeringMessage; - procedureCriticality_t procedureCriticality; - iEsCriticalityDiagnostics_t iEsCriticalityDiagnostics; - iE_Extensions_t iE_Extensions; - -}; -/* -DL-Forwarding ::= ENUMERATED { - dL-forwardingProposed, - ... -} -*/ - -struct DL_Forwarding : asn::enumerated<1, 0, true> -{ - static constexpr const char* name() {return "DL-Forwarding";} - using parent_t = asn::enumerated<1, 0, true>; - typedef enum { - dL_forwardingProposed - } index_t; - -}; - -/* -DL-GBR-PRB-usage::= INTEGER (0..100) -*/ - -struct DL_GBR_PRB_usage : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "DL-GBR-PRB-usage";} - using parent_t = asn::integer<>; - -}; - -/* -DL-Total-PRB-usage::= INTEGER (0..100) -*/ - -struct DL_Total_PRB_usage : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "DL-Total-PRB-usage";} - using parent_t = asn::integer<>; - -}; - -/* -DL-non-GBR-PRB-usage::= INTEGER (0..100) -*/ - -struct DL_non_GBR_PRB_usage : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "DL-non-GBR-PRB-usage";} - using parent_t = asn::integer<>; - -}; - -/* -DL-scheduling-PDCCH-CCE-usage::= INTEGER (0..100) -*/ - -struct DL_scheduling_PDCCH_CCE_usage : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "DL-scheduling-PDCCH-CCE-usage";} - using parent_t = asn::integer<>; - -}; - -/* -DataTrafficResources ::= BIT STRING (SIZE(6..17600)) -*/ - -struct DataTrafficResources : asn::bstring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "DataTrafficResources";} - using parent_t = asn::bstring<>; - -}; - -/* -DLResourceBitmapULandDLSharing ::= DataTrafficResources -*/ - -struct DLResourceBitmapULandDLSharing : DataTrafficResources -{ - static constexpr const char* name() {return "DLResourceBitmapULandDLSharing";} - using parent_t = DataTrafficResources; - -}; -/* -DLResourcesULandDLSharing ::= CHOICE { -unchanged NULL, - changed DLResourceBitmapULandDLSharing, - ... -} -*/ - -struct DLResourcesULandDLSharing : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "DLResourcesULandDLSharing";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~DLResourcesULandDLSharing() {clear();} - struct unchanged_t : asn::nulltype - { - static constexpr const char* name() {return "unchanged_t";} - using parent_t = asn::nulltype; - - }; - struct changed_t : DLResourceBitmapULandDLSharing - { - static constexpr const char* name() {return "changed_t";} - using parent_t = DLResourceBitmapULandDLSharing; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - unchanged_t& select_unchanged() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - unchanged_t const* get_unchanged() const { if(get_index() == 1) { return &var.as();} return nullptr; } - changed_t& select_changed() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - changed_t const* get_changed() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(unchanged_t)]; - char dummy2[sizeof(changed_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -DRB-ID ::= INTEGER (1..32) -*/ - -struct DRB_ID : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "DRB-ID";} - using parent_t = asn::integer<>; - -}; - -/* -ULOnlySharing-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct ULOnlySharing_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ULOnlySharing ::= SEQUENCE{ - uLResourceBitmapULOnlySharing DataTrafficResources, - iE-Extensions ProtocolExtensionContainer { {ULOnlySharing-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct ULOnlySharing : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "ULOnlySharing";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct uLResourceBitmapULOnlySharing_t : DataTrafficResources - { - static constexpr const char* name() {return "uLResourceBitmapULOnlySharing_t";} - using parent_t = DataTrafficResources; - - }; - uLResourceBitmapULOnlySharing_t& ref_uLResourceBitmapULOnlySharing() {return uLResourceBitmapULOnlySharing;} - uLResourceBitmapULOnlySharing_t const& ref_uLResourceBitmapULOnlySharing() const {return uLResourceBitmapULOnlySharing;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(uLResourceBitmapULOnlySharing); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(uLResourceBitmapULOnlySharing); - v(iE_Extensions); - - }; - void clear() - { - uLResourceBitmapULOnlySharing.clear(); - iE_Extensions.clear(); - - }; - private: - uLResourceBitmapULOnlySharing_t uLResourceBitmapULOnlySharing; - iE_Extensions_t iE_Extensions; - -}; -/* -ULResourceBitmapULandDLSharing ::= DataTrafficResources -*/ - -struct ULResourceBitmapULandDLSharing : DataTrafficResources -{ - static constexpr const char* name() {return "ULResourceBitmapULandDLSharing";} - using parent_t = DataTrafficResources; - -}; -/* -ULResourcesULandDLSharing ::= CHOICE { - unchanged NULL, - changed ULResourceBitmapULandDLSharing, - ... -} -*/ - -struct ULResourcesULandDLSharing : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "ULResourcesULandDLSharing";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~ULResourcesULandDLSharing() {clear();} - struct unchanged_t : asn::nulltype - { - static constexpr const char* name() {return "unchanged_t";} - using parent_t = asn::nulltype; - - }; - struct changed_t : ULResourceBitmapULandDLSharing - { - static constexpr const char* name() {return "changed_t";} - using parent_t = ULResourceBitmapULandDLSharing; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - unchanged_t& select_unchanged() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - unchanged_t const* get_unchanged() const { if(get_index() == 1) { return &var.as();} return nullptr; } - changed_t& select_changed() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - changed_t const* get_changed() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(unchanged_t)]; - char dummy2[sizeof(changed_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -ULandDLSharing-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct ULandDLSharing_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ULandDLSharing ::= SEQUENCE{ - uLResourcesULandDLSharing ULResourcesULandDLSharing, - dLResourcesULandDLSharing DLResourcesULandDLSharing, - iE-Extensions ProtocolExtensionContainer { {ULandDLSharing-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct ULandDLSharing : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "ULandDLSharing";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct uLResourcesULandDLSharing_t : ULResourcesULandDLSharing - { - static constexpr const char* name() {return "uLResourcesULandDLSharing_t";} - using parent_t = ULResourcesULandDLSharing; - - }; - uLResourcesULandDLSharing_t& ref_uLResourcesULandDLSharing() {return uLResourcesULandDLSharing;} - uLResourcesULandDLSharing_t const& ref_uLResourcesULandDLSharing() const {return uLResourcesULandDLSharing;} - struct dLResourcesULandDLSharing_t : DLResourcesULandDLSharing - { - static constexpr const char* name() {return "dLResourcesULandDLSharing_t";} - using parent_t = DLResourcesULandDLSharing; - - }; - dLResourcesULandDLSharing_t& ref_dLResourcesULandDLSharing() {return dLResourcesULandDLSharing;} - dLResourcesULandDLSharing_t const& ref_dLResourcesULandDLSharing() const {return dLResourcesULandDLSharing;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(uLResourcesULandDLSharing); - v(dLResourcesULandDLSharing); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(uLResourcesULandDLSharing); - v(dLResourcesULandDLSharing); - v(iE_Extensions); - - }; - void clear() - { - uLResourcesULandDLSharing.clear(); - dLResourcesULandDLSharing.clear(); - iE_Extensions.clear(); - - }; - private: - uLResourcesULandDLSharing_t uLResourcesULandDLSharing; - dLResourcesULandDLSharing_t dLResourcesULandDLSharing; - iE_Extensions_t iE_Extensions; - -}; -/* -SharedResourceType ::= CHOICE{ - uLOnlySharing ULOnlySharing, - uLandDLSharing ULandDLSharing, - ... -} -*/ - -struct SharedResourceType : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "SharedResourceType";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~SharedResourceType() {clear();} - struct uLOnlySharing_t : ULOnlySharing - { - static constexpr const char* name() {return "uLOnlySharing_t";} - using parent_t = ULOnlySharing; - - }; - struct uLandDLSharing_t : ULandDLSharing - { - static constexpr const char* name() {return "uLandDLSharing_t";} - using parent_t = ULandDLSharing; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - uLOnlySharing_t& select_uLOnlySharing() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - uLOnlySharing_t const* get_uLOnlySharing() const { if(get_index() == 1) { return &var.as();} return nullptr; } - uLandDLSharing_t& select_uLandDLSharing() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - uLandDLSharing_t const* get_uLandDLSharing() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(uLOnlySharing_t)]; - char dummy2[sizeof(uLandDLSharing_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -SubframeType ::= ENUMERATED{mbsfn,nonmbsfn,...} -*/ - -struct SubframeType : asn::enumerated<2, 0, true> -{ - static constexpr const char* name() {return "SubframeType";} - using parent_t = asn::enumerated<2, 0, true>; - typedef enum { - mbsfn - ,nonmbsfn - } index_t; - -}; - -/* -ReservedSubframePattern-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct ReservedSubframePattern_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ReservedSubframePattern ::= SEQUENCE{ - subframeType SubframeType, - reservedSubframePattern BIT STRING (SIZE(10..160)), - mBSFNControlRegionLength INTEGER (0..3), - iE-Extensions ProtocolExtensionContainer { {ReservedSubframePattern-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct ReservedSubframePattern : asn::sequence<4, 0, true, 1> -{ - static constexpr const char* name() {return "ReservedSubframePattern";} - using parent_t = asn::sequence<4, 0, true, 1>; - struct subframeType_t : SubframeType - { - static constexpr const char* name() {return "subframeType_t";} - using parent_t = SubframeType; - - }; - subframeType_t& ref_subframeType() {return subframeType;} - subframeType_t const& ref_subframeType() const {return subframeType;} - struct reservedSubframePattern_t : asn::bstring<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "reservedSubframePattern_t";} - using parent_t = asn::bstring<>; - - }; - - reservedSubframePattern_t& ref_reservedSubframePattern() {return reservedSubframePattern;} - reservedSubframePattern_t const& ref_reservedSubframePattern() const {return reservedSubframePattern;} - struct mBSFNControlRegionLength_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "mBSFNControlRegionLength_t";} - using parent_t = asn::integer<>; - - }; - - mBSFNControlRegionLength_t& ref_mBSFNControlRegionLength() {return mBSFNControlRegionLength;} - mBSFNControlRegionLength_t const& ref_mBSFNControlRegionLength() const {return mBSFNControlRegionLength;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(subframeType); - v(reservedSubframePattern); - v(mBSFNControlRegionLength); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(subframeType); - v(reservedSubframePattern); - v(mBSFNControlRegionLength); - v(iE_Extensions); - - }; - void clear() - { - subframeType.clear(); - reservedSubframePattern.clear(); - mBSFNControlRegionLength.clear(); - iE_Extensions.clear(); - - }; - private: - subframeType_t subframeType; - reservedSubframePattern_t reservedSubframePattern; - mBSFNControlRegionLength_t mBSFNControlRegionLength; - iE_Extensions_t iE_Extensions; - -}; -/* -DataTrafficResourceIndication-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct DataTrafficResourceIndication_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -DataTrafficResourceIndication ::= SEQUENCE { - activationSFN INTEGER (0..1023), - sharedResourceType SharedResourceType, - reservedSubframePattern ReservedSubframePattern OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {DataTrafficResourceIndication-ExtIEs} } OPTIONAL, -... -} -*/ - -struct DataTrafficResourceIndication : asn::sequence<4, 0, true, 2> -{ - static constexpr const char* name() {return "DataTrafficResourceIndication";} - using parent_t = asn::sequence<4, 0, true, 2>; - struct activationSFN_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "activationSFN_t";} - using parent_t = asn::integer<>; - - }; - - activationSFN_t& ref_activationSFN() {return activationSFN;} - activationSFN_t const& ref_activationSFN() const {return activationSFN;} - struct sharedResourceType_t : SharedResourceType - { - static constexpr const char* name() {return "sharedResourceType_t";} - using parent_t = SharedResourceType; - - }; - sharedResourceType_t& ref_sharedResourceType() {return sharedResourceType;} - sharedResourceType_t const& ref_sharedResourceType() const {return sharedResourceType;} - struct reservedSubframePattern_t : ReservedSubframePattern - { - static constexpr const char* name() {return "reservedSubframePattern_t";} - using parent_t = ReservedSubframePattern; - static constexpr bool optional = true; - - }; - reservedSubframePattern_t& set_reservedSubframePattern() { reservedSubframePattern.setpresent(true); return reservedSubframePattern;} - reservedSubframePattern_t const* get_reservedSubframePattern() const {return reservedSubframePattern.is_valid() ? &reservedSubframePattern : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(activationSFN); - v(sharedResourceType); - v(reservedSubframePattern); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(activationSFN); - v(sharedResourceType); - v(reservedSubframePattern); - v(iE_Extensions); - - }; - void clear() - { - activationSFN.clear(); - sharedResourceType.clear(); - reservedSubframePattern.clear(); - iE_Extensions.clear(); - - }; - private: - activationSFN_t activationSFN; - sharedResourceType_t sharedResourceType; - reservedSubframePattern_t reservedSubframePattern; - iE_Extensions_t iE_Extensions; - -}; -/* -DeactivationIndication::= ENUMERATED { - deactivated, - ... -} -*/ - -struct DeactivationIndication : asn::enumerated<1, 0, true> -{ - static constexpr const char* name() {return "DeactivationIndication";} - using parent_t = asn::enumerated<1, 0, true>; - typedef enum { - deactivated - } index_t; - -}; - -/* -DeliveryStatus-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct DeliveryStatus_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -DeliveryStatus ::= SEQUENCE { - highestSuccessDeliveredPDCPSN INTEGER (0..4095), - iE-Extensions ProtocolExtensionContainer { {DeliveryStatus-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct DeliveryStatus : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "DeliveryStatus";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct highestSuccessDeliveredPDCPSN_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "highestSuccessDeliveredPDCPSN_t";} - using parent_t = asn::integer<>; - - }; - - highestSuccessDeliveredPDCPSN_t& ref_highestSuccessDeliveredPDCPSN() {return highestSuccessDeliveredPDCPSN;} - highestSuccessDeliveredPDCPSN_t const& ref_highestSuccessDeliveredPDCPSN() const {return highestSuccessDeliveredPDCPSN;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(highestSuccessDeliveredPDCPSN); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(highestSuccessDeliveredPDCPSN); - v(iE_Extensions); - - }; - void clear() - { - highestSuccessDeliveredPDCPSN.clear(); - iE_Extensions.clear(); - - }; - private: - highestSuccessDeliveredPDCPSN_t highestSuccessDeliveredPDCPSN; - iE_Extensions_t iE_Extensions; - -}; -/* -DuplicationActivation::= ENUMERATED {active, inactive, ...} -*/ - -struct DuplicationActivation : asn::enumerated<2, 0, true> -{ - static constexpr const char* name() {return "DuplicationActivation";} - using parent_t = asn::enumerated<2, 0, true>; - typedef enum { - active - ,inactive - } index_t; - -}; - -/* -PA-Values ::= ENUMERATED { - dB-6, - dB-4dot77, - dB-3, - dB-1dot77, - dB0, - dB1, - dB2, - dB3, - ... -} -*/ - -struct PA_Values : asn::enumerated<8, 0, true> -{ - static constexpr const char* name() {return "PA-Values";} - using parent_t = asn::enumerated<8, 0, true>; - typedef enum { - dB_6 - ,dB_4dot77 - ,dB_3 - ,dB_1dot77 - ,dB0 - ,dB1 - ,dB2 - ,dB3 - } index_t; - -}; - -/* -DynamicNAICSInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct DynamicNAICSInformation_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -DynamicNAICSInformation ::= SEQUENCE { - transmissionModes BIT STRING (SIZE(8)) OPTIONAL, - pB-information INTEGER(0..3) OPTIONAL, - pA-list SEQUENCE (SIZE(0..maxnoofPA)) OF PA-Values, - iE-Extensions ProtocolExtensionContainer { {DynamicNAICSInformation-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct DynamicNAICSInformation : asn::sequence<4, 0, true, 3> -{ - static constexpr const char* name() {return "DynamicNAICSInformation";} - using parent_t = asn::sequence<4, 0, true, 3>; - struct transmissionModes_t : asn::bstring<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "transmissionModes_t";} - using parent_t = asn::bstring<>; - static constexpr bool optional = true; - - }; - - transmissionModes_t& set_transmissionModes() { transmissionModes.setpresent(true); return transmissionModes;} - transmissionModes_t const* get_transmissionModes() const {return transmissionModes.is_valid() ? &transmissionModes : nullptr;} - struct pB_information_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "pB_information_t";} - using parent_t = asn::integer<>; - static constexpr bool optional = true; - - }; - - pB_information_t& set_pB_information() { pB_information.setpresent(true); return pB_information;} - pB_information_t const* get_pB_information() const {return pB_information.is_valid() ? &pB_information : nullptr;} - struct pA_list_t_elm : PA_Values - { - static constexpr const char* name() {return "pA_list_t_elm";} - using parent_t = PA_Values; - - }; - struct pA_list_t : asn::sequenceof - { - static constexpr const char* name() {return "pA_list_t";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - - }; - pA_list_t& ref_pA_list() {return pA_list;} - pA_list_t const& ref_pA_list() const {return pA_list;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(transmissionModes); - v(pB_information); - v(pA_list); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(transmissionModes); - v(pB_information); - v(pA_list); - v(iE_Extensions); - - }; - void clear() - { - transmissionModes.clear(); - pB_information.clear(); - pA_list.clear(); - iE_Extensions.clear(); - - }; - private: - transmissionModes_t transmissionModes; - pB_information_t pB_information; - pA_list_t pA_list; - iE_Extensions_t iE_Extensions; - -}; -/* -DynamicDLTransmissionInformation ::= CHOICE { - naics-active DynamicNAICSInformation, - naics-inactive NULL, - ... -} -*/ - -struct DynamicDLTransmissionInformation : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "DynamicDLTransmissionInformation";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~DynamicDLTransmissionInformation() {clear();} - struct naics_active_t : DynamicNAICSInformation - { - static constexpr const char* name() {return "naics_active_t";} - using parent_t = DynamicNAICSInformation; - - }; - struct naics_inactive_t : asn::nulltype - { - static constexpr const char* name() {return "naics_inactive_t";} - using parent_t = asn::nulltype; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - naics_active_t& select_naics_active() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - naics_active_t const* get_naics_active() const { if(get_index() == 1) { return &var.as();} return nullptr; } - naics_inactive_t& select_naics_inactive() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - naics_inactive_t const* get_naics_inactive() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(naics_active_t)]; - char dummy2[sizeof(naics_inactive_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -E-RAB-ID ::= INTEGER (0..15, ...) -*/ - -struct E_RAB_ID : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "E-RAB-ID";} - using parent_t = asn::integer<>; - -}; - -/* -E-RAB-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RAB_Item_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RAB-Item ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - cause Cause, - iE-Extensions ProtocolExtensionContainer { {E-RAB-Item-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RAB_Item : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "E-RAB-Item";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct cause_t : Cause - { - static constexpr const char* name() {return "cause_t";} - using parent_t = Cause; - - }; - cause_t& ref_cause() {return cause;} - cause_t const& ref_cause() const {return cause;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(cause); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(cause); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - cause.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - cause_t cause; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RAB-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RAB-Item CRITICALITY ignore TYPE E-RAB-Item PRESENCE mandatory }, - ... -} -*/ - -struct E_RAB_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RAB_Item() { set(id_E_RAB_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RAB_Item)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RAB_Item);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RAB_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RAB_Item& select_id_E_RAB_Item() { return set(1); } - E_RAB_Item const* get_id_E_RAB_Item() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RAB_Item()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RAB_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RAB_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -QCI ::= INTEGER (0..255) -*/ - -struct QCI : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "QCI";} - using parent_t = asn::integer<>; - -}; - -/* -ExtendedBitRate ::= INTEGER (10000000001..4000000000000,...) -*/ - -struct ExtendedBitRate : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "ExtendedBitRate";} - using parent_t = asn::integer<>; - -}; - -/* -GBR-QosInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { --- Extension for maximum bitrate > 10Gbps -- - { ID id-extended-e-RAB-MaximumBitrateDL CRITICALITY ignore EXTENSION ExtendedBitRate PRESENCE optional}| - { ID id-extended-e-RAB-MaximumBitrateUL CRITICALITY ignore EXTENSION ExtendedBitRate PRESENCE optional}| - { ID id-extended-e-RAB-GuaranteedBitrateDL CRITICALITY ignore EXTENSION ExtendedBitRate PRESENCE optional}| - { ID id-extended-e-RAB-GuaranteedBitrateUL CRITICALITY ignore EXTENSION ExtendedBitRate PRESENCE optional}, - ... -} -*/ - -struct GBR_QosInformation_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_extended_e_RAB_MaximumBitrateDL() { set(id_extended_e_RAB_MaximumBitrateDL); type=1;} - void select_id_extended_e_RAB_MaximumBitrateUL() { set(id_extended_e_RAB_MaximumBitrateUL); type=2;} - void select_id_extended_e_RAB_GuaranteedBitrateDL() { set(id_extended_e_RAB_GuaranteedBitrateDL); type=3;} - void select_id_extended_e_RAB_GuaranteedBitrateUL() { set(id_extended_e_RAB_GuaranteedBitrateUL); type=4;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_extended_e_RAB_MaximumBitrateDL)) { type = 1; return true; } - else if(equal(id_extended_e_RAB_MaximumBitrateUL)) { type = 2; return true; } - else if(equal(id_extended_e_RAB_GuaranteedBitrateDL)) { type = 3; return true; } - else if(equal(id_extended_e_RAB_GuaranteedBitrateUL)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_extended_e_RAB_MaximumBitrateDL);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_extended_e_RAB_MaximumBitrateUL);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_extended_e_RAB_GuaranteedBitrateDL);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_extended_e_RAB_GuaranteedBitrateUL);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_extended_e_RAB_MaximumBitrateDL() { set(ignore); type=1;} - void select_id_extended_e_RAB_MaximumBitrateUL() { set(ignore); type=2;} - void select_id_extended_e_RAB_GuaranteedBitrateDL() { set(ignore); type=3;} - void select_id_extended_e_RAB_GuaranteedBitrateUL() { set(ignore); type=4;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - ExtendedBitRate& select_id_extended_e_RAB_MaximumBitrateDL() { return set(1); } - ExtendedBitRate const* get_id_extended_e_RAB_MaximumBitrateDL() const { return get(1); } - ExtendedBitRate& select_id_extended_e_RAB_MaximumBitrateUL() { return set(2); } - ExtendedBitRate const* get_id_extended_e_RAB_MaximumBitrateUL() const { return get(2); } - ExtendedBitRate& select_id_extended_e_RAB_GuaranteedBitrateDL() { return set(3); } - ExtendedBitRate const* get_id_extended_e_RAB_GuaranteedBitrateDL() const { return get(3); } - ExtendedBitRate& select_id_extended_e_RAB_GuaranteedBitrateUL() { return set(4); } - ExtendedBitRate const* get_id_extended_e_RAB_GuaranteedBitrateUL() const { return get(4); } - bool is_unknown() const { return type == 5; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_extended_e_RAB_MaximumBitrateDL()); return true; - case 2: v(select_id_extended_e_RAB_MaximumBitrateUL()); return true; - case 3: v(select_id_extended_e_RAB_GuaranteedBitrateDL()); return true; - case 4: v(select_id_extended_e_RAB_GuaranteedBitrateUL()); return true; - case 5: if(type != 5) {clear(); asn::base::set();} type = 5; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(ExtendedBitRate)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_extended_e_RAB_MaximumBitrateDL() { set(optional); type=1;} - void select_id_extended_e_RAB_MaximumBitrateUL() { set(optional); type=2;} - void select_id_extended_e_RAB_GuaranteedBitrateDL() { set(optional); type=3;} - void select_id_extended_e_RAB_GuaranteedBitrateUL() { set(optional); type=4;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -GBR-QosInformation ::= SEQUENCE { - e-RAB-MaximumBitrateDL BitRate, - e-RAB-MaximumBitrateUL BitRate, - e-RAB-GuaranteedBitrateDL BitRate, - e-RAB-GuaranteedBitrateUL BitRate, - iE-Extensions ProtocolExtensionContainer { {GBR-QosInformation-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct GBR_QosInformation : asn::sequence<5, 0, true, 1> -{ - static constexpr const char* name() {return "GBR-QosInformation";} - using parent_t = asn::sequence<5, 0, true, 1>; - struct e_RAB_MaximumBitrateDL_t : BitRate - { - static constexpr const char* name() {return "e_RAB_MaximumBitrateDL_t";} - using parent_t = BitRate; - - }; - e_RAB_MaximumBitrateDL_t& ref_e_RAB_MaximumBitrateDL() {return e_RAB_MaximumBitrateDL;} - e_RAB_MaximumBitrateDL_t const& ref_e_RAB_MaximumBitrateDL() const {return e_RAB_MaximumBitrateDL;} - struct e_RAB_MaximumBitrateUL_t : BitRate - { - static constexpr const char* name() {return "e_RAB_MaximumBitrateUL_t";} - using parent_t = BitRate; - - }; - e_RAB_MaximumBitrateUL_t& ref_e_RAB_MaximumBitrateUL() {return e_RAB_MaximumBitrateUL;} - e_RAB_MaximumBitrateUL_t const& ref_e_RAB_MaximumBitrateUL() const {return e_RAB_MaximumBitrateUL;} - struct e_RAB_GuaranteedBitrateDL_t : BitRate - { - static constexpr const char* name() {return "e_RAB_GuaranteedBitrateDL_t";} - using parent_t = BitRate; - - }; - e_RAB_GuaranteedBitrateDL_t& ref_e_RAB_GuaranteedBitrateDL() {return e_RAB_GuaranteedBitrateDL;} - e_RAB_GuaranteedBitrateDL_t const& ref_e_RAB_GuaranteedBitrateDL() const {return e_RAB_GuaranteedBitrateDL;} - struct e_RAB_GuaranteedBitrateUL_t : BitRate - { - static constexpr const char* name() {return "e_RAB_GuaranteedBitrateUL_t";} - using parent_t = BitRate; - - }; - e_RAB_GuaranteedBitrateUL_t& ref_e_RAB_GuaranteedBitrateUL() {return e_RAB_GuaranteedBitrateUL;} - e_RAB_GuaranteedBitrateUL_t const& ref_e_RAB_GuaranteedBitrateUL() const {return e_RAB_GuaranteedBitrateUL;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_MaximumBitrateDL); - v(e_RAB_MaximumBitrateUL); - v(e_RAB_GuaranteedBitrateDL); - v(e_RAB_GuaranteedBitrateUL); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_MaximumBitrateDL); - v(e_RAB_MaximumBitrateUL); - v(e_RAB_GuaranteedBitrateDL); - v(e_RAB_GuaranteedBitrateUL); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_MaximumBitrateDL.clear(); - e_RAB_MaximumBitrateUL.clear(); - e_RAB_GuaranteedBitrateDL.clear(); - e_RAB_GuaranteedBitrateUL.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_MaximumBitrateDL_t e_RAB_MaximumBitrateDL; - e_RAB_MaximumBitrateUL_t e_RAB_MaximumBitrateUL; - e_RAB_GuaranteedBitrateDL_t e_RAB_GuaranteedBitrateDL; - e_RAB_GuaranteedBitrateUL_t e_RAB_GuaranteedBitrateUL; - iE_Extensions_t iE_Extensions; - -}; -/* -Packet-LossRate ::= INTEGER(0..1000) -*/ - -struct Packet_LossRate : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "Packet-LossRate";} - using parent_t = asn::integer<>; - -}; - -/* -E-RAB-Level-QoS-Parameters-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { --- Extended for introduction of downlink and uplink packet loss rate for enhanced Voice performance – - { ID id-DownlinkPacketLossRate CRITICALITY ignore EXTENSION Packet-LossRate PRESENCE optional}| - { ID id-UplinkPacketLossRate CRITICALITY ignore EXTENSION Packet-LossRate PRESENCE optional}, - ... -} -*/ - -struct E_RAB_Level_QoS_Parameters_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_DownlinkPacketLossRate() { set(id_DownlinkPacketLossRate); type=1;} - void select_id_UplinkPacketLossRate() { set(id_UplinkPacketLossRate); type=2;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_DownlinkPacketLossRate)) { type = 1; return true; } - else if(equal(id_UplinkPacketLossRate)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_DownlinkPacketLossRate);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_UplinkPacketLossRate);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_DownlinkPacketLossRate() { set(ignore); type=1;} - void select_id_UplinkPacketLossRate() { set(ignore); type=2;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - Packet_LossRate& select_id_DownlinkPacketLossRate() { return set(1); } - Packet_LossRate const* get_id_DownlinkPacketLossRate() const { return get(1); } - Packet_LossRate& select_id_UplinkPacketLossRate() { return set(2); } - Packet_LossRate const* get_id_UplinkPacketLossRate() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_DownlinkPacketLossRate()); return true; - case 2: v(select_id_UplinkPacketLossRate()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Packet_LossRate)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_DownlinkPacketLossRate() { set(optional); type=1;} - void select_id_UplinkPacketLossRate() { set(optional); type=2;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RAB-Level-QoS-Parameters ::= SEQUENCE { - qCI QCI, - allocationAndRetentionPriority AllocationAndRetentionPriority, - gbrQosInformation GBR-QosInformation OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {E-RAB-Level-QoS-Parameters-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RAB_Level_QoS_Parameters : asn::sequence<4, 0, true, 2> -{ - static constexpr const char* name() {return "E-RAB-Level-QoS-Parameters";} - using parent_t = asn::sequence<4, 0, true, 2>; - struct qCI_t : QCI - { - static constexpr const char* name() {return "qCI_t";} - using parent_t = QCI; - - }; - qCI_t& ref_qCI() {return qCI;} - qCI_t const& ref_qCI() const {return qCI;} - struct allocationAndRetentionPriority_t : AllocationAndRetentionPriority - { - static constexpr const char* name() {return "allocationAndRetentionPriority_t";} - using parent_t = AllocationAndRetentionPriority; - - }; - allocationAndRetentionPriority_t& ref_allocationAndRetentionPriority() {return allocationAndRetentionPriority;} - allocationAndRetentionPriority_t const& ref_allocationAndRetentionPriority() const {return allocationAndRetentionPriority;} - struct gbrQosInformation_t : GBR_QosInformation - { - static constexpr const char* name() {return "gbrQosInformation_t";} - using parent_t = GBR_QosInformation; - static constexpr bool optional = true; - - }; - gbrQosInformation_t& set_gbrQosInformation() { gbrQosInformation.setpresent(true); return gbrQosInformation;} - gbrQosInformation_t const* get_gbrQosInformation() const {return gbrQosInformation.is_valid() ? &gbrQosInformation : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(qCI); - v(allocationAndRetentionPriority); - v(gbrQosInformation); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(qCI); - v(allocationAndRetentionPriority); - v(gbrQosInformation); - v(iE_Extensions); - - }; - void clear() - { - qCI.clear(); - allocationAndRetentionPriority.clear(); - gbrQosInformation.clear(); - iE_Extensions.clear(); - - }; - private: - qCI_t qCI; - allocationAndRetentionPriority_t allocationAndRetentionPriority; - gbrQosInformation_t gbrQosInformation; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RAB-List ::= SEQUENCE (SIZE(1.. maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RAB-ItemIEs} } -*/ - -struct E_RAB_List_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RAB_List_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RAB_List : asn::sequenceof -{ - static constexpr const char* name() {return "E-RAB-List";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABUsageReport-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABUsageReport_Item_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABUsageReport-Item ::= SEQUENCE { - startTimeStamp OCTET STRING (SIZE(4)), - endTimeStamp OCTET STRING (SIZE(4)), - usageCountUL INTEGER (0..4294967295), - usageCountDL INTEGER (0..4294967295), - iE-Extensions ProtocolExtensionContainer { {E-RABUsageReport-Item-ExtIEs} } OPTIONAL, -... -} -*/ - -struct E_RABUsageReport_Item : asn::sequence<5, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABUsageReport-Item";} - using parent_t = asn::sequence<5, 0, true, 1>; - struct startTimeStamp_t : asn::ostring<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "startTimeStamp_t";} - using parent_t = asn::ostring<>; - - }; - - startTimeStamp_t& ref_startTimeStamp() {return startTimeStamp;} - startTimeStamp_t const& ref_startTimeStamp() const {return startTimeStamp;} - struct endTimeStamp_t : asn::ostring<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "endTimeStamp_t";} - using parent_t = asn::ostring<>; - - }; - - endTimeStamp_t& ref_endTimeStamp() {return endTimeStamp;} - endTimeStamp_t const& ref_endTimeStamp() const {return endTimeStamp;} - struct usageCountUL_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "usageCountUL_t";} - using parent_t = asn::integer<>; - - }; - - usageCountUL_t& ref_usageCountUL() {return usageCountUL;} - usageCountUL_t const& ref_usageCountUL() const {return usageCountUL;} - struct usageCountDL_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "usageCountDL_t";} - using parent_t = asn::integer<>; - - }; - - usageCountDL_t& ref_usageCountDL() {return usageCountDL;} - usageCountDL_t const& ref_usageCountDL() const {return usageCountDL;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(startTimeStamp); - v(endTimeStamp); - v(usageCountUL); - v(usageCountDL); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(startTimeStamp); - v(endTimeStamp); - v(usageCountUL); - v(usageCountDL); - v(iE_Extensions); - - }; - void clear() - { - startTimeStamp.clear(); - endTimeStamp.clear(); - usageCountUL.clear(); - usageCountDL.clear(); - iE_Extensions.clear(); - - }; - private: - startTimeStamp_t startTimeStamp; - endTimeStamp_t endTimeStamp; - usageCountUL_t usageCountUL; - usageCountDL_t usageCountDL; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABUsageReport-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABUsageReport-Item CRITICALITY ignore TYPE E-RABUsageReport-Item PRESENCE mandatory }, - ... -} -*/ - -struct E_RABUsageReport_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABUsageReport_Item() { set(id_E_RABUsageReport_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABUsageReport_Item)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABUsageReport_Item);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABUsageReport_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABUsageReport_Item& select_id_E_RABUsageReport_Item() { return set(1); } - E_RABUsageReport_Item const* get_id_E_RABUsageReport_Item() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABUsageReport_Item()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABUsageReport_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABUsageReport_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABUsageReportList ::= SEQUENCE (SIZE(1..maxnooftimeperiods)) OF ProtocolIE-Single-Container { {E-RABUsageReport-ItemIEs} } -*/ - -struct E_RABUsageReportList_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABUsageReportList_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABUsageReportList : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABUsageReportList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -EARFCN ::= INTEGER (0..maxEARFCN) -*/ - -struct EARFCN : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "EARFCN";} - using parent_t = asn::integer<>; - -}; - -/* -EARFCNExtension ::= INTEGER(maxEARFCNPlusOne..newmaxEARFCN, ...) -*/ - -struct EARFCNExtension : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "EARFCNExtension";} - using parent_t = asn::integer<>; - -}; - -/* -EN-DC-ResourceConfigurationExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct EN_DC_ResourceConfigurationExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -EN-DC-ResourceConfiguration ::= SEQUENCE { - pDCPatSgNB ENUMERATED {present, not-present, ...}, - mCGresources ENUMERATED {present, not-present, ...}, - sCGresources ENUMERATED {present, not-present, ...}, - iE-Extensions ProtocolExtensionContainer { {EN-DC-ResourceConfigurationExtIEs} } OPTIONAL, - ... -} -*/ - -struct EN_DC_ResourceConfiguration : asn::sequence<4, 0, true, 1> -{ - static constexpr const char* name() {return "EN-DC-ResourceConfiguration";} - using parent_t = asn::sequence<4, 0, true, 1>; - struct pDCPatSgNB_t : asn::enumerated<2, 0, true> - { - static constexpr const char* name() {return "pDCPatSgNB_t";} - using parent_t = asn::enumerated<2, 0, true>; - typedef enum { - present - ,not_present - } index_t; - - }; - - pDCPatSgNB_t& ref_pDCPatSgNB() {return pDCPatSgNB;} - pDCPatSgNB_t const& ref_pDCPatSgNB() const {return pDCPatSgNB;} - struct mCGresources_t : asn::enumerated<2, 0, true> - { - static constexpr const char* name() {return "mCGresources_t";} - using parent_t = asn::enumerated<2, 0, true>; - typedef enum { - present - ,not_present - } index_t; - - }; - - mCGresources_t& ref_mCGresources() {return mCGresources;} - mCGresources_t const& ref_mCGresources() const {return mCGresources;} - struct sCGresources_t : asn::enumerated<2, 0, true> - { - static constexpr const char* name() {return "sCGresources_t";} - using parent_t = asn::enumerated<2, 0, true>; - typedef enum { - present - ,not_present - } index_t; - - }; - - sCGresources_t& ref_sCGresources() {return sCGresources;} - sCGresources_t const& ref_sCGresources() const {return sCGresources;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(pDCPatSgNB); - v(mCGresources); - v(sCGresources); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(pDCPatSgNB); - v(mCGresources); - v(sCGresources); - v(iE_Extensions); - - }; - void clear() - { - pDCPatSgNB.clear(); - mCGresources.clear(); - sCGresources.clear(); - iE_Extensions.clear(); - - }; - private: - pDCPatSgNB_t pDCPatSgNB; - mCGresources_t mCGresources; - sCGresources_t sCGresources; - iE_Extensions_t iE_Extensions; - -}; -/* -ENB-ID ::= CHOICE { - macro-eNB-ID BIT STRING (SIZE (20)), - home-eNB-ID BIT STRING (SIZE (28)), - ... , - short-Macro-eNB-ID BIT STRING (SIZE(18)), - long-Macro-eNB-ID BIT STRING (SIZE(21)) -} -*/ - -struct ENB_ID : asn::choice<4, 2, true> -{ - static constexpr const char* name() {return "ENB-ID";} - using parent_t = asn::choice<4, 2, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 5;} - void set_unknown() { set_index(5); } - ~ENB_ID() {clear();} - struct macro_eNB_ID_t : asn::bstring<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "macro_eNB_ID_t";} - using parent_t = asn::bstring<>; - - }; - - struct home_eNB_ID_t : asn::bstring<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "home_eNB_ID_t";} - using parent_t = asn::bstring<>; - - }; - - struct short_Macro_eNB_ID_t : asn::bstring<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "short_Macro_eNB_ID_t";} - using parent_t = asn::bstring<>; - - }; - - struct long_Macro_eNB_ID_t : asn::bstring<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "long_Macro_eNB_ID_t";} - using parent_t = asn::bstring<>; - - }; - - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - case 3: set_index(3); return v(var.build()); - case 4: set_index(4); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - case 3: return v(var.as()); - case 4: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - - } - macro_eNB_ID_t& select_macro_eNB_ID() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - macro_eNB_ID_t const* get_macro_eNB_ID() const { if(get_index() == 1) { return &var.as();} return nullptr; } - home_eNB_ID_t& select_home_eNB_ID() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - home_eNB_ID_t const* get_home_eNB_ID() const { if(get_index() == 2) { return &var.as();} return nullptr; } - short_Macro_eNB_ID_t& select_short_Macro_eNB_ID() { if(get_index() != 3) { clear(); set_index(3); return var.build();} return var.as();} - short_Macro_eNB_ID_t const* get_short_Macro_eNB_ID() const { if(get_index() == 3) { return &var.as();} return nullptr; } - long_Macro_eNB_ID_t& select_long_Macro_eNB_ID() { if(get_index() != 4) { clear(); set_index(4); return var.build();} return var.as();} - long_Macro_eNB_ID_t const* get_long_Macro_eNB_ID() const { if(get_index() == 4) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(macro_eNB_ID_t)]; - char dummy2[sizeof(home_eNB_ID_t)]; - char dummy3[sizeof(short_Macro_eNB_ID_t)]; - char dummy4[sizeof(long_Macro_eNB_ID_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -EPLMNs ::= SEQUENCE (SIZE(1..maxnoofEPLMNs)) OF PLMN-Identity -*/ - -struct EPLMNs_elm : PLMN_Identity -{ - static constexpr const char* name() {return "EPLMNs_elm";} - using parent_t = PLMN_Identity; - -}; -struct EPLMNs : asn::sequenceof -{ - static constexpr const char* name() {return "EPLMNs";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -UserPlaneTrafficActivityReport ::= ENUMERATED {inactive, re-activated, ...} -*/ - -struct UserPlaneTrafficActivityReport : asn::enumerated<2, 0, true> -{ - static constexpr const char* name() {return "UserPlaneTrafficActivityReport";} - using parent_t = asn::enumerated<2, 0, true>; - typedef enum { - inactive - ,re_activated - } index_t; - -}; - -/* -ERABActivityNotifyItem-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct ERABActivityNotifyItem_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ERABActivityNotifyItem ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - activityReport UserPlaneTrafficActivityReport, - iE-Extensions ProtocolExtensionContainer { {ERABActivityNotifyItem-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct ERABActivityNotifyItem : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "ERABActivityNotifyItem";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct activityReport_t : UserPlaneTrafficActivityReport - { - static constexpr const char* name() {return "activityReport_t";} - using parent_t = UserPlaneTrafficActivityReport; - - }; - activityReport_t& ref_activityReport() {return activityReport;} - activityReport_t const& ref_activityReport() const {return activityReport;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(activityReport); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(activityReport); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - activityReport.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - activityReport_t activityReport; - iE_Extensions_t iE_Extensions; - -}; -/* -ERABActivityNotifyItemList ::= SEQUENCE (SIZE (0..maxnoofBearers)) OF ERABActivityNotifyItem -*/ - -struct ERABActivityNotifyItemList_elm : ERABActivityNotifyItem -{ - static constexpr const char* name() {return "ERABActivityNotifyItemList_elm";} - using parent_t = ERABActivityNotifyItem; - -}; -struct ERABActivityNotifyItemList : asn::sequenceof -{ - static constexpr const char* name() {return "ERABActivityNotifyItemList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -Transmission-Bandwidth ::= ENUMERATED { - bw6, - bw15, - bw25, - bw50, - bw75, - bw100, - ..., - bw1 -} -*/ - -struct Transmission_Bandwidth : asn::enumerated<7, 1, true> -{ - static constexpr const char* name() {return "Transmission-Bandwidth";} - using parent_t = asn::enumerated<7, 1, true>; - typedef enum { - bw6 - ,bw15 - ,bw25 - ,bw50 - ,bw75 - ,bw100 - ,bw1 - } index_t; - -}; - -/* -OffsetOfNbiotChannelNumberToEARFCN ::= ENUMERATED { - minusTen, - minusNine, - minusEight, - minusSeven, - minusSix, - minusFive, - minusFour, - minusThree, - minusTwo, - minusOne, - minusZeroDotFive, - zero, - one, - two, - three, - four, - five, - six, - seven, - eight, - nine, - ... -} -*/ - -struct OffsetOfNbiotChannelNumberToEARFCN : asn::enumerated<21, 0, true> -{ - static constexpr const char* name() {return "OffsetOfNbiotChannelNumberToEARFCN";} - using parent_t = asn::enumerated<21, 0, true>; - typedef enum { - minusTen - ,minusNine - ,minusEight - ,minusSeven - ,minusSix - ,minusFive - ,minusFour - ,minusThree - ,minusTwo - ,minusOne - ,minusZeroDotFive - ,zero - ,one - ,two - ,three - ,four - ,five - ,six - ,seven - ,eight - ,nine - } index_t; - -}; - -/* -NRS-NSSS-PowerOffset ::= ENUMERATED { minusThree, zero, three, ...} -*/ - -struct NRS_NSSS_PowerOffset : asn::enumerated<3, 0, true> -{ - static constexpr const char* name() {return "NRS-NSSS-PowerOffset";} - using parent_t = asn::enumerated<3, 0, true>; - typedef enum { - minusThree - ,zero - ,three - } index_t; - -}; - -/* -NSSS-NumOccasionDifferentPrecoder ::= ENUMERATED { two, four, eight, ...} -*/ - -struct NSSS_NumOccasionDifferentPrecoder : asn::enumerated<3, 0, true> -{ - static constexpr const char* name() {return "NSSS-NumOccasionDifferentPrecoder";} - using parent_t = asn::enumerated<3, 0, true>; - typedef enum { - two - ,four - ,eight - } index_t; - -}; - -/* -FDD-Info-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-UL-EARFCNExtension CRITICALITY reject EXTENSION EARFCNExtension PRESENCE optional}| - { ID id-DL-EARFCNExtension CRITICALITY reject EXTENSION EARFCNExtension PRESENCE optional}| - { ID id-OffsetOfNbiotChannelNumberToDL-EARFCN CRITICALITY reject EXTENSION OffsetOfNbiotChannelNumberToEARFCN PRESENCE optional}| - { ID id-OffsetOfNbiotChannelNumberToUL-EARFCN CRITICALITY reject EXTENSION OffsetOfNbiotChannelNumberToEARFCN PRESENCE optional}| - { ID id-NRS-NSSS-PowerOffset CRITICALITY ignore EXTENSION NRS-NSSS-PowerOffset PRESENCE optional}| - { ID id-NSSS-NumOccasionDifferentPrecoder CRITICALITY ignore EXTENSION NSSS-NumOccasionDifferentPrecoder PRESENCE optional}, - ... -} -*/ - -struct FDD_Info_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_UL_EARFCNExtension() { set(id_UL_EARFCNExtension); type=1;} - void select_id_DL_EARFCNExtension() { set(id_DL_EARFCNExtension); type=2;} - void select_id_OffsetOfNbiotChannelNumberToDL_EARFCN() { set(id_OffsetOfNbiotChannelNumberToDL_EARFCN); type=3;} - void select_id_OffsetOfNbiotChannelNumberToUL_EARFCN() { set(id_OffsetOfNbiotChannelNumberToUL_EARFCN); type=4;} - void select_id_NRS_NSSS_PowerOffset() { set(id_NRS_NSSS_PowerOffset); type=5;} - void select_id_NSSS_NumOccasionDifferentPrecoder() { set(id_NSSS_NumOccasionDifferentPrecoder); type=6;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_UL_EARFCNExtension)) { type = 1; return true; } - else if(equal(id_DL_EARFCNExtension)) { type = 2; return true; } - else if(equal(id_OffsetOfNbiotChannelNumberToDL_EARFCN)) { type = 3; return true; } - else if(equal(id_OffsetOfNbiotChannelNumberToUL_EARFCN)) { type = 4; return true; } - else if(equal(id_NRS_NSSS_PowerOffset)) { type = 5; return true; } - else if(equal(id_NSSS_NumOccasionDifferentPrecoder)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_UL_EARFCNExtension);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_DL_EARFCNExtension);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_OffsetOfNbiotChannelNumberToDL_EARFCN);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_OffsetOfNbiotChannelNumberToUL_EARFCN);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_NRS_NSSS_PowerOffset);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_NSSS_NumOccasionDifferentPrecoder);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_UL_EARFCNExtension() { set(reject); type=1;} - void select_id_DL_EARFCNExtension() { set(reject); type=2;} - void select_id_OffsetOfNbiotChannelNumberToDL_EARFCN() { set(reject); type=3;} - void select_id_OffsetOfNbiotChannelNumberToUL_EARFCN() { set(reject); type=4;} - void select_id_NRS_NSSS_PowerOffset() { set(ignore); type=5;} - void select_id_NSSS_NumOccasionDifferentPrecoder() { set(ignore); type=6;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(reject)) { type = 3; return true; } - else if(equal(reject)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else if(equal(ignore)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(reject);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(reject);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(ignore);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - EARFCNExtension& select_id_UL_EARFCNExtension() { return set(1); } - EARFCNExtension const* get_id_UL_EARFCNExtension() const { return get(1); } - EARFCNExtension& select_id_DL_EARFCNExtension() { return set(2); } - EARFCNExtension const* get_id_DL_EARFCNExtension() const { return get(2); } - OffsetOfNbiotChannelNumberToEARFCN& select_id_OffsetOfNbiotChannelNumberToDL_EARFCN() { return set(3); } - OffsetOfNbiotChannelNumberToEARFCN const* get_id_OffsetOfNbiotChannelNumberToDL_EARFCN() const { return get(3); } - OffsetOfNbiotChannelNumberToEARFCN& select_id_OffsetOfNbiotChannelNumberToUL_EARFCN() { return set(4); } - OffsetOfNbiotChannelNumberToEARFCN const* get_id_OffsetOfNbiotChannelNumberToUL_EARFCN() const { return get(4); } - NRS_NSSS_PowerOffset& select_id_NRS_NSSS_PowerOffset() { return set(5); } - NRS_NSSS_PowerOffset const* get_id_NRS_NSSS_PowerOffset() const { return get(5); } - NSSS_NumOccasionDifferentPrecoder& select_id_NSSS_NumOccasionDifferentPrecoder() { return set(6); } - NSSS_NumOccasionDifferentPrecoder const* get_id_NSSS_NumOccasionDifferentPrecoder() const { return get(6); } - bool is_unknown() const { return type == 7; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_UL_EARFCNExtension()); return true; - case 2: v(select_id_DL_EARFCNExtension()); return true; - case 3: v(select_id_OffsetOfNbiotChannelNumberToDL_EARFCN()); return true; - case 4: v(select_id_OffsetOfNbiotChannelNumberToUL_EARFCN()); return true; - case 5: v(select_id_NRS_NSSS_PowerOffset()); return true; - case 6: v(select_id_NSSS_NumOccasionDifferentPrecoder()); return true; - case 7: if(type != 7) {clear(); asn::base::set();} type = 7; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(EARFCNExtension)]; - char dummy2[sizeof(NRS_NSSS_PowerOffset)]; - char dummy3[sizeof(NSSS_NumOccasionDifferentPrecoder)]; - char dummy4[sizeof(OffsetOfNbiotChannelNumberToEARFCN)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_UL_EARFCNExtension() { set(optional); type=1;} - void select_id_DL_EARFCNExtension() { set(optional); type=2;} - void select_id_OffsetOfNbiotChannelNumberToDL_EARFCN() { set(optional); type=3;} - void select_id_OffsetOfNbiotChannelNumberToUL_EARFCN() { set(optional); type=4;} - void select_id_NRS_NSSS_PowerOffset() { set(optional); type=5;} - void select_id_NSSS_NumOccasionDifferentPrecoder() { set(optional); type=6;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -FDD-Info ::= SEQUENCE { - uL-EARFCN EARFCN, - dL-EARFCN EARFCN, - uL-Transmission-Bandwidth Transmission-Bandwidth, - dL-Transmission-Bandwidth Transmission-Bandwidth, - iE-Extensions ProtocolExtensionContainer { {FDD-Info-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct FDD_Info : asn::sequence<5, 0, true, 1> -{ - static constexpr const char* name() {return "FDD-Info";} - using parent_t = asn::sequence<5, 0, true, 1>; - struct uL_EARFCN_t : EARFCN - { - static constexpr const char* name() {return "uL_EARFCN_t";} - using parent_t = EARFCN; - - }; - uL_EARFCN_t& ref_uL_EARFCN() {return uL_EARFCN;} - uL_EARFCN_t const& ref_uL_EARFCN() const {return uL_EARFCN;} - struct dL_EARFCN_t : EARFCN - { - static constexpr const char* name() {return "dL_EARFCN_t";} - using parent_t = EARFCN; - - }; - dL_EARFCN_t& ref_dL_EARFCN() {return dL_EARFCN;} - dL_EARFCN_t const& ref_dL_EARFCN() const {return dL_EARFCN;} - struct uL_Transmission_Bandwidth_t : Transmission_Bandwidth - { - static constexpr const char* name() {return "uL_Transmission_Bandwidth_t";} - using parent_t = Transmission_Bandwidth; - - }; - uL_Transmission_Bandwidth_t& ref_uL_Transmission_Bandwidth() {return uL_Transmission_Bandwidth;} - uL_Transmission_Bandwidth_t const& ref_uL_Transmission_Bandwidth() const {return uL_Transmission_Bandwidth;} - struct dL_Transmission_Bandwidth_t : Transmission_Bandwidth - { - static constexpr const char* name() {return "dL_Transmission_Bandwidth_t";} - using parent_t = Transmission_Bandwidth; - - }; - dL_Transmission_Bandwidth_t& ref_dL_Transmission_Bandwidth() {return dL_Transmission_Bandwidth;} - dL_Transmission_Bandwidth_t const& ref_dL_Transmission_Bandwidth() const {return dL_Transmission_Bandwidth;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(uL_EARFCN); - v(dL_EARFCN); - v(uL_Transmission_Bandwidth); - v(dL_Transmission_Bandwidth); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(uL_EARFCN); - v(dL_EARFCN); - v(uL_Transmission_Bandwidth); - v(dL_Transmission_Bandwidth); - v(iE_Extensions); - - }; - void clear() - { - uL_EARFCN.clear(); - dL_EARFCN.clear(); - uL_Transmission_Bandwidth.clear(); - dL_Transmission_Bandwidth.clear(); - iE_Extensions.clear(); - - }; - private: - uL_EARFCN_t uL_EARFCN; - dL_EARFCN_t dL_EARFCN; - uL_Transmission_Bandwidth_t uL_Transmission_Bandwidth; - dL_Transmission_Bandwidth_t dL_Transmission_Bandwidth; - iE_Extensions_t iE_Extensions; - -}; -/* -SubframeAssignment ::= ENUMERATED { - sa0, - sa1, - sa2, - sa3, - sa4, - sa5, - sa6, - ... -} -*/ - -struct SubframeAssignment : asn::enumerated<7, 0, true> -{ - static constexpr const char* name() {return "SubframeAssignment";} - using parent_t = asn::enumerated<7, 0, true>; - typedef enum { - sa0 - ,sa1 - ,sa2 - ,sa3 - ,sa4 - ,sa5 - ,sa6 - } index_t; - -}; - -/* -SpecialSubframePatterns ::= ENUMERATED { - ssp0, - ssp1, - ssp2, - ssp3, - ssp4, - ssp5, - ssp6, - ssp7, - ssp8, - ... -} -*/ - -struct SpecialSubframePatterns : asn::enumerated<9, 0, true> -{ - static constexpr const char* name() {return "SpecialSubframePatterns";} - using parent_t = asn::enumerated<9, 0, true>; - typedef enum { - ssp0 - ,ssp1 - ,ssp2 - ,ssp3 - ,ssp4 - ,ssp5 - ,ssp6 - ,ssp7 - ,ssp8 - } index_t; - -}; - -/* -SpecialSubframe-Info-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct SpecialSubframe_Info_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SpecialSubframe-Info ::= SEQUENCE { - specialSubframePatterns SpecialSubframePatterns, - cyclicPrefixDL CyclicPrefixDL, - cyclicPrefixUL CyclicPrefixUL, - iE-Extensions ProtocolExtensionContainer { {SpecialSubframe-Info-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct SpecialSubframe_Info : asn::sequence<4, 0, true, 1> -{ - static constexpr const char* name() {return "SpecialSubframe-Info";} - using parent_t = asn::sequence<4, 0, true, 1>; - struct specialSubframePatterns_t : SpecialSubframePatterns - { - static constexpr const char* name() {return "specialSubframePatterns_t";} - using parent_t = SpecialSubframePatterns; - - }; - specialSubframePatterns_t& ref_specialSubframePatterns() {return specialSubframePatterns;} - specialSubframePatterns_t const& ref_specialSubframePatterns() const {return specialSubframePatterns;} - struct cyclicPrefixDL_t : CyclicPrefixDL - { - static constexpr const char* name() {return "cyclicPrefixDL_t";} - using parent_t = CyclicPrefixDL; - - }; - cyclicPrefixDL_t& ref_cyclicPrefixDL() {return cyclicPrefixDL;} - cyclicPrefixDL_t const& ref_cyclicPrefixDL() const {return cyclicPrefixDL;} - struct cyclicPrefixUL_t : CyclicPrefixUL - { - static constexpr const char* name() {return "cyclicPrefixUL_t";} - using parent_t = CyclicPrefixUL; - - }; - cyclicPrefixUL_t& ref_cyclicPrefixUL() {return cyclicPrefixUL;} - cyclicPrefixUL_t const& ref_cyclicPrefixUL() const {return cyclicPrefixUL;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(specialSubframePatterns); - v(cyclicPrefixDL); - v(cyclicPrefixUL); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(specialSubframePatterns); - v(cyclicPrefixDL); - v(cyclicPrefixUL); - v(iE_Extensions); - - }; - void clear() - { - specialSubframePatterns.clear(); - cyclicPrefixDL.clear(); - cyclicPrefixUL.clear(); - iE_Extensions.clear(); - - }; - private: - specialSubframePatterns_t specialSubframePatterns; - cyclicPrefixDL_t cyclicPrefixDL; - cyclicPrefixUL_t cyclicPrefixUL; - iE_Extensions_t iE_Extensions; - -}; -/* -TDD-Info-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-AdditionalSpecialSubframe-Info CRITICALITY ignore EXTENSION AdditionalSpecialSubframe-Info PRESENCE optional}| - { ID id-eARFCNExtension CRITICALITY reject EXTENSION EARFCNExtension PRESENCE optional}| - { ID id-AdditionalSpecialSubframeExtension-Info CRITICALITY ignore EXTENSION AdditionalSpecialSubframeExtension-Info PRESENCE optional}, - ... -} -*/ - -struct TDD_Info_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_AdditionalSpecialSubframe_Info() { set(id_AdditionalSpecialSubframe_Info); type=1;} - void select_id_eARFCNExtension() { set(id_eARFCNExtension); type=2;} - void select_id_AdditionalSpecialSubframeExtension_Info() { set(id_AdditionalSpecialSubframeExtension_Info); type=3;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_AdditionalSpecialSubframe_Info)) { type = 1; return true; } - else if(equal(id_eARFCNExtension)) { type = 2; return true; } - else if(equal(id_AdditionalSpecialSubframeExtension_Info)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_AdditionalSpecialSubframe_Info);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_eARFCNExtension);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_AdditionalSpecialSubframeExtension_Info);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_AdditionalSpecialSubframe_Info() { set(ignore); type=1;} - void select_id_eARFCNExtension() { set(reject); type=2;} - void select_id_AdditionalSpecialSubframeExtension_Info() { set(ignore); type=3;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - AdditionalSpecialSubframe_Info& select_id_AdditionalSpecialSubframe_Info() { return set(1); } - AdditionalSpecialSubframe_Info const* get_id_AdditionalSpecialSubframe_Info() const { return get(1); } - EARFCNExtension& select_id_eARFCNExtension() { return set(2); } - EARFCNExtension const* get_id_eARFCNExtension() const { return get(2); } - AdditionalSpecialSubframeExtension_Info& select_id_AdditionalSpecialSubframeExtension_Info() { return set(3); } - AdditionalSpecialSubframeExtension_Info const* get_id_AdditionalSpecialSubframeExtension_Info() const { return get(3); } - bool is_unknown() const { return type == 4; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_AdditionalSpecialSubframe_Info()); return true; - case 2: v(select_id_eARFCNExtension()); return true; - case 3: v(select_id_AdditionalSpecialSubframeExtension_Info()); return true; - case 4: if(type != 4) {clear(); asn::base::set();} type = 4; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(AdditionalSpecialSubframeExtension_Info)]; - char dummy2[sizeof(AdditionalSpecialSubframe_Info)]; - char dummy3[sizeof(EARFCNExtension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_AdditionalSpecialSubframe_Info() { set(optional); type=1;} - void select_id_eARFCNExtension() { set(optional); type=2;} - void select_id_AdditionalSpecialSubframeExtension_Info() { set(optional); type=3;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -TDD-Info ::= SEQUENCE { - eARFCN EARFCN, - transmission-Bandwidth Transmission-Bandwidth, - subframeAssignment SubframeAssignment, - specialSubframe-Info SpecialSubframe-Info, - iE-Extensions ProtocolExtensionContainer { {TDD-Info-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct TDD_Info : asn::sequence<5, 0, true, 1> -{ - static constexpr const char* name() {return "TDD-Info";} - using parent_t = asn::sequence<5, 0, true, 1>; - struct eARFCN_t : EARFCN - { - static constexpr const char* name() {return "eARFCN_t";} - using parent_t = EARFCN; - - }; - eARFCN_t& ref_eARFCN() {return eARFCN;} - eARFCN_t const& ref_eARFCN() const {return eARFCN;} - struct transmission_Bandwidth_t : Transmission_Bandwidth - { - static constexpr const char* name() {return "transmission_Bandwidth_t";} - using parent_t = Transmission_Bandwidth; - - }; - transmission_Bandwidth_t& ref_transmission_Bandwidth() {return transmission_Bandwidth;} - transmission_Bandwidth_t const& ref_transmission_Bandwidth() const {return transmission_Bandwidth;} - struct subframeAssignment_t : SubframeAssignment - { - static constexpr const char* name() {return "subframeAssignment_t";} - using parent_t = SubframeAssignment; - - }; - subframeAssignment_t& ref_subframeAssignment() {return subframeAssignment;} - subframeAssignment_t const& ref_subframeAssignment() const {return subframeAssignment;} - struct specialSubframe_Info_t : SpecialSubframe_Info - { - static constexpr const char* name() {return "specialSubframe_Info_t";} - using parent_t = SpecialSubframe_Info; - - }; - specialSubframe_Info_t& ref_specialSubframe_Info() {return specialSubframe_Info;} - specialSubframe_Info_t const& ref_specialSubframe_Info() const {return specialSubframe_Info;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(eARFCN); - v(transmission_Bandwidth); - v(subframeAssignment); - v(specialSubframe_Info); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(eARFCN); - v(transmission_Bandwidth); - v(subframeAssignment); - v(specialSubframe_Info); - v(iE_Extensions); - - }; - void clear() - { - eARFCN.clear(); - transmission_Bandwidth.clear(); - subframeAssignment.clear(); - specialSubframe_Info.clear(); - iE_Extensions.clear(); - - }; - private: - eARFCN_t eARFCN; - transmission_Bandwidth_t transmission_Bandwidth; - subframeAssignment_t subframeAssignment; - specialSubframe_Info_t specialSubframe_Info; - iE_Extensions_t iE_Extensions; - -}; -/* -EUTRA-Mode-Info ::= CHOICE { - fDD FDD-Info, - tDD TDD-Info, - ... -} -*/ - -struct EUTRA_Mode_Info : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "EUTRA-Mode-Info";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~EUTRA_Mode_Info() {clear();} - struct fDD_t : FDD_Info - { - static constexpr const char* name() {return "fDD_t";} - using parent_t = FDD_Info; - - }; - struct tDD_t : TDD_Info - { - static constexpr const char* name() {return "tDD_t";} - using parent_t = TDD_Info; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - fDD_t& select_fDD() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - fDD_t const* get_fDD() const { if(get_index() == 1) { return &var.as();} return nullptr; } - tDD_t& select_tDD() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - tDD_t const* get_tDD() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(fDD_t)]; - char dummy2[sizeof(tDD_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -EUTRANTraceID ::= OCTET STRING (SIZE (8)) -*/ - -struct EUTRANTraceID : asn::ostring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "EUTRANTraceID";} - using parent_t = asn::ostring<>; - -}; - -/* -EncryptionAlgorithms ::= BIT STRING (SIZE (16, ...)) -*/ - -struct EncryptionAlgorithms : asn::bstring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "EncryptionAlgorithms";} - using parent_t = asn::bstring<>; - -}; - -/* -RNTP-Threshold ::= ENUMERATED { - minusInfinity, - minusEleven, - minusTen, - minusNine, - minusEight, - minusSeven, - minusSix, - minusFive, - minusFour, - minusThree, - minusTwo, - minusOne, - zero, - one, - two, - three, - ... -} -*/ - -struct RNTP_Threshold : asn::enumerated<16, 0, true> -{ - static constexpr const char* name() {return "RNTP-Threshold";} - using parent_t = asn::enumerated<16, 0, true>; - typedef enum { - minusInfinity - ,minusEleven - ,minusTen - ,minusNine - ,minusEight - ,minusSeven - ,minusSix - ,minusFive - ,minusFour - ,minusThree - ,minusTwo - ,minusOne - ,zero - ,one - ,two - ,three - } index_t; - -}; - -/* -EnhancedRNTPStartTime-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct EnhancedRNTPStartTime_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -EnhancedRNTPStartTime ::= SEQUENCE { - startSFN INTEGER (0..1023, ...), - startSubframeNumber INTEGER (0..9, ...), - iE-Extensions ProtocolExtensionContainer { {EnhancedRNTPStartTime-ExtIEs} } OPTIONAL, - ... - } -*/ - -struct EnhancedRNTPStartTime : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "EnhancedRNTPStartTime";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct startSFN_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "startSFN_t";} - using parent_t = asn::integer<>; - - }; - - startSFN_t& ref_startSFN() {return startSFN;} - startSFN_t const& ref_startSFN() const {return startSFN;} - struct startSubframeNumber_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "startSubframeNumber_t";} - using parent_t = asn::integer<>; - - }; - - startSubframeNumber_t& ref_startSubframeNumber() {return startSubframeNumber;} - startSubframeNumber_t const& ref_startSubframeNumber() const {return startSubframeNumber;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(startSFN); - v(startSubframeNumber); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(startSFN); - v(startSubframeNumber); - v(iE_Extensions); - - }; - void clear() - { - startSFN.clear(); - startSubframeNumber.clear(); - iE_Extensions.clear(); - - }; - private: - startSFN_t startSFN; - startSubframeNumber_t startSubframeNumber; - iE_Extensions_t iE_Extensions; - -}; -/* -EnhancedRNTP-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct EnhancedRNTP_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -EnhancedRNTP ::= SEQUENCE { - enhancedRNTPBitmap BIT STRING (SIZE(12..8800, ...)), - rNTP-High-Power-Threshold RNTP-Threshold, - enhancedRNTPStartTime EnhancedRNTPStartTime OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {EnhancedRNTP-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct EnhancedRNTP : asn::sequence<4, 0, true, 2> -{ - static constexpr const char* name() {return "EnhancedRNTP";} - using parent_t = asn::sequence<4, 0, true, 2>; - struct enhancedRNTPBitmap_t : asn::bstring<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "enhancedRNTPBitmap_t";} - using parent_t = asn::bstring<>; - - }; - - enhancedRNTPBitmap_t& ref_enhancedRNTPBitmap() {return enhancedRNTPBitmap;} - enhancedRNTPBitmap_t const& ref_enhancedRNTPBitmap() const {return enhancedRNTPBitmap;} - struct rNTP_High_Power_Threshold_t : RNTP_Threshold - { - static constexpr const char* name() {return "rNTP_High_Power_Threshold_t";} - using parent_t = RNTP_Threshold; - - }; - rNTP_High_Power_Threshold_t& ref_rNTP_High_Power_Threshold() {return rNTP_High_Power_Threshold;} - rNTP_High_Power_Threshold_t const& ref_rNTP_High_Power_Threshold() const {return rNTP_High_Power_Threshold;} - struct enhancedRNTPStartTime_t : EnhancedRNTPStartTime - { - static constexpr const char* name() {return "enhancedRNTPStartTime_t";} - using parent_t = EnhancedRNTPStartTime; - static constexpr bool optional = true; - - }; - enhancedRNTPStartTime_t& set_enhancedRNTPStartTime() { enhancedRNTPStartTime.setpresent(true); return enhancedRNTPStartTime;} - enhancedRNTPStartTime_t const* get_enhancedRNTPStartTime() const {return enhancedRNTPStartTime.is_valid() ? &enhancedRNTPStartTime : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(enhancedRNTPBitmap); - v(rNTP_High_Power_Threshold); - v(enhancedRNTPStartTime); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(enhancedRNTPBitmap); - v(rNTP_High_Power_Threshold); - v(enhancedRNTPStartTime); - v(iE_Extensions); - - }; - void clear() - { - enhancedRNTPBitmap.clear(); - rNTP_High_Power_Threshold.clear(); - enhancedRNTPStartTime.clear(); - iE_Extensions.clear(); - - }; - private: - enhancedRNTPBitmap_t enhancedRNTPBitmap; - rNTP_High_Power_Threshold_t rNTP_High_Power_Threshold; - enhancedRNTPStartTime_t enhancedRNTPStartTime; - iE_Extensions_t iE_Extensions; - -}; -/* -EventType ::= ENUMERATED{ - change-of-serving-cell, - ... -} -*/ - -struct EventType : asn::enumerated<1, 0, true> -{ - static constexpr const char* name() {return "EventType";} - using parent_t = asn::enumerated<1, 0, true>; - typedef enum { - change_of_serving_cell - } index_t; - -}; - -/* -ExpectedActivityPeriod ::= INTEGER (1..30|40|50|60|80|100|120|150|180|181,...) -*/ - -struct ExpectedActivityPeriod : asn::integer<> -{ - using constraint_t = asn::constraints,asn::one<40>,asn::one<50>,asn::one<60>,asn::one<80>,asn::one<100>,asn::one<120>,asn::one<150>,asn::one<180>,asn::one<181>>; - static constexpr const char* name() {return "ExpectedActivityPeriod";} - using parent_t = asn::integer<>; - -}; - -/* -ExpectedHOInterval ::= ENUMERATED { - sec15, sec30, sec60, sec90, sec120, sec180, long-time, - ... -} -*/ - -struct ExpectedHOInterval : asn::enumerated<7, 0, true> -{ - static constexpr const char* name() {return "ExpectedHOInterval";} - using parent_t = asn::enumerated<7, 0, true>; - typedef enum { - sec15 - ,sec30 - ,sec60 - ,sec90 - ,sec120 - ,sec180 - ,long_time - } index_t; - -}; - -/* -ExpectedIdlePeriod ::= INTEGER (1..30|40|50|60|80|100|120|150|180|181,...) -*/ - -struct ExpectedIdlePeriod : asn::integer<> -{ - using constraint_t = asn::constraints,asn::one<40>,asn::one<50>,asn::one<60>,asn::one<80>,asn::one<100>,asn::one<120>,asn::one<150>,asn::one<180>,asn::one<181>>; - static constexpr const char* name() {return "ExpectedIdlePeriod";} - using parent_t = asn::integer<>; - -}; - -/* -SourceOfUEActivityBehaviourInformation ::= ENUMERATED { - subscription-information, - statistics, - ... -} -*/ - -struct SourceOfUEActivityBehaviourInformation : asn::enumerated<2, 0, true> -{ - static constexpr const char* name() {return "SourceOfUEActivityBehaviourInformation";} - using parent_t = asn::enumerated<2, 0, true>; - typedef enum { - subscription_information - ,statistics - } index_t; - -}; - -/* -ExpectedUEActivityBehaviour-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct ExpectedUEActivityBehaviour_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ExpectedUEActivityBehaviour ::= SEQUENCE { - expectedActivityPeriod ExpectedActivityPeriod OPTIONAL, - expectedIdlePeriod ExpectedIdlePeriod OPTIONAL, - sourceofUEActivityBehaviourInformation SourceOfUEActivityBehaviourInformation OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {ExpectedUEActivityBehaviour-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct ExpectedUEActivityBehaviour : asn::sequence<4, 0, true, 4> -{ - static constexpr const char* name() {return "ExpectedUEActivityBehaviour";} - using parent_t = asn::sequence<4, 0, true, 4>; - struct expectedActivityPeriod_t : ExpectedActivityPeriod - { - static constexpr const char* name() {return "expectedActivityPeriod_t";} - using parent_t = ExpectedActivityPeriod; - static constexpr bool optional = true; - - }; - expectedActivityPeriod_t& set_expectedActivityPeriod() { expectedActivityPeriod.setpresent(true); return expectedActivityPeriod;} - expectedActivityPeriod_t const* get_expectedActivityPeriod() const {return expectedActivityPeriod.is_valid() ? &expectedActivityPeriod : nullptr;} - struct expectedIdlePeriod_t : ExpectedIdlePeriod - { - static constexpr const char* name() {return "expectedIdlePeriod_t";} - using parent_t = ExpectedIdlePeriod; - static constexpr bool optional = true; - - }; - expectedIdlePeriod_t& set_expectedIdlePeriod() { expectedIdlePeriod.setpresent(true); return expectedIdlePeriod;} - expectedIdlePeriod_t const* get_expectedIdlePeriod() const {return expectedIdlePeriod.is_valid() ? &expectedIdlePeriod : nullptr;} - struct sourceofUEActivityBehaviourInformation_t : SourceOfUEActivityBehaviourInformation - { - static constexpr const char* name() {return "sourceofUEActivityBehaviourInformation_t";} - using parent_t = SourceOfUEActivityBehaviourInformation; - static constexpr bool optional = true; - - }; - sourceofUEActivityBehaviourInformation_t& set_sourceofUEActivityBehaviourInformation() { sourceofUEActivityBehaviourInformation.setpresent(true); return sourceofUEActivityBehaviourInformation;} - sourceofUEActivityBehaviourInformation_t const* get_sourceofUEActivityBehaviourInformation() const {return sourceofUEActivityBehaviourInformation.is_valid() ? &sourceofUEActivityBehaviourInformation : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(expectedActivityPeriod); - v(expectedIdlePeriod); - v(sourceofUEActivityBehaviourInformation); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(expectedActivityPeriod); - v(expectedIdlePeriod); - v(sourceofUEActivityBehaviourInformation); - v(iE_Extensions); - - }; - void clear() - { - expectedActivityPeriod.clear(); - expectedIdlePeriod.clear(); - sourceofUEActivityBehaviourInformation.clear(); - iE_Extensions.clear(); - - }; - private: - expectedActivityPeriod_t expectedActivityPeriod; - expectedIdlePeriod_t expectedIdlePeriod; - sourceofUEActivityBehaviourInformation_t sourceofUEActivityBehaviourInformation; - iE_Extensions_t iE_Extensions; - -}; -/* -ExpectedUEBehaviour-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct ExpectedUEBehaviour_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ExpectedUEBehaviour ::= SEQUENCE { - expectedActivity ExpectedUEActivityBehaviour OPTIONAL, - expectedHOInterval ExpectedHOInterval OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {ExpectedUEBehaviour-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct ExpectedUEBehaviour : asn::sequence<3, 0, true, 3> -{ - static constexpr const char* name() {return "ExpectedUEBehaviour";} - using parent_t = asn::sequence<3, 0, true, 3>; - struct expectedActivity_t : ExpectedUEActivityBehaviour - { - static constexpr const char* name() {return "expectedActivity_t";} - using parent_t = ExpectedUEActivityBehaviour; - static constexpr bool optional = true; - - }; - expectedActivity_t& set_expectedActivity() { expectedActivity.setpresent(true); return expectedActivity;} - expectedActivity_t const* get_expectedActivity() const {return expectedActivity.is_valid() ? &expectedActivity : nullptr;} - struct expectedHOInterval_t : ExpectedHOInterval - { - static constexpr const char* name() {return "expectedHOInterval_t";} - using parent_t = ExpectedHOInterval; - static constexpr bool optional = true; - - }; - expectedHOInterval_t& set_expectedHOInterval() { expectedHOInterval.setpresent(true); return expectedHOInterval;} - expectedHOInterval_t const* get_expectedHOInterval() const {return expectedHOInterval.is_valid() ? &expectedHOInterval : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(expectedActivity); - v(expectedHOInterval); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(expectedActivity); - v(expectedHOInterval); - v(iE_Extensions); - - }; - void clear() - { - expectedActivity.clear(); - expectedHOInterval.clear(); - iE_Extensions.clear(); - - }; - private: - expectedActivity_t expectedActivity; - expectedHOInterval_t expectedHOInterval; - iE_Extensions_t iE_Extensions; - -}; -/* -UL-InterferenceOverloadIndication-Item ::= ENUMERATED { - high-interference, - medium-interference, - low-interference, - ... -} -*/ - -struct UL_InterferenceOverloadIndication_Item : asn::enumerated<3, 0, true> -{ - static constexpr const char* name() {return "UL-InterferenceOverloadIndication-Item";} - using parent_t = asn::enumerated<3, 0, true>; - typedef enum { - high_interference - ,medium_interference - ,low_interference - } index_t; - -}; - -/* -UL-InterferenceOverloadIndication ::= SEQUENCE (SIZE(1..maxnoofPRBs)) OF UL-InterferenceOverloadIndication-Item -*/ - -struct UL_InterferenceOverloadIndication_elm : UL_InterferenceOverloadIndication_Item -{ - static constexpr const char* name() {return "UL_InterferenceOverloadIndication_elm";} - using parent_t = UL_InterferenceOverloadIndication_Item; - -}; -struct UL_InterferenceOverloadIndication : asn::sequenceof -{ - static constexpr const char* name() {return "UL-InterferenceOverloadIndication";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -ExtendedULInterferenceOverloadInfo-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct ExtendedULInterferenceOverloadInfo_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ExtendedULInterferenceOverloadInfo ::= SEQUENCE { - associatedSubframes BIT STRING (SIZE (5)), - extended-ul-InterferenceOverloadIndication UL-InterferenceOverloadIndication, - iE-Extensions ProtocolExtensionContainer { {ExtendedULInterferenceOverloadInfo-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct ExtendedULInterferenceOverloadInfo : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "ExtendedULInterferenceOverloadInfo";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct associatedSubframes_t : asn::bstring<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "associatedSubframes_t";} - using parent_t = asn::bstring<>; - - }; - - associatedSubframes_t& ref_associatedSubframes() {return associatedSubframes;} - associatedSubframes_t const& ref_associatedSubframes() const {return associatedSubframes;} - struct extended_ul_InterferenceOverloadIndication_t : UL_InterferenceOverloadIndication - { - static constexpr const char* name() {return "extended_ul_InterferenceOverloadIndication_t";} - using parent_t = UL_InterferenceOverloadIndication; - - }; - extended_ul_InterferenceOverloadIndication_t& ref_extended_ul_InterferenceOverloadIndication() {return extended_ul_InterferenceOverloadIndication;} - extended_ul_InterferenceOverloadIndication_t const& ref_extended_ul_InterferenceOverloadIndication() const {return extended_ul_InterferenceOverloadIndication;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(associatedSubframes); - v(extended_ul_InterferenceOverloadIndication); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(associatedSubframes); - v(extended_ul_InterferenceOverloadIndication); - v(iE_Extensions); - - }; - void clear() - { - associatedSubframes.clear(); - extended_ul_InterferenceOverloadIndication.clear(); - iE_Extensions.clear(); - - }; - private: - associatedSubframes_t associatedSubframes; - extended_ul_InterferenceOverloadIndication_t extended_ul_InterferenceOverloadIndication; - iE_Extensions_t iE_Extensions; - -}; -/* -FiveGS-TAC ::= OCTET STRING (SIZE (3)) -*/ - -struct FiveGS_TAC : asn::ostring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "FiveGS-TAC";} - using parent_t = asn::ostring<>; - -}; - -/* -ForbiddenInterRATs ::= ENUMERATED { - all, - geran, - utran, - cdma2000, - ..., - geranandutran, - cdma2000andutran - -} -*/ - -struct ForbiddenInterRATs : asn::enumerated<6, 2, true> -{ - static constexpr const char* name() {return "ForbiddenInterRATs";} - using parent_t = asn::enumerated<6, 2, true>; - typedef enum { - all - ,geran - ,utran - ,cdma2000 - ,geranandutran - ,cdma2000andutran - } index_t; - -}; - -/* -LAC ::= OCTET STRING (SIZE (2)) --(EXCEPT ('0000'H|'FFFE'H)) -*/ - -struct LAC : asn::ostring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "LAC";} - using parent_t = asn::ostring<>; - -}; - -/* -ForbiddenLACs ::= SEQUENCE (SIZE(1..maxnoofForbLACs)) OF LAC -*/ - -struct ForbiddenLACs_elm : LAC -{ - static constexpr const char* name() {return "ForbiddenLACs_elm";} - using parent_t = LAC; - -}; -struct ForbiddenLACs : asn::sequenceof -{ - static constexpr const char* name() {return "ForbiddenLACs";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -ForbiddenLAs-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct ForbiddenLAs_Item_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ForbiddenLAs-Item ::= SEQUENCE { - pLMN-Identity PLMN-Identity, - forbiddenLACs ForbiddenLACs, - iE-Extensions ProtocolExtensionContainer { {ForbiddenLAs-Item-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct ForbiddenLAs_Item : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "ForbiddenLAs-Item";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct pLMN_Identity_t : PLMN_Identity - { - static constexpr const char* name() {return "pLMN_Identity_t";} - using parent_t = PLMN_Identity; - - }; - pLMN_Identity_t& ref_pLMN_Identity() {return pLMN_Identity;} - pLMN_Identity_t const& ref_pLMN_Identity() const {return pLMN_Identity;} - struct forbiddenLACs_t : ForbiddenLACs - { - static constexpr const char* name() {return "forbiddenLACs_t";} - using parent_t = ForbiddenLACs; - - }; - forbiddenLACs_t& ref_forbiddenLACs() {return forbiddenLACs;} - forbiddenLACs_t const& ref_forbiddenLACs() const {return forbiddenLACs;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(pLMN_Identity); - v(forbiddenLACs); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(pLMN_Identity); - v(forbiddenLACs); - v(iE_Extensions); - - }; - void clear() - { - pLMN_Identity.clear(); - forbiddenLACs.clear(); - iE_Extensions.clear(); - - }; - private: - pLMN_Identity_t pLMN_Identity; - forbiddenLACs_t forbiddenLACs; - iE_Extensions_t iE_Extensions; - -}; -/* -ForbiddenLAs ::= SEQUENCE (SIZE(1..maxnoofEPLMNsPlusOne)) OF ForbiddenLAs-Item -*/ - -struct ForbiddenLAs_elm : ForbiddenLAs_Item -{ - static constexpr const char* name() {return "ForbiddenLAs_elm";} - using parent_t = ForbiddenLAs_Item; - -}; -struct ForbiddenLAs : asn::sequenceof -{ - static constexpr const char* name() {return "ForbiddenLAs";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -ForbiddenTACs ::= SEQUENCE (SIZE(1..maxnoofForbTACs)) OF TAC -*/ - -struct ForbiddenTACs_elm : TAC -{ - static constexpr const char* name() {return "ForbiddenTACs_elm";} - using parent_t = TAC; - -}; -struct ForbiddenTACs : asn::sequenceof -{ - static constexpr const char* name() {return "ForbiddenTACs";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -ForbiddenTAs-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct ForbiddenTAs_Item_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ForbiddenTAs-Item ::= SEQUENCE { - pLMN-Identity PLMN-Identity, - forbiddenTACs ForbiddenTACs, - iE-Extensions ProtocolExtensionContainer { {ForbiddenTAs-Item-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct ForbiddenTAs_Item : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "ForbiddenTAs-Item";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct pLMN_Identity_t : PLMN_Identity - { - static constexpr const char* name() {return "pLMN_Identity_t";} - using parent_t = PLMN_Identity; - - }; - pLMN_Identity_t& ref_pLMN_Identity() {return pLMN_Identity;} - pLMN_Identity_t const& ref_pLMN_Identity() const {return pLMN_Identity;} - struct forbiddenTACs_t : ForbiddenTACs - { - static constexpr const char* name() {return "forbiddenTACs_t";} - using parent_t = ForbiddenTACs; - - }; - forbiddenTACs_t& ref_forbiddenTACs() {return forbiddenTACs;} - forbiddenTACs_t const& ref_forbiddenTACs() const {return forbiddenTACs;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(pLMN_Identity); - v(forbiddenTACs); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(pLMN_Identity); - v(forbiddenTACs); - v(iE_Extensions); - - }; - void clear() - { - pLMN_Identity.clear(); - forbiddenTACs.clear(); - iE_Extensions.clear(); - - }; - private: - pLMN_Identity_t pLMN_Identity; - forbiddenTACs_t forbiddenTACs; - iE_Extensions_t iE_Extensions; - -}; -/* -ForbiddenTAs ::= SEQUENCE (SIZE(1.. maxnoofEPLMNsPlusOne)) OF ForbiddenTAs-Item -*/ - -struct ForbiddenTAs_elm : ForbiddenTAs_Item -{ - static constexpr const char* name() {return "ForbiddenTAs_elm";} - using parent_t = ForbiddenTAs_Item; - -}; -struct ForbiddenTAs : asn::sequenceof -{ - static constexpr const char* name() {return "ForbiddenTAs";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -Fourframes ::= BIT STRING (SIZE (24)) -*/ - -struct Fourframes : asn::bstring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "Fourframes";} - using parent_t = asn::bstring<>; - -}; - -/* -FreqBandIndicatorPriority ::= ENUMERATED { - not-broadcasted, - broadcasted, - ... -} -*/ - -struct FreqBandIndicatorPriority : asn::enumerated<2, 0, true> -{ - static constexpr const char* name() {return "FreqBandIndicatorPriority";} - using parent_t = asn::enumerated<2, 0, true>; - typedef enum { - not_broadcasted - ,broadcasted - } index_t; - -}; - -/* -SupportedSULFreqBandItem-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct SupportedSULFreqBandItem_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SupportedSULFreqBandItem ::= SEQUENCE { - freqBandIndicatorNr INTEGER (1..1024,...), - iE-Extensions ProtocolExtensionContainer { {SupportedSULFreqBandItem-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct SupportedSULFreqBandItem : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "SupportedSULFreqBandItem";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct freqBandIndicatorNr_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "freqBandIndicatorNr_t";} - using parent_t = asn::integer<>; - - }; - - freqBandIndicatorNr_t& ref_freqBandIndicatorNr() {return freqBandIndicatorNr;} - freqBandIndicatorNr_t const& ref_freqBandIndicatorNr() const {return freqBandIndicatorNr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(freqBandIndicatorNr); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(freqBandIndicatorNr); - v(iE_Extensions); - - }; - void clear() - { - freqBandIndicatorNr.clear(); - iE_Extensions.clear(); - - }; - private: - freqBandIndicatorNr_t freqBandIndicatorNr; - iE_Extensions_t iE_Extensions; - -}; -/* -FreqBandNrItem-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct FreqBandNrItem_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -FreqBandNrItem ::= SEQUENCE { - freqBandIndicatorNr INTEGER (1..1024,...), - supportedSULBandList SEQUENCE (SIZE(0..maxnoofNrCellBands)) OF SupportedSULFreqBandItem, - iE-Extensions ProtocolExtensionContainer { {FreqBandNrItem-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct FreqBandNrItem : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "FreqBandNrItem";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct freqBandIndicatorNr_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "freqBandIndicatorNr_t";} - using parent_t = asn::integer<>; - - }; - - freqBandIndicatorNr_t& ref_freqBandIndicatorNr() {return freqBandIndicatorNr;} - freqBandIndicatorNr_t const& ref_freqBandIndicatorNr() const {return freqBandIndicatorNr;} - struct supportedSULBandList_t_elm : SupportedSULFreqBandItem - { - static constexpr const char* name() {return "supportedSULBandList_t_elm";} - using parent_t = SupportedSULFreqBandItem; - - }; - struct supportedSULBandList_t : asn::sequenceof - { - static constexpr const char* name() {return "supportedSULBandList_t";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - - }; - supportedSULBandList_t& ref_supportedSULBandList() {return supportedSULBandList;} - supportedSULBandList_t const& ref_supportedSULBandList() const {return supportedSULBandList;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(freqBandIndicatorNr); - v(supportedSULBandList); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(freqBandIndicatorNr); - v(supportedSULBandList); - v(iE_Extensions); - - }; - void clear() - { - freqBandIndicatorNr.clear(); - supportedSULBandList.clear(); - iE_Extensions.clear(); - - }; - private: - freqBandIndicatorNr_t freqBandIndicatorNr; - supportedSULBandList_t supportedSULBandList; - iE_Extensions_t iE_Extensions; - -}; -/* -GNB-ID ::= CHOICE { - gNB-ID BIT STRING (SIZE (22..32)), - ... -} -*/ - -struct GNB_ID : asn::choice<1, 0, true> -{ - static constexpr const char* name() {return "GNB-ID";} - using parent_t = asn::choice<1, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 2;} - void set_unknown() { set_index(2); } - ~GNB_ID() {clear();} - struct gNB_ID_t : asn::bstring<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "gNB_ID_t";} - using parent_t = asn::bstring<>; - - }; - - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - gNB_ID_t& select_gNB_ID() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - gNB_ID_t const* get_gNB_ID() const { if(get_index() == 1) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(gNB_ID_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -GNBOverloadInformation ::= ENUMERATED {overloaded, not-overloaded, ...} -*/ - -struct GNBOverloadInformation : asn::enumerated<2, 0, true> -{ - static constexpr const char* name() {return "GNBOverloadInformation";} - using parent_t = asn::enumerated<2, 0, true>; - typedef enum { - overloaded - ,not_overloaded - } index_t; - -}; - -/* -GTP-TEI ::= OCTET STRING (SIZE (4)) -*/ - -struct GTP_TEI : asn::ostring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "GTP-TEI";} - using parent_t = asn::ostring<>; - -}; - -/* -TransportLayerAddress ::= BIT STRING (SIZE(1..160, ...)) -*/ - -struct TransportLayerAddress : asn::bstring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "TransportLayerAddress";} - using parent_t = asn::bstring<>; - -}; - -/* -GTPtunnelEndpoint-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct GTPtunnelEndpoint_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -GTPtunnelEndpoint ::= SEQUENCE { - transportLayerAddress TransportLayerAddress, - gTP-TEID GTP-TEI, - iE-Extensions ProtocolExtensionContainer { {GTPtunnelEndpoint-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct GTPtunnelEndpoint : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "GTPtunnelEndpoint";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct transportLayerAddress_t : TransportLayerAddress - { - static constexpr const char* name() {return "transportLayerAddress_t";} - using parent_t = TransportLayerAddress; - - }; - transportLayerAddress_t& ref_transportLayerAddress() {return transportLayerAddress;} - transportLayerAddress_t const& ref_transportLayerAddress() const {return transportLayerAddress;} - struct gTP_TEID_t : GTP_TEI - { - static constexpr const char* name() {return "gTP_TEID_t";} - using parent_t = GTP_TEI; - - }; - gTP_TEID_t& ref_gTP_TEID() {return gTP_TEID;} - gTP_TEID_t const& ref_gTP_TEID() const {return gTP_TEID;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(transportLayerAddress); - v(gTP_TEID); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(transportLayerAddress); - v(gTP_TEID); - v(iE_Extensions); - - }; - void clear() - { - transportLayerAddress.clear(); - gTP_TEID.clear(); - iE_Extensions.clear(); - - }; - private: - transportLayerAddress_t transportLayerAddress; - gTP_TEID_t gTP_TEID; - iE_Extensions_t iE_Extensions; - -}; -/* -MME-Group-ID ::= OCTET STRING (SIZE (2)) -*/ - -struct MME_Group_ID : asn::ostring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "MME-Group-ID";} - using parent_t = asn::ostring<>; - -}; - -/* -GU-Group-ID-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct GU_Group_ID_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -GU-Group-ID ::= SEQUENCE { - pLMN-Identity PLMN-Identity, - mME-Group-ID MME-Group-ID, - iE-Extensions ProtocolExtensionContainer { {GU-Group-ID-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct GU_Group_ID : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "GU-Group-ID";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct pLMN_Identity_t : PLMN_Identity - { - static constexpr const char* name() {return "pLMN_Identity_t";} - using parent_t = PLMN_Identity; - - }; - pLMN_Identity_t& ref_pLMN_Identity() {return pLMN_Identity;} - pLMN_Identity_t const& ref_pLMN_Identity() const {return pLMN_Identity;} - struct mME_Group_ID_t : MME_Group_ID - { - static constexpr const char* name() {return "mME_Group_ID_t";} - using parent_t = MME_Group_ID; - - }; - mME_Group_ID_t& ref_mME_Group_ID() {return mME_Group_ID;} - mME_Group_ID_t const& ref_mME_Group_ID() const {return mME_Group_ID;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(pLMN_Identity); - v(mME_Group_ID); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(pLMN_Identity); - v(mME_Group_ID); - v(iE_Extensions); - - }; - void clear() - { - pLMN_Identity.clear(); - mME_Group_ID.clear(); - iE_Extensions.clear(); - - }; - private: - pLMN_Identity_t pLMN_Identity; - mME_Group_ID_t mME_Group_ID; - iE_Extensions_t iE_Extensions; - -}; -/* -GUGroupIDList ::= SEQUENCE (SIZE (1..maxPools)) OF GU-Group-ID -*/ - -struct GUGroupIDList_elm : GU_Group_ID -{ - static constexpr const char* name() {return "GUGroupIDList_elm";} - using parent_t = GU_Group_ID; - -}; -struct GUGroupIDList : asn::sequenceof -{ - static constexpr const char* name() {return "GUGroupIDList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -MME-Code ::= OCTET STRING (SIZE (1)) -*/ - -struct MME_Code : asn::ostring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "MME-Code";} - using parent_t = asn::ostring<>; - -}; - -/* -GUMMEI-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct GUMMEI_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -GUMMEI ::= SEQUENCE { - - gU-Group-ID GU-Group-ID, - mME-Code MME-Code, - iE-Extensions ProtocolExtensionContainer { {GUMMEI-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct GUMMEI : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "GUMMEI";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct gU_Group_ID_t : GU_Group_ID - { - static constexpr const char* name() {return "gU_Group_ID_t";} - using parent_t = GU_Group_ID; - - }; - gU_Group_ID_t& ref_gU_Group_ID() {return gU_Group_ID;} - gU_Group_ID_t const& ref_gU_Group_ID() const {return gU_Group_ID;} - struct mME_Code_t : MME_Code - { - static constexpr const char* name() {return "mME_Code_t";} - using parent_t = MME_Code; - - }; - mME_Code_t& ref_mME_Code() {return mME_Code;} - mME_Code_t const& ref_mME_Code() const {return mME_Code;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(gU_Group_ID); - v(mME_Code); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(gU_Group_ID); - v(mME_Code); - v(iE_Extensions); - - }; - void clear() - { - gU_Group_ID.clear(); - mME_Code.clear(); - iE_Extensions.clear(); - - }; - private: - gU_Group_ID_t gU_Group_ID; - mME_Code_t mME_Code; - iE_Extensions_t iE_Extensions; - -}; -/* -GlobalENB-ID-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct GlobalENB_ID_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -GlobalENB-ID ::= SEQUENCE { - pLMN-Identity PLMN-Identity, - eNB-ID ENB-ID, - iE-Extensions ProtocolExtensionContainer { {GlobalENB-ID-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct GlobalENB_ID : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "GlobalENB-ID";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct pLMN_Identity_t : PLMN_Identity - { - static constexpr const char* name() {return "pLMN_Identity_t";} - using parent_t = PLMN_Identity; - - }; - pLMN_Identity_t& ref_pLMN_Identity() {return pLMN_Identity;} - pLMN_Identity_t const& ref_pLMN_Identity() const {return pLMN_Identity;} - struct eNB_ID_t : ENB_ID - { - static constexpr const char* name() {return "eNB_ID_t";} - using parent_t = ENB_ID; - - }; - eNB_ID_t& ref_eNB_ID() {return eNB_ID;} - eNB_ID_t const& ref_eNB_ID() const {return eNB_ID;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(pLMN_Identity); - v(eNB_ID); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(pLMN_Identity); - v(eNB_ID); - v(iE_Extensions); - - }; - void clear() - { - pLMN_Identity.clear(); - eNB_ID.clear(); - iE_Extensions.clear(); - - }; - private: - pLMN_Identity_t pLMN_Identity; - eNB_ID_t eNB_ID; - iE_Extensions_t iE_Extensions; - -}; -/* -GlobalGNB-ID-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct GlobalGNB_ID_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -GlobalGNB-ID ::= SEQUENCE { - pLMN-Identity PLMN-Identity, - gNB-ID GNB-ID, - iE-Extensions ProtocolExtensionContainer { {GlobalGNB-ID-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct GlobalGNB_ID : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "GlobalGNB-ID";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct pLMN_Identity_t : PLMN_Identity - { - static constexpr const char* name() {return "pLMN_Identity_t";} - using parent_t = PLMN_Identity; - - }; - pLMN_Identity_t& ref_pLMN_Identity() {return pLMN_Identity;} - pLMN_Identity_t const& ref_pLMN_Identity() const {return pLMN_Identity;} - struct gNB_ID_t : GNB_ID - { - static constexpr const char* name() {return "gNB_ID_t";} - using parent_t = GNB_ID; - - }; - gNB_ID_t& ref_gNB_ID() {return gNB_ID;} - gNB_ID_t const& ref_gNB_ID() const {return gNB_ID;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(pLMN_Identity); - v(gNB_ID); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(pLMN_Identity); - v(gNB_ID); - v(iE_Extensions); - - }; - void clear() - { - pLMN_Identity.clear(); - gNB_ID.clear(); - iE_Extensions.clear(); - - }; - private: - pLMN_Identity_t pLMN_Identity; - gNB_ID_t gNB_ID; - iE_Extensions_t iE_Extensions; - -}; -/* -LoadIndicator ::= ENUMERATED { - lowLoad, - mediumLoad, - highLoad, - overLoad, - ... -} -*/ - -struct LoadIndicator : asn::enumerated<4, 0, true> -{ - static constexpr const char* name() {return "LoadIndicator";} - using parent_t = asn::enumerated<4, 0, true>; - typedef enum { - lowLoad - ,mediumLoad - ,highLoad - ,overLoad - } index_t; - -}; - -/* -HWLoadIndicator-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct HWLoadIndicator_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -HWLoadIndicator ::= SEQUENCE { - dLHWLoadIndicator LoadIndicator, - uLHWLoadIndicator LoadIndicator, - iE-Extensions ProtocolExtensionContainer { {HWLoadIndicator-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct HWLoadIndicator : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "HWLoadIndicator";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct dLHWLoadIndicator_t : LoadIndicator - { - static constexpr const char* name() {return "dLHWLoadIndicator_t";} - using parent_t = LoadIndicator; - - }; - dLHWLoadIndicator_t& ref_dLHWLoadIndicator() {return dLHWLoadIndicator;} - dLHWLoadIndicator_t const& ref_dLHWLoadIndicator() const {return dLHWLoadIndicator;} - struct uLHWLoadIndicator_t : LoadIndicator - { - static constexpr const char* name() {return "uLHWLoadIndicator_t";} - using parent_t = LoadIndicator; - - }; - uLHWLoadIndicator_t& ref_uLHWLoadIndicator() {return uLHWLoadIndicator;} - uLHWLoadIndicator_t const& ref_uLHWLoadIndicator() const {return uLHWLoadIndicator;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(dLHWLoadIndicator); - v(uLHWLoadIndicator); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(dLHWLoadIndicator); - v(uLHWLoadIndicator); - v(iE_Extensions); - - }; - void clear() - { - dLHWLoadIndicator.clear(); - uLHWLoadIndicator.clear(); - iE_Extensions.clear(); - - }; - private: - dLHWLoadIndicator_t dLHWLoadIndicator; - uLHWLoadIndicator_t uLHWLoadIndicator; - iE_Extensions_t iE_Extensions; - -}; -/* -HandoverReportType ::= ENUMERATED { - hoTooEarly, - hoToWrongCell, - ..., - interRATpingpong -} -*/ - -struct HandoverReportType : asn::enumerated<3, 1, true> -{ - static constexpr const char* name() {return "HandoverReportType";} - using parent_t = asn::enumerated<3, 1, true>; - typedef enum { - hoTooEarly - ,hoToWrongCell - ,interRATpingpong - } index_t; - -}; - -/* -NRrestrictioninEPSasSecondaryRAT ::= ENUMERATED { - nRrestrictedinEPSasSecondaryRAT, - ... -} -*/ - -struct NRrestrictioninEPSasSecondaryRAT : asn::enumerated<1, 0, true> -{ - static constexpr const char* name() {return "NRrestrictioninEPSasSecondaryRAT";} - using parent_t = asn::enumerated<1, 0, true>; - typedef enum { - nRrestrictedinEPSasSecondaryRAT - } index_t; - -}; - -/* -NRrestrictionin5GS ::= ENUMERATED { - nRrestrictedin5GS, - ... -} -*/ - -struct NRrestrictionin5GS : asn::enumerated<1, 0, true> -{ - static constexpr const char* name() {return "NRrestrictionin5GS";} - using parent_t = asn::enumerated<1, 0, true>; - typedef enum { - nRrestrictedin5GS - } index_t; - -}; - -/* -HandoverRestrictionList-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-NRrestrictioninEPSasSecondaryRAT CRITICALITY ignore EXTENSION NRrestrictioninEPSasSecondaryRAT PRESENCE optional}| - { ID id-CNTypeRestrictions CRITICALITY ignore EXTENSION CNTypeRestrictions PRESENCE optional}| - { ID id-NRrestrictionin5GS CRITICALITY ignore EXTENSION NRrestrictionin5GS PRESENCE optional}, - ... -} -*/ - -struct HandoverRestrictionList_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_NRrestrictioninEPSasSecondaryRAT() { set(id_NRrestrictioninEPSasSecondaryRAT); type=1;} - void select_id_CNTypeRestrictions() { set(id_CNTypeRestrictions); type=2;} - void select_id_NRrestrictionin5GS() { set(id_NRrestrictionin5GS); type=3;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_NRrestrictioninEPSasSecondaryRAT)) { type = 1; return true; } - else if(equal(id_CNTypeRestrictions)) { type = 2; return true; } - else if(equal(id_NRrestrictionin5GS)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_NRrestrictioninEPSasSecondaryRAT);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_CNTypeRestrictions);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_NRrestrictionin5GS);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_NRrestrictioninEPSasSecondaryRAT() { set(ignore); type=1;} - void select_id_CNTypeRestrictions() { set(ignore); type=2;} - void select_id_NRrestrictionin5GS() { set(ignore); type=3;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - NRrestrictioninEPSasSecondaryRAT& select_id_NRrestrictioninEPSasSecondaryRAT() { return set(1); } - NRrestrictioninEPSasSecondaryRAT const* get_id_NRrestrictioninEPSasSecondaryRAT() const { return get(1); } - CNTypeRestrictions& select_id_CNTypeRestrictions() { return set(2); } - CNTypeRestrictions const* get_id_CNTypeRestrictions() const { return get(2); } - NRrestrictionin5GS& select_id_NRrestrictionin5GS() { return set(3); } - NRrestrictionin5GS const* get_id_NRrestrictionin5GS() const { return get(3); } - bool is_unknown() const { return type == 4; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_NRrestrictioninEPSasSecondaryRAT()); return true; - case 2: v(select_id_CNTypeRestrictions()); return true; - case 3: v(select_id_NRrestrictionin5GS()); return true; - case 4: if(type != 4) {clear(); asn::base::set();} type = 4; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CNTypeRestrictions)]; - char dummy2[sizeof(NRrestrictionin5GS)]; - char dummy3[sizeof(NRrestrictioninEPSasSecondaryRAT)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_NRrestrictioninEPSasSecondaryRAT() { set(optional); type=1;} - void select_id_CNTypeRestrictions() { set(optional); type=2;} - void select_id_NRrestrictionin5GS() { set(optional); type=3;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -HandoverRestrictionList ::= SEQUENCE { - servingPLMN PLMN-Identity, - equivalentPLMNs EPLMNs OPTIONAL, - forbiddenTAs ForbiddenTAs OPTIONAL, - forbiddenLAs ForbiddenLAs OPTIONAL, - forbiddenInterRATs ForbiddenInterRATs OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {HandoverRestrictionList-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct HandoverRestrictionList : asn::sequence<6, 0, true, 5> -{ - static constexpr const char* name() {return "HandoverRestrictionList";} - using parent_t = asn::sequence<6, 0, true, 5>; - struct servingPLMN_t : PLMN_Identity - { - static constexpr const char* name() {return "servingPLMN_t";} - using parent_t = PLMN_Identity; - - }; - servingPLMN_t& ref_servingPLMN() {return servingPLMN;} - servingPLMN_t const& ref_servingPLMN() const {return servingPLMN;} - struct equivalentPLMNs_t : EPLMNs - { - static constexpr const char* name() {return "equivalentPLMNs_t";} - using parent_t = EPLMNs; - static constexpr bool optional = true; - - }; - equivalentPLMNs_t& set_equivalentPLMNs() { equivalentPLMNs.setpresent(true); return equivalentPLMNs;} - equivalentPLMNs_t const* get_equivalentPLMNs() const {return equivalentPLMNs.is_valid() ? &equivalentPLMNs : nullptr;} - struct forbiddenTAs_t : ForbiddenTAs - { - static constexpr const char* name() {return "forbiddenTAs_t";} - using parent_t = ForbiddenTAs; - static constexpr bool optional = true; - - }; - forbiddenTAs_t& set_forbiddenTAs() { forbiddenTAs.setpresent(true); return forbiddenTAs;} - forbiddenTAs_t const* get_forbiddenTAs() const {return forbiddenTAs.is_valid() ? &forbiddenTAs : nullptr;} - struct forbiddenLAs_t : ForbiddenLAs - { - static constexpr const char* name() {return "forbiddenLAs_t";} - using parent_t = ForbiddenLAs; - static constexpr bool optional = true; - - }; - forbiddenLAs_t& set_forbiddenLAs() { forbiddenLAs.setpresent(true); return forbiddenLAs;} - forbiddenLAs_t const* get_forbiddenLAs() const {return forbiddenLAs.is_valid() ? &forbiddenLAs : nullptr;} - struct forbiddenInterRATs_t : ForbiddenInterRATs - { - static constexpr const char* name() {return "forbiddenInterRATs_t";} - using parent_t = ForbiddenInterRATs; - static constexpr bool optional = true; - - }; - forbiddenInterRATs_t& set_forbiddenInterRATs() { forbiddenInterRATs.setpresent(true); return forbiddenInterRATs;} - forbiddenInterRATs_t const* get_forbiddenInterRATs() const {return forbiddenInterRATs.is_valid() ? &forbiddenInterRATs : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(servingPLMN); - v(equivalentPLMNs); - v(forbiddenTAs); - v(forbiddenLAs); - v(forbiddenInterRATs); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(servingPLMN); - v(equivalentPLMNs); - v(forbiddenTAs); - v(forbiddenLAs); - v(forbiddenInterRATs); - v(iE_Extensions); - - }; - void clear() - { - servingPLMN.clear(); - equivalentPLMNs.clear(); - forbiddenTAs.clear(); - forbiddenLAs.clear(); - forbiddenInterRATs.clear(); - iE_Extensions.clear(); - - }; - private: - servingPLMN_t servingPLMN; - equivalentPLMNs_t equivalentPLMNs; - forbiddenTAs_t forbiddenTAs; - forbiddenLAs_t forbiddenLAs; - forbiddenInterRATs_t forbiddenInterRATs; - iE_Extensions_t iE_Extensions; - -}; -/* -IntegrityProtectionAlgorithms ::= BIT STRING (SIZE (16, ...)) -*/ - -struct IntegrityProtectionAlgorithms : asn::bstring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "IntegrityProtectionAlgorithms";} - using parent_t = asn::bstring<>; - -}; - -/* -InterfacesToTrace ::= BIT STRING (SIZE (8)) -*/ - -struct InterfacesToTrace : asn::bstring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "InterfacesToTrace";} - using parent_t = asn::bstring<>; - -}; - -/* -InvokeIndication ::= ENUMERATED{ - abs-information, - ..., - naics-information-start, - naics-information-stop -} -*/ - -struct InvokeIndication : asn::enumerated<3, 2, true> -{ - static constexpr const char* name() {return "InvokeIndication";} - using parent_t = asn::enumerated<3, 2, true>; - typedef enum { - abs_information - ,naics_information_start - ,naics_information_stop - } index_t; - -}; - -/* -LCID ::= INTEGER(1..32, ...) -*/ - -struct LCID : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "LCID";} - using parent_t = asn::integer<>; - -}; - -/* -LHN-ID ::= OCTET STRING(SIZE (32..256)) -*/ - -struct LHN_ID : asn::ostring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "LHN-ID";} - using parent_t = asn::ostring<>; - -}; - -/* -Time-UE-StayedInCell ::= INTEGER (0..4095) -*/ - -struct Time_UE_StayedInCell : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "Time-UE-StayedInCell";} - using parent_t = asn::integer<>; - -}; - -/* -Time-UE-StayedInCell-EnhancedGranularity ::= INTEGER (0..40950) -*/ - -struct Time_UE_StayedInCell_EnhancedGranularity : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "Time-UE-StayedInCell-EnhancedGranularity";} - using parent_t = asn::integer<>; - -}; - -/* -LastVisitedEUTRANCellInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { --- Extension for Rel-11 to support enhanced granularity for time UE stayed in cell -- - { ID id-Time-UE-StayedInCell-EnhancedGranularity CRITICALITY ignore EXTENSION Time-UE-StayedInCell-EnhancedGranularity PRESENCE optional}| - { ID id-HO-cause CRITICALITY ignore EXTENSION Cause PRESENCE optional}, - ... -} -*/ - -struct LastVisitedEUTRANCellInformation_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_Time_UE_StayedInCell_EnhancedGranularity() { set(id_Time_UE_StayedInCell_EnhancedGranularity); type=1;} - void select_id_HO_cause() { set(id_HO_cause); type=2;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_Time_UE_StayedInCell_EnhancedGranularity)) { type = 1; return true; } - else if(equal(id_HO_cause)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_Time_UE_StayedInCell_EnhancedGranularity);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_HO_cause);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_Time_UE_StayedInCell_EnhancedGranularity() { set(ignore); type=1;} - void select_id_HO_cause() { set(ignore); type=2;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - Time_UE_StayedInCell_EnhancedGranularity& select_id_Time_UE_StayedInCell_EnhancedGranularity() { return set(1); } - Time_UE_StayedInCell_EnhancedGranularity const* get_id_Time_UE_StayedInCell_EnhancedGranularity() const { return get(1); } - Cause& select_id_HO_cause() { return set(2); } - Cause const* get_id_HO_cause() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_Time_UE_StayedInCell_EnhancedGranularity()); return true; - case 2: v(select_id_HO_cause()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(Time_UE_StayedInCell_EnhancedGranularity)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_Time_UE_StayedInCell_EnhancedGranularity() { set(optional); type=1;} - void select_id_HO_cause() { set(optional); type=2;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -LastVisitedEUTRANCellInformation ::= SEQUENCE { - global-Cell-ID ECGI, - cellType CellType, - time-UE-StayedInCell Time-UE-StayedInCell, - iE-Extensions ProtocolExtensionContainer { {LastVisitedEUTRANCellInformation-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct LastVisitedEUTRANCellInformation : asn::sequence<4, 0, true, 1> -{ - static constexpr const char* name() {return "LastVisitedEUTRANCellInformation";} - using parent_t = asn::sequence<4, 0, true, 1>; - struct global_Cell_ID_t : ECGI - { - static constexpr const char* name() {return "global_Cell_ID_t";} - using parent_t = ECGI; - - }; - global_Cell_ID_t& ref_global_Cell_ID() {return global_Cell_ID;} - global_Cell_ID_t const& ref_global_Cell_ID() const {return global_Cell_ID;} - struct cellType_t : CellType - { - static constexpr const char* name() {return "cellType_t";} - using parent_t = CellType; - - }; - cellType_t& ref_cellType() {return cellType;} - cellType_t const& ref_cellType() const {return cellType;} - struct time_UE_StayedInCell_t : Time_UE_StayedInCell - { - static constexpr const char* name() {return "time_UE_StayedInCell_t";} - using parent_t = Time_UE_StayedInCell; - - }; - time_UE_StayedInCell_t& ref_time_UE_StayedInCell() {return time_UE_StayedInCell;} - time_UE_StayedInCell_t const& ref_time_UE_StayedInCell() const {return time_UE_StayedInCell;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(global_Cell_ID); - v(cellType); - v(time_UE_StayedInCell); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(global_Cell_ID); - v(cellType); - v(time_UE_StayedInCell); - v(iE_Extensions); - - }; - void clear() - { - global_Cell_ID.clear(); - cellType.clear(); - time_UE_StayedInCell.clear(); - iE_Extensions.clear(); - - }; - private: - global_Cell_ID_t global_Cell_ID; - cellType_t cellType; - time_UE_StayedInCell_t time_UE_StayedInCell; - iE_Extensions_t iE_Extensions; - -}; -/* -LastVisitedUTRANCellInformation ::= OCTET STRING -*/ - -struct LastVisitedUTRANCellInformation : asn::ostring<> -{ - static constexpr const char* name() {return "LastVisitedUTRANCellInformation";} - using parent_t = asn::ostring<>; - -}; - -/* -LastVisitedGERANCellInformation ::= CHOICE { - undefined NULL, - ... -} -*/ - -struct LastVisitedGERANCellInformation : asn::choice<1, 0, true> -{ - static constexpr const char* name() {return "LastVisitedGERANCellInformation";} - using parent_t = asn::choice<1, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 2;} - void set_unknown() { set_index(2); } - ~LastVisitedGERANCellInformation() {clear();} - struct undefined_t : asn::nulltype - { - static constexpr const char* name() {return "undefined_t";} - using parent_t = asn::nulltype; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - undefined_t& select_undefined() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - undefined_t const* get_undefined() const { if(get_index() == 1) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(undefined_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -LastVisitedNGRANCellInformation ::= OCTET STRING -*/ - -struct LastVisitedNGRANCellInformation : asn::ostring<> -{ - static constexpr const char* name() {return "LastVisitedNGRANCellInformation";} - using parent_t = asn::ostring<>; - -}; - -/* -LastVisitedCell-Item ::= CHOICE { - e-UTRAN-Cell LastVisitedEUTRANCellInformation, - uTRAN-Cell LastVisitedUTRANCellInformation, - gERAN-Cell LastVisitedGERANCellInformation, - ..., - nG-RAN-Cell LastVisitedNGRANCellInformation -} -*/ - -struct LastVisitedCell_Item : asn::choice<4, 1, true> -{ - static constexpr const char* name() {return "LastVisitedCell-Item";} - using parent_t = asn::choice<4, 1, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 5;} - void set_unknown() { set_index(5); } - ~LastVisitedCell_Item() {clear();} - struct e_UTRAN_Cell_t : LastVisitedEUTRANCellInformation - { - static constexpr const char* name() {return "e_UTRAN_Cell_t";} - using parent_t = LastVisitedEUTRANCellInformation; - - }; - struct uTRAN_Cell_t : LastVisitedUTRANCellInformation - { - static constexpr const char* name() {return "uTRAN_Cell_t";} - using parent_t = LastVisitedUTRANCellInformation; - - }; - struct gERAN_Cell_t : LastVisitedGERANCellInformation - { - static constexpr const char* name() {return "gERAN_Cell_t";} - using parent_t = LastVisitedGERANCellInformation; - - }; - struct nG_RAN_Cell_t : LastVisitedNGRANCellInformation - { - static constexpr const char* name() {return "nG_RAN_Cell_t";} - using parent_t = LastVisitedNGRANCellInformation; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - case 3: set_index(3); return v(var.build()); - case 4: set_index(4); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - case 3: return v(var.as()); - case 4: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - - } - e_UTRAN_Cell_t& select_e_UTRAN_Cell() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - e_UTRAN_Cell_t const* get_e_UTRAN_Cell() const { if(get_index() == 1) { return &var.as();} return nullptr; } - uTRAN_Cell_t& select_uTRAN_Cell() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - uTRAN_Cell_t const* get_uTRAN_Cell() const { if(get_index() == 2) { return &var.as();} return nullptr; } - gERAN_Cell_t& select_gERAN_Cell() { if(get_index() != 3) { clear(); set_index(3); return var.build();} return var.as();} - gERAN_Cell_t const* get_gERAN_Cell() const { if(get_index() == 3) { return &var.as();} return nullptr; } - nG_RAN_Cell_t& select_nG_RAN_Cell() { if(get_index() != 4) { clear(); set_index(4); return var.build();} return var.as();} - nG_RAN_Cell_t const* get_nG_RAN_Cell() const { if(get_index() == 4) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(e_UTRAN_Cell_t)]; - char dummy2[sizeof(uTRAN_Cell_t)]; - char dummy3[sizeof(gERAN_Cell_t)]; - char dummy4[sizeof(nG_RAN_Cell_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -Links-to-log ::= ENUMERATED {uplink, downlink, both-uplink-and-downlink, ...} -*/ - -struct Links_to_log : asn::enumerated<3, 0, true> -{ - static constexpr const char* name() {return "Links-to-log";} - using parent_t = asn::enumerated<3, 0, true>; - typedef enum { - uplink - ,downlink - ,both_uplink_and_downlink - } index_t; - -}; - -/* -ReportArea ::= ENUMERATED{ - ecgi, - ... -} -*/ - -struct ReportArea : asn::enumerated<1, 0, true> -{ - static constexpr const char* name() {return "ReportArea";} - using parent_t = asn::enumerated<1, 0, true>; - typedef enum { - ecgi - } index_t; - -}; - -/* -LocationReportingInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::={ - ... -} -*/ - -struct LocationReportingInformation_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -LocationReportingInformation ::= SEQUENCE { - eventType EventType, - reportArea ReportArea, - iE-Extensions ProtocolExtensionContainer { {LocationReportingInformation-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct LocationReportingInformation : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "LocationReportingInformation";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct eventType_t : EventType - { - static constexpr const char* name() {return "eventType_t";} - using parent_t = EventType; - - }; - eventType_t& ref_eventType() {return eventType;} - eventType_t const& ref_eventType() const {return eventType;} - struct reportArea_t : ReportArea - { - static constexpr const char* name() {return "reportArea_t";} - using parent_t = ReportArea; - - }; - reportArea_t& ref_reportArea() {return reportArea;} - reportArea_t const& ref_reportArea() const {return reportArea;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(eventType); - v(reportArea); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(eventType); - v(reportArea); - v(iE_Extensions); - - }; - void clear() - { - eventType.clear(); - reportArea.clear(); - iE_Extensions.clear(); - - }; - private: - eventType_t eventType; - reportArea_t reportArea; - iE_Extensions_t iE_Extensions; - -}; -/* -ReportIntervalMDT ::= ENUMERATED {ms120, ms240, ms480, ms640, ms1024, ms2048, ms5120, ms10240, min1, min6, min12, min30, min60} -*/ - -struct ReportIntervalMDT : asn::enumerated<13, 0, false> -{ - static constexpr const char* name() {return "ReportIntervalMDT";} - using parent_t = asn::enumerated<13, 0, false>; - typedef enum { - ms120 - ,ms240 - ,ms480 - ,ms640 - ,ms1024 - ,ms2048 - ,ms5120 - ,ms10240 - ,min1 - ,min6 - ,min12 - ,min30 - ,min60 - } index_t; - -}; - -/* -ReportAmountMDT ::= ENUMERATED{r1, r2, r4, r8, r16, r32, r64, rinfinity} -*/ - -struct ReportAmountMDT : asn::enumerated<8, 0, false> -{ - static constexpr const char* name() {return "ReportAmountMDT";} - using parent_t = asn::enumerated<8, 0, false>; - typedef enum { - r1 - ,r2 - ,r4 - ,r8 - ,r16 - ,r32 - ,r64 - ,rinfinity - } index_t; - -}; - -/* -M1PeriodicReporting-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct M1PeriodicReporting_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -M1PeriodicReporting ::= SEQUENCE { - reportInterval ReportIntervalMDT, - reportAmount ReportAmountMDT, - iE-Extensions ProtocolExtensionContainer { {M1PeriodicReporting-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct M1PeriodicReporting : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "M1PeriodicReporting";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct reportInterval_t : ReportIntervalMDT - { - static constexpr const char* name() {return "reportInterval_t";} - using parent_t = ReportIntervalMDT; - - }; - reportInterval_t& ref_reportInterval() {return reportInterval;} - reportInterval_t const& ref_reportInterval() const {return reportInterval;} - struct reportAmount_t : ReportAmountMDT - { - static constexpr const char* name() {return "reportAmount_t";} - using parent_t = ReportAmountMDT; - - }; - reportAmount_t& ref_reportAmount() {return reportAmount;} - reportAmount_t const& ref_reportAmount() const {return reportAmount;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(reportInterval); - v(reportAmount); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(reportInterval); - v(reportAmount); - v(iE_Extensions); - - }; - void clear() - { - reportInterval.clear(); - reportAmount.clear(); - iE_Extensions.clear(); - - }; - private: - reportInterval_t reportInterval; - reportAmount_t reportAmount; - iE_Extensions_t iE_Extensions; - -}; -/* -M1ReportingTrigger::= ENUMERATED{ - periodic, - a2eventtriggered, - ..., - a2eventtriggered-periodic -} -*/ - -struct M1ReportingTrigger : asn::enumerated<3, 1, true> -{ - static constexpr const char* name() {return "M1ReportingTrigger";} - using parent_t = asn::enumerated<3, 1, true>; - typedef enum { - periodic - ,a2eventtriggered - ,a2eventtriggered_periodic - } index_t; - -}; - -/* -Threshold-RSRP ::= INTEGER(0..97) -*/ - -struct Threshold_RSRP : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "Threshold-RSRP";} - using parent_t = asn::integer<>; - -}; - -/* -Threshold-RSRQ ::= INTEGER(0..34) -*/ - -struct Threshold_RSRQ : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "Threshold-RSRQ";} - using parent_t = asn::integer<>; - -}; - -/* -MeasurementThresholdA2 ::= CHOICE { - threshold-RSRP Threshold-RSRP, - threshold-RSRQ Threshold-RSRQ, - ... -} -*/ - -struct MeasurementThresholdA2 : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "MeasurementThresholdA2";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~MeasurementThresholdA2() {clear();} - struct threshold_RSRP_t : Threshold_RSRP - { - static constexpr const char* name() {return "threshold_RSRP_t";} - using parent_t = Threshold_RSRP; - - }; - struct threshold_RSRQ_t : Threshold_RSRQ - { - static constexpr const char* name() {return "threshold_RSRQ_t";} - using parent_t = Threshold_RSRQ; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - threshold_RSRP_t& select_threshold_RSRP() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - threshold_RSRP_t const* get_threshold_RSRP() const { if(get_index() == 1) { return &var.as();} return nullptr; } - threshold_RSRQ_t& select_threshold_RSRQ() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - threshold_RSRQ_t const* get_threshold_RSRQ() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(threshold_RSRP_t)]; - char dummy2[sizeof(threshold_RSRQ_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -M1ThresholdEventA2-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct M1ThresholdEventA2_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -M1ThresholdEventA2 ::= SEQUENCE { - measurementThreshold MeasurementThresholdA2, - iE-Extensions ProtocolExtensionContainer { {M1ThresholdEventA2-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct M1ThresholdEventA2 : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "M1ThresholdEventA2";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct measurementThreshold_t : MeasurementThresholdA2 - { - static constexpr const char* name() {return "measurementThreshold_t";} - using parent_t = MeasurementThresholdA2; - - }; - measurementThreshold_t& ref_measurementThreshold() {return measurementThreshold;} - measurementThreshold_t const& ref_measurementThreshold() const {return measurementThreshold;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(measurementThreshold); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(measurementThreshold); - v(iE_Extensions); - - }; - void clear() - { - measurementThreshold.clear(); - iE_Extensions.clear(); - - }; - private: - measurementThreshold_t measurementThreshold; - iE_Extensions_t iE_Extensions; - -}; -/* -M3period ::= ENUMERATED {ms100, ms1000, ms10000, ... } -*/ - -struct M3period : asn::enumerated<3, 0, true> -{ - static constexpr const char* name() {return "M3period";} - using parent_t = asn::enumerated<3, 0, true>; - typedef enum { - ms100 - ,ms1000 - ,ms10000 - } index_t; - -}; - -/* -M3Configuration-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct M3Configuration_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -M3Configuration ::= SEQUENCE { - m3period M3period, - iE-Extensions ProtocolExtensionContainer { {M3Configuration-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct M3Configuration : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "M3Configuration";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct m3period_t : M3period - { - static constexpr const char* name() {return "m3period_t";} - using parent_t = M3period; - - }; - m3period_t& ref_m3period() {return m3period;} - m3period_t const& ref_m3period() const {return m3period;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(m3period); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(m3period); - v(iE_Extensions); - - }; - void clear() - { - m3period.clear(); - iE_Extensions.clear(); - - }; - private: - m3period_t m3period; - iE_Extensions_t iE_Extensions; - -}; -/* -M4period ::= ENUMERATED {ms1024, ms2048, ms5120, ms10240, min1, ... } -*/ - -struct M4period : asn::enumerated<5, 0, true> -{ - static constexpr const char* name() {return "M4period";} - using parent_t = asn::enumerated<5, 0, true>; - typedef enum { - ms1024 - ,ms2048 - ,ms5120 - ,ms10240 - ,min1 - } index_t; - -}; - -/* -M4Configuration-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct M4Configuration_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -M4Configuration ::= SEQUENCE { - m4period M4period, - m4-links-to-log Links-to-log, - iE-Extensions ProtocolExtensionContainer { {M4Configuration-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct M4Configuration : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "M4Configuration";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct m4period_t : M4period - { - static constexpr const char* name() {return "m4period_t";} - using parent_t = M4period; - - }; - m4period_t& ref_m4period() {return m4period;} - m4period_t const& ref_m4period() const {return m4period;} - struct m4_links_to_log_t : Links_to_log - { - static constexpr const char* name() {return "m4_links_to_log_t";} - using parent_t = Links_to_log; - - }; - m4_links_to_log_t& ref_m4_links_to_log() {return m4_links_to_log;} - m4_links_to_log_t const& ref_m4_links_to_log() const {return m4_links_to_log;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(m4period); - v(m4_links_to_log); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(m4period); - v(m4_links_to_log); - v(iE_Extensions); - - }; - void clear() - { - m4period.clear(); - m4_links_to_log.clear(); - iE_Extensions.clear(); - - }; - private: - m4period_t m4period; - m4_links_to_log_t m4_links_to_log; - iE_Extensions_t iE_Extensions; - -}; -/* -M5period ::= ENUMERATED {ms1024, ms2048, ms5120, ms10240, min1, ... } -*/ - -struct M5period : asn::enumerated<5, 0, true> -{ - static constexpr const char* name() {return "M5period";} - using parent_t = asn::enumerated<5, 0, true>; - typedef enum { - ms1024 - ,ms2048 - ,ms5120 - ,ms10240 - ,min1 - } index_t; - -}; - -/* -M5Configuration-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct M5Configuration_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -M5Configuration ::= SEQUENCE { - m5period M5period, - m5-links-to-log Links-to-log, - iE-Extensions ProtocolExtensionContainer { {M5Configuration-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct M5Configuration : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "M5Configuration";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct m5period_t : M5period - { - static constexpr const char* name() {return "m5period_t";} - using parent_t = M5period; - - }; - m5period_t& ref_m5period() {return m5period;} - m5period_t const& ref_m5period() const {return m5period;} - struct m5_links_to_log_t : Links_to_log - { - static constexpr const char* name() {return "m5_links_to_log_t";} - using parent_t = Links_to_log; - - }; - m5_links_to_log_t& ref_m5_links_to_log() {return m5_links_to_log;} - m5_links_to_log_t const& ref_m5_links_to_log() const {return m5_links_to_log;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(m5period); - v(m5_links_to_log); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(m5period); - v(m5_links_to_log); - v(iE_Extensions); - - }; - void clear() - { - m5period.clear(); - m5_links_to_log.clear(); - iE_Extensions.clear(); - - }; - private: - m5period_t m5period; - m5_links_to_log_t m5_links_to_log; - iE_Extensions_t iE_Extensions; - -}; -/* -M6report-interval ::= ENUMERATED { ms1024, ms2048, ms5120, ms10240, ... } -*/ - -struct M6report_interval : asn::enumerated<4, 0, true> -{ - static constexpr const char* name() {return "M6report-interval";} - using parent_t = asn::enumerated<4, 0, true>; - typedef enum { - ms1024 - ,ms2048 - ,ms5120 - ,ms10240 - } index_t; - -}; - -/* -M6delay-threshold ::= ENUMERATED { ms30, ms40, ms50, ms60, ms70, ms80, ms90, ms100, ms150, ms300, ms500, ms750, ... } -*/ - -struct M6delay_threshold : asn::enumerated<12, 0, true> -{ - static constexpr const char* name() {return "M6delay-threshold";} - using parent_t = asn::enumerated<12, 0, true>; - typedef enum { - ms30 - ,ms40 - ,ms50 - ,ms60 - ,ms70 - ,ms80 - ,ms90 - ,ms100 - ,ms150 - ,ms300 - ,ms500 - ,ms750 - } index_t; - -}; - -/* -M6Configuration-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct M6Configuration_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -M6Configuration ::= SEQUENCE { - m6report-interval M6report-interval, - m6delay-threshold M6delay-threshold OPTIONAL, --- This IE shall be present if the M6 Links to log IE is set to “uplink” or to “both-uplink-and-downlink” -- - m6-links-to-log Links-to-log, - iE-Extensions ProtocolExtensionContainer { {M6Configuration-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct M6Configuration : asn::sequence<4, 0, true, 2> -{ - static constexpr const char* name() {return "M6Configuration";} - using parent_t = asn::sequence<4, 0, true, 2>; - struct m6report_interval_t : M6report_interval - { - static constexpr const char* name() {return "m6report_interval_t";} - using parent_t = M6report_interval; - - }; - m6report_interval_t& ref_m6report_interval() {return m6report_interval;} - m6report_interval_t const& ref_m6report_interval() const {return m6report_interval;} - struct m6delay_threshold_t : M6delay_threshold - { - static constexpr const char* name() {return "m6delay_threshold_t";} - using parent_t = M6delay_threshold; - static constexpr bool optional = true; - - }; - m6delay_threshold_t& set_m6delay_threshold() { m6delay_threshold.setpresent(true); return m6delay_threshold;} - m6delay_threshold_t const* get_m6delay_threshold() const {return m6delay_threshold.is_valid() ? &m6delay_threshold : nullptr;} - struct m6_links_to_log_t : Links_to_log - { - static constexpr const char* name() {return "m6_links_to_log_t";} - using parent_t = Links_to_log; - - }; - m6_links_to_log_t& ref_m6_links_to_log() {return m6_links_to_log;} - m6_links_to_log_t const& ref_m6_links_to_log() const {return m6_links_to_log;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(m6report_interval); - v(m6delay_threshold); - v(m6_links_to_log); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(m6report_interval); - v(m6delay_threshold); - v(m6_links_to_log); - v(iE_Extensions); - - }; - void clear() - { - m6report_interval.clear(); - m6delay_threshold.clear(); - m6_links_to_log.clear(); - iE_Extensions.clear(); - - }; - private: - m6report_interval_t m6report_interval; - m6delay_threshold_t m6delay_threshold; - m6_links_to_log_t m6_links_to_log; - iE_Extensions_t iE_Extensions; - -}; -/* -M7period ::= INTEGER(1..60, ...) -*/ - -struct M7period : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "M7period";} - using parent_t = asn::integer<>; - -}; - -/* -M7Configuration-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct M7Configuration_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -M7Configuration ::= SEQUENCE { - m7period M7period, - m7-links-to-log Links-to-log, - iE-Extensions ProtocolExtensionContainer { {M7Configuration-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct M7Configuration : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "M7Configuration";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct m7period_t : M7period - { - static constexpr const char* name() {return "m7period_t";} - using parent_t = M7period; - - }; - m7period_t& ref_m7period() {return m7period;} - m7period_t const& ref_m7period() const {return m7period;} - struct m7_links_to_log_t : Links_to_log - { - static constexpr const char* name() {return "m7_links_to_log_t";} - using parent_t = Links_to_log; - - }; - m7_links_to_log_t& ref_m7_links_to_log() {return m7_links_to_log;} - m7_links_to_log_t const& ref_m7_links_to_log() const {return m7_links_to_log;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(m7period); - v(m7_links_to_log); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(m7period); - v(m7_links_to_log); - v(iE_Extensions); - - }; - void clear() - { - m7period.clear(); - m7_links_to_log.clear(); - iE_Extensions.clear(); - - }; - private: - m7period_t m7period; - m7_links_to_log_t m7_links_to_log; - iE_Extensions_t iE_Extensions; - -}; -/* -MBMS-Service-Area-Identity ::= OCTET STRING (SIZE (2)) -*/ - -struct MBMS_Service_Area_Identity : asn::ostring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "MBMS-Service-Area-Identity";} - using parent_t = asn::ostring<>; - -}; - -/* -MBMS-Service-Area-Identity-List ::= SEQUENCE (SIZE(1.. maxnoofMBMSServiceAreaIdentities)) OF MBMS-Service-Area-Identity -*/ - -struct MBMS_Service_Area_Identity_List_elm : MBMS_Service_Area_Identity -{ - static constexpr const char* name() {return "MBMS_Service_Area_Identity_List_elm";} - using parent_t = MBMS_Service_Area_Identity; - -}; -struct MBMS_Service_Area_Identity_List : asn::sequenceof -{ - static constexpr const char* name() {return "MBMS-Service-Area-Identity-List";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -RadioframeAllocationPeriod ::= ENUMERATED{ - n1, - n2, - n4, - n8, - n16, - n32, - ... -} -*/ - -struct RadioframeAllocationPeriod : asn::enumerated<6, 0, true> -{ - static constexpr const char* name() {return "RadioframeAllocationPeriod";} - using parent_t = asn::enumerated<6, 0, true>; - typedef enum { - n1 - ,n2 - ,n4 - ,n8 - ,n16 - ,n32 - } index_t; - -}; - -/* -RadioframeAllocationOffset ::= INTEGER (0..7, ...) -*/ - -struct RadioframeAllocationOffset : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "RadioframeAllocationOffset";} - using parent_t = asn::integer<>; - -}; - -/* -Oneframe ::= BIT STRING (SIZE (6)) -*/ - -struct Oneframe : asn::bstring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "Oneframe";} - using parent_t = asn::bstring<>; - -}; - -/* -SubframeAllocation ::= CHOICE { - oneframe Oneframe, - fourframes Fourframes, - ... -} -*/ - -struct SubframeAllocation : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "SubframeAllocation";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~SubframeAllocation() {clear();} - struct oneframe_t : Oneframe - { - static constexpr const char* name() {return "oneframe_t";} - using parent_t = Oneframe; - - }; - struct fourframes_t : Fourframes - { - static constexpr const char* name() {return "fourframes_t";} - using parent_t = Fourframes; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - oneframe_t& select_oneframe() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - oneframe_t const* get_oneframe() const { if(get_index() == 1) { return &var.as();} return nullptr; } - fourframes_t& select_fourframes() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - fourframes_t const* get_fourframes() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(oneframe_t)]; - char dummy2[sizeof(fourframes_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -MBSFN-Subframe-Info-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct MBSFN_Subframe_Info_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -MBSFN-Subframe-Info ::= SEQUENCE { - radioframeAllocationPeriod RadioframeAllocationPeriod, - radioframeAllocationOffset RadioframeAllocationOffset, - subframeAllocation SubframeAllocation, - iE-Extensions ProtocolExtensionContainer { {MBSFN-Subframe-Info-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct MBSFN_Subframe_Info : asn::sequence<4, 0, true, 1> -{ - static constexpr const char* name() {return "MBSFN-Subframe-Info";} - using parent_t = asn::sequence<4, 0, true, 1>; - struct radioframeAllocationPeriod_t : RadioframeAllocationPeriod - { - static constexpr const char* name() {return "radioframeAllocationPeriod_t";} - using parent_t = RadioframeAllocationPeriod; - - }; - radioframeAllocationPeriod_t& ref_radioframeAllocationPeriod() {return radioframeAllocationPeriod;} - radioframeAllocationPeriod_t const& ref_radioframeAllocationPeriod() const {return radioframeAllocationPeriod;} - struct radioframeAllocationOffset_t : RadioframeAllocationOffset - { - static constexpr const char* name() {return "radioframeAllocationOffset_t";} - using parent_t = RadioframeAllocationOffset; - - }; - radioframeAllocationOffset_t& ref_radioframeAllocationOffset() {return radioframeAllocationOffset;} - radioframeAllocationOffset_t const& ref_radioframeAllocationOffset() const {return radioframeAllocationOffset;} - struct subframeAllocation_t : SubframeAllocation - { - static constexpr const char* name() {return "subframeAllocation_t";} - using parent_t = SubframeAllocation; - - }; - subframeAllocation_t& ref_subframeAllocation() {return subframeAllocation;} - subframeAllocation_t const& ref_subframeAllocation() const {return subframeAllocation;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(radioframeAllocationPeriod); - v(radioframeAllocationOffset); - v(subframeAllocation); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(radioframeAllocationPeriod); - v(radioframeAllocationOffset); - v(subframeAllocation); - v(iE_Extensions); - - }; - void clear() - { - radioframeAllocationPeriod.clear(); - radioframeAllocationOffset.clear(); - subframeAllocation.clear(); - iE_Extensions.clear(); - - }; - private: - radioframeAllocationPeriod_t radioframeAllocationPeriod; - radioframeAllocationOffset_t radioframeAllocationOffset; - subframeAllocation_t subframeAllocation; - iE_Extensions_t iE_Extensions; - -}; -/* -MBSFN-Subframe-Infolist::= SEQUENCE (SIZE(1.. maxnoofMBSFN)) OF MBSFN-Subframe-Info -*/ - -struct MBSFN_Subframe_Infolist_elm : MBSFN_Subframe_Info -{ - static constexpr const char* name() {return "MBSFN_Subframe_Infolist_elm";} - using parent_t = MBSFN_Subframe_Info; - -}; -struct MBSFN_Subframe_Infolist : asn::sequenceof -{ - static constexpr const char* name() {return "MBSFN-Subframe-Infolist";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -MDT-Activation ::= ENUMERATED { - immediate-MDT-only, - immediate-MDT-and-Trace, - ... -} -*/ - -struct MDT_Activation : asn::enumerated<2, 0, true> -{ - static constexpr const char* name() {return "MDT-Activation";} - using parent_t = asn::enumerated<2, 0, true>; - typedef enum { - immediate_MDT_only - ,immediate_MDT_and_Trace - } index_t; - -}; - -/* -MeasurementsToActivate::= BIT STRING (SIZE (8)) -*/ - -struct MeasurementsToActivate : asn::bstring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "MeasurementsToActivate";} - using parent_t = asn::bstring<>; - -}; - -/* -MDT-Location-Info ::= BIT STRING (SIZE (8)) -*/ - -struct MDT_Location_Info : asn::bstring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "MDT-Location-Info";} - using parent_t = asn::bstring<>; - -}; - -/* -MDTPLMNList ::= SEQUENCE (SIZE(1..maxnoofMDTPLMNs)) OF PLMN-Identity -*/ - -struct MDTPLMNList_elm : PLMN_Identity -{ - static constexpr const char* name() {return "MDTPLMNList_elm";} - using parent_t = PLMN_Identity; - -}; -struct MDTPLMNList : asn::sequenceof -{ - static constexpr const char* name() {return "MDTPLMNList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -WLANMeasConfig::= ENUMERATED {setup,...} -*/ - -struct WLANMeasConfig : asn::enumerated<1, 0, true> -{ - static constexpr const char* name() {return "WLANMeasConfig";} - using parent_t = asn::enumerated<1, 0, true>; - typedef enum { - setup - } index_t; - -}; - -/* -WLANName ::= OCTET STRING (SIZE (1..32)) -*/ - -struct WLANName : asn::ostring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "WLANName";} - using parent_t = asn::ostring<>; - -}; - -/* -WLANMeasConfigNameList ::= SEQUENCE (SIZE(1..maxnoofWLANName)) OF WLANName -*/ - -struct WLANMeasConfigNameList_elm : WLANName -{ - static constexpr const char* name() {return "WLANMeasConfigNameList_elm";} - using parent_t = WLANName; - -}; -struct WLANMeasConfigNameList : asn::sequenceof -{ - static constexpr const char* name() {return "WLANMeasConfigNameList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -WLANMeasurementConfiguration-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct WLANMeasurementConfiguration_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -WLANMeasurementConfiguration ::= SEQUENCE { - wlanMeasConfig WLANMeasConfig, - wlanMeasConfigNameList WLANMeasConfigNameList OPTIONAL, - wlan-rssi ENUMERATED {true, ...} OPTIONAL, - wlan-rtt ENUMERATED {true, ...} OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {WLANMeasurementConfiguration-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct WLANMeasurementConfiguration : asn::sequence<5, 0, true, 4> -{ - static constexpr const char* name() {return "WLANMeasurementConfiguration";} - using parent_t = asn::sequence<5, 0, true, 4>; - struct wlanMeasConfig_t : WLANMeasConfig - { - static constexpr const char* name() {return "wlanMeasConfig_t";} - using parent_t = WLANMeasConfig; - - }; - wlanMeasConfig_t& ref_wlanMeasConfig() {return wlanMeasConfig;} - wlanMeasConfig_t const& ref_wlanMeasConfig() const {return wlanMeasConfig;} - struct wlanMeasConfigNameList_t : WLANMeasConfigNameList - { - static constexpr const char* name() {return "wlanMeasConfigNameList_t";} - using parent_t = WLANMeasConfigNameList; - static constexpr bool optional = true; - - }; - wlanMeasConfigNameList_t& set_wlanMeasConfigNameList() { wlanMeasConfigNameList.setpresent(true); return wlanMeasConfigNameList;} - wlanMeasConfigNameList_t const* get_wlanMeasConfigNameList() const {return wlanMeasConfigNameList.is_valid() ? &wlanMeasConfigNameList : nullptr;} - struct wlan_rssi_t : asn::enumerated<1, 0, true> - { - static constexpr const char* name() {return "wlan_rssi_t";} - using parent_t = asn::enumerated<1, 0, true>; - static constexpr bool optional = true; - typedef enum { - True - } index_t; - - }; - - wlan_rssi_t& set_wlan_rssi() { wlan_rssi.setpresent(true); return wlan_rssi;} - wlan_rssi_t const* get_wlan_rssi() const {return wlan_rssi.is_valid() ? &wlan_rssi : nullptr;} - struct wlan_rtt_t : asn::enumerated<1, 0, true> - { - static constexpr const char* name() {return "wlan_rtt_t";} - using parent_t = asn::enumerated<1, 0, true>; - static constexpr bool optional = true; - typedef enum { - True - } index_t; - - }; - - wlan_rtt_t& set_wlan_rtt() { wlan_rtt.setpresent(true); return wlan_rtt;} - wlan_rtt_t const* get_wlan_rtt() const {return wlan_rtt.is_valid() ? &wlan_rtt : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(wlanMeasConfig); - v(wlanMeasConfigNameList); - v(wlan_rssi); - v(wlan_rtt); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(wlanMeasConfig); - v(wlanMeasConfigNameList); - v(wlan_rssi); - v(wlan_rtt); - v(iE_Extensions); - - }; - void clear() - { - wlanMeasConfig.clear(); - wlanMeasConfigNameList.clear(); - wlan_rssi.clear(); - wlan_rtt.clear(); - iE_Extensions.clear(); - - }; - private: - wlanMeasConfig_t wlanMeasConfig; - wlanMeasConfigNameList_t wlanMeasConfigNameList; - wlan_rssi_t wlan_rssi; - wlan_rtt_t wlan_rtt; - iE_Extensions_t iE_Extensions; - -}; -/* -MDT-Configuration-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - {ID id-M3Configuration CRITICALITY ignore EXTENSION M3Configuration PRESENCE conditional}| - {ID id-M4Configuration CRITICALITY ignore EXTENSION M4Configuration PRESENCE conditional}| - {ID id-M5Configuration CRITICALITY ignore EXTENSION M5Configuration PRESENCE conditional}| - {ID id-MDT-Location-Info CRITICALITY ignore EXTENSION MDT-Location-Info PRESENCE optional}| - {ID id-SignallingBasedMDTPLMNList CRITICALITY ignore EXTENSION MDTPLMNList PRESENCE optional}| - {ID id-M6Configuration CRITICALITY ignore EXTENSION M6Configuration PRESENCE conditional}| - {ID id-M7Configuration CRITICALITY ignore EXTENSION M7Configuration PRESENCE conditional}| - { ID id-BluetoothMeasurementConfiguration CRITICALITY ignore EXTENSION BluetoothMeasurementConfiguration PRESENCE optional}| - { ID id-WLANMeasurementConfiguration CRITICALITY ignore EXTENSION WLANMeasurementConfiguration PRESENCE optional}, - ... -} -*/ - -struct MDT_Configuration_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 10; } - void clear() {type = 0;} - void select_id_M3Configuration() { set(id_M3Configuration); type=1;} - void select_id_M4Configuration() { set(id_M4Configuration); type=2;} - void select_id_M5Configuration() { set(id_M5Configuration); type=3;} - void select_id_MDT_Location_Info() { set(id_MDT_Location_Info); type=4;} - void select_id_SignallingBasedMDTPLMNList() { set(id_SignallingBasedMDTPLMNList); type=5;} - void select_id_M6Configuration() { set(id_M6Configuration); type=6;} - void select_id_M7Configuration() { set(id_M7Configuration); type=7;} - void select_id_BluetoothMeasurementConfiguration() { set(id_BluetoothMeasurementConfiguration); type=8;} - void select_id_WLANMeasurementConfiguration() { set(id_WLANMeasurementConfiguration); type=9;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_M3Configuration)) { type = 1; return true; } - else if(equal(id_M4Configuration)) { type = 2; return true; } - else if(equal(id_M5Configuration)) { type = 3; return true; } - else if(equal(id_MDT_Location_Info)) { type = 4; return true; } - else if(equal(id_SignallingBasedMDTPLMNList)) { type = 5; return true; } - else if(equal(id_M6Configuration)) { type = 6; return true; } - else if(equal(id_M7Configuration)) { type = 7; return true; } - else if(equal(id_BluetoothMeasurementConfiguration)) { type = 8; return true; } - else if(equal(id_WLANMeasurementConfiguration)) { type = 9; return true; } - else { type = 10; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_M3Configuration);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_M4Configuration);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_M5Configuration);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_MDT_Location_Info);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_SignallingBasedMDTPLMNList);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_M6Configuration);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(id_M7Configuration);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(id_BluetoothMeasurementConfiguration);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(id_WLANMeasurementConfiguration);} return false; - case 10: type = 10; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 10; } - void clear() {type = 0;} - void select_id_M3Configuration() { set(ignore); type=1;} - void select_id_M4Configuration() { set(ignore); type=2;} - void select_id_M5Configuration() { set(ignore); type=3;} - void select_id_MDT_Location_Info() { set(ignore); type=4;} - void select_id_SignallingBasedMDTPLMNList() { set(ignore); type=5;} - void select_id_M6Configuration() { set(ignore); type=6;} - void select_id_M7Configuration() { set(ignore); type=7;} - void select_id_BluetoothMeasurementConfiguration() { set(ignore); type=8;} - void select_id_WLANMeasurementConfiguration() { set(ignore); type=9;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else if(equal(ignore)) { type = 6; return true; } - else if(equal(ignore)) { type = 7; return true; } - else if(equal(ignore)) { type = 8; return true; } - else if(equal(ignore)) { type = 9; return true; } - else { type = 10; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(ignore);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(ignore);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(ignore);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(ignore);} return false; - case 10: type = 10; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - M3Configuration& select_id_M3Configuration() { return set(1); } - M3Configuration const* get_id_M3Configuration() const { return get(1); } - M4Configuration& select_id_M4Configuration() { return set(2); } - M4Configuration const* get_id_M4Configuration() const { return get(2); } - M5Configuration& select_id_M5Configuration() { return set(3); } - M5Configuration const* get_id_M5Configuration() const { return get(3); } - MDT_Location_Info& select_id_MDT_Location_Info() { return set(4); } - MDT_Location_Info const* get_id_MDT_Location_Info() const { return get(4); } - MDTPLMNList& select_id_SignallingBasedMDTPLMNList() { return set(5); } - MDTPLMNList const* get_id_SignallingBasedMDTPLMNList() const { return get(5); } - M6Configuration& select_id_M6Configuration() { return set(6); } - M6Configuration const* get_id_M6Configuration() const { return get(6); } - M7Configuration& select_id_M7Configuration() { return set(7); } - M7Configuration const* get_id_M7Configuration() const { return get(7); } - BluetoothMeasurementConfiguration& select_id_BluetoothMeasurementConfiguration() { return set(8); } - BluetoothMeasurementConfiguration const* get_id_BluetoothMeasurementConfiguration() const { return get(8); } - WLANMeasurementConfiguration& select_id_WLANMeasurementConfiguration() { return set(9); } - WLANMeasurementConfiguration const* get_id_WLANMeasurementConfiguration() const { return get(9); } - bool is_unknown() const { return type == 10; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - case 7: var.destroy(); break; - case 8: var.destroy(); break; - case 9: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - v.template operator()(7); - v.template operator()(8); - v.template operator()(9); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_M3Configuration()); return true; - case 2: v(select_id_M4Configuration()); return true; - case 3: v(select_id_M5Configuration()); return true; - case 4: v(select_id_MDT_Location_Info()); return true; - case 5: v(select_id_SignallingBasedMDTPLMNList()); return true; - case 6: v(select_id_M6Configuration()); return true; - case 7: v(select_id_M7Configuration()); return true; - case 8: v(select_id_BluetoothMeasurementConfiguration()); return true; - case 9: v(select_id_WLANMeasurementConfiguration()); return true; - case 10: if(type != 10) {clear(); asn::base::set();} type = 10; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - case 7: v(var.as()); return true; - case 8: v(var.as()); return true; - case 9: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(BluetoothMeasurementConfiguration)]; - char dummy2[sizeof(M3Configuration)]; - char dummy3[sizeof(M4Configuration)]; - char dummy4[sizeof(M5Configuration)]; - char dummy5[sizeof(M6Configuration)]; - char dummy6[sizeof(M7Configuration)]; - char dummy7[sizeof(MDTPLMNList)]; - char dummy8[sizeof(MDT_Location_Info)]; - char dummy9[sizeof(WLANMeasurementConfiguration)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 10; } - void clear() {type = 0;} - void select_id_M3Configuration() { set(conditional); type=1;} - void select_id_M4Configuration() { set(conditional); type=2;} - void select_id_M5Configuration() { set(conditional); type=3;} - void select_id_MDT_Location_Info() { set(optional); type=4;} - void select_id_SignallingBasedMDTPLMNList() { set(optional); type=5;} - void select_id_M6Configuration() { set(conditional); type=6;} - void select_id_M7Configuration() { set(conditional); type=7;} - void select_id_BluetoothMeasurementConfiguration() { set(optional); type=8;} - void select_id_WLANMeasurementConfiguration() { set(optional); type=9;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(conditional)) { type = 1; return true; } - else if(equal(conditional)) { type = 2; return true; } - else if(equal(conditional)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else if(equal(conditional)) { type = 6; return true; } - else if(equal(conditional)) { type = 7; return true; } - else if(equal(optional)) { type = 8; return true; } - else if(equal(optional)) { type = 9; return true; } - else { type = 10; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(conditional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(conditional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(conditional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(conditional);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(conditional);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(optional);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(optional);} return false; - case 10: type = 10; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -MDT-Configuration ::= SEQUENCE { - mdt-Activation MDT-Activation, - areaScopeOfMDT AreaScopeOfMDT, - measurementsToActivate MeasurementsToActivate, - m1reportingTrigger M1ReportingTrigger, - m1thresholdeventA2 M1ThresholdEventA2 OPTIONAL, --- Included in case of event-triggered, or event-triggered periodic reporting for measurement M1 - m1periodicReporting M1PeriodicReporting OPTIONAL, --- Included in case of periodic, or event-triggered periodic reporting for measurement M1 - iE-Extensions ProtocolExtensionContainer { {MDT-Configuration-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct MDT_Configuration : asn::sequence<7, 0, true, 3> -{ - static constexpr const char* name() {return "MDT-Configuration";} - using parent_t = asn::sequence<7, 0, true, 3>; - struct mdt_Activation_t : MDT_Activation - { - static constexpr const char* name() {return "mdt_Activation_t";} - using parent_t = MDT_Activation; - - }; - mdt_Activation_t& ref_mdt_Activation() {return mdt_Activation;} - mdt_Activation_t const& ref_mdt_Activation() const {return mdt_Activation;} - struct areaScopeOfMDT_t : AreaScopeOfMDT - { - static constexpr const char* name() {return "areaScopeOfMDT_t";} - using parent_t = AreaScopeOfMDT; - - }; - areaScopeOfMDT_t& ref_areaScopeOfMDT() {return areaScopeOfMDT;} - areaScopeOfMDT_t const& ref_areaScopeOfMDT() const {return areaScopeOfMDT;} - struct measurementsToActivate_t : MeasurementsToActivate - { - static constexpr const char* name() {return "measurementsToActivate_t";} - using parent_t = MeasurementsToActivate; - - }; - measurementsToActivate_t& ref_measurementsToActivate() {return measurementsToActivate;} - measurementsToActivate_t const& ref_measurementsToActivate() const {return measurementsToActivate;} - struct m1reportingTrigger_t : M1ReportingTrigger - { - static constexpr const char* name() {return "m1reportingTrigger_t";} - using parent_t = M1ReportingTrigger; - - }; - m1reportingTrigger_t& ref_m1reportingTrigger() {return m1reportingTrigger;} - m1reportingTrigger_t const& ref_m1reportingTrigger() const {return m1reportingTrigger;} - struct m1thresholdeventA2_t : M1ThresholdEventA2 - { - static constexpr const char* name() {return "m1thresholdeventA2_t";} - using parent_t = M1ThresholdEventA2; - static constexpr bool optional = true; - - }; - m1thresholdeventA2_t& set_m1thresholdeventA2() { m1thresholdeventA2.setpresent(true); return m1thresholdeventA2;} - m1thresholdeventA2_t const* get_m1thresholdeventA2() const {return m1thresholdeventA2.is_valid() ? &m1thresholdeventA2 : nullptr;} - struct m1periodicReporting_t : M1PeriodicReporting - { - static constexpr const char* name() {return "m1periodicReporting_t";} - using parent_t = M1PeriodicReporting; - static constexpr bool optional = true; - - }; - m1periodicReporting_t& set_m1periodicReporting() { m1periodicReporting.setpresent(true); return m1periodicReporting;} - m1periodicReporting_t const* get_m1periodicReporting() const {return m1periodicReporting.is_valid() ? &m1periodicReporting : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(mdt_Activation); - v(areaScopeOfMDT); - v(measurementsToActivate); - v(m1reportingTrigger); - v(m1thresholdeventA2); - v(m1periodicReporting); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(mdt_Activation); - v(areaScopeOfMDT); - v(measurementsToActivate); - v(m1reportingTrigger); - v(m1thresholdeventA2); - v(m1periodicReporting); - v(iE_Extensions); - - }; - void clear() - { - mdt_Activation.clear(); - areaScopeOfMDT.clear(); - measurementsToActivate.clear(); - m1reportingTrigger.clear(); - m1thresholdeventA2.clear(); - m1periodicReporting.clear(); - iE_Extensions.clear(); - - }; - private: - mdt_Activation_t mdt_Activation; - areaScopeOfMDT_t areaScopeOfMDT; - measurementsToActivate_t measurementsToActivate; - m1reportingTrigger_t m1reportingTrigger; - m1thresholdeventA2_t m1thresholdeventA2; - m1periodicReporting_t m1periodicReporting; - iE_Extensions_t iE_Extensions; - -}; -/* -MakeBeforeBreakIndicator::= ENUMERATED {true, ...} -*/ - -struct MakeBeforeBreakIndicator : asn::enumerated<1, 0, true> -{ - static constexpr const char* name() {return "MakeBeforeBreakIndicator";} - using parent_t = asn::enumerated<1, 0, true>; - typedef enum { - True - } index_t; - -}; - -/* -ManagementBasedMDTallowed ::= ENUMERATED {allowed, ...} -*/ - -struct ManagementBasedMDTallowed : asn::enumerated<1, 0, true> -{ - static constexpr const char* name() {return "ManagementBasedMDTallowed";} - using parent_t = asn::enumerated<1, 0, true>; - typedef enum { - allowed - } index_t; - -}; - -/* -Masked-IMEISV ::= BIT STRING (SIZE (64)) -*/ - -struct Masked_IMEISV : asn::bstring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "Masked-IMEISV";} - using parent_t = asn::bstring<>; - -}; - -/* -MeNBCoordinationAssistanceInformation ::= ENUMERATED{ - coordination-not-required, - ... -} -*/ - -struct MeNBCoordinationAssistanceInformation : asn::enumerated<1, 0, true> -{ - static constexpr const char* name() {return "MeNBCoordinationAssistanceInformation";} - using parent_t = asn::enumerated<1, 0, true>; - typedef enum { - coordination_not_required - } index_t; - -}; - -/* -NRCellIdentifier ::= BIT STRING (SIZE (36)) -*/ - -struct NRCellIdentifier : asn::bstring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "NRCellIdentifier";} - using parent_t = asn::bstring<>; - -}; - -/* -NRCGI-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct NRCGI_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -NRCGI ::= SEQUENCE { - pLMN-Identity PLMN-Identity, - nRcellIdentifier NRCellIdentifier, - iE-Extensions ProtocolExtensionContainer { {NRCGI-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct NRCGI : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "NRCGI";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct pLMN_Identity_t : PLMN_Identity - { - static constexpr const char* name() {return "pLMN_Identity_t";} - using parent_t = PLMN_Identity; - - }; - pLMN_Identity_t& ref_pLMN_Identity() {return pLMN_Identity;} - pLMN_Identity_t const& ref_pLMN_Identity() const {return pLMN_Identity;} - struct nRcellIdentifier_t : NRCellIdentifier - { - static constexpr const char* name() {return "nRcellIdentifier_t";} - using parent_t = NRCellIdentifier; - - }; - nRcellIdentifier_t& ref_nRcellIdentifier() {return nRcellIdentifier;} - nRcellIdentifier_t const& ref_nRcellIdentifier() const {return nRcellIdentifier;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(pLMN_Identity); - v(nRcellIdentifier); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(pLMN_Identity); - v(nRcellIdentifier); - v(iE_Extensions); - - }; - void clear() - { - pLMN_Identity.clear(); - nRcellIdentifier.clear(); - iE_Extensions.clear(); - - }; - private: - pLMN_Identity_t pLMN_Identity; - nRcellIdentifier_t nRcellIdentifier; - iE_Extensions_t iE_Extensions; - -}; -/* -MeNBResourceCoordinationInformationExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-NRCGI CRITICALITY ignore EXTENSION NRCGI PRESENCE optional}| - { ID id-MeNBCoordinationAssistanceInformation CRITICALITY reject EXTENSION MeNBCoordinationAssistanceInformation PRESENCE optional}, - ... -} -*/ - -struct MeNBResourceCoordinationInformationExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_NRCGI() { set(id_NRCGI); type=1;} - void select_id_MeNBCoordinationAssistanceInformation() { set(id_MeNBCoordinationAssistanceInformation); type=2;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_NRCGI)) { type = 1; return true; } - else if(equal(id_MeNBCoordinationAssistanceInformation)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_NRCGI);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_MeNBCoordinationAssistanceInformation);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_NRCGI() { set(ignore); type=1;} - void select_id_MeNBCoordinationAssistanceInformation() { set(reject); type=2;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - NRCGI& select_id_NRCGI() { return set(1); } - NRCGI const* get_id_NRCGI() const { return get(1); } - MeNBCoordinationAssistanceInformation& select_id_MeNBCoordinationAssistanceInformation() { return set(2); } - MeNBCoordinationAssistanceInformation const* get_id_MeNBCoordinationAssistanceInformation() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_NRCGI()); return true; - case 2: v(select_id_MeNBCoordinationAssistanceInformation()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(MeNBCoordinationAssistanceInformation)]; - char dummy2[sizeof(NRCGI)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_NRCGI() { set(optional); type=1;} - void select_id_MeNBCoordinationAssistanceInformation() { set(optional); type=2;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -MeNBResourceCoordinationInformation ::= SEQUENCE { - eUTRA-Cell-ID ECGI, - uLCoordinationInformation BIT STRING (SIZE(6..4400, ...)), - dLCoordinationInformation BIT STRING (SIZE(6..4400, ...)) OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {MeNBResourceCoordinationInformationExtIEs} } OPTIONAL, - ... -} -*/ - -struct MeNBResourceCoordinationInformation : asn::sequence<4, 0, true, 2> -{ - static constexpr const char* name() {return "MeNBResourceCoordinationInformation";} - using parent_t = asn::sequence<4, 0, true, 2>; - struct eUTRA_Cell_ID_t : ECGI - { - static constexpr const char* name() {return "eUTRA_Cell_ID_t";} - using parent_t = ECGI; - - }; - eUTRA_Cell_ID_t& ref_eUTRA_Cell_ID() {return eUTRA_Cell_ID;} - eUTRA_Cell_ID_t const& ref_eUTRA_Cell_ID() const {return eUTRA_Cell_ID;} - struct uLCoordinationInformation_t : asn::bstring<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "uLCoordinationInformation_t";} - using parent_t = asn::bstring<>; - - }; - - uLCoordinationInformation_t& ref_uLCoordinationInformation() {return uLCoordinationInformation;} - uLCoordinationInformation_t const& ref_uLCoordinationInformation() const {return uLCoordinationInformation;} - struct dLCoordinationInformation_t : asn::bstring<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "dLCoordinationInformation_t";} - using parent_t = asn::bstring<>; - static constexpr bool optional = true; - - }; - - dLCoordinationInformation_t& set_dLCoordinationInformation() { dLCoordinationInformation.setpresent(true); return dLCoordinationInformation;} - dLCoordinationInformation_t const* get_dLCoordinationInformation() const {return dLCoordinationInformation.is_valid() ? &dLCoordinationInformation : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(eUTRA_Cell_ID); - v(uLCoordinationInformation); - v(dLCoordinationInformation); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(eUTRA_Cell_ID); - v(uLCoordinationInformation); - v(dLCoordinationInformation); - v(iE_Extensions); - - }; - void clear() - { - eUTRA_Cell_ID.clear(); - uLCoordinationInformation.clear(); - dLCoordinationInformation.clear(); - iE_Extensions.clear(); - - }; - private: - eUTRA_Cell_ID_t eUTRA_Cell_ID; - uLCoordinationInformation_t uLCoordinationInformation; - dLCoordinationInformation_t dLCoordinationInformation; - iE_Extensions_t iE_Extensions; - -}; -/* -MeNBtoSeNBContainer ::= OCTET STRING -*/ - -struct MeNBtoSeNBContainer : asn::ostring<> -{ - static constexpr const char* name() {return "MeNBtoSeNBContainer";} - using parent_t = asn::ostring<>; - -}; - -/* -MeNBtoSgNBContainer ::= OCTET STRING -*/ - -struct MeNBtoSgNBContainer : asn::ostring<> -{ - static constexpr const char* name() {return "MeNBtoSgNBContainer";} - using parent_t = asn::ostring<>; - -}; - -/* -Measurement-ID ::= INTEGER (1..4095, ...) -*/ - -struct Measurement_ID : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "Measurement-ID";} - using parent_t = asn::integer<>; - -}; - -/* -MobilityParametersInformation ::= SEQUENCE { - handoverTriggerChange INTEGER (-20..20), - ... -} -*/ - -struct MobilityParametersInformation : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "MobilityParametersInformation";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct handoverTriggerChange_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "handoverTriggerChange_t";} - using parent_t = asn::integer<>; - - }; - - handoverTriggerChange_t& ref_handoverTriggerChange() {return handoverTriggerChange;} - handoverTriggerChange_t const& ref_handoverTriggerChange() const {return handoverTriggerChange;} - template void decode(V& v) - { - v(handoverTriggerChange); - - }; - template void encode(V& v) const - { - v(handoverTriggerChange); - - }; - void clear() - { - handoverTriggerChange.clear(); - - }; - private: - handoverTriggerChange_t handoverTriggerChange; - -}; -/* -MobilityParametersModificationRange ::= SEQUENCE { - handoverTriggerChangeLowerLimit INTEGER (-20..20), - handoverTriggerChangeUpperLimit INTEGER (-20..20), - ... -} -*/ - -struct MobilityParametersModificationRange : asn::sequence<2, 0, true, 0> -{ - static constexpr const char* name() {return "MobilityParametersModificationRange";} - using parent_t = asn::sequence<2, 0, true, 0>; - struct handoverTriggerChangeLowerLimit_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "handoverTriggerChangeLowerLimit_t";} - using parent_t = asn::integer<>; - - }; - - handoverTriggerChangeLowerLimit_t& ref_handoverTriggerChangeLowerLimit() {return handoverTriggerChangeLowerLimit;} - handoverTriggerChangeLowerLimit_t const& ref_handoverTriggerChangeLowerLimit() const {return handoverTriggerChangeLowerLimit;} - struct handoverTriggerChangeUpperLimit_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "handoverTriggerChangeUpperLimit_t";} - using parent_t = asn::integer<>; - - }; - - handoverTriggerChangeUpperLimit_t& ref_handoverTriggerChangeUpperLimit() {return handoverTriggerChangeUpperLimit;} - handoverTriggerChangeUpperLimit_t const& ref_handoverTriggerChangeUpperLimit() const {return handoverTriggerChangeUpperLimit;} - template void decode(V& v) - { - v(handoverTriggerChangeLowerLimit); - v(handoverTriggerChangeUpperLimit); - - }; - template void encode(V& v) const - { - v(handoverTriggerChangeLowerLimit); - v(handoverTriggerChangeUpperLimit); - - }; - void clear() - { - handoverTriggerChangeLowerLimit.clear(); - handoverTriggerChangeUpperLimit.clear(); - - }; - private: - handoverTriggerChangeLowerLimit_t handoverTriggerChangeLowerLimit; - handoverTriggerChangeUpperLimit_t handoverTriggerChangeUpperLimit; - -}; -/* -MultibandInfoList ::= SEQUENCE (SIZE(1..maxnoofBands)) OF BandInfo -*/ - -struct MultibandInfoList_elm : BandInfo -{ - static constexpr const char* name() {return "MultibandInfoList_elm";} - using parent_t = BandInfo; - -}; -struct MultibandInfoList : asn::sequenceof -{ - static constexpr const char* name() {return "MultibandInfoList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -NRSCS ::= ENUMERATED { scs15, scs30, scs60, scs120, ...} -*/ - -struct NRSCS : asn::enumerated<4, 0, true> -{ - static constexpr const char* name() {return "NRSCS";} - using parent_t = asn::enumerated<4, 0, true>; - typedef enum { - scs15 - ,scs30 - ,scs60 - ,scs120 - } index_t; - -}; - -/* -NRNRB ::= ENUMERATED { nrb11, nrb18, nrb24, nrb25, nrb31, nrb32, nrb38, nrb51, nrb52, nrb65, nrb66, nrb78, nrb79, nrb93, nrb106, nrb107, nrb121, nrb132, nrb133, nrb135, nrb160, nrb162, nrb189, nrb216, nrb217, nrb245, nrb264, nrb270, nrb273, ...} -*/ - -struct NRNRB : asn::enumerated<29, 0, true> -{ - static constexpr const char* name() {return "NRNRB";} - using parent_t = asn::enumerated<29, 0, true>; - typedef enum { - nrb11 - ,nrb18 - ,nrb24 - ,nrb25 - ,nrb31 - ,nrb32 - ,nrb38 - ,nrb51 - ,nrb52 - ,nrb65 - ,nrb66 - ,nrb78 - ,nrb79 - ,nrb93 - ,nrb106 - ,nrb107 - ,nrb121 - ,nrb132 - ,nrb133 - ,nrb135 - ,nrb160 - ,nrb162 - ,nrb189 - ,nrb216 - ,nrb217 - ,nrb245 - ,nrb264 - ,nrb270 - ,nrb273 - } index_t; - -}; - -/* -NR-TxBW-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct NR_TxBW_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -NR-TxBW ::= SEQUENCE { - nRSCS NRSCS, - nRNRB NRNRB, - iE-Extensions ProtocolExtensionContainer { {NR-TxBW-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct NR_TxBW : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "NR-TxBW";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct nRSCS_t : NRSCS - { - static constexpr const char* name() {return "nRSCS_t";} - using parent_t = NRSCS; - - }; - nRSCS_t& ref_nRSCS() {return nRSCS;} - nRSCS_t const& ref_nRSCS() const {return nRSCS;} - struct nRNRB_t : NRNRB - { - static constexpr const char* name() {return "nRNRB_t";} - using parent_t = NRNRB; - - }; - nRNRB_t& ref_nRNRB() {return nRNRB;} - nRNRB_t const& ref_nRNRB() const {return nRNRB;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(nRSCS); - v(nRNRB); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(nRSCS); - v(nRNRB); - v(iE_Extensions); - - }; - void clear() - { - nRSCS.clear(); - nRNRB.clear(); - iE_Extensions.clear(); - - }; - private: - nRSCS_t nRSCS; - nRNRB_t nRNRB; - iE_Extensions_t iE_Extensions; - -}; -/* -SULInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct SULInformation_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SULInformation ::= SEQUENCE { - sUL-ARFCN INTEGER (0.. 3279165), - sUL-TxBW NR-TxBW, - iE-Extensions ProtocolExtensionContainer { {SULInformation-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct SULInformation : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "SULInformation";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct sUL_ARFCN_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "sUL_ARFCN_t";} - using parent_t = asn::integer<>; - - }; - - sUL_ARFCN_t& ref_sUL_ARFCN() {return sUL_ARFCN;} - sUL_ARFCN_t const& ref_sUL_ARFCN() const {return sUL_ARFCN;} - struct sUL_TxBW_t : NR_TxBW - { - static constexpr const char* name() {return "sUL_TxBW_t";} - using parent_t = NR_TxBW; - - }; - sUL_TxBW_t& ref_sUL_TxBW() {return sUL_TxBW;} - sUL_TxBW_t const& ref_sUL_TxBW() const {return sUL_TxBW;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(sUL_ARFCN); - v(sUL_TxBW); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(sUL_ARFCN); - v(sUL_TxBW); - v(iE_Extensions); - - }; - void clear() - { - sUL_ARFCN.clear(); - sUL_TxBW.clear(); - iE_Extensions.clear(); - - }; - private: - sUL_ARFCN_t sUL_ARFCN; - sUL_TxBW_t sUL_TxBW; - iE_Extensions_t iE_Extensions; - -}; -/* -NRFreqInfo-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct NRFreqInfo_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -NRFreqInfo ::= SEQUENCE{ - nRARFCN INTEGER (0.. 3279165), - freqBandListNr SEQUENCE (SIZE(1..maxnoofNrCellBands)) OF FreqBandNrItem, - sULInformation SULInformation OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {NRFreqInfo-ExtIEs} } OPTIONAL, - - ... -} -*/ - -struct NRFreqInfo : asn::sequence<4, 0, true, 2> -{ - static constexpr const char* name() {return "NRFreqInfo";} - using parent_t = asn::sequence<4, 0, true, 2>; - struct nRARFCN_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "nRARFCN_t";} - using parent_t = asn::integer<>; - - }; - - nRARFCN_t& ref_nRARFCN() {return nRARFCN;} - nRARFCN_t const& ref_nRARFCN() const {return nRARFCN;} - struct freqBandListNr_t_elm : FreqBandNrItem - { - static constexpr const char* name() {return "freqBandListNr_t_elm";} - using parent_t = FreqBandNrItem; - - }; - struct freqBandListNr_t : asn::sequenceof - { - static constexpr const char* name() {return "freqBandListNr_t";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - - }; - freqBandListNr_t& ref_freqBandListNr() {return freqBandListNr;} - freqBandListNr_t const& ref_freqBandListNr() const {return freqBandListNr;} - struct sULInformation_t : SULInformation - { - static constexpr const char* name() {return "sULInformation_t";} - using parent_t = SULInformation; - static constexpr bool optional = true; - - }; - sULInformation_t& set_sULInformation() { sULInformation.setpresent(true); return sULInformation;} - sULInformation_t const* get_sULInformation() const {return sULInformation.is_valid() ? &sULInformation : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(nRARFCN); - v(freqBandListNr); - v(sULInformation); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(nRARFCN); - v(freqBandListNr); - v(sULInformation); - v(iE_Extensions); - - }; - void clear() - { - nRARFCN.clear(); - freqBandListNr.clear(); - sULInformation.clear(); - iE_Extensions.clear(); - - }; - private: - nRARFCN_t nRARFCN; - freqBandListNr_t freqBandListNr; - sULInformation_t sULInformation; - iE_Extensions_t iE_Extensions; - -}; -/* -NRPCI ::= INTEGER (0..1007) -*/ - -struct NRPCI : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "NRPCI";} - using parent_t = asn::integer<>; - -}; - -/* -NRencryptionAlgorithms ::= BIT STRING (SIZE (16,...)) -*/ - -struct NRencryptionAlgorithms : asn::bstring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "NRencryptionAlgorithms";} - using parent_t = asn::bstring<>; - -}; - -/* -NRintegrityProtectionAlgorithms ::= BIT STRING (SIZE (16,...)) -*/ - -struct NRintegrityProtectionAlgorithms : asn::bstring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "NRintegrityProtectionAlgorithms";} - using parent_t = asn::bstring<>; - -}; - -/* -NRUESecurityCapabilities-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct NRUESecurityCapabilities_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -NRUESecurityCapabilities ::= SEQUENCE { - nRencryptionAlgorithms NRencryptionAlgorithms, - nRintegrityProtectionAlgorithms NRintegrityProtectionAlgorithms, - iE-Extensions ProtocolExtensionContainer { {NRUESecurityCapabilities-ExtIEs} } OPTIONAL, -... -} -*/ - -struct NRUESecurityCapabilities : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "NRUESecurityCapabilities";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct nRencryptionAlgorithms_t : NRencryptionAlgorithms - { - static constexpr const char* name() {return "nRencryptionAlgorithms_t";} - using parent_t = NRencryptionAlgorithms; - - }; - nRencryptionAlgorithms_t& ref_nRencryptionAlgorithms() {return nRencryptionAlgorithms;} - nRencryptionAlgorithms_t const& ref_nRencryptionAlgorithms() const {return nRencryptionAlgorithms;} - struct nRintegrityProtectionAlgorithms_t : NRintegrityProtectionAlgorithms - { - static constexpr const char* name() {return "nRintegrityProtectionAlgorithms_t";} - using parent_t = NRintegrityProtectionAlgorithms; - - }; - nRintegrityProtectionAlgorithms_t& ref_nRintegrityProtectionAlgorithms() {return nRintegrityProtectionAlgorithms;} - nRintegrityProtectionAlgorithms_t const& ref_nRintegrityProtectionAlgorithms() const {return nRintegrityProtectionAlgorithms;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(nRencryptionAlgorithms); - v(nRintegrityProtectionAlgorithms); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(nRencryptionAlgorithms); - v(nRintegrityProtectionAlgorithms); - v(iE_Extensions); - - }; - void clear() - { - nRencryptionAlgorithms.clear(); - nRintegrityProtectionAlgorithms.clear(); - iE_Extensions.clear(); - - }; - private: - nRencryptionAlgorithms_t nRencryptionAlgorithms; - nRintegrityProtectionAlgorithms_t nRintegrityProtectionAlgorithms; - iE_Extensions_t iE_Extensions; - -}; -/* -PCI ::= INTEGER (0..503, ...) -*/ - -struct PCI : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "PCI";} - using parent_t = asn::integer<>; - -}; - -/* -Neighbour-Information-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-NeighbourTAC CRITICALITY ignore EXTENSION TAC PRESENCE optional}| - { ID id-eARFCNExtension CRITICALITY reject EXTENSION EARFCNExtension PRESENCE optional}, - ... -} -*/ - -struct Neighbour_Information_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_NeighbourTAC() { set(id_NeighbourTAC); type=1;} - void select_id_eARFCNExtension() { set(id_eARFCNExtension); type=2;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_NeighbourTAC)) { type = 1; return true; } - else if(equal(id_eARFCNExtension)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_NeighbourTAC);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_eARFCNExtension);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_NeighbourTAC() { set(ignore); type=1;} - void select_id_eARFCNExtension() { set(reject); type=2;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - TAC& select_id_NeighbourTAC() { return set(1); } - TAC const* get_id_NeighbourTAC() const { return get(1); } - EARFCNExtension& select_id_eARFCNExtension() { return set(2); } - EARFCNExtension const* get_id_eARFCNExtension() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_NeighbourTAC()); return true; - case 2: v(select_id_eARFCNExtension()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(EARFCNExtension)]; - char dummy2[sizeof(TAC)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_NeighbourTAC() { set(optional); type=1;} - void select_id_eARFCNExtension() { set(optional); type=2;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -Neighbour-Information ::= SEQUENCE (SIZE (0..maxnoofNeighbours)) OF SEQUENCE { - eCGI ECGI, - pCI PCI, - eARFCN EARFCN, - iE-Extensions ProtocolExtensionContainer { {Neighbour-Information-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct Neighbour_Information_elm : asn::sequence<4, 0, true, 1> -{ - static constexpr const char* name() {return "Neighbour_Information_elm";} - using parent_t = asn::sequence<4, 0, true, 1>; - struct eCGI_t : ECGI - { - static constexpr const char* name() {return "eCGI_t";} - using parent_t = ECGI; - - }; - eCGI_t& ref_eCGI() {return eCGI;} - eCGI_t const& ref_eCGI() const {return eCGI;} - struct pCI_t : PCI - { - static constexpr const char* name() {return "pCI_t";} - using parent_t = PCI; - - }; - pCI_t& ref_pCI() {return pCI;} - pCI_t const& ref_pCI() const {return pCI;} - struct eARFCN_t : EARFCN - { - static constexpr const char* name() {return "eARFCN_t";} - using parent_t = EARFCN; - - }; - eARFCN_t& ref_eARFCN() {return eARFCN;} - eARFCN_t const& ref_eARFCN() const {return eARFCN;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(eCGI); - v(pCI); - v(eARFCN); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(eCGI); - v(pCI); - v(eARFCN); - v(iE_Extensions); - - }; - void clear() - { - eCGI.clear(); - pCI.clear(); - eARFCN.clear(); - iE_Extensions.clear(); - - }; - private: - eCGI_t eCGI; - pCI_t pCI; - eARFCN_t eARFCN; - iE_Extensions_t iE_Extensions; - -}; -struct Neighbour_Information : asn::sequenceof -{ - static constexpr const char* name() {return "Neighbour-Information";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -NewDRBIDrequest::= ENUMERATED {true, ...} -*/ - -struct NewDRBIDrequest : asn::enumerated<1, 0, true> -{ - static constexpr const char* name() {return "NewDRBIDrequest";} - using parent_t = asn::enumerated<1, 0, true>; - typedef enum { - True - } index_t; - -}; - -/* -Number-of-Antennaports ::= ENUMERATED { - an1, - an2, - an4, - ... -} -*/ - -struct Number_of_Antennaports : asn::enumerated<3, 0, true> -{ - static constexpr const char* name() {return "Number-of-Antennaports";} - using parent_t = asn::enumerated<3, 0, true>; - typedef enum { - an1 - ,an2 - ,an4 - } index_t; - -}; - -/* -PDCPChangeIndication ::= ENUMERATED {s-KgNB-update-required, pDCP-data-recovery-required,...} -*/ - -struct PDCPChangeIndication : asn::enumerated<2, 0, true> -{ - static constexpr const char* name() {return "PDCPChangeIndication";} - using parent_t = asn::enumerated<2, 0, true>; - typedef enum { - s_KgNB_update_required - ,pDCP_data_recovery_required - } index_t; - -}; - -/* -PDCPSnLength ::= ENUMERATED {twelve-bits,eighteen-bits,...} -*/ - -struct PDCPSnLength : asn::enumerated<2, 0, true> -{ - static constexpr const char* name() {return "PDCPSnLength";} - using parent_t = asn::enumerated<2, 0, true>; - typedef enum { - twelve_bits - ,eighteen_bits - } index_t; - -}; - -/* -PRACH-Configuration-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct PRACH_Configuration_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -PRACH-Configuration ::= SEQUENCE { - rootSequenceIndex INTEGER (0..837), - zeroCorrelationIndex INTEGER (0..15), - highSpeedFlag BOOLEAN, - prach-FreqOffset INTEGER (0..94), - prach-ConfigIndex INTEGER (0..63) OPTIONAL, -- present for TDD -- - iE-Extensions ProtocolExtensionContainer { {PRACH-Configuration-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct PRACH_Configuration : asn::sequence<6, 0, true, 2> -{ - static constexpr const char* name() {return "PRACH-Configuration";} - using parent_t = asn::sequence<6, 0, true, 2>; - struct rootSequenceIndex_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "rootSequenceIndex_t";} - using parent_t = asn::integer<>; - - }; - - rootSequenceIndex_t& ref_rootSequenceIndex() {return rootSequenceIndex;} - rootSequenceIndex_t const& ref_rootSequenceIndex() const {return rootSequenceIndex;} - struct zeroCorrelationIndex_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "zeroCorrelationIndex_t";} - using parent_t = asn::integer<>; - - }; - - zeroCorrelationIndex_t& ref_zeroCorrelationIndex() {return zeroCorrelationIndex;} - zeroCorrelationIndex_t const& ref_zeroCorrelationIndex() const {return zeroCorrelationIndex;} - struct highSpeedFlag_t : asn::boolean - { - static constexpr const char* name() {return "highSpeedFlag_t";} - using parent_t = asn::boolean; - - }; - highSpeedFlag_t& ref_highSpeedFlag() {return highSpeedFlag;} - highSpeedFlag_t const& ref_highSpeedFlag() const {return highSpeedFlag;} - struct prach_FreqOffset_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "prach_FreqOffset_t";} - using parent_t = asn::integer<>; - - }; - - prach_FreqOffset_t& ref_prach_FreqOffset() {return prach_FreqOffset;} - prach_FreqOffset_t const& ref_prach_FreqOffset() const {return prach_FreqOffset;} - struct prach_ConfigIndex_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "prach_ConfigIndex_t";} - using parent_t = asn::integer<>; - static constexpr bool optional = true; - - }; - - prach_ConfigIndex_t& set_prach_ConfigIndex() { prach_ConfigIndex.setpresent(true); return prach_ConfigIndex;} - prach_ConfigIndex_t const* get_prach_ConfigIndex() const {return prach_ConfigIndex.is_valid() ? &prach_ConfigIndex : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(rootSequenceIndex); - v(zeroCorrelationIndex); - v(highSpeedFlag); - v(prach_FreqOffset); - v(prach_ConfigIndex); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(rootSequenceIndex); - v(zeroCorrelationIndex); - v(highSpeedFlag); - v(prach_FreqOffset); - v(prach_ConfigIndex); - v(iE_Extensions); - - }; - void clear() - { - rootSequenceIndex.clear(); - zeroCorrelationIndex.clear(); - highSpeedFlag.clear(); - prach_FreqOffset.clear(); - prach_ConfigIndex.clear(); - iE_Extensions.clear(); - - }; - private: - rootSequenceIndex_t rootSequenceIndex; - zeroCorrelationIndex_t zeroCorrelationIndex; - highSpeedFlag_t highSpeedFlag; - prach_FreqOffset_t prach_FreqOffset; - prach_ConfigIndex_t prach_ConfigIndex; - iE_Extensions_t iE_Extensions; - -}; -/* -PedestrianUE ::= ENUMERATED { - authorized, - not-authorized, - ... -} -*/ - -struct PedestrianUE : asn::enumerated<2, 0, true> -{ - static constexpr const char* name() {return "PedestrianUE";} - using parent_t = asn::enumerated<2, 0, true>; - typedef enum { - authorized - ,not_authorized - } index_t; - -}; - -/* -Port-Number ::= OCTET STRING (SIZE (2)) -*/ - -struct Port_Number : asn::ostring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "Port-Number";} - using parent_t = asn::ostring<>; - -}; - -/* -ProSeDirectDiscovery ::= ENUMERATED { - authorized, - not-authorized, - ... -} -*/ - -struct ProSeDirectDiscovery : asn::enumerated<2, 0, true> -{ - static constexpr const char* name() {return "ProSeDirectDiscovery";} - using parent_t = asn::enumerated<2, 0, true>; - typedef enum { - authorized - ,not_authorized - } index_t; - -}; - -/* -ProSeDirectCommunication ::= ENUMERATED { - authorized, - not-authorized, - ... -} -*/ - -struct ProSeDirectCommunication : asn::enumerated<2, 0, true> -{ - static constexpr const char* name() {return "ProSeDirectCommunication";} - using parent_t = asn::enumerated<2, 0, true>; - typedef enum { - authorized - ,not_authorized - } index_t; - -}; - -/* -ProSeUEtoNetworkRelaying ::= ENUMERATED { - authorized, - not-authorized, - ... -} -*/ - -struct ProSeUEtoNetworkRelaying : asn::enumerated<2, 0, true> -{ - static constexpr const char* name() {return "ProSeUEtoNetworkRelaying";} - using parent_t = asn::enumerated<2, 0, true>; - typedef enum { - authorized - ,not_authorized - } index_t; - -}; - -/* -ProSeAuthorized-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-ProSeUEtoNetworkRelaying CRITICALITY ignore EXTENSION ProSeUEtoNetworkRelaying PRESENCE optional}, - ... -} -*/ - -struct ProSeAuthorized_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_ProSeUEtoNetworkRelaying() { set(id_ProSeUEtoNetworkRelaying); type=1;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_ProSeUEtoNetworkRelaying)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_ProSeUEtoNetworkRelaying);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_ProSeUEtoNetworkRelaying() { set(ignore); type=1;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - ProSeUEtoNetworkRelaying& select_id_ProSeUEtoNetworkRelaying() { return set(1); } - ProSeUEtoNetworkRelaying const* get_id_ProSeUEtoNetworkRelaying() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_ProSeUEtoNetworkRelaying()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(ProSeUEtoNetworkRelaying)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_ProSeUEtoNetworkRelaying() { set(optional); type=1;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ProSeAuthorized ::= SEQUENCE { - proSeDirectDiscovery ProSeDirectDiscovery OPTIONAL, - proSeDirectCommunication ProSeDirectCommunication OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {ProSeAuthorized-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct ProSeAuthorized : asn::sequence<3, 0, true, 3> -{ - static constexpr const char* name() {return "ProSeAuthorized";} - using parent_t = asn::sequence<3, 0, true, 3>; - struct proSeDirectDiscovery_t : ProSeDirectDiscovery - { - static constexpr const char* name() {return "proSeDirectDiscovery_t";} - using parent_t = ProSeDirectDiscovery; - static constexpr bool optional = true; - - }; - proSeDirectDiscovery_t& set_proSeDirectDiscovery() { proSeDirectDiscovery.setpresent(true); return proSeDirectDiscovery;} - proSeDirectDiscovery_t const* get_proSeDirectDiscovery() const {return proSeDirectDiscovery.is_valid() ? &proSeDirectDiscovery : nullptr;} - struct proSeDirectCommunication_t : ProSeDirectCommunication - { - static constexpr const char* name() {return "proSeDirectCommunication_t";} - using parent_t = ProSeDirectCommunication; - static constexpr bool optional = true; - - }; - proSeDirectCommunication_t& set_proSeDirectCommunication() { proSeDirectCommunication.setpresent(true); return proSeDirectCommunication;} - proSeDirectCommunication_t const* get_proSeDirectCommunication() const {return proSeDirectCommunication.is_valid() ? &proSeDirectCommunication : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(proSeDirectDiscovery); - v(proSeDirectCommunication); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(proSeDirectDiscovery); - v(proSeDirectCommunication); - v(iE_Extensions); - - }; - void clear() - { - proSeDirectDiscovery.clear(); - proSeDirectCommunication.clear(); - iE_Extensions.clear(); - - }; - private: - proSeDirectDiscovery_t proSeDirectDiscovery; - proSeDirectCommunication_t proSeDirectCommunication; - iE_Extensions_t iE_Extensions; - -}; -/* -ResourceType ::= ENUMERATED { - downlinknonCRS, - cRS, - uplink, - ... -} -*/ - -struct ResourceType : asn::enumerated<3, 0, true> -{ - static constexpr const char* name() {return "ResourceType";} - using parent_t = asn::enumerated<3, 0, true>; - typedef enum { - downlinknonCRS - ,cRS - ,uplink - } index_t; - -}; - -/* -ProtectedFootprintTimePattern-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct ProtectedFootprintTimePattern_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ProtectedFootprintTimePattern ::= SEQUENCE { - protectedFootprintTimePeriodicity INTEGER (1..320, ...), - protectedFootprintStartTime INTEGER (1..20, ...), - iE-Extensions ProtocolExtensionContainer { {ProtectedFootprintTimePattern-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct ProtectedFootprintTimePattern : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "ProtectedFootprintTimePattern";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct protectedFootprintTimePeriodicity_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "protectedFootprintTimePeriodicity_t";} - using parent_t = asn::integer<>; - - }; - - protectedFootprintTimePeriodicity_t& ref_protectedFootprintTimePeriodicity() {return protectedFootprintTimePeriodicity;} - protectedFootprintTimePeriodicity_t const& ref_protectedFootprintTimePeriodicity() const {return protectedFootprintTimePeriodicity;} - struct protectedFootprintStartTime_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "protectedFootprintStartTime_t";} - using parent_t = asn::integer<>; - - }; - - protectedFootprintStartTime_t& ref_protectedFootprintStartTime() {return protectedFootprintStartTime;} - protectedFootprintStartTime_t const& ref_protectedFootprintStartTime() const {return protectedFootprintStartTime;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(protectedFootprintTimePeriodicity); - v(protectedFootprintStartTime); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(protectedFootprintTimePeriodicity); - v(protectedFootprintStartTime); - v(iE_Extensions); - - }; - void clear() - { - protectedFootprintTimePeriodicity.clear(); - protectedFootprintStartTime.clear(); - iE_Extensions.clear(); - - }; - private: - protectedFootprintTimePeriodicity_t protectedFootprintTimePeriodicity; - protectedFootprintStartTime_t protectedFootprintStartTime; - iE_Extensions_t iE_Extensions; - -}; -/* -ProtectedResourceList-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct ProtectedResourceList_Item_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ProtectedResourceList-Item ::= SEQUENCE { - resourceType ResourceType, - intraPRBProtectedResourceFootprint BIT STRING (SIZE(84, ...)), - protectedFootprintFrequencyPattern BIT STRING (SIZE(6..110, ...)), - protectedFootprintTimePattern ProtectedFootprintTimePattern, - iE-Extensions ProtocolExtensionContainer { {ProtectedResourceList-Item-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct ProtectedResourceList_Item : asn::sequence<5, 0, true, 1> -{ - static constexpr const char* name() {return "ProtectedResourceList-Item";} - using parent_t = asn::sequence<5, 0, true, 1>; - struct resourceType_t : ResourceType - { - static constexpr const char* name() {return "resourceType_t";} - using parent_t = ResourceType; - - }; - resourceType_t& ref_resourceType() {return resourceType;} - resourceType_t const& ref_resourceType() const {return resourceType;} - struct intraPRBProtectedResourceFootprint_t : asn::bstring<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "intraPRBProtectedResourceFootprint_t";} - using parent_t = asn::bstring<>; - - }; - - intraPRBProtectedResourceFootprint_t& ref_intraPRBProtectedResourceFootprint() {return intraPRBProtectedResourceFootprint;} - intraPRBProtectedResourceFootprint_t const& ref_intraPRBProtectedResourceFootprint() const {return intraPRBProtectedResourceFootprint;} - struct protectedFootprintFrequencyPattern_t : asn::bstring<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "protectedFootprintFrequencyPattern_t";} - using parent_t = asn::bstring<>; - - }; - - protectedFootprintFrequencyPattern_t& ref_protectedFootprintFrequencyPattern() {return protectedFootprintFrequencyPattern;} - protectedFootprintFrequencyPattern_t const& ref_protectedFootprintFrequencyPattern() const {return protectedFootprintFrequencyPattern;} - struct protectedFootprintTimePattern_t : ProtectedFootprintTimePattern - { - static constexpr const char* name() {return "protectedFootprintTimePattern_t";} - using parent_t = ProtectedFootprintTimePattern; - - }; - protectedFootprintTimePattern_t& ref_protectedFootprintTimePattern() {return protectedFootprintTimePattern;} - protectedFootprintTimePattern_t const& ref_protectedFootprintTimePattern() const {return protectedFootprintTimePattern;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(resourceType); - v(intraPRBProtectedResourceFootprint); - v(protectedFootprintFrequencyPattern); - v(protectedFootprintTimePattern); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(resourceType); - v(intraPRBProtectedResourceFootprint); - v(protectedFootprintFrequencyPattern); - v(protectedFootprintTimePattern); - v(iE_Extensions); - - }; - void clear() - { - resourceType.clear(); - intraPRBProtectedResourceFootprint.clear(); - protectedFootprintFrequencyPattern.clear(); - protectedFootprintTimePattern.clear(); - iE_Extensions.clear(); - - }; - private: - resourceType_t resourceType; - intraPRBProtectedResourceFootprint_t intraPRBProtectedResourceFootprint; - protectedFootprintFrequencyPattern_t protectedFootprintFrequencyPattern; - protectedFootprintTimePattern_t protectedFootprintTimePattern; - iE_Extensions_t iE_Extensions; - -}; -/* -ProtectedResourceList ::= SEQUENCE (SIZE(1.. maxnoofProtectedResourcePatterns)) OF ProtectedResourceList-Item -*/ - -struct ProtectedResourceList_elm : ProtectedResourceList_Item -{ - static constexpr const char* name() {return "ProtectedResourceList_elm";} - using parent_t = ProtectedResourceList_Item; - -}; -struct ProtectedResourceList : asn::sequenceof -{ - static constexpr const char* name() {return "ProtectedResourceList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -ProtectedEUTRAResourceIndication-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -- Rapporteur: missing extension -- -*/ - -struct ProtectedEUTRAResourceIndication_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ProtectedEUTRAResourceIndication::= SEQUENCE { - activationSFN INTEGER (0..1023), - protectedResourceList ProtectedResourceList, - mBSFNControlRegionLength INTEGER (0..3) OPTIONAL, - pDCCHRegionLength INTEGER (1..3) OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {ProtectedEUTRAResourceIndication-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct ProtectedEUTRAResourceIndication : asn::sequence<5, 0, true, 3> -{ - static constexpr const char* name() {return "ProtectedEUTRAResourceIndication";} - using parent_t = asn::sequence<5, 0, true, 3>; - struct activationSFN_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "activationSFN_t";} - using parent_t = asn::integer<>; - - }; - - activationSFN_t& ref_activationSFN() {return activationSFN;} - activationSFN_t const& ref_activationSFN() const {return activationSFN;} - struct protectedResourceList_t : ProtectedResourceList - { - static constexpr const char* name() {return "protectedResourceList_t";} - using parent_t = ProtectedResourceList; - - }; - protectedResourceList_t& ref_protectedResourceList() {return protectedResourceList;} - protectedResourceList_t const& ref_protectedResourceList() const {return protectedResourceList;} - struct mBSFNControlRegionLength_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "mBSFNControlRegionLength_t";} - using parent_t = asn::integer<>; - static constexpr bool optional = true; - - }; - - mBSFNControlRegionLength_t& set_mBSFNControlRegionLength() { mBSFNControlRegionLength.setpresent(true); return mBSFNControlRegionLength;} - mBSFNControlRegionLength_t const* get_mBSFNControlRegionLength() const {return mBSFNControlRegionLength.is_valid() ? &mBSFNControlRegionLength : nullptr;} - struct pDCCHRegionLength_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "pDCCHRegionLength_t";} - using parent_t = asn::integer<>; - static constexpr bool optional = true; - - }; - - pDCCHRegionLength_t& set_pDCCHRegionLength() { pDCCHRegionLength.setpresent(true); return pDCCHRegionLength;} - pDCCHRegionLength_t const* get_pDCCHRegionLength() const {return pDCCHRegionLength.is_valid() ? &pDCCHRegionLength : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(activationSFN); - v(protectedResourceList); - v(mBSFNControlRegionLength); - v(pDCCHRegionLength); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(activationSFN); - v(protectedResourceList); - v(mBSFNControlRegionLength); - v(pDCCHRegionLength); - v(iE_Extensions); - - }; - void clear() - { - activationSFN.clear(); - protectedResourceList.clear(); - mBSFNControlRegionLength.clear(); - pDCCHRegionLength.clear(); - iE_Extensions.clear(); - - }; - private: - activationSFN_t activationSFN; - protectedResourceList_t protectedResourceList; - mBSFNControlRegionLength_t mBSFNControlRegionLength; - pDCCHRegionLength_t pDCCHRegionLength; - iE_Extensions_t iE_Extensions; - -}; -/* -Reestablishment-Indication ::= ENUMERATED { - reestablished, - ... -} -*/ - -struct Reestablishment_Indication : asn::enumerated<1, 0, true> -{ - static constexpr const char* name() {return "Reestablishment-Indication";} - using parent_t = asn::enumerated<1, 0, true>; - typedef enum { - reestablished - } index_t; - -}; - -/* -RLC-Status-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct RLC_Status_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RLC-Status ::= SEQUENCE { - reestablishment-Indication Reestablishment-Indication, - iE-Extensions ProtocolExtensionContainer { {RLC-Status-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct RLC_Status : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "RLC-Status";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct reestablishment_Indication_t : Reestablishment_Indication - { - static constexpr const char* name() {return "reestablishment_Indication_t";} - using parent_t = Reestablishment_Indication; - - }; - reestablishment_Indication_t& ref_reestablishment_Indication() {return reestablishment_Indication;} - reestablishment_Indication_t const& ref_reestablishment_Indication() const {return reestablishment_Indication;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(reestablishment_Indication); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(reestablishment_Indication); - v(iE_Extensions); - - }; - void clear() - { - reestablishment_Indication.clear(); - iE_Extensions.clear(); - - }; - private: - reestablishment_Indication_t reestablishment_Indication; - iE_Extensions_t iE_Extensions; - -}; -/* -RLCMode ::= ENUMERATED { - rlc-am, - rlc-um-bidirectional, - rlc-um-unidirectional-ul, - rlc-um-unidirectional-dl, - ... -} -*/ - -struct RLCMode : asn::enumerated<4, 0, true> -{ - static constexpr const char* name() {return "RLCMode";} - using parent_t = asn::enumerated<4, 0, true>; - typedef enum { - rlc_am - ,rlc_um_bidirectional - ,rlc_um_unidirectional_ul - ,rlc_um_unidirectional_dl - } index_t; - -}; - -/* -RRC-Config-Ind ::= ENUMERATED { - full-config, - delta-config, - ... -} -*/ - -struct RRC_Config_Ind : asn::enumerated<2, 0, true> -{ - static constexpr const char* name() {return "RRC-Config-Ind";} - using parent_t = asn::enumerated<2, 0, true>; - typedef enum { - full_config - ,delta_config - } index_t; - -}; - -/* -RRC-Context ::= OCTET STRING -*/ - -struct RRC_Context : asn::ostring<> -{ - static constexpr const char* name() {return "RRC-Context";} - using parent_t = asn::ostring<>; - -}; - -/* -RRCConnReestabIndicator ::= ENUMERATED { - reconfigurationFailure, handoverFailure, otherFailure, ... -} -*/ - -struct RRCConnReestabIndicator : asn::enumerated<3, 0, true> -{ - static constexpr const char* name() {return "RRCConnReestabIndicator";} - using parent_t = asn::enumerated<3, 0, true>; - typedef enum { - reconfigurationFailure - ,handoverFailure - ,otherFailure - } index_t; - -}; - -/* -RRCConnSetupIndicator::= ENUMERATED { - rrcConnSetup, - ... -} -*/ - -struct RRCConnSetupIndicator : asn::enumerated<1, 0, true> -{ - static constexpr const char* name() {return "RRCConnSetupIndicator";} - using parent_t = asn::enumerated<1, 0, true>; - typedef enum { - rrcConnSetup - } index_t; - -}; - -/* -RRCContainer ::= OCTET STRING -*/ - -struct RRCContainer : asn::ostring<> -{ - static constexpr const char* name() {return "RRCContainer";} - using parent_t = asn::ostring<>; - -}; - -/* -RSRPMeasurementResult-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct RSRPMeasurementResult_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RSRPMeasurementResult ::= SEQUENCE (SIZE(1..maxCellReport)) OF - SEQUENCE { - rSRPCellID ECGI, - rSRPMeasured INTEGER (0..97, ...), - iE-Extensions ProtocolExtensionContainer { {RSRPMeasurementResult-ExtIEs} } OPTIONAL, - ... - } -*/ - -struct RSRPMeasurementResult_elm : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "RSRPMeasurementResult_elm";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct rSRPCellID_t : ECGI - { - static constexpr const char* name() {return "rSRPCellID_t";} - using parent_t = ECGI; - - }; - rSRPCellID_t& ref_rSRPCellID() {return rSRPCellID;} - rSRPCellID_t const& ref_rSRPCellID() const {return rSRPCellID;} - struct rSRPMeasured_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "rSRPMeasured_t";} - using parent_t = asn::integer<>; - - }; - - rSRPMeasured_t& ref_rSRPMeasured() {return rSRPMeasured;} - rSRPMeasured_t const& ref_rSRPMeasured() const {return rSRPMeasured;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(rSRPCellID); - v(rSRPMeasured); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(rSRPCellID); - v(rSRPMeasured); - v(iE_Extensions); - - }; - void clear() - { - rSRPCellID.clear(); - rSRPMeasured.clear(); - iE_Extensions.clear(); - - }; - private: - rSRPCellID_t rSRPCellID; - rSRPMeasured_t rSRPMeasured; - iE_Extensions_t iE_Extensions; - -}; -struct RSRPMeasurementResult : asn::sequenceof -{ - static constexpr const char* name() {return "RSRPMeasurementResult";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -RSRPMRList-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-UEID CRITICALITY ignore EXTENSION UEID PRESENCE optional}, - ... -} -*/ - -struct RSRPMRList_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_UEID() { set(id_UEID); type=1;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_UEID)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_UEID);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_UEID() { set(ignore); type=1;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - UEID& select_id_UEID() { return set(1); } - UEID const* get_id_UEID() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_UEID()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(UEID)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_UEID() { set(optional); type=1;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RSRPMRList ::= SEQUENCE (SIZE(1..maxUEReport)) OF - SEQUENCE { - rSRPMeasurementResult RSRPMeasurementResult, - iE-Extensions ProtocolExtensionContainer { {RSRPMRList-ExtIEs} } OPTIONAL, - ... - } -*/ - -struct RSRPMRList_elm : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "RSRPMRList_elm";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct rSRPMeasurementResult_t : RSRPMeasurementResult - { - static constexpr const char* name() {return "rSRPMeasurementResult_t";} - using parent_t = RSRPMeasurementResult; - - }; - rSRPMeasurementResult_t& ref_rSRPMeasurementResult() {return rSRPMeasurementResult;} - rSRPMeasurementResult_t const& ref_rSRPMeasurementResult() const {return rSRPMeasurementResult;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(rSRPMeasurementResult); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(rSRPMeasurementResult); - v(iE_Extensions); - - }; - void clear() - { - rSRPMeasurementResult.clear(); - iE_Extensions.clear(); - - }; - private: - rSRPMeasurementResult_t rSRPMeasurementResult; - iE_Extensions_t iE_Extensions; - -}; -struct RSRPMRList : asn::sequenceof -{ - static constexpr const char* name() {return "RSRPMRList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -UL-GBR-PRB-usage::= INTEGER (0..100) -*/ - -struct UL_GBR_PRB_usage : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "UL-GBR-PRB-usage";} - using parent_t = asn::integer<>; - -}; - -/* -UL-non-GBR-PRB-usage::= INTEGER (0..100) -*/ - -struct UL_non_GBR_PRB_usage : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "UL-non-GBR-PRB-usage";} - using parent_t = asn::integer<>; - -}; - -/* -UL-Total-PRB-usage::= INTEGER (0..100) -*/ - -struct UL_Total_PRB_usage : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "UL-Total-PRB-usage";} - using parent_t = asn::integer<>; - -}; - -/* -UL-scheduling-PDCCH-CCE-usage::= INTEGER (0..100) -*/ - -struct UL_scheduling_PDCCH_CCE_usage : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "UL-scheduling-PDCCH-CCE-usage";} - using parent_t = asn::integer<>; - -}; - -/* -RadioResourceStatus-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - {ID id-DL-scheduling-PDCCH-CCE-usage CRITICALITY ignore EXTENSION DL-scheduling-PDCCH-CCE-usage PRESENCE optional}| - - {ID id-UL-scheduling-PDCCH-CCE-usage CRITICALITY ignore EXTENSION UL-scheduling-PDCCH-CCE-usage PRESENCE optional}, - ... -} -*/ - -struct RadioResourceStatus_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_DL_scheduling_PDCCH_CCE_usage() { set(id_DL_scheduling_PDCCH_CCE_usage); type=1;} - void select_id_UL_scheduling_PDCCH_CCE_usage() { set(id_UL_scheduling_PDCCH_CCE_usage); type=2;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_DL_scheduling_PDCCH_CCE_usage)) { type = 1; return true; } - else if(equal(id_UL_scheduling_PDCCH_CCE_usage)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_DL_scheduling_PDCCH_CCE_usage);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_UL_scheduling_PDCCH_CCE_usage);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_DL_scheduling_PDCCH_CCE_usage() { set(ignore); type=1;} - void select_id_UL_scheduling_PDCCH_CCE_usage() { set(ignore); type=2;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - DL_scheduling_PDCCH_CCE_usage& select_id_DL_scheduling_PDCCH_CCE_usage() { return set(1); } - DL_scheduling_PDCCH_CCE_usage const* get_id_DL_scheduling_PDCCH_CCE_usage() const { return get(1); } - UL_scheduling_PDCCH_CCE_usage& select_id_UL_scheduling_PDCCH_CCE_usage() { return set(2); } - UL_scheduling_PDCCH_CCE_usage const* get_id_UL_scheduling_PDCCH_CCE_usage() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_DL_scheduling_PDCCH_CCE_usage()); return true; - case 2: v(select_id_UL_scheduling_PDCCH_CCE_usage()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(DL_scheduling_PDCCH_CCE_usage)]; - char dummy2[sizeof(UL_scheduling_PDCCH_CCE_usage)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_DL_scheduling_PDCCH_CCE_usage() { set(optional); type=1;} - void select_id_UL_scheduling_PDCCH_CCE_usage() { set(optional); type=2;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RadioResourceStatus ::= SEQUENCE { - dL-GBR-PRB-usage DL-GBR-PRB-usage, - uL-GBR-PRB-usage UL-GBR-PRB-usage, - dL-non-GBR-PRB-usage DL-non-GBR-PRB-usage, - uL-non-GBR-PRB-usage UL-non-GBR-PRB-usage, - dL-Total-PRB-usage DL-Total-PRB-usage, - uL-Total-PRB-usage UL-Total-PRB-usage, - iE-Extensions ProtocolExtensionContainer { {RadioResourceStatus-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct RadioResourceStatus : asn::sequence<7, 0, true, 1> -{ - static constexpr const char* name() {return "RadioResourceStatus";} - using parent_t = asn::sequence<7, 0, true, 1>; - struct dL_GBR_PRB_usage_t : DL_GBR_PRB_usage - { - static constexpr const char* name() {return "dL_GBR_PRB_usage_t";} - using parent_t = DL_GBR_PRB_usage; - - }; - dL_GBR_PRB_usage_t& ref_dL_GBR_PRB_usage() {return dL_GBR_PRB_usage;} - dL_GBR_PRB_usage_t const& ref_dL_GBR_PRB_usage() const {return dL_GBR_PRB_usage;} - struct uL_GBR_PRB_usage_t : UL_GBR_PRB_usage - { - static constexpr const char* name() {return "uL_GBR_PRB_usage_t";} - using parent_t = UL_GBR_PRB_usage; - - }; - uL_GBR_PRB_usage_t& ref_uL_GBR_PRB_usage() {return uL_GBR_PRB_usage;} - uL_GBR_PRB_usage_t const& ref_uL_GBR_PRB_usage() const {return uL_GBR_PRB_usage;} - struct dL_non_GBR_PRB_usage_t : DL_non_GBR_PRB_usage - { - static constexpr const char* name() {return "dL_non_GBR_PRB_usage_t";} - using parent_t = DL_non_GBR_PRB_usage; - - }; - dL_non_GBR_PRB_usage_t& ref_dL_non_GBR_PRB_usage() {return dL_non_GBR_PRB_usage;} - dL_non_GBR_PRB_usage_t const& ref_dL_non_GBR_PRB_usage() const {return dL_non_GBR_PRB_usage;} - struct uL_non_GBR_PRB_usage_t : UL_non_GBR_PRB_usage - { - static constexpr const char* name() {return "uL_non_GBR_PRB_usage_t";} - using parent_t = UL_non_GBR_PRB_usage; - - }; - uL_non_GBR_PRB_usage_t& ref_uL_non_GBR_PRB_usage() {return uL_non_GBR_PRB_usage;} - uL_non_GBR_PRB_usage_t const& ref_uL_non_GBR_PRB_usage() const {return uL_non_GBR_PRB_usage;} - struct dL_Total_PRB_usage_t : DL_Total_PRB_usage - { - static constexpr const char* name() {return "dL_Total_PRB_usage_t";} - using parent_t = DL_Total_PRB_usage; - - }; - dL_Total_PRB_usage_t& ref_dL_Total_PRB_usage() {return dL_Total_PRB_usage;} - dL_Total_PRB_usage_t const& ref_dL_Total_PRB_usage() const {return dL_Total_PRB_usage;} - struct uL_Total_PRB_usage_t : UL_Total_PRB_usage - { - static constexpr const char* name() {return "uL_Total_PRB_usage_t";} - using parent_t = UL_Total_PRB_usage; - - }; - uL_Total_PRB_usage_t& ref_uL_Total_PRB_usage() {return uL_Total_PRB_usage;} - uL_Total_PRB_usage_t const& ref_uL_Total_PRB_usage() const {return uL_Total_PRB_usage;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(dL_GBR_PRB_usage); - v(uL_GBR_PRB_usage); - v(dL_non_GBR_PRB_usage); - v(uL_non_GBR_PRB_usage); - v(dL_Total_PRB_usage); - v(uL_Total_PRB_usage); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(dL_GBR_PRB_usage); - v(uL_GBR_PRB_usage); - v(dL_non_GBR_PRB_usage); - v(uL_non_GBR_PRB_usage); - v(dL_Total_PRB_usage); - v(uL_Total_PRB_usage); - v(iE_Extensions); - - }; - void clear() - { - dL_GBR_PRB_usage.clear(); - uL_GBR_PRB_usage.clear(); - dL_non_GBR_PRB_usage.clear(); - uL_non_GBR_PRB_usage.clear(); - dL_Total_PRB_usage.clear(); - uL_Total_PRB_usage.clear(); - iE_Extensions.clear(); - - }; - private: - dL_GBR_PRB_usage_t dL_GBR_PRB_usage; - uL_GBR_PRB_usage_t uL_GBR_PRB_usage; - dL_non_GBR_PRB_usage_t dL_non_GBR_PRB_usage; - uL_non_GBR_PRB_usage_t uL_non_GBR_PRB_usage; - dL_Total_PRB_usage_t dL_Total_PRB_usage; - uL_Total_PRB_usage_t uL_Total_PRB_usage; - iE_Extensions_t iE_Extensions; - -}; -/* -ReceiveStatusOfULPDCPSDUsExtended ::= BIT STRING (SIZE(1..16384)) -*/ - -struct ReceiveStatusOfULPDCPSDUsExtended : asn::bstring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "ReceiveStatusOfULPDCPSDUsExtended";} - using parent_t = asn::bstring<>; - -}; - -/* -ReceiveStatusOfULPDCPSDUsPDCP-SNlength18 ::= BIT STRING (SIZE(1..131072)) -*/ - -struct ReceiveStatusOfULPDCPSDUsPDCP_SNlength18 : asn::bstring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "ReceiveStatusOfULPDCPSDUsPDCP-SNlength18";} - using parent_t = asn::bstring<>; - -}; - -/* -ReceiveStatusofULPDCPSDUs ::= BIT STRING (SIZE(4096)) -*/ - -struct ReceiveStatusofULPDCPSDUs : asn::bstring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "ReceiveStatusofULPDCPSDUs";} - using parent_t = asn::bstring<>; - -}; - -/* -Registration-Request ::= ENUMERATED { - start, - stop, - ..., - partial-stop, - add -} -*/ - -struct Registration_Request : asn::enumerated<4, 2, true> -{ - static constexpr const char* name() {return "Registration-Request";} - using parent_t = asn::enumerated<4, 2, true>; - typedef enum { - start - ,stop - ,partial_stop - ,add - } index_t; - -}; - -/* -RelativeNarrowbandTxPower-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-enhancedRNTP CRITICALITY ignore EXTENSION EnhancedRNTP PRESENCE optional }, - ... -} -*/ - -struct RelativeNarrowbandTxPower_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_enhancedRNTP() { set(id_enhancedRNTP); type=1;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_enhancedRNTP)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_enhancedRNTP);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_enhancedRNTP() { set(ignore); type=1;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - EnhancedRNTP& select_id_enhancedRNTP() { return set(1); } - EnhancedRNTP const* get_id_enhancedRNTP() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_enhancedRNTP()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(EnhancedRNTP)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_enhancedRNTP() { set(optional); type=1;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RelativeNarrowbandTxPower ::= SEQUENCE { - - rNTP-PerPRB BIT STRING (SIZE(6..110, ...)), - rNTP-Threshold RNTP-Threshold, - numberOfCellSpecificAntennaPorts ENUMERATED {one, two, four, ...}, - p-B INTEGER (0..3,...), - pDCCH-InterferenceImpact INTEGER (0..4,...), - iE-Extensions ProtocolExtensionContainer { {RelativeNarrowbandTxPower-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct RelativeNarrowbandTxPower : asn::sequence<6, 0, true, 1> -{ - static constexpr const char* name() {return "RelativeNarrowbandTxPower";} - using parent_t = asn::sequence<6, 0, true, 1>; - struct rNTP_PerPRB_t : asn::bstring<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "rNTP_PerPRB_t";} - using parent_t = asn::bstring<>; - - }; - - rNTP_PerPRB_t& ref_rNTP_PerPRB() {return rNTP_PerPRB;} - rNTP_PerPRB_t const& ref_rNTP_PerPRB() const {return rNTP_PerPRB;} - struct rNTP_Threshold_t : RNTP_Threshold - { - static constexpr const char* name() {return "rNTP_Threshold_t";} - using parent_t = RNTP_Threshold; - - }; - rNTP_Threshold_t& ref_rNTP_Threshold() {return rNTP_Threshold;} - rNTP_Threshold_t const& ref_rNTP_Threshold() const {return rNTP_Threshold;} - struct numberOfCellSpecificAntennaPorts_t : asn::enumerated<3, 0, true> - { - static constexpr const char* name() {return "numberOfCellSpecificAntennaPorts_t";} - using parent_t = asn::enumerated<3, 0, true>; - typedef enum { - one - ,two - ,four - } index_t; - - }; - - numberOfCellSpecificAntennaPorts_t& ref_numberOfCellSpecificAntennaPorts() {return numberOfCellSpecificAntennaPorts;} - numberOfCellSpecificAntennaPorts_t const& ref_numberOfCellSpecificAntennaPorts() const {return numberOfCellSpecificAntennaPorts;} - struct p_B_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "p_B_t";} - using parent_t = asn::integer<>; - - }; - - p_B_t& ref_p_B() {return p_B;} - p_B_t const& ref_p_B() const {return p_B;} - struct pDCCH_InterferenceImpact_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "pDCCH_InterferenceImpact_t";} - using parent_t = asn::integer<>; - - }; - - pDCCH_InterferenceImpact_t& ref_pDCCH_InterferenceImpact() {return pDCCH_InterferenceImpact;} - pDCCH_InterferenceImpact_t const& ref_pDCCH_InterferenceImpact() const {return pDCCH_InterferenceImpact;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(rNTP_PerPRB); - v(rNTP_Threshold); - v(numberOfCellSpecificAntennaPorts); - v(p_B); - v(pDCCH_InterferenceImpact); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(rNTP_PerPRB); - v(rNTP_Threshold); - v(numberOfCellSpecificAntennaPorts); - v(p_B); - v(pDCCH_InterferenceImpact); - v(iE_Extensions); - - }; - void clear() - { - rNTP_PerPRB.clear(); - rNTP_Threshold.clear(); - numberOfCellSpecificAntennaPorts.clear(); - p_B.clear(); - pDCCH_InterferenceImpact.clear(); - iE_Extensions.clear(); - - }; - private: - rNTP_PerPRB_t rNTP_PerPRB; - rNTP_Threshold_t rNTP_Threshold; - numberOfCellSpecificAntennaPorts_t numberOfCellSpecificAntennaPorts; - p_B_t p_B; - pDCCH_InterferenceImpact_t pDCCH_InterferenceImpact; - iE_Extensions_t iE_Extensions; - -}; -/* -ReportCharacteristics ::= BIT STRING (SIZE (32)) -*/ - -struct ReportCharacteristics : asn::bstring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "ReportCharacteristics";} - using parent_t = asn::bstring<>; - -}; - -/* -ReportingPeriodicityCSIR ::= ENUMERATED { - ms5, - ms10, - ms20, - ms40, - ms80, -... -} -*/ - -struct ReportingPeriodicityCSIR : asn::enumerated<5, 0, true> -{ - static constexpr const char* name() {return "ReportingPeriodicityCSIR";} - using parent_t = asn::enumerated<5, 0, true>; - typedef enum { - ms5 - ,ms10 - ,ms20 - ,ms40 - ,ms80 - } index_t; - -}; - -/* -ReportingPeriodicityRSRPMR ::= ENUMERATED { - one-hundred-20-ms, - two-hundred-40-ms, - four-hundred-80-ms, - six-hundred-40-ms, -... -} -*/ - -struct ReportingPeriodicityRSRPMR : asn::enumerated<4, 0, true> -{ - static constexpr const char* name() {return "ReportingPeriodicityRSRPMR";} - using parent_t = asn::enumerated<4, 0, true>; - typedef enum { - one_hundred_20_ms - ,two_hundred_40_ms - ,four_hundred_80_ms - ,six_hundred_40_ms - } index_t; - -}; - -/* -ResumeID ::= CHOICE { - non-truncated BIT STRING(SIZE(40)), - truncated BIT STRING(SIZE(24)), - ... -} -*/ - -struct ResumeID : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "ResumeID";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~ResumeID() {clear();} - struct non_truncated_t : asn::bstring<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "non_truncated_t";} - using parent_t = asn::bstring<>; - - }; - - struct truncated_t : asn::bstring<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "truncated_t";} - using parent_t = asn::bstring<>; - - }; - - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - non_truncated_t& select_non_truncated() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - non_truncated_t const* get_non_truncated() const { if(get_index() == 1) { return &var.as();} return nullptr; } - truncated_t& select_truncated() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - truncated_t const* get_truncated() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(non_truncated_t)]; - char dummy2[sizeof(truncated_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -S1TNLLoadIndicator-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct S1TNLLoadIndicator_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -S1TNLLoadIndicator ::= SEQUENCE { - dLS1TNLLoadIndicator LoadIndicator, - uLS1TNLLoadIndicator LoadIndicator, - iE-Extensions ProtocolExtensionContainer { {S1TNLLoadIndicator-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct S1TNLLoadIndicator : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "S1TNLLoadIndicator";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct dLS1TNLLoadIndicator_t : LoadIndicator - { - static constexpr const char* name() {return "dLS1TNLLoadIndicator_t";} - using parent_t = LoadIndicator; - - }; - dLS1TNLLoadIndicator_t& ref_dLS1TNLLoadIndicator() {return dLS1TNLLoadIndicator;} - dLS1TNLLoadIndicator_t const& ref_dLS1TNLLoadIndicator() const {return dLS1TNLLoadIndicator;} - struct uLS1TNLLoadIndicator_t : LoadIndicator - { - static constexpr const char* name() {return "uLS1TNLLoadIndicator_t";} - using parent_t = LoadIndicator; - - }; - uLS1TNLLoadIndicator_t& ref_uLS1TNLLoadIndicator() {return uLS1TNLLoadIndicator;} - uLS1TNLLoadIndicator_t const& ref_uLS1TNLLoadIndicator() const {return uLS1TNLLoadIndicator;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(dLS1TNLLoadIndicator); - v(uLS1TNLLoadIndicator); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(dLS1TNLLoadIndicator); - v(uLS1TNLLoadIndicator); - v(iE_Extensions); - - }; - void clear() - { - dLS1TNLLoadIndicator.clear(); - uLS1TNLLoadIndicator.clear(); - iE_Extensions.clear(); - - }; - private: - dLS1TNLLoadIndicator_t dLS1TNLLoadIndicator; - uLS1TNLLoadIndicator_t uLS1TNLLoadIndicator; - iE_Extensions_t iE_Extensions; - -}; -/* -SCGChangeIndication ::= ENUMERATED {pDCPCountWrapAround, pSCellChange, other, ...} -*/ - -struct SCGChangeIndication : asn::enumerated<3, 0, true> -{ - static constexpr const char* name() {return "SCGChangeIndication";} - using parent_t = asn::enumerated<3, 0, true>; - typedef enum { - pDCPCountWrapAround - ,pSCellChange - ,other - } index_t; - -}; - -/* -SCGConfigurationQuery ::= ENUMERATED {true,...} -*/ - -struct SCGConfigurationQuery : asn::enumerated<1, 0, true> -{ - static constexpr const char* name() {return "SCGConfigurationQuery";} - using parent_t = asn::enumerated<1, 0, true>; - typedef enum { - True - } index_t; - -}; - -/* -SGNB-Addition-Trigger-Ind ::= ENUMERATED { - sn-change, - inter-eNB-HO, - intra-eNB-HO, - ... -} -*/ - -struct SGNB_Addition_Trigger_Ind : asn::enumerated<3, 0, true> -{ - static constexpr const char* name() {return "SGNB-Addition-Trigger-Ind";} - using parent_t = asn::enumerated<3, 0, true>; - typedef enum { - sn_change - ,inter_eNB_HO - ,intra_eNB_HO - } index_t; - -}; - -/* -SIPTOBearerDeactivationIndication ::= ENUMERATED { - true, - ... -} -*/ - -struct SIPTOBearerDeactivationIndication : asn::enumerated<1, 0, true> -{ - static constexpr const char* name() {return "SIPTOBearerDeactivationIndication";} - using parent_t = asn::enumerated<1, 0, true>; - typedef enum { - True - } index_t; - -}; - -/* -SRBType ::= ENUMERATED {srb1, srb2, ...} -*/ - -struct SRBType : asn::enumerated<2, 0, true> -{ - static constexpr const char* name() {return "SRBType";} - using parent_t = asn::enumerated<2, 0, true>; - typedef enum { - srb1 - ,srb2 - } index_t; - -}; - -/* -SRVCCOperationPossible ::= ENUMERATED { - possible, - ... -} -*/ - -struct SRVCCOperationPossible : asn::enumerated<1, 0, true> -{ - static constexpr const char* name() {return "SRVCCOperationPossible";} - using parent_t = asn::enumerated<1, 0, true>; - typedef enum { - possible - } index_t; - -}; - -/* -ScheduledCommunicationTime-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct ScheduledCommunicationTime_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ScheduledCommunicationTime ::= SEQUENCE { - dayofWeek BIT STRING (SIZE(7)) OPTIONAL, - timeofDayStart INTEGER (0..86399, ...) OPTIONAL, - timeofDayEnd INTEGER (0..86399, ...) OPTIONAL, - iE-Extensions ProtocolExtensionContainer { { ScheduledCommunicationTime-ExtIEs}} OPTIONAL, - ... -} -*/ - -struct ScheduledCommunicationTime : asn::sequence<4, 0, true, 4> -{ - static constexpr const char* name() {return "ScheduledCommunicationTime";} - using parent_t = asn::sequence<4, 0, true, 4>; - struct dayofWeek_t : asn::bstring<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "dayofWeek_t";} - using parent_t = asn::bstring<>; - static constexpr bool optional = true; - - }; - - dayofWeek_t& set_dayofWeek() { dayofWeek.setpresent(true); return dayofWeek;} - dayofWeek_t const* get_dayofWeek() const {return dayofWeek.is_valid() ? &dayofWeek : nullptr;} - struct timeofDayStart_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "timeofDayStart_t";} - using parent_t = asn::integer<>; - static constexpr bool optional = true; - - }; - - timeofDayStart_t& set_timeofDayStart() { timeofDayStart.setpresent(true); return timeofDayStart;} - timeofDayStart_t const* get_timeofDayStart() const {return timeofDayStart.is_valid() ? &timeofDayStart : nullptr;} - struct timeofDayEnd_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "timeofDayEnd_t";} - using parent_t = asn::integer<>; - static constexpr bool optional = true; - - }; - - timeofDayEnd_t& set_timeofDayEnd() { timeofDayEnd.setpresent(true); return timeofDayEnd;} - timeofDayEnd_t const* get_timeofDayEnd() const {return timeofDayEnd.is_valid() ? &timeofDayEnd : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(dayofWeek); - v(timeofDayStart); - v(timeofDayEnd); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(dayofWeek); - v(timeofDayStart); - v(timeofDayEnd); - v(iE_Extensions); - - }; - void clear() - { - dayofWeek.clear(); - timeofDayStart.clear(); - timeofDayEnd.clear(); - iE_Extensions.clear(); - - }; - private: - dayofWeek_t dayofWeek; - timeofDayStart_t timeofDayStart; - timeofDayEnd_t timeofDayEnd; - iE_Extensions_t iE_Extensions; - -}; -/* -SeNBSecurityKey ::= BIT STRING (SIZE(256)) -*/ - -struct SeNBSecurityKey : asn::bstring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "SeNBSecurityKey";} - using parent_t = asn::bstring<>; - -}; - -/* -SeNBtoMeNBContainer ::= OCTET STRING -*/ - -struct SeNBtoMeNBContainer : asn::ostring<> -{ - static constexpr const char* name() {return "SeNBtoMeNBContainer";} - using parent_t = asn::ostring<>; - -}; - -/* -SecondaryRATUsageReport-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct SecondaryRATUsageReport_Item_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SecondaryRATUsageReport-Item ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - secondaryRATType ENUMERATED {nr, ...}, - e-RABUsageReportList E-RABUsageReportList, - iE-Extensions ProtocolExtensionContainer { {SecondaryRATUsageReport-Item-ExtIEs} } OPTIONAL, -... -} -*/ - -struct SecondaryRATUsageReport_Item : asn::sequence<4, 0, true, 1> -{ - static constexpr const char* name() {return "SecondaryRATUsageReport-Item";} - using parent_t = asn::sequence<4, 0, true, 1>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct secondaryRATType_t : asn::enumerated<1, 0, true> - { - static constexpr const char* name() {return "secondaryRATType_t";} - using parent_t = asn::enumerated<1, 0, true>; - typedef enum { - nr - } index_t; - - }; - - secondaryRATType_t& ref_secondaryRATType() {return secondaryRATType;} - secondaryRATType_t const& ref_secondaryRATType() const {return secondaryRATType;} - struct e_RABUsageReportList_t : E_RABUsageReportList - { - static constexpr const char* name() {return "e_RABUsageReportList_t";} - using parent_t = E_RABUsageReportList; - - }; - e_RABUsageReportList_t& ref_e_RABUsageReportList() {return e_RABUsageReportList;} - e_RABUsageReportList_t const& ref_e_RABUsageReportList() const {return e_RABUsageReportList;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(secondaryRATType); - v(e_RABUsageReportList); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(secondaryRATType); - v(e_RABUsageReportList); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - secondaryRATType.clear(); - e_RABUsageReportList.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - secondaryRATType_t secondaryRATType; - e_RABUsageReportList_t e_RABUsageReportList; - iE_Extensions_t iE_Extensions; - -}; -/* -SecondaryRATUsageReport-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-SecondaryRATUsageReport-Item CRITICALITY reject TYPE SecondaryRATUsageReport-Item PRESENCE mandatory}, - ... -} -*/ - -struct SecondaryRATUsageReport_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_SecondaryRATUsageReport_Item() { set(id_SecondaryRATUsageReport_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_SecondaryRATUsageReport_Item)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_SecondaryRATUsageReport_Item);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_SecondaryRATUsageReport_Item() { set(reject); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - SecondaryRATUsageReport_Item& select_id_SecondaryRATUsageReport_Item() { return set(1); } - SecondaryRATUsageReport_Item const* get_id_SecondaryRATUsageReport_Item() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_SecondaryRATUsageReport_Item()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(SecondaryRATUsageReport_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_SecondaryRATUsageReport_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SecondaryRATUsageReportList ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container {{SecondaryRATUsageReport-ItemIEs}} -*/ - -struct SecondaryRATUsageReportList_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "SecondaryRATUsageReportList_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct SecondaryRATUsageReportList : asn::sequenceof -{ - static constexpr const char* name() {return "SecondaryRATUsageReportList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -ServedCell-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct ServedCell_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ServedCell-Information-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-Number-of-Antennaports CRITICALITY ignore EXTENSION Number-of-Antennaports PRESENCE optional}| - { ID id-PRACH-Configuration CRITICALITY ignore EXTENSION PRACH-Configuration PRESENCE optional}| - { ID id-MBSFN-Subframe-Info CRITICALITY ignore EXTENSION MBSFN-Subframe-Infolist PRESENCE optional}| - { ID id-CSG-Id CRITICALITY ignore EXTENSION CSG-Id PRESENCE optional}| - { ID id-MBMS-Service-Area-List CRITICALITY ignore EXTENSION MBMS-Service-Area-Identity-List PRESENCE optional}| - { ID id-MultibandInfoList CRITICALITY ignore EXTENSION MultibandInfoList PRESENCE optional}| - { ID id-FreqBandIndicatorPriority CRITICALITY ignore EXTENSION FreqBandIndicatorPriority PRESENCE optional}| - { ID id-BandwidthReducedSI CRITICALITY ignore EXTENSION BandwidthReducedSI PRESENCE optional}| - { ID id-ProtectedEUTRAResourceIndication CRITICALITY ignore EXTENSION ProtectedEUTRAResourceIndication PRESENCE optional}, - ... -} -*/ - -struct ServedCell_Information_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 10; } - void clear() {type = 0;} - void select_id_Number_of_Antennaports() { set(id_Number_of_Antennaports); type=1;} - void select_id_PRACH_Configuration() { set(id_PRACH_Configuration); type=2;} - void select_id_MBSFN_Subframe_Info() { set(id_MBSFN_Subframe_Info); type=3;} - void select_id_CSG_Id() { set(id_CSG_Id); type=4;} - void select_id_MBMS_Service_Area_List() { set(id_MBMS_Service_Area_List); type=5;} - void select_id_MultibandInfoList() { set(id_MultibandInfoList); type=6;} - void select_id_FreqBandIndicatorPriority() { set(id_FreqBandIndicatorPriority); type=7;} - void select_id_BandwidthReducedSI() { set(id_BandwidthReducedSI); type=8;} - void select_id_ProtectedEUTRAResourceIndication() { set(id_ProtectedEUTRAResourceIndication); type=9;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_Number_of_Antennaports)) { type = 1; return true; } - else if(equal(id_PRACH_Configuration)) { type = 2; return true; } - else if(equal(id_MBSFN_Subframe_Info)) { type = 3; return true; } - else if(equal(id_CSG_Id)) { type = 4; return true; } - else if(equal(id_MBMS_Service_Area_List)) { type = 5; return true; } - else if(equal(id_MultibandInfoList)) { type = 6; return true; } - else if(equal(id_FreqBandIndicatorPriority)) { type = 7; return true; } - else if(equal(id_BandwidthReducedSI)) { type = 8; return true; } - else if(equal(id_ProtectedEUTRAResourceIndication)) { type = 9; return true; } - else { type = 10; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_Number_of_Antennaports);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_PRACH_Configuration);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_MBSFN_Subframe_Info);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_CSG_Id);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_MBMS_Service_Area_List);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_MultibandInfoList);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(id_FreqBandIndicatorPriority);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(id_BandwidthReducedSI);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(id_ProtectedEUTRAResourceIndication);} return false; - case 10: type = 10; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 10; } - void clear() {type = 0;} - void select_id_Number_of_Antennaports() { set(ignore); type=1;} - void select_id_PRACH_Configuration() { set(ignore); type=2;} - void select_id_MBSFN_Subframe_Info() { set(ignore); type=3;} - void select_id_CSG_Id() { set(ignore); type=4;} - void select_id_MBMS_Service_Area_List() { set(ignore); type=5;} - void select_id_MultibandInfoList() { set(ignore); type=6;} - void select_id_FreqBandIndicatorPriority() { set(ignore); type=7;} - void select_id_BandwidthReducedSI() { set(ignore); type=8;} - void select_id_ProtectedEUTRAResourceIndication() { set(ignore); type=9;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else if(equal(ignore)) { type = 6; return true; } - else if(equal(ignore)) { type = 7; return true; } - else if(equal(ignore)) { type = 8; return true; } - else if(equal(ignore)) { type = 9; return true; } - else { type = 10; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(ignore);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(ignore);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(ignore);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(ignore);} return false; - case 10: type = 10; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - Number_of_Antennaports& select_id_Number_of_Antennaports() { return set(1); } - Number_of_Antennaports const* get_id_Number_of_Antennaports() const { return get(1); } - PRACH_Configuration& select_id_PRACH_Configuration() { return set(2); } - PRACH_Configuration const* get_id_PRACH_Configuration() const { return get(2); } - MBSFN_Subframe_Infolist& select_id_MBSFN_Subframe_Info() { return set(3); } - MBSFN_Subframe_Infolist const* get_id_MBSFN_Subframe_Info() const { return get(3); } - CSG_Id& select_id_CSG_Id() { return set(4); } - CSG_Id const* get_id_CSG_Id() const { return get(4); } - MBMS_Service_Area_Identity_List& select_id_MBMS_Service_Area_List() { return set(5); } - MBMS_Service_Area_Identity_List const* get_id_MBMS_Service_Area_List() const { return get(5); } - MultibandInfoList& select_id_MultibandInfoList() { return set(6); } - MultibandInfoList const* get_id_MultibandInfoList() const { return get(6); } - FreqBandIndicatorPriority& select_id_FreqBandIndicatorPriority() { return set(7); } - FreqBandIndicatorPriority const* get_id_FreqBandIndicatorPriority() const { return get(7); } - BandwidthReducedSI& select_id_BandwidthReducedSI() { return set(8); } - BandwidthReducedSI const* get_id_BandwidthReducedSI() const { return get(8); } - ProtectedEUTRAResourceIndication& select_id_ProtectedEUTRAResourceIndication() { return set(9); } - ProtectedEUTRAResourceIndication const* get_id_ProtectedEUTRAResourceIndication() const { return get(9); } - bool is_unknown() const { return type == 10; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - case 7: var.destroy(); break; - case 8: var.destroy(); break; - case 9: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - v.template operator()(7); - v.template operator()(8); - v.template operator()(9); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_Number_of_Antennaports()); return true; - case 2: v(select_id_PRACH_Configuration()); return true; - case 3: v(select_id_MBSFN_Subframe_Info()); return true; - case 4: v(select_id_CSG_Id()); return true; - case 5: v(select_id_MBMS_Service_Area_List()); return true; - case 6: v(select_id_MultibandInfoList()); return true; - case 7: v(select_id_FreqBandIndicatorPriority()); return true; - case 8: v(select_id_BandwidthReducedSI()); return true; - case 9: v(select_id_ProtectedEUTRAResourceIndication()); return true; - case 10: if(type != 10) {clear(); asn::base::set();} type = 10; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - case 7: v(var.as()); return true; - case 8: v(var.as()); return true; - case 9: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(BandwidthReducedSI)]; - char dummy2[sizeof(CSG_Id)]; - char dummy3[sizeof(FreqBandIndicatorPriority)]; - char dummy4[sizeof(MBMS_Service_Area_Identity_List)]; - char dummy5[sizeof(MBSFN_Subframe_Infolist)]; - char dummy6[sizeof(MultibandInfoList)]; - char dummy7[sizeof(Number_of_Antennaports)]; - char dummy8[sizeof(PRACH_Configuration)]; - char dummy9[sizeof(ProtectedEUTRAResourceIndication)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 10; } - void clear() {type = 0;} - void select_id_Number_of_Antennaports() { set(optional); type=1;} - void select_id_PRACH_Configuration() { set(optional); type=2;} - void select_id_MBSFN_Subframe_Info() { set(optional); type=3;} - void select_id_CSG_Id() { set(optional); type=4;} - void select_id_MBMS_Service_Area_List() { set(optional); type=5;} - void select_id_MultibandInfoList() { set(optional); type=6;} - void select_id_FreqBandIndicatorPriority() { set(optional); type=7;} - void select_id_BandwidthReducedSI() { set(optional); type=8;} - void select_id_ProtectedEUTRAResourceIndication() { set(optional); type=9;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else if(equal(optional)) { type = 7; return true; } - else if(equal(optional)) { type = 8; return true; } - else if(equal(optional)) { type = 9; return true; } - else { type = 10; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(optional);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(optional);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(optional);} return false; - case 10: type = 10; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ServedCell-Information ::= SEQUENCE { - pCI PCI, - cellId ECGI, - tAC TAC, - broadcastPLMNs BroadcastPLMNs-Item, - eUTRA-Mode-Info EUTRA-Mode-Info, - iE-Extensions ProtocolExtensionContainer { {ServedCell-Information-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct ServedCell_Information : asn::sequence<6, 0, true, 1> -{ - static constexpr const char* name() {return "ServedCell-Information";} - using parent_t = asn::sequence<6, 0, true, 1>; - struct pCI_t : PCI - { - static constexpr const char* name() {return "pCI_t";} - using parent_t = PCI; - - }; - pCI_t& ref_pCI() {return pCI;} - pCI_t const& ref_pCI() const {return pCI;} - struct cellId_t : ECGI - { - static constexpr const char* name() {return "cellId_t";} - using parent_t = ECGI; - - }; - cellId_t& ref_cellId() {return cellId;} - cellId_t const& ref_cellId() const {return cellId;} - struct tAC_t : TAC - { - static constexpr const char* name() {return "tAC_t";} - using parent_t = TAC; - - }; - tAC_t& ref_tAC() {return tAC;} - tAC_t const& ref_tAC() const {return tAC;} - struct broadcastPLMNs_t : BroadcastPLMNs_Item - { - static constexpr const char* name() {return "broadcastPLMNs_t";} - using parent_t = BroadcastPLMNs_Item; - - }; - broadcastPLMNs_t& ref_broadcastPLMNs() {return broadcastPLMNs;} - broadcastPLMNs_t const& ref_broadcastPLMNs() const {return broadcastPLMNs;} - struct eUTRA_Mode_Info_t : EUTRA_Mode_Info - { - static constexpr const char* name() {return "eUTRA_Mode_Info_t";} - using parent_t = EUTRA_Mode_Info; - - }; - eUTRA_Mode_Info_t& ref_eUTRA_Mode_Info() {return eUTRA_Mode_Info;} - eUTRA_Mode_Info_t const& ref_eUTRA_Mode_Info() const {return eUTRA_Mode_Info;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(pCI); - v(cellId); - v(tAC); - v(broadcastPLMNs); - v(eUTRA_Mode_Info); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(pCI); - v(cellId); - v(tAC); - v(broadcastPLMNs); - v(eUTRA_Mode_Info); - v(iE_Extensions); - - }; - void clear() - { - pCI.clear(); - cellId.clear(); - tAC.clear(); - broadcastPLMNs.clear(); - eUTRA_Mode_Info.clear(); - iE_Extensions.clear(); - - }; - private: - pCI_t pCI; - cellId_t cellId; - tAC_t tAC; - broadcastPLMNs_t broadcastPLMNs; - eUTRA_Mode_Info_t eUTRA_Mode_Info; - iE_Extensions_t iE_Extensions; - -}; -/* -ServedCells ::= SEQUENCE (SIZE (1.. maxCellineNB)) OF SEQUENCE { - servedCellInfo ServedCell-Information, - neighbour-Info Neighbour-Information OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {ServedCell-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct ServedCells_elm : asn::sequence<3, 0, true, 2> -{ - static constexpr const char* name() {return "ServedCells_elm";} - using parent_t = asn::sequence<3, 0, true, 2>; - struct servedCellInfo_t : ServedCell_Information - { - static constexpr const char* name() {return "servedCellInfo_t";} - using parent_t = ServedCell_Information; - - }; - servedCellInfo_t& ref_servedCellInfo() {return servedCellInfo;} - servedCellInfo_t const& ref_servedCellInfo() const {return servedCellInfo;} - struct neighbour_Info_t : Neighbour_Information - { - static constexpr const char* name() {return "neighbour_Info_t";} - using parent_t = Neighbour_Information; - static constexpr bool optional = true; - - }; - neighbour_Info_t& set_neighbour_Info() { neighbour_Info.setpresent(true); return neighbour_Info;} - neighbour_Info_t const* get_neighbour_Info() const {return neighbour_Info.is_valid() ? &neighbour_Info : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(servedCellInfo); - v(neighbour_Info); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(servedCellInfo); - v(neighbour_Info); - v(iE_Extensions); - - }; - void clear() - { - servedCellInfo.clear(); - neighbour_Info.clear(); - iE_Extensions.clear(); - - }; - private: - servedCellInfo_t servedCellInfo; - neighbour_Info_t neighbour_Info; - iE_Extensions_t iE_Extensions; - -}; -struct ServedCells : asn::sequenceof -{ - static constexpr const char* name() {return "ServedCells";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -ServiceType ::= ENUMERATED{ - qMC-for-streaming-service, - qMC-for-MTSI-service, - ... -} -*/ - -struct ServiceType : asn::enumerated<2, 0, true> -{ - static constexpr const char* name() {return "ServiceType";} - using parent_t = asn::enumerated<2, 0, true>; - typedef enum { - qMC_for_streaming_service - ,qMC_for_MTSI_service - } index_t; - -}; - -/* -SgNB-UE-X2AP-ID ::= INTEGER (0..4294967295) -*/ - -struct SgNB_UE_X2AP_ID : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "SgNB-UE-X2AP-ID";} - using parent_t = asn::integer<>; - -}; - -/* -SgNBCoordinationAssistanceInformation ::= ENUMERATED{ - coordination-not-required, - ... -} -*/ - -struct SgNBCoordinationAssistanceInformation : asn::enumerated<1, 0, true> -{ - static constexpr const char* name() {return "SgNBCoordinationAssistanceInformation";} - using parent_t = asn::enumerated<1, 0, true>; - typedef enum { - coordination_not_required - } index_t; - -}; - -/* -SgNBResourceCoordinationInformationExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-ECGI CRITICALITY ignore EXTENSION ECGI PRESENCE optional}| - { ID id-SgNBCoordinationAssistanceInformation CRITICALITY reject EXTENSION SgNBCoordinationAssistanceInformation PRESENCE optional}, - ... -} -*/ - -struct SgNBResourceCoordinationInformationExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_ECGI() { set(id_ECGI); type=1;} - void select_id_SgNBCoordinationAssistanceInformation() { set(id_SgNBCoordinationAssistanceInformation); type=2;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_ECGI)) { type = 1; return true; } - else if(equal(id_SgNBCoordinationAssistanceInformation)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_ECGI);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SgNBCoordinationAssistanceInformation);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_ECGI() { set(ignore); type=1;} - void select_id_SgNBCoordinationAssistanceInformation() { set(reject); type=2;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - ECGI& select_id_ECGI() { return set(1); } - ECGI const* get_id_ECGI() const { return get(1); } - SgNBCoordinationAssistanceInformation& select_id_SgNBCoordinationAssistanceInformation() { return set(2); } - SgNBCoordinationAssistanceInformation const* get_id_SgNBCoordinationAssistanceInformation() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_ECGI()); return true; - case 2: v(select_id_SgNBCoordinationAssistanceInformation()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(ECGI)]; - char dummy2[sizeof(SgNBCoordinationAssistanceInformation)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_ECGI() { set(optional); type=1;} - void select_id_SgNBCoordinationAssistanceInformation() { set(optional); type=2;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SgNBResourceCoordinationInformation ::= SEQUENCE { - nR-CGI NRCGI, - uLCoordinationInformation BIT STRING (SIZE(6..4400, ...)), - dLCoordinationInformation BIT STRING (SIZE(6..4400, ...)) OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {SgNBResourceCoordinationInformationExtIEs} } OPTIONAL, - ... -} -*/ - -struct SgNBResourceCoordinationInformation : asn::sequence<4, 0, true, 2> -{ - static constexpr const char* name() {return "SgNBResourceCoordinationInformation";} - using parent_t = asn::sequence<4, 0, true, 2>; - struct nR_CGI_t : NRCGI - { - static constexpr const char* name() {return "nR_CGI_t";} - using parent_t = NRCGI; - - }; - nR_CGI_t& ref_nR_CGI() {return nR_CGI;} - nR_CGI_t const& ref_nR_CGI() const {return nR_CGI;} - struct uLCoordinationInformation_t : asn::bstring<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "uLCoordinationInformation_t";} - using parent_t = asn::bstring<>; - - }; - - uLCoordinationInformation_t& ref_uLCoordinationInformation() {return uLCoordinationInformation;} - uLCoordinationInformation_t const& ref_uLCoordinationInformation() const {return uLCoordinationInformation;} - struct dLCoordinationInformation_t : asn::bstring<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "dLCoordinationInformation_t";} - using parent_t = asn::bstring<>; - static constexpr bool optional = true; - - }; - - dLCoordinationInformation_t& set_dLCoordinationInformation() { dLCoordinationInformation.setpresent(true); return dLCoordinationInformation;} - dLCoordinationInformation_t const* get_dLCoordinationInformation() const {return dLCoordinationInformation.is_valid() ? &dLCoordinationInformation : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(nR_CGI); - v(uLCoordinationInformation); - v(dLCoordinationInformation); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(nR_CGI); - v(uLCoordinationInformation); - v(dLCoordinationInformation); - v(iE_Extensions); - - }; - void clear() - { - nR_CGI.clear(); - uLCoordinationInformation.clear(); - dLCoordinationInformation.clear(); - iE_Extensions.clear(); - - }; - private: - nR_CGI_t nR_CGI; - uLCoordinationInformation_t uLCoordinationInformation; - dLCoordinationInformation_t dLCoordinationInformation; - iE_Extensions_t iE_Extensions; - -}; -/* -SgNBSecurityKey ::= BIT STRING (SIZE(256)) -*/ - -struct SgNBSecurityKey : asn::bstring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "SgNBSecurityKey";} - using parent_t = asn::bstring<>; - -}; - -/* -SgNBtoMeNBContainer ::= OCTET STRING -*/ - -struct SgNBtoMeNBContainer : asn::ostring<> -{ - static constexpr const char* name() {return "SgNBtoMeNBContainer";} - using parent_t = asn::ostring<>; - -}; - -/* -ShortMAC-I ::= BIT STRING (SIZE(16)) -*/ - -struct ShortMAC_I : asn::bstring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "ShortMAC-I";} - using parent_t = asn::bstring<>; - -}; - -/* -SpectrumSharingGroupID ::= INTEGER (1..maxCellineNB) -*/ - -struct SpectrumSharingGroupID : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "SpectrumSharingGroupID";} - using parent_t = asn::integer<>; - -}; - -/* -SplitSRB-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct SplitSRB_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SplitSRB ::= SEQUENCE { - rrcContainer RRCContainer OPTIONAL, - srbType SRBType, - deliveryStatus DeliveryStatus OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {SplitSRB-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct SplitSRB : asn::sequence<4, 0, true, 3> -{ - static constexpr const char* name() {return "SplitSRB";} - using parent_t = asn::sequence<4, 0, true, 3>; - struct rrcContainer_t : RRCContainer - { - static constexpr const char* name() {return "rrcContainer_t";} - using parent_t = RRCContainer; - static constexpr bool optional = true; - - }; - rrcContainer_t& set_rrcContainer() { rrcContainer.setpresent(true); return rrcContainer;} - rrcContainer_t const* get_rrcContainer() const {return rrcContainer.is_valid() ? &rrcContainer : nullptr;} - struct srbType_t : SRBType - { - static constexpr const char* name() {return "srbType_t";} - using parent_t = SRBType; - - }; - srbType_t& ref_srbType() {return srbType;} - srbType_t const& ref_srbType() const {return srbType;} - struct deliveryStatus_t : DeliveryStatus - { - static constexpr const char* name() {return "deliveryStatus_t";} - using parent_t = DeliveryStatus; - static constexpr bool optional = true; - - }; - deliveryStatus_t& set_deliveryStatus() { deliveryStatus.setpresent(true); return deliveryStatus;} - deliveryStatus_t const* get_deliveryStatus() const {return deliveryStatus.is_valid() ? &deliveryStatus : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(rrcContainer); - v(srbType); - v(deliveryStatus); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(rrcContainer); - v(srbType); - v(deliveryStatus); - v(iE_Extensions); - - }; - void clear() - { - rrcContainer.clear(); - srbType.clear(); - deliveryStatus.clear(); - iE_Extensions.clear(); - - }; - private: - rrcContainer_t rrcContainer; - srbType_t srbType; - deliveryStatus_t deliveryStatus; - iE_Extensions_t iE_Extensions; - -}; -/* -SplitSRBs ::= ENUMERATED {srb1, srb2, srb1and2, ...} -*/ - -struct SplitSRBs : asn::enumerated<3, 0, true> -{ - static constexpr const char* name() {return "SplitSRBs";} - using parent_t = asn::enumerated<3, 0, true>; - typedef enum { - srb1 - ,srb2 - ,srb1and2 - } index_t; - -}; - -/* -SubscriberProfileIDforRFP ::= INTEGER (1..256) -*/ - -struct SubscriberProfileIDforRFP : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "SubscriberProfileIDforRFP";} - using parent_t = asn::integer<>; - -}; - -/* -Subscription-Based-UE-DifferentiationInfo-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct Subscription_Based_UE_DifferentiationInfo_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -Subscription-Based-UE-DifferentiationInfo ::= SEQUENCE { - periodicCommunicationIndicator ENUMERATED {periodically, ondemand, ...} OPTIONAL, - periodicTime INTEGER (1..3600, ...) OPTIONAL, - scheduledCommunicationTime ScheduledCommunicationTime OPTIONAL, - stationaryIndication ENUMERATED {stationary, mobile, ...} OPTIONAL, - trafficProfile ENUMERATED {single-packet, dual-packets, multiple-packets, ...} OPTIONAL, - batteryIndication ENUMERATED {battery-powered, battery-powered-not-rechargeable-or-replaceable, not-battery-powered, ...} OPTIONAL, - iE-Extensions ProtocolExtensionContainer { { Subscription-Based-UE-DifferentiationInfo-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct Subscription_Based_UE_DifferentiationInfo : asn::sequence<7, 0, true, 7> -{ - static constexpr const char* name() {return "Subscription-Based-UE-DifferentiationInfo";} - using parent_t = asn::sequence<7, 0, true, 7>; - struct periodicCommunicationIndicator_t : asn::enumerated<2, 0, true> - { - static constexpr const char* name() {return "periodicCommunicationIndicator_t";} - using parent_t = asn::enumerated<2, 0, true>; - static constexpr bool optional = true; - typedef enum { - periodically - ,ondemand - } index_t; - - }; - - periodicCommunicationIndicator_t& set_periodicCommunicationIndicator() { periodicCommunicationIndicator.setpresent(true); return periodicCommunicationIndicator;} - periodicCommunicationIndicator_t const* get_periodicCommunicationIndicator() const {return periodicCommunicationIndicator.is_valid() ? &periodicCommunicationIndicator : nullptr;} - struct periodicTime_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "periodicTime_t";} - using parent_t = asn::integer<>; - static constexpr bool optional = true; - - }; - - periodicTime_t& set_periodicTime() { periodicTime.setpresent(true); return periodicTime;} - periodicTime_t const* get_periodicTime() const {return periodicTime.is_valid() ? &periodicTime : nullptr;} - struct scheduledCommunicationTime_t : ScheduledCommunicationTime - { - static constexpr const char* name() {return "scheduledCommunicationTime_t";} - using parent_t = ScheduledCommunicationTime; - static constexpr bool optional = true; - - }; - scheduledCommunicationTime_t& set_scheduledCommunicationTime() { scheduledCommunicationTime.setpresent(true); return scheduledCommunicationTime;} - scheduledCommunicationTime_t const* get_scheduledCommunicationTime() const {return scheduledCommunicationTime.is_valid() ? &scheduledCommunicationTime : nullptr;} - struct stationaryIndication_t : asn::enumerated<2, 0, true> - { - static constexpr const char* name() {return "stationaryIndication_t";} - using parent_t = asn::enumerated<2, 0, true>; - static constexpr bool optional = true; - typedef enum { - stationary - ,mobile - } index_t; - - }; - - stationaryIndication_t& set_stationaryIndication() { stationaryIndication.setpresent(true); return stationaryIndication;} - stationaryIndication_t const* get_stationaryIndication() const {return stationaryIndication.is_valid() ? &stationaryIndication : nullptr;} - struct trafficProfile_t : asn::enumerated<3, 0, true> - { - static constexpr const char* name() {return "trafficProfile_t";} - using parent_t = asn::enumerated<3, 0, true>; - static constexpr bool optional = true; - typedef enum { - single_packet - ,dual_packets - ,multiple_packets - } index_t; - - }; - - trafficProfile_t& set_trafficProfile() { trafficProfile.setpresent(true); return trafficProfile;} - trafficProfile_t const* get_trafficProfile() const {return trafficProfile.is_valid() ? &trafficProfile : nullptr;} - struct batteryIndication_t : asn::enumerated<3, 0, true> - { - static constexpr const char* name() {return "batteryIndication_t";} - using parent_t = asn::enumerated<3, 0, true>; - static constexpr bool optional = true; - typedef enum { - battery_powered - ,battery_powered_not_rechargeable_or_replaceable - ,not_battery_powered - } index_t; - - }; - - batteryIndication_t& set_batteryIndication() { batteryIndication.setpresent(true); return batteryIndication;} - batteryIndication_t const* get_batteryIndication() const {return batteryIndication.is_valid() ? &batteryIndication : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(periodicCommunicationIndicator); - v(periodicTime); - v(scheduledCommunicationTime); - v(stationaryIndication); - v(trafficProfile); - v(batteryIndication); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(periodicCommunicationIndicator); - v(periodicTime); - v(scheduledCommunicationTime); - v(stationaryIndication); - v(trafficProfile); - v(batteryIndication); - v(iE_Extensions); - - }; - void clear() - { - periodicCommunicationIndicator.clear(); - periodicTime.clear(); - scheduledCommunicationTime.clear(); - stationaryIndication.clear(); - trafficProfile.clear(); - batteryIndication.clear(); - iE_Extensions.clear(); - - }; - private: - periodicCommunicationIndicator_t periodicCommunicationIndicator; - periodicTime_t periodicTime; - scheduledCommunicationTime_t scheduledCommunicationTime; - stationaryIndication_t stationaryIndication; - trafficProfile_t trafficProfile; - batteryIndication_t batteryIndication; - iE_Extensions_t iE_Extensions; - -}; -/* -TargetCellInUTRAN ::= OCTET STRING -- This IE is to be encoded according to the UTRAN Cell ID in the Last Visited UTRAN Cell Information IE in TS 25.413 [24] -*/ - -struct TargetCellInUTRAN : asn::ostring<> -{ - static constexpr const char* name() {return "TargetCellInUTRAN";} - using parent_t = asn::ostring<>; - -}; - -/* -TargeteNBtoSource-eNBTransparentContainer ::= OCTET STRING -*/ - -struct TargeteNBtoSource_eNBTransparentContainer : asn::ostring<> -{ - static constexpr const char* name() {return "TargeteNBtoSource-eNBTransparentContainer";} - using parent_t = asn::ostring<>; - -}; - -/* -TimeToWait ::= ENUMERATED { - v1s, - v2s, - v5s, - v10s, - v20s, - v60s, - ... -} -*/ - -struct TimeToWait : asn::enumerated<6, 0, true> -{ - static constexpr const char* name() {return "TimeToWait";} - using parent_t = asn::enumerated<6, 0, true>; - typedef enum { - v1s - ,v2s - ,v5s - ,v10s - ,v20s - ,v60s - } index_t; - -}; - -/* -TraceDepth ::= ENUMERATED { - minimum, - medium, - maximum, - minimumWithoutVendorSpecificExtension, - mediumWithoutVendorSpecificExtension, - maximumWithoutVendorSpecificExtension, - ... -} -*/ - -struct TraceDepth : asn::enumerated<6, 0, true> -{ - static constexpr const char* name() {return "TraceDepth";} - using parent_t = asn::enumerated<6, 0, true>; - typedef enum { - minimum - ,medium - ,maximum - ,minimumWithoutVendorSpecificExtension - ,mediumWithoutVendorSpecificExtension - ,maximumWithoutVendorSpecificExtension - } index_t; - -}; - -/* -TraceCollectionEntityIPAddress ::= BIT STRING (SIZE(1..160, ...)) -*/ - -struct TraceCollectionEntityIPAddress : asn::bstring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "TraceCollectionEntityIPAddress";} - using parent_t = asn::bstring<>; - -}; - -/* -UEAppLayerMeasConfig-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - {ID id-serviceType CRITICALITY ignore EXTENSION ServiceType PRESENCE optional}, - ... -} -*/ - -struct UEAppLayerMeasConfig_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_serviceType() { set(id_serviceType); type=1;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_serviceType)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_serviceType);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_serviceType() { set(ignore); type=1;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - ServiceType& select_id_serviceType() { return set(1); } - ServiceType const* get_id_serviceType() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_serviceType()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(ServiceType)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_serviceType() { set(optional); type=1;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -UEAppLayerMeasConfig ::= SEQUENCE { - containerForAppLayerMeasConfig OCTET STRING (SIZE(1..1000)), - areaScopeOfQMC AreaScopeOfQMC, - iE-Extensions ProtocolExtensionContainer { {UEAppLayerMeasConfig-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct UEAppLayerMeasConfig : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "UEAppLayerMeasConfig";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct containerForAppLayerMeasConfig_t : asn::ostring<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "containerForAppLayerMeasConfig_t";} - using parent_t = asn::ostring<>; - - }; - - containerForAppLayerMeasConfig_t& ref_containerForAppLayerMeasConfig() {return containerForAppLayerMeasConfig;} - containerForAppLayerMeasConfig_t const& ref_containerForAppLayerMeasConfig() const {return containerForAppLayerMeasConfig;} - struct areaScopeOfQMC_t : AreaScopeOfQMC - { - static constexpr const char* name() {return "areaScopeOfQMC_t";} - using parent_t = AreaScopeOfQMC; - - }; - areaScopeOfQMC_t& ref_areaScopeOfQMC() {return areaScopeOfQMC;} - areaScopeOfQMC_t const& ref_areaScopeOfQMC() const {return areaScopeOfQMC;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(containerForAppLayerMeasConfig); - v(areaScopeOfQMC); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(containerForAppLayerMeasConfig); - v(areaScopeOfQMC); - v(iE_Extensions); - - }; - void clear() - { - containerForAppLayerMeasConfig.clear(); - areaScopeOfQMC.clear(); - iE_Extensions.clear(); - - }; - private: - containerForAppLayerMeasConfig_t containerForAppLayerMeasConfig; - areaScopeOfQMC_t areaScopeOfQMC; - iE_Extensions_t iE_Extensions; - -}; -/* -TraceActivation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-MDTConfiguration CRITICALITY ignore EXTENSION MDT-Configuration PRESENCE optional}| - { ID id-UEAppLayerMeasConfig CRITICALITY ignore EXTENSION UEAppLayerMeasConfig PRESENCE optional}, - ... -} -*/ - -struct TraceActivation_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_MDTConfiguration() { set(id_MDTConfiguration); type=1;} - void select_id_UEAppLayerMeasConfig() { set(id_UEAppLayerMeasConfig); type=2;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MDTConfiguration)) { type = 1; return true; } - else if(equal(id_UEAppLayerMeasConfig)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MDTConfiguration);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_UEAppLayerMeasConfig);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_MDTConfiguration() { set(ignore); type=1;} - void select_id_UEAppLayerMeasConfig() { set(ignore); type=2;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - MDT_Configuration& select_id_MDTConfiguration() { return set(1); } - MDT_Configuration const* get_id_MDTConfiguration() const { return get(1); } - UEAppLayerMeasConfig& select_id_UEAppLayerMeasConfig() { return set(2); } - UEAppLayerMeasConfig const* get_id_UEAppLayerMeasConfig() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MDTConfiguration()); return true; - case 2: v(select_id_UEAppLayerMeasConfig()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(MDT_Configuration)]; - char dummy2[sizeof(UEAppLayerMeasConfig)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_MDTConfiguration() { set(optional); type=1;} - void select_id_UEAppLayerMeasConfig() { set(optional); type=2;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -TraceActivation ::= SEQUENCE { - eUTRANTraceID EUTRANTraceID, - interfacesToTrace InterfacesToTrace, -traceDepth TraceDepth, -traceCollectionEntityIPAddress TraceCollectionEntityIPAddress, - iE-Extensions ProtocolExtensionContainer { {TraceActivation-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct TraceActivation : asn::sequence<5, 0, true, 1> -{ - static constexpr const char* name() {return "TraceActivation";} - using parent_t = asn::sequence<5, 0, true, 1>; - struct eUTRANTraceID_t : EUTRANTraceID - { - static constexpr const char* name() {return "eUTRANTraceID_t";} - using parent_t = EUTRANTraceID; - - }; - eUTRANTraceID_t& ref_eUTRANTraceID() {return eUTRANTraceID;} - eUTRANTraceID_t const& ref_eUTRANTraceID() const {return eUTRANTraceID;} - struct interfacesToTrace_t : InterfacesToTrace - { - static constexpr const char* name() {return "interfacesToTrace_t";} - using parent_t = InterfacesToTrace; - - }; - interfacesToTrace_t& ref_interfacesToTrace() {return interfacesToTrace;} - interfacesToTrace_t const& ref_interfacesToTrace() const {return interfacesToTrace;} - struct traceDepth_t : TraceDepth - { - static constexpr const char* name() {return "traceDepth_t";} - using parent_t = TraceDepth; - - }; - traceDepth_t& ref_traceDepth() {return traceDepth;} - traceDepth_t const& ref_traceDepth() const {return traceDepth;} - struct traceCollectionEntityIPAddress_t : TraceCollectionEntityIPAddress - { - static constexpr const char* name() {return "traceCollectionEntityIPAddress_t";} - using parent_t = TraceCollectionEntityIPAddress; - - }; - traceCollectionEntityIPAddress_t& ref_traceCollectionEntityIPAddress() {return traceCollectionEntityIPAddress;} - traceCollectionEntityIPAddress_t const& ref_traceCollectionEntityIPAddress() const {return traceCollectionEntityIPAddress;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(eUTRANTraceID); - v(interfacesToTrace); - v(traceDepth); - v(traceCollectionEntityIPAddress); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(eUTRANTraceID); - v(interfacesToTrace); - v(traceDepth); - v(traceCollectionEntityIPAddress); - v(iE_Extensions); - - }; - void clear() - { - eUTRANTraceID.clear(); - interfacesToTrace.clear(); - traceDepth.clear(); - traceCollectionEntityIPAddress.clear(); - iE_Extensions.clear(); - - }; - private: - eUTRANTraceID_t eUTRANTraceID; - interfacesToTrace_t interfacesToTrace; - traceDepth_t traceDepth; - traceCollectionEntityIPAddress_t traceCollectionEntityIPAddress; - iE_Extensions_t iE_Extensions; - -}; -/* -Tunnel-Information-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct Tunnel_Information_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -TunnelInformation ::= SEQUENCE { - transportLayerAddress TransportLayerAddress, - uDP-Port-Number Port-Number OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {Tunnel-Information-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct TunnelInformation : asn::sequence<3, 0, true, 2> -{ - static constexpr const char* name() {return "TunnelInformation";} - using parent_t = asn::sequence<3, 0, true, 2>; - struct transportLayerAddress_t : TransportLayerAddress - { - static constexpr const char* name() {return "transportLayerAddress_t";} - using parent_t = TransportLayerAddress; - - }; - transportLayerAddress_t& ref_transportLayerAddress() {return transportLayerAddress;} - transportLayerAddress_t const& ref_transportLayerAddress() const {return transportLayerAddress;} - struct uDP_Port_Number_t : Port_Number - { - static constexpr const char* name() {return "uDP_Port_Number_t";} - using parent_t = Port_Number; - static constexpr bool optional = true; - - }; - uDP_Port_Number_t& set_uDP_Port_Number() { uDP_Port_Number.setpresent(true); return uDP_Port_Number;} - uDP_Port_Number_t const* get_uDP_Port_Number() const {return uDP_Port_Number.is_valid() ? &uDP_Port_Number : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(transportLayerAddress); - v(uDP_Port_Number); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(transportLayerAddress); - v(uDP_Port_Number); - v(iE_Extensions); - - }; - void clear() - { - transportLayerAddress.clear(); - uDP_Port_Number.clear(); - iE_Extensions.clear(); - - }; - private: - transportLayerAddress_t transportLayerAddress; - uDP_Port_Number_t uDP_Port_Number; - iE_Extensions_t iE_Extensions; - -}; -/* -UE-ContextKeptIndicator ::= ENUMERATED { - true, - ... -} -*/ - -struct UE_ContextKeptIndicator : asn::enumerated<1, 0, true> -{ - static constexpr const char* name() {return "UE-ContextKeptIndicator";} - using parent_t = asn::enumerated<1, 0, true>; - typedef enum { - True - } index_t; - -}; - -/* -UE-HistoryInformation ::= SEQUENCE (SIZE(1..maxnoofCells)) OF LastVisitedCell-Item -*/ - -struct UE_HistoryInformation_elm : LastVisitedCell_Item -{ - static constexpr const char* name() {return "UE_HistoryInformation_elm";} - using parent_t = LastVisitedCell_Item; - -}; -struct UE_HistoryInformation : asn::sequenceof -{ - static constexpr const char* name() {return "UE-HistoryInformation";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -UE-HistoryInformationFromTheUE ::= OCTET STRING -*/ - -struct UE_HistoryInformationFromTheUE : asn::ostring<> -{ - static constexpr const char* name() {return "UE-HistoryInformationFromTheUE";} - using parent_t = asn::ostring<>; - -}; - -/* -UE-RLF-Report-Container::= OCTET STRING -*/ - -struct UE_RLF_Report_Container : asn::ostring<> -{ - static constexpr const char* name() {return "UE-RLF-Report-Container";} - using parent_t = asn::ostring<>; - -}; - -/* -UE-RLF-Report-Container-for-extended-bands ::= OCTET STRING -*/ - -struct UE_RLF_Report_Container_for_extended_bands : asn::ostring<> -{ - static constexpr const char* name() {return "UE-RLF-Report-Container-for-extended-bands";} - using parent_t = asn::ostring<>; - -}; - -/* -UE-S1AP-ID ::= INTEGER (0.. 4294967295) -*/ - -struct UE_S1AP_ID : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "UE-S1AP-ID";} - using parent_t = asn::integer<>; - -}; - -/* -UE-Sidelink-Aggregate-MaximumBitRate-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct UE_Sidelink_Aggregate_MaximumBitRate_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -UE-X2AP-ID ::= INTEGER (0..4095) -*/ - -struct UE_X2AP_ID : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "UE-X2AP-ID";} - using parent_t = asn::integer<>; - -}; - -/* -UE-X2AP-ID-Extension ::= INTEGER (0..4095, ...) -*/ - -struct UE_X2AP_ID_Extension : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "UE-X2AP-ID-Extension";} - using parent_t = asn::integer<>; - -}; - -/* -UEAggregate-MaximumBitrate-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-extended-uEaggregateMaximumBitRateDownlink CRITICALITY ignore EXTENSION ExtendedBitRate PRESENCE optional}| - { ID id-extended-uEaggregateMaximumBitRateUplink CRITICALITY ignore EXTENSION ExtendedBitRate PRESENCE optional}, - ... -} -*/ - -struct UEAggregate_MaximumBitrate_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_extended_uEaggregateMaximumBitRateDownlink() { set(id_extended_uEaggregateMaximumBitRateDownlink); type=1;} - void select_id_extended_uEaggregateMaximumBitRateUplink() { set(id_extended_uEaggregateMaximumBitRateUplink); type=2;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_extended_uEaggregateMaximumBitRateDownlink)) { type = 1; return true; } - else if(equal(id_extended_uEaggregateMaximumBitRateUplink)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_extended_uEaggregateMaximumBitRateDownlink);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_extended_uEaggregateMaximumBitRateUplink);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_extended_uEaggregateMaximumBitRateDownlink() { set(ignore); type=1;} - void select_id_extended_uEaggregateMaximumBitRateUplink() { set(ignore); type=2;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - ExtendedBitRate& select_id_extended_uEaggregateMaximumBitRateDownlink() { return set(1); } - ExtendedBitRate const* get_id_extended_uEaggregateMaximumBitRateDownlink() const { return get(1); } - ExtendedBitRate& select_id_extended_uEaggregateMaximumBitRateUplink() { return set(2); } - ExtendedBitRate const* get_id_extended_uEaggregateMaximumBitRateUplink() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_extended_uEaggregateMaximumBitRateDownlink()); return true; - case 2: v(select_id_extended_uEaggregateMaximumBitRateUplink()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(ExtendedBitRate)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_extended_uEaggregateMaximumBitRateDownlink() { set(optional); type=1;} - void select_id_extended_uEaggregateMaximumBitRateUplink() { set(optional); type=2;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -UEAggregateMaximumBitRate ::= SEQUENCE { - uEaggregateMaximumBitRateDownlink BitRate, - uEaggregateMaximumBitRateUplink BitRate, - iE-Extensions ProtocolExtensionContainer { {UEAggregate-MaximumBitrate-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct UEAggregateMaximumBitRate : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "UEAggregateMaximumBitRate";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct uEaggregateMaximumBitRateDownlink_t : BitRate - { - static constexpr const char* name() {return "uEaggregateMaximumBitRateDownlink_t";} - using parent_t = BitRate; - - }; - uEaggregateMaximumBitRateDownlink_t& ref_uEaggregateMaximumBitRateDownlink() {return uEaggregateMaximumBitRateDownlink;} - uEaggregateMaximumBitRateDownlink_t const& ref_uEaggregateMaximumBitRateDownlink() const {return uEaggregateMaximumBitRateDownlink;} - struct uEaggregateMaximumBitRateUplink_t : BitRate - { - static constexpr const char* name() {return "uEaggregateMaximumBitRateUplink_t";} - using parent_t = BitRate; - - }; - uEaggregateMaximumBitRateUplink_t& ref_uEaggregateMaximumBitRateUplink() {return uEaggregateMaximumBitRateUplink;} - uEaggregateMaximumBitRateUplink_t const& ref_uEaggregateMaximumBitRateUplink() const {return uEaggregateMaximumBitRateUplink;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(uEaggregateMaximumBitRateDownlink); - v(uEaggregateMaximumBitRateUplink); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(uEaggregateMaximumBitRateDownlink); - v(uEaggregateMaximumBitRateUplink); - v(iE_Extensions); - - }; - void clear() - { - uEaggregateMaximumBitRateDownlink.clear(); - uEaggregateMaximumBitRateUplink.clear(); - iE_Extensions.clear(); - - }; - private: - uEaggregateMaximumBitRateDownlink_t uEaggregateMaximumBitRateDownlink; - uEaggregateMaximumBitRateUplink_t uEaggregateMaximumBitRateUplink; - iE_Extensions_t iE_Extensions; - -}; -/* -UENRMeasurement-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct UENRMeasurement_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -UENRMeasurement ::= SEQUENCE { - uENRMeasurements RRCContainer, - iE-Extensions ProtocolExtensionContainer { {UENRMeasurement-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct UENRMeasurement : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "UENRMeasurement";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct uENRMeasurements_t : RRCContainer - { - static constexpr const char* name() {return "uENRMeasurements_t";} - using parent_t = RRCContainer; - - }; - uENRMeasurements_t& ref_uENRMeasurements() {return uENRMeasurements;} - uENRMeasurements_t const& ref_uENRMeasurements() const {return uENRMeasurements;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(uENRMeasurements); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(uENRMeasurements); - v(iE_Extensions); - - }; - void clear() - { - uENRMeasurements.clear(); - iE_Extensions.clear(); - - }; - private: - uENRMeasurements_t uENRMeasurements; - iE_Extensions_t iE_Extensions; - -}; -/* -UESecurityCapabilities-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct UESecurityCapabilities_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -UESecurityCapabilities ::= SEQUENCE { - encryptionAlgorithms EncryptionAlgorithms, - integrityProtectionAlgorithms IntegrityProtectionAlgorithms, - iE-Extensions ProtocolExtensionContainer { {UESecurityCapabilities-ExtIEs} } OPTIONAL, -... -} -*/ - -struct UESecurityCapabilities : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "UESecurityCapabilities";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct encryptionAlgorithms_t : EncryptionAlgorithms - { - static constexpr const char* name() {return "encryptionAlgorithms_t";} - using parent_t = EncryptionAlgorithms; - - }; - encryptionAlgorithms_t& ref_encryptionAlgorithms() {return encryptionAlgorithms;} - encryptionAlgorithms_t const& ref_encryptionAlgorithms() const {return encryptionAlgorithms;} - struct integrityProtectionAlgorithms_t : IntegrityProtectionAlgorithms - { - static constexpr const char* name() {return "integrityProtectionAlgorithms_t";} - using parent_t = IntegrityProtectionAlgorithms; - - }; - integrityProtectionAlgorithms_t& ref_integrityProtectionAlgorithms() {return integrityProtectionAlgorithms;} - integrityProtectionAlgorithms_t const& ref_integrityProtectionAlgorithms() const {return integrityProtectionAlgorithms;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(encryptionAlgorithms); - v(integrityProtectionAlgorithms); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(encryptionAlgorithms); - v(integrityProtectionAlgorithms); - v(iE_Extensions); - - }; - void clear() - { - encryptionAlgorithms.clear(); - integrityProtectionAlgorithms.clear(); - iE_Extensions.clear(); - - }; - private: - encryptionAlgorithms_t encryptionAlgorithms; - integrityProtectionAlgorithms_t integrityProtectionAlgorithms; - iE_Extensions_t iE_Extensions; - -}; -/* -UESidelinkAggregateMaximumBitRate ::= SEQUENCE { - uESidelinkAggregateMaximumBitRate BitRate, - iE-Extensions ProtocolExtensionContainer { {UE-Sidelink-Aggregate-MaximumBitRate-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct UESidelinkAggregateMaximumBitRate : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "UESidelinkAggregateMaximumBitRate";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct uESidelinkAggregateMaximumBitRate_t : BitRate - { - static constexpr const char* name() {return "uESidelinkAggregateMaximumBitRate_t";} - using parent_t = BitRate; - - }; - uESidelinkAggregateMaximumBitRate_t& ref_uESidelinkAggregateMaximumBitRate() {return uESidelinkAggregateMaximumBitRate;} - uESidelinkAggregateMaximumBitRate_t const& ref_uESidelinkAggregateMaximumBitRate() const {return uESidelinkAggregateMaximumBitRate;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(uESidelinkAggregateMaximumBitRate); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(uESidelinkAggregateMaximumBitRate); - v(iE_Extensions); - - }; - void clear() - { - uESidelinkAggregateMaximumBitRate.clear(); - iE_Extensions.clear(); - - }; - private: - uESidelinkAggregateMaximumBitRate_t uESidelinkAggregateMaximumBitRate; - iE_Extensions_t iE_Extensions; - -}; -/* -UEsToBeResetList-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct UEsToBeResetList_Item_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -UEsToBeResetList-Item::= SEQUENCE { - meNB-ID UE-X2AP-ID, - meNB-ID-ext UE-X2AP-ID-Extension OPTIONAL, - sgNB-ID SgNB-UE-X2AP-ID OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {UEsToBeResetList-Item-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct UEsToBeResetList_Item : asn::sequence<4, 0, true, 3> -{ - static constexpr const char* name() {return "UEsToBeResetList-Item";} - using parent_t = asn::sequence<4, 0, true, 3>; - struct meNB_ID_t : UE_X2AP_ID - { - static constexpr const char* name() {return "meNB_ID_t";} - using parent_t = UE_X2AP_ID; - - }; - meNB_ID_t& ref_meNB_ID() {return meNB_ID;} - meNB_ID_t const& ref_meNB_ID() const {return meNB_ID;} - struct meNB_ID_ext_t : UE_X2AP_ID_Extension - { - static constexpr const char* name() {return "meNB_ID_ext_t";} - using parent_t = UE_X2AP_ID_Extension; - static constexpr bool optional = true; - - }; - meNB_ID_ext_t& set_meNB_ID_ext() { meNB_ID_ext.setpresent(true); return meNB_ID_ext;} - meNB_ID_ext_t const* get_meNB_ID_ext() const {return meNB_ID_ext.is_valid() ? &meNB_ID_ext : nullptr;} - struct sgNB_ID_t : SgNB_UE_X2AP_ID - { - static constexpr const char* name() {return "sgNB_ID_t";} - using parent_t = SgNB_UE_X2AP_ID; - static constexpr bool optional = true; - - }; - sgNB_ID_t& set_sgNB_ID() { sgNB_ID.setpresent(true); return sgNB_ID;} - sgNB_ID_t const* get_sgNB_ID() const {return sgNB_ID.is_valid() ? &sgNB_ID : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(meNB_ID); - v(meNB_ID_ext); - v(sgNB_ID); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(meNB_ID); - v(meNB_ID_ext); - v(sgNB_ID); - v(iE_Extensions); - - }; - void clear() - { - meNB_ID.clear(); - meNB_ID_ext.clear(); - sgNB_ID.clear(); - iE_Extensions.clear(); - - }; - private: - meNB_ID_t meNB_ID; - meNB_ID_ext_t meNB_ID_ext; - sgNB_ID_t sgNB_ID; - iE_Extensions_t iE_Extensions; - -}; -/* -UEsToBeResetList ::= SEQUENCE (SIZE (1.. maxUEsinengNBDU)) OF UEsToBeResetList-Item -*/ - -struct UEsToBeResetList_elm : UEsToBeResetList_Item -{ - static constexpr const char* name() {return "UEsToBeResetList_elm";} - using parent_t = UEsToBeResetList_Item; - -}; -struct UEsToBeResetList : asn::sequenceof -{ - static constexpr const char* name() {return "UEsToBeResetList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -UL-HighInterferenceIndication ::= BIT STRING (SIZE(1..110, ...)) -*/ - -struct UL_HighInterferenceIndication : asn::bstring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "UL-HighInterferenceIndication";} - using parent_t = asn::bstring<>; - -}; - -/* -UL-HighInterferenceIndicationInfo-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct UL_HighInterferenceIndicationInfo_Item_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -UL-HighInterferenceIndicationInfo-Item ::= SEQUENCE { - target-Cell-ID ECGI, - ul-interferenceindication UL-HighInterferenceIndication, - iE-Extensions ProtocolExtensionContainer { {UL-HighInterferenceIndicationInfo-Item-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct UL_HighInterferenceIndicationInfo_Item : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "UL-HighInterferenceIndicationInfo-Item";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct target_Cell_ID_t : ECGI - { - static constexpr const char* name() {return "target_Cell_ID_t";} - using parent_t = ECGI; - - }; - target_Cell_ID_t& ref_target_Cell_ID() {return target_Cell_ID;} - target_Cell_ID_t const& ref_target_Cell_ID() const {return target_Cell_ID;} - struct ul_interferenceindication_t : UL_HighInterferenceIndication - { - static constexpr const char* name() {return "ul_interferenceindication_t";} - using parent_t = UL_HighInterferenceIndication; - - }; - ul_interferenceindication_t& ref_ul_interferenceindication() {return ul_interferenceindication;} - ul_interferenceindication_t const& ref_ul_interferenceindication() const {return ul_interferenceindication;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(target_Cell_ID); - v(ul_interferenceindication); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(target_Cell_ID); - v(ul_interferenceindication); - v(iE_Extensions); - - }; - void clear() - { - target_Cell_ID.clear(); - ul_interferenceindication.clear(); - iE_Extensions.clear(); - - }; - private: - target_Cell_ID_t target_Cell_ID; - ul_interferenceindication_t ul_interferenceindication; - iE_Extensions_t iE_Extensions; - -}; -/* -UL-HighInterferenceIndicationInfo ::= SEQUENCE (SIZE(1..maxCellineNB)) OF UL-HighInterferenceIndicationInfo-Item -*/ - -struct UL_HighInterferenceIndicationInfo_elm : UL_HighInterferenceIndicationInfo_Item -{ - static constexpr const char* name() {return "UL_HighInterferenceIndicationInfo_elm";} - using parent_t = UL_HighInterferenceIndicationInfo_Item; - -}; -struct UL_HighInterferenceIndicationInfo : asn::sequenceof -{ - static constexpr const char* name() {return "UL-HighInterferenceIndicationInfo";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -UL-UE-Configuration::= ENUMERATED { no-data, shared, only, ... } -*/ - -struct UL_UE_Configuration : asn::enumerated<3, 0, true> -{ - static constexpr const char* name() {return "UL-UE-Configuration";} - using parent_t = asn::enumerated<3, 0, true>; - typedef enum { - no_data - ,shared - ,only - } index_t; - -}; - -/* -ULConfiguration-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct ULConfiguration_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ULConfiguration::= SEQUENCE { - uL-PDCP UL-UE-Configuration, - iE-Extensions ProtocolExtensionContainer { {ULConfiguration-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct ULConfiguration : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "ULConfiguration";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct uL_PDCP_t : UL_UE_Configuration - { - static constexpr const char* name() {return "uL_PDCP_t";} - using parent_t = UL_UE_Configuration; - - }; - uL_PDCP_t& ref_uL_PDCP() {return uL_PDCP;} - uL_PDCP_t const& ref_uL_PDCP() const {return uL_PDCP;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(uL_PDCP); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(uL_PDCP); - v(iE_Extensions); - - }; - void clear() - { - uL_PDCP.clear(); - iE_Extensions.clear(); - - }; - private: - uL_PDCP_t uL_PDCP; - iE_Extensions_t iE_Extensions; - -}; -/* -VehicleUE ::= ENUMERATED { - authorized, - not-authorized, - ... -} -*/ - -struct VehicleUE : asn::enumerated<2, 0, true> -{ - static constexpr const char* name() {return "VehicleUE";} - using parent_t = asn::enumerated<2, 0, true>; - typedef enum { - authorized - ,not_authorized - } index_t; - -}; - -/* -V2XServicesAuthorized-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct V2XServicesAuthorized_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -V2XServicesAuthorized ::= SEQUENCE { - vehicleUE VehicleUE OPTIONAL, -pedestrianUE PedestrianUE OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {V2XServicesAuthorized-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct V2XServicesAuthorized : asn::sequence<3, 0, true, 3> -{ - static constexpr const char* name() {return "V2XServicesAuthorized";} - using parent_t = asn::sequence<3, 0, true, 3>; - struct vehicleUE_t : VehicleUE - { - static constexpr const char* name() {return "vehicleUE_t";} - using parent_t = VehicleUE; - static constexpr bool optional = true; - - }; - vehicleUE_t& set_vehicleUE() { vehicleUE.setpresent(true); return vehicleUE;} - vehicleUE_t const* get_vehicleUE() const {return vehicleUE.is_valid() ? &vehicleUE : nullptr;} - struct pedestrianUE_t : PedestrianUE - { - static constexpr const char* name() {return "pedestrianUE_t";} - using parent_t = PedestrianUE; - static constexpr bool optional = true; - - }; - pedestrianUE_t& set_pedestrianUE() { pedestrianUE.setpresent(true); return pedestrianUE;} - pedestrianUE_t const* get_pedestrianUE() const {return pedestrianUE.is_valid() ? &pedestrianUE : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(vehicleUE); - v(pedestrianUE); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(vehicleUE); - v(pedestrianUE); - v(iE_Extensions); - - }; - void clear() - { - vehicleUE.clear(); - pedestrianUE.clear(); - iE_Extensions.clear(); - - }; - private: - vehicleUE_t vehicleUE; - pedestrianUE_t pedestrianUE; - iE_Extensions_t iE_Extensions; - -}; -/* -WT-UE-XwAP-ID ::= OCTET STRING (SIZE (3)) -*/ - -struct WT_UE_XwAP_ID : asn::ostring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "WT-UE-XwAP-ID";} - using parent_t = asn::ostring<>; - -}; - -/* -WTID-Type1 ::= SEQUENCE { - pLMN-Identity PLMN-Identity, - shortWTID BIT STRING (SIZE(24)), - ... -} -*/ - -struct WTID_Type1 : asn::sequence<2, 0, true, 0> -{ - static constexpr const char* name() {return "WTID-Type1";} - using parent_t = asn::sequence<2, 0, true, 0>; - struct pLMN_Identity_t : PLMN_Identity - { - static constexpr const char* name() {return "pLMN_Identity_t";} - using parent_t = PLMN_Identity; - - }; - pLMN_Identity_t& ref_pLMN_Identity() {return pLMN_Identity;} - pLMN_Identity_t const& ref_pLMN_Identity() const {return pLMN_Identity;} - struct shortWTID_t : asn::bstring<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "shortWTID_t";} - using parent_t = asn::bstring<>; - - }; - - shortWTID_t& ref_shortWTID() {return shortWTID;} - shortWTID_t const& ref_shortWTID() const {return shortWTID;} - template void decode(V& v) - { - v(pLMN_Identity); - v(shortWTID); - - }; - template void encode(V& v) const - { - v(pLMN_Identity); - v(shortWTID); - - }; - void clear() - { - pLMN_Identity.clear(); - shortWTID.clear(); - - }; - private: - pLMN_Identity_t pLMN_Identity; - shortWTID_t shortWTID; - -}; -/* -WTID-Long-Type2 ::= BIT STRING (SIZE(48)) -*/ - -struct WTID_Long_Type2 : asn::bstring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "WTID-Long-Type2";} - using parent_t = asn::bstring<>; - -}; - -/* -WTID ::= CHOICE { - wTID-Type1 WTID-Type1, - wTID-Type2 WTID-Long-Type2, - ... -} -*/ - -struct WTID : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "WTID";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~WTID() {clear();} - struct wTID_Type1_t : WTID_Type1 - { - static constexpr const char* name() {return "wTID_Type1_t";} - using parent_t = WTID_Type1; - - }; - struct wTID_Type2_t : WTID_Long_Type2 - { - static constexpr const char* name() {return "wTID_Type2_t";} - using parent_t = WTID_Long_Type2; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - wTID_Type1_t& select_wTID_Type1() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - wTID_Type1_t const* get_wTID_Type1() const { if(get_index() == 1) { return &var.as();} return nullptr; } - wTID_Type2_t& select_wTID_Type2() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - wTID_Type2_t const* get_wTID_Type2() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(wTID_Type1_t)]; - char dummy2[sizeof(wTID_Type2_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -X2BenefitValue ::= INTEGER (1..8, ...) -*/ - -struct X2BenefitValue : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "X2BenefitValue";} - using parent_t = asn::integer<>; - -}; diff --git a/e2sim/previous/e2apv1sim/src/ASN1/generated/X2AP-PDU-Contents.hpp b/e2sim/previous/e2apv1sim/src/ASN1/generated/X2AP-PDU-Contents.hpp deleted file mode 100644 index dd85f97..0000000 --- a/e2sim/previous/e2apv1sim/src/ASN1/generated/X2AP-PDU-Contents.hpp +++ /dev/null @@ -1,68476 +0,0 @@ -/***************************************************************************** -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -#pragma once - -#include "asn/asn.hpp" -static_assert(ASN_API_VERSION_MAJOR == 5, "re-generate the ASN parser's code using 'make regen-asn' (do not use -j option)"); - -#include "X2AP-IEs.hpp" -#include "X2AP-Containers.hpp" -#include "X2AP-Constants.hpp" - -/* -ActivatedCellList-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct ActivatedCellList_Item_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ActivatedCellList-Item::= SEQUENCE { - ecgi ECGI, - iE-Extensions ProtocolExtensionContainer { {ActivatedCellList-Item-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct ActivatedCellList_Item : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "ActivatedCellList-Item";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct ecgi_t : ECGI - { - static constexpr const char* name() {return "ecgi_t";} - using parent_t = ECGI; - - }; - ecgi_t& ref_ecgi() {return ecgi;} - ecgi_t const& ref_ecgi() const {return ecgi;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(ecgi); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(ecgi); - v(iE_Extensions); - - }; - void clear() - { - ecgi.clear(); - iE_Extensions.clear(); - - }; - private: - ecgi_t ecgi; - iE_Extensions_t iE_Extensions; - -}; -/* -ActivatedCellList ::= SEQUENCE (SIZE (1..maxCellineNB)) OF ActivatedCellList-Item -*/ - -struct ActivatedCellList_elm : ActivatedCellList_Item -{ - static constexpr const char* name() {return "ActivatedCellList_elm";} - using parent_t = ActivatedCellList_Item; - -}; -struct ActivatedCellList : asn::sequenceof -{ - static constexpr const char* name() {return "ActivatedCellList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -ActivatedNRCellList-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct ActivatedNRCellList_Item_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ActivatedNRCellList-Item::= SEQUENCE { - nrCellID NRCGI, - iE-Extensions ProtocolExtensionContainer { {ActivatedNRCellList-Item-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct ActivatedNRCellList_Item : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "ActivatedNRCellList-Item";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct nrCellID_t : NRCGI - { - static constexpr const char* name() {return "nrCellID_t";} - using parent_t = NRCGI; - - }; - nrCellID_t& ref_nrCellID() {return nrCellID;} - nrCellID_t const& ref_nrCellID() const {return nrCellID;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(nrCellID); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(nrCellID); - v(iE_Extensions); - - }; - void clear() - { - nrCellID.clear(); - iE_Extensions.clear(); - - }; - private: - nrCellID_t nrCellID; - iE_Extensions_t iE_Extensions; - -}; -/* -ActivatedNRCellList ::= SEQUENCE (SIZE (1.. maxCellinengNB)) OF ActivatedNRCellList-Item -*/ - -struct ActivatedNRCellList_elm : ActivatedNRCellList_Item -{ - static constexpr const char* name() {return "ActivatedNRCellList_elm";} - using parent_t = ActivatedNRCellList_Item; - -}; -struct ActivatedNRCellList : asn::sequenceof -{ - static constexpr const char* name() {return "ActivatedNRCellList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -CellActivationFailure-IEs X2AP-PROTOCOL-IES ::= { - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, - ... -} -*/ - -struct CellActivationFailure_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_Cause() { set(id_Cause); type=1;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=2;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_Cause)) { type = 1; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_Cause() { set(ignore); type=1;} - void select_id_CriticalityDiagnostics() { set(ignore); type=2;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - Cause& select_id_Cause() { return set(1); } - Cause const* get_id_Cause() const { return get(1); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(2); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_Cause()); return true; - case 2: v(select_id_CriticalityDiagnostics()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(CriticalityDiagnostics)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_Cause() { set(mandatory); type=1;} - void select_id_CriticalityDiagnostics() { set(optional); type=2;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -CellActivationFailure ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{CellActivationFailure-IEs}}, - ... -} -*/ - -struct CellActivationFailure : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "CellActivationFailure";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -ServedCellsToActivate-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct ServedCellsToActivate_Item_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ServedCellsToActivate-Item::= SEQUENCE { - ecgi ECGI, - iE-Extensions ProtocolExtensionContainer { {ServedCellsToActivate-Item-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct ServedCellsToActivate_Item : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "ServedCellsToActivate-Item";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct ecgi_t : ECGI - { - static constexpr const char* name() {return "ecgi_t";} - using parent_t = ECGI; - - }; - ecgi_t& ref_ecgi() {return ecgi;} - ecgi_t const& ref_ecgi() const {return ecgi;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(ecgi); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(ecgi); - v(iE_Extensions); - - }; - void clear() - { - ecgi.clear(); - iE_Extensions.clear(); - - }; - private: - ecgi_t ecgi; - iE_Extensions_t iE_Extensions; - -}; -/* -ServedCellsToActivate::= SEQUENCE (SIZE (1..maxCellineNB)) OF ServedCellsToActivate-Item -*/ - -struct ServedCellsToActivate_elm : ServedCellsToActivate_Item -{ - static constexpr const char* name() {return "ServedCellsToActivate_elm";} - using parent_t = ServedCellsToActivate_Item; - -}; -struct ServedCellsToActivate : asn::sequenceof -{ - static constexpr const char* name() {return "ServedCellsToActivate";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -CellActivationRequest-IEs X2AP-PROTOCOL-IES ::= { - { ID id-ServedCellsToActivate CRITICALITY reject TYPE ServedCellsToActivate PRESENCE mandatory}, - ... -} -*/ - -struct CellActivationRequest_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_ServedCellsToActivate() { set(id_ServedCellsToActivate); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_ServedCellsToActivate)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_ServedCellsToActivate);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_ServedCellsToActivate() { set(reject); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - ServedCellsToActivate& select_id_ServedCellsToActivate() { return set(1); } - ServedCellsToActivate const* get_id_ServedCellsToActivate() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_ServedCellsToActivate()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(ServedCellsToActivate)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_ServedCellsToActivate() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -CellActivationRequest ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{CellActivationRequest-IEs}}, - ... -} -*/ - -struct CellActivationRequest : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "CellActivationRequest";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -CellActivationResponse-IEs X2AP-PROTOCOL-IES ::= { - { ID id-ActivatedCellList CRITICALITY ignore TYPE ActivatedCellList PRESENCE mandatory}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, - ... -} -*/ - -struct CellActivationResponse_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_ActivatedCellList() { set(id_ActivatedCellList); type=1;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=2;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_ActivatedCellList)) { type = 1; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_ActivatedCellList);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_ActivatedCellList() { set(ignore); type=1;} - void select_id_CriticalityDiagnostics() { set(ignore); type=2;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - ActivatedCellList& select_id_ActivatedCellList() { return set(1); } - ActivatedCellList const* get_id_ActivatedCellList() const { return get(1); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(2); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_ActivatedCellList()); return true; - case 2: v(select_id_CriticalityDiagnostics()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(ActivatedCellList)]; - char dummy2[sizeof(CriticalityDiagnostics)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_ActivatedCellList() { set(mandatory); type=1;} - void select_id_CriticalityDiagnostics() { set(optional); type=2;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -CellActivationResponse ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{CellActivationResponse-IEs}}, - ... -} -*/ - -struct CellActivationResponse : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "CellActivationResponse";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -Limited-list-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct Limited_list_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -Limited-list ::= SEQUENCE (SIZE (1..maxCellinengNB)) OF SEQUENCE { - nrCellID NRCGI, - iE-Extensions ProtocolExtensionContainer { {Limited-list-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct Limited_list_elm : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "Limited_list_elm";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct nrCellID_t : NRCGI - { - static constexpr const char* name() {return "nrCellID_t";} - using parent_t = NRCGI; - - }; - nrCellID_t& ref_nrCellID() {return nrCellID;} - nrCellID_t const& ref_nrCellID() const {return nrCellID;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(nrCellID); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(nrCellID); - v(iE_Extensions); - - }; - void clear() - { - nrCellID.clear(); - iE_Extensions.clear(); - - }; - private: - nrCellID_t nrCellID; - iE_Extensions_t iE_Extensions; - -}; -struct Limited_list : asn::sequenceof -{ - static constexpr const char* name() {return "Limited-list";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -CellAssistanceInformation ::= CHOICE { - limited-list Limited-list, - full-list ENUMERATED {allServedNRcells, ...}, - ... -} -*/ - -struct CellAssistanceInformation : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "CellAssistanceInformation";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~CellAssistanceInformation() {clear();} - struct limited_list_t : Limited_list - { - static constexpr const char* name() {return "limited_list_t";} - using parent_t = Limited_list; - - }; - struct full_list_t : asn::enumerated<1, 0, true> - { - static constexpr const char* name() {return "full_list_t";} - using parent_t = asn::enumerated<1, 0, true>; - typedef enum { - allServedNRcells - } index_t; - - }; - - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - limited_list_t& select_limited_list() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - limited_list_t const* get_limited_list() const { if(get_index() == 1) { return &var.as();} return nullptr; } - full_list_t& select_full_list() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - full_list_t const* get_full_list() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(limited_list_t)]; - char dummy2[sizeof(full_list_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -CellInformation-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { -{ ID id-ABSInformation CRITICALITY ignore EXTENSION ABSInformation PRESENCE optional }| -{ ID id-InvokeIndication CRITICALITY ignore EXTENSION InvokeIndication PRESENCE optional }| -{ ID id-IntendedULDLConfiguration CRITICALITY ignore EXTENSION SubframeAssignment PRESENCE optional }| -{ ID id-ExtendedULInterferenceOverloadInfo CRITICALITY ignore EXTENSION ExtendedULInterferenceOverloadInfo PRESENCE optional }| -{ ID id-CoMPInformation CRITICALITY ignore EXTENSION CoMPInformation PRESENCE optional }| -{ ID id-DynamicDLTransmissionInformation CRITICALITY ignore EXTENSION DynamicDLTransmissionInformation PRESENCE optional }, - ... -} -*/ - -struct CellInformation_Item_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_ABSInformation() { set(id_ABSInformation); type=1;} - void select_id_InvokeIndication() { set(id_InvokeIndication); type=2;} - void select_id_IntendedULDLConfiguration() { set(id_IntendedULDLConfiguration); type=3;} - void select_id_ExtendedULInterferenceOverloadInfo() { set(id_ExtendedULInterferenceOverloadInfo); type=4;} - void select_id_CoMPInformation() { set(id_CoMPInformation); type=5;} - void select_id_DynamicDLTransmissionInformation() { set(id_DynamicDLTransmissionInformation); type=6;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_ABSInformation)) { type = 1; return true; } - else if(equal(id_InvokeIndication)) { type = 2; return true; } - else if(equal(id_IntendedULDLConfiguration)) { type = 3; return true; } - else if(equal(id_ExtendedULInterferenceOverloadInfo)) { type = 4; return true; } - else if(equal(id_CoMPInformation)) { type = 5; return true; } - else if(equal(id_DynamicDLTransmissionInformation)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_ABSInformation);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_InvokeIndication);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_IntendedULDLConfiguration);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_ExtendedULInterferenceOverloadInfo);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_CoMPInformation);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_DynamicDLTransmissionInformation);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_ABSInformation() { set(ignore); type=1;} - void select_id_InvokeIndication() { set(ignore); type=2;} - void select_id_IntendedULDLConfiguration() { set(ignore); type=3;} - void select_id_ExtendedULInterferenceOverloadInfo() { set(ignore); type=4;} - void select_id_CoMPInformation() { set(ignore); type=5;} - void select_id_DynamicDLTransmissionInformation() { set(ignore); type=6;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else if(equal(ignore)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(ignore);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - ABSInformation& select_id_ABSInformation() { return set(1); } - ABSInformation const* get_id_ABSInformation() const { return get(1); } - InvokeIndication& select_id_InvokeIndication() { return set(2); } - InvokeIndication const* get_id_InvokeIndication() const { return get(2); } - SubframeAssignment& select_id_IntendedULDLConfiguration() { return set(3); } - SubframeAssignment const* get_id_IntendedULDLConfiguration() const { return get(3); } - ExtendedULInterferenceOverloadInfo& select_id_ExtendedULInterferenceOverloadInfo() { return set(4); } - ExtendedULInterferenceOverloadInfo const* get_id_ExtendedULInterferenceOverloadInfo() const { return get(4); } - CoMPInformation& select_id_CoMPInformation() { return set(5); } - CoMPInformation const* get_id_CoMPInformation() const { return get(5); } - DynamicDLTransmissionInformation& select_id_DynamicDLTransmissionInformation() { return set(6); } - DynamicDLTransmissionInformation const* get_id_DynamicDLTransmissionInformation() const { return get(6); } - bool is_unknown() const { return type == 7; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_ABSInformation()); return true; - case 2: v(select_id_InvokeIndication()); return true; - case 3: v(select_id_IntendedULDLConfiguration()); return true; - case 4: v(select_id_ExtendedULInterferenceOverloadInfo()); return true; - case 5: v(select_id_CoMPInformation()); return true; - case 6: v(select_id_DynamicDLTransmissionInformation()); return true; - case 7: if(type != 7) {clear(); asn::base::set();} type = 7; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(ABSInformation)]; - char dummy2[sizeof(CoMPInformation)]; - char dummy3[sizeof(DynamicDLTransmissionInformation)]; - char dummy4[sizeof(ExtendedULInterferenceOverloadInfo)]; - char dummy5[sizeof(InvokeIndication)]; - char dummy6[sizeof(SubframeAssignment)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_ABSInformation() { set(optional); type=1;} - void select_id_InvokeIndication() { set(optional); type=2;} - void select_id_IntendedULDLConfiguration() { set(optional); type=3;} - void select_id_ExtendedULInterferenceOverloadInfo() { set(optional); type=4;} - void select_id_CoMPInformation() { set(optional); type=5;} - void select_id_DynamicDLTransmissionInformation() { set(optional); type=6;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -CellInformation-Item ::= SEQUENCE { - cell-ID ECGI, - ul-InterferenceOverloadIndication UL-InterferenceOverloadIndication OPTIONAL, - ul-HighInterferenceIndicationInfo UL-HighInterferenceIndicationInfo OPTIONAL, - relativeNarrowbandTxPower RelativeNarrowbandTxPower OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {CellInformation-Item-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct CellInformation_Item : asn::sequence<5, 0, true, 4> -{ - static constexpr const char* name() {return "CellInformation-Item";} - using parent_t = asn::sequence<5, 0, true, 4>; - struct cell_ID_t : ECGI - { - static constexpr const char* name() {return "cell_ID_t";} - using parent_t = ECGI; - - }; - cell_ID_t& ref_cell_ID() {return cell_ID;} - cell_ID_t const& ref_cell_ID() const {return cell_ID;} - struct ul_InterferenceOverloadIndication_t : UL_InterferenceOverloadIndication - { - static constexpr const char* name() {return "ul_InterferenceOverloadIndication_t";} - using parent_t = UL_InterferenceOverloadIndication; - static constexpr bool optional = true; - - }; - ul_InterferenceOverloadIndication_t& set_ul_InterferenceOverloadIndication() { ul_InterferenceOverloadIndication.setpresent(true); return ul_InterferenceOverloadIndication;} - ul_InterferenceOverloadIndication_t const* get_ul_InterferenceOverloadIndication() const {return ul_InterferenceOverloadIndication.is_valid() ? &ul_InterferenceOverloadIndication : nullptr;} - struct ul_HighInterferenceIndicationInfo_t : UL_HighInterferenceIndicationInfo - { - static constexpr const char* name() {return "ul_HighInterferenceIndicationInfo_t";} - using parent_t = UL_HighInterferenceIndicationInfo; - static constexpr bool optional = true; - - }; - ul_HighInterferenceIndicationInfo_t& set_ul_HighInterferenceIndicationInfo() { ul_HighInterferenceIndicationInfo.setpresent(true); return ul_HighInterferenceIndicationInfo;} - ul_HighInterferenceIndicationInfo_t const* get_ul_HighInterferenceIndicationInfo() const {return ul_HighInterferenceIndicationInfo.is_valid() ? &ul_HighInterferenceIndicationInfo : nullptr;} - struct relativeNarrowbandTxPower_t : RelativeNarrowbandTxPower - { - static constexpr const char* name() {return "relativeNarrowbandTxPower_t";} - using parent_t = RelativeNarrowbandTxPower; - static constexpr bool optional = true; - - }; - relativeNarrowbandTxPower_t& set_relativeNarrowbandTxPower() { relativeNarrowbandTxPower.setpresent(true); return relativeNarrowbandTxPower;} - relativeNarrowbandTxPower_t const* get_relativeNarrowbandTxPower() const {return relativeNarrowbandTxPower.is_valid() ? &relativeNarrowbandTxPower : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(cell_ID); - v(ul_InterferenceOverloadIndication); - v(ul_HighInterferenceIndicationInfo); - v(relativeNarrowbandTxPower); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(cell_ID); - v(ul_InterferenceOverloadIndication); - v(ul_HighInterferenceIndicationInfo); - v(relativeNarrowbandTxPower); - v(iE_Extensions); - - }; - void clear() - { - cell_ID.clear(); - ul_InterferenceOverloadIndication.clear(); - ul_HighInterferenceIndicationInfo.clear(); - relativeNarrowbandTxPower.clear(); - iE_Extensions.clear(); - - }; - private: - cell_ID_t cell_ID; - ul_InterferenceOverloadIndication_t ul_InterferenceOverloadIndication; - ul_HighInterferenceIndicationInfo_t ul_HighInterferenceIndicationInfo; - relativeNarrowbandTxPower_t relativeNarrowbandTxPower; - iE_Extensions_t iE_Extensions; - -}; -/* -CellInformation-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-CellInformation-Item CRITICALITY ignore TYPE CellInformation-Item PRESENCE mandatory } -} -*/ - -struct CellInformation_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_CellInformation_Item() { set(id_CellInformation_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_CellInformation_Item)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_CellInformation_Item);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_CellInformation_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - CellInformation_Item& select_id_CellInformation_Item() { return set(1); } - CellInformation_Item const* get_id_CellInformation_Item() const { return get(1); } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_CellInformation_Item()); return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CellInformation_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_CellInformation_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -CellInformation-List ::= SEQUENCE (SIZE (1..maxCellineNB)) OF ProtocolIE-Single-Container { {CellInformation-ItemIEs} } -*/ - -struct CellInformation_List_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "CellInformation_List_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct CellInformation_List : asn::sequenceof -{ - static constexpr const char* name() {return "CellInformation-List";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -CellMeasurementResult-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-CompositeAvailableCapacityGroup CRITICALITY ignore EXTENSION CompositeAvailableCapacityGroup PRESENCE optional}| - { ID id-ABS-Status CRITICALITY ignore EXTENSION ABS-Status PRESENCE optional}| - { ID id-RSRPMRList CRITICALITY ignore EXTENSION RSRPMRList PRESENCE optional}| - { ID id-CSIReportList CRITICALITY ignore EXTENSION CSIReportList PRESENCE optional}| - { ID id-CellReportingIndicator CRITICALITY ignore EXTENSION CellReportingIndicator PRESENCE optional}, - ... -} -*/ - -struct CellMeasurementResult_Item_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_CompositeAvailableCapacityGroup() { set(id_CompositeAvailableCapacityGroup); type=1;} - void select_id_ABS_Status() { set(id_ABS_Status); type=2;} - void select_id_RSRPMRList() { set(id_RSRPMRList); type=3;} - void select_id_CSIReportList() { set(id_CSIReportList); type=4;} - void select_id_CellReportingIndicator() { set(id_CellReportingIndicator); type=5;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_CompositeAvailableCapacityGroup)) { type = 1; return true; } - else if(equal(id_ABS_Status)) { type = 2; return true; } - else if(equal(id_RSRPMRList)) { type = 3; return true; } - else if(equal(id_CSIReportList)) { type = 4; return true; } - else if(equal(id_CellReportingIndicator)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_CompositeAvailableCapacityGroup);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_ABS_Status);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_RSRPMRList);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_CSIReportList);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_CellReportingIndicator);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_CompositeAvailableCapacityGroup() { set(ignore); type=1;} - void select_id_ABS_Status() { set(ignore); type=2;} - void select_id_RSRPMRList() { set(ignore); type=3;} - void select_id_CSIReportList() { set(ignore); type=4;} - void select_id_CellReportingIndicator() { set(ignore); type=5;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - CompositeAvailableCapacityGroup& select_id_CompositeAvailableCapacityGroup() { return set(1); } - CompositeAvailableCapacityGroup const* get_id_CompositeAvailableCapacityGroup() const { return get(1); } - ABS_Status& select_id_ABS_Status() { return set(2); } - ABS_Status const* get_id_ABS_Status() const { return get(2); } - RSRPMRList& select_id_RSRPMRList() { return set(3); } - RSRPMRList const* get_id_RSRPMRList() const { return get(3); } - CSIReportList& select_id_CSIReportList() { return set(4); } - CSIReportList const* get_id_CSIReportList() const { return get(4); } - CellReportingIndicator& select_id_CellReportingIndicator() { return set(5); } - CellReportingIndicator const* get_id_CellReportingIndicator() const { return get(5); } - bool is_unknown() const { return type == 6; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_CompositeAvailableCapacityGroup()); return true; - case 2: v(select_id_ABS_Status()); return true; - case 3: v(select_id_RSRPMRList()); return true; - case 4: v(select_id_CSIReportList()); return true; - case 5: v(select_id_CellReportingIndicator()); return true; - case 6: if(type != 6) {clear(); asn::base::set();} type = 6; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(ABS_Status)]; - char dummy2[sizeof(CSIReportList)]; - char dummy3[sizeof(CellReportingIndicator)]; - char dummy4[sizeof(CompositeAvailableCapacityGroup)]; - char dummy5[sizeof(RSRPMRList)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_CompositeAvailableCapacityGroup() { set(optional); type=1;} - void select_id_ABS_Status() { set(optional); type=2;} - void select_id_RSRPMRList() { set(optional); type=3;} - void select_id_CSIReportList() { set(optional); type=4;} - void select_id_CellReportingIndicator() { set(optional); type=5;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -CellMeasurementResult-Item ::= SEQUENCE { - cell-ID ECGI, - hWLoadIndicator HWLoadIndicator OPTIONAL, - s1TNLLoadIndicator S1TNLLoadIndicator OPTIONAL, - radioResourceStatus RadioResourceStatus OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {CellMeasurementResult-Item-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct CellMeasurementResult_Item : asn::sequence<5, 0, true, 4> -{ - static constexpr const char* name() {return "CellMeasurementResult-Item";} - using parent_t = asn::sequence<5, 0, true, 4>; - struct cell_ID_t : ECGI - { - static constexpr const char* name() {return "cell_ID_t";} - using parent_t = ECGI; - - }; - cell_ID_t& ref_cell_ID() {return cell_ID;} - cell_ID_t const& ref_cell_ID() const {return cell_ID;} - struct hWLoadIndicator_t : HWLoadIndicator - { - static constexpr const char* name() {return "hWLoadIndicator_t";} - using parent_t = HWLoadIndicator; - static constexpr bool optional = true; - - }; - hWLoadIndicator_t& set_hWLoadIndicator() { hWLoadIndicator.setpresent(true); return hWLoadIndicator;} - hWLoadIndicator_t const* get_hWLoadIndicator() const {return hWLoadIndicator.is_valid() ? &hWLoadIndicator : nullptr;} - struct s1TNLLoadIndicator_t : S1TNLLoadIndicator - { - static constexpr const char* name() {return "s1TNLLoadIndicator_t";} - using parent_t = S1TNLLoadIndicator; - static constexpr bool optional = true; - - }; - s1TNLLoadIndicator_t& set_s1TNLLoadIndicator() { s1TNLLoadIndicator.setpresent(true); return s1TNLLoadIndicator;} - s1TNLLoadIndicator_t const* get_s1TNLLoadIndicator() const {return s1TNLLoadIndicator.is_valid() ? &s1TNLLoadIndicator : nullptr;} - struct radioResourceStatus_t : RadioResourceStatus - { - static constexpr const char* name() {return "radioResourceStatus_t";} - using parent_t = RadioResourceStatus; - static constexpr bool optional = true; - - }; - radioResourceStatus_t& set_radioResourceStatus() { radioResourceStatus.setpresent(true); return radioResourceStatus;} - radioResourceStatus_t const* get_radioResourceStatus() const {return radioResourceStatus.is_valid() ? &radioResourceStatus : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(cell_ID); - v(hWLoadIndicator); - v(s1TNLLoadIndicator); - v(radioResourceStatus); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(cell_ID); - v(hWLoadIndicator); - v(s1TNLLoadIndicator); - v(radioResourceStatus); - v(iE_Extensions); - - }; - void clear() - { - cell_ID.clear(); - hWLoadIndicator.clear(); - s1TNLLoadIndicator.clear(); - radioResourceStatus.clear(); - iE_Extensions.clear(); - - }; - private: - cell_ID_t cell_ID; - hWLoadIndicator_t hWLoadIndicator; - s1TNLLoadIndicator_t s1TNLLoadIndicator; - radioResourceStatus_t radioResourceStatus; - iE_Extensions_t iE_Extensions; - -}; -/* -CellMeasurementResult-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-CellMeasurementResult-Item CRITICALITY ignore TYPE CellMeasurementResult-Item PRESENCE mandatory} -} -*/ - -struct CellMeasurementResult_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_CellMeasurementResult_Item() { set(id_CellMeasurementResult_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_CellMeasurementResult_Item)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_CellMeasurementResult_Item);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_CellMeasurementResult_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - CellMeasurementResult_Item& select_id_CellMeasurementResult_Item() { return set(1); } - CellMeasurementResult_Item const* get_id_CellMeasurementResult_Item() const { return get(1); } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_CellMeasurementResult_Item()); return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CellMeasurementResult_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_CellMeasurementResult_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -CellMeasurementResult-List ::= SEQUENCE (SIZE (1..maxCellineNB)) OF ProtocolIE-Single-Container { {CellMeasurementResult-ItemIEs} } -*/ - -struct CellMeasurementResult_List_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "CellMeasurementResult_List_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct CellMeasurementResult_List : asn::sequenceof -{ - static constexpr const char* name() {return "CellMeasurementResult-List";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -CellToReport-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct CellToReport_Item_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -CellToReport-Item ::= SEQUENCE { - cell-ID ECGI, - iE-Extensions ProtocolExtensionContainer { {CellToReport-Item-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct CellToReport_Item : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "CellToReport-Item";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct cell_ID_t : ECGI - { - static constexpr const char* name() {return "cell_ID_t";} - using parent_t = ECGI; - - }; - cell_ID_t& ref_cell_ID() {return cell_ID;} - cell_ID_t const& ref_cell_ID() const {return cell_ID;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(cell_ID); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(cell_ID); - v(iE_Extensions); - - }; - void clear() - { - cell_ID.clear(); - iE_Extensions.clear(); - - }; - private: - cell_ID_t cell_ID; - iE_Extensions_t iE_Extensions; - -}; -/* -CellToReport-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-CellToReport-Item CRITICALITY ignore TYPE CellToReport-Item PRESENCE mandatory} -} -*/ - -struct CellToReport_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_CellToReport_Item() { set(id_CellToReport_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_CellToReport_Item)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_CellToReport_Item);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_CellToReport_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - CellToReport_Item& select_id_CellToReport_Item() { return set(1); } - CellToReport_Item const* get_id_CellToReport_Item() const { return get(1); } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_CellToReport_Item()); return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CellToReport_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_CellToReport_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -CellToReport-List ::= SEQUENCE (SIZE (1..maxCellineNB)) OF ProtocolIE-Single-Container { {CellToReport-ItemIEs} } -*/ - -struct CellToReport_List_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "CellToReport_List_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct CellToReport_List : asn::sequenceof -{ - static constexpr const char* name() {return "CellToReport-List";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -MeasurementFailureCause-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct MeasurementFailureCause_Item_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -MeasurementFailureCause-Item ::= SEQUENCE { - measurementFailedReportCharacteristics ReportCharacteristics, - cause Cause, - iE-Extensions ProtocolExtensionContainer { {MeasurementFailureCause-Item-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct MeasurementFailureCause_Item : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "MeasurementFailureCause-Item";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct measurementFailedReportCharacteristics_t : ReportCharacteristics - { - static constexpr const char* name() {return "measurementFailedReportCharacteristics_t";} - using parent_t = ReportCharacteristics; - - }; - measurementFailedReportCharacteristics_t& ref_measurementFailedReportCharacteristics() {return measurementFailedReportCharacteristics;} - measurementFailedReportCharacteristics_t const& ref_measurementFailedReportCharacteristics() const {return measurementFailedReportCharacteristics;} - struct cause_t : Cause - { - static constexpr const char* name() {return "cause_t";} - using parent_t = Cause; - - }; - cause_t& ref_cause() {return cause;} - cause_t const& ref_cause() const {return cause;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(measurementFailedReportCharacteristics); - v(cause); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(measurementFailedReportCharacteristics); - v(cause); - v(iE_Extensions); - - }; - void clear() - { - measurementFailedReportCharacteristics.clear(); - cause.clear(); - iE_Extensions.clear(); - - }; - private: - measurementFailedReportCharacteristics_t measurementFailedReportCharacteristics; - cause_t cause; - iE_Extensions_t iE_Extensions; - -}; -/* -MeasurementFailureCause-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-MeasurementFailureCause-Item CRITICALITY ignore TYPE MeasurementFailureCause-Item PRESENCE mandatory} -} -*/ - -struct MeasurementFailureCause_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_MeasurementFailureCause_Item() { set(id_MeasurementFailureCause_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeasurementFailureCause_Item)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeasurementFailureCause_Item);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_MeasurementFailureCause_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - MeasurementFailureCause_Item& select_id_MeasurementFailureCause_Item() { return set(1); } - MeasurementFailureCause_Item const* get_id_MeasurementFailureCause_Item() const { return get(1); } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeasurementFailureCause_Item()); return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(MeasurementFailureCause_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_MeasurementFailureCause_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -MeasurementFailureCause-List ::= SEQUENCE (SIZE (1..maxFailedMeasObjects)) OF ProtocolIE-Single-Container { {MeasurementFailureCause-ItemIEs} } -*/ - -struct MeasurementFailureCause_List_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "MeasurementFailureCause_List_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct MeasurementFailureCause_List : asn::sequenceof -{ - static constexpr const char* name() {return "MeasurementFailureCause-List";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -CompleteFailureCauseInformation-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct CompleteFailureCauseInformation_Item_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -CompleteFailureCauseInformation-Item ::= SEQUENCE { - cell-ID ECGI, - measurementFailureCause-List MeasurementFailureCause-List, - iE-Extensions ProtocolExtensionContainer { {CompleteFailureCauseInformation-Item-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct CompleteFailureCauseInformation_Item : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "CompleteFailureCauseInformation-Item";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct cell_ID_t : ECGI - { - static constexpr const char* name() {return "cell_ID_t";} - using parent_t = ECGI; - - }; - cell_ID_t& ref_cell_ID() {return cell_ID;} - cell_ID_t const& ref_cell_ID() const {return cell_ID;} - struct measurementFailureCause_List_t : MeasurementFailureCause_List - { - static constexpr const char* name() {return "measurementFailureCause_List_t";} - using parent_t = MeasurementFailureCause_List; - - }; - measurementFailureCause_List_t& ref_measurementFailureCause_List() {return measurementFailureCause_List;} - measurementFailureCause_List_t const& ref_measurementFailureCause_List() const {return measurementFailureCause_List;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(cell_ID); - v(measurementFailureCause_List); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(cell_ID); - v(measurementFailureCause_List); - v(iE_Extensions); - - }; - void clear() - { - cell_ID.clear(); - measurementFailureCause_List.clear(); - iE_Extensions.clear(); - - }; - private: - cell_ID_t cell_ID; - measurementFailureCause_List_t measurementFailureCause_List; - iE_Extensions_t iE_Extensions; - -}; -/* -CompleteFailureCauseInformation-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-CompleteFailureCauseInformation-Item CRITICALITY ignore TYPE CompleteFailureCauseInformation-Item PRESENCE mandatory} -} -*/ - -struct CompleteFailureCauseInformation_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_CompleteFailureCauseInformation_Item() { set(id_CompleteFailureCauseInformation_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_CompleteFailureCauseInformation_Item)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_CompleteFailureCauseInformation_Item);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_CompleteFailureCauseInformation_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - CompleteFailureCauseInformation_Item& select_id_CompleteFailureCauseInformation_Item() { return set(1); } - CompleteFailureCauseInformation_Item const* get_id_CompleteFailureCauseInformation_Item() const { return get(1); } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_CompleteFailureCauseInformation_Item()); return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CompleteFailureCauseInformation_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_CompleteFailureCauseInformation_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -CompleteFailureCauseInformation-List ::= SEQUENCE (SIZE (1..maxCellineNB)) OF ProtocolIE-Single-Container { {CompleteFailureCauseInformation-ItemIEs} } -*/ - -struct CompleteFailureCauseInformation_List_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "CompleteFailureCauseInformation_List_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct CompleteFailureCauseInformation_List : asn::sequenceof -{ - static constexpr const char* name() {return "CompleteFailureCauseInformation-List";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-DataForwardingAddress-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_DataForwardingAddress_ItemExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-DataForwardingAddress-Item ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - dl-GTPtunnelEndpoint GTPtunnelEndpoint, - iE-Extensions ProtocolExtensionContainer { {E-RABs-DataForwardingAddress-ItemExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_DataForwardingAddress_Item : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-DataForwardingAddress-Item";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct dl_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "dl_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - - }; - dl_GTPtunnelEndpoint_t& ref_dl_GTPtunnelEndpoint() {return dl_GTPtunnelEndpoint;} - dl_GTPtunnelEndpoint_t const& ref_dl_GTPtunnelEndpoint() const {return dl_GTPtunnelEndpoint;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(dl_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(dl_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - dl_GTPtunnelEndpoint.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - dl_GTPtunnelEndpoint_t dl_GTPtunnelEndpoint; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-DataForwardingAddress-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-DataForwardingAddress-Item CRITICALITY ignore TYPE E-RABs-DataForwardingAddress-Item PRESENCE mandatory}, - ... -} -*/ - -struct E_RABs_DataForwardingAddress_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_DataForwardingAddress_Item() { set(id_E_RABs_DataForwardingAddress_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_DataForwardingAddress_Item)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_DataForwardingAddress_Item);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_DataForwardingAddress_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_DataForwardingAddress_Item& select_id_E_RABs_DataForwardingAddress_Item() { return set(1); } - E_RABs_DataForwardingAddress_Item const* get_id_E_RABs_DataForwardingAddress_Item() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_DataForwardingAddress_Item()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_DataForwardingAddress_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_DataForwardingAddress_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-DataForwardingAddress-List ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-DataForwardingAddress-ItemIEs} } -*/ - -struct E_RABs_DataForwardingAddress_List_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_DataForwardingAddress_List_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_DataForwardingAddress_List : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-DataForwardingAddress-List";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -DataForwardingAddressIndication-IEs X2AP-PROTOCOL-IES ::= { - { ID id-New-eNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional }| - { ID id-Old-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-Old-eNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional }| - { ID id-E-RABs-DataForwardingAddress-List CRITICALITY ignore TYPE E-RABs-DataForwardingAddress-List PRESENCE mandatory}, - ... -} -*/ - -struct DataForwardingAddressIndication_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_New_eNB_UE_X2AP_ID_Extension() { set(id_New_eNB_UE_X2AP_ID_Extension); type=1;} - void select_id_Old_eNB_UE_X2AP_ID() { set(id_Old_eNB_UE_X2AP_ID); type=2;} - void select_id_Old_eNB_UE_X2AP_ID_Extension() { set(id_Old_eNB_UE_X2AP_ID_Extension); type=3;} - void select_id_E_RABs_DataForwardingAddress_List() { set(id_E_RABs_DataForwardingAddress_List); type=4;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_New_eNB_UE_X2AP_ID_Extension)) { type = 1; return true; } - else if(equal(id_Old_eNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_Old_eNB_UE_X2AP_ID_Extension)) { type = 3; return true; } - else if(equal(id_E_RABs_DataForwardingAddress_List)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_New_eNB_UE_X2AP_ID_Extension);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_Old_eNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_Old_eNB_UE_X2AP_ID_Extension);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_E_RABs_DataForwardingAddress_List);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_New_eNB_UE_X2AP_ID_Extension() { set(ignore); type=1;} - void select_id_Old_eNB_UE_X2AP_ID() { set(ignore); type=2;} - void select_id_Old_eNB_UE_X2AP_ID_Extension() { set(ignore); type=3;} - void select_id_E_RABs_DataForwardingAddress_List() { set(ignore); type=4;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID_Extension& select_id_New_eNB_UE_X2AP_ID_Extension() { return set(1); } - UE_X2AP_ID_Extension const* get_id_New_eNB_UE_X2AP_ID_Extension() const { return get(1); } - UE_X2AP_ID& select_id_Old_eNB_UE_X2AP_ID() { return set(2); } - UE_X2AP_ID const* get_id_Old_eNB_UE_X2AP_ID() const { return get(2); } - UE_X2AP_ID_Extension& select_id_Old_eNB_UE_X2AP_ID_Extension() { return set(3); } - UE_X2AP_ID_Extension const* get_id_Old_eNB_UE_X2AP_ID_Extension() const { return get(3); } - E_RABs_DataForwardingAddress_List& select_id_E_RABs_DataForwardingAddress_List() { return set(4); } - E_RABs_DataForwardingAddress_List const* get_id_E_RABs_DataForwardingAddress_List() const { return get(4); } - bool is_unknown() const { return type == 5; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_New_eNB_UE_X2AP_ID_Extension()); return true; - case 2: v(select_id_Old_eNB_UE_X2AP_ID()); return true; - case 3: v(select_id_Old_eNB_UE_X2AP_ID_Extension()); return true; - case 4: v(select_id_E_RABs_DataForwardingAddress_List()); return true; - case 5: if(type != 5) {clear(); asn::base::set();} type = 5; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_DataForwardingAddress_List)]; - char dummy2[sizeof(UE_X2AP_ID)]; - char dummy3[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_New_eNB_UE_X2AP_ID_Extension() { set(optional); type=1;} - void select_id_Old_eNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_Old_eNB_UE_X2AP_ID_Extension() { set(optional); type=3;} - void select_id_E_RABs_DataForwardingAddress_List() { set(mandatory); type=4;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else if(equal(mandatory)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(mandatory);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -DataForwardingAddressIndication ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{DataForwardingAddressIndication-IEs}}, - ... -} -*/ - -struct DataForwardingAddressIndication : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "DataForwardingAddressIndication";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -E-RABs-Admitted-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_Admitted_Item_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-Item ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - uL-GTP-TunnelEndpoint GTPtunnelEndpoint OPTIONAL, - dL-GTP-TunnelEndpoint GTPtunnelEndpoint OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-Item-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_Admitted_Item : asn::sequence<4, 0, true, 3> -{ - static constexpr const char* name() {return "E-RABs-Admitted-Item";} - using parent_t = asn::sequence<4, 0, true, 3>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct uL_GTP_TunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "uL_GTP_TunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - uL_GTP_TunnelEndpoint_t& set_uL_GTP_TunnelEndpoint() { uL_GTP_TunnelEndpoint.setpresent(true); return uL_GTP_TunnelEndpoint;} - uL_GTP_TunnelEndpoint_t const* get_uL_GTP_TunnelEndpoint() const {return uL_GTP_TunnelEndpoint.is_valid() ? &uL_GTP_TunnelEndpoint : nullptr;} - struct dL_GTP_TunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "dL_GTP_TunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - dL_GTP_TunnelEndpoint_t& set_dL_GTP_TunnelEndpoint() { dL_GTP_TunnelEndpoint.setpresent(true); return dL_GTP_TunnelEndpoint;} - dL_GTP_TunnelEndpoint_t const* get_dL_GTP_TunnelEndpoint() const {return dL_GTP_TunnelEndpoint.is_valid() ? &dL_GTP_TunnelEndpoint : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(uL_GTP_TunnelEndpoint); - v(dL_GTP_TunnelEndpoint); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(uL_GTP_TunnelEndpoint); - v(dL_GTP_TunnelEndpoint); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - uL_GTP_TunnelEndpoint.clear(); - dL_GTP_TunnelEndpoint.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - uL_GTP_TunnelEndpoint_t uL_GTP_TunnelEndpoint; - dL_GTP_TunnelEndpoint_t dL_GTP_TunnelEndpoint; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-Admitted-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-Admitted-Item CRITICALITY ignore TYPE E-RABs-Admitted-Item PRESENCE mandatory } -} -*/ - -struct E_RABs_Admitted_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_E_RABs_Admitted_Item() { set(id_E_RABs_Admitted_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_Admitted_Item)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_Admitted_Item);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_E_RABs_Admitted_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_Admitted_Item& select_id_E_RABs_Admitted_Item() { return set(1); } - E_RABs_Admitted_Item const* get_id_E_RABs_Admitted_Item() const { return get(1); } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_Admitted_Item()); return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_Admitted_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_E_RABs_Admitted_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-List ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-Admitted-ItemIEs} } -*/ - -struct E_RABs_Admitted_List_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_Admitted_List_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_Admitted_List : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-Admitted-List";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-Admitted-ToBeAdded-Item-SCG-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_Admitted_ToBeAdded_Item_SCG_BearerExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-ToBeAdded-Item-SCG-Bearer ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - s1-DL-GTPtunnelEndpoint GTPtunnelEndpoint, - dL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, - uL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeAdded-Item-SCG-BearerExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_Admitted_ToBeAdded_Item_SCG_Bearer : asn::sequence<5, 0, true, 3> -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeAdded-Item-SCG-Bearer";} - using parent_t = asn::sequence<5, 0, true, 3>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct s1_DL_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "s1_DL_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - - }; - s1_DL_GTPtunnelEndpoint_t& ref_s1_DL_GTPtunnelEndpoint() {return s1_DL_GTPtunnelEndpoint;} - s1_DL_GTPtunnelEndpoint_t const& ref_s1_DL_GTPtunnelEndpoint() const {return s1_DL_GTPtunnelEndpoint;} - struct dL_Forwarding_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "dL_Forwarding_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - dL_Forwarding_GTPtunnelEndpoint_t& set_dL_Forwarding_GTPtunnelEndpoint() { dL_Forwarding_GTPtunnelEndpoint.setpresent(true); return dL_Forwarding_GTPtunnelEndpoint;} - dL_Forwarding_GTPtunnelEndpoint_t const* get_dL_Forwarding_GTPtunnelEndpoint() const {return dL_Forwarding_GTPtunnelEndpoint.is_valid() ? &dL_Forwarding_GTPtunnelEndpoint : nullptr;} - struct uL_Forwarding_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "uL_Forwarding_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - uL_Forwarding_GTPtunnelEndpoint_t& set_uL_Forwarding_GTPtunnelEndpoint() { uL_Forwarding_GTPtunnelEndpoint.setpresent(true); return uL_Forwarding_GTPtunnelEndpoint;} - uL_Forwarding_GTPtunnelEndpoint_t const* get_uL_Forwarding_GTPtunnelEndpoint() const {return uL_Forwarding_GTPtunnelEndpoint.is_valid() ? &uL_Forwarding_GTPtunnelEndpoint : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(s1_DL_GTPtunnelEndpoint); - v(dL_Forwarding_GTPtunnelEndpoint); - v(uL_Forwarding_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(s1_DL_GTPtunnelEndpoint); - v(dL_Forwarding_GTPtunnelEndpoint); - v(uL_Forwarding_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - s1_DL_GTPtunnelEndpoint.clear(); - dL_Forwarding_GTPtunnelEndpoint.clear(); - uL_Forwarding_GTPtunnelEndpoint.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - s1_DL_GTPtunnelEndpoint_t s1_DL_GTPtunnelEndpoint; - dL_Forwarding_GTPtunnelEndpoint_t dL_Forwarding_GTPtunnelEndpoint; - uL_Forwarding_GTPtunnelEndpoint_t uL_Forwarding_GTPtunnelEndpoint; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-Admitted-ToBeAdded-Item-Split-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_Admitted_ToBeAdded_Item_Split_BearerExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-ToBeAdded-Item-Split-Bearer ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - seNB-GTPtunnelEndpoint GTPtunnelEndpoint, - iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeAdded-Item-Split-BearerExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_Admitted_ToBeAdded_Item_Split_Bearer : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeAdded-Item-Split-Bearer";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct seNB_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "seNB_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - - }; - seNB_GTPtunnelEndpoint_t& ref_seNB_GTPtunnelEndpoint() {return seNB_GTPtunnelEndpoint;} - seNB_GTPtunnelEndpoint_t const& ref_seNB_GTPtunnelEndpoint() const {return seNB_GTPtunnelEndpoint;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(seNB_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(seNB_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - seNB_GTPtunnelEndpoint.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - seNB_GTPtunnelEndpoint_t seNB_GTPtunnelEndpoint; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-Admitted-ToBeAdded-Item ::= CHOICE { - sCG-Bearer E-RABs-Admitted-ToBeAdded-Item-SCG-Bearer, - split-Bearer E-RABs-Admitted-ToBeAdded-Item-Split-Bearer, - ... -} -*/ - -struct E_RABs_Admitted_ToBeAdded_Item : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeAdded-Item";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~E_RABs_Admitted_ToBeAdded_Item() {clear();} - struct sCG_Bearer_t : E_RABs_Admitted_ToBeAdded_Item_SCG_Bearer - { - static constexpr const char* name() {return "sCG_Bearer_t";} - using parent_t = E_RABs_Admitted_ToBeAdded_Item_SCG_Bearer; - - }; - struct split_Bearer_t : E_RABs_Admitted_ToBeAdded_Item_Split_Bearer - { - static constexpr const char* name() {return "split_Bearer_t";} - using parent_t = E_RABs_Admitted_ToBeAdded_Item_Split_Bearer; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - sCG_Bearer_t& select_sCG_Bearer() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - sCG_Bearer_t const* get_sCG_Bearer() const { if(get_index() == 1) { return &var.as();} return nullptr; } - split_Bearer_t& select_split_Bearer() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - split_Bearer_t const* get_split_Bearer() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(sCG_Bearer_t)]; - char dummy2[sizeof(split_Bearer_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -E-RABs-Admitted-ToBeAdded-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-Admitted-ToBeAdded-Item CRITICALITY ignore TYPE E-RABs-Admitted-ToBeAdded-Item PRESENCE mandatory} -} -*/ - -struct E_RABs_Admitted_ToBeAdded_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_E_RABs_Admitted_ToBeAdded_Item() { set(id_E_RABs_Admitted_ToBeAdded_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_Admitted_ToBeAdded_Item)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_Admitted_ToBeAdded_Item);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_E_RABs_Admitted_ToBeAdded_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_Admitted_ToBeAdded_Item& select_id_E_RABs_Admitted_ToBeAdded_Item() { return set(1); } - E_RABs_Admitted_ToBeAdded_Item const* get_id_E_RABs_Admitted_ToBeAdded_Item() const { return get(1); } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_Admitted_ToBeAdded_Item()); return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_Admitted_ToBeAdded_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_E_RABs_Admitted_ToBeAdded_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-ToBeAdded-List ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-Admitted-ToBeAdded-ItemIEs} } -*/ - -struct E_RABs_Admitted_ToBeAdded_List_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_Admitted_ToBeAdded_List_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_Admitted_ToBeAdded_List : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeAdded-List";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-Admitted-ToBeAdded-ModAckItem-SCG-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_BearerExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-ToBeAdded-ModAckItem-SCG-Bearer ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - s1-DL-GTPtunnelEndpoint GTPtunnelEndpoint, - dL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, - uL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeAdded-ModAckItem-SCG-BearerExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_Bearer : asn::sequence<5, 0, true, 3> -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeAdded-ModAckItem-SCG-Bearer";} - using parent_t = asn::sequence<5, 0, true, 3>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct s1_DL_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "s1_DL_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - - }; - s1_DL_GTPtunnelEndpoint_t& ref_s1_DL_GTPtunnelEndpoint() {return s1_DL_GTPtunnelEndpoint;} - s1_DL_GTPtunnelEndpoint_t const& ref_s1_DL_GTPtunnelEndpoint() const {return s1_DL_GTPtunnelEndpoint;} - struct dL_Forwarding_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "dL_Forwarding_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - dL_Forwarding_GTPtunnelEndpoint_t& set_dL_Forwarding_GTPtunnelEndpoint() { dL_Forwarding_GTPtunnelEndpoint.setpresent(true); return dL_Forwarding_GTPtunnelEndpoint;} - dL_Forwarding_GTPtunnelEndpoint_t const* get_dL_Forwarding_GTPtunnelEndpoint() const {return dL_Forwarding_GTPtunnelEndpoint.is_valid() ? &dL_Forwarding_GTPtunnelEndpoint : nullptr;} - struct uL_Forwarding_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "uL_Forwarding_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - uL_Forwarding_GTPtunnelEndpoint_t& set_uL_Forwarding_GTPtunnelEndpoint() { uL_Forwarding_GTPtunnelEndpoint.setpresent(true); return uL_Forwarding_GTPtunnelEndpoint;} - uL_Forwarding_GTPtunnelEndpoint_t const* get_uL_Forwarding_GTPtunnelEndpoint() const {return uL_Forwarding_GTPtunnelEndpoint.is_valid() ? &uL_Forwarding_GTPtunnelEndpoint : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(s1_DL_GTPtunnelEndpoint); - v(dL_Forwarding_GTPtunnelEndpoint); - v(uL_Forwarding_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(s1_DL_GTPtunnelEndpoint); - v(dL_Forwarding_GTPtunnelEndpoint); - v(uL_Forwarding_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - s1_DL_GTPtunnelEndpoint.clear(); - dL_Forwarding_GTPtunnelEndpoint.clear(); - uL_Forwarding_GTPtunnelEndpoint.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - s1_DL_GTPtunnelEndpoint_t s1_DL_GTPtunnelEndpoint; - dL_Forwarding_GTPtunnelEndpoint_t dL_Forwarding_GTPtunnelEndpoint; - uL_Forwarding_GTPtunnelEndpoint_t uL_Forwarding_GTPtunnelEndpoint; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-Admitted-ToBeAdded-ModAckItem-Split-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_Admitted_ToBeAdded_ModAckItem_Split_BearerExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-ToBeAdded-ModAckItem-Split-Bearer ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - seNB-GTPtunnelEndpoint GTPtunnelEndpoint, - iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeAdded-ModAckItem-Split-BearerExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_Admitted_ToBeAdded_ModAckItem_Split_Bearer : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeAdded-ModAckItem-Split-Bearer";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct seNB_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "seNB_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - - }; - seNB_GTPtunnelEndpoint_t& ref_seNB_GTPtunnelEndpoint() {return seNB_GTPtunnelEndpoint;} - seNB_GTPtunnelEndpoint_t const& ref_seNB_GTPtunnelEndpoint() const {return seNB_GTPtunnelEndpoint;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(seNB_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(seNB_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - seNB_GTPtunnelEndpoint.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - seNB_GTPtunnelEndpoint_t seNB_GTPtunnelEndpoint; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-Admitted-ToBeAdded-ModAckItem ::= CHOICE { - sCG-Bearer E-RABs-Admitted-ToBeAdded-ModAckItem-SCG-Bearer, - split-Bearer E-RABs-Admitted-ToBeAdded-ModAckItem-Split-Bearer, - ... -} -*/ - -struct E_RABs_Admitted_ToBeAdded_ModAckItem : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeAdded-ModAckItem";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~E_RABs_Admitted_ToBeAdded_ModAckItem() {clear();} - struct sCG_Bearer_t : E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_Bearer - { - static constexpr const char* name() {return "sCG_Bearer_t";} - using parent_t = E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_Bearer; - - }; - struct split_Bearer_t : E_RABs_Admitted_ToBeAdded_ModAckItem_Split_Bearer - { - static constexpr const char* name() {return "split_Bearer_t";} - using parent_t = E_RABs_Admitted_ToBeAdded_ModAckItem_Split_Bearer; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - sCG_Bearer_t& select_sCG_Bearer() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - sCG_Bearer_t const* get_sCG_Bearer() const { if(get_index() == 1) { return &var.as();} return nullptr; } - split_Bearer_t& select_split_Bearer() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - split_Bearer_t const* get_split_Bearer() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(sCG_Bearer_t)]; - char dummy2[sizeof(split_Bearer_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -E-RABs-Admitted-ToBeAdded-ModAckItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-Admitted-ToBeAdded-ModAckItem CRITICALITY ignore TYPE E-RABs-Admitted-ToBeAdded-ModAckItem PRESENCE mandatory} -} -*/ - -struct E_RABs_Admitted_ToBeAdded_ModAckItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_E_RABs_Admitted_ToBeAdded_ModAckItem() { set(id_E_RABs_Admitted_ToBeAdded_ModAckItem); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_Admitted_ToBeAdded_ModAckItem)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_Admitted_ToBeAdded_ModAckItem);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_E_RABs_Admitted_ToBeAdded_ModAckItem() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_Admitted_ToBeAdded_ModAckItem& select_id_E_RABs_Admitted_ToBeAdded_ModAckItem() { return set(1); } - E_RABs_Admitted_ToBeAdded_ModAckItem const* get_id_E_RABs_Admitted_ToBeAdded_ModAckItem() const { return get(1); } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_Admitted_ToBeAdded_ModAckItem()); return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_Admitted_ToBeAdded_ModAckItem)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_E_RABs_Admitted_ToBeAdded_ModAckItem() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-ToBeAdded-ModAckList ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-Admitted-ToBeAdded-ModAckItemIEs} } -*/ - -struct E_RABs_Admitted_ToBeAdded_ModAckList_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_Admitted_ToBeAdded_ModAckList_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_Admitted_ToBeAdded_ModAckList : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeAdded-ModAckList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-uLpDCPSnLength CRITICALITY ignore EXTENSION PDCPSnLength PRESENCE optional}| - { ID id-dLPDCPSnLength CRITICALITY ignore EXTENSION PDCPSnLength PRESENCE optional}, - ... -} -*/ - -struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresentExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_uLpDCPSnLength() { set(id_uLpDCPSnLength); type=1;} - void select_id_dLPDCPSnLength() { set(id_dLPDCPSnLength); type=2;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_uLpDCPSnLength)) { type = 1; return true; } - else if(equal(id_dLPDCPSnLength)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_uLpDCPSnLength);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_dLPDCPSnLength);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_uLpDCPSnLength() { set(ignore); type=1;} - void select_id_dLPDCPSnLength() { set(ignore); type=2;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - PDCPSnLength& select_id_uLpDCPSnLength() { return set(1); } - PDCPSnLength const* get_id_uLpDCPSnLength() const { return get(1); } - PDCPSnLength& select_id_dLPDCPSnLength() { return set(2); } - PDCPSnLength const* get_id_dLPDCPSnLength() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_uLpDCPSnLength()); return true; - case 2: v(select_id_dLPDCPSnLength()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(PDCPSnLength)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_uLpDCPSnLength() { set(optional); type=1;} - void select_id_dLPDCPSnLength() { set(optional); type=2;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPpresent ::= SEQUENCE { - s1-DL-GTPtunnelEndpoint GTPtunnelEndpoint, - sgNB-UL-GTP-TEIDatPDCP GTPtunnelEndpoint OPTIONAL, --- This IE shall be present if MCG resource IE in the the EN-DC Resource Configuration IE is set to “present” -- - rlc-Mode RLCMode OPTIONAL, --- This IE shall be present if MCG resource IE in the the EN-DC Resource Configuration IE is set to “present” -- - dL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, - uL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, - mCG-E-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters OPTIONAL, --- This IE shall be present if MCG resource and SCG resource IEs in the the EN-DC Resource Configuration IE are set to “present” and the GBR QoS Information IE is present in the Requested MCG E-RAB Level QoS Parameters IE -- - uL-Configuration ULConfiguration OPTIONAL, --- This IE shall be present if MCG resource and SCG resources IEs in the the EN-DC Resource Configuration IE are set to “present” -- - iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPpresentExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresent : asn::sequence<8, 0, true, 7> -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPpresent";} - using parent_t = asn::sequence<8, 0, true, 7>; - struct s1_DL_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "s1_DL_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - - }; - s1_DL_GTPtunnelEndpoint_t& ref_s1_DL_GTPtunnelEndpoint() {return s1_DL_GTPtunnelEndpoint;} - s1_DL_GTPtunnelEndpoint_t const& ref_s1_DL_GTPtunnelEndpoint() const {return s1_DL_GTPtunnelEndpoint;} - struct sgNB_UL_GTP_TEIDatPDCP_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "sgNB_UL_GTP_TEIDatPDCP_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - sgNB_UL_GTP_TEIDatPDCP_t& set_sgNB_UL_GTP_TEIDatPDCP() { sgNB_UL_GTP_TEIDatPDCP.setpresent(true); return sgNB_UL_GTP_TEIDatPDCP;} - sgNB_UL_GTP_TEIDatPDCP_t const* get_sgNB_UL_GTP_TEIDatPDCP() const {return sgNB_UL_GTP_TEIDatPDCP.is_valid() ? &sgNB_UL_GTP_TEIDatPDCP : nullptr;} - struct rlc_Mode_t : RLCMode - { - static constexpr const char* name() {return "rlc_Mode_t";} - using parent_t = RLCMode; - static constexpr bool optional = true; - - }; - rlc_Mode_t& set_rlc_Mode() { rlc_Mode.setpresent(true); return rlc_Mode;} - rlc_Mode_t const* get_rlc_Mode() const {return rlc_Mode.is_valid() ? &rlc_Mode : nullptr;} - struct dL_Forwarding_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "dL_Forwarding_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - dL_Forwarding_GTPtunnelEndpoint_t& set_dL_Forwarding_GTPtunnelEndpoint() { dL_Forwarding_GTPtunnelEndpoint.setpresent(true); return dL_Forwarding_GTPtunnelEndpoint;} - dL_Forwarding_GTPtunnelEndpoint_t const* get_dL_Forwarding_GTPtunnelEndpoint() const {return dL_Forwarding_GTPtunnelEndpoint.is_valid() ? &dL_Forwarding_GTPtunnelEndpoint : nullptr;} - struct uL_Forwarding_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "uL_Forwarding_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - uL_Forwarding_GTPtunnelEndpoint_t& set_uL_Forwarding_GTPtunnelEndpoint() { uL_Forwarding_GTPtunnelEndpoint.setpresent(true); return uL_Forwarding_GTPtunnelEndpoint;} - uL_Forwarding_GTPtunnelEndpoint_t const* get_uL_Forwarding_GTPtunnelEndpoint() const {return uL_Forwarding_GTPtunnelEndpoint.is_valid() ? &uL_Forwarding_GTPtunnelEndpoint : nullptr;} - struct mCG_E_RAB_Level_QoS_Parameters_t : E_RAB_Level_QoS_Parameters - { - static constexpr const char* name() {return "mCG_E_RAB_Level_QoS_Parameters_t";} - using parent_t = E_RAB_Level_QoS_Parameters; - static constexpr bool optional = true; - - }; - mCG_E_RAB_Level_QoS_Parameters_t& set_mCG_E_RAB_Level_QoS_Parameters() { mCG_E_RAB_Level_QoS_Parameters.setpresent(true); return mCG_E_RAB_Level_QoS_Parameters;} - mCG_E_RAB_Level_QoS_Parameters_t const* get_mCG_E_RAB_Level_QoS_Parameters() const {return mCG_E_RAB_Level_QoS_Parameters.is_valid() ? &mCG_E_RAB_Level_QoS_Parameters : nullptr;} - struct uL_Configuration_t : ULConfiguration - { - static constexpr const char* name() {return "uL_Configuration_t";} - using parent_t = ULConfiguration; - static constexpr bool optional = true; - - }; - uL_Configuration_t& set_uL_Configuration() { uL_Configuration.setpresent(true); return uL_Configuration;} - uL_Configuration_t const* get_uL_Configuration() const {return uL_Configuration.is_valid() ? &uL_Configuration : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(s1_DL_GTPtunnelEndpoint); - v(sgNB_UL_GTP_TEIDatPDCP); - v(rlc_Mode); - v(dL_Forwarding_GTPtunnelEndpoint); - v(uL_Forwarding_GTPtunnelEndpoint); - v(mCG_E_RAB_Level_QoS_Parameters); - v(uL_Configuration); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(s1_DL_GTPtunnelEndpoint); - v(sgNB_UL_GTP_TEIDatPDCP); - v(rlc_Mode); - v(dL_Forwarding_GTPtunnelEndpoint); - v(uL_Forwarding_GTPtunnelEndpoint); - v(mCG_E_RAB_Level_QoS_Parameters); - v(uL_Configuration); - v(iE_Extensions); - - }; - void clear() - { - s1_DL_GTPtunnelEndpoint.clear(); - sgNB_UL_GTP_TEIDatPDCP.clear(); - rlc_Mode.clear(); - dL_Forwarding_GTPtunnelEndpoint.clear(); - uL_Forwarding_GTPtunnelEndpoint.clear(); - mCG_E_RAB_Level_QoS_Parameters.clear(); - uL_Configuration.clear(); - iE_Extensions.clear(); - - }; - private: - s1_DL_GTPtunnelEndpoint_t s1_DL_GTPtunnelEndpoint; - sgNB_UL_GTP_TEIDatPDCP_t sgNB_UL_GTP_TEIDatPDCP; - rlc_Mode_t rlc_Mode; - dL_Forwarding_GTPtunnelEndpoint_t dL_Forwarding_GTPtunnelEndpoint; - uL_Forwarding_GTPtunnelEndpoint_t uL_Forwarding_GTPtunnelEndpoint; - mCG_E_RAB_Level_QoS_Parameters_t mCG_E_RAB_Level_QoS_Parameters; - uL_Configuration_t uL_Configuration; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPnotpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-lCID CRITICALITY ignore EXTENSION LCID PRESENCE optional}, - ... -} -*/ - -struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresentExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_lCID() { set(id_lCID); type=1;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_lCID)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_lCID);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_lCID() { set(ignore); type=1;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - LCID& select_id_lCID() { return set(1); } - LCID const* get_id_lCID() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_lCID()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(LCID)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_lCID() { set(optional); type=1;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPnotpresent ::= SEQUENCE { - sgNB-DL-GTP-TEIDatSCG GTPtunnelEndpoint, - secondary-sgNB-DL-GTP-TEIDatSCG GTPtunnelEndpoint OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPnotpresentExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresent : asn::sequence<3, 0, true, 2> -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPnotpresent";} - using parent_t = asn::sequence<3, 0, true, 2>; - struct sgNB_DL_GTP_TEIDatSCG_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "sgNB_DL_GTP_TEIDatSCG_t";} - using parent_t = GTPtunnelEndpoint; - - }; - sgNB_DL_GTP_TEIDatSCG_t& ref_sgNB_DL_GTP_TEIDatSCG() {return sgNB_DL_GTP_TEIDatSCG;} - sgNB_DL_GTP_TEIDatSCG_t const& ref_sgNB_DL_GTP_TEIDatSCG() const {return sgNB_DL_GTP_TEIDatSCG;} - struct secondary_sgNB_DL_GTP_TEIDatSCG_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "secondary_sgNB_DL_GTP_TEIDatSCG_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - secondary_sgNB_DL_GTP_TEIDatSCG_t& set_secondary_sgNB_DL_GTP_TEIDatSCG() { secondary_sgNB_DL_GTP_TEIDatSCG.setpresent(true); return secondary_sgNB_DL_GTP_TEIDatSCG;} - secondary_sgNB_DL_GTP_TEIDatSCG_t const* get_secondary_sgNB_DL_GTP_TEIDatSCG() const {return secondary_sgNB_DL_GTP_TEIDatSCG.is_valid() ? &secondary_sgNB_DL_GTP_TEIDatSCG : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(sgNB_DL_GTP_TEIDatSCG); - v(secondary_sgNB_DL_GTP_TEIDatSCG); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(sgNB_DL_GTP_TEIDatSCG); - v(secondary_sgNB_DL_GTP_TEIDatSCG); - v(iE_Extensions); - - }; - void clear() - { - sgNB_DL_GTP_TEIDatSCG.clear(); - secondary_sgNB_DL_GTP_TEIDatSCG.clear(); - iE_Extensions.clear(); - - }; - private: - sgNB_DL_GTP_TEIDatSCG_t sgNB_DL_GTP_TEIDatSCG; - secondary_sgNB_DL_GTP_TEIDatSCG_t secondary_sgNB_DL_GTP_TEIDatSCG; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeAdded-SgNBAddReqAck-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_ToBeAdded_SgNBAddReqAck_ItemExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - en-DC-ResourceConfiguration EN-DC-ResourceConfiguration, - resource-configuration CHOICE { - sgNBPDCPpresent E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPpresent, - sgNBPDCPnotpresent E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPnotpresent, - ... - }, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeAdded-SgNBAddReqAck-ItemExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item : asn::sequence<4, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item";} - using parent_t = asn::sequence<4, 0, true, 1>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct en_DC_ResourceConfiguration_t : EN_DC_ResourceConfiguration - { - static constexpr const char* name() {return "en_DC_ResourceConfiguration_t";} - using parent_t = EN_DC_ResourceConfiguration; - - }; - en_DC_ResourceConfiguration_t& ref_en_DC_ResourceConfiguration() {return en_DC_ResourceConfiguration;} - en_DC_ResourceConfiguration_t const& ref_en_DC_ResourceConfiguration() const {return en_DC_ResourceConfiguration;} - struct resource_configuration_t : asn::choice<2, 0, true> - { - static constexpr const char* name() {return "resource_configuration_t";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~resource_configuration_t() {clear();} - struct sgNBPDCPpresent_t : E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresent - { - static constexpr const char* name() {return "sgNBPDCPpresent_t";} - using parent_t = E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresent; - - }; - struct sgNBPDCPnotpresent_t : E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresent - { - static constexpr const char* name() {return "sgNBPDCPnotpresent_t";} - using parent_t = E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresent; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - sgNBPDCPpresent_t& select_sgNBPDCPpresent() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - sgNBPDCPpresent_t const* get_sgNBPDCPpresent() const { if(get_index() == 1) { return &var.as();} return nullptr; } - sgNBPDCPnotpresent_t& select_sgNBPDCPnotpresent() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - sgNBPDCPnotpresent_t const* get_sgNBPDCPnotpresent() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(sgNBPDCPpresent_t)]; - char dummy2[sizeof(sgNBPDCPnotpresent_t)]; - - }; - asn::variant var; - index_type index {0}; - }; - resource_configuration_t& ref_resource_configuration() {return resource_configuration;} - resource_configuration_t const& ref_resource_configuration() const {return resource_configuration;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(en_DC_ResourceConfiguration); - v(resource_configuration); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(en_DC_ResourceConfiguration); - v(resource_configuration); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - en_DC_ResourceConfiguration.clear(); - resource_configuration.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - en_DC_ResourceConfiguration_t en_DC_ResourceConfiguration; - resource_configuration_t resource_configuration; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item CRITICALITY ignore TYPE E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item PRESENCE mandatory} -} -*/ - -struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item() { set(id_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item& select_id_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item() { return set(1); } - E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item const* get_id_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item() const { return get(1); } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item()); return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-ToBeAdded-SgNBAddReqAckList ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-ItemIEs} } -*/ - -struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeAdded-SgNBAddReqAckList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-uLpDCPSnLength CRITICALITY ignore EXTENSION PDCPSnLength PRESENCE optional}| - { ID id-dLPDCPSnLength CRITICALITY ignore EXTENSION PDCPSnLength PRESENCE optional}, - ... -} -*/ - -struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresentExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_uLpDCPSnLength() { set(id_uLpDCPSnLength); type=1;} - void select_id_dLPDCPSnLength() { set(id_dLPDCPSnLength); type=2;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_uLpDCPSnLength)) { type = 1; return true; } - else if(equal(id_dLPDCPSnLength)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_uLpDCPSnLength);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_dLPDCPSnLength);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_uLpDCPSnLength() { set(ignore); type=1;} - void select_id_dLPDCPSnLength() { set(ignore); type=2;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - PDCPSnLength& select_id_uLpDCPSnLength() { return set(1); } - PDCPSnLength const* get_id_uLpDCPSnLength() const { return get(1); } - PDCPSnLength& select_id_dLPDCPSnLength() { return set(2); } - PDCPSnLength const* get_id_dLPDCPSnLength() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_uLpDCPSnLength()); return true; - case 2: v(select_id_dLPDCPSnLength()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(PDCPSnLength)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_uLpDCPSnLength() { set(optional); type=1;} - void select_id_dLPDCPSnLength() { set(optional); type=2;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPpresent ::= SEQUENCE { - s1-DL-GTPtunnelEndpoint GTPtunnelEndpoint, - sgNB-UL-GTP-TEIDatPDCP GTPtunnelEndpoint OPTIONAL, --- This IE shall be present if MCG resource IE in the the EN-DC Resource Configuration IE are set to “present” -- - rlc-Mode RLCMode OPTIONAL, --- This IE shall be present if MCG resource IE in the the EN-DC Resource Configuration IE are set to “present” -- - dL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, - uL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, - mCG-E-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters OPTIONAL, --- This IE shall be present if MCG resource and SCG resource IEs in the the EN-DC Resource Configuration IE are set to “present” and the GBR QoS Information IE is present in the Requested MCG E-RAB Level QoS Parameters IE -- - uL-Configuration ULConfiguration OPTIONAL, --- This IE shall be present if MCG resource and SCG resources IEs in the the EN-DC Resource Configuration IE are set to “present” -- - iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPpresentExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresent : asn::sequence<8, 0, true, 7> -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPpresent";} - using parent_t = asn::sequence<8, 0, true, 7>; - struct s1_DL_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "s1_DL_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - - }; - s1_DL_GTPtunnelEndpoint_t& ref_s1_DL_GTPtunnelEndpoint() {return s1_DL_GTPtunnelEndpoint;} - s1_DL_GTPtunnelEndpoint_t const& ref_s1_DL_GTPtunnelEndpoint() const {return s1_DL_GTPtunnelEndpoint;} - struct sgNB_UL_GTP_TEIDatPDCP_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "sgNB_UL_GTP_TEIDatPDCP_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - sgNB_UL_GTP_TEIDatPDCP_t& set_sgNB_UL_GTP_TEIDatPDCP() { sgNB_UL_GTP_TEIDatPDCP.setpresent(true); return sgNB_UL_GTP_TEIDatPDCP;} - sgNB_UL_GTP_TEIDatPDCP_t const* get_sgNB_UL_GTP_TEIDatPDCP() const {return sgNB_UL_GTP_TEIDatPDCP.is_valid() ? &sgNB_UL_GTP_TEIDatPDCP : nullptr;} - struct rlc_Mode_t : RLCMode - { - static constexpr const char* name() {return "rlc_Mode_t";} - using parent_t = RLCMode; - static constexpr bool optional = true; - - }; - rlc_Mode_t& set_rlc_Mode() { rlc_Mode.setpresent(true); return rlc_Mode;} - rlc_Mode_t const* get_rlc_Mode() const {return rlc_Mode.is_valid() ? &rlc_Mode : nullptr;} - struct dL_Forwarding_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "dL_Forwarding_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - dL_Forwarding_GTPtunnelEndpoint_t& set_dL_Forwarding_GTPtunnelEndpoint() { dL_Forwarding_GTPtunnelEndpoint.setpresent(true); return dL_Forwarding_GTPtunnelEndpoint;} - dL_Forwarding_GTPtunnelEndpoint_t const* get_dL_Forwarding_GTPtunnelEndpoint() const {return dL_Forwarding_GTPtunnelEndpoint.is_valid() ? &dL_Forwarding_GTPtunnelEndpoint : nullptr;} - struct uL_Forwarding_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "uL_Forwarding_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - uL_Forwarding_GTPtunnelEndpoint_t& set_uL_Forwarding_GTPtunnelEndpoint() { uL_Forwarding_GTPtunnelEndpoint.setpresent(true); return uL_Forwarding_GTPtunnelEndpoint;} - uL_Forwarding_GTPtunnelEndpoint_t const* get_uL_Forwarding_GTPtunnelEndpoint() const {return uL_Forwarding_GTPtunnelEndpoint.is_valid() ? &uL_Forwarding_GTPtunnelEndpoint : nullptr;} - struct mCG_E_RAB_Level_QoS_Parameters_t : E_RAB_Level_QoS_Parameters - { - static constexpr const char* name() {return "mCG_E_RAB_Level_QoS_Parameters_t";} - using parent_t = E_RAB_Level_QoS_Parameters; - static constexpr bool optional = true; - - }; - mCG_E_RAB_Level_QoS_Parameters_t& set_mCG_E_RAB_Level_QoS_Parameters() { mCG_E_RAB_Level_QoS_Parameters.setpresent(true); return mCG_E_RAB_Level_QoS_Parameters;} - mCG_E_RAB_Level_QoS_Parameters_t const* get_mCG_E_RAB_Level_QoS_Parameters() const {return mCG_E_RAB_Level_QoS_Parameters.is_valid() ? &mCG_E_RAB_Level_QoS_Parameters : nullptr;} - struct uL_Configuration_t : ULConfiguration - { - static constexpr const char* name() {return "uL_Configuration_t";} - using parent_t = ULConfiguration; - static constexpr bool optional = true; - - }; - uL_Configuration_t& set_uL_Configuration() { uL_Configuration.setpresent(true); return uL_Configuration;} - uL_Configuration_t const* get_uL_Configuration() const {return uL_Configuration.is_valid() ? &uL_Configuration : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(s1_DL_GTPtunnelEndpoint); - v(sgNB_UL_GTP_TEIDatPDCP); - v(rlc_Mode); - v(dL_Forwarding_GTPtunnelEndpoint); - v(uL_Forwarding_GTPtunnelEndpoint); - v(mCG_E_RAB_Level_QoS_Parameters); - v(uL_Configuration); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(s1_DL_GTPtunnelEndpoint); - v(sgNB_UL_GTP_TEIDatPDCP); - v(rlc_Mode); - v(dL_Forwarding_GTPtunnelEndpoint); - v(uL_Forwarding_GTPtunnelEndpoint); - v(mCG_E_RAB_Level_QoS_Parameters); - v(uL_Configuration); - v(iE_Extensions); - - }; - void clear() - { - s1_DL_GTPtunnelEndpoint.clear(); - sgNB_UL_GTP_TEIDatPDCP.clear(); - rlc_Mode.clear(); - dL_Forwarding_GTPtunnelEndpoint.clear(); - uL_Forwarding_GTPtunnelEndpoint.clear(); - mCG_E_RAB_Level_QoS_Parameters.clear(); - uL_Configuration.clear(); - iE_Extensions.clear(); - - }; - private: - s1_DL_GTPtunnelEndpoint_t s1_DL_GTPtunnelEndpoint; - sgNB_UL_GTP_TEIDatPDCP_t sgNB_UL_GTP_TEIDatPDCP; - rlc_Mode_t rlc_Mode; - dL_Forwarding_GTPtunnelEndpoint_t dL_Forwarding_GTPtunnelEndpoint; - uL_Forwarding_GTPtunnelEndpoint_t uL_Forwarding_GTPtunnelEndpoint; - mCG_E_RAB_Level_QoS_Parameters_t mCG_E_RAB_Level_QoS_Parameters; - uL_Configuration_t uL_Configuration; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPnotpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { - {ID id-lCID CRITICALITY ignore EXTENSION LCID PRESENCE optional}, - ... -} -*/ - -struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_lCID() { set(id_lCID); type=1;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_lCID)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_lCID);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_lCID() { set(ignore); type=1;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - LCID& select_id_lCID() { return set(1); } - LCID const* get_id_lCID() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_lCID()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(LCID)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_lCID() { set(optional); type=1;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPnotpresent ::= SEQUENCE { - sgNB-DL-GTP-TEIDatSCG GTPtunnelEndpoint, - secondary-sgNB-DL-GTP-TEIDatSCG GTPtunnelEndpoint OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPnotpresentExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresent : asn::sequence<3, 0, true, 2> -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPnotpresent";} - using parent_t = asn::sequence<3, 0, true, 2>; - struct sgNB_DL_GTP_TEIDatSCG_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "sgNB_DL_GTP_TEIDatSCG_t";} - using parent_t = GTPtunnelEndpoint; - - }; - sgNB_DL_GTP_TEIDatSCG_t& ref_sgNB_DL_GTP_TEIDatSCG() {return sgNB_DL_GTP_TEIDatSCG;} - sgNB_DL_GTP_TEIDatSCG_t const& ref_sgNB_DL_GTP_TEIDatSCG() const {return sgNB_DL_GTP_TEIDatSCG;} - struct secondary_sgNB_DL_GTP_TEIDatSCG_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "secondary_sgNB_DL_GTP_TEIDatSCG_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - secondary_sgNB_DL_GTP_TEIDatSCG_t& set_secondary_sgNB_DL_GTP_TEIDatSCG() { secondary_sgNB_DL_GTP_TEIDatSCG.setpresent(true); return secondary_sgNB_DL_GTP_TEIDatSCG;} - secondary_sgNB_DL_GTP_TEIDatSCG_t const* get_secondary_sgNB_DL_GTP_TEIDatSCG() const {return secondary_sgNB_DL_GTP_TEIDatSCG.is_valid() ? &secondary_sgNB_DL_GTP_TEIDatSCG : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(sgNB_DL_GTP_TEIDatSCG); - v(secondary_sgNB_DL_GTP_TEIDatSCG); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(sgNB_DL_GTP_TEIDatSCG); - v(secondary_sgNB_DL_GTP_TEIDatSCG); - v(iE_Extensions); - - }; - void clear() - { - sgNB_DL_GTP_TEIDatSCG.clear(); - secondary_sgNB_DL_GTP_TEIDatSCG.clear(); - iE_Extensions.clear(); - - }; - private: - sgNB_DL_GTP_TEIDatSCG_t sgNB_DL_GTP_TEIDatSCG; - secondary_sgNB_DL_GTP_TEIDatSCG_t secondary_sgNB_DL_GTP_TEIDatSCG; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-Admitted-ToBeAdded-SgNBModAck-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-ToBeAdded-SgNBModAck-Item ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - en-DC-ResourceConfiguration EN-DC-ResourceConfiguration, - resource-configuration CHOICE { - sgNBPDCPpresent E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPpresent, - sgNBPDCPnotpresent E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPnotpresent, - ... - }, - iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeAdded-SgNBModAck-ItemExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item : asn::sequence<4, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeAdded-SgNBModAck-Item";} - using parent_t = asn::sequence<4, 0, true, 1>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct en_DC_ResourceConfiguration_t : EN_DC_ResourceConfiguration - { - static constexpr const char* name() {return "en_DC_ResourceConfiguration_t";} - using parent_t = EN_DC_ResourceConfiguration; - - }; - en_DC_ResourceConfiguration_t& ref_en_DC_ResourceConfiguration() {return en_DC_ResourceConfiguration;} - en_DC_ResourceConfiguration_t const& ref_en_DC_ResourceConfiguration() const {return en_DC_ResourceConfiguration;} - struct resource_configuration_t : asn::choice<2, 0, true> - { - static constexpr const char* name() {return "resource_configuration_t";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~resource_configuration_t() {clear();} - struct sgNBPDCPpresent_t : E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresent - { - static constexpr const char* name() {return "sgNBPDCPpresent_t";} - using parent_t = E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresent; - - }; - struct sgNBPDCPnotpresent_t : E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresent - { - static constexpr const char* name() {return "sgNBPDCPnotpresent_t";} - using parent_t = E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresent; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - sgNBPDCPpresent_t& select_sgNBPDCPpresent() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - sgNBPDCPpresent_t const* get_sgNBPDCPpresent() const { if(get_index() == 1) { return &var.as();} return nullptr; } - sgNBPDCPnotpresent_t& select_sgNBPDCPnotpresent() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - sgNBPDCPnotpresent_t const* get_sgNBPDCPnotpresent() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(sgNBPDCPpresent_t)]; - char dummy2[sizeof(sgNBPDCPnotpresent_t)]; - - }; - asn::variant var; - index_type index {0}; - }; - resource_configuration_t& ref_resource_configuration() {return resource_configuration;} - resource_configuration_t const& ref_resource_configuration() const {return resource_configuration;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(en_DC_ResourceConfiguration); - v(resource_configuration); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(en_DC_ResourceConfiguration); - v(resource_configuration); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - en_DC_ResourceConfiguration.clear(); - resource_configuration.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - en_DC_ResourceConfiguration_t en_DC_ResourceConfiguration; - resource_configuration_t resource_configuration; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-Admitted-ToBeAdded-SgNBModAck-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-Admitted-ToBeAdded-SgNBModAck-Item CRITICALITY ignore TYPE E-RABs-Admitted-ToBeAdded-SgNBModAck-Item PRESENCE mandatory} -} -*/ - -struct E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item() { set(id_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_Admitted_ToBeAdded_SgNBModAck_Item& select_id_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item() { return set(1); } - E_RABs_Admitted_ToBeAdded_SgNBModAck_Item const* get_id_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item() const { return get(1); } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item()); return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_Admitted_ToBeAdded_SgNBModAck_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-ToBeAdded-SgNBModAckList ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-Admitted-ToBeAdded-SgNBModAck-ItemIEs} } -*/ - -struct E_RABs_Admitted_ToBeAdded_SgNBModAckList_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_Admitted_ToBeAdded_SgNBModAckList_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_Admitted_ToBeAdded_SgNBModAckList : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeAdded-SgNBModAckList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-Admitted-ToBeModified-ModAckItem-SCG-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_Admitted_ToBeModified_ModAckItem_SCG_BearerExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-ToBeModified-ModAckItem-SCG-Bearer ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - s1-DL-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeModified-ModAckItem-SCG-BearerExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_Admitted_ToBeModified_ModAckItem_SCG_Bearer : asn::sequence<3, 0, true, 2> -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeModified-ModAckItem-SCG-Bearer";} - using parent_t = asn::sequence<3, 0, true, 2>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct s1_DL_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "s1_DL_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - s1_DL_GTPtunnelEndpoint_t& set_s1_DL_GTPtunnelEndpoint() { s1_DL_GTPtunnelEndpoint.setpresent(true); return s1_DL_GTPtunnelEndpoint;} - s1_DL_GTPtunnelEndpoint_t const* get_s1_DL_GTPtunnelEndpoint() const {return s1_DL_GTPtunnelEndpoint.is_valid() ? &s1_DL_GTPtunnelEndpoint : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(s1_DL_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(s1_DL_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - s1_DL_GTPtunnelEndpoint.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - s1_DL_GTPtunnelEndpoint_t s1_DL_GTPtunnelEndpoint; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-Admitted-ToBeModified-ModAckItem-Split-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_Admitted_ToBeModified_ModAckItem_Split_BearerExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-ToBeModified-ModAckItem-Split-Bearer ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - seNB-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeModified-ModAckItem-Split-BearerExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_Admitted_ToBeModified_ModAckItem_Split_Bearer : asn::sequence<3, 0, true, 2> -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeModified-ModAckItem-Split-Bearer";} - using parent_t = asn::sequence<3, 0, true, 2>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct seNB_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "seNB_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - seNB_GTPtunnelEndpoint_t& set_seNB_GTPtunnelEndpoint() { seNB_GTPtunnelEndpoint.setpresent(true); return seNB_GTPtunnelEndpoint;} - seNB_GTPtunnelEndpoint_t const* get_seNB_GTPtunnelEndpoint() const {return seNB_GTPtunnelEndpoint.is_valid() ? &seNB_GTPtunnelEndpoint : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(seNB_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(seNB_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - seNB_GTPtunnelEndpoint.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - seNB_GTPtunnelEndpoint_t seNB_GTPtunnelEndpoint; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-Admitted-ToBeModified-ModAckItem ::= CHOICE { - sCG-Bearer E-RABs-Admitted-ToBeModified-ModAckItem-SCG-Bearer, - split-Bearer E-RABs-Admitted-ToBeModified-ModAckItem-Split-Bearer, - ... -} -*/ - -struct E_RABs_Admitted_ToBeModified_ModAckItem : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeModified-ModAckItem";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~E_RABs_Admitted_ToBeModified_ModAckItem() {clear();} - struct sCG_Bearer_t : E_RABs_Admitted_ToBeModified_ModAckItem_SCG_Bearer - { - static constexpr const char* name() {return "sCG_Bearer_t";} - using parent_t = E_RABs_Admitted_ToBeModified_ModAckItem_SCG_Bearer; - - }; - struct split_Bearer_t : E_RABs_Admitted_ToBeModified_ModAckItem_Split_Bearer - { - static constexpr const char* name() {return "split_Bearer_t";} - using parent_t = E_RABs_Admitted_ToBeModified_ModAckItem_Split_Bearer; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - sCG_Bearer_t& select_sCG_Bearer() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - sCG_Bearer_t const* get_sCG_Bearer() const { if(get_index() == 1) { return &var.as();} return nullptr; } - split_Bearer_t& select_split_Bearer() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - split_Bearer_t const* get_split_Bearer() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(sCG_Bearer_t)]; - char dummy2[sizeof(split_Bearer_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -E-RABs-Admitted-ToBeModified-ModAckItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-Admitted-ToBeModified-ModAckItem CRITICALITY ignore TYPE E-RABs-Admitted-ToBeModified-ModAckItem PRESENCE mandatory} -} -*/ - -struct E_RABs_Admitted_ToBeModified_ModAckItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_E_RABs_Admitted_ToBeModified_ModAckItem() { set(id_E_RABs_Admitted_ToBeModified_ModAckItem); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_Admitted_ToBeModified_ModAckItem)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_Admitted_ToBeModified_ModAckItem);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_E_RABs_Admitted_ToBeModified_ModAckItem() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_Admitted_ToBeModified_ModAckItem& select_id_E_RABs_Admitted_ToBeModified_ModAckItem() { return set(1); } - E_RABs_Admitted_ToBeModified_ModAckItem const* get_id_E_RABs_Admitted_ToBeModified_ModAckItem() const { return get(1); } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_Admitted_ToBeModified_ModAckItem()); return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_Admitted_ToBeModified_ModAckItem)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_E_RABs_Admitted_ToBeModified_ModAckItem() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-ToBeModified-ModAckList ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-Admitted-ToBeModified-ModAckItemIEs} } -*/ - -struct E_RABs_Admitted_ToBeModified_ModAckList_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_Admitted_ToBeModified_ModAckList_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_Admitted_ToBeModified_ModAckList : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeModified-ModAckList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-uLpDCPSnLength CRITICALITY ignore EXTENSION PDCPSnLength PRESENCE optional}| - { ID id-dLPDCPSnLength CRITICALITY ignore EXTENSION PDCPSnLength PRESENCE optional}, - ... -} -*/ - -struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresentExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_uLpDCPSnLength() { set(id_uLpDCPSnLength); type=1;} - void select_id_dLPDCPSnLength() { set(id_dLPDCPSnLength); type=2;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_uLpDCPSnLength)) { type = 1; return true; } - else if(equal(id_dLPDCPSnLength)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_uLpDCPSnLength);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_dLPDCPSnLength);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_uLpDCPSnLength() { set(ignore); type=1;} - void select_id_dLPDCPSnLength() { set(ignore); type=2;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - PDCPSnLength& select_id_uLpDCPSnLength() { return set(1); } - PDCPSnLength const* get_id_uLpDCPSnLength() const { return get(1); } - PDCPSnLength& select_id_dLPDCPSnLength() { return set(2); } - PDCPSnLength const* get_id_dLPDCPSnLength() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_uLpDCPSnLength()); return true; - case 2: v(select_id_dLPDCPSnLength()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(PDCPSnLength)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_uLpDCPSnLength() { set(optional); type=1;} - void select_id_dLPDCPSnLength() { set(optional); type=2;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPpresent ::= SEQUENCE { - s1-DL-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, - sgNB-UL-GTP-TEIDatPDCP GTPtunnelEndpoint OPTIONAL, - mCG-E-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters OPTIONAL, - uL-Configuration ULConfiguration OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPpresentExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresent : asn::sequence<5, 0, true, 5> -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPpresent";} - using parent_t = asn::sequence<5, 0, true, 5>; - struct s1_DL_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "s1_DL_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - s1_DL_GTPtunnelEndpoint_t& set_s1_DL_GTPtunnelEndpoint() { s1_DL_GTPtunnelEndpoint.setpresent(true); return s1_DL_GTPtunnelEndpoint;} - s1_DL_GTPtunnelEndpoint_t const* get_s1_DL_GTPtunnelEndpoint() const {return s1_DL_GTPtunnelEndpoint.is_valid() ? &s1_DL_GTPtunnelEndpoint : nullptr;} - struct sgNB_UL_GTP_TEIDatPDCP_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "sgNB_UL_GTP_TEIDatPDCP_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - sgNB_UL_GTP_TEIDatPDCP_t& set_sgNB_UL_GTP_TEIDatPDCP() { sgNB_UL_GTP_TEIDatPDCP.setpresent(true); return sgNB_UL_GTP_TEIDatPDCP;} - sgNB_UL_GTP_TEIDatPDCP_t const* get_sgNB_UL_GTP_TEIDatPDCP() const {return sgNB_UL_GTP_TEIDatPDCP.is_valid() ? &sgNB_UL_GTP_TEIDatPDCP : nullptr;} - struct mCG_E_RAB_Level_QoS_Parameters_t : E_RAB_Level_QoS_Parameters - { - static constexpr const char* name() {return "mCG_E_RAB_Level_QoS_Parameters_t";} - using parent_t = E_RAB_Level_QoS_Parameters; - static constexpr bool optional = true; - - }; - mCG_E_RAB_Level_QoS_Parameters_t& set_mCG_E_RAB_Level_QoS_Parameters() { mCG_E_RAB_Level_QoS_Parameters.setpresent(true); return mCG_E_RAB_Level_QoS_Parameters;} - mCG_E_RAB_Level_QoS_Parameters_t const* get_mCG_E_RAB_Level_QoS_Parameters() const {return mCG_E_RAB_Level_QoS_Parameters.is_valid() ? &mCG_E_RAB_Level_QoS_Parameters : nullptr;} - struct uL_Configuration_t : ULConfiguration - { - static constexpr const char* name() {return "uL_Configuration_t";} - using parent_t = ULConfiguration; - static constexpr bool optional = true; - - }; - uL_Configuration_t& set_uL_Configuration() { uL_Configuration.setpresent(true); return uL_Configuration;} - uL_Configuration_t const* get_uL_Configuration() const {return uL_Configuration.is_valid() ? &uL_Configuration : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(s1_DL_GTPtunnelEndpoint); - v(sgNB_UL_GTP_TEIDatPDCP); - v(mCG_E_RAB_Level_QoS_Parameters); - v(uL_Configuration); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(s1_DL_GTPtunnelEndpoint); - v(sgNB_UL_GTP_TEIDatPDCP); - v(mCG_E_RAB_Level_QoS_Parameters); - v(uL_Configuration); - v(iE_Extensions); - - }; - void clear() - { - s1_DL_GTPtunnelEndpoint.clear(); - sgNB_UL_GTP_TEIDatPDCP.clear(); - mCG_E_RAB_Level_QoS_Parameters.clear(); - uL_Configuration.clear(); - iE_Extensions.clear(); - - }; - private: - s1_DL_GTPtunnelEndpoint_t s1_DL_GTPtunnelEndpoint; - sgNB_UL_GTP_TEIDatPDCP_t sgNB_UL_GTP_TEIDatPDCP; - mCG_E_RAB_Level_QoS_Parameters_t mCG_E_RAB_Level_QoS_Parameters; - uL_Configuration_t uL_Configuration; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPnotpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-secondarysgNBDLGTPTEIDatPDCP CRITICALITY ignore EXTENSION GTPtunnelEndpoint PRESENCE optional}| - { ID id-RLC-Status CRITICALITY ignore EXTENSION RLC-Status PRESENCE optional }, - ... -} -*/ - -struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_secondarysgNBDLGTPTEIDatPDCP() { set(id_secondarysgNBDLGTPTEIDatPDCP); type=1;} - void select_id_RLC_Status() { set(id_RLC_Status); type=2;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_secondarysgNBDLGTPTEIDatPDCP)) { type = 1; return true; } - else if(equal(id_RLC_Status)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_secondarysgNBDLGTPTEIDatPDCP);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_RLC_Status);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_secondarysgNBDLGTPTEIDatPDCP() { set(ignore); type=1;} - void select_id_RLC_Status() { set(ignore); type=2;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - GTPtunnelEndpoint& select_id_secondarysgNBDLGTPTEIDatPDCP() { return set(1); } - GTPtunnelEndpoint const* get_id_secondarysgNBDLGTPTEIDatPDCP() const { return get(1); } - RLC_Status& select_id_RLC_Status() { return set(2); } - RLC_Status const* get_id_RLC_Status() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_secondarysgNBDLGTPTEIDatPDCP()); return true; - case 2: v(select_id_RLC_Status()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(GTPtunnelEndpoint)]; - char dummy2[sizeof(RLC_Status)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_secondarysgNBDLGTPTEIDatPDCP() { set(optional); type=1;} - void select_id_RLC_Status() { set(optional); type=2;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPnotpresent ::= SEQUENCE { - sgNB-DL-GTP-TEIDatSCG GTPtunnelEndpoint OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPnotpresentExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresent : asn::sequence<2, 0, true, 2> -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPnotpresent";} - using parent_t = asn::sequence<2, 0, true, 2>; - struct sgNB_DL_GTP_TEIDatSCG_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "sgNB_DL_GTP_TEIDatSCG_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - sgNB_DL_GTP_TEIDatSCG_t& set_sgNB_DL_GTP_TEIDatSCG() { sgNB_DL_GTP_TEIDatSCG.setpresent(true); return sgNB_DL_GTP_TEIDatSCG;} - sgNB_DL_GTP_TEIDatSCG_t const* get_sgNB_DL_GTP_TEIDatSCG() const {return sgNB_DL_GTP_TEIDatSCG.is_valid() ? &sgNB_DL_GTP_TEIDatSCG : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(sgNB_DL_GTP_TEIDatSCG); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(sgNB_DL_GTP_TEIDatSCG); - v(iE_Extensions); - - }; - void clear() - { - sgNB_DL_GTP_TEIDatSCG.clear(); - iE_Extensions.clear(); - - }; - private: - sgNB_DL_GTP_TEIDatSCG_t sgNB_DL_GTP_TEIDatSCG; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeAdded-SgNBModAck-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_ToBeAdded_SgNBModAck_ItemExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-ToBeModified-SgNBModAck-Item ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - en-DC-ResourceConfiguration EN-DC-ResourceConfiguration, - resource-configuration CHOICE { - sgNBPDCPpresent E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPpresent, - sgNBPDCPnotpresent E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPnotpresent, - ... - }, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeAdded-SgNBModAck-ItemExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item : asn::sequence<4, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeModified-SgNBModAck-Item";} - using parent_t = asn::sequence<4, 0, true, 1>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct en_DC_ResourceConfiguration_t : EN_DC_ResourceConfiguration - { - static constexpr const char* name() {return "en_DC_ResourceConfiguration_t";} - using parent_t = EN_DC_ResourceConfiguration; - - }; - en_DC_ResourceConfiguration_t& ref_en_DC_ResourceConfiguration() {return en_DC_ResourceConfiguration;} - en_DC_ResourceConfiguration_t const& ref_en_DC_ResourceConfiguration() const {return en_DC_ResourceConfiguration;} - struct resource_configuration_t : asn::choice<2, 0, true> - { - static constexpr const char* name() {return "resource_configuration_t";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~resource_configuration_t() {clear();} - struct sgNBPDCPpresent_t : E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresent - { - static constexpr const char* name() {return "sgNBPDCPpresent_t";} - using parent_t = E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresent; - - }; - struct sgNBPDCPnotpresent_t : E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresent - { - static constexpr const char* name() {return "sgNBPDCPnotpresent_t";} - using parent_t = E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresent; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - sgNBPDCPpresent_t& select_sgNBPDCPpresent() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - sgNBPDCPpresent_t const* get_sgNBPDCPpresent() const { if(get_index() == 1) { return &var.as();} return nullptr; } - sgNBPDCPnotpresent_t& select_sgNBPDCPnotpresent() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - sgNBPDCPnotpresent_t const* get_sgNBPDCPnotpresent() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(sgNBPDCPpresent_t)]; - char dummy2[sizeof(sgNBPDCPnotpresent_t)]; - - }; - asn::variant var; - index_type index {0}; - }; - resource_configuration_t& ref_resource_configuration() {return resource_configuration;} - resource_configuration_t const& ref_resource_configuration() const {return resource_configuration;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(en_DC_ResourceConfiguration); - v(resource_configuration); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(en_DC_ResourceConfiguration); - v(resource_configuration); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - en_DC_ResourceConfiguration.clear(); - resource_configuration.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - en_DC_ResourceConfiguration_t en_DC_ResourceConfiguration; - resource_configuration_t resource_configuration; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-Admitted-ToBeModified-SgNBModAck-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-Admitted-ToBeModified-SgNBModAck-Item CRITICALITY ignore TYPE E-RABs-Admitted-ToBeModified-SgNBModAck-Item PRESENCE mandatory} -} -*/ - -struct E_RABs_Admitted_ToBeModified_SgNBModAck_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_E_RABs_Admitted_ToBeModified_SgNBModAck_Item() { set(id_E_RABs_Admitted_ToBeModified_SgNBModAck_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_Admitted_ToBeModified_SgNBModAck_Item)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_Admitted_ToBeModified_SgNBModAck_Item);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_E_RABs_Admitted_ToBeModified_SgNBModAck_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_Admitted_ToBeModified_SgNBModAck_Item& select_id_E_RABs_Admitted_ToBeModified_SgNBModAck_Item() { return set(1); } - E_RABs_Admitted_ToBeModified_SgNBModAck_Item const* get_id_E_RABs_Admitted_ToBeModified_SgNBModAck_Item() const { return get(1); } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_Admitted_ToBeModified_SgNBModAck_Item()); return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_Admitted_ToBeModified_SgNBModAck_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_E_RABs_Admitted_ToBeModified_SgNBModAck_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-ToBeModified-SgNBModAckList ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-Admitted-ToBeModified-SgNBModAck-ItemIEs} } -*/ - -struct E_RABs_Admitted_ToBeModified_SgNBModAckList_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_Admitted_ToBeModified_SgNBModAckList_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_Admitted_ToBeModified_SgNBModAckList : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeModified-SgNBModAckList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-Admitted-ToBeReleased-ModAckItem-SCG-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_BearerExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-ToBeReleased-ModAckItem-SCG-Bearer ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeReleased-ModAckItem-SCG-BearerExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_Bearer : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeReleased-ModAckItem-SCG-Bearer";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-Admitted-ToBeReleased-ModAckItem-Split-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_Admitted_ToBeReleased_ModAckItem_Split_BearerExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-ToBeReleased-ModAckItem-Split-Bearer ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeReleased-ModAckItem-Split-BearerExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_Admitted_ToBeReleased_ModAckItem_Split_Bearer : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeReleased-ModAckItem-Split-Bearer";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-Admitted-ToReleased-ModAckItem ::= CHOICE { - sCG-Bearer E-RABs-Admitted-ToBeReleased-ModAckItem-SCG-Bearer, - split-Bearer E-RABs-Admitted-ToBeReleased-ModAckItem-Split-Bearer, - ... -} -*/ - -struct E_RABs_Admitted_ToReleased_ModAckItem : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToReleased-ModAckItem";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~E_RABs_Admitted_ToReleased_ModAckItem() {clear();} - struct sCG_Bearer_t : E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_Bearer - { - static constexpr const char* name() {return "sCG_Bearer_t";} - using parent_t = E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_Bearer; - - }; - struct split_Bearer_t : E_RABs_Admitted_ToBeReleased_ModAckItem_Split_Bearer - { - static constexpr const char* name() {return "split_Bearer_t";} - using parent_t = E_RABs_Admitted_ToBeReleased_ModAckItem_Split_Bearer; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - sCG_Bearer_t& select_sCG_Bearer() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - sCG_Bearer_t const* get_sCG_Bearer() const { if(get_index() == 1) { return &var.as();} return nullptr; } - split_Bearer_t& select_split_Bearer() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - split_Bearer_t const* get_split_Bearer() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(sCG_Bearer_t)]; - char dummy2[sizeof(split_Bearer_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -E-RABs-Admitted-ToBeReleased-ModAckItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-Admitted-ToBeReleased-ModAckItem CRITICALITY ignore TYPE E-RABs-Admitted-ToReleased-ModAckItem PRESENCE mandatory} -} -*/ - -struct E_RABs_Admitted_ToBeReleased_ModAckItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_E_RABs_Admitted_ToBeReleased_ModAckItem() { set(id_E_RABs_Admitted_ToBeReleased_ModAckItem); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_Admitted_ToBeReleased_ModAckItem)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_Admitted_ToBeReleased_ModAckItem);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_E_RABs_Admitted_ToBeReleased_ModAckItem() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_Admitted_ToReleased_ModAckItem& select_id_E_RABs_Admitted_ToBeReleased_ModAckItem() { return set(1); } - E_RABs_Admitted_ToReleased_ModAckItem const* get_id_E_RABs_Admitted_ToBeReleased_ModAckItem() const { return get(1); } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_Admitted_ToBeReleased_ModAckItem()); return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_Admitted_ToReleased_ModAckItem)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_E_RABs_Admitted_ToBeReleased_ModAckItem() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-ToBeReleased-ModAckList ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-Admitted-ToBeReleased-ModAckItemIEs} } -*/ - -struct E_RABs_Admitted_ToBeReleased_ModAckList_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_Admitted_ToBeReleased_ModAckList_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_Admitted_ToBeReleased_ModAckList : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeReleased-ModAckList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPnotpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPnotpresent ::= SEQUENCE { - iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPnotpresentExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresent : asn::sequence<1, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPnotpresent";} - using parent_t = asn::sequence<1, 0, true, 1>; - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(iE_Extensions); - - }; - void clear() - { - iE_Extensions.clear(); - - }; - private: - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresentExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPpresent ::= SEQUENCE { - iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPpresentExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresent : asn::sequence<1, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPpresent";} - using parent_t = asn::sequence<1, 0, true, 1>; - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(iE_Extensions); - - }; - void clear() - { - iE_Extensions.clear(); - - }; - private: - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeReleased-SgNBModAck-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBModAck_ItemExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-ToReleased-SgNBModAck-Item ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - en-DC-ResourceConfiguration EN-DC-ResourceConfiguration, - resource-configuration CHOICE { - sgNBPDCPpresent E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPpresent, - sgNBPDCPnotpresent E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPnotpresent, - ... - }, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-SgNBModAck-ItemExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_Admitted_ToReleased_SgNBModAck_Item : asn::sequence<4, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToReleased-SgNBModAck-Item";} - using parent_t = asn::sequence<4, 0, true, 1>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct en_DC_ResourceConfiguration_t : EN_DC_ResourceConfiguration - { - static constexpr const char* name() {return "en_DC_ResourceConfiguration_t";} - using parent_t = EN_DC_ResourceConfiguration; - - }; - en_DC_ResourceConfiguration_t& ref_en_DC_ResourceConfiguration() {return en_DC_ResourceConfiguration;} - en_DC_ResourceConfiguration_t const& ref_en_DC_ResourceConfiguration() const {return en_DC_ResourceConfiguration;} - struct resource_configuration_t : asn::choice<2, 0, true> - { - static constexpr const char* name() {return "resource_configuration_t";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~resource_configuration_t() {clear();} - struct sgNBPDCPpresent_t : E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresent - { - static constexpr const char* name() {return "sgNBPDCPpresent_t";} - using parent_t = E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresent; - - }; - struct sgNBPDCPnotpresent_t : E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresent - { - static constexpr const char* name() {return "sgNBPDCPnotpresent_t";} - using parent_t = E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresent; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - sgNBPDCPpresent_t& select_sgNBPDCPpresent() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - sgNBPDCPpresent_t const* get_sgNBPDCPpresent() const { if(get_index() == 1) { return &var.as();} return nullptr; } - sgNBPDCPnotpresent_t& select_sgNBPDCPnotpresent() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - sgNBPDCPnotpresent_t const* get_sgNBPDCPnotpresent() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(sgNBPDCPpresent_t)]; - char dummy2[sizeof(sgNBPDCPnotpresent_t)]; - - }; - asn::variant var; - index_type index {0}; - }; - resource_configuration_t& ref_resource_configuration() {return resource_configuration;} - resource_configuration_t const& ref_resource_configuration() const {return resource_configuration;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(en_DC_ResourceConfiguration); - v(resource_configuration); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(en_DC_ResourceConfiguration); - v(resource_configuration); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - en_DC_ResourceConfiguration.clear(); - resource_configuration.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - en_DC_ResourceConfiguration_t en_DC_ResourceConfiguration; - resource_configuration_t resource_configuration; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-Admitted-ToBeReleased-SgNBModAck-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-Admitted-ToBeReleased-SgNBModAck-Item CRITICALITY ignore TYPE E-RABs-Admitted-ToReleased-SgNBModAck-Item PRESENCE mandatory} -} -*/ - -struct E_RABs_Admitted_ToBeReleased_SgNBModAck_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item() { set(id_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_Admitted_ToReleased_SgNBModAck_Item& select_id_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item() { return set(1); } - E_RABs_Admitted_ToReleased_SgNBModAck_Item const* get_id_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item() const { return get(1); } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item()); return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_Admitted_ToReleased_SgNBModAck_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-ToBeReleased-SgNBModAckList ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-Admitted-ToBeReleased-SgNBModAck-ItemIEs} } -*/ - -struct E_RABs_Admitted_ToBeReleased_SgNBModAckList_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_Admitted_ToBeReleased_SgNBModAckList_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_Admitted_ToBeReleased_SgNBModAckList : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeReleased-SgNBModAckList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-Admitted-ToBeReleased-SgNBRelReqAck-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-ToBeReleased-SgNBRelReqAck-Item ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - rlc-Mode-transferred RLCMode, - iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeReleased-SgNBRelReqAck-ItemExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeReleased-SgNBRelReqAck-Item";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct rlc_Mode_transferred_t : RLCMode - { - static constexpr const char* name() {return "rlc_Mode_transferred_t";} - using parent_t = RLCMode; - - }; - rlc_Mode_transferred_t& ref_rlc_Mode_transferred() {return rlc_Mode_transferred;} - rlc_Mode_transferred_t const& ref_rlc_Mode_transferred() const {return rlc_Mode_transferred;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(rlc_Mode_transferred); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(rlc_Mode_transferred); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - rlc_Mode_transferred.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - rlc_Mode_transferred_t rlc_Mode_transferred; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-Admitted-ToBeReleased-SgNBRelReqAck-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-Admitted-ToBeReleased-SgNBRelReqAck-Item CRITICALITY ignore TYPE E-RABs-Admitted-ToBeReleased-SgNBRelReqAck-Item PRESENCE mandatory}, - ... -} -*/ - -struct E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item() { set(id_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item& select_id_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item() { return set(1); } - E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item const* get_id_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-ToBeReleased-SgNBRelReqAckList ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF - ProtocolIE-Single-Container { {E-RABs-Admitted-ToBeReleased-SgNBRelReqAck-ItemIEs} } -*/ - -struct E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeReleased-SgNBRelReqAckList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresentExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPpresent ::= SEQUENCE { - iE-Extensions ProtocolExtensionContainer { {E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPpresentExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresent : asn::sequence<1, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPpresent";} - using parent_t = asn::sequence<1, 0, true, 1>; - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(iE_Extensions); - - }; - void clear() - { - iE_Extensions.clear(); - - }; - private: - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPnotpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-uLpDCPSnLength CRITICALITY ignore EXTENSION PDCPSnLength PRESENCE optional}| - { ID id-dLPDCPSnLength CRITICALITY ignore EXTENSION PDCPSnLength PRESENCE optional}, - ... -} -*/ - -struct E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresentExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_uLpDCPSnLength() { set(id_uLpDCPSnLength); type=1;} - void select_id_dLPDCPSnLength() { set(id_dLPDCPSnLength); type=2;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_uLpDCPSnLength)) { type = 1; return true; } - else if(equal(id_dLPDCPSnLength)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_uLpDCPSnLength);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_dLPDCPSnLength);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_uLpDCPSnLength() { set(ignore); type=1;} - void select_id_dLPDCPSnLength() { set(ignore); type=2;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - PDCPSnLength& select_id_uLpDCPSnLength() { return set(1); } - PDCPSnLength const* get_id_uLpDCPSnLength() const { return get(1); } - PDCPSnLength& select_id_dLPDCPSnLength() { return set(2); } - PDCPSnLength const* get_id_dLPDCPSnLength() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_uLpDCPSnLength()); return true; - case 2: v(select_id_dLPDCPSnLength()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(PDCPSnLength)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_uLpDCPSnLength() { set(optional); type=1;} - void select_id_dLPDCPSnLength() { set(optional); type=2;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPnotpresent ::= SEQUENCE { - secondary-meNB-UL-GTP-TEIDatPDCP GTPtunnelEndpoint OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPnotpresentExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresent : asn::sequence<2, 0, true, 2> -{ - static constexpr const char* name() {return "E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPnotpresent";} - using parent_t = asn::sequence<2, 0, true, 2>; - struct secondary_meNB_UL_GTP_TEIDatPDCP_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "secondary_meNB_UL_GTP_TEIDatPDCP_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - secondary_meNB_UL_GTP_TEIDatPDCP_t& set_secondary_meNB_UL_GTP_TEIDatPDCP() { secondary_meNB_UL_GTP_TEIDatPDCP.setpresent(true); return secondary_meNB_UL_GTP_TEIDatPDCP;} - secondary_meNB_UL_GTP_TEIDatPDCP_t const* get_secondary_meNB_UL_GTP_TEIDatPDCP() const {return secondary_meNB_UL_GTP_TEIDatPDCP.is_valid() ? &secondary_meNB_UL_GTP_TEIDatPDCP : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(secondary_meNB_UL_GTP_TEIDatPDCP); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(secondary_meNB_UL_GTP_TEIDatPDCP); - v(iE_Extensions); - - }; - void clear() - { - secondary_meNB_UL_GTP_TEIDatPDCP.clear(); - iE_Extensions.clear(); - - }; - private: - secondary_meNB_UL_GTP_TEIDatPDCP_t secondary_meNB_UL_GTP_TEIDatPDCP; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-AdmittedToBeModified-SgNBModConf-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_AdmittedToBeModified_SgNBModConf_ItemExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-AdmittedToBeModified-SgNBModConf-Item ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - en-DC-ResourceConfiguration EN-DC-ResourceConfiguration, - resource-configuration CHOICE { - sgNBPDCPpresent E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPpresent, - sgNBPDCPnotpresent E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPnotpresent, - ... - }, - iE-Extensions ProtocolExtensionContainer { {E-RABs-AdmittedToBeModified-SgNBModConf-ItemExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_AdmittedToBeModified_SgNBModConf_Item : asn::sequence<4, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-AdmittedToBeModified-SgNBModConf-Item";} - using parent_t = asn::sequence<4, 0, true, 1>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct en_DC_ResourceConfiguration_t : EN_DC_ResourceConfiguration - { - static constexpr const char* name() {return "en_DC_ResourceConfiguration_t";} - using parent_t = EN_DC_ResourceConfiguration; - - }; - en_DC_ResourceConfiguration_t& ref_en_DC_ResourceConfiguration() {return en_DC_ResourceConfiguration;} - en_DC_ResourceConfiguration_t const& ref_en_DC_ResourceConfiguration() const {return en_DC_ResourceConfiguration;} - struct resource_configuration_t : asn::choice<2, 0, true> - { - static constexpr const char* name() {return "resource_configuration_t";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~resource_configuration_t() {clear();} - struct sgNBPDCPpresent_t : E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresent - { - static constexpr const char* name() {return "sgNBPDCPpresent_t";} - using parent_t = E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresent; - - }; - struct sgNBPDCPnotpresent_t : E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresent - { - static constexpr const char* name() {return "sgNBPDCPnotpresent_t";} - using parent_t = E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresent; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - sgNBPDCPpresent_t& select_sgNBPDCPpresent() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - sgNBPDCPpresent_t const* get_sgNBPDCPpresent() const { if(get_index() == 1) { return &var.as();} return nullptr; } - sgNBPDCPnotpresent_t& select_sgNBPDCPnotpresent() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - sgNBPDCPnotpresent_t const* get_sgNBPDCPnotpresent() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(sgNBPDCPpresent_t)]; - char dummy2[sizeof(sgNBPDCPnotpresent_t)]; - - }; - asn::variant var; - index_type index {0}; - }; - resource_configuration_t& ref_resource_configuration() {return resource_configuration;} - resource_configuration_t const& ref_resource_configuration() const {return resource_configuration;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(en_DC_ResourceConfiguration); - v(resource_configuration); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(en_DC_ResourceConfiguration); - v(resource_configuration); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - en_DC_ResourceConfiguration.clear(); - resource_configuration.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - en_DC_ResourceConfiguration_t en_DC_ResourceConfiguration; - resource_configuration_t resource_configuration; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-AdmittedToBeModified-SgNBModConf-ItemIEs X2AP-PROTOCOL-IES ::= { -{ ID id-E-RABs-AdmittedToBeModified-SgNBModConf-Item CRITICALITY ignore TYPE E-RABs-AdmittedToBeModified-SgNBModConf-Item PRESENCE mandatory }, - ... -} -*/ - -struct E_RABs_AdmittedToBeModified_SgNBModConf_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_AdmittedToBeModified_SgNBModConf_Item() { set(id_E_RABs_AdmittedToBeModified_SgNBModConf_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_AdmittedToBeModified_SgNBModConf_Item)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_AdmittedToBeModified_SgNBModConf_Item);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_AdmittedToBeModified_SgNBModConf_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_AdmittedToBeModified_SgNBModConf_Item& select_id_E_RABs_AdmittedToBeModified_SgNBModConf_Item() { return set(1); } - E_RABs_AdmittedToBeModified_SgNBModConf_Item const* get_id_E_RABs_AdmittedToBeModified_SgNBModConf_Item() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_AdmittedToBeModified_SgNBModConf_Item()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_AdmittedToBeModified_SgNBModConf_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_AdmittedToBeModified_SgNBModConf_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-AdmittedToBeModified-SgNBModConfList ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container - { {E-RABs-AdmittedToBeModified-SgNBModConf-ItemIEs} } -*/ - -struct E_RABs_AdmittedToBeModified_SgNBModConfList_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_AdmittedToBeModified_SgNBModConfList_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_AdmittedToBeModified_SgNBModConfList : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-AdmittedToBeModified-SgNBModConfList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-SubjectToCounterCheckItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_SubjectToCounterCheckItemExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-SubjectToCounterCheckItem ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - uL-Count INTEGER (0..4294967295), - dL-Count INTEGER (0..4294967295), - iE-Extensions ProtocolExtensionContainer { {E-RABs-SubjectToCounterCheckItemExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_SubjectToCounterCheckItem : asn::sequence<4, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-SubjectToCounterCheckItem";} - using parent_t = asn::sequence<4, 0, true, 1>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct uL_Count_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "uL_Count_t";} - using parent_t = asn::integer<>; - - }; - - uL_Count_t& ref_uL_Count() {return uL_Count;} - uL_Count_t const& ref_uL_Count() const {return uL_Count;} - struct dL_Count_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "dL_Count_t";} - using parent_t = asn::integer<>; - - }; - - dL_Count_t& ref_dL_Count() {return dL_Count;} - dL_Count_t const& ref_dL_Count() const {return dL_Count;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(uL_Count); - v(dL_Count); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(uL_Count); - v(dL_Count); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - uL_Count.clear(); - dL_Count.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - uL_Count_t uL_Count; - dL_Count_t dL_Count; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-SubjectToCounterCheckItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-SubjectToCounterCheckItem CRITICALITY ignore TYPE E-RABs-SubjectToCounterCheckItem PRESENCE mandatory}, - ... -} -*/ - -struct E_RABs_SubjectToCounterCheckItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_SubjectToCounterCheckItem() { set(id_E_RABs_SubjectToCounterCheckItem); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_SubjectToCounterCheckItem)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_SubjectToCounterCheckItem);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_SubjectToCounterCheckItem() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_SubjectToCounterCheckItem& select_id_E_RABs_SubjectToCounterCheckItem() { return set(1); } - E_RABs_SubjectToCounterCheckItem const* get_id_E_RABs_SubjectToCounterCheckItem() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_SubjectToCounterCheckItem()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_SubjectToCounterCheckItem)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_SubjectToCounterCheckItem() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-SubjectToCounterCheck-List ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-SubjectToCounterCheckItemIEs} } -*/ - -struct E_RABs_SubjectToCounterCheck_List_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_SubjectToCounterCheck_List_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_SubjectToCounterCheck_List : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-SubjectToCounterCheck-List";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-SubjectToSgNBCounterCheck-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_SubjectToSgNBCounterCheck_ItemExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-SubjectToSgNBCounterCheck-Item ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - uL-Count INTEGER (0..4294967295), - dL-Count INTEGER (0..4294967295), - iE-Extensions ProtocolExtensionContainer { {E-RABs-SubjectToSgNBCounterCheck-ItemExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_SubjectToSgNBCounterCheck_Item : asn::sequence<4, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-SubjectToSgNBCounterCheck-Item";} - using parent_t = asn::sequence<4, 0, true, 1>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct uL_Count_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "uL_Count_t";} - using parent_t = asn::integer<>; - - }; - - uL_Count_t& ref_uL_Count() {return uL_Count;} - uL_Count_t const& ref_uL_Count() const {return uL_Count;} - struct dL_Count_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "dL_Count_t";} - using parent_t = asn::integer<>; - - }; - - dL_Count_t& ref_dL_Count() {return dL_Count;} - dL_Count_t const& ref_dL_Count() const {return dL_Count;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(uL_Count); - v(dL_Count); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(uL_Count); - v(dL_Count); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - uL_Count.clear(); - dL_Count.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - uL_Count_t uL_Count; - dL_Count_t dL_Count; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-SubjectToSgNBCounterCheck-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-SubjectToSgNBCounterCheck-Item CRITICALITY ignore TYPE E-RABs-SubjectToSgNBCounterCheck-Item PRESENCE mandatory}, - ... -} -*/ - -struct E_RABs_SubjectToSgNBCounterCheck_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_SubjectToSgNBCounterCheck_Item() { set(id_E_RABs_SubjectToSgNBCounterCheck_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_SubjectToSgNBCounterCheck_Item)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_SubjectToSgNBCounterCheck_Item);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_SubjectToSgNBCounterCheck_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_SubjectToSgNBCounterCheck_Item& select_id_E_RABs_SubjectToSgNBCounterCheck_Item() { return set(1); } - E_RABs_SubjectToSgNBCounterCheck_Item const* get_id_E_RABs_SubjectToSgNBCounterCheck_Item() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_SubjectToSgNBCounterCheck_Item()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_SubjectToSgNBCounterCheck_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_SubjectToSgNBCounterCheck_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-SubjectToSgNBCounterCheck-List ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-SubjectToSgNBCounterCheck-ItemIEs} } -*/ - -struct E_RABs_SubjectToSgNBCounterCheck_List_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_SubjectToSgNBCounterCheck_List_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_SubjectToSgNBCounterCheck_List : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-SubjectToSgNBCounterCheck-List";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-SubjectToStatusTransfer-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-ReceiveStatusOfULPDCPSDUsExtended CRITICALITY ignore EXTENSION ReceiveStatusOfULPDCPSDUsExtended PRESENCE optional}| - { ID id-ULCOUNTValueExtended CRITICALITY ignore EXTENSION COUNTValueExtended PRESENCE optional}| - { ID id-DLCOUNTValueExtended CRITICALITY ignore EXTENSION COUNTValueExtended PRESENCE optional}| - { ID id-ReceiveStatusOfULPDCPSDUsPDCP-SNlength18 CRITICALITY ignore EXTENSION ReceiveStatusOfULPDCPSDUsPDCP-SNlength18 PRESENCE optional}| - { ID id-ULCOUNTValuePDCP-SNlength18 CRITICALITY ignore EXTENSION COUNTvaluePDCP-SNlength18 PRESENCE optional}| - { ID id-DLCOUNTValuePDCP-SNlength18 CRITICALITY ignore EXTENSION COUNTvaluePDCP-SNlength18 PRESENCE optional}, - ... -} -*/ - -struct E_RABs_SubjectToStatusTransfer_ItemExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_ReceiveStatusOfULPDCPSDUsExtended() { set(id_ReceiveStatusOfULPDCPSDUsExtended); type=1;} - void select_id_ULCOUNTValueExtended() { set(id_ULCOUNTValueExtended); type=2;} - void select_id_DLCOUNTValueExtended() { set(id_DLCOUNTValueExtended); type=3;} - void select_id_ReceiveStatusOfULPDCPSDUsPDCP_SNlength18() { set(id_ReceiveStatusOfULPDCPSDUsPDCP_SNlength18); type=4;} - void select_id_ULCOUNTValuePDCP_SNlength18() { set(id_ULCOUNTValuePDCP_SNlength18); type=5;} - void select_id_DLCOUNTValuePDCP_SNlength18() { set(id_DLCOUNTValuePDCP_SNlength18); type=6;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_ReceiveStatusOfULPDCPSDUsExtended)) { type = 1; return true; } - else if(equal(id_ULCOUNTValueExtended)) { type = 2; return true; } - else if(equal(id_DLCOUNTValueExtended)) { type = 3; return true; } - else if(equal(id_ReceiveStatusOfULPDCPSDUsPDCP_SNlength18)) { type = 4; return true; } - else if(equal(id_ULCOUNTValuePDCP_SNlength18)) { type = 5; return true; } - else if(equal(id_DLCOUNTValuePDCP_SNlength18)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_ReceiveStatusOfULPDCPSDUsExtended);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_ULCOUNTValueExtended);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_DLCOUNTValueExtended);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_ReceiveStatusOfULPDCPSDUsPDCP_SNlength18);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_ULCOUNTValuePDCP_SNlength18);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_DLCOUNTValuePDCP_SNlength18);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_ReceiveStatusOfULPDCPSDUsExtended() { set(ignore); type=1;} - void select_id_ULCOUNTValueExtended() { set(ignore); type=2;} - void select_id_DLCOUNTValueExtended() { set(ignore); type=3;} - void select_id_ReceiveStatusOfULPDCPSDUsPDCP_SNlength18() { set(ignore); type=4;} - void select_id_ULCOUNTValuePDCP_SNlength18() { set(ignore); type=5;} - void select_id_DLCOUNTValuePDCP_SNlength18() { set(ignore); type=6;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else if(equal(ignore)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(ignore);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - ReceiveStatusOfULPDCPSDUsExtended& select_id_ReceiveStatusOfULPDCPSDUsExtended() { return set(1); } - ReceiveStatusOfULPDCPSDUsExtended const* get_id_ReceiveStatusOfULPDCPSDUsExtended() const { return get(1); } - COUNTValueExtended& select_id_ULCOUNTValueExtended() { return set(2); } - COUNTValueExtended const* get_id_ULCOUNTValueExtended() const { return get(2); } - COUNTValueExtended& select_id_DLCOUNTValueExtended() { return set(3); } - COUNTValueExtended const* get_id_DLCOUNTValueExtended() const { return get(3); } - ReceiveStatusOfULPDCPSDUsPDCP_SNlength18& select_id_ReceiveStatusOfULPDCPSDUsPDCP_SNlength18() { return set(4); } - ReceiveStatusOfULPDCPSDUsPDCP_SNlength18 const* get_id_ReceiveStatusOfULPDCPSDUsPDCP_SNlength18() const { return get(4); } - COUNTvaluePDCP_SNlength18& select_id_ULCOUNTValuePDCP_SNlength18() { return set(5); } - COUNTvaluePDCP_SNlength18 const* get_id_ULCOUNTValuePDCP_SNlength18() const { return get(5); } - COUNTvaluePDCP_SNlength18& select_id_DLCOUNTValuePDCP_SNlength18() { return set(6); } - COUNTvaluePDCP_SNlength18 const* get_id_DLCOUNTValuePDCP_SNlength18() const { return get(6); } - bool is_unknown() const { return type == 7; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_ReceiveStatusOfULPDCPSDUsExtended()); return true; - case 2: v(select_id_ULCOUNTValueExtended()); return true; - case 3: v(select_id_DLCOUNTValueExtended()); return true; - case 4: v(select_id_ReceiveStatusOfULPDCPSDUsPDCP_SNlength18()); return true; - case 5: v(select_id_ULCOUNTValuePDCP_SNlength18()); return true; - case 6: v(select_id_DLCOUNTValuePDCP_SNlength18()); return true; - case 7: if(type != 7) {clear(); asn::base::set();} type = 7; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(COUNTValueExtended)]; - char dummy2[sizeof(COUNTvaluePDCP_SNlength18)]; - char dummy3[sizeof(ReceiveStatusOfULPDCPSDUsExtended)]; - char dummy4[sizeof(ReceiveStatusOfULPDCPSDUsPDCP_SNlength18)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_ReceiveStatusOfULPDCPSDUsExtended() { set(optional); type=1;} - void select_id_ULCOUNTValueExtended() { set(optional); type=2;} - void select_id_DLCOUNTValueExtended() { set(optional); type=3;} - void select_id_ReceiveStatusOfULPDCPSDUsPDCP_SNlength18() { set(optional); type=4;} - void select_id_ULCOUNTValuePDCP_SNlength18() { set(optional); type=5;} - void select_id_DLCOUNTValuePDCP_SNlength18() { set(optional); type=6;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-SubjectToStatusTransfer-Item ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - - receiveStatusofULPDCPSDUs ReceiveStatusofULPDCPSDUs OPTIONAL, - uL-COUNTvalue COUNTvalue, - dL-COUNTvalue COUNTvalue, - iE-Extensions ProtocolExtensionContainer { {E-RABs-SubjectToStatusTransfer-ItemExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_SubjectToStatusTransfer_Item : asn::sequence<5, 0, true, 2> -{ - static constexpr const char* name() {return "E-RABs-SubjectToStatusTransfer-Item";} - using parent_t = asn::sequence<5, 0, true, 2>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct receiveStatusofULPDCPSDUs_t : ReceiveStatusofULPDCPSDUs - { - static constexpr const char* name() {return "receiveStatusofULPDCPSDUs_t";} - using parent_t = ReceiveStatusofULPDCPSDUs; - static constexpr bool optional = true; - - }; - receiveStatusofULPDCPSDUs_t& set_receiveStatusofULPDCPSDUs() { receiveStatusofULPDCPSDUs.setpresent(true); return receiveStatusofULPDCPSDUs;} - receiveStatusofULPDCPSDUs_t const* get_receiveStatusofULPDCPSDUs() const {return receiveStatusofULPDCPSDUs.is_valid() ? &receiveStatusofULPDCPSDUs : nullptr;} - struct uL_COUNTvalue_t : COUNTvalue - { - static constexpr const char* name() {return "uL_COUNTvalue_t";} - using parent_t = COUNTvalue; - - }; - uL_COUNTvalue_t& ref_uL_COUNTvalue() {return uL_COUNTvalue;} - uL_COUNTvalue_t const& ref_uL_COUNTvalue() const {return uL_COUNTvalue;} - struct dL_COUNTvalue_t : COUNTvalue - { - static constexpr const char* name() {return "dL_COUNTvalue_t";} - using parent_t = COUNTvalue; - - }; - dL_COUNTvalue_t& ref_dL_COUNTvalue() {return dL_COUNTvalue;} - dL_COUNTvalue_t const& ref_dL_COUNTvalue() const {return dL_COUNTvalue;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(receiveStatusofULPDCPSDUs); - v(uL_COUNTvalue); - v(dL_COUNTvalue); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(receiveStatusofULPDCPSDUs); - v(uL_COUNTvalue); - v(dL_COUNTvalue); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - receiveStatusofULPDCPSDUs.clear(); - uL_COUNTvalue.clear(); - dL_COUNTvalue.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - receiveStatusofULPDCPSDUs_t receiveStatusofULPDCPSDUs; - uL_COUNTvalue_t uL_COUNTvalue; - dL_COUNTvalue_t dL_COUNTvalue; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-SubjectToStatusTransfer-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-SubjectToStatusTransfer-Item CRITICALITY ignore TYPE E-RABs-SubjectToStatusTransfer-Item PRESENCE mandatory } -} -*/ - -struct E_RABs_SubjectToStatusTransfer_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_E_RABs_SubjectToStatusTransfer_Item() { set(id_E_RABs_SubjectToStatusTransfer_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_SubjectToStatusTransfer_Item)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_SubjectToStatusTransfer_Item);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_E_RABs_SubjectToStatusTransfer_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_SubjectToStatusTransfer_Item& select_id_E_RABs_SubjectToStatusTransfer_Item() { return set(1); } - E_RABs_SubjectToStatusTransfer_Item const* get_id_E_RABs_SubjectToStatusTransfer_Item() const { return get(1); } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_SubjectToStatusTransfer_Item()); return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_SubjectToStatusTransfer_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_E_RABs_SubjectToStatusTransfer_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-SubjectToStatusTransfer-List ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-SubjectToStatusTransfer-ItemIEs} } -*/ - -struct E_RABs_SubjectToStatusTransfer_List_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_SubjectToStatusTransfer_List_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_SubjectToStatusTransfer_List : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-SubjectToStatusTransfer-List";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-ToBeAdded-Item-SCG-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-Correlation-ID CRITICALITY ignore EXTENSION Correlation-ID PRESENCE optional}| - { ID id-SIPTO-Correlation-ID CRITICALITY ignore EXTENSION Correlation-ID PRESENCE optional}, - ... -} -*/ - -struct E_RABs_ToBeAdded_Item_SCG_BearerExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_Correlation_ID() { set(id_Correlation_ID); type=1;} - void select_id_SIPTO_Correlation_ID() { set(id_SIPTO_Correlation_ID); type=2;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_Correlation_ID)) { type = 1; return true; } - else if(equal(id_SIPTO_Correlation_ID)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_Correlation_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SIPTO_Correlation_ID);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_Correlation_ID() { set(ignore); type=1;} - void select_id_SIPTO_Correlation_ID() { set(ignore); type=2;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - Correlation_ID& select_id_Correlation_ID() { return set(1); } - Correlation_ID const* get_id_Correlation_ID() const { return get(1); } - Correlation_ID& select_id_SIPTO_Correlation_ID() { return set(2); } - Correlation_ID const* get_id_SIPTO_Correlation_ID() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_Correlation_ID()); return true; - case 2: v(select_id_SIPTO_Correlation_ID()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Correlation_ID)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_Correlation_ID() { set(optional); type=1;} - void select_id_SIPTO_Correlation_ID() { set(optional); type=2;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeAdded-Item-SCG-Bearer ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - e-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters, - dL-Forwarding DL-Forwarding OPTIONAL, - s1-UL-GTPtunnelEndpoint GTPtunnelEndpoint, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeAdded-Item-SCG-BearerExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeAdded_Item_SCG_Bearer : asn::sequence<5, 0, true, 2> -{ - static constexpr const char* name() {return "E-RABs-ToBeAdded-Item-SCG-Bearer";} - using parent_t = asn::sequence<5, 0, true, 2>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct e_RAB_Level_QoS_Parameters_t : E_RAB_Level_QoS_Parameters - { - static constexpr const char* name() {return "e_RAB_Level_QoS_Parameters_t";} - using parent_t = E_RAB_Level_QoS_Parameters; - - }; - e_RAB_Level_QoS_Parameters_t& ref_e_RAB_Level_QoS_Parameters() {return e_RAB_Level_QoS_Parameters;} - e_RAB_Level_QoS_Parameters_t const& ref_e_RAB_Level_QoS_Parameters() const {return e_RAB_Level_QoS_Parameters;} - struct dL_Forwarding_t : DL_Forwarding - { - static constexpr const char* name() {return "dL_Forwarding_t";} - using parent_t = DL_Forwarding; - static constexpr bool optional = true; - - }; - dL_Forwarding_t& set_dL_Forwarding() { dL_Forwarding.setpresent(true); return dL_Forwarding;} - dL_Forwarding_t const* get_dL_Forwarding() const {return dL_Forwarding.is_valid() ? &dL_Forwarding : nullptr;} - struct s1_UL_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "s1_UL_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - - }; - s1_UL_GTPtunnelEndpoint_t& ref_s1_UL_GTPtunnelEndpoint() {return s1_UL_GTPtunnelEndpoint;} - s1_UL_GTPtunnelEndpoint_t const& ref_s1_UL_GTPtunnelEndpoint() const {return s1_UL_GTPtunnelEndpoint;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(e_RAB_Level_QoS_Parameters); - v(dL_Forwarding); - v(s1_UL_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(e_RAB_Level_QoS_Parameters); - v(dL_Forwarding); - v(s1_UL_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - e_RAB_Level_QoS_Parameters.clear(); - dL_Forwarding.clear(); - s1_UL_GTPtunnelEndpoint.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - e_RAB_Level_QoS_Parameters_t e_RAB_Level_QoS_Parameters; - dL_Forwarding_t dL_Forwarding; - s1_UL_GTPtunnelEndpoint_t s1_UL_GTPtunnelEndpoint; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeAdded-Item-Split-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_ToBeAdded_Item_Split_BearerExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeAdded-Item-Split-Bearer ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - e-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters, - meNB-GTPtunnelEndpoint GTPtunnelEndpoint, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeAdded-Item-Split-BearerExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeAdded_Item_Split_Bearer : asn::sequence<4, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-ToBeAdded-Item-Split-Bearer";} - using parent_t = asn::sequence<4, 0, true, 1>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct e_RAB_Level_QoS_Parameters_t : E_RAB_Level_QoS_Parameters - { - static constexpr const char* name() {return "e_RAB_Level_QoS_Parameters_t";} - using parent_t = E_RAB_Level_QoS_Parameters; - - }; - e_RAB_Level_QoS_Parameters_t& ref_e_RAB_Level_QoS_Parameters() {return e_RAB_Level_QoS_Parameters;} - e_RAB_Level_QoS_Parameters_t const& ref_e_RAB_Level_QoS_Parameters() const {return e_RAB_Level_QoS_Parameters;} - struct meNB_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "meNB_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - - }; - meNB_GTPtunnelEndpoint_t& ref_meNB_GTPtunnelEndpoint() {return meNB_GTPtunnelEndpoint;} - meNB_GTPtunnelEndpoint_t const& ref_meNB_GTPtunnelEndpoint() const {return meNB_GTPtunnelEndpoint;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(e_RAB_Level_QoS_Parameters); - v(meNB_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(e_RAB_Level_QoS_Parameters); - v(meNB_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - e_RAB_Level_QoS_Parameters.clear(); - meNB_GTPtunnelEndpoint.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - e_RAB_Level_QoS_Parameters_t e_RAB_Level_QoS_Parameters; - meNB_GTPtunnelEndpoint_t meNB_GTPtunnelEndpoint; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeAdded-Item ::= CHOICE { - sCG-Bearer E-RABs-ToBeAdded-Item-SCG-Bearer, - split-Bearer E-RABs-ToBeAdded-Item-Split-Bearer, - ... -} -*/ - -struct E_RABs_ToBeAdded_Item : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "E-RABs-ToBeAdded-Item";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~E_RABs_ToBeAdded_Item() {clear();} - struct sCG_Bearer_t : E_RABs_ToBeAdded_Item_SCG_Bearer - { - static constexpr const char* name() {return "sCG_Bearer_t";} - using parent_t = E_RABs_ToBeAdded_Item_SCG_Bearer; - - }; - struct split_Bearer_t : E_RABs_ToBeAdded_Item_Split_Bearer - { - static constexpr const char* name() {return "split_Bearer_t";} - using parent_t = E_RABs_ToBeAdded_Item_Split_Bearer; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - sCG_Bearer_t& select_sCG_Bearer() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - sCG_Bearer_t const* get_sCG_Bearer() const { if(get_index() == 1) { return &var.as();} return nullptr; } - split_Bearer_t& select_split_Bearer() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - split_Bearer_t const* get_split_Bearer() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(sCG_Bearer_t)]; - char dummy2[sizeof(split_Bearer_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -E-RABs-ToBeAdded-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-ToBeAdded-Item CRITICALITY reject TYPE E-RABs-ToBeAdded-Item PRESENCE mandatory}, - ... -} -*/ - -struct E_RABs_ToBeAdded_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeAdded_Item() { set(id_E_RABs_ToBeAdded_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_ToBeAdded_Item)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_ToBeAdded_Item);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeAdded_Item() { set(reject); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_ToBeAdded_Item& select_id_E_RABs_ToBeAdded_Item() { return set(1); } - E_RABs_ToBeAdded_Item const* get_id_E_RABs_ToBeAdded_Item() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_ToBeAdded_Item()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_ToBeAdded_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeAdded_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeAdded-List ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeAdded-ItemIEs} } -*/ - -struct E_RABs_ToBeAdded_List_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_ToBeAdded_List_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_ToBeAdded_List : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-ToBeAdded-List";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-ToBeAdded-ModReqItem-SCG-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-Correlation-ID CRITICALITY ignore EXTENSION Correlation-ID PRESENCE optional}| - { ID id-SIPTO-Correlation-ID CRITICALITY ignore EXTENSION Correlation-ID PRESENCE optional}, - ... -} -*/ - -struct E_RABs_ToBeAdded_ModReqItem_SCG_BearerExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_Correlation_ID() { set(id_Correlation_ID); type=1;} - void select_id_SIPTO_Correlation_ID() { set(id_SIPTO_Correlation_ID); type=2;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_Correlation_ID)) { type = 1; return true; } - else if(equal(id_SIPTO_Correlation_ID)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_Correlation_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SIPTO_Correlation_ID);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_Correlation_ID() { set(ignore); type=1;} - void select_id_SIPTO_Correlation_ID() { set(ignore); type=2;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - Correlation_ID& select_id_Correlation_ID() { return set(1); } - Correlation_ID const* get_id_Correlation_ID() const { return get(1); } - Correlation_ID& select_id_SIPTO_Correlation_ID() { return set(2); } - Correlation_ID const* get_id_SIPTO_Correlation_ID() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_Correlation_ID()); return true; - case 2: v(select_id_SIPTO_Correlation_ID()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Correlation_ID)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_Correlation_ID() { set(optional); type=1;} - void select_id_SIPTO_Correlation_ID() { set(optional); type=2;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeAdded-ModReqItem-SCG-Bearer ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - e-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters, - dL-Forwarding DL-Forwarding OPTIONAL, - s1-UL-GTPtunnelEndpoint GTPtunnelEndpoint, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeAdded-ModReqItem-SCG-BearerExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeAdded_ModReqItem_SCG_Bearer : asn::sequence<5, 0, true, 2> -{ - static constexpr const char* name() {return "E-RABs-ToBeAdded-ModReqItem-SCG-Bearer";} - using parent_t = asn::sequence<5, 0, true, 2>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct e_RAB_Level_QoS_Parameters_t : E_RAB_Level_QoS_Parameters - { - static constexpr const char* name() {return "e_RAB_Level_QoS_Parameters_t";} - using parent_t = E_RAB_Level_QoS_Parameters; - - }; - e_RAB_Level_QoS_Parameters_t& ref_e_RAB_Level_QoS_Parameters() {return e_RAB_Level_QoS_Parameters;} - e_RAB_Level_QoS_Parameters_t const& ref_e_RAB_Level_QoS_Parameters() const {return e_RAB_Level_QoS_Parameters;} - struct dL_Forwarding_t : DL_Forwarding - { - static constexpr const char* name() {return "dL_Forwarding_t";} - using parent_t = DL_Forwarding; - static constexpr bool optional = true; - - }; - dL_Forwarding_t& set_dL_Forwarding() { dL_Forwarding.setpresent(true); return dL_Forwarding;} - dL_Forwarding_t const* get_dL_Forwarding() const {return dL_Forwarding.is_valid() ? &dL_Forwarding : nullptr;} - struct s1_UL_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "s1_UL_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - - }; - s1_UL_GTPtunnelEndpoint_t& ref_s1_UL_GTPtunnelEndpoint() {return s1_UL_GTPtunnelEndpoint;} - s1_UL_GTPtunnelEndpoint_t const& ref_s1_UL_GTPtunnelEndpoint() const {return s1_UL_GTPtunnelEndpoint;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(e_RAB_Level_QoS_Parameters); - v(dL_Forwarding); - v(s1_UL_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(e_RAB_Level_QoS_Parameters); - v(dL_Forwarding); - v(s1_UL_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - e_RAB_Level_QoS_Parameters.clear(); - dL_Forwarding.clear(); - s1_UL_GTPtunnelEndpoint.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - e_RAB_Level_QoS_Parameters_t e_RAB_Level_QoS_Parameters; - dL_Forwarding_t dL_Forwarding; - s1_UL_GTPtunnelEndpoint_t s1_UL_GTPtunnelEndpoint; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeAdded-ModReqItem-Split-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_ToBeAdded_ModReqItem_Split_BearerExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeAdded-ModReqItem-Split-Bearer ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - e-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters, - meNB-GTPtunnelEndpoint GTPtunnelEndpoint, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeAdded-ModReqItem-Split-BearerExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeAdded_ModReqItem_Split_Bearer : asn::sequence<4, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-ToBeAdded-ModReqItem-Split-Bearer";} - using parent_t = asn::sequence<4, 0, true, 1>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct e_RAB_Level_QoS_Parameters_t : E_RAB_Level_QoS_Parameters - { - static constexpr const char* name() {return "e_RAB_Level_QoS_Parameters_t";} - using parent_t = E_RAB_Level_QoS_Parameters; - - }; - e_RAB_Level_QoS_Parameters_t& ref_e_RAB_Level_QoS_Parameters() {return e_RAB_Level_QoS_Parameters;} - e_RAB_Level_QoS_Parameters_t const& ref_e_RAB_Level_QoS_Parameters() const {return e_RAB_Level_QoS_Parameters;} - struct meNB_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "meNB_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - - }; - meNB_GTPtunnelEndpoint_t& ref_meNB_GTPtunnelEndpoint() {return meNB_GTPtunnelEndpoint;} - meNB_GTPtunnelEndpoint_t const& ref_meNB_GTPtunnelEndpoint() const {return meNB_GTPtunnelEndpoint;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(e_RAB_Level_QoS_Parameters); - v(meNB_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(e_RAB_Level_QoS_Parameters); - v(meNB_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - e_RAB_Level_QoS_Parameters.clear(); - meNB_GTPtunnelEndpoint.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - e_RAB_Level_QoS_Parameters_t e_RAB_Level_QoS_Parameters; - meNB_GTPtunnelEndpoint_t meNB_GTPtunnelEndpoint; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeAdded-ModReqItem ::= CHOICE { - sCG-Bearer E-RABs-ToBeAdded-ModReqItem-SCG-Bearer, - split-Bearer E-RABs-ToBeAdded-ModReqItem-Split-Bearer, - ... -} -*/ - -struct E_RABs_ToBeAdded_ModReqItem : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "E-RABs-ToBeAdded-ModReqItem";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~E_RABs_ToBeAdded_ModReqItem() {clear();} - struct sCG_Bearer_t : E_RABs_ToBeAdded_ModReqItem_SCG_Bearer - { - static constexpr const char* name() {return "sCG_Bearer_t";} - using parent_t = E_RABs_ToBeAdded_ModReqItem_SCG_Bearer; - - }; - struct split_Bearer_t : E_RABs_ToBeAdded_ModReqItem_Split_Bearer - { - static constexpr const char* name() {return "split_Bearer_t";} - using parent_t = E_RABs_ToBeAdded_ModReqItem_Split_Bearer; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - sCG_Bearer_t& select_sCG_Bearer() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - sCG_Bearer_t const* get_sCG_Bearer() const { if(get_index() == 1) { return &var.as();} return nullptr; } - split_Bearer_t& select_split_Bearer() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - split_Bearer_t const* get_split_Bearer() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(sCG_Bearer_t)]; - char dummy2[sizeof(split_Bearer_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -E-RABs-ToBeAdded-ModReqItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-ToBeAdded-ModReqItem CRITICALITY ignore TYPE E-RABs-ToBeAdded-ModReqItem PRESENCE mandatory}, - ... -} -*/ - -struct E_RABs_ToBeAdded_ModReqItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeAdded_ModReqItem() { set(id_E_RABs_ToBeAdded_ModReqItem); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_ToBeAdded_ModReqItem)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_ToBeAdded_ModReqItem);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeAdded_ModReqItem() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_ToBeAdded_ModReqItem& select_id_E_RABs_ToBeAdded_ModReqItem() { return set(1); } - E_RABs_ToBeAdded_ModReqItem const* get_id_E_RABs_ToBeAdded_ModReqItem() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_ToBeAdded_ModReqItem()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_ToBeAdded_ModReqItem)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeAdded_ModReqItem() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeAdded-List-ModReq ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeAdded-ModReqItemIEs} } -*/ - -struct E_RABs_ToBeAdded_List_ModReq_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_ToBeAdded_List_ModReq_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_ToBeAdded_List_ModReq : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-ToBeAdded-List-ModReq";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-RLCMode-transferred CRITICALITY ignore EXTENSION RLCMode PRESENCE optional}, - ... -} -*/ - -struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresentExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RLCMode_transferred() { set(id_RLCMode_transferred); type=1;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_RLCMode_transferred)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_RLCMode_transferred);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RLCMode_transferred() { set(ignore); type=1;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - RLCMode& select_id_RLCMode_transferred() { return set(1); } - RLCMode const* get_id_RLCMode_transferred() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_RLCMode_transferred()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(RLCMode)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RLCMode_transferred() { set(optional); type=1;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPpresent ::= SEQUENCE { - full-E-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters, - max-MCG-admit-E-RAB-Level-QoS-Parameters GBR-QosInformation OPTIONAL, --- This IE shall be present if MCG resource and SCG resources IEs in the the EN-DC Resource Configuration IE are set to “present” and GBR QoS Information IE is present in Full E-RAB Level QoS Parameters IE -- - dL-Forwarding DL-Forwarding OPTIONAL, - meNB-DL-GTP-TEIDatMCG GTPtunnelEndpoint OPTIONAL, --- This IE shall be present if MCG resource IE in the the EN-DC Resource Configuration IE is set to “present” -- - s1-UL-GTPtunnelEndpoint GTPtunnelEndpoint, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPpresentExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresent : asn::sequence<6, 0, true, 4> -{ - static constexpr const char* name() {return "E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPpresent";} - using parent_t = asn::sequence<6, 0, true, 4>; - struct full_E_RAB_Level_QoS_Parameters_t : E_RAB_Level_QoS_Parameters - { - static constexpr const char* name() {return "full_E_RAB_Level_QoS_Parameters_t";} - using parent_t = E_RAB_Level_QoS_Parameters; - - }; - full_E_RAB_Level_QoS_Parameters_t& ref_full_E_RAB_Level_QoS_Parameters() {return full_E_RAB_Level_QoS_Parameters;} - full_E_RAB_Level_QoS_Parameters_t const& ref_full_E_RAB_Level_QoS_Parameters() const {return full_E_RAB_Level_QoS_Parameters;} - struct max_MCG_admit_E_RAB_Level_QoS_Parameters_t : GBR_QosInformation - { - static constexpr const char* name() {return "max_MCG_admit_E_RAB_Level_QoS_Parameters_t";} - using parent_t = GBR_QosInformation; - static constexpr bool optional = true; - - }; - max_MCG_admit_E_RAB_Level_QoS_Parameters_t& set_max_MCG_admit_E_RAB_Level_QoS_Parameters() { max_MCG_admit_E_RAB_Level_QoS_Parameters.setpresent(true); return max_MCG_admit_E_RAB_Level_QoS_Parameters;} - max_MCG_admit_E_RAB_Level_QoS_Parameters_t const* get_max_MCG_admit_E_RAB_Level_QoS_Parameters() const {return max_MCG_admit_E_RAB_Level_QoS_Parameters.is_valid() ? &max_MCG_admit_E_RAB_Level_QoS_Parameters : nullptr;} - struct dL_Forwarding_t : DL_Forwarding - { - static constexpr const char* name() {return "dL_Forwarding_t";} - using parent_t = DL_Forwarding; - static constexpr bool optional = true; - - }; - dL_Forwarding_t& set_dL_Forwarding() { dL_Forwarding.setpresent(true); return dL_Forwarding;} - dL_Forwarding_t const* get_dL_Forwarding() const {return dL_Forwarding.is_valid() ? &dL_Forwarding : nullptr;} - struct meNB_DL_GTP_TEIDatMCG_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "meNB_DL_GTP_TEIDatMCG_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - meNB_DL_GTP_TEIDatMCG_t& set_meNB_DL_GTP_TEIDatMCG() { meNB_DL_GTP_TEIDatMCG.setpresent(true); return meNB_DL_GTP_TEIDatMCG;} - meNB_DL_GTP_TEIDatMCG_t const* get_meNB_DL_GTP_TEIDatMCG() const {return meNB_DL_GTP_TEIDatMCG.is_valid() ? &meNB_DL_GTP_TEIDatMCG : nullptr;} - struct s1_UL_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "s1_UL_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - - }; - s1_UL_GTPtunnelEndpoint_t& ref_s1_UL_GTPtunnelEndpoint() {return s1_UL_GTPtunnelEndpoint;} - s1_UL_GTPtunnelEndpoint_t const& ref_s1_UL_GTPtunnelEndpoint() const {return s1_UL_GTPtunnelEndpoint;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(full_E_RAB_Level_QoS_Parameters); - v(max_MCG_admit_E_RAB_Level_QoS_Parameters); - v(dL_Forwarding); - v(meNB_DL_GTP_TEIDatMCG); - v(s1_UL_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(full_E_RAB_Level_QoS_Parameters); - v(max_MCG_admit_E_RAB_Level_QoS_Parameters); - v(dL_Forwarding); - v(meNB_DL_GTP_TEIDatMCG); - v(s1_UL_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - void clear() - { - full_E_RAB_Level_QoS_Parameters.clear(); - max_MCG_admit_E_RAB_Level_QoS_Parameters.clear(); - dL_Forwarding.clear(); - meNB_DL_GTP_TEIDatMCG.clear(); - s1_UL_GTPtunnelEndpoint.clear(); - iE_Extensions.clear(); - - }; - private: - full_E_RAB_Level_QoS_Parameters_t full_E_RAB_Level_QoS_Parameters; - max_MCG_admit_E_RAB_Level_QoS_Parameters_t max_MCG_admit_E_RAB_Level_QoS_Parameters; - dL_Forwarding_t dL_Forwarding; - meNB_DL_GTP_TEIDatMCG_t meNB_DL_GTP_TEIDatMCG; - s1_UL_GTPtunnelEndpoint_t s1_UL_GTPtunnelEndpoint; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPnotpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-uLpDCPSnLength CRITICALITY ignore EXTENSION PDCPSnLength PRESENCE optional}| - { ID id-dLPDCPSnLength CRITICALITY ignore EXTENSION PDCPSnLength PRESENCE optional}| - { ID id-duplicationActivation CRITICALITY ignore EXTENSION DuplicationActivation PRESENCE optional}, - ... -} -*/ - -struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresentExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_uLpDCPSnLength() { set(id_uLpDCPSnLength); type=1;} - void select_id_dLPDCPSnLength() { set(id_dLPDCPSnLength); type=2;} - void select_id_duplicationActivation() { set(id_duplicationActivation); type=3;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_uLpDCPSnLength)) { type = 1; return true; } - else if(equal(id_dLPDCPSnLength)) { type = 2; return true; } - else if(equal(id_duplicationActivation)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_uLpDCPSnLength);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_dLPDCPSnLength);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_duplicationActivation);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_uLpDCPSnLength() { set(ignore); type=1;} - void select_id_dLPDCPSnLength() { set(ignore); type=2;} - void select_id_duplicationActivation() { set(ignore); type=3;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - PDCPSnLength& select_id_uLpDCPSnLength() { return set(1); } - PDCPSnLength const* get_id_uLpDCPSnLength() const { return get(1); } - PDCPSnLength& select_id_dLPDCPSnLength() { return set(2); } - PDCPSnLength const* get_id_dLPDCPSnLength() const { return get(2); } - DuplicationActivation& select_id_duplicationActivation() { return set(3); } - DuplicationActivation const* get_id_duplicationActivation() const { return get(3); } - bool is_unknown() const { return type == 4; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_uLpDCPSnLength()); return true; - case 2: v(select_id_dLPDCPSnLength()); return true; - case 3: v(select_id_duplicationActivation()); return true; - case 4: if(type != 4) {clear(); asn::base::set();} type = 4; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(DuplicationActivation)]; - char dummy2[sizeof(PDCPSnLength)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_uLpDCPSnLength() { set(optional); type=1;} - void select_id_dLPDCPSnLength() { set(optional); type=2;} - void select_id_duplicationActivation() { set(optional); type=3;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPnotpresent ::= SEQUENCE { - requested-SCG-E-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters, - meNB-UL-GTP-TEIDatPDCP GTPtunnelEndpoint, - secondary-meNB-UL-GTP-TEIDatPDCP GTPtunnelEndpoint OPTIONAL, - rlc-Mode RLCMode, - uL-Configuration ULConfiguration OPTIONAL, --- This IE shall be present if MCG resource and SCG resources IEs in the the EN-DC Resource Configuration IE are set to “present” -- - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPnotpresentExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresent : asn::sequence<6, 0, true, 3> -{ - static constexpr const char* name() {return "E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPnotpresent";} - using parent_t = asn::sequence<6, 0, true, 3>; - struct requested_SCG_E_RAB_Level_QoS_Parameters_t : E_RAB_Level_QoS_Parameters - { - static constexpr const char* name() {return "requested_SCG_E_RAB_Level_QoS_Parameters_t";} - using parent_t = E_RAB_Level_QoS_Parameters; - - }; - requested_SCG_E_RAB_Level_QoS_Parameters_t& ref_requested_SCG_E_RAB_Level_QoS_Parameters() {return requested_SCG_E_RAB_Level_QoS_Parameters;} - requested_SCG_E_RAB_Level_QoS_Parameters_t const& ref_requested_SCG_E_RAB_Level_QoS_Parameters() const {return requested_SCG_E_RAB_Level_QoS_Parameters;} - struct meNB_UL_GTP_TEIDatPDCP_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "meNB_UL_GTP_TEIDatPDCP_t";} - using parent_t = GTPtunnelEndpoint; - - }; - meNB_UL_GTP_TEIDatPDCP_t& ref_meNB_UL_GTP_TEIDatPDCP() {return meNB_UL_GTP_TEIDatPDCP;} - meNB_UL_GTP_TEIDatPDCP_t const& ref_meNB_UL_GTP_TEIDatPDCP() const {return meNB_UL_GTP_TEIDatPDCP;} - struct secondary_meNB_UL_GTP_TEIDatPDCP_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "secondary_meNB_UL_GTP_TEIDatPDCP_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - secondary_meNB_UL_GTP_TEIDatPDCP_t& set_secondary_meNB_UL_GTP_TEIDatPDCP() { secondary_meNB_UL_GTP_TEIDatPDCP.setpresent(true); return secondary_meNB_UL_GTP_TEIDatPDCP;} - secondary_meNB_UL_GTP_TEIDatPDCP_t const* get_secondary_meNB_UL_GTP_TEIDatPDCP() const {return secondary_meNB_UL_GTP_TEIDatPDCP.is_valid() ? &secondary_meNB_UL_GTP_TEIDatPDCP : nullptr;} - struct rlc_Mode_t : RLCMode - { - static constexpr const char* name() {return "rlc_Mode_t";} - using parent_t = RLCMode; - - }; - rlc_Mode_t& ref_rlc_Mode() {return rlc_Mode;} - rlc_Mode_t const& ref_rlc_Mode() const {return rlc_Mode;} - struct uL_Configuration_t : ULConfiguration - { - static constexpr const char* name() {return "uL_Configuration_t";} - using parent_t = ULConfiguration; - static constexpr bool optional = true; - - }; - uL_Configuration_t& set_uL_Configuration() { uL_Configuration.setpresent(true); return uL_Configuration;} - uL_Configuration_t const* get_uL_Configuration() const {return uL_Configuration.is_valid() ? &uL_Configuration : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(requested_SCG_E_RAB_Level_QoS_Parameters); - v(meNB_UL_GTP_TEIDatPDCP); - v(secondary_meNB_UL_GTP_TEIDatPDCP); - v(rlc_Mode); - v(uL_Configuration); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(requested_SCG_E_RAB_Level_QoS_Parameters); - v(meNB_UL_GTP_TEIDatPDCP); - v(secondary_meNB_UL_GTP_TEIDatPDCP); - v(rlc_Mode); - v(uL_Configuration); - v(iE_Extensions); - - }; - void clear() - { - requested_SCG_E_RAB_Level_QoS_Parameters.clear(); - meNB_UL_GTP_TEIDatPDCP.clear(); - secondary_meNB_UL_GTP_TEIDatPDCP.clear(); - rlc_Mode.clear(); - uL_Configuration.clear(); - iE_Extensions.clear(); - - }; - private: - requested_SCG_E_RAB_Level_QoS_Parameters_t requested_SCG_E_RAB_Level_QoS_Parameters; - meNB_UL_GTP_TEIDatPDCP_t meNB_UL_GTP_TEIDatPDCP; - secondary_meNB_UL_GTP_TEIDatPDCP_t secondary_meNB_UL_GTP_TEIDatPDCP; - rlc_Mode_t rlc_Mode; - uL_Configuration_t uL_Configuration; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeAdded-SgNBAddReq-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_ToBeAdded_SgNBAddReq_ItemExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeAdded-SgNBAddReq-Item ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - drb-ID DRB-ID, - en-DC-ResourceConfiguration EN-DC-ResourceConfiguration, - resource-configuration CHOICE { - sgNBPDCPpresent E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPpresent, - sgNBPDCPnotpresent E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPnotpresent, - ... - }, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeAdded-SgNBAddReq-ItemExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeAdded_SgNBAddReq_Item : asn::sequence<5, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-ToBeAdded-SgNBAddReq-Item";} - using parent_t = asn::sequence<5, 0, true, 1>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct drb_ID_t : DRB_ID - { - static constexpr const char* name() {return "drb_ID_t";} - using parent_t = DRB_ID; - - }; - drb_ID_t& ref_drb_ID() {return drb_ID;} - drb_ID_t const& ref_drb_ID() const {return drb_ID;} - struct en_DC_ResourceConfiguration_t : EN_DC_ResourceConfiguration - { - static constexpr const char* name() {return "en_DC_ResourceConfiguration_t";} - using parent_t = EN_DC_ResourceConfiguration; - - }; - en_DC_ResourceConfiguration_t& ref_en_DC_ResourceConfiguration() {return en_DC_ResourceConfiguration;} - en_DC_ResourceConfiguration_t const& ref_en_DC_ResourceConfiguration() const {return en_DC_ResourceConfiguration;} - struct resource_configuration_t : asn::choice<2, 0, true> - { - static constexpr const char* name() {return "resource_configuration_t";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~resource_configuration_t() {clear();} - struct sgNBPDCPpresent_t : E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresent - { - static constexpr const char* name() {return "sgNBPDCPpresent_t";} - using parent_t = E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresent; - - }; - struct sgNBPDCPnotpresent_t : E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresent - { - static constexpr const char* name() {return "sgNBPDCPnotpresent_t";} - using parent_t = E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresent; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - sgNBPDCPpresent_t& select_sgNBPDCPpresent() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - sgNBPDCPpresent_t const* get_sgNBPDCPpresent() const { if(get_index() == 1) { return &var.as();} return nullptr; } - sgNBPDCPnotpresent_t& select_sgNBPDCPnotpresent() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - sgNBPDCPnotpresent_t const* get_sgNBPDCPnotpresent() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(sgNBPDCPpresent_t)]; - char dummy2[sizeof(sgNBPDCPnotpresent_t)]; - - }; - asn::variant var; - index_type index {0}; - }; - resource_configuration_t& ref_resource_configuration() {return resource_configuration;} - resource_configuration_t const& ref_resource_configuration() const {return resource_configuration;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(drb_ID); - v(en_DC_ResourceConfiguration); - v(resource_configuration); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(drb_ID); - v(en_DC_ResourceConfiguration); - v(resource_configuration); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - drb_ID.clear(); - en_DC_ResourceConfiguration.clear(); - resource_configuration.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - drb_ID_t drb_ID; - en_DC_ResourceConfiguration_t en_DC_ResourceConfiguration; - resource_configuration_t resource_configuration; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeAdded-SgNBAddReq-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-ToBeAdded-SgNBAddReq-Item CRITICALITY reject TYPE E-RABs-ToBeAdded-SgNBAddReq-Item PRESENCE mandatory}, - ... -} -*/ - -struct E_RABs_ToBeAdded_SgNBAddReq_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeAdded_SgNBAddReq_Item() { set(id_E_RABs_ToBeAdded_SgNBAddReq_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_ToBeAdded_SgNBAddReq_Item)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_ToBeAdded_SgNBAddReq_Item);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeAdded_SgNBAddReq_Item() { set(reject); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_ToBeAdded_SgNBAddReq_Item& select_id_E_RABs_ToBeAdded_SgNBAddReq_Item() { return set(1); } - E_RABs_ToBeAdded_SgNBAddReq_Item const* get_id_E_RABs_ToBeAdded_SgNBAddReq_Item() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_ToBeAdded_SgNBAddReq_Item()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_ToBeAdded_SgNBAddReq_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeAdded_SgNBAddReq_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeAdded-SgNBAddReqList ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeAdded-SgNBAddReq-ItemIEs} } -*/ - -struct E_RABs_ToBeAdded_SgNBAddReqList_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_ToBeAdded_SgNBAddReqList_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_ToBeAdded_SgNBAddReqList : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-ToBeAdded-SgNBAddReqList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-RLCMode-transferred CRITICALITY ignore EXTENSION RLCMode PRESENCE optional}, - ... -} -*/ - -struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresentExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RLCMode_transferred() { set(id_RLCMode_transferred); type=1;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_RLCMode_transferred)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_RLCMode_transferred);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RLCMode_transferred() { set(ignore); type=1;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - RLCMode& select_id_RLCMode_transferred() { return set(1); } - RLCMode const* get_id_RLCMode_transferred() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_RLCMode_transferred()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(RLCMode)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RLCMode_transferred() { set(optional); type=1;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPpresent ::= SEQUENCE { - full-E-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters, - max-MN-admit-E-RAB-Level-QoS-Parameters GBR-QosInformation OPTIONAL, --- This IE shall be present if MCG resource and SCG resources IEs in the the EN-DC Resource Configuration IE are set to “present” and GBR QoS Information IE is present in Full E-RAB Level QoS Parameters IE -- - dL-Forwarding DL-Forwarding OPTIONAL, - meNB-DL-GTP-TEIDatMCG GTPtunnelEndpoint OPTIONAL, --- This IE shall be present if MCG resource IE in the the EN-DC Resource Configuration IE is set to “present” -- - s1-UL-GTPtunnelEndpoint GTPtunnelEndpoint, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPpresentExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresent : asn::sequence<6, 0, true, 4> -{ - static constexpr const char* name() {return "E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPpresent";} - using parent_t = asn::sequence<6, 0, true, 4>; - struct full_E_RAB_Level_QoS_Parameters_t : E_RAB_Level_QoS_Parameters - { - static constexpr const char* name() {return "full_E_RAB_Level_QoS_Parameters_t";} - using parent_t = E_RAB_Level_QoS_Parameters; - - }; - full_E_RAB_Level_QoS_Parameters_t& ref_full_E_RAB_Level_QoS_Parameters() {return full_E_RAB_Level_QoS_Parameters;} - full_E_RAB_Level_QoS_Parameters_t const& ref_full_E_RAB_Level_QoS_Parameters() const {return full_E_RAB_Level_QoS_Parameters;} - struct max_MN_admit_E_RAB_Level_QoS_Parameters_t : GBR_QosInformation - { - static constexpr const char* name() {return "max_MN_admit_E_RAB_Level_QoS_Parameters_t";} - using parent_t = GBR_QosInformation; - static constexpr bool optional = true; - - }; - max_MN_admit_E_RAB_Level_QoS_Parameters_t& set_max_MN_admit_E_RAB_Level_QoS_Parameters() { max_MN_admit_E_RAB_Level_QoS_Parameters.setpresent(true); return max_MN_admit_E_RAB_Level_QoS_Parameters;} - max_MN_admit_E_RAB_Level_QoS_Parameters_t const* get_max_MN_admit_E_RAB_Level_QoS_Parameters() const {return max_MN_admit_E_RAB_Level_QoS_Parameters.is_valid() ? &max_MN_admit_E_RAB_Level_QoS_Parameters : nullptr;} - struct dL_Forwarding_t : DL_Forwarding - { - static constexpr const char* name() {return "dL_Forwarding_t";} - using parent_t = DL_Forwarding; - static constexpr bool optional = true; - - }; - dL_Forwarding_t& set_dL_Forwarding() { dL_Forwarding.setpresent(true); return dL_Forwarding;} - dL_Forwarding_t const* get_dL_Forwarding() const {return dL_Forwarding.is_valid() ? &dL_Forwarding : nullptr;} - struct meNB_DL_GTP_TEIDatMCG_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "meNB_DL_GTP_TEIDatMCG_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - meNB_DL_GTP_TEIDatMCG_t& set_meNB_DL_GTP_TEIDatMCG() { meNB_DL_GTP_TEIDatMCG.setpresent(true); return meNB_DL_GTP_TEIDatMCG;} - meNB_DL_GTP_TEIDatMCG_t const* get_meNB_DL_GTP_TEIDatMCG() const {return meNB_DL_GTP_TEIDatMCG.is_valid() ? &meNB_DL_GTP_TEIDatMCG : nullptr;} - struct s1_UL_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "s1_UL_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - - }; - s1_UL_GTPtunnelEndpoint_t& ref_s1_UL_GTPtunnelEndpoint() {return s1_UL_GTPtunnelEndpoint;} - s1_UL_GTPtunnelEndpoint_t const& ref_s1_UL_GTPtunnelEndpoint() const {return s1_UL_GTPtunnelEndpoint;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(full_E_RAB_Level_QoS_Parameters); - v(max_MN_admit_E_RAB_Level_QoS_Parameters); - v(dL_Forwarding); - v(meNB_DL_GTP_TEIDatMCG); - v(s1_UL_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(full_E_RAB_Level_QoS_Parameters); - v(max_MN_admit_E_RAB_Level_QoS_Parameters); - v(dL_Forwarding); - v(meNB_DL_GTP_TEIDatMCG); - v(s1_UL_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - void clear() - { - full_E_RAB_Level_QoS_Parameters.clear(); - max_MN_admit_E_RAB_Level_QoS_Parameters.clear(); - dL_Forwarding.clear(); - meNB_DL_GTP_TEIDatMCG.clear(); - s1_UL_GTPtunnelEndpoint.clear(); - iE_Extensions.clear(); - - }; - private: - full_E_RAB_Level_QoS_Parameters_t full_E_RAB_Level_QoS_Parameters; - max_MN_admit_E_RAB_Level_QoS_Parameters_t max_MN_admit_E_RAB_Level_QoS_Parameters; - dL_Forwarding_t dL_Forwarding; - meNB_DL_GTP_TEIDatMCG_t meNB_DL_GTP_TEIDatMCG; - s1_UL_GTPtunnelEndpoint_t s1_UL_GTPtunnelEndpoint; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPnotpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-uLpDCPSnLength CRITICALITY ignore EXTENSION PDCPSnLength PRESENCE optional}| - { ID id-dLPDCPSnLength CRITICALITY ignore EXTENSION PDCPSnLength PRESENCE optional}| - { ID id-duplicationActivation CRITICALITY ignore EXTENSION DuplicationActivation PRESENCE optional}, - ... -} -*/ - -struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_uLpDCPSnLength() { set(id_uLpDCPSnLength); type=1;} - void select_id_dLPDCPSnLength() { set(id_dLPDCPSnLength); type=2;} - void select_id_duplicationActivation() { set(id_duplicationActivation); type=3;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_uLpDCPSnLength)) { type = 1; return true; } - else if(equal(id_dLPDCPSnLength)) { type = 2; return true; } - else if(equal(id_duplicationActivation)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_uLpDCPSnLength);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_dLPDCPSnLength);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_duplicationActivation);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_uLpDCPSnLength() { set(ignore); type=1;} - void select_id_dLPDCPSnLength() { set(ignore); type=2;} - void select_id_duplicationActivation() { set(ignore); type=3;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - PDCPSnLength& select_id_uLpDCPSnLength() { return set(1); } - PDCPSnLength const* get_id_uLpDCPSnLength() const { return get(1); } - PDCPSnLength& select_id_dLPDCPSnLength() { return set(2); } - PDCPSnLength const* get_id_dLPDCPSnLength() const { return get(2); } - DuplicationActivation& select_id_duplicationActivation() { return set(3); } - DuplicationActivation const* get_id_duplicationActivation() const { return get(3); } - bool is_unknown() const { return type == 4; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_uLpDCPSnLength()); return true; - case 2: v(select_id_dLPDCPSnLength()); return true; - case 3: v(select_id_duplicationActivation()); return true; - case 4: if(type != 4) {clear(); asn::base::set();} type = 4; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(DuplicationActivation)]; - char dummy2[sizeof(PDCPSnLength)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_uLpDCPSnLength() { set(optional); type=1;} - void select_id_dLPDCPSnLength() { set(optional); type=2;} - void select_id_duplicationActivation() { set(optional); type=3;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPnotpresent ::= SEQUENCE { - requested-SCG-E-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters, - meNB-UL-GTP-TEIDatPDCP GTPtunnelEndpoint, - secondary-meNB-UL-GTP-TEIDatPDCP GTPtunnelEndpoint OPTIONAL, - rlc-Mode RLCMode, - uL-Configuration ULConfiguration OPTIONAL, --- This IE shall be present if MCG resource and SCG resources IEs in the the EN-DC Resource Configuration IE are set to “present” -- - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPnotpresentExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresent : asn::sequence<6, 0, true, 3> -{ - static constexpr const char* name() {return "E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPnotpresent";} - using parent_t = asn::sequence<6, 0, true, 3>; - struct requested_SCG_E_RAB_Level_QoS_Parameters_t : E_RAB_Level_QoS_Parameters - { - static constexpr const char* name() {return "requested_SCG_E_RAB_Level_QoS_Parameters_t";} - using parent_t = E_RAB_Level_QoS_Parameters; - - }; - requested_SCG_E_RAB_Level_QoS_Parameters_t& ref_requested_SCG_E_RAB_Level_QoS_Parameters() {return requested_SCG_E_RAB_Level_QoS_Parameters;} - requested_SCG_E_RAB_Level_QoS_Parameters_t const& ref_requested_SCG_E_RAB_Level_QoS_Parameters() const {return requested_SCG_E_RAB_Level_QoS_Parameters;} - struct meNB_UL_GTP_TEIDatPDCP_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "meNB_UL_GTP_TEIDatPDCP_t";} - using parent_t = GTPtunnelEndpoint; - - }; - meNB_UL_GTP_TEIDatPDCP_t& ref_meNB_UL_GTP_TEIDatPDCP() {return meNB_UL_GTP_TEIDatPDCP;} - meNB_UL_GTP_TEIDatPDCP_t const& ref_meNB_UL_GTP_TEIDatPDCP() const {return meNB_UL_GTP_TEIDatPDCP;} - struct secondary_meNB_UL_GTP_TEIDatPDCP_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "secondary_meNB_UL_GTP_TEIDatPDCP_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - secondary_meNB_UL_GTP_TEIDatPDCP_t& set_secondary_meNB_UL_GTP_TEIDatPDCP() { secondary_meNB_UL_GTP_TEIDatPDCP.setpresent(true); return secondary_meNB_UL_GTP_TEIDatPDCP;} - secondary_meNB_UL_GTP_TEIDatPDCP_t const* get_secondary_meNB_UL_GTP_TEIDatPDCP() const {return secondary_meNB_UL_GTP_TEIDatPDCP.is_valid() ? &secondary_meNB_UL_GTP_TEIDatPDCP : nullptr;} - struct rlc_Mode_t : RLCMode - { - static constexpr const char* name() {return "rlc_Mode_t";} - using parent_t = RLCMode; - - }; - rlc_Mode_t& ref_rlc_Mode() {return rlc_Mode;} - rlc_Mode_t const& ref_rlc_Mode() const {return rlc_Mode;} - struct uL_Configuration_t : ULConfiguration - { - static constexpr const char* name() {return "uL_Configuration_t";} - using parent_t = ULConfiguration; - static constexpr bool optional = true; - - }; - uL_Configuration_t& set_uL_Configuration() { uL_Configuration.setpresent(true); return uL_Configuration;} - uL_Configuration_t const* get_uL_Configuration() const {return uL_Configuration.is_valid() ? &uL_Configuration : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(requested_SCG_E_RAB_Level_QoS_Parameters); - v(meNB_UL_GTP_TEIDatPDCP); - v(secondary_meNB_UL_GTP_TEIDatPDCP); - v(rlc_Mode); - v(uL_Configuration); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(requested_SCG_E_RAB_Level_QoS_Parameters); - v(meNB_UL_GTP_TEIDatPDCP); - v(secondary_meNB_UL_GTP_TEIDatPDCP); - v(rlc_Mode); - v(uL_Configuration); - v(iE_Extensions); - - }; - void clear() - { - requested_SCG_E_RAB_Level_QoS_Parameters.clear(); - meNB_UL_GTP_TEIDatPDCP.clear(); - secondary_meNB_UL_GTP_TEIDatPDCP.clear(); - rlc_Mode.clear(); - uL_Configuration.clear(); - iE_Extensions.clear(); - - }; - private: - requested_SCG_E_RAB_Level_QoS_Parameters_t requested_SCG_E_RAB_Level_QoS_Parameters; - meNB_UL_GTP_TEIDatPDCP_t meNB_UL_GTP_TEIDatPDCP; - secondary_meNB_UL_GTP_TEIDatPDCP_t secondary_meNB_UL_GTP_TEIDatPDCP; - rlc_Mode_t rlc_Mode; - uL_Configuration_t uL_Configuration; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeAdded-SgNBModReq-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_ToBeAdded_SgNBModReq_ItemExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeAdded-SgNBModReq-Item ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - drb-ID DRB-ID, - en-DC-ResourceConfiguration EN-DC-ResourceConfiguration, - resource-configuration CHOICE { - sgNBPDCPpresent E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPpresent, - sgNBPDCPnotpresent E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPnotpresent, - ... - }, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeAdded-SgNBModReq-ItemExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeAdded_SgNBModReq_Item : asn::sequence<5, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-ToBeAdded-SgNBModReq-Item";} - using parent_t = asn::sequence<5, 0, true, 1>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct drb_ID_t : DRB_ID - { - static constexpr const char* name() {return "drb_ID_t";} - using parent_t = DRB_ID; - - }; - drb_ID_t& ref_drb_ID() {return drb_ID;} - drb_ID_t const& ref_drb_ID() const {return drb_ID;} - struct en_DC_ResourceConfiguration_t : EN_DC_ResourceConfiguration - { - static constexpr const char* name() {return "en_DC_ResourceConfiguration_t";} - using parent_t = EN_DC_ResourceConfiguration; - - }; - en_DC_ResourceConfiguration_t& ref_en_DC_ResourceConfiguration() {return en_DC_ResourceConfiguration;} - en_DC_ResourceConfiguration_t const& ref_en_DC_ResourceConfiguration() const {return en_DC_ResourceConfiguration;} - struct resource_configuration_t : asn::choice<2, 0, true> - { - static constexpr const char* name() {return "resource_configuration_t";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~resource_configuration_t() {clear();} - struct sgNBPDCPpresent_t : E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresent - { - static constexpr const char* name() {return "sgNBPDCPpresent_t";} - using parent_t = E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresent; - - }; - struct sgNBPDCPnotpresent_t : E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresent - { - static constexpr const char* name() {return "sgNBPDCPnotpresent_t";} - using parent_t = E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresent; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - sgNBPDCPpresent_t& select_sgNBPDCPpresent() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - sgNBPDCPpresent_t const* get_sgNBPDCPpresent() const { if(get_index() == 1) { return &var.as();} return nullptr; } - sgNBPDCPnotpresent_t& select_sgNBPDCPnotpresent() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - sgNBPDCPnotpresent_t const* get_sgNBPDCPnotpresent() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(sgNBPDCPpresent_t)]; - char dummy2[sizeof(sgNBPDCPnotpresent_t)]; - - }; - asn::variant var; - index_type index {0}; - }; - resource_configuration_t& ref_resource_configuration() {return resource_configuration;} - resource_configuration_t const& ref_resource_configuration() const {return resource_configuration;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(drb_ID); - v(en_DC_ResourceConfiguration); - v(resource_configuration); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(drb_ID); - v(en_DC_ResourceConfiguration); - v(resource_configuration); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - drb_ID.clear(); - en_DC_ResourceConfiguration.clear(); - resource_configuration.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - drb_ID_t drb_ID; - en_DC_ResourceConfiguration_t en_DC_ResourceConfiguration; - resource_configuration_t resource_configuration; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeAdded-SgNBModReq-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-ToBeAdded-SgNBModReq-Item CRITICALITY ignore TYPE E-RABs-ToBeAdded-SgNBModReq-Item PRESENCE mandatory}, - ... -} -*/ - -struct E_RABs_ToBeAdded_SgNBModReq_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeAdded_SgNBModReq_Item() { set(id_E_RABs_ToBeAdded_SgNBModReq_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_ToBeAdded_SgNBModReq_Item)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_ToBeAdded_SgNBModReq_Item);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeAdded_SgNBModReq_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_ToBeAdded_SgNBModReq_Item& select_id_E_RABs_ToBeAdded_SgNBModReq_Item() { return set(1); } - E_RABs_ToBeAdded_SgNBModReq_Item const* get_id_E_RABs_ToBeAdded_SgNBModReq_Item() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_ToBeAdded_SgNBModReq_Item()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_ToBeAdded_SgNBModReq_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeAdded_SgNBModReq_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeAdded-SgNBModReq-List ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeAdded-SgNBModReq-ItemIEs} } -*/ - -struct E_RABs_ToBeAdded_SgNBModReq_List_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_ToBeAdded_SgNBModReq_List_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_ToBeAdded_SgNBModReq_List : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-ToBeAdded-SgNBModReq-List";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-ToBeModified-ModReqItem-SCG-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_ToBeModified_ModReqItem_SCG_BearerExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeModified-ModReqItem-SCG-Bearer ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - e-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters OPTIONAL, - s1-UL-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeModified-ModReqItem-SCG-BearerExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeModified_ModReqItem_SCG_Bearer : asn::sequence<4, 0, true, 3> -{ - static constexpr const char* name() {return "E-RABs-ToBeModified-ModReqItem-SCG-Bearer";} - using parent_t = asn::sequence<4, 0, true, 3>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct e_RAB_Level_QoS_Parameters_t : E_RAB_Level_QoS_Parameters - { - static constexpr const char* name() {return "e_RAB_Level_QoS_Parameters_t";} - using parent_t = E_RAB_Level_QoS_Parameters; - static constexpr bool optional = true; - - }; - e_RAB_Level_QoS_Parameters_t& set_e_RAB_Level_QoS_Parameters() { e_RAB_Level_QoS_Parameters.setpresent(true); return e_RAB_Level_QoS_Parameters;} - e_RAB_Level_QoS_Parameters_t const* get_e_RAB_Level_QoS_Parameters() const {return e_RAB_Level_QoS_Parameters.is_valid() ? &e_RAB_Level_QoS_Parameters : nullptr;} - struct s1_UL_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "s1_UL_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - s1_UL_GTPtunnelEndpoint_t& set_s1_UL_GTPtunnelEndpoint() { s1_UL_GTPtunnelEndpoint.setpresent(true); return s1_UL_GTPtunnelEndpoint;} - s1_UL_GTPtunnelEndpoint_t const* get_s1_UL_GTPtunnelEndpoint() const {return s1_UL_GTPtunnelEndpoint.is_valid() ? &s1_UL_GTPtunnelEndpoint : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(e_RAB_Level_QoS_Parameters); - v(s1_UL_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(e_RAB_Level_QoS_Parameters); - v(s1_UL_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - e_RAB_Level_QoS_Parameters.clear(); - s1_UL_GTPtunnelEndpoint.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - e_RAB_Level_QoS_Parameters_t e_RAB_Level_QoS_Parameters; - s1_UL_GTPtunnelEndpoint_t s1_UL_GTPtunnelEndpoint; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeModified-ModReqItem-Split-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_ToBeModified_ModReqItem_Split_BearerExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeModified-ModReqItem-Split-Bearer ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - e-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters OPTIONAL, - meNB-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeModified-ModReqItem-Split-BearerExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeModified_ModReqItem_Split_Bearer : asn::sequence<4, 0, true, 3> -{ - static constexpr const char* name() {return "E-RABs-ToBeModified-ModReqItem-Split-Bearer";} - using parent_t = asn::sequence<4, 0, true, 3>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct e_RAB_Level_QoS_Parameters_t : E_RAB_Level_QoS_Parameters - { - static constexpr const char* name() {return "e_RAB_Level_QoS_Parameters_t";} - using parent_t = E_RAB_Level_QoS_Parameters; - static constexpr bool optional = true; - - }; - e_RAB_Level_QoS_Parameters_t& set_e_RAB_Level_QoS_Parameters() { e_RAB_Level_QoS_Parameters.setpresent(true); return e_RAB_Level_QoS_Parameters;} - e_RAB_Level_QoS_Parameters_t const* get_e_RAB_Level_QoS_Parameters() const {return e_RAB_Level_QoS_Parameters.is_valid() ? &e_RAB_Level_QoS_Parameters : nullptr;} - struct meNB_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "meNB_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - meNB_GTPtunnelEndpoint_t& set_meNB_GTPtunnelEndpoint() { meNB_GTPtunnelEndpoint.setpresent(true); return meNB_GTPtunnelEndpoint;} - meNB_GTPtunnelEndpoint_t const* get_meNB_GTPtunnelEndpoint() const {return meNB_GTPtunnelEndpoint.is_valid() ? &meNB_GTPtunnelEndpoint : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(e_RAB_Level_QoS_Parameters); - v(meNB_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(e_RAB_Level_QoS_Parameters); - v(meNB_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - e_RAB_Level_QoS_Parameters.clear(); - meNB_GTPtunnelEndpoint.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - e_RAB_Level_QoS_Parameters_t e_RAB_Level_QoS_Parameters; - meNB_GTPtunnelEndpoint_t meNB_GTPtunnelEndpoint; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeModified-ModReqItem ::= CHOICE { - sCG-Bearer E-RABs-ToBeModified-ModReqItem-SCG-Bearer, - split-Bearer E-RABs-ToBeModified-ModReqItem-Split-Bearer, - ... -} -*/ - -struct E_RABs_ToBeModified_ModReqItem : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "E-RABs-ToBeModified-ModReqItem";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~E_RABs_ToBeModified_ModReqItem() {clear();} - struct sCG_Bearer_t : E_RABs_ToBeModified_ModReqItem_SCG_Bearer - { - static constexpr const char* name() {return "sCG_Bearer_t";} - using parent_t = E_RABs_ToBeModified_ModReqItem_SCG_Bearer; - - }; - struct split_Bearer_t : E_RABs_ToBeModified_ModReqItem_Split_Bearer - { - static constexpr const char* name() {return "split_Bearer_t";} - using parent_t = E_RABs_ToBeModified_ModReqItem_Split_Bearer; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - sCG_Bearer_t& select_sCG_Bearer() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - sCG_Bearer_t const* get_sCG_Bearer() const { if(get_index() == 1) { return &var.as();} return nullptr; } - split_Bearer_t& select_split_Bearer() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - split_Bearer_t const* get_split_Bearer() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(sCG_Bearer_t)]; - char dummy2[sizeof(split_Bearer_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -E-RABs-ToBeModified-ModReqItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-ToBeModified-ModReqItem CRITICALITY ignore TYPE E-RABs-ToBeModified-ModReqItem PRESENCE mandatory}, - ... -} -*/ - -struct E_RABs_ToBeModified_ModReqItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeModified_ModReqItem() { set(id_E_RABs_ToBeModified_ModReqItem); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_ToBeModified_ModReqItem)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_ToBeModified_ModReqItem);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeModified_ModReqItem() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_ToBeModified_ModReqItem& select_id_E_RABs_ToBeModified_ModReqItem() { return set(1); } - E_RABs_ToBeModified_ModReqItem const* get_id_E_RABs_ToBeModified_ModReqItem() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_ToBeModified_ModReqItem()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_ToBeModified_ModReqItem)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeModified_ModReqItem() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeModified-List-ModReq ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeModified-ModReqItemIEs} } -*/ - -struct E_RABs_ToBeModified_List_ModReq_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_ToBeModified_List_ModReq_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_ToBeModified_List_ModReq : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-ToBeModified-List-ModReq";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-RLC-Status CRITICALITY ignore EXTENSION RLC-Status PRESENCE optional }, - ... -} -*/ - -struct E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresentExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RLC_Status() { set(id_RLC_Status); type=1;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_RLC_Status)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_RLC_Status);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RLC_Status() { set(ignore); type=1;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - RLC_Status& select_id_RLC_Status() { return set(1); } - RLC_Status const* get_id_RLC_Status() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_RLC_Status()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(RLC_Status)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RLC_Status() { set(optional); type=1;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPpresent ::= SEQUENCE { - full-E-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters OPTIONAL, - max-MN-admit-E-RAB-Level-QoS-Parameters GBR-QosInformation OPTIONAL, - meNB-DL-GTP-TEIDatMCG GTPtunnelEndpoint OPTIONAL, - s1-UL-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPpresentExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresent : asn::sequence<5, 0, true, 5> -{ - static constexpr const char* name() {return "E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPpresent";} - using parent_t = asn::sequence<5, 0, true, 5>; - struct full_E_RAB_Level_QoS_Parameters_t : E_RAB_Level_QoS_Parameters - { - static constexpr const char* name() {return "full_E_RAB_Level_QoS_Parameters_t";} - using parent_t = E_RAB_Level_QoS_Parameters; - static constexpr bool optional = true; - - }; - full_E_RAB_Level_QoS_Parameters_t& set_full_E_RAB_Level_QoS_Parameters() { full_E_RAB_Level_QoS_Parameters.setpresent(true); return full_E_RAB_Level_QoS_Parameters;} - full_E_RAB_Level_QoS_Parameters_t const* get_full_E_RAB_Level_QoS_Parameters() const {return full_E_RAB_Level_QoS_Parameters.is_valid() ? &full_E_RAB_Level_QoS_Parameters : nullptr;} - struct max_MN_admit_E_RAB_Level_QoS_Parameters_t : GBR_QosInformation - { - static constexpr const char* name() {return "max_MN_admit_E_RAB_Level_QoS_Parameters_t";} - using parent_t = GBR_QosInformation; - static constexpr bool optional = true; - - }; - max_MN_admit_E_RAB_Level_QoS_Parameters_t& set_max_MN_admit_E_RAB_Level_QoS_Parameters() { max_MN_admit_E_RAB_Level_QoS_Parameters.setpresent(true); return max_MN_admit_E_RAB_Level_QoS_Parameters;} - max_MN_admit_E_RAB_Level_QoS_Parameters_t const* get_max_MN_admit_E_RAB_Level_QoS_Parameters() const {return max_MN_admit_E_RAB_Level_QoS_Parameters.is_valid() ? &max_MN_admit_E_RAB_Level_QoS_Parameters : nullptr;} - struct meNB_DL_GTP_TEIDatMCG_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "meNB_DL_GTP_TEIDatMCG_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - meNB_DL_GTP_TEIDatMCG_t& set_meNB_DL_GTP_TEIDatMCG() { meNB_DL_GTP_TEIDatMCG.setpresent(true); return meNB_DL_GTP_TEIDatMCG;} - meNB_DL_GTP_TEIDatMCG_t const* get_meNB_DL_GTP_TEIDatMCG() const {return meNB_DL_GTP_TEIDatMCG.is_valid() ? &meNB_DL_GTP_TEIDatMCG : nullptr;} - struct s1_UL_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "s1_UL_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - s1_UL_GTPtunnelEndpoint_t& set_s1_UL_GTPtunnelEndpoint() { s1_UL_GTPtunnelEndpoint.setpresent(true); return s1_UL_GTPtunnelEndpoint;} - s1_UL_GTPtunnelEndpoint_t const* get_s1_UL_GTPtunnelEndpoint() const {return s1_UL_GTPtunnelEndpoint.is_valid() ? &s1_UL_GTPtunnelEndpoint : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(full_E_RAB_Level_QoS_Parameters); - v(max_MN_admit_E_RAB_Level_QoS_Parameters); - v(meNB_DL_GTP_TEIDatMCG); - v(s1_UL_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(full_E_RAB_Level_QoS_Parameters); - v(max_MN_admit_E_RAB_Level_QoS_Parameters); - v(meNB_DL_GTP_TEIDatMCG); - v(s1_UL_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - void clear() - { - full_E_RAB_Level_QoS_Parameters.clear(); - max_MN_admit_E_RAB_Level_QoS_Parameters.clear(); - meNB_DL_GTP_TEIDatMCG.clear(); - s1_UL_GTPtunnelEndpoint.clear(); - iE_Extensions.clear(); - - }; - private: - full_E_RAB_Level_QoS_Parameters_t full_E_RAB_Level_QoS_Parameters; - max_MN_admit_E_RAB_Level_QoS_Parameters_t max_MN_admit_E_RAB_Level_QoS_Parameters; - meNB_DL_GTP_TEIDatMCG_t meNB_DL_GTP_TEIDatMCG; - s1_UL_GTPtunnelEndpoint_t s1_UL_GTPtunnelEndpoint; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPnotpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-uLpDCPSnLength CRITICALITY ignore EXTENSION PDCPSnLength PRESENCE optional}| - { ID id-dLPDCPSnLength CRITICALITY ignore EXTENSION PDCPSnLength PRESENCE optional}| - { ID id-secondarymeNBULGTPTEIDatPDCP CRITICALITY ignore EXTENSION GTPtunnelEndpoint PRESENCE optional}, - ... -} -*/ - -struct E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_uLpDCPSnLength() { set(id_uLpDCPSnLength); type=1;} - void select_id_dLPDCPSnLength() { set(id_dLPDCPSnLength); type=2;} - void select_id_secondarymeNBULGTPTEIDatPDCP() { set(id_secondarymeNBULGTPTEIDatPDCP); type=3;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_uLpDCPSnLength)) { type = 1; return true; } - else if(equal(id_dLPDCPSnLength)) { type = 2; return true; } - else if(equal(id_secondarymeNBULGTPTEIDatPDCP)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_uLpDCPSnLength);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_dLPDCPSnLength);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_secondarymeNBULGTPTEIDatPDCP);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_uLpDCPSnLength() { set(ignore); type=1;} - void select_id_dLPDCPSnLength() { set(ignore); type=2;} - void select_id_secondarymeNBULGTPTEIDatPDCP() { set(ignore); type=3;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - PDCPSnLength& select_id_uLpDCPSnLength() { return set(1); } - PDCPSnLength const* get_id_uLpDCPSnLength() const { return get(1); } - PDCPSnLength& select_id_dLPDCPSnLength() { return set(2); } - PDCPSnLength const* get_id_dLPDCPSnLength() const { return get(2); } - GTPtunnelEndpoint& select_id_secondarymeNBULGTPTEIDatPDCP() { return set(3); } - GTPtunnelEndpoint const* get_id_secondarymeNBULGTPTEIDatPDCP() const { return get(3); } - bool is_unknown() const { return type == 4; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_uLpDCPSnLength()); return true; - case 2: v(select_id_dLPDCPSnLength()); return true; - case 3: v(select_id_secondarymeNBULGTPTEIDatPDCP()); return true; - case 4: if(type != 4) {clear(); asn::base::set();} type = 4; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(GTPtunnelEndpoint)]; - char dummy2[sizeof(PDCPSnLength)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_uLpDCPSnLength() { set(optional); type=1;} - void select_id_dLPDCPSnLength() { set(optional); type=2;} - void select_id_secondarymeNBULGTPTEIDatPDCP() { set(optional); type=3;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPnotpresent ::= SEQUENCE { - requested-SCG-E-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters OPTIONAL, - meNB-UL-GTP-TEIDatPDCP GTPtunnelEndpoint OPTIONAL, - uL-Configuration ULConfiguration OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPnotpresentExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresent : asn::sequence<4, 0, true, 4> -{ - static constexpr const char* name() {return "E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPnotpresent";} - using parent_t = asn::sequence<4, 0, true, 4>; - struct requested_SCG_E_RAB_Level_QoS_Parameters_t : E_RAB_Level_QoS_Parameters - { - static constexpr const char* name() {return "requested_SCG_E_RAB_Level_QoS_Parameters_t";} - using parent_t = E_RAB_Level_QoS_Parameters; - static constexpr bool optional = true; - - }; - requested_SCG_E_RAB_Level_QoS_Parameters_t& set_requested_SCG_E_RAB_Level_QoS_Parameters() { requested_SCG_E_RAB_Level_QoS_Parameters.setpresent(true); return requested_SCG_E_RAB_Level_QoS_Parameters;} - requested_SCG_E_RAB_Level_QoS_Parameters_t const* get_requested_SCG_E_RAB_Level_QoS_Parameters() const {return requested_SCG_E_RAB_Level_QoS_Parameters.is_valid() ? &requested_SCG_E_RAB_Level_QoS_Parameters : nullptr;} - struct meNB_UL_GTP_TEIDatPDCP_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "meNB_UL_GTP_TEIDatPDCP_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - meNB_UL_GTP_TEIDatPDCP_t& set_meNB_UL_GTP_TEIDatPDCP() { meNB_UL_GTP_TEIDatPDCP.setpresent(true); return meNB_UL_GTP_TEIDatPDCP;} - meNB_UL_GTP_TEIDatPDCP_t const* get_meNB_UL_GTP_TEIDatPDCP() const {return meNB_UL_GTP_TEIDatPDCP.is_valid() ? &meNB_UL_GTP_TEIDatPDCP : nullptr;} - struct uL_Configuration_t : ULConfiguration - { - static constexpr const char* name() {return "uL_Configuration_t";} - using parent_t = ULConfiguration; - static constexpr bool optional = true; - - }; - uL_Configuration_t& set_uL_Configuration() { uL_Configuration.setpresent(true); return uL_Configuration;} - uL_Configuration_t const* get_uL_Configuration() const {return uL_Configuration.is_valid() ? &uL_Configuration : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(requested_SCG_E_RAB_Level_QoS_Parameters); - v(meNB_UL_GTP_TEIDatPDCP); - v(uL_Configuration); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(requested_SCG_E_RAB_Level_QoS_Parameters); - v(meNB_UL_GTP_TEIDatPDCP); - v(uL_Configuration); - v(iE_Extensions); - - }; - void clear() - { - requested_SCG_E_RAB_Level_QoS_Parameters.clear(); - meNB_UL_GTP_TEIDatPDCP.clear(); - uL_Configuration.clear(); - iE_Extensions.clear(); - - }; - private: - requested_SCG_E_RAB_Level_QoS_Parameters_t requested_SCG_E_RAB_Level_QoS_Parameters; - meNB_UL_GTP_TEIDatPDCP_t meNB_UL_GTP_TEIDatPDCP; - uL_Configuration_t uL_Configuration; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeModified-SgNBModReq-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_ToBeModified_SgNBModReq_ItemExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeModified-SgNBModReq-Item ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - en-DC-ResourceConfiguration EN-DC-ResourceConfiguration, - resource-configuration CHOICE { - sgNBPDCPpresent E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPpresent, - sgNBPDCPnotpresent E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPnotpresent, - ... - }, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeModified-SgNBModReq-ItemExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeModified_SgNBModReq_Item : asn::sequence<4, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-ToBeModified-SgNBModReq-Item";} - using parent_t = asn::sequence<4, 0, true, 1>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct en_DC_ResourceConfiguration_t : EN_DC_ResourceConfiguration - { - static constexpr const char* name() {return "en_DC_ResourceConfiguration_t";} - using parent_t = EN_DC_ResourceConfiguration; - - }; - en_DC_ResourceConfiguration_t& ref_en_DC_ResourceConfiguration() {return en_DC_ResourceConfiguration;} - en_DC_ResourceConfiguration_t const& ref_en_DC_ResourceConfiguration() const {return en_DC_ResourceConfiguration;} - struct resource_configuration_t : asn::choice<2, 0, true> - { - static constexpr const char* name() {return "resource_configuration_t";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~resource_configuration_t() {clear();} - struct sgNBPDCPpresent_t : E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresent - { - static constexpr const char* name() {return "sgNBPDCPpresent_t";} - using parent_t = E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresent; - - }; - struct sgNBPDCPnotpresent_t : E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresent - { - static constexpr const char* name() {return "sgNBPDCPnotpresent_t";} - using parent_t = E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresent; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - sgNBPDCPpresent_t& select_sgNBPDCPpresent() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - sgNBPDCPpresent_t const* get_sgNBPDCPpresent() const { if(get_index() == 1) { return &var.as();} return nullptr; } - sgNBPDCPnotpresent_t& select_sgNBPDCPnotpresent() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - sgNBPDCPnotpresent_t const* get_sgNBPDCPnotpresent() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(sgNBPDCPpresent_t)]; - char dummy2[sizeof(sgNBPDCPnotpresent_t)]; - - }; - asn::variant var; - index_type index {0}; - }; - resource_configuration_t& ref_resource_configuration() {return resource_configuration;} - resource_configuration_t const& ref_resource_configuration() const {return resource_configuration;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(en_DC_ResourceConfiguration); - v(resource_configuration); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(en_DC_ResourceConfiguration); - v(resource_configuration); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - en_DC_ResourceConfiguration.clear(); - resource_configuration.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - en_DC_ResourceConfiguration_t en_DC_ResourceConfiguration; - resource_configuration_t resource_configuration; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeModified-SgNBModReq-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-ToBeModified-SgNBModReq-Item CRITICALITY ignore TYPE E-RABs-ToBeModified-SgNBModReq-Item PRESENCE mandatory}, - ... -} -*/ - -struct E_RABs_ToBeModified_SgNBModReq_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeModified_SgNBModReq_Item() { set(id_E_RABs_ToBeModified_SgNBModReq_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_ToBeModified_SgNBModReq_Item)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_ToBeModified_SgNBModReq_Item);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeModified_SgNBModReq_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_ToBeModified_SgNBModReq_Item& select_id_E_RABs_ToBeModified_SgNBModReq_Item() { return set(1); } - E_RABs_ToBeModified_SgNBModReq_Item const* get_id_E_RABs_ToBeModified_SgNBModReq_Item() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_ToBeModified_SgNBModReq_Item()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_ToBeModified_SgNBModReq_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeModified_SgNBModReq_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeModified-SgNBModReq-List ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeModified-SgNBModReq-ItemIEs} } -*/ - -struct E_RABs_ToBeModified_SgNBModReq_List_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_ToBeModified_SgNBModReq_List_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_ToBeModified_SgNBModReq_List : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-ToBeModified-SgNBModReq-List";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-uLpDCPSnLength CRITICALITY ignore EXTENSION PDCPSnLength PRESENCE optional}| - { ID id-dLPDCPSnLength CRITICALITY ignore EXTENSION PDCPSnLength PRESENCE optional}| - { ID id-new-drb-ID-req CRITICALITY ignore EXTENSION NewDRBIDrequest PRESENCE optional}, - ... -} -*/ - -struct E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresentExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_uLpDCPSnLength() { set(id_uLpDCPSnLength); type=1;} - void select_id_dLPDCPSnLength() { set(id_dLPDCPSnLength); type=2;} - void select_id_new_drb_ID_req() { set(id_new_drb_ID_req); type=3;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_uLpDCPSnLength)) { type = 1; return true; } - else if(equal(id_dLPDCPSnLength)) { type = 2; return true; } - else if(equal(id_new_drb_ID_req)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_uLpDCPSnLength);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_dLPDCPSnLength);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_new_drb_ID_req);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_uLpDCPSnLength() { set(ignore); type=1;} - void select_id_dLPDCPSnLength() { set(ignore); type=2;} - void select_id_new_drb_ID_req() { set(ignore); type=3;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - PDCPSnLength& select_id_uLpDCPSnLength() { return set(1); } - PDCPSnLength const* get_id_uLpDCPSnLength() const { return get(1); } - PDCPSnLength& select_id_dLPDCPSnLength() { return set(2); } - PDCPSnLength const* get_id_dLPDCPSnLength() const { return get(2); } - NewDRBIDrequest& select_id_new_drb_ID_req() { return set(3); } - NewDRBIDrequest const* get_id_new_drb_ID_req() const { return get(3); } - bool is_unknown() const { return type == 4; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_uLpDCPSnLength()); return true; - case 2: v(select_id_dLPDCPSnLength()); return true; - case 3: v(select_id_new_drb_ID_req()); return true; - case 4: if(type != 4) {clear(); asn::base::set();} type = 4; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(NewDRBIDrequest)]; - char dummy2[sizeof(PDCPSnLength)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_uLpDCPSnLength() { set(optional); type=1;} - void select_id_dLPDCPSnLength() { set(optional); type=2;} - void select_id_new_drb_ID_req() { set(optional); type=3;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPpresent ::= SEQUENCE { - requested-MCG-E-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters OPTIONAL, - uL-Configuration ULConfiguration OPTIONAL, - sgNB-UL-GTP-TEIDatPDCP GTPtunnelEndpoint OPTIONAL, - s1-DL-GTP-TEIDatSgNB GTPtunnelEndpoint OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPpresentExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresent : asn::sequence<5, 0, true, 5> -{ - static constexpr const char* name() {return "E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPpresent";} - using parent_t = asn::sequence<5, 0, true, 5>; - struct requested_MCG_E_RAB_Level_QoS_Parameters_t : E_RAB_Level_QoS_Parameters - { - static constexpr const char* name() {return "requested_MCG_E_RAB_Level_QoS_Parameters_t";} - using parent_t = E_RAB_Level_QoS_Parameters; - static constexpr bool optional = true; - - }; - requested_MCG_E_RAB_Level_QoS_Parameters_t& set_requested_MCG_E_RAB_Level_QoS_Parameters() { requested_MCG_E_RAB_Level_QoS_Parameters.setpresent(true); return requested_MCG_E_RAB_Level_QoS_Parameters;} - requested_MCG_E_RAB_Level_QoS_Parameters_t const* get_requested_MCG_E_RAB_Level_QoS_Parameters() const {return requested_MCG_E_RAB_Level_QoS_Parameters.is_valid() ? &requested_MCG_E_RAB_Level_QoS_Parameters : nullptr;} - struct uL_Configuration_t : ULConfiguration - { - static constexpr const char* name() {return "uL_Configuration_t";} - using parent_t = ULConfiguration; - static constexpr bool optional = true; - - }; - uL_Configuration_t& set_uL_Configuration() { uL_Configuration.setpresent(true); return uL_Configuration;} - uL_Configuration_t const* get_uL_Configuration() const {return uL_Configuration.is_valid() ? &uL_Configuration : nullptr;} - struct sgNB_UL_GTP_TEIDatPDCP_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "sgNB_UL_GTP_TEIDatPDCP_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - sgNB_UL_GTP_TEIDatPDCP_t& set_sgNB_UL_GTP_TEIDatPDCP() { sgNB_UL_GTP_TEIDatPDCP.setpresent(true); return sgNB_UL_GTP_TEIDatPDCP;} - sgNB_UL_GTP_TEIDatPDCP_t const* get_sgNB_UL_GTP_TEIDatPDCP() const {return sgNB_UL_GTP_TEIDatPDCP.is_valid() ? &sgNB_UL_GTP_TEIDatPDCP : nullptr;} - struct s1_DL_GTP_TEIDatSgNB_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "s1_DL_GTP_TEIDatSgNB_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - s1_DL_GTP_TEIDatSgNB_t& set_s1_DL_GTP_TEIDatSgNB() { s1_DL_GTP_TEIDatSgNB.setpresent(true); return s1_DL_GTP_TEIDatSgNB;} - s1_DL_GTP_TEIDatSgNB_t const* get_s1_DL_GTP_TEIDatSgNB() const {return s1_DL_GTP_TEIDatSgNB.is_valid() ? &s1_DL_GTP_TEIDatSgNB : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(requested_MCG_E_RAB_Level_QoS_Parameters); - v(uL_Configuration); - v(sgNB_UL_GTP_TEIDatPDCP); - v(s1_DL_GTP_TEIDatSgNB); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(requested_MCG_E_RAB_Level_QoS_Parameters); - v(uL_Configuration); - v(sgNB_UL_GTP_TEIDatPDCP); - v(s1_DL_GTP_TEIDatSgNB); - v(iE_Extensions); - - }; - void clear() - { - requested_MCG_E_RAB_Level_QoS_Parameters.clear(); - uL_Configuration.clear(); - sgNB_UL_GTP_TEIDatPDCP.clear(); - s1_DL_GTP_TEIDatSgNB.clear(); - iE_Extensions.clear(); - - }; - private: - requested_MCG_E_RAB_Level_QoS_Parameters_t requested_MCG_E_RAB_Level_QoS_Parameters; - uL_Configuration_t uL_Configuration; - sgNB_UL_GTP_TEIDatPDCP_t sgNB_UL_GTP_TEIDatPDCP; - s1_DL_GTP_TEIDatSgNB_t s1_DL_GTP_TEIDatSgNB; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPnotpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-RLC-Status CRITICALITY ignore EXTENSION RLC-Status PRESENCE optional}| - { ID id-lCID CRITICALITY ignore EXTENSION LCID PRESENCE optional}, - ... -} -*/ - -struct E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresentExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_RLC_Status() { set(id_RLC_Status); type=1;} - void select_id_lCID() { set(id_lCID); type=2;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_RLC_Status)) { type = 1; return true; } - else if(equal(id_lCID)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_RLC_Status);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_lCID);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_RLC_Status() { set(ignore); type=1;} - void select_id_lCID() { set(ignore); type=2;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - RLC_Status& select_id_RLC_Status() { return set(1); } - RLC_Status const* get_id_RLC_Status() const { return get(1); } - LCID& select_id_lCID() { return set(2); } - LCID const* get_id_lCID() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_RLC_Status()); return true; - case 2: v(select_id_lCID()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(LCID)]; - char dummy2[sizeof(RLC_Status)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_RLC_Status() { set(optional); type=1;} - void select_id_lCID() { set(optional); type=2;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPnotpresent ::= SEQUENCE { - sgNB-DL-GTP-TEIDatSCG GTPtunnelEndpoint OPTIONAL, - secondary-sgNB-DL-GTP-TEIDatSCG GTPtunnelEndpoint OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPnotpresentExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresent : asn::sequence<3, 0, true, 3> -{ - static constexpr const char* name() {return "E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPnotpresent";} - using parent_t = asn::sequence<3, 0, true, 3>; - struct sgNB_DL_GTP_TEIDatSCG_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "sgNB_DL_GTP_TEIDatSCG_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - sgNB_DL_GTP_TEIDatSCG_t& set_sgNB_DL_GTP_TEIDatSCG() { sgNB_DL_GTP_TEIDatSCG.setpresent(true); return sgNB_DL_GTP_TEIDatSCG;} - sgNB_DL_GTP_TEIDatSCG_t const* get_sgNB_DL_GTP_TEIDatSCG() const {return sgNB_DL_GTP_TEIDatSCG.is_valid() ? &sgNB_DL_GTP_TEIDatSCG : nullptr;} - struct secondary_sgNB_DL_GTP_TEIDatSCG_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "secondary_sgNB_DL_GTP_TEIDatSCG_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - secondary_sgNB_DL_GTP_TEIDatSCG_t& set_secondary_sgNB_DL_GTP_TEIDatSCG() { secondary_sgNB_DL_GTP_TEIDatSCG.setpresent(true); return secondary_sgNB_DL_GTP_TEIDatSCG;} - secondary_sgNB_DL_GTP_TEIDatSCG_t const* get_secondary_sgNB_DL_GTP_TEIDatSCG() const {return secondary_sgNB_DL_GTP_TEIDatSCG.is_valid() ? &secondary_sgNB_DL_GTP_TEIDatSCG : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(sgNB_DL_GTP_TEIDatSCG); - v(secondary_sgNB_DL_GTP_TEIDatSCG); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(sgNB_DL_GTP_TEIDatSCG); - v(secondary_sgNB_DL_GTP_TEIDatSCG); - v(iE_Extensions); - - }; - void clear() - { - sgNB_DL_GTP_TEIDatSCG.clear(); - secondary_sgNB_DL_GTP_TEIDatSCG.clear(); - iE_Extensions.clear(); - - }; - private: - sgNB_DL_GTP_TEIDatSCG_t sgNB_DL_GTP_TEIDatSCG; - secondary_sgNB_DL_GTP_TEIDatSCG_t secondary_sgNB_DL_GTP_TEIDatSCG; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeModified-SgNBModReqd-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_ToBeModified_SgNBModReqd_ItemExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeModified-SgNBModReqd-Item ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - en-DC-ResourceConfiguration EN-DC-ResourceConfiguration, - resource-configuration CHOICE { - sgNBPDCPpresent E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPpresent, - sgNBPDCPnotpresent E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPnotpresent, - ... - }, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeModified-SgNBModReqd-ItemExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeModified_SgNBModReqd_Item : asn::sequence<4, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-ToBeModified-SgNBModReqd-Item";} - using parent_t = asn::sequence<4, 0, true, 1>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct en_DC_ResourceConfiguration_t : EN_DC_ResourceConfiguration - { - static constexpr const char* name() {return "en_DC_ResourceConfiguration_t";} - using parent_t = EN_DC_ResourceConfiguration; - - }; - en_DC_ResourceConfiguration_t& ref_en_DC_ResourceConfiguration() {return en_DC_ResourceConfiguration;} - en_DC_ResourceConfiguration_t const& ref_en_DC_ResourceConfiguration() const {return en_DC_ResourceConfiguration;} - struct resource_configuration_t : asn::choice<2, 0, true> - { - static constexpr const char* name() {return "resource_configuration_t";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~resource_configuration_t() {clear();} - struct sgNBPDCPpresent_t : E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresent - { - static constexpr const char* name() {return "sgNBPDCPpresent_t";} - using parent_t = E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresent; - - }; - struct sgNBPDCPnotpresent_t : E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresent - { - static constexpr const char* name() {return "sgNBPDCPnotpresent_t";} - using parent_t = E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresent; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - sgNBPDCPpresent_t& select_sgNBPDCPpresent() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - sgNBPDCPpresent_t const* get_sgNBPDCPpresent() const { if(get_index() == 1) { return &var.as();} return nullptr; } - sgNBPDCPnotpresent_t& select_sgNBPDCPnotpresent() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - sgNBPDCPnotpresent_t const* get_sgNBPDCPnotpresent() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(sgNBPDCPpresent_t)]; - char dummy2[sizeof(sgNBPDCPnotpresent_t)]; - - }; - asn::variant var; - index_type index {0}; - }; - resource_configuration_t& ref_resource_configuration() {return resource_configuration;} - resource_configuration_t const& ref_resource_configuration() const {return resource_configuration;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(en_DC_ResourceConfiguration); - v(resource_configuration); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(en_DC_ResourceConfiguration); - v(resource_configuration); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - en_DC_ResourceConfiguration.clear(); - resource_configuration.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - en_DC_ResourceConfiguration_t en_DC_ResourceConfiguration; - resource_configuration_t resource_configuration; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeModified-SgNBModReqd-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-ToBeModified-SgNBModReqd-Item CRITICALITY ignore TYPE E-RABs-ToBeModified-SgNBModReqd-Item PRESENCE mandatory }, - ... -} -*/ - -struct E_RABs_ToBeModified_SgNBModReqd_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeModified_SgNBModReqd_Item() { set(id_E_RABs_ToBeModified_SgNBModReqd_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_ToBeModified_SgNBModReqd_Item)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_ToBeModified_SgNBModReqd_Item);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeModified_SgNBModReqd_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_ToBeModified_SgNBModReqd_Item& select_id_E_RABs_ToBeModified_SgNBModReqd_Item() { return set(1); } - E_RABs_ToBeModified_SgNBModReqd_Item const* get_id_E_RABs_ToBeModified_SgNBModReqd_Item() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_ToBeModified_SgNBModReqd_Item()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_ToBeModified_SgNBModReqd_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeModified_SgNBModReqd_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeModified-SgNBModReqdList ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeModified-SgNBModReqd-ItemIEs} } -*/ - -struct E_RABs_ToBeModified_SgNBModReqdList_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_ToBeModified_SgNBModReqdList_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_ToBeModified_SgNBModReqdList : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-ToBeModified-SgNBModReqdList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-ToBeReleased-ModReqItem-SCG-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_ToBeReleased_ModReqItem_SCG_BearerExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeReleased-ModReqItem-SCG-Bearer ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - dL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, - uL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-ModReqItem-SCG-BearerExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeReleased_ModReqItem_SCG_Bearer : asn::sequence<4, 0, true, 3> -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-ModReqItem-SCG-Bearer";} - using parent_t = asn::sequence<4, 0, true, 3>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct dL_Forwarding_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "dL_Forwarding_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - dL_Forwarding_GTPtunnelEndpoint_t& set_dL_Forwarding_GTPtunnelEndpoint() { dL_Forwarding_GTPtunnelEndpoint.setpresent(true); return dL_Forwarding_GTPtunnelEndpoint;} - dL_Forwarding_GTPtunnelEndpoint_t const* get_dL_Forwarding_GTPtunnelEndpoint() const {return dL_Forwarding_GTPtunnelEndpoint.is_valid() ? &dL_Forwarding_GTPtunnelEndpoint : nullptr;} - struct uL_Forwarding_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "uL_Forwarding_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - uL_Forwarding_GTPtunnelEndpoint_t& set_uL_Forwarding_GTPtunnelEndpoint() { uL_Forwarding_GTPtunnelEndpoint.setpresent(true); return uL_Forwarding_GTPtunnelEndpoint;} - uL_Forwarding_GTPtunnelEndpoint_t const* get_uL_Forwarding_GTPtunnelEndpoint() const {return uL_Forwarding_GTPtunnelEndpoint.is_valid() ? &uL_Forwarding_GTPtunnelEndpoint : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(dL_Forwarding_GTPtunnelEndpoint); - v(uL_Forwarding_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(dL_Forwarding_GTPtunnelEndpoint); - v(uL_Forwarding_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - dL_Forwarding_GTPtunnelEndpoint.clear(); - uL_Forwarding_GTPtunnelEndpoint.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - dL_Forwarding_GTPtunnelEndpoint_t dL_Forwarding_GTPtunnelEndpoint; - uL_Forwarding_GTPtunnelEndpoint_t uL_Forwarding_GTPtunnelEndpoint; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeReleased-ModReqItem-Split-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_ToBeReleased_ModReqItem_Split_BearerExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeReleased-ModReqItem-Split-Bearer ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - dL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-ModReqItem-Split-BearerExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeReleased_ModReqItem_Split_Bearer : asn::sequence<3, 0, true, 2> -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-ModReqItem-Split-Bearer";} - using parent_t = asn::sequence<3, 0, true, 2>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct dL_Forwarding_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "dL_Forwarding_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - dL_Forwarding_GTPtunnelEndpoint_t& set_dL_Forwarding_GTPtunnelEndpoint() { dL_Forwarding_GTPtunnelEndpoint.setpresent(true); return dL_Forwarding_GTPtunnelEndpoint;} - dL_Forwarding_GTPtunnelEndpoint_t const* get_dL_Forwarding_GTPtunnelEndpoint() const {return dL_Forwarding_GTPtunnelEndpoint.is_valid() ? &dL_Forwarding_GTPtunnelEndpoint : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(dL_Forwarding_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(dL_Forwarding_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - dL_Forwarding_GTPtunnelEndpoint.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - dL_Forwarding_GTPtunnelEndpoint_t dL_Forwarding_GTPtunnelEndpoint; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeReleased-ModReqItem ::= CHOICE { - sCG-Bearer E-RABs-ToBeReleased-ModReqItem-SCG-Bearer, - split-Bearer E-RABs-ToBeReleased-ModReqItem-Split-Bearer, - ... -} -*/ - -struct E_RABs_ToBeReleased_ModReqItem : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-ModReqItem";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~E_RABs_ToBeReleased_ModReqItem() {clear();} - struct sCG_Bearer_t : E_RABs_ToBeReleased_ModReqItem_SCG_Bearer - { - static constexpr const char* name() {return "sCG_Bearer_t";} - using parent_t = E_RABs_ToBeReleased_ModReqItem_SCG_Bearer; - - }; - struct split_Bearer_t : E_RABs_ToBeReleased_ModReqItem_Split_Bearer - { - static constexpr const char* name() {return "split_Bearer_t";} - using parent_t = E_RABs_ToBeReleased_ModReqItem_Split_Bearer; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - sCG_Bearer_t& select_sCG_Bearer() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - sCG_Bearer_t const* get_sCG_Bearer() const { if(get_index() == 1) { return &var.as();} return nullptr; } - split_Bearer_t& select_split_Bearer() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - split_Bearer_t const* get_split_Bearer() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(sCG_Bearer_t)]; - char dummy2[sizeof(split_Bearer_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -E-RABs-ToBeReleased-ModReqItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-ToBeReleased-ModReqItem CRITICALITY ignore TYPE E-RABs-ToBeReleased-ModReqItem PRESENCE mandatory}, - ... -} -*/ - -struct E_RABs_ToBeReleased_ModReqItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeReleased_ModReqItem() { set(id_E_RABs_ToBeReleased_ModReqItem); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_ToBeReleased_ModReqItem)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_ToBeReleased_ModReqItem);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeReleased_ModReqItem() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_ToBeReleased_ModReqItem& select_id_E_RABs_ToBeReleased_ModReqItem() { return set(1); } - E_RABs_ToBeReleased_ModReqItem const* get_id_E_RABs_ToBeReleased_ModReqItem() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_ToBeReleased_ModReqItem()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_ToBeReleased_ModReqItem)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeReleased_ModReqItem() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeReleased-List-ModReq ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeReleased-ModReqItemIEs} } -*/ - -struct E_RABs_ToBeReleased_List_ModReq_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_ToBeReleased_List_ModReq_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_ToBeReleased_List_ModReq : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-List-ModReq";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-ToBeReleased-RelConfItem-SCG-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_ToBeReleased_RelConfItem_SCG_BearerExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeReleased-RelConfItem-SCG-Bearer ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - uL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, - dL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-RelConfItem-SCG-BearerExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeReleased_RelConfItem_SCG_Bearer : asn::sequence<4, 0, true, 3> -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-RelConfItem-SCG-Bearer";} - using parent_t = asn::sequence<4, 0, true, 3>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct uL_Forwarding_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "uL_Forwarding_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - uL_Forwarding_GTPtunnelEndpoint_t& set_uL_Forwarding_GTPtunnelEndpoint() { uL_Forwarding_GTPtunnelEndpoint.setpresent(true); return uL_Forwarding_GTPtunnelEndpoint;} - uL_Forwarding_GTPtunnelEndpoint_t const* get_uL_Forwarding_GTPtunnelEndpoint() const {return uL_Forwarding_GTPtunnelEndpoint.is_valid() ? &uL_Forwarding_GTPtunnelEndpoint : nullptr;} - struct dL_Forwarding_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "dL_Forwarding_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - dL_Forwarding_GTPtunnelEndpoint_t& set_dL_Forwarding_GTPtunnelEndpoint() { dL_Forwarding_GTPtunnelEndpoint.setpresent(true); return dL_Forwarding_GTPtunnelEndpoint;} - dL_Forwarding_GTPtunnelEndpoint_t const* get_dL_Forwarding_GTPtunnelEndpoint() const {return dL_Forwarding_GTPtunnelEndpoint.is_valid() ? &dL_Forwarding_GTPtunnelEndpoint : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(uL_Forwarding_GTPtunnelEndpoint); - v(dL_Forwarding_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(uL_Forwarding_GTPtunnelEndpoint); - v(dL_Forwarding_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - uL_Forwarding_GTPtunnelEndpoint.clear(); - dL_Forwarding_GTPtunnelEndpoint.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - uL_Forwarding_GTPtunnelEndpoint_t uL_Forwarding_GTPtunnelEndpoint; - dL_Forwarding_GTPtunnelEndpoint_t dL_Forwarding_GTPtunnelEndpoint; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeReleased-RelConfItem-Split-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_ToBeReleased_RelConfItem_Split_BearerExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeReleased-RelConfItem-Split-Bearer ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - dL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-RelConfItem-Split-BearerExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeReleased_RelConfItem_Split_Bearer : asn::sequence<3, 0, true, 2> -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-RelConfItem-Split-Bearer";} - using parent_t = asn::sequence<3, 0, true, 2>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct dL_Forwarding_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "dL_Forwarding_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - dL_Forwarding_GTPtunnelEndpoint_t& set_dL_Forwarding_GTPtunnelEndpoint() { dL_Forwarding_GTPtunnelEndpoint.setpresent(true); return dL_Forwarding_GTPtunnelEndpoint;} - dL_Forwarding_GTPtunnelEndpoint_t const* get_dL_Forwarding_GTPtunnelEndpoint() const {return dL_Forwarding_GTPtunnelEndpoint.is_valid() ? &dL_Forwarding_GTPtunnelEndpoint : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(dL_Forwarding_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(dL_Forwarding_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - dL_Forwarding_GTPtunnelEndpoint.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - dL_Forwarding_GTPtunnelEndpoint_t dL_Forwarding_GTPtunnelEndpoint; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeReleased-RelConfItem ::= CHOICE { - sCG-Bearer E-RABs-ToBeReleased-RelConfItem-SCG-Bearer, - split-Bearer E-RABs-ToBeReleased-RelConfItem-Split-Bearer, - ... -} -*/ - -struct E_RABs_ToBeReleased_RelConfItem : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-RelConfItem";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~E_RABs_ToBeReleased_RelConfItem() {clear();} - struct sCG_Bearer_t : E_RABs_ToBeReleased_RelConfItem_SCG_Bearer - { - static constexpr const char* name() {return "sCG_Bearer_t";} - using parent_t = E_RABs_ToBeReleased_RelConfItem_SCG_Bearer; - - }; - struct split_Bearer_t : E_RABs_ToBeReleased_RelConfItem_Split_Bearer - { - static constexpr const char* name() {return "split_Bearer_t";} - using parent_t = E_RABs_ToBeReleased_RelConfItem_Split_Bearer; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - sCG_Bearer_t& select_sCG_Bearer() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - sCG_Bearer_t const* get_sCG_Bearer() const { if(get_index() == 1) { return &var.as();} return nullptr; } - split_Bearer_t& select_split_Bearer() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - split_Bearer_t const* get_split_Bearer() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(sCG_Bearer_t)]; - char dummy2[sizeof(split_Bearer_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -E-RABs-ToBeReleased-RelConfItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-ToBeReleased-RelConfItem CRITICALITY ignore TYPE E-RABs-ToBeReleased-RelConfItem PRESENCE mandatory}, - ... -} -*/ - -struct E_RABs_ToBeReleased_RelConfItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeReleased_RelConfItem() { set(id_E_RABs_ToBeReleased_RelConfItem); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_ToBeReleased_RelConfItem)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_ToBeReleased_RelConfItem);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeReleased_RelConfItem() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_ToBeReleased_RelConfItem& select_id_E_RABs_ToBeReleased_RelConfItem() { return set(1); } - E_RABs_ToBeReleased_RelConfItem const* get_id_E_RABs_ToBeReleased_RelConfItem() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_ToBeReleased_RelConfItem()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_ToBeReleased_RelConfItem)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeReleased_RelConfItem() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeReleased-List-RelConf ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeReleased-RelConfItemIEs} } -*/ - -struct E_RABs_ToBeReleased_List_RelConf_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_ToBeReleased_List_RelConf_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_ToBeReleased_List_RelConf : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-List-RelConf";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-ToBeReleased-RelReqItem-SCG-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_ToBeReleased_RelReqItem_SCG_BearerExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeReleased-RelReqItem-SCG-Bearer ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - uL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, - dL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-RelReqItem-SCG-BearerExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeReleased_RelReqItem_SCG_Bearer : asn::sequence<4, 0, true, 3> -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-RelReqItem-SCG-Bearer";} - using parent_t = asn::sequence<4, 0, true, 3>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct uL_Forwarding_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "uL_Forwarding_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - uL_Forwarding_GTPtunnelEndpoint_t& set_uL_Forwarding_GTPtunnelEndpoint() { uL_Forwarding_GTPtunnelEndpoint.setpresent(true); return uL_Forwarding_GTPtunnelEndpoint;} - uL_Forwarding_GTPtunnelEndpoint_t const* get_uL_Forwarding_GTPtunnelEndpoint() const {return uL_Forwarding_GTPtunnelEndpoint.is_valid() ? &uL_Forwarding_GTPtunnelEndpoint : nullptr;} - struct dL_Forwarding_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "dL_Forwarding_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - dL_Forwarding_GTPtunnelEndpoint_t& set_dL_Forwarding_GTPtunnelEndpoint() { dL_Forwarding_GTPtunnelEndpoint.setpresent(true); return dL_Forwarding_GTPtunnelEndpoint;} - dL_Forwarding_GTPtunnelEndpoint_t const* get_dL_Forwarding_GTPtunnelEndpoint() const {return dL_Forwarding_GTPtunnelEndpoint.is_valid() ? &dL_Forwarding_GTPtunnelEndpoint : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(uL_Forwarding_GTPtunnelEndpoint); - v(dL_Forwarding_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(uL_Forwarding_GTPtunnelEndpoint); - v(dL_Forwarding_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - uL_Forwarding_GTPtunnelEndpoint.clear(); - dL_Forwarding_GTPtunnelEndpoint.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - uL_Forwarding_GTPtunnelEndpoint_t uL_Forwarding_GTPtunnelEndpoint; - dL_Forwarding_GTPtunnelEndpoint_t dL_Forwarding_GTPtunnelEndpoint; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeReleased-RelReqItem-Split-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_ToBeReleased_RelReqItem_Split_BearerExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeReleased-RelReqItem-Split-Bearer ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - dL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-RelReqItem-Split-BearerExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeReleased_RelReqItem_Split_Bearer : asn::sequence<3, 0, true, 2> -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-RelReqItem-Split-Bearer";} - using parent_t = asn::sequence<3, 0, true, 2>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct dL_Forwarding_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "dL_Forwarding_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - dL_Forwarding_GTPtunnelEndpoint_t& set_dL_Forwarding_GTPtunnelEndpoint() { dL_Forwarding_GTPtunnelEndpoint.setpresent(true); return dL_Forwarding_GTPtunnelEndpoint;} - dL_Forwarding_GTPtunnelEndpoint_t const* get_dL_Forwarding_GTPtunnelEndpoint() const {return dL_Forwarding_GTPtunnelEndpoint.is_valid() ? &dL_Forwarding_GTPtunnelEndpoint : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(dL_Forwarding_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(dL_Forwarding_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - dL_Forwarding_GTPtunnelEndpoint.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - dL_Forwarding_GTPtunnelEndpoint_t dL_Forwarding_GTPtunnelEndpoint; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeReleased-RelReqItem ::= CHOICE { - sCG-Bearer E-RABs-ToBeReleased-RelReqItem-SCG-Bearer, - split-Bearer E-RABs-ToBeReleased-RelReqItem-Split-Bearer, - ... -} -*/ - -struct E_RABs_ToBeReleased_RelReqItem : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-RelReqItem";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~E_RABs_ToBeReleased_RelReqItem() {clear();} - struct sCG_Bearer_t : E_RABs_ToBeReleased_RelReqItem_SCG_Bearer - { - static constexpr const char* name() {return "sCG_Bearer_t";} - using parent_t = E_RABs_ToBeReleased_RelReqItem_SCG_Bearer; - - }; - struct split_Bearer_t : E_RABs_ToBeReleased_RelReqItem_Split_Bearer - { - static constexpr const char* name() {return "split_Bearer_t";} - using parent_t = E_RABs_ToBeReleased_RelReqItem_Split_Bearer; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - sCG_Bearer_t& select_sCG_Bearer() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - sCG_Bearer_t const* get_sCG_Bearer() const { if(get_index() == 1) { return &var.as();} return nullptr; } - split_Bearer_t& select_split_Bearer() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - split_Bearer_t const* get_split_Bearer() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(sCG_Bearer_t)]; - char dummy2[sizeof(split_Bearer_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -E-RABs-ToBeReleased-RelReqItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-ToBeReleased-RelReqItem CRITICALITY ignore TYPE E-RABs-ToBeReleased-RelReqItem PRESENCE mandatory}, - ... -} -*/ - -struct E_RABs_ToBeReleased_RelReqItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeReleased_RelReqItem() { set(id_E_RABs_ToBeReleased_RelReqItem); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_ToBeReleased_RelReqItem)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_ToBeReleased_RelReqItem);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeReleased_RelReqItem() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_ToBeReleased_RelReqItem& select_id_E_RABs_ToBeReleased_RelReqItem() { return set(1); } - E_RABs_ToBeReleased_RelReqItem const* get_id_E_RABs_ToBeReleased_RelReqItem() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_ToBeReleased_RelReqItem()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_ToBeReleased_RelReqItem)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeReleased_RelReqItem() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeReleased-List-RelReq ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeReleased-RelReqItemIEs} } -*/ - -struct E_RABs_ToBeReleased_List_RelReq_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_ToBeReleased_List_RelReq_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_ToBeReleased_List_RelReq : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-List-RelReq";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-ToBeReleased-ModReqdItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_ToBeReleased_ModReqdItemExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeReleased-ModReqdItem ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - cause Cause, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-ModReqdItemExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeReleased_ModReqdItem : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-ModReqdItem";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct cause_t : Cause - { - static constexpr const char* name() {return "cause_t";} - using parent_t = Cause; - - }; - cause_t& ref_cause() {return cause;} - cause_t const& ref_cause() const {return cause;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(cause); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(cause); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - cause.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - cause_t cause; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeReleased-ModReqdItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-ToBeReleased-ModReqdItem CRITICALITY ignore TYPE E-RABs-ToBeReleased-ModReqdItem PRESENCE mandatory }, - ... -} -*/ - -struct E_RABs_ToBeReleased_ModReqdItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeReleased_ModReqdItem() { set(id_E_RABs_ToBeReleased_ModReqdItem); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_ToBeReleased_ModReqdItem)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_ToBeReleased_ModReqdItem);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeReleased_ModReqdItem() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_ToBeReleased_ModReqdItem& select_id_E_RABs_ToBeReleased_ModReqdItem() { return set(1); } - E_RABs_ToBeReleased_ModReqdItem const* get_id_E_RABs_ToBeReleased_ModReqdItem() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_ToBeReleased_ModReqdItem()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_ToBeReleased_ModReqdItem)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeReleased_ModReqdItem() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeReleased-ModReqd ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeReleased-ModReqdItemIEs} } -*/ - -struct E_RABs_ToBeReleased_ModReqd_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_ToBeReleased_ModReqd_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_ToBeReleased_ModReqd : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-ModReqd";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresentExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPpresent ::= SEQUENCE { - uL-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, - dL-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPpresentExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresent : asn::sequence<3, 0, true, 3> -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPpresent";} - using parent_t = asn::sequence<3, 0, true, 3>; - struct uL_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "uL_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - uL_GTPtunnelEndpoint_t& set_uL_GTPtunnelEndpoint() { uL_GTPtunnelEndpoint.setpresent(true); return uL_GTPtunnelEndpoint;} - uL_GTPtunnelEndpoint_t const* get_uL_GTPtunnelEndpoint() const {return uL_GTPtunnelEndpoint.is_valid() ? &uL_GTPtunnelEndpoint : nullptr;} - struct dL_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "dL_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - dL_GTPtunnelEndpoint_t& set_dL_GTPtunnelEndpoint() { dL_GTPtunnelEndpoint.setpresent(true); return dL_GTPtunnelEndpoint;} - dL_GTPtunnelEndpoint_t const* get_dL_GTPtunnelEndpoint() const {return dL_GTPtunnelEndpoint.is_valid() ? &dL_GTPtunnelEndpoint : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(uL_GTPtunnelEndpoint); - v(dL_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(uL_GTPtunnelEndpoint); - v(dL_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - void clear() - { - uL_GTPtunnelEndpoint.clear(); - dL_GTPtunnelEndpoint.clear(); - iE_Extensions.clear(); - - }; - private: - uL_GTPtunnelEndpoint_t uL_GTPtunnelEndpoint; - dL_GTPtunnelEndpoint_t dL_GTPtunnelEndpoint; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPnotpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresentExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPnotpresent ::= SEQUENCE { - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPnotpresentExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresent : asn::sequence<1, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPnotpresent";} - using parent_t = asn::sequence<1, 0, true, 1>; - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(iE_Extensions); - - }; - void clear() - { - iE_Extensions.clear(); - - }; - private: - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeReleased-SgNBChaConf-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBChaConf_ItemExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeReleased-SgNBChaConf-Item ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - en-DC-ResourceConfiguration EN-DC-ResourceConfiguration, - resource-configuration CHOICE { - sgNBPDCPpresent E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPpresent, - sgNBPDCPnotpresent E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPnotpresent, - ... - }, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-SgNBChaConf-ItemExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBChaConf_Item : asn::sequence<4, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-SgNBChaConf-Item";} - using parent_t = asn::sequence<4, 0, true, 1>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct en_DC_ResourceConfiguration_t : EN_DC_ResourceConfiguration - { - static constexpr const char* name() {return "en_DC_ResourceConfiguration_t";} - using parent_t = EN_DC_ResourceConfiguration; - - }; - en_DC_ResourceConfiguration_t& ref_en_DC_ResourceConfiguration() {return en_DC_ResourceConfiguration;} - en_DC_ResourceConfiguration_t const& ref_en_DC_ResourceConfiguration() const {return en_DC_ResourceConfiguration;} - struct resource_configuration_t : asn::choice<2, 0, true> - { - static constexpr const char* name() {return "resource_configuration_t";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~resource_configuration_t() {clear();} - struct sgNBPDCPpresent_t : E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresent - { - static constexpr const char* name() {return "sgNBPDCPpresent_t";} - using parent_t = E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresent; - - }; - struct sgNBPDCPnotpresent_t : E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresent - { - static constexpr const char* name() {return "sgNBPDCPnotpresent_t";} - using parent_t = E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresent; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - sgNBPDCPpresent_t& select_sgNBPDCPpresent() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - sgNBPDCPpresent_t const* get_sgNBPDCPpresent() const { if(get_index() == 1) { return &var.as();} return nullptr; } - sgNBPDCPnotpresent_t& select_sgNBPDCPnotpresent() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - sgNBPDCPnotpresent_t const* get_sgNBPDCPnotpresent() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(sgNBPDCPpresent_t)]; - char dummy2[sizeof(sgNBPDCPnotpresent_t)]; - - }; - asn::variant var; - index_type index {0}; - }; - resource_configuration_t& ref_resource_configuration() {return resource_configuration;} - resource_configuration_t const& ref_resource_configuration() const {return resource_configuration;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(en_DC_ResourceConfiguration); - v(resource_configuration); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(en_DC_ResourceConfiguration); - v(resource_configuration); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - en_DC_ResourceConfiguration.clear(); - resource_configuration.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - en_DC_ResourceConfiguration_t en_DC_ResourceConfiguration; - resource_configuration_t resource_configuration; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeReleased-SgNBChaConf-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-ToBeReleased-SgNBChaConf-Item CRITICALITY ignore TYPE E-RABs-ToBeReleased-SgNBChaConf-Item PRESENCE mandatory}, - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBChaConf_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeReleased_SgNBChaConf_Item() { set(id_E_RABs_ToBeReleased_SgNBChaConf_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_ToBeReleased_SgNBChaConf_Item)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_ToBeReleased_SgNBChaConf_Item);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeReleased_SgNBChaConf_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_ToBeReleased_SgNBChaConf_Item& select_id_E_RABs_ToBeReleased_SgNBChaConf_Item() { return set(1); } - E_RABs_ToBeReleased_SgNBChaConf_Item const* get_id_E_RABs_ToBeReleased_SgNBChaConf_Item() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_ToBeReleased_SgNBChaConf_Item()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_ToBeReleased_SgNBChaConf_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeReleased_SgNBChaConf_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeReleased-SgNBChaConfList ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeReleased-SgNBChaConf-ItemIEs} } -*/ - -struct E_RABs_ToBeReleased_SgNBChaConfList_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_ToBeReleased_SgNBChaConfList_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_ToBeReleased_SgNBChaConfList : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-SgNBChaConfList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresentExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPpresent ::= SEQUENCE { - dL-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, - uL-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPpresentExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresent : asn::sequence<3, 0, true, 3> -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPpresent";} - using parent_t = asn::sequence<3, 0, true, 3>; - struct dL_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "dL_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - dL_GTPtunnelEndpoint_t& set_dL_GTPtunnelEndpoint() { dL_GTPtunnelEndpoint.setpresent(true); return dL_GTPtunnelEndpoint;} - dL_GTPtunnelEndpoint_t const* get_dL_GTPtunnelEndpoint() const {return dL_GTPtunnelEndpoint.is_valid() ? &dL_GTPtunnelEndpoint : nullptr;} - struct uL_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "uL_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - uL_GTPtunnelEndpoint_t& set_uL_GTPtunnelEndpoint() { uL_GTPtunnelEndpoint.setpresent(true); return uL_GTPtunnelEndpoint;} - uL_GTPtunnelEndpoint_t const* get_uL_GTPtunnelEndpoint() const {return uL_GTPtunnelEndpoint.is_valid() ? &uL_GTPtunnelEndpoint : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(dL_GTPtunnelEndpoint); - v(uL_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(dL_GTPtunnelEndpoint); - v(uL_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - void clear() - { - dL_GTPtunnelEndpoint.clear(); - uL_GTPtunnelEndpoint.clear(); - iE_Extensions.clear(); - - }; - private: - dL_GTPtunnelEndpoint_t dL_GTPtunnelEndpoint; - uL_GTPtunnelEndpoint_t uL_GTPtunnelEndpoint; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPnotpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPnotpresent ::= SEQUENCE { - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPnotpresentExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresent : asn::sequence<1, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPnotpresent";} - using parent_t = asn::sequence<1, 0, true, 1>; - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(iE_Extensions); - - }; - void clear() - { - iE_Extensions.clear(); - - }; - private: - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeReleased-SgNBModReq-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBModReq_ItemExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeReleased-SgNBModReq-Item ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - en-DC-ResourceConfiguration EN-DC-ResourceConfiguration, - resource-configuration CHOICE { - sgNBPDCPpresent E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPpresent, - sgNBPDCPnotpresent E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPnotpresent, - ... - }, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-SgNBModReq-ItemExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBModReq_Item : asn::sequence<4, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-SgNBModReq-Item";} - using parent_t = asn::sequence<4, 0, true, 1>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct en_DC_ResourceConfiguration_t : EN_DC_ResourceConfiguration - { - static constexpr const char* name() {return "en_DC_ResourceConfiguration_t";} - using parent_t = EN_DC_ResourceConfiguration; - - }; - en_DC_ResourceConfiguration_t& ref_en_DC_ResourceConfiguration() {return en_DC_ResourceConfiguration;} - en_DC_ResourceConfiguration_t const& ref_en_DC_ResourceConfiguration() const {return en_DC_ResourceConfiguration;} - struct resource_configuration_t : asn::choice<2, 0, true> - { - static constexpr const char* name() {return "resource_configuration_t";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~resource_configuration_t() {clear();} - struct sgNBPDCPpresent_t : E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresent - { - static constexpr const char* name() {return "sgNBPDCPpresent_t";} - using parent_t = E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresent; - - }; - struct sgNBPDCPnotpresent_t : E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresent - { - static constexpr const char* name() {return "sgNBPDCPnotpresent_t";} - using parent_t = E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresent; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - sgNBPDCPpresent_t& select_sgNBPDCPpresent() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - sgNBPDCPpresent_t const* get_sgNBPDCPpresent() const { if(get_index() == 1) { return &var.as();} return nullptr; } - sgNBPDCPnotpresent_t& select_sgNBPDCPnotpresent() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - sgNBPDCPnotpresent_t const* get_sgNBPDCPnotpresent() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(sgNBPDCPpresent_t)]; - char dummy2[sizeof(sgNBPDCPnotpresent_t)]; - - }; - asn::variant var; - index_type index {0}; - }; - resource_configuration_t& ref_resource_configuration() {return resource_configuration;} - resource_configuration_t const& ref_resource_configuration() const {return resource_configuration;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(en_DC_ResourceConfiguration); - v(resource_configuration); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(en_DC_ResourceConfiguration); - v(resource_configuration); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - en_DC_ResourceConfiguration.clear(); - resource_configuration.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - en_DC_ResourceConfiguration_t en_DC_ResourceConfiguration; - resource_configuration_t resource_configuration; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeReleased-SgNBModReq-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-ToBeReleased-SgNBModReq-Item CRITICALITY ignore TYPE E-RABs-ToBeReleased-SgNBModReq-Item PRESENCE mandatory}, - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBModReq_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeReleased_SgNBModReq_Item() { set(id_E_RABs_ToBeReleased_SgNBModReq_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_ToBeReleased_SgNBModReq_Item)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_ToBeReleased_SgNBModReq_Item);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeReleased_SgNBModReq_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_ToBeReleased_SgNBModReq_Item& select_id_E_RABs_ToBeReleased_SgNBModReq_Item() { return set(1); } - E_RABs_ToBeReleased_SgNBModReq_Item const* get_id_E_RABs_ToBeReleased_SgNBModReq_Item() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_ToBeReleased_SgNBModReq_Item()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_ToBeReleased_SgNBModReq_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeReleased_SgNBModReq_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeReleased-SgNBModReq-List ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeReleased-SgNBModReq-ItemIEs} } -*/ - -struct E_RABs_ToBeReleased_SgNBModReq_List_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_ToBeReleased_SgNBModReq_List_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_ToBeReleased_SgNBModReq_List : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-SgNBModReq-List";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-ToBeReleased-SgNBModReqd-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-RLCMode-transferred CRITICALITY ignore EXTENSION RLCMode PRESENCE optional}, - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBModReqd_ItemExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RLCMode_transferred() { set(id_RLCMode_transferred); type=1;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_RLCMode_transferred)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_RLCMode_transferred);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RLCMode_transferred() { set(ignore); type=1;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - RLCMode& select_id_RLCMode_transferred() { return set(1); } - RLCMode const* get_id_RLCMode_transferred() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_RLCMode_transferred()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(RLCMode)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RLCMode_transferred() { set(optional); type=1;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeReleased-SgNBModReqd-Item ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - cause Cause, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-SgNBModReqd-ItemExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBModReqd_Item : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-SgNBModReqd-Item";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct cause_t : Cause - { - static constexpr const char* name() {return "cause_t";} - using parent_t = Cause; - - }; - cause_t& ref_cause() {return cause;} - cause_t const& ref_cause() const {return cause;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(cause); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(cause); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - cause.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - cause_t cause; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeReleased-SgNBModReqd-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-ToBeReleased-SgNBModReqd-Item CRITICALITY ignore TYPE E-RABs-ToBeReleased-SgNBModReqd-Item PRESENCE mandatory }, - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBModReqd_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeReleased_SgNBModReqd_Item() { set(id_E_RABs_ToBeReleased_SgNBModReqd_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_ToBeReleased_SgNBModReqd_Item)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_ToBeReleased_SgNBModReqd_Item);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeReleased_SgNBModReqd_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_ToBeReleased_SgNBModReqd_Item& select_id_E_RABs_ToBeReleased_SgNBModReqd_Item() { return set(1); } - E_RABs_ToBeReleased_SgNBModReqd_Item const* get_id_E_RABs_ToBeReleased_SgNBModReqd_Item() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_ToBeReleased_SgNBModReqd_Item()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_ToBeReleased_SgNBModReqd_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeReleased_SgNBModReqd_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeReleased-SgNBModReqdList ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeReleased-SgNBModReqd-ItemIEs} } -*/ - -struct E_RABs_ToBeReleased_SgNBModReqdList_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_ToBeReleased_SgNBModReqdList_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_ToBeReleased_SgNBModReqdList : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-SgNBModReqdList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresentExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPpresent ::= SEQUENCE { - uL-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, - dL-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPpresentExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresent : asn::sequence<3, 0, true, 3> -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPpresent";} - using parent_t = asn::sequence<3, 0, true, 3>; - struct uL_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "uL_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - uL_GTPtunnelEndpoint_t& set_uL_GTPtunnelEndpoint() { uL_GTPtunnelEndpoint.setpresent(true); return uL_GTPtunnelEndpoint;} - uL_GTPtunnelEndpoint_t const* get_uL_GTPtunnelEndpoint() const {return uL_GTPtunnelEndpoint.is_valid() ? &uL_GTPtunnelEndpoint : nullptr;} - struct dL_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "dL_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - dL_GTPtunnelEndpoint_t& set_dL_GTPtunnelEndpoint() { dL_GTPtunnelEndpoint.setpresent(true); return dL_GTPtunnelEndpoint;} - dL_GTPtunnelEndpoint_t const* get_dL_GTPtunnelEndpoint() const {return dL_GTPtunnelEndpoint.is_valid() ? &dL_GTPtunnelEndpoint : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(uL_GTPtunnelEndpoint); - v(dL_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(uL_GTPtunnelEndpoint); - v(dL_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - void clear() - { - uL_GTPtunnelEndpoint.clear(); - dL_GTPtunnelEndpoint.clear(); - iE_Extensions.clear(); - - }; - private: - uL_GTPtunnelEndpoint_t uL_GTPtunnelEndpoint; - dL_GTPtunnelEndpoint_t dL_GTPtunnelEndpoint; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPnotpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresentExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPnotpresent ::= SEQUENCE { - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPnotpresentExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresent : asn::sequence<1, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPnotpresent";} - using parent_t = asn::sequence<1, 0, true, 1>; - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(iE_Extensions); - - }; - void clear() - { - iE_Extensions.clear(); - - }; - private: - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeReleased-SgNBRelConf-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBRelConf_ItemExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeReleased-SgNBRelConf-Item ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - en-DC-ResourceConfiguration EN-DC-ResourceConfiguration, - resource-configuration CHOICE { - sgNBPDCPpresent E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPpresent, - sgNBPDCPnotpresent E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPnotpresent, - ... - }, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-SgNBRelConf-ItemExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBRelConf_Item : asn::sequence<4, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-SgNBRelConf-Item";} - using parent_t = asn::sequence<4, 0, true, 1>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct en_DC_ResourceConfiguration_t : EN_DC_ResourceConfiguration - { - static constexpr const char* name() {return "en_DC_ResourceConfiguration_t";} - using parent_t = EN_DC_ResourceConfiguration; - - }; - en_DC_ResourceConfiguration_t& ref_en_DC_ResourceConfiguration() {return en_DC_ResourceConfiguration;} - en_DC_ResourceConfiguration_t const& ref_en_DC_ResourceConfiguration() const {return en_DC_ResourceConfiguration;} - struct resource_configuration_t : asn::choice<2, 0, true> - { - static constexpr const char* name() {return "resource_configuration_t";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~resource_configuration_t() {clear();} - struct sgNBPDCPpresent_t : E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresent - { - static constexpr const char* name() {return "sgNBPDCPpresent_t";} - using parent_t = E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresent; - - }; - struct sgNBPDCPnotpresent_t : E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresent - { - static constexpr const char* name() {return "sgNBPDCPnotpresent_t";} - using parent_t = E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresent; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - sgNBPDCPpresent_t& select_sgNBPDCPpresent() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - sgNBPDCPpresent_t const* get_sgNBPDCPpresent() const { if(get_index() == 1) { return &var.as();} return nullptr; } - sgNBPDCPnotpresent_t& select_sgNBPDCPnotpresent() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - sgNBPDCPnotpresent_t const* get_sgNBPDCPnotpresent() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(sgNBPDCPpresent_t)]; - char dummy2[sizeof(sgNBPDCPnotpresent_t)]; - - }; - asn::variant var; - index_type index {0}; - }; - resource_configuration_t& ref_resource_configuration() {return resource_configuration;} - resource_configuration_t const& ref_resource_configuration() const {return resource_configuration;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(en_DC_ResourceConfiguration); - v(resource_configuration); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(en_DC_ResourceConfiguration); - v(resource_configuration); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - en_DC_ResourceConfiguration.clear(); - resource_configuration.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - en_DC_ResourceConfiguration_t en_DC_ResourceConfiguration; - resource_configuration_t resource_configuration; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeReleased-SgNBRelConf-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-ToBeReleased-SgNBRelConf-Item CRITICALITY ignore TYPE E-RABs-ToBeReleased-SgNBRelConf-Item PRESENCE mandatory}, - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBRelConf_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeReleased_SgNBRelConf_Item() { set(id_E_RABs_ToBeReleased_SgNBRelConf_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_ToBeReleased_SgNBRelConf_Item)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_ToBeReleased_SgNBRelConf_Item);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeReleased_SgNBRelConf_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_ToBeReleased_SgNBRelConf_Item& select_id_E_RABs_ToBeReleased_SgNBRelConf_Item() { return set(1); } - E_RABs_ToBeReleased_SgNBRelConf_Item const* get_id_E_RABs_ToBeReleased_SgNBRelConf_Item() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_ToBeReleased_SgNBRelConf_Item()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_ToBeReleased_SgNBRelConf_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeReleased_SgNBRelConf_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeReleased-SgNBRelConfList ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeReleased-SgNBRelConf-ItemIEs} } -*/ - -struct E_RABs_ToBeReleased_SgNBRelConfList_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_ToBeReleased_SgNBRelConfList_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_ToBeReleased_SgNBRelConfList : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-SgNBRelConfList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresentExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPpresent ::= SEQUENCE { - uL-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, - dL-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPpresentExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresent : asn::sequence<3, 0, true, 3> -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPpresent";} - using parent_t = asn::sequence<3, 0, true, 3>; - struct uL_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "uL_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - uL_GTPtunnelEndpoint_t& set_uL_GTPtunnelEndpoint() { uL_GTPtunnelEndpoint.setpresent(true); return uL_GTPtunnelEndpoint;} - uL_GTPtunnelEndpoint_t const* get_uL_GTPtunnelEndpoint() const {return uL_GTPtunnelEndpoint.is_valid() ? &uL_GTPtunnelEndpoint : nullptr;} - struct dL_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "dL_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - dL_GTPtunnelEndpoint_t& set_dL_GTPtunnelEndpoint() { dL_GTPtunnelEndpoint.setpresent(true); return dL_GTPtunnelEndpoint;} - dL_GTPtunnelEndpoint_t const* get_dL_GTPtunnelEndpoint() const {return dL_GTPtunnelEndpoint.is_valid() ? &dL_GTPtunnelEndpoint : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(uL_GTPtunnelEndpoint); - v(dL_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(uL_GTPtunnelEndpoint); - v(dL_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - void clear() - { - uL_GTPtunnelEndpoint.clear(); - dL_GTPtunnelEndpoint.clear(); - iE_Extensions.clear(); - - }; - private: - uL_GTPtunnelEndpoint_t uL_GTPtunnelEndpoint; - dL_GTPtunnelEndpoint_t dL_GTPtunnelEndpoint; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPnotpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresentExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPnotpresent ::= SEQUENCE { - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPnotpresentExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresent : asn::sequence<1, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPnotpresent";} - using parent_t = asn::sequence<1, 0, true, 1>; - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(iE_Extensions); - - }; - void clear() - { - iE_Extensions.clear(); - - }; - private: - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeReleased-SgNBRelReq-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBRelReq_ItemExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeReleased-SgNBRelReq-Item ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - en-DC-ResourceConfiguration EN-DC-ResourceConfiguration, - resource-configuration CHOICE { - sgNBPDCPpresent E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPpresent, - sgNBPDCPnotpresent E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPnotpresent, - ... - }, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-SgNBRelReq-ItemExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBRelReq_Item : asn::sequence<4, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-SgNBRelReq-Item";} - using parent_t = asn::sequence<4, 0, true, 1>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct en_DC_ResourceConfiguration_t : EN_DC_ResourceConfiguration - { - static constexpr const char* name() {return "en_DC_ResourceConfiguration_t";} - using parent_t = EN_DC_ResourceConfiguration; - - }; - en_DC_ResourceConfiguration_t& ref_en_DC_ResourceConfiguration() {return en_DC_ResourceConfiguration;} - en_DC_ResourceConfiguration_t const& ref_en_DC_ResourceConfiguration() const {return en_DC_ResourceConfiguration;} - struct resource_configuration_t : asn::choice<2, 0, true> - { - static constexpr const char* name() {return "resource_configuration_t";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~resource_configuration_t() {clear();} - struct sgNBPDCPpresent_t : E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresent - { - static constexpr const char* name() {return "sgNBPDCPpresent_t";} - using parent_t = E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresent; - - }; - struct sgNBPDCPnotpresent_t : E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresent - { - static constexpr const char* name() {return "sgNBPDCPnotpresent_t";} - using parent_t = E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresent; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - sgNBPDCPpresent_t& select_sgNBPDCPpresent() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - sgNBPDCPpresent_t const* get_sgNBPDCPpresent() const { if(get_index() == 1) { return &var.as();} return nullptr; } - sgNBPDCPnotpresent_t& select_sgNBPDCPnotpresent() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - sgNBPDCPnotpresent_t const* get_sgNBPDCPnotpresent() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(sgNBPDCPpresent_t)]; - char dummy2[sizeof(sgNBPDCPnotpresent_t)]; - - }; - asn::variant var; - index_type index {0}; - }; - resource_configuration_t& ref_resource_configuration() {return resource_configuration;} - resource_configuration_t const& ref_resource_configuration() const {return resource_configuration;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(en_DC_ResourceConfiguration); - v(resource_configuration); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(en_DC_ResourceConfiguration); - v(resource_configuration); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - en_DC_ResourceConfiguration.clear(); - resource_configuration.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - en_DC_ResourceConfiguration_t en_DC_ResourceConfiguration; - resource_configuration_t resource_configuration; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeReleased-SgNBRelReq-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-ToBeReleased-SgNBRelReq-Item CRITICALITY ignore TYPE E-RABs-ToBeReleased-SgNBRelReq-Item PRESENCE mandatory}, - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBRelReq_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeReleased_SgNBRelReq_Item() { set(id_E_RABs_ToBeReleased_SgNBRelReq_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_ToBeReleased_SgNBRelReq_Item)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_ToBeReleased_SgNBRelReq_Item);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeReleased_SgNBRelReq_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_ToBeReleased_SgNBRelReq_Item& select_id_E_RABs_ToBeReleased_SgNBRelReq_Item() { return set(1); } - E_RABs_ToBeReleased_SgNBRelReq_Item const* get_id_E_RABs_ToBeReleased_SgNBRelReq_Item() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_ToBeReleased_SgNBRelReq_Item()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_ToBeReleased_SgNBRelReq_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeReleased_SgNBRelReq_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeReleased-SgNBRelReqList ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeReleased-SgNBRelReq-ItemIEs} } -*/ - -struct E_RABs_ToBeReleased_SgNBRelReqList_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_ToBeReleased_SgNBRelReqList_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_ToBeReleased_SgNBRelReqList : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-SgNBRelReqList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-ToBeReleased-SgNBRelReqd-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBRelReqd_ItemExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeReleased-SgNBRelReqd-Item ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - rlc-Mode-transferred RLCMode, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-SgNBRelReqd-ItemExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBRelReqd_Item : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-SgNBRelReqd-Item";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct rlc_Mode_transferred_t : RLCMode - { - static constexpr const char* name() {return "rlc_Mode_transferred_t";} - using parent_t = RLCMode; - - }; - rlc_Mode_transferred_t& ref_rlc_Mode_transferred() {return rlc_Mode_transferred;} - rlc_Mode_transferred_t const& ref_rlc_Mode_transferred() const {return rlc_Mode_transferred;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(rlc_Mode_transferred); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(rlc_Mode_transferred); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - rlc_Mode_transferred.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - rlc_Mode_transferred_t rlc_Mode_transferred; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeReleased-SgNBRelReqd-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-ToBeReleased-SgNBRelReqd-Item CRITICALITY ignore TYPE E-RABs-ToBeReleased-SgNBRelReqd-Item PRESENCE mandatory}, - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBRelReqd_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeReleased_SgNBRelReqd_Item() { set(id_E_RABs_ToBeReleased_SgNBRelReqd_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_ToBeReleased_SgNBRelReqd_Item)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_ToBeReleased_SgNBRelReqd_Item);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeReleased_SgNBRelReqd_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_ToBeReleased_SgNBRelReqd_Item& select_id_E_RABs_ToBeReleased_SgNBRelReqd_Item() { return set(1); } - E_RABs_ToBeReleased_SgNBRelReqd_Item const* get_id_E_RABs_ToBeReleased_SgNBRelReqd_Item() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_ToBeReleased_SgNBRelReqd_Item()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_ToBeReleased_SgNBRelReqd_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeReleased_SgNBRelReqd_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeReleased-SgNBRelReqdList ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeReleased-SgNBRelReqd-ItemIEs} } -*/ - -struct E_RABs_ToBeReleased_SgNBRelReqdList_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_ToBeReleased_SgNBRelReqdList_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_ToBeReleased_SgNBRelReqdList : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-SgNBRelReqdList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-ToBeSetup-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-BearerType CRITICALITY reject EXTENSION BearerType PRESENCE optional}, - ... -} -*/ - -struct E_RABs_ToBeSetup_ItemExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_BearerType() { set(id_BearerType); type=1;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_BearerType)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_BearerType);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_BearerType() { set(reject); type=1;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - BearerType& select_id_BearerType() { return set(1); } - BearerType const* get_id_BearerType() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_BearerType()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(BearerType)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_BearerType() { set(optional); type=1;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeSetup-Item ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - e-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters, - dL-Forwarding DL-Forwarding OPTIONAL, - uL-GTPtunnelEndpoint GTPtunnelEndpoint, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeSetup-ItemExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeSetup_Item : asn::sequence<5, 0, true, 2> -{ - static constexpr const char* name() {return "E-RABs-ToBeSetup-Item";} - using parent_t = asn::sequence<5, 0, true, 2>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct e_RAB_Level_QoS_Parameters_t : E_RAB_Level_QoS_Parameters - { - static constexpr const char* name() {return "e_RAB_Level_QoS_Parameters_t";} - using parent_t = E_RAB_Level_QoS_Parameters; - - }; - e_RAB_Level_QoS_Parameters_t& ref_e_RAB_Level_QoS_Parameters() {return e_RAB_Level_QoS_Parameters;} - e_RAB_Level_QoS_Parameters_t const& ref_e_RAB_Level_QoS_Parameters() const {return e_RAB_Level_QoS_Parameters;} - struct dL_Forwarding_t : DL_Forwarding - { - static constexpr const char* name() {return "dL_Forwarding_t";} - using parent_t = DL_Forwarding; - static constexpr bool optional = true; - - }; - dL_Forwarding_t& set_dL_Forwarding() { dL_Forwarding.setpresent(true); return dL_Forwarding;} - dL_Forwarding_t const* get_dL_Forwarding() const {return dL_Forwarding.is_valid() ? &dL_Forwarding : nullptr;} - struct uL_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "uL_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - - }; - uL_GTPtunnelEndpoint_t& ref_uL_GTPtunnelEndpoint() {return uL_GTPtunnelEndpoint;} - uL_GTPtunnelEndpoint_t const& ref_uL_GTPtunnelEndpoint() const {return uL_GTPtunnelEndpoint;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(e_RAB_Level_QoS_Parameters); - v(dL_Forwarding); - v(uL_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(e_RAB_Level_QoS_Parameters); - v(dL_Forwarding); - v(uL_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - e_RAB_Level_QoS_Parameters.clear(); - dL_Forwarding.clear(); - uL_GTPtunnelEndpoint.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - e_RAB_Level_QoS_Parameters_t e_RAB_Level_QoS_Parameters; - dL_Forwarding_t dL_Forwarding; - uL_GTPtunnelEndpoint_t uL_GTPtunnelEndpoint; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeSetup-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-ToBeSetup-Item CRITICALITY ignore TYPE E-RABs-ToBeSetup-Item PRESENCE mandatory }, - ... -} -*/ - -struct E_RABs_ToBeSetup_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeSetup_Item() { set(id_E_RABs_ToBeSetup_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_ToBeSetup_Item)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_ToBeSetup_Item);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeSetup_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_ToBeSetup_Item& select_id_E_RABs_ToBeSetup_Item() { return set(1); } - E_RABs_ToBeSetup_Item const* get_id_E_RABs_ToBeSetup_Item() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_ToBeSetup_Item()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_ToBeSetup_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeSetup_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeSetup-List ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeSetup-ItemIEs} } -*/ - -struct E_RABs_ToBeSetup_List_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_ToBeSetup_List_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_ToBeSetup_List : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-ToBeSetup-List";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-ToBeSetupRetrieve-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-uL-GTPtunnelEndpoint CRITICALITY reject EXTENSION GTPtunnelEndpoint PRESENCE mandatory}| - { ID id-dL-Forwarding CRITICALITY ignore EXTENSION DL-Forwarding PRESENCE optional }, - ... -} -*/ - -struct E_RABs_ToBeSetupRetrieve_ItemExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_uL_GTPtunnelEndpoint() { set(id_uL_GTPtunnelEndpoint); type=1;} - void select_id_dL_Forwarding() { set(id_dL_Forwarding); type=2;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_uL_GTPtunnelEndpoint)) { type = 1; return true; } - else if(equal(id_dL_Forwarding)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_uL_GTPtunnelEndpoint);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_dL_Forwarding);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_uL_GTPtunnelEndpoint() { set(reject); type=1;} - void select_id_dL_Forwarding() { set(ignore); type=2;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - GTPtunnelEndpoint& select_id_uL_GTPtunnelEndpoint() { return set(1); } - GTPtunnelEndpoint const* get_id_uL_GTPtunnelEndpoint() const { return get(1); } - DL_Forwarding& select_id_dL_Forwarding() { return set(2); } - DL_Forwarding const* get_id_dL_Forwarding() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_uL_GTPtunnelEndpoint()); return true; - case 2: v(select_id_dL_Forwarding()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(DL_Forwarding)]; - char dummy2[sizeof(GTPtunnelEndpoint)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_uL_GTPtunnelEndpoint() { set(mandatory); type=1;} - void select_id_dL_Forwarding() { set(optional); type=2;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeSetupRetrieve-Item ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - e-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters, - bearerType BearerType OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeSetupRetrieve-ItemExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeSetupRetrieve_Item : asn::sequence<4, 0, true, 2> -{ - static constexpr const char* name() {return "E-RABs-ToBeSetupRetrieve-Item";} - using parent_t = asn::sequence<4, 0, true, 2>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct e_RAB_Level_QoS_Parameters_t : E_RAB_Level_QoS_Parameters - { - static constexpr const char* name() {return "e_RAB_Level_QoS_Parameters_t";} - using parent_t = E_RAB_Level_QoS_Parameters; - - }; - e_RAB_Level_QoS_Parameters_t& ref_e_RAB_Level_QoS_Parameters() {return e_RAB_Level_QoS_Parameters;} - e_RAB_Level_QoS_Parameters_t const& ref_e_RAB_Level_QoS_Parameters() const {return e_RAB_Level_QoS_Parameters;} - struct bearerType_t : BearerType - { - static constexpr const char* name() {return "bearerType_t";} - using parent_t = BearerType; - static constexpr bool optional = true; - - }; - bearerType_t& set_bearerType() { bearerType.setpresent(true); return bearerType;} - bearerType_t const* get_bearerType() const {return bearerType.is_valid() ? &bearerType : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(e_RAB_Level_QoS_Parameters); - v(bearerType); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(e_RAB_Level_QoS_Parameters); - v(bearerType); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - e_RAB_Level_QoS_Parameters.clear(); - bearerType.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - e_RAB_Level_QoS_Parameters_t e_RAB_Level_QoS_Parameters; - bearerType_t bearerType; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeSetupRetrieve-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-ToBeSetupRetrieve-Item CRITICALITY ignore TYPE E-RABs-ToBeSetupRetrieve-Item PRESENCE mandatory}, - ... -} -*/ - -struct E_RABs_ToBeSetupRetrieve_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeSetupRetrieve_Item() { set(id_E_RABs_ToBeSetupRetrieve_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_ToBeSetupRetrieve_Item)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_ToBeSetupRetrieve_Item);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeSetupRetrieve_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_ToBeSetupRetrieve_Item& select_id_E_RABs_ToBeSetupRetrieve_Item() { return set(1); } - E_RABs_ToBeSetupRetrieve_Item const* get_id_E_RABs_ToBeSetupRetrieve_Item() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_ToBeSetupRetrieve_Item()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_ToBeSetupRetrieve_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeSetupRetrieve_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeSetup-ListRetrieve ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeSetupRetrieve-ItemIEs} } -*/ - -struct E_RABs_ToBeSetup_ListRetrieve_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_ToBeSetup_ListRetrieve_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_ToBeSetup_ListRetrieve : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-ToBeSetup-ListRetrieve";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -ENB-ENDCConfigUpdateAckIEs X2AP-PROTOCOL-IES ::= { - ... -} -*/ - -struct ENB_ENDCConfigUpdateAckIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -FDD-InfoNeighbourServedNRCell-Information-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct FDD_InfoNeighbourServedNRCell_Information_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -FDD-InfoNeighbourServedNRCell-Information ::= SEQUENCE { - ul-NRFreqInfo NRFreqInfo, - dl-NRFreqInfo NRFreqInfo, - iE-Extensions ProtocolExtensionContainer { {FDD-InfoNeighbourServedNRCell-Information-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct FDD_InfoNeighbourServedNRCell_Information : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "FDD-InfoNeighbourServedNRCell-Information";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct ul_NRFreqInfo_t : NRFreqInfo - { - static constexpr const char* name() {return "ul_NRFreqInfo_t";} - using parent_t = NRFreqInfo; - - }; - ul_NRFreqInfo_t& ref_ul_NRFreqInfo() {return ul_NRFreqInfo;} - ul_NRFreqInfo_t const& ref_ul_NRFreqInfo() const {return ul_NRFreqInfo;} - struct dl_NRFreqInfo_t : NRFreqInfo - { - static constexpr const char* name() {return "dl_NRFreqInfo_t";} - using parent_t = NRFreqInfo; - - }; - dl_NRFreqInfo_t& ref_dl_NRFreqInfo() {return dl_NRFreqInfo;} - dl_NRFreqInfo_t const& ref_dl_NRFreqInfo() const {return dl_NRFreqInfo;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(ul_NRFreqInfo); - v(dl_NRFreqInfo); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(ul_NRFreqInfo); - v(dl_NRFreqInfo); - v(iE_Extensions); - - }; - void clear() - { - ul_NRFreqInfo.clear(); - dl_NRFreqInfo.clear(); - iE_Extensions.clear(); - - }; - private: - ul_NRFreqInfo_t ul_NRFreqInfo; - dl_NRFreqInfo_t dl_NRFreqInfo; - iE_Extensions_t iE_Extensions; - -}; -/* -TDD-InfoNeighbourServedNRCell-Information-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct TDD_InfoNeighbourServedNRCell_Information_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -TDD-InfoNeighbourServedNRCell-Information ::= SEQUENCE { - nRFreqInfo NRFreqInfo, - iE-Extensions ProtocolExtensionContainer { {TDD-InfoNeighbourServedNRCell-Information-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct TDD_InfoNeighbourServedNRCell_Information : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "TDD-InfoNeighbourServedNRCell-Information";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct nRFreqInfo_t : NRFreqInfo - { - static constexpr const char* name() {return "nRFreqInfo_t";} - using parent_t = NRFreqInfo; - - }; - nRFreqInfo_t& ref_nRFreqInfo() {return nRFreqInfo;} - nRFreqInfo_t const& ref_nRFreqInfo() const {return nRFreqInfo;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(nRFreqInfo); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(nRFreqInfo); - v(iE_Extensions); - - }; - void clear() - { - nRFreqInfo.clear(); - iE_Extensions.clear(); - - }; - private: - nRFreqInfo_t nRFreqInfo; - iE_Extensions_t iE_Extensions; - -}; -/* -NRNeighbour-Information-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct NRNeighbour_Information_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -NRNeighbour-Information ::= SEQUENCE (SIZE (1.. maxofNRNeighbours))OF SEQUENCE { - nrpCI NRPCI, - nrCellID NRCGI, - fiveGS-TAC FiveGS-TAC OPTIONAL, - configured-TAC TAC OPTIONAL, - measurementTimingConfiguration OCTET STRING, - nRNeighbourModeInfo CHOICE { - fdd FDD-InfoNeighbourServedNRCell-Information, - tdd TDD-InfoNeighbourServedNRCell-Information, - ... - }, - iE-Extensions ProtocolExtensionContainer { {NRNeighbour-Information-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct NRNeighbour_Information_elm : asn::sequence<7, 0, true, 3> -{ - static constexpr const char* name() {return "NRNeighbour_Information_elm";} - using parent_t = asn::sequence<7, 0, true, 3>; - struct nrpCI_t : NRPCI - { - static constexpr const char* name() {return "nrpCI_t";} - using parent_t = NRPCI; - - }; - nrpCI_t& ref_nrpCI() {return nrpCI;} - nrpCI_t const& ref_nrpCI() const {return nrpCI;} - struct nrCellID_t : NRCGI - { - static constexpr const char* name() {return "nrCellID_t";} - using parent_t = NRCGI; - - }; - nrCellID_t& ref_nrCellID() {return nrCellID;} - nrCellID_t const& ref_nrCellID() const {return nrCellID;} - struct fiveGS_TAC_t : FiveGS_TAC - { - static constexpr const char* name() {return "fiveGS_TAC_t";} - using parent_t = FiveGS_TAC; - static constexpr bool optional = true; - - }; - fiveGS_TAC_t& set_fiveGS_TAC() { fiveGS_TAC.setpresent(true); return fiveGS_TAC;} - fiveGS_TAC_t const* get_fiveGS_TAC() const {return fiveGS_TAC.is_valid() ? &fiveGS_TAC : nullptr;} - struct configured_TAC_t : TAC - { - static constexpr const char* name() {return "configured_TAC_t";} - using parent_t = TAC; - static constexpr bool optional = true; - - }; - configured_TAC_t& set_configured_TAC() { configured_TAC.setpresent(true); return configured_TAC;} - configured_TAC_t const* get_configured_TAC() const {return configured_TAC.is_valid() ? &configured_TAC : nullptr;} - struct measurementTimingConfiguration_t : asn::ostring<> - { - static constexpr const char* name() {return "measurementTimingConfiguration_t";} - using parent_t = asn::ostring<>; - - }; - - measurementTimingConfiguration_t& ref_measurementTimingConfiguration() {return measurementTimingConfiguration;} - measurementTimingConfiguration_t const& ref_measurementTimingConfiguration() const {return measurementTimingConfiguration;} - struct nRNeighbourModeInfo_t : asn::choice<2, 0, true> - { - static constexpr const char* name() {return "nRNeighbourModeInfo_t";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~nRNeighbourModeInfo_t() {clear();} - struct fdd_t : FDD_InfoNeighbourServedNRCell_Information - { - static constexpr const char* name() {return "fdd_t";} - using parent_t = FDD_InfoNeighbourServedNRCell_Information; - - }; - struct tdd_t : TDD_InfoNeighbourServedNRCell_Information - { - static constexpr const char* name() {return "tdd_t";} - using parent_t = TDD_InfoNeighbourServedNRCell_Information; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - fdd_t& select_fdd() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - fdd_t const* get_fdd() const { if(get_index() == 1) { return &var.as();} return nullptr; } - tdd_t& select_tdd() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - tdd_t const* get_tdd() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(fdd_t)]; - char dummy2[sizeof(tdd_t)]; - - }; - asn::variant var; - index_type index {0}; - }; - nRNeighbourModeInfo_t& ref_nRNeighbourModeInfo() {return nRNeighbourModeInfo;} - nRNeighbourModeInfo_t const& ref_nRNeighbourModeInfo() const {return nRNeighbourModeInfo;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(nrpCI); - v(nrCellID); - v(fiveGS_TAC); - v(configured_TAC); - v(measurementTimingConfiguration); - v(nRNeighbourModeInfo); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(nrpCI); - v(nrCellID); - v(fiveGS_TAC); - v(configured_TAC); - v(measurementTimingConfiguration); - v(nRNeighbourModeInfo); - v(iE_Extensions); - - }; - void clear() - { - nrpCI.clear(); - nrCellID.clear(); - fiveGS_TAC.clear(); - configured_TAC.clear(); - measurementTimingConfiguration.clear(); - nRNeighbourModeInfo.clear(); - iE_Extensions.clear(); - - }; - private: - nrpCI_t nrpCI; - nrCellID_t nrCellID; - fiveGS_TAC_t fiveGS_TAC; - configured_TAC_t configured_TAC; - measurementTimingConfiguration_t measurementTimingConfiguration; - nRNeighbourModeInfo_t nRNeighbourModeInfo; - iE_Extensions_t iE_Extensions; - -}; -struct NRNeighbour_Information : asn::sequenceof -{ - static constexpr const char* name() {return "NRNeighbour-Information";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -ServedEUTRAcellsENDCX2Management-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct ServedEUTRAcellsENDCX2Management_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ServedEUTRAcellsENDCX2ManagementList ::= SEQUENCE (SIZE (1.. maxCellineNB)) OF SEQUENCE { - servedEUTRACellInfo ServedCell-Information, - nrNeighbourInfo NRNeighbour-Information OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {ServedEUTRAcellsENDCX2Management-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct ServedEUTRAcellsENDCX2ManagementList_elm : asn::sequence<3, 0, true, 2> -{ - static constexpr const char* name() {return "ServedEUTRAcellsENDCX2ManagementList_elm";} - using parent_t = asn::sequence<3, 0, true, 2>; - struct servedEUTRACellInfo_t : ServedCell_Information - { - static constexpr const char* name() {return "servedEUTRACellInfo_t";} - using parent_t = ServedCell_Information; - - }; - servedEUTRACellInfo_t& ref_servedEUTRACellInfo() {return servedEUTRACellInfo;} - servedEUTRACellInfo_t const& ref_servedEUTRACellInfo() const {return servedEUTRACellInfo;} - struct nrNeighbourInfo_t : NRNeighbour_Information - { - static constexpr const char* name() {return "nrNeighbourInfo_t";} - using parent_t = NRNeighbour_Information; - static constexpr bool optional = true; - - }; - nrNeighbourInfo_t& set_nrNeighbourInfo() { nrNeighbourInfo.setpresent(true); return nrNeighbourInfo;} - nrNeighbourInfo_t const* get_nrNeighbourInfo() const {return nrNeighbourInfo.is_valid() ? &nrNeighbourInfo : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(servedEUTRACellInfo); - v(nrNeighbourInfo); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(servedEUTRACellInfo); - v(nrNeighbourInfo); - v(iE_Extensions); - - }; - void clear() - { - servedEUTRACellInfo.clear(); - nrNeighbourInfo.clear(); - iE_Extensions.clear(); - - }; - private: - servedEUTRACellInfo_t servedEUTRACellInfo; - nrNeighbourInfo_t nrNeighbourInfo; - iE_Extensions_t iE_Extensions; - -}; -struct ServedEUTRAcellsENDCX2ManagementList : asn::sequenceof -{ - static constexpr const char* name() {return "ServedEUTRAcellsENDCX2ManagementList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -ServedEUTRAcellsToModifyListENDCConfUpd-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct ServedEUTRAcellsToModifyListENDCConfUpd_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ServedEUTRAcellsToModifyListENDCConfUpd ::= SEQUENCE (SIZE (1.. maxCellineNB)) OF SEQUENCE { - old-ECGI ECGI, - servedEUTRACellInfo ServedCell-Information, - nrNeighbourInfo NRNeighbour-Information OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {ServedEUTRAcellsToModifyListENDCConfUpd-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct ServedEUTRAcellsToModifyListENDCConfUpd_elm : asn::sequence<4, 0, true, 2> -{ - static constexpr const char* name() {return "ServedEUTRAcellsToModifyListENDCConfUpd_elm";} - using parent_t = asn::sequence<4, 0, true, 2>; - struct old_ECGI_t : ECGI - { - static constexpr const char* name() {return "old_ECGI_t";} - using parent_t = ECGI; - - }; - old_ECGI_t& ref_old_ECGI() {return old_ECGI;} - old_ECGI_t const& ref_old_ECGI() const {return old_ECGI;} - struct servedEUTRACellInfo_t : ServedCell_Information - { - static constexpr const char* name() {return "servedEUTRACellInfo_t";} - using parent_t = ServedCell_Information; - - }; - servedEUTRACellInfo_t& ref_servedEUTRACellInfo() {return servedEUTRACellInfo;} - servedEUTRACellInfo_t const& ref_servedEUTRACellInfo() const {return servedEUTRACellInfo;} - struct nrNeighbourInfo_t : NRNeighbour_Information - { - static constexpr const char* name() {return "nrNeighbourInfo_t";} - using parent_t = NRNeighbour_Information; - static constexpr bool optional = true; - - }; - nrNeighbourInfo_t& set_nrNeighbourInfo() { nrNeighbourInfo.setpresent(true); return nrNeighbourInfo;} - nrNeighbourInfo_t const* get_nrNeighbourInfo() const {return nrNeighbourInfo.is_valid() ? &nrNeighbourInfo : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(old_ECGI); - v(servedEUTRACellInfo); - v(nrNeighbourInfo); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(old_ECGI); - v(servedEUTRACellInfo); - v(nrNeighbourInfo); - v(iE_Extensions); - - }; - void clear() - { - old_ECGI.clear(); - servedEUTRACellInfo.clear(); - nrNeighbourInfo.clear(); - iE_Extensions.clear(); - - }; - private: - old_ECGI_t old_ECGI; - servedEUTRACellInfo_t servedEUTRACellInfo; - nrNeighbourInfo_t nrNeighbourInfo; - iE_Extensions_t iE_Extensions; - -}; -struct ServedEUTRAcellsToModifyListENDCConfUpd : asn::sequenceof -{ - static constexpr const char* name() {return "ServedEUTRAcellsToModifyListENDCConfUpd";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -ServedEUTRAcellsToDeleteListENDCConfUpd ::= SEQUENCE (SIZE (1..maxCellineNB)) OF ECGI -*/ - -struct ServedEUTRAcellsToDeleteListENDCConfUpd_elm : ECGI -{ - static constexpr const char* name() {return "ServedEUTRAcellsToDeleteListENDCConfUpd_elm";} - using parent_t = ECGI; - -}; -struct ServedEUTRAcellsToDeleteListENDCConfUpd : asn::sequenceof -{ - static constexpr const char* name() {return "ServedEUTRAcellsToDeleteListENDCConfUpd";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -ENB-ENDCConfigUpdateIEs X2AP-PROTOCOL-IES ::= { - { ID id-CellAssistanceInformation CRITICALITY reject TYPE CellAssistanceInformation PRESENCE optional }| - { ID id-ServedEUTRAcellsENDCX2ManagementList CRITICALITY reject TYPE ServedEUTRAcellsENDCX2ManagementList PRESENCE optional }| - { ID id-ServedEUTRAcellsToModifyListENDCConfUpd CRITICALITY reject TYPE ServedEUTRAcellsToModifyListENDCConfUpd PRESENCE optional }| - { ID id-ServedEUTRAcellsToDeleteListENDCConfUpd CRITICALITY reject TYPE ServedEUTRAcellsToDeleteListENDCConfUpd PRESENCE optional }, - ... -} -*/ - -struct ENB_ENDCConfigUpdateIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_CellAssistanceInformation() { set(id_CellAssistanceInformation); type=1;} - void select_id_ServedEUTRAcellsENDCX2ManagementList() { set(id_ServedEUTRAcellsENDCX2ManagementList); type=2;} - void select_id_ServedEUTRAcellsToModifyListENDCConfUpd() { set(id_ServedEUTRAcellsToModifyListENDCConfUpd); type=3;} - void select_id_ServedEUTRAcellsToDeleteListENDCConfUpd() { set(id_ServedEUTRAcellsToDeleteListENDCConfUpd); type=4;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_CellAssistanceInformation)) { type = 1; return true; } - else if(equal(id_ServedEUTRAcellsENDCX2ManagementList)) { type = 2; return true; } - else if(equal(id_ServedEUTRAcellsToModifyListENDCConfUpd)) { type = 3; return true; } - else if(equal(id_ServedEUTRAcellsToDeleteListENDCConfUpd)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_CellAssistanceInformation);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_ServedEUTRAcellsENDCX2ManagementList);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_ServedEUTRAcellsToModifyListENDCConfUpd);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_ServedEUTRAcellsToDeleteListENDCConfUpd);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_CellAssistanceInformation() { set(reject); type=1;} - void select_id_ServedEUTRAcellsENDCX2ManagementList() { set(reject); type=2;} - void select_id_ServedEUTRAcellsToModifyListENDCConfUpd() { set(reject); type=3;} - void select_id_ServedEUTRAcellsToDeleteListENDCConfUpd() { set(reject); type=4;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(reject)) { type = 3; return true; } - else if(equal(reject)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(reject);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(reject);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - CellAssistanceInformation& select_id_CellAssistanceInformation() { return set(1); } - CellAssistanceInformation const* get_id_CellAssistanceInformation() const { return get(1); } - ServedEUTRAcellsENDCX2ManagementList& select_id_ServedEUTRAcellsENDCX2ManagementList() { return set(2); } - ServedEUTRAcellsENDCX2ManagementList const* get_id_ServedEUTRAcellsENDCX2ManagementList() const { return get(2); } - ServedEUTRAcellsToModifyListENDCConfUpd& select_id_ServedEUTRAcellsToModifyListENDCConfUpd() { return set(3); } - ServedEUTRAcellsToModifyListENDCConfUpd const* get_id_ServedEUTRAcellsToModifyListENDCConfUpd() const { return get(3); } - ServedEUTRAcellsToDeleteListENDCConfUpd& select_id_ServedEUTRAcellsToDeleteListENDCConfUpd() { return set(4); } - ServedEUTRAcellsToDeleteListENDCConfUpd const* get_id_ServedEUTRAcellsToDeleteListENDCConfUpd() const { return get(4); } - bool is_unknown() const { return type == 5; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_CellAssistanceInformation()); return true; - case 2: v(select_id_ServedEUTRAcellsENDCX2ManagementList()); return true; - case 3: v(select_id_ServedEUTRAcellsToModifyListENDCConfUpd()); return true; - case 4: v(select_id_ServedEUTRAcellsToDeleteListENDCConfUpd()); return true; - case 5: if(type != 5) {clear(); asn::base::set();} type = 5; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CellAssistanceInformation)]; - char dummy2[sizeof(ServedEUTRAcellsENDCX2ManagementList)]; - char dummy3[sizeof(ServedEUTRAcellsToDeleteListENDCConfUpd)]; - char dummy4[sizeof(ServedEUTRAcellsToModifyListENDCConfUpd)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_CellAssistanceInformation() { set(optional); type=1;} - void select_id_ServedEUTRAcellsENDCX2ManagementList() { set(optional); type=2;} - void select_id_ServedEUTRAcellsToModifyListENDCConfUpd() { set(optional); type=3;} - void select_id_ServedEUTRAcellsToDeleteListENDCConfUpd() { set(optional); type=4;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ENB-ENDCX2RemovalReqAckIEs X2AP-PROTOCOL-IES ::= { - { ID id-GlobalENB-ID CRITICALITY reject TYPE GlobalENB-ID PRESENCE mandatory}, - ... -} -*/ - -struct ENB_ENDCX2RemovalReqAckIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_GlobalENB_ID() { set(id_GlobalENB_ID); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_GlobalENB_ID)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_GlobalENB_ID);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_GlobalENB_ID() { set(reject); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - GlobalENB_ID& select_id_GlobalENB_ID() { return set(1); } - GlobalENB_ID const* get_id_GlobalENB_ID() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_GlobalENB_ID()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(GlobalENB_ID)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_GlobalENB_ID() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ENB-ENDCX2RemovalReqIEs X2AP-PROTOCOL-IES ::= { - { ID id-GlobalENB-ID CRITICALITY reject TYPE GlobalENB-ID PRESENCE mandatory}, - ... -} -*/ - -struct ENB_ENDCX2RemovalReqIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_GlobalENB_ID() { set(id_GlobalENB_ID); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_GlobalENB_ID)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_GlobalENB_ID);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_GlobalENB_ID() { set(reject); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - GlobalENB_ID& select_id_GlobalENB_ID() { return set(1); } - GlobalENB_ID const* get_id_GlobalENB_ID() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_GlobalENB_ID()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(GlobalENB_ID)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_GlobalENB_ID() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ENB-ENDCX2SetupReqAckIEs X2AP-PROTOCOL-IES ::= { - { ID id-GlobalENB-ID CRITICALITY reject TYPE GlobalENB-ID PRESENCE mandatory}| - { ID id-ServedEUTRAcellsENDCX2ManagementList CRITICALITY reject TYPE ServedEUTRAcellsENDCX2ManagementList PRESENCE mandatory}, - ... -} -*/ - -struct ENB_ENDCX2SetupReqAckIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_GlobalENB_ID() { set(id_GlobalENB_ID); type=1;} - void select_id_ServedEUTRAcellsENDCX2ManagementList() { set(id_ServedEUTRAcellsENDCX2ManagementList); type=2;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_GlobalENB_ID)) { type = 1; return true; } - else if(equal(id_ServedEUTRAcellsENDCX2ManagementList)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_GlobalENB_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_ServedEUTRAcellsENDCX2ManagementList);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_GlobalENB_ID() { set(reject); type=1;} - void select_id_ServedEUTRAcellsENDCX2ManagementList() { set(reject); type=2;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - GlobalENB_ID& select_id_GlobalENB_ID() { return set(1); } - GlobalENB_ID const* get_id_GlobalENB_ID() const { return get(1); } - ServedEUTRAcellsENDCX2ManagementList& select_id_ServedEUTRAcellsENDCX2ManagementList() { return set(2); } - ServedEUTRAcellsENDCX2ManagementList const* get_id_ServedEUTRAcellsENDCX2ManagementList() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_GlobalENB_ID()); return true; - case 2: v(select_id_ServedEUTRAcellsENDCX2ManagementList()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(GlobalENB_ID)]; - char dummy2[sizeof(ServedEUTRAcellsENDCX2ManagementList)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_GlobalENB_ID() { set(mandatory); type=1;} - void select_id_ServedEUTRAcellsENDCX2ManagementList() { set(mandatory); type=2;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ENB-ENDCX2SetupReqIEs X2AP-PROTOCOL-IES ::= { - { ID id-GlobalENB-ID CRITICALITY reject TYPE GlobalENB-ID PRESENCE mandatory}| - { ID id-ServedEUTRAcellsENDCX2ManagementList CRITICALITY reject TYPE ServedEUTRAcellsENDCX2ManagementList PRESENCE mandatory}, - ... -} -*/ - -struct ENB_ENDCX2SetupReqIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_GlobalENB_ID() { set(id_GlobalENB_ID); type=1;} - void select_id_ServedEUTRAcellsENDCX2ManagementList() { set(id_ServedEUTRAcellsENDCX2ManagementList); type=2;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_GlobalENB_ID)) { type = 1; return true; } - else if(equal(id_ServedEUTRAcellsENDCX2ManagementList)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_GlobalENB_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_ServedEUTRAcellsENDCX2ManagementList);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_GlobalENB_ID() { set(reject); type=1;} - void select_id_ServedEUTRAcellsENDCX2ManagementList() { set(reject); type=2;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - GlobalENB_ID& select_id_GlobalENB_ID() { return set(1); } - GlobalENB_ID const* get_id_GlobalENB_ID() const { return get(1); } - ServedEUTRAcellsENDCX2ManagementList& select_id_ServedEUTRAcellsENDCX2ManagementList() { return set(2); } - ServedEUTRAcellsENDCX2ManagementList const* get_id_ServedEUTRAcellsENDCX2ManagementList() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_GlobalENB_ID()); return true; - case 2: v(select_id_ServedEUTRAcellsENDCX2ManagementList()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(GlobalENB_ID)]; - char dummy2[sizeof(ServedEUTRAcellsENDCX2ManagementList)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_GlobalENB_ID() { set(mandatory); type=1;} - void select_id_ServedEUTRAcellsENDCX2ManagementList() { set(mandatory); type=2;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ListofEUTRACellsinEUTRACoordinationResp ::= SEQUENCE (SIZE (0..maxCellineNB)) OF ECGI -*/ - -struct ListofEUTRACellsinEUTRACoordinationResp_elm : ECGI -{ - static constexpr const char* name() {return "ListofEUTRACellsinEUTRACoordinationResp_elm";} - using parent_t = ECGI; - -}; -struct ListofEUTRACellsinEUTRACoordinationResp : asn::sequenceof -{ - static constexpr const char* name() {return "ListofEUTRACellsinEUTRACoordinationResp";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -ENB-EUTRA-NRCellResourceCoordinationReqAckIEs X2AP-PROTOCOL-IES ::= { - { ID id-DataTrafficResourceIndication CRITICALITY reject TYPE DataTrafficResourceIndication PRESENCE mandatory}| - { ID id-SpectrumSharingGroupID CRITICALITY reject TYPE SpectrumSharingGroupID PRESENCE mandatory}| - { ID id-ListofEUTRACellsinEUTRACoordinationResp CRITICALITY reject TYPE ListofEUTRACellsinEUTRACoordinationResp PRESENCE mandatory}, - ... -} -*/ - -struct ENB_EUTRA_NRCellResourceCoordinationReqAckIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_DataTrafficResourceIndication() { set(id_DataTrafficResourceIndication); type=1;} - void select_id_SpectrumSharingGroupID() { set(id_SpectrumSharingGroupID); type=2;} - void select_id_ListofEUTRACellsinEUTRACoordinationResp() { set(id_ListofEUTRACellsinEUTRACoordinationResp); type=3;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_DataTrafficResourceIndication)) { type = 1; return true; } - else if(equal(id_SpectrumSharingGroupID)) { type = 2; return true; } - else if(equal(id_ListofEUTRACellsinEUTRACoordinationResp)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_DataTrafficResourceIndication);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SpectrumSharingGroupID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_ListofEUTRACellsinEUTRACoordinationResp);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_DataTrafficResourceIndication() { set(reject); type=1;} - void select_id_SpectrumSharingGroupID() { set(reject); type=2;} - void select_id_ListofEUTRACellsinEUTRACoordinationResp() { set(reject); type=3;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(reject)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(reject);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - DataTrafficResourceIndication& select_id_DataTrafficResourceIndication() { return set(1); } - DataTrafficResourceIndication const* get_id_DataTrafficResourceIndication() const { return get(1); } - SpectrumSharingGroupID& select_id_SpectrumSharingGroupID() { return set(2); } - SpectrumSharingGroupID const* get_id_SpectrumSharingGroupID() const { return get(2); } - ListofEUTRACellsinEUTRACoordinationResp& select_id_ListofEUTRACellsinEUTRACoordinationResp() { return set(3); } - ListofEUTRACellsinEUTRACoordinationResp const* get_id_ListofEUTRACellsinEUTRACoordinationResp() const { return get(3); } - bool is_unknown() const { return type == 4; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_DataTrafficResourceIndication()); return true; - case 2: v(select_id_SpectrumSharingGroupID()); return true; - case 3: v(select_id_ListofEUTRACellsinEUTRACoordinationResp()); return true; - case 4: if(type != 4) {clear(); asn::base::set();} type = 4; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(DataTrafficResourceIndication)]; - char dummy2[sizeof(ListofEUTRACellsinEUTRACoordinationResp)]; - char dummy3[sizeof(SpectrumSharingGroupID)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_DataTrafficResourceIndication() { set(mandatory); type=1;} - void select_id_SpectrumSharingGroupID() { set(mandatory); type=2;} - void select_id_ListofEUTRACellsinEUTRACoordinationResp() { set(mandatory); type=3;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ListofEUTRACellsinEUTRACoordinationReq ::= SEQUENCE (SIZE (0..maxCellineNB)) OF ECGI -*/ - -struct ListofEUTRACellsinEUTRACoordinationReq_elm : ECGI -{ - static constexpr const char* name() {return "ListofEUTRACellsinEUTRACoordinationReq_elm";} - using parent_t = ECGI; - -}; -struct ListofEUTRACellsinEUTRACoordinationReq : asn::sequenceof -{ - static constexpr const char* name() {return "ListofEUTRACellsinEUTRACoordinationReq";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -ENB-EUTRA-NRCellResourceCoordinationReqIEs X2AP-PROTOCOL-IES ::= { - { ID id-DataTrafficResourceIndication CRITICALITY reject TYPE DataTrafficResourceIndication PRESENCE mandatory}| - { ID id-SpectrumSharingGroupID CRITICALITY reject TYPE SpectrumSharingGroupID PRESENCE mandatory}| - { ID id-ListofEUTRACellsinEUTRACoordinationReq CRITICALITY reject TYPE ListofEUTRACellsinEUTRACoordinationReq PRESENCE mandatory}, - ... -} -*/ - -struct ENB_EUTRA_NRCellResourceCoordinationReqIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_DataTrafficResourceIndication() { set(id_DataTrafficResourceIndication); type=1;} - void select_id_SpectrumSharingGroupID() { set(id_SpectrumSharingGroupID); type=2;} - void select_id_ListofEUTRACellsinEUTRACoordinationReq() { set(id_ListofEUTRACellsinEUTRACoordinationReq); type=3;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_DataTrafficResourceIndication)) { type = 1; return true; } - else if(equal(id_SpectrumSharingGroupID)) { type = 2; return true; } - else if(equal(id_ListofEUTRACellsinEUTRACoordinationReq)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_DataTrafficResourceIndication);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SpectrumSharingGroupID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_ListofEUTRACellsinEUTRACoordinationReq);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_DataTrafficResourceIndication() { set(reject); type=1;} - void select_id_SpectrumSharingGroupID() { set(reject); type=2;} - void select_id_ListofEUTRACellsinEUTRACoordinationReq() { set(reject); type=3;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(reject)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(reject);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - DataTrafficResourceIndication& select_id_DataTrafficResourceIndication() { return set(1); } - DataTrafficResourceIndication const* get_id_DataTrafficResourceIndication() const { return get(1); } - SpectrumSharingGroupID& select_id_SpectrumSharingGroupID() { return set(2); } - SpectrumSharingGroupID const* get_id_SpectrumSharingGroupID() const { return get(2); } - ListofEUTRACellsinEUTRACoordinationReq& select_id_ListofEUTRACellsinEUTRACoordinationReq() { return set(3); } - ListofEUTRACellsinEUTRACoordinationReq const* get_id_ListofEUTRACellsinEUTRACoordinationReq() const { return get(3); } - bool is_unknown() const { return type == 4; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_DataTrafficResourceIndication()); return true; - case 2: v(select_id_SpectrumSharingGroupID()); return true; - case 3: v(select_id_ListofEUTRACellsinEUTRACoordinationReq()); return true; - case 4: if(type != 4) {clear(); asn::base::set();} type = 4; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(DataTrafficResourceIndication)]; - char dummy2[sizeof(ListofEUTRACellsinEUTRACoordinationReq)]; - char dummy3[sizeof(SpectrumSharingGroupID)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_DataTrafficResourceIndication() { set(mandatory); type=1;} - void select_id_SpectrumSharingGroupID() { set(mandatory); type=2;} - void select_id_ListofEUTRACellsinEUTRACoordinationReq() { set(mandatory); type=3;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ServedCellsToModify-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { -{ ID id-DeactivationIndication CRITICALITY ignore EXTENSION DeactivationIndication PRESENCE optional }, - ... -} -*/ - -struct ServedCellsToModify_Item_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_DeactivationIndication() { set(id_DeactivationIndication); type=1;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_DeactivationIndication)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_DeactivationIndication);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_DeactivationIndication() { set(ignore); type=1;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - DeactivationIndication& select_id_DeactivationIndication() { return set(1); } - DeactivationIndication const* get_id_DeactivationIndication() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_DeactivationIndication()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(DeactivationIndication)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_DeactivationIndication() { set(optional); type=1;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ServedCellsToModify-Item::= SEQUENCE { - old-ecgi ECGI, - servedCellInfo ServedCell-Information, - neighbour-Info Neighbour-Information OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {ServedCellsToModify-Item-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct ServedCellsToModify_Item : asn::sequence<4, 0, true, 2> -{ - static constexpr const char* name() {return "ServedCellsToModify-Item";} - using parent_t = asn::sequence<4, 0, true, 2>; - struct old_ecgi_t : ECGI - { - static constexpr const char* name() {return "old_ecgi_t";} - using parent_t = ECGI; - - }; - old_ecgi_t& ref_old_ecgi() {return old_ecgi;} - old_ecgi_t const& ref_old_ecgi() const {return old_ecgi;} - struct servedCellInfo_t : ServedCell_Information - { - static constexpr const char* name() {return "servedCellInfo_t";} - using parent_t = ServedCell_Information; - - }; - servedCellInfo_t& ref_servedCellInfo() {return servedCellInfo;} - servedCellInfo_t const& ref_servedCellInfo() const {return servedCellInfo;} - struct neighbour_Info_t : Neighbour_Information - { - static constexpr const char* name() {return "neighbour_Info_t";} - using parent_t = Neighbour_Information; - static constexpr bool optional = true; - - }; - neighbour_Info_t& set_neighbour_Info() { neighbour_Info.setpresent(true); return neighbour_Info;} - neighbour_Info_t const* get_neighbour_Info() const {return neighbour_Info.is_valid() ? &neighbour_Info : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(old_ecgi); - v(servedCellInfo); - v(neighbour_Info); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(old_ecgi); - v(servedCellInfo); - v(neighbour_Info); - v(iE_Extensions); - - }; - void clear() - { - old_ecgi.clear(); - servedCellInfo.clear(); - neighbour_Info.clear(); - iE_Extensions.clear(); - - }; - private: - old_ecgi_t old_ecgi; - servedCellInfo_t servedCellInfo; - neighbour_Info_t neighbour_Info; - iE_Extensions_t iE_Extensions; - -}; -/* -ServedCellsToModify::= SEQUENCE (SIZE (1..maxCellineNB)) OF ServedCellsToModify-Item -*/ - -struct ServedCellsToModify_elm : ServedCellsToModify_Item -{ - static constexpr const char* name() {return "ServedCellsToModify_elm";} - using parent_t = ServedCellsToModify_Item; - -}; -struct ServedCellsToModify : asn::sequenceof -{ - static constexpr const char* name() {return "ServedCellsToModify";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -Old-ECGIs::= SEQUENCE (SIZE (1..maxCellineNB)) OF ECGI -*/ - -struct Old_ECGIs_elm : ECGI -{ - static constexpr const char* name() {return "Old_ECGIs_elm";} - using parent_t = ECGI; - -}; -struct Old_ECGIs : asn::sequenceof -{ - static constexpr const char* name() {return "Old-ECGIs";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -ENBConfigurationUpdate-IEs X2AP-PROTOCOL-IES ::= { - { ID id-ServedCellsToAdd CRITICALITY reject TYPE ServedCells PRESENCE optional}| - { ID id-ServedCellsToModify CRITICALITY reject TYPE ServedCellsToModify PRESENCE optional}| - { ID id-ServedCellsToDelete CRITICALITY reject TYPE Old-ECGIs PRESENCE optional}| - { ID id-GUGroupIDToAddList CRITICALITY reject TYPE GUGroupIDList PRESENCE optional}| - { ID id-GUGroupIDToDeleteList CRITICALITY reject TYPE GUGroupIDList PRESENCE optional}| - { ID id-CoverageModificationList CRITICALITY reject TYPE CoverageModificationList PRESENCE optional}, - ... -} -*/ - -struct ENBConfigurationUpdate_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_ServedCellsToAdd() { set(id_ServedCellsToAdd); type=1;} - void select_id_ServedCellsToModify() { set(id_ServedCellsToModify); type=2;} - void select_id_ServedCellsToDelete() { set(id_ServedCellsToDelete); type=3;} - void select_id_GUGroupIDToAddList() { set(id_GUGroupIDToAddList); type=4;} - void select_id_GUGroupIDToDeleteList() { set(id_GUGroupIDToDeleteList); type=5;} - void select_id_CoverageModificationList() { set(id_CoverageModificationList); type=6;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_ServedCellsToAdd)) { type = 1; return true; } - else if(equal(id_ServedCellsToModify)) { type = 2; return true; } - else if(equal(id_ServedCellsToDelete)) { type = 3; return true; } - else if(equal(id_GUGroupIDToAddList)) { type = 4; return true; } - else if(equal(id_GUGroupIDToDeleteList)) { type = 5; return true; } - else if(equal(id_CoverageModificationList)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_ServedCellsToAdd);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_ServedCellsToModify);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_ServedCellsToDelete);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_GUGroupIDToAddList);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_GUGroupIDToDeleteList);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_CoverageModificationList);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_ServedCellsToAdd() { set(reject); type=1;} - void select_id_ServedCellsToModify() { set(reject); type=2;} - void select_id_ServedCellsToDelete() { set(reject); type=3;} - void select_id_GUGroupIDToAddList() { set(reject); type=4;} - void select_id_GUGroupIDToDeleteList() { set(reject); type=5;} - void select_id_CoverageModificationList() { set(reject); type=6;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(reject)) { type = 3; return true; } - else if(equal(reject)) { type = 4; return true; } - else if(equal(reject)) { type = 5; return true; } - else if(equal(reject)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(reject);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(reject);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(reject);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(reject);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - ServedCells& select_id_ServedCellsToAdd() { return set(1); } - ServedCells const* get_id_ServedCellsToAdd() const { return get(1); } - ServedCellsToModify& select_id_ServedCellsToModify() { return set(2); } - ServedCellsToModify const* get_id_ServedCellsToModify() const { return get(2); } - Old_ECGIs& select_id_ServedCellsToDelete() { return set(3); } - Old_ECGIs const* get_id_ServedCellsToDelete() const { return get(3); } - GUGroupIDList& select_id_GUGroupIDToAddList() { return set(4); } - GUGroupIDList const* get_id_GUGroupIDToAddList() const { return get(4); } - GUGroupIDList& select_id_GUGroupIDToDeleteList() { return set(5); } - GUGroupIDList const* get_id_GUGroupIDToDeleteList() const { return get(5); } - CoverageModificationList& select_id_CoverageModificationList() { return set(6); } - CoverageModificationList const* get_id_CoverageModificationList() const { return get(6); } - bool is_unknown() const { return type == 7; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_ServedCellsToAdd()); return true; - case 2: v(select_id_ServedCellsToModify()); return true; - case 3: v(select_id_ServedCellsToDelete()); return true; - case 4: v(select_id_GUGroupIDToAddList()); return true; - case 5: v(select_id_GUGroupIDToDeleteList()); return true; - case 6: v(select_id_CoverageModificationList()); return true; - case 7: if(type != 7) {clear(); asn::base::set();} type = 7; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CoverageModificationList)]; - char dummy2[sizeof(GUGroupIDList)]; - char dummy3[sizeof(Old_ECGIs)]; - char dummy4[sizeof(ServedCells)]; - char dummy5[sizeof(ServedCellsToModify)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_ServedCellsToAdd() { set(optional); type=1;} - void select_id_ServedCellsToModify() { set(optional); type=2;} - void select_id_ServedCellsToDelete() { set(optional); type=3;} - void select_id_GUGroupIDToAddList() { set(optional); type=4;} - void select_id_GUGroupIDToDeleteList() { set(optional); type=5;} - void select_id_CoverageModificationList() { set(optional); type=6;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ENBConfigurationUpdate ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ENBConfigurationUpdate-IEs}}, - ... -} -*/ - -struct ENBConfigurationUpdate : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "ENBConfigurationUpdate";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -ENBConfigurationUpdateAcknowledge-IEs X2AP-PROTOCOL-IES ::= { - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, -... -} -*/ - -struct ENBConfigurationUpdateAcknowledge_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_CriticalityDiagnostics)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_CriticalityDiagnostics() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(1); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_CriticalityDiagnostics()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CriticalityDiagnostics)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_CriticalityDiagnostics() { set(optional); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ENBConfigurationUpdateAcknowledge ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ENBConfigurationUpdateAcknowledge-IEs}}, - ... -} -*/ - -struct ENBConfigurationUpdateAcknowledge : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "ENBConfigurationUpdateAcknowledge";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -ENBConfigurationUpdateFailure-IEs X2AP-PROTOCOL-IES ::= { - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| - { ID id-TimeToWait CRITICALITY ignore TYPE TimeToWait PRESENCE optional}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, - ... -} -*/ - -struct ENBConfigurationUpdateFailure_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_Cause() { set(id_Cause); type=1;} - void select_id_TimeToWait() { set(id_TimeToWait); type=2;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=3;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_Cause)) { type = 1; return true; } - else if(equal(id_TimeToWait)) { type = 2; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_TimeToWait);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_Cause() { set(ignore); type=1;} - void select_id_TimeToWait() { set(ignore); type=2;} - void select_id_CriticalityDiagnostics() { set(ignore); type=3;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - Cause& select_id_Cause() { return set(1); } - Cause const* get_id_Cause() const { return get(1); } - TimeToWait& select_id_TimeToWait() { return set(2); } - TimeToWait const* get_id_TimeToWait() const { return get(2); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(3); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(3); } - bool is_unknown() const { return type == 4; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_Cause()); return true; - case 2: v(select_id_TimeToWait()); return true; - case 3: v(select_id_CriticalityDiagnostics()); return true; - case 4: if(type != 4) {clear(); asn::base::set();} type = 4; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(CriticalityDiagnostics)]; - char dummy3[sizeof(TimeToWait)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_Cause() { set(mandatory); type=1;} - void select_id_TimeToWait() { set(optional); type=2;} - void select_id_CriticalityDiagnostics() { set(optional); type=3;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ENBConfigurationUpdateFailure ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ENBConfigurationUpdateFailure-IEs}}, - ... -} -*/ - -struct ENBConfigurationUpdateFailure : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "ENBConfigurationUpdateFailure";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -ENDCCellActivationFailure-IEs X2AP-PROTOCOL-IES ::= { - { ID id-ActivationID CRITICALITY reject TYPE ActivationID PRESENCE mandatory }| - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, - ... -} -*/ - -struct ENDCCellActivationFailure_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_ActivationID() { set(id_ActivationID); type=1;} - void select_id_Cause() { set(id_Cause); type=2;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=3;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_ActivationID)) { type = 1; return true; } - else if(equal(id_Cause)) { type = 2; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_ActivationID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_ActivationID() { set(reject); type=1;} - void select_id_Cause() { set(ignore); type=2;} - void select_id_CriticalityDiagnostics() { set(ignore); type=3;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - ActivationID& select_id_ActivationID() { return set(1); } - ActivationID const* get_id_ActivationID() const { return get(1); } - Cause& select_id_Cause() { return set(2); } - Cause const* get_id_Cause() const { return get(2); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(3); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(3); } - bool is_unknown() const { return type == 4; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_ActivationID()); return true; - case 2: v(select_id_Cause()); return true; - case 3: v(select_id_CriticalityDiagnostics()); return true; - case 4: if(type != 4) {clear(); asn::base::set();} type = 4; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(ActivationID)]; - char dummy2[sizeof(Cause)]; - char dummy3[sizeof(CriticalityDiagnostics)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_ActivationID() { set(mandatory); type=1;} - void select_id_Cause() { set(mandatory); type=2;} - void select_id_CriticalityDiagnostics() { set(optional); type=3;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ENDCCellActivationFailure ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ENDCCellActivationFailure-IEs}}, - ... -} -*/ - -struct ENDCCellActivationFailure : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "ENDCCellActivationFailure";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -ServedNRCellsToActivate-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct ServedNRCellsToActivate_Item_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ServedNRCellsToActivate-Item::= SEQUENCE { - nrCellID NRCGI, - iE-Extensions ProtocolExtensionContainer { {ServedNRCellsToActivate-Item-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct ServedNRCellsToActivate_Item : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "ServedNRCellsToActivate-Item";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct nrCellID_t : NRCGI - { - static constexpr const char* name() {return "nrCellID_t";} - using parent_t = NRCGI; - - }; - nrCellID_t& ref_nrCellID() {return nrCellID;} - nrCellID_t const& ref_nrCellID() const {return nrCellID;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(nrCellID); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(nrCellID); - v(iE_Extensions); - - }; - void clear() - { - nrCellID.clear(); - iE_Extensions.clear(); - - }; - private: - nrCellID_t nrCellID; - iE_Extensions_t iE_Extensions; - -}; -/* -ServedNRCellsToActivate::= SEQUENCE (SIZE (1.. maxCellinengNB)) OF ServedNRCellsToActivate-Item -*/ - -struct ServedNRCellsToActivate_elm : ServedNRCellsToActivate_Item -{ - static constexpr const char* name() {return "ServedNRCellsToActivate_elm";} - using parent_t = ServedNRCellsToActivate_Item; - -}; -struct ServedNRCellsToActivate : asn::sequenceof -{ - static constexpr const char* name() {return "ServedNRCellsToActivate";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -ENDCCellActivationRequest-IEs X2AP-PROTOCOL-IES ::= { - { ID id-ServedNRCellsToActivate CRITICALITY reject TYPE ServedNRCellsToActivate PRESENCE mandatory}| - { ID id-ActivationID CRITICALITY reject TYPE ActivationID PRESENCE mandatory}, - ... -} -*/ - -struct ENDCCellActivationRequest_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_ServedNRCellsToActivate() { set(id_ServedNRCellsToActivate); type=1;} - void select_id_ActivationID() { set(id_ActivationID); type=2;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_ServedNRCellsToActivate)) { type = 1; return true; } - else if(equal(id_ActivationID)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_ServedNRCellsToActivate);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_ActivationID);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_ServedNRCellsToActivate() { set(reject); type=1;} - void select_id_ActivationID() { set(reject); type=2;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - ServedNRCellsToActivate& select_id_ServedNRCellsToActivate() { return set(1); } - ServedNRCellsToActivate const* get_id_ServedNRCellsToActivate() const { return get(1); } - ActivationID& select_id_ActivationID() { return set(2); } - ActivationID const* get_id_ActivationID() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_ServedNRCellsToActivate()); return true; - case 2: v(select_id_ActivationID()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(ActivationID)]; - char dummy2[sizeof(ServedNRCellsToActivate)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_ServedNRCellsToActivate() { set(mandatory); type=1;} - void select_id_ActivationID() { set(mandatory); type=2;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ENDCCellActivationRequest ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ENDCCellActivationRequest-IEs}}, - ... -} -*/ - -struct ENDCCellActivationRequest : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "ENDCCellActivationRequest";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -ENDCCellActivationResponse-IEs X2AP-PROTOCOL-IES ::= { - { ID id-ActivatedNRCellList CRITICALITY ignore TYPE ActivatedNRCellList PRESENCE mandatory}| - { ID id-ActivationID CRITICALITY reject TYPE ActivationID PRESENCE mandatory}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, - ... -} -*/ - -struct ENDCCellActivationResponse_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_ActivatedNRCellList() { set(id_ActivatedNRCellList); type=1;} - void select_id_ActivationID() { set(id_ActivationID); type=2;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=3;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_ActivatedNRCellList)) { type = 1; return true; } - else if(equal(id_ActivationID)) { type = 2; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_ActivatedNRCellList);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_ActivationID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_ActivatedNRCellList() { set(ignore); type=1;} - void select_id_ActivationID() { set(reject); type=2;} - void select_id_CriticalityDiagnostics() { set(ignore); type=3;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - ActivatedNRCellList& select_id_ActivatedNRCellList() { return set(1); } - ActivatedNRCellList const* get_id_ActivatedNRCellList() const { return get(1); } - ActivationID& select_id_ActivationID() { return set(2); } - ActivationID const* get_id_ActivationID() const { return get(2); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(3); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(3); } - bool is_unknown() const { return type == 4; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_ActivatedNRCellList()); return true; - case 2: v(select_id_ActivationID()); return true; - case 3: v(select_id_CriticalityDiagnostics()); return true; - case 4: if(type != 4) {clear(); asn::base::set();} type = 4; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(ActivatedNRCellList)]; - char dummy2[sizeof(ActivationID)]; - char dummy3[sizeof(CriticalityDiagnostics)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_ActivatedNRCellList() { set(mandatory); type=1;} - void select_id_ActivationID() { set(mandatory); type=2;} - void select_id_CriticalityDiagnostics() { set(optional); type=3;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ENDCCellActivationResponse ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ENDCCellActivationResponse-IEs}}, - ... -} -*/ - -struct ENDCCellActivationResponse : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "ENDCCellActivationResponse";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -FDD-InfoServedNRCell-Information-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct FDD_InfoServedNRCell_Information_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -FDD-InfoServedNRCell-Information ::= SEQUENCE { - ul-NRFreqInfo NRFreqInfo, - dl-NRFreqInfo NRFreqInfo, - ul-NR-TxBW NR-TxBW, - dl-NR-TxBW NR-TxBW, - iE-Extensions ProtocolExtensionContainer { {FDD-InfoServedNRCell-Information-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct FDD_InfoServedNRCell_Information : asn::sequence<5, 0, true, 1> -{ - static constexpr const char* name() {return "FDD-InfoServedNRCell-Information";} - using parent_t = asn::sequence<5, 0, true, 1>; - struct ul_NRFreqInfo_t : NRFreqInfo - { - static constexpr const char* name() {return "ul_NRFreqInfo_t";} - using parent_t = NRFreqInfo; - - }; - ul_NRFreqInfo_t& ref_ul_NRFreqInfo() {return ul_NRFreqInfo;} - ul_NRFreqInfo_t const& ref_ul_NRFreqInfo() const {return ul_NRFreqInfo;} - struct dl_NRFreqInfo_t : NRFreqInfo - { - static constexpr const char* name() {return "dl_NRFreqInfo_t";} - using parent_t = NRFreqInfo; - - }; - dl_NRFreqInfo_t& ref_dl_NRFreqInfo() {return dl_NRFreqInfo;} - dl_NRFreqInfo_t const& ref_dl_NRFreqInfo() const {return dl_NRFreqInfo;} - struct ul_NR_TxBW_t : NR_TxBW - { - static constexpr const char* name() {return "ul_NR_TxBW_t";} - using parent_t = NR_TxBW; - - }; - ul_NR_TxBW_t& ref_ul_NR_TxBW() {return ul_NR_TxBW;} - ul_NR_TxBW_t const& ref_ul_NR_TxBW() const {return ul_NR_TxBW;} - struct dl_NR_TxBW_t : NR_TxBW - { - static constexpr const char* name() {return "dl_NR_TxBW_t";} - using parent_t = NR_TxBW; - - }; - dl_NR_TxBW_t& ref_dl_NR_TxBW() {return dl_NR_TxBW;} - dl_NR_TxBW_t const& ref_dl_NR_TxBW() const {return dl_NR_TxBW;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(ul_NRFreqInfo); - v(dl_NRFreqInfo); - v(ul_NR_TxBW); - v(dl_NR_TxBW); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(ul_NRFreqInfo); - v(dl_NRFreqInfo); - v(ul_NR_TxBW); - v(dl_NR_TxBW); - v(iE_Extensions); - - }; - void clear() - { - ul_NRFreqInfo.clear(); - dl_NRFreqInfo.clear(); - ul_NR_TxBW.clear(); - dl_NR_TxBW.clear(); - iE_Extensions.clear(); - - }; - private: - ul_NRFreqInfo_t ul_NRFreqInfo; - dl_NRFreqInfo_t dl_NRFreqInfo; - ul_NR_TxBW_t ul_NR_TxBW; - dl_NR_TxBW_t dl_NR_TxBW; - iE_Extensions_t iE_Extensions; - -}; -/* -TDD-InfoServedNRCell-Information-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct TDD_InfoServedNRCell_Information_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -TDD-InfoServedNRCell-Information ::= SEQUENCE { - nRFreqInfo NRFreqInfo, - nR-TxBW NR-TxBW, - iE-Extensions ProtocolExtensionContainer { {TDD-InfoServedNRCell-Information-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct TDD_InfoServedNRCell_Information : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "TDD-InfoServedNRCell-Information";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct nRFreqInfo_t : NRFreqInfo - { - static constexpr const char* name() {return "nRFreqInfo_t";} - using parent_t = NRFreqInfo; - - }; - nRFreqInfo_t& ref_nRFreqInfo() {return nRFreqInfo;} - nRFreqInfo_t const& ref_nRFreqInfo() const {return nRFreqInfo;} - struct nR_TxBW_t : NR_TxBW - { - static constexpr const char* name() {return "nR_TxBW_t";} - using parent_t = NR_TxBW; - - }; - nR_TxBW_t& ref_nR_TxBW() {return nR_TxBW;} - nR_TxBW_t const& ref_nR_TxBW() const {return nR_TxBW;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(nRFreqInfo); - v(nR_TxBW); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(nRFreqInfo); - v(nR_TxBW); - v(iE_Extensions); - - }; - void clear() - { - nRFreqInfo.clear(); - nR_TxBW.clear(); - iE_Extensions.clear(); - - }; - private: - nRFreqInfo_t nRFreqInfo; - nR_TxBW_t nR_TxBW; - iE_Extensions_t iE_Extensions; - -}; -/* -ServedNRCell-Information-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct ServedNRCell_Information_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ServedNRCell-Information ::= SEQUENCE { - nrpCI NRPCI, - nrCellID NRCGI, - fiveGS-TAC FiveGS-TAC OPTIONAL, - configured-TAC TAC OPTIONAL, - broadcastPLMNs BroadcastPLMNs-Item, - nrModeInfo CHOICE { - fdd FDD-InfoServedNRCell-Information, - tdd TDD-InfoServedNRCell-Information, - ... - }, - measurementTimingConfiguration OCTET STRING, - iE-Extensions ProtocolExtensionContainer { {ServedNRCell-Information-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct ServedNRCell_Information : asn::sequence<8, 0, true, 3> -{ - static constexpr const char* name() {return "ServedNRCell-Information";} - using parent_t = asn::sequence<8, 0, true, 3>; - struct nrpCI_t : NRPCI - { - static constexpr const char* name() {return "nrpCI_t";} - using parent_t = NRPCI; - - }; - nrpCI_t& ref_nrpCI() {return nrpCI;} - nrpCI_t const& ref_nrpCI() const {return nrpCI;} - struct nrCellID_t : NRCGI - { - static constexpr const char* name() {return "nrCellID_t";} - using parent_t = NRCGI; - - }; - nrCellID_t& ref_nrCellID() {return nrCellID;} - nrCellID_t const& ref_nrCellID() const {return nrCellID;} - struct fiveGS_TAC_t : FiveGS_TAC - { - static constexpr const char* name() {return "fiveGS_TAC_t";} - using parent_t = FiveGS_TAC; - static constexpr bool optional = true; - - }; - fiveGS_TAC_t& set_fiveGS_TAC() { fiveGS_TAC.setpresent(true); return fiveGS_TAC;} - fiveGS_TAC_t const* get_fiveGS_TAC() const {return fiveGS_TAC.is_valid() ? &fiveGS_TAC : nullptr;} - struct configured_TAC_t : TAC - { - static constexpr const char* name() {return "configured_TAC_t";} - using parent_t = TAC; - static constexpr bool optional = true; - - }; - configured_TAC_t& set_configured_TAC() { configured_TAC.setpresent(true); return configured_TAC;} - configured_TAC_t const* get_configured_TAC() const {return configured_TAC.is_valid() ? &configured_TAC : nullptr;} - struct broadcastPLMNs_t : BroadcastPLMNs_Item - { - static constexpr const char* name() {return "broadcastPLMNs_t";} - using parent_t = BroadcastPLMNs_Item; - - }; - broadcastPLMNs_t& ref_broadcastPLMNs() {return broadcastPLMNs;} - broadcastPLMNs_t const& ref_broadcastPLMNs() const {return broadcastPLMNs;} - struct nrModeInfo_t : asn::choice<2, 0, true> - { - static constexpr const char* name() {return "nrModeInfo_t";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~nrModeInfo_t() {clear();} - struct fdd_t : FDD_InfoServedNRCell_Information - { - static constexpr const char* name() {return "fdd_t";} - using parent_t = FDD_InfoServedNRCell_Information; - - }; - struct tdd_t : TDD_InfoServedNRCell_Information - { - static constexpr const char* name() {return "tdd_t";} - using parent_t = TDD_InfoServedNRCell_Information; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - fdd_t& select_fdd() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - fdd_t const* get_fdd() const { if(get_index() == 1) { return &var.as();} return nullptr; } - tdd_t& select_tdd() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - tdd_t const* get_tdd() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(fdd_t)]; - char dummy2[sizeof(tdd_t)]; - - }; - asn::variant var; - index_type index {0}; - }; - nrModeInfo_t& ref_nrModeInfo() {return nrModeInfo;} - nrModeInfo_t const& ref_nrModeInfo() const {return nrModeInfo;} - struct measurementTimingConfiguration_t : asn::ostring<> - { - static constexpr const char* name() {return "measurementTimingConfiguration_t";} - using parent_t = asn::ostring<>; - - }; - - measurementTimingConfiguration_t& ref_measurementTimingConfiguration() {return measurementTimingConfiguration;} - measurementTimingConfiguration_t const& ref_measurementTimingConfiguration() const {return measurementTimingConfiguration;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(nrpCI); - v(nrCellID); - v(fiveGS_TAC); - v(configured_TAC); - v(broadcastPLMNs); - v(nrModeInfo); - v(measurementTimingConfiguration); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(nrpCI); - v(nrCellID); - v(fiveGS_TAC); - v(configured_TAC); - v(broadcastPLMNs); - v(nrModeInfo); - v(measurementTimingConfiguration); - v(iE_Extensions); - - }; - void clear() - { - nrpCI.clear(); - nrCellID.clear(); - fiveGS_TAC.clear(); - configured_TAC.clear(); - broadcastPLMNs.clear(); - nrModeInfo.clear(); - measurementTimingConfiguration.clear(); - iE_Extensions.clear(); - - }; - private: - nrpCI_t nrpCI; - nrCellID_t nrCellID; - fiveGS_TAC_t fiveGS_TAC; - configured_TAC_t configured_TAC; - broadcastPLMNs_t broadcastPLMNs; - nrModeInfo_t nrModeInfo; - measurementTimingConfiguration_t measurementTimingConfiguration; - iE_Extensions_t iE_Extensions; - -}; -/* -En-gNBServedCells-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct En_gNBServedCells_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ServedNRcellsENDCX2ManagementList ::= SEQUENCE (SIZE (1.. maxCellinengNB)) OF SEQUENCE { - servedNRCellInfo ServedNRCell-Information, - nRNeighbourInfo NRNeighbour-Information OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {En-gNBServedCells-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct ServedNRcellsENDCX2ManagementList_elm : asn::sequence<3, 0, true, 2> -{ - static constexpr const char* name() {return "ServedNRcellsENDCX2ManagementList_elm";} - using parent_t = asn::sequence<3, 0, true, 2>; - struct servedNRCellInfo_t : ServedNRCell_Information - { - static constexpr const char* name() {return "servedNRCellInfo_t";} - using parent_t = ServedNRCell_Information; - - }; - servedNRCellInfo_t& ref_servedNRCellInfo() {return servedNRCellInfo;} - servedNRCellInfo_t const& ref_servedNRCellInfo() const {return servedNRCellInfo;} - struct nRNeighbourInfo_t : NRNeighbour_Information - { - static constexpr const char* name() {return "nRNeighbourInfo_t";} - using parent_t = NRNeighbour_Information; - static constexpr bool optional = true; - - }; - nRNeighbourInfo_t& set_nRNeighbourInfo() { nRNeighbourInfo.setpresent(true); return nRNeighbourInfo;} - nRNeighbourInfo_t const* get_nRNeighbourInfo() const {return nRNeighbourInfo.is_valid() ? &nRNeighbourInfo : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(servedNRCellInfo); - v(nRNeighbourInfo); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(servedNRCellInfo); - v(nRNeighbourInfo); - v(iE_Extensions); - - }; - void clear() - { - servedNRCellInfo.clear(); - nRNeighbourInfo.clear(); - iE_Extensions.clear(); - - }; - private: - servedNRCellInfo_t servedNRCellInfo; - nRNeighbourInfo_t nRNeighbourInfo; - iE_Extensions_t iE_Extensions; - -}; -struct ServedNRcellsENDCX2ManagementList : asn::sequenceof -{ - static constexpr const char* name() {return "ServedNRcellsENDCX2ManagementList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -ServedNRCellsToModify-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct ServedNRCellsToModify_Item_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ServedNRCellsToModify-Item::= SEQUENCE { - old-nrcgi NRCGI, - servedNRCellInformation ServedNRCell-Information, - nrNeighbourInformation NRNeighbour-Information OPTIONAL, - nrDeactivationIndication DeactivationIndication OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {ServedNRCellsToModify-Item-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct ServedNRCellsToModify_Item : asn::sequence<5, 0, true, 3> -{ - static constexpr const char* name() {return "ServedNRCellsToModify-Item";} - using parent_t = asn::sequence<5, 0, true, 3>; - struct old_nrcgi_t : NRCGI - { - static constexpr const char* name() {return "old_nrcgi_t";} - using parent_t = NRCGI; - - }; - old_nrcgi_t& ref_old_nrcgi() {return old_nrcgi;} - old_nrcgi_t const& ref_old_nrcgi() const {return old_nrcgi;} - struct servedNRCellInformation_t : ServedNRCell_Information - { - static constexpr const char* name() {return "servedNRCellInformation_t";} - using parent_t = ServedNRCell_Information; - - }; - servedNRCellInformation_t& ref_servedNRCellInformation() {return servedNRCellInformation;} - servedNRCellInformation_t const& ref_servedNRCellInformation() const {return servedNRCellInformation;} - struct nrNeighbourInformation_t : NRNeighbour_Information - { - static constexpr const char* name() {return "nrNeighbourInformation_t";} - using parent_t = NRNeighbour_Information; - static constexpr bool optional = true; - - }; - nrNeighbourInformation_t& set_nrNeighbourInformation() { nrNeighbourInformation.setpresent(true); return nrNeighbourInformation;} - nrNeighbourInformation_t const* get_nrNeighbourInformation() const {return nrNeighbourInformation.is_valid() ? &nrNeighbourInformation : nullptr;} - struct nrDeactivationIndication_t : DeactivationIndication - { - static constexpr const char* name() {return "nrDeactivationIndication_t";} - using parent_t = DeactivationIndication; - static constexpr bool optional = true; - - }; - nrDeactivationIndication_t& set_nrDeactivationIndication() { nrDeactivationIndication.setpresent(true); return nrDeactivationIndication;} - nrDeactivationIndication_t const* get_nrDeactivationIndication() const {return nrDeactivationIndication.is_valid() ? &nrDeactivationIndication : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(old_nrcgi); - v(servedNRCellInformation); - v(nrNeighbourInformation); - v(nrDeactivationIndication); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(old_nrcgi); - v(servedNRCellInformation); - v(nrNeighbourInformation); - v(nrDeactivationIndication); - v(iE_Extensions); - - }; - void clear() - { - old_nrcgi.clear(); - servedNRCellInformation.clear(); - nrNeighbourInformation.clear(); - nrDeactivationIndication.clear(); - iE_Extensions.clear(); - - }; - private: - old_nrcgi_t old_nrcgi; - servedNRCellInformation_t servedNRCellInformation; - nrNeighbourInformation_t nrNeighbourInformation; - nrDeactivationIndication_t nrDeactivationIndication; - iE_Extensions_t iE_Extensions; - -}; -/* -ServedNRcellsToModifyENDCConfUpdList ::= SEQUENCE (SIZE (1..maxCellinengNB)) OF ServedNRCellsToModify-Item -*/ - -struct ServedNRcellsToModifyENDCConfUpdList_elm : ServedNRCellsToModify_Item -{ - static constexpr const char* name() {return "ServedNRcellsToModifyENDCConfUpdList_elm";} - using parent_t = ServedNRCellsToModify_Item; - -}; -struct ServedNRcellsToModifyENDCConfUpdList : asn::sequenceof -{ - static constexpr const char* name() {return "ServedNRcellsToModifyENDCConfUpdList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -ServedNRcellsToDeleteENDCConfUpdList ::= SEQUENCE (SIZE (1..maxCellinengNB)) OF NRCGI -*/ - -struct ServedNRcellsToDeleteENDCConfUpdList_elm : NRCGI -{ - static constexpr const char* name() {return "ServedNRcellsToDeleteENDCConfUpdList_elm";} - using parent_t = NRCGI; - -}; -struct ServedNRcellsToDeleteENDCConfUpdList : asn::sequenceof -{ - static constexpr const char* name() {return "ServedNRcellsToDeleteENDCConfUpdList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -En-gNB-ENDCConfigUpdateIEs X2AP-PROTOCOL-IES ::= { - { ID id-ServedNRcellsENDCX2ManagementList CRITICALITY reject TYPE ServedNRcellsENDCX2ManagementList PRESENCE optional }| - { ID id-ServedNRcellsToModifyListENDCConfUpd CRITICALITY reject TYPE ServedNRcellsToModifyENDCConfUpdList PRESENCE optional }| - { ID id-ServedNRcellsToDeleteListENDCConfUpd CRITICALITY reject TYPE ServedNRcellsToDeleteENDCConfUpdList PRESENCE optional }, - ... -} -*/ - -struct En_gNB_ENDCConfigUpdateIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_ServedNRcellsENDCX2ManagementList() { set(id_ServedNRcellsENDCX2ManagementList); type=1;} - void select_id_ServedNRcellsToModifyListENDCConfUpd() { set(id_ServedNRcellsToModifyListENDCConfUpd); type=2;} - void select_id_ServedNRcellsToDeleteListENDCConfUpd() { set(id_ServedNRcellsToDeleteListENDCConfUpd); type=3;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_ServedNRcellsENDCX2ManagementList)) { type = 1; return true; } - else if(equal(id_ServedNRcellsToModifyListENDCConfUpd)) { type = 2; return true; } - else if(equal(id_ServedNRcellsToDeleteListENDCConfUpd)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_ServedNRcellsENDCX2ManagementList);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_ServedNRcellsToModifyListENDCConfUpd);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_ServedNRcellsToDeleteListENDCConfUpd);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_ServedNRcellsENDCX2ManagementList() { set(reject); type=1;} - void select_id_ServedNRcellsToModifyListENDCConfUpd() { set(reject); type=2;} - void select_id_ServedNRcellsToDeleteListENDCConfUpd() { set(reject); type=3;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(reject)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(reject);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - ServedNRcellsENDCX2ManagementList& select_id_ServedNRcellsENDCX2ManagementList() { return set(1); } - ServedNRcellsENDCX2ManagementList const* get_id_ServedNRcellsENDCX2ManagementList() const { return get(1); } - ServedNRcellsToModifyENDCConfUpdList& select_id_ServedNRcellsToModifyListENDCConfUpd() { return set(2); } - ServedNRcellsToModifyENDCConfUpdList const* get_id_ServedNRcellsToModifyListENDCConfUpd() const { return get(2); } - ServedNRcellsToDeleteENDCConfUpdList& select_id_ServedNRcellsToDeleteListENDCConfUpd() { return set(3); } - ServedNRcellsToDeleteENDCConfUpdList const* get_id_ServedNRcellsToDeleteListENDCConfUpd() const { return get(3); } - bool is_unknown() const { return type == 4; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_ServedNRcellsENDCX2ManagementList()); return true; - case 2: v(select_id_ServedNRcellsToModifyListENDCConfUpd()); return true; - case 3: v(select_id_ServedNRcellsToDeleteListENDCConfUpd()); return true; - case 4: if(type != 4) {clear(); asn::base::set();} type = 4; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(ServedNRcellsENDCX2ManagementList)]; - char dummy2[sizeof(ServedNRcellsToDeleteENDCConfUpdList)]; - char dummy3[sizeof(ServedNRcellsToModifyENDCConfUpdList)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_ServedNRcellsENDCX2ManagementList() { set(optional); type=1;} - void select_id_ServedNRcellsToModifyListENDCConfUpd() { set(optional); type=2;} - void select_id_ServedNRcellsToDeleteListENDCConfUpd() { set(optional); type=3;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -InitiatingNodeType-EndcConfigUpdate::= CHOICE { - init-eNB ProtocolIE-Container {{ENB-ENDCConfigUpdateIEs}}, - init-en-gNB ProtocolIE-Container {{En-gNB-ENDCConfigUpdateIEs}}, - ... -} -*/ - -struct InitiatingNodeType_EndcConfigUpdate : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "InitiatingNodeType-EndcConfigUpdate";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~InitiatingNodeType_EndcConfigUpdate() {clear();} - struct init_eNB_t : ProtocolIE_Container - { - static constexpr const char* name() {return "init_eNB_t";} - using parent_t = ProtocolIE_Container; - - }; - struct init_en_gNB_t : ProtocolIE_Container - { - static constexpr const char* name() {return "init_en_gNB_t";} - using parent_t = ProtocolIE_Container; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - init_eNB_t& select_init_eNB() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - init_eNB_t const* get_init_eNB() const { if(get_index() == 1) { return &var.as();} return nullptr; } - init_en_gNB_t& select_init_en_gNB() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - init_en_gNB_t const* get_init_en_gNB() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(init_eNB_t)]; - char dummy2[sizeof(init_en_gNB_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -ENDCConfigurationUpdate-IEs X2AP-PROTOCOL-IES ::= { - { ID id-InitiatingNodeType-EndcConfigUpdate CRITICALITY reject TYPE InitiatingNodeType-EndcConfigUpdate PRESENCE mandatory}, - ... -} -*/ - -struct ENDCConfigurationUpdate_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_InitiatingNodeType_EndcConfigUpdate() { set(id_InitiatingNodeType_EndcConfigUpdate); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_InitiatingNodeType_EndcConfigUpdate)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_InitiatingNodeType_EndcConfigUpdate);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_InitiatingNodeType_EndcConfigUpdate() { set(reject); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - InitiatingNodeType_EndcConfigUpdate& select_id_InitiatingNodeType_EndcConfigUpdate() { return set(1); } - InitiatingNodeType_EndcConfigUpdate const* get_id_InitiatingNodeType_EndcConfigUpdate() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_InitiatingNodeType_EndcConfigUpdate()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(InitiatingNodeType_EndcConfigUpdate)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_InitiatingNodeType_EndcConfigUpdate() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ENDCConfigurationUpdate ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ENDCConfigurationUpdate-IEs}}, - ... -} -*/ - -struct ENDCConfigurationUpdate : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "ENDCConfigurationUpdate";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -En-gNB-ENDCConfigUpdateAckIEs X2AP-PROTOCOL-IES ::= { - { ID id-ServedNRcellsENDCX2ManagementList CRITICALITY reject TYPE ServedNRcellsENDCX2ManagementList PRESENCE optional}, - ... -} -*/ - -struct En_gNB_ENDCConfigUpdateAckIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_ServedNRcellsENDCX2ManagementList() { set(id_ServedNRcellsENDCX2ManagementList); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_ServedNRcellsENDCX2ManagementList)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_ServedNRcellsENDCX2ManagementList);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_ServedNRcellsENDCX2ManagementList() { set(reject); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - ServedNRcellsENDCX2ManagementList& select_id_ServedNRcellsENDCX2ManagementList() { return set(1); } - ServedNRcellsENDCX2ManagementList const* get_id_ServedNRcellsENDCX2ManagementList() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_ServedNRcellsENDCX2ManagementList()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(ServedNRcellsENDCX2ManagementList)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_ServedNRcellsENDCX2ManagementList() { set(optional); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RespondingNodeType-EndcConfigUpdate::= CHOICE { - respond-eNB ProtocolIE-Container {{ENB-ENDCConfigUpdateAckIEs}}, - respond-en-gNB ProtocolIE-Container {{En-gNB-ENDCConfigUpdateAckIEs}}, - ... -} -*/ - -struct RespondingNodeType_EndcConfigUpdate : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "RespondingNodeType-EndcConfigUpdate";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~RespondingNodeType_EndcConfigUpdate() {clear();} - struct respond_eNB_t : ProtocolIE_Container - { - static constexpr const char* name() {return "respond_eNB_t";} - using parent_t = ProtocolIE_Container; - - }; - struct respond_en_gNB_t : ProtocolIE_Container - { - static constexpr const char* name() {return "respond_en_gNB_t";} - using parent_t = ProtocolIE_Container; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - respond_eNB_t& select_respond_eNB() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - respond_eNB_t const* get_respond_eNB() const { if(get_index() == 1) { return &var.as();} return nullptr; } - respond_en_gNB_t& select_respond_en_gNB() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - respond_en_gNB_t const* get_respond_en_gNB() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(respond_eNB_t)]; - char dummy2[sizeof(respond_en_gNB_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -ENDCConfigurationUpdateAcknowledge-IEs X2AP-PROTOCOL-IES ::= { - { ID id-RespondingNodeType-EndcConfigUpdate CRITICALITY reject TYPE RespondingNodeType-EndcConfigUpdate PRESENCE mandatory}, - ... -} -*/ - -struct ENDCConfigurationUpdateAcknowledge_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RespondingNodeType_EndcConfigUpdate() { set(id_RespondingNodeType_EndcConfigUpdate); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_RespondingNodeType_EndcConfigUpdate)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_RespondingNodeType_EndcConfigUpdate);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RespondingNodeType_EndcConfigUpdate() { set(reject); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - RespondingNodeType_EndcConfigUpdate& select_id_RespondingNodeType_EndcConfigUpdate() { return set(1); } - RespondingNodeType_EndcConfigUpdate const* get_id_RespondingNodeType_EndcConfigUpdate() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_RespondingNodeType_EndcConfigUpdate()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(RespondingNodeType_EndcConfigUpdate)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RespondingNodeType_EndcConfigUpdate() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ENDCConfigurationUpdateAcknowledge ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ENDCConfigurationUpdateAcknowledge-IEs}}, - ... -} -*/ - -struct ENDCConfigurationUpdateAcknowledge : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "ENDCConfigurationUpdateAcknowledge";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -ENDCConfigurationUpdateFailure-IEs X2AP-PROTOCOL-IES ::= { - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }| - { ID id-TimeToWait CRITICALITY ignore TYPE TimeToWait PRESENCE optional }, - ... -} -*/ - -struct ENDCConfigurationUpdateFailure_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_Cause() { set(id_Cause); type=1;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=2;} - void select_id_TimeToWait() { set(id_TimeToWait); type=3;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_Cause)) { type = 1; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 2; return true; } - else if(equal(id_TimeToWait)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_TimeToWait);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_Cause() { set(ignore); type=1;} - void select_id_CriticalityDiagnostics() { set(ignore); type=2;} - void select_id_TimeToWait() { set(ignore); type=3;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - Cause& select_id_Cause() { return set(1); } - Cause const* get_id_Cause() const { return get(1); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(2); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(2); } - TimeToWait& select_id_TimeToWait() { return set(3); } - TimeToWait const* get_id_TimeToWait() const { return get(3); } - bool is_unknown() const { return type == 4; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_Cause()); return true; - case 2: v(select_id_CriticalityDiagnostics()); return true; - case 3: v(select_id_TimeToWait()); return true; - case 4: if(type != 4) {clear(); asn::base::set();} type = 4; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(CriticalityDiagnostics)]; - char dummy3[sizeof(TimeToWait)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_Cause() { set(mandatory); type=1;} - void select_id_CriticalityDiagnostics() { set(optional); type=2;} - void select_id_TimeToWait() { set(optional); type=3;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ENDCConfigurationUpdateFailure ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ENDCConfigurationUpdateFailure-IEs}}, - ... -} -*/ - -struct ENDCConfigurationUpdateFailure : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "ENDCConfigurationUpdateFailure";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -ENDCPartialResetConfirm-IEs X2AP-PROTOCOL-IES ::= { - { ID id-UEs-Admitted-ToBeReset CRITICALITY reject TYPE UEsToBeResetList PRESENCE mandatory}, - ... -} -*/ - -struct ENDCPartialResetConfirm_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_UEs_Admitted_ToBeReset() { set(id_UEs_Admitted_ToBeReset); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_UEs_Admitted_ToBeReset)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_UEs_Admitted_ToBeReset);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_UEs_Admitted_ToBeReset() { set(reject); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UEsToBeResetList& select_id_UEs_Admitted_ToBeReset() { return set(1); } - UEsToBeResetList const* get_id_UEs_Admitted_ToBeReset() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_UEs_Admitted_ToBeReset()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(UEsToBeResetList)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_UEs_Admitted_ToBeReset() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ENDCPartialResetConfirm ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ENDCPartialResetConfirm-IEs}}, - ... -} -*/ - -struct ENDCPartialResetConfirm : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "ENDCPartialResetConfirm";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -ENDCPartialResetRequired-IEs X2AP-PROTOCOL-IES ::= { - { ID id-UEs-ToBeReset CRITICALITY reject TYPE UEsToBeResetList PRESENCE mandatory}| - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }, - ... -} -*/ - -struct ENDCPartialResetRequired_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_UEs_ToBeReset() { set(id_UEs_ToBeReset); type=1;} - void select_id_Cause() { set(id_Cause); type=2;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_UEs_ToBeReset)) { type = 1; return true; } - else if(equal(id_Cause)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_UEs_ToBeReset);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_UEs_ToBeReset() { set(reject); type=1;} - void select_id_Cause() { set(ignore); type=2;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UEsToBeResetList& select_id_UEs_ToBeReset() { return set(1); } - UEsToBeResetList const* get_id_UEs_ToBeReset() const { return get(1); } - Cause& select_id_Cause() { return set(2); } - Cause const* get_id_Cause() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_UEs_ToBeReset()); return true; - case 2: v(select_id_Cause()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(UEsToBeResetList)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_UEs_ToBeReset() { set(mandatory); type=1;} - void select_id_Cause() { set(mandatory); type=2;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ENDCPartialResetRequired ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ENDCPartialResetRequired-IEs}}, - ... -} -*/ - -struct ENDCPartialResetRequired : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "ENDCPartialResetRequired";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -ENDCX2RemovalFailure-IEs X2AP-PROTOCOL-IES ::= { - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory} | - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, - ... -} -*/ - -struct ENDCX2RemovalFailure_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_Cause() { set(id_Cause); type=1;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=2;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_Cause)) { type = 1; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_Cause() { set(ignore); type=1;} - void select_id_CriticalityDiagnostics() { set(ignore); type=2;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - Cause& select_id_Cause() { return set(1); } - Cause const* get_id_Cause() const { return get(1); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(2); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_Cause()); return true; - case 2: v(select_id_CriticalityDiagnostics()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(CriticalityDiagnostics)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_Cause() { set(mandatory); type=1;} - void select_id_CriticalityDiagnostics() { set(optional); type=2;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ENDCX2RemovalFailure ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ENDCX2RemovalFailure-IEs}}, - ... -} -*/ - -struct ENDCX2RemovalFailure : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "ENDCX2RemovalFailure";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -En-gNB-ENDCX2RemovalReqIEs X2AP-PROTOCOL-IES ::= { - { ID id-Globalen-gNB-ID CRITICALITY reject TYPE GlobalGNB-ID PRESENCE mandatory}, - ... -} -*/ - -struct En_gNB_ENDCX2RemovalReqIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_Globalen_gNB_ID() { set(id_Globalen_gNB_ID); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_Globalen_gNB_ID)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_Globalen_gNB_ID);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_Globalen_gNB_ID() { set(reject); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - GlobalGNB_ID& select_id_Globalen_gNB_ID() { return set(1); } - GlobalGNB_ID const* get_id_Globalen_gNB_ID() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_Globalen_gNB_ID()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(GlobalGNB_ID)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_Globalen_gNB_ID() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -InitiatingNodeType-EndcX2Removal ::= CHOICE { - init-eNB ProtocolIE-Container {{ENB-ENDCX2RemovalReqIEs}}, - init-en-gNB ProtocolIE-Container {{En-gNB-ENDCX2RemovalReqIEs}}, - ... -} -*/ - -struct InitiatingNodeType_EndcX2Removal : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "InitiatingNodeType-EndcX2Removal";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~InitiatingNodeType_EndcX2Removal() {clear();} - struct init_eNB_t : ProtocolIE_Container - { - static constexpr const char* name() {return "init_eNB_t";} - using parent_t = ProtocolIE_Container; - - }; - struct init_en_gNB_t : ProtocolIE_Container - { - static constexpr const char* name() {return "init_en_gNB_t";} - using parent_t = ProtocolIE_Container; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - init_eNB_t& select_init_eNB() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - init_eNB_t const* get_init_eNB() const { if(get_index() == 1) { return &var.as();} return nullptr; } - init_en_gNB_t& select_init_en_gNB() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - init_en_gNB_t const* get_init_en_gNB() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(init_eNB_t)]; - char dummy2[sizeof(init_en_gNB_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -ENDCX2RemovalRequest-IEs X2AP-PROTOCOL-IES ::= { - { ID id-InitiatingNodeType-EndcX2Removal CRITICALITY reject TYPE InitiatingNodeType-EndcX2Removal PRESENCE mandatory}, - ... -} -*/ - -struct ENDCX2RemovalRequest_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_InitiatingNodeType_EndcX2Removal() { set(id_InitiatingNodeType_EndcX2Removal); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_InitiatingNodeType_EndcX2Removal)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_InitiatingNodeType_EndcX2Removal);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_InitiatingNodeType_EndcX2Removal() { set(reject); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - InitiatingNodeType_EndcX2Removal& select_id_InitiatingNodeType_EndcX2Removal() { return set(1); } - InitiatingNodeType_EndcX2Removal const* get_id_InitiatingNodeType_EndcX2Removal() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_InitiatingNodeType_EndcX2Removal()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(InitiatingNodeType_EndcX2Removal)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_InitiatingNodeType_EndcX2Removal() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ENDCX2RemovalRequest ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ENDCX2RemovalRequest-IEs}}, - ... -} -*/ - -struct ENDCX2RemovalRequest : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "ENDCX2RemovalRequest";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -En-gNB-ENDCX2RemovalReqAckIEs X2AP-PROTOCOL-IES ::= { - { ID id-Globalen-gNB-ID CRITICALITY reject TYPE GlobalGNB-ID PRESENCE mandatory}, - ... -} -*/ - -struct En_gNB_ENDCX2RemovalReqAckIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_Globalen_gNB_ID() { set(id_Globalen_gNB_ID); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_Globalen_gNB_ID)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_Globalen_gNB_ID);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_Globalen_gNB_ID() { set(reject); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - GlobalGNB_ID& select_id_Globalen_gNB_ID() { return set(1); } - GlobalGNB_ID const* get_id_Globalen_gNB_ID() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_Globalen_gNB_ID()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(GlobalGNB_ID)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_Globalen_gNB_ID() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RespondingNodeType-EndcX2Removal ::= CHOICE { - respond-eNB ProtocolIE-Container {{ENB-ENDCX2RemovalReqAckIEs}}, - respond-en-gNB ProtocolIE-Container {{En-gNB-ENDCX2RemovalReqAckIEs}}, - ... -} -*/ - -struct RespondingNodeType_EndcX2Removal : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "RespondingNodeType-EndcX2Removal";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~RespondingNodeType_EndcX2Removal() {clear();} - struct respond_eNB_t : ProtocolIE_Container - { - static constexpr const char* name() {return "respond_eNB_t";} - using parent_t = ProtocolIE_Container; - - }; - struct respond_en_gNB_t : ProtocolIE_Container - { - static constexpr const char* name() {return "respond_en_gNB_t";} - using parent_t = ProtocolIE_Container; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - respond_eNB_t& select_respond_eNB() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - respond_eNB_t const* get_respond_eNB() const { if(get_index() == 1) { return &var.as();} return nullptr; } - respond_en_gNB_t& select_respond_en_gNB() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - respond_en_gNB_t const* get_respond_en_gNB() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(respond_eNB_t)]; - char dummy2[sizeof(respond_en_gNB_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -ENDCX2RemovalResponse-IEs X2AP-PROTOCOL-IES ::= { - { ID id-RespondingNodeType-EndcX2Removal CRITICALITY reject TYPE RespondingNodeType-EndcX2Removal PRESENCE mandatory}, - ... -} -*/ - -struct ENDCX2RemovalResponse_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RespondingNodeType_EndcX2Removal() { set(id_RespondingNodeType_EndcX2Removal); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_RespondingNodeType_EndcX2Removal)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_RespondingNodeType_EndcX2Removal);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RespondingNodeType_EndcX2Removal() { set(reject); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - RespondingNodeType_EndcX2Removal& select_id_RespondingNodeType_EndcX2Removal() { return set(1); } - RespondingNodeType_EndcX2Removal const* get_id_RespondingNodeType_EndcX2Removal() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_RespondingNodeType_EndcX2Removal()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(RespondingNodeType_EndcX2Removal)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RespondingNodeType_EndcX2Removal() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ENDCX2RemovalResponse ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ENDCX2RemovalResponse-IEs}}, - ... -} -*/ - -struct ENDCX2RemovalResponse : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "ENDCX2RemovalResponse";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -ENDCX2SetupFailure-IEs X2AP-PROTOCOL-IES ::= { - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory} | - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional } | - { ID id-TimeToWait CRITICALITY ignore TYPE TimeToWait PRESENCE optional }, - ... -} -*/ - -struct ENDCX2SetupFailure_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_Cause() { set(id_Cause); type=1;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=2;} - void select_id_TimeToWait() { set(id_TimeToWait); type=3;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_Cause)) { type = 1; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 2; return true; } - else if(equal(id_TimeToWait)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_TimeToWait);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_Cause() { set(ignore); type=1;} - void select_id_CriticalityDiagnostics() { set(ignore); type=2;} - void select_id_TimeToWait() { set(ignore); type=3;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - Cause& select_id_Cause() { return set(1); } - Cause const* get_id_Cause() const { return get(1); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(2); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(2); } - TimeToWait& select_id_TimeToWait() { return set(3); } - TimeToWait const* get_id_TimeToWait() const { return get(3); } - bool is_unknown() const { return type == 4; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_Cause()); return true; - case 2: v(select_id_CriticalityDiagnostics()); return true; - case 3: v(select_id_TimeToWait()); return true; - case 4: if(type != 4) {clear(); asn::base::set();} type = 4; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(CriticalityDiagnostics)]; - char dummy3[sizeof(TimeToWait)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_Cause() { set(mandatory); type=1;} - void select_id_CriticalityDiagnostics() { set(optional); type=2;} - void select_id_TimeToWait() { set(optional); type=3;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ENDCX2SetupFailure ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ENDCX2SetupFailure-IEs}}, - ... -} -*/ - -struct ENDCX2SetupFailure : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "ENDCX2SetupFailure";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -En-gNB-ENDCX2SetupReqIEs X2AP-PROTOCOL-IES ::= { - { ID id-Globalen-gNB-ID CRITICALITY reject TYPE GlobalGNB-ID PRESENCE mandatory}| - { ID id-ServedNRcellsENDCX2ManagementList CRITICALITY reject TYPE ServedNRcellsENDCX2ManagementList PRESENCE mandatory}, - ... -} -*/ - -struct En_gNB_ENDCX2SetupReqIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_Globalen_gNB_ID() { set(id_Globalen_gNB_ID); type=1;} - void select_id_ServedNRcellsENDCX2ManagementList() { set(id_ServedNRcellsENDCX2ManagementList); type=2;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_Globalen_gNB_ID)) { type = 1; return true; } - else if(equal(id_ServedNRcellsENDCX2ManagementList)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_Globalen_gNB_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_ServedNRcellsENDCX2ManagementList);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_Globalen_gNB_ID() { set(reject); type=1;} - void select_id_ServedNRcellsENDCX2ManagementList() { set(reject); type=2;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - GlobalGNB_ID& select_id_Globalen_gNB_ID() { return set(1); } - GlobalGNB_ID const* get_id_Globalen_gNB_ID() const { return get(1); } - ServedNRcellsENDCX2ManagementList& select_id_ServedNRcellsENDCX2ManagementList() { return set(2); } - ServedNRcellsENDCX2ManagementList const* get_id_ServedNRcellsENDCX2ManagementList() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_Globalen_gNB_ID()); return true; - case 2: v(select_id_ServedNRcellsENDCX2ManagementList()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(GlobalGNB_ID)]; - char dummy2[sizeof(ServedNRcellsENDCX2ManagementList)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_Globalen_gNB_ID() { set(mandatory); type=1;} - void select_id_ServedNRcellsENDCX2ManagementList() { set(mandatory); type=2;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -InitiatingNodeType-EndcX2Setup ::= CHOICE { - init-eNB ProtocolIE-Container {{ENB-ENDCX2SetupReqIEs}}, - init-en-gNB ProtocolIE-Container {{En-gNB-ENDCX2SetupReqIEs}}, - ... -} -*/ - -struct InitiatingNodeType_EndcX2Setup : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "InitiatingNodeType-EndcX2Setup";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~InitiatingNodeType_EndcX2Setup() {clear();} - struct init_eNB_t : ProtocolIE_Container - { - static constexpr const char* name() {return "init_eNB_t";} - using parent_t = ProtocolIE_Container; - - }; - struct init_en_gNB_t : ProtocolIE_Container - { - static constexpr const char* name() {return "init_en_gNB_t";} - using parent_t = ProtocolIE_Container; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - init_eNB_t& select_init_eNB() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - init_eNB_t const* get_init_eNB() const { if(get_index() == 1) { return &var.as();} return nullptr; } - init_en_gNB_t& select_init_en_gNB() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - init_en_gNB_t const* get_init_en_gNB() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(init_eNB_t)]; - char dummy2[sizeof(init_en_gNB_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -ENDCX2SetupRequest-IEs X2AP-PROTOCOL-IES ::= { - { ID id-InitiatingNodeType-EndcX2Setup CRITICALITY reject TYPE InitiatingNodeType-EndcX2Setup PRESENCE mandatory}, - ... -} -*/ - -struct ENDCX2SetupRequest_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_InitiatingNodeType_EndcX2Setup() { set(id_InitiatingNodeType_EndcX2Setup); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_InitiatingNodeType_EndcX2Setup)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_InitiatingNodeType_EndcX2Setup);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_InitiatingNodeType_EndcX2Setup() { set(reject); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - InitiatingNodeType_EndcX2Setup& select_id_InitiatingNodeType_EndcX2Setup() { return set(1); } - InitiatingNodeType_EndcX2Setup const* get_id_InitiatingNodeType_EndcX2Setup() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_InitiatingNodeType_EndcX2Setup()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(InitiatingNodeType_EndcX2Setup)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_InitiatingNodeType_EndcX2Setup() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ENDCX2SetupRequest ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ENDCX2SetupRequest-IEs}}, - ... -} -*/ - -struct ENDCX2SetupRequest : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "ENDCX2SetupRequest";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -En-gNB-ENDCX2SetupReqAckIEs X2AP-PROTOCOL-IES ::= { - { ID id-Globalen-gNB-ID CRITICALITY reject TYPE GlobalGNB-ID PRESENCE mandatory}| - { ID id-ServedNRcellsENDCX2ManagementList CRITICALITY reject TYPE ServedNRcellsENDCX2ManagementList PRESENCE mandatory}, - ... -} -*/ - -struct En_gNB_ENDCX2SetupReqAckIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_Globalen_gNB_ID() { set(id_Globalen_gNB_ID); type=1;} - void select_id_ServedNRcellsENDCX2ManagementList() { set(id_ServedNRcellsENDCX2ManagementList); type=2;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_Globalen_gNB_ID)) { type = 1; return true; } - else if(equal(id_ServedNRcellsENDCX2ManagementList)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_Globalen_gNB_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_ServedNRcellsENDCX2ManagementList);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_Globalen_gNB_ID() { set(reject); type=1;} - void select_id_ServedNRcellsENDCX2ManagementList() { set(reject); type=2;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - GlobalGNB_ID& select_id_Globalen_gNB_ID() { return set(1); } - GlobalGNB_ID const* get_id_Globalen_gNB_ID() const { return get(1); } - ServedNRcellsENDCX2ManagementList& select_id_ServedNRcellsENDCX2ManagementList() { return set(2); } - ServedNRcellsENDCX2ManagementList const* get_id_ServedNRcellsENDCX2ManagementList() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_Globalen_gNB_ID()); return true; - case 2: v(select_id_ServedNRcellsENDCX2ManagementList()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(GlobalGNB_ID)]; - char dummy2[sizeof(ServedNRcellsENDCX2ManagementList)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_Globalen_gNB_ID() { set(mandatory); type=1;} - void select_id_ServedNRcellsENDCX2ManagementList() { set(mandatory); type=2;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RespondingNodeType-EndcX2Setup ::= CHOICE { - respond-eNB ProtocolIE-Container {{ENB-ENDCX2SetupReqAckIEs}}, - respond-en-gNB ProtocolIE-Container {{En-gNB-ENDCX2SetupReqAckIEs}}, - ... -} -*/ - -struct RespondingNodeType_EndcX2Setup : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "RespondingNodeType-EndcX2Setup";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~RespondingNodeType_EndcX2Setup() {clear();} - struct respond_eNB_t : ProtocolIE_Container - { - static constexpr const char* name() {return "respond_eNB_t";} - using parent_t = ProtocolIE_Container; - - }; - struct respond_en_gNB_t : ProtocolIE_Container - { - static constexpr const char* name() {return "respond_en_gNB_t";} - using parent_t = ProtocolIE_Container; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - respond_eNB_t& select_respond_eNB() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - respond_eNB_t const* get_respond_eNB() const { if(get_index() == 1) { return &var.as();} return nullptr; } - respond_en_gNB_t& select_respond_en_gNB() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - respond_en_gNB_t const* get_respond_en_gNB() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(respond_eNB_t)]; - char dummy2[sizeof(respond_en_gNB_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -ENDCX2SetupResponse-IEs X2AP-PROTOCOL-IES ::= { - { ID id-RespondingNodeType-EndcX2Setup CRITICALITY reject TYPE RespondingNodeType-EndcX2Setup PRESENCE mandatory}, - ... -} -*/ - -struct ENDCX2SetupResponse_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RespondingNodeType_EndcX2Setup() { set(id_RespondingNodeType_EndcX2Setup); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_RespondingNodeType_EndcX2Setup)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_RespondingNodeType_EndcX2Setup);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RespondingNodeType_EndcX2Setup() { set(reject); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - RespondingNodeType_EndcX2Setup& select_id_RespondingNodeType_EndcX2Setup() { return set(1); } - RespondingNodeType_EndcX2Setup const* get_id_RespondingNodeType_EndcX2Setup() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_RespondingNodeType_EndcX2Setup()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(RespondingNodeType_EndcX2Setup)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RespondingNodeType_EndcX2Setup() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ENDCX2SetupResponse ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ENDCX2SetupResponse-IEs}}, - ... -} -*/ - -struct ENDCX2SetupResponse : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "ENDCX2SetupResponse";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -ListofEUTRACellsinNRCoordinationReq ::= SEQUENCE (SIZE (1..maxCellineNB)) OF ECGI -*/ - -struct ListofEUTRACellsinNRCoordinationReq_elm : ECGI -{ - static constexpr const char* name() {return "ListofEUTRACellsinNRCoordinationReq_elm";} - using parent_t = ECGI; - -}; -struct ListofEUTRACellsinNRCoordinationReq : asn::sequenceof -{ - static constexpr const char* name() {return "ListofEUTRACellsinNRCoordinationReq";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -ListofNRCellsinNRCoordinationReq ::= SEQUENCE (SIZE (0..maxnoNRcellsSpectrumSharingWithE-UTRA)) OF NRCGI -*/ - -struct ListofNRCellsinNRCoordinationReq_elm : NRCGI -{ - static constexpr const char* name() {return "ListofNRCellsinNRCoordinationReq_elm";} - using parent_t = NRCGI; - -}; -struct ListofNRCellsinNRCoordinationReq : asn::sequenceof -{ - static constexpr const char* name() {return "ListofNRCellsinNRCoordinationReq";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -En-gNB-EUTRA-NRCellResourceCoordinationReqIEs X2AP-PROTOCOL-IES ::= { - { ID id-DataTrafficResourceIndication CRITICALITY reject TYPE DataTrafficResourceIndication PRESENCE mandatory}| - { ID id-ListofEUTRACellsinNRCoordinationReq CRITICALITY reject TYPE ListofEUTRACellsinNRCoordinationReq PRESENCE mandatory }| - { ID id-SpectrumSharingGroupID CRITICALITY reject TYPE SpectrumSharingGroupID PRESENCE mandatory}| - { ID id-ListofNRCellsinNRCoordinationReq CRITICALITY reject TYPE ListofNRCellsinNRCoordinationReq PRESENCE mandatory}, - ... -} -*/ - -struct En_gNB_EUTRA_NRCellResourceCoordinationReqIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_DataTrafficResourceIndication() { set(id_DataTrafficResourceIndication); type=1;} - void select_id_ListofEUTRACellsinNRCoordinationReq() { set(id_ListofEUTRACellsinNRCoordinationReq); type=2;} - void select_id_SpectrumSharingGroupID() { set(id_SpectrumSharingGroupID); type=3;} - void select_id_ListofNRCellsinNRCoordinationReq() { set(id_ListofNRCellsinNRCoordinationReq); type=4;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_DataTrafficResourceIndication)) { type = 1; return true; } - else if(equal(id_ListofEUTRACellsinNRCoordinationReq)) { type = 2; return true; } - else if(equal(id_SpectrumSharingGroupID)) { type = 3; return true; } - else if(equal(id_ListofNRCellsinNRCoordinationReq)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_DataTrafficResourceIndication);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_ListofEUTRACellsinNRCoordinationReq);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_SpectrumSharingGroupID);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_ListofNRCellsinNRCoordinationReq);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_DataTrafficResourceIndication() { set(reject); type=1;} - void select_id_ListofEUTRACellsinNRCoordinationReq() { set(reject); type=2;} - void select_id_SpectrumSharingGroupID() { set(reject); type=3;} - void select_id_ListofNRCellsinNRCoordinationReq() { set(reject); type=4;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(reject)) { type = 3; return true; } - else if(equal(reject)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(reject);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(reject);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - DataTrafficResourceIndication& select_id_DataTrafficResourceIndication() { return set(1); } - DataTrafficResourceIndication const* get_id_DataTrafficResourceIndication() const { return get(1); } - ListofEUTRACellsinNRCoordinationReq& select_id_ListofEUTRACellsinNRCoordinationReq() { return set(2); } - ListofEUTRACellsinNRCoordinationReq const* get_id_ListofEUTRACellsinNRCoordinationReq() const { return get(2); } - SpectrumSharingGroupID& select_id_SpectrumSharingGroupID() { return set(3); } - SpectrumSharingGroupID const* get_id_SpectrumSharingGroupID() const { return get(3); } - ListofNRCellsinNRCoordinationReq& select_id_ListofNRCellsinNRCoordinationReq() { return set(4); } - ListofNRCellsinNRCoordinationReq const* get_id_ListofNRCellsinNRCoordinationReq() const { return get(4); } - bool is_unknown() const { return type == 5; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_DataTrafficResourceIndication()); return true; - case 2: v(select_id_ListofEUTRACellsinNRCoordinationReq()); return true; - case 3: v(select_id_SpectrumSharingGroupID()); return true; - case 4: v(select_id_ListofNRCellsinNRCoordinationReq()); return true; - case 5: if(type != 5) {clear(); asn::base::set();} type = 5; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(DataTrafficResourceIndication)]; - char dummy2[sizeof(ListofEUTRACellsinNRCoordinationReq)]; - char dummy3[sizeof(ListofNRCellsinNRCoordinationReq)]; - char dummy4[sizeof(SpectrumSharingGroupID)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_DataTrafficResourceIndication() { set(mandatory); type=1;} - void select_id_ListofEUTRACellsinNRCoordinationReq() { set(mandatory); type=2;} - void select_id_SpectrumSharingGroupID() { set(mandatory); type=3;} - void select_id_ListofNRCellsinNRCoordinationReq() { set(mandatory); type=4;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(mandatory)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(mandatory);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -InitiatingNodeType-EutranrCellResourceCoordination ::= CHOICE { - initiate-eNB ProtocolIE-Container {{ENB-EUTRA-NRCellResourceCoordinationReqIEs}}, - initiate-en-gNB ProtocolIE-Container {{En-gNB-EUTRA-NRCellResourceCoordinationReqIEs}}, - ... -} -*/ - -struct InitiatingNodeType_EutranrCellResourceCoordination : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "InitiatingNodeType-EutranrCellResourceCoordination";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~InitiatingNodeType_EutranrCellResourceCoordination() {clear();} - struct initiate_eNB_t : ProtocolIE_Container - { - static constexpr const char* name() {return "initiate_eNB_t";} - using parent_t = ProtocolIE_Container; - - }; - struct initiate_en_gNB_t : ProtocolIE_Container - { - static constexpr const char* name() {return "initiate_en_gNB_t";} - using parent_t = ProtocolIE_Container; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - initiate_eNB_t& select_initiate_eNB() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - initiate_eNB_t const* get_initiate_eNB() const { if(get_index() == 1) { return &var.as();} return nullptr; } - initiate_en_gNB_t& select_initiate_en_gNB() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - initiate_en_gNB_t const* get_initiate_en_gNB() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(initiate_eNB_t)]; - char dummy2[sizeof(initiate_en_gNB_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -EUTRANRCellResourceCoordinationRequest-IEs X2AP-PROTOCOL-IES ::= { - { ID id-InitiatingNodeType-EutranrCellResourceCoordination CRITICALITY reject TYPE InitiatingNodeType-EutranrCellResourceCoordination PRESENCE mandatory}, - ... -} -*/ - -struct EUTRANRCellResourceCoordinationRequest_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_InitiatingNodeType_EutranrCellResourceCoordination() { set(id_InitiatingNodeType_EutranrCellResourceCoordination); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_InitiatingNodeType_EutranrCellResourceCoordination)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_InitiatingNodeType_EutranrCellResourceCoordination);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_InitiatingNodeType_EutranrCellResourceCoordination() { set(reject); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - InitiatingNodeType_EutranrCellResourceCoordination& select_id_InitiatingNodeType_EutranrCellResourceCoordination() { return set(1); } - InitiatingNodeType_EutranrCellResourceCoordination const* get_id_InitiatingNodeType_EutranrCellResourceCoordination() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_InitiatingNodeType_EutranrCellResourceCoordination()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(InitiatingNodeType_EutranrCellResourceCoordination)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_InitiatingNodeType_EutranrCellResourceCoordination() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -EUTRANRCellResourceCoordinationRequest ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{EUTRANRCellResourceCoordinationRequest-IEs}}, - ... -} -*/ - -struct EUTRANRCellResourceCoordinationRequest : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "EUTRANRCellResourceCoordinationRequest";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -ListofNRCellsinNRCoordinationResp ::= SEQUENCE (SIZE (0..maxnoNRcellsSpectrumSharingWithE-UTRA)) OF NRCGI -*/ - -struct ListofNRCellsinNRCoordinationResp_elm : NRCGI -{ - static constexpr const char* name() {return "ListofNRCellsinNRCoordinationResp_elm";} - using parent_t = NRCGI; - -}; -struct ListofNRCellsinNRCoordinationResp : asn::sequenceof -{ - static constexpr const char* name() {return "ListofNRCellsinNRCoordinationResp";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -En-gNB-EUTRA-NRCellResourceCoordinationReqAckIEs X2AP-PROTOCOL-IES ::= { - { ID id-DataTrafficResourceIndication CRITICALITY reject TYPE DataTrafficResourceIndication PRESENCE mandatory}| - { ID id-SpectrumSharingGroupID CRITICALITY reject TYPE SpectrumSharingGroupID PRESENCE mandatory}| - { ID id-ListofNRCellsinNRCoordinationResp CRITICALITY reject TYPE ListofNRCellsinNRCoordinationResp PRESENCE mandatory}, - - - ... -} -*/ - -struct En_gNB_EUTRA_NRCellResourceCoordinationReqAckIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_DataTrafficResourceIndication() { set(id_DataTrafficResourceIndication); type=1;} - void select_id_SpectrumSharingGroupID() { set(id_SpectrumSharingGroupID); type=2;} - void select_id_ListofNRCellsinNRCoordinationResp() { set(id_ListofNRCellsinNRCoordinationResp); type=3;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_DataTrafficResourceIndication)) { type = 1; return true; } - else if(equal(id_SpectrumSharingGroupID)) { type = 2; return true; } - else if(equal(id_ListofNRCellsinNRCoordinationResp)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_DataTrafficResourceIndication);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SpectrumSharingGroupID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_ListofNRCellsinNRCoordinationResp);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_DataTrafficResourceIndication() { set(reject); type=1;} - void select_id_SpectrumSharingGroupID() { set(reject); type=2;} - void select_id_ListofNRCellsinNRCoordinationResp() { set(reject); type=3;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(reject)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(reject);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - DataTrafficResourceIndication& select_id_DataTrafficResourceIndication() { return set(1); } - DataTrafficResourceIndication const* get_id_DataTrafficResourceIndication() const { return get(1); } - SpectrumSharingGroupID& select_id_SpectrumSharingGroupID() { return set(2); } - SpectrumSharingGroupID const* get_id_SpectrumSharingGroupID() const { return get(2); } - ListofNRCellsinNRCoordinationResp& select_id_ListofNRCellsinNRCoordinationResp() { return set(3); } - ListofNRCellsinNRCoordinationResp const* get_id_ListofNRCellsinNRCoordinationResp() const { return get(3); } - bool is_unknown() const { return type == 4; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_DataTrafficResourceIndication()); return true; - case 2: v(select_id_SpectrumSharingGroupID()); return true; - case 3: v(select_id_ListofNRCellsinNRCoordinationResp()); return true; - case 4: if(type != 4) {clear(); asn::base::set();} type = 4; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(DataTrafficResourceIndication)]; - char dummy2[sizeof(ListofNRCellsinNRCoordinationResp)]; - char dummy3[sizeof(SpectrumSharingGroupID)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_DataTrafficResourceIndication() { set(mandatory); type=1;} - void select_id_SpectrumSharingGroupID() { set(mandatory); type=2;} - void select_id_ListofNRCellsinNRCoordinationResp() { set(mandatory); type=3;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RespondingNodeType-EutranrCellResourceCoordination ::= CHOICE { - respond-eNB ProtocolIE-Container {{ENB-EUTRA-NRCellResourceCoordinationReqAckIEs}}, - respond-en-gNB ProtocolIE-Container {{En-gNB-EUTRA-NRCellResourceCoordinationReqAckIEs}}, - ... -} -*/ - -struct RespondingNodeType_EutranrCellResourceCoordination : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "RespondingNodeType-EutranrCellResourceCoordination";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~RespondingNodeType_EutranrCellResourceCoordination() {clear();} - struct respond_eNB_t : ProtocolIE_Container - { - static constexpr const char* name() {return "respond_eNB_t";} - using parent_t = ProtocolIE_Container; - - }; - struct respond_en_gNB_t : ProtocolIE_Container - { - static constexpr const char* name() {return "respond_en_gNB_t";} - using parent_t = ProtocolIE_Container; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - respond_eNB_t& select_respond_eNB() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - respond_eNB_t const* get_respond_eNB() const { if(get_index() == 1) { return &var.as();} return nullptr; } - respond_en_gNB_t& select_respond_en_gNB() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - respond_en_gNB_t const* get_respond_en_gNB() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(respond_eNB_t)]; - char dummy2[sizeof(respond_en_gNB_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -EUTRANRCellResourceCoordinationResponse-IEs X2AP-PROTOCOL-IES ::= { - { ID id-RespondingNodeType-EutranrCellResourceCoordination CRITICALITY reject TYPE RespondingNodeType-EutranrCellResourceCoordination PRESENCE mandatory}, - ... -} -*/ - -struct EUTRANRCellResourceCoordinationResponse_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RespondingNodeType_EutranrCellResourceCoordination() { set(id_RespondingNodeType_EutranrCellResourceCoordination); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_RespondingNodeType_EutranrCellResourceCoordination)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_RespondingNodeType_EutranrCellResourceCoordination);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RespondingNodeType_EutranrCellResourceCoordination() { set(reject); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - RespondingNodeType_EutranrCellResourceCoordination& select_id_RespondingNodeType_EutranrCellResourceCoordination() { return set(1); } - RespondingNodeType_EutranrCellResourceCoordination const* get_id_RespondingNodeType_EutranrCellResourceCoordination() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_RespondingNodeType_EutranrCellResourceCoordination()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(RespondingNodeType_EutranrCellResourceCoordination)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RespondingNodeType_EutranrCellResourceCoordination() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -EUTRANRCellResourceCoordinationResponse ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{EUTRANRCellResourceCoordinationResponse-IEs}}, - ... -} -*/ - -struct EUTRANRCellResourceCoordinationResponse : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "EUTRANRCellResourceCoordinationResponse";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -ErrorIndication-IEs X2AP-PROTOCOL-IES ::= { - { ID id-Old-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE optional}| - { ID id-New-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE optional}| - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE optional}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| - { ID id-Old-eNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-New-eNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-Old-SgNB-UE-X2AP-ID CRITICALITY ignore TYPE SgNB-UE-X2AP-ID PRESENCE optional}, - ... -} -*/ - -struct ErrorIndication_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 8; } - void clear() {type = 0;} - void select_id_Old_eNB_UE_X2AP_ID() { set(id_Old_eNB_UE_X2AP_ID); type=1;} - void select_id_New_eNB_UE_X2AP_ID() { set(id_New_eNB_UE_X2AP_ID); type=2;} - void select_id_Cause() { set(id_Cause); type=3;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=4;} - void select_id_Old_eNB_UE_X2AP_ID_Extension() { set(id_Old_eNB_UE_X2AP_ID_Extension); type=5;} - void select_id_New_eNB_UE_X2AP_ID_Extension() { set(id_New_eNB_UE_X2AP_ID_Extension); type=6;} - void select_id_Old_SgNB_UE_X2AP_ID() { set(id_Old_SgNB_UE_X2AP_ID); type=7;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_Old_eNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_New_eNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_Cause)) { type = 3; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 4; return true; } - else if(equal(id_Old_eNB_UE_X2AP_ID_Extension)) { type = 5; return true; } - else if(equal(id_New_eNB_UE_X2AP_ID_Extension)) { type = 6; return true; } - else if(equal(id_Old_SgNB_UE_X2AP_ID)) { type = 7; return true; } - else { type = 8; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_Old_eNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_New_eNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_Old_eNB_UE_X2AP_ID_Extension);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_New_eNB_UE_X2AP_ID_Extension);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(id_Old_SgNB_UE_X2AP_ID);} return false; - case 8: type = 8; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 8; } - void clear() {type = 0;} - void select_id_Old_eNB_UE_X2AP_ID() { set(ignore); type=1;} - void select_id_New_eNB_UE_X2AP_ID() { set(ignore); type=2;} - void select_id_Cause() { set(ignore); type=3;} - void select_id_CriticalityDiagnostics() { set(ignore); type=4;} - void select_id_Old_eNB_UE_X2AP_ID_Extension() { set(ignore); type=5;} - void select_id_New_eNB_UE_X2AP_ID_Extension() { set(ignore); type=6;} - void select_id_Old_SgNB_UE_X2AP_ID() { set(ignore); type=7;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else if(equal(ignore)) { type = 6; return true; } - else if(equal(ignore)) { type = 7; return true; } - else { type = 8; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(ignore);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(ignore);} return false; - case 8: type = 8; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_Old_eNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_Old_eNB_UE_X2AP_ID() const { return get(1); } - UE_X2AP_ID& select_id_New_eNB_UE_X2AP_ID() { return set(2); } - UE_X2AP_ID const* get_id_New_eNB_UE_X2AP_ID() const { return get(2); } - Cause& select_id_Cause() { return set(3); } - Cause const* get_id_Cause() const { return get(3); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(4); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(4); } - UE_X2AP_ID_Extension& select_id_Old_eNB_UE_X2AP_ID_Extension() { return set(5); } - UE_X2AP_ID_Extension const* get_id_Old_eNB_UE_X2AP_ID_Extension() const { return get(5); } - UE_X2AP_ID_Extension& select_id_New_eNB_UE_X2AP_ID_Extension() { return set(6); } - UE_X2AP_ID_Extension const* get_id_New_eNB_UE_X2AP_ID_Extension() const { return get(6); } - SgNB_UE_X2AP_ID& select_id_Old_SgNB_UE_X2AP_ID() { return set(7); } - SgNB_UE_X2AP_ID const* get_id_Old_SgNB_UE_X2AP_ID() const { return get(7); } - bool is_unknown() const { return type == 8; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - case 7: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - v.template operator()(7); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_Old_eNB_UE_X2AP_ID()); return true; - case 2: v(select_id_New_eNB_UE_X2AP_ID()); return true; - case 3: v(select_id_Cause()); return true; - case 4: v(select_id_CriticalityDiagnostics()); return true; - case 5: v(select_id_Old_eNB_UE_X2AP_ID_Extension()); return true; - case 6: v(select_id_New_eNB_UE_X2AP_ID_Extension()); return true; - case 7: v(select_id_Old_SgNB_UE_X2AP_ID()); return true; - case 8: if(type != 8) {clear(); asn::base::set();} type = 8; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - case 7: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(CriticalityDiagnostics)]; - char dummy3[sizeof(SgNB_UE_X2AP_ID)]; - char dummy4[sizeof(UE_X2AP_ID)]; - char dummy5[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 8; } - void clear() {type = 0;} - void select_id_Old_eNB_UE_X2AP_ID() { set(optional); type=1;} - void select_id_New_eNB_UE_X2AP_ID() { set(optional); type=2;} - void select_id_Cause() { set(optional); type=3;} - void select_id_CriticalityDiagnostics() { set(optional); type=4;} - void select_id_Old_eNB_UE_X2AP_ID_Extension() { set(optional); type=5;} - void select_id_New_eNB_UE_X2AP_ID_Extension() { set(optional); type=6;} - void select_id_Old_SgNB_UE_X2AP_ID() { set(optional); type=7;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else if(equal(optional)) { type = 7; return true; } - else { type = 8; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(optional);} return false; - case 8: type = 8; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ErrorIndication ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ErrorIndication-IEs}}, - ... -} -*/ - -struct ErrorIndication : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "ErrorIndication";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -GNBStatusIndicationIEs X2AP-PROTOCOL-IES ::= { - { ID id-GNBOverloadInformation CRITICALITY ignore TYPE GNBOverloadInformation PRESENCE mandatory}, - ... -} -*/ - -struct GNBStatusIndicationIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_GNBOverloadInformation() { set(id_GNBOverloadInformation); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_GNBOverloadInformation)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_GNBOverloadInformation);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_GNBOverloadInformation() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - GNBOverloadInformation& select_id_GNBOverloadInformation() { return set(1); } - GNBOverloadInformation const* get_id_GNBOverloadInformation() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_GNBOverloadInformation()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(GNBOverloadInformation)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_GNBOverloadInformation() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -GNBStatusIndication ::= SEQUENCE { - protocolIEs ProtocolIE-Container { { GNBStatusIndicationIEs} }, - ... -} -*/ - -struct GNBStatusIndication : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "GNBStatusIndication";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -HandoverCancel-IEs X2AP-PROTOCOL-IES ::= { - { ID id-Old-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-New-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE optional}| - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| - { ID id-Old-eNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-New-eNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}, - ... -} -*/ - -struct HandoverCancel_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_Old_eNB_UE_X2AP_ID() { set(id_Old_eNB_UE_X2AP_ID); type=1;} - void select_id_New_eNB_UE_X2AP_ID() { set(id_New_eNB_UE_X2AP_ID); type=2;} - void select_id_Cause() { set(id_Cause); type=3;} - void select_id_Old_eNB_UE_X2AP_ID_Extension() { set(id_Old_eNB_UE_X2AP_ID_Extension); type=4;} - void select_id_New_eNB_UE_X2AP_ID_Extension() { set(id_New_eNB_UE_X2AP_ID_Extension); type=5;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_Old_eNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_New_eNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_Cause)) { type = 3; return true; } - else if(equal(id_Old_eNB_UE_X2AP_ID_Extension)) { type = 4; return true; } - else if(equal(id_New_eNB_UE_X2AP_ID_Extension)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_Old_eNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_New_eNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_Old_eNB_UE_X2AP_ID_Extension);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_New_eNB_UE_X2AP_ID_Extension);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_Old_eNB_UE_X2AP_ID() { set(reject); type=1;} - void select_id_New_eNB_UE_X2AP_ID() { set(ignore); type=2;} - void select_id_Cause() { set(ignore); type=3;} - void select_id_Old_eNB_UE_X2AP_ID_Extension() { set(reject); type=4;} - void select_id_New_eNB_UE_X2AP_ID_Extension() { set(ignore); type=5;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(reject)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(reject);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_Old_eNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_Old_eNB_UE_X2AP_ID() const { return get(1); } - UE_X2AP_ID& select_id_New_eNB_UE_X2AP_ID() { return set(2); } - UE_X2AP_ID const* get_id_New_eNB_UE_X2AP_ID() const { return get(2); } - Cause& select_id_Cause() { return set(3); } - Cause const* get_id_Cause() const { return get(3); } - UE_X2AP_ID_Extension& select_id_Old_eNB_UE_X2AP_ID_Extension() { return set(4); } - UE_X2AP_ID_Extension const* get_id_Old_eNB_UE_X2AP_ID_Extension() const { return get(4); } - UE_X2AP_ID_Extension& select_id_New_eNB_UE_X2AP_ID_Extension() { return set(5); } - UE_X2AP_ID_Extension const* get_id_New_eNB_UE_X2AP_ID_Extension() const { return get(5); } - bool is_unknown() const { return type == 6; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_Old_eNB_UE_X2AP_ID()); return true; - case 2: v(select_id_New_eNB_UE_X2AP_ID()); return true; - case 3: v(select_id_Cause()); return true; - case 4: v(select_id_Old_eNB_UE_X2AP_ID_Extension()); return true; - case 5: v(select_id_New_eNB_UE_X2AP_ID_Extension()); return true; - case 6: if(type != 6) {clear(); asn::base::set();} type = 6; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(UE_X2AP_ID)]; - char dummy3[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_Old_eNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_New_eNB_UE_X2AP_ID() { set(optional); type=2;} - void select_id_Cause() { set(mandatory); type=3;} - void select_id_Old_eNB_UE_X2AP_ID_Extension() { set(optional); type=4;} - void select_id_New_eNB_UE_X2AP_ID_Extension() { set(optional); type=5;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -HandoverCancel ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{HandoverCancel-IEs}}, - ... -} -*/ - -struct HandoverCancel : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "HandoverCancel";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -HandoverPreparationFailure-IEs X2AP-PROTOCOL-IES ::= { - { ID id-Old-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| - { ID id-Old-eNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}, - - ... -} -*/ - -struct HandoverPreparationFailure_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_Old_eNB_UE_X2AP_ID() { set(id_Old_eNB_UE_X2AP_ID); type=1;} - void select_id_Cause() { set(id_Cause); type=2;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=3;} - void select_id_Old_eNB_UE_X2AP_ID_Extension() { set(id_Old_eNB_UE_X2AP_ID_Extension); type=4;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_Old_eNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_Cause)) { type = 2; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 3; return true; } - else if(equal(id_Old_eNB_UE_X2AP_ID_Extension)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_Old_eNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_Old_eNB_UE_X2AP_ID_Extension);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_Old_eNB_UE_X2AP_ID() { set(ignore); type=1;} - void select_id_Cause() { set(ignore); type=2;} - void select_id_CriticalityDiagnostics() { set(ignore); type=3;} - void select_id_Old_eNB_UE_X2AP_ID_Extension() { set(ignore); type=4;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_Old_eNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_Old_eNB_UE_X2AP_ID() const { return get(1); } - Cause& select_id_Cause() { return set(2); } - Cause const* get_id_Cause() const { return get(2); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(3); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(3); } - UE_X2AP_ID_Extension& select_id_Old_eNB_UE_X2AP_ID_Extension() { return set(4); } - UE_X2AP_ID_Extension const* get_id_Old_eNB_UE_X2AP_ID_Extension() const { return get(4); } - bool is_unknown() const { return type == 5; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_Old_eNB_UE_X2AP_ID()); return true; - case 2: v(select_id_Cause()); return true; - case 3: v(select_id_CriticalityDiagnostics()); return true; - case 4: v(select_id_Old_eNB_UE_X2AP_ID_Extension()); return true; - case 5: if(type != 5) {clear(); asn::base::set();} type = 5; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(CriticalityDiagnostics)]; - char dummy3[sizeof(UE_X2AP_ID)]; - char dummy4[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_Old_eNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_Cause() { set(mandatory); type=2;} - void select_id_CriticalityDiagnostics() { set(optional); type=3;} - void select_id_Old_eNB_UE_X2AP_ID_Extension() { set(optional); type=4;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -HandoverPreparationFailure ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{HandoverPreparationFailure-IEs}}, - ... -} -*/ - -struct HandoverPreparationFailure : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "HandoverPreparationFailure";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -MobilityInformation ::= BIT STRING (SIZE(32)) -*/ - -struct MobilityInformation : asn::bstring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "MobilityInformation";} - using parent_t = asn::bstring<>; - -}; - -/* -HandoverReport-IEs X2AP-PROTOCOL-IES ::= { - { ID id-HandoverReportType CRITICALITY ignore TYPE HandoverReportType PRESENCE mandatory}| - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| - { ID id-SourceCellECGI CRITICALITY ignore TYPE ECGI PRESENCE mandatory}| - { ID id-FailureCellECGI CRITICALITY ignore TYPE ECGI PRESENCE mandatory}| - { ID id-Re-establishmentCellECGI CRITICALITY ignore TYPE ECGI PRESENCE conditional} -- The IE shall be present if the Handover Report Type IE is set to “HO to Wrong Cell” -- | - { ID id-TargetCellInUTRAN CRITICALITY ignore TYPE TargetCellInUTRAN PRESENCE conditional} -- The IE shall be present if the Handover Report Type IE is set to "InterRAT ping-pong" --| - { ID id-SourceCellCRNTI CRITICALITY ignore TYPE CRNTI PRESENCE optional}| - { ID id-MobilityInformation CRITICALITY ignore TYPE MobilityInformation PRESENCE optional}| - { ID id-UE-RLF-Report-Container CRITICALITY ignore TYPE UE-RLF-Report-Container PRESENCE optional}| - { ID id-UE-RLF-Report-Container-for-extended-bands CRITICALITY ignore TYPE UE-RLF-Report-Container-for-extended-bands PRESENCE optional}, - ... -} -*/ - -struct HandoverReport_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 11; } - void clear() {type = 0;} - void select_id_HandoverReportType() { set(id_HandoverReportType); type=1;} - void select_id_Cause() { set(id_Cause); type=2;} - void select_id_SourceCellECGI() { set(id_SourceCellECGI); type=3;} - void select_id_FailureCellECGI() { set(id_FailureCellECGI); type=4;} - void select_id_Re_establishmentCellECGI() { set(id_Re_establishmentCellECGI); type=5;} - void select_id_TargetCellInUTRAN() { set(id_TargetCellInUTRAN); type=6;} - void select_id_SourceCellCRNTI() { set(id_SourceCellCRNTI); type=7;} - void select_id_MobilityInformation() { set(id_MobilityInformation); type=8;} - void select_id_UE_RLF_Report_Container() { set(id_UE_RLF_Report_Container); type=9;} - void select_id_UE_RLF_Report_Container_for_extended_bands() { set(id_UE_RLF_Report_Container_for_extended_bands); type=10;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_HandoverReportType)) { type = 1; return true; } - else if(equal(id_Cause)) { type = 2; return true; } - else if(equal(id_SourceCellECGI)) { type = 3; return true; } - else if(equal(id_FailureCellECGI)) { type = 4; return true; } - else if(equal(id_Re_establishmentCellECGI)) { type = 5; return true; } - else if(equal(id_TargetCellInUTRAN)) { type = 6; return true; } - else if(equal(id_SourceCellCRNTI)) { type = 7; return true; } - else if(equal(id_MobilityInformation)) { type = 8; return true; } - else if(equal(id_UE_RLF_Report_Container)) { type = 9; return true; } - else if(equal(id_UE_RLF_Report_Container_for_extended_bands)) { type = 10; return true; } - else { type = 11; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_HandoverReportType);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_SourceCellECGI);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_FailureCellECGI);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_Re_establishmentCellECGI);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_TargetCellInUTRAN);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(id_SourceCellCRNTI);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(id_MobilityInformation);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(id_UE_RLF_Report_Container);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(id_UE_RLF_Report_Container_for_extended_bands);} return false; - case 11: type = 11; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 11; } - void clear() {type = 0;} - void select_id_HandoverReportType() { set(ignore); type=1;} - void select_id_Cause() { set(ignore); type=2;} - void select_id_SourceCellECGI() { set(ignore); type=3;} - void select_id_FailureCellECGI() { set(ignore); type=4;} - void select_id_Re_establishmentCellECGI() { set(ignore); type=5;} - void select_id_TargetCellInUTRAN() { set(ignore); type=6;} - void select_id_SourceCellCRNTI() { set(ignore); type=7;} - void select_id_MobilityInformation() { set(ignore); type=8;} - void select_id_UE_RLF_Report_Container() { set(ignore); type=9;} - void select_id_UE_RLF_Report_Container_for_extended_bands() { set(ignore); type=10;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else if(equal(ignore)) { type = 6; return true; } - else if(equal(ignore)) { type = 7; return true; } - else if(equal(ignore)) { type = 8; return true; } - else if(equal(ignore)) { type = 9; return true; } - else if(equal(ignore)) { type = 10; return true; } - else { type = 11; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(ignore);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(ignore);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(ignore);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(ignore);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(ignore);} return false; - case 11: type = 11; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - HandoverReportType& select_id_HandoverReportType() { return set(1); } - HandoverReportType const* get_id_HandoverReportType() const { return get(1); } - Cause& select_id_Cause() { return set(2); } - Cause const* get_id_Cause() const { return get(2); } - ECGI& select_id_SourceCellECGI() { return set(3); } - ECGI const* get_id_SourceCellECGI() const { return get(3); } - ECGI& select_id_FailureCellECGI() { return set(4); } - ECGI const* get_id_FailureCellECGI() const { return get(4); } - ECGI& select_id_Re_establishmentCellECGI() { return set(5); } - ECGI const* get_id_Re_establishmentCellECGI() const { return get(5); } - TargetCellInUTRAN& select_id_TargetCellInUTRAN() { return set(6); } - TargetCellInUTRAN const* get_id_TargetCellInUTRAN() const { return get(6); } - CRNTI& select_id_SourceCellCRNTI() { return set(7); } - CRNTI const* get_id_SourceCellCRNTI() const { return get(7); } - MobilityInformation& select_id_MobilityInformation() { return set(8); } - MobilityInformation const* get_id_MobilityInformation() const { return get(8); } - UE_RLF_Report_Container& select_id_UE_RLF_Report_Container() { return set(9); } - UE_RLF_Report_Container const* get_id_UE_RLF_Report_Container() const { return get(9); } - UE_RLF_Report_Container_for_extended_bands& select_id_UE_RLF_Report_Container_for_extended_bands() { return set(10); } - UE_RLF_Report_Container_for_extended_bands const* get_id_UE_RLF_Report_Container_for_extended_bands() const { return get(10); } - bool is_unknown() const { return type == 11; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - case 7: var.destroy(); break; - case 8: var.destroy(); break; - case 9: var.destroy(); break; - case 10: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - v.template operator()(7); - v.template operator()(8); - v.template operator()(9); - v.template operator()(10); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_HandoverReportType()); return true; - case 2: v(select_id_Cause()); return true; - case 3: v(select_id_SourceCellECGI()); return true; - case 4: v(select_id_FailureCellECGI()); return true; - case 5: v(select_id_Re_establishmentCellECGI()); return true; - case 6: v(select_id_TargetCellInUTRAN()); return true; - case 7: v(select_id_SourceCellCRNTI()); return true; - case 8: v(select_id_MobilityInformation()); return true; - case 9: v(select_id_UE_RLF_Report_Container()); return true; - case 10: v(select_id_UE_RLF_Report_Container_for_extended_bands()); return true; - case 11: if(type != 11) {clear(); asn::base::set();} type = 11; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - case 7: v(var.as()); return true; - case 8: v(var.as()); return true; - case 9: v(var.as()); return true; - case 10: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CRNTI)]; - char dummy2[sizeof(Cause)]; - char dummy3[sizeof(ECGI)]; - char dummy4[sizeof(HandoverReportType)]; - char dummy5[sizeof(MobilityInformation)]; - char dummy6[sizeof(TargetCellInUTRAN)]; - char dummy7[sizeof(UE_RLF_Report_Container)]; - char dummy8[sizeof(UE_RLF_Report_Container_for_extended_bands)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 11; } - void clear() {type = 0;} - void select_id_HandoverReportType() { set(mandatory); type=1;} - void select_id_Cause() { set(mandatory); type=2;} - void select_id_SourceCellECGI() { set(mandatory); type=3;} - void select_id_FailureCellECGI() { set(mandatory); type=4;} - void select_id_Re_establishmentCellECGI() { set(conditional); type=5;} - void select_id_TargetCellInUTRAN() { set(conditional); type=6;} - void select_id_SourceCellCRNTI() { set(optional); type=7;} - void select_id_MobilityInformation() { set(optional); type=8;} - void select_id_UE_RLF_Report_Container() { set(optional); type=9;} - void select_id_UE_RLF_Report_Container_for_extended_bands() { set(optional); type=10;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(mandatory)) { type = 4; return true; } - else if(equal(conditional)) { type = 5; return true; } - else if(equal(conditional)) { type = 6; return true; } - else if(equal(optional)) { type = 7; return true; } - else if(equal(optional)) { type = 8; return true; } - else if(equal(optional)) { type = 9; return true; } - else if(equal(optional)) { type = 10; return true; } - else { type = 11; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(mandatory);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(conditional);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(conditional);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(optional);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(optional);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(optional);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(optional);} return false; - case 11: type = 11; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -HandoverReport ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{HandoverReport-IEs}}, - ... -} -*/ - -struct HandoverReport : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "HandoverReport";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -UE-ContextInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { -{ ID id-ManagementBasedMDTallowed CRITICALITY ignore EXTENSION ManagementBasedMDTallowed PRESENCE optional }| -{ ID id-ManagementBasedMDTPLMNList CRITICALITY ignore EXTENSION MDTPLMNList PRESENCE optional }| -{ ID id-UESidelinkAggregateMaximumBitRate CRITICALITY ignore EXTENSION UESidelinkAggregateMaximumBitRate PRESENCE optional}, - ... -} -*/ - -struct UE_ContextInformation_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_ManagementBasedMDTallowed() { set(id_ManagementBasedMDTallowed); type=1;} - void select_id_ManagementBasedMDTPLMNList() { set(id_ManagementBasedMDTPLMNList); type=2;} - void select_id_UESidelinkAggregateMaximumBitRate() { set(id_UESidelinkAggregateMaximumBitRate); type=3;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_ManagementBasedMDTallowed)) { type = 1; return true; } - else if(equal(id_ManagementBasedMDTPLMNList)) { type = 2; return true; } - else if(equal(id_UESidelinkAggregateMaximumBitRate)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_ManagementBasedMDTallowed);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_ManagementBasedMDTPLMNList);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_UESidelinkAggregateMaximumBitRate);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_ManagementBasedMDTallowed() { set(ignore); type=1;} - void select_id_ManagementBasedMDTPLMNList() { set(ignore); type=2;} - void select_id_UESidelinkAggregateMaximumBitRate() { set(ignore); type=3;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - ManagementBasedMDTallowed& select_id_ManagementBasedMDTallowed() { return set(1); } - ManagementBasedMDTallowed const* get_id_ManagementBasedMDTallowed() const { return get(1); } - MDTPLMNList& select_id_ManagementBasedMDTPLMNList() { return set(2); } - MDTPLMNList const* get_id_ManagementBasedMDTPLMNList() const { return get(2); } - UESidelinkAggregateMaximumBitRate& select_id_UESidelinkAggregateMaximumBitRate() { return set(3); } - UESidelinkAggregateMaximumBitRate const* get_id_UESidelinkAggregateMaximumBitRate() const { return get(3); } - bool is_unknown() const { return type == 4; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_ManagementBasedMDTallowed()); return true; - case 2: v(select_id_ManagementBasedMDTPLMNList()); return true; - case 3: v(select_id_UESidelinkAggregateMaximumBitRate()); return true; - case 4: if(type != 4) {clear(); asn::base::set();} type = 4; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(MDTPLMNList)]; - char dummy2[sizeof(ManagementBasedMDTallowed)]; - char dummy3[sizeof(UESidelinkAggregateMaximumBitRate)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_ManagementBasedMDTallowed() { set(optional); type=1;} - void select_id_ManagementBasedMDTPLMNList() { set(optional); type=2;} - void select_id_UESidelinkAggregateMaximumBitRate() { set(optional); type=3;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -UE-ContextInformation ::= SEQUENCE { - mME-UE-S1AP-ID UE-S1AP-ID, - uESecurityCapabilities UESecurityCapabilities, - aS-SecurityInformation AS-SecurityInformation, - uEaggregateMaximumBitRate UEAggregateMaximumBitRate, - subscriberProfileIDforRFP SubscriberProfileIDforRFP OPTIONAL, - e-RABs-ToBeSetup-List E-RABs-ToBeSetup-List, - rRC-Context RRC-Context, - handoverRestrictionList HandoverRestrictionList OPTIONAL, - locationReportingInformation LocationReportingInformation OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {UE-ContextInformation-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct UE_ContextInformation : asn::sequence<10, 0, true, 4> -{ - static constexpr const char* name() {return "UE-ContextInformation";} - using parent_t = asn::sequence<10, 0, true, 4>; - struct mME_UE_S1AP_ID_t : UE_S1AP_ID - { - static constexpr const char* name() {return "mME_UE_S1AP_ID_t";} - using parent_t = UE_S1AP_ID; - - }; - mME_UE_S1AP_ID_t& ref_mME_UE_S1AP_ID() {return mME_UE_S1AP_ID;} - mME_UE_S1AP_ID_t const& ref_mME_UE_S1AP_ID() const {return mME_UE_S1AP_ID;} - struct uESecurityCapabilities_t : UESecurityCapabilities - { - static constexpr const char* name() {return "uESecurityCapabilities_t";} - using parent_t = UESecurityCapabilities; - - }; - uESecurityCapabilities_t& ref_uESecurityCapabilities() {return uESecurityCapabilities;} - uESecurityCapabilities_t const& ref_uESecurityCapabilities() const {return uESecurityCapabilities;} - struct aS_SecurityInformation_t : AS_SecurityInformation - { - static constexpr const char* name() {return "aS_SecurityInformation_t";} - using parent_t = AS_SecurityInformation; - - }; - aS_SecurityInformation_t& ref_aS_SecurityInformation() {return aS_SecurityInformation;} - aS_SecurityInformation_t const& ref_aS_SecurityInformation() const {return aS_SecurityInformation;} - struct uEaggregateMaximumBitRate_t : UEAggregateMaximumBitRate - { - static constexpr const char* name() {return "uEaggregateMaximumBitRate_t";} - using parent_t = UEAggregateMaximumBitRate; - - }; - uEaggregateMaximumBitRate_t& ref_uEaggregateMaximumBitRate() {return uEaggregateMaximumBitRate;} - uEaggregateMaximumBitRate_t const& ref_uEaggregateMaximumBitRate() const {return uEaggregateMaximumBitRate;} - struct subscriberProfileIDforRFP_t : SubscriberProfileIDforRFP - { - static constexpr const char* name() {return "subscriberProfileIDforRFP_t";} - using parent_t = SubscriberProfileIDforRFP; - static constexpr bool optional = true; - - }; - subscriberProfileIDforRFP_t& set_subscriberProfileIDforRFP() { subscriberProfileIDforRFP.setpresent(true); return subscriberProfileIDforRFP;} - subscriberProfileIDforRFP_t const* get_subscriberProfileIDforRFP() const {return subscriberProfileIDforRFP.is_valid() ? &subscriberProfileIDforRFP : nullptr;} - struct e_RABs_ToBeSetup_List_t : E_RABs_ToBeSetup_List - { - static constexpr const char* name() {return "e_RABs_ToBeSetup_List_t";} - using parent_t = E_RABs_ToBeSetup_List; - - }; - e_RABs_ToBeSetup_List_t& ref_e_RABs_ToBeSetup_List() {return e_RABs_ToBeSetup_List;} - e_RABs_ToBeSetup_List_t const& ref_e_RABs_ToBeSetup_List() const {return e_RABs_ToBeSetup_List;} - struct rRC_Context_t : RRC_Context - { - static constexpr const char* name() {return "rRC_Context_t";} - using parent_t = RRC_Context; - - }; - rRC_Context_t& ref_rRC_Context() {return rRC_Context;} - rRC_Context_t const& ref_rRC_Context() const {return rRC_Context;} - struct handoverRestrictionList_t : HandoverRestrictionList - { - static constexpr const char* name() {return "handoverRestrictionList_t";} - using parent_t = HandoverRestrictionList; - static constexpr bool optional = true; - - }; - handoverRestrictionList_t& set_handoverRestrictionList() { handoverRestrictionList.setpresent(true); return handoverRestrictionList;} - handoverRestrictionList_t const* get_handoverRestrictionList() const {return handoverRestrictionList.is_valid() ? &handoverRestrictionList : nullptr;} - struct locationReportingInformation_t : LocationReportingInformation - { - static constexpr const char* name() {return "locationReportingInformation_t";} - using parent_t = LocationReportingInformation; - static constexpr bool optional = true; - - }; - locationReportingInformation_t& set_locationReportingInformation() { locationReportingInformation.setpresent(true); return locationReportingInformation;} - locationReportingInformation_t const* get_locationReportingInformation() const {return locationReportingInformation.is_valid() ? &locationReportingInformation : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(mME_UE_S1AP_ID); - v(uESecurityCapabilities); - v(aS_SecurityInformation); - v(uEaggregateMaximumBitRate); - v(subscriberProfileIDforRFP); - v(e_RABs_ToBeSetup_List); - v(rRC_Context); - v(handoverRestrictionList); - v(locationReportingInformation); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(mME_UE_S1AP_ID); - v(uESecurityCapabilities); - v(aS_SecurityInformation); - v(uEaggregateMaximumBitRate); - v(subscriberProfileIDforRFP); - v(e_RABs_ToBeSetup_List); - v(rRC_Context); - v(handoverRestrictionList); - v(locationReportingInformation); - v(iE_Extensions); - - }; - void clear() - { - mME_UE_S1AP_ID.clear(); - uESecurityCapabilities.clear(); - aS_SecurityInformation.clear(); - uEaggregateMaximumBitRate.clear(); - subscriberProfileIDforRFP.clear(); - e_RABs_ToBeSetup_List.clear(); - rRC_Context.clear(); - handoverRestrictionList.clear(); - locationReportingInformation.clear(); - iE_Extensions.clear(); - - }; - private: - mME_UE_S1AP_ID_t mME_UE_S1AP_ID; - uESecurityCapabilities_t uESecurityCapabilities; - aS_SecurityInformation_t aS_SecurityInformation; - uEaggregateMaximumBitRate_t uEaggregateMaximumBitRate; - subscriberProfileIDforRFP_t subscriberProfileIDforRFP; - e_RABs_ToBeSetup_List_t e_RABs_ToBeSetup_List; - rRC_Context_t rRC_Context; - handoverRestrictionList_t handoverRestrictionList; - locationReportingInformation_t locationReportingInformation; - iE_Extensions_t iE_Extensions; - -}; -/* -UE-ContextReferenceAtSeNB-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct UE_ContextReferenceAtSeNB_ItemExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -UE-ContextReferenceAtSeNB ::= SEQUENCE { - source-GlobalSeNB-ID GlobalENB-ID, - seNB-UE-X2AP-ID UE-X2AP-ID, - seNB-UE-X2AP-ID-Extension UE-X2AP-ID-Extension, - iE-Extensions ProtocolExtensionContainer { {UE-ContextReferenceAtSeNB-ItemExtIEs} } OPTIONAL, - ... -} -*/ - -struct UE_ContextReferenceAtSeNB : asn::sequence<4, 0, true, 1> -{ - static constexpr const char* name() {return "UE-ContextReferenceAtSeNB";} - using parent_t = asn::sequence<4, 0, true, 1>; - struct source_GlobalSeNB_ID_t : GlobalENB_ID - { - static constexpr const char* name() {return "source_GlobalSeNB_ID_t";} - using parent_t = GlobalENB_ID; - - }; - source_GlobalSeNB_ID_t& ref_source_GlobalSeNB_ID() {return source_GlobalSeNB_ID;} - source_GlobalSeNB_ID_t const& ref_source_GlobalSeNB_ID() const {return source_GlobalSeNB_ID;} - struct seNB_UE_X2AP_ID_t : UE_X2AP_ID - { - static constexpr const char* name() {return "seNB_UE_X2AP_ID_t";} - using parent_t = UE_X2AP_ID; - - }; - seNB_UE_X2AP_ID_t& ref_seNB_UE_X2AP_ID() {return seNB_UE_X2AP_ID;} - seNB_UE_X2AP_ID_t const& ref_seNB_UE_X2AP_ID() const {return seNB_UE_X2AP_ID;} - struct seNB_UE_X2AP_ID_Extension_t : UE_X2AP_ID_Extension - { - static constexpr const char* name() {return "seNB_UE_X2AP_ID_Extension_t";} - using parent_t = UE_X2AP_ID_Extension; - - }; - seNB_UE_X2AP_ID_Extension_t& ref_seNB_UE_X2AP_ID_Extension() {return seNB_UE_X2AP_ID_Extension;} - seNB_UE_X2AP_ID_Extension_t const& ref_seNB_UE_X2AP_ID_Extension() const {return seNB_UE_X2AP_ID_Extension;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(source_GlobalSeNB_ID); - v(seNB_UE_X2AP_ID); - v(seNB_UE_X2AP_ID_Extension); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(source_GlobalSeNB_ID); - v(seNB_UE_X2AP_ID); - v(seNB_UE_X2AP_ID_Extension); - v(iE_Extensions); - - }; - void clear() - { - source_GlobalSeNB_ID.clear(); - seNB_UE_X2AP_ID.clear(); - seNB_UE_X2AP_ID_Extension.clear(); - iE_Extensions.clear(); - - }; - private: - source_GlobalSeNB_ID_t source_GlobalSeNB_ID; - seNB_UE_X2AP_ID_t seNB_UE_X2AP_ID; - seNB_UE_X2AP_ID_Extension_t seNB_UE_X2AP_ID_Extension; - iE_Extensions_t iE_Extensions; - -}; -/* -UE-ContextReferenceAtWT-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct UE_ContextReferenceAtWT_ItemExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -UE-ContextReferenceAtWT ::= SEQUENCE { - wTID WTID, - wT-UE-XwAP-ID WT-UE-XwAP-ID, - iE-Extensions ProtocolExtensionContainer { {UE-ContextReferenceAtWT-ItemExtIEs} } OPTIONAL, - ... -} -*/ - -struct UE_ContextReferenceAtWT : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "UE-ContextReferenceAtWT";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct wTID_t : WTID - { - static constexpr const char* name() {return "wTID_t";} - using parent_t = WTID; - - }; - wTID_t& ref_wTID() {return wTID;} - wTID_t const& ref_wTID() const {return wTID;} - struct wT_UE_XwAP_ID_t : WT_UE_XwAP_ID - { - static constexpr const char* name() {return "wT_UE_XwAP_ID_t";} - using parent_t = WT_UE_XwAP_ID; - - }; - wT_UE_XwAP_ID_t& ref_wT_UE_XwAP_ID() {return wT_UE_XwAP_ID;} - wT_UE_XwAP_ID_t const& ref_wT_UE_XwAP_ID() const {return wT_UE_XwAP_ID;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(wTID); - v(wT_UE_XwAP_ID); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(wTID); - v(wT_UE_XwAP_ID); - v(iE_Extensions); - - }; - void clear() - { - wTID.clear(); - wT_UE_XwAP_ID.clear(); - iE_Extensions.clear(); - - }; - private: - wTID_t wTID; - wT_UE_XwAP_ID_t wT_UE_XwAP_ID; - iE_Extensions_t iE_Extensions; - -}; -/* -UE-ContextReferenceAtSgNB-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct UE_ContextReferenceAtSgNB_ItemExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -UE-ContextReferenceAtSgNB ::= SEQUENCE { - source-GlobalSgNB-ID GlobalGNB-ID, - sgNB-UE-X2AP-ID SgNB-UE-X2AP-ID, - iE-Extensions ProtocolExtensionContainer { {UE-ContextReferenceAtSgNB-ItemExtIEs} } OPTIONAL, - ... -} -*/ - -struct UE_ContextReferenceAtSgNB : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "UE-ContextReferenceAtSgNB";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct source_GlobalSgNB_ID_t : GlobalGNB_ID - { - static constexpr const char* name() {return "source_GlobalSgNB_ID_t";} - using parent_t = GlobalGNB_ID; - - }; - source_GlobalSgNB_ID_t& ref_source_GlobalSgNB_ID() {return source_GlobalSgNB_ID;} - source_GlobalSgNB_ID_t const& ref_source_GlobalSgNB_ID() const {return source_GlobalSgNB_ID;} - struct sgNB_UE_X2AP_ID_t : SgNB_UE_X2AP_ID - { - static constexpr const char* name() {return "sgNB_UE_X2AP_ID_t";} - using parent_t = SgNB_UE_X2AP_ID; - - }; - sgNB_UE_X2AP_ID_t& ref_sgNB_UE_X2AP_ID() {return sgNB_UE_X2AP_ID;} - sgNB_UE_X2AP_ID_t const& ref_sgNB_UE_X2AP_ID() const {return sgNB_UE_X2AP_ID;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(source_GlobalSgNB_ID); - v(sgNB_UE_X2AP_ID); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(source_GlobalSgNB_ID); - v(sgNB_UE_X2AP_ID); - v(iE_Extensions); - - }; - void clear() - { - source_GlobalSgNB_ID.clear(); - sgNB_UE_X2AP_ID.clear(); - iE_Extensions.clear(); - - }; - private: - source_GlobalSgNB_ID_t source_GlobalSgNB_ID; - sgNB_UE_X2AP_ID_t sgNB_UE_X2AP_ID; - iE_Extensions_t iE_Extensions; - -}; -/* -HandoverRequest-IEs X2AP-PROTOCOL-IES ::= { - { ID id-Old-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| - { ID id-TargetCell-ID CRITICALITY reject TYPE ECGI PRESENCE mandatory}| - { ID id-GUMMEI-ID CRITICALITY reject TYPE GUMMEI PRESENCE mandatory}| - { ID id-UE-ContextInformation CRITICALITY reject TYPE UE-ContextInformation PRESENCE mandatory}| - { ID id-UE-HistoryInformation CRITICALITY ignore TYPE UE-HistoryInformation PRESENCE mandatory}| - { ID id-TraceActivation CRITICALITY ignore TYPE TraceActivation PRESENCE optional}| - { ID id-SRVCCOperationPossible CRITICALITY ignore TYPE SRVCCOperationPossible PRESENCE optional}| - { ID id-CSGMembershipStatus CRITICALITY reject TYPE CSGMembershipStatus PRESENCE optional}| - { ID id-MobilityInformation CRITICALITY ignore TYPE MobilityInformation PRESENCE optional}| - { ID id-Masked-IMEISV CRITICALITY ignore TYPE Masked-IMEISV PRESENCE optional}| - { ID id-UE-HistoryInformationFromTheUE CRITICALITY ignore TYPE UE-HistoryInformationFromTheUE PRESENCE optional}| - { ID id-ExpectedUEBehaviour CRITICALITY ignore TYPE ExpectedUEBehaviour PRESENCE optional}| - { ID id-ProSeAuthorized CRITICALITY ignore TYPE ProSeAuthorized PRESENCE optional}| - { ID id-UE-ContextReferenceAtSeNB CRITICALITY ignore TYPE UE-ContextReferenceAtSeNB PRESENCE optional}| - { ID id-Old-eNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-V2XServicesAuthorized CRITICALITY ignore TYPE V2XServicesAuthorized PRESENCE optional}| - { ID id-UE-ContextReferenceAtWT CRITICALITY ignore TYPE UE-ContextReferenceAtWT PRESENCE optional}| - { ID id-NRUESecurityCapabilities CRITICALITY ignore TYPE NRUESecurityCapabilities PRESENCE optional}| - { ID id-UE-ContextReferenceAtSgNB CRITICALITY ignore TYPE UE-ContextReferenceAtSgNB PRESENCE optional}| - { ID id-AerialUEsubscriptionInformation CRITICALITY ignore TYPE AerialUEsubscriptionInformation PRESENCE optional}| - { ID id-Subscription-Based-UE-DifferentiationInfo CRITICALITY ignore TYPE Subscription-Based-UE-DifferentiationInfo PRESENCE optional}, - ... -} -*/ - -struct HandoverRequest_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 23; } - void clear() {type = 0;} - void select_id_Old_eNB_UE_X2AP_ID() { set(id_Old_eNB_UE_X2AP_ID); type=1;} - void select_id_Cause() { set(id_Cause); type=2;} - void select_id_TargetCell_ID() { set(id_TargetCell_ID); type=3;} - void select_id_GUMMEI_ID() { set(id_GUMMEI_ID); type=4;} - void select_id_UE_ContextInformation() { set(id_UE_ContextInformation); type=5;} - void select_id_UE_HistoryInformation() { set(id_UE_HistoryInformation); type=6;} - void select_id_TraceActivation() { set(id_TraceActivation); type=7;} - void select_id_SRVCCOperationPossible() { set(id_SRVCCOperationPossible); type=8;} - void select_id_CSGMembershipStatus() { set(id_CSGMembershipStatus); type=9;} - void select_id_MobilityInformation() { set(id_MobilityInformation); type=10;} - void select_id_Masked_IMEISV() { set(id_Masked_IMEISV); type=11;} - void select_id_UE_HistoryInformationFromTheUE() { set(id_UE_HistoryInformationFromTheUE); type=12;} - void select_id_ExpectedUEBehaviour() { set(id_ExpectedUEBehaviour); type=13;} - void select_id_ProSeAuthorized() { set(id_ProSeAuthorized); type=14;} - void select_id_UE_ContextReferenceAtSeNB() { set(id_UE_ContextReferenceAtSeNB); type=15;} - void select_id_Old_eNB_UE_X2AP_ID_Extension() { set(id_Old_eNB_UE_X2AP_ID_Extension); type=16;} - void select_id_V2XServicesAuthorized() { set(id_V2XServicesAuthorized); type=17;} - void select_id_UE_ContextReferenceAtWT() { set(id_UE_ContextReferenceAtWT); type=18;} - void select_id_NRUESecurityCapabilities() { set(id_NRUESecurityCapabilities); type=19;} - void select_id_UE_ContextReferenceAtSgNB() { set(id_UE_ContextReferenceAtSgNB); type=20;} - void select_id_AerialUEsubscriptionInformation() { set(id_AerialUEsubscriptionInformation); type=21;} - void select_id_Subscription_Based_UE_DifferentiationInfo() { set(id_Subscription_Based_UE_DifferentiationInfo); type=22;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_Old_eNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_Cause)) { type = 2; return true; } - else if(equal(id_TargetCell_ID)) { type = 3; return true; } - else if(equal(id_GUMMEI_ID)) { type = 4; return true; } - else if(equal(id_UE_ContextInformation)) { type = 5; return true; } - else if(equal(id_UE_HistoryInformation)) { type = 6; return true; } - else if(equal(id_TraceActivation)) { type = 7; return true; } - else if(equal(id_SRVCCOperationPossible)) { type = 8; return true; } - else if(equal(id_CSGMembershipStatus)) { type = 9; return true; } - else if(equal(id_MobilityInformation)) { type = 10; return true; } - else if(equal(id_Masked_IMEISV)) { type = 11; return true; } - else if(equal(id_UE_HistoryInformationFromTheUE)) { type = 12; return true; } - else if(equal(id_ExpectedUEBehaviour)) { type = 13; return true; } - else if(equal(id_ProSeAuthorized)) { type = 14; return true; } - else if(equal(id_UE_ContextReferenceAtSeNB)) { type = 15; return true; } - else if(equal(id_Old_eNB_UE_X2AP_ID_Extension)) { type = 16; return true; } - else if(equal(id_V2XServicesAuthorized)) { type = 17; return true; } - else if(equal(id_UE_ContextReferenceAtWT)) { type = 18; return true; } - else if(equal(id_NRUESecurityCapabilities)) { type = 19; return true; } - else if(equal(id_UE_ContextReferenceAtSgNB)) { type = 20; return true; } - else if(equal(id_AerialUEsubscriptionInformation)) { type = 21; return true; } - else if(equal(id_Subscription_Based_UE_DifferentiationInfo)) { type = 22; return true; } - else { type = 23; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_Old_eNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_TargetCell_ID);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_GUMMEI_ID);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_UE_ContextInformation);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_UE_HistoryInformation);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(id_TraceActivation);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(id_SRVCCOperationPossible);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(id_CSGMembershipStatus);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(id_MobilityInformation);} return false; - case 11: type = 11; if(v(ref_nested())) { return equal(id_Masked_IMEISV);} return false; - case 12: type = 12; if(v(ref_nested())) { return equal(id_UE_HistoryInformationFromTheUE);} return false; - case 13: type = 13; if(v(ref_nested())) { return equal(id_ExpectedUEBehaviour);} return false; - case 14: type = 14; if(v(ref_nested())) { return equal(id_ProSeAuthorized);} return false; - case 15: type = 15; if(v(ref_nested())) { return equal(id_UE_ContextReferenceAtSeNB);} return false; - case 16: type = 16; if(v(ref_nested())) { return equal(id_Old_eNB_UE_X2AP_ID_Extension);} return false; - case 17: type = 17; if(v(ref_nested())) { return equal(id_V2XServicesAuthorized);} return false; - case 18: type = 18; if(v(ref_nested())) { return equal(id_UE_ContextReferenceAtWT);} return false; - case 19: type = 19; if(v(ref_nested())) { return equal(id_NRUESecurityCapabilities);} return false; - case 20: type = 20; if(v(ref_nested())) { return equal(id_UE_ContextReferenceAtSgNB);} return false; - case 21: type = 21; if(v(ref_nested())) { return equal(id_AerialUEsubscriptionInformation);} return false; - case 22: type = 22; if(v(ref_nested())) { return equal(id_Subscription_Based_UE_DifferentiationInfo);} return false; - case 23: type = 23; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 23; } - void clear() {type = 0;} - void select_id_Old_eNB_UE_X2AP_ID() { set(reject); type=1;} - void select_id_Cause() { set(ignore); type=2;} - void select_id_TargetCell_ID() { set(reject); type=3;} - void select_id_GUMMEI_ID() { set(reject); type=4;} - void select_id_UE_ContextInformation() { set(reject); type=5;} - void select_id_UE_HistoryInformation() { set(ignore); type=6;} - void select_id_TraceActivation() { set(ignore); type=7;} - void select_id_SRVCCOperationPossible() { set(ignore); type=8;} - void select_id_CSGMembershipStatus() { set(reject); type=9;} - void select_id_MobilityInformation() { set(ignore); type=10;} - void select_id_Masked_IMEISV() { set(ignore); type=11;} - void select_id_UE_HistoryInformationFromTheUE() { set(ignore); type=12;} - void select_id_ExpectedUEBehaviour() { set(ignore); type=13;} - void select_id_ProSeAuthorized() { set(ignore); type=14;} - void select_id_UE_ContextReferenceAtSeNB() { set(ignore); type=15;} - void select_id_Old_eNB_UE_X2AP_ID_Extension() { set(reject); type=16;} - void select_id_V2XServicesAuthorized() { set(ignore); type=17;} - void select_id_UE_ContextReferenceAtWT() { set(ignore); type=18;} - void select_id_NRUESecurityCapabilities() { set(ignore); type=19;} - void select_id_UE_ContextReferenceAtSgNB() { set(ignore); type=20;} - void select_id_AerialUEsubscriptionInformation() { set(ignore); type=21;} - void select_id_Subscription_Based_UE_DifferentiationInfo() { set(ignore); type=22;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(reject)) { type = 3; return true; } - else if(equal(reject)) { type = 4; return true; } - else if(equal(reject)) { type = 5; return true; } - else if(equal(ignore)) { type = 6; return true; } - else if(equal(ignore)) { type = 7; return true; } - else if(equal(ignore)) { type = 8; return true; } - else if(equal(reject)) { type = 9; return true; } - else if(equal(ignore)) { type = 10; return true; } - else if(equal(ignore)) { type = 11; return true; } - else if(equal(ignore)) { type = 12; return true; } - else if(equal(ignore)) { type = 13; return true; } - else if(equal(ignore)) { type = 14; return true; } - else if(equal(ignore)) { type = 15; return true; } - else if(equal(reject)) { type = 16; return true; } - else if(equal(ignore)) { type = 17; return true; } - else if(equal(ignore)) { type = 18; return true; } - else if(equal(ignore)) { type = 19; return true; } - else if(equal(ignore)) { type = 20; return true; } - else if(equal(ignore)) { type = 21; return true; } - else if(equal(ignore)) { type = 22; return true; } - else { type = 23; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(reject);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(reject);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(reject);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(ignore);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(ignore);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(ignore);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(reject);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(ignore);} return false; - case 11: type = 11; if(v(ref_nested())) { return equal(ignore);} return false; - case 12: type = 12; if(v(ref_nested())) { return equal(ignore);} return false; - case 13: type = 13; if(v(ref_nested())) { return equal(ignore);} return false; - case 14: type = 14; if(v(ref_nested())) { return equal(ignore);} return false; - case 15: type = 15; if(v(ref_nested())) { return equal(ignore);} return false; - case 16: type = 16; if(v(ref_nested())) { return equal(reject);} return false; - case 17: type = 17; if(v(ref_nested())) { return equal(ignore);} return false; - case 18: type = 18; if(v(ref_nested())) { return equal(ignore);} return false; - case 19: type = 19; if(v(ref_nested())) { return equal(ignore);} return false; - case 20: type = 20; if(v(ref_nested())) { return equal(ignore);} return false; - case 21: type = 21; if(v(ref_nested())) { return equal(ignore);} return false; - case 22: type = 22; if(v(ref_nested())) { return equal(ignore);} return false; - case 23: type = 23; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_Old_eNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_Old_eNB_UE_X2AP_ID() const { return get(1); } - Cause& select_id_Cause() { return set(2); } - Cause const* get_id_Cause() const { return get(2); } - ECGI& select_id_TargetCell_ID() { return set(3); } - ECGI const* get_id_TargetCell_ID() const { return get(3); } - GUMMEI& select_id_GUMMEI_ID() { return set(4); } - GUMMEI const* get_id_GUMMEI_ID() const { return get(4); } - UE_ContextInformation& select_id_UE_ContextInformation() { return set(5); } - UE_ContextInformation const* get_id_UE_ContextInformation() const { return get(5); } - UE_HistoryInformation& select_id_UE_HistoryInformation() { return set(6); } - UE_HistoryInformation const* get_id_UE_HistoryInformation() const { return get(6); } - TraceActivation& select_id_TraceActivation() { return set(7); } - TraceActivation const* get_id_TraceActivation() const { return get(7); } - SRVCCOperationPossible& select_id_SRVCCOperationPossible() { return set(8); } - SRVCCOperationPossible const* get_id_SRVCCOperationPossible() const { return get(8); } - CSGMembershipStatus& select_id_CSGMembershipStatus() { return set(9); } - CSGMembershipStatus const* get_id_CSGMembershipStatus() const { return get(9); } - MobilityInformation& select_id_MobilityInformation() { return set(10); } - MobilityInformation const* get_id_MobilityInformation() const { return get(10); } - Masked_IMEISV& select_id_Masked_IMEISV() { return set(11); } - Masked_IMEISV const* get_id_Masked_IMEISV() const { return get(11); } - UE_HistoryInformationFromTheUE& select_id_UE_HistoryInformationFromTheUE() { return set(12); } - UE_HistoryInformationFromTheUE const* get_id_UE_HistoryInformationFromTheUE() const { return get(12); } - ExpectedUEBehaviour& select_id_ExpectedUEBehaviour() { return set(13); } - ExpectedUEBehaviour const* get_id_ExpectedUEBehaviour() const { return get(13); } - ProSeAuthorized& select_id_ProSeAuthorized() { return set(14); } - ProSeAuthorized const* get_id_ProSeAuthorized() const { return get(14); } - UE_ContextReferenceAtSeNB& select_id_UE_ContextReferenceAtSeNB() { return set(15); } - UE_ContextReferenceAtSeNB const* get_id_UE_ContextReferenceAtSeNB() const { return get(15); } - UE_X2AP_ID_Extension& select_id_Old_eNB_UE_X2AP_ID_Extension() { return set(16); } - UE_X2AP_ID_Extension const* get_id_Old_eNB_UE_X2AP_ID_Extension() const { return get(16); } - V2XServicesAuthorized& select_id_V2XServicesAuthorized() { return set(17); } - V2XServicesAuthorized const* get_id_V2XServicesAuthorized() const { return get(17); } - UE_ContextReferenceAtWT& select_id_UE_ContextReferenceAtWT() { return set(18); } - UE_ContextReferenceAtWT const* get_id_UE_ContextReferenceAtWT() const { return get(18); } - NRUESecurityCapabilities& select_id_NRUESecurityCapabilities() { return set(19); } - NRUESecurityCapabilities const* get_id_NRUESecurityCapabilities() const { return get(19); } - UE_ContextReferenceAtSgNB& select_id_UE_ContextReferenceAtSgNB() { return set(20); } - UE_ContextReferenceAtSgNB const* get_id_UE_ContextReferenceAtSgNB() const { return get(20); } - AerialUEsubscriptionInformation& select_id_AerialUEsubscriptionInformation() { return set(21); } - AerialUEsubscriptionInformation const* get_id_AerialUEsubscriptionInformation() const { return get(21); } - Subscription_Based_UE_DifferentiationInfo& select_id_Subscription_Based_UE_DifferentiationInfo() { return set(22); } - Subscription_Based_UE_DifferentiationInfo const* get_id_Subscription_Based_UE_DifferentiationInfo() const { return get(22); } - bool is_unknown() const { return type == 23; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - case 7: var.destroy(); break; - case 8: var.destroy(); break; - case 9: var.destroy(); break; - case 10: var.destroy(); break; - case 11: var.destroy(); break; - case 12: var.destroy(); break; - case 13: var.destroy(); break; - case 14: var.destroy(); break; - case 15: var.destroy(); break; - case 16: var.destroy(); break; - case 17: var.destroy(); break; - case 18: var.destroy(); break; - case 19: var.destroy(); break; - case 20: var.destroy(); break; - case 21: var.destroy(); break; - case 22: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - v.template operator()(7); - v.template operator()(8); - v.template operator()(9); - v.template operator()(10); - v.template operator()(11); - v.template operator()(12); - v.template operator()(13); - v.template operator()(14); - v.template operator()(15); - v.template operator()(16); - v.template operator()(17); - v.template operator()(18); - v.template operator()(19); - v.template operator()(20); - v.template operator()(21); - v.template operator()(22); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_Old_eNB_UE_X2AP_ID()); return true; - case 2: v(select_id_Cause()); return true; - case 3: v(select_id_TargetCell_ID()); return true; - case 4: v(select_id_GUMMEI_ID()); return true; - case 5: v(select_id_UE_ContextInformation()); return true; - case 6: v(select_id_UE_HistoryInformation()); return true; - case 7: v(select_id_TraceActivation()); return true; - case 8: v(select_id_SRVCCOperationPossible()); return true; - case 9: v(select_id_CSGMembershipStatus()); return true; - case 10: v(select_id_MobilityInformation()); return true; - case 11: v(select_id_Masked_IMEISV()); return true; - case 12: v(select_id_UE_HistoryInformationFromTheUE()); return true; - case 13: v(select_id_ExpectedUEBehaviour()); return true; - case 14: v(select_id_ProSeAuthorized()); return true; - case 15: v(select_id_UE_ContextReferenceAtSeNB()); return true; - case 16: v(select_id_Old_eNB_UE_X2AP_ID_Extension()); return true; - case 17: v(select_id_V2XServicesAuthorized()); return true; - case 18: v(select_id_UE_ContextReferenceAtWT()); return true; - case 19: v(select_id_NRUESecurityCapabilities()); return true; - case 20: v(select_id_UE_ContextReferenceAtSgNB()); return true; - case 21: v(select_id_AerialUEsubscriptionInformation()); return true; - case 22: v(select_id_Subscription_Based_UE_DifferentiationInfo()); return true; - case 23: if(type != 23) {clear(); asn::base::set();} type = 23; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - case 7: v(var.as()); return true; - case 8: v(var.as()); return true; - case 9: v(var.as()); return true; - case 10: v(var.as()); return true; - case 11: v(var.as()); return true; - case 12: v(var.as()); return true; - case 13: v(var.as()); return true; - case 14: v(var.as()); return true; - case 15: v(var.as()); return true; - case 16: v(var.as()); return true; - case 17: v(var.as()); return true; - case 18: v(var.as()); return true; - case 19: v(var.as()); return true; - case 20: v(var.as()); return true; - case 21: v(var.as()); return true; - case 22: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(AerialUEsubscriptionInformation)]; - char dummy2[sizeof(CSGMembershipStatus)]; - char dummy3[sizeof(Cause)]; - char dummy4[sizeof(ECGI)]; - char dummy5[sizeof(ExpectedUEBehaviour)]; - char dummy6[sizeof(GUMMEI)]; - char dummy7[sizeof(Masked_IMEISV)]; - char dummy8[sizeof(MobilityInformation)]; - char dummy9[sizeof(NRUESecurityCapabilities)]; - char dummy10[sizeof(ProSeAuthorized)]; - char dummy11[sizeof(SRVCCOperationPossible)]; - char dummy12[sizeof(Subscription_Based_UE_DifferentiationInfo)]; - char dummy13[sizeof(TraceActivation)]; - char dummy14[sizeof(UE_ContextInformation)]; - char dummy15[sizeof(UE_ContextReferenceAtSeNB)]; - char dummy16[sizeof(UE_ContextReferenceAtSgNB)]; - char dummy17[sizeof(UE_ContextReferenceAtWT)]; - char dummy18[sizeof(UE_HistoryInformation)]; - char dummy19[sizeof(UE_HistoryInformationFromTheUE)]; - char dummy20[sizeof(UE_X2AP_ID)]; - char dummy21[sizeof(UE_X2AP_ID_Extension)]; - char dummy22[sizeof(V2XServicesAuthorized)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 23; } - void clear() {type = 0;} - void select_id_Old_eNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_Cause() { set(mandatory); type=2;} - void select_id_TargetCell_ID() { set(mandatory); type=3;} - void select_id_GUMMEI_ID() { set(mandatory); type=4;} - void select_id_UE_ContextInformation() { set(mandatory); type=5;} - void select_id_UE_HistoryInformation() { set(mandatory); type=6;} - void select_id_TraceActivation() { set(optional); type=7;} - void select_id_SRVCCOperationPossible() { set(optional); type=8;} - void select_id_CSGMembershipStatus() { set(optional); type=9;} - void select_id_MobilityInformation() { set(optional); type=10;} - void select_id_Masked_IMEISV() { set(optional); type=11;} - void select_id_UE_HistoryInformationFromTheUE() { set(optional); type=12;} - void select_id_ExpectedUEBehaviour() { set(optional); type=13;} - void select_id_ProSeAuthorized() { set(optional); type=14;} - void select_id_UE_ContextReferenceAtSeNB() { set(optional); type=15;} - void select_id_Old_eNB_UE_X2AP_ID_Extension() { set(optional); type=16;} - void select_id_V2XServicesAuthorized() { set(optional); type=17;} - void select_id_UE_ContextReferenceAtWT() { set(optional); type=18;} - void select_id_NRUESecurityCapabilities() { set(optional); type=19;} - void select_id_UE_ContextReferenceAtSgNB() { set(optional); type=20;} - void select_id_AerialUEsubscriptionInformation() { set(optional); type=21;} - void select_id_Subscription_Based_UE_DifferentiationInfo() { set(optional); type=22;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(mandatory)) { type = 4; return true; } - else if(equal(mandatory)) { type = 5; return true; } - else if(equal(mandatory)) { type = 6; return true; } - else if(equal(optional)) { type = 7; return true; } - else if(equal(optional)) { type = 8; return true; } - else if(equal(optional)) { type = 9; return true; } - else if(equal(optional)) { type = 10; return true; } - else if(equal(optional)) { type = 11; return true; } - else if(equal(optional)) { type = 12; return true; } - else if(equal(optional)) { type = 13; return true; } - else if(equal(optional)) { type = 14; return true; } - else if(equal(optional)) { type = 15; return true; } - else if(equal(optional)) { type = 16; return true; } - else if(equal(optional)) { type = 17; return true; } - else if(equal(optional)) { type = 18; return true; } - else if(equal(optional)) { type = 19; return true; } - else if(equal(optional)) { type = 20; return true; } - else if(equal(optional)) { type = 21; return true; } - else if(equal(optional)) { type = 22; return true; } - else { type = 23; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(mandatory);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(mandatory);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(mandatory);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(optional);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(optional);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(optional);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(optional);} return false; - case 11: type = 11; if(v(ref_nested())) { return equal(optional);} return false; - case 12: type = 12; if(v(ref_nested())) { return equal(optional);} return false; - case 13: type = 13; if(v(ref_nested())) { return equal(optional);} return false; - case 14: type = 14; if(v(ref_nested())) { return equal(optional);} return false; - case 15: type = 15; if(v(ref_nested())) { return equal(optional);} return false; - case 16: type = 16; if(v(ref_nested())) { return equal(optional);} return false; - case 17: type = 17; if(v(ref_nested())) { return equal(optional);} return false; - case 18: type = 18; if(v(ref_nested())) { return equal(optional);} return false; - case 19: type = 19; if(v(ref_nested())) { return equal(optional);} return false; - case 20: type = 20; if(v(ref_nested())) { return equal(optional);} return false; - case 21: type = 21; if(v(ref_nested())) { return equal(optional);} return false; - case 22: type = 22; if(v(ref_nested())) { return equal(optional);} return false; - case 23: type = 23; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -HandoverRequest ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{HandoverRequest-IEs}}, - ... -} -*/ - -struct HandoverRequest : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "HandoverRequest";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -HandoverRequestAcknowledge-IEs X2AP-PROTOCOL-IES ::= { - { ID id-Old-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-New-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-E-RABs-Admitted-List CRITICALITY ignore TYPE E-RABs-Admitted-List PRESENCE mandatory}| - { ID id-E-RABs-NotAdmitted-List CRITICALITY ignore TYPE E-RAB-List PRESENCE optional}| - { ID id-TargeteNBtoSource-eNBTransparentContainer CRITICALITY ignore TYPE TargeteNBtoSource-eNBTransparentContainer PRESENCE mandatory}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| - { ID id-UE-ContextKeptIndicator CRITICALITY ignore TYPE UE-ContextKeptIndicator PRESENCE optional}| - { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-Old-eNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-New-eNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-WT-UE-ContextKeptIndicator CRITICALITY ignore TYPE UE-ContextKeptIndicator PRESENCE optional}, - ... -} -*/ - -struct HandoverRequestAcknowledge_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 12; } - void clear() {type = 0;} - void select_id_Old_eNB_UE_X2AP_ID() { set(id_Old_eNB_UE_X2AP_ID); type=1;} - void select_id_New_eNB_UE_X2AP_ID() { set(id_New_eNB_UE_X2AP_ID); type=2;} - void select_id_E_RABs_Admitted_List() { set(id_E_RABs_Admitted_List); type=3;} - void select_id_E_RABs_NotAdmitted_List() { set(id_E_RABs_NotAdmitted_List); type=4;} - void select_id_TargeteNBtoSource_eNBTransparentContainer() { set(id_TargeteNBtoSource_eNBTransparentContainer); type=5;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=6;} - void select_id_UE_ContextKeptIndicator() { set(id_UE_ContextKeptIndicator); type=7;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(id_SeNB_UE_X2AP_ID_Extension); type=8;} - void select_id_Old_eNB_UE_X2AP_ID_Extension() { set(id_Old_eNB_UE_X2AP_ID_Extension); type=9;} - void select_id_New_eNB_UE_X2AP_ID_Extension() { set(id_New_eNB_UE_X2AP_ID_Extension); type=10;} - void select_id_WT_UE_ContextKeptIndicator() { set(id_WT_UE_ContextKeptIndicator); type=11;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_Old_eNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_New_eNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_E_RABs_Admitted_List)) { type = 3; return true; } - else if(equal(id_E_RABs_NotAdmitted_List)) { type = 4; return true; } - else if(equal(id_TargeteNBtoSource_eNBTransparentContainer)) { type = 5; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 6; return true; } - else if(equal(id_UE_ContextKeptIndicator)) { type = 7; return true; } - else if(equal(id_SeNB_UE_X2AP_ID_Extension)) { type = 8; return true; } - else if(equal(id_Old_eNB_UE_X2AP_ID_Extension)) { type = 9; return true; } - else if(equal(id_New_eNB_UE_X2AP_ID_Extension)) { type = 10; return true; } - else if(equal(id_WT_UE_ContextKeptIndicator)) { type = 11; return true; } - else { type = 12; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_Old_eNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_New_eNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_E_RABs_Admitted_List);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_E_RABs_NotAdmitted_List);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_TargeteNBtoSource_eNBTransparentContainer);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(id_UE_ContextKeptIndicator);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(id_SeNB_UE_X2AP_ID_Extension);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(id_Old_eNB_UE_X2AP_ID_Extension);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(id_New_eNB_UE_X2AP_ID_Extension);} return false; - case 11: type = 11; if(v(ref_nested())) { return equal(id_WT_UE_ContextKeptIndicator);} return false; - case 12: type = 12; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 12; } - void clear() {type = 0;} - void select_id_Old_eNB_UE_X2AP_ID() { set(ignore); type=1;} - void select_id_New_eNB_UE_X2AP_ID() { set(ignore); type=2;} - void select_id_E_RABs_Admitted_List() { set(ignore); type=3;} - void select_id_E_RABs_NotAdmitted_List() { set(ignore); type=4;} - void select_id_TargeteNBtoSource_eNBTransparentContainer() { set(ignore); type=5;} - void select_id_CriticalityDiagnostics() { set(ignore); type=6;} - void select_id_UE_ContextKeptIndicator() { set(ignore); type=7;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(ignore); type=8;} - void select_id_Old_eNB_UE_X2AP_ID_Extension() { set(ignore); type=9;} - void select_id_New_eNB_UE_X2AP_ID_Extension() { set(reject); type=10;} - void select_id_WT_UE_ContextKeptIndicator() { set(ignore); type=11;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else if(equal(ignore)) { type = 6; return true; } - else if(equal(ignore)) { type = 7; return true; } - else if(equal(ignore)) { type = 8; return true; } - else if(equal(ignore)) { type = 9; return true; } - else if(equal(reject)) { type = 10; return true; } - else if(equal(ignore)) { type = 11; return true; } - else { type = 12; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(ignore);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(ignore);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(ignore);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(ignore);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(reject);} return false; - case 11: type = 11; if(v(ref_nested())) { return equal(ignore);} return false; - case 12: type = 12; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_Old_eNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_Old_eNB_UE_X2AP_ID() const { return get(1); } - UE_X2AP_ID& select_id_New_eNB_UE_X2AP_ID() { return set(2); } - UE_X2AP_ID const* get_id_New_eNB_UE_X2AP_ID() const { return get(2); } - E_RABs_Admitted_List& select_id_E_RABs_Admitted_List() { return set(3); } - E_RABs_Admitted_List const* get_id_E_RABs_Admitted_List() const { return get(3); } - E_RAB_List& select_id_E_RABs_NotAdmitted_List() { return set(4); } - E_RAB_List const* get_id_E_RABs_NotAdmitted_List() const { return get(4); } - TargeteNBtoSource_eNBTransparentContainer& select_id_TargeteNBtoSource_eNBTransparentContainer() { return set(5); } - TargeteNBtoSource_eNBTransparentContainer const* get_id_TargeteNBtoSource_eNBTransparentContainer() const { return get(5); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(6); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(6); } - UE_ContextKeptIndicator& select_id_UE_ContextKeptIndicator() { return set(7); } - UE_ContextKeptIndicator const* get_id_UE_ContextKeptIndicator() const { return get(7); } - UE_X2AP_ID_Extension& select_id_SeNB_UE_X2AP_ID_Extension() { return set(8); } - UE_X2AP_ID_Extension const* get_id_SeNB_UE_X2AP_ID_Extension() const { return get(8); } - UE_X2AP_ID_Extension& select_id_Old_eNB_UE_X2AP_ID_Extension() { return set(9); } - UE_X2AP_ID_Extension const* get_id_Old_eNB_UE_X2AP_ID_Extension() const { return get(9); } - UE_X2AP_ID_Extension& select_id_New_eNB_UE_X2AP_ID_Extension() { return set(10); } - UE_X2AP_ID_Extension const* get_id_New_eNB_UE_X2AP_ID_Extension() const { return get(10); } - UE_ContextKeptIndicator& select_id_WT_UE_ContextKeptIndicator() { return set(11); } - UE_ContextKeptIndicator const* get_id_WT_UE_ContextKeptIndicator() const { return get(11); } - bool is_unknown() const { return type == 12; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - case 7: var.destroy(); break; - case 8: var.destroy(); break; - case 9: var.destroy(); break; - case 10: var.destroy(); break; - case 11: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - v.template operator()(7); - v.template operator()(8); - v.template operator()(9); - v.template operator()(10); - v.template operator()(11); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_Old_eNB_UE_X2AP_ID()); return true; - case 2: v(select_id_New_eNB_UE_X2AP_ID()); return true; - case 3: v(select_id_E_RABs_Admitted_List()); return true; - case 4: v(select_id_E_RABs_NotAdmitted_List()); return true; - case 5: v(select_id_TargeteNBtoSource_eNBTransparentContainer()); return true; - case 6: v(select_id_CriticalityDiagnostics()); return true; - case 7: v(select_id_UE_ContextKeptIndicator()); return true; - case 8: v(select_id_SeNB_UE_X2AP_ID_Extension()); return true; - case 9: v(select_id_Old_eNB_UE_X2AP_ID_Extension()); return true; - case 10: v(select_id_New_eNB_UE_X2AP_ID_Extension()); return true; - case 11: v(select_id_WT_UE_ContextKeptIndicator()); return true; - case 12: if(type != 12) {clear(); asn::base::set();} type = 12; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - case 7: v(var.as()); return true; - case 8: v(var.as()); return true; - case 9: v(var.as()); return true; - case 10: v(var.as()); return true; - case 11: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CriticalityDiagnostics)]; - char dummy2[sizeof(E_RAB_List)]; - char dummy3[sizeof(E_RABs_Admitted_List)]; - char dummy4[sizeof(TargeteNBtoSource_eNBTransparentContainer)]; - char dummy5[sizeof(UE_ContextKeptIndicator)]; - char dummy6[sizeof(UE_X2AP_ID)]; - char dummy7[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 12; } - void clear() {type = 0;} - void select_id_Old_eNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_New_eNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_E_RABs_Admitted_List() { set(mandatory); type=3;} - void select_id_E_RABs_NotAdmitted_List() { set(optional); type=4;} - void select_id_TargeteNBtoSource_eNBTransparentContainer() { set(mandatory); type=5;} - void select_id_CriticalityDiagnostics() { set(optional); type=6;} - void select_id_UE_ContextKeptIndicator() { set(optional); type=7;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(optional); type=8;} - void select_id_Old_eNB_UE_X2AP_ID_Extension() { set(optional); type=9;} - void select_id_New_eNB_UE_X2AP_ID_Extension() { set(optional); type=10;} - void select_id_WT_UE_ContextKeptIndicator() { set(optional); type=11;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(mandatory)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else if(equal(optional)) { type = 7; return true; } - else if(equal(optional)) { type = 8; return true; } - else if(equal(optional)) { type = 9; return true; } - else if(equal(optional)) { type = 10; return true; } - else if(equal(optional)) { type = 11; return true; } - else { type = 12; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(mandatory);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(optional);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(optional);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(optional);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(optional);} return false; - case 11: type = 11; if(v(ref_nested())) { return equal(optional);} return false; - case 12: type = 12; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -HandoverRequestAcknowledge ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{HandoverRequestAcknowledge-IEs}}, - ... -} -*/ - -struct HandoverRequestAcknowledge : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "HandoverRequestAcknowledge";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -LoadInformation-IEs X2AP-PROTOCOL-IES ::= { - { ID id-CellInformation CRITICALITY ignore TYPE CellInformation-List PRESENCE mandatory} , - ... -} -*/ - -struct LoadInformation_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_CellInformation() { set(id_CellInformation); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_CellInformation)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_CellInformation);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_CellInformation() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - CellInformation_List& select_id_CellInformation() { return set(1); } - CellInformation_List const* get_id_CellInformation() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_CellInformation()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CellInformation_List)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_CellInformation() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -LoadInformation ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{LoadInformation-IEs}}, - ... -} -*/ - -struct LoadInformation : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "LoadInformation";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -MeasurementInitiationResult-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct MeasurementInitiationResult_Item_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -MeasurementInitiationResult-Item ::= SEQUENCE { - cell-ID ECGI, - measurementFailureCause-List MeasurementFailureCause-List OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {MeasurementInitiationResult-Item-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct MeasurementInitiationResult_Item : asn::sequence<3, 0, true, 2> -{ - static constexpr const char* name() {return "MeasurementInitiationResult-Item";} - using parent_t = asn::sequence<3, 0, true, 2>; - struct cell_ID_t : ECGI - { - static constexpr const char* name() {return "cell_ID_t";} - using parent_t = ECGI; - - }; - cell_ID_t& ref_cell_ID() {return cell_ID;} - cell_ID_t const& ref_cell_ID() const {return cell_ID;} - struct measurementFailureCause_List_t : MeasurementFailureCause_List - { - static constexpr const char* name() {return "measurementFailureCause_List_t";} - using parent_t = MeasurementFailureCause_List; - static constexpr bool optional = true; - - }; - measurementFailureCause_List_t& set_measurementFailureCause_List() { measurementFailureCause_List.setpresent(true); return measurementFailureCause_List;} - measurementFailureCause_List_t const* get_measurementFailureCause_List() const {return measurementFailureCause_List.is_valid() ? &measurementFailureCause_List : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(cell_ID); - v(measurementFailureCause_List); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(cell_ID); - v(measurementFailureCause_List); - v(iE_Extensions); - - }; - void clear() - { - cell_ID.clear(); - measurementFailureCause_List.clear(); - iE_Extensions.clear(); - - }; - private: - cell_ID_t cell_ID; - measurementFailureCause_List_t measurementFailureCause_List; - iE_Extensions_t iE_Extensions; - -}; -/* -MeasurementInitiationResult-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-MeasurementInitiationResult-Item CRITICALITY ignore TYPE MeasurementInitiationResult-Item PRESENCE mandatory} -} -*/ - -struct MeasurementInitiationResult_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_MeasurementInitiationResult_Item() { set(id_MeasurementInitiationResult_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeasurementInitiationResult_Item)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeasurementInitiationResult_Item);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_MeasurementInitiationResult_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - MeasurementInitiationResult_Item& select_id_MeasurementInitiationResult_Item() { return set(1); } - MeasurementInitiationResult_Item const* get_id_MeasurementInitiationResult_Item() const { return get(1); } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeasurementInitiationResult_Item()); return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(MeasurementInitiationResult_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_MeasurementInitiationResult_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -MeasurementInitiationResult-List ::= SEQUENCE (SIZE (1..maxCellineNB)) OF ProtocolIE-Single-Container { {MeasurementInitiationResult-ItemIEs} } -*/ - -struct MeasurementInitiationResult_List_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "MeasurementInitiationResult_List_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct MeasurementInitiationResult_List : asn::sequenceof -{ - static constexpr const char* name() {return "MeasurementInitiationResult-List";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -MobilityChangeAcknowledge-IEs X2AP-PROTOCOL-IES ::= { - { ID id-ENB1-Cell-ID CRITICALITY reject TYPE ECGI PRESENCE mandatory}| - { ID id-ENB2-Cell-ID CRITICALITY reject TYPE ECGI PRESENCE mandatory}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, - ... -} -*/ - -struct MobilityChangeAcknowledge_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_ENB1_Cell_ID() { set(id_ENB1_Cell_ID); type=1;} - void select_id_ENB2_Cell_ID() { set(id_ENB2_Cell_ID); type=2;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=3;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_ENB1_Cell_ID)) { type = 1; return true; } - else if(equal(id_ENB2_Cell_ID)) { type = 2; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_ENB1_Cell_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_ENB2_Cell_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_ENB1_Cell_ID() { set(reject); type=1;} - void select_id_ENB2_Cell_ID() { set(reject); type=2;} - void select_id_CriticalityDiagnostics() { set(ignore); type=3;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - ECGI& select_id_ENB1_Cell_ID() { return set(1); } - ECGI const* get_id_ENB1_Cell_ID() const { return get(1); } - ECGI& select_id_ENB2_Cell_ID() { return set(2); } - ECGI const* get_id_ENB2_Cell_ID() const { return get(2); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(3); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(3); } - bool is_unknown() const { return type == 4; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_ENB1_Cell_ID()); return true; - case 2: v(select_id_ENB2_Cell_ID()); return true; - case 3: v(select_id_CriticalityDiagnostics()); return true; - case 4: if(type != 4) {clear(); asn::base::set();} type = 4; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CriticalityDiagnostics)]; - char dummy2[sizeof(ECGI)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_ENB1_Cell_ID() { set(mandatory); type=1;} - void select_id_ENB2_Cell_ID() { set(mandatory); type=2;} - void select_id_CriticalityDiagnostics() { set(optional); type=3;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -MobilityChangeAcknowledge ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{MobilityChangeAcknowledge-IEs}}, - ... -} -*/ - -struct MobilityChangeAcknowledge : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "MobilityChangeAcknowledge";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -MobilityChangeFailure-IEs X2AP-PROTOCOL-IES ::= { - { ID id-ENB1-Cell-ID CRITICALITY ignore TYPE ECGI PRESENCE mandatory}| - { ID id-ENB2-Cell-ID CRITICALITY ignore TYPE ECGI PRESENCE mandatory}| - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| - { ID id-ENB2-Mobility-Parameters-Modification-Range CRITICALITY ignore TYPE MobilityParametersModificationRange PRESENCE optional}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, - ... -} -*/ - -struct MobilityChangeFailure_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_ENB1_Cell_ID() { set(id_ENB1_Cell_ID); type=1;} - void select_id_ENB2_Cell_ID() { set(id_ENB2_Cell_ID); type=2;} - void select_id_Cause() { set(id_Cause); type=3;} - void select_id_ENB2_Mobility_Parameters_Modification_Range() { set(id_ENB2_Mobility_Parameters_Modification_Range); type=4;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=5;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_ENB1_Cell_ID)) { type = 1; return true; } - else if(equal(id_ENB2_Cell_ID)) { type = 2; return true; } - else if(equal(id_Cause)) { type = 3; return true; } - else if(equal(id_ENB2_Mobility_Parameters_Modification_Range)) { type = 4; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_ENB1_Cell_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_ENB2_Cell_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_ENB2_Mobility_Parameters_Modification_Range);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_ENB1_Cell_ID() { set(ignore); type=1;} - void select_id_ENB2_Cell_ID() { set(ignore); type=2;} - void select_id_Cause() { set(ignore); type=3;} - void select_id_ENB2_Mobility_Parameters_Modification_Range() { set(ignore); type=4;} - void select_id_CriticalityDiagnostics() { set(ignore); type=5;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - ECGI& select_id_ENB1_Cell_ID() { return set(1); } - ECGI const* get_id_ENB1_Cell_ID() const { return get(1); } - ECGI& select_id_ENB2_Cell_ID() { return set(2); } - ECGI const* get_id_ENB2_Cell_ID() const { return get(2); } - Cause& select_id_Cause() { return set(3); } - Cause const* get_id_Cause() const { return get(3); } - MobilityParametersModificationRange& select_id_ENB2_Mobility_Parameters_Modification_Range() { return set(4); } - MobilityParametersModificationRange const* get_id_ENB2_Mobility_Parameters_Modification_Range() const { return get(4); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(5); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(5); } - bool is_unknown() const { return type == 6; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_ENB1_Cell_ID()); return true; - case 2: v(select_id_ENB2_Cell_ID()); return true; - case 3: v(select_id_Cause()); return true; - case 4: v(select_id_ENB2_Mobility_Parameters_Modification_Range()); return true; - case 5: v(select_id_CriticalityDiagnostics()); return true; - case 6: if(type != 6) {clear(); asn::base::set();} type = 6; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(CriticalityDiagnostics)]; - char dummy3[sizeof(ECGI)]; - char dummy4[sizeof(MobilityParametersModificationRange)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_ENB1_Cell_ID() { set(mandatory); type=1;} - void select_id_ENB2_Cell_ID() { set(mandatory); type=2;} - void select_id_Cause() { set(mandatory); type=3;} - void select_id_ENB2_Mobility_Parameters_Modification_Range() { set(optional); type=4;} - void select_id_CriticalityDiagnostics() { set(optional); type=5;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -MobilityChangeFailure ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{MobilityChangeFailure-IEs}}, - ... -} -*/ - -struct MobilityChangeFailure : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "MobilityChangeFailure";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -MobilityChangeRequest-IEs X2AP-PROTOCOL-IES ::= { - { ID id-ENB1-Cell-ID CRITICALITY reject TYPE ECGI PRESENCE mandatory}| - { ID id-ENB2-Cell-ID CRITICALITY reject TYPE ECGI PRESENCE mandatory}| - { ID id-ENB1-Mobility-Parameters CRITICALITY ignore TYPE MobilityParametersInformation PRESENCE optional}| - { ID id-ENB2-Proposed-Mobility-Parameters CRITICALITY reject TYPE MobilityParametersInformation PRESENCE mandatory}| - { ID id-Cause CRITICALITY reject TYPE Cause PRESENCE mandatory}, - ... -} -*/ - -struct MobilityChangeRequest_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_ENB1_Cell_ID() { set(id_ENB1_Cell_ID); type=1;} - void select_id_ENB2_Cell_ID() { set(id_ENB2_Cell_ID); type=2;} - void select_id_ENB1_Mobility_Parameters() { set(id_ENB1_Mobility_Parameters); type=3;} - void select_id_ENB2_Proposed_Mobility_Parameters() { set(id_ENB2_Proposed_Mobility_Parameters); type=4;} - void select_id_Cause() { set(id_Cause); type=5;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_ENB1_Cell_ID)) { type = 1; return true; } - else if(equal(id_ENB2_Cell_ID)) { type = 2; return true; } - else if(equal(id_ENB1_Mobility_Parameters)) { type = 3; return true; } - else if(equal(id_ENB2_Proposed_Mobility_Parameters)) { type = 4; return true; } - else if(equal(id_Cause)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_ENB1_Cell_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_ENB2_Cell_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_ENB1_Mobility_Parameters);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_ENB2_Proposed_Mobility_Parameters);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_ENB1_Cell_ID() { set(reject); type=1;} - void select_id_ENB2_Cell_ID() { set(reject); type=2;} - void select_id_ENB1_Mobility_Parameters() { set(ignore); type=3;} - void select_id_ENB2_Proposed_Mobility_Parameters() { set(reject); type=4;} - void select_id_Cause() { set(reject); type=5;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(reject)) { type = 4; return true; } - else if(equal(reject)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(reject);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(reject);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - ECGI& select_id_ENB1_Cell_ID() { return set(1); } - ECGI const* get_id_ENB1_Cell_ID() const { return get(1); } - ECGI& select_id_ENB2_Cell_ID() { return set(2); } - ECGI const* get_id_ENB2_Cell_ID() const { return get(2); } - MobilityParametersInformation& select_id_ENB1_Mobility_Parameters() { return set(3); } - MobilityParametersInformation const* get_id_ENB1_Mobility_Parameters() const { return get(3); } - MobilityParametersInformation& select_id_ENB2_Proposed_Mobility_Parameters() { return set(4); } - MobilityParametersInformation const* get_id_ENB2_Proposed_Mobility_Parameters() const { return get(4); } - Cause& select_id_Cause() { return set(5); } - Cause const* get_id_Cause() const { return get(5); } - bool is_unknown() const { return type == 6; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_ENB1_Cell_ID()); return true; - case 2: v(select_id_ENB2_Cell_ID()); return true; - case 3: v(select_id_ENB1_Mobility_Parameters()); return true; - case 4: v(select_id_ENB2_Proposed_Mobility_Parameters()); return true; - case 5: v(select_id_Cause()); return true; - case 6: if(type != 6) {clear(); asn::base::set();} type = 6; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(ECGI)]; - char dummy3[sizeof(MobilityParametersInformation)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_ENB1_Cell_ID() { set(mandatory); type=1;} - void select_id_ENB2_Cell_ID() { set(mandatory); type=2;} - void select_id_ENB1_Mobility_Parameters() { set(optional); type=3;} - void select_id_ENB2_Proposed_Mobility_Parameters() { set(mandatory); type=4;} - void select_id_Cause() { set(mandatory); type=5;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else if(equal(mandatory)) { type = 4; return true; } - else if(equal(mandatory)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(mandatory);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(mandatory);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -MobilityChangeRequest ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{MobilityChangeRequest-IEs}}, - ... -} -*/ - -struct MobilityChangeRequest : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "MobilityChangeRequest";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -PartialSuccessIndicator ::= ENUMERATED { - partial-success-allowed, -... -} -*/ - -struct PartialSuccessIndicator : asn::enumerated<1, 0, true> -{ - static constexpr const char* name() {return "PartialSuccessIndicator";} - using parent_t = asn::enumerated<1, 0, true>; - typedef enum { - partial_success_allowed - } index_t; - -}; - -/* -PrivateMessage-IEs X2AP-PRIVATE-IES ::= { - ... -} -*/ - -struct PrivateMessage_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PRIVATE_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PRIVATE_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PRIVATE_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -PrivateMessage ::= SEQUENCE { - privateIEs PrivateIE-Container {{PrivateMessage-IEs}}, - ... -} -*/ - -struct PrivateMessage : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "PrivateMessage";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct privateIEs_t : PrivateIE_Container - { - static constexpr const char* name() {return "privateIEs_t";} - using parent_t = PrivateIE_Container; - - }; - privateIEs_t& ref_privateIEs() {return privateIEs;} - privateIEs_t const& ref_privateIEs() const {return privateIEs;} - template void decode(V& v) - { - v(privateIEs); - - }; - template void encode(V& v) const - { - v(privateIEs); - - }; - void clear() - { - privateIEs.clear(); - - }; - private: - privateIEs_t privateIEs; - -}; -/* -RLFIndication-IEs X2AP-PROTOCOL-IES ::= { - { ID id-FailureCellPCI CRITICALITY ignore TYPE PCI PRESENCE mandatory}| - { ID id-Re-establishmentCellECGI CRITICALITY ignore TYPE ECGI PRESENCE mandatory}| - { ID id-FailureCellCRNTI CRITICALITY ignore TYPE CRNTI PRESENCE mandatory}| - { ID id-ShortMAC-I CRITICALITY ignore TYPE ShortMAC-I PRESENCE optional}| - { ID id-UE-RLF-Report-Container CRITICALITY ignore TYPE UE-RLF-Report-Container PRESENCE optional}| - { ID id-RRCConnSetupIndicator CRITICALITY reject TYPE RRCConnSetupIndicator PRESENCE optional}| - { ID id-RRCConnReestabIndicator CRITICALITY ignore TYPE RRCConnReestabIndicator PRESENCE optional}| - { ID id-UE-RLF-Report-Container-for-extended-bands CRITICALITY ignore TYPE UE-RLF-Report-Container-for-extended-bands PRESENCE optional}, - ... -} -*/ - -struct RLFIndication_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 9; } - void clear() {type = 0;} - void select_id_FailureCellPCI() { set(id_FailureCellPCI); type=1;} - void select_id_Re_establishmentCellECGI() { set(id_Re_establishmentCellECGI); type=2;} - void select_id_FailureCellCRNTI() { set(id_FailureCellCRNTI); type=3;} - void select_id_ShortMAC_I() { set(id_ShortMAC_I); type=4;} - void select_id_UE_RLF_Report_Container() { set(id_UE_RLF_Report_Container); type=5;} - void select_id_RRCConnSetupIndicator() { set(id_RRCConnSetupIndicator); type=6;} - void select_id_RRCConnReestabIndicator() { set(id_RRCConnReestabIndicator); type=7;} - void select_id_UE_RLF_Report_Container_for_extended_bands() { set(id_UE_RLF_Report_Container_for_extended_bands); type=8;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_FailureCellPCI)) { type = 1; return true; } - else if(equal(id_Re_establishmentCellECGI)) { type = 2; return true; } - else if(equal(id_FailureCellCRNTI)) { type = 3; return true; } - else if(equal(id_ShortMAC_I)) { type = 4; return true; } - else if(equal(id_UE_RLF_Report_Container)) { type = 5; return true; } - else if(equal(id_RRCConnSetupIndicator)) { type = 6; return true; } - else if(equal(id_RRCConnReestabIndicator)) { type = 7; return true; } - else if(equal(id_UE_RLF_Report_Container_for_extended_bands)) { type = 8; return true; } - else { type = 9; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_FailureCellPCI);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_Re_establishmentCellECGI);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_FailureCellCRNTI);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_ShortMAC_I);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_UE_RLF_Report_Container);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_RRCConnSetupIndicator);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(id_RRCConnReestabIndicator);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(id_UE_RLF_Report_Container_for_extended_bands);} return false; - case 9: type = 9; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 9; } - void clear() {type = 0;} - void select_id_FailureCellPCI() { set(ignore); type=1;} - void select_id_Re_establishmentCellECGI() { set(ignore); type=2;} - void select_id_FailureCellCRNTI() { set(ignore); type=3;} - void select_id_ShortMAC_I() { set(ignore); type=4;} - void select_id_UE_RLF_Report_Container() { set(ignore); type=5;} - void select_id_RRCConnSetupIndicator() { set(reject); type=6;} - void select_id_RRCConnReestabIndicator() { set(ignore); type=7;} - void select_id_UE_RLF_Report_Container_for_extended_bands() { set(ignore); type=8;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else if(equal(reject)) { type = 6; return true; } - else if(equal(ignore)) { type = 7; return true; } - else if(equal(ignore)) { type = 8; return true; } - else { type = 9; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(reject);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(ignore);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(ignore);} return false; - case 9: type = 9; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - PCI& select_id_FailureCellPCI() { return set(1); } - PCI const* get_id_FailureCellPCI() const { return get(1); } - ECGI& select_id_Re_establishmentCellECGI() { return set(2); } - ECGI const* get_id_Re_establishmentCellECGI() const { return get(2); } - CRNTI& select_id_FailureCellCRNTI() { return set(3); } - CRNTI const* get_id_FailureCellCRNTI() const { return get(3); } - ShortMAC_I& select_id_ShortMAC_I() { return set(4); } - ShortMAC_I const* get_id_ShortMAC_I() const { return get(4); } - UE_RLF_Report_Container& select_id_UE_RLF_Report_Container() { return set(5); } - UE_RLF_Report_Container const* get_id_UE_RLF_Report_Container() const { return get(5); } - RRCConnSetupIndicator& select_id_RRCConnSetupIndicator() { return set(6); } - RRCConnSetupIndicator const* get_id_RRCConnSetupIndicator() const { return get(6); } - RRCConnReestabIndicator& select_id_RRCConnReestabIndicator() { return set(7); } - RRCConnReestabIndicator const* get_id_RRCConnReestabIndicator() const { return get(7); } - UE_RLF_Report_Container_for_extended_bands& select_id_UE_RLF_Report_Container_for_extended_bands() { return set(8); } - UE_RLF_Report_Container_for_extended_bands const* get_id_UE_RLF_Report_Container_for_extended_bands() const { return get(8); } - bool is_unknown() const { return type == 9; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - case 7: var.destroy(); break; - case 8: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - v.template operator()(7); - v.template operator()(8); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_FailureCellPCI()); return true; - case 2: v(select_id_Re_establishmentCellECGI()); return true; - case 3: v(select_id_FailureCellCRNTI()); return true; - case 4: v(select_id_ShortMAC_I()); return true; - case 5: v(select_id_UE_RLF_Report_Container()); return true; - case 6: v(select_id_RRCConnSetupIndicator()); return true; - case 7: v(select_id_RRCConnReestabIndicator()); return true; - case 8: v(select_id_UE_RLF_Report_Container_for_extended_bands()); return true; - case 9: if(type != 9) {clear(); asn::base::set();} type = 9; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - case 7: v(var.as()); return true; - case 8: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CRNTI)]; - char dummy2[sizeof(ECGI)]; - char dummy3[sizeof(PCI)]; - char dummy4[sizeof(RRCConnReestabIndicator)]; - char dummy5[sizeof(RRCConnSetupIndicator)]; - char dummy6[sizeof(ShortMAC_I)]; - char dummy7[sizeof(UE_RLF_Report_Container)]; - char dummy8[sizeof(UE_RLF_Report_Container_for_extended_bands)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 9; } - void clear() {type = 0;} - void select_id_FailureCellPCI() { set(mandatory); type=1;} - void select_id_Re_establishmentCellECGI() { set(mandatory); type=2;} - void select_id_FailureCellCRNTI() { set(mandatory); type=3;} - void select_id_ShortMAC_I() { set(optional); type=4;} - void select_id_UE_RLF_Report_Container() { set(optional); type=5;} - void select_id_RRCConnSetupIndicator() { set(optional); type=6;} - void select_id_RRCConnReestabIndicator() { set(optional); type=7;} - void select_id_UE_RLF_Report_Container_for_extended_bands() { set(optional); type=8;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else if(equal(optional)) { type = 7; return true; } - else if(equal(optional)) { type = 8; return true; } - else { type = 9; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(optional);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(optional);} return false; - case 9: type = 9; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RLFIndication ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{RLFIndication-IEs}}, - ... -} -*/ - -struct RLFIndication : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "RLFIndication";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -RNL-Header-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct RNL_Header_Item_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RNL-Header ::= SEQUENCE { - source-GlobalENB-ID GlobalENB-ID, - target-GlobalENB-ID GlobalENB-ID OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {RNL-Header-Item-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct RNL_Header : asn::sequence<3, 0, true, 2> -{ - static constexpr const char* name() {return "RNL-Header";} - using parent_t = asn::sequence<3, 0, true, 2>; - struct source_GlobalENB_ID_t : GlobalENB_ID - { - static constexpr const char* name() {return "source_GlobalENB_ID_t";} - using parent_t = GlobalENB_ID; - - }; - source_GlobalENB_ID_t& ref_source_GlobalENB_ID() {return source_GlobalENB_ID;} - source_GlobalENB_ID_t const& ref_source_GlobalENB_ID() const {return source_GlobalENB_ID;} - struct target_GlobalENB_ID_t : GlobalENB_ID - { - static constexpr const char* name() {return "target_GlobalENB_ID_t";} - using parent_t = GlobalENB_ID; - static constexpr bool optional = true; - - }; - target_GlobalENB_ID_t& set_target_GlobalENB_ID() { target_GlobalENB_ID.setpresent(true); return target_GlobalENB_ID;} - target_GlobalENB_ID_t const* get_target_GlobalENB_ID() const {return target_GlobalENB_ID.is_valid() ? &target_GlobalENB_ID : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(source_GlobalENB_ID); - v(target_GlobalENB_ID); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(source_GlobalENB_ID); - v(target_GlobalENB_ID); - v(iE_Extensions); - - }; - void clear() - { - source_GlobalENB_ID.clear(); - target_GlobalENB_ID.clear(); - iE_Extensions.clear(); - - }; - private: - source_GlobalENB_ID_t source_GlobalENB_ID; - target_GlobalENB_ID_t target_GlobalENB_ID; - iE_Extensions_t iE_Extensions; - -}; -/* -RRCTransfer-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SgNB-UE-X2AP-ID CRITICALITY reject TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}| - { ID id-SplitSRB CRITICALITY reject TYPE SplitSRB PRESENCE optional}| - { ID id-UENRMeasurement CRITICALITY reject TYPE UENRMeasurement PRESENCE optional}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}, - ... -} -*/ - -struct RRCTransfer_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(id_SgNB_UE_X2AP_ID); type=2;} - void select_id_SplitSRB() { set(id_SplitSRB); type=3;} - void select_id_UENRMeasurement() { set(id_UENRMeasurement); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=5;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SgNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_SplitSRB)) { type = 3; return true; } - else if(equal(id_UENRMeasurement)) { type = 4; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SgNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_SplitSRB);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_UENRMeasurement);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(reject); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(reject); type=2;} - void select_id_SplitSRB() { set(reject); type=3;} - void select_id_UENRMeasurement() { set(reject); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(reject); type=5;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(reject)) { type = 3; return true; } - else if(equal(reject)) { type = 4; return true; } - else if(equal(reject)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(reject);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(reject);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(reject);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - SgNB_UE_X2AP_ID& select_id_SgNB_UE_X2AP_ID() { return set(2); } - SgNB_UE_X2AP_ID const* get_id_SgNB_UE_X2AP_ID() const { return get(2); } - SplitSRB& select_id_SplitSRB() { return set(3); } - SplitSRB const* get_id_SplitSRB() const { return get(3); } - UENRMeasurement& select_id_UENRMeasurement() { return set(4); } - UENRMeasurement const* get_id_UENRMeasurement() const { return get(4); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(5); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(5); } - bool is_unknown() const { return type == 6; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SgNB_UE_X2AP_ID()); return true; - case 3: v(select_id_SplitSRB()); return true; - case 4: v(select_id_UENRMeasurement()); return true; - case 5: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 6: if(type != 6) {clear(); asn::base::set();} type = 6; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(SgNB_UE_X2AP_ID)]; - char dummy2[sizeof(SplitSRB)]; - char dummy3[sizeof(UENRMeasurement)]; - char dummy4[sizeof(UE_X2AP_ID)]; - char dummy5[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_SplitSRB() { set(optional); type=3;} - void select_id_UENRMeasurement() { set(optional); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=5;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RRCTransfer ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{RRCTransfer-IEs}}, - ... -} -*/ - -struct RRCTransfer : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "RRCTransfer";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -ReportingPeriodicity ::= ENUMERATED { - one-thousand-ms, - two-thousand-ms, - five-thousand-ms, - ten-thousand-ms, -... -} -*/ - -struct ReportingPeriodicity : asn::enumerated<4, 0, true> -{ - static constexpr const char* name() {return "ReportingPeriodicity";} - using parent_t = asn::enumerated<4, 0, true>; - typedef enum { - one_thousand_ms - ,two_thousand_ms - ,five_thousand_ms - ,ten_thousand_ms - } index_t; - -}; - -/* -ResetRequest-IEs X2AP-PROTOCOL-IES ::= { - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}, - ... -} -*/ - -struct ResetRequest_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_Cause() { set(id_Cause); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_Cause)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_Cause() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - Cause& select_id_Cause() { return set(1); } - Cause const* get_id_Cause() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_Cause()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_Cause() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ResetRequest ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ResetRequest-IEs}}, - ... -} -*/ - -struct ResetRequest : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "ResetRequest";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -ResetResponse-IEs X2AP-PROTOCOL-IES ::= { - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, - ... -} -*/ - -struct ResetResponse_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_CriticalityDiagnostics)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_CriticalityDiagnostics() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(1); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_CriticalityDiagnostics()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CriticalityDiagnostics)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_CriticalityDiagnostics() { set(optional); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ResetResponse ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ResetResponse-IEs}}, - ... -} -*/ - -struct ResetResponse : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "ResetResponse";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -ResourceStatusFailure-IEs X2AP-PROTOCOL-IES ::= { - { ID id-ENB1-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| - { ID id-ENB2-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| - { ID id-CompleteFailureCauseInformation-List CRITICALITY ignore TYPE CompleteFailureCauseInformation-List PRESENCE optional}, - ... -} -*/ - -struct ResourceStatusFailure_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_ENB1_Measurement_ID() { set(id_ENB1_Measurement_ID); type=1;} - void select_id_ENB2_Measurement_ID() { set(id_ENB2_Measurement_ID); type=2;} - void select_id_Cause() { set(id_Cause); type=3;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=4;} - void select_id_CompleteFailureCauseInformation_List() { set(id_CompleteFailureCauseInformation_List); type=5;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_ENB1_Measurement_ID)) { type = 1; return true; } - else if(equal(id_ENB2_Measurement_ID)) { type = 2; return true; } - else if(equal(id_Cause)) { type = 3; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 4; return true; } - else if(equal(id_CompleteFailureCauseInformation_List)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_ENB1_Measurement_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_ENB2_Measurement_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_CompleteFailureCauseInformation_List);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_ENB1_Measurement_ID() { set(reject); type=1;} - void select_id_ENB2_Measurement_ID() { set(reject); type=2;} - void select_id_Cause() { set(ignore); type=3;} - void select_id_CriticalityDiagnostics() { set(ignore); type=4;} - void select_id_CompleteFailureCauseInformation_List() { set(ignore); type=5;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - Measurement_ID& select_id_ENB1_Measurement_ID() { return set(1); } - Measurement_ID const* get_id_ENB1_Measurement_ID() const { return get(1); } - Measurement_ID& select_id_ENB2_Measurement_ID() { return set(2); } - Measurement_ID const* get_id_ENB2_Measurement_ID() const { return get(2); } - Cause& select_id_Cause() { return set(3); } - Cause const* get_id_Cause() const { return get(3); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(4); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(4); } - CompleteFailureCauseInformation_List& select_id_CompleteFailureCauseInformation_List() { return set(5); } - CompleteFailureCauseInformation_List const* get_id_CompleteFailureCauseInformation_List() const { return get(5); } - bool is_unknown() const { return type == 6; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_ENB1_Measurement_ID()); return true; - case 2: v(select_id_ENB2_Measurement_ID()); return true; - case 3: v(select_id_Cause()); return true; - case 4: v(select_id_CriticalityDiagnostics()); return true; - case 5: v(select_id_CompleteFailureCauseInformation_List()); return true; - case 6: if(type != 6) {clear(); asn::base::set();} type = 6; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(CompleteFailureCauseInformation_List)]; - char dummy3[sizeof(CriticalityDiagnostics)]; - char dummy4[sizeof(Measurement_ID)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_ENB1_Measurement_ID() { set(mandatory); type=1;} - void select_id_ENB2_Measurement_ID() { set(mandatory); type=2;} - void select_id_Cause() { set(mandatory); type=3;} - void select_id_CriticalityDiagnostics() { set(optional); type=4;} - void select_id_CompleteFailureCauseInformation_List() { set(optional); type=5;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ResourceStatusFailure ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ResourceStatusFailure-IEs}}, - ... -} -*/ - -struct ResourceStatusFailure : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "ResourceStatusFailure";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -ResourceStatusRequest-IEs X2AP-PROTOCOL-IES ::= { - { ID id-ENB1-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| - { ID id-ENB2-Measurement-ID CRITICALITY ignore TYPE Measurement-ID PRESENCE conditional}|-- The IE shall be present if the Registration Request IE is set to “Stop”, “Partial stop” or to “Add”-- - { ID id-Registration-Request CRITICALITY reject TYPE Registration-Request PRESENCE mandatory}| - { ID id-ReportCharacteristics CRITICALITY reject TYPE ReportCharacteristics PRESENCE optional}| - { ID id-CellToReport CRITICALITY ignore TYPE CellToReport-List PRESENCE mandatory}| - { ID id-ReportingPeriodicity CRITICALITY ignore TYPE ReportingPeriodicity PRESENCE optional}| - { ID id-PartialSuccessIndicator CRITICALITY ignore TYPE PartialSuccessIndicator PRESENCE optional}| - { ID id-ReportingPeriodicityRSRPMR CRITICALITY ignore TYPE ReportingPeriodicityRSRPMR PRESENCE optional}| - { ID id-ReportingPeriodicityCSIR CRITICALITY ignore TYPE ReportingPeriodicityCSIR PRESENCE optional}, - ... -} -*/ - -struct ResourceStatusRequest_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 10; } - void clear() {type = 0;} - void select_id_ENB1_Measurement_ID() { set(id_ENB1_Measurement_ID); type=1;} - void select_id_ENB2_Measurement_ID() { set(id_ENB2_Measurement_ID); type=2;} - void select_id_Registration_Request() { set(id_Registration_Request); type=3;} - void select_id_ReportCharacteristics() { set(id_ReportCharacteristics); type=4;} - void select_id_CellToReport() { set(id_CellToReport); type=5;} - void select_id_ReportingPeriodicity() { set(id_ReportingPeriodicity); type=6;} - void select_id_PartialSuccessIndicator() { set(id_PartialSuccessIndicator); type=7;} - void select_id_ReportingPeriodicityRSRPMR() { set(id_ReportingPeriodicityRSRPMR); type=8;} - void select_id_ReportingPeriodicityCSIR() { set(id_ReportingPeriodicityCSIR); type=9;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_ENB1_Measurement_ID)) { type = 1; return true; } - else if(equal(id_ENB2_Measurement_ID)) { type = 2; return true; } - else if(equal(id_Registration_Request)) { type = 3; return true; } - else if(equal(id_ReportCharacteristics)) { type = 4; return true; } - else if(equal(id_CellToReport)) { type = 5; return true; } - else if(equal(id_ReportingPeriodicity)) { type = 6; return true; } - else if(equal(id_PartialSuccessIndicator)) { type = 7; return true; } - else if(equal(id_ReportingPeriodicityRSRPMR)) { type = 8; return true; } - else if(equal(id_ReportingPeriodicityCSIR)) { type = 9; return true; } - else { type = 10; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_ENB1_Measurement_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_ENB2_Measurement_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_Registration_Request);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_ReportCharacteristics);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_CellToReport);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_ReportingPeriodicity);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(id_PartialSuccessIndicator);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(id_ReportingPeriodicityRSRPMR);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(id_ReportingPeriodicityCSIR);} return false; - case 10: type = 10; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 10; } - void clear() {type = 0;} - void select_id_ENB1_Measurement_ID() { set(reject); type=1;} - void select_id_ENB2_Measurement_ID() { set(ignore); type=2;} - void select_id_Registration_Request() { set(reject); type=3;} - void select_id_ReportCharacteristics() { set(reject); type=4;} - void select_id_CellToReport() { set(ignore); type=5;} - void select_id_ReportingPeriodicity() { set(ignore); type=6;} - void select_id_PartialSuccessIndicator() { set(ignore); type=7;} - void select_id_ReportingPeriodicityRSRPMR() { set(ignore); type=8;} - void select_id_ReportingPeriodicityCSIR() { set(ignore); type=9;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(reject)) { type = 3; return true; } - else if(equal(reject)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else if(equal(ignore)) { type = 6; return true; } - else if(equal(ignore)) { type = 7; return true; } - else if(equal(ignore)) { type = 8; return true; } - else if(equal(ignore)) { type = 9; return true; } - else { type = 10; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(reject);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(reject);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(ignore);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(ignore);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(ignore);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(ignore);} return false; - case 10: type = 10; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - Measurement_ID& select_id_ENB1_Measurement_ID() { return set(1); } - Measurement_ID const* get_id_ENB1_Measurement_ID() const { return get(1); } - Measurement_ID& select_id_ENB2_Measurement_ID() { return set(2); } - Measurement_ID const* get_id_ENB2_Measurement_ID() const { return get(2); } - Registration_Request& select_id_Registration_Request() { return set(3); } - Registration_Request const* get_id_Registration_Request() const { return get(3); } - ReportCharacteristics& select_id_ReportCharacteristics() { return set(4); } - ReportCharacteristics const* get_id_ReportCharacteristics() const { return get(4); } - CellToReport_List& select_id_CellToReport() { return set(5); } - CellToReport_List const* get_id_CellToReport() const { return get(5); } - ReportingPeriodicity& select_id_ReportingPeriodicity() { return set(6); } - ReportingPeriodicity const* get_id_ReportingPeriodicity() const { return get(6); } - PartialSuccessIndicator& select_id_PartialSuccessIndicator() { return set(7); } - PartialSuccessIndicator const* get_id_PartialSuccessIndicator() const { return get(7); } - ReportingPeriodicityRSRPMR& select_id_ReportingPeriodicityRSRPMR() { return set(8); } - ReportingPeriodicityRSRPMR const* get_id_ReportingPeriodicityRSRPMR() const { return get(8); } - ReportingPeriodicityCSIR& select_id_ReportingPeriodicityCSIR() { return set(9); } - ReportingPeriodicityCSIR const* get_id_ReportingPeriodicityCSIR() const { return get(9); } - bool is_unknown() const { return type == 10; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - case 7: var.destroy(); break; - case 8: var.destroy(); break; - case 9: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - v.template operator()(7); - v.template operator()(8); - v.template operator()(9); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_ENB1_Measurement_ID()); return true; - case 2: v(select_id_ENB2_Measurement_ID()); return true; - case 3: v(select_id_Registration_Request()); return true; - case 4: v(select_id_ReportCharacteristics()); return true; - case 5: v(select_id_CellToReport()); return true; - case 6: v(select_id_ReportingPeriodicity()); return true; - case 7: v(select_id_PartialSuccessIndicator()); return true; - case 8: v(select_id_ReportingPeriodicityRSRPMR()); return true; - case 9: v(select_id_ReportingPeriodicityCSIR()); return true; - case 10: if(type != 10) {clear(); asn::base::set();} type = 10; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - case 7: v(var.as()); return true; - case 8: v(var.as()); return true; - case 9: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CellToReport_List)]; - char dummy2[sizeof(Measurement_ID)]; - char dummy3[sizeof(PartialSuccessIndicator)]; - char dummy4[sizeof(Registration_Request)]; - char dummy5[sizeof(ReportCharacteristics)]; - char dummy6[sizeof(ReportingPeriodicity)]; - char dummy7[sizeof(ReportingPeriodicityCSIR)]; - char dummy8[sizeof(ReportingPeriodicityRSRPMR)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 10; } - void clear() {type = 0;} - void select_id_ENB1_Measurement_ID() { set(mandatory); type=1;} - void select_id_ENB2_Measurement_ID() { set(conditional); type=2;} - void select_id_Registration_Request() { set(mandatory); type=3;} - void select_id_ReportCharacteristics() { set(optional); type=4;} - void select_id_CellToReport() { set(mandatory); type=5;} - void select_id_ReportingPeriodicity() { set(optional); type=6;} - void select_id_PartialSuccessIndicator() { set(optional); type=7;} - void select_id_ReportingPeriodicityRSRPMR() { set(optional); type=8;} - void select_id_ReportingPeriodicityCSIR() { set(optional); type=9;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(conditional)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(mandatory)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else if(equal(optional)) { type = 7; return true; } - else if(equal(optional)) { type = 8; return true; } - else if(equal(optional)) { type = 9; return true; } - else { type = 10; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(conditional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(mandatory);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(optional);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(optional);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(optional);} return false; - case 10: type = 10; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ResourceStatusRequest ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ResourceStatusRequest-IEs}}, - ... -} -*/ - -struct ResourceStatusRequest : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "ResourceStatusRequest";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -ResourceStatusResponse-IEs X2AP-PROTOCOL-IES ::= { - { ID id-ENB1-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| - { ID id-ENB2-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| - { ID id-MeasurementInitiationResult-List CRITICALITY ignore TYPE MeasurementInitiationResult-List PRESENCE optional}, - ... -} -*/ - -struct ResourceStatusResponse_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_ENB1_Measurement_ID() { set(id_ENB1_Measurement_ID); type=1;} - void select_id_ENB2_Measurement_ID() { set(id_ENB2_Measurement_ID); type=2;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=3;} - void select_id_MeasurementInitiationResult_List() { set(id_MeasurementInitiationResult_List); type=4;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_ENB1_Measurement_ID)) { type = 1; return true; } - else if(equal(id_ENB2_Measurement_ID)) { type = 2; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 3; return true; } - else if(equal(id_MeasurementInitiationResult_List)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_ENB1_Measurement_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_ENB2_Measurement_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_MeasurementInitiationResult_List);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_ENB1_Measurement_ID() { set(reject); type=1;} - void select_id_ENB2_Measurement_ID() { set(reject); type=2;} - void select_id_CriticalityDiagnostics() { set(ignore); type=3;} - void select_id_MeasurementInitiationResult_List() { set(ignore); type=4;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - Measurement_ID& select_id_ENB1_Measurement_ID() { return set(1); } - Measurement_ID const* get_id_ENB1_Measurement_ID() const { return get(1); } - Measurement_ID& select_id_ENB2_Measurement_ID() { return set(2); } - Measurement_ID const* get_id_ENB2_Measurement_ID() const { return get(2); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(3); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(3); } - MeasurementInitiationResult_List& select_id_MeasurementInitiationResult_List() { return set(4); } - MeasurementInitiationResult_List const* get_id_MeasurementInitiationResult_List() const { return get(4); } - bool is_unknown() const { return type == 5; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_ENB1_Measurement_ID()); return true; - case 2: v(select_id_ENB2_Measurement_ID()); return true; - case 3: v(select_id_CriticalityDiagnostics()); return true; - case 4: v(select_id_MeasurementInitiationResult_List()); return true; - case 5: if(type != 5) {clear(); asn::base::set();} type = 5; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CriticalityDiagnostics)]; - char dummy2[sizeof(MeasurementInitiationResult_List)]; - char dummy3[sizeof(Measurement_ID)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_ENB1_Measurement_ID() { set(mandatory); type=1;} - void select_id_ENB2_Measurement_ID() { set(mandatory); type=2;} - void select_id_CriticalityDiagnostics() { set(optional); type=3;} - void select_id_MeasurementInitiationResult_List() { set(optional); type=4;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ResourceStatusResponse ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ResourceStatusResponse-IEs}}, - ... -} -*/ - -struct ResourceStatusResponse : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "ResourceStatusResponse";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -ResourceStatusUpdate-IEs X2AP-PROTOCOL-IES ::= { - { ID id-ENB1-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| - { ID id-ENB2-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| - { ID id-CellMeasurementResult CRITICALITY ignore TYPE CellMeasurementResult-List PRESENCE mandatory}, - ... -} -*/ - -struct ResourceStatusUpdate_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_ENB1_Measurement_ID() { set(id_ENB1_Measurement_ID); type=1;} - void select_id_ENB2_Measurement_ID() { set(id_ENB2_Measurement_ID); type=2;} - void select_id_CellMeasurementResult() { set(id_CellMeasurementResult); type=3;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_ENB1_Measurement_ID)) { type = 1; return true; } - else if(equal(id_ENB2_Measurement_ID)) { type = 2; return true; } - else if(equal(id_CellMeasurementResult)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_ENB1_Measurement_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_ENB2_Measurement_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_CellMeasurementResult);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_ENB1_Measurement_ID() { set(reject); type=1;} - void select_id_ENB2_Measurement_ID() { set(reject); type=2;} - void select_id_CellMeasurementResult() { set(ignore); type=3;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - Measurement_ID& select_id_ENB1_Measurement_ID() { return set(1); } - Measurement_ID const* get_id_ENB1_Measurement_ID() const { return get(1); } - Measurement_ID& select_id_ENB2_Measurement_ID() { return set(2); } - Measurement_ID const* get_id_ENB2_Measurement_ID() const { return get(2); } - CellMeasurementResult_List& select_id_CellMeasurementResult() { return set(3); } - CellMeasurementResult_List const* get_id_CellMeasurementResult() const { return get(3); } - bool is_unknown() const { return type == 4; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_ENB1_Measurement_ID()); return true; - case 2: v(select_id_ENB2_Measurement_ID()); return true; - case 3: v(select_id_CellMeasurementResult()); return true; - case 4: if(type != 4) {clear(); asn::base::set();} type = 4; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CellMeasurementResult_List)]; - char dummy2[sizeof(Measurement_ID)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_ENB1_Measurement_ID() { set(mandatory); type=1;} - void select_id_ENB2_Measurement_ID() { set(mandatory); type=2;} - void select_id_CellMeasurementResult() { set(mandatory); type=3;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ResourceStatusUpdate ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ResourceStatusUpdate-IEs}}, - ... -} -*/ - -struct ResourceStatusUpdate : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "ResourceStatusUpdate";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -ResponseInformationSeNBReconfComp-SuccessItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct ResponseInformationSeNBReconfComp_SuccessItemExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ResponseInformationSeNBReconfComp-SuccessItem ::= SEQUENCE { - meNBtoSeNBContainer MeNBtoSeNBContainer OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {ResponseInformationSeNBReconfComp-SuccessItemExtIEs} } OPTIONAL, - ... -} -*/ - -struct ResponseInformationSeNBReconfComp_SuccessItem : asn::sequence<2, 0, true, 2> -{ - static constexpr const char* name() {return "ResponseInformationSeNBReconfComp-SuccessItem";} - using parent_t = asn::sequence<2, 0, true, 2>; - struct meNBtoSeNBContainer_t : MeNBtoSeNBContainer - { - static constexpr const char* name() {return "meNBtoSeNBContainer_t";} - using parent_t = MeNBtoSeNBContainer; - static constexpr bool optional = true; - - }; - meNBtoSeNBContainer_t& set_meNBtoSeNBContainer() { meNBtoSeNBContainer.setpresent(true); return meNBtoSeNBContainer;} - meNBtoSeNBContainer_t const* get_meNBtoSeNBContainer() const {return meNBtoSeNBContainer.is_valid() ? &meNBtoSeNBContainer : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(meNBtoSeNBContainer); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(meNBtoSeNBContainer); - v(iE_Extensions); - - }; - void clear() - { - meNBtoSeNBContainer.clear(); - iE_Extensions.clear(); - - }; - private: - meNBtoSeNBContainer_t meNBtoSeNBContainer; - iE_Extensions_t iE_Extensions; - -}; -/* -ResponseInformationSeNBReconfComp-RejectByMeNBItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct ResponseInformationSeNBReconfComp_RejectByMeNBItemExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ResponseInformationSeNBReconfComp-RejectByMeNBItem ::= SEQUENCE { - cause Cause, - meNBtoSeNBContainer MeNBtoSeNBContainer OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {ResponseInformationSeNBReconfComp-RejectByMeNBItemExtIEs} } OPTIONAL, - ... -} -*/ - -struct ResponseInformationSeNBReconfComp_RejectByMeNBItem : asn::sequence<3, 0, true, 2> -{ - static constexpr const char* name() {return "ResponseInformationSeNBReconfComp-RejectByMeNBItem";} - using parent_t = asn::sequence<3, 0, true, 2>; - struct cause_t : Cause - { - static constexpr const char* name() {return "cause_t";} - using parent_t = Cause; - - }; - cause_t& ref_cause() {return cause;} - cause_t const& ref_cause() const {return cause;} - struct meNBtoSeNBContainer_t : MeNBtoSeNBContainer - { - static constexpr const char* name() {return "meNBtoSeNBContainer_t";} - using parent_t = MeNBtoSeNBContainer; - static constexpr bool optional = true; - - }; - meNBtoSeNBContainer_t& set_meNBtoSeNBContainer() { meNBtoSeNBContainer.setpresent(true); return meNBtoSeNBContainer;} - meNBtoSeNBContainer_t const* get_meNBtoSeNBContainer() const {return meNBtoSeNBContainer.is_valid() ? &meNBtoSeNBContainer : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(cause); - v(meNBtoSeNBContainer); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(cause); - v(meNBtoSeNBContainer); - v(iE_Extensions); - - }; - void clear() - { - cause.clear(); - meNBtoSeNBContainer.clear(); - iE_Extensions.clear(); - - }; - private: - cause_t cause; - meNBtoSeNBContainer_t meNBtoSeNBContainer; - iE_Extensions_t iE_Extensions; - -}; -/* -ResponseInformationSeNBReconfComp ::= CHOICE { - success ResponseInformationSeNBReconfComp-SuccessItem, - reject-by-MeNB ResponseInformationSeNBReconfComp-RejectByMeNBItem, - ... -} -*/ - -struct ResponseInformationSeNBReconfComp : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "ResponseInformationSeNBReconfComp";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~ResponseInformationSeNBReconfComp() {clear();} - struct success_t : ResponseInformationSeNBReconfComp_SuccessItem - { - static constexpr const char* name() {return "success_t";} - using parent_t = ResponseInformationSeNBReconfComp_SuccessItem; - - }; - struct reject_by_MeNB_t : ResponseInformationSeNBReconfComp_RejectByMeNBItem - { - static constexpr const char* name() {return "reject_by_MeNB_t";} - using parent_t = ResponseInformationSeNBReconfComp_RejectByMeNBItem; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - success_t& select_success() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - success_t const* get_success() const { if(get_index() == 1) { return &var.as();} return nullptr; } - reject_by_MeNB_t& select_reject_by_MeNB() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - reject_by_MeNB_t const* get_reject_by_MeNB() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(success_t)]; - char dummy2[sizeof(reject_by_MeNB_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -ResponseInformationSgNBReconfComp-SuccessItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct ResponseInformationSgNBReconfComp_SuccessItemExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ResponseInformationSgNBReconfComp-SuccessItem ::= SEQUENCE { - meNBtoSgNBContainer MeNBtoSgNBContainer OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {ResponseInformationSgNBReconfComp-SuccessItemExtIEs} } OPTIONAL, - ... -} -*/ - -struct ResponseInformationSgNBReconfComp_SuccessItem : asn::sequence<2, 0, true, 2> -{ - static constexpr const char* name() {return "ResponseInformationSgNBReconfComp-SuccessItem";} - using parent_t = asn::sequence<2, 0, true, 2>; - struct meNBtoSgNBContainer_t : MeNBtoSgNBContainer - { - static constexpr const char* name() {return "meNBtoSgNBContainer_t";} - using parent_t = MeNBtoSgNBContainer; - static constexpr bool optional = true; - - }; - meNBtoSgNBContainer_t& set_meNBtoSgNBContainer() { meNBtoSgNBContainer.setpresent(true); return meNBtoSgNBContainer;} - meNBtoSgNBContainer_t const* get_meNBtoSgNBContainer() const {return meNBtoSgNBContainer.is_valid() ? &meNBtoSgNBContainer : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(meNBtoSgNBContainer); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(meNBtoSgNBContainer); - v(iE_Extensions); - - }; - void clear() - { - meNBtoSgNBContainer.clear(); - iE_Extensions.clear(); - - }; - private: - meNBtoSgNBContainer_t meNBtoSgNBContainer; - iE_Extensions_t iE_Extensions; - -}; -/* -ResponseInformationSgNBReconfComp-RejectByMeNBItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct ResponseInformationSgNBReconfComp_RejectByMeNBItemExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ResponseInformationSgNBReconfComp-RejectByMeNBItem ::= SEQUENCE { - cause Cause, - iE-Extensions ProtocolExtensionContainer { {ResponseInformationSgNBReconfComp-RejectByMeNBItemExtIEs} } OPTIONAL, - ... -} -*/ - -struct ResponseInformationSgNBReconfComp_RejectByMeNBItem : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "ResponseInformationSgNBReconfComp-RejectByMeNBItem";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct cause_t : Cause - { - static constexpr const char* name() {return "cause_t";} - using parent_t = Cause; - - }; - cause_t& ref_cause() {return cause;} - cause_t const& ref_cause() const {return cause;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(cause); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(cause); - v(iE_Extensions); - - }; - void clear() - { - cause.clear(); - iE_Extensions.clear(); - - }; - private: - cause_t cause; - iE_Extensions_t iE_Extensions; - -}; -/* -ResponseInformationSgNBReconfComp ::= CHOICE { - success-SgNBReconfComp ResponseInformationSgNBReconfComp-SuccessItem, - reject-by-MeNB-SgNBReconfComp ResponseInformationSgNBReconfComp-RejectByMeNBItem, - ... -} -*/ - -struct ResponseInformationSgNBReconfComp : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "ResponseInformationSgNBReconfComp";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~ResponseInformationSgNBReconfComp() {clear();} - struct success_SgNBReconfComp_t : ResponseInformationSgNBReconfComp_SuccessItem - { - static constexpr const char* name() {return "success_SgNBReconfComp_t";} - using parent_t = ResponseInformationSgNBReconfComp_SuccessItem; - - }; - struct reject_by_MeNB_SgNBReconfComp_t : ResponseInformationSgNBReconfComp_RejectByMeNBItem - { - static constexpr const char* name() {return "reject_by_MeNB_SgNBReconfComp_t";} - using parent_t = ResponseInformationSgNBReconfComp_RejectByMeNBItem; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - success_SgNBReconfComp_t& select_success_SgNBReconfComp() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - success_SgNBReconfComp_t const* get_success_SgNBReconfComp() const { if(get_index() == 1) { return &var.as();} return nullptr; } - reject_by_MeNB_SgNBReconfComp_t& select_reject_by_MeNB_SgNBReconfComp() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - reject_by_MeNB_SgNBReconfComp_t const* get_reject_by_MeNB_SgNBReconfComp() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(success_SgNBReconfComp_t)]; - char dummy2[sizeof(reject_by_MeNB_SgNBReconfComp_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -RetrieveUEContextFailure-IEs X2AP-PROTOCOL-IES ::= { - { ID id-New-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-New-eNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, - ... -} -*/ - -struct RetrieveUEContextFailure_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_New_eNB_UE_X2AP_ID() { set(id_New_eNB_UE_X2AP_ID); type=1;} - void select_id_New_eNB_UE_X2AP_ID_Extension() { set(id_New_eNB_UE_X2AP_ID_Extension); type=2;} - void select_id_Cause() { set(id_Cause); type=3;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=4;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_New_eNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_New_eNB_UE_X2AP_ID_Extension)) { type = 2; return true; } - else if(equal(id_Cause)) { type = 3; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_New_eNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_New_eNB_UE_X2AP_ID_Extension);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_New_eNB_UE_X2AP_ID() { set(ignore); type=1;} - void select_id_New_eNB_UE_X2AP_ID_Extension() { set(ignore); type=2;} - void select_id_Cause() { set(ignore); type=3;} - void select_id_CriticalityDiagnostics() { set(ignore); type=4;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_New_eNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_New_eNB_UE_X2AP_ID() const { return get(1); } - UE_X2AP_ID_Extension& select_id_New_eNB_UE_X2AP_ID_Extension() { return set(2); } - UE_X2AP_ID_Extension const* get_id_New_eNB_UE_X2AP_ID_Extension() const { return get(2); } - Cause& select_id_Cause() { return set(3); } - Cause const* get_id_Cause() const { return get(3); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(4); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(4); } - bool is_unknown() const { return type == 5; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_New_eNB_UE_X2AP_ID()); return true; - case 2: v(select_id_New_eNB_UE_X2AP_ID_Extension()); return true; - case 3: v(select_id_Cause()); return true; - case 4: v(select_id_CriticalityDiagnostics()); return true; - case 5: if(type != 5) {clear(); asn::base::set();} type = 5; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(CriticalityDiagnostics)]; - char dummy3[sizeof(UE_X2AP_ID)]; - char dummy4[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_New_eNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_New_eNB_UE_X2AP_ID_Extension() { set(optional); type=2;} - void select_id_Cause() { set(mandatory); type=3;} - void select_id_CriticalityDiagnostics() { set(optional); type=4;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RetrieveUEContextFailure ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ RetrieveUEContextFailure-IEs}}, - ... -} -*/ - -struct RetrieveUEContextFailure : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "RetrieveUEContextFailure";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -RetrieveUEContextRequest-IEs X2AP-PROTOCOL-IES ::= { - { ID id-New-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-resumeID CRITICALITY reject TYPE ResumeID PRESENCE mandatory}| - { ID id-ShortMAC-I CRITICALITY reject TYPE ShortMAC-I PRESENCE mandatory}| - { ID id-NewEUTRANCellIdentifier CRITICALITY reject TYPE EUTRANCellIdentifier PRESENCE mandatory}| - {ID id-FailureCellCRNTI CRITICALITY reject TYPE CRNTI PRESENCE optional}| - {ID id-FailureCellPCI CRITICALITY reject TYPE PCI PRESENCE optional}, - ... -} -*/ - -struct RetrieveUEContextRequest_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 8; } - void clear() {type = 0;} - void select_id_New_eNB_UE_X2AP_ID() { set(id_New_eNB_UE_X2AP_ID); type=1;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(id_SeNB_UE_X2AP_ID_Extension); type=2;} - void select_id_resumeID() { set(id_resumeID); type=3;} - void select_id_ShortMAC_I() { set(id_ShortMAC_I); type=4;} - void select_id_NewEUTRANCellIdentifier() { set(id_NewEUTRANCellIdentifier); type=5;} - void select_id_FailureCellCRNTI() { set(id_FailureCellCRNTI); type=6;} - void select_id_FailureCellPCI() { set(id_FailureCellPCI); type=7;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_New_eNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SeNB_UE_X2AP_ID_Extension)) { type = 2; return true; } - else if(equal(id_resumeID)) { type = 3; return true; } - else if(equal(id_ShortMAC_I)) { type = 4; return true; } - else if(equal(id_NewEUTRANCellIdentifier)) { type = 5; return true; } - else if(equal(id_FailureCellCRNTI)) { type = 6; return true; } - else if(equal(id_FailureCellPCI)) { type = 7; return true; } - else { type = 8; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_New_eNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SeNB_UE_X2AP_ID_Extension);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_resumeID);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_ShortMAC_I);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_NewEUTRANCellIdentifier);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_FailureCellCRNTI);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(id_FailureCellPCI);} return false; - case 8: type = 8; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 8; } - void clear() {type = 0;} - void select_id_New_eNB_UE_X2AP_ID() { set(reject); type=1;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(reject); type=2;} - void select_id_resumeID() { set(reject); type=3;} - void select_id_ShortMAC_I() { set(reject); type=4;} - void select_id_NewEUTRANCellIdentifier() { set(reject); type=5;} - void select_id_FailureCellCRNTI() { set(reject); type=6;} - void select_id_FailureCellPCI() { set(reject); type=7;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(reject)) { type = 3; return true; } - else if(equal(reject)) { type = 4; return true; } - else if(equal(reject)) { type = 5; return true; } - else if(equal(reject)) { type = 6; return true; } - else if(equal(reject)) { type = 7; return true; } - else { type = 8; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(reject);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(reject);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(reject);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(reject);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(reject);} return false; - case 8: type = 8; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_New_eNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_New_eNB_UE_X2AP_ID() const { return get(1); } - UE_X2AP_ID_Extension& select_id_SeNB_UE_X2AP_ID_Extension() { return set(2); } - UE_X2AP_ID_Extension const* get_id_SeNB_UE_X2AP_ID_Extension() const { return get(2); } - ResumeID& select_id_resumeID() { return set(3); } - ResumeID const* get_id_resumeID() const { return get(3); } - ShortMAC_I& select_id_ShortMAC_I() { return set(4); } - ShortMAC_I const* get_id_ShortMAC_I() const { return get(4); } - EUTRANCellIdentifier& select_id_NewEUTRANCellIdentifier() { return set(5); } - EUTRANCellIdentifier const* get_id_NewEUTRANCellIdentifier() const { return get(5); } - CRNTI& select_id_FailureCellCRNTI() { return set(6); } - CRNTI const* get_id_FailureCellCRNTI() const { return get(6); } - PCI& select_id_FailureCellPCI() { return set(7); } - PCI const* get_id_FailureCellPCI() const { return get(7); } - bool is_unknown() const { return type == 8; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - case 7: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - v.template operator()(7); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_New_eNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SeNB_UE_X2AP_ID_Extension()); return true; - case 3: v(select_id_resumeID()); return true; - case 4: v(select_id_ShortMAC_I()); return true; - case 5: v(select_id_NewEUTRANCellIdentifier()); return true; - case 6: v(select_id_FailureCellCRNTI()); return true; - case 7: v(select_id_FailureCellPCI()); return true; - case 8: if(type != 8) {clear(); asn::base::set();} type = 8; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - case 7: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CRNTI)]; - char dummy2[sizeof(EUTRANCellIdentifier)]; - char dummy3[sizeof(PCI)]; - char dummy4[sizeof(ResumeID)]; - char dummy5[sizeof(ShortMAC_I)]; - char dummy6[sizeof(UE_X2AP_ID)]; - char dummy7[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 8; } - void clear() {type = 0;} - void select_id_New_eNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(optional); type=2;} - void select_id_resumeID() { set(mandatory); type=3;} - void select_id_ShortMAC_I() { set(mandatory); type=4;} - void select_id_NewEUTRANCellIdentifier() { set(mandatory); type=5;} - void select_id_FailureCellCRNTI() { set(optional); type=6;} - void select_id_FailureCellPCI() { set(optional); type=7;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(mandatory)) { type = 4; return true; } - else if(equal(mandatory)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else if(equal(optional)) { type = 7; return true; } - else { type = 8; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(mandatory);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(mandatory);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(optional);} return false; - case 8: type = 8; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RetrieveUEContextRequest ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ RetrieveUEContextRequest-IEs}}, - ... -} -*/ - -struct RetrieveUEContextRequest : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "RetrieveUEContextRequest";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -UE-ContextInformationRetrieve-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { -{ ID id-UESidelinkAggregateMaximumBitRate CRITICALITY ignore EXTENSION UESidelinkAggregateMaximumBitRate PRESENCE optional}, - ... -} -*/ - -struct UE_ContextInformationRetrieve_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_UESidelinkAggregateMaximumBitRate() { set(id_UESidelinkAggregateMaximumBitRate); type=1;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_UESidelinkAggregateMaximumBitRate)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_UESidelinkAggregateMaximumBitRate);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_UESidelinkAggregateMaximumBitRate() { set(ignore); type=1;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - UESidelinkAggregateMaximumBitRate& select_id_UESidelinkAggregateMaximumBitRate() { return set(1); } - UESidelinkAggregateMaximumBitRate const* get_id_UESidelinkAggregateMaximumBitRate() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_UESidelinkAggregateMaximumBitRate()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(UESidelinkAggregateMaximumBitRate)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_UESidelinkAggregateMaximumBitRate() { set(optional); type=1;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -UE-ContextInformationRetrieve ::= SEQUENCE { - mME-UE-S1AP-ID UE-S1AP-ID, - uESecurityCapabilities UESecurityCapabilities, - aS-SecurityInformation AS-SecurityInformation, - uEaggregateMaximumBitRate UEAggregateMaximumBitRate, - subscriberProfileIDforRFP SubscriberProfileIDforRFP OPTIONAL, - e-RABs-ToBeSetup-ListRetrieve E-RABs-ToBeSetup-ListRetrieve, - rRC-Context RRC-Context, - handoverRestrictionList HandoverRestrictionList OPTIONAL, - locationReportingInformation LocationReportingInformation OPTIONAL, - managBasedMDTallowed ManagementBasedMDTallowed OPTIONAL, - managBasedMDTPLMNList MDTPLMNList OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {UE-ContextInformationRetrieve-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct UE_ContextInformationRetrieve : asn::sequence<12, 0, true, 6> -{ - static constexpr const char* name() {return "UE-ContextInformationRetrieve";} - using parent_t = asn::sequence<12, 0, true, 6>; - struct mME_UE_S1AP_ID_t : UE_S1AP_ID - { - static constexpr const char* name() {return "mME_UE_S1AP_ID_t";} - using parent_t = UE_S1AP_ID; - - }; - mME_UE_S1AP_ID_t& ref_mME_UE_S1AP_ID() {return mME_UE_S1AP_ID;} - mME_UE_S1AP_ID_t const& ref_mME_UE_S1AP_ID() const {return mME_UE_S1AP_ID;} - struct uESecurityCapabilities_t : UESecurityCapabilities - { - static constexpr const char* name() {return "uESecurityCapabilities_t";} - using parent_t = UESecurityCapabilities; - - }; - uESecurityCapabilities_t& ref_uESecurityCapabilities() {return uESecurityCapabilities;} - uESecurityCapabilities_t const& ref_uESecurityCapabilities() const {return uESecurityCapabilities;} - struct aS_SecurityInformation_t : AS_SecurityInformation - { - static constexpr const char* name() {return "aS_SecurityInformation_t";} - using parent_t = AS_SecurityInformation; - - }; - aS_SecurityInformation_t& ref_aS_SecurityInformation() {return aS_SecurityInformation;} - aS_SecurityInformation_t const& ref_aS_SecurityInformation() const {return aS_SecurityInformation;} - struct uEaggregateMaximumBitRate_t : UEAggregateMaximumBitRate - { - static constexpr const char* name() {return "uEaggregateMaximumBitRate_t";} - using parent_t = UEAggregateMaximumBitRate; - - }; - uEaggregateMaximumBitRate_t& ref_uEaggregateMaximumBitRate() {return uEaggregateMaximumBitRate;} - uEaggregateMaximumBitRate_t const& ref_uEaggregateMaximumBitRate() const {return uEaggregateMaximumBitRate;} - struct subscriberProfileIDforRFP_t : SubscriberProfileIDforRFP - { - static constexpr const char* name() {return "subscriberProfileIDforRFP_t";} - using parent_t = SubscriberProfileIDforRFP; - static constexpr bool optional = true; - - }; - subscriberProfileIDforRFP_t& set_subscriberProfileIDforRFP() { subscriberProfileIDforRFP.setpresent(true); return subscriberProfileIDforRFP;} - subscriberProfileIDforRFP_t const* get_subscriberProfileIDforRFP() const {return subscriberProfileIDforRFP.is_valid() ? &subscriberProfileIDforRFP : nullptr;} - struct e_RABs_ToBeSetup_ListRetrieve_t : E_RABs_ToBeSetup_ListRetrieve - { - static constexpr const char* name() {return "e_RABs_ToBeSetup_ListRetrieve_t";} - using parent_t = E_RABs_ToBeSetup_ListRetrieve; - - }; - e_RABs_ToBeSetup_ListRetrieve_t& ref_e_RABs_ToBeSetup_ListRetrieve() {return e_RABs_ToBeSetup_ListRetrieve;} - e_RABs_ToBeSetup_ListRetrieve_t const& ref_e_RABs_ToBeSetup_ListRetrieve() const {return e_RABs_ToBeSetup_ListRetrieve;} - struct rRC_Context_t : RRC_Context - { - static constexpr const char* name() {return "rRC_Context_t";} - using parent_t = RRC_Context; - - }; - rRC_Context_t& ref_rRC_Context() {return rRC_Context;} - rRC_Context_t const& ref_rRC_Context() const {return rRC_Context;} - struct handoverRestrictionList_t : HandoverRestrictionList - { - static constexpr const char* name() {return "handoverRestrictionList_t";} - using parent_t = HandoverRestrictionList; - static constexpr bool optional = true; - - }; - handoverRestrictionList_t& set_handoverRestrictionList() { handoverRestrictionList.setpresent(true); return handoverRestrictionList;} - handoverRestrictionList_t const* get_handoverRestrictionList() const {return handoverRestrictionList.is_valid() ? &handoverRestrictionList : nullptr;} - struct locationReportingInformation_t : LocationReportingInformation - { - static constexpr const char* name() {return "locationReportingInformation_t";} - using parent_t = LocationReportingInformation; - static constexpr bool optional = true; - - }; - locationReportingInformation_t& set_locationReportingInformation() { locationReportingInformation.setpresent(true); return locationReportingInformation;} - locationReportingInformation_t const* get_locationReportingInformation() const {return locationReportingInformation.is_valid() ? &locationReportingInformation : nullptr;} - struct managBasedMDTallowed_t : ManagementBasedMDTallowed - { - static constexpr const char* name() {return "managBasedMDTallowed_t";} - using parent_t = ManagementBasedMDTallowed; - static constexpr bool optional = true; - - }; - managBasedMDTallowed_t& set_managBasedMDTallowed() { managBasedMDTallowed.setpresent(true); return managBasedMDTallowed;} - managBasedMDTallowed_t const* get_managBasedMDTallowed() const {return managBasedMDTallowed.is_valid() ? &managBasedMDTallowed : nullptr;} - struct managBasedMDTPLMNList_t : MDTPLMNList - { - static constexpr const char* name() {return "managBasedMDTPLMNList_t";} - using parent_t = MDTPLMNList; - static constexpr bool optional = true; - - }; - managBasedMDTPLMNList_t& set_managBasedMDTPLMNList() { managBasedMDTPLMNList.setpresent(true); return managBasedMDTPLMNList;} - managBasedMDTPLMNList_t const* get_managBasedMDTPLMNList() const {return managBasedMDTPLMNList.is_valid() ? &managBasedMDTPLMNList : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(mME_UE_S1AP_ID); - v(uESecurityCapabilities); - v(aS_SecurityInformation); - v(uEaggregateMaximumBitRate); - v(subscriberProfileIDforRFP); - v(e_RABs_ToBeSetup_ListRetrieve); - v(rRC_Context); - v(handoverRestrictionList); - v(locationReportingInformation); - v(managBasedMDTallowed); - v(managBasedMDTPLMNList); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(mME_UE_S1AP_ID); - v(uESecurityCapabilities); - v(aS_SecurityInformation); - v(uEaggregateMaximumBitRate); - v(subscriberProfileIDforRFP); - v(e_RABs_ToBeSetup_ListRetrieve); - v(rRC_Context); - v(handoverRestrictionList); - v(locationReportingInformation); - v(managBasedMDTallowed); - v(managBasedMDTPLMNList); - v(iE_Extensions); - - }; - void clear() - { - mME_UE_S1AP_ID.clear(); - uESecurityCapabilities.clear(); - aS_SecurityInformation.clear(); - uEaggregateMaximumBitRate.clear(); - subscriberProfileIDforRFP.clear(); - e_RABs_ToBeSetup_ListRetrieve.clear(); - rRC_Context.clear(); - handoverRestrictionList.clear(); - locationReportingInformation.clear(); - managBasedMDTallowed.clear(); - managBasedMDTPLMNList.clear(); - iE_Extensions.clear(); - - }; - private: - mME_UE_S1AP_ID_t mME_UE_S1AP_ID; - uESecurityCapabilities_t uESecurityCapabilities; - aS_SecurityInformation_t aS_SecurityInformation; - uEaggregateMaximumBitRate_t uEaggregateMaximumBitRate; - subscriberProfileIDforRFP_t subscriberProfileIDforRFP; - e_RABs_ToBeSetup_ListRetrieve_t e_RABs_ToBeSetup_ListRetrieve; - rRC_Context_t rRC_Context; - handoverRestrictionList_t handoverRestrictionList; - locationReportingInformation_t locationReportingInformation; - managBasedMDTallowed_t managBasedMDTallowed; - managBasedMDTPLMNList_t managBasedMDTPLMNList; - iE_Extensions_t iE_Extensions; - -}; -/* -RetrieveUEContextResponse-IEs X2AP-PROTOCOL-IES ::= { - { ID id-New-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-New-eNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-Old-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-Old-eNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-GUMMEI-ID CRITICALITY reject TYPE GUMMEI PRESENCE mandatory}| - { ID id-UE-ContextInformationRetrieve CRITICALITY reject TYPE UE-ContextInformationRetrieve PRESENCE mandatory}| - { ID id-TraceActivation CRITICALITY ignore TYPE TraceActivation PRESENCE optional}| - { ID id-SRVCCOperationPossible CRITICALITY ignore TYPE SRVCCOperationPossible PRESENCE optional}| - { ID id-Masked-IMEISV CRITICALITY ignore TYPE Masked-IMEISV PRESENCE optional}| - { ID id-ExpectedUEBehaviour CRITICALITY ignore TYPE ExpectedUEBehaviour PRESENCE optional}| - { ID id-ProSeAuthorized CRITICALITY ignore TYPE ProSeAuthorized PRESENCE optional}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| - { ID id-V2XServicesAuthorized CRITICALITY ignore TYPE V2XServicesAuthorized PRESENCE optional}| - { ID id-AerialUEsubscriptionInformation CRITICALITY ignore TYPE AerialUEsubscriptionInformation PRESENCE optional}| - { ID id-Subscription-Based-UE-DifferentiationInfo CRITICALITY ignore TYPE Subscription-Based-UE-DifferentiationInfo PRESENCE optional}, - ... -} -*/ - -struct RetrieveUEContextResponse_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 16; } - void clear() {type = 0;} - void select_id_New_eNB_UE_X2AP_ID() { set(id_New_eNB_UE_X2AP_ID); type=1;} - void select_id_New_eNB_UE_X2AP_ID_Extension() { set(id_New_eNB_UE_X2AP_ID_Extension); type=2;} - void select_id_Old_eNB_UE_X2AP_ID() { set(id_Old_eNB_UE_X2AP_ID); type=3;} - void select_id_Old_eNB_UE_X2AP_ID_Extension() { set(id_Old_eNB_UE_X2AP_ID_Extension); type=4;} - void select_id_GUMMEI_ID() { set(id_GUMMEI_ID); type=5;} - void select_id_UE_ContextInformationRetrieve() { set(id_UE_ContextInformationRetrieve); type=6;} - void select_id_TraceActivation() { set(id_TraceActivation); type=7;} - void select_id_SRVCCOperationPossible() { set(id_SRVCCOperationPossible); type=8;} - void select_id_Masked_IMEISV() { set(id_Masked_IMEISV); type=9;} - void select_id_ExpectedUEBehaviour() { set(id_ExpectedUEBehaviour); type=10;} - void select_id_ProSeAuthorized() { set(id_ProSeAuthorized); type=11;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=12;} - void select_id_V2XServicesAuthorized() { set(id_V2XServicesAuthorized); type=13;} - void select_id_AerialUEsubscriptionInformation() { set(id_AerialUEsubscriptionInformation); type=14;} - void select_id_Subscription_Based_UE_DifferentiationInfo() { set(id_Subscription_Based_UE_DifferentiationInfo); type=15;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_New_eNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_New_eNB_UE_X2AP_ID_Extension)) { type = 2; return true; } - else if(equal(id_Old_eNB_UE_X2AP_ID)) { type = 3; return true; } - else if(equal(id_Old_eNB_UE_X2AP_ID_Extension)) { type = 4; return true; } - else if(equal(id_GUMMEI_ID)) { type = 5; return true; } - else if(equal(id_UE_ContextInformationRetrieve)) { type = 6; return true; } - else if(equal(id_TraceActivation)) { type = 7; return true; } - else if(equal(id_SRVCCOperationPossible)) { type = 8; return true; } - else if(equal(id_Masked_IMEISV)) { type = 9; return true; } - else if(equal(id_ExpectedUEBehaviour)) { type = 10; return true; } - else if(equal(id_ProSeAuthorized)) { type = 11; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 12; return true; } - else if(equal(id_V2XServicesAuthorized)) { type = 13; return true; } - else if(equal(id_AerialUEsubscriptionInformation)) { type = 14; return true; } - else if(equal(id_Subscription_Based_UE_DifferentiationInfo)) { type = 15; return true; } - else { type = 16; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_New_eNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_New_eNB_UE_X2AP_ID_Extension);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_Old_eNB_UE_X2AP_ID);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_Old_eNB_UE_X2AP_ID_Extension);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_GUMMEI_ID);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_UE_ContextInformationRetrieve);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(id_TraceActivation);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(id_SRVCCOperationPossible);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(id_Masked_IMEISV);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(id_ExpectedUEBehaviour);} return false; - case 11: type = 11; if(v(ref_nested())) { return equal(id_ProSeAuthorized);} return false; - case 12: type = 12; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 13: type = 13; if(v(ref_nested())) { return equal(id_V2XServicesAuthorized);} return false; - case 14: type = 14; if(v(ref_nested())) { return equal(id_AerialUEsubscriptionInformation);} return false; - case 15: type = 15; if(v(ref_nested())) { return equal(id_Subscription_Based_UE_DifferentiationInfo);} return false; - case 16: type = 16; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 16; } - void clear() {type = 0;} - void select_id_New_eNB_UE_X2AP_ID() { set(ignore); type=1;} - void select_id_New_eNB_UE_X2AP_ID_Extension() { set(ignore); type=2;} - void select_id_Old_eNB_UE_X2AP_ID() { set(ignore); type=3;} - void select_id_Old_eNB_UE_X2AP_ID_Extension() { set(ignore); type=4;} - void select_id_GUMMEI_ID() { set(reject); type=5;} - void select_id_UE_ContextInformationRetrieve() { set(reject); type=6;} - void select_id_TraceActivation() { set(ignore); type=7;} - void select_id_SRVCCOperationPossible() { set(ignore); type=8;} - void select_id_Masked_IMEISV() { set(ignore); type=9;} - void select_id_ExpectedUEBehaviour() { set(ignore); type=10;} - void select_id_ProSeAuthorized() { set(ignore); type=11;} - void select_id_CriticalityDiagnostics() { set(ignore); type=12;} - void select_id_V2XServicesAuthorized() { set(ignore); type=13;} - void select_id_AerialUEsubscriptionInformation() { set(ignore); type=14;} - void select_id_Subscription_Based_UE_DifferentiationInfo() { set(ignore); type=15;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(reject)) { type = 5; return true; } - else if(equal(reject)) { type = 6; return true; } - else if(equal(ignore)) { type = 7; return true; } - else if(equal(ignore)) { type = 8; return true; } - else if(equal(ignore)) { type = 9; return true; } - else if(equal(ignore)) { type = 10; return true; } - else if(equal(ignore)) { type = 11; return true; } - else if(equal(ignore)) { type = 12; return true; } - else if(equal(ignore)) { type = 13; return true; } - else if(equal(ignore)) { type = 14; return true; } - else if(equal(ignore)) { type = 15; return true; } - else { type = 16; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(reject);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(reject);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(ignore);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(ignore);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(ignore);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(ignore);} return false; - case 11: type = 11; if(v(ref_nested())) { return equal(ignore);} return false; - case 12: type = 12; if(v(ref_nested())) { return equal(ignore);} return false; - case 13: type = 13; if(v(ref_nested())) { return equal(ignore);} return false; - case 14: type = 14; if(v(ref_nested())) { return equal(ignore);} return false; - case 15: type = 15; if(v(ref_nested())) { return equal(ignore);} return false; - case 16: type = 16; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_New_eNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_New_eNB_UE_X2AP_ID() const { return get(1); } - UE_X2AP_ID_Extension& select_id_New_eNB_UE_X2AP_ID_Extension() { return set(2); } - UE_X2AP_ID_Extension const* get_id_New_eNB_UE_X2AP_ID_Extension() const { return get(2); } - UE_X2AP_ID& select_id_Old_eNB_UE_X2AP_ID() { return set(3); } - UE_X2AP_ID const* get_id_Old_eNB_UE_X2AP_ID() const { return get(3); } - UE_X2AP_ID_Extension& select_id_Old_eNB_UE_X2AP_ID_Extension() { return set(4); } - UE_X2AP_ID_Extension const* get_id_Old_eNB_UE_X2AP_ID_Extension() const { return get(4); } - GUMMEI& select_id_GUMMEI_ID() { return set(5); } - GUMMEI const* get_id_GUMMEI_ID() const { return get(5); } - UE_ContextInformationRetrieve& select_id_UE_ContextInformationRetrieve() { return set(6); } - UE_ContextInformationRetrieve const* get_id_UE_ContextInformationRetrieve() const { return get(6); } - TraceActivation& select_id_TraceActivation() { return set(7); } - TraceActivation const* get_id_TraceActivation() const { return get(7); } - SRVCCOperationPossible& select_id_SRVCCOperationPossible() { return set(8); } - SRVCCOperationPossible const* get_id_SRVCCOperationPossible() const { return get(8); } - Masked_IMEISV& select_id_Masked_IMEISV() { return set(9); } - Masked_IMEISV const* get_id_Masked_IMEISV() const { return get(9); } - ExpectedUEBehaviour& select_id_ExpectedUEBehaviour() { return set(10); } - ExpectedUEBehaviour const* get_id_ExpectedUEBehaviour() const { return get(10); } - ProSeAuthorized& select_id_ProSeAuthorized() { return set(11); } - ProSeAuthorized const* get_id_ProSeAuthorized() const { return get(11); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(12); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(12); } - V2XServicesAuthorized& select_id_V2XServicesAuthorized() { return set(13); } - V2XServicesAuthorized const* get_id_V2XServicesAuthorized() const { return get(13); } - AerialUEsubscriptionInformation& select_id_AerialUEsubscriptionInformation() { return set(14); } - AerialUEsubscriptionInformation const* get_id_AerialUEsubscriptionInformation() const { return get(14); } - Subscription_Based_UE_DifferentiationInfo& select_id_Subscription_Based_UE_DifferentiationInfo() { return set(15); } - Subscription_Based_UE_DifferentiationInfo const* get_id_Subscription_Based_UE_DifferentiationInfo() const { return get(15); } - bool is_unknown() const { return type == 16; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - case 7: var.destroy(); break; - case 8: var.destroy(); break; - case 9: var.destroy(); break; - case 10: var.destroy(); break; - case 11: var.destroy(); break; - case 12: var.destroy(); break; - case 13: var.destroy(); break; - case 14: var.destroy(); break; - case 15: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - v.template operator()(7); - v.template operator()(8); - v.template operator()(9); - v.template operator()(10); - v.template operator()(11); - v.template operator()(12); - v.template operator()(13); - v.template operator()(14); - v.template operator()(15); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_New_eNB_UE_X2AP_ID()); return true; - case 2: v(select_id_New_eNB_UE_X2AP_ID_Extension()); return true; - case 3: v(select_id_Old_eNB_UE_X2AP_ID()); return true; - case 4: v(select_id_Old_eNB_UE_X2AP_ID_Extension()); return true; - case 5: v(select_id_GUMMEI_ID()); return true; - case 6: v(select_id_UE_ContextInformationRetrieve()); return true; - case 7: v(select_id_TraceActivation()); return true; - case 8: v(select_id_SRVCCOperationPossible()); return true; - case 9: v(select_id_Masked_IMEISV()); return true; - case 10: v(select_id_ExpectedUEBehaviour()); return true; - case 11: v(select_id_ProSeAuthorized()); return true; - case 12: v(select_id_CriticalityDiagnostics()); return true; - case 13: v(select_id_V2XServicesAuthorized()); return true; - case 14: v(select_id_AerialUEsubscriptionInformation()); return true; - case 15: v(select_id_Subscription_Based_UE_DifferentiationInfo()); return true; - case 16: if(type != 16) {clear(); asn::base::set();} type = 16; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - case 7: v(var.as()); return true; - case 8: v(var.as()); return true; - case 9: v(var.as()); return true; - case 10: v(var.as()); return true; - case 11: v(var.as()); return true; - case 12: v(var.as()); return true; - case 13: v(var.as()); return true; - case 14: v(var.as()); return true; - case 15: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(AerialUEsubscriptionInformation)]; - char dummy2[sizeof(CriticalityDiagnostics)]; - char dummy3[sizeof(ExpectedUEBehaviour)]; - char dummy4[sizeof(GUMMEI)]; - char dummy5[sizeof(Masked_IMEISV)]; - char dummy6[sizeof(ProSeAuthorized)]; - char dummy7[sizeof(SRVCCOperationPossible)]; - char dummy8[sizeof(Subscription_Based_UE_DifferentiationInfo)]; - char dummy9[sizeof(TraceActivation)]; - char dummy10[sizeof(UE_ContextInformationRetrieve)]; - char dummy11[sizeof(UE_X2AP_ID)]; - char dummy12[sizeof(UE_X2AP_ID_Extension)]; - char dummy13[sizeof(V2XServicesAuthorized)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 16; } - void clear() {type = 0;} - void select_id_New_eNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_New_eNB_UE_X2AP_ID_Extension() { set(optional); type=2;} - void select_id_Old_eNB_UE_X2AP_ID() { set(mandatory); type=3;} - void select_id_Old_eNB_UE_X2AP_ID_Extension() { set(optional); type=4;} - void select_id_GUMMEI_ID() { set(mandatory); type=5;} - void select_id_UE_ContextInformationRetrieve() { set(mandatory); type=6;} - void select_id_TraceActivation() { set(optional); type=7;} - void select_id_SRVCCOperationPossible() { set(optional); type=8;} - void select_id_Masked_IMEISV() { set(optional); type=9;} - void select_id_ExpectedUEBehaviour() { set(optional); type=10;} - void select_id_ProSeAuthorized() { set(optional); type=11;} - void select_id_CriticalityDiagnostics() { set(optional); type=12;} - void select_id_V2XServicesAuthorized() { set(optional); type=13;} - void select_id_AerialUEsubscriptionInformation() { set(optional); type=14;} - void select_id_Subscription_Based_UE_DifferentiationInfo() { set(optional); type=15;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(mandatory)) { type = 5; return true; } - else if(equal(mandatory)) { type = 6; return true; } - else if(equal(optional)) { type = 7; return true; } - else if(equal(optional)) { type = 8; return true; } - else if(equal(optional)) { type = 9; return true; } - else if(equal(optional)) { type = 10; return true; } - else if(equal(optional)) { type = 11; return true; } - else if(equal(optional)) { type = 12; return true; } - else if(equal(optional)) { type = 13; return true; } - else if(equal(optional)) { type = 14; return true; } - else if(equal(optional)) { type = 15; return true; } - else { type = 16; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(mandatory);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(mandatory);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(optional);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(optional);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(optional);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(optional);} return false; - case 11: type = 11; if(v(ref_nested())) { return equal(optional);} return false; - case 12: type = 12; if(v(ref_nested())) { return equal(optional);} return false; - case 13: type = 13; if(v(ref_nested())) { return equal(optional);} return false; - case 14: type = 14; if(v(ref_nested())) { return equal(optional);} return false; - case 15: type = 15; if(v(ref_nested())) { return equal(optional);} return false; - case 16: type = 16; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RetrieveUEContextResponse ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ RetrieveUEContextResponse-IEs}}, - ... -} -*/ - -struct RetrieveUEContextResponse : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "RetrieveUEContextResponse";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SNStatusTransfer-IEs X2AP-PROTOCOL-IES ::= { - { ID id-Old-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-New-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-E-RABs-SubjectToStatusTransfer-List CRITICALITY ignore TYPE E-RABs-SubjectToStatusTransfer-List PRESENCE mandatory}| - { ID id-Old-eNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-New-eNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-SgNB-UE-X2AP-ID CRITICALITY ignore TYPE SgNB-UE-X2AP-ID PRESENCE optional}, - ... -} -*/ - -struct SNStatusTransfer_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_Old_eNB_UE_X2AP_ID() { set(id_Old_eNB_UE_X2AP_ID); type=1;} - void select_id_New_eNB_UE_X2AP_ID() { set(id_New_eNB_UE_X2AP_ID); type=2;} - void select_id_E_RABs_SubjectToStatusTransfer_List() { set(id_E_RABs_SubjectToStatusTransfer_List); type=3;} - void select_id_Old_eNB_UE_X2AP_ID_Extension() { set(id_Old_eNB_UE_X2AP_ID_Extension); type=4;} - void select_id_New_eNB_UE_X2AP_ID_Extension() { set(id_New_eNB_UE_X2AP_ID_Extension); type=5;} - void select_id_SgNB_UE_X2AP_ID() { set(id_SgNB_UE_X2AP_ID); type=6;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_Old_eNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_New_eNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_E_RABs_SubjectToStatusTransfer_List)) { type = 3; return true; } - else if(equal(id_Old_eNB_UE_X2AP_ID_Extension)) { type = 4; return true; } - else if(equal(id_New_eNB_UE_X2AP_ID_Extension)) { type = 5; return true; } - else if(equal(id_SgNB_UE_X2AP_ID)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_Old_eNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_New_eNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_E_RABs_SubjectToStatusTransfer_List);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_Old_eNB_UE_X2AP_ID_Extension);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_New_eNB_UE_X2AP_ID_Extension);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_SgNB_UE_X2AP_ID);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_Old_eNB_UE_X2AP_ID() { set(reject); type=1;} - void select_id_New_eNB_UE_X2AP_ID() { set(reject); type=2;} - void select_id_E_RABs_SubjectToStatusTransfer_List() { set(ignore); type=3;} - void select_id_Old_eNB_UE_X2AP_ID_Extension() { set(reject); type=4;} - void select_id_New_eNB_UE_X2AP_ID_Extension() { set(reject); type=5;} - void select_id_SgNB_UE_X2AP_ID() { set(ignore); type=6;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(reject)) { type = 4; return true; } - else if(equal(reject)) { type = 5; return true; } - else if(equal(ignore)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(reject);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(reject);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(ignore);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_Old_eNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_Old_eNB_UE_X2AP_ID() const { return get(1); } - UE_X2AP_ID& select_id_New_eNB_UE_X2AP_ID() { return set(2); } - UE_X2AP_ID const* get_id_New_eNB_UE_X2AP_ID() const { return get(2); } - E_RABs_SubjectToStatusTransfer_List& select_id_E_RABs_SubjectToStatusTransfer_List() { return set(3); } - E_RABs_SubjectToStatusTransfer_List const* get_id_E_RABs_SubjectToStatusTransfer_List() const { return get(3); } - UE_X2AP_ID_Extension& select_id_Old_eNB_UE_X2AP_ID_Extension() { return set(4); } - UE_X2AP_ID_Extension const* get_id_Old_eNB_UE_X2AP_ID_Extension() const { return get(4); } - UE_X2AP_ID_Extension& select_id_New_eNB_UE_X2AP_ID_Extension() { return set(5); } - UE_X2AP_ID_Extension const* get_id_New_eNB_UE_X2AP_ID_Extension() const { return get(5); } - SgNB_UE_X2AP_ID& select_id_SgNB_UE_X2AP_ID() { return set(6); } - SgNB_UE_X2AP_ID const* get_id_SgNB_UE_X2AP_ID() const { return get(6); } - bool is_unknown() const { return type == 7; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_Old_eNB_UE_X2AP_ID()); return true; - case 2: v(select_id_New_eNB_UE_X2AP_ID()); return true; - case 3: v(select_id_E_RABs_SubjectToStatusTransfer_List()); return true; - case 4: v(select_id_Old_eNB_UE_X2AP_ID_Extension()); return true; - case 5: v(select_id_New_eNB_UE_X2AP_ID_Extension()); return true; - case 6: v(select_id_SgNB_UE_X2AP_ID()); return true; - case 7: if(type != 7) {clear(); asn::base::set();} type = 7; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_SubjectToStatusTransfer_List)]; - char dummy2[sizeof(SgNB_UE_X2AP_ID)]; - char dummy3[sizeof(UE_X2AP_ID)]; - char dummy4[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_Old_eNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_New_eNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_E_RABs_SubjectToStatusTransfer_List() { set(mandatory); type=3;} - void select_id_Old_eNB_UE_X2AP_ID_Extension() { set(optional); type=4;} - void select_id_New_eNB_UE_X2AP_ID_Extension() { set(optional); type=5;} - void select_id_SgNB_UE_X2AP_ID() { set(optional); type=6;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SNStatusTransfer ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SNStatusTransfer-IEs}}, - ... -} -*/ - -struct SNStatusTransfer : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SNStatusTransfer";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SeNBAdditionRequest-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-UE-SecurityCapabilities CRITICALITY reject TYPE UESecurityCapabilities PRESENCE conditional}| - -- This IE shall be present if the Bearer Option IE is set to the value “SCG bearer” -- - { ID id-SeNBSecurityKey CRITICALITY reject TYPE SeNBSecurityKey PRESENCE conditional}| - -- This IE shall be present if the Bearer Option IE is set to the value “SCG bearer” -- - { ID id-SeNBUEAggregateMaximumBitRate CRITICALITY reject TYPE UEAggregateMaximumBitRate PRESENCE mandatory}| - { ID id-ServingPLMN CRITICALITY ignore TYPE PLMN-Identity PRESENCE optional}| - { ID id-E-RABs-ToBeAdded-List CRITICALITY reject TYPE E-RABs-ToBeAdded-List PRESENCE mandatory}| - { ID id-MeNBtoSeNBContainer CRITICALITY reject TYPE MeNBtoSeNBContainer PRESENCE mandatory}| - { ID id-CSGMembershipStatus CRITICALITY reject TYPE CSGMembershipStatus PRESENCE optional}| - { ID id-SeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE optional}| - { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-ExpectedUEBehaviour CRITICALITY ignore TYPE ExpectedUEBehaviour PRESENCE optional}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}, - ... -} -*/ - -struct SeNBAdditionRequest_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 13; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_UE_SecurityCapabilities() { set(id_UE_SecurityCapabilities); type=2;} - void select_id_SeNBSecurityKey() { set(id_SeNBSecurityKey); type=3;} - void select_id_SeNBUEAggregateMaximumBitRate() { set(id_SeNBUEAggregateMaximumBitRate); type=4;} - void select_id_ServingPLMN() { set(id_ServingPLMN); type=5;} - void select_id_E_RABs_ToBeAdded_List() { set(id_E_RABs_ToBeAdded_List); type=6;} - void select_id_MeNBtoSeNBContainer() { set(id_MeNBtoSeNBContainer); type=7;} - void select_id_CSGMembershipStatus() { set(id_CSGMembershipStatus); type=8;} - void select_id_SeNB_UE_X2AP_ID() { set(id_SeNB_UE_X2AP_ID); type=9;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(id_SeNB_UE_X2AP_ID_Extension); type=10;} - void select_id_ExpectedUEBehaviour() { set(id_ExpectedUEBehaviour); type=11;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=12;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_UE_SecurityCapabilities)) { type = 2; return true; } - else if(equal(id_SeNBSecurityKey)) { type = 3; return true; } - else if(equal(id_SeNBUEAggregateMaximumBitRate)) { type = 4; return true; } - else if(equal(id_ServingPLMN)) { type = 5; return true; } - else if(equal(id_E_RABs_ToBeAdded_List)) { type = 6; return true; } - else if(equal(id_MeNBtoSeNBContainer)) { type = 7; return true; } - else if(equal(id_CSGMembershipStatus)) { type = 8; return true; } - else if(equal(id_SeNB_UE_X2AP_ID)) { type = 9; return true; } - else if(equal(id_SeNB_UE_X2AP_ID_Extension)) { type = 10; return true; } - else if(equal(id_ExpectedUEBehaviour)) { type = 11; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 12; return true; } - else { type = 13; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_UE_SecurityCapabilities);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_SeNBSecurityKey);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_SeNBUEAggregateMaximumBitRate);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_ServingPLMN);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_E_RABs_ToBeAdded_List);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(id_MeNBtoSeNBContainer);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(id_CSGMembershipStatus);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(id_SeNB_UE_X2AP_ID);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(id_SeNB_UE_X2AP_ID_Extension);} return false; - case 11: type = 11; if(v(ref_nested())) { return equal(id_ExpectedUEBehaviour);} return false; - case 12: type = 12; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 13: type = 13; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 13; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(reject); type=1;} - void select_id_UE_SecurityCapabilities() { set(reject); type=2;} - void select_id_SeNBSecurityKey() { set(reject); type=3;} - void select_id_SeNBUEAggregateMaximumBitRate() { set(reject); type=4;} - void select_id_ServingPLMN() { set(ignore); type=5;} - void select_id_E_RABs_ToBeAdded_List() { set(reject); type=6;} - void select_id_MeNBtoSeNBContainer() { set(reject); type=7;} - void select_id_CSGMembershipStatus() { set(reject); type=8;} - void select_id_SeNB_UE_X2AP_ID() { set(reject); type=9;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(reject); type=10;} - void select_id_ExpectedUEBehaviour() { set(ignore); type=11;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(reject); type=12;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(reject)) { type = 3; return true; } - else if(equal(reject)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else if(equal(reject)) { type = 6; return true; } - else if(equal(reject)) { type = 7; return true; } - else if(equal(reject)) { type = 8; return true; } - else if(equal(reject)) { type = 9; return true; } - else if(equal(reject)) { type = 10; return true; } - else if(equal(ignore)) { type = 11; return true; } - else if(equal(reject)) { type = 12; return true; } - else { type = 13; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(reject);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(reject);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(reject);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(reject);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(reject);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(reject);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(reject);} return false; - case 11: type = 11; if(v(ref_nested())) { return equal(ignore);} return false; - case 12: type = 12; if(v(ref_nested())) { return equal(reject);} return false; - case 13: type = 13; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - UESecurityCapabilities& select_id_UE_SecurityCapabilities() { return set(2); } - UESecurityCapabilities const* get_id_UE_SecurityCapabilities() const { return get(2); } - SeNBSecurityKey& select_id_SeNBSecurityKey() { return set(3); } - SeNBSecurityKey const* get_id_SeNBSecurityKey() const { return get(3); } - UEAggregateMaximumBitRate& select_id_SeNBUEAggregateMaximumBitRate() { return set(4); } - UEAggregateMaximumBitRate const* get_id_SeNBUEAggregateMaximumBitRate() const { return get(4); } - PLMN_Identity& select_id_ServingPLMN() { return set(5); } - PLMN_Identity const* get_id_ServingPLMN() const { return get(5); } - E_RABs_ToBeAdded_List& select_id_E_RABs_ToBeAdded_List() { return set(6); } - E_RABs_ToBeAdded_List const* get_id_E_RABs_ToBeAdded_List() const { return get(6); } - MeNBtoSeNBContainer& select_id_MeNBtoSeNBContainer() { return set(7); } - MeNBtoSeNBContainer const* get_id_MeNBtoSeNBContainer() const { return get(7); } - CSGMembershipStatus& select_id_CSGMembershipStatus() { return set(8); } - CSGMembershipStatus const* get_id_CSGMembershipStatus() const { return get(8); } - UE_X2AP_ID& select_id_SeNB_UE_X2AP_ID() { return set(9); } - UE_X2AP_ID const* get_id_SeNB_UE_X2AP_ID() const { return get(9); } - UE_X2AP_ID_Extension& select_id_SeNB_UE_X2AP_ID_Extension() { return set(10); } - UE_X2AP_ID_Extension const* get_id_SeNB_UE_X2AP_ID_Extension() const { return get(10); } - ExpectedUEBehaviour& select_id_ExpectedUEBehaviour() { return set(11); } - ExpectedUEBehaviour const* get_id_ExpectedUEBehaviour() const { return get(11); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(12); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(12); } - bool is_unknown() const { return type == 13; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - case 7: var.destroy(); break; - case 8: var.destroy(); break; - case 9: var.destroy(); break; - case 10: var.destroy(); break; - case 11: var.destroy(); break; - case 12: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - v.template operator()(7); - v.template operator()(8); - v.template operator()(9); - v.template operator()(10); - v.template operator()(11); - v.template operator()(12); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_UE_SecurityCapabilities()); return true; - case 3: v(select_id_SeNBSecurityKey()); return true; - case 4: v(select_id_SeNBUEAggregateMaximumBitRate()); return true; - case 5: v(select_id_ServingPLMN()); return true; - case 6: v(select_id_E_RABs_ToBeAdded_List()); return true; - case 7: v(select_id_MeNBtoSeNBContainer()); return true; - case 8: v(select_id_CSGMembershipStatus()); return true; - case 9: v(select_id_SeNB_UE_X2AP_ID()); return true; - case 10: v(select_id_SeNB_UE_X2AP_ID_Extension()); return true; - case 11: v(select_id_ExpectedUEBehaviour()); return true; - case 12: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 13: if(type != 13) {clear(); asn::base::set();} type = 13; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - case 7: v(var.as()); return true; - case 8: v(var.as()); return true; - case 9: v(var.as()); return true; - case 10: v(var.as()); return true; - case 11: v(var.as()); return true; - case 12: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CSGMembershipStatus)]; - char dummy2[sizeof(E_RABs_ToBeAdded_List)]; - char dummy3[sizeof(ExpectedUEBehaviour)]; - char dummy4[sizeof(MeNBtoSeNBContainer)]; - char dummy5[sizeof(PLMN_Identity)]; - char dummy6[sizeof(SeNBSecurityKey)]; - char dummy7[sizeof(UEAggregateMaximumBitRate)]; - char dummy8[sizeof(UESecurityCapabilities)]; - char dummy9[sizeof(UE_X2AP_ID)]; - char dummy10[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 13; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_UE_SecurityCapabilities() { set(conditional); type=2;} - void select_id_SeNBSecurityKey() { set(conditional); type=3;} - void select_id_SeNBUEAggregateMaximumBitRate() { set(mandatory); type=4;} - void select_id_ServingPLMN() { set(optional); type=5;} - void select_id_E_RABs_ToBeAdded_List() { set(mandatory); type=6;} - void select_id_MeNBtoSeNBContainer() { set(mandatory); type=7;} - void select_id_CSGMembershipStatus() { set(optional); type=8;} - void select_id_SeNB_UE_X2AP_ID() { set(optional); type=9;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(optional); type=10;} - void select_id_ExpectedUEBehaviour() { set(optional); type=11;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=12;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(conditional)) { type = 2; return true; } - else if(equal(conditional)) { type = 3; return true; } - else if(equal(mandatory)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else if(equal(mandatory)) { type = 6; return true; } - else if(equal(mandatory)) { type = 7; return true; } - else if(equal(optional)) { type = 8; return true; } - else if(equal(optional)) { type = 9; return true; } - else if(equal(optional)) { type = 10; return true; } - else if(equal(optional)) { type = 11; return true; } - else if(equal(optional)) { type = 12; return true; } - else { type = 13; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(conditional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(conditional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(mandatory);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(mandatory);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(mandatory);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(optional);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(optional);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(optional);} return false; - case 11: type = 11; if(v(ref_nested())) { return equal(optional);} return false; - case 12: type = 12; if(v(ref_nested())) { return equal(optional);} return false; - case 13: type = 13; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SeNBAdditionRequest ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SeNBAdditionRequest-IEs}}, - ... -} -*/ - -struct SeNBAdditionRequest : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SeNBAdditionRequest";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SeNBAdditionRequestAcknowledge-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-E-RABs-Admitted-ToBeAdded-List CRITICALITY ignore TYPE E-RABs-Admitted-ToBeAdded-List PRESENCE mandatory}| - { ID id-E-RABs-NotAdmitted-List CRITICALITY ignore TYPE E-RAB-List PRESENCE optional}| - { ID id-SeNBtoMeNBContainer CRITICALITY reject TYPE SeNBtoMeNBContainer PRESENCE mandatory}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| - { ID id-GW-TransportLayerAddress CRITICALITY ignore TYPE TransportLayerAddress PRESENCE optional}| - { ID id-SIPTO-L-GW-TransportLayerAddress CRITICALITY ignore TYPE TransportLayerAddress PRESENCE optional}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-Tunnel-Information-for-BBF CRITICALITY ignore TYPE TunnelInformation PRESENCE optional}, - ... -} -*/ - -struct SeNBAdditionRequestAcknowledge_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 12; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(id_SeNB_UE_X2AP_ID); type=2;} - void select_id_E_RABs_Admitted_ToBeAdded_List() { set(id_E_RABs_Admitted_ToBeAdded_List); type=3;} - void select_id_E_RABs_NotAdmitted_List() { set(id_E_RABs_NotAdmitted_List); type=4;} - void select_id_SeNBtoMeNBContainer() { set(id_SeNBtoMeNBContainer); type=5;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=6;} - void select_id_GW_TransportLayerAddress() { set(id_GW_TransportLayerAddress); type=7;} - void select_id_SIPTO_L_GW_TransportLayerAddress() { set(id_SIPTO_L_GW_TransportLayerAddress); type=8;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=9;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(id_SeNB_UE_X2AP_ID_Extension); type=10;} - void select_id_Tunnel_Information_for_BBF() { set(id_Tunnel_Information_for_BBF); type=11;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SeNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_E_RABs_Admitted_ToBeAdded_List)) { type = 3; return true; } - else if(equal(id_E_RABs_NotAdmitted_List)) { type = 4; return true; } - else if(equal(id_SeNBtoMeNBContainer)) { type = 5; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 6; return true; } - else if(equal(id_GW_TransportLayerAddress)) { type = 7; return true; } - else if(equal(id_SIPTO_L_GW_TransportLayerAddress)) { type = 8; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 9; return true; } - else if(equal(id_SeNB_UE_X2AP_ID_Extension)) { type = 10; return true; } - else if(equal(id_Tunnel_Information_for_BBF)) { type = 11; return true; } - else { type = 12; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SeNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_E_RABs_Admitted_ToBeAdded_List);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_E_RABs_NotAdmitted_List);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_SeNBtoMeNBContainer);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(id_GW_TransportLayerAddress);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(id_SIPTO_L_GW_TransportLayerAddress);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(id_SeNB_UE_X2AP_ID_Extension);} return false; - case 11: type = 11; if(v(ref_nested())) { return equal(id_Tunnel_Information_for_BBF);} return false; - case 12: type = 12; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 12; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(reject); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(reject); type=2;} - void select_id_E_RABs_Admitted_ToBeAdded_List() { set(ignore); type=3;} - void select_id_E_RABs_NotAdmitted_List() { set(ignore); type=4;} - void select_id_SeNBtoMeNBContainer() { set(reject); type=5;} - void select_id_CriticalityDiagnostics() { set(ignore); type=6;} - void select_id_GW_TransportLayerAddress() { set(ignore); type=7;} - void select_id_SIPTO_L_GW_TransportLayerAddress() { set(ignore); type=8;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(reject); type=9;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(reject); type=10;} - void select_id_Tunnel_Information_for_BBF() { set(ignore); type=11;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(reject)) { type = 5; return true; } - else if(equal(ignore)) { type = 6; return true; } - else if(equal(ignore)) { type = 7; return true; } - else if(equal(ignore)) { type = 8; return true; } - else if(equal(reject)) { type = 9; return true; } - else if(equal(reject)) { type = 10; return true; } - else if(equal(ignore)) { type = 11; return true; } - else { type = 12; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(reject);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(ignore);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(ignore);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(ignore);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(reject);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(reject);} return false; - case 11: type = 11; if(v(ref_nested())) { return equal(ignore);} return false; - case 12: type = 12; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - UE_X2AP_ID& select_id_SeNB_UE_X2AP_ID() { return set(2); } - UE_X2AP_ID const* get_id_SeNB_UE_X2AP_ID() const { return get(2); } - E_RABs_Admitted_ToBeAdded_List& select_id_E_RABs_Admitted_ToBeAdded_List() { return set(3); } - E_RABs_Admitted_ToBeAdded_List const* get_id_E_RABs_Admitted_ToBeAdded_List() const { return get(3); } - E_RAB_List& select_id_E_RABs_NotAdmitted_List() { return set(4); } - E_RAB_List const* get_id_E_RABs_NotAdmitted_List() const { return get(4); } - SeNBtoMeNBContainer& select_id_SeNBtoMeNBContainer() { return set(5); } - SeNBtoMeNBContainer const* get_id_SeNBtoMeNBContainer() const { return get(5); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(6); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(6); } - TransportLayerAddress& select_id_GW_TransportLayerAddress() { return set(7); } - TransportLayerAddress const* get_id_GW_TransportLayerAddress() const { return get(7); } - TransportLayerAddress& select_id_SIPTO_L_GW_TransportLayerAddress() { return set(8); } - TransportLayerAddress const* get_id_SIPTO_L_GW_TransportLayerAddress() const { return get(8); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(9); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(9); } - UE_X2AP_ID_Extension& select_id_SeNB_UE_X2AP_ID_Extension() { return set(10); } - UE_X2AP_ID_Extension const* get_id_SeNB_UE_X2AP_ID_Extension() const { return get(10); } - TunnelInformation& select_id_Tunnel_Information_for_BBF() { return set(11); } - TunnelInformation const* get_id_Tunnel_Information_for_BBF() const { return get(11); } - bool is_unknown() const { return type == 12; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - case 7: var.destroy(); break; - case 8: var.destroy(); break; - case 9: var.destroy(); break; - case 10: var.destroy(); break; - case 11: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - v.template operator()(7); - v.template operator()(8); - v.template operator()(9); - v.template operator()(10); - v.template operator()(11); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SeNB_UE_X2AP_ID()); return true; - case 3: v(select_id_E_RABs_Admitted_ToBeAdded_List()); return true; - case 4: v(select_id_E_RABs_NotAdmitted_List()); return true; - case 5: v(select_id_SeNBtoMeNBContainer()); return true; - case 6: v(select_id_CriticalityDiagnostics()); return true; - case 7: v(select_id_GW_TransportLayerAddress()); return true; - case 8: v(select_id_SIPTO_L_GW_TransportLayerAddress()); return true; - case 9: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 10: v(select_id_SeNB_UE_X2AP_ID_Extension()); return true; - case 11: v(select_id_Tunnel_Information_for_BBF()); return true; - case 12: if(type != 12) {clear(); asn::base::set();} type = 12; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - case 7: v(var.as()); return true; - case 8: v(var.as()); return true; - case 9: v(var.as()); return true; - case 10: v(var.as()); return true; - case 11: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CriticalityDiagnostics)]; - char dummy2[sizeof(E_RAB_List)]; - char dummy3[sizeof(E_RABs_Admitted_ToBeAdded_List)]; - char dummy4[sizeof(SeNBtoMeNBContainer)]; - char dummy5[sizeof(TransportLayerAddress)]; - char dummy6[sizeof(TunnelInformation)]; - char dummy7[sizeof(UE_X2AP_ID)]; - char dummy8[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 12; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_E_RABs_Admitted_ToBeAdded_List() { set(mandatory); type=3;} - void select_id_E_RABs_NotAdmitted_List() { set(optional); type=4;} - void select_id_SeNBtoMeNBContainer() { set(mandatory); type=5;} - void select_id_CriticalityDiagnostics() { set(optional); type=6;} - void select_id_GW_TransportLayerAddress() { set(optional); type=7;} - void select_id_SIPTO_L_GW_TransportLayerAddress() { set(optional); type=8;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=9;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(optional); type=10;} - void select_id_Tunnel_Information_for_BBF() { set(optional); type=11;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(mandatory)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else if(equal(optional)) { type = 7; return true; } - else if(equal(optional)) { type = 8; return true; } - else if(equal(optional)) { type = 9; return true; } - else if(equal(optional)) { type = 10; return true; } - else if(equal(optional)) { type = 11; return true; } - else { type = 12; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(mandatory);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(optional);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(optional);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(optional);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(optional);} return false; - case 11: type = 11; if(v(ref_nested())) { return equal(optional);} return false; - case 12: type = 12; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SeNBAdditionRequestAcknowledge ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SeNBAdditionRequestAcknowledge-IEs}}, - ... -} -*/ - -struct SeNBAdditionRequestAcknowledge : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SeNBAdditionRequestAcknowledge";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SeNBAdditionRequestReject-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}, - ... -} -*/ - -struct SeNBAdditionRequestReject_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(id_SeNB_UE_X2AP_ID); type=2;} - void select_id_Cause() { set(id_Cause); type=3;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=5;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(id_SeNB_UE_X2AP_ID_Extension); type=6;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SeNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_Cause)) { type = 3; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 4; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 5; return true; } - else if(equal(id_SeNB_UE_X2AP_ID_Extension)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SeNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_SeNB_UE_X2AP_ID_Extension);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(reject); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(reject); type=2;} - void select_id_Cause() { set(ignore); type=3;} - void select_id_CriticalityDiagnostics() { set(ignore); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(reject); type=5;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(reject); type=6;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(reject)) { type = 5; return true; } - else if(equal(reject)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(reject);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(reject);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - UE_X2AP_ID& select_id_SeNB_UE_X2AP_ID() { return set(2); } - UE_X2AP_ID const* get_id_SeNB_UE_X2AP_ID() const { return get(2); } - Cause& select_id_Cause() { return set(3); } - Cause const* get_id_Cause() const { return get(3); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(4); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(4); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(5); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(5); } - UE_X2AP_ID_Extension& select_id_SeNB_UE_X2AP_ID_Extension() { return set(6); } - UE_X2AP_ID_Extension const* get_id_SeNB_UE_X2AP_ID_Extension() const { return get(6); } - bool is_unknown() const { return type == 7; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SeNB_UE_X2AP_ID()); return true; - case 3: v(select_id_Cause()); return true; - case 4: v(select_id_CriticalityDiagnostics()); return true; - case 5: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 6: v(select_id_SeNB_UE_X2AP_ID_Extension()); return true; - case 7: if(type != 7) {clear(); asn::base::set();} type = 7; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(CriticalityDiagnostics)]; - char dummy3[sizeof(UE_X2AP_ID)]; - char dummy4[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_Cause() { set(mandatory); type=3;} - void select_id_CriticalityDiagnostics() { set(optional); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=5;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(optional); type=6;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SeNBAdditionRequestReject ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SeNBAdditionRequestReject-IEs}}, - ... -} -*/ - -struct SeNBAdditionRequestReject : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SeNBAdditionRequestReject";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SeNBCounterCheckRequest-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-E-RABs-SubjectToCounterCheck-List CRITICALITY ignore TYPE E-RABs-SubjectToCounterCheck-List PRESENCE mandatory}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}, - ... -} -*/ - -struct SeNBCounterCheckRequest_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(id_SeNB_UE_X2AP_ID); type=2;} - void select_id_E_RABs_SubjectToCounterCheck_List() { set(id_E_RABs_SubjectToCounterCheck_List); type=3;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=4;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(id_SeNB_UE_X2AP_ID_Extension); type=5;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SeNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_E_RABs_SubjectToCounterCheck_List)) { type = 3; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 4; return true; } - else if(equal(id_SeNB_UE_X2AP_ID_Extension)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SeNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_E_RABs_SubjectToCounterCheck_List);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_SeNB_UE_X2AP_ID_Extension);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(reject); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(reject); type=2;} - void select_id_E_RABs_SubjectToCounterCheck_List() { set(ignore); type=3;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(ignore); type=4;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(ignore); type=5;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - UE_X2AP_ID& select_id_SeNB_UE_X2AP_ID() { return set(2); } - UE_X2AP_ID const* get_id_SeNB_UE_X2AP_ID() const { return get(2); } - E_RABs_SubjectToCounterCheck_List& select_id_E_RABs_SubjectToCounterCheck_List() { return set(3); } - E_RABs_SubjectToCounterCheck_List const* get_id_E_RABs_SubjectToCounterCheck_List() const { return get(3); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(4); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(4); } - UE_X2AP_ID_Extension& select_id_SeNB_UE_X2AP_ID_Extension() { return set(5); } - UE_X2AP_ID_Extension const* get_id_SeNB_UE_X2AP_ID_Extension() const { return get(5); } - bool is_unknown() const { return type == 6; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SeNB_UE_X2AP_ID()); return true; - case 3: v(select_id_E_RABs_SubjectToCounterCheck_List()); return true; - case 4: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 5: v(select_id_SeNB_UE_X2AP_ID_Extension()); return true; - case 6: if(type != 6) {clear(); asn::base::set();} type = 6; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_SubjectToCounterCheck_List)]; - char dummy2[sizeof(UE_X2AP_ID)]; - char dummy3[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_E_RABs_SubjectToCounterCheck_List() { set(mandatory); type=3;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=4;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(optional); type=5;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SeNBCounterCheckRequest ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SeNBCounterCheckRequest-IEs}}, - ... -} -*/ - -struct SeNBCounterCheckRequest : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SeNBCounterCheckRequest";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SeNBModificationConfirm-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-MeNBtoSeNBContainer CRITICALITY ignore TYPE MeNBtoSeNBContainer PRESENCE optional}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}, - ... -} -*/ - -struct SeNBModificationConfirm_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(id_SeNB_UE_X2AP_ID); type=2;} - void select_id_MeNBtoSeNBContainer() { set(id_MeNBtoSeNBContainer); type=3;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=5;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(id_SeNB_UE_X2AP_ID_Extension); type=6;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SeNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_MeNBtoSeNBContainer)) { type = 3; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 4; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 5; return true; } - else if(equal(id_SeNB_UE_X2AP_ID_Extension)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SeNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_MeNBtoSeNBContainer);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_SeNB_UE_X2AP_ID_Extension);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(ignore); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(ignore); type=2;} - void select_id_MeNBtoSeNBContainer() { set(ignore); type=3;} - void select_id_CriticalityDiagnostics() { set(ignore); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(ignore); type=5;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(ignore); type=6;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else if(equal(ignore)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(ignore);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - UE_X2AP_ID& select_id_SeNB_UE_X2AP_ID() { return set(2); } - UE_X2AP_ID const* get_id_SeNB_UE_X2AP_ID() const { return get(2); } - MeNBtoSeNBContainer& select_id_MeNBtoSeNBContainer() { return set(3); } - MeNBtoSeNBContainer const* get_id_MeNBtoSeNBContainer() const { return get(3); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(4); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(4); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(5); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(5); } - UE_X2AP_ID_Extension& select_id_SeNB_UE_X2AP_ID_Extension() { return set(6); } - UE_X2AP_ID_Extension const* get_id_SeNB_UE_X2AP_ID_Extension() const { return get(6); } - bool is_unknown() const { return type == 7; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SeNB_UE_X2AP_ID()); return true; - case 3: v(select_id_MeNBtoSeNBContainer()); return true; - case 4: v(select_id_CriticalityDiagnostics()); return true; - case 5: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 6: v(select_id_SeNB_UE_X2AP_ID_Extension()); return true; - case 7: if(type != 7) {clear(); asn::base::set();} type = 7; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CriticalityDiagnostics)]; - char dummy2[sizeof(MeNBtoSeNBContainer)]; - char dummy3[sizeof(UE_X2AP_ID)]; - char dummy4[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_MeNBtoSeNBContainer() { set(optional); type=3;} - void select_id_CriticalityDiagnostics() { set(optional); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=5;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(optional); type=6;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SeNBModificationConfirm ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SeNBModificationConfirm-IEs}}, - ... -} -*/ - -struct SeNBModificationConfirm : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SeNBModificationConfirm";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SeNBModificationRefuse-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| - { ID id-MeNBtoSeNBContainer CRITICALITY ignore TYPE MeNBtoSeNBContainer PRESENCE optional}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}, - ... -} -*/ - -struct SeNBModificationRefuse_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 8; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(id_SeNB_UE_X2AP_ID); type=2;} - void select_id_Cause() { set(id_Cause); type=3;} - void select_id_MeNBtoSeNBContainer() { set(id_MeNBtoSeNBContainer); type=4;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=5;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=6;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(id_SeNB_UE_X2AP_ID_Extension); type=7;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SeNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_Cause)) { type = 3; return true; } - else if(equal(id_MeNBtoSeNBContainer)) { type = 4; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 5; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 6; return true; } - else if(equal(id_SeNB_UE_X2AP_ID_Extension)) { type = 7; return true; } - else { type = 8; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SeNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_MeNBtoSeNBContainer);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(id_SeNB_UE_X2AP_ID_Extension);} return false; - case 8: type = 8; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 8; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(ignore); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(ignore); type=2;} - void select_id_Cause() { set(ignore); type=3;} - void select_id_MeNBtoSeNBContainer() { set(ignore); type=4;} - void select_id_CriticalityDiagnostics() { set(ignore); type=5;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(ignore); type=6;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(ignore); type=7;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else if(equal(ignore)) { type = 6; return true; } - else if(equal(ignore)) { type = 7; return true; } - else { type = 8; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(ignore);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(ignore);} return false; - case 8: type = 8; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - UE_X2AP_ID& select_id_SeNB_UE_X2AP_ID() { return set(2); } - UE_X2AP_ID const* get_id_SeNB_UE_X2AP_ID() const { return get(2); } - Cause& select_id_Cause() { return set(3); } - Cause const* get_id_Cause() const { return get(3); } - MeNBtoSeNBContainer& select_id_MeNBtoSeNBContainer() { return set(4); } - MeNBtoSeNBContainer const* get_id_MeNBtoSeNBContainer() const { return get(4); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(5); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(5); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(6); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(6); } - UE_X2AP_ID_Extension& select_id_SeNB_UE_X2AP_ID_Extension() { return set(7); } - UE_X2AP_ID_Extension const* get_id_SeNB_UE_X2AP_ID_Extension() const { return get(7); } - bool is_unknown() const { return type == 8; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - case 7: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - v.template operator()(7); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SeNB_UE_X2AP_ID()); return true; - case 3: v(select_id_Cause()); return true; - case 4: v(select_id_MeNBtoSeNBContainer()); return true; - case 5: v(select_id_CriticalityDiagnostics()); return true; - case 6: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 7: v(select_id_SeNB_UE_X2AP_ID_Extension()); return true; - case 8: if(type != 8) {clear(); asn::base::set();} type = 8; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - case 7: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(CriticalityDiagnostics)]; - char dummy3[sizeof(MeNBtoSeNBContainer)]; - char dummy4[sizeof(UE_X2AP_ID)]; - char dummy5[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 8; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_Cause() { set(mandatory); type=3;} - void select_id_MeNBtoSeNBContainer() { set(optional); type=4;} - void select_id_CriticalityDiagnostics() { set(optional); type=5;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=6;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(optional); type=7;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else if(equal(optional)) { type = 7; return true; } - else { type = 8; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(optional);} return false; - case 8: type = 8; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SeNBModificationRefuse ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SeNBModificationRefuse-IEs}}, - ... -} -*/ - -struct SeNBModificationRefuse : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SeNBModificationRefuse";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -UE-ContextInformationSeNBModReqExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct UE_ContextInformationSeNBModReqExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -UE-ContextInformationSeNBModReq ::= SEQUENCE { - uE-SecurityCapabilities UESecurityCapabilities OPTIONAL, - seNB-SecurityKey SeNBSecurityKey OPTIONAL, - seNBUEAggregateMaximumBitRate UEAggregateMaximumBitRate OPTIONAL, - e-RABs-ToBeAdded E-RABs-ToBeAdded-List-ModReq OPTIONAL, - e-RABs-ToBeModified E-RABs-ToBeModified-List-ModReq OPTIONAL, - e-RABs-ToBeReleased E-RABs-ToBeReleased-List-ModReq OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {UE-ContextInformationSeNBModReqExtIEs} } OPTIONAL, - ... -} -*/ - -struct UE_ContextInformationSeNBModReq : asn::sequence<7, 0, true, 7> -{ - static constexpr const char* name() {return "UE-ContextInformationSeNBModReq";} - using parent_t = asn::sequence<7, 0, true, 7>; - struct uE_SecurityCapabilities_t : UESecurityCapabilities - { - static constexpr const char* name() {return "uE_SecurityCapabilities_t";} - using parent_t = UESecurityCapabilities; - static constexpr bool optional = true; - - }; - uE_SecurityCapabilities_t& set_uE_SecurityCapabilities() { uE_SecurityCapabilities.setpresent(true); return uE_SecurityCapabilities;} - uE_SecurityCapabilities_t const* get_uE_SecurityCapabilities() const {return uE_SecurityCapabilities.is_valid() ? &uE_SecurityCapabilities : nullptr;} - struct seNB_SecurityKey_t : SeNBSecurityKey - { - static constexpr const char* name() {return "seNB_SecurityKey_t";} - using parent_t = SeNBSecurityKey; - static constexpr bool optional = true; - - }; - seNB_SecurityKey_t& set_seNB_SecurityKey() { seNB_SecurityKey.setpresent(true); return seNB_SecurityKey;} - seNB_SecurityKey_t const* get_seNB_SecurityKey() const {return seNB_SecurityKey.is_valid() ? &seNB_SecurityKey : nullptr;} - struct seNBUEAggregateMaximumBitRate_t : UEAggregateMaximumBitRate - { - static constexpr const char* name() {return "seNBUEAggregateMaximumBitRate_t";} - using parent_t = UEAggregateMaximumBitRate; - static constexpr bool optional = true; - - }; - seNBUEAggregateMaximumBitRate_t& set_seNBUEAggregateMaximumBitRate() { seNBUEAggregateMaximumBitRate.setpresent(true); return seNBUEAggregateMaximumBitRate;} - seNBUEAggregateMaximumBitRate_t const* get_seNBUEAggregateMaximumBitRate() const {return seNBUEAggregateMaximumBitRate.is_valid() ? &seNBUEAggregateMaximumBitRate : nullptr;} - struct e_RABs_ToBeAdded_t : E_RABs_ToBeAdded_List_ModReq - { - static constexpr const char* name() {return "e_RABs_ToBeAdded_t";} - using parent_t = E_RABs_ToBeAdded_List_ModReq; - static constexpr bool optional = true; - - }; - e_RABs_ToBeAdded_t& set_e_RABs_ToBeAdded() { e_RABs_ToBeAdded.setpresent(true); return e_RABs_ToBeAdded;} - e_RABs_ToBeAdded_t const* get_e_RABs_ToBeAdded() const {return e_RABs_ToBeAdded.is_valid() ? &e_RABs_ToBeAdded : nullptr;} - struct e_RABs_ToBeModified_t : E_RABs_ToBeModified_List_ModReq - { - static constexpr const char* name() {return "e_RABs_ToBeModified_t";} - using parent_t = E_RABs_ToBeModified_List_ModReq; - static constexpr bool optional = true; - - }; - e_RABs_ToBeModified_t& set_e_RABs_ToBeModified() { e_RABs_ToBeModified.setpresent(true); return e_RABs_ToBeModified;} - e_RABs_ToBeModified_t const* get_e_RABs_ToBeModified() const {return e_RABs_ToBeModified.is_valid() ? &e_RABs_ToBeModified : nullptr;} - struct e_RABs_ToBeReleased_t : E_RABs_ToBeReleased_List_ModReq - { - static constexpr const char* name() {return "e_RABs_ToBeReleased_t";} - using parent_t = E_RABs_ToBeReleased_List_ModReq; - static constexpr bool optional = true; - - }; - e_RABs_ToBeReleased_t& set_e_RABs_ToBeReleased() { e_RABs_ToBeReleased.setpresent(true); return e_RABs_ToBeReleased;} - e_RABs_ToBeReleased_t const* get_e_RABs_ToBeReleased() const {return e_RABs_ToBeReleased.is_valid() ? &e_RABs_ToBeReleased : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(uE_SecurityCapabilities); - v(seNB_SecurityKey); - v(seNBUEAggregateMaximumBitRate); - v(e_RABs_ToBeAdded); - v(e_RABs_ToBeModified); - v(e_RABs_ToBeReleased); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(uE_SecurityCapabilities); - v(seNB_SecurityKey); - v(seNBUEAggregateMaximumBitRate); - v(e_RABs_ToBeAdded); - v(e_RABs_ToBeModified); - v(e_RABs_ToBeReleased); - v(iE_Extensions); - - }; - void clear() - { - uE_SecurityCapabilities.clear(); - seNB_SecurityKey.clear(); - seNBUEAggregateMaximumBitRate.clear(); - e_RABs_ToBeAdded.clear(); - e_RABs_ToBeModified.clear(); - e_RABs_ToBeReleased.clear(); - iE_Extensions.clear(); - - }; - private: - uE_SecurityCapabilities_t uE_SecurityCapabilities; - seNB_SecurityKey_t seNB_SecurityKey; - seNBUEAggregateMaximumBitRate_t seNBUEAggregateMaximumBitRate; - e_RABs_ToBeAdded_t e_RABs_ToBeAdded; - e_RABs_ToBeModified_t e_RABs_ToBeModified; - e_RABs_ToBeReleased_t e_RABs_ToBeReleased; - iE_Extensions_t iE_Extensions; - -}; -/* -SeNBModificationRequest-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| - { ID id-SCGChangeIndication CRITICALITY ignore TYPE SCGChangeIndication PRESENCE optional}| - { ID id-ServingPLMN CRITICALITY ignore TYPE PLMN-Identity PRESENCE optional}| - { ID id-UE-ContextInformationSeNBModReq CRITICALITY reject TYPE UE-ContextInformationSeNBModReq PRESENCE optional}| - { ID id-MeNBtoSeNBContainer CRITICALITY ignore TYPE MeNBtoSeNBContainer PRESENCE optional}| - { ID id-CSGMembershipStatus CRITICALITY reject TYPE CSGMembershipStatus PRESENCE optional}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}, - ... -} -*/ - -struct SeNBModificationRequest_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 11; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(id_SeNB_UE_X2AP_ID); type=2;} - void select_id_Cause() { set(id_Cause); type=3;} - void select_id_SCGChangeIndication() { set(id_SCGChangeIndication); type=4;} - void select_id_ServingPLMN() { set(id_ServingPLMN); type=5;} - void select_id_UE_ContextInformationSeNBModReq() { set(id_UE_ContextInformationSeNBModReq); type=6;} - void select_id_MeNBtoSeNBContainer() { set(id_MeNBtoSeNBContainer); type=7;} - void select_id_CSGMembershipStatus() { set(id_CSGMembershipStatus); type=8;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=9;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(id_SeNB_UE_X2AP_ID_Extension); type=10;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SeNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_Cause)) { type = 3; return true; } - else if(equal(id_SCGChangeIndication)) { type = 4; return true; } - else if(equal(id_ServingPLMN)) { type = 5; return true; } - else if(equal(id_UE_ContextInformationSeNBModReq)) { type = 6; return true; } - else if(equal(id_MeNBtoSeNBContainer)) { type = 7; return true; } - else if(equal(id_CSGMembershipStatus)) { type = 8; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 9; return true; } - else if(equal(id_SeNB_UE_X2AP_ID_Extension)) { type = 10; return true; } - else { type = 11; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SeNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_SCGChangeIndication);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_ServingPLMN);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_UE_ContextInformationSeNBModReq);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(id_MeNBtoSeNBContainer);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(id_CSGMembershipStatus);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(id_SeNB_UE_X2AP_ID_Extension);} return false; - case 11: type = 11; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 11; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(reject); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(reject); type=2;} - void select_id_Cause() { set(ignore); type=3;} - void select_id_SCGChangeIndication() { set(ignore); type=4;} - void select_id_ServingPLMN() { set(ignore); type=5;} - void select_id_UE_ContextInformationSeNBModReq() { set(reject); type=6;} - void select_id_MeNBtoSeNBContainer() { set(ignore); type=7;} - void select_id_CSGMembershipStatus() { set(reject); type=8;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(reject); type=9;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(reject); type=10;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else if(equal(reject)) { type = 6; return true; } - else if(equal(ignore)) { type = 7; return true; } - else if(equal(reject)) { type = 8; return true; } - else if(equal(reject)) { type = 9; return true; } - else if(equal(reject)) { type = 10; return true; } - else { type = 11; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(reject);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(ignore);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(reject);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(reject);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(reject);} return false; - case 11: type = 11; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - UE_X2AP_ID& select_id_SeNB_UE_X2AP_ID() { return set(2); } - UE_X2AP_ID const* get_id_SeNB_UE_X2AP_ID() const { return get(2); } - Cause& select_id_Cause() { return set(3); } - Cause const* get_id_Cause() const { return get(3); } - SCGChangeIndication& select_id_SCGChangeIndication() { return set(4); } - SCGChangeIndication const* get_id_SCGChangeIndication() const { return get(4); } - PLMN_Identity& select_id_ServingPLMN() { return set(5); } - PLMN_Identity const* get_id_ServingPLMN() const { return get(5); } - UE_ContextInformationSeNBModReq& select_id_UE_ContextInformationSeNBModReq() { return set(6); } - UE_ContextInformationSeNBModReq const* get_id_UE_ContextInformationSeNBModReq() const { return get(6); } - MeNBtoSeNBContainer& select_id_MeNBtoSeNBContainer() { return set(7); } - MeNBtoSeNBContainer const* get_id_MeNBtoSeNBContainer() const { return get(7); } - CSGMembershipStatus& select_id_CSGMembershipStatus() { return set(8); } - CSGMembershipStatus const* get_id_CSGMembershipStatus() const { return get(8); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(9); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(9); } - UE_X2AP_ID_Extension& select_id_SeNB_UE_X2AP_ID_Extension() { return set(10); } - UE_X2AP_ID_Extension const* get_id_SeNB_UE_X2AP_ID_Extension() const { return get(10); } - bool is_unknown() const { return type == 11; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - case 7: var.destroy(); break; - case 8: var.destroy(); break; - case 9: var.destroy(); break; - case 10: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - v.template operator()(7); - v.template operator()(8); - v.template operator()(9); - v.template operator()(10); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SeNB_UE_X2AP_ID()); return true; - case 3: v(select_id_Cause()); return true; - case 4: v(select_id_SCGChangeIndication()); return true; - case 5: v(select_id_ServingPLMN()); return true; - case 6: v(select_id_UE_ContextInformationSeNBModReq()); return true; - case 7: v(select_id_MeNBtoSeNBContainer()); return true; - case 8: v(select_id_CSGMembershipStatus()); return true; - case 9: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 10: v(select_id_SeNB_UE_X2AP_ID_Extension()); return true; - case 11: if(type != 11) {clear(); asn::base::set();} type = 11; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - case 7: v(var.as()); return true; - case 8: v(var.as()); return true; - case 9: v(var.as()); return true; - case 10: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CSGMembershipStatus)]; - char dummy2[sizeof(Cause)]; - char dummy3[sizeof(MeNBtoSeNBContainer)]; - char dummy4[sizeof(PLMN_Identity)]; - char dummy5[sizeof(SCGChangeIndication)]; - char dummy6[sizeof(UE_ContextInformationSeNBModReq)]; - char dummy7[sizeof(UE_X2AP_ID)]; - char dummy8[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 11; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_Cause() { set(mandatory); type=3;} - void select_id_SCGChangeIndication() { set(optional); type=4;} - void select_id_ServingPLMN() { set(optional); type=5;} - void select_id_UE_ContextInformationSeNBModReq() { set(optional); type=6;} - void select_id_MeNBtoSeNBContainer() { set(optional); type=7;} - void select_id_CSGMembershipStatus() { set(optional); type=8;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=9;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(optional); type=10;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else if(equal(optional)) { type = 7; return true; } - else if(equal(optional)) { type = 8; return true; } - else if(equal(optional)) { type = 9; return true; } - else if(equal(optional)) { type = 10; return true; } - else { type = 11; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(optional);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(optional);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(optional);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(optional);} return false; - case 11: type = 11; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SeNBModificationRequest ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ SeNBModificationRequest-IEs}}, - ... -} -*/ - -struct SeNBModificationRequest : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SeNBModificationRequest";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SeNBModificationRequestAcknowledge-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-E-RABs-Admitted-ToBeAdded-ModAckList CRITICALITY ignore TYPE E-RABs-Admitted-ToBeAdded-ModAckList PRESENCE optional}| - { ID id-E-RABs-Admitted-ToBeModified-ModAckList CRITICALITY ignore TYPE E-RABs-Admitted-ToBeModified-ModAckList PRESENCE optional}| - { ID id-E-RABs-Admitted-ToBeReleased-ModAckList CRITICALITY ignore TYPE E-RABs-Admitted-ToBeReleased-ModAckList PRESENCE optional}| - { ID id-E-RABs-NotAdmitted-List CRITICALITY ignore TYPE E-RAB-List PRESENCE optional}| - { ID id-SeNBtoMeNBContainer CRITICALITY ignore TYPE SeNBtoMeNBContainer PRESENCE optional}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}, - ... -} -*/ - -struct SeNBModificationRequestAcknowledge_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 11; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(id_SeNB_UE_X2AP_ID); type=2;} - void select_id_E_RABs_Admitted_ToBeAdded_ModAckList() { set(id_E_RABs_Admitted_ToBeAdded_ModAckList); type=3;} - void select_id_E_RABs_Admitted_ToBeModified_ModAckList() { set(id_E_RABs_Admitted_ToBeModified_ModAckList); type=4;} - void select_id_E_RABs_Admitted_ToBeReleased_ModAckList() { set(id_E_RABs_Admitted_ToBeReleased_ModAckList); type=5;} - void select_id_E_RABs_NotAdmitted_List() { set(id_E_RABs_NotAdmitted_List); type=6;} - void select_id_SeNBtoMeNBContainer() { set(id_SeNBtoMeNBContainer); type=7;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=8;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=9;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(id_SeNB_UE_X2AP_ID_Extension); type=10;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SeNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_E_RABs_Admitted_ToBeAdded_ModAckList)) { type = 3; return true; } - else if(equal(id_E_RABs_Admitted_ToBeModified_ModAckList)) { type = 4; return true; } - else if(equal(id_E_RABs_Admitted_ToBeReleased_ModAckList)) { type = 5; return true; } - else if(equal(id_E_RABs_NotAdmitted_List)) { type = 6; return true; } - else if(equal(id_SeNBtoMeNBContainer)) { type = 7; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 8; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 9; return true; } - else if(equal(id_SeNB_UE_X2AP_ID_Extension)) { type = 10; return true; } - else { type = 11; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SeNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_E_RABs_Admitted_ToBeAdded_ModAckList);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_E_RABs_Admitted_ToBeModified_ModAckList);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_E_RABs_Admitted_ToBeReleased_ModAckList);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_E_RABs_NotAdmitted_List);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(id_SeNBtoMeNBContainer);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(id_SeNB_UE_X2AP_ID_Extension);} return false; - case 11: type = 11; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 11; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(ignore); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(ignore); type=2;} - void select_id_E_RABs_Admitted_ToBeAdded_ModAckList() { set(ignore); type=3;} - void select_id_E_RABs_Admitted_ToBeModified_ModAckList() { set(ignore); type=4;} - void select_id_E_RABs_Admitted_ToBeReleased_ModAckList() { set(ignore); type=5;} - void select_id_E_RABs_NotAdmitted_List() { set(ignore); type=6;} - void select_id_SeNBtoMeNBContainer() { set(ignore); type=7;} - void select_id_CriticalityDiagnostics() { set(ignore); type=8;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(ignore); type=9;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(ignore); type=10;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else if(equal(ignore)) { type = 6; return true; } - else if(equal(ignore)) { type = 7; return true; } - else if(equal(ignore)) { type = 8; return true; } - else if(equal(ignore)) { type = 9; return true; } - else if(equal(ignore)) { type = 10; return true; } - else { type = 11; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(ignore);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(ignore);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(ignore);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(ignore);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(ignore);} return false; - case 11: type = 11; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - UE_X2AP_ID& select_id_SeNB_UE_X2AP_ID() { return set(2); } - UE_X2AP_ID const* get_id_SeNB_UE_X2AP_ID() const { return get(2); } - E_RABs_Admitted_ToBeAdded_ModAckList& select_id_E_RABs_Admitted_ToBeAdded_ModAckList() { return set(3); } - E_RABs_Admitted_ToBeAdded_ModAckList const* get_id_E_RABs_Admitted_ToBeAdded_ModAckList() const { return get(3); } - E_RABs_Admitted_ToBeModified_ModAckList& select_id_E_RABs_Admitted_ToBeModified_ModAckList() { return set(4); } - E_RABs_Admitted_ToBeModified_ModAckList const* get_id_E_RABs_Admitted_ToBeModified_ModAckList() const { return get(4); } - E_RABs_Admitted_ToBeReleased_ModAckList& select_id_E_RABs_Admitted_ToBeReleased_ModAckList() { return set(5); } - E_RABs_Admitted_ToBeReleased_ModAckList const* get_id_E_RABs_Admitted_ToBeReleased_ModAckList() const { return get(5); } - E_RAB_List& select_id_E_RABs_NotAdmitted_List() { return set(6); } - E_RAB_List const* get_id_E_RABs_NotAdmitted_List() const { return get(6); } - SeNBtoMeNBContainer& select_id_SeNBtoMeNBContainer() { return set(7); } - SeNBtoMeNBContainer const* get_id_SeNBtoMeNBContainer() const { return get(7); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(8); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(8); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(9); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(9); } - UE_X2AP_ID_Extension& select_id_SeNB_UE_X2AP_ID_Extension() { return set(10); } - UE_X2AP_ID_Extension const* get_id_SeNB_UE_X2AP_ID_Extension() const { return get(10); } - bool is_unknown() const { return type == 11; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - case 7: var.destroy(); break; - case 8: var.destroy(); break; - case 9: var.destroy(); break; - case 10: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - v.template operator()(7); - v.template operator()(8); - v.template operator()(9); - v.template operator()(10); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SeNB_UE_X2AP_ID()); return true; - case 3: v(select_id_E_RABs_Admitted_ToBeAdded_ModAckList()); return true; - case 4: v(select_id_E_RABs_Admitted_ToBeModified_ModAckList()); return true; - case 5: v(select_id_E_RABs_Admitted_ToBeReleased_ModAckList()); return true; - case 6: v(select_id_E_RABs_NotAdmitted_List()); return true; - case 7: v(select_id_SeNBtoMeNBContainer()); return true; - case 8: v(select_id_CriticalityDiagnostics()); return true; - case 9: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 10: v(select_id_SeNB_UE_X2AP_ID_Extension()); return true; - case 11: if(type != 11) {clear(); asn::base::set();} type = 11; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - case 7: v(var.as()); return true; - case 8: v(var.as()); return true; - case 9: v(var.as()); return true; - case 10: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CriticalityDiagnostics)]; - char dummy2[sizeof(E_RAB_List)]; - char dummy3[sizeof(E_RABs_Admitted_ToBeAdded_ModAckList)]; - char dummy4[sizeof(E_RABs_Admitted_ToBeModified_ModAckList)]; - char dummy5[sizeof(E_RABs_Admitted_ToBeReleased_ModAckList)]; - char dummy6[sizeof(SeNBtoMeNBContainer)]; - char dummy7[sizeof(UE_X2AP_ID)]; - char dummy8[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 11; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_E_RABs_Admitted_ToBeAdded_ModAckList() { set(optional); type=3;} - void select_id_E_RABs_Admitted_ToBeModified_ModAckList() { set(optional); type=4;} - void select_id_E_RABs_Admitted_ToBeReleased_ModAckList() { set(optional); type=5;} - void select_id_E_RABs_NotAdmitted_List() { set(optional); type=6;} - void select_id_SeNBtoMeNBContainer() { set(optional); type=7;} - void select_id_CriticalityDiagnostics() { set(optional); type=8;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=9;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(optional); type=10;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else if(equal(optional)) { type = 7; return true; } - else if(equal(optional)) { type = 8; return true; } - else if(equal(optional)) { type = 9; return true; } - else if(equal(optional)) { type = 10; return true; } - else { type = 11; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(optional);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(optional);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(optional);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(optional);} return false; - case 11: type = 11; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SeNBModificationRequestAcknowledge ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SeNBModificationRequestAcknowledge-IEs}}, - ... -} -*/ - -struct SeNBModificationRequestAcknowledge : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SeNBModificationRequestAcknowledge";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SeNBModificationRequestReject-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}, - ... -} -*/ - -struct SeNBModificationRequestReject_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(id_SeNB_UE_X2AP_ID); type=2;} - void select_id_Cause() { set(id_Cause); type=3;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=5;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(id_SeNB_UE_X2AP_ID_Extension); type=6;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SeNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_Cause)) { type = 3; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 4; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 5; return true; } - else if(equal(id_SeNB_UE_X2AP_ID_Extension)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SeNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_SeNB_UE_X2AP_ID_Extension);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(ignore); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(ignore); type=2;} - void select_id_Cause() { set(ignore); type=3;} - void select_id_CriticalityDiagnostics() { set(ignore); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(ignore); type=5;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(ignore); type=6;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else if(equal(ignore)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(ignore);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - UE_X2AP_ID& select_id_SeNB_UE_X2AP_ID() { return set(2); } - UE_X2AP_ID const* get_id_SeNB_UE_X2AP_ID() const { return get(2); } - Cause& select_id_Cause() { return set(3); } - Cause const* get_id_Cause() const { return get(3); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(4); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(4); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(5); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(5); } - UE_X2AP_ID_Extension& select_id_SeNB_UE_X2AP_ID_Extension() { return set(6); } - UE_X2AP_ID_Extension const* get_id_SeNB_UE_X2AP_ID_Extension() const { return get(6); } - bool is_unknown() const { return type == 7; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SeNB_UE_X2AP_ID()); return true; - case 3: v(select_id_Cause()); return true; - case 4: v(select_id_CriticalityDiagnostics()); return true; - case 5: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 6: v(select_id_SeNB_UE_X2AP_ID_Extension()); return true; - case 7: if(type != 7) {clear(); asn::base::set();} type = 7; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(CriticalityDiagnostics)]; - char dummy3[sizeof(UE_X2AP_ID)]; - char dummy4[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_Cause() { set(mandatory); type=3;} - void select_id_CriticalityDiagnostics() { set(optional); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=5;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(optional); type=6;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SeNBModificationRequestReject ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SeNBModificationRequestReject-IEs}}, - ... -} -*/ - -struct SeNBModificationRequestReject : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SeNBModificationRequestReject";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SeNBModificationRequired-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| - { ID id-SCGChangeIndication CRITICALITY ignore TYPE SCGChangeIndication PRESENCE optional}| - { ID id-E-RABs-ToBeReleased-ModReqd CRITICALITY ignore TYPE E-RABs-ToBeReleased-ModReqd PRESENCE optional}| - { ID id-SeNBtoMeNBContainer CRITICALITY ignore TYPE SeNBtoMeNBContainer PRESENCE optional}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}, - ... -} -*/ - -struct SeNBModificationRequired_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 9; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(id_SeNB_UE_X2AP_ID); type=2;} - void select_id_Cause() { set(id_Cause); type=3;} - void select_id_SCGChangeIndication() { set(id_SCGChangeIndication); type=4;} - void select_id_E_RABs_ToBeReleased_ModReqd() { set(id_E_RABs_ToBeReleased_ModReqd); type=5;} - void select_id_SeNBtoMeNBContainer() { set(id_SeNBtoMeNBContainer); type=6;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=7;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(id_SeNB_UE_X2AP_ID_Extension); type=8;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SeNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_Cause)) { type = 3; return true; } - else if(equal(id_SCGChangeIndication)) { type = 4; return true; } - else if(equal(id_E_RABs_ToBeReleased_ModReqd)) { type = 5; return true; } - else if(equal(id_SeNBtoMeNBContainer)) { type = 6; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 7; return true; } - else if(equal(id_SeNB_UE_X2AP_ID_Extension)) { type = 8; return true; } - else { type = 9; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SeNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_SCGChangeIndication);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_E_RABs_ToBeReleased_ModReqd);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_SeNBtoMeNBContainer);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(id_SeNB_UE_X2AP_ID_Extension);} return false; - case 9: type = 9; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 9; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(reject); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(reject); type=2;} - void select_id_Cause() { set(ignore); type=3;} - void select_id_SCGChangeIndication() { set(ignore); type=4;} - void select_id_E_RABs_ToBeReleased_ModReqd() { set(ignore); type=5;} - void select_id_SeNBtoMeNBContainer() { set(ignore); type=6;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(reject); type=7;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(reject); type=8;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else if(equal(ignore)) { type = 6; return true; } - else if(equal(reject)) { type = 7; return true; } - else if(equal(reject)) { type = 8; return true; } - else { type = 9; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(ignore);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(reject);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(reject);} return false; - case 9: type = 9; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - UE_X2AP_ID& select_id_SeNB_UE_X2AP_ID() { return set(2); } - UE_X2AP_ID const* get_id_SeNB_UE_X2AP_ID() const { return get(2); } - Cause& select_id_Cause() { return set(3); } - Cause const* get_id_Cause() const { return get(3); } - SCGChangeIndication& select_id_SCGChangeIndication() { return set(4); } - SCGChangeIndication const* get_id_SCGChangeIndication() const { return get(4); } - E_RABs_ToBeReleased_ModReqd& select_id_E_RABs_ToBeReleased_ModReqd() { return set(5); } - E_RABs_ToBeReleased_ModReqd const* get_id_E_RABs_ToBeReleased_ModReqd() const { return get(5); } - SeNBtoMeNBContainer& select_id_SeNBtoMeNBContainer() { return set(6); } - SeNBtoMeNBContainer const* get_id_SeNBtoMeNBContainer() const { return get(6); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(7); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(7); } - UE_X2AP_ID_Extension& select_id_SeNB_UE_X2AP_ID_Extension() { return set(8); } - UE_X2AP_ID_Extension const* get_id_SeNB_UE_X2AP_ID_Extension() const { return get(8); } - bool is_unknown() const { return type == 9; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - case 7: var.destroy(); break; - case 8: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - v.template operator()(7); - v.template operator()(8); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SeNB_UE_X2AP_ID()); return true; - case 3: v(select_id_Cause()); return true; - case 4: v(select_id_SCGChangeIndication()); return true; - case 5: v(select_id_E_RABs_ToBeReleased_ModReqd()); return true; - case 6: v(select_id_SeNBtoMeNBContainer()); return true; - case 7: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 8: v(select_id_SeNB_UE_X2AP_ID_Extension()); return true; - case 9: if(type != 9) {clear(); asn::base::set();} type = 9; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - case 7: v(var.as()); return true; - case 8: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(E_RABs_ToBeReleased_ModReqd)]; - char dummy3[sizeof(SCGChangeIndication)]; - char dummy4[sizeof(SeNBtoMeNBContainer)]; - char dummy5[sizeof(UE_X2AP_ID)]; - char dummy6[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 9; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_Cause() { set(mandatory); type=3;} - void select_id_SCGChangeIndication() { set(optional); type=4;} - void select_id_E_RABs_ToBeReleased_ModReqd() { set(optional); type=5;} - void select_id_SeNBtoMeNBContainer() { set(optional); type=6;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=7;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(optional); type=8;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else if(equal(optional)) { type = 7; return true; } - else if(equal(optional)) { type = 8; return true; } - else { type = 9; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(optional);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(optional);} return false; - case 9: type = 9; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SeNBModificationRequired ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SeNBModificationRequired-IEs}}, - ... -} -*/ - -struct SeNBModificationRequired : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SeNBModificationRequired";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SeNBReconfigurationComplete-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-ResponseInformationSeNBReconfComp CRITICALITY ignore TYPE ResponseInformationSeNBReconfComp PRESENCE mandatory}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}, - ... -} -*/ - -struct SeNBReconfigurationComplete_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(id_SeNB_UE_X2AP_ID); type=2;} - void select_id_ResponseInformationSeNBReconfComp() { set(id_ResponseInformationSeNBReconfComp); type=3;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=4;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(id_SeNB_UE_X2AP_ID_Extension); type=5;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SeNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_ResponseInformationSeNBReconfComp)) { type = 3; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 4; return true; } - else if(equal(id_SeNB_UE_X2AP_ID_Extension)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SeNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_ResponseInformationSeNBReconfComp);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_SeNB_UE_X2AP_ID_Extension);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(reject); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(reject); type=2;} - void select_id_ResponseInformationSeNBReconfComp() { set(ignore); type=3;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(reject); type=4;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(reject); type=5;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(reject)) { type = 4; return true; } - else if(equal(reject)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(reject);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(reject);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - UE_X2AP_ID& select_id_SeNB_UE_X2AP_ID() { return set(2); } - UE_X2AP_ID const* get_id_SeNB_UE_X2AP_ID() const { return get(2); } - ResponseInformationSeNBReconfComp& select_id_ResponseInformationSeNBReconfComp() { return set(3); } - ResponseInformationSeNBReconfComp const* get_id_ResponseInformationSeNBReconfComp() const { return get(3); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(4); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(4); } - UE_X2AP_ID_Extension& select_id_SeNB_UE_X2AP_ID_Extension() { return set(5); } - UE_X2AP_ID_Extension const* get_id_SeNB_UE_X2AP_ID_Extension() const { return get(5); } - bool is_unknown() const { return type == 6; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SeNB_UE_X2AP_ID()); return true; - case 3: v(select_id_ResponseInformationSeNBReconfComp()); return true; - case 4: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 5: v(select_id_SeNB_UE_X2AP_ID_Extension()); return true; - case 6: if(type != 6) {clear(); asn::base::set();} type = 6; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(ResponseInformationSeNBReconfComp)]; - char dummy2[sizeof(UE_X2AP_ID)]; - char dummy3[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_ResponseInformationSeNBReconfComp() { set(mandatory); type=3;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=4;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(optional); type=5;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SeNBReconfigurationComplete ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SeNBReconfigurationComplete-IEs}}, - ... -} -*/ - -struct SeNBReconfigurationComplete : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SeNBReconfigurationComplete";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SeNBReleaseConfirm-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-E-RABs-ToBeReleased-List-RelConf CRITICALITY ignore TYPE E-RABs-ToBeReleased-List-RelConf PRESENCE optional}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}, - ... -} -*/ - -struct SeNBReleaseConfirm_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(id_SeNB_UE_X2AP_ID); type=2;} - void select_id_E_RABs_ToBeReleased_List_RelConf() { set(id_E_RABs_ToBeReleased_List_RelConf); type=3;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=5;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(id_SeNB_UE_X2AP_ID_Extension); type=6;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SeNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_E_RABs_ToBeReleased_List_RelConf)) { type = 3; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 4; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 5; return true; } - else if(equal(id_SeNB_UE_X2AP_ID_Extension)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SeNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_E_RABs_ToBeReleased_List_RelConf);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_SeNB_UE_X2AP_ID_Extension);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(ignore); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(ignore); type=2;} - void select_id_E_RABs_ToBeReleased_List_RelConf() { set(ignore); type=3;} - void select_id_CriticalityDiagnostics() { set(ignore); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(ignore); type=5;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(ignore); type=6;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else if(equal(ignore)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(ignore);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - UE_X2AP_ID& select_id_SeNB_UE_X2AP_ID() { return set(2); } - UE_X2AP_ID const* get_id_SeNB_UE_X2AP_ID() const { return get(2); } - E_RABs_ToBeReleased_List_RelConf& select_id_E_RABs_ToBeReleased_List_RelConf() { return set(3); } - E_RABs_ToBeReleased_List_RelConf const* get_id_E_RABs_ToBeReleased_List_RelConf() const { return get(3); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(4); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(4); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(5); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(5); } - UE_X2AP_ID_Extension& select_id_SeNB_UE_X2AP_ID_Extension() { return set(6); } - UE_X2AP_ID_Extension const* get_id_SeNB_UE_X2AP_ID_Extension() const { return get(6); } - bool is_unknown() const { return type == 7; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SeNB_UE_X2AP_ID()); return true; - case 3: v(select_id_E_RABs_ToBeReleased_List_RelConf()); return true; - case 4: v(select_id_CriticalityDiagnostics()); return true; - case 5: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 6: v(select_id_SeNB_UE_X2AP_ID_Extension()); return true; - case 7: if(type != 7) {clear(); asn::base::set();} type = 7; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CriticalityDiagnostics)]; - char dummy2[sizeof(E_RABs_ToBeReleased_List_RelConf)]; - char dummy3[sizeof(UE_X2AP_ID)]; - char dummy4[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_E_RABs_ToBeReleased_List_RelConf() { set(optional); type=3;} - void select_id_CriticalityDiagnostics() { set(optional); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=5;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(optional); type=6;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SeNBReleaseConfirm ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SeNBReleaseConfirm-IEs}}, - ... -} -*/ - -struct SeNBReleaseConfirm : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SeNBReleaseConfirm";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SeNBReleaseRequest-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE optional}| - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE optional}| - { ID id-E-RABs-ToBeReleased-List-RelReq CRITICALITY ignore TYPE E-RABs-ToBeReleased-List-RelReq PRESENCE optional}| - { ID id-UE-ContextKeptIndicator CRITICALITY ignore TYPE UE-ContextKeptIndicator PRESENCE optional}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-MakeBeforeBreakIndicator CRITICALITY ignore TYPE MakeBeforeBreakIndicator PRESENCE optional}, - ... -} -*/ - -struct SeNBReleaseRequest_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 9; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(id_SeNB_UE_X2AP_ID); type=2;} - void select_id_Cause() { set(id_Cause); type=3;} - void select_id_E_RABs_ToBeReleased_List_RelReq() { set(id_E_RABs_ToBeReleased_List_RelReq); type=4;} - void select_id_UE_ContextKeptIndicator() { set(id_UE_ContextKeptIndicator); type=5;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=6;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(id_SeNB_UE_X2AP_ID_Extension); type=7;} - void select_id_MakeBeforeBreakIndicator() { set(id_MakeBeforeBreakIndicator); type=8;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SeNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_Cause)) { type = 3; return true; } - else if(equal(id_E_RABs_ToBeReleased_List_RelReq)) { type = 4; return true; } - else if(equal(id_UE_ContextKeptIndicator)) { type = 5; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 6; return true; } - else if(equal(id_SeNB_UE_X2AP_ID_Extension)) { type = 7; return true; } - else if(equal(id_MakeBeforeBreakIndicator)) { type = 8; return true; } - else { type = 9; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SeNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_E_RABs_ToBeReleased_List_RelReq);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_UE_ContextKeptIndicator);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(id_SeNB_UE_X2AP_ID_Extension);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(id_MakeBeforeBreakIndicator);} return false; - case 9: type = 9; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 9; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(reject); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(reject); type=2;} - void select_id_Cause() { set(ignore); type=3;} - void select_id_E_RABs_ToBeReleased_List_RelReq() { set(ignore); type=4;} - void select_id_UE_ContextKeptIndicator() { set(ignore); type=5;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(reject); type=6;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(reject); type=7;} - void select_id_MakeBeforeBreakIndicator() { set(ignore); type=8;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else if(equal(reject)) { type = 6; return true; } - else if(equal(reject)) { type = 7; return true; } - else if(equal(ignore)) { type = 8; return true; } - else { type = 9; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(reject);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(reject);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(ignore);} return false; - case 9: type = 9; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - UE_X2AP_ID& select_id_SeNB_UE_X2AP_ID() { return set(2); } - UE_X2AP_ID const* get_id_SeNB_UE_X2AP_ID() const { return get(2); } - Cause& select_id_Cause() { return set(3); } - Cause const* get_id_Cause() const { return get(3); } - E_RABs_ToBeReleased_List_RelReq& select_id_E_RABs_ToBeReleased_List_RelReq() { return set(4); } - E_RABs_ToBeReleased_List_RelReq const* get_id_E_RABs_ToBeReleased_List_RelReq() const { return get(4); } - UE_ContextKeptIndicator& select_id_UE_ContextKeptIndicator() { return set(5); } - UE_ContextKeptIndicator const* get_id_UE_ContextKeptIndicator() const { return get(5); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(6); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(6); } - UE_X2AP_ID_Extension& select_id_SeNB_UE_X2AP_ID_Extension() { return set(7); } - UE_X2AP_ID_Extension const* get_id_SeNB_UE_X2AP_ID_Extension() const { return get(7); } - MakeBeforeBreakIndicator& select_id_MakeBeforeBreakIndicator() { return set(8); } - MakeBeforeBreakIndicator const* get_id_MakeBeforeBreakIndicator() const { return get(8); } - bool is_unknown() const { return type == 9; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - case 7: var.destroy(); break; - case 8: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - v.template operator()(7); - v.template operator()(8); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SeNB_UE_X2AP_ID()); return true; - case 3: v(select_id_Cause()); return true; - case 4: v(select_id_E_RABs_ToBeReleased_List_RelReq()); return true; - case 5: v(select_id_UE_ContextKeptIndicator()); return true; - case 6: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 7: v(select_id_SeNB_UE_X2AP_ID_Extension()); return true; - case 8: v(select_id_MakeBeforeBreakIndicator()); return true; - case 9: if(type != 9) {clear(); asn::base::set();} type = 9; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - case 7: v(var.as()); return true; - case 8: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(E_RABs_ToBeReleased_List_RelReq)]; - char dummy3[sizeof(MakeBeforeBreakIndicator)]; - char dummy4[sizeof(UE_ContextKeptIndicator)]; - char dummy5[sizeof(UE_X2AP_ID)]; - char dummy6[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 9; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(optional); type=2;} - void select_id_Cause() { set(optional); type=3;} - void select_id_E_RABs_ToBeReleased_List_RelReq() { set(optional); type=4;} - void select_id_UE_ContextKeptIndicator() { set(optional); type=5;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=6;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(optional); type=7;} - void select_id_MakeBeforeBreakIndicator() { set(optional); type=8;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else if(equal(optional)) { type = 7; return true; } - else if(equal(optional)) { type = 8; return true; } - else { type = 9; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(optional);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(optional);} return false; - case 9: type = 9; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SeNBReleaseRequest ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SeNBReleaseRequest-IEs}}, - ... -} -*/ - -struct SeNBReleaseRequest : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SeNBReleaseRequest";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SeNBReleaseRequired-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}, - ... -} -*/ - -struct SeNBReleaseRequired_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(id_SeNB_UE_X2AP_ID); type=2;} - void select_id_Cause() { set(id_Cause); type=3;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=4;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(id_SeNB_UE_X2AP_ID_Extension); type=5;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SeNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_Cause)) { type = 3; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 4; return true; } - else if(equal(id_SeNB_UE_X2AP_ID_Extension)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SeNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_SeNB_UE_X2AP_ID_Extension);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(reject); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(reject); type=2;} - void select_id_Cause() { set(ignore); type=3;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(reject); type=4;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(reject); type=5;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(reject)) { type = 4; return true; } - else if(equal(reject)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(reject);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(reject);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - UE_X2AP_ID& select_id_SeNB_UE_X2AP_ID() { return set(2); } - UE_X2AP_ID const* get_id_SeNB_UE_X2AP_ID() const { return get(2); } - Cause& select_id_Cause() { return set(3); } - Cause const* get_id_Cause() const { return get(3); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(4); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(4); } - UE_X2AP_ID_Extension& select_id_SeNB_UE_X2AP_ID_Extension() { return set(5); } - UE_X2AP_ID_Extension const* get_id_SeNB_UE_X2AP_ID_Extension() const { return get(5); } - bool is_unknown() const { return type == 6; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SeNB_UE_X2AP_ID()); return true; - case 3: v(select_id_Cause()); return true; - case 4: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 5: v(select_id_SeNB_UE_X2AP_ID_Extension()); return true; - case 6: if(type != 6) {clear(); asn::base::set();} type = 6; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(UE_X2AP_ID)]; - char dummy3[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_Cause() { set(mandatory); type=3;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=4;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(optional); type=5;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SeNBReleaseRequired ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SeNBReleaseRequired-IEs}}, - ... -} -*/ - -struct SeNBReleaseRequired : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SeNBReleaseRequired";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SecondaryRATDataUsageReport-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SgNB-UE-X2AP-ID CRITICALITY reject TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}| - { ID id-SecondaryRATUsageReportList CRITICALITY reject TYPE SecondaryRATUsageReportList PRESENCE mandatory}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}, - ... -} -*/ - -struct SecondaryRATDataUsageReport_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(id_SgNB_UE_X2AP_ID); type=2;} - void select_id_SecondaryRATUsageReportList() { set(id_SecondaryRATUsageReportList); type=3;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=4;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SgNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_SecondaryRATUsageReportList)) { type = 3; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SgNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_SecondaryRATUsageReportList);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(reject); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(reject); type=2;} - void select_id_SecondaryRATUsageReportList() { set(reject); type=3;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(reject); type=4;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(reject)) { type = 3; return true; } - else if(equal(reject)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(reject);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(reject);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - SgNB_UE_X2AP_ID& select_id_SgNB_UE_X2AP_ID() { return set(2); } - SgNB_UE_X2AP_ID const* get_id_SgNB_UE_X2AP_ID() const { return get(2); } - SecondaryRATUsageReportList& select_id_SecondaryRATUsageReportList() { return set(3); } - SecondaryRATUsageReportList const* get_id_SecondaryRATUsageReportList() const { return get(3); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(4); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(4); } - bool is_unknown() const { return type == 5; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SgNB_UE_X2AP_ID()); return true; - case 3: v(select_id_SecondaryRATUsageReportList()); return true; - case 4: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 5: if(type != 5) {clear(); asn::base::set();} type = 5; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(SecondaryRATUsageReportList)]; - char dummy2[sizeof(SgNB_UE_X2AP_ID)]; - char dummy3[sizeof(UE_X2AP_ID)]; - char dummy4[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_SecondaryRATUsageReportList() { set(mandatory); type=3;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=4;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SecondaryRATDataUsageReport ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SecondaryRATDataUsageReport-IEs}}, - ... -} -*/ - -struct SecondaryRATDataUsageReport : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SecondaryRATDataUsageReport";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SgNBActivityNotification-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SgNB-UE-X2AP-ID CRITICALITY reject TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}| - { ID id-UEContextLevelUserPlaneActivity CRITICALITY ignore TYPE UserPlaneTrafficActivityReport PRESENCE optional}| - { ID id-ERABActivityNotifyItemList CRITICALITY ignore TYPE ERABActivityNotifyItemList PRESENCE optional}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}, - ... -} -*/ - -struct SgNBActivityNotification_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(id_SgNB_UE_X2AP_ID); type=2;} - void select_id_UEContextLevelUserPlaneActivity() { set(id_UEContextLevelUserPlaneActivity); type=3;} - void select_id_ERABActivityNotifyItemList() { set(id_ERABActivityNotifyItemList); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=5;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SgNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_UEContextLevelUserPlaneActivity)) { type = 3; return true; } - else if(equal(id_ERABActivityNotifyItemList)) { type = 4; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SgNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_UEContextLevelUserPlaneActivity);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_ERABActivityNotifyItemList);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(reject); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(reject); type=2;} - void select_id_UEContextLevelUserPlaneActivity() { set(ignore); type=3;} - void select_id_ERABActivityNotifyItemList() { set(ignore); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(reject); type=5;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(reject)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(reject);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - SgNB_UE_X2AP_ID& select_id_SgNB_UE_X2AP_ID() { return set(2); } - SgNB_UE_X2AP_ID const* get_id_SgNB_UE_X2AP_ID() const { return get(2); } - UserPlaneTrafficActivityReport& select_id_UEContextLevelUserPlaneActivity() { return set(3); } - UserPlaneTrafficActivityReport const* get_id_UEContextLevelUserPlaneActivity() const { return get(3); } - ERABActivityNotifyItemList& select_id_ERABActivityNotifyItemList() { return set(4); } - ERABActivityNotifyItemList const* get_id_ERABActivityNotifyItemList() const { return get(4); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(5); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(5); } - bool is_unknown() const { return type == 6; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SgNB_UE_X2AP_ID()); return true; - case 3: v(select_id_UEContextLevelUserPlaneActivity()); return true; - case 4: v(select_id_ERABActivityNotifyItemList()); return true; - case 5: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 6: if(type != 6) {clear(); asn::base::set();} type = 6; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(ERABActivityNotifyItemList)]; - char dummy2[sizeof(SgNB_UE_X2AP_ID)]; - char dummy3[sizeof(UE_X2AP_ID)]; - char dummy4[sizeof(UE_X2AP_ID_Extension)]; - char dummy5[sizeof(UserPlaneTrafficActivityReport)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_UEContextLevelUserPlaneActivity() { set(optional); type=3;} - void select_id_ERABActivityNotifyItemList() { set(optional); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=5;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SgNBActivityNotification ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SgNBActivityNotification-IEs}}, - ... -} -*/ - -struct SgNBActivityNotification : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SgNBActivityNotification";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SgNBAdditionRequest-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-NRUESecurityCapabilities CRITICALITY reject TYPE NRUESecurityCapabilities PRESENCE mandatory}| - { ID id-SgNBSecurityKey CRITICALITY reject TYPE SgNBSecurityKey PRESENCE mandatory}| - { ID id-SgNBUEAggregateMaximumBitRate CRITICALITY reject TYPE UEAggregateMaximumBitRate PRESENCE mandatory}| - { ID id-SelectedPLMN CRITICALITY ignore TYPE PLMN-Identity PRESENCE optional}| - { ID id-HandoverRestrictionList CRITICALITY ignore TYPE HandoverRestrictionList PRESENCE optional}| - { ID id-E-RABs-ToBeAdded-SgNBAddReqList CRITICALITY reject TYPE E-RABs-ToBeAdded-SgNBAddReqList PRESENCE mandatory}| - { ID id-MeNBtoSgNBContainer CRITICALITY reject TYPE MeNBtoSgNBContainer PRESENCE mandatory}| - { ID id-SgNB-UE-X2AP-ID CRITICALITY reject TYPE SgNB-UE-X2AP-ID PRESENCE optional}| - { ID id-ExpectedUEBehaviour CRITICALITY ignore TYPE ExpectedUEBehaviour PRESENCE optional}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-RequestedSplitSRBs CRITICALITY reject TYPE SplitSRBs PRESENCE optional}| - { ID id-MeNBResourceCoordinationInformation CRITICALITY ignore TYPE MeNBResourceCoordinationInformation PRESENCE optional}| - { ID id-SGNB-Addition-Trigger-Ind CRITICALITY reject TYPE SGNB-Addition-Trigger-Ind PRESENCE optional}| - { ID id-SubscriberProfileIDforRFP CRITICALITY ignore TYPE SubscriberProfileIDforRFP PRESENCE optional}| - { ID id-MeNBCell-ID CRITICALITY reject TYPE ECGI PRESENCE mandatory}, - ... -} -*/ - -struct SgNBAdditionRequest_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 17; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_NRUESecurityCapabilities() { set(id_NRUESecurityCapabilities); type=2;} - void select_id_SgNBSecurityKey() { set(id_SgNBSecurityKey); type=3;} - void select_id_SgNBUEAggregateMaximumBitRate() { set(id_SgNBUEAggregateMaximumBitRate); type=4;} - void select_id_SelectedPLMN() { set(id_SelectedPLMN); type=5;} - void select_id_HandoverRestrictionList() { set(id_HandoverRestrictionList); type=6;} - void select_id_E_RABs_ToBeAdded_SgNBAddReqList() { set(id_E_RABs_ToBeAdded_SgNBAddReqList); type=7;} - void select_id_MeNBtoSgNBContainer() { set(id_MeNBtoSgNBContainer); type=8;} - void select_id_SgNB_UE_X2AP_ID() { set(id_SgNB_UE_X2AP_ID); type=9;} - void select_id_ExpectedUEBehaviour() { set(id_ExpectedUEBehaviour); type=10;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=11;} - void select_id_RequestedSplitSRBs() { set(id_RequestedSplitSRBs); type=12;} - void select_id_MeNBResourceCoordinationInformation() { set(id_MeNBResourceCoordinationInformation); type=13;} - void select_id_SGNB_Addition_Trigger_Ind() { set(id_SGNB_Addition_Trigger_Ind); type=14;} - void select_id_SubscriberProfileIDforRFP() { set(id_SubscriberProfileIDforRFP); type=15;} - void select_id_MeNBCell_ID() { set(id_MeNBCell_ID); type=16;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_NRUESecurityCapabilities)) { type = 2; return true; } - else if(equal(id_SgNBSecurityKey)) { type = 3; return true; } - else if(equal(id_SgNBUEAggregateMaximumBitRate)) { type = 4; return true; } - else if(equal(id_SelectedPLMN)) { type = 5; return true; } - else if(equal(id_HandoverRestrictionList)) { type = 6; return true; } - else if(equal(id_E_RABs_ToBeAdded_SgNBAddReqList)) { type = 7; return true; } - else if(equal(id_MeNBtoSgNBContainer)) { type = 8; return true; } - else if(equal(id_SgNB_UE_X2AP_ID)) { type = 9; return true; } - else if(equal(id_ExpectedUEBehaviour)) { type = 10; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 11; return true; } - else if(equal(id_RequestedSplitSRBs)) { type = 12; return true; } - else if(equal(id_MeNBResourceCoordinationInformation)) { type = 13; return true; } - else if(equal(id_SGNB_Addition_Trigger_Ind)) { type = 14; return true; } - else if(equal(id_SubscriberProfileIDforRFP)) { type = 15; return true; } - else if(equal(id_MeNBCell_ID)) { type = 16; return true; } - else { type = 17; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_NRUESecurityCapabilities);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_SgNBSecurityKey);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_SgNBUEAggregateMaximumBitRate);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_SelectedPLMN);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_HandoverRestrictionList);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(id_E_RABs_ToBeAdded_SgNBAddReqList);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(id_MeNBtoSgNBContainer);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(id_SgNB_UE_X2AP_ID);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(id_ExpectedUEBehaviour);} return false; - case 11: type = 11; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 12: type = 12; if(v(ref_nested())) { return equal(id_RequestedSplitSRBs);} return false; - case 13: type = 13; if(v(ref_nested())) { return equal(id_MeNBResourceCoordinationInformation);} return false; - case 14: type = 14; if(v(ref_nested())) { return equal(id_SGNB_Addition_Trigger_Ind);} return false; - case 15: type = 15; if(v(ref_nested())) { return equal(id_SubscriberProfileIDforRFP);} return false; - case 16: type = 16; if(v(ref_nested())) { return equal(id_MeNBCell_ID);} return false; - case 17: type = 17; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 17; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(reject); type=1;} - void select_id_NRUESecurityCapabilities() { set(reject); type=2;} - void select_id_SgNBSecurityKey() { set(reject); type=3;} - void select_id_SgNBUEAggregateMaximumBitRate() { set(reject); type=4;} - void select_id_SelectedPLMN() { set(ignore); type=5;} - void select_id_HandoverRestrictionList() { set(ignore); type=6;} - void select_id_E_RABs_ToBeAdded_SgNBAddReqList() { set(reject); type=7;} - void select_id_MeNBtoSgNBContainer() { set(reject); type=8;} - void select_id_SgNB_UE_X2AP_ID() { set(reject); type=9;} - void select_id_ExpectedUEBehaviour() { set(ignore); type=10;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(reject); type=11;} - void select_id_RequestedSplitSRBs() { set(reject); type=12;} - void select_id_MeNBResourceCoordinationInformation() { set(ignore); type=13;} - void select_id_SGNB_Addition_Trigger_Ind() { set(reject); type=14;} - void select_id_SubscriberProfileIDforRFP() { set(ignore); type=15;} - void select_id_MeNBCell_ID() { set(reject); type=16;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(reject)) { type = 3; return true; } - else if(equal(reject)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else if(equal(ignore)) { type = 6; return true; } - else if(equal(reject)) { type = 7; return true; } - else if(equal(reject)) { type = 8; return true; } - else if(equal(reject)) { type = 9; return true; } - else if(equal(ignore)) { type = 10; return true; } - else if(equal(reject)) { type = 11; return true; } - else if(equal(reject)) { type = 12; return true; } - else if(equal(ignore)) { type = 13; return true; } - else if(equal(reject)) { type = 14; return true; } - else if(equal(ignore)) { type = 15; return true; } - else if(equal(reject)) { type = 16; return true; } - else { type = 17; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(reject);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(reject);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(ignore);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(reject);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(reject);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(reject);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(ignore);} return false; - case 11: type = 11; if(v(ref_nested())) { return equal(reject);} return false; - case 12: type = 12; if(v(ref_nested())) { return equal(reject);} return false; - case 13: type = 13; if(v(ref_nested())) { return equal(ignore);} return false; - case 14: type = 14; if(v(ref_nested())) { return equal(reject);} return false; - case 15: type = 15; if(v(ref_nested())) { return equal(ignore);} return false; - case 16: type = 16; if(v(ref_nested())) { return equal(reject);} return false; - case 17: type = 17; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - NRUESecurityCapabilities& select_id_NRUESecurityCapabilities() { return set(2); } - NRUESecurityCapabilities const* get_id_NRUESecurityCapabilities() const { return get(2); } - SgNBSecurityKey& select_id_SgNBSecurityKey() { return set(3); } - SgNBSecurityKey const* get_id_SgNBSecurityKey() const { return get(3); } - UEAggregateMaximumBitRate& select_id_SgNBUEAggregateMaximumBitRate() { return set(4); } - UEAggregateMaximumBitRate const* get_id_SgNBUEAggregateMaximumBitRate() const { return get(4); } - PLMN_Identity& select_id_SelectedPLMN() { return set(5); } - PLMN_Identity const* get_id_SelectedPLMN() const { return get(5); } - HandoverRestrictionList& select_id_HandoverRestrictionList() { return set(6); } - HandoverRestrictionList const* get_id_HandoverRestrictionList() const { return get(6); } - E_RABs_ToBeAdded_SgNBAddReqList& select_id_E_RABs_ToBeAdded_SgNBAddReqList() { return set(7); } - E_RABs_ToBeAdded_SgNBAddReqList const* get_id_E_RABs_ToBeAdded_SgNBAddReqList() const { return get(7); } - MeNBtoSgNBContainer& select_id_MeNBtoSgNBContainer() { return set(8); } - MeNBtoSgNBContainer const* get_id_MeNBtoSgNBContainer() const { return get(8); } - SgNB_UE_X2AP_ID& select_id_SgNB_UE_X2AP_ID() { return set(9); } - SgNB_UE_X2AP_ID const* get_id_SgNB_UE_X2AP_ID() const { return get(9); } - ExpectedUEBehaviour& select_id_ExpectedUEBehaviour() { return set(10); } - ExpectedUEBehaviour const* get_id_ExpectedUEBehaviour() const { return get(10); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(11); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(11); } - SplitSRBs& select_id_RequestedSplitSRBs() { return set(12); } - SplitSRBs const* get_id_RequestedSplitSRBs() const { return get(12); } - MeNBResourceCoordinationInformation& select_id_MeNBResourceCoordinationInformation() { return set(13); } - MeNBResourceCoordinationInformation const* get_id_MeNBResourceCoordinationInformation() const { return get(13); } - SGNB_Addition_Trigger_Ind& select_id_SGNB_Addition_Trigger_Ind() { return set(14); } - SGNB_Addition_Trigger_Ind const* get_id_SGNB_Addition_Trigger_Ind() const { return get(14); } - SubscriberProfileIDforRFP& select_id_SubscriberProfileIDforRFP() { return set(15); } - SubscriberProfileIDforRFP const* get_id_SubscriberProfileIDforRFP() const { return get(15); } - ECGI& select_id_MeNBCell_ID() { return set(16); } - ECGI const* get_id_MeNBCell_ID() const { return get(16); } - bool is_unknown() const { return type == 17; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - case 7: var.destroy(); break; - case 8: var.destroy(); break; - case 9: var.destroy(); break; - case 10: var.destroy(); break; - case 11: var.destroy(); break; - case 12: var.destroy(); break; - case 13: var.destroy(); break; - case 14: var.destroy(); break; - case 15: var.destroy(); break; - case 16: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - v.template operator()(7); - v.template operator()(8); - v.template operator()(9); - v.template operator()(10); - v.template operator()(11); - v.template operator()(12); - v.template operator()(13); - v.template operator()(14); - v.template operator()(15); - v.template operator()(16); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_NRUESecurityCapabilities()); return true; - case 3: v(select_id_SgNBSecurityKey()); return true; - case 4: v(select_id_SgNBUEAggregateMaximumBitRate()); return true; - case 5: v(select_id_SelectedPLMN()); return true; - case 6: v(select_id_HandoverRestrictionList()); return true; - case 7: v(select_id_E_RABs_ToBeAdded_SgNBAddReqList()); return true; - case 8: v(select_id_MeNBtoSgNBContainer()); return true; - case 9: v(select_id_SgNB_UE_X2AP_ID()); return true; - case 10: v(select_id_ExpectedUEBehaviour()); return true; - case 11: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 12: v(select_id_RequestedSplitSRBs()); return true; - case 13: v(select_id_MeNBResourceCoordinationInformation()); return true; - case 14: v(select_id_SGNB_Addition_Trigger_Ind()); return true; - case 15: v(select_id_SubscriberProfileIDforRFP()); return true; - case 16: v(select_id_MeNBCell_ID()); return true; - case 17: if(type != 17) {clear(); asn::base::set();} type = 17; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - case 7: v(var.as()); return true; - case 8: v(var.as()); return true; - case 9: v(var.as()); return true; - case 10: v(var.as()); return true; - case 11: v(var.as()); return true; - case 12: v(var.as()); return true; - case 13: v(var.as()); return true; - case 14: v(var.as()); return true; - case 15: v(var.as()); return true; - case 16: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(ECGI)]; - char dummy2[sizeof(E_RABs_ToBeAdded_SgNBAddReqList)]; - char dummy3[sizeof(ExpectedUEBehaviour)]; - char dummy4[sizeof(HandoverRestrictionList)]; - char dummy5[sizeof(MeNBResourceCoordinationInformation)]; - char dummy6[sizeof(MeNBtoSgNBContainer)]; - char dummy7[sizeof(NRUESecurityCapabilities)]; - char dummy8[sizeof(PLMN_Identity)]; - char dummy9[sizeof(SGNB_Addition_Trigger_Ind)]; - char dummy10[sizeof(SgNBSecurityKey)]; - char dummy11[sizeof(SgNB_UE_X2AP_ID)]; - char dummy12[sizeof(SplitSRBs)]; - char dummy13[sizeof(SubscriberProfileIDforRFP)]; - char dummy14[sizeof(UEAggregateMaximumBitRate)]; - char dummy15[sizeof(UE_X2AP_ID)]; - char dummy16[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 17; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_NRUESecurityCapabilities() { set(mandatory); type=2;} - void select_id_SgNBSecurityKey() { set(mandatory); type=3;} - void select_id_SgNBUEAggregateMaximumBitRate() { set(mandatory); type=4;} - void select_id_SelectedPLMN() { set(optional); type=5;} - void select_id_HandoverRestrictionList() { set(optional); type=6;} - void select_id_E_RABs_ToBeAdded_SgNBAddReqList() { set(mandatory); type=7;} - void select_id_MeNBtoSgNBContainer() { set(mandatory); type=8;} - void select_id_SgNB_UE_X2AP_ID() { set(optional); type=9;} - void select_id_ExpectedUEBehaviour() { set(optional); type=10;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=11;} - void select_id_RequestedSplitSRBs() { set(optional); type=12;} - void select_id_MeNBResourceCoordinationInformation() { set(optional); type=13;} - void select_id_SGNB_Addition_Trigger_Ind() { set(optional); type=14;} - void select_id_SubscriberProfileIDforRFP() { set(optional); type=15;} - void select_id_MeNBCell_ID() { set(mandatory); type=16;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(mandatory)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else if(equal(mandatory)) { type = 7; return true; } - else if(equal(mandatory)) { type = 8; return true; } - else if(equal(optional)) { type = 9; return true; } - else if(equal(optional)) { type = 10; return true; } - else if(equal(optional)) { type = 11; return true; } - else if(equal(optional)) { type = 12; return true; } - else if(equal(optional)) { type = 13; return true; } - else if(equal(optional)) { type = 14; return true; } - else if(equal(optional)) { type = 15; return true; } - else if(equal(mandatory)) { type = 16; return true; } - else { type = 17; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(mandatory);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(mandatory);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(mandatory);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(optional);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(optional);} return false; - case 11: type = 11; if(v(ref_nested())) { return equal(optional);} return false; - case 12: type = 12; if(v(ref_nested())) { return equal(optional);} return false; - case 13: type = 13; if(v(ref_nested())) { return equal(optional);} return false; - case 14: type = 14; if(v(ref_nested())) { return equal(optional);} return false; - case 15: type = 15; if(v(ref_nested())) { return equal(optional);} return false; - case 16: type = 16; if(v(ref_nested())) { return equal(mandatory);} return false; - case 17: type = 17; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SgNBAdditionRequest ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SgNBAdditionRequest-IEs}}, - ... -} -*/ - -struct SgNBAdditionRequest : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SgNBAdditionRequest";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SgNBAdditionRequestAcknowledge-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SgNB-UE-X2AP-ID CRITICALITY reject TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}| - { ID id-E-RABs-Admitted-ToBeAdded-SgNBAddReqAckList CRITICALITY ignore TYPE E-RABs-Admitted-ToBeAdded-SgNBAddReqAckList PRESENCE mandatory}| - { ID id-E-RABs-NotAdmitted-List CRITICALITY ignore TYPE E-RAB-List PRESENCE optional}| - { ID id-SgNBtoMeNBContainer CRITICALITY reject TYPE SgNBtoMeNBContainer PRESENCE mandatory}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-AdmittedSplitSRBs CRITICALITY reject TYPE SplitSRBs PRESENCE optional}| - { ID id-SgNBResourceCoordinationInformation CRITICALITY ignore TYPE SgNBResourceCoordinationInformation PRESENCE optional}| - { ID id-RRCConfigIndication CRITICALITY reject TYPE RRC-Config-Ind PRESENCE optional}, - ... -} -*/ - -struct SgNBAdditionRequestAcknowledge_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 11; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(id_SgNB_UE_X2AP_ID); type=2;} - void select_id_E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList() { set(id_E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList); type=3;} - void select_id_E_RABs_NotAdmitted_List() { set(id_E_RABs_NotAdmitted_List); type=4;} - void select_id_SgNBtoMeNBContainer() { set(id_SgNBtoMeNBContainer); type=5;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=6;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=7;} - void select_id_AdmittedSplitSRBs() { set(id_AdmittedSplitSRBs); type=8;} - void select_id_SgNBResourceCoordinationInformation() { set(id_SgNBResourceCoordinationInformation); type=9;} - void select_id_RRCConfigIndication() { set(id_RRCConfigIndication); type=10;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SgNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList)) { type = 3; return true; } - else if(equal(id_E_RABs_NotAdmitted_List)) { type = 4; return true; } - else if(equal(id_SgNBtoMeNBContainer)) { type = 5; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 6; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 7; return true; } - else if(equal(id_AdmittedSplitSRBs)) { type = 8; return true; } - else if(equal(id_SgNBResourceCoordinationInformation)) { type = 9; return true; } - else if(equal(id_RRCConfigIndication)) { type = 10; return true; } - else { type = 11; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SgNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_E_RABs_NotAdmitted_List);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_SgNBtoMeNBContainer);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(id_AdmittedSplitSRBs);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(id_SgNBResourceCoordinationInformation);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(id_RRCConfigIndication);} return false; - case 11: type = 11; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 11; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(reject); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(reject); type=2;} - void select_id_E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList() { set(ignore); type=3;} - void select_id_E_RABs_NotAdmitted_List() { set(ignore); type=4;} - void select_id_SgNBtoMeNBContainer() { set(reject); type=5;} - void select_id_CriticalityDiagnostics() { set(ignore); type=6;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(reject); type=7;} - void select_id_AdmittedSplitSRBs() { set(reject); type=8;} - void select_id_SgNBResourceCoordinationInformation() { set(ignore); type=9;} - void select_id_RRCConfigIndication() { set(reject); type=10;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(reject)) { type = 5; return true; } - else if(equal(ignore)) { type = 6; return true; } - else if(equal(reject)) { type = 7; return true; } - else if(equal(reject)) { type = 8; return true; } - else if(equal(ignore)) { type = 9; return true; } - else if(equal(reject)) { type = 10; return true; } - else { type = 11; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(reject);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(ignore);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(reject);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(reject);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(ignore);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(reject);} return false; - case 11: type = 11; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - SgNB_UE_X2AP_ID& select_id_SgNB_UE_X2AP_ID() { return set(2); } - SgNB_UE_X2AP_ID const* get_id_SgNB_UE_X2AP_ID() const { return get(2); } - E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList& select_id_E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList() { return set(3); } - E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList const* get_id_E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList() const { return get(3); } - E_RAB_List& select_id_E_RABs_NotAdmitted_List() { return set(4); } - E_RAB_List const* get_id_E_RABs_NotAdmitted_List() const { return get(4); } - SgNBtoMeNBContainer& select_id_SgNBtoMeNBContainer() { return set(5); } - SgNBtoMeNBContainer const* get_id_SgNBtoMeNBContainer() const { return get(5); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(6); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(6); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(7); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(7); } - SplitSRBs& select_id_AdmittedSplitSRBs() { return set(8); } - SplitSRBs const* get_id_AdmittedSplitSRBs() const { return get(8); } - SgNBResourceCoordinationInformation& select_id_SgNBResourceCoordinationInformation() { return set(9); } - SgNBResourceCoordinationInformation const* get_id_SgNBResourceCoordinationInformation() const { return get(9); } - RRC_Config_Ind& select_id_RRCConfigIndication() { return set(10); } - RRC_Config_Ind const* get_id_RRCConfigIndication() const { return get(10); } - bool is_unknown() const { return type == 11; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - case 7: var.destroy(); break; - case 8: var.destroy(); break; - case 9: var.destroy(); break; - case 10: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - v.template operator()(7); - v.template operator()(8); - v.template operator()(9); - v.template operator()(10); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SgNB_UE_X2AP_ID()); return true; - case 3: v(select_id_E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList()); return true; - case 4: v(select_id_E_RABs_NotAdmitted_List()); return true; - case 5: v(select_id_SgNBtoMeNBContainer()); return true; - case 6: v(select_id_CriticalityDiagnostics()); return true; - case 7: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 8: v(select_id_AdmittedSplitSRBs()); return true; - case 9: v(select_id_SgNBResourceCoordinationInformation()); return true; - case 10: v(select_id_RRCConfigIndication()); return true; - case 11: if(type != 11) {clear(); asn::base::set();} type = 11; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - case 7: v(var.as()); return true; - case 8: v(var.as()); return true; - case 9: v(var.as()); return true; - case 10: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CriticalityDiagnostics)]; - char dummy2[sizeof(E_RAB_List)]; - char dummy3[sizeof(E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList)]; - char dummy4[sizeof(RRC_Config_Ind)]; - char dummy5[sizeof(SgNBResourceCoordinationInformation)]; - char dummy6[sizeof(SgNB_UE_X2AP_ID)]; - char dummy7[sizeof(SgNBtoMeNBContainer)]; - char dummy8[sizeof(SplitSRBs)]; - char dummy9[sizeof(UE_X2AP_ID)]; - char dummy10[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 11; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList() { set(mandatory); type=3;} - void select_id_E_RABs_NotAdmitted_List() { set(optional); type=4;} - void select_id_SgNBtoMeNBContainer() { set(mandatory); type=5;} - void select_id_CriticalityDiagnostics() { set(optional); type=6;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=7;} - void select_id_AdmittedSplitSRBs() { set(optional); type=8;} - void select_id_SgNBResourceCoordinationInformation() { set(optional); type=9;} - void select_id_RRCConfigIndication() { set(optional); type=10;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(mandatory)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else if(equal(optional)) { type = 7; return true; } - else if(equal(optional)) { type = 8; return true; } - else if(equal(optional)) { type = 9; return true; } - else if(equal(optional)) { type = 10; return true; } - else { type = 11; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(mandatory);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(optional);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(optional);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(optional);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(optional);} return false; - case 11: type = 11; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SgNBAdditionRequestAcknowledge ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SgNBAdditionRequestAcknowledge-IEs}}, - ... -} -*/ - -struct SgNBAdditionRequestAcknowledge : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SgNBAdditionRequestAcknowledge";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SgNBAdditionRequestReject-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SgNB-UE-X2AP-ID CRITICALITY reject TYPE SgNB-UE-X2AP-ID PRESENCE optional}| - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}, - ... -} -*/ - -struct SgNBAdditionRequestReject_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(id_SgNB_UE_X2AP_ID); type=2;} - void select_id_Cause() { set(id_Cause); type=3;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=5;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SgNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_Cause)) { type = 3; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 4; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SgNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(reject); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(reject); type=2;} - void select_id_Cause() { set(ignore); type=3;} - void select_id_CriticalityDiagnostics() { set(ignore); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(reject); type=5;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(reject)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(reject);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - SgNB_UE_X2AP_ID& select_id_SgNB_UE_X2AP_ID() { return set(2); } - SgNB_UE_X2AP_ID const* get_id_SgNB_UE_X2AP_ID() const { return get(2); } - Cause& select_id_Cause() { return set(3); } - Cause const* get_id_Cause() const { return get(3); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(4); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(4); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(5); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(5); } - bool is_unknown() const { return type == 6; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SgNB_UE_X2AP_ID()); return true; - case 3: v(select_id_Cause()); return true; - case 4: v(select_id_CriticalityDiagnostics()); return true; - case 5: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 6: if(type != 6) {clear(); asn::base::set();} type = 6; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(CriticalityDiagnostics)]; - char dummy3[sizeof(SgNB_UE_X2AP_ID)]; - char dummy4[sizeof(UE_X2AP_ID)]; - char dummy5[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(optional); type=2;} - void select_id_Cause() { set(mandatory); type=3;} - void select_id_CriticalityDiagnostics() { set(optional); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=5;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SgNBAdditionRequestReject ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SgNBAdditionRequestReject-IEs}}, - ... -} -*/ - -struct SgNBAdditionRequestReject : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SgNBAdditionRequestReject";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SgNBChangeConfirm-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SgNB-UE-X2AP-ID CRITICALITY ignore TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}| - { ID id-E-RABs-ToBeReleased-SgNBChaConfList CRITICALITY ignore TYPE E-RABs-ToBeReleased-SgNBChaConfList PRESENCE optional}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}, - ... -} -*/ - -struct SgNBChangeConfirm_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(id_SgNB_UE_X2AP_ID); type=2;} - void select_id_E_RABs_ToBeReleased_SgNBChaConfList() { set(id_E_RABs_ToBeReleased_SgNBChaConfList); type=3;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=5;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SgNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_E_RABs_ToBeReleased_SgNBChaConfList)) { type = 3; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 4; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SgNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_E_RABs_ToBeReleased_SgNBChaConfList);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(ignore); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(ignore); type=2;} - void select_id_E_RABs_ToBeReleased_SgNBChaConfList() { set(ignore); type=3;} - void select_id_CriticalityDiagnostics() { set(ignore); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(ignore); type=5;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - SgNB_UE_X2AP_ID& select_id_SgNB_UE_X2AP_ID() { return set(2); } - SgNB_UE_X2AP_ID const* get_id_SgNB_UE_X2AP_ID() const { return get(2); } - E_RABs_ToBeReleased_SgNBChaConfList& select_id_E_RABs_ToBeReleased_SgNBChaConfList() { return set(3); } - E_RABs_ToBeReleased_SgNBChaConfList const* get_id_E_RABs_ToBeReleased_SgNBChaConfList() const { return get(3); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(4); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(4); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(5); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(5); } - bool is_unknown() const { return type == 6; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SgNB_UE_X2AP_ID()); return true; - case 3: v(select_id_E_RABs_ToBeReleased_SgNBChaConfList()); return true; - case 4: v(select_id_CriticalityDiagnostics()); return true; - case 5: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 6: if(type != 6) {clear(); asn::base::set();} type = 6; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CriticalityDiagnostics)]; - char dummy2[sizeof(E_RABs_ToBeReleased_SgNBChaConfList)]; - char dummy3[sizeof(SgNB_UE_X2AP_ID)]; - char dummy4[sizeof(UE_X2AP_ID)]; - char dummy5[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_E_RABs_ToBeReleased_SgNBChaConfList() { set(optional); type=3;} - void select_id_CriticalityDiagnostics() { set(optional); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=5;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SgNBChangeConfirm ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SgNBChangeConfirm-IEs}}, - ... -} -*/ - -struct SgNBChangeConfirm : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SgNBChangeConfirm";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SgNBChangeRefuse-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SgNB-UE-X2AP-ID CRITICALITY ignore TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}| - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}, - ... -} -*/ - -struct SgNBChangeRefuse_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(id_SgNB_UE_X2AP_ID); type=2;} - void select_id_Cause() { set(id_Cause); type=3;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=5;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SgNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_Cause)) { type = 3; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 4; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SgNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(ignore); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(ignore); type=2;} - void select_id_Cause() { set(ignore); type=3;} - void select_id_CriticalityDiagnostics() { set(ignore); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(reject); type=5;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(reject)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(reject);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - SgNB_UE_X2AP_ID& select_id_SgNB_UE_X2AP_ID() { return set(2); } - SgNB_UE_X2AP_ID const* get_id_SgNB_UE_X2AP_ID() const { return get(2); } - Cause& select_id_Cause() { return set(3); } - Cause const* get_id_Cause() const { return get(3); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(4); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(4); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(5); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(5); } - bool is_unknown() const { return type == 6; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SgNB_UE_X2AP_ID()); return true; - case 3: v(select_id_Cause()); return true; - case 4: v(select_id_CriticalityDiagnostics()); return true; - case 5: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 6: if(type != 6) {clear(); asn::base::set();} type = 6; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(CriticalityDiagnostics)]; - char dummy3[sizeof(SgNB_UE_X2AP_ID)]; - char dummy4[sizeof(UE_X2AP_ID)]; - char dummy5[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_Cause() { set(mandatory); type=3;} - void select_id_CriticalityDiagnostics() { set(optional); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=5;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SgNBChangeRefuse ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SgNBChangeRefuse-IEs}}, - ... -} -*/ - -struct SgNBChangeRefuse : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SgNBChangeRefuse";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SgNBChangeRequired-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SgNB-UE-X2AP-ID CRITICALITY reject TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}| - { ID id-Target-SgNB-ID CRITICALITY reject TYPE GlobalGNB-ID PRESENCE mandatory}| - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| - { ID id-SgNBtoMeNBContainer CRITICALITY reject TYPE SgNBtoMeNBContainer PRESENCE optional}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}, - ... -} -*/ - -struct SgNBChangeRequired_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(id_SgNB_UE_X2AP_ID); type=2;} - void select_id_Target_SgNB_ID() { set(id_Target_SgNB_ID); type=3;} - void select_id_Cause() { set(id_Cause); type=4;} - void select_id_SgNBtoMeNBContainer() { set(id_SgNBtoMeNBContainer); type=5;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=6;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SgNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_Target_SgNB_ID)) { type = 3; return true; } - else if(equal(id_Cause)) { type = 4; return true; } - else if(equal(id_SgNBtoMeNBContainer)) { type = 5; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SgNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_Target_SgNB_ID);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_SgNBtoMeNBContainer);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(reject); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(reject); type=2;} - void select_id_Target_SgNB_ID() { set(reject); type=3;} - void select_id_Cause() { set(ignore); type=4;} - void select_id_SgNBtoMeNBContainer() { set(reject); type=5;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(reject); type=6;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(reject)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(reject)) { type = 5; return true; } - else if(equal(reject)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(reject);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(reject);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(reject);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - SgNB_UE_X2AP_ID& select_id_SgNB_UE_X2AP_ID() { return set(2); } - SgNB_UE_X2AP_ID const* get_id_SgNB_UE_X2AP_ID() const { return get(2); } - GlobalGNB_ID& select_id_Target_SgNB_ID() { return set(3); } - GlobalGNB_ID const* get_id_Target_SgNB_ID() const { return get(3); } - Cause& select_id_Cause() { return set(4); } - Cause const* get_id_Cause() const { return get(4); } - SgNBtoMeNBContainer& select_id_SgNBtoMeNBContainer() { return set(5); } - SgNBtoMeNBContainer const* get_id_SgNBtoMeNBContainer() const { return get(5); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(6); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(6); } - bool is_unknown() const { return type == 7; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SgNB_UE_X2AP_ID()); return true; - case 3: v(select_id_Target_SgNB_ID()); return true; - case 4: v(select_id_Cause()); return true; - case 5: v(select_id_SgNBtoMeNBContainer()); return true; - case 6: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 7: if(type != 7) {clear(); asn::base::set();} type = 7; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(GlobalGNB_ID)]; - char dummy3[sizeof(SgNB_UE_X2AP_ID)]; - char dummy4[sizeof(SgNBtoMeNBContainer)]; - char dummy5[sizeof(UE_X2AP_ID)]; - char dummy6[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_Target_SgNB_ID() { set(mandatory); type=3;} - void select_id_Cause() { set(mandatory); type=4;} - void select_id_SgNBtoMeNBContainer() { set(optional); type=5;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=6;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(mandatory)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(mandatory);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SgNBChangeRequired ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SgNBChangeRequired-IEs}}, - ... -} -*/ - -struct SgNBChangeRequired : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SgNBChangeRequired";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SgNBCounterCheckRequest-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SgNB-UE-X2AP-ID CRITICALITY reject TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}| - { ID id-E-RABs-SubjectToSgNBCounterCheck-List CRITICALITY ignore TYPE E-RABs-SubjectToSgNBCounterCheck-List PRESENCE mandatory}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}, - ... -} -*/ - -struct SgNBCounterCheckRequest_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(id_SgNB_UE_X2AP_ID); type=2;} - void select_id_E_RABs_SubjectToSgNBCounterCheck_List() { set(id_E_RABs_SubjectToSgNBCounterCheck_List); type=3;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=4;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SgNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_E_RABs_SubjectToSgNBCounterCheck_List)) { type = 3; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SgNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_E_RABs_SubjectToSgNBCounterCheck_List);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(reject); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(reject); type=2;} - void select_id_E_RABs_SubjectToSgNBCounterCheck_List() { set(ignore); type=3;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(ignore); type=4;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - SgNB_UE_X2AP_ID& select_id_SgNB_UE_X2AP_ID() { return set(2); } - SgNB_UE_X2AP_ID const* get_id_SgNB_UE_X2AP_ID() const { return get(2); } - E_RABs_SubjectToSgNBCounterCheck_List& select_id_E_RABs_SubjectToSgNBCounterCheck_List() { return set(3); } - E_RABs_SubjectToSgNBCounterCheck_List const* get_id_E_RABs_SubjectToSgNBCounterCheck_List() const { return get(3); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(4); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(4); } - bool is_unknown() const { return type == 5; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SgNB_UE_X2AP_ID()); return true; - case 3: v(select_id_E_RABs_SubjectToSgNBCounterCheck_List()); return true; - case 4: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 5: if(type != 5) {clear(); asn::base::set();} type = 5; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_SubjectToSgNBCounterCheck_List)]; - char dummy2[sizeof(SgNB_UE_X2AP_ID)]; - char dummy3[sizeof(UE_X2AP_ID)]; - char dummy4[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_E_RABs_SubjectToSgNBCounterCheck_List() { set(mandatory); type=3;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=4;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SgNBCounterCheckRequest ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SgNBCounterCheckRequest-IEs}}, - ... -} -*/ - -struct SgNBCounterCheckRequest : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SgNBCounterCheckRequest";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SgNBModificationConfirm-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SgNB-UE-X2AP-ID CRITICALITY ignore TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}| - { ID id-E-RABs-AdmittedToBeModified-SgNBModConfList CRITICALITY ignore TYPE E-RABs-AdmittedToBeModified-SgNBModConfList PRESENCE optional}| - { ID id-MeNBtoSgNBContainer CRITICALITY ignore TYPE MeNBtoSgNBContainer PRESENCE optional}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-MeNBResourceCoordinationInformation CRITICALITY ignore TYPE MeNBResourceCoordinationInformation PRESENCE optional}, - ... -} -*/ - -struct SgNBModificationConfirm_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 8; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(id_SgNB_UE_X2AP_ID); type=2;} - void select_id_E_RABs_AdmittedToBeModified_SgNBModConfList() { set(id_E_RABs_AdmittedToBeModified_SgNBModConfList); type=3;} - void select_id_MeNBtoSgNBContainer() { set(id_MeNBtoSgNBContainer); type=4;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=5;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=6;} - void select_id_MeNBResourceCoordinationInformation() { set(id_MeNBResourceCoordinationInformation); type=7;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SgNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_E_RABs_AdmittedToBeModified_SgNBModConfList)) { type = 3; return true; } - else if(equal(id_MeNBtoSgNBContainer)) { type = 4; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 5; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 6; return true; } - else if(equal(id_MeNBResourceCoordinationInformation)) { type = 7; return true; } - else { type = 8; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SgNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_E_RABs_AdmittedToBeModified_SgNBModConfList);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_MeNBtoSgNBContainer);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(id_MeNBResourceCoordinationInformation);} return false; - case 8: type = 8; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 8; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(ignore); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(ignore); type=2;} - void select_id_E_RABs_AdmittedToBeModified_SgNBModConfList() { set(ignore); type=3;} - void select_id_MeNBtoSgNBContainer() { set(ignore); type=4;} - void select_id_CriticalityDiagnostics() { set(ignore); type=5;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(ignore); type=6;} - void select_id_MeNBResourceCoordinationInformation() { set(ignore); type=7;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else if(equal(ignore)) { type = 6; return true; } - else if(equal(ignore)) { type = 7; return true; } - else { type = 8; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(ignore);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(ignore);} return false; - case 8: type = 8; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - SgNB_UE_X2AP_ID& select_id_SgNB_UE_X2AP_ID() { return set(2); } - SgNB_UE_X2AP_ID const* get_id_SgNB_UE_X2AP_ID() const { return get(2); } - E_RABs_AdmittedToBeModified_SgNBModConfList& select_id_E_RABs_AdmittedToBeModified_SgNBModConfList() { return set(3); } - E_RABs_AdmittedToBeModified_SgNBModConfList const* get_id_E_RABs_AdmittedToBeModified_SgNBModConfList() const { return get(3); } - MeNBtoSgNBContainer& select_id_MeNBtoSgNBContainer() { return set(4); } - MeNBtoSgNBContainer const* get_id_MeNBtoSgNBContainer() const { return get(4); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(5); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(5); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(6); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(6); } - MeNBResourceCoordinationInformation& select_id_MeNBResourceCoordinationInformation() { return set(7); } - MeNBResourceCoordinationInformation const* get_id_MeNBResourceCoordinationInformation() const { return get(7); } - bool is_unknown() const { return type == 8; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - case 7: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - v.template operator()(7); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SgNB_UE_X2AP_ID()); return true; - case 3: v(select_id_E_RABs_AdmittedToBeModified_SgNBModConfList()); return true; - case 4: v(select_id_MeNBtoSgNBContainer()); return true; - case 5: v(select_id_CriticalityDiagnostics()); return true; - case 6: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 7: v(select_id_MeNBResourceCoordinationInformation()); return true; - case 8: if(type != 8) {clear(); asn::base::set();} type = 8; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - case 7: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CriticalityDiagnostics)]; - char dummy2[sizeof(E_RABs_AdmittedToBeModified_SgNBModConfList)]; - char dummy3[sizeof(MeNBResourceCoordinationInformation)]; - char dummy4[sizeof(MeNBtoSgNBContainer)]; - char dummy5[sizeof(SgNB_UE_X2AP_ID)]; - char dummy6[sizeof(UE_X2AP_ID)]; - char dummy7[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 8; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_E_RABs_AdmittedToBeModified_SgNBModConfList() { set(optional); type=3;} - void select_id_MeNBtoSgNBContainer() { set(optional); type=4;} - void select_id_CriticalityDiagnostics() { set(optional); type=5;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=6;} - void select_id_MeNBResourceCoordinationInformation() { set(optional); type=7;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else if(equal(optional)) { type = 7; return true; } - else { type = 8; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(optional);} return false; - case 8: type = 8; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SgNBModificationConfirm ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SgNBModificationConfirm-IEs}}, - ... -} -*/ - -struct SgNBModificationConfirm : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SgNBModificationConfirm";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SgNBModificationRefuse-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SgNB-UE-X2AP-ID CRITICALITY ignore TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}| - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| - { ID id-MeNBtoSgNBContainer CRITICALITY ignore TYPE MeNBtoSgNBContainer PRESENCE optional}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}, - ... -} -*/ - -struct SgNBModificationRefuse_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(id_SgNB_UE_X2AP_ID); type=2;} - void select_id_Cause() { set(id_Cause); type=3;} - void select_id_MeNBtoSgNBContainer() { set(id_MeNBtoSgNBContainer); type=4;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=5;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=6;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SgNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_Cause)) { type = 3; return true; } - else if(equal(id_MeNBtoSgNBContainer)) { type = 4; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 5; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SgNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_MeNBtoSgNBContainer);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(ignore); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(ignore); type=2;} - void select_id_Cause() { set(ignore); type=3;} - void select_id_MeNBtoSgNBContainer() { set(ignore); type=4;} - void select_id_CriticalityDiagnostics() { set(ignore); type=5;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(ignore); type=6;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else if(equal(ignore)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(ignore);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - SgNB_UE_X2AP_ID& select_id_SgNB_UE_X2AP_ID() { return set(2); } - SgNB_UE_X2AP_ID const* get_id_SgNB_UE_X2AP_ID() const { return get(2); } - Cause& select_id_Cause() { return set(3); } - Cause const* get_id_Cause() const { return get(3); } - MeNBtoSgNBContainer& select_id_MeNBtoSgNBContainer() { return set(4); } - MeNBtoSgNBContainer const* get_id_MeNBtoSgNBContainer() const { return get(4); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(5); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(5); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(6); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(6); } - bool is_unknown() const { return type == 7; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SgNB_UE_X2AP_ID()); return true; - case 3: v(select_id_Cause()); return true; - case 4: v(select_id_MeNBtoSgNBContainer()); return true; - case 5: v(select_id_CriticalityDiagnostics()); return true; - case 6: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 7: if(type != 7) {clear(); asn::base::set();} type = 7; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(CriticalityDiagnostics)]; - char dummy3[sizeof(MeNBtoSgNBContainer)]; - char dummy4[sizeof(SgNB_UE_X2AP_ID)]; - char dummy5[sizeof(UE_X2AP_ID)]; - char dummy6[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_Cause() { set(mandatory); type=3;} - void select_id_MeNBtoSgNBContainer() { set(optional); type=4;} - void select_id_CriticalityDiagnostics() { set(optional); type=5;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=6;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SgNBModificationRefuse ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SgNBModificationRefuse-IEs}}, - ... -} -*/ - -struct SgNBModificationRefuse : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SgNBModificationRefuse";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -UE-ContextInformationSgNBModReqExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-SubscriberProfileIDforRFP CRITICALITY ignore EXTENSION SubscriberProfileIDforRFP PRESENCE optional}, - ... -} -*/ - -struct UE_ContextInformationSgNBModReqExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_SubscriberProfileIDforRFP() { set(id_SubscriberProfileIDforRFP); type=1;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_SubscriberProfileIDforRFP)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_SubscriberProfileIDforRFP);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_SubscriberProfileIDforRFP() { set(ignore); type=1;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - SubscriberProfileIDforRFP& select_id_SubscriberProfileIDforRFP() { return set(1); } - SubscriberProfileIDforRFP const* get_id_SubscriberProfileIDforRFP() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_SubscriberProfileIDforRFP()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(SubscriberProfileIDforRFP)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_SubscriberProfileIDforRFP() { set(optional); type=1;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -UE-ContextInformation-SgNBModReq ::= SEQUENCE { - nRUE-SecurityCapabilities NRUESecurityCapabilities OPTIONAL, - sgNB-SecurityKey SgNBSecurityKey OPTIONAL, - sgNBUEAggregateMaximumBitRate UEAggregateMaximumBitRate OPTIONAL, - e-RABs-ToBeAdded E-RABs-ToBeAdded-SgNBModReq-List OPTIONAL, - e-RABs-ToBeModified E-RABs-ToBeModified-SgNBModReq-List OPTIONAL, - e-RABs-ToBeReleased E-RABs-ToBeReleased-SgNBModReq-List OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {UE-ContextInformationSgNBModReqExtIEs} } OPTIONAL, - ... -} -*/ - -struct UE_ContextInformation_SgNBModReq : asn::sequence<7, 0, true, 7> -{ - static constexpr const char* name() {return "UE-ContextInformation-SgNBModReq";} - using parent_t = asn::sequence<7, 0, true, 7>; - struct nRUE_SecurityCapabilities_t : NRUESecurityCapabilities - { - static constexpr const char* name() {return "nRUE_SecurityCapabilities_t";} - using parent_t = NRUESecurityCapabilities; - static constexpr bool optional = true; - - }; - nRUE_SecurityCapabilities_t& set_nRUE_SecurityCapabilities() { nRUE_SecurityCapabilities.setpresent(true); return nRUE_SecurityCapabilities;} - nRUE_SecurityCapabilities_t const* get_nRUE_SecurityCapabilities() const {return nRUE_SecurityCapabilities.is_valid() ? &nRUE_SecurityCapabilities : nullptr;} - struct sgNB_SecurityKey_t : SgNBSecurityKey - { - static constexpr const char* name() {return "sgNB_SecurityKey_t";} - using parent_t = SgNBSecurityKey; - static constexpr bool optional = true; - - }; - sgNB_SecurityKey_t& set_sgNB_SecurityKey() { sgNB_SecurityKey.setpresent(true); return sgNB_SecurityKey;} - sgNB_SecurityKey_t const* get_sgNB_SecurityKey() const {return sgNB_SecurityKey.is_valid() ? &sgNB_SecurityKey : nullptr;} - struct sgNBUEAggregateMaximumBitRate_t : UEAggregateMaximumBitRate - { - static constexpr const char* name() {return "sgNBUEAggregateMaximumBitRate_t";} - using parent_t = UEAggregateMaximumBitRate; - static constexpr bool optional = true; - - }; - sgNBUEAggregateMaximumBitRate_t& set_sgNBUEAggregateMaximumBitRate() { sgNBUEAggregateMaximumBitRate.setpresent(true); return sgNBUEAggregateMaximumBitRate;} - sgNBUEAggregateMaximumBitRate_t const* get_sgNBUEAggregateMaximumBitRate() const {return sgNBUEAggregateMaximumBitRate.is_valid() ? &sgNBUEAggregateMaximumBitRate : nullptr;} - struct e_RABs_ToBeAdded_t : E_RABs_ToBeAdded_SgNBModReq_List - { - static constexpr const char* name() {return "e_RABs_ToBeAdded_t";} - using parent_t = E_RABs_ToBeAdded_SgNBModReq_List; - static constexpr bool optional = true; - - }; - e_RABs_ToBeAdded_t& set_e_RABs_ToBeAdded() { e_RABs_ToBeAdded.setpresent(true); return e_RABs_ToBeAdded;} - e_RABs_ToBeAdded_t const* get_e_RABs_ToBeAdded() const {return e_RABs_ToBeAdded.is_valid() ? &e_RABs_ToBeAdded : nullptr;} - struct e_RABs_ToBeModified_t : E_RABs_ToBeModified_SgNBModReq_List - { - static constexpr const char* name() {return "e_RABs_ToBeModified_t";} - using parent_t = E_RABs_ToBeModified_SgNBModReq_List; - static constexpr bool optional = true; - - }; - e_RABs_ToBeModified_t& set_e_RABs_ToBeModified() { e_RABs_ToBeModified.setpresent(true); return e_RABs_ToBeModified;} - e_RABs_ToBeModified_t const* get_e_RABs_ToBeModified() const {return e_RABs_ToBeModified.is_valid() ? &e_RABs_ToBeModified : nullptr;} - struct e_RABs_ToBeReleased_t : E_RABs_ToBeReleased_SgNBModReq_List - { - static constexpr const char* name() {return "e_RABs_ToBeReleased_t";} - using parent_t = E_RABs_ToBeReleased_SgNBModReq_List; - static constexpr bool optional = true; - - }; - e_RABs_ToBeReleased_t& set_e_RABs_ToBeReleased() { e_RABs_ToBeReleased.setpresent(true); return e_RABs_ToBeReleased;} - e_RABs_ToBeReleased_t const* get_e_RABs_ToBeReleased() const {return e_RABs_ToBeReleased.is_valid() ? &e_RABs_ToBeReleased : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(nRUE_SecurityCapabilities); - v(sgNB_SecurityKey); - v(sgNBUEAggregateMaximumBitRate); - v(e_RABs_ToBeAdded); - v(e_RABs_ToBeModified); - v(e_RABs_ToBeReleased); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(nRUE_SecurityCapabilities); - v(sgNB_SecurityKey); - v(sgNBUEAggregateMaximumBitRate); - v(e_RABs_ToBeAdded); - v(e_RABs_ToBeModified); - v(e_RABs_ToBeReleased); - v(iE_Extensions); - - }; - void clear() - { - nRUE_SecurityCapabilities.clear(); - sgNB_SecurityKey.clear(); - sgNBUEAggregateMaximumBitRate.clear(); - e_RABs_ToBeAdded.clear(); - e_RABs_ToBeModified.clear(); - e_RABs_ToBeReleased.clear(); - iE_Extensions.clear(); - - }; - private: - nRUE_SecurityCapabilities_t nRUE_SecurityCapabilities; - sgNB_SecurityKey_t sgNB_SecurityKey; - sgNBUEAggregateMaximumBitRate_t sgNBUEAggregateMaximumBitRate; - e_RABs_ToBeAdded_t e_RABs_ToBeAdded; - e_RABs_ToBeModified_t e_RABs_ToBeModified; - e_RABs_ToBeReleased_t e_RABs_ToBeReleased; - iE_Extensions_t iE_Extensions; - -}; -/* -SgNBModificationRequest-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SgNB-UE-X2AP-ID CRITICALITY reject TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}| - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| - { ID id-SelectedPLMN CRITICALITY ignore TYPE PLMN-Identity PRESENCE optional}| - { ID id-HandoverRestrictionList CRITICALITY ignore TYPE HandoverRestrictionList PRESENCE optional}| - { ID id-SCGConfigurationQuery CRITICALITY ignore TYPE SCGConfigurationQuery PRESENCE optional}| - { ID id-UE-ContextInformation-SgNBModReq CRITICALITY reject TYPE UE-ContextInformation-SgNBModReq PRESENCE optional}| - { ID id-MeNBtoSgNBContainer CRITICALITY reject TYPE MeNBtoSgNBContainer PRESENCE optional}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-MeNBResourceCoordinationInformation CRITICALITY ignore TYPE MeNBResourceCoordinationInformation PRESENCE optional}| - { ID id-RequestedSplitSRBs CRITICALITY ignore TYPE SplitSRBs PRESENCE optional}| - { ID id-RequestedSplitSRBsrelease CRITICALITY ignore TYPE SplitSRBs PRESENCE optional}, - ... -} -*/ - -struct SgNBModificationRequest_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 13; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(id_SgNB_UE_X2AP_ID); type=2;} - void select_id_Cause() { set(id_Cause); type=3;} - void select_id_SelectedPLMN() { set(id_SelectedPLMN); type=4;} - void select_id_HandoverRestrictionList() { set(id_HandoverRestrictionList); type=5;} - void select_id_SCGConfigurationQuery() { set(id_SCGConfigurationQuery); type=6;} - void select_id_UE_ContextInformation_SgNBModReq() { set(id_UE_ContextInformation_SgNBModReq); type=7;} - void select_id_MeNBtoSgNBContainer() { set(id_MeNBtoSgNBContainer); type=8;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=9;} - void select_id_MeNBResourceCoordinationInformation() { set(id_MeNBResourceCoordinationInformation); type=10;} - void select_id_RequestedSplitSRBs() { set(id_RequestedSplitSRBs); type=11;} - void select_id_RequestedSplitSRBsrelease() { set(id_RequestedSplitSRBsrelease); type=12;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SgNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_Cause)) { type = 3; return true; } - else if(equal(id_SelectedPLMN)) { type = 4; return true; } - else if(equal(id_HandoverRestrictionList)) { type = 5; return true; } - else if(equal(id_SCGConfigurationQuery)) { type = 6; return true; } - else if(equal(id_UE_ContextInformation_SgNBModReq)) { type = 7; return true; } - else if(equal(id_MeNBtoSgNBContainer)) { type = 8; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 9; return true; } - else if(equal(id_MeNBResourceCoordinationInformation)) { type = 10; return true; } - else if(equal(id_RequestedSplitSRBs)) { type = 11; return true; } - else if(equal(id_RequestedSplitSRBsrelease)) { type = 12; return true; } - else { type = 13; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SgNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_SelectedPLMN);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_HandoverRestrictionList);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_SCGConfigurationQuery);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(id_UE_ContextInformation_SgNBModReq);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(id_MeNBtoSgNBContainer);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(id_MeNBResourceCoordinationInformation);} return false; - case 11: type = 11; if(v(ref_nested())) { return equal(id_RequestedSplitSRBs);} return false; - case 12: type = 12; if(v(ref_nested())) { return equal(id_RequestedSplitSRBsrelease);} return false; - case 13: type = 13; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 13; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(reject); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(reject); type=2;} - void select_id_Cause() { set(ignore); type=3;} - void select_id_SelectedPLMN() { set(ignore); type=4;} - void select_id_HandoverRestrictionList() { set(ignore); type=5;} - void select_id_SCGConfigurationQuery() { set(ignore); type=6;} - void select_id_UE_ContextInformation_SgNBModReq() { set(reject); type=7;} - void select_id_MeNBtoSgNBContainer() { set(reject); type=8;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(reject); type=9;} - void select_id_MeNBResourceCoordinationInformation() { set(ignore); type=10;} - void select_id_RequestedSplitSRBs() { set(ignore); type=11;} - void select_id_RequestedSplitSRBsrelease() { set(ignore); type=12;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else if(equal(ignore)) { type = 6; return true; } - else if(equal(reject)) { type = 7; return true; } - else if(equal(reject)) { type = 8; return true; } - else if(equal(reject)) { type = 9; return true; } - else if(equal(ignore)) { type = 10; return true; } - else if(equal(ignore)) { type = 11; return true; } - else if(equal(ignore)) { type = 12; return true; } - else { type = 13; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(ignore);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(reject);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(reject);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(reject);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(ignore);} return false; - case 11: type = 11; if(v(ref_nested())) { return equal(ignore);} return false; - case 12: type = 12; if(v(ref_nested())) { return equal(ignore);} return false; - case 13: type = 13; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - SgNB_UE_X2AP_ID& select_id_SgNB_UE_X2AP_ID() { return set(2); } - SgNB_UE_X2AP_ID const* get_id_SgNB_UE_X2AP_ID() const { return get(2); } - Cause& select_id_Cause() { return set(3); } - Cause const* get_id_Cause() const { return get(3); } - PLMN_Identity& select_id_SelectedPLMN() { return set(4); } - PLMN_Identity const* get_id_SelectedPLMN() const { return get(4); } - HandoverRestrictionList& select_id_HandoverRestrictionList() { return set(5); } - HandoverRestrictionList const* get_id_HandoverRestrictionList() const { return get(5); } - SCGConfigurationQuery& select_id_SCGConfigurationQuery() { return set(6); } - SCGConfigurationQuery const* get_id_SCGConfigurationQuery() const { return get(6); } - UE_ContextInformation_SgNBModReq& select_id_UE_ContextInformation_SgNBModReq() { return set(7); } - UE_ContextInformation_SgNBModReq const* get_id_UE_ContextInformation_SgNBModReq() const { return get(7); } - MeNBtoSgNBContainer& select_id_MeNBtoSgNBContainer() { return set(8); } - MeNBtoSgNBContainer const* get_id_MeNBtoSgNBContainer() const { return get(8); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(9); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(9); } - MeNBResourceCoordinationInformation& select_id_MeNBResourceCoordinationInformation() { return set(10); } - MeNBResourceCoordinationInformation const* get_id_MeNBResourceCoordinationInformation() const { return get(10); } - SplitSRBs& select_id_RequestedSplitSRBs() { return set(11); } - SplitSRBs const* get_id_RequestedSplitSRBs() const { return get(11); } - SplitSRBs& select_id_RequestedSplitSRBsrelease() { return set(12); } - SplitSRBs const* get_id_RequestedSplitSRBsrelease() const { return get(12); } - bool is_unknown() const { return type == 13; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - case 7: var.destroy(); break; - case 8: var.destroy(); break; - case 9: var.destroy(); break; - case 10: var.destroy(); break; - case 11: var.destroy(); break; - case 12: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - v.template operator()(7); - v.template operator()(8); - v.template operator()(9); - v.template operator()(10); - v.template operator()(11); - v.template operator()(12); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SgNB_UE_X2AP_ID()); return true; - case 3: v(select_id_Cause()); return true; - case 4: v(select_id_SelectedPLMN()); return true; - case 5: v(select_id_HandoverRestrictionList()); return true; - case 6: v(select_id_SCGConfigurationQuery()); return true; - case 7: v(select_id_UE_ContextInformation_SgNBModReq()); return true; - case 8: v(select_id_MeNBtoSgNBContainer()); return true; - case 9: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 10: v(select_id_MeNBResourceCoordinationInformation()); return true; - case 11: v(select_id_RequestedSplitSRBs()); return true; - case 12: v(select_id_RequestedSplitSRBsrelease()); return true; - case 13: if(type != 13) {clear(); asn::base::set();} type = 13; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - case 7: v(var.as()); return true; - case 8: v(var.as()); return true; - case 9: v(var.as()); return true; - case 10: v(var.as()); return true; - case 11: v(var.as()); return true; - case 12: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(HandoverRestrictionList)]; - char dummy3[sizeof(MeNBResourceCoordinationInformation)]; - char dummy4[sizeof(MeNBtoSgNBContainer)]; - char dummy5[sizeof(PLMN_Identity)]; - char dummy6[sizeof(SCGConfigurationQuery)]; - char dummy7[sizeof(SgNB_UE_X2AP_ID)]; - char dummy8[sizeof(SplitSRBs)]; - char dummy9[sizeof(UE_ContextInformation_SgNBModReq)]; - char dummy10[sizeof(UE_X2AP_ID)]; - char dummy11[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 13; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_Cause() { set(mandatory); type=3;} - void select_id_SelectedPLMN() { set(optional); type=4;} - void select_id_HandoverRestrictionList() { set(optional); type=5;} - void select_id_SCGConfigurationQuery() { set(optional); type=6;} - void select_id_UE_ContextInformation_SgNBModReq() { set(optional); type=7;} - void select_id_MeNBtoSgNBContainer() { set(optional); type=8;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=9;} - void select_id_MeNBResourceCoordinationInformation() { set(optional); type=10;} - void select_id_RequestedSplitSRBs() { set(optional); type=11;} - void select_id_RequestedSplitSRBsrelease() { set(optional); type=12;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else if(equal(optional)) { type = 7; return true; } - else if(equal(optional)) { type = 8; return true; } - else if(equal(optional)) { type = 9; return true; } - else if(equal(optional)) { type = 10; return true; } - else if(equal(optional)) { type = 11; return true; } - else if(equal(optional)) { type = 12; return true; } - else { type = 13; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(optional);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(optional);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(optional);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(optional);} return false; - case 11: type = 11; if(v(ref_nested())) { return equal(optional);} return false; - case 12: type = 12; if(v(ref_nested())) { return equal(optional);} return false; - case 13: type = 13; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SgNBModificationRequest ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ SgNBModificationRequest-IEs}}, - ... -} -*/ - -struct SgNBModificationRequest : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SgNBModificationRequest";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SgNBModificationRequestAcknowledge-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SgNB-UE-X2AP-ID CRITICALITY ignore TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}| - { ID id-E-RABs-Admitted-ToBeAdded-SgNBModAckList CRITICALITY ignore TYPE E-RABs-Admitted-ToBeAdded-SgNBModAckList PRESENCE optional}| - { ID id-E-RABs-Admitted-ToBeModified-SgNBModAckList CRITICALITY ignore TYPE E-RABs-Admitted-ToBeModified-SgNBModAckList PRESENCE optional}| - { ID id-E-RABs-Admitted-ToBeReleased-SgNBModAckList CRITICALITY ignore TYPE E-RABs-Admitted-ToBeReleased-SgNBModAckList PRESENCE optional}| - { ID id-E-RABs-NotAdmitted-List CRITICALITY ignore TYPE E-RAB-List PRESENCE optional}| - { ID id-SgNBtoMeNBContainer CRITICALITY ignore TYPE SgNBtoMeNBContainer PRESENCE optional}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-SgNBResourceCoordinationInformation CRITICALITY ignore TYPE SgNBResourceCoordinationInformation PRESENCE optional}| - { ID id-AdmittedSplitSRBs CRITICALITY ignore TYPE SplitSRBs PRESENCE optional}| - { ID id-AdmittedSplitSRBsrelease CRITICALITY ignore TYPE SplitSRBs PRESENCE optional}| - { ID id-RRCConfigIndication CRITICALITY reject TYPE RRC-Config-Ind PRESENCE optional}, - ... -} -*/ - -struct SgNBModificationRequestAcknowledge_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 14; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(id_SgNB_UE_X2AP_ID); type=2;} - void select_id_E_RABs_Admitted_ToBeAdded_SgNBModAckList() { set(id_E_RABs_Admitted_ToBeAdded_SgNBModAckList); type=3;} - void select_id_E_RABs_Admitted_ToBeModified_SgNBModAckList() { set(id_E_RABs_Admitted_ToBeModified_SgNBModAckList); type=4;} - void select_id_E_RABs_Admitted_ToBeReleased_SgNBModAckList() { set(id_E_RABs_Admitted_ToBeReleased_SgNBModAckList); type=5;} - void select_id_E_RABs_NotAdmitted_List() { set(id_E_RABs_NotAdmitted_List); type=6;} - void select_id_SgNBtoMeNBContainer() { set(id_SgNBtoMeNBContainer); type=7;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=8;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=9;} - void select_id_SgNBResourceCoordinationInformation() { set(id_SgNBResourceCoordinationInformation); type=10;} - void select_id_AdmittedSplitSRBs() { set(id_AdmittedSplitSRBs); type=11;} - void select_id_AdmittedSplitSRBsrelease() { set(id_AdmittedSplitSRBsrelease); type=12;} - void select_id_RRCConfigIndication() { set(id_RRCConfigIndication); type=13;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SgNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_E_RABs_Admitted_ToBeAdded_SgNBModAckList)) { type = 3; return true; } - else if(equal(id_E_RABs_Admitted_ToBeModified_SgNBModAckList)) { type = 4; return true; } - else if(equal(id_E_RABs_Admitted_ToBeReleased_SgNBModAckList)) { type = 5; return true; } - else if(equal(id_E_RABs_NotAdmitted_List)) { type = 6; return true; } - else if(equal(id_SgNBtoMeNBContainer)) { type = 7; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 8; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 9; return true; } - else if(equal(id_SgNBResourceCoordinationInformation)) { type = 10; return true; } - else if(equal(id_AdmittedSplitSRBs)) { type = 11; return true; } - else if(equal(id_AdmittedSplitSRBsrelease)) { type = 12; return true; } - else if(equal(id_RRCConfigIndication)) { type = 13; return true; } - else { type = 14; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SgNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_E_RABs_Admitted_ToBeAdded_SgNBModAckList);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_E_RABs_Admitted_ToBeModified_SgNBModAckList);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_E_RABs_Admitted_ToBeReleased_SgNBModAckList);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_E_RABs_NotAdmitted_List);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(id_SgNBtoMeNBContainer);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(id_SgNBResourceCoordinationInformation);} return false; - case 11: type = 11; if(v(ref_nested())) { return equal(id_AdmittedSplitSRBs);} return false; - case 12: type = 12; if(v(ref_nested())) { return equal(id_AdmittedSplitSRBsrelease);} return false; - case 13: type = 13; if(v(ref_nested())) { return equal(id_RRCConfigIndication);} return false; - case 14: type = 14; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 14; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(ignore); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(ignore); type=2;} - void select_id_E_RABs_Admitted_ToBeAdded_SgNBModAckList() { set(ignore); type=3;} - void select_id_E_RABs_Admitted_ToBeModified_SgNBModAckList() { set(ignore); type=4;} - void select_id_E_RABs_Admitted_ToBeReleased_SgNBModAckList() { set(ignore); type=5;} - void select_id_E_RABs_NotAdmitted_List() { set(ignore); type=6;} - void select_id_SgNBtoMeNBContainer() { set(ignore); type=7;} - void select_id_CriticalityDiagnostics() { set(ignore); type=8;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(ignore); type=9;} - void select_id_SgNBResourceCoordinationInformation() { set(ignore); type=10;} - void select_id_AdmittedSplitSRBs() { set(ignore); type=11;} - void select_id_AdmittedSplitSRBsrelease() { set(ignore); type=12;} - void select_id_RRCConfigIndication() { set(reject); type=13;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else if(equal(ignore)) { type = 6; return true; } - else if(equal(ignore)) { type = 7; return true; } - else if(equal(ignore)) { type = 8; return true; } - else if(equal(ignore)) { type = 9; return true; } - else if(equal(ignore)) { type = 10; return true; } - else if(equal(ignore)) { type = 11; return true; } - else if(equal(ignore)) { type = 12; return true; } - else if(equal(reject)) { type = 13; return true; } - else { type = 14; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(ignore);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(ignore);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(ignore);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(ignore);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(ignore);} return false; - case 11: type = 11; if(v(ref_nested())) { return equal(ignore);} return false; - case 12: type = 12; if(v(ref_nested())) { return equal(ignore);} return false; - case 13: type = 13; if(v(ref_nested())) { return equal(reject);} return false; - case 14: type = 14; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - SgNB_UE_X2AP_ID& select_id_SgNB_UE_X2AP_ID() { return set(2); } - SgNB_UE_X2AP_ID const* get_id_SgNB_UE_X2AP_ID() const { return get(2); } - E_RABs_Admitted_ToBeAdded_SgNBModAckList& select_id_E_RABs_Admitted_ToBeAdded_SgNBModAckList() { return set(3); } - E_RABs_Admitted_ToBeAdded_SgNBModAckList const* get_id_E_RABs_Admitted_ToBeAdded_SgNBModAckList() const { return get(3); } - E_RABs_Admitted_ToBeModified_SgNBModAckList& select_id_E_RABs_Admitted_ToBeModified_SgNBModAckList() { return set(4); } - E_RABs_Admitted_ToBeModified_SgNBModAckList const* get_id_E_RABs_Admitted_ToBeModified_SgNBModAckList() const { return get(4); } - E_RABs_Admitted_ToBeReleased_SgNBModAckList& select_id_E_RABs_Admitted_ToBeReleased_SgNBModAckList() { return set(5); } - E_RABs_Admitted_ToBeReleased_SgNBModAckList const* get_id_E_RABs_Admitted_ToBeReleased_SgNBModAckList() const { return get(5); } - E_RAB_List& select_id_E_RABs_NotAdmitted_List() { return set(6); } - E_RAB_List const* get_id_E_RABs_NotAdmitted_List() const { return get(6); } - SgNBtoMeNBContainer& select_id_SgNBtoMeNBContainer() { return set(7); } - SgNBtoMeNBContainer const* get_id_SgNBtoMeNBContainer() const { return get(7); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(8); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(8); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(9); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(9); } - SgNBResourceCoordinationInformation& select_id_SgNBResourceCoordinationInformation() { return set(10); } - SgNBResourceCoordinationInformation const* get_id_SgNBResourceCoordinationInformation() const { return get(10); } - SplitSRBs& select_id_AdmittedSplitSRBs() { return set(11); } - SplitSRBs const* get_id_AdmittedSplitSRBs() const { return get(11); } - SplitSRBs& select_id_AdmittedSplitSRBsrelease() { return set(12); } - SplitSRBs const* get_id_AdmittedSplitSRBsrelease() const { return get(12); } - RRC_Config_Ind& select_id_RRCConfigIndication() { return set(13); } - RRC_Config_Ind const* get_id_RRCConfigIndication() const { return get(13); } - bool is_unknown() const { return type == 14; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - case 7: var.destroy(); break; - case 8: var.destroy(); break; - case 9: var.destroy(); break; - case 10: var.destroy(); break; - case 11: var.destroy(); break; - case 12: var.destroy(); break; - case 13: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - v.template operator()(7); - v.template operator()(8); - v.template operator()(9); - v.template operator()(10); - v.template operator()(11); - v.template operator()(12); - v.template operator()(13); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SgNB_UE_X2AP_ID()); return true; - case 3: v(select_id_E_RABs_Admitted_ToBeAdded_SgNBModAckList()); return true; - case 4: v(select_id_E_RABs_Admitted_ToBeModified_SgNBModAckList()); return true; - case 5: v(select_id_E_RABs_Admitted_ToBeReleased_SgNBModAckList()); return true; - case 6: v(select_id_E_RABs_NotAdmitted_List()); return true; - case 7: v(select_id_SgNBtoMeNBContainer()); return true; - case 8: v(select_id_CriticalityDiagnostics()); return true; - case 9: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 10: v(select_id_SgNBResourceCoordinationInformation()); return true; - case 11: v(select_id_AdmittedSplitSRBs()); return true; - case 12: v(select_id_AdmittedSplitSRBsrelease()); return true; - case 13: v(select_id_RRCConfigIndication()); return true; - case 14: if(type != 14) {clear(); asn::base::set();} type = 14; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - case 7: v(var.as()); return true; - case 8: v(var.as()); return true; - case 9: v(var.as()); return true; - case 10: v(var.as()); return true; - case 11: v(var.as()); return true; - case 12: v(var.as()); return true; - case 13: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CriticalityDiagnostics)]; - char dummy2[sizeof(E_RAB_List)]; - char dummy3[sizeof(E_RABs_Admitted_ToBeAdded_SgNBModAckList)]; - char dummy4[sizeof(E_RABs_Admitted_ToBeModified_SgNBModAckList)]; - char dummy5[sizeof(E_RABs_Admitted_ToBeReleased_SgNBModAckList)]; - char dummy6[sizeof(RRC_Config_Ind)]; - char dummy7[sizeof(SgNBResourceCoordinationInformation)]; - char dummy8[sizeof(SgNB_UE_X2AP_ID)]; - char dummy9[sizeof(SgNBtoMeNBContainer)]; - char dummy10[sizeof(SplitSRBs)]; - char dummy11[sizeof(UE_X2AP_ID)]; - char dummy12[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 14; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_E_RABs_Admitted_ToBeAdded_SgNBModAckList() { set(optional); type=3;} - void select_id_E_RABs_Admitted_ToBeModified_SgNBModAckList() { set(optional); type=4;} - void select_id_E_RABs_Admitted_ToBeReleased_SgNBModAckList() { set(optional); type=5;} - void select_id_E_RABs_NotAdmitted_List() { set(optional); type=6;} - void select_id_SgNBtoMeNBContainer() { set(optional); type=7;} - void select_id_CriticalityDiagnostics() { set(optional); type=8;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=9;} - void select_id_SgNBResourceCoordinationInformation() { set(optional); type=10;} - void select_id_AdmittedSplitSRBs() { set(optional); type=11;} - void select_id_AdmittedSplitSRBsrelease() { set(optional); type=12;} - void select_id_RRCConfigIndication() { set(optional); type=13;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else if(equal(optional)) { type = 7; return true; } - else if(equal(optional)) { type = 8; return true; } - else if(equal(optional)) { type = 9; return true; } - else if(equal(optional)) { type = 10; return true; } - else if(equal(optional)) { type = 11; return true; } - else if(equal(optional)) { type = 12; return true; } - else if(equal(optional)) { type = 13; return true; } - else { type = 14; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(optional);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(optional);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(optional);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(optional);} return false; - case 11: type = 11; if(v(ref_nested())) { return equal(optional);} return false; - case 12: type = 12; if(v(ref_nested())) { return equal(optional);} return false; - case 13: type = 13; if(v(ref_nested())) { return equal(optional);} return false; - case 14: type = 14; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SgNBModificationRequestAcknowledge ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SgNBModificationRequestAcknowledge-IEs}}, - ... -} -*/ - -struct SgNBModificationRequestAcknowledge : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SgNBModificationRequestAcknowledge";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SgNBModificationRequestReject-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SgNB-UE-X2AP-ID CRITICALITY ignore TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}| - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}, - ... -} -*/ - -struct SgNBModificationRequestReject_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(id_SgNB_UE_X2AP_ID); type=2;} - void select_id_Cause() { set(id_Cause); type=3;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=5;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SgNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_Cause)) { type = 3; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 4; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SgNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(ignore); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(ignore); type=2;} - void select_id_Cause() { set(ignore); type=3;} - void select_id_CriticalityDiagnostics() { set(ignore); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(ignore); type=5;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - SgNB_UE_X2AP_ID& select_id_SgNB_UE_X2AP_ID() { return set(2); } - SgNB_UE_X2AP_ID const* get_id_SgNB_UE_X2AP_ID() const { return get(2); } - Cause& select_id_Cause() { return set(3); } - Cause const* get_id_Cause() const { return get(3); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(4); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(4); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(5); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(5); } - bool is_unknown() const { return type == 6; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SgNB_UE_X2AP_ID()); return true; - case 3: v(select_id_Cause()); return true; - case 4: v(select_id_CriticalityDiagnostics()); return true; - case 5: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 6: if(type != 6) {clear(); asn::base::set();} type = 6; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(CriticalityDiagnostics)]; - char dummy3[sizeof(SgNB_UE_X2AP_ID)]; - char dummy4[sizeof(UE_X2AP_ID)]; - char dummy5[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_Cause() { set(mandatory); type=3;} - void select_id_CriticalityDiagnostics() { set(optional); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=5;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SgNBModificationRequestReject ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SgNBModificationRequestReject-IEs}}, - ... -} -*/ - -struct SgNBModificationRequestReject : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SgNBModificationRequestReject";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SgNBModificationRequired-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SgNB-UE-X2AP-ID CRITICALITY reject TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}| - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| - { ID id-PDCPChangeIndication CRITICALITY ignore TYPE PDCPChangeIndication PRESENCE optional}| - { ID id-E-RABs-ToBeReleased-SgNBModReqdList CRITICALITY ignore TYPE E-RABs-ToBeReleased-SgNBModReqdList PRESENCE optional}| - { ID id-SgNBtoMeNBContainer CRITICALITY ignore TYPE SgNBtoMeNBContainer PRESENCE optional}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-E-RABs-ToBeModified-SgNBModReqdList CRITICALITY ignore TYPE E-RABs-ToBeModified-SgNBModReqdList PRESENCE optional}| - { ID id-SgNBResourceCoordinationInformation CRITICALITY ignore TYPE SgNBResourceCoordinationInformation PRESENCE optional}| - { ID id-RRCConfigIndication CRITICALITY reject TYPE RRC-Config-Ind PRESENCE optional}, - ... -} -*/ - -struct SgNBModificationRequired_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 11; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(id_SgNB_UE_X2AP_ID); type=2;} - void select_id_Cause() { set(id_Cause); type=3;} - void select_id_PDCPChangeIndication() { set(id_PDCPChangeIndication); type=4;} - void select_id_E_RABs_ToBeReleased_SgNBModReqdList() { set(id_E_RABs_ToBeReleased_SgNBModReqdList); type=5;} - void select_id_SgNBtoMeNBContainer() { set(id_SgNBtoMeNBContainer); type=6;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=7;} - void select_id_E_RABs_ToBeModified_SgNBModReqdList() { set(id_E_RABs_ToBeModified_SgNBModReqdList); type=8;} - void select_id_SgNBResourceCoordinationInformation() { set(id_SgNBResourceCoordinationInformation); type=9;} - void select_id_RRCConfigIndication() { set(id_RRCConfigIndication); type=10;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SgNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_Cause)) { type = 3; return true; } - else if(equal(id_PDCPChangeIndication)) { type = 4; return true; } - else if(equal(id_E_RABs_ToBeReleased_SgNBModReqdList)) { type = 5; return true; } - else if(equal(id_SgNBtoMeNBContainer)) { type = 6; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 7; return true; } - else if(equal(id_E_RABs_ToBeModified_SgNBModReqdList)) { type = 8; return true; } - else if(equal(id_SgNBResourceCoordinationInformation)) { type = 9; return true; } - else if(equal(id_RRCConfigIndication)) { type = 10; return true; } - else { type = 11; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SgNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_PDCPChangeIndication);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_E_RABs_ToBeReleased_SgNBModReqdList);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_SgNBtoMeNBContainer);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(id_E_RABs_ToBeModified_SgNBModReqdList);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(id_SgNBResourceCoordinationInformation);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(id_RRCConfigIndication);} return false; - case 11: type = 11; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 11; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(reject); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(reject); type=2;} - void select_id_Cause() { set(ignore); type=3;} - void select_id_PDCPChangeIndication() { set(ignore); type=4;} - void select_id_E_RABs_ToBeReleased_SgNBModReqdList() { set(ignore); type=5;} - void select_id_SgNBtoMeNBContainer() { set(ignore); type=6;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(reject); type=7;} - void select_id_E_RABs_ToBeModified_SgNBModReqdList() { set(ignore); type=8;} - void select_id_SgNBResourceCoordinationInformation() { set(ignore); type=9;} - void select_id_RRCConfigIndication() { set(reject); type=10;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else if(equal(ignore)) { type = 6; return true; } - else if(equal(reject)) { type = 7; return true; } - else if(equal(ignore)) { type = 8; return true; } - else if(equal(ignore)) { type = 9; return true; } - else if(equal(reject)) { type = 10; return true; } - else { type = 11; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(ignore);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(reject);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(ignore);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(ignore);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(reject);} return false; - case 11: type = 11; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - SgNB_UE_X2AP_ID& select_id_SgNB_UE_X2AP_ID() { return set(2); } - SgNB_UE_X2AP_ID const* get_id_SgNB_UE_X2AP_ID() const { return get(2); } - Cause& select_id_Cause() { return set(3); } - Cause const* get_id_Cause() const { return get(3); } - PDCPChangeIndication& select_id_PDCPChangeIndication() { return set(4); } - PDCPChangeIndication const* get_id_PDCPChangeIndication() const { return get(4); } - E_RABs_ToBeReleased_SgNBModReqdList& select_id_E_RABs_ToBeReleased_SgNBModReqdList() { return set(5); } - E_RABs_ToBeReleased_SgNBModReqdList const* get_id_E_RABs_ToBeReleased_SgNBModReqdList() const { return get(5); } - SgNBtoMeNBContainer& select_id_SgNBtoMeNBContainer() { return set(6); } - SgNBtoMeNBContainer const* get_id_SgNBtoMeNBContainer() const { return get(6); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(7); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(7); } - E_RABs_ToBeModified_SgNBModReqdList& select_id_E_RABs_ToBeModified_SgNBModReqdList() { return set(8); } - E_RABs_ToBeModified_SgNBModReqdList const* get_id_E_RABs_ToBeModified_SgNBModReqdList() const { return get(8); } - SgNBResourceCoordinationInformation& select_id_SgNBResourceCoordinationInformation() { return set(9); } - SgNBResourceCoordinationInformation const* get_id_SgNBResourceCoordinationInformation() const { return get(9); } - RRC_Config_Ind& select_id_RRCConfigIndication() { return set(10); } - RRC_Config_Ind const* get_id_RRCConfigIndication() const { return get(10); } - bool is_unknown() const { return type == 11; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - case 7: var.destroy(); break; - case 8: var.destroy(); break; - case 9: var.destroy(); break; - case 10: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - v.template operator()(7); - v.template operator()(8); - v.template operator()(9); - v.template operator()(10); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SgNB_UE_X2AP_ID()); return true; - case 3: v(select_id_Cause()); return true; - case 4: v(select_id_PDCPChangeIndication()); return true; - case 5: v(select_id_E_RABs_ToBeReleased_SgNBModReqdList()); return true; - case 6: v(select_id_SgNBtoMeNBContainer()); return true; - case 7: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 8: v(select_id_E_RABs_ToBeModified_SgNBModReqdList()); return true; - case 9: v(select_id_SgNBResourceCoordinationInformation()); return true; - case 10: v(select_id_RRCConfigIndication()); return true; - case 11: if(type != 11) {clear(); asn::base::set();} type = 11; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - case 7: v(var.as()); return true; - case 8: v(var.as()); return true; - case 9: v(var.as()); return true; - case 10: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(E_RABs_ToBeModified_SgNBModReqdList)]; - char dummy3[sizeof(E_RABs_ToBeReleased_SgNBModReqdList)]; - char dummy4[sizeof(PDCPChangeIndication)]; - char dummy5[sizeof(RRC_Config_Ind)]; - char dummy6[sizeof(SgNBResourceCoordinationInformation)]; - char dummy7[sizeof(SgNB_UE_X2AP_ID)]; - char dummy8[sizeof(SgNBtoMeNBContainer)]; - char dummy9[sizeof(UE_X2AP_ID)]; - char dummy10[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 11; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_Cause() { set(mandatory); type=3;} - void select_id_PDCPChangeIndication() { set(optional); type=4;} - void select_id_E_RABs_ToBeReleased_SgNBModReqdList() { set(optional); type=5;} - void select_id_SgNBtoMeNBContainer() { set(optional); type=6;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=7;} - void select_id_E_RABs_ToBeModified_SgNBModReqdList() { set(optional); type=8;} - void select_id_SgNBResourceCoordinationInformation() { set(optional); type=9;} - void select_id_RRCConfigIndication() { set(optional); type=10;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else if(equal(optional)) { type = 7; return true; } - else if(equal(optional)) { type = 8; return true; } - else if(equal(optional)) { type = 9; return true; } - else if(equal(optional)) { type = 10; return true; } - else { type = 11; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(optional);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(optional);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(optional);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(optional);} return false; - case 11: type = 11; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SgNBModificationRequired ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SgNBModificationRequired-IEs}}, - ... -} -*/ - -struct SgNBModificationRequired : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SgNBModificationRequired";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SgNBReconfigurationComplete-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SgNB-UE-X2AP-ID CRITICALITY reject TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}| - { ID id-ResponseInformationSgNBReconfComp CRITICALITY ignore TYPE ResponseInformationSgNBReconfComp PRESENCE mandatory}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}, - ... -} -*/ - -struct SgNBReconfigurationComplete_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(id_SgNB_UE_X2AP_ID); type=2;} - void select_id_ResponseInformationSgNBReconfComp() { set(id_ResponseInformationSgNBReconfComp); type=3;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=4;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SgNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_ResponseInformationSgNBReconfComp)) { type = 3; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SgNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_ResponseInformationSgNBReconfComp);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(reject); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(reject); type=2;} - void select_id_ResponseInformationSgNBReconfComp() { set(ignore); type=3;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(reject); type=4;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(reject)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(reject);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - SgNB_UE_X2AP_ID& select_id_SgNB_UE_X2AP_ID() { return set(2); } - SgNB_UE_X2AP_ID const* get_id_SgNB_UE_X2AP_ID() const { return get(2); } - ResponseInformationSgNBReconfComp& select_id_ResponseInformationSgNBReconfComp() { return set(3); } - ResponseInformationSgNBReconfComp const* get_id_ResponseInformationSgNBReconfComp() const { return get(3); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(4); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(4); } - bool is_unknown() const { return type == 5; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SgNB_UE_X2AP_ID()); return true; - case 3: v(select_id_ResponseInformationSgNBReconfComp()); return true; - case 4: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 5: if(type != 5) {clear(); asn::base::set();} type = 5; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(ResponseInformationSgNBReconfComp)]; - char dummy2[sizeof(SgNB_UE_X2AP_ID)]; - char dummy3[sizeof(UE_X2AP_ID)]; - char dummy4[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_ResponseInformationSgNBReconfComp() { set(mandatory); type=3;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=4;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SgNBReconfigurationComplete ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SgNBReconfigurationComplete-IEs}}, - ... -} -*/ - -struct SgNBReconfigurationComplete : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SgNBReconfigurationComplete";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SgNBReleaseConfirm-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SgNB-UE-X2AP-ID CRITICALITY ignore TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}| - { ID id-E-RABs-ToBeReleased-SgNBRelConfList CRITICALITY ignore TYPE E-RABs-ToBeReleased-SgNBRelConfList PRESENCE optional}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}, - ... -} -*/ - -struct SgNBReleaseConfirm_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(id_SgNB_UE_X2AP_ID); type=2;} - void select_id_E_RABs_ToBeReleased_SgNBRelConfList() { set(id_E_RABs_ToBeReleased_SgNBRelConfList); type=3;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=5;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SgNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_E_RABs_ToBeReleased_SgNBRelConfList)) { type = 3; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 4; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SgNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_E_RABs_ToBeReleased_SgNBRelConfList);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(ignore); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(ignore); type=2;} - void select_id_E_RABs_ToBeReleased_SgNBRelConfList() { set(ignore); type=3;} - void select_id_CriticalityDiagnostics() { set(ignore); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(ignore); type=5;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - SgNB_UE_X2AP_ID& select_id_SgNB_UE_X2AP_ID() { return set(2); } - SgNB_UE_X2AP_ID const* get_id_SgNB_UE_X2AP_ID() const { return get(2); } - E_RABs_ToBeReleased_SgNBRelConfList& select_id_E_RABs_ToBeReleased_SgNBRelConfList() { return set(3); } - E_RABs_ToBeReleased_SgNBRelConfList const* get_id_E_RABs_ToBeReleased_SgNBRelConfList() const { return get(3); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(4); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(4); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(5); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(5); } - bool is_unknown() const { return type == 6; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SgNB_UE_X2AP_ID()); return true; - case 3: v(select_id_E_RABs_ToBeReleased_SgNBRelConfList()); return true; - case 4: v(select_id_CriticalityDiagnostics()); return true; - case 5: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 6: if(type != 6) {clear(); asn::base::set();} type = 6; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CriticalityDiagnostics)]; - char dummy2[sizeof(E_RABs_ToBeReleased_SgNBRelConfList)]; - char dummy3[sizeof(SgNB_UE_X2AP_ID)]; - char dummy4[sizeof(UE_X2AP_ID)]; - char dummy5[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_E_RABs_ToBeReleased_SgNBRelConfList() { set(optional); type=3;} - void select_id_CriticalityDiagnostics() { set(optional); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=5;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SgNBReleaseConfirm ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SgNBReleaseConfirm-IEs}}, - ... -} -*/ - -struct SgNBReleaseConfirm : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SgNBReleaseConfirm";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SgNBReleaseRequest-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SgNB-UE-X2AP-ID CRITICALITY reject TYPE SgNB-UE-X2AP-ID PRESENCE optional}| - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| - { ID id-E-RABs-ToBeReleased-SgNBRelReqList CRITICALITY ignore TYPE E-RABs-ToBeReleased-SgNBRelReqList PRESENCE optional}| - { ID id-UE-ContextKeptIndicator CRITICALITY ignore TYPE UE-ContextKeptIndicator PRESENCE optional}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-MeNBtoSgNBContainer CRITICALITY reject TYPE MeNBtoSgNBContainer PRESENCE optional}, - ... -} -*/ - -struct SgNBReleaseRequest_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 8; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(id_SgNB_UE_X2AP_ID); type=2;} - void select_id_Cause() { set(id_Cause); type=3;} - void select_id_E_RABs_ToBeReleased_SgNBRelReqList() { set(id_E_RABs_ToBeReleased_SgNBRelReqList); type=4;} - void select_id_UE_ContextKeptIndicator() { set(id_UE_ContextKeptIndicator); type=5;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=6;} - void select_id_MeNBtoSgNBContainer() { set(id_MeNBtoSgNBContainer); type=7;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SgNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_Cause)) { type = 3; return true; } - else if(equal(id_E_RABs_ToBeReleased_SgNBRelReqList)) { type = 4; return true; } - else if(equal(id_UE_ContextKeptIndicator)) { type = 5; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 6; return true; } - else if(equal(id_MeNBtoSgNBContainer)) { type = 7; return true; } - else { type = 8; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SgNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_E_RABs_ToBeReleased_SgNBRelReqList);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_UE_ContextKeptIndicator);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(id_MeNBtoSgNBContainer);} return false; - case 8: type = 8; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 8; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(reject); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(reject); type=2;} - void select_id_Cause() { set(ignore); type=3;} - void select_id_E_RABs_ToBeReleased_SgNBRelReqList() { set(ignore); type=4;} - void select_id_UE_ContextKeptIndicator() { set(ignore); type=5;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(reject); type=6;} - void select_id_MeNBtoSgNBContainer() { set(reject); type=7;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else if(equal(reject)) { type = 6; return true; } - else if(equal(reject)) { type = 7; return true; } - else { type = 8; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(reject);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(reject);} return false; - case 8: type = 8; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - SgNB_UE_X2AP_ID& select_id_SgNB_UE_X2AP_ID() { return set(2); } - SgNB_UE_X2AP_ID const* get_id_SgNB_UE_X2AP_ID() const { return get(2); } - Cause& select_id_Cause() { return set(3); } - Cause const* get_id_Cause() const { return get(3); } - E_RABs_ToBeReleased_SgNBRelReqList& select_id_E_RABs_ToBeReleased_SgNBRelReqList() { return set(4); } - E_RABs_ToBeReleased_SgNBRelReqList const* get_id_E_RABs_ToBeReleased_SgNBRelReqList() const { return get(4); } - UE_ContextKeptIndicator& select_id_UE_ContextKeptIndicator() { return set(5); } - UE_ContextKeptIndicator const* get_id_UE_ContextKeptIndicator() const { return get(5); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(6); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(6); } - MeNBtoSgNBContainer& select_id_MeNBtoSgNBContainer() { return set(7); } - MeNBtoSgNBContainer const* get_id_MeNBtoSgNBContainer() const { return get(7); } - bool is_unknown() const { return type == 8; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - case 7: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - v.template operator()(7); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SgNB_UE_X2AP_ID()); return true; - case 3: v(select_id_Cause()); return true; - case 4: v(select_id_E_RABs_ToBeReleased_SgNBRelReqList()); return true; - case 5: v(select_id_UE_ContextKeptIndicator()); return true; - case 6: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 7: v(select_id_MeNBtoSgNBContainer()); return true; - case 8: if(type != 8) {clear(); asn::base::set();} type = 8; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - case 7: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(E_RABs_ToBeReleased_SgNBRelReqList)]; - char dummy3[sizeof(MeNBtoSgNBContainer)]; - char dummy4[sizeof(SgNB_UE_X2AP_ID)]; - char dummy5[sizeof(UE_ContextKeptIndicator)]; - char dummy6[sizeof(UE_X2AP_ID)]; - char dummy7[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 8; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(optional); type=2;} - void select_id_Cause() { set(mandatory); type=3;} - void select_id_E_RABs_ToBeReleased_SgNBRelReqList() { set(optional); type=4;} - void select_id_UE_ContextKeptIndicator() { set(optional); type=5;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=6;} - void select_id_MeNBtoSgNBContainer() { set(optional); type=7;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else if(equal(optional)) { type = 7; return true; } - else { type = 8; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(optional);} return false; - case 8: type = 8; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SgNBReleaseRequest ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SgNBReleaseRequest-IEs}}, - ... -} -*/ - -struct SgNBReleaseRequest : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SgNBReleaseRequest";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SgNBReleaseRequestAcknowledge-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SgNB-UE-X2AP-ID CRITICALITY ignore TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional }| - { ID id-E-RABs-Admitted-ToBeReleased-SgNBRelReqAckList CRITICALITY ignore TYPE E-RABs-Admitted-ToBeReleased-SgNBRelReqAckList PRESENCE optional }, - ... -} -*/ - -struct SgNBReleaseRequestAcknowledge_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(id_SgNB_UE_X2AP_ID); type=2;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=3;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=4;} - void select_id_E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList() { set(id_E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList); type=5;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SgNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 3; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 4; return true; } - else if(equal(id_E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SgNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(ignore); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(ignore); type=2;} - void select_id_CriticalityDiagnostics() { set(ignore); type=3;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(reject); type=4;} - void select_id_E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList() { set(ignore); type=5;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(reject)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(reject);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - SgNB_UE_X2AP_ID& select_id_SgNB_UE_X2AP_ID() { return set(2); } - SgNB_UE_X2AP_ID const* get_id_SgNB_UE_X2AP_ID() const { return get(2); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(3); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(3); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(4); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(4); } - E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList& select_id_E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList() { return set(5); } - E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList const* get_id_E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList() const { return get(5); } - bool is_unknown() const { return type == 6; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SgNB_UE_X2AP_ID()); return true; - case 3: v(select_id_CriticalityDiagnostics()); return true; - case 4: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 5: v(select_id_E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList()); return true; - case 6: if(type != 6) {clear(); asn::base::set();} type = 6; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CriticalityDiagnostics)]; - char dummy2[sizeof(E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList)]; - char dummy3[sizeof(SgNB_UE_X2AP_ID)]; - char dummy4[sizeof(UE_X2AP_ID)]; - char dummy5[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_CriticalityDiagnostics() { set(optional); type=3;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=4;} - void select_id_E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList() { set(optional); type=5;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SgNBReleaseRequestAcknowledge ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SgNBReleaseRequestAcknowledge-IEs}}, - ... -} -*/ - -struct SgNBReleaseRequestAcknowledge : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SgNBReleaseRequestAcknowledge";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SgNBReleaseRequestReject-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SgNB-UE-X2AP-ID CRITICALITY ignore TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}| - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}, - ... -} -*/ - -struct SgNBReleaseRequestReject_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(id_SgNB_UE_X2AP_ID); type=2;} - void select_id_Cause() { set(id_Cause); type=3;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=5;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SgNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_Cause)) { type = 3; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 4; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SgNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(ignore); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(ignore); type=2;} - void select_id_Cause() { set(ignore); type=3;} - void select_id_CriticalityDiagnostics() { set(ignore); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(reject); type=5;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(reject)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(reject);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - SgNB_UE_X2AP_ID& select_id_SgNB_UE_X2AP_ID() { return set(2); } - SgNB_UE_X2AP_ID const* get_id_SgNB_UE_X2AP_ID() const { return get(2); } - Cause& select_id_Cause() { return set(3); } - Cause const* get_id_Cause() const { return get(3); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(4); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(4); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(5); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(5); } - bool is_unknown() const { return type == 6; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SgNB_UE_X2AP_ID()); return true; - case 3: v(select_id_Cause()); return true; - case 4: v(select_id_CriticalityDiagnostics()); return true; - case 5: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 6: if(type != 6) {clear(); asn::base::set();} type = 6; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(CriticalityDiagnostics)]; - char dummy3[sizeof(SgNB_UE_X2AP_ID)]; - char dummy4[sizeof(UE_X2AP_ID)]; - char dummy5[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_Cause() { set(mandatory); type=3;} - void select_id_CriticalityDiagnostics() { set(optional); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=5;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SgNBReleaseRequestReject ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SgNBReleaseRequestReject-IEs}}, - ... -} -*/ - -struct SgNBReleaseRequestReject : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SgNBReleaseRequestReject";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SgNBReleaseRequired-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SgNB-UE-X2AP-ID CRITICALITY reject TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}| - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional }| - { ID id-E-RABs-ToBeReleased-SgNBRelReqdList CRITICALITY ignore TYPE E-RABs-ToBeReleased-SgNBRelReqdList PRESENCE optional }, - ... -} -*/ - -struct SgNBReleaseRequired_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(id_SgNB_UE_X2AP_ID); type=2;} - void select_id_Cause() { set(id_Cause); type=3;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=4;} - void select_id_E_RABs_ToBeReleased_SgNBRelReqdList() { set(id_E_RABs_ToBeReleased_SgNBRelReqdList); type=5;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SgNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_Cause)) { type = 3; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 4; return true; } - else if(equal(id_E_RABs_ToBeReleased_SgNBRelReqdList)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SgNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_E_RABs_ToBeReleased_SgNBRelReqdList);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(reject); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(reject); type=2;} - void select_id_Cause() { set(ignore); type=3;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(reject); type=4;} - void select_id_E_RABs_ToBeReleased_SgNBRelReqdList() { set(ignore); type=5;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(reject)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(reject);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - SgNB_UE_X2AP_ID& select_id_SgNB_UE_X2AP_ID() { return set(2); } - SgNB_UE_X2AP_ID const* get_id_SgNB_UE_X2AP_ID() const { return get(2); } - Cause& select_id_Cause() { return set(3); } - Cause const* get_id_Cause() const { return get(3); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(4); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(4); } - E_RABs_ToBeReleased_SgNBRelReqdList& select_id_E_RABs_ToBeReleased_SgNBRelReqdList() { return set(5); } - E_RABs_ToBeReleased_SgNBRelReqdList const* get_id_E_RABs_ToBeReleased_SgNBRelReqdList() const { return get(5); } - bool is_unknown() const { return type == 6; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SgNB_UE_X2AP_ID()); return true; - case 3: v(select_id_Cause()); return true; - case 4: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 5: v(select_id_E_RABs_ToBeReleased_SgNBRelReqdList()); return true; - case 6: if(type != 6) {clear(); asn::base::set();} type = 6; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(E_RABs_ToBeReleased_SgNBRelReqdList)]; - char dummy3[sizeof(SgNB_UE_X2AP_ID)]; - char dummy4[sizeof(UE_X2AP_ID)]; - char dummy5[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_Cause() { set(mandatory); type=3;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=4;} - void select_id_E_RABs_ToBeReleased_SgNBRelReqdList() { set(optional); type=5;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SgNBReleaseRequired ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SgNBReleaseRequired-IEs}}, - ... -} -*/ - -struct SgNBReleaseRequired : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SgNBReleaseRequired";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -UEContextRelease-IEs X2AP-PROTOCOL-IES ::= { - { ID id-Old-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-New-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-Old-eNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-New-eNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-SIPTO-BearerDeactivationIndication CRITICALITY ignore TYPE SIPTOBearerDeactivationIndication PRESENCE optional}| - { ID id-SgNB-UE-X2AP-ID CRITICALITY ignore TYPE SgNB-UE-X2AP-ID PRESENCE optional}, - ... -} -*/ - -struct UEContextRelease_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_Old_eNB_UE_X2AP_ID() { set(id_Old_eNB_UE_X2AP_ID); type=1;} - void select_id_New_eNB_UE_X2AP_ID() { set(id_New_eNB_UE_X2AP_ID); type=2;} - void select_id_Old_eNB_UE_X2AP_ID_Extension() { set(id_Old_eNB_UE_X2AP_ID_Extension); type=3;} - void select_id_New_eNB_UE_X2AP_ID_Extension() { set(id_New_eNB_UE_X2AP_ID_Extension); type=4;} - void select_id_SIPTO_BearerDeactivationIndication() { set(id_SIPTO_BearerDeactivationIndication); type=5;} - void select_id_SgNB_UE_X2AP_ID() { set(id_SgNB_UE_X2AP_ID); type=6;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_Old_eNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_New_eNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_Old_eNB_UE_X2AP_ID_Extension)) { type = 3; return true; } - else if(equal(id_New_eNB_UE_X2AP_ID_Extension)) { type = 4; return true; } - else if(equal(id_SIPTO_BearerDeactivationIndication)) { type = 5; return true; } - else if(equal(id_SgNB_UE_X2AP_ID)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_Old_eNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_New_eNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_Old_eNB_UE_X2AP_ID_Extension);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_New_eNB_UE_X2AP_ID_Extension);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_SIPTO_BearerDeactivationIndication);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_SgNB_UE_X2AP_ID);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_Old_eNB_UE_X2AP_ID() { set(reject); type=1;} - void select_id_New_eNB_UE_X2AP_ID() { set(reject); type=2;} - void select_id_Old_eNB_UE_X2AP_ID_Extension() { set(reject); type=3;} - void select_id_New_eNB_UE_X2AP_ID_Extension() { set(reject); type=4;} - void select_id_SIPTO_BearerDeactivationIndication() { set(ignore); type=5;} - void select_id_SgNB_UE_X2AP_ID() { set(ignore); type=6;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(reject)) { type = 3; return true; } - else if(equal(reject)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else if(equal(ignore)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(reject);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(reject);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(ignore);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_Old_eNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_Old_eNB_UE_X2AP_ID() const { return get(1); } - UE_X2AP_ID& select_id_New_eNB_UE_X2AP_ID() { return set(2); } - UE_X2AP_ID const* get_id_New_eNB_UE_X2AP_ID() const { return get(2); } - UE_X2AP_ID_Extension& select_id_Old_eNB_UE_X2AP_ID_Extension() { return set(3); } - UE_X2AP_ID_Extension const* get_id_Old_eNB_UE_X2AP_ID_Extension() const { return get(3); } - UE_X2AP_ID_Extension& select_id_New_eNB_UE_X2AP_ID_Extension() { return set(4); } - UE_X2AP_ID_Extension const* get_id_New_eNB_UE_X2AP_ID_Extension() const { return get(4); } - SIPTOBearerDeactivationIndication& select_id_SIPTO_BearerDeactivationIndication() { return set(5); } - SIPTOBearerDeactivationIndication const* get_id_SIPTO_BearerDeactivationIndication() const { return get(5); } - SgNB_UE_X2AP_ID& select_id_SgNB_UE_X2AP_ID() { return set(6); } - SgNB_UE_X2AP_ID const* get_id_SgNB_UE_X2AP_ID() const { return get(6); } - bool is_unknown() const { return type == 7; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_Old_eNB_UE_X2AP_ID()); return true; - case 2: v(select_id_New_eNB_UE_X2AP_ID()); return true; - case 3: v(select_id_Old_eNB_UE_X2AP_ID_Extension()); return true; - case 4: v(select_id_New_eNB_UE_X2AP_ID_Extension()); return true; - case 5: v(select_id_SIPTO_BearerDeactivationIndication()); return true; - case 6: v(select_id_SgNB_UE_X2AP_ID()); return true; - case 7: if(type != 7) {clear(); asn::base::set();} type = 7; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(SIPTOBearerDeactivationIndication)]; - char dummy2[sizeof(SgNB_UE_X2AP_ID)]; - char dummy3[sizeof(UE_X2AP_ID)]; - char dummy4[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_Old_eNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_New_eNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_Old_eNB_UE_X2AP_ID_Extension() { set(optional); type=3;} - void select_id_New_eNB_UE_X2AP_ID_Extension() { set(optional); type=4;} - void select_id_SIPTO_BearerDeactivationIndication() { set(optional); type=5;} - void select_id_SgNB_UE_X2AP_ID() { set(optional); type=6;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -UEContextRelease ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{UEContextRelease-IEs}}, - ... -} -*/ - -struct UEContextRelease : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "UEContextRelease";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -X2AP-Message ::= OCTET STRING -*/ - -struct X2AP_Message : asn::ostring<> -{ - static constexpr const char* name() {return "X2AP-Message";} - using parent_t = asn::ostring<>; - -}; - -/* -X2APMessageTransfer-IEs X2AP-PROTOCOL-IES ::= { - { ID id-RNL-Header CRITICALITY reject TYPE RNL-Header PRESENCE mandatory}| - { ID id-x2APMessage CRITICALITY reject TYPE X2AP-Message PRESENCE optional}, - ... -} -*/ - -struct X2APMessageTransfer_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_RNL_Header() { set(id_RNL_Header); type=1;} - void select_id_x2APMessage() { set(id_x2APMessage); type=2;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_RNL_Header)) { type = 1; return true; } - else if(equal(id_x2APMessage)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_RNL_Header);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_x2APMessage);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_RNL_Header() { set(reject); type=1;} - void select_id_x2APMessage() { set(reject); type=2;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - RNL_Header& select_id_RNL_Header() { return set(1); } - RNL_Header const* get_id_RNL_Header() const { return get(1); } - X2AP_Message& select_id_x2APMessage() { return set(2); } - X2AP_Message const* get_id_x2APMessage() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_RNL_Header()); return true; - case 2: v(select_id_x2APMessage()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(RNL_Header)]; - char dummy2[sizeof(X2AP_Message)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_RNL_Header() { set(mandatory); type=1;} - void select_id_x2APMessage() { set(optional); type=2;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -X2APMessageTransfer ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{X2APMessageTransfer-IEs}}, - ... -} -*/ - -struct X2APMessageTransfer : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "X2APMessageTransfer";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -X2Release-IEs X2AP-PROTOCOL-IES ::= { - { ID id-GlobalENB-ID CRITICALITY reject TYPE GlobalENB-ID PRESENCE mandatory}, -... -} -*/ - -struct X2Release_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_GlobalENB_ID() { set(id_GlobalENB_ID); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_GlobalENB_ID)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_GlobalENB_ID);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_GlobalENB_ID() { set(reject); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - GlobalENB_ID& select_id_GlobalENB_ID() { return set(1); } - GlobalENB_ID const* get_id_GlobalENB_ID() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_GlobalENB_ID()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(GlobalENB_ID)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_GlobalENB_ID() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -X2Release ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{X2Release-IEs}}, - ... -} -*/ - -struct X2Release : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "X2Release";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -X2RemovalFailure-IEs X2AP-PROTOCOL-IES ::= { - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, - ... -} -*/ - -struct X2RemovalFailure_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_Cause() { set(id_Cause); type=1;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=2;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_Cause)) { type = 1; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_Cause() { set(ignore); type=1;} - void select_id_CriticalityDiagnostics() { set(ignore); type=2;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - Cause& select_id_Cause() { return set(1); } - Cause const* get_id_Cause() const { return get(1); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(2); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_Cause()); return true; - case 2: v(select_id_CriticalityDiagnostics()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(CriticalityDiagnostics)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_Cause() { set(mandatory); type=1;} - void select_id_CriticalityDiagnostics() { set(optional); type=2;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -X2RemovalFailure ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{X2RemovalFailure-IEs}}, - ... -} -*/ - -struct X2RemovalFailure : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "X2RemovalFailure";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -X2RemovalRequest-IEs X2AP-PROTOCOL-IES ::= { - { ID id-GlobalENB-ID CRITICALITY reject TYPE GlobalENB-ID PRESENCE mandatory}| - { ID id-X2RemovalThreshold CRITICALITY reject TYPE X2BenefitValue PRESENCE optional}, -... -} -*/ - -struct X2RemovalRequest_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_GlobalENB_ID() { set(id_GlobalENB_ID); type=1;} - void select_id_X2RemovalThreshold() { set(id_X2RemovalThreshold); type=2;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_GlobalENB_ID)) { type = 1; return true; } - else if(equal(id_X2RemovalThreshold)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_GlobalENB_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_X2RemovalThreshold);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_GlobalENB_ID() { set(reject); type=1;} - void select_id_X2RemovalThreshold() { set(reject); type=2;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - GlobalENB_ID& select_id_GlobalENB_ID() { return set(1); } - GlobalENB_ID const* get_id_GlobalENB_ID() const { return get(1); } - X2BenefitValue& select_id_X2RemovalThreshold() { return set(2); } - X2BenefitValue const* get_id_X2RemovalThreshold() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_GlobalENB_ID()); return true; - case 2: v(select_id_X2RemovalThreshold()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(GlobalENB_ID)]; - char dummy2[sizeof(X2BenefitValue)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_GlobalENB_ID() { set(mandatory); type=1;} - void select_id_X2RemovalThreshold() { set(optional); type=2;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -X2RemovalRequest ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{X2RemovalRequest-IEs}}, - ... -} -*/ - -struct X2RemovalRequest : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "X2RemovalRequest";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -X2RemovalResponse-IEs X2AP-PROTOCOL-IES ::= { - { ID id-GlobalENB-ID CRITICALITY reject TYPE GlobalENB-ID PRESENCE mandatory}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, - ... -} -*/ - -struct X2RemovalResponse_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_GlobalENB_ID() { set(id_GlobalENB_ID); type=1;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=2;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_GlobalENB_ID)) { type = 1; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_GlobalENB_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_GlobalENB_ID() { set(reject); type=1;} - void select_id_CriticalityDiagnostics() { set(ignore); type=2;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - GlobalENB_ID& select_id_GlobalENB_ID() { return set(1); } - GlobalENB_ID const* get_id_GlobalENB_ID() const { return get(1); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(2); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_GlobalENB_ID()); return true; - case 2: v(select_id_CriticalityDiagnostics()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CriticalityDiagnostics)]; - char dummy2[sizeof(GlobalENB_ID)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_GlobalENB_ID() { set(mandatory); type=1;} - void select_id_CriticalityDiagnostics() { set(optional); type=2;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -X2RemovalResponse ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{X2RemovalResponse-IEs}}, - ... -} -*/ - -struct X2RemovalResponse : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "X2RemovalResponse";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -X2SetupFailure-IEs X2AP-PROTOCOL-IES ::= { - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory} | - { ID id-TimeToWait CRITICALITY ignore TYPE TimeToWait PRESENCE optional} | - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, - - ... -} -*/ - -struct X2SetupFailure_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_Cause() { set(id_Cause); type=1;} - void select_id_TimeToWait() { set(id_TimeToWait); type=2;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=3;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_Cause)) { type = 1; return true; } - else if(equal(id_TimeToWait)) { type = 2; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_TimeToWait);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_Cause() { set(ignore); type=1;} - void select_id_TimeToWait() { set(ignore); type=2;} - void select_id_CriticalityDiagnostics() { set(ignore); type=3;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - Cause& select_id_Cause() { return set(1); } - Cause const* get_id_Cause() const { return get(1); } - TimeToWait& select_id_TimeToWait() { return set(2); } - TimeToWait const* get_id_TimeToWait() const { return get(2); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(3); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(3); } - bool is_unknown() const { return type == 4; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_Cause()); return true; - case 2: v(select_id_TimeToWait()); return true; - case 3: v(select_id_CriticalityDiagnostics()); return true; - case 4: if(type != 4) {clear(); asn::base::set();} type = 4; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(CriticalityDiagnostics)]; - char dummy3[sizeof(TimeToWait)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_Cause() { set(mandatory); type=1;} - void select_id_TimeToWait() { set(optional); type=2;} - void select_id_CriticalityDiagnostics() { set(optional); type=3;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -X2SetupFailure ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{X2SetupFailure-IEs}}, - ... -} -*/ - -struct X2SetupFailure : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "X2SetupFailure";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -X2SetupRequest-IEs X2AP-PROTOCOL-IES ::= { - { ID id-GlobalENB-ID CRITICALITY reject TYPE GlobalENB-ID PRESENCE mandatory}| - { ID id-ServedCells CRITICALITY reject TYPE ServedCells PRESENCE mandatory}| - { ID id-GUGroupIDList CRITICALITY reject TYPE GUGroupIDList PRESENCE optional}| - { ID id-LHN-ID CRITICALITY ignore TYPE LHN-ID PRESENCE optional}, -... -} -*/ - -struct X2SetupRequest_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_GlobalENB_ID() { set(id_GlobalENB_ID); type=1;} - void select_id_ServedCells() { set(id_ServedCells); type=2;} - void select_id_GUGroupIDList() { set(id_GUGroupIDList); type=3;} - void select_id_LHN_ID() { set(id_LHN_ID); type=4;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_GlobalENB_ID)) { type = 1; return true; } - else if(equal(id_ServedCells)) { type = 2; return true; } - else if(equal(id_GUGroupIDList)) { type = 3; return true; } - else if(equal(id_LHN_ID)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_GlobalENB_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_ServedCells);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_GUGroupIDList);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_LHN_ID);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_GlobalENB_ID() { set(reject); type=1;} - void select_id_ServedCells() { set(reject); type=2;} - void select_id_GUGroupIDList() { set(reject); type=3;} - void select_id_LHN_ID() { set(ignore); type=4;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(reject)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(reject);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - GlobalENB_ID& select_id_GlobalENB_ID() { return set(1); } - GlobalENB_ID const* get_id_GlobalENB_ID() const { return get(1); } - ServedCells& select_id_ServedCells() { return set(2); } - ServedCells const* get_id_ServedCells() const { return get(2); } - GUGroupIDList& select_id_GUGroupIDList() { return set(3); } - GUGroupIDList const* get_id_GUGroupIDList() const { return get(3); } - LHN_ID& select_id_LHN_ID() { return set(4); } - LHN_ID const* get_id_LHN_ID() const { return get(4); } - bool is_unknown() const { return type == 5; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_GlobalENB_ID()); return true; - case 2: v(select_id_ServedCells()); return true; - case 3: v(select_id_GUGroupIDList()); return true; - case 4: v(select_id_LHN_ID()); return true; - case 5: if(type != 5) {clear(); asn::base::set();} type = 5; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(GUGroupIDList)]; - char dummy2[sizeof(GlobalENB_ID)]; - char dummy3[sizeof(LHN_ID)]; - char dummy4[sizeof(ServedCells)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_GlobalENB_ID() { set(mandatory); type=1;} - void select_id_ServedCells() { set(mandatory); type=2;} - void select_id_GUGroupIDList() { set(optional); type=3;} - void select_id_LHN_ID() { set(optional); type=4;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -X2SetupRequest ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{X2SetupRequest-IEs}}, - ... -} -*/ - -struct X2SetupRequest : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "X2SetupRequest";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -X2SetupResponse-IEs X2AP-PROTOCOL-IES ::= { - { ID id-GlobalENB-ID CRITICALITY reject TYPE GlobalENB-ID PRESENCE mandatory}| - { ID id-ServedCells CRITICALITY reject TYPE ServedCells PRESENCE mandatory}| - { ID id-GUGroupIDList CRITICALITY reject TYPE GUGroupIDList PRESENCE optional}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| - { ID id-LHN-ID CRITICALITY ignore TYPE LHN-ID PRESENCE optional}, - ... -} -*/ - -struct X2SetupResponse_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_GlobalENB_ID() { set(id_GlobalENB_ID); type=1;} - void select_id_ServedCells() { set(id_ServedCells); type=2;} - void select_id_GUGroupIDList() { set(id_GUGroupIDList); type=3;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=4;} - void select_id_LHN_ID() { set(id_LHN_ID); type=5;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_GlobalENB_ID)) { type = 1; return true; } - else if(equal(id_ServedCells)) { type = 2; return true; } - else if(equal(id_GUGroupIDList)) { type = 3; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 4; return true; } - else if(equal(id_LHN_ID)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_GlobalENB_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_ServedCells);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_GUGroupIDList);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_LHN_ID);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_GlobalENB_ID() { set(reject); type=1;} - void select_id_ServedCells() { set(reject); type=2;} - void select_id_GUGroupIDList() { set(reject); type=3;} - void select_id_CriticalityDiagnostics() { set(ignore); type=4;} - void select_id_LHN_ID() { set(ignore); type=5;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(reject)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(reject);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - GlobalENB_ID& select_id_GlobalENB_ID() { return set(1); } - GlobalENB_ID const* get_id_GlobalENB_ID() const { return get(1); } - ServedCells& select_id_ServedCells() { return set(2); } - ServedCells const* get_id_ServedCells() const { return get(2); } - GUGroupIDList& select_id_GUGroupIDList() { return set(3); } - GUGroupIDList const* get_id_GUGroupIDList() const { return get(3); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(4); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(4); } - LHN_ID& select_id_LHN_ID() { return set(5); } - LHN_ID const* get_id_LHN_ID() const { return get(5); } - bool is_unknown() const { return type == 6; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_GlobalENB_ID()); return true; - case 2: v(select_id_ServedCells()); return true; - case 3: v(select_id_GUGroupIDList()); return true; - case 4: v(select_id_CriticalityDiagnostics()); return true; - case 5: v(select_id_LHN_ID()); return true; - case 6: if(type != 6) {clear(); asn::base::set();} type = 6; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CriticalityDiagnostics)]; - char dummy2[sizeof(GUGroupIDList)]; - char dummy3[sizeof(GlobalENB_ID)]; - char dummy4[sizeof(LHN_ID)]; - char dummy5[sizeof(ServedCells)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_GlobalENB_ID() { set(mandatory); type=1;} - void select_id_ServedCells() { set(mandatory); type=2;} - void select_id_GUGroupIDList() { set(optional); type=3;} - void select_id_CriticalityDiagnostics() { set(optional); type=4;} - void select_id_LHN_ID() { set(optional); type=5;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -X2SetupResponse ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{X2SetupResponse-IEs}}, - ... -} -*/ - -struct X2SetupResponse : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "X2SetupResponse";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; diff --git a/e2sim/previous/e2apv1sim/src/ASN1/generated/X2AP-PDU-Descriptions.hpp b/e2sim/previous/e2apv1sim/src/ASN1/generated/X2AP-PDU-Descriptions.hpp deleted file mode 100644 index 5fbef04..0000000 --- a/e2sim/previous/e2apv1sim/src/ASN1/generated/X2AP-PDU-Descriptions.hpp +++ /dev/null @@ -1,1537 +0,0 @@ -/***************************************************************************** -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -#pragma once - -#include "asn/asn.hpp" -static_assert(ASN_API_VERSION_MAJOR == 5, "re-generate the ASN parser's code using 'make regen-asn' (do not use -j option)"); - -#include "X2AP-CommonDataTypes.hpp" -#include "X2AP-PDU-Contents.hpp" -#include "X2AP-Constants.hpp" - -/* -X2AP-ELEMENTARY-PROCEDURE ::= CLASS { - &InitiatingMessage , - &SuccessfulOutcome OPTIONAL, - &UnsuccessfulOutcome OPTIONAL, - &procedureCode ProcedureCode UNIQUE, - &criticality Criticality DEFAULT ignore -} -WITH SYNTAX { - INITIATING MESSAGE &InitiatingMessage - [SUCCESSFUL OUTCOME &SuccessfulOutcome] - [UNSUCCESSFUL OUTCOME &UnsuccessfulOutcome] - PROCEDURE CODE &procedureCode - [CRITICALITY &criticality] -} -*/ - -struct X2AP_ELEMENTARY_PROCEDURE -{ - struct procedureCode_t : ProcedureCode - { - static constexpr const char* name() {return "procedureCode_t";} - using parent_t = ProcedureCode; - - }; - struct criticality_t : Criticality - { - static constexpr const char* name() {return "criticality_t";} - using parent_t = Criticality; - - }; - -}; -/* -X2AP-ELEMENTARY-PROCEDURES X2AP-ELEMENTARY-PROCEDURE ::= { - X2AP-ELEMENTARY-PROCEDURES-CLASS-1 | - X2AP-ELEMENTARY-PROCEDURES-CLASS-2 , - ... -} -*/ - -struct X2AP_ELEMENTARY_PROCEDURES -{ - struct InitiatingMessage_t : asn::typefield - { - ~InitiatingMessage_t() {clear();} - size_t get_index() const {return type;} - HandoverRequest& select_id_handoverPreparation() { return set(1); } - HandoverRequest const* get_id_handoverPreparation() const { return get(1); } - ResetRequest& select_id_reset() { return set(2); } - ResetRequest const* get_id_reset() const { return get(2); } - X2SetupRequest& select_id_x2Setup() { return set(3); } - X2SetupRequest const* get_id_x2Setup() const { return get(3); } - ResourceStatusRequest& select_id_resourceStatusReportingInitiation() { return set(4); } - ResourceStatusRequest const* get_id_resourceStatusReportingInitiation() const { return get(4); } - ENBConfigurationUpdate& select_id_eNBConfigurationUpdate() { return set(5); } - ENBConfigurationUpdate const* get_id_eNBConfigurationUpdate() const { return get(5); } - MobilityChangeRequest& select_id_mobilitySettingsChange() { return set(6); } - MobilityChangeRequest const* get_id_mobilitySettingsChange() const { return get(6); } - CellActivationRequest& select_id_cellActivation() { return set(7); } - CellActivationRequest const* get_id_cellActivation() const { return get(7); } - SeNBAdditionRequest& select_id_seNBAdditionPreparation() { return set(8); } - SeNBAdditionRequest const* get_id_seNBAdditionPreparation() const { return get(8); } - SeNBModificationRequest& select_id_meNBinitiatedSeNBModificationPreparation() { return set(9); } - SeNBModificationRequest const* get_id_meNBinitiatedSeNBModificationPreparation() const { return get(9); } - SeNBModificationRequired& select_id_seNBinitiatedSeNBModification() { return set(10); } - SeNBModificationRequired const* get_id_seNBinitiatedSeNBModification() const { return get(10); } - SeNBReleaseRequired& select_id_seNBinitiatedSeNBRelease() { return set(11); } - SeNBReleaseRequired const* get_id_seNBinitiatedSeNBRelease() const { return get(11); } - X2RemovalRequest& select_id_x2Removal() { return set(12); } - X2RemovalRequest const* get_id_x2Removal() const { return get(12); } - RetrieveUEContextRequest& select_id_retrieveUEContext() { return set(13); } - RetrieveUEContextRequest const* get_id_retrieveUEContext() const { return get(13); } - SgNBAdditionRequest& select_id_sgNBAdditionPreparation() { return set(14); } - SgNBAdditionRequest const* get_id_sgNBAdditionPreparation() const { return get(14); } - SgNBModificationRequest& select_id_meNBinitiatedSgNBModificationPreparation() { return set(15); } - SgNBModificationRequest const* get_id_meNBinitiatedSgNBModificationPreparation() const { return get(15); } - SgNBModificationRequired& select_id_sgNBinitiatedSgNBModification() { return set(16); } - SgNBModificationRequired const* get_id_sgNBinitiatedSgNBModification() const { return get(16); } - SgNBReleaseRequest& select_id_meNBinitiatedSgNBRelease() { return set(17); } - SgNBReleaseRequest const* get_id_meNBinitiatedSgNBRelease() const { return get(17); } - SgNBReleaseRequired& select_id_sgNBinitiatedSgNBRelease() { return set(18); } - SgNBReleaseRequired const* get_id_sgNBinitiatedSgNBRelease() const { return get(18); } - SgNBChangeRequired& select_id_sgNBChange() { return set(19); } - SgNBChangeRequired const* get_id_sgNBChange() const { return get(19); } - ENDCX2SetupRequest& select_id_endcX2Setup() { return set(20); } - ENDCX2SetupRequest const* get_id_endcX2Setup() const { return get(20); } - ENDCConfigurationUpdate& select_id_endcConfigurationUpdate() { return set(21); } - ENDCConfigurationUpdate const* get_id_endcConfigurationUpdate() const { return get(21); } - ENDCCellActivationRequest& select_id_endcCellActivation() { return set(22); } - ENDCCellActivationRequest const* get_id_endcCellActivation() const { return get(22); } - ENDCPartialResetRequired& select_id_endcPartialReset() { return set(23); } - ENDCPartialResetRequired const* get_id_endcPartialReset() const { return get(23); } - EUTRANRCellResourceCoordinationRequest& select_id_eUTRANRCellResourceCoordination() { return set(24); } - EUTRANRCellResourceCoordinationRequest const* get_id_eUTRANRCellResourceCoordination() const { return get(24); } - ENDCX2RemovalRequest& select_id_endcX2Removal() { return set(25); } - ENDCX2RemovalRequest const* get_id_endcX2Removal() const { return get(25); } - SNStatusTransfer& select_id_snStatusTransfer() { return set(26); } - SNStatusTransfer const* get_id_snStatusTransfer() const { return get(26); } - UEContextRelease& select_id_uEContextRelease() { return set(27); } - UEContextRelease const* get_id_uEContextRelease() const { return get(27); } - HandoverCancel& select_id_handoverCancel() { return set(28); } - HandoverCancel const* get_id_handoverCancel() const { return get(28); } - ErrorIndication& select_id_errorIndication() { return set(29); } - ErrorIndication const* get_id_errorIndication() const { return get(29); } - ResourceStatusUpdate& select_id_resourceStatusReporting() { return set(30); } - ResourceStatusUpdate const* get_id_resourceStatusReporting() const { return get(30); } - LoadInformation& select_id_loadIndication() { return set(31); } - LoadInformation const* get_id_loadIndication() const { return get(31); } - PrivateMessage& select_id_privateMessage() { return set(32); } - PrivateMessage const* get_id_privateMessage() const { return get(32); } - RLFIndication& select_id_rLFIndication() { return set(33); } - RLFIndication const* get_id_rLFIndication() const { return get(33); } - HandoverReport& select_id_handoverReport() { return set(34); } - HandoverReport const* get_id_handoverReport() const { return get(34); } - X2Release& select_id_x2Release() { return set(35); } - X2Release const* get_id_x2Release() const { return get(35); } - X2APMessageTransfer& select_id_x2APMessageTransfer() { return set(36); } - X2APMessageTransfer const* get_id_x2APMessageTransfer() const { return get(36); } - SeNBReconfigurationComplete& select_id_seNBReconfigurationCompletion() { return set(37); } - SeNBReconfigurationComplete const* get_id_seNBReconfigurationCompletion() const { return get(37); } - SeNBReleaseRequest& select_id_meNBinitiatedSeNBRelease() { return set(38); } - SeNBReleaseRequest const* get_id_meNBinitiatedSeNBRelease() const { return get(38); } - SeNBCounterCheckRequest& select_id_seNBCounterCheck() { return set(39); } - SeNBCounterCheckRequest const* get_id_seNBCounterCheck() const { return get(39); } - SgNBReconfigurationComplete& select_id_sgNBReconfigurationCompletion() { return set(40); } - SgNBReconfigurationComplete const* get_id_sgNBReconfigurationCompletion() const { return get(40); } - SgNBCounterCheckRequest& select_id_sgNBCounterCheck() { return set(41); } - SgNBCounterCheckRequest const* get_id_sgNBCounterCheck() const { return get(41); } - RRCTransfer& select_id_rRCTransfer() { return set(42); } - RRCTransfer const* get_id_rRCTransfer() const { return get(42); } - SecondaryRATDataUsageReport& select_id_secondaryRATDataUsageReport() { return set(43); } - SecondaryRATDataUsageReport const* get_id_secondaryRATDataUsageReport() const { return get(43); } - SgNBActivityNotification& select_id_SgNBActivityNotification() { return set(44); } - SgNBActivityNotification const* get_id_SgNBActivityNotification() const { return get(44); } - DataForwardingAddressIndication& select_id_dataForwardingAddressIndication() { return set(45); } - DataForwardingAddressIndication const* get_id_dataForwardingAddressIndication() const { return get(45); } - bool is_unknown() const { return type == 46; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - case 7: var.destroy(); break; - case 8: var.destroy(); break; - case 9: var.destroy(); break; - case 10: var.destroy(); break; - case 11: var.destroy(); break; - case 12: var.destroy(); break; - case 13: var.destroy(); break; - case 14: var.destroy(); break; - case 15: var.destroy(); break; - case 16: var.destroy(); break; - case 17: var.destroy(); break; - case 18: var.destroy(); break; - case 19: var.destroy(); break; - case 20: var.destroy(); break; - case 21: var.destroy(); break; - case 22: var.destroy(); break; - case 23: var.destroy(); break; - case 24: var.destroy(); break; - case 25: var.destroy(); break; - case 26: var.destroy(); break; - case 27: var.destroy(); break; - case 28: var.destroy(); break; - case 29: var.destroy(); break; - case 30: var.destroy(); break; - case 31: var.destroy(); break; - case 32: var.destroy(); break; - case 33: var.destroy(); break; - case 34: var.destroy(); break; - case 35: var.destroy(); break; - case 36: var.destroy(); break; - case 37: var.destroy(); break; - case 38: var.destroy(); break; - case 39: var.destroy(); break; - case 40: var.destroy(); break; - case 41: var.destroy(); break; - case 42: var.destroy(); break; - case 43: var.destroy(); break; - case 44: var.destroy(); break; - case 45: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - v.template operator()(7); - v.template operator()(8); - v.template operator()(9); - v.template operator()(10); - v.template operator()(11); - v.template operator()(12); - v.template operator()(13); - v.template operator()(14); - v.template operator()(15); - v.template operator()(16); - v.template operator()(17); - v.template operator()(18); - v.template operator()(19); - v.template operator()(20); - v.template operator()(21); - v.template operator()(22); - v.template operator()(23); - v.template operator()(24); - v.template operator()(25); - v.template operator()(26); - v.template operator()(27); - v.template operator()(28); - v.template operator()(29); - v.template operator()(30); - v.template operator()(31); - v.template operator()(32); - v.template operator()(33); - v.template operator()(34); - v.template operator()(35); - v.template operator()(36); - v.template operator()(37); - v.template operator()(38); - v.template operator()(39); - v.template operator()(40); - v.template operator()(41); - v.template operator()(42); - v.template operator()(43); - v.template operator()(44); - v.template operator()(45); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_handoverPreparation()); return true; - case 2: v(select_id_reset()); return true; - case 3: v(select_id_x2Setup()); return true; - case 4: v(select_id_resourceStatusReportingInitiation()); return true; - case 5: v(select_id_eNBConfigurationUpdate()); return true; - case 6: v(select_id_mobilitySettingsChange()); return true; - case 7: v(select_id_cellActivation()); return true; - case 8: v(select_id_seNBAdditionPreparation()); return true; - case 9: v(select_id_meNBinitiatedSeNBModificationPreparation()); return true; - case 10: v(select_id_seNBinitiatedSeNBModification()); return true; - case 11: v(select_id_seNBinitiatedSeNBRelease()); return true; - case 12: v(select_id_x2Removal()); return true; - case 13: v(select_id_retrieveUEContext()); return true; - case 14: v(select_id_sgNBAdditionPreparation()); return true; - case 15: v(select_id_meNBinitiatedSgNBModificationPreparation()); return true; - case 16: v(select_id_sgNBinitiatedSgNBModification()); return true; - case 17: v(select_id_meNBinitiatedSgNBRelease()); return true; - case 18: v(select_id_sgNBinitiatedSgNBRelease()); return true; - case 19: v(select_id_sgNBChange()); return true; - case 20: v(select_id_endcX2Setup()); return true; - case 21: v(select_id_endcConfigurationUpdate()); return true; - case 22: v(select_id_endcCellActivation()); return true; - case 23: v(select_id_endcPartialReset()); return true; - case 24: v(select_id_eUTRANRCellResourceCoordination()); return true; - case 25: v(select_id_endcX2Removal()); return true; - case 26: v(select_id_snStatusTransfer()); return true; - case 27: v(select_id_uEContextRelease()); return true; - case 28: v(select_id_handoverCancel()); return true; - case 29: v(select_id_errorIndication()); return true; - case 30: v(select_id_resourceStatusReporting()); return true; - case 31: v(select_id_loadIndication()); return true; - case 32: v(select_id_privateMessage()); return true; - case 33: v(select_id_rLFIndication()); return true; - case 34: v(select_id_handoverReport()); return true; - case 35: v(select_id_x2Release()); return true; - case 36: v(select_id_x2APMessageTransfer()); return true; - case 37: v(select_id_seNBReconfigurationCompletion()); return true; - case 38: v(select_id_meNBinitiatedSeNBRelease()); return true; - case 39: v(select_id_seNBCounterCheck()); return true; - case 40: v(select_id_sgNBReconfigurationCompletion()); return true; - case 41: v(select_id_sgNBCounterCheck()); return true; - case 42: v(select_id_rRCTransfer()); return true; - case 43: v(select_id_secondaryRATDataUsageReport()); return true; - case 44: v(select_id_SgNBActivityNotification()); return true; - case 45: v(select_id_dataForwardingAddressIndication()); return true; - case 46: if(type != 46) {clear(); asn::base::set();} type = 46; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - case 7: v(var.as()); return true; - case 8: v(var.as()); return true; - case 9: v(var.as()); return true; - case 10: v(var.as()); return true; - case 11: v(var.as()); return true; - case 12: v(var.as()); return true; - case 13: v(var.as()); return true; - case 14: v(var.as()); return true; - case 15: v(var.as()); return true; - case 16: v(var.as()); return true; - case 17: v(var.as()); return true; - case 18: v(var.as()); return true; - case 19: v(var.as()); return true; - case 20: v(var.as()); return true; - case 21: v(var.as()); return true; - case 22: v(var.as()); return true; - case 23: v(var.as()); return true; - case 24: v(var.as()); return true; - case 25: v(var.as()); return true; - case 26: v(var.as()); return true; - case 27: v(var.as()); return true; - case 28: v(var.as()); return true; - case 29: v(var.as()); return true; - case 30: v(var.as()); return true; - case 31: v(var.as()); return true; - case 32: v(var.as()); return true; - case 33: v(var.as()); return true; - case 34: v(var.as()); return true; - case 35: v(var.as()); return true; - case 36: v(var.as()); return true; - case 37: v(var.as()); return true; - case 38: v(var.as()); return true; - case 39: v(var.as()); return true; - case 40: v(var.as()); return true; - case 41: v(var.as()); return true; - case 42: v(var.as()); return true; - case 43: v(var.as()); return true; - case 44: v(var.as()); return true; - case 45: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CellActivationRequest)]; - char dummy2[sizeof(DataForwardingAddressIndication)]; - char dummy3[sizeof(ENBConfigurationUpdate)]; - char dummy4[sizeof(ENDCCellActivationRequest)]; - char dummy5[sizeof(ENDCConfigurationUpdate)]; - char dummy6[sizeof(ENDCPartialResetRequired)]; - char dummy7[sizeof(ENDCX2RemovalRequest)]; - char dummy8[sizeof(ENDCX2SetupRequest)]; - char dummy9[sizeof(EUTRANRCellResourceCoordinationRequest)]; - char dummy10[sizeof(ErrorIndication)]; - char dummy11[sizeof(HandoverCancel)]; - char dummy12[sizeof(HandoverReport)]; - char dummy13[sizeof(HandoverRequest)]; - char dummy14[sizeof(LoadInformation)]; - char dummy15[sizeof(MobilityChangeRequest)]; - char dummy16[sizeof(PrivateMessage)]; - char dummy17[sizeof(RLFIndication)]; - char dummy18[sizeof(RRCTransfer)]; - char dummy19[sizeof(ResetRequest)]; - char dummy20[sizeof(ResourceStatusRequest)]; - char dummy21[sizeof(ResourceStatusUpdate)]; - char dummy22[sizeof(RetrieveUEContextRequest)]; - char dummy23[sizeof(SNStatusTransfer)]; - char dummy24[sizeof(SeNBAdditionRequest)]; - char dummy25[sizeof(SeNBCounterCheckRequest)]; - char dummy26[sizeof(SeNBModificationRequest)]; - char dummy27[sizeof(SeNBModificationRequired)]; - char dummy28[sizeof(SeNBReconfigurationComplete)]; - char dummy29[sizeof(SeNBReleaseRequest)]; - char dummy30[sizeof(SeNBReleaseRequired)]; - char dummy31[sizeof(SecondaryRATDataUsageReport)]; - char dummy32[sizeof(SgNBActivityNotification)]; - char dummy33[sizeof(SgNBAdditionRequest)]; - char dummy34[sizeof(SgNBChangeRequired)]; - char dummy35[sizeof(SgNBCounterCheckRequest)]; - char dummy36[sizeof(SgNBModificationRequest)]; - char dummy37[sizeof(SgNBModificationRequired)]; - char dummy38[sizeof(SgNBReconfigurationComplete)]; - char dummy39[sizeof(SgNBReleaseRequest)]; - char dummy40[sizeof(SgNBReleaseRequired)]; - char dummy41[sizeof(UEContextRelease)]; - char dummy42[sizeof(X2APMessageTransfer)]; - char dummy43[sizeof(X2Release)]; - char dummy44[sizeof(X2RemovalRequest)]; - char dummy45[sizeof(X2SetupRequest)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct SuccessfulOutcome_t : asn::typefield - { - ~SuccessfulOutcome_t() {clear();} - size_t get_index() const {return type;} - HandoverRequestAcknowledge& select_id_handoverPreparation() { return set(1); } - HandoverRequestAcknowledge const* get_id_handoverPreparation() const { return get(1); } - ResetResponse& select_id_reset() { return set(2); } - ResetResponse const* get_id_reset() const { return get(2); } - X2SetupResponse& select_id_x2Setup() { return set(3); } - X2SetupResponse const* get_id_x2Setup() const { return get(3); } - ResourceStatusResponse& select_id_resourceStatusReportingInitiation() { return set(4); } - ResourceStatusResponse const* get_id_resourceStatusReportingInitiation() const { return get(4); } - ENBConfigurationUpdateAcknowledge& select_id_eNBConfigurationUpdate() { return set(5); } - ENBConfigurationUpdateAcknowledge const* get_id_eNBConfigurationUpdate() const { return get(5); } - MobilityChangeAcknowledge& select_id_mobilitySettingsChange() { return set(6); } - MobilityChangeAcknowledge const* get_id_mobilitySettingsChange() const { return get(6); } - CellActivationResponse& select_id_cellActivation() { return set(7); } - CellActivationResponse const* get_id_cellActivation() const { return get(7); } - SeNBAdditionRequestAcknowledge& select_id_seNBAdditionPreparation() { return set(8); } - SeNBAdditionRequestAcknowledge const* get_id_seNBAdditionPreparation() const { return get(8); } - SeNBModificationRequestAcknowledge& select_id_meNBinitiatedSeNBModificationPreparation() { return set(9); } - SeNBModificationRequestAcknowledge const* get_id_meNBinitiatedSeNBModificationPreparation() const { return get(9); } - SeNBModificationConfirm& select_id_seNBinitiatedSeNBModification() { return set(10); } - SeNBModificationConfirm const* get_id_seNBinitiatedSeNBModification() const { return get(10); } - SeNBReleaseConfirm& select_id_seNBinitiatedSeNBRelease() { return set(11); } - SeNBReleaseConfirm const* get_id_seNBinitiatedSeNBRelease() const { return get(11); } - X2RemovalResponse& select_id_x2Removal() { return set(12); } - X2RemovalResponse const* get_id_x2Removal() const { return get(12); } - RetrieveUEContextResponse& select_id_retrieveUEContext() { return set(13); } - RetrieveUEContextResponse const* get_id_retrieveUEContext() const { return get(13); } - SgNBAdditionRequestAcknowledge& select_id_sgNBAdditionPreparation() { return set(14); } - SgNBAdditionRequestAcknowledge const* get_id_sgNBAdditionPreparation() const { return get(14); } - SgNBModificationRequestAcknowledge& select_id_meNBinitiatedSgNBModificationPreparation() { return set(15); } - SgNBModificationRequestAcknowledge const* get_id_meNBinitiatedSgNBModificationPreparation() const { return get(15); } - SgNBModificationConfirm& select_id_sgNBinitiatedSgNBModification() { return set(16); } - SgNBModificationConfirm const* get_id_sgNBinitiatedSgNBModification() const { return get(16); } - SgNBReleaseRequestAcknowledge& select_id_meNBinitiatedSgNBRelease() { return set(17); } - SgNBReleaseRequestAcknowledge const* get_id_meNBinitiatedSgNBRelease() const { return get(17); } - SgNBReleaseConfirm& select_id_sgNBinitiatedSgNBRelease() { return set(18); } - SgNBReleaseConfirm const* get_id_sgNBinitiatedSgNBRelease() const { return get(18); } - SgNBChangeConfirm& select_id_sgNBChange() { return set(19); } - SgNBChangeConfirm const* get_id_sgNBChange() const { return get(19); } - ENDCX2SetupResponse& select_id_endcX2Setup() { return set(20); } - ENDCX2SetupResponse const* get_id_endcX2Setup() const { return get(20); } - ENDCConfigurationUpdateAcknowledge& select_id_endcConfigurationUpdate() { return set(21); } - ENDCConfigurationUpdateAcknowledge const* get_id_endcConfigurationUpdate() const { return get(21); } - ENDCCellActivationResponse& select_id_endcCellActivation() { return set(22); } - ENDCCellActivationResponse const* get_id_endcCellActivation() const { return get(22); } - ENDCPartialResetConfirm& select_id_endcPartialReset() { return set(23); } - ENDCPartialResetConfirm const* get_id_endcPartialReset() const { return get(23); } - EUTRANRCellResourceCoordinationResponse& select_id_eUTRANRCellResourceCoordination() { return set(24); } - EUTRANRCellResourceCoordinationResponse const* get_id_eUTRANRCellResourceCoordination() const { return get(24); } - ENDCX2RemovalResponse& select_id_endcX2Removal() { return set(25); } - ENDCX2RemovalResponse const* get_id_endcX2Removal() const { return get(25); } - bool is_unknown() const { return type == 46; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - case 7: var.destroy(); break; - case 8: var.destroy(); break; - case 9: var.destroy(); break; - case 10: var.destroy(); break; - case 11: var.destroy(); break; - case 12: var.destroy(); break; - case 13: var.destroy(); break; - case 14: var.destroy(); break; - case 15: var.destroy(); break; - case 16: var.destroy(); break; - case 17: var.destroy(); break; - case 18: var.destroy(); break; - case 19: var.destroy(); break; - case 20: var.destroy(); break; - case 21: var.destroy(); break; - case 22: var.destroy(); break; - case 23: var.destroy(); break; - case 24: var.destroy(); break; - case 25: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - v.template operator()(7); - v.template operator()(8); - v.template operator()(9); - v.template operator()(10); - v.template operator()(11); - v.template operator()(12); - v.template operator()(13); - v.template operator()(14); - v.template operator()(15); - v.template operator()(16); - v.template operator()(17); - v.template operator()(18); - v.template operator()(19); - v.template operator()(20); - v.template operator()(21); - v.template operator()(22); - v.template operator()(23); - v.template operator()(24); - v.template operator()(25); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_handoverPreparation()); return true; - case 2: v(select_id_reset()); return true; - case 3: v(select_id_x2Setup()); return true; - case 4: v(select_id_resourceStatusReportingInitiation()); return true; - case 5: v(select_id_eNBConfigurationUpdate()); return true; - case 6: v(select_id_mobilitySettingsChange()); return true; - case 7: v(select_id_cellActivation()); return true; - case 8: v(select_id_seNBAdditionPreparation()); return true; - case 9: v(select_id_meNBinitiatedSeNBModificationPreparation()); return true; - case 10: v(select_id_seNBinitiatedSeNBModification()); return true; - case 11: v(select_id_seNBinitiatedSeNBRelease()); return true; - case 12: v(select_id_x2Removal()); return true; - case 13: v(select_id_retrieveUEContext()); return true; - case 14: v(select_id_sgNBAdditionPreparation()); return true; - case 15: v(select_id_meNBinitiatedSgNBModificationPreparation()); return true; - case 16: v(select_id_sgNBinitiatedSgNBModification()); return true; - case 17: v(select_id_meNBinitiatedSgNBRelease()); return true; - case 18: v(select_id_sgNBinitiatedSgNBRelease()); return true; - case 19: v(select_id_sgNBChange()); return true; - case 20: v(select_id_endcX2Setup()); return true; - case 21: v(select_id_endcConfigurationUpdate()); return true; - case 22: v(select_id_endcCellActivation()); return true; - case 23: v(select_id_endcPartialReset()); return true; - case 24: v(select_id_eUTRANRCellResourceCoordination()); return true; - case 25: v(select_id_endcX2Removal()); return true; - case 46: if(type != 46) {clear(); asn::base::set();} type = 46; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - case 7: v(var.as()); return true; - case 8: v(var.as()); return true; - case 9: v(var.as()); return true; - case 10: v(var.as()); return true; - case 11: v(var.as()); return true; - case 12: v(var.as()); return true; - case 13: v(var.as()); return true; - case 14: v(var.as()); return true; - case 15: v(var.as()); return true; - case 16: v(var.as()); return true; - case 17: v(var.as()); return true; - case 18: v(var.as()); return true; - case 19: v(var.as()); return true; - case 20: v(var.as()); return true; - case 21: v(var.as()); return true; - case 22: v(var.as()); return true; - case 23: v(var.as()); return true; - case 24: v(var.as()); return true; - case 25: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CellActivationResponse)]; - char dummy2[sizeof(ENBConfigurationUpdateAcknowledge)]; - char dummy3[sizeof(ENDCCellActivationResponse)]; - char dummy4[sizeof(ENDCConfigurationUpdateAcknowledge)]; - char dummy5[sizeof(ENDCPartialResetConfirm)]; - char dummy6[sizeof(ENDCX2RemovalResponse)]; - char dummy7[sizeof(ENDCX2SetupResponse)]; - char dummy8[sizeof(EUTRANRCellResourceCoordinationResponse)]; - char dummy9[sizeof(HandoverRequestAcknowledge)]; - char dummy10[sizeof(MobilityChangeAcknowledge)]; - char dummy11[sizeof(ResetResponse)]; - char dummy12[sizeof(ResourceStatusResponse)]; - char dummy13[sizeof(RetrieveUEContextResponse)]; - char dummy14[sizeof(SeNBAdditionRequestAcknowledge)]; - char dummy15[sizeof(SeNBModificationConfirm)]; - char dummy16[sizeof(SeNBModificationRequestAcknowledge)]; - char dummy17[sizeof(SeNBReleaseConfirm)]; - char dummy18[sizeof(SgNBAdditionRequestAcknowledge)]; - char dummy19[sizeof(SgNBChangeConfirm)]; - char dummy20[sizeof(SgNBModificationConfirm)]; - char dummy21[sizeof(SgNBModificationRequestAcknowledge)]; - char dummy22[sizeof(SgNBReleaseConfirm)]; - char dummy23[sizeof(SgNBReleaseRequestAcknowledge)]; - char dummy24[sizeof(X2RemovalResponse)]; - char dummy25[sizeof(X2SetupResponse)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct UnsuccessfulOutcome_t : asn::typefield - { - ~UnsuccessfulOutcome_t() {clear();} - size_t get_index() const {return type;} - HandoverPreparationFailure& select_id_handoverPreparation() { return set(1); } - HandoverPreparationFailure const* get_id_handoverPreparation() const { return get(1); } - X2SetupFailure& select_id_x2Setup() { return set(3); } - X2SetupFailure const* get_id_x2Setup() const { return get(3); } - ResourceStatusFailure& select_id_resourceStatusReportingInitiation() { return set(4); } - ResourceStatusFailure const* get_id_resourceStatusReportingInitiation() const { return get(4); } - ENBConfigurationUpdateFailure& select_id_eNBConfigurationUpdate() { return set(5); } - ENBConfigurationUpdateFailure const* get_id_eNBConfigurationUpdate() const { return get(5); } - MobilityChangeFailure& select_id_mobilitySettingsChange() { return set(6); } - MobilityChangeFailure const* get_id_mobilitySettingsChange() const { return get(6); } - CellActivationFailure& select_id_cellActivation() { return set(7); } - CellActivationFailure const* get_id_cellActivation() const { return get(7); } - SeNBAdditionRequestReject& select_id_seNBAdditionPreparation() { return set(8); } - SeNBAdditionRequestReject const* get_id_seNBAdditionPreparation() const { return get(8); } - SeNBModificationRequestReject& select_id_meNBinitiatedSeNBModificationPreparation() { return set(9); } - SeNBModificationRequestReject const* get_id_meNBinitiatedSeNBModificationPreparation() const { return get(9); } - SeNBModificationRefuse& select_id_seNBinitiatedSeNBModification() { return set(10); } - SeNBModificationRefuse const* get_id_seNBinitiatedSeNBModification() const { return get(10); } - X2RemovalFailure& select_id_x2Removal() { return set(12); } - X2RemovalFailure const* get_id_x2Removal() const { return get(12); } - RetrieveUEContextFailure& select_id_retrieveUEContext() { return set(13); } - RetrieveUEContextFailure const* get_id_retrieveUEContext() const { return get(13); } - SgNBAdditionRequestReject& select_id_sgNBAdditionPreparation() { return set(14); } - SgNBAdditionRequestReject const* get_id_sgNBAdditionPreparation() const { return get(14); } - SgNBModificationRequestReject& select_id_meNBinitiatedSgNBModificationPreparation() { return set(15); } - SgNBModificationRequestReject const* get_id_meNBinitiatedSgNBModificationPreparation() const { return get(15); } - SgNBModificationRefuse& select_id_sgNBinitiatedSgNBModification() { return set(16); } - SgNBModificationRefuse const* get_id_sgNBinitiatedSgNBModification() const { return get(16); } - SgNBReleaseRequestReject& select_id_meNBinitiatedSgNBRelease() { return set(17); } - SgNBReleaseRequestReject const* get_id_meNBinitiatedSgNBRelease() const { return get(17); } - SgNBChangeRefuse& select_id_sgNBChange() { return set(19); } - SgNBChangeRefuse const* get_id_sgNBChange() const { return get(19); } - ENDCX2SetupFailure& select_id_endcX2Setup() { return set(20); } - ENDCX2SetupFailure const* get_id_endcX2Setup() const { return get(20); } - ENDCConfigurationUpdateFailure& select_id_endcConfigurationUpdate() { return set(21); } - ENDCConfigurationUpdateFailure const* get_id_endcConfigurationUpdate() const { return get(21); } - ENDCCellActivationFailure& select_id_endcCellActivation() { return set(22); } - ENDCCellActivationFailure const* get_id_endcCellActivation() const { return get(22); } - ENDCX2RemovalFailure& select_id_endcX2Removal() { return set(25); } - ENDCX2RemovalFailure const* get_id_endcX2Removal() const { return get(25); } - bool is_unknown() const { return type == 46; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - case 7: var.destroy(); break; - case 8: var.destroy(); break; - case 9: var.destroy(); break; - case 10: var.destroy(); break; - case 12: var.destroy(); break; - case 13: var.destroy(); break; - case 14: var.destroy(); break; - case 15: var.destroy(); break; - case 16: var.destroy(); break; - case 17: var.destroy(); break; - case 19: var.destroy(); break; - case 20: var.destroy(); break; - case 21: var.destroy(); break; - case 22: var.destroy(); break; - case 25: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - v.template operator()(7); - v.template operator()(8); - v.template operator()(9); - v.template operator()(10); - v.template operator()(12); - v.template operator()(13); - v.template operator()(14); - v.template operator()(15); - v.template operator()(16); - v.template operator()(17); - v.template operator()(19); - v.template operator()(20); - v.template operator()(21); - v.template operator()(22); - v.template operator()(25); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_handoverPreparation()); return true; - case 3: v(select_id_x2Setup()); return true; - case 4: v(select_id_resourceStatusReportingInitiation()); return true; - case 5: v(select_id_eNBConfigurationUpdate()); return true; - case 6: v(select_id_mobilitySettingsChange()); return true; - case 7: v(select_id_cellActivation()); return true; - case 8: v(select_id_seNBAdditionPreparation()); return true; - case 9: v(select_id_meNBinitiatedSeNBModificationPreparation()); return true; - case 10: v(select_id_seNBinitiatedSeNBModification()); return true; - case 12: v(select_id_x2Removal()); return true; - case 13: v(select_id_retrieveUEContext()); return true; - case 14: v(select_id_sgNBAdditionPreparation()); return true; - case 15: v(select_id_meNBinitiatedSgNBModificationPreparation()); return true; - case 16: v(select_id_sgNBinitiatedSgNBModification()); return true; - case 17: v(select_id_meNBinitiatedSgNBRelease()); return true; - case 19: v(select_id_sgNBChange()); return true; - case 20: v(select_id_endcX2Setup()); return true; - case 21: v(select_id_endcConfigurationUpdate()); return true; - case 22: v(select_id_endcCellActivation()); return true; - case 25: v(select_id_endcX2Removal()); return true; - case 46: if(type != 46) {clear(); asn::base::set();} type = 46; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - case 7: v(var.as()); return true; - case 8: v(var.as()); return true; - case 9: v(var.as()); return true; - case 10: v(var.as()); return true; - case 12: v(var.as()); return true; - case 13: v(var.as()); return true; - case 14: v(var.as()); return true; - case 15: v(var.as()); return true; - case 16: v(var.as()); return true; - case 17: v(var.as()); return true; - case 19: v(var.as()); return true; - case 20: v(var.as()); return true; - case 21: v(var.as()); return true; - case 22: v(var.as()); return true; - case 25: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CellActivationFailure)]; - char dummy2[sizeof(ENBConfigurationUpdateFailure)]; - char dummy3[sizeof(ENDCCellActivationFailure)]; - char dummy4[sizeof(ENDCConfigurationUpdateFailure)]; - char dummy5[sizeof(ENDCX2RemovalFailure)]; - char dummy6[sizeof(ENDCX2SetupFailure)]; - char dummy7[sizeof(HandoverPreparationFailure)]; - char dummy8[sizeof(MobilityChangeFailure)]; - char dummy9[sizeof(ResourceStatusFailure)]; - char dummy10[sizeof(RetrieveUEContextFailure)]; - char dummy11[sizeof(SeNBAdditionRequestReject)]; - char dummy12[sizeof(SeNBModificationRefuse)]; - char dummy13[sizeof(SeNBModificationRequestReject)]; - char dummy14[sizeof(SgNBAdditionRequestReject)]; - char dummy15[sizeof(SgNBChangeRefuse)]; - char dummy16[sizeof(SgNBModificationRefuse)]; - char dummy17[sizeof(SgNBModificationRequestReject)]; - char dummy18[sizeof(SgNBReleaseRequestReject)]; - char dummy19[sizeof(X2RemovalFailure)]; - char dummy20[sizeof(X2SetupFailure)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct procedureCode_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 46; } - void clear() {type = 0;} - void select_id_handoverPreparation() { set(id_handoverPreparation); type=1;} - void select_id_reset() { set(id_reset); type=2;} - void select_id_x2Setup() { set(id_x2Setup); type=3;} - void select_id_resourceStatusReportingInitiation() { set(id_resourceStatusReportingInitiation); type=4;} - void select_id_eNBConfigurationUpdate() { set(id_eNBConfigurationUpdate); type=5;} - void select_id_mobilitySettingsChange() { set(id_mobilitySettingsChange); type=6;} - void select_id_cellActivation() { set(id_cellActivation); type=7;} - void select_id_seNBAdditionPreparation() { set(id_seNBAdditionPreparation); type=8;} - void select_id_meNBinitiatedSeNBModificationPreparation() { set(id_meNBinitiatedSeNBModificationPreparation); type=9;} - void select_id_seNBinitiatedSeNBModification() { set(id_seNBinitiatedSeNBModification); type=10;} - void select_id_seNBinitiatedSeNBRelease() { set(id_seNBinitiatedSeNBRelease); type=11;} - void select_id_x2Removal() { set(id_x2Removal); type=12;} - void select_id_retrieveUEContext() { set(id_retrieveUEContext); type=13;} - void select_id_sgNBAdditionPreparation() { set(id_sgNBAdditionPreparation); type=14;} - void select_id_meNBinitiatedSgNBModificationPreparation() { set(id_meNBinitiatedSgNBModificationPreparation); type=15;} - void select_id_sgNBinitiatedSgNBModification() { set(id_sgNBinitiatedSgNBModification); type=16;} - void select_id_meNBinitiatedSgNBRelease() { set(id_meNBinitiatedSgNBRelease); type=17;} - void select_id_sgNBinitiatedSgNBRelease() { set(id_sgNBinitiatedSgNBRelease); type=18;} - void select_id_sgNBChange() { set(id_sgNBChange); type=19;} - void select_id_endcX2Setup() { set(id_endcX2Setup); type=20;} - void select_id_endcConfigurationUpdate() { set(id_endcConfigurationUpdate); type=21;} - void select_id_endcCellActivation() { set(id_endcCellActivation); type=22;} - void select_id_endcPartialReset() { set(id_endcPartialReset); type=23;} - void select_id_eUTRANRCellResourceCoordination() { set(id_eUTRANRCellResourceCoordination); type=24;} - void select_id_endcX2Removal() { set(id_endcX2Removal); type=25;} - void select_id_snStatusTransfer() { set(id_snStatusTransfer); type=26;} - void select_id_uEContextRelease() { set(id_uEContextRelease); type=27;} - void select_id_handoverCancel() { set(id_handoverCancel); type=28;} - void select_id_errorIndication() { set(id_errorIndication); type=29;} - void select_id_resourceStatusReporting() { set(id_resourceStatusReporting); type=30;} - void select_id_loadIndication() { set(id_loadIndication); type=31;} - void select_id_privateMessage() { set(id_privateMessage); type=32;} - void select_id_rLFIndication() { set(id_rLFIndication); type=33;} - void select_id_handoverReport() { set(id_handoverReport); type=34;} - void select_id_x2Release() { set(id_x2Release); type=35;} - void select_id_x2APMessageTransfer() { set(id_x2APMessageTransfer); type=36;} - void select_id_seNBReconfigurationCompletion() { set(id_seNBReconfigurationCompletion); type=37;} - void select_id_meNBinitiatedSeNBRelease() { set(id_meNBinitiatedSeNBRelease); type=38;} - void select_id_seNBCounterCheck() { set(id_seNBCounterCheck); type=39;} - void select_id_sgNBReconfigurationCompletion() { set(id_sgNBReconfigurationCompletion); type=40;} - void select_id_sgNBCounterCheck() { set(id_sgNBCounterCheck); type=41;} - void select_id_rRCTransfer() { set(id_rRCTransfer); type=42;} - void select_id_secondaryRATDataUsageReport() { set(id_secondaryRATDataUsageReport); type=43;} - void select_id_SgNBActivityNotification() { set(id_SgNBActivityNotification); type=44;} - void select_id_dataForwardingAddressIndication() { set(id_dataForwardingAddressIndication); type=45;} - X2AP_ELEMENTARY_PROCEDURE::procedureCode_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_handoverPreparation)) { type = 1; return true; } - else if(equal(id_reset)) { type = 2; return true; } - else if(equal(id_x2Setup)) { type = 3; return true; } - else if(equal(id_resourceStatusReportingInitiation)) { type = 4; return true; } - else if(equal(id_eNBConfigurationUpdate)) { type = 5; return true; } - else if(equal(id_mobilitySettingsChange)) { type = 6; return true; } - else if(equal(id_cellActivation)) { type = 7; return true; } - else if(equal(id_seNBAdditionPreparation)) { type = 8; return true; } - else if(equal(id_meNBinitiatedSeNBModificationPreparation)) { type = 9; return true; } - else if(equal(id_seNBinitiatedSeNBModification)) { type = 10; return true; } - else if(equal(id_seNBinitiatedSeNBRelease)) { type = 11; return true; } - else if(equal(id_x2Removal)) { type = 12; return true; } - else if(equal(id_retrieveUEContext)) { type = 13; return true; } - else if(equal(id_sgNBAdditionPreparation)) { type = 14; return true; } - else if(equal(id_meNBinitiatedSgNBModificationPreparation)) { type = 15; return true; } - else if(equal(id_sgNBinitiatedSgNBModification)) { type = 16; return true; } - else if(equal(id_meNBinitiatedSgNBRelease)) { type = 17; return true; } - else if(equal(id_sgNBinitiatedSgNBRelease)) { type = 18; return true; } - else if(equal(id_sgNBChange)) { type = 19; return true; } - else if(equal(id_endcX2Setup)) { type = 20; return true; } - else if(equal(id_endcConfigurationUpdate)) { type = 21; return true; } - else if(equal(id_endcCellActivation)) { type = 22; return true; } - else if(equal(id_endcPartialReset)) { type = 23; return true; } - else if(equal(id_eUTRANRCellResourceCoordination)) { type = 24; return true; } - else if(equal(id_endcX2Removal)) { type = 25; return true; } - else if(equal(id_snStatusTransfer)) { type = 26; return true; } - else if(equal(id_uEContextRelease)) { type = 27; return true; } - else if(equal(id_handoverCancel)) { type = 28; return true; } - else if(equal(id_errorIndication)) { type = 29; return true; } - else if(equal(id_resourceStatusReporting)) { type = 30; return true; } - else if(equal(id_loadIndication)) { type = 31; return true; } - else if(equal(id_privateMessage)) { type = 32; return true; } - else if(equal(id_rLFIndication)) { type = 33; return true; } - else if(equal(id_handoverReport)) { type = 34; return true; } - else if(equal(id_x2Release)) { type = 35; return true; } - else if(equal(id_x2APMessageTransfer)) { type = 36; return true; } - else if(equal(id_seNBReconfigurationCompletion)) { type = 37; return true; } - else if(equal(id_meNBinitiatedSeNBRelease)) { type = 38; return true; } - else if(equal(id_seNBCounterCheck)) { type = 39; return true; } - else if(equal(id_sgNBReconfigurationCompletion)) { type = 40; return true; } - else if(equal(id_sgNBCounterCheck)) { type = 41; return true; } - else if(equal(id_rRCTransfer)) { type = 42; return true; } - else if(equal(id_secondaryRATDataUsageReport)) { type = 43; return true; } - else if(equal(id_SgNBActivityNotification)) { type = 44; return true; } - else if(equal(id_dataForwardingAddressIndication)) { type = 45; return true; } - else { type = 46; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_handoverPreparation);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_reset);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_x2Setup);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_resourceStatusReportingInitiation);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_eNBConfigurationUpdate);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_mobilitySettingsChange);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(id_cellActivation);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(id_seNBAdditionPreparation);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(id_meNBinitiatedSeNBModificationPreparation);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(id_seNBinitiatedSeNBModification);} return false; - case 11: type = 11; if(v(ref_nested())) { return equal(id_seNBinitiatedSeNBRelease);} return false; - case 12: type = 12; if(v(ref_nested())) { return equal(id_x2Removal);} return false; - case 13: type = 13; if(v(ref_nested())) { return equal(id_retrieveUEContext);} return false; - case 14: type = 14; if(v(ref_nested())) { return equal(id_sgNBAdditionPreparation);} return false; - case 15: type = 15; if(v(ref_nested())) { return equal(id_meNBinitiatedSgNBModificationPreparation);} return false; - case 16: type = 16; if(v(ref_nested())) { return equal(id_sgNBinitiatedSgNBModification);} return false; - case 17: type = 17; if(v(ref_nested())) { return equal(id_meNBinitiatedSgNBRelease);} return false; - case 18: type = 18; if(v(ref_nested())) { return equal(id_sgNBinitiatedSgNBRelease);} return false; - case 19: type = 19; if(v(ref_nested())) { return equal(id_sgNBChange);} return false; - case 20: type = 20; if(v(ref_nested())) { return equal(id_endcX2Setup);} return false; - case 21: type = 21; if(v(ref_nested())) { return equal(id_endcConfigurationUpdate);} return false; - case 22: type = 22; if(v(ref_nested())) { return equal(id_endcCellActivation);} return false; - case 23: type = 23; if(v(ref_nested())) { return equal(id_endcPartialReset);} return false; - case 24: type = 24; if(v(ref_nested())) { return equal(id_eUTRANRCellResourceCoordination);} return false; - case 25: type = 25; if(v(ref_nested())) { return equal(id_endcX2Removal);} return false; - case 26: type = 26; if(v(ref_nested())) { return equal(id_snStatusTransfer);} return false; - case 27: type = 27; if(v(ref_nested())) { return equal(id_uEContextRelease);} return false; - case 28: type = 28; if(v(ref_nested())) { return equal(id_handoverCancel);} return false; - case 29: type = 29; if(v(ref_nested())) { return equal(id_errorIndication);} return false; - case 30: type = 30; if(v(ref_nested())) { return equal(id_resourceStatusReporting);} return false; - case 31: type = 31; if(v(ref_nested())) { return equal(id_loadIndication);} return false; - case 32: type = 32; if(v(ref_nested())) { return equal(id_privateMessage);} return false; - case 33: type = 33; if(v(ref_nested())) { return equal(id_rLFIndication);} return false; - case 34: type = 34; if(v(ref_nested())) { return equal(id_handoverReport);} return false; - case 35: type = 35; if(v(ref_nested())) { return equal(id_x2Release);} return false; - case 36: type = 36; if(v(ref_nested())) { return equal(id_x2APMessageTransfer);} return false; - case 37: type = 37; if(v(ref_nested())) { return equal(id_seNBReconfigurationCompletion);} return false; - case 38: type = 38; if(v(ref_nested())) { return equal(id_meNBinitiatedSeNBRelease);} return false; - case 39: type = 39; if(v(ref_nested())) { return equal(id_seNBCounterCheck);} return false; - case 40: type = 40; if(v(ref_nested())) { return equal(id_sgNBReconfigurationCompletion);} return false; - case 41: type = 41; if(v(ref_nested())) { return equal(id_sgNBCounterCheck);} return false; - case 42: type = 42; if(v(ref_nested())) { return equal(id_rRCTransfer);} return false; - case 43: type = 43; if(v(ref_nested())) { return equal(id_secondaryRATDataUsageReport);} return false; - case 44: type = 44; if(v(ref_nested())) { return equal(id_SgNBActivityNotification);} return false; - case 45: type = 45; if(v(ref_nested())) { return equal(id_dataForwardingAddressIndication);} return false; - case 46: type = 46; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 46; } - void clear() {type = 0;} - void select_id_handoverPreparation() { set(reject); type=1;} - void select_id_reset() { set(reject); type=2;} - void select_id_x2Setup() { set(reject); type=3;} - void select_id_resourceStatusReportingInitiation() { set(reject); type=4;} - void select_id_eNBConfigurationUpdate() { set(reject); type=5;} - void select_id_mobilitySettingsChange() { set(reject); type=6;} - void select_id_cellActivation() { set(reject); type=7;} - void select_id_seNBAdditionPreparation() { set(reject); type=8;} - void select_id_meNBinitiatedSeNBModificationPreparation() { set(reject); type=9;} - void select_id_seNBinitiatedSeNBModification() { set(reject); type=10;} - void select_id_seNBinitiatedSeNBRelease() { set(reject); type=11;} - void select_id_x2Removal() { set(reject); type=12;} - void select_id_retrieveUEContext() { set(reject); type=13;} - void select_id_sgNBAdditionPreparation() { set(reject); type=14;} - void select_id_meNBinitiatedSgNBModificationPreparation() { set(reject); type=15;} - void select_id_sgNBinitiatedSgNBModification() { set(reject); type=16;} - void select_id_meNBinitiatedSgNBRelease() { set(ignore); type=17;} - void select_id_sgNBinitiatedSgNBRelease() { set(reject); type=18;} - void select_id_sgNBChange() { set(reject); type=19;} - void select_id_endcX2Setup() { set(reject); type=20;} - void select_id_endcConfigurationUpdate() { set(reject); type=21;} - void select_id_endcCellActivation() { set(reject); type=22;} - void select_id_endcPartialReset() { set(reject); type=23;} - void select_id_eUTRANRCellResourceCoordination() { set(reject); type=24;} - void select_id_endcX2Removal() { set(reject); type=25;} - void select_id_snStatusTransfer() { set(ignore); type=26;} - void select_id_uEContextRelease() { set(ignore); type=27;} - void select_id_handoverCancel() { set(ignore); type=28;} - void select_id_errorIndication() { set(ignore); type=29;} - void select_id_resourceStatusReporting() { set(ignore); type=30;} - void select_id_loadIndication() { set(ignore); type=31;} - void select_id_privateMessage() { set(ignore); type=32;} - void select_id_rLFIndication() { set(ignore); type=33;} - void select_id_handoverReport() { set(ignore); type=34;} - void select_id_x2Release() { set(reject); type=35;} - void select_id_x2APMessageTransfer() { set(reject); type=36;} - void select_id_seNBReconfigurationCompletion() { set(ignore); type=37;} - void select_id_meNBinitiatedSeNBRelease() { set(ignore); type=38;} - void select_id_seNBCounterCheck() { set(reject); type=39;} - void select_id_sgNBReconfigurationCompletion() { set(ignore); type=40;} - void select_id_sgNBCounterCheck() { set(reject); type=41;} - void select_id_rRCTransfer() { set(reject); type=42;} - void select_id_secondaryRATDataUsageReport() { set(reject); type=43;} - void select_id_SgNBActivityNotification() { set(reject); type=44;} - void select_id_dataForwardingAddressIndication() { set(ignore); type=45;} - X2AP_ELEMENTARY_PROCEDURE::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(reject)) { type = 3; return true; } - else if(equal(reject)) { type = 4; return true; } - else if(equal(reject)) { type = 5; return true; } - else if(equal(reject)) { type = 6; return true; } - else if(equal(reject)) { type = 7; return true; } - else if(equal(reject)) { type = 8; return true; } - else if(equal(reject)) { type = 9; return true; } - else if(equal(reject)) { type = 10; return true; } - else if(equal(reject)) { type = 11; return true; } - else if(equal(reject)) { type = 12; return true; } - else if(equal(reject)) { type = 13; return true; } - else if(equal(reject)) { type = 14; return true; } - else if(equal(reject)) { type = 15; return true; } - else if(equal(reject)) { type = 16; return true; } - else if(equal(ignore)) { type = 17; return true; } - else if(equal(reject)) { type = 18; return true; } - else if(equal(reject)) { type = 19; return true; } - else if(equal(reject)) { type = 20; return true; } - else if(equal(reject)) { type = 21; return true; } - else if(equal(reject)) { type = 22; return true; } - else if(equal(reject)) { type = 23; return true; } - else if(equal(reject)) { type = 24; return true; } - else if(equal(reject)) { type = 25; return true; } - else if(equal(ignore)) { type = 26; return true; } - else if(equal(ignore)) { type = 27; return true; } - else if(equal(ignore)) { type = 28; return true; } - else if(equal(ignore)) { type = 29; return true; } - else if(equal(ignore)) { type = 30; return true; } - else if(equal(ignore)) { type = 31; return true; } - else if(equal(ignore)) { type = 32; return true; } - else if(equal(ignore)) { type = 33; return true; } - else if(equal(ignore)) { type = 34; return true; } - else if(equal(reject)) { type = 35; return true; } - else if(equal(reject)) { type = 36; return true; } - else if(equal(ignore)) { type = 37; return true; } - else if(equal(ignore)) { type = 38; return true; } - else if(equal(reject)) { type = 39; return true; } - else if(equal(ignore)) { type = 40; return true; } - else if(equal(reject)) { type = 41; return true; } - else if(equal(reject)) { type = 42; return true; } - else if(equal(reject)) { type = 43; return true; } - else if(equal(reject)) { type = 44; return true; } - else if(equal(ignore)) { type = 45; return true; } - else { type = 46; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(reject);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(reject);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(reject);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(reject);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(reject);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(reject);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(reject);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(reject);} return false; - case 11: type = 11; if(v(ref_nested())) { return equal(reject);} return false; - case 12: type = 12; if(v(ref_nested())) { return equal(reject);} return false; - case 13: type = 13; if(v(ref_nested())) { return equal(reject);} return false; - case 14: type = 14; if(v(ref_nested())) { return equal(reject);} return false; - case 15: type = 15; if(v(ref_nested())) { return equal(reject);} return false; - case 16: type = 16; if(v(ref_nested())) { return equal(reject);} return false; - case 17: type = 17; if(v(ref_nested())) { return equal(ignore);} return false; - case 18: type = 18; if(v(ref_nested())) { return equal(reject);} return false; - case 19: type = 19; if(v(ref_nested())) { return equal(reject);} return false; - case 20: type = 20; if(v(ref_nested())) { return equal(reject);} return false; - case 21: type = 21; if(v(ref_nested())) { return equal(reject);} return false; - case 22: type = 22; if(v(ref_nested())) { return equal(reject);} return false; - case 23: type = 23; if(v(ref_nested())) { return equal(reject);} return false; - case 24: type = 24; if(v(ref_nested())) { return equal(reject);} return false; - case 25: type = 25; if(v(ref_nested())) { return equal(reject);} return false; - case 26: type = 26; if(v(ref_nested())) { return equal(ignore);} return false; - case 27: type = 27; if(v(ref_nested())) { return equal(ignore);} return false; - case 28: type = 28; if(v(ref_nested())) { return equal(ignore);} return false; - case 29: type = 29; if(v(ref_nested())) { return equal(ignore);} return false; - case 30: type = 30; if(v(ref_nested())) { return equal(ignore);} return false; - case 31: type = 31; if(v(ref_nested())) { return equal(ignore);} return false; - case 32: type = 32; if(v(ref_nested())) { return equal(ignore);} return false; - case 33: type = 33; if(v(ref_nested())) { return equal(ignore);} return false; - case 34: type = 34; if(v(ref_nested())) { return equal(ignore);} return false; - case 35: type = 35; if(v(ref_nested())) { return equal(reject);} return false; - case 36: type = 36; if(v(ref_nested())) { return equal(reject);} return false; - case 37: type = 37; if(v(ref_nested())) { return equal(ignore);} return false; - case 38: type = 38; if(v(ref_nested())) { return equal(ignore);} return false; - case 39: type = 39; if(v(ref_nested())) { return equal(reject);} return false; - case 40: type = 40; if(v(ref_nested())) { return equal(ignore);} return false; - case 41: type = 41; if(v(ref_nested())) { return equal(reject);} return false; - case 42: type = 42; if(v(ref_nested())) { return equal(reject);} return false; - case 43: type = 43; if(v(ref_nested())) { return equal(reject);} return false; - case 44: type = 44; if(v(ref_nested())) { return equal(reject);} return false; - case 45: type = 45; if(v(ref_nested())) { return equal(ignore);} return false; - case 46: type = 46; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -InitiatingMessage ::= SEQUENCE { - procedureCode X2AP-ELEMENTARY-PROCEDURE.&procedureCode ({X2AP-ELEMENTARY-PROCEDURES}), - criticality X2AP-ELEMENTARY-PROCEDURE.&criticality ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode}), - value X2AP-ELEMENTARY-PROCEDURE.&InitiatingMessage ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode}) -} -*/ - -struct InitiatingMessage : asn::sequence<3, 0, false, 0> -{ - static constexpr const char* name() {return "InitiatingMessage";} - using parent_t = asn::sequence<3, 0, false, 0>; - struct procedureCode_t : X2AP_ELEMENTARY_PROCEDURES::procedureCode_t - { - static constexpr const char* name() {return "procedureCode_t";} - using parent_t = typename X2AP_ELEMENTARY_PROCEDURES::procedureCode_t; - template bool decode(V& v, InitiatingMessage const& c) - { - return X2AP_ELEMENTARY_PROCEDURES::procedureCode_t::decode(v); - }; - template bool encode(V& v, InitiatingMessage const& c) const - { - return X2AP_ELEMENTARY_PROCEDURES::procedureCode_t::encode(v); - }; - }; - procedureCode_t& ref_procedureCode() {return procedureCode;} - procedureCode_t const& ref_procedureCode() const {return procedureCode;} - struct criticality_t : X2AP_ELEMENTARY_PROCEDURES::criticality_t - { - static constexpr const char* name() {return "criticality_t";} - using parent_t = typename X2AP_ELEMENTARY_PROCEDURES::criticality_t; - template bool decode(V& v, InitiatingMessage const& c) - { - return X2AP_ELEMENTARY_PROCEDURES::criticality_t::decode(c.procedureCode.get_index(), v); - }; - template bool encode(V& v, InitiatingMessage const& c) const - { - return X2AP_ELEMENTARY_PROCEDURES::criticality_t::encode(c.procedureCode.get_index(), v); - }; - }; - criticality_t& ref_criticality() {return criticality;} - criticality_t const& ref_criticality() const {return criticality;} - struct value_t : X2AP_ELEMENTARY_PROCEDURES::InitiatingMessage_t - { - static constexpr const char* name() {return "value_t";} - using parent_t = typename X2AP_ELEMENTARY_PROCEDURES::InitiatingMessage_t; - template bool decode(V& v, InitiatingMessage const& c) - { - return X2AP_ELEMENTARY_PROCEDURES::InitiatingMessage_t::decode(c.procedureCode.get_index(), v); - }; - template bool encode(V& v, InitiatingMessage const& c) const - { - return X2AP_ELEMENTARY_PROCEDURES::InitiatingMessage_t::encode(c.procedureCode.get_index(), v); - }; - }; - value_t& ref_value() {return value;} - value_t const& ref_value() const {return value;} - template void decode(V& v) - { - v(procedureCode); - v(criticality); - v(value); - - }; - template void encode(V& v) const - { - v(procedureCode); - v(criticality); - v(value); - - }; - void clear() - { - procedureCode.clear(); - criticality.clear(); - value.clear(); - - }; - private: - procedureCode_t procedureCode; - criticality_t criticality; - value_t value; - -}; -/* -SuccessfulOutcome ::= SEQUENCE { - procedureCode X2AP-ELEMENTARY-PROCEDURE.&procedureCode ({X2AP-ELEMENTARY-PROCEDURES}), - criticality X2AP-ELEMENTARY-PROCEDURE.&criticality ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode}), - value X2AP-ELEMENTARY-PROCEDURE.&SuccessfulOutcome ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode}) -} -*/ - -struct SuccessfulOutcome : asn::sequence<3, 0, false, 0> -{ - static constexpr const char* name() {return "SuccessfulOutcome";} - using parent_t = asn::sequence<3, 0, false, 0>; - struct procedureCode_t : X2AP_ELEMENTARY_PROCEDURES::procedureCode_t - { - static constexpr const char* name() {return "procedureCode_t";} - using parent_t = typename X2AP_ELEMENTARY_PROCEDURES::procedureCode_t; - template bool decode(V& v, SuccessfulOutcome const& c) - { - return X2AP_ELEMENTARY_PROCEDURES::procedureCode_t::decode(v); - }; - template bool encode(V& v, SuccessfulOutcome const& c) const - { - return X2AP_ELEMENTARY_PROCEDURES::procedureCode_t::encode(v); - }; - }; - procedureCode_t& ref_procedureCode() {return procedureCode;} - procedureCode_t const& ref_procedureCode() const {return procedureCode;} - struct criticality_t : X2AP_ELEMENTARY_PROCEDURES::criticality_t - { - static constexpr const char* name() {return "criticality_t";} - using parent_t = typename X2AP_ELEMENTARY_PROCEDURES::criticality_t; - template bool decode(V& v, SuccessfulOutcome const& c) - { - return X2AP_ELEMENTARY_PROCEDURES::criticality_t::decode(c.procedureCode.get_index(), v); - }; - template bool encode(V& v, SuccessfulOutcome const& c) const - { - return X2AP_ELEMENTARY_PROCEDURES::criticality_t::encode(c.procedureCode.get_index(), v); - }; - }; - criticality_t& ref_criticality() {return criticality;} - criticality_t const& ref_criticality() const {return criticality;} - struct value_t : X2AP_ELEMENTARY_PROCEDURES::SuccessfulOutcome_t - { - static constexpr const char* name() {return "value_t";} - using parent_t = typename X2AP_ELEMENTARY_PROCEDURES::SuccessfulOutcome_t; - template bool decode(V& v, SuccessfulOutcome const& c) - { - return X2AP_ELEMENTARY_PROCEDURES::SuccessfulOutcome_t::decode(c.procedureCode.get_index(), v); - }; - template bool encode(V& v, SuccessfulOutcome const& c) const - { - return X2AP_ELEMENTARY_PROCEDURES::SuccessfulOutcome_t::encode(c.procedureCode.get_index(), v); - }; - }; - value_t& ref_value() {return value;} - value_t const& ref_value() const {return value;} - template void decode(V& v) - { - v(procedureCode); - v(criticality); - v(value); - - }; - template void encode(V& v) const - { - v(procedureCode); - v(criticality); - v(value); - - }; - void clear() - { - procedureCode.clear(); - criticality.clear(); - value.clear(); - - }; - private: - procedureCode_t procedureCode; - criticality_t criticality; - value_t value; - -}; -/* -UnsuccessfulOutcome ::= SEQUENCE { - procedureCode X2AP-ELEMENTARY-PROCEDURE.&procedureCode ({X2AP-ELEMENTARY-PROCEDURES}), - criticality X2AP-ELEMENTARY-PROCEDURE.&criticality ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode}), - value X2AP-ELEMENTARY-PROCEDURE.&UnsuccessfulOutcome ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode}) -} -*/ - -struct UnsuccessfulOutcome : asn::sequence<3, 0, false, 0> -{ - static constexpr const char* name() {return "UnsuccessfulOutcome";} - using parent_t = asn::sequence<3, 0, false, 0>; - struct procedureCode_t : X2AP_ELEMENTARY_PROCEDURES::procedureCode_t - { - static constexpr const char* name() {return "procedureCode_t";} - using parent_t = typename X2AP_ELEMENTARY_PROCEDURES::procedureCode_t; - template bool decode(V& v, UnsuccessfulOutcome const& c) - { - return X2AP_ELEMENTARY_PROCEDURES::procedureCode_t::decode(v); - }; - template bool encode(V& v, UnsuccessfulOutcome const& c) const - { - return X2AP_ELEMENTARY_PROCEDURES::procedureCode_t::encode(v); - }; - }; - procedureCode_t& ref_procedureCode() {return procedureCode;} - procedureCode_t const& ref_procedureCode() const {return procedureCode;} - struct criticality_t : X2AP_ELEMENTARY_PROCEDURES::criticality_t - { - static constexpr const char* name() {return "criticality_t";} - using parent_t = typename X2AP_ELEMENTARY_PROCEDURES::criticality_t; - template bool decode(V& v, UnsuccessfulOutcome const& c) - { - return X2AP_ELEMENTARY_PROCEDURES::criticality_t::decode(c.procedureCode.get_index(), v); - }; - template bool encode(V& v, UnsuccessfulOutcome const& c) const - { - return X2AP_ELEMENTARY_PROCEDURES::criticality_t::encode(c.procedureCode.get_index(), v); - }; - }; - criticality_t& ref_criticality() {return criticality;} - criticality_t const& ref_criticality() const {return criticality;} - struct value_t : X2AP_ELEMENTARY_PROCEDURES::UnsuccessfulOutcome_t - { - static constexpr const char* name() {return "value_t";} - using parent_t = typename X2AP_ELEMENTARY_PROCEDURES::UnsuccessfulOutcome_t; - template bool decode(V& v, UnsuccessfulOutcome const& c) - { - return X2AP_ELEMENTARY_PROCEDURES::UnsuccessfulOutcome_t::decode(c.procedureCode.get_index(), v); - }; - template bool encode(V& v, UnsuccessfulOutcome const& c) const - { - return X2AP_ELEMENTARY_PROCEDURES::UnsuccessfulOutcome_t::encode(c.procedureCode.get_index(), v); - }; - }; - value_t& ref_value() {return value;} - value_t const& ref_value() const {return value;} - template void decode(V& v) - { - v(procedureCode); - v(criticality); - v(value); - - }; - template void encode(V& v) const - { - v(procedureCode); - v(criticality); - v(value); - - }; - void clear() - { - procedureCode.clear(); - criticality.clear(); - value.clear(); - - }; - private: - procedureCode_t procedureCode; - criticality_t criticality; - value_t value; - -}; -/* -X2AP-PDU ::= CHOICE { - initiatingMessage InitiatingMessage, - successfulOutcome SuccessfulOutcome, - unsuccessfulOutcome UnsuccessfulOutcome, - ... -} -*/ - -struct X2AP_PDU : asn::choice<3, 0, true> -{ - static constexpr const char* name() {return "X2AP-PDU";} - using parent_t = asn::choice<3, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 4;} - void set_unknown() { set_index(4); } - ~X2AP_PDU() {clear();} - struct initiatingMessage_t : InitiatingMessage - { - static constexpr const char* name() {return "initiatingMessage_t";} - using parent_t = InitiatingMessage; - - }; - struct successfulOutcome_t : SuccessfulOutcome - { - static constexpr const char* name() {return "successfulOutcome_t";} - using parent_t = SuccessfulOutcome; - - }; - struct unsuccessfulOutcome_t : UnsuccessfulOutcome - { - static constexpr const char* name() {return "unsuccessfulOutcome_t";} - using parent_t = UnsuccessfulOutcome; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - case 3: set_index(3); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - case 3: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - - } - initiatingMessage_t& select_initiatingMessage() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - initiatingMessage_t const* get_initiatingMessage() const { if(get_index() == 1) { return &var.as();} return nullptr; } - successfulOutcome_t& select_successfulOutcome() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - successfulOutcome_t const* get_successfulOutcome() const { if(get_index() == 2) { return &var.as();} return nullptr; } - unsuccessfulOutcome_t& select_unsuccessfulOutcome() { if(get_index() != 3) { clear(); set_index(3); return var.build();} return var.as();} - unsuccessfulOutcome_t const* get_unsuccessfulOutcome() const { if(get_index() == 3) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(initiatingMessage_t)]; - char dummy2[sizeof(successfulOutcome_t)]; - char dummy3[sizeof(unsuccessfulOutcome_t)]; - - }; - asn::variant var; - index_type index {0}; -}; diff --git a/e2sim/previous/e2apv1sim/src/ASN1/lib/asn_e2ap.cpp b/e2sim/previous/e2apv1sim/src/ASN1/lib/asn_e2ap.cpp deleted file mode 100644 index fa2fd88..0000000 --- a/e2sim/previous/e2apv1sim/src/ASN1/lib/asn_e2ap.cpp +++ /dev/null @@ -1,982 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ -#include "asn_e2ap.hpp" -#include "asn_e2ap_wrapper.hpp" - -/*----------------------------------------------------------------------- - COMMON ROUTINES -------------------------------------------------------------------------- -*/ -e2ap_pdu_t* new_e2ap_pdu(void) -{ - E2APpduWrapper* pduWrapper = new E2APpduWrapper(); - return reinterpret_cast(pduWrapper); -} - -void e2ap_asn_print(e2ap_pdu_t* pdu, char* buf, size_t buf_size) -{ - E2APpduWrapper* pduWrapper = reinterpret_cast(pdu); - - buf[0] = 0; - - strncat(buf, asn::get_printed(pduWrapper->ref_pdu()).c_str(), buf_size - 1); -} - -int e2ap_asn_per_encode(e2ap_pdu_t* pdu, unsigned char* buf, size_t buf_size, - char* err_buf, size_t err_buf_size) -{ - E2APpduWrapper* pduWrapper = reinterpret_cast(pdu); - - asn::per::EncoderCtx ctx{ buf, buf_size }; - - if (!asn::per::pack(pduWrapper->ref_pdu(), ctx)) { - err_buf[0] = 0; - //strncat(err_buf, ctx.refErrorCtx().toString().c_str(), err_buf_size - 1); - return -1; - } else { - return static_cast(ctx.refBuffer().getBytesUsed()); - } - -} - -int e2ap_asn_per_decode(e2ap_pdu_t* pdu, unsigned char const* buf, size_t buf_size, - char* err_buf, size_t err_buf_size) -{ - E2APpduWrapper* pduWrapper = reinterpret_cast(pdu); - - asn::per::DecoderCtx ctx{ buf, - buf_size, - pduWrapper->m_allocation_buffer, - pduWrapper->m_allocation_buffer_size }; - - if (!asn::per::unpack(pduWrapper->ref_pdu(), ctx)) { - err_buf[0] = 0; - //strncat(err_buf, ctx.refErrorCtx().toString().c_str(), err_buf_size - 1); - return -1; - } - - return 0; - -} - -int e2ap_get_index(e2ap_pdu_t* pdu) -{ - E2APpduWrapper* pduWrapper = reinterpret_cast(pdu); - - return pduWrapper->ref_pdu().get_index(); -} - -int e2ap_get_procedureCode(e2ap_pdu_t* pdu) -{ - E2APpduWrapper* pduWrapper = reinterpret_cast(pdu); - - switch(pduWrapper->ref_pdu().get_index()) - { - case 1: - return pduWrapper->ref_pdu().get_initiatingMessage()->ref_procedureCode().get(); - break; - - case 2: - return pduWrapper->ref_pdu().get_successfulOutcome()->ref_procedureCode().get(); - break; - - case 3: - return pduWrapper->ref_pdu().get_unsuccessfulOutcome()->ref_procedureCode().get(); - break; - - default: - return -1; - } - -} - -/*----------------------------------------------------------------------- - MESSAGE GENERATORS -------------------------------------------------------------------------- -*/ -//X2Setup -bool e2ap_init_X2SetupRequest(e2ap_pdu_t* pdu) -{ - E2APpduWrapper* pduWrapper = reinterpret_cast(pdu); - - //Initialization - pduWrapper->ref_pdu().select_initiatingMessage(); - pduWrapper->ref_pdu().select_initiatingMessage().clear(); - pduWrapper->ref_pdu().select_initiatingMessage().ref_procedureCode().select_id_x2Setup(); - pduWrapper->ref_pdu().select_initiatingMessage().ref_criticality().select_id_x2Setup(); - pduWrapper->ref_pdu().select_initiatingMessage().ref_value().select_id_x2Setup(); - - return true; -} - -bool e2ap_create_X2SetupRequest(e2ap_pdu_t* pdu, eNB_config &cfg) -{ - E2APpduWrapper* pduWrapper = reinterpret_cast(pdu); - - /* Initiaization */ - pduWrapper->ref_pdu().select_initiatingMessage().ref_procedureCode().select_id_x2Setup(); - pduWrapper->ref_pdu().select_initiatingMessage().ref_criticality().select_id_x2Setup(); - - X2SetupRequest* container = - &(pduWrapper->ref_pdu().select_initiatingMessage().ref_value().select_id_x2Setup()); - - using IE_value_t = X2SetupRequest::protocolIEs_t::value_type; - - /* X2SetupRequest-IEs : GlobalENB-ID*/ - IE_value_t* val_GlobalENB_ID = new IE_value_t; - container->ref_protocolIEs().push_back(*val_GlobalENB_ID); - - val_GlobalENB_ID->ref_id().select_id_GlobalENB_ID(); - val_GlobalENB_ID->ref_criticality().select_id_GlobalENB_ID(); - val_GlobalENB_ID->ref_value().select_id_GlobalENB_ID().ref_pLMN_Identity() - .set(3, cfg.pLMN_Identity); - val_GlobalENB_ID->ref_value().select_id_GlobalENB_ID().ref_eNB_ID() - .select_macro_eNB_ID().set_buffer(20, cfg.macro_eNB_ID); - - /* X2SetupRequest-IEs : ServedCells*/ - IE_value_t* val_ServedCells = new IE_value_t; - container->ref_protocolIEs().push_back(*val_ServedCells); - - val_ServedCells->ref_id().select_id_ServedCells(); - val_ServedCells->ref_criticality().select_id_ServedCells(); - val_ServedCells->ref_value().select_id_ServedCells(); - - //Add servedCellInfo - ServedCells::value_type* elm = new ServedCells::value_type(); - ServedCell_Information* info = &(elm->ref_servedCellInfo()); - { - //Set ServedCell-Information: pCI, cellId, tAC, broadcastPLMNs, eUTRA-Mode-Info - info->ref_pCI().set(cfg.pCI); - info->ref_cellId().ref_pLMN_Identity().set(3, cfg.pLMN_Identity); - info->ref_cellId().ref_eUTRANcellIdentifier().set_buffer(28, cfg.eUTRANcellIdentifier); - info->ref_tAC().set(2, cfg.tAC); - - BroadcastPLMNs_Item::value_type* item = new BroadcastPLMNs_Item::value_type(); - item->set(3, cfg.pLMN_Identity); - info->ref_broadcastPLMNs().push_back(*item); - - info->ref_eUTRA_Mode_Info().select_fDD().ref_uL_EARFCN().set(cfg.uL_EARFCN); - info->ref_eUTRA_Mode_Info().select_fDD().ref_dL_EARFCN().set(cfg.dL_EARFCN); - info->ref_eUTRA_Mode_Info().select_fDD().ref_uL_Transmission_Bandwidth() - .set(static_cast(cfg.uL_Bandwidth)); - info->ref_eUTRA_Mode_Info().select_fDD().ref_dL_Transmission_Bandwidth() - .set(static_cast(cfg.dL_Bandwidth)); - } - val_ServedCells->ref_value().select_id_ServedCells().push_back(*elm); - - return true; -} - -bool e2ap_create_X2SetupResponse(e2ap_pdu_t* pdu, eNB_config &cfg) -{ - E2APpduWrapper* pduWrapper = reinterpret_cast(pdu); - - /* Initiaization */ - pduWrapper->ref_pdu().select_successfulOutcome().ref_procedureCode().select_id_x2Setup(); - pduWrapper->ref_pdu().select_successfulOutcome().ref_criticality().select_id_x2Setup(); - - X2SetupResponse* container = - &(pduWrapper->ref_pdu().select_successfulOutcome().ref_value().select_id_x2Setup()); - - using IE_value_t = X2SetupResponse::protocolIEs_t::value_type; - - /* X2SetupResponse-IEs : GlobalENB-ID*/ - IE_value_t* val_GlobalENB_ID = new IE_value_t; - container->ref_protocolIEs().push_back(*val_GlobalENB_ID); - - val_GlobalENB_ID->ref_id().select_id_GlobalENB_ID(); - val_GlobalENB_ID->ref_criticality().select_id_GlobalENB_ID(); - val_GlobalENB_ID->ref_value().select_id_GlobalENB_ID().ref_pLMN_Identity() - .set(3, cfg.pLMN_Identity); - - val_GlobalENB_ID->ref_value().select_id_GlobalENB_ID().ref_eNB_ID() - .select_macro_eNB_ID().set_buffer(20, cfg.macro_eNB_ID); - - /* X2SetupResponse-IEs : ServedCells*/ - IE_value_t* val_ServedCells = new IE_value_t; - container->ref_protocolIEs().push_back(*val_ServedCells); - - val_ServedCells->ref_id().select_id_ServedCells(); - val_ServedCells->ref_criticality().select_id_ServedCells(); - val_ServedCells->ref_value().select_id_ServedCells(); - - //Add servedCellInfo - ServedCells::value_type* elm = new ServedCells::value_type(); - ServedCell_Information* info = &(elm->ref_servedCellInfo()); - { - //Set ServedCell-Information: pCI, cellId, tAC, broadcastPLMNs, eUTRA-Mode-Info - info->ref_pCI().set(cfg.pCI); - info->ref_cellId().ref_pLMN_Identity().set(3, cfg.pLMN_Identity); - info->ref_cellId().ref_eUTRANcellIdentifier().set_buffer(28, cfg.eUTRANcellIdentifier); - info->ref_tAC().set(2, cfg.tAC); - - BroadcastPLMNs_Item::value_type* item = new BroadcastPLMNs_Item::value_type(); - item->set(3, cfg.pLMN_Identity); - info->ref_broadcastPLMNs().push_back(*item); - - info->ref_eUTRA_Mode_Info().select_fDD().ref_uL_EARFCN().set(cfg.uL_EARFCN); - info->ref_eUTRA_Mode_Info().select_fDD().ref_dL_EARFCN().set(cfg.dL_EARFCN); - info->ref_eUTRA_Mode_Info().select_fDD().ref_uL_Transmission_Bandwidth() - .set(static_cast(cfg.uL_Bandwidth)); - info->ref_eUTRA_Mode_Info().select_fDD().ref_dL_Transmission_Bandwidth() - .set(static_cast(cfg.dL_Bandwidth)); - } - val_ServedCells->ref_value().select_id_ServedCells().push_back(*elm); - - return true; -} - -bool e2ap_create_X2SetupFailure(e2ap_pdu_t* pdu) -{ - E2APpduWrapper* pduWrapper = reinterpret_cast(pdu); - - /* Initiaization */ - pduWrapper->ref_pdu().select_unsuccessfulOutcome().ref_procedureCode().select_id_x2Setup(); - pduWrapper->ref_pdu().select_unsuccessfulOutcome().ref_criticality().select_id_x2Setup(); - - X2SetupFailure* container = - &(pduWrapper->ref_pdu().select_unsuccessfulOutcome().ref_value().select_id_x2Setup()); - - using IE_value_t = X2SetupFailure::protocolIEs_t::value_type; - - /* X2SetupFailure-IEs << id-Cause */ - IE_value_t* val_cause = new IE_value_t; - container->ref_protocolIEs().push_back(*val_cause); - - val_cause->ref_id().select_id_Cause(); - val_cause->ref_criticality().select_id_Cause(); - - /* Cause << radioNetwork */ - val_cause->ref_value().select_id_Cause().select_radioNetwork(); - - /* CauseRadioNetwork = ho-target-not-allowed (enum = 8)*/ - val_cause->ref_value().select_id_Cause().select_radioNetwork() - .set(static_cast(8)); - - return true; -} - -//ENDCX2Setup -bool e2ap_create_ENDCX2SetupRequest(e2ap_pdu_t* pdu, eNB_config &cfg) -{ - E2APpduWrapper* pduWrapper = reinterpret_cast(pdu); - - /* Initiaization */ - pduWrapper->ref_pdu().select_initiatingMessage().ref_procedureCode().select_id_endcX2Setup(); - pduWrapper->ref_pdu().select_initiatingMessage().ref_criticality().select_id_endcX2Setup(); - - ENDCX2SetupRequest* container = - &(pduWrapper->ref_pdu().select_initiatingMessage().ref_value().select_id_endcX2Setup()); - - using IE_value_t = ENDCX2SetupRequest::protocolIEs_t::value_type; - - /* ENDCX2SetupRequest-IEs = id-InitiatingNodeType-EndcX2Setup */ - IE_value_t* ie = new IE_value_t; - container->ref_protocolIEs().push_back(*ie); - ie->ref_id().select_id_InitiatingNodeType_EndcX2Setup(); - ie->ref_criticality().select_id_InitiatingNodeType_EndcX2Setup(); - ie->ref_value().select_id_InitiatingNodeType_EndcX2Setup(); - - /* InitiatingNodeType-EndcX2Setup = init-eNB {ENB-ENDCX2SetupReqIEs} */ - ie->ref_value().select_id_InitiatingNodeType_EndcX2Setup().select_init_eNB(); - - using eNB_val_t = InitiatingNodeType_EndcX2Setup::init_eNB_t::value_type; - - ProtocolIE_Container* eNB_node = - &(ie->ref_value().select_id_InitiatingNodeType_EndcX2Setup().select_init_eNB()); - - /* ENB-ENDCX2SetupReqIEs <-- id-GlobalENB-ID */ - eNB_val_t* val_GlobalENB_ID = new eNB_val_t; - eNB_node->push_back(*val_GlobalENB_ID); - - val_GlobalENB_ID->ref_id().select_id_GlobalENB_ID(); - val_GlobalENB_ID->ref_criticality().select_id_GlobalENB_ID(); - val_GlobalENB_ID->ref_value().select_id_GlobalENB_ID() - .ref_pLMN_Identity().set(3, cfg.pLMN_Identity); - val_GlobalENB_ID->ref_value().select_id_GlobalENB_ID().ref_eNB_ID() - .select_macro_eNB_ID().set_buffer(20, cfg.macro_eNB_ID); - - /* ENB-ENDCX2SetupReqIEs <-- id-ServedEUTRAcellsENDCX2ManagementList */ - eNB_val_t* val_EUTRAlist = new eNB_val_t; - eNB_node->push_back(*val_EUTRAlist); - - val_EUTRAlist->ref_id().select_id_ServedEUTRAcellsENDCX2ManagementList(); - val_EUTRAlist->ref_criticality().select_id_ServedEUTRAcellsENDCX2ManagementList(); - val_EUTRAlist->ref_value().select_id_ServedEUTRAcellsENDCX2ManagementList(); - - /* ServedEUTRAcellsENDCX2ManagementList <-- servedEUTRACellInfo */ - ServedEUTRAcellsENDCX2ManagementList::value_type* elm = - new ServedEUTRAcellsENDCX2ManagementList::value_type(); - ServedCell_Information* info = &(elm->ref_servedEUTRACellInfo()); - { - //Set ServedCell-Information: pCI, cellId, tAC, broadcastPLMNs, eUTRA-Mode-Info - info->ref_pCI().set(cfg.pCI); - info->ref_cellId().ref_pLMN_Identity().set(3, cfg.pLMN_Identity); - info->ref_cellId().ref_eUTRANcellIdentifier().set_buffer(28, cfg.eUTRANcellIdentifier); - info->ref_tAC().set(2, cfg.tAC); - - BroadcastPLMNs_Item::value_type* item = new BroadcastPLMNs_Item::value_type(); - item->set(3, cfg.pLMN_Identity); - info->ref_broadcastPLMNs().push_back(*item); - - info->ref_eUTRA_Mode_Info().select_fDD().ref_uL_EARFCN().set(cfg.uL_EARFCN); - info->ref_eUTRA_Mode_Info().select_fDD().ref_dL_EARFCN().set(cfg.dL_EARFCN); - info->ref_eUTRA_Mode_Info().select_fDD().ref_uL_Transmission_Bandwidth() - .set(static_cast(cfg.uL_Bandwidth)); - info->ref_eUTRA_Mode_Info().select_fDD().ref_dL_Transmission_Bandwidth() - .set(static_cast(cfg.dL_Bandwidth)); - } - val_EUTRAlist->ref_value().select_id_ServedEUTRAcellsENDCX2ManagementList() - .push_back(*elm); - - return true; -} - -bool e2ap_create_ENDCX2SetupResponse(e2ap_pdu_t* pdu, gNB_config &gnb_cfg) -{ - E2APpduWrapper* pduWrapper = reinterpret_cast(pdu); - - /* Initiaization */ - pduWrapper->ref_pdu().select_successfulOutcome().ref_procedureCode().select_id_endcX2Setup(); - pduWrapper->ref_pdu().select_successfulOutcome().ref_criticality().select_id_endcX2Setup(); - - ENDCX2SetupResponse* container = - &(pduWrapper->ref_pdu().select_successfulOutcome().ref_value().select_id_endcX2Setup()); - - using IE_value_t = ENDCX2SetupResponse::protocolIEs_t::value_type; - - /* ENDCX2SetupRequest-IEs = id-RespondingNodeType-EndcX2Setup */ - IE_value_t* ie = new IE_value_t; - container->ref_protocolIEs().push_back(*ie); - ie->ref_id().select_id_RespondingNodeType_EndcX2Setup(); - ie->ref_criticality().select_id_RespondingNodeType_EndcX2Setup(); - ie->ref_value().select_id_RespondingNodeType_EndcX2Setup(); - - /* RespondingNodeType-EndcX2Setup = respond-en-gNB {En-gNB-ENDCX2SetupReqAckIEs} */ - ie->ref_value().select_id_RespondingNodeType_EndcX2Setup().select_respond_en_gNB(); - - using gNB_val_t = RespondingNodeType_EndcX2Setup::respond_en_gNB_t::value_type; - - ProtocolIE_Container* gNB_node = - &(ie->ref_value().select_id_RespondingNodeType_EndcX2Setup().select_respond_en_gNB()); - - /* En-gNB-ENDCX2SetupReqAckIEs << id-Globalen-gNB-ID */ - gNB_val_t* val_Globalen_gNB_ID = new gNB_val_t; - gNB_node->push_back(*val_Globalen_gNB_ID); - - val_Globalen_gNB_ID->ref_id().select_id_Globalen_gNB_ID(); - val_Globalen_gNB_ID->ref_criticality().select_id_Globalen_gNB_ID(); - val_Globalen_gNB_ID->ref_value().select_id_Globalen_gNB_ID() - .ref_pLMN_Identity().set(3, gnb_cfg.pLMN_Identity); - val_Globalen_gNB_ID->ref_value().select_id_Globalen_gNB_ID().ref_gNB_ID() - .select_gNB_ID().set_buffer(22, gnb_cfg.gNB_ID); - - /* En-gNB-ENDCX2SetupReqAckIEs << id-ServedNRcellsENDCX2ManagementList */ - gNB_val_t* val_ServedNRCells = new gNB_val_t; - gNB_node->push_back(*val_ServedNRCells); - - val_ServedNRCells->ref_id().select_id_ServedNRcellsENDCX2ManagementList(); - val_ServedNRCells->ref_criticality().select_id_ServedNRcellsENDCX2ManagementList(); - val_ServedNRCells->ref_value().select_id_ServedNRcellsENDCX2ManagementList(); - - /* ServedNRcellsENDCX2ManagementList <-- servedNRCellInfo*/ - ServedNRcellsENDCX2ManagementList::value_type* elm = - new ServedNRcellsENDCX2ManagementList::value_type(); - - /* - ServedNRCell-Information ::= SEQUENCE { - nrpCI NRPCI, - nrCellID NRCGI, - fiveGS-TAC FiveGS-TAC OPTIONAL, - configured-TAC TAC OPTIONAL, - broadcastPLMNs BroadcastPLMNs-Item, - nrModeInfo CHOICE { - fdd FDD-InfoServedNRCell-Information, - tdd TDD-InfoServedNRCell-Information, - ... - }, - measurementTimingConfiguration OCTET STRING, - iE-Extensions ProtocolExtensionContainer { {ServedNRCell-Information-ExtIEs} } OPTIONAL, - ... - } - */ - ServedNRCell_Information* info = &(elm->ref_servedNRCellInfo()); - { - // nrpCI NRPCI, - info->ref_nrpCI().set(gnb_cfg.nrpCI); - - /* nrCellID NRCGI, - - NRCGI ::= SEQUENCE { - pLMN-Identity PLMN-Identity, - nRcellIdentifier NRCellIdentifier, - iE-Extensions ProtocolExtensionContainer { {NRCGI-ExtIEs} } OPTIONAL, - ... - } - */ - info->ref_nrCellID().ref_pLMN_Identity().set(3, gnb_cfg.pLMN_Identity); - info->ref_nrCellID().ref_nRcellIdentifier().set_buffer(36, gnb_cfg.nRcellIdentifier); - - /* broadcastPLMNs BroadcastPLMNs-Item */ - BroadcastPLMNs_Item::value_type* item = new BroadcastPLMNs_Item::value_type(); - item->set(3, gnb_cfg.pLMN_Identity); - info->ref_broadcastPLMNs().push_back(*item); - - /* nrModeInfo CHOICE { - fdd FDD-InfoServedNRCell-Information, - tdd TDD-InfoServedNRCell-Information, - ... - }, - - FDD-InfoServedNRCell-Information ::= SEQUENCE { - ul-NRFreqInfo NRFreqInfo, - dl-NRFreqInfo NRFreqInfo, - ul-NR-TxBW NR-TxBW, - dl-NR-TxBW NR-TxBW, - iE-Extensions ProtocolExtensionContainer { {FDD-InfoServedNRCell-Information-ExtIEs} } OPTIONAL, - ... - } - - NRFreqInfo ::= SEQUENCE{ - nRARFCN INTEGER (0.. 3279165), - freqBandListNr SEQUENCE (SIZE(1..maxnoofNrCellBands)) OF FreqBandNrItem, - sULInformation SULInformation OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {NRFreqInfo-ExtIEs} } OPTIONAL, - - ... - } - - */ - info->ref_nrModeInfo().select_fdd().ref_ul_NRFreqInfo().ref_nRARFCN().set(gnb_cfg.uL_nRARFCN); - info->ref_nrModeInfo().select_fdd().ref_dl_NRFreqInfo().ref_nRARFCN().set(gnb_cfg.dL_nRARFCN); - - /* - FreqBandNrItem ::= SEQUENCE { - freqBandIndicatorNr INTEGER (1..1024,...), - supportedSULBandList SEQUENCE (SIZE(0..maxnoofNrCellBands)) OF SupportedSULFreqBandItem, - iE-Extensions ProtocolExtensionContainer { {FreqBandNrItem-ExtIEs} } OPTIONAL, - ... - } - */ - //uplink - asn::sequenceof::value_type* ul_band_item = - new asn::sequenceof::value_type(); - { - ul_band_item->ref_freqBandIndicatorNr().set(gnb_cfg.ul_freqBandIndicatorNr); - - /* - SupportedSULFreqBandItem ::= SEQUENCE { - freqBandIndicatorNr INTEGER (1..1024,...), - iE-Extensions ProtocolExtensionContainer { {SupportedSULFreqBandItem-ExtIEs} } OPTIONAL, - ... - } - */ - - asn::sequenceof::value_type* ul_supported_band_item = - new asn::sequenceof::value_type(); - - ul_supported_band_item->ref_freqBandIndicatorNr().set(gnb_cfg.ul_freqBandIndicatorNr); - - ul_band_item->ref_supportedSULBandList().push_back(*ul_supported_band_item); - } - info->ref_nrModeInfo().select_fdd().ref_ul_NRFreqInfo() - .ref_freqBandListNr().push_back(*ul_band_item); - - //downlink - asn::sequenceof::value_type* dl_band_item = - new asn::sequenceof::value_type(); - { - dl_band_item->ref_freqBandIndicatorNr().set(gnb_cfg.dl_freqBandIndicatorNr); - - /* - SupportedSULFreqBandItem ::= SEQUENCE { - freqBandIndicatorNr INTEGER (1..1024,...), - iE-Extensions ProtocolExtensionContainer { {SupportedSULFreqBandItem-ExtIEs} } OPTIONAL, - ... - } - */ - - asn::sequenceof::value_type* dl_supported_band_item = - new asn::sequenceof::value_type(); - - dl_supported_band_item->ref_freqBandIndicatorNr().set(gnb_cfg.dl_freqBandIndicatorNr); - - dl_band_item->ref_supportedSULBandList().push_back(*dl_supported_band_item); - } - info->ref_nrModeInfo().select_fdd().ref_dl_NRFreqInfo() - .ref_freqBandListNr().push_back(*dl_band_item); - - /* - NR-TxBW ::= SEQUENCE { - nRSCS NRSCS, - nRNRB NRNRB, - iE-Extensions ProtocolExtensionContainer { {NR-TxBW-ExtIEs} } OPTIONAL, - ... - } - */ - { - info->ref_nrModeInfo().select_fdd().ref_ul_NR_TxBW().ref_nRNRB() - .set( static_cast(gnb_cfg.uL_NRNRB) ); - info->ref_nrModeInfo().select_fdd().ref_ul_NR_TxBW().ref_nRSCS() - .set( static_cast(gnb_cfg.uL_NRSCS) ); - - info->ref_nrModeInfo().select_fdd().ref_dl_NR_TxBW().ref_nRNRB() - .set( static_cast(gnb_cfg.dL_NRNRB) ); - info->ref_nrModeInfo().select_fdd().ref_dl_NR_TxBW().ref_nRSCS() - .set( static_cast(gnb_cfg.dL_NRSCS) ); - } - - /* - measurementTimingConfiguration OCTET STRING, - */ - info->ref_measurementTimingConfiguration().set(gnb_cfg.measurementTimingConfiguration); - } - val_ServedNRCells->ref_value().select_id_ServedNRcellsENDCX2ManagementList().push_back(*elm); - - - - return true; -} - -bool e2ap_create_ENDCX2SetupFailure(e2ap_pdu_t* pdu) -{ - - E2APpduWrapper* pduWrapper = reinterpret_cast(pdu); - - /* Initiaization */ - pduWrapper->ref_pdu().select_unsuccessfulOutcome().ref_procedureCode().select_id_endcX2Setup(); - pduWrapper->ref_pdu().select_unsuccessfulOutcome().ref_criticality().select_id_endcX2Setup(); - - ENDCX2SetupFailure* container = - &(pduWrapper->ref_pdu().select_unsuccessfulOutcome().ref_value().select_id_endcX2Setup()); - - using IE_value_t = ENDCX2SetupFailure::protocolIEs_t::value_type; - - /* ENDCX2SetupFailure-IEs := id-Cause*/ - IE_value_t* val_cause = new IE_value_t; - container->ref_protocolIEs().push_back(*val_cause); - - val_cause->ref_id().select_id_Cause(); - val_cause->ref_criticality().select_id_Cause(); - - /* Cause << radioNetwork */ - val_cause->ref_value().select_id_Cause().select_radioNetwork(); - - /* CauseRadioNetwork = ho-target-not-allowed (enum = 8)*/ - val_cause->ref_value().select_id_Cause().select_radioNetwork() - .set(static_cast(8)); - - return true; -} - -//RICSubscription -bool e2ap_create_RICsubscriptionRequest(e2ap_pdu_t* pdu, RICsubscription_params_t ¶ms) -{ - E2APpduWrapper* pduWrapper = reinterpret_cast(pdu); - - /* Initiaization */ - pduWrapper->ref_pdu().select_initiatingMessage() - .ref_procedureCode().select_id_ricSubscription(); - pduWrapper->ref_pdu().select_initiatingMessage() - .ref_criticality().select_id_ricSubscription(); - - RICsubscriptionRequest* container = &(pduWrapper->ref_pdu() - .select_initiatingMessage().ref_value().select_id_ricSubscription()); - - using IE_value_t = RICsubscriptionRequest::protocolIEs_t::value_type; - - /* RICsubscriptionRequest-IEs : RICrequestID */ - IE_value_t* ie_RICrequestID = new IE_value_t; - container->ref_protocolIEs().push_back(*ie_RICrequestID); - - ie_RICrequestID->ref_id().select_id_RICrequestID(); - ie_RICrequestID->ref_criticality().select_id_RICrequestID(); - ie_RICrequestID->ref_value().select_id_RICrequestID() - .ref_ricRequestorID().set(params.request_id); - ie_RICrequestID->ref_value().select_id_RICrequestID() - .ref_ricRequestSequenceNumber().set(params.seq_number); - - /* RICsubscriptionRequest-IEs : RANfunctionID */ - IE_value_t* ie_RANfunctionID = new IE_value_t; - container->ref_protocolIEs().push_back(*ie_RANfunctionID); - - ie_RANfunctionID->ref_id().select_id_RANfunctionID(); - ie_RANfunctionID->ref_criticality().select_id_RANfunctionID(); - ie_RANfunctionID->ref_value().select_id_RANfunctionID().set(params.ran_func_id); - - - /* - RICsubscription ::= SEQUENCE { - ricEventTriggerDefinition RICeventTriggerDefinition, - ricAction-ToBeSetup-List RICactions-ToBeSetup-List, - ... - } - - RICeventTriggerDefinition ::= OCTET STRING - RICactions-ToBeSetup-List ::= SEQUENCE (SIZE(1..maxofRICactionID)) OF ProtocolIE-Single-Container { {RICaction-ToBeSetup-ItemIEs} } - - RICaction-ToBeSetup-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-RICaction-ToBeSetup-Item CRITICALITY ignore TYPE RICaction-ToBeSetup-Item PRESENCE mandatory }, - ... - } - - RICaction-ToBeSetup-Item ::= SEQUENCE { - ricActionID RICactionID, - ricActionType RICactionType, - ricActionDefinition RICactionDefinition OPTIONAL, - ricSubsequentAction RICsubsequentAction OPTIONAL, - ... - } - - RICactionID ::= INTEGER (0..255) - - RICactionType ::= ENUMERATED{ - report, - insert, - policy, - ... - } - */ - - /* RICsubscriptionRequest-IEs : RICsubscription */ - IE_value_t* ie_RICsubscription = new IE_value_t; - container->ref_protocolIEs().push_back(*ie_RICsubscription); - - ie_RICsubscription->ref_id().select_id_RICsubscription(); - ie_RICsubscription->ref_criticality().select_id_RICsubscription(); - - // RICeventTriggerDefinition - ie_RICsubscription->ref_value().select_id_RICsubscription() - .ref_ricEventTriggerDefinition().set(params.event_trigger_def); - - //RICactions-ToBeSetup-List - for( auto const &action : params.actionList) - { - RICactions_ToBeSetup_List::value_type* item = - new RICactions_ToBeSetup_List::value_type(); - - ie_RICsubscription->ref_value().select_id_RICsubscription() - .ref_ricAction_ToBeSetup_List().push_back(*item); - - item->ref_id().select_id_RICaction_ToBeSetup_Item(); - item->ref_criticality().select_id_RICaction_ToBeSetup_Item(); - item->ref_value().select_id_RICaction_ToBeSetup_Item() - .ref_ricActionID().set(action.action_id); - item->ref_value().select_id_RICaction_ToBeSetup_Item() - .ref_ricActionType().set(action.action_type); - - } - - return true; -} - -bool e2ap_parse_RICsubscriptionRequest(e2ap_pdu_t* pdu, RICsubscription_params_t ¶ms) -{ - E2APpduWrapper* pduWrapper = reinterpret_cast(pdu); - - RICsubscriptionRequest* container = &(pduWrapper->ref_pdu() - .select_initiatingMessage().ref_value().select_id_ricSubscription()); - - - for(auto &e : container->ref_protocolIEs()) - { - /*See struct RICsubscriptionRequest_IEs*/ - size_t type = e.ref_value().get_index(); - - switch(type) - { - case 1: //RICrequestID - { - params.request_id = e.ref_value().select_id_RICrequestID().ref_ricRequestorID().get(); - params.seq_number = e.ref_value().select_id_RICrequestID().ref_ricRequestSequenceNumber().get(); - } - break; - - case 2: //RANfunctionID - params.ran_func_id = e.ref_value().select_id_RANfunctionID().get(); - break; - - case 3: //RICsubscription - { - auto event = e.ref_value().select_id_RICsubscription().ref_ricEventTriggerDefinition().get(); - (params.event_trigger_def).assign(std::string(event.data(), event.data() + event.size())); - - //ricAction_ToBeSetup_List - for (auto & f : e.ref_value().select_id_RICsubscription().ref_ricAction_ToBeSetup_List()) - { - RIC_action_t action; - action.action_id = f.ref_value() - .select_id_RICaction_ToBeSetup_Item().ref_ricActionID().get(); - action.action_type = static_cast(f.ref_value() - .select_id_RICaction_ToBeSetup_Item().ref_ricActionType().get()); - - params.actionList.push_back(action); - } - } - break; - - default: - printf("Unknown IE type = %d\n", (int)type); - return false; - } - } - - return true; -} - -bool e2ap_create_RICsubscriptionResponse(e2ap_pdu_t* pdu, RICsubscription_params_t ¶ms) -{ - E2APpduWrapper* pduWrapper = reinterpret_cast(pdu); - - /* Initiaization */ - pduWrapper->ref_pdu().select_successfulOutcome().ref_procedureCode().select_id_ricSubscription(); - pduWrapper->ref_pdu().select_successfulOutcome().ref_criticality().select_id_ricSubscription(); - - RICsubscriptionResponse* container = &(pduWrapper->ref_pdu() - .select_successfulOutcome().ref_value().select_id_ricSubscription()); - - using IE_value_t = RICsubscriptionResponse::protocolIEs_t::value_type; - - /* RICsubscriptionResponse-IEs : RICrequestID */ - IE_value_t* ie_RICrequestID = new IE_value_t; - container->ref_protocolIEs().push_back(*ie_RICrequestID); - - ie_RICrequestID->ref_id().select_id_RICrequestID(); - ie_RICrequestID->ref_criticality().select_id_RICrequestID(); - ie_RICrequestID->ref_value().select_id_RICrequestID() - .ref_ricRequestorID().set(params.request_id); - ie_RICrequestID->ref_value().select_id_RICrequestID() - .ref_ricRequestSequenceNumber().set(params.seq_number); - - /* RICsubscriptionResponse-IEs : RANfunctionID */ - IE_value_t* ie_RANfunctionID = new IE_value_t; - container->ref_protocolIEs().push_back(*ie_RANfunctionID); - - ie_RANfunctionID->ref_id().select_id_RANfunctionID(); - ie_RANfunctionID->ref_criticality().select_id_RANfunctionID(); - ie_RANfunctionID->ref_value().select_id_RANfunctionID().set(params.ran_func_id); - - /* RICsubscriptionResponse-IEs : RICaction-Admitted-List */ - IE_value_t* ie_admittedList = new IE_value_t; - container->ref_protocolIEs().push_back(*ie_admittedList); - - ie_admittedList->ref_id().select_id_RICactions_Admitted(); - ie_admittedList->ref_criticality().select_id_RICactions_Admitted(); - - /* RICsubscriptionResponse-IEs : RICaction-NotAdmitted-List */ - IE_value_t* ie_notAdmittedList = new IE_value_t; - container->ref_protocolIEs().push_back(*ie_notAdmittedList); - - ie_notAdmittedList->ref_id().select_id_RICactions_NotAdmitted(); - ie_notAdmittedList->ref_criticality().select_id_RICactions_NotAdmitted(); - - //add action to admitted and not-admitted list - for(auto const &a : params.actionList) - { - if(a.isAdmitted) - { - RICaction_Admitted_List::value_type* item = new RICaction_Admitted_List::value_type(); - - ie_admittedList->ref_value().select_id_RICactions_Admitted().push_back(*item); - - item->ref_id().select_id_RICaction_Admitted_Item(); - item->ref_criticality().select_id_RICaction_Admitted_Item(); - item->ref_value().select_id_RICaction_Admitted_Item().ref_ricActionID().set(a.action_id); - } - else - { - RICaction_NotAdmitted_List::value_type* item = new RICaction_NotAdmitted_List::value_type(); - - ie_notAdmittedList->ref_value().select_id_RICactions_NotAdmitted().push_back(*item); - - item->ref_id().select_id_RICaction_NotAdmitted_Item(); - item->ref_criticality().select_id_RICaction_NotAdmitted_Item(); - item->ref_value().select_id_RICaction_NotAdmitted_Item().ref_ricActionID().set(a.action_id); - - // set cause and sub-cause - switch(a.notAdmitted_cause) - { - case RICcause_radioNetwork: - item->ref_value().select_id_RICaction_NotAdmitted_Item().ref_ricCause().select_radioNetwork().set(a.notAdmitted_subCause); - break; - - case RICcause_transport: - item->ref_value().select_id_RICaction_NotAdmitted_Item().ref_ricCause().select_transport().set(a.notAdmitted_subCause); - break; - - case RICcause_protocol: - item->ref_value().select_id_RICaction_NotAdmitted_Item().ref_ricCause().select_protocol().set(a.notAdmitted_subCause); - break; - - case RICcause_misc: - item->ref_value().select_id_RICaction_NotAdmitted_Item().ref_ricCause().select_misc().set(a.notAdmitted_subCause); - break; - - case RICcause_ric: - item->ref_value().select_id_RICaction_NotAdmitted_Item().ref_ricCause().select_ric().set(a.notAdmitted_subCause); - break; - - default: - printf("Unknown cause for action not admitted = %d", (int)a.notAdmitted_cause); - } - } - } - - return true; -} - -bool e2ap_create_RICsubscriptionFailure(e2ap_pdu_t* pdu, RICsubscription_params_t ¶ms) -{ - E2APpduWrapper* pduWrapper = reinterpret_cast(pdu); - - /* Initiaization */ - pduWrapper->ref_pdu().select_unsuccessfulOutcome().ref_procedureCode().select_id_ricSubscription(); - pduWrapper->ref_pdu().select_unsuccessfulOutcome().ref_criticality().select_id_ricSubscription(); - - RICsubscriptionFailure* container = &(pduWrapper->ref_pdu() - .select_unsuccessfulOutcome().ref_value().select_id_ricSubscription()); - - using IE_value_t = RICsubscriptionFailure::protocolIEs_t::value_type; - - /* RICsubscriptionFailure-IEs : RICrequestID */ - IE_value_t* ie_RICrequestID = new IE_value_t; - container->ref_protocolIEs().push_back(*ie_RICrequestID); - - ie_RICrequestID->ref_id().select_id_RICrequestID(); - ie_RICrequestID->ref_criticality().select_id_RICrequestID(); - ie_RICrequestID->ref_value().select_id_RICrequestID() - .ref_ricRequestorID().set(params.request_id); - ie_RICrequestID->ref_value().select_id_RICrequestID() - .ref_ricRequestSequenceNumber().set(params.seq_number); - - /* RICsubscriptionFailure-IEs : RANfunctionID */ - IE_value_t* ie_RANfunctionID = new IE_value_t; - container->ref_protocolIEs().push_back(*ie_RANfunctionID); - - ie_RANfunctionID->ref_id().select_id_RANfunctionID(); - ie_RANfunctionID->ref_criticality().select_id_RANfunctionID(); - ie_RANfunctionID->ref_value().select_id_RANfunctionID().set(params.ran_func_id); - - /* RICsubscriptionFailure-IEs : RICaction-NotAdmitted-List */ - IE_value_t* ie_notAdmittedList = new IE_value_t; - container->ref_protocolIEs().push_back(*ie_notAdmittedList); - - ie_notAdmittedList->ref_id().select_id_RICactions_NotAdmitted(); - ie_notAdmittedList->ref_criticality().select_id_RICactions_NotAdmitted(); - - for(auto const &a : params.actionList) - { - if(!a.isAdmitted) - { - RICaction_NotAdmitted_List::value_type* item = new RICaction_NotAdmitted_List::value_type(); - - ie_notAdmittedList->ref_value().select_id_RICactions_NotAdmitted().push_back(*item); - - item->ref_id().select_id_RICaction_NotAdmitted_Item(); - item->ref_criticality().select_id_RICaction_NotAdmitted_Item(); - item->ref_value().select_id_RICaction_NotAdmitted_Item().ref_ricActionID().set(a.action_id); - - // set cause and sub-cause - switch(a.notAdmitted_cause) - { - case RICcause_radioNetwork: - item->ref_value().select_id_RICaction_NotAdmitted_Item().ref_ricCause().select_radioNetwork().set(a.notAdmitted_subCause); - break; - - case RICcause_transport: - item->ref_value().select_id_RICaction_NotAdmitted_Item().ref_ricCause().select_transport().set(a.notAdmitted_subCause); - break; - - case RICcause_protocol: - item->ref_value().select_id_RICaction_NotAdmitted_Item().ref_ricCause().select_protocol().set(a.notAdmitted_subCause); - break; - - case RICcause_misc: - item->ref_value().select_id_RICaction_NotAdmitted_Item().ref_ricCause().select_misc().set(a.notAdmitted_subCause); - break; - - case RICcause_ric: - item->ref_value().select_id_RICaction_NotAdmitted_Item().ref_ricCause().select_ric().set(a.notAdmitted_subCause); - break; - - default: - printf("Unknown cause for action not admitted = %d", (int)a.notAdmitted_cause); - } - } - } - - return true; -} - - -/*----------------------------------------------------------------------- - TESTS -------------------------------------------------------------------------- -*/ -void test_E2AP_X2Setup_codec(void) -{ - e2ap_pdu_t* pdu = new_e2ap_pdu(); - - // e2ap_init_X2SetupRequest(pdu); - eNB_config cfg; - e2ap_create_X2SetupRequest(pdu, cfg); - - char pdu_str[1024]; - e2ap_asn_print(pdu, pdu_str, sizeof(pdu_str)); - printf("%s\n", pdu_str); - - //Test encode - unsigned char packed_buf[4096]; - char err_buf[1024]; - - int packed_len = e2ap_asn_per_encode(pdu, packed_buf, sizeof(packed_buf), - err_buf, sizeof(err_buf)); - if(packed_len != -1) { - printf("Encode successful, packed_len = %d\n", packed_len); - } else { - printf("Encode Error: %s\n", err_buf); - } - - //Test decode - e2ap_pdu_t* pdu2 = new_e2ap_pdu(); - int rc = e2ap_asn_per_decode(pdu2, packed_buf, packed_len, err_buf, sizeof(err_buf)); - if(rc == -1) { - printf("Decode error: %s\n", err_buf); - } else { - printf("Decode successful\n"); - } - - e2ap_asn_print(pdu2, pdu_str, sizeof(pdu_str)); - printf("%s\n", pdu_str); - - printf("index = %d\n", e2ap_get_index(pdu2)); - printf("procedureCode = %d\n", e2ap_get_procedureCode(pdu2)); - - //Test X2SetupResponse - e2ap_pdu_t* pdu_resp = new_e2ap_pdu(); - e2ap_create_X2SetupResponse(pdu_resp, cfg); - e2ap_asn_print(pdu_resp, pdu_str, sizeof(pdu_str)); - printf("%s\n", pdu_str); - - //Test X2SetupFailure - e2ap_pdu_t* pdu_failure = new_e2ap_pdu(); - e2ap_create_X2SetupFailure(pdu_failure); - e2ap_asn_print(pdu_failure, pdu_str, sizeof(pdu_str)); - printf("%s \n", pdu_str); -} diff --git a/e2sim/previous/e2apv1sim/src/ASN1/lib/asn_e2ap.hpp b/e2sim/previous/e2apv1sim/src/ASN1/lib/asn_e2ap.hpp deleted file mode 100644 index aa858b2..0000000 --- a/e2sim/previous/e2apv1sim/src/ASN1/lib/asn_e2ap.hpp +++ /dev/null @@ -1,85 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -#ifndef ASN_E2AP_HPP -#define ASN_E2AP_HPP - -#include -#include -#include - -#include "e2ap_config.hpp" - -typedef struct c__dummy01 e2ap_pdu_t; - -/*----------------------------------------------------------------------- - COMMON ROUTINES -------------------------------------------------------------------------- -*/ -e2ap_pdu_t* new_e2ap_pdu(void); - -void e2ap_asn_print(e2ap_pdu_t* pdu, char* buf, size_t buf_size); - -int e2ap_asn_per_encode(e2ap_pdu_t* pdu, unsigned char* buf, size_t buf_size, - char* err_buf, size_t err_buf_size); - -int e2ap_asn_per_decode(e2ap_pdu_t* pdu, unsigned char const* buf, size_t buf_size, - char* err_buf, size_t err_buf_size); - -int e2ap_get_index(e2ap_pdu_t* pdu); - -int e2ap_get_procedureCode(e2ap_pdu_t* pdu); - -/*----------------------------------------------------------------------- - MESSAGE GENERATORS -------------------------------------------------------------------------- -*/ - -//X2Setup -bool e2ap_init_X2SetupRequest(e2ap_pdu_t* pdu); - -bool e2ap_create_X2SetupRequest(e2ap_pdu_t* pdu, eNB_config &cfg); - -bool e2ap_create_X2SetupResponse(e2ap_pdu_t* pdu, eNB_config &cfg); - -bool e2ap_create_X2SetupFailure(e2ap_pdu_t* pdu); - -//ENDCX2Setup -bool e2ap_create_ENDCX2SetupRequest(e2ap_pdu_t* pdu, eNB_config &cfg); - -bool e2ap_create_ENDCX2SetupResponse(e2ap_pdu_t* pdu, gNB_config &cfg); - -bool e2ap_create_ENDCX2SetupFailure(e2ap_pdu_t* pdu); - -//RIC Subscription -bool e2ap_create_RICsubscriptionRequest(e2ap_pdu_t* pdu, RICsubscription_params_t ¶ms); - -bool e2ap_parse_RICsubscriptionRequest(e2ap_pdu_t* pdu, RICsubscription_params_t ¶ms); - -bool e2ap_create_RICsubscriptionResponse(e2ap_pdu_t* pdu, RICsubscription_params_t ¶ms); - -bool e2ap_create_RICsubscriptionFailure(e2ap_pdu_t* pdu, RICsubscription_params_t ¶ms); - -/*----------------------------------------------------------------------- - TESTS -------------------------------------------------------------------------- -*/ -void test_E2AP_X2Setup_codec(void); - -#endif diff --git a/e2sim/previous/e2apv1sim/src/ASN1/lib/asn_e2ap_wrapper.hpp b/e2sim/previous/e2apv1sim/src/ASN1/lib/asn_e2ap_wrapper.hpp deleted file mode 100644 index 38704e8..0000000 --- a/e2sim/previous/e2apv1sim/src/ASN1/lib/asn_e2ap_wrapper.hpp +++ /dev/null @@ -1,85 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ -#ifndef ASN_E2AP_PDU_WRAPPER_HPP -#define ASN_E2AP_PDU_WRAPPER_HPP - -#include -#include -#include - -// #include - -// #include -// #include -// #include -// #include -// #include - -#include -// #include -#include -#include -#include - -#define E2AP_PDU_DEFAULT_BUFFER_SIZE 4096 - -//Credit: copied from E2-Manager -struct E2APpduWrapper -{ - unsigned char* m_allocation_buffer; - size_t m_allocation_buffer_size; - - E2APpduWrapper(size_t allocation_buffer_size = E2AP_PDU_DEFAULT_BUFFER_SIZE) - { - m_allocation_buffer_size = allocation_buffer_size; - m_allocation_buffer = 0; - if (allocation_buffer_size) { - m_allocation_buffer = - new (std::nothrow) unsigned char[allocation_buffer_size]; - m_allocator.reset( - m_allocation_buffer, - m_allocation_buffer_size); // initialized correctly on - // allocation failure. - } - } - - ~E2APpduWrapper() - { - if (m_allocation_buffer) - delete[] m_allocation_buffer; - } - - asn::allocator& ref_allocator() { return m_allocator; } - - E2AP_PDU& ref_pdu() { return m_pdu; } - - // reset pdu and allocation buffer. Allows reusing. - void clear() - { - m_pdu.clear(); - m_allocator.reset(m_allocation_buffer, m_allocation_buffer_size); - } - - private: - E2AP_PDU m_pdu; - asn::allocator m_allocator; -}; - - -#endif diff --git a/e2sim/previous/e2apv1sim/src/ASN1/lib/asn_x2ap.cpp b/e2sim/previous/e2apv1sim/src/ASN1/lib/asn_x2ap.cpp deleted file mode 100644 index dae9ca8..0000000 --- a/e2sim/previous/e2apv1sim/src/ASN1/lib/asn_x2ap.cpp +++ /dev/null @@ -1,428 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -#include "asn_x2ap.hpp" -#include "asn_x2ap_wrapper.hpp" - -/*----------------------------------------------------------------------- - COMMON ROUTINES -------------------------------------------------------------------------- -*/ -x2ap_pdu_t* new_x2ap_pdu(void) -{ - X2APpduWrapper* pduWrapper = new X2APpduWrapper(); - return reinterpret_cast(pduWrapper); -} - -void x2ap_asn_print(x2ap_pdu_t* pdu, char* buf, size_t buf_size) -{ - X2APpduWrapper* pduWrapper = reinterpret_cast(pdu); - - buf[0] = 0; - - strncat(buf, asn::get_printed(pduWrapper->ref_pdu()).c_str(), buf_size - 1); -} - -int x2ap_asn_per_encode(x2ap_pdu_t* pdu, unsigned char* buf, size_t buf_size, - char* err_buf, size_t err_buf_size) -{ - X2APpduWrapper* pduWrapper = reinterpret_cast(pdu); - - asn::per::EncoderCtx ctx{ buf, buf_size }; - - if (!asn::per::pack(pduWrapper->ref_pdu(), ctx)) { - err_buf[0] = 0; - // strncat(err_buf, ctx.refErrorCtx().toString().c_str(), err_buf_size - 1); - return -1; - } else { - return static_cast(ctx.refBuffer().getBytesUsed()); - } - -} - -int x2ap_asn_per_decode(x2ap_pdu_t* pdu, unsigned char const* buf, size_t buf_size, - char* err_buf, size_t err_buf_size) -{ - X2APpduWrapper* pduWrapper = reinterpret_cast(pdu); - - asn::per::DecoderCtx ctx{ buf, - buf_size, - pduWrapper->m_allocation_buffer, - pduWrapper->m_allocation_buffer_size }; - - if (!asn::per::unpack(pduWrapper->ref_pdu(), ctx)) { - err_buf[0] = 0; - // strncat(err_buf, ctx.refErrorCtx().toString().c_str(), err_buf_size - 1); - return -1; - } - - return 0; - -} - -int x2ap_get_index(x2ap_pdu_t* pdu) -{ - X2APpduWrapper* pduWrapper = reinterpret_cast(pdu); - - return pduWrapper->ref_pdu().get_index(); -} - -int x2ap_get_procedureCode(x2ap_pdu_t* pdu) -{ - X2APpduWrapper* pduWrapper = reinterpret_cast(pdu); - - switch(pduWrapper->ref_pdu().get_index()) - { - case 1: - return pduWrapper->ref_pdu().get_initiatingMessage()->ref_procedureCode().get(); - break; - - case 2: - return pduWrapper->ref_pdu().get_successfulOutcome()->ref_procedureCode().get(); - break; - - case 3: - return pduWrapper->ref_pdu().get_unsuccessfulOutcome()->ref_procedureCode().get(); - break; - - default: - return -1; - } - -} - -/*----------------------------------------------------------------------- - MESSAGE GENERATORS -------------------------------------------------------------------------- -*/ -//X2Setup -bool x2ap_init_X2SetupRequest(x2ap_pdu_t* pdu) -{ - X2APpduWrapper* pduWrapper = reinterpret_cast(pdu); - - //Initialization - pduWrapper->ref_pdu().select_initiatingMessage(); - pduWrapper->ref_pdu().select_initiatingMessage().clear(); - pduWrapper->ref_pdu().select_initiatingMessage().ref_procedureCode().select_id_x2Setup(); - pduWrapper->ref_pdu().select_initiatingMessage().ref_criticality().select_id_x2Setup(); - pduWrapper->ref_pdu().select_initiatingMessage().ref_value().select_id_x2Setup(); - - return true; -} - -bool x2ap_create_X2SetupRequest(x2ap_pdu_t* pdu, eNB_config &cfg) -{ - X2APpduWrapper* pduWrapper = reinterpret_cast(pdu); - - /* Initiaization */ - pduWrapper->ref_pdu().select_initiatingMessage().ref_procedureCode().select_id_x2Setup(); - pduWrapper->ref_pdu().select_initiatingMessage().ref_criticality().select_id_x2Setup(); - - X2SetupRequest* container = - &(pduWrapper->ref_pdu().select_initiatingMessage().ref_value().select_id_x2Setup()); - - using IE_value_t = X2SetupRequest::protocolIEs_t::value_type; - - /* X2SetupRequest-IEs : GlobalENB-ID*/ - IE_value_t* val_GlobalENB_ID = new IE_value_t; - container->ref_protocolIEs().push_back(*val_GlobalENB_ID); - - val_GlobalENB_ID->ref_id().select_id_GlobalENB_ID(); - val_GlobalENB_ID->ref_criticality().select_id_GlobalENB_ID(); - val_GlobalENB_ID->ref_value().select_id_GlobalENB_ID().ref_pLMN_Identity() - .set(3, cfg.pLMN_Identity); - - val_GlobalENB_ID->ref_value().select_id_GlobalENB_ID().ref_eNB_ID() - .select_macro_eNB_ID().set_buffer(20, cfg.macro_eNB_ID); - - /* X2SetupRequest-IEs : ServedCells*/ - IE_value_t* val_ServedCells = new IE_value_t; - container->ref_protocolIEs().push_back(*val_ServedCells); - - val_ServedCells->ref_id().select_id_ServedCells(); - val_ServedCells->ref_criticality().select_id_ServedCells(); - val_ServedCells->ref_value().select_id_ServedCells(); - - //Add servedCellInfo - ServedCells::value_type* elm = new ServedCells::value_type(); - ServedCell_Information* info = &(elm->ref_servedCellInfo()); - { - //Set ServedCell-Information: pCI, cellId, tAC, broadcastPLMNs, eUTRA-Mode-Info - info->ref_pCI().set(cfg.pCI); - info->ref_cellId().ref_pLMN_Identity().set(3, cfg.pLMN_Identity); - info->ref_cellId().ref_eUTRANcellIdentifier().set_buffer(28, cfg.eUTRANcellIdentifier); - info->ref_tAC().set(2, cfg.tAC); - - BroadcastPLMNs_Item::value_type* item = new BroadcastPLMNs_Item::value_type(); - item->set(3, cfg.pLMN_Identity); - info->ref_broadcastPLMNs().push_back(*item); - - info->ref_eUTRA_Mode_Info().select_fDD().ref_uL_EARFCN().set(cfg.uL_EARFCN); - info->ref_eUTRA_Mode_Info().select_fDD().ref_dL_EARFCN().set(cfg.dL_EARFCN); - info->ref_eUTRA_Mode_Info().select_fDD().ref_uL_Transmission_Bandwidth() - .set(static_cast(cfg.uL_Bandwidth)); - info->ref_eUTRA_Mode_Info().select_fDD().ref_dL_Transmission_Bandwidth() - .set(static_cast(cfg.dL_Bandwidth)); - } - val_ServedCells->ref_value().select_id_ServedCells().push_back(*elm); - - return true; -} - -bool x2ap_create_X2SetupResponse(x2ap_pdu_t* pdu, eNB_config &cfg) -{ - X2APpduWrapper* pduWrapper = reinterpret_cast(pdu); - - /* Initiaization */ - pduWrapper->ref_pdu().select_successfulOutcome().ref_procedureCode().select_id_x2Setup(); - pduWrapper->ref_pdu().select_successfulOutcome().ref_criticality().select_id_x2Setup(); - - X2SetupResponse* container = - &(pduWrapper->ref_pdu().select_successfulOutcome().ref_value().select_id_x2Setup()); - - using IE_value_t = X2SetupResponse::protocolIEs_t::value_type; - - /* X2SetupResponse-IEs : GlobalENB-ID*/ - IE_value_t* val_GlobalENB_ID = new IE_value_t; - container->ref_protocolIEs().push_back(*val_GlobalENB_ID); - - val_GlobalENB_ID->ref_id().select_id_GlobalENB_ID(); - val_GlobalENB_ID->ref_criticality().select_id_GlobalENB_ID(); - val_GlobalENB_ID->ref_value().select_id_GlobalENB_ID().ref_pLMN_Identity() - .set(3, cfg.pLMN_Identity); - - val_GlobalENB_ID->ref_value().select_id_GlobalENB_ID().ref_eNB_ID() - .select_macro_eNB_ID().set_buffer(20, cfg.macro_eNB_ID); - - /* X2SetupResponse-IEs : ServedCells*/ - IE_value_t* val_ServedCells = new IE_value_t; - container->ref_protocolIEs().push_back(*val_ServedCells); - - val_ServedCells->ref_id().select_id_ServedCells(); - val_ServedCells->ref_criticality().select_id_ServedCells(); - val_ServedCells->ref_value().select_id_ServedCells(); - - //Add servedCellInfo - ServedCells::value_type* elm = new ServedCells::value_type(); - ServedCell_Information* info = &(elm->ref_servedCellInfo()); - { - //Set ServedCell-Information: pCI, cellId, tAC, broadcastPLMNs, eUTRA-Mode-Info - info->ref_pCI().set(cfg.pCI); - info->ref_cellId().ref_pLMN_Identity().set(3, cfg.pLMN_Identity); - info->ref_cellId().ref_eUTRANcellIdentifier().set_buffer(28, cfg.eUTRANcellIdentifier); - info->ref_tAC().set(2, cfg.tAC); - - BroadcastPLMNs_Item::value_type* item = new BroadcastPLMNs_Item::value_type(); - item->set(3, cfg.pLMN_Identity); - info->ref_broadcastPLMNs().push_back(*item); - - info->ref_eUTRA_Mode_Info().select_fDD().ref_uL_EARFCN().set(cfg.uL_EARFCN); - info->ref_eUTRA_Mode_Info().select_fDD().ref_dL_EARFCN().set(cfg.dL_EARFCN); - info->ref_eUTRA_Mode_Info().select_fDD().ref_uL_Transmission_Bandwidth() - .set(static_cast(cfg.uL_Bandwidth)); - info->ref_eUTRA_Mode_Info().select_fDD().ref_dL_Transmission_Bandwidth() - .set(static_cast(cfg.dL_Bandwidth)); - } - val_ServedCells->ref_value().select_id_ServedCells().push_back(*elm); - - return true; -} - -bool x2ap_create_X2SetupFailure(x2ap_pdu_t* pdu) -{ - X2APpduWrapper* pduWrapper = reinterpret_cast(pdu); - - /* Initiaization */ - pduWrapper->ref_pdu().select_unsuccessfulOutcome().ref_procedureCode().select_id_x2Setup(); - pduWrapper->ref_pdu().select_unsuccessfulOutcome().ref_criticality().select_id_x2Setup(); - - X2SetupFailure* container = - &(pduWrapper->ref_pdu().select_unsuccessfulOutcome().ref_value().select_id_x2Setup()); - - using IE_value_t = X2SetupFailure::protocolIEs_t::value_type; - - /* X2SetupFailure-IEs << id-Cause */ - IE_value_t* val_cause = new IE_value_t; - container->ref_protocolIEs().push_back(*val_cause); - - val_cause->ref_id().select_id_Cause(); - val_cause->ref_criticality().select_id_Cause(); - - /* Cause << radioNetwork */ - val_cause->ref_value().select_id_Cause().select_radioNetwork(); - - /* CauseRadioNetwork = ho-target-not-allowed (enum = 8)*/ - val_cause->ref_value().select_id_Cause().select_radioNetwork() - .set(static_cast(8)); - - return true; -} - -//ENDCX2Setup -bool x2ap_create_ENDCX2SetupRequest(x2ap_pdu_t* pdu, eNB_config &cfg) -{ - X2APpduWrapper* pduWrapper = reinterpret_cast(pdu); - - /* Initiaization */ - pduWrapper->ref_pdu().select_initiatingMessage().ref_procedureCode().select_id_endcX2Setup(); - pduWrapper->ref_pdu().select_initiatingMessage().ref_criticality().select_id_endcX2Setup(); - - ENDCX2SetupRequest* container = - &(pduWrapper->ref_pdu().select_initiatingMessage().ref_value().select_id_endcX2Setup()); - - using IE_value_t = ENDCX2SetupRequest::protocolIEs_t::value_type; - - /* ENDCX2SetupRequest-IEs = id-InitiatingNodeType-EndcX2Setup */ - IE_value_t* ie = new IE_value_t; - container->ref_protocolIEs().push_back(*ie); - ie->ref_id().select_id_InitiatingNodeType_EndcX2Setup(); - ie->ref_criticality().select_id_InitiatingNodeType_EndcX2Setup(); - ie->ref_value().select_id_InitiatingNodeType_EndcX2Setup(); - - /* InitiatingNodeType-EndcX2Setup = init-eNB {ENB-ENDCX2SetupReqIEs} */ - ie->ref_value().select_id_InitiatingNodeType_EndcX2Setup().select_init_eNB(); - - using eNB_val_t = InitiatingNodeType_EndcX2Setup::init_eNB_t::value_type; - - ProtocolIE_Container* eNB_node = - &(ie->ref_value().select_id_InitiatingNodeType_EndcX2Setup().select_init_eNB()); - - /* ENB-ENDCX2SetupReqIEs <-- id-GlobalENB-ID */ - eNB_val_t* val_GlobalENB_ID = new eNB_val_t; - eNB_node->push_back(*val_GlobalENB_ID); - - val_GlobalENB_ID->ref_id().select_id_GlobalENB_ID(); - val_GlobalENB_ID->ref_criticality().select_id_GlobalENB_ID(); - val_GlobalENB_ID->ref_value().select_id_GlobalENB_ID() - .ref_pLMN_Identity().set(3, cfg.pLMN_Identity); - val_GlobalENB_ID->ref_value().select_id_GlobalENB_ID().ref_eNB_ID() - .select_macro_eNB_ID().set_buffer(20, cfg.macro_eNB_ID); - - /* ENB-ENDCX2SetupReqIEs <-- id-ServedEUTRAcellsENDCX2ManagementList */ - eNB_val_t* val_EUTRAlist = new eNB_val_t; - eNB_node->push_back(*val_EUTRAlist); - - val_EUTRAlist->ref_id().select_id_ServedEUTRAcellsENDCX2ManagementList(); - val_EUTRAlist->ref_criticality().select_id_ServedEUTRAcellsENDCX2ManagementList(); - val_EUTRAlist->ref_value().select_id_ServedEUTRAcellsENDCX2ManagementList(); - - /* ServedEUTRAcellsENDCX2ManagementList <-- servedEUTRACellInfo */ - ServedEUTRAcellsENDCX2ManagementList::value_type* elm = - new ServedEUTRAcellsENDCX2ManagementList::value_type(); - ServedCell_Information* info = &(elm->ref_servedEUTRACellInfo()); - { - //Set ServedCell-Information: pCI, cellId, tAC, broadcastPLMNs, eUTRA-Mode-Info - info->ref_pCI().set(cfg.pCI); - info->ref_cellId().ref_pLMN_Identity().set(3, cfg.pLMN_Identity); - info->ref_cellId().ref_eUTRANcellIdentifier().set_buffer(28, cfg.eUTRANcellIdentifier); - info->ref_tAC().set(2, cfg.tAC); - - BroadcastPLMNs_Item::value_type* item = new BroadcastPLMNs_Item::value_type(); - item->set(3, cfg.pLMN_Identity); - info->ref_broadcastPLMNs().push_back(*item); - - info->ref_eUTRA_Mode_Info().select_fDD().ref_uL_EARFCN().set(cfg.uL_EARFCN); - info->ref_eUTRA_Mode_Info().select_fDD().ref_dL_EARFCN().set(cfg.dL_EARFCN); - info->ref_eUTRA_Mode_Info().select_fDD().ref_uL_Transmission_Bandwidth() - .set(static_cast(cfg.uL_Bandwidth)); - info->ref_eUTRA_Mode_Info().select_fDD().ref_dL_Transmission_Bandwidth() - .set(static_cast(cfg.dL_Bandwidth)); - } - val_EUTRAlist->ref_value().select_id_ServedEUTRAcellsENDCX2ManagementList() - .push_back(*elm); - - return true; -} - -/*----------------------------------------------------------------------- - TESTS -------------------------------------------------------------------------- -*/ -void test_X2Setup_codec(void) -{ - x2ap_pdu_t* pdu = new_x2ap_pdu(); - - eNB_config cfg; - x2ap_create_X2SetupRequest(pdu, cfg); - - char pdu_str[1024]; - x2ap_asn_print(pdu, pdu_str, sizeof(pdu_str)); - printf("%s\n", pdu_str); - - //Test encode - unsigned char packed_buf[4096]; - char err_buf[1024]; - - int packed_len = x2ap_asn_per_encode(pdu, packed_buf, sizeof(packed_buf), - err_buf, sizeof(err_buf)); - if(packed_len != -1) { - printf("Encode successful, packed_len = %d\n", packed_len); - } else { - printf("Encode Error: %s\n", err_buf); - } - - //Test encode error - x2ap_pdu_t* pdu1 = new_x2ap_pdu(); - x2ap_init_X2SetupRequest(pdu1); - - int packed_len1 = x2ap_asn_per_encode(pdu1, packed_buf, sizeof(packed_buf), - err_buf, sizeof(err_buf)); - if(packed_len1 != -1) { - printf("Encode successful, packed_len = %d\n", packed_len1); - } else { - printf("Encode Error: %s\n", err_buf); - } - - //Test decode - x2ap_pdu_t* pdu2 = new_x2ap_pdu(); - int rc = x2ap_asn_per_decode(pdu2, packed_buf, packed_len, err_buf, sizeof(err_buf)); - if(rc == -1) { - printf("Decode error: %s\n", err_buf); - } else { - printf("Decode successful\n"); - } - - x2ap_asn_print(pdu2, pdu_str, sizeof(pdu_str)); - printf("%s\n", pdu_str); - - printf("index = %d\n", x2ap_get_index(pdu2)); - printf("procedureCode = %d\n", x2ap_get_procedureCode(pdu2)); - - - //Test decode error - x2ap_pdu_t* pdu3 = new_x2ap_pdu(); - int rc2 = x2ap_asn_per_decode(pdu3, packed_buf, 1, err_buf, sizeof(err_buf)); - if(rc2 == -1) { - printf("Decode error: %s\n", err_buf); - } else { - printf("Decode successful\n"); - } - - //Test X2SetupResponse - x2ap_pdu_t* pdu_resp = new_x2ap_pdu(); - x2ap_create_X2SetupResponse(pdu_resp, cfg); - x2ap_asn_print(pdu_resp, pdu_str, sizeof(pdu_str)); - printf("%s\n", pdu_str); - - //Test X2SetupFailure - x2ap_pdu_t* pdu_failure = new_x2ap_pdu(); - x2ap_create_X2SetupFailure(pdu_failure); - x2ap_asn_print(pdu_failure, pdu_str, sizeof(pdu_str)); - printf("%s \n", pdu_str); -} diff --git a/e2sim/previous/e2apv1sim/src/ASN1/lib/asn_x2ap.hpp b/e2sim/previous/e2apv1sim/src/ASN1/lib/asn_x2ap.hpp deleted file mode 100644 index d0c02d2..0000000 --- a/e2sim/previous/e2apv1sim/src/ASN1/lib/asn_x2ap.hpp +++ /dev/null @@ -1,72 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -#ifndef ASN_X2AP_HPP -#define ASN_X2AP_HPP - -#include -#include -#include - -#include "e2ap_config.hpp" - -typedef struct c__dummy00 x2ap_pdu_t; - -/*----------------------------------------------------------------------- - COMMON ROUTINES -------------------------------------------------------------------------- -*/ - -x2ap_pdu_t* new_x2ap_pdu(void); - -void x2ap_asn_print(x2ap_pdu_t* pdu, char* buf, size_t buf_size); - -int x2ap_asn_per_encode(x2ap_pdu_t* pdu, unsigned char* buf, size_t buf_size, - char* err_buf, size_t err_buf_size); - -int x2ap_asn_per_decode(x2ap_pdu_t* pdu, unsigned char const* buf, size_t buf_size, - char* err_buf, size_t err_buf_size); - -int x2ap_get_index(x2ap_pdu_t* pdu); - -int x2ap_get_procedureCode(x2ap_pdu_t* pdu); - -/*----------------------------------------------------------------------- - MESSAGE GENERATORS -------------------------------------------------------------------------- -*/ -//X2Setup -bool x2ap_init_X2SetupRequest(x2ap_pdu_t* pdu); - -bool x2ap_create_X2SetupRequest(x2ap_pdu_t* pdu, eNB_config &cfg); - -bool x2ap_create_X2SetupResponse(x2ap_pdu_t* pdu, eNB_config &cfg); - -bool x2ap_create_X2SetupFailure(x2ap_pdu_t* pdu); - -//ENDCX2Setup -bool x2ap_create_ENDCX2SetupRequest(x2ap_pdu_t* pdu, eNB_config &cfg); - -/*----------------------------------------------------------------------- - TESTS -------------------------------------------------------------------------- -*/ -void test_X2Setup_codec(void); - -#endif diff --git a/e2sim/previous/e2apv1sim/src/ASN1/lib/asn_x2ap_wrapper.hpp b/e2sim/previous/e2apv1sim/src/ASN1/lib/asn_x2ap_wrapper.hpp deleted file mode 100644 index 96ea81c..0000000 --- a/e2sim/previous/e2apv1sim/src/ASN1/lib/asn_x2ap_wrapper.hpp +++ /dev/null @@ -1,78 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ -#ifndef ASN_X2AP_PDU_WRAPPER_HPP -#define ASN_X2AP_PDU_WRAPPER_HPP - -#include -#include -#include - -#include -#include -#include -#include -#include -#include - -#define X2AP_PDU_DEFAULT_BUFFER_SIZE 4096 - -//Credit: copied from E2-Manager -struct X2APpduWrapper -{ - unsigned char* m_allocation_buffer; - size_t m_allocation_buffer_size; - - X2APpduWrapper(size_t allocation_buffer_size = X2AP_PDU_DEFAULT_BUFFER_SIZE) - { - m_allocation_buffer_size = allocation_buffer_size; - m_allocation_buffer = 0; - if (allocation_buffer_size) { - m_allocation_buffer = - new (std::nothrow) unsigned char[allocation_buffer_size]; - m_allocator.reset( - m_allocation_buffer, - m_allocation_buffer_size); // initialized correctly on - // allocation failure. - } - } - - ~X2APpduWrapper() - { - if (m_allocation_buffer) - delete[] m_allocation_buffer; - } - - asn::allocator& ref_allocator() { return m_allocator; } - - X2AP_PDU& ref_pdu() { return m_pdu; } - - // reset pdu and allocation buffer. Allows reusing. - void clear() - { - m_pdu.clear(); - m_allocator.reset(m_allocation_buffer, m_allocation_buffer_size); - } - - private: - X2AP_PDU m_pdu; - asn::allocator m_allocator; -}; - - -#endif diff --git a/e2sim/previous/e2apv1sim/src/ASN1/lib/e2ap_config.hpp b/e2sim/previous/e2apv1sim/src/ASN1/lib/e2ap_config.hpp deleted file mode 100644 index 9182ed1..0000000 --- a/e2sim/previous/e2apv1sim/src/ASN1/lib/e2ap_config.hpp +++ /dev/null @@ -1,160 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ -#ifndef E2AP_CONFIG_HPP -#define E2AP_CONFIG_HPP - -#include -#include - -enum enum_Transmission_Bandwidth { - enum_bw6, - enum_bw15, - enum_bw25, - enum_bw50, - enum_bw75, - enum_bw100, - enum_bw1 -}; - -enum enum_NRNRB{ - enum_nrb11, enum_nrb18, enum_nrb24, enum_nrb25, enum_nrb31, enum_nrb32, - enum_nrb38, enum_nrb51, enum_nrb52, enum_nrb65, enum_nrb66, enum_nrb78, - enum_nrb79, enum_nrb93, enum_nrb106, enum_nrb107, enum_nrb121, - enum_nrb132, enum_nrb133, enum_nrb135, enum_nrb160, enum_nrb162, - enum_nrb189, enum_nrb216, enum_nrb217, enum_nrb245, enum_nrb264, - enum_nrb270, enum_nrb273 -}; - -enum enum_NRSCS { - enum_scs15, enum_scs30, enum_scs60, enum_scs120 -}; - -class eNB_config { - public: - uint8_t* pLMN_Identity; - uint8_t* macro_eNB_ID; - int64_t pCI; - uint8_t* tAC; - uint8_t* eUTRANcellIdentifier; - - int64_t uL_EARFCN; - int64_t dL_EARFCN; - - enum_Transmission_Bandwidth uL_Bandwidth; - enum_Transmission_Bandwidth dL_Bandwidth; - - /*Default Constructor*/ - eNB_config() { - pLMN_Identity = (uint8_t*)"abc"; - macro_eNB_ID = (uint8_t*)"5"; - pCI = 0; - tAC = (uint8_t*)"ab"; - eUTRANcellIdentifier = (uint8_t*)"def"; - uL_EARFCN = 21400; - dL_EARFCN = 3400; - uL_Bandwidth = enum_bw25; - dL_Bandwidth = enum_bw50; - } -}; - -class gNB_config { - public: - uint8_t* pLMN_Identity; - uint8_t* gNB_ID; - int64_t nrpCI; - uint8_t* tAC; - uint8_t* nRcellIdentifier; - - int64_t uL_nRARFCN; - int64_t dL_nRARFCN; - - enum enum_NRNRB uL_NRNRB; - enum enum_NRNRB dL_NRNRB; - - enum enum_NRSCS uL_NRSCS; - enum enum_NRSCS dL_NRSCS; - - uint8_t ul_freqBandIndicatorNr; - uint8_t dl_freqBandIndicatorNr; - - std::string measurementTimingConfiguration; - - /*Default Constructor*/ - gNB_config() { - pLMN_Identity = (uint8_t*)"xyz"; - gNB_ID = (uint8_t*)"3"; - nrpCI = 1; - tAC = (uint8_t*)"ab"; - nRcellIdentifier = (uint8_t*)"gnb_id_123"; - uL_nRARFCN = 21400; - dL_nRARFCN = 21500; - - uL_NRNRB = enum_nrb11; - dL_NRNRB = enum_nrb121; - - uL_NRSCS = enum_scs15; - dL_NRSCS = enum_scs120; - - ul_freqBandIndicatorNr = 11; - dl_freqBandIndicatorNr = 12; - - measurementTimingConfiguration = "dummy timing"; - } -}; - -enum enum_RICactionType { - RICactionType_report, - RICactionType_insert, - RICactionType_policy -}; - -enum enum_RICcause { - RICcause_radioNetwork = 1, - RICcause_transport, - RICcause_protocol, - RICcause_misc, - RICcause_ric -}; - -struct RIC_action_t { - unsigned char action_id; - enum_RICactionType action_type; - bool isAdmitted = false; //for response/failure only - enum_RICcause notAdmitted_cause; //for response/failure only - unsigned int notAdmitted_subCause; //for response/failure only - - RIC_action_t() {;} - - RIC_action_t(unsigned char id, enum_RICactionType type) - { - action_id = id; - action_type = type; - } -}; - -struct RICsubscription_params_t { - uint16_t request_id = 0; - uint16_t seq_number = 0; - uint16_t ran_func_id = 0; - std::string event_trigger_def = ""; - - std::vector actionList; -} ; - -#endif diff --git a/e2sim/previous/e2apv1sim/src/DEF/e2sim_defs.cpp b/e2sim/previous/e2apv1sim/src/DEF/e2sim_defs.cpp deleted file mode 100644 index f1730d3..0000000 --- a/e2sim/previous/e2apv1sim/src/DEF/e2sim_defs.cpp +++ /dev/null @@ -1,125 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -#include "e2sim_defs.h" -#include -#include -#include - -char* time_stamp(void) -{ - timeval curTime; - gettimeofday(&curTime, NULL); - int milli = curTime.tv_usec / 1000; - - char buffer [80]; - strftime(buffer, 80, "%Y-%m-%d %H:%M:%S", localtime(&curTime.tv_sec)); - - const int time_buffer_len = 84; - static char currentTime[time_buffer_len] = ""; - snprintf(currentTime, time_buffer_len, "%s:%03d", buffer, milli); - - return currentTime; -} - -options_t read_input_options_old(int argc, char* argv[]) -{ - options_t options; - - options.server_ip = (char*)DEFAULT_SCTP_IP; - options.server_port = X2AP_SCTP_PORT; - - // Parse command line options - static struct option long_options[] = - { - {"ipv4", required_argument, 0, 'i'}, - {"ipv6", required_argument, 0, 'I'}, - {"port", required_argument, 0, 'p'}, - {"verbose", no_argument, 0, 'v'}, - }; - - while(1) - { - int option_index = 0; - - char c = getopt_long(argc, argv, "i:I:p:", long_options, &option_index); - - if(c == -1) - break; - - switch(c) - { - case 'i': - options.server_ip = optarg; - break; - case 'I': - break; - case 'p': - options.server_port = atoi(optarg); - if(options.server_port < 1 || options.server_port > 65535) - { - LOG_E("Invalid port number (%d). Valid values are between 1 and 65535.\n", - options.server_port); - exit(1); - } - break; - - default: - LOG_E("Error: unknown input option: %c\n", optopt); - exit(1); - } - } - - return options; -} - -options_t read_input_options(int argc, char *argv[]) -{ - options_t options; - - options.server_ip = (char*)DEFAULT_SCTP_IP; - options.server_port = X2AP_SCTP_PORT; - - if(argc == 3) //user provided IP and PORT - { - options.server_ip = argv[1]; - options.server_port = atoi(argv[2]); - if(options.server_port < 1 || options.server_port > 65535) { - LOG_E("Invalid port number (%d). Valid values are between 1 and 65535.\n", - options.server_port); - exit(1); - } - } - else if(argc == 2) //user provided only IP - { - options.server_ip = argv[1]; - } - else if(argc == 1) - { - options.server_ip = (char*)DEFAULT_SCTP_IP; - } - else - { - LOG_I("Unrecognized option.\n"); - LOG_I("Usage: %s [SERVER IP ADDRESS] [SERVER PORT]\n", argv[0]); - exit(1); - } - - return options; -} diff --git a/e2sim/previous/e2apv1sim/src/DEF/e2sim_defs.h b/e2sim/previous/e2apv1sim/src/DEF/e2sim_defs.h deleted file mode 100644 index cf4a0d6..0000000 --- a/e2sim/previous/e2apv1sim/src/DEF/e2sim_defs.h +++ /dev/null @@ -1,65 +0,0 @@ -/* - * - * Copyright 2019 AT&T Intellectual Property - * Copyright 2019 Nokia - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -#ifndef E2SIM_DEFS_H -#define E2SIM_DEFS_H - -// #include -#include -#include - -#define VERSION "1.2.0" //May 2019 -#define DEFAULT_SCTP_IP "127.0.0.1" -#define X2AP_PPID (452984832) //27 = 1b, PPID = 1b000000(hex) -> 452984832(dec) -#define X2AP_SCTP_PORT 36421 -#define RIC_SCTP_SRC_PORT 36422 -#define MAX_SCTP_BUFFER 10000 -#define WORKDIR_ENV "E2SIM_DIR" //environment variable - -char* time_stamp(void); - -// #define LOG_I(...) {printf("[%s]", time_stamp()); printf(__VA_ARGS__); printf("\n");} -// #define LOG_E(...) {printf("[%s]", time_stamp()); printf(__VA_ARGS__); printf("\n");} -// #define LOG_D(...) {printf("[%s]", time_stamp()); printf(__VA_ARGS__); printf("\n");} - -#define LOG_I(...) {printf(__VA_ARGS__); printf("\n");} -#define LOG_E(...) {printf(__VA_ARGS__); printf("\n");} -#define LOG_D(...) {printf(__VA_ARGS__); printf("\n");} - -typedef struct SCTP_DATA { - unsigned char *data; - int len; -} sctp_data_t; - -typedef struct { - unsigned char buffer[MAX_SCTP_BUFFER]; - int len; -} sctp_buffer_t; - -typedef struct { - char* server_ip; - int server_port; - //... extend as needed -} options_t; - -options_t read_input_options(int argc, char *argv[]); - -#define min(a, b) ((a) < (b)) ? (a) : (b) - -#endif diff --git a/e2sim/previous/e2apv1sim/src/E2AP/E2SM/e2sm.c b/e2sim/previous/e2apv1sim/src/E2AP/E2SM/e2sm.c deleted file mode 100644 index 6cad6cd..0000000 --- a/e2sim/previous/e2apv1sim/src/E2AP/E2SM/e2sm.c +++ /dev/null @@ -1,196 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ -#include "e2sm.h" - -#include "ActionParameter-Item.h" -#include "ActionParameter-Value.h" -#include "PLMN-Identity.h" -#include "GlobalENB-ID.h" -#include "GlobalGNB-ID.h" -#include "Interface-ID.h" -#include "ProtocolIE-Field.h" -#include "InterfaceMessageType.h" -#include "InterfaceProtocolIE-Item.h" - -static PLMN_Identity_t *createPLMN_ID(const unsigned char *data) { - - PLMN_Identity_t *plmnId = calloc(1, sizeof(PLMN_Identity_t)); - ASN_STRUCT_RESET(asn_DEF_PLMN_Identity, plmnId); - plmnId->size = 3; - plmnId->buf = calloc(1, 3); - memcpy(plmnId->buf, data, 3); - - return plmnId; -} - -static GNB_ID_t *createGnb_id(const unsigned char *data, int numOfBits) { - - if (numOfBits < 22 || numOfBits > 32) { - printf("[Error] GNB_ID_t number of bits = %d, needs to be 22 .. 32", numOfBits); - return NULL; - } - - GNB_ID_t *gnb = calloc(1, sizeof(GNB_ID_t)); - ASN_STRUCT_RESET(asn_DEF_GNB_ID, gnb); - - gnb->present = GNB_ID_PR_gNB_ID; - gnb->choice.gNB_ID.size = numOfBits % 8 == 0 ? (unsigned int)(numOfBits / 8) : (unsigned int)(numOfBits / 8 + 1); - gnb->choice.gNB_ID.bits_unused = gnb->choice.gNB_ID.size * 8 - numOfBits; - gnb->choice.gNB_ID.buf = calloc(1, gnb->choice.gNB_ID.size); - memcpy(gnb->choice.gNB_ID.buf, data, gnb->choice.gNB_ID.size); - gnb->choice.gNB_ID.buf[gnb->choice.gNB_ID.size - 1] = - ((unsigned)(gnb->choice.gNB_ID.buf[gnb->choice.gNB_ID.size - 1] >> (unsigned)gnb->choice.gNB_ID.bits_unused) - << (unsigned)gnb->choice.gNB_ID.bits_unused); - - return gnb; -} - -static GlobalGNB_ID_t *createGlobalGNB_ID(PLMN_Identity_t *plmnIdentity, GNB_ID_t *gnb) { - - GlobalGNB_ID_t *ggnbId = calloc(1, sizeof(GlobalGNB_ID_t)); - ASN_STRUCT_RESET(asn_DEF_GlobalGNB_ID, ggnbId); - - memcpy(&ggnbId->pLMN_Identity, plmnIdentity, sizeof(PLMN_Identity_t)); - memcpy(&ggnbId->gNB_ID, gnb, sizeof(GNB_ID_t)); - - return ggnbId; -} - -static Interface_ID_t *createInterfaceIDForGnb(GlobalGNB_ID_t *gnb) { - - Interface_ID_t *interfaceId = calloc(1, sizeof(Interface_ID_t)); - ASN_STRUCT_RESET(asn_DEF_Interface_ID, interfaceId); - - interfaceId->present = Interface_ID_PR_global_gNB_ID; - interfaceId->choice.global_gNB_ID = gnb; - - return interfaceId; -} - -static InterfaceMessageType_t *createInterfaceMessageInitiating(long procedureCode) { - - InterfaceMessageType_t *intMsgT = calloc(1, sizeof(InterfaceMessageType_t)); - ASN_STRUCT_RESET(asn_DEF_InterfaceMessageType, intMsgT); - - intMsgT->procedureCode = procedureCode; - intMsgT->typeOfMessage = TypeOfMessage_initiating_message; - - return intMsgT; -} - -E2SM_gNB_X2_eventTriggerDefinition_t* create_eventTriggerDefinition(void) -{ - //PLMN_Identity - unsigned char plmnidData[3] = {0x33, 0xF4, 0x55}; - PLMN_Identity_t *plmnid = createPLMN_ID(plmnidData); - // xer_fprint(stdout, &asn_DEF_PLMN_Identity, (void *)plmnid); - - //GNB_ID - unsigned char gnbData[3] = {0x99, 0xaa, 0xbb}; - GNB_ID_t *gnb = createGnb_id(gnbData, 26); - // xer_fprint(stdout, &asn_DEF_GNB_ID, (void *)gnb); - - //GlobalGNB_ID - GlobalGNB_ID_t *globaGnb = createGlobalGNB_ID(plmnid, gnb); - // xer_fprint(stdout, &asn_DEF_GlobalGNB_ID, (void *)globaGnb); - - //Interface_ID - Interface_ID_t *gnbInterfaceId = createInterfaceIDForGnb(globaGnb); - // xer_fprint(stdout, &asn_DEF_Interface_ID, (void *)gnbInterfaceId); - - //InterfaceMessageType - InterfaceMessageType_t *initiatingInterface = createInterfaceMessageInitiating(35); - - //EventTriggerDefinition - E2SM_gNB_X2_eventTriggerDefinition_t *eventTrigger = calloc(1, sizeof(E2SM_gNB_X2_eventTriggerDefinition_t)); - ASN_STRUCT_RESET(asn_DEF_E2SM_gNB_X2_eventTriggerDefinition, eventTrigger); - - memcpy(&eventTrigger->interface_ID , gnbInterfaceId, sizeof(Interface_ID_t)); - - eventTrigger->interfaceDirection = 0; - memcpy(&eventTrigger->interfaceMessageType, initiatingInterface, sizeof(InterfaceMessageType_t)); - - return eventTrigger; -} - -#define E2AP_ASN1C_FIND_PROTOCOLIE_BY_ID(IE_TYPE, ie, container, IE_ID) \ - do {\ - IE_TYPE **ptr; \ - ie = NULL; \ - for (ptr = container->protocolIEs.list.array; \ - ptr < &container->protocolIEs.list.array[container->protocolIEs.list.count]; \ - ptr++) { \ - if((*ptr)->id == IE_ID) { \ - ie = *ptr; \ - break; \ - } \ - } \ - } while(0) - - -void test_eventTriggerDefinition(void) -{ - E2SM_gNB_X2_eventTriggerDefinition_t *eventTrigger = create_eventTriggerDefinition(); - - xer_fprint(stdout, &asn_DEF_E2SM_gNB_X2_eventTriggerDefinition, (void *)eventTrigger); - printf("\n"); - - uint8_t *eventBuff; - int eventBuff_len; - - eventBuff_len = aper_encode_to_new_buffer(&asn_DEF_E2SM_gNB_X2_eventTriggerDefinition, - 0, eventTrigger, (void **)&eventBuff); - - LOG_I("Encoded eventBuff_len = %d", eventBuff_len); - - //----------------------------------------------------------------------- - E2AP_PDU_t* pdu = e2ap_xml_to_pdu("E2AP_RICsubscriptionRequest.xml"); - e2ap_asn1c_print_pdu(pdu); - - InitiatingMessage_t *initiatingMessage = pdu->choice.initiatingMessage; - xer_fprint(stdout, &asn_DEF_InitiatingMessage, (void *)initiatingMessage); - - RICsubscriptionRequest_t *request = &initiatingMessage->value.choice.RICsubscriptionRequest; - xer_fprint(stdout, &asn_DEF_RICsubscriptionRequest, (void *)request); - - LOG_I("num of IEs = %d", request->protocolIEs.list.count); - - - RICsubscriptionRequest_IEs_t *ie; - - ie = request->protocolIEs.list.array[2]; - - // E2AP_ASN1C_FIND_PROTOCOLIE_BY_ID(RICsubscriptionRequest_IEs_t, ie, request, ProtocolIE_ID_id_RICsubscription); - // E2AP_ASN1C_FIND_PROTOCOLIE_BY_ID(RICsubscriptionRequest_IEs_t, ie, request, ProtocolIE_ID_id_RICrequestID); - - assert( ie != NULL); - - xer_fprint(stdout, &asn_DEF_RICsubscription, (void *)ie); - // xer_fprint(stdout, &asn_DEF_RICrequestID, (void *)ie); - - -} - -// -// typedef struct ProtocolIE_Container_119P0 { -// A_SEQUENCE_OF(struct RICsubscriptionRequest_IEs) list; -// -// /* Context for parsing across buffer boundaries */ -// asn_struct_ctx_t _asn_ctx; -// } ProtocolIE_Container_119P0_t; diff --git a/e2sim/previous/e2apv1sim/src/E2AP/E2SM/e2sm.h b/e2sim/previous/e2apv1sim/src/E2AP/E2SM/e2sm.h deleted file mode 100644 index 19f30a2..0000000 --- a/e2sim/previous/e2apv1sim/src/E2AP/E2SM/e2sm.h +++ /dev/null @@ -1,30 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ -#ifndef E2SM_H -#define E2SM_H - -#include "E2SM-gNB-X2-eventTriggerDefinition.h" -#include "E2AP-PDU.h" -#include "e2ap_asn1c_codec.h" - -E2SM_gNB_X2_eventTriggerDefinition_t* create_eventTriggerDefinition(void); - -void test_eventTriggerDefinition(void); - -#endif diff --git a/e2sim/previous/e2apv1sim/src/E2AP/XML/E2AP_ENDCX2SetupFailure.xml b/e2sim/previous/e2apv1sim/src/E2AP/XML/E2AP_ENDCX2SetupFailure.xml deleted file mode 100644 index 633baee..0000000 --- a/e2sim/previous/e2apv1sim/src/E2AP/XML/E2AP_ENDCX2SetupFailure.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - 36 - - - - - - 5 - - - - - - - - - - - - diff --git a/e2sim/previous/e2apv1sim/src/E2AP/XML/E2AP_ENDCX2SetupRequest.xml b/e2sim/previous/e2apv1sim/src/E2AP/XML/E2AP_ENDCX2SetupRequest.xml deleted file mode 100644 index ddb071a..0000000 --- a/e2sim/previous/e2apv1sim/src/E2AP/XML/E2AP_ENDCX2SetupRequest.xml +++ /dev/null @@ -1,67 +0,0 @@ - - - 36 - - - - - - 244 - - - - - - 21 - - - - 61 62 63 - - - 00110101000000000001 - - - - - - - 250 - - - - - - 0 - - 61 62 63 - - 0110010001100101011001100000 - - - 61 62 - - 61 62 63 - - - - 21400 - 3400 - - - - - - - - - - - - - - - - - - diff --git a/e2sim/previous/e2apv1sim/src/E2AP/XML/E2AP_ENDCX2SetupResponse.xml b/e2sim/previous/e2apv1sim/src/E2AP/XML/E2AP_ENDCX2SetupResponse.xml deleted file mode 100644 index 896eed6..0000000 --- a/e2sim/previous/e2apv1sim/src/E2AP/XML/E2AP_ENDCX2SetupResponse.xml +++ /dev/null @@ -1,97 +0,0 @@ - - - 36 - - - - - - 246 - - - - - - 252 - - - - 02 F8 29 - - - 000000000001001000110100 - - - - - - - 253 - - - - - - 99 - - 02 F8 29 - - 000000000000011110101011000000010010 - - - - 02 F8 29 - - - - - 100 - - - 9 - - - 9 - - - - - - - 100 - - - 9 - - - 9 - - - - - - - - - - - - - - - - 04 05 - - - - - - - - - - - - - - diff --git a/e2sim/previous/e2apv1sim/src/E2AP/XML/E2AP_ErrorIndication.xml b/e2sim/previous/e2apv1sim/src/E2AP/XML/E2AP_ErrorIndication.xml deleted file mode 100644 index 8974693..0000000 --- a/e2sim/previous/e2apv1sim/src/E2AP/XML/E2AP_ErrorIndication.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - 3 - - - - - - 5 - - - - - - - - - - - - diff --git a/e2sim/previous/e2apv1sim/src/E2AP/XML/E2AP_PartSetupRequest.xml b/e2sim/previous/e2apv1sim/src/E2AP/XML/E2AP_PartSetupRequest.xml deleted file mode 100644 index 43db78a..0000000 --- a/e2sim/previous/e2apv1sim/src/E2AP/XML/E2AP_PartSetupRequest.xml +++ /dev/null @@ -1 +0,0 @@ -400 01 02 030000001010110000001100001010 diff --git a/e2sim/previous/e2apv1sim/src/E2AP/XML/E2AP_PartSetupRequest.xml~ b/e2sim/previous/e2apv1sim/src/E2AP/XML/E2AP_PartSetupRequest.xml~ deleted file mode 100644 index b2343b9..0000000 --- a/e2sim/previous/e2apv1sim/src/E2AP/XML/E2AP_PartSetupRequest.xml~ +++ /dev/null @@ -1 +0,0 @@ -1400 01 02 030000001010110000001100001010 diff --git a/e2sim/previous/e2apv1sim/src/E2AP/XML/E2AP_RICindication_type1.xml b/e2sim/previous/e2apv1sim/src/E2AP/XML/E2AP_RICindication_type1.xml deleted file mode 100644 index e4e3f38..0000000 --- a/e2sim/previous/e2apv1sim/src/E2AP/XML/E2AP_RICindication_type1.xml +++ /dev/null @@ -1,74 +0,0 @@ - - - 205 - - - - - - 60030 - - - - 6 - 12 - - - - - 60003 - - - 10 - - - - 60017 - - - 100 - - - - 60028 - - - 100 - - - - 60029 - - - - - - - 60026 - - - 10 74 68 65 10 68 65 6C 40 - - - - 60027 - - - - 00 1B 40 80 80 00 00 08 00 6F 00 02 00 0C 00 F8 - 00 05 08 4D 86 D6 40 00 CB 00 20 31 32 33 34 35 - 36 37 38 39 31 32 33 34 35 36 37 38 39 31 32 33 - 34 35 36 37 38 39 31 32 33 34 35 00 CC 00 06 08 - 07 D0 20 03 E8 00 CE 00 0C 0B 49 6E 66 6F 72 6D - 61 74 69 6F 6E 01 17 00 08 00 33 32 31 34 35 36 - 30 01 13 00 01 22 00 CD 00 1B 00 00 D1 00 16 1A - 11 50 00 08 21 09 E0 41 41 42 42 43 43 44 44 45 - 45 5A 5A 59 58 - - - - - - - - diff --git a/e2sim/previous/e2apv1sim/src/E2AP/XML/E2AP_RICindication_type2.xml b/e2sim/previous/e2apv1sim/src/E2AP/XML/E2AP_RICindication_type2.xml deleted file mode 100644 index 92bc727..0000000 --- a/e2sim/previous/e2apv1sim/src/E2AP/XML/E2AP_RICindication_type2.xml +++ /dev/null @@ -1,74 +0,0 @@ - - - 205 - - - - - - 60030 - - - - 6 - 12 - - - - - 60003 - - - 10 - - - - 60017 - - - 100 - - - - 60028 - - - 100 - - - - 60029 - - - - - - - 60026 - - - 10 74 68 65 10 68 65 6C 40 - - - - 60027 - - - - 00 1B 40 80 80 00 00 08 00 6F 00 02 00 0C 00 F8 - 00 05 08 4D 86 D6 40 00 CB 00 20 31 32 33 34 35 - 36 37 38 39 31 32 33 34 35 36 37 38 39 31 32 33 - 34 35 36 37 38 39 31 32 33 34 35 00 CC 00 06 08 - 07 D0 20 03 E8 00 CE 00 0C 0B 49 6E 66 6F 72 6D - 61 74 69 6F 6E 01 17 00 08 00 33 32 31 34 35 36 - 30 01 13 00 01 23 00 CD 00 1B 00 00 D1 00 16 1A - 11 50 00 08 21 09 E0 41 41 42 42 43 43 44 44 45 - 45 5A 5A 59 58 - - - - - - - - diff --git a/e2sim/previous/e2apv1sim/src/E2AP/XML/E2AP_RICsubscriptionRequest.xml b/e2sim/previous/e2apv1sim/src/E2AP/XML/E2AP_RICsubscriptionRequest.xml deleted file mode 100644 index ab3ea11..0000000 --- a/e2sim/previous/e2apv1sim/src/E2AP/XML/E2AP_RICsubscriptionRequest.xml +++ /dev/null @@ -1,50 +0,0 @@ - - - 201 - - - - - - 60030 - - - - 1 - 200 - - - - - 60003 - - - 33 - - - - 60033 - - - - 00 01 02 03 40 0b 16 02 00 23 40 - - - 60011 - - - - 255 - - - - - - - - - - - - - diff --git a/e2sim/previous/e2apv1sim/src/E2AP/XML/E2AP_RICsubscriptionRequest_Ashwin.xml b/e2sim/previous/e2apv1sim/src/E2AP/XML/E2AP_RICsubscriptionRequest_Ashwin.xml deleted file mode 100644 index 524f7af..0000000 --- a/e2sim/previous/e2apv1sim/src/E2AP/XML/E2AP_RICsubscriptionRequest_Ashwin.xml +++ /dev/null @@ -1,50 +0,0 @@ - - - 201 - - - - - - 60030 - - - - 2 - 1 - - - - - 60003 - - - 0 - - - - 60033 - - - - 10 54 65 73 10 54 65 73 40 1B 40 - - - 60011 - - - - 4 - - - - - - - - - - - - - diff --git a/e2sim/previous/e2apv1sim/src/E2AP/XML/E2AP_RICsubscriptionResponse.xml b/e2sim/previous/e2apv1sim/src/E2AP/XML/E2AP_RICsubscriptionResponse.xml deleted file mode 100644 index b7ea847..0000000 --- a/e2sim/previous/e2apv1sim/src/E2AP/XML/E2AP_RICsubscriptionResponse.xml +++ /dev/null @@ -1,46 +0,0 @@ - - - 201 - - - - - - 60030 - - - - 2 - 205 - - - - - 60003 - - - 0 - - - - 60012 - - - - - 60013 - - - - 1 - - - - - - - - - - - diff --git a/e2sim/previous/e2apv1sim/src/E2AP/XML/E2AP_ResourceStatusFailure.xml b/e2sim/previous/e2apv1sim/src/E2AP/XML/E2AP_ResourceStatusFailure.xml deleted file mode 100644 index 9898d55..0000000 --- a/e2sim/previous/e2apv1sim/src/E2AP/XML/E2AP_ResourceStatusFailure.xml +++ /dev/null @@ -1,35 +0,0 @@ - - - 9 - - - - - - 39 - - - 1 - - - - 40 - - - 74 - - - - 5 - - - - - - - - - - - - diff --git a/e2sim/previous/e2apv1sim/src/E2AP/XML/E2AP_ResourceStatusRequest.xml b/e2sim/previous/e2apv1sim/src/E2AP/XML/E2AP_ResourceStatusRequest.xml deleted file mode 100644 index a807971..0000000 --- a/e2sim/previous/e2apv1sim/src/E2AP/XML/E2AP_ResourceStatusRequest.xml +++ /dev/null @@ -1,85 +0,0 @@ - - - 9 - - - - - - 39 - - - 1 - - - - 28 - - - - - - - 38 - - - - 11111110000000000000000000000000 - - - - - 29 - - - - - 31 - - - - - 13 30 23 - - 0000001010110000001100001010 - - - - - - - - - - 30 - - - - - - - 64 - - - - - - - 109 - - - - - - - 145 - - - - - - - - - - diff --git a/e2sim/previous/e2apv1sim/src/E2AP/XML/E2AP_ResourceStatusRequest_bad.xml b/e2sim/previous/e2apv1sim/src/E2AP/XML/E2AP_ResourceStatusRequest_bad.xml deleted file mode 100644 index 6968e71..0000000 --- a/e2sim/previous/e2apv1sim/src/E2AP/XML/E2AP_ResourceStatusRequest_bad.xml +++ /dev/null @@ -1,85 +0,0 @@ - - - 9 - - - - - - 39 - - - 1 - - - - 28 - - - - - - - 38 - - - - 00000000000000000000000000000000 - - - - - 29 - - - - - 31 - - - - - 02 07 9f - - 0010101100000000001100001010 - - - - - - - - - - 30 - - - - - - - 64 - - - - - - - 109 - - - - - - - 145 - - - - - - - - - - diff --git a/e2sim/previous/e2apv1sim/src/E2AP/XML/E2AP_ResourceStatusResponse.xml b/e2sim/previous/e2apv1sim/src/E2AP/XML/E2AP_ResourceStatusResponse.xml deleted file mode 100644 index 12542a8..0000000 --- a/e2sim/previous/e2apv1sim/src/E2AP/XML/E2AP_ResourceStatusResponse.xml +++ /dev/null @@ -1,134 +0,0 @@ - - - 9 - - - - - - 39 - - - 1 - - - - 40 - - - 75 - - - - 65 - - - - - 66 - - - - - 13 30 23 - - 0000001010110000001100001010 - - - - - 67 - - - - - 00000010000000000000000000000000 - - - - - - - - - 67 - - - - - 00000100000000000000000000000000 - - - - - - - - - 67 - - - - - 00001000000000000000000000000000 - - - - - - - - - 67 - - - - - 00100000000000000000000000000000 - - - - - - - - - 67 - - - - - 01000000000000000000000000000000 - - - - - - - - - 67 - - - - - 10000000000000000000000000000000 - - - - - - - - - - - - - - - - - - - diff --git a/e2sim/previous/e2apv1sim/src/E2AP/XML/E2AP_ResourceStatusUpdate.xml b/e2sim/previous/e2apv1sim/src/E2AP/XML/E2AP_ResourceStatusUpdate.xml deleted file mode 100644 index b5630bc..0000000 --- a/e2sim/previous/e2apv1sim/src/E2AP/XML/E2AP_ResourceStatusUpdate.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - 10 - - - - - - 39 - - - 1 - - - - 40 - - - 75 - - - - 32 - - - - - 33 - - - - - 13 30 23 - - 0000001010110000001100001010 - - - - - 42 - - - - - 100 - 99 - - - 100 - 99 - - - - - - - - - - - - - - - - diff --git a/e2sim/previous/e2apv1sim/src/E2AP/XML/E2AP_SetupRequest.xml b/e2sim/previous/e2apv1sim/src/E2AP/XML/E2AP_SetupRequest.xml deleted file mode 100644 index b2343b9..0000000 --- a/e2sim/previous/e2apv1sim/src/E2AP/XML/E2AP_SetupRequest.xml +++ /dev/null @@ -1 +0,0 @@ -1400 01 02 030000001010110000001100001010 diff --git a/e2sim/previous/e2apv1sim/src/E2AP/XML/E2AP_SetupRequest.xml~ b/e2sim/previous/e2apv1sim/src/E2AP/XML/E2AP_SetupRequest.xml~ deleted file mode 100644 index b2343b9..0000000 --- a/e2sim/previous/e2apv1sim/src/E2AP/XML/E2AP_SetupRequest.xml~ +++ /dev/null @@ -1 +0,0 @@ -1400 01 02 030000001010110000001100001010 diff --git a/e2sim/previous/e2apv1sim/src/E2AP/XML/E2AP_SetupRequest2.xml b/e2sim/previous/e2apv1sim/src/E2AP/XML/E2AP_SetupRequest2.xml deleted file mode 100644 index 6d8c654..0000000 --- a/e2sim/previous/e2apv1sim/src/E2AP/XML/E2AP_SetupRequest2.xml +++ /dev/null @@ -1,30 +0,0 @@ - - - 1 - - - - - - 4 - - - - - - 70 6C 6D 6E 33 - - - 01100111011011100110001000110001 - - - - - - - - - - - - diff --git a/e2sim/previous/e2apv1sim/src/E2AP/XML/E2AP_X2SetupFailure.xml b/e2sim/previous/e2apv1sim/src/E2AP/XML/E2AP_X2SetupFailure.xml deleted file mode 100644 index 53acf31..0000000 --- a/e2sim/previous/e2apv1sim/src/E2AP/XML/E2AP_X2SetupFailure.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - 6 - - - - - - 5 - - - - - - - - - - - - diff --git a/e2sim/previous/e2apv1sim/src/E2AP/XML/E2AP_X2SetupRequest.xml b/e2sim/previous/e2apv1sim/src/E2AP/XML/E2AP_X2SetupRequest.xml deleted file mode 100644 index 9f0f286..0000000 --- a/e2sim/previous/e2apv1sim/src/E2AP/XML/E2AP_X2SetupRequest.xml +++ /dev/null @@ -1,57 +0,0 @@ - - - 6 - - - - - - 21 - - - - 13 30 23 - - - 11111111111111111111 - - - - - - - 20 - - - - - - 503 - - 13 30 23 - - 1111111111111111111100000000 - - - 00 00 - - 13 30 23 - - - - 0 - 0 - - - - - - - - - - - - - - diff --git a/e2sim/previous/e2apv1sim/src/E2AP/XML/E2AP_X2SetupResponse.xml b/e2sim/previous/e2apv1sim/src/E2AP/XML/E2AP_X2SetupResponse.xml deleted file mode 100644 index af42d5b..0000000 --- a/e2sim/previous/e2apv1sim/src/E2AP/XML/E2AP_X2SetupResponse.xml +++ /dev/null @@ -1,97 +0,0 @@ - - - 6 - - - - - - 21 - - - - 13 30 23 - - - 00000010101100000011 - - - - - - - 20 - - - - - - 308 - - 13 30 23 - - 0000001010110000001100001010 - - - 64 03 - - 13 30 23 - - - - 18650 - 650 - - - - - - - 41 - - - - - - - 55 - - - - 344 - 12 - - 5 - - - - - 160 - - - - - - - - - - - - - 24 - - - - - 13 30 23 - 80 00 - - - - - - - - - diff --git a/e2sim/previous/e2apv1sim/src/E2AP/XML/GlobalE2node-ID.xml b/e2sim/previous/e2apv1sim/src/E2AP/XML/GlobalE2node-ID.xml deleted file mode 100644 index dd21201..0000000 --- a/e2sim/previous/e2apv1sim/src/E2AP/XML/GlobalE2node-ID.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - 70 6C 6D 6E 33 - - - 01100111011011100110001000110001 - - - - - diff --git a/e2sim/previous/e2apv1sim/src/E2AP/XML/reference_constants.txt b/e2sim/previous/e2apv1sim/src/E2AP/XML/reference_constants.txt deleted file mode 100644 index b9a3b54..0000000 --- a/e2sim/previous/e2apv1sim/src/E2AP/XML/reference_constants.txt +++ /dev/null @@ -1,16 +0,0 @@ -/* Dependencies */ -typedef enum Criticality { - Criticality_reject = 0, - Criticality_ignore = 1, - Criticality_notify = 2 -} e_Criticality; - - --- Event Trigger Definition OCTET STRING contents -E2SM-gNB-X2-eventTriggerDefinition ::= SEQUENCE{ - interface-ID Interface-ID, - interfaceDirection InterfaceDirection, - interfaceMessageType InterfaceMessageType, - interfaceProtocolIE-List SEQUENCE (SIZE(1..maxofInterfaceProtocolIE)) OF InterfaceProtocolIE-Item OPTIONAL, - ... -} diff --git a/e2sim/previous/e2apv1sim/src/E2AP/e2ap_asn1c_codec.c b/e2sim/previous/e2apv1sim/src/E2AP/e2ap_asn1c_codec.c deleted file mode 100644 index f76032d..0000000 --- a/e2sim/previous/e2apv1sim/src/E2AP/e2ap_asn1c_codec.c +++ /dev/null @@ -1,229 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ -#include "e2ap_asn1c_codec.h" - - -void e2ap_asn1c_print_pdu(const E2AP_PDU_t* pdu) -{ - printf("before\n"); - // xer_fprint(stdout, &asn_DEF_E2AP_PDU, (void *)pdu); - xer_fprint(stdout, &asn_DEF_E2AP_PDU, pdu); - printf("after\n"); - printf("\n"); -} - -void asn1c_xer_print(asn_TYPE_descriptor_t *typeDescriptor, void *data) -{ - xer_fprint(stdout, typeDescriptor, (void *)data); - printf("\n"); -} - - -E2AP_PDU_t* e2ap_xml_to_pdu(char const* xml_message) -{ - // E2AP_PDU_t *pdu = new E2AP_PDU_t(); - E2AP_PDU_t *pdu = calloc(1, sizeof(E2AP_PDU_t)); - - assert(pdu != 0); - - printf("xmlpdu1\n"); - - uint8_t buf[MAX_XML_BUFFER]; - asn_dec_rval_t rval; - size_t size; - FILE *f; - - char XML_path[300]; - char *work_dir = getenv(WORKDIR_ENV); - - printf("xmlpdu2\n"); - - strcpy(XML_path, work_dir); - strcat(XML_path, E2AP_XML_DIR); - strcat(XML_path, xml_message); - - printf("xmlpdu4\n"); - - LOG_D("Generate E2AP PDU from XML file: %s\n", XML_path); - memset(buf, 0, sizeof(buf)); - - printf("xmlpdu3\n"); - - f = fopen(XML_path, "r"); - if(!f){ - LOG_E("Unable to open %s. Make sure you have set the Environment Variable E2SIM_DIR, see README", XML_path) - } - - printf("xmlpdu5\n"); - - assert(f); - - printf("xmlpdu6\n"); - - size = fread(buf, 1, sizeof(buf), f); - if(size == 0 || size == sizeof(buf)) - { - LOG_E("Input too long: %s", XML_path); - exit(1); - } - - fclose(f); - - printf("xmlpdu7\n"); - - rval = xer_decode(0, &asn_DEF_E2AP_PDU, (void **)&pdu, buf, size); - - printf("xmlpdu8\n"); - - assert(rval.code == RC_OK); - - return pdu; -} - - -E2setupRequest_t* smaller_e2ap_xml_to_pdu(char const* xml_message) -{ - // E2AP_PDU_t *pdu = new E2AP_PDU_t(); - E2AP_PDU_t *pdu = calloc(1, sizeof(E2AP_PDU_t)); - - // GlobalE2node_ID_t *globale2nodeid = (GlobalE2node_ID_t*)calloc(1, sizeof(GlobalE2node_ID_t)); - GlobalE2node_ID_t *globale2nodeid = (GlobalE2node_ID_t*)calloc(1, sizeof(GlobalE2node_ID_t)); - E2setupRequest_t *e2setuprequest = (E2setupRequest_t*)calloc(1,sizeof(E2setupRequest_t)); - - printf("xmlpdu1\n"); - - uint8_t buf[MAX_XML_BUFFER]; - asn_dec_rval_t rval; - size_t size; - FILE *f; - - char XML_path[300]; - char *work_dir = getenv(WORKDIR_ENV); - - printf("xmlpdu2\n"); - - strcpy(XML_path, work_dir); - strcat(XML_path, E2AP_XML_DIR); - strcat(XML_path, xml_message); - - printf("xmlpdu4\n"); - - LOG_D("Generate E2AP PDU from XML file: %s\n", XML_path); - memset(buf, 0, sizeof(buf)); - - printf("xmlpdu3\n"); - - f = fopen(XML_path, "r"); - if(!f){ - LOG_E("Unable to open %s. Make sure you have set the Environment Variable E2SIM_DIR, see README", XML_path) - } - - printf("xmlpdu5\n"); - - assert(f); - - printf("xmlpdu6\n"); - - size = fread(buf, 1, sizeof(buf), f); - if(size == 0 || size == sizeof(buf)) - { - LOG_E("Input too long: %s", XML_path); - exit(1); - } - - fclose(f); - - printf("xmlpdu7\n"); - - rval = xer_decode(0, &asn_DEF_E2setupRequest, (void **)&e2setuprequest, buf, size); - - printf("xmlpdu8\n"); - - assert(rval.code == RC_OK); - - return e2setuprequest; -} - - -int e2ap_asn1c_encode_pdu(E2AP_PDU_t* pdu, unsigned char **buffer) -{ - int len; - - *buffer = NULL; - assert(pdu != NULL); - assert(buffer != NULL); - - len = aper_encode_to_new_buffer(&asn_DEF_E2AP_PDU, 0, pdu, (void **)buffer); - - if (len < 0) { - LOG_E("[E2AP ASN] Unable to aper encode"); - exit(1); - } - else { - LOG_D("[E2AP ASN] Encoded succesfully, encoded size = %d", len); - } - - ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_E2AP_PDU, pdu); - - return len; -} - -void e2ap_asn1c_decode_pdu(E2AP_PDU_t* pdu, unsigned char *buffer, int len) -{ - asn_dec_rval_t dec_ret; - - assert(buffer != NULL); - - dec_ret = aper_decode(NULL, &asn_DEF_E2AP_PDU, (void **)&pdu, buffer, len, 0, 0); - - if (dec_ret.code != RC_OK) { - LOG_E("[E2AP ASN] Failed to decode pdu"); - exit(1); - } - else { - LOG_D("[E2AP ASN] Decoded succesfully"); - } -} - -int e2ap_asn1c_get_procedureCode(E2AP_PDU_t* pdu) -{ - int procedureCode = -1; - - switch(pdu->present) - { - case E2AP_PDU_PR_initiatingMessage: - fprintf(stderr,"initiating message\n"); - procedureCode = pdu->choice.initiatingMessage->procedureCode; - break; - - case E2AP_PDU_PR_successfulOutcome: - procedureCode = pdu->choice.successfulOutcome->procedureCode; - break; - - case E2AP_PDU_PR_unsuccessfulOutcome: - procedureCode = pdu->choice.unsuccessfulOutcome->procedureCode; - break; - - default: - LOG_E("[E2AP] Error: Unknown index %d in E2AP PDU", (int)pdu->present); - break; - } - - return procedureCode; -} diff --git a/e2sim/previous/e2apv1sim/src/E2AP/e2ap_asn1c_codec.h b/e2sim/previous/e2apv1sim/src/E2AP/e2ap_asn1c_codec.h deleted file mode 100644 index 314fd63..0000000 --- a/e2sim/previous/e2apv1sim/src/E2AP/e2ap_asn1c_codec.h +++ /dev/null @@ -1,48 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ -#ifndef E2AP_ASN1C_CODEC_H -#define E2AP_ASN1C_CODEC_H - -#include "e2sim_defs.h" -#include "E2AP-PDU.h" -#include "InitiatingMessage.h" -#include "SuccessfulOutcome.h" -#include "UnsuccessfulOutcome.h" - -#include "GlobalE2node-ID.h" -#include "E2setupRequest.h" - -#define ASN1C_PDU_PRINT_BUFFER 4096 -#define MAX_XML_BUFFER 10000 -#define E2AP_XML_DIR "/src/E2AP/XML/" - -void e2ap_asn1c_print_pdu(const E2AP_PDU_t* pdu); - -void asn1c_xer_print(asn_TYPE_descriptor_t *typeDescriptor, void *data); - -E2AP_PDU_t* e2ap_xml_to_pdu(char const* xml_message); -E2setupRequest_t* smaller_e2ap_xml_to_pdu(char const* xml_message); - -int e2ap_asn1c_encode_pdu(E2AP_PDU_t* pdu, unsigned char **buffer); - -void e2ap_asn1c_decode_pdu(E2AP_PDU_t* pdu, unsigned char *buffer, int len); - -int e2ap_asn1c_get_procedureCode(E2AP_PDU_t* pdu); - -#endif diff --git a/e2sim/previous/e2apv1sim/src/E2AP/e2ap_message_handler.cpp b/e2sim/previous/e2apv1sim/src/E2AP/e2ap_message_handler.cpp deleted file mode 100644 index 44f028d..0000000 --- a/e2sim/previous/e2apv1sim/src/E2AP/e2ap_message_handler.cpp +++ /dev/null @@ -1,290 +0,0 @@ - - -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ -#include "e2ap_message_handler.hpp" - -//#include -//#include -#include "encode_e2apv1.hpp" -#include "kpm_callbacks.hpp" - -#include - -void e2ap_handle_sctp_data(int &socket_fd, sctp_buffer_t &data, bool xmlenc) -{ - fprintf(stderr, "in e2ap_handle_sctp_data()\n"); - //decode the data into E2AP-PDU - E2AP_PDU_t* pdu = (E2AP_PDU_t*)calloc(1, sizeof(E2AP_PDU)); - ASN_STRUCT_RESET(asn_DEF_E2AP_PDU, pdu); - - fprintf(stderr, "decoding...\n"); - - asn_transfer_syntax syntax; - - - syntax = ATS_ALIGNED_BASIC_PER; - - - fprintf(stderr, "full buffer\n%s\n", data.buffer); - // e2ap_asn1c_decode_pdu(pdu, data.buffer, data.len); - - auto rval = asn_decode(nullptr, syntax, &asn_DEF_E2AP_PDU, (void **) &pdu, - data.buffer, data.len); - - - int index = (int)pdu->present; - fprintf(stderr, "length of data %d\n", rval.consumed); - fprintf(stderr, "result %d\n", rval.code); - fprintf(stderr, "index is %d\n", index); - - fprintf(stderr, "showing xer of data\n"); - - xer_fprint(stderr, &asn_DEF_E2AP_PDU, pdu); - - int procedureCode = e2ap_asn1c_get_procedureCode(pdu); - index = (int)pdu->present; - - LOG_D("[E2AP] Unpacked E2AP-PDU: index = %d, procedureCode = %d\n", - index, procedureCode); - - switch(procedureCode) - { - - case ProcedureCode_id_E2setup: - switch(index) - { - case E2AP_PDU_PR_initiatingMessage: - e2ap_handle_E2SetupRequest(pdu, socket_fd); - LOG_I("[E2AP] Received SETUP-REQUEST"); - break; - - case E2AP_PDU_PR_successfulOutcome: - LOG_I("[E2AP] Received SETUP-RESPONSE-SUCCESS"); - break; - - case E2AP_PDU_PR_unsuccessfulOutcome: - LOG_I("[E2AP] Received SETUP-RESPONSE-FAILURE"); - break; - - default: - LOG_E("[E2AP] Invalid message index=%d in E2AP-PDU", index); - break; - } - break; - - case ProcedureCode_id_Reset: //reset = 7 - switch(index) - { - case E2AP_PDU_PR_initiatingMessage: - LOG_I("[E2AP] Received RESET-REQUEST"); - break; - - case E2AP_PDU_PR_successfulOutcome: - break; - - case E2AP_PDU_PR_unsuccessfulOutcome: - break; - - default: - LOG_E("[E2AP] Invalid message index=%d in E2AP-PDU", index); - break; - } - break; - - case ProcedureCode_id_RICsubscription: //RIC SUBSCRIPTION = 201 - switch(index) - { - case E2AP_PDU_PR_initiatingMessage: //initiatingMessage - LOG_I("[E2AP] Received RIC-SUBSCRIPTION-REQUEST"); - // e2ap_handle_RICSubscriptionRequest(pdu, socket_fd); - callback_kpm_subscription_request(pdu, socket_fd); - // e2ap_handle_RICSubscriptionRequest_securityDemo(pdu, socket_fd); - break; - - case E2AP_PDU_PR_successfulOutcome: - LOG_I("[E2AP] Received RIC-SUBSCRIPTION-RESPONSE"); - break; - - case E2AP_PDU_PR_unsuccessfulOutcome: - LOG_I("[E2AP] Received RIC-SUBSCRIPTION-FAILURE"); - break; - - default: - LOG_E("[E2AP] Invalid message index=%d in E2AP-PDU", index); - break; - } - break; - - case ProcedureCode_id_RICindication: // 205 - switch(index) - { - case E2AP_PDU_PR_initiatingMessage: //initiatingMessage - LOG_I("[E2AP] Received RIC-INDICATION-REQUEST"); - // e2ap_handle_RICSubscriptionRequest(pdu, socket_fd); - break; - case E2AP_PDU_PR_successfulOutcome: - LOG_I("[E2AP] Received RIC-INDICATION-RESPONSE"); - break; - - case E2AP_PDU_PR_unsuccessfulOutcome: - LOG_I("[E2AP] Received RIC-INDICATION-FAILURE"); - break; - - default: - LOG_E("[E2AP] Invalid message index=%d in E2AP-PDU %d", index, - (int)ProcedureCode_id_RICindication); - break; - } - break; - - default: - - LOG_E("[E2AP] No available handler for procedureCode=%d", procedureCode); - - break; - } -} - -void e2ap_handle_E2SetupRequest(E2AP_PDU_t* pdu, int &socket_fd) { - - - E2AP_PDU_t* res_pdu = (E2AP_PDU_t*)calloc(1, sizeof(E2AP_PDU)); - generate_e2apv1_setup_response(res_pdu); - - - LOG_D("[E2AP] Created E2-SETUP-RESPONSE"); - - e2ap_asn1c_print_pdu(res_pdu); - - - auto buffer_size = MAX_SCTP_BUFFER; - unsigned char buffer[MAX_SCTP_BUFFER]; - - sctp_buffer_t data; - auto er = asn_encode_to_buffer(nullptr, ATS_BASIC_XER, &asn_DEF_E2AP_PDU, res_pdu, buffer, buffer_size); - - data.len = er.encoded; - fprintf(stderr, "er encoded is %d\n", er.encoded); - - //data.len = e2ap_asn1c_encode_pdu(res_pdu, &buf); - memcpy(data.buffer, buffer, er.encoded); - - //send response data over sctp - if(sctp_send_data(socket_fd, data) > 0) { - LOG_I("[SCTP] Sent E2-SETUP-RESPONSE"); - } else { - LOG_E("[SCTP] Unable to send E2-SETUP-RESPONSE to peer"); - } - - sleep(5); - - //Sending Subscription Request - - E2AP_PDU_t* pdu_sub = (E2AP_PDU_t*)calloc(1,sizeof(E2AP_PDU)); - - generate_e2apv1_subscription_request(pdu_sub); - - xer_fprint(stderr, &asn_DEF_E2AP_PDU, pdu_sub); - - auto buffer_size2 = MAX_SCTP_BUFFER; - unsigned char buffer2[MAX_SCTP_BUFFER]; - - sctp_buffer_t data2; - - auto er2 = asn_encode_to_buffer(nullptr, ATS_ALIGNED_BASIC_PER, &asn_DEF_E2AP_PDU, pdu_sub, buffer2, buffer_size2); - - data2.len = er2.encoded; - memcpy(data2.buffer, buffer2, er2.encoded); - - fprintf(stderr, "er encded is %d\n", er2.encoded); - - if(sctp_send_data(socket_fd, data2) > 0) { - LOG_I("[SCTP] Sent E2-SUBSCRIPTION-REQUEST"); - } else { - LOG_E("[SCTP] Unable to send E2-SUBSCRIPTION-REQUEST to peer"); - } - - -} - - -void e2ap_handle_RICSubscriptionRequest(E2AP_PDU_t* pdu, int &socket_fd) -{ - - //Send back Subscription Success Response - - E2AP_PDU_t* pdu_resp = (E2AP_PDU_t*)calloc(1,sizeof(E2AP_PDU)); - - generate_e2apv1_subscription_response(pdu_resp, pdu); - - fprintf(stderr, "Subscription Response\n"); - - xer_fprint(stderr, &asn_DEF_E2AP_PDU, pdu_resp); - - auto buffer_size2 = MAX_SCTP_BUFFER; - unsigned char buffer2[MAX_SCTP_BUFFER]; - - sctp_buffer_t data2; - - auto er2 = asn_encode_to_buffer(nullptr, ATS_ALIGNED_BASIC_PER, &asn_DEF_E2AP_PDU, pdu_resp, buffer2, buffer_size2); - data2.len = er2.encoded; - - fprintf(stderr, "er encded is %d\n", er2.encoded); - - memcpy(data2.buffer, buffer2, er2.encoded); - - if(sctp_send_data(socket_fd, data2) > 0) { - LOG_I("[SCTP] Sent RIC-SUBSCRIPTION-RESPONSE"); - } else { - LOG_E("[SCTP] Unable to send RIC-SUBSCRIPTION-RESPONSE to peer"); - } - - - //Send back an Indication - - E2AP_PDU_t* pdu_ind = (E2AP_PDU_t*)calloc(1,sizeof(E2AP_PDU)); - - generate_e2apv1_indication_request(pdu_ind); - - xer_fprint(stderr, &asn_DEF_E2AP_PDU, pdu_ind); - - auto buffer_size = MAX_SCTP_BUFFER; - unsigned char buffer[MAX_SCTP_BUFFER]; - - sctp_buffer_t data; - - auto er = asn_encode_to_buffer(nullptr, ATS_ALIGNED_BASIC_PER, &asn_DEF_E2AP_PDU, pdu_ind, buffer, buffer_size); - data.len = er.encoded; - - fprintf(stderr, "er encded is %d\n", er.encoded); - - memcpy(data.buffer, buffer, er.encoded); - - if(sctp_send_data(socket_fd, data) > 0) { - LOG_I("[SCTP] Sent RIC-INDICATION-REQUEST"); - } else { - LOG_E("[SCTP] Unable to send RIC-INDICATION-REQUEST to peer"); - } - -} - - - - diff --git a/e2sim/previous/e2apv1sim/src/E2AP/e2ap_message_handler.hpp b/e2sim/previous/e2apv1sim/src/E2AP/e2ap_message_handler.hpp deleted file mode 100644 index 9c23165..0000000 --- a/e2sim/previous/e2apv1sim/src/E2AP/e2ap_message_handler.hpp +++ /dev/null @@ -1,47 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ -#ifndef E2AP_MESSAGE_HANDLER_HPP -#define E2AP_MESSAGE_HANDLER_HPP - - -#include "e2sim_sctp.hpp" - - -extern "C" { - #include "e2sim_defs.h" - #include "e2ap_asn1c_codec.h" -} - -void e2ap_handle_sctp_data(int &socket_fd, sctp_buffer_t &data, bool xmlenc); - -void e2ap_handle_X2SetupRequest(E2AP_PDU_t* pdu, int &socket_fd); - -void e2ap_handle_X2SetupResponse(E2AP_PDU_t* pdu, int &socket_fd); - -void e2ap_handle_ENDCX2SetupRequest(E2AP_PDU_t* pdu, int &socket_fd); - -void e2ap_handle_E2SetupRequest(E2AP_PDU_t* pdu, int &socket_fd); - -void e2ap_handle_RICSubscriptionRequest(E2AP_PDU_t* pdu, int &socket_fd); - -void e2ap_handle_RICSubscriptionRequest_securityDemo(E2AP_PDU_t* pdu, int &socket_fd); - -void e2ap_handle_ResourceStatusRequest(E2AP_PDU_t* pdu, int &socket_fd); - -#endif diff --git a/e2sim/previous/e2apv1sim/src/SCTP/e2sim_sctp.c b/e2sim/previous/e2apv1sim/src/SCTP/e2sim_sctp.c deleted file mode 100644 index b4880f9..0000000 --- a/e2sim/previous/e2apv1sim/src/SCTP/e2sim_sctp.c +++ /dev/null @@ -1,173 +0,0 @@ -/* - * - * Copyright 2019 AT&T Intellectual Property - * Copyright 2019 Nokia - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -#include -#include -#include //for close() -#include -#include -#include -#include -#include //for inet_ntop() -#include - -#include "e2sim_sctp.h" - -const int CLIENT_SEND_COUNT = 1; -const int SERVER_LISTEN_QUEUE_SIZE = 10; - -int sctp_start_server(const char *server_ip_str, const int server_port) -{ - if(server_port < 1 || server_port > 65535) { - fprintf(stderr, "Invalid port number (%d). Valid values are between 1 and 65535.\n", server_port); - return -1; - } - - int server_fd; - if((server_fd = socket(AF_INET, SOCK_STREAM, IPPROTO_SCTP)) == -1) { - perror("socket"); - return -1; - } - - struct sockaddr_in server_addr; - memset(&server_addr, 0, sizeof(struct sockaddr_in)); - server_addr.sin_family = AF_INET; - server_addr.sin_port = htons(server_port); - server_addr.sin_addr.s_addr = inet_addr(server_ip_str); - - if(bind(server_fd, (struct sockaddr*)&server_addr, sizeof(server_addr)) == -1) { - perror("bind"); - return -1; - } - - if(listen(server_fd, SERVER_LISTEN_QUEUE_SIZE) != 0) { - perror("listen"); - return -1; - } - - assert(server_fd != 0); - - fprintf(stderr, "SCTP server started on %s:%d\n", server_ip_str, server_port); - - return server_fd; -} - -int sctp_start_client(const char *server_ip_str, const int server_port) -{ - int client_fd; - - if((client_fd = socket(AF_INET, SOCK_STREAM, IPPROTO_SCTP)) == -1) - { - perror("socket"); - return -1; - } - - struct sockaddr_in peer_addr; - memset(&peer_addr, 0, sizeof(struct sockaddr_in)); - peer_addr.sin_family = AF_INET; - peer_addr.sin_port = htons(server_port); - peer_addr.sin_addr.s_addr = inet_addr(server_ip_str); - // if(inet_pton(AF_INET, server_ip, &(peer_addr.sin_addr)) != 1) { - // printf("Error converting IP address (%s) to sockaddr_in structure\n", server_ip); - // return 0; - // } - - fprintf(stderr, "Connecting to server at %s:%d ...", server_ip_str, server_port); - if(connect(client_fd, (struct sockaddr*)&peer_addr, sizeof(peer_addr)) == -1) { - perror("connect"); - return -1; - } - - assert(client_fd != 0); - - fprintf(stderr, "OK\n"); - - return client_fd; - -} - -//ssize_t sctp_send_to_socket(int sockfd, const void* buf, size_t len) -int sctp_send_to_socket(int sockfd, const void* buf, size_t len) -{ - int sent_len = 0; - - sent_len = send(sockfd, buf, len, 0); - - if(sent_len == -1) - { - perror("sctp_send_to_socket"); - return -1; - } - - return sent_len; -} - -// int sctp_recv_from_socket(int sockfd, void *buf, size_t buf_size) -// { -// //int len = 0; -// -// memset(buf, 0, buf_size); -// -// int len = recv(sockfd, &buf, buf_size, 0); -// if(len == -1) -// { -// perror("sctp_recv_from_socket"); -// return -1; -// } -// -// return len; -// } - - -//test only -void client_send_multiple_test_msg(int client_fd) -{ - char buf[1024]; - int SEND_COUNT = 4; - - for(int i = 0; i < SEND_COUNT; i++) - { - fprintf(stderr, "Sending message %d of %d \n", i+1, SEND_COUNT); - - memset(buf, 0, sizeof(buf)); - snprintf(buf, sizeof(buf)-1, "DATA %d", i+1); - - if(send(client_fd, &buf, strlen(buf), 0) == -1) { - perror("send"); - return; - } - - memset(buf, 0, sizeof(buf)); - - if(recv(client_fd, &buf, sizeof(buf), 0) == -1) { - perror("recv"); - return; - } - - fprintf(stderr, "Server reply: %s\n", buf); - - sleep(1); - } - - fprintf(stderr, "Closing...\n"); - if(close(client_fd) == -1) { - perror("close"); - return; - } -} diff --git a/e2sim/previous/e2apv1sim/src/SCTP/e2sim_sctp.cpp b/e2sim/previous/e2apv1sim/src/SCTP/e2sim_sctp.cpp deleted file mode 100644 index 55547b4..0000000 --- a/e2sim/previous/e2apv1sim/src/SCTP/e2sim_sctp.cpp +++ /dev/null @@ -1,297 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ -#include -#include -#include //for close() -#include -#include -#include -#include -#include //for inet_ntop() -#include - -#include "e2sim_sctp.hpp" -// #include "e2sim_defs.h" - - -#include -#include -#include -#include -#include -#include -#include -#include - -int sctp_start_server(const char *server_ip_str, const int server_port) -{ - if(server_port < 1 || server_port > 65535) { - LOG_E("Invalid port number (%d). Valid values are between 1 and 65535.\n", server_port); - exit(1); - } - - int server_fd, af; - struct sockaddr* server_addr; - size_t addr_len; - - struct sockaddr_in server4_addr; - memset(&server4_addr, 0, sizeof(struct sockaddr_in)); - - struct sockaddr_in6 server6_addr; - memset(&server6_addr, 0, sizeof(struct sockaddr_in6)); - - if(inet_pton(AF_INET, server_ip_str, &server4_addr.sin_addr) == 1) - { - server4_addr.sin_family = AF_INET; - server4_addr.sin_port = htons(server_port); - - server_addr = (struct sockaddr*)&server4_addr; - af = AF_INET; - addr_len = sizeof(server4_addr); - } - else if(inet_pton(AF_INET6, server_ip_str, &server6_addr.sin6_addr) == 1) - { - server6_addr.sin6_family = AF_INET6; - server6_addr.sin6_port = htons(server_port); - - server_addr = (struct sockaddr*)&server6_addr; - af = AF_INET6; - addr_len = sizeof(server6_addr); - } - else { - perror("inet_pton()"); - exit(1); - } - - if((server_fd = socket(af, SOCK_STREAM, IPPROTO_SCTP)) == -1) { - perror("socket"); - exit(1); - } - - //set send_buffer - // int sendbuff = 10000; - // socklen_t optlen = sizeof(sendbuff); - // if(getsockopt(server_fd, SOL_SOCKET, SO_SNDBUF, &sendbuff, &optlen) == -1) { - // perror("getsockopt send"); - // exit(1); - // } - // else - // LOG_D("[SCTP] send buffer size = %d\n", sendbuff); - - - if(bind(server_fd, server_addr, addr_len) == -1) { - perror("bind"); - exit(1); - } - - if(listen(server_fd, SERVER_LISTEN_QUEUE_SIZE) != 0) { - perror("listen"); - exit(1); - } - - assert(server_fd != 0); - - LOG_I("[SCTP] Server started on %s:%d", server_ip_str, server_port); - - return server_fd; -} - -int sctp_start_client(const char *server_ip_str, const int server_port) -{ - int client_fd, af; - - struct sockaddr* server_addr; - size_t addr_len; - - struct sockaddr_in server4_addr; - memset(&server4_addr, 0, sizeof(struct sockaddr_in)); - - struct sockaddr_in6 server6_addr; - memset(&server6_addr, 0, sizeof(struct sockaddr_in6)); - - if(inet_pton(AF_INET, server_ip_str, &server4_addr.sin_addr) == 1) - { - server4_addr.sin_family = AF_INET; - server4_addr.sin_port = htons(server_port); - server_addr = (struct sockaddr*)&server4_addr; - addr_len = sizeof(server4_addr); - } - else if(inet_pton(AF_INET6, server_ip_str, &server6_addr.sin6_addr) == 1) - { - server6_addr.sin6_family = AF_INET6; - server6_addr.sin6_port = htons(server_port); - server_addr = (struct sockaddr*)&server6_addr; - addr_len = sizeof(server6_addr); - } - else { - perror("inet_pton()"); - exit(1); - } - - if((client_fd = socket(AF_INET6, SOCK_STREAM, IPPROTO_SCTP)) == -1) - { - perror("socket"); - exit(1); - } - - // int sendbuff = 10000; - // socklen_t optlen = sizeof(sendbuff); - // if(getsockopt(client_fd, SOL_SOCKET, SO_SNDBUF, &sendbuff, &optlen) == -1) { - // perror("getsockopt send"); - // exit(1); - // } - // else - // LOG_D("[SCTP] send buffer size = %d\n", sendbuff); - - //-------------------------------- - //Bind before connect - auto optval = 1; - if( setsockopt(client_fd, SOL_SOCKET, SO_REUSEPORT, &optval, sizeof optval) != 0 ){ - perror("setsockopt port"); - exit(1); - } - - if( setsockopt(client_fd, SOL_SOCKET, SO_REUSEADDR, &optval, sizeof optval) != 0 ){ - perror("setsockopt addr"); - exit(1); - } - - struct sockaddr_in6 client6_addr {}; - client6_addr.sin6_family = AF_INET6; - client6_addr.sin6_port = htons(RIC_SCTP_SRC_PORT); - client6_addr.sin6_addr = in6addr_any; - - LOG_I("[SCTP] Binding client socket to source port %d", RIC_SCTP_SRC_PORT); - if(bind(client_fd, (struct sockaddr*)&client6_addr, sizeof(client6_addr)) == -1) { - perror("bind"); - exit(1); - } - // end binding --------------------- - - LOG_I("[SCTP] Connecting to server at %s:%d ...", server_ip_str, server_port); - if(connect(client_fd, server_addr, addr_len) == -1) { - perror("connect"); - exit(1); - } - assert(client_fd != 0); - - LOG_I("[SCTP] Connection established"); - - return client_fd; -} - -int sctp_accept_connection(const char *server_ip_str, const int server_fd) -{ - LOG_I("[SCTP] Waiting for new connection..."); - - struct sockaddr client_addr; - socklen_t client_addr_size; - int client_fd; - - //Blocking call - client_fd = accept(server_fd, &client_addr, &client_addr_size); - fprintf(stderr, "client fd is %d\n", client_fd); - if(client_fd == -1){ - perror("accept()"); - close(client_fd); - exit(1); - } - - //Retrieve client IP_ADDR - char client_ip6_addr[INET6_ADDRSTRLEN], client_ip4_addr[INET_ADDRSTRLEN]; - if(strchr(server_ip_str, ':') != NULL) //IPv6 - { - struct sockaddr_in6* client_ipv6 = (struct sockaddr_in6*)&client_addr; - inet_ntop(AF_INET6, &(client_ipv6->sin6_addr), client_ip6_addr, INET6_ADDRSTRLEN); - LOG_I("[SCTP] New client connected from %s", client_ip6_addr); - } - else { - struct sockaddr_in* client_ipv4 = (struct sockaddr_in*)&client_addr; - inet_ntop(AF_INET, &(client_ipv4->sin_addr), client_ip4_addr, INET_ADDRSTRLEN); - LOG_I("[SCTP] New client connected from %s", client_ip4_addr); - } - - return client_fd; -} - -int sctp_send_data(int &socket_fd, sctp_buffer_t &data) -{ - fprintf(stderr,"in sctp send data func\n"); - fprintf(stderr,"data.len is %d", data.len); - int sent_len = send(socket_fd, (void*)(&(data.buffer[0])), data.len, 0); - fprintf(stderr,"after getting sent_len\n"); - - if(sent_len == -1) { - perror("[SCTP] sctp_send_data"); - exit(1); - } - - return sent_len; -} - -int sctp_send_data_X2AP(int &socket_fd, sctp_buffer_t &data) -{ - int sent_len = sctp_sendmsg(socket_fd, (void*)(&(data.buffer[0])), data.len, - NULL, 0, (uint32_t) X2AP_PPID, 0, 0, 0, 0); - - if(sent_len == -1) { - perror("[SCTP] sctp_send_data"); - exit(1); - } - -} - -/* -Receive data from SCTP socket -Outcome of recv() --1: exit the program -0: close the connection -+: new data -*/ -int sctp_receive_data(int &socket_fd, sctp_buffer_t &data) -{ - //clear out the data before receiving - fprintf(stderr, "receive data1\n"); - memset(data.buffer, 0, sizeof(data.buffer)); - fprintf(stderr, "receive data2\n"); - data.len = 0; - - //receive data from the socket - int recv_len = recv(socket_fd, &(data.buffer), sizeof(data.buffer), 0); - fprintf(stderr, "receive data3\n"); - - if(recv_len == -1) - { - perror("[SCTP] recv"); - exit(1); - } - else if (recv_len == 0) - { - LOG_I("[SCTP] Connection closed by remote peer"); - if(close(socket_fd) == -1) - { - perror("[SCTP] close"); - } - return -1; - } - - data.len = recv_len; - - return recv_len; -} diff --git a/e2sim/previous/e2apv1sim/src/SCTP/e2sim_sctp.h b/e2sim/previous/e2apv1sim/src/SCTP/e2sim_sctp.h deleted file mode 100644 index c102df0..0000000 --- a/e2sim/previous/e2apv1sim/src/SCTP/e2sim_sctp.h +++ /dev/null @@ -1,39 +0,0 @@ -/* - * - * Copyright 2019 AT&T Intellectual Property - * Copyright 2019 Nokia - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -/*! \file e2sim_sctp.h - */ - -#ifndef E2SIM_SCTP_H -#define E2SIM_SCTP_H - -void *handle_connection(void *thread_data); - -int sctp_start_server(const char *server_ip_str, const int server_port); - -int sctp_start_client(const char *server_ip_str, const int server_port); - -int sctp_send_to_socket(int sockfd, const void *buf, size_t len); - -//int sctp_recv_from_socket(int sockfd, void *buf, size_t buf_size); - -//test only -void client_send_multiple_test_msg(int client_fd); - -#endif diff --git a/e2sim/previous/e2apv1sim/src/SCTP/e2sim_sctp.hpp b/e2sim/previous/e2apv1sim/src/SCTP/e2sim_sctp.hpp deleted file mode 100644 index b16fcf6..0000000 --- a/e2sim/previous/e2apv1sim/src/SCTP/e2sim_sctp.hpp +++ /dev/null @@ -1,39 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -#ifndef E2SIM_SCTP_HPP -#define E2SIM_SCTP_HPP - -#include "e2sim_defs.h" - -const int SERVER_LISTEN_QUEUE_SIZE = 10; - -int sctp_start_server(const char *server_ip_str, const int server_port); - -int sctp_start_client(const char *server_ip_str, const int server_port); - -int sctp_accept_connection(const char *server_ip_str, const int server_fd); - -int sctp_send_data(int &socket_fd, sctp_buffer_t &data); - -int sctp_send_data_X2AP(int &socket_fd, sctp_buffer_t &data); - -int sctp_receive_data(int &socket_fd, sctp_buffer_t &data); - -#endif diff --git a/e2sim/previous/e2apv1sim/src/X2AP/MESSAGES/XML/sample_endc_x2_setup_failure.xml b/e2sim/previous/e2apv1sim/src/X2AP/MESSAGES/XML/sample_endc_x2_setup_failure.xml deleted file mode 100644 index f0b6262..0000000 --- a/e2sim/previous/e2apv1sim/src/X2AP/MESSAGES/XML/sample_endc_x2_setup_failure.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - 36 - - - - - - 5 - - - - - - - - - - - - diff --git a/e2sim/previous/e2apv1sim/src/X2AP/MESSAGES/XML/sample_endc_x2_setup_request.xml b/e2sim/previous/e2apv1sim/src/X2AP/MESSAGES/XML/sample_endc_x2_setup_request.xml deleted file mode 100644 index 5f94d2e..0000000 --- a/e2sim/previous/e2apv1sim/src/X2AP/MESSAGES/XML/sample_endc_x2_setup_request.xml +++ /dev/null @@ -1,67 +0,0 @@ - - - 36 - - - - - - 244 - - - - - - 21 - - - - 61 62 63 - - - 00110101000000000001 - - - - - - - 250 - - - - - - 0 - - 61 62 63 - - 0110010001100101011001100000 - - - 61 62 - - 61 62 63 - - - - 21400 - 3400 - - - - - - - - - - - - - - - - - - diff --git a/e2sim/previous/e2apv1sim/src/X2AP/MESSAGES/XML/sample_endc_x2_setup_response.xml b/e2sim/previous/e2apv1sim/src/X2AP/MESSAGES/XML/sample_endc_x2_setup_response.xml deleted file mode 100644 index 587b578..0000000 --- a/e2sim/previous/e2apv1sim/src/X2AP/MESSAGES/XML/sample_endc_x2_setup_response.xml +++ /dev/null @@ -1,36 +0,0 @@ - - - 36 - - - - - - 246 - - - - - - 252 - - - - 02 F8 29 - - - 01001010100101010010101010101010 - - - - - - - - - - - - - - diff --git a/e2sim/previous/e2apv1sim/src/X2AP/MESSAGES/XML/sample_x2_setup_failure.xml b/e2sim/previous/e2apv1sim/src/X2AP/MESSAGES/XML/sample_x2_setup_failure.xml deleted file mode 100644 index 3b82969..0000000 --- a/e2sim/previous/e2apv1sim/src/X2AP/MESSAGES/XML/sample_x2_setup_failure.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - 6 - - - - - - 5 - - - - - - - - - - - - diff --git a/e2sim/previous/e2apv1sim/src/X2AP/MESSAGES/XML/sample_x2_setup_request.xml b/e2sim/previous/e2apv1sim/src/X2AP/MESSAGES/XML/sample_x2_setup_request.xml deleted file mode 100644 index 3589f28..0000000 --- a/e2sim/previous/e2apv1sim/src/X2AP/MESSAGES/XML/sample_x2_setup_request.xml +++ /dev/null @@ -1,57 +0,0 @@ - - - 6 - - - - - - 21 - - - - 02 F8 39 - - - 00000000111000100000 - - - - - - - 20 - - - - - - 0 - - 02 F8 39 - - 0000000011100010000000000000 - - - 00 01 - - 02 F8 39 - - - - 21400 - 3400 - - - - - - - - - - - - - - diff --git a/e2sim/previous/e2apv1sim/src/X2AP/MESSAGES/XML/sample_x2_setup_response.xml b/e2sim/previous/e2apv1sim/src/X2AP/MESSAGES/XML/sample_x2_setup_response.xml deleted file mode 100644 index bab51d3..0000000 --- a/e2sim/previous/e2apv1sim/src/X2AP/MESSAGES/XML/sample_x2_setup_response.xml +++ /dev/null @@ -1,69 +0,0 @@ - - - 6 - - - - - - 21 - - - - 02 F8 39 - - - 00000000111000110000 - - - - - - - 20 - - - - - - 0 - - 02 F8 39 - - 0000000011100011000000000000 - - - 00 01 - - 02 F8 39 - - - - 21400 - 3400 - - - - - - - - - - - 24 - - - - - 02 F8 39 - 00 00 - - - - - - - - - diff --git a/e2sim/previous/e2apv1sim/src/X2AP/x2ap_asn_codec.c b/e2sim/previous/e2apv1sim/src/X2AP/x2ap_asn_codec.c deleted file mode 100644 index 959e7ef..0000000 --- a/e2sim/previous/e2apv1sim/src/X2AP/x2ap_asn_codec.c +++ /dev/null @@ -1,64 +0,0 @@ -/* - * - * Copyright 2019 AT&T Intellectual Property - * Copyright 2019 Nokia - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -#include "x2ap_asn_codec.h" -#include "per_decoder.h" -#include "per_encoder.h" - -/* Encode X2AP PDU ASN1 buffer*/ -int X2AP_ASN_encode(X2AP_PDU_t *pdu, uint8_t **buffer, uint32_t *len) -{ - ssize_t encoded; - - assert(pdu != NULL); - assert(buffer != NULL); - assert(len != NULL); - - encoded = aper_encode_to_new_buffer(&asn_DEF_X2AP_PDU, 0, pdu, (void **)buffer); - - if (encoded < 0) - { - return -1; - } - - *len = encoded; - - ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_X2AP_PDU, pdu); - return encoded; -} - -/* Decode XASN1 buffer to X2AP PDU*/ -int X2AP_ASN_decode(X2AP_PDU_t *pdu, const uint8_t *const buffer, const int len) -{ - asn_dec_rval_t dec_ret; - - assert(buffer != NULL); - - dec_ret = aper_decode(NULL, &asn_DEF_X2AP_PDU, (void **)&pdu, buffer, - len, 0, 0); - - //xer_fprint(stdout, &asn_DEF_X2AP_PDU, pdu); - - if (dec_ret.code != RC_OK) { - fprintf(stderr, "ERROR: Failed to decode pdu\n"); - return -1; - } - - return 0; -} diff --git a/e2sim/previous/e2apv1sim/src/X2AP/x2ap_asn_codec.cpp b/e2sim/previous/e2apv1sim/src/X2AP/x2ap_asn_codec.cpp deleted file mode 100644 index 7f2e6be..0000000 --- a/e2sim/previous/e2apv1sim/src/X2AP/x2ap_asn_codec.cpp +++ /dev/null @@ -1,59 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -#include "x2ap_asn_codec.hpp" - -void x2ap_encode_pdu(x2ap_pdu_t* pdu, unsigned char* buf, int buf_size, int &encoded_size) -{ - char err_buf[X2AP_ERROR_MESSAGE_BUFFER]; - - encoded_size = x2ap_asn_per_encode(pdu, buf, buf_size, err_buf, sizeof(err_buf)); - - if(encoded_size != -1) - { - LOG_D("[X2AP] ASN Encode successful, encoded_size = %d", encoded_size); - } - else - { - LOG_E("[X2AP] Encode error: %s", err_buf); - exit(1); - } - -} - -void x2ap_decode_pdu(x2ap_pdu_t* pdu, unsigned char* buf, int &encoded_size) -{ - char err_buf[X2AP_ERROR_MESSAGE_BUFFER]; - - int rc = x2ap_asn_per_decode(pdu, buf, encoded_size, err_buf, sizeof(err_buf)); - if(rc == -1) { - LOG_E("[X2AP] Decode error: %s", err_buf); - } else { - LOG_D("[X2AP] ASN decode successful"); - } -} - -void x2ap_print_pdu(x2ap_pdu_t* pdu) -{ - char pdu_str[X2AP_PDU_PRINT_BUFFER]; - - x2ap_asn_print(pdu, pdu_str, sizeof(pdu_str)); - - LOG_D("[X2AP] %s", pdu_str); -} diff --git a/e2sim/previous/e2apv1sim/src/X2AP/x2ap_asn_codec.h b/e2sim/previous/e2apv1sim/src/X2AP/x2ap_asn_codec.h deleted file mode 100644 index bad3ae7..0000000 --- a/e2sim/previous/e2apv1sim/src/X2AP/x2ap_asn_codec.h +++ /dev/null @@ -1,30 +0,0 @@ -/* - * - * Copyright 2019 AT&T Intellectual Property - * Copyright 2019 Nokia - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -#ifndef X2AP_ASN_CODEC_H_ -#define X2AP_ASN_CODEC_H_ - -#include "X2AP-PDU.h" - -int X2AP_ASN_encode(X2AP_PDU_t *pdu, uint8_t **buffer, uint32_t *len) -__attribute__ ((warn_unused_result)); - -int X2AP_ASN_decode(X2AP_PDU_t *pdu, const uint8_t *const buffer, const int len); - -#endif diff --git a/e2sim/previous/e2apv1sim/src/X2AP/x2ap_asn_codec.hpp b/e2sim/previous/e2apv1sim/src/X2AP/x2ap_asn_codec.hpp deleted file mode 100644 index a07f441..0000000 --- a/e2sim/previous/e2apv1sim/src/X2AP/x2ap_asn_codec.hpp +++ /dev/null @@ -1,34 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ -#ifndef X2AP_ASN_CODEC_HPP -#define X2AP_ASN_CODEC_HPP - -#include "e2sim_defs.h" -#include "asn_x2ap.hpp" - -#define X2AP_ERROR_MESSAGE_BUFFER 1024 -#define X2AP_PDU_PRINT_BUFFER 4096 - -void x2ap_encode_pdu(x2ap_pdu_t* pdu, unsigned char* buf, int buf_size, int &encoded_size); - -void x2ap_decode_pdu(x2ap_pdu_t* pdu, unsigned char* buf, int &encoded_size); - -void x2ap_print_pdu(x2ap_pdu_t* pdu); - -#endif diff --git a/e2sim/previous/e2apv1sim/src/X2AP/x2ap_generate_messages.c b/e2sim/previous/e2apv1sim/src/X2AP/x2ap_generate_messages.c deleted file mode 100644 index db12a3e..0000000 --- a/e2sim/previous/e2apv1sim/src/X2AP/x2ap_generate_messages.c +++ /dev/null @@ -1,113 +0,0 @@ -/* - * - * Copyright 2019 AT&T Intellectual Property - * Copyright 2019 Nokia - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -#include -#include -#include -#include -#include -#include "x2ap_generate_messages.h" -#include "x2ap_asn_codec.h" -#include "e2sim_defs.h" - -int asn1_xer_print = 0; -int MAX_XML_BUFFER = 10000; - -void x2ap_fetch_pdu_from_XML(X2AP_PDU_t **pdu, char *filename) -{ - - uint8_t buf[MAX_XML_BUFFER]; - - asn_dec_rval_t rval; - size_t size; - FILE *f; - - char XML_path[200]; - char *work_dir = getenv(WORKDIR_ENV); - - strcpy(XML_path, work_dir); - strcat(XML_path, "/src/X2AP/MESSAGES/XML/"); - strcat(XML_path, filename); - - //printf("Generate X2AP PDU from XML file: %s\n", XML_path); - - f = fopen(XML_path, "r"); - assert(f); - size = fread(buf, 1, sizeof(buf), f); - if(size == 0 || size == sizeof(buf)) - { - fprintf(stderr, "%s: Too large input\n", XML_path); - exit(1); - } - - fclose(f); - - //printf("Decode the XER buffer\n"); - rval = xer_decode(NULL, &asn_DEF_X2AP_PDU, (void **)pdu, buf, size); - assert(rval.code == RC_OK); - -} - -uint32_t x2ap_generate_x2_setup_request(uint8_t **buffer) -{ - X2AP_PDU_t *pdu; - pdu = (X2AP_PDU_t *)calloc(1, sizeof(X2AP_PDU_t)); - - uint32_t len; - - char *XML_file = "sample_x2_setup_request.xml"; - - x2ap_fetch_pdu_from_XML(&pdu, XML_file); - - if(asn1_xer_print) - xer_fprint(stdout, &asn_DEF_X2AP_PDU, (void *)pdu); - - if(X2AP_ASN_encode(pdu, buffer, &len) < 0) - { - fprintf(stderr, "Failed to APER encode X2 Setup Request\n"); - return -1; - } - - return len; - -} - -uint32_t x2ap_generate_x2_setup_response(uint8_t **buffer) -{ - X2AP_PDU_t *pdu; - pdu = (X2AP_PDU_t *)calloc(1, sizeof(X2AP_PDU_t)); - - uint32_t len; - - char *XML_file = "sample_x2_setup_response.xml"; - - x2ap_fetch_pdu_from_XML(&pdu, XML_file); - - if(asn1_xer_print) - xer_fprint(stdout, &asn_DEF_X2AP_PDU, (void *)pdu); - - if(X2AP_ASN_encode(pdu, buffer, &len) < 0) - { - fprintf(stderr, "Failed to APER encode X2 Setup Request\n"); - return -1; - } - - return len; - -} diff --git a/e2sim/previous/e2apv1sim/src/X2AP/x2ap_generate_messages.h b/e2sim/previous/e2apv1sim/src/X2AP/x2ap_generate_messages.h deleted file mode 100644 index 53998b7..0000000 --- a/e2sim/previous/e2apv1sim/src/X2AP/x2ap_generate_messages.h +++ /dev/null @@ -1,31 +0,0 @@ -/* - * - * Copyright 2019 AT&T Intellectual Property - * Copyright 2019 Nokia - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -#ifndef X2AP_ENB_GENERATE_MESSAGES_H_ -#define X2AP_ENB_GENERATE_MESSAGES_H_ - -#include "X2AP-PDU.h" - -void x2ap_fetch_pdu_from_XML(X2AP_PDU_t **pdu, char *filename); - -uint32_t x2ap_generate_x2_setup_request(uint8_t **buffer); - -uint32_t x2ap_generate_x2_setup_response(uint8_t **buffer); - -#endif diff --git a/e2sim/previous/e2apv1sim/src/X2AP/x2ap_message_handler.c b/e2sim/previous/e2apv1sim/src/X2AP/x2ap_message_handler.c deleted file mode 100644 index 4fa635e..0000000 --- a/e2sim/previous/e2apv1sim/src/X2AP/x2ap_message_handler.c +++ /dev/null @@ -1,139 +0,0 @@ -/* - * - * Copyright 2019 AT&T Intellectual Property - * Copyright 2019 Nokia - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -#include -#include -#include - -#include "x2ap_message_handler.h" - -typedef int (*x2ap_message_decoded_handler)(X2AP_PDU_t *pdu, sctp_data_t *response); - -static int handle_x2_setup_request(X2AP_PDU_t *pdu, sctp_data_t *response); - -static int handle_x2_setup_response(X2AP_PDU_t *pdu, sctp_data_t *response); - -static int handle_x2_setup_failure(X2AP_PDU_t *pdu, sctp_data_t *response); - -/* Handlers matrix. Only eNB related procedure present here -/* rowID = procedureCode (start with 0) -*/ -x2ap_message_decoded_handler x2ap_messages_handler[][3] = { - { 0, 0, 0 }, /* handoverPreparation */ - { 0, 0, 0 }, /* handoverCancel */ - { 0, 0, 0 }, /* loadIndication */ - { 0, 0, 0 }, /* errorIndication */ - { 0, 0, 0 }, /* snStatusTransfer */ - { 0, 0, 0 }, /* uEContextRelease */ - { handle_x2_setup_request, handle_x2_setup_response, handle_x2_setup_failure }, /* x2Setup */ - { 0, 0, 0 }, /* reset */ - { 0, 0, 0 }, /* eNBConfigurationUpdate */ - { 0, 0, 0 }, /* resourceStatusReportingInitiation */ - { 0, 0, 0 }, /* resourceStatusReporting */ - { 0, 0, 0 }, /* privateMessage */ - { 0, 0, 0 }, /* mobilitySettingsChange */ - { 0, 0, 0 }, /* rLFIndication */ - { 0, 0, 0 }, /* handoverReport */ - { 0, 0, 0 }, /* cellActivation */ - { 0, 0, 0 }, /* x2Release */ - { 0, 0, 0 }, /* x2APMessageTransfer */ - { 0, 0, 0 }, /* x2Removal */ - { 0, 0, 0 }, /* seNBAdditionPreparation */ - { 0, 0, 0 }, /* seNBReconfigurationCompletion */ - { 0, 0, 0 }, /* meNBinitiatedSeNBModificationPreparation */ - { 0, 0, 0 }, /* seNBinitiatedSeNBModification */ - { 0, 0, 0 }, /* meNBinitiatedSeNBRelease */ - { 0, 0, 0 }, /* seNBinitiatedSeNBRelease */ - { 0, 0, 0 }, /* seNBCounterCheck */ - { 0, 0, 0 } /* retrieveUEContext */ -}; - -char *x2ap_direction2String(int x2ap_dir) -{ - static char *x2ap_direction_String[] = { - "", /* Nothing */ - "Originating message", /* originating message */ - "Successfull outcome", /* successfull outcome */ - "UnSuccessfull outcome", /* successfull outcome */ - }; - return(x2ap_direction_String[x2ap_dir]); -} - -int x2ap_eNB_handle_message(const uint8_t *const data, const int data_len, sctp_data_t* response) -{ - X2AP_PDU_t pdu; - int ret; - - memset(&pdu, 0, sizeof(pdu)); - - //printf("Decode the PDU \n"); - - if (X2AP_ASN_decode(&pdu, data, data_len) < 0){ - return -1; - } - - /* Checking procedure Code and direction of message */ - if (pdu.choice.initiatingMessage.procedureCode > sizeof(x2ap_messages_handler) - / (3 * sizeof(x2ap_message_decoded_handler)) - || (pdu.present > X2AP_PDU_PR_unsuccessfulOutcome)) { - - fprintf(stderr, "Either procedureCode %ld or direction %d exceed expected\n", - pdu.choice.initiatingMessage.procedureCode, pdu.present); - ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_X2AP_PDU, &pdu); - return -1; - } - - if (x2ap_messages_handler[pdu.choice.initiatingMessage.procedureCode][pdu.present - 1] == NULL) - { - fprintf(stderr, "No handler for procedureCode %ld in direction %s\n", - pdu.choice.initiatingMessage.procedureCode, - x2ap_direction2String(pdu.present - 1)); - ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_X2AP_PDU, &pdu); - return -1; - } - - /*calling the appropriate handler */ - ret = (*x2ap_messages_handler[pdu.choice.initiatingMessage.procedureCode][pdu.present - 1])(&pdu, response); - ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_X2AP_PDU, &pdu); - return ret; -} - -int handle_x2_setup_request(X2AP_PDU_t *pdu, sctp_data_t* response) -{ - fprintf(stderr, "Received X2 SETUP REQUEST\n"); - - /* Todo: when to generate X2 Setup Failure??? - */ - - response->len = x2ap_generate_x2_setup_response(&response->data); - - return 0; -} - -int handle_x2_setup_response(X2AP_PDU_t *pdu, sctp_data_t* response) -{ - fprintf(stderr, "Received X2 SETUP RESPONSE\n"); - return 0; -} - -int handle_x2_setup_failure(X2AP_PDU_t *pdu, sctp_data_t* response) -{ - fprintf(stderr, "Received X2 SETUP FAILURE\n"); - return 0; -} diff --git a/e2sim/previous/e2apv1sim/src/X2AP/x2ap_message_handler.cpp b/e2sim/previous/e2apv1sim/src/X2AP/x2ap_message_handler.cpp deleted file mode 100644 index f818304..0000000 --- a/e2sim/previous/e2apv1sim/src/X2AP/x2ap_message_handler.cpp +++ /dev/null @@ -1,128 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ -#include "x2ap_message_handler.hpp" - - -void x2ap_handle_sctp_data(int &socket_fd, sctp_buffer_t &data) -{ - //decode the data into X2AP-PDU - x2ap_pdu_t* pdu = new_x2ap_pdu(); - - x2ap_decode_pdu(pdu, data.buffer, data.len); - - x2ap_print_pdu(pdu); - - int index = x2ap_get_index(pdu); - int procedureCode = x2ap_get_procedureCode(pdu); - - switch(procedureCode) - { - case 6: //X2Setup - switch(index) - { - case 1: //initiatingMessage - LOG_D("[X2AP] Received X2 SETUP REQUEST"); - x2ap_handle_X2SetupRequest(pdu, socket_fd); - break; - - case 2: //successfulOutcome - LOG_D("[X2AP] Received X2 SETUP RESPONSE"); - //x2ap_handle_X2SetupResponse(pdu, socket_fd); - break; - - case 3: - LOG_D("[X2AP] Received X2 SETUP FAILURE"); - break; - - default: - LOG_E("[X2AP] Invalid message index=%d in X2AP-PDU", index); - break; - } - break; - - case 36: //ENDCX2Setup - switch(index) - { - case 1: //initiatingMessage - LOG_D("[X2AP] Received ENDC X2 SETUP REQUEST"); - x2ap_handle_ENDCX2SetupRequest(pdu, socket_fd); - break; - - case 2: //successfulOutcome - LOG_D("[X2AP] Received ENDC X2 SETUP RESPONSE"); - //x2ap_handle_X2SetupResponse(pdu, socket_fd); - break; - - case 3: - LOG_D("[X2AP] Received ENDC X2 SETUP FAILURE"); - break; - - default: - LOG_E("[X2AP] Invalid message index=%d in X2AP-PDU", index); - break; - } - break; - - default: - LOG_E("[X2AP] No available handler for procedureCode=%d", procedureCode); - break; - } -} - -void x2ap_handle_X2SetupRequest(x2ap_pdu_t* pdu, int &socket_fd) -{ - /* - Simply send back X2SetupResponse - Todo: add more handling options (failure, duplicated request, etc.) - */ - - x2ap_pdu_t* res_pdu = new_x2ap_pdu(); - eNB_config cfg; - - x2ap_create_X2SetupResponse(res_pdu, cfg); - LOG_D("[X2AP] Created X2 SETUP RESPONSE") - - x2ap_print_pdu(res_pdu); - - //encode response pdu into buffer - sctp_buffer_t res_data; - x2ap_encode_pdu(res_pdu, res_data.buffer, sizeof(res_data.buffer), res_data.len); - - //send response data over sctp - if(sctp_send_data(socket_fd, res_data) > 0) { - LOG_D("[SCTP] Sent X2 SETUP RESPONSE"); - } else { - LOG_D("[SCTP] Unable to send X2 SETUP RESPONSE to peer"); - } -} - -void x2ap_handle_X2SetupResponse(x2ap_pdu_t* pdu, int &socket_fd) -{ - ; -} - - -void x2ap_handle_ENDCX2SetupRequest(x2ap_pdu_t* pdu, int &socket_fd) -{ - /* - Simply send back ENDCX2SetupResponse - Todo: add more handling options (failure, duplicated request, etc.) - */ - ; -} diff --git a/e2sim/previous/e2apv1sim/src/X2AP/x2ap_message_handler.h b/e2sim/previous/e2apv1sim/src/X2AP/x2ap_message_handler.h deleted file mode 100644 index 9c9d6ff..0000000 --- a/e2sim/previous/e2apv1sim/src/X2AP/x2ap_message_handler.h +++ /dev/null @@ -1,30 +0,0 @@ -/* - * - * Copyright 2019 AT&T Intellectual Property - * Copyright 2019 Nokia - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -#ifndef X2AP_ENB_HANDLER_H_ -#define X2AP_ENB_HANDLER_H_ - -#include "x2ap_asn_codec.h" -#include "X2AP-PDU.h" -#include "e2sim_defs.h" -#include "x2ap_generate_messages.h" - -int x2ap_eNB_handle_message(const uint8_t *const data, const int data_len, sctp_data_t* response); - -#endif diff --git a/e2sim/previous/e2apv1sim/src/X2AP/x2ap_message_handler.hpp b/e2sim/previous/e2apv1sim/src/X2AP/x2ap_message_handler.hpp deleted file mode 100644 index b3146c7..0000000 --- a/e2sim/previous/e2apv1sim/src/X2AP/x2ap_message_handler.hpp +++ /dev/null @@ -1,35 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ -#ifndef X2AP_MESSAGE_HANDLER_HPP -#define X2AP_MESSAGE_HANDLER_HPP - -#include "e2sim_defs.h" -#include "e2sim_sctp.hpp" -#include "asn_x2ap.hpp" -#include "x2ap_asn_codec.hpp" - -void x2ap_handle_sctp_data(int &socket_fd, sctp_buffer_t &data); - -void x2ap_handle_X2SetupRequest(x2ap_pdu_t* pdu, int &socket_fd); - -void x2ap_handle_X2SetupResponse(x2ap_pdu_t* pdu, int &socket_fd); - -void x2ap_handle_ENDCX2SetupRequest(x2ap_pdu_t* pdu, int &socket_fd); - -#endif diff --git a/e2sim/previous/e2apv1sim/test/Misc/CMakeLists.txt b/e2sim/previous/e2apv1sim/test/Misc/CMakeLists.txt deleted file mode 100644 index bf6c51c..0000000 --- a/e2sim/previous/e2apv1sim/test/Misc/CMakeLists.txt +++ /dev/null @@ -1,86 +0,0 @@ -#/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -#******************************************************************************/ - -cmake_minimum_required(VERSION 3.5.1) -set(CMAKE_CXX_COMPILER "/usr/bin/g++") -set(CMAKE_CXX_STANDARD 14) - -add_definitions("-D ASN_DISABLE_OER_SUPPORT") - -project(e2sim) - -set (HOME_DIR $ENV{HOME}) -#set (E2SIM_ROOT ../../../) - -include_directories("src") -include_directories("src/SCTP/") -include_directories("src/E2AP") -include_directories("src/E2AP/E2SM") -include_directories("ASN1c") - -find_library( SCTP_LIBRARY sctp ) #needed for sctp_sendmsg - -#---------------------------------------------- -file(GLOB E2AGENT_SOURCES - "src/e2agent.cpp" - "src/e2sim_defs.cpp" - "src/SCTP/*.cpp" - "src/E2AP/*.c" - "src/E2AP/*.cpp" - "ASN1c/*.c" - ) -add_executable(e2agent ${E2AGENT_SOURCES}) -target_link_libraries( e2agent ${SCTP_LIBRARY} ) - -#---------------------------------------------- -file(GLOB RICSIM_SOURCES - "src/ric_sim.cpp" - "src/e2sim_defs.cpp" - "src/SCTP/*.cpp" - "src/E2AP/*.c" - "src/E2AP/*.cpp" - "ASN1c/*.c" - ) -add_executable(ric_sim ${RICSIM_SOURCES}) -target_link_libraries( ric_sim ${SCTP_LIBRARY} ) - - -#---------------------------------------------- -file(GLOB X2TERM_SOURCES - "src/x2term.cpp" - "src/e2sim_defs.cpp" - "src/SCTP/*.cpp" - "src/E2AP/*.c" - "src/E2AP/*.cpp" - "ASN1c/*.c" - ) -add_executable(x2term ${X2TERM_SOURCES}) -target_link_libraries( x2term ${SCTP_LIBRARY} ) - - -#----------------------------------------------- -file(GLOB TEST - "src/test_asn1c.cpp" - "src/e2sim_defs.cpp" -# "src/SCTP/*.cpp" - "ASN1c/*.c" - "src/E2AP/*.c" - "src/E2AP/E2SM/*.c" - ) -add_executable(test_asn1c ${TEST}) diff --git a/e2sim/previous/e2apv1sim/test/Misc/test_asn1c.cpp b/e2sim/previous/e2apv1sim/test/Misc/test_asn1c.cpp deleted file mode 100644 index 690f767..0000000 --- a/e2sim/previous/e2apv1sim/test/Misc/test_asn1c.cpp +++ /dev/null @@ -1,79 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -#include -#include -#include -#include -#include - -extern "C" { - #include "e2sim_defs.h" - #include "E2AP-PDU.h" - #include "e2ap_asn1c_codec.h" - #include "e2sm.h" - -} - -using namespace std; - -int main(int argc, char* argv[]){ - - LOG_I("Test ASN1c"); - - test_eventTriggerDefinition(); - return 0; - - E2AP_PDU_t* pdu = e2ap_xml_to_pdu("E2AP_X2SetupRequest.xml"); - // E2AP_PDU_t* pdu = e2ap_xml_to_pdu("E2AP_X2SetupResponse.xml"); - // E2AP_PDU_t* pdu = e2ap_xml_to_pdu("E2AP_X2SetupFailure.xml"); - - // E2AP_PDU_t* pdu = e2ap_xml_to_pdu("E2AP_ENDCX2SetupRequest.xml"); - // E2AP_PDU_t* pdu = e2ap_xml_to_pdu("E2AP_ENDCX2SetupResponse.xml"); - // E2AP_PDU_t* pdu = e2ap_xml_to_pdu("E2AP_ENDCX2SetupFailure.xml"); - - // E2AP_PDU_t* pdu = e2ap_xml_to_pdu("E2AP_RICsubscriptionRequest.xml"); - // E2AP_PDU_t* pdu = e2ap_xml_to_pdu("E2AP_RICsubscriptionResponse.xml"); - // E2AP_PDU_t* pdu = e2ap_xml_to_pdu("E2AP_ErrorIndication.xml"); - - e2ap_asn1c_print_pdu(pdu); - - /* Test encoding */ - uint8_t *buf; - sctp_buffer_t data; - - data.len = e2ap_asn1c_encode_pdu(pdu, &buf); - memcpy(data.buffer, buf, min(data.len, MAX_SCTP_BUFFER)); - - /* Test decoding */ - E2AP_PDU_t* pdu1 = new E2AP_PDU_t(); - - e2ap_asn1c_decode_pdu(pdu1, data.buffer, data.len); - - e2ap_asn1c_print_pdu(pdu1); - - int index = (int)pdu1->present; - - int pCode = e2ap_asn1c_get_procedureCode(pdu1); - - LOG_I("Index = %d, procedureCode = %d", index, pCode); - - - return 0; -} diff --git a/e2sim/previous/e2apv1sim/test/Pendulum/Pendulum_asn_codec.c b/e2sim/previous/e2apv1sim/test/Pendulum/Pendulum_asn_codec.c deleted file mode 100644 index 9b44adf..0000000 --- a/e2sim/previous/e2apv1sim/test/Pendulum/Pendulum_asn_codec.c +++ /dev/null @@ -1,180 +0,0 @@ -/* - * - * Copyright 2019 AT&T Intellectual Property - * Copyright 2019 Nokia - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -#include "Pendulum_asn_codec.h" -#include "per_decoder.h" -#include "per_encoder.h" - -#include "OCTET_STRING.h" - -static int ASN_DEBUG = 0; - -int pendulum_asn_encode(Pendulum_t *pend, uint8_t **buffer, uint32_t *len) -{ - ssize_t encoded; - assert(pend != NULL); - assert(buffer != NULL); - - encoded = aper_encode_to_new_buffer(&asn_DEF_Pendulum, 0, pend, (void **)buffer); - if(encoded < 0){ - perror("Failed to aper encode\n"); - exit(1); - } - - *len = encoded; - //ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_Pendulum, pend); - return encoded; -} - -int pendulum_asn_decode(Pendulum_t *pend, const uint8_t *const buffer, const int len) -{ - asn_dec_rval_t dec_ret; - - // THIS IS IMPORTANT, otherwise: Segmentation fault - memset(pend, 0, sizeof(*pend)); - - assert(buffer != NULL); - - dec_ret = aper_decode(NULL, &asn_DEF_Pendulum, (void **)&pend, buffer, len, 0, 0); - if (dec_ret.code != RC_OK) { - fprintf(stderr, "ERROR: Failed to decode asn1 message\n"); - return -1; - } - - if(ASN_DEBUG) - xer_fprint(stdout, &asn_DEF_Pendulum, pend); - - return 0; -} - -int pendulum_create_asn_msg(uint8_t **buffer, long sequence, - double angle, double torque, const char* msg) -{ - //Create Pendulum payload struct - Pendulum_t *pend; - - pend = calloc(1, sizeof(Pendulum_t)); - if(!pend){ - perror("calloc() failed"); - exit(1); - } - - //convert char* to PrintableString_t* - PrintableString_t *payload = calloc(1, sizeof(PrintableString_t)); - payload->buf = (uint8_t *)msg; - payload->size = strlen(msg); - - pend->strval = payload; - pend->sequence = &sequence; - pend->angle = ∠ - pend->torque = &torque; - - if (ASN_DEBUG) - xer_fprint(stdout, &asn_DEF_Pendulum, pend); - - //Encode Pendulum payload struct to asn1 buffer - uint32_t len; - if(pendulum_asn_encode(pend, buffer, &len) < 0) - { - return -1; - } - //fprintf(stderr, "len = %d\n", len); - - return len; -} - -long pendulum_get_sequence(const uint8_t *const buffer, const int len) -{ - Pendulum_t pend; - pendulum_asn_decode(&pend, buffer, len); - - return *(pend.sequence); -} - -double pendulum_get_angle(const uint8_t *const buffer, const int len) -{ - Pendulum_t pend; - pendulum_asn_decode(&pend, buffer, len); - - return *(pend.angle); -} - -double pendulum_get_torque(const uint8_t *const buffer, const int len) -{ - Pendulum_t pend; - pendulum_asn_decode(&pend, buffer, len); - - return *(pend.torque); -} - -char* pendulum_get_strval(const uint8_t *const buffer, const int len) -{ - Pendulum_t pend; - char* str; - - pendulum_asn_decode(&pend, buffer, len); - - str = (char*)pend.strval->buf; - - return str; -} - -void test_pendulum_msg(void) -{ - uint8_t *buffer = NULL; - uint32_t len = 0; - double angle = 1.9; - len = pendulum_create_asn_msg(&buffer, 0, angle, 0, NULL); - - double ex_angle = pendulum_get_angle(buffer, len); - fprintf(stderr, "Extracted angle = %f\n", ex_angle); -} - -void test_pendulum_asn1(void) -{ - fprintf(stderr, "test_pendulum_asn1\n"); - - Pendulum_t *pend; - - long sequence = 0; /* OPTIONAL */ - double angle = 1.5; /* OPTIONAL */ - //double torque = 0.7; /* OPTIONAL */ - - pend = calloc(1, sizeof(Pendulum_t)); - if(!pend){ - perror("calloc() failed"); - exit(1); - } - - pend->sequence = &sequence; - pend->angle = ∠ - //pend->torque = &torque; - - xer_fprint(stdout, &asn_DEF_Pendulum, pend); - - //encode - uint8_t *buffer = NULL; - uint32_t len; - pendulum_asn_encode(pend, &buffer, &len); - fprintf(stderr, "len = %d\n", len); - - //decode - Pendulum_t dec_pend; - pendulum_asn_decode(&dec_pend, buffer, len); -} diff --git a/e2sim/previous/e2apv1sim/test/Pendulum/Pendulum_asn_codec.h b/e2sim/previous/e2apv1sim/test/Pendulum/Pendulum_asn_codec.h deleted file mode 100644 index 3928caf..0000000 --- a/e2sim/previous/e2apv1sim/test/Pendulum/Pendulum_asn_codec.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * - * Copyright 2019 AT&T Intellectual Property - * Copyright 2019 Nokia - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -#ifndef PENDULUM_ASN_CODEC_H_ -#define PENDULUM_ASN_CODEC_H_ - -#include "Pendulum.h" - -int pendulum_asn_encode(Pendulum_t *pend, uint8_t **buffer, uint32_t *len); - -int pendulum_asn_decode(Pendulum_t *pend, const uint8_t *const buffer, const int len); - -int pendulum_create_asn_msg(uint8_t **buffer, long sequence, - double angle, double torque, const char* msg); - -long pendulum_get_sequence(const uint8_t *const buffer, const int len); - -double pendulum_get_angle(const uint8_t *const buffer, const int len); - -double pendulum_get_torque(const uint8_t *const buffer, const int len); - -char* pendulum_get_strval(const uint8_t *const buffer, const int len); - -//For testing only - -void test_pendulum_msg(void); - -void test_pendulum_asn1(void); - -#endif diff --git a/e2sim/previous/e2apv1sim/test/Pendulum/Serial/adruino_serial.c b/e2sim/previous/e2apv1sim/test/Pendulum/Serial/adruino_serial.c deleted file mode 100644 index e67465c..0000000 --- a/e2sim/previous/e2apv1sim/test/Pendulum/Serial/adruino_serial.c +++ /dev/null @@ -1,98 +0,0 @@ -/* - * - * Copyright 2019 AT&T Intellectual Property - * Copyright 2019 Nokia - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -#include "stdio.h" -#include -#include - -#include "adruino_serial.h" - -int start_serial_inferface(int baudrate, char *serial_port) -{ - int fd = -1; - - fd = serialport_init(serial_port, baudrate); - if(fd == -1) { - fprintf(stderr, "couldn't open serial port %s\n", serial_port); - return -1; - } else { - fprintf(stderr, "Openning serial port: %s ...\n", serial_port); - } - - serialport_flush(fd); // take 2 seconds - fprintf(stderr, "Serial port ready!\n"); - - return fd; - -} - -int serial_readline(int fd, char* buf, int buf_max) -{ - if( fd == -1 ){ - perror("serial port not opened"); - return -1; - } - - memset(buf, 0, buf_max); - - do { - serialport_read_until(fd, buf, SERIAL_EOL_CHAR, buf_max, SERIAL_TIMEOUT); - } while( buf[0] == '\n' ); - - // serialport_read_until(fd, buf, SERIAL_EOL_CHAR, buf_max, SERIAL_TIMEOUT); - - return 0; -} - -int serial_writeline(int fd, char* buf) -{ - if(buf[strlen(buf)-1] != SERIAL_EOL_CHAR){ - //append EOL to buf - int len = strlen(buf); - buf[len] = SERIAL_EOL_CHAR; - buf[len+1] = '\0'; - } - - serialport_write(fd, buf); - - return 0; -} - -//For testing only -void test_adruino_serial(void) -{ - int fd; - char buf[MAX_SERIAL_BUFFER]; - - fd = start_serial_inferface(DEFAULT_BAUDRATE, DEFAULT_SERIAL_PORT); - - while(1){ - fprintf(stderr, "[E2 Agent]: "); - fgets(buf, MAX_SERIAL_BUFFER, stdin); - - // serialport_write(fd, "hello\n"); - //serialport_write(fd, buf); - serial_writeline(fd, buf); - - serial_readline(fd, buf, MAX_SERIAL_BUFFER); - fprintf(stderr, "[Adruino] %s", buf); - } - - return; -} diff --git a/e2sim/previous/e2apv1sim/test/Pendulum/Serial/adruino_serial.h b/e2sim/previous/e2apv1sim/test/Pendulum/Serial/adruino_serial.h deleted file mode 100644 index c061f8a..0000000 --- a/e2sim/previous/e2apv1sim/test/Pendulum/Serial/adruino_serial.h +++ /dev/null @@ -1,40 +0,0 @@ -/* - * - * Copyright 2019 AT&T Intellectual Property - * Copyright 2019 Nokia - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -#ifndef ADRUINO_SERIAL_H -#define ADRUINO_SERIAL_H - -#include "arduino-serial-lib.h" - -#define MAX_SERIAL_BUFFER 256 -#define DEFAULT_SERIAL_PORT "/dev/ttyACM0" -#define DEFAULT_BAUDRATE 115200 -#define SERIAL_EOL_CHAR '\n' -#define SERIAL_TIMEOUT 5000 //ms - -int start_serial_inferface(int baudrate, char *serial_port); - -int serial_readline(int fd, char* buf, int buf_max); - -int serial_writeline(int fd, char* buf); - -//For testing only -void test_adruino_serial(void); - -#endif diff --git a/e2sim/previous/e2apv1sim/test/Pendulum/Serial/arduino-serial-lib.c b/e2sim/previous/e2apv1sim/test/Pendulum/Serial/arduino-serial-lib.c deleted file mode 100644 index 73cac84..0000000 --- a/e2sim/previous/e2apv1sim/test/Pendulum/Serial/arduino-serial-lib.c +++ /dev/null @@ -1,170 +0,0 @@ -/* - * - * Copyright 2019 AT&T Intellectual Property - * Copyright 2019 Nokia - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -// -// arduino-serial-lib -- simple library for reading/writing serial ports -// -// 2006-2013, Tod E. Kurt, http://todbot.com/blog/ -// - -#include "arduino-serial-lib.h" - -#include // Standard input/output definitions -#include // UNIX standard function definitions -#include // File control definitions -#include // Error number definitions -#include // POSIX terminal control definitions -#include // String function definitions -#include - -// uncomment this to debug reads -//#define SERIALPORTDEBUG - -// takes the string name of the serial port (e.g. "/dev/tty.usbserial","COM1") -// and a baud rate (bps) and connects to that port at that speed and 8N1. -// opens the port in fully raw mode so you can send binary data. -// returns valid fd, or -1 on error -int serialport_init(const char* serialport, int baud) -{ - struct termios toptions; - int fd; - - //fd = open(serialport, O_RDWR | O_NOCTTY | O_NDELAY); - fd = open(serialport, O_RDWR | O_NONBLOCK ); - - if (fd == -1) { - perror("serialport_init: Unable to open port s"); - return -1; - } - - //int iflags = TIOCM_DTR; - //ioctl(fd, TIOCMBIS, &iflags); // turn on DTR - //ioctl(fd, TIOCMBIC, &iflags); // turn off DTR - - if (tcgetattr(fd, &toptions) < 0) { - perror("serialport_init: Couldn't get term attributes"); - return -1; - } - speed_t brate = baud; // let you override switch below if needed - switch(baud) - { - case 4800: brate=B4800; break; - case 9600: brate=B9600; break; - #ifdef B14400 - case 14400: brate=B14400; break; - #endif - case 19200: brate=B19200; break; - #ifdef B28800 - case 28800: brate=B28800; break; - #endif - case 38400: brate=B38400; break; - case 57600: brate=B57600; break; - case 115200: brate=B115200; break; - } - cfsetispeed(&toptions, brate); - cfsetospeed(&toptions, brate); - - // 8N1 - toptions.c_cflag &= ~PARENB; - toptions.c_cflag &= ~CSTOPB; - toptions.c_cflag &= ~CSIZE; - toptions.c_cflag |= CS8; - // no flow control - toptions.c_cflag &= ~CRTSCTS; - - //toptions.c_cflag &= ~HUPCL; // disable hang-up-on-close to avoid reset - - toptions.c_cflag |= CREAD | CLOCAL; // turn on READ & ignore ctrl lines - toptions.c_iflag &= ~(IXON | IXOFF | IXANY); // turn off s/w flow ctrl - - toptions.c_lflag &= ~(ICANON | ECHO | ECHOE | ISIG); // make raw - toptions.c_oflag &= ~OPOST; // make raw - - // see: http://unixwiz.net/techtips/termios-vmin-vtime.html - toptions.c_cc[VMIN] = 0; - toptions.c_cc[VTIME] = 0; - //toptions.c_cc[VTIME] = 20; - - tcsetattr(fd, TCSANOW, &toptions); - if( tcsetattr(fd, TCSAFLUSH, &toptions) < 0) { - perror("init_serialport: Couldn't set term attributes"); - return -1; - } - - return fd; -} - -// -int serialport_close( int fd ) -{ - return close( fd ); -} - -// -int serialport_writebyte( int fd, uint8_t b) -{ - int n = write(fd,&b,1); - if( n!=1) - return -1; - return 0; -} - -// -int serialport_write(int fd, const char* str) -{ - int len = strlen(str); - int n = write(fd, str, len); - if( n!=len ) { - perror("serialport_write: couldn't write whole string\n"); - return -1; - } - return 0; -} - -// -int serialport_read_until(int fd, char* buf, char until, int buf_max, int timeout) -{ - char b[1]; // read expects an array, so we give it a 1-byte array - int i=0; - do { - int n = read(fd, b, 1); // read a char at a time - if( n==-1) return -1; // couldn't read - if( n==0 ) { - usleep( 1 * 1000 ); // wait 1 msec try again - timeout--; - if( timeout==0 ) return -2; - continue; - } -#ifdef SERIALPORTDEBUG - fprintf(stderr, "serialport_read_until: i=%d, n=%d b='%c'\n",i,n,b[0]); // debug -#endif - buf[i] = b[0]; - i++; - } while( b[0] != until && i < buf_max && timeout>0 ); - - buf[i] = 0; // null terminate the string - return 0; -} - -// -int serialport_flush(int fd) -{ - sleep(2); //required to make flush work, for some reason - return tcflush(fd, TCIOFLUSH); -} diff --git a/e2sim/previous/e2apv1sim/test/Pendulum/Serial/arduino-serial-lib.h b/e2sim/previous/e2apv1sim/test/Pendulum/Serial/arduino-serial-lib.h deleted file mode 100644 index 74fe592..0000000 --- a/e2sim/previous/e2apv1sim/test/Pendulum/Serial/arduino-serial-lib.h +++ /dev/null @@ -1,39 +0,0 @@ -/* - * - * Copyright 2019 AT&T Intellectual Property - * Copyright 2019 Nokia - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -// -// arduino-serial-lib -- simple library for reading/writing serial ports -// -// 2006-2013, Tod E. Kurt, http://todbot.com/blog/ -// - - -#ifndef __ARDUINO_SERIAL_LIB_H__ -#define __ARDUINO_SERIAL_LIB_H__ - -#include // Standard types - -int serialport_init(const char* serialport, int baud); -int serialport_close(int fd); -int serialport_writebyte( int fd, uint8_t b); -int serialport_write(int fd, const char* str); -int serialport_read_until(int fd, char* buf, char until, int buf_max,int timeout); -int serialport_flush(int fd); - -#endif diff --git a/e2sim/previous/e2apv1sim/test/Pendulum/demo_setup.txt b/e2sim/previous/e2apv1sim/test/Pendulum/demo_setup.txt deleted file mode 100644 index 03cd1d6..0000000 --- a/e2sim/previous/e2apv1sim/test/Pendulum/demo_setup.txt +++ /dev/null @@ -1,14 +0,0 @@ -# DEMO March 20, 2019 - ## E2 Agent Laptop with IP x.x.x.x - - Connect to adruino via USB - - Connect to E2 Termination Desktop via Ethernet - - Run E2 Agent: $E2SIM_DIR/build/e2sim x.x.x.x - - ## E2 Termination Desktop - - Run xApp - cd $E2SIM_DIR/rmr_interface/tests/pendulum_xapp - bash run_receiver - - - Run E2 Termination - cd $E2SIM_DIR - ./build_and_run_e2sim diff --git a/e2sim/previous/e2apv1sim/test/Pendulum/e2sim_closedloop.c b/e2sim/previous/e2apv1sim/test/Pendulum/e2sim_closedloop.c deleted file mode 100644 index 613ce57..0000000 --- a/e2sim/previous/e2apv1sim/test/Pendulum/e2sim_closedloop.c +++ /dev/null @@ -1,263 +0,0 @@ -/* - * - * Copyright 2019 AT&T Intellectual Property - * Copyright 2019 Nokia - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - - -#include -#include -#include -#include -#include -#include //for close() -#include //for inet_ntop() - -#include "e2sim_defs.h" -#include "e2sim_sctp.h" -#include "x2ap_message_handler.h" - -//OSN 2019 -#include "Pendulum_asn_codec.h" -#include "adruino_serial.h" - -//rmr -#include -#include -#include -#include "rmr_wrapper.h" - -static void pendulum_control_E2_agent(int client_fd) -{ - fprintf(stderr, "--------------------------------------\n"); - fprintf(stderr, "E2 AGENT - START PENDULUM CONTROL\n"); - fprintf(stderr, "--------------------------------------\n"); - - uint8_t *buffer; - uint32_t len; - clock_t begin; - double rtt; //ms - - uint8_t recv_buf[MAX_SCTP_BUFFER]; - int recv_len; - - double angle; - double torque; - long sqn; - int count = 0; - - //serial - // int serial_fd; - char serial_buffer[MAX_SERIAL_BUFFER]; - // serial_fd = start_serial_inferface(DEFAULT_BAUDRATE, DEFAULT_SERIAL_PORT); - // - // char *delay_str_prev = "$0#\n"; - // //char *delay_str_new; - // - // int MSG_NUM = 10; - // - // //Always start with 0 delay - // serialport_write(serial_fd, "$0#\n"); - - // for(int i = 0; i < MSG_NUM; i++) - while(1) - { - - fprintf(stderr, "----------------\n"); - count += 1; - buffer = NULL; - len = 0; - - // //1.Read from serial - // serial_readline(serial_fd, serial_buffer, MAX_SERIAL_BUFFER); - // if(serial_buffer[0] == '\n') - // { - // //fprintf(stderr, "RECEIVED EOL\n"); - // continue; - // } - // //fprintf(stderr, "[Adruino] %s", serial_buffer); - usleep(5*1000); - - snprintf(serial_buffer, sizeof(serial_buffer)-1, "E2 AGENT PING"); - - begin = clock(); - - //2. Encode pendulum angle to ASN1 message - - len = pendulum_create_asn_msg(&buffer, 0, 0, 0, serial_buffer); - - //3. Send ASN1 message to socket - if(sctp_send_to_socket(client_fd, buffer, (size_t)len) > 0){ - fprintf(stderr, "Sent ASN1 message to E2 Termination\n"); - } - - // 4. Receive response from E2 Termination - memset(recv_buf, 0, sizeof(recv_buf)); - recv_len = 0; - recv_len = recv(client_fd, &recv_buf, sizeof(recv_buf), 0); - if(recv_len == -1) - { - perror("recv()"); - return; - } - - char *recv_str; - recv_str = pendulum_get_strval(recv_buf, recv_len); - fprintf(stderr, "Received response message #%d from xApp: %s\n", count, recv_str); - - // 5. TODO: Send response to serial - // Compare if delay has changed: - // if(strcmp(delay_str_prev, recv_str) != 0) { - // serial_writeline(serial_fd, recv_str); - // } - - //serial_writeline(serial_fd, recv_str); - - //Write to a file - FILE *f; - f = fopen("arduino_delay.txt", "w"); - fprintf(f, "%s", recv_str); - fclose(f); - - begin = clock() - begin; - rtt = 1000*((double)begin)/CLOCKS_PER_SEC; // in ms - fprintf(stderr, "E2Agent-RIC-E2Agent RTT = %f ms\n", rtt); - - } - - close(client_fd); -} - -int main(int argc, char *argv[]) -{ - fprintf(stderr, "E2 AGENT - PENDULUM CONTROL. Version %s\n", VERSION); - - // char *recv_str = "9"; - // int delay; - // - // printf("delay = %d\n", atoi(recv_str)); - // - // long delay = 22.5; - // - // printf("delay = %d\n", (int)delay); - // return 0; - - // test_rmr(); return 0; - // test_adruino_serial(); return 0; - - char* server_ip = DEFAULT_SCTP_IP; - int server_port = X2AP_SCTP_PORT; - - int server_fd; - int client_fd; - struct sockaddr client_addr; - socklen_t client_addr_size; - - //read input - if(argc == 3) //user provided IP and PORT - { - server_ip = argv[1]; - server_port = atoi(argv[2]); - if(server_port < 1 || server_port > 65535) { - fprintf(stderr, "Invalid port number (%d). Valid values are between 1 and 65535.\n" , server_port); - return -1; - } - } - else if(argc == 2) //user provided only IP - { - server_ip = argv[1]; - } - else if(argc == 1) - { - server_ip = DEFAULT_SCTP_IP; - } - else - { - fprintf(stderr, "Unrecognized option.\n"); - fprintf(stderr, "Usage: %s [SERVER IP ADDRESS] [SERVER PORT]\n", argv[0]); - return -1; - } - - server_fd = sctp_start_server(server_ip, server_port); - - fprintf(stderr, "Waiting for connection...\n"); - client_fd = accept(server_fd, &client_addr, &client_addr_size); - if(client_fd == -1){ - perror("accept()"); - close(client_fd); - return -1; - } - - //Todo: retrieve client ip addr - struct sockaddr_in* client_ipv4 = (struct sockaddr_in*)&client_addr; - char client_ip_addr[INET_ADDRSTRLEN]; - inet_ntop(AF_INET, &(client_ipv4->sin_addr), client_ip_addr, INET_ADDRSTRLEN); - - fprintf(stderr, "New client connected from %s\n", client_ip_addr); - - // while(1) //put while loop if want to receive from multiple clients - // { - uint8_t recv_buf[MAX_SCTP_BUFFER]; - int recv_len = 0; - - memset(recv_buf, 0, sizeof(recv_buf)); - - fprintf(stderr, "------------------------\n"); - recv_len = recv(client_fd, &recv_buf, sizeof(recv_buf), 0); - if(recv_len == -1) - { - perror("recv()"); - return -1; - } - else if(recv_len == 0) - { - fprintf(stderr, "\nConnection from %s closed by remote peer\n", client_ip_addr); - if(close(client_fd) == -1) - { - perror("close"); - } - return -1; - } - - //fprintf(stderr, "Received a message of size %d\n", recv_len); - - //TODO: check PPID here before calling x2ap handler - - sctp_data_t response = {NULL, 0}; - x2ap_eNB_handle_message(recv_buf, recv_len, &response); - - //======================================================================= - //reply to client - assert(response.data != NULL); - if(sctp_send_to_socket(client_fd, response.data, (size_t)response.len) > 0){ - fprintf(stderr, "Sent X2 SETUP RESPONSE \n"); - } else{ - perror("send to socket"); - return -1; - } - - fprintf(stderr, "X2 Setup Completed \n"); - - //========================================================================= - // Pendulum interaction - // Send pendulum state to E2 Termination and receive response - pendulum_control_E2_agent(client_fd); - // } //end while - - close(client_fd); - - return 0; -} diff --git a/e2sim/previous/e2apv1sim/test/Pendulum/e2sim_serial.c b/e2sim/previous/e2apv1sim/test/Pendulum/e2sim_serial.c deleted file mode 100644 index 33fa0ba..0000000 --- a/e2sim/previous/e2apv1sim/test/Pendulum/e2sim_serial.c +++ /dev/null @@ -1,56 +0,0 @@ -/* - * - * Copyright 2019 AT&T Intellectual Property - * Copyright 2019 Nokia - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -#include -#include -#include -#include -#include -#include "e2sim_defs.h" -#include - -#include "adruino_serial.h" - -int main(int argc, char *argv[]) -{ - int fd; - char buf[MAX_SERIAL_BUFFER]; - - fd = start_serial_inferface(DEFAULT_BAUDRATE, DEFAULT_SERIAL_PORT); - - while(1) - { - //usleep(5*1000); //sleep 5ms between read - sleep(1); - - FILE *f; - f = fopen("arduino_delay.txt", "r"); - assert(f); - - fread(buf, 1, sizeof(buf), f); - - printf("delay content = %s \n", buf); - - serial_writeline(fd, buf); - - fclose(f); - } - - return 0; -} diff --git a/e2sim/previous/e2apv1sim/test/Pendulum/e2sim_test_client.c b/e2sim/previous/e2apv1sim/test/Pendulum/e2sim_test_client.c deleted file mode 100644 index b178ff7..0000000 --- a/e2sim/previous/e2apv1sim/test/Pendulum/e2sim_test_client.c +++ /dev/null @@ -1,378 +0,0 @@ -/* - * - * Copyright 2019 AT&T Intellectual Property - * Copyright 2019 Nokia - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -#include -#include -#include -#include //for close() -#include -#include -#include -#include -#include //for inet_ntop() -#include - -#include "e2sim_defs.h" -#include "e2sim_sctp.h" -#include "x2ap_message_handler.h" - -#include "x2ap_generate_messages.h" - -//OSN 2019 -#include "Pendulum_asn_codec.h" - -//rmr -#include -#include -#include -#include "rmr_wrapper.h" - -//time -#include - -//these are the metrics being sent to the a1 mediator -int ave_ric_rtt_last_epoch=0; -int ave_msg_rate_last_epoch=0; -int ave_pendulum_msg_rate_last_epoch=0; - -int total_rtt_current_epoch=0; -int total_messages_current_epoch=0; -int total_pendulum_messages_current_epoch=0; - -int total_rtt_entries_current_epoch=0; - -int epoch_duration = 1;//in seconds - -long rtt_epoch_start_time =0; - -long msg_rate_epoch_start_time =0; -long pendulum_msg_rate_epoch_start_time = 0; - -long current_timestamp_in_us(){ - struct timeval currentTime; - gettimeofday(¤tTime, NULL); - return currentTime.tv_sec * (int)1e6 + currentTime.tv_usec; -} -void update_rtt_metrics(long rtt){//called every time there is a new rtt measurement - if(rtt_epoch_start_time == 0) - rtt_epoch_start_time = current_timestamp_in_us(); //start of a new epoch - - total_rtt_current_epoch = total_rtt_current_epoch+rtt; - total_rtt_entries_current_epoch++; - - if((current_timestamp_in_us() - rtt_epoch_start_time) > (epoch_duration*1000000)){//an epoch has passed - ave_ric_rtt_last_epoch = total_rtt_current_epoch/total_rtt_entries_current_epoch; - total_rtt_current_epoch =0; - rtt_epoch_start_time = 0; - } -} - -void update_msg_rate_metrics(){ - if(msg_rate_epoch_start_time == 0) - msg_rate_epoch_start_time= current_timestamp_in_us(); //start of a new epoch - total_messages_current_epoch++; - if((current_timestamp_in_us() - msg_rate_epoch_start_time) > (epoch_duration*1000000)){//an epoch has passed - ave_msg_rate_last_epoch = total_messages_current_epoch; - total_messages_current_epoch =0; - msg_rate_epoch_start_time =0; - } -} - -void update_pendulum_control_rate() -{ - if(pendulum_msg_rate_epoch_start_time == 0) - pendulum_msg_rate_epoch_start_time = current_timestamp_in_us(); //start of a new epoch - total_pendulum_messages_current_epoch++; - - if((current_timestamp_in_us() - pendulum_msg_rate_epoch_start_time) > (epoch_duration*1000000)){//an epoch has passed - ave_pendulum_msg_rate_last_epoch = total_pendulum_messages_current_epoch; - total_pendulum_messages_current_epoch = 0; - pendulum_msg_rate_epoch_start_time = 0; - } - -} - -void send_metrics_to_a1_med(struct rmr_context *rmr_c){ - int mtype=103; - char* metrics= malloc(1024); - int time_int = current_timestamp_in_us()/1000000; - //int ave_msg_rate_last_epoch=500; - snprintf(metrics, 1024, "{%s:%d, %s:%d, %s:%d, %s:%d}", \ - "\"latency\"", ave_ric_rtt_last_epoch/1000, \ - "\"ricload\"",ave_msg_rate_last_epoch, \ - "\"load\"",ave_pendulum_msg_rate_last_epoch, \ - "\"time\"",time_int); - rmr_send_wrapper(rmr_c, mtype, metrics); - printf("Sent message of type:%d to a1_med with content:%s\n",mtype,metrics); -} - -void forward_to_load_consumer(struct rmr_context *rmr_c){//the content does not matter - int mtype=105; - char* load_message="dummy load"; - rmr_send_wrapper(rmr_c, mtype, load_message); - printf("Sent message of type:%d to load consumer with content:%s\n",mtype,load_message); -} - -static void pendulum_control_E2_Termination(int client_fd) -{ - printf("--------------------------------------\n"); - printf("E2 TERMINATION - START PENDULUM CONTROL\n"); - printf("--------------------------------------\n"); - - uint8_t *send_buffer; - uint8_t recv_buffer[1024]; - uint32_t send_len; - uint32_t recv_len; - - clock_t begin = clock(); - double rtt; - double rtt_stats[100000]; - long recv_count = 0; - long fail_count = -1; //ignore the first message (see adruino code) - - long sqn; - int count = 0; - - //================================= - - //Setup context - struct rmr_context *rmr_c; //obtain our enhanced rmr_context - int mtype = 0; // we can loop through several message types - char* lport = "43086"; // default listen port - long rcount = 0; // number of acks received - - if( (eparm = getenv( "E2TERM_RMR_RCV_PORT" )) != NULL ) { - lport = strdup( eparm ); - } - - rmr_c = rmr_init_wrapper(lport); - - while( ! rmr_ready( rmr_c->mrc ) ) { - fprintf( stderr, " waiting for RMR to indicate ready\n" ); - sleep( 1 ); - } - fprintf( stderr, "[OK] initialisation complete\n" ); - - - //================================== - long loop_start_time = 0; - while(1){ - printf("----------------\n"); - count += 1; - loop_start_time = current_timestamp_in_us(); - //0. Receiving ASN message from E2 Agent - memset(recv_buffer, 0, sizeof(recv_buffer)); - printf("Time to receive asn message after starting main loop: %ld microseconds \n",current_timestamp_in_us() - loop_start_time); - recv_len = 0; - - printf(" 1Time to receive asn message after starting main loop: %ld microseconds \n",current_timestamp_in_us() - loop_start_time); - //long time_of_message_from_e2agent = current_timestamp_in_us(); - - if((recv_len = recv(client_fd, &recv_buffer, sizeof(recv_buffer), 0)) == -1) { - perror("recv"); - return; - } - - long time_of_message_from_e2agent = current_timestamp_in_us(); - - printf(" 2Time to receive asn message after starting main loop: %ld microseconds \n",current_timestamp_in_us() - loop_start_time); - if(recv_len == 0) { - rmr_close_wrapper(rmr_c); - - printf("Connection from closed by remote peer.\n"); - if(close(client_fd) == -1) { - perror("close"); - } - return; - } - - printf(" 3Time to receive asn message after starting main loop: %ld microseconds \n",current_timestamp_in_us() - loop_start_time); - // begin = clock() - begin; - // rtt = 1000*((double)begin)/CLOCKS_PER_SEC; // in ms - //printf("E2Term-Adruino-E2Term = %f ms\n", rtt); - - //2. Decode ASN message and Extract pendulum angle - char *recv_str; - recv_str = pendulum_get_strval(recv_buffer, recv_len); - // if( (strcmp(recv_str, "-1") == 0) || (strcmp(recv_str, "") == 0) ) - - if(strcmp(recv_str, "\n") == 0) - { - printf("RECEIVED EOL\n"); - } - - printf(" 4Time to receive asn message after starting main loop: %ld microseconds \n",current_timestamp_in_us() - loop_start_time); - // if(atof(recv_str) <= 0) - // { - // printf("FAILLLLLL\n"); - // fail_count += 1; - // } - // else { - // rtt_stats[recv_count] = atof(recv_str); - // recv_count++; - // } - - printf("Time to receive angle message from arduino after starting main loop: %ld microseconds \n",current_timestamp_in_us() - loop_start_time); - printf("Received message #%d from Adruino: %s\n", count, recv_str); - //printf("Last reported RTT (Adruino-RIC-Adruino): %f ms, fail_count = %ld\n", - // atof(recv_str)/1000, fail_count); - - // 3. [BHARATH] send_to_xApp(&pendulum_state, &response) - // while(1) { - // usleep( 10 ); - // char* message = "foo 111"; - char reply[1024]; - int got_pend_control=0; - rmr_send_wrapper(rmr_c, mtype, recv_str ); - printf("Sent message of type:%d to pendulum xApp with content:%s\n",mtype,recv_str); - long angle_receive_time =0; - while (got_pend_control == 0){ - if(rmr_poll_for_message(rmr_c) == 1) { - update_msg_rate_metrics(); - switch(rmr_c->rbuf->mtype) { - case 33 : - angle_receive_time = current_timestamp_in_us(); - got_pend_control=1; - update_pendulum_control_rate(); //add this - strcpy(reply,rmr_c->rbuf->payload); - printf("Received control message from pendulum xapp with message type: %d and content %s\n",rmr_c->rbuf->mtype, reply); - break; - case 102 : - printf("Received METRIC request from A1 mediator with message type: %d and content %s\n",rmr_c->rbuf->mtype,rmr_c->rbuf->payload); - send_metrics_to_a1_med(rmr_c); - break; - case 104 : - printf("***************************Received load from load generator****************************"); - forward_to_load_consumer(rmr_c); - break; - default : - continue; - } - } - - } - printf("Time to receive control message from xapp after starting main loop: %ld microseconds \n",current_timestamp_in_us() - loop_start_time); -// snprintf(reply, 1024, "$%d#\n", (int)ave_ric_rtt_last_epoch/1000); - send_len = pendulum_create_asn_msg(&send_buffer, 0, 0, 0, reply); - printf("Time to create asn message after receiving angle: %ld microseconds\n",current_timestamp_in_us() - angle_receive_time); - begin = clock(); - - //6. Send ASN1 message to socket - if(sctp_send_to_socket(client_fd, send_buffer, (size_t)send_len) > 0){ - printf("Sent ASN1 response to E2 Agent\n"); - } - long time_of_reply_to_e2agent = current_timestamp_in_us(); - printf("Time to send asn message after receiving angle: %ld microseconds \n",current_timestamp_in_us() - angle_receive_time); - long rtt = (time_of_reply_to_e2agent - time_of_message_from_e2agent); - ave_ric_rtt_last_epoch = rtt; - printf("RIC RTT is %lf milliseconds\n", rtt/1000.0); - //update_rtt_metrics(rtt); - } - - rmr_close_wrapper(rmr_c); - -} - -int main(int argc, char* argv[]) -{ - // test_rmr(); return 0; - - const char* server_ip = DEFAULT_SCTP_IP; - int server_port = X2AP_SCTP_PORT; - - //read input - if(argc == 3) //user provided IP and PORT - { - server_ip = argv[1]; - server_port = atoi(argv[2]); - if(server_port < 1 || server_port > 65535) { - printf("Invalid port number (%d). Valid values are between 1 and 65535.\n", server_port); - return 1; - } - } - else if(argc == 2) //user provided only IP - { - server_ip = argv[1]; - } - else if(argc == 1) - { - server_ip = DEFAULT_SCTP_IP; - } - else - { - printf("Unrecognized option.\n"); - printf("Usage: %s [SERVER IP ADDRESS] [SERVER PORT]\n", argv[0]); - return 0; - } - - int client_fd; - client_fd = sctp_start_client(server_ip, server_port); - - uint8_t *buffer; - uint32_t len; - - //Note: put a while(1) loop here if want client to stay - // for(int i = 0; i < 3; i++) - // { - buffer = NULL; - len = 0; - - printf("------------------------\n"); - clock_t begin; - begin = clock(); - - //Create pdu for x2 message and send to socket - len = x2ap_generate_x2_setup_request(&buffer); - if(sctp_send_to_socket(client_fd, buffer, (size_t)len) > 0){ - printf("Sent X2 SETUP REQUEST\n"); - } - - //======================================================================= - //printf("waiting for server response\n"); - uint8_t recv_buf[MAX_SCTP_BUFFER]; - int recv_len = 0; - - //sctp_recv_from_socket(client_fd, recv_buf, sizeof(recv_buf)); - memset(recv_buf, 0, sizeof(recv_buf)); - recv_len = recv(client_fd, &recv_buf, sizeof(recv_buf), 0); - if(recv_len == -1) - { - perror("recv()"); - return -1; - } - - //printf("Received a message of size %d\n", recv_len); - x2ap_eNB_handle_message(recv_buf, recv_len, NULL); - - begin = clock() - begin; - double time_taken = 1000*((double)begin)/CLOCKS_PER_SEC; // in ms - printf("Close-loop time: %f ms \n", time_taken); - printf("X2 Setup Completed \n"); - - // } //end iteration - - //========================================================================= - // Pendulum interaction - // Receive pendulum state from E2 Agent and send response - pendulum_control_E2_Termination(client_fd); - - close(client_fd); - - return 0; -} diff --git a/e2sim/previous/e2apv1sim/test/Pendulum/e2termination_test.cpp b/e2sim/previous/e2apv1sim/test/Pendulum/e2termination_test.cpp deleted file mode 100644 index b65ac65..0000000 --- a/e2sim/previous/e2apv1sim/test/Pendulum/e2termination_test.cpp +++ /dev/null @@ -1,223 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -#include -#include -#include -#include - - -#include "e2sim_defs.h" -#include "asn_e2ap.hpp" -#include "e2sim_sctp.hpp" -#include "e2ap_message_handler.hpp" -#include "e2ap_asn_codec.hpp" - -using namespace std; - -void test_send_X2Setup(int &client_fd) -{ - //Create X2SetupRequest message - e2ap_pdu_t* pdu = new_e2ap_pdu(); - eNB_config cfg; - - e2ap_create_X2SetupRequest(pdu, cfg); - e2ap_print_pdu(pdu); - - //Encode into buffer - sctp_buffer_t data; - e2ap_encode_pdu(pdu, data.buffer, sizeof(data.buffer), data.len); - - //Send to sctp - sctp_send_data(client_fd, data); - LOG_I("[SCTP] Sent X2 SETUP REQUEST"); - - //wait to receive response - sctp_buffer_t recv_buf; - if(sctp_receive_data(client_fd, recv_buf) > 0) - { - LOG_I("[SCTP] Received new data of size %d", recv_buf.len); - e2ap_handle_sctp_data(client_fd, recv_buf); - } - - } - -void test_send_ENDCX2Setup(int &client_fd) -{ - //Create ENDCX2SetupRequest message - e2ap_pdu_t* pdu = new_e2ap_pdu(); - eNB_config cfg; - - e2ap_create_ENDCX2SetupRequest(pdu, cfg); - e2ap_print_pdu(pdu); - - //Encode into buffer - sctp_buffer_t data; - e2ap_encode_pdu(pdu, data.buffer, sizeof(data.buffer), data.len); - - //Send to sctp - sctp_send_data(client_fd, data); - LOG_I("[SCTP] Sent ENDC X2 SETUP REQUEST"); - - //wait to receive response - sctp_buffer_t recv_buf; - if(sctp_receive_data(client_fd, recv_buf) > 0) - { - LOG_I("[SCTP] Received new data of size %d", recv_buf.len); - e2ap_handle_sctp_data(client_fd, recv_buf); - } - -} - -void test_send_RICSubscriptionRequest(int &client_fd) -{ - LOG_I("Test RIC SUBSCRIPTION"); - - /* Create RIC SUBSCRITION REQUEST */ - e2ap_pdu_t* pdu = new_e2ap_pdu(); - - RICsubscription_params_t params; - params.request_id = 2; - params.seq_number = 200; - params.ran_func_id = 0; - params.event_trigger_def = "hello world"; - - RIC_action_t action1(1, RICactionType_report); - // RIC_action_t action2(3, RICactionType_insert); - // RIC_action_t action3(5, RICactionType_insert); - // RIC_action_t action4(7, RICactionType_insert); - params.actionList.push_back(action1); - // params.actionList.push_back(action2); - // params.actionList.push_back(action3); - // params.actionList.push_back(action4); - - e2ap_create_RICsubscriptionRequest(pdu, params); - e2ap_print_pdu(pdu); - - //Encode into buffer - sctp_buffer_t data; - e2ap_encode_pdu(pdu, data.buffer, sizeof(data.buffer), data.len); - - //Send to sctp - sctp_send_data(client_fd, data); - LOG_I("[SCTP] Sent RIC SUBSCRIPTION REQUEST"); - - //wait to receive response and indication (if any) - sctp_buffer_t recv_buf; - LOG_I("[SCTP] Waiting for SCTP data"); - while(1) - { - if(sctp_receive_data(client_fd, recv_buf) > 0) - { - LOG_I("[SCTP] Received new data of size %d", recv_buf.len); - e2ap_handle_sctp_data(client_fd, recv_buf); - } - else - break; - - } - - - return; - //========================================================================== - - //decode - e2ap_pdu_t* pdu2 = new_e2ap_pdu(); - - e2ap_decode_pdu(pdu2, data.buffer, data.len); - - RICsubscription_params_t params2; - e2ap_parse_RICsubscriptionRequest(pdu2, params2); - printf("request_id = %d\n", params2.request_id); - printf("seq_number = %d\n", params2.seq_number); - printf("ran_func_id = %d\n", params2.ran_func_id); - printf("event = %s\n", ¶ms2.event_trigger_def[0]); - - for( auto const &a : params.actionList) - { - printf("action id = %d, action type = %d\n", (int)a.action_id, (int)a.action_type); - } - - - LOG_I("================= RESPONSE ==========================="); - for(size_t i = 0; i < params2.actionList.size(); i++) - { - //example logic: admit every other action - if(i%2 == 0) { - params2.actionList[i].isAdmitted = true; - } else { - params2.actionList[i].isAdmitted = false; - params2.actionList[i].notAdmitted_cause = RICcause_radioNetwork; - params2.actionList[i].notAdmitted_subCause = 5; - } - } - - e2ap_pdu_t* res_pdu = new_e2ap_pdu(); - e2ap_create_RICsubscriptionResponse(res_pdu, params2); - - e2ap_print_pdu(res_pdu); - - //Encode into buffer - sctp_buffer_t data_resp; - e2ap_encode_pdu(res_pdu, data_resp.buffer, sizeof(data_resp.buffer), data_resp.len); - - LOG_I("================= FAILURE ==========================="); - e2ap_pdu_t* fail_pdu = new_e2ap_pdu(); - - RICsubscription_params_t params3; - e2ap_parse_RICsubscriptionRequest(pdu2, params3); - - for(size_t i = 0; i < params3.actionList.size(); i++) - { - params3.actionList[i].isAdmitted = false; - params3.actionList[i].notAdmitted_cause = RICcause_radioNetwork; - params3.actionList[i].notAdmitted_subCause = 5; - } - - e2ap_create_RICsubscriptionFailure(fail_pdu, params3); - e2ap_print_pdu(fail_pdu); - - //Encode into buffer - sctp_buffer_t data_fail; - e2ap_encode_pdu(fail_pdu, data_fail.buffer, sizeof(data_fail.buffer), data_fail.len); - -} - -int main(int argc, char* argv[]){ - - LOG_I("E2 Termination Test"); - - // test_send_RICSubscriptionRequest(); - // return 0; - - options_t ops = read_input_options(argc, argv); - int client_fd = sctp_start_client(ops.server_ip, ops.server_port); - - //--------------------------------------------------- - // test_send_X2Setup(client_fd); - test_send_ENDCX2Setup(client_fd); - test_send_RICSubscriptionRequest(client_fd); - - //--------------------------------------------------- - - close(client_fd); - LOG_I("[SCTP] Connection closed."); - - return 0; -} diff --git a/e2sim/previous/e2apv1sim/test/Pendulum/pendulum.asn1 b/e2sim/previous/e2apv1sim/test/Pendulum/pendulum.asn1 deleted file mode 100644 index 686d2c0..0000000 --- a/e2sim/previous/e2apv1sim/test/Pendulum/pendulum.asn1 +++ /dev/null @@ -1,12 +0,0 @@ -PendulumModule DEFINITIONS AUTOMATIC TAGS ::= - -BEGIN - -Pendulum ::= SEQUENCE { - sequence INTEGER OPTIONAL, - angle REAL OPTIONAL, - torque REAL OPTIONAL, - strval PrintableString OPTIONAL -} - -END diff --git a/e2sim/previous/e2apv1sim/test/WLG/CMakeLists.txt b/e2sim/previous/e2apv1sim/test/WLG/CMakeLists.txt deleted file mode 100644 index 4faee6a..0000000 --- a/e2sim/previous/e2apv1sim/test/WLG/CMakeLists.txt +++ /dev/null @@ -1,59 +0,0 @@ -#/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -#******************************************************************************/ - -cmake_minimum_required(VERSION 3.5.1) -set(CMAKE_CXX_COMPILER "/usr/bin/g++") -set(CMAKE_CXX_STANDARD 14) - -add_definitions("-D ASN_DISABLE_OER_SUPPORT") - -set (E2SIM_ROOT ../../) - -include_directories("${E2SIM_ROOT}/src") -include_directories("${E2SIM_ROOT}/src/DEF") -include_directories("${E2SIM_ROOT}/src/SCTP/") -include_directories("${E2SIM_ROOT}/src/E2AP") -include_directories("${E2SIM_ROOT}/src/E2AP/E2SM") -include_directories("${E2SIM_ROOT}/ASN1c") - -find_library( SCTP_STD_LIB sctp ) #needed for sctp_sendmsg - -#---------------------------------------------- -file(GLOB WLG_SOURCES - "${E2SIM_ROOT}/test/WLG/ric_wlg.cpp" - "${E2SIM_ROOT}/src/DEF/*.cpp" - "${E2SIM_ROOT}/src/SCTP/*.cpp" - "${E2SIM_ROOT}/src/E2AP/*.c" - "${E2SIM_ROOT}/src/E2AP/*.cpp" - "${E2SIM_ROOT}/ASN1c/*.c" - ) -add_executable(ric_wlg ${WLG_SOURCES}) -target_link_libraries( ric_wlg ${SCTP_STD_LIB} ) - -#---------------------------------------------- -file(GLOB RICPERF_SOURCES - "${E2SIM_ROOT}/test/WLG/ric_perf.cpp" - "${E2SIM_ROOT}/src/DEF/*.cpp" - "${E2SIM_ROOT}/src/SCTP/*.cpp" - "${E2SIM_ROOT}/src/E2AP/*.c" - "${E2SIM_ROOT}/src/E2AP/*.cpp" - "${E2SIM_ROOT}/ASN1c/*.c" - ) -add_executable(ric_perf ${RICPERF_SOURCES}) -target_link_libraries( ric_perf ${SCTP_STD_LIB} ) diff --git a/e2sim/previous/e2apv1sim/test/WLG/build_wlg.sh b/e2sim/previous/e2apv1sim/test/WLG/build_wlg.sh deleted file mode 100755 index 2f81b56..0000000 --- a/e2sim/previous/e2apv1sim/test/WLG/build_wlg.sh +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/bash -#/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -#******************************************************************************/ - -set -e - -mkdir -p build -cd build -rm -rf CMakeCache.txt -cmake .. -make -j`nproc` diff --git a/e2sim/previous/e2apv1sim/test/WLG/ric_perf.cpp b/e2sim/previous/e2apv1sim/test/WLG/ric_perf.cpp deleted file mode 100644 index 9403283..0000000 --- a/e2sim/previous/e2apv1sim/test/WLG/ric_perf.cpp +++ /dev/null @@ -1,287 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -#include -#include -#include - -#include "e2sim_sctp.hpp" -#include "e2ap_message_handler.hpp" - -extern "C" { - #include "e2sim_defs.h" - #include "E2AP-PDU.h" - #include "e2ap_asn1c_codec.h" - - #include "ProtocolIE-Field.h" -} - -using namespace std; - -void encode_and_send_sctp_data(E2AP_PDU_t* pdu, int client_fd) -{ - uint8_t *buf; - sctp_buffer_t data; - - data.len = e2ap_asn1c_encode_pdu(pdu, &buf); - memcpy(data.buffer, buf, min(data.len, MAX_SCTP_BUFFER)); - - sctp_send_data(client_fd, data); -} - -void wait_for_sctp_data(int client_fd) -{ - sctp_buffer_t recv_buf; - if(sctp_receive_data(client_fd, recv_buf) > 0) - { - LOG_I("[SCTP] Received new data of size %d", recv_buf.len); - e2ap_handle_sctp_data(client_fd, recv_buf); - } -} - -void set_seqnum(E2AP_PDU_t* pdu) -{ - InitiatingMessage_t *initiatingMessage = pdu->choice.initiatingMessage; - // xer_fprint(stdout, &asn_DEF_InitiatingMessage, (void *)initiatingMessage); - - RICsubscriptionRequest_t *request = &initiatingMessage->value.choice.RICsubscriptionRequest; - xer_fprint(stdout, &asn_DEF_RICsubscriptionRequest, (void *)request); - - LOG_I("num of IEs = %d", request->protocolIEs.list.count); - - RICsubscriptionRequest_IEs_t *ie; - - ie = request->protocolIEs.list.array[2]; - - xer_fprint(stdout, &asn_DEF_RICsubscription, (void *)ie); - - // e2ap_asn1c_print_pdu(pdu); -} - -int subresponse_get_sequenceNum(E2AP_PDU_t* pdu) -{ - SuccessfulOutcome_t *responseMsg = pdu->choice.successfulOutcome; - - RICrequestID_t *requestid; - - int num_IEs = responseMsg->value.choice.RICsubscriptionResponse.protocolIEs.list.count; - - for(int edx = 0; edx < num_IEs; edx++) - { - RICsubscriptionResponse_IEs_t *memb_ptr = - responseMsg->value.choice.RICsubscriptionResponse.protocolIEs.list.array[edx]; - - switch(memb_ptr->id) - { - case (ProtocolIE_ID_id_RICrequestID): - requestid = &memb_ptr->value.choice.RICrequestID; - // xer_fprint(stdout, &asn_DEF_RICrequestID, (void *)requestid); - return requestid->ricRequestSequenceNumber; - break; - } - } -} - -void subrequest_set_sequenceNum(E2AP_PDU_t* pdu, int seq) -{ - InitiatingMessage_t *initiatingMessage = pdu->choice.initiatingMessage; - - RICrequestID_t *requestid; - - int num_IEs = initiatingMessage->value.choice.RICsubscriptionRequest.protocolIEs.list.count; - - for(int edx = 0; edx < num_IEs; edx++) - { - RICsubscriptionRequest_IEs_t *memb_ptr = - initiatingMessage->value.choice.RICsubscriptionRequest.protocolIEs.list.array[edx]; - - switch(memb_ptr->id) - { - case (ProtocolIE_ID_id_RICrequestID): - requestid = &memb_ptr->value.choice.RICrequestID; - requestid->ricRequestSequenceNumber = seq; - break; - } - } - -} - -void subscription_response_get_field(E2AP_PDU_t* pdu) -{ - SuccessfulOutcome_t *responseMsg = pdu->choice.successfulOutcome; - - RICrequestID_t *requestid; - RANfunctionID_t * ranfunctionid; - RICsubscription_t * ricsubscription; - - int requestID_val, sequenceNum; - - int num_IEs = responseMsg->value.choice.RICsubscriptionResponse.protocolIEs.list.count; - - LOG_I("num of IEs = %d", num_IEs); - - for(int edx = 0; edx < num_IEs; edx++) - { - RICsubscriptionResponse_IEs_t *memb_ptr = - responseMsg->value.choice.RICsubscriptionResponse.protocolIEs.list.array[edx]; - - switch(memb_ptr->id) - { - case (ProtocolIE_ID_id_RICrequestID): - requestid = &memb_ptr->value.choice.RICrequestID; - xer_fprint(stdout, &asn_DEF_RICrequestID, (void *)requestid); - requestID_val = requestid->ricRequestorID; - sequenceNum = requestid->ricRequestSequenceNumber; - requestid->ricRequestSequenceNumber = 202; - break; - - case (ProtocolIE_ID_id_RANfunctionID): - ranfunctionid = &memb_ptr->value.choice.RANfunctionID; - xer_fprint(stdout, &asn_DEF_RANfunctionID, (void *)ranfunctionid); - break; - - // case (ProtocolIE_ID_id_RICsubscription): - // ricsubscription = &memb_ptr->value.choice.RICsubscription; - // xer_fprint(stdout, &asn_DEF_RICsubscription, (void *)ricsubscription); - // break; - } - } - - LOG_I("Request ID = %d, seq = %d", requestID_val, sequenceNum); -} - -void subscription_request_get_field(E2AP_PDU_t* pdu) -{ - InitiatingMessage_t *initiatingMessage = pdu->choice.initiatingMessage; - - RICrequestID_t *requestid; - RANfunctionID_t * ranfunctionid; - RICsubscription_t * ricsubscription; - - int num_IEs = initiatingMessage->value.choice.RICsubscriptionRequest.protocolIEs.list.count; - - LOG_I("num of IEs = %d", num_IEs); - - for(int edx = 0; edx < num_IEs; edx++) - { - RICsubscriptionRequest_IEs_t *memb_ptr = - initiatingMessage->value.choice.RICsubscriptionRequest.protocolIEs.list.array[edx]; - - switch(memb_ptr->id) - { - case (ProtocolIE_ID_id_RICrequestID): - requestid = &memb_ptr->value.choice.RICrequestID; - xer_fprint(stdout, &asn_DEF_RICrequestID, (void *)requestid); - break; - - case (ProtocolIE_ID_id_RANfunctionID): - ranfunctionid = &memb_ptr->value.choice.RANfunctionID; - xer_fprint(stdout, &asn_DEF_RANfunctionID, (void *)ranfunctionid); - break; - - case (ProtocolIE_ID_id_RICsubscription): - ricsubscription = &memb_ptr->value.choice.RICsubscription; - xer_fprint(stdout, &asn_DEF_RICsubscription, (void *)ricsubscription); - break; - } - } -} - -int main(int argc, char* argv[]){ - LOG_I("Start RIC Simulator - Performance Test"); - - options_t ops = read_input_options(argc, argv); - int client_fd = sctp_start_client(ops.server_ip, ops.server_port); - - //1. Send ENDCX2Setup - E2AP_PDU_t* pdu_setup = e2ap_xml_to_pdu("E2AP_ENDCX2SetupRequest.xml"); - // e2ap_asn1c_print_pdu(pdu_setup); - encode_and_send_sctp_data(pdu_setup, client_fd); - LOG_I("[SCTP] Sent ENDC X2 SETUP REQUEST"); - - //2. Receive ENDCX2SetupResponse - wait_for_sctp_data(client_fd); - - //3. Send RICSubscriptionRequest - E2AP_PDU_t* pdu_sub = e2ap_xml_to_pdu("E2AP_RICsubscriptionRequest_Ashwin.xml"); - e2ap_asn1c_print_pdu(pdu_sub); - encode_and_send_sctp_data(pdu_sub, client_fd); - LOG_I("[SCTP] Sent RIC SUBSCRIPTION REQUEST"); - - - //4. Receive RIC SUBSCRIPT RESPONSE - int count = 0; - - while(1) - { - usleep(1000); //sleep for one ms - - sctp_buffer_t recv_buf; - - int res_seq; - - if(sctp_receive_data(client_fd, recv_buf) > 0) - { - LOG_I("[SCTP] Received new data of size %d", recv_buf.len); - // e2ap_handle_sctp_data(client_fd, recv_buf); - - E2AP_PDU_t* res_pdu = new E2AP_PDU_t(); - - e2ap_asn1c_decode_pdu(res_pdu, recv_buf.buffer, recv_buf.len); - - int procedureCode = e2ap_asn1c_get_procedureCode(res_pdu); - int index = (int)res_pdu->present; - - if(index == E2AP_PDU_PR_successfulOutcome && \ - procedureCode == ProcedureCode_id_ricSubscription) - { - res_seq =subresponse_get_sequenceNum(res_pdu); - count++; - - LOG_I("Received RIC SUBSCRIPTION RESPONSE, seq = %d, totalCount = %d",\ - res_seq, count); - - //Put res_seq in new subscription request - E2AP_PDU_t* req_pdu = e2ap_xml_to_pdu("E2AP_RICsubscriptionRequest.xml"); - subrequest_set_sequenceNum(req_pdu, res_seq); - // e2ap_asn1c_print_pdu(req_pdu); - - encode_and_send_sctp_data(req_pdu, client_fd); - LOG_I("Send new SUBSCRIPT REQUEST, seq = %d", res_seq); - } - - } - } - - - // E2AP_PDU_t* res_pdu = e2ap_xml_to_pdu("E2AP_RICsubscriptionResponse.xml"); - // - // //Extract subscription response sequence number - // int res_seq = subresponse_get_sequenceNum(res_pdu); - // LOG_I("Subscription Response SeqNo = %d", res_seq); - // - // //Put responseSeq in new subscription request - // E2AP_PDU_t* req_pdu = e2ap_xml_to_pdu("E2AP_RICsubscriptionRequest.xml"); - // - // subrequest_set_sequenceNum(req_pdu, res_seq); - - // e2ap_asn1c_print_pdu(req_pdu); - - return 0; -} diff --git a/e2sim/previous/e2apv1sim/test/WLG/ric_wlg.cpp b/e2sim/previous/e2apv1sim/test/WLG/ric_wlg.cpp deleted file mode 100644 index 309153d..0000000 --- a/e2sim/previous/e2apv1sim/test/WLG/ric_wlg.cpp +++ /dev/null @@ -1,61 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -#include -#include -#include - -#include "e2sim_sctp.hpp" -#include "e2ap_message_handler.hpp" - -extern "C" { - #include "e2sim_defs.h" - #include "E2AP-PDU.h" - #include "e2ap_asn1c_codec.h" - - #include "ProtocolIE-Field.h" -} - -using namespace std; - - -int main(int argc, char* argv[]){ - LOG_I("Start RIC WLG"); - - options_t ops = read_input_options(argc, argv); - - int server_fd = sctp_start_server(ops.server_ip, ops.server_port); - int client_fd = sctp_accept_connection(ops.server_ip, server_fd); - - sctp_buffer_t recv_buf; - - LOG_I("[SCTP] Waiting for SCTP data"); - - while(1) //constantly looking for data on SCTP interface - { - if(sctp_receive_data(client_fd, recv_buf) <= 0) - break; - - LOG_I("[SCTP] Received new data of size %d", recv_buf.len); - - e2ap_handle_sctp_data(client_fd, recv_buf); - } - - return 0; -} diff --git a/e2sim/previous/e2apv1sim/test/X2/CMakeLists.txt b/e2sim/previous/e2apv1sim/test/X2/CMakeLists.txt deleted file mode 100644 index b257505..0000000 --- a/e2sim/previous/e2apv1sim/test/X2/CMakeLists.txt +++ /dev/null @@ -1,49 +0,0 @@ -#/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -#******************************************************************************/ - -cmake_minimum_required(VERSION 3.5.1) -set(CMAKE_CXX_COMPILER "/usr/bin/g++") -set(CMAKE_CXX_STANDARD 14) - -add_definitions("-D ASN_DISABLE_OER_SUPPORT") - -project(x2term) - -set (E2SIM_ROOT ../../) - -include_directories("${E2SIM_ROOT}/src") -include_directories("${E2SIM_ROOT}/src/DEF") -include_directories("${E2SIM_ROOT}/src/SCTP/") -include_directories("${E2SIM_ROOT}/src/E2AP") -include_directories("${E2SIM_ROOT}/src/E2AP/E2SM") -include_directories("${E2SIM_ROOT}/ASN1c") - -find_library( SCTP_STD_LIB sctp ) #needed for sctp_sendmsg - -#---------------------------------------------- -file(GLOB X2TERM_SOURCES - "${E2SIM_ROOT}/test/X2/x2term.cpp" - "${E2SIM_ROOT}/src/DEF/*.cpp" - "${E2SIM_ROOT}/src/SCTP/*.cpp" - "${E2SIM_ROOT}/src/E2AP/*.c" - "${E2SIM_ROOT}/src/E2AP/*.cpp" - "${E2SIM_ROOT}/ASN1c/*.c" - ) -add_executable(x2term ${X2TERM_SOURCES}) -target_link_libraries( x2term ${SCTP_STD_LIB} ) diff --git a/e2sim/previous/e2apv1sim/test/X2/x2agent.cpp b/e2sim/previous/e2apv1sim/test/X2/x2agent.cpp deleted file mode 100644 index db279a3..0000000 --- a/e2sim/previous/e2apv1sim/test/X2/x2agent.cpp +++ /dev/null @@ -1,41 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -#include -#include -#include - -#include "e2sim_defs.h" -#include "asn_x2ap.hpp" -#include "e2sim_sctp.hpp" - -using namespace std; - -int main(int argc, char* argv[]){ - - LOG_I("X2 Agent. Version %s", VERSION); - - options_t ops = read_input_options(argc, argv); - - int server_fd = sctp_start_server(ops.server_ip, ops.server_port); - int client_fd = sctp_accept_connection(server_fd); - - - return 0; -} diff --git a/e2sim/previous/e2apv1sim/test/X2/x2term.cpp b/e2sim/previous/e2apv1sim/test/X2/x2term.cpp deleted file mode 100644 index e325827..0000000 --- a/e2sim/previous/e2apv1sim/test/X2/x2term.cpp +++ /dev/null @@ -1,73 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -#include -#include -#include - -#include "e2sim_sctp.hpp" -#include "e2ap_message_handler.hpp" - -extern "C" { - #include "e2sim_defs.h" - #include "E2AP-PDU.h" - #include "e2ap_asn1c_codec.h" -} - -using namespace std; - -void encode_and_send_sctp_data(E2AP_PDU_t* pdu, int client_fd) -{ - uint8_t *buf; - sctp_buffer_t data; - - data.len = e2ap_asn1c_encode_pdu(pdu, &buf); - memcpy(data.buffer, buf, min(data.len, MAX_SCTP_BUFFER)); - - // sctp_send_data(client_fd, data); - sctp_send_data_X2AP(client_fd, data); -} - -void wait_for_sctp_data(int client_fd) -{ - sctp_buffer_t recv_buf; - if(sctp_receive_data(client_fd, recv_buf) > 0) - { - LOG_I("[SCTP] Received new data of size %d", recv_buf.len); - e2ap_handle_sctp_data(client_fd, recv_buf); - } -} - - -int main(int argc, char* argv[]){ - LOG_I("Start RIC Simulator"); - - options_t ops = read_input_options(argc, argv); - int client_fd = sctp_start_client(ops.server_ip, ops.server_port); - - //Send X2 Setup Request - E2AP_PDU_t* pdu_setup = e2ap_xml_to_pdu("E2AP_X2SetupRequest.xml"); - e2ap_asn1c_print_pdu(pdu_setup); - encode_and_send_sctp_data(pdu_setup, client_fd); - - //wait to receive X2SetupResponse - while(1){ - wait_for_sctp_data(client_fd); - } -} diff --git a/e2sim/previous/e2apv1sim/test/X2/x2termination_test.cpp b/e2sim/previous/e2apv1sim/test/X2/x2termination_test.cpp deleted file mode 100644 index 1953ce6..0000000 --- a/e2sim/previous/e2apv1sim/test/X2/x2termination_test.cpp +++ /dev/null @@ -1,119 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -#include -#include -#include - -#include "e2sim_defs.h" -#include "asn_x2ap.hpp" -#include "e2sim_sctp.hpp" -#include "x2ap_message_handler.hpp" -#include "x2ap_asn_codec.hpp" - -using namespace std; - -void test_X2Setup(int &client_fd) -{ - //Create X2SetupRequest message - x2ap_pdu_t* pdu = new_x2ap_pdu(); - eNB_config cfg; - - x2ap_create_X2SetupRequest(pdu, cfg); - x2ap_print_pdu(pdu); - - //Encode into buffer - sctp_buffer_t data; - x2ap_encode_pdu(pdu, data.buffer, sizeof(data.buffer), data.len); - - //Send to sctp - sctp_send_data(client_fd, data); - LOG_I("[SCTP] Sent X2 SETUP REQUEST"); - - //expect X2 SETUP RESPONSE - sctp_buffer_t recv_buf; - if(sctp_receive_data(client_fd, recv_buf) > 0) - { - LOG_I("[SCTP] Received new data of size %d", recv_buf.len); - x2ap_handle_sctp_data(client_fd, recv_buf); - } - - //Send again, expect X2 SETUP FAILURE - sctp_send_data(client_fd, data); - LOG_I("[SCTP] Sent X2 SETUP REQUEST"); - - if(sctp_receive_data(client_fd, recv_buf) > 0) - { - LOG_I("[SCTP] Received new data of size %d", recv_buf.len); - x2ap_handle_sctp_data(client_fd, recv_buf); - } - -} - -void test_ENDCX2Setup(int &client_fd) -{ - //Create ENDCX2SetupRequest message - x2ap_pdu_t* pdu = new_x2ap_pdu(); - eNB_config cfg; - - x2ap_create_ENDCX2SetupRequest(pdu, cfg); - x2ap_print_pdu(pdu); - - //Encode into buffer - sctp_buffer_t data; - x2ap_encode_pdu(pdu, data.buffer, sizeof(data.buffer), data.len); - - //Send to sctp - sctp_send_data(client_fd, data); - LOG_I("[SCTP] Sent ENDC X2 SETUP REQUEST"); - - //expect ENDC X2 SETUP RESPONSE - sctp_buffer_t recv_buf; - if(sctp_receive_data(client_fd, recv_buf) > 0) - { - LOG_I("[SCTP] Received new data of size %d", recv_buf.len); - x2ap_handle_sctp_data(client_fd, recv_buf); - } - - //Send again, expect ENDC X2 SETUP FAILURE - sctp_send_data(client_fd, data); - LOG_I("[SCTP] Sent ENDC X2 SETUP REQUEST"); - - if(sctp_receive_data(client_fd, recv_buf) > 0) - { - LOG_I("[SCTP] Received new data of size %d", recv_buf.len); - x2ap_handle_sctp_data(client_fd, recv_buf); - } - -} - -int main(int argc, char* argv[]){ - - LOG_I("X2 Termination Test"); - - options_t ops = read_input_options(argc, argv); - - int client_fd = sctp_start_client(ops.server_ip, ops.server_port); - - test_X2Setup(client_fd); - // test_ENDCX2Setup(client_fd); - - - return 0; -} diff --git a/e2sim/previous/e2apv1sim/test/rmr_interface/README b/e2sim/previous/e2apv1sim/test/rmr_interface/README deleted file mode 100644 index 9e5a197..0000000 --- a/e2sim/previous/e2apv1sim/test/rmr_interface/README +++ /dev/null @@ -1,13 +0,0 @@ -This is just a basic version of the README that the author of the E2 simulator can augment as he/she sees fit. - -Building rmr - -- Call the rmr_install.sh - - -# Running the sender and receiver - -- Create a route generate (.rt) file that is common to both the sender and receiver and place it in $HOME/global_rmr_files/global_rmr_routes.rt -- Build the receiver in the /tests/pendulum_xapp folder by invoking build_recvr.sh. Run it using bash run_receiver -- Build the sender in the /tests/sender folder by invoking build_sender.sh. Run it using bash run_sender. -- You can see packets being exchanged. diff --git a/e2sim/previous/e2apv1sim/test/rmr_interface/rmr_install.sh b/e2sim/previous/e2apv1sim/test/rmr_interface/rmr_install.sh deleted file mode 100644 index 786a07e..0000000 --- a/e2sim/previous/e2apv1sim/test/rmr_interface/rmr_install.sh +++ /dev/null @@ -1,28 +0,0 @@ -#!/bin/bash -eu -# -# -# Copyright 2019 AT&T Intellectual Property -# Copyright 2019 Nokia -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - - -#git clone https://gerrit.oran-osc.org/r/ric-plt/lib/rmr && (cd rmr && curl -kLo `git rev-parse --git-dir`/hooks/commit-msg https://gerrit.oran-osc.org/r/tools/hooks/commit-msg; chmod +x `git rev-parse --git-dir`/hooks/commit-msg && git checkout 6735f136906ce2 ) - -cd rmr/ -mkdir $HOME/usr -mkdir .build -cd .build -cmake .. -DCMAKE_INSTALL_PREFIX=$HOME/usr -make install diff --git a/e2sim/previous/e2apv1sim/test/rmr_interface/tests/receiver/build_and_run_recvr.sh b/e2sim/previous/e2apv1sim/test/rmr_interface/tests/receiver/build_and_run_recvr.sh deleted file mode 100755 index 602046f..0000000 --- a/e2sim/previous/e2apv1sim/test/rmr_interface/tests/receiver/build_and_run_recvr.sh +++ /dev/null @@ -1,30 +0,0 @@ -#!/bin/bash -eu -# -# -# Copyright 2019 AT&T Intellectual Property -# Copyright 2019 Nokia -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -export C_INCLUDE_PATH=$HOME/usr/include -export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/usr/lib -export RMR_SEED_RT=$HOME/global_rmr_files/global_rmr_routes.rt -gcc rmr_rcvr.c -g -o rmr_rcvr -L $HOME/usr/lib -lrmr_nng -lnng -lpthread -lm - -export PENDULUM_XAPP_RMR_RCV_PORT=5560 -export DEMO_SENDER_PTO=1 # poll timeout listening for replies - -export PRINT_FREQ=10000 #frequency at which test stats will be printed - -RMR_RCV_ACK=1 ./rmr_rcvr $PRINT_FREQ; # receiver that will ack every sender message diff --git a/e2sim/previous/e2apv1sim/test/rmr_interface/tests/receiver/rmr_rcvr.c b/e2sim/previous/e2apv1sim/test/rmr_interface/tests/receiver/rmr_rcvr.c deleted file mode 100644 index 2d8e7fd..0000000 --- a/e2sim/previous/e2apv1sim/test/rmr_interface/tests/receiver/rmr_rcvr.c +++ /dev/null @@ -1,163 +0,0 @@ -/* - * - * Copyright 2019 AT&T Intellectual Property - * Copyright 2019 Nokia - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -// :vim ts=4 sw=4 noet: -/* - Mnemonic: rmr_rcvr2.c - Abstract: Very simple test listener built on RMr libraries. It does nothing - but return the message it recevied back to the sender. - - Define these environment variables to have some control: - RMR_SEED_RT -- path to the static routing table - RMR_RTG_SVC -- host:port of the route table generator - - One command line parm is accepted: stats frequency. This is a number, n, - which causes stats to be generated after every n messages. If set to 0 - each message is written when received and no stats (msg rate) is generated. - - Date: 11 February 2018 - Author: E. Scott Daniels - - Mods: 18 Mar 2019 -- simplified for demo base. -*/ - -#include -#include -#include -#include -#include - -#include - -typedef struct { - int32_t mtype; // message type ("long" network integer) - int32_t plen; // payload length - unsigned char xid[RMR_MAX_XID]; // space for user transaction id or somesuch - unsigned char sid[RMR_MAX_SID]; // sender ID for return to sender needs - unsigned char src[RMR_MAX_SRC]; // name of the sender (source) - struct timespec ts; // timestamp ??? -} mhdr_t; - - -int main( int argc, char** argv ) { - void* mrc; // msg router context - rmr_mbuf_t* msg = NULL; // message received - int i; - char* listen_port; - char* tok; - int must_ack = 1; // flag -- if set we rts all messages - mhdr_t* hdr; - int last_seq = 0; // sequence number from last message - int this_seq; // sequence number on this message - int count = 0; // count of msg since last status - long long tcount = 0; // total count of messages - time_t ts; - time_t lts; - int stat_freq = 20000; // write stats after reciving this many messages - int first_seq = -1; // first sequence number we got to report total received - int max_rt = 1000; // max times we'll retry an ack - - if( (tok = getenv( "RMR_RCV_ACK" )) != NULL ) { - must_ack = atoi( tok ); - } - - if( (listen_port = getenv( "PENDULUM_XAPP_RMR_RCV_PORT" )) == NULL ) { - listen_port = "4560"; - } - - if( argc > 1 ) { - stat_freq = atoi( argv[1] ); - } - fprintf( stderr, " stats will be reported every %d messages\n", stat_freq ); - - mrc = rmr_init( listen_port, RMR_MAX_RCV_BYTES, RMRFL_NONE ); // start your engines! - if( mrc == NULL ) { - fprintf( stderr, " ABORT: unable to initialise RMr\n" ); - exit( 1 ); - } - - while( ! rmr_ready( mrc ) ) { - fprintf( stderr, " waiting for RMr to show ready\n" ); - sleep( 1 ); - } - fprintf( stderr, " RMr now shows ready\n" ); - - lts = time( NULL ); - fprintf( stderr, " listening on %s acking %s\n", listen_port, must_ack != 0 ? "on" : "off" ); - - //rmr_set_stimeout( mrc, 50 ); - while( 1 ) { - sleep (2 ); - msg = rmr_rcv_msg( mrc, msg ); // block until one arrives - if( msg == NULL ) { - continue; // shouldn't happen, but don't crash if we get nothing - } - if( msg->mtype < 0 || msg->state != RMR_OK ) { - fprintf( stderr, "[WRN] bad msg: state=%d errno=%d\n", msg->state, errno ); - continue; // just loop to receive another - } - - if( stat_freq == 0 ) { // mechanism to dump all received messages for quick testing - fprintf( stdout, " msg received: type = %d len = %d (%s)\n", msg->mtype, msg->len, msg->payload ); // assume a nil term string in payload - } - - count++; // messages received for stats output - tcount++; - - //if( stat_freq >= 1000 ) { - if(1) { - //if( (count % stat_freq) == 0 ) { - if(1) { - ts = time( NULL ); - if( ts - lts ) { - - fprintf( stderr, " %7lld received %5lld msg/s over the last %3lld seconds mrt=%d, with content=%s\n", - (long long) last_seq - first_seq, (long long) (count / (ts-lts)), (long long) ts-lts, max_rt,msg->payload ); - lts = ts; - count = 0; - } - } - } - - if( must_ack ) { // send back a response - //fprintf( stdout, " msg: type = %d len = %d; acking\n", msg->mtype, msg->len ); - //msg->len = snprintf( msg->payload, 1024, "bar %lld", tcount ); // ack with bar and counter - msg->len = snprintf( msg->payload, 1024, "Reply hello back to Arduino!\n"); - // msg->len = snprintf( msg->payload, 1024, "OK\n"); - - - //msg->mtype = 999; //only to be used if rts is not possible - - //msg = rmr_send_msg (mrc, msg); //only to be used if rts is not possible - - msg = rmr_rts_msg( mrc, msg ); // this is a retur to sender; preferred - //if( (msg = rmr_send_msg( mrc, msg )) != NULL ) { // this is a routed send; not preferred, but possible - if( (msg = rmr_rts_msg( mrc, msg )) != NULL ) { - //----- checking too many times here has been problematic and causes what appears to be race condidtions in NNG threads; for now max_rt should be small - max_rt = 2; - while( max_rt > 0 && msg->state != RMR_OK && errno == EAGAIN ) { // NNG likes to refuse sends, just keep trying on eagain - max_rt--; - rmr_rts_msg( mrc, msg ); - //rmr_send_msg (mrc, msg); - } - } - } - - } -} diff --git a/e2sim/previous/e2apv1sim/test/rmr_interface/tests/sender/build_and_run_sender.sh b/e2sim/previous/e2apv1sim/test/rmr_interface/tests/sender/build_and_run_sender.sh deleted file mode 100755 index c4eb8fc..0000000 --- a/e2sim/previous/e2apv1sim/test/rmr_interface/tests/sender/build_and_run_sender.sh +++ /dev/null @@ -1,29 +0,0 @@ -#!/bin/bash -eu -# -# -# Copyright 2019 AT&T Intellectual Property -# Copyright 2019 Nokia -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -export C_INCLUDE_PATH=$HOME/usr/include -export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/usr/lib -export RMR_SEED_RT=$HOME/global_rmr_files/global_rmr_routes.rt -gcc rmr_sender.c -g -o rmr_sender -L $HOME/usr/lib -lrmr_nng -lnng -lpthread -lm - -export DUMMY_SENDER_RMR_RCV_PORT=38086 -export DEMO_SENDER_PTO=1 # poll timeout listening for replies -export DEMO_MAX_PAYLOAD_BYTES=240 # max_size of payload - -./rmr_sender; diff --git a/e2sim/previous/e2apv1sim/test/rmr_interface/tests/sender/rmr_sender.c b/e2sim/previous/e2apv1sim/test/rmr_interface/tests/sender/rmr_sender.c deleted file mode 100644 index 724b0d1..0000000 --- a/e2sim/previous/e2apv1sim/test/rmr_interface/tests/sender/rmr_sender.c +++ /dev/null @@ -1,96 +0,0 @@ -/* - * - * Copyright 2019 AT&T Intellectual Property - * Copyright 2019 Nokia - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - - -// :vim ts=4 sw=4 noet: - -/* - Mnemonic: rmr_sender2.c - Abstract: Very simple test sender that polls and deals with responses - in between sends (from a single process). - - Date: 18 February 2018 - Author: E. Scott Daniels - - Modified: 18 Mar 2019 - changes to support demo -*/ - -#include -#include -#include -#include -#include -#include -#include -#include -#include "rmr_wrapper.h" - - -void usage( char* argv0 ) { - fprintf( stderr, "usage: %s [mtype-max]\n", argv0 ); - fprintf( stderr, "Sender will send messages with rotating msg types from 0 through mtype-max (if supplied)\n" ); - fprintf( stderr, "if not supplied, only mtype 0 is sent\n" ); - fprintf( stderr, "The default listen port for return messages is 43086; this can be changed by setting DUMMY_SENDER_RMR_RCV_PORT in the environment.\n" ); - fprintf( stderr, "The sender will send forever unless DEMO_SENDER_MAX is set in the environment which causes termination after max messages.\n" ); - fprintf( stderr, "The sender will poll for received messages after each send. The amount of time waited is controlled with DEMO_SENDER_PTO (ms) in the env. Use 0 for non-blocking poll.\n" ); -} - -int main( int argc, char** argv ) { - struct rmr_context *rmr_c; //obtain our enhanced rmr_context - int mtype = 0; // we can loop through several message types - long count = 0; - char* lport = "43086"; // default listen port - long rcount = 0; // number of acks received - - if( (eparm = getenv( "DUMMY_SENDER_RMR_RCV_PORT" )) != NULL ) { - lport = strdup( eparm ); - } - - rmr_c = rmr_init_wrapper(lport); - - while( ! rmr_ready( rmr_c->mrc ) ) { - fprintf( stderr, " waiting for RMr to indicate ready\n" ); - sleep( 1 ); - } - fprintf( stderr, "[OK] initialisation complete\n" ); - - while( 1 ) { - usleep( 10 ); // simulate some work being done - char* message = "foo 111"; - - if(rmr_send_wrapper (rmr_c, mtype, message ) == 1) { - //message successfully received in the receive buffer - char reply[1024]; - strcpy(reply,rmr_c->rbuf->payload); - fprintf( stderr, "Acknowledgment received with content:%s\n",rmr_c->rbuf->payload); - rcount++; - } - count++; - - if( (count % 5000) == 0 ) { - fprintf( stdout, "[INFO] total sent: %ld total received: %ld drops=%ld\n", count, rcount, count - rcount ); - } - - } - - fprintf( stderr, "[INFO] sender is terminating having sent %ld messages\n", count ); - rmr_close_wrapper(rmr_c); - - return 0; -} diff --git a/e2sim/previous/e2apv1sim/test/rmr_interface/tests/sender/rmr_wrapper.h b/e2sim/previous/e2apv1sim/test/rmr_interface/tests/sender/rmr_wrapper.h deleted file mode 100644 index 446d20d..0000000 --- a/e2sim/previous/e2apv1sim/test/rmr_interface/tests/sender/rmr_wrapper.h +++ /dev/null @@ -1,142 +0,0 @@ -/* - * - * Copyright 2019 AT&T Intellectual Property - * Copyright 2019 Nokia - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -int epoll_to = 1;// global default epoll timout -- 1ms -char* eparm; // generic env pointer - -struct rmr_context { - void* mrc; - int rcv_fd; // pollable fd - struct epoll_event epe; // event definition for event to listen to - struct epoll_event events[10]; // wait on 10 possible events - int ep_fd; - int max_payload_size; // ++SCOTT - rmr_mbuf_t* sbuf; // send buffer - rmr_mbuf_t* rbuf; // received buffer -}; - - -struct rmr_context * rmr_init_wrapper(char* lport){ - - struct rmr_context *rmr_c = malloc(sizeof (struct rmr_context)); - fprintf( stderr, "[INFO] glistening for replies on %s\n", lport ); - - - rmr_c->mrc = rmr_init(lport, RMR_MAX_RCV_BYTES, RMRFL_NONE ); // setup RMr and get a context (rmr_c.mrc) - rmr_c->ep_fd=-1; - - //polling related initializations - rmr_c->rcv_fd = rmr_get_rcvfd( rmr_c->mrc );// get the fd to poll for messages received - if( rmr_c->rcv_fd < 0 ) { - fprintf( stderr, "[FAIL] unable to set up polling fd\n" ); - exit( 1 ); - } - - if( (rmr_c->ep_fd = epoll_create1( 0 )) < 0 ) { - fprintf( stderr, "[FAIL] unable to create epoll fd: %d\n", errno ); - exit( 1 ); - } - rmr_c->epe.events = EPOLLIN; - rmr_c->epe.data.fd = rmr_c->rcv_fd; - - if( epoll_ctl( rmr_c->ep_fd, EPOLL_CTL_ADD, rmr_c->rcv_fd, &rmr_c->epe ) != 0 ) { - fprintf( stderr, "[FAIL] epoll_ctl status not 0 : %s\n", strerror( errno ) ); - exit( 1 ); - } - //end of polling related initializations - - //++SCOTT------ next lines until !!SCOTT - rmr_c->max_payload_size = 240; //default - if( (eparm = getenv( "DEMO_MAX_PAYLOAD_BYTES" )) != NULL ) { - rmr_c->max_payload_size = atoi(eparm); // override with env - } - //!!SCOTT - - //~~SCOTT next line - rmr_c->sbuf = rmr_alloc_msg( rmr_c->mrc, rmr_c->max_payload_size ); // allocate largest payload to send - rmr_c->rbuf = NULL; - - return rmr_c; -} - -void rmr_send_wrapper (struct rmr_context *rmr_c, int mtype, char* message) { - //--SCOTT int max_payload_size = 240; //default - //--SCOTT if( (eparm = getenv( "DEMO_MAX_PAYLOAD_BYTES" )) != NULL ) { - //--SCOTT max_payload_size = atoi(eparm); - //--SCOTT } - - //~~SCOTT next line - snprintf( rmr_c->sbuf->payload, rmr_c->max_payload_size, "%s", message); // simple send message -- replace with real content - - rmr_c->sbuf->mtype = mtype; // fill in message meta data - rmr_c->sbuf->len = strlen( rmr_c->sbuf->payload ) + 1; // actual length of payload (count the nil end of string) - rmr_c->sbuf->state = 0; - - //retry send for a few times before giving up - long natter = 0; // natter on for errors only once in a while - if( (rmr_c->sbuf = rmr_send_msg( rmr_c->mrc, rmr_c->sbuf )) != NULL ) {// unlikely, but might get a null pointer back if NNG really is buggered - if( rmr_c->sbuf->state != RMR_OK ) { - if( errno == EAGAIN ) { - while( rmr_c->sbuf->state != RMR_OK && errno == EAGAIN ) {// NNG likes to refuse sends, just keep trying on eagain - rmr_send_msg( rmr_c->mrc, rmr_c->sbuf ); - } - } else {// most likely connection refused, don't natter on - if( time( NULL ) > natter ) { - fprintf( stderr, "[WARN] send failed, pausing (%s)\n", strerror( errno ) ); - natter = time( NULL ) + 2; - } - sleep( 1 ); - } - } - } else { - if( time( NULL ) > natter ) { - fprintf( stderr, "[WARN] send failed, pausing (%s)\n", strerror( errno ) ); - natter = time( NULL ) + 2; - } - sleep( 1 ); - } - -} - -int rmr_poll_for_message(struct rmr_context *rmr_c){ - int nready; - int i; - int return_type =0; - //start polling the channel to read the acknowledgment - //~~SCOTT next line - - nready = epoll_wait( rmr_c->ep_fd, rmr_c->events, 10, epoll_to ); // wait up to epoll_to ms for a response - for( i = 0; i < nready && i < 10; i++ ) { // loop through to find what is ready - if( rmr_c->events[i].data.fd == rmr_c->rcv_fd ) { // RMr has something - errno = 0; - rmr_c->rbuf = rmr_rcv_msg( rmr_c->mrc, rmr_c->rbuf ); // something ready; this should not block - if( rmr_c->rbuf ) { - // fprintf( stderr, " acknowledgment received:%s\n",rmr_c->rbuf->payload); - return_type = 1; //the message has been acknowledged - } - } - } - return return_type; -} - -void rmr_close_wrapper (struct rmr_context *rmr_c){ - - rmr_close( rmr_c->mrc ); - free(rmr_c); -} diff --git a/e2sim/previous/e2apv1sim/tools/asn_defs/generate_e2ap_e2sm_codes b/e2sim/previous/e2apv1sim/tools/asn_defs/generate_e2ap_e2sm_codes deleted file mode 100755 index 87ced95..0000000 --- a/e2sim/previous/e2apv1sim/tools/asn_defs/generate_e2ap_e2sm_codes +++ /dev/null @@ -1,39 +0,0 @@ -#!/bin/bash -#/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -#******************************************************************************/ - -E2AP_asn="e2ap-v031.asn" -E2SM_asn="e2sm-gNB-X2-release-1-v041.asn" -X2AP_asn="x2ap-no-desc-15-04.asn" - -GEN_DIR=../../src/ASN1c/ - -rm -f $GEN_DIR/*.c $GEN_DIR/*.h - -asn1c -pdu=all -fcompound-names -gen-PER -no-gen-OER -no-gen-example \ - -fno-include-deps -D $GEN_DIR $E2AP_asn $X2AP_asn \ - |& egrep -v "^Copied|^Compiled" | sort -u - -asn1c -pdu=all -fcompound-names -gen-PER -no-gen-OER -no-gen-example \ - -fno-include-deps -D $GEN_DIR $E2SM_asn $X2AP_asn \ - |& egrep -v "^Copied|^Compiled" | sort -u - -echo "ASN1 C codes generated at $GEN_DIR" - -# asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER /tmp/e2ap-v031.asn /tmp/x2ap-no-desc-15-04.asn diff --git a/e2sim/previous/e2apv1sim/tools/build_helper.bash b/e2sim/previous/e2apv1sim/tools/build_helper.bash deleted file mode 100644 index 1759621..0000000 --- a/e2sim/previous/e2apv1sim/tools/build_helper.bash +++ /dev/null @@ -1,93 +0,0 @@ -#/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -#******************************************************************************/ - -####################################### -# Helper Func -###################################### - -black='\E[30m' -red='\E[31m' -green='\E[32m' -yellow='\E[33m' -blue='\E[34m' -magenta='\E[35m' -cyan='\E[36m' -white='\E[37m' -reset_color='\E[00m' - -cecho() # Color-echo. arg1 = message, arg2 = color -{ - local default_msg="No Message." - message=${1:-$default_msg} - color=${2:-$green} - echo -e -n "$color$message$reset_color" - echo - return -} - -echo_error() { - local my_string="" - until [ -z "$1" ] - do - my_string="$my_string$1" - shift - done - cecho "$my_string" $red -} - -echo_fatal() { - local my_string="" - until [ -z "$1" ] - do - my_string="$my_string$1" - shift - done - echo_error "$my_string" - exit -1 -} - -echo_warning() { - local my_string="" - until [ -z "$1" ] - do - my_string="$my_string$1" - shift - done - cecho "$my_string" $yellow -} - -echo_success() { - local my_string="" - until [ -z "$1" ] - do - my_string="$my_string$1" - shift - done - cecho "$my_string" $green -} - -echo_info() { - local my_string="" - until [ -z "$1" ] - do - my_string="$my_string$1" - shift - done - cecho "$my_string" $blue -} diff --git a/e2sim/previous/e2apv1sim/tools/install_asn1c b/e2sim/previous/e2apv1sim/tools/install_asn1c deleted file mode 100755 index 7d1391f..0000000 --- a/e2sim/previous/e2apv1sim/tools/install_asn1c +++ /dev/null @@ -1,31 +0,0 @@ -#!/bin/bash -#/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -#******************************************************************************/ - -echo "Will install asn1c" -sudo rm -rf asn1c -git clone https://gerrit.o-ran-sc.org/r/com/asn1c.git -cd asn1c/ -autoreconf -iv -./configure -cd examples -chmod u+x crfc2asn1.pl -cd .. -make -sudo make install diff --git a/e2sim/previous/e2apv1sim/tools/install_dependencies b/e2sim/previous/e2apv1sim/tools/install_dependencies deleted file mode 100755 index c5b3d7b..0000000 --- a/e2sim/previous/e2apv1sim/tools/install_dependencies +++ /dev/null @@ -1,38 +0,0 @@ -#!/bin/bash -#/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -#******************************************************************************/ - -sudo apt-get update \ - && sudo apt-get install -y \ - build-essential \ - git \ - cmake \ - libsctp-dev \ - lksctp-tools \ - autoconf \ - automake \ - libtool \ - bison \ - flex \ - libboost-all-dev \ - iputils-ping \ - net-tools \ - nano \ - vim \ - && sudo apt-get clean diff --git a/e2sim/previous/e2apv1sim/ueMeasReport.txt b/e2sim/previous/e2apv1sim/ueMeasReport.txt deleted file mode 100644 index 32bf4d4..0000000 --- a/e2sim/previous/e2apv1sim/ueMeasReport.txt +++ /dev/null @@ -1,65 +0,0 @@ -{ - "ueMeasReport": { - "du-id": 1000, - "ueMeasReportList": [ - { - "measTimeStampRf": "2020-04-09 14:33:33,559", - "nrCellIdentity": 0, - "servingCellRfReport": { - "rsrp": 10, - "rsrq": 0, - "rssinr": 0 - }, - "neighbourCellList": [ - { - "nbCellIdentity": 1, - "nbCellRfReport": { - "rsrp": 10, - "rsrq": 0, - "rssinr": 0 - } - }, - { - "nbCellIdentity": 2, - "nbCellRfReport": { - "rsrp": 10, - "rsrq": 0, - "rssinr": 0 - } - } - ] - - }, - - { - "measTimeStampRf": "2020-04-09 14:33:33,559", - "nrCellIdentity": 1, - "servingCellRfReport": { - "rsrp": 10, - "rsrq": 0, - "rssinr": 0 - }, - "neighbourCellList": [ - { - "nbCellIdentity": 0, - "nbCellRfReport": { - "rsrp": 10, - "rsrq": 0, - "rssinr": 0 - } - }, - { - "nbCellIdentity": 2, - "nbCellRfReport": { - "rsrp": 10, - "rsrq": 0, - "rssinr": 0 - } - } - ] - - } - ] - } -} - diff --git a/e2sim/previous/e2sim.cpp b/e2sim/previous/e2sim.cpp deleted file mode 100644 index e60a13f..0000000 --- a/e2sim/previous/e2sim.cpp +++ /dev/null @@ -1,56 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -#include -#include -#include -#include - - -#include "e2sim_defs.h" -#include "e2sim_sctp.hpp" -#include "e2ap_message_handler.hpp" - -using namespace std; - -int main(int argc, char* argv[]){ - LOG_I("Start E2 Agent (E2 Simulator)"); - - options_t ops = read_input_options(argc, argv); - - //E2 Agent will automatically restart upon sctp disconnection - int server_fd = sctp_start_server(ops.server_ip, ops.server_port); - int client_fd = sctp_accept_connection(ops.server_ip, server_fd); - - sctp_buffer_t recv_buf; - - LOG_I("[SCTP] Waiting for SCTP data"); - - while(1) //constantly looking for data on SCTP interface - { - if(sctp_receive_data(client_fd, recv_buf) <= 0) - break; - - LOG_I("[SCTP] Received new data of size %d", recv_buf.len); - - e2ap_handle_sctp_data(client_fd, recv_buf); - } - - return 0; -} diff --git a/e2sim/previous/helm/README.md b/e2sim/previous/helm/README.md deleted file mode 100644 index dfff99a..0000000 --- a/e2sim/previous/helm/README.md +++ /dev/null @@ -1,22 +0,0 @@ -################################################################################ -# Copyright (c) 2019 AT&T Intellectual Property. # -# Copyright (c) 2019 Nokia. # -# # -# Licensed under the Apache License, Version 2.0 (the "License"); # -# you may not use this file except in compliance with the License. # -# You may obtain a copy of the License at # -# # -# http://www.apache.org/licenses/LICENSE-2.0 # -# # -# Unless required by applicable law or agreed to in writing, software # -# distributed under the License is distributed on an "AS IS" BASIS, # -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # -# See the License for the specific language governing permissions and # -# limitations under the License. # -################################################################################ - - -# -# the test repo needs to be on the same parent path as the dep repo -# simply run e2sim_install.sh from this directory -# diff --git a/e2sim/previous/helm/e2sim/Chart.yaml b/e2sim/previous/helm/e2sim/Chart.yaml deleted file mode 100644 index f3a950c..0000000 --- a/e2sim/previous/helm/e2sim/Chart.yaml +++ /dev/null @@ -1,22 +0,0 @@ -################################################################################ -# Copyright (c) 2019 AT&T Intellectual Property. # -# Copyright (c) 2019 Nokia. # -# # -# Licensed under the Apache License, Version 2.0 (the "License"); # -# you may not use this file except in compliance with the License. # -# You may obtain a copy of the License at # -# # -# http://www.apache.org/licenses/LICENSE-2.0 # -# # -# Unless required by applicable law or agreed to in writing, software # -# distributed under the License is distributed on an "AS IS" BASIS, # -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # -# See the License for the specific language governing permissions and # -# limitations under the License. # -################################################################################ - -apiVersion: v1 -appVersion: "1.0" -description: A Helm chart for Kubernetes -name: e2sim -version: 0.1.0 diff --git a/e2sim/previous/helm/e2sim/templates/_helpers.tpl b/e2sim/previous/helm/e2sim/templates/_helpers.tpl deleted file mode 100644 index ce3748d..0000000 --- a/e2sim/previous/helm/e2sim/templates/_helpers.tpl +++ /dev/null @@ -1,49 +0,0 @@ -################################################################################ -# Copyright (c) 2019 AT&T Intellectual Property. # -# Copyright (c) 2019 Nokia. # -# # -# Licensed under the Apache License, Version 2.0 (the "License"); # -# you may not use this file except in compliance with the License. # -# You may obtain a copy of the License at # -# # -# http://www.apache.org/licenses/LICENSE-2.0 # -# # -# Unless required by applicable law or agreed to in writing, software # -# distributed under the License is distributed on an "AS IS" BASIS, # -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # -# See the License for the specific language governing permissions and # -# limitations under the License. # -################################################################################ - -{{/* vim: set filetype=mustache: */}} -{{/* -Expand the name of the chart. -*/}} -{{- define "e2sim.name" -}} -{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}} -{{- end -}} - -{{/* -Create a default fully qualified app name. -We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). -If release name contains chart name it will be used as a full name. -*/}} -{{- define "e2sim.fullname" -}} -{{- if .Values.fullnameOverride -}} -{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}} -{{- else -}} -{{- $name := default .Chart.Name .Values.nameOverride -}} -{{- if contains $name .Release.Name -}} -{{- .Release.Name | trunc 63 | trimSuffix "-" -}} -{{- else -}} -{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}} -{{- end -}} -{{- end -}} -{{- end -}} - -{{/* -Create chart name and version as used by the chart label. -*/}} -{{- define "e2sim.chart" -}} -{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}} -{{- end -}} diff --git a/e2sim/previous/helm/e2sim/templates/bin/_e2sim-run.sh.tpl b/e2sim/previous/helm/e2sim/templates/bin/_e2sim-run.sh.tpl deleted file mode 100755 index 35e01c4..0000000 --- a/e2sim/previous/helm/e2sim/templates/bin/_e2sim-run.sh.tpl +++ /dev/null @@ -1,54 +0,0 @@ -{{/* - Copyright (c) 2019 AT&T Intellectual Property. - Copyright (c) 2019 Nokia. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/}} -#!/bin/sh - -# Launch the e2 simulator on ${E2SIM_BIND_ADDR}:${E2SIM_BIND_PORT} -# If E2SIM_BIND_ADDR is not supplied, picks the address of the interface -# associated with the default route for E2SIM_BIND_AF (either -# "inet" [default] or "inet6"). - -if [ -z "${E2SIM_BIND_ADDR}" ]; then - if [ `echo "x${E2SIM_BIND_AF}x" | tr [A-Z] [a-z]` != "xinet6x" ]; then - AF='inet' - DEFROUTE='0/0' - LO='127.0.0.1' - else - AF='inet6' - DEFROUTE='::0/0' - LO='00:00:00:00:00:00' - fi - if [ -z "${E2SIM_BIND_IF}" ]; then - # bind on the address associated with the default route - E2SIM_BIND_IF=`ip -br -f ${AF} route show ${DEFROUTE}| sed 's/.*dev[\ ]*\([^\ ]*\).*/\1/'` - if [ -z ${E2SIM_BIND_IF} ]; then - # this is kinda bogus, but it's the only real fallback: take the first - # non-loopback interface. - E2SIM_BIND_IF=`ip -f ${AF} -o link list up | grep -v LOOPBACK | head -1 |awk -F: '{print $2}'` - fi - fi - E2SIM_BIND_ADDR=`ip -f ${AF} -o addr show ${E2SIM_BIND_IF:-eth0} scope global | sed -e 's/.*inet[6\ ]*\([^\ ]*\)\/.*/\1/'` -fi - -if [ -z $E2SIM_BIND_ADDR ]; then - # search failed. be nondestructively useless. - echo "No suitable address found, binding on loopback addess ${LO}" - E2SIM_BIND_ADDR=${LO} -else - echo "e2sim starting at ${E2SIM_BIND_ADDR}:${E2SIM_PORT:-36421}" -fi - -${E2SIM:-/home/e2sim/build/e2sim} ${E2SIM_BIND_ADDR} ${E2SIM_PORT:-36421} diff --git a/e2sim/previous/helm/e2sim/templates/configmap-e2sim-bin.yaml b/e2sim/previous/helm/e2sim/templates/configmap-e2sim-bin.yaml deleted file mode 100644 index ec30488..0000000 --- a/e2sim/previous/helm/e2sim/templates/configmap-e2sim-bin.yaml +++ /dev/null @@ -1,8 +0,0 @@ -apiVersion: v1 -kind: ConfigMap -metadata: - name: configmap-e2sim-bin - namespace: {{ .Release.Namespace }} -data: - e2sim-run.sh: | - {{- include "e2sim/templates/bin/_e2sim-run.sh.tpl" . | indent 4 }} diff --git a/e2sim/previous/helm/e2sim/templates/deployment.yaml b/e2sim/previous/helm/e2sim/templates/deployment.yaml deleted file mode 100644 index 21475f1..0000000 --- a/e2sim/previous/helm/e2sim/templates/deployment.yaml +++ /dev/null @@ -1,79 +0,0 @@ -{{/* - Copyright (c) 2019 AT&T Intellectual Property. - Copyright (c) 2019 Nokia. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/}} - -apiVersion: extensions/v1beta1 -kind: Deployment -metadata: - name: {{ include "e2sim.fullname" . }} - namespace: {{ .Release.Namespace }} - labels: - app: {{ include "e2sim.name" . }} - chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} - release: {{ .Release.Name }} - heritage: {{ .Release.Service }} -spec: - replicas: {{ .Values.replicaCount }} - template: - metadata: - labels: - app.kubernetes.io/instance: {{ .Release.Name }} - app.kubernetes.io/managed-by: {{ .Release.Service }} - spec: - hostNetwork: true - containers: - - name: {{ include "e2sim.name" . }} - image: "{{ .Values.image.repository }}/{{ .Values.image.name }}:{{ .Values.image.tag }}" - imagePullPolicy: {{ .Values.image.pullPolicy }} - command: - - /e2sim-run.sh - ports: - - containerPort: {{ .Values.service.port }} - env: - - name: E2SIM_NETWORK_TYPE - value: {{ .Values.e2sim.network.type | default "host" }} - - name: E2SIM_PORT - value: {{ .Values.e2sim.network.port | default 36421 |quote}} - - name: E2SIM_BIND_ADDR - value: {{ .Values.e2sim.network.address }} - - name: E2SIM_BIND_IF - value: {{ .Values.e2sim.network.interface }} - - name: E2SIM_BIND_AF - value: {{ .Values.e2sim.network.addressFamily | default "inet" }} - volumeMounts: - - name: dshm - mountPath: /dev/shm - - name: localtime - mountPath: /etc/localtime - readOnly: true - - name: e2sim-bin - subPath: e2sim-run.sh - mountPath: /e2sim-run.sh - resources: - volumes: - - name: dshm - emptyDir: - medium: Memory - - name: localtime - hostPath: - path: /etc/localtime - - name: e2sim-bin - configMap: - name: configmap-e2sim-bin - defaultMode: 0755 - imagePullSecrets: - - name: {{ .Values.image.repositoryCred }} - diff --git a/e2sim/previous/helm/e2sim/values.yaml b/e2sim/previous/helm/e2sim/values.yaml deleted file mode 100755 index 5f5cbca..0000000 --- a/e2sim/previous/helm/e2sim/values.yaml +++ /dev/null @@ -1,48 +0,0 @@ -################################################################################ -# Copyright (c) 2019 AT&T Intellectual Property. # -# Copyright (c) 2019 Nokia. # -# # -# Licensed under the Apache License, Version 2.0 (the "License"); # -# you may not use this file except in compliance with the License. # -# You may obtain a copy of the License at # -# # -# http://www.apache.org/licenses/LICENSE-2.0 # -# # -# Unless required by applicable law or agreed to in writing, software # -# distributed under the License is distributed on an "AS IS" BASIS, # -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # -# See the License for the specific language governing permissions and # -# limitations under the License. # -################################################################################ - -replicaCount: 1 - -image: - repository: snapshot.docker.ranco-dev-tools.eastus.cloudapp.azure.com:10001 - repositoryCred: docker-reg-cred - # for local testing - #repository: ric/testsuite - name: test/e2sim - tag: latest - pullPolicy: IfNotPresent - -nameOverride: "" -fullnameOverride: "" - -e2sim: - network: - # network implementation type: hostnetworking or DANM - # type: ["host"]|"danm" - # where e2sim should listen for SCTP connections: - # o if "address" is supplied, listen on that IP (v4 or v6) address - # o if "address" is not supplied and "interface" is supplied, listen on the - # first globally-scoped address on that interface of family "addressFamily" - # (default "inet") - # o if neither "address" nor "interface" is supplied, listen on the first - # globally-scoped address of family "addressFamily" (default "inet") on - # the interface associated with the container's default route, if any; if - # the container does not have a default route, the first interface with - # a globally-scoped address will be used. - # address: addr - # interface: ifname - # addressFamily: ["inet"]|"inet6" \ No newline at end of file diff --git a/e2sim/previous/helm/e2sim_install.sh b/e2sim/previous/helm/e2sim_install.sh deleted file mode 100755 index 9b9a13c..0000000 --- a/e2sim/previous/helm/e2sim_install.sh +++ /dev/null @@ -1,78 +0,0 @@ -#!/bin/bash -################################################################################ -# Copyright (c) 2019 AT&T Intellectual Property. # -# Copyright (c) 2019 Nokia. # -# # -# Licensed under the Apache License, Version 2.0 (the "License"); # -# you may not use this file except in compliance with the License. # -# You may obtain a copy of the License at # -# # -# http://www.apache.org/licenses/LICENSE-2.0 # -# # -# Unless required by applicable law or agreed to in writing, software # -# distributed under the License is distributed on an "AS IS" BASIS, # -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # -# See the License for the specific language governing permissions and # -# limitations under the License. # -################################################################################ - - -OVERRIDEYAML=$1 - - -DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null && pwd )" - -#/root/test/ric_robot_suite/helm -# extract the base to find root to dep - -BASE=${DIR%/test*} - -# /data/ORAN-OSC/it/dep/ric-platform/50-RIC-Platform/bin/install -BASEDIR05=$BASE/dep/ric-platform/50-RIC-Platform/ -BASEDIRCOMMON=$BASE/dep/ric-common/Common-Template/helm/ric-common - -echo "Using etc/ric.conf from $BASEDIR05" - - -source $BASEDIR05/etc/ric.conf - - -if [ -z "$RICPLT_RELEASE_NAME" ];then - RELEASE_NAME=$helm_release_name -else - RELEASE_NAME=$RICPLT_RELEASE_NAME -fi - -# Namespace configuration -if [ -z "$RICPLT_NAMESPACE" ];then - PLT_NAMESPACE=$plt_namespace -else - PLT_NAMESPACE=$RICPLT_NAMESPACE -fi - - - -RICPLT_COMPONENTS="e2sim" - -echo "Deploying RIC Platform components [$RICPLT_COMPONENTS]" -echo "Platform Namespace: $PLT_NAMESPACE" -echo "Helm Release Name: $RELEASE_NAME" - - -COMMON_CHART_VERSION=$(cat $BASEDIRCOMMON/Chart.yaml | grep version | awk '{print $2}') - -helm package -d /tmp $BASEDIRCOMMON - - -for component in $RICPLT_COMPONENTS; do - echo "Preparing chart for comonent $component" - mkdir -p $DIR/$component/charts/ - cp /tmp/ric-common-$COMMON_CHART_VERSION.tgz $DIR/$component/charts/ - if [ -z $OVERRIDEYAML ]; then - echo "helm install --namespace \"${PLT_NAMESPACE}\" --set \"Release.HelmReleaseName=${RELEASE_NAME}\" --name \"${RELEASE_NAME}-$component\" $DIR/../helm/$component" - helm install --namespace "${PLT_NAMESPACE}" --set "Release.HelmReleaseName=${RELEASE_NAME}" --name "${RELEASE_NAME}-$component" $DIR/$component - else - echo "helm install -f $OVERRIDEYAML --namespace \"${PLT_NAMESPACE}\" --set \"Release.HelmReleaseName=${RELEASE_NAME}\" --name \"${RELEASE_NAME}-$component\" $DIR/../helm/$component" - helm install -f $OVERRIDEYAML --namespace "${PLT_NAMESPACE}" --set "Release.HelmReleaseName=${RELEASE_NAME}" --name "${RELEASE_NAME}-$component" $DIR/$component - fi -done diff --git a/e2sim/previous/ricsim.cpp b/e2sim/previous/ricsim.cpp deleted file mode 100644 index 6bdc5b6..0000000 --- a/e2sim/previous/ricsim.cpp +++ /dev/null @@ -1,89 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -#include -#include -#include - -#include "e2sim_sctp.hpp" -#include "e2ap_message_handler.hpp" - -extern "C" { - #include "e2sim_defs.h" - #include "E2AP-PDU.h" - #include "e2ap_asn1c_codec.h" -} - -using namespace std; - -void encode_and_send_sctp_data(E2AP_PDU_t* pdu, int client_fd) -{ - uint8_t *buf; - sctp_buffer_t data; - - data.len = e2ap_asn1c_encode_pdu(pdu, &buf); - memcpy(data.buffer, buf, min(data.len, MAX_SCTP_BUFFER)); - - sctp_send_data(client_fd, data); -} - -void wait_for_sctp_data(int client_fd) -{ - sctp_buffer_t recv_buf; - if(sctp_receive_data(client_fd, recv_buf) > 0) - { - LOG_I("[SCTP] Received new data of size %d", recv_buf.len); - e2ap_handle_sctp_data(client_fd, recv_buf); - } -} - -int main(int argc, char* argv[]){ - LOG_I("Start RIC Simulator"); - - options_t ops = read_input_options(argc, argv); - int client_fd = sctp_start_client(ops.server_ip, ops.server_port); - - //1. Send ENDCX2Setup - E2AP_PDU_t* pdu_setup = e2ap_xml_to_pdu("E2AP_ENDCX2SetupRequest.xml"); - e2ap_asn1c_print_pdu(pdu_setup); - encode_and_send_sctp_data(pdu_setup, client_fd); - LOG_I("[SCTP] Sent ENDC X2 SETUP REQUEST"); - - //2. Receive ENDCX2SetupResponse - wait_for_sctp_data(client_fd); - - //3. Send RICSubscriptionRequest - E2AP_PDU_t* pdu_sub = e2ap_xml_to_pdu("E2AP_RICsubscriptionRequest_Ashwin.xml"); - e2ap_asn1c_print_pdu(pdu_sub); - encode_and_send_sctp_data(pdu_sub, client_fd); - LOG_I("[SCTP] Sent RIC SUBSCRIPTION REQUEST"); - - //4. Receive RICSubscriptionResponse - while(1){ - wait_for_sctp_data(client_fd); - } - - - //--------------------------------------- - close(client_fd); - LOG_I("[SCTP] Connection closed."); - - return 0; - -} diff --git a/e2sim/previous/src/ASN1/asn/asn.hpp b/e2sim/previous/src/ASN1/asn/asn.hpp deleted file mode 100755 index 3affd81..0000000 --- a/e2sim/previous/src/ASN1/asn/asn.hpp +++ /dev/null @@ -1,27 +0,0 @@ -#pragma once -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -*******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries - -// Local Includes: Application specific classes, functions, and libraries -#include "asn/version.hpp" -#include "asn/elements.hpp" -#include "asn/constraints.hpp" -#include "asn/variant.hpp" \ No newline at end of file diff --git a/e2sim/previous/src/ASN1/asn/ber/codec.hpp b/e2sim/previous/src/ASN1/asn/ber/codec.hpp deleted file mode 100755 index 3a42ad5..0000000 --- a/e2sim/previous/src/ASN1/asn/ber/codec.hpp +++ /dev/null @@ -1,931 +0,0 @@ -#pragma once -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries - -// Local Includes: Application specific classes, functions, and libraries -#include "asn/elements.hpp" -#include "asn/ber/common.hpp" -#include "asn/ber/context.hpp" -#include "asn/ber/tag.hpp" -#include "asn/ber/length.hpp" -#include "asn/ber/visitor.hpp" -#include "asn/ber/opentype.hpp" - -namespace asn { -namespace ber { - -/******************************************************************************** -pack (X.690) -*********************************************************************************/ -template -bool pack(IE const& ie, EncoderCtx& ctx) -{ - ctx.refErrorCtx().reset(); - Element::run(ie, ctx); - - if (ctx) - Tools::bit_accessor::padByte(ctx.refBuffer()); - - return static_cast(ctx); -} -/******************************************************************************** -unpack (X.690) -*********************************************************************************/ -template -bool unpack(IE& ie, DecoderCtx& ctx) -{ - Element::run(ie, ctx); - - if (ctx) - Tools::bit_accessor::padByte(ctx.refBuffer()); - - if(ctx && ctx.refBuffer().getBytesLeft()) - { - ctx.ie_name(IE::name()); - ctx.refErrorCtx().lengthErrorBytes(ctx.refBuffer().getBytesLeft(), 0); - } - - return static_cast(ctx); -} - -/*************************************************************************************** -* ElementType -***************************************************************************************/ -template -struct ElementType; - -/*************************************************************************************** -* ExplicitCodec: Codec for elements with EXPLICIT tag -***************************************************************************************/ -template -struct ExplicitCodec -{ - using tag_t = Tag; - static bool inline is_matched(tag_value_t _tag) {return _tag == tag_t::value();} - - static void inline run(IE const& ie, EncoderCtx& ctx) - { - auto & buffer = ctx.refBuffer(); - - tag_t::encode(ctx); - u8* len_ptr = buffer.advance(1); //reserve for the length - - Element::run(static_cast(ie), ctx); - - size_t len = buffer.begin() - len_ptr - 1; - if(len > 127) - { - len_ptr[0] = 0x80; //undefinite length form per X.690 8.1.3.6 - uint8_t buff[2] = {0}; // end-of-contents octets (X.690 8.1.5) - buffer.putBytes(buff, sizeof(buff)); - } - else - { - len_ptr[0] = static_cast(len); //one byte form per X.690 8.1.3.4 - } - } - - static void inline run(IE& ie, DecoderCtx& ctx, tag_value_t tag) - { - if(tag_t::value() != tag) - ctx.refErrorCtx().tagError(static_cast(tag)); - else - { - auto & buffer = ctx.refBuffer(); - size_t length = Length::decode(ctx); - - ASN_DECODER_TRACE("EX buffer: %s", static_cast(tag), length, ctx.refBuffer().toString()); - - if(length == indefinite_length) - { - Element::run(static_cast(ie), ctx); - - if(ctx) - { - uint8_t const* data_in = ctx.refBuffer().getBytes(2); - if(data_in && (data_in[0] || data_in[1])) - { - ctx.refErrorCtx().errorWrongEndOfContent(); - } - } - } - else - { - if (buffer.getBytesLeft() < length) - { - ctx.refErrorCtx().lengthErrorBytes(buffer.getBytesLeft(), length); - } - else - { - DecoderCtx::buf_type::pointer end = buffer.end(); - buffer.set_end(buffer.begin() + length); - - Element::run(static_cast(ie), ctx); - - buffer.set_end(end); - } - } - - } - } -}; - -/*************************************************************************************** -* BOOLEAN: Encoding the boolean type (X.690 8.2) -***************************************************************************************/ -template -struct ElementType > -{ - using tag_t = Tag; - - static bool inline is_matched(tag_value_t tag) {return tag == tag_t::value();} - - static void inline run(IE const& ie, EncoderCtx& ctx) - { - tag_t::encode(ctx); - Length::encode(1, ctx); - if(ie.get()) - Tools::put_bytes(0xFF, 1, ctx); - else - Tools::put_bytes(0, 1, ctx); - } - - static void inline run(IE& ie, DecoderCtx& ctx, tag_value_t tag) - { - if(tag_t::value() != tag) - ctx.refErrorCtx().tagError(static_cast(tag)); - else - { - size_t length = Length::decode(ctx); - if(length != 1) - { - ctx.refErrorCtx().sizeRangeError(length, 1, 1); - } - else - { - ASN_DECODER_TRACE("IE buffer: %s", static_cast(IE::ie_type), IE::name(), static_cast(tag), length, ctx.refBuffer().toString()); - uint8_t value; - Tools::get_bytes(value, 1, ctx); - ie.set(value > 0); - } - } - } -}; -/*************************************************************************************** -* INTEGER: Encoding the integer type (X.690 8.3) -***************************************************************************************/ -template -struct ElementType > -{ - using tag_t = Tag; - - static bool inline is_matched(tag_value_t tag) {return tag == tag_t::value();} - - static void inline run(IE const& ie, EncoderCtx& ctx) - { - tag_t::encode(ctx); - size_t length = Length::get(ie.get()); - Length::encode(length, ctx); - Tools::put_bytes(ie.get(), length, ctx); - } - static void inline run(IE& ie, DecoderCtx& ctx, tag_value_t tag) - { - if(tag_t::value() != tag) - { - ctx.refErrorCtx().tagError(static_cast(tag)); - } - else - { - size_t length = Length::decode(ctx); - if(!length || length == indefinite_length) - ctx.refErrorCtx().sizeRangeError(length); - else - { - ASN_DECODER_TRACE("IE buffer: %s", static_cast(IE::ie_type), IE::name(), static_cast(tag), length, ctx.refBuffer().toString()); - typename IE::value_type value; - Tools::get_bytes(value, length, ctx); - ie.set(value); - } - } - } -}; -/*************************************************************************************** -* ENUMERATED: Encoding the enumerated type (X.690 8.4) -***************************************************************************************/ -template -struct ElementType > -{ - using tag_t = Tag; - - static bool inline is_matched(tag_value_t tag) {return tag == tag_t::value();} - - static void inline run(IE const& ie, EncoderCtx& ctx) - { - tag_t::encode(ctx); - size_t length = Length::get(ie.get()); - Length::encode(length, ctx); - Tools::put_bytes(ie.get(), length, ctx); - } - static void inline run(IE& ie, DecoderCtx& ctx, tag_value_t tag) - { - if(tag_t::value() != tag) - ctx.refErrorCtx().tagError(static_cast(tag)); - else - { - size_t length = Length::decode(ctx); - if(!length || length == indefinite_length) - ctx.refErrorCtx().sizeRangeError(length); - else - { - ASN_DECODER_TRACE("IE buffer: %s", static_cast(IE::ie_type), IE::name(), static_cast(tag), length, ctx.refBuffer().toString()); - typename IE::value_type value; - Tools::get_bytes(value, length, ctx); - ie.set(value); - } - } - } -}; -/*************************************************************************************** -* REAL: Encoding the real type (X.690 8.5) -***************************************************************************************/ -//missing... -/*************************************************************************************** -* BIT STRING: Encoding the bitstring type (X.690 8.6) -***************************************************************************************/ -template -struct ElementType > -{ - using tag_t = Tag; - using ctag_t = Tag; - - static bool inline is_matched(tag_value_t tag) {return tag == tag_t::value() || tag == ctag_t::value();} - - static void inline run(IE const& ie, EncoderCtx& ctx) - { - tag_t::encode(ctx); - - uint8_t tail = ie.get_bitqty() % 8; - - size_t length = ie.get_buffer().size(); - Length::encode(length + 1, ctx); - - auto & buffer = ctx.refBuffer(); - buffer.putByte((8 - tail) & 0x7F); - - if (tail) - { - buffer.putBytes(ie.get_buffer().data(), length - 1); - u8 last_byte = *(ie.get_buffer().data() + length - 1); - - last_byte <<= 8 - tail; - buffer.putBytes(&last_byte, 1); - } - else - { - buffer.putBytes(ie.get_buffer().data(), length); - } - } - static void inline run(IE& ie, DecoderCtx& ctx, tag_value_t tag) - { - ie.clear(); - if(tag_t::value() == tag) - { - size_t length = Length::decode(ctx); - if(!length || length == indefinite_length) - { - ctx.refErrorCtx().sizeRangeError(length); - } - else - { - ASN_DECODER_TRACE("IE buffer: %s", static_cast(IE::ie_type), IE::name(), static_cast(tag), length, ctx.refBuffer().toString()); - uint8_t const* data_in = ctx.refBuffer().getBytes(length); - if(data_in) - { - size_t len_bytes = length - 1; - size_t bitqty = len_bytes << 3; - - if((data_in[0] & 0x80) || (bitqty < data_in[0])) - { - ctx.refErrorCtx().valueRangeError(data_in[0]); - } - else - { - bitqty = bitqty - data_in[0]; - uint8_t* data_out = ctx.refAllocator().alloc_bytes(len_bytes); - if (data_out) - { - memcpy(data_out, &data_in[1], len_bytes); - const u8 shift = bitqty % 8; - if (shift) - { - data_out[len_bytes - 1] >>= 8 - shift; - } - ie.set_buffer(bitqty, data_out); - } - else - { - ctx.refErrorCtx().allocatorNoMem(0, len_bytes); - } - } - } - } - } - else if(ctag_t::value() == tag) - { - //todo: implement the segmented data - ctx.refErrorCtx().errorUnsupported(); - } - else - { - ctx.refErrorCtx().tagError(static_cast(tag)); - } - } -}; -/*************************************************************************************** -* OCTET STRING: Encoding the octetstring type (X.690 8.7) -* Restricted Character string types (X.690 8.23) -***************************************************************************************/ -template -struct ElementType > -{ - using tag_t = Tag; - using ctag_t = Tag; - - static bool inline is_matched(tag_value_t tag) {return tag == tag_t::value() || tag == ctag_t::value();} - - static void inline run(IE const& ie, EncoderCtx& ctx) - { - tag_t::encode(ctx); - size_t length = ie.get().size(); - Length::encode(length, ctx); - ctx.refBuffer().putBytes(ie.get().data(), length); - } - static void inline run(IE& ie, DecoderCtx& ctx, tag_value_t tag) - { - ie.clear(); - if(tag_t::value() == tag) - { - size_t length = Length::decode(ctx); - if(length == indefinite_length) - { - ctx.refErrorCtx().sizeRangeError(length); - } - else - { - ASN_DECODER_TRACE("IE buffer: %s", static_cast(IE::ie_type), IE::name(), static_cast(tag), length, ctx.refBuffer().toString()); - uint8_t const* data_in = ctx.refBuffer().getBytes(length); - if(data_in) - { - ie.set(length, data_in); - } - } - } - else if(ctag_t::value() == tag) - { - //todo: implement the segmented data - ctx.refErrorCtx().errorUnsupported(); - } - else - { - ctx.refErrorCtx().tagError(static_cast(tag)); - } - } -}; -/*************************************************************************************** -* NULL: Encoding the null type (X.690 8.8) -***************************************************************************************/ -template -struct ElementType > -{ - using tag_t = Tag; - - static bool inline is_matched(tag_value_t tag) {return tag == tag_t::value();} - - static void inline run(IE const& ie, EncoderCtx& ctx) - { - tag_t::encode(ctx); - Length::encode(0, ctx); - } - - static void inline run(IE& ie, DecoderCtx& ctx, tag_value_t tag) - { - if(tag_t::value() != tag) - ctx.refErrorCtx().tagError(static_cast(tag)); - else - { - size_t length = Length::decode(ctx); - if(length) - ctx.refErrorCtx().sizeRangeError(length); - ASN_DECODER_TRACE("IE buffer: %s", static_cast(IE::ie_type), IE::name(), static_cast(tag), length, ctx.refBuffer().toString()); - } - } -}; -/*************************************************************************************** -* SEQUENCE: Encoding the sequence type (X.690 8.9) -* SET: Encoding the set type (X.690 8.11) -***************************************************************************************/ -template -struct ElementType > -{ - using tag_t = Tag; - - static bool inline is_matched(tag_value_t tag) {return tag == tag_t::value();} - - static void inline run(IE const& ie, EncoderCtx& ctx) - { - auto & buffer = ctx.refBuffer(); - - tag_t::encode(ctx); - u8* len_ptr = buffer.advance(1); //reserve for the length - - VisitorEncoderSeq ve(ctx, ie); - ie.encode(ve); - - size_t len = buffer.begin() - len_ptr - 1; - if(len > 127) - { - len_ptr[0] = 0x80; //undefinite length form per X.690 8.1.3.6 - uint8_t buff[2] = {0}; // end-of-contents octets (X.690 8.1.5) - buffer.putBytes(buff, sizeof(buff)); - } - else - len_ptr[0] = static_cast(len); //one byte form per X.690 8.1.3.4 - } - - static void inline run(IE& ie, DecoderCtx& ctx, tag_value_t tag) //todo: support arbitrary order of IEs in SET - { - if(tag_t::value() != tag) - ctx.refErrorCtx().tagError(static_cast(tag)); - else - { - VisitorDecoderSeq vd(ctx, ie); - auto & buffer = ctx.refBuffer(); - - size_t length = Length::decode(ctx); - - ASN_DECODER_TRACE("IE buffer: %s", static_cast(IE::ie_type), IE::name(), static_cast(tag), length, ctx.refBuffer().toString()); - - if(length == indefinite_length) - { - ie.decode(vd); - if(ctx) - { - if(invalid_tag != vd.get_unhandled_tag()) - { - tag_value_t _tag = vd.get_unhandled_tag(); - if(IE::constraint_t::extended) //skip the unknown extension now - { - tag_value_t const* tag_ptr = &_tag; - size_t _length; - do - { - _tag = OpenType::decode(ctx, _length, tag_ptr); - tag_ptr = nullptr; - - } while(ctx && !(_tag == 0 && _length == 0)); - } - else // it should be the end-of-contents octets (8.1.5) - { - uint8_t const* data_in = ctx.refBuffer().getBytes(1); - if(data_in && (_tag || data_in[0])) - { - ctx.refErrorCtx().errorWrongEndOfContent(); - } - } - } - else - { - uint8_t const* data_in = ctx.refBuffer().getBytes(2); - if(data_in && (data_in[0] || data_in[1])) - { - ctx.refErrorCtx().errorWrongEndOfContent(); - } - } - } - } - else - { - if (buffer.getBytesLeft() < length) - { - ctx.refErrorCtx().lengthErrorBytes(buffer.getBytesLeft(), length); - } - else - { - DecoderCtx::buf_type::pointer end = buffer.end(); - buffer.set_end(buffer.begin() + length); - ie.decode(vd); - tag_value_t _tag = vd.get_unhandled_tag(); - if(invalid_tag != _tag) - { - if(IE::constraint_t::extended) //skip the unknown extension now - { - tag_value_t const* tag_ptr = &_tag; - size_t _length; - do - { - _tag = OpenType::decode(ctx, _length, tag_ptr); - tag_ptr = nullptr; - - } while(ctx && buffer.getBytesLeft() > 0); - } - else - ctx.refErrorCtx().tagError(static_cast(tag)); // unexpected tag - } - buffer.set_end(end); - } - } - - } - } -}; -/*************************************************************************************** -* SEQUENCE OF: Encoding the sequence-of type (X.690 8.10) -* SET OF: Encoding the set-of type (X.690 8.12) -***************************************************************************************/ -template -struct ElementType > -{ - using tag_t = Tag; - - static bool inline is_matched(tag_value_t tag) {return tag == tag_t::value();} - - static void inline run(IE const& ie, EncoderCtx& ctx) - { - auto & buffer = ctx.refBuffer(); - - tag_t::encode(ctx); - u8* len_ptr = buffer.advance(1); //reserve for the length - - for (auto& elem : ie) - { - Element::run(elem, ctx); - } - - size_t len = buffer.begin() - len_ptr - 1; - if(len > 127) - { - len_ptr[0] = 0x80; //undefinite length form per X.690 8.1.3.6 - uint8_t buff[2] = {0}; // end-of-contents octets (X.690 8.1.5) - buffer.putBytes(buff, sizeof(buff)); - } - else - len_ptr[0] = static_cast(len); //one byte form per X.690 8.1.3.4 - } - static void inline run(IE& ie, DecoderCtx& ctx, tag_value_t tag) - { - ie.clear(); - - if(tag_t::value() != tag) - ctx.refErrorCtx().tagError(static_cast(tag)); - else - { - auto & buffer = ctx.refBuffer(); - - size_t length = Length::decode(ctx); - - ASN_DECODER_TRACE("IE buffer: %s", static_cast(IE::ie_type), IE::name(), static_cast(tag), length, ctx.refBuffer().toString()); - - if(length == indefinite_length) - { - tag_value_t elm_tag = get_tag(ctx); - - while(ctx && Element::is_matched(elm_tag)) - { - add_element(ie, ctx, &elm_tag); - elm_tag = get_tag(ctx); - } - - if(ctx) - { - uint8_t const* data_in = ctx.refBuffer().getBytes(1); - if(data_in && (elm_tag || data_in[0])) - { - ctx.refErrorCtx().errorWrongEndOfContent(); - } - } - } - else - { - if (buffer.getBytesLeft() < length) - { - ctx.refErrorCtx().lengthErrorBytes(buffer.getBytesLeft(), length); - } - else - { - DecoderCtx::buf_type::pointer end = buffer.end(); - buffer.set_end(buffer.begin() + length); - - while(ctx && buffer.getBytesLeft() > 0) - add_element(ie, ctx); - - buffer.set_end(end); - } - } - } - } - -private: - static void inline add_element(IE& ie, DecoderCtx& ctx, tag_value_t const* elm_tag = nullptr) - { - uint8_t* data = ctx.refAllocator().alloc_bytes(sizeof(typename IE::value_type)); - if (data) - { - typename IE::value_type * v = new (data) typename IE::value_type; - v->clear(); - ie.push_back(*v); - Element::run(*v, ctx, elm_tag); - } - else - { - ctx.refErrorCtx().allocatorNoMem(0, sizeof(typename IE::value_type)); - } - } -}; - -/*************************************************************************************** -* CHOICE: Encoding the choice type -***************************************************************************************/ -struct ChoiceVisitorEncoder -{ - ChoiceVisitorEncoder(EncoderCtx& ctx) : m_ctx(ctx) {} - - template - bool operator()(IE const& ie) - { - Element::run(ie, m_ctx); - return static_cast(m_ctx); - } - - EncoderCtx& m_ctx; -}; - -struct ChoiceVisitorDecoder -{ - ChoiceVisitorDecoder(DecoderCtx& ctx, tag_value_t tag) : m_ctx(ctx), m_tag(tag) {} - - template bool operator()(IE& ie) - { - Element::run(ie, m_ctx, &m_tag); - return static_cast(m_ctx); - } - - DecoderCtx& m_ctx; - tag_value_t m_tag; -}; - -template -struct ElementType > -{ - struct Selector - { - Selector(tag_value_t tag) : m_tag(tag) {} - - template void operator()(size_t idx) - { - if(!m_valid && Element::is_matched(m_tag)) - { - m_index = idx; - m_valid = true; - } - } - - size_t get_idx() const {return m_index;} - bool is_valid() const {return m_valid;} - - private: - tag_value_t m_tag; - size_t m_index {0}; - bool m_valid {false}; - }; - - static bool inline is_matched(tag_value_t tag) - { - Selector selector {tag}; - IE::enumerate(selector); - return selector.is_valid(); - } - - static void inline run(IE const& ie, EncoderCtx& ctx) - { - ChoiceVisitorEncoder ve(ctx); - - if(ctx && !ie.encode(ve)) - ctx.refErrorCtx().tagError(ie.get_index()); - } - static void inline run(IE& ie, DecoderCtx& ctx, tag_value_t tag) - { - ie.clear(); - - Selector selector {tag}; - IE::enumerate(selector); - - if(!selector.is_valid()) - ctx.refErrorCtx().tagError(static_cast(tag)); - else - { - ChoiceVisitorDecoder vd {ctx, tag}; - if(ctx && !ie.decode(selector.get_idx(), vd)) - ctx.refErrorCtx().tagError(ie.get_index()); - } - } -}; - -template -struct ElementType > -{ - static bool inline is_matched(tag_value_t _tag) {return ExplicitCodec::is_matched(_tag);} - - static void inline run(IE const& ie, EncoderCtx& ctx) - { - ExplicitCodec::run(ie, ctx); - } - - static void inline run(IE& ie, DecoderCtx& ctx, tag_value_t tag) - { - ExplicitCodec::run(ie, ctx, tag); - } -}; - -/*************************************************************************************** -* IE_OBJECT_IDENTIFIER: Encoding the object identifier type -***************************************************************************************/ -template -struct ElementType > -{ - using tag_t = Tag; - - static bool inline is_matched(tag_value_t _tag) {return _tag == tag_t::value();} - - static void inline run(IE const& ie, EncoderCtx& ctx) - { - tag_t::encode(ctx); - size_t length = ie.get().size(); - Length::encode(length, ctx); - ctx.refBuffer().putBytes(ie.get().data(), length); - } - static void inline run(IE& ie, DecoderCtx& ctx, tag_value_t tag) - { - ie.clear(); - if(tag_t::value() == tag) - { - size_t length = Length::decode(ctx); - if(!length || length == indefinite_length) - { - ctx.refErrorCtx().sizeRangeError(length); - } - else - { - ASN_DECODER_TRACE("IE buffer: %s", static_cast(IE::ie_type), IE::name(), static_cast(tag), length, ctx.refBuffer().toString()); - uint8_t const* data_in = ctx.refBuffer().getBytes(length); - if(data_in) - { - ie.set(length, data_in); - } - } - } - else - { - ctx.refErrorCtx().tagError(static_cast(tag)); - } - } -}; - -/*************************************************************************************** -* T_OBJFIELD_FTV -***************************************************************************************/ -template -struct ElementType > -{ - using tag_t = Tag; - - static bool inline is_matched(tag_value_t _tag) {return _tag == tag_t::value();} -}; - -/*************************************************************************************** -* T_OBJFIELD_TF -***************************************************************************************/ -template -struct ElementType > -{ - struct Selector - { - Selector(tag_value_t tag) : m_tag(tag) {} - - template void operator()(size_t idx) - { - if(Element::is_matched(m_tag)) - { - m_index = idx; - m_valid = true; - } - } - - size_t get_idx() const {return m_index;} - bool is_valid() const {return m_valid;} - - private: - tag_value_t m_tag; - size_t m_index {0}; - bool m_valid {false}; - }; - - static bool inline is_matched(tag_value_t tag) - { - Selector selector(tag); - IE::enumerate(selector); - - return selector.is_valid(); - } -}; - -/*************************************************************************************** -* Identifier -***************************************************************************************/ -template -struct Identifier -{ - static bool inline is_matched(tag_value_t _tag) - { - return ElementType::is_matched(_tag); - } - - static void inline run(IE const& ie, EncoderCtx& ctx) - { - ElementType::run(ie, ctx); - } - - static void inline run(IE& ie, DecoderCtx& ctx, tag_value_t tag) - { - ElementType::run(ie, ctx, tag); - } -}; - -template -struct Identifier > -{ - static bool inline is_matched(tag_value_t _tag) {return ExplicitCodec::is_matched(_tag);} - - static void inline run(IE const& ie, EncoderCtx& ctx) - { - ExplicitCodec::run(ie, ctx); - } - - static void inline run(IE& ie, DecoderCtx& ctx, tag_value_t tag) - { - ExplicitCodec::run(ie, ctx, tag); - } -}; - -/*************************************************************************************** -* COMMON: Element -***************************************************************************************/ -template -struct Element -{ - static bool inline is_matched(tag_value_t _tag) - { - return Identifier::is_matched(_tag); - } - - static void inline run(IE const& ie, EncoderCtx& ctx) - { - if (ctx) - { - ASN_ENCODER_TRACE("IE buffer: %s", static_cast(IE::ie_type), IE::name(), ctx.refBuffer().toString()); - ctx.ie_name(IE::name()); - Identifier::run(ie, ctx); - } - } - static void inline run(IE& ie, DecoderCtx& ctx, tag_value_t const* tag_ptr = nullptr) - { - if (ctx) - { - ctx.ie_name(IE::name()); - - tag_value_t tag = tag_ptr ? *tag_ptr : get_tag(ctx); - if(ctx) - Identifier::run(ie, ctx, tag); - } - } -}; - -} //namespace ber -} //namespace asn diff --git a/e2sim/previous/src/ASN1/asn/ber/common.hpp b/e2sim/previous/src/ASN1/asn/ber/common.hpp deleted file mode 100755 index edd830b..0000000 --- a/e2sim/previous/src/ASN1/asn/ber/common.hpp +++ /dev/null @@ -1,51 +0,0 @@ -#pragma once -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries -#include - -// Local Includes: Application specific classes, functions, and libraries -#include "asn/asn.hpp" -#include "asn/buffer.hpp" -#include "asn/ber/context.hpp" -#include "asn/ber/tools.hpp" - -//#define ASN_DECODER_TRACE_ENABLE -//#define ASN_ENCODER_TRACE_ENABLE - -#ifdef ASN_DECODER_TRACE_ENABLE -#define ASN_DECODER_TRACE(FMT, ...) printf(FMT "\n", __VA_ARGS__) -#else -#define ASN_DECODER_TRACE(...) -#endif - -#ifdef ASN_ENCODER_TRACE_ENABLE -#define ASN_ENCODER_TRACE(FMT, ...) printf(FMT "\n", __VA_ARGS__) -#else -#define ASN_ENCODER_TRACE(...) -#endif - -namespace asn { -namespace ber { - -template struct Element; - -} //namespace ber -} //namespace asn diff --git a/e2sim/previous/src/ASN1/asn/ber/context.hpp b/e2sim/previous/src/ASN1/asn/ber/context.hpp deleted file mode 100755 index 4159f00..0000000 --- a/e2sim/previous/src/ASN1/asn/ber/context.hpp +++ /dev/null @@ -1,118 +0,0 @@ -#pragma once -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries -#include - -// Local Includes: Application specific classes, functions, and libraries -#include "asn/utility.hpp" -#include "asn/buffer.hpp" -#include "asn/error_context.hpp" - -namespace asn { -namespace ber { - -/******************************************************************************** -EncoderCtx -*********************************************************************************/ -class EncoderCtx : boost::noncopyable -{ -public: - typedef buffer buf_type; - - EncoderCtx(u8* data, size_t size) - : m_buffer{ m_errCtx } - { - Reset(data, size); - } - - template - explicit EncoderCtx(u8(&buff)[SIZE]) - : EncoderCtx(buff, SIZE) - { - } - - explicit EncoderCtx() - : EncoderCtx(nullptr, 0) - { - } - - buf_type& refBuffer() { return m_buffer; } - error_context& refErrorCtx() { return m_errCtx; } - explicit operator bool() const { return static_cast(m_errCtx); } - - void Reset(void* data = nullptr, size_t size = 0) - { - m_buffer.reset(static_cast(data), size); - m_errCtx.reset(); - } - - //Name of the being processed IE - void ie_name(const char* name) { m_errCtx.ie_name(name); } - char const* ie_name() const { return m_errCtx.ie_name(); } - -private: - template - friend struct Encode; - - error_context m_errCtx; - buf_type m_buffer; -}; - - -/******************************************************************************** -DecoderCtx -*********************************************************************************/ -class DecoderCtx : boost::noncopyable -{ -public: - typedef buffer buf_type; - typedef allocator alloc_type; - - DecoderCtx(const void* data = nullptr, size_t size = 0, void* alloc_buffer = nullptr, size_t alloc_buffer_size = 0) - : m_buffer{ m_errCtx } - { - reset(data, size, alloc_buffer, alloc_buffer_size); - } - - buf_type& refBuffer() { return m_buffer; } - alloc_type& refAllocator() { return m_allocator; } - error_context& refErrorCtx() { return m_errCtx; } - explicit operator bool() const { return static_cast(m_errCtx); } - - void reset(const void* data = nullptr, size_t size = 0, void* alloc_buffer = nullptr, size_t alloc_buffer_size = 0) - { - m_allocator.reset(alloc_buffer, alloc_buffer_size); - m_buffer.reset(static_cast(data), size); - m_errCtx.reset(); - } - - //Name of the being processed IE - void ie_name(const char* name) { m_errCtx.ie_name(name); } - char const* ie_name() const { return m_errCtx.ie_name(); } - -private: - error_context m_errCtx; - buf_type m_buffer; - alloc_type m_allocator; -}; - -} //namespace ber -} //namespace asn diff --git a/e2sim/previous/src/ASN1/asn/ber/length.hpp b/e2sim/previous/src/ASN1/asn/ber/length.hpp deleted file mode 100755 index 51b387c..0000000 --- a/e2sim/previous/src/ASN1/asn/ber/length.hpp +++ /dev/null @@ -1,103 +0,0 @@ -#pragma once -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries - -// Local Includes: Application specific classes, functions, and libraries - -namespace asn { -namespace ber { - -constexpr size_t indefinite_length = std::numeric_limits::max(); - -/*************************************************************************************** -* Length -***************************************************************************************/ -struct Length -{ - static size_t inline get(int64_t value) - { - size_t length = 1; - - if(value != 0) - { - size_t extra_sign_bits = __builtin_clrsbll(value); - length = sizeof(value) - (extra_sign_bits >> 3) ; - } - - return length; - } - - static void inline encode(size_t length, EncoderCtx& ctx) - { - auto & buffer = ctx.refBuffer(); - - if(length <= 0x7F) - { - buffer.putByte(static_cast(length)); - } - else - { - size_t lenlen = get(length); - if(lenlen > 0x7F) - { - ctx.refErrorCtx().sizeRangeError(length, 0, 0x7F); - } - else - { - uint8_t bt = static_cast(lenlen); - bt |= 0x80; - buffer.putByte(bt); - Tools::put_bytes(length, lenlen, ctx); - } - } - - } - - static size_t inline decode(DecoderCtx& ctx) - { - auto & buffer = ctx.refBuffer(); - size_t length = 0; - - uint8_t const* data = buffer.getBytes(1); - - if(data) - { - if(!(data[0] & 0x80)) - { - length = data[0]; - } - else - { - size_t lenlen = data[0] & 0x7F; - - if(lenlen) - Tools::get_bytes(length, lenlen, ctx); - else - length = indefinite_length; - } - } - - return length; - } -}; - -} //namespace ber -} //namespace asn diff --git a/e2sim/previous/src/ASN1/asn/ber/opentype.hpp b/e2sim/previous/src/ASN1/asn/ber/opentype.hpp deleted file mode 100755 index 0ff9366..0000000 --- a/e2sim/previous/src/ASN1/asn/ber/opentype.hpp +++ /dev/null @@ -1,73 +0,0 @@ -#pragma once -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries - -// Local Includes: Application specific classes, functions, and libraries - -namespace asn { -namespace ber { - -/*************************************************************************************** -* OpenType -***************************************************************************************/ -struct OpenType -{ - static tag_value_t decode(DecoderCtx& ctx, size_t& length, tag_value_t const* tag_ptr = nullptr) - { - auto & buffer = ctx.refBuffer(); - tag_value_t tag = tag_ptr ? *tag_ptr : get_tag(ctx); - length = Length::decode(ctx); - - if(!length) - { - //just return - } - else if(length == indefinite_length) - { - tag_value_t _tag; - size_t _length; - do - { - _tag = OpenType::decode(ctx, _length); - - } while(ctx && !(_tag == 0 && _length == 0)); - } - else - { - if (buffer.getBytesLeft() < length) - { - ctx.refErrorCtx().lengthErrorBytes(buffer.getBytesLeft(), length); - } - else - { - size_t _length; - DecoderCtx::buf_type::pointer end = buffer.end(); - buffer.set_end(buffer.begin() + length); - decode(ctx, _length); - buffer.set_end(end); - } - } - return tag; - } -}; - -} //namespace ber -} //namespace asn \ No newline at end of file diff --git a/e2sim/previous/src/ASN1/asn/ber/tag.hpp b/e2sim/previous/src/ASN1/asn/ber/tag.hpp deleted file mode 100755 index dba9733..0000000 --- a/e2sim/previous/src/ASN1/asn/ber/tag.hpp +++ /dev/null @@ -1,163 +0,0 @@ -#pragma once -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries - -// Local Includes: Application specific classes, functions, and libraries - -#define IE_CLASS_SHIFT 6 -#define IE_PC_SHIFT 5 -#define IE_BIG_TAG_FST_OCTET 0b011111 - -namespace asn { -namespace ber { - -constexpr tag_value_t invalid_tag = std::numeric_limits::max(); - -/*************************************************************************************** -* Tag -***************************************************************************************/ -template -struct Tag; - -template -struct Tag > -{ - static constexpr tag_value_t value() - { - tag_value_t v = static_cast(IE::asn_identifier_t::class_type); - v <<= IE_CLASS_SHIFT; - v = constructed ? (v | (1u << IE_PC_SHIFT)) : v; - v |= static_cast(IE::asn_identifier_t::tag_value); - return v; - } - - static void inline encode(EncoderCtx& ctx) - { - ctx.refBuffer().putByte(static_cast(value())); - } -}; - - -template -struct Tag= 31) > > -{ - static constexpr tag_value_t value() - { - static_assert(IE::asn_identifier_t::tag_value > 0, "null tag value"); - - tag_value_t v = static_cast(IE::asn_identifier_t::class_type); - v <<= IE_CLASS_SHIFT; - v = constructed ? (v | (1u << IE_PC_SHIFT)) : v; - v |= IE_BIG_TAG_FST_OCTET; - - size_t leadbits = __builtin_clzll(IE::asn_identifier_t::tag_value); - tag_value_t tv = IE::asn_identifier_t::tag_value << leadbits; - size_t length = sizeof(tag_value_t)*CHAR_BIT - leadbits; - - size_t shift = sizeof(tag_value_t)*CHAR_BIT - 7; - - size_t lb = length % 7; - if(lb) - { - v <<= 8; - v |= 0x80; - v |= static_cast(tv >> (shift + 7 - lb)); - tv <<= lb; - length -= lb; - } - - while(length) - { - v <<= 8; - v |= 0x80; - v |= static_cast(tv >> shift); - tv <<= 7; - length -= 7; - } - v &= ((tag_value_t)-1) & ~((tag_value_t) 0x80); - - return v; - } - - static void inline encode(EncoderCtx& ctx) - { - size_t size = 0; - tag_value_t tv = data(size); - ctx.refBuffer().putBytes(reinterpret_cast(&tv), size); - } - -private: - - static constexpr tag_value_t data(size_t& size) - { - tag_value_t rv = 0; - tag_value_t tv = value(); - size = sizeof(tag_value_t) - (__builtin_clzll(tv) >> 3); - - uint8_t* ptr = reinterpret_cast(&rv); - - size_t shift = (size - 1) * 8; - for(size_t i = 0; i < size; ++i) - { - ptr[i] = static_cast(tv >> shift); - shift -= 8; - } - - return rv; - } -}; - -inline -tag_value_t get_tag(DecoderCtx& ctx) -{ - tag_value_t rv = 0; - auto & buffer = ctx.refBuffer(); - uint8_t const* data = buffer.getBytes(1); - - if (data) - { - rv = data[0]; - if((data[0] & 0x1F) == IE_BIG_TAG_FST_OCTET) - { - size_t limit = sizeof(tag_value_t) - 1; - while((data = buffer.getBytes(1))) - { - if(!limit) - { - ctx.refErrorCtx().sizeRangeError(0); - break; - } - - rv <<= 8; - rv |= data[0]; - --limit; - - if(!(data[0] & 0x80)) - break; - } - } - } - return rv; -} - -} //namespace ber -} //namespace asn - diff --git a/e2sim/previous/src/ASN1/asn/ber/tools.hpp b/e2sim/previous/src/ASN1/asn/ber/tools.hpp deleted file mode 100755 index 9f9bc9b..0000000 --- a/e2sim/previous/src/ASN1/asn/ber/tools.hpp +++ /dev/null @@ -1,68 +0,0 @@ -#pragma once -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries - -// Local Includes: Application specific classes, functions, and libraries - -namespace asn { -namespace ber { - -struct Tools -{ - typedef bit_accessor_cross_byte bit_accessor; - - - template - static void put_bytes(T value, size_t length, EncoderCtx& ctx) - { - auto & buffer = ctx.refBuffer(); - - size_t shift = (length - 1) << 3; - for(size_t i = 0; i < length; ++i) - { - buffer.putByte(static_cast(value >> shift)); - shift -= 8; - } - } - - template - static void get_bytes(T& value, size_t length, DecoderCtx& ctx) - { - auto & buffer = ctx.refBuffer(); - - value = 0; - uint8_t const* data = buffer.getBytes(length); - - if(data) - { - value = data[0]; - for(size_t i = 1; i < length; ++i) - { - value <<= 8; - value |= data[i]; - } - } - } - -}; - -} //namespace ber -} //namespace asn diff --git a/e2sim/previous/src/ASN1/asn/ber/visitor.hpp b/e2sim/previous/src/ASN1/asn/ber/visitor.hpp deleted file mode 100755 index 98c1f05..0000000 --- a/e2sim/previous/src/ASN1/asn/ber/visitor.hpp +++ /dev/null @@ -1,177 +0,0 @@ -#pragma once -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries - -// Local Includes: Application specific classes, functions, and libraries - -namespace asn { -namespace ber { - -/*************************************************************************************** -* VisitorEncoder -***************************************************************************************/ -struct VisitorEncoder -{ - VisitorEncoder(EncoderCtx& ctx) : m_ctx(ctx){} - - template bool operator() (ELM const& elm) - { - if(m_ctx) - Element::run(elm, m_ctx); - return static_cast(m_ctx); - } -private: - EncoderCtx& m_ctx; -}; - -/*************************************************************************************** -* VisitorDecoder -***************************************************************************************/ -struct VisitorDecoder -{ - VisitorDecoder(DecoderCtx& ctx, tag_value_t tag) : m_ctx(ctx), m_tag(tag){} - - template bool operator() (ELM& elm) - { - if(m_ctx) - Element::run(elm, m_ctx, &m_tag); - return static_cast(m_ctx); - } - -private: - DecoderCtx& m_ctx; - tag_value_t m_tag; -}; - -/*************************************************************************************** -* VisitorAdapter -***************************************************************************************/ -template -struct VisitorAdapter //default -{ - static void inline run(IE const& ie, EncoderCtx& ctx, Container const& cont) - { - Element::run(ie, ctx); - } - static void inline run(IE& ie, DecoderCtx& ctx, Container const& cont, tag_value_t tag) - { - Element::run(ie, ctx, &tag); - } -}; - -template -struct VisitorAdapter > -{ - static void inline run(IE const& ie, EncoderCtx& ctx, Container const& cont) - { - VisitorEncoder v(ctx); - bool rv = ie.encode(v, cont); - if(!rv && static_cast(ctx)) - { - ctx.refErrorCtx().errorNoObject(Container::name()); - } - } - static void inline run(IE& ie, DecoderCtx& ctx, Container const& cont, tag_value_t tag) - { - VisitorDecoder v(ctx, tag); - bool rv = ie.decode(v, cont); - if(!rv && static_cast(ctx)) - { - ctx.refErrorCtx().errorNoObject(Container::name()); - } - } -}; - -/*************************************************************************************** -* VisitorEncoderSeq -***************************************************************************************/ -template -struct VisitorEncoderSeq -{ - VisitorEncoderSeq(EncoderCtx& ctx, CONT const& cont) : m_ctx(ctx), m_cont(cont){} - - template void operator() (ELM const& elm) - { - if(ELM::optional) - { - if(elm.is_valid()) - VisitorAdapter::run(elm, m_ctx, m_cont); - } - else - VisitorAdapter::run(elm, m_ctx, m_cont); - } - - EncoderCtx& m_ctx; - CONT const& m_cont; -}; - - -/*************************************************************************************** -* VisitorDecoderSeq -***************************************************************************************/ -template -struct VisitorDecoderSeq -{ - VisitorDecoderSeq(DecoderCtx& ctx, CONT const& cont) : m_ctx(ctx), m_cont(cont){} - - template void operator() (ELM& elm) - { - if(m_ctx) - { - tag_value_t tag; - - if(invalid_tag == m_tag && m_ctx.refBuffer().getBytesLeft()) - { - m_tag = get_tag(m_ctx); - } - tag = m_tag; - - if(m_ctx) - { - if (!Element::is_matched(tag)) - { - if(!ELM::optional) - { - m_ctx.refErrorCtx().tagError(static_cast(tag)); - } - } - else - { - m_tag = invalid_tag; - VisitorAdapter::run(elm, m_ctx, m_cont, tag); - elm.setpresent(true); - } - } - } - } - - tag_value_t get_unhandled_tag() const {return m_tag;} - - DecoderCtx& m_ctx; - tag_value_t m_tag {invalid_tag}; - CONT const& m_cont; -}; - -} //namespace ber -} //namespace asn diff --git a/e2sim/previous/src/ASN1/asn/buffer.hpp b/e2sim/previous/src/ASN1/asn/buffer.hpp deleted file mode 100755 index 4022b48..0000000 --- a/e2sim/previous/src/ASN1/asn/buffer.hpp +++ /dev/null @@ -1,689 +0,0 @@ -#pragma once -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -*******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries -#include - -// Local Includes: Application specific classes, functions, and libraries -#include "asn/error_context.hpp" -#include "value_traits.hpp" - -//#define CODEC_BIT_TRACE_ENABLE -#ifdef CODEC_BIT_TRACE_ENABLE - #define CODEC_BIT_TRACE(FMT, args...) printf("%s[%u]:" FMT "\n", std::strrchr(__FILE__, '/') + 1, __LINE__, ##args) -#else - #define CODEC_BIT_TRACE(...) -#endif - -namespace asn { - -template -struct bit_accessor; - -template -struct bit_accessor_cross_byte; - -template -class buffer -{ -public: - typedef PTR pointer; - - explicit buffer(error_context& err) - : m_errCtx(err) - {} - - void reset(pointer data, u32 size) - { - m_start = data; - m_end = m_start + size; - m_current = m_start; - m_shift = 0; - } - - u32 getOffset() const { return begin() - m_start; } - - u32 getBytesLeft() const { return end() - begin(); } - u32 getBytesUsed() const { return getOffset() + (get_shift() ? 1 : 0); } - - u8 get_shift() const { return m_shift; } - void reset_shift() { m_shift = 0; } - void byte_align() { if (get_shift()) { m_shift = 0; ++m_current; } } - - pointer advance(u32 delta) { pointer p = begin(); m_current += delta; return p; } - - pointer begin() const { return m_current; } - - void set_begin(pointer ptr, u8 bit_shift) - { - if (m_start <= ptr && ptr <= end()) - { - m_current = ptr; - m_shift = bit_shift; - } - } - - pointer end() const { return m_end; } - void set_end(pointer v) { m_end = v; } - - bool checkAlignment(char const* name, u8 const mask = 0xFF) - { - if (0 == (get_shift() & mask)) return true; - m_errCtx.alignmentError(name, get_shift()); - return false; - } - - bool checkBytesLeft(char const* name, u32 const num_bytes) - { - if (getBytesLeft() >= num_bytes) return true; - m_errCtx.lengthErrorBytes(name, getBytesLeft(), num_bytes); - return false; - } - - bool checkBitsLeft(char const* name, u32 const num_bits) - { - if (getBitsLeft() >= num_bits) return true; - m_errCtx.lengthErrorBits(name, getBitsLeft(), num_bits); - return false; - } - - bool checkBytesAndAlignment(char const* name, u32 const num_bytes, u8 const mask = 0xFF) - { - if (getBytesLeft() >= num_bytes) - { - if (0 == (get_shift() & mask)) return true; - m_errCtx.alignmentError(name, get_shift()); - } - else - { - m_errCtx.lengthErrorBytes(name, getBytesLeft(), num_bytes); - } - return false; - } - - pointer getBytes(char const* name, u32 num_bytes) - { - if (checkBytesAndAlignment(name, num_bytes)) - { - return advance(num_bytes); - } - return nullptr; - } - - //NOTE! num_bytes should be set to minimal number of bytes expected - pointer getBytes(char const* name, u32 max_requested, u32& num_bytes) - { - if (checkAlignment(name)) - { - u32 const left = getBytesLeft(); - if (left >= num_bytes) - { - num_bytes = (left > max_requested) ? max_requested : left; - return advance(num_bytes); - } - - m_errCtx.lengthErrorBytes(name, getBytesLeft(), num_bytes); - } - return nullptr; - } - - bool putByte(char const* name, u8 byte) - { - if (checkBytesAndAlignment(name, 1)) - { - begin()[0] = byte; - ++m_current; - return true; - } - return false; - } - - bool putBytes(char const* name, void const* in, u32 num_bytes) - { - if (checkBytesAndAlignment(name, num_bytes)) - { - std::memcpy(begin(), in, num_bytes); - m_current += num_bytes; - return true; - } - return false; - } - - bool checkAlignment(u8 const mask = 0xFF) - { - if (0 == (get_shift() & mask)) return true; - m_errCtx.alignmentError(get_shift()); - return false; - } - - bool checkBytesLeft(u32 const num_bytes) - { - if (getBytesLeft() >= num_bytes) return true; - m_errCtx.lengthErrorBytes(getBytesLeft(), num_bytes); - return false; - } - - bool checkBitsLeft(u32 const num_bits) - { - if (getBitsLeft() >= num_bits) return true; - m_errCtx.lengthErrorBits(getBitsLeft(), num_bits); - return false; - } - - bool checkBytesAndAlignment(u32 const num_bytes, u8 const mask = 0xFF) - { - if (getBytesLeft() >= num_bytes) - { - if (0 == (get_shift() & mask)) return true; - m_errCtx.alignmentError(get_shift()); - } - else - { - m_errCtx.lengthErrorBytes(getBytesLeft(), num_bytes); - } - return false; - } - - pointer getBytes(u32 num_bytes) - { - if (checkBytesAndAlignment(num_bytes)) - { - return advance(num_bytes); - } - return nullptr; - } - - //NOTE! num_bytes should be set to minimal number of bytes expected - pointer getBytes(u32 max_requested, u32& num_bytes) - { - if (checkAlignment()) - { - u32 const left = getBytesLeft(); - if (left >= num_bytes) - { - num_bytes = (left > max_requested) ? max_requested : left; - return advance(num_bytes); - } - - m_errCtx.lengthErrorBytes(getBytesLeft(), num_bytes); - } - return nullptr; - } - - bool putByte(u8 byte) - { - if (checkBytesAndAlignment(1)) - { - begin()[0] = byte; - ++m_current; - return true; - } - return false; - } - - bool putBytes(void const* in, u32 num_bytes) - { - if (num_bytes) - { - if(checkBytesAndAlignment(num_bytes)) - { - std::memcpy(begin(), in, num_bytes); - m_current += num_bytes; - } - else - return false; - } - return true; - } - - char const* toString() const - { - static char sz[64]; - u8 const* p = begin(); - snprintf(sz, sizeof(sz), "%02X %02X %02X %02X [%02X]=%p@%u..%p -%u bits: +%u bytes", p[-4], p[-3], p[-2], p[-1], p[0], p - , getOffset(), end(), get_shift(), getBytesLeft()); - return sz; - } - -private: - template - friend class bit_accessor; - - template - friend struct bit_accessor_cross_byte; - - template - void push_u8(U value) { *m_current++ = static_cast(value); } - template - void put_u8(U value) { m_current[0] = static_cast(value); } - -//khxm68: TODO: won't compile without it. WTF?! -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wmaybe-uninitialized" - u8 get_u8() const { return m_current[0]; } -#pragma GCC diagnostic pop - u8 extract_u8(u8 value, u8 mask, u8 shift) const - { return (get_u8() & ~(mask << shift)) | ((value & mask) << shift); } - - u16 get_u16() const { return (static_cast(m_current[0]) << 8) | m_current[1]; } - u16 extract_u16(u16 value, u16 mask, u16 shift) const - { return (get_u16() & ~(mask << shift)) | ((value & mask) << shift); } - - u32 get_u24() const { return (static_cast(m_current[0]) << 16) | (static_cast(m_current[1]) << 8) | m_current[2]; } - u32 extract_u24(u32 value, u32 mask, u32 shift) const - { return (get_u24() & ~(mask << shift)) | ((value & mask) << shift); } - - u32 get_u32() const { return (static_cast(m_current[0]) << 24) | (static_cast(m_current[1]) << 16) | (static_cast(m_current[2]) << 8) | m_current[3]; } - u32 extract_u32(u32 value, u32 mask, u32 shift) const - { return (get_u32() & ~(mask << shift)) | ((value & mask) << shift); } - - u32 getBitsLeft() const { return begin() == end() ? 0 : (getBytesLeft()*8 - get_shift()); } - - void bit_advance(u8 num_bits) - { - m_shift += num_bits; - if (get_shift() > 7) - { - reset_shift(); - m_current++; - } - } - - pointer m_current; - pointer m_end; - pointer m_start; - u8 m_shift; - error_context& m_errCtx; -}; - -template //LSB 1..7 bits -struct bit_accessor -{ - static_assert(IE::length::value > 0 && IE::length::value < 8, "something wrong with traits!"); - - static void put(u8 value, buffer& buf) - { - u8 const mask = static_cast((1u << IE::length::value) - 1); - u8 const shift = buf.get_shift(); - u8 const data = buf.extract_u8(value, mask, shift); - buf.put_u8(data); - - CODEC_BIT_TRACE("put shift=%u(%u) data[%u]=%02X(%02X) mask=%04X: %s", shift, buf.get_shift() - , IE::length::value, data, value, mask, buf.toString()); - - buf.bit_advance(IE::length::value); - } - - static u8 get(buffer& buf) - { - u8 const mask = static_cast((1u << IE::length::value) - 1); - u8 const shift = buf.get_shift(); - u8 const data = (buf.get_u8() >> shift) & mask; - - CODEC_BIT_TRACE("get shift=%u(%u) data[%u]=%02X mask=%02X: %s", shift, buf.get_shift() - , IE::length::value, data, mask, buf.toString()); - - buf.bit_advance(IE::length::value); - return data; - } -}; - -template //LSB 9..15 bits -struct bit_accessor -{ - static_assert(IE::length::value > 8 && IE::length::value < 16, "something wrong with traits!"); - - static void put(u16 value, buffer& buf) - { - u16 const mask = static_cast((1u << IE::length::value) - 1); - u16 const shift = buf.get_shift(); - u16 const data = buf.extract_u16(value, mask, shift); - buf.push_u8(data >> 8); - buf.put_u8(data); - - CODEC_BIT_TRACE("put shift=%u(%u) data[%u]=%04X(%04X) mask=%04X: %s", shift, buf.get_shift() - , IE::length::value, data, value, mask, buf.toString()); - - buf.bit_advance(IE::length::value - 8); - } - - static u16 get(buffer& buf) - { - u16 const mask = static_cast((1u << IE::length::value) - 1); - u16 const shift = buf.get_shift(); - u16 const data = (buf.get_u16() >> shift) & mask; - buf.m_current += 1; - - CODEC_BIT_TRACE("get shift=%u(%u) data[%u]=%04X mask=%04X: %s", shift, buf.get_shift() - , IE::length::value, data, mask, buf.toString()); - - buf.bit_advance(IE::length::value - 8); - return data; - } -}; - -template //LSB 17..24 bits -struct bit_accessor -{ - static_assert(IE::length::value > 16 && IE::length::value <= 24, "something wrong with traits!"); - - static void put(u32 value, buffer& buf) - { - u32 const mask = static_cast((1u << IE::length::value) - 1); - u32 const shift = buf.get_shift(); - u32 const data = buf.extract_u24(value, mask, shift); - - buf.push_u8(data >> 16); - buf.push_u8(data >> 8); - buf.put_u8(data); - - CODEC_BIT_TRACE("put shift=%u(%u) data[%u]=%06X(%06X) mask=%06X: %s", shift, buf.get_shift() - , IE::length::value, data, value, mask, buf.toString()); - - buf.bit_advance(IE::length::value - 16); - } - - static u32 get(buffer& buf) - { - u32 const mask = static_cast((1u << IE::length::value) - 1); - u32 const shift = buf.get_shift(); - u32 const data = (buf.get_u24() >> shift) & mask; - buf.m_current += 2; - - CODEC_BIT_TRACE("get shift=%u(%u) data[%u]=%06X mask=%06X: %s", shift, buf.get_shift() - , IE::length::value, data, mask, buf.toString()); - - buf.bit_advance(IE::length::value - 16); - return data; - } -}; - -template //LSB 25..31 bits -struct bit_accessor -{ - static_assert(IE::length::value > 24 && IE::length::value < 32, "something wrong with traits!"); - - static void put(u32 value, buffer& buf) - { - u32 const mask = static_cast((1u << IE::length::value) - 1); - u32 const shift = buf.get_shift(); - u32 const data = buf.extract_u32(value, mask, shift); - - buf.push_u8(data >> 24); - buf.push_u8(data >> 16); - buf.push_u8(data >> 8); - buf.put_u8(data); - - CODEC_BIT_TRACE("put shift=%u(%u) data[%u]=%08X(%08X) mask=%08X: %s", shift, buf.get_shift() - , IE::length::value, data, value, mask, buf.toString()); - - buf.bit_advance(IE::length::value - 24); - } - - static u32 get(buffer& buf) - { - u32 const mask = static_cast((1u << IE::length::value) - 1); - u32 const shift = buf.get_shift(); - u32 const data = (buf.get_u32() >> shift) & mask; - buf.m_current += 3; - - CODEC_BIT_TRACE("get shift=%u(%u) data[%u]=%08X mask=%08X: %s", shift, buf.get_shift() - , IE::length::value, data, mask, buf.toString()); - - buf.bit_advance(IE::length::value - 24); - return data; - } -}; - - -template //MSB 1..7 bits -struct bit_accessor -{ - static_assert(IE::length::value > 0 && IE::length::value < 8, "something wrong with traits!"); - - static void put(u8 value, buffer& buf) - { - u8 const mask = static_cast((1u << IE::length::value) - 1); - u8 const shift = 8 - buf.get_shift() - IE::length::value; - u8 const data = buf.extract_u8(value, mask, shift); - buf.put_u8(data); - - CODEC_BIT_TRACE("put shift=%u(%u) data[%u]=%02X(%02X) mask=%04X: %s", shift, buf.get_shift() - , IE::length::value, data, value, mask, buf.toString()); - - buf.bit_advance(IE::length::value); - } - - static u8 get(buffer& buf) - { - u8 const mask = static_cast((1u << IE::length::value) - 1); - u8 const shift = 8 - buf.get_shift() - IE::length::value; - u8 const data = (buf.get_u8() >> shift) & mask; - - CODEC_BIT_TRACE("get shift=%u(%u) data[%u]=%02X mask=%02X: %s", shift, buf.get_shift() - , IE::length::value, data, mask, buf.toString()); - - buf.bit_advance(IE::length::value); - return data; - } -}; - -template //MSB 9..15 bits -struct bit_accessor -{ - static_assert(IE::length::value > 8 && IE::length::value < 16, "something wrong with traits!"); - - static void put(u16 value, buffer& buf) - { - u16 const mask = static_cast((1u << IE::length::value) - 1); - u16 const shift = 16 - buf.get_shift() - IE::length::value; - u16 const data = buf.extract_u16(value, mask, shift); - - buf.push_u8(data >> 8); - buf.put_u8(data); - - CODEC_BIT_TRACE("put shift=%u(%u) data[%u]=%04X(%04X) mask=%04X: %s", shift, buf.get_shift() - , IE::length::value, data, value, mask, buf.toString()); - - buf.bit_advance(IE::length::value - 8); - } - - static u16 get(buffer& buf) - { - u16 const mask = static_cast((1u << IE::length::value) - 1); - u16 const shift = 16 - buf.get_shift() - IE::length::value; - u16 const data = (buf.get_u16() >> shift) & mask; - buf.m_current += 1; - - CODEC_BIT_TRACE("get shift=%u(%u) data[%u]=%04X mask=%04X: %s", shift, buf.get_shift() - , IE::length::value, data, mask, buf.toString()); - - buf.bit_advance(IE::length::value - 8); - return data; - } -}; - - -template //MSB 17..24 bits -struct bit_accessor -{ - static_assert(IE::length::value > 16 && IE::length::value <= 24, "something wrong with traits!"); - - static void put(u32 value, buffer& buf) - { - u32 const mask = static_cast((1u << IE::length::value) - 1); - u32 const shift = 24 - buf.get_shift() - IE::length::value; - u32 const data = buf.extract_u24(value, mask, shift); - - buf.push_u8(data >> 16); - buf.push_u8(data >> 8); - buf.put_u8(data); - - CODEC_BIT_TRACE("put shift=%u(%u) data[%u]=%06X(%06X) mask=%06X: %s", shift, buf.get_shift() - , IE::length::value, data, value, mask, buf.toString()); - - buf.bit_advance(IE::length::value - 16); - } - - static u32 get(buffer& buf) - { - u32 const mask = static_cast((1u << IE::length::value) - 1); - u32 const shift = 24 - buf.get_shift() - IE::length::value; - u32 const data = (buf.get_u24() >> shift) & mask; - buf.m_current += 2; - - CODEC_BIT_TRACE("get shift=%u(%u) data[%u]=%06X mask=%06X: %s", shift, buf.get_shift() - , IE::length::value, data, mask, buf.toString()); - - buf.bit_advance(IE::length::value - 16); - return data; - } -}; - -template //MSB 25..31 bits -struct bit_accessor -{ - static_assert(IE::length::value > 24 && IE::length::value < 32, "something wrong with traits!"); - - static void put(u32 value, buffer& buf) - { - u32 const mask = static_cast((1u << IE::length::value) - 1); - u32 const shift = 32 - buf.get_shift() - IE::length::value; - u32 const data = buf.extract_u32(value, mask, shift); - - buf.push_u8(data >> 24); - buf.push_u8(data >> 16); - buf.push_u8(data >> 8); - buf.put_u8(data); - - CODEC_BIT_TRACE("put shift=%u(%u) data[%u]=%08X(%08X) mask=%08X: %s", shift, buf.get_shift() - , IE::length::value, data, value, mask, buf.toString()); - - buf.bit_advance(IE::length::value - 24); - } - - static u32 get(buffer& buf) - { - u32 const mask = static_cast((1u << IE::length::value) - 1); - u32 const shift = 32 - buf.get_shift() - IE::length::value; - u32 const data = (buf.get_u32() >> shift) & mask; - buf.m_current += 3; - - CODEC_BIT_TRACE("get shift=%u(%u) data[%u]=%08X mask=%08X: %s", shift, buf.get_shift() - , IE::length::value, data, mask, buf.toString()); - - buf.bit_advance(IE::length::value - 24); - return data; - } -}; - -/******************************************************************************** -bit_accessor_cross_byte -*********************************************************************************/ -template<> -struct bit_accessor_cross_byte //MSB -{ - static bool put(u8 value, u8 length, buffer& buf) - { - u8 spare = 8 - buf.get_shift(); - - if (spare < length) - { - length -= spare; - u8 chunk = value >> length; - u8 const mask = static_cast((1u << spare) - 1); - u8 data = buf.extract_u8(chunk, mask, 0); - buf.put_u8(data); - - buf.bit_advance(spare); - } - if (buf.checkBytesLeft(1)) - { - u8 const mask = static_cast((1u << length) - 1); - u8 const shift = 8 - buf.get_shift() - length; - u8 data = buf.extract_u8(value, mask, shift); - buf.put_u8(data); - - buf.bit_advance(length); - - return true; - } - return false; - } - - static u8 get(u8 length, buffer& buf) - { - u8 rval {0}; - u8 const mask = static_cast((1u << length) - 1); - u8 const spare = 8 - buf.get_shift(); - if (spare < length) - { - length -= spare; - rval = buf.get_u8() << length; - buf.bit_advance(spare); - } - if (length && buf.checkBytesLeft(1)) - { - u8 val = buf.get_u8(); - val = val >> (8 - length - buf.get_shift()); - rval |= val; - rval &= mask; - buf.bit_advance(length); - } - return rval; - } - - static void padByte(buffer& buf) - { - if (buf.get_shift()) - { - u8 mask = static_cast((1u << buf.get_shift()) - 1); - mask = mask << (8 - buf.get_shift()); - buf.begin()[0] &= mask; - buf.bit_advance(8 - buf.get_shift()); - } - } - - static void padByte(buffer& buf) - { - if(buf.get_shift()) - buf.bit_advance(8 - buf.get_shift()); - } - - static bool put(const u8* in, size_t len, buffer& buf, u8 trail_bitsqty) - { - if (len) - { - if (trail_bitsqty) - { - buf.putBytes(in, len - 1); - u8 last_byte = in[len - 1]; - last_byte = last_byte >> (8 - trail_bitsqty); - return put(last_byte, trail_bitsqty, buf); - } - buf.putBytes(in, len); - } - return true; - } -}; - -} //end: namespace asn - - diff --git a/e2sim/previous/src/ASN1/asn/chunked_allocator.hpp b/e2sim/previous/src/ASN1/asn/chunked_allocator.hpp deleted file mode 100755 index 008be98..0000000 --- a/e2sim/previous/src/ASN1/asn/chunked_allocator.hpp +++ /dev/null @@ -1,84 +0,0 @@ -#pragma once - -/******************************************************************************* -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -*******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries -#include -#include //std::bad_alloc -#include -#include - -// Platform Includes: Platform specific classes, functions, and libraries - -// Local Includes: Application specific classes, functions, and libraries - -namespace asn { - -template -class chunked_allocator -{ -public: - using allocator_t = ALLOC; - - chunked_allocator() - { - put_chunk(new_chunk()); - } - - template - decltype(auto) emplace_back(TSEQ& v) - { - try - { - return v.emplace_back(m_allocator); - } - catch (std::bad_alloc const&) - { - put_chunk(new_chunk()); - return v.emplace_back(m_allocator); - } - } - - uint8_t* alloc_bytes(std::size_t sz) - { - //TODO: unify allocation: now it returns nullptr instead of throw! - auto* ret = m_allocator.alloc_bytes(sz); - if (!ret) - { - put_chunk(new_chunk()); - ret = m_allocator.alloc_bytes(sz); - } - return ret; - } - -private: - static constexpr std::size_t CHUNK_SIZE = 32*1024; - using chunk_t = std::array; - using chunks_t = std::list; - - chunk_t& new_chunk() { return m_chunks.emplace_back(); } - void put_chunk(chunk_t& c) { m_allocator.reset(c.data(), c.size()); } - - - allocator_t m_allocator; - chunks_t m_chunks; -}; - -} //end: namespace asn diff --git a/e2sim/previous/src/ASN1/asn/constraints.hpp b/e2sim/previous/src/ASN1/asn/constraints.hpp deleted file mode 100755 index e8e787d..0000000 --- a/e2sim/previous/src/ASN1/asn/constraints.hpp +++ /dev/null @@ -1,140 +0,0 @@ -#pragma once - -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -* -******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries -#include -#include -#include -#include - -// Local Includes: Application specific classes, functions, and libraries - -namespace asn { - -using bound_t = int64_t; - -enum class constraint_type : uint8_t -{ - UNCONSTRAINED, - CONSTRAINED, - SEMICONSTRAINED, - CONSTRAINED_EXTENDED, - SEMICONSTRAINED_EXTENDED -}; - -template -struct span -{ - static_assert(UB >= LB, "UPPER >= LOWER"); - static constexpr bound_t lower_bound = LB; - static constexpr bound_t upper_bound = UB; -}; - -template -struct pair -{ - T const lower_bound; - T const upper_bound; -}; - -template -struct one : span {}; - -struct max : one::max()> {}; -struct min : one::min()> {}; - -static constexpr bound_t MAX = std::numeric_limits::max(); -static constexpr bound_t MIN = std::numeric_limits::min(); - -template -struct constraints -{ - static constexpr bool extended = Extended; - static constexpr bound_t lower_bound = std::min({RANGE::lower_bound...}); - static constexpr bound_t upper_bound = std::max({RANGE::upper_bound...}); - - static constexpr constraint_type type = - (Extended && lower_bound > min::lower_bound && upper_bound < max::upper_bound) ? constraint_type::CONSTRAINED_EXTENDED : - (!Extended && lower_bound > min::lower_bound && upper_bound < max::upper_bound) ? constraint_type::CONSTRAINED : - (Extended && lower_bound > min::lower_bound && upper_bound == max::upper_bound) ? constraint_type::SEMICONSTRAINED_EXTENDED : - (!Extended && lower_bound == min::lower_bound && upper_bound < max::upper_bound) ? constraint_type::SEMICONSTRAINED : - (Extended && lower_bound == min::lower_bound && upper_bound < max::upper_bound) ? constraint_type::SEMICONSTRAINED_EXTENDED : - (!Extended && lower_bound > min::lower_bound && upper_bound == max::upper_bound) ? constraint_type::SEMICONSTRAINED : constraint_type::UNCONSTRAINED; - - static constexpr bool is_signed = lower_bound < 0; - - static constexpr bound_t num_spans = static_cast(sizeof...(RANGE)); - static constexpr pair bounds[] = {{RANGE::lower_bound, RANGE::upper_bound}...}; - - using boundary_type = bound_t; - - static constexpr bool is_extended(bound_t val) - { - for (bound_t i = 0; i < num_spans; ++i) - { - auto const& p = bounds[i]; - if (val <= p.upper_bound) - { - if(val < p.lower_bound) - return true; - return false; - } - } - return true; - } -}; - -template -constexpr pair constraints::bounds[]; - -template -struct constraints -{ - static constexpr bool extended = Extended; - static constexpr constraint_type type = constraint_type::UNCONSTRAINED; - static constexpr bound_t lower_bound = std::numeric_limits::min(); - static constexpr bound_t upper_bound = std::numeric_limits::max(); - - static constexpr bool is_extended(bound_t val) {return true;} -}; - -/*************************************************************************************** -* RANGE for sequences -***************************************************************************************/ -template -struct seq_range -{ - static_assert(Extended || TotalNumEntries > 0, "TotalNumEntries must be > 0"); - static_assert(NumExtEntries <= TotalNumEntries, "NumExtEntries must be <= TotalNumEntries"); - - static constexpr constraint_type type = Extended ? constraint_type::CONSTRAINED_EXTENDED : constraint_type::CONSTRAINED; - static constexpr bool extended = Extended; - static constexpr bound_t lower_bound = 0; - static constexpr bound_t upper_bound = TotalNumEntries - NumExtEntries - 1; - static constexpr bound_t default_value = lower_bound; - static constexpr bound_t total_num_entries = TotalNumEntries; - - using boundary_type = bound_t; - using value_type = uint32_t; -}; - -} // namespace asn diff --git a/e2sim/previous/src/ASN1/asn/elements.hpp b/e2sim/previous/src/ASN1/asn/elements.hpp deleted file mode 100755 index 9cbcd42..0000000 --- a/e2sim/previous/src/ASN1/asn/elements.hpp +++ /dev/null @@ -1,565 +0,0 @@ -#pragma once - -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries -#include -#include - -// Local Includes: Application specific classes, functions, and libraries -#include "asn/constraints.hpp" -#include "asn/identifier.hpp" - -namespace asn { - -enum class element_type : uint8_t -{ - T_BOOLEAN - ,T_INTEGER - ,T_ENUMERATED - ,T_REAL - ,T_BITSTRING - ,T_OCTETSTRING - ,T_NULL - ,T_SEQUENCE - ,T_SEQUENCE_OF - ,T_SET - ,T_SET_OF - ,T_CHOICE - ,T_OBJECTIDENTIFIER - ,T_OBJFIELD_FTV - ,T_OBJFIELD_TF -}; - -/*************************************************************************************** -* BASE -***************************************************************************************/ - -struct base -{ - static constexpr bool optional = false; - static constexpr bool extension = false; - - static constexpr char const* name() {return "";} - - void setpresent(bool p) {is_set = p;} - void clear() {is_set = false;} - - bool is_valid() const {return is_set;} - -protected: - base() {} - void set() {is_set = true;} -protected: - bool is_set {false}; - - base& operator=(const base&) = delete; - base (const base&) = delete; -}; - -/*************************************************************************************** -* IE_NULL -***************************************************************************************/ - -struct nulltype : base -{ - using asn_identifier_t = identifier(tag_rvalue_t::NULL_TYPE), tag_type_t::IMPLICIT>; - - static constexpr element_type ie_type = element_type::T_NULL; - static constexpr const char* name() {return "NULL";} - - void clear() {} -}; - -/*************************************************************************************** -* T_BOOLEAN -***************************************************************************************/ - -struct boolean : base -{ - using asn_identifier_t = identifier(tag_rvalue_t::BOOLEAN), tag_type_t::IMPLICIT>; - - static constexpr element_type ie_type = element_type::T_BOOLEAN; - static constexpr const char* name() {return "BOOLEAN";} - - using value_type = bool; - - void set(value_type vl) { m_value = vl; base::set();} - value_type get() const { return m_value; } - void clear() { m_value = false; base::clear();} - -private: - value_type m_value {false}; -}; - -/*************************************************************************************** -* T_INTEGER -***************************************************************************************/ -template < class Constraint = constraints > -struct integer : base -{ - using asn_identifier_t = identifier(tag_rvalue_t::INTEGER), tag_type_t::IMPLICIT>; - - static constexpr element_type ie_type = element_type::T_INTEGER; - static constexpr const char* name() {return "INTEGER";} - - using constraint_t = Constraint; - using value_type = int64_t; - - bool equal(value_type v) const {return m_value == v;} - - void set(value_type v) { m_value = v; base::set();} - value_type get() const { return m_value; } - - void clear() { m_value = 0; base::clear();} - -private: - value_type m_value; -}; - -/*************************************************************************************** -* T_ENUMERATED -***************************************************************************************/ -template -struct enumerated : base -{ - using asn_identifier_t = identifier(tag_rvalue_t::ENUMERATED), tag_type_t::IMPLICIT>; - - static constexpr element_type ie_type = element_type::T_ENUMERATED; - static constexpr const char* name() {return "ENUMERATED";} - - using constraint_t = seq_range; - using value_type = typename constraint_t::value_type; - - bool equal(value_type v) const {return m_value == v;} - void set(value_type vl) { m_value = vl; base::set();} - value_type get() const { return m_value; } - void clear() { m_value = constraint_t::default_value; base::clear();} - -private: - value_type m_value; -}; - -/*************************************************************************************** -* T_OCTETSTRING -***************************************************************************************/ -template< class Constraint = constraints > -struct ostring : base -{ - using asn_identifier_t = identifier(tag_rvalue_t::OCTET_STRING), tag_type_t::IMPLICIT>; - - static constexpr element_type ie_type = element_type::T_OCTETSTRING; - static constexpr const char* name() {return "OCTET STING";} - using constraint_t = Constraint; - - struct value_type - { - value_type() {} - value_type(size_t size, const char* data) : m_size(size), m_data(reinterpret_cast(data)) {} - - size_t size() const { return m_size; } - const uint8_t* data() const { return m_data; } - - using const_iterator = uint8_t const*; - const_iterator begin() const { return data(); } - const_iterator end() const { return begin() + size(); } - - void assign(void const* p, size_t sz) { m_data = static_cast(p); m_size = sz; } - - private: - const uint8_t* m_data{ 0 }; - size_t m_size{ 0 }; - }; - - value_type const& get() const { return m_value; } - - //Use std::string, std::vector or IE_OSTR::value_type - template value_type const& set(T const& tval) - { - set(tval.size(), tval.data()); - base::set(); - return m_value; - } - - void set(size_t size, void const* data) - { - m_value.assign(data, size); - base::set(); - } - - template - ostring& emplace(AT& allocator, size_t size, uint8_t const * data_in) - { - if(size) - { - base::clear(); - uint8_t* data_out = allocator.alloc_bytes(size); - if (data_out) - { - memcpy(data_out, data_in, size); - set(size, data_out); - } - } - else - base::set(); - return *this; - } - - template - ostring& emplace(AT& allocator, T const& tval) - { - return emplace(allocator, tval.size(), reinterpret_cast(tval.data())); - } - - void clear() { m_value = value_type{}; base::clear();} - -private: - value_type m_value; -}; - -/*************************************************************************************** -* T_BITSTRING -***************************************************************************************/ -template > -struct bstring : base -{ - using asn_identifier_t = identifier(tag_rvalue_t::BIT_STRING), tag_type_t::IMPLICIT>; - - static constexpr element_type ie_type = element_type::T_BITSTRING; - static constexpr const char* name() {return "BIT STING";} - using constraint_t = Constraint; - - struct value_type - { - value_type() {} - value_type(size_t size, const char* data, size_t bitqty) : m_size(size), m_data(reinterpret_cast(data)), m_bitqty(bitqty){} - - size_t size() const { return m_size; } - const uint8_t* data() const { return m_data; } - size_t bitqty() const { return m_bitqty; } - - void assign(void const* p, size_t sz, size_t bits) { m_data = static_cast(p); m_size = sz; m_bitqty = bits; } - - private: - const uint8_t* m_data{ nullptr }; - size_t m_size{ 0 }; - size_t m_bitqty{ 0 }; - }; - - value_type const& get_buffer() const { return m_value; } - - size_t get_bitqty() const { return m_value.bitqty(); } - - //Use std::string, std::vector or IE_BSTR::value_type - template value_type const& set_buffer(T& tval, size_t bitqty) - { - m_value.assign(tval.data(), tval.size(), bitqty); - base::set(); - return m_value; - } - - void set_buffer(size_t bitqty, const uint8_t* data) - { - m_value.assign(data, (bitqty +7) >> 3, bitqty); - base::set(); - } - - template - bstring& emplace_buffer(AT& allocator, size_t bitqty, uint8_t const * data_in) - { - size_t size = (bitqty +7) >> 3; - uint8_t* data_out = allocator.alloc_bytes(size); - if (!data_out) { - throw std::bad_alloc(); - } - memcpy(data_out, data_in, size); - set_buffer(bitqty, data_out); - return *this; - } - - void clear() { m_value = value_type{}; base::clear();} - - uint64_t get_number() const - { - uint64_t retval{0}; - size_t i = 0; - for(; i < m_value.size() - 1; ++i) - { - retval <<= 8; - retval |= m_value.data()[i]; - } - - uint8_t shift = m_value.bitqty() % 8; - if (shift) - { - retval <<= shift; - } - else - { - retval <<= 8; - } - - retval |= m_value.data()[i]; - - return retval; - } - - template - void set_number(AT& allocator, size_t bitqty, uint64_t data) - { - size_t size = (bitqty +7) >> 3; - uint8_t* data_out = allocator.alloc_bytes(size); - if (!data_out) { - throw std::bad_alloc(); - } - - const uint8_t shift = bitqty % 8; - if (shift) - { - data_out[size-1] = data & (0xFF >> (8 - shift)); - data >>= shift; - } - else - { - data_out[size-1] = data & (0xFF); - data >>= 8; - } - - for (size_t i = 1; i <= size - 1; i++) - { - data_out[size-1-i] = data & (0xFF); - data >>= 8; - } - - m_value.assign(data_out, size, bitqty); - base::set(); - } - -private: - value_type m_value; -}; - -/*************************************************************************************** -* T_CHOICE -***************************************************************************************/ -template -struct choice : base -{ - using asn_identifier_t = identifier(tag_rvalue_t::CHOICE), tag_type_t::IMPLICIT>; - - static constexpr element_type ie_type = element_type::T_CHOICE; - static constexpr const char* name() {return "CHOICE";} - - using constraint_t = seq_range; - using index_type = size_t; - using value_type = size_t; - - static constexpr index_type fst_index = 1; - static constexpr index_type ext_index = fst_index + TotalNumEntries; - - static index_type normalize(index_type idx) {return idx - fst_index;} - static index_type denormalize(index_type idx) {return idx + fst_index;} -}; - -/*************************************************************************************** -* T_SEQUENCE -***************************************************************************************/ -template -struct sequence : base -{ - using asn_identifier_t = identifier(tag_rvalue_t::SEQUENCE), tag_type_t::IMPLICIT>; - - static constexpr element_type ie_type = element_type::T_SEQUENCE; - static constexpr const char* name() {return "SEQUENCE";} - - static constexpr bound_t num_total_entries = TotalNumEntries; - static constexpr bound_t num_opt_entries = NumOptEntries; - static constexpr bound_t num_ext_entries = NumExtEntries; - - using constraint_t = seq_range; - -}; - -/*************************************************************************************** -* T_SEQUENCE_OF -***************************************************************************************/ -template > -struct sequenceof : base -{ - using asn_identifier_t = identifier(tag_rvalue_t::SEQUENCE_OF), tag_type_t::IMPLICIT>; - - static constexpr element_type ie_type = element_type::T_SEQUENCE_OF; - static constexpr const char* name() {return "SEQUENCE OF";} - - struct value_type : T, boost::intrusive::list_base_hook< boost::intrusive::link_mode > - { - value_type(){} - private: - value_type& operator=(const value_type&) = delete; - value_type (const value_type&) = delete; - }; - - using values_t = boost::intrusive::list>; - using constraint_t = Constraint; - using element_t = T; - - void clear() { m_list.clear(); base::clear();} - size_t size() const { return m_list.size(); } - template - void sort(Predicate const& p) { m_list.sort(p); } - - template - void set(V& v) {for(auto & e : v) {m_list.push_back(e);} base::set();} - - void push_back(value_type& v) { m_list.push_back(v); base::set();} - - template //Note: Allocator must return word alligned buffer! - T& emplace_back(AT& allocator) - { - uint8_t* data = allocator.alloc_bytes(sizeof(value_type)); - if(!data) - throw std::bad_alloc(); - value_type* v = new (data) value_type; - push_back(*v); - return *v; - }; - - using iterator = typename values_t::iterator; - iterator begin() { return m_list.begin(); } - iterator end() { return m_list.end(); } - - using const_iterator = typename values_t::const_iterator; - const_iterator begin() const { return m_list.begin(); } - const_iterator end() const { return m_list.end(); } - - sequenceof(){} - -private: - values_t m_list; -}; - -/*************************************************************************************** -* T_OBJFIELD_FTV -***************************************************************************************/ -template -struct fixedtypefield : T -{ - static constexpr element_type ie_type = element_type::T_OBJFIELD_FTV; - - T& ref_nested() {return *this;} - T const & ref_nested() const {return *this;} -}; - -/*************************************************************************************** -* T_OBJFIELD_TF -***************************************************************************************/ -template -struct typefield : base -{ - static constexpr element_type ie_type = element_type::T_OBJFIELD_TF; - static constexpr const char* name() {return "type-field";} - - typefield& ref_nested() {return *this;} - typefield const& ref_nested() const {return *this;} - - bool is_unknown() const {return false;} -}; - -/*************************************************************************************** -* T_OBJECTIDENTIFIER -***************************************************************************************/ -struct oid : ostring<> -{ - using asn_identifier_t = identifier(tag_rvalue_t::OBJECT_IDENTIFIER), tag_type_t::IMPLICIT>; - - static constexpr element_type ie_type = element_type::T_OBJECTIDENTIFIER; - static constexpr const char* name() {return "OBJECT IDENTIFIER";} -}; - -/*************************************************************************************** -* T_PRINTABLESTRING -***************************************************************************************/ -template > -struct printable_string : ostring -{ - using asn_identifier_t = identifier(tag_rvalue_t::PrintableString), tag_type_t::IMPLICIT>; - static constexpr const char* name() {return "PrintableString";} -}; - -/*************************************************************************************** -* T_IA5_STRING -***************************************************************************************/ -template > -struct ia5_string : ostring -{ - using asn_identifier_t = identifier(tag_rvalue_t::IA5String), tag_type_t::IMPLICIT>; - static constexpr const char* name() {return "IA5String";} -}; - -/*************************************************************************************** -* T_GRAPHIC_STRING -***************************************************************************************/ -template > -struct graphic_string : ostring -{ - using asn_identifier_t = identifier(tag_rvalue_t::GraphicString), tag_type_t::IMPLICIT>; - static constexpr const char* name() {return "IA5String";} -}; - -/*************************************************************************************** -* T_UTF8_STRING -***************************************************************************************/ -template > -struct utf8_string : ostring -{ - using asn_identifier_t = identifier(tag_rvalue_t::UTF8String), tag_type_t::IMPLICIT>; - static constexpr const char* name() {return "UTF8String";} -}; - -/*************************************************************************************** -* T_SET -***************************************************************************************/ -template -struct set : base -{ - using asn_identifier_t = identifier(tag_rvalue_t::SET), tag_type_t::IMPLICIT>; - - static constexpr element_type ie_type = element_type::T_SET; - static constexpr const char* name() {return "SET";} - - static constexpr bound_t num_total_entries = TotalNumEntries; - static constexpr bound_t num_opt_entries = NumOptEntries; - static constexpr bound_t num_ext_entries = NumExtEntries; - - using constraint_t = seq_range; -}; - -/*************************************************************************************** -* T_SET_OF -***************************************************************************************/ -template > -struct setof : sequenceof -{ - using asn_identifier_t = identifier(tag_rvalue_t::SET_OF), tag_type_t::IMPLICIT>; - - static constexpr element_type ie_type = element_type::T_SET_OF; - static constexpr const char* name() {return "SET OF";} -}; -} //namespace asn diff --git a/e2sim/previous/src/ASN1/asn/error_context.hpp b/e2sim/previous/src/ASN1/asn/error_context.hpp deleted file mode 100755 index 8a7285a..0000000 --- a/e2sim/previous/src/ASN1/asn/error_context.hpp +++ /dev/null @@ -1,267 +0,0 @@ -#pragma once - -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries - - -// Local Includes: Application specific classes, functions, and libraries -#include "type_defs.h" - -namespace asn { - -class error_context -{ -public: - enum error_e : u8 - { - SUCCESS = 0 - ,INCORRECT_LENGTH_BITS - ,INCORRECT_LENGTH_BYTES - ,ALIGNMENT - ,INCORRECT_VALUE - ,INCORRECT_CHOICE_TAG - ,INCORRECT_IE_TAG - ,VALUE_OUT_OF_RANGE - ,SIZE_OUT_OF_RANGE - ,ALLOC_NO_MEMORY - ,NO_OBJECT - ,NO_MANDATORY - ,WRONG_END_OF_CONTENT - ,UNSUPPORTED - ,UNSPECIFIED - }; - - explicit operator bool() const { return SUCCESS == m_error; } - - void reset() { m_error = SUCCESS; } - error_e getError() const { return m_error; } - - char const* toString() const; - - void alignmentError(u32 shift); - void lengthErrorBytes(u32 bytes_left, u32 requested); - void lengthErrorBits(u32 bits_left, u32 requested); - void valueError(u32 got, u32 expected, u32 ofs); - void tagError(u32 tag); - void valueRangeError(size_t value); - void sizeRangeError(size_t size, size_t low = 0, size_t high = 0); - void allocatorNoMem(size_t bytes_left, size_t bytes_required); - void errorUnsupported() {setError(UNSUPPORTED);} - void errorUnspecified() {setError(UNSPECIFIED);} - void errorNoObject(const char* container_name_); - void errorNoMandatory(); - void errorWrongEndOfContent() {setError(WRONG_END_OF_CONTENT);} - - //to inline in choice decoder: TODO: think of changing it! - void choiceError(char const* name, u32 id) - { - m_name = name; - m_param[0] = id; - setError(INCORRECT_CHOICE_TAG); - } - //Name of the being processed IE - void ie_name(const char* name) { m_ie_name = name; } - char const* ie_name() const { return m_ie_name; } - - void container_name(const char* name) { m_container_name = name; } - char const* container_name() const { return m_container_name; } - - -private: - void setError(error_e n) { m_error = n; } - - enum { MAX_PARAMS = 3 }; - error_e m_error; - char const* m_name; - char const* m_ie_name {""}; - char const* m_container_name {""}; - size_t m_param[MAX_PARAMS]; - -}; - -inline -void error_context::errorNoObject(const char* c_name) -{ - container_name(c_name); - m_name = m_ie_name; - setError(NO_OBJECT); -} - -inline -void error_context::errorNoMandatory() -{ - m_name = m_ie_name; - setError(NO_MANDATORY); -} - -inline -void error_context::alignmentError(u32 shift) -{ - m_name = m_ie_name; - m_param[0] = shift; - setError(ALIGNMENT); -} - -inline -void error_context::lengthErrorBytes(u32 bytes_left, u32 requested) -{ - m_name = m_ie_name; - m_param[0] = bytes_left; - m_param[1] = requested; - setError(INCORRECT_LENGTH_BYTES); -} - -inline -void error_context::lengthErrorBits(u32 bits_left, u32 requested) -{ - m_name = m_ie_name; - m_param[0] = bits_left; - m_param[1] = requested; - setError(INCORRECT_LENGTH_BITS); -} - -inline -void error_context::valueError(u32 got, u32 expected, u32 ofs) -{ - m_name = m_ie_name; - m_param[0] = got; - m_param[1] = expected; - m_param[2] = ofs; - setError(INCORRECT_VALUE); -} - -inline -void error_context::tagError(u32 tag) -{ - m_name = m_ie_name; - m_param[0] = tag; - setError(INCORRECT_IE_TAG); -} - -inline -void error_context::valueRangeError(size_t value) -{ - m_name = m_ie_name; - m_param[0] = value; - setError(VALUE_OUT_OF_RANGE); -} - -inline -void error_context::sizeRangeError(size_t size, size_t low, size_t high) -{ - m_name = m_ie_name; - m_param[0] = size; - m_param[1] = low; - m_param[2] = high; - setError(SIZE_OUT_OF_RANGE); -} - -inline -void error_context::allocatorNoMem(size_t bytes_left, size_t bytes_required) -{ - m_name = m_ie_name; - m_param[0] = bytes_left; - m_param[1] = bytes_required; - setError(ALLOC_NO_MEMORY); -} - -inline -char const* error_context::toString() const -{ - static char sz[256]; - - switch (m_error) - { - case SUCCESS: - return "OK"; - - case INCORRECT_LENGTH_BITS: - snprintf(sz, sizeof(sz)-1, "%zu bits left, '%s::%s' needs %zu", m_param[0], m_container_name, m_name, m_param[1]); - break; - - case INCORRECT_LENGTH_BYTES: - snprintf(sz, sizeof(sz)-1, "%zu bytes left, '%s::%s' needs %zu", m_param[0], m_container_name, m_name, m_param[1]); - break; - case ALIGNMENT: - snprintf(sz, sizeof(sz)-1, "misaligned '%s::%s': shift %zu bits", m_container_name, m_name, m_param[0]); - break; - - case INCORRECT_VALUE: - snprintf(sz, sizeof(sz)-1, "Wrong value of '%s::%s' at %zu: 0x%zX expected=0x%zX", m_container_name, m_name, m_param[2], m_param[0], m_param[1]); - break; - - case INCORRECT_CHOICE_TAG: - snprintf(sz, sizeof(sz)-1, "Wrong choice tag of '%s::%s': %zu (0x%zX)", m_container_name, m_name, m_param[0], m_param[0]); - break; - - case INCORRECT_IE_TAG: - snprintf(sz, sizeof(sz)-1, "Wrong tag of '%s::%s': %zu (0x%zX)", m_container_name, m_name, m_param[0], m_param[0]); - break; - - case VALUE_OUT_OF_RANGE: - snprintf(sz, sizeof(sz) - 1, "Value is out of the range '%s::%s': value: %zu", m_container_name, m_name, m_param[0]); - break; - - case SIZE_OUT_OF_RANGE: - if (m_param[2]) - { - snprintf(sz, sizeof(sz) - 1, "Size=%zu bytes is out of the range [%zu, %zu] in '%s::%s'", m_param[0], m_param[1], m_param[2], m_container_name, m_name); - } - else - { - if (m_param[1]) - { - snprintf(sz, sizeof(sz) - 1, "Size=%zu bytes is less than %zu in '%s::%s'", m_param[0], m_param[1], m_container_name, m_name); - } - else - { - snprintf(sz, sizeof(sz) - 1, "Size=%zu bytes is out of the range in '%s::%s'", m_param[0], m_container_name, m_name); - } - } - break; - - case ALLOC_NO_MEMORY: - snprintf(sz, sizeof(sz) - 1, "Allocator memory has ended '%s::%s': left bytes: %zu; required bytes: %zu", m_container_name, m_name, m_param[0], m_param[1]); - break; - case NO_OBJECT: - snprintf(sz, sizeof(sz) - 1, "Component relation constraint violated '%s::%s'", m_container_name, m_name); - break; - case NO_MANDATORY: - snprintf(sz, sizeof(sz) - 1, "no mandatory '%s::%s' is found", m_container_name, m_name); - break; - case UNSUPPORTED: - snprintf(sz, sizeof(sz) - 1, "unsupported object '%s::%s' is found", m_container_name, m_name); - return "unsupported"; - break; - case UNSPECIFIED: - snprintf(sz, sizeof(sz) - 1, "unspecified object '%s::%s' is found", m_container_name, m_name); - return "unspecified"; - break; - case WRONG_END_OF_CONTENT: - snprintf(sz, sizeof(sz) - 1, "wrong end of content in object '%s::%s'", m_container_name, m_name); - return "wrong end of content"; - break; - } - - return sz; -} - -} //end: namespace asn diff --git a/e2sim/previous/src/ASN1/asn/identifier.hpp b/e2sim/previous/src/ASN1/asn/identifier.hpp deleted file mode 100755 index 9b603fb..0000000 --- a/e2sim/previous/src/ASN1/asn/identifier.hpp +++ /dev/null @@ -1,97 +0,0 @@ -#pragma once - -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries - -// Local Includes: Application specific classes, functions, and libraries - -namespace asn { - -enum class class_type_t : uint8_t -{ - UNIVERSAL - ,APPLICATION - ,CONTEXT - ,PRIVATE - ,UNSPECIFIED //reserved for internal use -}; - -enum class tag_type_t : uint8_t -{ - EXPLICIT - ,IMPLICIT - ,AUTOMATIC -}; - -using tag_value_t = uint64_t; - -template -struct identifier -{ - static constexpr class_type_t class_type = CT; - static constexpr tag_value_t tag_value = TAG; - static constexpr tag_type_t tag_type = TT; -}; - - -enum class tag_rvalue_t : tag_value_t -{ - BOOLEAN = 1 - ,INTEGER = 2 - ,BIT_STRING = 3 - ,OCTET_STRING = 4 - ,NULL_TYPE = 5 - ,OBJECT_IDENTIFIER = 6 - ,REAL = 9 - ,ENUMERATED = 10 - ,SEQUENCE = 16 - ,SEQUENCE_OF = 16 - ,UTF8String = 12 - ,NumericString = 18 - ,IA5String = 22 - ,VisibleString = 26 - ,DATE = 31 - ,TIME_OF_DAY = 32 - ,DATE_TIME = 33 - ,DURATION = 34 - ,ObjectDescriptor = 7 - ,EXTERNAL = 8 - ,EMBEDDED_PDV = 11 - ,OID_IRI = 35 - ,RELATIVE_OID_IRI = 36 - ,SET = 17 - ,SET_OF = 17 - ,UTCTime = 23 - ,GeneralizedTime = 24 - ,PrintableString = 19 - ,T61String = 20 - ,VideotexString = 21 - ,GraphicString = 25 - ,GeneralString = 27 - ,UniversalString = 28 - ,CHARACTER_STRING = 29 - ,BMPString = 30 - ,ISO646String = 26 - ,TeletexString = 20 - ,CHOICE = 99 // fake id for internal use -}; - -} //namespace asn diff --git a/e2sim/previous/src/ASN1/asn/per/binary_integer.hpp b/e2sim/previous/src/ASN1/asn/per/binary_integer.hpp deleted file mode 100755 index 6ba2f15..0000000 --- a/e2sim/previous/src/ASN1/asn/per/binary_integer.hpp +++ /dev/null @@ -1,168 +0,0 @@ -#pragma once -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries - -// Local Includes: Application specific classes, functions, and libraries -#include "asn/per/common.hpp" -#include "asn/per/length.hpp" - -namespace asn { -namespace per { - -template -struct BinaryIntegerLength; - -/*************************************************************************************** -* Encoding of a non-negative-binary-integer (X.691 10.3) -***************************************************************************************/ -template -struct NonnegativeBinaryInteger -{ - static void inline run(u64 val, EncoderCtx& ctx) - { - if(val) - { - size_t const len = sizeof(val) - (__builtin_clzll(val) >> 3); - - BinaryIntegerLength< Range >::run(ctx, len); - Tools::bit_accessor::padByte(ctx.refBuffer()); - - u8 buff[len]; - size_t shift = (len - 1) << 3; - for(size_t i = 0; i < len; ++i) - { - buff[i] = static_cast(val >> shift); - shift -= 8; - } - - ctx.refBuffer().putBytes(buff, len); - } - else - { - BinaryIntegerLength< Range >::run(ctx, 1); - Tools::bit_accessor::padByte(ctx.refBuffer()); - ctx.refBuffer().putByte(0); - } - } - template - static void inline run(T& retval, DecoderCtx& ctx, bool extended_val) - { - retval = 0; - size_t len = (size_t)BinaryIntegerLength< Range >::run(ctx, extended_val); - Tools::bit_accessor::padByte(ctx.refBuffer()); - u8 const* data = ctx.refBuffer().getBytes(len); - - if (data) - { - for (size_t i = 0; i < len; ++i) - { - retval = retval << 8; - retval |= data[i]; - } - } - } -}; - -/*************************************************************************************** -* Encoding of a 2's-complement-binary-integer (X.691 10.4) -***************************************************************************************/ - -template -struct TwosComplementBinaryInteger -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - Tools::bit_accessor::padByte(ctx.refBuffer()); - - u64 val = ie.get(); - u64 tval = val; - u64 mask = static_cast(-128); - u8 len = 1; - u8 i = 7; - - u8 buf[8]; - - while (len < 8) - { - buf[i] = static_cast(tval); - if (!(val & mask) || (val & mask) == mask) - break; - mask = mask << 8; - tval = tval >> 8; - len++; - i--; - } - - ctx.refBuffer().putByte(len) && ctx.refBuffer().putBytes(&buf[i], len); - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - Tools::bit_accessor::padByte(ctx.refBuffer()); - - u8 const* data = nullptr; - typename IE::value_type val = 0; - - u8 const* len = ctx.refBuffer().getBytes(1); - - if (len && (*len) <= 8 && (data = ctx.refBuffer().getBytes(*len))) - { - for (u8 i = 0; i < *len; ++i) - { - val = val << 8; - val |= data[i]; - } - } - ie.set(val); - } -}; - -/*************************************************************************************** -* Encoding of a normally small non-negativebinary integer (X.691 10.6) -***************************************************************************************/ -template -struct NormallySmallNonnegativeBinaryInteger -{ - static void inline run(IE const& ie, EncoderCtx& ctx, typename IE::constraint_t::boundary_type val) - { - if (val <= 63) - { - Tools::bit_accessor::put(static_cast(val), 7, ctx.refBuffer()); //7 bits ('0' indicator + value) - } - else - { - Tools::bit_accessor::put(1, 1, ctx.refBuffer()); //1 bit ('1' indicator) - NonnegativeBinaryInteger::run(val, ctx); - } - } - static TValue inline run(DecoderCtx& ctx) - { - u8 ext = Tools::bit_accessor::get(1, ctx.refBuffer()); - if (ext) { - TValue rval = 0; - NonnegativeBinaryInteger::run(rval, ctx, true); - return rval; - } - return Tools::bit_accessor::get(6, ctx.refBuffer()); - } -}; - -} //namespace per -} //namespace asn diff --git a/e2sim/previous/src/ASN1/asn/per/bstring.hpp b/e2sim/previous/src/ASN1/asn/per/bstring.hpp deleted file mode 100755 index 5d25599..0000000 --- a/e2sim/previous/src/ASN1/asn/per/bstring.hpp +++ /dev/null @@ -1,279 +0,0 @@ -#pragma once -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries - -// Local Includes: Application specific classes, functions, and libraries -#include "asn/per/common.hpp" - -namespace asn { -namespace per { - -//15.11 Default -template -struct BitstringNoExt -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - LengthDeterminant::run(ctx, ie.get_bitqty()); - Tools::bit_accessor::padByte(ctx.refBuffer()); - - const u8 tail = ie.get_bitqty() % 8; - if (tail) - { - ctx.refBuffer().putBytes(ie.get_buffer().data(), ie.get_buffer().size() - 1); - u8 last_byte = *(ie.get_buffer().data() + ie.get_buffer().size() - 1); - - last_byte <<= 8 - tail; - ctx.refBuffer().putBytes(&last_byte, 1); - ctx.refBuffer().set_begin(ctx.refBuffer().begin() - 1, tail); - } - else - { - ctx.refBuffer().putBytes(ie.get_buffer().data(), ie.get_buffer().size()); - } - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - size_t len = LengthDeterminant::run(ctx, false); - size_t len_bytes = (len + 7) >> 3; - Tools::bit_accessor::padByte(ctx.refBuffer()); - u8 const* data_in = ctx.refBuffer().getBytes(len_bytes); - if (data_in) - { - u8* data_out = ctx.refAllocator().alloc_bytes(len_bytes); - if (data_out) - { - memcpy(data_out, data_in, len_bytes); - const u8 shift = len % 8; - if (shift) - { - ctx.refBuffer().set_begin(ctx.refBuffer().begin() - 1, shift); - data_out[len_bytes - 1] >>= 8 - shift; - } - ie.set_buffer(len, data_out); - } - else - ctx.refErrorCtx().allocatorNoMem(0, len_bytes); - } - } -}; - -//15.8 Zero length -template -struct BitstringNoExt > -{ - static void inline run(IE const& ie, EncoderCtx& ctx) {/* do nothing */ } - static void inline run(IE& ie, DecoderCtx& ctx) { ie.setpresent(true); } -}; - -//15.9 Up to 6 bits, fixed length -template -struct BitstringNoExt 0)) ->> -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - Tools::bit_accessor::put((static_cast(ie.get_buffer().data()[0])) & (0xFF >> (8 - IE::constraint_t::upper_bound)), - IE::constraint_t::upper_bound, ctx.refBuffer()); - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - u8 * data = ctx.refAllocator().alloc_bytes(1); - if (data) - { - data[0] = Tools::bit_accessor::get(IE::constraint_t::upper_bound, ctx.refBuffer()); - ie.set_buffer(IE::constraint_t::upper_bound, data); - } - else - ctx.refErrorCtx().allocatorNoMem(0, 1); - } -}; -template -struct BitstringNoExt 8)) ->> -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - Tools::bit_accessor::put(ie.get_buffer().data()[0], 8, ctx.refBuffer()); - Tools::bit_accessor::put((static_cast(ie.get_buffer().data()[1])) & (0xFF >> (16 - IE::constraint_t::upper_bound)), - IE::constraint_t::upper_bound - 8, ctx.refBuffer()); - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - u8 * data = ctx.refAllocator().alloc_bytes(2); - if (data) - { - data[0] = Tools::bit_accessor::get(8, ctx.refBuffer()); - data[1] = Tools::bit_accessor::get(IE::constraint_t::upper_bound - 8, ctx.refBuffer()); - ie.set_buffer(IE::constraint_t::upper_bound, data); - } - else - ctx.refErrorCtx().allocatorNoMem(0, 2); - } -}; - -//15.10 More than 6 bits, up to 64K bits, fixed length -template -struct BitstringNoExt 16)) ->> -{ - constexpr static size_t len_bytes = (IE::constraint_t::upper_bound + 7) >> 3; - - static void inline run(IE const& ie, EncoderCtx& ctx) - { - Tools::bit_accessor::padByte(ctx.refBuffer()); - if (ie.get_buffer().size() != len_bytes) - { - ctx.refErrorCtx().sizeRangeError(ie.get_buffer().size(), len_bytes, len_bytes); - } - else - { - const u8 tail = ie.get_bitqty() % 8; - if (tail) - { - ctx.refBuffer().putBytes(ie.get_buffer().data(), ie.get_buffer().size() - 1); - u8 last_byte = *(ie.get_buffer().data() + ie.get_buffer().size() - 1); - last_byte <<= 8 - tail; - ctx.refBuffer().putBytes(&last_byte, 1); - ctx.refBuffer().set_begin(ctx.refBuffer().begin() - 1, tail); - } - else - { - ctx.refBuffer().putBytes(ie.get_buffer().data(), ie.get_buffer().size()); - } - } - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - Tools::bit_accessor::padByte(ctx.refBuffer()); - u8 const* data_in = ctx.refBuffer().getBytes(len_bytes); - if (data_in) - { - u8* data_out = ctx.refAllocator().alloc_bytes(len_bytes); - if (data_out) - { - memcpy(data_out, data_in, len_bytes); - const u8 shift = IE::constraint_t::upper_bound % 8; - if (shift) - { - ctx.refBuffer().set_begin(ctx.refBuffer().begin() - 1, shift); - data_out[len_bytes - 1] >>= 8 - shift; - } - ie.set_buffer(IE::constraint_t::upper_bound, data_out); - } - else - ctx.refErrorCtx().allocatorNoMem(0, len_bytes); - } - } -}; - -/**************************************************/ - -template -struct Bitstring; - -//15.6 : Extension present -template -struct Bitstring > -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - - if (ie.get_bitqty() <= IE::constraint_t::upper_bound && ie.get_bitqty() >= IE::constraint_t::lower_bound) - { - Tools::bit_accessor::put(0, 1, ctx.refBuffer()); - BitstringNoExt::run(ie, ctx); - } - else - { - Tools::bit_accessor::put(1, 1, ctx.refBuffer()); - Tools::bit_accessor::padByte(ctx.refBuffer()); - LengthDeterminant::run(ctx, ie.get_bitqty()); - Tools::bit_accessor::padByte(ctx.refBuffer()); - const u8 tail = ie.get_bitqty() % 8; - if (tail) - { - ctx.refBuffer().putBytes(ie.get_buffer().data(), ie.get_buffer().size() - 1); - u8 last_byte = *(ie.get_buffer().data() + ie.get_buffer().size() - 1); - - last_byte <<= 8 - tail; - - ctx.refBuffer().putBytes(&last_byte, 1); - ctx.refBuffer().set_begin(ctx.refBuffer().begin() - 1, tail); - } - else - { - ctx.refBuffer().putBytes(ie.get_buffer().data(), ie.get_buffer().size()); - } - } - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - u8 ext = Tools::bit_accessor::get(1, ctx.refBuffer()); - if (ext) - { - Tools::bit_accessor::padByte(ctx.refBuffer()); - const size_t len = LengthDeterminant::run(ctx, true); - const size_t len_bytes = (len + 7) >> 3; - Tools::bit_accessor::padByte(ctx.refBuffer()); - u8 const* data_in = ctx.refBuffer().getBytes(len_bytes); - if (data_in) - { - u8* data_out = ctx.refAllocator().alloc_bytes(len_bytes); - if (data_out) - { - memcpy(data_out, data_in, len_bytes); - const u8 shift = len % 8; - if (shift) - { - ctx.refBuffer().set_begin(ctx.refBuffer().begin() - 1, shift); - data_out[len_bytes - 1] >>= 8 - shift; - } - ie.set_buffer(len, data_out); - } - else - ctx.refErrorCtx().allocatorNoMem(0, len_bytes); - } - } - else - BitstringNoExt::run(ie, ctx); - } -}; - -//15.7 : No extension -template -struct Bitstring > -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - BitstringNoExt::run(ie, ctx); - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - BitstringNoExt::run(ie, ctx); - } -}; - -} //namespace per -} //namespace asn diff --git a/e2sim/previous/src/ASN1/asn/per/choice.hpp b/e2sim/previous/src/ASN1/asn/per/choice.hpp deleted file mode 100755 index f0d115c..0000000 --- a/e2sim/previous/src/ASN1/asn/per/choice.hpp +++ /dev/null @@ -1,136 +0,0 @@ -#pragma once -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries - -// Local Includes: Application specific classes, functions, and libraries -#include "asn/per/common.hpp" -#include "asn/per/visitor.hpp" - -namespace asn { -namespace per { - -/******************************************************************************** -Choice -*********************************************************************************/ - -/**************************************************/ -//22.6-7 Default -template -struct ChoiceNoExt -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - ConstrainedWholeNumber::run(ctx, IE::normalize(ie.get_index())); - VisitorEncoder ve{ ctx }; - ie.encode(ve); - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - typename IE::index_type idx = ConstrainedWholeNumber::run(ctx); - VisitorDecoder ve{ ctx }; - ie.decode(IE::denormalize(idx), ve); - } -}; - -//22.4 One alternative -template -struct ChoiceNoExt > -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - VisitorEncoder ve{ ctx }; - ie.encode(ve); - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - VisitorDecoder ve{ ctx }; - ie.decode(IE::denormalize(0), ve); - } -}; - -/**************************************************/ - -template -struct Choice; - -//22.5 Extension present -template -struct Choice > -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - auto idx = IE::normalize(ie.get_index()); - if (idx <= IE::constraint_t::upper_bound) - { - Tools::bit_accessor::put(0, 1, ctx.refBuffer()); - ChoiceNoExt::run(ie, ctx); - } - else - { - Tools::bit_accessor::put(1, 1, ctx.refBuffer()); - NormallySmallNonnegativeBinaryInteger::run(ie, ctx, idx - IE::constraint_t::upper_bound - 1); - OpenTypeVisitorEncoder ve{ ctx }; - ie.encode(ve); - } - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - u8 ext = Tools::bit_accessor::get(1, ctx.refBuffer()); - if (ext) - { - typename IE::index_type idx = IE::constraint_t::upper_bound + 1 + NormallySmallNonnegativeBinaryInteger::run(ctx); - if (idx >= IE::constraint_t::total_num_entries) - { - ie.set_unknown(); - size_t size = LengthDeterminantDefault::run(ctx); - DecoderCtx::buf_type& buffer = ctx.refBuffer(); - if (buffer.getBytesLeft() < size) - ctx.refErrorCtx().lengthErrorBytes(buffer.getBytesLeft(), size); - else - buffer.advance(size); - } - else - { - OpenTypeVisitorDecoder ve{ ctx }; - ie.decode(IE::denormalize(idx), ve); - } - } - else - ChoiceNoExt::run(ie, ctx); - } -}; - -//22.6 No extension -template -struct Choice > -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - ChoiceNoExt::run(ie, ctx); - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - ChoiceNoExt::run(ie, ctx); - } -}; - -} //namespace per -} //namespace asn diff --git a/e2sim/previous/src/ASN1/asn/per/codec.hpp b/e2sim/previous/src/ASN1/asn/per/codec.hpp deleted file mode 100755 index 176792a..0000000 --- a/e2sim/previous/src/ASN1/asn/per/codec.hpp +++ /dev/null @@ -1,325 +0,0 @@ -#pragma once -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries - -// Local Includes: Application specific classes, functions, and libraries -#include "asn/per/common.hpp" -#include "asn/elements.hpp" -#include "asn/per/context.hpp" -#include "asn/per/length.hpp" -#include "asn/per/integer.hpp" -#include "asn/per/enumerated.hpp" -#include "asn/per/ostring.hpp" -#include "asn/per/bstring.hpp" -#include "asn/per/sequence_of.hpp" -#include "asn/per/sequence.hpp" -#include "asn/per/choice.hpp" -#include "asn/per/visitor.hpp" -#include "asn/per/oid.hpp" - -namespace asn { -namespace per { - -/******************************************************************************** -pack -*********************************************************************************/ -template -bool pack(IE const& ie, EncoderCtx& ctx) -{ - ctx.refErrorCtx().reset(); - Element::run(ie, ctx); - - if (ctx) - Tools::bit_accessor::padByte(ctx.refBuffer()); - - return static_cast(ctx); -} -/******************************************************************************** -unpack -*********************************************************************************/ -template -bool unpack(IE& ie, DecoderCtx& ctx) -{ - Element::run(ie, ctx); - - if (ctx) - Tools::bit_accessor::padByte(ctx.refBuffer()); - - if(ctx && ctx.refBuffer().getBytesLeft()) - { - ctx.ie_name(IE::name()); - ctx.refErrorCtx().lengthErrorBytes(ctx.refBuffer().getBytesLeft(), 0); - } - - return static_cast(ctx); -} - -/*************************************************************************************** -* ElementType -***************************************************************************************/ -template -struct ElementType; - -/*************************************************************************************** -* BOOLEAN: Encoding the boolean type (X.691 11) -***************************************************************************************/ -template -struct ElementType -{ -protected: - template friend struct Element; - - static void inline run(IE const& ie, EncoderCtx& ctx) - { - Tools::bit_accessor::put(static_cast(ie.get()), 1, ctx.refBuffer()); - } - - static void inline run(IE& ie, DecoderCtx& ctx) - { - ie.set(0 != Tools::bit_accessor::get(1, ctx.refBuffer())); - } -}; -/*************************************************************************************** -* INTEGER: Encoding the integer type (X.691 12) -***************************************************************************************/ -template -struct ElementType -{ -protected: - template friend struct Element; - - static void inline run(IE const& ie, EncoderCtx& ctx) - { - Integer::run(ie, ctx); - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - Integer::run(ie, ctx); - } -}; -/*************************************************************************************** -* ENUMERATED: Encoding the enumerated type (X.691 13) -***************************************************************************************/ -template -struct ElementType -{ -protected: - template friend struct Element; - - static void inline run(IE const& ie, EncoderCtx& ctx) - { - Enumerated::run(ie, ctx); - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - Enumerated::run(ie, ctx); - } -}; -/*************************************************************************************** -* BIT STRING: Encoding the bitstring type (X.691 15) -***************************************************************************************/ -template -struct ElementType -{ -protected: - template friend struct Element; - - static void inline run(IE const& ie, EncoderCtx& ctx) - { - Bitstring::run(ie, ctx); - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - ie.clear(); - Bitstring::run(ie, ctx); - } -}; -/*************************************************************************************** -* OCTET STRING: Encoding the octetstring type (X.691 16) -***************************************************************************************/ -template -struct ElementType -{ -protected: - template friend struct Element; - - static void inline run(IE const& ie, EncoderCtx& ctx) - { - Octetstring::run(ie, ctx); - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - ie.clear(); - Octetstring::run(ie, ctx); - } -}; -/*************************************************************************************** -* NULL: Encoding the null type (X.691 17) -***************************************************************************************/ -template -struct ElementType -{ -protected: - template friend struct Element; - - static void inline run(IE const& ie, EncoderCtx& ctx) { /*do nothing*/ } - static void inline run(IE& ie, DecoderCtx& ctx) - { - ie.setpresent(true); - } -}; -/*************************************************************************************** -* SEQUENCE: Encoding the sequence type (X.691 18) -***************************************************************************************/ -template -struct ElementType -{ -protected: - template friend struct Element; - - static void inline run(IE const& ie, EncoderCtx& ctx) - { - ctx.container_name(IE::name()); - Seq::run(ie, ctx); - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - ctx.m_container = &ie; - Seq::run(ie, ctx); - ctx.m_container = nullptr; - } -}; -/*************************************************************************************** -* SEQUENCE OF: Encoding the sequence-of type (X.691 19) -***************************************************************************************/ -template -struct ElementType -{ -protected: - template friend struct Element; - - static void inline run(IE const& ie, EncoderCtx& ctx) - { - ctx.container_name(IE::name()); - SequenceOf::run(ie, ctx); - - for (auto& elem : ie) - Element::run(elem, ctx); - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - ie.clear(); - SequenceOf::run(ie, ctx); - - for (auto & elem : ie) - Element::run(elem, ctx); - } -}; -/*************************************************************************************** -* SET: Encoding the set type (X.691 20) -***************************************************************************************/ - - -/*************************************************************************************** -* SET OF: Encoding the set-of type (X.691 21) -***************************************************************************************/ - -/*************************************************************************************** -* CHOICE: Encoding the choice type (X.691 22) -***************************************************************************************/ -template -struct ElementType -{ -protected: - template friend struct Element; - - static void inline run(IE const& ie, EncoderCtx& ctx) - { - if(ie.is_valid()) - { - ctx.container_name(IE::name()); - Choice::run(ie, ctx); - } - else - ctx.refErrorCtx().tagError(ie.get_index()); - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - ie.clear(); - ctx.m_container = &ie; - Choice::run(ie, ctx); - ctx.m_container = nullptr; - } -}; - -/*************************************************************************************** -* IE_OBJECT_IDENTIFIER: Encoding the object identifier type (X.691 23) -***************************************************************************************/ -template -struct ElementType -{ -protected: - template friend struct Element; - - static void inline run(IE const& ie, EncoderCtx& ctx) - { - Oid::run(ie, ctx); - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - ie.clear(); - Oid::run(ie, ctx); - } -}; - -/*************************************************************************************** -* COMMON: Element -***************************************************************************************/ -template -struct Element -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - if (ctx) - { - ASN_ENCODER_TRACE("IE buffer: %s", static_cast(IE_TYPE), IE::name(), ctx.refBuffer().toString()); - ctx.ie_name(IE::name()); - if (IE_TYPE != element_type::T_SEQUENCE && !ie.is_valid()) - { - ctx.refErrorCtx().errorNoMandatory(); - } - else - ElementType::run(ie, ctx); - } - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - if (ctx) - { - ASN_DECODER_TRACE("IE buffer: %s", static_cast(IE_TYPE), IE::name(), ctx.refBuffer().toString()); - ctx.ie_name(IE::name()); - ElementType::run(ie, ctx); - } - } -}; - -} //namespace per -} //namespace asn diff --git a/e2sim/previous/src/ASN1/asn/per/common.hpp b/e2sim/previous/src/ASN1/asn/per/common.hpp deleted file mode 100755 index 5b92100..0000000 --- a/e2sim/previous/src/ASN1/asn/per/common.hpp +++ /dev/null @@ -1,58 +0,0 @@ -#pragma once -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries -#include - -// Local Includes: Application specific classes, functions, and libraries -#include "asn/asn.hpp" -#include "type_defs.h" - -#include "asn/buffer.hpp" -#include "context.hpp" - -//#define ASN_DECODER_TRACE_ENABLE -//#define ASN_ENCODER_TRACE_ENABLE - -#ifdef ASN_DECODER_TRACE_ENABLE -#define ASN_DECODER_TRACE(FMT, ...) printf(FMT "\n", __VA_ARGS__) -#else -#define ASN_DECODER_TRACE(...) -#endif - -#ifdef ASN_ENCODER_TRACE_ENABLE -#define ASN_ENCODER_TRACE(FMT, ...) printf(FMT "\n", __VA_ARGS__) -#else -#define ASN_ENCODER_TRACE(...) -#endif - -namespace asn { -namespace per { - -struct Tools -{ - typedef bit_accessor_cross_byte bit_accessor; -}; - -template -struct Element; - -} //namespace per -} //namespace asn diff --git a/e2sim/previous/src/ASN1/asn/per/context.hpp b/e2sim/previous/src/ASN1/asn/per/context.hpp deleted file mode 100755 index 2a5d7e9..0000000 --- a/e2sim/previous/src/ASN1/asn/per/context.hpp +++ /dev/null @@ -1,154 +0,0 @@ -#pragma once -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries -#include - -// Local Includes: Application specific classes, functions, and libraries -#include "asn/utility.hpp" -#include "asn/buffer.hpp" -#include "asn/error_context.hpp" - -namespace asn { -namespace per { - -/******************************************************************************** -EncoderCtx -*********************************************************************************/ -class EncoderCtx : boost::noncopyable -{ -public: - typedef buffer buf_type; - - EncoderCtx(u8* data, size_t size) - : m_buffer{ m_errCtx } - { - Reset(data, size); - } - - template - explicit EncoderCtx(u8(&buff)[SIZE]) - : EncoderCtx(buff, SIZE) - { - } - - explicit EncoderCtx() - : EncoderCtx(nullptr, 0) - { - } - - buf_type& refBuffer() { return m_buffer; } - error_context& refErrorCtx() { return m_errCtx; } - explicit operator bool() const { return static_cast(m_errCtx); } - - void Reset(void* data = nullptr, size_t size = 0) - { - m_buffer.reset(static_cast(data), size); - m_errCtx.reset(); - } - - //Name of the being processed IE - void ie_name(const char* name) { m_errCtx.ie_name(name); } - char const* ie_name() const { return m_errCtx.ie_name(); } - - void container_name(const char* name) { m_errCtx.container_name(name); } - char const* container_name() const { return m_errCtx.container_name(); } - -private: - template - friend struct Encode; - - error_context m_errCtx; - buf_type m_buffer; -}; - - -/******************************************************************************** -DecoderCtx -*********************************************************************************/ -class DecoderCtx : boost::noncopyable -{ -public: - typedef buffer buf_type; - typedef allocator alloc_type; - typedef u64 map_type; - - DecoderCtx(const void* data = nullptr, size_t size = 0, void* alloc_buffer = nullptr, size_t alloc_buffer_size = 0) - : m_buffer{ m_errCtx } - { - reset(data, size, alloc_buffer, alloc_buffer_size); - } - - buf_type& refBuffer() { return m_buffer; } - alloc_type& refAllocator() { return m_allocator; } - error_context& refErrorCtx() { return m_errCtx; } - explicit operator bool() const { return static_cast(m_errCtx); } - - void reset(const void* data = nullptr, size_t size = 0, void* alloc_buffer = nullptr, size_t alloc_buffer_size = 0) - { - m_allocator.reset(alloc_buffer, alloc_buffer_size); - m_buffer.reset(static_cast(data), size); - m_errCtx.reset(); - m_map = 0; - m_container = nullptr; - } - - bool map_elm() - { - //m_map = (m_map << 1) | (m_map >> (sizeof(m_map)*CHAR_BIT - 1)); - //return m_map & 1u; - - constexpr map_type mask = ((map_type)1) << (sizeof(map_type)*CHAR_BIT - 1); - - bool rv = m_map & mask; - m_map = m_map << 1; - - return rv; - } - - map_type set_map(map_type map) - { - map_type rval = m_map; - m_map = map; - return rval; - } - - map_type get_map() const {return m_map;} - - //Pointer to container (SEQ | CHO) - void* m_container{ nullptr }; - - //Name of the being processed IE - void ie_name(const char* name) { m_errCtx.ie_name(name); } - char const* ie_name() const { return m_errCtx.ie_name(); } - - void container_name(const char* name) { m_errCtx.container_name(name); } - char const* container_name() const { return m_errCtx.container_name(); } - -private: - //Optional or Extension elements' presence bitmap. Used in sequences - map_type m_map{ 0 }; - error_context m_errCtx; - buf_type m_buffer; - alloc_type m_allocator; -}; - -} //namespace per -} //namespace asn diff --git a/e2sim/previous/src/ASN1/asn/per/enumerated.hpp b/e2sim/previous/src/ASN1/asn/per/enumerated.hpp deleted file mode 100755 index c2e8851..0000000 --- a/e2sim/previous/src/ASN1/asn/per/enumerated.hpp +++ /dev/null @@ -1,79 +0,0 @@ -#pragma once -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries - -// Local Includes: Application specific classes, functions, and libraries -#include "asn/per/common.hpp" -#include "asn/per/whole_number.hpp" -#include "asn/per/binary_integer.hpp" - -namespace asn { -namespace per { - -template -struct Enumerated; - -template -struct Enumerated > -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - if (ie.get() > IE::constraint_t::upper_bound) - { - ctx.refErrorCtx().valueRangeError(static_cast(ie.get())); - return; - } - ConstrainedWholeNumber::run(ctx, ie.get()); - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - ie.set(ConstrainedWholeNumber::run(ctx)); - } -}; - -template -struct Enumerated > -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - if (ie.get() <= IE::constraint_t::upper_bound) - { - Tools::bit_accessor::put(0, 1, ctx.refBuffer()); - ConstrainedWholeNumber::run(ctx, ie.get()); - } - else - { - Tools::bit_accessor::put(1, 1, ctx.refBuffer()); - NormallySmallNonnegativeBinaryInteger::run(ie, ctx, ie.get() - IE::constraint_t::upper_bound - 1); - } - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - u8 ext = Tools::bit_accessor::get(1, ctx.refBuffer()); - if (ext) - ie.set(IE::constraint_t::upper_bound + 1 + NormallySmallNonnegativeBinaryInteger::run(ctx)); - else - ie.set(ConstrainedWholeNumber::run(ctx)); - } -}; - -} //namespace per -} //namespace asn diff --git a/e2sim/previous/src/ASN1/asn/per/integer.hpp b/e2sim/previous/src/ASN1/asn/per/integer.hpp deleted file mode 100755 index 7bb93c2..0000000 --- a/e2sim/previous/src/ASN1/asn/per/integer.hpp +++ /dev/null @@ -1,154 +0,0 @@ -#pragma once -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries - -// Local Includes: Application specific classes, functions, and libraries -#include "asn/elements.hpp" -#include "asn/per/common.hpp" -#include "asn/per/binary_integer.hpp" -#include "asn/per/whole_number.hpp" - -namespace asn { -namespace per { - -template -struct Integer; - -template -struct Integer > -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - if(IE::constraint_t::is_extended(ie.get())) - { - ctx.refErrorCtx().valueRangeError(static_cast(ie.get())); - return; - } - ConstrainedWholeNumber::run(ctx, ie.get()); - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - ie.set(ConstrainedWholeNumber::run(ctx)); - } -}; - -template -struct Integer > -{ - //X.691 12.1 - static void inline run(IE const& ie, EncoderCtx& ctx) - { - if (!IE::constraint_t::is_extended(ie.get())) - { - Tools::bit_accessor::put(0, 1, ctx.refBuffer()); - //X.691 12.2 - ConstrainedWholeNumber::run(ctx, ie.get()); - } - else - { - Tools::bit_accessor::put(1, 1, ctx.refBuffer()); - //X.691 12.2.4, 12.2.6, 10.8s - TwosComplementBinaryInteger::run(ie, ctx); - } - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - - u8 ext = Tools::bit_accessor::get(1, ctx.refBuffer()); - if (ext) - TwosComplementBinaryInteger::run(ie, ctx); - else - ie.set(ConstrainedWholeNumber::run(ctx)); - } -}; - -// (X.691 10.7) -template -struct Integer > -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - if(IE::constraint_t::is_extended(ie.get())) - { - ctx.refErrorCtx().valueRangeError(static_cast(ie.get())); - return; - } - NonnegativeBinaryInteger::run(ie.get() - IE::constraint_t::lower_bound, ctx); - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - typename IE::value_type val = 0; - NonnegativeBinaryInteger::run(val, ctx, false); - ie.set(IE::constraint_t::lower_bound + val); - } -}; - -template -struct Integer > -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - if (!IE::constraint_t::is_extended(ie.get())) - { - Tools::bit_accessor::put(0, 1, ctx.refBuffer()); - NonnegativeBinaryInteger::run(ie.get() - IE::constraint_t::lower_bound, ctx); - } - else - { - Tools::bit_accessor::put(1, 1, ctx.refBuffer()); - TwosComplementBinaryInteger::run(ie, ctx); - } - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - u8 ext = Tools::bit_accessor::get(1, ctx.refBuffer()); - - if (ext) - TwosComplementBinaryInteger::run(ie, ctx); - else - { - typename IE::value_type val = 0; - NonnegativeBinaryInteger::run(val, ctx, false); - ie.set(val + IE::constraint_t::lower_bound); - } - } -}; - -/*************************************************************************************** -* Encoding of an unconstrained whole number (X.691 10.8) -***************************************************************************************/ - -template -struct Integer > -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - TwosComplementBinaryInteger::run(ie, ctx); - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - TwosComplementBinaryInteger::run(ie, ctx); - } -}; - -} //namespace per -} //namespace asn - diff --git a/e2sim/previous/src/ASN1/asn/per/length.hpp b/e2sim/previous/src/ASN1/asn/per/length.hpp deleted file mode 100755 index 488a830..0000000 --- a/e2sim/previous/src/ASN1/asn/per/length.hpp +++ /dev/null @@ -1,238 +0,0 @@ -#pragma once -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries -#include - -// Local Includes: Application specific classes, functions, and libraries -#include "asn/per/common.hpp" -#include "asn/per/whole_number.hpp" - -namespace asn { -namespace per { - -/******************************************************************************** -* Encoding of a length determinant (X.691 10.9) -*********************************************************************************/ - -template -struct LengthDeterminant; - -struct LengthDeterminantDefault //Unconstrained length -{ - static u8 bytes_needed(size_t len) - { - if (len <= 127) - return 1; - return 2; - } - - static void run(EncoderCtx& ctx, size_t len) - { - if (len <= 127) - { - Tools::bit_accessor::padByte(ctx.refBuffer()); - ctx.refBuffer().putByte(static_cast(len)); - } - else if (len < 16384) - { - Tools::bit_accessor::padByte(ctx.refBuffer()); - len += 0x8000; - ctx.refBuffer().putByte(static_cast(len >> 8)); - ctx.refBuffer().putByte(static_cast(len)); - } - else - { - //todo: 10.9.3.8.1 for len >= 16K - } - } - static size_t run(DecoderCtx& ctx) - { - size_t rval = 0; - Tools::bit_accessor::padByte(ctx.refBuffer()); - - u8 const* data = ctx.refBuffer().getBytes(1); - if (data) - { - if (*data & 0x80) - { - rval = (*data & 0x7F) << 8; - data = ctx.refBuffer().getBytes(1); - if (data) - rval |= *data; - } - else - rval = *data; - } - return rval; - } -}; - -//10.9.3.3 -template -struct LengthDeterminant> -{ - static void run(EncoderCtx& ctx, size_t len) - { - ConstrainedWholeNumber::run(ctx, len); - } - static size_t inline run(DecoderCtx& ctx, bool extended_len) - { - return ConstrainedWholeNumber::run(ctx); - } -}; -template -struct LengthDeterminant> -{ - static void run(EncoderCtx& ctx, size_t len) - { - if (len > Range::upper_bound || len < Range::lower_bound) - LengthDeterminantDefault::run(ctx, len); - else - ConstrainedWholeNumber::run(ctx, len); - } - static size_t inline run(DecoderCtx& ctx, bool extended_len) - { - if (extended_len) - return LengthDeterminantDefault::run(ctx); - - return ConstrainedWholeNumber::run(ctx); - } -}; - -template -struct LengthDeterminant= 65536) > > -{ - static void run(EncoderCtx& ctx, size_t len) - { - LengthDeterminantDefault::run(ctx, len); - } - static size_t inline run(DecoderCtx& ctx, bool extended_len) - { - return LengthDeterminantDefault::run(ctx); - } -}; - -//10.9.3.4 : for "normally small length". bitmaps, sequence types -template -struct NormallySmallLength; - -template -struct NormallySmallLength > -{ - static_assert(Length > 0, "NormallySmallLength must be > 0"); - - static void run(EncoderCtx& ctx) - { - Tools::bit_accessor::put((u8)(Length - 1), 7, ctx.refBuffer()); - } - static size_t run(DecoderCtx& ctx) - { - u8 ext = Tools::bit_accessor::get(1, ctx.refBuffer()); - if (ext) - return LengthDeterminantDefault::run(ctx); - return Tools::bit_accessor::get(6, ctx.refBuffer()) + 1; - } -}; - -template -struct NormallySmallLength 64)> > -{ - static void run(EncoderCtx& ctx) - { - Tools::bit_accessor::put(1, 1, ctx.refBuffer()); - LengthDeterminantDefault::run(ctx, Length); - } -}; - -/* -* BinaryIntegerLength -*/ - -template -struct NBytes -{ - static constexpr bound_t value = std::log2( N ) / 8 + 1; -}; - -template -struct NBytes > -{ - static constexpr bound_t value = 1; -}; - -template -struct NRange -{ - static constexpr bound_t lower_bound = B1; - static constexpr bound_t upper_bound = B2; -}; - -template -struct NRange > -{ - static constexpr bound_t lower_bound = B2; - static constexpr bound_t upper_bound = B1; -}; - -template -struct BinaryIntegerLength -{ - typedef NRange< - NBytes::value, - NBytes::value - > nrange; - - using boundary_type = typename Range::boundary_type; - static constexpr bool extended = Range::extended; - static constexpr bound_t lower_bound = nrange::lower_bound; - static constexpr bound_t upper_bound = nrange::upper_bound; - - static void run(EncoderCtx& ctx, size_t len) - { - LengthDeterminant::run(ctx, len); - } - static size_t inline run(DecoderCtx& ctx, bool extended_len) - { - return LengthDeterminant::run(ctx, extended_len); - } -}; - -template -struct BinaryIntegerLength> -{ - static void run(EncoderCtx& ctx, size_t len) - { - LengthDeterminantDefault::run(ctx, len); - } - static size_t inline run(DecoderCtx& ctx, bool extended_len) - { - return LengthDeterminantDefault::run(ctx); - } -}; - -} //namespace per -} //namespace asn diff --git a/e2sim/previous/src/ASN1/asn/per/oid.hpp b/e2sim/previous/src/ASN1/asn/per/oid.hpp deleted file mode 100755 index c4f222a..0000000 --- a/e2sim/previous/src/ASN1/asn/per/oid.hpp +++ /dev/null @@ -1,68 +0,0 @@ -#pragma once -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries - -// Local Includes: Application specific classes, functions, and libraries -#include "asn/per/common.hpp" - -namespace asn { -namespace per { - -template -struct Oid -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - size_t len = ie.get().size(); - - if (len > 255) - { - ctx.refErrorCtx().valueError(len, 0, 0); - } - else - { - Tools::bit_accessor::padByte(ctx.refBuffer()); - ctx.refBuffer().putBytes(reinterpret_cast(&len), 1); - ctx.refBuffer().putBytes(ie.get().data(), len); - } - } - - static void inline run(IE& ie, DecoderCtx& ctx) - { - Tools::bit_accessor::padByte(ctx.refBuffer()); - - uint8_t const* data_in = ctx.refBuffer().getBytes(1); // length - - if(data_in) - { - size_t len = *data_in; - data_in = ctx.refBuffer().getBytes(len); - - if (data_in) - { - ie.set(len, data_in); - } - } - } -}; - -} //namespace per -} //namespace asn diff --git a/e2sim/previous/src/ASN1/asn/per/ostring.hpp b/e2sim/previous/src/ASN1/asn/per/ostring.hpp deleted file mode 100755 index 4d601bb..0000000 --- a/e2sim/previous/src/ASN1/asn/per/ostring.hpp +++ /dev/null @@ -1,209 +0,0 @@ -#pragma once -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries - -// Local Includes: Application specific classes, functions, and libraries -#include "asn/per/common.hpp" - -namespace asn { -namespace per { - -template < class IE, class Enable = void> -struct Octetstring; - -//16.8 Default -template -struct OctetstringNoExt -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - bound_t size = ie.get().size(); - LengthDeterminant::run(ctx, size); - Tools::bit_accessor::padByte(ctx.refBuffer()); - ctx.refBuffer().putBytes(ie.get().data(), size); - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - size_t len = LengthDeterminant::run(ctx, false); - Tools::bit_accessor::padByte(ctx.refBuffer()); - u8 const* data_in = ctx.refBuffer().getBytes(len); - - if (data_in) - { - ie.set(len, data_in); - } - - } -}; - -//16.5 Zero length -template -struct OctetstringNoExt > -{ - static void inline run(IE const& ie, EncoderCtx& ctx) {/* do nothing */ } - static void inline run(IE& ie, DecoderCtx& ctx) { ie.setpresent(true); } -}; - -//16.6 Up to two octets, fixed length -template -struct OctetstringNoExt> -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - Tools::bit_accessor::put(static_cast(ie.get().data()[0]), 8, ctx.refBuffer()); - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - u8 data_in = Tools::bit_accessor::get(8, ctx.refBuffer()); - u8* data_out = ctx.refAllocator().alloc_bytes(1); - if (data_out) { - data_out[0] = data_in; - ie.set(1, data_out); - } - else - ctx.refErrorCtx().allocatorNoMem(0, 1); - } -}; - -template -struct OctetstringNoExt> -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - Tools::bit_accessor::put(static_cast(ie.get().data()[0]), 8, ctx.refBuffer()); - Tools::bit_accessor::put(static_cast(ie.get().data()[1]), 8, ctx.refBuffer()); - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - u8 data_in[2]; - data_in[0] = Tools::bit_accessor::get(8, ctx.refBuffer()); - data_in[1] = Tools::bit_accessor::get(8, ctx.refBuffer()); - u8* data_out = ctx.refAllocator().alloc_bytes(sizeof(data_in)); - if (data_out) { - data_out[0] = data_in[0]; - data_out[1] = data_in[1]; - ie.set(sizeof(data_in), data_out); - } - else - ctx.refErrorCtx().allocatorNoMem(0, sizeof(data_in)); - } -}; - -//16.7 More than 2 octets, up to 64K, fixed length -template -struct OctetstringNoExt 2)) ->> -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - Tools::bit_accessor::padByte(ctx.refBuffer()); - ctx.refBuffer().putBytes(ie.get().data(), ie.get().size()); - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - Tools::bit_accessor::padByte(ctx.refBuffer()); - const size_t len = (size_t)IE::constraint_t::upper_bound; - u8 const* data_in = ctx.refBuffer().getBytes(len); - if (data_in) - { - ie.set(len, data_in); - } - } -}; - -/**************************************************/ - -//16.3 : Extension present -template -struct Octetstring > -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - bound_t size = ie.get().size(); - if (size <= IE::constraint_t::upper_bound && size >= IE::constraint_t::lower_bound) - { - Tools::bit_accessor::put(0, 1, ctx.refBuffer()); - OctetstringNoExt::run(ie, ctx); - } - else - { - Tools::bit_accessor::put(1, 1, ctx.refBuffer()); - Tools::bit_accessor::padByte(ctx.refBuffer()); - LengthDeterminant::run(ctx, size); - Tools::bit_accessor::padByte(ctx.refBuffer()); - ctx.refBuffer().putBytes(ie.get().data(), size); - } - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - u8 ext = Tools::bit_accessor::get(1, ctx.refBuffer()); - if (ext) - { - Tools::bit_accessor::padByte(ctx.refBuffer()); - size_t len = LengthDeterminant::run(ctx, true); - Tools::bit_accessor::padByte(ctx.refBuffer()); - u8 const* data_in = ctx.refBuffer().getBytes(len); - if (data_in) - { - ie.set(len, data_in); - } - } - else - OctetstringNoExt::run(ie, ctx); - } -}; - -//16.4 : No extension -template -struct Octetstring > -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - if ( ie.get().size() > size_t(IE::constraint_t::upper_bound) || - (IE::constraint_t::lower_bound >= 0 && ie.get().size() < size_t(IE::constraint_t::lower_bound))) - { - ctx.refErrorCtx().sizeRangeError(ie.get().size(), size_t(IE::constraint_t::lower_bound), - size_t(IE::constraint_t::upper_bound)); - } - else - { - OctetstringNoExt::run(ie, ctx); - } - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - OctetstringNoExt::run(ie, ctx); - if ( ie.get().size() > size_t(IE::constraint_t::upper_bound) || - (IE::constraint_t::lower_bound >= 0 && ie.get().size() < size_t(IE::constraint_t::lower_bound))) - { - ctx.refErrorCtx().sizeRangeError(ie.get().size(), size_t(IE::constraint_t::lower_bound), - size_t(IE::constraint_t::upper_bound)); - } - } -}; - -} //namespace per -} //namespace asn diff --git a/e2sim/previous/src/ASN1/asn/per/sequence.hpp b/e2sim/previous/src/ASN1/asn/per/sequence.hpp deleted file mode 100755 index e533e80..0000000 --- a/e2sim/previous/src/ASN1/asn/per/sequence.hpp +++ /dev/null @@ -1,568 +0,0 @@ -#pragma once -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries - -// Local Includes: Application specific classes, functions, and libraries -#include "asn/per/common.hpp" -#include "asn/per/visitor.hpp" - -namespace asn { -namespace per { - -/****************************************************************** - * Adapter - *****************************************************************/ -template -struct Adapter -{ - static void inline run(IE const& ie, EncoderCtx& ctx, Container const& cont) - { - Element::run(ie, ctx); - } - - static void inline run(IE& ie, DecoderCtx& ctx, Container const& cont) - { - Element::run(ie, ctx); - } -}; -template -struct Adapter> -{ - static void inline run(IE const& ie, EncoderCtx& ctx, Container const& cont) - { - VisitorEncoder v(ctx); - bool rv = ie.encode(v, cont); - if(!rv && static_cast(ctx)) - { - ctx.refErrorCtx().errorNoObject(Container::name()); - } - } - - static void inline run(IE& ie, DecoderCtx& ctx, Container const& cont) - { - VisitorDecoder v(ctx); - bool rv = ie.decode(v, cont); - if(!rv && static_cast(ctx)) - { - ctx.refErrorCtx().errorNoObject(Container::name()); - } - } -}; -template -struct Adapter > -{ - static void inline run(IE const& ie, EncoderCtx& ctx, Container const& cont) - { - OpenTypeVisitorEncoder v(ctx); - bool rv = ie.encode(v, cont); - if(!rv && static_cast(ctx)) - { - ctx.refErrorCtx().errorNoObject(Container::name()); - } - } - - static void inline run(IE& ie, DecoderCtx& ctx, Container const& cont) - { - OpenTypeVisitorDecoder v(ctx); - bool rv = ie.decode(v, cont); - if(!rv && static_cast(ctx)) - { - ctx.refErrorCtx().errorNoObject(Container::name()); - } - if(ie.is_unknown()) //skip the unknown Open Type - { - size_t size = LengthDeterminantDefault::run(ctx); - DecoderCtx::buf_type& buffer = ctx.refBuffer(); - if (buffer.getBytesLeft() < size) - ctx.refErrorCtx().lengthErrorBytes(buffer.getBytesLeft(), size); - else - buffer.advance(size); - } - } -}; - -/****************************************************************** - * RootEncoder - *****************************************************************/ -template -struct RootEncoder -{ - RootEncoder(EncoderCtx& ctx, Container const& cont) : m_ctx(ctx), m_cont(cont) {} - - template - bool operator() (IE const& ie) const - { - if(!IE::extension) - { - if(IE::optional && !ie.is_valid()) - return static_cast(m_ctx); - Adapter::run(ie, m_ctx, m_cont); - } - return static_cast(m_ctx); - } - EncoderCtx& m_ctx; - Container const& m_cont; -}; - -/****************************************************************** - * RootDecoder - *****************************************************************/ -template -struct RootDecoder -{ - RootDecoder(DecoderCtx& ctx, Container const& cont) : m_ctx(ctx), m_cont(cont) {} - - template - bool operator() (IE& ie) const - { - if(!IE::extension) - { - if(IE::optional) - { - if(m_ctx.map_elm()) - { - ie.setpresent(true); - Adapter::run(ie, m_ctx, m_cont); - } - else - ie.setpresent(false); - } - else - { - Adapter::run(ie, m_ctx, m_cont); - } - } - return static_cast(m_ctx); - } - DecoderCtx& m_ctx; - Container const& m_cont; -}; - -/****************************************************************** - * ExtEncoder - *****************************************************************/ -template -struct ExtEncoder -{ - explicit ExtEncoder(EncoderCtx& ctx, Container const& cont) : m_ctx(ctx), m_cont(cont) {} - - template - bool operator() (IE const& ie) const - { - if(!IE::extension) - return static_cast(m_ctx); - - if(IE::optional && !ie.is_valid()) - return static_cast(m_ctx); - - size_t reserved_size = 1; //1 byte length is most likely - Tools::bit_accessor::padByte(m_ctx.refBuffer()); - - if (m_ctx.refBuffer().getBytesLeft()) - { - EncoderCtx::buf_type::pointer p = m_ctx.refBuffer().advance(reserved_size); - EncoderCtx::buf_type::pointer start = p + reserved_size; - - Adapter::run(ie, m_ctx, m_cont); - - if (m_ctx) - { - Tools::bit_accessor::padByte(m_ctx.refBuffer()); - EncoderCtx::buf_type::pointer p_new = m_ctx.refBuffer().begin(); - size_t size = p_new - start; - size_t needed = LengthDeterminantDefault::bytes_needed(size) - reserved_size; - if (needed) //1 byte is not enough for the length determinant. it is hardly possible - { - if (m_ctx.refBuffer().getBytesLeft() < needed) { - m_ctx.refErrorCtx().lengthErrorBytes(m_ctx.refBuffer().getBytesLeft(), needed); - return false; - } - memmove(start + needed, start, size); - p_new += needed; - } - m_ctx.refBuffer().set_begin(p, 0); - LengthDeterminantDefault::run(m_ctx, size); - if (m_ctx) { - m_ctx.refBuffer().set_begin(p_new, 0); - Tools::bit_accessor::padByte(m_ctx.refBuffer()); - } - } - } - else - { - m_ctx.refErrorCtx().lengthErrorBytes(m_ctx.refBuffer().getBytesLeft(), reserved_size); - return false; - } - return static_cast(m_ctx); - } - EncoderCtx& m_ctx; - Container const& m_cont; -}; - -/****************************************************************** - * ExtDecoder - *****************************************************************/ -template -struct ExtDecoder -{ - explicit ExtDecoder(DecoderCtx& ctx, Container const& cont) : m_ctx(ctx), m_cont(cont) {} - - template - bool operator() (IE& ie) const - { - if(!IE::extension) - return static_cast(m_ctx); - - if (m_ctx.map_elm()) - { - ie.setpresent(true); - size_t size = LengthDeterminantDefault::run(m_ctx); - DecoderCtx::buf_type& buffer = m_ctx.refBuffer(); - if (buffer.getBytesLeft() < size) - { - m_ctx.refErrorCtx().lengthErrorBytes(buffer.getBytesLeft(), size); - return false; - } - DecoderCtx::buf_type::pointer end = buffer.end(); - buffer.set_end(buffer.begin() + size); - Adapter::run(ie, m_ctx, m_cont); - Tools::bit_accessor::padByte(m_ctx.refBuffer()); - buffer.set_end(end); - } - else - { - ie.setpresent(false); - } - - return static_cast(m_ctx); - } - DecoderCtx& m_ctx; - Container const& m_cont; -}; - -/****************************************************************** - * SeqMap - *****************************************************************/ -template -struct SeqMap; - -/* -template -struct SeqMap 8) > > -{ - static void inline run(EncoderCtx& ctx, size_t val) - { - u8 k = IE::num_opt_entries / 8; // num of full bytes in a seq map mask - u8 fb_bits = IE::num_opt_entries % 8; // num of first byte bits (without padding) - - if (fb_bits) { - // Put a part of a first byte (without padding, only seq map own bits) - Tools::bit_accessor::put((u8)(val >> 8*k), fb_bits, ctx.refBuffer()); - } - - // Put other bytes (full bytes) - for (int i = (k-1); i >= 0; i--) { - Tools::bit_accessor::put((u8)(val >> 8*i), 8, ctx.refBuffer()); - } - } - - static DecoderCtx::map_type inline run(DecoderCtx& ctx) - { - uint num_opts = IE::num_opt_entries; - u64 res = 0; - u8 k = 1; - u8 lb_bits = IE::num_opt_entries % 8; // num of last byte bits (without padding) - - while (num_opts >= 8) { - size_t shift = sizeof(DecoderCtx::map_type) * CHAR_BIT - 8*k; - - DecoderCtx::map_type rval = Tools::bit_accessor::get(8, ctx.refBuffer()); - - rval = rval << shift; - res |= rval; - - k++; - num_opts -= 8; - } - - if (lb_bits > 0) { - // (8 - lb_bits) - padding in a last byte - size_t shift = sizeof(DecoderCtx::map_type) * CHAR_BIT - 8*k + 8 - lb_bits; - - DecoderCtx::map_type rval = Tools::bit_accessor::get(lb_bits, ctx.refBuffer()); - - rval = rval << shift; - res |= rval; - } - - return res; - } -} -; -*/ - -template -struct SeqMap > //todo: to add code for more than 8 optional elements -{ - static void inline run(EncoderCtx& ctx, size_t val) - { - Tools::bit_accessor::put((u8)val, IE::num_opt_entries, ctx.refBuffer()); - } - static DecoderCtx::map_type inline run(DecoderCtx& ctx) - { - size_t shift = sizeof(DecoderCtx::map_type) * CHAR_BIT - IE::num_opt_entries; - DecoderCtx::map_type rval = Tools::bit_accessor::get(IE::num_opt_entries, ctx.refBuffer()); - rval = rval << shift; - return rval; - } -}; - -/****************************************************************** - * SeqExtMap - *****************************************************************/ -template -struct SeqExtMap -{ - static void inline run(EncoderCtx& ctx, size_t val) {} - static DecoderCtx::map_type inline run(DecoderCtx& ctx) - { - size_t len = NormallySmallLength<1>::run(ctx); - size_t shift = sizeof(DecoderCtx::map_type) * CHAR_BIT - len; - u8 tmp; - DecoderCtx::map_type rval{ 0 }; - u8 val; - - while (len) { - tmp = len > 8 ? 8 : (u8)len; - val = Tools::bit_accessor::get(tmp, ctx.refBuffer()); - rval = rval << tmp; - rval |= val; - len -= tmp; - } - rval = rval << shift; - return rval; - } -}; - -template -struct SeqExtMap 0)) > > -{ - static void inline run(EncoderCtx& ctx, size_t val) - { - NormallySmallLength::run(ctx); - Tools::bit_accessor::put((u8)val, NumExtEntries, ctx.refBuffer()); - } -}; - -template -struct SeqExtMap 8) > > -{ - static void inline run(EncoderCtx& ctx, size_t val) - { - NormallySmallLength::run(ctx); - - size_t len = NumExtEntries; - size_t tmp; - - while (len) { - tmp = len > 8 ? 8 : len; - Tools::bit_accessor::put((u8)val, tmp, ctx.refBuffer()); - val = val >> tmp; - len -= tmp; - } - } -}; - -/****************************************************************** - * SeqMapBuilder - *****************************************************************/ -struct SeqMapBuilder -{ - SeqMapBuilder(uint64_t& map) : m_map(map) {} - - template - bool operator()(IE const& ie) - { - if(!IE::extension && IE::optional) - { - m_map = m_map << 1; - if(ie.is_valid()) - m_map |= 1; - } - return true; - } - uint64_t& m_map; -}; - -/****************************************************************** - * SeqExtMapBuilder - *****************************************************************/ -struct SeqExtMapBuilder -{ - SeqExtMapBuilder(uint64_t& map) : m_map(map) {} - - template - bool operator()(IE const& ie) - { - if(IE::extension) - { - m_map = m_map << 1; - if(!IE::optional || (IE::optional && ie.is_valid())) - m_map |= 1; - } - return true; - } - uint64_t& m_map; -}; - -/****************************************************************** - * SeqNoExtDefault - *****************************************************************/ -// Default (No OPT/DEF present within the extension root) -template -struct SeqNoExtDefault -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - RootEncoder ve(ctx, ie); - ie.encode(ve); - } - static void inline run(IE& ie, DecoderCtx& ctx, DecoderCtx::map_type map = 0) - { - RootDecoder ve(ctx, ie); - - DecoderCtx::map_type old_map = ctx.set_map(map); - ie.decode(ve); - ctx.set_map(old_map); - } -}; - -/****************************************************************** - * SeqNoExt - *****************************************************************/ -// Default (No OPT/DEF present within the extension root) -template -struct SeqNoExt -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - SeqNoExtDefault::run(ie, ctx); - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - SeqNoExtDefault::run(ie, ctx); - } -}; - -//18.2 OPT/DEF present within the extension root -template -struct SeqNoExt 0) > > -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - uint64_t map = 0; - SeqMapBuilder mb(map); - ie.encode(mb); - SeqMap::run(ctx, map); - SeqNoExtDefault::run(ie, ctx); - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - SeqNoExtDefault::run(ie, ctx, SeqMap::run(ctx)); - } -}; - -/****************************************************************** - * Seq - *****************************************************************/ -template -struct Seq; - -template -struct Seq > -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - uint64_t map = 0; - SeqExtMapBuilder emb(map); - ie.encode(emb); - - if (map) { - Tools::bit_accessor::put(1, 1, ctx.refBuffer()); - SeqNoExt::run(ie, ctx); - SeqExtMap::run(ctx, map); - ExtEncoder ove(ctx, ie); - ie.encode(ove); - } - else { - Tools::bit_accessor::put(0, 1, ctx.refBuffer()); - SeqNoExt::run(ie, ctx); - } - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - u8 ext = Tools::bit_accessor::get(1, ctx.refBuffer()); - if (ext) - { - SeqNoExt::run(ie, ctx); - - auto old_map = ctx.set_map(SeqExtMap::run(ctx)); // we do not know how many exts can be received - { - ExtDecoder ove(ctx, ie); - ie.decode(ove); - - auto& buffer = ctx.refBuffer(); - while(ctx.get_map()) - { - if(ctx.map_elm()) //skip unknown extensions - { - size_t size = LengthDeterminantDefault::run(ctx); - if (buffer.getBytesLeft() < size) - { - ctx.refErrorCtx().lengthErrorBytes(buffer.getBytesLeft(), size); - break; - } - buffer.advance(size); - } - } - } - ctx.set_map(old_map); - } - else - SeqNoExt::run(ie, ctx); - } -}; - -template -struct Seq > -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - SeqNoExt::run(ie, ctx); - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - SeqNoExt::run(ie, ctx); - } -}; - -} //namespace per -} //namespace asn diff --git a/e2sim/previous/src/ASN1/asn/per/sequence_of.hpp b/e2sim/previous/src/ASN1/asn/per/sequence_of.hpp deleted file mode 100755 index d4e21a9..0000000 --- a/e2sim/previous/src/ASN1/asn/per/sequence_of.hpp +++ /dev/null @@ -1,156 +0,0 @@ -#pragma once -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries - -// Local Includes: Application specific classes, functions, and libraries -#include "asn/per/common.hpp" - -namespace asn { -namespace per { - -template -struct SequenceOf; - -//19.6 Default -template -struct SequenceOfNoExt -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - LengthDeterminant::run(ctx, ie.size()); - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - size_t len = LengthDeterminant::run(ctx, false); - for (size_t i = 0; i < len; ++i) - { - u8* data = ctx.refAllocator().alloc_bytes(sizeof(typename IE::value_type)); - if (data) - { - typename IE::value_type * v = new (data) typename IE::value_type; - v->clear(); - ie.push_back(*v); - } - else - { - ctx.refErrorCtx().allocatorNoMem(0, sizeof(typename IE::value_type)); - break; - } - } - } -}; - -//16.6 -template -struct SequenceOfNoExt> -{ - static void inline run(IE const& ie, EncoderCtx& ctx) {/*do nothing*/ } - static void inline run(IE& ie, DecoderCtx& ctx) - { - for (size_t i = 0; i < IE::constraint_t::upper_bound; ++i) - { - u8* data = ctx.refAllocator().alloc_bytes(sizeof(typename IE::value_type)); - if (data) - { - typename IE::value_type * v = new (data) typename IE::value_type; - v->clear(); - ie.push_back(*v); - } - else - { - ctx.refErrorCtx().allocatorNoMem(0, sizeof(typename IE::value_type)); - break; - } - } - } -}; - -/**************************************************/ - -//19.4 Extension present -template -struct SequenceOf > -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - if (ie.size() <= IE::constraint_t::upper_bound && ie.size() >= IE::constraint_t::lower_bound) - { - Tools::bit_accessor::put(0, 1, ctx.refBuffer()); - SequenceOfNoExt::run(ie, ctx); - } - else - { - Tools::bit_accessor::put(1, 1, ctx.refBuffer()); - LengthDeterminant::run(ctx, ie.size()); - } - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - u8 ext = Tools::bit_accessor::get(1, ctx.refBuffer()); - if (ext) - { - size_t len = LengthDeterminant::run(ctx, true); - for (size_t i = 0; i < len; ++i) - { - u8* data = ctx.refAllocator().alloc_bytes(sizeof(typename IE::value_type)); - if (data) - { - typename IE::value_type * v = new (data) typename IE::value_type; - //v->clear(); - ie.push_back(*v); - } - else - { - ctx.refErrorCtx().allocatorNoMem(0, sizeof(typename IE::value_type)); - break; - } - } - } - else - SequenceOfNoExt::run(ie, ctx); - } -}; - -//19.5-6 No extension -template -struct SequenceOf > -{ - static void inline run(IE const& ie, EncoderCtx& ctx) - { - if (IE::constraint_t::lower_bound >= 0 && ie.size() < size_t(IE::constraint_t::lower_bound)) - { - ctx.refErrorCtx().sizeRangeError(ie.size(), size_t(IE::constraint_t::lower_bound)); - } - else - { - SequenceOfNoExt::run(ie, ctx); - } - } - static void inline run(IE& ie, DecoderCtx& ctx) - { - SequenceOfNoExt::run(ie, ctx); - } -}; - -} //namespace per -} //namespace asn diff --git a/e2sim/previous/src/ASN1/asn/per/visitor.hpp b/e2sim/previous/src/ASN1/asn/per/visitor.hpp deleted file mode 100755 index f379044..0000000 --- a/e2sim/previous/src/ASN1/asn/per/visitor.hpp +++ /dev/null @@ -1,141 +0,0 @@ -#pragma once -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries - -// Local Includes: Application specific classes, functions, and libraries -#include "asn/per/common.hpp" - -namespace asn { -namespace per { - -/******************************************************************************** -VisitorEncoder -*********************************************************************************/ -struct VisitorEncoder -{ - explicit VisitorEncoder(EncoderCtx& ctx) : m_ctx(ctx) {} - - template - bool operator() (IE const& ie) const - { - Element::run(ie, m_ctx); - return static_cast(m_ctx); - } - EncoderCtx& m_ctx; -}; - -/******************************************************************************** -VisitorDecoder -*********************************************************************************/ -struct VisitorDecoder -{ - VisitorDecoder(DecoderCtx& ctx) : m_ctx(ctx) {} - - template - bool operator() (IE& ie) const - { - Element::run(ie, m_ctx); - return static_cast(m_ctx); - } - DecoderCtx& m_ctx; -}; - -/*************************************************************************************** -* Open Type Visitor // Encode Open Type (10.2) -***************************************************************************************/ -struct OpenTypeVisitorEncoder -{ - explicit OpenTypeVisitorEncoder(EncoderCtx& ctx) : m_ctx(ctx) {} - - template - bool operator() (IE const& ie) const - { - size_t reserved_size = 1; //1 byte length is most likely - Tools::bit_accessor::padByte(m_ctx.refBuffer()); - - if (m_ctx.refBuffer().getBytesLeft()) - { - EncoderCtx::buf_type::pointer p = m_ctx.refBuffer().advance(reserved_size); - EncoderCtx::buf_type::pointer start = p + reserved_size; - - Element::run(ie, m_ctx); - - if (m_ctx) - { - Tools::bit_accessor::padByte(m_ctx.refBuffer()); - EncoderCtx::buf_type::pointer p_new = m_ctx.refBuffer().begin(); - size_t size = p_new - start; - size_t needed = LengthDeterminantDefault::bytes_needed(size) - reserved_size; - if (needed) //1 byte is not enough for the length determinant. it is hardly possible - { - if (m_ctx.refBuffer().getBytesLeft() < needed) { - m_ctx.refErrorCtx().lengthErrorBytes(m_ctx.refBuffer().getBytesLeft(), needed); - return false; - } - memmove(start + needed, start, size); - p_new += needed; - } - m_ctx.refBuffer().set_begin(p, 0); - LengthDeterminantDefault::run(m_ctx, size); - if (m_ctx) { - m_ctx.refBuffer().set_begin(p_new, 0); - Tools::bit_accessor::padByte(m_ctx.refBuffer()); - } - } - } - else - { - m_ctx.refErrorCtx().lengthErrorBytes(m_ctx.refBuffer().getBytesLeft(), reserved_size); - } - return static_cast(m_ctx); - } - EncoderCtx& m_ctx; -}; - -/*************************************************************************************** -* Open Type Visitor // Decode Open Type (10.2) -***************************************************************************************/ -struct OpenTypeVisitorDecoder -{ - explicit OpenTypeVisitorDecoder(DecoderCtx& ctx) : m_ctx(ctx) {} - - template - bool operator() (IE& ie) const - { - size_t size = LengthDeterminantDefault::run(m_ctx); - DecoderCtx::buf_type& buffer = m_ctx.refBuffer(); - if (buffer.getBytesLeft() < size) - { - m_ctx.refErrorCtx().lengthErrorBytes(buffer.getBytesLeft(), size); - return false; - } - DecoderCtx::buf_type::pointer end = buffer.end(); - buffer.set_end(buffer.begin() + size); - Element::run(ie, m_ctx); - buffer.set_end(end); - - return static_cast(m_ctx); - } - DecoderCtx& m_ctx; -}; - -} //namespace per -} //namespace asn diff --git a/e2sim/previous/src/ASN1/asn/per/whole_number.hpp b/e2sim/previous/src/ASN1/asn/per/whole_number.hpp deleted file mode 100755 index c614998..0000000 --- a/e2sim/previous/src/ASN1/asn/per/whole_number.hpp +++ /dev/null @@ -1,147 +0,0 @@ -#pragma once -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries -#include -#include - -// Local Includes: Application specific classes, functions, and libraries -#include "asn/per/common.hpp" -#include "asn/per/binary_integer.hpp" - -namespace asn { -namespace per { - -/*************************************************************************************** -* Encoding of a constrained whole number (X.691 10.5) -***************************************************************************************/ - -template -struct length_determinant; - -template -struct length_determinant > { static constexpr bound_t value = 0; }; - -template -struct length_determinant > { static constexpr bound_t value = 1; }; - -template -struct length_determinant 1) > > { static constexpr bound_t value = boost::static_log2<(R - 1)>::value + 1; }; - -/*************************************************************************************** -***************************************************************************************/ - -template -struct ConstrainedWholeNumber; - -//Bit-field case -template -struct ConstrainedWholeNumber > -{ - //non-negative-binary-integer X.691 10.5 - static void inline run(EncoderCtx& ctx, const V& val) - { - Tools::bit_accessor::put(static_cast(val - Range::lower_bound), - length_determinant<(Range::upper_bound - Range::lower_bound + 1)>::value, - ctx.refBuffer()); - } - static V inline run(DecoderCtx& ctx) - { - return Range::lower_bound + Tools::bit_accessor::get( - length_determinant<(Range::upper_bound - Range::lower_bound + 1)>::value, - ctx.refBuffer()); - } -}; - -//One octet case -template -struct ConstrainedWholeNumber > -{ - //non-negative-binary-integer X.691 10.5 - static void inline run(EncoderCtx& ctx, const V& val) - { - Tools::bit_accessor::padByte(ctx.refBuffer()); - ctx.refBuffer().putByte(static_cast(val - Range::lower_bound)); - } - static V inline run(DecoderCtx& ctx) - { - V rval = 0; - Tools::bit_accessor::padByte(ctx.refBuffer()); - u8 const* data = ctx.refBuffer().getBytes(1); - if (data) - rval = Range::lower_bound + data[0]; - return rval; - } -}; - -//Two octets case -template -struct ConstrainedWholeNumber (Range::lower_bound + 255)) && (Range::upper_bound <= (Range::lower_bound + 65535))> > -{ - //non-negative-binary-integer X.691 10.5 - static void inline run(EncoderCtx& ctx, const V& v) - { - u64 val = static_cast(v - Range::lower_bound); - Tools::bit_accessor::padByte(ctx.refBuffer()); - ctx.refBuffer().putByte((u8)(val >> 8)); - ctx.refBuffer().putByte((u8)val); - } - static V inline run(DecoderCtx& ctx) - { - V rval = 0; - Tools::bit_accessor::padByte(ctx.refBuffer()); - u8 const* data = ctx.refBuffer().getBytes(2); - if (data) { - rval = data[0]; - rval = rval << 8; - rval |= data[1]; - rval += Range::lower_bound; - } - return rval; - } -}; - -//Indefinite case -template -struct ConstrainedWholeNumber Range::lower_bound + 65535) > > -{ - struct NormalizedValueRange - { - using boundary_type = typename Range::boundary_type; - static constexpr bool extended = Range::extended; - static constexpr boundary_type lower_bound = 0; - static constexpr boundary_type upper_bound = Range::upper_bound - Range::lower_bound; - }; - - //non-negative-binary-integer X.691 10.5 - static void inline run(EncoderCtx& ctx, const V& val) - { - NonnegativeBinaryInteger::run(val - Range::lower_bound, ctx); - } - static V inline run(DecoderCtx& ctx) - { - V rval = 0; - NonnegativeBinaryInteger::run(rval, ctx, false); - return rval + Range::lower_bound; - } -}; - -} //namespace per -} //namespace asn diff --git a/e2sim/previous/src/ASN1/asn/printer.hpp b/e2sim/previous/src/ASN1/asn/printer.hpp deleted file mode 100755 index b21eaef..0000000 --- a/e2sim/previous/src/ASN1/asn/printer.hpp +++ /dev/null @@ -1,338 +0,0 @@ -#pragma once - -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries -#include -#include - -// Local Includes: Application specific classes, functions, and libraries -#include "asn/elements.hpp" - -namespace asn{ - -/******************************************************************************** -Utility -**********************************S***********************************************/ -inline void skip_row(std::ostream* str, size_t row_shift) - //{*str << std::string(row_shift, ' ');} -{ - std::string s(row_shift, ' '); - str->write(s.data(), s.size()); -} - -inline void print_hex(std::ostream* str, size_t size, const uint8_t* data, size_t row_shift) -{ - *str << std::setfill('0') << std::hex << std::noshowbase; - for (size_t i = 0; i < size; ++i) - { - if (i && (0x00 == (i & 0x0f))) { skip_row(str, row_shift); } - *str << std::setw(2) << (int)data[i] << " "; - if (0x0f == (i & 0x0f)) { *str << '\n'; } - } -} - -/******************************************************************************** - -Print - -*********************************************************************************/ - - -/******************************************************************************** -default implementation for IE -*********************************************************************************/ -template -struct Print; - -template -void print(IE const& ie, std::ostream& out, size_t row_shift) -{ - Print::run(ie, &out, row_shift); -} - -template -std::string get_printed(IE const& ie, size_t row_shift = 0) -{ - std::stringstream out; - print(ie, out, row_shift); - return out.str(); -} - - -/******************************************************************************** -VisitorPrinter -*********************************************************************************/ -struct VisitorPrinter -{ - VisitorPrinter(std::ostream* str, size_t row_shift) : m_pStream(str), m_RowShift(row_shift) {} - - template - bool operator() (IE & ie) - { - Print::run(ie, m_pStream, m_RowShift); - return true; - } - - std::ostream* m_pStream; - size_t m_RowShift; -}; - -/****************************************************************** - * PrinterAdapter - *****************************************************************/ -template -struct PrinterAdapter -{ - static void inline run(IE const& ie, std::ostream* str, size_t row_shift, Container const& cont) - { - Print::run(ie, str, row_shift); - } -}; -template -struct PrinterAdapter> -{ - static void inline run(IE const& ie, std::ostream* str, size_t row_shift, Container const& cont) - { - VisitorPrinter vp(str, row_shift); - ie.encode(vp, cont); - } -}; -template -struct PrinterAdapter > -{ - static void inline run(IE const& ie, std::ostream* str, size_t row_shift, Container const& cont) - { - VisitorPrinter vp(str, row_shift); - ie.encode(vp, cont); - } -}; - -/******************************************************************************** -SeqVisitorPrinter -*********************************************************************************/ -template -struct SeqVisitorPrinter -{ - SeqVisitorPrinter(Container const& cont, std::ostream* str, size_t row_shift) : m_pStream(str), m_RowShift(row_shift), m_cont(cont) {} - - template - bool operator() (IE & ie) - { - if(!IE::optional || ie.is_valid()) - PrinterAdapter::run(ie, m_pStream, m_RowShift, m_cont); - return true; - } - - std::ostream* m_pStream; - size_t m_RowShift; - Container const& m_cont; -}; - - -/******************************************************************************** -T_NULL -*********************************************************************************/ - -template -struct Print -{ - static void inline run(IE const& ie, std::ostream* str, size_t row_shift) - { - skip_row(str, row_shift); - *str << IE::name() << std::endl; - } -}; - -/******************************************************************************** -T_BOOLEAN -*********************************************************************************/ -template -struct Print -{ - static void inline run(IE const& ie, std::ostream* str, size_t row_shift) - { - skip_row(str, row_shift); - *str << IE::name() << " = " << (ie.get() ? "true" : "false")<< std::endl; - } -}; - -/******************************************************************************** -T_INTEGER -*********************************************************************************/ -template -struct Print -{ - static void inline run(IE const& ie, std::ostream* str, size_t row_shift) - { - skip_row(str, row_shift); - *str << IE::name() << " = " << std::hex << std::showbase << (size_t)ie.get() << std::endl; - } -}; - -/******************************************************************************** -T_ENUMERATED -*********************************************************************************/ -template -struct Print -{ - static void inline run(IE const& ie, std::ostream* str, size_t row_shift) - { - skip_row(str, row_shift); - *str << IE::name() << " = " << std::hex << std::showbase << (size_t)ie.get() << std::endl; - } -}; - -/******************************************************************************** -T_BITSTRING -*********************************************************************************/ -template -struct Print -{ - static void inline run(IE const& ie, std::ostream* str, size_t row_shift) - { - skip_row(str, row_shift); - auto& val = ie.get_buffer(); - *str << IE::name() << " = "; - - print_hex(str, val.size() - 1, val.data(), row_shift + strlen(IE::name()) + 3); - - size_t i = val.size() - 1; - uint8_t c = val.data()[i]; - uint8_t b = val.bitqty() % 8; - if (b != 0) c = c << (8 - b); - - if (i && (0x00 == (i & 0x0f))) { skip_row(str, row_shift); } - *str << std::setw(2) << (int)c; - - *str << " (" << std::dec << val.bitqty() << " bits)" << std::endl; - - } -}; - -/******************************************************************************** -T_OCTETSTRING -*********************************************************************************/ -template -struct Print -{ - static void inline run(IE const& ie, std::ostream* str, size_t row_shift) - { - skip_row(str, row_shift); - *str << IE::name() << " = "; - auto & val = ie.get(); - print_hex(str, val.size(), val.data(), row_shift + strlen(IE::name()) + 3); - *str << std::endl; - } -}; - -/******************************************************************************** -T_SEQUENCE -*********************************************************************************/ -template -struct Print -{ - static void inline run(IE const& ie, std::ostream* str, size_t row_shift) - { - skip_row(str, row_shift); - *str << IE::name() << std::endl; - SeqVisitorPrinter vp(ie, str, row_shift + 1); - ie.encode(vp); - } -}; - -/******************************************************************************** -T_SET -*********************************************************************************/ -template -struct Print -{ - static void inline run(IE const& ie, std::ostream* str, size_t row_shift) - { - skip_row(str, row_shift); - *str << IE::name() << std::endl; - SeqVisitorPrinter vp(ie, str, row_shift + 1); - ie.encode(vp); - } -}; - - -/******************************************************************************** -T_CHOICE -*********************************************************************************/ -template -struct Print -{ - static void inline run(IE const& ie, std::ostream* str, size_t row_shift) - { - VisitorPrinter vp(str, row_shift+1); - skip_row(str, row_shift); *str << IE::name() << ":\n"; - ie.encode(vp); - } -}; - -/******************************************************************************** -T_SEQUENCE_OF -*********************************************************************************/ -template -struct Print -{ - static void inline run(IE const& ie, std::ostream* str, size_t row_shift) - { - skip_row(str, row_shift); *str << IE::name() << ":\n"; - ++row_shift; - for (auto& elem : ie) - { - Print::run(elem, str, row_shift); - } - } -}; - -/******************************************************************************** -T_SET_OF -*********************************************************************************/ -template -struct Print -{ - static void inline run(IE const& ie, std::ostream* str, size_t row_shift) - { - skip_row(str, row_shift); *str << IE::name() << ":\n"; - ++row_shift; - for (auto& elem : ie) - { - Print::run(elem, str, row_shift); - } - } -}; - -/******************************************************************************** -T_OBJECTIDENTIFIER -*********************************************************************************/ -template -struct Print -{ - static void inline run(IE const& ie, std::ostream* str, size_t row_shift) - { - skip_row(str, row_shift); - *str << IE::name() << std::endl; - } -}; - -} //namespace asn diff --git a/e2sim/previous/src/ASN1/asn/type_defs.h b/e2sim/previous/src/ASN1/asn/type_defs.h deleted file mode 100755 index e7cc539..0000000 --- a/e2sim/previous/src/ASN1/asn/type_defs.h +++ /dev/null @@ -1,36 +0,0 @@ -#pragma once -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -*******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries -#include - -// Platform Includes: Platform specific classes, functions, and libraries - -// Local Includes: Application specific classes, functions, and libraries - -typedef uint8_t u8; -typedef uint16_t u16; -typedef uint32_t u32; -typedef uint64_t u64; - -typedef int8_t i8; -typedef int16_t i16; -typedef int32_t i32; -typedef int64_t i64; diff --git a/e2sim/previous/src/ASN1/asn/utility.hpp b/e2sim/previous/src/ASN1/asn/utility.hpp deleted file mode 100755 index ae1ad74..0000000 --- a/e2sim/previous/src/ASN1/asn/utility.hpp +++ /dev/null @@ -1,88 +0,0 @@ -#pragma once - -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries -#include -#include - -// Local Includes: Application specific classes, functions, and libraries - -namespace asn -{ - -struct allocator -{ - allocator() = default; - - allocator(void* data, size_t size) { reset(data, size); } - - template - explicit allocator(T (&buf)[SZ]) : allocator(buf, SZ * sizeof(T)) { } - - void reset(void* data, size_t size) - { - std::size_t space = size; - m_begin = static_cast(std::align(alignment, size, data, space)); - m_end = m_begin ? m_begin + space : nullptr; - m_current = m_begin; - m_ref_counter = 0; - } - - uint8_t* alloc_bytes(std::size_t size) - { - std::size_t const esize = (size + alignment - 1) & -alignment; - if (m_current + esize > m_end) { return nullptr; } //throw std::bad_alloc(); - - uint8_t* const rval = m_current; - m_current += esize; - return rval; - } - - size_t add_ref() { return ++m_ref_counter; } - size_t release() - { - if (m_ref_counter) --m_ref_counter; - if (m_ref_counter == 0) reset(); - return m_ref_counter; - } - size_t ref_counter() const { return m_ref_counter; } -private: - //called by last release() when m_ref_counter becomes 0 - void reset() - { - m_current = m_begin; - } - - - enum : std::size_t - { - alignment = alignof(std::size_t) - }; - - uint8_t* m_begin { nullptr }; //set in reset() - uint8_t* m_current { nullptr }; //changed by alloc_bytes - uint8_t* m_end { nullptr }; - - size_t m_ref_counter {0}; -}; - -} //namespace asn - diff --git a/e2sim/previous/src/ASN1/asn/value_traits.hpp b/e2sim/previous/src/ASN1/asn/value_traits.hpp deleted file mode 100755 index 4b67374..0000000 --- a/e2sim/previous/src/ASN1/asn/value_traits.hpp +++ /dev/null @@ -1,187 +0,0 @@ -#ifndef _STDEX_VALUE_TRAITS_HPP_INCLUDED_ -#define _STDEX_VALUE_TRAITS_HPP_INCLUDED_ - -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -******************************************************************************/ - -#include -#include -#include -#include -#include - -#include "type_defs.h" - -namespace stdex { -namespace value { - -namespace mpl = boost::mpl; - -//NOTE! length is in bits -typedef mpl::int_<8> _8; -typedef mpl::int_<16> _16; -typedef mpl::int_<24> _24; -typedef mpl::int_<32> _32; -typedef mpl::int_<40> _40; -typedef mpl::int_<48> _48; -typedef mpl::int_<56> _56; -typedef mpl::int_<64> _64; - -template -struct bits_to_bytes : mpl::int_< (num_bits + 7) / 8 > {}; - -/****************************************************************************** -* Class: value::traits -* Description: select min integer type to fit LEN bits -* Notes: LEN is positive integer type (mpl::int_) = number of bits -******************************************************************************/ -template struct traits; - -template -struct traits - >::type -> -{ - typedef _8 value_length; - typedef u8 value_type; - typedef value_type param_type; -}; - -template -struct traits, mpl::less_equal > - >::type -> -{ - typedef _16 value_length; - typedef u16 value_type; - typedef value_type param_type; -}; - -template -struct traits, mpl::less_equal > - >::type -> -{ - typedef _24 value_length; - typedef u32 value_type; - typedef value_type param_type; -}; - -template -struct traits, mpl::less_equal > - >::type -> -{ - typedef _32 value_length; - typedef u32 value_type; - typedef value_type param_type; -}; - -template -struct traits, mpl::less_equal > - >::type -> -{ - typedef _40 value_length; - typedef u64 value_type; - typedef value_type param_type; -}; - -template -struct traits, mpl::less_equal > - >::type -> -{ - typedef _48 value_length; - typedef u64 value_type; - typedef value_type param_type; -}; - -template -struct traits, mpl::less_equal > - >::type -> -{ - typedef _56 value_length; - typedef u64 value_type; - typedef value_type param_type; -}; - -template -struct traits, mpl::less_equal > - >::type -> -{ - typedef _64 value_length; - typedef u64 value_type; - typedef value_type param_type; -}; - -template -struct traits - >::type -> -{ - typedef LEN value_length; - struct value_type {u8 value[bits_to_bytes::value];}; - typedef value_type const& param_type; -}; - - -//template -//struct traits -// >::type -//> -//{ -// typedef LEN value_length; -// struct value_type {unsigned char value[LEN::value/8];}; -// typedef value_type const& param_type; -// -//}; - -/****************************************************************************** -* Class: value::traits_c -* Description: select min integer type to fit BITS bits -* Notes: N is positive integer value = number of bits -******************************************************************************/ -template -struct traits_c : traits > -{ -}; - -} //end: namespace value - -} //end: namespace stdex - -#ifdef _MSC_VER -#pragma component( mintypeinfo, off ) -#endif - -#endif //_STDEX_VALUE_TRAITS_HPP_INCLUDED_ diff --git a/e2sim/previous/src/ASN1/asn/variant.hpp b/e2sim/previous/src/ASN1/asn/variant.hpp deleted file mode 100755 index be205aa..0000000 --- a/e2sim/previous/src/ASN1/asn/variant.hpp +++ /dev/null @@ -1,146 +0,0 @@ -#pragma once - -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries -#include -#include - - -// Local Includes: Application specific classes, functions, and libraries - - -namespace asn{ - -template -struct variant -{ - typedef variant self_type; - - template - static void check_size () {static_assert(sizeof (T) <= S, "wrong type");} - - variant () - : typeinfo (nullptr) - {} - - template - variant (const T& t) - : typeinfo (&typeid (T)) - { - check_size(); - new (as_()) T (t); - } - - ~variant () - { - assert(!typeinfo); - } - - template - T& build () - { - assert(!typeinfo); - typeinfo = & typeid (T); - return *new (as_()) T; - } - - template - T& build (const T& t) - { - assert(!typeinfo); - check_size(); - typeinfo = & typeid (T); - return *new (as_ ()) T (t); - } - - template - T& as() - { - assert(*typeinfo == typeid (T)); - check_size(); - return *as_ (); - } - - template - const T& as() const - { - assert(*typeinfo == typeid (T)); - check_size(); - return *as_ (); - } - - template - void swap(self_type& other) - { - assert (typeinfo); - assert (*typeinfo == *other.typeinfo); - std::swap (as (), other.as ()); - } - - template - void move(self_type& other) - { - build (); - swap (other); - other.destroy (); - } - - template - void copy(const self_type& other) - { - build (other.as ()); - } - - template - void destroy() - { - as ().~T (); - typeinfo = nullptr; - } - -private: - self_type& operator=(const self_type&){} - variant (const self_type&){} - - template - T* as_() - { - void *p = buffer.raw; - return static_cast (p); - } - - template - const T* as_() const - { - const void *p = buffer.raw; - return static_cast (p); - } - - union - { - long double align_me; - char raw[S]; - } buffer; - - const std::type_info *typeinfo; -}; - -} //namspace asn diff --git a/e2sim/previous/src/ASN1/asn/version.hpp b/e2sim/previous/src/ASN1/asn/version.hpp deleted file mode 100755 index 50854f3..0000000 --- a/e2sim/previous/src/ASN1/asn/version.hpp +++ /dev/null @@ -1,27 +0,0 @@ -#pragma once - -/****************************************************************************** -* -* Copyright (c) 2019 AT&T Intellectual Property. -* Copyright (c) 2018-2019 Nokia. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -******************************************************************************/ - -// Standard Includes: ANSI C/C++, MSA, and Third-Party Libraries - -// Local Includes: Application specific classes, functions, and libraries - -#define ASN_API_VERSION_MAJOR 5 -#define ASN_API_VERSION_MINOR 0 diff --git a/e2sim/previous/src/ASN1/generated/E2AP-Constants.hpp b/e2sim/previous/src/ASN1/generated/E2AP-Constants.hpp deleted file mode 100644 index 2ed8200..0000000 --- a/e2sim/previous/src/ASN1/generated/E2AP-Constants.hpp +++ /dev/null @@ -1,244 +0,0 @@ -/***************************************************************************** -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -#pragma once - -#include "asn/asn.hpp" -static_assert(ASN_API_VERSION_MAJOR == 5, "re-generate the ASN parser's code using 'make regen-asn' (do not use -j option)"); - -#include "X2AP-CommonDataTypes.hpp" - -/* -id-RANfunction-Item ProtocolIE-ID ::= 60001 -*/ - -constexpr int64_t id_RANfunction_Item = 60001; -/* -id-RANfunctionDefinition ProtocolIE-ID ::= 60002 -*/ - -constexpr int64_t id_RANfunctionDefinition = 60002; -/* -id-RANfunctionID ProtocolIE-ID ::= 60003 -*/ - -constexpr int64_t id_RANfunctionID = 60003; -/* -id-RANfunctionID-Item ProtocolIE-ID ::= 60004 -*/ - -constexpr int64_t id_RANfunctionID_Item = 60004; -/* -id-RANfunctionIEcause-Item ProtocolIE-ID ::= 60005 -*/ - -constexpr int64_t id_RANfunctionIEcause_Item = 60005; -/* -id-RANfunctionsAccepted ProtocolIE-ID ::= 60006 -*/ - -constexpr int64_t id_RANfunctionsAccepted = 60006; -/* -id-RANfunctionsAdded ProtocolIE-ID ::= 60007 -*/ - -constexpr int64_t id_RANfunctionsAdded = 60007; -/* -id-RANfunctionsDeleted ProtocolIE-ID ::= 60008 -*/ - -constexpr int64_t id_RANfunctionsDeleted = 60008; -/* -id-RANfunctionsModified ProtocolIE-ID ::= 60009 -*/ - -constexpr int64_t id_RANfunctionsModified = 60009; -/* -id-RANfunctionsRejected ProtocolIE-ID ::= 60010 -*/ - -constexpr int64_t id_RANfunctionsRejected = 60010; -/* -id-RICaction-Admitted-Item ProtocolIE-ID ::= 60013 -*/ - -constexpr int64_t id_RICaction_Admitted_Item = 60013; -/* -id-RICaction-NotAdmitted-Item ProtocolIE-ID ::= 60015 -*/ - -constexpr int64_t id_RICaction_NotAdmitted_Item = 60015; -/* -id-RICaction-ToBeSetup-Item ProtocolIE-ID ::= 60011 -*/ - -constexpr int64_t id_RICaction_ToBeSetup_Item = 60011; -/* -id-RICactionDefinition ProtocolIE-ID ::= 60016 -*/ - -constexpr int64_t id_RICactionDefinition = 60016; -/* -id-RICactionID ProtocolIE-ID ::= 60017 -*/ - -constexpr int64_t id_RICactionID = 60017; -/* -id-RICactionType ProtocolIE-ID ::= 60018 -*/ - -constexpr int64_t id_RICactionType = 60018; -/* -id-RICactions-Admitted ProtocolIE-ID ::= 60012 -*/ - -constexpr int64_t id_RICactions_Admitted = 60012; -/* -id-RICactions-NotAdmitted ProtocolIE-ID ::= 60014 -*/ - -constexpr int64_t id_RICactions_NotAdmitted = 60014; -/* -id-RICcallProcessID ProtocolIE-ID ::= 60019 -*/ - -constexpr int64_t id_RICcallProcessID = 60019; -/* -id-RICcause ProtocolIE-ID ::= 60020 -*/ - -constexpr int64_t id_RICcause = 60020; -/* -id-RICcontrolAckRequest ProtocolIE-ID ::= 60021 -*/ - -constexpr int64_t id_RICcontrolAckRequest = 60021; -/* -id-RICcontrolHeader ProtocolIE-ID ::= 60022 -*/ - -constexpr int64_t id_RICcontrolHeader = 60022; -/* -id-RICcontrolMessage ProtocolIE-ID ::= 60023 -*/ - -constexpr int64_t id_RICcontrolMessage = 60023; -/* -id-RICcontrolStatus ProtocolIE-ID ::= 60024 -*/ - -constexpr int64_t id_RICcontrolStatus = 60024; -/* -id-RICeventTriggerDefinition ProtocolIE-ID ::= 60025 -*/ - -constexpr int64_t id_RICeventTriggerDefinition = 60025; -/* -id-RICindicationHeader ProtocolIE-ID ::= 60026 -*/ - -constexpr int64_t id_RICindicationHeader = 60026; -/* -id-RICindicationMessage ProtocolIE-ID ::= 60027 -*/ - -constexpr int64_t id_RICindicationMessage = 60027; -/* -id-RICindicationSN ProtocolIE-ID ::= 60028 -*/ - -constexpr int64_t id_RICindicationSN = 60028; -/* -id-RICindicationType ProtocolIE-ID ::= 60029 -*/ - -constexpr int64_t id_RICindicationType = 60029; -/* -id-RICrequestID ProtocolIE-ID ::= 60030 -*/ - -constexpr int64_t id_RICrequestID = 60030; -/* -id-RICrequestSequenceNumber ProtocolIE-ID ::= 60032 -*/ - -constexpr int64_t id_RICrequestSequenceNumber = 60032; -/* -id-RICrequestorID ProtocolIE-ID ::= 60031 -*/ - -constexpr int64_t id_RICrequestorID = 60031; -/* -id-RICsubscription ProtocolIE-ID ::= 60033 -*/ - -constexpr int64_t id_RICsubscription = 60033; -/* -id-RICsubsequentAction ProtocolIE-ID ::= 60034 -*/ - -constexpr int64_t id_RICsubsequentAction = 60034; -/* -id-RICsubsequentActionType ProtocolIE-ID ::= 60035 -*/ - -constexpr int64_t id_RICsubsequentActionType = 60035; -/* -id-RICtimeToWait ProtocolIE-ID ::= 60036 -*/ - -constexpr int64_t id_RICtimeToWait = 60036; -/* -id-ricControl ProcedureCode ::= 204 -*/ - -constexpr int64_t id_ricControl = 204; -/* -id-ricIndication ProcedureCode ::= 205 -*/ - -constexpr int64_t id_ricIndication = 205; -/* -id-ricServiceQuery ProcedureCode ::= 206 -*/ - -constexpr int64_t id_ricServiceQuery = 206; -/* -id-ricServiceUpdate ProcedureCode ::= 203 -*/ - -constexpr int64_t id_ricServiceUpdate = 203; -/* -id-ricSubscription ProcedureCode ::= 201 -*/ - -constexpr int64_t id_ricSubscription = 201; -/* -id-ricSubscriptionDelete ProcedureCode ::= 202 -*/ - -constexpr int64_t id_ricSubscriptionDelete = 202; -/* -maxofRANfunctionID INTEGER ::=256 -*/ - -constexpr int64_t maxofRANfunctionID = 256; -/* -maxofRICactionID INTEGER ::= 16 -*/ - -constexpr int64_t maxofRICactionID = 16; diff --git a/e2sim/previous/src/ASN1/generated/E2AP-IEs.hpp b/e2sim/previous/src/ASN1/generated/E2AP-IEs.hpp deleted file mode 100644 index 40f7bbb..0000000 --- a/e2sim/previous/src/ASN1/generated/E2AP-IEs.hpp +++ /dev/null @@ -1,568 +0,0 @@ -/***************************************************************************** -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -#pragma once - -#include "asn/asn.hpp" -static_assert(ASN_API_VERSION_MAJOR == 5, "re-generate the ASN parser's code using 'make regen-asn' (do not use -j option)"); - -#include "X2AP-IEs.hpp" - -/* -CauseRIC ::= ENUMERATED { - function-id-Invalid, - action-not-supported, - excessive-actions, - duplicate-action, - duplicate-event, - function-resource-limit, - request-id-unknown, - inconsistent-action-subsequent-action-sequence, - control-message-invalid, - call-process-id-invalid, - function-not-required, - excessive-functions, - ric-resource-limit, - ... -} -*/ - -struct CauseRIC : asn::enumerated<13, 0, true> -{ - static constexpr const char* name() {return "CauseRIC";} - using parent_t = asn::enumerated<13, 0, true>; - typedef enum { - function_id_Invalid - ,action_not_supported - ,excessive_actions - ,duplicate_action - ,duplicate_event - ,function_resource_limit - ,request_id_unknown - ,inconsistent_action_subsequent_action_sequence - ,control_message_invalid - ,call_process_id_invalid - ,function_not_required - ,excessive_functions - ,ric_resource_limit - } index_t; - -}; - -/* -RANfunctionDefinition ::= OCTET STRING -*/ - -struct RANfunctionDefinition : asn::ostring<> -{ - static constexpr const char* name() {return "RANfunctionDefinition";} - using parent_t = asn::ostring<>; - -}; - -/* -RANfunctionID ::= INTEGER (0..4095) -*/ - -struct RANfunctionID : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "RANfunctionID";} - using parent_t = asn::integer<>; - -}; - -/* -RICactionDefinition ::= OCTET STRING -*/ - -struct RICactionDefinition : asn::ostring<> -{ - static constexpr const char* name() {return "RICactionDefinition";} - using parent_t = asn::ostring<>; - -}; - -/* -RICactionID ::= INTEGER (0..255) -*/ - -struct RICactionID : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "RICactionID";} - using parent_t = asn::integer<>; - -}; - -/* -RICactionType ::= ENUMERATED{ - report, - insert, - policy, - ... -} -*/ - -struct RICactionType : asn::enumerated<3, 0, true> -{ - static constexpr const char* name() {return "RICactionType";} - using parent_t = asn::enumerated<3, 0, true>; - typedef enum { - report - ,insert - ,policy - } index_t; - -}; - -/* -RICcallProcessID ::= OCTET STRING -*/ - -struct RICcallProcessID : asn::ostring<> -{ - static constexpr const char* name() {return "RICcallProcessID";} - using parent_t = asn::ostring<>; - -}; - -/* -RICcause ::= CHOICE { - radioNetwork CauseRadioNetwork, - transport CauseTransport, - protocol CauseProtocol, - misc CauseMisc, - ric CauseRIC, - ... -} -*/ - -struct RICcause : asn::choice<5, 0, true> -{ - static constexpr const char* name() {return "RICcause";} - using parent_t = asn::choice<5, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 6;} - void set_unknown() { set_index(6); } - ~RICcause() {clear();} - struct radioNetwork_t : CauseRadioNetwork - { - static constexpr const char* name() {return "radioNetwork_t";} - using parent_t = CauseRadioNetwork; - - }; - struct transport_t : CauseTransport - { - static constexpr const char* name() {return "transport_t";} - using parent_t = CauseTransport; - - }; - struct protocol_t : CauseProtocol - { - static constexpr const char* name() {return "protocol_t";} - using parent_t = CauseProtocol; - - }; - struct misc_t : CauseMisc - { - static constexpr const char* name() {return "misc_t";} - using parent_t = CauseMisc; - - }; - struct ric_t : CauseRIC - { - static constexpr const char* name() {return "ric_t";} - using parent_t = CauseRIC; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - case 3: set_index(3); return v(var.build()); - case 4: set_index(4); return v(var.build()); - case 5: set_index(5); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - case 3: return v(var.as()); - case 4: return v(var.as()); - case 5: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - - } - radioNetwork_t& select_radioNetwork() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - radioNetwork_t const* get_radioNetwork() const { if(get_index() == 1) { return &var.as();} return nullptr; } - transport_t& select_transport() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - transport_t const* get_transport() const { if(get_index() == 2) { return &var.as();} return nullptr; } - protocol_t& select_protocol() { if(get_index() != 3) { clear(); set_index(3); return var.build();} return var.as();} - protocol_t const* get_protocol() const { if(get_index() == 3) { return &var.as();} return nullptr; } - misc_t& select_misc() { if(get_index() != 4) { clear(); set_index(4); return var.build();} return var.as();} - misc_t const* get_misc() const { if(get_index() == 4) { return &var.as();} return nullptr; } - ric_t& select_ric() { if(get_index() != 5) { clear(); set_index(5); return var.build();} return var.as();} - ric_t const* get_ric() const { if(get_index() == 5) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(radioNetwork_t)]; - char dummy2[sizeof(transport_t)]; - char dummy3[sizeof(protocol_t)]; - char dummy4[sizeof(misc_t)]; - char dummy5[sizeof(ric_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -RICcontrolAckRequest ::= ENUMERATED{ - noAck, - ack, - nAck, - ... -} -*/ - -struct RICcontrolAckRequest : asn::enumerated<3, 0, true> -{ - static constexpr const char* name() {return "RICcontrolAckRequest";} - using parent_t = asn::enumerated<3, 0, true>; - typedef enum { - noAck - ,ack - ,nAck - } index_t; - -}; - -/* -RICcontrolHeader ::= OCTET STRING -*/ - -struct RICcontrolHeader : asn::ostring<> -{ - static constexpr const char* name() {return "RICcontrolHeader";} - using parent_t = asn::ostring<>; - -}; - -/* -RICcontrolMessage ::= OCTET STRING -*/ - -struct RICcontrolMessage : asn::ostring<> -{ - static constexpr const char* name() {return "RICcontrolMessage";} - using parent_t = asn::ostring<>; - -}; - -/* -RICcontrolStatus ::= ENUMERATED{ - success, - rejected, - failed, - ... -} -*/ - -struct RICcontrolStatus : asn::enumerated<3, 0, true> -{ - static constexpr const char* name() {return "RICcontrolStatus";} - using parent_t = asn::enumerated<3, 0, true>; - typedef enum { - success - ,rejected - ,failed - } index_t; - -}; - -/* -RICeventTriggerDefinition ::= OCTET STRING -*/ - -struct RICeventTriggerDefinition : asn::ostring<> -{ - static constexpr const char* name() {return "RICeventTriggerDefinition";} - using parent_t = asn::ostring<>; - -}; - -/* -RICindicationHeader ::= OCTET STRING -*/ - -struct RICindicationHeader : asn::ostring<> -{ - static constexpr const char* name() {return "RICindicationHeader";} - using parent_t = asn::ostring<>; - -}; - -/* -RICindicationMessage ::= OCTET STRING -*/ - -struct RICindicationMessage : asn::ostring<> -{ - static constexpr const char* name() {return "RICindicationMessage";} - using parent_t = asn::ostring<>; - -}; - -/* -RICindicationSN ::= INTEGER (0..65535) -*/ - -struct RICindicationSN : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "RICindicationSN";} - using parent_t = asn::integer<>; - -}; - -/* -RICindicationType ::= ENUMERATED{ - report, - insert, - ... -} -*/ - -struct RICindicationType : asn::enumerated<2, 0, true> -{ - static constexpr const char* name() {return "RICindicationType";} - using parent_t = asn::enumerated<2, 0, true>; - typedef enum { - report - ,insert - } index_t; - -}; - -/* -RICrequestID ::= SEQUENCE { - ricRequestorID INTEGER (0..65535), - ricRequestSequenceNumber INTEGER (0..65535), - ... -} -*/ - -struct RICrequestID : asn::sequence<2, 0, true, 0> -{ - static constexpr const char* name() {return "RICrequestID";} - using parent_t = asn::sequence<2, 0, true, 0>; - struct ricRequestorID_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "ricRequestorID_t";} - using parent_t = asn::integer<>; - - }; - - ricRequestorID_t& ref_ricRequestorID() {return ricRequestorID;} - ricRequestorID_t const& ref_ricRequestorID() const {return ricRequestorID;} - struct ricRequestSequenceNumber_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "ricRequestSequenceNumber_t";} - using parent_t = asn::integer<>; - - }; - - ricRequestSequenceNumber_t& ref_ricRequestSequenceNumber() {return ricRequestSequenceNumber;} - ricRequestSequenceNumber_t const& ref_ricRequestSequenceNumber() const {return ricRequestSequenceNumber;} - template void decode(V& v) - { - v(ricRequestorID); - v(ricRequestSequenceNumber); - - }; - template void encode(V& v) const - { - v(ricRequestorID); - v(ricRequestSequenceNumber); - - }; - void clear() - { - ricRequestorID.clear(); - ricRequestSequenceNumber.clear(); - - }; - private: - ricRequestorID_t ricRequestorID; - ricRequestSequenceNumber_t ricRequestSequenceNumber; - -}; -/* -RICsubsequentActionType ::= ENUMERATED{ - continue, - wait, - ... -} -*/ - -struct RICsubsequentActionType : asn::enumerated<2, 0, true> -{ - static constexpr const char* name() {return "RICsubsequentActionType";} - using parent_t = asn::enumerated<2, 0, true>; - typedef enum { - Continue - ,wait - } index_t; - -}; - -/* -RICtimeToWait ::= ENUMERATED{ - zero, - w1ms, - w2ms, - w5ms, - w10ms, - w20ms, - w30ms, - w40ms, - w50ms, - w100ms, - w200ms, - w500ms, - w1s, - w2s, - w5s, - w10s, - w20s, - w60s, - ... -} -*/ - -struct RICtimeToWait : asn::enumerated<18, 0, true> -{ - static constexpr const char* name() {return "RICtimeToWait";} - using parent_t = asn::enumerated<18, 0, true>; - typedef enum { - zero - ,w1ms - ,w2ms - ,w5ms - ,w10ms - ,w20ms - ,w30ms - ,w40ms - ,w50ms - ,w100ms - ,w200ms - ,w500ms - ,w1s - ,w2s - ,w5s - ,w10s - ,w20s - ,w60s - } index_t; - -}; - -/* -RICsubsequentAction ::=SEQUENCE{ - ricSubsequentActionType RICsubsequentActionType, - ricTimeToWait RICtimeToWait, - ... -} -*/ - -struct RICsubsequentAction : asn::sequence<2, 0, true, 0> -{ - static constexpr const char* name() {return "RICsubsequentAction";} - using parent_t = asn::sequence<2, 0, true, 0>; - struct ricSubsequentActionType_t : RICsubsequentActionType - { - static constexpr const char* name() {return "ricSubsequentActionType_t";} - using parent_t = RICsubsequentActionType; - - }; - ricSubsequentActionType_t& ref_ricSubsequentActionType() {return ricSubsequentActionType;} - ricSubsequentActionType_t const& ref_ricSubsequentActionType() const {return ricSubsequentActionType;} - struct ricTimeToWait_t : RICtimeToWait - { - static constexpr const char* name() {return "ricTimeToWait_t";} - using parent_t = RICtimeToWait; - - }; - ricTimeToWait_t& ref_ricTimeToWait() {return ricTimeToWait;} - ricTimeToWait_t const& ref_ricTimeToWait() const {return ricTimeToWait;} - template void decode(V& v) - { - v(ricSubsequentActionType); - v(ricTimeToWait); - - }; - template void encode(V& v) const - { - v(ricSubsequentActionType); - v(ricTimeToWait); - - }; - void clear() - { - ricSubsequentActionType.clear(); - ricTimeToWait.clear(); - - }; - private: - ricSubsequentActionType_t ricSubsequentActionType; - ricTimeToWait_t ricTimeToWait; - -}; diff --git a/e2sim/previous/src/ASN1/generated/E2AP-PDU-Contents.hpp b/e2sim/previous/src/ASN1/generated/E2AP-PDU-Contents.hpp deleted file mode 100644 index e2073d1..0000000 --- a/e2sim/previous/src/ASN1/generated/E2AP-PDU-Contents.hpp +++ /dev/null @@ -1,5512 +0,0 @@ -/***************************************************************************** -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -#pragma once - -#include "asn/asn.hpp" -static_assert(ASN_API_VERSION_MAJOR == 5, "re-generate the ASN parser's code using 'make regen-asn' (do not use -j option)"); - -#include "E2AP-IEs.hpp" -#include "X2AP-IEs.hpp" -#include "X2AP-Constants.hpp" -#include "X2AP-Containers.hpp" -#include "E2AP-Constants.hpp" - -/* -RANfunction-Item ::= SEQUENCE { - ranFunctionID RANfunctionID, - ranFunctionDefinition RANfunctionDefinition, - ... -} -*/ - -struct RANfunction_Item : asn::sequence<2, 0, true, 0> -{ - static constexpr const char* name() {return "RANfunction-Item";} - using parent_t = asn::sequence<2, 0, true, 0>; - struct ranFunctionID_t : RANfunctionID - { - static constexpr const char* name() {return "ranFunctionID_t";} - using parent_t = RANfunctionID; - - }; - ranFunctionID_t& ref_ranFunctionID() {return ranFunctionID;} - ranFunctionID_t const& ref_ranFunctionID() const {return ranFunctionID;} - struct ranFunctionDefinition_t : RANfunctionDefinition - { - static constexpr const char* name() {return "ranFunctionDefinition_t";} - using parent_t = RANfunctionDefinition; - - }; - ranFunctionDefinition_t& ref_ranFunctionDefinition() {return ranFunctionDefinition;} - ranFunctionDefinition_t const& ref_ranFunctionDefinition() const {return ranFunctionDefinition;} - template void decode(V& v) - { - v(ranFunctionID); - v(ranFunctionDefinition); - - }; - template void encode(V& v) const - { - v(ranFunctionID); - v(ranFunctionDefinition); - - }; - void clear() - { - ranFunctionID.clear(); - ranFunctionDefinition.clear(); - - }; - private: - ranFunctionID_t ranFunctionID; - ranFunctionDefinition_t ranFunctionDefinition; - -}; -/* -RANfunction-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-RANfunction-Item CRITICALITY ignore TYPE RANfunction-Item PRESENCE mandatory }, - ... -} -*/ - -struct RANfunction_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RANfunction_Item() { set(id_RANfunction_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_RANfunction_Item)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_RANfunction_Item);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RANfunction_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - RANfunction_Item& select_id_RANfunction_Item() { return set(1); } - RANfunction_Item const* get_id_RANfunction_Item() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_RANfunction_Item()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(RANfunction_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RANfunction_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RANfunctionID-Item ::= SEQUENCE { - ranFunctionID RANfunctionID, - ... -} -*/ - -struct RANfunctionID_Item : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "RANfunctionID-Item";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct ranFunctionID_t : RANfunctionID - { - static constexpr const char* name() {return "ranFunctionID_t";} - using parent_t = RANfunctionID; - - }; - ranFunctionID_t& ref_ranFunctionID() {return ranFunctionID;} - ranFunctionID_t const& ref_ranFunctionID() const {return ranFunctionID;} - template void decode(V& v) - { - v(ranFunctionID); - - }; - template void encode(V& v) const - { - v(ranFunctionID); - - }; - void clear() - { - ranFunctionID.clear(); - - }; - private: - ranFunctionID_t ranFunctionID; - -}; -/* -RANfunctionID-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-RANfunctionID-Item CRITICALITY ignore TYPE RANfunctionID-Item PRESENCE mandatory }, - ... -} -*/ - -struct RANfunctionID_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RANfunctionID_Item() { set(id_RANfunctionID_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_RANfunctionID_Item)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_RANfunctionID_Item);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RANfunctionID_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - RANfunctionID_Item& select_id_RANfunctionID_Item() { return set(1); } - RANfunctionID_Item const* get_id_RANfunctionID_Item() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_RANfunctionID_Item()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(RANfunctionID_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RANfunctionID_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RANfunctionIDcause-Item ::= SEQUENCE { - ranFunctionID RANfunctionID, - ricCause RICcause, - ... -} -*/ - -struct RANfunctionIDcause_Item : asn::sequence<2, 0, true, 0> -{ - static constexpr const char* name() {return "RANfunctionIDcause-Item";} - using parent_t = asn::sequence<2, 0, true, 0>; - struct ranFunctionID_t : RANfunctionID - { - static constexpr const char* name() {return "ranFunctionID_t";} - using parent_t = RANfunctionID; - - }; - ranFunctionID_t& ref_ranFunctionID() {return ranFunctionID;} - ranFunctionID_t const& ref_ranFunctionID() const {return ranFunctionID;} - struct ricCause_t : RICcause - { - static constexpr const char* name() {return "ricCause_t";} - using parent_t = RICcause; - - }; - ricCause_t& ref_ricCause() {return ricCause;} - ricCause_t const& ref_ricCause() const {return ricCause;} - template void decode(V& v) - { - v(ranFunctionID); - v(ricCause); - - }; - template void encode(V& v) const - { - v(ranFunctionID); - v(ricCause); - - }; - void clear() - { - ranFunctionID.clear(); - ricCause.clear(); - - }; - private: - ranFunctionID_t ranFunctionID; - ricCause_t ricCause; - -}; -/* -RANfunctionIDcause-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-RANfunctionIEcause-Item CRITICALITY ignore TYPE RANfunctionIDcause-Item PRESENCE mandatory }, - ... -} -*/ - -struct RANfunctionIDcause_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RANfunctionIEcause_Item() { set(id_RANfunctionIEcause_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_RANfunctionIEcause_Item)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_RANfunctionIEcause_Item);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RANfunctionIEcause_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - RANfunctionIDcause_Item& select_id_RANfunctionIEcause_Item() { return set(1); } - RANfunctionIDcause_Item const* get_id_RANfunctionIEcause_Item() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_RANfunctionIEcause_Item()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(RANfunctionIDcause_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RANfunctionIEcause_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RANfunctions-List ::= SEQUENCE (SIZE(0..maxofRANfunctionID)) OF ProtocolIE-Single-Container { {RANfunction-ItemIEs} } -*/ - -struct RANfunctions_List_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "RANfunctions_List_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct RANfunctions_List : asn::sequenceof -{ - static constexpr const char* name() {return "RANfunctions-List";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -RANfunctionsID-List ::= SEQUENCE (SIZE(0..maxofRANfunctionID)) OF ProtocolIE-Single-Container{{RANfunctionID-ItemIEs}} -*/ - -struct RANfunctionsID_List_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "RANfunctionsID_List_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct RANfunctionsID_List : asn::sequenceof -{ - static constexpr const char* name() {return "RANfunctionsID-List";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -RANfunctionsIDcause-List ::= SEQUENCE (SIZE(0..maxofRANfunctionID)) OF ProtocolIE-Single-Container { {RANfunctionIDcause-ItemIEs} } -*/ - -struct RANfunctionsIDcause_List_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "RANfunctionsIDcause_List_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct RANfunctionsIDcause_List : asn::sequenceof -{ - static constexpr const char* name() {return "RANfunctionsIDcause-List";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -RICaction-Admitted-Item ::= SEQUENCE { - ricActionID RICactionID, - ... -} -*/ - -struct RICaction_Admitted_Item : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "RICaction-Admitted-Item";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct ricActionID_t : RICactionID - { - static constexpr const char* name() {return "ricActionID_t";} - using parent_t = RICactionID; - - }; - ricActionID_t& ref_ricActionID() {return ricActionID;} - ricActionID_t const& ref_ricActionID() const {return ricActionID;} - template void decode(V& v) - { - v(ricActionID); - - }; - template void encode(V& v) const - { - v(ricActionID); - - }; - void clear() - { - ricActionID.clear(); - - }; - private: - ricActionID_t ricActionID; - -}; -/* -RICaction-Admitted-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-RICaction-Admitted-Item CRITICALITY ignore TYPE RICaction-Admitted-Item PRESENCE mandatory }, - ... -} -*/ - -struct RICaction_Admitted_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RICaction_Admitted_Item() { set(id_RICaction_Admitted_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_RICaction_Admitted_Item)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_RICaction_Admitted_Item);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RICaction_Admitted_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - RICaction_Admitted_Item& select_id_RICaction_Admitted_Item() { return set(1); } - RICaction_Admitted_Item const* get_id_RICaction_Admitted_Item() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_RICaction_Admitted_Item()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(RICaction_Admitted_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RICaction_Admitted_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RICaction-Admitted-List ::= SEQUENCE (SIZE(1..maxofRICactionID)) OF ProtocolIE-Single-Container{{RICaction-Admitted-ItemIEs}} -*/ - -struct RICaction_Admitted_List_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "RICaction_Admitted_List_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct RICaction_Admitted_List : asn::sequenceof -{ - static constexpr const char* name() {return "RICaction-Admitted-List";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -RICaction-NotAdmitted-Item ::= SEQUENCE { - ricActionID RICactionID, - ricCause RICcause, - ... -} -*/ - -struct RICaction_NotAdmitted_Item : asn::sequence<2, 0, true, 0> -{ - static constexpr const char* name() {return "RICaction-NotAdmitted-Item";} - using parent_t = asn::sequence<2, 0, true, 0>; - struct ricActionID_t : RICactionID - { - static constexpr const char* name() {return "ricActionID_t";} - using parent_t = RICactionID; - - }; - ricActionID_t& ref_ricActionID() {return ricActionID;} - ricActionID_t const& ref_ricActionID() const {return ricActionID;} - struct ricCause_t : RICcause - { - static constexpr const char* name() {return "ricCause_t";} - using parent_t = RICcause; - - }; - ricCause_t& ref_ricCause() {return ricCause;} - ricCause_t const& ref_ricCause() const {return ricCause;} - template void decode(V& v) - { - v(ricActionID); - v(ricCause); - - }; - template void encode(V& v) const - { - v(ricActionID); - v(ricCause); - - }; - void clear() - { - ricActionID.clear(); - ricCause.clear(); - - }; - private: - ricActionID_t ricActionID; - ricCause_t ricCause; - -}; -/* -RICaction-NotAdmitted-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-RICaction-NotAdmitted-Item CRITICALITY ignore TYPE RICaction-NotAdmitted-Item PRESENCE mandatory }, - ... -} -*/ - -struct RICaction_NotAdmitted_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RICaction_NotAdmitted_Item() { set(id_RICaction_NotAdmitted_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_RICaction_NotAdmitted_Item)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_RICaction_NotAdmitted_Item);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RICaction_NotAdmitted_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - RICaction_NotAdmitted_Item& select_id_RICaction_NotAdmitted_Item() { return set(1); } - RICaction_NotAdmitted_Item const* get_id_RICaction_NotAdmitted_Item() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_RICaction_NotAdmitted_Item()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(RICaction_NotAdmitted_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RICaction_NotAdmitted_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RICaction-NotAdmitted-List ::= SEQUENCE (SIZE(0..maxofRICactionID)) OF ProtocolIE-Single-Container { {RICaction-NotAdmitted-ItemIEs} } -*/ - -struct RICaction_NotAdmitted_List_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "RICaction_NotAdmitted_List_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct RICaction_NotAdmitted_List : asn::sequenceof -{ - static constexpr const char* name() {return "RICaction-NotAdmitted-List";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -RICaction-ToBeSetup-Item ::= SEQUENCE { - ricActionID RICactionID, - ricActionType RICactionType, - ricActionDefinition RICactionDefinition OPTIONAL, - ricSubsequentAction RICsubsequentAction OPTIONAL, - ... -} -*/ - -struct RICaction_ToBeSetup_Item : asn::sequence<4, 0, true, 2> -{ - static constexpr const char* name() {return "RICaction-ToBeSetup-Item";} - using parent_t = asn::sequence<4, 0, true, 2>; - struct ricActionID_t : RICactionID - { - static constexpr const char* name() {return "ricActionID_t";} - using parent_t = RICactionID; - - }; - ricActionID_t& ref_ricActionID() {return ricActionID;} - ricActionID_t const& ref_ricActionID() const {return ricActionID;} - struct ricActionType_t : RICactionType - { - static constexpr const char* name() {return "ricActionType_t";} - using parent_t = RICactionType; - - }; - ricActionType_t& ref_ricActionType() {return ricActionType;} - ricActionType_t const& ref_ricActionType() const {return ricActionType;} - struct ricActionDefinition_t : RICactionDefinition - { - static constexpr const char* name() {return "ricActionDefinition_t";} - using parent_t = RICactionDefinition; - static constexpr bool optional = true; - - }; - ricActionDefinition_t& set_ricActionDefinition() { ricActionDefinition.setpresent(true); return ricActionDefinition;} - ricActionDefinition_t const* get_ricActionDefinition() const {return ricActionDefinition.is_valid() ? &ricActionDefinition : nullptr;} - struct ricSubsequentAction_t : RICsubsequentAction - { - static constexpr const char* name() {return "ricSubsequentAction_t";} - using parent_t = RICsubsequentAction; - static constexpr bool optional = true; - - }; - ricSubsequentAction_t& set_ricSubsequentAction() { ricSubsequentAction.setpresent(true); return ricSubsequentAction;} - ricSubsequentAction_t const* get_ricSubsequentAction() const {return ricSubsequentAction.is_valid() ? &ricSubsequentAction : nullptr;} - template void decode(V& v) - { - v(ricActionID); - v(ricActionType); - v(ricActionDefinition); - v(ricSubsequentAction); - - }; - template void encode(V& v) const - { - v(ricActionID); - v(ricActionType); - v(ricActionDefinition); - v(ricSubsequentAction); - - }; - void clear() - { - ricActionID.clear(); - ricActionType.clear(); - ricActionDefinition.clear(); - ricSubsequentAction.clear(); - - }; - private: - ricActionID_t ricActionID; - ricActionType_t ricActionType; - ricActionDefinition_t ricActionDefinition; - ricSubsequentAction_t ricSubsequentAction; - -}; -/* -RICaction-ToBeSetup-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-RICaction-ToBeSetup-Item CRITICALITY ignore TYPE RICaction-ToBeSetup-Item PRESENCE mandatory }, - ... -} -*/ - -struct RICaction_ToBeSetup_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RICaction_ToBeSetup_Item() { set(id_RICaction_ToBeSetup_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_RICaction_ToBeSetup_Item)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_RICaction_ToBeSetup_Item);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RICaction_ToBeSetup_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - RICaction_ToBeSetup_Item& select_id_RICaction_ToBeSetup_Item() { return set(1); } - RICaction_ToBeSetup_Item const* get_id_RICaction_ToBeSetup_Item() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_RICaction_ToBeSetup_Item()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(RICaction_ToBeSetup_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RICaction_ToBeSetup_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RICactions-ToBeSetup-List ::= SEQUENCE (SIZE(1..maxofRICactionID)) OF ProtocolIE-Single-Container { {RICaction-ToBeSetup-ItemIEs} } -*/ - -struct RICactions_ToBeSetup_List_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "RICactions_ToBeSetup_List_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct RICactions_ToBeSetup_List : asn::sequenceof -{ - static constexpr const char* name() {return "RICactions-ToBeSetup-List";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -RICcontrolAcknowledge-IEs X2AP-PROTOCOL-IES ::= { - { ID id-RICrequestID CRITICALITY reject TYPE RICrequestID PRESENCE mandatory}| - { ID id-RANfunctionID CRITICALITY reject TYPE RANfunctionID PRESENCE mandatory}| - { ID id-RICcallProcessID CRITICALITY reject TYPE RICcallProcessID PRESENCE optional}| - { ID id-RICcontrolStatus CRITICALITY reject TYPE RICcontrolStatus PRESENCE mandatory}, - ... -} -*/ - -struct RICcontrolAcknowledge_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_RICrequestID() { set(id_RICrequestID); type=1;} - void select_id_RANfunctionID() { set(id_RANfunctionID); type=2;} - void select_id_RICcallProcessID() { set(id_RICcallProcessID); type=3;} - void select_id_RICcontrolStatus() { set(id_RICcontrolStatus); type=4;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_RICrequestID)) { type = 1; return true; } - else if(equal(id_RANfunctionID)) { type = 2; return true; } - else if(equal(id_RICcallProcessID)) { type = 3; return true; } - else if(equal(id_RICcontrolStatus)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_RICrequestID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_RANfunctionID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_RICcallProcessID);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_RICcontrolStatus);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_RICrequestID() { set(reject); type=1;} - void select_id_RANfunctionID() { set(reject); type=2;} - void select_id_RICcallProcessID() { set(reject); type=3;} - void select_id_RICcontrolStatus() { set(reject); type=4;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(reject)) { type = 3; return true; } - else if(equal(reject)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(reject);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(reject);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - RICrequestID& select_id_RICrequestID() { return set(1); } - RICrequestID const* get_id_RICrequestID() const { return get(1); } - RANfunctionID& select_id_RANfunctionID() { return set(2); } - RANfunctionID const* get_id_RANfunctionID() const { return get(2); } - RICcallProcessID& select_id_RICcallProcessID() { return set(3); } - RICcallProcessID const* get_id_RICcallProcessID() const { return get(3); } - RICcontrolStatus& select_id_RICcontrolStatus() { return set(4); } - RICcontrolStatus const* get_id_RICcontrolStatus() const { return get(4); } - bool is_unknown() const { return type == 5; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_RICrequestID()); return true; - case 2: v(select_id_RANfunctionID()); return true; - case 3: v(select_id_RICcallProcessID()); return true; - case 4: v(select_id_RICcontrolStatus()); return true; - case 5: if(type != 5) {clear(); asn::base::set();} type = 5; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(RANfunctionID)]; - char dummy2[sizeof(RICcallProcessID)]; - char dummy3[sizeof(RICcontrolStatus)]; - char dummy4[sizeof(RICrequestID)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_RICrequestID() { set(mandatory); type=1;} - void select_id_RANfunctionID() { set(mandatory); type=2;} - void select_id_RICcallProcessID() { set(optional); type=3;} - void select_id_RICcontrolStatus() { set(mandatory); type=4;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else if(equal(mandatory)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(mandatory);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RICcontrolAcknowledge ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{RICcontrolAcknowledge-IEs}}, - ... -} -*/ - -struct RICcontrolAcknowledge : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "RICcontrolAcknowledge";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -RICcontrolFailure-IEs X2AP-PROTOCOL-IES ::= { - { ID id-RICrequestID CRITICALITY reject TYPE RICrequestID PRESENCE mandatory}| - { ID id-RANfunctionID CRITICALITY reject TYPE RANfunctionID PRESENCE mandatory}| - { ID id-RICcallProcessID CRITICALITY reject TYPE RICcallProcessID PRESENCE optional}| - { ID id-RICcause CRITICALITY reject TYPE RICcause PRESENCE mandatory}, - ... -} -*/ - -struct RICcontrolFailure_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_RICrequestID() { set(id_RICrequestID); type=1;} - void select_id_RANfunctionID() { set(id_RANfunctionID); type=2;} - void select_id_RICcallProcessID() { set(id_RICcallProcessID); type=3;} - void select_id_RICcause() { set(id_RICcause); type=4;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_RICrequestID)) { type = 1; return true; } - else if(equal(id_RANfunctionID)) { type = 2; return true; } - else if(equal(id_RICcallProcessID)) { type = 3; return true; } - else if(equal(id_RICcause)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_RICrequestID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_RANfunctionID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_RICcallProcessID);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_RICcause);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_RICrequestID() { set(reject); type=1;} - void select_id_RANfunctionID() { set(reject); type=2;} - void select_id_RICcallProcessID() { set(reject); type=3;} - void select_id_RICcause() { set(reject); type=4;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(reject)) { type = 3; return true; } - else if(equal(reject)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(reject);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(reject);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - RICrequestID& select_id_RICrequestID() { return set(1); } - RICrequestID const* get_id_RICrequestID() const { return get(1); } - RANfunctionID& select_id_RANfunctionID() { return set(2); } - RANfunctionID const* get_id_RANfunctionID() const { return get(2); } - RICcallProcessID& select_id_RICcallProcessID() { return set(3); } - RICcallProcessID const* get_id_RICcallProcessID() const { return get(3); } - RICcause& select_id_RICcause() { return set(4); } - RICcause const* get_id_RICcause() const { return get(4); } - bool is_unknown() const { return type == 5; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_RICrequestID()); return true; - case 2: v(select_id_RANfunctionID()); return true; - case 3: v(select_id_RICcallProcessID()); return true; - case 4: v(select_id_RICcause()); return true; - case 5: if(type != 5) {clear(); asn::base::set();} type = 5; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(RANfunctionID)]; - char dummy2[sizeof(RICcallProcessID)]; - char dummy3[sizeof(RICcause)]; - char dummy4[sizeof(RICrequestID)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_RICrequestID() { set(mandatory); type=1;} - void select_id_RANfunctionID() { set(mandatory); type=2;} - void select_id_RICcallProcessID() { set(optional); type=3;} - void select_id_RICcause() { set(mandatory); type=4;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else if(equal(mandatory)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(mandatory);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RICcontrolFailure ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{RICcontrolFailure-IEs}}, - ... -} -*/ - -struct RICcontrolFailure : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "RICcontrolFailure";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -RICcontrolRequest-IEs X2AP-PROTOCOL-IES ::= { - { ID id-RICrequestID CRITICALITY reject TYPE RICrequestID PRESENCE mandatory}| - { ID id-RANfunctionID CRITICALITY reject TYPE RANfunctionID PRESENCE mandatory}| - { ID id-RICcallProcessID CRITICALITY reject TYPE RICcallProcessID PRESENCE optional}| - { ID id-RICcontrolHeader CRITICALITY reject TYPE RICcontrolHeader PRESENCE mandatory}| - { ID id-RICcontrolMessage CRITICALITY reject TYPE RICcontrolMessage PRESENCE mandatory}| - { ID id-RICcontrolAckRequest CRITICALITY reject TYPE RICcontrolAckRequest PRESENCE optional}, - ... -} -*/ - -struct RICcontrolRequest_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_RICrequestID() { set(id_RICrequestID); type=1;} - void select_id_RANfunctionID() { set(id_RANfunctionID); type=2;} - void select_id_RICcallProcessID() { set(id_RICcallProcessID); type=3;} - void select_id_RICcontrolHeader() { set(id_RICcontrolHeader); type=4;} - void select_id_RICcontrolMessage() { set(id_RICcontrolMessage); type=5;} - void select_id_RICcontrolAckRequest() { set(id_RICcontrolAckRequest); type=6;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_RICrequestID)) { type = 1; return true; } - else if(equal(id_RANfunctionID)) { type = 2; return true; } - else if(equal(id_RICcallProcessID)) { type = 3; return true; } - else if(equal(id_RICcontrolHeader)) { type = 4; return true; } - else if(equal(id_RICcontrolMessage)) { type = 5; return true; } - else if(equal(id_RICcontrolAckRequest)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_RICrequestID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_RANfunctionID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_RICcallProcessID);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_RICcontrolHeader);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_RICcontrolMessage);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_RICcontrolAckRequest);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_RICrequestID() { set(reject); type=1;} - void select_id_RANfunctionID() { set(reject); type=2;} - void select_id_RICcallProcessID() { set(reject); type=3;} - void select_id_RICcontrolHeader() { set(reject); type=4;} - void select_id_RICcontrolMessage() { set(reject); type=5;} - void select_id_RICcontrolAckRequest() { set(reject); type=6;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(reject)) { type = 3; return true; } - else if(equal(reject)) { type = 4; return true; } - else if(equal(reject)) { type = 5; return true; } - else if(equal(reject)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(reject);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(reject);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(reject);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(reject);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - RICrequestID& select_id_RICrequestID() { return set(1); } - RICrequestID const* get_id_RICrequestID() const { return get(1); } - RANfunctionID& select_id_RANfunctionID() { return set(2); } - RANfunctionID const* get_id_RANfunctionID() const { return get(2); } - RICcallProcessID& select_id_RICcallProcessID() { return set(3); } - RICcallProcessID const* get_id_RICcallProcessID() const { return get(3); } - RICcontrolHeader& select_id_RICcontrolHeader() { return set(4); } - RICcontrolHeader const* get_id_RICcontrolHeader() const { return get(4); } - RICcontrolMessage& select_id_RICcontrolMessage() { return set(5); } - RICcontrolMessage const* get_id_RICcontrolMessage() const { return get(5); } - RICcontrolAckRequest& select_id_RICcontrolAckRequest() { return set(6); } - RICcontrolAckRequest const* get_id_RICcontrolAckRequest() const { return get(6); } - bool is_unknown() const { return type == 7; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_RICrequestID()); return true; - case 2: v(select_id_RANfunctionID()); return true; - case 3: v(select_id_RICcallProcessID()); return true; - case 4: v(select_id_RICcontrolHeader()); return true; - case 5: v(select_id_RICcontrolMessage()); return true; - case 6: v(select_id_RICcontrolAckRequest()); return true; - case 7: if(type != 7) {clear(); asn::base::set();} type = 7; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(RANfunctionID)]; - char dummy2[sizeof(RICcallProcessID)]; - char dummy3[sizeof(RICcontrolAckRequest)]; - char dummy4[sizeof(RICcontrolHeader)]; - char dummy5[sizeof(RICcontrolMessage)]; - char dummy6[sizeof(RICrequestID)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_RICrequestID() { set(mandatory); type=1;} - void select_id_RANfunctionID() { set(mandatory); type=2;} - void select_id_RICcallProcessID() { set(optional); type=3;} - void select_id_RICcontrolHeader() { set(mandatory); type=4;} - void select_id_RICcontrolMessage() { set(mandatory); type=5;} - void select_id_RICcontrolAckRequest() { set(optional); type=6;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else if(equal(mandatory)) { type = 4; return true; } - else if(equal(mandatory)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(mandatory);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(mandatory);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RICcontrolRequest ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{RICcontrolRequest-IEs}}, - ... -} -*/ - -struct RICcontrolRequest : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "RICcontrolRequest";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -RICindication-IEs X2AP-PROTOCOL-IES ::= { - { ID id-RICrequestID CRITICALITY reject TYPE RICrequestID PRESENCE mandatory}| - { ID id-RANfunctionID CRITICALITY reject TYPE RANfunctionID PRESENCE mandatory}| - { ID id-RICactionID CRITICALITY reject TYPE RICactionID PRESENCE mandatory}| - { ID id-RICindicationSN CRITICALITY reject TYPE RICindicationSN PRESENCE mandatory}| - { ID id-RICindicationType CRITICALITY reject TYPE RICindicationType PRESENCE mandatory}| - { ID id-RICindicationHeader CRITICALITY reject TYPE RICindicationHeader PRESENCE mandatory}| - { ID id-RICindicationMessage CRITICALITY reject TYPE RICindicationMessage PRESENCE mandatory} | - { ID id-RICcallProcessID CRITICALITY reject TYPE RICcallProcessID PRESENCE optional}, - ... -} -*/ - -struct RICindication_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 9; } - void clear() {type = 0;} - void select_id_RICrequestID() { set(id_RICrequestID); type=1;} - void select_id_RANfunctionID() { set(id_RANfunctionID); type=2;} - void select_id_RICactionID() { set(id_RICactionID); type=3;} - void select_id_RICindicationSN() { set(id_RICindicationSN); type=4;} - void select_id_RICindicationType() { set(id_RICindicationType); type=5;} - void select_id_RICindicationHeader() { set(id_RICindicationHeader); type=6;} - void select_id_RICindicationMessage() { set(id_RICindicationMessage); type=7;} - void select_id_RICcallProcessID() { set(id_RICcallProcessID); type=8;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_RICrequestID)) { type = 1; return true; } - else if(equal(id_RANfunctionID)) { type = 2; return true; } - else if(equal(id_RICactionID)) { type = 3; return true; } - else if(equal(id_RICindicationSN)) { type = 4; return true; } - else if(equal(id_RICindicationType)) { type = 5; return true; } - else if(equal(id_RICindicationHeader)) { type = 6; return true; } - else if(equal(id_RICindicationMessage)) { type = 7; return true; } - else if(equal(id_RICcallProcessID)) { type = 8; return true; } - else { type = 9; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_RICrequestID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_RANfunctionID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_RICactionID);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_RICindicationSN);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_RICindicationType);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_RICindicationHeader);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(id_RICindicationMessage);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(id_RICcallProcessID);} return false; - case 9: type = 9; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 9; } - void clear() {type = 0;} - void select_id_RICrequestID() { set(reject); type=1;} - void select_id_RANfunctionID() { set(reject); type=2;} - void select_id_RICactionID() { set(reject); type=3;} - void select_id_RICindicationSN() { set(reject); type=4;} - void select_id_RICindicationType() { set(reject); type=5;} - void select_id_RICindicationHeader() { set(reject); type=6;} - void select_id_RICindicationMessage() { set(reject); type=7;} - void select_id_RICcallProcessID() { set(reject); type=8;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(reject)) { type = 3; return true; } - else if(equal(reject)) { type = 4; return true; } - else if(equal(reject)) { type = 5; return true; } - else if(equal(reject)) { type = 6; return true; } - else if(equal(reject)) { type = 7; return true; } - else if(equal(reject)) { type = 8; return true; } - else { type = 9; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(reject);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(reject);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(reject);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(reject);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(reject);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(reject);} return false; - case 9: type = 9; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - RICrequestID& select_id_RICrequestID() { return set(1); } - RICrequestID const* get_id_RICrequestID() const { return get(1); } - RANfunctionID& select_id_RANfunctionID() { return set(2); } - RANfunctionID const* get_id_RANfunctionID() const { return get(2); } - RICactionID& select_id_RICactionID() { return set(3); } - RICactionID const* get_id_RICactionID() const { return get(3); } - RICindicationSN& select_id_RICindicationSN() { return set(4); } - RICindicationSN const* get_id_RICindicationSN() const { return get(4); } - RICindicationType& select_id_RICindicationType() { return set(5); } - RICindicationType const* get_id_RICindicationType() const { return get(5); } - RICindicationHeader& select_id_RICindicationHeader() { return set(6); } - RICindicationHeader const* get_id_RICindicationHeader() const { return get(6); } - RICindicationMessage& select_id_RICindicationMessage() { return set(7); } - RICindicationMessage const* get_id_RICindicationMessage() const { return get(7); } - RICcallProcessID& select_id_RICcallProcessID() { return set(8); } - RICcallProcessID const* get_id_RICcallProcessID() const { return get(8); } - bool is_unknown() const { return type == 9; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - case 7: var.destroy(); break; - case 8: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - v.template operator()(7); - v.template operator()(8); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_RICrequestID()); return true; - case 2: v(select_id_RANfunctionID()); return true; - case 3: v(select_id_RICactionID()); return true; - case 4: v(select_id_RICindicationSN()); return true; - case 5: v(select_id_RICindicationType()); return true; - case 6: v(select_id_RICindicationHeader()); return true; - case 7: v(select_id_RICindicationMessage()); return true; - case 8: v(select_id_RICcallProcessID()); return true; - case 9: if(type != 9) {clear(); asn::base::set();} type = 9; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - case 7: v(var.as()); return true; - case 8: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(RANfunctionID)]; - char dummy2[sizeof(RICactionID)]; - char dummy3[sizeof(RICcallProcessID)]; - char dummy4[sizeof(RICindicationHeader)]; - char dummy5[sizeof(RICindicationMessage)]; - char dummy6[sizeof(RICindicationSN)]; - char dummy7[sizeof(RICindicationType)]; - char dummy8[sizeof(RICrequestID)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 9; } - void clear() {type = 0;} - void select_id_RICrequestID() { set(mandatory); type=1;} - void select_id_RANfunctionID() { set(mandatory); type=2;} - void select_id_RICactionID() { set(mandatory); type=3;} - void select_id_RICindicationSN() { set(mandatory); type=4;} - void select_id_RICindicationType() { set(mandatory); type=5;} - void select_id_RICindicationHeader() { set(mandatory); type=6;} - void select_id_RICindicationMessage() { set(mandatory); type=7;} - void select_id_RICcallProcessID() { set(optional); type=8;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(mandatory)) { type = 4; return true; } - else if(equal(mandatory)) { type = 5; return true; } - else if(equal(mandatory)) { type = 6; return true; } - else if(equal(mandatory)) { type = 7; return true; } - else if(equal(optional)) { type = 8; return true; } - else { type = 9; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(mandatory);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(mandatory);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(mandatory);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(mandatory);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(optional);} return false; - case 9: type = 9; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RICindication ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{RICindication-IEs}}, - ... -} -*/ - -struct RICindication : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "RICindication";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -RICserviceQuery-IEs X2AP-PROTOCOL-IES ::= { - { ID id-RANfunctionsAccepted CRITICALITY reject TYPE RANfunctionsID-List PRESENCE optional}, - ... -} -*/ - -struct RICserviceQuery_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RANfunctionsAccepted() { set(id_RANfunctionsAccepted); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_RANfunctionsAccepted)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_RANfunctionsAccepted);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RANfunctionsAccepted() { set(reject); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - RANfunctionsID_List& select_id_RANfunctionsAccepted() { return set(1); } - RANfunctionsID_List const* get_id_RANfunctionsAccepted() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_RANfunctionsAccepted()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(RANfunctionsID_List)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RANfunctionsAccepted() { set(optional); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RICserviceQuery ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{RICserviceQuery-IEs}}, - ... -} -*/ - -struct RICserviceQuery : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "RICserviceQuery";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -RICserviceUpdate-IEs X2AP-PROTOCOL-IES ::= { - { ID id-RANfunctionsAdded CRITICALITY reject TYPE RANfunctions-List PRESENCE optional}| - { ID id-RANfunctionsModified CRITICALITY reject TYPE RANfunctions-List PRESENCE optional}| - { ID id-RANfunctionsDeleted CRITICALITY reject TYPE RANfunctionsID-List PRESENCE optional}, - ... -} -*/ - -struct RICserviceUpdate_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_RANfunctionsAdded() { set(id_RANfunctionsAdded); type=1;} - void select_id_RANfunctionsModified() { set(id_RANfunctionsModified); type=2;} - void select_id_RANfunctionsDeleted() { set(id_RANfunctionsDeleted); type=3;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_RANfunctionsAdded)) { type = 1; return true; } - else if(equal(id_RANfunctionsModified)) { type = 2; return true; } - else if(equal(id_RANfunctionsDeleted)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_RANfunctionsAdded);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_RANfunctionsModified);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_RANfunctionsDeleted);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_RANfunctionsAdded() { set(reject); type=1;} - void select_id_RANfunctionsModified() { set(reject); type=2;} - void select_id_RANfunctionsDeleted() { set(reject); type=3;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(reject)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(reject);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - RANfunctions_List& select_id_RANfunctionsAdded() { return set(1); } - RANfunctions_List const* get_id_RANfunctionsAdded() const { return get(1); } - RANfunctions_List& select_id_RANfunctionsModified() { return set(2); } - RANfunctions_List const* get_id_RANfunctionsModified() const { return get(2); } - RANfunctionsID_List& select_id_RANfunctionsDeleted() { return set(3); } - RANfunctionsID_List const* get_id_RANfunctionsDeleted() const { return get(3); } - bool is_unknown() const { return type == 4; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_RANfunctionsAdded()); return true; - case 2: v(select_id_RANfunctionsModified()); return true; - case 3: v(select_id_RANfunctionsDeleted()); return true; - case 4: if(type != 4) {clear(); asn::base::set();} type = 4; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(RANfunctionsID_List)]; - char dummy2[sizeof(RANfunctions_List)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_RANfunctionsAdded() { set(optional); type=1;} - void select_id_RANfunctionsModified() { set(optional); type=2;} - void select_id_RANfunctionsDeleted() { set(optional); type=3;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RICserviceUpdate ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{RICserviceUpdate-IEs}}, - ... -} -*/ - -struct RICserviceUpdate : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "RICserviceUpdate";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -RICserviceUpdateAcknowledge-IEs X2AP-PROTOCOL-IES ::= { - { ID id-RANfunctionsAccepted CRITICALITY reject TYPE RANfunctionsID-List PRESENCE optional}| - { ID id-RANfunctionsRejected CRITICALITY reject TYPE RANfunctionsIDcause-List PRESENCE optional}, - ... -} -*/ - -struct RICserviceUpdateAcknowledge_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_RANfunctionsAccepted() { set(id_RANfunctionsAccepted); type=1;} - void select_id_RANfunctionsRejected() { set(id_RANfunctionsRejected); type=2;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_RANfunctionsAccepted)) { type = 1; return true; } - else if(equal(id_RANfunctionsRejected)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_RANfunctionsAccepted);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_RANfunctionsRejected);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_RANfunctionsAccepted() { set(reject); type=1;} - void select_id_RANfunctionsRejected() { set(reject); type=2;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - RANfunctionsID_List& select_id_RANfunctionsAccepted() { return set(1); } - RANfunctionsID_List const* get_id_RANfunctionsAccepted() const { return get(1); } - RANfunctionsIDcause_List& select_id_RANfunctionsRejected() { return set(2); } - RANfunctionsIDcause_List const* get_id_RANfunctionsRejected() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_RANfunctionsAccepted()); return true; - case 2: v(select_id_RANfunctionsRejected()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(RANfunctionsID_List)]; - char dummy2[sizeof(RANfunctionsIDcause_List)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_RANfunctionsAccepted() { set(optional); type=1;} - void select_id_RANfunctionsRejected() { set(optional); type=2;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RICserviceUpdateAcknowledge ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{RICserviceUpdateAcknowledge-IEs}}, - ... -} -*/ - -struct RICserviceUpdateAcknowledge : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "RICserviceUpdateAcknowledge";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -RICserviceUpdateFailure-IEs X2AP-PROTOCOL-IES ::= { - { ID id-RANfunctionsRejected CRITICALITY reject TYPE RANfunctionsIDcause-List PRESENCE optional}| - { ID id-TimeToWait CRITICALITY ignore TYPE TimeToWait PRESENCE optional}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, - ... -} -*/ - -struct RICserviceUpdateFailure_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_RANfunctionsRejected() { set(id_RANfunctionsRejected); type=1;} - void select_id_TimeToWait() { set(id_TimeToWait); type=2;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=3;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_RANfunctionsRejected)) { type = 1; return true; } - else if(equal(id_TimeToWait)) { type = 2; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_RANfunctionsRejected);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_TimeToWait);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_RANfunctionsRejected() { set(reject); type=1;} - void select_id_TimeToWait() { set(ignore); type=2;} - void select_id_CriticalityDiagnostics() { set(ignore); type=3;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - RANfunctionsIDcause_List& select_id_RANfunctionsRejected() { return set(1); } - RANfunctionsIDcause_List const* get_id_RANfunctionsRejected() const { return get(1); } - TimeToWait& select_id_TimeToWait() { return set(2); } - TimeToWait const* get_id_TimeToWait() const { return get(2); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(3); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(3); } - bool is_unknown() const { return type == 4; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_RANfunctionsRejected()); return true; - case 2: v(select_id_TimeToWait()); return true; - case 3: v(select_id_CriticalityDiagnostics()); return true; - case 4: if(type != 4) {clear(); asn::base::set();} type = 4; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CriticalityDiagnostics)]; - char dummy2[sizeof(RANfunctionsIDcause_List)]; - char dummy3[sizeof(TimeToWait)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_RANfunctionsRejected() { set(optional); type=1;} - void select_id_TimeToWait() { set(optional); type=2;} - void select_id_CriticalityDiagnostics() { set(optional); type=3;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RICserviceUpdateFailure ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{RICserviceUpdateFailure-IEs}}, - ... -} -*/ - -struct RICserviceUpdateFailure : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "RICserviceUpdateFailure";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -RICsubscription ::= SEQUENCE { - ricEventTriggerDefinition RICeventTriggerDefinition, - ricAction-ToBeSetup-List RICactions-ToBeSetup-List, - ... -} -*/ - -struct RICsubscription : asn::sequence<2, 0, true, 0> -{ - static constexpr const char* name() {return "RICsubscription";} - using parent_t = asn::sequence<2, 0, true, 0>; - struct ricEventTriggerDefinition_t : RICeventTriggerDefinition - { - static constexpr const char* name() {return "ricEventTriggerDefinition_t";} - using parent_t = RICeventTriggerDefinition; - - }; - ricEventTriggerDefinition_t& ref_ricEventTriggerDefinition() {return ricEventTriggerDefinition;} - ricEventTriggerDefinition_t const& ref_ricEventTriggerDefinition() const {return ricEventTriggerDefinition;} - struct ricAction_ToBeSetup_List_t : RICactions_ToBeSetup_List - { - static constexpr const char* name() {return "ricAction_ToBeSetup_List_t";} - using parent_t = RICactions_ToBeSetup_List; - - }; - ricAction_ToBeSetup_List_t& ref_ricAction_ToBeSetup_List() {return ricAction_ToBeSetup_List;} - ricAction_ToBeSetup_List_t const& ref_ricAction_ToBeSetup_List() const {return ricAction_ToBeSetup_List;} - template void decode(V& v) - { - v(ricEventTriggerDefinition); - v(ricAction_ToBeSetup_List); - - }; - template void encode(V& v) const - { - v(ricEventTriggerDefinition); - v(ricAction_ToBeSetup_List); - - }; - void clear() - { - ricEventTriggerDefinition.clear(); - ricAction_ToBeSetup_List.clear(); - - }; - private: - ricEventTriggerDefinition_t ricEventTriggerDefinition; - ricAction_ToBeSetup_List_t ricAction_ToBeSetup_List; - -}; -/* -RICsubscriptionDeleteFailure-IEs X2AP-PROTOCOL-IES ::= { - { ID id-RICrequestID CRITICALITY reject TYPE RICrequestID PRESENCE mandatory}| - { ID id-RANfunctionID CRITICALITY reject TYPE RANfunctionID PRESENCE mandatory}| - { ID id-RICcause CRITICALITY reject TYPE RICcause PRESENCE mandatory}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, - ... -} -*/ - -struct RICsubscriptionDeleteFailure_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_RICrequestID() { set(id_RICrequestID); type=1;} - void select_id_RANfunctionID() { set(id_RANfunctionID); type=2;} - void select_id_RICcause() { set(id_RICcause); type=3;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=4;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_RICrequestID)) { type = 1; return true; } - else if(equal(id_RANfunctionID)) { type = 2; return true; } - else if(equal(id_RICcause)) { type = 3; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_RICrequestID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_RANfunctionID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_RICcause);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_RICrequestID() { set(reject); type=1;} - void select_id_RANfunctionID() { set(reject); type=2;} - void select_id_RICcause() { set(reject); type=3;} - void select_id_CriticalityDiagnostics() { set(ignore); type=4;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(reject)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(reject);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - RICrequestID& select_id_RICrequestID() { return set(1); } - RICrequestID const* get_id_RICrequestID() const { return get(1); } - RANfunctionID& select_id_RANfunctionID() { return set(2); } - RANfunctionID const* get_id_RANfunctionID() const { return get(2); } - RICcause& select_id_RICcause() { return set(3); } - RICcause const* get_id_RICcause() const { return get(3); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(4); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(4); } - bool is_unknown() const { return type == 5; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_RICrequestID()); return true; - case 2: v(select_id_RANfunctionID()); return true; - case 3: v(select_id_RICcause()); return true; - case 4: v(select_id_CriticalityDiagnostics()); return true; - case 5: if(type != 5) {clear(); asn::base::set();} type = 5; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CriticalityDiagnostics)]; - char dummy2[sizeof(RANfunctionID)]; - char dummy3[sizeof(RICcause)]; - char dummy4[sizeof(RICrequestID)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_RICrequestID() { set(mandatory); type=1;} - void select_id_RANfunctionID() { set(mandatory); type=2;} - void select_id_RICcause() { set(mandatory); type=3;} - void select_id_CriticalityDiagnostics() { set(optional); type=4;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RICsubscriptionDeleteFailure ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{RICsubscriptionDeleteFailure-IEs}}, - ... -} -*/ - -struct RICsubscriptionDeleteFailure : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "RICsubscriptionDeleteFailure";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -RICsubscriptionDeleteRequest-IEs X2AP-PROTOCOL-IES ::= { - { ID id-RICrequestID CRITICALITY reject TYPE RICrequestID PRESENCE mandatory}| - { ID id-RANfunctionID CRITICALITY reject TYPE RANfunctionID PRESENCE mandatory}, - ... -} -*/ - -struct RICsubscriptionDeleteRequest_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_RICrequestID() { set(id_RICrequestID); type=1;} - void select_id_RANfunctionID() { set(id_RANfunctionID); type=2;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_RICrequestID)) { type = 1; return true; } - else if(equal(id_RANfunctionID)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_RICrequestID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_RANfunctionID);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_RICrequestID() { set(reject); type=1;} - void select_id_RANfunctionID() { set(reject); type=2;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - RICrequestID& select_id_RICrequestID() { return set(1); } - RICrequestID const* get_id_RICrequestID() const { return get(1); } - RANfunctionID& select_id_RANfunctionID() { return set(2); } - RANfunctionID const* get_id_RANfunctionID() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_RICrequestID()); return true; - case 2: v(select_id_RANfunctionID()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(RANfunctionID)]; - char dummy2[sizeof(RICrequestID)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_RICrequestID() { set(mandatory); type=1;} - void select_id_RANfunctionID() { set(mandatory); type=2;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RICsubscriptionDeleteRequest ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{RICsubscriptionDeleteRequest-IEs}}, - ... -} -*/ - -struct RICsubscriptionDeleteRequest : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "RICsubscriptionDeleteRequest";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -RICsubscriptionDeleteResponse-IEs X2AP-PROTOCOL-IES ::= { - { ID id-RICrequestID CRITICALITY reject TYPE RICrequestID PRESENCE mandatory}| - { ID id-RANfunctionID CRITICALITY reject TYPE RANfunctionID PRESENCE mandatory}, - ... -} -*/ - -struct RICsubscriptionDeleteResponse_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_RICrequestID() { set(id_RICrequestID); type=1;} - void select_id_RANfunctionID() { set(id_RANfunctionID); type=2;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_RICrequestID)) { type = 1; return true; } - else if(equal(id_RANfunctionID)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_RICrequestID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_RANfunctionID);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_RICrequestID() { set(reject); type=1;} - void select_id_RANfunctionID() { set(reject); type=2;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - RICrequestID& select_id_RICrequestID() { return set(1); } - RICrequestID const* get_id_RICrequestID() const { return get(1); } - RANfunctionID& select_id_RANfunctionID() { return set(2); } - RANfunctionID const* get_id_RANfunctionID() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_RICrequestID()); return true; - case 2: v(select_id_RANfunctionID()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(RANfunctionID)]; - char dummy2[sizeof(RICrequestID)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_RICrequestID() { set(mandatory); type=1;} - void select_id_RANfunctionID() { set(mandatory); type=2;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RICsubscriptionDeleteResponse ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{RICsubscriptionDeleteResponse-IEs}}, - ... -} -*/ - -struct RICsubscriptionDeleteResponse : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "RICsubscriptionDeleteResponse";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -RICsubscriptionFailure-IEs X2AP-PROTOCOL-IES ::= { - { ID id-RICrequestID CRITICALITY reject TYPE RICrequestID PRESENCE mandatory}| - { ID id-RANfunctionID CRITICALITY reject TYPE RANfunctionID PRESENCE mandatory}| - { ID id-RICactions-NotAdmitted CRITICALITY reject TYPE RICaction-NotAdmitted-List PRESENCE mandatory}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, - ... -} -*/ - -struct RICsubscriptionFailure_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_RICrequestID() { set(id_RICrequestID); type=1;} - void select_id_RANfunctionID() { set(id_RANfunctionID); type=2;} - void select_id_RICactions_NotAdmitted() { set(id_RICactions_NotAdmitted); type=3;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=4;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_RICrequestID)) { type = 1; return true; } - else if(equal(id_RANfunctionID)) { type = 2; return true; } - else if(equal(id_RICactions_NotAdmitted)) { type = 3; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_RICrequestID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_RANfunctionID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_RICactions_NotAdmitted);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_RICrequestID() { set(reject); type=1;} - void select_id_RANfunctionID() { set(reject); type=2;} - void select_id_RICactions_NotAdmitted() { set(reject); type=3;} - void select_id_CriticalityDiagnostics() { set(ignore); type=4;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(reject)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(reject);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - RICrequestID& select_id_RICrequestID() { return set(1); } - RICrequestID const* get_id_RICrequestID() const { return get(1); } - RANfunctionID& select_id_RANfunctionID() { return set(2); } - RANfunctionID const* get_id_RANfunctionID() const { return get(2); } - RICaction_NotAdmitted_List& select_id_RICactions_NotAdmitted() { return set(3); } - RICaction_NotAdmitted_List const* get_id_RICactions_NotAdmitted() const { return get(3); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(4); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(4); } - bool is_unknown() const { return type == 5; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_RICrequestID()); return true; - case 2: v(select_id_RANfunctionID()); return true; - case 3: v(select_id_RICactions_NotAdmitted()); return true; - case 4: v(select_id_CriticalityDiagnostics()); return true; - case 5: if(type != 5) {clear(); asn::base::set();} type = 5; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CriticalityDiagnostics)]; - char dummy2[sizeof(RANfunctionID)]; - char dummy3[sizeof(RICaction_NotAdmitted_List)]; - char dummy4[sizeof(RICrequestID)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_RICrequestID() { set(mandatory); type=1;} - void select_id_RANfunctionID() { set(mandatory); type=2;} - void select_id_RICactions_NotAdmitted() { set(mandatory); type=3;} - void select_id_CriticalityDiagnostics() { set(optional); type=4;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RICsubscriptionFailure ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{RICsubscriptionFailure-IEs}}, - ... -} -*/ - -struct RICsubscriptionFailure : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "RICsubscriptionFailure";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -RICsubscriptionRequest-IEs X2AP-PROTOCOL-IES ::= { - { ID id-RICrequestID CRITICALITY reject TYPE RICrequestID PRESENCE mandatory}| - { ID id-RANfunctionID CRITICALITY reject TYPE RANfunctionID PRESENCE mandatory}| - { ID id-RICsubscription CRITICALITY reject TYPE RICsubscription PRESENCE mandatory}, - ... -} -*/ - -struct RICsubscriptionRequest_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_RICrequestID() { set(id_RICrequestID); type=1;} - void select_id_RANfunctionID() { set(id_RANfunctionID); type=2;} - void select_id_RICsubscription() { set(id_RICsubscription); type=3;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_RICrequestID)) { type = 1; return true; } - else if(equal(id_RANfunctionID)) { type = 2; return true; } - else if(equal(id_RICsubscription)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_RICrequestID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_RANfunctionID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_RICsubscription);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_RICrequestID() { set(reject); type=1;} - void select_id_RANfunctionID() { set(reject); type=2;} - void select_id_RICsubscription() { set(reject); type=3;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(reject)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(reject);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - RICrequestID& select_id_RICrequestID() { return set(1); } - RICrequestID const* get_id_RICrequestID() const { return get(1); } - RANfunctionID& select_id_RANfunctionID() { return set(2); } - RANfunctionID const* get_id_RANfunctionID() const { return get(2); } - RICsubscription& select_id_RICsubscription() { return set(3); } - RICsubscription const* get_id_RICsubscription() const { return get(3); } - bool is_unknown() const { return type == 4; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_RICrequestID()); return true; - case 2: v(select_id_RANfunctionID()); return true; - case 3: v(select_id_RICsubscription()); return true; - case 4: if(type != 4) {clear(); asn::base::set();} type = 4; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(RANfunctionID)]; - char dummy2[sizeof(RICrequestID)]; - char dummy3[sizeof(RICsubscription)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_RICrequestID() { set(mandatory); type=1;} - void select_id_RANfunctionID() { set(mandatory); type=2;} - void select_id_RICsubscription() { set(mandatory); type=3;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RICsubscriptionRequest ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{RICsubscriptionRequest-IEs}}, - ... -} -*/ - -struct RICsubscriptionRequest : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "RICsubscriptionRequest";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -RICsubscriptionResponse-IEs X2AP-PROTOCOL-IES ::= { - { ID id-RICrequestID CRITICALITY reject TYPE RICrequestID PRESENCE mandatory } | - { ID id-RANfunctionID CRITICALITY reject TYPE RANfunctionID PRESENCE mandatory } | - { ID id-RICactions-Admitted CRITICALITY reject TYPE RICaction-Admitted-List PRESENCE mandatory } | - { ID id-RICactions-NotAdmitted CRITICALITY reject TYPE RICaction-NotAdmitted-List PRESENCE optional }, - ... -} -*/ - -struct RICsubscriptionResponse_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_RICrequestID() { set(id_RICrequestID); type=1;} - void select_id_RANfunctionID() { set(id_RANfunctionID); type=2;} - void select_id_RICactions_Admitted() { set(id_RICactions_Admitted); type=3;} - void select_id_RICactions_NotAdmitted() { set(id_RICactions_NotAdmitted); type=4;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_RICrequestID)) { type = 1; return true; } - else if(equal(id_RANfunctionID)) { type = 2; return true; } - else if(equal(id_RICactions_Admitted)) { type = 3; return true; } - else if(equal(id_RICactions_NotAdmitted)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_RICrequestID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_RANfunctionID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_RICactions_Admitted);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_RICactions_NotAdmitted);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_RICrequestID() { set(reject); type=1;} - void select_id_RANfunctionID() { set(reject); type=2;} - void select_id_RICactions_Admitted() { set(reject); type=3;} - void select_id_RICactions_NotAdmitted() { set(reject); type=4;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(reject)) { type = 3; return true; } - else if(equal(reject)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(reject);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(reject);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - RICrequestID& select_id_RICrequestID() { return set(1); } - RICrequestID const* get_id_RICrequestID() const { return get(1); } - RANfunctionID& select_id_RANfunctionID() { return set(2); } - RANfunctionID const* get_id_RANfunctionID() const { return get(2); } - RICaction_Admitted_List& select_id_RICactions_Admitted() { return set(3); } - RICaction_Admitted_List const* get_id_RICactions_Admitted() const { return get(3); } - RICaction_NotAdmitted_List& select_id_RICactions_NotAdmitted() { return set(4); } - RICaction_NotAdmitted_List const* get_id_RICactions_NotAdmitted() const { return get(4); } - bool is_unknown() const { return type == 5; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_RICrequestID()); return true; - case 2: v(select_id_RANfunctionID()); return true; - case 3: v(select_id_RICactions_Admitted()); return true; - case 4: v(select_id_RICactions_NotAdmitted()); return true; - case 5: if(type != 5) {clear(); asn::base::set();} type = 5; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(RANfunctionID)]; - char dummy2[sizeof(RICaction_Admitted_List)]; - char dummy3[sizeof(RICaction_NotAdmitted_List)]; - char dummy4[sizeof(RICrequestID)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_RICrequestID() { set(mandatory); type=1;} - void select_id_RANfunctionID() { set(mandatory); type=2;} - void select_id_RICactions_Admitted() { set(mandatory); type=3;} - void select_id_RICactions_NotAdmitted() { set(optional); type=4;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RICsubscriptionResponse ::= SEQUENCE { - protocolIEs ProtocolIE-Container{{RICsubscriptionResponse-IEs}}, - ... -} -*/ - -struct RICsubscriptionResponse : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "RICsubscriptionResponse";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; diff --git a/e2sim/previous/src/ASN1/generated/E2AP-PDU-Descriptions.hpp b/e2sim/previous/src/ASN1/generated/E2AP-PDU-Descriptions.hpp deleted file mode 100644 index f426b97..0000000 --- a/e2sim/previous/src/ASN1/generated/E2AP-PDU-Descriptions.hpp +++ /dev/null @@ -1,980 +0,0 @@ -/***************************************************************************** -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -#pragma once - -#include "asn/asn.hpp" -static_assert(ASN_API_VERSION_MAJOR == 5, "re-generate the ASN parser's code using 'make regen-asn' (do not use -j option)"); - -#include "X2AP-CommonDataTypes.hpp" -#include "X2AP-PDU-Contents.hpp" -#include "X2AP-Constants.hpp" -#include "E2AP-PDU-Contents.hpp" -#include "E2AP-Constants.hpp" - -/* -E2AP-ELEMENTARY-PROCEDURE ::= CLASS { - &InitiatingMessage , - &SuccessfulOutcome OPTIONAL, - &UnsuccessfulOutcome OPTIONAL, - &procedureCode ProcedureCode UNIQUE, - &criticality Criticality DEFAULT ignore -} -WITH SYNTAX { - INITIATING MESSAGE &InitiatingMessage - [SUCCESSFUL OUTCOME &SuccessfulOutcome] - [UNSUCCESSFUL OUTCOME &UnsuccessfulOutcome] - PROCEDURE CODE &procedureCode - [CRITICALITY &criticality] -} -*/ - -struct E2AP_ELEMENTARY_PROCEDURE -{ - struct procedureCode_t : ProcedureCode - { - static constexpr const char* name() {return "procedureCode_t";} - using parent_t = ProcedureCode; - - }; - struct criticality_t : Criticality - { - static constexpr const char* name() {return "criticality_t";} - using parent_t = Criticality; - - }; - -}; -/* -E2AP-ELEMENTARY-PROCEDURES E2AP-ELEMENTARY-PROCEDURE ::= { - E2AP-ELEMENTARY-PROCEDURES-CLASS-1 | - E2AP-ELEMENTARY-PROCEDURES-CLASS-2, - ... -} -*/ - -struct E2AP_ELEMENTARY_PROCEDURES -{ - struct InitiatingMessage_t : asn::typefield - { - ~InitiatingMessage_t() {clear();} - size_t get_index() const {return type;} - RICsubscriptionRequest& select_id_ricSubscription() { return set(1); } - RICsubscriptionRequest const* get_id_ricSubscription() const { return get(1); } - RICsubscriptionDeleteRequest& select_id_ricSubscriptionDelete() { return set(2); } - RICsubscriptionDeleteRequest const* get_id_ricSubscriptionDelete() const { return get(2); } - RICserviceUpdate& select_id_ricServiceUpdate() { return set(3); } - RICserviceUpdate const* get_id_ricServiceUpdate() const { return get(3); } - RICcontrolRequest& select_id_ricControl() { return set(4); } - RICcontrolRequest const* get_id_ricControl() const { return get(4); } - X2SetupRequest& select_id_x2Setup() { return set(5); } - X2SetupRequest const* get_id_x2Setup() const { return get(5); } - ENDCX2SetupRequest& select_id_endcX2Setup() { return set(6); } - ENDCX2SetupRequest const* get_id_endcX2Setup() const { return get(6); } - ResourceStatusRequest& select_id_resourceStatusReportingInitiation() { return set(7); } - ResourceStatusRequest const* get_id_resourceStatusReportingInitiation() const { return get(7); } - ENBConfigurationUpdate& select_id_eNBConfigurationUpdate() { return set(8); } - ENBConfigurationUpdate const* get_id_eNBConfigurationUpdate() const { return get(8); } - ENDCConfigurationUpdate& select_id_endcConfigurationUpdate() { return set(9); } - ENDCConfigurationUpdate const* get_id_endcConfigurationUpdate() const { return get(9); } - ResetRequest& select_id_reset() { return set(10); } - ResetRequest const* get_id_reset() const { return get(10); } - RICindication& select_id_ricIndication() { return set(11); } - RICindication const* get_id_ricIndication() const { return get(11); } - RICserviceQuery& select_id_ricServiceQuery() { return set(12); } - RICserviceQuery const* get_id_ricServiceQuery() const { return get(12); } - LoadInformation& select_id_loadIndication() { return set(13); } - LoadInformation const* get_id_loadIndication() const { return get(13); } - GNBStatusIndication& select_id_gNBStatusIndication() { return set(14); } - GNBStatusIndication const* get_id_gNBStatusIndication() const { return get(14); } - ResourceStatusUpdate& select_id_resourceStatusReporting() { return set(15); } - ResourceStatusUpdate const* get_id_resourceStatusReporting() const { return get(15); } - ErrorIndication& select_id_errorIndication() { return set(16); } - ErrorIndication const* get_id_errorIndication() const { return get(16); } - bool is_unknown() const { return type == 17; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - case 7: var.destroy(); break; - case 8: var.destroy(); break; - case 9: var.destroy(); break; - case 10: var.destroy(); break; - case 11: var.destroy(); break; - case 12: var.destroy(); break; - case 13: var.destroy(); break; - case 14: var.destroy(); break; - case 15: var.destroy(); break; - case 16: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - v.template operator()(7); - v.template operator()(8); - v.template operator()(9); - v.template operator()(10); - v.template operator()(11); - v.template operator()(12); - v.template operator()(13); - v.template operator()(14); - v.template operator()(15); - v.template operator()(16); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_ricSubscription()); return true; - case 2: v(select_id_ricSubscriptionDelete()); return true; - case 3: v(select_id_ricServiceUpdate()); return true; - case 4: v(select_id_ricControl()); return true; - case 5: v(select_id_x2Setup()); return true; - case 6: v(select_id_endcX2Setup()); return true; - case 7: v(select_id_resourceStatusReportingInitiation()); return true; - case 8: v(select_id_eNBConfigurationUpdate()); return true; - case 9: v(select_id_endcConfigurationUpdate()); return true; - case 10: v(select_id_reset()); return true; - case 11: v(select_id_ricIndication()); return true; - case 12: v(select_id_ricServiceQuery()); return true; - case 13: v(select_id_loadIndication()); return true; - case 14: v(select_id_gNBStatusIndication()); return true; - case 15: v(select_id_resourceStatusReporting()); return true; - case 16: v(select_id_errorIndication()); return true; - case 17: if(type != 17) {clear(); asn::base::set();} type = 17; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - case 7: v(var.as()); return true; - case 8: v(var.as()); return true; - case 9: v(var.as()); return true; - case 10: v(var.as()); return true; - case 11: v(var.as()); return true; - case 12: v(var.as()); return true; - case 13: v(var.as()); return true; - case 14: v(var.as()); return true; - case 15: v(var.as()); return true; - case 16: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(ENBConfigurationUpdate)]; - char dummy2[sizeof(ENDCConfigurationUpdate)]; - char dummy3[sizeof(ENDCX2SetupRequest)]; - char dummy4[sizeof(ErrorIndication)]; - char dummy5[sizeof(GNBStatusIndication)]; - char dummy6[sizeof(LoadInformation)]; - char dummy7[sizeof(RICcontrolRequest)]; - char dummy8[sizeof(RICindication)]; - char dummy9[sizeof(RICserviceQuery)]; - char dummy10[sizeof(RICserviceUpdate)]; - char dummy11[sizeof(RICsubscriptionDeleteRequest)]; - char dummy12[sizeof(RICsubscriptionRequest)]; - char dummy13[sizeof(ResetRequest)]; - char dummy14[sizeof(ResourceStatusRequest)]; - char dummy15[sizeof(ResourceStatusUpdate)]; - char dummy16[sizeof(X2SetupRequest)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct SuccessfulOutcome_t : asn::typefield - { - ~SuccessfulOutcome_t() {clear();} - size_t get_index() const {return type;} - RICsubscriptionResponse& select_id_ricSubscription() { return set(1); } - RICsubscriptionResponse const* get_id_ricSubscription() const { return get(1); } - RICsubscriptionDeleteResponse& select_id_ricSubscriptionDelete() { return set(2); } - RICsubscriptionDeleteResponse const* get_id_ricSubscriptionDelete() const { return get(2); } - RICserviceUpdateAcknowledge& select_id_ricServiceUpdate() { return set(3); } - RICserviceUpdateAcknowledge const* get_id_ricServiceUpdate() const { return get(3); } - RICcontrolAcknowledge& select_id_ricControl() { return set(4); } - RICcontrolAcknowledge const* get_id_ricControl() const { return get(4); } - X2SetupResponse& select_id_x2Setup() { return set(5); } - X2SetupResponse const* get_id_x2Setup() const { return get(5); } - ENDCX2SetupResponse& select_id_endcX2Setup() { return set(6); } - ENDCX2SetupResponse const* get_id_endcX2Setup() const { return get(6); } - ResourceStatusResponse& select_id_resourceStatusReportingInitiation() { return set(7); } - ResourceStatusResponse const* get_id_resourceStatusReportingInitiation() const { return get(7); } - ENBConfigurationUpdateAcknowledge& select_id_eNBConfigurationUpdate() { return set(8); } - ENBConfigurationUpdateAcknowledge const* get_id_eNBConfigurationUpdate() const { return get(8); } - ENDCConfigurationUpdateAcknowledge& select_id_endcConfigurationUpdate() { return set(9); } - ENDCConfigurationUpdateAcknowledge const* get_id_endcConfigurationUpdate() const { return get(9); } - ResetResponse& select_id_reset() { return set(10); } - ResetResponse const* get_id_reset() const { return get(10); } - bool is_unknown() const { return type == 17; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - case 7: var.destroy(); break; - case 8: var.destroy(); break; - case 9: var.destroy(); break; - case 10: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - v.template operator()(7); - v.template operator()(8); - v.template operator()(9); - v.template operator()(10); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_ricSubscription()); return true; - case 2: v(select_id_ricSubscriptionDelete()); return true; - case 3: v(select_id_ricServiceUpdate()); return true; - case 4: v(select_id_ricControl()); return true; - case 5: v(select_id_x2Setup()); return true; - case 6: v(select_id_endcX2Setup()); return true; - case 7: v(select_id_resourceStatusReportingInitiation()); return true; - case 8: v(select_id_eNBConfigurationUpdate()); return true; - case 9: v(select_id_endcConfigurationUpdate()); return true; - case 10: v(select_id_reset()); return true; - case 17: if(type != 17) {clear(); asn::base::set();} type = 17; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - case 7: v(var.as()); return true; - case 8: v(var.as()); return true; - case 9: v(var.as()); return true; - case 10: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(ENBConfigurationUpdateAcknowledge)]; - char dummy2[sizeof(ENDCConfigurationUpdateAcknowledge)]; - char dummy3[sizeof(ENDCX2SetupResponse)]; - char dummy4[sizeof(RICcontrolAcknowledge)]; - char dummy5[sizeof(RICserviceUpdateAcknowledge)]; - char dummy6[sizeof(RICsubscriptionDeleteResponse)]; - char dummy7[sizeof(RICsubscriptionResponse)]; - char dummy8[sizeof(ResetResponse)]; - char dummy9[sizeof(ResourceStatusResponse)]; - char dummy10[sizeof(X2SetupResponse)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct UnsuccessfulOutcome_t : asn::typefield - { - ~UnsuccessfulOutcome_t() {clear();} - size_t get_index() const {return type;} - RICsubscriptionFailure& select_id_ricSubscription() { return set(1); } - RICsubscriptionFailure const* get_id_ricSubscription() const { return get(1); } - RICsubscriptionDeleteFailure& select_id_ricSubscriptionDelete() { return set(2); } - RICsubscriptionDeleteFailure const* get_id_ricSubscriptionDelete() const { return get(2); } - RICserviceUpdateFailure& select_id_ricServiceUpdate() { return set(3); } - RICserviceUpdateFailure const* get_id_ricServiceUpdate() const { return get(3); } - RICcontrolFailure& select_id_ricControl() { return set(4); } - RICcontrolFailure const* get_id_ricControl() const { return get(4); } - X2SetupFailure& select_id_x2Setup() { return set(5); } - X2SetupFailure const* get_id_x2Setup() const { return get(5); } - ENDCX2SetupFailure& select_id_endcX2Setup() { return set(6); } - ENDCX2SetupFailure const* get_id_endcX2Setup() const { return get(6); } - ResourceStatusFailure& select_id_resourceStatusReportingInitiation() { return set(7); } - ResourceStatusFailure const* get_id_resourceStatusReportingInitiation() const { return get(7); } - ENBConfigurationUpdateFailure& select_id_eNBConfigurationUpdate() { return set(8); } - ENBConfigurationUpdateFailure const* get_id_eNBConfigurationUpdate() const { return get(8); } - ENDCConfigurationUpdateFailure& select_id_endcConfigurationUpdate() { return set(9); } - ENDCConfigurationUpdateFailure const* get_id_endcConfigurationUpdate() const { return get(9); } - bool is_unknown() const { return type == 17; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - case 7: var.destroy(); break; - case 8: var.destroy(); break; - case 9: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - v.template operator()(7); - v.template operator()(8); - v.template operator()(9); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_ricSubscription()); return true; - case 2: v(select_id_ricSubscriptionDelete()); return true; - case 3: v(select_id_ricServiceUpdate()); return true; - case 4: v(select_id_ricControl()); return true; - case 5: v(select_id_x2Setup()); return true; - case 6: v(select_id_endcX2Setup()); return true; - case 7: v(select_id_resourceStatusReportingInitiation()); return true; - case 8: v(select_id_eNBConfigurationUpdate()); return true; - case 9: v(select_id_endcConfigurationUpdate()); return true; - case 17: if(type != 17) {clear(); asn::base::set();} type = 17; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - case 7: v(var.as()); return true; - case 8: v(var.as()); return true; - case 9: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(ENBConfigurationUpdateFailure)]; - char dummy2[sizeof(ENDCConfigurationUpdateFailure)]; - char dummy3[sizeof(ENDCX2SetupFailure)]; - char dummy4[sizeof(RICcontrolFailure)]; - char dummy5[sizeof(RICserviceUpdateFailure)]; - char dummy6[sizeof(RICsubscriptionDeleteFailure)]; - char dummy7[sizeof(RICsubscriptionFailure)]; - char dummy8[sizeof(ResourceStatusFailure)]; - char dummy9[sizeof(X2SetupFailure)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct procedureCode_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 17; } - void clear() {type = 0;} - void select_id_ricSubscription() { set(id_ricSubscription); type=1;} - void select_id_ricSubscriptionDelete() { set(id_ricSubscriptionDelete); type=2;} - void select_id_ricServiceUpdate() { set(id_ricServiceUpdate); type=3;} - void select_id_ricControl() { set(id_ricControl); type=4;} - void select_id_x2Setup() { set(id_x2Setup); type=5;} - void select_id_endcX2Setup() { set(id_endcX2Setup); type=6;} - void select_id_resourceStatusReportingInitiation() { set(id_resourceStatusReportingInitiation); type=7;} - void select_id_eNBConfigurationUpdate() { set(id_eNBConfigurationUpdate); type=8;} - void select_id_endcConfigurationUpdate() { set(id_endcConfigurationUpdate); type=9;} - void select_id_reset() { set(id_reset); type=10;} - void select_id_ricIndication() { set(id_ricIndication); type=11;} - void select_id_ricServiceQuery() { set(id_ricServiceQuery); type=12;} - void select_id_loadIndication() { set(id_loadIndication); type=13;} - void select_id_gNBStatusIndication() { set(id_gNBStatusIndication); type=14;} - void select_id_resourceStatusReporting() { set(id_resourceStatusReporting); type=15;} - void select_id_errorIndication() { set(id_errorIndication); type=16;} - E2AP_ELEMENTARY_PROCEDURE::procedureCode_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_ricSubscription)) { type = 1; return true; } - else if(equal(id_ricSubscriptionDelete)) { type = 2; return true; } - else if(equal(id_ricServiceUpdate)) { type = 3; return true; } - else if(equal(id_ricControl)) { type = 4; return true; } - else if(equal(id_x2Setup)) { type = 5; return true; } - else if(equal(id_endcX2Setup)) { type = 6; return true; } - else if(equal(id_resourceStatusReportingInitiation)) { type = 7; return true; } - else if(equal(id_eNBConfigurationUpdate)) { type = 8; return true; } - else if(equal(id_endcConfigurationUpdate)) { type = 9; return true; } - else if(equal(id_reset)) { type = 10; return true; } - else if(equal(id_ricIndication)) { type = 11; return true; } - else if(equal(id_ricServiceQuery)) { type = 12; return true; } - else if(equal(id_loadIndication)) { type = 13; return true; } - else if(equal(id_gNBStatusIndication)) { type = 14; return true; } - else if(equal(id_resourceStatusReporting)) { type = 15; return true; } - else if(equal(id_errorIndication)) { type = 16; return true; } - else { type = 17; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_ricSubscription);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_ricSubscriptionDelete);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_ricServiceUpdate);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_ricControl);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_x2Setup);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_endcX2Setup);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(id_resourceStatusReportingInitiation);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(id_eNBConfigurationUpdate);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(id_endcConfigurationUpdate);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(id_reset);} return false; - case 11: type = 11; if(v(ref_nested())) { return equal(id_ricIndication);} return false; - case 12: type = 12; if(v(ref_nested())) { return equal(id_ricServiceQuery);} return false; - case 13: type = 13; if(v(ref_nested())) { return equal(id_loadIndication);} return false; - case 14: type = 14; if(v(ref_nested())) { return equal(id_gNBStatusIndication);} return false; - case 15: type = 15; if(v(ref_nested())) { return equal(id_resourceStatusReporting);} return false; - case 16: type = 16; if(v(ref_nested())) { return equal(id_errorIndication);} return false; - case 17: type = 17; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 17; } - void clear() {type = 0;} - void select_id_ricSubscription() { set(reject); type=1;} - void select_id_ricSubscriptionDelete() { set(reject); type=2;} - void select_id_ricServiceUpdate() { set(reject); type=3;} - void select_id_ricControl() { set(reject); type=4;} - void select_id_x2Setup() { set(reject); type=5;} - void select_id_endcX2Setup() { set(reject); type=6;} - void select_id_resourceStatusReportingInitiation() { set(reject); type=7;} - void select_id_eNBConfigurationUpdate() { set(reject); type=8;} - void select_id_endcConfigurationUpdate() { set(reject); type=9;} - void select_id_reset() { set(reject); type=10;} - void select_id_ricIndication() { set(ignore); type=11;} - void select_id_ricServiceQuery() { set(ignore); type=12;} - void select_id_loadIndication() { set(ignore); type=13;} - void select_id_gNBStatusIndication() { set(ignore); type=14;} - void select_id_resourceStatusReporting() { set(ignore); type=15;} - void select_id_errorIndication() { set(ignore); type=16;} - E2AP_ELEMENTARY_PROCEDURE::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(reject)) { type = 3; return true; } - else if(equal(reject)) { type = 4; return true; } - else if(equal(reject)) { type = 5; return true; } - else if(equal(reject)) { type = 6; return true; } - else if(equal(reject)) { type = 7; return true; } - else if(equal(reject)) { type = 8; return true; } - else if(equal(reject)) { type = 9; return true; } - else if(equal(reject)) { type = 10; return true; } - else if(equal(ignore)) { type = 11; return true; } - else if(equal(ignore)) { type = 12; return true; } - else if(equal(ignore)) { type = 13; return true; } - else if(equal(ignore)) { type = 14; return true; } - else if(equal(ignore)) { type = 15; return true; } - else if(equal(ignore)) { type = 16; return true; } - else { type = 17; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(reject);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(reject);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(reject);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(reject);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(reject);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(reject);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(reject);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(reject);} return false; - case 11: type = 11; if(v(ref_nested())) { return equal(ignore);} return false; - case 12: type = 12; if(v(ref_nested())) { return equal(ignore);} return false; - case 13: type = 13; if(v(ref_nested())) { return equal(ignore);} return false; - case 14: type = 14; if(v(ref_nested())) { return equal(ignore);} return false; - case 15: type = 15; if(v(ref_nested())) { return equal(ignore);} return false; - case 16: type = 16; if(v(ref_nested())) { return equal(ignore);} return false; - case 17: type = 17; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -InitiatingMessage ::= SEQUENCE { - procedureCode E2AP-ELEMENTARY-PROCEDURE.&procedureCode({E2AP-ELEMENTARY-PROCEDURES}), - criticality E2AP-ELEMENTARY-PROCEDURE.&criticality({E2AP-ELEMENTARY-PROCEDURES}{@procedureCode}), - value E2AP-ELEMENTARY-PROCEDURE.&InitiatingMessage({E2AP-ELEMENTARY-PROCEDURES}{@procedureCode}) -} -*/ - -struct InitiatingMessage : asn::sequence<3, 0, false, 0> -{ - static constexpr const char* name() {return "InitiatingMessage";} - using parent_t = asn::sequence<3, 0, false, 0>; - struct procedureCode_t : E2AP_ELEMENTARY_PROCEDURES::procedureCode_t - { - static constexpr const char* name() {return "procedureCode_t";} - using parent_t = typename E2AP_ELEMENTARY_PROCEDURES::procedureCode_t; - template bool decode(V& v, InitiatingMessage const& c) - { - return E2AP_ELEMENTARY_PROCEDURES::procedureCode_t::decode(v); - }; - template bool encode(V& v, InitiatingMessage const& c) const - { - return E2AP_ELEMENTARY_PROCEDURES::procedureCode_t::encode(v); - }; - }; - procedureCode_t& ref_procedureCode() {return procedureCode;} - procedureCode_t const& ref_procedureCode() const {return procedureCode;} - struct criticality_t : E2AP_ELEMENTARY_PROCEDURES::criticality_t - { - static constexpr const char* name() {return "criticality_t";} - using parent_t = typename E2AP_ELEMENTARY_PROCEDURES::criticality_t; - template bool decode(V& v, InitiatingMessage const& c) - { - return E2AP_ELEMENTARY_PROCEDURES::criticality_t::decode(c.procedureCode.get_index(), v); - }; - template bool encode(V& v, InitiatingMessage const& c) const - { - return E2AP_ELEMENTARY_PROCEDURES::criticality_t::encode(c.procedureCode.get_index(), v); - }; - }; - criticality_t& ref_criticality() {return criticality;} - criticality_t const& ref_criticality() const {return criticality;} - struct value_t : E2AP_ELEMENTARY_PROCEDURES::InitiatingMessage_t - { - static constexpr const char* name() {return "value_t";} - using parent_t = typename E2AP_ELEMENTARY_PROCEDURES::InitiatingMessage_t; - template bool decode(V& v, InitiatingMessage const& c) - { - return E2AP_ELEMENTARY_PROCEDURES::InitiatingMessage_t::decode(c.procedureCode.get_index(), v); - }; - template bool encode(V& v, InitiatingMessage const& c) const - { - return E2AP_ELEMENTARY_PROCEDURES::InitiatingMessage_t::encode(c.procedureCode.get_index(), v); - }; - }; - value_t& ref_value() {return value;} - value_t const& ref_value() const {return value;} - template void decode(V& v) - { - v(procedureCode); - v(criticality); - v(value); - - }; - template void encode(V& v) const - { - v(procedureCode); - v(criticality); - v(value); - - }; - void clear() - { - procedureCode.clear(); - criticality.clear(); - value.clear(); - - }; - private: - procedureCode_t procedureCode; - criticality_t criticality; - value_t value; - -}; -/* -SuccessfulOutcome ::= SEQUENCE { - procedureCode E2AP-ELEMENTARY-PROCEDURE.&procedureCode({E2AP-ELEMENTARY-PROCEDURES}), - criticality E2AP-ELEMENTARY-PROCEDURE.&criticality({E2AP-ELEMENTARY-PROCEDURES}{@procedureCode}), - value E2AP-ELEMENTARY-PROCEDURE.&SuccessfulOutcome({E2AP-ELEMENTARY-PROCEDURES}{@procedureCode}) -} -*/ - -struct SuccessfulOutcome : asn::sequence<3, 0, false, 0> -{ - static constexpr const char* name() {return "SuccessfulOutcome";} - using parent_t = asn::sequence<3, 0, false, 0>; - struct procedureCode_t : E2AP_ELEMENTARY_PROCEDURES::procedureCode_t - { - static constexpr const char* name() {return "procedureCode_t";} - using parent_t = typename E2AP_ELEMENTARY_PROCEDURES::procedureCode_t; - template bool decode(V& v, SuccessfulOutcome const& c) - { - return E2AP_ELEMENTARY_PROCEDURES::procedureCode_t::decode(v); - }; - template bool encode(V& v, SuccessfulOutcome const& c) const - { - return E2AP_ELEMENTARY_PROCEDURES::procedureCode_t::encode(v); - }; - }; - procedureCode_t& ref_procedureCode() {return procedureCode;} - procedureCode_t const& ref_procedureCode() const {return procedureCode;} - struct criticality_t : E2AP_ELEMENTARY_PROCEDURES::criticality_t - { - static constexpr const char* name() {return "criticality_t";} - using parent_t = typename E2AP_ELEMENTARY_PROCEDURES::criticality_t; - template bool decode(V& v, SuccessfulOutcome const& c) - { - return E2AP_ELEMENTARY_PROCEDURES::criticality_t::decode(c.procedureCode.get_index(), v); - }; - template bool encode(V& v, SuccessfulOutcome const& c) const - { - return E2AP_ELEMENTARY_PROCEDURES::criticality_t::encode(c.procedureCode.get_index(), v); - }; - }; - criticality_t& ref_criticality() {return criticality;} - criticality_t const& ref_criticality() const {return criticality;} - struct value_t : E2AP_ELEMENTARY_PROCEDURES::SuccessfulOutcome_t - { - static constexpr const char* name() {return "value_t";} - using parent_t = typename E2AP_ELEMENTARY_PROCEDURES::SuccessfulOutcome_t; - template bool decode(V& v, SuccessfulOutcome const& c) - { - return E2AP_ELEMENTARY_PROCEDURES::SuccessfulOutcome_t::decode(c.procedureCode.get_index(), v); - }; - template bool encode(V& v, SuccessfulOutcome const& c) const - { - return E2AP_ELEMENTARY_PROCEDURES::SuccessfulOutcome_t::encode(c.procedureCode.get_index(), v); - }; - }; - value_t& ref_value() {return value;} - value_t const& ref_value() const {return value;} - template void decode(V& v) - { - v(procedureCode); - v(criticality); - v(value); - - }; - template void encode(V& v) const - { - v(procedureCode); - v(criticality); - v(value); - - }; - void clear() - { - procedureCode.clear(); - criticality.clear(); - value.clear(); - - }; - private: - procedureCode_t procedureCode; - criticality_t criticality; - value_t value; - -}; -/* -UnsuccessfulOutcome ::= SEQUENCE { - procedureCode E2AP-ELEMENTARY-PROCEDURE.&procedureCode({E2AP-ELEMENTARY-PROCEDURES}), - criticality E2AP-ELEMENTARY-PROCEDURE.&criticality({E2AP-ELEMENTARY-PROCEDURES}{@procedureCode}), - value E2AP-ELEMENTARY-PROCEDURE.&UnsuccessfulOutcome({E2AP-ELEMENTARY-PROCEDURES}{@procedureCode}) -} -*/ - -struct UnsuccessfulOutcome : asn::sequence<3, 0, false, 0> -{ - static constexpr const char* name() {return "UnsuccessfulOutcome";} - using parent_t = asn::sequence<3, 0, false, 0>; - struct procedureCode_t : E2AP_ELEMENTARY_PROCEDURES::procedureCode_t - { - static constexpr const char* name() {return "procedureCode_t";} - using parent_t = typename E2AP_ELEMENTARY_PROCEDURES::procedureCode_t; - template bool decode(V& v, UnsuccessfulOutcome const& c) - { - return E2AP_ELEMENTARY_PROCEDURES::procedureCode_t::decode(v); - }; - template bool encode(V& v, UnsuccessfulOutcome const& c) const - { - return E2AP_ELEMENTARY_PROCEDURES::procedureCode_t::encode(v); - }; - }; - procedureCode_t& ref_procedureCode() {return procedureCode;} - procedureCode_t const& ref_procedureCode() const {return procedureCode;} - struct criticality_t : E2AP_ELEMENTARY_PROCEDURES::criticality_t - { - static constexpr const char* name() {return "criticality_t";} - using parent_t = typename E2AP_ELEMENTARY_PROCEDURES::criticality_t; - template bool decode(V& v, UnsuccessfulOutcome const& c) - { - return E2AP_ELEMENTARY_PROCEDURES::criticality_t::decode(c.procedureCode.get_index(), v); - }; - template bool encode(V& v, UnsuccessfulOutcome const& c) const - { - return E2AP_ELEMENTARY_PROCEDURES::criticality_t::encode(c.procedureCode.get_index(), v); - }; - }; - criticality_t& ref_criticality() {return criticality;} - criticality_t const& ref_criticality() const {return criticality;} - struct value_t : E2AP_ELEMENTARY_PROCEDURES::UnsuccessfulOutcome_t - { - static constexpr const char* name() {return "value_t";} - using parent_t = typename E2AP_ELEMENTARY_PROCEDURES::UnsuccessfulOutcome_t; - template bool decode(V& v, UnsuccessfulOutcome const& c) - { - return E2AP_ELEMENTARY_PROCEDURES::UnsuccessfulOutcome_t::decode(c.procedureCode.get_index(), v); - }; - template bool encode(V& v, UnsuccessfulOutcome const& c) const - { - return E2AP_ELEMENTARY_PROCEDURES::UnsuccessfulOutcome_t::encode(c.procedureCode.get_index(), v); - }; - }; - value_t& ref_value() {return value;} - value_t const& ref_value() const {return value;} - template void decode(V& v) - { - v(procedureCode); - v(criticality); - v(value); - - }; - template void encode(V& v) const - { - v(procedureCode); - v(criticality); - v(value); - - }; - void clear() - { - procedureCode.clear(); - criticality.clear(); - value.clear(); - - }; - private: - procedureCode_t procedureCode; - criticality_t criticality; - value_t value; - -}; -/* -E2AP-PDU ::= CHOICE { - initiatingMessage InitiatingMessage, - successfulOutcome SuccessfulOutcome, - unsuccessfulOutcome UnsuccessfulOutcome, - ... -} -*/ - -struct E2AP_PDU : asn::choice<3, 0, true> -{ - static constexpr const char* name() {return "E2AP-PDU";} - using parent_t = asn::choice<3, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 4;} - void set_unknown() { set_index(4); } - ~E2AP_PDU() {clear();} - struct initiatingMessage_t : InitiatingMessage - { - static constexpr const char* name() {return "initiatingMessage_t";} - using parent_t = InitiatingMessage; - - }; - struct successfulOutcome_t : SuccessfulOutcome - { - static constexpr const char* name() {return "successfulOutcome_t";} - using parent_t = SuccessfulOutcome; - - }; - struct unsuccessfulOutcome_t : UnsuccessfulOutcome - { - static constexpr const char* name() {return "unsuccessfulOutcome_t";} - using parent_t = UnsuccessfulOutcome; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - case 3: set_index(3); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - case 3: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - - } - initiatingMessage_t& select_initiatingMessage() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - initiatingMessage_t const* get_initiatingMessage() const { if(get_index() == 1) { return &var.as();} return nullptr; } - successfulOutcome_t& select_successfulOutcome() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - successfulOutcome_t const* get_successfulOutcome() const { if(get_index() == 2) { return &var.as();} return nullptr; } - unsuccessfulOutcome_t& select_unsuccessfulOutcome() { if(get_index() != 3) { clear(); set_index(3); return var.build();} return var.as();} - unsuccessfulOutcome_t const* get_unsuccessfulOutcome() const { if(get_index() == 3) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(initiatingMessage_t)]; - char dummy2[sizeof(successfulOutcome_t)]; - char dummy3[sizeof(unsuccessfulOutcome_t)]; - - }; - asn::variant var; - index_type index {0}; -}; diff --git a/e2sim/previous/src/ASN1/generated/X2AP-CommonDataTypes.hpp b/e2sim/previous/src/ASN1/generated/X2AP-CommonDataTypes.hpp deleted file mode 100644 index 0e1bb53..0000000 --- a/e2sim/previous/src/ASN1/generated/X2AP-CommonDataTypes.hpp +++ /dev/null @@ -1,188 +0,0 @@ -/***************************************************************************** -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -#pragma once - -#include "asn/asn.hpp" -static_assert(ASN_API_VERSION_MAJOR == 5, "re-generate the ASN parser's code using 'make regen-asn' (do not use -j option)"); - - -/* -Criticality ::= ENUMERATED { reject, ignore, notify } -*/ - -struct Criticality : asn::enumerated<3, 0, false> -{ - static constexpr const char* name() {return "Criticality";} - using parent_t = asn::enumerated<3, 0, false>; - typedef enum { - reject - ,ignore - ,notify - } index_t; - -}; - -/* -Presence ::= ENUMERATED { optional, conditional, mandatory } -*/ - -struct Presence : asn::enumerated<3, 0, false> -{ - static constexpr const char* name() {return "Presence";} - using parent_t = asn::enumerated<3, 0, false>; - typedef enum { - optional - ,conditional - ,mandatory - } index_t; - -}; - -/* -maxPrivateIEs INTEGER ::= 65535 -*/ - -constexpr int64_t maxPrivateIEs = 65535; -/* -PrivateIE-ID ::= CHOICE { - local INTEGER (0.. maxPrivateIEs), - global OBJECT IDENTIFIER -} -*/ - -struct PrivateIE_ID : asn::choice<2, 0, false> -{ - static constexpr const char* name() {return "PrivateIE-ID";} - using parent_t = asn::choice<2, 0, false>; - index_type get_index() const {return index;} - ~PrivateIE_ID() {clear();} - struct local_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "local_t";} - using parent_t = asn::integer<>; - - }; - - struct global_t : asn::oid - { - static constexpr const char* name() {return "global_t";} - using parent_t = asn::oid; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - local_t& select_local() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - local_t const* get_local() const { if(get_index() == 1) { return &var.as();} return nullptr; } - global_t& select_global() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - global_t const* get_global() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(local_t)]; - char dummy2[sizeof(global_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -ProcedureCode ::= INTEGER (0..255) -*/ - -struct ProcedureCode : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "ProcedureCode";} - using parent_t = asn::integer<>; - -}; - -/* -maxProtocolIEs INTEGER ::= 65535 -*/ - -constexpr int64_t maxProtocolIEs = 65535; -/* -ProtocolIE-ID ::= INTEGER (0..maxProtocolIEs) -*/ - -struct ProtocolIE_ID : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "ProtocolIE-ID";} - using parent_t = asn::integer<>; - -}; - -/* -TriggeringMessage ::= ENUMERATED { initiating-message, successful-outcome, unsuccessful-outcome} -*/ - -struct TriggeringMessage : asn::enumerated<3, 0, false> -{ - static constexpr const char* name() {return "TriggeringMessage";} - using parent_t = asn::enumerated<3, 0, false>; - typedef enum { - initiating_message - ,successful_outcome - ,unsuccessful_outcome - } index_t; - -}; - -/* -maxProtocolExtensions INTEGER ::= 65535 -*/ - -constexpr int64_t maxProtocolExtensions = 65535; diff --git a/e2sim/previous/src/ASN1/generated/X2AP-Constants.hpp b/e2sim/previous/src/ASN1/generated/X2AP-Constants.hpp deleted file mode 100644 index 28be45d..0000000 --- a/e2sim/previous/src/ASN1/generated/X2AP-Constants.hpp +++ /dev/null @@ -1,2054 +0,0 @@ -/***************************************************************************** -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -#pragma once - -#include "asn/asn.hpp" -static_assert(ASN_API_VERSION_MAJOR == 5, "re-generate the ASN parser's code using 'make regen-asn' (do not use -j option)"); - -#include "X2AP-CommonDataTypes.hpp" - -/* -id-ABS-Status ProtocolIE-ID ::= 63 -*/ - -constexpr int64_t id_ABS_Status = 63; -/* -id-ABSInformation ProtocolIE-ID ::= 61 -*/ - -constexpr int64_t id_ABSInformation = 61; -/* -id-ActivatedCellList ProtocolIE-ID ::= 58 -*/ - -constexpr int64_t id_ActivatedCellList = 58; -/* -id-ActivatedNRCellList ProtocolIE-ID ::= 268 -*/ - -constexpr int64_t id_ActivatedNRCellList = 268; -/* -id-ActivationID ProtocolIE-ID ::= 256 -*/ - -constexpr int64_t id_ActivationID = 256; -/* -id-AdditionalSpecialSubframe-Info ProtocolIE-ID ::= 97 -*/ - -constexpr int64_t id_AdditionalSpecialSubframe_Info = 97; -/* -id-AdditionalSpecialSubframeExtension-Info ProtocolIE-ID ::= 179 -*/ - -constexpr int64_t id_AdditionalSpecialSubframeExtension_Info = 179; -/* -id-AdmittedSplitSRBs ProtocolIE-ID ::= 212 -*/ - -constexpr int64_t id_AdmittedSplitSRBs = 212; -/* -id-AdmittedSplitSRBsrelease ProtocolIE-ID ::= 281 -*/ - -constexpr int64_t id_AdmittedSplitSRBsrelease = 281; -/* -id-AerialUEsubscriptionInformation ProtocolIE-ID ::= 277 -*/ - -constexpr int64_t id_AerialUEsubscriptionInformation = 277; -/* -id-BandwidthReducedSI ProtocolIE-ID ::= 180 -*/ - -constexpr int64_t id_BandwidthReducedSI = 180; -/* -id-BearerType ProtocolIE-ID ::= 171 -*/ - -constexpr int64_t id_BearerType = 171; -/* -id-BluetoothMeasurementConfiguration ProtocolIE-ID ::= 303 -*/ - -constexpr int64_t id_BluetoothMeasurementConfiguration = 303; -/* -id-CNTypeRestrictions ProtocolIE-ID ::= 301 -*/ - -constexpr int64_t id_CNTypeRestrictions = 301; -/* -id-CSG-Id ProtocolIE-ID ::= 70 -*/ - -constexpr int64_t id_CSG_Id = 70; -/* -id-CSGMembershipStatus ProtocolIE-ID ::= 71 -*/ - -constexpr int64_t id_CSGMembershipStatus = 71; -/* -id-CSIReportList ProtocolIE-ID ::= 146 -*/ - -constexpr int64_t id_CSIReportList = 146; -/* -id-Cause ProtocolIE-ID ::= 5 -*/ - -constexpr int64_t id_Cause = 5; -/* -id-CellAssistanceInformation ProtocolIE-ID ::= 251 -*/ - -constexpr int64_t id_CellAssistanceInformation = 251; -/* -id-CellInformation ProtocolIE-ID ::= 6 -*/ - -constexpr int64_t id_CellInformation = 6; -/* -id-CellInformation-Item ProtocolIE-ID ::= 7 -*/ - -constexpr int64_t id_CellInformation_Item = 7; -/* -id-CellMeasurementResult ProtocolIE-ID ::= 32 -*/ - -constexpr int64_t id_CellMeasurementResult = 32; -/* -id-CellMeasurementResult-Item ProtocolIE-ID ::= 33 -*/ - -constexpr int64_t id_CellMeasurementResult_Item = 33; -/* -id-CellReportingIndicator ProtocolIE-ID ::= 170 -*/ - -constexpr int64_t id_CellReportingIndicator = 170; -/* -id-CellToReport ProtocolIE-ID ::= 29 -*/ - -constexpr int64_t id_CellToReport = 29; -/* -id-CellToReport-Item ProtocolIE-ID ::= 31 -*/ - -constexpr int64_t id_CellToReport_Item = 31; -/* -id-CoMPInformation ProtocolIE-ID ::= 108 -*/ - -constexpr int64_t id_CoMPInformation = 108; -/* -id-CompleteFailureCauseInformation-Item ProtocolIE-ID ::= 69 -*/ - -constexpr int64_t id_CompleteFailureCauseInformation_Item = 69; -/* -id-CompleteFailureCauseInformation-List ProtocolIE-ID ::= 68 -*/ - -constexpr int64_t id_CompleteFailureCauseInformation_List = 68; -/* -id-CompositeAvailableCapacityGroup ProtocolIE-ID ::= 42 -*/ - -constexpr int64_t id_CompositeAvailableCapacityGroup = 42; -/* -id-Correlation-ID ProtocolIE-ID ::= 166 -*/ - -constexpr int64_t id_Correlation_ID = 166; -/* -id-CoverageModificationList ProtocolIE-ID ::= 143 -*/ - -constexpr int64_t id_CoverageModificationList = 143; -/* -id-CriticalityDiagnostics ProtocolIE-ID ::= 17 -*/ - -constexpr int64_t id_CriticalityDiagnostics = 17; -/* -id-DL-EARFCNExtension ProtocolIE-ID ::= 96 -*/ - -constexpr int64_t id_DL_EARFCNExtension = 96; -/* -id-DL-scheduling-PDCCH-CCE-usage ProtocolIE-ID ::= 193 -*/ - -constexpr int64_t id_DL_scheduling_PDCCH_CCE_usage = 193; -/* -id-DLCOUNTValueExtended ProtocolIE-ID ::= 93 -*/ - -constexpr int64_t id_DLCOUNTValueExtended = 93; -/* -id-DLCOUNTValuePDCP-SNlength18 ProtocolIE-ID ::= 152 -*/ - -constexpr int64_t id_DLCOUNTValuePDCP_SNlength18 = 152; -/* -id-DataTrafficResourceIndication ProtocolIE-ID ::= 287 -*/ - -constexpr int64_t id_DataTrafficResourceIndication = 287; -/* -id-DeactivationIndication ProtocolIE-ID ::= 59 -*/ - -constexpr int64_t id_DeactivationIndication = 59; -/* -id-DownlinkPacketLossRate ProtocolIE-ID ::= 273 -*/ - -constexpr int64_t id_DownlinkPacketLossRate = 273; -/* -id-DynamicDLTransmissionInformation ProtocolIE-ID ::= 106 -*/ - -constexpr int64_t id_DynamicDLTransmissionInformation = 106; -/* -id-E-RAB-Item ProtocolIE-ID ::= 2 -*/ - -constexpr int64_t id_E_RAB_Item = 2; -/* -id-E-RABUsageReport-Item ProtocolIE-ID ::= 263 -*/ - -constexpr int64_t id_E_RABUsageReport_Item = 263; -/* -id-E-RABs-Admitted-Item ProtocolIE-ID ::= 0 -*/ - -constexpr int64_t id_E_RABs_Admitted_Item = 0; -/* -id-E-RABs-Admitted-List ProtocolIE-ID ::= 1 -*/ - -constexpr int64_t id_E_RABs_Admitted_List = 1; -/* -id-E-RABs-Admitted-ToBeAdded-Item ProtocolIE-ID ::= 121 -*/ - -constexpr int64_t id_E_RABs_Admitted_ToBeAdded_Item = 121; -/* -id-E-RABs-Admitted-ToBeAdded-List ProtocolIE-ID ::= 120 -*/ - -constexpr int64_t id_E_RABs_Admitted_ToBeAdded_List = 120; -/* -id-E-RABs-Admitted-ToBeAdded-ModAckItem ProtocolIE-ID ::= 131 -*/ - -constexpr int64_t id_E_RABs_Admitted_ToBeAdded_ModAckItem = 131; -/* -id-E-RABs-Admitted-ToBeAdded-ModAckList ProtocolIE-ID ::= 128 -*/ - -constexpr int64_t id_E_RABs_Admitted_ToBeAdded_ModAckList = 128; -/* -id-E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item ProtocolIE-ID ::= 213 -*/ - -constexpr int64_t id_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item = 213; -/* -id-E-RABs-Admitted-ToBeAdded-SgNBAddReqAckList ProtocolIE-ID ::= 210 -*/ - -constexpr int64_t id_E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList = 210; -/* -id-E-RABs-Admitted-ToBeAdded-SgNBModAck-Item ProtocolIE-ID ::= 222 -*/ - -constexpr int64_t id_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item = 222; -/* -id-E-RABs-Admitted-ToBeAdded-SgNBModAckList ProtocolIE-ID ::= 219 -*/ - -constexpr int64_t id_E_RABs_Admitted_ToBeAdded_SgNBModAckList = 219; -/* -id-E-RABs-Admitted-ToBeModified-ModAckItem ProtocolIE-ID ::= 132 -*/ - -constexpr int64_t id_E_RABs_Admitted_ToBeModified_ModAckItem = 132; -/* -id-E-RABs-Admitted-ToBeModified-ModAckList ProtocolIE-ID ::= 129 -*/ - -constexpr int64_t id_E_RABs_Admitted_ToBeModified_ModAckList = 129; -/* -id-E-RABs-Admitted-ToBeModified-SgNBModAck-Item ProtocolIE-ID ::= 223 -*/ - -constexpr int64_t id_E_RABs_Admitted_ToBeModified_SgNBModAck_Item = 223; -/* -id-E-RABs-Admitted-ToBeModified-SgNBModAckList ProtocolIE-ID ::= 220 -*/ - -constexpr int64_t id_E_RABs_Admitted_ToBeModified_SgNBModAckList = 220; -/* -id-E-RABs-Admitted-ToBeReleased-ModAckItem ProtocolIE-ID ::= 133 -*/ - -constexpr int64_t id_E_RABs_Admitted_ToBeReleased_ModAckItem = 133; -/* -id-E-RABs-Admitted-ToBeReleased-ModAckList ProtocolIE-ID ::= 130 -*/ - -constexpr int64_t id_E_RABs_Admitted_ToBeReleased_ModAckList = 130; -/* -id-E-RABs-Admitted-ToBeReleased-SgNBModAck-Item ProtocolIE-ID ::= 224 -*/ - -constexpr int64_t id_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item = 224; -/* -id-E-RABs-Admitted-ToBeReleased-SgNBModAckList ProtocolIE-ID ::= 221 -*/ - -constexpr int64_t id_E_RABs_Admitted_ToBeReleased_SgNBModAckList = 221; -/* -id-E-RABs-Admitted-ToBeReleased-SgNBRelReqAck-Item ProtocolIE-ID ::= 319 -*/ - -constexpr int64_t id_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item = 319; -/* -id-E-RABs-Admitted-ToBeReleased-SgNBRelReqAckList ProtocolIE-ID ::= 318 -*/ - -constexpr int64_t id_E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList = 318; -/* -id-E-RABs-AdmittedToBeModified-SgNBModConf-Item ProtocolIE-ID ::= 295 -*/ - -constexpr int64_t id_E_RABs_AdmittedToBeModified_SgNBModConf_Item = 295; -/* -id-E-RABs-AdmittedToBeModified-SgNBModConfList ProtocolIE-ID ::= 294 -*/ - -constexpr int64_t id_E_RABs_AdmittedToBeModified_SgNBModConfList = 294; -/* -id-E-RABs-DataForwardingAddress-Item ProtocolIE-ID ::= 308 -*/ - -constexpr int64_t id_E_RABs_DataForwardingAddress_Item = 308; -/* -id-E-RABs-DataForwardingAddress-List ProtocolIE-ID ::= 307 -*/ - -constexpr int64_t id_E_RABs_DataForwardingAddress_List = 307; -/* -id-E-RABs-NotAdmitted-List ProtocolIE-ID ::= 3 -*/ - -constexpr int64_t id_E_RABs_NotAdmitted_List = 3; -/* -id-E-RABs-SubjectToCounterCheck-List ProtocolIE-ID ::= 141 -*/ - -constexpr int64_t id_E_RABs_SubjectToCounterCheck_List = 141; -/* -id-E-RABs-SubjectToCounterCheckItem ProtocolIE-ID ::= 142 -*/ - -constexpr int64_t id_E_RABs_SubjectToCounterCheckItem = 142; -/* -id-E-RABs-SubjectToSgNBCounterCheck-Item ProtocolIE-ID ::= 236 -*/ - -constexpr int64_t id_E_RABs_SubjectToSgNBCounterCheck_Item = 236; -/* -id-E-RABs-SubjectToSgNBCounterCheck-List ProtocolIE-ID ::= 235 -*/ - -constexpr int64_t id_E_RABs_SubjectToSgNBCounterCheck_List = 235; -/* -id-E-RABs-SubjectToStatusTransfer-Item ProtocolIE-ID ::= 19 -*/ - -constexpr int64_t id_E_RABs_SubjectToStatusTransfer_Item = 19; -/* -id-E-RABs-SubjectToStatusTransfer-List ProtocolIE-ID ::= 18 -*/ - -constexpr int64_t id_E_RABs_SubjectToStatusTransfer_List = 18; -/* -id-E-RABs-ToBeAdded-Item ProtocolIE-ID ::= 118 -*/ - -constexpr int64_t id_E_RABs_ToBeAdded_Item = 118; -/* -id-E-RABs-ToBeAdded-List ProtocolIE-ID ::= 117 -*/ - -constexpr int64_t id_E_RABs_ToBeAdded_List = 117; -/* -id-E-RABs-ToBeAdded-ModReqItem ProtocolIE-ID ::= 125 -*/ - -constexpr int64_t id_E_RABs_ToBeAdded_ModReqItem = 125; -/* -id-E-RABs-ToBeAdded-SgNBAddReq-Item ProtocolIE-ID ::= 209 -*/ - -constexpr int64_t id_E_RABs_ToBeAdded_SgNBAddReq_Item = 209; -/* -id-E-RABs-ToBeAdded-SgNBAddReqList ProtocolIE-ID ::= 205 -*/ - -constexpr int64_t id_E_RABs_ToBeAdded_SgNBAddReqList = 205; -/* -id-E-RABs-ToBeAdded-SgNBModReq-Item ProtocolIE-ID ::= 216 -*/ - -constexpr int64_t id_E_RABs_ToBeAdded_SgNBModReq_Item = 216; -/* -id-E-RABs-ToBeModified-ModReqItem ProtocolIE-ID ::= 126 -*/ - -constexpr int64_t id_E_RABs_ToBeModified_ModReqItem = 126; -/* -id-E-RABs-ToBeModified-SgNBModReq-Item ProtocolIE-ID ::= 217 -*/ - -constexpr int64_t id_E_RABs_ToBeModified_SgNBModReq_Item = 217; -/* -id-E-RABs-ToBeModified-SgNBModReqd-Item ProtocolIE-ID ::= 228 -*/ - -constexpr int64_t id_E_RABs_ToBeModified_SgNBModReqd_Item = 228; -/* -id-E-RABs-ToBeModified-SgNBModReqdList ProtocolIE-ID ::= 226 -*/ - -constexpr int64_t id_E_RABs_ToBeModified_SgNBModReqdList = 226; -/* -id-E-RABs-ToBeReleased-List-RelConf ProtocolIE-ID ::= 139 -*/ - -constexpr int64_t id_E_RABs_ToBeReleased_List_RelConf = 139; -/* -id-E-RABs-ToBeReleased-List-RelReq ProtocolIE-ID ::= 137 -*/ - -constexpr int64_t id_E_RABs_ToBeReleased_List_RelReq = 137; -/* -id-E-RABs-ToBeReleased-ModReqItem ProtocolIE-ID ::= 127 -*/ - -constexpr int64_t id_E_RABs_ToBeReleased_ModReqItem = 127; -/* -id-E-RABs-ToBeReleased-ModReqd ProtocolIE-ID ::= 134 -*/ - -constexpr int64_t id_E_RABs_ToBeReleased_ModReqd = 134; -/* -id-E-RABs-ToBeReleased-ModReqdItem ProtocolIE-ID ::= 135 -*/ - -constexpr int64_t id_E_RABs_ToBeReleased_ModReqdItem = 135; -/* -id-E-RABs-ToBeReleased-RelConfItem ProtocolIE-ID ::= 140 -*/ - -constexpr int64_t id_E_RABs_ToBeReleased_RelConfItem = 140; -/* -id-E-RABs-ToBeReleased-RelReqItem ProtocolIE-ID ::= 138 -*/ - -constexpr int64_t id_E_RABs_ToBeReleased_RelReqItem = 138; -/* -id-E-RABs-ToBeReleased-SgNBChaConf-Item ProtocolIE-ID ::= 230 -*/ - -constexpr int64_t id_E_RABs_ToBeReleased_SgNBChaConf_Item = 230; -/* -id-E-RABs-ToBeReleased-SgNBChaConfList ProtocolIE-ID ::= 229 -*/ - -constexpr int64_t id_E_RABs_ToBeReleased_SgNBChaConfList = 229; -/* -id-E-RABs-ToBeReleased-SgNBModReq-Item ProtocolIE-ID ::= 218 -*/ - -constexpr int64_t id_E_RABs_ToBeReleased_SgNBModReq_Item = 218; -/* -id-E-RABs-ToBeReleased-SgNBModReqd-Item ProtocolIE-ID ::= 227 -*/ - -constexpr int64_t id_E_RABs_ToBeReleased_SgNBModReqd_Item = 227; -/* -id-E-RABs-ToBeReleased-SgNBModReqdList ProtocolIE-ID ::= 225 -*/ - -constexpr int64_t id_E_RABs_ToBeReleased_SgNBModReqdList = 225; -/* -id-E-RABs-ToBeReleased-SgNBRelConf-Item ProtocolIE-ID ::= 234 -*/ - -constexpr int64_t id_E_RABs_ToBeReleased_SgNBRelConf_Item = 234; -/* -id-E-RABs-ToBeReleased-SgNBRelConfList ProtocolIE-ID ::= 233 -*/ - -constexpr int64_t id_E_RABs_ToBeReleased_SgNBRelConfList = 233; -/* -id-E-RABs-ToBeReleased-SgNBRelReq-Item ProtocolIE-ID ::= 232 -*/ - -constexpr int64_t id_E_RABs_ToBeReleased_SgNBRelReq_Item = 232; -/* -id-E-RABs-ToBeReleased-SgNBRelReqList ProtocolIE-ID ::= 231 -*/ - -constexpr int64_t id_E_RABs_ToBeReleased_SgNBRelReqList = 231; -/* -id-E-RABs-ToBeReleased-SgNBRelReqd-Item ProtocolIE-ID ::= 321 -*/ - -constexpr int64_t id_E_RABs_ToBeReleased_SgNBRelReqd_Item = 321; -/* -id-E-RABs-ToBeReleased-SgNBRelReqdList ProtocolIE-ID ::= 320 -*/ - -constexpr int64_t id_E_RABs_ToBeReleased_SgNBRelReqdList = 320; -/* -id-E-RABs-ToBeSetup-Item ProtocolIE-ID ::= 4 -*/ - -constexpr int64_t id_E_RABs_ToBeSetup_Item = 4; -/* -id-E-RABs-ToBeSetupRetrieve-Item ProtocolIE-ID ::= 174 -*/ - -constexpr int64_t id_E_RABs_ToBeSetupRetrieve_Item = 174; -/* -id-ECGI ProtocolIE-ID ::= 316 -*/ - -constexpr int64_t id_ECGI = 316; -/* -id-ENB1-Cell-ID ProtocolIE-ID ::= 43 -*/ - -constexpr int64_t id_ENB1_Cell_ID = 43; -/* -id-ENB1-Measurement-ID ProtocolIE-ID ::= 39 -*/ - -constexpr int64_t id_ENB1_Measurement_ID = 39; -/* -id-ENB1-Mobility-Parameters ProtocolIE-ID ::= 46 -*/ - -constexpr int64_t id_ENB1_Mobility_Parameters = 46; -/* -id-ENB2-Cell-ID ProtocolIE-ID ::= 44 -*/ - -constexpr int64_t id_ENB2_Cell_ID = 44; -/* -id-ENB2-Measurement-ID ProtocolIE-ID ::= 40 -*/ - -constexpr int64_t id_ENB2_Measurement_ID = 40; -/* -id-ENB2-Mobility-Parameters-Modification-Range ProtocolIE-ID ::= 47 -*/ - -constexpr int64_t id_ENB2_Mobility_Parameters_Modification_Range = 47; -/* -id-ENB2-Proposed-Mobility-Parameters ProtocolIE-ID ::= 45 -*/ - -constexpr int64_t id_ENB2_Proposed_Mobility_Parameters = 45; -/* -id-ERABActivityNotifyItemList ProtocolIE-ID ::= 297 -*/ - -constexpr int64_t id_ERABActivityNotifyItemList = 297; -/* -id-ExpectedUEBehaviour ProtocolIE-ID ::= 104 -*/ - -constexpr int64_t id_ExpectedUEBehaviour = 104; -/* -id-ExtendedULInterferenceOverloadInfo ProtocolIE-ID ::= 100 -*/ - -constexpr int64_t id_ExtendedULInterferenceOverloadInfo = 100; -/* -id-FailureCellCRNTI ProtocolIE-ID ::= 50 -*/ - -constexpr int64_t id_FailureCellCRNTI = 50; -/* -id-FailureCellECGI ProtocolIE-ID ::= 53 -*/ - -constexpr int64_t id_FailureCellECGI = 53; -/* -id-FailureCellPCI ProtocolIE-ID ::= 48 -*/ - -constexpr int64_t id_FailureCellPCI = 48; -/* -id-FreqBandIndicatorPriority ProtocolIE-ID ::= 160 -*/ - -constexpr int64_t id_FreqBandIndicatorPriority = 160; -/* -id-GNBOverloadInformation ProtocolIE-ID ::= 310 -*/ - -constexpr int64_t id_GNBOverloadInformation = 310; -/* -id-GUGroupIDList ProtocolIE-ID ::= 24 -*/ - -constexpr int64_t id_GUGroupIDList = 24; -/* -id-GUGroupIDToAddList ProtocolIE-ID ::= 34 -*/ - -constexpr int64_t id_GUGroupIDToAddList = 34; -/* -id-GUGroupIDToDeleteList ProtocolIE-ID ::= 35 -*/ - -constexpr int64_t id_GUGroupIDToDeleteList = 35; -/* -id-GUMMEI-ID ProtocolIE-ID ::= 23 -*/ - -constexpr int64_t id_GUMMEI_ID = 23; -/* -id-GW-TransportLayerAddress ProtocolIE-ID ::= 165 -*/ - -constexpr int64_t id_GW_TransportLayerAddress = 165; -/* -id-GlobalENB-ID ProtocolIE-ID ::= 21 -*/ - -constexpr int64_t id_GlobalENB_ID = 21; -/* -id-Globalen-gNB-ID ProtocolIE-ID ::= 252 -*/ - -constexpr int64_t id_Globalen_gNB_ID = 252; -/* -id-HO-cause ProtocolIE-ID ::= 80 -*/ - -constexpr int64_t id_HO_cause = 80; -/* -id-HandoverReportType ProtocolIE-ID ::= 54 -*/ - -constexpr int64_t id_HandoverReportType = 54; -/* -id-HandoverRestrictionList ProtocolIE-ID ::= 240 -*/ - -constexpr int64_t id_HandoverRestrictionList = 240; -/* -id-InitiatingNodeType-EndcConfigUpdate ProtocolIE-ID ::= 245 -*/ - -constexpr int64_t id_InitiatingNodeType_EndcConfigUpdate = 245; -/* -id-InitiatingNodeType-EndcX2Removal ProtocolIE-ID ::= 298 -*/ - -constexpr int64_t id_InitiatingNodeType_EndcX2Removal = 298; -/* -id-InitiatingNodeType-EndcX2Setup ProtocolIE-ID ::= 244 -*/ - -constexpr int64_t id_InitiatingNodeType_EndcX2Setup = 244; -/* -id-InitiatingNodeType-EutranrCellResourceCoordination ProtocolIE-ID ::= 285 -*/ - -constexpr int64_t id_InitiatingNodeType_EutranrCellResourceCoordination = 285; -/* -id-IntendedULDLConfiguration ProtocolIE-ID ::= 99 -*/ - -constexpr int64_t id_IntendedULDLConfiguration = 99; -/* -id-InvokeIndication ProtocolIE-ID ::= 62 -*/ - -constexpr int64_t id_InvokeIndication = 62; -/* -id-LHN-ID ProtocolIE-ID ::= 159 -*/ - -constexpr int64_t id_LHN_ID = 159; -/* -id-ListofEUTRACellsinEUTRACoordinationReq ProtocolIE-ID ::= 289 -*/ - -constexpr int64_t id_ListofEUTRACellsinEUTRACoordinationReq = 289; -/* -id-ListofEUTRACellsinEUTRACoordinationResp ProtocolIE-ID ::= 290 -*/ - -constexpr int64_t id_ListofEUTRACellsinEUTRACoordinationResp = 290; -/* -id-ListofEUTRACellsinNRCoordinationReq ProtocolIE-ID ::= 291 -*/ - -constexpr int64_t id_ListofEUTRACellsinNRCoordinationReq = 291; -/* -id-ListofNRCellsinNRCoordinationReq ProtocolIE-ID ::= 292 -*/ - -constexpr int64_t id_ListofNRCellsinNRCoordinationReq = 292; -/* -id-ListofNRCellsinNRCoordinationResp ProtocolIE-ID ::= 293 -*/ - -constexpr int64_t id_ListofNRCellsinNRCoordinationResp = 293; -/* -id-M3Configuration ProtocolIE-ID ::= 85 -*/ - -constexpr int64_t id_M3Configuration = 85; -/* -id-M4Configuration ProtocolIE-ID ::= 86 -*/ - -constexpr int64_t id_M4Configuration = 86; -/* -id-M5Configuration ProtocolIE-ID ::= 87 -*/ - -constexpr int64_t id_M5Configuration = 87; -/* -id-M6Configuration ProtocolIE-ID ::= 161 -*/ - -constexpr int64_t id_M6Configuration = 161; -/* -id-M7Configuration ProtocolIE-ID ::= 162 -*/ - -constexpr int64_t id_M7Configuration = 162; -/* -id-MBMS-Service-Area-List ProtocolIE-ID ::= 79 -*/ - -constexpr int64_t id_MBMS_Service_Area_List = 79; -/* -id-MBSFN-Subframe-Info ProtocolIE-ID ::= 56 -*/ - -constexpr int64_t id_MBSFN_Subframe_Info = 56; -/* -id-MDT-Location-Info ProtocolIE-ID ::= 88 -*/ - -constexpr int64_t id_MDT_Location_Info = 88; -/* -id-MDTConfiguration ProtocolIE-ID ::= 72 -*/ - -constexpr int64_t id_MDTConfiguration = 72; -/* -id-MakeBeforeBreakIndicator ProtocolIE-ID ::= 181 -*/ - -constexpr int64_t id_MakeBeforeBreakIndicator = 181; -/* -id-ManagementBasedMDTPLMNList ProtocolIE-ID ::= 89 -*/ - -constexpr int64_t id_ManagementBasedMDTPLMNList = 89; -/* -id-ManagementBasedMDTallowed ProtocolIE-ID ::= 74 -*/ - -constexpr int64_t id_ManagementBasedMDTallowed = 74; -/* -id-Masked-IMEISV ProtocolIE-ID ::= 98 -*/ - -constexpr int64_t id_Masked_IMEISV = 98; -/* -id-MeNB-UE-X2AP-ID ProtocolIE-ID ::= 111 -*/ - -constexpr int64_t id_MeNB_UE_X2AP_ID = 111; -/* -id-MeNB-UE-X2AP-ID-Extension ProtocolIE-ID ::= 157 -*/ - -constexpr int64_t id_MeNB_UE_X2AP_ID_Extension = 157; -/* -id-MeNBCell-ID ProtocolIE-ID ::= 279 -*/ - -constexpr int64_t id_MeNBCell_ID = 279; -/* -id-MeNBCoordinationAssistanceInformation ProtocolIE-ID ::= 323 -*/ - -constexpr int64_t id_MeNBCoordinationAssistanceInformation = 323; -/* -id-MeNBResourceCoordinationInformation ProtocolIE-ID ::= 257 -*/ - -constexpr int64_t id_MeNBResourceCoordinationInformation = 257; -/* -id-MeNBtoSeNBContainer ProtocolIE-ID ::= 119 -*/ - -constexpr int64_t id_MeNBtoSeNBContainer = 119; -/* -id-MeNBtoSgNBContainer ProtocolIE-ID ::= 206 -*/ - -constexpr int64_t id_MeNBtoSgNBContainer = 206; -/* -id-Measurement-ID ProtocolIE-ID ::= 37 -*/ - -constexpr int64_t id_Measurement_ID = 37; -/* -id-MeasurementFailureCause-Item ProtocolIE-ID ::= 67 -*/ - -constexpr int64_t id_MeasurementFailureCause_Item = 67; -/* -id-MeasurementInitiationResult-Item ProtocolIE-ID ::= 66 -*/ - -constexpr int64_t id_MeasurementInitiationResult_Item = 66; -/* -id-MeasurementInitiationResult-List ProtocolIE-ID ::= 65 -*/ - -constexpr int64_t id_MeasurementInitiationResult_List = 65; -/* -id-MobilityInformation ProtocolIE-ID ::= 82 -*/ - -constexpr int64_t id_MobilityInformation = 82; -/* -id-MultibandInfoList ProtocolIE-ID ::= 84 -*/ - -constexpr int64_t id_MultibandInfoList = 84; -/* -id-NRCGI ProtocolIE-ID ::= 322 -*/ - -constexpr int64_t id_NRCGI = 322; -/* -id-NRS-NSSS-PowerOffset ProtocolIE-ID ::= 282 -*/ - -constexpr int64_t id_NRS_NSSS_PowerOffset = 282; -/* -id-NRUESecurityCapabilities ProtocolIE-ID ::= 248 -*/ - -constexpr int64_t id_NRUESecurityCapabilities = 248; -/* -id-NRrestrictionin5GS ProtocolIE-ID ::= 305 -*/ - -constexpr int64_t id_NRrestrictionin5GS = 305; -/* -id-NRrestrictioninEPSasSecondaryRAT ProtocolIE-ID ::= 202 -*/ - -constexpr int64_t id_NRrestrictioninEPSasSecondaryRAT = 202; -/* -id-NSSS-NumOccasionDifferentPrecoder ProtocolIE-ID ::= 283 -*/ - -constexpr int64_t id_NSSS_NumOccasionDifferentPrecoder = 283; -/* -id-NeighbourTAC ProtocolIE-ID ::= 76 -*/ - -constexpr int64_t id_NeighbourTAC = 76; -/* -id-New-eNB-UE-X2AP-ID ProtocolIE-ID ::= 9 -*/ - -constexpr int64_t id_New_eNB_UE_X2AP_ID = 9; -/* -id-New-eNB-UE-X2AP-ID-Extension ProtocolIE-ID ::= 155 -*/ - -constexpr int64_t id_New_eNB_UE_X2AP_ID_Extension = 155; -/* -id-NewEUTRANCellIdentifier ProtocolIE-ID ::= 175 -*/ - -constexpr int64_t id_NewEUTRANCellIdentifier = 175; -/* -id-Number-of-Antennaports ProtocolIE-ID ::= 41 -*/ - -constexpr int64_t id_Number_of_Antennaports = 41; -/* -id-OffsetOfNbiotChannelNumberToDL-EARFCN ProtocolIE-ID ::= 177 -*/ - -constexpr int64_t id_OffsetOfNbiotChannelNumberToDL_EARFCN = 177; -/* -id-OffsetOfNbiotChannelNumberToUL-EARFCN ProtocolIE-ID ::= 178 -*/ - -constexpr int64_t id_OffsetOfNbiotChannelNumberToUL_EARFCN = 178; -/* -id-Old-SgNB-UE-X2AP-ID ProtocolIE-ID ::= 264 -*/ - -constexpr int64_t id_Old_SgNB_UE_X2AP_ID = 264; -/* -id-Old-eNB-UE-X2AP-ID ProtocolIE-ID ::= 10 -*/ - -constexpr int64_t id_Old_eNB_UE_X2AP_ID = 10; -/* -id-Old-eNB-UE-X2AP-ID-Extension ProtocolIE-ID ::= 156 -*/ - -constexpr int64_t id_Old_eNB_UE_X2AP_ID_Extension = 156; -/* -id-PDCPChangeIndication ProtocolIE-ID ::= 249 -*/ - -constexpr int64_t id_PDCPChangeIndication = 249; -/* -id-PRACH-Configuration ProtocolIE-ID ::= 55 -*/ - -constexpr int64_t id_PRACH_Configuration = 55; -/* -id-PartialSuccessIndicator ProtocolIE-ID ::= 64 -*/ - -constexpr int64_t id_PartialSuccessIndicator = 64; -/* -id-ProSeAuthorized ProtocolIE-ID ::= 103 -*/ - -constexpr int64_t id_ProSeAuthorized = 103; -/* -id-ProSeUEtoNetworkRelaying ProtocolIE-ID ::= 149 -*/ - -constexpr int64_t id_ProSeUEtoNetworkRelaying = 149; -/* -id-ProtectedEUTRAResourceIndication ProtocolIE-ID ::= 284 -*/ - -constexpr int64_t id_ProtectedEUTRAResourceIndication = 284; -/* -id-RLC-Status ProtocolIE-ID ::= 300 -*/ - -constexpr int64_t id_RLC_Status = 300; -/* -id-RLCMode-transferred ProtocolIE-ID ::= 317 -*/ - -constexpr int64_t id_RLCMode_transferred = 317; -/* -id-RNL-Header ProtocolIE-ID ::= 101 -*/ - -constexpr int64_t id_RNL_Header = 101; -/* -id-RRCConfigIndication ProtocolIE-ID ::= 272 -*/ - -constexpr int64_t id_RRCConfigIndication = 272; -/* -id-RRCConnReestabIndicator ProtocolIE-ID ::= 78 -*/ - -constexpr int64_t id_RRCConnReestabIndicator = 78; -/* -id-RRCConnSetupIndicator ProtocolIE-ID ::= 75 -*/ - -constexpr int64_t id_RRCConnSetupIndicator = 75; -/* -id-RRCContainer ProtocolIE-ID ::= 237 -*/ - -constexpr int64_t id_RRCContainer = 237; -/* -id-RSRPMRList ProtocolIE-ID ::= 110 -*/ - -constexpr int64_t id_RSRPMRList = 110; -/* -id-Re-establishmentCellECGI ProtocolIE-ID ::= 49 -*/ - -constexpr int64_t id_Re_establishmentCellECGI = 49; -/* -id-ReceiveStatusOfULPDCPSDUsExtended ProtocolIE-ID ::= 91 -*/ - -constexpr int64_t id_ReceiveStatusOfULPDCPSDUsExtended = 91; -/* -id-ReceiveStatusOfULPDCPSDUsPDCP-SNlength18 ProtocolIE-ID ::= 150 -*/ - -constexpr int64_t id_ReceiveStatusOfULPDCPSDUsPDCP_SNlength18 = 150; -/* -id-Registration-Request ProtocolIE-ID ::= 28 -*/ - -constexpr int64_t id_Registration_Request = 28; -/* -id-ReportCharacteristics ProtocolIE-ID ::= 38 -*/ - -constexpr int64_t id_ReportCharacteristics = 38; -/* -id-ReportingPeriodicity ProtocolIE-ID ::= 30 -*/ - -constexpr int64_t id_ReportingPeriodicity = 30; -/* -id-ReportingPeriodicityCSIR ProtocolIE-ID ::= 145 -*/ - -constexpr int64_t id_ReportingPeriodicityCSIR = 145; -/* -id-ReportingPeriodicityRSRPMR ProtocolIE-ID ::= 109 -*/ - -constexpr int64_t id_ReportingPeriodicityRSRPMR = 109; -/* -id-RequestedSplitSRBs ProtocolIE-ID ::= 208 -*/ - -constexpr int64_t id_RequestedSplitSRBs = 208; -/* -id-RequestedSplitSRBsrelease ProtocolIE-ID ::= 280 -*/ - -constexpr int64_t id_RequestedSplitSRBsrelease = 280; -/* -id-RespondingNodeType-EndcConfigUpdate ProtocolIE-ID ::= 247 -*/ - -constexpr int64_t id_RespondingNodeType_EndcConfigUpdate = 247; -/* -id-RespondingNodeType-EndcX2Removal ProtocolIE-ID ::= 299 -*/ - -constexpr int64_t id_RespondingNodeType_EndcX2Removal = 299; -/* -id-RespondingNodeType-EndcX2Setup ProtocolIE-ID ::= 246 -*/ - -constexpr int64_t id_RespondingNodeType_EndcX2Setup = 246; -/* -id-RespondingNodeType-EutranrCellResourceCoordination ProtocolIE-ID ::= 286 -*/ - -constexpr int64_t id_RespondingNodeType_EutranrCellResourceCoordination = 286; -/* -id-ResponseInformationSeNBReconfComp ProtocolIE-ID ::= 123 -*/ - -constexpr int64_t id_ResponseInformationSeNBReconfComp = 123; -/* -id-ResponseInformationSgNBReconfComp ProtocolIE-ID ::= 214 -*/ - -constexpr int64_t id_ResponseInformationSgNBReconfComp = 214; -/* -id-SCGChangeIndication ProtocolIE-ID ::= 136 -*/ - -constexpr int64_t id_SCGChangeIndication = 136; -/* -id-SCGConfigurationQuery ProtocolIE-ID ::= 241 -*/ - -constexpr int64_t id_SCGConfigurationQuery = 241; -/* -id-SGNB-Addition-Trigger-Ind ProtocolIE-ID ::= 278 -*/ - -constexpr int64_t id_SGNB_Addition_Trigger_Ind = 278; -/* -id-SIPTO-BearerDeactivationIndication ProtocolIE-ID ::= 164 -*/ - -constexpr int64_t id_SIPTO_BearerDeactivationIndication = 164; -/* -id-SIPTO-Correlation-ID ProtocolIE-ID ::= 167 -*/ - -constexpr int64_t id_SIPTO_Correlation_ID = 167; -/* -id-SIPTO-L-GW-TransportLayerAddress ProtocolIE-ID ::= 168 -*/ - -constexpr int64_t id_SIPTO_L_GW_TransportLayerAddress = 168; -/* -id-SRBType ProtocolIE-ID ::= 238 -*/ - -constexpr int64_t id_SRBType = 238; -/* -id-SRVCCOperationPossible ProtocolIE-ID ::= 36 -*/ - -constexpr int64_t id_SRVCCOperationPossible = 36; -/* -id-SeNB-UE-X2AP-ID ProtocolIE-ID ::= 112 -*/ - -constexpr int64_t id_SeNB_UE_X2AP_ID = 112; -/* -id-SeNB-UE-X2AP-ID-Extension ProtocolIE-ID ::= 158 -*/ - -constexpr int64_t id_SeNB_UE_X2AP_ID_Extension = 158; -/* -id-SeNBSecurityKey ProtocolIE-ID ::= 114 -*/ - -constexpr int64_t id_SeNBSecurityKey = 114; -/* -id-SeNBUEAggregateMaximumBitRate ProtocolIE-ID ::= 115 -*/ - -constexpr int64_t id_SeNBUEAggregateMaximumBitRate = 115; -/* -id-SeNBtoMeNBContainer ProtocolIE-ID ::= 122 -*/ - -constexpr int64_t id_SeNBtoMeNBContainer = 122; -/* -id-SecondaryRATUsageReport ProtocolIE-ID ::= 255 -*/ - -constexpr int64_t id_SecondaryRATUsageReport = 255; -/* -id-SecondaryRATUsageReport-Item ProtocolIE-ID ::= 266 -*/ - -constexpr int64_t id_SecondaryRATUsageReport_Item = 266; -/* -id-SecondaryRATUsageReportList ProtocolIE-ID ::= 265 -*/ - -constexpr int64_t id_SecondaryRATUsageReportList = 265; -/* -id-SelectedPLMN ProtocolIE-ID ::= 269 -*/ - -constexpr int64_t id_SelectedPLMN = 269; -/* -id-ServedCells ProtocolIE-ID ::= 20 -*/ - -constexpr int64_t id_ServedCells = 20; -/* -id-ServedCellsToActivate ProtocolIE-ID ::= 57 -*/ - -constexpr int64_t id_ServedCellsToActivate = 57; -/* -id-ServedCellsToAdd ProtocolIE-ID ::= 25 -*/ - -constexpr int64_t id_ServedCellsToAdd = 25; -/* -id-ServedCellsToDelete ProtocolIE-ID ::= 27 -*/ - -constexpr int64_t id_ServedCellsToDelete = 27; -/* -id-ServedCellsToModify ProtocolIE-ID ::= 26 -*/ - -constexpr int64_t id_ServedCellsToModify = 26; -/* -id-ServedEUTRAcellsENDCX2ManagementList ProtocolIE-ID ::= 250 -*/ - -constexpr int64_t id_ServedEUTRAcellsENDCX2ManagementList = 250; -/* -id-ServedEUTRAcellsToDeleteListENDCConfUpd ProtocolIE-ID ::= 260 -*/ - -constexpr int64_t id_ServedEUTRAcellsToDeleteListENDCConfUpd = 260; -/* -id-ServedEUTRAcellsToModifyListENDCConfUpd ProtocolIE-ID ::= 259 -*/ - -constexpr int64_t id_ServedEUTRAcellsToModifyListENDCConfUpd = 259; -/* -id-ServedNRCellsToActivate ProtocolIE-ID ::= 267 -*/ - -constexpr int64_t id_ServedNRCellsToActivate = 267; -/* -id-ServedNRcellsENDCX2ManagementList ProtocolIE-ID ::= 253 -*/ - -constexpr int64_t id_ServedNRcellsENDCX2ManagementList = 253; -/* -id-ServedNRcellsToDeleteListENDCConfUpd ProtocolIE-ID ::= 262 -*/ - -constexpr int64_t id_ServedNRcellsToDeleteListENDCConfUpd = 262; -/* -id-ServedNRcellsToModifyListENDCConfUpd ProtocolIE-ID ::= 261 -*/ - -constexpr int64_t id_ServedNRcellsToModifyListENDCConfUpd = 261; -/* -id-ServingPLMN ProtocolIE-ID ::= 116 -*/ - -constexpr int64_t id_ServingPLMN = 116; -/* -id-SgNB-UE-X2AP-ID ProtocolIE-ID ::= 207 -*/ - -constexpr int64_t id_SgNB_UE_X2AP_ID = 207; -/* -id-SgNBActivityNotification ProcedureCode ::= 42 -*/ - -constexpr int64_t id_SgNBActivityNotification = 42; -/* -id-SgNBCoordinationAssistanceInformation ProtocolIE-ID ::= 324 -*/ - -constexpr int64_t id_SgNBCoordinationAssistanceInformation = 324; -/* -id-SgNBResourceCoordinationInformation ProtocolIE-ID ::= 258 -*/ - -constexpr int64_t id_SgNBResourceCoordinationInformation = 258; -/* -id-SgNBSecurityKey ProtocolIE-ID ::= 203 -*/ - -constexpr int64_t id_SgNBSecurityKey = 203; -/* -id-SgNBUEAggregateMaximumBitRate ProtocolIE-ID ::= 204 -*/ - -constexpr int64_t id_SgNBUEAggregateMaximumBitRate = 204; -/* -id-SgNBtoMeNBContainer ProtocolIE-ID ::= 211 -*/ - -constexpr int64_t id_SgNBtoMeNBContainer = 211; -/* -id-ShortMAC-I ProtocolIE-ID ::= 51 -*/ - -constexpr int64_t id_ShortMAC_I = 51; -/* -id-SignallingBasedMDTPLMNList ProtocolIE-ID ::= 90 -*/ - -constexpr int64_t id_SignallingBasedMDTPLMNList = 90; -/* -id-SourceCellCRNTI ProtocolIE-ID ::= 83 -*/ - -constexpr int64_t id_SourceCellCRNTI = 83; -/* -id-SourceCellECGI ProtocolIE-ID ::= 52 -*/ - -constexpr int64_t id_SourceCellECGI = 52; -/* -id-SpectrumSharingGroupID ProtocolIE-ID ::= 288 -*/ - -constexpr int64_t id_SpectrumSharingGroupID = 288; -/* -id-SplitSRB ProtocolIE-ID ::= 242 -*/ - -constexpr int64_t id_SplitSRB = 242; -/* -id-SubscriberProfileIDforRFP ProtocolIE-ID ::= 275 -*/ - -constexpr int64_t id_SubscriberProfileIDforRFP = 275; -/* -id-Subscription-Based-UE-DifferentiationInfo ProtocolIE-ID ::= 309 -*/ - -constexpr int64_t id_Subscription_Based_UE_DifferentiationInfo = 309; -/* -id-Target-SgNB-ID ProtocolIE-ID ::= 239 -*/ - -constexpr int64_t id_Target_SgNB_ID = 239; -/* -id-TargetCell-ID ProtocolIE-ID ::= 11 -*/ - -constexpr int64_t id_TargetCell_ID = 11; -/* -id-TargetCellInUTRAN ProtocolIE-ID ::= 81 -*/ - -constexpr int64_t id_TargetCellInUTRAN = 81; -/* -id-TargeteNBtoSource-eNBTransparentContainer ProtocolIE-ID ::= 12 -*/ - -constexpr int64_t id_TargeteNBtoSource_eNBTransparentContainer = 12; -/* -id-Time-UE-StayedInCell-EnhancedGranularity ProtocolIE-ID ::= 77 -*/ - -constexpr int64_t id_Time_UE_StayedInCell_EnhancedGranularity = 77; -/* -id-TimeToWait ProtocolIE-ID ::= 22 -*/ - -constexpr int64_t id_TimeToWait = 22; -/* -id-TraceActivation ProtocolIE-ID ::= 13 -*/ - -constexpr int64_t id_TraceActivation = 13; -/* -id-Tunnel-Information-for-BBF ProtocolIE-ID ::= 163 -*/ - -constexpr int64_t id_Tunnel_Information_for_BBF = 163; -/* -id-UE-ContextInformation ProtocolIE-ID ::= 14 -*/ - -constexpr int64_t id_UE_ContextInformation = 14; -/* -id-UE-ContextInformation-SgNBModReq ProtocolIE-ID ::= 215 -*/ - -constexpr int64_t id_UE_ContextInformation_SgNBModReq = 215; -/* -id-UE-ContextInformationRetrieve ProtocolIE-ID ::= 173 -*/ - -constexpr int64_t id_UE_ContextInformationRetrieve = 173; -/* -id-UE-ContextInformationSeNBModReq ProtocolIE-ID ::= 124 -*/ - -constexpr int64_t id_UE_ContextInformationSeNBModReq = 124; -/* -id-UE-ContextKeptIndicator ProtocolIE-ID ::= 154 -*/ - -constexpr int64_t id_UE_ContextKeptIndicator = 154; -/* -id-UE-ContextReferenceAtSeNB ProtocolIE-ID ::= 153 -*/ - -constexpr int64_t id_UE_ContextReferenceAtSeNB = 153; -/* -id-UE-ContextReferenceAtSgNB ProtocolIE-ID ::= 254 -*/ - -constexpr int64_t id_UE_ContextReferenceAtSgNB = 254; -/* -id-UE-ContextReferenceAtWT ProtocolIE-ID ::= 182 -*/ - -constexpr int64_t id_UE_ContextReferenceAtWT = 182; -/* -id-UE-HistoryInformation ProtocolIE-ID ::= 15 -*/ - -constexpr int64_t id_UE_HistoryInformation = 15; -/* -id-UE-HistoryInformationFromTheUE ProtocolIE-ID ::= 105 -*/ - -constexpr int64_t id_UE_HistoryInformationFromTheUE = 105; -/* -id-UE-RLF-Report-Container ProtocolIE-ID ::= 60 -*/ - -constexpr int64_t id_UE_RLF_Report_Container = 60; -/* -id-UE-RLF-Report-Container-for-extended-bands ProtocolIE-ID ::= 107 -*/ - -constexpr int64_t id_UE_RLF_Report_Container_for_extended_bands = 107; -/* -id-UE-SecurityCapabilities ProtocolIE-ID ::= 113 -*/ - -constexpr int64_t id_UE_SecurityCapabilities = 113; -/* -id-UE-X2AP-ID ProtocolIE-ID ::= 16 -*/ - -constexpr int64_t id_UE_X2AP_ID = 16; -/* -id-UEAppLayerMeasConfig ProtocolIE-ID ::= 195 -*/ - -constexpr int64_t id_UEAppLayerMeasConfig = 195; -/* -id-UEContextLevelUserPlaneActivity ProtocolIE-ID ::= 296 -*/ - -constexpr int64_t id_UEContextLevelUserPlaneActivity = 296; -/* -id-UEID ProtocolIE-ID ::= 147 -*/ - -constexpr int64_t id_UEID = 147; -/* -id-UENRMeasurement ProtocolIE-ID ::= 243 -*/ - -constexpr int64_t id_UENRMeasurement = 243; -/* -id-UESidelinkAggregateMaximumBitRate ProtocolIE-ID ::= 184 -*/ - -constexpr int64_t id_UESidelinkAggregateMaximumBitRate = 184; -/* -id-UEs-Admitted-ToBeReset ProtocolIE-ID ::= 271 -*/ - -constexpr int64_t id_UEs_Admitted_ToBeReset = 271; -/* -id-UEs-ToBeReset ProtocolIE-ID ::= 270 -*/ - -constexpr int64_t id_UEs_ToBeReset = 270; -/* -id-UL-EARFCNExtension ProtocolIE-ID ::= 95 -*/ - -constexpr int64_t id_UL_EARFCNExtension = 95; -/* -id-UL-scheduling-PDCCH-CCE-usage ProtocolIE-ID ::= 194 -*/ - -constexpr int64_t id_UL_scheduling_PDCCH_CCE_usage = 194; -/* -id-ULCOUNTValueExtended ProtocolIE-ID ::= 92 -*/ - -constexpr int64_t id_ULCOUNTValueExtended = 92; -/* -id-ULCOUNTValuePDCP-SNlength18 ProtocolIE-ID ::= 151 -*/ - -constexpr int64_t id_ULCOUNTValuePDCP_SNlength18 = 151; -/* -id-UplinkPacketLossRate ProtocolIE-ID ::= 274 -*/ - -constexpr int64_t id_UplinkPacketLossRate = 274; -/* -id-V2XServicesAuthorized ProtocolIE-ID ::= 176 -*/ - -constexpr int64_t id_V2XServicesAuthorized = 176; -/* -id-WLANMeasurementConfiguration ProtocolIE-ID ::= 304 -*/ - -constexpr int64_t id_WLANMeasurementConfiguration = 304; -/* -id-WT-UE-ContextKeptIndicator ProtocolIE-ID ::= 183 -*/ - -constexpr int64_t id_WT_UE_ContextKeptIndicator = 183; -/* -id-X2RemovalThreshold ProtocolIE-ID ::= 169 -*/ - -constexpr int64_t id_X2RemovalThreshold = 169; -/* -id-cellActivation ProcedureCode ::= 15 -*/ - -constexpr int64_t id_cellActivation = 15; -/* -id-dL-Forwarding ProtocolIE-ID ::= 306 -*/ - -constexpr int64_t id_dL_Forwarding = 306; -/* -id-dLPDCPSnLength ProtocolIE-ID ::= 311 -*/ - -constexpr int64_t id_dLPDCPSnLength = 311; -/* -id-dataForwardingAddressIndication ProcedureCode ::= 44 -*/ - -constexpr int64_t id_dataForwardingAddressIndication = 44; -/* -id-duplicationActivation ProtocolIE-ID ::= 315 -*/ - -constexpr int64_t id_duplicationActivation = 315; -/* -id-eARFCNExtension ProtocolIE-ID ::= 94 -*/ - -constexpr int64_t id_eARFCNExtension = 94; -/* -id-eNBConfigurationUpdate ProcedureCode ::= 8 -*/ - -constexpr int64_t id_eNBConfigurationUpdate = 8; -/* -id-eUTRANRCellResourceCoordination ProcedureCode ::= 41 -*/ - -constexpr int64_t id_eUTRANRCellResourceCoordination = 41; -/* -id-endcCellActivation ProcedureCode ::= 39 -*/ - -constexpr int64_t id_endcCellActivation = 39; -/* -id-endcConfigurationUpdate ProcedureCode ::= 37 -*/ - -constexpr int64_t id_endcConfigurationUpdate = 37; -/* -id-endcPartialReset ProcedureCode ::= 40 -*/ - -constexpr int64_t id_endcPartialReset = 40; -/* -id-endcX2Removal ProcedureCode ::= 43 -*/ - -constexpr int64_t id_endcX2Removal = 43; -/* -id-endcX2Setup ProcedureCode ::= 36 -*/ - -constexpr int64_t id_endcX2Setup = 36; -/* -id-enhancedRNTP ProtocolIE-ID ::= 148 -*/ - -constexpr int64_t id_enhancedRNTP = 148; -/* -id-errorIndication ProcedureCode ::= 3 -*/ - -constexpr int64_t id_errorIndication = 3; -/* -id-extended-e-RAB-GuaranteedBitrateDL ProtocolIE-ID ::= 198 -*/ - -constexpr int64_t id_extended_e_RAB_GuaranteedBitrateDL = 198; -/* -id-extended-e-RAB-GuaranteedBitrateUL ProtocolIE-ID ::= 199 -*/ - -constexpr int64_t id_extended_e_RAB_GuaranteedBitrateUL = 199; -/* -id-extended-e-RAB-MaximumBitrateDL ProtocolIE-ID ::= 196 -*/ - -constexpr int64_t id_extended_e_RAB_MaximumBitrateDL = 196; -/* -id-extended-e-RAB-MaximumBitrateUL ProtocolIE-ID ::= 197 -*/ - -constexpr int64_t id_extended_e_RAB_MaximumBitrateUL = 197; -/* -id-extended-uEaggregateMaximumBitRateDownlink ProtocolIE-ID ::= 200 -*/ - -constexpr int64_t id_extended_uEaggregateMaximumBitRateDownlink = 200; -/* -id-extended-uEaggregateMaximumBitRateUplink ProtocolIE-ID ::= 201 -*/ - -constexpr int64_t id_extended_uEaggregateMaximumBitRateUplink = 201; -/* -id-gNBStatusIndication ProcedureCode ::= 45 -*/ - -constexpr int64_t id_gNBStatusIndication = 45; -/* -id-handoverCancel ProcedureCode ::= 1 -*/ - -constexpr int64_t id_handoverCancel = 1; -/* -id-handoverPreparation ProcedureCode ::= 0 -*/ - -constexpr int64_t id_handoverPreparation = 0; -/* -id-handoverReport ProcedureCode ::= 14 -*/ - -constexpr int64_t id_handoverReport = 14; -/* -id-lCID ProtocolIE-ID ::= 314 -*/ - -constexpr int64_t id_lCID = 314; -/* -id-loadIndication ProcedureCode ::= 2 -*/ - -constexpr int64_t id_loadIndication = 2; -/* -id-meNBinitiatedSeNBModificationPreparation ProcedureCode ::= 21 -*/ - -constexpr int64_t id_meNBinitiatedSeNBModificationPreparation = 21; -/* -id-meNBinitiatedSeNBRelease ProcedureCode ::= 23 -*/ - -constexpr int64_t id_meNBinitiatedSeNBRelease = 23; -/* -id-meNBinitiatedSgNBModificationPreparation ProcedureCode ::= 29 -*/ - -constexpr int64_t id_meNBinitiatedSgNBModificationPreparation = 29; -/* -id-meNBinitiatedSgNBRelease ProcedureCode ::= 31 -*/ - -constexpr int64_t id_meNBinitiatedSgNBRelease = 31; -/* -id-mobilitySettingsChange ProcedureCode ::= 12 -*/ - -constexpr int64_t id_mobilitySettingsChange = 12; -/* -id-new-drb-ID-req ProtocolIE-ID ::= 325 -*/ - -constexpr int64_t id_new_drb_ID_req = 325; -/* -id-privateMessage ProcedureCode ::= 11 -*/ - -constexpr int64_t id_privateMessage = 11; -/* -id-rLFIndication ProcedureCode ::= 13 -*/ - -constexpr int64_t id_rLFIndication = 13; -/* -id-rRCTransfer ProcedureCode ::= 35 -*/ - -constexpr int64_t id_rRCTransfer = 35; -/* -id-reset ProcedureCode ::= 7 -*/ - -constexpr int64_t id_reset = 7; -/* -id-resourceStatusReporting ProcedureCode ::= 10 -*/ - -constexpr int64_t id_resourceStatusReporting = 10; -/* -id-resourceStatusReportingInitiation ProcedureCode ::= 9 -*/ - -constexpr int64_t id_resourceStatusReportingInitiation = 9; -/* -id-resumeID ProtocolIE-ID ::= 172 -*/ - -constexpr int64_t id_resumeID = 172; -/* -id-retrieveUEContext ProcedureCode ::= 26 -*/ - -constexpr int64_t id_retrieveUEContext = 26; -/* -id-seNBAdditionPreparation ProcedureCode ::= 19 -*/ - -constexpr int64_t id_seNBAdditionPreparation = 19; -/* -id-seNBCounterCheck ProcedureCode ::= 25 -*/ - -constexpr int64_t id_seNBCounterCheck = 25; -/* -id-seNBReconfigurationCompletion ProcedureCode ::= 20 -*/ - -constexpr int64_t id_seNBReconfigurationCompletion = 20; -/* -id-seNBinitiatedSeNBModification ProcedureCode ::= 22 -*/ - -constexpr int64_t id_seNBinitiatedSeNBModification = 22; -/* -id-seNBinitiatedSeNBRelease ProcedureCode ::= 24 -*/ - -constexpr int64_t id_seNBinitiatedSeNBRelease = 24; -/* -id-secondaryRATDataUsageReport ProcedureCode ::= 38 -*/ - -constexpr int64_t id_secondaryRATDataUsageReport = 38; -/* -id-secondarymeNBULGTPTEIDatPDCP ProtocolIE-ID ::= 313 -*/ - -constexpr int64_t id_secondarymeNBULGTPTEIDatPDCP = 313; -/* -id-secondarysgNBDLGTPTEIDatPDCP ProtocolIE-ID ::= 312 -*/ - -constexpr int64_t id_secondarysgNBDLGTPTEIDatPDCP = 312; -/* -id-serviceType ProtocolIE-ID ::= 276 -*/ - -constexpr int64_t id_serviceType = 276; -/* -id-sgNBAdditionPreparation ProcedureCode ::= 27 -*/ - -constexpr int64_t id_sgNBAdditionPreparation = 27; -/* -id-sgNBChange ProcedureCode ::= 34 -*/ - -constexpr int64_t id_sgNBChange = 34; -/* -id-sgNBCounterCheck ProcedureCode ::= 33 -*/ - -constexpr int64_t id_sgNBCounterCheck = 33; -/* -id-sgNBReconfigurationCompletion ProcedureCode ::= 28 -*/ - -constexpr int64_t id_sgNBReconfigurationCompletion = 28; -/* -id-sgNBinitiatedSgNBModification ProcedureCode ::= 30 -*/ - -constexpr int64_t id_sgNBinitiatedSgNBModification = 30; -/* -id-sgNBinitiatedSgNBRelease ProcedureCode ::= 32 -*/ - -constexpr int64_t id_sgNBinitiatedSgNBRelease = 32; -/* -id-snStatusTransfer ProcedureCode ::= 4 -*/ - -constexpr int64_t id_snStatusTransfer = 4; -/* -id-uEContextRelease ProcedureCode ::= 5 -*/ - -constexpr int64_t id_uEContextRelease = 5; -/* -id-uL-GTPtunnelEndpoint ProtocolIE-ID ::= 185 -*/ - -constexpr int64_t id_uL_GTPtunnelEndpoint = 185; -/* -id-uLpDCPSnLength ProtocolIE-ID ::= 302 -*/ - -constexpr int64_t id_uLpDCPSnLength = 302; -/* -id-x2APMessage ProtocolIE-ID ::= 102 -*/ - -constexpr int64_t id_x2APMessage = 102; -/* -id-x2APMessageTransfer ProcedureCode ::= 17 -*/ - -constexpr int64_t id_x2APMessageTransfer = 17; -/* -id-x2Release ProcedureCode ::= 16 -*/ - -constexpr int64_t id_x2Release = 16; -/* -id-x2Removal ProcedureCode ::= 18 -*/ - -constexpr int64_t id_x2Removal = 18; -/* -id-x2Setup ProcedureCode ::= 6 -*/ - -constexpr int64_t id_x2Setup = 6; -/* -maxCSIProcess INTEGER ::= 4 -*/ - -constexpr int64_t maxCSIProcess = 4; -/* -maxCSIReport INTEGER ::= 2 -*/ - -constexpr int64_t maxCSIReport = 2; -/* -maxCellReport INTEGER ::= 9 -*/ - -constexpr int64_t maxCellReport = 9; -/* -maxCellineNB INTEGER ::= 256 -*/ - -constexpr int64_t maxCellineNB = 256; -/* -maxCellinengNB INTEGER ::= 16384 -*/ - -constexpr int64_t maxCellinengNB = 16384; -/* -maxEARFCN INTEGER ::= 65535 -*/ - -constexpr int64_t maxEARFCN = 65535; -/* -maxEARFCNPlusOne INTEGER ::= 65536 -*/ - -constexpr int64_t maxEARFCNPlusOne = 65536; -/* -maxFailedMeasObjects INTEGER ::= 32 -*/ - -constexpr int64_t maxFailedMeasObjects = 32; -/* -maxInterfaces INTEGER ::= 16 -*/ - -constexpr int64_t maxInterfaces = 16; -/* -maxNrOfErrors INTEGER ::= 256 -*/ - -constexpr int64_t maxNrOfErrors = 256; -/* -maxPools INTEGER ::= 16 -*/ - -constexpr int64_t maxPools = 16; -/* -maxSubband INTEGER ::= 14 -*/ - -constexpr int64_t maxSubband = 14; -/* -maxUEReport INTEGER ::= 128 -*/ - -constexpr int64_t maxUEReport = 128; -/* -maxUEsinengNBDU INTEGER ::= 8192 -*/ - -constexpr int64_t maxUEsinengNBDU = 8192; -/* -maxnoNRcellsSpectrumSharingWithE-UTRA INTEGER ::= 64 -*/ - -constexpr int64_t maxnoNRcellsSpectrumSharingWithE_UTRA = 64; -/* -maxnoofBPLMNs INTEGER ::= 6 -*/ - -constexpr int64_t maxnoofBPLMNs = 6; -/* -maxnoofBands INTEGER ::= 16 -*/ - -constexpr int64_t maxnoofBands = 16; -/* -maxnoofBearers INTEGER ::= 256 -*/ - -constexpr int64_t maxnoofBearers = 256; -/* -maxnoofBluetoothName INTEGER ::= 4 -*/ - -constexpr int64_t maxnoofBluetoothName = 4; -/* -maxnoofCellIDforMDT INTEGER ::= 32 -*/ - -constexpr int64_t maxnoofCellIDforMDT = 32; -/* -maxnoofCellIDforQMC INTEGER ::= 32 -*/ - -constexpr int64_t maxnoofCellIDforQMC = 32; -/* -maxnoofCells INTEGER ::= 16 -*/ - -constexpr int64_t maxnoofCells = 16; -/* -maxnoofCoMPCells INTEGER ::= 32 -*/ - -constexpr int64_t maxnoofCoMPCells = 32; -/* -maxnoofCoMPHypothesisSet INTEGER ::= 256 -*/ - -constexpr int64_t maxnoofCoMPHypothesisSet = 256; -/* -maxnoofEPLMNs INTEGER ::= 15 -*/ - -constexpr int64_t maxnoofEPLMNs = 15; -/* -maxnoofEPLMNsPlusOne INTEGER ::= 16 -*/ - -constexpr int64_t maxnoofEPLMNsPlusOne = 16; -/* -maxnoofForbLACs INTEGER ::= 4096 -*/ - -constexpr int64_t maxnoofForbLACs = 4096; -/* -maxnoofForbTACs INTEGER ::= 4096 -*/ - -constexpr int64_t maxnoofForbTACs = 4096; -/* -maxnoofMBMSServiceAreaIdentities INTEGER ::= 256 -*/ - -constexpr int64_t maxnoofMBMSServiceAreaIdentities = 256; -/* -maxnoofMBSFN INTEGER ::= 8 -*/ - -constexpr int64_t maxnoofMBSFN = 8; -/* -maxnoofMDTPLMNs INTEGER ::= 16 -*/ - -constexpr int64_t maxnoofMDTPLMNs = 16; -/* -maxnoofNeighbours INTEGER ::= 512 -*/ - -constexpr int64_t maxnoofNeighbours = 512; -/* -maxnoofNrCellBands INTEGER ::= 32 -*/ - -constexpr int64_t maxnoofNrCellBands = 32; -/* -maxnoofPA INTEGER ::= 3 -*/ - -constexpr int64_t maxnoofPA = 3; -/* -maxnoofPDCP-SN INTEGER ::= 16 -*/ - -constexpr int64_t maxnoofPDCP_SN = 16; -/* -maxnoofPLMNforQMC INTEGER ::= 16 -*/ - -constexpr int64_t maxnoofPLMNforQMC = 16; -/* -maxnoofPRBs INTEGER ::= 110 -*/ - -constexpr int64_t maxnoofPRBs = 110; -/* -maxnoofProtectedResourcePatterns INTEGER ::= 16 -*/ - -constexpr int64_t maxnoofProtectedResourcePatterns = 16; -/* -maxnoofTAforMDT INTEGER ::= 8 -*/ - -constexpr int64_t maxnoofTAforMDT = 8; -/* -maxnoofTAforQMC INTEGER ::= 8 -*/ - -constexpr int64_t maxnoofTAforQMC = 8; -/* -maxnoofWLANName INTEGER ::= 4 -*/ - -constexpr int64_t maxnoofWLANName = 4; -/* -maxnooftimeperiods INTEGER ::= 2 -*/ - -constexpr int64_t maxnooftimeperiods = 2; -/* -maxofNRNeighbours INTEGER ::= 1024 -*/ - -constexpr int64_t maxofNRNeighbours = 1024; -/* -newmaxEARFCN INTEGER ::= 262143 -*/ - -constexpr int64_t newmaxEARFCN = 262143; diff --git a/e2sim/previous/src/ASN1/generated/X2AP-Containers.hpp b/e2sim/previous/src/ASN1/generated/X2AP-Containers.hpp deleted file mode 100644 index 09545bf..0000000 --- a/e2sim/previous/src/ASN1/generated/X2AP-Containers.hpp +++ /dev/null @@ -1,700 +0,0 @@ -/***************************************************************************** -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -#pragma once - -#include "asn/asn.hpp" -static_assert(ASN_API_VERSION_MAJOR == 5, "re-generate the ASN parser's code using 'make regen-asn' (do not use -j option)"); - -#include "X2AP-CommonDataTypes.hpp" - -/* -X2AP-PRIVATE-IES ::= CLASS { - &id PrivateIE-ID, - &criticality Criticality, - &Value, - &presence Presence -} -WITH SYNTAX { - ID &id - CRITICALITY &criticality - TYPE &Value - PRESENCE &presence -} -*/ - -struct X2AP_PRIVATE_IES -{ - struct id_t : PrivateIE_ID - { - static constexpr const char* name() {return "id_t";} - using parent_t = PrivateIE_ID; - - }; - struct criticality_t : Criticality - { - static constexpr const char* name() {return "criticality_t";} - using parent_t = Criticality; - - }; - struct presence_t : Presence - { - static constexpr const char* name() {return "presence_t";} - using parent_t = Presence; - - }; - -}; -/* -PrivateIE-Field {X2AP-PRIVATE-IES : IEsSetParam} ::= SEQUENCE { - id X2AP-PRIVATE-IES.&id ({IEsSetParam}), - criticality X2AP-PRIVATE-IES.&criticality ({IEsSetParam}{@id}), - value X2AP-PRIVATE-IES.&Value ({IEsSetParam}{@id}) -} -*/ - -template -struct PrivateIE_Field : asn::sequence<3, 0, false, 0> -{ - static constexpr const char* name() {return "PrivateIE-Field";} - using parent_t = asn::sequence<3, 0, false, 0>; - struct id_t : IEsSetParam::id_t - { - static constexpr const char* name() {return "id_t";} - using parent_t = typename IEsSetParam::id_t; - template bool decode(V& v, PrivateIE_Field const& c) - { - return IEsSetParam::id_t::decode(v); - }; - template bool encode(V& v, PrivateIE_Field const& c) const - { - return IEsSetParam::id_t::encode(v); - }; - }; - id_t& ref_id() {return id;} - id_t const& ref_id() const {return id;} - struct criticality_t : IEsSetParam::criticality_t - { - static constexpr const char* name() {return "criticality_t";} - using parent_t = typename IEsSetParam::criticality_t; - template bool decode(V& v, PrivateIE_Field const& c) - { - return IEsSetParam::criticality_t::decode(c.id.get_index(), v); - }; - template bool encode(V& v, PrivateIE_Field const& c) const - { - return IEsSetParam::criticality_t::encode(c.id.get_index(), v); - }; - }; - criticality_t& ref_criticality() {return criticality;} - criticality_t const& ref_criticality() const {return criticality;} - struct value_t : IEsSetParam::Value_t - { - static constexpr const char* name() {return "value_t";} - using parent_t = typename IEsSetParam::Value_t; - template bool decode(V& v, PrivateIE_Field const& c) - { - return IEsSetParam::Value_t::decode(c.id.get_index(), v); - }; - template bool encode(V& v, PrivateIE_Field const& c) const - { - return IEsSetParam::Value_t::encode(c.id.get_index(), v); - }; - }; - value_t& ref_value() {return value;} - value_t const& ref_value() const {return value;} - template void decode(V& v) - { - v(id); - v(criticality); - v(value); - - }; - template void encode(V& v) const - { - v(id); - v(criticality); - v(value); - - }; - void clear() - { - id.clear(); - criticality.clear(); - value.clear(); - - }; - private: - id_t id; - criticality_t criticality; - value_t value; - -}; -/* -PrivateIE-Container {X2AP-PRIVATE-IES : IEsSetParam} ::= - SEQUENCE (SIZE (1..maxPrivateIEs)) OF - PrivateIE-Field {{IEsSetParam}} -*/ - -template -struct PrivateIE_Container_elm : PrivateIE_Field -{ - static constexpr const char* name() {return "PrivateIE_Container_elm";} - using parent_t = PrivateIE_Field; - -}; -template -struct PrivateIE_Container : asn::sequenceof > -{ - static constexpr const char* name() {return "PrivateIE-Container";} - using parent_t = asn::sequenceof >; - using constraint_t = asn::constraints>; - -}; -/* -X2AP-PROTOCOL-EXTENSION ::= CLASS { - &id ProtocolIE-ID UNIQUE, - &criticality Criticality, - &Extension, - &presence Presence -} -WITH SYNTAX { - ID &id - CRITICALITY &criticality - EXTENSION &Extension - PRESENCE &presence -} -*/ - -struct X2AP_PROTOCOL_EXTENSION -{ - struct id_t : ProtocolIE_ID - { - static constexpr const char* name() {return "id_t";} - using parent_t = ProtocolIE_ID; - - }; - struct criticality_t : Criticality - { - static constexpr const char* name() {return "criticality_t";} - using parent_t = Criticality; - - }; - struct presence_t : Presence - { - static constexpr const char* name() {return "presence_t";} - using parent_t = Presence; - - }; - -}; -/* -ProtocolExtensionField {X2AP-PROTOCOL-EXTENSION : ExtensionSetParam} ::= SEQUENCE { - id X2AP-PROTOCOL-EXTENSION.&id ({ExtensionSetParam}), - criticality X2AP-PROTOCOL-EXTENSION.&criticality ({ExtensionSetParam}{@id}), - extensionValue X2AP-PROTOCOL-EXTENSION.&Extension ({ExtensionSetParam}{@id}) -} -*/ - -template -struct ProtocolExtensionField : asn::sequence<3, 0, false, 0> -{ - static constexpr const char* name() {return "ProtocolExtensionField";} - using parent_t = asn::sequence<3, 0, false, 0>; - struct id_t : ExtensionSetParam::id_t - { - static constexpr const char* name() {return "id_t";} - using parent_t = typename ExtensionSetParam::id_t; - template bool decode(V& v, ProtocolExtensionField const& c) - { - return ExtensionSetParam::id_t::decode(v); - }; - template bool encode(V& v, ProtocolExtensionField const& c) const - { - return ExtensionSetParam::id_t::encode(v); - }; - }; - id_t& ref_id() {return id;} - id_t const& ref_id() const {return id;} - struct criticality_t : ExtensionSetParam::criticality_t - { - static constexpr const char* name() {return "criticality_t";} - using parent_t = typename ExtensionSetParam::criticality_t; - template bool decode(V& v, ProtocolExtensionField const& c) - { - return ExtensionSetParam::criticality_t::decode(c.id.get_index(), v); - }; - template bool encode(V& v, ProtocolExtensionField const& c) const - { - return ExtensionSetParam::criticality_t::encode(c.id.get_index(), v); - }; - }; - criticality_t& ref_criticality() {return criticality;} - criticality_t const& ref_criticality() const {return criticality;} - struct extensionValue_t : ExtensionSetParam::Extension_t - { - static constexpr const char* name() {return "extensionValue_t";} - using parent_t = typename ExtensionSetParam::Extension_t; - template bool decode(V& v, ProtocolExtensionField const& c) - { - return ExtensionSetParam::Extension_t::decode(c.id.get_index(), v); - }; - template bool encode(V& v, ProtocolExtensionField const& c) const - { - return ExtensionSetParam::Extension_t::encode(c.id.get_index(), v); - }; - }; - extensionValue_t& ref_extensionValue() {return extensionValue;} - extensionValue_t const& ref_extensionValue() const {return extensionValue;} - template void decode(V& v) - { - v(id); - v(criticality); - v(extensionValue); - - }; - template void encode(V& v) const - { - v(id); - v(criticality); - v(extensionValue); - - }; - void clear() - { - id.clear(); - criticality.clear(); - extensionValue.clear(); - - }; - private: - id_t id; - criticality_t criticality; - extensionValue_t extensionValue; - -}; -/* -ProtocolExtensionContainer {X2AP-PROTOCOL-EXTENSION : ExtensionSetParam} ::= - SEQUENCE (SIZE (1..maxProtocolExtensions)) OF - ProtocolExtensionField {{ExtensionSetParam}} -*/ - -template -struct ProtocolExtensionContainer_elm : ProtocolExtensionField -{ - static constexpr const char* name() {return "ProtocolExtensionContainer_elm";} - using parent_t = ProtocolExtensionField; - -}; -template -struct ProtocolExtensionContainer : asn::sequenceof > -{ - static constexpr const char* name() {return "ProtocolExtensionContainer";} - using parent_t = asn::sequenceof >; - using constraint_t = asn::constraints>; - -}; -/* -X2AP-PROTOCOL-IES ::= CLASS { - &id ProtocolIE-ID UNIQUE, - &criticality Criticality, - &Value, - &presence Presence -} -WITH SYNTAX { - ID &id - CRITICALITY &criticality - TYPE &Value - PRESENCE &presence -} -*/ - -struct X2AP_PROTOCOL_IES -{ - struct id_t : ProtocolIE_ID - { - static constexpr const char* name() {return "id_t";} - using parent_t = ProtocolIE_ID; - - }; - struct criticality_t : Criticality - { - static constexpr const char* name() {return "criticality_t";} - using parent_t = Criticality; - - }; - struct presence_t : Presence - { - static constexpr const char* name() {return "presence_t";} - using parent_t = Presence; - - }; - -}; -/* -ProtocolIE-Field {X2AP-PROTOCOL-IES : IEsSetParam} ::= SEQUENCE { - id X2AP-PROTOCOL-IES.&id ({IEsSetParam}), - criticality X2AP-PROTOCOL-IES.&criticality ({IEsSetParam}{@id}), - value X2AP-PROTOCOL-IES.&Value ({IEsSetParam}{@id}) -} -*/ - -template -struct ProtocolIE_Field : asn::sequence<3, 0, false, 0> -{ - static constexpr const char* name() {return "ProtocolIE-Field";} - using parent_t = asn::sequence<3, 0, false, 0>; - struct id_t : IEsSetParam::id_t - { - static constexpr const char* name() {return "id_t";} - using parent_t = typename IEsSetParam::id_t; - template bool decode(V& v, ProtocolIE_Field const& c) - { - return IEsSetParam::id_t::decode(v); - }; - template bool encode(V& v, ProtocolIE_Field const& c) const - { - return IEsSetParam::id_t::encode(v); - }; - }; - id_t& ref_id() {return id;} - id_t const& ref_id() const {return id;} - struct criticality_t : IEsSetParam::criticality_t - { - static constexpr const char* name() {return "criticality_t";} - using parent_t = typename IEsSetParam::criticality_t; - template bool decode(V& v, ProtocolIE_Field const& c) - { - return IEsSetParam::criticality_t::decode(c.id.get_index(), v); - }; - template bool encode(V& v, ProtocolIE_Field const& c) const - { - return IEsSetParam::criticality_t::encode(c.id.get_index(), v); - }; - }; - criticality_t& ref_criticality() {return criticality;} - criticality_t const& ref_criticality() const {return criticality;} - struct value_t : IEsSetParam::Value_t - { - static constexpr const char* name() {return "value_t";} - using parent_t = typename IEsSetParam::Value_t; - template bool decode(V& v, ProtocolIE_Field const& c) - { - return IEsSetParam::Value_t::decode(c.id.get_index(), v); - }; - template bool encode(V& v, ProtocolIE_Field const& c) const - { - return IEsSetParam::Value_t::encode(c.id.get_index(), v); - }; - }; - value_t& ref_value() {return value;} - value_t const& ref_value() const {return value;} - template void decode(V& v) - { - v(id); - v(criticality); - v(value); - - }; - template void encode(V& v) const - { - v(id); - v(criticality); - v(value); - - }; - void clear() - { - id.clear(); - criticality.clear(); - value.clear(); - - }; - private: - id_t id; - criticality_t criticality; - value_t value; - -}; -/* -ProtocolIE-Container {X2AP-PROTOCOL-IES : IEsSetParam} ::= - SEQUENCE (SIZE (0..maxProtocolIEs)) OF - ProtocolIE-Field {{IEsSetParam}} -*/ - -template -struct ProtocolIE_Container_elm : ProtocolIE_Field -{ - static constexpr const char* name() {return "ProtocolIE_Container_elm";} - using parent_t = ProtocolIE_Field; - -}; -template -struct ProtocolIE_Container : asn::sequenceof > -{ - static constexpr const char* name() {return "ProtocolIE-Container";} - using parent_t = asn::sequenceof >; - using constraint_t = asn::constraints>; - -}; -/* -ProtocolIE-ContainerList {INTEGER : lowerBound, INTEGER : upperBound, X2AP-PROTOCOL-IES : IEsSetParam} ::= - SEQUENCE (SIZE (lowerBound..upperBound)) OF - ProtocolIE-Container {{IEsSetParam}} -*/ - -template -struct ProtocolIE_ContainerList_elm : ProtocolIE_Container -{ - static constexpr const char* name() {return "ProtocolIE_ContainerList_elm";} - using parent_t = ProtocolIE_Container; - -}; -template -struct ProtocolIE_ContainerList : asn::sequenceof > -{ - static constexpr const char* name() {return "ProtocolIE-ContainerList";} - using parent_t = asn::sequenceof >; - using constraint_t = asn::constraints>; - -}; -/* -X2AP-PROTOCOL-IES-PAIR ::= CLASS { - &id ProtocolIE-ID UNIQUE, - &firstCriticality Criticality, - &FirstValue, - &secondCriticality Criticality, - &SecondValue, - &presence Presence -} -WITH SYNTAX { - ID &id - FIRST CRITICALITY &firstCriticality - FIRST TYPE &FirstValue - SECOND CRITICALITY &secondCriticality - SECOND TYPE &SecondValue - PRESENCE &presence -} -*/ - -struct X2AP_PROTOCOL_IES_PAIR -{ - struct id_t : ProtocolIE_ID - { - static constexpr const char* name() {return "id_t";} - using parent_t = ProtocolIE_ID; - - }; - struct firstCriticality_t : Criticality - { - static constexpr const char* name() {return "firstCriticality_t";} - using parent_t = Criticality; - - }; - struct secondCriticality_t : Criticality - { - static constexpr const char* name() {return "secondCriticality_t";} - using parent_t = Criticality; - - }; - struct presence_t : Presence - { - static constexpr const char* name() {return "presence_t";} - using parent_t = Presence; - - }; - -}; -/* -ProtocolIE-FieldPair {X2AP-PROTOCOL-IES-PAIR : IEsSetParam} ::= SEQUENCE { - id X2AP-PROTOCOL-IES-PAIR.&id ({IEsSetParam}), - firstCriticality X2AP-PROTOCOL-IES-PAIR.&firstCriticality ({IEsSetParam}{@id}), - firstValue X2AP-PROTOCOL-IES-PAIR.&FirstValue ({IEsSetParam}{@id}), - secondCriticality X2AP-PROTOCOL-IES-PAIR.&secondCriticality ({IEsSetParam}{@id}), - secondValue X2AP-PROTOCOL-IES-PAIR.&SecondValue ({IEsSetParam}{@id}) -} -*/ - -template -struct ProtocolIE_FieldPair : asn::sequence<5, 0, false, 0> -{ - static constexpr const char* name() {return "ProtocolIE-FieldPair";} - using parent_t = asn::sequence<5, 0, false, 0>; - struct id_t : IEsSetParam::id_t - { - static constexpr const char* name() {return "id_t";} - using parent_t = typename IEsSetParam::id_t; - template bool decode(V& v, ProtocolIE_FieldPair const& c) - { - return IEsSetParam::id_t::decode(v); - }; - template bool encode(V& v, ProtocolIE_FieldPair const& c) const - { - return IEsSetParam::id_t::encode(v); - }; - }; - id_t& ref_id() {return id;} - id_t const& ref_id() const {return id;} - struct firstCriticality_t : IEsSetParam::firstCriticality_t - { - static constexpr const char* name() {return "firstCriticality_t";} - using parent_t = typename IEsSetParam::firstCriticality_t; - template bool decode(V& v, ProtocolIE_FieldPair const& c) - { - return IEsSetParam::firstCriticality_t::decode(c.id.get_index(), v); - }; - template bool encode(V& v, ProtocolIE_FieldPair const& c) const - { - return IEsSetParam::firstCriticality_t::encode(c.id.get_index(), v); - }; - }; - firstCriticality_t& ref_firstCriticality() {return firstCriticality;} - firstCriticality_t const& ref_firstCriticality() const {return firstCriticality;} - struct firstValue_t : IEsSetParam::FirstValue_t - { - static constexpr const char* name() {return "firstValue_t";} - using parent_t = typename IEsSetParam::FirstValue_t; - template bool decode(V& v, ProtocolIE_FieldPair const& c) - { - return IEsSetParam::FirstValue_t::decode(c.id.get_index(), v); - }; - template bool encode(V& v, ProtocolIE_FieldPair const& c) const - { - return IEsSetParam::FirstValue_t::encode(c.id.get_index(), v); - }; - }; - firstValue_t& ref_firstValue() {return firstValue;} - firstValue_t const& ref_firstValue() const {return firstValue;} - struct secondCriticality_t : IEsSetParam::secondCriticality_t - { - static constexpr const char* name() {return "secondCriticality_t";} - using parent_t = typename IEsSetParam::secondCriticality_t; - template bool decode(V& v, ProtocolIE_FieldPair const& c) - { - return IEsSetParam::secondCriticality_t::decode(c.id.get_index(), v); - }; - template bool encode(V& v, ProtocolIE_FieldPair const& c) const - { - return IEsSetParam::secondCriticality_t::encode(c.id.get_index(), v); - }; - }; - secondCriticality_t& ref_secondCriticality() {return secondCriticality;} - secondCriticality_t const& ref_secondCriticality() const {return secondCriticality;} - struct secondValue_t : IEsSetParam::SecondValue_t - { - static constexpr const char* name() {return "secondValue_t";} - using parent_t = typename IEsSetParam::SecondValue_t; - template bool decode(V& v, ProtocolIE_FieldPair const& c) - { - return IEsSetParam::SecondValue_t::decode(c.id.get_index(), v); - }; - template bool encode(V& v, ProtocolIE_FieldPair const& c) const - { - return IEsSetParam::SecondValue_t::encode(c.id.get_index(), v); - }; - }; - secondValue_t& ref_secondValue() {return secondValue;} - secondValue_t const& ref_secondValue() const {return secondValue;} - template void decode(V& v) - { - v(id); - v(firstCriticality); - v(firstValue); - v(secondCriticality); - v(secondValue); - - }; - template void encode(V& v) const - { - v(id); - v(firstCriticality); - v(firstValue); - v(secondCriticality); - v(secondValue); - - }; - void clear() - { - id.clear(); - firstCriticality.clear(); - firstValue.clear(); - secondCriticality.clear(); - secondValue.clear(); - - }; - private: - id_t id; - firstCriticality_t firstCriticality; - firstValue_t firstValue; - secondCriticality_t secondCriticality; - secondValue_t secondValue; - -}; -/* -ProtocolIE-ContainerPair {X2AP-PROTOCOL-IES-PAIR : IEsSetParam} ::= - SEQUENCE (SIZE (0..maxProtocolIEs)) OF - ProtocolIE-FieldPair {{IEsSetParam}} -*/ - -template -struct ProtocolIE_ContainerPair_elm : ProtocolIE_FieldPair -{ - static constexpr const char* name() {return "ProtocolIE_ContainerPair_elm";} - using parent_t = ProtocolIE_FieldPair; - -}; -template -struct ProtocolIE_ContainerPair : asn::sequenceof > -{ - static constexpr const char* name() {return "ProtocolIE-ContainerPair";} - using parent_t = asn::sequenceof >; - using constraint_t = asn::constraints>; - -}; -/* -ProtocolIE-ContainerPairList {INTEGER : lowerBound, INTEGER : upperBound, X2AP-PROTOCOL-IES-PAIR : IEsSetParam} ::= - SEQUENCE (SIZE (lowerBound..upperBound)) OF - ProtocolIE-ContainerPair {{IEsSetParam}} -*/ - -template -struct ProtocolIE_ContainerPairList_elm : ProtocolIE_ContainerPair -{ - static constexpr const char* name() {return "ProtocolIE_ContainerPairList_elm";} - using parent_t = ProtocolIE_ContainerPair; - -}; -template -struct ProtocolIE_ContainerPairList : asn::sequenceof > -{ - static constexpr const char* name() {return "ProtocolIE-ContainerPairList";} - using parent_t = asn::sequenceof >; - using constraint_t = asn::constraints>; - -}; -/* -ProtocolIE-Single-Container {X2AP-PROTOCOL-IES : IEsSetParam} ::= - ProtocolIE-Field {{IEsSetParam}} -*/ - -template -struct ProtocolIE_Single_Container : ProtocolIE_Field -{ - static constexpr const char* name() {return "ProtocolIE-Single-Container";} - using parent_t = ProtocolIE_Field; - -}; diff --git a/e2sim/previous/src/ASN1/generated/X2AP-IEs.hpp b/e2sim/previous/src/ASN1/generated/X2AP-IEs.hpp deleted file mode 100644 index f056563..0000000 --- a/e2sim/previous/src/ASN1/generated/X2AP-IEs.hpp +++ /dev/null @@ -1,35962 +0,0 @@ -/***************************************************************************** -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -#pragma once - -#include "asn/asn.hpp" -static_assert(ASN_API_VERSION_MAJOR == 5, "re-generate the ASN parser's code using 'make regen-asn' (do not use -j option)"); - -#include "X2AP-Constants.hpp" -#include "X2AP-CommonDataTypes.hpp" -#include "X2AP-Containers.hpp" - -/* -DL-ABS-status::= INTEGER (0..100) -*/ - -struct DL_ABS_status : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "DL-ABS-status";} - using parent_t = asn::integer<>; - -}; - -/* -UsableABSInformationFDD-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct UsableABSInformationFDD_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -UsableABSInformationFDD ::= SEQUENCE { - usable-abs-pattern-info BIT STRING (SIZE(40)), - iE-Extensions ProtocolExtensionContainer { {UsableABSInformationFDD-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct UsableABSInformationFDD : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "UsableABSInformationFDD";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct usable_abs_pattern_info_t : asn::bstring<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "usable_abs_pattern_info_t";} - using parent_t = asn::bstring<>; - - }; - - usable_abs_pattern_info_t& ref_usable_abs_pattern_info() {return usable_abs_pattern_info;} - usable_abs_pattern_info_t const& ref_usable_abs_pattern_info() const {return usable_abs_pattern_info;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(usable_abs_pattern_info); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(usable_abs_pattern_info); - v(iE_Extensions); - - }; - void clear() - { - usable_abs_pattern_info.clear(); - iE_Extensions.clear(); - - }; - private: - usable_abs_pattern_info_t usable_abs_pattern_info; - iE_Extensions_t iE_Extensions; - -}; -/* -UsableABSInformationTDD-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct UsableABSInformationTDD_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -UsableABSInformationTDD ::= SEQUENCE { - usaable-abs-pattern-info BIT STRING (SIZE(1..70, ...)), - iE-Extensions ProtocolExtensionContainer { {UsableABSInformationTDD-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct UsableABSInformationTDD : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "UsableABSInformationTDD";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct usaable_abs_pattern_info_t : asn::bstring<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "usaable_abs_pattern_info_t";} - using parent_t = asn::bstring<>; - - }; - - usaable_abs_pattern_info_t& ref_usaable_abs_pattern_info() {return usaable_abs_pattern_info;} - usaable_abs_pattern_info_t const& ref_usaable_abs_pattern_info() const {return usaable_abs_pattern_info;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(usaable_abs_pattern_info); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(usaable_abs_pattern_info); - v(iE_Extensions); - - }; - void clear() - { - usaable_abs_pattern_info.clear(); - iE_Extensions.clear(); - - }; - private: - usaable_abs_pattern_info_t usaable_abs_pattern_info; - iE_Extensions_t iE_Extensions; - -}; -/* -UsableABSInformation ::= CHOICE { - fdd UsableABSInformationFDD, - tdd UsableABSInformationTDD, - ... -} -*/ - -struct UsableABSInformation : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "UsableABSInformation";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~UsableABSInformation() {clear();} - struct fdd_t : UsableABSInformationFDD - { - static constexpr const char* name() {return "fdd_t";} - using parent_t = UsableABSInformationFDD; - - }; - struct tdd_t : UsableABSInformationTDD - { - static constexpr const char* name() {return "tdd_t";} - using parent_t = UsableABSInformationTDD; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - fdd_t& select_fdd() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - fdd_t const* get_fdd() const { if(get_index() == 1) { return &var.as();} return nullptr; } - tdd_t& select_tdd() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - tdd_t const* get_tdd() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(fdd_t)]; - char dummy2[sizeof(tdd_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -ABS-Status-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct ABS_Status_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ABS-Status ::= SEQUENCE { - dL-ABS-status DL-ABS-status, - usableABSInformation UsableABSInformation, - iE-Extensions ProtocolExtensionContainer { {ABS-Status-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct ABS_Status : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "ABS-Status";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct dL_ABS_status_t : DL_ABS_status - { - static constexpr const char* name() {return "dL_ABS_status_t";} - using parent_t = DL_ABS_status; - - }; - dL_ABS_status_t& ref_dL_ABS_status() {return dL_ABS_status;} - dL_ABS_status_t const& ref_dL_ABS_status() const {return dL_ABS_status;} - struct usableABSInformation_t : UsableABSInformation - { - static constexpr const char* name() {return "usableABSInformation_t";} - using parent_t = UsableABSInformation; - - }; - usableABSInformation_t& ref_usableABSInformation() {return usableABSInformation;} - usableABSInformation_t const& ref_usableABSInformation() const {return usableABSInformation;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(dL_ABS_status); - v(usableABSInformation); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(dL_ABS_status); - v(usableABSInformation); - v(iE_Extensions); - - }; - void clear() - { - dL_ABS_status.clear(); - usableABSInformation.clear(); - iE_Extensions.clear(); - - }; - private: - dL_ABS_status_t dL_ABS_status; - usableABSInformation_t usableABSInformation; - iE_Extensions_t iE_Extensions; - -}; -/* -ABSInformationFDD-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct ABSInformationFDD_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ABSInformationFDD ::= SEQUENCE { - abs-pattern-info BIT STRING (SIZE(40)), - numberOfCellSpecificAntennaPorts ENUMERATED {one, two, four, ...}, - measurement-subset BIT STRING (SIZE(40)), - iE-Extensions ProtocolExtensionContainer { {ABSInformationFDD-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct ABSInformationFDD : asn::sequence<4, 0, true, 1> -{ - static constexpr const char* name() {return "ABSInformationFDD";} - using parent_t = asn::sequence<4, 0, true, 1>; - struct abs_pattern_info_t : asn::bstring<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "abs_pattern_info_t";} - using parent_t = asn::bstring<>; - - }; - - abs_pattern_info_t& ref_abs_pattern_info() {return abs_pattern_info;} - abs_pattern_info_t const& ref_abs_pattern_info() const {return abs_pattern_info;} - struct numberOfCellSpecificAntennaPorts_t : asn::enumerated<3, 0, true> - { - static constexpr const char* name() {return "numberOfCellSpecificAntennaPorts_t";} - using parent_t = asn::enumerated<3, 0, true>; - typedef enum { - one - ,two - ,four - } index_t; - - }; - - numberOfCellSpecificAntennaPorts_t& ref_numberOfCellSpecificAntennaPorts() {return numberOfCellSpecificAntennaPorts;} - numberOfCellSpecificAntennaPorts_t const& ref_numberOfCellSpecificAntennaPorts() const {return numberOfCellSpecificAntennaPorts;} - struct measurement_subset_t : asn::bstring<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "measurement_subset_t";} - using parent_t = asn::bstring<>; - - }; - - measurement_subset_t& ref_measurement_subset() {return measurement_subset;} - measurement_subset_t const& ref_measurement_subset() const {return measurement_subset;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(abs_pattern_info); - v(numberOfCellSpecificAntennaPorts); - v(measurement_subset); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(abs_pattern_info); - v(numberOfCellSpecificAntennaPorts); - v(measurement_subset); - v(iE_Extensions); - - }; - void clear() - { - abs_pattern_info.clear(); - numberOfCellSpecificAntennaPorts.clear(); - measurement_subset.clear(); - iE_Extensions.clear(); - - }; - private: - abs_pattern_info_t abs_pattern_info; - numberOfCellSpecificAntennaPorts_t numberOfCellSpecificAntennaPorts; - measurement_subset_t measurement_subset; - iE_Extensions_t iE_Extensions; - -}; -/* -ABSInformationTDD-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct ABSInformationTDD_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ABSInformationTDD ::= SEQUENCE { - abs-pattern-info BIT STRING (SIZE(1..70, ...)), - numberOfCellSpecificAntennaPorts ENUMERATED {one, two, four, ...}, - measurement-subset BIT STRING (SIZE(1..70, ...)), - iE-Extensions ProtocolExtensionContainer { {ABSInformationTDD-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct ABSInformationTDD : asn::sequence<4, 0, true, 1> -{ - static constexpr const char* name() {return "ABSInformationTDD";} - using parent_t = asn::sequence<4, 0, true, 1>; - struct abs_pattern_info_t : asn::bstring<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "abs_pattern_info_t";} - using parent_t = asn::bstring<>; - - }; - - abs_pattern_info_t& ref_abs_pattern_info() {return abs_pattern_info;} - abs_pattern_info_t const& ref_abs_pattern_info() const {return abs_pattern_info;} - struct numberOfCellSpecificAntennaPorts_t : asn::enumerated<3, 0, true> - { - static constexpr const char* name() {return "numberOfCellSpecificAntennaPorts_t";} - using parent_t = asn::enumerated<3, 0, true>; - typedef enum { - one - ,two - ,four - } index_t; - - }; - - numberOfCellSpecificAntennaPorts_t& ref_numberOfCellSpecificAntennaPorts() {return numberOfCellSpecificAntennaPorts;} - numberOfCellSpecificAntennaPorts_t const& ref_numberOfCellSpecificAntennaPorts() const {return numberOfCellSpecificAntennaPorts;} - struct measurement_subset_t : asn::bstring<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "measurement_subset_t";} - using parent_t = asn::bstring<>; - - }; - - measurement_subset_t& ref_measurement_subset() {return measurement_subset;} - measurement_subset_t const& ref_measurement_subset() const {return measurement_subset;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(abs_pattern_info); - v(numberOfCellSpecificAntennaPorts); - v(measurement_subset); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(abs_pattern_info); - v(numberOfCellSpecificAntennaPorts); - v(measurement_subset); - v(iE_Extensions); - - }; - void clear() - { - abs_pattern_info.clear(); - numberOfCellSpecificAntennaPorts.clear(); - measurement_subset.clear(); - iE_Extensions.clear(); - - }; - private: - abs_pattern_info_t abs_pattern_info; - numberOfCellSpecificAntennaPorts_t numberOfCellSpecificAntennaPorts; - measurement_subset_t measurement_subset; - iE_Extensions_t iE_Extensions; - -}; -/* -ABSInformation ::= CHOICE { - fdd ABSInformationFDD, - tdd ABSInformationTDD, - abs-inactive NULL, - ... -} -*/ - -struct ABSInformation : asn::choice<3, 0, true> -{ - static constexpr const char* name() {return "ABSInformation";} - using parent_t = asn::choice<3, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 4;} - void set_unknown() { set_index(4); } - ~ABSInformation() {clear();} - struct fdd_t : ABSInformationFDD - { - static constexpr const char* name() {return "fdd_t";} - using parent_t = ABSInformationFDD; - - }; - struct tdd_t : ABSInformationTDD - { - static constexpr const char* name() {return "tdd_t";} - using parent_t = ABSInformationTDD; - - }; - struct abs_inactive_t : asn::nulltype - { - static constexpr const char* name() {return "abs_inactive_t";} - using parent_t = asn::nulltype; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - case 3: set_index(3); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - case 3: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - - } - fdd_t& select_fdd() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - fdd_t const* get_fdd() const { if(get_index() == 1) { return &var.as();} return nullptr; } - tdd_t& select_tdd() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - tdd_t const* get_tdd() const { if(get_index() == 2) { return &var.as();} return nullptr; } - abs_inactive_t& select_abs_inactive() { if(get_index() != 3) { clear(); set_index(3); return var.build();} return var.as();} - abs_inactive_t const* get_abs_inactive() const { if(get_index() == 3) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(fdd_t)]; - char dummy2[sizeof(tdd_t)]; - char dummy3[sizeof(abs_inactive_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -Key-eNodeB-Star ::= BIT STRING (SIZE(256)) -*/ - -struct Key_eNodeB_Star : asn::bstring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "Key-eNodeB-Star";} - using parent_t = asn::bstring<>; - -}; - -/* -NextHopChainingCount ::= INTEGER (0..7) -*/ - -struct NextHopChainingCount : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "NextHopChainingCount";} - using parent_t = asn::integer<>; - -}; - -/* -AS-SecurityInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct AS_SecurityInformation_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -AS-SecurityInformation ::= SEQUENCE { - key-eNodeB-star Key-eNodeB-Star, - nextHopChainingCount NextHopChainingCount, - iE-Extensions ProtocolExtensionContainer { {AS-SecurityInformation-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct AS_SecurityInformation : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "AS-SecurityInformation";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct key_eNodeB_star_t : Key_eNodeB_Star - { - static constexpr const char* name() {return "key_eNodeB_star_t";} - using parent_t = Key_eNodeB_Star; - - }; - key_eNodeB_star_t& ref_key_eNodeB_star() {return key_eNodeB_star;} - key_eNodeB_star_t const& ref_key_eNodeB_star() const {return key_eNodeB_star;} - struct nextHopChainingCount_t : NextHopChainingCount - { - static constexpr const char* name() {return "nextHopChainingCount_t";} - using parent_t = NextHopChainingCount; - - }; - nextHopChainingCount_t& ref_nextHopChainingCount() {return nextHopChainingCount;} - nextHopChainingCount_t const& ref_nextHopChainingCount() const {return nextHopChainingCount;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(key_eNodeB_star); - v(nextHopChainingCount); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(key_eNodeB_star); - v(nextHopChainingCount); - v(iE_Extensions); - - }; - void clear() - { - key_eNodeB_star.clear(); - nextHopChainingCount.clear(); - iE_Extensions.clear(); - - }; - private: - key_eNodeB_star_t key_eNodeB_star; - nextHopChainingCount_t nextHopChainingCount; - iE_Extensions_t iE_Extensions; - -}; -/* -ActivationID ::= INTEGER (0..255) -*/ - -struct ActivationID : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "ActivationID";} - using parent_t = asn::integer<>; - -}; - -/* -AdditionalSpecialSubframePatterns ::= ENUMERATED { - ssp0, - ssp1, - ssp2, - ssp3, - ssp4, - ssp5, - ssp6, - ssp7, - ssp8, - ssp9, - ... -} -*/ - -struct AdditionalSpecialSubframePatterns : asn::enumerated<10, 0, true> -{ - static constexpr const char* name() {return "AdditionalSpecialSubframePatterns";} - using parent_t = asn::enumerated<10, 0, true>; - typedef enum { - ssp0 - ,ssp1 - ,ssp2 - ,ssp3 - ,ssp4 - ,ssp5 - ,ssp6 - ,ssp7 - ,ssp8 - ,ssp9 - } index_t; - -}; - -/* -CyclicPrefixDL ::= ENUMERATED { - normal, - extended, - ... -} -*/ - -struct CyclicPrefixDL : asn::enumerated<2, 0, true> -{ - static constexpr const char* name() {return "CyclicPrefixDL";} - using parent_t = asn::enumerated<2, 0, true>; - typedef enum { - normal - ,extended - } index_t; - -}; - -/* -CyclicPrefixUL ::= ENUMERATED { - normal, - extended, - ... -} -*/ - -struct CyclicPrefixUL : asn::enumerated<2, 0, true> -{ - static constexpr const char* name() {return "CyclicPrefixUL";} - using parent_t = asn::enumerated<2, 0, true>; - typedef enum { - normal - ,extended - } index_t; - -}; - -/* -AdditionalSpecialSubframe-Info-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct AdditionalSpecialSubframe_Info_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -AdditionalSpecialSubframe-Info ::= SEQUENCE { - additionalspecialSubframePatterns AdditionalSpecialSubframePatterns, - cyclicPrefixDL CyclicPrefixDL, - cyclicPrefixUL CyclicPrefixUL, - iE-Extensions ProtocolExtensionContainer { {AdditionalSpecialSubframe-Info-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct AdditionalSpecialSubframe_Info : asn::sequence<4, 0, true, 1> -{ - static constexpr const char* name() {return "AdditionalSpecialSubframe-Info";} - using parent_t = asn::sequence<4, 0, true, 1>; - struct additionalspecialSubframePatterns_t : AdditionalSpecialSubframePatterns - { - static constexpr const char* name() {return "additionalspecialSubframePatterns_t";} - using parent_t = AdditionalSpecialSubframePatterns; - - }; - additionalspecialSubframePatterns_t& ref_additionalspecialSubframePatterns() {return additionalspecialSubframePatterns;} - additionalspecialSubframePatterns_t const& ref_additionalspecialSubframePatterns() const {return additionalspecialSubframePatterns;} - struct cyclicPrefixDL_t : CyclicPrefixDL - { - static constexpr const char* name() {return "cyclicPrefixDL_t";} - using parent_t = CyclicPrefixDL; - - }; - cyclicPrefixDL_t& ref_cyclicPrefixDL() {return cyclicPrefixDL;} - cyclicPrefixDL_t const& ref_cyclicPrefixDL() const {return cyclicPrefixDL;} - struct cyclicPrefixUL_t : CyclicPrefixUL - { - static constexpr const char* name() {return "cyclicPrefixUL_t";} - using parent_t = CyclicPrefixUL; - - }; - cyclicPrefixUL_t& ref_cyclicPrefixUL() {return cyclicPrefixUL;} - cyclicPrefixUL_t const& ref_cyclicPrefixUL() const {return cyclicPrefixUL;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(additionalspecialSubframePatterns); - v(cyclicPrefixDL); - v(cyclicPrefixUL); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(additionalspecialSubframePatterns); - v(cyclicPrefixDL); - v(cyclicPrefixUL); - v(iE_Extensions); - - }; - void clear() - { - additionalspecialSubframePatterns.clear(); - cyclicPrefixDL.clear(); - cyclicPrefixUL.clear(); - iE_Extensions.clear(); - - }; - private: - additionalspecialSubframePatterns_t additionalspecialSubframePatterns; - cyclicPrefixDL_t cyclicPrefixDL; - cyclicPrefixUL_t cyclicPrefixUL; - iE_Extensions_t iE_Extensions; - -}; -/* -AdditionalSpecialSubframePatternsExtension ::= ENUMERATED { - ssp10, - ... -} -*/ - -struct AdditionalSpecialSubframePatternsExtension : asn::enumerated<1, 0, true> -{ - static constexpr const char* name() {return "AdditionalSpecialSubframePatternsExtension";} - using parent_t = asn::enumerated<1, 0, true>; - typedef enum { - ssp10 - } index_t; - -}; - -/* -AdditionalSpecialSubframeExtension-Info-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct AdditionalSpecialSubframeExtension_Info_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -AdditionalSpecialSubframeExtension-Info ::= SEQUENCE { - additionalspecialSubframePatternsExtension AdditionalSpecialSubframePatternsExtension, - cyclicPrefixDL CyclicPrefixDL, - cyclicPrefixUL CyclicPrefixUL, - iE-Extensions ProtocolExtensionContainer { {AdditionalSpecialSubframeExtension-Info-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct AdditionalSpecialSubframeExtension_Info : asn::sequence<4, 0, true, 1> -{ - static constexpr const char* name() {return "AdditionalSpecialSubframeExtension-Info";} - using parent_t = asn::sequence<4, 0, true, 1>; - struct additionalspecialSubframePatternsExtension_t : AdditionalSpecialSubframePatternsExtension - { - static constexpr const char* name() {return "additionalspecialSubframePatternsExtension_t";} - using parent_t = AdditionalSpecialSubframePatternsExtension; - - }; - additionalspecialSubframePatternsExtension_t& ref_additionalspecialSubframePatternsExtension() {return additionalspecialSubframePatternsExtension;} - additionalspecialSubframePatternsExtension_t const& ref_additionalspecialSubframePatternsExtension() const {return additionalspecialSubframePatternsExtension;} - struct cyclicPrefixDL_t : CyclicPrefixDL - { - static constexpr const char* name() {return "cyclicPrefixDL_t";} - using parent_t = CyclicPrefixDL; - - }; - cyclicPrefixDL_t& ref_cyclicPrefixDL() {return cyclicPrefixDL;} - cyclicPrefixDL_t const& ref_cyclicPrefixDL() const {return cyclicPrefixDL;} - struct cyclicPrefixUL_t : CyclicPrefixUL - { - static constexpr const char* name() {return "cyclicPrefixUL_t";} - using parent_t = CyclicPrefixUL; - - }; - cyclicPrefixUL_t& ref_cyclicPrefixUL() {return cyclicPrefixUL;} - cyclicPrefixUL_t const& ref_cyclicPrefixUL() const {return cyclicPrefixUL;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(additionalspecialSubframePatternsExtension); - v(cyclicPrefixDL); - v(cyclicPrefixUL); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(additionalspecialSubframePatternsExtension); - v(cyclicPrefixDL); - v(cyclicPrefixUL); - v(iE_Extensions); - - }; - void clear() - { - additionalspecialSubframePatternsExtension.clear(); - cyclicPrefixDL.clear(); - cyclicPrefixUL.clear(); - iE_Extensions.clear(); - - }; - private: - additionalspecialSubframePatternsExtension_t additionalspecialSubframePatternsExtension; - cyclicPrefixDL_t cyclicPrefixDL; - cyclicPrefixUL_t cyclicPrefixUL; - iE_Extensions_t iE_Extensions; - -}; -/* -AerialUEsubscriptionInformation ::= ENUMERATED { - allowed, - not-allowed, - ... -} -*/ - -struct AerialUEsubscriptionInformation : asn::enumerated<2, 0, true> -{ - static constexpr const char* name() {return "AerialUEsubscriptionInformation";} - using parent_t = asn::enumerated<2, 0, true>; - typedef enum { - allowed - ,not_allowed - } index_t; - -}; - -/* -PriorityLevel ::= INTEGER { spare (0), highest (1), lowest (14), no-priority (15) } (0..15) -*/ - -struct PriorityLevel : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "PriorityLevel";} - using parent_t = asn::integer<>; - enum {spare = 0, highest = 1, lowest = 14, no_priority = 15}; - -}; - -/* -Pre-emptionCapability ::= ENUMERATED { - shall-not-trigger-pre-emption, - may-trigger-pre-emption -} -*/ - -struct Pre_emptionCapability : asn::enumerated<2, 0, false> -{ - static constexpr const char* name() {return "Pre-emptionCapability";} - using parent_t = asn::enumerated<2, 0, false>; - typedef enum { - shall_not_trigger_pre_emption - ,may_trigger_pre_emption - } index_t; - -}; - -/* -Pre-emptionVulnerability ::= ENUMERATED { - not-pre-emptable, - pre-emptable -} -*/ - -struct Pre_emptionVulnerability : asn::enumerated<2, 0, false> -{ - static constexpr const char* name() {return "Pre-emptionVulnerability";} - using parent_t = asn::enumerated<2, 0, false>; - typedef enum { - not_pre_emptable - ,pre_emptable - } index_t; - -}; - -/* -AllocationAndRetentionPriority-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct AllocationAndRetentionPriority_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -AllocationAndRetentionPriority ::= SEQUENCE { - priorityLevel PriorityLevel, - pre-emptionCapability Pre-emptionCapability, - pre-emptionVulnerability Pre-emptionVulnerability, - iE-Extensions ProtocolExtensionContainer { {AllocationAndRetentionPriority-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct AllocationAndRetentionPriority : asn::sequence<4, 0, true, 1> -{ - static constexpr const char* name() {return "AllocationAndRetentionPriority";} - using parent_t = asn::sequence<4, 0, true, 1>; - struct priorityLevel_t : PriorityLevel - { - static constexpr const char* name() {return "priorityLevel_t";} - using parent_t = PriorityLevel; - - }; - priorityLevel_t& ref_priorityLevel() {return priorityLevel;} - priorityLevel_t const& ref_priorityLevel() const {return priorityLevel;} - struct pre_emptionCapability_t : Pre_emptionCapability - { - static constexpr const char* name() {return "pre_emptionCapability_t";} - using parent_t = Pre_emptionCapability; - - }; - pre_emptionCapability_t& ref_pre_emptionCapability() {return pre_emptionCapability;} - pre_emptionCapability_t const& ref_pre_emptionCapability() const {return pre_emptionCapability;} - struct pre_emptionVulnerability_t : Pre_emptionVulnerability - { - static constexpr const char* name() {return "pre_emptionVulnerability_t";} - using parent_t = Pre_emptionVulnerability; - - }; - pre_emptionVulnerability_t& ref_pre_emptionVulnerability() {return pre_emptionVulnerability;} - pre_emptionVulnerability_t const& ref_pre_emptionVulnerability() const {return pre_emptionVulnerability;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(priorityLevel); - v(pre_emptionCapability); - v(pre_emptionVulnerability); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(priorityLevel); - v(pre_emptionCapability); - v(pre_emptionVulnerability); - v(iE_Extensions); - - }; - void clear() - { - priorityLevel.clear(); - pre_emptionCapability.clear(); - pre_emptionVulnerability.clear(); - iE_Extensions.clear(); - - }; - private: - priorityLevel_t priorityLevel; - pre_emptionCapability_t pre_emptionCapability; - pre_emptionVulnerability_t pre_emptionVulnerability; - iE_Extensions_t iE_Extensions; - -}; -/* -PLMN-Identity ::= OCTET STRING (SIZE(3)) -*/ - -struct PLMN_Identity : asn::ostring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "PLMN-Identity";} - using parent_t = asn::ostring<>; - -}; - -/* -EUTRANCellIdentifier ::= BIT STRING (SIZE (28)) -*/ - -struct EUTRANCellIdentifier : asn::bstring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "EUTRANCellIdentifier";} - using parent_t = asn::bstring<>; - -}; - -/* -ECGI-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct ECGI_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ECGI ::= SEQUENCE { - pLMN-Identity PLMN-Identity, - eUTRANcellIdentifier EUTRANCellIdentifier, - iE-Extensions ProtocolExtensionContainer { {ECGI-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct ECGI : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "ECGI";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct pLMN_Identity_t : PLMN_Identity - { - static constexpr const char* name() {return "pLMN_Identity_t";} - using parent_t = PLMN_Identity; - - }; - pLMN_Identity_t& ref_pLMN_Identity() {return pLMN_Identity;} - pLMN_Identity_t const& ref_pLMN_Identity() const {return pLMN_Identity;} - struct eUTRANcellIdentifier_t : EUTRANCellIdentifier - { - static constexpr const char* name() {return "eUTRANcellIdentifier_t";} - using parent_t = EUTRANCellIdentifier; - - }; - eUTRANcellIdentifier_t& ref_eUTRANcellIdentifier() {return eUTRANcellIdentifier;} - eUTRANcellIdentifier_t const& ref_eUTRANcellIdentifier() const {return eUTRANcellIdentifier;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(pLMN_Identity); - v(eUTRANcellIdentifier); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(pLMN_Identity); - v(eUTRANcellIdentifier); - v(iE_Extensions); - - }; - void clear() - { - pLMN_Identity.clear(); - eUTRANcellIdentifier.clear(); - iE_Extensions.clear(); - - }; - private: - pLMN_Identity_t pLMN_Identity; - eUTRANcellIdentifier_t eUTRANcellIdentifier; - iE_Extensions_t iE_Extensions; - -}; -/* -CellIdListforMDT ::= SEQUENCE (SIZE(1..maxnoofCellIDforMDT)) OF ECGI -*/ - -struct CellIdListforMDT_elm : ECGI -{ - static constexpr const char* name() {return "CellIdListforMDT_elm";} - using parent_t = ECGI; - -}; -struct CellIdListforMDT : asn::sequenceof -{ - static constexpr const char* name() {return "CellIdListforMDT";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -CellBasedMDT-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct CellBasedMDT_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -CellBasedMDT::= SEQUENCE { - cellIdListforMDT CellIdListforMDT, - iE-Extensions ProtocolExtensionContainer { {CellBasedMDT-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct CellBasedMDT : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "CellBasedMDT";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct cellIdListforMDT_t : CellIdListforMDT - { - static constexpr const char* name() {return "cellIdListforMDT_t";} - using parent_t = CellIdListforMDT; - - }; - cellIdListforMDT_t& ref_cellIdListforMDT() {return cellIdListforMDT;} - cellIdListforMDT_t const& ref_cellIdListforMDT() const {return cellIdListforMDT;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(cellIdListforMDT); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(cellIdListforMDT); - v(iE_Extensions); - - }; - void clear() - { - cellIdListforMDT.clear(); - iE_Extensions.clear(); - - }; - private: - cellIdListforMDT_t cellIdListforMDT; - iE_Extensions_t iE_Extensions; - -}; -/* -TAC ::= OCTET STRING (SIZE (2)) -*/ - -struct TAC : asn::ostring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "TAC";} - using parent_t = asn::ostring<>; - -}; - -/* -TAListforMDT ::= SEQUENCE (SIZE(1..maxnoofTAforMDT)) OF TAC -*/ - -struct TAListforMDT_elm : TAC -{ - static constexpr const char* name() {return "TAListforMDT_elm";} - using parent_t = TAC; - -}; -struct TAListforMDT : asn::sequenceof -{ - static constexpr const char* name() {return "TAListforMDT";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -TABasedMDT-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct TABasedMDT_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -TABasedMDT::= SEQUENCE { - tAListforMDT TAListforMDT, - iE-Extensions ProtocolExtensionContainer { {TABasedMDT-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct TABasedMDT : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "TABasedMDT";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct tAListforMDT_t : TAListforMDT - { - static constexpr const char* name() {return "tAListforMDT_t";} - using parent_t = TAListforMDT; - - }; - tAListforMDT_t& ref_tAListforMDT() {return tAListforMDT;} - tAListforMDT_t const& ref_tAListforMDT() const {return tAListforMDT;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(tAListforMDT); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(tAListforMDT); - v(iE_Extensions); - - }; - void clear() - { - tAListforMDT.clear(); - iE_Extensions.clear(); - - }; - private: - tAListforMDT_t tAListforMDT; - iE_Extensions_t iE_Extensions; - -}; -/* -TAI-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct TAI_Item_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -TAI-Item ::= SEQUENCE { - tAC TAC, - pLMN-Identity PLMN-Identity, - iE-Extensions ProtocolExtensionContainer { {TAI-Item-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct TAI_Item : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "TAI-Item";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct tAC_t : TAC - { - static constexpr const char* name() {return "tAC_t";} - using parent_t = TAC; - - }; - tAC_t& ref_tAC() {return tAC;} - tAC_t const& ref_tAC() const {return tAC;} - struct pLMN_Identity_t : PLMN_Identity - { - static constexpr const char* name() {return "pLMN_Identity_t";} - using parent_t = PLMN_Identity; - - }; - pLMN_Identity_t& ref_pLMN_Identity() {return pLMN_Identity;} - pLMN_Identity_t const& ref_pLMN_Identity() const {return pLMN_Identity;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(tAC); - v(pLMN_Identity); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(tAC); - v(pLMN_Identity); - v(iE_Extensions); - - }; - void clear() - { - tAC.clear(); - pLMN_Identity.clear(); - iE_Extensions.clear(); - - }; - private: - tAC_t tAC; - pLMN_Identity_t pLMN_Identity; - iE_Extensions_t iE_Extensions; - -}; -/* -TAIListforMDT ::= SEQUENCE (SIZE(1..maxnoofTAforMDT)) OF TAI-Item -*/ - -struct TAIListforMDT_elm : TAI_Item -{ - static constexpr const char* name() {return "TAIListforMDT_elm";} - using parent_t = TAI_Item; - -}; -struct TAIListforMDT : asn::sequenceof -{ - static constexpr const char* name() {return "TAIListforMDT";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -TAIBasedMDT-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct TAIBasedMDT_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -TAIBasedMDT ::= SEQUENCE { - tAIListforMDT TAIListforMDT, - iE-Extensions ProtocolExtensionContainer { {TAIBasedMDT-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct TAIBasedMDT : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "TAIBasedMDT";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct tAIListforMDT_t : TAIListforMDT - { - static constexpr const char* name() {return "tAIListforMDT_t";} - using parent_t = TAIListforMDT; - - }; - tAIListforMDT_t& ref_tAIListforMDT() {return tAIListforMDT;} - tAIListforMDT_t const& ref_tAIListforMDT() const {return tAIListforMDT;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(tAIListforMDT); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(tAIListforMDT); - v(iE_Extensions); - - }; - void clear() - { - tAIListforMDT.clear(); - iE_Extensions.clear(); - - }; - private: - tAIListforMDT_t tAIListforMDT; - iE_Extensions_t iE_Extensions; - -}; -/* -AreaScopeOfMDT ::= CHOICE { - cellBased CellBasedMDT, - tABased TABasedMDT, - pLMNWide NULL, - ..., - tAIBased TAIBasedMDT -} -*/ - -struct AreaScopeOfMDT : asn::choice<4, 1, true> -{ - static constexpr const char* name() {return "AreaScopeOfMDT";} - using parent_t = asn::choice<4, 1, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 5;} - void set_unknown() { set_index(5); } - ~AreaScopeOfMDT() {clear();} - struct cellBased_t : CellBasedMDT - { - static constexpr const char* name() {return "cellBased_t";} - using parent_t = CellBasedMDT; - - }; - struct tABased_t : TABasedMDT - { - static constexpr const char* name() {return "tABased_t";} - using parent_t = TABasedMDT; - - }; - struct pLMNWide_t : asn::nulltype - { - static constexpr const char* name() {return "pLMNWide_t";} - using parent_t = asn::nulltype; - - }; - struct tAIBased_t : TAIBasedMDT - { - static constexpr const char* name() {return "tAIBased_t";} - using parent_t = TAIBasedMDT; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - case 3: set_index(3); return v(var.build()); - case 4: set_index(4); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - case 3: return v(var.as()); - case 4: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - - } - cellBased_t& select_cellBased() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - cellBased_t const* get_cellBased() const { if(get_index() == 1) { return &var.as();} return nullptr; } - tABased_t& select_tABased() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - tABased_t const* get_tABased() const { if(get_index() == 2) { return &var.as();} return nullptr; } - pLMNWide_t& select_pLMNWide() { if(get_index() != 3) { clear(); set_index(3); return var.build();} return var.as();} - pLMNWide_t const* get_pLMNWide() const { if(get_index() == 3) { return &var.as();} return nullptr; } - tAIBased_t& select_tAIBased() { if(get_index() != 4) { clear(); set_index(4); return var.build();} return var.as();} - tAIBased_t const* get_tAIBased() const { if(get_index() == 4) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(cellBased_t)]; - char dummy2[sizeof(tABased_t)]; - char dummy3[sizeof(pLMNWide_t)]; - char dummy4[sizeof(tAIBased_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -CellIdListforQMC ::= SEQUENCE (SIZE(1..maxnoofCellIDforQMC)) OF ECGI -*/ - -struct CellIdListforQMC_elm : ECGI -{ - static constexpr const char* name() {return "CellIdListforQMC_elm";} - using parent_t = ECGI; - -}; -struct CellIdListforQMC : asn::sequenceof -{ - static constexpr const char* name() {return "CellIdListforQMC";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -CellBasedQMC-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct CellBasedQMC_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -CellBasedQMC::= SEQUENCE { - cellIdListforQMC CellIdListforQMC, - iE-Extensions ProtocolExtensionContainer { {CellBasedQMC-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct CellBasedQMC : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "CellBasedQMC";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct cellIdListforQMC_t : CellIdListforQMC - { - static constexpr const char* name() {return "cellIdListforQMC_t";} - using parent_t = CellIdListforQMC; - - }; - cellIdListforQMC_t& ref_cellIdListforQMC() {return cellIdListforQMC;} - cellIdListforQMC_t const& ref_cellIdListforQMC() const {return cellIdListforQMC;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(cellIdListforQMC); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(cellIdListforQMC); - v(iE_Extensions); - - }; - void clear() - { - cellIdListforQMC.clear(); - iE_Extensions.clear(); - - }; - private: - cellIdListforQMC_t cellIdListforQMC; - iE_Extensions_t iE_Extensions; - -}; -/* -TAListforQMC ::= SEQUENCE (SIZE(1..maxnoofTAforQMC)) OF TAC -*/ - -struct TAListforQMC_elm : TAC -{ - static constexpr const char* name() {return "TAListforQMC_elm";} - using parent_t = TAC; - -}; -struct TAListforQMC : asn::sequenceof -{ - static constexpr const char* name() {return "TAListforQMC";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -TABasedQMC-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct TABasedQMC_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -TABasedQMC ::= SEQUENCE { - tAListforQMC TAListforQMC, - iE-Extensions ProtocolExtensionContainer { {TABasedQMC-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct TABasedQMC : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "TABasedQMC";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct tAListforQMC_t : TAListforQMC - { - static constexpr const char* name() {return "tAListforQMC_t";} - using parent_t = TAListforQMC; - - }; - tAListforQMC_t& ref_tAListforQMC() {return tAListforQMC;} - tAListforQMC_t const& ref_tAListforQMC() const {return tAListforQMC;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(tAListforQMC); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(tAListforQMC); - v(iE_Extensions); - - }; - void clear() - { - tAListforQMC.clear(); - iE_Extensions.clear(); - - }; - private: - tAListforQMC_t tAListforQMC; - iE_Extensions_t iE_Extensions; - -}; -/* -TAIListforQMC ::= SEQUENCE (SIZE(1..maxnoofTAforQMC)) OF TAI-Item -*/ - -struct TAIListforQMC_elm : TAI_Item -{ - static constexpr const char* name() {return "TAIListforQMC_elm";} - using parent_t = TAI_Item; - -}; -struct TAIListforQMC : asn::sequenceof -{ - static constexpr const char* name() {return "TAIListforQMC";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -TAIBasedQMC-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct TAIBasedQMC_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -TAIBasedQMC ::= SEQUENCE { - tAIListforQMC TAIListforQMC, - iE-Extensions ProtocolExtensionContainer { {TAIBasedQMC-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct TAIBasedQMC : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "TAIBasedQMC";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct tAIListforQMC_t : TAIListforQMC - { - static constexpr const char* name() {return "tAIListforQMC_t";} - using parent_t = TAIListforQMC; - - }; - tAIListforQMC_t& ref_tAIListforQMC() {return tAIListforQMC;} - tAIListforQMC_t const& ref_tAIListforQMC() const {return tAIListforQMC;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(tAIListforQMC); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(tAIListforQMC); - v(iE_Extensions); - - }; - void clear() - { - tAIListforQMC.clear(); - iE_Extensions.clear(); - - }; - private: - tAIListforQMC_t tAIListforQMC; - iE_Extensions_t iE_Extensions; - -}; -/* -PLMNListforQMC ::= SEQUENCE (SIZE(1..maxnoofPLMNforQMC)) OF PLMN-Identity -*/ - -struct PLMNListforQMC_elm : PLMN_Identity -{ - static constexpr const char* name() {return "PLMNListforQMC_elm";} - using parent_t = PLMN_Identity; - -}; -struct PLMNListforQMC : asn::sequenceof -{ - static constexpr const char* name() {return "PLMNListforQMC";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -PLMNAreaBasedQMC-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct PLMNAreaBasedQMC_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -PLMNAreaBasedQMC ::= SEQUENCE { - plmnListforQMC PLMNListforQMC, - iE-Extensions ProtocolExtensionContainer { {PLMNAreaBasedQMC-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct PLMNAreaBasedQMC : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "PLMNAreaBasedQMC";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct plmnListforQMC_t : PLMNListforQMC - { - static constexpr const char* name() {return "plmnListforQMC_t";} - using parent_t = PLMNListforQMC; - - }; - plmnListforQMC_t& ref_plmnListforQMC() {return plmnListforQMC;} - plmnListforQMC_t const& ref_plmnListforQMC() const {return plmnListforQMC;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(plmnListforQMC); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(plmnListforQMC); - v(iE_Extensions); - - }; - void clear() - { - plmnListforQMC.clear(); - iE_Extensions.clear(); - - }; - private: - plmnListforQMC_t plmnListforQMC; - iE_Extensions_t iE_Extensions; - -}; -/* -AreaScopeOfQMC ::= CHOICE { - cellBased CellBasedQMC, - tABased TABasedQMC, - tAIBased TAIBasedQMC, - pLMNAreaBased PLMNAreaBasedQMC, - ... -} -*/ - -struct AreaScopeOfQMC : asn::choice<4, 0, true> -{ - static constexpr const char* name() {return "AreaScopeOfQMC";} - using parent_t = asn::choice<4, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 5;} - void set_unknown() { set_index(5); } - ~AreaScopeOfQMC() {clear();} - struct cellBased_t : CellBasedQMC - { - static constexpr const char* name() {return "cellBased_t";} - using parent_t = CellBasedQMC; - - }; - struct tABased_t : TABasedQMC - { - static constexpr const char* name() {return "tABased_t";} - using parent_t = TABasedQMC; - - }; - struct tAIBased_t : TAIBasedQMC - { - static constexpr const char* name() {return "tAIBased_t";} - using parent_t = TAIBasedQMC; - - }; - struct pLMNAreaBased_t : PLMNAreaBasedQMC - { - static constexpr const char* name() {return "pLMNAreaBased_t";} - using parent_t = PLMNAreaBasedQMC; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - case 3: set_index(3); return v(var.build()); - case 4: set_index(4); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - case 3: return v(var.as()); - case 4: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - - } - cellBased_t& select_cellBased() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - cellBased_t const* get_cellBased() const { if(get_index() == 1) { return &var.as();} return nullptr; } - tABased_t& select_tABased() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - tABased_t const* get_tABased() const { if(get_index() == 2) { return &var.as();} return nullptr; } - tAIBased_t& select_tAIBased() { if(get_index() != 3) { clear(); set_index(3); return var.build();} return var.as();} - tAIBased_t const* get_tAIBased() const { if(get_index() == 3) { return &var.as();} return nullptr; } - pLMNAreaBased_t& select_pLMNAreaBased() { if(get_index() != 4) { clear(); set_index(4); return var.build();} return var.as();} - pLMNAreaBased_t const* get_pLMNAreaBased() const { if(get_index() == 4) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(cellBased_t)]; - char dummy2[sizeof(tABased_t)]; - char dummy3[sizeof(tAIBased_t)]; - char dummy4[sizeof(pLMNAreaBased_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -FreqBandIndicator ::= INTEGER (1..256, ...) -*/ - -struct FreqBandIndicator : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "FreqBandIndicator";} - using parent_t = asn::integer<>; - -}; - -/* -BandInfo-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct BandInfo_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -BandInfo ::= SEQUENCE { - freqBandIndicator FreqBandIndicator, - iE-Extensions ProtocolExtensionContainer { {BandInfo-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct BandInfo : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "BandInfo";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct freqBandIndicator_t : FreqBandIndicator - { - static constexpr const char* name() {return "freqBandIndicator_t";} - using parent_t = FreqBandIndicator; - - }; - freqBandIndicator_t& ref_freqBandIndicator() {return freqBandIndicator;} - freqBandIndicator_t const& ref_freqBandIndicator() const {return freqBandIndicator;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(freqBandIndicator); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(freqBandIndicator); - v(iE_Extensions); - - }; - void clear() - { - freqBandIndicator.clear(); - iE_Extensions.clear(); - - }; - private: - freqBandIndicator_t freqBandIndicator; - iE_Extensions_t iE_Extensions; - -}; -/* -BandwidthReducedSI::= ENUMERATED { - scheduled, - ... -} -*/ - -struct BandwidthReducedSI : asn::enumerated<1, 0, true> -{ - static constexpr const char* name() {return "BandwidthReducedSI";} - using parent_t = asn::enumerated<1, 0, true>; - typedef enum { - scheduled - } index_t; - -}; - -/* -BearerType ::= ENUMERATED { - non-IP, - ... -} -*/ - -struct BearerType : asn::enumerated<1, 0, true> -{ - static constexpr const char* name() {return "BearerType";} - using parent_t = asn::enumerated<1, 0, true>; - typedef enum { - non_IP - } index_t; - -}; - -/* -BenefitMetric ::= INTEGER (-101..100, ...) -*/ - -struct BenefitMetric : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "BenefitMetric";} - using parent_t = asn::integer<>; - -}; - -/* -BitRate ::= INTEGER (0..10000000000) -*/ - -struct BitRate : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "BitRate";} - using parent_t = asn::integer<>; - -}; - -/* -BluetoothMeasConfig::= ENUMERATED {setup,...} -*/ - -struct BluetoothMeasConfig : asn::enumerated<1, 0, true> -{ - static constexpr const char* name() {return "BluetoothMeasConfig";} - using parent_t = asn::enumerated<1, 0, true>; - typedef enum { - setup - } index_t; - -}; - -/* -BluetoothName ::= OCTET STRING (SIZE (1..248)) -*/ - -struct BluetoothName : asn::ostring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "BluetoothName";} - using parent_t = asn::ostring<>; - -}; - -/* -BluetoothMeasConfigNameList ::= SEQUENCE (SIZE(1..maxnoofBluetoothName)) OF BluetoothName -*/ - -struct BluetoothMeasConfigNameList_elm : BluetoothName -{ - static constexpr const char* name() {return "BluetoothMeasConfigNameList_elm";} - using parent_t = BluetoothName; - -}; -struct BluetoothMeasConfigNameList : asn::sequenceof -{ - static constexpr const char* name() {return "BluetoothMeasConfigNameList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -BluetoothMeasurementConfiguration-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct BluetoothMeasurementConfiguration_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -BluetoothMeasurementConfiguration ::= SEQUENCE { - bluetoothMeasConfig BluetoothMeasConfig, - bluetoothMeasConfigNameList BluetoothMeasConfigNameList OPTIONAL, - bt-rssi ENUMERATED {true, ...} OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {BluetoothMeasurementConfiguration-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct BluetoothMeasurementConfiguration : asn::sequence<4, 0, true, 3> -{ - static constexpr const char* name() {return "BluetoothMeasurementConfiguration";} - using parent_t = asn::sequence<4, 0, true, 3>; - struct bluetoothMeasConfig_t : BluetoothMeasConfig - { - static constexpr const char* name() {return "bluetoothMeasConfig_t";} - using parent_t = BluetoothMeasConfig; - - }; - bluetoothMeasConfig_t& ref_bluetoothMeasConfig() {return bluetoothMeasConfig;} - bluetoothMeasConfig_t const& ref_bluetoothMeasConfig() const {return bluetoothMeasConfig;} - struct bluetoothMeasConfigNameList_t : BluetoothMeasConfigNameList - { - static constexpr const char* name() {return "bluetoothMeasConfigNameList_t";} - using parent_t = BluetoothMeasConfigNameList; - static constexpr bool optional = true; - - }; - bluetoothMeasConfigNameList_t& set_bluetoothMeasConfigNameList() { bluetoothMeasConfigNameList.setpresent(true); return bluetoothMeasConfigNameList;} - bluetoothMeasConfigNameList_t const* get_bluetoothMeasConfigNameList() const {return bluetoothMeasConfigNameList.is_valid() ? &bluetoothMeasConfigNameList : nullptr;} - struct bt_rssi_t : asn::enumerated<1, 0, true> - { - static constexpr const char* name() {return "bt_rssi_t";} - using parent_t = asn::enumerated<1, 0, true>; - static constexpr bool optional = true; - typedef enum { - True - } index_t; - - }; - - bt_rssi_t& set_bt_rssi() { bt_rssi.setpresent(true); return bt_rssi;} - bt_rssi_t const* get_bt_rssi() const {return bt_rssi.is_valid() ? &bt_rssi : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(bluetoothMeasConfig); - v(bluetoothMeasConfigNameList); - v(bt_rssi); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(bluetoothMeasConfig); - v(bluetoothMeasConfigNameList); - v(bt_rssi); - v(iE_Extensions); - - }; - void clear() - { - bluetoothMeasConfig.clear(); - bluetoothMeasConfigNameList.clear(); - bt_rssi.clear(); - iE_Extensions.clear(); - - }; - private: - bluetoothMeasConfig_t bluetoothMeasConfig; - bluetoothMeasConfigNameList_t bluetoothMeasConfigNameList; - bt_rssi_t bt_rssi; - iE_Extensions_t iE_Extensions; - -}; -/* -BroadcastPLMNs-Item ::= SEQUENCE (SIZE(1..maxnoofBPLMNs)) OF PLMN-Identity -*/ - -struct BroadcastPLMNs_Item_elm : PLMN_Identity -{ - static constexpr const char* name() {return "BroadcastPLMNs_Item_elm";} - using parent_t = PLMN_Identity; - -}; -struct BroadcastPLMNs_Item : asn::sequenceof -{ - static constexpr const char* name() {return "BroadcastPLMNs-Item";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -CNTypeRestrictionsItem-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct CNTypeRestrictionsItem_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -CNTypeRestrictionsItem ::= SEQUENCE { - plmn-Id PLMN-Identity, - cn-type ENUMERATED {fiveGC-forbidden, ...}, - iE-Extensions ProtocolExtensionContainer { {CNTypeRestrictionsItem-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct CNTypeRestrictionsItem : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "CNTypeRestrictionsItem";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct plmn_Id_t : PLMN_Identity - { - static constexpr const char* name() {return "plmn_Id_t";} - using parent_t = PLMN_Identity; - - }; - plmn_Id_t& ref_plmn_Id() {return plmn_Id;} - plmn_Id_t const& ref_plmn_Id() const {return plmn_Id;} - struct cn_type_t : asn::enumerated<1, 0, true> - { - static constexpr const char* name() {return "cn_type_t";} - using parent_t = asn::enumerated<1, 0, true>; - typedef enum { - fiveGC_forbidden - } index_t; - - }; - - cn_type_t& ref_cn_type() {return cn_type;} - cn_type_t const& ref_cn_type() const {return cn_type;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(plmn_Id); - v(cn_type); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(plmn_Id); - v(cn_type); - v(iE_Extensions); - - }; - void clear() - { - plmn_Id.clear(); - cn_type.clear(); - iE_Extensions.clear(); - - }; - private: - plmn_Id_t plmn_Id; - cn_type_t cn_type; - iE_Extensions_t iE_Extensions; - -}; -/* -CNTypeRestrictions ::= SEQUENCE (SIZE(1.. maxnoofEPLMNsPlusOne)) OF CNTypeRestrictionsItem -*/ - -struct CNTypeRestrictions_elm : CNTypeRestrictionsItem -{ - static constexpr const char* name() {return "CNTypeRestrictions_elm";} - using parent_t = CNTypeRestrictionsItem; - -}; -struct CNTypeRestrictions : asn::sequenceof -{ - static constexpr const char* name() {return "CNTypeRestrictions";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -PDCP-SNExtended ::= INTEGER (0..32767) -*/ - -struct PDCP_SNExtended : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "PDCP-SNExtended";} - using parent_t = asn::integer<>; - -}; - -/* -HFNModified ::= INTEGER (0..131071) -*/ - -struct HFNModified : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "HFNModified";} - using parent_t = asn::integer<>; - -}; - -/* -COUNTValueExtended-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct COUNTValueExtended_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -COUNTValueExtended ::= SEQUENCE { - pDCP-SNExtended PDCP-SNExtended, - hFNModified HFNModified, - iE-Extensions ProtocolExtensionContainer { {COUNTValueExtended-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct COUNTValueExtended : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "COUNTValueExtended";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct pDCP_SNExtended_t : PDCP_SNExtended - { - static constexpr const char* name() {return "pDCP_SNExtended_t";} - using parent_t = PDCP_SNExtended; - - }; - pDCP_SNExtended_t& ref_pDCP_SNExtended() {return pDCP_SNExtended;} - pDCP_SNExtended_t const& ref_pDCP_SNExtended() const {return pDCP_SNExtended;} - struct hFNModified_t : HFNModified - { - static constexpr const char* name() {return "hFNModified_t";} - using parent_t = HFNModified; - - }; - hFNModified_t& ref_hFNModified() {return hFNModified;} - hFNModified_t const& ref_hFNModified() const {return hFNModified;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(pDCP_SNExtended); - v(hFNModified); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(pDCP_SNExtended); - v(hFNModified); - v(iE_Extensions); - - }; - void clear() - { - pDCP_SNExtended.clear(); - hFNModified.clear(); - iE_Extensions.clear(); - - }; - private: - pDCP_SNExtended_t pDCP_SNExtended; - hFNModified_t hFNModified; - iE_Extensions_t iE_Extensions; - -}; -/* -PDCP-SN ::= INTEGER (0..4095) -*/ - -struct PDCP_SN : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "PDCP-SN";} - using parent_t = asn::integer<>; - -}; - -/* -HFN ::= INTEGER (0..1048575) -*/ - -struct HFN : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "HFN";} - using parent_t = asn::integer<>; - -}; - -/* -COUNTvalue-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct COUNTvalue_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -COUNTvalue ::= SEQUENCE { - pDCP-SN PDCP-SN, - hFN HFN, - iE-Extensions ProtocolExtensionContainer { {COUNTvalue-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct COUNTvalue : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "COUNTvalue";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct pDCP_SN_t : PDCP_SN - { - static constexpr const char* name() {return "pDCP_SN_t";} - using parent_t = PDCP_SN; - - }; - pDCP_SN_t& ref_pDCP_SN() {return pDCP_SN;} - pDCP_SN_t const& ref_pDCP_SN() const {return pDCP_SN;} - struct hFN_t : HFN - { - static constexpr const char* name() {return "hFN_t";} - using parent_t = HFN; - - }; - hFN_t& ref_hFN() {return hFN;} - hFN_t const& ref_hFN() const {return hFN;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(pDCP_SN); - v(hFN); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(pDCP_SN); - v(hFN); - v(iE_Extensions); - - }; - void clear() - { - pDCP_SN.clear(); - hFN.clear(); - iE_Extensions.clear(); - - }; - private: - pDCP_SN_t pDCP_SN; - hFN_t hFN; - iE_Extensions_t iE_Extensions; - -}; -/* -PDCP-SNlength18 ::= INTEGER (0..262143) -*/ - -struct PDCP_SNlength18 : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "PDCP-SNlength18";} - using parent_t = asn::integer<>; - -}; - -/* -HFNforPDCP-SNlength18 ::= INTEGER (0..16383) -*/ - -struct HFNforPDCP_SNlength18 : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "HFNforPDCP-SNlength18";} - using parent_t = asn::integer<>; - -}; - -/* -COUNTvaluePDCP-SNlength18-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct COUNTvaluePDCP_SNlength18_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -COUNTvaluePDCP-SNlength18 ::= SEQUENCE { - pDCP-SNlength18 PDCP-SNlength18, - hFNforPDCP-SNlength18 HFNforPDCP-SNlength18, - iE-Extensions ProtocolExtensionContainer { {COUNTvaluePDCP-SNlength18-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct COUNTvaluePDCP_SNlength18 : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "COUNTvaluePDCP-SNlength18";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct pDCP_SNlength18_t : PDCP_SNlength18 - { - static constexpr const char* name() {return "pDCP_SNlength18_t";} - using parent_t = PDCP_SNlength18; - - }; - pDCP_SNlength18_t& ref_pDCP_SNlength18() {return pDCP_SNlength18;} - pDCP_SNlength18_t const& ref_pDCP_SNlength18() const {return pDCP_SNlength18;} - struct hFNforPDCP_SNlength18_t : HFNforPDCP_SNlength18 - { - static constexpr const char* name() {return "hFNforPDCP_SNlength18_t";} - using parent_t = HFNforPDCP_SNlength18; - - }; - hFNforPDCP_SNlength18_t& ref_hFNforPDCP_SNlength18() {return hFNforPDCP_SNlength18;} - hFNforPDCP_SNlength18_t const& ref_hFNforPDCP_SNlength18() const {return hFNforPDCP_SNlength18;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(pDCP_SNlength18); - v(hFNforPDCP_SNlength18); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(pDCP_SNlength18); - v(hFNforPDCP_SNlength18); - v(iE_Extensions); - - }; - void clear() - { - pDCP_SNlength18.clear(); - hFNforPDCP_SNlength18.clear(); - iE_Extensions.clear(); - - }; - private: - pDCP_SNlength18_t pDCP_SNlength18; - hFNforPDCP_SNlength18_t hFNforPDCP_SNlength18; - iE_Extensions_t iE_Extensions; - -}; -/* -CRNTI ::= BIT STRING (SIZE (16)) -*/ - -struct CRNTI : asn::bstring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "CRNTI";} - using parent_t = asn::bstring<>; - -}; - -/* -CSG-Id ::= BIT STRING (SIZE (27)) -*/ - -struct CSG_Id : asn::bstring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "CSG-Id";} - using parent_t = asn::bstring<>; - -}; - -/* -CSGMembershipStatus ::= ENUMERATED { - member, - not-member -} -*/ - -struct CSGMembershipStatus : asn::enumerated<2, 0, false> -{ - static constexpr const char* name() {return "CSGMembershipStatus";} - using parent_t = asn::enumerated<2, 0, false>; - typedef enum { - member - ,not_member - } index_t; - -}; - -/* -UEID ::= BIT STRING (SIZE (16)) -*/ - -struct UEID : asn::bstring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "UEID";} - using parent_t = asn::bstring<>; - -}; - -/* -WidebandCQICodeword1::= CHOICE { - four-bitCQI INTEGER (0..15, ...), - three-bitSpatialDifferentialCQI INTEGER (0..7, ...), - ... -} -*/ - -struct WidebandCQICodeword1 : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "WidebandCQICodeword1";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~WidebandCQICodeword1() {clear();} - struct four_bitCQI_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "four_bitCQI_t";} - using parent_t = asn::integer<>; - - }; - - struct three_bitSpatialDifferentialCQI_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "three_bitSpatialDifferentialCQI_t";} - using parent_t = asn::integer<>; - - }; - - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - four_bitCQI_t& select_four_bitCQI() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - four_bitCQI_t const* get_four_bitCQI() const { if(get_index() == 1) { return &var.as();} return nullptr; } - three_bitSpatialDifferentialCQI_t& select_three_bitSpatialDifferentialCQI() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - three_bitSpatialDifferentialCQI_t const* get_three_bitSpatialDifferentialCQI() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(four_bitCQI_t)]; - char dummy2[sizeof(three_bitSpatialDifferentialCQI_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -WidebandCQI-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct WidebandCQI_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -WidebandCQI ::= SEQUENCE { - widebandCQICodeword0 INTEGER (0..15, ...), - widebandCQICodeword1 WidebandCQICodeword1 OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {WidebandCQI-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct WidebandCQI : asn::sequence<3, 0, true, 2> -{ - static constexpr const char* name() {return "WidebandCQI";} - using parent_t = asn::sequence<3, 0, true, 2>; - struct widebandCQICodeword0_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "widebandCQICodeword0_t";} - using parent_t = asn::integer<>; - - }; - - widebandCQICodeword0_t& ref_widebandCQICodeword0() {return widebandCQICodeword0;} - widebandCQICodeword0_t const& ref_widebandCQICodeword0() const {return widebandCQICodeword0;} - struct widebandCQICodeword1_t : WidebandCQICodeword1 - { - static constexpr const char* name() {return "widebandCQICodeword1_t";} - using parent_t = WidebandCQICodeword1; - static constexpr bool optional = true; - - }; - widebandCQICodeword1_t& set_widebandCQICodeword1() { widebandCQICodeword1.setpresent(true); return widebandCQICodeword1;} - widebandCQICodeword1_t const* get_widebandCQICodeword1() const {return widebandCQICodeword1.is_valid() ? &widebandCQICodeword1 : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(widebandCQICodeword0); - v(widebandCQICodeword1); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(widebandCQICodeword0); - v(widebandCQICodeword1); - v(iE_Extensions); - - }; - void clear() - { - widebandCQICodeword0.clear(); - widebandCQICodeword1.clear(); - iE_Extensions.clear(); - - }; - private: - widebandCQICodeword0_t widebandCQICodeword0; - widebandCQICodeword1_t widebandCQICodeword1; - iE_Extensions_t iE_Extensions; - -}; -/* -SubbandSize ::= ENUMERATED { - size2, - size3, - size4, - size6, - size8, - ... -} -*/ - -struct SubbandSize : asn::enumerated<5, 0, true> -{ - static constexpr const char* name() {return "SubbandSize";} - using parent_t = asn::enumerated<5, 0, true>; - typedef enum { - size2 - ,size3 - ,size4 - ,size6 - ,size8 - } index_t; - -}; - -/* -SubbandCQICodeword0 ::= CHOICE { - four-bitCQI INTEGER (0..15, ...), - two-bitSubbandDifferentialCQI INTEGER (0..3, ...), - two-bitDifferentialCQI INTEGER (0..3, ...), - ... -} -*/ - -struct SubbandCQICodeword0 : asn::choice<3, 0, true> -{ - static constexpr const char* name() {return "SubbandCQICodeword0";} - using parent_t = asn::choice<3, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 4;} - void set_unknown() { set_index(4); } - ~SubbandCQICodeword0() {clear();} - struct four_bitCQI_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "four_bitCQI_t";} - using parent_t = asn::integer<>; - - }; - - struct two_bitSubbandDifferentialCQI_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "two_bitSubbandDifferentialCQI_t";} - using parent_t = asn::integer<>; - - }; - - struct two_bitDifferentialCQI_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "two_bitDifferentialCQI_t";} - using parent_t = asn::integer<>; - - }; - - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - case 3: set_index(3); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - case 3: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - - } - four_bitCQI_t& select_four_bitCQI() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - four_bitCQI_t const* get_four_bitCQI() const { if(get_index() == 1) { return &var.as();} return nullptr; } - two_bitSubbandDifferentialCQI_t& select_two_bitSubbandDifferentialCQI() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - two_bitSubbandDifferentialCQI_t const* get_two_bitSubbandDifferentialCQI() const { if(get_index() == 2) { return &var.as();} return nullptr; } - two_bitDifferentialCQI_t& select_two_bitDifferentialCQI() { if(get_index() != 3) { clear(); set_index(3); return var.build();} return var.as();} - two_bitDifferentialCQI_t const* get_two_bitDifferentialCQI() const { if(get_index() == 3) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(four_bitCQI_t)]; - char dummy2[sizeof(two_bitSubbandDifferentialCQI_t)]; - char dummy3[sizeof(two_bitDifferentialCQI_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -SubbandCQICodeword1 ::= CHOICE { - four-bitCQI INTEGER (0..15, ...), - three-bitSpatialDifferentialCQI INTEGER (0..7, ...), - two-bitSubbandDifferentialCQI INTEGER (0..3, ...), - two-bitDifferentialCQI INTEGER (0..3, ...), - ... -} -*/ - -struct SubbandCQICodeword1 : asn::choice<4, 0, true> -{ - static constexpr const char* name() {return "SubbandCQICodeword1";} - using parent_t = asn::choice<4, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 5;} - void set_unknown() { set_index(5); } - ~SubbandCQICodeword1() {clear();} - struct four_bitCQI_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "four_bitCQI_t";} - using parent_t = asn::integer<>; - - }; - - struct three_bitSpatialDifferentialCQI_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "three_bitSpatialDifferentialCQI_t";} - using parent_t = asn::integer<>; - - }; - - struct two_bitSubbandDifferentialCQI_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "two_bitSubbandDifferentialCQI_t";} - using parent_t = asn::integer<>; - - }; - - struct two_bitDifferentialCQI_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "two_bitDifferentialCQI_t";} - using parent_t = asn::integer<>; - - }; - - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - case 3: set_index(3); return v(var.build()); - case 4: set_index(4); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - case 3: return v(var.as()); - case 4: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - - } - four_bitCQI_t& select_four_bitCQI() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - four_bitCQI_t const* get_four_bitCQI() const { if(get_index() == 1) { return &var.as();} return nullptr; } - three_bitSpatialDifferentialCQI_t& select_three_bitSpatialDifferentialCQI() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - three_bitSpatialDifferentialCQI_t const* get_three_bitSpatialDifferentialCQI() const { if(get_index() == 2) { return &var.as();} return nullptr; } - two_bitSubbandDifferentialCQI_t& select_two_bitSubbandDifferentialCQI() { if(get_index() != 3) { clear(); set_index(3); return var.build();} return var.as();} - two_bitSubbandDifferentialCQI_t const* get_two_bitSubbandDifferentialCQI() const { if(get_index() == 3) { return &var.as();} return nullptr; } - two_bitDifferentialCQI_t& select_two_bitDifferentialCQI() { if(get_index() != 4) { clear(); set_index(4); return var.build();} return var.as();} - two_bitDifferentialCQI_t const* get_two_bitDifferentialCQI() const { if(get_index() == 4) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(four_bitCQI_t)]; - char dummy2[sizeof(three_bitSpatialDifferentialCQI_t)]; - char dummy3[sizeof(two_bitSubbandDifferentialCQI_t)]; - char dummy4[sizeof(two_bitDifferentialCQI_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -SubbandCQI-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct SubbandCQI_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SubbandCQI ::= SEQUENCE { - subbandCQICodeword0 SubbandCQICodeword0, - subbandCQICodeword1 SubbandCQICodeword1 OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {SubbandCQI-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct SubbandCQI : asn::sequence<3, 0, true, 2> -{ - static constexpr const char* name() {return "SubbandCQI";} - using parent_t = asn::sequence<3, 0, true, 2>; - struct subbandCQICodeword0_t : SubbandCQICodeword0 - { - static constexpr const char* name() {return "subbandCQICodeword0_t";} - using parent_t = SubbandCQICodeword0; - - }; - subbandCQICodeword0_t& ref_subbandCQICodeword0() {return subbandCQICodeword0;} - subbandCQICodeword0_t const& ref_subbandCQICodeword0() const {return subbandCQICodeword0;} - struct subbandCQICodeword1_t : SubbandCQICodeword1 - { - static constexpr const char* name() {return "subbandCQICodeword1_t";} - using parent_t = SubbandCQICodeword1; - static constexpr bool optional = true; - - }; - subbandCQICodeword1_t& set_subbandCQICodeword1() { subbandCQICodeword1.setpresent(true); return subbandCQICodeword1;} - subbandCQICodeword1_t const* get_subbandCQICodeword1() const {return subbandCQICodeword1.is_valid() ? &subbandCQICodeword1 : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(subbandCQICodeword0); - v(subbandCQICodeword1); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(subbandCQICodeword0); - v(subbandCQICodeword1); - v(iE_Extensions); - - }; - void clear() - { - subbandCQICodeword0.clear(); - subbandCQICodeword1.clear(); - iE_Extensions.clear(); - - }; - private: - subbandCQICodeword0_t subbandCQICodeword0; - subbandCQICodeword1_t subbandCQICodeword1; - iE_Extensions_t iE_Extensions; - -}; -/* -SubbandCQIItem-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct SubbandCQIItem_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SubbandCQIItem ::= SEQUENCE { - subbandCQI SubbandCQI, - subbandIndex INTEGER (0..27,...), - iE-Extensions ProtocolExtensionContainer { {SubbandCQIItem-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct SubbandCQIItem : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "SubbandCQIItem";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct subbandCQI_t : SubbandCQI - { - static constexpr const char* name() {return "subbandCQI_t";} - using parent_t = SubbandCQI; - - }; - subbandCQI_t& ref_subbandCQI() {return subbandCQI;} - subbandCQI_t const& ref_subbandCQI() const {return subbandCQI;} - struct subbandIndex_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "subbandIndex_t";} - using parent_t = asn::integer<>; - - }; - - subbandIndex_t& ref_subbandIndex() {return subbandIndex;} - subbandIndex_t const& ref_subbandIndex() const {return subbandIndex;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(subbandCQI); - v(subbandIndex); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(subbandCQI); - v(subbandIndex); - v(iE_Extensions); - - }; - void clear() - { - subbandCQI.clear(); - subbandIndex.clear(); - iE_Extensions.clear(); - - }; - private: - subbandCQI_t subbandCQI; - subbandIndex_t subbandIndex; - iE_Extensions_t iE_Extensions; - -}; -/* -SubbandCQIList ::= SEQUENCE (SIZE(1.. maxSubband)) OF SubbandCQIItem -*/ - -struct SubbandCQIList_elm : SubbandCQIItem -{ - static constexpr const char* name() {return "SubbandCQIList_elm";} - using parent_t = SubbandCQIItem; - -}; -struct SubbandCQIList : asn::sequenceof -{ - static constexpr const char* name() {return "SubbandCQIList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -CSIReportPerCSIProcessItem-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct CSIReportPerCSIProcessItem_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -CSIReportPerCSIProcessItem ::= SEQUENCE (SIZE(1.. maxCSIReport)) OF - SEQUENCE { - rI INTEGER (1..8, ...), - widebandCQI WidebandCQI, - subbandSize SubbandSize, - subbandCQIList SubbandCQIList OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {CSIReportPerCSIProcessItem-ExtIEs} } OPTIONAL, - ... - } -*/ - -struct CSIReportPerCSIProcessItem_elm : asn::sequence<5, 0, true, 2> -{ - static constexpr const char* name() {return "CSIReportPerCSIProcessItem_elm";} - using parent_t = asn::sequence<5, 0, true, 2>; - struct rI_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "rI_t";} - using parent_t = asn::integer<>; - - }; - - rI_t& ref_rI() {return rI;} - rI_t const& ref_rI() const {return rI;} - struct widebandCQI_t : WidebandCQI - { - static constexpr const char* name() {return "widebandCQI_t";} - using parent_t = WidebandCQI; - - }; - widebandCQI_t& ref_widebandCQI() {return widebandCQI;} - widebandCQI_t const& ref_widebandCQI() const {return widebandCQI;} - struct subbandSize_t : SubbandSize - { - static constexpr const char* name() {return "subbandSize_t";} - using parent_t = SubbandSize; - - }; - subbandSize_t& ref_subbandSize() {return subbandSize;} - subbandSize_t const& ref_subbandSize() const {return subbandSize;} - struct subbandCQIList_t : SubbandCQIList - { - static constexpr const char* name() {return "subbandCQIList_t";} - using parent_t = SubbandCQIList; - static constexpr bool optional = true; - - }; - subbandCQIList_t& set_subbandCQIList() { subbandCQIList.setpresent(true); return subbandCQIList;} - subbandCQIList_t const* get_subbandCQIList() const {return subbandCQIList.is_valid() ? &subbandCQIList : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(rI); - v(widebandCQI); - v(subbandSize); - v(subbandCQIList); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(rI); - v(widebandCQI); - v(subbandSize); - v(subbandCQIList); - v(iE_Extensions); - - }; - void clear() - { - rI.clear(); - widebandCQI.clear(); - subbandSize.clear(); - subbandCQIList.clear(); - iE_Extensions.clear(); - - }; - private: - rI_t rI; - widebandCQI_t widebandCQI; - subbandSize_t subbandSize; - subbandCQIList_t subbandCQIList; - iE_Extensions_t iE_Extensions; - -}; -struct CSIReportPerCSIProcessItem : asn::sequenceof -{ - static constexpr const char* name() {return "CSIReportPerCSIProcessItem";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -CSIReportPerCSIProcess-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct CSIReportPerCSIProcess_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -CSIReportPerCSIProcess ::= SEQUENCE (SIZE(1.. maxCSIProcess)) OF - SEQUENCE { - cSIProcessConfigurationIndex INTEGER (1..7, ...), - cSIReportPerCSIProcessItem CSIReportPerCSIProcessItem, - iE-Extensions ProtocolExtensionContainer { {CSIReportPerCSIProcess-ExtIEs} } OPTIONAL, - ... - } -*/ - -struct CSIReportPerCSIProcess_elm : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "CSIReportPerCSIProcess_elm";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct cSIProcessConfigurationIndex_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "cSIProcessConfigurationIndex_t";} - using parent_t = asn::integer<>; - - }; - - cSIProcessConfigurationIndex_t& ref_cSIProcessConfigurationIndex() {return cSIProcessConfigurationIndex;} - cSIProcessConfigurationIndex_t const& ref_cSIProcessConfigurationIndex() const {return cSIProcessConfigurationIndex;} - struct cSIReportPerCSIProcessItem_t : CSIReportPerCSIProcessItem - { - static constexpr const char* name() {return "cSIReportPerCSIProcessItem_t";} - using parent_t = CSIReportPerCSIProcessItem; - - }; - cSIReportPerCSIProcessItem_t& ref_cSIReportPerCSIProcessItem() {return cSIReportPerCSIProcessItem;} - cSIReportPerCSIProcessItem_t const& ref_cSIReportPerCSIProcessItem() const {return cSIReportPerCSIProcessItem;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(cSIProcessConfigurationIndex); - v(cSIReportPerCSIProcessItem); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(cSIProcessConfigurationIndex); - v(cSIReportPerCSIProcessItem); - v(iE_Extensions); - - }; - void clear() - { - cSIProcessConfigurationIndex.clear(); - cSIReportPerCSIProcessItem.clear(); - iE_Extensions.clear(); - - }; - private: - cSIProcessConfigurationIndex_t cSIProcessConfigurationIndex; - cSIReportPerCSIProcessItem_t cSIReportPerCSIProcessItem; - iE_Extensions_t iE_Extensions; - -}; -struct CSIReportPerCSIProcess : asn::sequenceof -{ - static constexpr const char* name() {return "CSIReportPerCSIProcess";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -CSIReportList-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct CSIReportList_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -CSIReportList ::= SEQUENCE (SIZE(1..maxUEReport)) OF - SEQUENCE { - uEID UEID, - cSIReportPerCSIProcess CSIReportPerCSIProcess, - iE-Extensions ProtocolExtensionContainer { {CSIReportList-ExtIEs} } OPTIONAL, - ... - } -*/ - -struct CSIReportList_elm : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "CSIReportList_elm";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct uEID_t : UEID - { - static constexpr const char* name() {return "uEID_t";} - using parent_t = UEID; - - }; - uEID_t& ref_uEID() {return uEID;} - uEID_t const& ref_uEID() const {return uEID;} - struct cSIReportPerCSIProcess_t : CSIReportPerCSIProcess - { - static constexpr const char* name() {return "cSIReportPerCSIProcess_t";} - using parent_t = CSIReportPerCSIProcess; - - }; - cSIReportPerCSIProcess_t& ref_cSIReportPerCSIProcess() {return cSIReportPerCSIProcess;} - cSIReportPerCSIProcess_t const& ref_cSIReportPerCSIProcess() const {return cSIReportPerCSIProcess;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(uEID); - v(cSIReportPerCSIProcess); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(uEID); - v(cSIReportPerCSIProcess); - v(iE_Extensions); - - }; - void clear() - { - uEID.clear(); - cSIReportPerCSIProcess.clear(); - iE_Extensions.clear(); - - }; - private: - uEID_t uEID; - cSIReportPerCSIProcess_t cSIReportPerCSIProcess; - iE_Extensions_t iE_Extensions; - -}; -struct CSIReportList : asn::sequenceof -{ - static constexpr const char* name() {return "CSIReportList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -CapacityValue ::= INTEGER (0..100) -*/ - -struct CapacityValue : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "CapacityValue";} - using parent_t = asn::integer<>; - -}; - -/* -CauseRadioNetwork ::= ENUMERATED { - handover-desirable-for-radio-reasons, - time-critical-handover, - resource-optimisation-handover, - reduce-load-in-serving-cell, - partial-handover, - unknown-new-eNB-UE-X2AP-ID, - unknown-old-eNB-UE-X2AP-ID, - unknown-pair-of-UE-X2AP-ID, - ho-target-not-allowed, - tx2relocoverall-expiry, - trelocprep-expiry, - cell-not-available, - no-radio-resources-available-in-target-cell, - invalid-MME-GroupID, - unknown-MME-Code, - encryption-and-or-integrity-protection-algorithms-not-supported, - reportCharacteristicsEmpty, - noReportPeriodicity, - existingMeasurementID, - unknown-eNB-Measurement-ID, - measurement-temporarily-not-available, - unspecified, - ..., - load-balancing, - handover-optimisation, - value-out-of-allowed-range, - multiple-E-RAB-ID-instances, - switch-off-ongoing, - not-supported-QCI-value, - measurement-not-supported-for-the-object, - tDCoverall-expiry, - tDCprep-expiry, - action-desirable-for-radio-reasons, - reduce-load, - resource-optimisation, - time-critical-action, - target-not-allowed, - no-radio-resources-available, - invalid-QoS-combination, - encryption-algorithms-not-aupported, - procedure-cancelled, - rRM-purpose, - improve-user-bit-rate, - user-inactivity, - radio-connection-with-UE-lost, - failure-in-the-radio-interface-procedure, - bearer-option-not-supported, - mCG-Mobility, - sCG-Mobility, - count-reaches-max-value, - unknown-old-en-gNB-UE-X2AP-ID, - pDCP-Overload - -} -*/ - -struct CauseRadioNetwork : asn::enumerated<51, 29, true> -{ - static constexpr const char* name() {return "CauseRadioNetwork";} - using parent_t = asn::enumerated<51, 29, true>; - typedef enum { - handover_desirable_for_radio_reasons - ,time_critical_handover - ,resource_optimisation_handover - ,reduce_load_in_serving_cell - ,partial_handover - ,unknown_new_eNB_UE_X2AP_ID - ,unknown_old_eNB_UE_X2AP_ID - ,unknown_pair_of_UE_X2AP_ID - ,ho_target_not_allowed - ,tx2relocoverall_expiry - ,trelocprep_expiry - ,cell_not_available - ,no_radio_resources_available_in_target_cell - ,invalid_MME_GroupID - ,unknown_MME_Code - ,encryption_and_or_integrity_protection_algorithms_not_supported - ,reportCharacteristicsEmpty - ,noReportPeriodicity - ,existingMeasurementID - ,unknown_eNB_Measurement_ID - ,measurement_temporarily_not_available - ,unspecified - ,load_balancing - ,handover_optimisation - ,value_out_of_allowed_range - ,multiple_E_RAB_ID_instances - ,switch_off_ongoing - ,not_supported_QCI_value - ,measurement_not_supported_for_the_object - ,tDCoverall_expiry - ,tDCprep_expiry - ,action_desirable_for_radio_reasons - ,reduce_load - ,resource_optimisation - ,time_critical_action - ,target_not_allowed - ,no_radio_resources_available - ,invalid_QoS_combination - ,encryption_algorithms_not_aupported - ,procedure_cancelled - ,rRM_purpose - ,improve_user_bit_rate - ,user_inactivity - ,radio_connection_with_UE_lost - ,failure_in_the_radio_interface_procedure - ,bearer_option_not_supported - ,mCG_Mobility - ,sCG_Mobility - ,count_reaches_max_value - ,unknown_old_en_gNB_UE_X2AP_ID - ,pDCP_Overload - } index_t; - -}; - -/* -CauseTransport ::= ENUMERATED { - transport-resource-unavailable, - unspecified, - ... -} -*/ - -struct CauseTransport : asn::enumerated<2, 0, true> -{ - static constexpr const char* name() {return "CauseTransport";} - using parent_t = asn::enumerated<2, 0, true>; - typedef enum { - transport_resource_unavailable - ,unspecified - } index_t; - -}; - -/* -CauseProtocol ::= ENUMERATED { - transfer-syntax-error, - abstract-syntax-error-reject, - abstract-syntax-error-ignore-and-notify, - message-not-compatible-with-receiver-state, - semantic-error, - unspecified, - abstract-syntax-error-falsely-constructed-message, - ... -} -*/ - -struct CauseProtocol : asn::enumerated<7, 0, true> -{ - static constexpr const char* name() {return "CauseProtocol";} - using parent_t = asn::enumerated<7, 0, true>; - typedef enum { - transfer_syntax_error - ,abstract_syntax_error_reject - ,abstract_syntax_error_ignore_and_notify - ,message_not_compatible_with_receiver_state - ,semantic_error - ,unspecified - ,abstract_syntax_error_falsely_constructed_message - } index_t; - -}; - -/* -CauseMisc ::= ENUMERATED { - control-processing-overload, - hardware-failure, - om-intervention, - not-enough-user-plane-processing-resources, - unspecified, - ... -} -*/ - -struct CauseMisc : asn::enumerated<5, 0, true> -{ - static constexpr const char* name() {return "CauseMisc";} - using parent_t = asn::enumerated<5, 0, true>; - typedef enum { - control_processing_overload - ,hardware_failure - ,om_intervention - ,not_enough_user_plane_processing_resources - ,unspecified - } index_t; - -}; - -/* -Cause ::= CHOICE { - radioNetwork CauseRadioNetwork, - transport CauseTransport, - protocol CauseProtocol, - misc CauseMisc, - ... -} -*/ - -struct Cause : asn::choice<4, 0, true> -{ - static constexpr const char* name() {return "Cause";} - using parent_t = asn::choice<4, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 5;} - void set_unknown() { set_index(5); } - ~Cause() {clear();} - struct radioNetwork_t : CauseRadioNetwork - { - static constexpr const char* name() {return "radioNetwork_t";} - using parent_t = CauseRadioNetwork; - - }; - struct transport_t : CauseTransport - { - static constexpr const char* name() {return "transport_t";} - using parent_t = CauseTransport; - - }; - struct protocol_t : CauseProtocol - { - static constexpr const char* name() {return "protocol_t";} - using parent_t = CauseProtocol; - - }; - struct misc_t : CauseMisc - { - static constexpr const char* name() {return "misc_t";} - using parent_t = CauseMisc; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - case 3: set_index(3); return v(var.build()); - case 4: set_index(4); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - case 3: return v(var.as()); - case 4: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - - } - radioNetwork_t& select_radioNetwork() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - radioNetwork_t const* get_radioNetwork() const { if(get_index() == 1) { return &var.as();} return nullptr; } - transport_t& select_transport() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - transport_t const* get_transport() const { if(get_index() == 2) { return &var.as();} return nullptr; } - protocol_t& select_protocol() { if(get_index() != 3) { clear(); set_index(3); return var.build();} return var.as();} - protocol_t const* get_protocol() const { if(get_index() == 3) { return &var.as();} return nullptr; } - misc_t& select_misc() { if(get_index() != 4) { clear(); set_index(4); return var.build();} return var.as();} - misc_t const* get_misc() const { if(get_index() == 4) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(radioNetwork_t)]; - char dummy2[sizeof(transport_t)]; - char dummy3[sizeof(protocol_t)]; - char dummy4[sizeof(misc_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -Cell-Size ::= ENUMERATED {verysmall, small, medium, large, ... } -*/ - -struct Cell_Size : asn::enumerated<4, 0, true> -{ - static constexpr const char* name() {return "Cell-Size";} - using parent_t = asn::enumerated<4, 0, true>; - typedef enum { - verysmall - ,small - ,medium - ,large - } index_t; - -}; - -/* -CellCapacityClassValue ::= INTEGER (1..100, ...) -*/ - -struct CellCapacityClassValue : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "CellCapacityClassValue";} - using parent_t = asn::integer<>; - -}; - -/* -CellDeploymentStatusIndicator ::= ENUMERATED {pre-change-notification, ...} -*/ - -struct CellDeploymentStatusIndicator : asn::enumerated<1, 0, true> -{ - static constexpr const char* name() {return "CellDeploymentStatusIndicator";} - using parent_t = asn::enumerated<1, 0, true>; - typedef enum { - pre_change_notification - } index_t; - -}; - -/* -ReplacingCellsList-Item ::= SEQUENCE { - eCGI ECGI, - ... -} -*/ - -struct ReplacingCellsList_Item : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "ReplacingCellsList-Item";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct eCGI_t : ECGI - { - static constexpr const char* name() {return "eCGI_t";} - using parent_t = ECGI; - - }; - eCGI_t& ref_eCGI() {return eCGI;} - eCGI_t const& ref_eCGI() const {return eCGI;} - template void decode(V& v) - { - v(eCGI); - - }; - template void encode(V& v) const - { - v(eCGI); - - }; - void clear() - { - eCGI.clear(); - - }; - private: - eCGI_t eCGI; - -}; -/* -ReplacingCellsList ::= SEQUENCE (SIZE(0.. maxCellineNB)) OF ReplacingCellsList-Item -*/ - -struct ReplacingCellsList_elm : ReplacingCellsList_Item -{ - static constexpr const char* name() {return "ReplacingCellsList_elm";} - using parent_t = ReplacingCellsList_Item; - -}; -struct ReplacingCellsList : asn::sequenceof -{ - static constexpr const char* name() {return "ReplacingCellsList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -CellReplacingInfo-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct CellReplacingInfo_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -CellReplacingInfo ::= SEQUENCE { - replacingCellsList ReplacingCellsList, - iE-Extensions ProtocolExtensionContainer { {CellReplacingInfo-ExtIEs}} OPTIONAL, - ... -} -*/ - -struct CellReplacingInfo : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "CellReplacingInfo";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct replacingCellsList_t : ReplacingCellsList - { - static constexpr const char* name() {return "replacingCellsList_t";} - using parent_t = ReplacingCellsList; - - }; - replacingCellsList_t& ref_replacingCellsList() {return replacingCellsList;} - replacingCellsList_t const& ref_replacingCellsList() const {return replacingCellsList;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(replacingCellsList); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(replacingCellsList); - v(iE_Extensions); - - }; - void clear() - { - replacingCellsList.clear(); - iE_Extensions.clear(); - - }; - private: - replacingCellsList_t replacingCellsList; - iE_Extensions_t iE_Extensions; - -}; -/* -CellReportingIndicator ::= ENUMERATED {stop-request, ... } -*/ - -struct CellReportingIndicator : asn::enumerated<1, 0, true> -{ - static constexpr const char* name() {return "CellReportingIndicator";} - using parent_t = asn::enumerated<1, 0, true>; - typedef enum { - stop_request - } index_t; - -}; - -/* -CellType-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct CellType_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -CellType ::= SEQUENCE { - cell-Size Cell-Size, - iE-Extensions ProtocolExtensionContainer { {CellType-ExtIEs}} OPTIONAL, - ... -} -*/ - -struct CellType : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "CellType";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct cell_Size_t : Cell_Size - { - static constexpr const char* name() {return "cell_Size_t";} - using parent_t = Cell_Size; - - }; - cell_Size_t& ref_cell_Size() {return cell_Size;} - cell_Size_t const& ref_cell_Size() const {return cell_Size;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(cell_Size); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(cell_Size); - v(iE_Extensions); - - }; - void clear() - { - cell_Size.clear(); - iE_Extensions.clear(); - - }; - private: - cell_Size_t cell_Size; - iE_Extensions_t iE_Extensions; - -}; -/* -CoMPHypothesisSetItem-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct CoMPHypothesisSetItem_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -CoMPHypothesisSetItem ::= SEQUENCE { - coMPCellID ECGI, - coMPHypothesis BIT STRING (SIZE(6..4400, ...)), - iE-Extensions ProtocolExtensionContainer { {CoMPHypothesisSetItem-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct CoMPHypothesisSetItem : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "CoMPHypothesisSetItem";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct coMPCellID_t : ECGI - { - static constexpr const char* name() {return "coMPCellID_t";} - using parent_t = ECGI; - - }; - coMPCellID_t& ref_coMPCellID() {return coMPCellID;} - coMPCellID_t const& ref_coMPCellID() const {return coMPCellID;} - struct coMPHypothesis_t : asn::bstring<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "coMPHypothesis_t";} - using parent_t = asn::bstring<>; - - }; - - coMPHypothesis_t& ref_coMPHypothesis() {return coMPHypothesis;} - coMPHypothesis_t const& ref_coMPHypothesis() const {return coMPHypothesis;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(coMPCellID); - v(coMPHypothesis); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(coMPCellID); - v(coMPHypothesis); - v(iE_Extensions); - - }; - void clear() - { - coMPCellID.clear(); - coMPHypothesis.clear(); - iE_Extensions.clear(); - - }; - private: - coMPCellID_t coMPCellID; - coMPHypothesis_t coMPHypothesis; - iE_Extensions_t iE_Extensions; - -}; -/* -CoMPHypothesisSet ::= SEQUENCE (SIZE(1..maxnoofCoMPCells)) OF CoMPHypothesisSetItem -*/ - -struct CoMPHypothesisSet_elm : CoMPHypothesisSetItem -{ - static constexpr const char* name() {return "CoMPHypothesisSet_elm";} - using parent_t = CoMPHypothesisSetItem; - -}; -struct CoMPHypothesisSet : asn::sequenceof -{ - static constexpr const char* name() {return "CoMPHypothesisSet";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -CoMPInformationItem-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct CoMPInformationItem_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -CoMPInformationItem ::= SEQUENCE (SIZE(1..maxnoofCoMPHypothesisSet)) OF - SEQUENCE { - coMPHypothesisSet CoMPHypothesisSet, - benefitMetric BenefitMetric, - iE-Extensions ProtocolExtensionContainer { {CoMPInformationItem-ExtIEs} } OPTIONAL, - ... - } -*/ - -struct CoMPInformationItem_elm : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "CoMPInformationItem_elm";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct coMPHypothesisSet_t : CoMPHypothesisSet - { - static constexpr const char* name() {return "coMPHypothesisSet_t";} - using parent_t = CoMPHypothesisSet; - - }; - coMPHypothesisSet_t& ref_coMPHypothesisSet() {return coMPHypothesisSet;} - coMPHypothesisSet_t const& ref_coMPHypothesisSet() const {return coMPHypothesisSet;} - struct benefitMetric_t : BenefitMetric - { - static constexpr const char* name() {return "benefitMetric_t";} - using parent_t = BenefitMetric; - - }; - benefitMetric_t& ref_benefitMetric() {return benefitMetric;} - benefitMetric_t const& ref_benefitMetric() const {return benefitMetric;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(coMPHypothesisSet); - v(benefitMetric); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(coMPHypothesisSet); - v(benefitMetric); - v(iE_Extensions); - - }; - void clear() - { - coMPHypothesisSet.clear(); - benefitMetric.clear(); - iE_Extensions.clear(); - - }; - private: - coMPHypothesisSet_t coMPHypothesisSet; - benefitMetric_t benefitMetric; - iE_Extensions_t iE_Extensions; - -}; -struct CoMPInformationItem : asn::sequenceof -{ - static constexpr const char* name() {return "CoMPInformationItem";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -CoMPInformationStartTime-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct CoMPInformationStartTime_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -CoMPInformationStartTime ::= SEQUENCE (SIZE(0..1)) OF - SEQUENCE { - startSFN INTEGER (0..1023, ...), - startSubframeNumber INTEGER (0..9, ...), - iE-Extensions ProtocolExtensionContainer { {CoMPInformationStartTime-ExtIEs} } OPTIONAL, - ... - } -*/ - -struct CoMPInformationStartTime_elm : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "CoMPInformationStartTime_elm";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct startSFN_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "startSFN_t";} - using parent_t = asn::integer<>; - - }; - - startSFN_t& ref_startSFN() {return startSFN;} - startSFN_t const& ref_startSFN() const {return startSFN;} - struct startSubframeNumber_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "startSubframeNumber_t";} - using parent_t = asn::integer<>; - - }; - - startSubframeNumber_t& ref_startSubframeNumber() {return startSubframeNumber;} - startSubframeNumber_t const& ref_startSubframeNumber() const {return startSubframeNumber;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(startSFN); - v(startSubframeNumber); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(startSFN); - v(startSubframeNumber); - v(iE_Extensions); - - }; - void clear() - { - startSFN.clear(); - startSubframeNumber.clear(); - iE_Extensions.clear(); - - }; - private: - startSFN_t startSFN; - startSubframeNumber_t startSubframeNumber; - iE_Extensions_t iE_Extensions; - -}; -struct CoMPInformationStartTime : asn::sequenceof -{ - static constexpr const char* name() {return "CoMPInformationStartTime";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -CoMPInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct CoMPInformation_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -CoMPInformation ::= SEQUENCE { - coMPInformationItem CoMPInformationItem, - coMPInformationStartTime CoMPInformationStartTime, - iE-Extensions ProtocolExtensionContainer { {CoMPInformation-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct CoMPInformation : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "CoMPInformation";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct coMPInformationItem_t : CoMPInformationItem - { - static constexpr const char* name() {return "coMPInformationItem_t";} - using parent_t = CoMPInformationItem; - - }; - coMPInformationItem_t& ref_coMPInformationItem() {return coMPInformationItem;} - coMPInformationItem_t const& ref_coMPInformationItem() const {return coMPInformationItem;} - struct coMPInformationStartTime_t : CoMPInformationStartTime - { - static constexpr const char* name() {return "coMPInformationStartTime_t";} - using parent_t = CoMPInformationStartTime; - - }; - coMPInformationStartTime_t& ref_coMPInformationStartTime() {return coMPInformationStartTime;} - coMPInformationStartTime_t const& ref_coMPInformationStartTime() const {return coMPInformationStartTime;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(coMPInformationItem); - v(coMPInformationStartTime); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(coMPInformationItem); - v(coMPInformationStartTime); - v(iE_Extensions); - - }; - void clear() - { - coMPInformationItem.clear(); - coMPInformationStartTime.clear(); - iE_Extensions.clear(); - - }; - private: - coMPInformationItem_t coMPInformationItem; - coMPInformationStartTime_t coMPInformationStartTime; - iE_Extensions_t iE_Extensions; - -}; -/* -CompositeAvailableCapacity-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct CompositeAvailableCapacity_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -CompositeAvailableCapacity ::= SEQUENCE { - cellCapacityClassValue CellCapacityClassValue OPTIONAL, - capacityValue CapacityValue, - iE-Extensions ProtocolExtensionContainer { {CompositeAvailableCapacity-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct CompositeAvailableCapacity : asn::sequence<3, 0, true, 2> -{ - static constexpr const char* name() {return "CompositeAvailableCapacity";} - using parent_t = asn::sequence<3, 0, true, 2>; - struct cellCapacityClassValue_t : CellCapacityClassValue - { - static constexpr const char* name() {return "cellCapacityClassValue_t";} - using parent_t = CellCapacityClassValue; - static constexpr bool optional = true; - - }; - cellCapacityClassValue_t& set_cellCapacityClassValue() { cellCapacityClassValue.setpresent(true); return cellCapacityClassValue;} - cellCapacityClassValue_t const* get_cellCapacityClassValue() const {return cellCapacityClassValue.is_valid() ? &cellCapacityClassValue : nullptr;} - struct capacityValue_t : CapacityValue - { - static constexpr const char* name() {return "capacityValue_t";} - using parent_t = CapacityValue; - - }; - capacityValue_t& ref_capacityValue() {return capacityValue;} - capacityValue_t const& ref_capacityValue() const {return capacityValue;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(cellCapacityClassValue); - v(capacityValue); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(cellCapacityClassValue); - v(capacityValue); - v(iE_Extensions); - - }; - void clear() - { - cellCapacityClassValue.clear(); - capacityValue.clear(); - iE_Extensions.clear(); - - }; - private: - cellCapacityClassValue_t cellCapacityClassValue; - capacityValue_t capacityValue; - iE_Extensions_t iE_Extensions; - -}; -/* -CompositeAvailableCapacityGroup-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct CompositeAvailableCapacityGroup_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -CompositeAvailableCapacityGroup ::= SEQUENCE { - dL-CompositeAvailableCapacity CompositeAvailableCapacity, - uL-CompositeAvailableCapacity CompositeAvailableCapacity, - iE-Extensions ProtocolExtensionContainer { {CompositeAvailableCapacityGroup-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct CompositeAvailableCapacityGroup : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "CompositeAvailableCapacityGroup";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct dL_CompositeAvailableCapacity_t : CompositeAvailableCapacity - { - static constexpr const char* name() {return "dL_CompositeAvailableCapacity_t";} - using parent_t = CompositeAvailableCapacity; - - }; - dL_CompositeAvailableCapacity_t& ref_dL_CompositeAvailableCapacity() {return dL_CompositeAvailableCapacity;} - dL_CompositeAvailableCapacity_t const& ref_dL_CompositeAvailableCapacity() const {return dL_CompositeAvailableCapacity;} - struct uL_CompositeAvailableCapacity_t : CompositeAvailableCapacity - { - static constexpr const char* name() {return "uL_CompositeAvailableCapacity_t";} - using parent_t = CompositeAvailableCapacity; - - }; - uL_CompositeAvailableCapacity_t& ref_uL_CompositeAvailableCapacity() {return uL_CompositeAvailableCapacity;} - uL_CompositeAvailableCapacity_t const& ref_uL_CompositeAvailableCapacity() const {return uL_CompositeAvailableCapacity;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(dL_CompositeAvailableCapacity); - v(uL_CompositeAvailableCapacity); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(dL_CompositeAvailableCapacity); - v(uL_CompositeAvailableCapacity); - v(iE_Extensions); - - }; - void clear() - { - dL_CompositeAvailableCapacity.clear(); - uL_CompositeAvailableCapacity.clear(); - iE_Extensions.clear(); - - }; - private: - dL_CompositeAvailableCapacity_t dL_CompositeAvailableCapacity; - uL_CompositeAvailableCapacity_t uL_CompositeAvailableCapacity; - iE_Extensions_t iE_Extensions; - -}; -/* -Correlation-ID ::= OCTET STRING (SIZE (4)) -*/ - -struct Correlation_ID : asn::ostring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "Correlation-ID";} - using parent_t = asn::ostring<>; - -}; - -/* -CoverageModification-Item ::= SEQUENCE { - eCGI ECGI, - coverageState INTEGER (0..15, ...), - cellDeploymentStatusIndicator CellDeploymentStatusIndicator OPTIONAL, - cellReplacingInfo CellReplacingInfo OPTIONAL, --- Included in case the Cell Deployment Status Indicator IE is present - ... -} -*/ - -struct CoverageModification_Item : asn::sequence<4, 0, true, 2> -{ - static constexpr const char* name() {return "CoverageModification-Item";} - using parent_t = asn::sequence<4, 0, true, 2>; - struct eCGI_t : ECGI - { - static constexpr const char* name() {return "eCGI_t";} - using parent_t = ECGI; - - }; - eCGI_t& ref_eCGI() {return eCGI;} - eCGI_t const& ref_eCGI() const {return eCGI;} - struct coverageState_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "coverageState_t";} - using parent_t = asn::integer<>; - - }; - - coverageState_t& ref_coverageState() {return coverageState;} - coverageState_t const& ref_coverageState() const {return coverageState;} - struct cellDeploymentStatusIndicator_t : CellDeploymentStatusIndicator - { - static constexpr const char* name() {return "cellDeploymentStatusIndicator_t";} - using parent_t = CellDeploymentStatusIndicator; - static constexpr bool optional = true; - - }; - cellDeploymentStatusIndicator_t& set_cellDeploymentStatusIndicator() { cellDeploymentStatusIndicator.setpresent(true); return cellDeploymentStatusIndicator;} - cellDeploymentStatusIndicator_t const* get_cellDeploymentStatusIndicator() const {return cellDeploymentStatusIndicator.is_valid() ? &cellDeploymentStatusIndicator : nullptr;} - struct cellReplacingInfo_t : CellReplacingInfo - { - static constexpr const char* name() {return "cellReplacingInfo_t";} - using parent_t = CellReplacingInfo; - static constexpr bool optional = true; - - }; - cellReplacingInfo_t& set_cellReplacingInfo() { cellReplacingInfo.setpresent(true); return cellReplacingInfo;} - cellReplacingInfo_t const* get_cellReplacingInfo() const {return cellReplacingInfo.is_valid() ? &cellReplacingInfo : nullptr;} - template void decode(V& v) - { - v(eCGI); - v(coverageState); - v(cellDeploymentStatusIndicator); - v(cellReplacingInfo); - - }; - template void encode(V& v) const - { - v(eCGI); - v(coverageState); - v(cellDeploymentStatusIndicator); - v(cellReplacingInfo); - - }; - void clear() - { - eCGI.clear(); - coverageState.clear(); - cellDeploymentStatusIndicator.clear(); - cellReplacingInfo.clear(); - - }; - private: - eCGI_t eCGI; - coverageState_t coverageState; - cellDeploymentStatusIndicator_t cellDeploymentStatusIndicator; - cellReplacingInfo_t cellReplacingInfo; - -}; -/* -CoverageModificationList ::= SEQUENCE (SIZE (1..maxCellineNB)) OF CoverageModification-Item -*/ - -struct CoverageModificationList_elm : CoverageModification_Item -{ - static constexpr const char* name() {return "CoverageModificationList_elm";} - using parent_t = CoverageModification_Item; - -}; -struct CoverageModificationList : asn::sequenceof -{ - static constexpr const char* name() {return "CoverageModificationList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -TypeOfError ::= ENUMERATED { - not-understood, - missing, - ... -} -*/ - -struct TypeOfError : asn::enumerated<2, 0, true> -{ - static constexpr const char* name() {return "TypeOfError";} - using parent_t = asn::enumerated<2, 0, true>; - typedef enum { - not_understood - ,missing - } index_t; - -}; - -/* -CriticalityDiagnostics-IE-List-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct CriticalityDiagnostics_IE_List_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -CriticalityDiagnostics-IE-List ::= SEQUENCE (SIZE (1..maxNrOfErrors)) OF - SEQUENCE { - iECriticality Criticality, - iE-ID ProtocolIE-ID, - typeOfError TypeOfError, - iE-Extensions ProtocolExtensionContainer { {CriticalityDiagnostics-IE-List-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct CriticalityDiagnostics_IE_List_elm : asn::sequence<4, 0, true, 1> -{ - static constexpr const char* name() {return "CriticalityDiagnostics_IE_List_elm";} - using parent_t = asn::sequence<4, 0, true, 1>; - struct iECriticality_t : Criticality - { - static constexpr const char* name() {return "iECriticality_t";} - using parent_t = Criticality; - - }; - iECriticality_t& ref_iECriticality() {return iECriticality;} - iECriticality_t const& ref_iECriticality() const {return iECriticality;} - struct iE_ID_t : ProtocolIE_ID - { - static constexpr const char* name() {return "iE_ID_t";} - using parent_t = ProtocolIE_ID; - - }; - iE_ID_t& ref_iE_ID() {return iE_ID;} - iE_ID_t const& ref_iE_ID() const {return iE_ID;} - struct typeOfError_t : TypeOfError - { - static constexpr const char* name() {return "typeOfError_t";} - using parent_t = TypeOfError; - - }; - typeOfError_t& ref_typeOfError() {return typeOfError;} - typeOfError_t const& ref_typeOfError() const {return typeOfError;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(iECriticality); - v(iE_ID); - v(typeOfError); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(iECriticality); - v(iE_ID); - v(typeOfError); - v(iE_Extensions); - - }; - void clear() - { - iECriticality.clear(); - iE_ID.clear(); - typeOfError.clear(); - iE_Extensions.clear(); - - }; - private: - iECriticality_t iECriticality; - iE_ID_t iE_ID; - typeOfError_t typeOfError; - iE_Extensions_t iE_Extensions; - -}; -struct CriticalityDiagnostics_IE_List : asn::sequenceof -{ - static constexpr const char* name() {return "CriticalityDiagnostics-IE-List";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -CriticalityDiagnostics-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct CriticalityDiagnostics_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -CriticalityDiagnostics ::= SEQUENCE { - procedureCode ProcedureCode OPTIONAL, - triggeringMessage TriggeringMessage OPTIONAL, - procedureCriticality Criticality OPTIONAL, - iEsCriticalityDiagnostics CriticalityDiagnostics-IE-List OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {CriticalityDiagnostics-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct CriticalityDiagnostics : asn::sequence<5, 0, true, 5> -{ - static constexpr const char* name() {return "CriticalityDiagnostics";} - using parent_t = asn::sequence<5, 0, true, 5>; - struct procedureCode_t : ProcedureCode - { - static constexpr const char* name() {return "procedureCode_t";} - using parent_t = ProcedureCode; - static constexpr bool optional = true; - - }; - procedureCode_t& set_procedureCode() { procedureCode.setpresent(true); return procedureCode;} - procedureCode_t const* get_procedureCode() const {return procedureCode.is_valid() ? &procedureCode : nullptr;} - struct triggeringMessage_t : TriggeringMessage - { - static constexpr const char* name() {return "triggeringMessage_t";} - using parent_t = TriggeringMessage; - static constexpr bool optional = true; - - }; - triggeringMessage_t& set_triggeringMessage() { triggeringMessage.setpresent(true); return triggeringMessage;} - triggeringMessage_t const* get_triggeringMessage() const {return triggeringMessage.is_valid() ? &triggeringMessage : nullptr;} - struct procedureCriticality_t : Criticality - { - static constexpr const char* name() {return "procedureCriticality_t";} - using parent_t = Criticality; - static constexpr bool optional = true; - - }; - procedureCriticality_t& set_procedureCriticality() { procedureCriticality.setpresent(true); return procedureCriticality;} - procedureCriticality_t const* get_procedureCriticality() const {return procedureCriticality.is_valid() ? &procedureCriticality : nullptr;} - struct iEsCriticalityDiagnostics_t : CriticalityDiagnostics_IE_List - { - static constexpr const char* name() {return "iEsCriticalityDiagnostics_t";} - using parent_t = CriticalityDiagnostics_IE_List; - static constexpr bool optional = true; - - }; - iEsCriticalityDiagnostics_t& set_iEsCriticalityDiagnostics() { iEsCriticalityDiagnostics.setpresent(true); return iEsCriticalityDiagnostics;} - iEsCriticalityDiagnostics_t const* get_iEsCriticalityDiagnostics() const {return iEsCriticalityDiagnostics.is_valid() ? &iEsCriticalityDiagnostics : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(procedureCode); - v(triggeringMessage); - v(procedureCriticality); - v(iEsCriticalityDiagnostics); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(procedureCode); - v(triggeringMessage); - v(procedureCriticality); - v(iEsCriticalityDiagnostics); - v(iE_Extensions); - - }; - void clear() - { - procedureCode.clear(); - triggeringMessage.clear(); - procedureCriticality.clear(); - iEsCriticalityDiagnostics.clear(); - iE_Extensions.clear(); - - }; - private: - procedureCode_t procedureCode; - triggeringMessage_t triggeringMessage; - procedureCriticality_t procedureCriticality; - iEsCriticalityDiagnostics_t iEsCriticalityDiagnostics; - iE_Extensions_t iE_Extensions; - -}; -/* -DL-Forwarding ::= ENUMERATED { - dL-forwardingProposed, - ... -} -*/ - -struct DL_Forwarding : asn::enumerated<1, 0, true> -{ - static constexpr const char* name() {return "DL-Forwarding";} - using parent_t = asn::enumerated<1, 0, true>; - typedef enum { - dL_forwardingProposed - } index_t; - -}; - -/* -DL-GBR-PRB-usage::= INTEGER (0..100) -*/ - -struct DL_GBR_PRB_usage : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "DL-GBR-PRB-usage";} - using parent_t = asn::integer<>; - -}; - -/* -DL-Total-PRB-usage::= INTEGER (0..100) -*/ - -struct DL_Total_PRB_usage : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "DL-Total-PRB-usage";} - using parent_t = asn::integer<>; - -}; - -/* -DL-non-GBR-PRB-usage::= INTEGER (0..100) -*/ - -struct DL_non_GBR_PRB_usage : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "DL-non-GBR-PRB-usage";} - using parent_t = asn::integer<>; - -}; - -/* -DL-scheduling-PDCCH-CCE-usage::= INTEGER (0..100) -*/ - -struct DL_scheduling_PDCCH_CCE_usage : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "DL-scheduling-PDCCH-CCE-usage";} - using parent_t = asn::integer<>; - -}; - -/* -DataTrafficResources ::= BIT STRING (SIZE(6..17600)) -*/ - -struct DataTrafficResources : asn::bstring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "DataTrafficResources";} - using parent_t = asn::bstring<>; - -}; - -/* -DLResourceBitmapULandDLSharing ::= DataTrafficResources -*/ - -struct DLResourceBitmapULandDLSharing : DataTrafficResources -{ - static constexpr const char* name() {return "DLResourceBitmapULandDLSharing";} - using parent_t = DataTrafficResources; - -}; -/* -DLResourcesULandDLSharing ::= CHOICE { -unchanged NULL, - changed DLResourceBitmapULandDLSharing, - ... -} -*/ - -struct DLResourcesULandDLSharing : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "DLResourcesULandDLSharing";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~DLResourcesULandDLSharing() {clear();} - struct unchanged_t : asn::nulltype - { - static constexpr const char* name() {return "unchanged_t";} - using parent_t = asn::nulltype; - - }; - struct changed_t : DLResourceBitmapULandDLSharing - { - static constexpr const char* name() {return "changed_t";} - using parent_t = DLResourceBitmapULandDLSharing; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - unchanged_t& select_unchanged() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - unchanged_t const* get_unchanged() const { if(get_index() == 1) { return &var.as();} return nullptr; } - changed_t& select_changed() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - changed_t const* get_changed() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(unchanged_t)]; - char dummy2[sizeof(changed_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -DRB-ID ::= INTEGER (1..32) -*/ - -struct DRB_ID : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "DRB-ID";} - using parent_t = asn::integer<>; - -}; - -/* -ULOnlySharing-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct ULOnlySharing_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ULOnlySharing ::= SEQUENCE{ - uLResourceBitmapULOnlySharing DataTrafficResources, - iE-Extensions ProtocolExtensionContainer { {ULOnlySharing-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct ULOnlySharing : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "ULOnlySharing";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct uLResourceBitmapULOnlySharing_t : DataTrafficResources - { - static constexpr const char* name() {return "uLResourceBitmapULOnlySharing_t";} - using parent_t = DataTrafficResources; - - }; - uLResourceBitmapULOnlySharing_t& ref_uLResourceBitmapULOnlySharing() {return uLResourceBitmapULOnlySharing;} - uLResourceBitmapULOnlySharing_t const& ref_uLResourceBitmapULOnlySharing() const {return uLResourceBitmapULOnlySharing;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(uLResourceBitmapULOnlySharing); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(uLResourceBitmapULOnlySharing); - v(iE_Extensions); - - }; - void clear() - { - uLResourceBitmapULOnlySharing.clear(); - iE_Extensions.clear(); - - }; - private: - uLResourceBitmapULOnlySharing_t uLResourceBitmapULOnlySharing; - iE_Extensions_t iE_Extensions; - -}; -/* -ULResourceBitmapULandDLSharing ::= DataTrafficResources -*/ - -struct ULResourceBitmapULandDLSharing : DataTrafficResources -{ - static constexpr const char* name() {return "ULResourceBitmapULandDLSharing";} - using parent_t = DataTrafficResources; - -}; -/* -ULResourcesULandDLSharing ::= CHOICE { - unchanged NULL, - changed ULResourceBitmapULandDLSharing, - ... -} -*/ - -struct ULResourcesULandDLSharing : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "ULResourcesULandDLSharing";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~ULResourcesULandDLSharing() {clear();} - struct unchanged_t : asn::nulltype - { - static constexpr const char* name() {return "unchanged_t";} - using parent_t = asn::nulltype; - - }; - struct changed_t : ULResourceBitmapULandDLSharing - { - static constexpr const char* name() {return "changed_t";} - using parent_t = ULResourceBitmapULandDLSharing; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - unchanged_t& select_unchanged() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - unchanged_t const* get_unchanged() const { if(get_index() == 1) { return &var.as();} return nullptr; } - changed_t& select_changed() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - changed_t const* get_changed() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(unchanged_t)]; - char dummy2[sizeof(changed_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -ULandDLSharing-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct ULandDLSharing_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ULandDLSharing ::= SEQUENCE{ - uLResourcesULandDLSharing ULResourcesULandDLSharing, - dLResourcesULandDLSharing DLResourcesULandDLSharing, - iE-Extensions ProtocolExtensionContainer { {ULandDLSharing-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct ULandDLSharing : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "ULandDLSharing";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct uLResourcesULandDLSharing_t : ULResourcesULandDLSharing - { - static constexpr const char* name() {return "uLResourcesULandDLSharing_t";} - using parent_t = ULResourcesULandDLSharing; - - }; - uLResourcesULandDLSharing_t& ref_uLResourcesULandDLSharing() {return uLResourcesULandDLSharing;} - uLResourcesULandDLSharing_t const& ref_uLResourcesULandDLSharing() const {return uLResourcesULandDLSharing;} - struct dLResourcesULandDLSharing_t : DLResourcesULandDLSharing - { - static constexpr const char* name() {return "dLResourcesULandDLSharing_t";} - using parent_t = DLResourcesULandDLSharing; - - }; - dLResourcesULandDLSharing_t& ref_dLResourcesULandDLSharing() {return dLResourcesULandDLSharing;} - dLResourcesULandDLSharing_t const& ref_dLResourcesULandDLSharing() const {return dLResourcesULandDLSharing;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(uLResourcesULandDLSharing); - v(dLResourcesULandDLSharing); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(uLResourcesULandDLSharing); - v(dLResourcesULandDLSharing); - v(iE_Extensions); - - }; - void clear() - { - uLResourcesULandDLSharing.clear(); - dLResourcesULandDLSharing.clear(); - iE_Extensions.clear(); - - }; - private: - uLResourcesULandDLSharing_t uLResourcesULandDLSharing; - dLResourcesULandDLSharing_t dLResourcesULandDLSharing; - iE_Extensions_t iE_Extensions; - -}; -/* -SharedResourceType ::= CHOICE{ - uLOnlySharing ULOnlySharing, - uLandDLSharing ULandDLSharing, - ... -} -*/ - -struct SharedResourceType : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "SharedResourceType";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~SharedResourceType() {clear();} - struct uLOnlySharing_t : ULOnlySharing - { - static constexpr const char* name() {return "uLOnlySharing_t";} - using parent_t = ULOnlySharing; - - }; - struct uLandDLSharing_t : ULandDLSharing - { - static constexpr const char* name() {return "uLandDLSharing_t";} - using parent_t = ULandDLSharing; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - uLOnlySharing_t& select_uLOnlySharing() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - uLOnlySharing_t const* get_uLOnlySharing() const { if(get_index() == 1) { return &var.as();} return nullptr; } - uLandDLSharing_t& select_uLandDLSharing() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - uLandDLSharing_t const* get_uLandDLSharing() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(uLOnlySharing_t)]; - char dummy2[sizeof(uLandDLSharing_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -SubframeType ::= ENUMERATED{mbsfn,nonmbsfn,...} -*/ - -struct SubframeType : asn::enumerated<2, 0, true> -{ - static constexpr const char* name() {return "SubframeType";} - using parent_t = asn::enumerated<2, 0, true>; - typedef enum { - mbsfn - ,nonmbsfn - } index_t; - -}; - -/* -ReservedSubframePattern-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct ReservedSubframePattern_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ReservedSubframePattern ::= SEQUENCE{ - subframeType SubframeType, - reservedSubframePattern BIT STRING (SIZE(10..160)), - mBSFNControlRegionLength INTEGER (0..3), - iE-Extensions ProtocolExtensionContainer { {ReservedSubframePattern-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct ReservedSubframePattern : asn::sequence<4, 0, true, 1> -{ - static constexpr const char* name() {return "ReservedSubframePattern";} - using parent_t = asn::sequence<4, 0, true, 1>; - struct subframeType_t : SubframeType - { - static constexpr const char* name() {return "subframeType_t";} - using parent_t = SubframeType; - - }; - subframeType_t& ref_subframeType() {return subframeType;} - subframeType_t const& ref_subframeType() const {return subframeType;} - struct reservedSubframePattern_t : asn::bstring<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "reservedSubframePattern_t";} - using parent_t = asn::bstring<>; - - }; - - reservedSubframePattern_t& ref_reservedSubframePattern() {return reservedSubframePattern;} - reservedSubframePattern_t const& ref_reservedSubframePattern() const {return reservedSubframePattern;} - struct mBSFNControlRegionLength_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "mBSFNControlRegionLength_t";} - using parent_t = asn::integer<>; - - }; - - mBSFNControlRegionLength_t& ref_mBSFNControlRegionLength() {return mBSFNControlRegionLength;} - mBSFNControlRegionLength_t const& ref_mBSFNControlRegionLength() const {return mBSFNControlRegionLength;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(subframeType); - v(reservedSubframePattern); - v(mBSFNControlRegionLength); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(subframeType); - v(reservedSubframePattern); - v(mBSFNControlRegionLength); - v(iE_Extensions); - - }; - void clear() - { - subframeType.clear(); - reservedSubframePattern.clear(); - mBSFNControlRegionLength.clear(); - iE_Extensions.clear(); - - }; - private: - subframeType_t subframeType; - reservedSubframePattern_t reservedSubframePattern; - mBSFNControlRegionLength_t mBSFNControlRegionLength; - iE_Extensions_t iE_Extensions; - -}; -/* -DataTrafficResourceIndication-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct DataTrafficResourceIndication_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -DataTrafficResourceIndication ::= SEQUENCE { - activationSFN INTEGER (0..1023), - sharedResourceType SharedResourceType, - reservedSubframePattern ReservedSubframePattern OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {DataTrafficResourceIndication-ExtIEs} } OPTIONAL, -... -} -*/ - -struct DataTrafficResourceIndication : asn::sequence<4, 0, true, 2> -{ - static constexpr const char* name() {return "DataTrafficResourceIndication";} - using parent_t = asn::sequence<4, 0, true, 2>; - struct activationSFN_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "activationSFN_t";} - using parent_t = asn::integer<>; - - }; - - activationSFN_t& ref_activationSFN() {return activationSFN;} - activationSFN_t const& ref_activationSFN() const {return activationSFN;} - struct sharedResourceType_t : SharedResourceType - { - static constexpr const char* name() {return "sharedResourceType_t";} - using parent_t = SharedResourceType; - - }; - sharedResourceType_t& ref_sharedResourceType() {return sharedResourceType;} - sharedResourceType_t const& ref_sharedResourceType() const {return sharedResourceType;} - struct reservedSubframePattern_t : ReservedSubframePattern - { - static constexpr const char* name() {return "reservedSubframePattern_t";} - using parent_t = ReservedSubframePattern; - static constexpr bool optional = true; - - }; - reservedSubframePattern_t& set_reservedSubframePattern() { reservedSubframePattern.setpresent(true); return reservedSubframePattern;} - reservedSubframePattern_t const* get_reservedSubframePattern() const {return reservedSubframePattern.is_valid() ? &reservedSubframePattern : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(activationSFN); - v(sharedResourceType); - v(reservedSubframePattern); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(activationSFN); - v(sharedResourceType); - v(reservedSubframePattern); - v(iE_Extensions); - - }; - void clear() - { - activationSFN.clear(); - sharedResourceType.clear(); - reservedSubframePattern.clear(); - iE_Extensions.clear(); - - }; - private: - activationSFN_t activationSFN; - sharedResourceType_t sharedResourceType; - reservedSubframePattern_t reservedSubframePattern; - iE_Extensions_t iE_Extensions; - -}; -/* -DeactivationIndication::= ENUMERATED { - deactivated, - ... -} -*/ - -struct DeactivationIndication : asn::enumerated<1, 0, true> -{ - static constexpr const char* name() {return "DeactivationIndication";} - using parent_t = asn::enumerated<1, 0, true>; - typedef enum { - deactivated - } index_t; - -}; - -/* -DeliveryStatus-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct DeliveryStatus_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -DeliveryStatus ::= SEQUENCE { - highestSuccessDeliveredPDCPSN INTEGER (0..4095), - iE-Extensions ProtocolExtensionContainer { {DeliveryStatus-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct DeliveryStatus : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "DeliveryStatus";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct highestSuccessDeliveredPDCPSN_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "highestSuccessDeliveredPDCPSN_t";} - using parent_t = asn::integer<>; - - }; - - highestSuccessDeliveredPDCPSN_t& ref_highestSuccessDeliveredPDCPSN() {return highestSuccessDeliveredPDCPSN;} - highestSuccessDeliveredPDCPSN_t const& ref_highestSuccessDeliveredPDCPSN() const {return highestSuccessDeliveredPDCPSN;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(highestSuccessDeliveredPDCPSN); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(highestSuccessDeliveredPDCPSN); - v(iE_Extensions); - - }; - void clear() - { - highestSuccessDeliveredPDCPSN.clear(); - iE_Extensions.clear(); - - }; - private: - highestSuccessDeliveredPDCPSN_t highestSuccessDeliveredPDCPSN; - iE_Extensions_t iE_Extensions; - -}; -/* -DuplicationActivation::= ENUMERATED {active, inactive, ...} -*/ - -struct DuplicationActivation : asn::enumerated<2, 0, true> -{ - static constexpr const char* name() {return "DuplicationActivation";} - using parent_t = asn::enumerated<2, 0, true>; - typedef enum { - active - ,inactive - } index_t; - -}; - -/* -PA-Values ::= ENUMERATED { - dB-6, - dB-4dot77, - dB-3, - dB-1dot77, - dB0, - dB1, - dB2, - dB3, - ... -} -*/ - -struct PA_Values : asn::enumerated<8, 0, true> -{ - static constexpr const char* name() {return "PA-Values";} - using parent_t = asn::enumerated<8, 0, true>; - typedef enum { - dB_6 - ,dB_4dot77 - ,dB_3 - ,dB_1dot77 - ,dB0 - ,dB1 - ,dB2 - ,dB3 - } index_t; - -}; - -/* -DynamicNAICSInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct DynamicNAICSInformation_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -DynamicNAICSInformation ::= SEQUENCE { - transmissionModes BIT STRING (SIZE(8)) OPTIONAL, - pB-information INTEGER(0..3) OPTIONAL, - pA-list SEQUENCE (SIZE(0..maxnoofPA)) OF PA-Values, - iE-Extensions ProtocolExtensionContainer { {DynamicNAICSInformation-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct DynamicNAICSInformation : asn::sequence<4, 0, true, 3> -{ - static constexpr const char* name() {return "DynamicNAICSInformation";} - using parent_t = asn::sequence<4, 0, true, 3>; - struct transmissionModes_t : asn::bstring<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "transmissionModes_t";} - using parent_t = asn::bstring<>; - static constexpr bool optional = true; - - }; - - transmissionModes_t& set_transmissionModes() { transmissionModes.setpresent(true); return transmissionModes;} - transmissionModes_t const* get_transmissionModes() const {return transmissionModes.is_valid() ? &transmissionModes : nullptr;} - struct pB_information_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "pB_information_t";} - using parent_t = asn::integer<>; - static constexpr bool optional = true; - - }; - - pB_information_t& set_pB_information() { pB_information.setpresent(true); return pB_information;} - pB_information_t const* get_pB_information() const {return pB_information.is_valid() ? &pB_information : nullptr;} - struct pA_list_t_elm : PA_Values - { - static constexpr const char* name() {return "pA_list_t_elm";} - using parent_t = PA_Values; - - }; - struct pA_list_t : asn::sequenceof - { - static constexpr const char* name() {return "pA_list_t";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - - }; - pA_list_t& ref_pA_list() {return pA_list;} - pA_list_t const& ref_pA_list() const {return pA_list;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(transmissionModes); - v(pB_information); - v(pA_list); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(transmissionModes); - v(pB_information); - v(pA_list); - v(iE_Extensions); - - }; - void clear() - { - transmissionModes.clear(); - pB_information.clear(); - pA_list.clear(); - iE_Extensions.clear(); - - }; - private: - transmissionModes_t transmissionModes; - pB_information_t pB_information; - pA_list_t pA_list; - iE_Extensions_t iE_Extensions; - -}; -/* -DynamicDLTransmissionInformation ::= CHOICE { - naics-active DynamicNAICSInformation, - naics-inactive NULL, - ... -} -*/ - -struct DynamicDLTransmissionInformation : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "DynamicDLTransmissionInformation";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~DynamicDLTransmissionInformation() {clear();} - struct naics_active_t : DynamicNAICSInformation - { - static constexpr const char* name() {return "naics_active_t";} - using parent_t = DynamicNAICSInformation; - - }; - struct naics_inactive_t : asn::nulltype - { - static constexpr const char* name() {return "naics_inactive_t";} - using parent_t = asn::nulltype; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - naics_active_t& select_naics_active() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - naics_active_t const* get_naics_active() const { if(get_index() == 1) { return &var.as();} return nullptr; } - naics_inactive_t& select_naics_inactive() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - naics_inactive_t const* get_naics_inactive() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(naics_active_t)]; - char dummy2[sizeof(naics_inactive_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -E-RAB-ID ::= INTEGER (0..15, ...) -*/ - -struct E_RAB_ID : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "E-RAB-ID";} - using parent_t = asn::integer<>; - -}; - -/* -E-RAB-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RAB_Item_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RAB-Item ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - cause Cause, - iE-Extensions ProtocolExtensionContainer { {E-RAB-Item-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RAB_Item : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "E-RAB-Item";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct cause_t : Cause - { - static constexpr const char* name() {return "cause_t";} - using parent_t = Cause; - - }; - cause_t& ref_cause() {return cause;} - cause_t const& ref_cause() const {return cause;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(cause); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(cause); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - cause.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - cause_t cause; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RAB-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RAB-Item CRITICALITY ignore TYPE E-RAB-Item PRESENCE mandatory }, - ... -} -*/ - -struct E_RAB_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RAB_Item() { set(id_E_RAB_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RAB_Item)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RAB_Item);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RAB_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RAB_Item& select_id_E_RAB_Item() { return set(1); } - E_RAB_Item const* get_id_E_RAB_Item() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RAB_Item()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RAB_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RAB_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -QCI ::= INTEGER (0..255) -*/ - -struct QCI : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "QCI";} - using parent_t = asn::integer<>; - -}; - -/* -ExtendedBitRate ::= INTEGER (10000000001..4000000000000,...) -*/ - -struct ExtendedBitRate : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "ExtendedBitRate";} - using parent_t = asn::integer<>; - -}; - -/* -GBR-QosInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { --- Extension for maximum bitrate > 10Gbps -- - { ID id-extended-e-RAB-MaximumBitrateDL CRITICALITY ignore EXTENSION ExtendedBitRate PRESENCE optional}| - { ID id-extended-e-RAB-MaximumBitrateUL CRITICALITY ignore EXTENSION ExtendedBitRate PRESENCE optional}| - { ID id-extended-e-RAB-GuaranteedBitrateDL CRITICALITY ignore EXTENSION ExtendedBitRate PRESENCE optional}| - { ID id-extended-e-RAB-GuaranteedBitrateUL CRITICALITY ignore EXTENSION ExtendedBitRate PRESENCE optional}, - ... -} -*/ - -struct GBR_QosInformation_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_extended_e_RAB_MaximumBitrateDL() { set(id_extended_e_RAB_MaximumBitrateDL); type=1;} - void select_id_extended_e_RAB_MaximumBitrateUL() { set(id_extended_e_RAB_MaximumBitrateUL); type=2;} - void select_id_extended_e_RAB_GuaranteedBitrateDL() { set(id_extended_e_RAB_GuaranteedBitrateDL); type=3;} - void select_id_extended_e_RAB_GuaranteedBitrateUL() { set(id_extended_e_RAB_GuaranteedBitrateUL); type=4;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_extended_e_RAB_MaximumBitrateDL)) { type = 1; return true; } - else if(equal(id_extended_e_RAB_MaximumBitrateUL)) { type = 2; return true; } - else if(equal(id_extended_e_RAB_GuaranteedBitrateDL)) { type = 3; return true; } - else if(equal(id_extended_e_RAB_GuaranteedBitrateUL)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_extended_e_RAB_MaximumBitrateDL);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_extended_e_RAB_MaximumBitrateUL);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_extended_e_RAB_GuaranteedBitrateDL);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_extended_e_RAB_GuaranteedBitrateUL);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_extended_e_RAB_MaximumBitrateDL() { set(ignore); type=1;} - void select_id_extended_e_RAB_MaximumBitrateUL() { set(ignore); type=2;} - void select_id_extended_e_RAB_GuaranteedBitrateDL() { set(ignore); type=3;} - void select_id_extended_e_RAB_GuaranteedBitrateUL() { set(ignore); type=4;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - ExtendedBitRate& select_id_extended_e_RAB_MaximumBitrateDL() { return set(1); } - ExtendedBitRate const* get_id_extended_e_RAB_MaximumBitrateDL() const { return get(1); } - ExtendedBitRate& select_id_extended_e_RAB_MaximumBitrateUL() { return set(2); } - ExtendedBitRate const* get_id_extended_e_RAB_MaximumBitrateUL() const { return get(2); } - ExtendedBitRate& select_id_extended_e_RAB_GuaranteedBitrateDL() { return set(3); } - ExtendedBitRate const* get_id_extended_e_RAB_GuaranteedBitrateDL() const { return get(3); } - ExtendedBitRate& select_id_extended_e_RAB_GuaranteedBitrateUL() { return set(4); } - ExtendedBitRate const* get_id_extended_e_RAB_GuaranteedBitrateUL() const { return get(4); } - bool is_unknown() const { return type == 5; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_extended_e_RAB_MaximumBitrateDL()); return true; - case 2: v(select_id_extended_e_RAB_MaximumBitrateUL()); return true; - case 3: v(select_id_extended_e_RAB_GuaranteedBitrateDL()); return true; - case 4: v(select_id_extended_e_RAB_GuaranteedBitrateUL()); return true; - case 5: if(type != 5) {clear(); asn::base::set();} type = 5; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(ExtendedBitRate)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_extended_e_RAB_MaximumBitrateDL() { set(optional); type=1;} - void select_id_extended_e_RAB_MaximumBitrateUL() { set(optional); type=2;} - void select_id_extended_e_RAB_GuaranteedBitrateDL() { set(optional); type=3;} - void select_id_extended_e_RAB_GuaranteedBitrateUL() { set(optional); type=4;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -GBR-QosInformation ::= SEQUENCE { - e-RAB-MaximumBitrateDL BitRate, - e-RAB-MaximumBitrateUL BitRate, - e-RAB-GuaranteedBitrateDL BitRate, - e-RAB-GuaranteedBitrateUL BitRate, - iE-Extensions ProtocolExtensionContainer { {GBR-QosInformation-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct GBR_QosInformation : asn::sequence<5, 0, true, 1> -{ - static constexpr const char* name() {return "GBR-QosInformation";} - using parent_t = asn::sequence<5, 0, true, 1>; - struct e_RAB_MaximumBitrateDL_t : BitRate - { - static constexpr const char* name() {return "e_RAB_MaximumBitrateDL_t";} - using parent_t = BitRate; - - }; - e_RAB_MaximumBitrateDL_t& ref_e_RAB_MaximumBitrateDL() {return e_RAB_MaximumBitrateDL;} - e_RAB_MaximumBitrateDL_t const& ref_e_RAB_MaximumBitrateDL() const {return e_RAB_MaximumBitrateDL;} - struct e_RAB_MaximumBitrateUL_t : BitRate - { - static constexpr const char* name() {return "e_RAB_MaximumBitrateUL_t";} - using parent_t = BitRate; - - }; - e_RAB_MaximumBitrateUL_t& ref_e_RAB_MaximumBitrateUL() {return e_RAB_MaximumBitrateUL;} - e_RAB_MaximumBitrateUL_t const& ref_e_RAB_MaximumBitrateUL() const {return e_RAB_MaximumBitrateUL;} - struct e_RAB_GuaranteedBitrateDL_t : BitRate - { - static constexpr const char* name() {return "e_RAB_GuaranteedBitrateDL_t";} - using parent_t = BitRate; - - }; - e_RAB_GuaranteedBitrateDL_t& ref_e_RAB_GuaranteedBitrateDL() {return e_RAB_GuaranteedBitrateDL;} - e_RAB_GuaranteedBitrateDL_t const& ref_e_RAB_GuaranteedBitrateDL() const {return e_RAB_GuaranteedBitrateDL;} - struct e_RAB_GuaranteedBitrateUL_t : BitRate - { - static constexpr const char* name() {return "e_RAB_GuaranteedBitrateUL_t";} - using parent_t = BitRate; - - }; - e_RAB_GuaranteedBitrateUL_t& ref_e_RAB_GuaranteedBitrateUL() {return e_RAB_GuaranteedBitrateUL;} - e_RAB_GuaranteedBitrateUL_t const& ref_e_RAB_GuaranteedBitrateUL() const {return e_RAB_GuaranteedBitrateUL;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_MaximumBitrateDL); - v(e_RAB_MaximumBitrateUL); - v(e_RAB_GuaranteedBitrateDL); - v(e_RAB_GuaranteedBitrateUL); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_MaximumBitrateDL); - v(e_RAB_MaximumBitrateUL); - v(e_RAB_GuaranteedBitrateDL); - v(e_RAB_GuaranteedBitrateUL); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_MaximumBitrateDL.clear(); - e_RAB_MaximumBitrateUL.clear(); - e_RAB_GuaranteedBitrateDL.clear(); - e_RAB_GuaranteedBitrateUL.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_MaximumBitrateDL_t e_RAB_MaximumBitrateDL; - e_RAB_MaximumBitrateUL_t e_RAB_MaximumBitrateUL; - e_RAB_GuaranteedBitrateDL_t e_RAB_GuaranteedBitrateDL; - e_RAB_GuaranteedBitrateUL_t e_RAB_GuaranteedBitrateUL; - iE_Extensions_t iE_Extensions; - -}; -/* -Packet-LossRate ::= INTEGER(0..1000) -*/ - -struct Packet_LossRate : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "Packet-LossRate";} - using parent_t = asn::integer<>; - -}; - -/* -E-RAB-Level-QoS-Parameters-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { --- Extended for introduction of downlink and uplink packet loss rate for enhanced Voice performance – - { ID id-DownlinkPacketLossRate CRITICALITY ignore EXTENSION Packet-LossRate PRESENCE optional}| - { ID id-UplinkPacketLossRate CRITICALITY ignore EXTENSION Packet-LossRate PRESENCE optional}, - ... -} -*/ - -struct E_RAB_Level_QoS_Parameters_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_DownlinkPacketLossRate() { set(id_DownlinkPacketLossRate); type=1;} - void select_id_UplinkPacketLossRate() { set(id_UplinkPacketLossRate); type=2;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_DownlinkPacketLossRate)) { type = 1; return true; } - else if(equal(id_UplinkPacketLossRate)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_DownlinkPacketLossRate);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_UplinkPacketLossRate);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_DownlinkPacketLossRate() { set(ignore); type=1;} - void select_id_UplinkPacketLossRate() { set(ignore); type=2;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - Packet_LossRate& select_id_DownlinkPacketLossRate() { return set(1); } - Packet_LossRate const* get_id_DownlinkPacketLossRate() const { return get(1); } - Packet_LossRate& select_id_UplinkPacketLossRate() { return set(2); } - Packet_LossRate const* get_id_UplinkPacketLossRate() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_DownlinkPacketLossRate()); return true; - case 2: v(select_id_UplinkPacketLossRate()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Packet_LossRate)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_DownlinkPacketLossRate() { set(optional); type=1;} - void select_id_UplinkPacketLossRate() { set(optional); type=2;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RAB-Level-QoS-Parameters ::= SEQUENCE { - qCI QCI, - allocationAndRetentionPriority AllocationAndRetentionPriority, - gbrQosInformation GBR-QosInformation OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {E-RAB-Level-QoS-Parameters-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RAB_Level_QoS_Parameters : asn::sequence<4, 0, true, 2> -{ - static constexpr const char* name() {return "E-RAB-Level-QoS-Parameters";} - using parent_t = asn::sequence<4, 0, true, 2>; - struct qCI_t : QCI - { - static constexpr const char* name() {return "qCI_t";} - using parent_t = QCI; - - }; - qCI_t& ref_qCI() {return qCI;} - qCI_t const& ref_qCI() const {return qCI;} - struct allocationAndRetentionPriority_t : AllocationAndRetentionPriority - { - static constexpr const char* name() {return "allocationAndRetentionPriority_t";} - using parent_t = AllocationAndRetentionPriority; - - }; - allocationAndRetentionPriority_t& ref_allocationAndRetentionPriority() {return allocationAndRetentionPriority;} - allocationAndRetentionPriority_t const& ref_allocationAndRetentionPriority() const {return allocationAndRetentionPriority;} - struct gbrQosInformation_t : GBR_QosInformation - { - static constexpr const char* name() {return "gbrQosInformation_t";} - using parent_t = GBR_QosInformation; - static constexpr bool optional = true; - - }; - gbrQosInformation_t& set_gbrQosInformation() { gbrQosInformation.setpresent(true); return gbrQosInformation;} - gbrQosInformation_t const* get_gbrQosInformation() const {return gbrQosInformation.is_valid() ? &gbrQosInformation : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(qCI); - v(allocationAndRetentionPriority); - v(gbrQosInformation); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(qCI); - v(allocationAndRetentionPriority); - v(gbrQosInformation); - v(iE_Extensions); - - }; - void clear() - { - qCI.clear(); - allocationAndRetentionPriority.clear(); - gbrQosInformation.clear(); - iE_Extensions.clear(); - - }; - private: - qCI_t qCI; - allocationAndRetentionPriority_t allocationAndRetentionPriority; - gbrQosInformation_t gbrQosInformation; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RAB-List ::= SEQUENCE (SIZE(1.. maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RAB-ItemIEs} } -*/ - -struct E_RAB_List_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RAB_List_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RAB_List : asn::sequenceof -{ - static constexpr const char* name() {return "E-RAB-List";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABUsageReport-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABUsageReport_Item_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABUsageReport-Item ::= SEQUENCE { - startTimeStamp OCTET STRING (SIZE(4)), - endTimeStamp OCTET STRING (SIZE(4)), - usageCountUL INTEGER (0..4294967295), - usageCountDL INTEGER (0..4294967295), - iE-Extensions ProtocolExtensionContainer { {E-RABUsageReport-Item-ExtIEs} } OPTIONAL, -... -} -*/ - -struct E_RABUsageReport_Item : asn::sequence<5, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABUsageReport-Item";} - using parent_t = asn::sequence<5, 0, true, 1>; - struct startTimeStamp_t : asn::ostring<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "startTimeStamp_t";} - using parent_t = asn::ostring<>; - - }; - - startTimeStamp_t& ref_startTimeStamp() {return startTimeStamp;} - startTimeStamp_t const& ref_startTimeStamp() const {return startTimeStamp;} - struct endTimeStamp_t : asn::ostring<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "endTimeStamp_t";} - using parent_t = asn::ostring<>; - - }; - - endTimeStamp_t& ref_endTimeStamp() {return endTimeStamp;} - endTimeStamp_t const& ref_endTimeStamp() const {return endTimeStamp;} - struct usageCountUL_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "usageCountUL_t";} - using parent_t = asn::integer<>; - - }; - - usageCountUL_t& ref_usageCountUL() {return usageCountUL;} - usageCountUL_t const& ref_usageCountUL() const {return usageCountUL;} - struct usageCountDL_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "usageCountDL_t";} - using parent_t = asn::integer<>; - - }; - - usageCountDL_t& ref_usageCountDL() {return usageCountDL;} - usageCountDL_t const& ref_usageCountDL() const {return usageCountDL;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(startTimeStamp); - v(endTimeStamp); - v(usageCountUL); - v(usageCountDL); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(startTimeStamp); - v(endTimeStamp); - v(usageCountUL); - v(usageCountDL); - v(iE_Extensions); - - }; - void clear() - { - startTimeStamp.clear(); - endTimeStamp.clear(); - usageCountUL.clear(); - usageCountDL.clear(); - iE_Extensions.clear(); - - }; - private: - startTimeStamp_t startTimeStamp; - endTimeStamp_t endTimeStamp; - usageCountUL_t usageCountUL; - usageCountDL_t usageCountDL; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABUsageReport-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABUsageReport-Item CRITICALITY ignore TYPE E-RABUsageReport-Item PRESENCE mandatory }, - ... -} -*/ - -struct E_RABUsageReport_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABUsageReport_Item() { set(id_E_RABUsageReport_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABUsageReport_Item)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABUsageReport_Item);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABUsageReport_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABUsageReport_Item& select_id_E_RABUsageReport_Item() { return set(1); } - E_RABUsageReport_Item const* get_id_E_RABUsageReport_Item() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABUsageReport_Item()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABUsageReport_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABUsageReport_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABUsageReportList ::= SEQUENCE (SIZE(1..maxnooftimeperiods)) OF ProtocolIE-Single-Container { {E-RABUsageReport-ItemIEs} } -*/ - -struct E_RABUsageReportList_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABUsageReportList_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABUsageReportList : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABUsageReportList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -EARFCN ::= INTEGER (0..maxEARFCN) -*/ - -struct EARFCN : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "EARFCN";} - using parent_t = asn::integer<>; - -}; - -/* -EARFCNExtension ::= INTEGER(maxEARFCNPlusOne..newmaxEARFCN, ...) -*/ - -struct EARFCNExtension : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "EARFCNExtension";} - using parent_t = asn::integer<>; - -}; - -/* -EN-DC-ResourceConfigurationExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct EN_DC_ResourceConfigurationExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -EN-DC-ResourceConfiguration ::= SEQUENCE { - pDCPatSgNB ENUMERATED {present, not-present, ...}, - mCGresources ENUMERATED {present, not-present, ...}, - sCGresources ENUMERATED {present, not-present, ...}, - iE-Extensions ProtocolExtensionContainer { {EN-DC-ResourceConfigurationExtIEs} } OPTIONAL, - ... -} -*/ - -struct EN_DC_ResourceConfiguration : asn::sequence<4, 0, true, 1> -{ - static constexpr const char* name() {return "EN-DC-ResourceConfiguration";} - using parent_t = asn::sequence<4, 0, true, 1>; - struct pDCPatSgNB_t : asn::enumerated<2, 0, true> - { - static constexpr const char* name() {return "pDCPatSgNB_t";} - using parent_t = asn::enumerated<2, 0, true>; - typedef enum { - present - ,not_present - } index_t; - - }; - - pDCPatSgNB_t& ref_pDCPatSgNB() {return pDCPatSgNB;} - pDCPatSgNB_t const& ref_pDCPatSgNB() const {return pDCPatSgNB;} - struct mCGresources_t : asn::enumerated<2, 0, true> - { - static constexpr const char* name() {return "mCGresources_t";} - using parent_t = asn::enumerated<2, 0, true>; - typedef enum { - present - ,not_present - } index_t; - - }; - - mCGresources_t& ref_mCGresources() {return mCGresources;} - mCGresources_t const& ref_mCGresources() const {return mCGresources;} - struct sCGresources_t : asn::enumerated<2, 0, true> - { - static constexpr const char* name() {return "sCGresources_t";} - using parent_t = asn::enumerated<2, 0, true>; - typedef enum { - present - ,not_present - } index_t; - - }; - - sCGresources_t& ref_sCGresources() {return sCGresources;} - sCGresources_t const& ref_sCGresources() const {return sCGresources;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(pDCPatSgNB); - v(mCGresources); - v(sCGresources); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(pDCPatSgNB); - v(mCGresources); - v(sCGresources); - v(iE_Extensions); - - }; - void clear() - { - pDCPatSgNB.clear(); - mCGresources.clear(); - sCGresources.clear(); - iE_Extensions.clear(); - - }; - private: - pDCPatSgNB_t pDCPatSgNB; - mCGresources_t mCGresources; - sCGresources_t sCGresources; - iE_Extensions_t iE_Extensions; - -}; -/* -ENB-ID ::= CHOICE { - macro-eNB-ID BIT STRING (SIZE (20)), - home-eNB-ID BIT STRING (SIZE (28)), - ... , - short-Macro-eNB-ID BIT STRING (SIZE(18)), - long-Macro-eNB-ID BIT STRING (SIZE(21)) -} -*/ - -struct ENB_ID : asn::choice<4, 2, true> -{ - static constexpr const char* name() {return "ENB-ID";} - using parent_t = asn::choice<4, 2, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 5;} - void set_unknown() { set_index(5); } - ~ENB_ID() {clear();} - struct macro_eNB_ID_t : asn::bstring<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "macro_eNB_ID_t";} - using parent_t = asn::bstring<>; - - }; - - struct home_eNB_ID_t : asn::bstring<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "home_eNB_ID_t";} - using parent_t = asn::bstring<>; - - }; - - struct short_Macro_eNB_ID_t : asn::bstring<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "short_Macro_eNB_ID_t";} - using parent_t = asn::bstring<>; - - }; - - struct long_Macro_eNB_ID_t : asn::bstring<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "long_Macro_eNB_ID_t";} - using parent_t = asn::bstring<>; - - }; - - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - case 3: set_index(3); return v(var.build()); - case 4: set_index(4); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - case 3: return v(var.as()); - case 4: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - - } - macro_eNB_ID_t& select_macro_eNB_ID() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - macro_eNB_ID_t const* get_macro_eNB_ID() const { if(get_index() == 1) { return &var.as();} return nullptr; } - home_eNB_ID_t& select_home_eNB_ID() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - home_eNB_ID_t const* get_home_eNB_ID() const { if(get_index() == 2) { return &var.as();} return nullptr; } - short_Macro_eNB_ID_t& select_short_Macro_eNB_ID() { if(get_index() != 3) { clear(); set_index(3); return var.build();} return var.as();} - short_Macro_eNB_ID_t const* get_short_Macro_eNB_ID() const { if(get_index() == 3) { return &var.as();} return nullptr; } - long_Macro_eNB_ID_t& select_long_Macro_eNB_ID() { if(get_index() != 4) { clear(); set_index(4); return var.build();} return var.as();} - long_Macro_eNB_ID_t const* get_long_Macro_eNB_ID() const { if(get_index() == 4) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(macro_eNB_ID_t)]; - char dummy2[sizeof(home_eNB_ID_t)]; - char dummy3[sizeof(short_Macro_eNB_ID_t)]; - char dummy4[sizeof(long_Macro_eNB_ID_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -EPLMNs ::= SEQUENCE (SIZE(1..maxnoofEPLMNs)) OF PLMN-Identity -*/ - -struct EPLMNs_elm : PLMN_Identity -{ - static constexpr const char* name() {return "EPLMNs_elm";} - using parent_t = PLMN_Identity; - -}; -struct EPLMNs : asn::sequenceof -{ - static constexpr const char* name() {return "EPLMNs";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -UserPlaneTrafficActivityReport ::= ENUMERATED {inactive, re-activated, ...} -*/ - -struct UserPlaneTrafficActivityReport : asn::enumerated<2, 0, true> -{ - static constexpr const char* name() {return "UserPlaneTrafficActivityReport";} - using parent_t = asn::enumerated<2, 0, true>; - typedef enum { - inactive - ,re_activated - } index_t; - -}; - -/* -ERABActivityNotifyItem-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct ERABActivityNotifyItem_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ERABActivityNotifyItem ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - activityReport UserPlaneTrafficActivityReport, - iE-Extensions ProtocolExtensionContainer { {ERABActivityNotifyItem-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct ERABActivityNotifyItem : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "ERABActivityNotifyItem";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct activityReport_t : UserPlaneTrafficActivityReport - { - static constexpr const char* name() {return "activityReport_t";} - using parent_t = UserPlaneTrafficActivityReport; - - }; - activityReport_t& ref_activityReport() {return activityReport;} - activityReport_t const& ref_activityReport() const {return activityReport;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(activityReport); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(activityReport); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - activityReport.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - activityReport_t activityReport; - iE_Extensions_t iE_Extensions; - -}; -/* -ERABActivityNotifyItemList ::= SEQUENCE (SIZE (0..maxnoofBearers)) OF ERABActivityNotifyItem -*/ - -struct ERABActivityNotifyItemList_elm : ERABActivityNotifyItem -{ - static constexpr const char* name() {return "ERABActivityNotifyItemList_elm";} - using parent_t = ERABActivityNotifyItem; - -}; -struct ERABActivityNotifyItemList : asn::sequenceof -{ - static constexpr const char* name() {return "ERABActivityNotifyItemList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -Transmission-Bandwidth ::= ENUMERATED { - bw6, - bw15, - bw25, - bw50, - bw75, - bw100, - ..., - bw1 -} -*/ - -struct Transmission_Bandwidth : asn::enumerated<7, 1, true> -{ - static constexpr const char* name() {return "Transmission-Bandwidth";} - using parent_t = asn::enumerated<7, 1, true>; - typedef enum { - bw6 - ,bw15 - ,bw25 - ,bw50 - ,bw75 - ,bw100 - ,bw1 - } index_t; - -}; - -/* -OffsetOfNbiotChannelNumberToEARFCN ::= ENUMERATED { - minusTen, - minusNine, - minusEight, - minusSeven, - minusSix, - minusFive, - minusFour, - minusThree, - minusTwo, - minusOne, - minusZeroDotFive, - zero, - one, - two, - three, - four, - five, - six, - seven, - eight, - nine, - ... -} -*/ - -struct OffsetOfNbiotChannelNumberToEARFCN : asn::enumerated<21, 0, true> -{ - static constexpr const char* name() {return "OffsetOfNbiotChannelNumberToEARFCN";} - using parent_t = asn::enumerated<21, 0, true>; - typedef enum { - minusTen - ,minusNine - ,minusEight - ,minusSeven - ,minusSix - ,minusFive - ,minusFour - ,minusThree - ,minusTwo - ,minusOne - ,minusZeroDotFive - ,zero - ,one - ,two - ,three - ,four - ,five - ,six - ,seven - ,eight - ,nine - } index_t; - -}; - -/* -NRS-NSSS-PowerOffset ::= ENUMERATED { minusThree, zero, three, ...} -*/ - -struct NRS_NSSS_PowerOffset : asn::enumerated<3, 0, true> -{ - static constexpr const char* name() {return "NRS-NSSS-PowerOffset";} - using parent_t = asn::enumerated<3, 0, true>; - typedef enum { - minusThree - ,zero - ,three - } index_t; - -}; - -/* -NSSS-NumOccasionDifferentPrecoder ::= ENUMERATED { two, four, eight, ...} -*/ - -struct NSSS_NumOccasionDifferentPrecoder : asn::enumerated<3, 0, true> -{ - static constexpr const char* name() {return "NSSS-NumOccasionDifferentPrecoder";} - using parent_t = asn::enumerated<3, 0, true>; - typedef enum { - two - ,four - ,eight - } index_t; - -}; - -/* -FDD-Info-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-UL-EARFCNExtension CRITICALITY reject EXTENSION EARFCNExtension PRESENCE optional}| - { ID id-DL-EARFCNExtension CRITICALITY reject EXTENSION EARFCNExtension PRESENCE optional}| - { ID id-OffsetOfNbiotChannelNumberToDL-EARFCN CRITICALITY reject EXTENSION OffsetOfNbiotChannelNumberToEARFCN PRESENCE optional}| - { ID id-OffsetOfNbiotChannelNumberToUL-EARFCN CRITICALITY reject EXTENSION OffsetOfNbiotChannelNumberToEARFCN PRESENCE optional}| - { ID id-NRS-NSSS-PowerOffset CRITICALITY ignore EXTENSION NRS-NSSS-PowerOffset PRESENCE optional}| - { ID id-NSSS-NumOccasionDifferentPrecoder CRITICALITY ignore EXTENSION NSSS-NumOccasionDifferentPrecoder PRESENCE optional}, - ... -} -*/ - -struct FDD_Info_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_UL_EARFCNExtension() { set(id_UL_EARFCNExtension); type=1;} - void select_id_DL_EARFCNExtension() { set(id_DL_EARFCNExtension); type=2;} - void select_id_OffsetOfNbiotChannelNumberToDL_EARFCN() { set(id_OffsetOfNbiotChannelNumberToDL_EARFCN); type=3;} - void select_id_OffsetOfNbiotChannelNumberToUL_EARFCN() { set(id_OffsetOfNbiotChannelNumberToUL_EARFCN); type=4;} - void select_id_NRS_NSSS_PowerOffset() { set(id_NRS_NSSS_PowerOffset); type=5;} - void select_id_NSSS_NumOccasionDifferentPrecoder() { set(id_NSSS_NumOccasionDifferentPrecoder); type=6;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_UL_EARFCNExtension)) { type = 1; return true; } - else if(equal(id_DL_EARFCNExtension)) { type = 2; return true; } - else if(equal(id_OffsetOfNbiotChannelNumberToDL_EARFCN)) { type = 3; return true; } - else if(equal(id_OffsetOfNbiotChannelNumberToUL_EARFCN)) { type = 4; return true; } - else if(equal(id_NRS_NSSS_PowerOffset)) { type = 5; return true; } - else if(equal(id_NSSS_NumOccasionDifferentPrecoder)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_UL_EARFCNExtension);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_DL_EARFCNExtension);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_OffsetOfNbiotChannelNumberToDL_EARFCN);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_OffsetOfNbiotChannelNumberToUL_EARFCN);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_NRS_NSSS_PowerOffset);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_NSSS_NumOccasionDifferentPrecoder);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_UL_EARFCNExtension() { set(reject); type=1;} - void select_id_DL_EARFCNExtension() { set(reject); type=2;} - void select_id_OffsetOfNbiotChannelNumberToDL_EARFCN() { set(reject); type=3;} - void select_id_OffsetOfNbiotChannelNumberToUL_EARFCN() { set(reject); type=4;} - void select_id_NRS_NSSS_PowerOffset() { set(ignore); type=5;} - void select_id_NSSS_NumOccasionDifferentPrecoder() { set(ignore); type=6;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(reject)) { type = 3; return true; } - else if(equal(reject)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else if(equal(ignore)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(reject);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(reject);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(ignore);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - EARFCNExtension& select_id_UL_EARFCNExtension() { return set(1); } - EARFCNExtension const* get_id_UL_EARFCNExtension() const { return get(1); } - EARFCNExtension& select_id_DL_EARFCNExtension() { return set(2); } - EARFCNExtension const* get_id_DL_EARFCNExtension() const { return get(2); } - OffsetOfNbiotChannelNumberToEARFCN& select_id_OffsetOfNbiotChannelNumberToDL_EARFCN() { return set(3); } - OffsetOfNbiotChannelNumberToEARFCN const* get_id_OffsetOfNbiotChannelNumberToDL_EARFCN() const { return get(3); } - OffsetOfNbiotChannelNumberToEARFCN& select_id_OffsetOfNbiotChannelNumberToUL_EARFCN() { return set(4); } - OffsetOfNbiotChannelNumberToEARFCN const* get_id_OffsetOfNbiotChannelNumberToUL_EARFCN() const { return get(4); } - NRS_NSSS_PowerOffset& select_id_NRS_NSSS_PowerOffset() { return set(5); } - NRS_NSSS_PowerOffset const* get_id_NRS_NSSS_PowerOffset() const { return get(5); } - NSSS_NumOccasionDifferentPrecoder& select_id_NSSS_NumOccasionDifferentPrecoder() { return set(6); } - NSSS_NumOccasionDifferentPrecoder const* get_id_NSSS_NumOccasionDifferentPrecoder() const { return get(6); } - bool is_unknown() const { return type == 7; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_UL_EARFCNExtension()); return true; - case 2: v(select_id_DL_EARFCNExtension()); return true; - case 3: v(select_id_OffsetOfNbiotChannelNumberToDL_EARFCN()); return true; - case 4: v(select_id_OffsetOfNbiotChannelNumberToUL_EARFCN()); return true; - case 5: v(select_id_NRS_NSSS_PowerOffset()); return true; - case 6: v(select_id_NSSS_NumOccasionDifferentPrecoder()); return true; - case 7: if(type != 7) {clear(); asn::base::set();} type = 7; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(EARFCNExtension)]; - char dummy2[sizeof(NRS_NSSS_PowerOffset)]; - char dummy3[sizeof(NSSS_NumOccasionDifferentPrecoder)]; - char dummy4[sizeof(OffsetOfNbiotChannelNumberToEARFCN)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_UL_EARFCNExtension() { set(optional); type=1;} - void select_id_DL_EARFCNExtension() { set(optional); type=2;} - void select_id_OffsetOfNbiotChannelNumberToDL_EARFCN() { set(optional); type=3;} - void select_id_OffsetOfNbiotChannelNumberToUL_EARFCN() { set(optional); type=4;} - void select_id_NRS_NSSS_PowerOffset() { set(optional); type=5;} - void select_id_NSSS_NumOccasionDifferentPrecoder() { set(optional); type=6;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -FDD-Info ::= SEQUENCE { - uL-EARFCN EARFCN, - dL-EARFCN EARFCN, - uL-Transmission-Bandwidth Transmission-Bandwidth, - dL-Transmission-Bandwidth Transmission-Bandwidth, - iE-Extensions ProtocolExtensionContainer { {FDD-Info-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct FDD_Info : asn::sequence<5, 0, true, 1> -{ - static constexpr const char* name() {return "FDD-Info";} - using parent_t = asn::sequence<5, 0, true, 1>; - struct uL_EARFCN_t : EARFCN - { - static constexpr const char* name() {return "uL_EARFCN_t";} - using parent_t = EARFCN; - - }; - uL_EARFCN_t& ref_uL_EARFCN() {return uL_EARFCN;} - uL_EARFCN_t const& ref_uL_EARFCN() const {return uL_EARFCN;} - struct dL_EARFCN_t : EARFCN - { - static constexpr const char* name() {return "dL_EARFCN_t";} - using parent_t = EARFCN; - - }; - dL_EARFCN_t& ref_dL_EARFCN() {return dL_EARFCN;} - dL_EARFCN_t const& ref_dL_EARFCN() const {return dL_EARFCN;} - struct uL_Transmission_Bandwidth_t : Transmission_Bandwidth - { - static constexpr const char* name() {return "uL_Transmission_Bandwidth_t";} - using parent_t = Transmission_Bandwidth; - - }; - uL_Transmission_Bandwidth_t& ref_uL_Transmission_Bandwidth() {return uL_Transmission_Bandwidth;} - uL_Transmission_Bandwidth_t const& ref_uL_Transmission_Bandwidth() const {return uL_Transmission_Bandwidth;} - struct dL_Transmission_Bandwidth_t : Transmission_Bandwidth - { - static constexpr const char* name() {return "dL_Transmission_Bandwidth_t";} - using parent_t = Transmission_Bandwidth; - - }; - dL_Transmission_Bandwidth_t& ref_dL_Transmission_Bandwidth() {return dL_Transmission_Bandwidth;} - dL_Transmission_Bandwidth_t const& ref_dL_Transmission_Bandwidth() const {return dL_Transmission_Bandwidth;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(uL_EARFCN); - v(dL_EARFCN); - v(uL_Transmission_Bandwidth); - v(dL_Transmission_Bandwidth); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(uL_EARFCN); - v(dL_EARFCN); - v(uL_Transmission_Bandwidth); - v(dL_Transmission_Bandwidth); - v(iE_Extensions); - - }; - void clear() - { - uL_EARFCN.clear(); - dL_EARFCN.clear(); - uL_Transmission_Bandwidth.clear(); - dL_Transmission_Bandwidth.clear(); - iE_Extensions.clear(); - - }; - private: - uL_EARFCN_t uL_EARFCN; - dL_EARFCN_t dL_EARFCN; - uL_Transmission_Bandwidth_t uL_Transmission_Bandwidth; - dL_Transmission_Bandwidth_t dL_Transmission_Bandwidth; - iE_Extensions_t iE_Extensions; - -}; -/* -SubframeAssignment ::= ENUMERATED { - sa0, - sa1, - sa2, - sa3, - sa4, - sa5, - sa6, - ... -} -*/ - -struct SubframeAssignment : asn::enumerated<7, 0, true> -{ - static constexpr const char* name() {return "SubframeAssignment";} - using parent_t = asn::enumerated<7, 0, true>; - typedef enum { - sa0 - ,sa1 - ,sa2 - ,sa3 - ,sa4 - ,sa5 - ,sa6 - } index_t; - -}; - -/* -SpecialSubframePatterns ::= ENUMERATED { - ssp0, - ssp1, - ssp2, - ssp3, - ssp4, - ssp5, - ssp6, - ssp7, - ssp8, - ... -} -*/ - -struct SpecialSubframePatterns : asn::enumerated<9, 0, true> -{ - static constexpr const char* name() {return "SpecialSubframePatterns";} - using parent_t = asn::enumerated<9, 0, true>; - typedef enum { - ssp0 - ,ssp1 - ,ssp2 - ,ssp3 - ,ssp4 - ,ssp5 - ,ssp6 - ,ssp7 - ,ssp8 - } index_t; - -}; - -/* -SpecialSubframe-Info-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct SpecialSubframe_Info_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SpecialSubframe-Info ::= SEQUENCE { - specialSubframePatterns SpecialSubframePatterns, - cyclicPrefixDL CyclicPrefixDL, - cyclicPrefixUL CyclicPrefixUL, - iE-Extensions ProtocolExtensionContainer { {SpecialSubframe-Info-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct SpecialSubframe_Info : asn::sequence<4, 0, true, 1> -{ - static constexpr const char* name() {return "SpecialSubframe-Info";} - using parent_t = asn::sequence<4, 0, true, 1>; - struct specialSubframePatterns_t : SpecialSubframePatterns - { - static constexpr const char* name() {return "specialSubframePatterns_t";} - using parent_t = SpecialSubframePatterns; - - }; - specialSubframePatterns_t& ref_specialSubframePatterns() {return specialSubframePatterns;} - specialSubframePatterns_t const& ref_specialSubframePatterns() const {return specialSubframePatterns;} - struct cyclicPrefixDL_t : CyclicPrefixDL - { - static constexpr const char* name() {return "cyclicPrefixDL_t";} - using parent_t = CyclicPrefixDL; - - }; - cyclicPrefixDL_t& ref_cyclicPrefixDL() {return cyclicPrefixDL;} - cyclicPrefixDL_t const& ref_cyclicPrefixDL() const {return cyclicPrefixDL;} - struct cyclicPrefixUL_t : CyclicPrefixUL - { - static constexpr const char* name() {return "cyclicPrefixUL_t";} - using parent_t = CyclicPrefixUL; - - }; - cyclicPrefixUL_t& ref_cyclicPrefixUL() {return cyclicPrefixUL;} - cyclicPrefixUL_t const& ref_cyclicPrefixUL() const {return cyclicPrefixUL;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(specialSubframePatterns); - v(cyclicPrefixDL); - v(cyclicPrefixUL); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(specialSubframePatterns); - v(cyclicPrefixDL); - v(cyclicPrefixUL); - v(iE_Extensions); - - }; - void clear() - { - specialSubframePatterns.clear(); - cyclicPrefixDL.clear(); - cyclicPrefixUL.clear(); - iE_Extensions.clear(); - - }; - private: - specialSubframePatterns_t specialSubframePatterns; - cyclicPrefixDL_t cyclicPrefixDL; - cyclicPrefixUL_t cyclicPrefixUL; - iE_Extensions_t iE_Extensions; - -}; -/* -TDD-Info-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-AdditionalSpecialSubframe-Info CRITICALITY ignore EXTENSION AdditionalSpecialSubframe-Info PRESENCE optional}| - { ID id-eARFCNExtension CRITICALITY reject EXTENSION EARFCNExtension PRESENCE optional}| - { ID id-AdditionalSpecialSubframeExtension-Info CRITICALITY ignore EXTENSION AdditionalSpecialSubframeExtension-Info PRESENCE optional}, - ... -} -*/ - -struct TDD_Info_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_AdditionalSpecialSubframe_Info() { set(id_AdditionalSpecialSubframe_Info); type=1;} - void select_id_eARFCNExtension() { set(id_eARFCNExtension); type=2;} - void select_id_AdditionalSpecialSubframeExtension_Info() { set(id_AdditionalSpecialSubframeExtension_Info); type=3;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_AdditionalSpecialSubframe_Info)) { type = 1; return true; } - else if(equal(id_eARFCNExtension)) { type = 2; return true; } - else if(equal(id_AdditionalSpecialSubframeExtension_Info)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_AdditionalSpecialSubframe_Info);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_eARFCNExtension);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_AdditionalSpecialSubframeExtension_Info);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_AdditionalSpecialSubframe_Info() { set(ignore); type=1;} - void select_id_eARFCNExtension() { set(reject); type=2;} - void select_id_AdditionalSpecialSubframeExtension_Info() { set(ignore); type=3;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - AdditionalSpecialSubframe_Info& select_id_AdditionalSpecialSubframe_Info() { return set(1); } - AdditionalSpecialSubframe_Info const* get_id_AdditionalSpecialSubframe_Info() const { return get(1); } - EARFCNExtension& select_id_eARFCNExtension() { return set(2); } - EARFCNExtension const* get_id_eARFCNExtension() const { return get(2); } - AdditionalSpecialSubframeExtension_Info& select_id_AdditionalSpecialSubframeExtension_Info() { return set(3); } - AdditionalSpecialSubframeExtension_Info const* get_id_AdditionalSpecialSubframeExtension_Info() const { return get(3); } - bool is_unknown() const { return type == 4; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_AdditionalSpecialSubframe_Info()); return true; - case 2: v(select_id_eARFCNExtension()); return true; - case 3: v(select_id_AdditionalSpecialSubframeExtension_Info()); return true; - case 4: if(type != 4) {clear(); asn::base::set();} type = 4; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(AdditionalSpecialSubframeExtension_Info)]; - char dummy2[sizeof(AdditionalSpecialSubframe_Info)]; - char dummy3[sizeof(EARFCNExtension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_AdditionalSpecialSubframe_Info() { set(optional); type=1;} - void select_id_eARFCNExtension() { set(optional); type=2;} - void select_id_AdditionalSpecialSubframeExtension_Info() { set(optional); type=3;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -TDD-Info ::= SEQUENCE { - eARFCN EARFCN, - transmission-Bandwidth Transmission-Bandwidth, - subframeAssignment SubframeAssignment, - specialSubframe-Info SpecialSubframe-Info, - iE-Extensions ProtocolExtensionContainer { {TDD-Info-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct TDD_Info : asn::sequence<5, 0, true, 1> -{ - static constexpr const char* name() {return "TDD-Info";} - using parent_t = asn::sequence<5, 0, true, 1>; - struct eARFCN_t : EARFCN - { - static constexpr const char* name() {return "eARFCN_t";} - using parent_t = EARFCN; - - }; - eARFCN_t& ref_eARFCN() {return eARFCN;} - eARFCN_t const& ref_eARFCN() const {return eARFCN;} - struct transmission_Bandwidth_t : Transmission_Bandwidth - { - static constexpr const char* name() {return "transmission_Bandwidth_t";} - using parent_t = Transmission_Bandwidth; - - }; - transmission_Bandwidth_t& ref_transmission_Bandwidth() {return transmission_Bandwidth;} - transmission_Bandwidth_t const& ref_transmission_Bandwidth() const {return transmission_Bandwidth;} - struct subframeAssignment_t : SubframeAssignment - { - static constexpr const char* name() {return "subframeAssignment_t";} - using parent_t = SubframeAssignment; - - }; - subframeAssignment_t& ref_subframeAssignment() {return subframeAssignment;} - subframeAssignment_t const& ref_subframeAssignment() const {return subframeAssignment;} - struct specialSubframe_Info_t : SpecialSubframe_Info - { - static constexpr const char* name() {return "specialSubframe_Info_t";} - using parent_t = SpecialSubframe_Info; - - }; - specialSubframe_Info_t& ref_specialSubframe_Info() {return specialSubframe_Info;} - specialSubframe_Info_t const& ref_specialSubframe_Info() const {return specialSubframe_Info;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(eARFCN); - v(transmission_Bandwidth); - v(subframeAssignment); - v(specialSubframe_Info); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(eARFCN); - v(transmission_Bandwidth); - v(subframeAssignment); - v(specialSubframe_Info); - v(iE_Extensions); - - }; - void clear() - { - eARFCN.clear(); - transmission_Bandwidth.clear(); - subframeAssignment.clear(); - specialSubframe_Info.clear(); - iE_Extensions.clear(); - - }; - private: - eARFCN_t eARFCN; - transmission_Bandwidth_t transmission_Bandwidth; - subframeAssignment_t subframeAssignment; - specialSubframe_Info_t specialSubframe_Info; - iE_Extensions_t iE_Extensions; - -}; -/* -EUTRA-Mode-Info ::= CHOICE { - fDD FDD-Info, - tDD TDD-Info, - ... -} -*/ - -struct EUTRA_Mode_Info : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "EUTRA-Mode-Info";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~EUTRA_Mode_Info() {clear();} - struct fDD_t : FDD_Info - { - static constexpr const char* name() {return "fDD_t";} - using parent_t = FDD_Info; - - }; - struct tDD_t : TDD_Info - { - static constexpr const char* name() {return "tDD_t";} - using parent_t = TDD_Info; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - fDD_t& select_fDD() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - fDD_t const* get_fDD() const { if(get_index() == 1) { return &var.as();} return nullptr; } - tDD_t& select_tDD() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - tDD_t const* get_tDD() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(fDD_t)]; - char dummy2[sizeof(tDD_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -EUTRANTraceID ::= OCTET STRING (SIZE (8)) -*/ - -struct EUTRANTraceID : asn::ostring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "EUTRANTraceID";} - using parent_t = asn::ostring<>; - -}; - -/* -EncryptionAlgorithms ::= BIT STRING (SIZE (16, ...)) -*/ - -struct EncryptionAlgorithms : asn::bstring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "EncryptionAlgorithms";} - using parent_t = asn::bstring<>; - -}; - -/* -RNTP-Threshold ::= ENUMERATED { - minusInfinity, - minusEleven, - minusTen, - minusNine, - minusEight, - minusSeven, - minusSix, - minusFive, - minusFour, - minusThree, - minusTwo, - minusOne, - zero, - one, - two, - three, - ... -} -*/ - -struct RNTP_Threshold : asn::enumerated<16, 0, true> -{ - static constexpr const char* name() {return "RNTP-Threshold";} - using parent_t = asn::enumerated<16, 0, true>; - typedef enum { - minusInfinity - ,minusEleven - ,minusTen - ,minusNine - ,minusEight - ,minusSeven - ,minusSix - ,minusFive - ,minusFour - ,minusThree - ,minusTwo - ,minusOne - ,zero - ,one - ,two - ,three - } index_t; - -}; - -/* -EnhancedRNTPStartTime-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct EnhancedRNTPStartTime_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -EnhancedRNTPStartTime ::= SEQUENCE { - startSFN INTEGER (0..1023, ...), - startSubframeNumber INTEGER (0..9, ...), - iE-Extensions ProtocolExtensionContainer { {EnhancedRNTPStartTime-ExtIEs} } OPTIONAL, - ... - } -*/ - -struct EnhancedRNTPStartTime : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "EnhancedRNTPStartTime";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct startSFN_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "startSFN_t";} - using parent_t = asn::integer<>; - - }; - - startSFN_t& ref_startSFN() {return startSFN;} - startSFN_t const& ref_startSFN() const {return startSFN;} - struct startSubframeNumber_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "startSubframeNumber_t";} - using parent_t = asn::integer<>; - - }; - - startSubframeNumber_t& ref_startSubframeNumber() {return startSubframeNumber;} - startSubframeNumber_t const& ref_startSubframeNumber() const {return startSubframeNumber;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(startSFN); - v(startSubframeNumber); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(startSFN); - v(startSubframeNumber); - v(iE_Extensions); - - }; - void clear() - { - startSFN.clear(); - startSubframeNumber.clear(); - iE_Extensions.clear(); - - }; - private: - startSFN_t startSFN; - startSubframeNumber_t startSubframeNumber; - iE_Extensions_t iE_Extensions; - -}; -/* -EnhancedRNTP-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct EnhancedRNTP_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -EnhancedRNTP ::= SEQUENCE { - enhancedRNTPBitmap BIT STRING (SIZE(12..8800, ...)), - rNTP-High-Power-Threshold RNTP-Threshold, - enhancedRNTPStartTime EnhancedRNTPStartTime OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {EnhancedRNTP-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct EnhancedRNTP : asn::sequence<4, 0, true, 2> -{ - static constexpr const char* name() {return "EnhancedRNTP";} - using parent_t = asn::sequence<4, 0, true, 2>; - struct enhancedRNTPBitmap_t : asn::bstring<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "enhancedRNTPBitmap_t";} - using parent_t = asn::bstring<>; - - }; - - enhancedRNTPBitmap_t& ref_enhancedRNTPBitmap() {return enhancedRNTPBitmap;} - enhancedRNTPBitmap_t const& ref_enhancedRNTPBitmap() const {return enhancedRNTPBitmap;} - struct rNTP_High_Power_Threshold_t : RNTP_Threshold - { - static constexpr const char* name() {return "rNTP_High_Power_Threshold_t";} - using parent_t = RNTP_Threshold; - - }; - rNTP_High_Power_Threshold_t& ref_rNTP_High_Power_Threshold() {return rNTP_High_Power_Threshold;} - rNTP_High_Power_Threshold_t const& ref_rNTP_High_Power_Threshold() const {return rNTP_High_Power_Threshold;} - struct enhancedRNTPStartTime_t : EnhancedRNTPStartTime - { - static constexpr const char* name() {return "enhancedRNTPStartTime_t";} - using parent_t = EnhancedRNTPStartTime; - static constexpr bool optional = true; - - }; - enhancedRNTPStartTime_t& set_enhancedRNTPStartTime() { enhancedRNTPStartTime.setpresent(true); return enhancedRNTPStartTime;} - enhancedRNTPStartTime_t const* get_enhancedRNTPStartTime() const {return enhancedRNTPStartTime.is_valid() ? &enhancedRNTPStartTime : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(enhancedRNTPBitmap); - v(rNTP_High_Power_Threshold); - v(enhancedRNTPStartTime); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(enhancedRNTPBitmap); - v(rNTP_High_Power_Threshold); - v(enhancedRNTPStartTime); - v(iE_Extensions); - - }; - void clear() - { - enhancedRNTPBitmap.clear(); - rNTP_High_Power_Threshold.clear(); - enhancedRNTPStartTime.clear(); - iE_Extensions.clear(); - - }; - private: - enhancedRNTPBitmap_t enhancedRNTPBitmap; - rNTP_High_Power_Threshold_t rNTP_High_Power_Threshold; - enhancedRNTPStartTime_t enhancedRNTPStartTime; - iE_Extensions_t iE_Extensions; - -}; -/* -EventType ::= ENUMERATED{ - change-of-serving-cell, - ... -} -*/ - -struct EventType : asn::enumerated<1, 0, true> -{ - static constexpr const char* name() {return "EventType";} - using parent_t = asn::enumerated<1, 0, true>; - typedef enum { - change_of_serving_cell - } index_t; - -}; - -/* -ExpectedActivityPeriod ::= INTEGER (1..30|40|50|60|80|100|120|150|180|181,...) -*/ - -struct ExpectedActivityPeriod : asn::integer<> -{ - using constraint_t = asn::constraints,asn::one<40>,asn::one<50>,asn::one<60>,asn::one<80>,asn::one<100>,asn::one<120>,asn::one<150>,asn::one<180>,asn::one<181>>; - static constexpr const char* name() {return "ExpectedActivityPeriod";} - using parent_t = asn::integer<>; - -}; - -/* -ExpectedHOInterval ::= ENUMERATED { - sec15, sec30, sec60, sec90, sec120, sec180, long-time, - ... -} -*/ - -struct ExpectedHOInterval : asn::enumerated<7, 0, true> -{ - static constexpr const char* name() {return "ExpectedHOInterval";} - using parent_t = asn::enumerated<7, 0, true>; - typedef enum { - sec15 - ,sec30 - ,sec60 - ,sec90 - ,sec120 - ,sec180 - ,long_time - } index_t; - -}; - -/* -ExpectedIdlePeriod ::= INTEGER (1..30|40|50|60|80|100|120|150|180|181,...) -*/ - -struct ExpectedIdlePeriod : asn::integer<> -{ - using constraint_t = asn::constraints,asn::one<40>,asn::one<50>,asn::one<60>,asn::one<80>,asn::one<100>,asn::one<120>,asn::one<150>,asn::one<180>,asn::one<181>>; - static constexpr const char* name() {return "ExpectedIdlePeriod";} - using parent_t = asn::integer<>; - -}; - -/* -SourceOfUEActivityBehaviourInformation ::= ENUMERATED { - subscription-information, - statistics, - ... -} -*/ - -struct SourceOfUEActivityBehaviourInformation : asn::enumerated<2, 0, true> -{ - static constexpr const char* name() {return "SourceOfUEActivityBehaviourInformation";} - using parent_t = asn::enumerated<2, 0, true>; - typedef enum { - subscription_information - ,statistics - } index_t; - -}; - -/* -ExpectedUEActivityBehaviour-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct ExpectedUEActivityBehaviour_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ExpectedUEActivityBehaviour ::= SEQUENCE { - expectedActivityPeriod ExpectedActivityPeriod OPTIONAL, - expectedIdlePeriod ExpectedIdlePeriod OPTIONAL, - sourceofUEActivityBehaviourInformation SourceOfUEActivityBehaviourInformation OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {ExpectedUEActivityBehaviour-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct ExpectedUEActivityBehaviour : asn::sequence<4, 0, true, 4> -{ - static constexpr const char* name() {return "ExpectedUEActivityBehaviour";} - using parent_t = asn::sequence<4, 0, true, 4>; - struct expectedActivityPeriod_t : ExpectedActivityPeriod - { - static constexpr const char* name() {return "expectedActivityPeriod_t";} - using parent_t = ExpectedActivityPeriod; - static constexpr bool optional = true; - - }; - expectedActivityPeriod_t& set_expectedActivityPeriod() { expectedActivityPeriod.setpresent(true); return expectedActivityPeriod;} - expectedActivityPeriod_t const* get_expectedActivityPeriod() const {return expectedActivityPeriod.is_valid() ? &expectedActivityPeriod : nullptr;} - struct expectedIdlePeriod_t : ExpectedIdlePeriod - { - static constexpr const char* name() {return "expectedIdlePeriod_t";} - using parent_t = ExpectedIdlePeriod; - static constexpr bool optional = true; - - }; - expectedIdlePeriod_t& set_expectedIdlePeriod() { expectedIdlePeriod.setpresent(true); return expectedIdlePeriod;} - expectedIdlePeriod_t const* get_expectedIdlePeriod() const {return expectedIdlePeriod.is_valid() ? &expectedIdlePeriod : nullptr;} - struct sourceofUEActivityBehaviourInformation_t : SourceOfUEActivityBehaviourInformation - { - static constexpr const char* name() {return "sourceofUEActivityBehaviourInformation_t";} - using parent_t = SourceOfUEActivityBehaviourInformation; - static constexpr bool optional = true; - - }; - sourceofUEActivityBehaviourInformation_t& set_sourceofUEActivityBehaviourInformation() { sourceofUEActivityBehaviourInformation.setpresent(true); return sourceofUEActivityBehaviourInformation;} - sourceofUEActivityBehaviourInformation_t const* get_sourceofUEActivityBehaviourInformation() const {return sourceofUEActivityBehaviourInformation.is_valid() ? &sourceofUEActivityBehaviourInformation : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(expectedActivityPeriod); - v(expectedIdlePeriod); - v(sourceofUEActivityBehaviourInformation); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(expectedActivityPeriod); - v(expectedIdlePeriod); - v(sourceofUEActivityBehaviourInformation); - v(iE_Extensions); - - }; - void clear() - { - expectedActivityPeriod.clear(); - expectedIdlePeriod.clear(); - sourceofUEActivityBehaviourInformation.clear(); - iE_Extensions.clear(); - - }; - private: - expectedActivityPeriod_t expectedActivityPeriod; - expectedIdlePeriod_t expectedIdlePeriod; - sourceofUEActivityBehaviourInformation_t sourceofUEActivityBehaviourInformation; - iE_Extensions_t iE_Extensions; - -}; -/* -ExpectedUEBehaviour-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct ExpectedUEBehaviour_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ExpectedUEBehaviour ::= SEQUENCE { - expectedActivity ExpectedUEActivityBehaviour OPTIONAL, - expectedHOInterval ExpectedHOInterval OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {ExpectedUEBehaviour-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct ExpectedUEBehaviour : asn::sequence<3, 0, true, 3> -{ - static constexpr const char* name() {return "ExpectedUEBehaviour";} - using parent_t = asn::sequence<3, 0, true, 3>; - struct expectedActivity_t : ExpectedUEActivityBehaviour - { - static constexpr const char* name() {return "expectedActivity_t";} - using parent_t = ExpectedUEActivityBehaviour; - static constexpr bool optional = true; - - }; - expectedActivity_t& set_expectedActivity() { expectedActivity.setpresent(true); return expectedActivity;} - expectedActivity_t const* get_expectedActivity() const {return expectedActivity.is_valid() ? &expectedActivity : nullptr;} - struct expectedHOInterval_t : ExpectedHOInterval - { - static constexpr const char* name() {return "expectedHOInterval_t";} - using parent_t = ExpectedHOInterval; - static constexpr bool optional = true; - - }; - expectedHOInterval_t& set_expectedHOInterval() { expectedHOInterval.setpresent(true); return expectedHOInterval;} - expectedHOInterval_t const* get_expectedHOInterval() const {return expectedHOInterval.is_valid() ? &expectedHOInterval : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(expectedActivity); - v(expectedHOInterval); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(expectedActivity); - v(expectedHOInterval); - v(iE_Extensions); - - }; - void clear() - { - expectedActivity.clear(); - expectedHOInterval.clear(); - iE_Extensions.clear(); - - }; - private: - expectedActivity_t expectedActivity; - expectedHOInterval_t expectedHOInterval; - iE_Extensions_t iE_Extensions; - -}; -/* -UL-InterferenceOverloadIndication-Item ::= ENUMERATED { - high-interference, - medium-interference, - low-interference, - ... -} -*/ - -struct UL_InterferenceOverloadIndication_Item : asn::enumerated<3, 0, true> -{ - static constexpr const char* name() {return "UL-InterferenceOverloadIndication-Item";} - using parent_t = asn::enumerated<3, 0, true>; - typedef enum { - high_interference - ,medium_interference - ,low_interference - } index_t; - -}; - -/* -UL-InterferenceOverloadIndication ::= SEQUENCE (SIZE(1..maxnoofPRBs)) OF UL-InterferenceOverloadIndication-Item -*/ - -struct UL_InterferenceOverloadIndication_elm : UL_InterferenceOverloadIndication_Item -{ - static constexpr const char* name() {return "UL_InterferenceOverloadIndication_elm";} - using parent_t = UL_InterferenceOverloadIndication_Item; - -}; -struct UL_InterferenceOverloadIndication : asn::sequenceof -{ - static constexpr const char* name() {return "UL-InterferenceOverloadIndication";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -ExtendedULInterferenceOverloadInfo-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct ExtendedULInterferenceOverloadInfo_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ExtendedULInterferenceOverloadInfo ::= SEQUENCE { - associatedSubframes BIT STRING (SIZE (5)), - extended-ul-InterferenceOverloadIndication UL-InterferenceOverloadIndication, - iE-Extensions ProtocolExtensionContainer { {ExtendedULInterferenceOverloadInfo-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct ExtendedULInterferenceOverloadInfo : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "ExtendedULInterferenceOverloadInfo";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct associatedSubframes_t : asn::bstring<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "associatedSubframes_t";} - using parent_t = asn::bstring<>; - - }; - - associatedSubframes_t& ref_associatedSubframes() {return associatedSubframes;} - associatedSubframes_t const& ref_associatedSubframes() const {return associatedSubframes;} - struct extended_ul_InterferenceOverloadIndication_t : UL_InterferenceOverloadIndication - { - static constexpr const char* name() {return "extended_ul_InterferenceOverloadIndication_t";} - using parent_t = UL_InterferenceOverloadIndication; - - }; - extended_ul_InterferenceOverloadIndication_t& ref_extended_ul_InterferenceOverloadIndication() {return extended_ul_InterferenceOverloadIndication;} - extended_ul_InterferenceOverloadIndication_t const& ref_extended_ul_InterferenceOverloadIndication() const {return extended_ul_InterferenceOverloadIndication;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(associatedSubframes); - v(extended_ul_InterferenceOverloadIndication); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(associatedSubframes); - v(extended_ul_InterferenceOverloadIndication); - v(iE_Extensions); - - }; - void clear() - { - associatedSubframes.clear(); - extended_ul_InterferenceOverloadIndication.clear(); - iE_Extensions.clear(); - - }; - private: - associatedSubframes_t associatedSubframes; - extended_ul_InterferenceOverloadIndication_t extended_ul_InterferenceOverloadIndication; - iE_Extensions_t iE_Extensions; - -}; -/* -FiveGS-TAC ::= OCTET STRING (SIZE (3)) -*/ - -struct FiveGS_TAC : asn::ostring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "FiveGS-TAC";} - using parent_t = asn::ostring<>; - -}; - -/* -ForbiddenInterRATs ::= ENUMERATED { - all, - geran, - utran, - cdma2000, - ..., - geranandutran, - cdma2000andutran - -} -*/ - -struct ForbiddenInterRATs : asn::enumerated<6, 2, true> -{ - static constexpr const char* name() {return "ForbiddenInterRATs";} - using parent_t = asn::enumerated<6, 2, true>; - typedef enum { - all - ,geran - ,utran - ,cdma2000 - ,geranandutran - ,cdma2000andutran - } index_t; - -}; - -/* -LAC ::= OCTET STRING (SIZE (2)) --(EXCEPT ('0000'H|'FFFE'H)) -*/ - -struct LAC : asn::ostring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "LAC";} - using parent_t = asn::ostring<>; - -}; - -/* -ForbiddenLACs ::= SEQUENCE (SIZE(1..maxnoofForbLACs)) OF LAC -*/ - -struct ForbiddenLACs_elm : LAC -{ - static constexpr const char* name() {return "ForbiddenLACs_elm";} - using parent_t = LAC; - -}; -struct ForbiddenLACs : asn::sequenceof -{ - static constexpr const char* name() {return "ForbiddenLACs";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -ForbiddenLAs-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct ForbiddenLAs_Item_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ForbiddenLAs-Item ::= SEQUENCE { - pLMN-Identity PLMN-Identity, - forbiddenLACs ForbiddenLACs, - iE-Extensions ProtocolExtensionContainer { {ForbiddenLAs-Item-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct ForbiddenLAs_Item : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "ForbiddenLAs-Item";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct pLMN_Identity_t : PLMN_Identity - { - static constexpr const char* name() {return "pLMN_Identity_t";} - using parent_t = PLMN_Identity; - - }; - pLMN_Identity_t& ref_pLMN_Identity() {return pLMN_Identity;} - pLMN_Identity_t const& ref_pLMN_Identity() const {return pLMN_Identity;} - struct forbiddenLACs_t : ForbiddenLACs - { - static constexpr const char* name() {return "forbiddenLACs_t";} - using parent_t = ForbiddenLACs; - - }; - forbiddenLACs_t& ref_forbiddenLACs() {return forbiddenLACs;} - forbiddenLACs_t const& ref_forbiddenLACs() const {return forbiddenLACs;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(pLMN_Identity); - v(forbiddenLACs); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(pLMN_Identity); - v(forbiddenLACs); - v(iE_Extensions); - - }; - void clear() - { - pLMN_Identity.clear(); - forbiddenLACs.clear(); - iE_Extensions.clear(); - - }; - private: - pLMN_Identity_t pLMN_Identity; - forbiddenLACs_t forbiddenLACs; - iE_Extensions_t iE_Extensions; - -}; -/* -ForbiddenLAs ::= SEQUENCE (SIZE(1..maxnoofEPLMNsPlusOne)) OF ForbiddenLAs-Item -*/ - -struct ForbiddenLAs_elm : ForbiddenLAs_Item -{ - static constexpr const char* name() {return "ForbiddenLAs_elm";} - using parent_t = ForbiddenLAs_Item; - -}; -struct ForbiddenLAs : asn::sequenceof -{ - static constexpr const char* name() {return "ForbiddenLAs";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -ForbiddenTACs ::= SEQUENCE (SIZE(1..maxnoofForbTACs)) OF TAC -*/ - -struct ForbiddenTACs_elm : TAC -{ - static constexpr const char* name() {return "ForbiddenTACs_elm";} - using parent_t = TAC; - -}; -struct ForbiddenTACs : asn::sequenceof -{ - static constexpr const char* name() {return "ForbiddenTACs";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -ForbiddenTAs-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct ForbiddenTAs_Item_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ForbiddenTAs-Item ::= SEQUENCE { - pLMN-Identity PLMN-Identity, - forbiddenTACs ForbiddenTACs, - iE-Extensions ProtocolExtensionContainer { {ForbiddenTAs-Item-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct ForbiddenTAs_Item : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "ForbiddenTAs-Item";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct pLMN_Identity_t : PLMN_Identity - { - static constexpr const char* name() {return "pLMN_Identity_t";} - using parent_t = PLMN_Identity; - - }; - pLMN_Identity_t& ref_pLMN_Identity() {return pLMN_Identity;} - pLMN_Identity_t const& ref_pLMN_Identity() const {return pLMN_Identity;} - struct forbiddenTACs_t : ForbiddenTACs - { - static constexpr const char* name() {return "forbiddenTACs_t";} - using parent_t = ForbiddenTACs; - - }; - forbiddenTACs_t& ref_forbiddenTACs() {return forbiddenTACs;} - forbiddenTACs_t const& ref_forbiddenTACs() const {return forbiddenTACs;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(pLMN_Identity); - v(forbiddenTACs); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(pLMN_Identity); - v(forbiddenTACs); - v(iE_Extensions); - - }; - void clear() - { - pLMN_Identity.clear(); - forbiddenTACs.clear(); - iE_Extensions.clear(); - - }; - private: - pLMN_Identity_t pLMN_Identity; - forbiddenTACs_t forbiddenTACs; - iE_Extensions_t iE_Extensions; - -}; -/* -ForbiddenTAs ::= SEQUENCE (SIZE(1.. maxnoofEPLMNsPlusOne)) OF ForbiddenTAs-Item -*/ - -struct ForbiddenTAs_elm : ForbiddenTAs_Item -{ - static constexpr const char* name() {return "ForbiddenTAs_elm";} - using parent_t = ForbiddenTAs_Item; - -}; -struct ForbiddenTAs : asn::sequenceof -{ - static constexpr const char* name() {return "ForbiddenTAs";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -Fourframes ::= BIT STRING (SIZE (24)) -*/ - -struct Fourframes : asn::bstring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "Fourframes";} - using parent_t = asn::bstring<>; - -}; - -/* -FreqBandIndicatorPriority ::= ENUMERATED { - not-broadcasted, - broadcasted, - ... -} -*/ - -struct FreqBandIndicatorPriority : asn::enumerated<2, 0, true> -{ - static constexpr const char* name() {return "FreqBandIndicatorPriority";} - using parent_t = asn::enumerated<2, 0, true>; - typedef enum { - not_broadcasted - ,broadcasted - } index_t; - -}; - -/* -SupportedSULFreqBandItem-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct SupportedSULFreqBandItem_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SupportedSULFreqBandItem ::= SEQUENCE { - freqBandIndicatorNr INTEGER (1..1024,...), - iE-Extensions ProtocolExtensionContainer { {SupportedSULFreqBandItem-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct SupportedSULFreqBandItem : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "SupportedSULFreqBandItem";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct freqBandIndicatorNr_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "freqBandIndicatorNr_t";} - using parent_t = asn::integer<>; - - }; - - freqBandIndicatorNr_t& ref_freqBandIndicatorNr() {return freqBandIndicatorNr;} - freqBandIndicatorNr_t const& ref_freqBandIndicatorNr() const {return freqBandIndicatorNr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(freqBandIndicatorNr); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(freqBandIndicatorNr); - v(iE_Extensions); - - }; - void clear() - { - freqBandIndicatorNr.clear(); - iE_Extensions.clear(); - - }; - private: - freqBandIndicatorNr_t freqBandIndicatorNr; - iE_Extensions_t iE_Extensions; - -}; -/* -FreqBandNrItem-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct FreqBandNrItem_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -FreqBandNrItem ::= SEQUENCE { - freqBandIndicatorNr INTEGER (1..1024,...), - supportedSULBandList SEQUENCE (SIZE(0..maxnoofNrCellBands)) OF SupportedSULFreqBandItem, - iE-Extensions ProtocolExtensionContainer { {FreqBandNrItem-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct FreqBandNrItem : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "FreqBandNrItem";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct freqBandIndicatorNr_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "freqBandIndicatorNr_t";} - using parent_t = asn::integer<>; - - }; - - freqBandIndicatorNr_t& ref_freqBandIndicatorNr() {return freqBandIndicatorNr;} - freqBandIndicatorNr_t const& ref_freqBandIndicatorNr() const {return freqBandIndicatorNr;} - struct supportedSULBandList_t_elm : SupportedSULFreqBandItem - { - static constexpr const char* name() {return "supportedSULBandList_t_elm";} - using parent_t = SupportedSULFreqBandItem; - - }; - struct supportedSULBandList_t : asn::sequenceof - { - static constexpr const char* name() {return "supportedSULBandList_t";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - - }; - supportedSULBandList_t& ref_supportedSULBandList() {return supportedSULBandList;} - supportedSULBandList_t const& ref_supportedSULBandList() const {return supportedSULBandList;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(freqBandIndicatorNr); - v(supportedSULBandList); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(freqBandIndicatorNr); - v(supportedSULBandList); - v(iE_Extensions); - - }; - void clear() - { - freqBandIndicatorNr.clear(); - supportedSULBandList.clear(); - iE_Extensions.clear(); - - }; - private: - freqBandIndicatorNr_t freqBandIndicatorNr; - supportedSULBandList_t supportedSULBandList; - iE_Extensions_t iE_Extensions; - -}; -/* -GNB-ID ::= CHOICE { - gNB-ID BIT STRING (SIZE (22..32)), - ... -} -*/ - -struct GNB_ID : asn::choice<1, 0, true> -{ - static constexpr const char* name() {return "GNB-ID";} - using parent_t = asn::choice<1, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 2;} - void set_unknown() { set_index(2); } - ~GNB_ID() {clear();} - struct gNB_ID_t : asn::bstring<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "gNB_ID_t";} - using parent_t = asn::bstring<>; - - }; - - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - gNB_ID_t& select_gNB_ID() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - gNB_ID_t const* get_gNB_ID() const { if(get_index() == 1) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(gNB_ID_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -GNBOverloadInformation ::= ENUMERATED {overloaded, not-overloaded, ...} -*/ - -struct GNBOverloadInformation : asn::enumerated<2, 0, true> -{ - static constexpr const char* name() {return "GNBOverloadInformation";} - using parent_t = asn::enumerated<2, 0, true>; - typedef enum { - overloaded - ,not_overloaded - } index_t; - -}; - -/* -GTP-TEI ::= OCTET STRING (SIZE (4)) -*/ - -struct GTP_TEI : asn::ostring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "GTP-TEI";} - using parent_t = asn::ostring<>; - -}; - -/* -TransportLayerAddress ::= BIT STRING (SIZE(1..160, ...)) -*/ - -struct TransportLayerAddress : asn::bstring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "TransportLayerAddress";} - using parent_t = asn::bstring<>; - -}; - -/* -GTPtunnelEndpoint-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct GTPtunnelEndpoint_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -GTPtunnelEndpoint ::= SEQUENCE { - transportLayerAddress TransportLayerAddress, - gTP-TEID GTP-TEI, - iE-Extensions ProtocolExtensionContainer { {GTPtunnelEndpoint-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct GTPtunnelEndpoint : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "GTPtunnelEndpoint";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct transportLayerAddress_t : TransportLayerAddress - { - static constexpr const char* name() {return "transportLayerAddress_t";} - using parent_t = TransportLayerAddress; - - }; - transportLayerAddress_t& ref_transportLayerAddress() {return transportLayerAddress;} - transportLayerAddress_t const& ref_transportLayerAddress() const {return transportLayerAddress;} - struct gTP_TEID_t : GTP_TEI - { - static constexpr const char* name() {return "gTP_TEID_t";} - using parent_t = GTP_TEI; - - }; - gTP_TEID_t& ref_gTP_TEID() {return gTP_TEID;} - gTP_TEID_t const& ref_gTP_TEID() const {return gTP_TEID;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(transportLayerAddress); - v(gTP_TEID); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(transportLayerAddress); - v(gTP_TEID); - v(iE_Extensions); - - }; - void clear() - { - transportLayerAddress.clear(); - gTP_TEID.clear(); - iE_Extensions.clear(); - - }; - private: - transportLayerAddress_t transportLayerAddress; - gTP_TEID_t gTP_TEID; - iE_Extensions_t iE_Extensions; - -}; -/* -MME-Group-ID ::= OCTET STRING (SIZE (2)) -*/ - -struct MME_Group_ID : asn::ostring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "MME-Group-ID";} - using parent_t = asn::ostring<>; - -}; - -/* -GU-Group-ID-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct GU_Group_ID_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -GU-Group-ID ::= SEQUENCE { - pLMN-Identity PLMN-Identity, - mME-Group-ID MME-Group-ID, - iE-Extensions ProtocolExtensionContainer { {GU-Group-ID-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct GU_Group_ID : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "GU-Group-ID";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct pLMN_Identity_t : PLMN_Identity - { - static constexpr const char* name() {return "pLMN_Identity_t";} - using parent_t = PLMN_Identity; - - }; - pLMN_Identity_t& ref_pLMN_Identity() {return pLMN_Identity;} - pLMN_Identity_t const& ref_pLMN_Identity() const {return pLMN_Identity;} - struct mME_Group_ID_t : MME_Group_ID - { - static constexpr const char* name() {return "mME_Group_ID_t";} - using parent_t = MME_Group_ID; - - }; - mME_Group_ID_t& ref_mME_Group_ID() {return mME_Group_ID;} - mME_Group_ID_t const& ref_mME_Group_ID() const {return mME_Group_ID;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(pLMN_Identity); - v(mME_Group_ID); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(pLMN_Identity); - v(mME_Group_ID); - v(iE_Extensions); - - }; - void clear() - { - pLMN_Identity.clear(); - mME_Group_ID.clear(); - iE_Extensions.clear(); - - }; - private: - pLMN_Identity_t pLMN_Identity; - mME_Group_ID_t mME_Group_ID; - iE_Extensions_t iE_Extensions; - -}; -/* -GUGroupIDList ::= SEQUENCE (SIZE (1..maxPools)) OF GU-Group-ID -*/ - -struct GUGroupIDList_elm : GU_Group_ID -{ - static constexpr const char* name() {return "GUGroupIDList_elm";} - using parent_t = GU_Group_ID; - -}; -struct GUGroupIDList : asn::sequenceof -{ - static constexpr const char* name() {return "GUGroupIDList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -MME-Code ::= OCTET STRING (SIZE (1)) -*/ - -struct MME_Code : asn::ostring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "MME-Code";} - using parent_t = asn::ostring<>; - -}; - -/* -GUMMEI-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct GUMMEI_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -GUMMEI ::= SEQUENCE { - - gU-Group-ID GU-Group-ID, - mME-Code MME-Code, - iE-Extensions ProtocolExtensionContainer { {GUMMEI-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct GUMMEI : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "GUMMEI";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct gU_Group_ID_t : GU_Group_ID - { - static constexpr const char* name() {return "gU_Group_ID_t";} - using parent_t = GU_Group_ID; - - }; - gU_Group_ID_t& ref_gU_Group_ID() {return gU_Group_ID;} - gU_Group_ID_t const& ref_gU_Group_ID() const {return gU_Group_ID;} - struct mME_Code_t : MME_Code - { - static constexpr const char* name() {return "mME_Code_t";} - using parent_t = MME_Code; - - }; - mME_Code_t& ref_mME_Code() {return mME_Code;} - mME_Code_t const& ref_mME_Code() const {return mME_Code;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(gU_Group_ID); - v(mME_Code); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(gU_Group_ID); - v(mME_Code); - v(iE_Extensions); - - }; - void clear() - { - gU_Group_ID.clear(); - mME_Code.clear(); - iE_Extensions.clear(); - - }; - private: - gU_Group_ID_t gU_Group_ID; - mME_Code_t mME_Code; - iE_Extensions_t iE_Extensions; - -}; -/* -GlobalENB-ID-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct GlobalENB_ID_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -GlobalENB-ID ::= SEQUENCE { - pLMN-Identity PLMN-Identity, - eNB-ID ENB-ID, - iE-Extensions ProtocolExtensionContainer { {GlobalENB-ID-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct GlobalENB_ID : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "GlobalENB-ID";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct pLMN_Identity_t : PLMN_Identity - { - static constexpr const char* name() {return "pLMN_Identity_t";} - using parent_t = PLMN_Identity; - - }; - pLMN_Identity_t& ref_pLMN_Identity() {return pLMN_Identity;} - pLMN_Identity_t const& ref_pLMN_Identity() const {return pLMN_Identity;} - struct eNB_ID_t : ENB_ID - { - static constexpr const char* name() {return "eNB_ID_t";} - using parent_t = ENB_ID; - - }; - eNB_ID_t& ref_eNB_ID() {return eNB_ID;} - eNB_ID_t const& ref_eNB_ID() const {return eNB_ID;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(pLMN_Identity); - v(eNB_ID); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(pLMN_Identity); - v(eNB_ID); - v(iE_Extensions); - - }; - void clear() - { - pLMN_Identity.clear(); - eNB_ID.clear(); - iE_Extensions.clear(); - - }; - private: - pLMN_Identity_t pLMN_Identity; - eNB_ID_t eNB_ID; - iE_Extensions_t iE_Extensions; - -}; -/* -GlobalGNB-ID-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct GlobalGNB_ID_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -GlobalGNB-ID ::= SEQUENCE { - pLMN-Identity PLMN-Identity, - gNB-ID GNB-ID, - iE-Extensions ProtocolExtensionContainer { {GlobalGNB-ID-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct GlobalGNB_ID : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "GlobalGNB-ID";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct pLMN_Identity_t : PLMN_Identity - { - static constexpr const char* name() {return "pLMN_Identity_t";} - using parent_t = PLMN_Identity; - - }; - pLMN_Identity_t& ref_pLMN_Identity() {return pLMN_Identity;} - pLMN_Identity_t const& ref_pLMN_Identity() const {return pLMN_Identity;} - struct gNB_ID_t : GNB_ID - { - static constexpr const char* name() {return "gNB_ID_t";} - using parent_t = GNB_ID; - - }; - gNB_ID_t& ref_gNB_ID() {return gNB_ID;} - gNB_ID_t const& ref_gNB_ID() const {return gNB_ID;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(pLMN_Identity); - v(gNB_ID); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(pLMN_Identity); - v(gNB_ID); - v(iE_Extensions); - - }; - void clear() - { - pLMN_Identity.clear(); - gNB_ID.clear(); - iE_Extensions.clear(); - - }; - private: - pLMN_Identity_t pLMN_Identity; - gNB_ID_t gNB_ID; - iE_Extensions_t iE_Extensions; - -}; -/* -LoadIndicator ::= ENUMERATED { - lowLoad, - mediumLoad, - highLoad, - overLoad, - ... -} -*/ - -struct LoadIndicator : asn::enumerated<4, 0, true> -{ - static constexpr const char* name() {return "LoadIndicator";} - using parent_t = asn::enumerated<4, 0, true>; - typedef enum { - lowLoad - ,mediumLoad - ,highLoad - ,overLoad - } index_t; - -}; - -/* -HWLoadIndicator-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct HWLoadIndicator_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -HWLoadIndicator ::= SEQUENCE { - dLHWLoadIndicator LoadIndicator, - uLHWLoadIndicator LoadIndicator, - iE-Extensions ProtocolExtensionContainer { {HWLoadIndicator-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct HWLoadIndicator : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "HWLoadIndicator";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct dLHWLoadIndicator_t : LoadIndicator - { - static constexpr const char* name() {return "dLHWLoadIndicator_t";} - using parent_t = LoadIndicator; - - }; - dLHWLoadIndicator_t& ref_dLHWLoadIndicator() {return dLHWLoadIndicator;} - dLHWLoadIndicator_t const& ref_dLHWLoadIndicator() const {return dLHWLoadIndicator;} - struct uLHWLoadIndicator_t : LoadIndicator - { - static constexpr const char* name() {return "uLHWLoadIndicator_t";} - using parent_t = LoadIndicator; - - }; - uLHWLoadIndicator_t& ref_uLHWLoadIndicator() {return uLHWLoadIndicator;} - uLHWLoadIndicator_t const& ref_uLHWLoadIndicator() const {return uLHWLoadIndicator;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(dLHWLoadIndicator); - v(uLHWLoadIndicator); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(dLHWLoadIndicator); - v(uLHWLoadIndicator); - v(iE_Extensions); - - }; - void clear() - { - dLHWLoadIndicator.clear(); - uLHWLoadIndicator.clear(); - iE_Extensions.clear(); - - }; - private: - dLHWLoadIndicator_t dLHWLoadIndicator; - uLHWLoadIndicator_t uLHWLoadIndicator; - iE_Extensions_t iE_Extensions; - -}; -/* -HandoverReportType ::= ENUMERATED { - hoTooEarly, - hoToWrongCell, - ..., - interRATpingpong -} -*/ - -struct HandoverReportType : asn::enumerated<3, 1, true> -{ - static constexpr const char* name() {return "HandoverReportType";} - using parent_t = asn::enumerated<3, 1, true>; - typedef enum { - hoTooEarly - ,hoToWrongCell - ,interRATpingpong - } index_t; - -}; - -/* -NRrestrictioninEPSasSecondaryRAT ::= ENUMERATED { - nRrestrictedinEPSasSecondaryRAT, - ... -} -*/ - -struct NRrestrictioninEPSasSecondaryRAT : asn::enumerated<1, 0, true> -{ - static constexpr const char* name() {return "NRrestrictioninEPSasSecondaryRAT";} - using parent_t = asn::enumerated<1, 0, true>; - typedef enum { - nRrestrictedinEPSasSecondaryRAT - } index_t; - -}; - -/* -NRrestrictionin5GS ::= ENUMERATED { - nRrestrictedin5GS, - ... -} -*/ - -struct NRrestrictionin5GS : asn::enumerated<1, 0, true> -{ - static constexpr const char* name() {return "NRrestrictionin5GS";} - using parent_t = asn::enumerated<1, 0, true>; - typedef enum { - nRrestrictedin5GS - } index_t; - -}; - -/* -HandoverRestrictionList-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-NRrestrictioninEPSasSecondaryRAT CRITICALITY ignore EXTENSION NRrestrictioninEPSasSecondaryRAT PRESENCE optional}| - { ID id-CNTypeRestrictions CRITICALITY ignore EXTENSION CNTypeRestrictions PRESENCE optional}| - { ID id-NRrestrictionin5GS CRITICALITY ignore EXTENSION NRrestrictionin5GS PRESENCE optional}, - ... -} -*/ - -struct HandoverRestrictionList_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_NRrestrictioninEPSasSecondaryRAT() { set(id_NRrestrictioninEPSasSecondaryRAT); type=1;} - void select_id_CNTypeRestrictions() { set(id_CNTypeRestrictions); type=2;} - void select_id_NRrestrictionin5GS() { set(id_NRrestrictionin5GS); type=3;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_NRrestrictioninEPSasSecondaryRAT)) { type = 1; return true; } - else if(equal(id_CNTypeRestrictions)) { type = 2; return true; } - else if(equal(id_NRrestrictionin5GS)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_NRrestrictioninEPSasSecondaryRAT);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_CNTypeRestrictions);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_NRrestrictionin5GS);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_NRrestrictioninEPSasSecondaryRAT() { set(ignore); type=1;} - void select_id_CNTypeRestrictions() { set(ignore); type=2;} - void select_id_NRrestrictionin5GS() { set(ignore); type=3;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - NRrestrictioninEPSasSecondaryRAT& select_id_NRrestrictioninEPSasSecondaryRAT() { return set(1); } - NRrestrictioninEPSasSecondaryRAT const* get_id_NRrestrictioninEPSasSecondaryRAT() const { return get(1); } - CNTypeRestrictions& select_id_CNTypeRestrictions() { return set(2); } - CNTypeRestrictions const* get_id_CNTypeRestrictions() const { return get(2); } - NRrestrictionin5GS& select_id_NRrestrictionin5GS() { return set(3); } - NRrestrictionin5GS const* get_id_NRrestrictionin5GS() const { return get(3); } - bool is_unknown() const { return type == 4; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_NRrestrictioninEPSasSecondaryRAT()); return true; - case 2: v(select_id_CNTypeRestrictions()); return true; - case 3: v(select_id_NRrestrictionin5GS()); return true; - case 4: if(type != 4) {clear(); asn::base::set();} type = 4; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CNTypeRestrictions)]; - char dummy2[sizeof(NRrestrictionin5GS)]; - char dummy3[sizeof(NRrestrictioninEPSasSecondaryRAT)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_NRrestrictioninEPSasSecondaryRAT() { set(optional); type=1;} - void select_id_CNTypeRestrictions() { set(optional); type=2;} - void select_id_NRrestrictionin5GS() { set(optional); type=3;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -HandoverRestrictionList ::= SEQUENCE { - servingPLMN PLMN-Identity, - equivalentPLMNs EPLMNs OPTIONAL, - forbiddenTAs ForbiddenTAs OPTIONAL, - forbiddenLAs ForbiddenLAs OPTIONAL, - forbiddenInterRATs ForbiddenInterRATs OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {HandoverRestrictionList-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct HandoverRestrictionList : asn::sequence<6, 0, true, 5> -{ - static constexpr const char* name() {return "HandoverRestrictionList";} - using parent_t = asn::sequence<6, 0, true, 5>; - struct servingPLMN_t : PLMN_Identity - { - static constexpr const char* name() {return "servingPLMN_t";} - using parent_t = PLMN_Identity; - - }; - servingPLMN_t& ref_servingPLMN() {return servingPLMN;} - servingPLMN_t const& ref_servingPLMN() const {return servingPLMN;} - struct equivalentPLMNs_t : EPLMNs - { - static constexpr const char* name() {return "equivalentPLMNs_t";} - using parent_t = EPLMNs; - static constexpr bool optional = true; - - }; - equivalentPLMNs_t& set_equivalentPLMNs() { equivalentPLMNs.setpresent(true); return equivalentPLMNs;} - equivalentPLMNs_t const* get_equivalentPLMNs() const {return equivalentPLMNs.is_valid() ? &equivalentPLMNs : nullptr;} - struct forbiddenTAs_t : ForbiddenTAs - { - static constexpr const char* name() {return "forbiddenTAs_t";} - using parent_t = ForbiddenTAs; - static constexpr bool optional = true; - - }; - forbiddenTAs_t& set_forbiddenTAs() { forbiddenTAs.setpresent(true); return forbiddenTAs;} - forbiddenTAs_t const* get_forbiddenTAs() const {return forbiddenTAs.is_valid() ? &forbiddenTAs : nullptr;} - struct forbiddenLAs_t : ForbiddenLAs - { - static constexpr const char* name() {return "forbiddenLAs_t";} - using parent_t = ForbiddenLAs; - static constexpr bool optional = true; - - }; - forbiddenLAs_t& set_forbiddenLAs() { forbiddenLAs.setpresent(true); return forbiddenLAs;} - forbiddenLAs_t const* get_forbiddenLAs() const {return forbiddenLAs.is_valid() ? &forbiddenLAs : nullptr;} - struct forbiddenInterRATs_t : ForbiddenInterRATs - { - static constexpr const char* name() {return "forbiddenInterRATs_t";} - using parent_t = ForbiddenInterRATs; - static constexpr bool optional = true; - - }; - forbiddenInterRATs_t& set_forbiddenInterRATs() { forbiddenInterRATs.setpresent(true); return forbiddenInterRATs;} - forbiddenInterRATs_t const* get_forbiddenInterRATs() const {return forbiddenInterRATs.is_valid() ? &forbiddenInterRATs : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(servingPLMN); - v(equivalentPLMNs); - v(forbiddenTAs); - v(forbiddenLAs); - v(forbiddenInterRATs); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(servingPLMN); - v(equivalentPLMNs); - v(forbiddenTAs); - v(forbiddenLAs); - v(forbiddenInterRATs); - v(iE_Extensions); - - }; - void clear() - { - servingPLMN.clear(); - equivalentPLMNs.clear(); - forbiddenTAs.clear(); - forbiddenLAs.clear(); - forbiddenInterRATs.clear(); - iE_Extensions.clear(); - - }; - private: - servingPLMN_t servingPLMN; - equivalentPLMNs_t equivalentPLMNs; - forbiddenTAs_t forbiddenTAs; - forbiddenLAs_t forbiddenLAs; - forbiddenInterRATs_t forbiddenInterRATs; - iE_Extensions_t iE_Extensions; - -}; -/* -IntegrityProtectionAlgorithms ::= BIT STRING (SIZE (16, ...)) -*/ - -struct IntegrityProtectionAlgorithms : asn::bstring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "IntegrityProtectionAlgorithms";} - using parent_t = asn::bstring<>; - -}; - -/* -InterfacesToTrace ::= BIT STRING (SIZE (8)) -*/ - -struct InterfacesToTrace : asn::bstring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "InterfacesToTrace";} - using parent_t = asn::bstring<>; - -}; - -/* -InvokeIndication ::= ENUMERATED{ - abs-information, - ..., - naics-information-start, - naics-information-stop -} -*/ - -struct InvokeIndication : asn::enumerated<3, 2, true> -{ - static constexpr const char* name() {return "InvokeIndication";} - using parent_t = asn::enumerated<3, 2, true>; - typedef enum { - abs_information - ,naics_information_start - ,naics_information_stop - } index_t; - -}; - -/* -LCID ::= INTEGER(1..32, ...) -*/ - -struct LCID : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "LCID";} - using parent_t = asn::integer<>; - -}; - -/* -LHN-ID ::= OCTET STRING(SIZE (32..256)) -*/ - -struct LHN_ID : asn::ostring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "LHN-ID";} - using parent_t = asn::ostring<>; - -}; - -/* -Time-UE-StayedInCell ::= INTEGER (0..4095) -*/ - -struct Time_UE_StayedInCell : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "Time-UE-StayedInCell";} - using parent_t = asn::integer<>; - -}; - -/* -Time-UE-StayedInCell-EnhancedGranularity ::= INTEGER (0..40950) -*/ - -struct Time_UE_StayedInCell_EnhancedGranularity : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "Time-UE-StayedInCell-EnhancedGranularity";} - using parent_t = asn::integer<>; - -}; - -/* -LastVisitedEUTRANCellInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { --- Extension for Rel-11 to support enhanced granularity for time UE stayed in cell -- - { ID id-Time-UE-StayedInCell-EnhancedGranularity CRITICALITY ignore EXTENSION Time-UE-StayedInCell-EnhancedGranularity PRESENCE optional}| - { ID id-HO-cause CRITICALITY ignore EXTENSION Cause PRESENCE optional}, - ... -} -*/ - -struct LastVisitedEUTRANCellInformation_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_Time_UE_StayedInCell_EnhancedGranularity() { set(id_Time_UE_StayedInCell_EnhancedGranularity); type=1;} - void select_id_HO_cause() { set(id_HO_cause); type=2;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_Time_UE_StayedInCell_EnhancedGranularity)) { type = 1; return true; } - else if(equal(id_HO_cause)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_Time_UE_StayedInCell_EnhancedGranularity);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_HO_cause);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_Time_UE_StayedInCell_EnhancedGranularity() { set(ignore); type=1;} - void select_id_HO_cause() { set(ignore); type=2;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - Time_UE_StayedInCell_EnhancedGranularity& select_id_Time_UE_StayedInCell_EnhancedGranularity() { return set(1); } - Time_UE_StayedInCell_EnhancedGranularity const* get_id_Time_UE_StayedInCell_EnhancedGranularity() const { return get(1); } - Cause& select_id_HO_cause() { return set(2); } - Cause const* get_id_HO_cause() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_Time_UE_StayedInCell_EnhancedGranularity()); return true; - case 2: v(select_id_HO_cause()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(Time_UE_StayedInCell_EnhancedGranularity)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_Time_UE_StayedInCell_EnhancedGranularity() { set(optional); type=1;} - void select_id_HO_cause() { set(optional); type=2;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -LastVisitedEUTRANCellInformation ::= SEQUENCE { - global-Cell-ID ECGI, - cellType CellType, - time-UE-StayedInCell Time-UE-StayedInCell, - iE-Extensions ProtocolExtensionContainer { {LastVisitedEUTRANCellInformation-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct LastVisitedEUTRANCellInformation : asn::sequence<4, 0, true, 1> -{ - static constexpr const char* name() {return "LastVisitedEUTRANCellInformation";} - using parent_t = asn::sequence<4, 0, true, 1>; - struct global_Cell_ID_t : ECGI - { - static constexpr const char* name() {return "global_Cell_ID_t";} - using parent_t = ECGI; - - }; - global_Cell_ID_t& ref_global_Cell_ID() {return global_Cell_ID;} - global_Cell_ID_t const& ref_global_Cell_ID() const {return global_Cell_ID;} - struct cellType_t : CellType - { - static constexpr const char* name() {return "cellType_t";} - using parent_t = CellType; - - }; - cellType_t& ref_cellType() {return cellType;} - cellType_t const& ref_cellType() const {return cellType;} - struct time_UE_StayedInCell_t : Time_UE_StayedInCell - { - static constexpr const char* name() {return "time_UE_StayedInCell_t";} - using parent_t = Time_UE_StayedInCell; - - }; - time_UE_StayedInCell_t& ref_time_UE_StayedInCell() {return time_UE_StayedInCell;} - time_UE_StayedInCell_t const& ref_time_UE_StayedInCell() const {return time_UE_StayedInCell;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(global_Cell_ID); - v(cellType); - v(time_UE_StayedInCell); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(global_Cell_ID); - v(cellType); - v(time_UE_StayedInCell); - v(iE_Extensions); - - }; - void clear() - { - global_Cell_ID.clear(); - cellType.clear(); - time_UE_StayedInCell.clear(); - iE_Extensions.clear(); - - }; - private: - global_Cell_ID_t global_Cell_ID; - cellType_t cellType; - time_UE_StayedInCell_t time_UE_StayedInCell; - iE_Extensions_t iE_Extensions; - -}; -/* -LastVisitedUTRANCellInformation ::= OCTET STRING -*/ - -struct LastVisitedUTRANCellInformation : asn::ostring<> -{ - static constexpr const char* name() {return "LastVisitedUTRANCellInformation";} - using parent_t = asn::ostring<>; - -}; - -/* -LastVisitedGERANCellInformation ::= CHOICE { - undefined NULL, - ... -} -*/ - -struct LastVisitedGERANCellInformation : asn::choice<1, 0, true> -{ - static constexpr const char* name() {return "LastVisitedGERANCellInformation";} - using parent_t = asn::choice<1, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 2;} - void set_unknown() { set_index(2); } - ~LastVisitedGERANCellInformation() {clear();} - struct undefined_t : asn::nulltype - { - static constexpr const char* name() {return "undefined_t";} - using parent_t = asn::nulltype; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - undefined_t& select_undefined() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - undefined_t const* get_undefined() const { if(get_index() == 1) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(undefined_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -LastVisitedNGRANCellInformation ::= OCTET STRING -*/ - -struct LastVisitedNGRANCellInformation : asn::ostring<> -{ - static constexpr const char* name() {return "LastVisitedNGRANCellInformation";} - using parent_t = asn::ostring<>; - -}; - -/* -LastVisitedCell-Item ::= CHOICE { - e-UTRAN-Cell LastVisitedEUTRANCellInformation, - uTRAN-Cell LastVisitedUTRANCellInformation, - gERAN-Cell LastVisitedGERANCellInformation, - ..., - nG-RAN-Cell LastVisitedNGRANCellInformation -} -*/ - -struct LastVisitedCell_Item : asn::choice<4, 1, true> -{ - static constexpr const char* name() {return "LastVisitedCell-Item";} - using parent_t = asn::choice<4, 1, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 5;} - void set_unknown() { set_index(5); } - ~LastVisitedCell_Item() {clear();} - struct e_UTRAN_Cell_t : LastVisitedEUTRANCellInformation - { - static constexpr const char* name() {return "e_UTRAN_Cell_t";} - using parent_t = LastVisitedEUTRANCellInformation; - - }; - struct uTRAN_Cell_t : LastVisitedUTRANCellInformation - { - static constexpr const char* name() {return "uTRAN_Cell_t";} - using parent_t = LastVisitedUTRANCellInformation; - - }; - struct gERAN_Cell_t : LastVisitedGERANCellInformation - { - static constexpr const char* name() {return "gERAN_Cell_t";} - using parent_t = LastVisitedGERANCellInformation; - - }; - struct nG_RAN_Cell_t : LastVisitedNGRANCellInformation - { - static constexpr const char* name() {return "nG_RAN_Cell_t";} - using parent_t = LastVisitedNGRANCellInformation; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - case 3: set_index(3); return v(var.build()); - case 4: set_index(4); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - case 3: return v(var.as()); - case 4: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - - } - e_UTRAN_Cell_t& select_e_UTRAN_Cell() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - e_UTRAN_Cell_t const* get_e_UTRAN_Cell() const { if(get_index() == 1) { return &var.as();} return nullptr; } - uTRAN_Cell_t& select_uTRAN_Cell() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - uTRAN_Cell_t const* get_uTRAN_Cell() const { if(get_index() == 2) { return &var.as();} return nullptr; } - gERAN_Cell_t& select_gERAN_Cell() { if(get_index() != 3) { clear(); set_index(3); return var.build();} return var.as();} - gERAN_Cell_t const* get_gERAN_Cell() const { if(get_index() == 3) { return &var.as();} return nullptr; } - nG_RAN_Cell_t& select_nG_RAN_Cell() { if(get_index() != 4) { clear(); set_index(4); return var.build();} return var.as();} - nG_RAN_Cell_t const* get_nG_RAN_Cell() const { if(get_index() == 4) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(e_UTRAN_Cell_t)]; - char dummy2[sizeof(uTRAN_Cell_t)]; - char dummy3[sizeof(gERAN_Cell_t)]; - char dummy4[sizeof(nG_RAN_Cell_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -Links-to-log ::= ENUMERATED {uplink, downlink, both-uplink-and-downlink, ...} -*/ - -struct Links_to_log : asn::enumerated<3, 0, true> -{ - static constexpr const char* name() {return "Links-to-log";} - using parent_t = asn::enumerated<3, 0, true>; - typedef enum { - uplink - ,downlink - ,both_uplink_and_downlink - } index_t; - -}; - -/* -ReportArea ::= ENUMERATED{ - ecgi, - ... -} -*/ - -struct ReportArea : asn::enumerated<1, 0, true> -{ - static constexpr const char* name() {return "ReportArea";} - using parent_t = asn::enumerated<1, 0, true>; - typedef enum { - ecgi - } index_t; - -}; - -/* -LocationReportingInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::={ - ... -} -*/ - -struct LocationReportingInformation_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -LocationReportingInformation ::= SEQUENCE { - eventType EventType, - reportArea ReportArea, - iE-Extensions ProtocolExtensionContainer { {LocationReportingInformation-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct LocationReportingInformation : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "LocationReportingInformation";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct eventType_t : EventType - { - static constexpr const char* name() {return "eventType_t";} - using parent_t = EventType; - - }; - eventType_t& ref_eventType() {return eventType;} - eventType_t const& ref_eventType() const {return eventType;} - struct reportArea_t : ReportArea - { - static constexpr const char* name() {return "reportArea_t";} - using parent_t = ReportArea; - - }; - reportArea_t& ref_reportArea() {return reportArea;} - reportArea_t const& ref_reportArea() const {return reportArea;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(eventType); - v(reportArea); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(eventType); - v(reportArea); - v(iE_Extensions); - - }; - void clear() - { - eventType.clear(); - reportArea.clear(); - iE_Extensions.clear(); - - }; - private: - eventType_t eventType; - reportArea_t reportArea; - iE_Extensions_t iE_Extensions; - -}; -/* -ReportIntervalMDT ::= ENUMERATED {ms120, ms240, ms480, ms640, ms1024, ms2048, ms5120, ms10240, min1, min6, min12, min30, min60} -*/ - -struct ReportIntervalMDT : asn::enumerated<13, 0, false> -{ - static constexpr const char* name() {return "ReportIntervalMDT";} - using parent_t = asn::enumerated<13, 0, false>; - typedef enum { - ms120 - ,ms240 - ,ms480 - ,ms640 - ,ms1024 - ,ms2048 - ,ms5120 - ,ms10240 - ,min1 - ,min6 - ,min12 - ,min30 - ,min60 - } index_t; - -}; - -/* -ReportAmountMDT ::= ENUMERATED{r1, r2, r4, r8, r16, r32, r64, rinfinity} -*/ - -struct ReportAmountMDT : asn::enumerated<8, 0, false> -{ - static constexpr const char* name() {return "ReportAmountMDT";} - using parent_t = asn::enumerated<8, 0, false>; - typedef enum { - r1 - ,r2 - ,r4 - ,r8 - ,r16 - ,r32 - ,r64 - ,rinfinity - } index_t; - -}; - -/* -M1PeriodicReporting-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct M1PeriodicReporting_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -M1PeriodicReporting ::= SEQUENCE { - reportInterval ReportIntervalMDT, - reportAmount ReportAmountMDT, - iE-Extensions ProtocolExtensionContainer { {M1PeriodicReporting-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct M1PeriodicReporting : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "M1PeriodicReporting";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct reportInterval_t : ReportIntervalMDT - { - static constexpr const char* name() {return "reportInterval_t";} - using parent_t = ReportIntervalMDT; - - }; - reportInterval_t& ref_reportInterval() {return reportInterval;} - reportInterval_t const& ref_reportInterval() const {return reportInterval;} - struct reportAmount_t : ReportAmountMDT - { - static constexpr const char* name() {return "reportAmount_t";} - using parent_t = ReportAmountMDT; - - }; - reportAmount_t& ref_reportAmount() {return reportAmount;} - reportAmount_t const& ref_reportAmount() const {return reportAmount;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(reportInterval); - v(reportAmount); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(reportInterval); - v(reportAmount); - v(iE_Extensions); - - }; - void clear() - { - reportInterval.clear(); - reportAmount.clear(); - iE_Extensions.clear(); - - }; - private: - reportInterval_t reportInterval; - reportAmount_t reportAmount; - iE_Extensions_t iE_Extensions; - -}; -/* -M1ReportingTrigger::= ENUMERATED{ - periodic, - a2eventtriggered, - ..., - a2eventtriggered-periodic -} -*/ - -struct M1ReportingTrigger : asn::enumerated<3, 1, true> -{ - static constexpr const char* name() {return "M1ReportingTrigger";} - using parent_t = asn::enumerated<3, 1, true>; - typedef enum { - periodic - ,a2eventtriggered - ,a2eventtriggered_periodic - } index_t; - -}; - -/* -Threshold-RSRP ::= INTEGER(0..97) -*/ - -struct Threshold_RSRP : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "Threshold-RSRP";} - using parent_t = asn::integer<>; - -}; - -/* -Threshold-RSRQ ::= INTEGER(0..34) -*/ - -struct Threshold_RSRQ : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "Threshold-RSRQ";} - using parent_t = asn::integer<>; - -}; - -/* -MeasurementThresholdA2 ::= CHOICE { - threshold-RSRP Threshold-RSRP, - threshold-RSRQ Threshold-RSRQ, - ... -} -*/ - -struct MeasurementThresholdA2 : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "MeasurementThresholdA2";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~MeasurementThresholdA2() {clear();} - struct threshold_RSRP_t : Threshold_RSRP - { - static constexpr const char* name() {return "threshold_RSRP_t";} - using parent_t = Threshold_RSRP; - - }; - struct threshold_RSRQ_t : Threshold_RSRQ - { - static constexpr const char* name() {return "threshold_RSRQ_t";} - using parent_t = Threshold_RSRQ; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - threshold_RSRP_t& select_threshold_RSRP() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - threshold_RSRP_t const* get_threshold_RSRP() const { if(get_index() == 1) { return &var.as();} return nullptr; } - threshold_RSRQ_t& select_threshold_RSRQ() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - threshold_RSRQ_t const* get_threshold_RSRQ() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(threshold_RSRP_t)]; - char dummy2[sizeof(threshold_RSRQ_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -M1ThresholdEventA2-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct M1ThresholdEventA2_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -M1ThresholdEventA2 ::= SEQUENCE { - measurementThreshold MeasurementThresholdA2, - iE-Extensions ProtocolExtensionContainer { {M1ThresholdEventA2-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct M1ThresholdEventA2 : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "M1ThresholdEventA2";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct measurementThreshold_t : MeasurementThresholdA2 - { - static constexpr const char* name() {return "measurementThreshold_t";} - using parent_t = MeasurementThresholdA2; - - }; - measurementThreshold_t& ref_measurementThreshold() {return measurementThreshold;} - measurementThreshold_t const& ref_measurementThreshold() const {return measurementThreshold;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(measurementThreshold); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(measurementThreshold); - v(iE_Extensions); - - }; - void clear() - { - measurementThreshold.clear(); - iE_Extensions.clear(); - - }; - private: - measurementThreshold_t measurementThreshold; - iE_Extensions_t iE_Extensions; - -}; -/* -M3period ::= ENUMERATED {ms100, ms1000, ms10000, ... } -*/ - -struct M3period : asn::enumerated<3, 0, true> -{ - static constexpr const char* name() {return "M3period";} - using parent_t = asn::enumerated<3, 0, true>; - typedef enum { - ms100 - ,ms1000 - ,ms10000 - } index_t; - -}; - -/* -M3Configuration-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct M3Configuration_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -M3Configuration ::= SEQUENCE { - m3period M3period, - iE-Extensions ProtocolExtensionContainer { {M3Configuration-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct M3Configuration : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "M3Configuration";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct m3period_t : M3period - { - static constexpr const char* name() {return "m3period_t";} - using parent_t = M3period; - - }; - m3period_t& ref_m3period() {return m3period;} - m3period_t const& ref_m3period() const {return m3period;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(m3period); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(m3period); - v(iE_Extensions); - - }; - void clear() - { - m3period.clear(); - iE_Extensions.clear(); - - }; - private: - m3period_t m3period; - iE_Extensions_t iE_Extensions; - -}; -/* -M4period ::= ENUMERATED {ms1024, ms2048, ms5120, ms10240, min1, ... } -*/ - -struct M4period : asn::enumerated<5, 0, true> -{ - static constexpr const char* name() {return "M4period";} - using parent_t = asn::enumerated<5, 0, true>; - typedef enum { - ms1024 - ,ms2048 - ,ms5120 - ,ms10240 - ,min1 - } index_t; - -}; - -/* -M4Configuration-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct M4Configuration_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -M4Configuration ::= SEQUENCE { - m4period M4period, - m4-links-to-log Links-to-log, - iE-Extensions ProtocolExtensionContainer { {M4Configuration-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct M4Configuration : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "M4Configuration";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct m4period_t : M4period - { - static constexpr const char* name() {return "m4period_t";} - using parent_t = M4period; - - }; - m4period_t& ref_m4period() {return m4period;} - m4period_t const& ref_m4period() const {return m4period;} - struct m4_links_to_log_t : Links_to_log - { - static constexpr const char* name() {return "m4_links_to_log_t";} - using parent_t = Links_to_log; - - }; - m4_links_to_log_t& ref_m4_links_to_log() {return m4_links_to_log;} - m4_links_to_log_t const& ref_m4_links_to_log() const {return m4_links_to_log;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(m4period); - v(m4_links_to_log); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(m4period); - v(m4_links_to_log); - v(iE_Extensions); - - }; - void clear() - { - m4period.clear(); - m4_links_to_log.clear(); - iE_Extensions.clear(); - - }; - private: - m4period_t m4period; - m4_links_to_log_t m4_links_to_log; - iE_Extensions_t iE_Extensions; - -}; -/* -M5period ::= ENUMERATED {ms1024, ms2048, ms5120, ms10240, min1, ... } -*/ - -struct M5period : asn::enumerated<5, 0, true> -{ - static constexpr const char* name() {return "M5period";} - using parent_t = asn::enumerated<5, 0, true>; - typedef enum { - ms1024 - ,ms2048 - ,ms5120 - ,ms10240 - ,min1 - } index_t; - -}; - -/* -M5Configuration-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct M5Configuration_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -M5Configuration ::= SEQUENCE { - m5period M5period, - m5-links-to-log Links-to-log, - iE-Extensions ProtocolExtensionContainer { {M5Configuration-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct M5Configuration : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "M5Configuration";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct m5period_t : M5period - { - static constexpr const char* name() {return "m5period_t";} - using parent_t = M5period; - - }; - m5period_t& ref_m5period() {return m5period;} - m5period_t const& ref_m5period() const {return m5period;} - struct m5_links_to_log_t : Links_to_log - { - static constexpr const char* name() {return "m5_links_to_log_t";} - using parent_t = Links_to_log; - - }; - m5_links_to_log_t& ref_m5_links_to_log() {return m5_links_to_log;} - m5_links_to_log_t const& ref_m5_links_to_log() const {return m5_links_to_log;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(m5period); - v(m5_links_to_log); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(m5period); - v(m5_links_to_log); - v(iE_Extensions); - - }; - void clear() - { - m5period.clear(); - m5_links_to_log.clear(); - iE_Extensions.clear(); - - }; - private: - m5period_t m5period; - m5_links_to_log_t m5_links_to_log; - iE_Extensions_t iE_Extensions; - -}; -/* -M6report-interval ::= ENUMERATED { ms1024, ms2048, ms5120, ms10240, ... } -*/ - -struct M6report_interval : asn::enumerated<4, 0, true> -{ - static constexpr const char* name() {return "M6report-interval";} - using parent_t = asn::enumerated<4, 0, true>; - typedef enum { - ms1024 - ,ms2048 - ,ms5120 - ,ms10240 - } index_t; - -}; - -/* -M6delay-threshold ::= ENUMERATED { ms30, ms40, ms50, ms60, ms70, ms80, ms90, ms100, ms150, ms300, ms500, ms750, ... } -*/ - -struct M6delay_threshold : asn::enumerated<12, 0, true> -{ - static constexpr const char* name() {return "M6delay-threshold";} - using parent_t = asn::enumerated<12, 0, true>; - typedef enum { - ms30 - ,ms40 - ,ms50 - ,ms60 - ,ms70 - ,ms80 - ,ms90 - ,ms100 - ,ms150 - ,ms300 - ,ms500 - ,ms750 - } index_t; - -}; - -/* -M6Configuration-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct M6Configuration_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -M6Configuration ::= SEQUENCE { - m6report-interval M6report-interval, - m6delay-threshold M6delay-threshold OPTIONAL, --- This IE shall be present if the M6 Links to log IE is set to “uplink” or to “both-uplink-and-downlink” -- - m6-links-to-log Links-to-log, - iE-Extensions ProtocolExtensionContainer { {M6Configuration-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct M6Configuration : asn::sequence<4, 0, true, 2> -{ - static constexpr const char* name() {return "M6Configuration";} - using parent_t = asn::sequence<4, 0, true, 2>; - struct m6report_interval_t : M6report_interval - { - static constexpr const char* name() {return "m6report_interval_t";} - using parent_t = M6report_interval; - - }; - m6report_interval_t& ref_m6report_interval() {return m6report_interval;} - m6report_interval_t const& ref_m6report_interval() const {return m6report_interval;} - struct m6delay_threshold_t : M6delay_threshold - { - static constexpr const char* name() {return "m6delay_threshold_t";} - using parent_t = M6delay_threshold; - static constexpr bool optional = true; - - }; - m6delay_threshold_t& set_m6delay_threshold() { m6delay_threshold.setpresent(true); return m6delay_threshold;} - m6delay_threshold_t const* get_m6delay_threshold() const {return m6delay_threshold.is_valid() ? &m6delay_threshold : nullptr;} - struct m6_links_to_log_t : Links_to_log - { - static constexpr const char* name() {return "m6_links_to_log_t";} - using parent_t = Links_to_log; - - }; - m6_links_to_log_t& ref_m6_links_to_log() {return m6_links_to_log;} - m6_links_to_log_t const& ref_m6_links_to_log() const {return m6_links_to_log;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(m6report_interval); - v(m6delay_threshold); - v(m6_links_to_log); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(m6report_interval); - v(m6delay_threshold); - v(m6_links_to_log); - v(iE_Extensions); - - }; - void clear() - { - m6report_interval.clear(); - m6delay_threshold.clear(); - m6_links_to_log.clear(); - iE_Extensions.clear(); - - }; - private: - m6report_interval_t m6report_interval; - m6delay_threshold_t m6delay_threshold; - m6_links_to_log_t m6_links_to_log; - iE_Extensions_t iE_Extensions; - -}; -/* -M7period ::= INTEGER(1..60, ...) -*/ - -struct M7period : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "M7period";} - using parent_t = asn::integer<>; - -}; - -/* -M7Configuration-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct M7Configuration_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -M7Configuration ::= SEQUENCE { - m7period M7period, - m7-links-to-log Links-to-log, - iE-Extensions ProtocolExtensionContainer { {M7Configuration-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct M7Configuration : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "M7Configuration";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct m7period_t : M7period - { - static constexpr const char* name() {return "m7period_t";} - using parent_t = M7period; - - }; - m7period_t& ref_m7period() {return m7period;} - m7period_t const& ref_m7period() const {return m7period;} - struct m7_links_to_log_t : Links_to_log - { - static constexpr const char* name() {return "m7_links_to_log_t";} - using parent_t = Links_to_log; - - }; - m7_links_to_log_t& ref_m7_links_to_log() {return m7_links_to_log;} - m7_links_to_log_t const& ref_m7_links_to_log() const {return m7_links_to_log;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(m7period); - v(m7_links_to_log); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(m7period); - v(m7_links_to_log); - v(iE_Extensions); - - }; - void clear() - { - m7period.clear(); - m7_links_to_log.clear(); - iE_Extensions.clear(); - - }; - private: - m7period_t m7period; - m7_links_to_log_t m7_links_to_log; - iE_Extensions_t iE_Extensions; - -}; -/* -MBMS-Service-Area-Identity ::= OCTET STRING (SIZE (2)) -*/ - -struct MBMS_Service_Area_Identity : asn::ostring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "MBMS-Service-Area-Identity";} - using parent_t = asn::ostring<>; - -}; - -/* -MBMS-Service-Area-Identity-List ::= SEQUENCE (SIZE(1.. maxnoofMBMSServiceAreaIdentities)) OF MBMS-Service-Area-Identity -*/ - -struct MBMS_Service_Area_Identity_List_elm : MBMS_Service_Area_Identity -{ - static constexpr const char* name() {return "MBMS_Service_Area_Identity_List_elm";} - using parent_t = MBMS_Service_Area_Identity; - -}; -struct MBMS_Service_Area_Identity_List : asn::sequenceof -{ - static constexpr const char* name() {return "MBMS-Service-Area-Identity-List";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -RadioframeAllocationPeriod ::= ENUMERATED{ - n1, - n2, - n4, - n8, - n16, - n32, - ... -} -*/ - -struct RadioframeAllocationPeriod : asn::enumerated<6, 0, true> -{ - static constexpr const char* name() {return "RadioframeAllocationPeriod";} - using parent_t = asn::enumerated<6, 0, true>; - typedef enum { - n1 - ,n2 - ,n4 - ,n8 - ,n16 - ,n32 - } index_t; - -}; - -/* -RadioframeAllocationOffset ::= INTEGER (0..7, ...) -*/ - -struct RadioframeAllocationOffset : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "RadioframeAllocationOffset";} - using parent_t = asn::integer<>; - -}; - -/* -Oneframe ::= BIT STRING (SIZE (6)) -*/ - -struct Oneframe : asn::bstring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "Oneframe";} - using parent_t = asn::bstring<>; - -}; - -/* -SubframeAllocation ::= CHOICE { - oneframe Oneframe, - fourframes Fourframes, - ... -} -*/ - -struct SubframeAllocation : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "SubframeAllocation";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~SubframeAllocation() {clear();} - struct oneframe_t : Oneframe - { - static constexpr const char* name() {return "oneframe_t";} - using parent_t = Oneframe; - - }; - struct fourframes_t : Fourframes - { - static constexpr const char* name() {return "fourframes_t";} - using parent_t = Fourframes; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - oneframe_t& select_oneframe() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - oneframe_t const* get_oneframe() const { if(get_index() == 1) { return &var.as();} return nullptr; } - fourframes_t& select_fourframes() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - fourframes_t const* get_fourframes() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(oneframe_t)]; - char dummy2[sizeof(fourframes_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -MBSFN-Subframe-Info-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct MBSFN_Subframe_Info_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -MBSFN-Subframe-Info ::= SEQUENCE { - radioframeAllocationPeriod RadioframeAllocationPeriod, - radioframeAllocationOffset RadioframeAllocationOffset, - subframeAllocation SubframeAllocation, - iE-Extensions ProtocolExtensionContainer { {MBSFN-Subframe-Info-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct MBSFN_Subframe_Info : asn::sequence<4, 0, true, 1> -{ - static constexpr const char* name() {return "MBSFN-Subframe-Info";} - using parent_t = asn::sequence<4, 0, true, 1>; - struct radioframeAllocationPeriod_t : RadioframeAllocationPeriod - { - static constexpr const char* name() {return "radioframeAllocationPeriod_t";} - using parent_t = RadioframeAllocationPeriod; - - }; - radioframeAllocationPeriod_t& ref_radioframeAllocationPeriod() {return radioframeAllocationPeriod;} - radioframeAllocationPeriod_t const& ref_radioframeAllocationPeriod() const {return radioframeAllocationPeriod;} - struct radioframeAllocationOffset_t : RadioframeAllocationOffset - { - static constexpr const char* name() {return "radioframeAllocationOffset_t";} - using parent_t = RadioframeAllocationOffset; - - }; - radioframeAllocationOffset_t& ref_radioframeAllocationOffset() {return radioframeAllocationOffset;} - radioframeAllocationOffset_t const& ref_radioframeAllocationOffset() const {return radioframeAllocationOffset;} - struct subframeAllocation_t : SubframeAllocation - { - static constexpr const char* name() {return "subframeAllocation_t";} - using parent_t = SubframeAllocation; - - }; - subframeAllocation_t& ref_subframeAllocation() {return subframeAllocation;} - subframeAllocation_t const& ref_subframeAllocation() const {return subframeAllocation;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(radioframeAllocationPeriod); - v(radioframeAllocationOffset); - v(subframeAllocation); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(radioframeAllocationPeriod); - v(radioframeAllocationOffset); - v(subframeAllocation); - v(iE_Extensions); - - }; - void clear() - { - radioframeAllocationPeriod.clear(); - radioframeAllocationOffset.clear(); - subframeAllocation.clear(); - iE_Extensions.clear(); - - }; - private: - radioframeAllocationPeriod_t radioframeAllocationPeriod; - radioframeAllocationOffset_t radioframeAllocationOffset; - subframeAllocation_t subframeAllocation; - iE_Extensions_t iE_Extensions; - -}; -/* -MBSFN-Subframe-Infolist::= SEQUENCE (SIZE(1.. maxnoofMBSFN)) OF MBSFN-Subframe-Info -*/ - -struct MBSFN_Subframe_Infolist_elm : MBSFN_Subframe_Info -{ - static constexpr const char* name() {return "MBSFN_Subframe_Infolist_elm";} - using parent_t = MBSFN_Subframe_Info; - -}; -struct MBSFN_Subframe_Infolist : asn::sequenceof -{ - static constexpr const char* name() {return "MBSFN-Subframe-Infolist";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -MDT-Activation ::= ENUMERATED { - immediate-MDT-only, - immediate-MDT-and-Trace, - ... -} -*/ - -struct MDT_Activation : asn::enumerated<2, 0, true> -{ - static constexpr const char* name() {return "MDT-Activation";} - using parent_t = asn::enumerated<2, 0, true>; - typedef enum { - immediate_MDT_only - ,immediate_MDT_and_Trace - } index_t; - -}; - -/* -MeasurementsToActivate::= BIT STRING (SIZE (8)) -*/ - -struct MeasurementsToActivate : asn::bstring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "MeasurementsToActivate";} - using parent_t = asn::bstring<>; - -}; - -/* -MDT-Location-Info ::= BIT STRING (SIZE (8)) -*/ - -struct MDT_Location_Info : asn::bstring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "MDT-Location-Info";} - using parent_t = asn::bstring<>; - -}; - -/* -MDTPLMNList ::= SEQUENCE (SIZE(1..maxnoofMDTPLMNs)) OF PLMN-Identity -*/ - -struct MDTPLMNList_elm : PLMN_Identity -{ - static constexpr const char* name() {return "MDTPLMNList_elm";} - using parent_t = PLMN_Identity; - -}; -struct MDTPLMNList : asn::sequenceof -{ - static constexpr const char* name() {return "MDTPLMNList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -WLANMeasConfig::= ENUMERATED {setup,...} -*/ - -struct WLANMeasConfig : asn::enumerated<1, 0, true> -{ - static constexpr const char* name() {return "WLANMeasConfig";} - using parent_t = asn::enumerated<1, 0, true>; - typedef enum { - setup - } index_t; - -}; - -/* -WLANName ::= OCTET STRING (SIZE (1..32)) -*/ - -struct WLANName : asn::ostring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "WLANName";} - using parent_t = asn::ostring<>; - -}; - -/* -WLANMeasConfigNameList ::= SEQUENCE (SIZE(1..maxnoofWLANName)) OF WLANName -*/ - -struct WLANMeasConfigNameList_elm : WLANName -{ - static constexpr const char* name() {return "WLANMeasConfigNameList_elm";} - using parent_t = WLANName; - -}; -struct WLANMeasConfigNameList : asn::sequenceof -{ - static constexpr const char* name() {return "WLANMeasConfigNameList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -WLANMeasurementConfiguration-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct WLANMeasurementConfiguration_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -WLANMeasurementConfiguration ::= SEQUENCE { - wlanMeasConfig WLANMeasConfig, - wlanMeasConfigNameList WLANMeasConfigNameList OPTIONAL, - wlan-rssi ENUMERATED {true, ...} OPTIONAL, - wlan-rtt ENUMERATED {true, ...} OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {WLANMeasurementConfiguration-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct WLANMeasurementConfiguration : asn::sequence<5, 0, true, 4> -{ - static constexpr const char* name() {return "WLANMeasurementConfiguration";} - using parent_t = asn::sequence<5, 0, true, 4>; - struct wlanMeasConfig_t : WLANMeasConfig - { - static constexpr const char* name() {return "wlanMeasConfig_t";} - using parent_t = WLANMeasConfig; - - }; - wlanMeasConfig_t& ref_wlanMeasConfig() {return wlanMeasConfig;} - wlanMeasConfig_t const& ref_wlanMeasConfig() const {return wlanMeasConfig;} - struct wlanMeasConfigNameList_t : WLANMeasConfigNameList - { - static constexpr const char* name() {return "wlanMeasConfigNameList_t";} - using parent_t = WLANMeasConfigNameList; - static constexpr bool optional = true; - - }; - wlanMeasConfigNameList_t& set_wlanMeasConfigNameList() { wlanMeasConfigNameList.setpresent(true); return wlanMeasConfigNameList;} - wlanMeasConfigNameList_t const* get_wlanMeasConfigNameList() const {return wlanMeasConfigNameList.is_valid() ? &wlanMeasConfigNameList : nullptr;} - struct wlan_rssi_t : asn::enumerated<1, 0, true> - { - static constexpr const char* name() {return "wlan_rssi_t";} - using parent_t = asn::enumerated<1, 0, true>; - static constexpr bool optional = true; - typedef enum { - True - } index_t; - - }; - - wlan_rssi_t& set_wlan_rssi() { wlan_rssi.setpresent(true); return wlan_rssi;} - wlan_rssi_t const* get_wlan_rssi() const {return wlan_rssi.is_valid() ? &wlan_rssi : nullptr;} - struct wlan_rtt_t : asn::enumerated<1, 0, true> - { - static constexpr const char* name() {return "wlan_rtt_t";} - using parent_t = asn::enumerated<1, 0, true>; - static constexpr bool optional = true; - typedef enum { - True - } index_t; - - }; - - wlan_rtt_t& set_wlan_rtt() { wlan_rtt.setpresent(true); return wlan_rtt;} - wlan_rtt_t const* get_wlan_rtt() const {return wlan_rtt.is_valid() ? &wlan_rtt : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(wlanMeasConfig); - v(wlanMeasConfigNameList); - v(wlan_rssi); - v(wlan_rtt); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(wlanMeasConfig); - v(wlanMeasConfigNameList); - v(wlan_rssi); - v(wlan_rtt); - v(iE_Extensions); - - }; - void clear() - { - wlanMeasConfig.clear(); - wlanMeasConfigNameList.clear(); - wlan_rssi.clear(); - wlan_rtt.clear(); - iE_Extensions.clear(); - - }; - private: - wlanMeasConfig_t wlanMeasConfig; - wlanMeasConfigNameList_t wlanMeasConfigNameList; - wlan_rssi_t wlan_rssi; - wlan_rtt_t wlan_rtt; - iE_Extensions_t iE_Extensions; - -}; -/* -MDT-Configuration-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - {ID id-M3Configuration CRITICALITY ignore EXTENSION M3Configuration PRESENCE conditional}| - {ID id-M4Configuration CRITICALITY ignore EXTENSION M4Configuration PRESENCE conditional}| - {ID id-M5Configuration CRITICALITY ignore EXTENSION M5Configuration PRESENCE conditional}| - {ID id-MDT-Location-Info CRITICALITY ignore EXTENSION MDT-Location-Info PRESENCE optional}| - {ID id-SignallingBasedMDTPLMNList CRITICALITY ignore EXTENSION MDTPLMNList PRESENCE optional}| - {ID id-M6Configuration CRITICALITY ignore EXTENSION M6Configuration PRESENCE conditional}| - {ID id-M7Configuration CRITICALITY ignore EXTENSION M7Configuration PRESENCE conditional}| - { ID id-BluetoothMeasurementConfiguration CRITICALITY ignore EXTENSION BluetoothMeasurementConfiguration PRESENCE optional}| - { ID id-WLANMeasurementConfiguration CRITICALITY ignore EXTENSION WLANMeasurementConfiguration PRESENCE optional}, - ... -} -*/ - -struct MDT_Configuration_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 10; } - void clear() {type = 0;} - void select_id_M3Configuration() { set(id_M3Configuration); type=1;} - void select_id_M4Configuration() { set(id_M4Configuration); type=2;} - void select_id_M5Configuration() { set(id_M5Configuration); type=3;} - void select_id_MDT_Location_Info() { set(id_MDT_Location_Info); type=4;} - void select_id_SignallingBasedMDTPLMNList() { set(id_SignallingBasedMDTPLMNList); type=5;} - void select_id_M6Configuration() { set(id_M6Configuration); type=6;} - void select_id_M7Configuration() { set(id_M7Configuration); type=7;} - void select_id_BluetoothMeasurementConfiguration() { set(id_BluetoothMeasurementConfiguration); type=8;} - void select_id_WLANMeasurementConfiguration() { set(id_WLANMeasurementConfiguration); type=9;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_M3Configuration)) { type = 1; return true; } - else if(equal(id_M4Configuration)) { type = 2; return true; } - else if(equal(id_M5Configuration)) { type = 3; return true; } - else if(equal(id_MDT_Location_Info)) { type = 4; return true; } - else if(equal(id_SignallingBasedMDTPLMNList)) { type = 5; return true; } - else if(equal(id_M6Configuration)) { type = 6; return true; } - else if(equal(id_M7Configuration)) { type = 7; return true; } - else if(equal(id_BluetoothMeasurementConfiguration)) { type = 8; return true; } - else if(equal(id_WLANMeasurementConfiguration)) { type = 9; return true; } - else { type = 10; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_M3Configuration);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_M4Configuration);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_M5Configuration);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_MDT_Location_Info);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_SignallingBasedMDTPLMNList);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_M6Configuration);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(id_M7Configuration);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(id_BluetoothMeasurementConfiguration);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(id_WLANMeasurementConfiguration);} return false; - case 10: type = 10; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 10; } - void clear() {type = 0;} - void select_id_M3Configuration() { set(ignore); type=1;} - void select_id_M4Configuration() { set(ignore); type=2;} - void select_id_M5Configuration() { set(ignore); type=3;} - void select_id_MDT_Location_Info() { set(ignore); type=4;} - void select_id_SignallingBasedMDTPLMNList() { set(ignore); type=5;} - void select_id_M6Configuration() { set(ignore); type=6;} - void select_id_M7Configuration() { set(ignore); type=7;} - void select_id_BluetoothMeasurementConfiguration() { set(ignore); type=8;} - void select_id_WLANMeasurementConfiguration() { set(ignore); type=9;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else if(equal(ignore)) { type = 6; return true; } - else if(equal(ignore)) { type = 7; return true; } - else if(equal(ignore)) { type = 8; return true; } - else if(equal(ignore)) { type = 9; return true; } - else { type = 10; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(ignore);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(ignore);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(ignore);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(ignore);} return false; - case 10: type = 10; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - M3Configuration& select_id_M3Configuration() { return set(1); } - M3Configuration const* get_id_M3Configuration() const { return get(1); } - M4Configuration& select_id_M4Configuration() { return set(2); } - M4Configuration const* get_id_M4Configuration() const { return get(2); } - M5Configuration& select_id_M5Configuration() { return set(3); } - M5Configuration const* get_id_M5Configuration() const { return get(3); } - MDT_Location_Info& select_id_MDT_Location_Info() { return set(4); } - MDT_Location_Info const* get_id_MDT_Location_Info() const { return get(4); } - MDTPLMNList& select_id_SignallingBasedMDTPLMNList() { return set(5); } - MDTPLMNList const* get_id_SignallingBasedMDTPLMNList() const { return get(5); } - M6Configuration& select_id_M6Configuration() { return set(6); } - M6Configuration const* get_id_M6Configuration() const { return get(6); } - M7Configuration& select_id_M7Configuration() { return set(7); } - M7Configuration const* get_id_M7Configuration() const { return get(7); } - BluetoothMeasurementConfiguration& select_id_BluetoothMeasurementConfiguration() { return set(8); } - BluetoothMeasurementConfiguration const* get_id_BluetoothMeasurementConfiguration() const { return get(8); } - WLANMeasurementConfiguration& select_id_WLANMeasurementConfiguration() { return set(9); } - WLANMeasurementConfiguration const* get_id_WLANMeasurementConfiguration() const { return get(9); } - bool is_unknown() const { return type == 10; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - case 7: var.destroy(); break; - case 8: var.destroy(); break; - case 9: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - v.template operator()(7); - v.template operator()(8); - v.template operator()(9); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_M3Configuration()); return true; - case 2: v(select_id_M4Configuration()); return true; - case 3: v(select_id_M5Configuration()); return true; - case 4: v(select_id_MDT_Location_Info()); return true; - case 5: v(select_id_SignallingBasedMDTPLMNList()); return true; - case 6: v(select_id_M6Configuration()); return true; - case 7: v(select_id_M7Configuration()); return true; - case 8: v(select_id_BluetoothMeasurementConfiguration()); return true; - case 9: v(select_id_WLANMeasurementConfiguration()); return true; - case 10: if(type != 10) {clear(); asn::base::set();} type = 10; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - case 7: v(var.as()); return true; - case 8: v(var.as()); return true; - case 9: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(BluetoothMeasurementConfiguration)]; - char dummy2[sizeof(M3Configuration)]; - char dummy3[sizeof(M4Configuration)]; - char dummy4[sizeof(M5Configuration)]; - char dummy5[sizeof(M6Configuration)]; - char dummy6[sizeof(M7Configuration)]; - char dummy7[sizeof(MDTPLMNList)]; - char dummy8[sizeof(MDT_Location_Info)]; - char dummy9[sizeof(WLANMeasurementConfiguration)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 10; } - void clear() {type = 0;} - void select_id_M3Configuration() { set(conditional); type=1;} - void select_id_M4Configuration() { set(conditional); type=2;} - void select_id_M5Configuration() { set(conditional); type=3;} - void select_id_MDT_Location_Info() { set(optional); type=4;} - void select_id_SignallingBasedMDTPLMNList() { set(optional); type=5;} - void select_id_M6Configuration() { set(conditional); type=6;} - void select_id_M7Configuration() { set(conditional); type=7;} - void select_id_BluetoothMeasurementConfiguration() { set(optional); type=8;} - void select_id_WLANMeasurementConfiguration() { set(optional); type=9;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(conditional)) { type = 1; return true; } - else if(equal(conditional)) { type = 2; return true; } - else if(equal(conditional)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else if(equal(conditional)) { type = 6; return true; } - else if(equal(conditional)) { type = 7; return true; } - else if(equal(optional)) { type = 8; return true; } - else if(equal(optional)) { type = 9; return true; } - else { type = 10; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(conditional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(conditional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(conditional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(conditional);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(conditional);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(optional);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(optional);} return false; - case 10: type = 10; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -MDT-Configuration ::= SEQUENCE { - mdt-Activation MDT-Activation, - areaScopeOfMDT AreaScopeOfMDT, - measurementsToActivate MeasurementsToActivate, - m1reportingTrigger M1ReportingTrigger, - m1thresholdeventA2 M1ThresholdEventA2 OPTIONAL, --- Included in case of event-triggered, or event-triggered periodic reporting for measurement M1 - m1periodicReporting M1PeriodicReporting OPTIONAL, --- Included in case of periodic, or event-triggered periodic reporting for measurement M1 - iE-Extensions ProtocolExtensionContainer { {MDT-Configuration-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct MDT_Configuration : asn::sequence<7, 0, true, 3> -{ - static constexpr const char* name() {return "MDT-Configuration";} - using parent_t = asn::sequence<7, 0, true, 3>; - struct mdt_Activation_t : MDT_Activation - { - static constexpr const char* name() {return "mdt_Activation_t";} - using parent_t = MDT_Activation; - - }; - mdt_Activation_t& ref_mdt_Activation() {return mdt_Activation;} - mdt_Activation_t const& ref_mdt_Activation() const {return mdt_Activation;} - struct areaScopeOfMDT_t : AreaScopeOfMDT - { - static constexpr const char* name() {return "areaScopeOfMDT_t";} - using parent_t = AreaScopeOfMDT; - - }; - areaScopeOfMDT_t& ref_areaScopeOfMDT() {return areaScopeOfMDT;} - areaScopeOfMDT_t const& ref_areaScopeOfMDT() const {return areaScopeOfMDT;} - struct measurementsToActivate_t : MeasurementsToActivate - { - static constexpr const char* name() {return "measurementsToActivate_t";} - using parent_t = MeasurementsToActivate; - - }; - measurementsToActivate_t& ref_measurementsToActivate() {return measurementsToActivate;} - measurementsToActivate_t const& ref_measurementsToActivate() const {return measurementsToActivate;} - struct m1reportingTrigger_t : M1ReportingTrigger - { - static constexpr const char* name() {return "m1reportingTrigger_t";} - using parent_t = M1ReportingTrigger; - - }; - m1reportingTrigger_t& ref_m1reportingTrigger() {return m1reportingTrigger;} - m1reportingTrigger_t const& ref_m1reportingTrigger() const {return m1reportingTrigger;} - struct m1thresholdeventA2_t : M1ThresholdEventA2 - { - static constexpr const char* name() {return "m1thresholdeventA2_t";} - using parent_t = M1ThresholdEventA2; - static constexpr bool optional = true; - - }; - m1thresholdeventA2_t& set_m1thresholdeventA2() { m1thresholdeventA2.setpresent(true); return m1thresholdeventA2;} - m1thresholdeventA2_t const* get_m1thresholdeventA2() const {return m1thresholdeventA2.is_valid() ? &m1thresholdeventA2 : nullptr;} - struct m1periodicReporting_t : M1PeriodicReporting - { - static constexpr const char* name() {return "m1periodicReporting_t";} - using parent_t = M1PeriodicReporting; - static constexpr bool optional = true; - - }; - m1periodicReporting_t& set_m1periodicReporting() { m1periodicReporting.setpresent(true); return m1periodicReporting;} - m1periodicReporting_t const* get_m1periodicReporting() const {return m1periodicReporting.is_valid() ? &m1periodicReporting : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(mdt_Activation); - v(areaScopeOfMDT); - v(measurementsToActivate); - v(m1reportingTrigger); - v(m1thresholdeventA2); - v(m1periodicReporting); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(mdt_Activation); - v(areaScopeOfMDT); - v(measurementsToActivate); - v(m1reportingTrigger); - v(m1thresholdeventA2); - v(m1periodicReporting); - v(iE_Extensions); - - }; - void clear() - { - mdt_Activation.clear(); - areaScopeOfMDT.clear(); - measurementsToActivate.clear(); - m1reportingTrigger.clear(); - m1thresholdeventA2.clear(); - m1periodicReporting.clear(); - iE_Extensions.clear(); - - }; - private: - mdt_Activation_t mdt_Activation; - areaScopeOfMDT_t areaScopeOfMDT; - measurementsToActivate_t measurementsToActivate; - m1reportingTrigger_t m1reportingTrigger; - m1thresholdeventA2_t m1thresholdeventA2; - m1periodicReporting_t m1periodicReporting; - iE_Extensions_t iE_Extensions; - -}; -/* -MakeBeforeBreakIndicator::= ENUMERATED {true, ...} -*/ - -struct MakeBeforeBreakIndicator : asn::enumerated<1, 0, true> -{ - static constexpr const char* name() {return "MakeBeforeBreakIndicator";} - using parent_t = asn::enumerated<1, 0, true>; - typedef enum { - True - } index_t; - -}; - -/* -ManagementBasedMDTallowed ::= ENUMERATED {allowed, ...} -*/ - -struct ManagementBasedMDTallowed : asn::enumerated<1, 0, true> -{ - static constexpr const char* name() {return "ManagementBasedMDTallowed";} - using parent_t = asn::enumerated<1, 0, true>; - typedef enum { - allowed - } index_t; - -}; - -/* -Masked-IMEISV ::= BIT STRING (SIZE (64)) -*/ - -struct Masked_IMEISV : asn::bstring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "Masked-IMEISV";} - using parent_t = asn::bstring<>; - -}; - -/* -MeNBCoordinationAssistanceInformation ::= ENUMERATED{ - coordination-not-required, - ... -} -*/ - -struct MeNBCoordinationAssistanceInformation : asn::enumerated<1, 0, true> -{ - static constexpr const char* name() {return "MeNBCoordinationAssistanceInformation";} - using parent_t = asn::enumerated<1, 0, true>; - typedef enum { - coordination_not_required - } index_t; - -}; - -/* -NRCellIdentifier ::= BIT STRING (SIZE (36)) -*/ - -struct NRCellIdentifier : asn::bstring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "NRCellIdentifier";} - using parent_t = asn::bstring<>; - -}; - -/* -NRCGI-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct NRCGI_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -NRCGI ::= SEQUENCE { - pLMN-Identity PLMN-Identity, - nRcellIdentifier NRCellIdentifier, - iE-Extensions ProtocolExtensionContainer { {NRCGI-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct NRCGI : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "NRCGI";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct pLMN_Identity_t : PLMN_Identity - { - static constexpr const char* name() {return "pLMN_Identity_t";} - using parent_t = PLMN_Identity; - - }; - pLMN_Identity_t& ref_pLMN_Identity() {return pLMN_Identity;} - pLMN_Identity_t const& ref_pLMN_Identity() const {return pLMN_Identity;} - struct nRcellIdentifier_t : NRCellIdentifier - { - static constexpr const char* name() {return "nRcellIdentifier_t";} - using parent_t = NRCellIdentifier; - - }; - nRcellIdentifier_t& ref_nRcellIdentifier() {return nRcellIdentifier;} - nRcellIdentifier_t const& ref_nRcellIdentifier() const {return nRcellIdentifier;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(pLMN_Identity); - v(nRcellIdentifier); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(pLMN_Identity); - v(nRcellIdentifier); - v(iE_Extensions); - - }; - void clear() - { - pLMN_Identity.clear(); - nRcellIdentifier.clear(); - iE_Extensions.clear(); - - }; - private: - pLMN_Identity_t pLMN_Identity; - nRcellIdentifier_t nRcellIdentifier; - iE_Extensions_t iE_Extensions; - -}; -/* -MeNBResourceCoordinationInformationExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-NRCGI CRITICALITY ignore EXTENSION NRCGI PRESENCE optional}| - { ID id-MeNBCoordinationAssistanceInformation CRITICALITY reject EXTENSION MeNBCoordinationAssistanceInformation PRESENCE optional}, - ... -} -*/ - -struct MeNBResourceCoordinationInformationExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_NRCGI() { set(id_NRCGI); type=1;} - void select_id_MeNBCoordinationAssistanceInformation() { set(id_MeNBCoordinationAssistanceInformation); type=2;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_NRCGI)) { type = 1; return true; } - else if(equal(id_MeNBCoordinationAssistanceInformation)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_NRCGI);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_MeNBCoordinationAssistanceInformation);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_NRCGI() { set(ignore); type=1;} - void select_id_MeNBCoordinationAssistanceInformation() { set(reject); type=2;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - NRCGI& select_id_NRCGI() { return set(1); } - NRCGI const* get_id_NRCGI() const { return get(1); } - MeNBCoordinationAssistanceInformation& select_id_MeNBCoordinationAssistanceInformation() { return set(2); } - MeNBCoordinationAssistanceInformation const* get_id_MeNBCoordinationAssistanceInformation() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_NRCGI()); return true; - case 2: v(select_id_MeNBCoordinationAssistanceInformation()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(MeNBCoordinationAssistanceInformation)]; - char dummy2[sizeof(NRCGI)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_NRCGI() { set(optional); type=1;} - void select_id_MeNBCoordinationAssistanceInformation() { set(optional); type=2;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -MeNBResourceCoordinationInformation ::= SEQUENCE { - eUTRA-Cell-ID ECGI, - uLCoordinationInformation BIT STRING (SIZE(6..4400, ...)), - dLCoordinationInformation BIT STRING (SIZE(6..4400, ...)) OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {MeNBResourceCoordinationInformationExtIEs} } OPTIONAL, - ... -} -*/ - -struct MeNBResourceCoordinationInformation : asn::sequence<4, 0, true, 2> -{ - static constexpr const char* name() {return "MeNBResourceCoordinationInformation";} - using parent_t = asn::sequence<4, 0, true, 2>; - struct eUTRA_Cell_ID_t : ECGI - { - static constexpr const char* name() {return "eUTRA_Cell_ID_t";} - using parent_t = ECGI; - - }; - eUTRA_Cell_ID_t& ref_eUTRA_Cell_ID() {return eUTRA_Cell_ID;} - eUTRA_Cell_ID_t const& ref_eUTRA_Cell_ID() const {return eUTRA_Cell_ID;} - struct uLCoordinationInformation_t : asn::bstring<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "uLCoordinationInformation_t";} - using parent_t = asn::bstring<>; - - }; - - uLCoordinationInformation_t& ref_uLCoordinationInformation() {return uLCoordinationInformation;} - uLCoordinationInformation_t const& ref_uLCoordinationInformation() const {return uLCoordinationInformation;} - struct dLCoordinationInformation_t : asn::bstring<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "dLCoordinationInformation_t";} - using parent_t = asn::bstring<>; - static constexpr bool optional = true; - - }; - - dLCoordinationInformation_t& set_dLCoordinationInformation() { dLCoordinationInformation.setpresent(true); return dLCoordinationInformation;} - dLCoordinationInformation_t const* get_dLCoordinationInformation() const {return dLCoordinationInformation.is_valid() ? &dLCoordinationInformation : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(eUTRA_Cell_ID); - v(uLCoordinationInformation); - v(dLCoordinationInformation); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(eUTRA_Cell_ID); - v(uLCoordinationInformation); - v(dLCoordinationInformation); - v(iE_Extensions); - - }; - void clear() - { - eUTRA_Cell_ID.clear(); - uLCoordinationInformation.clear(); - dLCoordinationInformation.clear(); - iE_Extensions.clear(); - - }; - private: - eUTRA_Cell_ID_t eUTRA_Cell_ID; - uLCoordinationInformation_t uLCoordinationInformation; - dLCoordinationInformation_t dLCoordinationInformation; - iE_Extensions_t iE_Extensions; - -}; -/* -MeNBtoSeNBContainer ::= OCTET STRING -*/ - -struct MeNBtoSeNBContainer : asn::ostring<> -{ - static constexpr const char* name() {return "MeNBtoSeNBContainer";} - using parent_t = asn::ostring<>; - -}; - -/* -MeNBtoSgNBContainer ::= OCTET STRING -*/ - -struct MeNBtoSgNBContainer : asn::ostring<> -{ - static constexpr const char* name() {return "MeNBtoSgNBContainer";} - using parent_t = asn::ostring<>; - -}; - -/* -Measurement-ID ::= INTEGER (1..4095, ...) -*/ - -struct Measurement_ID : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "Measurement-ID";} - using parent_t = asn::integer<>; - -}; - -/* -MobilityParametersInformation ::= SEQUENCE { - handoverTriggerChange INTEGER (-20..20), - ... -} -*/ - -struct MobilityParametersInformation : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "MobilityParametersInformation";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct handoverTriggerChange_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "handoverTriggerChange_t";} - using parent_t = asn::integer<>; - - }; - - handoverTriggerChange_t& ref_handoverTriggerChange() {return handoverTriggerChange;} - handoverTriggerChange_t const& ref_handoverTriggerChange() const {return handoverTriggerChange;} - template void decode(V& v) - { - v(handoverTriggerChange); - - }; - template void encode(V& v) const - { - v(handoverTriggerChange); - - }; - void clear() - { - handoverTriggerChange.clear(); - - }; - private: - handoverTriggerChange_t handoverTriggerChange; - -}; -/* -MobilityParametersModificationRange ::= SEQUENCE { - handoverTriggerChangeLowerLimit INTEGER (-20..20), - handoverTriggerChangeUpperLimit INTEGER (-20..20), - ... -} -*/ - -struct MobilityParametersModificationRange : asn::sequence<2, 0, true, 0> -{ - static constexpr const char* name() {return "MobilityParametersModificationRange";} - using parent_t = asn::sequence<2, 0, true, 0>; - struct handoverTriggerChangeLowerLimit_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "handoverTriggerChangeLowerLimit_t";} - using parent_t = asn::integer<>; - - }; - - handoverTriggerChangeLowerLimit_t& ref_handoverTriggerChangeLowerLimit() {return handoverTriggerChangeLowerLimit;} - handoverTriggerChangeLowerLimit_t const& ref_handoverTriggerChangeLowerLimit() const {return handoverTriggerChangeLowerLimit;} - struct handoverTriggerChangeUpperLimit_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "handoverTriggerChangeUpperLimit_t";} - using parent_t = asn::integer<>; - - }; - - handoverTriggerChangeUpperLimit_t& ref_handoverTriggerChangeUpperLimit() {return handoverTriggerChangeUpperLimit;} - handoverTriggerChangeUpperLimit_t const& ref_handoverTriggerChangeUpperLimit() const {return handoverTriggerChangeUpperLimit;} - template void decode(V& v) - { - v(handoverTriggerChangeLowerLimit); - v(handoverTriggerChangeUpperLimit); - - }; - template void encode(V& v) const - { - v(handoverTriggerChangeLowerLimit); - v(handoverTriggerChangeUpperLimit); - - }; - void clear() - { - handoverTriggerChangeLowerLimit.clear(); - handoverTriggerChangeUpperLimit.clear(); - - }; - private: - handoverTriggerChangeLowerLimit_t handoverTriggerChangeLowerLimit; - handoverTriggerChangeUpperLimit_t handoverTriggerChangeUpperLimit; - -}; -/* -MultibandInfoList ::= SEQUENCE (SIZE(1..maxnoofBands)) OF BandInfo -*/ - -struct MultibandInfoList_elm : BandInfo -{ - static constexpr const char* name() {return "MultibandInfoList_elm";} - using parent_t = BandInfo; - -}; -struct MultibandInfoList : asn::sequenceof -{ - static constexpr const char* name() {return "MultibandInfoList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -NRSCS ::= ENUMERATED { scs15, scs30, scs60, scs120, ...} -*/ - -struct NRSCS : asn::enumerated<4, 0, true> -{ - static constexpr const char* name() {return "NRSCS";} - using parent_t = asn::enumerated<4, 0, true>; - typedef enum { - scs15 - ,scs30 - ,scs60 - ,scs120 - } index_t; - -}; - -/* -NRNRB ::= ENUMERATED { nrb11, nrb18, nrb24, nrb25, nrb31, nrb32, nrb38, nrb51, nrb52, nrb65, nrb66, nrb78, nrb79, nrb93, nrb106, nrb107, nrb121, nrb132, nrb133, nrb135, nrb160, nrb162, nrb189, nrb216, nrb217, nrb245, nrb264, nrb270, nrb273, ...} -*/ - -struct NRNRB : asn::enumerated<29, 0, true> -{ - static constexpr const char* name() {return "NRNRB";} - using parent_t = asn::enumerated<29, 0, true>; - typedef enum { - nrb11 - ,nrb18 - ,nrb24 - ,nrb25 - ,nrb31 - ,nrb32 - ,nrb38 - ,nrb51 - ,nrb52 - ,nrb65 - ,nrb66 - ,nrb78 - ,nrb79 - ,nrb93 - ,nrb106 - ,nrb107 - ,nrb121 - ,nrb132 - ,nrb133 - ,nrb135 - ,nrb160 - ,nrb162 - ,nrb189 - ,nrb216 - ,nrb217 - ,nrb245 - ,nrb264 - ,nrb270 - ,nrb273 - } index_t; - -}; - -/* -NR-TxBW-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct NR_TxBW_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -NR-TxBW ::= SEQUENCE { - nRSCS NRSCS, - nRNRB NRNRB, - iE-Extensions ProtocolExtensionContainer { {NR-TxBW-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct NR_TxBW : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "NR-TxBW";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct nRSCS_t : NRSCS - { - static constexpr const char* name() {return "nRSCS_t";} - using parent_t = NRSCS; - - }; - nRSCS_t& ref_nRSCS() {return nRSCS;} - nRSCS_t const& ref_nRSCS() const {return nRSCS;} - struct nRNRB_t : NRNRB - { - static constexpr const char* name() {return "nRNRB_t";} - using parent_t = NRNRB; - - }; - nRNRB_t& ref_nRNRB() {return nRNRB;} - nRNRB_t const& ref_nRNRB() const {return nRNRB;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(nRSCS); - v(nRNRB); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(nRSCS); - v(nRNRB); - v(iE_Extensions); - - }; - void clear() - { - nRSCS.clear(); - nRNRB.clear(); - iE_Extensions.clear(); - - }; - private: - nRSCS_t nRSCS; - nRNRB_t nRNRB; - iE_Extensions_t iE_Extensions; - -}; -/* -SULInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct SULInformation_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SULInformation ::= SEQUENCE { - sUL-ARFCN INTEGER (0.. 3279165), - sUL-TxBW NR-TxBW, - iE-Extensions ProtocolExtensionContainer { {SULInformation-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct SULInformation : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "SULInformation";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct sUL_ARFCN_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "sUL_ARFCN_t";} - using parent_t = asn::integer<>; - - }; - - sUL_ARFCN_t& ref_sUL_ARFCN() {return sUL_ARFCN;} - sUL_ARFCN_t const& ref_sUL_ARFCN() const {return sUL_ARFCN;} - struct sUL_TxBW_t : NR_TxBW - { - static constexpr const char* name() {return "sUL_TxBW_t";} - using parent_t = NR_TxBW; - - }; - sUL_TxBW_t& ref_sUL_TxBW() {return sUL_TxBW;} - sUL_TxBW_t const& ref_sUL_TxBW() const {return sUL_TxBW;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(sUL_ARFCN); - v(sUL_TxBW); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(sUL_ARFCN); - v(sUL_TxBW); - v(iE_Extensions); - - }; - void clear() - { - sUL_ARFCN.clear(); - sUL_TxBW.clear(); - iE_Extensions.clear(); - - }; - private: - sUL_ARFCN_t sUL_ARFCN; - sUL_TxBW_t sUL_TxBW; - iE_Extensions_t iE_Extensions; - -}; -/* -NRFreqInfo-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct NRFreqInfo_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -NRFreqInfo ::= SEQUENCE{ - nRARFCN INTEGER (0.. 3279165), - freqBandListNr SEQUENCE (SIZE(1..maxnoofNrCellBands)) OF FreqBandNrItem, - sULInformation SULInformation OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {NRFreqInfo-ExtIEs} } OPTIONAL, - - ... -} -*/ - -struct NRFreqInfo : asn::sequence<4, 0, true, 2> -{ - static constexpr const char* name() {return "NRFreqInfo";} - using parent_t = asn::sequence<4, 0, true, 2>; - struct nRARFCN_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "nRARFCN_t";} - using parent_t = asn::integer<>; - - }; - - nRARFCN_t& ref_nRARFCN() {return nRARFCN;} - nRARFCN_t const& ref_nRARFCN() const {return nRARFCN;} - struct freqBandListNr_t_elm : FreqBandNrItem - { - static constexpr const char* name() {return "freqBandListNr_t_elm";} - using parent_t = FreqBandNrItem; - - }; - struct freqBandListNr_t : asn::sequenceof - { - static constexpr const char* name() {return "freqBandListNr_t";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - - }; - freqBandListNr_t& ref_freqBandListNr() {return freqBandListNr;} - freqBandListNr_t const& ref_freqBandListNr() const {return freqBandListNr;} - struct sULInformation_t : SULInformation - { - static constexpr const char* name() {return "sULInformation_t";} - using parent_t = SULInformation; - static constexpr bool optional = true; - - }; - sULInformation_t& set_sULInformation() { sULInformation.setpresent(true); return sULInformation;} - sULInformation_t const* get_sULInformation() const {return sULInformation.is_valid() ? &sULInformation : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(nRARFCN); - v(freqBandListNr); - v(sULInformation); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(nRARFCN); - v(freqBandListNr); - v(sULInformation); - v(iE_Extensions); - - }; - void clear() - { - nRARFCN.clear(); - freqBandListNr.clear(); - sULInformation.clear(); - iE_Extensions.clear(); - - }; - private: - nRARFCN_t nRARFCN; - freqBandListNr_t freqBandListNr; - sULInformation_t sULInformation; - iE_Extensions_t iE_Extensions; - -}; -/* -NRPCI ::= INTEGER (0..1007) -*/ - -struct NRPCI : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "NRPCI";} - using parent_t = asn::integer<>; - -}; - -/* -NRencryptionAlgorithms ::= BIT STRING (SIZE (16,...)) -*/ - -struct NRencryptionAlgorithms : asn::bstring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "NRencryptionAlgorithms";} - using parent_t = asn::bstring<>; - -}; - -/* -NRintegrityProtectionAlgorithms ::= BIT STRING (SIZE (16,...)) -*/ - -struct NRintegrityProtectionAlgorithms : asn::bstring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "NRintegrityProtectionAlgorithms";} - using parent_t = asn::bstring<>; - -}; - -/* -NRUESecurityCapabilities-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct NRUESecurityCapabilities_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -NRUESecurityCapabilities ::= SEQUENCE { - nRencryptionAlgorithms NRencryptionAlgorithms, - nRintegrityProtectionAlgorithms NRintegrityProtectionAlgorithms, - iE-Extensions ProtocolExtensionContainer { {NRUESecurityCapabilities-ExtIEs} } OPTIONAL, -... -} -*/ - -struct NRUESecurityCapabilities : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "NRUESecurityCapabilities";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct nRencryptionAlgorithms_t : NRencryptionAlgorithms - { - static constexpr const char* name() {return "nRencryptionAlgorithms_t";} - using parent_t = NRencryptionAlgorithms; - - }; - nRencryptionAlgorithms_t& ref_nRencryptionAlgorithms() {return nRencryptionAlgorithms;} - nRencryptionAlgorithms_t const& ref_nRencryptionAlgorithms() const {return nRencryptionAlgorithms;} - struct nRintegrityProtectionAlgorithms_t : NRintegrityProtectionAlgorithms - { - static constexpr const char* name() {return "nRintegrityProtectionAlgorithms_t";} - using parent_t = NRintegrityProtectionAlgorithms; - - }; - nRintegrityProtectionAlgorithms_t& ref_nRintegrityProtectionAlgorithms() {return nRintegrityProtectionAlgorithms;} - nRintegrityProtectionAlgorithms_t const& ref_nRintegrityProtectionAlgorithms() const {return nRintegrityProtectionAlgorithms;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(nRencryptionAlgorithms); - v(nRintegrityProtectionAlgorithms); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(nRencryptionAlgorithms); - v(nRintegrityProtectionAlgorithms); - v(iE_Extensions); - - }; - void clear() - { - nRencryptionAlgorithms.clear(); - nRintegrityProtectionAlgorithms.clear(); - iE_Extensions.clear(); - - }; - private: - nRencryptionAlgorithms_t nRencryptionAlgorithms; - nRintegrityProtectionAlgorithms_t nRintegrityProtectionAlgorithms; - iE_Extensions_t iE_Extensions; - -}; -/* -PCI ::= INTEGER (0..503, ...) -*/ - -struct PCI : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "PCI";} - using parent_t = asn::integer<>; - -}; - -/* -Neighbour-Information-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-NeighbourTAC CRITICALITY ignore EXTENSION TAC PRESENCE optional}| - { ID id-eARFCNExtension CRITICALITY reject EXTENSION EARFCNExtension PRESENCE optional}, - ... -} -*/ - -struct Neighbour_Information_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_NeighbourTAC() { set(id_NeighbourTAC); type=1;} - void select_id_eARFCNExtension() { set(id_eARFCNExtension); type=2;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_NeighbourTAC)) { type = 1; return true; } - else if(equal(id_eARFCNExtension)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_NeighbourTAC);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_eARFCNExtension);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_NeighbourTAC() { set(ignore); type=1;} - void select_id_eARFCNExtension() { set(reject); type=2;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - TAC& select_id_NeighbourTAC() { return set(1); } - TAC const* get_id_NeighbourTAC() const { return get(1); } - EARFCNExtension& select_id_eARFCNExtension() { return set(2); } - EARFCNExtension const* get_id_eARFCNExtension() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_NeighbourTAC()); return true; - case 2: v(select_id_eARFCNExtension()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(EARFCNExtension)]; - char dummy2[sizeof(TAC)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_NeighbourTAC() { set(optional); type=1;} - void select_id_eARFCNExtension() { set(optional); type=2;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -Neighbour-Information ::= SEQUENCE (SIZE (0..maxnoofNeighbours)) OF SEQUENCE { - eCGI ECGI, - pCI PCI, - eARFCN EARFCN, - iE-Extensions ProtocolExtensionContainer { {Neighbour-Information-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct Neighbour_Information_elm : asn::sequence<4, 0, true, 1> -{ - static constexpr const char* name() {return "Neighbour_Information_elm";} - using parent_t = asn::sequence<4, 0, true, 1>; - struct eCGI_t : ECGI - { - static constexpr const char* name() {return "eCGI_t";} - using parent_t = ECGI; - - }; - eCGI_t& ref_eCGI() {return eCGI;} - eCGI_t const& ref_eCGI() const {return eCGI;} - struct pCI_t : PCI - { - static constexpr const char* name() {return "pCI_t";} - using parent_t = PCI; - - }; - pCI_t& ref_pCI() {return pCI;} - pCI_t const& ref_pCI() const {return pCI;} - struct eARFCN_t : EARFCN - { - static constexpr const char* name() {return "eARFCN_t";} - using parent_t = EARFCN; - - }; - eARFCN_t& ref_eARFCN() {return eARFCN;} - eARFCN_t const& ref_eARFCN() const {return eARFCN;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(eCGI); - v(pCI); - v(eARFCN); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(eCGI); - v(pCI); - v(eARFCN); - v(iE_Extensions); - - }; - void clear() - { - eCGI.clear(); - pCI.clear(); - eARFCN.clear(); - iE_Extensions.clear(); - - }; - private: - eCGI_t eCGI; - pCI_t pCI; - eARFCN_t eARFCN; - iE_Extensions_t iE_Extensions; - -}; -struct Neighbour_Information : asn::sequenceof -{ - static constexpr const char* name() {return "Neighbour-Information";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -NewDRBIDrequest::= ENUMERATED {true, ...} -*/ - -struct NewDRBIDrequest : asn::enumerated<1, 0, true> -{ - static constexpr const char* name() {return "NewDRBIDrequest";} - using parent_t = asn::enumerated<1, 0, true>; - typedef enum { - True - } index_t; - -}; - -/* -Number-of-Antennaports ::= ENUMERATED { - an1, - an2, - an4, - ... -} -*/ - -struct Number_of_Antennaports : asn::enumerated<3, 0, true> -{ - static constexpr const char* name() {return "Number-of-Antennaports";} - using parent_t = asn::enumerated<3, 0, true>; - typedef enum { - an1 - ,an2 - ,an4 - } index_t; - -}; - -/* -PDCPChangeIndication ::= ENUMERATED {s-KgNB-update-required, pDCP-data-recovery-required,...} -*/ - -struct PDCPChangeIndication : asn::enumerated<2, 0, true> -{ - static constexpr const char* name() {return "PDCPChangeIndication";} - using parent_t = asn::enumerated<2, 0, true>; - typedef enum { - s_KgNB_update_required - ,pDCP_data_recovery_required - } index_t; - -}; - -/* -PDCPSnLength ::= ENUMERATED {twelve-bits,eighteen-bits,...} -*/ - -struct PDCPSnLength : asn::enumerated<2, 0, true> -{ - static constexpr const char* name() {return "PDCPSnLength";} - using parent_t = asn::enumerated<2, 0, true>; - typedef enum { - twelve_bits - ,eighteen_bits - } index_t; - -}; - -/* -PRACH-Configuration-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct PRACH_Configuration_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -PRACH-Configuration ::= SEQUENCE { - rootSequenceIndex INTEGER (0..837), - zeroCorrelationIndex INTEGER (0..15), - highSpeedFlag BOOLEAN, - prach-FreqOffset INTEGER (0..94), - prach-ConfigIndex INTEGER (0..63) OPTIONAL, -- present for TDD -- - iE-Extensions ProtocolExtensionContainer { {PRACH-Configuration-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct PRACH_Configuration : asn::sequence<6, 0, true, 2> -{ - static constexpr const char* name() {return "PRACH-Configuration";} - using parent_t = asn::sequence<6, 0, true, 2>; - struct rootSequenceIndex_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "rootSequenceIndex_t";} - using parent_t = asn::integer<>; - - }; - - rootSequenceIndex_t& ref_rootSequenceIndex() {return rootSequenceIndex;} - rootSequenceIndex_t const& ref_rootSequenceIndex() const {return rootSequenceIndex;} - struct zeroCorrelationIndex_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "zeroCorrelationIndex_t";} - using parent_t = asn::integer<>; - - }; - - zeroCorrelationIndex_t& ref_zeroCorrelationIndex() {return zeroCorrelationIndex;} - zeroCorrelationIndex_t const& ref_zeroCorrelationIndex() const {return zeroCorrelationIndex;} - struct highSpeedFlag_t : asn::boolean - { - static constexpr const char* name() {return "highSpeedFlag_t";} - using parent_t = asn::boolean; - - }; - highSpeedFlag_t& ref_highSpeedFlag() {return highSpeedFlag;} - highSpeedFlag_t const& ref_highSpeedFlag() const {return highSpeedFlag;} - struct prach_FreqOffset_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "prach_FreqOffset_t";} - using parent_t = asn::integer<>; - - }; - - prach_FreqOffset_t& ref_prach_FreqOffset() {return prach_FreqOffset;} - prach_FreqOffset_t const& ref_prach_FreqOffset() const {return prach_FreqOffset;} - struct prach_ConfigIndex_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "prach_ConfigIndex_t";} - using parent_t = asn::integer<>; - static constexpr bool optional = true; - - }; - - prach_ConfigIndex_t& set_prach_ConfigIndex() { prach_ConfigIndex.setpresent(true); return prach_ConfigIndex;} - prach_ConfigIndex_t const* get_prach_ConfigIndex() const {return prach_ConfigIndex.is_valid() ? &prach_ConfigIndex : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(rootSequenceIndex); - v(zeroCorrelationIndex); - v(highSpeedFlag); - v(prach_FreqOffset); - v(prach_ConfigIndex); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(rootSequenceIndex); - v(zeroCorrelationIndex); - v(highSpeedFlag); - v(prach_FreqOffset); - v(prach_ConfigIndex); - v(iE_Extensions); - - }; - void clear() - { - rootSequenceIndex.clear(); - zeroCorrelationIndex.clear(); - highSpeedFlag.clear(); - prach_FreqOffset.clear(); - prach_ConfigIndex.clear(); - iE_Extensions.clear(); - - }; - private: - rootSequenceIndex_t rootSequenceIndex; - zeroCorrelationIndex_t zeroCorrelationIndex; - highSpeedFlag_t highSpeedFlag; - prach_FreqOffset_t prach_FreqOffset; - prach_ConfigIndex_t prach_ConfigIndex; - iE_Extensions_t iE_Extensions; - -}; -/* -PedestrianUE ::= ENUMERATED { - authorized, - not-authorized, - ... -} -*/ - -struct PedestrianUE : asn::enumerated<2, 0, true> -{ - static constexpr const char* name() {return "PedestrianUE";} - using parent_t = asn::enumerated<2, 0, true>; - typedef enum { - authorized - ,not_authorized - } index_t; - -}; - -/* -Port-Number ::= OCTET STRING (SIZE (2)) -*/ - -struct Port_Number : asn::ostring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "Port-Number";} - using parent_t = asn::ostring<>; - -}; - -/* -ProSeDirectDiscovery ::= ENUMERATED { - authorized, - not-authorized, - ... -} -*/ - -struct ProSeDirectDiscovery : asn::enumerated<2, 0, true> -{ - static constexpr const char* name() {return "ProSeDirectDiscovery";} - using parent_t = asn::enumerated<2, 0, true>; - typedef enum { - authorized - ,not_authorized - } index_t; - -}; - -/* -ProSeDirectCommunication ::= ENUMERATED { - authorized, - not-authorized, - ... -} -*/ - -struct ProSeDirectCommunication : asn::enumerated<2, 0, true> -{ - static constexpr const char* name() {return "ProSeDirectCommunication";} - using parent_t = asn::enumerated<2, 0, true>; - typedef enum { - authorized - ,not_authorized - } index_t; - -}; - -/* -ProSeUEtoNetworkRelaying ::= ENUMERATED { - authorized, - not-authorized, - ... -} -*/ - -struct ProSeUEtoNetworkRelaying : asn::enumerated<2, 0, true> -{ - static constexpr const char* name() {return "ProSeUEtoNetworkRelaying";} - using parent_t = asn::enumerated<2, 0, true>; - typedef enum { - authorized - ,not_authorized - } index_t; - -}; - -/* -ProSeAuthorized-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-ProSeUEtoNetworkRelaying CRITICALITY ignore EXTENSION ProSeUEtoNetworkRelaying PRESENCE optional}, - ... -} -*/ - -struct ProSeAuthorized_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_ProSeUEtoNetworkRelaying() { set(id_ProSeUEtoNetworkRelaying); type=1;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_ProSeUEtoNetworkRelaying)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_ProSeUEtoNetworkRelaying);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_ProSeUEtoNetworkRelaying() { set(ignore); type=1;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - ProSeUEtoNetworkRelaying& select_id_ProSeUEtoNetworkRelaying() { return set(1); } - ProSeUEtoNetworkRelaying const* get_id_ProSeUEtoNetworkRelaying() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_ProSeUEtoNetworkRelaying()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(ProSeUEtoNetworkRelaying)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_ProSeUEtoNetworkRelaying() { set(optional); type=1;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ProSeAuthorized ::= SEQUENCE { - proSeDirectDiscovery ProSeDirectDiscovery OPTIONAL, - proSeDirectCommunication ProSeDirectCommunication OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {ProSeAuthorized-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct ProSeAuthorized : asn::sequence<3, 0, true, 3> -{ - static constexpr const char* name() {return "ProSeAuthorized";} - using parent_t = asn::sequence<3, 0, true, 3>; - struct proSeDirectDiscovery_t : ProSeDirectDiscovery - { - static constexpr const char* name() {return "proSeDirectDiscovery_t";} - using parent_t = ProSeDirectDiscovery; - static constexpr bool optional = true; - - }; - proSeDirectDiscovery_t& set_proSeDirectDiscovery() { proSeDirectDiscovery.setpresent(true); return proSeDirectDiscovery;} - proSeDirectDiscovery_t const* get_proSeDirectDiscovery() const {return proSeDirectDiscovery.is_valid() ? &proSeDirectDiscovery : nullptr;} - struct proSeDirectCommunication_t : ProSeDirectCommunication - { - static constexpr const char* name() {return "proSeDirectCommunication_t";} - using parent_t = ProSeDirectCommunication; - static constexpr bool optional = true; - - }; - proSeDirectCommunication_t& set_proSeDirectCommunication() { proSeDirectCommunication.setpresent(true); return proSeDirectCommunication;} - proSeDirectCommunication_t const* get_proSeDirectCommunication() const {return proSeDirectCommunication.is_valid() ? &proSeDirectCommunication : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(proSeDirectDiscovery); - v(proSeDirectCommunication); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(proSeDirectDiscovery); - v(proSeDirectCommunication); - v(iE_Extensions); - - }; - void clear() - { - proSeDirectDiscovery.clear(); - proSeDirectCommunication.clear(); - iE_Extensions.clear(); - - }; - private: - proSeDirectDiscovery_t proSeDirectDiscovery; - proSeDirectCommunication_t proSeDirectCommunication; - iE_Extensions_t iE_Extensions; - -}; -/* -ResourceType ::= ENUMERATED { - downlinknonCRS, - cRS, - uplink, - ... -} -*/ - -struct ResourceType : asn::enumerated<3, 0, true> -{ - static constexpr const char* name() {return "ResourceType";} - using parent_t = asn::enumerated<3, 0, true>; - typedef enum { - downlinknonCRS - ,cRS - ,uplink - } index_t; - -}; - -/* -ProtectedFootprintTimePattern-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct ProtectedFootprintTimePattern_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ProtectedFootprintTimePattern ::= SEQUENCE { - protectedFootprintTimePeriodicity INTEGER (1..320, ...), - protectedFootprintStartTime INTEGER (1..20, ...), - iE-Extensions ProtocolExtensionContainer { {ProtectedFootprintTimePattern-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct ProtectedFootprintTimePattern : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "ProtectedFootprintTimePattern";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct protectedFootprintTimePeriodicity_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "protectedFootprintTimePeriodicity_t";} - using parent_t = asn::integer<>; - - }; - - protectedFootprintTimePeriodicity_t& ref_protectedFootprintTimePeriodicity() {return protectedFootprintTimePeriodicity;} - protectedFootprintTimePeriodicity_t const& ref_protectedFootprintTimePeriodicity() const {return protectedFootprintTimePeriodicity;} - struct protectedFootprintStartTime_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "protectedFootprintStartTime_t";} - using parent_t = asn::integer<>; - - }; - - protectedFootprintStartTime_t& ref_protectedFootprintStartTime() {return protectedFootprintStartTime;} - protectedFootprintStartTime_t const& ref_protectedFootprintStartTime() const {return protectedFootprintStartTime;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(protectedFootprintTimePeriodicity); - v(protectedFootprintStartTime); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(protectedFootprintTimePeriodicity); - v(protectedFootprintStartTime); - v(iE_Extensions); - - }; - void clear() - { - protectedFootprintTimePeriodicity.clear(); - protectedFootprintStartTime.clear(); - iE_Extensions.clear(); - - }; - private: - protectedFootprintTimePeriodicity_t protectedFootprintTimePeriodicity; - protectedFootprintStartTime_t protectedFootprintStartTime; - iE_Extensions_t iE_Extensions; - -}; -/* -ProtectedResourceList-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct ProtectedResourceList_Item_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ProtectedResourceList-Item ::= SEQUENCE { - resourceType ResourceType, - intraPRBProtectedResourceFootprint BIT STRING (SIZE(84, ...)), - protectedFootprintFrequencyPattern BIT STRING (SIZE(6..110, ...)), - protectedFootprintTimePattern ProtectedFootprintTimePattern, - iE-Extensions ProtocolExtensionContainer { {ProtectedResourceList-Item-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct ProtectedResourceList_Item : asn::sequence<5, 0, true, 1> -{ - static constexpr const char* name() {return "ProtectedResourceList-Item";} - using parent_t = asn::sequence<5, 0, true, 1>; - struct resourceType_t : ResourceType - { - static constexpr const char* name() {return "resourceType_t";} - using parent_t = ResourceType; - - }; - resourceType_t& ref_resourceType() {return resourceType;} - resourceType_t const& ref_resourceType() const {return resourceType;} - struct intraPRBProtectedResourceFootprint_t : asn::bstring<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "intraPRBProtectedResourceFootprint_t";} - using parent_t = asn::bstring<>; - - }; - - intraPRBProtectedResourceFootprint_t& ref_intraPRBProtectedResourceFootprint() {return intraPRBProtectedResourceFootprint;} - intraPRBProtectedResourceFootprint_t const& ref_intraPRBProtectedResourceFootprint() const {return intraPRBProtectedResourceFootprint;} - struct protectedFootprintFrequencyPattern_t : asn::bstring<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "protectedFootprintFrequencyPattern_t";} - using parent_t = asn::bstring<>; - - }; - - protectedFootprintFrequencyPattern_t& ref_protectedFootprintFrequencyPattern() {return protectedFootprintFrequencyPattern;} - protectedFootprintFrequencyPattern_t const& ref_protectedFootprintFrequencyPattern() const {return protectedFootprintFrequencyPattern;} - struct protectedFootprintTimePattern_t : ProtectedFootprintTimePattern - { - static constexpr const char* name() {return "protectedFootprintTimePattern_t";} - using parent_t = ProtectedFootprintTimePattern; - - }; - protectedFootprintTimePattern_t& ref_protectedFootprintTimePattern() {return protectedFootprintTimePattern;} - protectedFootprintTimePattern_t const& ref_protectedFootprintTimePattern() const {return protectedFootprintTimePattern;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(resourceType); - v(intraPRBProtectedResourceFootprint); - v(protectedFootprintFrequencyPattern); - v(protectedFootprintTimePattern); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(resourceType); - v(intraPRBProtectedResourceFootprint); - v(protectedFootprintFrequencyPattern); - v(protectedFootprintTimePattern); - v(iE_Extensions); - - }; - void clear() - { - resourceType.clear(); - intraPRBProtectedResourceFootprint.clear(); - protectedFootprintFrequencyPattern.clear(); - protectedFootprintTimePattern.clear(); - iE_Extensions.clear(); - - }; - private: - resourceType_t resourceType; - intraPRBProtectedResourceFootprint_t intraPRBProtectedResourceFootprint; - protectedFootprintFrequencyPattern_t protectedFootprintFrequencyPattern; - protectedFootprintTimePattern_t protectedFootprintTimePattern; - iE_Extensions_t iE_Extensions; - -}; -/* -ProtectedResourceList ::= SEQUENCE (SIZE(1.. maxnoofProtectedResourcePatterns)) OF ProtectedResourceList-Item -*/ - -struct ProtectedResourceList_elm : ProtectedResourceList_Item -{ - static constexpr const char* name() {return "ProtectedResourceList_elm";} - using parent_t = ProtectedResourceList_Item; - -}; -struct ProtectedResourceList : asn::sequenceof -{ - static constexpr const char* name() {return "ProtectedResourceList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -ProtectedEUTRAResourceIndication-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -- Rapporteur: missing extension -- -*/ - -struct ProtectedEUTRAResourceIndication_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ProtectedEUTRAResourceIndication::= SEQUENCE { - activationSFN INTEGER (0..1023), - protectedResourceList ProtectedResourceList, - mBSFNControlRegionLength INTEGER (0..3) OPTIONAL, - pDCCHRegionLength INTEGER (1..3) OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {ProtectedEUTRAResourceIndication-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct ProtectedEUTRAResourceIndication : asn::sequence<5, 0, true, 3> -{ - static constexpr const char* name() {return "ProtectedEUTRAResourceIndication";} - using parent_t = asn::sequence<5, 0, true, 3>; - struct activationSFN_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "activationSFN_t";} - using parent_t = asn::integer<>; - - }; - - activationSFN_t& ref_activationSFN() {return activationSFN;} - activationSFN_t const& ref_activationSFN() const {return activationSFN;} - struct protectedResourceList_t : ProtectedResourceList - { - static constexpr const char* name() {return "protectedResourceList_t";} - using parent_t = ProtectedResourceList; - - }; - protectedResourceList_t& ref_protectedResourceList() {return protectedResourceList;} - protectedResourceList_t const& ref_protectedResourceList() const {return protectedResourceList;} - struct mBSFNControlRegionLength_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "mBSFNControlRegionLength_t";} - using parent_t = asn::integer<>; - static constexpr bool optional = true; - - }; - - mBSFNControlRegionLength_t& set_mBSFNControlRegionLength() { mBSFNControlRegionLength.setpresent(true); return mBSFNControlRegionLength;} - mBSFNControlRegionLength_t const* get_mBSFNControlRegionLength() const {return mBSFNControlRegionLength.is_valid() ? &mBSFNControlRegionLength : nullptr;} - struct pDCCHRegionLength_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "pDCCHRegionLength_t";} - using parent_t = asn::integer<>; - static constexpr bool optional = true; - - }; - - pDCCHRegionLength_t& set_pDCCHRegionLength() { pDCCHRegionLength.setpresent(true); return pDCCHRegionLength;} - pDCCHRegionLength_t const* get_pDCCHRegionLength() const {return pDCCHRegionLength.is_valid() ? &pDCCHRegionLength : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(activationSFN); - v(protectedResourceList); - v(mBSFNControlRegionLength); - v(pDCCHRegionLength); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(activationSFN); - v(protectedResourceList); - v(mBSFNControlRegionLength); - v(pDCCHRegionLength); - v(iE_Extensions); - - }; - void clear() - { - activationSFN.clear(); - protectedResourceList.clear(); - mBSFNControlRegionLength.clear(); - pDCCHRegionLength.clear(); - iE_Extensions.clear(); - - }; - private: - activationSFN_t activationSFN; - protectedResourceList_t protectedResourceList; - mBSFNControlRegionLength_t mBSFNControlRegionLength; - pDCCHRegionLength_t pDCCHRegionLength; - iE_Extensions_t iE_Extensions; - -}; -/* -Reestablishment-Indication ::= ENUMERATED { - reestablished, - ... -} -*/ - -struct Reestablishment_Indication : asn::enumerated<1, 0, true> -{ - static constexpr const char* name() {return "Reestablishment-Indication";} - using parent_t = asn::enumerated<1, 0, true>; - typedef enum { - reestablished - } index_t; - -}; - -/* -RLC-Status-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct RLC_Status_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RLC-Status ::= SEQUENCE { - reestablishment-Indication Reestablishment-Indication, - iE-Extensions ProtocolExtensionContainer { {RLC-Status-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct RLC_Status : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "RLC-Status";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct reestablishment_Indication_t : Reestablishment_Indication - { - static constexpr const char* name() {return "reestablishment_Indication_t";} - using parent_t = Reestablishment_Indication; - - }; - reestablishment_Indication_t& ref_reestablishment_Indication() {return reestablishment_Indication;} - reestablishment_Indication_t const& ref_reestablishment_Indication() const {return reestablishment_Indication;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(reestablishment_Indication); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(reestablishment_Indication); - v(iE_Extensions); - - }; - void clear() - { - reestablishment_Indication.clear(); - iE_Extensions.clear(); - - }; - private: - reestablishment_Indication_t reestablishment_Indication; - iE_Extensions_t iE_Extensions; - -}; -/* -RLCMode ::= ENUMERATED { - rlc-am, - rlc-um-bidirectional, - rlc-um-unidirectional-ul, - rlc-um-unidirectional-dl, - ... -} -*/ - -struct RLCMode : asn::enumerated<4, 0, true> -{ - static constexpr const char* name() {return "RLCMode";} - using parent_t = asn::enumerated<4, 0, true>; - typedef enum { - rlc_am - ,rlc_um_bidirectional - ,rlc_um_unidirectional_ul - ,rlc_um_unidirectional_dl - } index_t; - -}; - -/* -RRC-Config-Ind ::= ENUMERATED { - full-config, - delta-config, - ... -} -*/ - -struct RRC_Config_Ind : asn::enumerated<2, 0, true> -{ - static constexpr const char* name() {return "RRC-Config-Ind";} - using parent_t = asn::enumerated<2, 0, true>; - typedef enum { - full_config - ,delta_config - } index_t; - -}; - -/* -RRC-Context ::= OCTET STRING -*/ - -struct RRC_Context : asn::ostring<> -{ - static constexpr const char* name() {return "RRC-Context";} - using parent_t = asn::ostring<>; - -}; - -/* -RRCConnReestabIndicator ::= ENUMERATED { - reconfigurationFailure, handoverFailure, otherFailure, ... -} -*/ - -struct RRCConnReestabIndicator : asn::enumerated<3, 0, true> -{ - static constexpr const char* name() {return "RRCConnReestabIndicator";} - using parent_t = asn::enumerated<3, 0, true>; - typedef enum { - reconfigurationFailure - ,handoverFailure - ,otherFailure - } index_t; - -}; - -/* -RRCConnSetupIndicator::= ENUMERATED { - rrcConnSetup, - ... -} -*/ - -struct RRCConnSetupIndicator : asn::enumerated<1, 0, true> -{ - static constexpr const char* name() {return "RRCConnSetupIndicator";} - using parent_t = asn::enumerated<1, 0, true>; - typedef enum { - rrcConnSetup - } index_t; - -}; - -/* -RRCContainer ::= OCTET STRING -*/ - -struct RRCContainer : asn::ostring<> -{ - static constexpr const char* name() {return "RRCContainer";} - using parent_t = asn::ostring<>; - -}; - -/* -RSRPMeasurementResult-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct RSRPMeasurementResult_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RSRPMeasurementResult ::= SEQUENCE (SIZE(1..maxCellReport)) OF - SEQUENCE { - rSRPCellID ECGI, - rSRPMeasured INTEGER (0..97, ...), - iE-Extensions ProtocolExtensionContainer { {RSRPMeasurementResult-ExtIEs} } OPTIONAL, - ... - } -*/ - -struct RSRPMeasurementResult_elm : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "RSRPMeasurementResult_elm";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct rSRPCellID_t : ECGI - { - static constexpr const char* name() {return "rSRPCellID_t";} - using parent_t = ECGI; - - }; - rSRPCellID_t& ref_rSRPCellID() {return rSRPCellID;} - rSRPCellID_t const& ref_rSRPCellID() const {return rSRPCellID;} - struct rSRPMeasured_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "rSRPMeasured_t";} - using parent_t = asn::integer<>; - - }; - - rSRPMeasured_t& ref_rSRPMeasured() {return rSRPMeasured;} - rSRPMeasured_t const& ref_rSRPMeasured() const {return rSRPMeasured;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(rSRPCellID); - v(rSRPMeasured); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(rSRPCellID); - v(rSRPMeasured); - v(iE_Extensions); - - }; - void clear() - { - rSRPCellID.clear(); - rSRPMeasured.clear(); - iE_Extensions.clear(); - - }; - private: - rSRPCellID_t rSRPCellID; - rSRPMeasured_t rSRPMeasured; - iE_Extensions_t iE_Extensions; - -}; -struct RSRPMeasurementResult : asn::sequenceof -{ - static constexpr const char* name() {return "RSRPMeasurementResult";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -RSRPMRList-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-UEID CRITICALITY ignore EXTENSION UEID PRESENCE optional}, - ... -} -*/ - -struct RSRPMRList_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_UEID() { set(id_UEID); type=1;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_UEID)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_UEID);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_UEID() { set(ignore); type=1;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - UEID& select_id_UEID() { return set(1); } - UEID const* get_id_UEID() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_UEID()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(UEID)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_UEID() { set(optional); type=1;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RSRPMRList ::= SEQUENCE (SIZE(1..maxUEReport)) OF - SEQUENCE { - rSRPMeasurementResult RSRPMeasurementResult, - iE-Extensions ProtocolExtensionContainer { {RSRPMRList-ExtIEs} } OPTIONAL, - ... - } -*/ - -struct RSRPMRList_elm : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "RSRPMRList_elm";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct rSRPMeasurementResult_t : RSRPMeasurementResult - { - static constexpr const char* name() {return "rSRPMeasurementResult_t";} - using parent_t = RSRPMeasurementResult; - - }; - rSRPMeasurementResult_t& ref_rSRPMeasurementResult() {return rSRPMeasurementResult;} - rSRPMeasurementResult_t const& ref_rSRPMeasurementResult() const {return rSRPMeasurementResult;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(rSRPMeasurementResult); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(rSRPMeasurementResult); - v(iE_Extensions); - - }; - void clear() - { - rSRPMeasurementResult.clear(); - iE_Extensions.clear(); - - }; - private: - rSRPMeasurementResult_t rSRPMeasurementResult; - iE_Extensions_t iE_Extensions; - -}; -struct RSRPMRList : asn::sequenceof -{ - static constexpr const char* name() {return "RSRPMRList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -UL-GBR-PRB-usage::= INTEGER (0..100) -*/ - -struct UL_GBR_PRB_usage : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "UL-GBR-PRB-usage";} - using parent_t = asn::integer<>; - -}; - -/* -UL-non-GBR-PRB-usage::= INTEGER (0..100) -*/ - -struct UL_non_GBR_PRB_usage : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "UL-non-GBR-PRB-usage";} - using parent_t = asn::integer<>; - -}; - -/* -UL-Total-PRB-usage::= INTEGER (0..100) -*/ - -struct UL_Total_PRB_usage : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "UL-Total-PRB-usage";} - using parent_t = asn::integer<>; - -}; - -/* -UL-scheduling-PDCCH-CCE-usage::= INTEGER (0..100) -*/ - -struct UL_scheduling_PDCCH_CCE_usage : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "UL-scheduling-PDCCH-CCE-usage";} - using parent_t = asn::integer<>; - -}; - -/* -RadioResourceStatus-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - {ID id-DL-scheduling-PDCCH-CCE-usage CRITICALITY ignore EXTENSION DL-scheduling-PDCCH-CCE-usage PRESENCE optional}| - - {ID id-UL-scheduling-PDCCH-CCE-usage CRITICALITY ignore EXTENSION UL-scheduling-PDCCH-CCE-usage PRESENCE optional}, - ... -} -*/ - -struct RadioResourceStatus_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_DL_scheduling_PDCCH_CCE_usage() { set(id_DL_scheduling_PDCCH_CCE_usage); type=1;} - void select_id_UL_scheduling_PDCCH_CCE_usage() { set(id_UL_scheduling_PDCCH_CCE_usage); type=2;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_DL_scheduling_PDCCH_CCE_usage)) { type = 1; return true; } - else if(equal(id_UL_scheduling_PDCCH_CCE_usage)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_DL_scheduling_PDCCH_CCE_usage);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_UL_scheduling_PDCCH_CCE_usage);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_DL_scheduling_PDCCH_CCE_usage() { set(ignore); type=1;} - void select_id_UL_scheduling_PDCCH_CCE_usage() { set(ignore); type=2;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - DL_scheduling_PDCCH_CCE_usage& select_id_DL_scheduling_PDCCH_CCE_usage() { return set(1); } - DL_scheduling_PDCCH_CCE_usage const* get_id_DL_scheduling_PDCCH_CCE_usage() const { return get(1); } - UL_scheduling_PDCCH_CCE_usage& select_id_UL_scheduling_PDCCH_CCE_usage() { return set(2); } - UL_scheduling_PDCCH_CCE_usage const* get_id_UL_scheduling_PDCCH_CCE_usage() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_DL_scheduling_PDCCH_CCE_usage()); return true; - case 2: v(select_id_UL_scheduling_PDCCH_CCE_usage()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(DL_scheduling_PDCCH_CCE_usage)]; - char dummy2[sizeof(UL_scheduling_PDCCH_CCE_usage)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_DL_scheduling_PDCCH_CCE_usage() { set(optional); type=1;} - void select_id_UL_scheduling_PDCCH_CCE_usage() { set(optional); type=2;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RadioResourceStatus ::= SEQUENCE { - dL-GBR-PRB-usage DL-GBR-PRB-usage, - uL-GBR-PRB-usage UL-GBR-PRB-usage, - dL-non-GBR-PRB-usage DL-non-GBR-PRB-usage, - uL-non-GBR-PRB-usage UL-non-GBR-PRB-usage, - dL-Total-PRB-usage DL-Total-PRB-usage, - uL-Total-PRB-usage UL-Total-PRB-usage, - iE-Extensions ProtocolExtensionContainer { {RadioResourceStatus-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct RadioResourceStatus : asn::sequence<7, 0, true, 1> -{ - static constexpr const char* name() {return "RadioResourceStatus";} - using parent_t = asn::sequence<7, 0, true, 1>; - struct dL_GBR_PRB_usage_t : DL_GBR_PRB_usage - { - static constexpr const char* name() {return "dL_GBR_PRB_usage_t";} - using parent_t = DL_GBR_PRB_usage; - - }; - dL_GBR_PRB_usage_t& ref_dL_GBR_PRB_usage() {return dL_GBR_PRB_usage;} - dL_GBR_PRB_usage_t const& ref_dL_GBR_PRB_usage() const {return dL_GBR_PRB_usage;} - struct uL_GBR_PRB_usage_t : UL_GBR_PRB_usage - { - static constexpr const char* name() {return "uL_GBR_PRB_usage_t";} - using parent_t = UL_GBR_PRB_usage; - - }; - uL_GBR_PRB_usage_t& ref_uL_GBR_PRB_usage() {return uL_GBR_PRB_usage;} - uL_GBR_PRB_usage_t const& ref_uL_GBR_PRB_usage() const {return uL_GBR_PRB_usage;} - struct dL_non_GBR_PRB_usage_t : DL_non_GBR_PRB_usage - { - static constexpr const char* name() {return "dL_non_GBR_PRB_usage_t";} - using parent_t = DL_non_GBR_PRB_usage; - - }; - dL_non_GBR_PRB_usage_t& ref_dL_non_GBR_PRB_usage() {return dL_non_GBR_PRB_usage;} - dL_non_GBR_PRB_usage_t const& ref_dL_non_GBR_PRB_usage() const {return dL_non_GBR_PRB_usage;} - struct uL_non_GBR_PRB_usage_t : UL_non_GBR_PRB_usage - { - static constexpr const char* name() {return "uL_non_GBR_PRB_usage_t";} - using parent_t = UL_non_GBR_PRB_usage; - - }; - uL_non_GBR_PRB_usage_t& ref_uL_non_GBR_PRB_usage() {return uL_non_GBR_PRB_usage;} - uL_non_GBR_PRB_usage_t const& ref_uL_non_GBR_PRB_usage() const {return uL_non_GBR_PRB_usage;} - struct dL_Total_PRB_usage_t : DL_Total_PRB_usage - { - static constexpr const char* name() {return "dL_Total_PRB_usage_t";} - using parent_t = DL_Total_PRB_usage; - - }; - dL_Total_PRB_usage_t& ref_dL_Total_PRB_usage() {return dL_Total_PRB_usage;} - dL_Total_PRB_usage_t const& ref_dL_Total_PRB_usage() const {return dL_Total_PRB_usage;} - struct uL_Total_PRB_usage_t : UL_Total_PRB_usage - { - static constexpr const char* name() {return "uL_Total_PRB_usage_t";} - using parent_t = UL_Total_PRB_usage; - - }; - uL_Total_PRB_usage_t& ref_uL_Total_PRB_usage() {return uL_Total_PRB_usage;} - uL_Total_PRB_usage_t const& ref_uL_Total_PRB_usage() const {return uL_Total_PRB_usage;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(dL_GBR_PRB_usage); - v(uL_GBR_PRB_usage); - v(dL_non_GBR_PRB_usage); - v(uL_non_GBR_PRB_usage); - v(dL_Total_PRB_usage); - v(uL_Total_PRB_usage); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(dL_GBR_PRB_usage); - v(uL_GBR_PRB_usage); - v(dL_non_GBR_PRB_usage); - v(uL_non_GBR_PRB_usage); - v(dL_Total_PRB_usage); - v(uL_Total_PRB_usage); - v(iE_Extensions); - - }; - void clear() - { - dL_GBR_PRB_usage.clear(); - uL_GBR_PRB_usage.clear(); - dL_non_GBR_PRB_usage.clear(); - uL_non_GBR_PRB_usage.clear(); - dL_Total_PRB_usage.clear(); - uL_Total_PRB_usage.clear(); - iE_Extensions.clear(); - - }; - private: - dL_GBR_PRB_usage_t dL_GBR_PRB_usage; - uL_GBR_PRB_usage_t uL_GBR_PRB_usage; - dL_non_GBR_PRB_usage_t dL_non_GBR_PRB_usage; - uL_non_GBR_PRB_usage_t uL_non_GBR_PRB_usage; - dL_Total_PRB_usage_t dL_Total_PRB_usage; - uL_Total_PRB_usage_t uL_Total_PRB_usage; - iE_Extensions_t iE_Extensions; - -}; -/* -ReceiveStatusOfULPDCPSDUsExtended ::= BIT STRING (SIZE(1..16384)) -*/ - -struct ReceiveStatusOfULPDCPSDUsExtended : asn::bstring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "ReceiveStatusOfULPDCPSDUsExtended";} - using parent_t = asn::bstring<>; - -}; - -/* -ReceiveStatusOfULPDCPSDUsPDCP-SNlength18 ::= BIT STRING (SIZE(1..131072)) -*/ - -struct ReceiveStatusOfULPDCPSDUsPDCP_SNlength18 : asn::bstring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "ReceiveStatusOfULPDCPSDUsPDCP-SNlength18";} - using parent_t = asn::bstring<>; - -}; - -/* -ReceiveStatusofULPDCPSDUs ::= BIT STRING (SIZE(4096)) -*/ - -struct ReceiveStatusofULPDCPSDUs : asn::bstring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "ReceiveStatusofULPDCPSDUs";} - using parent_t = asn::bstring<>; - -}; - -/* -Registration-Request ::= ENUMERATED { - start, - stop, - ..., - partial-stop, - add -} -*/ - -struct Registration_Request : asn::enumerated<4, 2, true> -{ - static constexpr const char* name() {return "Registration-Request";} - using parent_t = asn::enumerated<4, 2, true>; - typedef enum { - start - ,stop - ,partial_stop - ,add - } index_t; - -}; - -/* -RelativeNarrowbandTxPower-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-enhancedRNTP CRITICALITY ignore EXTENSION EnhancedRNTP PRESENCE optional }, - ... -} -*/ - -struct RelativeNarrowbandTxPower_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_enhancedRNTP() { set(id_enhancedRNTP); type=1;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_enhancedRNTP)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_enhancedRNTP);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_enhancedRNTP() { set(ignore); type=1;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - EnhancedRNTP& select_id_enhancedRNTP() { return set(1); } - EnhancedRNTP const* get_id_enhancedRNTP() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_enhancedRNTP()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(EnhancedRNTP)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_enhancedRNTP() { set(optional); type=1;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RelativeNarrowbandTxPower ::= SEQUENCE { - - rNTP-PerPRB BIT STRING (SIZE(6..110, ...)), - rNTP-Threshold RNTP-Threshold, - numberOfCellSpecificAntennaPorts ENUMERATED {one, two, four, ...}, - p-B INTEGER (0..3,...), - pDCCH-InterferenceImpact INTEGER (0..4,...), - iE-Extensions ProtocolExtensionContainer { {RelativeNarrowbandTxPower-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct RelativeNarrowbandTxPower : asn::sequence<6, 0, true, 1> -{ - static constexpr const char* name() {return "RelativeNarrowbandTxPower";} - using parent_t = asn::sequence<6, 0, true, 1>; - struct rNTP_PerPRB_t : asn::bstring<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "rNTP_PerPRB_t";} - using parent_t = asn::bstring<>; - - }; - - rNTP_PerPRB_t& ref_rNTP_PerPRB() {return rNTP_PerPRB;} - rNTP_PerPRB_t const& ref_rNTP_PerPRB() const {return rNTP_PerPRB;} - struct rNTP_Threshold_t : RNTP_Threshold - { - static constexpr const char* name() {return "rNTP_Threshold_t";} - using parent_t = RNTP_Threshold; - - }; - rNTP_Threshold_t& ref_rNTP_Threshold() {return rNTP_Threshold;} - rNTP_Threshold_t const& ref_rNTP_Threshold() const {return rNTP_Threshold;} - struct numberOfCellSpecificAntennaPorts_t : asn::enumerated<3, 0, true> - { - static constexpr const char* name() {return "numberOfCellSpecificAntennaPorts_t";} - using parent_t = asn::enumerated<3, 0, true>; - typedef enum { - one - ,two - ,four - } index_t; - - }; - - numberOfCellSpecificAntennaPorts_t& ref_numberOfCellSpecificAntennaPorts() {return numberOfCellSpecificAntennaPorts;} - numberOfCellSpecificAntennaPorts_t const& ref_numberOfCellSpecificAntennaPorts() const {return numberOfCellSpecificAntennaPorts;} - struct p_B_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "p_B_t";} - using parent_t = asn::integer<>; - - }; - - p_B_t& ref_p_B() {return p_B;} - p_B_t const& ref_p_B() const {return p_B;} - struct pDCCH_InterferenceImpact_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "pDCCH_InterferenceImpact_t";} - using parent_t = asn::integer<>; - - }; - - pDCCH_InterferenceImpact_t& ref_pDCCH_InterferenceImpact() {return pDCCH_InterferenceImpact;} - pDCCH_InterferenceImpact_t const& ref_pDCCH_InterferenceImpact() const {return pDCCH_InterferenceImpact;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(rNTP_PerPRB); - v(rNTP_Threshold); - v(numberOfCellSpecificAntennaPorts); - v(p_B); - v(pDCCH_InterferenceImpact); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(rNTP_PerPRB); - v(rNTP_Threshold); - v(numberOfCellSpecificAntennaPorts); - v(p_B); - v(pDCCH_InterferenceImpact); - v(iE_Extensions); - - }; - void clear() - { - rNTP_PerPRB.clear(); - rNTP_Threshold.clear(); - numberOfCellSpecificAntennaPorts.clear(); - p_B.clear(); - pDCCH_InterferenceImpact.clear(); - iE_Extensions.clear(); - - }; - private: - rNTP_PerPRB_t rNTP_PerPRB; - rNTP_Threshold_t rNTP_Threshold; - numberOfCellSpecificAntennaPorts_t numberOfCellSpecificAntennaPorts; - p_B_t p_B; - pDCCH_InterferenceImpact_t pDCCH_InterferenceImpact; - iE_Extensions_t iE_Extensions; - -}; -/* -ReportCharacteristics ::= BIT STRING (SIZE (32)) -*/ - -struct ReportCharacteristics : asn::bstring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "ReportCharacteristics";} - using parent_t = asn::bstring<>; - -}; - -/* -ReportingPeriodicityCSIR ::= ENUMERATED { - ms5, - ms10, - ms20, - ms40, - ms80, -... -} -*/ - -struct ReportingPeriodicityCSIR : asn::enumerated<5, 0, true> -{ - static constexpr const char* name() {return "ReportingPeriodicityCSIR";} - using parent_t = asn::enumerated<5, 0, true>; - typedef enum { - ms5 - ,ms10 - ,ms20 - ,ms40 - ,ms80 - } index_t; - -}; - -/* -ReportingPeriodicityRSRPMR ::= ENUMERATED { - one-hundred-20-ms, - two-hundred-40-ms, - four-hundred-80-ms, - six-hundred-40-ms, -... -} -*/ - -struct ReportingPeriodicityRSRPMR : asn::enumerated<4, 0, true> -{ - static constexpr const char* name() {return "ReportingPeriodicityRSRPMR";} - using parent_t = asn::enumerated<4, 0, true>; - typedef enum { - one_hundred_20_ms - ,two_hundred_40_ms - ,four_hundred_80_ms - ,six_hundred_40_ms - } index_t; - -}; - -/* -ResumeID ::= CHOICE { - non-truncated BIT STRING(SIZE(40)), - truncated BIT STRING(SIZE(24)), - ... -} -*/ - -struct ResumeID : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "ResumeID";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~ResumeID() {clear();} - struct non_truncated_t : asn::bstring<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "non_truncated_t";} - using parent_t = asn::bstring<>; - - }; - - struct truncated_t : asn::bstring<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "truncated_t";} - using parent_t = asn::bstring<>; - - }; - - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - non_truncated_t& select_non_truncated() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - non_truncated_t const* get_non_truncated() const { if(get_index() == 1) { return &var.as();} return nullptr; } - truncated_t& select_truncated() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - truncated_t const* get_truncated() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(non_truncated_t)]; - char dummy2[sizeof(truncated_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -S1TNLLoadIndicator-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct S1TNLLoadIndicator_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -S1TNLLoadIndicator ::= SEQUENCE { - dLS1TNLLoadIndicator LoadIndicator, - uLS1TNLLoadIndicator LoadIndicator, - iE-Extensions ProtocolExtensionContainer { {S1TNLLoadIndicator-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct S1TNLLoadIndicator : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "S1TNLLoadIndicator";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct dLS1TNLLoadIndicator_t : LoadIndicator - { - static constexpr const char* name() {return "dLS1TNLLoadIndicator_t";} - using parent_t = LoadIndicator; - - }; - dLS1TNLLoadIndicator_t& ref_dLS1TNLLoadIndicator() {return dLS1TNLLoadIndicator;} - dLS1TNLLoadIndicator_t const& ref_dLS1TNLLoadIndicator() const {return dLS1TNLLoadIndicator;} - struct uLS1TNLLoadIndicator_t : LoadIndicator - { - static constexpr const char* name() {return "uLS1TNLLoadIndicator_t";} - using parent_t = LoadIndicator; - - }; - uLS1TNLLoadIndicator_t& ref_uLS1TNLLoadIndicator() {return uLS1TNLLoadIndicator;} - uLS1TNLLoadIndicator_t const& ref_uLS1TNLLoadIndicator() const {return uLS1TNLLoadIndicator;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(dLS1TNLLoadIndicator); - v(uLS1TNLLoadIndicator); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(dLS1TNLLoadIndicator); - v(uLS1TNLLoadIndicator); - v(iE_Extensions); - - }; - void clear() - { - dLS1TNLLoadIndicator.clear(); - uLS1TNLLoadIndicator.clear(); - iE_Extensions.clear(); - - }; - private: - dLS1TNLLoadIndicator_t dLS1TNLLoadIndicator; - uLS1TNLLoadIndicator_t uLS1TNLLoadIndicator; - iE_Extensions_t iE_Extensions; - -}; -/* -SCGChangeIndication ::= ENUMERATED {pDCPCountWrapAround, pSCellChange, other, ...} -*/ - -struct SCGChangeIndication : asn::enumerated<3, 0, true> -{ - static constexpr const char* name() {return "SCGChangeIndication";} - using parent_t = asn::enumerated<3, 0, true>; - typedef enum { - pDCPCountWrapAround - ,pSCellChange - ,other - } index_t; - -}; - -/* -SCGConfigurationQuery ::= ENUMERATED {true,...} -*/ - -struct SCGConfigurationQuery : asn::enumerated<1, 0, true> -{ - static constexpr const char* name() {return "SCGConfigurationQuery";} - using parent_t = asn::enumerated<1, 0, true>; - typedef enum { - True - } index_t; - -}; - -/* -SGNB-Addition-Trigger-Ind ::= ENUMERATED { - sn-change, - inter-eNB-HO, - intra-eNB-HO, - ... -} -*/ - -struct SGNB_Addition_Trigger_Ind : asn::enumerated<3, 0, true> -{ - static constexpr const char* name() {return "SGNB-Addition-Trigger-Ind";} - using parent_t = asn::enumerated<3, 0, true>; - typedef enum { - sn_change - ,inter_eNB_HO - ,intra_eNB_HO - } index_t; - -}; - -/* -SIPTOBearerDeactivationIndication ::= ENUMERATED { - true, - ... -} -*/ - -struct SIPTOBearerDeactivationIndication : asn::enumerated<1, 0, true> -{ - static constexpr const char* name() {return "SIPTOBearerDeactivationIndication";} - using parent_t = asn::enumerated<1, 0, true>; - typedef enum { - True - } index_t; - -}; - -/* -SRBType ::= ENUMERATED {srb1, srb2, ...} -*/ - -struct SRBType : asn::enumerated<2, 0, true> -{ - static constexpr const char* name() {return "SRBType";} - using parent_t = asn::enumerated<2, 0, true>; - typedef enum { - srb1 - ,srb2 - } index_t; - -}; - -/* -SRVCCOperationPossible ::= ENUMERATED { - possible, - ... -} -*/ - -struct SRVCCOperationPossible : asn::enumerated<1, 0, true> -{ - static constexpr const char* name() {return "SRVCCOperationPossible";} - using parent_t = asn::enumerated<1, 0, true>; - typedef enum { - possible - } index_t; - -}; - -/* -ScheduledCommunicationTime-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct ScheduledCommunicationTime_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ScheduledCommunicationTime ::= SEQUENCE { - dayofWeek BIT STRING (SIZE(7)) OPTIONAL, - timeofDayStart INTEGER (0..86399, ...) OPTIONAL, - timeofDayEnd INTEGER (0..86399, ...) OPTIONAL, - iE-Extensions ProtocolExtensionContainer { { ScheduledCommunicationTime-ExtIEs}} OPTIONAL, - ... -} -*/ - -struct ScheduledCommunicationTime : asn::sequence<4, 0, true, 4> -{ - static constexpr const char* name() {return "ScheduledCommunicationTime";} - using parent_t = asn::sequence<4, 0, true, 4>; - struct dayofWeek_t : asn::bstring<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "dayofWeek_t";} - using parent_t = asn::bstring<>; - static constexpr bool optional = true; - - }; - - dayofWeek_t& set_dayofWeek() { dayofWeek.setpresent(true); return dayofWeek;} - dayofWeek_t const* get_dayofWeek() const {return dayofWeek.is_valid() ? &dayofWeek : nullptr;} - struct timeofDayStart_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "timeofDayStart_t";} - using parent_t = asn::integer<>; - static constexpr bool optional = true; - - }; - - timeofDayStart_t& set_timeofDayStart() { timeofDayStart.setpresent(true); return timeofDayStart;} - timeofDayStart_t const* get_timeofDayStart() const {return timeofDayStart.is_valid() ? &timeofDayStart : nullptr;} - struct timeofDayEnd_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "timeofDayEnd_t";} - using parent_t = asn::integer<>; - static constexpr bool optional = true; - - }; - - timeofDayEnd_t& set_timeofDayEnd() { timeofDayEnd.setpresent(true); return timeofDayEnd;} - timeofDayEnd_t const* get_timeofDayEnd() const {return timeofDayEnd.is_valid() ? &timeofDayEnd : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(dayofWeek); - v(timeofDayStart); - v(timeofDayEnd); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(dayofWeek); - v(timeofDayStart); - v(timeofDayEnd); - v(iE_Extensions); - - }; - void clear() - { - dayofWeek.clear(); - timeofDayStart.clear(); - timeofDayEnd.clear(); - iE_Extensions.clear(); - - }; - private: - dayofWeek_t dayofWeek; - timeofDayStart_t timeofDayStart; - timeofDayEnd_t timeofDayEnd; - iE_Extensions_t iE_Extensions; - -}; -/* -SeNBSecurityKey ::= BIT STRING (SIZE(256)) -*/ - -struct SeNBSecurityKey : asn::bstring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "SeNBSecurityKey";} - using parent_t = asn::bstring<>; - -}; - -/* -SeNBtoMeNBContainer ::= OCTET STRING -*/ - -struct SeNBtoMeNBContainer : asn::ostring<> -{ - static constexpr const char* name() {return "SeNBtoMeNBContainer";} - using parent_t = asn::ostring<>; - -}; - -/* -SecondaryRATUsageReport-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct SecondaryRATUsageReport_Item_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SecondaryRATUsageReport-Item ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - secondaryRATType ENUMERATED {nr, ...}, - e-RABUsageReportList E-RABUsageReportList, - iE-Extensions ProtocolExtensionContainer { {SecondaryRATUsageReport-Item-ExtIEs} } OPTIONAL, -... -} -*/ - -struct SecondaryRATUsageReport_Item : asn::sequence<4, 0, true, 1> -{ - static constexpr const char* name() {return "SecondaryRATUsageReport-Item";} - using parent_t = asn::sequence<4, 0, true, 1>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct secondaryRATType_t : asn::enumerated<1, 0, true> - { - static constexpr const char* name() {return "secondaryRATType_t";} - using parent_t = asn::enumerated<1, 0, true>; - typedef enum { - nr - } index_t; - - }; - - secondaryRATType_t& ref_secondaryRATType() {return secondaryRATType;} - secondaryRATType_t const& ref_secondaryRATType() const {return secondaryRATType;} - struct e_RABUsageReportList_t : E_RABUsageReportList - { - static constexpr const char* name() {return "e_RABUsageReportList_t";} - using parent_t = E_RABUsageReportList; - - }; - e_RABUsageReportList_t& ref_e_RABUsageReportList() {return e_RABUsageReportList;} - e_RABUsageReportList_t const& ref_e_RABUsageReportList() const {return e_RABUsageReportList;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(secondaryRATType); - v(e_RABUsageReportList); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(secondaryRATType); - v(e_RABUsageReportList); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - secondaryRATType.clear(); - e_RABUsageReportList.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - secondaryRATType_t secondaryRATType; - e_RABUsageReportList_t e_RABUsageReportList; - iE_Extensions_t iE_Extensions; - -}; -/* -SecondaryRATUsageReport-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-SecondaryRATUsageReport-Item CRITICALITY reject TYPE SecondaryRATUsageReport-Item PRESENCE mandatory}, - ... -} -*/ - -struct SecondaryRATUsageReport_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_SecondaryRATUsageReport_Item() { set(id_SecondaryRATUsageReport_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_SecondaryRATUsageReport_Item)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_SecondaryRATUsageReport_Item);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_SecondaryRATUsageReport_Item() { set(reject); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - SecondaryRATUsageReport_Item& select_id_SecondaryRATUsageReport_Item() { return set(1); } - SecondaryRATUsageReport_Item const* get_id_SecondaryRATUsageReport_Item() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_SecondaryRATUsageReport_Item()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(SecondaryRATUsageReport_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_SecondaryRATUsageReport_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SecondaryRATUsageReportList ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container {{SecondaryRATUsageReport-ItemIEs}} -*/ - -struct SecondaryRATUsageReportList_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "SecondaryRATUsageReportList_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct SecondaryRATUsageReportList : asn::sequenceof -{ - static constexpr const char* name() {return "SecondaryRATUsageReportList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -ServedCell-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct ServedCell_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ServedCell-Information-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-Number-of-Antennaports CRITICALITY ignore EXTENSION Number-of-Antennaports PRESENCE optional}| - { ID id-PRACH-Configuration CRITICALITY ignore EXTENSION PRACH-Configuration PRESENCE optional}| - { ID id-MBSFN-Subframe-Info CRITICALITY ignore EXTENSION MBSFN-Subframe-Infolist PRESENCE optional}| - { ID id-CSG-Id CRITICALITY ignore EXTENSION CSG-Id PRESENCE optional}| - { ID id-MBMS-Service-Area-List CRITICALITY ignore EXTENSION MBMS-Service-Area-Identity-List PRESENCE optional}| - { ID id-MultibandInfoList CRITICALITY ignore EXTENSION MultibandInfoList PRESENCE optional}| - { ID id-FreqBandIndicatorPriority CRITICALITY ignore EXTENSION FreqBandIndicatorPriority PRESENCE optional}| - { ID id-BandwidthReducedSI CRITICALITY ignore EXTENSION BandwidthReducedSI PRESENCE optional}| - { ID id-ProtectedEUTRAResourceIndication CRITICALITY ignore EXTENSION ProtectedEUTRAResourceIndication PRESENCE optional}, - ... -} -*/ - -struct ServedCell_Information_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 10; } - void clear() {type = 0;} - void select_id_Number_of_Antennaports() { set(id_Number_of_Antennaports); type=1;} - void select_id_PRACH_Configuration() { set(id_PRACH_Configuration); type=2;} - void select_id_MBSFN_Subframe_Info() { set(id_MBSFN_Subframe_Info); type=3;} - void select_id_CSG_Id() { set(id_CSG_Id); type=4;} - void select_id_MBMS_Service_Area_List() { set(id_MBMS_Service_Area_List); type=5;} - void select_id_MultibandInfoList() { set(id_MultibandInfoList); type=6;} - void select_id_FreqBandIndicatorPriority() { set(id_FreqBandIndicatorPriority); type=7;} - void select_id_BandwidthReducedSI() { set(id_BandwidthReducedSI); type=8;} - void select_id_ProtectedEUTRAResourceIndication() { set(id_ProtectedEUTRAResourceIndication); type=9;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_Number_of_Antennaports)) { type = 1; return true; } - else if(equal(id_PRACH_Configuration)) { type = 2; return true; } - else if(equal(id_MBSFN_Subframe_Info)) { type = 3; return true; } - else if(equal(id_CSG_Id)) { type = 4; return true; } - else if(equal(id_MBMS_Service_Area_List)) { type = 5; return true; } - else if(equal(id_MultibandInfoList)) { type = 6; return true; } - else if(equal(id_FreqBandIndicatorPriority)) { type = 7; return true; } - else if(equal(id_BandwidthReducedSI)) { type = 8; return true; } - else if(equal(id_ProtectedEUTRAResourceIndication)) { type = 9; return true; } - else { type = 10; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_Number_of_Antennaports);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_PRACH_Configuration);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_MBSFN_Subframe_Info);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_CSG_Id);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_MBMS_Service_Area_List);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_MultibandInfoList);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(id_FreqBandIndicatorPriority);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(id_BandwidthReducedSI);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(id_ProtectedEUTRAResourceIndication);} return false; - case 10: type = 10; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 10; } - void clear() {type = 0;} - void select_id_Number_of_Antennaports() { set(ignore); type=1;} - void select_id_PRACH_Configuration() { set(ignore); type=2;} - void select_id_MBSFN_Subframe_Info() { set(ignore); type=3;} - void select_id_CSG_Id() { set(ignore); type=4;} - void select_id_MBMS_Service_Area_List() { set(ignore); type=5;} - void select_id_MultibandInfoList() { set(ignore); type=6;} - void select_id_FreqBandIndicatorPriority() { set(ignore); type=7;} - void select_id_BandwidthReducedSI() { set(ignore); type=8;} - void select_id_ProtectedEUTRAResourceIndication() { set(ignore); type=9;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else if(equal(ignore)) { type = 6; return true; } - else if(equal(ignore)) { type = 7; return true; } - else if(equal(ignore)) { type = 8; return true; } - else if(equal(ignore)) { type = 9; return true; } - else { type = 10; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(ignore);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(ignore);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(ignore);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(ignore);} return false; - case 10: type = 10; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - Number_of_Antennaports& select_id_Number_of_Antennaports() { return set(1); } - Number_of_Antennaports const* get_id_Number_of_Antennaports() const { return get(1); } - PRACH_Configuration& select_id_PRACH_Configuration() { return set(2); } - PRACH_Configuration const* get_id_PRACH_Configuration() const { return get(2); } - MBSFN_Subframe_Infolist& select_id_MBSFN_Subframe_Info() { return set(3); } - MBSFN_Subframe_Infolist const* get_id_MBSFN_Subframe_Info() const { return get(3); } - CSG_Id& select_id_CSG_Id() { return set(4); } - CSG_Id const* get_id_CSG_Id() const { return get(4); } - MBMS_Service_Area_Identity_List& select_id_MBMS_Service_Area_List() { return set(5); } - MBMS_Service_Area_Identity_List const* get_id_MBMS_Service_Area_List() const { return get(5); } - MultibandInfoList& select_id_MultibandInfoList() { return set(6); } - MultibandInfoList const* get_id_MultibandInfoList() const { return get(6); } - FreqBandIndicatorPriority& select_id_FreqBandIndicatorPriority() { return set(7); } - FreqBandIndicatorPriority const* get_id_FreqBandIndicatorPriority() const { return get(7); } - BandwidthReducedSI& select_id_BandwidthReducedSI() { return set(8); } - BandwidthReducedSI const* get_id_BandwidthReducedSI() const { return get(8); } - ProtectedEUTRAResourceIndication& select_id_ProtectedEUTRAResourceIndication() { return set(9); } - ProtectedEUTRAResourceIndication const* get_id_ProtectedEUTRAResourceIndication() const { return get(9); } - bool is_unknown() const { return type == 10; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - case 7: var.destroy(); break; - case 8: var.destroy(); break; - case 9: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - v.template operator()(7); - v.template operator()(8); - v.template operator()(9); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_Number_of_Antennaports()); return true; - case 2: v(select_id_PRACH_Configuration()); return true; - case 3: v(select_id_MBSFN_Subframe_Info()); return true; - case 4: v(select_id_CSG_Id()); return true; - case 5: v(select_id_MBMS_Service_Area_List()); return true; - case 6: v(select_id_MultibandInfoList()); return true; - case 7: v(select_id_FreqBandIndicatorPriority()); return true; - case 8: v(select_id_BandwidthReducedSI()); return true; - case 9: v(select_id_ProtectedEUTRAResourceIndication()); return true; - case 10: if(type != 10) {clear(); asn::base::set();} type = 10; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - case 7: v(var.as()); return true; - case 8: v(var.as()); return true; - case 9: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(BandwidthReducedSI)]; - char dummy2[sizeof(CSG_Id)]; - char dummy3[sizeof(FreqBandIndicatorPriority)]; - char dummy4[sizeof(MBMS_Service_Area_Identity_List)]; - char dummy5[sizeof(MBSFN_Subframe_Infolist)]; - char dummy6[sizeof(MultibandInfoList)]; - char dummy7[sizeof(Number_of_Antennaports)]; - char dummy8[sizeof(PRACH_Configuration)]; - char dummy9[sizeof(ProtectedEUTRAResourceIndication)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 10; } - void clear() {type = 0;} - void select_id_Number_of_Antennaports() { set(optional); type=1;} - void select_id_PRACH_Configuration() { set(optional); type=2;} - void select_id_MBSFN_Subframe_Info() { set(optional); type=3;} - void select_id_CSG_Id() { set(optional); type=4;} - void select_id_MBMS_Service_Area_List() { set(optional); type=5;} - void select_id_MultibandInfoList() { set(optional); type=6;} - void select_id_FreqBandIndicatorPriority() { set(optional); type=7;} - void select_id_BandwidthReducedSI() { set(optional); type=8;} - void select_id_ProtectedEUTRAResourceIndication() { set(optional); type=9;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else if(equal(optional)) { type = 7; return true; } - else if(equal(optional)) { type = 8; return true; } - else if(equal(optional)) { type = 9; return true; } - else { type = 10; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(optional);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(optional);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(optional);} return false; - case 10: type = 10; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ServedCell-Information ::= SEQUENCE { - pCI PCI, - cellId ECGI, - tAC TAC, - broadcastPLMNs BroadcastPLMNs-Item, - eUTRA-Mode-Info EUTRA-Mode-Info, - iE-Extensions ProtocolExtensionContainer { {ServedCell-Information-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct ServedCell_Information : asn::sequence<6, 0, true, 1> -{ - static constexpr const char* name() {return "ServedCell-Information";} - using parent_t = asn::sequence<6, 0, true, 1>; - struct pCI_t : PCI - { - static constexpr const char* name() {return "pCI_t";} - using parent_t = PCI; - - }; - pCI_t& ref_pCI() {return pCI;} - pCI_t const& ref_pCI() const {return pCI;} - struct cellId_t : ECGI - { - static constexpr const char* name() {return "cellId_t";} - using parent_t = ECGI; - - }; - cellId_t& ref_cellId() {return cellId;} - cellId_t const& ref_cellId() const {return cellId;} - struct tAC_t : TAC - { - static constexpr const char* name() {return "tAC_t";} - using parent_t = TAC; - - }; - tAC_t& ref_tAC() {return tAC;} - tAC_t const& ref_tAC() const {return tAC;} - struct broadcastPLMNs_t : BroadcastPLMNs_Item - { - static constexpr const char* name() {return "broadcastPLMNs_t";} - using parent_t = BroadcastPLMNs_Item; - - }; - broadcastPLMNs_t& ref_broadcastPLMNs() {return broadcastPLMNs;} - broadcastPLMNs_t const& ref_broadcastPLMNs() const {return broadcastPLMNs;} - struct eUTRA_Mode_Info_t : EUTRA_Mode_Info - { - static constexpr const char* name() {return "eUTRA_Mode_Info_t";} - using parent_t = EUTRA_Mode_Info; - - }; - eUTRA_Mode_Info_t& ref_eUTRA_Mode_Info() {return eUTRA_Mode_Info;} - eUTRA_Mode_Info_t const& ref_eUTRA_Mode_Info() const {return eUTRA_Mode_Info;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(pCI); - v(cellId); - v(tAC); - v(broadcastPLMNs); - v(eUTRA_Mode_Info); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(pCI); - v(cellId); - v(tAC); - v(broadcastPLMNs); - v(eUTRA_Mode_Info); - v(iE_Extensions); - - }; - void clear() - { - pCI.clear(); - cellId.clear(); - tAC.clear(); - broadcastPLMNs.clear(); - eUTRA_Mode_Info.clear(); - iE_Extensions.clear(); - - }; - private: - pCI_t pCI; - cellId_t cellId; - tAC_t tAC; - broadcastPLMNs_t broadcastPLMNs; - eUTRA_Mode_Info_t eUTRA_Mode_Info; - iE_Extensions_t iE_Extensions; - -}; -/* -ServedCells ::= SEQUENCE (SIZE (1.. maxCellineNB)) OF SEQUENCE { - servedCellInfo ServedCell-Information, - neighbour-Info Neighbour-Information OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {ServedCell-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct ServedCells_elm : asn::sequence<3, 0, true, 2> -{ - static constexpr const char* name() {return "ServedCells_elm";} - using parent_t = asn::sequence<3, 0, true, 2>; - struct servedCellInfo_t : ServedCell_Information - { - static constexpr const char* name() {return "servedCellInfo_t";} - using parent_t = ServedCell_Information; - - }; - servedCellInfo_t& ref_servedCellInfo() {return servedCellInfo;} - servedCellInfo_t const& ref_servedCellInfo() const {return servedCellInfo;} - struct neighbour_Info_t : Neighbour_Information - { - static constexpr const char* name() {return "neighbour_Info_t";} - using parent_t = Neighbour_Information; - static constexpr bool optional = true; - - }; - neighbour_Info_t& set_neighbour_Info() { neighbour_Info.setpresent(true); return neighbour_Info;} - neighbour_Info_t const* get_neighbour_Info() const {return neighbour_Info.is_valid() ? &neighbour_Info : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(servedCellInfo); - v(neighbour_Info); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(servedCellInfo); - v(neighbour_Info); - v(iE_Extensions); - - }; - void clear() - { - servedCellInfo.clear(); - neighbour_Info.clear(); - iE_Extensions.clear(); - - }; - private: - servedCellInfo_t servedCellInfo; - neighbour_Info_t neighbour_Info; - iE_Extensions_t iE_Extensions; - -}; -struct ServedCells : asn::sequenceof -{ - static constexpr const char* name() {return "ServedCells";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -ServiceType ::= ENUMERATED{ - qMC-for-streaming-service, - qMC-for-MTSI-service, - ... -} -*/ - -struct ServiceType : asn::enumerated<2, 0, true> -{ - static constexpr const char* name() {return "ServiceType";} - using parent_t = asn::enumerated<2, 0, true>; - typedef enum { - qMC_for_streaming_service - ,qMC_for_MTSI_service - } index_t; - -}; - -/* -SgNB-UE-X2AP-ID ::= INTEGER (0..4294967295) -*/ - -struct SgNB_UE_X2AP_ID : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "SgNB-UE-X2AP-ID";} - using parent_t = asn::integer<>; - -}; - -/* -SgNBCoordinationAssistanceInformation ::= ENUMERATED{ - coordination-not-required, - ... -} -*/ - -struct SgNBCoordinationAssistanceInformation : asn::enumerated<1, 0, true> -{ - static constexpr const char* name() {return "SgNBCoordinationAssistanceInformation";} - using parent_t = asn::enumerated<1, 0, true>; - typedef enum { - coordination_not_required - } index_t; - -}; - -/* -SgNBResourceCoordinationInformationExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-ECGI CRITICALITY ignore EXTENSION ECGI PRESENCE optional}| - { ID id-SgNBCoordinationAssistanceInformation CRITICALITY reject EXTENSION SgNBCoordinationAssistanceInformation PRESENCE optional}, - ... -} -*/ - -struct SgNBResourceCoordinationInformationExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_ECGI() { set(id_ECGI); type=1;} - void select_id_SgNBCoordinationAssistanceInformation() { set(id_SgNBCoordinationAssistanceInformation); type=2;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_ECGI)) { type = 1; return true; } - else if(equal(id_SgNBCoordinationAssistanceInformation)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_ECGI);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SgNBCoordinationAssistanceInformation);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_ECGI() { set(ignore); type=1;} - void select_id_SgNBCoordinationAssistanceInformation() { set(reject); type=2;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - ECGI& select_id_ECGI() { return set(1); } - ECGI const* get_id_ECGI() const { return get(1); } - SgNBCoordinationAssistanceInformation& select_id_SgNBCoordinationAssistanceInformation() { return set(2); } - SgNBCoordinationAssistanceInformation const* get_id_SgNBCoordinationAssistanceInformation() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_ECGI()); return true; - case 2: v(select_id_SgNBCoordinationAssistanceInformation()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(ECGI)]; - char dummy2[sizeof(SgNBCoordinationAssistanceInformation)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_ECGI() { set(optional); type=1;} - void select_id_SgNBCoordinationAssistanceInformation() { set(optional); type=2;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SgNBResourceCoordinationInformation ::= SEQUENCE { - nR-CGI NRCGI, - uLCoordinationInformation BIT STRING (SIZE(6..4400, ...)), - dLCoordinationInformation BIT STRING (SIZE(6..4400, ...)) OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {SgNBResourceCoordinationInformationExtIEs} } OPTIONAL, - ... -} -*/ - -struct SgNBResourceCoordinationInformation : asn::sequence<4, 0, true, 2> -{ - static constexpr const char* name() {return "SgNBResourceCoordinationInformation";} - using parent_t = asn::sequence<4, 0, true, 2>; - struct nR_CGI_t : NRCGI - { - static constexpr const char* name() {return "nR_CGI_t";} - using parent_t = NRCGI; - - }; - nR_CGI_t& ref_nR_CGI() {return nR_CGI;} - nR_CGI_t const& ref_nR_CGI() const {return nR_CGI;} - struct uLCoordinationInformation_t : asn::bstring<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "uLCoordinationInformation_t";} - using parent_t = asn::bstring<>; - - }; - - uLCoordinationInformation_t& ref_uLCoordinationInformation() {return uLCoordinationInformation;} - uLCoordinationInformation_t const& ref_uLCoordinationInformation() const {return uLCoordinationInformation;} - struct dLCoordinationInformation_t : asn::bstring<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "dLCoordinationInformation_t";} - using parent_t = asn::bstring<>; - static constexpr bool optional = true; - - }; - - dLCoordinationInformation_t& set_dLCoordinationInformation() { dLCoordinationInformation.setpresent(true); return dLCoordinationInformation;} - dLCoordinationInformation_t const* get_dLCoordinationInformation() const {return dLCoordinationInformation.is_valid() ? &dLCoordinationInformation : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(nR_CGI); - v(uLCoordinationInformation); - v(dLCoordinationInformation); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(nR_CGI); - v(uLCoordinationInformation); - v(dLCoordinationInformation); - v(iE_Extensions); - - }; - void clear() - { - nR_CGI.clear(); - uLCoordinationInformation.clear(); - dLCoordinationInformation.clear(); - iE_Extensions.clear(); - - }; - private: - nR_CGI_t nR_CGI; - uLCoordinationInformation_t uLCoordinationInformation; - dLCoordinationInformation_t dLCoordinationInformation; - iE_Extensions_t iE_Extensions; - -}; -/* -SgNBSecurityKey ::= BIT STRING (SIZE(256)) -*/ - -struct SgNBSecurityKey : asn::bstring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "SgNBSecurityKey";} - using parent_t = asn::bstring<>; - -}; - -/* -SgNBtoMeNBContainer ::= OCTET STRING -*/ - -struct SgNBtoMeNBContainer : asn::ostring<> -{ - static constexpr const char* name() {return "SgNBtoMeNBContainer";} - using parent_t = asn::ostring<>; - -}; - -/* -ShortMAC-I ::= BIT STRING (SIZE(16)) -*/ - -struct ShortMAC_I : asn::bstring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "ShortMAC-I";} - using parent_t = asn::bstring<>; - -}; - -/* -SpectrumSharingGroupID ::= INTEGER (1..maxCellineNB) -*/ - -struct SpectrumSharingGroupID : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "SpectrumSharingGroupID";} - using parent_t = asn::integer<>; - -}; - -/* -SplitSRB-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct SplitSRB_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SplitSRB ::= SEQUENCE { - rrcContainer RRCContainer OPTIONAL, - srbType SRBType, - deliveryStatus DeliveryStatus OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {SplitSRB-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct SplitSRB : asn::sequence<4, 0, true, 3> -{ - static constexpr const char* name() {return "SplitSRB";} - using parent_t = asn::sequence<4, 0, true, 3>; - struct rrcContainer_t : RRCContainer - { - static constexpr const char* name() {return "rrcContainer_t";} - using parent_t = RRCContainer; - static constexpr bool optional = true; - - }; - rrcContainer_t& set_rrcContainer() { rrcContainer.setpresent(true); return rrcContainer;} - rrcContainer_t const* get_rrcContainer() const {return rrcContainer.is_valid() ? &rrcContainer : nullptr;} - struct srbType_t : SRBType - { - static constexpr const char* name() {return "srbType_t";} - using parent_t = SRBType; - - }; - srbType_t& ref_srbType() {return srbType;} - srbType_t const& ref_srbType() const {return srbType;} - struct deliveryStatus_t : DeliveryStatus - { - static constexpr const char* name() {return "deliveryStatus_t";} - using parent_t = DeliveryStatus; - static constexpr bool optional = true; - - }; - deliveryStatus_t& set_deliveryStatus() { deliveryStatus.setpresent(true); return deliveryStatus;} - deliveryStatus_t const* get_deliveryStatus() const {return deliveryStatus.is_valid() ? &deliveryStatus : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(rrcContainer); - v(srbType); - v(deliveryStatus); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(rrcContainer); - v(srbType); - v(deliveryStatus); - v(iE_Extensions); - - }; - void clear() - { - rrcContainer.clear(); - srbType.clear(); - deliveryStatus.clear(); - iE_Extensions.clear(); - - }; - private: - rrcContainer_t rrcContainer; - srbType_t srbType; - deliveryStatus_t deliveryStatus; - iE_Extensions_t iE_Extensions; - -}; -/* -SplitSRBs ::= ENUMERATED {srb1, srb2, srb1and2, ...} -*/ - -struct SplitSRBs : asn::enumerated<3, 0, true> -{ - static constexpr const char* name() {return "SplitSRBs";} - using parent_t = asn::enumerated<3, 0, true>; - typedef enum { - srb1 - ,srb2 - ,srb1and2 - } index_t; - -}; - -/* -SubscriberProfileIDforRFP ::= INTEGER (1..256) -*/ - -struct SubscriberProfileIDforRFP : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "SubscriberProfileIDforRFP";} - using parent_t = asn::integer<>; - -}; - -/* -Subscription-Based-UE-DifferentiationInfo-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct Subscription_Based_UE_DifferentiationInfo_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -Subscription-Based-UE-DifferentiationInfo ::= SEQUENCE { - periodicCommunicationIndicator ENUMERATED {periodically, ondemand, ...} OPTIONAL, - periodicTime INTEGER (1..3600, ...) OPTIONAL, - scheduledCommunicationTime ScheduledCommunicationTime OPTIONAL, - stationaryIndication ENUMERATED {stationary, mobile, ...} OPTIONAL, - trafficProfile ENUMERATED {single-packet, dual-packets, multiple-packets, ...} OPTIONAL, - batteryIndication ENUMERATED {battery-powered, battery-powered-not-rechargeable-or-replaceable, not-battery-powered, ...} OPTIONAL, - iE-Extensions ProtocolExtensionContainer { { Subscription-Based-UE-DifferentiationInfo-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct Subscription_Based_UE_DifferentiationInfo : asn::sequence<7, 0, true, 7> -{ - static constexpr const char* name() {return "Subscription-Based-UE-DifferentiationInfo";} - using parent_t = asn::sequence<7, 0, true, 7>; - struct periodicCommunicationIndicator_t : asn::enumerated<2, 0, true> - { - static constexpr const char* name() {return "periodicCommunicationIndicator_t";} - using parent_t = asn::enumerated<2, 0, true>; - static constexpr bool optional = true; - typedef enum { - periodically - ,ondemand - } index_t; - - }; - - periodicCommunicationIndicator_t& set_periodicCommunicationIndicator() { periodicCommunicationIndicator.setpresent(true); return periodicCommunicationIndicator;} - periodicCommunicationIndicator_t const* get_periodicCommunicationIndicator() const {return periodicCommunicationIndicator.is_valid() ? &periodicCommunicationIndicator : nullptr;} - struct periodicTime_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "periodicTime_t";} - using parent_t = asn::integer<>; - static constexpr bool optional = true; - - }; - - periodicTime_t& set_periodicTime() { periodicTime.setpresent(true); return periodicTime;} - periodicTime_t const* get_periodicTime() const {return periodicTime.is_valid() ? &periodicTime : nullptr;} - struct scheduledCommunicationTime_t : ScheduledCommunicationTime - { - static constexpr const char* name() {return "scheduledCommunicationTime_t";} - using parent_t = ScheduledCommunicationTime; - static constexpr bool optional = true; - - }; - scheduledCommunicationTime_t& set_scheduledCommunicationTime() { scheduledCommunicationTime.setpresent(true); return scheduledCommunicationTime;} - scheduledCommunicationTime_t const* get_scheduledCommunicationTime() const {return scheduledCommunicationTime.is_valid() ? &scheduledCommunicationTime : nullptr;} - struct stationaryIndication_t : asn::enumerated<2, 0, true> - { - static constexpr const char* name() {return "stationaryIndication_t";} - using parent_t = asn::enumerated<2, 0, true>; - static constexpr bool optional = true; - typedef enum { - stationary - ,mobile - } index_t; - - }; - - stationaryIndication_t& set_stationaryIndication() { stationaryIndication.setpresent(true); return stationaryIndication;} - stationaryIndication_t const* get_stationaryIndication() const {return stationaryIndication.is_valid() ? &stationaryIndication : nullptr;} - struct trafficProfile_t : asn::enumerated<3, 0, true> - { - static constexpr const char* name() {return "trafficProfile_t";} - using parent_t = asn::enumerated<3, 0, true>; - static constexpr bool optional = true; - typedef enum { - single_packet - ,dual_packets - ,multiple_packets - } index_t; - - }; - - trafficProfile_t& set_trafficProfile() { trafficProfile.setpresent(true); return trafficProfile;} - trafficProfile_t const* get_trafficProfile() const {return trafficProfile.is_valid() ? &trafficProfile : nullptr;} - struct batteryIndication_t : asn::enumerated<3, 0, true> - { - static constexpr const char* name() {return "batteryIndication_t";} - using parent_t = asn::enumerated<3, 0, true>; - static constexpr bool optional = true; - typedef enum { - battery_powered - ,battery_powered_not_rechargeable_or_replaceable - ,not_battery_powered - } index_t; - - }; - - batteryIndication_t& set_batteryIndication() { batteryIndication.setpresent(true); return batteryIndication;} - batteryIndication_t const* get_batteryIndication() const {return batteryIndication.is_valid() ? &batteryIndication : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(periodicCommunicationIndicator); - v(periodicTime); - v(scheduledCommunicationTime); - v(stationaryIndication); - v(trafficProfile); - v(batteryIndication); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(periodicCommunicationIndicator); - v(periodicTime); - v(scheduledCommunicationTime); - v(stationaryIndication); - v(trafficProfile); - v(batteryIndication); - v(iE_Extensions); - - }; - void clear() - { - periodicCommunicationIndicator.clear(); - periodicTime.clear(); - scheduledCommunicationTime.clear(); - stationaryIndication.clear(); - trafficProfile.clear(); - batteryIndication.clear(); - iE_Extensions.clear(); - - }; - private: - periodicCommunicationIndicator_t periodicCommunicationIndicator; - periodicTime_t periodicTime; - scheduledCommunicationTime_t scheduledCommunicationTime; - stationaryIndication_t stationaryIndication; - trafficProfile_t trafficProfile; - batteryIndication_t batteryIndication; - iE_Extensions_t iE_Extensions; - -}; -/* -TargetCellInUTRAN ::= OCTET STRING -- This IE is to be encoded according to the UTRAN Cell ID in the Last Visited UTRAN Cell Information IE in TS 25.413 [24] -*/ - -struct TargetCellInUTRAN : asn::ostring<> -{ - static constexpr const char* name() {return "TargetCellInUTRAN";} - using parent_t = asn::ostring<>; - -}; - -/* -TargeteNBtoSource-eNBTransparentContainer ::= OCTET STRING -*/ - -struct TargeteNBtoSource_eNBTransparentContainer : asn::ostring<> -{ - static constexpr const char* name() {return "TargeteNBtoSource-eNBTransparentContainer";} - using parent_t = asn::ostring<>; - -}; - -/* -TimeToWait ::= ENUMERATED { - v1s, - v2s, - v5s, - v10s, - v20s, - v60s, - ... -} -*/ - -struct TimeToWait : asn::enumerated<6, 0, true> -{ - static constexpr const char* name() {return "TimeToWait";} - using parent_t = asn::enumerated<6, 0, true>; - typedef enum { - v1s - ,v2s - ,v5s - ,v10s - ,v20s - ,v60s - } index_t; - -}; - -/* -TraceDepth ::= ENUMERATED { - minimum, - medium, - maximum, - minimumWithoutVendorSpecificExtension, - mediumWithoutVendorSpecificExtension, - maximumWithoutVendorSpecificExtension, - ... -} -*/ - -struct TraceDepth : asn::enumerated<6, 0, true> -{ - static constexpr const char* name() {return "TraceDepth";} - using parent_t = asn::enumerated<6, 0, true>; - typedef enum { - minimum - ,medium - ,maximum - ,minimumWithoutVendorSpecificExtension - ,mediumWithoutVendorSpecificExtension - ,maximumWithoutVendorSpecificExtension - } index_t; - -}; - -/* -TraceCollectionEntityIPAddress ::= BIT STRING (SIZE(1..160, ...)) -*/ - -struct TraceCollectionEntityIPAddress : asn::bstring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "TraceCollectionEntityIPAddress";} - using parent_t = asn::bstring<>; - -}; - -/* -UEAppLayerMeasConfig-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - {ID id-serviceType CRITICALITY ignore EXTENSION ServiceType PRESENCE optional}, - ... -} -*/ - -struct UEAppLayerMeasConfig_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_serviceType() { set(id_serviceType); type=1;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_serviceType)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_serviceType);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_serviceType() { set(ignore); type=1;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - ServiceType& select_id_serviceType() { return set(1); } - ServiceType const* get_id_serviceType() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_serviceType()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(ServiceType)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_serviceType() { set(optional); type=1;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -UEAppLayerMeasConfig ::= SEQUENCE { - containerForAppLayerMeasConfig OCTET STRING (SIZE(1..1000)), - areaScopeOfQMC AreaScopeOfQMC, - iE-Extensions ProtocolExtensionContainer { {UEAppLayerMeasConfig-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct UEAppLayerMeasConfig : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "UEAppLayerMeasConfig";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct containerForAppLayerMeasConfig_t : asn::ostring<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "containerForAppLayerMeasConfig_t";} - using parent_t = asn::ostring<>; - - }; - - containerForAppLayerMeasConfig_t& ref_containerForAppLayerMeasConfig() {return containerForAppLayerMeasConfig;} - containerForAppLayerMeasConfig_t const& ref_containerForAppLayerMeasConfig() const {return containerForAppLayerMeasConfig;} - struct areaScopeOfQMC_t : AreaScopeOfQMC - { - static constexpr const char* name() {return "areaScopeOfQMC_t";} - using parent_t = AreaScopeOfQMC; - - }; - areaScopeOfQMC_t& ref_areaScopeOfQMC() {return areaScopeOfQMC;} - areaScopeOfQMC_t const& ref_areaScopeOfQMC() const {return areaScopeOfQMC;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(containerForAppLayerMeasConfig); - v(areaScopeOfQMC); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(containerForAppLayerMeasConfig); - v(areaScopeOfQMC); - v(iE_Extensions); - - }; - void clear() - { - containerForAppLayerMeasConfig.clear(); - areaScopeOfQMC.clear(); - iE_Extensions.clear(); - - }; - private: - containerForAppLayerMeasConfig_t containerForAppLayerMeasConfig; - areaScopeOfQMC_t areaScopeOfQMC; - iE_Extensions_t iE_Extensions; - -}; -/* -TraceActivation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-MDTConfiguration CRITICALITY ignore EXTENSION MDT-Configuration PRESENCE optional}| - { ID id-UEAppLayerMeasConfig CRITICALITY ignore EXTENSION UEAppLayerMeasConfig PRESENCE optional}, - ... -} -*/ - -struct TraceActivation_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_MDTConfiguration() { set(id_MDTConfiguration); type=1;} - void select_id_UEAppLayerMeasConfig() { set(id_UEAppLayerMeasConfig); type=2;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MDTConfiguration)) { type = 1; return true; } - else if(equal(id_UEAppLayerMeasConfig)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MDTConfiguration);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_UEAppLayerMeasConfig);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_MDTConfiguration() { set(ignore); type=1;} - void select_id_UEAppLayerMeasConfig() { set(ignore); type=2;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - MDT_Configuration& select_id_MDTConfiguration() { return set(1); } - MDT_Configuration const* get_id_MDTConfiguration() const { return get(1); } - UEAppLayerMeasConfig& select_id_UEAppLayerMeasConfig() { return set(2); } - UEAppLayerMeasConfig const* get_id_UEAppLayerMeasConfig() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MDTConfiguration()); return true; - case 2: v(select_id_UEAppLayerMeasConfig()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(MDT_Configuration)]; - char dummy2[sizeof(UEAppLayerMeasConfig)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_MDTConfiguration() { set(optional); type=1;} - void select_id_UEAppLayerMeasConfig() { set(optional); type=2;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -TraceActivation ::= SEQUENCE { - eUTRANTraceID EUTRANTraceID, - interfacesToTrace InterfacesToTrace, -traceDepth TraceDepth, -traceCollectionEntityIPAddress TraceCollectionEntityIPAddress, - iE-Extensions ProtocolExtensionContainer { {TraceActivation-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct TraceActivation : asn::sequence<5, 0, true, 1> -{ - static constexpr const char* name() {return "TraceActivation";} - using parent_t = asn::sequence<5, 0, true, 1>; - struct eUTRANTraceID_t : EUTRANTraceID - { - static constexpr const char* name() {return "eUTRANTraceID_t";} - using parent_t = EUTRANTraceID; - - }; - eUTRANTraceID_t& ref_eUTRANTraceID() {return eUTRANTraceID;} - eUTRANTraceID_t const& ref_eUTRANTraceID() const {return eUTRANTraceID;} - struct interfacesToTrace_t : InterfacesToTrace - { - static constexpr const char* name() {return "interfacesToTrace_t";} - using parent_t = InterfacesToTrace; - - }; - interfacesToTrace_t& ref_interfacesToTrace() {return interfacesToTrace;} - interfacesToTrace_t const& ref_interfacesToTrace() const {return interfacesToTrace;} - struct traceDepth_t : TraceDepth - { - static constexpr const char* name() {return "traceDepth_t";} - using parent_t = TraceDepth; - - }; - traceDepth_t& ref_traceDepth() {return traceDepth;} - traceDepth_t const& ref_traceDepth() const {return traceDepth;} - struct traceCollectionEntityIPAddress_t : TraceCollectionEntityIPAddress - { - static constexpr const char* name() {return "traceCollectionEntityIPAddress_t";} - using parent_t = TraceCollectionEntityIPAddress; - - }; - traceCollectionEntityIPAddress_t& ref_traceCollectionEntityIPAddress() {return traceCollectionEntityIPAddress;} - traceCollectionEntityIPAddress_t const& ref_traceCollectionEntityIPAddress() const {return traceCollectionEntityIPAddress;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(eUTRANTraceID); - v(interfacesToTrace); - v(traceDepth); - v(traceCollectionEntityIPAddress); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(eUTRANTraceID); - v(interfacesToTrace); - v(traceDepth); - v(traceCollectionEntityIPAddress); - v(iE_Extensions); - - }; - void clear() - { - eUTRANTraceID.clear(); - interfacesToTrace.clear(); - traceDepth.clear(); - traceCollectionEntityIPAddress.clear(); - iE_Extensions.clear(); - - }; - private: - eUTRANTraceID_t eUTRANTraceID; - interfacesToTrace_t interfacesToTrace; - traceDepth_t traceDepth; - traceCollectionEntityIPAddress_t traceCollectionEntityIPAddress; - iE_Extensions_t iE_Extensions; - -}; -/* -Tunnel-Information-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct Tunnel_Information_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -TunnelInformation ::= SEQUENCE { - transportLayerAddress TransportLayerAddress, - uDP-Port-Number Port-Number OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {Tunnel-Information-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct TunnelInformation : asn::sequence<3, 0, true, 2> -{ - static constexpr const char* name() {return "TunnelInformation";} - using parent_t = asn::sequence<3, 0, true, 2>; - struct transportLayerAddress_t : TransportLayerAddress - { - static constexpr const char* name() {return "transportLayerAddress_t";} - using parent_t = TransportLayerAddress; - - }; - transportLayerAddress_t& ref_transportLayerAddress() {return transportLayerAddress;} - transportLayerAddress_t const& ref_transportLayerAddress() const {return transportLayerAddress;} - struct uDP_Port_Number_t : Port_Number - { - static constexpr const char* name() {return "uDP_Port_Number_t";} - using parent_t = Port_Number; - static constexpr bool optional = true; - - }; - uDP_Port_Number_t& set_uDP_Port_Number() { uDP_Port_Number.setpresent(true); return uDP_Port_Number;} - uDP_Port_Number_t const* get_uDP_Port_Number() const {return uDP_Port_Number.is_valid() ? &uDP_Port_Number : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(transportLayerAddress); - v(uDP_Port_Number); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(transportLayerAddress); - v(uDP_Port_Number); - v(iE_Extensions); - - }; - void clear() - { - transportLayerAddress.clear(); - uDP_Port_Number.clear(); - iE_Extensions.clear(); - - }; - private: - transportLayerAddress_t transportLayerAddress; - uDP_Port_Number_t uDP_Port_Number; - iE_Extensions_t iE_Extensions; - -}; -/* -UE-ContextKeptIndicator ::= ENUMERATED { - true, - ... -} -*/ - -struct UE_ContextKeptIndicator : asn::enumerated<1, 0, true> -{ - static constexpr const char* name() {return "UE-ContextKeptIndicator";} - using parent_t = asn::enumerated<1, 0, true>; - typedef enum { - True - } index_t; - -}; - -/* -UE-HistoryInformation ::= SEQUENCE (SIZE(1..maxnoofCells)) OF LastVisitedCell-Item -*/ - -struct UE_HistoryInformation_elm : LastVisitedCell_Item -{ - static constexpr const char* name() {return "UE_HistoryInformation_elm";} - using parent_t = LastVisitedCell_Item; - -}; -struct UE_HistoryInformation : asn::sequenceof -{ - static constexpr const char* name() {return "UE-HistoryInformation";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -UE-HistoryInformationFromTheUE ::= OCTET STRING -*/ - -struct UE_HistoryInformationFromTheUE : asn::ostring<> -{ - static constexpr const char* name() {return "UE-HistoryInformationFromTheUE";} - using parent_t = asn::ostring<>; - -}; - -/* -UE-RLF-Report-Container::= OCTET STRING -*/ - -struct UE_RLF_Report_Container : asn::ostring<> -{ - static constexpr const char* name() {return "UE-RLF-Report-Container";} - using parent_t = asn::ostring<>; - -}; - -/* -UE-RLF-Report-Container-for-extended-bands ::= OCTET STRING -*/ - -struct UE_RLF_Report_Container_for_extended_bands : asn::ostring<> -{ - static constexpr const char* name() {return "UE-RLF-Report-Container-for-extended-bands";} - using parent_t = asn::ostring<>; - -}; - -/* -UE-S1AP-ID ::= INTEGER (0.. 4294967295) -*/ - -struct UE_S1AP_ID : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "UE-S1AP-ID";} - using parent_t = asn::integer<>; - -}; - -/* -UE-Sidelink-Aggregate-MaximumBitRate-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct UE_Sidelink_Aggregate_MaximumBitRate_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -UE-X2AP-ID ::= INTEGER (0..4095) -*/ - -struct UE_X2AP_ID : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "UE-X2AP-ID";} - using parent_t = asn::integer<>; - -}; - -/* -UE-X2AP-ID-Extension ::= INTEGER (0..4095, ...) -*/ - -struct UE_X2AP_ID_Extension : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "UE-X2AP-ID-Extension";} - using parent_t = asn::integer<>; - -}; - -/* -UEAggregate-MaximumBitrate-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-extended-uEaggregateMaximumBitRateDownlink CRITICALITY ignore EXTENSION ExtendedBitRate PRESENCE optional}| - { ID id-extended-uEaggregateMaximumBitRateUplink CRITICALITY ignore EXTENSION ExtendedBitRate PRESENCE optional}, - ... -} -*/ - -struct UEAggregate_MaximumBitrate_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_extended_uEaggregateMaximumBitRateDownlink() { set(id_extended_uEaggregateMaximumBitRateDownlink); type=1;} - void select_id_extended_uEaggregateMaximumBitRateUplink() { set(id_extended_uEaggregateMaximumBitRateUplink); type=2;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_extended_uEaggregateMaximumBitRateDownlink)) { type = 1; return true; } - else if(equal(id_extended_uEaggregateMaximumBitRateUplink)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_extended_uEaggregateMaximumBitRateDownlink);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_extended_uEaggregateMaximumBitRateUplink);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_extended_uEaggregateMaximumBitRateDownlink() { set(ignore); type=1;} - void select_id_extended_uEaggregateMaximumBitRateUplink() { set(ignore); type=2;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - ExtendedBitRate& select_id_extended_uEaggregateMaximumBitRateDownlink() { return set(1); } - ExtendedBitRate const* get_id_extended_uEaggregateMaximumBitRateDownlink() const { return get(1); } - ExtendedBitRate& select_id_extended_uEaggregateMaximumBitRateUplink() { return set(2); } - ExtendedBitRate const* get_id_extended_uEaggregateMaximumBitRateUplink() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_extended_uEaggregateMaximumBitRateDownlink()); return true; - case 2: v(select_id_extended_uEaggregateMaximumBitRateUplink()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(ExtendedBitRate)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_extended_uEaggregateMaximumBitRateDownlink() { set(optional); type=1;} - void select_id_extended_uEaggregateMaximumBitRateUplink() { set(optional); type=2;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -UEAggregateMaximumBitRate ::= SEQUENCE { - uEaggregateMaximumBitRateDownlink BitRate, - uEaggregateMaximumBitRateUplink BitRate, - iE-Extensions ProtocolExtensionContainer { {UEAggregate-MaximumBitrate-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct UEAggregateMaximumBitRate : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "UEAggregateMaximumBitRate";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct uEaggregateMaximumBitRateDownlink_t : BitRate - { - static constexpr const char* name() {return "uEaggregateMaximumBitRateDownlink_t";} - using parent_t = BitRate; - - }; - uEaggregateMaximumBitRateDownlink_t& ref_uEaggregateMaximumBitRateDownlink() {return uEaggregateMaximumBitRateDownlink;} - uEaggregateMaximumBitRateDownlink_t const& ref_uEaggregateMaximumBitRateDownlink() const {return uEaggregateMaximumBitRateDownlink;} - struct uEaggregateMaximumBitRateUplink_t : BitRate - { - static constexpr const char* name() {return "uEaggregateMaximumBitRateUplink_t";} - using parent_t = BitRate; - - }; - uEaggregateMaximumBitRateUplink_t& ref_uEaggregateMaximumBitRateUplink() {return uEaggregateMaximumBitRateUplink;} - uEaggregateMaximumBitRateUplink_t const& ref_uEaggregateMaximumBitRateUplink() const {return uEaggregateMaximumBitRateUplink;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(uEaggregateMaximumBitRateDownlink); - v(uEaggregateMaximumBitRateUplink); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(uEaggregateMaximumBitRateDownlink); - v(uEaggregateMaximumBitRateUplink); - v(iE_Extensions); - - }; - void clear() - { - uEaggregateMaximumBitRateDownlink.clear(); - uEaggregateMaximumBitRateUplink.clear(); - iE_Extensions.clear(); - - }; - private: - uEaggregateMaximumBitRateDownlink_t uEaggregateMaximumBitRateDownlink; - uEaggregateMaximumBitRateUplink_t uEaggregateMaximumBitRateUplink; - iE_Extensions_t iE_Extensions; - -}; -/* -UENRMeasurement-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct UENRMeasurement_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -UENRMeasurement ::= SEQUENCE { - uENRMeasurements RRCContainer, - iE-Extensions ProtocolExtensionContainer { {UENRMeasurement-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct UENRMeasurement : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "UENRMeasurement";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct uENRMeasurements_t : RRCContainer - { - static constexpr const char* name() {return "uENRMeasurements_t";} - using parent_t = RRCContainer; - - }; - uENRMeasurements_t& ref_uENRMeasurements() {return uENRMeasurements;} - uENRMeasurements_t const& ref_uENRMeasurements() const {return uENRMeasurements;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(uENRMeasurements); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(uENRMeasurements); - v(iE_Extensions); - - }; - void clear() - { - uENRMeasurements.clear(); - iE_Extensions.clear(); - - }; - private: - uENRMeasurements_t uENRMeasurements; - iE_Extensions_t iE_Extensions; - -}; -/* -UESecurityCapabilities-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct UESecurityCapabilities_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -UESecurityCapabilities ::= SEQUENCE { - encryptionAlgorithms EncryptionAlgorithms, - integrityProtectionAlgorithms IntegrityProtectionAlgorithms, - iE-Extensions ProtocolExtensionContainer { {UESecurityCapabilities-ExtIEs} } OPTIONAL, -... -} -*/ - -struct UESecurityCapabilities : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "UESecurityCapabilities";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct encryptionAlgorithms_t : EncryptionAlgorithms - { - static constexpr const char* name() {return "encryptionAlgorithms_t";} - using parent_t = EncryptionAlgorithms; - - }; - encryptionAlgorithms_t& ref_encryptionAlgorithms() {return encryptionAlgorithms;} - encryptionAlgorithms_t const& ref_encryptionAlgorithms() const {return encryptionAlgorithms;} - struct integrityProtectionAlgorithms_t : IntegrityProtectionAlgorithms - { - static constexpr const char* name() {return "integrityProtectionAlgorithms_t";} - using parent_t = IntegrityProtectionAlgorithms; - - }; - integrityProtectionAlgorithms_t& ref_integrityProtectionAlgorithms() {return integrityProtectionAlgorithms;} - integrityProtectionAlgorithms_t const& ref_integrityProtectionAlgorithms() const {return integrityProtectionAlgorithms;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(encryptionAlgorithms); - v(integrityProtectionAlgorithms); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(encryptionAlgorithms); - v(integrityProtectionAlgorithms); - v(iE_Extensions); - - }; - void clear() - { - encryptionAlgorithms.clear(); - integrityProtectionAlgorithms.clear(); - iE_Extensions.clear(); - - }; - private: - encryptionAlgorithms_t encryptionAlgorithms; - integrityProtectionAlgorithms_t integrityProtectionAlgorithms; - iE_Extensions_t iE_Extensions; - -}; -/* -UESidelinkAggregateMaximumBitRate ::= SEQUENCE { - uESidelinkAggregateMaximumBitRate BitRate, - iE-Extensions ProtocolExtensionContainer { {UE-Sidelink-Aggregate-MaximumBitRate-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct UESidelinkAggregateMaximumBitRate : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "UESidelinkAggregateMaximumBitRate";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct uESidelinkAggregateMaximumBitRate_t : BitRate - { - static constexpr const char* name() {return "uESidelinkAggregateMaximumBitRate_t";} - using parent_t = BitRate; - - }; - uESidelinkAggregateMaximumBitRate_t& ref_uESidelinkAggregateMaximumBitRate() {return uESidelinkAggregateMaximumBitRate;} - uESidelinkAggregateMaximumBitRate_t const& ref_uESidelinkAggregateMaximumBitRate() const {return uESidelinkAggregateMaximumBitRate;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(uESidelinkAggregateMaximumBitRate); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(uESidelinkAggregateMaximumBitRate); - v(iE_Extensions); - - }; - void clear() - { - uESidelinkAggregateMaximumBitRate.clear(); - iE_Extensions.clear(); - - }; - private: - uESidelinkAggregateMaximumBitRate_t uESidelinkAggregateMaximumBitRate; - iE_Extensions_t iE_Extensions; - -}; -/* -UEsToBeResetList-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct UEsToBeResetList_Item_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -UEsToBeResetList-Item::= SEQUENCE { - meNB-ID UE-X2AP-ID, - meNB-ID-ext UE-X2AP-ID-Extension OPTIONAL, - sgNB-ID SgNB-UE-X2AP-ID OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {UEsToBeResetList-Item-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct UEsToBeResetList_Item : asn::sequence<4, 0, true, 3> -{ - static constexpr const char* name() {return "UEsToBeResetList-Item";} - using parent_t = asn::sequence<4, 0, true, 3>; - struct meNB_ID_t : UE_X2AP_ID - { - static constexpr const char* name() {return "meNB_ID_t";} - using parent_t = UE_X2AP_ID; - - }; - meNB_ID_t& ref_meNB_ID() {return meNB_ID;} - meNB_ID_t const& ref_meNB_ID() const {return meNB_ID;} - struct meNB_ID_ext_t : UE_X2AP_ID_Extension - { - static constexpr const char* name() {return "meNB_ID_ext_t";} - using parent_t = UE_X2AP_ID_Extension; - static constexpr bool optional = true; - - }; - meNB_ID_ext_t& set_meNB_ID_ext() { meNB_ID_ext.setpresent(true); return meNB_ID_ext;} - meNB_ID_ext_t const* get_meNB_ID_ext() const {return meNB_ID_ext.is_valid() ? &meNB_ID_ext : nullptr;} - struct sgNB_ID_t : SgNB_UE_X2AP_ID - { - static constexpr const char* name() {return "sgNB_ID_t";} - using parent_t = SgNB_UE_X2AP_ID; - static constexpr bool optional = true; - - }; - sgNB_ID_t& set_sgNB_ID() { sgNB_ID.setpresent(true); return sgNB_ID;} - sgNB_ID_t const* get_sgNB_ID() const {return sgNB_ID.is_valid() ? &sgNB_ID : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(meNB_ID); - v(meNB_ID_ext); - v(sgNB_ID); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(meNB_ID); - v(meNB_ID_ext); - v(sgNB_ID); - v(iE_Extensions); - - }; - void clear() - { - meNB_ID.clear(); - meNB_ID_ext.clear(); - sgNB_ID.clear(); - iE_Extensions.clear(); - - }; - private: - meNB_ID_t meNB_ID; - meNB_ID_ext_t meNB_ID_ext; - sgNB_ID_t sgNB_ID; - iE_Extensions_t iE_Extensions; - -}; -/* -UEsToBeResetList ::= SEQUENCE (SIZE (1.. maxUEsinengNBDU)) OF UEsToBeResetList-Item -*/ - -struct UEsToBeResetList_elm : UEsToBeResetList_Item -{ - static constexpr const char* name() {return "UEsToBeResetList_elm";} - using parent_t = UEsToBeResetList_Item; - -}; -struct UEsToBeResetList : asn::sequenceof -{ - static constexpr const char* name() {return "UEsToBeResetList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -UL-HighInterferenceIndication ::= BIT STRING (SIZE(1..110, ...)) -*/ - -struct UL_HighInterferenceIndication : asn::bstring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "UL-HighInterferenceIndication";} - using parent_t = asn::bstring<>; - -}; - -/* -UL-HighInterferenceIndicationInfo-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct UL_HighInterferenceIndicationInfo_Item_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -UL-HighInterferenceIndicationInfo-Item ::= SEQUENCE { - target-Cell-ID ECGI, - ul-interferenceindication UL-HighInterferenceIndication, - iE-Extensions ProtocolExtensionContainer { {UL-HighInterferenceIndicationInfo-Item-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct UL_HighInterferenceIndicationInfo_Item : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "UL-HighInterferenceIndicationInfo-Item";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct target_Cell_ID_t : ECGI - { - static constexpr const char* name() {return "target_Cell_ID_t";} - using parent_t = ECGI; - - }; - target_Cell_ID_t& ref_target_Cell_ID() {return target_Cell_ID;} - target_Cell_ID_t const& ref_target_Cell_ID() const {return target_Cell_ID;} - struct ul_interferenceindication_t : UL_HighInterferenceIndication - { - static constexpr const char* name() {return "ul_interferenceindication_t";} - using parent_t = UL_HighInterferenceIndication; - - }; - ul_interferenceindication_t& ref_ul_interferenceindication() {return ul_interferenceindication;} - ul_interferenceindication_t const& ref_ul_interferenceindication() const {return ul_interferenceindication;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(target_Cell_ID); - v(ul_interferenceindication); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(target_Cell_ID); - v(ul_interferenceindication); - v(iE_Extensions); - - }; - void clear() - { - target_Cell_ID.clear(); - ul_interferenceindication.clear(); - iE_Extensions.clear(); - - }; - private: - target_Cell_ID_t target_Cell_ID; - ul_interferenceindication_t ul_interferenceindication; - iE_Extensions_t iE_Extensions; - -}; -/* -UL-HighInterferenceIndicationInfo ::= SEQUENCE (SIZE(1..maxCellineNB)) OF UL-HighInterferenceIndicationInfo-Item -*/ - -struct UL_HighInterferenceIndicationInfo_elm : UL_HighInterferenceIndicationInfo_Item -{ - static constexpr const char* name() {return "UL_HighInterferenceIndicationInfo_elm";} - using parent_t = UL_HighInterferenceIndicationInfo_Item; - -}; -struct UL_HighInterferenceIndicationInfo : asn::sequenceof -{ - static constexpr const char* name() {return "UL-HighInterferenceIndicationInfo";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -UL-UE-Configuration::= ENUMERATED { no-data, shared, only, ... } -*/ - -struct UL_UE_Configuration : asn::enumerated<3, 0, true> -{ - static constexpr const char* name() {return "UL-UE-Configuration";} - using parent_t = asn::enumerated<3, 0, true>; - typedef enum { - no_data - ,shared - ,only - } index_t; - -}; - -/* -ULConfiguration-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct ULConfiguration_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ULConfiguration::= SEQUENCE { - uL-PDCP UL-UE-Configuration, - iE-Extensions ProtocolExtensionContainer { {ULConfiguration-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct ULConfiguration : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "ULConfiguration";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct uL_PDCP_t : UL_UE_Configuration - { - static constexpr const char* name() {return "uL_PDCP_t";} - using parent_t = UL_UE_Configuration; - - }; - uL_PDCP_t& ref_uL_PDCP() {return uL_PDCP;} - uL_PDCP_t const& ref_uL_PDCP() const {return uL_PDCP;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(uL_PDCP); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(uL_PDCP); - v(iE_Extensions); - - }; - void clear() - { - uL_PDCP.clear(); - iE_Extensions.clear(); - - }; - private: - uL_PDCP_t uL_PDCP; - iE_Extensions_t iE_Extensions; - -}; -/* -VehicleUE ::= ENUMERATED { - authorized, - not-authorized, - ... -} -*/ - -struct VehicleUE : asn::enumerated<2, 0, true> -{ - static constexpr const char* name() {return "VehicleUE";} - using parent_t = asn::enumerated<2, 0, true>; - typedef enum { - authorized - ,not_authorized - } index_t; - -}; - -/* -V2XServicesAuthorized-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct V2XServicesAuthorized_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -V2XServicesAuthorized ::= SEQUENCE { - vehicleUE VehicleUE OPTIONAL, -pedestrianUE PedestrianUE OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {V2XServicesAuthorized-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct V2XServicesAuthorized : asn::sequence<3, 0, true, 3> -{ - static constexpr const char* name() {return "V2XServicesAuthorized";} - using parent_t = asn::sequence<3, 0, true, 3>; - struct vehicleUE_t : VehicleUE - { - static constexpr const char* name() {return "vehicleUE_t";} - using parent_t = VehicleUE; - static constexpr bool optional = true; - - }; - vehicleUE_t& set_vehicleUE() { vehicleUE.setpresent(true); return vehicleUE;} - vehicleUE_t const* get_vehicleUE() const {return vehicleUE.is_valid() ? &vehicleUE : nullptr;} - struct pedestrianUE_t : PedestrianUE - { - static constexpr const char* name() {return "pedestrianUE_t";} - using parent_t = PedestrianUE; - static constexpr bool optional = true; - - }; - pedestrianUE_t& set_pedestrianUE() { pedestrianUE.setpresent(true); return pedestrianUE;} - pedestrianUE_t const* get_pedestrianUE() const {return pedestrianUE.is_valid() ? &pedestrianUE : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(vehicleUE); - v(pedestrianUE); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(vehicleUE); - v(pedestrianUE); - v(iE_Extensions); - - }; - void clear() - { - vehicleUE.clear(); - pedestrianUE.clear(); - iE_Extensions.clear(); - - }; - private: - vehicleUE_t vehicleUE; - pedestrianUE_t pedestrianUE; - iE_Extensions_t iE_Extensions; - -}; -/* -WT-UE-XwAP-ID ::= OCTET STRING (SIZE (3)) -*/ - -struct WT_UE_XwAP_ID : asn::ostring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "WT-UE-XwAP-ID";} - using parent_t = asn::ostring<>; - -}; - -/* -WTID-Type1 ::= SEQUENCE { - pLMN-Identity PLMN-Identity, - shortWTID BIT STRING (SIZE(24)), - ... -} -*/ - -struct WTID_Type1 : asn::sequence<2, 0, true, 0> -{ - static constexpr const char* name() {return "WTID-Type1";} - using parent_t = asn::sequence<2, 0, true, 0>; - struct pLMN_Identity_t : PLMN_Identity - { - static constexpr const char* name() {return "pLMN_Identity_t";} - using parent_t = PLMN_Identity; - - }; - pLMN_Identity_t& ref_pLMN_Identity() {return pLMN_Identity;} - pLMN_Identity_t const& ref_pLMN_Identity() const {return pLMN_Identity;} - struct shortWTID_t : asn::bstring<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "shortWTID_t";} - using parent_t = asn::bstring<>; - - }; - - shortWTID_t& ref_shortWTID() {return shortWTID;} - shortWTID_t const& ref_shortWTID() const {return shortWTID;} - template void decode(V& v) - { - v(pLMN_Identity); - v(shortWTID); - - }; - template void encode(V& v) const - { - v(pLMN_Identity); - v(shortWTID); - - }; - void clear() - { - pLMN_Identity.clear(); - shortWTID.clear(); - - }; - private: - pLMN_Identity_t pLMN_Identity; - shortWTID_t shortWTID; - -}; -/* -WTID-Long-Type2 ::= BIT STRING (SIZE(48)) -*/ - -struct WTID_Long_Type2 : asn::bstring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "WTID-Long-Type2";} - using parent_t = asn::bstring<>; - -}; - -/* -WTID ::= CHOICE { - wTID-Type1 WTID-Type1, - wTID-Type2 WTID-Long-Type2, - ... -} -*/ - -struct WTID : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "WTID";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~WTID() {clear();} - struct wTID_Type1_t : WTID_Type1 - { - static constexpr const char* name() {return "wTID_Type1_t";} - using parent_t = WTID_Type1; - - }; - struct wTID_Type2_t : WTID_Long_Type2 - { - static constexpr const char* name() {return "wTID_Type2_t";} - using parent_t = WTID_Long_Type2; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - wTID_Type1_t& select_wTID_Type1() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - wTID_Type1_t const* get_wTID_Type1() const { if(get_index() == 1) { return &var.as();} return nullptr; } - wTID_Type2_t& select_wTID_Type2() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - wTID_Type2_t const* get_wTID_Type2() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(wTID_Type1_t)]; - char dummy2[sizeof(wTID_Type2_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -X2BenefitValue ::= INTEGER (1..8, ...) -*/ - -struct X2BenefitValue : asn::integer<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "X2BenefitValue";} - using parent_t = asn::integer<>; - -}; diff --git a/e2sim/previous/src/ASN1/generated/X2AP-PDU-Contents.hpp b/e2sim/previous/src/ASN1/generated/X2AP-PDU-Contents.hpp deleted file mode 100644 index dd85f97..0000000 --- a/e2sim/previous/src/ASN1/generated/X2AP-PDU-Contents.hpp +++ /dev/null @@ -1,68476 +0,0 @@ -/***************************************************************************** -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -#pragma once - -#include "asn/asn.hpp" -static_assert(ASN_API_VERSION_MAJOR == 5, "re-generate the ASN parser's code using 'make regen-asn' (do not use -j option)"); - -#include "X2AP-IEs.hpp" -#include "X2AP-Containers.hpp" -#include "X2AP-Constants.hpp" - -/* -ActivatedCellList-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct ActivatedCellList_Item_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ActivatedCellList-Item::= SEQUENCE { - ecgi ECGI, - iE-Extensions ProtocolExtensionContainer { {ActivatedCellList-Item-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct ActivatedCellList_Item : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "ActivatedCellList-Item";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct ecgi_t : ECGI - { - static constexpr const char* name() {return "ecgi_t";} - using parent_t = ECGI; - - }; - ecgi_t& ref_ecgi() {return ecgi;} - ecgi_t const& ref_ecgi() const {return ecgi;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(ecgi); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(ecgi); - v(iE_Extensions); - - }; - void clear() - { - ecgi.clear(); - iE_Extensions.clear(); - - }; - private: - ecgi_t ecgi; - iE_Extensions_t iE_Extensions; - -}; -/* -ActivatedCellList ::= SEQUENCE (SIZE (1..maxCellineNB)) OF ActivatedCellList-Item -*/ - -struct ActivatedCellList_elm : ActivatedCellList_Item -{ - static constexpr const char* name() {return "ActivatedCellList_elm";} - using parent_t = ActivatedCellList_Item; - -}; -struct ActivatedCellList : asn::sequenceof -{ - static constexpr const char* name() {return "ActivatedCellList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -ActivatedNRCellList-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct ActivatedNRCellList_Item_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ActivatedNRCellList-Item::= SEQUENCE { - nrCellID NRCGI, - iE-Extensions ProtocolExtensionContainer { {ActivatedNRCellList-Item-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct ActivatedNRCellList_Item : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "ActivatedNRCellList-Item";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct nrCellID_t : NRCGI - { - static constexpr const char* name() {return "nrCellID_t";} - using parent_t = NRCGI; - - }; - nrCellID_t& ref_nrCellID() {return nrCellID;} - nrCellID_t const& ref_nrCellID() const {return nrCellID;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(nrCellID); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(nrCellID); - v(iE_Extensions); - - }; - void clear() - { - nrCellID.clear(); - iE_Extensions.clear(); - - }; - private: - nrCellID_t nrCellID; - iE_Extensions_t iE_Extensions; - -}; -/* -ActivatedNRCellList ::= SEQUENCE (SIZE (1.. maxCellinengNB)) OF ActivatedNRCellList-Item -*/ - -struct ActivatedNRCellList_elm : ActivatedNRCellList_Item -{ - static constexpr const char* name() {return "ActivatedNRCellList_elm";} - using parent_t = ActivatedNRCellList_Item; - -}; -struct ActivatedNRCellList : asn::sequenceof -{ - static constexpr const char* name() {return "ActivatedNRCellList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -CellActivationFailure-IEs X2AP-PROTOCOL-IES ::= { - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, - ... -} -*/ - -struct CellActivationFailure_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_Cause() { set(id_Cause); type=1;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=2;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_Cause)) { type = 1; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_Cause() { set(ignore); type=1;} - void select_id_CriticalityDiagnostics() { set(ignore); type=2;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - Cause& select_id_Cause() { return set(1); } - Cause const* get_id_Cause() const { return get(1); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(2); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_Cause()); return true; - case 2: v(select_id_CriticalityDiagnostics()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(CriticalityDiagnostics)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_Cause() { set(mandatory); type=1;} - void select_id_CriticalityDiagnostics() { set(optional); type=2;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -CellActivationFailure ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{CellActivationFailure-IEs}}, - ... -} -*/ - -struct CellActivationFailure : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "CellActivationFailure";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -ServedCellsToActivate-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct ServedCellsToActivate_Item_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ServedCellsToActivate-Item::= SEQUENCE { - ecgi ECGI, - iE-Extensions ProtocolExtensionContainer { {ServedCellsToActivate-Item-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct ServedCellsToActivate_Item : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "ServedCellsToActivate-Item";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct ecgi_t : ECGI - { - static constexpr const char* name() {return "ecgi_t";} - using parent_t = ECGI; - - }; - ecgi_t& ref_ecgi() {return ecgi;} - ecgi_t const& ref_ecgi() const {return ecgi;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(ecgi); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(ecgi); - v(iE_Extensions); - - }; - void clear() - { - ecgi.clear(); - iE_Extensions.clear(); - - }; - private: - ecgi_t ecgi; - iE_Extensions_t iE_Extensions; - -}; -/* -ServedCellsToActivate::= SEQUENCE (SIZE (1..maxCellineNB)) OF ServedCellsToActivate-Item -*/ - -struct ServedCellsToActivate_elm : ServedCellsToActivate_Item -{ - static constexpr const char* name() {return "ServedCellsToActivate_elm";} - using parent_t = ServedCellsToActivate_Item; - -}; -struct ServedCellsToActivate : asn::sequenceof -{ - static constexpr const char* name() {return "ServedCellsToActivate";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -CellActivationRequest-IEs X2AP-PROTOCOL-IES ::= { - { ID id-ServedCellsToActivate CRITICALITY reject TYPE ServedCellsToActivate PRESENCE mandatory}, - ... -} -*/ - -struct CellActivationRequest_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_ServedCellsToActivate() { set(id_ServedCellsToActivate); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_ServedCellsToActivate)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_ServedCellsToActivate);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_ServedCellsToActivate() { set(reject); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - ServedCellsToActivate& select_id_ServedCellsToActivate() { return set(1); } - ServedCellsToActivate const* get_id_ServedCellsToActivate() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_ServedCellsToActivate()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(ServedCellsToActivate)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_ServedCellsToActivate() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -CellActivationRequest ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{CellActivationRequest-IEs}}, - ... -} -*/ - -struct CellActivationRequest : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "CellActivationRequest";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -CellActivationResponse-IEs X2AP-PROTOCOL-IES ::= { - { ID id-ActivatedCellList CRITICALITY ignore TYPE ActivatedCellList PRESENCE mandatory}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, - ... -} -*/ - -struct CellActivationResponse_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_ActivatedCellList() { set(id_ActivatedCellList); type=1;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=2;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_ActivatedCellList)) { type = 1; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_ActivatedCellList);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_ActivatedCellList() { set(ignore); type=1;} - void select_id_CriticalityDiagnostics() { set(ignore); type=2;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - ActivatedCellList& select_id_ActivatedCellList() { return set(1); } - ActivatedCellList const* get_id_ActivatedCellList() const { return get(1); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(2); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_ActivatedCellList()); return true; - case 2: v(select_id_CriticalityDiagnostics()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(ActivatedCellList)]; - char dummy2[sizeof(CriticalityDiagnostics)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_ActivatedCellList() { set(mandatory); type=1;} - void select_id_CriticalityDiagnostics() { set(optional); type=2;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -CellActivationResponse ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{CellActivationResponse-IEs}}, - ... -} -*/ - -struct CellActivationResponse : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "CellActivationResponse";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -Limited-list-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct Limited_list_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -Limited-list ::= SEQUENCE (SIZE (1..maxCellinengNB)) OF SEQUENCE { - nrCellID NRCGI, - iE-Extensions ProtocolExtensionContainer { {Limited-list-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct Limited_list_elm : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "Limited_list_elm";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct nrCellID_t : NRCGI - { - static constexpr const char* name() {return "nrCellID_t";} - using parent_t = NRCGI; - - }; - nrCellID_t& ref_nrCellID() {return nrCellID;} - nrCellID_t const& ref_nrCellID() const {return nrCellID;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(nrCellID); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(nrCellID); - v(iE_Extensions); - - }; - void clear() - { - nrCellID.clear(); - iE_Extensions.clear(); - - }; - private: - nrCellID_t nrCellID; - iE_Extensions_t iE_Extensions; - -}; -struct Limited_list : asn::sequenceof -{ - static constexpr const char* name() {return "Limited-list";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -CellAssistanceInformation ::= CHOICE { - limited-list Limited-list, - full-list ENUMERATED {allServedNRcells, ...}, - ... -} -*/ - -struct CellAssistanceInformation : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "CellAssistanceInformation";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~CellAssistanceInformation() {clear();} - struct limited_list_t : Limited_list - { - static constexpr const char* name() {return "limited_list_t";} - using parent_t = Limited_list; - - }; - struct full_list_t : asn::enumerated<1, 0, true> - { - static constexpr const char* name() {return "full_list_t";} - using parent_t = asn::enumerated<1, 0, true>; - typedef enum { - allServedNRcells - } index_t; - - }; - - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - limited_list_t& select_limited_list() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - limited_list_t const* get_limited_list() const { if(get_index() == 1) { return &var.as();} return nullptr; } - full_list_t& select_full_list() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - full_list_t const* get_full_list() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(limited_list_t)]; - char dummy2[sizeof(full_list_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -CellInformation-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { -{ ID id-ABSInformation CRITICALITY ignore EXTENSION ABSInformation PRESENCE optional }| -{ ID id-InvokeIndication CRITICALITY ignore EXTENSION InvokeIndication PRESENCE optional }| -{ ID id-IntendedULDLConfiguration CRITICALITY ignore EXTENSION SubframeAssignment PRESENCE optional }| -{ ID id-ExtendedULInterferenceOverloadInfo CRITICALITY ignore EXTENSION ExtendedULInterferenceOverloadInfo PRESENCE optional }| -{ ID id-CoMPInformation CRITICALITY ignore EXTENSION CoMPInformation PRESENCE optional }| -{ ID id-DynamicDLTransmissionInformation CRITICALITY ignore EXTENSION DynamicDLTransmissionInformation PRESENCE optional }, - ... -} -*/ - -struct CellInformation_Item_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_ABSInformation() { set(id_ABSInformation); type=1;} - void select_id_InvokeIndication() { set(id_InvokeIndication); type=2;} - void select_id_IntendedULDLConfiguration() { set(id_IntendedULDLConfiguration); type=3;} - void select_id_ExtendedULInterferenceOverloadInfo() { set(id_ExtendedULInterferenceOverloadInfo); type=4;} - void select_id_CoMPInformation() { set(id_CoMPInformation); type=5;} - void select_id_DynamicDLTransmissionInformation() { set(id_DynamicDLTransmissionInformation); type=6;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_ABSInformation)) { type = 1; return true; } - else if(equal(id_InvokeIndication)) { type = 2; return true; } - else if(equal(id_IntendedULDLConfiguration)) { type = 3; return true; } - else if(equal(id_ExtendedULInterferenceOverloadInfo)) { type = 4; return true; } - else if(equal(id_CoMPInformation)) { type = 5; return true; } - else if(equal(id_DynamicDLTransmissionInformation)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_ABSInformation);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_InvokeIndication);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_IntendedULDLConfiguration);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_ExtendedULInterferenceOverloadInfo);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_CoMPInformation);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_DynamicDLTransmissionInformation);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_ABSInformation() { set(ignore); type=1;} - void select_id_InvokeIndication() { set(ignore); type=2;} - void select_id_IntendedULDLConfiguration() { set(ignore); type=3;} - void select_id_ExtendedULInterferenceOverloadInfo() { set(ignore); type=4;} - void select_id_CoMPInformation() { set(ignore); type=5;} - void select_id_DynamicDLTransmissionInformation() { set(ignore); type=6;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else if(equal(ignore)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(ignore);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - ABSInformation& select_id_ABSInformation() { return set(1); } - ABSInformation const* get_id_ABSInformation() const { return get(1); } - InvokeIndication& select_id_InvokeIndication() { return set(2); } - InvokeIndication const* get_id_InvokeIndication() const { return get(2); } - SubframeAssignment& select_id_IntendedULDLConfiguration() { return set(3); } - SubframeAssignment const* get_id_IntendedULDLConfiguration() const { return get(3); } - ExtendedULInterferenceOverloadInfo& select_id_ExtendedULInterferenceOverloadInfo() { return set(4); } - ExtendedULInterferenceOverloadInfo const* get_id_ExtendedULInterferenceOverloadInfo() const { return get(4); } - CoMPInformation& select_id_CoMPInformation() { return set(5); } - CoMPInformation const* get_id_CoMPInformation() const { return get(5); } - DynamicDLTransmissionInformation& select_id_DynamicDLTransmissionInformation() { return set(6); } - DynamicDLTransmissionInformation const* get_id_DynamicDLTransmissionInformation() const { return get(6); } - bool is_unknown() const { return type == 7; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_ABSInformation()); return true; - case 2: v(select_id_InvokeIndication()); return true; - case 3: v(select_id_IntendedULDLConfiguration()); return true; - case 4: v(select_id_ExtendedULInterferenceOverloadInfo()); return true; - case 5: v(select_id_CoMPInformation()); return true; - case 6: v(select_id_DynamicDLTransmissionInformation()); return true; - case 7: if(type != 7) {clear(); asn::base::set();} type = 7; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(ABSInformation)]; - char dummy2[sizeof(CoMPInformation)]; - char dummy3[sizeof(DynamicDLTransmissionInformation)]; - char dummy4[sizeof(ExtendedULInterferenceOverloadInfo)]; - char dummy5[sizeof(InvokeIndication)]; - char dummy6[sizeof(SubframeAssignment)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_ABSInformation() { set(optional); type=1;} - void select_id_InvokeIndication() { set(optional); type=2;} - void select_id_IntendedULDLConfiguration() { set(optional); type=3;} - void select_id_ExtendedULInterferenceOverloadInfo() { set(optional); type=4;} - void select_id_CoMPInformation() { set(optional); type=5;} - void select_id_DynamicDLTransmissionInformation() { set(optional); type=6;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -CellInformation-Item ::= SEQUENCE { - cell-ID ECGI, - ul-InterferenceOverloadIndication UL-InterferenceOverloadIndication OPTIONAL, - ul-HighInterferenceIndicationInfo UL-HighInterferenceIndicationInfo OPTIONAL, - relativeNarrowbandTxPower RelativeNarrowbandTxPower OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {CellInformation-Item-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct CellInformation_Item : asn::sequence<5, 0, true, 4> -{ - static constexpr const char* name() {return "CellInformation-Item";} - using parent_t = asn::sequence<5, 0, true, 4>; - struct cell_ID_t : ECGI - { - static constexpr const char* name() {return "cell_ID_t";} - using parent_t = ECGI; - - }; - cell_ID_t& ref_cell_ID() {return cell_ID;} - cell_ID_t const& ref_cell_ID() const {return cell_ID;} - struct ul_InterferenceOverloadIndication_t : UL_InterferenceOverloadIndication - { - static constexpr const char* name() {return "ul_InterferenceOverloadIndication_t";} - using parent_t = UL_InterferenceOverloadIndication; - static constexpr bool optional = true; - - }; - ul_InterferenceOverloadIndication_t& set_ul_InterferenceOverloadIndication() { ul_InterferenceOverloadIndication.setpresent(true); return ul_InterferenceOverloadIndication;} - ul_InterferenceOverloadIndication_t const* get_ul_InterferenceOverloadIndication() const {return ul_InterferenceOverloadIndication.is_valid() ? &ul_InterferenceOverloadIndication : nullptr;} - struct ul_HighInterferenceIndicationInfo_t : UL_HighInterferenceIndicationInfo - { - static constexpr const char* name() {return "ul_HighInterferenceIndicationInfo_t";} - using parent_t = UL_HighInterferenceIndicationInfo; - static constexpr bool optional = true; - - }; - ul_HighInterferenceIndicationInfo_t& set_ul_HighInterferenceIndicationInfo() { ul_HighInterferenceIndicationInfo.setpresent(true); return ul_HighInterferenceIndicationInfo;} - ul_HighInterferenceIndicationInfo_t const* get_ul_HighInterferenceIndicationInfo() const {return ul_HighInterferenceIndicationInfo.is_valid() ? &ul_HighInterferenceIndicationInfo : nullptr;} - struct relativeNarrowbandTxPower_t : RelativeNarrowbandTxPower - { - static constexpr const char* name() {return "relativeNarrowbandTxPower_t";} - using parent_t = RelativeNarrowbandTxPower; - static constexpr bool optional = true; - - }; - relativeNarrowbandTxPower_t& set_relativeNarrowbandTxPower() { relativeNarrowbandTxPower.setpresent(true); return relativeNarrowbandTxPower;} - relativeNarrowbandTxPower_t const* get_relativeNarrowbandTxPower() const {return relativeNarrowbandTxPower.is_valid() ? &relativeNarrowbandTxPower : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(cell_ID); - v(ul_InterferenceOverloadIndication); - v(ul_HighInterferenceIndicationInfo); - v(relativeNarrowbandTxPower); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(cell_ID); - v(ul_InterferenceOverloadIndication); - v(ul_HighInterferenceIndicationInfo); - v(relativeNarrowbandTxPower); - v(iE_Extensions); - - }; - void clear() - { - cell_ID.clear(); - ul_InterferenceOverloadIndication.clear(); - ul_HighInterferenceIndicationInfo.clear(); - relativeNarrowbandTxPower.clear(); - iE_Extensions.clear(); - - }; - private: - cell_ID_t cell_ID; - ul_InterferenceOverloadIndication_t ul_InterferenceOverloadIndication; - ul_HighInterferenceIndicationInfo_t ul_HighInterferenceIndicationInfo; - relativeNarrowbandTxPower_t relativeNarrowbandTxPower; - iE_Extensions_t iE_Extensions; - -}; -/* -CellInformation-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-CellInformation-Item CRITICALITY ignore TYPE CellInformation-Item PRESENCE mandatory } -} -*/ - -struct CellInformation_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_CellInformation_Item() { set(id_CellInformation_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_CellInformation_Item)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_CellInformation_Item);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_CellInformation_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - CellInformation_Item& select_id_CellInformation_Item() { return set(1); } - CellInformation_Item const* get_id_CellInformation_Item() const { return get(1); } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_CellInformation_Item()); return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CellInformation_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_CellInformation_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -CellInformation-List ::= SEQUENCE (SIZE (1..maxCellineNB)) OF ProtocolIE-Single-Container { {CellInformation-ItemIEs} } -*/ - -struct CellInformation_List_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "CellInformation_List_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct CellInformation_List : asn::sequenceof -{ - static constexpr const char* name() {return "CellInformation-List";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -CellMeasurementResult-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-CompositeAvailableCapacityGroup CRITICALITY ignore EXTENSION CompositeAvailableCapacityGroup PRESENCE optional}| - { ID id-ABS-Status CRITICALITY ignore EXTENSION ABS-Status PRESENCE optional}| - { ID id-RSRPMRList CRITICALITY ignore EXTENSION RSRPMRList PRESENCE optional}| - { ID id-CSIReportList CRITICALITY ignore EXTENSION CSIReportList PRESENCE optional}| - { ID id-CellReportingIndicator CRITICALITY ignore EXTENSION CellReportingIndicator PRESENCE optional}, - ... -} -*/ - -struct CellMeasurementResult_Item_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_CompositeAvailableCapacityGroup() { set(id_CompositeAvailableCapacityGroup); type=1;} - void select_id_ABS_Status() { set(id_ABS_Status); type=2;} - void select_id_RSRPMRList() { set(id_RSRPMRList); type=3;} - void select_id_CSIReportList() { set(id_CSIReportList); type=4;} - void select_id_CellReportingIndicator() { set(id_CellReportingIndicator); type=5;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_CompositeAvailableCapacityGroup)) { type = 1; return true; } - else if(equal(id_ABS_Status)) { type = 2; return true; } - else if(equal(id_RSRPMRList)) { type = 3; return true; } - else if(equal(id_CSIReportList)) { type = 4; return true; } - else if(equal(id_CellReportingIndicator)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_CompositeAvailableCapacityGroup);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_ABS_Status);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_RSRPMRList);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_CSIReportList);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_CellReportingIndicator);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_CompositeAvailableCapacityGroup() { set(ignore); type=1;} - void select_id_ABS_Status() { set(ignore); type=2;} - void select_id_RSRPMRList() { set(ignore); type=3;} - void select_id_CSIReportList() { set(ignore); type=4;} - void select_id_CellReportingIndicator() { set(ignore); type=5;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - CompositeAvailableCapacityGroup& select_id_CompositeAvailableCapacityGroup() { return set(1); } - CompositeAvailableCapacityGroup const* get_id_CompositeAvailableCapacityGroup() const { return get(1); } - ABS_Status& select_id_ABS_Status() { return set(2); } - ABS_Status const* get_id_ABS_Status() const { return get(2); } - RSRPMRList& select_id_RSRPMRList() { return set(3); } - RSRPMRList const* get_id_RSRPMRList() const { return get(3); } - CSIReportList& select_id_CSIReportList() { return set(4); } - CSIReportList const* get_id_CSIReportList() const { return get(4); } - CellReportingIndicator& select_id_CellReportingIndicator() { return set(5); } - CellReportingIndicator const* get_id_CellReportingIndicator() const { return get(5); } - bool is_unknown() const { return type == 6; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_CompositeAvailableCapacityGroup()); return true; - case 2: v(select_id_ABS_Status()); return true; - case 3: v(select_id_RSRPMRList()); return true; - case 4: v(select_id_CSIReportList()); return true; - case 5: v(select_id_CellReportingIndicator()); return true; - case 6: if(type != 6) {clear(); asn::base::set();} type = 6; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(ABS_Status)]; - char dummy2[sizeof(CSIReportList)]; - char dummy3[sizeof(CellReportingIndicator)]; - char dummy4[sizeof(CompositeAvailableCapacityGroup)]; - char dummy5[sizeof(RSRPMRList)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_CompositeAvailableCapacityGroup() { set(optional); type=1;} - void select_id_ABS_Status() { set(optional); type=2;} - void select_id_RSRPMRList() { set(optional); type=3;} - void select_id_CSIReportList() { set(optional); type=4;} - void select_id_CellReportingIndicator() { set(optional); type=5;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -CellMeasurementResult-Item ::= SEQUENCE { - cell-ID ECGI, - hWLoadIndicator HWLoadIndicator OPTIONAL, - s1TNLLoadIndicator S1TNLLoadIndicator OPTIONAL, - radioResourceStatus RadioResourceStatus OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {CellMeasurementResult-Item-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct CellMeasurementResult_Item : asn::sequence<5, 0, true, 4> -{ - static constexpr const char* name() {return "CellMeasurementResult-Item";} - using parent_t = asn::sequence<5, 0, true, 4>; - struct cell_ID_t : ECGI - { - static constexpr const char* name() {return "cell_ID_t";} - using parent_t = ECGI; - - }; - cell_ID_t& ref_cell_ID() {return cell_ID;} - cell_ID_t const& ref_cell_ID() const {return cell_ID;} - struct hWLoadIndicator_t : HWLoadIndicator - { - static constexpr const char* name() {return "hWLoadIndicator_t";} - using parent_t = HWLoadIndicator; - static constexpr bool optional = true; - - }; - hWLoadIndicator_t& set_hWLoadIndicator() { hWLoadIndicator.setpresent(true); return hWLoadIndicator;} - hWLoadIndicator_t const* get_hWLoadIndicator() const {return hWLoadIndicator.is_valid() ? &hWLoadIndicator : nullptr;} - struct s1TNLLoadIndicator_t : S1TNLLoadIndicator - { - static constexpr const char* name() {return "s1TNLLoadIndicator_t";} - using parent_t = S1TNLLoadIndicator; - static constexpr bool optional = true; - - }; - s1TNLLoadIndicator_t& set_s1TNLLoadIndicator() { s1TNLLoadIndicator.setpresent(true); return s1TNLLoadIndicator;} - s1TNLLoadIndicator_t const* get_s1TNLLoadIndicator() const {return s1TNLLoadIndicator.is_valid() ? &s1TNLLoadIndicator : nullptr;} - struct radioResourceStatus_t : RadioResourceStatus - { - static constexpr const char* name() {return "radioResourceStatus_t";} - using parent_t = RadioResourceStatus; - static constexpr bool optional = true; - - }; - radioResourceStatus_t& set_radioResourceStatus() { radioResourceStatus.setpresent(true); return radioResourceStatus;} - radioResourceStatus_t const* get_radioResourceStatus() const {return radioResourceStatus.is_valid() ? &radioResourceStatus : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(cell_ID); - v(hWLoadIndicator); - v(s1TNLLoadIndicator); - v(radioResourceStatus); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(cell_ID); - v(hWLoadIndicator); - v(s1TNLLoadIndicator); - v(radioResourceStatus); - v(iE_Extensions); - - }; - void clear() - { - cell_ID.clear(); - hWLoadIndicator.clear(); - s1TNLLoadIndicator.clear(); - radioResourceStatus.clear(); - iE_Extensions.clear(); - - }; - private: - cell_ID_t cell_ID; - hWLoadIndicator_t hWLoadIndicator; - s1TNLLoadIndicator_t s1TNLLoadIndicator; - radioResourceStatus_t radioResourceStatus; - iE_Extensions_t iE_Extensions; - -}; -/* -CellMeasurementResult-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-CellMeasurementResult-Item CRITICALITY ignore TYPE CellMeasurementResult-Item PRESENCE mandatory} -} -*/ - -struct CellMeasurementResult_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_CellMeasurementResult_Item() { set(id_CellMeasurementResult_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_CellMeasurementResult_Item)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_CellMeasurementResult_Item);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_CellMeasurementResult_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - CellMeasurementResult_Item& select_id_CellMeasurementResult_Item() { return set(1); } - CellMeasurementResult_Item const* get_id_CellMeasurementResult_Item() const { return get(1); } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_CellMeasurementResult_Item()); return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CellMeasurementResult_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_CellMeasurementResult_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -CellMeasurementResult-List ::= SEQUENCE (SIZE (1..maxCellineNB)) OF ProtocolIE-Single-Container { {CellMeasurementResult-ItemIEs} } -*/ - -struct CellMeasurementResult_List_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "CellMeasurementResult_List_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct CellMeasurementResult_List : asn::sequenceof -{ - static constexpr const char* name() {return "CellMeasurementResult-List";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -CellToReport-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct CellToReport_Item_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -CellToReport-Item ::= SEQUENCE { - cell-ID ECGI, - iE-Extensions ProtocolExtensionContainer { {CellToReport-Item-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct CellToReport_Item : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "CellToReport-Item";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct cell_ID_t : ECGI - { - static constexpr const char* name() {return "cell_ID_t";} - using parent_t = ECGI; - - }; - cell_ID_t& ref_cell_ID() {return cell_ID;} - cell_ID_t const& ref_cell_ID() const {return cell_ID;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(cell_ID); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(cell_ID); - v(iE_Extensions); - - }; - void clear() - { - cell_ID.clear(); - iE_Extensions.clear(); - - }; - private: - cell_ID_t cell_ID; - iE_Extensions_t iE_Extensions; - -}; -/* -CellToReport-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-CellToReport-Item CRITICALITY ignore TYPE CellToReport-Item PRESENCE mandatory} -} -*/ - -struct CellToReport_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_CellToReport_Item() { set(id_CellToReport_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_CellToReport_Item)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_CellToReport_Item);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_CellToReport_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - CellToReport_Item& select_id_CellToReport_Item() { return set(1); } - CellToReport_Item const* get_id_CellToReport_Item() const { return get(1); } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_CellToReport_Item()); return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CellToReport_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_CellToReport_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -CellToReport-List ::= SEQUENCE (SIZE (1..maxCellineNB)) OF ProtocolIE-Single-Container { {CellToReport-ItemIEs} } -*/ - -struct CellToReport_List_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "CellToReport_List_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct CellToReport_List : asn::sequenceof -{ - static constexpr const char* name() {return "CellToReport-List";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -MeasurementFailureCause-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct MeasurementFailureCause_Item_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -MeasurementFailureCause-Item ::= SEQUENCE { - measurementFailedReportCharacteristics ReportCharacteristics, - cause Cause, - iE-Extensions ProtocolExtensionContainer { {MeasurementFailureCause-Item-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct MeasurementFailureCause_Item : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "MeasurementFailureCause-Item";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct measurementFailedReportCharacteristics_t : ReportCharacteristics - { - static constexpr const char* name() {return "measurementFailedReportCharacteristics_t";} - using parent_t = ReportCharacteristics; - - }; - measurementFailedReportCharacteristics_t& ref_measurementFailedReportCharacteristics() {return measurementFailedReportCharacteristics;} - measurementFailedReportCharacteristics_t const& ref_measurementFailedReportCharacteristics() const {return measurementFailedReportCharacteristics;} - struct cause_t : Cause - { - static constexpr const char* name() {return "cause_t";} - using parent_t = Cause; - - }; - cause_t& ref_cause() {return cause;} - cause_t const& ref_cause() const {return cause;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(measurementFailedReportCharacteristics); - v(cause); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(measurementFailedReportCharacteristics); - v(cause); - v(iE_Extensions); - - }; - void clear() - { - measurementFailedReportCharacteristics.clear(); - cause.clear(); - iE_Extensions.clear(); - - }; - private: - measurementFailedReportCharacteristics_t measurementFailedReportCharacteristics; - cause_t cause; - iE_Extensions_t iE_Extensions; - -}; -/* -MeasurementFailureCause-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-MeasurementFailureCause-Item CRITICALITY ignore TYPE MeasurementFailureCause-Item PRESENCE mandatory} -} -*/ - -struct MeasurementFailureCause_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_MeasurementFailureCause_Item() { set(id_MeasurementFailureCause_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeasurementFailureCause_Item)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeasurementFailureCause_Item);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_MeasurementFailureCause_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - MeasurementFailureCause_Item& select_id_MeasurementFailureCause_Item() { return set(1); } - MeasurementFailureCause_Item const* get_id_MeasurementFailureCause_Item() const { return get(1); } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeasurementFailureCause_Item()); return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(MeasurementFailureCause_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_MeasurementFailureCause_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -MeasurementFailureCause-List ::= SEQUENCE (SIZE (1..maxFailedMeasObjects)) OF ProtocolIE-Single-Container { {MeasurementFailureCause-ItemIEs} } -*/ - -struct MeasurementFailureCause_List_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "MeasurementFailureCause_List_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct MeasurementFailureCause_List : asn::sequenceof -{ - static constexpr const char* name() {return "MeasurementFailureCause-List";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -CompleteFailureCauseInformation-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct CompleteFailureCauseInformation_Item_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -CompleteFailureCauseInformation-Item ::= SEQUENCE { - cell-ID ECGI, - measurementFailureCause-List MeasurementFailureCause-List, - iE-Extensions ProtocolExtensionContainer { {CompleteFailureCauseInformation-Item-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct CompleteFailureCauseInformation_Item : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "CompleteFailureCauseInformation-Item";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct cell_ID_t : ECGI - { - static constexpr const char* name() {return "cell_ID_t";} - using parent_t = ECGI; - - }; - cell_ID_t& ref_cell_ID() {return cell_ID;} - cell_ID_t const& ref_cell_ID() const {return cell_ID;} - struct measurementFailureCause_List_t : MeasurementFailureCause_List - { - static constexpr const char* name() {return "measurementFailureCause_List_t";} - using parent_t = MeasurementFailureCause_List; - - }; - measurementFailureCause_List_t& ref_measurementFailureCause_List() {return measurementFailureCause_List;} - measurementFailureCause_List_t const& ref_measurementFailureCause_List() const {return measurementFailureCause_List;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(cell_ID); - v(measurementFailureCause_List); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(cell_ID); - v(measurementFailureCause_List); - v(iE_Extensions); - - }; - void clear() - { - cell_ID.clear(); - measurementFailureCause_List.clear(); - iE_Extensions.clear(); - - }; - private: - cell_ID_t cell_ID; - measurementFailureCause_List_t measurementFailureCause_List; - iE_Extensions_t iE_Extensions; - -}; -/* -CompleteFailureCauseInformation-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-CompleteFailureCauseInformation-Item CRITICALITY ignore TYPE CompleteFailureCauseInformation-Item PRESENCE mandatory} -} -*/ - -struct CompleteFailureCauseInformation_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_CompleteFailureCauseInformation_Item() { set(id_CompleteFailureCauseInformation_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_CompleteFailureCauseInformation_Item)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_CompleteFailureCauseInformation_Item);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_CompleteFailureCauseInformation_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - CompleteFailureCauseInformation_Item& select_id_CompleteFailureCauseInformation_Item() { return set(1); } - CompleteFailureCauseInformation_Item const* get_id_CompleteFailureCauseInformation_Item() const { return get(1); } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_CompleteFailureCauseInformation_Item()); return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CompleteFailureCauseInformation_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_CompleteFailureCauseInformation_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -CompleteFailureCauseInformation-List ::= SEQUENCE (SIZE (1..maxCellineNB)) OF ProtocolIE-Single-Container { {CompleteFailureCauseInformation-ItemIEs} } -*/ - -struct CompleteFailureCauseInformation_List_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "CompleteFailureCauseInformation_List_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct CompleteFailureCauseInformation_List : asn::sequenceof -{ - static constexpr const char* name() {return "CompleteFailureCauseInformation-List";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-DataForwardingAddress-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_DataForwardingAddress_ItemExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-DataForwardingAddress-Item ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - dl-GTPtunnelEndpoint GTPtunnelEndpoint, - iE-Extensions ProtocolExtensionContainer { {E-RABs-DataForwardingAddress-ItemExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_DataForwardingAddress_Item : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-DataForwardingAddress-Item";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct dl_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "dl_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - - }; - dl_GTPtunnelEndpoint_t& ref_dl_GTPtunnelEndpoint() {return dl_GTPtunnelEndpoint;} - dl_GTPtunnelEndpoint_t const& ref_dl_GTPtunnelEndpoint() const {return dl_GTPtunnelEndpoint;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(dl_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(dl_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - dl_GTPtunnelEndpoint.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - dl_GTPtunnelEndpoint_t dl_GTPtunnelEndpoint; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-DataForwardingAddress-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-DataForwardingAddress-Item CRITICALITY ignore TYPE E-RABs-DataForwardingAddress-Item PRESENCE mandatory}, - ... -} -*/ - -struct E_RABs_DataForwardingAddress_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_DataForwardingAddress_Item() { set(id_E_RABs_DataForwardingAddress_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_DataForwardingAddress_Item)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_DataForwardingAddress_Item);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_DataForwardingAddress_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_DataForwardingAddress_Item& select_id_E_RABs_DataForwardingAddress_Item() { return set(1); } - E_RABs_DataForwardingAddress_Item const* get_id_E_RABs_DataForwardingAddress_Item() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_DataForwardingAddress_Item()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_DataForwardingAddress_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_DataForwardingAddress_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-DataForwardingAddress-List ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-DataForwardingAddress-ItemIEs} } -*/ - -struct E_RABs_DataForwardingAddress_List_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_DataForwardingAddress_List_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_DataForwardingAddress_List : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-DataForwardingAddress-List";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -DataForwardingAddressIndication-IEs X2AP-PROTOCOL-IES ::= { - { ID id-New-eNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional }| - { ID id-Old-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-Old-eNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional }| - { ID id-E-RABs-DataForwardingAddress-List CRITICALITY ignore TYPE E-RABs-DataForwardingAddress-List PRESENCE mandatory}, - ... -} -*/ - -struct DataForwardingAddressIndication_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_New_eNB_UE_X2AP_ID_Extension() { set(id_New_eNB_UE_X2AP_ID_Extension); type=1;} - void select_id_Old_eNB_UE_X2AP_ID() { set(id_Old_eNB_UE_X2AP_ID); type=2;} - void select_id_Old_eNB_UE_X2AP_ID_Extension() { set(id_Old_eNB_UE_X2AP_ID_Extension); type=3;} - void select_id_E_RABs_DataForwardingAddress_List() { set(id_E_RABs_DataForwardingAddress_List); type=4;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_New_eNB_UE_X2AP_ID_Extension)) { type = 1; return true; } - else if(equal(id_Old_eNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_Old_eNB_UE_X2AP_ID_Extension)) { type = 3; return true; } - else if(equal(id_E_RABs_DataForwardingAddress_List)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_New_eNB_UE_X2AP_ID_Extension);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_Old_eNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_Old_eNB_UE_X2AP_ID_Extension);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_E_RABs_DataForwardingAddress_List);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_New_eNB_UE_X2AP_ID_Extension() { set(ignore); type=1;} - void select_id_Old_eNB_UE_X2AP_ID() { set(ignore); type=2;} - void select_id_Old_eNB_UE_X2AP_ID_Extension() { set(ignore); type=3;} - void select_id_E_RABs_DataForwardingAddress_List() { set(ignore); type=4;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID_Extension& select_id_New_eNB_UE_X2AP_ID_Extension() { return set(1); } - UE_X2AP_ID_Extension const* get_id_New_eNB_UE_X2AP_ID_Extension() const { return get(1); } - UE_X2AP_ID& select_id_Old_eNB_UE_X2AP_ID() { return set(2); } - UE_X2AP_ID const* get_id_Old_eNB_UE_X2AP_ID() const { return get(2); } - UE_X2AP_ID_Extension& select_id_Old_eNB_UE_X2AP_ID_Extension() { return set(3); } - UE_X2AP_ID_Extension const* get_id_Old_eNB_UE_X2AP_ID_Extension() const { return get(3); } - E_RABs_DataForwardingAddress_List& select_id_E_RABs_DataForwardingAddress_List() { return set(4); } - E_RABs_DataForwardingAddress_List const* get_id_E_RABs_DataForwardingAddress_List() const { return get(4); } - bool is_unknown() const { return type == 5; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_New_eNB_UE_X2AP_ID_Extension()); return true; - case 2: v(select_id_Old_eNB_UE_X2AP_ID()); return true; - case 3: v(select_id_Old_eNB_UE_X2AP_ID_Extension()); return true; - case 4: v(select_id_E_RABs_DataForwardingAddress_List()); return true; - case 5: if(type != 5) {clear(); asn::base::set();} type = 5; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_DataForwardingAddress_List)]; - char dummy2[sizeof(UE_X2AP_ID)]; - char dummy3[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_New_eNB_UE_X2AP_ID_Extension() { set(optional); type=1;} - void select_id_Old_eNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_Old_eNB_UE_X2AP_ID_Extension() { set(optional); type=3;} - void select_id_E_RABs_DataForwardingAddress_List() { set(mandatory); type=4;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else if(equal(mandatory)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(mandatory);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -DataForwardingAddressIndication ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{DataForwardingAddressIndication-IEs}}, - ... -} -*/ - -struct DataForwardingAddressIndication : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "DataForwardingAddressIndication";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -E-RABs-Admitted-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_Admitted_Item_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-Item ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - uL-GTP-TunnelEndpoint GTPtunnelEndpoint OPTIONAL, - dL-GTP-TunnelEndpoint GTPtunnelEndpoint OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-Item-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_Admitted_Item : asn::sequence<4, 0, true, 3> -{ - static constexpr const char* name() {return "E-RABs-Admitted-Item";} - using parent_t = asn::sequence<4, 0, true, 3>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct uL_GTP_TunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "uL_GTP_TunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - uL_GTP_TunnelEndpoint_t& set_uL_GTP_TunnelEndpoint() { uL_GTP_TunnelEndpoint.setpresent(true); return uL_GTP_TunnelEndpoint;} - uL_GTP_TunnelEndpoint_t const* get_uL_GTP_TunnelEndpoint() const {return uL_GTP_TunnelEndpoint.is_valid() ? &uL_GTP_TunnelEndpoint : nullptr;} - struct dL_GTP_TunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "dL_GTP_TunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - dL_GTP_TunnelEndpoint_t& set_dL_GTP_TunnelEndpoint() { dL_GTP_TunnelEndpoint.setpresent(true); return dL_GTP_TunnelEndpoint;} - dL_GTP_TunnelEndpoint_t const* get_dL_GTP_TunnelEndpoint() const {return dL_GTP_TunnelEndpoint.is_valid() ? &dL_GTP_TunnelEndpoint : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(uL_GTP_TunnelEndpoint); - v(dL_GTP_TunnelEndpoint); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(uL_GTP_TunnelEndpoint); - v(dL_GTP_TunnelEndpoint); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - uL_GTP_TunnelEndpoint.clear(); - dL_GTP_TunnelEndpoint.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - uL_GTP_TunnelEndpoint_t uL_GTP_TunnelEndpoint; - dL_GTP_TunnelEndpoint_t dL_GTP_TunnelEndpoint; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-Admitted-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-Admitted-Item CRITICALITY ignore TYPE E-RABs-Admitted-Item PRESENCE mandatory } -} -*/ - -struct E_RABs_Admitted_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_E_RABs_Admitted_Item() { set(id_E_RABs_Admitted_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_Admitted_Item)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_Admitted_Item);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_E_RABs_Admitted_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_Admitted_Item& select_id_E_RABs_Admitted_Item() { return set(1); } - E_RABs_Admitted_Item const* get_id_E_RABs_Admitted_Item() const { return get(1); } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_Admitted_Item()); return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_Admitted_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_E_RABs_Admitted_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-List ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-Admitted-ItemIEs} } -*/ - -struct E_RABs_Admitted_List_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_Admitted_List_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_Admitted_List : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-Admitted-List";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-Admitted-ToBeAdded-Item-SCG-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_Admitted_ToBeAdded_Item_SCG_BearerExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-ToBeAdded-Item-SCG-Bearer ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - s1-DL-GTPtunnelEndpoint GTPtunnelEndpoint, - dL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, - uL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeAdded-Item-SCG-BearerExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_Admitted_ToBeAdded_Item_SCG_Bearer : asn::sequence<5, 0, true, 3> -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeAdded-Item-SCG-Bearer";} - using parent_t = asn::sequence<5, 0, true, 3>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct s1_DL_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "s1_DL_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - - }; - s1_DL_GTPtunnelEndpoint_t& ref_s1_DL_GTPtunnelEndpoint() {return s1_DL_GTPtunnelEndpoint;} - s1_DL_GTPtunnelEndpoint_t const& ref_s1_DL_GTPtunnelEndpoint() const {return s1_DL_GTPtunnelEndpoint;} - struct dL_Forwarding_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "dL_Forwarding_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - dL_Forwarding_GTPtunnelEndpoint_t& set_dL_Forwarding_GTPtunnelEndpoint() { dL_Forwarding_GTPtunnelEndpoint.setpresent(true); return dL_Forwarding_GTPtunnelEndpoint;} - dL_Forwarding_GTPtunnelEndpoint_t const* get_dL_Forwarding_GTPtunnelEndpoint() const {return dL_Forwarding_GTPtunnelEndpoint.is_valid() ? &dL_Forwarding_GTPtunnelEndpoint : nullptr;} - struct uL_Forwarding_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "uL_Forwarding_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - uL_Forwarding_GTPtunnelEndpoint_t& set_uL_Forwarding_GTPtunnelEndpoint() { uL_Forwarding_GTPtunnelEndpoint.setpresent(true); return uL_Forwarding_GTPtunnelEndpoint;} - uL_Forwarding_GTPtunnelEndpoint_t const* get_uL_Forwarding_GTPtunnelEndpoint() const {return uL_Forwarding_GTPtunnelEndpoint.is_valid() ? &uL_Forwarding_GTPtunnelEndpoint : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(s1_DL_GTPtunnelEndpoint); - v(dL_Forwarding_GTPtunnelEndpoint); - v(uL_Forwarding_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(s1_DL_GTPtunnelEndpoint); - v(dL_Forwarding_GTPtunnelEndpoint); - v(uL_Forwarding_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - s1_DL_GTPtunnelEndpoint.clear(); - dL_Forwarding_GTPtunnelEndpoint.clear(); - uL_Forwarding_GTPtunnelEndpoint.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - s1_DL_GTPtunnelEndpoint_t s1_DL_GTPtunnelEndpoint; - dL_Forwarding_GTPtunnelEndpoint_t dL_Forwarding_GTPtunnelEndpoint; - uL_Forwarding_GTPtunnelEndpoint_t uL_Forwarding_GTPtunnelEndpoint; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-Admitted-ToBeAdded-Item-Split-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_Admitted_ToBeAdded_Item_Split_BearerExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-ToBeAdded-Item-Split-Bearer ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - seNB-GTPtunnelEndpoint GTPtunnelEndpoint, - iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeAdded-Item-Split-BearerExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_Admitted_ToBeAdded_Item_Split_Bearer : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeAdded-Item-Split-Bearer";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct seNB_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "seNB_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - - }; - seNB_GTPtunnelEndpoint_t& ref_seNB_GTPtunnelEndpoint() {return seNB_GTPtunnelEndpoint;} - seNB_GTPtunnelEndpoint_t const& ref_seNB_GTPtunnelEndpoint() const {return seNB_GTPtunnelEndpoint;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(seNB_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(seNB_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - seNB_GTPtunnelEndpoint.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - seNB_GTPtunnelEndpoint_t seNB_GTPtunnelEndpoint; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-Admitted-ToBeAdded-Item ::= CHOICE { - sCG-Bearer E-RABs-Admitted-ToBeAdded-Item-SCG-Bearer, - split-Bearer E-RABs-Admitted-ToBeAdded-Item-Split-Bearer, - ... -} -*/ - -struct E_RABs_Admitted_ToBeAdded_Item : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeAdded-Item";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~E_RABs_Admitted_ToBeAdded_Item() {clear();} - struct sCG_Bearer_t : E_RABs_Admitted_ToBeAdded_Item_SCG_Bearer - { - static constexpr const char* name() {return "sCG_Bearer_t";} - using parent_t = E_RABs_Admitted_ToBeAdded_Item_SCG_Bearer; - - }; - struct split_Bearer_t : E_RABs_Admitted_ToBeAdded_Item_Split_Bearer - { - static constexpr const char* name() {return "split_Bearer_t";} - using parent_t = E_RABs_Admitted_ToBeAdded_Item_Split_Bearer; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - sCG_Bearer_t& select_sCG_Bearer() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - sCG_Bearer_t const* get_sCG_Bearer() const { if(get_index() == 1) { return &var.as();} return nullptr; } - split_Bearer_t& select_split_Bearer() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - split_Bearer_t const* get_split_Bearer() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(sCG_Bearer_t)]; - char dummy2[sizeof(split_Bearer_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -E-RABs-Admitted-ToBeAdded-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-Admitted-ToBeAdded-Item CRITICALITY ignore TYPE E-RABs-Admitted-ToBeAdded-Item PRESENCE mandatory} -} -*/ - -struct E_RABs_Admitted_ToBeAdded_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_E_RABs_Admitted_ToBeAdded_Item() { set(id_E_RABs_Admitted_ToBeAdded_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_Admitted_ToBeAdded_Item)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_Admitted_ToBeAdded_Item);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_E_RABs_Admitted_ToBeAdded_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_Admitted_ToBeAdded_Item& select_id_E_RABs_Admitted_ToBeAdded_Item() { return set(1); } - E_RABs_Admitted_ToBeAdded_Item const* get_id_E_RABs_Admitted_ToBeAdded_Item() const { return get(1); } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_Admitted_ToBeAdded_Item()); return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_Admitted_ToBeAdded_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_E_RABs_Admitted_ToBeAdded_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-ToBeAdded-List ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-Admitted-ToBeAdded-ItemIEs} } -*/ - -struct E_RABs_Admitted_ToBeAdded_List_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_Admitted_ToBeAdded_List_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_Admitted_ToBeAdded_List : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeAdded-List";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-Admitted-ToBeAdded-ModAckItem-SCG-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_BearerExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-ToBeAdded-ModAckItem-SCG-Bearer ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - s1-DL-GTPtunnelEndpoint GTPtunnelEndpoint, - dL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, - uL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeAdded-ModAckItem-SCG-BearerExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_Bearer : asn::sequence<5, 0, true, 3> -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeAdded-ModAckItem-SCG-Bearer";} - using parent_t = asn::sequence<5, 0, true, 3>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct s1_DL_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "s1_DL_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - - }; - s1_DL_GTPtunnelEndpoint_t& ref_s1_DL_GTPtunnelEndpoint() {return s1_DL_GTPtunnelEndpoint;} - s1_DL_GTPtunnelEndpoint_t const& ref_s1_DL_GTPtunnelEndpoint() const {return s1_DL_GTPtunnelEndpoint;} - struct dL_Forwarding_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "dL_Forwarding_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - dL_Forwarding_GTPtunnelEndpoint_t& set_dL_Forwarding_GTPtunnelEndpoint() { dL_Forwarding_GTPtunnelEndpoint.setpresent(true); return dL_Forwarding_GTPtunnelEndpoint;} - dL_Forwarding_GTPtunnelEndpoint_t const* get_dL_Forwarding_GTPtunnelEndpoint() const {return dL_Forwarding_GTPtunnelEndpoint.is_valid() ? &dL_Forwarding_GTPtunnelEndpoint : nullptr;} - struct uL_Forwarding_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "uL_Forwarding_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - uL_Forwarding_GTPtunnelEndpoint_t& set_uL_Forwarding_GTPtunnelEndpoint() { uL_Forwarding_GTPtunnelEndpoint.setpresent(true); return uL_Forwarding_GTPtunnelEndpoint;} - uL_Forwarding_GTPtunnelEndpoint_t const* get_uL_Forwarding_GTPtunnelEndpoint() const {return uL_Forwarding_GTPtunnelEndpoint.is_valid() ? &uL_Forwarding_GTPtunnelEndpoint : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(s1_DL_GTPtunnelEndpoint); - v(dL_Forwarding_GTPtunnelEndpoint); - v(uL_Forwarding_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(s1_DL_GTPtunnelEndpoint); - v(dL_Forwarding_GTPtunnelEndpoint); - v(uL_Forwarding_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - s1_DL_GTPtunnelEndpoint.clear(); - dL_Forwarding_GTPtunnelEndpoint.clear(); - uL_Forwarding_GTPtunnelEndpoint.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - s1_DL_GTPtunnelEndpoint_t s1_DL_GTPtunnelEndpoint; - dL_Forwarding_GTPtunnelEndpoint_t dL_Forwarding_GTPtunnelEndpoint; - uL_Forwarding_GTPtunnelEndpoint_t uL_Forwarding_GTPtunnelEndpoint; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-Admitted-ToBeAdded-ModAckItem-Split-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_Admitted_ToBeAdded_ModAckItem_Split_BearerExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-ToBeAdded-ModAckItem-Split-Bearer ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - seNB-GTPtunnelEndpoint GTPtunnelEndpoint, - iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeAdded-ModAckItem-Split-BearerExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_Admitted_ToBeAdded_ModAckItem_Split_Bearer : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeAdded-ModAckItem-Split-Bearer";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct seNB_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "seNB_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - - }; - seNB_GTPtunnelEndpoint_t& ref_seNB_GTPtunnelEndpoint() {return seNB_GTPtunnelEndpoint;} - seNB_GTPtunnelEndpoint_t const& ref_seNB_GTPtunnelEndpoint() const {return seNB_GTPtunnelEndpoint;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(seNB_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(seNB_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - seNB_GTPtunnelEndpoint.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - seNB_GTPtunnelEndpoint_t seNB_GTPtunnelEndpoint; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-Admitted-ToBeAdded-ModAckItem ::= CHOICE { - sCG-Bearer E-RABs-Admitted-ToBeAdded-ModAckItem-SCG-Bearer, - split-Bearer E-RABs-Admitted-ToBeAdded-ModAckItem-Split-Bearer, - ... -} -*/ - -struct E_RABs_Admitted_ToBeAdded_ModAckItem : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeAdded-ModAckItem";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~E_RABs_Admitted_ToBeAdded_ModAckItem() {clear();} - struct sCG_Bearer_t : E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_Bearer - { - static constexpr const char* name() {return "sCG_Bearer_t";} - using parent_t = E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_Bearer; - - }; - struct split_Bearer_t : E_RABs_Admitted_ToBeAdded_ModAckItem_Split_Bearer - { - static constexpr const char* name() {return "split_Bearer_t";} - using parent_t = E_RABs_Admitted_ToBeAdded_ModAckItem_Split_Bearer; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - sCG_Bearer_t& select_sCG_Bearer() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - sCG_Bearer_t const* get_sCG_Bearer() const { if(get_index() == 1) { return &var.as();} return nullptr; } - split_Bearer_t& select_split_Bearer() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - split_Bearer_t const* get_split_Bearer() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(sCG_Bearer_t)]; - char dummy2[sizeof(split_Bearer_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -E-RABs-Admitted-ToBeAdded-ModAckItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-Admitted-ToBeAdded-ModAckItem CRITICALITY ignore TYPE E-RABs-Admitted-ToBeAdded-ModAckItem PRESENCE mandatory} -} -*/ - -struct E_RABs_Admitted_ToBeAdded_ModAckItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_E_RABs_Admitted_ToBeAdded_ModAckItem() { set(id_E_RABs_Admitted_ToBeAdded_ModAckItem); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_Admitted_ToBeAdded_ModAckItem)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_Admitted_ToBeAdded_ModAckItem);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_E_RABs_Admitted_ToBeAdded_ModAckItem() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_Admitted_ToBeAdded_ModAckItem& select_id_E_RABs_Admitted_ToBeAdded_ModAckItem() { return set(1); } - E_RABs_Admitted_ToBeAdded_ModAckItem const* get_id_E_RABs_Admitted_ToBeAdded_ModAckItem() const { return get(1); } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_Admitted_ToBeAdded_ModAckItem()); return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_Admitted_ToBeAdded_ModAckItem)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_E_RABs_Admitted_ToBeAdded_ModAckItem() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-ToBeAdded-ModAckList ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-Admitted-ToBeAdded-ModAckItemIEs} } -*/ - -struct E_RABs_Admitted_ToBeAdded_ModAckList_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_Admitted_ToBeAdded_ModAckList_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_Admitted_ToBeAdded_ModAckList : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeAdded-ModAckList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-uLpDCPSnLength CRITICALITY ignore EXTENSION PDCPSnLength PRESENCE optional}| - { ID id-dLPDCPSnLength CRITICALITY ignore EXTENSION PDCPSnLength PRESENCE optional}, - ... -} -*/ - -struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresentExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_uLpDCPSnLength() { set(id_uLpDCPSnLength); type=1;} - void select_id_dLPDCPSnLength() { set(id_dLPDCPSnLength); type=2;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_uLpDCPSnLength)) { type = 1; return true; } - else if(equal(id_dLPDCPSnLength)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_uLpDCPSnLength);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_dLPDCPSnLength);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_uLpDCPSnLength() { set(ignore); type=1;} - void select_id_dLPDCPSnLength() { set(ignore); type=2;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - PDCPSnLength& select_id_uLpDCPSnLength() { return set(1); } - PDCPSnLength const* get_id_uLpDCPSnLength() const { return get(1); } - PDCPSnLength& select_id_dLPDCPSnLength() { return set(2); } - PDCPSnLength const* get_id_dLPDCPSnLength() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_uLpDCPSnLength()); return true; - case 2: v(select_id_dLPDCPSnLength()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(PDCPSnLength)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_uLpDCPSnLength() { set(optional); type=1;} - void select_id_dLPDCPSnLength() { set(optional); type=2;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPpresent ::= SEQUENCE { - s1-DL-GTPtunnelEndpoint GTPtunnelEndpoint, - sgNB-UL-GTP-TEIDatPDCP GTPtunnelEndpoint OPTIONAL, --- This IE shall be present if MCG resource IE in the the EN-DC Resource Configuration IE is set to “present” -- - rlc-Mode RLCMode OPTIONAL, --- This IE shall be present if MCG resource IE in the the EN-DC Resource Configuration IE is set to “present” -- - dL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, - uL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, - mCG-E-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters OPTIONAL, --- This IE shall be present if MCG resource and SCG resource IEs in the the EN-DC Resource Configuration IE are set to “present” and the GBR QoS Information IE is present in the Requested MCG E-RAB Level QoS Parameters IE -- - uL-Configuration ULConfiguration OPTIONAL, --- This IE shall be present if MCG resource and SCG resources IEs in the the EN-DC Resource Configuration IE are set to “present” -- - iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPpresentExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresent : asn::sequence<8, 0, true, 7> -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPpresent";} - using parent_t = asn::sequence<8, 0, true, 7>; - struct s1_DL_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "s1_DL_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - - }; - s1_DL_GTPtunnelEndpoint_t& ref_s1_DL_GTPtunnelEndpoint() {return s1_DL_GTPtunnelEndpoint;} - s1_DL_GTPtunnelEndpoint_t const& ref_s1_DL_GTPtunnelEndpoint() const {return s1_DL_GTPtunnelEndpoint;} - struct sgNB_UL_GTP_TEIDatPDCP_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "sgNB_UL_GTP_TEIDatPDCP_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - sgNB_UL_GTP_TEIDatPDCP_t& set_sgNB_UL_GTP_TEIDatPDCP() { sgNB_UL_GTP_TEIDatPDCP.setpresent(true); return sgNB_UL_GTP_TEIDatPDCP;} - sgNB_UL_GTP_TEIDatPDCP_t const* get_sgNB_UL_GTP_TEIDatPDCP() const {return sgNB_UL_GTP_TEIDatPDCP.is_valid() ? &sgNB_UL_GTP_TEIDatPDCP : nullptr;} - struct rlc_Mode_t : RLCMode - { - static constexpr const char* name() {return "rlc_Mode_t";} - using parent_t = RLCMode; - static constexpr bool optional = true; - - }; - rlc_Mode_t& set_rlc_Mode() { rlc_Mode.setpresent(true); return rlc_Mode;} - rlc_Mode_t const* get_rlc_Mode() const {return rlc_Mode.is_valid() ? &rlc_Mode : nullptr;} - struct dL_Forwarding_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "dL_Forwarding_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - dL_Forwarding_GTPtunnelEndpoint_t& set_dL_Forwarding_GTPtunnelEndpoint() { dL_Forwarding_GTPtunnelEndpoint.setpresent(true); return dL_Forwarding_GTPtunnelEndpoint;} - dL_Forwarding_GTPtunnelEndpoint_t const* get_dL_Forwarding_GTPtunnelEndpoint() const {return dL_Forwarding_GTPtunnelEndpoint.is_valid() ? &dL_Forwarding_GTPtunnelEndpoint : nullptr;} - struct uL_Forwarding_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "uL_Forwarding_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - uL_Forwarding_GTPtunnelEndpoint_t& set_uL_Forwarding_GTPtunnelEndpoint() { uL_Forwarding_GTPtunnelEndpoint.setpresent(true); return uL_Forwarding_GTPtunnelEndpoint;} - uL_Forwarding_GTPtunnelEndpoint_t const* get_uL_Forwarding_GTPtunnelEndpoint() const {return uL_Forwarding_GTPtunnelEndpoint.is_valid() ? &uL_Forwarding_GTPtunnelEndpoint : nullptr;} - struct mCG_E_RAB_Level_QoS_Parameters_t : E_RAB_Level_QoS_Parameters - { - static constexpr const char* name() {return "mCG_E_RAB_Level_QoS_Parameters_t";} - using parent_t = E_RAB_Level_QoS_Parameters; - static constexpr bool optional = true; - - }; - mCG_E_RAB_Level_QoS_Parameters_t& set_mCG_E_RAB_Level_QoS_Parameters() { mCG_E_RAB_Level_QoS_Parameters.setpresent(true); return mCG_E_RAB_Level_QoS_Parameters;} - mCG_E_RAB_Level_QoS_Parameters_t const* get_mCG_E_RAB_Level_QoS_Parameters() const {return mCG_E_RAB_Level_QoS_Parameters.is_valid() ? &mCG_E_RAB_Level_QoS_Parameters : nullptr;} - struct uL_Configuration_t : ULConfiguration - { - static constexpr const char* name() {return "uL_Configuration_t";} - using parent_t = ULConfiguration; - static constexpr bool optional = true; - - }; - uL_Configuration_t& set_uL_Configuration() { uL_Configuration.setpresent(true); return uL_Configuration;} - uL_Configuration_t const* get_uL_Configuration() const {return uL_Configuration.is_valid() ? &uL_Configuration : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(s1_DL_GTPtunnelEndpoint); - v(sgNB_UL_GTP_TEIDatPDCP); - v(rlc_Mode); - v(dL_Forwarding_GTPtunnelEndpoint); - v(uL_Forwarding_GTPtunnelEndpoint); - v(mCG_E_RAB_Level_QoS_Parameters); - v(uL_Configuration); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(s1_DL_GTPtunnelEndpoint); - v(sgNB_UL_GTP_TEIDatPDCP); - v(rlc_Mode); - v(dL_Forwarding_GTPtunnelEndpoint); - v(uL_Forwarding_GTPtunnelEndpoint); - v(mCG_E_RAB_Level_QoS_Parameters); - v(uL_Configuration); - v(iE_Extensions); - - }; - void clear() - { - s1_DL_GTPtunnelEndpoint.clear(); - sgNB_UL_GTP_TEIDatPDCP.clear(); - rlc_Mode.clear(); - dL_Forwarding_GTPtunnelEndpoint.clear(); - uL_Forwarding_GTPtunnelEndpoint.clear(); - mCG_E_RAB_Level_QoS_Parameters.clear(); - uL_Configuration.clear(); - iE_Extensions.clear(); - - }; - private: - s1_DL_GTPtunnelEndpoint_t s1_DL_GTPtunnelEndpoint; - sgNB_UL_GTP_TEIDatPDCP_t sgNB_UL_GTP_TEIDatPDCP; - rlc_Mode_t rlc_Mode; - dL_Forwarding_GTPtunnelEndpoint_t dL_Forwarding_GTPtunnelEndpoint; - uL_Forwarding_GTPtunnelEndpoint_t uL_Forwarding_GTPtunnelEndpoint; - mCG_E_RAB_Level_QoS_Parameters_t mCG_E_RAB_Level_QoS_Parameters; - uL_Configuration_t uL_Configuration; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPnotpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-lCID CRITICALITY ignore EXTENSION LCID PRESENCE optional}, - ... -} -*/ - -struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresentExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_lCID() { set(id_lCID); type=1;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_lCID)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_lCID);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_lCID() { set(ignore); type=1;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - LCID& select_id_lCID() { return set(1); } - LCID const* get_id_lCID() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_lCID()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(LCID)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_lCID() { set(optional); type=1;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPnotpresent ::= SEQUENCE { - sgNB-DL-GTP-TEIDatSCG GTPtunnelEndpoint, - secondary-sgNB-DL-GTP-TEIDatSCG GTPtunnelEndpoint OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPnotpresentExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresent : asn::sequence<3, 0, true, 2> -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPnotpresent";} - using parent_t = asn::sequence<3, 0, true, 2>; - struct sgNB_DL_GTP_TEIDatSCG_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "sgNB_DL_GTP_TEIDatSCG_t";} - using parent_t = GTPtunnelEndpoint; - - }; - sgNB_DL_GTP_TEIDatSCG_t& ref_sgNB_DL_GTP_TEIDatSCG() {return sgNB_DL_GTP_TEIDatSCG;} - sgNB_DL_GTP_TEIDatSCG_t const& ref_sgNB_DL_GTP_TEIDatSCG() const {return sgNB_DL_GTP_TEIDatSCG;} - struct secondary_sgNB_DL_GTP_TEIDatSCG_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "secondary_sgNB_DL_GTP_TEIDatSCG_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - secondary_sgNB_DL_GTP_TEIDatSCG_t& set_secondary_sgNB_DL_GTP_TEIDatSCG() { secondary_sgNB_DL_GTP_TEIDatSCG.setpresent(true); return secondary_sgNB_DL_GTP_TEIDatSCG;} - secondary_sgNB_DL_GTP_TEIDatSCG_t const* get_secondary_sgNB_DL_GTP_TEIDatSCG() const {return secondary_sgNB_DL_GTP_TEIDatSCG.is_valid() ? &secondary_sgNB_DL_GTP_TEIDatSCG : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(sgNB_DL_GTP_TEIDatSCG); - v(secondary_sgNB_DL_GTP_TEIDatSCG); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(sgNB_DL_GTP_TEIDatSCG); - v(secondary_sgNB_DL_GTP_TEIDatSCG); - v(iE_Extensions); - - }; - void clear() - { - sgNB_DL_GTP_TEIDatSCG.clear(); - secondary_sgNB_DL_GTP_TEIDatSCG.clear(); - iE_Extensions.clear(); - - }; - private: - sgNB_DL_GTP_TEIDatSCG_t sgNB_DL_GTP_TEIDatSCG; - secondary_sgNB_DL_GTP_TEIDatSCG_t secondary_sgNB_DL_GTP_TEIDatSCG; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeAdded-SgNBAddReqAck-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_ToBeAdded_SgNBAddReqAck_ItemExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - en-DC-ResourceConfiguration EN-DC-ResourceConfiguration, - resource-configuration CHOICE { - sgNBPDCPpresent E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPpresent, - sgNBPDCPnotpresent E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPnotpresent, - ... - }, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeAdded-SgNBAddReqAck-ItemExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item : asn::sequence<4, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item";} - using parent_t = asn::sequence<4, 0, true, 1>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct en_DC_ResourceConfiguration_t : EN_DC_ResourceConfiguration - { - static constexpr const char* name() {return "en_DC_ResourceConfiguration_t";} - using parent_t = EN_DC_ResourceConfiguration; - - }; - en_DC_ResourceConfiguration_t& ref_en_DC_ResourceConfiguration() {return en_DC_ResourceConfiguration;} - en_DC_ResourceConfiguration_t const& ref_en_DC_ResourceConfiguration() const {return en_DC_ResourceConfiguration;} - struct resource_configuration_t : asn::choice<2, 0, true> - { - static constexpr const char* name() {return "resource_configuration_t";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~resource_configuration_t() {clear();} - struct sgNBPDCPpresent_t : E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresent - { - static constexpr const char* name() {return "sgNBPDCPpresent_t";} - using parent_t = E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresent; - - }; - struct sgNBPDCPnotpresent_t : E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresent - { - static constexpr const char* name() {return "sgNBPDCPnotpresent_t";} - using parent_t = E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresent; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - sgNBPDCPpresent_t& select_sgNBPDCPpresent() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - sgNBPDCPpresent_t const* get_sgNBPDCPpresent() const { if(get_index() == 1) { return &var.as();} return nullptr; } - sgNBPDCPnotpresent_t& select_sgNBPDCPnotpresent() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - sgNBPDCPnotpresent_t const* get_sgNBPDCPnotpresent() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(sgNBPDCPpresent_t)]; - char dummy2[sizeof(sgNBPDCPnotpresent_t)]; - - }; - asn::variant var; - index_type index {0}; - }; - resource_configuration_t& ref_resource_configuration() {return resource_configuration;} - resource_configuration_t const& ref_resource_configuration() const {return resource_configuration;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(en_DC_ResourceConfiguration); - v(resource_configuration); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(en_DC_ResourceConfiguration); - v(resource_configuration); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - en_DC_ResourceConfiguration.clear(); - resource_configuration.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - en_DC_ResourceConfiguration_t en_DC_ResourceConfiguration; - resource_configuration_t resource_configuration; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item CRITICALITY ignore TYPE E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item PRESENCE mandatory} -} -*/ - -struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item() { set(id_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item& select_id_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item() { return set(1); } - E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item const* get_id_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item() const { return get(1); } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item()); return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-ToBeAdded-SgNBAddReqAckList ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-ItemIEs} } -*/ - -struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeAdded-SgNBAddReqAckList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-uLpDCPSnLength CRITICALITY ignore EXTENSION PDCPSnLength PRESENCE optional}| - { ID id-dLPDCPSnLength CRITICALITY ignore EXTENSION PDCPSnLength PRESENCE optional}, - ... -} -*/ - -struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresentExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_uLpDCPSnLength() { set(id_uLpDCPSnLength); type=1;} - void select_id_dLPDCPSnLength() { set(id_dLPDCPSnLength); type=2;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_uLpDCPSnLength)) { type = 1; return true; } - else if(equal(id_dLPDCPSnLength)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_uLpDCPSnLength);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_dLPDCPSnLength);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_uLpDCPSnLength() { set(ignore); type=1;} - void select_id_dLPDCPSnLength() { set(ignore); type=2;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - PDCPSnLength& select_id_uLpDCPSnLength() { return set(1); } - PDCPSnLength const* get_id_uLpDCPSnLength() const { return get(1); } - PDCPSnLength& select_id_dLPDCPSnLength() { return set(2); } - PDCPSnLength const* get_id_dLPDCPSnLength() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_uLpDCPSnLength()); return true; - case 2: v(select_id_dLPDCPSnLength()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(PDCPSnLength)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_uLpDCPSnLength() { set(optional); type=1;} - void select_id_dLPDCPSnLength() { set(optional); type=2;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPpresent ::= SEQUENCE { - s1-DL-GTPtunnelEndpoint GTPtunnelEndpoint, - sgNB-UL-GTP-TEIDatPDCP GTPtunnelEndpoint OPTIONAL, --- This IE shall be present if MCG resource IE in the the EN-DC Resource Configuration IE are set to “present” -- - rlc-Mode RLCMode OPTIONAL, --- This IE shall be present if MCG resource IE in the the EN-DC Resource Configuration IE are set to “present” -- - dL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, - uL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, - mCG-E-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters OPTIONAL, --- This IE shall be present if MCG resource and SCG resource IEs in the the EN-DC Resource Configuration IE are set to “present” and the GBR QoS Information IE is present in the Requested MCG E-RAB Level QoS Parameters IE -- - uL-Configuration ULConfiguration OPTIONAL, --- This IE shall be present if MCG resource and SCG resources IEs in the the EN-DC Resource Configuration IE are set to “present” -- - iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPpresentExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresent : asn::sequence<8, 0, true, 7> -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPpresent";} - using parent_t = asn::sequence<8, 0, true, 7>; - struct s1_DL_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "s1_DL_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - - }; - s1_DL_GTPtunnelEndpoint_t& ref_s1_DL_GTPtunnelEndpoint() {return s1_DL_GTPtunnelEndpoint;} - s1_DL_GTPtunnelEndpoint_t const& ref_s1_DL_GTPtunnelEndpoint() const {return s1_DL_GTPtunnelEndpoint;} - struct sgNB_UL_GTP_TEIDatPDCP_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "sgNB_UL_GTP_TEIDatPDCP_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - sgNB_UL_GTP_TEIDatPDCP_t& set_sgNB_UL_GTP_TEIDatPDCP() { sgNB_UL_GTP_TEIDatPDCP.setpresent(true); return sgNB_UL_GTP_TEIDatPDCP;} - sgNB_UL_GTP_TEIDatPDCP_t const* get_sgNB_UL_GTP_TEIDatPDCP() const {return sgNB_UL_GTP_TEIDatPDCP.is_valid() ? &sgNB_UL_GTP_TEIDatPDCP : nullptr;} - struct rlc_Mode_t : RLCMode - { - static constexpr const char* name() {return "rlc_Mode_t";} - using parent_t = RLCMode; - static constexpr bool optional = true; - - }; - rlc_Mode_t& set_rlc_Mode() { rlc_Mode.setpresent(true); return rlc_Mode;} - rlc_Mode_t const* get_rlc_Mode() const {return rlc_Mode.is_valid() ? &rlc_Mode : nullptr;} - struct dL_Forwarding_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "dL_Forwarding_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - dL_Forwarding_GTPtunnelEndpoint_t& set_dL_Forwarding_GTPtunnelEndpoint() { dL_Forwarding_GTPtunnelEndpoint.setpresent(true); return dL_Forwarding_GTPtunnelEndpoint;} - dL_Forwarding_GTPtunnelEndpoint_t const* get_dL_Forwarding_GTPtunnelEndpoint() const {return dL_Forwarding_GTPtunnelEndpoint.is_valid() ? &dL_Forwarding_GTPtunnelEndpoint : nullptr;} - struct uL_Forwarding_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "uL_Forwarding_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - uL_Forwarding_GTPtunnelEndpoint_t& set_uL_Forwarding_GTPtunnelEndpoint() { uL_Forwarding_GTPtunnelEndpoint.setpresent(true); return uL_Forwarding_GTPtunnelEndpoint;} - uL_Forwarding_GTPtunnelEndpoint_t const* get_uL_Forwarding_GTPtunnelEndpoint() const {return uL_Forwarding_GTPtunnelEndpoint.is_valid() ? &uL_Forwarding_GTPtunnelEndpoint : nullptr;} - struct mCG_E_RAB_Level_QoS_Parameters_t : E_RAB_Level_QoS_Parameters - { - static constexpr const char* name() {return "mCG_E_RAB_Level_QoS_Parameters_t";} - using parent_t = E_RAB_Level_QoS_Parameters; - static constexpr bool optional = true; - - }; - mCG_E_RAB_Level_QoS_Parameters_t& set_mCG_E_RAB_Level_QoS_Parameters() { mCG_E_RAB_Level_QoS_Parameters.setpresent(true); return mCG_E_RAB_Level_QoS_Parameters;} - mCG_E_RAB_Level_QoS_Parameters_t const* get_mCG_E_RAB_Level_QoS_Parameters() const {return mCG_E_RAB_Level_QoS_Parameters.is_valid() ? &mCG_E_RAB_Level_QoS_Parameters : nullptr;} - struct uL_Configuration_t : ULConfiguration - { - static constexpr const char* name() {return "uL_Configuration_t";} - using parent_t = ULConfiguration; - static constexpr bool optional = true; - - }; - uL_Configuration_t& set_uL_Configuration() { uL_Configuration.setpresent(true); return uL_Configuration;} - uL_Configuration_t const* get_uL_Configuration() const {return uL_Configuration.is_valid() ? &uL_Configuration : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(s1_DL_GTPtunnelEndpoint); - v(sgNB_UL_GTP_TEIDatPDCP); - v(rlc_Mode); - v(dL_Forwarding_GTPtunnelEndpoint); - v(uL_Forwarding_GTPtunnelEndpoint); - v(mCG_E_RAB_Level_QoS_Parameters); - v(uL_Configuration); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(s1_DL_GTPtunnelEndpoint); - v(sgNB_UL_GTP_TEIDatPDCP); - v(rlc_Mode); - v(dL_Forwarding_GTPtunnelEndpoint); - v(uL_Forwarding_GTPtunnelEndpoint); - v(mCG_E_RAB_Level_QoS_Parameters); - v(uL_Configuration); - v(iE_Extensions); - - }; - void clear() - { - s1_DL_GTPtunnelEndpoint.clear(); - sgNB_UL_GTP_TEIDatPDCP.clear(); - rlc_Mode.clear(); - dL_Forwarding_GTPtunnelEndpoint.clear(); - uL_Forwarding_GTPtunnelEndpoint.clear(); - mCG_E_RAB_Level_QoS_Parameters.clear(); - uL_Configuration.clear(); - iE_Extensions.clear(); - - }; - private: - s1_DL_GTPtunnelEndpoint_t s1_DL_GTPtunnelEndpoint; - sgNB_UL_GTP_TEIDatPDCP_t sgNB_UL_GTP_TEIDatPDCP; - rlc_Mode_t rlc_Mode; - dL_Forwarding_GTPtunnelEndpoint_t dL_Forwarding_GTPtunnelEndpoint; - uL_Forwarding_GTPtunnelEndpoint_t uL_Forwarding_GTPtunnelEndpoint; - mCG_E_RAB_Level_QoS_Parameters_t mCG_E_RAB_Level_QoS_Parameters; - uL_Configuration_t uL_Configuration; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPnotpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { - {ID id-lCID CRITICALITY ignore EXTENSION LCID PRESENCE optional}, - ... -} -*/ - -struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_lCID() { set(id_lCID); type=1;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_lCID)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_lCID);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_lCID() { set(ignore); type=1;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - LCID& select_id_lCID() { return set(1); } - LCID const* get_id_lCID() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_lCID()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(LCID)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_lCID() { set(optional); type=1;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPnotpresent ::= SEQUENCE { - sgNB-DL-GTP-TEIDatSCG GTPtunnelEndpoint, - secondary-sgNB-DL-GTP-TEIDatSCG GTPtunnelEndpoint OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPnotpresentExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresent : asn::sequence<3, 0, true, 2> -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPnotpresent";} - using parent_t = asn::sequence<3, 0, true, 2>; - struct sgNB_DL_GTP_TEIDatSCG_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "sgNB_DL_GTP_TEIDatSCG_t";} - using parent_t = GTPtunnelEndpoint; - - }; - sgNB_DL_GTP_TEIDatSCG_t& ref_sgNB_DL_GTP_TEIDatSCG() {return sgNB_DL_GTP_TEIDatSCG;} - sgNB_DL_GTP_TEIDatSCG_t const& ref_sgNB_DL_GTP_TEIDatSCG() const {return sgNB_DL_GTP_TEIDatSCG;} - struct secondary_sgNB_DL_GTP_TEIDatSCG_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "secondary_sgNB_DL_GTP_TEIDatSCG_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - secondary_sgNB_DL_GTP_TEIDatSCG_t& set_secondary_sgNB_DL_GTP_TEIDatSCG() { secondary_sgNB_DL_GTP_TEIDatSCG.setpresent(true); return secondary_sgNB_DL_GTP_TEIDatSCG;} - secondary_sgNB_DL_GTP_TEIDatSCG_t const* get_secondary_sgNB_DL_GTP_TEIDatSCG() const {return secondary_sgNB_DL_GTP_TEIDatSCG.is_valid() ? &secondary_sgNB_DL_GTP_TEIDatSCG : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(sgNB_DL_GTP_TEIDatSCG); - v(secondary_sgNB_DL_GTP_TEIDatSCG); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(sgNB_DL_GTP_TEIDatSCG); - v(secondary_sgNB_DL_GTP_TEIDatSCG); - v(iE_Extensions); - - }; - void clear() - { - sgNB_DL_GTP_TEIDatSCG.clear(); - secondary_sgNB_DL_GTP_TEIDatSCG.clear(); - iE_Extensions.clear(); - - }; - private: - sgNB_DL_GTP_TEIDatSCG_t sgNB_DL_GTP_TEIDatSCG; - secondary_sgNB_DL_GTP_TEIDatSCG_t secondary_sgNB_DL_GTP_TEIDatSCG; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-Admitted-ToBeAdded-SgNBModAck-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-ToBeAdded-SgNBModAck-Item ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - en-DC-ResourceConfiguration EN-DC-ResourceConfiguration, - resource-configuration CHOICE { - sgNBPDCPpresent E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPpresent, - sgNBPDCPnotpresent E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPnotpresent, - ... - }, - iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeAdded-SgNBModAck-ItemExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item : asn::sequence<4, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeAdded-SgNBModAck-Item";} - using parent_t = asn::sequence<4, 0, true, 1>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct en_DC_ResourceConfiguration_t : EN_DC_ResourceConfiguration - { - static constexpr const char* name() {return "en_DC_ResourceConfiguration_t";} - using parent_t = EN_DC_ResourceConfiguration; - - }; - en_DC_ResourceConfiguration_t& ref_en_DC_ResourceConfiguration() {return en_DC_ResourceConfiguration;} - en_DC_ResourceConfiguration_t const& ref_en_DC_ResourceConfiguration() const {return en_DC_ResourceConfiguration;} - struct resource_configuration_t : asn::choice<2, 0, true> - { - static constexpr const char* name() {return "resource_configuration_t";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~resource_configuration_t() {clear();} - struct sgNBPDCPpresent_t : E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresent - { - static constexpr const char* name() {return "sgNBPDCPpresent_t";} - using parent_t = E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresent; - - }; - struct sgNBPDCPnotpresent_t : E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresent - { - static constexpr const char* name() {return "sgNBPDCPnotpresent_t";} - using parent_t = E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresent; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - sgNBPDCPpresent_t& select_sgNBPDCPpresent() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - sgNBPDCPpresent_t const* get_sgNBPDCPpresent() const { if(get_index() == 1) { return &var.as();} return nullptr; } - sgNBPDCPnotpresent_t& select_sgNBPDCPnotpresent() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - sgNBPDCPnotpresent_t const* get_sgNBPDCPnotpresent() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(sgNBPDCPpresent_t)]; - char dummy2[sizeof(sgNBPDCPnotpresent_t)]; - - }; - asn::variant var; - index_type index {0}; - }; - resource_configuration_t& ref_resource_configuration() {return resource_configuration;} - resource_configuration_t const& ref_resource_configuration() const {return resource_configuration;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(en_DC_ResourceConfiguration); - v(resource_configuration); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(en_DC_ResourceConfiguration); - v(resource_configuration); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - en_DC_ResourceConfiguration.clear(); - resource_configuration.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - en_DC_ResourceConfiguration_t en_DC_ResourceConfiguration; - resource_configuration_t resource_configuration; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-Admitted-ToBeAdded-SgNBModAck-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-Admitted-ToBeAdded-SgNBModAck-Item CRITICALITY ignore TYPE E-RABs-Admitted-ToBeAdded-SgNBModAck-Item PRESENCE mandatory} -} -*/ - -struct E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item() { set(id_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_Admitted_ToBeAdded_SgNBModAck_Item& select_id_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item() { return set(1); } - E_RABs_Admitted_ToBeAdded_SgNBModAck_Item const* get_id_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item() const { return get(1); } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item()); return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_Admitted_ToBeAdded_SgNBModAck_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-ToBeAdded-SgNBModAckList ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-Admitted-ToBeAdded-SgNBModAck-ItemIEs} } -*/ - -struct E_RABs_Admitted_ToBeAdded_SgNBModAckList_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_Admitted_ToBeAdded_SgNBModAckList_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_Admitted_ToBeAdded_SgNBModAckList : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeAdded-SgNBModAckList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-Admitted-ToBeModified-ModAckItem-SCG-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_Admitted_ToBeModified_ModAckItem_SCG_BearerExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-ToBeModified-ModAckItem-SCG-Bearer ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - s1-DL-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeModified-ModAckItem-SCG-BearerExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_Admitted_ToBeModified_ModAckItem_SCG_Bearer : asn::sequence<3, 0, true, 2> -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeModified-ModAckItem-SCG-Bearer";} - using parent_t = asn::sequence<3, 0, true, 2>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct s1_DL_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "s1_DL_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - s1_DL_GTPtunnelEndpoint_t& set_s1_DL_GTPtunnelEndpoint() { s1_DL_GTPtunnelEndpoint.setpresent(true); return s1_DL_GTPtunnelEndpoint;} - s1_DL_GTPtunnelEndpoint_t const* get_s1_DL_GTPtunnelEndpoint() const {return s1_DL_GTPtunnelEndpoint.is_valid() ? &s1_DL_GTPtunnelEndpoint : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(s1_DL_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(s1_DL_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - s1_DL_GTPtunnelEndpoint.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - s1_DL_GTPtunnelEndpoint_t s1_DL_GTPtunnelEndpoint; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-Admitted-ToBeModified-ModAckItem-Split-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_Admitted_ToBeModified_ModAckItem_Split_BearerExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-ToBeModified-ModAckItem-Split-Bearer ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - seNB-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeModified-ModAckItem-Split-BearerExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_Admitted_ToBeModified_ModAckItem_Split_Bearer : asn::sequence<3, 0, true, 2> -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeModified-ModAckItem-Split-Bearer";} - using parent_t = asn::sequence<3, 0, true, 2>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct seNB_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "seNB_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - seNB_GTPtunnelEndpoint_t& set_seNB_GTPtunnelEndpoint() { seNB_GTPtunnelEndpoint.setpresent(true); return seNB_GTPtunnelEndpoint;} - seNB_GTPtunnelEndpoint_t const* get_seNB_GTPtunnelEndpoint() const {return seNB_GTPtunnelEndpoint.is_valid() ? &seNB_GTPtunnelEndpoint : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(seNB_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(seNB_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - seNB_GTPtunnelEndpoint.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - seNB_GTPtunnelEndpoint_t seNB_GTPtunnelEndpoint; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-Admitted-ToBeModified-ModAckItem ::= CHOICE { - sCG-Bearer E-RABs-Admitted-ToBeModified-ModAckItem-SCG-Bearer, - split-Bearer E-RABs-Admitted-ToBeModified-ModAckItem-Split-Bearer, - ... -} -*/ - -struct E_RABs_Admitted_ToBeModified_ModAckItem : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeModified-ModAckItem";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~E_RABs_Admitted_ToBeModified_ModAckItem() {clear();} - struct sCG_Bearer_t : E_RABs_Admitted_ToBeModified_ModAckItem_SCG_Bearer - { - static constexpr const char* name() {return "sCG_Bearer_t";} - using parent_t = E_RABs_Admitted_ToBeModified_ModAckItem_SCG_Bearer; - - }; - struct split_Bearer_t : E_RABs_Admitted_ToBeModified_ModAckItem_Split_Bearer - { - static constexpr const char* name() {return "split_Bearer_t";} - using parent_t = E_RABs_Admitted_ToBeModified_ModAckItem_Split_Bearer; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - sCG_Bearer_t& select_sCG_Bearer() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - sCG_Bearer_t const* get_sCG_Bearer() const { if(get_index() == 1) { return &var.as();} return nullptr; } - split_Bearer_t& select_split_Bearer() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - split_Bearer_t const* get_split_Bearer() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(sCG_Bearer_t)]; - char dummy2[sizeof(split_Bearer_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -E-RABs-Admitted-ToBeModified-ModAckItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-Admitted-ToBeModified-ModAckItem CRITICALITY ignore TYPE E-RABs-Admitted-ToBeModified-ModAckItem PRESENCE mandatory} -} -*/ - -struct E_RABs_Admitted_ToBeModified_ModAckItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_E_RABs_Admitted_ToBeModified_ModAckItem() { set(id_E_RABs_Admitted_ToBeModified_ModAckItem); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_Admitted_ToBeModified_ModAckItem)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_Admitted_ToBeModified_ModAckItem);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_E_RABs_Admitted_ToBeModified_ModAckItem() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_Admitted_ToBeModified_ModAckItem& select_id_E_RABs_Admitted_ToBeModified_ModAckItem() { return set(1); } - E_RABs_Admitted_ToBeModified_ModAckItem const* get_id_E_RABs_Admitted_ToBeModified_ModAckItem() const { return get(1); } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_Admitted_ToBeModified_ModAckItem()); return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_Admitted_ToBeModified_ModAckItem)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_E_RABs_Admitted_ToBeModified_ModAckItem() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-ToBeModified-ModAckList ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-Admitted-ToBeModified-ModAckItemIEs} } -*/ - -struct E_RABs_Admitted_ToBeModified_ModAckList_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_Admitted_ToBeModified_ModAckList_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_Admitted_ToBeModified_ModAckList : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeModified-ModAckList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-uLpDCPSnLength CRITICALITY ignore EXTENSION PDCPSnLength PRESENCE optional}| - { ID id-dLPDCPSnLength CRITICALITY ignore EXTENSION PDCPSnLength PRESENCE optional}, - ... -} -*/ - -struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresentExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_uLpDCPSnLength() { set(id_uLpDCPSnLength); type=1;} - void select_id_dLPDCPSnLength() { set(id_dLPDCPSnLength); type=2;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_uLpDCPSnLength)) { type = 1; return true; } - else if(equal(id_dLPDCPSnLength)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_uLpDCPSnLength);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_dLPDCPSnLength);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_uLpDCPSnLength() { set(ignore); type=1;} - void select_id_dLPDCPSnLength() { set(ignore); type=2;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - PDCPSnLength& select_id_uLpDCPSnLength() { return set(1); } - PDCPSnLength const* get_id_uLpDCPSnLength() const { return get(1); } - PDCPSnLength& select_id_dLPDCPSnLength() { return set(2); } - PDCPSnLength const* get_id_dLPDCPSnLength() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_uLpDCPSnLength()); return true; - case 2: v(select_id_dLPDCPSnLength()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(PDCPSnLength)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_uLpDCPSnLength() { set(optional); type=1;} - void select_id_dLPDCPSnLength() { set(optional); type=2;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPpresent ::= SEQUENCE { - s1-DL-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, - sgNB-UL-GTP-TEIDatPDCP GTPtunnelEndpoint OPTIONAL, - mCG-E-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters OPTIONAL, - uL-Configuration ULConfiguration OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPpresentExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresent : asn::sequence<5, 0, true, 5> -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPpresent";} - using parent_t = asn::sequence<5, 0, true, 5>; - struct s1_DL_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "s1_DL_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - s1_DL_GTPtunnelEndpoint_t& set_s1_DL_GTPtunnelEndpoint() { s1_DL_GTPtunnelEndpoint.setpresent(true); return s1_DL_GTPtunnelEndpoint;} - s1_DL_GTPtunnelEndpoint_t const* get_s1_DL_GTPtunnelEndpoint() const {return s1_DL_GTPtunnelEndpoint.is_valid() ? &s1_DL_GTPtunnelEndpoint : nullptr;} - struct sgNB_UL_GTP_TEIDatPDCP_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "sgNB_UL_GTP_TEIDatPDCP_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - sgNB_UL_GTP_TEIDatPDCP_t& set_sgNB_UL_GTP_TEIDatPDCP() { sgNB_UL_GTP_TEIDatPDCP.setpresent(true); return sgNB_UL_GTP_TEIDatPDCP;} - sgNB_UL_GTP_TEIDatPDCP_t const* get_sgNB_UL_GTP_TEIDatPDCP() const {return sgNB_UL_GTP_TEIDatPDCP.is_valid() ? &sgNB_UL_GTP_TEIDatPDCP : nullptr;} - struct mCG_E_RAB_Level_QoS_Parameters_t : E_RAB_Level_QoS_Parameters - { - static constexpr const char* name() {return "mCG_E_RAB_Level_QoS_Parameters_t";} - using parent_t = E_RAB_Level_QoS_Parameters; - static constexpr bool optional = true; - - }; - mCG_E_RAB_Level_QoS_Parameters_t& set_mCG_E_RAB_Level_QoS_Parameters() { mCG_E_RAB_Level_QoS_Parameters.setpresent(true); return mCG_E_RAB_Level_QoS_Parameters;} - mCG_E_RAB_Level_QoS_Parameters_t const* get_mCG_E_RAB_Level_QoS_Parameters() const {return mCG_E_RAB_Level_QoS_Parameters.is_valid() ? &mCG_E_RAB_Level_QoS_Parameters : nullptr;} - struct uL_Configuration_t : ULConfiguration - { - static constexpr const char* name() {return "uL_Configuration_t";} - using parent_t = ULConfiguration; - static constexpr bool optional = true; - - }; - uL_Configuration_t& set_uL_Configuration() { uL_Configuration.setpresent(true); return uL_Configuration;} - uL_Configuration_t const* get_uL_Configuration() const {return uL_Configuration.is_valid() ? &uL_Configuration : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(s1_DL_GTPtunnelEndpoint); - v(sgNB_UL_GTP_TEIDatPDCP); - v(mCG_E_RAB_Level_QoS_Parameters); - v(uL_Configuration); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(s1_DL_GTPtunnelEndpoint); - v(sgNB_UL_GTP_TEIDatPDCP); - v(mCG_E_RAB_Level_QoS_Parameters); - v(uL_Configuration); - v(iE_Extensions); - - }; - void clear() - { - s1_DL_GTPtunnelEndpoint.clear(); - sgNB_UL_GTP_TEIDatPDCP.clear(); - mCG_E_RAB_Level_QoS_Parameters.clear(); - uL_Configuration.clear(); - iE_Extensions.clear(); - - }; - private: - s1_DL_GTPtunnelEndpoint_t s1_DL_GTPtunnelEndpoint; - sgNB_UL_GTP_TEIDatPDCP_t sgNB_UL_GTP_TEIDatPDCP; - mCG_E_RAB_Level_QoS_Parameters_t mCG_E_RAB_Level_QoS_Parameters; - uL_Configuration_t uL_Configuration; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPnotpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-secondarysgNBDLGTPTEIDatPDCP CRITICALITY ignore EXTENSION GTPtunnelEndpoint PRESENCE optional}| - { ID id-RLC-Status CRITICALITY ignore EXTENSION RLC-Status PRESENCE optional }, - ... -} -*/ - -struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_secondarysgNBDLGTPTEIDatPDCP() { set(id_secondarysgNBDLGTPTEIDatPDCP); type=1;} - void select_id_RLC_Status() { set(id_RLC_Status); type=2;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_secondarysgNBDLGTPTEIDatPDCP)) { type = 1; return true; } - else if(equal(id_RLC_Status)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_secondarysgNBDLGTPTEIDatPDCP);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_RLC_Status);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_secondarysgNBDLGTPTEIDatPDCP() { set(ignore); type=1;} - void select_id_RLC_Status() { set(ignore); type=2;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - GTPtunnelEndpoint& select_id_secondarysgNBDLGTPTEIDatPDCP() { return set(1); } - GTPtunnelEndpoint const* get_id_secondarysgNBDLGTPTEIDatPDCP() const { return get(1); } - RLC_Status& select_id_RLC_Status() { return set(2); } - RLC_Status const* get_id_RLC_Status() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_secondarysgNBDLGTPTEIDatPDCP()); return true; - case 2: v(select_id_RLC_Status()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(GTPtunnelEndpoint)]; - char dummy2[sizeof(RLC_Status)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_secondarysgNBDLGTPTEIDatPDCP() { set(optional); type=1;} - void select_id_RLC_Status() { set(optional); type=2;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPnotpresent ::= SEQUENCE { - sgNB-DL-GTP-TEIDatSCG GTPtunnelEndpoint OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPnotpresentExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresent : asn::sequence<2, 0, true, 2> -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPnotpresent";} - using parent_t = asn::sequence<2, 0, true, 2>; - struct sgNB_DL_GTP_TEIDatSCG_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "sgNB_DL_GTP_TEIDatSCG_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - sgNB_DL_GTP_TEIDatSCG_t& set_sgNB_DL_GTP_TEIDatSCG() { sgNB_DL_GTP_TEIDatSCG.setpresent(true); return sgNB_DL_GTP_TEIDatSCG;} - sgNB_DL_GTP_TEIDatSCG_t const* get_sgNB_DL_GTP_TEIDatSCG() const {return sgNB_DL_GTP_TEIDatSCG.is_valid() ? &sgNB_DL_GTP_TEIDatSCG : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(sgNB_DL_GTP_TEIDatSCG); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(sgNB_DL_GTP_TEIDatSCG); - v(iE_Extensions); - - }; - void clear() - { - sgNB_DL_GTP_TEIDatSCG.clear(); - iE_Extensions.clear(); - - }; - private: - sgNB_DL_GTP_TEIDatSCG_t sgNB_DL_GTP_TEIDatSCG; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeAdded-SgNBModAck-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_ToBeAdded_SgNBModAck_ItemExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-ToBeModified-SgNBModAck-Item ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - en-DC-ResourceConfiguration EN-DC-ResourceConfiguration, - resource-configuration CHOICE { - sgNBPDCPpresent E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPpresent, - sgNBPDCPnotpresent E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPnotpresent, - ... - }, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeAdded-SgNBModAck-ItemExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item : asn::sequence<4, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeModified-SgNBModAck-Item";} - using parent_t = asn::sequence<4, 0, true, 1>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct en_DC_ResourceConfiguration_t : EN_DC_ResourceConfiguration - { - static constexpr const char* name() {return "en_DC_ResourceConfiguration_t";} - using parent_t = EN_DC_ResourceConfiguration; - - }; - en_DC_ResourceConfiguration_t& ref_en_DC_ResourceConfiguration() {return en_DC_ResourceConfiguration;} - en_DC_ResourceConfiguration_t const& ref_en_DC_ResourceConfiguration() const {return en_DC_ResourceConfiguration;} - struct resource_configuration_t : asn::choice<2, 0, true> - { - static constexpr const char* name() {return "resource_configuration_t";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~resource_configuration_t() {clear();} - struct sgNBPDCPpresent_t : E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresent - { - static constexpr const char* name() {return "sgNBPDCPpresent_t";} - using parent_t = E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresent; - - }; - struct sgNBPDCPnotpresent_t : E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresent - { - static constexpr const char* name() {return "sgNBPDCPnotpresent_t";} - using parent_t = E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresent; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - sgNBPDCPpresent_t& select_sgNBPDCPpresent() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - sgNBPDCPpresent_t const* get_sgNBPDCPpresent() const { if(get_index() == 1) { return &var.as();} return nullptr; } - sgNBPDCPnotpresent_t& select_sgNBPDCPnotpresent() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - sgNBPDCPnotpresent_t const* get_sgNBPDCPnotpresent() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(sgNBPDCPpresent_t)]; - char dummy2[sizeof(sgNBPDCPnotpresent_t)]; - - }; - asn::variant var; - index_type index {0}; - }; - resource_configuration_t& ref_resource_configuration() {return resource_configuration;} - resource_configuration_t const& ref_resource_configuration() const {return resource_configuration;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(en_DC_ResourceConfiguration); - v(resource_configuration); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(en_DC_ResourceConfiguration); - v(resource_configuration); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - en_DC_ResourceConfiguration.clear(); - resource_configuration.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - en_DC_ResourceConfiguration_t en_DC_ResourceConfiguration; - resource_configuration_t resource_configuration; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-Admitted-ToBeModified-SgNBModAck-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-Admitted-ToBeModified-SgNBModAck-Item CRITICALITY ignore TYPE E-RABs-Admitted-ToBeModified-SgNBModAck-Item PRESENCE mandatory} -} -*/ - -struct E_RABs_Admitted_ToBeModified_SgNBModAck_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_E_RABs_Admitted_ToBeModified_SgNBModAck_Item() { set(id_E_RABs_Admitted_ToBeModified_SgNBModAck_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_Admitted_ToBeModified_SgNBModAck_Item)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_Admitted_ToBeModified_SgNBModAck_Item);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_E_RABs_Admitted_ToBeModified_SgNBModAck_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_Admitted_ToBeModified_SgNBModAck_Item& select_id_E_RABs_Admitted_ToBeModified_SgNBModAck_Item() { return set(1); } - E_RABs_Admitted_ToBeModified_SgNBModAck_Item const* get_id_E_RABs_Admitted_ToBeModified_SgNBModAck_Item() const { return get(1); } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_Admitted_ToBeModified_SgNBModAck_Item()); return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_Admitted_ToBeModified_SgNBModAck_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_E_RABs_Admitted_ToBeModified_SgNBModAck_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-ToBeModified-SgNBModAckList ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-Admitted-ToBeModified-SgNBModAck-ItemIEs} } -*/ - -struct E_RABs_Admitted_ToBeModified_SgNBModAckList_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_Admitted_ToBeModified_SgNBModAckList_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_Admitted_ToBeModified_SgNBModAckList : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeModified-SgNBModAckList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-Admitted-ToBeReleased-ModAckItem-SCG-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_BearerExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-ToBeReleased-ModAckItem-SCG-Bearer ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeReleased-ModAckItem-SCG-BearerExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_Bearer : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeReleased-ModAckItem-SCG-Bearer";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-Admitted-ToBeReleased-ModAckItem-Split-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_Admitted_ToBeReleased_ModAckItem_Split_BearerExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-ToBeReleased-ModAckItem-Split-Bearer ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeReleased-ModAckItem-Split-BearerExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_Admitted_ToBeReleased_ModAckItem_Split_Bearer : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeReleased-ModAckItem-Split-Bearer";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-Admitted-ToReleased-ModAckItem ::= CHOICE { - sCG-Bearer E-RABs-Admitted-ToBeReleased-ModAckItem-SCG-Bearer, - split-Bearer E-RABs-Admitted-ToBeReleased-ModAckItem-Split-Bearer, - ... -} -*/ - -struct E_RABs_Admitted_ToReleased_ModAckItem : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToReleased-ModAckItem";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~E_RABs_Admitted_ToReleased_ModAckItem() {clear();} - struct sCG_Bearer_t : E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_Bearer - { - static constexpr const char* name() {return "sCG_Bearer_t";} - using parent_t = E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_Bearer; - - }; - struct split_Bearer_t : E_RABs_Admitted_ToBeReleased_ModAckItem_Split_Bearer - { - static constexpr const char* name() {return "split_Bearer_t";} - using parent_t = E_RABs_Admitted_ToBeReleased_ModAckItem_Split_Bearer; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - sCG_Bearer_t& select_sCG_Bearer() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - sCG_Bearer_t const* get_sCG_Bearer() const { if(get_index() == 1) { return &var.as();} return nullptr; } - split_Bearer_t& select_split_Bearer() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - split_Bearer_t const* get_split_Bearer() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(sCG_Bearer_t)]; - char dummy2[sizeof(split_Bearer_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -E-RABs-Admitted-ToBeReleased-ModAckItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-Admitted-ToBeReleased-ModAckItem CRITICALITY ignore TYPE E-RABs-Admitted-ToReleased-ModAckItem PRESENCE mandatory} -} -*/ - -struct E_RABs_Admitted_ToBeReleased_ModAckItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_E_RABs_Admitted_ToBeReleased_ModAckItem() { set(id_E_RABs_Admitted_ToBeReleased_ModAckItem); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_Admitted_ToBeReleased_ModAckItem)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_Admitted_ToBeReleased_ModAckItem);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_E_RABs_Admitted_ToBeReleased_ModAckItem() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_Admitted_ToReleased_ModAckItem& select_id_E_RABs_Admitted_ToBeReleased_ModAckItem() { return set(1); } - E_RABs_Admitted_ToReleased_ModAckItem const* get_id_E_RABs_Admitted_ToBeReleased_ModAckItem() const { return get(1); } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_Admitted_ToBeReleased_ModAckItem()); return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_Admitted_ToReleased_ModAckItem)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_E_RABs_Admitted_ToBeReleased_ModAckItem() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-ToBeReleased-ModAckList ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-Admitted-ToBeReleased-ModAckItemIEs} } -*/ - -struct E_RABs_Admitted_ToBeReleased_ModAckList_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_Admitted_ToBeReleased_ModAckList_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_Admitted_ToBeReleased_ModAckList : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeReleased-ModAckList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPnotpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresentExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPnotpresent ::= SEQUENCE { - iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPnotpresentExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresent : asn::sequence<1, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPnotpresent";} - using parent_t = asn::sequence<1, 0, true, 1>; - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(iE_Extensions); - - }; - void clear() - { - iE_Extensions.clear(); - - }; - private: - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresentExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPpresent ::= SEQUENCE { - iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPpresentExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresent : asn::sequence<1, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPpresent";} - using parent_t = asn::sequence<1, 0, true, 1>; - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(iE_Extensions); - - }; - void clear() - { - iE_Extensions.clear(); - - }; - private: - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeReleased-SgNBModAck-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBModAck_ItemExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-ToReleased-SgNBModAck-Item ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - en-DC-ResourceConfiguration EN-DC-ResourceConfiguration, - resource-configuration CHOICE { - sgNBPDCPpresent E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPpresent, - sgNBPDCPnotpresent E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPnotpresent, - ... - }, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-SgNBModAck-ItemExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_Admitted_ToReleased_SgNBModAck_Item : asn::sequence<4, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToReleased-SgNBModAck-Item";} - using parent_t = asn::sequence<4, 0, true, 1>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct en_DC_ResourceConfiguration_t : EN_DC_ResourceConfiguration - { - static constexpr const char* name() {return "en_DC_ResourceConfiguration_t";} - using parent_t = EN_DC_ResourceConfiguration; - - }; - en_DC_ResourceConfiguration_t& ref_en_DC_ResourceConfiguration() {return en_DC_ResourceConfiguration;} - en_DC_ResourceConfiguration_t const& ref_en_DC_ResourceConfiguration() const {return en_DC_ResourceConfiguration;} - struct resource_configuration_t : asn::choice<2, 0, true> - { - static constexpr const char* name() {return "resource_configuration_t";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~resource_configuration_t() {clear();} - struct sgNBPDCPpresent_t : E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresent - { - static constexpr const char* name() {return "sgNBPDCPpresent_t";} - using parent_t = E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresent; - - }; - struct sgNBPDCPnotpresent_t : E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresent - { - static constexpr const char* name() {return "sgNBPDCPnotpresent_t";} - using parent_t = E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresent; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - sgNBPDCPpresent_t& select_sgNBPDCPpresent() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - sgNBPDCPpresent_t const* get_sgNBPDCPpresent() const { if(get_index() == 1) { return &var.as();} return nullptr; } - sgNBPDCPnotpresent_t& select_sgNBPDCPnotpresent() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - sgNBPDCPnotpresent_t const* get_sgNBPDCPnotpresent() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(sgNBPDCPpresent_t)]; - char dummy2[sizeof(sgNBPDCPnotpresent_t)]; - - }; - asn::variant var; - index_type index {0}; - }; - resource_configuration_t& ref_resource_configuration() {return resource_configuration;} - resource_configuration_t const& ref_resource_configuration() const {return resource_configuration;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(en_DC_ResourceConfiguration); - v(resource_configuration); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(en_DC_ResourceConfiguration); - v(resource_configuration); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - en_DC_ResourceConfiguration.clear(); - resource_configuration.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - en_DC_ResourceConfiguration_t en_DC_ResourceConfiguration; - resource_configuration_t resource_configuration; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-Admitted-ToBeReleased-SgNBModAck-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-Admitted-ToBeReleased-SgNBModAck-Item CRITICALITY ignore TYPE E-RABs-Admitted-ToReleased-SgNBModAck-Item PRESENCE mandatory} -} -*/ - -struct E_RABs_Admitted_ToBeReleased_SgNBModAck_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item() { set(id_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_Admitted_ToReleased_SgNBModAck_Item& select_id_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item() { return set(1); } - E_RABs_Admitted_ToReleased_SgNBModAck_Item const* get_id_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item() const { return get(1); } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item()); return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_Admitted_ToReleased_SgNBModAck_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-ToBeReleased-SgNBModAckList ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-Admitted-ToBeReleased-SgNBModAck-ItemIEs} } -*/ - -struct E_RABs_Admitted_ToBeReleased_SgNBModAckList_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_Admitted_ToBeReleased_SgNBModAckList_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_Admitted_ToBeReleased_SgNBModAckList : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeReleased-SgNBModAckList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-Admitted-ToBeReleased-SgNBRelReqAck-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-ToBeReleased-SgNBRelReqAck-Item ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - rlc-Mode-transferred RLCMode, - iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeReleased-SgNBRelReqAck-ItemExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeReleased-SgNBRelReqAck-Item";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct rlc_Mode_transferred_t : RLCMode - { - static constexpr const char* name() {return "rlc_Mode_transferred_t";} - using parent_t = RLCMode; - - }; - rlc_Mode_transferred_t& ref_rlc_Mode_transferred() {return rlc_Mode_transferred;} - rlc_Mode_transferred_t const& ref_rlc_Mode_transferred() const {return rlc_Mode_transferred;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(rlc_Mode_transferred); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(rlc_Mode_transferred); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - rlc_Mode_transferred.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - rlc_Mode_transferred_t rlc_Mode_transferred; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-Admitted-ToBeReleased-SgNBRelReqAck-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-Admitted-ToBeReleased-SgNBRelReqAck-Item CRITICALITY ignore TYPE E-RABs-Admitted-ToBeReleased-SgNBRelReqAck-Item PRESENCE mandatory}, - ... -} -*/ - -struct E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item() { set(id_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item& select_id_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item() { return set(1); } - E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item const* get_id_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-Admitted-ToBeReleased-SgNBRelReqAckList ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF - ProtocolIE-Single-Container { {E-RABs-Admitted-ToBeReleased-SgNBRelReqAck-ItemIEs} } -*/ - -struct E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-Admitted-ToBeReleased-SgNBRelReqAckList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresentExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPpresent ::= SEQUENCE { - iE-Extensions ProtocolExtensionContainer { {E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPpresentExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresent : asn::sequence<1, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPpresent";} - using parent_t = asn::sequence<1, 0, true, 1>; - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(iE_Extensions); - - }; - void clear() - { - iE_Extensions.clear(); - - }; - private: - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPnotpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-uLpDCPSnLength CRITICALITY ignore EXTENSION PDCPSnLength PRESENCE optional}| - { ID id-dLPDCPSnLength CRITICALITY ignore EXTENSION PDCPSnLength PRESENCE optional}, - ... -} -*/ - -struct E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresentExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_uLpDCPSnLength() { set(id_uLpDCPSnLength); type=1;} - void select_id_dLPDCPSnLength() { set(id_dLPDCPSnLength); type=2;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_uLpDCPSnLength)) { type = 1; return true; } - else if(equal(id_dLPDCPSnLength)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_uLpDCPSnLength);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_dLPDCPSnLength);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_uLpDCPSnLength() { set(ignore); type=1;} - void select_id_dLPDCPSnLength() { set(ignore); type=2;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - PDCPSnLength& select_id_uLpDCPSnLength() { return set(1); } - PDCPSnLength const* get_id_uLpDCPSnLength() const { return get(1); } - PDCPSnLength& select_id_dLPDCPSnLength() { return set(2); } - PDCPSnLength const* get_id_dLPDCPSnLength() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_uLpDCPSnLength()); return true; - case 2: v(select_id_dLPDCPSnLength()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(PDCPSnLength)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_uLpDCPSnLength() { set(optional); type=1;} - void select_id_dLPDCPSnLength() { set(optional); type=2;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPnotpresent ::= SEQUENCE { - secondary-meNB-UL-GTP-TEIDatPDCP GTPtunnelEndpoint OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPnotpresentExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresent : asn::sequence<2, 0, true, 2> -{ - static constexpr const char* name() {return "E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPnotpresent";} - using parent_t = asn::sequence<2, 0, true, 2>; - struct secondary_meNB_UL_GTP_TEIDatPDCP_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "secondary_meNB_UL_GTP_TEIDatPDCP_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - secondary_meNB_UL_GTP_TEIDatPDCP_t& set_secondary_meNB_UL_GTP_TEIDatPDCP() { secondary_meNB_UL_GTP_TEIDatPDCP.setpresent(true); return secondary_meNB_UL_GTP_TEIDatPDCP;} - secondary_meNB_UL_GTP_TEIDatPDCP_t const* get_secondary_meNB_UL_GTP_TEIDatPDCP() const {return secondary_meNB_UL_GTP_TEIDatPDCP.is_valid() ? &secondary_meNB_UL_GTP_TEIDatPDCP : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(secondary_meNB_UL_GTP_TEIDatPDCP); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(secondary_meNB_UL_GTP_TEIDatPDCP); - v(iE_Extensions); - - }; - void clear() - { - secondary_meNB_UL_GTP_TEIDatPDCP.clear(); - iE_Extensions.clear(); - - }; - private: - secondary_meNB_UL_GTP_TEIDatPDCP_t secondary_meNB_UL_GTP_TEIDatPDCP; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-AdmittedToBeModified-SgNBModConf-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_AdmittedToBeModified_SgNBModConf_ItemExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-AdmittedToBeModified-SgNBModConf-Item ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - en-DC-ResourceConfiguration EN-DC-ResourceConfiguration, - resource-configuration CHOICE { - sgNBPDCPpresent E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPpresent, - sgNBPDCPnotpresent E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPnotpresent, - ... - }, - iE-Extensions ProtocolExtensionContainer { {E-RABs-AdmittedToBeModified-SgNBModConf-ItemExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_AdmittedToBeModified_SgNBModConf_Item : asn::sequence<4, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-AdmittedToBeModified-SgNBModConf-Item";} - using parent_t = asn::sequence<4, 0, true, 1>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct en_DC_ResourceConfiguration_t : EN_DC_ResourceConfiguration - { - static constexpr const char* name() {return "en_DC_ResourceConfiguration_t";} - using parent_t = EN_DC_ResourceConfiguration; - - }; - en_DC_ResourceConfiguration_t& ref_en_DC_ResourceConfiguration() {return en_DC_ResourceConfiguration;} - en_DC_ResourceConfiguration_t const& ref_en_DC_ResourceConfiguration() const {return en_DC_ResourceConfiguration;} - struct resource_configuration_t : asn::choice<2, 0, true> - { - static constexpr const char* name() {return "resource_configuration_t";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~resource_configuration_t() {clear();} - struct sgNBPDCPpresent_t : E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresent - { - static constexpr const char* name() {return "sgNBPDCPpresent_t";} - using parent_t = E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresent; - - }; - struct sgNBPDCPnotpresent_t : E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresent - { - static constexpr const char* name() {return "sgNBPDCPnotpresent_t";} - using parent_t = E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresent; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - sgNBPDCPpresent_t& select_sgNBPDCPpresent() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - sgNBPDCPpresent_t const* get_sgNBPDCPpresent() const { if(get_index() == 1) { return &var.as();} return nullptr; } - sgNBPDCPnotpresent_t& select_sgNBPDCPnotpresent() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - sgNBPDCPnotpresent_t const* get_sgNBPDCPnotpresent() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(sgNBPDCPpresent_t)]; - char dummy2[sizeof(sgNBPDCPnotpresent_t)]; - - }; - asn::variant var; - index_type index {0}; - }; - resource_configuration_t& ref_resource_configuration() {return resource_configuration;} - resource_configuration_t const& ref_resource_configuration() const {return resource_configuration;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(en_DC_ResourceConfiguration); - v(resource_configuration); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(en_DC_ResourceConfiguration); - v(resource_configuration); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - en_DC_ResourceConfiguration.clear(); - resource_configuration.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - en_DC_ResourceConfiguration_t en_DC_ResourceConfiguration; - resource_configuration_t resource_configuration; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-AdmittedToBeModified-SgNBModConf-ItemIEs X2AP-PROTOCOL-IES ::= { -{ ID id-E-RABs-AdmittedToBeModified-SgNBModConf-Item CRITICALITY ignore TYPE E-RABs-AdmittedToBeModified-SgNBModConf-Item PRESENCE mandatory }, - ... -} -*/ - -struct E_RABs_AdmittedToBeModified_SgNBModConf_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_AdmittedToBeModified_SgNBModConf_Item() { set(id_E_RABs_AdmittedToBeModified_SgNBModConf_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_AdmittedToBeModified_SgNBModConf_Item)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_AdmittedToBeModified_SgNBModConf_Item);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_AdmittedToBeModified_SgNBModConf_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_AdmittedToBeModified_SgNBModConf_Item& select_id_E_RABs_AdmittedToBeModified_SgNBModConf_Item() { return set(1); } - E_RABs_AdmittedToBeModified_SgNBModConf_Item const* get_id_E_RABs_AdmittedToBeModified_SgNBModConf_Item() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_AdmittedToBeModified_SgNBModConf_Item()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_AdmittedToBeModified_SgNBModConf_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_AdmittedToBeModified_SgNBModConf_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-AdmittedToBeModified-SgNBModConfList ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container - { {E-RABs-AdmittedToBeModified-SgNBModConf-ItemIEs} } -*/ - -struct E_RABs_AdmittedToBeModified_SgNBModConfList_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_AdmittedToBeModified_SgNBModConfList_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_AdmittedToBeModified_SgNBModConfList : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-AdmittedToBeModified-SgNBModConfList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-SubjectToCounterCheckItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_SubjectToCounterCheckItemExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-SubjectToCounterCheckItem ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - uL-Count INTEGER (0..4294967295), - dL-Count INTEGER (0..4294967295), - iE-Extensions ProtocolExtensionContainer { {E-RABs-SubjectToCounterCheckItemExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_SubjectToCounterCheckItem : asn::sequence<4, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-SubjectToCounterCheckItem";} - using parent_t = asn::sequence<4, 0, true, 1>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct uL_Count_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "uL_Count_t";} - using parent_t = asn::integer<>; - - }; - - uL_Count_t& ref_uL_Count() {return uL_Count;} - uL_Count_t const& ref_uL_Count() const {return uL_Count;} - struct dL_Count_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "dL_Count_t";} - using parent_t = asn::integer<>; - - }; - - dL_Count_t& ref_dL_Count() {return dL_Count;} - dL_Count_t const& ref_dL_Count() const {return dL_Count;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(uL_Count); - v(dL_Count); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(uL_Count); - v(dL_Count); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - uL_Count.clear(); - dL_Count.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - uL_Count_t uL_Count; - dL_Count_t dL_Count; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-SubjectToCounterCheckItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-SubjectToCounterCheckItem CRITICALITY ignore TYPE E-RABs-SubjectToCounterCheckItem PRESENCE mandatory}, - ... -} -*/ - -struct E_RABs_SubjectToCounterCheckItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_SubjectToCounterCheckItem() { set(id_E_RABs_SubjectToCounterCheckItem); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_SubjectToCounterCheckItem)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_SubjectToCounterCheckItem);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_SubjectToCounterCheckItem() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_SubjectToCounterCheckItem& select_id_E_RABs_SubjectToCounterCheckItem() { return set(1); } - E_RABs_SubjectToCounterCheckItem const* get_id_E_RABs_SubjectToCounterCheckItem() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_SubjectToCounterCheckItem()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_SubjectToCounterCheckItem)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_SubjectToCounterCheckItem() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-SubjectToCounterCheck-List ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-SubjectToCounterCheckItemIEs} } -*/ - -struct E_RABs_SubjectToCounterCheck_List_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_SubjectToCounterCheck_List_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_SubjectToCounterCheck_List : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-SubjectToCounterCheck-List";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-SubjectToSgNBCounterCheck-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_SubjectToSgNBCounterCheck_ItemExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-SubjectToSgNBCounterCheck-Item ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - uL-Count INTEGER (0..4294967295), - dL-Count INTEGER (0..4294967295), - iE-Extensions ProtocolExtensionContainer { {E-RABs-SubjectToSgNBCounterCheck-ItemExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_SubjectToSgNBCounterCheck_Item : asn::sequence<4, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-SubjectToSgNBCounterCheck-Item";} - using parent_t = asn::sequence<4, 0, true, 1>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct uL_Count_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "uL_Count_t";} - using parent_t = asn::integer<>; - - }; - - uL_Count_t& ref_uL_Count() {return uL_Count;} - uL_Count_t const& ref_uL_Count() const {return uL_Count;} - struct dL_Count_t : asn::integer<> - { - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "dL_Count_t";} - using parent_t = asn::integer<>; - - }; - - dL_Count_t& ref_dL_Count() {return dL_Count;} - dL_Count_t const& ref_dL_Count() const {return dL_Count;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(uL_Count); - v(dL_Count); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(uL_Count); - v(dL_Count); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - uL_Count.clear(); - dL_Count.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - uL_Count_t uL_Count; - dL_Count_t dL_Count; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-SubjectToSgNBCounterCheck-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-SubjectToSgNBCounterCheck-Item CRITICALITY ignore TYPE E-RABs-SubjectToSgNBCounterCheck-Item PRESENCE mandatory}, - ... -} -*/ - -struct E_RABs_SubjectToSgNBCounterCheck_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_SubjectToSgNBCounterCheck_Item() { set(id_E_RABs_SubjectToSgNBCounterCheck_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_SubjectToSgNBCounterCheck_Item)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_SubjectToSgNBCounterCheck_Item);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_SubjectToSgNBCounterCheck_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_SubjectToSgNBCounterCheck_Item& select_id_E_RABs_SubjectToSgNBCounterCheck_Item() { return set(1); } - E_RABs_SubjectToSgNBCounterCheck_Item const* get_id_E_RABs_SubjectToSgNBCounterCheck_Item() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_SubjectToSgNBCounterCheck_Item()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_SubjectToSgNBCounterCheck_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_SubjectToSgNBCounterCheck_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-SubjectToSgNBCounterCheck-List ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-SubjectToSgNBCounterCheck-ItemIEs} } -*/ - -struct E_RABs_SubjectToSgNBCounterCheck_List_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_SubjectToSgNBCounterCheck_List_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_SubjectToSgNBCounterCheck_List : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-SubjectToSgNBCounterCheck-List";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-SubjectToStatusTransfer-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-ReceiveStatusOfULPDCPSDUsExtended CRITICALITY ignore EXTENSION ReceiveStatusOfULPDCPSDUsExtended PRESENCE optional}| - { ID id-ULCOUNTValueExtended CRITICALITY ignore EXTENSION COUNTValueExtended PRESENCE optional}| - { ID id-DLCOUNTValueExtended CRITICALITY ignore EXTENSION COUNTValueExtended PRESENCE optional}| - { ID id-ReceiveStatusOfULPDCPSDUsPDCP-SNlength18 CRITICALITY ignore EXTENSION ReceiveStatusOfULPDCPSDUsPDCP-SNlength18 PRESENCE optional}| - { ID id-ULCOUNTValuePDCP-SNlength18 CRITICALITY ignore EXTENSION COUNTvaluePDCP-SNlength18 PRESENCE optional}| - { ID id-DLCOUNTValuePDCP-SNlength18 CRITICALITY ignore EXTENSION COUNTvaluePDCP-SNlength18 PRESENCE optional}, - ... -} -*/ - -struct E_RABs_SubjectToStatusTransfer_ItemExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_ReceiveStatusOfULPDCPSDUsExtended() { set(id_ReceiveStatusOfULPDCPSDUsExtended); type=1;} - void select_id_ULCOUNTValueExtended() { set(id_ULCOUNTValueExtended); type=2;} - void select_id_DLCOUNTValueExtended() { set(id_DLCOUNTValueExtended); type=3;} - void select_id_ReceiveStatusOfULPDCPSDUsPDCP_SNlength18() { set(id_ReceiveStatusOfULPDCPSDUsPDCP_SNlength18); type=4;} - void select_id_ULCOUNTValuePDCP_SNlength18() { set(id_ULCOUNTValuePDCP_SNlength18); type=5;} - void select_id_DLCOUNTValuePDCP_SNlength18() { set(id_DLCOUNTValuePDCP_SNlength18); type=6;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_ReceiveStatusOfULPDCPSDUsExtended)) { type = 1; return true; } - else if(equal(id_ULCOUNTValueExtended)) { type = 2; return true; } - else if(equal(id_DLCOUNTValueExtended)) { type = 3; return true; } - else if(equal(id_ReceiveStatusOfULPDCPSDUsPDCP_SNlength18)) { type = 4; return true; } - else if(equal(id_ULCOUNTValuePDCP_SNlength18)) { type = 5; return true; } - else if(equal(id_DLCOUNTValuePDCP_SNlength18)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_ReceiveStatusOfULPDCPSDUsExtended);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_ULCOUNTValueExtended);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_DLCOUNTValueExtended);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_ReceiveStatusOfULPDCPSDUsPDCP_SNlength18);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_ULCOUNTValuePDCP_SNlength18);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_DLCOUNTValuePDCP_SNlength18);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_ReceiveStatusOfULPDCPSDUsExtended() { set(ignore); type=1;} - void select_id_ULCOUNTValueExtended() { set(ignore); type=2;} - void select_id_DLCOUNTValueExtended() { set(ignore); type=3;} - void select_id_ReceiveStatusOfULPDCPSDUsPDCP_SNlength18() { set(ignore); type=4;} - void select_id_ULCOUNTValuePDCP_SNlength18() { set(ignore); type=5;} - void select_id_DLCOUNTValuePDCP_SNlength18() { set(ignore); type=6;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else if(equal(ignore)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(ignore);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - ReceiveStatusOfULPDCPSDUsExtended& select_id_ReceiveStatusOfULPDCPSDUsExtended() { return set(1); } - ReceiveStatusOfULPDCPSDUsExtended const* get_id_ReceiveStatusOfULPDCPSDUsExtended() const { return get(1); } - COUNTValueExtended& select_id_ULCOUNTValueExtended() { return set(2); } - COUNTValueExtended const* get_id_ULCOUNTValueExtended() const { return get(2); } - COUNTValueExtended& select_id_DLCOUNTValueExtended() { return set(3); } - COUNTValueExtended const* get_id_DLCOUNTValueExtended() const { return get(3); } - ReceiveStatusOfULPDCPSDUsPDCP_SNlength18& select_id_ReceiveStatusOfULPDCPSDUsPDCP_SNlength18() { return set(4); } - ReceiveStatusOfULPDCPSDUsPDCP_SNlength18 const* get_id_ReceiveStatusOfULPDCPSDUsPDCP_SNlength18() const { return get(4); } - COUNTvaluePDCP_SNlength18& select_id_ULCOUNTValuePDCP_SNlength18() { return set(5); } - COUNTvaluePDCP_SNlength18 const* get_id_ULCOUNTValuePDCP_SNlength18() const { return get(5); } - COUNTvaluePDCP_SNlength18& select_id_DLCOUNTValuePDCP_SNlength18() { return set(6); } - COUNTvaluePDCP_SNlength18 const* get_id_DLCOUNTValuePDCP_SNlength18() const { return get(6); } - bool is_unknown() const { return type == 7; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_ReceiveStatusOfULPDCPSDUsExtended()); return true; - case 2: v(select_id_ULCOUNTValueExtended()); return true; - case 3: v(select_id_DLCOUNTValueExtended()); return true; - case 4: v(select_id_ReceiveStatusOfULPDCPSDUsPDCP_SNlength18()); return true; - case 5: v(select_id_ULCOUNTValuePDCP_SNlength18()); return true; - case 6: v(select_id_DLCOUNTValuePDCP_SNlength18()); return true; - case 7: if(type != 7) {clear(); asn::base::set();} type = 7; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(COUNTValueExtended)]; - char dummy2[sizeof(COUNTvaluePDCP_SNlength18)]; - char dummy3[sizeof(ReceiveStatusOfULPDCPSDUsExtended)]; - char dummy4[sizeof(ReceiveStatusOfULPDCPSDUsPDCP_SNlength18)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_ReceiveStatusOfULPDCPSDUsExtended() { set(optional); type=1;} - void select_id_ULCOUNTValueExtended() { set(optional); type=2;} - void select_id_DLCOUNTValueExtended() { set(optional); type=3;} - void select_id_ReceiveStatusOfULPDCPSDUsPDCP_SNlength18() { set(optional); type=4;} - void select_id_ULCOUNTValuePDCP_SNlength18() { set(optional); type=5;} - void select_id_DLCOUNTValuePDCP_SNlength18() { set(optional); type=6;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-SubjectToStatusTransfer-Item ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - - receiveStatusofULPDCPSDUs ReceiveStatusofULPDCPSDUs OPTIONAL, - uL-COUNTvalue COUNTvalue, - dL-COUNTvalue COUNTvalue, - iE-Extensions ProtocolExtensionContainer { {E-RABs-SubjectToStatusTransfer-ItemExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_SubjectToStatusTransfer_Item : asn::sequence<5, 0, true, 2> -{ - static constexpr const char* name() {return "E-RABs-SubjectToStatusTransfer-Item";} - using parent_t = asn::sequence<5, 0, true, 2>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct receiveStatusofULPDCPSDUs_t : ReceiveStatusofULPDCPSDUs - { - static constexpr const char* name() {return "receiveStatusofULPDCPSDUs_t";} - using parent_t = ReceiveStatusofULPDCPSDUs; - static constexpr bool optional = true; - - }; - receiveStatusofULPDCPSDUs_t& set_receiveStatusofULPDCPSDUs() { receiveStatusofULPDCPSDUs.setpresent(true); return receiveStatusofULPDCPSDUs;} - receiveStatusofULPDCPSDUs_t const* get_receiveStatusofULPDCPSDUs() const {return receiveStatusofULPDCPSDUs.is_valid() ? &receiveStatusofULPDCPSDUs : nullptr;} - struct uL_COUNTvalue_t : COUNTvalue - { - static constexpr const char* name() {return "uL_COUNTvalue_t";} - using parent_t = COUNTvalue; - - }; - uL_COUNTvalue_t& ref_uL_COUNTvalue() {return uL_COUNTvalue;} - uL_COUNTvalue_t const& ref_uL_COUNTvalue() const {return uL_COUNTvalue;} - struct dL_COUNTvalue_t : COUNTvalue - { - static constexpr const char* name() {return "dL_COUNTvalue_t";} - using parent_t = COUNTvalue; - - }; - dL_COUNTvalue_t& ref_dL_COUNTvalue() {return dL_COUNTvalue;} - dL_COUNTvalue_t const& ref_dL_COUNTvalue() const {return dL_COUNTvalue;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(receiveStatusofULPDCPSDUs); - v(uL_COUNTvalue); - v(dL_COUNTvalue); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(receiveStatusofULPDCPSDUs); - v(uL_COUNTvalue); - v(dL_COUNTvalue); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - receiveStatusofULPDCPSDUs.clear(); - uL_COUNTvalue.clear(); - dL_COUNTvalue.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - receiveStatusofULPDCPSDUs_t receiveStatusofULPDCPSDUs; - uL_COUNTvalue_t uL_COUNTvalue; - dL_COUNTvalue_t dL_COUNTvalue; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-SubjectToStatusTransfer-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-SubjectToStatusTransfer-Item CRITICALITY ignore TYPE E-RABs-SubjectToStatusTransfer-Item PRESENCE mandatory } -} -*/ - -struct E_RABs_SubjectToStatusTransfer_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_E_RABs_SubjectToStatusTransfer_Item() { set(id_E_RABs_SubjectToStatusTransfer_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_SubjectToStatusTransfer_Item)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_SubjectToStatusTransfer_Item);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_E_RABs_SubjectToStatusTransfer_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_SubjectToStatusTransfer_Item& select_id_E_RABs_SubjectToStatusTransfer_Item() { return set(1); } - E_RABs_SubjectToStatusTransfer_Item const* get_id_E_RABs_SubjectToStatusTransfer_Item() const { return get(1); } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_SubjectToStatusTransfer_Item()); return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_SubjectToStatusTransfer_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_E_RABs_SubjectToStatusTransfer_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-SubjectToStatusTransfer-List ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-SubjectToStatusTransfer-ItemIEs} } -*/ - -struct E_RABs_SubjectToStatusTransfer_List_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_SubjectToStatusTransfer_List_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_SubjectToStatusTransfer_List : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-SubjectToStatusTransfer-List";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-ToBeAdded-Item-SCG-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-Correlation-ID CRITICALITY ignore EXTENSION Correlation-ID PRESENCE optional}| - { ID id-SIPTO-Correlation-ID CRITICALITY ignore EXTENSION Correlation-ID PRESENCE optional}, - ... -} -*/ - -struct E_RABs_ToBeAdded_Item_SCG_BearerExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_Correlation_ID() { set(id_Correlation_ID); type=1;} - void select_id_SIPTO_Correlation_ID() { set(id_SIPTO_Correlation_ID); type=2;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_Correlation_ID)) { type = 1; return true; } - else if(equal(id_SIPTO_Correlation_ID)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_Correlation_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SIPTO_Correlation_ID);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_Correlation_ID() { set(ignore); type=1;} - void select_id_SIPTO_Correlation_ID() { set(ignore); type=2;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - Correlation_ID& select_id_Correlation_ID() { return set(1); } - Correlation_ID const* get_id_Correlation_ID() const { return get(1); } - Correlation_ID& select_id_SIPTO_Correlation_ID() { return set(2); } - Correlation_ID const* get_id_SIPTO_Correlation_ID() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_Correlation_ID()); return true; - case 2: v(select_id_SIPTO_Correlation_ID()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Correlation_ID)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_Correlation_ID() { set(optional); type=1;} - void select_id_SIPTO_Correlation_ID() { set(optional); type=2;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeAdded-Item-SCG-Bearer ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - e-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters, - dL-Forwarding DL-Forwarding OPTIONAL, - s1-UL-GTPtunnelEndpoint GTPtunnelEndpoint, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeAdded-Item-SCG-BearerExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeAdded_Item_SCG_Bearer : asn::sequence<5, 0, true, 2> -{ - static constexpr const char* name() {return "E-RABs-ToBeAdded-Item-SCG-Bearer";} - using parent_t = asn::sequence<5, 0, true, 2>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct e_RAB_Level_QoS_Parameters_t : E_RAB_Level_QoS_Parameters - { - static constexpr const char* name() {return "e_RAB_Level_QoS_Parameters_t";} - using parent_t = E_RAB_Level_QoS_Parameters; - - }; - e_RAB_Level_QoS_Parameters_t& ref_e_RAB_Level_QoS_Parameters() {return e_RAB_Level_QoS_Parameters;} - e_RAB_Level_QoS_Parameters_t const& ref_e_RAB_Level_QoS_Parameters() const {return e_RAB_Level_QoS_Parameters;} - struct dL_Forwarding_t : DL_Forwarding - { - static constexpr const char* name() {return "dL_Forwarding_t";} - using parent_t = DL_Forwarding; - static constexpr bool optional = true; - - }; - dL_Forwarding_t& set_dL_Forwarding() { dL_Forwarding.setpresent(true); return dL_Forwarding;} - dL_Forwarding_t const* get_dL_Forwarding() const {return dL_Forwarding.is_valid() ? &dL_Forwarding : nullptr;} - struct s1_UL_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "s1_UL_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - - }; - s1_UL_GTPtunnelEndpoint_t& ref_s1_UL_GTPtunnelEndpoint() {return s1_UL_GTPtunnelEndpoint;} - s1_UL_GTPtunnelEndpoint_t const& ref_s1_UL_GTPtunnelEndpoint() const {return s1_UL_GTPtunnelEndpoint;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(e_RAB_Level_QoS_Parameters); - v(dL_Forwarding); - v(s1_UL_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(e_RAB_Level_QoS_Parameters); - v(dL_Forwarding); - v(s1_UL_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - e_RAB_Level_QoS_Parameters.clear(); - dL_Forwarding.clear(); - s1_UL_GTPtunnelEndpoint.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - e_RAB_Level_QoS_Parameters_t e_RAB_Level_QoS_Parameters; - dL_Forwarding_t dL_Forwarding; - s1_UL_GTPtunnelEndpoint_t s1_UL_GTPtunnelEndpoint; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeAdded-Item-Split-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_ToBeAdded_Item_Split_BearerExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeAdded-Item-Split-Bearer ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - e-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters, - meNB-GTPtunnelEndpoint GTPtunnelEndpoint, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeAdded-Item-Split-BearerExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeAdded_Item_Split_Bearer : asn::sequence<4, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-ToBeAdded-Item-Split-Bearer";} - using parent_t = asn::sequence<4, 0, true, 1>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct e_RAB_Level_QoS_Parameters_t : E_RAB_Level_QoS_Parameters - { - static constexpr const char* name() {return "e_RAB_Level_QoS_Parameters_t";} - using parent_t = E_RAB_Level_QoS_Parameters; - - }; - e_RAB_Level_QoS_Parameters_t& ref_e_RAB_Level_QoS_Parameters() {return e_RAB_Level_QoS_Parameters;} - e_RAB_Level_QoS_Parameters_t const& ref_e_RAB_Level_QoS_Parameters() const {return e_RAB_Level_QoS_Parameters;} - struct meNB_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "meNB_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - - }; - meNB_GTPtunnelEndpoint_t& ref_meNB_GTPtunnelEndpoint() {return meNB_GTPtunnelEndpoint;} - meNB_GTPtunnelEndpoint_t const& ref_meNB_GTPtunnelEndpoint() const {return meNB_GTPtunnelEndpoint;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(e_RAB_Level_QoS_Parameters); - v(meNB_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(e_RAB_Level_QoS_Parameters); - v(meNB_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - e_RAB_Level_QoS_Parameters.clear(); - meNB_GTPtunnelEndpoint.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - e_RAB_Level_QoS_Parameters_t e_RAB_Level_QoS_Parameters; - meNB_GTPtunnelEndpoint_t meNB_GTPtunnelEndpoint; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeAdded-Item ::= CHOICE { - sCG-Bearer E-RABs-ToBeAdded-Item-SCG-Bearer, - split-Bearer E-RABs-ToBeAdded-Item-Split-Bearer, - ... -} -*/ - -struct E_RABs_ToBeAdded_Item : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "E-RABs-ToBeAdded-Item";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~E_RABs_ToBeAdded_Item() {clear();} - struct sCG_Bearer_t : E_RABs_ToBeAdded_Item_SCG_Bearer - { - static constexpr const char* name() {return "sCG_Bearer_t";} - using parent_t = E_RABs_ToBeAdded_Item_SCG_Bearer; - - }; - struct split_Bearer_t : E_RABs_ToBeAdded_Item_Split_Bearer - { - static constexpr const char* name() {return "split_Bearer_t";} - using parent_t = E_RABs_ToBeAdded_Item_Split_Bearer; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - sCG_Bearer_t& select_sCG_Bearer() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - sCG_Bearer_t const* get_sCG_Bearer() const { if(get_index() == 1) { return &var.as();} return nullptr; } - split_Bearer_t& select_split_Bearer() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - split_Bearer_t const* get_split_Bearer() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(sCG_Bearer_t)]; - char dummy2[sizeof(split_Bearer_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -E-RABs-ToBeAdded-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-ToBeAdded-Item CRITICALITY reject TYPE E-RABs-ToBeAdded-Item PRESENCE mandatory}, - ... -} -*/ - -struct E_RABs_ToBeAdded_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeAdded_Item() { set(id_E_RABs_ToBeAdded_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_ToBeAdded_Item)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_ToBeAdded_Item);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeAdded_Item() { set(reject); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_ToBeAdded_Item& select_id_E_RABs_ToBeAdded_Item() { return set(1); } - E_RABs_ToBeAdded_Item const* get_id_E_RABs_ToBeAdded_Item() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_ToBeAdded_Item()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_ToBeAdded_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeAdded_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeAdded-List ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeAdded-ItemIEs} } -*/ - -struct E_RABs_ToBeAdded_List_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_ToBeAdded_List_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_ToBeAdded_List : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-ToBeAdded-List";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-ToBeAdded-ModReqItem-SCG-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-Correlation-ID CRITICALITY ignore EXTENSION Correlation-ID PRESENCE optional}| - { ID id-SIPTO-Correlation-ID CRITICALITY ignore EXTENSION Correlation-ID PRESENCE optional}, - ... -} -*/ - -struct E_RABs_ToBeAdded_ModReqItem_SCG_BearerExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_Correlation_ID() { set(id_Correlation_ID); type=1;} - void select_id_SIPTO_Correlation_ID() { set(id_SIPTO_Correlation_ID); type=2;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_Correlation_ID)) { type = 1; return true; } - else if(equal(id_SIPTO_Correlation_ID)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_Correlation_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SIPTO_Correlation_ID);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_Correlation_ID() { set(ignore); type=1;} - void select_id_SIPTO_Correlation_ID() { set(ignore); type=2;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - Correlation_ID& select_id_Correlation_ID() { return set(1); } - Correlation_ID const* get_id_Correlation_ID() const { return get(1); } - Correlation_ID& select_id_SIPTO_Correlation_ID() { return set(2); } - Correlation_ID const* get_id_SIPTO_Correlation_ID() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_Correlation_ID()); return true; - case 2: v(select_id_SIPTO_Correlation_ID()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Correlation_ID)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_Correlation_ID() { set(optional); type=1;} - void select_id_SIPTO_Correlation_ID() { set(optional); type=2;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeAdded-ModReqItem-SCG-Bearer ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - e-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters, - dL-Forwarding DL-Forwarding OPTIONAL, - s1-UL-GTPtunnelEndpoint GTPtunnelEndpoint, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeAdded-ModReqItem-SCG-BearerExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeAdded_ModReqItem_SCG_Bearer : asn::sequence<5, 0, true, 2> -{ - static constexpr const char* name() {return "E-RABs-ToBeAdded-ModReqItem-SCG-Bearer";} - using parent_t = asn::sequence<5, 0, true, 2>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct e_RAB_Level_QoS_Parameters_t : E_RAB_Level_QoS_Parameters - { - static constexpr const char* name() {return "e_RAB_Level_QoS_Parameters_t";} - using parent_t = E_RAB_Level_QoS_Parameters; - - }; - e_RAB_Level_QoS_Parameters_t& ref_e_RAB_Level_QoS_Parameters() {return e_RAB_Level_QoS_Parameters;} - e_RAB_Level_QoS_Parameters_t const& ref_e_RAB_Level_QoS_Parameters() const {return e_RAB_Level_QoS_Parameters;} - struct dL_Forwarding_t : DL_Forwarding - { - static constexpr const char* name() {return "dL_Forwarding_t";} - using parent_t = DL_Forwarding; - static constexpr bool optional = true; - - }; - dL_Forwarding_t& set_dL_Forwarding() { dL_Forwarding.setpresent(true); return dL_Forwarding;} - dL_Forwarding_t const* get_dL_Forwarding() const {return dL_Forwarding.is_valid() ? &dL_Forwarding : nullptr;} - struct s1_UL_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "s1_UL_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - - }; - s1_UL_GTPtunnelEndpoint_t& ref_s1_UL_GTPtunnelEndpoint() {return s1_UL_GTPtunnelEndpoint;} - s1_UL_GTPtunnelEndpoint_t const& ref_s1_UL_GTPtunnelEndpoint() const {return s1_UL_GTPtunnelEndpoint;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(e_RAB_Level_QoS_Parameters); - v(dL_Forwarding); - v(s1_UL_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(e_RAB_Level_QoS_Parameters); - v(dL_Forwarding); - v(s1_UL_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - e_RAB_Level_QoS_Parameters.clear(); - dL_Forwarding.clear(); - s1_UL_GTPtunnelEndpoint.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - e_RAB_Level_QoS_Parameters_t e_RAB_Level_QoS_Parameters; - dL_Forwarding_t dL_Forwarding; - s1_UL_GTPtunnelEndpoint_t s1_UL_GTPtunnelEndpoint; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeAdded-ModReqItem-Split-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_ToBeAdded_ModReqItem_Split_BearerExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeAdded-ModReqItem-Split-Bearer ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - e-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters, - meNB-GTPtunnelEndpoint GTPtunnelEndpoint, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeAdded-ModReqItem-Split-BearerExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeAdded_ModReqItem_Split_Bearer : asn::sequence<4, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-ToBeAdded-ModReqItem-Split-Bearer";} - using parent_t = asn::sequence<4, 0, true, 1>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct e_RAB_Level_QoS_Parameters_t : E_RAB_Level_QoS_Parameters - { - static constexpr const char* name() {return "e_RAB_Level_QoS_Parameters_t";} - using parent_t = E_RAB_Level_QoS_Parameters; - - }; - e_RAB_Level_QoS_Parameters_t& ref_e_RAB_Level_QoS_Parameters() {return e_RAB_Level_QoS_Parameters;} - e_RAB_Level_QoS_Parameters_t const& ref_e_RAB_Level_QoS_Parameters() const {return e_RAB_Level_QoS_Parameters;} - struct meNB_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "meNB_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - - }; - meNB_GTPtunnelEndpoint_t& ref_meNB_GTPtunnelEndpoint() {return meNB_GTPtunnelEndpoint;} - meNB_GTPtunnelEndpoint_t const& ref_meNB_GTPtunnelEndpoint() const {return meNB_GTPtunnelEndpoint;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(e_RAB_Level_QoS_Parameters); - v(meNB_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(e_RAB_Level_QoS_Parameters); - v(meNB_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - e_RAB_Level_QoS_Parameters.clear(); - meNB_GTPtunnelEndpoint.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - e_RAB_Level_QoS_Parameters_t e_RAB_Level_QoS_Parameters; - meNB_GTPtunnelEndpoint_t meNB_GTPtunnelEndpoint; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeAdded-ModReqItem ::= CHOICE { - sCG-Bearer E-RABs-ToBeAdded-ModReqItem-SCG-Bearer, - split-Bearer E-RABs-ToBeAdded-ModReqItem-Split-Bearer, - ... -} -*/ - -struct E_RABs_ToBeAdded_ModReqItem : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "E-RABs-ToBeAdded-ModReqItem";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~E_RABs_ToBeAdded_ModReqItem() {clear();} - struct sCG_Bearer_t : E_RABs_ToBeAdded_ModReqItem_SCG_Bearer - { - static constexpr const char* name() {return "sCG_Bearer_t";} - using parent_t = E_RABs_ToBeAdded_ModReqItem_SCG_Bearer; - - }; - struct split_Bearer_t : E_RABs_ToBeAdded_ModReqItem_Split_Bearer - { - static constexpr const char* name() {return "split_Bearer_t";} - using parent_t = E_RABs_ToBeAdded_ModReqItem_Split_Bearer; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - sCG_Bearer_t& select_sCG_Bearer() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - sCG_Bearer_t const* get_sCG_Bearer() const { if(get_index() == 1) { return &var.as();} return nullptr; } - split_Bearer_t& select_split_Bearer() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - split_Bearer_t const* get_split_Bearer() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(sCG_Bearer_t)]; - char dummy2[sizeof(split_Bearer_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -E-RABs-ToBeAdded-ModReqItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-ToBeAdded-ModReqItem CRITICALITY ignore TYPE E-RABs-ToBeAdded-ModReqItem PRESENCE mandatory}, - ... -} -*/ - -struct E_RABs_ToBeAdded_ModReqItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeAdded_ModReqItem() { set(id_E_RABs_ToBeAdded_ModReqItem); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_ToBeAdded_ModReqItem)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_ToBeAdded_ModReqItem);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeAdded_ModReqItem() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_ToBeAdded_ModReqItem& select_id_E_RABs_ToBeAdded_ModReqItem() { return set(1); } - E_RABs_ToBeAdded_ModReqItem const* get_id_E_RABs_ToBeAdded_ModReqItem() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_ToBeAdded_ModReqItem()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_ToBeAdded_ModReqItem)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeAdded_ModReqItem() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeAdded-List-ModReq ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeAdded-ModReqItemIEs} } -*/ - -struct E_RABs_ToBeAdded_List_ModReq_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_ToBeAdded_List_ModReq_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_ToBeAdded_List_ModReq : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-ToBeAdded-List-ModReq";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-RLCMode-transferred CRITICALITY ignore EXTENSION RLCMode PRESENCE optional}, - ... -} -*/ - -struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresentExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RLCMode_transferred() { set(id_RLCMode_transferred); type=1;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_RLCMode_transferred)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_RLCMode_transferred);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RLCMode_transferred() { set(ignore); type=1;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - RLCMode& select_id_RLCMode_transferred() { return set(1); } - RLCMode const* get_id_RLCMode_transferred() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_RLCMode_transferred()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(RLCMode)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RLCMode_transferred() { set(optional); type=1;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPpresent ::= SEQUENCE { - full-E-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters, - max-MCG-admit-E-RAB-Level-QoS-Parameters GBR-QosInformation OPTIONAL, --- This IE shall be present if MCG resource and SCG resources IEs in the the EN-DC Resource Configuration IE are set to “present” and GBR QoS Information IE is present in Full E-RAB Level QoS Parameters IE -- - dL-Forwarding DL-Forwarding OPTIONAL, - meNB-DL-GTP-TEIDatMCG GTPtunnelEndpoint OPTIONAL, --- This IE shall be present if MCG resource IE in the the EN-DC Resource Configuration IE is set to “present” -- - s1-UL-GTPtunnelEndpoint GTPtunnelEndpoint, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPpresentExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresent : asn::sequence<6, 0, true, 4> -{ - static constexpr const char* name() {return "E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPpresent";} - using parent_t = asn::sequence<6, 0, true, 4>; - struct full_E_RAB_Level_QoS_Parameters_t : E_RAB_Level_QoS_Parameters - { - static constexpr const char* name() {return "full_E_RAB_Level_QoS_Parameters_t";} - using parent_t = E_RAB_Level_QoS_Parameters; - - }; - full_E_RAB_Level_QoS_Parameters_t& ref_full_E_RAB_Level_QoS_Parameters() {return full_E_RAB_Level_QoS_Parameters;} - full_E_RAB_Level_QoS_Parameters_t const& ref_full_E_RAB_Level_QoS_Parameters() const {return full_E_RAB_Level_QoS_Parameters;} - struct max_MCG_admit_E_RAB_Level_QoS_Parameters_t : GBR_QosInformation - { - static constexpr const char* name() {return "max_MCG_admit_E_RAB_Level_QoS_Parameters_t";} - using parent_t = GBR_QosInformation; - static constexpr bool optional = true; - - }; - max_MCG_admit_E_RAB_Level_QoS_Parameters_t& set_max_MCG_admit_E_RAB_Level_QoS_Parameters() { max_MCG_admit_E_RAB_Level_QoS_Parameters.setpresent(true); return max_MCG_admit_E_RAB_Level_QoS_Parameters;} - max_MCG_admit_E_RAB_Level_QoS_Parameters_t const* get_max_MCG_admit_E_RAB_Level_QoS_Parameters() const {return max_MCG_admit_E_RAB_Level_QoS_Parameters.is_valid() ? &max_MCG_admit_E_RAB_Level_QoS_Parameters : nullptr;} - struct dL_Forwarding_t : DL_Forwarding - { - static constexpr const char* name() {return "dL_Forwarding_t";} - using parent_t = DL_Forwarding; - static constexpr bool optional = true; - - }; - dL_Forwarding_t& set_dL_Forwarding() { dL_Forwarding.setpresent(true); return dL_Forwarding;} - dL_Forwarding_t const* get_dL_Forwarding() const {return dL_Forwarding.is_valid() ? &dL_Forwarding : nullptr;} - struct meNB_DL_GTP_TEIDatMCG_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "meNB_DL_GTP_TEIDatMCG_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - meNB_DL_GTP_TEIDatMCG_t& set_meNB_DL_GTP_TEIDatMCG() { meNB_DL_GTP_TEIDatMCG.setpresent(true); return meNB_DL_GTP_TEIDatMCG;} - meNB_DL_GTP_TEIDatMCG_t const* get_meNB_DL_GTP_TEIDatMCG() const {return meNB_DL_GTP_TEIDatMCG.is_valid() ? &meNB_DL_GTP_TEIDatMCG : nullptr;} - struct s1_UL_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "s1_UL_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - - }; - s1_UL_GTPtunnelEndpoint_t& ref_s1_UL_GTPtunnelEndpoint() {return s1_UL_GTPtunnelEndpoint;} - s1_UL_GTPtunnelEndpoint_t const& ref_s1_UL_GTPtunnelEndpoint() const {return s1_UL_GTPtunnelEndpoint;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(full_E_RAB_Level_QoS_Parameters); - v(max_MCG_admit_E_RAB_Level_QoS_Parameters); - v(dL_Forwarding); - v(meNB_DL_GTP_TEIDatMCG); - v(s1_UL_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(full_E_RAB_Level_QoS_Parameters); - v(max_MCG_admit_E_RAB_Level_QoS_Parameters); - v(dL_Forwarding); - v(meNB_DL_GTP_TEIDatMCG); - v(s1_UL_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - void clear() - { - full_E_RAB_Level_QoS_Parameters.clear(); - max_MCG_admit_E_RAB_Level_QoS_Parameters.clear(); - dL_Forwarding.clear(); - meNB_DL_GTP_TEIDatMCG.clear(); - s1_UL_GTPtunnelEndpoint.clear(); - iE_Extensions.clear(); - - }; - private: - full_E_RAB_Level_QoS_Parameters_t full_E_RAB_Level_QoS_Parameters; - max_MCG_admit_E_RAB_Level_QoS_Parameters_t max_MCG_admit_E_RAB_Level_QoS_Parameters; - dL_Forwarding_t dL_Forwarding; - meNB_DL_GTP_TEIDatMCG_t meNB_DL_GTP_TEIDatMCG; - s1_UL_GTPtunnelEndpoint_t s1_UL_GTPtunnelEndpoint; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPnotpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-uLpDCPSnLength CRITICALITY ignore EXTENSION PDCPSnLength PRESENCE optional}| - { ID id-dLPDCPSnLength CRITICALITY ignore EXTENSION PDCPSnLength PRESENCE optional}| - { ID id-duplicationActivation CRITICALITY ignore EXTENSION DuplicationActivation PRESENCE optional}, - ... -} -*/ - -struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresentExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_uLpDCPSnLength() { set(id_uLpDCPSnLength); type=1;} - void select_id_dLPDCPSnLength() { set(id_dLPDCPSnLength); type=2;} - void select_id_duplicationActivation() { set(id_duplicationActivation); type=3;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_uLpDCPSnLength)) { type = 1; return true; } - else if(equal(id_dLPDCPSnLength)) { type = 2; return true; } - else if(equal(id_duplicationActivation)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_uLpDCPSnLength);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_dLPDCPSnLength);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_duplicationActivation);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_uLpDCPSnLength() { set(ignore); type=1;} - void select_id_dLPDCPSnLength() { set(ignore); type=2;} - void select_id_duplicationActivation() { set(ignore); type=3;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - PDCPSnLength& select_id_uLpDCPSnLength() { return set(1); } - PDCPSnLength const* get_id_uLpDCPSnLength() const { return get(1); } - PDCPSnLength& select_id_dLPDCPSnLength() { return set(2); } - PDCPSnLength const* get_id_dLPDCPSnLength() const { return get(2); } - DuplicationActivation& select_id_duplicationActivation() { return set(3); } - DuplicationActivation const* get_id_duplicationActivation() const { return get(3); } - bool is_unknown() const { return type == 4; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_uLpDCPSnLength()); return true; - case 2: v(select_id_dLPDCPSnLength()); return true; - case 3: v(select_id_duplicationActivation()); return true; - case 4: if(type != 4) {clear(); asn::base::set();} type = 4; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(DuplicationActivation)]; - char dummy2[sizeof(PDCPSnLength)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_uLpDCPSnLength() { set(optional); type=1;} - void select_id_dLPDCPSnLength() { set(optional); type=2;} - void select_id_duplicationActivation() { set(optional); type=3;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPnotpresent ::= SEQUENCE { - requested-SCG-E-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters, - meNB-UL-GTP-TEIDatPDCP GTPtunnelEndpoint, - secondary-meNB-UL-GTP-TEIDatPDCP GTPtunnelEndpoint OPTIONAL, - rlc-Mode RLCMode, - uL-Configuration ULConfiguration OPTIONAL, --- This IE shall be present if MCG resource and SCG resources IEs in the the EN-DC Resource Configuration IE are set to “present” -- - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPnotpresentExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresent : asn::sequence<6, 0, true, 3> -{ - static constexpr const char* name() {return "E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPnotpresent";} - using parent_t = asn::sequence<6, 0, true, 3>; - struct requested_SCG_E_RAB_Level_QoS_Parameters_t : E_RAB_Level_QoS_Parameters - { - static constexpr const char* name() {return "requested_SCG_E_RAB_Level_QoS_Parameters_t";} - using parent_t = E_RAB_Level_QoS_Parameters; - - }; - requested_SCG_E_RAB_Level_QoS_Parameters_t& ref_requested_SCG_E_RAB_Level_QoS_Parameters() {return requested_SCG_E_RAB_Level_QoS_Parameters;} - requested_SCG_E_RAB_Level_QoS_Parameters_t const& ref_requested_SCG_E_RAB_Level_QoS_Parameters() const {return requested_SCG_E_RAB_Level_QoS_Parameters;} - struct meNB_UL_GTP_TEIDatPDCP_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "meNB_UL_GTP_TEIDatPDCP_t";} - using parent_t = GTPtunnelEndpoint; - - }; - meNB_UL_GTP_TEIDatPDCP_t& ref_meNB_UL_GTP_TEIDatPDCP() {return meNB_UL_GTP_TEIDatPDCP;} - meNB_UL_GTP_TEIDatPDCP_t const& ref_meNB_UL_GTP_TEIDatPDCP() const {return meNB_UL_GTP_TEIDatPDCP;} - struct secondary_meNB_UL_GTP_TEIDatPDCP_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "secondary_meNB_UL_GTP_TEIDatPDCP_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - secondary_meNB_UL_GTP_TEIDatPDCP_t& set_secondary_meNB_UL_GTP_TEIDatPDCP() { secondary_meNB_UL_GTP_TEIDatPDCP.setpresent(true); return secondary_meNB_UL_GTP_TEIDatPDCP;} - secondary_meNB_UL_GTP_TEIDatPDCP_t const* get_secondary_meNB_UL_GTP_TEIDatPDCP() const {return secondary_meNB_UL_GTP_TEIDatPDCP.is_valid() ? &secondary_meNB_UL_GTP_TEIDatPDCP : nullptr;} - struct rlc_Mode_t : RLCMode - { - static constexpr const char* name() {return "rlc_Mode_t";} - using parent_t = RLCMode; - - }; - rlc_Mode_t& ref_rlc_Mode() {return rlc_Mode;} - rlc_Mode_t const& ref_rlc_Mode() const {return rlc_Mode;} - struct uL_Configuration_t : ULConfiguration - { - static constexpr const char* name() {return "uL_Configuration_t";} - using parent_t = ULConfiguration; - static constexpr bool optional = true; - - }; - uL_Configuration_t& set_uL_Configuration() { uL_Configuration.setpresent(true); return uL_Configuration;} - uL_Configuration_t const* get_uL_Configuration() const {return uL_Configuration.is_valid() ? &uL_Configuration : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(requested_SCG_E_RAB_Level_QoS_Parameters); - v(meNB_UL_GTP_TEIDatPDCP); - v(secondary_meNB_UL_GTP_TEIDatPDCP); - v(rlc_Mode); - v(uL_Configuration); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(requested_SCG_E_RAB_Level_QoS_Parameters); - v(meNB_UL_GTP_TEIDatPDCP); - v(secondary_meNB_UL_GTP_TEIDatPDCP); - v(rlc_Mode); - v(uL_Configuration); - v(iE_Extensions); - - }; - void clear() - { - requested_SCG_E_RAB_Level_QoS_Parameters.clear(); - meNB_UL_GTP_TEIDatPDCP.clear(); - secondary_meNB_UL_GTP_TEIDatPDCP.clear(); - rlc_Mode.clear(); - uL_Configuration.clear(); - iE_Extensions.clear(); - - }; - private: - requested_SCG_E_RAB_Level_QoS_Parameters_t requested_SCG_E_RAB_Level_QoS_Parameters; - meNB_UL_GTP_TEIDatPDCP_t meNB_UL_GTP_TEIDatPDCP; - secondary_meNB_UL_GTP_TEIDatPDCP_t secondary_meNB_UL_GTP_TEIDatPDCP; - rlc_Mode_t rlc_Mode; - uL_Configuration_t uL_Configuration; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeAdded-SgNBAddReq-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_ToBeAdded_SgNBAddReq_ItemExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeAdded-SgNBAddReq-Item ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - drb-ID DRB-ID, - en-DC-ResourceConfiguration EN-DC-ResourceConfiguration, - resource-configuration CHOICE { - sgNBPDCPpresent E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPpresent, - sgNBPDCPnotpresent E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPnotpresent, - ... - }, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeAdded-SgNBAddReq-ItemExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeAdded_SgNBAddReq_Item : asn::sequence<5, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-ToBeAdded-SgNBAddReq-Item";} - using parent_t = asn::sequence<5, 0, true, 1>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct drb_ID_t : DRB_ID - { - static constexpr const char* name() {return "drb_ID_t";} - using parent_t = DRB_ID; - - }; - drb_ID_t& ref_drb_ID() {return drb_ID;} - drb_ID_t const& ref_drb_ID() const {return drb_ID;} - struct en_DC_ResourceConfiguration_t : EN_DC_ResourceConfiguration - { - static constexpr const char* name() {return "en_DC_ResourceConfiguration_t";} - using parent_t = EN_DC_ResourceConfiguration; - - }; - en_DC_ResourceConfiguration_t& ref_en_DC_ResourceConfiguration() {return en_DC_ResourceConfiguration;} - en_DC_ResourceConfiguration_t const& ref_en_DC_ResourceConfiguration() const {return en_DC_ResourceConfiguration;} - struct resource_configuration_t : asn::choice<2, 0, true> - { - static constexpr const char* name() {return "resource_configuration_t";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~resource_configuration_t() {clear();} - struct sgNBPDCPpresent_t : E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresent - { - static constexpr const char* name() {return "sgNBPDCPpresent_t";} - using parent_t = E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresent; - - }; - struct sgNBPDCPnotpresent_t : E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresent - { - static constexpr const char* name() {return "sgNBPDCPnotpresent_t";} - using parent_t = E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresent; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - sgNBPDCPpresent_t& select_sgNBPDCPpresent() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - sgNBPDCPpresent_t const* get_sgNBPDCPpresent() const { if(get_index() == 1) { return &var.as();} return nullptr; } - sgNBPDCPnotpresent_t& select_sgNBPDCPnotpresent() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - sgNBPDCPnotpresent_t const* get_sgNBPDCPnotpresent() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(sgNBPDCPpresent_t)]; - char dummy2[sizeof(sgNBPDCPnotpresent_t)]; - - }; - asn::variant var; - index_type index {0}; - }; - resource_configuration_t& ref_resource_configuration() {return resource_configuration;} - resource_configuration_t const& ref_resource_configuration() const {return resource_configuration;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(drb_ID); - v(en_DC_ResourceConfiguration); - v(resource_configuration); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(drb_ID); - v(en_DC_ResourceConfiguration); - v(resource_configuration); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - drb_ID.clear(); - en_DC_ResourceConfiguration.clear(); - resource_configuration.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - drb_ID_t drb_ID; - en_DC_ResourceConfiguration_t en_DC_ResourceConfiguration; - resource_configuration_t resource_configuration; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeAdded-SgNBAddReq-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-ToBeAdded-SgNBAddReq-Item CRITICALITY reject TYPE E-RABs-ToBeAdded-SgNBAddReq-Item PRESENCE mandatory}, - ... -} -*/ - -struct E_RABs_ToBeAdded_SgNBAddReq_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeAdded_SgNBAddReq_Item() { set(id_E_RABs_ToBeAdded_SgNBAddReq_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_ToBeAdded_SgNBAddReq_Item)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_ToBeAdded_SgNBAddReq_Item);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeAdded_SgNBAddReq_Item() { set(reject); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_ToBeAdded_SgNBAddReq_Item& select_id_E_RABs_ToBeAdded_SgNBAddReq_Item() { return set(1); } - E_RABs_ToBeAdded_SgNBAddReq_Item const* get_id_E_RABs_ToBeAdded_SgNBAddReq_Item() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_ToBeAdded_SgNBAddReq_Item()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_ToBeAdded_SgNBAddReq_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeAdded_SgNBAddReq_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeAdded-SgNBAddReqList ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeAdded-SgNBAddReq-ItemIEs} } -*/ - -struct E_RABs_ToBeAdded_SgNBAddReqList_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_ToBeAdded_SgNBAddReqList_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_ToBeAdded_SgNBAddReqList : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-ToBeAdded-SgNBAddReqList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-RLCMode-transferred CRITICALITY ignore EXTENSION RLCMode PRESENCE optional}, - ... -} -*/ - -struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresentExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RLCMode_transferred() { set(id_RLCMode_transferred); type=1;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_RLCMode_transferred)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_RLCMode_transferred);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RLCMode_transferred() { set(ignore); type=1;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - RLCMode& select_id_RLCMode_transferred() { return set(1); } - RLCMode const* get_id_RLCMode_transferred() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_RLCMode_transferred()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(RLCMode)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RLCMode_transferred() { set(optional); type=1;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPpresent ::= SEQUENCE { - full-E-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters, - max-MN-admit-E-RAB-Level-QoS-Parameters GBR-QosInformation OPTIONAL, --- This IE shall be present if MCG resource and SCG resources IEs in the the EN-DC Resource Configuration IE are set to “present” and GBR QoS Information IE is present in Full E-RAB Level QoS Parameters IE -- - dL-Forwarding DL-Forwarding OPTIONAL, - meNB-DL-GTP-TEIDatMCG GTPtunnelEndpoint OPTIONAL, --- This IE shall be present if MCG resource IE in the the EN-DC Resource Configuration IE is set to “present” -- - s1-UL-GTPtunnelEndpoint GTPtunnelEndpoint, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPpresentExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresent : asn::sequence<6, 0, true, 4> -{ - static constexpr const char* name() {return "E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPpresent";} - using parent_t = asn::sequence<6, 0, true, 4>; - struct full_E_RAB_Level_QoS_Parameters_t : E_RAB_Level_QoS_Parameters - { - static constexpr const char* name() {return "full_E_RAB_Level_QoS_Parameters_t";} - using parent_t = E_RAB_Level_QoS_Parameters; - - }; - full_E_RAB_Level_QoS_Parameters_t& ref_full_E_RAB_Level_QoS_Parameters() {return full_E_RAB_Level_QoS_Parameters;} - full_E_RAB_Level_QoS_Parameters_t const& ref_full_E_RAB_Level_QoS_Parameters() const {return full_E_RAB_Level_QoS_Parameters;} - struct max_MN_admit_E_RAB_Level_QoS_Parameters_t : GBR_QosInformation - { - static constexpr const char* name() {return "max_MN_admit_E_RAB_Level_QoS_Parameters_t";} - using parent_t = GBR_QosInformation; - static constexpr bool optional = true; - - }; - max_MN_admit_E_RAB_Level_QoS_Parameters_t& set_max_MN_admit_E_RAB_Level_QoS_Parameters() { max_MN_admit_E_RAB_Level_QoS_Parameters.setpresent(true); return max_MN_admit_E_RAB_Level_QoS_Parameters;} - max_MN_admit_E_RAB_Level_QoS_Parameters_t const* get_max_MN_admit_E_RAB_Level_QoS_Parameters() const {return max_MN_admit_E_RAB_Level_QoS_Parameters.is_valid() ? &max_MN_admit_E_RAB_Level_QoS_Parameters : nullptr;} - struct dL_Forwarding_t : DL_Forwarding - { - static constexpr const char* name() {return "dL_Forwarding_t";} - using parent_t = DL_Forwarding; - static constexpr bool optional = true; - - }; - dL_Forwarding_t& set_dL_Forwarding() { dL_Forwarding.setpresent(true); return dL_Forwarding;} - dL_Forwarding_t const* get_dL_Forwarding() const {return dL_Forwarding.is_valid() ? &dL_Forwarding : nullptr;} - struct meNB_DL_GTP_TEIDatMCG_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "meNB_DL_GTP_TEIDatMCG_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - meNB_DL_GTP_TEIDatMCG_t& set_meNB_DL_GTP_TEIDatMCG() { meNB_DL_GTP_TEIDatMCG.setpresent(true); return meNB_DL_GTP_TEIDatMCG;} - meNB_DL_GTP_TEIDatMCG_t const* get_meNB_DL_GTP_TEIDatMCG() const {return meNB_DL_GTP_TEIDatMCG.is_valid() ? &meNB_DL_GTP_TEIDatMCG : nullptr;} - struct s1_UL_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "s1_UL_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - - }; - s1_UL_GTPtunnelEndpoint_t& ref_s1_UL_GTPtunnelEndpoint() {return s1_UL_GTPtunnelEndpoint;} - s1_UL_GTPtunnelEndpoint_t const& ref_s1_UL_GTPtunnelEndpoint() const {return s1_UL_GTPtunnelEndpoint;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(full_E_RAB_Level_QoS_Parameters); - v(max_MN_admit_E_RAB_Level_QoS_Parameters); - v(dL_Forwarding); - v(meNB_DL_GTP_TEIDatMCG); - v(s1_UL_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(full_E_RAB_Level_QoS_Parameters); - v(max_MN_admit_E_RAB_Level_QoS_Parameters); - v(dL_Forwarding); - v(meNB_DL_GTP_TEIDatMCG); - v(s1_UL_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - void clear() - { - full_E_RAB_Level_QoS_Parameters.clear(); - max_MN_admit_E_RAB_Level_QoS_Parameters.clear(); - dL_Forwarding.clear(); - meNB_DL_GTP_TEIDatMCG.clear(); - s1_UL_GTPtunnelEndpoint.clear(); - iE_Extensions.clear(); - - }; - private: - full_E_RAB_Level_QoS_Parameters_t full_E_RAB_Level_QoS_Parameters; - max_MN_admit_E_RAB_Level_QoS_Parameters_t max_MN_admit_E_RAB_Level_QoS_Parameters; - dL_Forwarding_t dL_Forwarding; - meNB_DL_GTP_TEIDatMCG_t meNB_DL_GTP_TEIDatMCG; - s1_UL_GTPtunnelEndpoint_t s1_UL_GTPtunnelEndpoint; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPnotpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-uLpDCPSnLength CRITICALITY ignore EXTENSION PDCPSnLength PRESENCE optional}| - { ID id-dLPDCPSnLength CRITICALITY ignore EXTENSION PDCPSnLength PRESENCE optional}| - { ID id-duplicationActivation CRITICALITY ignore EXTENSION DuplicationActivation PRESENCE optional}, - ... -} -*/ - -struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_uLpDCPSnLength() { set(id_uLpDCPSnLength); type=1;} - void select_id_dLPDCPSnLength() { set(id_dLPDCPSnLength); type=2;} - void select_id_duplicationActivation() { set(id_duplicationActivation); type=3;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_uLpDCPSnLength)) { type = 1; return true; } - else if(equal(id_dLPDCPSnLength)) { type = 2; return true; } - else if(equal(id_duplicationActivation)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_uLpDCPSnLength);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_dLPDCPSnLength);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_duplicationActivation);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_uLpDCPSnLength() { set(ignore); type=1;} - void select_id_dLPDCPSnLength() { set(ignore); type=2;} - void select_id_duplicationActivation() { set(ignore); type=3;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - PDCPSnLength& select_id_uLpDCPSnLength() { return set(1); } - PDCPSnLength const* get_id_uLpDCPSnLength() const { return get(1); } - PDCPSnLength& select_id_dLPDCPSnLength() { return set(2); } - PDCPSnLength const* get_id_dLPDCPSnLength() const { return get(2); } - DuplicationActivation& select_id_duplicationActivation() { return set(3); } - DuplicationActivation const* get_id_duplicationActivation() const { return get(3); } - bool is_unknown() const { return type == 4; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_uLpDCPSnLength()); return true; - case 2: v(select_id_dLPDCPSnLength()); return true; - case 3: v(select_id_duplicationActivation()); return true; - case 4: if(type != 4) {clear(); asn::base::set();} type = 4; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(DuplicationActivation)]; - char dummy2[sizeof(PDCPSnLength)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_uLpDCPSnLength() { set(optional); type=1;} - void select_id_dLPDCPSnLength() { set(optional); type=2;} - void select_id_duplicationActivation() { set(optional); type=3;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPnotpresent ::= SEQUENCE { - requested-SCG-E-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters, - meNB-UL-GTP-TEIDatPDCP GTPtunnelEndpoint, - secondary-meNB-UL-GTP-TEIDatPDCP GTPtunnelEndpoint OPTIONAL, - rlc-Mode RLCMode, - uL-Configuration ULConfiguration OPTIONAL, --- This IE shall be present if MCG resource and SCG resources IEs in the the EN-DC Resource Configuration IE are set to “present” -- - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPnotpresentExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresent : asn::sequence<6, 0, true, 3> -{ - static constexpr const char* name() {return "E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPnotpresent";} - using parent_t = asn::sequence<6, 0, true, 3>; - struct requested_SCG_E_RAB_Level_QoS_Parameters_t : E_RAB_Level_QoS_Parameters - { - static constexpr const char* name() {return "requested_SCG_E_RAB_Level_QoS_Parameters_t";} - using parent_t = E_RAB_Level_QoS_Parameters; - - }; - requested_SCG_E_RAB_Level_QoS_Parameters_t& ref_requested_SCG_E_RAB_Level_QoS_Parameters() {return requested_SCG_E_RAB_Level_QoS_Parameters;} - requested_SCG_E_RAB_Level_QoS_Parameters_t const& ref_requested_SCG_E_RAB_Level_QoS_Parameters() const {return requested_SCG_E_RAB_Level_QoS_Parameters;} - struct meNB_UL_GTP_TEIDatPDCP_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "meNB_UL_GTP_TEIDatPDCP_t";} - using parent_t = GTPtunnelEndpoint; - - }; - meNB_UL_GTP_TEIDatPDCP_t& ref_meNB_UL_GTP_TEIDatPDCP() {return meNB_UL_GTP_TEIDatPDCP;} - meNB_UL_GTP_TEIDatPDCP_t const& ref_meNB_UL_GTP_TEIDatPDCP() const {return meNB_UL_GTP_TEIDatPDCP;} - struct secondary_meNB_UL_GTP_TEIDatPDCP_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "secondary_meNB_UL_GTP_TEIDatPDCP_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - secondary_meNB_UL_GTP_TEIDatPDCP_t& set_secondary_meNB_UL_GTP_TEIDatPDCP() { secondary_meNB_UL_GTP_TEIDatPDCP.setpresent(true); return secondary_meNB_UL_GTP_TEIDatPDCP;} - secondary_meNB_UL_GTP_TEIDatPDCP_t const* get_secondary_meNB_UL_GTP_TEIDatPDCP() const {return secondary_meNB_UL_GTP_TEIDatPDCP.is_valid() ? &secondary_meNB_UL_GTP_TEIDatPDCP : nullptr;} - struct rlc_Mode_t : RLCMode - { - static constexpr const char* name() {return "rlc_Mode_t";} - using parent_t = RLCMode; - - }; - rlc_Mode_t& ref_rlc_Mode() {return rlc_Mode;} - rlc_Mode_t const& ref_rlc_Mode() const {return rlc_Mode;} - struct uL_Configuration_t : ULConfiguration - { - static constexpr const char* name() {return "uL_Configuration_t";} - using parent_t = ULConfiguration; - static constexpr bool optional = true; - - }; - uL_Configuration_t& set_uL_Configuration() { uL_Configuration.setpresent(true); return uL_Configuration;} - uL_Configuration_t const* get_uL_Configuration() const {return uL_Configuration.is_valid() ? &uL_Configuration : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(requested_SCG_E_RAB_Level_QoS_Parameters); - v(meNB_UL_GTP_TEIDatPDCP); - v(secondary_meNB_UL_GTP_TEIDatPDCP); - v(rlc_Mode); - v(uL_Configuration); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(requested_SCG_E_RAB_Level_QoS_Parameters); - v(meNB_UL_GTP_TEIDatPDCP); - v(secondary_meNB_UL_GTP_TEIDatPDCP); - v(rlc_Mode); - v(uL_Configuration); - v(iE_Extensions); - - }; - void clear() - { - requested_SCG_E_RAB_Level_QoS_Parameters.clear(); - meNB_UL_GTP_TEIDatPDCP.clear(); - secondary_meNB_UL_GTP_TEIDatPDCP.clear(); - rlc_Mode.clear(); - uL_Configuration.clear(); - iE_Extensions.clear(); - - }; - private: - requested_SCG_E_RAB_Level_QoS_Parameters_t requested_SCG_E_RAB_Level_QoS_Parameters; - meNB_UL_GTP_TEIDatPDCP_t meNB_UL_GTP_TEIDatPDCP; - secondary_meNB_UL_GTP_TEIDatPDCP_t secondary_meNB_UL_GTP_TEIDatPDCP; - rlc_Mode_t rlc_Mode; - uL_Configuration_t uL_Configuration; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeAdded-SgNBModReq-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_ToBeAdded_SgNBModReq_ItemExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeAdded-SgNBModReq-Item ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - drb-ID DRB-ID, - en-DC-ResourceConfiguration EN-DC-ResourceConfiguration, - resource-configuration CHOICE { - sgNBPDCPpresent E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPpresent, - sgNBPDCPnotpresent E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPnotpresent, - ... - }, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeAdded-SgNBModReq-ItemExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeAdded_SgNBModReq_Item : asn::sequence<5, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-ToBeAdded-SgNBModReq-Item";} - using parent_t = asn::sequence<5, 0, true, 1>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct drb_ID_t : DRB_ID - { - static constexpr const char* name() {return "drb_ID_t";} - using parent_t = DRB_ID; - - }; - drb_ID_t& ref_drb_ID() {return drb_ID;} - drb_ID_t const& ref_drb_ID() const {return drb_ID;} - struct en_DC_ResourceConfiguration_t : EN_DC_ResourceConfiguration - { - static constexpr const char* name() {return "en_DC_ResourceConfiguration_t";} - using parent_t = EN_DC_ResourceConfiguration; - - }; - en_DC_ResourceConfiguration_t& ref_en_DC_ResourceConfiguration() {return en_DC_ResourceConfiguration;} - en_DC_ResourceConfiguration_t const& ref_en_DC_ResourceConfiguration() const {return en_DC_ResourceConfiguration;} - struct resource_configuration_t : asn::choice<2, 0, true> - { - static constexpr const char* name() {return "resource_configuration_t";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~resource_configuration_t() {clear();} - struct sgNBPDCPpresent_t : E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresent - { - static constexpr const char* name() {return "sgNBPDCPpresent_t";} - using parent_t = E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresent; - - }; - struct sgNBPDCPnotpresent_t : E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresent - { - static constexpr const char* name() {return "sgNBPDCPnotpresent_t";} - using parent_t = E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresent; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - sgNBPDCPpresent_t& select_sgNBPDCPpresent() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - sgNBPDCPpresent_t const* get_sgNBPDCPpresent() const { if(get_index() == 1) { return &var.as();} return nullptr; } - sgNBPDCPnotpresent_t& select_sgNBPDCPnotpresent() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - sgNBPDCPnotpresent_t const* get_sgNBPDCPnotpresent() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(sgNBPDCPpresent_t)]; - char dummy2[sizeof(sgNBPDCPnotpresent_t)]; - - }; - asn::variant var; - index_type index {0}; - }; - resource_configuration_t& ref_resource_configuration() {return resource_configuration;} - resource_configuration_t const& ref_resource_configuration() const {return resource_configuration;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(drb_ID); - v(en_DC_ResourceConfiguration); - v(resource_configuration); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(drb_ID); - v(en_DC_ResourceConfiguration); - v(resource_configuration); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - drb_ID.clear(); - en_DC_ResourceConfiguration.clear(); - resource_configuration.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - drb_ID_t drb_ID; - en_DC_ResourceConfiguration_t en_DC_ResourceConfiguration; - resource_configuration_t resource_configuration; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeAdded-SgNBModReq-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-ToBeAdded-SgNBModReq-Item CRITICALITY ignore TYPE E-RABs-ToBeAdded-SgNBModReq-Item PRESENCE mandatory}, - ... -} -*/ - -struct E_RABs_ToBeAdded_SgNBModReq_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeAdded_SgNBModReq_Item() { set(id_E_RABs_ToBeAdded_SgNBModReq_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_ToBeAdded_SgNBModReq_Item)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_ToBeAdded_SgNBModReq_Item);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeAdded_SgNBModReq_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_ToBeAdded_SgNBModReq_Item& select_id_E_RABs_ToBeAdded_SgNBModReq_Item() { return set(1); } - E_RABs_ToBeAdded_SgNBModReq_Item const* get_id_E_RABs_ToBeAdded_SgNBModReq_Item() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_ToBeAdded_SgNBModReq_Item()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_ToBeAdded_SgNBModReq_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeAdded_SgNBModReq_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeAdded-SgNBModReq-List ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeAdded-SgNBModReq-ItemIEs} } -*/ - -struct E_RABs_ToBeAdded_SgNBModReq_List_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_ToBeAdded_SgNBModReq_List_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_ToBeAdded_SgNBModReq_List : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-ToBeAdded-SgNBModReq-List";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-ToBeModified-ModReqItem-SCG-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_ToBeModified_ModReqItem_SCG_BearerExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeModified-ModReqItem-SCG-Bearer ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - e-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters OPTIONAL, - s1-UL-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeModified-ModReqItem-SCG-BearerExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeModified_ModReqItem_SCG_Bearer : asn::sequence<4, 0, true, 3> -{ - static constexpr const char* name() {return "E-RABs-ToBeModified-ModReqItem-SCG-Bearer";} - using parent_t = asn::sequence<4, 0, true, 3>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct e_RAB_Level_QoS_Parameters_t : E_RAB_Level_QoS_Parameters - { - static constexpr const char* name() {return "e_RAB_Level_QoS_Parameters_t";} - using parent_t = E_RAB_Level_QoS_Parameters; - static constexpr bool optional = true; - - }; - e_RAB_Level_QoS_Parameters_t& set_e_RAB_Level_QoS_Parameters() { e_RAB_Level_QoS_Parameters.setpresent(true); return e_RAB_Level_QoS_Parameters;} - e_RAB_Level_QoS_Parameters_t const* get_e_RAB_Level_QoS_Parameters() const {return e_RAB_Level_QoS_Parameters.is_valid() ? &e_RAB_Level_QoS_Parameters : nullptr;} - struct s1_UL_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "s1_UL_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - s1_UL_GTPtunnelEndpoint_t& set_s1_UL_GTPtunnelEndpoint() { s1_UL_GTPtunnelEndpoint.setpresent(true); return s1_UL_GTPtunnelEndpoint;} - s1_UL_GTPtunnelEndpoint_t const* get_s1_UL_GTPtunnelEndpoint() const {return s1_UL_GTPtunnelEndpoint.is_valid() ? &s1_UL_GTPtunnelEndpoint : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(e_RAB_Level_QoS_Parameters); - v(s1_UL_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(e_RAB_Level_QoS_Parameters); - v(s1_UL_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - e_RAB_Level_QoS_Parameters.clear(); - s1_UL_GTPtunnelEndpoint.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - e_RAB_Level_QoS_Parameters_t e_RAB_Level_QoS_Parameters; - s1_UL_GTPtunnelEndpoint_t s1_UL_GTPtunnelEndpoint; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeModified-ModReqItem-Split-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_ToBeModified_ModReqItem_Split_BearerExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeModified-ModReqItem-Split-Bearer ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - e-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters OPTIONAL, - meNB-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeModified-ModReqItem-Split-BearerExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeModified_ModReqItem_Split_Bearer : asn::sequence<4, 0, true, 3> -{ - static constexpr const char* name() {return "E-RABs-ToBeModified-ModReqItem-Split-Bearer";} - using parent_t = asn::sequence<4, 0, true, 3>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct e_RAB_Level_QoS_Parameters_t : E_RAB_Level_QoS_Parameters - { - static constexpr const char* name() {return "e_RAB_Level_QoS_Parameters_t";} - using parent_t = E_RAB_Level_QoS_Parameters; - static constexpr bool optional = true; - - }; - e_RAB_Level_QoS_Parameters_t& set_e_RAB_Level_QoS_Parameters() { e_RAB_Level_QoS_Parameters.setpresent(true); return e_RAB_Level_QoS_Parameters;} - e_RAB_Level_QoS_Parameters_t const* get_e_RAB_Level_QoS_Parameters() const {return e_RAB_Level_QoS_Parameters.is_valid() ? &e_RAB_Level_QoS_Parameters : nullptr;} - struct meNB_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "meNB_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - meNB_GTPtunnelEndpoint_t& set_meNB_GTPtunnelEndpoint() { meNB_GTPtunnelEndpoint.setpresent(true); return meNB_GTPtunnelEndpoint;} - meNB_GTPtunnelEndpoint_t const* get_meNB_GTPtunnelEndpoint() const {return meNB_GTPtunnelEndpoint.is_valid() ? &meNB_GTPtunnelEndpoint : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(e_RAB_Level_QoS_Parameters); - v(meNB_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(e_RAB_Level_QoS_Parameters); - v(meNB_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - e_RAB_Level_QoS_Parameters.clear(); - meNB_GTPtunnelEndpoint.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - e_RAB_Level_QoS_Parameters_t e_RAB_Level_QoS_Parameters; - meNB_GTPtunnelEndpoint_t meNB_GTPtunnelEndpoint; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeModified-ModReqItem ::= CHOICE { - sCG-Bearer E-RABs-ToBeModified-ModReqItem-SCG-Bearer, - split-Bearer E-RABs-ToBeModified-ModReqItem-Split-Bearer, - ... -} -*/ - -struct E_RABs_ToBeModified_ModReqItem : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "E-RABs-ToBeModified-ModReqItem";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~E_RABs_ToBeModified_ModReqItem() {clear();} - struct sCG_Bearer_t : E_RABs_ToBeModified_ModReqItem_SCG_Bearer - { - static constexpr const char* name() {return "sCG_Bearer_t";} - using parent_t = E_RABs_ToBeModified_ModReqItem_SCG_Bearer; - - }; - struct split_Bearer_t : E_RABs_ToBeModified_ModReqItem_Split_Bearer - { - static constexpr const char* name() {return "split_Bearer_t";} - using parent_t = E_RABs_ToBeModified_ModReqItem_Split_Bearer; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - sCG_Bearer_t& select_sCG_Bearer() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - sCG_Bearer_t const* get_sCG_Bearer() const { if(get_index() == 1) { return &var.as();} return nullptr; } - split_Bearer_t& select_split_Bearer() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - split_Bearer_t const* get_split_Bearer() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(sCG_Bearer_t)]; - char dummy2[sizeof(split_Bearer_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -E-RABs-ToBeModified-ModReqItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-ToBeModified-ModReqItem CRITICALITY ignore TYPE E-RABs-ToBeModified-ModReqItem PRESENCE mandatory}, - ... -} -*/ - -struct E_RABs_ToBeModified_ModReqItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeModified_ModReqItem() { set(id_E_RABs_ToBeModified_ModReqItem); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_ToBeModified_ModReqItem)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_ToBeModified_ModReqItem);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeModified_ModReqItem() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_ToBeModified_ModReqItem& select_id_E_RABs_ToBeModified_ModReqItem() { return set(1); } - E_RABs_ToBeModified_ModReqItem const* get_id_E_RABs_ToBeModified_ModReqItem() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_ToBeModified_ModReqItem()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_ToBeModified_ModReqItem)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeModified_ModReqItem() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeModified-List-ModReq ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeModified-ModReqItemIEs} } -*/ - -struct E_RABs_ToBeModified_List_ModReq_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_ToBeModified_List_ModReq_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_ToBeModified_List_ModReq : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-ToBeModified-List-ModReq";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-RLC-Status CRITICALITY ignore EXTENSION RLC-Status PRESENCE optional }, - ... -} -*/ - -struct E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresentExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RLC_Status() { set(id_RLC_Status); type=1;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_RLC_Status)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_RLC_Status);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RLC_Status() { set(ignore); type=1;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - RLC_Status& select_id_RLC_Status() { return set(1); } - RLC_Status const* get_id_RLC_Status() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_RLC_Status()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(RLC_Status)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RLC_Status() { set(optional); type=1;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPpresent ::= SEQUENCE { - full-E-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters OPTIONAL, - max-MN-admit-E-RAB-Level-QoS-Parameters GBR-QosInformation OPTIONAL, - meNB-DL-GTP-TEIDatMCG GTPtunnelEndpoint OPTIONAL, - s1-UL-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPpresentExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresent : asn::sequence<5, 0, true, 5> -{ - static constexpr const char* name() {return "E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPpresent";} - using parent_t = asn::sequence<5, 0, true, 5>; - struct full_E_RAB_Level_QoS_Parameters_t : E_RAB_Level_QoS_Parameters - { - static constexpr const char* name() {return "full_E_RAB_Level_QoS_Parameters_t";} - using parent_t = E_RAB_Level_QoS_Parameters; - static constexpr bool optional = true; - - }; - full_E_RAB_Level_QoS_Parameters_t& set_full_E_RAB_Level_QoS_Parameters() { full_E_RAB_Level_QoS_Parameters.setpresent(true); return full_E_RAB_Level_QoS_Parameters;} - full_E_RAB_Level_QoS_Parameters_t const* get_full_E_RAB_Level_QoS_Parameters() const {return full_E_RAB_Level_QoS_Parameters.is_valid() ? &full_E_RAB_Level_QoS_Parameters : nullptr;} - struct max_MN_admit_E_RAB_Level_QoS_Parameters_t : GBR_QosInformation - { - static constexpr const char* name() {return "max_MN_admit_E_RAB_Level_QoS_Parameters_t";} - using parent_t = GBR_QosInformation; - static constexpr bool optional = true; - - }; - max_MN_admit_E_RAB_Level_QoS_Parameters_t& set_max_MN_admit_E_RAB_Level_QoS_Parameters() { max_MN_admit_E_RAB_Level_QoS_Parameters.setpresent(true); return max_MN_admit_E_RAB_Level_QoS_Parameters;} - max_MN_admit_E_RAB_Level_QoS_Parameters_t const* get_max_MN_admit_E_RAB_Level_QoS_Parameters() const {return max_MN_admit_E_RAB_Level_QoS_Parameters.is_valid() ? &max_MN_admit_E_RAB_Level_QoS_Parameters : nullptr;} - struct meNB_DL_GTP_TEIDatMCG_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "meNB_DL_GTP_TEIDatMCG_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - meNB_DL_GTP_TEIDatMCG_t& set_meNB_DL_GTP_TEIDatMCG() { meNB_DL_GTP_TEIDatMCG.setpresent(true); return meNB_DL_GTP_TEIDatMCG;} - meNB_DL_GTP_TEIDatMCG_t const* get_meNB_DL_GTP_TEIDatMCG() const {return meNB_DL_GTP_TEIDatMCG.is_valid() ? &meNB_DL_GTP_TEIDatMCG : nullptr;} - struct s1_UL_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "s1_UL_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - s1_UL_GTPtunnelEndpoint_t& set_s1_UL_GTPtunnelEndpoint() { s1_UL_GTPtunnelEndpoint.setpresent(true); return s1_UL_GTPtunnelEndpoint;} - s1_UL_GTPtunnelEndpoint_t const* get_s1_UL_GTPtunnelEndpoint() const {return s1_UL_GTPtunnelEndpoint.is_valid() ? &s1_UL_GTPtunnelEndpoint : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(full_E_RAB_Level_QoS_Parameters); - v(max_MN_admit_E_RAB_Level_QoS_Parameters); - v(meNB_DL_GTP_TEIDatMCG); - v(s1_UL_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(full_E_RAB_Level_QoS_Parameters); - v(max_MN_admit_E_RAB_Level_QoS_Parameters); - v(meNB_DL_GTP_TEIDatMCG); - v(s1_UL_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - void clear() - { - full_E_RAB_Level_QoS_Parameters.clear(); - max_MN_admit_E_RAB_Level_QoS_Parameters.clear(); - meNB_DL_GTP_TEIDatMCG.clear(); - s1_UL_GTPtunnelEndpoint.clear(); - iE_Extensions.clear(); - - }; - private: - full_E_RAB_Level_QoS_Parameters_t full_E_RAB_Level_QoS_Parameters; - max_MN_admit_E_RAB_Level_QoS_Parameters_t max_MN_admit_E_RAB_Level_QoS_Parameters; - meNB_DL_GTP_TEIDatMCG_t meNB_DL_GTP_TEIDatMCG; - s1_UL_GTPtunnelEndpoint_t s1_UL_GTPtunnelEndpoint; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPnotpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-uLpDCPSnLength CRITICALITY ignore EXTENSION PDCPSnLength PRESENCE optional}| - { ID id-dLPDCPSnLength CRITICALITY ignore EXTENSION PDCPSnLength PRESENCE optional}| - { ID id-secondarymeNBULGTPTEIDatPDCP CRITICALITY ignore EXTENSION GTPtunnelEndpoint PRESENCE optional}, - ... -} -*/ - -struct E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_uLpDCPSnLength() { set(id_uLpDCPSnLength); type=1;} - void select_id_dLPDCPSnLength() { set(id_dLPDCPSnLength); type=2;} - void select_id_secondarymeNBULGTPTEIDatPDCP() { set(id_secondarymeNBULGTPTEIDatPDCP); type=3;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_uLpDCPSnLength)) { type = 1; return true; } - else if(equal(id_dLPDCPSnLength)) { type = 2; return true; } - else if(equal(id_secondarymeNBULGTPTEIDatPDCP)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_uLpDCPSnLength);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_dLPDCPSnLength);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_secondarymeNBULGTPTEIDatPDCP);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_uLpDCPSnLength() { set(ignore); type=1;} - void select_id_dLPDCPSnLength() { set(ignore); type=2;} - void select_id_secondarymeNBULGTPTEIDatPDCP() { set(ignore); type=3;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - PDCPSnLength& select_id_uLpDCPSnLength() { return set(1); } - PDCPSnLength const* get_id_uLpDCPSnLength() const { return get(1); } - PDCPSnLength& select_id_dLPDCPSnLength() { return set(2); } - PDCPSnLength const* get_id_dLPDCPSnLength() const { return get(2); } - GTPtunnelEndpoint& select_id_secondarymeNBULGTPTEIDatPDCP() { return set(3); } - GTPtunnelEndpoint const* get_id_secondarymeNBULGTPTEIDatPDCP() const { return get(3); } - bool is_unknown() const { return type == 4; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_uLpDCPSnLength()); return true; - case 2: v(select_id_dLPDCPSnLength()); return true; - case 3: v(select_id_secondarymeNBULGTPTEIDatPDCP()); return true; - case 4: if(type != 4) {clear(); asn::base::set();} type = 4; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(GTPtunnelEndpoint)]; - char dummy2[sizeof(PDCPSnLength)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_uLpDCPSnLength() { set(optional); type=1;} - void select_id_dLPDCPSnLength() { set(optional); type=2;} - void select_id_secondarymeNBULGTPTEIDatPDCP() { set(optional); type=3;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPnotpresent ::= SEQUENCE { - requested-SCG-E-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters OPTIONAL, - meNB-UL-GTP-TEIDatPDCP GTPtunnelEndpoint OPTIONAL, - uL-Configuration ULConfiguration OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPnotpresentExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresent : asn::sequence<4, 0, true, 4> -{ - static constexpr const char* name() {return "E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPnotpresent";} - using parent_t = asn::sequence<4, 0, true, 4>; - struct requested_SCG_E_RAB_Level_QoS_Parameters_t : E_RAB_Level_QoS_Parameters - { - static constexpr const char* name() {return "requested_SCG_E_RAB_Level_QoS_Parameters_t";} - using parent_t = E_RAB_Level_QoS_Parameters; - static constexpr bool optional = true; - - }; - requested_SCG_E_RAB_Level_QoS_Parameters_t& set_requested_SCG_E_RAB_Level_QoS_Parameters() { requested_SCG_E_RAB_Level_QoS_Parameters.setpresent(true); return requested_SCG_E_RAB_Level_QoS_Parameters;} - requested_SCG_E_RAB_Level_QoS_Parameters_t const* get_requested_SCG_E_RAB_Level_QoS_Parameters() const {return requested_SCG_E_RAB_Level_QoS_Parameters.is_valid() ? &requested_SCG_E_RAB_Level_QoS_Parameters : nullptr;} - struct meNB_UL_GTP_TEIDatPDCP_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "meNB_UL_GTP_TEIDatPDCP_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - meNB_UL_GTP_TEIDatPDCP_t& set_meNB_UL_GTP_TEIDatPDCP() { meNB_UL_GTP_TEIDatPDCP.setpresent(true); return meNB_UL_GTP_TEIDatPDCP;} - meNB_UL_GTP_TEIDatPDCP_t const* get_meNB_UL_GTP_TEIDatPDCP() const {return meNB_UL_GTP_TEIDatPDCP.is_valid() ? &meNB_UL_GTP_TEIDatPDCP : nullptr;} - struct uL_Configuration_t : ULConfiguration - { - static constexpr const char* name() {return "uL_Configuration_t";} - using parent_t = ULConfiguration; - static constexpr bool optional = true; - - }; - uL_Configuration_t& set_uL_Configuration() { uL_Configuration.setpresent(true); return uL_Configuration;} - uL_Configuration_t const* get_uL_Configuration() const {return uL_Configuration.is_valid() ? &uL_Configuration : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(requested_SCG_E_RAB_Level_QoS_Parameters); - v(meNB_UL_GTP_TEIDatPDCP); - v(uL_Configuration); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(requested_SCG_E_RAB_Level_QoS_Parameters); - v(meNB_UL_GTP_TEIDatPDCP); - v(uL_Configuration); - v(iE_Extensions); - - }; - void clear() - { - requested_SCG_E_RAB_Level_QoS_Parameters.clear(); - meNB_UL_GTP_TEIDatPDCP.clear(); - uL_Configuration.clear(); - iE_Extensions.clear(); - - }; - private: - requested_SCG_E_RAB_Level_QoS_Parameters_t requested_SCG_E_RAB_Level_QoS_Parameters; - meNB_UL_GTP_TEIDatPDCP_t meNB_UL_GTP_TEIDatPDCP; - uL_Configuration_t uL_Configuration; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeModified-SgNBModReq-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_ToBeModified_SgNBModReq_ItemExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeModified-SgNBModReq-Item ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - en-DC-ResourceConfiguration EN-DC-ResourceConfiguration, - resource-configuration CHOICE { - sgNBPDCPpresent E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPpresent, - sgNBPDCPnotpresent E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPnotpresent, - ... - }, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeModified-SgNBModReq-ItemExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeModified_SgNBModReq_Item : asn::sequence<4, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-ToBeModified-SgNBModReq-Item";} - using parent_t = asn::sequence<4, 0, true, 1>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct en_DC_ResourceConfiguration_t : EN_DC_ResourceConfiguration - { - static constexpr const char* name() {return "en_DC_ResourceConfiguration_t";} - using parent_t = EN_DC_ResourceConfiguration; - - }; - en_DC_ResourceConfiguration_t& ref_en_DC_ResourceConfiguration() {return en_DC_ResourceConfiguration;} - en_DC_ResourceConfiguration_t const& ref_en_DC_ResourceConfiguration() const {return en_DC_ResourceConfiguration;} - struct resource_configuration_t : asn::choice<2, 0, true> - { - static constexpr const char* name() {return "resource_configuration_t";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~resource_configuration_t() {clear();} - struct sgNBPDCPpresent_t : E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresent - { - static constexpr const char* name() {return "sgNBPDCPpresent_t";} - using parent_t = E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresent; - - }; - struct sgNBPDCPnotpresent_t : E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresent - { - static constexpr const char* name() {return "sgNBPDCPnotpresent_t";} - using parent_t = E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresent; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - sgNBPDCPpresent_t& select_sgNBPDCPpresent() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - sgNBPDCPpresent_t const* get_sgNBPDCPpresent() const { if(get_index() == 1) { return &var.as();} return nullptr; } - sgNBPDCPnotpresent_t& select_sgNBPDCPnotpresent() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - sgNBPDCPnotpresent_t const* get_sgNBPDCPnotpresent() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(sgNBPDCPpresent_t)]; - char dummy2[sizeof(sgNBPDCPnotpresent_t)]; - - }; - asn::variant var; - index_type index {0}; - }; - resource_configuration_t& ref_resource_configuration() {return resource_configuration;} - resource_configuration_t const& ref_resource_configuration() const {return resource_configuration;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(en_DC_ResourceConfiguration); - v(resource_configuration); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(en_DC_ResourceConfiguration); - v(resource_configuration); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - en_DC_ResourceConfiguration.clear(); - resource_configuration.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - en_DC_ResourceConfiguration_t en_DC_ResourceConfiguration; - resource_configuration_t resource_configuration; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeModified-SgNBModReq-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-ToBeModified-SgNBModReq-Item CRITICALITY ignore TYPE E-RABs-ToBeModified-SgNBModReq-Item PRESENCE mandatory}, - ... -} -*/ - -struct E_RABs_ToBeModified_SgNBModReq_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeModified_SgNBModReq_Item() { set(id_E_RABs_ToBeModified_SgNBModReq_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_ToBeModified_SgNBModReq_Item)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_ToBeModified_SgNBModReq_Item);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeModified_SgNBModReq_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_ToBeModified_SgNBModReq_Item& select_id_E_RABs_ToBeModified_SgNBModReq_Item() { return set(1); } - E_RABs_ToBeModified_SgNBModReq_Item const* get_id_E_RABs_ToBeModified_SgNBModReq_Item() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_ToBeModified_SgNBModReq_Item()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_ToBeModified_SgNBModReq_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeModified_SgNBModReq_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeModified-SgNBModReq-List ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeModified-SgNBModReq-ItemIEs} } -*/ - -struct E_RABs_ToBeModified_SgNBModReq_List_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_ToBeModified_SgNBModReq_List_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_ToBeModified_SgNBModReq_List : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-ToBeModified-SgNBModReq-List";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-uLpDCPSnLength CRITICALITY ignore EXTENSION PDCPSnLength PRESENCE optional}| - { ID id-dLPDCPSnLength CRITICALITY ignore EXTENSION PDCPSnLength PRESENCE optional}| - { ID id-new-drb-ID-req CRITICALITY ignore EXTENSION NewDRBIDrequest PRESENCE optional}, - ... -} -*/ - -struct E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresentExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_uLpDCPSnLength() { set(id_uLpDCPSnLength); type=1;} - void select_id_dLPDCPSnLength() { set(id_dLPDCPSnLength); type=2;} - void select_id_new_drb_ID_req() { set(id_new_drb_ID_req); type=3;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_uLpDCPSnLength)) { type = 1; return true; } - else if(equal(id_dLPDCPSnLength)) { type = 2; return true; } - else if(equal(id_new_drb_ID_req)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_uLpDCPSnLength);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_dLPDCPSnLength);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_new_drb_ID_req);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_uLpDCPSnLength() { set(ignore); type=1;} - void select_id_dLPDCPSnLength() { set(ignore); type=2;} - void select_id_new_drb_ID_req() { set(ignore); type=3;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - PDCPSnLength& select_id_uLpDCPSnLength() { return set(1); } - PDCPSnLength const* get_id_uLpDCPSnLength() const { return get(1); } - PDCPSnLength& select_id_dLPDCPSnLength() { return set(2); } - PDCPSnLength const* get_id_dLPDCPSnLength() const { return get(2); } - NewDRBIDrequest& select_id_new_drb_ID_req() { return set(3); } - NewDRBIDrequest const* get_id_new_drb_ID_req() const { return get(3); } - bool is_unknown() const { return type == 4; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_uLpDCPSnLength()); return true; - case 2: v(select_id_dLPDCPSnLength()); return true; - case 3: v(select_id_new_drb_ID_req()); return true; - case 4: if(type != 4) {clear(); asn::base::set();} type = 4; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(NewDRBIDrequest)]; - char dummy2[sizeof(PDCPSnLength)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_uLpDCPSnLength() { set(optional); type=1;} - void select_id_dLPDCPSnLength() { set(optional); type=2;} - void select_id_new_drb_ID_req() { set(optional); type=3;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPpresent ::= SEQUENCE { - requested-MCG-E-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters OPTIONAL, - uL-Configuration ULConfiguration OPTIONAL, - sgNB-UL-GTP-TEIDatPDCP GTPtunnelEndpoint OPTIONAL, - s1-DL-GTP-TEIDatSgNB GTPtunnelEndpoint OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPpresentExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresent : asn::sequence<5, 0, true, 5> -{ - static constexpr const char* name() {return "E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPpresent";} - using parent_t = asn::sequence<5, 0, true, 5>; - struct requested_MCG_E_RAB_Level_QoS_Parameters_t : E_RAB_Level_QoS_Parameters - { - static constexpr const char* name() {return "requested_MCG_E_RAB_Level_QoS_Parameters_t";} - using parent_t = E_RAB_Level_QoS_Parameters; - static constexpr bool optional = true; - - }; - requested_MCG_E_RAB_Level_QoS_Parameters_t& set_requested_MCG_E_RAB_Level_QoS_Parameters() { requested_MCG_E_RAB_Level_QoS_Parameters.setpresent(true); return requested_MCG_E_RAB_Level_QoS_Parameters;} - requested_MCG_E_RAB_Level_QoS_Parameters_t const* get_requested_MCG_E_RAB_Level_QoS_Parameters() const {return requested_MCG_E_RAB_Level_QoS_Parameters.is_valid() ? &requested_MCG_E_RAB_Level_QoS_Parameters : nullptr;} - struct uL_Configuration_t : ULConfiguration - { - static constexpr const char* name() {return "uL_Configuration_t";} - using parent_t = ULConfiguration; - static constexpr bool optional = true; - - }; - uL_Configuration_t& set_uL_Configuration() { uL_Configuration.setpresent(true); return uL_Configuration;} - uL_Configuration_t const* get_uL_Configuration() const {return uL_Configuration.is_valid() ? &uL_Configuration : nullptr;} - struct sgNB_UL_GTP_TEIDatPDCP_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "sgNB_UL_GTP_TEIDatPDCP_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - sgNB_UL_GTP_TEIDatPDCP_t& set_sgNB_UL_GTP_TEIDatPDCP() { sgNB_UL_GTP_TEIDatPDCP.setpresent(true); return sgNB_UL_GTP_TEIDatPDCP;} - sgNB_UL_GTP_TEIDatPDCP_t const* get_sgNB_UL_GTP_TEIDatPDCP() const {return sgNB_UL_GTP_TEIDatPDCP.is_valid() ? &sgNB_UL_GTP_TEIDatPDCP : nullptr;} - struct s1_DL_GTP_TEIDatSgNB_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "s1_DL_GTP_TEIDatSgNB_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - s1_DL_GTP_TEIDatSgNB_t& set_s1_DL_GTP_TEIDatSgNB() { s1_DL_GTP_TEIDatSgNB.setpresent(true); return s1_DL_GTP_TEIDatSgNB;} - s1_DL_GTP_TEIDatSgNB_t const* get_s1_DL_GTP_TEIDatSgNB() const {return s1_DL_GTP_TEIDatSgNB.is_valid() ? &s1_DL_GTP_TEIDatSgNB : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(requested_MCG_E_RAB_Level_QoS_Parameters); - v(uL_Configuration); - v(sgNB_UL_GTP_TEIDatPDCP); - v(s1_DL_GTP_TEIDatSgNB); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(requested_MCG_E_RAB_Level_QoS_Parameters); - v(uL_Configuration); - v(sgNB_UL_GTP_TEIDatPDCP); - v(s1_DL_GTP_TEIDatSgNB); - v(iE_Extensions); - - }; - void clear() - { - requested_MCG_E_RAB_Level_QoS_Parameters.clear(); - uL_Configuration.clear(); - sgNB_UL_GTP_TEIDatPDCP.clear(); - s1_DL_GTP_TEIDatSgNB.clear(); - iE_Extensions.clear(); - - }; - private: - requested_MCG_E_RAB_Level_QoS_Parameters_t requested_MCG_E_RAB_Level_QoS_Parameters; - uL_Configuration_t uL_Configuration; - sgNB_UL_GTP_TEIDatPDCP_t sgNB_UL_GTP_TEIDatPDCP; - s1_DL_GTP_TEIDatSgNB_t s1_DL_GTP_TEIDatSgNB; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPnotpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-RLC-Status CRITICALITY ignore EXTENSION RLC-Status PRESENCE optional}| - { ID id-lCID CRITICALITY ignore EXTENSION LCID PRESENCE optional}, - ... -} -*/ - -struct E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresentExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_RLC_Status() { set(id_RLC_Status); type=1;} - void select_id_lCID() { set(id_lCID); type=2;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_RLC_Status)) { type = 1; return true; } - else if(equal(id_lCID)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_RLC_Status);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_lCID);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_RLC_Status() { set(ignore); type=1;} - void select_id_lCID() { set(ignore); type=2;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - RLC_Status& select_id_RLC_Status() { return set(1); } - RLC_Status const* get_id_RLC_Status() const { return get(1); } - LCID& select_id_lCID() { return set(2); } - LCID const* get_id_lCID() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_RLC_Status()); return true; - case 2: v(select_id_lCID()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(LCID)]; - char dummy2[sizeof(RLC_Status)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_RLC_Status() { set(optional); type=1;} - void select_id_lCID() { set(optional); type=2;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPnotpresent ::= SEQUENCE { - sgNB-DL-GTP-TEIDatSCG GTPtunnelEndpoint OPTIONAL, - secondary-sgNB-DL-GTP-TEIDatSCG GTPtunnelEndpoint OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPnotpresentExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresent : asn::sequence<3, 0, true, 3> -{ - static constexpr const char* name() {return "E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPnotpresent";} - using parent_t = asn::sequence<3, 0, true, 3>; - struct sgNB_DL_GTP_TEIDatSCG_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "sgNB_DL_GTP_TEIDatSCG_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - sgNB_DL_GTP_TEIDatSCG_t& set_sgNB_DL_GTP_TEIDatSCG() { sgNB_DL_GTP_TEIDatSCG.setpresent(true); return sgNB_DL_GTP_TEIDatSCG;} - sgNB_DL_GTP_TEIDatSCG_t const* get_sgNB_DL_GTP_TEIDatSCG() const {return sgNB_DL_GTP_TEIDatSCG.is_valid() ? &sgNB_DL_GTP_TEIDatSCG : nullptr;} - struct secondary_sgNB_DL_GTP_TEIDatSCG_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "secondary_sgNB_DL_GTP_TEIDatSCG_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - secondary_sgNB_DL_GTP_TEIDatSCG_t& set_secondary_sgNB_DL_GTP_TEIDatSCG() { secondary_sgNB_DL_GTP_TEIDatSCG.setpresent(true); return secondary_sgNB_DL_GTP_TEIDatSCG;} - secondary_sgNB_DL_GTP_TEIDatSCG_t const* get_secondary_sgNB_DL_GTP_TEIDatSCG() const {return secondary_sgNB_DL_GTP_TEIDatSCG.is_valid() ? &secondary_sgNB_DL_GTP_TEIDatSCG : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(sgNB_DL_GTP_TEIDatSCG); - v(secondary_sgNB_DL_GTP_TEIDatSCG); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(sgNB_DL_GTP_TEIDatSCG); - v(secondary_sgNB_DL_GTP_TEIDatSCG); - v(iE_Extensions); - - }; - void clear() - { - sgNB_DL_GTP_TEIDatSCG.clear(); - secondary_sgNB_DL_GTP_TEIDatSCG.clear(); - iE_Extensions.clear(); - - }; - private: - sgNB_DL_GTP_TEIDatSCG_t sgNB_DL_GTP_TEIDatSCG; - secondary_sgNB_DL_GTP_TEIDatSCG_t secondary_sgNB_DL_GTP_TEIDatSCG; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeModified-SgNBModReqd-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_ToBeModified_SgNBModReqd_ItemExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeModified-SgNBModReqd-Item ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - en-DC-ResourceConfiguration EN-DC-ResourceConfiguration, - resource-configuration CHOICE { - sgNBPDCPpresent E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPpresent, - sgNBPDCPnotpresent E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPnotpresent, - ... - }, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeModified-SgNBModReqd-ItemExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeModified_SgNBModReqd_Item : asn::sequence<4, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-ToBeModified-SgNBModReqd-Item";} - using parent_t = asn::sequence<4, 0, true, 1>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct en_DC_ResourceConfiguration_t : EN_DC_ResourceConfiguration - { - static constexpr const char* name() {return "en_DC_ResourceConfiguration_t";} - using parent_t = EN_DC_ResourceConfiguration; - - }; - en_DC_ResourceConfiguration_t& ref_en_DC_ResourceConfiguration() {return en_DC_ResourceConfiguration;} - en_DC_ResourceConfiguration_t const& ref_en_DC_ResourceConfiguration() const {return en_DC_ResourceConfiguration;} - struct resource_configuration_t : asn::choice<2, 0, true> - { - static constexpr const char* name() {return "resource_configuration_t";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~resource_configuration_t() {clear();} - struct sgNBPDCPpresent_t : E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresent - { - static constexpr const char* name() {return "sgNBPDCPpresent_t";} - using parent_t = E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresent; - - }; - struct sgNBPDCPnotpresent_t : E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresent - { - static constexpr const char* name() {return "sgNBPDCPnotpresent_t";} - using parent_t = E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresent; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - sgNBPDCPpresent_t& select_sgNBPDCPpresent() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - sgNBPDCPpresent_t const* get_sgNBPDCPpresent() const { if(get_index() == 1) { return &var.as();} return nullptr; } - sgNBPDCPnotpresent_t& select_sgNBPDCPnotpresent() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - sgNBPDCPnotpresent_t const* get_sgNBPDCPnotpresent() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(sgNBPDCPpresent_t)]; - char dummy2[sizeof(sgNBPDCPnotpresent_t)]; - - }; - asn::variant var; - index_type index {0}; - }; - resource_configuration_t& ref_resource_configuration() {return resource_configuration;} - resource_configuration_t const& ref_resource_configuration() const {return resource_configuration;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(en_DC_ResourceConfiguration); - v(resource_configuration); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(en_DC_ResourceConfiguration); - v(resource_configuration); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - en_DC_ResourceConfiguration.clear(); - resource_configuration.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - en_DC_ResourceConfiguration_t en_DC_ResourceConfiguration; - resource_configuration_t resource_configuration; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeModified-SgNBModReqd-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-ToBeModified-SgNBModReqd-Item CRITICALITY ignore TYPE E-RABs-ToBeModified-SgNBModReqd-Item PRESENCE mandatory }, - ... -} -*/ - -struct E_RABs_ToBeModified_SgNBModReqd_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeModified_SgNBModReqd_Item() { set(id_E_RABs_ToBeModified_SgNBModReqd_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_ToBeModified_SgNBModReqd_Item)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_ToBeModified_SgNBModReqd_Item);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeModified_SgNBModReqd_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_ToBeModified_SgNBModReqd_Item& select_id_E_RABs_ToBeModified_SgNBModReqd_Item() { return set(1); } - E_RABs_ToBeModified_SgNBModReqd_Item const* get_id_E_RABs_ToBeModified_SgNBModReqd_Item() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_ToBeModified_SgNBModReqd_Item()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_ToBeModified_SgNBModReqd_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeModified_SgNBModReqd_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeModified-SgNBModReqdList ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeModified-SgNBModReqd-ItemIEs} } -*/ - -struct E_RABs_ToBeModified_SgNBModReqdList_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_ToBeModified_SgNBModReqdList_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_ToBeModified_SgNBModReqdList : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-ToBeModified-SgNBModReqdList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-ToBeReleased-ModReqItem-SCG-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_ToBeReleased_ModReqItem_SCG_BearerExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeReleased-ModReqItem-SCG-Bearer ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - dL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, - uL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-ModReqItem-SCG-BearerExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeReleased_ModReqItem_SCG_Bearer : asn::sequence<4, 0, true, 3> -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-ModReqItem-SCG-Bearer";} - using parent_t = asn::sequence<4, 0, true, 3>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct dL_Forwarding_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "dL_Forwarding_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - dL_Forwarding_GTPtunnelEndpoint_t& set_dL_Forwarding_GTPtunnelEndpoint() { dL_Forwarding_GTPtunnelEndpoint.setpresent(true); return dL_Forwarding_GTPtunnelEndpoint;} - dL_Forwarding_GTPtunnelEndpoint_t const* get_dL_Forwarding_GTPtunnelEndpoint() const {return dL_Forwarding_GTPtunnelEndpoint.is_valid() ? &dL_Forwarding_GTPtunnelEndpoint : nullptr;} - struct uL_Forwarding_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "uL_Forwarding_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - uL_Forwarding_GTPtunnelEndpoint_t& set_uL_Forwarding_GTPtunnelEndpoint() { uL_Forwarding_GTPtunnelEndpoint.setpresent(true); return uL_Forwarding_GTPtunnelEndpoint;} - uL_Forwarding_GTPtunnelEndpoint_t const* get_uL_Forwarding_GTPtunnelEndpoint() const {return uL_Forwarding_GTPtunnelEndpoint.is_valid() ? &uL_Forwarding_GTPtunnelEndpoint : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(dL_Forwarding_GTPtunnelEndpoint); - v(uL_Forwarding_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(dL_Forwarding_GTPtunnelEndpoint); - v(uL_Forwarding_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - dL_Forwarding_GTPtunnelEndpoint.clear(); - uL_Forwarding_GTPtunnelEndpoint.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - dL_Forwarding_GTPtunnelEndpoint_t dL_Forwarding_GTPtunnelEndpoint; - uL_Forwarding_GTPtunnelEndpoint_t uL_Forwarding_GTPtunnelEndpoint; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeReleased-ModReqItem-Split-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_ToBeReleased_ModReqItem_Split_BearerExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeReleased-ModReqItem-Split-Bearer ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - dL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-ModReqItem-Split-BearerExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeReleased_ModReqItem_Split_Bearer : asn::sequence<3, 0, true, 2> -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-ModReqItem-Split-Bearer";} - using parent_t = asn::sequence<3, 0, true, 2>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct dL_Forwarding_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "dL_Forwarding_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - dL_Forwarding_GTPtunnelEndpoint_t& set_dL_Forwarding_GTPtunnelEndpoint() { dL_Forwarding_GTPtunnelEndpoint.setpresent(true); return dL_Forwarding_GTPtunnelEndpoint;} - dL_Forwarding_GTPtunnelEndpoint_t const* get_dL_Forwarding_GTPtunnelEndpoint() const {return dL_Forwarding_GTPtunnelEndpoint.is_valid() ? &dL_Forwarding_GTPtunnelEndpoint : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(dL_Forwarding_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(dL_Forwarding_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - dL_Forwarding_GTPtunnelEndpoint.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - dL_Forwarding_GTPtunnelEndpoint_t dL_Forwarding_GTPtunnelEndpoint; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeReleased-ModReqItem ::= CHOICE { - sCG-Bearer E-RABs-ToBeReleased-ModReqItem-SCG-Bearer, - split-Bearer E-RABs-ToBeReleased-ModReqItem-Split-Bearer, - ... -} -*/ - -struct E_RABs_ToBeReleased_ModReqItem : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-ModReqItem";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~E_RABs_ToBeReleased_ModReqItem() {clear();} - struct sCG_Bearer_t : E_RABs_ToBeReleased_ModReqItem_SCG_Bearer - { - static constexpr const char* name() {return "sCG_Bearer_t";} - using parent_t = E_RABs_ToBeReleased_ModReqItem_SCG_Bearer; - - }; - struct split_Bearer_t : E_RABs_ToBeReleased_ModReqItem_Split_Bearer - { - static constexpr const char* name() {return "split_Bearer_t";} - using parent_t = E_RABs_ToBeReleased_ModReqItem_Split_Bearer; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - sCG_Bearer_t& select_sCG_Bearer() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - sCG_Bearer_t const* get_sCG_Bearer() const { if(get_index() == 1) { return &var.as();} return nullptr; } - split_Bearer_t& select_split_Bearer() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - split_Bearer_t const* get_split_Bearer() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(sCG_Bearer_t)]; - char dummy2[sizeof(split_Bearer_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -E-RABs-ToBeReleased-ModReqItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-ToBeReleased-ModReqItem CRITICALITY ignore TYPE E-RABs-ToBeReleased-ModReqItem PRESENCE mandatory}, - ... -} -*/ - -struct E_RABs_ToBeReleased_ModReqItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeReleased_ModReqItem() { set(id_E_RABs_ToBeReleased_ModReqItem); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_ToBeReleased_ModReqItem)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_ToBeReleased_ModReqItem);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeReleased_ModReqItem() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_ToBeReleased_ModReqItem& select_id_E_RABs_ToBeReleased_ModReqItem() { return set(1); } - E_RABs_ToBeReleased_ModReqItem const* get_id_E_RABs_ToBeReleased_ModReqItem() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_ToBeReleased_ModReqItem()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_ToBeReleased_ModReqItem)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeReleased_ModReqItem() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeReleased-List-ModReq ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeReleased-ModReqItemIEs} } -*/ - -struct E_RABs_ToBeReleased_List_ModReq_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_ToBeReleased_List_ModReq_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_ToBeReleased_List_ModReq : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-List-ModReq";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-ToBeReleased-RelConfItem-SCG-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_ToBeReleased_RelConfItem_SCG_BearerExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeReleased-RelConfItem-SCG-Bearer ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - uL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, - dL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-RelConfItem-SCG-BearerExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeReleased_RelConfItem_SCG_Bearer : asn::sequence<4, 0, true, 3> -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-RelConfItem-SCG-Bearer";} - using parent_t = asn::sequence<4, 0, true, 3>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct uL_Forwarding_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "uL_Forwarding_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - uL_Forwarding_GTPtunnelEndpoint_t& set_uL_Forwarding_GTPtunnelEndpoint() { uL_Forwarding_GTPtunnelEndpoint.setpresent(true); return uL_Forwarding_GTPtunnelEndpoint;} - uL_Forwarding_GTPtunnelEndpoint_t const* get_uL_Forwarding_GTPtunnelEndpoint() const {return uL_Forwarding_GTPtunnelEndpoint.is_valid() ? &uL_Forwarding_GTPtunnelEndpoint : nullptr;} - struct dL_Forwarding_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "dL_Forwarding_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - dL_Forwarding_GTPtunnelEndpoint_t& set_dL_Forwarding_GTPtunnelEndpoint() { dL_Forwarding_GTPtunnelEndpoint.setpresent(true); return dL_Forwarding_GTPtunnelEndpoint;} - dL_Forwarding_GTPtunnelEndpoint_t const* get_dL_Forwarding_GTPtunnelEndpoint() const {return dL_Forwarding_GTPtunnelEndpoint.is_valid() ? &dL_Forwarding_GTPtunnelEndpoint : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(uL_Forwarding_GTPtunnelEndpoint); - v(dL_Forwarding_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(uL_Forwarding_GTPtunnelEndpoint); - v(dL_Forwarding_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - uL_Forwarding_GTPtunnelEndpoint.clear(); - dL_Forwarding_GTPtunnelEndpoint.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - uL_Forwarding_GTPtunnelEndpoint_t uL_Forwarding_GTPtunnelEndpoint; - dL_Forwarding_GTPtunnelEndpoint_t dL_Forwarding_GTPtunnelEndpoint; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeReleased-RelConfItem-Split-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_ToBeReleased_RelConfItem_Split_BearerExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeReleased-RelConfItem-Split-Bearer ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - dL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-RelConfItem-Split-BearerExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeReleased_RelConfItem_Split_Bearer : asn::sequence<3, 0, true, 2> -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-RelConfItem-Split-Bearer";} - using parent_t = asn::sequence<3, 0, true, 2>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct dL_Forwarding_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "dL_Forwarding_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - dL_Forwarding_GTPtunnelEndpoint_t& set_dL_Forwarding_GTPtunnelEndpoint() { dL_Forwarding_GTPtunnelEndpoint.setpresent(true); return dL_Forwarding_GTPtunnelEndpoint;} - dL_Forwarding_GTPtunnelEndpoint_t const* get_dL_Forwarding_GTPtunnelEndpoint() const {return dL_Forwarding_GTPtunnelEndpoint.is_valid() ? &dL_Forwarding_GTPtunnelEndpoint : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(dL_Forwarding_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(dL_Forwarding_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - dL_Forwarding_GTPtunnelEndpoint.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - dL_Forwarding_GTPtunnelEndpoint_t dL_Forwarding_GTPtunnelEndpoint; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeReleased-RelConfItem ::= CHOICE { - sCG-Bearer E-RABs-ToBeReleased-RelConfItem-SCG-Bearer, - split-Bearer E-RABs-ToBeReleased-RelConfItem-Split-Bearer, - ... -} -*/ - -struct E_RABs_ToBeReleased_RelConfItem : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-RelConfItem";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~E_RABs_ToBeReleased_RelConfItem() {clear();} - struct sCG_Bearer_t : E_RABs_ToBeReleased_RelConfItem_SCG_Bearer - { - static constexpr const char* name() {return "sCG_Bearer_t";} - using parent_t = E_RABs_ToBeReleased_RelConfItem_SCG_Bearer; - - }; - struct split_Bearer_t : E_RABs_ToBeReleased_RelConfItem_Split_Bearer - { - static constexpr const char* name() {return "split_Bearer_t";} - using parent_t = E_RABs_ToBeReleased_RelConfItem_Split_Bearer; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - sCG_Bearer_t& select_sCG_Bearer() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - sCG_Bearer_t const* get_sCG_Bearer() const { if(get_index() == 1) { return &var.as();} return nullptr; } - split_Bearer_t& select_split_Bearer() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - split_Bearer_t const* get_split_Bearer() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(sCG_Bearer_t)]; - char dummy2[sizeof(split_Bearer_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -E-RABs-ToBeReleased-RelConfItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-ToBeReleased-RelConfItem CRITICALITY ignore TYPE E-RABs-ToBeReleased-RelConfItem PRESENCE mandatory}, - ... -} -*/ - -struct E_RABs_ToBeReleased_RelConfItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeReleased_RelConfItem() { set(id_E_RABs_ToBeReleased_RelConfItem); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_ToBeReleased_RelConfItem)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_ToBeReleased_RelConfItem);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeReleased_RelConfItem() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_ToBeReleased_RelConfItem& select_id_E_RABs_ToBeReleased_RelConfItem() { return set(1); } - E_RABs_ToBeReleased_RelConfItem const* get_id_E_RABs_ToBeReleased_RelConfItem() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_ToBeReleased_RelConfItem()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_ToBeReleased_RelConfItem)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeReleased_RelConfItem() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeReleased-List-RelConf ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeReleased-RelConfItemIEs} } -*/ - -struct E_RABs_ToBeReleased_List_RelConf_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_ToBeReleased_List_RelConf_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_ToBeReleased_List_RelConf : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-List-RelConf";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-ToBeReleased-RelReqItem-SCG-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_ToBeReleased_RelReqItem_SCG_BearerExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeReleased-RelReqItem-SCG-Bearer ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - uL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, - dL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-RelReqItem-SCG-BearerExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeReleased_RelReqItem_SCG_Bearer : asn::sequence<4, 0, true, 3> -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-RelReqItem-SCG-Bearer";} - using parent_t = asn::sequence<4, 0, true, 3>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct uL_Forwarding_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "uL_Forwarding_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - uL_Forwarding_GTPtunnelEndpoint_t& set_uL_Forwarding_GTPtunnelEndpoint() { uL_Forwarding_GTPtunnelEndpoint.setpresent(true); return uL_Forwarding_GTPtunnelEndpoint;} - uL_Forwarding_GTPtunnelEndpoint_t const* get_uL_Forwarding_GTPtunnelEndpoint() const {return uL_Forwarding_GTPtunnelEndpoint.is_valid() ? &uL_Forwarding_GTPtunnelEndpoint : nullptr;} - struct dL_Forwarding_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "dL_Forwarding_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - dL_Forwarding_GTPtunnelEndpoint_t& set_dL_Forwarding_GTPtunnelEndpoint() { dL_Forwarding_GTPtunnelEndpoint.setpresent(true); return dL_Forwarding_GTPtunnelEndpoint;} - dL_Forwarding_GTPtunnelEndpoint_t const* get_dL_Forwarding_GTPtunnelEndpoint() const {return dL_Forwarding_GTPtunnelEndpoint.is_valid() ? &dL_Forwarding_GTPtunnelEndpoint : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(uL_Forwarding_GTPtunnelEndpoint); - v(dL_Forwarding_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(uL_Forwarding_GTPtunnelEndpoint); - v(dL_Forwarding_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - uL_Forwarding_GTPtunnelEndpoint.clear(); - dL_Forwarding_GTPtunnelEndpoint.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - uL_Forwarding_GTPtunnelEndpoint_t uL_Forwarding_GTPtunnelEndpoint; - dL_Forwarding_GTPtunnelEndpoint_t dL_Forwarding_GTPtunnelEndpoint; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeReleased-RelReqItem-Split-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_ToBeReleased_RelReqItem_Split_BearerExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeReleased-RelReqItem-Split-Bearer ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - dL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-RelReqItem-Split-BearerExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeReleased_RelReqItem_Split_Bearer : asn::sequence<3, 0, true, 2> -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-RelReqItem-Split-Bearer";} - using parent_t = asn::sequence<3, 0, true, 2>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct dL_Forwarding_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "dL_Forwarding_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - dL_Forwarding_GTPtunnelEndpoint_t& set_dL_Forwarding_GTPtunnelEndpoint() { dL_Forwarding_GTPtunnelEndpoint.setpresent(true); return dL_Forwarding_GTPtunnelEndpoint;} - dL_Forwarding_GTPtunnelEndpoint_t const* get_dL_Forwarding_GTPtunnelEndpoint() const {return dL_Forwarding_GTPtunnelEndpoint.is_valid() ? &dL_Forwarding_GTPtunnelEndpoint : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(dL_Forwarding_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(dL_Forwarding_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - dL_Forwarding_GTPtunnelEndpoint.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - dL_Forwarding_GTPtunnelEndpoint_t dL_Forwarding_GTPtunnelEndpoint; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeReleased-RelReqItem ::= CHOICE { - sCG-Bearer E-RABs-ToBeReleased-RelReqItem-SCG-Bearer, - split-Bearer E-RABs-ToBeReleased-RelReqItem-Split-Bearer, - ... -} -*/ - -struct E_RABs_ToBeReleased_RelReqItem : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-RelReqItem";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~E_RABs_ToBeReleased_RelReqItem() {clear();} - struct sCG_Bearer_t : E_RABs_ToBeReleased_RelReqItem_SCG_Bearer - { - static constexpr const char* name() {return "sCG_Bearer_t";} - using parent_t = E_RABs_ToBeReleased_RelReqItem_SCG_Bearer; - - }; - struct split_Bearer_t : E_RABs_ToBeReleased_RelReqItem_Split_Bearer - { - static constexpr const char* name() {return "split_Bearer_t";} - using parent_t = E_RABs_ToBeReleased_RelReqItem_Split_Bearer; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - sCG_Bearer_t& select_sCG_Bearer() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - sCG_Bearer_t const* get_sCG_Bearer() const { if(get_index() == 1) { return &var.as();} return nullptr; } - split_Bearer_t& select_split_Bearer() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - split_Bearer_t const* get_split_Bearer() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(sCG_Bearer_t)]; - char dummy2[sizeof(split_Bearer_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -E-RABs-ToBeReleased-RelReqItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-ToBeReleased-RelReqItem CRITICALITY ignore TYPE E-RABs-ToBeReleased-RelReqItem PRESENCE mandatory}, - ... -} -*/ - -struct E_RABs_ToBeReleased_RelReqItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeReleased_RelReqItem() { set(id_E_RABs_ToBeReleased_RelReqItem); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_ToBeReleased_RelReqItem)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_ToBeReleased_RelReqItem);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeReleased_RelReqItem() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_ToBeReleased_RelReqItem& select_id_E_RABs_ToBeReleased_RelReqItem() { return set(1); } - E_RABs_ToBeReleased_RelReqItem const* get_id_E_RABs_ToBeReleased_RelReqItem() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_ToBeReleased_RelReqItem()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_ToBeReleased_RelReqItem)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeReleased_RelReqItem() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeReleased-List-RelReq ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeReleased-RelReqItemIEs} } -*/ - -struct E_RABs_ToBeReleased_List_RelReq_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_ToBeReleased_List_RelReq_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_ToBeReleased_List_RelReq : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-List-RelReq";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-ToBeReleased-ModReqdItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_ToBeReleased_ModReqdItemExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeReleased-ModReqdItem ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - cause Cause, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-ModReqdItemExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeReleased_ModReqdItem : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-ModReqdItem";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct cause_t : Cause - { - static constexpr const char* name() {return "cause_t";} - using parent_t = Cause; - - }; - cause_t& ref_cause() {return cause;} - cause_t const& ref_cause() const {return cause;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(cause); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(cause); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - cause.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - cause_t cause; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeReleased-ModReqdItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-ToBeReleased-ModReqdItem CRITICALITY ignore TYPE E-RABs-ToBeReleased-ModReqdItem PRESENCE mandatory }, - ... -} -*/ - -struct E_RABs_ToBeReleased_ModReqdItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeReleased_ModReqdItem() { set(id_E_RABs_ToBeReleased_ModReqdItem); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_ToBeReleased_ModReqdItem)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_ToBeReleased_ModReqdItem);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeReleased_ModReqdItem() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_ToBeReleased_ModReqdItem& select_id_E_RABs_ToBeReleased_ModReqdItem() { return set(1); } - E_RABs_ToBeReleased_ModReqdItem const* get_id_E_RABs_ToBeReleased_ModReqdItem() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_ToBeReleased_ModReqdItem()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_ToBeReleased_ModReqdItem)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeReleased_ModReqdItem() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeReleased-ModReqd ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeReleased-ModReqdItemIEs} } -*/ - -struct E_RABs_ToBeReleased_ModReqd_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_ToBeReleased_ModReqd_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_ToBeReleased_ModReqd : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-ModReqd";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresentExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPpresent ::= SEQUENCE { - uL-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, - dL-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPpresentExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresent : asn::sequence<3, 0, true, 3> -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPpresent";} - using parent_t = asn::sequence<3, 0, true, 3>; - struct uL_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "uL_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - uL_GTPtunnelEndpoint_t& set_uL_GTPtunnelEndpoint() { uL_GTPtunnelEndpoint.setpresent(true); return uL_GTPtunnelEndpoint;} - uL_GTPtunnelEndpoint_t const* get_uL_GTPtunnelEndpoint() const {return uL_GTPtunnelEndpoint.is_valid() ? &uL_GTPtunnelEndpoint : nullptr;} - struct dL_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "dL_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - dL_GTPtunnelEndpoint_t& set_dL_GTPtunnelEndpoint() { dL_GTPtunnelEndpoint.setpresent(true); return dL_GTPtunnelEndpoint;} - dL_GTPtunnelEndpoint_t const* get_dL_GTPtunnelEndpoint() const {return dL_GTPtunnelEndpoint.is_valid() ? &dL_GTPtunnelEndpoint : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(uL_GTPtunnelEndpoint); - v(dL_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(uL_GTPtunnelEndpoint); - v(dL_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - void clear() - { - uL_GTPtunnelEndpoint.clear(); - dL_GTPtunnelEndpoint.clear(); - iE_Extensions.clear(); - - }; - private: - uL_GTPtunnelEndpoint_t uL_GTPtunnelEndpoint; - dL_GTPtunnelEndpoint_t dL_GTPtunnelEndpoint; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPnotpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresentExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPnotpresent ::= SEQUENCE { - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPnotpresentExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresent : asn::sequence<1, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPnotpresent";} - using parent_t = asn::sequence<1, 0, true, 1>; - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(iE_Extensions); - - }; - void clear() - { - iE_Extensions.clear(); - - }; - private: - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeReleased-SgNBChaConf-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBChaConf_ItemExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeReleased-SgNBChaConf-Item ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - en-DC-ResourceConfiguration EN-DC-ResourceConfiguration, - resource-configuration CHOICE { - sgNBPDCPpresent E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPpresent, - sgNBPDCPnotpresent E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPnotpresent, - ... - }, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-SgNBChaConf-ItemExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBChaConf_Item : asn::sequence<4, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-SgNBChaConf-Item";} - using parent_t = asn::sequence<4, 0, true, 1>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct en_DC_ResourceConfiguration_t : EN_DC_ResourceConfiguration - { - static constexpr const char* name() {return "en_DC_ResourceConfiguration_t";} - using parent_t = EN_DC_ResourceConfiguration; - - }; - en_DC_ResourceConfiguration_t& ref_en_DC_ResourceConfiguration() {return en_DC_ResourceConfiguration;} - en_DC_ResourceConfiguration_t const& ref_en_DC_ResourceConfiguration() const {return en_DC_ResourceConfiguration;} - struct resource_configuration_t : asn::choice<2, 0, true> - { - static constexpr const char* name() {return "resource_configuration_t";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~resource_configuration_t() {clear();} - struct sgNBPDCPpresent_t : E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresent - { - static constexpr const char* name() {return "sgNBPDCPpresent_t";} - using parent_t = E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresent; - - }; - struct sgNBPDCPnotpresent_t : E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresent - { - static constexpr const char* name() {return "sgNBPDCPnotpresent_t";} - using parent_t = E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresent; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - sgNBPDCPpresent_t& select_sgNBPDCPpresent() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - sgNBPDCPpresent_t const* get_sgNBPDCPpresent() const { if(get_index() == 1) { return &var.as();} return nullptr; } - sgNBPDCPnotpresent_t& select_sgNBPDCPnotpresent() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - sgNBPDCPnotpresent_t const* get_sgNBPDCPnotpresent() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(sgNBPDCPpresent_t)]; - char dummy2[sizeof(sgNBPDCPnotpresent_t)]; - - }; - asn::variant var; - index_type index {0}; - }; - resource_configuration_t& ref_resource_configuration() {return resource_configuration;} - resource_configuration_t const& ref_resource_configuration() const {return resource_configuration;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(en_DC_ResourceConfiguration); - v(resource_configuration); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(en_DC_ResourceConfiguration); - v(resource_configuration); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - en_DC_ResourceConfiguration.clear(); - resource_configuration.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - en_DC_ResourceConfiguration_t en_DC_ResourceConfiguration; - resource_configuration_t resource_configuration; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeReleased-SgNBChaConf-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-ToBeReleased-SgNBChaConf-Item CRITICALITY ignore TYPE E-RABs-ToBeReleased-SgNBChaConf-Item PRESENCE mandatory}, - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBChaConf_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeReleased_SgNBChaConf_Item() { set(id_E_RABs_ToBeReleased_SgNBChaConf_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_ToBeReleased_SgNBChaConf_Item)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_ToBeReleased_SgNBChaConf_Item);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeReleased_SgNBChaConf_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_ToBeReleased_SgNBChaConf_Item& select_id_E_RABs_ToBeReleased_SgNBChaConf_Item() { return set(1); } - E_RABs_ToBeReleased_SgNBChaConf_Item const* get_id_E_RABs_ToBeReleased_SgNBChaConf_Item() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_ToBeReleased_SgNBChaConf_Item()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_ToBeReleased_SgNBChaConf_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeReleased_SgNBChaConf_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeReleased-SgNBChaConfList ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeReleased-SgNBChaConf-ItemIEs} } -*/ - -struct E_RABs_ToBeReleased_SgNBChaConfList_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_ToBeReleased_SgNBChaConfList_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_ToBeReleased_SgNBChaConfList : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-SgNBChaConfList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresentExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPpresent ::= SEQUENCE { - dL-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, - uL-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPpresentExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresent : asn::sequence<3, 0, true, 3> -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPpresent";} - using parent_t = asn::sequence<3, 0, true, 3>; - struct dL_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "dL_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - dL_GTPtunnelEndpoint_t& set_dL_GTPtunnelEndpoint() { dL_GTPtunnelEndpoint.setpresent(true); return dL_GTPtunnelEndpoint;} - dL_GTPtunnelEndpoint_t const* get_dL_GTPtunnelEndpoint() const {return dL_GTPtunnelEndpoint.is_valid() ? &dL_GTPtunnelEndpoint : nullptr;} - struct uL_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "uL_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - uL_GTPtunnelEndpoint_t& set_uL_GTPtunnelEndpoint() { uL_GTPtunnelEndpoint.setpresent(true); return uL_GTPtunnelEndpoint;} - uL_GTPtunnelEndpoint_t const* get_uL_GTPtunnelEndpoint() const {return uL_GTPtunnelEndpoint.is_valid() ? &uL_GTPtunnelEndpoint : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(dL_GTPtunnelEndpoint); - v(uL_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(dL_GTPtunnelEndpoint); - v(uL_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - void clear() - { - dL_GTPtunnelEndpoint.clear(); - uL_GTPtunnelEndpoint.clear(); - iE_Extensions.clear(); - - }; - private: - dL_GTPtunnelEndpoint_t dL_GTPtunnelEndpoint; - uL_GTPtunnelEndpoint_t uL_GTPtunnelEndpoint; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPnotpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPnotpresent ::= SEQUENCE { - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPnotpresentExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresent : asn::sequence<1, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPnotpresent";} - using parent_t = asn::sequence<1, 0, true, 1>; - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(iE_Extensions); - - }; - void clear() - { - iE_Extensions.clear(); - - }; - private: - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeReleased-SgNBModReq-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBModReq_ItemExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeReleased-SgNBModReq-Item ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - en-DC-ResourceConfiguration EN-DC-ResourceConfiguration, - resource-configuration CHOICE { - sgNBPDCPpresent E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPpresent, - sgNBPDCPnotpresent E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPnotpresent, - ... - }, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-SgNBModReq-ItemExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBModReq_Item : asn::sequence<4, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-SgNBModReq-Item";} - using parent_t = asn::sequence<4, 0, true, 1>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct en_DC_ResourceConfiguration_t : EN_DC_ResourceConfiguration - { - static constexpr const char* name() {return "en_DC_ResourceConfiguration_t";} - using parent_t = EN_DC_ResourceConfiguration; - - }; - en_DC_ResourceConfiguration_t& ref_en_DC_ResourceConfiguration() {return en_DC_ResourceConfiguration;} - en_DC_ResourceConfiguration_t const& ref_en_DC_ResourceConfiguration() const {return en_DC_ResourceConfiguration;} - struct resource_configuration_t : asn::choice<2, 0, true> - { - static constexpr const char* name() {return "resource_configuration_t";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~resource_configuration_t() {clear();} - struct sgNBPDCPpresent_t : E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresent - { - static constexpr const char* name() {return "sgNBPDCPpresent_t";} - using parent_t = E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresent; - - }; - struct sgNBPDCPnotpresent_t : E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresent - { - static constexpr const char* name() {return "sgNBPDCPnotpresent_t";} - using parent_t = E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresent; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - sgNBPDCPpresent_t& select_sgNBPDCPpresent() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - sgNBPDCPpresent_t const* get_sgNBPDCPpresent() const { if(get_index() == 1) { return &var.as();} return nullptr; } - sgNBPDCPnotpresent_t& select_sgNBPDCPnotpresent() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - sgNBPDCPnotpresent_t const* get_sgNBPDCPnotpresent() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(sgNBPDCPpresent_t)]; - char dummy2[sizeof(sgNBPDCPnotpresent_t)]; - - }; - asn::variant var; - index_type index {0}; - }; - resource_configuration_t& ref_resource_configuration() {return resource_configuration;} - resource_configuration_t const& ref_resource_configuration() const {return resource_configuration;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(en_DC_ResourceConfiguration); - v(resource_configuration); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(en_DC_ResourceConfiguration); - v(resource_configuration); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - en_DC_ResourceConfiguration.clear(); - resource_configuration.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - en_DC_ResourceConfiguration_t en_DC_ResourceConfiguration; - resource_configuration_t resource_configuration; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeReleased-SgNBModReq-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-ToBeReleased-SgNBModReq-Item CRITICALITY ignore TYPE E-RABs-ToBeReleased-SgNBModReq-Item PRESENCE mandatory}, - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBModReq_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeReleased_SgNBModReq_Item() { set(id_E_RABs_ToBeReleased_SgNBModReq_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_ToBeReleased_SgNBModReq_Item)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_ToBeReleased_SgNBModReq_Item);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeReleased_SgNBModReq_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_ToBeReleased_SgNBModReq_Item& select_id_E_RABs_ToBeReleased_SgNBModReq_Item() { return set(1); } - E_RABs_ToBeReleased_SgNBModReq_Item const* get_id_E_RABs_ToBeReleased_SgNBModReq_Item() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_ToBeReleased_SgNBModReq_Item()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_ToBeReleased_SgNBModReq_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeReleased_SgNBModReq_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeReleased-SgNBModReq-List ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeReleased-SgNBModReq-ItemIEs} } -*/ - -struct E_RABs_ToBeReleased_SgNBModReq_List_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_ToBeReleased_SgNBModReq_List_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_ToBeReleased_SgNBModReq_List : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-SgNBModReq-List";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-ToBeReleased-SgNBModReqd-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-RLCMode-transferred CRITICALITY ignore EXTENSION RLCMode PRESENCE optional}, - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBModReqd_ItemExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RLCMode_transferred() { set(id_RLCMode_transferred); type=1;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_RLCMode_transferred)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_RLCMode_transferred);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RLCMode_transferred() { set(ignore); type=1;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - RLCMode& select_id_RLCMode_transferred() { return set(1); } - RLCMode const* get_id_RLCMode_transferred() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_RLCMode_transferred()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(RLCMode)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RLCMode_transferred() { set(optional); type=1;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeReleased-SgNBModReqd-Item ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - cause Cause, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-SgNBModReqd-ItemExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBModReqd_Item : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-SgNBModReqd-Item";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct cause_t : Cause - { - static constexpr const char* name() {return "cause_t";} - using parent_t = Cause; - - }; - cause_t& ref_cause() {return cause;} - cause_t const& ref_cause() const {return cause;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(cause); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(cause); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - cause.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - cause_t cause; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeReleased-SgNBModReqd-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-ToBeReleased-SgNBModReqd-Item CRITICALITY ignore TYPE E-RABs-ToBeReleased-SgNBModReqd-Item PRESENCE mandatory }, - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBModReqd_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeReleased_SgNBModReqd_Item() { set(id_E_RABs_ToBeReleased_SgNBModReqd_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_ToBeReleased_SgNBModReqd_Item)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_ToBeReleased_SgNBModReqd_Item);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeReleased_SgNBModReqd_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_ToBeReleased_SgNBModReqd_Item& select_id_E_RABs_ToBeReleased_SgNBModReqd_Item() { return set(1); } - E_RABs_ToBeReleased_SgNBModReqd_Item const* get_id_E_RABs_ToBeReleased_SgNBModReqd_Item() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_ToBeReleased_SgNBModReqd_Item()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_ToBeReleased_SgNBModReqd_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeReleased_SgNBModReqd_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeReleased-SgNBModReqdList ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeReleased-SgNBModReqd-ItemIEs} } -*/ - -struct E_RABs_ToBeReleased_SgNBModReqdList_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_ToBeReleased_SgNBModReqdList_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_ToBeReleased_SgNBModReqdList : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-SgNBModReqdList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresentExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPpresent ::= SEQUENCE { - uL-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, - dL-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPpresentExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresent : asn::sequence<3, 0, true, 3> -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPpresent";} - using parent_t = asn::sequence<3, 0, true, 3>; - struct uL_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "uL_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - uL_GTPtunnelEndpoint_t& set_uL_GTPtunnelEndpoint() { uL_GTPtunnelEndpoint.setpresent(true); return uL_GTPtunnelEndpoint;} - uL_GTPtunnelEndpoint_t const* get_uL_GTPtunnelEndpoint() const {return uL_GTPtunnelEndpoint.is_valid() ? &uL_GTPtunnelEndpoint : nullptr;} - struct dL_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "dL_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - dL_GTPtunnelEndpoint_t& set_dL_GTPtunnelEndpoint() { dL_GTPtunnelEndpoint.setpresent(true); return dL_GTPtunnelEndpoint;} - dL_GTPtunnelEndpoint_t const* get_dL_GTPtunnelEndpoint() const {return dL_GTPtunnelEndpoint.is_valid() ? &dL_GTPtunnelEndpoint : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(uL_GTPtunnelEndpoint); - v(dL_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(uL_GTPtunnelEndpoint); - v(dL_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - void clear() - { - uL_GTPtunnelEndpoint.clear(); - dL_GTPtunnelEndpoint.clear(); - iE_Extensions.clear(); - - }; - private: - uL_GTPtunnelEndpoint_t uL_GTPtunnelEndpoint; - dL_GTPtunnelEndpoint_t dL_GTPtunnelEndpoint; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPnotpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresentExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPnotpresent ::= SEQUENCE { - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPnotpresentExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresent : asn::sequence<1, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPnotpresent";} - using parent_t = asn::sequence<1, 0, true, 1>; - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(iE_Extensions); - - }; - void clear() - { - iE_Extensions.clear(); - - }; - private: - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeReleased-SgNBRelConf-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBRelConf_ItemExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeReleased-SgNBRelConf-Item ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - en-DC-ResourceConfiguration EN-DC-ResourceConfiguration, - resource-configuration CHOICE { - sgNBPDCPpresent E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPpresent, - sgNBPDCPnotpresent E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPnotpresent, - ... - }, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-SgNBRelConf-ItemExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBRelConf_Item : asn::sequence<4, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-SgNBRelConf-Item";} - using parent_t = asn::sequence<4, 0, true, 1>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct en_DC_ResourceConfiguration_t : EN_DC_ResourceConfiguration - { - static constexpr const char* name() {return "en_DC_ResourceConfiguration_t";} - using parent_t = EN_DC_ResourceConfiguration; - - }; - en_DC_ResourceConfiguration_t& ref_en_DC_ResourceConfiguration() {return en_DC_ResourceConfiguration;} - en_DC_ResourceConfiguration_t const& ref_en_DC_ResourceConfiguration() const {return en_DC_ResourceConfiguration;} - struct resource_configuration_t : asn::choice<2, 0, true> - { - static constexpr const char* name() {return "resource_configuration_t";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~resource_configuration_t() {clear();} - struct sgNBPDCPpresent_t : E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresent - { - static constexpr const char* name() {return "sgNBPDCPpresent_t";} - using parent_t = E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresent; - - }; - struct sgNBPDCPnotpresent_t : E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresent - { - static constexpr const char* name() {return "sgNBPDCPnotpresent_t";} - using parent_t = E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresent; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - sgNBPDCPpresent_t& select_sgNBPDCPpresent() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - sgNBPDCPpresent_t const* get_sgNBPDCPpresent() const { if(get_index() == 1) { return &var.as();} return nullptr; } - sgNBPDCPnotpresent_t& select_sgNBPDCPnotpresent() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - sgNBPDCPnotpresent_t const* get_sgNBPDCPnotpresent() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(sgNBPDCPpresent_t)]; - char dummy2[sizeof(sgNBPDCPnotpresent_t)]; - - }; - asn::variant var; - index_type index {0}; - }; - resource_configuration_t& ref_resource_configuration() {return resource_configuration;} - resource_configuration_t const& ref_resource_configuration() const {return resource_configuration;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(en_DC_ResourceConfiguration); - v(resource_configuration); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(en_DC_ResourceConfiguration); - v(resource_configuration); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - en_DC_ResourceConfiguration.clear(); - resource_configuration.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - en_DC_ResourceConfiguration_t en_DC_ResourceConfiguration; - resource_configuration_t resource_configuration; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeReleased-SgNBRelConf-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-ToBeReleased-SgNBRelConf-Item CRITICALITY ignore TYPE E-RABs-ToBeReleased-SgNBRelConf-Item PRESENCE mandatory}, - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBRelConf_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeReleased_SgNBRelConf_Item() { set(id_E_RABs_ToBeReleased_SgNBRelConf_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_ToBeReleased_SgNBRelConf_Item)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_ToBeReleased_SgNBRelConf_Item);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeReleased_SgNBRelConf_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_ToBeReleased_SgNBRelConf_Item& select_id_E_RABs_ToBeReleased_SgNBRelConf_Item() { return set(1); } - E_RABs_ToBeReleased_SgNBRelConf_Item const* get_id_E_RABs_ToBeReleased_SgNBRelConf_Item() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_ToBeReleased_SgNBRelConf_Item()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_ToBeReleased_SgNBRelConf_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeReleased_SgNBRelConf_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeReleased-SgNBRelConfList ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeReleased-SgNBRelConf-ItemIEs} } -*/ - -struct E_RABs_ToBeReleased_SgNBRelConfList_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_ToBeReleased_SgNBRelConfList_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_ToBeReleased_SgNBRelConfList : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-SgNBRelConfList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresentExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPpresent ::= SEQUENCE { - uL-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, - dL-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPpresentExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresent : asn::sequence<3, 0, true, 3> -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPpresent";} - using parent_t = asn::sequence<3, 0, true, 3>; - struct uL_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "uL_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - uL_GTPtunnelEndpoint_t& set_uL_GTPtunnelEndpoint() { uL_GTPtunnelEndpoint.setpresent(true); return uL_GTPtunnelEndpoint;} - uL_GTPtunnelEndpoint_t const* get_uL_GTPtunnelEndpoint() const {return uL_GTPtunnelEndpoint.is_valid() ? &uL_GTPtunnelEndpoint : nullptr;} - struct dL_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "dL_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - static constexpr bool optional = true; - - }; - dL_GTPtunnelEndpoint_t& set_dL_GTPtunnelEndpoint() { dL_GTPtunnelEndpoint.setpresent(true); return dL_GTPtunnelEndpoint;} - dL_GTPtunnelEndpoint_t const* get_dL_GTPtunnelEndpoint() const {return dL_GTPtunnelEndpoint.is_valid() ? &dL_GTPtunnelEndpoint : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(uL_GTPtunnelEndpoint); - v(dL_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(uL_GTPtunnelEndpoint); - v(dL_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - void clear() - { - uL_GTPtunnelEndpoint.clear(); - dL_GTPtunnelEndpoint.clear(); - iE_Extensions.clear(); - - }; - private: - uL_GTPtunnelEndpoint_t uL_GTPtunnelEndpoint; - dL_GTPtunnelEndpoint_t dL_GTPtunnelEndpoint; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPnotpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresentExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPnotpresent ::= SEQUENCE { - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPnotpresentExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresent : asn::sequence<1, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPnotpresent";} - using parent_t = asn::sequence<1, 0, true, 1>; - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(iE_Extensions); - - }; - void clear() - { - iE_Extensions.clear(); - - }; - private: - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeReleased-SgNBRelReq-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBRelReq_ItemExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeReleased-SgNBRelReq-Item ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - en-DC-ResourceConfiguration EN-DC-ResourceConfiguration, - resource-configuration CHOICE { - sgNBPDCPpresent E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPpresent, - sgNBPDCPnotpresent E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPnotpresent, - ... - }, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-SgNBRelReq-ItemExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBRelReq_Item : asn::sequence<4, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-SgNBRelReq-Item";} - using parent_t = asn::sequence<4, 0, true, 1>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct en_DC_ResourceConfiguration_t : EN_DC_ResourceConfiguration - { - static constexpr const char* name() {return "en_DC_ResourceConfiguration_t";} - using parent_t = EN_DC_ResourceConfiguration; - - }; - en_DC_ResourceConfiguration_t& ref_en_DC_ResourceConfiguration() {return en_DC_ResourceConfiguration;} - en_DC_ResourceConfiguration_t const& ref_en_DC_ResourceConfiguration() const {return en_DC_ResourceConfiguration;} - struct resource_configuration_t : asn::choice<2, 0, true> - { - static constexpr const char* name() {return "resource_configuration_t";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~resource_configuration_t() {clear();} - struct sgNBPDCPpresent_t : E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresent - { - static constexpr const char* name() {return "sgNBPDCPpresent_t";} - using parent_t = E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresent; - - }; - struct sgNBPDCPnotpresent_t : E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresent - { - static constexpr const char* name() {return "sgNBPDCPnotpresent_t";} - using parent_t = E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresent; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - sgNBPDCPpresent_t& select_sgNBPDCPpresent() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - sgNBPDCPpresent_t const* get_sgNBPDCPpresent() const { if(get_index() == 1) { return &var.as();} return nullptr; } - sgNBPDCPnotpresent_t& select_sgNBPDCPnotpresent() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - sgNBPDCPnotpresent_t const* get_sgNBPDCPnotpresent() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(sgNBPDCPpresent_t)]; - char dummy2[sizeof(sgNBPDCPnotpresent_t)]; - - }; - asn::variant var; - index_type index {0}; - }; - resource_configuration_t& ref_resource_configuration() {return resource_configuration;} - resource_configuration_t const& ref_resource_configuration() const {return resource_configuration;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(en_DC_ResourceConfiguration); - v(resource_configuration); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(en_DC_ResourceConfiguration); - v(resource_configuration); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - en_DC_ResourceConfiguration.clear(); - resource_configuration.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - en_DC_ResourceConfiguration_t en_DC_ResourceConfiguration; - resource_configuration_t resource_configuration; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeReleased-SgNBRelReq-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-ToBeReleased-SgNBRelReq-Item CRITICALITY ignore TYPE E-RABs-ToBeReleased-SgNBRelReq-Item PRESENCE mandatory}, - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBRelReq_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeReleased_SgNBRelReq_Item() { set(id_E_RABs_ToBeReleased_SgNBRelReq_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_ToBeReleased_SgNBRelReq_Item)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_ToBeReleased_SgNBRelReq_Item);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeReleased_SgNBRelReq_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_ToBeReleased_SgNBRelReq_Item& select_id_E_RABs_ToBeReleased_SgNBRelReq_Item() { return set(1); } - E_RABs_ToBeReleased_SgNBRelReq_Item const* get_id_E_RABs_ToBeReleased_SgNBRelReq_Item() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_ToBeReleased_SgNBRelReq_Item()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_ToBeReleased_SgNBRelReq_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeReleased_SgNBRelReq_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeReleased-SgNBRelReqList ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeReleased-SgNBRelReq-ItemIEs} } -*/ - -struct E_RABs_ToBeReleased_SgNBRelReqList_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_ToBeReleased_SgNBRelReqList_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_ToBeReleased_SgNBRelReqList : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-SgNBRelReqList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-ToBeReleased-SgNBRelReqd-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBRelReqd_ItemExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeReleased-SgNBRelReqd-Item ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - rlc-Mode-transferred RLCMode, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-SgNBRelReqd-ItemExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBRelReqd_Item : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-SgNBRelReqd-Item";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct rlc_Mode_transferred_t : RLCMode - { - static constexpr const char* name() {return "rlc_Mode_transferred_t";} - using parent_t = RLCMode; - - }; - rlc_Mode_transferred_t& ref_rlc_Mode_transferred() {return rlc_Mode_transferred;} - rlc_Mode_transferred_t const& ref_rlc_Mode_transferred() const {return rlc_Mode_transferred;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(rlc_Mode_transferred); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(rlc_Mode_transferred); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - rlc_Mode_transferred.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - rlc_Mode_transferred_t rlc_Mode_transferred; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeReleased-SgNBRelReqd-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-ToBeReleased-SgNBRelReqd-Item CRITICALITY ignore TYPE E-RABs-ToBeReleased-SgNBRelReqd-Item PRESENCE mandatory}, - ... -} -*/ - -struct E_RABs_ToBeReleased_SgNBRelReqd_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeReleased_SgNBRelReqd_Item() { set(id_E_RABs_ToBeReleased_SgNBRelReqd_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_ToBeReleased_SgNBRelReqd_Item)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_ToBeReleased_SgNBRelReqd_Item);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeReleased_SgNBRelReqd_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_ToBeReleased_SgNBRelReqd_Item& select_id_E_RABs_ToBeReleased_SgNBRelReqd_Item() { return set(1); } - E_RABs_ToBeReleased_SgNBRelReqd_Item const* get_id_E_RABs_ToBeReleased_SgNBRelReqd_Item() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_ToBeReleased_SgNBRelReqd_Item()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_ToBeReleased_SgNBRelReqd_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeReleased_SgNBRelReqd_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeReleased-SgNBRelReqdList ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeReleased-SgNBRelReqd-ItemIEs} } -*/ - -struct E_RABs_ToBeReleased_SgNBRelReqdList_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_ToBeReleased_SgNBRelReqdList_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_ToBeReleased_SgNBRelReqdList : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-ToBeReleased-SgNBRelReqdList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-ToBeSetup-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-BearerType CRITICALITY reject EXTENSION BearerType PRESENCE optional}, - ... -} -*/ - -struct E_RABs_ToBeSetup_ItemExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_BearerType() { set(id_BearerType); type=1;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_BearerType)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_BearerType);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_BearerType() { set(reject); type=1;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - BearerType& select_id_BearerType() { return set(1); } - BearerType const* get_id_BearerType() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_BearerType()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(BearerType)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_BearerType() { set(optional); type=1;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeSetup-Item ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - e-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters, - dL-Forwarding DL-Forwarding OPTIONAL, - uL-GTPtunnelEndpoint GTPtunnelEndpoint, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeSetup-ItemExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeSetup_Item : asn::sequence<5, 0, true, 2> -{ - static constexpr const char* name() {return "E-RABs-ToBeSetup-Item";} - using parent_t = asn::sequence<5, 0, true, 2>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct e_RAB_Level_QoS_Parameters_t : E_RAB_Level_QoS_Parameters - { - static constexpr const char* name() {return "e_RAB_Level_QoS_Parameters_t";} - using parent_t = E_RAB_Level_QoS_Parameters; - - }; - e_RAB_Level_QoS_Parameters_t& ref_e_RAB_Level_QoS_Parameters() {return e_RAB_Level_QoS_Parameters;} - e_RAB_Level_QoS_Parameters_t const& ref_e_RAB_Level_QoS_Parameters() const {return e_RAB_Level_QoS_Parameters;} - struct dL_Forwarding_t : DL_Forwarding - { - static constexpr const char* name() {return "dL_Forwarding_t";} - using parent_t = DL_Forwarding; - static constexpr bool optional = true; - - }; - dL_Forwarding_t& set_dL_Forwarding() { dL_Forwarding.setpresent(true); return dL_Forwarding;} - dL_Forwarding_t const* get_dL_Forwarding() const {return dL_Forwarding.is_valid() ? &dL_Forwarding : nullptr;} - struct uL_GTPtunnelEndpoint_t : GTPtunnelEndpoint - { - static constexpr const char* name() {return "uL_GTPtunnelEndpoint_t";} - using parent_t = GTPtunnelEndpoint; - - }; - uL_GTPtunnelEndpoint_t& ref_uL_GTPtunnelEndpoint() {return uL_GTPtunnelEndpoint;} - uL_GTPtunnelEndpoint_t const& ref_uL_GTPtunnelEndpoint() const {return uL_GTPtunnelEndpoint;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(e_RAB_Level_QoS_Parameters); - v(dL_Forwarding); - v(uL_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(e_RAB_Level_QoS_Parameters); - v(dL_Forwarding); - v(uL_GTPtunnelEndpoint); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - e_RAB_Level_QoS_Parameters.clear(); - dL_Forwarding.clear(); - uL_GTPtunnelEndpoint.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - e_RAB_Level_QoS_Parameters_t e_RAB_Level_QoS_Parameters; - dL_Forwarding_t dL_Forwarding; - uL_GTPtunnelEndpoint_t uL_GTPtunnelEndpoint; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeSetup-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-ToBeSetup-Item CRITICALITY ignore TYPE E-RABs-ToBeSetup-Item PRESENCE mandatory }, - ... -} -*/ - -struct E_RABs_ToBeSetup_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeSetup_Item() { set(id_E_RABs_ToBeSetup_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_ToBeSetup_Item)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_ToBeSetup_Item);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeSetup_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_ToBeSetup_Item& select_id_E_RABs_ToBeSetup_Item() { return set(1); } - E_RABs_ToBeSetup_Item const* get_id_E_RABs_ToBeSetup_Item() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_ToBeSetup_Item()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_ToBeSetup_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeSetup_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeSetup-List ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeSetup-ItemIEs} } -*/ - -struct E_RABs_ToBeSetup_List_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_ToBeSetup_List_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_ToBeSetup_List : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-ToBeSetup-List";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -E-RABs-ToBeSetupRetrieve-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-uL-GTPtunnelEndpoint CRITICALITY reject EXTENSION GTPtunnelEndpoint PRESENCE mandatory}| - { ID id-dL-Forwarding CRITICALITY ignore EXTENSION DL-Forwarding PRESENCE optional }, - ... -} -*/ - -struct E_RABs_ToBeSetupRetrieve_ItemExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_uL_GTPtunnelEndpoint() { set(id_uL_GTPtunnelEndpoint); type=1;} - void select_id_dL_Forwarding() { set(id_dL_Forwarding); type=2;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_uL_GTPtunnelEndpoint)) { type = 1; return true; } - else if(equal(id_dL_Forwarding)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_uL_GTPtunnelEndpoint);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_dL_Forwarding);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_uL_GTPtunnelEndpoint() { set(reject); type=1;} - void select_id_dL_Forwarding() { set(ignore); type=2;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - GTPtunnelEndpoint& select_id_uL_GTPtunnelEndpoint() { return set(1); } - GTPtunnelEndpoint const* get_id_uL_GTPtunnelEndpoint() const { return get(1); } - DL_Forwarding& select_id_dL_Forwarding() { return set(2); } - DL_Forwarding const* get_id_dL_Forwarding() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_uL_GTPtunnelEndpoint()); return true; - case 2: v(select_id_dL_Forwarding()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(DL_Forwarding)]; - char dummy2[sizeof(GTPtunnelEndpoint)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_uL_GTPtunnelEndpoint() { set(mandatory); type=1;} - void select_id_dL_Forwarding() { set(optional); type=2;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeSetupRetrieve-Item ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - e-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters, - bearerType BearerType OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeSetupRetrieve-ItemExtIEs} } OPTIONAL, - ... -} -*/ - -struct E_RABs_ToBeSetupRetrieve_Item : asn::sequence<4, 0, true, 2> -{ - static constexpr const char* name() {return "E-RABs-ToBeSetupRetrieve-Item";} - using parent_t = asn::sequence<4, 0, true, 2>; - struct e_RAB_ID_t : E_RAB_ID - { - static constexpr const char* name() {return "e_RAB_ID_t";} - using parent_t = E_RAB_ID; - - }; - e_RAB_ID_t& ref_e_RAB_ID() {return e_RAB_ID;} - e_RAB_ID_t const& ref_e_RAB_ID() const {return e_RAB_ID;} - struct e_RAB_Level_QoS_Parameters_t : E_RAB_Level_QoS_Parameters - { - static constexpr const char* name() {return "e_RAB_Level_QoS_Parameters_t";} - using parent_t = E_RAB_Level_QoS_Parameters; - - }; - e_RAB_Level_QoS_Parameters_t& ref_e_RAB_Level_QoS_Parameters() {return e_RAB_Level_QoS_Parameters;} - e_RAB_Level_QoS_Parameters_t const& ref_e_RAB_Level_QoS_Parameters() const {return e_RAB_Level_QoS_Parameters;} - struct bearerType_t : BearerType - { - static constexpr const char* name() {return "bearerType_t";} - using parent_t = BearerType; - static constexpr bool optional = true; - - }; - bearerType_t& set_bearerType() { bearerType.setpresent(true); return bearerType;} - bearerType_t const* get_bearerType() const {return bearerType.is_valid() ? &bearerType : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(e_RAB_ID); - v(e_RAB_Level_QoS_Parameters); - v(bearerType); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(e_RAB_ID); - v(e_RAB_Level_QoS_Parameters); - v(bearerType); - v(iE_Extensions); - - }; - void clear() - { - e_RAB_ID.clear(); - e_RAB_Level_QoS_Parameters.clear(); - bearerType.clear(); - iE_Extensions.clear(); - - }; - private: - e_RAB_ID_t e_RAB_ID; - e_RAB_Level_QoS_Parameters_t e_RAB_Level_QoS_Parameters; - bearerType_t bearerType; - iE_Extensions_t iE_Extensions; - -}; -/* -E-RABs-ToBeSetupRetrieve-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-E-RABs-ToBeSetupRetrieve-Item CRITICALITY ignore TYPE E-RABs-ToBeSetupRetrieve-Item PRESENCE mandatory}, - ... -} -*/ - -struct E_RABs_ToBeSetupRetrieve_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeSetupRetrieve_Item() { set(id_E_RABs_ToBeSetupRetrieve_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_E_RABs_ToBeSetupRetrieve_Item)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_E_RABs_ToBeSetupRetrieve_Item);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeSetupRetrieve_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - E_RABs_ToBeSetupRetrieve_Item& select_id_E_RABs_ToBeSetupRetrieve_Item() { return set(1); } - E_RABs_ToBeSetupRetrieve_Item const* get_id_E_RABs_ToBeSetupRetrieve_Item() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_E_RABs_ToBeSetupRetrieve_Item()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_ToBeSetupRetrieve_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_E_RABs_ToBeSetupRetrieve_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -E-RABs-ToBeSetup-ListRetrieve ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeSetupRetrieve-ItemIEs} } -*/ - -struct E_RABs_ToBeSetup_ListRetrieve_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "E_RABs_ToBeSetup_ListRetrieve_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct E_RABs_ToBeSetup_ListRetrieve : asn::sequenceof -{ - static constexpr const char* name() {return "E-RABs-ToBeSetup-ListRetrieve";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -ENB-ENDCConfigUpdateAckIEs X2AP-PROTOCOL-IES ::= { - ... -} -*/ - -struct ENB_ENDCConfigUpdateAckIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -FDD-InfoNeighbourServedNRCell-Information-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct FDD_InfoNeighbourServedNRCell_Information_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -FDD-InfoNeighbourServedNRCell-Information ::= SEQUENCE { - ul-NRFreqInfo NRFreqInfo, - dl-NRFreqInfo NRFreqInfo, - iE-Extensions ProtocolExtensionContainer { {FDD-InfoNeighbourServedNRCell-Information-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct FDD_InfoNeighbourServedNRCell_Information : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "FDD-InfoNeighbourServedNRCell-Information";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct ul_NRFreqInfo_t : NRFreqInfo - { - static constexpr const char* name() {return "ul_NRFreqInfo_t";} - using parent_t = NRFreqInfo; - - }; - ul_NRFreqInfo_t& ref_ul_NRFreqInfo() {return ul_NRFreqInfo;} - ul_NRFreqInfo_t const& ref_ul_NRFreqInfo() const {return ul_NRFreqInfo;} - struct dl_NRFreqInfo_t : NRFreqInfo - { - static constexpr const char* name() {return "dl_NRFreqInfo_t";} - using parent_t = NRFreqInfo; - - }; - dl_NRFreqInfo_t& ref_dl_NRFreqInfo() {return dl_NRFreqInfo;} - dl_NRFreqInfo_t const& ref_dl_NRFreqInfo() const {return dl_NRFreqInfo;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(ul_NRFreqInfo); - v(dl_NRFreqInfo); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(ul_NRFreqInfo); - v(dl_NRFreqInfo); - v(iE_Extensions); - - }; - void clear() - { - ul_NRFreqInfo.clear(); - dl_NRFreqInfo.clear(); - iE_Extensions.clear(); - - }; - private: - ul_NRFreqInfo_t ul_NRFreqInfo; - dl_NRFreqInfo_t dl_NRFreqInfo; - iE_Extensions_t iE_Extensions; - -}; -/* -TDD-InfoNeighbourServedNRCell-Information-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct TDD_InfoNeighbourServedNRCell_Information_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -TDD-InfoNeighbourServedNRCell-Information ::= SEQUENCE { - nRFreqInfo NRFreqInfo, - iE-Extensions ProtocolExtensionContainer { {TDD-InfoNeighbourServedNRCell-Information-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct TDD_InfoNeighbourServedNRCell_Information : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "TDD-InfoNeighbourServedNRCell-Information";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct nRFreqInfo_t : NRFreqInfo - { - static constexpr const char* name() {return "nRFreqInfo_t";} - using parent_t = NRFreqInfo; - - }; - nRFreqInfo_t& ref_nRFreqInfo() {return nRFreqInfo;} - nRFreqInfo_t const& ref_nRFreqInfo() const {return nRFreqInfo;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(nRFreqInfo); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(nRFreqInfo); - v(iE_Extensions); - - }; - void clear() - { - nRFreqInfo.clear(); - iE_Extensions.clear(); - - }; - private: - nRFreqInfo_t nRFreqInfo; - iE_Extensions_t iE_Extensions; - -}; -/* -NRNeighbour-Information-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct NRNeighbour_Information_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -NRNeighbour-Information ::= SEQUENCE (SIZE (1.. maxofNRNeighbours))OF SEQUENCE { - nrpCI NRPCI, - nrCellID NRCGI, - fiveGS-TAC FiveGS-TAC OPTIONAL, - configured-TAC TAC OPTIONAL, - measurementTimingConfiguration OCTET STRING, - nRNeighbourModeInfo CHOICE { - fdd FDD-InfoNeighbourServedNRCell-Information, - tdd TDD-InfoNeighbourServedNRCell-Information, - ... - }, - iE-Extensions ProtocolExtensionContainer { {NRNeighbour-Information-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct NRNeighbour_Information_elm : asn::sequence<7, 0, true, 3> -{ - static constexpr const char* name() {return "NRNeighbour_Information_elm";} - using parent_t = asn::sequence<7, 0, true, 3>; - struct nrpCI_t : NRPCI - { - static constexpr const char* name() {return "nrpCI_t";} - using parent_t = NRPCI; - - }; - nrpCI_t& ref_nrpCI() {return nrpCI;} - nrpCI_t const& ref_nrpCI() const {return nrpCI;} - struct nrCellID_t : NRCGI - { - static constexpr const char* name() {return "nrCellID_t";} - using parent_t = NRCGI; - - }; - nrCellID_t& ref_nrCellID() {return nrCellID;} - nrCellID_t const& ref_nrCellID() const {return nrCellID;} - struct fiveGS_TAC_t : FiveGS_TAC - { - static constexpr const char* name() {return "fiveGS_TAC_t";} - using parent_t = FiveGS_TAC; - static constexpr bool optional = true; - - }; - fiveGS_TAC_t& set_fiveGS_TAC() { fiveGS_TAC.setpresent(true); return fiveGS_TAC;} - fiveGS_TAC_t const* get_fiveGS_TAC() const {return fiveGS_TAC.is_valid() ? &fiveGS_TAC : nullptr;} - struct configured_TAC_t : TAC - { - static constexpr const char* name() {return "configured_TAC_t";} - using parent_t = TAC; - static constexpr bool optional = true; - - }; - configured_TAC_t& set_configured_TAC() { configured_TAC.setpresent(true); return configured_TAC;} - configured_TAC_t const* get_configured_TAC() const {return configured_TAC.is_valid() ? &configured_TAC : nullptr;} - struct measurementTimingConfiguration_t : asn::ostring<> - { - static constexpr const char* name() {return "measurementTimingConfiguration_t";} - using parent_t = asn::ostring<>; - - }; - - measurementTimingConfiguration_t& ref_measurementTimingConfiguration() {return measurementTimingConfiguration;} - measurementTimingConfiguration_t const& ref_measurementTimingConfiguration() const {return measurementTimingConfiguration;} - struct nRNeighbourModeInfo_t : asn::choice<2, 0, true> - { - static constexpr const char* name() {return "nRNeighbourModeInfo_t";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~nRNeighbourModeInfo_t() {clear();} - struct fdd_t : FDD_InfoNeighbourServedNRCell_Information - { - static constexpr const char* name() {return "fdd_t";} - using parent_t = FDD_InfoNeighbourServedNRCell_Information; - - }; - struct tdd_t : TDD_InfoNeighbourServedNRCell_Information - { - static constexpr const char* name() {return "tdd_t";} - using parent_t = TDD_InfoNeighbourServedNRCell_Information; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - fdd_t& select_fdd() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - fdd_t const* get_fdd() const { if(get_index() == 1) { return &var.as();} return nullptr; } - tdd_t& select_tdd() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - tdd_t const* get_tdd() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(fdd_t)]; - char dummy2[sizeof(tdd_t)]; - - }; - asn::variant var; - index_type index {0}; - }; - nRNeighbourModeInfo_t& ref_nRNeighbourModeInfo() {return nRNeighbourModeInfo;} - nRNeighbourModeInfo_t const& ref_nRNeighbourModeInfo() const {return nRNeighbourModeInfo;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(nrpCI); - v(nrCellID); - v(fiveGS_TAC); - v(configured_TAC); - v(measurementTimingConfiguration); - v(nRNeighbourModeInfo); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(nrpCI); - v(nrCellID); - v(fiveGS_TAC); - v(configured_TAC); - v(measurementTimingConfiguration); - v(nRNeighbourModeInfo); - v(iE_Extensions); - - }; - void clear() - { - nrpCI.clear(); - nrCellID.clear(); - fiveGS_TAC.clear(); - configured_TAC.clear(); - measurementTimingConfiguration.clear(); - nRNeighbourModeInfo.clear(); - iE_Extensions.clear(); - - }; - private: - nrpCI_t nrpCI; - nrCellID_t nrCellID; - fiveGS_TAC_t fiveGS_TAC; - configured_TAC_t configured_TAC; - measurementTimingConfiguration_t measurementTimingConfiguration; - nRNeighbourModeInfo_t nRNeighbourModeInfo; - iE_Extensions_t iE_Extensions; - -}; -struct NRNeighbour_Information : asn::sequenceof -{ - static constexpr const char* name() {return "NRNeighbour-Information";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -ServedEUTRAcellsENDCX2Management-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct ServedEUTRAcellsENDCX2Management_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ServedEUTRAcellsENDCX2ManagementList ::= SEQUENCE (SIZE (1.. maxCellineNB)) OF SEQUENCE { - servedEUTRACellInfo ServedCell-Information, - nrNeighbourInfo NRNeighbour-Information OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {ServedEUTRAcellsENDCX2Management-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct ServedEUTRAcellsENDCX2ManagementList_elm : asn::sequence<3, 0, true, 2> -{ - static constexpr const char* name() {return "ServedEUTRAcellsENDCX2ManagementList_elm";} - using parent_t = asn::sequence<3, 0, true, 2>; - struct servedEUTRACellInfo_t : ServedCell_Information - { - static constexpr const char* name() {return "servedEUTRACellInfo_t";} - using parent_t = ServedCell_Information; - - }; - servedEUTRACellInfo_t& ref_servedEUTRACellInfo() {return servedEUTRACellInfo;} - servedEUTRACellInfo_t const& ref_servedEUTRACellInfo() const {return servedEUTRACellInfo;} - struct nrNeighbourInfo_t : NRNeighbour_Information - { - static constexpr const char* name() {return "nrNeighbourInfo_t";} - using parent_t = NRNeighbour_Information; - static constexpr bool optional = true; - - }; - nrNeighbourInfo_t& set_nrNeighbourInfo() { nrNeighbourInfo.setpresent(true); return nrNeighbourInfo;} - nrNeighbourInfo_t const* get_nrNeighbourInfo() const {return nrNeighbourInfo.is_valid() ? &nrNeighbourInfo : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(servedEUTRACellInfo); - v(nrNeighbourInfo); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(servedEUTRACellInfo); - v(nrNeighbourInfo); - v(iE_Extensions); - - }; - void clear() - { - servedEUTRACellInfo.clear(); - nrNeighbourInfo.clear(); - iE_Extensions.clear(); - - }; - private: - servedEUTRACellInfo_t servedEUTRACellInfo; - nrNeighbourInfo_t nrNeighbourInfo; - iE_Extensions_t iE_Extensions; - -}; -struct ServedEUTRAcellsENDCX2ManagementList : asn::sequenceof -{ - static constexpr const char* name() {return "ServedEUTRAcellsENDCX2ManagementList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -ServedEUTRAcellsToModifyListENDCConfUpd-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct ServedEUTRAcellsToModifyListENDCConfUpd_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ServedEUTRAcellsToModifyListENDCConfUpd ::= SEQUENCE (SIZE (1.. maxCellineNB)) OF SEQUENCE { - old-ECGI ECGI, - servedEUTRACellInfo ServedCell-Information, - nrNeighbourInfo NRNeighbour-Information OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {ServedEUTRAcellsToModifyListENDCConfUpd-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct ServedEUTRAcellsToModifyListENDCConfUpd_elm : asn::sequence<4, 0, true, 2> -{ - static constexpr const char* name() {return "ServedEUTRAcellsToModifyListENDCConfUpd_elm";} - using parent_t = asn::sequence<4, 0, true, 2>; - struct old_ECGI_t : ECGI - { - static constexpr const char* name() {return "old_ECGI_t";} - using parent_t = ECGI; - - }; - old_ECGI_t& ref_old_ECGI() {return old_ECGI;} - old_ECGI_t const& ref_old_ECGI() const {return old_ECGI;} - struct servedEUTRACellInfo_t : ServedCell_Information - { - static constexpr const char* name() {return "servedEUTRACellInfo_t";} - using parent_t = ServedCell_Information; - - }; - servedEUTRACellInfo_t& ref_servedEUTRACellInfo() {return servedEUTRACellInfo;} - servedEUTRACellInfo_t const& ref_servedEUTRACellInfo() const {return servedEUTRACellInfo;} - struct nrNeighbourInfo_t : NRNeighbour_Information - { - static constexpr const char* name() {return "nrNeighbourInfo_t";} - using parent_t = NRNeighbour_Information; - static constexpr bool optional = true; - - }; - nrNeighbourInfo_t& set_nrNeighbourInfo() { nrNeighbourInfo.setpresent(true); return nrNeighbourInfo;} - nrNeighbourInfo_t const* get_nrNeighbourInfo() const {return nrNeighbourInfo.is_valid() ? &nrNeighbourInfo : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(old_ECGI); - v(servedEUTRACellInfo); - v(nrNeighbourInfo); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(old_ECGI); - v(servedEUTRACellInfo); - v(nrNeighbourInfo); - v(iE_Extensions); - - }; - void clear() - { - old_ECGI.clear(); - servedEUTRACellInfo.clear(); - nrNeighbourInfo.clear(); - iE_Extensions.clear(); - - }; - private: - old_ECGI_t old_ECGI; - servedEUTRACellInfo_t servedEUTRACellInfo; - nrNeighbourInfo_t nrNeighbourInfo; - iE_Extensions_t iE_Extensions; - -}; -struct ServedEUTRAcellsToModifyListENDCConfUpd : asn::sequenceof -{ - static constexpr const char* name() {return "ServedEUTRAcellsToModifyListENDCConfUpd";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -ServedEUTRAcellsToDeleteListENDCConfUpd ::= SEQUENCE (SIZE (1..maxCellineNB)) OF ECGI -*/ - -struct ServedEUTRAcellsToDeleteListENDCConfUpd_elm : ECGI -{ - static constexpr const char* name() {return "ServedEUTRAcellsToDeleteListENDCConfUpd_elm";} - using parent_t = ECGI; - -}; -struct ServedEUTRAcellsToDeleteListENDCConfUpd : asn::sequenceof -{ - static constexpr const char* name() {return "ServedEUTRAcellsToDeleteListENDCConfUpd";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -ENB-ENDCConfigUpdateIEs X2AP-PROTOCOL-IES ::= { - { ID id-CellAssistanceInformation CRITICALITY reject TYPE CellAssistanceInformation PRESENCE optional }| - { ID id-ServedEUTRAcellsENDCX2ManagementList CRITICALITY reject TYPE ServedEUTRAcellsENDCX2ManagementList PRESENCE optional }| - { ID id-ServedEUTRAcellsToModifyListENDCConfUpd CRITICALITY reject TYPE ServedEUTRAcellsToModifyListENDCConfUpd PRESENCE optional }| - { ID id-ServedEUTRAcellsToDeleteListENDCConfUpd CRITICALITY reject TYPE ServedEUTRAcellsToDeleteListENDCConfUpd PRESENCE optional }, - ... -} -*/ - -struct ENB_ENDCConfigUpdateIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_CellAssistanceInformation() { set(id_CellAssistanceInformation); type=1;} - void select_id_ServedEUTRAcellsENDCX2ManagementList() { set(id_ServedEUTRAcellsENDCX2ManagementList); type=2;} - void select_id_ServedEUTRAcellsToModifyListENDCConfUpd() { set(id_ServedEUTRAcellsToModifyListENDCConfUpd); type=3;} - void select_id_ServedEUTRAcellsToDeleteListENDCConfUpd() { set(id_ServedEUTRAcellsToDeleteListENDCConfUpd); type=4;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_CellAssistanceInformation)) { type = 1; return true; } - else if(equal(id_ServedEUTRAcellsENDCX2ManagementList)) { type = 2; return true; } - else if(equal(id_ServedEUTRAcellsToModifyListENDCConfUpd)) { type = 3; return true; } - else if(equal(id_ServedEUTRAcellsToDeleteListENDCConfUpd)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_CellAssistanceInformation);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_ServedEUTRAcellsENDCX2ManagementList);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_ServedEUTRAcellsToModifyListENDCConfUpd);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_ServedEUTRAcellsToDeleteListENDCConfUpd);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_CellAssistanceInformation() { set(reject); type=1;} - void select_id_ServedEUTRAcellsENDCX2ManagementList() { set(reject); type=2;} - void select_id_ServedEUTRAcellsToModifyListENDCConfUpd() { set(reject); type=3;} - void select_id_ServedEUTRAcellsToDeleteListENDCConfUpd() { set(reject); type=4;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(reject)) { type = 3; return true; } - else if(equal(reject)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(reject);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(reject);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - CellAssistanceInformation& select_id_CellAssistanceInformation() { return set(1); } - CellAssistanceInformation const* get_id_CellAssistanceInformation() const { return get(1); } - ServedEUTRAcellsENDCX2ManagementList& select_id_ServedEUTRAcellsENDCX2ManagementList() { return set(2); } - ServedEUTRAcellsENDCX2ManagementList const* get_id_ServedEUTRAcellsENDCX2ManagementList() const { return get(2); } - ServedEUTRAcellsToModifyListENDCConfUpd& select_id_ServedEUTRAcellsToModifyListENDCConfUpd() { return set(3); } - ServedEUTRAcellsToModifyListENDCConfUpd const* get_id_ServedEUTRAcellsToModifyListENDCConfUpd() const { return get(3); } - ServedEUTRAcellsToDeleteListENDCConfUpd& select_id_ServedEUTRAcellsToDeleteListENDCConfUpd() { return set(4); } - ServedEUTRAcellsToDeleteListENDCConfUpd const* get_id_ServedEUTRAcellsToDeleteListENDCConfUpd() const { return get(4); } - bool is_unknown() const { return type == 5; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_CellAssistanceInformation()); return true; - case 2: v(select_id_ServedEUTRAcellsENDCX2ManagementList()); return true; - case 3: v(select_id_ServedEUTRAcellsToModifyListENDCConfUpd()); return true; - case 4: v(select_id_ServedEUTRAcellsToDeleteListENDCConfUpd()); return true; - case 5: if(type != 5) {clear(); asn::base::set();} type = 5; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CellAssistanceInformation)]; - char dummy2[sizeof(ServedEUTRAcellsENDCX2ManagementList)]; - char dummy3[sizeof(ServedEUTRAcellsToDeleteListENDCConfUpd)]; - char dummy4[sizeof(ServedEUTRAcellsToModifyListENDCConfUpd)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_CellAssistanceInformation() { set(optional); type=1;} - void select_id_ServedEUTRAcellsENDCX2ManagementList() { set(optional); type=2;} - void select_id_ServedEUTRAcellsToModifyListENDCConfUpd() { set(optional); type=3;} - void select_id_ServedEUTRAcellsToDeleteListENDCConfUpd() { set(optional); type=4;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ENB-ENDCX2RemovalReqAckIEs X2AP-PROTOCOL-IES ::= { - { ID id-GlobalENB-ID CRITICALITY reject TYPE GlobalENB-ID PRESENCE mandatory}, - ... -} -*/ - -struct ENB_ENDCX2RemovalReqAckIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_GlobalENB_ID() { set(id_GlobalENB_ID); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_GlobalENB_ID)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_GlobalENB_ID);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_GlobalENB_ID() { set(reject); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - GlobalENB_ID& select_id_GlobalENB_ID() { return set(1); } - GlobalENB_ID const* get_id_GlobalENB_ID() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_GlobalENB_ID()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(GlobalENB_ID)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_GlobalENB_ID() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ENB-ENDCX2RemovalReqIEs X2AP-PROTOCOL-IES ::= { - { ID id-GlobalENB-ID CRITICALITY reject TYPE GlobalENB-ID PRESENCE mandatory}, - ... -} -*/ - -struct ENB_ENDCX2RemovalReqIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_GlobalENB_ID() { set(id_GlobalENB_ID); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_GlobalENB_ID)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_GlobalENB_ID);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_GlobalENB_ID() { set(reject); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - GlobalENB_ID& select_id_GlobalENB_ID() { return set(1); } - GlobalENB_ID const* get_id_GlobalENB_ID() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_GlobalENB_ID()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(GlobalENB_ID)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_GlobalENB_ID() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ENB-ENDCX2SetupReqAckIEs X2AP-PROTOCOL-IES ::= { - { ID id-GlobalENB-ID CRITICALITY reject TYPE GlobalENB-ID PRESENCE mandatory}| - { ID id-ServedEUTRAcellsENDCX2ManagementList CRITICALITY reject TYPE ServedEUTRAcellsENDCX2ManagementList PRESENCE mandatory}, - ... -} -*/ - -struct ENB_ENDCX2SetupReqAckIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_GlobalENB_ID() { set(id_GlobalENB_ID); type=1;} - void select_id_ServedEUTRAcellsENDCX2ManagementList() { set(id_ServedEUTRAcellsENDCX2ManagementList); type=2;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_GlobalENB_ID)) { type = 1; return true; } - else if(equal(id_ServedEUTRAcellsENDCX2ManagementList)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_GlobalENB_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_ServedEUTRAcellsENDCX2ManagementList);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_GlobalENB_ID() { set(reject); type=1;} - void select_id_ServedEUTRAcellsENDCX2ManagementList() { set(reject); type=2;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - GlobalENB_ID& select_id_GlobalENB_ID() { return set(1); } - GlobalENB_ID const* get_id_GlobalENB_ID() const { return get(1); } - ServedEUTRAcellsENDCX2ManagementList& select_id_ServedEUTRAcellsENDCX2ManagementList() { return set(2); } - ServedEUTRAcellsENDCX2ManagementList const* get_id_ServedEUTRAcellsENDCX2ManagementList() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_GlobalENB_ID()); return true; - case 2: v(select_id_ServedEUTRAcellsENDCX2ManagementList()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(GlobalENB_ID)]; - char dummy2[sizeof(ServedEUTRAcellsENDCX2ManagementList)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_GlobalENB_ID() { set(mandatory); type=1;} - void select_id_ServedEUTRAcellsENDCX2ManagementList() { set(mandatory); type=2;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ENB-ENDCX2SetupReqIEs X2AP-PROTOCOL-IES ::= { - { ID id-GlobalENB-ID CRITICALITY reject TYPE GlobalENB-ID PRESENCE mandatory}| - { ID id-ServedEUTRAcellsENDCX2ManagementList CRITICALITY reject TYPE ServedEUTRAcellsENDCX2ManagementList PRESENCE mandatory}, - ... -} -*/ - -struct ENB_ENDCX2SetupReqIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_GlobalENB_ID() { set(id_GlobalENB_ID); type=1;} - void select_id_ServedEUTRAcellsENDCX2ManagementList() { set(id_ServedEUTRAcellsENDCX2ManagementList); type=2;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_GlobalENB_ID)) { type = 1; return true; } - else if(equal(id_ServedEUTRAcellsENDCX2ManagementList)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_GlobalENB_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_ServedEUTRAcellsENDCX2ManagementList);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_GlobalENB_ID() { set(reject); type=1;} - void select_id_ServedEUTRAcellsENDCX2ManagementList() { set(reject); type=2;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - GlobalENB_ID& select_id_GlobalENB_ID() { return set(1); } - GlobalENB_ID const* get_id_GlobalENB_ID() const { return get(1); } - ServedEUTRAcellsENDCX2ManagementList& select_id_ServedEUTRAcellsENDCX2ManagementList() { return set(2); } - ServedEUTRAcellsENDCX2ManagementList const* get_id_ServedEUTRAcellsENDCX2ManagementList() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_GlobalENB_ID()); return true; - case 2: v(select_id_ServedEUTRAcellsENDCX2ManagementList()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(GlobalENB_ID)]; - char dummy2[sizeof(ServedEUTRAcellsENDCX2ManagementList)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_GlobalENB_ID() { set(mandatory); type=1;} - void select_id_ServedEUTRAcellsENDCX2ManagementList() { set(mandatory); type=2;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ListofEUTRACellsinEUTRACoordinationResp ::= SEQUENCE (SIZE (0..maxCellineNB)) OF ECGI -*/ - -struct ListofEUTRACellsinEUTRACoordinationResp_elm : ECGI -{ - static constexpr const char* name() {return "ListofEUTRACellsinEUTRACoordinationResp_elm";} - using parent_t = ECGI; - -}; -struct ListofEUTRACellsinEUTRACoordinationResp : asn::sequenceof -{ - static constexpr const char* name() {return "ListofEUTRACellsinEUTRACoordinationResp";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -ENB-EUTRA-NRCellResourceCoordinationReqAckIEs X2AP-PROTOCOL-IES ::= { - { ID id-DataTrafficResourceIndication CRITICALITY reject TYPE DataTrafficResourceIndication PRESENCE mandatory}| - { ID id-SpectrumSharingGroupID CRITICALITY reject TYPE SpectrumSharingGroupID PRESENCE mandatory}| - { ID id-ListofEUTRACellsinEUTRACoordinationResp CRITICALITY reject TYPE ListofEUTRACellsinEUTRACoordinationResp PRESENCE mandatory}, - ... -} -*/ - -struct ENB_EUTRA_NRCellResourceCoordinationReqAckIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_DataTrafficResourceIndication() { set(id_DataTrafficResourceIndication); type=1;} - void select_id_SpectrumSharingGroupID() { set(id_SpectrumSharingGroupID); type=2;} - void select_id_ListofEUTRACellsinEUTRACoordinationResp() { set(id_ListofEUTRACellsinEUTRACoordinationResp); type=3;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_DataTrafficResourceIndication)) { type = 1; return true; } - else if(equal(id_SpectrumSharingGroupID)) { type = 2; return true; } - else if(equal(id_ListofEUTRACellsinEUTRACoordinationResp)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_DataTrafficResourceIndication);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SpectrumSharingGroupID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_ListofEUTRACellsinEUTRACoordinationResp);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_DataTrafficResourceIndication() { set(reject); type=1;} - void select_id_SpectrumSharingGroupID() { set(reject); type=2;} - void select_id_ListofEUTRACellsinEUTRACoordinationResp() { set(reject); type=3;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(reject)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(reject);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - DataTrafficResourceIndication& select_id_DataTrafficResourceIndication() { return set(1); } - DataTrafficResourceIndication const* get_id_DataTrafficResourceIndication() const { return get(1); } - SpectrumSharingGroupID& select_id_SpectrumSharingGroupID() { return set(2); } - SpectrumSharingGroupID const* get_id_SpectrumSharingGroupID() const { return get(2); } - ListofEUTRACellsinEUTRACoordinationResp& select_id_ListofEUTRACellsinEUTRACoordinationResp() { return set(3); } - ListofEUTRACellsinEUTRACoordinationResp const* get_id_ListofEUTRACellsinEUTRACoordinationResp() const { return get(3); } - bool is_unknown() const { return type == 4; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_DataTrafficResourceIndication()); return true; - case 2: v(select_id_SpectrumSharingGroupID()); return true; - case 3: v(select_id_ListofEUTRACellsinEUTRACoordinationResp()); return true; - case 4: if(type != 4) {clear(); asn::base::set();} type = 4; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(DataTrafficResourceIndication)]; - char dummy2[sizeof(ListofEUTRACellsinEUTRACoordinationResp)]; - char dummy3[sizeof(SpectrumSharingGroupID)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_DataTrafficResourceIndication() { set(mandatory); type=1;} - void select_id_SpectrumSharingGroupID() { set(mandatory); type=2;} - void select_id_ListofEUTRACellsinEUTRACoordinationResp() { set(mandatory); type=3;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ListofEUTRACellsinEUTRACoordinationReq ::= SEQUENCE (SIZE (0..maxCellineNB)) OF ECGI -*/ - -struct ListofEUTRACellsinEUTRACoordinationReq_elm : ECGI -{ - static constexpr const char* name() {return "ListofEUTRACellsinEUTRACoordinationReq_elm";} - using parent_t = ECGI; - -}; -struct ListofEUTRACellsinEUTRACoordinationReq : asn::sequenceof -{ - static constexpr const char* name() {return "ListofEUTRACellsinEUTRACoordinationReq";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -ENB-EUTRA-NRCellResourceCoordinationReqIEs X2AP-PROTOCOL-IES ::= { - { ID id-DataTrafficResourceIndication CRITICALITY reject TYPE DataTrafficResourceIndication PRESENCE mandatory}| - { ID id-SpectrumSharingGroupID CRITICALITY reject TYPE SpectrumSharingGroupID PRESENCE mandatory}| - { ID id-ListofEUTRACellsinEUTRACoordinationReq CRITICALITY reject TYPE ListofEUTRACellsinEUTRACoordinationReq PRESENCE mandatory}, - ... -} -*/ - -struct ENB_EUTRA_NRCellResourceCoordinationReqIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_DataTrafficResourceIndication() { set(id_DataTrafficResourceIndication); type=1;} - void select_id_SpectrumSharingGroupID() { set(id_SpectrumSharingGroupID); type=2;} - void select_id_ListofEUTRACellsinEUTRACoordinationReq() { set(id_ListofEUTRACellsinEUTRACoordinationReq); type=3;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_DataTrafficResourceIndication)) { type = 1; return true; } - else if(equal(id_SpectrumSharingGroupID)) { type = 2; return true; } - else if(equal(id_ListofEUTRACellsinEUTRACoordinationReq)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_DataTrafficResourceIndication);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SpectrumSharingGroupID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_ListofEUTRACellsinEUTRACoordinationReq);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_DataTrafficResourceIndication() { set(reject); type=1;} - void select_id_SpectrumSharingGroupID() { set(reject); type=2;} - void select_id_ListofEUTRACellsinEUTRACoordinationReq() { set(reject); type=3;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(reject)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(reject);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - DataTrafficResourceIndication& select_id_DataTrafficResourceIndication() { return set(1); } - DataTrafficResourceIndication const* get_id_DataTrafficResourceIndication() const { return get(1); } - SpectrumSharingGroupID& select_id_SpectrumSharingGroupID() { return set(2); } - SpectrumSharingGroupID const* get_id_SpectrumSharingGroupID() const { return get(2); } - ListofEUTRACellsinEUTRACoordinationReq& select_id_ListofEUTRACellsinEUTRACoordinationReq() { return set(3); } - ListofEUTRACellsinEUTRACoordinationReq const* get_id_ListofEUTRACellsinEUTRACoordinationReq() const { return get(3); } - bool is_unknown() const { return type == 4; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_DataTrafficResourceIndication()); return true; - case 2: v(select_id_SpectrumSharingGroupID()); return true; - case 3: v(select_id_ListofEUTRACellsinEUTRACoordinationReq()); return true; - case 4: if(type != 4) {clear(); asn::base::set();} type = 4; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(DataTrafficResourceIndication)]; - char dummy2[sizeof(ListofEUTRACellsinEUTRACoordinationReq)]; - char dummy3[sizeof(SpectrumSharingGroupID)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_DataTrafficResourceIndication() { set(mandatory); type=1;} - void select_id_SpectrumSharingGroupID() { set(mandatory); type=2;} - void select_id_ListofEUTRACellsinEUTRACoordinationReq() { set(mandatory); type=3;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ServedCellsToModify-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { -{ ID id-DeactivationIndication CRITICALITY ignore EXTENSION DeactivationIndication PRESENCE optional }, - ... -} -*/ - -struct ServedCellsToModify_Item_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_DeactivationIndication() { set(id_DeactivationIndication); type=1;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_DeactivationIndication)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_DeactivationIndication);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_DeactivationIndication() { set(ignore); type=1;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - DeactivationIndication& select_id_DeactivationIndication() { return set(1); } - DeactivationIndication const* get_id_DeactivationIndication() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_DeactivationIndication()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(DeactivationIndication)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_DeactivationIndication() { set(optional); type=1;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ServedCellsToModify-Item::= SEQUENCE { - old-ecgi ECGI, - servedCellInfo ServedCell-Information, - neighbour-Info Neighbour-Information OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {ServedCellsToModify-Item-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct ServedCellsToModify_Item : asn::sequence<4, 0, true, 2> -{ - static constexpr const char* name() {return "ServedCellsToModify-Item";} - using parent_t = asn::sequence<4, 0, true, 2>; - struct old_ecgi_t : ECGI - { - static constexpr const char* name() {return "old_ecgi_t";} - using parent_t = ECGI; - - }; - old_ecgi_t& ref_old_ecgi() {return old_ecgi;} - old_ecgi_t const& ref_old_ecgi() const {return old_ecgi;} - struct servedCellInfo_t : ServedCell_Information - { - static constexpr const char* name() {return "servedCellInfo_t";} - using parent_t = ServedCell_Information; - - }; - servedCellInfo_t& ref_servedCellInfo() {return servedCellInfo;} - servedCellInfo_t const& ref_servedCellInfo() const {return servedCellInfo;} - struct neighbour_Info_t : Neighbour_Information - { - static constexpr const char* name() {return "neighbour_Info_t";} - using parent_t = Neighbour_Information; - static constexpr bool optional = true; - - }; - neighbour_Info_t& set_neighbour_Info() { neighbour_Info.setpresent(true); return neighbour_Info;} - neighbour_Info_t const* get_neighbour_Info() const {return neighbour_Info.is_valid() ? &neighbour_Info : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(old_ecgi); - v(servedCellInfo); - v(neighbour_Info); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(old_ecgi); - v(servedCellInfo); - v(neighbour_Info); - v(iE_Extensions); - - }; - void clear() - { - old_ecgi.clear(); - servedCellInfo.clear(); - neighbour_Info.clear(); - iE_Extensions.clear(); - - }; - private: - old_ecgi_t old_ecgi; - servedCellInfo_t servedCellInfo; - neighbour_Info_t neighbour_Info; - iE_Extensions_t iE_Extensions; - -}; -/* -ServedCellsToModify::= SEQUENCE (SIZE (1..maxCellineNB)) OF ServedCellsToModify-Item -*/ - -struct ServedCellsToModify_elm : ServedCellsToModify_Item -{ - static constexpr const char* name() {return "ServedCellsToModify_elm";} - using parent_t = ServedCellsToModify_Item; - -}; -struct ServedCellsToModify : asn::sequenceof -{ - static constexpr const char* name() {return "ServedCellsToModify";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -Old-ECGIs::= SEQUENCE (SIZE (1..maxCellineNB)) OF ECGI -*/ - -struct Old_ECGIs_elm : ECGI -{ - static constexpr const char* name() {return "Old_ECGIs_elm";} - using parent_t = ECGI; - -}; -struct Old_ECGIs : asn::sequenceof -{ - static constexpr const char* name() {return "Old-ECGIs";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -ENBConfigurationUpdate-IEs X2AP-PROTOCOL-IES ::= { - { ID id-ServedCellsToAdd CRITICALITY reject TYPE ServedCells PRESENCE optional}| - { ID id-ServedCellsToModify CRITICALITY reject TYPE ServedCellsToModify PRESENCE optional}| - { ID id-ServedCellsToDelete CRITICALITY reject TYPE Old-ECGIs PRESENCE optional}| - { ID id-GUGroupIDToAddList CRITICALITY reject TYPE GUGroupIDList PRESENCE optional}| - { ID id-GUGroupIDToDeleteList CRITICALITY reject TYPE GUGroupIDList PRESENCE optional}| - { ID id-CoverageModificationList CRITICALITY reject TYPE CoverageModificationList PRESENCE optional}, - ... -} -*/ - -struct ENBConfigurationUpdate_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_ServedCellsToAdd() { set(id_ServedCellsToAdd); type=1;} - void select_id_ServedCellsToModify() { set(id_ServedCellsToModify); type=2;} - void select_id_ServedCellsToDelete() { set(id_ServedCellsToDelete); type=3;} - void select_id_GUGroupIDToAddList() { set(id_GUGroupIDToAddList); type=4;} - void select_id_GUGroupIDToDeleteList() { set(id_GUGroupIDToDeleteList); type=5;} - void select_id_CoverageModificationList() { set(id_CoverageModificationList); type=6;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_ServedCellsToAdd)) { type = 1; return true; } - else if(equal(id_ServedCellsToModify)) { type = 2; return true; } - else if(equal(id_ServedCellsToDelete)) { type = 3; return true; } - else if(equal(id_GUGroupIDToAddList)) { type = 4; return true; } - else if(equal(id_GUGroupIDToDeleteList)) { type = 5; return true; } - else if(equal(id_CoverageModificationList)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_ServedCellsToAdd);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_ServedCellsToModify);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_ServedCellsToDelete);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_GUGroupIDToAddList);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_GUGroupIDToDeleteList);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_CoverageModificationList);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_ServedCellsToAdd() { set(reject); type=1;} - void select_id_ServedCellsToModify() { set(reject); type=2;} - void select_id_ServedCellsToDelete() { set(reject); type=3;} - void select_id_GUGroupIDToAddList() { set(reject); type=4;} - void select_id_GUGroupIDToDeleteList() { set(reject); type=5;} - void select_id_CoverageModificationList() { set(reject); type=6;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(reject)) { type = 3; return true; } - else if(equal(reject)) { type = 4; return true; } - else if(equal(reject)) { type = 5; return true; } - else if(equal(reject)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(reject);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(reject);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(reject);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(reject);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - ServedCells& select_id_ServedCellsToAdd() { return set(1); } - ServedCells const* get_id_ServedCellsToAdd() const { return get(1); } - ServedCellsToModify& select_id_ServedCellsToModify() { return set(2); } - ServedCellsToModify const* get_id_ServedCellsToModify() const { return get(2); } - Old_ECGIs& select_id_ServedCellsToDelete() { return set(3); } - Old_ECGIs const* get_id_ServedCellsToDelete() const { return get(3); } - GUGroupIDList& select_id_GUGroupIDToAddList() { return set(4); } - GUGroupIDList const* get_id_GUGroupIDToAddList() const { return get(4); } - GUGroupIDList& select_id_GUGroupIDToDeleteList() { return set(5); } - GUGroupIDList const* get_id_GUGroupIDToDeleteList() const { return get(5); } - CoverageModificationList& select_id_CoverageModificationList() { return set(6); } - CoverageModificationList const* get_id_CoverageModificationList() const { return get(6); } - bool is_unknown() const { return type == 7; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_ServedCellsToAdd()); return true; - case 2: v(select_id_ServedCellsToModify()); return true; - case 3: v(select_id_ServedCellsToDelete()); return true; - case 4: v(select_id_GUGroupIDToAddList()); return true; - case 5: v(select_id_GUGroupIDToDeleteList()); return true; - case 6: v(select_id_CoverageModificationList()); return true; - case 7: if(type != 7) {clear(); asn::base::set();} type = 7; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CoverageModificationList)]; - char dummy2[sizeof(GUGroupIDList)]; - char dummy3[sizeof(Old_ECGIs)]; - char dummy4[sizeof(ServedCells)]; - char dummy5[sizeof(ServedCellsToModify)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_ServedCellsToAdd() { set(optional); type=1;} - void select_id_ServedCellsToModify() { set(optional); type=2;} - void select_id_ServedCellsToDelete() { set(optional); type=3;} - void select_id_GUGroupIDToAddList() { set(optional); type=4;} - void select_id_GUGroupIDToDeleteList() { set(optional); type=5;} - void select_id_CoverageModificationList() { set(optional); type=6;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ENBConfigurationUpdate ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ENBConfigurationUpdate-IEs}}, - ... -} -*/ - -struct ENBConfigurationUpdate : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "ENBConfigurationUpdate";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -ENBConfigurationUpdateAcknowledge-IEs X2AP-PROTOCOL-IES ::= { - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, -... -} -*/ - -struct ENBConfigurationUpdateAcknowledge_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_CriticalityDiagnostics)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_CriticalityDiagnostics() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(1); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_CriticalityDiagnostics()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CriticalityDiagnostics)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_CriticalityDiagnostics() { set(optional); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ENBConfigurationUpdateAcknowledge ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ENBConfigurationUpdateAcknowledge-IEs}}, - ... -} -*/ - -struct ENBConfigurationUpdateAcknowledge : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "ENBConfigurationUpdateAcknowledge";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -ENBConfigurationUpdateFailure-IEs X2AP-PROTOCOL-IES ::= { - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| - { ID id-TimeToWait CRITICALITY ignore TYPE TimeToWait PRESENCE optional}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, - ... -} -*/ - -struct ENBConfigurationUpdateFailure_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_Cause() { set(id_Cause); type=1;} - void select_id_TimeToWait() { set(id_TimeToWait); type=2;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=3;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_Cause)) { type = 1; return true; } - else if(equal(id_TimeToWait)) { type = 2; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_TimeToWait);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_Cause() { set(ignore); type=1;} - void select_id_TimeToWait() { set(ignore); type=2;} - void select_id_CriticalityDiagnostics() { set(ignore); type=3;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - Cause& select_id_Cause() { return set(1); } - Cause const* get_id_Cause() const { return get(1); } - TimeToWait& select_id_TimeToWait() { return set(2); } - TimeToWait const* get_id_TimeToWait() const { return get(2); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(3); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(3); } - bool is_unknown() const { return type == 4; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_Cause()); return true; - case 2: v(select_id_TimeToWait()); return true; - case 3: v(select_id_CriticalityDiagnostics()); return true; - case 4: if(type != 4) {clear(); asn::base::set();} type = 4; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(CriticalityDiagnostics)]; - char dummy3[sizeof(TimeToWait)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_Cause() { set(mandatory); type=1;} - void select_id_TimeToWait() { set(optional); type=2;} - void select_id_CriticalityDiagnostics() { set(optional); type=3;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ENBConfigurationUpdateFailure ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ENBConfigurationUpdateFailure-IEs}}, - ... -} -*/ - -struct ENBConfigurationUpdateFailure : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "ENBConfigurationUpdateFailure";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -ENDCCellActivationFailure-IEs X2AP-PROTOCOL-IES ::= { - { ID id-ActivationID CRITICALITY reject TYPE ActivationID PRESENCE mandatory }| - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, - ... -} -*/ - -struct ENDCCellActivationFailure_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_ActivationID() { set(id_ActivationID); type=1;} - void select_id_Cause() { set(id_Cause); type=2;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=3;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_ActivationID)) { type = 1; return true; } - else if(equal(id_Cause)) { type = 2; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_ActivationID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_ActivationID() { set(reject); type=1;} - void select_id_Cause() { set(ignore); type=2;} - void select_id_CriticalityDiagnostics() { set(ignore); type=3;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - ActivationID& select_id_ActivationID() { return set(1); } - ActivationID const* get_id_ActivationID() const { return get(1); } - Cause& select_id_Cause() { return set(2); } - Cause const* get_id_Cause() const { return get(2); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(3); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(3); } - bool is_unknown() const { return type == 4; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_ActivationID()); return true; - case 2: v(select_id_Cause()); return true; - case 3: v(select_id_CriticalityDiagnostics()); return true; - case 4: if(type != 4) {clear(); asn::base::set();} type = 4; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(ActivationID)]; - char dummy2[sizeof(Cause)]; - char dummy3[sizeof(CriticalityDiagnostics)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_ActivationID() { set(mandatory); type=1;} - void select_id_Cause() { set(mandatory); type=2;} - void select_id_CriticalityDiagnostics() { set(optional); type=3;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ENDCCellActivationFailure ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ENDCCellActivationFailure-IEs}}, - ... -} -*/ - -struct ENDCCellActivationFailure : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "ENDCCellActivationFailure";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -ServedNRCellsToActivate-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct ServedNRCellsToActivate_Item_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ServedNRCellsToActivate-Item::= SEQUENCE { - nrCellID NRCGI, - iE-Extensions ProtocolExtensionContainer { {ServedNRCellsToActivate-Item-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct ServedNRCellsToActivate_Item : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "ServedNRCellsToActivate-Item";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct nrCellID_t : NRCGI - { - static constexpr const char* name() {return "nrCellID_t";} - using parent_t = NRCGI; - - }; - nrCellID_t& ref_nrCellID() {return nrCellID;} - nrCellID_t const& ref_nrCellID() const {return nrCellID;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(nrCellID); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(nrCellID); - v(iE_Extensions); - - }; - void clear() - { - nrCellID.clear(); - iE_Extensions.clear(); - - }; - private: - nrCellID_t nrCellID; - iE_Extensions_t iE_Extensions; - -}; -/* -ServedNRCellsToActivate::= SEQUENCE (SIZE (1.. maxCellinengNB)) OF ServedNRCellsToActivate-Item -*/ - -struct ServedNRCellsToActivate_elm : ServedNRCellsToActivate_Item -{ - static constexpr const char* name() {return "ServedNRCellsToActivate_elm";} - using parent_t = ServedNRCellsToActivate_Item; - -}; -struct ServedNRCellsToActivate : asn::sequenceof -{ - static constexpr const char* name() {return "ServedNRCellsToActivate";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -ENDCCellActivationRequest-IEs X2AP-PROTOCOL-IES ::= { - { ID id-ServedNRCellsToActivate CRITICALITY reject TYPE ServedNRCellsToActivate PRESENCE mandatory}| - { ID id-ActivationID CRITICALITY reject TYPE ActivationID PRESENCE mandatory}, - ... -} -*/ - -struct ENDCCellActivationRequest_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_ServedNRCellsToActivate() { set(id_ServedNRCellsToActivate); type=1;} - void select_id_ActivationID() { set(id_ActivationID); type=2;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_ServedNRCellsToActivate)) { type = 1; return true; } - else if(equal(id_ActivationID)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_ServedNRCellsToActivate);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_ActivationID);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_ServedNRCellsToActivate() { set(reject); type=1;} - void select_id_ActivationID() { set(reject); type=2;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - ServedNRCellsToActivate& select_id_ServedNRCellsToActivate() { return set(1); } - ServedNRCellsToActivate const* get_id_ServedNRCellsToActivate() const { return get(1); } - ActivationID& select_id_ActivationID() { return set(2); } - ActivationID const* get_id_ActivationID() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_ServedNRCellsToActivate()); return true; - case 2: v(select_id_ActivationID()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(ActivationID)]; - char dummy2[sizeof(ServedNRCellsToActivate)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_ServedNRCellsToActivate() { set(mandatory); type=1;} - void select_id_ActivationID() { set(mandatory); type=2;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ENDCCellActivationRequest ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ENDCCellActivationRequest-IEs}}, - ... -} -*/ - -struct ENDCCellActivationRequest : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "ENDCCellActivationRequest";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -ENDCCellActivationResponse-IEs X2AP-PROTOCOL-IES ::= { - { ID id-ActivatedNRCellList CRITICALITY ignore TYPE ActivatedNRCellList PRESENCE mandatory}| - { ID id-ActivationID CRITICALITY reject TYPE ActivationID PRESENCE mandatory}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, - ... -} -*/ - -struct ENDCCellActivationResponse_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_ActivatedNRCellList() { set(id_ActivatedNRCellList); type=1;} - void select_id_ActivationID() { set(id_ActivationID); type=2;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=3;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_ActivatedNRCellList)) { type = 1; return true; } - else if(equal(id_ActivationID)) { type = 2; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_ActivatedNRCellList);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_ActivationID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_ActivatedNRCellList() { set(ignore); type=1;} - void select_id_ActivationID() { set(reject); type=2;} - void select_id_CriticalityDiagnostics() { set(ignore); type=3;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - ActivatedNRCellList& select_id_ActivatedNRCellList() { return set(1); } - ActivatedNRCellList const* get_id_ActivatedNRCellList() const { return get(1); } - ActivationID& select_id_ActivationID() { return set(2); } - ActivationID const* get_id_ActivationID() const { return get(2); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(3); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(3); } - bool is_unknown() const { return type == 4; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_ActivatedNRCellList()); return true; - case 2: v(select_id_ActivationID()); return true; - case 3: v(select_id_CriticalityDiagnostics()); return true; - case 4: if(type != 4) {clear(); asn::base::set();} type = 4; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(ActivatedNRCellList)]; - char dummy2[sizeof(ActivationID)]; - char dummy3[sizeof(CriticalityDiagnostics)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_ActivatedNRCellList() { set(mandatory); type=1;} - void select_id_ActivationID() { set(mandatory); type=2;} - void select_id_CriticalityDiagnostics() { set(optional); type=3;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ENDCCellActivationResponse ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ENDCCellActivationResponse-IEs}}, - ... -} -*/ - -struct ENDCCellActivationResponse : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "ENDCCellActivationResponse";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -FDD-InfoServedNRCell-Information-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct FDD_InfoServedNRCell_Information_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -FDD-InfoServedNRCell-Information ::= SEQUENCE { - ul-NRFreqInfo NRFreqInfo, - dl-NRFreqInfo NRFreqInfo, - ul-NR-TxBW NR-TxBW, - dl-NR-TxBW NR-TxBW, - iE-Extensions ProtocolExtensionContainer { {FDD-InfoServedNRCell-Information-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct FDD_InfoServedNRCell_Information : asn::sequence<5, 0, true, 1> -{ - static constexpr const char* name() {return "FDD-InfoServedNRCell-Information";} - using parent_t = asn::sequence<5, 0, true, 1>; - struct ul_NRFreqInfo_t : NRFreqInfo - { - static constexpr const char* name() {return "ul_NRFreqInfo_t";} - using parent_t = NRFreqInfo; - - }; - ul_NRFreqInfo_t& ref_ul_NRFreqInfo() {return ul_NRFreqInfo;} - ul_NRFreqInfo_t const& ref_ul_NRFreqInfo() const {return ul_NRFreqInfo;} - struct dl_NRFreqInfo_t : NRFreqInfo - { - static constexpr const char* name() {return "dl_NRFreqInfo_t";} - using parent_t = NRFreqInfo; - - }; - dl_NRFreqInfo_t& ref_dl_NRFreqInfo() {return dl_NRFreqInfo;} - dl_NRFreqInfo_t const& ref_dl_NRFreqInfo() const {return dl_NRFreqInfo;} - struct ul_NR_TxBW_t : NR_TxBW - { - static constexpr const char* name() {return "ul_NR_TxBW_t";} - using parent_t = NR_TxBW; - - }; - ul_NR_TxBW_t& ref_ul_NR_TxBW() {return ul_NR_TxBW;} - ul_NR_TxBW_t const& ref_ul_NR_TxBW() const {return ul_NR_TxBW;} - struct dl_NR_TxBW_t : NR_TxBW - { - static constexpr const char* name() {return "dl_NR_TxBW_t";} - using parent_t = NR_TxBW; - - }; - dl_NR_TxBW_t& ref_dl_NR_TxBW() {return dl_NR_TxBW;} - dl_NR_TxBW_t const& ref_dl_NR_TxBW() const {return dl_NR_TxBW;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(ul_NRFreqInfo); - v(dl_NRFreqInfo); - v(ul_NR_TxBW); - v(dl_NR_TxBW); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(ul_NRFreqInfo); - v(dl_NRFreqInfo); - v(ul_NR_TxBW); - v(dl_NR_TxBW); - v(iE_Extensions); - - }; - void clear() - { - ul_NRFreqInfo.clear(); - dl_NRFreqInfo.clear(); - ul_NR_TxBW.clear(); - dl_NR_TxBW.clear(); - iE_Extensions.clear(); - - }; - private: - ul_NRFreqInfo_t ul_NRFreqInfo; - dl_NRFreqInfo_t dl_NRFreqInfo; - ul_NR_TxBW_t ul_NR_TxBW; - dl_NR_TxBW_t dl_NR_TxBW; - iE_Extensions_t iE_Extensions; - -}; -/* -TDD-InfoServedNRCell-Information-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct TDD_InfoServedNRCell_Information_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -TDD-InfoServedNRCell-Information ::= SEQUENCE { - nRFreqInfo NRFreqInfo, - nR-TxBW NR-TxBW, - iE-Extensions ProtocolExtensionContainer { {TDD-InfoServedNRCell-Information-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct TDD_InfoServedNRCell_Information : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "TDD-InfoServedNRCell-Information";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct nRFreqInfo_t : NRFreqInfo - { - static constexpr const char* name() {return "nRFreqInfo_t";} - using parent_t = NRFreqInfo; - - }; - nRFreqInfo_t& ref_nRFreqInfo() {return nRFreqInfo;} - nRFreqInfo_t const& ref_nRFreqInfo() const {return nRFreqInfo;} - struct nR_TxBW_t : NR_TxBW - { - static constexpr const char* name() {return "nR_TxBW_t";} - using parent_t = NR_TxBW; - - }; - nR_TxBW_t& ref_nR_TxBW() {return nR_TxBW;} - nR_TxBW_t const& ref_nR_TxBW() const {return nR_TxBW;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(nRFreqInfo); - v(nR_TxBW); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(nRFreqInfo); - v(nR_TxBW); - v(iE_Extensions); - - }; - void clear() - { - nRFreqInfo.clear(); - nR_TxBW.clear(); - iE_Extensions.clear(); - - }; - private: - nRFreqInfo_t nRFreqInfo; - nR_TxBW_t nR_TxBW; - iE_Extensions_t iE_Extensions; - -}; -/* -ServedNRCell-Information-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct ServedNRCell_Information_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ServedNRCell-Information ::= SEQUENCE { - nrpCI NRPCI, - nrCellID NRCGI, - fiveGS-TAC FiveGS-TAC OPTIONAL, - configured-TAC TAC OPTIONAL, - broadcastPLMNs BroadcastPLMNs-Item, - nrModeInfo CHOICE { - fdd FDD-InfoServedNRCell-Information, - tdd TDD-InfoServedNRCell-Information, - ... - }, - measurementTimingConfiguration OCTET STRING, - iE-Extensions ProtocolExtensionContainer { {ServedNRCell-Information-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct ServedNRCell_Information : asn::sequence<8, 0, true, 3> -{ - static constexpr const char* name() {return "ServedNRCell-Information";} - using parent_t = asn::sequence<8, 0, true, 3>; - struct nrpCI_t : NRPCI - { - static constexpr const char* name() {return "nrpCI_t";} - using parent_t = NRPCI; - - }; - nrpCI_t& ref_nrpCI() {return nrpCI;} - nrpCI_t const& ref_nrpCI() const {return nrpCI;} - struct nrCellID_t : NRCGI - { - static constexpr const char* name() {return "nrCellID_t";} - using parent_t = NRCGI; - - }; - nrCellID_t& ref_nrCellID() {return nrCellID;} - nrCellID_t const& ref_nrCellID() const {return nrCellID;} - struct fiveGS_TAC_t : FiveGS_TAC - { - static constexpr const char* name() {return "fiveGS_TAC_t";} - using parent_t = FiveGS_TAC; - static constexpr bool optional = true; - - }; - fiveGS_TAC_t& set_fiveGS_TAC() { fiveGS_TAC.setpresent(true); return fiveGS_TAC;} - fiveGS_TAC_t const* get_fiveGS_TAC() const {return fiveGS_TAC.is_valid() ? &fiveGS_TAC : nullptr;} - struct configured_TAC_t : TAC - { - static constexpr const char* name() {return "configured_TAC_t";} - using parent_t = TAC; - static constexpr bool optional = true; - - }; - configured_TAC_t& set_configured_TAC() { configured_TAC.setpresent(true); return configured_TAC;} - configured_TAC_t const* get_configured_TAC() const {return configured_TAC.is_valid() ? &configured_TAC : nullptr;} - struct broadcastPLMNs_t : BroadcastPLMNs_Item - { - static constexpr const char* name() {return "broadcastPLMNs_t";} - using parent_t = BroadcastPLMNs_Item; - - }; - broadcastPLMNs_t& ref_broadcastPLMNs() {return broadcastPLMNs;} - broadcastPLMNs_t const& ref_broadcastPLMNs() const {return broadcastPLMNs;} - struct nrModeInfo_t : asn::choice<2, 0, true> - { - static constexpr const char* name() {return "nrModeInfo_t";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~nrModeInfo_t() {clear();} - struct fdd_t : FDD_InfoServedNRCell_Information - { - static constexpr const char* name() {return "fdd_t";} - using parent_t = FDD_InfoServedNRCell_Information; - - }; - struct tdd_t : TDD_InfoServedNRCell_Information - { - static constexpr const char* name() {return "tdd_t";} - using parent_t = TDD_InfoServedNRCell_Information; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - fdd_t& select_fdd() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - fdd_t const* get_fdd() const { if(get_index() == 1) { return &var.as();} return nullptr; } - tdd_t& select_tdd() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - tdd_t const* get_tdd() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(fdd_t)]; - char dummy2[sizeof(tdd_t)]; - - }; - asn::variant var; - index_type index {0}; - }; - nrModeInfo_t& ref_nrModeInfo() {return nrModeInfo;} - nrModeInfo_t const& ref_nrModeInfo() const {return nrModeInfo;} - struct measurementTimingConfiguration_t : asn::ostring<> - { - static constexpr const char* name() {return "measurementTimingConfiguration_t";} - using parent_t = asn::ostring<>; - - }; - - measurementTimingConfiguration_t& ref_measurementTimingConfiguration() {return measurementTimingConfiguration;} - measurementTimingConfiguration_t const& ref_measurementTimingConfiguration() const {return measurementTimingConfiguration;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(nrpCI); - v(nrCellID); - v(fiveGS_TAC); - v(configured_TAC); - v(broadcastPLMNs); - v(nrModeInfo); - v(measurementTimingConfiguration); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(nrpCI); - v(nrCellID); - v(fiveGS_TAC); - v(configured_TAC); - v(broadcastPLMNs); - v(nrModeInfo); - v(measurementTimingConfiguration); - v(iE_Extensions); - - }; - void clear() - { - nrpCI.clear(); - nrCellID.clear(); - fiveGS_TAC.clear(); - configured_TAC.clear(); - broadcastPLMNs.clear(); - nrModeInfo.clear(); - measurementTimingConfiguration.clear(); - iE_Extensions.clear(); - - }; - private: - nrpCI_t nrpCI; - nrCellID_t nrCellID; - fiveGS_TAC_t fiveGS_TAC; - configured_TAC_t configured_TAC; - broadcastPLMNs_t broadcastPLMNs; - nrModeInfo_t nrModeInfo; - measurementTimingConfiguration_t measurementTimingConfiguration; - iE_Extensions_t iE_Extensions; - -}; -/* -En-gNBServedCells-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct En_gNBServedCells_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ServedNRcellsENDCX2ManagementList ::= SEQUENCE (SIZE (1.. maxCellinengNB)) OF SEQUENCE { - servedNRCellInfo ServedNRCell-Information, - nRNeighbourInfo NRNeighbour-Information OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {En-gNBServedCells-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct ServedNRcellsENDCX2ManagementList_elm : asn::sequence<3, 0, true, 2> -{ - static constexpr const char* name() {return "ServedNRcellsENDCX2ManagementList_elm";} - using parent_t = asn::sequence<3, 0, true, 2>; - struct servedNRCellInfo_t : ServedNRCell_Information - { - static constexpr const char* name() {return "servedNRCellInfo_t";} - using parent_t = ServedNRCell_Information; - - }; - servedNRCellInfo_t& ref_servedNRCellInfo() {return servedNRCellInfo;} - servedNRCellInfo_t const& ref_servedNRCellInfo() const {return servedNRCellInfo;} - struct nRNeighbourInfo_t : NRNeighbour_Information - { - static constexpr const char* name() {return "nRNeighbourInfo_t";} - using parent_t = NRNeighbour_Information; - static constexpr bool optional = true; - - }; - nRNeighbourInfo_t& set_nRNeighbourInfo() { nRNeighbourInfo.setpresent(true); return nRNeighbourInfo;} - nRNeighbourInfo_t const* get_nRNeighbourInfo() const {return nRNeighbourInfo.is_valid() ? &nRNeighbourInfo : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(servedNRCellInfo); - v(nRNeighbourInfo); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(servedNRCellInfo); - v(nRNeighbourInfo); - v(iE_Extensions); - - }; - void clear() - { - servedNRCellInfo.clear(); - nRNeighbourInfo.clear(); - iE_Extensions.clear(); - - }; - private: - servedNRCellInfo_t servedNRCellInfo; - nRNeighbourInfo_t nRNeighbourInfo; - iE_Extensions_t iE_Extensions; - -}; -struct ServedNRcellsENDCX2ManagementList : asn::sequenceof -{ - static constexpr const char* name() {return "ServedNRcellsENDCX2ManagementList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -ServedNRCellsToModify-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct ServedNRCellsToModify_Item_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ServedNRCellsToModify-Item::= SEQUENCE { - old-nrcgi NRCGI, - servedNRCellInformation ServedNRCell-Information, - nrNeighbourInformation NRNeighbour-Information OPTIONAL, - nrDeactivationIndication DeactivationIndication OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {ServedNRCellsToModify-Item-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct ServedNRCellsToModify_Item : asn::sequence<5, 0, true, 3> -{ - static constexpr const char* name() {return "ServedNRCellsToModify-Item";} - using parent_t = asn::sequence<5, 0, true, 3>; - struct old_nrcgi_t : NRCGI - { - static constexpr const char* name() {return "old_nrcgi_t";} - using parent_t = NRCGI; - - }; - old_nrcgi_t& ref_old_nrcgi() {return old_nrcgi;} - old_nrcgi_t const& ref_old_nrcgi() const {return old_nrcgi;} - struct servedNRCellInformation_t : ServedNRCell_Information - { - static constexpr const char* name() {return "servedNRCellInformation_t";} - using parent_t = ServedNRCell_Information; - - }; - servedNRCellInformation_t& ref_servedNRCellInformation() {return servedNRCellInformation;} - servedNRCellInformation_t const& ref_servedNRCellInformation() const {return servedNRCellInformation;} - struct nrNeighbourInformation_t : NRNeighbour_Information - { - static constexpr const char* name() {return "nrNeighbourInformation_t";} - using parent_t = NRNeighbour_Information; - static constexpr bool optional = true; - - }; - nrNeighbourInformation_t& set_nrNeighbourInformation() { nrNeighbourInformation.setpresent(true); return nrNeighbourInformation;} - nrNeighbourInformation_t const* get_nrNeighbourInformation() const {return nrNeighbourInformation.is_valid() ? &nrNeighbourInformation : nullptr;} - struct nrDeactivationIndication_t : DeactivationIndication - { - static constexpr const char* name() {return "nrDeactivationIndication_t";} - using parent_t = DeactivationIndication; - static constexpr bool optional = true; - - }; - nrDeactivationIndication_t& set_nrDeactivationIndication() { nrDeactivationIndication.setpresent(true); return nrDeactivationIndication;} - nrDeactivationIndication_t const* get_nrDeactivationIndication() const {return nrDeactivationIndication.is_valid() ? &nrDeactivationIndication : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(old_nrcgi); - v(servedNRCellInformation); - v(nrNeighbourInformation); - v(nrDeactivationIndication); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(old_nrcgi); - v(servedNRCellInformation); - v(nrNeighbourInformation); - v(nrDeactivationIndication); - v(iE_Extensions); - - }; - void clear() - { - old_nrcgi.clear(); - servedNRCellInformation.clear(); - nrNeighbourInformation.clear(); - nrDeactivationIndication.clear(); - iE_Extensions.clear(); - - }; - private: - old_nrcgi_t old_nrcgi; - servedNRCellInformation_t servedNRCellInformation; - nrNeighbourInformation_t nrNeighbourInformation; - nrDeactivationIndication_t nrDeactivationIndication; - iE_Extensions_t iE_Extensions; - -}; -/* -ServedNRcellsToModifyENDCConfUpdList ::= SEQUENCE (SIZE (1..maxCellinengNB)) OF ServedNRCellsToModify-Item -*/ - -struct ServedNRcellsToModifyENDCConfUpdList_elm : ServedNRCellsToModify_Item -{ - static constexpr const char* name() {return "ServedNRcellsToModifyENDCConfUpdList_elm";} - using parent_t = ServedNRCellsToModify_Item; - -}; -struct ServedNRcellsToModifyENDCConfUpdList : asn::sequenceof -{ - static constexpr const char* name() {return "ServedNRcellsToModifyENDCConfUpdList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -ServedNRcellsToDeleteENDCConfUpdList ::= SEQUENCE (SIZE (1..maxCellinengNB)) OF NRCGI -*/ - -struct ServedNRcellsToDeleteENDCConfUpdList_elm : NRCGI -{ - static constexpr const char* name() {return "ServedNRcellsToDeleteENDCConfUpdList_elm";} - using parent_t = NRCGI; - -}; -struct ServedNRcellsToDeleteENDCConfUpdList : asn::sequenceof -{ - static constexpr const char* name() {return "ServedNRcellsToDeleteENDCConfUpdList";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -En-gNB-ENDCConfigUpdateIEs X2AP-PROTOCOL-IES ::= { - { ID id-ServedNRcellsENDCX2ManagementList CRITICALITY reject TYPE ServedNRcellsENDCX2ManagementList PRESENCE optional }| - { ID id-ServedNRcellsToModifyListENDCConfUpd CRITICALITY reject TYPE ServedNRcellsToModifyENDCConfUpdList PRESENCE optional }| - { ID id-ServedNRcellsToDeleteListENDCConfUpd CRITICALITY reject TYPE ServedNRcellsToDeleteENDCConfUpdList PRESENCE optional }, - ... -} -*/ - -struct En_gNB_ENDCConfigUpdateIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_ServedNRcellsENDCX2ManagementList() { set(id_ServedNRcellsENDCX2ManagementList); type=1;} - void select_id_ServedNRcellsToModifyListENDCConfUpd() { set(id_ServedNRcellsToModifyListENDCConfUpd); type=2;} - void select_id_ServedNRcellsToDeleteListENDCConfUpd() { set(id_ServedNRcellsToDeleteListENDCConfUpd); type=3;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_ServedNRcellsENDCX2ManagementList)) { type = 1; return true; } - else if(equal(id_ServedNRcellsToModifyListENDCConfUpd)) { type = 2; return true; } - else if(equal(id_ServedNRcellsToDeleteListENDCConfUpd)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_ServedNRcellsENDCX2ManagementList);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_ServedNRcellsToModifyListENDCConfUpd);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_ServedNRcellsToDeleteListENDCConfUpd);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_ServedNRcellsENDCX2ManagementList() { set(reject); type=1;} - void select_id_ServedNRcellsToModifyListENDCConfUpd() { set(reject); type=2;} - void select_id_ServedNRcellsToDeleteListENDCConfUpd() { set(reject); type=3;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(reject)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(reject);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - ServedNRcellsENDCX2ManagementList& select_id_ServedNRcellsENDCX2ManagementList() { return set(1); } - ServedNRcellsENDCX2ManagementList const* get_id_ServedNRcellsENDCX2ManagementList() const { return get(1); } - ServedNRcellsToModifyENDCConfUpdList& select_id_ServedNRcellsToModifyListENDCConfUpd() { return set(2); } - ServedNRcellsToModifyENDCConfUpdList const* get_id_ServedNRcellsToModifyListENDCConfUpd() const { return get(2); } - ServedNRcellsToDeleteENDCConfUpdList& select_id_ServedNRcellsToDeleteListENDCConfUpd() { return set(3); } - ServedNRcellsToDeleteENDCConfUpdList const* get_id_ServedNRcellsToDeleteListENDCConfUpd() const { return get(3); } - bool is_unknown() const { return type == 4; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_ServedNRcellsENDCX2ManagementList()); return true; - case 2: v(select_id_ServedNRcellsToModifyListENDCConfUpd()); return true; - case 3: v(select_id_ServedNRcellsToDeleteListENDCConfUpd()); return true; - case 4: if(type != 4) {clear(); asn::base::set();} type = 4; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(ServedNRcellsENDCX2ManagementList)]; - char dummy2[sizeof(ServedNRcellsToDeleteENDCConfUpdList)]; - char dummy3[sizeof(ServedNRcellsToModifyENDCConfUpdList)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_ServedNRcellsENDCX2ManagementList() { set(optional); type=1;} - void select_id_ServedNRcellsToModifyListENDCConfUpd() { set(optional); type=2;} - void select_id_ServedNRcellsToDeleteListENDCConfUpd() { set(optional); type=3;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -InitiatingNodeType-EndcConfigUpdate::= CHOICE { - init-eNB ProtocolIE-Container {{ENB-ENDCConfigUpdateIEs}}, - init-en-gNB ProtocolIE-Container {{En-gNB-ENDCConfigUpdateIEs}}, - ... -} -*/ - -struct InitiatingNodeType_EndcConfigUpdate : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "InitiatingNodeType-EndcConfigUpdate";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~InitiatingNodeType_EndcConfigUpdate() {clear();} - struct init_eNB_t : ProtocolIE_Container - { - static constexpr const char* name() {return "init_eNB_t";} - using parent_t = ProtocolIE_Container; - - }; - struct init_en_gNB_t : ProtocolIE_Container - { - static constexpr const char* name() {return "init_en_gNB_t";} - using parent_t = ProtocolIE_Container; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - init_eNB_t& select_init_eNB() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - init_eNB_t const* get_init_eNB() const { if(get_index() == 1) { return &var.as();} return nullptr; } - init_en_gNB_t& select_init_en_gNB() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - init_en_gNB_t const* get_init_en_gNB() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(init_eNB_t)]; - char dummy2[sizeof(init_en_gNB_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -ENDCConfigurationUpdate-IEs X2AP-PROTOCOL-IES ::= { - { ID id-InitiatingNodeType-EndcConfigUpdate CRITICALITY reject TYPE InitiatingNodeType-EndcConfigUpdate PRESENCE mandatory}, - ... -} -*/ - -struct ENDCConfigurationUpdate_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_InitiatingNodeType_EndcConfigUpdate() { set(id_InitiatingNodeType_EndcConfigUpdate); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_InitiatingNodeType_EndcConfigUpdate)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_InitiatingNodeType_EndcConfigUpdate);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_InitiatingNodeType_EndcConfigUpdate() { set(reject); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - InitiatingNodeType_EndcConfigUpdate& select_id_InitiatingNodeType_EndcConfigUpdate() { return set(1); } - InitiatingNodeType_EndcConfigUpdate const* get_id_InitiatingNodeType_EndcConfigUpdate() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_InitiatingNodeType_EndcConfigUpdate()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(InitiatingNodeType_EndcConfigUpdate)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_InitiatingNodeType_EndcConfigUpdate() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ENDCConfigurationUpdate ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ENDCConfigurationUpdate-IEs}}, - ... -} -*/ - -struct ENDCConfigurationUpdate : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "ENDCConfigurationUpdate";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -En-gNB-ENDCConfigUpdateAckIEs X2AP-PROTOCOL-IES ::= { - { ID id-ServedNRcellsENDCX2ManagementList CRITICALITY reject TYPE ServedNRcellsENDCX2ManagementList PRESENCE optional}, - ... -} -*/ - -struct En_gNB_ENDCConfigUpdateAckIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_ServedNRcellsENDCX2ManagementList() { set(id_ServedNRcellsENDCX2ManagementList); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_ServedNRcellsENDCX2ManagementList)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_ServedNRcellsENDCX2ManagementList);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_ServedNRcellsENDCX2ManagementList() { set(reject); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - ServedNRcellsENDCX2ManagementList& select_id_ServedNRcellsENDCX2ManagementList() { return set(1); } - ServedNRcellsENDCX2ManagementList const* get_id_ServedNRcellsENDCX2ManagementList() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_ServedNRcellsENDCX2ManagementList()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(ServedNRcellsENDCX2ManagementList)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_ServedNRcellsENDCX2ManagementList() { set(optional); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RespondingNodeType-EndcConfigUpdate::= CHOICE { - respond-eNB ProtocolIE-Container {{ENB-ENDCConfigUpdateAckIEs}}, - respond-en-gNB ProtocolIE-Container {{En-gNB-ENDCConfigUpdateAckIEs}}, - ... -} -*/ - -struct RespondingNodeType_EndcConfigUpdate : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "RespondingNodeType-EndcConfigUpdate";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~RespondingNodeType_EndcConfigUpdate() {clear();} - struct respond_eNB_t : ProtocolIE_Container - { - static constexpr const char* name() {return "respond_eNB_t";} - using parent_t = ProtocolIE_Container; - - }; - struct respond_en_gNB_t : ProtocolIE_Container - { - static constexpr const char* name() {return "respond_en_gNB_t";} - using parent_t = ProtocolIE_Container; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - respond_eNB_t& select_respond_eNB() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - respond_eNB_t const* get_respond_eNB() const { if(get_index() == 1) { return &var.as();} return nullptr; } - respond_en_gNB_t& select_respond_en_gNB() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - respond_en_gNB_t const* get_respond_en_gNB() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(respond_eNB_t)]; - char dummy2[sizeof(respond_en_gNB_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -ENDCConfigurationUpdateAcknowledge-IEs X2AP-PROTOCOL-IES ::= { - { ID id-RespondingNodeType-EndcConfigUpdate CRITICALITY reject TYPE RespondingNodeType-EndcConfigUpdate PRESENCE mandatory}, - ... -} -*/ - -struct ENDCConfigurationUpdateAcknowledge_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RespondingNodeType_EndcConfigUpdate() { set(id_RespondingNodeType_EndcConfigUpdate); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_RespondingNodeType_EndcConfigUpdate)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_RespondingNodeType_EndcConfigUpdate);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RespondingNodeType_EndcConfigUpdate() { set(reject); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - RespondingNodeType_EndcConfigUpdate& select_id_RespondingNodeType_EndcConfigUpdate() { return set(1); } - RespondingNodeType_EndcConfigUpdate const* get_id_RespondingNodeType_EndcConfigUpdate() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_RespondingNodeType_EndcConfigUpdate()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(RespondingNodeType_EndcConfigUpdate)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RespondingNodeType_EndcConfigUpdate() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ENDCConfigurationUpdateAcknowledge ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ENDCConfigurationUpdateAcknowledge-IEs}}, - ... -} -*/ - -struct ENDCConfigurationUpdateAcknowledge : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "ENDCConfigurationUpdateAcknowledge";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -ENDCConfigurationUpdateFailure-IEs X2AP-PROTOCOL-IES ::= { - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }| - { ID id-TimeToWait CRITICALITY ignore TYPE TimeToWait PRESENCE optional }, - ... -} -*/ - -struct ENDCConfigurationUpdateFailure_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_Cause() { set(id_Cause); type=1;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=2;} - void select_id_TimeToWait() { set(id_TimeToWait); type=3;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_Cause)) { type = 1; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 2; return true; } - else if(equal(id_TimeToWait)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_TimeToWait);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_Cause() { set(ignore); type=1;} - void select_id_CriticalityDiagnostics() { set(ignore); type=2;} - void select_id_TimeToWait() { set(ignore); type=3;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - Cause& select_id_Cause() { return set(1); } - Cause const* get_id_Cause() const { return get(1); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(2); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(2); } - TimeToWait& select_id_TimeToWait() { return set(3); } - TimeToWait const* get_id_TimeToWait() const { return get(3); } - bool is_unknown() const { return type == 4; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_Cause()); return true; - case 2: v(select_id_CriticalityDiagnostics()); return true; - case 3: v(select_id_TimeToWait()); return true; - case 4: if(type != 4) {clear(); asn::base::set();} type = 4; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(CriticalityDiagnostics)]; - char dummy3[sizeof(TimeToWait)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_Cause() { set(mandatory); type=1;} - void select_id_CriticalityDiagnostics() { set(optional); type=2;} - void select_id_TimeToWait() { set(optional); type=3;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ENDCConfigurationUpdateFailure ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ENDCConfigurationUpdateFailure-IEs}}, - ... -} -*/ - -struct ENDCConfigurationUpdateFailure : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "ENDCConfigurationUpdateFailure";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -ENDCPartialResetConfirm-IEs X2AP-PROTOCOL-IES ::= { - { ID id-UEs-Admitted-ToBeReset CRITICALITY reject TYPE UEsToBeResetList PRESENCE mandatory}, - ... -} -*/ - -struct ENDCPartialResetConfirm_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_UEs_Admitted_ToBeReset() { set(id_UEs_Admitted_ToBeReset); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_UEs_Admitted_ToBeReset)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_UEs_Admitted_ToBeReset);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_UEs_Admitted_ToBeReset() { set(reject); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UEsToBeResetList& select_id_UEs_Admitted_ToBeReset() { return set(1); } - UEsToBeResetList const* get_id_UEs_Admitted_ToBeReset() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_UEs_Admitted_ToBeReset()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(UEsToBeResetList)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_UEs_Admitted_ToBeReset() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ENDCPartialResetConfirm ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ENDCPartialResetConfirm-IEs}}, - ... -} -*/ - -struct ENDCPartialResetConfirm : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "ENDCPartialResetConfirm";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -ENDCPartialResetRequired-IEs X2AP-PROTOCOL-IES ::= { - { ID id-UEs-ToBeReset CRITICALITY reject TYPE UEsToBeResetList PRESENCE mandatory}| - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }, - ... -} -*/ - -struct ENDCPartialResetRequired_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_UEs_ToBeReset() { set(id_UEs_ToBeReset); type=1;} - void select_id_Cause() { set(id_Cause); type=2;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_UEs_ToBeReset)) { type = 1; return true; } - else if(equal(id_Cause)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_UEs_ToBeReset);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_UEs_ToBeReset() { set(reject); type=1;} - void select_id_Cause() { set(ignore); type=2;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UEsToBeResetList& select_id_UEs_ToBeReset() { return set(1); } - UEsToBeResetList const* get_id_UEs_ToBeReset() const { return get(1); } - Cause& select_id_Cause() { return set(2); } - Cause const* get_id_Cause() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_UEs_ToBeReset()); return true; - case 2: v(select_id_Cause()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(UEsToBeResetList)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_UEs_ToBeReset() { set(mandatory); type=1;} - void select_id_Cause() { set(mandatory); type=2;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ENDCPartialResetRequired ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ENDCPartialResetRequired-IEs}}, - ... -} -*/ - -struct ENDCPartialResetRequired : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "ENDCPartialResetRequired";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -ENDCX2RemovalFailure-IEs X2AP-PROTOCOL-IES ::= { - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory} | - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, - ... -} -*/ - -struct ENDCX2RemovalFailure_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_Cause() { set(id_Cause); type=1;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=2;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_Cause)) { type = 1; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_Cause() { set(ignore); type=1;} - void select_id_CriticalityDiagnostics() { set(ignore); type=2;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - Cause& select_id_Cause() { return set(1); } - Cause const* get_id_Cause() const { return get(1); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(2); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_Cause()); return true; - case 2: v(select_id_CriticalityDiagnostics()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(CriticalityDiagnostics)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_Cause() { set(mandatory); type=1;} - void select_id_CriticalityDiagnostics() { set(optional); type=2;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ENDCX2RemovalFailure ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ENDCX2RemovalFailure-IEs}}, - ... -} -*/ - -struct ENDCX2RemovalFailure : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "ENDCX2RemovalFailure";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -En-gNB-ENDCX2RemovalReqIEs X2AP-PROTOCOL-IES ::= { - { ID id-Globalen-gNB-ID CRITICALITY reject TYPE GlobalGNB-ID PRESENCE mandatory}, - ... -} -*/ - -struct En_gNB_ENDCX2RemovalReqIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_Globalen_gNB_ID() { set(id_Globalen_gNB_ID); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_Globalen_gNB_ID)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_Globalen_gNB_ID);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_Globalen_gNB_ID() { set(reject); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - GlobalGNB_ID& select_id_Globalen_gNB_ID() { return set(1); } - GlobalGNB_ID const* get_id_Globalen_gNB_ID() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_Globalen_gNB_ID()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(GlobalGNB_ID)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_Globalen_gNB_ID() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -InitiatingNodeType-EndcX2Removal ::= CHOICE { - init-eNB ProtocolIE-Container {{ENB-ENDCX2RemovalReqIEs}}, - init-en-gNB ProtocolIE-Container {{En-gNB-ENDCX2RemovalReqIEs}}, - ... -} -*/ - -struct InitiatingNodeType_EndcX2Removal : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "InitiatingNodeType-EndcX2Removal";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~InitiatingNodeType_EndcX2Removal() {clear();} - struct init_eNB_t : ProtocolIE_Container - { - static constexpr const char* name() {return "init_eNB_t";} - using parent_t = ProtocolIE_Container; - - }; - struct init_en_gNB_t : ProtocolIE_Container - { - static constexpr const char* name() {return "init_en_gNB_t";} - using parent_t = ProtocolIE_Container; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - init_eNB_t& select_init_eNB() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - init_eNB_t const* get_init_eNB() const { if(get_index() == 1) { return &var.as();} return nullptr; } - init_en_gNB_t& select_init_en_gNB() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - init_en_gNB_t const* get_init_en_gNB() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(init_eNB_t)]; - char dummy2[sizeof(init_en_gNB_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -ENDCX2RemovalRequest-IEs X2AP-PROTOCOL-IES ::= { - { ID id-InitiatingNodeType-EndcX2Removal CRITICALITY reject TYPE InitiatingNodeType-EndcX2Removal PRESENCE mandatory}, - ... -} -*/ - -struct ENDCX2RemovalRequest_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_InitiatingNodeType_EndcX2Removal() { set(id_InitiatingNodeType_EndcX2Removal); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_InitiatingNodeType_EndcX2Removal)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_InitiatingNodeType_EndcX2Removal);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_InitiatingNodeType_EndcX2Removal() { set(reject); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - InitiatingNodeType_EndcX2Removal& select_id_InitiatingNodeType_EndcX2Removal() { return set(1); } - InitiatingNodeType_EndcX2Removal const* get_id_InitiatingNodeType_EndcX2Removal() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_InitiatingNodeType_EndcX2Removal()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(InitiatingNodeType_EndcX2Removal)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_InitiatingNodeType_EndcX2Removal() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ENDCX2RemovalRequest ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ENDCX2RemovalRequest-IEs}}, - ... -} -*/ - -struct ENDCX2RemovalRequest : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "ENDCX2RemovalRequest";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -En-gNB-ENDCX2RemovalReqAckIEs X2AP-PROTOCOL-IES ::= { - { ID id-Globalen-gNB-ID CRITICALITY reject TYPE GlobalGNB-ID PRESENCE mandatory}, - ... -} -*/ - -struct En_gNB_ENDCX2RemovalReqAckIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_Globalen_gNB_ID() { set(id_Globalen_gNB_ID); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_Globalen_gNB_ID)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_Globalen_gNB_ID);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_Globalen_gNB_ID() { set(reject); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - GlobalGNB_ID& select_id_Globalen_gNB_ID() { return set(1); } - GlobalGNB_ID const* get_id_Globalen_gNB_ID() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_Globalen_gNB_ID()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(GlobalGNB_ID)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_Globalen_gNB_ID() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RespondingNodeType-EndcX2Removal ::= CHOICE { - respond-eNB ProtocolIE-Container {{ENB-ENDCX2RemovalReqAckIEs}}, - respond-en-gNB ProtocolIE-Container {{En-gNB-ENDCX2RemovalReqAckIEs}}, - ... -} -*/ - -struct RespondingNodeType_EndcX2Removal : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "RespondingNodeType-EndcX2Removal";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~RespondingNodeType_EndcX2Removal() {clear();} - struct respond_eNB_t : ProtocolIE_Container - { - static constexpr const char* name() {return "respond_eNB_t";} - using parent_t = ProtocolIE_Container; - - }; - struct respond_en_gNB_t : ProtocolIE_Container - { - static constexpr const char* name() {return "respond_en_gNB_t";} - using parent_t = ProtocolIE_Container; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - respond_eNB_t& select_respond_eNB() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - respond_eNB_t const* get_respond_eNB() const { if(get_index() == 1) { return &var.as();} return nullptr; } - respond_en_gNB_t& select_respond_en_gNB() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - respond_en_gNB_t const* get_respond_en_gNB() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(respond_eNB_t)]; - char dummy2[sizeof(respond_en_gNB_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -ENDCX2RemovalResponse-IEs X2AP-PROTOCOL-IES ::= { - { ID id-RespondingNodeType-EndcX2Removal CRITICALITY reject TYPE RespondingNodeType-EndcX2Removal PRESENCE mandatory}, - ... -} -*/ - -struct ENDCX2RemovalResponse_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RespondingNodeType_EndcX2Removal() { set(id_RespondingNodeType_EndcX2Removal); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_RespondingNodeType_EndcX2Removal)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_RespondingNodeType_EndcX2Removal);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RespondingNodeType_EndcX2Removal() { set(reject); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - RespondingNodeType_EndcX2Removal& select_id_RespondingNodeType_EndcX2Removal() { return set(1); } - RespondingNodeType_EndcX2Removal const* get_id_RespondingNodeType_EndcX2Removal() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_RespondingNodeType_EndcX2Removal()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(RespondingNodeType_EndcX2Removal)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RespondingNodeType_EndcX2Removal() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ENDCX2RemovalResponse ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ENDCX2RemovalResponse-IEs}}, - ... -} -*/ - -struct ENDCX2RemovalResponse : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "ENDCX2RemovalResponse";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -ENDCX2SetupFailure-IEs X2AP-PROTOCOL-IES ::= { - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory} | - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional } | - { ID id-TimeToWait CRITICALITY ignore TYPE TimeToWait PRESENCE optional }, - ... -} -*/ - -struct ENDCX2SetupFailure_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_Cause() { set(id_Cause); type=1;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=2;} - void select_id_TimeToWait() { set(id_TimeToWait); type=3;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_Cause)) { type = 1; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 2; return true; } - else if(equal(id_TimeToWait)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_TimeToWait);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_Cause() { set(ignore); type=1;} - void select_id_CriticalityDiagnostics() { set(ignore); type=2;} - void select_id_TimeToWait() { set(ignore); type=3;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - Cause& select_id_Cause() { return set(1); } - Cause const* get_id_Cause() const { return get(1); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(2); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(2); } - TimeToWait& select_id_TimeToWait() { return set(3); } - TimeToWait const* get_id_TimeToWait() const { return get(3); } - bool is_unknown() const { return type == 4; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_Cause()); return true; - case 2: v(select_id_CriticalityDiagnostics()); return true; - case 3: v(select_id_TimeToWait()); return true; - case 4: if(type != 4) {clear(); asn::base::set();} type = 4; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(CriticalityDiagnostics)]; - char dummy3[sizeof(TimeToWait)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_Cause() { set(mandatory); type=1;} - void select_id_CriticalityDiagnostics() { set(optional); type=2;} - void select_id_TimeToWait() { set(optional); type=3;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ENDCX2SetupFailure ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ENDCX2SetupFailure-IEs}}, - ... -} -*/ - -struct ENDCX2SetupFailure : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "ENDCX2SetupFailure";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -En-gNB-ENDCX2SetupReqIEs X2AP-PROTOCOL-IES ::= { - { ID id-Globalen-gNB-ID CRITICALITY reject TYPE GlobalGNB-ID PRESENCE mandatory}| - { ID id-ServedNRcellsENDCX2ManagementList CRITICALITY reject TYPE ServedNRcellsENDCX2ManagementList PRESENCE mandatory}, - ... -} -*/ - -struct En_gNB_ENDCX2SetupReqIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_Globalen_gNB_ID() { set(id_Globalen_gNB_ID); type=1;} - void select_id_ServedNRcellsENDCX2ManagementList() { set(id_ServedNRcellsENDCX2ManagementList); type=2;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_Globalen_gNB_ID)) { type = 1; return true; } - else if(equal(id_ServedNRcellsENDCX2ManagementList)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_Globalen_gNB_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_ServedNRcellsENDCX2ManagementList);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_Globalen_gNB_ID() { set(reject); type=1;} - void select_id_ServedNRcellsENDCX2ManagementList() { set(reject); type=2;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - GlobalGNB_ID& select_id_Globalen_gNB_ID() { return set(1); } - GlobalGNB_ID const* get_id_Globalen_gNB_ID() const { return get(1); } - ServedNRcellsENDCX2ManagementList& select_id_ServedNRcellsENDCX2ManagementList() { return set(2); } - ServedNRcellsENDCX2ManagementList const* get_id_ServedNRcellsENDCX2ManagementList() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_Globalen_gNB_ID()); return true; - case 2: v(select_id_ServedNRcellsENDCX2ManagementList()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(GlobalGNB_ID)]; - char dummy2[sizeof(ServedNRcellsENDCX2ManagementList)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_Globalen_gNB_ID() { set(mandatory); type=1;} - void select_id_ServedNRcellsENDCX2ManagementList() { set(mandatory); type=2;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -InitiatingNodeType-EndcX2Setup ::= CHOICE { - init-eNB ProtocolIE-Container {{ENB-ENDCX2SetupReqIEs}}, - init-en-gNB ProtocolIE-Container {{En-gNB-ENDCX2SetupReqIEs}}, - ... -} -*/ - -struct InitiatingNodeType_EndcX2Setup : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "InitiatingNodeType-EndcX2Setup";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~InitiatingNodeType_EndcX2Setup() {clear();} - struct init_eNB_t : ProtocolIE_Container - { - static constexpr const char* name() {return "init_eNB_t";} - using parent_t = ProtocolIE_Container; - - }; - struct init_en_gNB_t : ProtocolIE_Container - { - static constexpr const char* name() {return "init_en_gNB_t";} - using parent_t = ProtocolIE_Container; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - init_eNB_t& select_init_eNB() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - init_eNB_t const* get_init_eNB() const { if(get_index() == 1) { return &var.as();} return nullptr; } - init_en_gNB_t& select_init_en_gNB() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - init_en_gNB_t const* get_init_en_gNB() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(init_eNB_t)]; - char dummy2[sizeof(init_en_gNB_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -ENDCX2SetupRequest-IEs X2AP-PROTOCOL-IES ::= { - { ID id-InitiatingNodeType-EndcX2Setup CRITICALITY reject TYPE InitiatingNodeType-EndcX2Setup PRESENCE mandatory}, - ... -} -*/ - -struct ENDCX2SetupRequest_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_InitiatingNodeType_EndcX2Setup() { set(id_InitiatingNodeType_EndcX2Setup); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_InitiatingNodeType_EndcX2Setup)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_InitiatingNodeType_EndcX2Setup);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_InitiatingNodeType_EndcX2Setup() { set(reject); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - InitiatingNodeType_EndcX2Setup& select_id_InitiatingNodeType_EndcX2Setup() { return set(1); } - InitiatingNodeType_EndcX2Setup const* get_id_InitiatingNodeType_EndcX2Setup() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_InitiatingNodeType_EndcX2Setup()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(InitiatingNodeType_EndcX2Setup)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_InitiatingNodeType_EndcX2Setup() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ENDCX2SetupRequest ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ENDCX2SetupRequest-IEs}}, - ... -} -*/ - -struct ENDCX2SetupRequest : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "ENDCX2SetupRequest";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -En-gNB-ENDCX2SetupReqAckIEs X2AP-PROTOCOL-IES ::= { - { ID id-Globalen-gNB-ID CRITICALITY reject TYPE GlobalGNB-ID PRESENCE mandatory}| - { ID id-ServedNRcellsENDCX2ManagementList CRITICALITY reject TYPE ServedNRcellsENDCX2ManagementList PRESENCE mandatory}, - ... -} -*/ - -struct En_gNB_ENDCX2SetupReqAckIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_Globalen_gNB_ID() { set(id_Globalen_gNB_ID); type=1;} - void select_id_ServedNRcellsENDCX2ManagementList() { set(id_ServedNRcellsENDCX2ManagementList); type=2;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_Globalen_gNB_ID)) { type = 1; return true; } - else if(equal(id_ServedNRcellsENDCX2ManagementList)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_Globalen_gNB_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_ServedNRcellsENDCX2ManagementList);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_Globalen_gNB_ID() { set(reject); type=1;} - void select_id_ServedNRcellsENDCX2ManagementList() { set(reject); type=2;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - GlobalGNB_ID& select_id_Globalen_gNB_ID() { return set(1); } - GlobalGNB_ID const* get_id_Globalen_gNB_ID() const { return get(1); } - ServedNRcellsENDCX2ManagementList& select_id_ServedNRcellsENDCX2ManagementList() { return set(2); } - ServedNRcellsENDCX2ManagementList const* get_id_ServedNRcellsENDCX2ManagementList() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_Globalen_gNB_ID()); return true; - case 2: v(select_id_ServedNRcellsENDCX2ManagementList()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(GlobalGNB_ID)]; - char dummy2[sizeof(ServedNRcellsENDCX2ManagementList)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_Globalen_gNB_ID() { set(mandatory); type=1;} - void select_id_ServedNRcellsENDCX2ManagementList() { set(mandatory); type=2;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RespondingNodeType-EndcX2Setup ::= CHOICE { - respond-eNB ProtocolIE-Container {{ENB-ENDCX2SetupReqAckIEs}}, - respond-en-gNB ProtocolIE-Container {{En-gNB-ENDCX2SetupReqAckIEs}}, - ... -} -*/ - -struct RespondingNodeType_EndcX2Setup : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "RespondingNodeType-EndcX2Setup";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~RespondingNodeType_EndcX2Setup() {clear();} - struct respond_eNB_t : ProtocolIE_Container - { - static constexpr const char* name() {return "respond_eNB_t";} - using parent_t = ProtocolIE_Container; - - }; - struct respond_en_gNB_t : ProtocolIE_Container - { - static constexpr const char* name() {return "respond_en_gNB_t";} - using parent_t = ProtocolIE_Container; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - respond_eNB_t& select_respond_eNB() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - respond_eNB_t const* get_respond_eNB() const { if(get_index() == 1) { return &var.as();} return nullptr; } - respond_en_gNB_t& select_respond_en_gNB() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - respond_en_gNB_t const* get_respond_en_gNB() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(respond_eNB_t)]; - char dummy2[sizeof(respond_en_gNB_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -ENDCX2SetupResponse-IEs X2AP-PROTOCOL-IES ::= { - { ID id-RespondingNodeType-EndcX2Setup CRITICALITY reject TYPE RespondingNodeType-EndcX2Setup PRESENCE mandatory}, - ... -} -*/ - -struct ENDCX2SetupResponse_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RespondingNodeType_EndcX2Setup() { set(id_RespondingNodeType_EndcX2Setup); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_RespondingNodeType_EndcX2Setup)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_RespondingNodeType_EndcX2Setup);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RespondingNodeType_EndcX2Setup() { set(reject); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - RespondingNodeType_EndcX2Setup& select_id_RespondingNodeType_EndcX2Setup() { return set(1); } - RespondingNodeType_EndcX2Setup const* get_id_RespondingNodeType_EndcX2Setup() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_RespondingNodeType_EndcX2Setup()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(RespondingNodeType_EndcX2Setup)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RespondingNodeType_EndcX2Setup() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ENDCX2SetupResponse ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ENDCX2SetupResponse-IEs}}, - ... -} -*/ - -struct ENDCX2SetupResponse : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "ENDCX2SetupResponse";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -ListofEUTRACellsinNRCoordinationReq ::= SEQUENCE (SIZE (1..maxCellineNB)) OF ECGI -*/ - -struct ListofEUTRACellsinNRCoordinationReq_elm : ECGI -{ - static constexpr const char* name() {return "ListofEUTRACellsinNRCoordinationReq_elm";} - using parent_t = ECGI; - -}; -struct ListofEUTRACellsinNRCoordinationReq : asn::sequenceof -{ - static constexpr const char* name() {return "ListofEUTRACellsinNRCoordinationReq";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -ListofNRCellsinNRCoordinationReq ::= SEQUENCE (SIZE (0..maxnoNRcellsSpectrumSharingWithE-UTRA)) OF NRCGI -*/ - -struct ListofNRCellsinNRCoordinationReq_elm : NRCGI -{ - static constexpr const char* name() {return "ListofNRCellsinNRCoordinationReq_elm";} - using parent_t = NRCGI; - -}; -struct ListofNRCellsinNRCoordinationReq : asn::sequenceof -{ - static constexpr const char* name() {return "ListofNRCellsinNRCoordinationReq";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -En-gNB-EUTRA-NRCellResourceCoordinationReqIEs X2AP-PROTOCOL-IES ::= { - { ID id-DataTrafficResourceIndication CRITICALITY reject TYPE DataTrafficResourceIndication PRESENCE mandatory}| - { ID id-ListofEUTRACellsinNRCoordinationReq CRITICALITY reject TYPE ListofEUTRACellsinNRCoordinationReq PRESENCE mandatory }| - { ID id-SpectrumSharingGroupID CRITICALITY reject TYPE SpectrumSharingGroupID PRESENCE mandatory}| - { ID id-ListofNRCellsinNRCoordinationReq CRITICALITY reject TYPE ListofNRCellsinNRCoordinationReq PRESENCE mandatory}, - ... -} -*/ - -struct En_gNB_EUTRA_NRCellResourceCoordinationReqIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_DataTrafficResourceIndication() { set(id_DataTrafficResourceIndication); type=1;} - void select_id_ListofEUTRACellsinNRCoordinationReq() { set(id_ListofEUTRACellsinNRCoordinationReq); type=2;} - void select_id_SpectrumSharingGroupID() { set(id_SpectrumSharingGroupID); type=3;} - void select_id_ListofNRCellsinNRCoordinationReq() { set(id_ListofNRCellsinNRCoordinationReq); type=4;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_DataTrafficResourceIndication)) { type = 1; return true; } - else if(equal(id_ListofEUTRACellsinNRCoordinationReq)) { type = 2; return true; } - else if(equal(id_SpectrumSharingGroupID)) { type = 3; return true; } - else if(equal(id_ListofNRCellsinNRCoordinationReq)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_DataTrafficResourceIndication);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_ListofEUTRACellsinNRCoordinationReq);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_SpectrumSharingGroupID);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_ListofNRCellsinNRCoordinationReq);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_DataTrafficResourceIndication() { set(reject); type=1;} - void select_id_ListofEUTRACellsinNRCoordinationReq() { set(reject); type=2;} - void select_id_SpectrumSharingGroupID() { set(reject); type=3;} - void select_id_ListofNRCellsinNRCoordinationReq() { set(reject); type=4;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(reject)) { type = 3; return true; } - else if(equal(reject)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(reject);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(reject);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - DataTrafficResourceIndication& select_id_DataTrafficResourceIndication() { return set(1); } - DataTrafficResourceIndication const* get_id_DataTrafficResourceIndication() const { return get(1); } - ListofEUTRACellsinNRCoordinationReq& select_id_ListofEUTRACellsinNRCoordinationReq() { return set(2); } - ListofEUTRACellsinNRCoordinationReq const* get_id_ListofEUTRACellsinNRCoordinationReq() const { return get(2); } - SpectrumSharingGroupID& select_id_SpectrumSharingGroupID() { return set(3); } - SpectrumSharingGroupID const* get_id_SpectrumSharingGroupID() const { return get(3); } - ListofNRCellsinNRCoordinationReq& select_id_ListofNRCellsinNRCoordinationReq() { return set(4); } - ListofNRCellsinNRCoordinationReq const* get_id_ListofNRCellsinNRCoordinationReq() const { return get(4); } - bool is_unknown() const { return type == 5; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_DataTrafficResourceIndication()); return true; - case 2: v(select_id_ListofEUTRACellsinNRCoordinationReq()); return true; - case 3: v(select_id_SpectrumSharingGroupID()); return true; - case 4: v(select_id_ListofNRCellsinNRCoordinationReq()); return true; - case 5: if(type != 5) {clear(); asn::base::set();} type = 5; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(DataTrafficResourceIndication)]; - char dummy2[sizeof(ListofEUTRACellsinNRCoordinationReq)]; - char dummy3[sizeof(ListofNRCellsinNRCoordinationReq)]; - char dummy4[sizeof(SpectrumSharingGroupID)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_DataTrafficResourceIndication() { set(mandatory); type=1;} - void select_id_ListofEUTRACellsinNRCoordinationReq() { set(mandatory); type=2;} - void select_id_SpectrumSharingGroupID() { set(mandatory); type=3;} - void select_id_ListofNRCellsinNRCoordinationReq() { set(mandatory); type=4;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(mandatory)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(mandatory);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -InitiatingNodeType-EutranrCellResourceCoordination ::= CHOICE { - initiate-eNB ProtocolIE-Container {{ENB-EUTRA-NRCellResourceCoordinationReqIEs}}, - initiate-en-gNB ProtocolIE-Container {{En-gNB-EUTRA-NRCellResourceCoordinationReqIEs}}, - ... -} -*/ - -struct InitiatingNodeType_EutranrCellResourceCoordination : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "InitiatingNodeType-EutranrCellResourceCoordination";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~InitiatingNodeType_EutranrCellResourceCoordination() {clear();} - struct initiate_eNB_t : ProtocolIE_Container - { - static constexpr const char* name() {return "initiate_eNB_t";} - using parent_t = ProtocolIE_Container; - - }; - struct initiate_en_gNB_t : ProtocolIE_Container - { - static constexpr const char* name() {return "initiate_en_gNB_t";} - using parent_t = ProtocolIE_Container; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - initiate_eNB_t& select_initiate_eNB() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - initiate_eNB_t const* get_initiate_eNB() const { if(get_index() == 1) { return &var.as();} return nullptr; } - initiate_en_gNB_t& select_initiate_en_gNB() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - initiate_en_gNB_t const* get_initiate_en_gNB() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(initiate_eNB_t)]; - char dummy2[sizeof(initiate_en_gNB_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -EUTRANRCellResourceCoordinationRequest-IEs X2AP-PROTOCOL-IES ::= { - { ID id-InitiatingNodeType-EutranrCellResourceCoordination CRITICALITY reject TYPE InitiatingNodeType-EutranrCellResourceCoordination PRESENCE mandatory}, - ... -} -*/ - -struct EUTRANRCellResourceCoordinationRequest_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_InitiatingNodeType_EutranrCellResourceCoordination() { set(id_InitiatingNodeType_EutranrCellResourceCoordination); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_InitiatingNodeType_EutranrCellResourceCoordination)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_InitiatingNodeType_EutranrCellResourceCoordination);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_InitiatingNodeType_EutranrCellResourceCoordination() { set(reject); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - InitiatingNodeType_EutranrCellResourceCoordination& select_id_InitiatingNodeType_EutranrCellResourceCoordination() { return set(1); } - InitiatingNodeType_EutranrCellResourceCoordination const* get_id_InitiatingNodeType_EutranrCellResourceCoordination() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_InitiatingNodeType_EutranrCellResourceCoordination()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(InitiatingNodeType_EutranrCellResourceCoordination)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_InitiatingNodeType_EutranrCellResourceCoordination() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -EUTRANRCellResourceCoordinationRequest ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{EUTRANRCellResourceCoordinationRequest-IEs}}, - ... -} -*/ - -struct EUTRANRCellResourceCoordinationRequest : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "EUTRANRCellResourceCoordinationRequest";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -ListofNRCellsinNRCoordinationResp ::= SEQUENCE (SIZE (0..maxnoNRcellsSpectrumSharingWithE-UTRA)) OF NRCGI -*/ - -struct ListofNRCellsinNRCoordinationResp_elm : NRCGI -{ - static constexpr const char* name() {return "ListofNRCellsinNRCoordinationResp_elm";} - using parent_t = NRCGI; - -}; -struct ListofNRCellsinNRCoordinationResp : asn::sequenceof -{ - static constexpr const char* name() {return "ListofNRCellsinNRCoordinationResp";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -En-gNB-EUTRA-NRCellResourceCoordinationReqAckIEs X2AP-PROTOCOL-IES ::= { - { ID id-DataTrafficResourceIndication CRITICALITY reject TYPE DataTrafficResourceIndication PRESENCE mandatory}| - { ID id-SpectrumSharingGroupID CRITICALITY reject TYPE SpectrumSharingGroupID PRESENCE mandatory}| - { ID id-ListofNRCellsinNRCoordinationResp CRITICALITY reject TYPE ListofNRCellsinNRCoordinationResp PRESENCE mandatory}, - - - ... -} -*/ - -struct En_gNB_EUTRA_NRCellResourceCoordinationReqAckIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_DataTrafficResourceIndication() { set(id_DataTrafficResourceIndication); type=1;} - void select_id_SpectrumSharingGroupID() { set(id_SpectrumSharingGroupID); type=2;} - void select_id_ListofNRCellsinNRCoordinationResp() { set(id_ListofNRCellsinNRCoordinationResp); type=3;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_DataTrafficResourceIndication)) { type = 1; return true; } - else if(equal(id_SpectrumSharingGroupID)) { type = 2; return true; } - else if(equal(id_ListofNRCellsinNRCoordinationResp)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_DataTrafficResourceIndication);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SpectrumSharingGroupID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_ListofNRCellsinNRCoordinationResp);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_DataTrafficResourceIndication() { set(reject); type=1;} - void select_id_SpectrumSharingGroupID() { set(reject); type=2;} - void select_id_ListofNRCellsinNRCoordinationResp() { set(reject); type=3;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(reject)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(reject);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - DataTrafficResourceIndication& select_id_DataTrafficResourceIndication() { return set(1); } - DataTrafficResourceIndication const* get_id_DataTrafficResourceIndication() const { return get(1); } - SpectrumSharingGroupID& select_id_SpectrumSharingGroupID() { return set(2); } - SpectrumSharingGroupID const* get_id_SpectrumSharingGroupID() const { return get(2); } - ListofNRCellsinNRCoordinationResp& select_id_ListofNRCellsinNRCoordinationResp() { return set(3); } - ListofNRCellsinNRCoordinationResp const* get_id_ListofNRCellsinNRCoordinationResp() const { return get(3); } - bool is_unknown() const { return type == 4; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_DataTrafficResourceIndication()); return true; - case 2: v(select_id_SpectrumSharingGroupID()); return true; - case 3: v(select_id_ListofNRCellsinNRCoordinationResp()); return true; - case 4: if(type != 4) {clear(); asn::base::set();} type = 4; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(DataTrafficResourceIndication)]; - char dummy2[sizeof(ListofNRCellsinNRCoordinationResp)]; - char dummy3[sizeof(SpectrumSharingGroupID)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_DataTrafficResourceIndication() { set(mandatory); type=1;} - void select_id_SpectrumSharingGroupID() { set(mandatory); type=2;} - void select_id_ListofNRCellsinNRCoordinationResp() { set(mandatory); type=3;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RespondingNodeType-EutranrCellResourceCoordination ::= CHOICE { - respond-eNB ProtocolIE-Container {{ENB-EUTRA-NRCellResourceCoordinationReqAckIEs}}, - respond-en-gNB ProtocolIE-Container {{En-gNB-EUTRA-NRCellResourceCoordinationReqAckIEs}}, - ... -} -*/ - -struct RespondingNodeType_EutranrCellResourceCoordination : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "RespondingNodeType-EutranrCellResourceCoordination";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~RespondingNodeType_EutranrCellResourceCoordination() {clear();} - struct respond_eNB_t : ProtocolIE_Container - { - static constexpr const char* name() {return "respond_eNB_t";} - using parent_t = ProtocolIE_Container; - - }; - struct respond_en_gNB_t : ProtocolIE_Container - { - static constexpr const char* name() {return "respond_en_gNB_t";} - using parent_t = ProtocolIE_Container; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - respond_eNB_t& select_respond_eNB() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - respond_eNB_t const* get_respond_eNB() const { if(get_index() == 1) { return &var.as();} return nullptr; } - respond_en_gNB_t& select_respond_en_gNB() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - respond_en_gNB_t const* get_respond_en_gNB() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(respond_eNB_t)]; - char dummy2[sizeof(respond_en_gNB_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -EUTRANRCellResourceCoordinationResponse-IEs X2AP-PROTOCOL-IES ::= { - { ID id-RespondingNodeType-EutranrCellResourceCoordination CRITICALITY reject TYPE RespondingNodeType-EutranrCellResourceCoordination PRESENCE mandatory}, - ... -} -*/ - -struct EUTRANRCellResourceCoordinationResponse_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RespondingNodeType_EutranrCellResourceCoordination() { set(id_RespondingNodeType_EutranrCellResourceCoordination); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_RespondingNodeType_EutranrCellResourceCoordination)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_RespondingNodeType_EutranrCellResourceCoordination);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RespondingNodeType_EutranrCellResourceCoordination() { set(reject); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - RespondingNodeType_EutranrCellResourceCoordination& select_id_RespondingNodeType_EutranrCellResourceCoordination() { return set(1); } - RespondingNodeType_EutranrCellResourceCoordination const* get_id_RespondingNodeType_EutranrCellResourceCoordination() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_RespondingNodeType_EutranrCellResourceCoordination()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(RespondingNodeType_EutranrCellResourceCoordination)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_RespondingNodeType_EutranrCellResourceCoordination() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -EUTRANRCellResourceCoordinationResponse ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{EUTRANRCellResourceCoordinationResponse-IEs}}, - ... -} -*/ - -struct EUTRANRCellResourceCoordinationResponse : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "EUTRANRCellResourceCoordinationResponse";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -ErrorIndication-IEs X2AP-PROTOCOL-IES ::= { - { ID id-Old-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE optional}| - { ID id-New-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE optional}| - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE optional}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| - { ID id-Old-eNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-New-eNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-Old-SgNB-UE-X2AP-ID CRITICALITY ignore TYPE SgNB-UE-X2AP-ID PRESENCE optional}, - ... -} -*/ - -struct ErrorIndication_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 8; } - void clear() {type = 0;} - void select_id_Old_eNB_UE_X2AP_ID() { set(id_Old_eNB_UE_X2AP_ID); type=1;} - void select_id_New_eNB_UE_X2AP_ID() { set(id_New_eNB_UE_X2AP_ID); type=2;} - void select_id_Cause() { set(id_Cause); type=3;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=4;} - void select_id_Old_eNB_UE_X2AP_ID_Extension() { set(id_Old_eNB_UE_X2AP_ID_Extension); type=5;} - void select_id_New_eNB_UE_X2AP_ID_Extension() { set(id_New_eNB_UE_X2AP_ID_Extension); type=6;} - void select_id_Old_SgNB_UE_X2AP_ID() { set(id_Old_SgNB_UE_X2AP_ID); type=7;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_Old_eNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_New_eNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_Cause)) { type = 3; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 4; return true; } - else if(equal(id_Old_eNB_UE_X2AP_ID_Extension)) { type = 5; return true; } - else if(equal(id_New_eNB_UE_X2AP_ID_Extension)) { type = 6; return true; } - else if(equal(id_Old_SgNB_UE_X2AP_ID)) { type = 7; return true; } - else { type = 8; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_Old_eNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_New_eNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_Old_eNB_UE_X2AP_ID_Extension);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_New_eNB_UE_X2AP_ID_Extension);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(id_Old_SgNB_UE_X2AP_ID);} return false; - case 8: type = 8; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 8; } - void clear() {type = 0;} - void select_id_Old_eNB_UE_X2AP_ID() { set(ignore); type=1;} - void select_id_New_eNB_UE_X2AP_ID() { set(ignore); type=2;} - void select_id_Cause() { set(ignore); type=3;} - void select_id_CriticalityDiagnostics() { set(ignore); type=4;} - void select_id_Old_eNB_UE_X2AP_ID_Extension() { set(ignore); type=5;} - void select_id_New_eNB_UE_X2AP_ID_Extension() { set(ignore); type=6;} - void select_id_Old_SgNB_UE_X2AP_ID() { set(ignore); type=7;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else if(equal(ignore)) { type = 6; return true; } - else if(equal(ignore)) { type = 7; return true; } - else { type = 8; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(ignore);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(ignore);} return false; - case 8: type = 8; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_Old_eNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_Old_eNB_UE_X2AP_ID() const { return get(1); } - UE_X2AP_ID& select_id_New_eNB_UE_X2AP_ID() { return set(2); } - UE_X2AP_ID const* get_id_New_eNB_UE_X2AP_ID() const { return get(2); } - Cause& select_id_Cause() { return set(3); } - Cause const* get_id_Cause() const { return get(3); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(4); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(4); } - UE_X2AP_ID_Extension& select_id_Old_eNB_UE_X2AP_ID_Extension() { return set(5); } - UE_X2AP_ID_Extension const* get_id_Old_eNB_UE_X2AP_ID_Extension() const { return get(5); } - UE_X2AP_ID_Extension& select_id_New_eNB_UE_X2AP_ID_Extension() { return set(6); } - UE_X2AP_ID_Extension const* get_id_New_eNB_UE_X2AP_ID_Extension() const { return get(6); } - SgNB_UE_X2AP_ID& select_id_Old_SgNB_UE_X2AP_ID() { return set(7); } - SgNB_UE_X2AP_ID const* get_id_Old_SgNB_UE_X2AP_ID() const { return get(7); } - bool is_unknown() const { return type == 8; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - case 7: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - v.template operator()(7); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_Old_eNB_UE_X2AP_ID()); return true; - case 2: v(select_id_New_eNB_UE_X2AP_ID()); return true; - case 3: v(select_id_Cause()); return true; - case 4: v(select_id_CriticalityDiagnostics()); return true; - case 5: v(select_id_Old_eNB_UE_X2AP_ID_Extension()); return true; - case 6: v(select_id_New_eNB_UE_X2AP_ID_Extension()); return true; - case 7: v(select_id_Old_SgNB_UE_X2AP_ID()); return true; - case 8: if(type != 8) {clear(); asn::base::set();} type = 8; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - case 7: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(CriticalityDiagnostics)]; - char dummy3[sizeof(SgNB_UE_X2AP_ID)]; - char dummy4[sizeof(UE_X2AP_ID)]; - char dummy5[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 8; } - void clear() {type = 0;} - void select_id_Old_eNB_UE_X2AP_ID() { set(optional); type=1;} - void select_id_New_eNB_UE_X2AP_ID() { set(optional); type=2;} - void select_id_Cause() { set(optional); type=3;} - void select_id_CriticalityDiagnostics() { set(optional); type=4;} - void select_id_Old_eNB_UE_X2AP_ID_Extension() { set(optional); type=5;} - void select_id_New_eNB_UE_X2AP_ID_Extension() { set(optional); type=6;} - void select_id_Old_SgNB_UE_X2AP_ID() { set(optional); type=7;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else if(equal(optional)) { type = 7; return true; } - else { type = 8; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(optional);} return false; - case 8: type = 8; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ErrorIndication ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ErrorIndication-IEs}}, - ... -} -*/ - -struct ErrorIndication : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "ErrorIndication";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -GNBStatusIndicationIEs X2AP-PROTOCOL-IES ::= { - { ID id-GNBOverloadInformation CRITICALITY ignore TYPE GNBOverloadInformation PRESENCE mandatory}, - ... -} -*/ - -struct GNBStatusIndicationIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_GNBOverloadInformation() { set(id_GNBOverloadInformation); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_GNBOverloadInformation)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_GNBOverloadInformation);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_GNBOverloadInformation() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - GNBOverloadInformation& select_id_GNBOverloadInformation() { return set(1); } - GNBOverloadInformation const* get_id_GNBOverloadInformation() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_GNBOverloadInformation()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(GNBOverloadInformation)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_GNBOverloadInformation() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -GNBStatusIndication ::= SEQUENCE { - protocolIEs ProtocolIE-Container { { GNBStatusIndicationIEs} }, - ... -} -*/ - -struct GNBStatusIndication : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "GNBStatusIndication";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -HandoverCancel-IEs X2AP-PROTOCOL-IES ::= { - { ID id-Old-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-New-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE optional}| - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| - { ID id-Old-eNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-New-eNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}, - ... -} -*/ - -struct HandoverCancel_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_Old_eNB_UE_X2AP_ID() { set(id_Old_eNB_UE_X2AP_ID); type=1;} - void select_id_New_eNB_UE_X2AP_ID() { set(id_New_eNB_UE_X2AP_ID); type=2;} - void select_id_Cause() { set(id_Cause); type=3;} - void select_id_Old_eNB_UE_X2AP_ID_Extension() { set(id_Old_eNB_UE_X2AP_ID_Extension); type=4;} - void select_id_New_eNB_UE_X2AP_ID_Extension() { set(id_New_eNB_UE_X2AP_ID_Extension); type=5;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_Old_eNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_New_eNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_Cause)) { type = 3; return true; } - else if(equal(id_Old_eNB_UE_X2AP_ID_Extension)) { type = 4; return true; } - else if(equal(id_New_eNB_UE_X2AP_ID_Extension)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_Old_eNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_New_eNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_Old_eNB_UE_X2AP_ID_Extension);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_New_eNB_UE_X2AP_ID_Extension);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_Old_eNB_UE_X2AP_ID() { set(reject); type=1;} - void select_id_New_eNB_UE_X2AP_ID() { set(ignore); type=2;} - void select_id_Cause() { set(ignore); type=3;} - void select_id_Old_eNB_UE_X2AP_ID_Extension() { set(reject); type=4;} - void select_id_New_eNB_UE_X2AP_ID_Extension() { set(ignore); type=5;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(reject)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(reject);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_Old_eNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_Old_eNB_UE_X2AP_ID() const { return get(1); } - UE_X2AP_ID& select_id_New_eNB_UE_X2AP_ID() { return set(2); } - UE_X2AP_ID const* get_id_New_eNB_UE_X2AP_ID() const { return get(2); } - Cause& select_id_Cause() { return set(3); } - Cause const* get_id_Cause() const { return get(3); } - UE_X2AP_ID_Extension& select_id_Old_eNB_UE_X2AP_ID_Extension() { return set(4); } - UE_X2AP_ID_Extension const* get_id_Old_eNB_UE_X2AP_ID_Extension() const { return get(4); } - UE_X2AP_ID_Extension& select_id_New_eNB_UE_X2AP_ID_Extension() { return set(5); } - UE_X2AP_ID_Extension const* get_id_New_eNB_UE_X2AP_ID_Extension() const { return get(5); } - bool is_unknown() const { return type == 6; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_Old_eNB_UE_X2AP_ID()); return true; - case 2: v(select_id_New_eNB_UE_X2AP_ID()); return true; - case 3: v(select_id_Cause()); return true; - case 4: v(select_id_Old_eNB_UE_X2AP_ID_Extension()); return true; - case 5: v(select_id_New_eNB_UE_X2AP_ID_Extension()); return true; - case 6: if(type != 6) {clear(); asn::base::set();} type = 6; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(UE_X2AP_ID)]; - char dummy3[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_Old_eNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_New_eNB_UE_X2AP_ID() { set(optional); type=2;} - void select_id_Cause() { set(mandatory); type=3;} - void select_id_Old_eNB_UE_X2AP_ID_Extension() { set(optional); type=4;} - void select_id_New_eNB_UE_X2AP_ID_Extension() { set(optional); type=5;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -HandoverCancel ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{HandoverCancel-IEs}}, - ... -} -*/ - -struct HandoverCancel : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "HandoverCancel";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -HandoverPreparationFailure-IEs X2AP-PROTOCOL-IES ::= { - { ID id-Old-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| - { ID id-Old-eNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}, - - ... -} -*/ - -struct HandoverPreparationFailure_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_Old_eNB_UE_X2AP_ID() { set(id_Old_eNB_UE_X2AP_ID); type=1;} - void select_id_Cause() { set(id_Cause); type=2;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=3;} - void select_id_Old_eNB_UE_X2AP_ID_Extension() { set(id_Old_eNB_UE_X2AP_ID_Extension); type=4;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_Old_eNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_Cause)) { type = 2; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 3; return true; } - else if(equal(id_Old_eNB_UE_X2AP_ID_Extension)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_Old_eNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_Old_eNB_UE_X2AP_ID_Extension);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_Old_eNB_UE_X2AP_ID() { set(ignore); type=1;} - void select_id_Cause() { set(ignore); type=2;} - void select_id_CriticalityDiagnostics() { set(ignore); type=3;} - void select_id_Old_eNB_UE_X2AP_ID_Extension() { set(ignore); type=4;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_Old_eNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_Old_eNB_UE_X2AP_ID() const { return get(1); } - Cause& select_id_Cause() { return set(2); } - Cause const* get_id_Cause() const { return get(2); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(3); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(3); } - UE_X2AP_ID_Extension& select_id_Old_eNB_UE_X2AP_ID_Extension() { return set(4); } - UE_X2AP_ID_Extension const* get_id_Old_eNB_UE_X2AP_ID_Extension() const { return get(4); } - bool is_unknown() const { return type == 5; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_Old_eNB_UE_X2AP_ID()); return true; - case 2: v(select_id_Cause()); return true; - case 3: v(select_id_CriticalityDiagnostics()); return true; - case 4: v(select_id_Old_eNB_UE_X2AP_ID_Extension()); return true; - case 5: if(type != 5) {clear(); asn::base::set();} type = 5; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(CriticalityDiagnostics)]; - char dummy3[sizeof(UE_X2AP_ID)]; - char dummy4[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_Old_eNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_Cause() { set(mandatory); type=2;} - void select_id_CriticalityDiagnostics() { set(optional); type=3;} - void select_id_Old_eNB_UE_X2AP_ID_Extension() { set(optional); type=4;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -HandoverPreparationFailure ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{HandoverPreparationFailure-IEs}}, - ... -} -*/ - -struct HandoverPreparationFailure : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "HandoverPreparationFailure";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -MobilityInformation ::= BIT STRING (SIZE(32)) -*/ - -struct MobilityInformation : asn::bstring<> -{ - using constraint_t = asn::constraints>; - static constexpr const char* name() {return "MobilityInformation";} - using parent_t = asn::bstring<>; - -}; - -/* -HandoverReport-IEs X2AP-PROTOCOL-IES ::= { - { ID id-HandoverReportType CRITICALITY ignore TYPE HandoverReportType PRESENCE mandatory}| - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| - { ID id-SourceCellECGI CRITICALITY ignore TYPE ECGI PRESENCE mandatory}| - { ID id-FailureCellECGI CRITICALITY ignore TYPE ECGI PRESENCE mandatory}| - { ID id-Re-establishmentCellECGI CRITICALITY ignore TYPE ECGI PRESENCE conditional} -- The IE shall be present if the Handover Report Type IE is set to “HO to Wrong Cell” -- | - { ID id-TargetCellInUTRAN CRITICALITY ignore TYPE TargetCellInUTRAN PRESENCE conditional} -- The IE shall be present if the Handover Report Type IE is set to "InterRAT ping-pong" --| - { ID id-SourceCellCRNTI CRITICALITY ignore TYPE CRNTI PRESENCE optional}| - { ID id-MobilityInformation CRITICALITY ignore TYPE MobilityInformation PRESENCE optional}| - { ID id-UE-RLF-Report-Container CRITICALITY ignore TYPE UE-RLF-Report-Container PRESENCE optional}| - { ID id-UE-RLF-Report-Container-for-extended-bands CRITICALITY ignore TYPE UE-RLF-Report-Container-for-extended-bands PRESENCE optional}, - ... -} -*/ - -struct HandoverReport_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 11; } - void clear() {type = 0;} - void select_id_HandoverReportType() { set(id_HandoverReportType); type=1;} - void select_id_Cause() { set(id_Cause); type=2;} - void select_id_SourceCellECGI() { set(id_SourceCellECGI); type=3;} - void select_id_FailureCellECGI() { set(id_FailureCellECGI); type=4;} - void select_id_Re_establishmentCellECGI() { set(id_Re_establishmentCellECGI); type=5;} - void select_id_TargetCellInUTRAN() { set(id_TargetCellInUTRAN); type=6;} - void select_id_SourceCellCRNTI() { set(id_SourceCellCRNTI); type=7;} - void select_id_MobilityInformation() { set(id_MobilityInformation); type=8;} - void select_id_UE_RLF_Report_Container() { set(id_UE_RLF_Report_Container); type=9;} - void select_id_UE_RLF_Report_Container_for_extended_bands() { set(id_UE_RLF_Report_Container_for_extended_bands); type=10;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_HandoverReportType)) { type = 1; return true; } - else if(equal(id_Cause)) { type = 2; return true; } - else if(equal(id_SourceCellECGI)) { type = 3; return true; } - else if(equal(id_FailureCellECGI)) { type = 4; return true; } - else if(equal(id_Re_establishmentCellECGI)) { type = 5; return true; } - else if(equal(id_TargetCellInUTRAN)) { type = 6; return true; } - else if(equal(id_SourceCellCRNTI)) { type = 7; return true; } - else if(equal(id_MobilityInformation)) { type = 8; return true; } - else if(equal(id_UE_RLF_Report_Container)) { type = 9; return true; } - else if(equal(id_UE_RLF_Report_Container_for_extended_bands)) { type = 10; return true; } - else { type = 11; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_HandoverReportType);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_SourceCellECGI);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_FailureCellECGI);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_Re_establishmentCellECGI);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_TargetCellInUTRAN);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(id_SourceCellCRNTI);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(id_MobilityInformation);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(id_UE_RLF_Report_Container);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(id_UE_RLF_Report_Container_for_extended_bands);} return false; - case 11: type = 11; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 11; } - void clear() {type = 0;} - void select_id_HandoverReportType() { set(ignore); type=1;} - void select_id_Cause() { set(ignore); type=2;} - void select_id_SourceCellECGI() { set(ignore); type=3;} - void select_id_FailureCellECGI() { set(ignore); type=4;} - void select_id_Re_establishmentCellECGI() { set(ignore); type=5;} - void select_id_TargetCellInUTRAN() { set(ignore); type=6;} - void select_id_SourceCellCRNTI() { set(ignore); type=7;} - void select_id_MobilityInformation() { set(ignore); type=8;} - void select_id_UE_RLF_Report_Container() { set(ignore); type=9;} - void select_id_UE_RLF_Report_Container_for_extended_bands() { set(ignore); type=10;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else if(equal(ignore)) { type = 6; return true; } - else if(equal(ignore)) { type = 7; return true; } - else if(equal(ignore)) { type = 8; return true; } - else if(equal(ignore)) { type = 9; return true; } - else if(equal(ignore)) { type = 10; return true; } - else { type = 11; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(ignore);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(ignore);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(ignore);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(ignore);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(ignore);} return false; - case 11: type = 11; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - HandoverReportType& select_id_HandoverReportType() { return set(1); } - HandoverReportType const* get_id_HandoverReportType() const { return get(1); } - Cause& select_id_Cause() { return set(2); } - Cause const* get_id_Cause() const { return get(2); } - ECGI& select_id_SourceCellECGI() { return set(3); } - ECGI const* get_id_SourceCellECGI() const { return get(3); } - ECGI& select_id_FailureCellECGI() { return set(4); } - ECGI const* get_id_FailureCellECGI() const { return get(4); } - ECGI& select_id_Re_establishmentCellECGI() { return set(5); } - ECGI const* get_id_Re_establishmentCellECGI() const { return get(5); } - TargetCellInUTRAN& select_id_TargetCellInUTRAN() { return set(6); } - TargetCellInUTRAN const* get_id_TargetCellInUTRAN() const { return get(6); } - CRNTI& select_id_SourceCellCRNTI() { return set(7); } - CRNTI const* get_id_SourceCellCRNTI() const { return get(7); } - MobilityInformation& select_id_MobilityInformation() { return set(8); } - MobilityInformation const* get_id_MobilityInformation() const { return get(8); } - UE_RLF_Report_Container& select_id_UE_RLF_Report_Container() { return set(9); } - UE_RLF_Report_Container const* get_id_UE_RLF_Report_Container() const { return get(9); } - UE_RLF_Report_Container_for_extended_bands& select_id_UE_RLF_Report_Container_for_extended_bands() { return set(10); } - UE_RLF_Report_Container_for_extended_bands const* get_id_UE_RLF_Report_Container_for_extended_bands() const { return get(10); } - bool is_unknown() const { return type == 11; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - case 7: var.destroy(); break; - case 8: var.destroy(); break; - case 9: var.destroy(); break; - case 10: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - v.template operator()(7); - v.template operator()(8); - v.template operator()(9); - v.template operator()(10); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_HandoverReportType()); return true; - case 2: v(select_id_Cause()); return true; - case 3: v(select_id_SourceCellECGI()); return true; - case 4: v(select_id_FailureCellECGI()); return true; - case 5: v(select_id_Re_establishmentCellECGI()); return true; - case 6: v(select_id_TargetCellInUTRAN()); return true; - case 7: v(select_id_SourceCellCRNTI()); return true; - case 8: v(select_id_MobilityInformation()); return true; - case 9: v(select_id_UE_RLF_Report_Container()); return true; - case 10: v(select_id_UE_RLF_Report_Container_for_extended_bands()); return true; - case 11: if(type != 11) {clear(); asn::base::set();} type = 11; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - case 7: v(var.as()); return true; - case 8: v(var.as()); return true; - case 9: v(var.as()); return true; - case 10: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CRNTI)]; - char dummy2[sizeof(Cause)]; - char dummy3[sizeof(ECGI)]; - char dummy4[sizeof(HandoverReportType)]; - char dummy5[sizeof(MobilityInformation)]; - char dummy6[sizeof(TargetCellInUTRAN)]; - char dummy7[sizeof(UE_RLF_Report_Container)]; - char dummy8[sizeof(UE_RLF_Report_Container_for_extended_bands)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 11; } - void clear() {type = 0;} - void select_id_HandoverReportType() { set(mandatory); type=1;} - void select_id_Cause() { set(mandatory); type=2;} - void select_id_SourceCellECGI() { set(mandatory); type=3;} - void select_id_FailureCellECGI() { set(mandatory); type=4;} - void select_id_Re_establishmentCellECGI() { set(conditional); type=5;} - void select_id_TargetCellInUTRAN() { set(conditional); type=6;} - void select_id_SourceCellCRNTI() { set(optional); type=7;} - void select_id_MobilityInformation() { set(optional); type=8;} - void select_id_UE_RLF_Report_Container() { set(optional); type=9;} - void select_id_UE_RLF_Report_Container_for_extended_bands() { set(optional); type=10;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(mandatory)) { type = 4; return true; } - else if(equal(conditional)) { type = 5; return true; } - else if(equal(conditional)) { type = 6; return true; } - else if(equal(optional)) { type = 7; return true; } - else if(equal(optional)) { type = 8; return true; } - else if(equal(optional)) { type = 9; return true; } - else if(equal(optional)) { type = 10; return true; } - else { type = 11; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(mandatory);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(conditional);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(conditional);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(optional);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(optional);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(optional);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(optional);} return false; - case 11: type = 11; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -HandoverReport ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{HandoverReport-IEs}}, - ... -} -*/ - -struct HandoverReport : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "HandoverReport";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -UE-ContextInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { -{ ID id-ManagementBasedMDTallowed CRITICALITY ignore EXTENSION ManagementBasedMDTallowed PRESENCE optional }| -{ ID id-ManagementBasedMDTPLMNList CRITICALITY ignore EXTENSION MDTPLMNList PRESENCE optional }| -{ ID id-UESidelinkAggregateMaximumBitRate CRITICALITY ignore EXTENSION UESidelinkAggregateMaximumBitRate PRESENCE optional}, - ... -} -*/ - -struct UE_ContextInformation_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_ManagementBasedMDTallowed() { set(id_ManagementBasedMDTallowed); type=1;} - void select_id_ManagementBasedMDTPLMNList() { set(id_ManagementBasedMDTPLMNList); type=2;} - void select_id_UESidelinkAggregateMaximumBitRate() { set(id_UESidelinkAggregateMaximumBitRate); type=3;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_ManagementBasedMDTallowed)) { type = 1; return true; } - else if(equal(id_ManagementBasedMDTPLMNList)) { type = 2; return true; } - else if(equal(id_UESidelinkAggregateMaximumBitRate)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_ManagementBasedMDTallowed);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_ManagementBasedMDTPLMNList);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_UESidelinkAggregateMaximumBitRate);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_ManagementBasedMDTallowed() { set(ignore); type=1;} - void select_id_ManagementBasedMDTPLMNList() { set(ignore); type=2;} - void select_id_UESidelinkAggregateMaximumBitRate() { set(ignore); type=3;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - ManagementBasedMDTallowed& select_id_ManagementBasedMDTallowed() { return set(1); } - ManagementBasedMDTallowed const* get_id_ManagementBasedMDTallowed() const { return get(1); } - MDTPLMNList& select_id_ManagementBasedMDTPLMNList() { return set(2); } - MDTPLMNList const* get_id_ManagementBasedMDTPLMNList() const { return get(2); } - UESidelinkAggregateMaximumBitRate& select_id_UESidelinkAggregateMaximumBitRate() { return set(3); } - UESidelinkAggregateMaximumBitRate const* get_id_UESidelinkAggregateMaximumBitRate() const { return get(3); } - bool is_unknown() const { return type == 4; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_ManagementBasedMDTallowed()); return true; - case 2: v(select_id_ManagementBasedMDTPLMNList()); return true; - case 3: v(select_id_UESidelinkAggregateMaximumBitRate()); return true; - case 4: if(type != 4) {clear(); asn::base::set();} type = 4; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(MDTPLMNList)]; - char dummy2[sizeof(ManagementBasedMDTallowed)]; - char dummy3[sizeof(UESidelinkAggregateMaximumBitRate)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_ManagementBasedMDTallowed() { set(optional); type=1;} - void select_id_ManagementBasedMDTPLMNList() { set(optional); type=2;} - void select_id_UESidelinkAggregateMaximumBitRate() { set(optional); type=3;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -UE-ContextInformation ::= SEQUENCE { - mME-UE-S1AP-ID UE-S1AP-ID, - uESecurityCapabilities UESecurityCapabilities, - aS-SecurityInformation AS-SecurityInformation, - uEaggregateMaximumBitRate UEAggregateMaximumBitRate, - subscriberProfileIDforRFP SubscriberProfileIDforRFP OPTIONAL, - e-RABs-ToBeSetup-List E-RABs-ToBeSetup-List, - rRC-Context RRC-Context, - handoverRestrictionList HandoverRestrictionList OPTIONAL, - locationReportingInformation LocationReportingInformation OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {UE-ContextInformation-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct UE_ContextInformation : asn::sequence<10, 0, true, 4> -{ - static constexpr const char* name() {return "UE-ContextInformation";} - using parent_t = asn::sequence<10, 0, true, 4>; - struct mME_UE_S1AP_ID_t : UE_S1AP_ID - { - static constexpr const char* name() {return "mME_UE_S1AP_ID_t";} - using parent_t = UE_S1AP_ID; - - }; - mME_UE_S1AP_ID_t& ref_mME_UE_S1AP_ID() {return mME_UE_S1AP_ID;} - mME_UE_S1AP_ID_t const& ref_mME_UE_S1AP_ID() const {return mME_UE_S1AP_ID;} - struct uESecurityCapabilities_t : UESecurityCapabilities - { - static constexpr const char* name() {return "uESecurityCapabilities_t";} - using parent_t = UESecurityCapabilities; - - }; - uESecurityCapabilities_t& ref_uESecurityCapabilities() {return uESecurityCapabilities;} - uESecurityCapabilities_t const& ref_uESecurityCapabilities() const {return uESecurityCapabilities;} - struct aS_SecurityInformation_t : AS_SecurityInformation - { - static constexpr const char* name() {return "aS_SecurityInformation_t";} - using parent_t = AS_SecurityInformation; - - }; - aS_SecurityInformation_t& ref_aS_SecurityInformation() {return aS_SecurityInformation;} - aS_SecurityInformation_t const& ref_aS_SecurityInformation() const {return aS_SecurityInformation;} - struct uEaggregateMaximumBitRate_t : UEAggregateMaximumBitRate - { - static constexpr const char* name() {return "uEaggregateMaximumBitRate_t";} - using parent_t = UEAggregateMaximumBitRate; - - }; - uEaggregateMaximumBitRate_t& ref_uEaggregateMaximumBitRate() {return uEaggregateMaximumBitRate;} - uEaggregateMaximumBitRate_t const& ref_uEaggregateMaximumBitRate() const {return uEaggregateMaximumBitRate;} - struct subscriberProfileIDforRFP_t : SubscriberProfileIDforRFP - { - static constexpr const char* name() {return "subscriberProfileIDforRFP_t";} - using parent_t = SubscriberProfileIDforRFP; - static constexpr bool optional = true; - - }; - subscriberProfileIDforRFP_t& set_subscriberProfileIDforRFP() { subscriberProfileIDforRFP.setpresent(true); return subscriberProfileIDforRFP;} - subscriberProfileIDforRFP_t const* get_subscriberProfileIDforRFP() const {return subscriberProfileIDforRFP.is_valid() ? &subscriberProfileIDforRFP : nullptr;} - struct e_RABs_ToBeSetup_List_t : E_RABs_ToBeSetup_List - { - static constexpr const char* name() {return "e_RABs_ToBeSetup_List_t";} - using parent_t = E_RABs_ToBeSetup_List; - - }; - e_RABs_ToBeSetup_List_t& ref_e_RABs_ToBeSetup_List() {return e_RABs_ToBeSetup_List;} - e_RABs_ToBeSetup_List_t const& ref_e_RABs_ToBeSetup_List() const {return e_RABs_ToBeSetup_List;} - struct rRC_Context_t : RRC_Context - { - static constexpr const char* name() {return "rRC_Context_t";} - using parent_t = RRC_Context; - - }; - rRC_Context_t& ref_rRC_Context() {return rRC_Context;} - rRC_Context_t const& ref_rRC_Context() const {return rRC_Context;} - struct handoverRestrictionList_t : HandoverRestrictionList - { - static constexpr const char* name() {return "handoverRestrictionList_t";} - using parent_t = HandoverRestrictionList; - static constexpr bool optional = true; - - }; - handoverRestrictionList_t& set_handoverRestrictionList() { handoverRestrictionList.setpresent(true); return handoverRestrictionList;} - handoverRestrictionList_t const* get_handoverRestrictionList() const {return handoverRestrictionList.is_valid() ? &handoverRestrictionList : nullptr;} - struct locationReportingInformation_t : LocationReportingInformation - { - static constexpr const char* name() {return "locationReportingInformation_t";} - using parent_t = LocationReportingInformation; - static constexpr bool optional = true; - - }; - locationReportingInformation_t& set_locationReportingInformation() { locationReportingInformation.setpresent(true); return locationReportingInformation;} - locationReportingInformation_t const* get_locationReportingInformation() const {return locationReportingInformation.is_valid() ? &locationReportingInformation : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(mME_UE_S1AP_ID); - v(uESecurityCapabilities); - v(aS_SecurityInformation); - v(uEaggregateMaximumBitRate); - v(subscriberProfileIDforRFP); - v(e_RABs_ToBeSetup_List); - v(rRC_Context); - v(handoverRestrictionList); - v(locationReportingInformation); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(mME_UE_S1AP_ID); - v(uESecurityCapabilities); - v(aS_SecurityInformation); - v(uEaggregateMaximumBitRate); - v(subscriberProfileIDforRFP); - v(e_RABs_ToBeSetup_List); - v(rRC_Context); - v(handoverRestrictionList); - v(locationReportingInformation); - v(iE_Extensions); - - }; - void clear() - { - mME_UE_S1AP_ID.clear(); - uESecurityCapabilities.clear(); - aS_SecurityInformation.clear(); - uEaggregateMaximumBitRate.clear(); - subscriberProfileIDforRFP.clear(); - e_RABs_ToBeSetup_List.clear(); - rRC_Context.clear(); - handoverRestrictionList.clear(); - locationReportingInformation.clear(); - iE_Extensions.clear(); - - }; - private: - mME_UE_S1AP_ID_t mME_UE_S1AP_ID; - uESecurityCapabilities_t uESecurityCapabilities; - aS_SecurityInformation_t aS_SecurityInformation; - uEaggregateMaximumBitRate_t uEaggregateMaximumBitRate; - subscriberProfileIDforRFP_t subscriberProfileIDforRFP; - e_RABs_ToBeSetup_List_t e_RABs_ToBeSetup_List; - rRC_Context_t rRC_Context; - handoverRestrictionList_t handoverRestrictionList; - locationReportingInformation_t locationReportingInformation; - iE_Extensions_t iE_Extensions; - -}; -/* -UE-ContextReferenceAtSeNB-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct UE_ContextReferenceAtSeNB_ItemExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -UE-ContextReferenceAtSeNB ::= SEQUENCE { - source-GlobalSeNB-ID GlobalENB-ID, - seNB-UE-X2AP-ID UE-X2AP-ID, - seNB-UE-X2AP-ID-Extension UE-X2AP-ID-Extension, - iE-Extensions ProtocolExtensionContainer { {UE-ContextReferenceAtSeNB-ItemExtIEs} } OPTIONAL, - ... -} -*/ - -struct UE_ContextReferenceAtSeNB : asn::sequence<4, 0, true, 1> -{ - static constexpr const char* name() {return "UE-ContextReferenceAtSeNB";} - using parent_t = asn::sequence<4, 0, true, 1>; - struct source_GlobalSeNB_ID_t : GlobalENB_ID - { - static constexpr const char* name() {return "source_GlobalSeNB_ID_t";} - using parent_t = GlobalENB_ID; - - }; - source_GlobalSeNB_ID_t& ref_source_GlobalSeNB_ID() {return source_GlobalSeNB_ID;} - source_GlobalSeNB_ID_t const& ref_source_GlobalSeNB_ID() const {return source_GlobalSeNB_ID;} - struct seNB_UE_X2AP_ID_t : UE_X2AP_ID - { - static constexpr const char* name() {return "seNB_UE_X2AP_ID_t";} - using parent_t = UE_X2AP_ID; - - }; - seNB_UE_X2AP_ID_t& ref_seNB_UE_X2AP_ID() {return seNB_UE_X2AP_ID;} - seNB_UE_X2AP_ID_t const& ref_seNB_UE_X2AP_ID() const {return seNB_UE_X2AP_ID;} - struct seNB_UE_X2AP_ID_Extension_t : UE_X2AP_ID_Extension - { - static constexpr const char* name() {return "seNB_UE_X2AP_ID_Extension_t";} - using parent_t = UE_X2AP_ID_Extension; - - }; - seNB_UE_X2AP_ID_Extension_t& ref_seNB_UE_X2AP_ID_Extension() {return seNB_UE_X2AP_ID_Extension;} - seNB_UE_X2AP_ID_Extension_t const& ref_seNB_UE_X2AP_ID_Extension() const {return seNB_UE_X2AP_ID_Extension;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(source_GlobalSeNB_ID); - v(seNB_UE_X2AP_ID); - v(seNB_UE_X2AP_ID_Extension); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(source_GlobalSeNB_ID); - v(seNB_UE_X2AP_ID); - v(seNB_UE_X2AP_ID_Extension); - v(iE_Extensions); - - }; - void clear() - { - source_GlobalSeNB_ID.clear(); - seNB_UE_X2AP_ID.clear(); - seNB_UE_X2AP_ID_Extension.clear(); - iE_Extensions.clear(); - - }; - private: - source_GlobalSeNB_ID_t source_GlobalSeNB_ID; - seNB_UE_X2AP_ID_t seNB_UE_X2AP_ID; - seNB_UE_X2AP_ID_Extension_t seNB_UE_X2AP_ID_Extension; - iE_Extensions_t iE_Extensions; - -}; -/* -UE-ContextReferenceAtWT-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct UE_ContextReferenceAtWT_ItemExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -UE-ContextReferenceAtWT ::= SEQUENCE { - wTID WTID, - wT-UE-XwAP-ID WT-UE-XwAP-ID, - iE-Extensions ProtocolExtensionContainer { {UE-ContextReferenceAtWT-ItemExtIEs} } OPTIONAL, - ... -} -*/ - -struct UE_ContextReferenceAtWT : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "UE-ContextReferenceAtWT";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct wTID_t : WTID - { - static constexpr const char* name() {return "wTID_t";} - using parent_t = WTID; - - }; - wTID_t& ref_wTID() {return wTID;} - wTID_t const& ref_wTID() const {return wTID;} - struct wT_UE_XwAP_ID_t : WT_UE_XwAP_ID - { - static constexpr const char* name() {return "wT_UE_XwAP_ID_t";} - using parent_t = WT_UE_XwAP_ID; - - }; - wT_UE_XwAP_ID_t& ref_wT_UE_XwAP_ID() {return wT_UE_XwAP_ID;} - wT_UE_XwAP_ID_t const& ref_wT_UE_XwAP_ID() const {return wT_UE_XwAP_ID;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(wTID); - v(wT_UE_XwAP_ID); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(wTID); - v(wT_UE_XwAP_ID); - v(iE_Extensions); - - }; - void clear() - { - wTID.clear(); - wT_UE_XwAP_ID.clear(); - iE_Extensions.clear(); - - }; - private: - wTID_t wTID; - wT_UE_XwAP_ID_t wT_UE_XwAP_ID; - iE_Extensions_t iE_Extensions; - -}; -/* -UE-ContextReferenceAtSgNB-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct UE_ContextReferenceAtSgNB_ItemExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -UE-ContextReferenceAtSgNB ::= SEQUENCE { - source-GlobalSgNB-ID GlobalGNB-ID, - sgNB-UE-X2AP-ID SgNB-UE-X2AP-ID, - iE-Extensions ProtocolExtensionContainer { {UE-ContextReferenceAtSgNB-ItemExtIEs} } OPTIONAL, - ... -} -*/ - -struct UE_ContextReferenceAtSgNB : asn::sequence<3, 0, true, 1> -{ - static constexpr const char* name() {return "UE-ContextReferenceAtSgNB";} - using parent_t = asn::sequence<3, 0, true, 1>; - struct source_GlobalSgNB_ID_t : GlobalGNB_ID - { - static constexpr const char* name() {return "source_GlobalSgNB_ID_t";} - using parent_t = GlobalGNB_ID; - - }; - source_GlobalSgNB_ID_t& ref_source_GlobalSgNB_ID() {return source_GlobalSgNB_ID;} - source_GlobalSgNB_ID_t const& ref_source_GlobalSgNB_ID() const {return source_GlobalSgNB_ID;} - struct sgNB_UE_X2AP_ID_t : SgNB_UE_X2AP_ID - { - static constexpr const char* name() {return "sgNB_UE_X2AP_ID_t";} - using parent_t = SgNB_UE_X2AP_ID; - - }; - sgNB_UE_X2AP_ID_t& ref_sgNB_UE_X2AP_ID() {return sgNB_UE_X2AP_ID;} - sgNB_UE_X2AP_ID_t const& ref_sgNB_UE_X2AP_ID() const {return sgNB_UE_X2AP_ID;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(source_GlobalSgNB_ID); - v(sgNB_UE_X2AP_ID); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(source_GlobalSgNB_ID); - v(sgNB_UE_X2AP_ID); - v(iE_Extensions); - - }; - void clear() - { - source_GlobalSgNB_ID.clear(); - sgNB_UE_X2AP_ID.clear(); - iE_Extensions.clear(); - - }; - private: - source_GlobalSgNB_ID_t source_GlobalSgNB_ID; - sgNB_UE_X2AP_ID_t sgNB_UE_X2AP_ID; - iE_Extensions_t iE_Extensions; - -}; -/* -HandoverRequest-IEs X2AP-PROTOCOL-IES ::= { - { ID id-Old-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| - { ID id-TargetCell-ID CRITICALITY reject TYPE ECGI PRESENCE mandatory}| - { ID id-GUMMEI-ID CRITICALITY reject TYPE GUMMEI PRESENCE mandatory}| - { ID id-UE-ContextInformation CRITICALITY reject TYPE UE-ContextInformation PRESENCE mandatory}| - { ID id-UE-HistoryInformation CRITICALITY ignore TYPE UE-HistoryInformation PRESENCE mandatory}| - { ID id-TraceActivation CRITICALITY ignore TYPE TraceActivation PRESENCE optional}| - { ID id-SRVCCOperationPossible CRITICALITY ignore TYPE SRVCCOperationPossible PRESENCE optional}| - { ID id-CSGMembershipStatus CRITICALITY reject TYPE CSGMembershipStatus PRESENCE optional}| - { ID id-MobilityInformation CRITICALITY ignore TYPE MobilityInformation PRESENCE optional}| - { ID id-Masked-IMEISV CRITICALITY ignore TYPE Masked-IMEISV PRESENCE optional}| - { ID id-UE-HistoryInformationFromTheUE CRITICALITY ignore TYPE UE-HistoryInformationFromTheUE PRESENCE optional}| - { ID id-ExpectedUEBehaviour CRITICALITY ignore TYPE ExpectedUEBehaviour PRESENCE optional}| - { ID id-ProSeAuthorized CRITICALITY ignore TYPE ProSeAuthorized PRESENCE optional}| - { ID id-UE-ContextReferenceAtSeNB CRITICALITY ignore TYPE UE-ContextReferenceAtSeNB PRESENCE optional}| - { ID id-Old-eNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-V2XServicesAuthorized CRITICALITY ignore TYPE V2XServicesAuthorized PRESENCE optional}| - { ID id-UE-ContextReferenceAtWT CRITICALITY ignore TYPE UE-ContextReferenceAtWT PRESENCE optional}| - { ID id-NRUESecurityCapabilities CRITICALITY ignore TYPE NRUESecurityCapabilities PRESENCE optional}| - { ID id-UE-ContextReferenceAtSgNB CRITICALITY ignore TYPE UE-ContextReferenceAtSgNB PRESENCE optional}| - { ID id-AerialUEsubscriptionInformation CRITICALITY ignore TYPE AerialUEsubscriptionInformation PRESENCE optional}| - { ID id-Subscription-Based-UE-DifferentiationInfo CRITICALITY ignore TYPE Subscription-Based-UE-DifferentiationInfo PRESENCE optional}, - ... -} -*/ - -struct HandoverRequest_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 23; } - void clear() {type = 0;} - void select_id_Old_eNB_UE_X2AP_ID() { set(id_Old_eNB_UE_X2AP_ID); type=1;} - void select_id_Cause() { set(id_Cause); type=2;} - void select_id_TargetCell_ID() { set(id_TargetCell_ID); type=3;} - void select_id_GUMMEI_ID() { set(id_GUMMEI_ID); type=4;} - void select_id_UE_ContextInformation() { set(id_UE_ContextInformation); type=5;} - void select_id_UE_HistoryInformation() { set(id_UE_HistoryInformation); type=6;} - void select_id_TraceActivation() { set(id_TraceActivation); type=7;} - void select_id_SRVCCOperationPossible() { set(id_SRVCCOperationPossible); type=8;} - void select_id_CSGMembershipStatus() { set(id_CSGMembershipStatus); type=9;} - void select_id_MobilityInformation() { set(id_MobilityInformation); type=10;} - void select_id_Masked_IMEISV() { set(id_Masked_IMEISV); type=11;} - void select_id_UE_HistoryInformationFromTheUE() { set(id_UE_HistoryInformationFromTheUE); type=12;} - void select_id_ExpectedUEBehaviour() { set(id_ExpectedUEBehaviour); type=13;} - void select_id_ProSeAuthorized() { set(id_ProSeAuthorized); type=14;} - void select_id_UE_ContextReferenceAtSeNB() { set(id_UE_ContextReferenceAtSeNB); type=15;} - void select_id_Old_eNB_UE_X2AP_ID_Extension() { set(id_Old_eNB_UE_X2AP_ID_Extension); type=16;} - void select_id_V2XServicesAuthorized() { set(id_V2XServicesAuthorized); type=17;} - void select_id_UE_ContextReferenceAtWT() { set(id_UE_ContextReferenceAtWT); type=18;} - void select_id_NRUESecurityCapabilities() { set(id_NRUESecurityCapabilities); type=19;} - void select_id_UE_ContextReferenceAtSgNB() { set(id_UE_ContextReferenceAtSgNB); type=20;} - void select_id_AerialUEsubscriptionInformation() { set(id_AerialUEsubscriptionInformation); type=21;} - void select_id_Subscription_Based_UE_DifferentiationInfo() { set(id_Subscription_Based_UE_DifferentiationInfo); type=22;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_Old_eNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_Cause)) { type = 2; return true; } - else if(equal(id_TargetCell_ID)) { type = 3; return true; } - else if(equal(id_GUMMEI_ID)) { type = 4; return true; } - else if(equal(id_UE_ContextInformation)) { type = 5; return true; } - else if(equal(id_UE_HistoryInformation)) { type = 6; return true; } - else if(equal(id_TraceActivation)) { type = 7; return true; } - else if(equal(id_SRVCCOperationPossible)) { type = 8; return true; } - else if(equal(id_CSGMembershipStatus)) { type = 9; return true; } - else if(equal(id_MobilityInformation)) { type = 10; return true; } - else if(equal(id_Masked_IMEISV)) { type = 11; return true; } - else if(equal(id_UE_HistoryInformationFromTheUE)) { type = 12; return true; } - else if(equal(id_ExpectedUEBehaviour)) { type = 13; return true; } - else if(equal(id_ProSeAuthorized)) { type = 14; return true; } - else if(equal(id_UE_ContextReferenceAtSeNB)) { type = 15; return true; } - else if(equal(id_Old_eNB_UE_X2AP_ID_Extension)) { type = 16; return true; } - else if(equal(id_V2XServicesAuthorized)) { type = 17; return true; } - else if(equal(id_UE_ContextReferenceAtWT)) { type = 18; return true; } - else if(equal(id_NRUESecurityCapabilities)) { type = 19; return true; } - else if(equal(id_UE_ContextReferenceAtSgNB)) { type = 20; return true; } - else if(equal(id_AerialUEsubscriptionInformation)) { type = 21; return true; } - else if(equal(id_Subscription_Based_UE_DifferentiationInfo)) { type = 22; return true; } - else { type = 23; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_Old_eNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_TargetCell_ID);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_GUMMEI_ID);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_UE_ContextInformation);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_UE_HistoryInformation);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(id_TraceActivation);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(id_SRVCCOperationPossible);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(id_CSGMembershipStatus);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(id_MobilityInformation);} return false; - case 11: type = 11; if(v(ref_nested())) { return equal(id_Masked_IMEISV);} return false; - case 12: type = 12; if(v(ref_nested())) { return equal(id_UE_HistoryInformationFromTheUE);} return false; - case 13: type = 13; if(v(ref_nested())) { return equal(id_ExpectedUEBehaviour);} return false; - case 14: type = 14; if(v(ref_nested())) { return equal(id_ProSeAuthorized);} return false; - case 15: type = 15; if(v(ref_nested())) { return equal(id_UE_ContextReferenceAtSeNB);} return false; - case 16: type = 16; if(v(ref_nested())) { return equal(id_Old_eNB_UE_X2AP_ID_Extension);} return false; - case 17: type = 17; if(v(ref_nested())) { return equal(id_V2XServicesAuthorized);} return false; - case 18: type = 18; if(v(ref_nested())) { return equal(id_UE_ContextReferenceAtWT);} return false; - case 19: type = 19; if(v(ref_nested())) { return equal(id_NRUESecurityCapabilities);} return false; - case 20: type = 20; if(v(ref_nested())) { return equal(id_UE_ContextReferenceAtSgNB);} return false; - case 21: type = 21; if(v(ref_nested())) { return equal(id_AerialUEsubscriptionInformation);} return false; - case 22: type = 22; if(v(ref_nested())) { return equal(id_Subscription_Based_UE_DifferentiationInfo);} return false; - case 23: type = 23; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 23; } - void clear() {type = 0;} - void select_id_Old_eNB_UE_X2AP_ID() { set(reject); type=1;} - void select_id_Cause() { set(ignore); type=2;} - void select_id_TargetCell_ID() { set(reject); type=3;} - void select_id_GUMMEI_ID() { set(reject); type=4;} - void select_id_UE_ContextInformation() { set(reject); type=5;} - void select_id_UE_HistoryInformation() { set(ignore); type=6;} - void select_id_TraceActivation() { set(ignore); type=7;} - void select_id_SRVCCOperationPossible() { set(ignore); type=8;} - void select_id_CSGMembershipStatus() { set(reject); type=9;} - void select_id_MobilityInformation() { set(ignore); type=10;} - void select_id_Masked_IMEISV() { set(ignore); type=11;} - void select_id_UE_HistoryInformationFromTheUE() { set(ignore); type=12;} - void select_id_ExpectedUEBehaviour() { set(ignore); type=13;} - void select_id_ProSeAuthorized() { set(ignore); type=14;} - void select_id_UE_ContextReferenceAtSeNB() { set(ignore); type=15;} - void select_id_Old_eNB_UE_X2AP_ID_Extension() { set(reject); type=16;} - void select_id_V2XServicesAuthorized() { set(ignore); type=17;} - void select_id_UE_ContextReferenceAtWT() { set(ignore); type=18;} - void select_id_NRUESecurityCapabilities() { set(ignore); type=19;} - void select_id_UE_ContextReferenceAtSgNB() { set(ignore); type=20;} - void select_id_AerialUEsubscriptionInformation() { set(ignore); type=21;} - void select_id_Subscription_Based_UE_DifferentiationInfo() { set(ignore); type=22;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(reject)) { type = 3; return true; } - else if(equal(reject)) { type = 4; return true; } - else if(equal(reject)) { type = 5; return true; } - else if(equal(ignore)) { type = 6; return true; } - else if(equal(ignore)) { type = 7; return true; } - else if(equal(ignore)) { type = 8; return true; } - else if(equal(reject)) { type = 9; return true; } - else if(equal(ignore)) { type = 10; return true; } - else if(equal(ignore)) { type = 11; return true; } - else if(equal(ignore)) { type = 12; return true; } - else if(equal(ignore)) { type = 13; return true; } - else if(equal(ignore)) { type = 14; return true; } - else if(equal(ignore)) { type = 15; return true; } - else if(equal(reject)) { type = 16; return true; } - else if(equal(ignore)) { type = 17; return true; } - else if(equal(ignore)) { type = 18; return true; } - else if(equal(ignore)) { type = 19; return true; } - else if(equal(ignore)) { type = 20; return true; } - else if(equal(ignore)) { type = 21; return true; } - else if(equal(ignore)) { type = 22; return true; } - else { type = 23; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(reject);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(reject);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(reject);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(ignore);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(ignore);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(ignore);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(reject);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(ignore);} return false; - case 11: type = 11; if(v(ref_nested())) { return equal(ignore);} return false; - case 12: type = 12; if(v(ref_nested())) { return equal(ignore);} return false; - case 13: type = 13; if(v(ref_nested())) { return equal(ignore);} return false; - case 14: type = 14; if(v(ref_nested())) { return equal(ignore);} return false; - case 15: type = 15; if(v(ref_nested())) { return equal(ignore);} return false; - case 16: type = 16; if(v(ref_nested())) { return equal(reject);} return false; - case 17: type = 17; if(v(ref_nested())) { return equal(ignore);} return false; - case 18: type = 18; if(v(ref_nested())) { return equal(ignore);} return false; - case 19: type = 19; if(v(ref_nested())) { return equal(ignore);} return false; - case 20: type = 20; if(v(ref_nested())) { return equal(ignore);} return false; - case 21: type = 21; if(v(ref_nested())) { return equal(ignore);} return false; - case 22: type = 22; if(v(ref_nested())) { return equal(ignore);} return false; - case 23: type = 23; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_Old_eNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_Old_eNB_UE_X2AP_ID() const { return get(1); } - Cause& select_id_Cause() { return set(2); } - Cause const* get_id_Cause() const { return get(2); } - ECGI& select_id_TargetCell_ID() { return set(3); } - ECGI const* get_id_TargetCell_ID() const { return get(3); } - GUMMEI& select_id_GUMMEI_ID() { return set(4); } - GUMMEI const* get_id_GUMMEI_ID() const { return get(4); } - UE_ContextInformation& select_id_UE_ContextInformation() { return set(5); } - UE_ContextInformation const* get_id_UE_ContextInformation() const { return get(5); } - UE_HistoryInformation& select_id_UE_HistoryInformation() { return set(6); } - UE_HistoryInformation const* get_id_UE_HistoryInformation() const { return get(6); } - TraceActivation& select_id_TraceActivation() { return set(7); } - TraceActivation const* get_id_TraceActivation() const { return get(7); } - SRVCCOperationPossible& select_id_SRVCCOperationPossible() { return set(8); } - SRVCCOperationPossible const* get_id_SRVCCOperationPossible() const { return get(8); } - CSGMembershipStatus& select_id_CSGMembershipStatus() { return set(9); } - CSGMembershipStatus const* get_id_CSGMembershipStatus() const { return get(9); } - MobilityInformation& select_id_MobilityInformation() { return set(10); } - MobilityInformation const* get_id_MobilityInformation() const { return get(10); } - Masked_IMEISV& select_id_Masked_IMEISV() { return set(11); } - Masked_IMEISV const* get_id_Masked_IMEISV() const { return get(11); } - UE_HistoryInformationFromTheUE& select_id_UE_HistoryInformationFromTheUE() { return set(12); } - UE_HistoryInformationFromTheUE const* get_id_UE_HistoryInformationFromTheUE() const { return get(12); } - ExpectedUEBehaviour& select_id_ExpectedUEBehaviour() { return set(13); } - ExpectedUEBehaviour const* get_id_ExpectedUEBehaviour() const { return get(13); } - ProSeAuthorized& select_id_ProSeAuthorized() { return set(14); } - ProSeAuthorized const* get_id_ProSeAuthorized() const { return get(14); } - UE_ContextReferenceAtSeNB& select_id_UE_ContextReferenceAtSeNB() { return set(15); } - UE_ContextReferenceAtSeNB const* get_id_UE_ContextReferenceAtSeNB() const { return get(15); } - UE_X2AP_ID_Extension& select_id_Old_eNB_UE_X2AP_ID_Extension() { return set(16); } - UE_X2AP_ID_Extension const* get_id_Old_eNB_UE_X2AP_ID_Extension() const { return get(16); } - V2XServicesAuthorized& select_id_V2XServicesAuthorized() { return set(17); } - V2XServicesAuthorized const* get_id_V2XServicesAuthorized() const { return get(17); } - UE_ContextReferenceAtWT& select_id_UE_ContextReferenceAtWT() { return set(18); } - UE_ContextReferenceAtWT const* get_id_UE_ContextReferenceAtWT() const { return get(18); } - NRUESecurityCapabilities& select_id_NRUESecurityCapabilities() { return set(19); } - NRUESecurityCapabilities const* get_id_NRUESecurityCapabilities() const { return get(19); } - UE_ContextReferenceAtSgNB& select_id_UE_ContextReferenceAtSgNB() { return set(20); } - UE_ContextReferenceAtSgNB const* get_id_UE_ContextReferenceAtSgNB() const { return get(20); } - AerialUEsubscriptionInformation& select_id_AerialUEsubscriptionInformation() { return set(21); } - AerialUEsubscriptionInformation const* get_id_AerialUEsubscriptionInformation() const { return get(21); } - Subscription_Based_UE_DifferentiationInfo& select_id_Subscription_Based_UE_DifferentiationInfo() { return set(22); } - Subscription_Based_UE_DifferentiationInfo const* get_id_Subscription_Based_UE_DifferentiationInfo() const { return get(22); } - bool is_unknown() const { return type == 23; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - case 7: var.destroy(); break; - case 8: var.destroy(); break; - case 9: var.destroy(); break; - case 10: var.destroy(); break; - case 11: var.destroy(); break; - case 12: var.destroy(); break; - case 13: var.destroy(); break; - case 14: var.destroy(); break; - case 15: var.destroy(); break; - case 16: var.destroy(); break; - case 17: var.destroy(); break; - case 18: var.destroy(); break; - case 19: var.destroy(); break; - case 20: var.destroy(); break; - case 21: var.destroy(); break; - case 22: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - v.template operator()(7); - v.template operator()(8); - v.template operator()(9); - v.template operator()(10); - v.template operator()(11); - v.template operator()(12); - v.template operator()(13); - v.template operator()(14); - v.template operator()(15); - v.template operator()(16); - v.template operator()(17); - v.template operator()(18); - v.template operator()(19); - v.template operator()(20); - v.template operator()(21); - v.template operator()(22); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_Old_eNB_UE_X2AP_ID()); return true; - case 2: v(select_id_Cause()); return true; - case 3: v(select_id_TargetCell_ID()); return true; - case 4: v(select_id_GUMMEI_ID()); return true; - case 5: v(select_id_UE_ContextInformation()); return true; - case 6: v(select_id_UE_HistoryInformation()); return true; - case 7: v(select_id_TraceActivation()); return true; - case 8: v(select_id_SRVCCOperationPossible()); return true; - case 9: v(select_id_CSGMembershipStatus()); return true; - case 10: v(select_id_MobilityInformation()); return true; - case 11: v(select_id_Masked_IMEISV()); return true; - case 12: v(select_id_UE_HistoryInformationFromTheUE()); return true; - case 13: v(select_id_ExpectedUEBehaviour()); return true; - case 14: v(select_id_ProSeAuthorized()); return true; - case 15: v(select_id_UE_ContextReferenceAtSeNB()); return true; - case 16: v(select_id_Old_eNB_UE_X2AP_ID_Extension()); return true; - case 17: v(select_id_V2XServicesAuthorized()); return true; - case 18: v(select_id_UE_ContextReferenceAtWT()); return true; - case 19: v(select_id_NRUESecurityCapabilities()); return true; - case 20: v(select_id_UE_ContextReferenceAtSgNB()); return true; - case 21: v(select_id_AerialUEsubscriptionInformation()); return true; - case 22: v(select_id_Subscription_Based_UE_DifferentiationInfo()); return true; - case 23: if(type != 23) {clear(); asn::base::set();} type = 23; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - case 7: v(var.as()); return true; - case 8: v(var.as()); return true; - case 9: v(var.as()); return true; - case 10: v(var.as()); return true; - case 11: v(var.as()); return true; - case 12: v(var.as()); return true; - case 13: v(var.as()); return true; - case 14: v(var.as()); return true; - case 15: v(var.as()); return true; - case 16: v(var.as()); return true; - case 17: v(var.as()); return true; - case 18: v(var.as()); return true; - case 19: v(var.as()); return true; - case 20: v(var.as()); return true; - case 21: v(var.as()); return true; - case 22: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(AerialUEsubscriptionInformation)]; - char dummy2[sizeof(CSGMembershipStatus)]; - char dummy3[sizeof(Cause)]; - char dummy4[sizeof(ECGI)]; - char dummy5[sizeof(ExpectedUEBehaviour)]; - char dummy6[sizeof(GUMMEI)]; - char dummy7[sizeof(Masked_IMEISV)]; - char dummy8[sizeof(MobilityInformation)]; - char dummy9[sizeof(NRUESecurityCapabilities)]; - char dummy10[sizeof(ProSeAuthorized)]; - char dummy11[sizeof(SRVCCOperationPossible)]; - char dummy12[sizeof(Subscription_Based_UE_DifferentiationInfo)]; - char dummy13[sizeof(TraceActivation)]; - char dummy14[sizeof(UE_ContextInformation)]; - char dummy15[sizeof(UE_ContextReferenceAtSeNB)]; - char dummy16[sizeof(UE_ContextReferenceAtSgNB)]; - char dummy17[sizeof(UE_ContextReferenceAtWT)]; - char dummy18[sizeof(UE_HistoryInformation)]; - char dummy19[sizeof(UE_HistoryInformationFromTheUE)]; - char dummy20[sizeof(UE_X2AP_ID)]; - char dummy21[sizeof(UE_X2AP_ID_Extension)]; - char dummy22[sizeof(V2XServicesAuthorized)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 23; } - void clear() {type = 0;} - void select_id_Old_eNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_Cause() { set(mandatory); type=2;} - void select_id_TargetCell_ID() { set(mandatory); type=3;} - void select_id_GUMMEI_ID() { set(mandatory); type=4;} - void select_id_UE_ContextInformation() { set(mandatory); type=5;} - void select_id_UE_HistoryInformation() { set(mandatory); type=6;} - void select_id_TraceActivation() { set(optional); type=7;} - void select_id_SRVCCOperationPossible() { set(optional); type=8;} - void select_id_CSGMembershipStatus() { set(optional); type=9;} - void select_id_MobilityInformation() { set(optional); type=10;} - void select_id_Masked_IMEISV() { set(optional); type=11;} - void select_id_UE_HistoryInformationFromTheUE() { set(optional); type=12;} - void select_id_ExpectedUEBehaviour() { set(optional); type=13;} - void select_id_ProSeAuthorized() { set(optional); type=14;} - void select_id_UE_ContextReferenceAtSeNB() { set(optional); type=15;} - void select_id_Old_eNB_UE_X2AP_ID_Extension() { set(optional); type=16;} - void select_id_V2XServicesAuthorized() { set(optional); type=17;} - void select_id_UE_ContextReferenceAtWT() { set(optional); type=18;} - void select_id_NRUESecurityCapabilities() { set(optional); type=19;} - void select_id_UE_ContextReferenceAtSgNB() { set(optional); type=20;} - void select_id_AerialUEsubscriptionInformation() { set(optional); type=21;} - void select_id_Subscription_Based_UE_DifferentiationInfo() { set(optional); type=22;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(mandatory)) { type = 4; return true; } - else if(equal(mandatory)) { type = 5; return true; } - else if(equal(mandatory)) { type = 6; return true; } - else if(equal(optional)) { type = 7; return true; } - else if(equal(optional)) { type = 8; return true; } - else if(equal(optional)) { type = 9; return true; } - else if(equal(optional)) { type = 10; return true; } - else if(equal(optional)) { type = 11; return true; } - else if(equal(optional)) { type = 12; return true; } - else if(equal(optional)) { type = 13; return true; } - else if(equal(optional)) { type = 14; return true; } - else if(equal(optional)) { type = 15; return true; } - else if(equal(optional)) { type = 16; return true; } - else if(equal(optional)) { type = 17; return true; } - else if(equal(optional)) { type = 18; return true; } - else if(equal(optional)) { type = 19; return true; } - else if(equal(optional)) { type = 20; return true; } - else if(equal(optional)) { type = 21; return true; } - else if(equal(optional)) { type = 22; return true; } - else { type = 23; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(mandatory);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(mandatory);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(mandatory);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(optional);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(optional);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(optional);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(optional);} return false; - case 11: type = 11; if(v(ref_nested())) { return equal(optional);} return false; - case 12: type = 12; if(v(ref_nested())) { return equal(optional);} return false; - case 13: type = 13; if(v(ref_nested())) { return equal(optional);} return false; - case 14: type = 14; if(v(ref_nested())) { return equal(optional);} return false; - case 15: type = 15; if(v(ref_nested())) { return equal(optional);} return false; - case 16: type = 16; if(v(ref_nested())) { return equal(optional);} return false; - case 17: type = 17; if(v(ref_nested())) { return equal(optional);} return false; - case 18: type = 18; if(v(ref_nested())) { return equal(optional);} return false; - case 19: type = 19; if(v(ref_nested())) { return equal(optional);} return false; - case 20: type = 20; if(v(ref_nested())) { return equal(optional);} return false; - case 21: type = 21; if(v(ref_nested())) { return equal(optional);} return false; - case 22: type = 22; if(v(ref_nested())) { return equal(optional);} return false; - case 23: type = 23; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -HandoverRequest ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{HandoverRequest-IEs}}, - ... -} -*/ - -struct HandoverRequest : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "HandoverRequest";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -HandoverRequestAcknowledge-IEs X2AP-PROTOCOL-IES ::= { - { ID id-Old-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-New-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-E-RABs-Admitted-List CRITICALITY ignore TYPE E-RABs-Admitted-List PRESENCE mandatory}| - { ID id-E-RABs-NotAdmitted-List CRITICALITY ignore TYPE E-RAB-List PRESENCE optional}| - { ID id-TargeteNBtoSource-eNBTransparentContainer CRITICALITY ignore TYPE TargeteNBtoSource-eNBTransparentContainer PRESENCE mandatory}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| - { ID id-UE-ContextKeptIndicator CRITICALITY ignore TYPE UE-ContextKeptIndicator PRESENCE optional}| - { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-Old-eNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-New-eNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-WT-UE-ContextKeptIndicator CRITICALITY ignore TYPE UE-ContextKeptIndicator PRESENCE optional}, - ... -} -*/ - -struct HandoverRequestAcknowledge_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 12; } - void clear() {type = 0;} - void select_id_Old_eNB_UE_X2AP_ID() { set(id_Old_eNB_UE_X2AP_ID); type=1;} - void select_id_New_eNB_UE_X2AP_ID() { set(id_New_eNB_UE_X2AP_ID); type=2;} - void select_id_E_RABs_Admitted_List() { set(id_E_RABs_Admitted_List); type=3;} - void select_id_E_RABs_NotAdmitted_List() { set(id_E_RABs_NotAdmitted_List); type=4;} - void select_id_TargeteNBtoSource_eNBTransparentContainer() { set(id_TargeteNBtoSource_eNBTransparentContainer); type=5;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=6;} - void select_id_UE_ContextKeptIndicator() { set(id_UE_ContextKeptIndicator); type=7;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(id_SeNB_UE_X2AP_ID_Extension); type=8;} - void select_id_Old_eNB_UE_X2AP_ID_Extension() { set(id_Old_eNB_UE_X2AP_ID_Extension); type=9;} - void select_id_New_eNB_UE_X2AP_ID_Extension() { set(id_New_eNB_UE_X2AP_ID_Extension); type=10;} - void select_id_WT_UE_ContextKeptIndicator() { set(id_WT_UE_ContextKeptIndicator); type=11;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_Old_eNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_New_eNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_E_RABs_Admitted_List)) { type = 3; return true; } - else if(equal(id_E_RABs_NotAdmitted_List)) { type = 4; return true; } - else if(equal(id_TargeteNBtoSource_eNBTransparentContainer)) { type = 5; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 6; return true; } - else if(equal(id_UE_ContextKeptIndicator)) { type = 7; return true; } - else if(equal(id_SeNB_UE_X2AP_ID_Extension)) { type = 8; return true; } - else if(equal(id_Old_eNB_UE_X2AP_ID_Extension)) { type = 9; return true; } - else if(equal(id_New_eNB_UE_X2AP_ID_Extension)) { type = 10; return true; } - else if(equal(id_WT_UE_ContextKeptIndicator)) { type = 11; return true; } - else { type = 12; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_Old_eNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_New_eNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_E_RABs_Admitted_List);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_E_RABs_NotAdmitted_List);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_TargeteNBtoSource_eNBTransparentContainer);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(id_UE_ContextKeptIndicator);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(id_SeNB_UE_X2AP_ID_Extension);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(id_Old_eNB_UE_X2AP_ID_Extension);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(id_New_eNB_UE_X2AP_ID_Extension);} return false; - case 11: type = 11; if(v(ref_nested())) { return equal(id_WT_UE_ContextKeptIndicator);} return false; - case 12: type = 12; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 12; } - void clear() {type = 0;} - void select_id_Old_eNB_UE_X2AP_ID() { set(ignore); type=1;} - void select_id_New_eNB_UE_X2AP_ID() { set(ignore); type=2;} - void select_id_E_RABs_Admitted_List() { set(ignore); type=3;} - void select_id_E_RABs_NotAdmitted_List() { set(ignore); type=4;} - void select_id_TargeteNBtoSource_eNBTransparentContainer() { set(ignore); type=5;} - void select_id_CriticalityDiagnostics() { set(ignore); type=6;} - void select_id_UE_ContextKeptIndicator() { set(ignore); type=7;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(ignore); type=8;} - void select_id_Old_eNB_UE_X2AP_ID_Extension() { set(ignore); type=9;} - void select_id_New_eNB_UE_X2AP_ID_Extension() { set(reject); type=10;} - void select_id_WT_UE_ContextKeptIndicator() { set(ignore); type=11;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else if(equal(ignore)) { type = 6; return true; } - else if(equal(ignore)) { type = 7; return true; } - else if(equal(ignore)) { type = 8; return true; } - else if(equal(ignore)) { type = 9; return true; } - else if(equal(reject)) { type = 10; return true; } - else if(equal(ignore)) { type = 11; return true; } - else { type = 12; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(ignore);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(ignore);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(ignore);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(ignore);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(reject);} return false; - case 11: type = 11; if(v(ref_nested())) { return equal(ignore);} return false; - case 12: type = 12; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_Old_eNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_Old_eNB_UE_X2AP_ID() const { return get(1); } - UE_X2AP_ID& select_id_New_eNB_UE_X2AP_ID() { return set(2); } - UE_X2AP_ID const* get_id_New_eNB_UE_X2AP_ID() const { return get(2); } - E_RABs_Admitted_List& select_id_E_RABs_Admitted_List() { return set(3); } - E_RABs_Admitted_List const* get_id_E_RABs_Admitted_List() const { return get(3); } - E_RAB_List& select_id_E_RABs_NotAdmitted_List() { return set(4); } - E_RAB_List const* get_id_E_RABs_NotAdmitted_List() const { return get(4); } - TargeteNBtoSource_eNBTransparentContainer& select_id_TargeteNBtoSource_eNBTransparentContainer() { return set(5); } - TargeteNBtoSource_eNBTransparentContainer const* get_id_TargeteNBtoSource_eNBTransparentContainer() const { return get(5); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(6); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(6); } - UE_ContextKeptIndicator& select_id_UE_ContextKeptIndicator() { return set(7); } - UE_ContextKeptIndicator const* get_id_UE_ContextKeptIndicator() const { return get(7); } - UE_X2AP_ID_Extension& select_id_SeNB_UE_X2AP_ID_Extension() { return set(8); } - UE_X2AP_ID_Extension const* get_id_SeNB_UE_X2AP_ID_Extension() const { return get(8); } - UE_X2AP_ID_Extension& select_id_Old_eNB_UE_X2AP_ID_Extension() { return set(9); } - UE_X2AP_ID_Extension const* get_id_Old_eNB_UE_X2AP_ID_Extension() const { return get(9); } - UE_X2AP_ID_Extension& select_id_New_eNB_UE_X2AP_ID_Extension() { return set(10); } - UE_X2AP_ID_Extension const* get_id_New_eNB_UE_X2AP_ID_Extension() const { return get(10); } - UE_ContextKeptIndicator& select_id_WT_UE_ContextKeptIndicator() { return set(11); } - UE_ContextKeptIndicator const* get_id_WT_UE_ContextKeptIndicator() const { return get(11); } - bool is_unknown() const { return type == 12; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - case 7: var.destroy(); break; - case 8: var.destroy(); break; - case 9: var.destroy(); break; - case 10: var.destroy(); break; - case 11: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - v.template operator()(7); - v.template operator()(8); - v.template operator()(9); - v.template operator()(10); - v.template operator()(11); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_Old_eNB_UE_X2AP_ID()); return true; - case 2: v(select_id_New_eNB_UE_X2AP_ID()); return true; - case 3: v(select_id_E_RABs_Admitted_List()); return true; - case 4: v(select_id_E_RABs_NotAdmitted_List()); return true; - case 5: v(select_id_TargeteNBtoSource_eNBTransparentContainer()); return true; - case 6: v(select_id_CriticalityDiagnostics()); return true; - case 7: v(select_id_UE_ContextKeptIndicator()); return true; - case 8: v(select_id_SeNB_UE_X2AP_ID_Extension()); return true; - case 9: v(select_id_Old_eNB_UE_X2AP_ID_Extension()); return true; - case 10: v(select_id_New_eNB_UE_X2AP_ID_Extension()); return true; - case 11: v(select_id_WT_UE_ContextKeptIndicator()); return true; - case 12: if(type != 12) {clear(); asn::base::set();} type = 12; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - case 7: v(var.as()); return true; - case 8: v(var.as()); return true; - case 9: v(var.as()); return true; - case 10: v(var.as()); return true; - case 11: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CriticalityDiagnostics)]; - char dummy2[sizeof(E_RAB_List)]; - char dummy3[sizeof(E_RABs_Admitted_List)]; - char dummy4[sizeof(TargeteNBtoSource_eNBTransparentContainer)]; - char dummy5[sizeof(UE_ContextKeptIndicator)]; - char dummy6[sizeof(UE_X2AP_ID)]; - char dummy7[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 12; } - void clear() {type = 0;} - void select_id_Old_eNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_New_eNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_E_RABs_Admitted_List() { set(mandatory); type=3;} - void select_id_E_RABs_NotAdmitted_List() { set(optional); type=4;} - void select_id_TargeteNBtoSource_eNBTransparentContainer() { set(mandatory); type=5;} - void select_id_CriticalityDiagnostics() { set(optional); type=6;} - void select_id_UE_ContextKeptIndicator() { set(optional); type=7;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(optional); type=8;} - void select_id_Old_eNB_UE_X2AP_ID_Extension() { set(optional); type=9;} - void select_id_New_eNB_UE_X2AP_ID_Extension() { set(optional); type=10;} - void select_id_WT_UE_ContextKeptIndicator() { set(optional); type=11;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(mandatory)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else if(equal(optional)) { type = 7; return true; } - else if(equal(optional)) { type = 8; return true; } - else if(equal(optional)) { type = 9; return true; } - else if(equal(optional)) { type = 10; return true; } - else if(equal(optional)) { type = 11; return true; } - else { type = 12; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(mandatory);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(optional);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(optional);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(optional);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(optional);} return false; - case 11: type = 11; if(v(ref_nested())) { return equal(optional);} return false; - case 12: type = 12; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -HandoverRequestAcknowledge ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{HandoverRequestAcknowledge-IEs}}, - ... -} -*/ - -struct HandoverRequestAcknowledge : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "HandoverRequestAcknowledge";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -LoadInformation-IEs X2AP-PROTOCOL-IES ::= { - { ID id-CellInformation CRITICALITY ignore TYPE CellInformation-List PRESENCE mandatory} , - ... -} -*/ - -struct LoadInformation_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_CellInformation() { set(id_CellInformation); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_CellInformation)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_CellInformation);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_CellInformation() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - CellInformation_List& select_id_CellInformation() { return set(1); } - CellInformation_List const* get_id_CellInformation() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_CellInformation()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CellInformation_List)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_CellInformation() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -LoadInformation ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{LoadInformation-IEs}}, - ... -} -*/ - -struct LoadInformation : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "LoadInformation";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -MeasurementInitiationResult-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct MeasurementInitiationResult_Item_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -MeasurementInitiationResult-Item ::= SEQUENCE { - cell-ID ECGI, - measurementFailureCause-List MeasurementFailureCause-List OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {MeasurementInitiationResult-Item-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct MeasurementInitiationResult_Item : asn::sequence<3, 0, true, 2> -{ - static constexpr const char* name() {return "MeasurementInitiationResult-Item";} - using parent_t = asn::sequence<3, 0, true, 2>; - struct cell_ID_t : ECGI - { - static constexpr const char* name() {return "cell_ID_t";} - using parent_t = ECGI; - - }; - cell_ID_t& ref_cell_ID() {return cell_ID;} - cell_ID_t const& ref_cell_ID() const {return cell_ID;} - struct measurementFailureCause_List_t : MeasurementFailureCause_List - { - static constexpr const char* name() {return "measurementFailureCause_List_t";} - using parent_t = MeasurementFailureCause_List; - static constexpr bool optional = true; - - }; - measurementFailureCause_List_t& set_measurementFailureCause_List() { measurementFailureCause_List.setpresent(true); return measurementFailureCause_List;} - measurementFailureCause_List_t const* get_measurementFailureCause_List() const {return measurementFailureCause_List.is_valid() ? &measurementFailureCause_List : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(cell_ID); - v(measurementFailureCause_List); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(cell_ID); - v(measurementFailureCause_List); - v(iE_Extensions); - - }; - void clear() - { - cell_ID.clear(); - measurementFailureCause_List.clear(); - iE_Extensions.clear(); - - }; - private: - cell_ID_t cell_ID; - measurementFailureCause_List_t measurementFailureCause_List; - iE_Extensions_t iE_Extensions; - -}; -/* -MeasurementInitiationResult-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-MeasurementInitiationResult-Item CRITICALITY ignore TYPE MeasurementInitiationResult-Item PRESENCE mandatory} -} -*/ - -struct MeasurementInitiationResult_ItemIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_MeasurementInitiationResult_Item() { set(id_MeasurementInitiationResult_Item); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeasurementInitiationResult_Item)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeasurementInitiationResult_Item);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_MeasurementInitiationResult_Item() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - MeasurementInitiationResult_Item& select_id_MeasurementInitiationResult_Item() { return set(1); } - MeasurementInitiationResult_Item const* get_id_MeasurementInitiationResult_Item() const { return get(1); } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeasurementInitiationResult_Item()); return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(MeasurementInitiationResult_Item)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - void clear() {type = 0;} - void select_id_MeasurementInitiationResult_Item() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -MeasurementInitiationResult-List ::= SEQUENCE (SIZE (1..maxCellineNB)) OF ProtocolIE-Single-Container { {MeasurementInitiationResult-ItemIEs} } -*/ - -struct MeasurementInitiationResult_List_elm : ProtocolIE_Single_Container -{ - static constexpr const char* name() {return "MeasurementInitiationResult_List_elm";} - using parent_t = ProtocolIE_Single_Container; - -}; -struct MeasurementInitiationResult_List : asn::sequenceof -{ - static constexpr const char* name() {return "MeasurementInitiationResult-List";} - using parent_t = asn::sequenceof; - using constraint_t = asn::constraints>; - -}; -/* -MobilityChangeAcknowledge-IEs X2AP-PROTOCOL-IES ::= { - { ID id-ENB1-Cell-ID CRITICALITY reject TYPE ECGI PRESENCE mandatory}| - { ID id-ENB2-Cell-ID CRITICALITY reject TYPE ECGI PRESENCE mandatory}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, - ... -} -*/ - -struct MobilityChangeAcknowledge_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_ENB1_Cell_ID() { set(id_ENB1_Cell_ID); type=1;} - void select_id_ENB2_Cell_ID() { set(id_ENB2_Cell_ID); type=2;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=3;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_ENB1_Cell_ID)) { type = 1; return true; } - else if(equal(id_ENB2_Cell_ID)) { type = 2; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_ENB1_Cell_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_ENB2_Cell_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_ENB1_Cell_ID() { set(reject); type=1;} - void select_id_ENB2_Cell_ID() { set(reject); type=2;} - void select_id_CriticalityDiagnostics() { set(ignore); type=3;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - ECGI& select_id_ENB1_Cell_ID() { return set(1); } - ECGI const* get_id_ENB1_Cell_ID() const { return get(1); } - ECGI& select_id_ENB2_Cell_ID() { return set(2); } - ECGI const* get_id_ENB2_Cell_ID() const { return get(2); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(3); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(3); } - bool is_unknown() const { return type == 4; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_ENB1_Cell_ID()); return true; - case 2: v(select_id_ENB2_Cell_ID()); return true; - case 3: v(select_id_CriticalityDiagnostics()); return true; - case 4: if(type != 4) {clear(); asn::base::set();} type = 4; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CriticalityDiagnostics)]; - char dummy2[sizeof(ECGI)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_ENB1_Cell_ID() { set(mandatory); type=1;} - void select_id_ENB2_Cell_ID() { set(mandatory); type=2;} - void select_id_CriticalityDiagnostics() { set(optional); type=3;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -MobilityChangeAcknowledge ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{MobilityChangeAcknowledge-IEs}}, - ... -} -*/ - -struct MobilityChangeAcknowledge : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "MobilityChangeAcknowledge";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -MobilityChangeFailure-IEs X2AP-PROTOCOL-IES ::= { - { ID id-ENB1-Cell-ID CRITICALITY ignore TYPE ECGI PRESENCE mandatory}| - { ID id-ENB2-Cell-ID CRITICALITY ignore TYPE ECGI PRESENCE mandatory}| - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| - { ID id-ENB2-Mobility-Parameters-Modification-Range CRITICALITY ignore TYPE MobilityParametersModificationRange PRESENCE optional}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, - ... -} -*/ - -struct MobilityChangeFailure_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_ENB1_Cell_ID() { set(id_ENB1_Cell_ID); type=1;} - void select_id_ENB2_Cell_ID() { set(id_ENB2_Cell_ID); type=2;} - void select_id_Cause() { set(id_Cause); type=3;} - void select_id_ENB2_Mobility_Parameters_Modification_Range() { set(id_ENB2_Mobility_Parameters_Modification_Range); type=4;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=5;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_ENB1_Cell_ID)) { type = 1; return true; } - else if(equal(id_ENB2_Cell_ID)) { type = 2; return true; } - else if(equal(id_Cause)) { type = 3; return true; } - else if(equal(id_ENB2_Mobility_Parameters_Modification_Range)) { type = 4; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_ENB1_Cell_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_ENB2_Cell_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_ENB2_Mobility_Parameters_Modification_Range);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_ENB1_Cell_ID() { set(ignore); type=1;} - void select_id_ENB2_Cell_ID() { set(ignore); type=2;} - void select_id_Cause() { set(ignore); type=3;} - void select_id_ENB2_Mobility_Parameters_Modification_Range() { set(ignore); type=4;} - void select_id_CriticalityDiagnostics() { set(ignore); type=5;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - ECGI& select_id_ENB1_Cell_ID() { return set(1); } - ECGI const* get_id_ENB1_Cell_ID() const { return get(1); } - ECGI& select_id_ENB2_Cell_ID() { return set(2); } - ECGI const* get_id_ENB2_Cell_ID() const { return get(2); } - Cause& select_id_Cause() { return set(3); } - Cause const* get_id_Cause() const { return get(3); } - MobilityParametersModificationRange& select_id_ENB2_Mobility_Parameters_Modification_Range() { return set(4); } - MobilityParametersModificationRange const* get_id_ENB2_Mobility_Parameters_Modification_Range() const { return get(4); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(5); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(5); } - bool is_unknown() const { return type == 6; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_ENB1_Cell_ID()); return true; - case 2: v(select_id_ENB2_Cell_ID()); return true; - case 3: v(select_id_Cause()); return true; - case 4: v(select_id_ENB2_Mobility_Parameters_Modification_Range()); return true; - case 5: v(select_id_CriticalityDiagnostics()); return true; - case 6: if(type != 6) {clear(); asn::base::set();} type = 6; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(CriticalityDiagnostics)]; - char dummy3[sizeof(ECGI)]; - char dummy4[sizeof(MobilityParametersModificationRange)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_ENB1_Cell_ID() { set(mandatory); type=1;} - void select_id_ENB2_Cell_ID() { set(mandatory); type=2;} - void select_id_Cause() { set(mandatory); type=3;} - void select_id_ENB2_Mobility_Parameters_Modification_Range() { set(optional); type=4;} - void select_id_CriticalityDiagnostics() { set(optional); type=5;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -MobilityChangeFailure ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{MobilityChangeFailure-IEs}}, - ... -} -*/ - -struct MobilityChangeFailure : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "MobilityChangeFailure";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -MobilityChangeRequest-IEs X2AP-PROTOCOL-IES ::= { - { ID id-ENB1-Cell-ID CRITICALITY reject TYPE ECGI PRESENCE mandatory}| - { ID id-ENB2-Cell-ID CRITICALITY reject TYPE ECGI PRESENCE mandatory}| - { ID id-ENB1-Mobility-Parameters CRITICALITY ignore TYPE MobilityParametersInformation PRESENCE optional}| - { ID id-ENB2-Proposed-Mobility-Parameters CRITICALITY reject TYPE MobilityParametersInformation PRESENCE mandatory}| - { ID id-Cause CRITICALITY reject TYPE Cause PRESENCE mandatory}, - ... -} -*/ - -struct MobilityChangeRequest_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_ENB1_Cell_ID() { set(id_ENB1_Cell_ID); type=1;} - void select_id_ENB2_Cell_ID() { set(id_ENB2_Cell_ID); type=2;} - void select_id_ENB1_Mobility_Parameters() { set(id_ENB1_Mobility_Parameters); type=3;} - void select_id_ENB2_Proposed_Mobility_Parameters() { set(id_ENB2_Proposed_Mobility_Parameters); type=4;} - void select_id_Cause() { set(id_Cause); type=5;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_ENB1_Cell_ID)) { type = 1; return true; } - else if(equal(id_ENB2_Cell_ID)) { type = 2; return true; } - else if(equal(id_ENB1_Mobility_Parameters)) { type = 3; return true; } - else if(equal(id_ENB2_Proposed_Mobility_Parameters)) { type = 4; return true; } - else if(equal(id_Cause)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_ENB1_Cell_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_ENB2_Cell_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_ENB1_Mobility_Parameters);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_ENB2_Proposed_Mobility_Parameters);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_ENB1_Cell_ID() { set(reject); type=1;} - void select_id_ENB2_Cell_ID() { set(reject); type=2;} - void select_id_ENB1_Mobility_Parameters() { set(ignore); type=3;} - void select_id_ENB2_Proposed_Mobility_Parameters() { set(reject); type=4;} - void select_id_Cause() { set(reject); type=5;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(reject)) { type = 4; return true; } - else if(equal(reject)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(reject);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(reject);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - ECGI& select_id_ENB1_Cell_ID() { return set(1); } - ECGI const* get_id_ENB1_Cell_ID() const { return get(1); } - ECGI& select_id_ENB2_Cell_ID() { return set(2); } - ECGI const* get_id_ENB2_Cell_ID() const { return get(2); } - MobilityParametersInformation& select_id_ENB1_Mobility_Parameters() { return set(3); } - MobilityParametersInformation const* get_id_ENB1_Mobility_Parameters() const { return get(3); } - MobilityParametersInformation& select_id_ENB2_Proposed_Mobility_Parameters() { return set(4); } - MobilityParametersInformation const* get_id_ENB2_Proposed_Mobility_Parameters() const { return get(4); } - Cause& select_id_Cause() { return set(5); } - Cause const* get_id_Cause() const { return get(5); } - bool is_unknown() const { return type == 6; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_ENB1_Cell_ID()); return true; - case 2: v(select_id_ENB2_Cell_ID()); return true; - case 3: v(select_id_ENB1_Mobility_Parameters()); return true; - case 4: v(select_id_ENB2_Proposed_Mobility_Parameters()); return true; - case 5: v(select_id_Cause()); return true; - case 6: if(type != 6) {clear(); asn::base::set();} type = 6; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(ECGI)]; - char dummy3[sizeof(MobilityParametersInformation)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_ENB1_Cell_ID() { set(mandatory); type=1;} - void select_id_ENB2_Cell_ID() { set(mandatory); type=2;} - void select_id_ENB1_Mobility_Parameters() { set(optional); type=3;} - void select_id_ENB2_Proposed_Mobility_Parameters() { set(mandatory); type=4;} - void select_id_Cause() { set(mandatory); type=5;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else if(equal(mandatory)) { type = 4; return true; } - else if(equal(mandatory)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(mandatory);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(mandatory);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -MobilityChangeRequest ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{MobilityChangeRequest-IEs}}, - ... -} -*/ - -struct MobilityChangeRequest : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "MobilityChangeRequest";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -PartialSuccessIndicator ::= ENUMERATED { - partial-success-allowed, -... -} -*/ - -struct PartialSuccessIndicator : asn::enumerated<1, 0, true> -{ - static constexpr const char* name() {return "PartialSuccessIndicator";} - using parent_t = asn::enumerated<1, 0, true>; - typedef enum { - partial_success_allowed - } index_t; - -}; - -/* -PrivateMessage-IEs X2AP-PRIVATE-IES ::= { - ... -} -*/ - -struct PrivateMessage_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PRIVATE_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PRIVATE_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PRIVATE_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -PrivateMessage ::= SEQUENCE { - privateIEs PrivateIE-Container {{PrivateMessage-IEs}}, - ... -} -*/ - -struct PrivateMessage : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "PrivateMessage";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct privateIEs_t : PrivateIE_Container - { - static constexpr const char* name() {return "privateIEs_t";} - using parent_t = PrivateIE_Container; - - }; - privateIEs_t& ref_privateIEs() {return privateIEs;} - privateIEs_t const& ref_privateIEs() const {return privateIEs;} - template void decode(V& v) - { - v(privateIEs); - - }; - template void encode(V& v) const - { - v(privateIEs); - - }; - void clear() - { - privateIEs.clear(); - - }; - private: - privateIEs_t privateIEs; - -}; -/* -RLFIndication-IEs X2AP-PROTOCOL-IES ::= { - { ID id-FailureCellPCI CRITICALITY ignore TYPE PCI PRESENCE mandatory}| - { ID id-Re-establishmentCellECGI CRITICALITY ignore TYPE ECGI PRESENCE mandatory}| - { ID id-FailureCellCRNTI CRITICALITY ignore TYPE CRNTI PRESENCE mandatory}| - { ID id-ShortMAC-I CRITICALITY ignore TYPE ShortMAC-I PRESENCE optional}| - { ID id-UE-RLF-Report-Container CRITICALITY ignore TYPE UE-RLF-Report-Container PRESENCE optional}| - { ID id-RRCConnSetupIndicator CRITICALITY reject TYPE RRCConnSetupIndicator PRESENCE optional}| - { ID id-RRCConnReestabIndicator CRITICALITY ignore TYPE RRCConnReestabIndicator PRESENCE optional}| - { ID id-UE-RLF-Report-Container-for-extended-bands CRITICALITY ignore TYPE UE-RLF-Report-Container-for-extended-bands PRESENCE optional}, - ... -} -*/ - -struct RLFIndication_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 9; } - void clear() {type = 0;} - void select_id_FailureCellPCI() { set(id_FailureCellPCI); type=1;} - void select_id_Re_establishmentCellECGI() { set(id_Re_establishmentCellECGI); type=2;} - void select_id_FailureCellCRNTI() { set(id_FailureCellCRNTI); type=3;} - void select_id_ShortMAC_I() { set(id_ShortMAC_I); type=4;} - void select_id_UE_RLF_Report_Container() { set(id_UE_RLF_Report_Container); type=5;} - void select_id_RRCConnSetupIndicator() { set(id_RRCConnSetupIndicator); type=6;} - void select_id_RRCConnReestabIndicator() { set(id_RRCConnReestabIndicator); type=7;} - void select_id_UE_RLF_Report_Container_for_extended_bands() { set(id_UE_RLF_Report_Container_for_extended_bands); type=8;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_FailureCellPCI)) { type = 1; return true; } - else if(equal(id_Re_establishmentCellECGI)) { type = 2; return true; } - else if(equal(id_FailureCellCRNTI)) { type = 3; return true; } - else if(equal(id_ShortMAC_I)) { type = 4; return true; } - else if(equal(id_UE_RLF_Report_Container)) { type = 5; return true; } - else if(equal(id_RRCConnSetupIndicator)) { type = 6; return true; } - else if(equal(id_RRCConnReestabIndicator)) { type = 7; return true; } - else if(equal(id_UE_RLF_Report_Container_for_extended_bands)) { type = 8; return true; } - else { type = 9; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_FailureCellPCI);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_Re_establishmentCellECGI);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_FailureCellCRNTI);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_ShortMAC_I);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_UE_RLF_Report_Container);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_RRCConnSetupIndicator);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(id_RRCConnReestabIndicator);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(id_UE_RLF_Report_Container_for_extended_bands);} return false; - case 9: type = 9; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 9; } - void clear() {type = 0;} - void select_id_FailureCellPCI() { set(ignore); type=1;} - void select_id_Re_establishmentCellECGI() { set(ignore); type=2;} - void select_id_FailureCellCRNTI() { set(ignore); type=3;} - void select_id_ShortMAC_I() { set(ignore); type=4;} - void select_id_UE_RLF_Report_Container() { set(ignore); type=5;} - void select_id_RRCConnSetupIndicator() { set(reject); type=6;} - void select_id_RRCConnReestabIndicator() { set(ignore); type=7;} - void select_id_UE_RLF_Report_Container_for_extended_bands() { set(ignore); type=8;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else if(equal(reject)) { type = 6; return true; } - else if(equal(ignore)) { type = 7; return true; } - else if(equal(ignore)) { type = 8; return true; } - else { type = 9; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(reject);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(ignore);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(ignore);} return false; - case 9: type = 9; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - PCI& select_id_FailureCellPCI() { return set(1); } - PCI const* get_id_FailureCellPCI() const { return get(1); } - ECGI& select_id_Re_establishmentCellECGI() { return set(2); } - ECGI const* get_id_Re_establishmentCellECGI() const { return get(2); } - CRNTI& select_id_FailureCellCRNTI() { return set(3); } - CRNTI const* get_id_FailureCellCRNTI() const { return get(3); } - ShortMAC_I& select_id_ShortMAC_I() { return set(4); } - ShortMAC_I const* get_id_ShortMAC_I() const { return get(4); } - UE_RLF_Report_Container& select_id_UE_RLF_Report_Container() { return set(5); } - UE_RLF_Report_Container const* get_id_UE_RLF_Report_Container() const { return get(5); } - RRCConnSetupIndicator& select_id_RRCConnSetupIndicator() { return set(6); } - RRCConnSetupIndicator const* get_id_RRCConnSetupIndicator() const { return get(6); } - RRCConnReestabIndicator& select_id_RRCConnReestabIndicator() { return set(7); } - RRCConnReestabIndicator const* get_id_RRCConnReestabIndicator() const { return get(7); } - UE_RLF_Report_Container_for_extended_bands& select_id_UE_RLF_Report_Container_for_extended_bands() { return set(8); } - UE_RLF_Report_Container_for_extended_bands const* get_id_UE_RLF_Report_Container_for_extended_bands() const { return get(8); } - bool is_unknown() const { return type == 9; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - case 7: var.destroy(); break; - case 8: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - v.template operator()(7); - v.template operator()(8); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_FailureCellPCI()); return true; - case 2: v(select_id_Re_establishmentCellECGI()); return true; - case 3: v(select_id_FailureCellCRNTI()); return true; - case 4: v(select_id_ShortMAC_I()); return true; - case 5: v(select_id_UE_RLF_Report_Container()); return true; - case 6: v(select_id_RRCConnSetupIndicator()); return true; - case 7: v(select_id_RRCConnReestabIndicator()); return true; - case 8: v(select_id_UE_RLF_Report_Container_for_extended_bands()); return true; - case 9: if(type != 9) {clear(); asn::base::set();} type = 9; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - case 7: v(var.as()); return true; - case 8: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CRNTI)]; - char dummy2[sizeof(ECGI)]; - char dummy3[sizeof(PCI)]; - char dummy4[sizeof(RRCConnReestabIndicator)]; - char dummy5[sizeof(RRCConnSetupIndicator)]; - char dummy6[sizeof(ShortMAC_I)]; - char dummy7[sizeof(UE_RLF_Report_Container)]; - char dummy8[sizeof(UE_RLF_Report_Container_for_extended_bands)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 9; } - void clear() {type = 0;} - void select_id_FailureCellPCI() { set(mandatory); type=1;} - void select_id_Re_establishmentCellECGI() { set(mandatory); type=2;} - void select_id_FailureCellCRNTI() { set(mandatory); type=3;} - void select_id_ShortMAC_I() { set(optional); type=4;} - void select_id_UE_RLF_Report_Container() { set(optional); type=5;} - void select_id_RRCConnSetupIndicator() { set(optional); type=6;} - void select_id_RRCConnReestabIndicator() { set(optional); type=7;} - void select_id_UE_RLF_Report_Container_for_extended_bands() { set(optional); type=8;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else if(equal(optional)) { type = 7; return true; } - else if(equal(optional)) { type = 8; return true; } - else { type = 9; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(optional);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(optional);} return false; - case 9: type = 9; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RLFIndication ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{RLFIndication-IEs}}, - ... -} -*/ - -struct RLFIndication : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "RLFIndication";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -RNL-Header-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct RNL_Header_Item_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RNL-Header ::= SEQUENCE { - source-GlobalENB-ID GlobalENB-ID, - target-GlobalENB-ID GlobalENB-ID OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {RNL-Header-Item-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct RNL_Header : asn::sequence<3, 0, true, 2> -{ - static constexpr const char* name() {return "RNL-Header";} - using parent_t = asn::sequence<3, 0, true, 2>; - struct source_GlobalENB_ID_t : GlobalENB_ID - { - static constexpr const char* name() {return "source_GlobalENB_ID_t";} - using parent_t = GlobalENB_ID; - - }; - source_GlobalENB_ID_t& ref_source_GlobalENB_ID() {return source_GlobalENB_ID;} - source_GlobalENB_ID_t const& ref_source_GlobalENB_ID() const {return source_GlobalENB_ID;} - struct target_GlobalENB_ID_t : GlobalENB_ID - { - static constexpr const char* name() {return "target_GlobalENB_ID_t";} - using parent_t = GlobalENB_ID; - static constexpr bool optional = true; - - }; - target_GlobalENB_ID_t& set_target_GlobalENB_ID() { target_GlobalENB_ID.setpresent(true); return target_GlobalENB_ID;} - target_GlobalENB_ID_t const* get_target_GlobalENB_ID() const {return target_GlobalENB_ID.is_valid() ? &target_GlobalENB_ID : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(source_GlobalENB_ID); - v(target_GlobalENB_ID); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(source_GlobalENB_ID); - v(target_GlobalENB_ID); - v(iE_Extensions); - - }; - void clear() - { - source_GlobalENB_ID.clear(); - target_GlobalENB_ID.clear(); - iE_Extensions.clear(); - - }; - private: - source_GlobalENB_ID_t source_GlobalENB_ID; - target_GlobalENB_ID_t target_GlobalENB_ID; - iE_Extensions_t iE_Extensions; - -}; -/* -RRCTransfer-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SgNB-UE-X2AP-ID CRITICALITY reject TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}| - { ID id-SplitSRB CRITICALITY reject TYPE SplitSRB PRESENCE optional}| - { ID id-UENRMeasurement CRITICALITY reject TYPE UENRMeasurement PRESENCE optional}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}, - ... -} -*/ - -struct RRCTransfer_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(id_SgNB_UE_X2AP_ID); type=2;} - void select_id_SplitSRB() { set(id_SplitSRB); type=3;} - void select_id_UENRMeasurement() { set(id_UENRMeasurement); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=5;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SgNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_SplitSRB)) { type = 3; return true; } - else if(equal(id_UENRMeasurement)) { type = 4; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SgNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_SplitSRB);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_UENRMeasurement);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(reject); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(reject); type=2;} - void select_id_SplitSRB() { set(reject); type=3;} - void select_id_UENRMeasurement() { set(reject); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(reject); type=5;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(reject)) { type = 3; return true; } - else if(equal(reject)) { type = 4; return true; } - else if(equal(reject)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(reject);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(reject);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(reject);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - SgNB_UE_X2AP_ID& select_id_SgNB_UE_X2AP_ID() { return set(2); } - SgNB_UE_X2AP_ID const* get_id_SgNB_UE_X2AP_ID() const { return get(2); } - SplitSRB& select_id_SplitSRB() { return set(3); } - SplitSRB const* get_id_SplitSRB() const { return get(3); } - UENRMeasurement& select_id_UENRMeasurement() { return set(4); } - UENRMeasurement const* get_id_UENRMeasurement() const { return get(4); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(5); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(5); } - bool is_unknown() const { return type == 6; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SgNB_UE_X2AP_ID()); return true; - case 3: v(select_id_SplitSRB()); return true; - case 4: v(select_id_UENRMeasurement()); return true; - case 5: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 6: if(type != 6) {clear(); asn::base::set();} type = 6; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(SgNB_UE_X2AP_ID)]; - char dummy2[sizeof(SplitSRB)]; - char dummy3[sizeof(UENRMeasurement)]; - char dummy4[sizeof(UE_X2AP_ID)]; - char dummy5[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_SplitSRB() { set(optional); type=3;} - void select_id_UENRMeasurement() { set(optional); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=5;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RRCTransfer ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{RRCTransfer-IEs}}, - ... -} -*/ - -struct RRCTransfer : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "RRCTransfer";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -ReportingPeriodicity ::= ENUMERATED { - one-thousand-ms, - two-thousand-ms, - five-thousand-ms, - ten-thousand-ms, -... -} -*/ - -struct ReportingPeriodicity : asn::enumerated<4, 0, true> -{ - static constexpr const char* name() {return "ReportingPeriodicity";} - using parent_t = asn::enumerated<4, 0, true>; - typedef enum { - one_thousand_ms - ,two_thousand_ms - ,five_thousand_ms - ,ten_thousand_ms - } index_t; - -}; - -/* -ResetRequest-IEs X2AP-PROTOCOL-IES ::= { - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}, - ... -} -*/ - -struct ResetRequest_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_Cause() { set(id_Cause); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_Cause)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_Cause() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - Cause& select_id_Cause() { return set(1); } - Cause const* get_id_Cause() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_Cause()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_Cause() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ResetRequest ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ResetRequest-IEs}}, - ... -} -*/ - -struct ResetRequest : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "ResetRequest";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -ResetResponse-IEs X2AP-PROTOCOL-IES ::= { - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, - ... -} -*/ - -struct ResetResponse_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_CriticalityDiagnostics)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_CriticalityDiagnostics() { set(ignore); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(1); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_CriticalityDiagnostics()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CriticalityDiagnostics)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_CriticalityDiagnostics() { set(optional); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ResetResponse ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ResetResponse-IEs}}, - ... -} -*/ - -struct ResetResponse : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "ResetResponse";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -ResourceStatusFailure-IEs X2AP-PROTOCOL-IES ::= { - { ID id-ENB1-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| - { ID id-ENB2-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| - { ID id-CompleteFailureCauseInformation-List CRITICALITY ignore TYPE CompleteFailureCauseInformation-List PRESENCE optional}, - ... -} -*/ - -struct ResourceStatusFailure_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_ENB1_Measurement_ID() { set(id_ENB1_Measurement_ID); type=1;} - void select_id_ENB2_Measurement_ID() { set(id_ENB2_Measurement_ID); type=2;} - void select_id_Cause() { set(id_Cause); type=3;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=4;} - void select_id_CompleteFailureCauseInformation_List() { set(id_CompleteFailureCauseInformation_List); type=5;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_ENB1_Measurement_ID)) { type = 1; return true; } - else if(equal(id_ENB2_Measurement_ID)) { type = 2; return true; } - else if(equal(id_Cause)) { type = 3; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 4; return true; } - else if(equal(id_CompleteFailureCauseInformation_List)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_ENB1_Measurement_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_ENB2_Measurement_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_CompleteFailureCauseInformation_List);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_ENB1_Measurement_ID() { set(reject); type=1;} - void select_id_ENB2_Measurement_ID() { set(reject); type=2;} - void select_id_Cause() { set(ignore); type=3;} - void select_id_CriticalityDiagnostics() { set(ignore); type=4;} - void select_id_CompleteFailureCauseInformation_List() { set(ignore); type=5;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - Measurement_ID& select_id_ENB1_Measurement_ID() { return set(1); } - Measurement_ID const* get_id_ENB1_Measurement_ID() const { return get(1); } - Measurement_ID& select_id_ENB2_Measurement_ID() { return set(2); } - Measurement_ID const* get_id_ENB2_Measurement_ID() const { return get(2); } - Cause& select_id_Cause() { return set(3); } - Cause const* get_id_Cause() const { return get(3); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(4); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(4); } - CompleteFailureCauseInformation_List& select_id_CompleteFailureCauseInformation_List() { return set(5); } - CompleteFailureCauseInformation_List const* get_id_CompleteFailureCauseInformation_List() const { return get(5); } - bool is_unknown() const { return type == 6; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_ENB1_Measurement_ID()); return true; - case 2: v(select_id_ENB2_Measurement_ID()); return true; - case 3: v(select_id_Cause()); return true; - case 4: v(select_id_CriticalityDiagnostics()); return true; - case 5: v(select_id_CompleteFailureCauseInformation_List()); return true; - case 6: if(type != 6) {clear(); asn::base::set();} type = 6; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(CompleteFailureCauseInformation_List)]; - char dummy3[sizeof(CriticalityDiagnostics)]; - char dummy4[sizeof(Measurement_ID)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_ENB1_Measurement_ID() { set(mandatory); type=1;} - void select_id_ENB2_Measurement_ID() { set(mandatory); type=2;} - void select_id_Cause() { set(mandatory); type=3;} - void select_id_CriticalityDiagnostics() { set(optional); type=4;} - void select_id_CompleteFailureCauseInformation_List() { set(optional); type=5;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ResourceStatusFailure ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ResourceStatusFailure-IEs}}, - ... -} -*/ - -struct ResourceStatusFailure : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "ResourceStatusFailure";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -ResourceStatusRequest-IEs X2AP-PROTOCOL-IES ::= { - { ID id-ENB1-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| - { ID id-ENB2-Measurement-ID CRITICALITY ignore TYPE Measurement-ID PRESENCE conditional}|-- The IE shall be present if the Registration Request IE is set to “Stop”, “Partial stop” or to “Add”-- - { ID id-Registration-Request CRITICALITY reject TYPE Registration-Request PRESENCE mandatory}| - { ID id-ReportCharacteristics CRITICALITY reject TYPE ReportCharacteristics PRESENCE optional}| - { ID id-CellToReport CRITICALITY ignore TYPE CellToReport-List PRESENCE mandatory}| - { ID id-ReportingPeriodicity CRITICALITY ignore TYPE ReportingPeriodicity PRESENCE optional}| - { ID id-PartialSuccessIndicator CRITICALITY ignore TYPE PartialSuccessIndicator PRESENCE optional}| - { ID id-ReportingPeriodicityRSRPMR CRITICALITY ignore TYPE ReportingPeriodicityRSRPMR PRESENCE optional}| - { ID id-ReportingPeriodicityCSIR CRITICALITY ignore TYPE ReportingPeriodicityCSIR PRESENCE optional}, - ... -} -*/ - -struct ResourceStatusRequest_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 10; } - void clear() {type = 0;} - void select_id_ENB1_Measurement_ID() { set(id_ENB1_Measurement_ID); type=1;} - void select_id_ENB2_Measurement_ID() { set(id_ENB2_Measurement_ID); type=2;} - void select_id_Registration_Request() { set(id_Registration_Request); type=3;} - void select_id_ReportCharacteristics() { set(id_ReportCharacteristics); type=4;} - void select_id_CellToReport() { set(id_CellToReport); type=5;} - void select_id_ReportingPeriodicity() { set(id_ReportingPeriodicity); type=6;} - void select_id_PartialSuccessIndicator() { set(id_PartialSuccessIndicator); type=7;} - void select_id_ReportingPeriodicityRSRPMR() { set(id_ReportingPeriodicityRSRPMR); type=8;} - void select_id_ReportingPeriodicityCSIR() { set(id_ReportingPeriodicityCSIR); type=9;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_ENB1_Measurement_ID)) { type = 1; return true; } - else if(equal(id_ENB2_Measurement_ID)) { type = 2; return true; } - else if(equal(id_Registration_Request)) { type = 3; return true; } - else if(equal(id_ReportCharacteristics)) { type = 4; return true; } - else if(equal(id_CellToReport)) { type = 5; return true; } - else if(equal(id_ReportingPeriodicity)) { type = 6; return true; } - else if(equal(id_PartialSuccessIndicator)) { type = 7; return true; } - else if(equal(id_ReportingPeriodicityRSRPMR)) { type = 8; return true; } - else if(equal(id_ReportingPeriodicityCSIR)) { type = 9; return true; } - else { type = 10; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_ENB1_Measurement_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_ENB2_Measurement_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_Registration_Request);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_ReportCharacteristics);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_CellToReport);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_ReportingPeriodicity);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(id_PartialSuccessIndicator);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(id_ReportingPeriodicityRSRPMR);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(id_ReportingPeriodicityCSIR);} return false; - case 10: type = 10; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 10; } - void clear() {type = 0;} - void select_id_ENB1_Measurement_ID() { set(reject); type=1;} - void select_id_ENB2_Measurement_ID() { set(ignore); type=2;} - void select_id_Registration_Request() { set(reject); type=3;} - void select_id_ReportCharacteristics() { set(reject); type=4;} - void select_id_CellToReport() { set(ignore); type=5;} - void select_id_ReportingPeriodicity() { set(ignore); type=6;} - void select_id_PartialSuccessIndicator() { set(ignore); type=7;} - void select_id_ReportingPeriodicityRSRPMR() { set(ignore); type=8;} - void select_id_ReportingPeriodicityCSIR() { set(ignore); type=9;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(reject)) { type = 3; return true; } - else if(equal(reject)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else if(equal(ignore)) { type = 6; return true; } - else if(equal(ignore)) { type = 7; return true; } - else if(equal(ignore)) { type = 8; return true; } - else if(equal(ignore)) { type = 9; return true; } - else { type = 10; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(reject);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(reject);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(ignore);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(ignore);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(ignore);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(ignore);} return false; - case 10: type = 10; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - Measurement_ID& select_id_ENB1_Measurement_ID() { return set(1); } - Measurement_ID const* get_id_ENB1_Measurement_ID() const { return get(1); } - Measurement_ID& select_id_ENB2_Measurement_ID() { return set(2); } - Measurement_ID const* get_id_ENB2_Measurement_ID() const { return get(2); } - Registration_Request& select_id_Registration_Request() { return set(3); } - Registration_Request const* get_id_Registration_Request() const { return get(3); } - ReportCharacteristics& select_id_ReportCharacteristics() { return set(4); } - ReportCharacteristics const* get_id_ReportCharacteristics() const { return get(4); } - CellToReport_List& select_id_CellToReport() { return set(5); } - CellToReport_List const* get_id_CellToReport() const { return get(5); } - ReportingPeriodicity& select_id_ReportingPeriodicity() { return set(6); } - ReportingPeriodicity const* get_id_ReportingPeriodicity() const { return get(6); } - PartialSuccessIndicator& select_id_PartialSuccessIndicator() { return set(7); } - PartialSuccessIndicator const* get_id_PartialSuccessIndicator() const { return get(7); } - ReportingPeriodicityRSRPMR& select_id_ReportingPeriodicityRSRPMR() { return set(8); } - ReportingPeriodicityRSRPMR const* get_id_ReportingPeriodicityRSRPMR() const { return get(8); } - ReportingPeriodicityCSIR& select_id_ReportingPeriodicityCSIR() { return set(9); } - ReportingPeriodicityCSIR const* get_id_ReportingPeriodicityCSIR() const { return get(9); } - bool is_unknown() const { return type == 10; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - case 7: var.destroy(); break; - case 8: var.destroy(); break; - case 9: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - v.template operator()(7); - v.template operator()(8); - v.template operator()(9); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_ENB1_Measurement_ID()); return true; - case 2: v(select_id_ENB2_Measurement_ID()); return true; - case 3: v(select_id_Registration_Request()); return true; - case 4: v(select_id_ReportCharacteristics()); return true; - case 5: v(select_id_CellToReport()); return true; - case 6: v(select_id_ReportingPeriodicity()); return true; - case 7: v(select_id_PartialSuccessIndicator()); return true; - case 8: v(select_id_ReportingPeriodicityRSRPMR()); return true; - case 9: v(select_id_ReportingPeriodicityCSIR()); return true; - case 10: if(type != 10) {clear(); asn::base::set();} type = 10; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - case 7: v(var.as()); return true; - case 8: v(var.as()); return true; - case 9: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CellToReport_List)]; - char dummy2[sizeof(Measurement_ID)]; - char dummy3[sizeof(PartialSuccessIndicator)]; - char dummy4[sizeof(Registration_Request)]; - char dummy5[sizeof(ReportCharacteristics)]; - char dummy6[sizeof(ReportingPeriodicity)]; - char dummy7[sizeof(ReportingPeriodicityCSIR)]; - char dummy8[sizeof(ReportingPeriodicityRSRPMR)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 10; } - void clear() {type = 0;} - void select_id_ENB1_Measurement_ID() { set(mandatory); type=1;} - void select_id_ENB2_Measurement_ID() { set(conditional); type=2;} - void select_id_Registration_Request() { set(mandatory); type=3;} - void select_id_ReportCharacteristics() { set(optional); type=4;} - void select_id_CellToReport() { set(mandatory); type=5;} - void select_id_ReportingPeriodicity() { set(optional); type=6;} - void select_id_PartialSuccessIndicator() { set(optional); type=7;} - void select_id_ReportingPeriodicityRSRPMR() { set(optional); type=8;} - void select_id_ReportingPeriodicityCSIR() { set(optional); type=9;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(conditional)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(mandatory)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else if(equal(optional)) { type = 7; return true; } - else if(equal(optional)) { type = 8; return true; } - else if(equal(optional)) { type = 9; return true; } - else { type = 10; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(conditional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(mandatory);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(optional);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(optional);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(optional);} return false; - case 10: type = 10; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ResourceStatusRequest ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ResourceStatusRequest-IEs}}, - ... -} -*/ - -struct ResourceStatusRequest : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "ResourceStatusRequest";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -ResourceStatusResponse-IEs X2AP-PROTOCOL-IES ::= { - { ID id-ENB1-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| - { ID id-ENB2-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| - { ID id-MeasurementInitiationResult-List CRITICALITY ignore TYPE MeasurementInitiationResult-List PRESENCE optional}, - ... -} -*/ - -struct ResourceStatusResponse_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_ENB1_Measurement_ID() { set(id_ENB1_Measurement_ID); type=1;} - void select_id_ENB2_Measurement_ID() { set(id_ENB2_Measurement_ID); type=2;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=3;} - void select_id_MeasurementInitiationResult_List() { set(id_MeasurementInitiationResult_List); type=4;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_ENB1_Measurement_ID)) { type = 1; return true; } - else if(equal(id_ENB2_Measurement_ID)) { type = 2; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 3; return true; } - else if(equal(id_MeasurementInitiationResult_List)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_ENB1_Measurement_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_ENB2_Measurement_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_MeasurementInitiationResult_List);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_ENB1_Measurement_ID() { set(reject); type=1;} - void select_id_ENB2_Measurement_ID() { set(reject); type=2;} - void select_id_CriticalityDiagnostics() { set(ignore); type=3;} - void select_id_MeasurementInitiationResult_List() { set(ignore); type=4;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - Measurement_ID& select_id_ENB1_Measurement_ID() { return set(1); } - Measurement_ID const* get_id_ENB1_Measurement_ID() const { return get(1); } - Measurement_ID& select_id_ENB2_Measurement_ID() { return set(2); } - Measurement_ID const* get_id_ENB2_Measurement_ID() const { return get(2); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(3); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(3); } - MeasurementInitiationResult_List& select_id_MeasurementInitiationResult_List() { return set(4); } - MeasurementInitiationResult_List const* get_id_MeasurementInitiationResult_List() const { return get(4); } - bool is_unknown() const { return type == 5; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_ENB1_Measurement_ID()); return true; - case 2: v(select_id_ENB2_Measurement_ID()); return true; - case 3: v(select_id_CriticalityDiagnostics()); return true; - case 4: v(select_id_MeasurementInitiationResult_List()); return true; - case 5: if(type != 5) {clear(); asn::base::set();} type = 5; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CriticalityDiagnostics)]; - char dummy2[sizeof(MeasurementInitiationResult_List)]; - char dummy3[sizeof(Measurement_ID)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_ENB1_Measurement_ID() { set(mandatory); type=1;} - void select_id_ENB2_Measurement_ID() { set(mandatory); type=2;} - void select_id_CriticalityDiagnostics() { set(optional); type=3;} - void select_id_MeasurementInitiationResult_List() { set(optional); type=4;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ResourceStatusResponse ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ResourceStatusResponse-IEs}}, - ... -} -*/ - -struct ResourceStatusResponse : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "ResourceStatusResponse";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -ResourceStatusUpdate-IEs X2AP-PROTOCOL-IES ::= { - { ID id-ENB1-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| - { ID id-ENB2-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| - { ID id-CellMeasurementResult CRITICALITY ignore TYPE CellMeasurementResult-List PRESENCE mandatory}, - ... -} -*/ - -struct ResourceStatusUpdate_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_ENB1_Measurement_ID() { set(id_ENB1_Measurement_ID); type=1;} - void select_id_ENB2_Measurement_ID() { set(id_ENB2_Measurement_ID); type=2;} - void select_id_CellMeasurementResult() { set(id_CellMeasurementResult); type=3;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_ENB1_Measurement_ID)) { type = 1; return true; } - else if(equal(id_ENB2_Measurement_ID)) { type = 2; return true; } - else if(equal(id_CellMeasurementResult)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_ENB1_Measurement_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_ENB2_Measurement_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_CellMeasurementResult);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_ENB1_Measurement_ID() { set(reject); type=1;} - void select_id_ENB2_Measurement_ID() { set(reject); type=2;} - void select_id_CellMeasurementResult() { set(ignore); type=3;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - Measurement_ID& select_id_ENB1_Measurement_ID() { return set(1); } - Measurement_ID const* get_id_ENB1_Measurement_ID() const { return get(1); } - Measurement_ID& select_id_ENB2_Measurement_ID() { return set(2); } - Measurement_ID const* get_id_ENB2_Measurement_ID() const { return get(2); } - CellMeasurementResult_List& select_id_CellMeasurementResult() { return set(3); } - CellMeasurementResult_List const* get_id_CellMeasurementResult() const { return get(3); } - bool is_unknown() const { return type == 4; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_ENB1_Measurement_ID()); return true; - case 2: v(select_id_ENB2_Measurement_ID()); return true; - case 3: v(select_id_CellMeasurementResult()); return true; - case 4: if(type != 4) {clear(); asn::base::set();} type = 4; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CellMeasurementResult_List)]; - char dummy2[sizeof(Measurement_ID)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_ENB1_Measurement_ID() { set(mandatory); type=1;} - void select_id_ENB2_Measurement_ID() { set(mandatory); type=2;} - void select_id_CellMeasurementResult() { set(mandatory); type=3;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ResourceStatusUpdate ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ResourceStatusUpdate-IEs}}, - ... -} -*/ - -struct ResourceStatusUpdate : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "ResourceStatusUpdate";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -ResponseInformationSeNBReconfComp-SuccessItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct ResponseInformationSeNBReconfComp_SuccessItemExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ResponseInformationSeNBReconfComp-SuccessItem ::= SEQUENCE { - meNBtoSeNBContainer MeNBtoSeNBContainer OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {ResponseInformationSeNBReconfComp-SuccessItemExtIEs} } OPTIONAL, - ... -} -*/ - -struct ResponseInformationSeNBReconfComp_SuccessItem : asn::sequence<2, 0, true, 2> -{ - static constexpr const char* name() {return "ResponseInformationSeNBReconfComp-SuccessItem";} - using parent_t = asn::sequence<2, 0, true, 2>; - struct meNBtoSeNBContainer_t : MeNBtoSeNBContainer - { - static constexpr const char* name() {return "meNBtoSeNBContainer_t";} - using parent_t = MeNBtoSeNBContainer; - static constexpr bool optional = true; - - }; - meNBtoSeNBContainer_t& set_meNBtoSeNBContainer() { meNBtoSeNBContainer.setpresent(true); return meNBtoSeNBContainer;} - meNBtoSeNBContainer_t const* get_meNBtoSeNBContainer() const {return meNBtoSeNBContainer.is_valid() ? &meNBtoSeNBContainer : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(meNBtoSeNBContainer); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(meNBtoSeNBContainer); - v(iE_Extensions); - - }; - void clear() - { - meNBtoSeNBContainer.clear(); - iE_Extensions.clear(); - - }; - private: - meNBtoSeNBContainer_t meNBtoSeNBContainer; - iE_Extensions_t iE_Extensions; - -}; -/* -ResponseInformationSeNBReconfComp-RejectByMeNBItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct ResponseInformationSeNBReconfComp_RejectByMeNBItemExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ResponseInformationSeNBReconfComp-RejectByMeNBItem ::= SEQUENCE { - cause Cause, - meNBtoSeNBContainer MeNBtoSeNBContainer OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {ResponseInformationSeNBReconfComp-RejectByMeNBItemExtIEs} } OPTIONAL, - ... -} -*/ - -struct ResponseInformationSeNBReconfComp_RejectByMeNBItem : asn::sequence<3, 0, true, 2> -{ - static constexpr const char* name() {return "ResponseInformationSeNBReconfComp-RejectByMeNBItem";} - using parent_t = asn::sequence<3, 0, true, 2>; - struct cause_t : Cause - { - static constexpr const char* name() {return "cause_t";} - using parent_t = Cause; - - }; - cause_t& ref_cause() {return cause;} - cause_t const& ref_cause() const {return cause;} - struct meNBtoSeNBContainer_t : MeNBtoSeNBContainer - { - static constexpr const char* name() {return "meNBtoSeNBContainer_t";} - using parent_t = MeNBtoSeNBContainer; - static constexpr bool optional = true; - - }; - meNBtoSeNBContainer_t& set_meNBtoSeNBContainer() { meNBtoSeNBContainer.setpresent(true); return meNBtoSeNBContainer;} - meNBtoSeNBContainer_t const* get_meNBtoSeNBContainer() const {return meNBtoSeNBContainer.is_valid() ? &meNBtoSeNBContainer : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(cause); - v(meNBtoSeNBContainer); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(cause); - v(meNBtoSeNBContainer); - v(iE_Extensions); - - }; - void clear() - { - cause.clear(); - meNBtoSeNBContainer.clear(); - iE_Extensions.clear(); - - }; - private: - cause_t cause; - meNBtoSeNBContainer_t meNBtoSeNBContainer; - iE_Extensions_t iE_Extensions; - -}; -/* -ResponseInformationSeNBReconfComp ::= CHOICE { - success ResponseInformationSeNBReconfComp-SuccessItem, - reject-by-MeNB ResponseInformationSeNBReconfComp-RejectByMeNBItem, - ... -} -*/ - -struct ResponseInformationSeNBReconfComp : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "ResponseInformationSeNBReconfComp";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~ResponseInformationSeNBReconfComp() {clear();} - struct success_t : ResponseInformationSeNBReconfComp_SuccessItem - { - static constexpr const char* name() {return "success_t";} - using parent_t = ResponseInformationSeNBReconfComp_SuccessItem; - - }; - struct reject_by_MeNB_t : ResponseInformationSeNBReconfComp_RejectByMeNBItem - { - static constexpr const char* name() {return "reject_by_MeNB_t";} - using parent_t = ResponseInformationSeNBReconfComp_RejectByMeNBItem; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - success_t& select_success() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - success_t const* get_success() const { if(get_index() == 1) { return &var.as();} return nullptr; } - reject_by_MeNB_t& select_reject_by_MeNB() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - reject_by_MeNB_t const* get_reject_by_MeNB() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(success_t)]; - char dummy2[sizeof(reject_by_MeNB_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -ResponseInformationSgNBReconfComp-SuccessItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct ResponseInformationSgNBReconfComp_SuccessItemExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ResponseInformationSgNBReconfComp-SuccessItem ::= SEQUENCE { - meNBtoSgNBContainer MeNBtoSgNBContainer OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {ResponseInformationSgNBReconfComp-SuccessItemExtIEs} } OPTIONAL, - ... -} -*/ - -struct ResponseInformationSgNBReconfComp_SuccessItem : asn::sequence<2, 0, true, 2> -{ - static constexpr const char* name() {return "ResponseInformationSgNBReconfComp-SuccessItem";} - using parent_t = asn::sequence<2, 0, true, 2>; - struct meNBtoSgNBContainer_t : MeNBtoSgNBContainer - { - static constexpr const char* name() {return "meNBtoSgNBContainer_t";} - using parent_t = MeNBtoSgNBContainer; - static constexpr bool optional = true; - - }; - meNBtoSgNBContainer_t& set_meNBtoSgNBContainer() { meNBtoSgNBContainer.setpresent(true); return meNBtoSgNBContainer;} - meNBtoSgNBContainer_t const* get_meNBtoSgNBContainer() const {return meNBtoSgNBContainer.is_valid() ? &meNBtoSgNBContainer : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(meNBtoSgNBContainer); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(meNBtoSgNBContainer); - v(iE_Extensions); - - }; - void clear() - { - meNBtoSgNBContainer.clear(); - iE_Extensions.clear(); - - }; - private: - meNBtoSgNBContainer_t meNBtoSgNBContainer; - iE_Extensions_t iE_Extensions; - -}; -/* -ResponseInformationSgNBReconfComp-RejectByMeNBItemExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct ResponseInformationSgNBReconfComp_RejectByMeNBItemExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -ResponseInformationSgNBReconfComp-RejectByMeNBItem ::= SEQUENCE { - cause Cause, - iE-Extensions ProtocolExtensionContainer { {ResponseInformationSgNBReconfComp-RejectByMeNBItemExtIEs} } OPTIONAL, - ... -} -*/ - -struct ResponseInformationSgNBReconfComp_RejectByMeNBItem : asn::sequence<2, 0, true, 1> -{ - static constexpr const char* name() {return "ResponseInformationSgNBReconfComp-RejectByMeNBItem";} - using parent_t = asn::sequence<2, 0, true, 1>; - struct cause_t : Cause - { - static constexpr const char* name() {return "cause_t";} - using parent_t = Cause; - - }; - cause_t& ref_cause() {return cause;} - cause_t const& ref_cause() const {return cause;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(cause); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(cause); - v(iE_Extensions); - - }; - void clear() - { - cause.clear(); - iE_Extensions.clear(); - - }; - private: - cause_t cause; - iE_Extensions_t iE_Extensions; - -}; -/* -ResponseInformationSgNBReconfComp ::= CHOICE { - success-SgNBReconfComp ResponseInformationSgNBReconfComp-SuccessItem, - reject-by-MeNB-SgNBReconfComp ResponseInformationSgNBReconfComp-RejectByMeNBItem, - ... -} -*/ - -struct ResponseInformationSgNBReconfComp : asn::choice<2, 0, true> -{ - static constexpr const char* name() {return "ResponseInformationSgNBReconfComp";} - using parent_t = asn::choice<2, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 3;} - void set_unknown() { set_index(3); } - ~ResponseInformationSgNBReconfComp() {clear();} - struct success_SgNBReconfComp_t : ResponseInformationSgNBReconfComp_SuccessItem - { - static constexpr const char* name() {return "success_SgNBReconfComp_t";} - using parent_t = ResponseInformationSgNBReconfComp_SuccessItem; - - }; - struct reject_by_MeNB_SgNBReconfComp_t : ResponseInformationSgNBReconfComp_RejectByMeNBItem - { - static constexpr const char* name() {return "reject_by_MeNB_SgNBReconfComp_t";} - using parent_t = ResponseInformationSgNBReconfComp_RejectByMeNBItem; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - success_SgNBReconfComp_t& select_success_SgNBReconfComp() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - success_SgNBReconfComp_t const* get_success_SgNBReconfComp() const { if(get_index() == 1) { return &var.as();} return nullptr; } - reject_by_MeNB_SgNBReconfComp_t& select_reject_by_MeNB_SgNBReconfComp() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - reject_by_MeNB_SgNBReconfComp_t const* get_reject_by_MeNB_SgNBReconfComp() const { if(get_index() == 2) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(success_SgNBReconfComp_t)]; - char dummy2[sizeof(reject_by_MeNB_SgNBReconfComp_t)]; - - }; - asn::variant var; - index_type index {0}; -}; -/* -RetrieveUEContextFailure-IEs X2AP-PROTOCOL-IES ::= { - { ID id-New-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-New-eNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, - ... -} -*/ - -struct RetrieveUEContextFailure_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_New_eNB_UE_X2AP_ID() { set(id_New_eNB_UE_X2AP_ID); type=1;} - void select_id_New_eNB_UE_X2AP_ID_Extension() { set(id_New_eNB_UE_X2AP_ID_Extension); type=2;} - void select_id_Cause() { set(id_Cause); type=3;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=4;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_New_eNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_New_eNB_UE_X2AP_ID_Extension)) { type = 2; return true; } - else if(equal(id_Cause)) { type = 3; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_New_eNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_New_eNB_UE_X2AP_ID_Extension);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_New_eNB_UE_X2AP_ID() { set(ignore); type=1;} - void select_id_New_eNB_UE_X2AP_ID_Extension() { set(ignore); type=2;} - void select_id_Cause() { set(ignore); type=3;} - void select_id_CriticalityDiagnostics() { set(ignore); type=4;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_New_eNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_New_eNB_UE_X2AP_ID() const { return get(1); } - UE_X2AP_ID_Extension& select_id_New_eNB_UE_X2AP_ID_Extension() { return set(2); } - UE_X2AP_ID_Extension const* get_id_New_eNB_UE_X2AP_ID_Extension() const { return get(2); } - Cause& select_id_Cause() { return set(3); } - Cause const* get_id_Cause() const { return get(3); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(4); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(4); } - bool is_unknown() const { return type == 5; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_New_eNB_UE_X2AP_ID()); return true; - case 2: v(select_id_New_eNB_UE_X2AP_ID_Extension()); return true; - case 3: v(select_id_Cause()); return true; - case 4: v(select_id_CriticalityDiagnostics()); return true; - case 5: if(type != 5) {clear(); asn::base::set();} type = 5; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(CriticalityDiagnostics)]; - char dummy3[sizeof(UE_X2AP_ID)]; - char dummy4[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_New_eNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_New_eNB_UE_X2AP_ID_Extension() { set(optional); type=2;} - void select_id_Cause() { set(mandatory); type=3;} - void select_id_CriticalityDiagnostics() { set(optional); type=4;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RetrieveUEContextFailure ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ RetrieveUEContextFailure-IEs}}, - ... -} -*/ - -struct RetrieveUEContextFailure : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "RetrieveUEContextFailure";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -RetrieveUEContextRequest-IEs X2AP-PROTOCOL-IES ::= { - { ID id-New-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-resumeID CRITICALITY reject TYPE ResumeID PRESENCE mandatory}| - { ID id-ShortMAC-I CRITICALITY reject TYPE ShortMAC-I PRESENCE mandatory}| - { ID id-NewEUTRANCellIdentifier CRITICALITY reject TYPE EUTRANCellIdentifier PRESENCE mandatory}| - {ID id-FailureCellCRNTI CRITICALITY reject TYPE CRNTI PRESENCE optional}| - {ID id-FailureCellPCI CRITICALITY reject TYPE PCI PRESENCE optional}, - ... -} -*/ - -struct RetrieveUEContextRequest_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 8; } - void clear() {type = 0;} - void select_id_New_eNB_UE_X2AP_ID() { set(id_New_eNB_UE_X2AP_ID); type=1;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(id_SeNB_UE_X2AP_ID_Extension); type=2;} - void select_id_resumeID() { set(id_resumeID); type=3;} - void select_id_ShortMAC_I() { set(id_ShortMAC_I); type=4;} - void select_id_NewEUTRANCellIdentifier() { set(id_NewEUTRANCellIdentifier); type=5;} - void select_id_FailureCellCRNTI() { set(id_FailureCellCRNTI); type=6;} - void select_id_FailureCellPCI() { set(id_FailureCellPCI); type=7;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_New_eNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SeNB_UE_X2AP_ID_Extension)) { type = 2; return true; } - else if(equal(id_resumeID)) { type = 3; return true; } - else if(equal(id_ShortMAC_I)) { type = 4; return true; } - else if(equal(id_NewEUTRANCellIdentifier)) { type = 5; return true; } - else if(equal(id_FailureCellCRNTI)) { type = 6; return true; } - else if(equal(id_FailureCellPCI)) { type = 7; return true; } - else { type = 8; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_New_eNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SeNB_UE_X2AP_ID_Extension);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_resumeID);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_ShortMAC_I);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_NewEUTRANCellIdentifier);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_FailureCellCRNTI);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(id_FailureCellPCI);} return false; - case 8: type = 8; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 8; } - void clear() {type = 0;} - void select_id_New_eNB_UE_X2AP_ID() { set(reject); type=1;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(reject); type=2;} - void select_id_resumeID() { set(reject); type=3;} - void select_id_ShortMAC_I() { set(reject); type=4;} - void select_id_NewEUTRANCellIdentifier() { set(reject); type=5;} - void select_id_FailureCellCRNTI() { set(reject); type=6;} - void select_id_FailureCellPCI() { set(reject); type=7;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(reject)) { type = 3; return true; } - else if(equal(reject)) { type = 4; return true; } - else if(equal(reject)) { type = 5; return true; } - else if(equal(reject)) { type = 6; return true; } - else if(equal(reject)) { type = 7; return true; } - else { type = 8; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(reject);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(reject);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(reject);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(reject);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(reject);} return false; - case 8: type = 8; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_New_eNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_New_eNB_UE_X2AP_ID() const { return get(1); } - UE_X2AP_ID_Extension& select_id_SeNB_UE_X2AP_ID_Extension() { return set(2); } - UE_X2AP_ID_Extension const* get_id_SeNB_UE_X2AP_ID_Extension() const { return get(2); } - ResumeID& select_id_resumeID() { return set(3); } - ResumeID const* get_id_resumeID() const { return get(3); } - ShortMAC_I& select_id_ShortMAC_I() { return set(4); } - ShortMAC_I const* get_id_ShortMAC_I() const { return get(4); } - EUTRANCellIdentifier& select_id_NewEUTRANCellIdentifier() { return set(5); } - EUTRANCellIdentifier const* get_id_NewEUTRANCellIdentifier() const { return get(5); } - CRNTI& select_id_FailureCellCRNTI() { return set(6); } - CRNTI const* get_id_FailureCellCRNTI() const { return get(6); } - PCI& select_id_FailureCellPCI() { return set(7); } - PCI const* get_id_FailureCellPCI() const { return get(7); } - bool is_unknown() const { return type == 8; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - case 7: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - v.template operator()(7); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_New_eNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SeNB_UE_X2AP_ID_Extension()); return true; - case 3: v(select_id_resumeID()); return true; - case 4: v(select_id_ShortMAC_I()); return true; - case 5: v(select_id_NewEUTRANCellIdentifier()); return true; - case 6: v(select_id_FailureCellCRNTI()); return true; - case 7: v(select_id_FailureCellPCI()); return true; - case 8: if(type != 8) {clear(); asn::base::set();} type = 8; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - case 7: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CRNTI)]; - char dummy2[sizeof(EUTRANCellIdentifier)]; - char dummy3[sizeof(PCI)]; - char dummy4[sizeof(ResumeID)]; - char dummy5[sizeof(ShortMAC_I)]; - char dummy6[sizeof(UE_X2AP_ID)]; - char dummy7[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 8; } - void clear() {type = 0;} - void select_id_New_eNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(optional); type=2;} - void select_id_resumeID() { set(mandatory); type=3;} - void select_id_ShortMAC_I() { set(mandatory); type=4;} - void select_id_NewEUTRANCellIdentifier() { set(mandatory); type=5;} - void select_id_FailureCellCRNTI() { set(optional); type=6;} - void select_id_FailureCellPCI() { set(optional); type=7;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(mandatory)) { type = 4; return true; } - else if(equal(mandatory)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else if(equal(optional)) { type = 7; return true; } - else { type = 8; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(mandatory);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(mandatory);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(optional);} return false; - case 8: type = 8; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RetrieveUEContextRequest ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ RetrieveUEContextRequest-IEs}}, - ... -} -*/ - -struct RetrieveUEContextRequest : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "RetrieveUEContextRequest";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -UE-ContextInformationRetrieve-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { -{ ID id-UESidelinkAggregateMaximumBitRate CRITICALITY ignore EXTENSION UESidelinkAggregateMaximumBitRate PRESENCE optional}, - ... -} -*/ - -struct UE_ContextInformationRetrieve_ExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_UESidelinkAggregateMaximumBitRate() { set(id_UESidelinkAggregateMaximumBitRate); type=1;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_UESidelinkAggregateMaximumBitRate)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_UESidelinkAggregateMaximumBitRate);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_UESidelinkAggregateMaximumBitRate() { set(ignore); type=1;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - UESidelinkAggregateMaximumBitRate& select_id_UESidelinkAggregateMaximumBitRate() { return set(1); } - UESidelinkAggregateMaximumBitRate const* get_id_UESidelinkAggregateMaximumBitRate() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_UESidelinkAggregateMaximumBitRate()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(UESidelinkAggregateMaximumBitRate)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_UESidelinkAggregateMaximumBitRate() { set(optional); type=1;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -UE-ContextInformationRetrieve ::= SEQUENCE { - mME-UE-S1AP-ID UE-S1AP-ID, - uESecurityCapabilities UESecurityCapabilities, - aS-SecurityInformation AS-SecurityInformation, - uEaggregateMaximumBitRate UEAggregateMaximumBitRate, - subscriberProfileIDforRFP SubscriberProfileIDforRFP OPTIONAL, - e-RABs-ToBeSetup-ListRetrieve E-RABs-ToBeSetup-ListRetrieve, - rRC-Context RRC-Context, - handoverRestrictionList HandoverRestrictionList OPTIONAL, - locationReportingInformation LocationReportingInformation OPTIONAL, - managBasedMDTallowed ManagementBasedMDTallowed OPTIONAL, - managBasedMDTPLMNList MDTPLMNList OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {UE-ContextInformationRetrieve-ExtIEs} } OPTIONAL, - ... -} -*/ - -struct UE_ContextInformationRetrieve : asn::sequence<12, 0, true, 6> -{ - static constexpr const char* name() {return "UE-ContextInformationRetrieve";} - using parent_t = asn::sequence<12, 0, true, 6>; - struct mME_UE_S1AP_ID_t : UE_S1AP_ID - { - static constexpr const char* name() {return "mME_UE_S1AP_ID_t";} - using parent_t = UE_S1AP_ID; - - }; - mME_UE_S1AP_ID_t& ref_mME_UE_S1AP_ID() {return mME_UE_S1AP_ID;} - mME_UE_S1AP_ID_t const& ref_mME_UE_S1AP_ID() const {return mME_UE_S1AP_ID;} - struct uESecurityCapabilities_t : UESecurityCapabilities - { - static constexpr const char* name() {return "uESecurityCapabilities_t";} - using parent_t = UESecurityCapabilities; - - }; - uESecurityCapabilities_t& ref_uESecurityCapabilities() {return uESecurityCapabilities;} - uESecurityCapabilities_t const& ref_uESecurityCapabilities() const {return uESecurityCapabilities;} - struct aS_SecurityInformation_t : AS_SecurityInformation - { - static constexpr const char* name() {return "aS_SecurityInformation_t";} - using parent_t = AS_SecurityInformation; - - }; - aS_SecurityInformation_t& ref_aS_SecurityInformation() {return aS_SecurityInformation;} - aS_SecurityInformation_t const& ref_aS_SecurityInformation() const {return aS_SecurityInformation;} - struct uEaggregateMaximumBitRate_t : UEAggregateMaximumBitRate - { - static constexpr const char* name() {return "uEaggregateMaximumBitRate_t";} - using parent_t = UEAggregateMaximumBitRate; - - }; - uEaggregateMaximumBitRate_t& ref_uEaggregateMaximumBitRate() {return uEaggregateMaximumBitRate;} - uEaggregateMaximumBitRate_t const& ref_uEaggregateMaximumBitRate() const {return uEaggregateMaximumBitRate;} - struct subscriberProfileIDforRFP_t : SubscriberProfileIDforRFP - { - static constexpr const char* name() {return "subscriberProfileIDforRFP_t";} - using parent_t = SubscriberProfileIDforRFP; - static constexpr bool optional = true; - - }; - subscriberProfileIDforRFP_t& set_subscriberProfileIDforRFP() { subscriberProfileIDforRFP.setpresent(true); return subscriberProfileIDforRFP;} - subscriberProfileIDforRFP_t const* get_subscriberProfileIDforRFP() const {return subscriberProfileIDforRFP.is_valid() ? &subscriberProfileIDforRFP : nullptr;} - struct e_RABs_ToBeSetup_ListRetrieve_t : E_RABs_ToBeSetup_ListRetrieve - { - static constexpr const char* name() {return "e_RABs_ToBeSetup_ListRetrieve_t";} - using parent_t = E_RABs_ToBeSetup_ListRetrieve; - - }; - e_RABs_ToBeSetup_ListRetrieve_t& ref_e_RABs_ToBeSetup_ListRetrieve() {return e_RABs_ToBeSetup_ListRetrieve;} - e_RABs_ToBeSetup_ListRetrieve_t const& ref_e_RABs_ToBeSetup_ListRetrieve() const {return e_RABs_ToBeSetup_ListRetrieve;} - struct rRC_Context_t : RRC_Context - { - static constexpr const char* name() {return "rRC_Context_t";} - using parent_t = RRC_Context; - - }; - rRC_Context_t& ref_rRC_Context() {return rRC_Context;} - rRC_Context_t const& ref_rRC_Context() const {return rRC_Context;} - struct handoverRestrictionList_t : HandoverRestrictionList - { - static constexpr const char* name() {return "handoverRestrictionList_t";} - using parent_t = HandoverRestrictionList; - static constexpr bool optional = true; - - }; - handoverRestrictionList_t& set_handoverRestrictionList() { handoverRestrictionList.setpresent(true); return handoverRestrictionList;} - handoverRestrictionList_t const* get_handoverRestrictionList() const {return handoverRestrictionList.is_valid() ? &handoverRestrictionList : nullptr;} - struct locationReportingInformation_t : LocationReportingInformation - { - static constexpr const char* name() {return "locationReportingInformation_t";} - using parent_t = LocationReportingInformation; - static constexpr bool optional = true; - - }; - locationReportingInformation_t& set_locationReportingInformation() { locationReportingInformation.setpresent(true); return locationReportingInformation;} - locationReportingInformation_t const* get_locationReportingInformation() const {return locationReportingInformation.is_valid() ? &locationReportingInformation : nullptr;} - struct managBasedMDTallowed_t : ManagementBasedMDTallowed - { - static constexpr const char* name() {return "managBasedMDTallowed_t";} - using parent_t = ManagementBasedMDTallowed; - static constexpr bool optional = true; - - }; - managBasedMDTallowed_t& set_managBasedMDTallowed() { managBasedMDTallowed.setpresent(true); return managBasedMDTallowed;} - managBasedMDTallowed_t const* get_managBasedMDTallowed() const {return managBasedMDTallowed.is_valid() ? &managBasedMDTallowed : nullptr;} - struct managBasedMDTPLMNList_t : MDTPLMNList - { - static constexpr const char* name() {return "managBasedMDTPLMNList_t";} - using parent_t = MDTPLMNList; - static constexpr bool optional = true; - - }; - managBasedMDTPLMNList_t& set_managBasedMDTPLMNList() { managBasedMDTPLMNList.setpresent(true); return managBasedMDTPLMNList;} - managBasedMDTPLMNList_t const* get_managBasedMDTPLMNList() const {return managBasedMDTPLMNList.is_valid() ? &managBasedMDTPLMNList : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(mME_UE_S1AP_ID); - v(uESecurityCapabilities); - v(aS_SecurityInformation); - v(uEaggregateMaximumBitRate); - v(subscriberProfileIDforRFP); - v(e_RABs_ToBeSetup_ListRetrieve); - v(rRC_Context); - v(handoverRestrictionList); - v(locationReportingInformation); - v(managBasedMDTallowed); - v(managBasedMDTPLMNList); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(mME_UE_S1AP_ID); - v(uESecurityCapabilities); - v(aS_SecurityInformation); - v(uEaggregateMaximumBitRate); - v(subscriberProfileIDforRFP); - v(e_RABs_ToBeSetup_ListRetrieve); - v(rRC_Context); - v(handoverRestrictionList); - v(locationReportingInformation); - v(managBasedMDTallowed); - v(managBasedMDTPLMNList); - v(iE_Extensions); - - }; - void clear() - { - mME_UE_S1AP_ID.clear(); - uESecurityCapabilities.clear(); - aS_SecurityInformation.clear(); - uEaggregateMaximumBitRate.clear(); - subscriberProfileIDforRFP.clear(); - e_RABs_ToBeSetup_ListRetrieve.clear(); - rRC_Context.clear(); - handoverRestrictionList.clear(); - locationReportingInformation.clear(); - managBasedMDTallowed.clear(); - managBasedMDTPLMNList.clear(); - iE_Extensions.clear(); - - }; - private: - mME_UE_S1AP_ID_t mME_UE_S1AP_ID; - uESecurityCapabilities_t uESecurityCapabilities; - aS_SecurityInformation_t aS_SecurityInformation; - uEaggregateMaximumBitRate_t uEaggregateMaximumBitRate; - subscriberProfileIDforRFP_t subscriberProfileIDforRFP; - e_RABs_ToBeSetup_ListRetrieve_t e_RABs_ToBeSetup_ListRetrieve; - rRC_Context_t rRC_Context; - handoverRestrictionList_t handoverRestrictionList; - locationReportingInformation_t locationReportingInformation; - managBasedMDTallowed_t managBasedMDTallowed; - managBasedMDTPLMNList_t managBasedMDTPLMNList; - iE_Extensions_t iE_Extensions; - -}; -/* -RetrieveUEContextResponse-IEs X2AP-PROTOCOL-IES ::= { - { ID id-New-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-New-eNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-Old-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-Old-eNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-GUMMEI-ID CRITICALITY reject TYPE GUMMEI PRESENCE mandatory}| - { ID id-UE-ContextInformationRetrieve CRITICALITY reject TYPE UE-ContextInformationRetrieve PRESENCE mandatory}| - { ID id-TraceActivation CRITICALITY ignore TYPE TraceActivation PRESENCE optional}| - { ID id-SRVCCOperationPossible CRITICALITY ignore TYPE SRVCCOperationPossible PRESENCE optional}| - { ID id-Masked-IMEISV CRITICALITY ignore TYPE Masked-IMEISV PRESENCE optional}| - { ID id-ExpectedUEBehaviour CRITICALITY ignore TYPE ExpectedUEBehaviour PRESENCE optional}| - { ID id-ProSeAuthorized CRITICALITY ignore TYPE ProSeAuthorized PRESENCE optional}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| - { ID id-V2XServicesAuthorized CRITICALITY ignore TYPE V2XServicesAuthorized PRESENCE optional}| - { ID id-AerialUEsubscriptionInformation CRITICALITY ignore TYPE AerialUEsubscriptionInformation PRESENCE optional}| - { ID id-Subscription-Based-UE-DifferentiationInfo CRITICALITY ignore TYPE Subscription-Based-UE-DifferentiationInfo PRESENCE optional}, - ... -} -*/ - -struct RetrieveUEContextResponse_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 16; } - void clear() {type = 0;} - void select_id_New_eNB_UE_X2AP_ID() { set(id_New_eNB_UE_X2AP_ID); type=1;} - void select_id_New_eNB_UE_X2AP_ID_Extension() { set(id_New_eNB_UE_X2AP_ID_Extension); type=2;} - void select_id_Old_eNB_UE_X2AP_ID() { set(id_Old_eNB_UE_X2AP_ID); type=3;} - void select_id_Old_eNB_UE_X2AP_ID_Extension() { set(id_Old_eNB_UE_X2AP_ID_Extension); type=4;} - void select_id_GUMMEI_ID() { set(id_GUMMEI_ID); type=5;} - void select_id_UE_ContextInformationRetrieve() { set(id_UE_ContextInformationRetrieve); type=6;} - void select_id_TraceActivation() { set(id_TraceActivation); type=7;} - void select_id_SRVCCOperationPossible() { set(id_SRVCCOperationPossible); type=8;} - void select_id_Masked_IMEISV() { set(id_Masked_IMEISV); type=9;} - void select_id_ExpectedUEBehaviour() { set(id_ExpectedUEBehaviour); type=10;} - void select_id_ProSeAuthorized() { set(id_ProSeAuthorized); type=11;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=12;} - void select_id_V2XServicesAuthorized() { set(id_V2XServicesAuthorized); type=13;} - void select_id_AerialUEsubscriptionInformation() { set(id_AerialUEsubscriptionInformation); type=14;} - void select_id_Subscription_Based_UE_DifferentiationInfo() { set(id_Subscription_Based_UE_DifferentiationInfo); type=15;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_New_eNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_New_eNB_UE_X2AP_ID_Extension)) { type = 2; return true; } - else if(equal(id_Old_eNB_UE_X2AP_ID)) { type = 3; return true; } - else if(equal(id_Old_eNB_UE_X2AP_ID_Extension)) { type = 4; return true; } - else if(equal(id_GUMMEI_ID)) { type = 5; return true; } - else if(equal(id_UE_ContextInformationRetrieve)) { type = 6; return true; } - else if(equal(id_TraceActivation)) { type = 7; return true; } - else if(equal(id_SRVCCOperationPossible)) { type = 8; return true; } - else if(equal(id_Masked_IMEISV)) { type = 9; return true; } - else if(equal(id_ExpectedUEBehaviour)) { type = 10; return true; } - else if(equal(id_ProSeAuthorized)) { type = 11; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 12; return true; } - else if(equal(id_V2XServicesAuthorized)) { type = 13; return true; } - else if(equal(id_AerialUEsubscriptionInformation)) { type = 14; return true; } - else if(equal(id_Subscription_Based_UE_DifferentiationInfo)) { type = 15; return true; } - else { type = 16; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_New_eNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_New_eNB_UE_X2AP_ID_Extension);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_Old_eNB_UE_X2AP_ID);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_Old_eNB_UE_X2AP_ID_Extension);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_GUMMEI_ID);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_UE_ContextInformationRetrieve);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(id_TraceActivation);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(id_SRVCCOperationPossible);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(id_Masked_IMEISV);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(id_ExpectedUEBehaviour);} return false; - case 11: type = 11; if(v(ref_nested())) { return equal(id_ProSeAuthorized);} return false; - case 12: type = 12; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 13: type = 13; if(v(ref_nested())) { return equal(id_V2XServicesAuthorized);} return false; - case 14: type = 14; if(v(ref_nested())) { return equal(id_AerialUEsubscriptionInformation);} return false; - case 15: type = 15; if(v(ref_nested())) { return equal(id_Subscription_Based_UE_DifferentiationInfo);} return false; - case 16: type = 16; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 16; } - void clear() {type = 0;} - void select_id_New_eNB_UE_X2AP_ID() { set(ignore); type=1;} - void select_id_New_eNB_UE_X2AP_ID_Extension() { set(ignore); type=2;} - void select_id_Old_eNB_UE_X2AP_ID() { set(ignore); type=3;} - void select_id_Old_eNB_UE_X2AP_ID_Extension() { set(ignore); type=4;} - void select_id_GUMMEI_ID() { set(reject); type=5;} - void select_id_UE_ContextInformationRetrieve() { set(reject); type=6;} - void select_id_TraceActivation() { set(ignore); type=7;} - void select_id_SRVCCOperationPossible() { set(ignore); type=8;} - void select_id_Masked_IMEISV() { set(ignore); type=9;} - void select_id_ExpectedUEBehaviour() { set(ignore); type=10;} - void select_id_ProSeAuthorized() { set(ignore); type=11;} - void select_id_CriticalityDiagnostics() { set(ignore); type=12;} - void select_id_V2XServicesAuthorized() { set(ignore); type=13;} - void select_id_AerialUEsubscriptionInformation() { set(ignore); type=14;} - void select_id_Subscription_Based_UE_DifferentiationInfo() { set(ignore); type=15;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(reject)) { type = 5; return true; } - else if(equal(reject)) { type = 6; return true; } - else if(equal(ignore)) { type = 7; return true; } - else if(equal(ignore)) { type = 8; return true; } - else if(equal(ignore)) { type = 9; return true; } - else if(equal(ignore)) { type = 10; return true; } - else if(equal(ignore)) { type = 11; return true; } - else if(equal(ignore)) { type = 12; return true; } - else if(equal(ignore)) { type = 13; return true; } - else if(equal(ignore)) { type = 14; return true; } - else if(equal(ignore)) { type = 15; return true; } - else { type = 16; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(reject);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(reject);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(ignore);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(ignore);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(ignore);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(ignore);} return false; - case 11: type = 11; if(v(ref_nested())) { return equal(ignore);} return false; - case 12: type = 12; if(v(ref_nested())) { return equal(ignore);} return false; - case 13: type = 13; if(v(ref_nested())) { return equal(ignore);} return false; - case 14: type = 14; if(v(ref_nested())) { return equal(ignore);} return false; - case 15: type = 15; if(v(ref_nested())) { return equal(ignore);} return false; - case 16: type = 16; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_New_eNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_New_eNB_UE_X2AP_ID() const { return get(1); } - UE_X2AP_ID_Extension& select_id_New_eNB_UE_X2AP_ID_Extension() { return set(2); } - UE_X2AP_ID_Extension const* get_id_New_eNB_UE_X2AP_ID_Extension() const { return get(2); } - UE_X2AP_ID& select_id_Old_eNB_UE_X2AP_ID() { return set(3); } - UE_X2AP_ID const* get_id_Old_eNB_UE_X2AP_ID() const { return get(3); } - UE_X2AP_ID_Extension& select_id_Old_eNB_UE_X2AP_ID_Extension() { return set(4); } - UE_X2AP_ID_Extension const* get_id_Old_eNB_UE_X2AP_ID_Extension() const { return get(4); } - GUMMEI& select_id_GUMMEI_ID() { return set(5); } - GUMMEI const* get_id_GUMMEI_ID() const { return get(5); } - UE_ContextInformationRetrieve& select_id_UE_ContextInformationRetrieve() { return set(6); } - UE_ContextInformationRetrieve const* get_id_UE_ContextInformationRetrieve() const { return get(6); } - TraceActivation& select_id_TraceActivation() { return set(7); } - TraceActivation const* get_id_TraceActivation() const { return get(7); } - SRVCCOperationPossible& select_id_SRVCCOperationPossible() { return set(8); } - SRVCCOperationPossible const* get_id_SRVCCOperationPossible() const { return get(8); } - Masked_IMEISV& select_id_Masked_IMEISV() { return set(9); } - Masked_IMEISV const* get_id_Masked_IMEISV() const { return get(9); } - ExpectedUEBehaviour& select_id_ExpectedUEBehaviour() { return set(10); } - ExpectedUEBehaviour const* get_id_ExpectedUEBehaviour() const { return get(10); } - ProSeAuthorized& select_id_ProSeAuthorized() { return set(11); } - ProSeAuthorized const* get_id_ProSeAuthorized() const { return get(11); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(12); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(12); } - V2XServicesAuthorized& select_id_V2XServicesAuthorized() { return set(13); } - V2XServicesAuthorized const* get_id_V2XServicesAuthorized() const { return get(13); } - AerialUEsubscriptionInformation& select_id_AerialUEsubscriptionInformation() { return set(14); } - AerialUEsubscriptionInformation const* get_id_AerialUEsubscriptionInformation() const { return get(14); } - Subscription_Based_UE_DifferentiationInfo& select_id_Subscription_Based_UE_DifferentiationInfo() { return set(15); } - Subscription_Based_UE_DifferentiationInfo const* get_id_Subscription_Based_UE_DifferentiationInfo() const { return get(15); } - bool is_unknown() const { return type == 16; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - case 7: var.destroy(); break; - case 8: var.destroy(); break; - case 9: var.destroy(); break; - case 10: var.destroy(); break; - case 11: var.destroy(); break; - case 12: var.destroy(); break; - case 13: var.destroy(); break; - case 14: var.destroy(); break; - case 15: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - v.template operator()(7); - v.template operator()(8); - v.template operator()(9); - v.template operator()(10); - v.template operator()(11); - v.template operator()(12); - v.template operator()(13); - v.template operator()(14); - v.template operator()(15); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_New_eNB_UE_X2AP_ID()); return true; - case 2: v(select_id_New_eNB_UE_X2AP_ID_Extension()); return true; - case 3: v(select_id_Old_eNB_UE_X2AP_ID()); return true; - case 4: v(select_id_Old_eNB_UE_X2AP_ID_Extension()); return true; - case 5: v(select_id_GUMMEI_ID()); return true; - case 6: v(select_id_UE_ContextInformationRetrieve()); return true; - case 7: v(select_id_TraceActivation()); return true; - case 8: v(select_id_SRVCCOperationPossible()); return true; - case 9: v(select_id_Masked_IMEISV()); return true; - case 10: v(select_id_ExpectedUEBehaviour()); return true; - case 11: v(select_id_ProSeAuthorized()); return true; - case 12: v(select_id_CriticalityDiagnostics()); return true; - case 13: v(select_id_V2XServicesAuthorized()); return true; - case 14: v(select_id_AerialUEsubscriptionInformation()); return true; - case 15: v(select_id_Subscription_Based_UE_DifferentiationInfo()); return true; - case 16: if(type != 16) {clear(); asn::base::set();} type = 16; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - case 7: v(var.as()); return true; - case 8: v(var.as()); return true; - case 9: v(var.as()); return true; - case 10: v(var.as()); return true; - case 11: v(var.as()); return true; - case 12: v(var.as()); return true; - case 13: v(var.as()); return true; - case 14: v(var.as()); return true; - case 15: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(AerialUEsubscriptionInformation)]; - char dummy2[sizeof(CriticalityDiagnostics)]; - char dummy3[sizeof(ExpectedUEBehaviour)]; - char dummy4[sizeof(GUMMEI)]; - char dummy5[sizeof(Masked_IMEISV)]; - char dummy6[sizeof(ProSeAuthorized)]; - char dummy7[sizeof(SRVCCOperationPossible)]; - char dummy8[sizeof(Subscription_Based_UE_DifferentiationInfo)]; - char dummy9[sizeof(TraceActivation)]; - char dummy10[sizeof(UE_ContextInformationRetrieve)]; - char dummy11[sizeof(UE_X2AP_ID)]; - char dummy12[sizeof(UE_X2AP_ID_Extension)]; - char dummy13[sizeof(V2XServicesAuthorized)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 16; } - void clear() {type = 0;} - void select_id_New_eNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_New_eNB_UE_X2AP_ID_Extension() { set(optional); type=2;} - void select_id_Old_eNB_UE_X2AP_ID() { set(mandatory); type=3;} - void select_id_Old_eNB_UE_X2AP_ID_Extension() { set(optional); type=4;} - void select_id_GUMMEI_ID() { set(mandatory); type=5;} - void select_id_UE_ContextInformationRetrieve() { set(mandatory); type=6;} - void select_id_TraceActivation() { set(optional); type=7;} - void select_id_SRVCCOperationPossible() { set(optional); type=8;} - void select_id_Masked_IMEISV() { set(optional); type=9;} - void select_id_ExpectedUEBehaviour() { set(optional); type=10;} - void select_id_ProSeAuthorized() { set(optional); type=11;} - void select_id_CriticalityDiagnostics() { set(optional); type=12;} - void select_id_V2XServicesAuthorized() { set(optional); type=13;} - void select_id_AerialUEsubscriptionInformation() { set(optional); type=14;} - void select_id_Subscription_Based_UE_DifferentiationInfo() { set(optional); type=15;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(mandatory)) { type = 5; return true; } - else if(equal(mandatory)) { type = 6; return true; } - else if(equal(optional)) { type = 7; return true; } - else if(equal(optional)) { type = 8; return true; } - else if(equal(optional)) { type = 9; return true; } - else if(equal(optional)) { type = 10; return true; } - else if(equal(optional)) { type = 11; return true; } - else if(equal(optional)) { type = 12; return true; } - else if(equal(optional)) { type = 13; return true; } - else if(equal(optional)) { type = 14; return true; } - else if(equal(optional)) { type = 15; return true; } - else { type = 16; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(mandatory);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(mandatory);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(optional);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(optional);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(optional);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(optional);} return false; - case 11: type = 11; if(v(ref_nested())) { return equal(optional);} return false; - case 12: type = 12; if(v(ref_nested())) { return equal(optional);} return false; - case 13: type = 13; if(v(ref_nested())) { return equal(optional);} return false; - case 14: type = 14; if(v(ref_nested())) { return equal(optional);} return false; - case 15: type = 15; if(v(ref_nested())) { return equal(optional);} return false; - case 16: type = 16; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -RetrieveUEContextResponse ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ RetrieveUEContextResponse-IEs}}, - ... -} -*/ - -struct RetrieveUEContextResponse : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "RetrieveUEContextResponse";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SNStatusTransfer-IEs X2AP-PROTOCOL-IES ::= { - { ID id-Old-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-New-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-E-RABs-SubjectToStatusTransfer-List CRITICALITY ignore TYPE E-RABs-SubjectToStatusTransfer-List PRESENCE mandatory}| - { ID id-Old-eNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-New-eNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-SgNB-UE-X2AP-ID CRITICALITY ignore TYPE SgNB-UE-X2AP-ID PRESENCE optional}, - ... -} -*/ - -struct SNStatusTransfer_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_Old_eNB_UE_X2AP_ID() { set(id_Old_eNB_UE_X2AP_ID); type=1;} - void select_id_New_eNB_UE_X2AP_ID() { set(id_New_eNB_UE_X2AP_ID); type=2;} - void select_id_E_RABs_SubjectToStatusTransfer_List() { set(id_E_RABs_SubjectToStatusTransfer_List); type=3;} - void select_id_Old_eNB_UE_X2AP_ID_Extension() { set(id_Old_eNB_UE_X2AP_ID_Extension); type=4;} - void select_id_New_eNB_UE_X2AP_ID_Extension() { set(id_New_eNB_UE_X2AP_ID_Extension); type=5;} - void select_id_SgNB_UE_X2AP_ID() { set(id_SgNB_UE_X2AP_ID); type=6;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_Old_eNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_New_eNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_E_RABs_SubjectToStatusTransfer_List)) { type = 3; return true; } - else if(equal(id_Old_eNB_UE_X2AP_ID_Extension)) { type = 4; return true; } - else if(equal(id_New_eNB_UE_X2AP_ID_Extension)) { type = 5; return true; } - else if(equal(id_SgNB_UE_X2AP_ID)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_Old_eNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_New_eNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_E_RABs_SubjectToStatusTransfer_List);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_Old_eNB_UE_X2AP_ID_Extension);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_New_eNB_UE_X2AP_ID_Extension);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_SgNB_UE_X2AP_ID);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_Old_eNB_UE_X2AP_ID() { set(reject); type=1;} - void select_id_New_eNB_UE_X2AP_ID() { set(reject); type=2;} - void select_id_E_RABs_SubjectToStatusTransfer_List() { set(ignore); type=3;} - void select_id_Old_eNB_UE_X2AP_ID_Extension() { set(reject); type=4;} - void select_id_New_eNB_UE_X2AP_ID_Extension() { set(reject); type=5;} - void select_id_SgNB_UE_X2AP_ID() { set(ignore); type=6;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(reject)) { type = 4; return true; } - else if(equal(reject)) { type = 5; return true; } - else if(equal(ignore)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(reject);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(reject);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(ignore);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_Old_eNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_Old_eNB_UE_X2AP_ID() const { return get(1); } - UE_X2AP_ID& select_id_New_eNB_UE_X2AP_ID() { return set(2); } - UE_X2AP_ID const* get_id_New_eNB_UE_X2AP_ID() const { return get(2); } - E_RABs_SubjectToStatusTransfer_List& select_id_E_RABs_SubjectToStatusTransfer_List() { return set(3); } - E_RABs_SubjectToStatusTransfer_List const* get_id_E_RABs_SubjectToStatusTransfer_List() const { return get(3); } - UE_X2AP_ID_Extension& select_id_Old_eNB_UE_X2AP_ID_Extension() { return set(4); } - UE_X2AP_ID_Extension const* get_id_Old_eNB_UE_X2AP_ID_Extension() const { return get(4); } - UE_X2AP_ID_Extension& select_id_New_eNB_UE_X2AP_ID_Extension() { return set(5); } - UE_X2AP_ID_Extension const* get_id_New_eNB_UE_X2AP_ID_Extension() const { return get(5); } - SgNB_UE_X2AP_ID& select_id_SgNB_UE_X2AP_ID() { return set(6); } - SgNB_UE_X2AP_ID const* get_id_SgNB_UE_X2AP_ID() const { return get(6); } - bool is_unknown() const { return type == 7; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_Old_eNB_UE_X2AP_ID()); return true; - case 2: v(select_id_New_eNB_UE_X2AP_ID()); return true; - case 3: v(select_id_E_RABs_SubjectToStatusTransfer_List()); return true; - case 4: v(select_id_Old_eNB_UE_X2AP_ID_Extension()); return true; - case 5: v(select_id_New_eNB_UE_X2AP_ID_Extension()); return true; - case 6: v(select_id_SgNB_UE_X2AP_ID()); return true; - case 7: if(type != 7) {clear(); asn::base::set();} type = 7; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_SubjectToStatusTransfer_List)]; - char dummy2[sizeof(SgNB_UE_X2AP_ID)]; - char dummy3[sizeof(UE_X2AP_ID)]; - char dummy4[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_Old_eNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_New_eNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_E_RABs_SubjectToStatusTransfer_List() { set(mandatory); type=3;} - void select_id_Old_eNB_UE_X2AP_ID_Extension() { set(optional); type=4;} - void select_id_New_eNB_UE_X2AP_ID_Extension() { set(optional); type=5;} - void select_id_SgNB_UE_X2AP_ID() { set(optional); type=6;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SNStatusTransfer ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SNStatusTransfer-IEs}}, - ... -} -*/ - -struct SNStatusTransfer : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SNStatusTransfer";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SeNBAdditionRequest-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-UE-SecurityCapabilities CRITICALITY reject TYPE UESecurityCapabilities PRESENCE conditional}| - -- This IE shall be present if the Bearer Option IE is set to the value “SCG bearer” -- - { ID id-SeNBSecurityKey CRITICALITY reject TYPE SeNBSecurityKey PRESENCE conditional}| - -- This IE shall be present if the Bearer Option IE is set to the value “SCG bearer” -- - { ID id-SeNBUEAggregateMaximumBitRate CRITICALITY reject TYPE UEAggregateMaximumBitRate PRESENCE mandatory}| - { ID id-ServingPLMN CRITICALITY ignore TYPE PLMN-Identity PRESENCE optional}| - { ID id-E-RABs-ToBeAdded-List CRITICALITY reject TYPE E-RABs-ToBeAdded-List PRESENCE mandatory}| - { ID id-MeNBtoSeNBContainer CRITICALITY reject TYPE MeNBtoSeNBContainer PRESENCE mandatory}| - { ID id-CSGMembershipStatus CRITICALITY reject TYPE CSGMembershipStatus PRESENCE optional}| - { ID id-SeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE optional}| - { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-ExpectedUEBehaviour CRITICALITY ignore TYPE ExpectedUEBehaviour PRESENCE optional}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}, - ... -} -*/ - -struct SeNBAdditionRequest_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 13; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_UE_SecurityCapabilities() { set(id_UE_SecurityCapabilities); type=2;} - void select_id_SeNBSecurityKey() { set(id_SeNBSecurityKey); type=3;} - void select_id_SeNBUEAggregateMaximumBitRate() { set(id_SeNBUEAggregateMaximumBitRate); type=4;} - void select_id_ServingPLMN() { set(id_ServingPLMN); type=5;} - void select_id_E_RABs_ToBeAdded_List() { set(id_E_RABs_ToBeAdded_List); type=6;} - void select_id_MeNBtoSeNBContainer() { set(id_MeNBtoSeNBContainer); type=7;} - void select_id_CSGMembershipStatus() { set(id_CSGMembershipStatus); type=8;} - void select_id_SeNB_UE_X2AP_ID() { set(id_SeNB_UE_X2AP_ID); type=9;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(id_SeNB_UE_X2AP_ID_Extension); type=10;} - void select_id_ExpectedUEBehaviour() { set(id_ExpectedUEBehaviour); type=11;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=12;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_UE_SecurityCapabilities)) { type = 2; return true; } - else if(equal(id_SeNBSecurityKey)) { type = 3; return true; } - else if(equal(id_SeNBUEAggregateMaximumBitRate)) { type = 4; return true; } - else if(equal(id_ServingPLMN)) { type = 5; return true; } - else if(equal(id_E_RABs_ToBeAdded_List)) { type = 6; return true; } - else if(equal(id_MeNBtoSeNBContainer)) { type = 7; return true; } - else if(equal(id_CSGMembershipStatus)) { type = 8; return true; } - else if(equal(id_SeNB_UE_X2AP_ID)) { type = 9; return true; } - else if(equal(id_SeNB_UE_X2AP_ID_Extension)) { type = 10; return true; } - else if(equal(id_ExpectedUEBehaviour)) { type = 11; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 12; return true; } - else { type = 13; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_UE_SecurityCapabilities);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_SeNBSecurityKey);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_SeNBUEAggregateMaximumBitRate);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_ServingPLMN);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_E_RABs_ToBeAdded_List);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(id_MeNBtoSeNBContainer);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(id_CSGMembershipStatus);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(id_SeNB_UE_X2AP_ID);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(id_SeNB_UE_X2AP_ID_Extension);} return false; - case 11: type = 11; if(v(ref_nested())) { return equal(id_ExpectedUEBehaviour);} return false; - case 12: type = 12; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 13: type = 13; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 13; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(reject); type=1;} - void select_id_UE_SecurityCapabilities() { set(reject); type=2;} - void select_id_SeNBSecurityKey() { set(reject); type=3;} - void select_id_SeNBUEAggregateMaximumBitRate() { set(reject); type=4;} - void select_id_ServingPLMN() { set(ignore); type=5;} - void select_id_E_RABs_ToBeAdded_List() { set(reject); type=6;} - void select_id_MeNBtoSeNBContainer() { set(reject); type=7;} - void select_id_CSGMembershipStatus() { set(reject); type=8;} - void select_id_SeNB_UE_X2AP_ID() { set(reject); type=9;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(reject); type=10;} - void select_id_ExpectedUEBehaviour() { set(ignore); type=11;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(reject); type=12;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(reject)) { type = 3; return true; } - else if(equal(reject)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else if(equal(reject)) { type = 6; return true; } - else if(equal(reject)) { type = 7; return true; } - else if(equal(reject)) { type = 8; return true; } - else if(equal(reject)) { type = 9; return true; } - else if(equal(reject)) { type = 10; return true; } - else if(equal(ignore)) { type = 11; return true; } - else if(equal(reject)) { type = 12; return true; } - else { type = 13; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(reject);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(reject);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(reject);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(reject);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(reject);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(reject);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(reject);} return false; - case 11: type = 11; if(v(ref_nested())) { return equal(ignore);} return false; - case 12: type = 12; if(v(ref_nested())) { return equal(reject);} return false; - case 13: type = 13; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - UESecurityCapabilities& select_id_UE_SecurityCapabilities() { return set(2); } - UESecurityCapabilities const* get_id_UE_SecurityCapabilities() const { return get(2); } - SeNBSecurityKey& select_id_SeNBSecurityKey() { return set(3); } - SeNBSecurityKey const* get_id_SeNBSecurityKey() const { return get(3); } - UEAggregateMaximumBitRate& select_id_SeNBUEAggregateMaximumBitRate() { return set(4); } - UEAggregateMaximumBitRate const* get_id_SeNBUEAggregateMaximumBitRate() const { return get(4); } - PLMN_Identity& select_id_ServingPLMN() { return set(5); } - PLMN_Identity const* get_id_ServingPLMN() const { return get(5); } - E_RABs_ToBeAdded_List& select_id_E_RABs_ToBeAdded_List() { return set(6); } - E_RABs_ToBeAdded_List const* get_id_E_RABs_ToBeAdded_List() const { return get(6); } - MeNBtoSeNBContainer& select_id_MeNBtoSeNBContainer() { return set(7); } - MeNBtoSeNBContainer const* get_id_MeNBtoSeNBContainer() const { return get(7); } - CSGMembershipStatus& select_id_CSGMembershipStatus() { return set(8); } - CSGMembershipStatus const* get_id_CSGMembershipStatus() const { return get(8); } - UE_X2AP_ID& select_id_SeNB_UE_X2AP_ID() { return set(9); } - UE_X2AP_ID const* get_id_SeNB_UE_X2AP_ID() const { return get(9); } - UE_X2AP_ID_Extension& select_id_SeNB_UE_X2AP_ID_Extension() { return set(10); } - UE_X2AP_ID_Extension const* get_id_SeNB_UE_X2AP_ID_Extension() const { return get(10); } - ExpectedUEBehaviour& select_id_ExpectedUEBehaviour() { return set(11); } - ExpectedUEBehaviour const* get_id_ExpectedUEBehaviour() const { return get(11); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(12); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(12); } - bool is_unknown() const { return type == 13; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - case 7: var.destroy(); break; - case 8: var.destroy(); break; - case 9: var.destroy(); break; - case 10: var.destroy(); break; - case 11: var.destroy(); break; - case 12: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - v.template operator()(7); - v.template operator()(8); - v.template operator()(9); - v.template operator()(10); - v.template operator()(11); - v.template operator()(12); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_UE_SecurityCapabilities()); return true; - case 3: v(select_id_SeNBSecurityKey()); return true; - case 4: v(select_id_SeNBUEAggregateMaximumBitRate()); return true; - case 5: v(select_id_ServingPLMN()); return true; - case 6: v(select_id_E_RABs_ToBeAdded_List()); return true; - case 7: v(select_id_MeNBtoSeNBContainer()); return true; - case 8: v(select_id_CSGMembershipStatus()); return true; - case 9: v(select_id_SeNB_UE_X2AP_ID()); return true; - case 10: v(select_id_SeNB_UE_X2AP_ID_Extension()); return true; - case 11: v(select_id_ExpectedUEBehaviour()); return true; - case 12: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 13: if(type != 13) {clear(); asn::base::set();} type = 13; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - case 7: v(var.as()); return true; - case 8: v(var.as()); return true; - case 9: v(var.as()); return true; - case 10: v(var.as()); return true; - case 11: v(var.as()); return true; - case 12: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CSGMembershipStatus)]; - char dummy2[sizeof(E_RABs_ToBeAdded_List)]; - char dummy3[sizeof(ExpectedUEBehaviour)]; - char dummy4[sizeof(MeNBtoSeNBContainer)]; - char dummy5[sizeof(PLMN_Identity)]; - char dummy6[sizeof(SeNBSecurityKey)]; - char dummy7[sizeof(UEAggregateMaximumBitRate)]; - char dummy8[sizeof(UESecurityCapabilities)]; - char dummy9[sizeof(UE_X2AP_ID)]; - char dummy10[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 13; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_UE_SecurityCapabilities() { set(conditional); type=2;} - void select_id_SeNBSecurityKey() { set(conditional); type=3;} - void select_id_SeNBUEAggregateMaximumBitRate() { set(mandatory); type=4;} - void select_id_ServingPLMN() { set(optional); type=5;} - void select_id_E_RABs_ToBeAdded_List() { set(mandatory); type=6;} - void select_id_MeNBtoSeNBContainer() { set(mandatory); type=7;} - void select_id_CSGMembershipStatus() { set(optional); type=8;} - void select_id_SeNB_UE_X2AP_ID() { set(optional); type=9;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(optional); type=10;} - void select_id_ExpectedUEBehaviour() { set(optional); type=11;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=12;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(conditional)) { type = 2; return true; } - else if(equal(conditional)) { type = 3; return true; } - else if(equal(mandatory)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else if(equal(mandatory)) { type = 6; return true; } - else if(equal(mandatory)) { type = 7; return true; } - else if(equal(optional)) { type = 8; return true; } - else if(equal(optional)) { type = 9; return true; } - else if(equal(optional)) { type = 10; return true; } - else if(equal(optional)) { type = 11; return true; } - else if(equal(optional)) { type = 12; return true; } - else { type = 13; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(conditional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(conditional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(mandatory);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(mandatory);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(mandatory);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(optional);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(optional);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(optional);} return false; - case 11: type = 11; if(v(ref_nested())) { return equal(optional);} return false; - case 12: type = 12; if(v(ref_nested())) { return equal(optional);} return false; - case 13: type = 13; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SeNBAdditionRequest ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SeNBAdditionRequest-IEs}}, - ... -} -*/ - -struct SeNBAdditionRequest : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SeNBAdditionRequest";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SeNBAdditionRequestAcknowledge-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-E-RABs-Admitted-ToBeAdded-List CRITICALITY ignore TYPE E-RABs-Admitted-ToBeAdded-List PRESENCE mandatory}| - { ID id-E-RABs-NotAdmitted-List CRITICALITY ignore TYPE E-RAB-List PRESENCE optional}| - { ID id-SeNBtoMeNBContainer CRITICALITY reject TYPE SeNBtoMeNBContainer PRESENCE mandatory}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| - { ID id-GW-TransportLayerAddress CRITICALITY ignore TYPE TransportLayerAddress PRESENCE optional}| - { ID id-SIPTO-L-GW-TransportLayerAddress CRITICALITY ignore TYPE TransportLayerAddress PRESENCE optional}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-Tunnel-Information-for-BBF CRITICALITY ignore TYPE TunnelInformation PRESENCE optional}, - ... -} -*/ - -struct SeNBAdditionRequestAcknowledge_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 12; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(id_SeNB_UE_X2AP_ID); type=2;} - void select_id_E_RABs_Admitted_ToBeAdded_List() { set(id_E_RABs_Admitted_ToBeAdded_List); type=3;} - void select_id_E_RABs_NotAdmitted_List() { set(id_E_RABs_NotAdmitted_List); type=4;} - void select_id_SeNBtoMeNBContainer() { set(id_SeNBtoMeNBContainer); type=5;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=6;} - void select_id_GW_TransportLayerAddress() { set(id_GW_TransportLayerAddress); type=7;} - void select_id_SIPTO_L_GW_TransportLayerAddress() { set(id_SIPTO_L_GW_TransportLayerAddress); type=8;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=9;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(id_SeNB_UE_X2AP_ID_Extension); type=10;} - void select_id_Tunnel_Information_for_BBF() { set(id_Tunnel_Information_for_BBF); type=11;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SeNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_E_RABs_Admitted_ToBeAdded_List)) { type = 3; return true; } - else if(equal(id_E_RABs_NotAdmitted_List)) { type = 4; return true; } - else if(equal(id_SeNBtoMeNBContainer)) { type = 5; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 6; return true; } - else if(equal(id_GW_TransportLayerAddress)) { type = 7; return true; } - else if(equal(id_SIPTO_L_GW_TransportLayerAddress)) { type = 8; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 9; return true; } - else if(equal(id_SeNB_UE_X2AP_ID_Extension)) { type = 10; return true; } - else if(equal(id_Tunnel_Information_for_BBF)) { type = 11; return true; } - else { type = 12; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SeNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_E_RABs_Admitted_ToBeAdded_List);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_E_RABs_NotAdmitted_List);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_SeNBtoMeNBContainer);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(id_GW_TransportLayerAddress);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(id_SIPTO_L_GW_TransportLayerAddress);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(id_SeNB_UE_X2AP_ID_Extension);} return false; - case 11: type = 11; if(v(ref_nested())) { return equal(id_Tunnel_Information_for_BBF);} return false; - case 12: type = 12; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 12; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(reject); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(reject); type=2;} - void select_id_E_RABs_Admitted_ToBeAdded_List() { set(ignore); type=3;} - void select_id_E_RABs_NotAdmitted_List() { set(ignore); type=4;} - void select_id_SeNBtoMeNBContainer() { set(reject); type=5;} - void select_id_CriticalityDiagnostics() { set(ignore); type=6;} - void select_id_GW_TransportLayerAddress() { set(ignore); type=7;} - void select_id_SIPTO_L_GW_TransportLayerAddress() { set(ignore); type=8;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(reject); type=9;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(reject); type=10;} - void select_id_Tunnel_Information_for_BBF() { set(ignore); type=11;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(reject)) { type = 5; return true; } - else if(equal(ignore)) { type = 6; return true; } - else if(equal(ignore)) { type = 7; return true; } - else if(equal(ignore)) { type = 8; return true; } - else if(equal(reject)) { type = 9; return true; } - else if(equal(reject)) { type = 10; return true; } - else if(equal(ignore)) { type = 11; return true; } - else { type = 12; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(reject);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(ignore);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(ignore);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(ignore);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(reject);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(reject);} return false; - case 11: type = 11; if(v(ref_nested())) { return equal(ignore);} return false; - case 12: type = 12; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - UE_X2AP_ID& select_id_SeNB_UE_X2AP_ID() { return set(2); } - UE_X2AP_ID const* get_id_SeNB_UE_X2AP_ID() const { return get(2); } - E_RABs_Admitted_ToBeAdded_List& select_id_E_RABs_Admitted_ToBeAdded_List() { return set(3); } - E_RABs_Admitted_ToBeAdded_List const* get_id_E_RABs_Admitted_ToBeAdded_List() const { return get(3); } - E_RAB_List& select_id_E_RABs_NotAdmitted_List() { return set(4); } - E_RAB_List const* get_id_E_RABs_NotAdmitted_List() const { return get(4); } - SeNBtoMeNBContainer& select_id_SeNBtoMeNBContainer() { return set(5); } - SeNBtoMeNBContainer const* get_id_SeNBtoMeNBContainer() const { return get(5); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(6); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(6); } - TransportLayerAddress& select_id_GW_TransportLayerAddress() { return set(7); } - TransportLayerAddress const* get_id_GW_TransportLayerAddress() const { return get(7); } - TransportLayerAddress& select_id_SIPTO_L_GW_TransportLayerAddress() { return set(8); } - TransportLayerAddress const* get_id_SIPTO_L_GW_TransportLayerAddress() const { return get(8); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(9); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(9); } - UE_X2AP_ID_Extension& select_id_SeNB_UE_X2AP_ID_Extension() { return set(10); } - UE_X2AP_ID_Extension const* get_id_SeNB_UE_X2AP_ID_Extension() const { return get(10); } - TunnelInformation& select_id_Tunnel_Information_for_BBF() { return set(11); } - TunnelInformation const* get_id_Tunnel_Information_for_BBF() const { return get(11); } - bool is_unknown() const { return type == 12; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - case 7: var.destroy(); break; - case 8: var.destroy(); break; - case 9: var.destroy(); break; - case 10: var.destroy(); break; - case 11: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - v.template operator()(7); - v.template operator()(8); - v.template operator()(9); - v.template operator()(10); - v.template operator()(11); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SeNB_UE_X2AP_ID()); return true; - case 3: v(select_id_E_RABs_Admitted_ToBeAdded_List()); return true; - case 4: v(select_id_E_RABs_NotAdmitted_List()); return true; - case 5: v(select_id_SeNBtoMeNBContainer()); return true; - case 6: v(select_id_CriticalityDiagnostics()); return true; - case 7: v(select_id_GW_TransportLayerAddress()); return true; - case 8: v(select_id_SIPTO_L_GW_TransportLayerAddress()); return true; - case 9: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 10: v(select_id_SeNB_UE_X2AP_ID_Extension()); return true; - case 11: v(select_id_Tunnel_Information_for_BBF()); return true; - case 12: if(type != 12) {clear(); asn::base::set();} type = 12; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - case 7: v(var.as()); return true; - case 8: v(var.as()); return true; - case 9: v(var.as()); return true; - case 10: v(var.as()); return true; - case 11: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CriticalityDiagnostics)]; - char dummy2[sizeof(E_RAB_List)]; - char dummy3[sizeof(E_RABs_Admitted_ToBeAdded_List)]; - char dummy4[sizeof(SeNBtoMeNBContainer)]; - char dummy5[sizeof(TransportLayerAddress)]; - char dummy6[sizeof(TunnelInformation)]; - char dummy7[sizeof(UE_X2AP_ID)]; - char dummy8[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 12; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_E_RABs_Admitted_ToBeAdded_List() { set(mandatory); type=3;} - void select_id_E_RABs_NotAdmitted_List() { set(optional); type=4;} - void select_id_SeNBtoMeNBContainer() { set(mandatory); type=5;} - void select_id_CriticalityDiagnostics() { set(optional); type=6;} - void select_id_GW_TransportLayerAddress() { set(optional); type=7;} - void select_id_SIPTO_L_GW_TransportLayerAddress() { set(optional); type=8;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=9;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(optional); type=10;} - void select_id_Tunnel_Information_for_BBF() { set(optional); type=11;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(mandatory)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else if(equal(optional)) { type = 7; return true; } - else if(equal(optional)) { type = 8; return true; } - else if(equal(optional)) { type = 9; return true; } - else if(equal(optional)) { type = 10; return true; } - else if(equal(optional)) { type = 11; return true; } - else { type = 12; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(mandatory);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(optional);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(optional);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(optional);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(optional);} return false; - case 11: type = 11; if(v(ref_nested())) { return equal(optional);} return false; - case 12: type = 12; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SeNBAdditionRequestAcknowledge ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SeNBAdditionRequestAcknowledge-IEs}}, - ... -} -*/ - -struct SeNBAdditionRequestAcknowledge : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SeNBAdditionRequestAcknowledge";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SeNBAdditionRequestReject-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}, - ... -} -*/ - -struct SeNBAdditionRequestReject_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(id_SeNB_UE_X2AP_ID); type=2;} - void select_id_Cause() { set(id_Cause); type=3;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=5;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(id_SeNB_UE_X2AP_ID_Extension); type=6;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SeNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_Cause)) { type = 3; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 4; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 5; return true; } - else if(equal(id_SeNB_UE_X2AP_ID_Extension)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SeNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_SeNB_UE_X2AP_ID_Extension);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(reject); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(reject); type=2;} - void select_id_Cause() { set(ignore); type=3;} - void select_id_CriticalityDiagnostics() { set(ignore); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(reject); type=5;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(reject); type=6;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(reject)) { type = 5; return true; } - else if(equal(reject)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(reject);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(reject);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - UE_X2AP_ID& select_id_SeNB_UE_X2AP_ID() { return set(2); } - UE_X2AP_ID const* get_id_SeNB_UE_X2AP_ID() const { return get(2); } - Cause& select_id_Cause() { return set(3); } - Cause const* get_id_Cause() const { return get(3); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(4); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(4); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(5); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(5); } - UE_X2AP_ID_Extension& select_id_SeNB_UE_X2AP_ID_Extension() { return set(6); } - UE_X2AP_ID_Extension const* get_id_SeNB_UE_X2AP_ID_Extension() const { return get(6); } - bool is_unknown() const { return type == 7; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SeNB_UE_X2AP_ID()); return true; - case 3: v(select_id_Cause()); return true; - case 4: v(select_id_CriticalityDiagnostics()); return true; - case 5: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 6: v(select_id_SeNB_UE_X2AP_ID_Extension()); return true; - case 7: if(type != 7) {clear(); asn::base::set();} type = 7; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(CriticalityDiagnostics)]; - char dummy3[sizeof(UE_X2AP_ID)]; - char dummy4[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_Cause() { set(mandatory); type=3;} - void select_id_CriticalityDiagnostics() { set(optional); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=5;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(optional); type=6;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SeNBAdditionRequestReject ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SeNBAdditionRequestReject-IEs}}, - ... -} -*/ - -struct SeNBAdditionRequestReject : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SeNBAdditionRequestReject";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SeNBCounterCheckRequest-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-E-RABs-SubjectToCounterCheck-List CRITICALITY ignore TYPE E-RABs-SubjectToCounterCheck-List PRESENCE mandatory}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}, - ... -} -*/ - -struct SeNBCounterCheckRequest_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(id_SeNB_UE_X2AP_ID); type=2;} - void select_id_E_RABs_SubjectToCounterCheck_List() { set(id_E_RABs_SubjectToCounterCheck_List); type=3;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=4;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(id_SeNB_UE_X2AP_ID_Extension); type=5;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SeNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_E_RABs_SubjectToCounterCheck_List)) { type = 3; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 4; return true; } - else if(equal(id_SeNB_UE_X2AP_ID_Extension)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SeNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_E_RABs_SubjectToCounterCheck_List);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_SeNB_UE_X2AP_ID_Extension);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(reject); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(reject); type=2;} - void select_id_E_RABs_SubjectToCounterCheck_List() { set(ignore); type=3;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(ignore); type=4;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(ignore); type=5;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - UE_X2AP_ID& select_id_SeNB_UE_X2AP_ID() { return set(2); } - UE_X2AP_ID const* get_id_SeNB_UE_X2AP_ID() const { return get(2); } - E_RABs_SubjectToCounterCheck_List& select_id_E_RABs_SubjectToCounterCheck_List() { return set(3); } - E_RABs_SubjectToCounterCheck_List const* get_id_E_RABs_SubjectToCounterCheck_List() const { return get(3); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(4); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(4); } - UE_X2AP_ID_Extension& select_id_SeNB_UE_X2AP_ID_Extension() { return set(5); } - UE_X2AP_ID_Extension const* get_id_SeNB_UE_X2AP_ID_Extension() const { return get(5); } - bool is_unknown() const { return type == 6; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SeNB_UE_X2AP_ID()); return true; - case 3: v(select_id_E_RABs_SubjectToCounterCheck_List()); return true; - case 4: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 5: v(select_id_SeNB_UE_X2AP_ID_Extension()); return true; - case 6: if(type != 6) {clear(); asn::base::set();} type = 6; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_SubjectToCounterCheck_List)]; - char dummy2[sizeof(UE_X2AP_ID)]; - char dummy3[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_E_RABs_SubjectToCounterCheck_List() { set(mandatory); type=3;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=4;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(optional); type=5;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SeNBCounterCheckRequest ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SeNBCounterCheckRequest-IEs}}, - ... -} -*/ - -struct SeNBCounterCheckRequest : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SeNBCounterCheckRequest";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SeNBModificationConfirm-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-MeNBtoSeNBContainer CRITICALITY ignore TYPE MeNBtoSeNBContainer PRESENCE optional}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}, - ... -} -*/ - -struct SeNBModificationConfirm_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(id_SeNB_UE_X2AP_ID); type=2;} - void select_id_MeNBtoSeNBContainer() { set(id_MeNBtoSeNBContainer); type=3;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=5;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(id_SeNB_UE_X2AP_ID_Extension); type=6;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SeNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_MeNBtoSeNBContainer)) { type = 3; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 4; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 5; return true; } - else if(equal(id_SeNB_UE_X2AP_ID_Extension)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SeNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_MeNBtoSeNBContainer);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_SeNB_UE_X2AP_ID_Extension);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(ignore); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(ignore); type=2;} - void select_id_MeNBtoSeNBContainer() { set(ignore); type=3;} - void select_id_CriticalityDiagnostics() { set(ignore); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(ignore); type=5;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(ignore); type=6;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else if(equal(ignore)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(ignore);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - UE_X2AP_ID& select_id_SeNB_UE_X2AP_ID() { return set(2); } - UE_X2AP_ID const* get_id_SeNB_UE_X2AP_ID() const { return get(2); } - MeNBtoSeNBContainer& select_id_MeNBtoSeNBContainer() { return set(3); } - MeNBtoSeNBContainer const* get_id_MeNBtoSeNBContainer() const { return get(3); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(4); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(4); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(5); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(5); } - UE_X2AP_ID_Extension& select_id_SeNB_UE_X2AP_ID_Extension() { return set(6); } - UE_X2AP_ID_Extension const* get_id_SeNB_UE_X2AP_ID_Extension() const { return get(6); } - bool is_unknown() const { return type == 7; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SeNB_UE_X2AP_ID()); return true; - case 3: v(select_id_MeNBtoSeNBContainer()); return true; - case 4: v(select_id_CriticalityDiagnostics()); return true; - case 5: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 6: v(select_id_SeNB_UE_X2AP_ID_Extension()); return true; - case 7: if(type != 7) {clear(); asn::base::set();} type = 7; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CriticalityDiagnostics)]; - char dummy2[sizeof(MeNBtoSeNBContainer)]; - char dummy3[sizeof(UE_X2AP_ID)]; - char dummy4[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_MeNBtoSeNBContainer() { set(optional); type=3;} - void select_id_CriticalityDiagnostics() { set(optional); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=5;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(optional); type=6;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SeNBModificationConfirm ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SeNBModificationConfirm-IEs}}, - ... -} -*/ - -struct SeNBModificationConfirm : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SeNBModificationConfirm";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SeNBModificationRefuse-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| - { ID id-MeNBtoSeNBContainer CRITICALITY ignore TYPE MeNBtoSeNBContainer PRESENCE optional}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}, - ... -} -*/ - -struct SeNBModificationRefuse_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 8; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(id_SeNB_UE_X2AP_ID); type=2;} - void select_id_Cause() { set(id_Cause); type=3;} - void select_id_MeNBtoSeNBContainer() { set(id_MeNBtoSeNBContainer); type=4;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=5;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=6;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(id_SeNB_UE_X2AP_ID_Extension); type=7;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SeNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_Cause)) { type = 3; return true; } - else if(equal(id_MeNBtoSeNBContainer)) { type = 4; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 5; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 6; return true; } - else if(equal(id_SeNB_UE_X2AP_ID_Extension)) { type = 7; return true; } - else { type = 8; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SeNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_MeNBtoSeNBContainer);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(id_SeNB_UE_X2AP_ID_Extension);} return false; - case 8: type = 8; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 8; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(ignore); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(ignore); type=2;} - void select_id_Cause() { set(ignore); type=3;} - void select_id_MeNBtoSeNBContainer() { set(ignore); type=4;} - void select_id_CriticalityDiagnostics() { set(ignore); type=5;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(ignore); type=6;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(ignore); type=7;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else if(equal(ignore)) { type = 6; return true; } - else if(equal(ignore)) { type = 7; return true; } - else { type = 8; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(ignore);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(ignore);} return false; - case 8: type = 8; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - UE_X2AP_ID& select_id_SeNB_UE_X2AP_ID() { return set(2); } - UE_X2AP_ID const* get_id_SeNB_UE_X2AP_ID() const { return get(2); } - Cause& select_id_Cause() { return set(3); } - Cause const* get_id_Cause() const { return get(3); } - MeNBtoSeNBContainer& select_id_MeNBtoSeNBContainer() { return set(4); } - MeNBtoSeNBContainer const* get_id_MeNBtoSeNBContainer() const { return get(4); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(5); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(5); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(6); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(6); } - UE_X2AP_ID_Extension& select_id_SeNB_UE_X2AP_ID_Extension() { return set(7); } - UE_X2AP_ID_Extension const* get_id_SeNB_UE_X2AP_ID_Extension() const { return get(7); } - bool is_unknown() const { return type == 8; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - case 7: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - v.template operator()(7); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SeNB_UE_X2AP_ID()); return true; - case 3: v(select_id_Cause()); return true; - case 4: v(select_id_MeNBtoSeNBContainer()); return true; - case 5: v(select_id_CriticalityDiagnostics()); return true; - case 6: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 7: v(select_id_SeNB_UE_X2AP_ID_Extension()); return true; - case 8: if(type != 8) {clear(); asn::base::set();} type = 8; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - case 7: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(CriticalityDiagnostics)]; - char dummy3[sizeof(MeNBtoSeNBContainer)]; - char dummy4[sizeof(UE_X2AP_ID)]; - char dummy5[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 8; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_Cause() { set(mandatory); type=3;} - void select_id_MeNBtoSeNBContainer() { set(optional); type=4;} - void select_id_CriticalityDiagnostics() { set(optional); type=5;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=6;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(optional); type=7;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else if(equal(optional)) { type = 7; return true; } - else { type = 8; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(optional);} return false; - case 8: type = 8; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SeNBModificationRefuse ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SeNBModificationRefuse-IEs}}, - ... -} -*/ - -struct SeNBModificationRefuse : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SeNBModificationRefuse";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -UE-ContextInformationSeNBModReqExtIEs X2AP-PROTOCOL-EXTENSION ::= { - ... -} -*/ - -struct UE_ContextInformationSeNBModReqExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() - { - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: if(type != 1) {clear(); asn::base::set();} type = 1; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - return false; - - } - private: - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 1; } - void clear() {type = 0;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - { type = 1; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -UE-ContextInformationSeNBModReq ::= SEQUENCE { - uE-SecurityCapabilities UESecurityCapabilities OPTIONAL, - seNB-SecurityKey SeNBSecurityKey OPTIONAL, - seNBUEAggregateMaximumBitRate UEAggregateMaximumBitRate OPTIONAL, - e-RABs-ToBeAdded E-RABs-ToBeAdded-List-ModReq OPTIONAL, - e-RABs-ToBeModified E-RABs-ToBeModified-List-ModReq OPTIONAL, - e-RABs-ToBeReleased E-RABs-ToBeReleased-List-ModReq OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {UE-ContextInformationSeNBModReqExtIEs} } OPTIONAL, - ... -} -*/ - -struct UE_ContextInformationSeNBModReq : asn::sequence<7, 0, true, 7> -{ - static constexpr const char* name() {return "UE-ContextInformationSeNBModReq";} - using parent_t = asn::sequence<7, 0, true, 7>; - struct uE_SecurityCapabilities_t : UESecurityCapabilities - { - static constexpr const char* name() {return "uE_SecurityCapabilities_t";} - using parent_t = UESecurityCapabilities; - static constexpr bool optional = true; - - }; - uE_SecurityCapabilities_t& set_uE_SecurityCapabilities() { uE_SecurityCapabilities.setpresent(true); return uE_SecurityCapabilities;} - uE_SecurityCapabilities_t const* get_uE_SecurityCapabilities() const {return uE_SecurityCapabilities.is_valid() ? &uE_SecurityCapabilities : nullptr;} - struct seNB_SecurityKey_t : SeNBSecurityKey - { - static constexpr const char* name() {return "seNB_SecurityKey_t";} - using parent_t = SeNBSecurityKey; - static constexpr bool optional = true; - - }; - seNB_SecurityKey_t& set_seNB_SecurityKey() { seNB_SecurityKey.setpresent(true); return seNB_SecurityKey;} - seNB_SecurityKey_t const* get_seNB_SecurityKey() const {return seNB_SecurityKey.is_valid() ? &seNB_SecurityKey : nullptr;} - struct seNBUEAggregateMaximumBitRate_t : UEAggregateMaximumBitRate - { - static constexpr const char* name() {return "seNBUEAggregateMaximumBitRate_t";} - using parent_t = UEAggregateMaximumBitRate; - static constexpr bool optional = true; - - }; - seNBUEAggregateMaximumBitRate_t& set_seNBUEAggregateMaximumBitRate() { seNBUEAggregateMaximumBitRate.setpresent(true); return seNBUEAggregateMaximumBitRate;} - seNBUEAggregateMaximumBitRate_t const* get_seNBUEAggregateMaximumBitRate() const {return seNBUEAggregateMaximumBitRate.is_valid() ? &seNBUEAggregateMaximumBitRate : nullptr;} - struct e_RABs_ToBeAdded_t : E_RABs_ToBeAdded_List_ModReq - { - static constexpr const char* name() {return "e_RABs_ToBeAdded_t";} - using parent_t = E_RABs_ToBeAdded_List_ModReq; - static constexpr bool optional = true; - - }; - e_RABs_ToBeAdded_t& set_e_RABs_ToBeAdded() { e_RABs_ToBeAdded.setpresent(true); return e_RABs_ToBeAdded;} - e_RABs_ToBeAdded_t const* get_e_RABs_ToBeAdded() const {return e_RABs_ToBeAdded.is_valid() ? &e_RABs_ToBeAdded : nullptr;} - struct e_RABs_ToBeModified_t : E_RABs_ToBeModified_List_ModReq - { - static constexpr const char* name() {return "e_RABs_ToBeModified_t";} - using parent_t = E_RABs_ToBeModified_List_ModReq; - static constexpr bool optional = true; - - }; - e_RABs_ToBeModified_t& set_e_RABs_ToBeModified() { e_RABs_ToBeModified.setpresent(true); return e_RABs_ToBeModified;} - e_RABs_ToBeModified_t const* get_e_RABs_ToBeModified() const {return e_RABs_ToBeModified.is_valid() ? &e_RABs_ToBeModified : nullptr;} - struct e_RABs_ToBeReleased_t : E_RABs_ToBeReleased_List_ModReq - { - static constexpr const char* name() {return "e_RABs_ToBeReleased_t";} - using parent_t = E_RABs_ToBeReleased_List_ModReq; - static constexpr bool optional = true; - - }; - e_RABs_ToBeReleased_t& set_e_RABs_ToBeReleased() { e_RABs_ToBeReleased.setpresent(true); return e_RABs_ToBeReleased;} - e_RABs_ToBeReleased_t const* get_e_RABs_ToBeReleased() const {return e_RABs_ToBeReleased.is_valid() ? &e_RABs_ToBeReleased : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(uE_SecurityCapabilities); - v(seNB_SecurityKey); - v(seNBUEAggregateMaximumBitRate); - v(e_RABs_ToBeAdded); - v(e_RABs_ToBeModified); - v(e_RABs_ToBeReleased); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(uE_SecurityCapabilities); - v(seNB_SecurityKey); - v(seNBUEAggregateMaximumBitRate); - v(e_RABs_ToBeAdded); - v(e_RABs_ToBeModified); - v(e_RABs_ToBeReleased); - v(iE_Extensions); - - }; - void clear() - { - uE_SecurityCapabilities.clear(); - seNB_SecurityKey.clear(); - seNBUEAggregateMaximumBitRate.clear(); - e_RABs_ToBeAdded.clear(); - e_RABs_ToBeModified.clear(); - e_RABs_ToBeReleased.clear(); - iE_Extensions.clear(); - - }; - private: - uE_SecurityCapabilities_t uE_SecurityCapabilities; - seNB_SecurityKey_t seNB_SecurityKey; - seNBUEAggregateMaximumBitRate_t seNBUEAggregateMaximumBitRate; - e_RABs_ToBeAdded_t e_RABs_ToBeAdded; - e_RABs_ToBeModified_t e_RABs_ToBeModified; - e_RABs_ToBeReleased_t e_RABs_ToBeReleased; - iE_Extensions_t iE_Extensions; - -}; -/* -SeNBModificationRequest-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| - { ID id-SCGChangeIndication CRITICALITY ignore TYPE SCGChangeIndication PRESENCE optional}| - { ID id-ServingPLMN CRITICALITY ignore TYPE PLMN-Identity PRESENCE optional}| - { ID id-UE-ContextInformationSeNBModReq CRITICALITY reject TYPE UE-ContextInformationSeNBModReq PRESENCE optional}| - { ID id-MeNBtoSeNBContainer CRITICALITY ignore TYPE MeNBtoSeNBContainer PRESENCE optional}| - { ID id-CSGMembershipStatus CRITICALITY reject TYPE CSGMembershipStatus PRESENCE optional}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}, - ... -} -*/ - -struct SeNBModificationRequest_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 11; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(id_SeNB_UE_X2AP_ID); type=2;} - void select_id_Cause() { set(id_Cause); type=3;} - void select_id_SCGChangeIndication() { set(id_SCGChangeIndication); type=4;} - void select_id_ServingPLMN() { set(id_ServingPLMN); type=5;} - void select_id_UE_ContextInformationSeNBModReq() { set(id_UE_ContextInformationSeNBModReq); type=6;} - void select_id_MeNBtoSeNBContainer() { set(id_MeNBtoSeNBContainer); type=7;} - void select_id_CSGMembershipStatus() { set(id_CSGMembershipStatus); type=8;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=9;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(id_SeNB_UE_X2AP_ID_Extension); type=10;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SeNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_Cause)) { type = 3; return true; } - else if(equal(id_SCGChangeIndication)) { type = 4; return true; } - else if(equal(id_ServingPLMN)) { type = 5; return true; } - else if(equal(id_UE_ContextInformationSeNBModReq)) { type = 6; return true; } - else if(equal(id_MeNBtoSeNBContainer)) { type = 7; return true; } - else if(equal(id_CSGMembershipStatus)) { type = 8; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 9; return true; } - else if(equal(id_SeNB_UE_X2AP_ID_Extension)) { type = 10; return true; } - else { type = 11; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SeNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_SCGChangeIndication);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_ServingPLMN);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_UE_ContextInformationSeNBModReq);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(id_MeNBtoSeNBContainer);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(id_CSGMembershipStatus);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(id_SeNB_UE_X2AP_ID_Extension);} return false; - case 11: type = 11; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 11; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(reject); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(reject); type=2;} - void select_id_Cause() { set(ignore); type=3;} - void select_id_SCGChangeIndication() { set(ignore); type=4;} - void select_id_ServingPLMN() { set(ignore); type=5;} - void select_id_UE_ContextInformationSeNBModReq() { set(reject); type=6;} - void select_id_MeNBtoSeNBContainer() { set(ignore); type=7;} - void select_id_CSGMembershipStatus() { set(reject); type=8;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(reject); type=9;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(reject); type=10;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else if(equal(reject)) { type = 6; return true; } - else if(equal(ignore)) { type = 7; return true; } - else if(equal(reject)) { type = 8; return true; } - else if(equal(reject)) { type = 9; return true; } - else if(equal(reject)) { type = 10; return true; } - else { type = 11; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(reject);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(ignore);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(reject);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(reject);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(reject);} return false; - case 11: type = 11; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - UE_X2AP_ID& select_id_SeNB_UE_X2AP_ID() { return set(2); } - UE_X2AP_ID const* get_id_SeNB_UE_X2AP_ID() const { return get(2); } - Cause& select_id_Cause() { return set(3); } - Cause const* get_id_Cause() const { return get(3); } - SCGChangeIndication& select_id_SCGChangeIndication() { return set(4); } - SCGChangeIndication const* get_id_SCGChangeIndication() const { return get(4); } - PLMN_Identity& select_id_ServingPLMN() { return set(5); } - PLMN_Identity const* get_id_ServingPLMN() const { return get(5); } - UE_ContextInformationSeNBModReq& select_id_UE_ContextInformationSeNBModReq() { return set(6); } - UE_ContextInformationSeNBModReq const* get_id_UE_ContextInformationSeNBModReq() const { return get(6); } - MeNBtoSeNBContainer& select_id_MeNBtoSeNBContainer() { return set(7); } - MeNBtoSeNBContainer const* get_id_MeNBtoSeNBContainer() const { return get(7); } - CSGMembershipStatus& select_id_CSGMembershipStatus() { return set(8); } - CSGMembershipStatus const* get_id_CSGMembershipStatus() const { return get(8); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(9); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(9); } - UE_X2AP_ID_Extension& select_id_SeNB_UE_X2AP_ID_Extension() { return set(10); } - UE_X2AP_ID_Extension const* get_id_SeNB_UE_X2AP_ID_Extension() const { return get(10); } - bool is_unknown() const { return type == 11; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - case 7: var.destroy(); break; - case 8: var.destroy(); break; - case 9: var.destroy(); break; - case 10: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - v.template operator()(7); - v.template operator()(8); - v.template operator()(9); - v.template operator()(10); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SeNB_UE_X2AP_ID()); return true; - case 3: v(select_id_Cause()); return true; - case 4: v(select_id_SCGChangeIndication()); return true; - case 5: v(select_id_ServingPLMN()); return true; - case 6: v(select_id_UE_ContextInformationSeNBModReq()); return true; - case 7: v(select_id_MeNBtoSeNBContainer()); return true; - case 8: v(select_id_CSGMembershipStatus()); return true; - case 9: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 10: v(select_id_SeNB_UE_X2AP_ID_Extension()); return true; - case 11: if(type != 11) {clear(); asn::base::set();} type = 11; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - case 7: v(var.as()); return true; - case 8: v(var.as()); return true; - case 9: v(var.as()); return true; - case 10: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CSGMembershipStatus)]; - char dummy2[sizeof(Cause)]; - char dummy3[sizeof(MeNBtoSeNBContainer)]; - char dummy4[sizeof(PLMN_Identity)]; - char dummy5[sizeof(SCGChangeIndication)]; - char dummy6[sizeof(UE_ContextInformationSeNBModReq)]; - char dummy7[sizeof(UE_X2AP_ID)]; - char dummy8[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 11; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_Cause() { set(mandatory); type=3;} - void select_id_SCGChangeIndication() { set(optional); type=4;} - void select_id_ServingPLMN() { set(optional); type=5;} - void select_id_UE_ContextInformationSeNBModReq() { set(optional); type=6;} - void select_id_MeNBtoSeNBContainer() { set(optional); type=7;} - void select_id_CSGMembershipStatus() { set(optional); type=8;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=9;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(optional); type=10;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else if(equal(optional)) { type = 7; return true; } - else if(equal(optional)) { type = 8; return true; } - else if(equal(optional)) { type = 9; return true; } - else if(equal(optional)) { type = 10; return true; } - else { type = 11; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(optional);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(optional);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(optional);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(optional);} return false; - case 11: type = 11; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SeNBModificationRequest ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ SeNBModificationRequest-IEs}}, - ... -} -*/ - -struct SeNBModificationRequest : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SeNBModificationRequest";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SeNBModificationRequestAcknowledge-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-E-RABs-Admitted-ToBeAdded-ModAckList CRITICALITY ignore TYPE E-RABs-Admitted-ToBeAdded-ModAckList PRESENCE optional}| - { ID id-E-RABs-Admitted-ToBeModified-ModAckList CRITICALITY ignore TYPE E-RABs-Admitted-ToBeModified-ModAckList PRESENCE optional}| - { ID id-E-RABs-Admitted-ToBeReleased-ModAckList CRITICALITY ignore TYPE E-RABs-Admitted-ToBeReleased-ModAckList PRESENCE optional}| - { ID id-E-RABs-NotAdmitted-List CRITICALITY ignore TYPE E-RAB-List PRESENCE optional}| - { ID id-SeNBtoMeNBContainer CRITICALITY ignore TYPE SeNBtoMeNBContainer PRESENCE optional}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}, - ... -} -*/ - -struct SeNBModificationRequestAcknowledge_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 11; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(id_SeNB_UE_X2AP_ID); type=2;} - void select_id_E_RABs_Admitted_ToBeAdded_ModAckList() { set(id_E_RABs_Admitted_ToBeAdded_ModAckList); type=3;} - void select_id_E_RABs_Admitted_ToBeModified_ModAckList() { set(id_E_RABs_Admitted_ToBeModified_ModAckList); type=4;} - void select_id_E_RABs_Admitted_ToBeReleased_ModAckList() { set(id_E_RABs_Admitted_ToBeReleased_ModAckList); type=5;} - void select_id_E_RABs_NotAdmitted_List() { set(id_E_RABs_NotAdmitted_List); type=6;} - void select_id_SeNBtoMeNBContainer() { set(id_SeNBtoMeNBContainer); type=7;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=8;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=9;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(id_SeNB_UE_X2AP_ID_Extension); type=10;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SeNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_E_RABs_Admitted_ToBeAdded_ModAckList)) { type = 3; return true; } - else if(equal(id_E_RABs_Admitted_ToBeModified_ModAckList)) { type = 4; return true; } - else if(equal(id_E_RABs_Admitted_ToBeReleased_ModAckList)) { type = 5; return true; } - else if(equal(id_E_RABs_NotAdmitted_List)) { type = 6; return true; } - else if(equal(id_SeNBtoMeNBContainer)) { type = 7; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 8; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 9; return true; } - else if(equal(id_SeNB_UE_X2AP_ID_Extension)) { type = 10; return true; } - else { type = 11; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SeNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_E_RABs_Admitted_ToBeAdded_ModAckList);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_E_RABs_Admitted_ToBeModified_ModAckList);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_E_RABs_Admitted_ToBeReleased_ModAckList);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_E_RABs_NotAdmitted_List);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(id_SeNBtoMeNBContainer);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(id_SeNB_UE_X2AP_ID_Extension);} return false; - case 11: type = 11; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 11; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(ignore); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(ignore); type=2;} - void select_id_E_RABs_Admitted_ToBeAdded_ModAckList() { set(ignore); type=3;} - void select_id_E_RABs_Admitted_ToBeModified_ModAckList() { set(ignore); type=4;} - void select_id_E_RABs_Admitted_ToBeReleased_ModAckList() { set(ignore); type=5;} - void select_id_E_RABs_NotAdmitted_List() { set(ignore); type=6;} - void select_id_SeNBtoMeNBContainer() { set(ignore); type=7;} - void select_id_CriticalityDiagnostics() { set(ignore); type=8;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(ignore); type=9;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(ignore); type=10;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else if(equal(ignore)) { type = 6; return true; } - else if(equal(ignore)) { type = 7; return true; } - else if(equal(ignore)) { type = 8; return true; } - else if(equal(ignore)) { type = 9; return true; } - else if(equal(ignore)) { type = 10; return true; } - else { type = 11; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(ignore);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(ignore);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(ignore);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(ignore);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(ignore);} return false; - case 11: type = 11; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - UE_X2AP_ID& select_id_SeNB_UE_X2AP_ID() { return set(2); } - UE_X2AP_ID const* get_id_SeNB_UE_X2AP_ID() const { return get(2); } - E_RABs_Admitted_ToBeAdded_ModAckList& select_id_E_RABs_Admitted_ToBeAdded_ModAckList() { return set(3); } - E_RABs_Admitted_ToBeAdded_ModAckList const* get_id_E_RABs_Admitted_ToBeAdded_ModAckList() const { return get(3); } - E_RABs_Admitted_ToBeModified_ModAckList& select_id_E_RABs_Admitted_ToBeModified_ModAckList() { return set(4); } - E_RABs_Admitted_ToBeModified_ModAckList const* get_id_E_RABs_Admitted_ToBeModified_ModAckList() const { return get(4); } - E_RABs_Admitted_ToBeReleased_ModAckList& select_id_E_RABs_Admitted_ToBeReleased_ModAckList() { return set(5); } - E_RABs_Admitted_ToBeReleased_ModAckList const* get_id_E_RABs_Admitted_ToBeReleased_ModAckList() const { return get(5); } - E_RAB_List& select_id_E_RABs_NotAdmitted_List() { return set(6); } - E_RAB_List const* get_id_E_RABs_NotAdmitted_List() const { return get(6); } - SeNBtoMeNBContainer& select_id_SeNBtoMeNBContainer() { return set(7); } - SeNBtoMeNBContainer const* get_id_SeNBtoMeNBContainer() const { return get(7); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(8); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(8); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(9); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(9); } - UE_X2AP_ID_Extension& select_id_SeNB_UE_X2AP_ID_Extension() { return set(10); } - UE_X2AP_ID_Extension const* get_id_SeNB_UE_X2AP_ID_Extension() const { return get(10); } - bool is_unknown() const { return type == 11; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - case 7: var.destroy(); break; - case 8: var.destroy(); break; - case 9: var.destroy(); break; - case 10: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - v.template operator()(7); - v.template operator()(8); - v.template operator()(9); - v.template operator()(10); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SeNB_UE_X2AP_ID()); return true; - case 3: v(select_id_E_RABs_Admitted_ToBeAdded_ModAckList()); return true; - case 4: v(select_id_E_RABs_Admitted_ToBeModified_ModAckList()); return true; - case 5: v(select_id_E_RABs_Admitted_ToBeReleased_ModAckList()); return true; - case 6: v(select_id_E_RABs_NotAdmitted_List()); return true; - case 7: v(select_id_SeNBtoMeNBContainer()); return true; - case 8: v(select_id_CriticalityDiagnostics()); return true; - case 9: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 10: v(select_id_SeNB_UE_X2AP_ID_Extension()); return true; - case 11: if(type != 11) {clear(); asn::base::set();} type = 11; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - case 7: v(var.as()); return true; - case 8: v(var.as()); return true; - case 9: v(var.as()); return true; - case 10: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CriticalityDiagnostics)]; - char dummy2[sizeof(E_RAB_List)]; - char dummy3[sizeof(E_RABs_Admitted_ToBeAdded_ModAckList)]; - char dummy4[sizeof(E_RABs_Admitted_ToBeModified_ModAckList)]; - char dummy5[sizeof(E_RABs_Admitted_ToBeReleased_ModAckList)]; - char dummy6[sizeof(SeNBtoMeNBContainer)]; - char dummy7[sizeof(UE_X2AP_ID)]; - char dummy8[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 11; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_E_RABs_Admitted_ToBeAdded_ModAckList() { set(optional); type=3;} - void select_id_E_RABs_Admitted_ToBeModified_ModAckList() { set(optional); type=4;} - void select_id_E_RABs_Admitted_ToBeReleased_ModAckList() { set(optional); type=5;} - void select_id_E_RABs_NotAdmitted_List() { set(optional); type=6;} - void select_id_SeNBtoMeNBContainer() { set(optional); type=7;} - void select_id_CriticalityDiagnostics() { set(optional); type=8;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=9;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(optional); type=10;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else if(equal(optional)) { type = 7; return true; } - else if(equal(optional)) { type = 8; return true; } - else if(equal(optional)) { type = 9; return true; } - else if(equal(optional)) { type = 10; return true; } - else { type = 11; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(optional);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(optional);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(optional);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(optional);} return false; - case 11: type = 11; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SeNBModificationRequestAcknowledge ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SeNBModificationRequestAcknowledge-IEs}}, - ... -} -*/ - -struct SeNBModificationRequestAcknowledge : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SeNBModificationRequestAcknowledge";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SeNBModificationRequestReject-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}, - ... -} -*/ - -struct SeNBModificationRequestReject_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(id_SeNB_UE_X2AP_ID); type=2;} - void select_id_Cause() { set(id_Cause); type=3;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=5;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(id_SeNB_UE_X2AP_ID_Extension); type=6;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SeNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_Cause)) { type = 3; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 4; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 5; return true; } - else if(equal(id_SeNB_UE_X2AP_ID_Extension)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SeNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_SeNB_UE_X2AP_ID_Extension);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(ignore); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(ignore); type=2;} - void select_id_Cause() { set(ignore); type=3;} - void select_id_CriticalityDiagnostics() { set(ignore); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(ignore); type=5;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(ignore); type=6;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else if(equal(ignore)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(ignore);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - UE_X2AP_ID& select_id_SeNB_UE_X2AP_ID() { return set(2); } - UE_X2AP_ID const* get_id_SeNB_UE_X2AP_ID() const { return get(2); } - Cause& select_id_Cause() { return set(3); } - Cause const* get_id_Cause() const { return get(3); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(4); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(4); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(5); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(5); } - UE_X2AP_ID_Extension& select_id_SeNB_UE_X2AP_ID_Extension() { return set(6); } - UE_X2AP_ID_Extension const* get_id_SeNB_UE_X2AP_ID_Extension() const { return get(6); } - bool is_unknown() const { return type == 7; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SeNB_UE_X2AP_ID()); return true; - case 3: v(select_id_Cause()); return true; - case 4: v(select_id_CriticalityDiagnostics()); return true; - case 5: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 6: v(select_id_SeNB_UE_X2AP_ID_Extension()); return true; - case 7: if(type != 7) {clear(); asn::base::set();} type = 7; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(CriticalityDiagnostics)]; - char dummy3[sizeof(UE_X2AP_ID)]; - char dummy4[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_Cause() { set(mandatory); type=3;} - void select_id_CriticalityDiagnostics() { set(optional); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=5;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(optional); type=6;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SeNBModificationRequestReject ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SeNBModificationRequestReject-IEs}}, - ... -} -*/ - -struct SeNBModificationRequestReject : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SeNBModificationRequestReject";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SeNBModificationRequired-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| - { ID id-SCGChangeIndication CRITICALITY ignore TYPE SCGChangeIndication PRESENCE optional}| - { ID id-E-RABs-ToBeReleased-ModReqd CRITICALITY ignore TYPE E-RABs-ToBeReleased-ModReqd PRESENCE optional}| - { ID id-SeNBtoMeNBContainer CRITICALITY ignore TYPE SeNBtoMeNBContainer PRESENCE optional}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}, - ... -} -*/ - -struct SeNBModificationRequired_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 9; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(id_SeNB_UE_X2AP_ID); type=2;} - void select_id_Cause() { set(id_Cause); type=3;} - void select_id_SCGChangeIndication() { set(id_SCGChangeIndication); type=4;} - void select_id_E_RABs_ToBeReleased_ModReqd() { set(id_E_RABs_ToBeReleased_ModReqd); type=5;} - void select_id_SeNBtoMeNBContainer() { set(id_SeNBtoMeNBContainer); type=6;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=7;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(id_SeNB_UE_X2AP_ID_Extension); type=8;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SeNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_Cause)) { type = 3; return true; } - else if(equal(id_SCGChangeIndication)) { type = 4; return true; } - else if(equal(id_E_RABs_ToBeReleased_ModReqd)) { type = 5; return true; } - else if(equal(id_SeNBtoMeNBContainer)) { type = 6; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 7; return true; } - else if(equal(id_SeNB_UE_X2AP_ID_Extension)) { type = 8; return true; } - else { type = 9; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SeNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_SCGChangeIndication);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_E_RABs_ToBeReleased_ModReqd);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_SeNBtoMeNBContainer);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(id_SeNB_UE_X2AP_ID_Extension);} return false; - case 9: type = 9; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 9; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(reject); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(reject); type=2;} - void select_id_Cause() { set(ignore); type=3;} - void select_id_SCGChangeIndication() { set(ignore); type=4;} - void select_id_E_RABs_ToBeReleased_ModReqd() { set(ignore); type=5;} - void select_id_SeNBtoMeNBContainer() { set(ignore); type=6;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(reject); type=7;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(reject); type=8;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else if(equal(ignore)) { type = 6; return true; } - else if(equal(reject)) { type = 7; return true; } - else if(equal(reject)) { type = 8; return true; } - else { type = 9; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(ignore);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(reject);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(reject);} return false; - case 9: type = 9; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - UE_X2AP_ID& select_id_SeNB_UE_X2AP_ID() { return set(2); } - UE_X2AP_ID const* get_id_SeNB_UE_X2AP_ID() const { return get(2); } - Cause& select_id_Cause() { return set(3); } - Cause const* get_id_Cause() const { return get(3); } - SCGChangeIndication& select_id_SCGChangeIndication() { return set(4); } - SCGChangeIndication const* get_id_SCGChangeIndication() const { return get(4); } - E_RABs_ToBeReleased_ModReqd& select_id_E_RABs_ToBeReleased_ModReqd() { return set(5); } - E_RABs_ToBeReleased_ModReqd const* get_id_E_RABs_ToBeReleased_ModReqd() const { return get(5); } - SeNBtoMeNBContainer& select_id_SeNBtoMeNBContainer() { return set(6); } - SeNBtoMeNBContainer const* get_id_SeNBtoMeNBContainer() const { return get(6); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(7); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(7); } - UE_X2AP_ID_Extension& select_id_SeNB_UE_X2AP_ID_Extension() { return set(8); } - UE_X2AP_ID_Extension const* get_id_SeNB_UE_X2AP_ID_Extension() const { return get(8); } - bool is_unknown() const { return type == 9; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - case 7: var.destroy(); break; - case 8: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - v.template operator()(7); - v.template operator()(8); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SeNB_UE_X2AP_ID()); return true; - case 3: v(select_id_Cause()); return true; - case 4: v(select_id_SCGChangeIndication()); return true; - case 5: v(select_id_E_RABs_ToBeReleased_ModReqd()); return true; - case 6: v(select_id_SeNBtoMeNBContainer()); return true; - case 7: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 8: v(select_id_SeNB_UE_X2AP_ID_Extension()); return true; - case 9: if(type != 9) {clear(); asn::base::set();} type = 9; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - case 7: v(var.as()); return true; - case 8: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(E_RABs_ToBeReleased_ModReqd)]; - char dummy3[sizeof(SCGChangeIndication)]; - char dummy4[sizeof(SeNBtoMeNBContainer)]; - char dummy5[sizeof(UE_X2AP_ID)]; - char dummy6[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 9; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_Cause() { set(mandatory); type=3;} - void select_id_SCGChangeIndication() { set(optional); type=4;} - void select_id_E_RABs_ToBeReleased_ModReqd() { set(optional); type=5;} - void select_id_SeNBtoMeNBContainer() { set(optional); type=6;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=7;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(optional); type=8;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else if(equal(optional)) { type = 7; return true; } - else if(equal(optional)) { type = 8; return true; } - else { type = 9; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(optional);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(optional);} return false; - case 9: type = 9; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SeNBModificationRequired ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SeNBModificationRequired-IEs}}, - ... -} -*/ - -struct SeNBModificationRequired : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SeNBModificationRequired";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SeNBReconfigurationComplete-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-ResponseInformationSeNBReconfComp CRITICALITY ignore TYPE ResponseInformationSeNBReconfComp PRESENCE mandatory}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}, - ... -} -*/ - -struct SeNBReconfigurationComplete_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(id_SeNB_UE_X2AP_ID); type=2;} - void select_id_ResponseInformationSeNBReconfComp() { set(id_ResponseInformationSeNBReconfComp); type=3;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=4;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(id_SeNB_UE_X2AP_ID_Extension); type=5;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SeNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_ResponseInformationSeNBReconfComp)) { type = 3; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 4; return true; } - else if(equal(id_SeNB_UE_X2AP_ID_Extension)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SeNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_ResponseInformationSeNBReconfComp);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_SeNB_UE_X2AP_ID_Extension);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(reject); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(reject); type=2;} - void select_id_ResponseInformationSeNBReconfComp() { set(ignore); type=3;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(reject); type=4;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(reject); type=5;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(reject)) { type = 4; return true; } - else if(equal(reject)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(reject);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(reject);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - UE_X2AP_ID& select_id_SeNB_UE_X2AP_ID() { return set(2); } - UE_X2AP_ID const* get_id_SeNB_UE_X2AP_ID() const { return get(2); } - ResponseInformationSeNBReconfComp& select_id_ResponseInformationSeNBReconfComp() { return set(3); } - ResponseInformationSeNBReconfComp const* get_id_ResponseInformationSeNBReconfComp() const { return get(3); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(4); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(4); } - UE_X2AP_ID_Extension& select_id_SeNB_UE_X2AP_ID_Extension() { return set(5); } - UE_X2AP_ID_Extension const* get_id_SeNB_UE_X2AP_ID_Extension() const { return get(5); } - bool is_unknown() const { return type == 6; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SeNB_UE_X2AP_ID()); return true; - case 3: v(select_id_ResponseInformationSeNBReconfComp()); return true; - case 4: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 5: v(select_id_SeNB_UE_X2AP_ID_Extension()); return true; - case 6: if(type != 6) {clear(); asn::base::set();} type = 6; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(ResponseInformationSeNBReconfComp)]; - char dummy2[sizeof(UE_X2AP_ID)]; - char dummy3[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_ResponseInformationSeNBReconfComp() { set(mandatory); type=3;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=4;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(optional); type=5;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SeNBReconfigurationComplete ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SeNBReconfigurationComplete-IEs}}, - ... -} -*/ - -struct SeNBReconfigurationComplete : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SeNBReconfigurationComplete";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SeNBReleaseConfirm-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-E-RABs-ToBeReleased-List-RelConf CRITICALITY ignore TYPE E-RABs-ToBeReleased-List-RelConf PRESENCE optional}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}, - ... -} -*/ - -struct SeNBReleaseConfirm_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(id_SeNB_UE_X2AP_ID); type=2;} - void select_id_E_RABs_ToBeReleased_List_RelConf() { set(id_E_RABs_ToBeReleased_List_RelConf); type=3;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=5;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(id_SeNB_UE_X2AP_ID_Extension); type=6;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SeNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_E_RABs_ToBeReleased_List_RelConf)) { type = 3; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 4; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 5; return true; } - else if(equal(id_SeNB_UE_X2AP_ID_Extension)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SeNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_E_RABs_ToBeReleased_List_RelConf);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_SeNB_UE_X2AP_ID_Extension);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(ignore); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(ignore); type=2;} - void select_id_E_RABs_ToBeReleased_List_RelConf() { set(ignore); type=3;} - void select_id_CriticalityDiagnostics() { set(ignore); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(ignore); type=5;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(ignore); type=6;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else if(equal(ignore)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(ignore);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - UE_X2AP_ID& select_id_SeNB_UE_X2AP_ID() { return set(2); } - UE_X2AP_ID const* get_id_SeNB_UE_X2AP_ID() const { return get(2); } - E_RABs_ToBeReleased_List_RelConf& select_id_E_RABs_ToBeReleased_List_RelConf() { return set(3); } - E_RABs_ToBeReleased_List_RelConf const* get_id_E_RABs_ToBeReleased_List_RelConf() const { return get(3); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(4); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(4); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(5); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(5); } - UE_X2AP_ID_Extension& select_id_SeNB_UE_X2AP_ID_Extension() { return set(6); } - UE_X2AP_ID_Extension const* get_id_SeNB_UE_X2AP_ID_Extension() const { return get(6); } - bool is_unknown() const { return type == 7; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SeNB_UE_X2AP_ID()); return true; - case 3: v(select_id_E_RABs_ToBeReleased_List_RelConf()); return true; - case 4: v(select_id_CriticalityDiagnostics()); return true; - case 5: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 6: v(select_id_SeNB_UE_X2AP_ID_Extension()); return true; - case 7: if(type != 7) {clear(); asn::base::set();} type = 7; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CriticalityDiagnostics)]; - char dummy2[sizeof(E_RABs_ToBeReleased_List_RelConf)]; - char dummy3[sizeof(UE_X2AP_ID)]; - char dummy4[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_E_RABs_ToBeReleased_List_RelConf() { set(optional); type=3;} - void select_id_CriticalityDiagnostics() { set(optional); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=5;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(optional); type=6;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SeNBReleaseConfirm ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SeNBReleaseConfirm-IEs}}, - ... -} -*/ - -struct SeNBReleaseConfirm : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SeNBReleaseConfirm";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SeNBReleaseRequest-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE optional}| - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE optional}| - { ID id-E-RABs-ToBeReleased-List-RelReq CRITICALITY ignore TYPE E-RABs-ToBeReleased-List-RelReq PRESENCE optional}| - { ID id-UE-ContextKeptIndicator CRITICALITY ignore TYPE UE-ContextKeptIndicator PRESENCE optional}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-MakeBeforeBreakIndicator CRITICALITY ignore TYPE MakeBeforeBreakIndicator PRESENCE optional}, - ... -} -*/ - -struct SeNBReleaseRequest_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 9; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(id_SeNB_UE_X2AP_ID); type=2;} - void select_id_Cause() { set(id_Cause); type=3;} - void select_id_E_RABs_ToBeReleased_List_RelReq() { set(id_E_RABs_ToBeReleased_List_RelReq); type=4;} - void select_id_UE_ContextKeptIndicator() { set(id_UE_ContextKeptIndicator); type=5;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=6;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(id_SeNB_UE_X2AP_ID_Extension); type=7;} - void select_id_MakeBeforeBreakIndicator() { set(id_MakeBeforeBreakIndicator); type=8;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SeNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_Cause)) { type = 3; return true; } - else if(equal(id_E_RABs_ToBeReleased_List_RelReq)) { type = 4; return true; } - else if(equal(id_UE_ContextKeptIndicator)) { type = 5; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 6; return true; } - else if(equal(id_SeNB_UE_X2AP_ID_Extension)) { type = 7; return true; } - else if(equal(id_MakeBeforeBreakIndicator)) { type = 8; return true; } - else { type = 9; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SeNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_E_RABs_ToBeReleased_List_RelReq);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_UE_ContextKeptIndicator);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(id_SeNB_UE_X2AP_ID_Extension);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(id_MakeBeforeBreakIndicator);} return false; - case 9: type = 9; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 9; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(reject); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(reject); type=2;} - void select_id_Cause() { set(ignore); type=3;} - void select_id_E_RABs_ToBeReleased_List_RelReq() { set(ignore); type=4;} - void select_id_UE_ContextKeptIndicator() { set(ignore); type=5;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(reject); type=6;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(reject); type=7;} - void select_id_MakeBeforeBreakIndicator() { set(ignore); type=8;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else if(equal(reject)) { type = 6; return true; } - else if(equal(reject)) { type = 7; return true; } - else if(equal(ignore)) { type = 8; return true; } - else { type = 9; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(reject);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(reject);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(ignore);} return false; - case 9: type = 9; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - UE_X2AP_ID& select_id_SeNB_UE_X2AP_ID() { return set(2); } - UE_X2AP_ID const* get_id_SeNB_UE_X2AP_ID() const { return get(2); } - Cause& select_id_Cause() { return set(3); } - Cause const* get_id_Cause() const { return get(3); } - E_RABs_ToBeReleased_List_RelReq& select_id_E_RABs_ToBeReleased_List_RelReq() { return set(4); } - E_RABs_ToBeReleased_List_RelReq const* get_id_E_RABs_ToBeReleased_List_RelReq() const { return get(4); } - UE_ContextKeptIndicator& select_id_UE_ContextKeptIndicator() { return set(5); } - UE_ContextKeptIndicator const* get_id_UE_ContextKeptIndicator() const { return get(5); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(6); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(6); } - UE_X2AP_ID_Extension& select_id_SeNB_UE_X2AP_ID_Extension() { return set(7); } - UE_X2AP_ID_Extension const* get_id_SeNB_UE_X2AP_ID_Extension() const { return get(7); } - MakeBeforeBreakIndicator& select_id_MakeBeforeBreakIndicator() { return set(8); } - MakeBeforeBreakIndicator const* get_id_MakeBeforeBreakIndicator() const { return get(8); } - bool is_unknown() const { return type == 9; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - case 7: var.destroy(); break; - case 8: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - v.template operator()(7); - v.template operator()(8); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SeNB_UE_X2AP_ID()); return true; - case 3: v(select_id_Cause()); return true; - case 4: v(select_id_E_RABs_ToBeReleased_List_RelReq()); return true; - case 5: v(select_id_UE_ContextKeptIndicator()); return true; - case 6: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 7: v(select_id_SeNB_UE_X2AP_ID_Extension()); return true; - case 8: v(select_id_MakeBeforeBreakIndicator()); return true; - case 9: if(type != 9) {clear(); asn::base::set();} type = 9; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - case 7: v(var.as()); return true; - case 8: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(E_RABs_ToBeReleased_List_RelReq)]; - char dummy3[sizeof(MakeBeforeBreakIndicator)]; - char dummy4[sizeof(UE_ContextKeptIndicator)]; - char dummy5[sizeof(UE_X2AP_ID)]; - char dummy6[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 9; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(optional); type=2;} - void select_id_Cause() { set(optional); type=3;} - void select_id_E_RABs_ToBeReleased_List_RelReq() { set(optional); type=4;} - void select_id_UE_ContextKeptIndicator() { set(optional); type=5;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=6;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(optional); type=7;} - void select_id_MakeBeforeBreakIndicator() { set(optional); type=8;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else if(equal(optional)) { type = 7; return true; } - else if(equal(optional)) { type = 8; return true; } - else { type = 9; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(optional);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(optional);} return false; - case 9: type = 9; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SeNBReleaseRequest ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SeNBReleaseRequest-IEs}}, - ... -} -*/ - -struct SeNBReleaseRequest : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SeNBReleaseRequest";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SeNBReleaseRequired-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}, - ... -} -*/ - -struct SeNBReleaseRequired_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(id_SeNB_UE_X2AP_ID); type=2;} - void select_id_Cause() { set(id_Cause); type=3;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=4;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(id_SeNB_UE_X2AP_ID_Extension); type=5;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SeNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_Cause)) { type = 3; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 4; return true; } - else if(equal(id_SeNB_UE_X2AP_ID_Extension)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SeNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_SeNB_UE_X2AP_ID_Extension);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(reject); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(reject); type=2;} - void select_id_Cause() { set(ignore); type=3;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(reject); type=4;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(reject); type=5;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(reject)) { type = 4; return true; } - else if(equal(reject)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(reject);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(reject);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - UE_X2AP_ID& select_id_SeNB_UE_X2AP_ID() { return set(2); } - UE_X2AP_ID const* get_id_SeNB_UE_X2AP_ID() const { return get(2); } - Cause& select_id_Cause() { return set(3); } - Cause const* get_id_Cause() const { return get(3); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(4); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(4); } - UE_X2AP_ID_Extension& select_id_SeNB_UE_X2AP_ID_Extension() { return set(5); } - UE_X2AP_ID_Extension const* get_id_SeNB_UE_X2AP_ID_Extension() const { return get(5); } - bool is_unknown() const { return type == 6; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SeNB_UE_X2AP_ID()); return true; - case 3: v(select_id_Cause()); return true; - case 4: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 5: v(select_id_SeNB_UE_X2AP_ID_Extension()); return true; - case 6: if(type != 6) {clear(); asn::base::set();} type = 6; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(UE_X2AP_ID)]; - char dummy3[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SeNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_Cause() { set(mandatory); type=3;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=4;} - void select_id_SeNB_UE_X2AP_ID_Extension() { set(optional); type=5;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SeNBReleaseRequired ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SeNBReleaseRequired-IEs}}, - ... -} -*/ - -struct SeNBReleaseRequired : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SeNBReleaseRequired";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SecondaryRATDataUsageReport-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SgNB-UE-X2AP-ID CRITICALITY reject TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}| - { ID id-SecondaryRATUsageReportList CRITICALITY reject TYPE SecondaryRATUsageReportList PRESENCE mandatory}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}, - ... -} -*/ - -struct SecondaryRATDataUsageReport_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(id_SgNB_UE_X2AP_ID); type=2;} - void select_id_SecondaryRATUsageReportList() { set(id_SecondaryRATUsageReportList); type=3;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=4;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SgNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_SecondaryRATUsageReportList)) { type = 3; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SgNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_SecondaryRATUsageReportList);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(reject); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(reject); type=2;} - void select_id_SecondaryRATUsageReportList() { set(reject); type=3;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(reject); type=4;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(reject)) { type = 3; return true; } - else if(equal(reject)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(reject);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(reject);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - SgNB_UE_X2AP_ID& select_id_SgNB_UE_X2AP_ID() { return set(2); } - SgNB_UE_X2AP_ID const* get_id_SgNB_UE_X2AP_ID() const { return get(2); } - SecondaryRATUsageReportList& select_id_SecondaryRATUsageReportList() { return set(3); } - SecondaryRATUsageReportList const* get_id_SecondaryRATUsageReportList() const { return get(3); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(4); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(4); } - bool is_unknown() const { return type == 5; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SgNB_UE_X2AP_ID()); return true; - case 3: v(select_id_SecondaryRATUsageReportList()); return true; - case 4: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 5: if(type != 5) {clear(); asn::base::set();} type = 5; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(SecondaryRATUsageReportList)]; - char dummy2[sizeof(SgNB_UE_X2AP_ID)]; - char dummy3[sizeof(UE_X2AP_ID)]; - char dummy4[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_SecondaryRATUsageReportList() { set(mandatory); type=3;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=4;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SecondaryRATDataUsageReport ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SecondaryRATDataUsageReport-IEs}}, - ... -} -*/ - -struct SecondaryRATDataUsageReport : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SecondaryRATDataUsageReport";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SgNBActivityNotification-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SgNB-UE-X2AP-ID CRITICALITY reject TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}| - { ID id-UEContextLevelUserPlaneActivity CRITICALITY ignore TYPE UserPlaneTrafficActivityReport PRESENCE optional}| - { ID id-ERABActivityNotifyItemList CRITICALITY ignore TYPE ERABActivityNotifyItemList PRESENCE optional}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}, - ... -} -*/ - -struct SgNBActivityNotification_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(id_SgNB_UE_X2AP_ID); type=2;} - void select_id_UEContextLevelUserPlaneActivity() { set(id_UEContextLevelUserPlaneActivity); type=3;} - void select_id_ERABActivityNotifyItemList() { set(id_ERABActivityNotifyItemList); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=5;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SgNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_UEContextLevelUserPlaneActivity)) { type = 3; return true; } - else if(equal(id_ERABActivityNotifyItemList)) { type = 4; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SgNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_UEContextLevelUserPlaneActivity);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_ERABActivityNotifyItemList);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(reject); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(reject); type=2;} - void select_id_UEContextLevelUserPlaneActivity() { set(ignore); type=3;} - void select_id_ERABActivityNotifyItemList() { set(ignore); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(reject); type=5;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(reject)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(reject);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - SgNB_UE_X2AP_ID& select_id_SgNB_UE_X2AP_ID() { return set(2); } - SgNB_UE_X2AP_ID const* get_id_SgNB_UE_X2AP_ID() const { return get(2); } - UserPlaneTrafficActivityReport& select_id_UEContextLevelUserPlaneActivity() { return set(3); } - UserPlaneTrafficActivityReport const* get_id_UEContextLevelUserPlaneActivity() const { return get(3); } - ERABActivityNotifyItemList& select_id_ERABActivityNotifyItemList() { return set(4); } - ERABActivityNotifyItemList const* get_id_ERABActivityNotifyItemList() const { return get(4); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(5); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(5); } - bool is_unknown() const { return type == 6; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SgNB_UE_X2AP_ID()); return true; - case 3: v(select_id_UEContextLevelUserPlaneActivity()); return true; - case 4: v(select_id_ERABActivityNotifyItemList()); return true; - case 5: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 6: if(type != 6) {clear(); asn::base::set();} type = 6; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(ERABActivityNotifyItemList)]; - char dummy2[sizeof(SgNB_UE_X2AP_ID)]; - char dummy3[sizeof(UE_X2AP_ID)]; - char dummy4[sizeof(UE_X2AP_ID_Extension)]; - char dummy5[sizeof(UserPlaneTrafficActivityReport)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_UEContextLevelUserPlaneActivity() { set(optional); type=3;} - void select_id_ERABActivityNotifyItemList() { set(optional); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=5;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SgNBActivityNotification ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SgNBActivityNotification-IEs}}, - ... -} -*/ - -struct SgNBActivityNotification : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SgNBActivityNotification";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SgNBAdditionRequest-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-NRUESecurityCapabilities CRITICALITY reject TYPE NRUESecurityCapabilities PRESENCE mandatory}| - { ID id-SgNBSecurityKey CRITICALITY reject TYPE SgNBSecurityKey PRESENCE mandatory}| - { ID id-SgNBUEAggregateMaximumBitRate CRITICALITY reject TYPE UEAggregateMaximumBitRate PRESENCE mandatory}| - { ID id-SelectedPLMN CRITICALITY ignore TYPE PLMN-Identity PRESENCE optional}| - { ID id-HandoverRestrictionList CRITICALITY ignore TYPE HandoverRestrictionList PRESENCE optional}| - { ID id-E-RABs-ToBeAdded-SgNBAddReqList CRITICALITY reject TYPE E-RABs-ToBeAdded-SgNBAddReqList PRESENCE mandatory}| - { ID id-MeNBtoSgNBContainer CRITICALITY reject TYPE MeNBtoSgNBContainer PRESENCE mandatory}| - { ID id-SgNB-UE-X2AP-ID CRITICALITY reject TYPE SgNB-UE-X2AP-ID PRESENCE optional}| - { ID id-ExpectedUEBehaviour CRITICALITY ignore TYPE ExpectedUEBehaviour PRESENCE optional}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-RequestedSplitSRBs CRITICALITY reject TYPE SplitSRBs PRESENCE optional}| - { ID id-MeNBResourceCoordinationInformation CRITICALITY ignore TYPE MeNBResourceCoordinationInformation PRESENCE optional}| - { ID id-SGNB-Addition-Trigger-Ind CRITICALITY reject TYPE SGNB-Addition-Trigger-Ind PRESENCE optional}| - { ID id-SubscriberProfileIDforRFP CRITICALITY ignore TYPE SubscriberProfileIDforRFP PRESENCE optional}| - { ID id-MeNBCell-ID CRITICALITY reject TYPE ECGI PRESENCE mandatory}, - ... -} -*/ - -struct SgNBAdditionRequest_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 17; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_NRUESecurityCapabilities() { set(id_NRUESecurityCapabilities); type=2;} - void select_id_SgNBSecurityKey() { set(id_SgNBSecurityKey); type=3;} - void select_id_SgNBUEAggregateMaximumBitRate() { set(id_SgNBUEAggregateMaximumBitRate); type=4;} - void select_id_SelectedPLMN() { set(id_SelectedPLMN); type=5;} - void select_id_HandoverRestrictionList() { set(id_HandoverRestrictionList); type=6;} - void select_id_E_RABs_ToBeAdded_SgNBAddReqList() { set(id_E_RABs_ToBeAdded_SgNBAddReqList); type=7;} - void select_id_MeNBtoSgNBContainer() { set(id_MeNBtoSgNBContainer); type=8;} - void select_id_SgNB_UE_X2AP_ID() { set(id_SgNB_UE_X2AP_ID); type=9;} - void select_id_ExpectedUEBehaviour() { set(id_ExpectedUEBehaviour); type=10;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=11;} - void select_id_RequestedSplitSRBs() { set(id_RequestedSplitSRBs); type=12;} - void select_id_MeNBResourceCoordinationInformation() { set(id_MeNBResourceCoordinationInformation); type=13;} - void select_id_SGNB_Addition_Trigger_Ind() { set(id_SGNB_Addition_Trigger_Ind); type=14;} - void select_id_SubscriberProfileIDforRFP() { set(id_SubscriberProfileIDforRFP); type=15;} - void select_id_MeNBCell_ID() { set(id_MeNBCell_ID); type=16;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_NRUESecurityCapabilities)) { type = 2; return true; } - else if(equal(id_SgNBSecurityKey)) { type = 3; return true; } - else if(equal(id_SgNBUEAggregateMaximumBitRate)) { type = 4; return true; } - else if(equal(id_SelectedPLMN)) { type = 5; return true; } - else if(equal(id_HandoverRestrictionList)) { type = 6; return true; } - else if(equal(id_E_RABs_ToBeAdded_SgNBAddReqList)) { type = 7; return true; } - else if(equal(id_MeNBtoSgNBContainer)) { type = 8; return true; } - else if(equal(id_SgNB_UE_X2AP_ID)) { type = 9; return true; } - else if(equal(id_ExpectedUEBehaviour)) { type = 10; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 11; return true; } - else if(equal(id_RequestedSplitSRBs)) { type = 12; return true; } - else if(equal(id_MeNBResourceCoordinationInformation)) { type = 13; return true; } - else if(equal(id_SGNB_Addition_Trigger_Ind)) { type = 14; return true; } - else if(equal(id_SubscriberProfileIDforRFP)) { type = 15; return true; } - else if(equal(id_MeNBCell_ID)) { type = 16; return true; } - else { type = 17; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_NRUESecurityCapabilities);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_SgNBSecurityKey);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_SgNBUEAggregateMaximumBitRate);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_SelectedPLMN);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_HandoverRestrictionList);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(id_E_RABs_ToBeAdded_SgNBAddReqList);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(id_MeNBtoSgNBContainer);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(id_SgNB_UE_X2AP_ID);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(id_ExpectedUEBehaviour);} return false; - case 11: type = 11; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 12: type = 12; if(v(ref_nested())) { return equal(id_RequestedSplitSRBs);} return false; - case 13: type = 13; if(v(ref_nested())) { return equal(id_MeNBResourceCoordinationInformation);} return false; - case 14: type = 14; if(v(ref_nested())) { return equal(id_SGNB_Addition_Trigger_Ind);} return false; - case 15: type = 15; if(v(ref_nested())) { return equal(id_SubscriberProfileIDforRFP);} return false; - case 16: type = 16; if(v(ref_nested())) { return equal(id_MeNBCell_ID);} return false; - case 17: type = 17; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 17; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(reject); type=1;} - void select_id_NRUESecurityCapabilities() { set(reject); type=2;} - void select_id_SgNBSecurityKey() { set(reject); type=3;} - void select_id_SgNBUEAggregateMaximumBitRate() { set(reject); type=4;} - void select_id_SelectedPLMN() { set(ignore); type=5;} - void select_id_HandoverRestrictionList() { set(ignore); type=6;} - void select_id_E_RABs_ToBeAdded_SgNBAddReqList() { set(reject); type=7;} - void select_id_MeNBtoSgNBContainer() { set(reject); type=8;} - void select_id_SgNB_UE_X2AP_ID() { set(reject); type=9;} - void select_id_ExpectedUEBehaviour() { set(ignore); type=10;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(reject); type=11;} - void select_id_RequestedSplitSRBs() { set(reject); type=12;} - void select_id_MeNBResourceCoordinationInformation() { set(ignore); type=13;} - void select_id_SGNB_Addition_Trigger_Ind() { set(reject); type=14;} - void select_id_SubscriberProfileIDforRFP() { set(ignore); type=15;} - void select_id_MeNBCell_ID() { set(reject); type=16;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(reject)) { type = 3; return true; } - else if(equal(reject)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else if(equal(ignore)) { type = 6; return true; } - else if(equal(reject)) { type = 7; return true; } - else if(equal(reject)) { type = 8; return true; } - else if(equal(reject)) { type = 9; return true; } - else if(equal(ignore)) { type = 10; return true; } - else if(equal(reject)) { type = 11; return true; } - else if(equal(reject)) { type = 12; return true; } - else if(equal(ignore)) { type = 13; return true; } - else if(equal(reject)) { type = 14; return true; } - else if(equal(ignore)) { type = 15; return true; } - else if(equal(reject)) { type = 16; return true; } - else { type = 17; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(reject);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(reject);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(ignore);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(reject);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(reject);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(reject);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(ignore);} return false; - case 11: type = 11; if(v(ref_nested())) { return equal(reject);} return false; - case 12: type = 12; if(v(ref_nested())) { return equal(reject);} return false; - case 13: type = 13; if(v(ref_nested())) { return equal(ignore);} return false; - case 14: type = 14; if(v(ref_nested())) { return equal(reject);} return false; - case 15: type = 15; if(v(ref_nested())) { return equal(ignore);} return false; - case 16: type = 16; if(v(ref_nested())) { return equal(reject);} return false; - case 17: type = 17; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - NRUESecurityCapabilities& select_id_NRUESecurityCapabilities() { return set(2); } - NRUESecurityCapabilities const* get_id_NRUESecurityCapabilities() const { return get(2); } - SgNBSecurityKey& select_id_SgNBSecurityKey() { return set(3); } - SgNBSecurityKey const* get_id_SgNBSecurityKey() const { return get(3); } - UEAggregateMaximumBitRate& select_id_SgNBUEAggregateMaximumBitRate() { return set(4); } - UEAggregateMaximumBitRate const* get_id_SgNBUEAggregateMaximumBitRate() const { return get(4); } - PLMN_Identity& select_id_SelectedPLMN() { return set(5); } - PLMN_Identity const* get_id_SelectedPLMN() const { return get(5); } - HandoverRestrictionList& select_id_HandoverRestrictionList() { return set(6); } - HandoverRestrictionList const* get_id_HandoverRestrictionList() const { return get(6); } - E_RABs_ToBeAdded_SgNBAddReqList& select_id_E_RABs_ToBeAdded_SgNBAddReqList() { return set(7); } - E_RABs_ToBeAdded_SgNBAddReqList const* get_id_E_RABs_ToBeAdded_SgNBAddReqList() const { return get(7); } - MeNBtoSgNBContainer& select_id_MeNBtoSgNBContainer() { return set(8); } - MeNBtoSgNBContainer const* get_id_MeNBtoSgNBContainer() const { return get(8); } - SgNB_UE_X2AP_ID& select_id_SgNB_UE_X2AP_ID() { return set(9); } - SgNB_UE_X2AP_ID const* get_id_SgNB_UE_X2AP_ID() const { return get(9); } - ExpectedUEBehaviour& select_id_ExpectedUEBehaviour() { return set(10); } - ExpectedUEBehaviour const* get_id_ExpectedUEBehaviour() const { return get(10); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(11); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(11); } - SplitSRBs& select_id_RequestedSplitSRBs() { return set(12); } - SplitSRBs const* get_id_RequestedSplitSRBs() const { return get(12); } - MeNBResourceCoordinationInformation& select_id_MeNBResourceCoordinationInformation() { return set(13); } - MeNBResourceCoordinationInformation const* get_id_MeNBResourceCoordinationInformation() const { return get(13); } - SGNB_Addition_Trigger_Ind& select_id_SGNB_Addition_Trigger_Ind() { return set(14); } - SGNB_Addition_Trigger_Ind const* get_id_SGNB_Addition_Trigger_Ind() const { return get(14); } - SubscriberProfileIDforRFP& select_id_SubscriberProfileIDforRFP() { return set(15); } - SubscriberProfileIDforRFP const* get_id_SubscriberProfileIDforRFP() const { return get(15); } - ECGI& select_id_MeNBCell_ID() { return set(16); } - ECGI const* get_id_MeNBCell_ID() const { return get(16); } - bool is_unknown() const { return type == 17; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - case 7: var.destroy(); break; - case 8: var.destroy(); break; - case 9: var.destroy(); break; - case 10: var.destroy(); break; - case 11: var.destroy(); break; - case 12: var.destroy(); break; - case 13: var.destroy(); break; - case 14: var.destroy(); break; - case 15: var.destroy(); break; - case 16: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - v.template operator()(7); - v.template operator()(8); - v.template operator()(9); - v.template operator()(10); - v.template operator()(11); - v.template operator()(12); - v.template operator()(13); - v.template operator()(14); - v.template operator()(15); - v.template operator()(16); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_NRUESecurityCapabilities()); return true; - case 3: v(select_id_SgNBSecurityKey()); return true; - case 4: v(select_id_SgNBUEAggregateMaximumBitRate()); return true; - case 5: v(select_id_SelectedPLMN()); return true; - case 6: v(select_id_HandoverRestrictionList()); return true; - case 7: v(select_id_E_RABs_ToBeAdded_SgNBAddReqList()); return true; - case 8: v(select_id_MeNBtoSgNBContainer()); return true; - case 9: v(select_id_SgNB_UE_X2AP_ID()); return true; - case 10: v(select_id_ExpectedUEBehaviour()); return true; - case 11: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 12: v(select_id_RequestedSplitSRBs()); return true; - case 13: v(select_id_MeNBResourceCoordinationInformation()); return true; - case 14: v(select_id_SGNB_Addition_Trigger_Ind()); return true; - case 15: v(select_id_SubscriberProfileIDforRFP()); return true; - case 16: v(select_id_MeNBCell_ID()); return true; - case 17: if(type != 17) {clear(); asn::base::set();} type = 17; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - case 7: v(var.as()); return true; - case 8: v(var.as()); return true; - case 9: v(var.as()); return true; - case 10: v(var.as()); return true; - case 11: v(var.as()); return true; - case 12: v(var.as()); return true; - case 13: v(var.as()); return true; - case 14: v(var.as()); return true; - case 15: v(var.as()); return true; - case 16: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(ECGI)]; - char dummy2[sizeof(E_RABs_ToBeAdded_SgNBAddReqList)]; - char dummy3[sizeof(ExpectedUEBehaviour)]; - char dummy4[sizeof(HandoverRestrictionList)]; - char dummy5[sizeof(MeNBResourceCoordinationInformation)]; - char dummy6[sizeof(MeNBtoSgNBContainer)]; - char dummy7[sizeof(NRUESecurityCapabilities)]; - char dummy8[sizeof(PLMN_Identity)]; - char dummy9[sizeof(SGNB_Addition_Trigger_Ind)]; - char dummy10[sizeof(SgNBSecurityKey)]; - char dummy11[sizeof(SgNB_UE_X2AP_ID)]; - char dummy12[sizeof(SplitSRBs)]; - char dummy13[sizeof(SubscriberProfileIDforRFP)]; - char dummy14[sizeof(UEAggregateMaximumBitRate)]; - char dummy15[sizeof(UE_X2AP_ID)]; - char dummy16[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 17; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_NRUESecurityCapabilities() { set(mandatory); type=2;} - void select_id_SgNBSecurityKey() { set(mandatory); type=3;} - void select_id_SgNBUEAggregateMaximumBitRate() { set(mandatory); type=4;} - void select_id_SelectedPLMN() { set(optional); type=5;} - void select_id_HandoverRestrictionList() { set(optional); type=6;} - void select_id_E_RABs_ToBeAdded_SgNBAddReqList() { set(mandatory); type=7;} - void select_id_MeNBtoSgNBContainer() { set(mandatory); type=8;} - void select_id_SgNB_UE_X2AP_ID() { set(optional); type=9;} - void select_id_ExpectedUEBehaviour() { set(optional); type=10;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=11;} - void select_id_RequestedSplitSRBs() { set(optional); type=12;} - void select_id_MeNBResourceCoordinationInformation() { set(optional); type=13;} - void select_id_SGNB_Addition_Trigger_Ind() { set(optional); type=14;} - void select_id_SubscriberProfileIDforRFP() { set(optional); type=15;} - void select_id_MeNBCell_ID() { set(mandatory); type=16;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(mandatory)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else if(equal(mandatory)) { type = 7; return true; } - else if(equal(mandatory)) { type = 8; return true; } - else if(equal(optional)) { type = 9; return true; } - else if(equal(optional)) { type = 10; return true; } - else if(equal(optional)) { type = 11; return true; } - else if(equal(optional)) { type = 12; return true; } - else if(equal(optional)) { type = 13; return true; } - else if(equal(optional)) { type = 14; return true; } - else if(equal(optional)) { type = 15; return true; } - else if(equal(mandatory)) { type = 16; return true; } - else { type = 17; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(mandatory);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(mandatory);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(mandatory);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(optional);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(optional);} return false; - case 11: type = 11; if(v(ref_nested())) { return equal(optional);} return false; - case 12: type = 12; if(v(ref_nested())) { return equal(optional);} return false; - case 13: type = 13; if(v(ref_nested())) { return equal(optional);} return false; - case 14: type = 14; if(v(ref_nested())) { return equal(optional);} return false; - case 15: type = 15; if(v(ref_nested())) { return equal(optional);} return false; - case 16: type = 16; if(v(ref_nested())) { return equal(mandatory);} return false; - case 17: type = 17; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SgNBAdditionRequest ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SgNBAdditionRequest-IEs}}, - ... -} -*/ - -struct SgNBAdditionRequest : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SgNBAdditionRequest";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SgNBAdditionRequestAcknowledge-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SgNB-UE-X2AP-ID CRITICALITY reject TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}| - { ID id-E-RABs-Admitted-ToBeAdded-SgNBAddReqAckList CRITICALITY ignore TYPE E-RABs-Admitted-ToBeAdded-SgNBAddReqAckList PRESENCE mandatory}| - { ID id-E-RABs-NotAdmitted-List CRITICALITY ignore TYPE E-RAB-List PRESENCE optional}| - { ID id-SgNBtoMeNBContainer CRITICALITY reject TYPE SgNBtoMeNBContainer PRESENCE mandatory}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-AdmittedSplitSRBs CRITICALITY reject TYPE SplitSRBs PRESENCE optional}| - { ID id-SgNBResourceCoordinationInformation CRITICALITY ignore TYPE SgNBResourceCoordinationInformation PRESENCE optional}| - { ID id-RRCConfigIndication CRITICALITY reject TYPE RRC-Config-Ind PRESENCE optional}, - ... -} -*/ - -struct SgNBAdditionRequestAcknowledge_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 11; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(id_SgNB_UE_X2AP_ID); type=2;} - void select_id_E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList() { set(id_E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList); type=3;} - void select_id_E_RABs_NotAdmitted_List() { set(id_E_RABs_NotAdmitted_List); type=4;} - void select_id_SgNBtoMeNBContainer() { set(id_SgNBtoMeNBContainer); type=5;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=6;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=7;} - void select_id_AdmittedSplitSRBs() { set(id_AdmittedSplitSRBs); type=8;} - void select_id_SgNBResourceCoordinationInformation() { set(id_SgNBResourceCoordinationInformation); type=9;} - void select_id_RRCConfigIndication() { set(id_RRCConfigIndication); type=10;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SgNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList)) { type = 3; return true; } - else if(equal(id_E_RABs_NotAdmitted_List)) { type = 4; return true; } - else if(equal(id_SgNBtoMeNBContainer)) { type = 5; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 6; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 7; return true; } - else if(equal(id_AdmittedSplitSRBs)) { type = 8; return true; } - else if(equal(id_SgNBResourceCoordinationInformation)) { type = 9; return true; } - else if(equal(id_RRCConfigIndication)) { type = 10; return true; } - else { type = 11; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SgNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_E_RABs_NotAdmitted_List);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_SgNBtoMeNBContainer);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(id_AdmittedSplitSRBs);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(id_SgNBResourceCoordinationInformation);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(id_RRCConfigIndication);} return false; - case 11: type = 11; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 11; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(reject); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(reject); type=2;} - void select_id_E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList() { set(ignore); type=3;} - void select_id_E_RABs_NotAdmitted_List() { set(ignore); type=4;} - void select_id_SgNBtoMeNBContainer() { set(reject); type=5;} - void select_id_CriticalityDiagnostics() { set(ignore); type=6;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(reject); type=7;} - void select_id_AdmittedSplitSRBs() { set(reject); type=8;} - void select_id_SgNBResourceCoordinationInformation() { set(ignore); type=9;} - void select_id_RRCConfigIndication() { set(reject); type=10;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(reject)) { type = 5; return true; } - else if(equal(ignore)) { type = 6; return true; } - else if(equal(reject)) { type = 7; return true; } - else if(equal(reject)) { type = 8; return true; } - else if(equal(ignore)) { type = 9; return true; } - else if(equal(reject)) { type = 10; return true; } - else { type = 11; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(reject);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(ignore);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(reject);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(reject);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(ignore);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(reject);} return false; - case 11: type = 11; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - SgNB_UE_X2AP_ID& select_id_SgNB_UE_X2AP_ID() { return set(2); } - SgNB_UE_X2AP_ID const* get_id_SgNB_UE_X2AP_ID() const { return get(2); } - E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList& select_id_E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList() { return set(3); } - E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList const* get_id_E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList() const { return get(3); } - E_RAB_List& select_id_E_RABs_NotAdmitted_List() { return set(4); } - E_RAB_List const* get_id_E_RABs_NotAdmitted_List() const { return get(4); } - SgNBtoMeNBContainer& select_id_SgNBtoMeNBContainer() { return set(5); } - SgNBtoMeNBContainer const* get_id_SgNBtoMeNBContainer() const { return get(5); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(6); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(6); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(7); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(7); } - SplitSRBs& select_id_AdmittedSplitSRBs() { return set(8); } - SplitSRBs const* get_id_AdmittedSplitSRBs() const { return get(8); } - SgNBResourceCoordinationInformation& select_id_SgNBResourceCoordinationInformation() { return set(9); } - SgNBResourceCoordinationInformation const* get_id_SgNBResourceCoordinationInformation() const { return get(9); } - RRC_Config_Ind& select_id_RRCConfigIndication() { return set(10); } - RRC_Config_Ind const* get_id_RRCConfigIndication() const { return get(10); } - bool is_unknown() const { return type == 11; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - case 7: var.destroy(); break; - case 8: var.destroy(); break; - case 9: var.destroy(); break; - case 10: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - v.template operator()(7); - v.template operator()(8); - v.template operator()(9); - v.template operator()(10); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SgNB_UE_X2AP_ID()); return true; - case 3: v(select_id_E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList()); return true; - case 4: v(select_id_E_RABs_NotAdmitted_List()); return true; - case 5: v(select_id_SgNBtoMeNBContainer()); return true; - case 6: v(select_id_CriticalityDiagnostics()); return true; - case 7: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 8: v(select_id_AdmittedSplitSRBs()); return true; - case 9: v(select_id_SgNBResourceCoordinationInformation()); return true; - case 10: v(select_id_RRCConfigIndication()); return true; - case 11: if(type != 11) {clear(); asn::base::set();} type = 11; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - case 7: v(var.as()); return true; - case 8: v(var.as()); return true; - case 9: v(var.as()); return true; - case 10: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CriticalityDiagnostics)]; - char dummy2[sizeof(E_RAB_List)]; - char dummy3[sizeof(E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList)]; - char dummy4[sizeof(RRC_Config_Ind)]; - char dummy5[sizeof(SgNBResourceCoordinationInformation)]; - char dummy6[sizeof(SgNB_UE_X2AP_ID)]; - char dummy7[sizeof(SgNBtoMeNBContainer)]; - char dummy8[sizeof(SplitSRBs)]; - char dummy9[sizeof(UE_X2AP_ID)]; - char dummy10[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 11; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList() { set(mandatory); type=3;} - void select_id_E_RABs_NotAdmitted_List() { set(optional); type=4;} - void select_id_SgNBtoMeNBContainer() { set(mandatory); type=5;} - void select_id_CriticalityDiagnostics() { set(optional); type=6;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=7;} - void select_id_AdmittedSplitSRBs() { set(optional); type=8;} - void select_id_SgNBResourceCoordinationInformation() { set(optional); type=9;} - void select_id_RRCConfigIndication() { set(optional); type=10;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(mandatory)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else if(equal(optional)) { type = 7; return true; } - else if(equal(optional)) { type = 8; return true; } - else if(equal(optional)) { type = 9; return true; } - else if(equal(optional)) { type = 10; return true; } - else { type = 11; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(mandatory);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(optional);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(optional);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(optional);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(optional);} return false; - case 11: type = 11; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SgNBAdditionRequestAcknowledge ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SgNBAdditionRequestAcknowledge-IEs}}, - ... -} -*/ - -struct SgNBAdditionRequestAcknowledge : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SgNBAdditionRequestAcknowledge";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SgNBAdditionRequestReject-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SgNB-UE-X2AP-ID CRITICALITY reject TYPE SgNB-UE-X2AP-ID PRESENCE optional}| - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}, - ... -} -*/ - -struct SgNBAdditionRequestReject_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(id_SgNB_UE_X2AP_ID); type=2;} - void select_id_Cause() { set(id_Cause); type=3;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=5;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SgNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_Cause)) { type = 3; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 4; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SgNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(reject); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(reject); type=2;} - void select_id_Cause() { set(ignore); type=3;} - void select_id_CriticalityDiagnostics() { set(ignore); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(reject); type=5;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(reject)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(reject);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - SgNB_UE_X2AP_ID& select_id_SgNB_UE_X2AP_ID() { return set(2); } - SgNB_UE_X2AP_ID const* get_id_SgNB_UE_X2AP_ID() const { return get(2); } - Cause& select_id_Cause() { return set(3); } - Cause const* get_id_Cause() const { return get(3); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(4); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(4); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(5); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(5); } - bool is_unknown() const { return type == 6; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SgNB_UE_X2AP_ID()); return true; - case 3: v(select_id_Cause()); return true; - case 4: v(select_id_CriticalityDiagnostics()); return true; - case 5: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 6: if(type != 6) {clear(); asn::base::set();} type = 6; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(CriticalityDiagnostics)]; - char dummy3[sizeof(SgNB_UE_X2AP_ID)]; - char dummy4[sizeof(UE_X2AP_ID)]; - char dummy5[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(optional); type=2;} - void select_id_Cause() { set(mandatory); type=3;} - void select_id_CriticalityDiagnostics() { set(optional); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=5;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SgNBAdditionRequestReject ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SgNBAdditionRequestReject-IEs}}, - ... -} -*/ - -struct SgNBAdditionRequestReject : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SgNBAdditionRequestReject";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SgNBChangeConfirm-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SgNB-UE-X2AP-ID CRITICALITY ignore TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}| - { ID id-E-RABs-ToBeReleased-SgNBChaConfList CRITICALITY ignore TYPE E-RABs-ToBeReleased-SgNBChaConfList PRESENCE optional}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}, - ... -} -*/ - -struct SgNBChangeConfirm_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(id_SgNB_UE_X2AP_ID); type=2;} - void select_id_E_RABs_ToBeReleased_SgNBChaConfList() { set(id_E_RABs_ToBeReleased_SgNBChaConfList); type=3;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=5;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SgNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_E_RABs_ToBeReleased_SgNBChaConfList)) { type = 3; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 4; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SgNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_E_RABs_ToBeReleased_SgNBChaConfList);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(ignore); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(ignore); type=2;} - void select_id_E_RABs_ToBeReleased_SgNBChaConfList() { set(ignore); type=3;} - void select_id_CriticalityDiagnostics() { set(ignore); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(ignore); type=5;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - SgNB_UE_X2AP_ID& select_id_SgNB_UE_X2AP_ID() { return set(2); } - SgNB_UE_X2AP_ID const* get_id_SgNB_UE_X2AP_ID() const { return get(2); } - E_RABs_ToBeReleased_SgNBChaConfList& select_id_E_RABs_ToBeReleased_SgNBChaConfList() { return set(3); } - E_RABs_ToBeReleased_SgNBChaConfList const* get_id_E_RABs_ToBeReleased_SgNBChaConfList() const { return get(3); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(4); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(4); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(5); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(5); } - bool is_unknown() const { return type == 6; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SgNB_UE_X2AP_ID()); return true; - case 3: v(select_id_E_RABs_ToBeReleased_SgNBChaConfList()); return true; - case 4: v(select_id_CriticalityDiagnostics()); return true; - case 5: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 6: if(type != 6) {clear(); asn::base::set();} type = 6; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CriticalityDiagnostics)]; - char dummy2[sizeof(E_RABs_ToBeReleased_SgNBChaConfList)]; - char dummy3[sizeof(SgNB_UE_X2AP_ID)]; - char dummy4[sizeof(UE_X2AP_ID)]; - char dummy5[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_E_RABs_ToBeReleased_SgNBChaConfList() { set(optional); type=3;} - void select_id_CriticalityDiagnostics() { set(optional); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=5;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SgNBChangeConfirm ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SgNBChangeConfirm-IEs}}, - ... -} -*/ - -struct SgNBChangeConfirm : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SgNBChangeConfirm";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SgNBChangeRefuse-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SgNB-UE-X2AP-ID CRITICALITY ignore TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}| - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}, - ... -} -*/ - -struct SgNBChangeRefuse_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(id_SgNB_UE_X2AP_ID); type=2;} - void select_id_Cause() { set(id_Cause); type=3;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=5;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SgNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_Cause)) { type = 3; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 4; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SgNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(ignore); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(ignore); type=2;} - void select_id_Cause() { set(ignore); type=3;} - void select_id_CriticalityDiagnostics() { set(ignore); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(reject); type=5;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(reject)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(reject);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - SgNB_UE_X2AP_ID& select_id_SgNB_UE_X2AP_ID() { return set(2); } - SgNB_UE_X2AP_ID const* get_id_SgNB_UE_X2AP_ID() const { return get(2); } - Cause& select_id_Cause() { return set(3); } - Cause const* get_id_Cause() const { return get(3); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(4); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(4); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(5); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(5); } - bool is_unknown() const { return type == 6; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SgNB_UE_X2AP_ID()); return true; - case 3: v(select_id_Cause()); return true; - case 4: v(select_id_CriticalityDiagnostics()); return true; - case 5: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 6: if(type != 6) {clear(); asn::base::set();} type = 6; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(CriticalityDiagnostics)]; - char dummy3[sizeof(SgNB_UE_X2AP_ID)]; - char dummy4[sizeof(UE_X2AP_ID)]; - char dummy5[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_Cause() { set(mandatory); type=3;} - void select_id_CriticalityDiagnostics() { set(optional); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=5;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SgNBChangeRefuse ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SgNBChangeRefuse-IEs}}, - ... -} -*/ - -struct SgNBChangeRefuse : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SgNBChangeRefuse";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SgNBChangeRequired-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SgNB-UE-X2AP-ID CRITICALITY reject TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}| - { ID id-Target-SgNB-ID CRITICALITY reject TYPE GlobalGNB-ID PRESENCE mandatory}| - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| - { ID id-SgNBtoMeNBContainer CRITICALITY reject TYPE SgNBtoMeNBContainer PRESENCE optional}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}, - ... -} -*/ - -struct SgNBChangeRequired_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(id_SgNB_UE_X2AP_ID); type=2;} - void select_id_Target_SgNB_ID() { set(id_Target_SgNB_ID); type=3;} - void select_id_Cause() { set(id_Cause); type=4;} - void select_id_SgNBtoMeNBContainer() { set(id_SgNBtoMeNBContainer); type=5;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=6;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SgNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_Target_SgNB_ID)) { type = 3; return true; } - else if(equal(id_Cause)) { type = 4; return true; } - else if(equal(id_SgNBtoMeNBContainer)) { type = 5; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SgNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_Target_SgNB_ID);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_SgNBtoMeNBContainer);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(reject); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(reject); type=2;} - void select_id_Target_SgNB_ID() { set(reject); type=3;} - void select_id_Cause() { set(ignore); type=4;} - void select_id_SgNBtoMeNBContainer() { set(reject); type=5;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(reject); type=6;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(reject)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(reject)) { type = 5; return true; } - else if(equal(reject)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(reject);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(reject);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(reject);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - SgNB_UE_X2AP_ID& select_id_SgNB_UE_X2AP_ID() { return set(2); } - SgNB_UE_X2AP_ID const* get_id_SgNB_UE_X2AP_ID() const { return get(2); } - GlobalGNB_ID& select_id_Target_SgNB_ID() { return set(3); } - GlobalGNB_ID const* get_id_Target_SgNB_ID() const { return get(3); } - Cause& select_id_Cause() { return set(4); } - Cause const* get_id_Cause() const { return get(4); } - SgNBtoMeNBContainer& select_id_SgNBtoMeNBContainer() { return set(5); } - SgNBtoMeNBContainer const* get_id_SgNBtoMeNBContainer() const { return get(5); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(6); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(6); } - bool is_unknown() const { return type == 7; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SgNB_UE_X2AP_ID()); return true; - case 3: v(select_id_Target_SgNB_ID()); return true; - case 4: v(select_id_Cause()); return true; - case 5: v(select_id_SgNBtoMeNBContainer()); return true; - case 6: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 7: if(type != 7) {clear(); asn::base::set();} type = 7; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(GlobalGNB_ID)]; - char dummy3[sizeof(SgNB_UE_X2AP_ID)]; - char dummy4[sizeof(SgNBtoMeNBContainer)]; - char dummy5[sizeof(UE_X2AP_ID)]; - char dummy6[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_Target_SgNB_ID() { set(mandatory); type=3;} - void select_id_Cause() { set(mandatory); type=4;} - void select_id_SgNBtoMeNBContainer() { set(optional); type=5;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=6;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(mandatory)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(mandatory);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SgNBChangeRequired ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SgNBChangeRequired-IEs}}, - ... -} -*/ - -struct SgNBChangeRequired : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SgNBChangeRequired";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SgNBCounterCheckRequest-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SgNB-UE-X2AP-ID CRITICALITY reject TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}| - { ID id-E-RABs-SubjectToSgNBCounterCheck-List CRITICALITY ignore TYPE E-RABs-SubjectToSgNBCounterCheck-List PRESENCE mandatory}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}, - ... -} -*/ - -struct SgNBCounterCheckRequest_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(id_SgNB_UE_X2AP_ID); type=2;} - void select_id_E_RABs_SubjectToSgNBCounterCheck_List() { set(id_E_RABs_SubjectToSgNBCounterCheck_List); type=3;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=4;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SgNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_E_RABs_SubjectToSgNBCounterCheck_List)) { type = 3; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SgNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_E_RABs_SubjectToSgNBCounterCheck_List);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(reject); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(reject); type=2;} - void select_id_E_RABs_SubjectToSgNBCounterCheck_List() { set(ignore); type=3;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(ignore); type=4;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - SgNB_UE_X2AP_ID& select_id_SgNB_UE_X2AP_ID() { return set(2); } - SgNB_UE_X2AP_ID const* get_id_SgNB_UE_X2AP_ID() const { return get(2); } - E_RABs_SubjectToSgNBCounterCheck_List& select_id_E_RABs_SubjectToSgNBCounterCheck_List() { return set(3); } - E_RABs_SubjectToSgNBCounterCheck_List const* get_id_E_RABs_SubjectToSgNBCounterCheck_List() const { return get(3); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(4); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(4); } - bool is_unknown() const { return type == 5; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SgNB_UE_X2AP_ID()); return true; - case 3: v(select_id_E_RABs_SubjectToSgNBCounterCheck_List()); return true; - case 4: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 5: if(type != 5) {clear(); asn::base::set();} type = 5; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(E_RABs_SubjectToSgNBCounterCheck_List)]; - char dummy2[sizeof(SgNB_UE_X2AP_ID)]; - char dummy3[sizeof(UE_X2AP_ID)]; - char dummy4[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_E_RABs_SubjectToSgNBCounterCheck_List() { set(mandatory); type=3;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=4;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SgNBCounterCheckRequest ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SgNBCounterCheckRequest-IEs}}, - ... -} -*/ - -struct SgNBCounterCheckRequest : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SgNBCounterCheckRequest";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SgNBModificationConfirm-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SgNB-UE-X2AP-ID CRITICALITY ignore TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}| - { ID id-E-RABs-AdmittedToBeModified-SgNBModConfList CRITICALITY ignore TYPE E-RABs-AdmittedToBeModified-SgNBModConfList PRESENCE optional}| - { ID id-MeNBtoSgNBContainer CRITICALITY ignore TYPE MeNBtoSgNBContainer PRESENCE optional}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-MeNBResourceCoordinationInformation CRITICALITY ignore TYPE MeNBResourceCoordinationInformation PRESENCE optional}, - ... -} -*/ - -struct SgNBModificationConfirm_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 8; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(id_SgNB_UE_X2AP_ID); type=2;} - void select_id_E_RABs_AdmittedToBeModified_SgNBModConfList() { set(id_E_RABs_AdmittedToBeModified_SgNBModConfList); type=3;} - void select_id_MeNBtoSgNBContainer() { set(id_MeNBtoSgNBContainer); type=4;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=5;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=6;} - void select_id_MeNBResourceCoordinationInformation() { set(id_MeNBResourceCoordinationInformation); type=7;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SgNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_E_RABs_AdmittedToBeModified_SgNBModConfList)) { type = 3; return true; } - else if(equal(id_MeNBtoSgNBContainer)) { type = 4; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 5; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 6; return true; } - else if(equal(id_MeNBResourceCoordinationInformation)) { type = 7; return true; } - else { type = 8; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SgNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_E_RABs_AdmittedToBeModified_SgNBModConfList);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_MeNBtoSgNBContainer);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(id_MeNBResourceCoordinationInformation);} return false; - case 8: type = 8; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 8; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(ignore); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(ignore); type=2;} - void select_id_E_RABs_AdmittedToBeModified_SgNBModConfList() { set(ignore); type=3;} - void select_id_MeNBtoSgNBContainer() { set(ignore); type=4;} - void select_id_CriticalityDiagnostics() { set(ignore); type=5;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(ignore); type=6;} - void select_id_MeNBResourceCoordinationInformation() { set(ignore); type=7;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else if(equal(ignore)) { type = 6; return true; } - else if(equal(ignore)) { type = 7; return true; } - else { type = 8; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(ignore);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(ignore);} return false; - case 8: type = 8; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - SgNB_UE_X2AP_ID& select_id_SgNB_UE_X2AP_ID() { return set(2); } - SgNB_UE_X2AP_ID const* get_id_SgNB_UE_X2AP_ID() const { return get(2); } - E_RABs_AdmittedToBeModified_SgNBModConfList& select_id_E_RABs_AdmittedToBeModified_SgNBModConfList() { return set(3); } - E_RABs_AdmittedToBeModified_SgNBModConfList const* get_id_E_RABs_AdmittedToBeModified_SgNBModConfList() const { return get(3); } - MeNBtoSgNBContainer& select_id_MeNBtoSgNBContainer() { return set(4); } - MeNBtoSgNBContainer const* get_id_MeNBtoSgNBContainer() const { return get(4); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(5); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(5); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(6); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(6); } - MeNBResourceCoordinationInformation& select_id_MeNBResourceCoordinationInformation() { return set(7); } - MeNBResourceCoordinationInformation const* get_id_MeNBResourceCoordinationInformation() const { return get(7); } - bool is_unknown() const { return type == 8; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - case 7: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - v.template operator()(7); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SgNB_UE_X2AP_ID()); return true; - case 3: v(select_id_E_RABs_AdmittedToBeModified_SgNBModConfList()); return true; - case 4: v(select_id_MeNBtoSgNBContainer()); return true; - case 5: v(select_id_CriticalityDiagnostics()); return true; - case 6: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 7: v(select_id_MeNBResourceCoordinationInformation()); return true; - case 8: if(type != 8) {clear(); asn::base::set();} type = 8; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - case 7: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CriticalityDiagnostics)]; - char dummy2[sizeof(E_RABs_AdmittedToBeModified_SgNBModConfList)]; - char dummy3[sizeof(MeNBResourceCoordinationInformation)]; - char dummy4[sizeof(MeNBtoSgNBContainer)]; - char dummy5[sizeof(SgNB_UE_X2AP_ID)]; - char dummy6[sizeof(UE_X2AP_ID)]; - char dummy7[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 8; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_E_RABs_AdmittedToBeModified_SgNBModConfList() { set(optional); type=3;} - void select_id_MeNBtoSgNBContainer() { set(optional); type=4;} - void select_id_CriticalityDiagnostics() { set(optional); type=5;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=6;} - void select_id_MeNBResourceCoordinationInformation() { set(optional); type=7;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else if(equal(optional)) { type = 7; return true; } - else { type = 8; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(optional);} return false; - case 8: type = 8; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SgNBModificationConfirm ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SgNBModificationConfirm-IEs}}, - ... -} -*/ - -struct SgNBModificationConfirm : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SgNBModificationConfirm";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SgNBModificationRefuse-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SgNB-UE-X2AP-ID CRITICALITY ignore TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}| - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| - { ID id-MeNBtoSgNBContainer CRITICALITY ignore TYPE MeNBtoSgNBContainer PRESENCE optional}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}, - ... -} -*/ - -struct SgNBModificationRefuse_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(id_SgNB_UE_X2AP_ID); type=2;} - void select_id_Cause() { set(id_Cause); type=3;} - void select_id_MeNBtoSgNBContainer() { set(id_MeNBtoSgNBContainer); type=4;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=5;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=6;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SgNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_Cause)) { type = 3; return true; } - else if(equal(id_MeNBtoSgNBContainer)) { type = 4; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 5; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SgNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_MeNBtoSgNBContainer);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(ignore); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(ignore); type=2;} - void select_id_Cause() { set(ignore); type=3;} - void select_id_MeNBtoSgNBContainer() { set(ignore); type=4;} - void select_id_CriticalityDiagnostics() { set(ignore); type=5;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(ignore); type=6;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else if(equal(ignore)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(ignore);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - SgNB_UE_X2AP_ID& select_id_SgNB_UE_X2AP_ID() { return set(2); } - SgNB_UE_X2AP_ID const* get_id_SgNB_UE_X2AP_ID() const { return get(2); } - Cause& select_id_Cause() { return set(3); } - Cause const* get_id_Cause() const { return get(3); } - MeNBtoSgNBContainer& select_id_MeNBtoSgNBContainer() { return set(4); } - MeNBtoSgNBContainer const* get_id_MeNBtoSgNBContainer() const { return get(4); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(5); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(5); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(6); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(6); } - bool is_unknown() const { return type == 7; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SgNB_UE_X2AP_ID()); return true; - case 3: v(select_id_Cause()); return true; - case 4: v(select_id_MeNBtoSgNBContainer()); return true; - case 5: v(select_id_CriticalityDiagnostics()); return true; - case 6: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 7: if(type != 7) {clear(); asn::base::set();} type = 7; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(CriticalityDiagnostics)]; - char dummy3[sizeof(MeNBtoSgNBContainer)]; - char dummy4[sizeof(SgNB_UE_X2AP_ID)]; - char dummy5[sizeof(UE_X2AP_ID)]; - char dummy6[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_Cause() { set(mandatory); type=3;} - void select_id_MeNBtoSgNBContainer() { set(optional); type=4;} - void select_id_CriticalityDiagnostics() { set(optional); type=5;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=6;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SgNBModificationRefuse ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SgNBModificationRefuse-IEs}}, - ... -} -*/ - -struct SgNBModificationRefuse : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SgNBModificationRefuse";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -UE-ContextInformationSgNBModReqExtIEs X2AP-PROTOCOL-EXTENSION ::= { - { ID id-SubscriberProfileIDforRFP CRITICALITY ignore EXTENSION SubscriberProfileIDforRFP PRESENCE optional}, - ... -} -*/ - -struct UE_ContextInformationSgNBModReqExtIEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_SubscriberProfileIDforRFP() { set(id_SubscriberProfileIDforRFP); type=1;} - X2AP_PROTOCOL_EXTENSION::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_SubscriberProfileIDforRFP)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_SubscriberProfileIDforRFP);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_SubscriberProfileIDforRFP() { set(ignore); type=1;} - X2AP_PROTOCOL_EXTENSION::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Extension_t : asn::typefield - { - ~Extension_t() {clear();} - size_t get_index() const {return type;} - SubscriberProfileIDforRFP& select_id_SubscriberProfileIDforRFP() { return set(1); } - SubscriberProfileIDforRFP const* get_id_SubscriberProfileIDforRFP() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_SubscriberProfileIDforRFP()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(SubscriberProfileIDforRFP)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_SubscriberProfileIDforRFP() { set(optional); type=1;} - X2AP_PROTOCOL_EXTENSION::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(optional)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(optional);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -UE-ContextInformation-SgNBModReq ::= SEQUENCE { - nRUE-SecurityCapabilities NRUESecurityCapabilities OPTIONAL, - sgNB-SecurityKey SgNBSecurityKey OPTIONAL, - sgNBUEAggregateMaximumBitRate UEAggregateMaximumBitRate OPTIONAL, - e-RABs-ToBeAdded E-RABs-ToBeAdded-SgNBModReq-List OPTIONAL, - e-RABs-ToBeModified E-RABs-ToBeModified-SgNBModReq-List OPTIONAL, - e-RABs-ToBeReleased E-RABs-ToBeReleased-SgNBModReq-List OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {UE-ContextInformationSgNBModReqExtIEs} } OPTIONAL, - ... -} -*/ - -struct UE_ContextInformation_SgNBModReq : asn::sequence<7, 0, true, 7> -{ - static constexpr const char* name() {return "UE-ContextInformation-SgNBModReq";} - using parent_t = asn::sequence<7, 0, true, 7>; - struct nRUE_SecurityCapabilities_t : NRUESecurityCapabilities - { - static constexpr const char* name() {return "nRUE_SecurityCapabilities_t";} - using parent_t = NRUESecurityCapabilities; - static constexpr bool optional = true; - - }; - nRUE_SecurityCapabilities_t& set_nRUE_SecurityCapabilities() { nRUE_SecurityCapabilities.setpresent(true); return nRUE_SecurityCapabilities;} - nRUE_SecurityCapabilities_t const* get_nRUE_SecurityCapabilities() const {return nRUE_SecurityCapabilities.is_valid() ? &nRUE_SecurityCapabilities : nullptr;} - struct sgNB_SecurityKey_t : SgNBSecurityKey - { - static constexpr const char* name() {return "sgNB_SecurityKey_t";} - using parent_t = SgNBSecurityKey; - static constexpr bool optional = true; - - }; - sgNB_SecurityKey_t& set_sgNB_SecurityKey() { sgNB_SecurityKey.setpresent(true); return sgNB_SecurityKey;} - sgNB_SecurityKey_t const* get_sgNB_SecurityKey() const {return sgNB_SecurityKey.is_valid() ? &sgNB_SecurityKey : nullptr;} - struct sgNBUEAggregateMaximumBitRate_t : UEAggregateMaximumBitRate - { - static constexpr const char* name() {return "sgNBUEAggregateMaximumBitRate_t";} - using parent_t = UEAggregateMaximumBitRate; - static constexpr bool optional = true; - - }; - sgNBUEAggregateMaximumBitRate_t& set_sgNBUEAggregateMaximumBitRate() { sgNBUEAggregateMaximumBitRate.setpresent(true); return sgNBUEAggregateMaximumBitRate;} - sgNBUEAggregateMaximumBitRate_t const* get_sgNBUEAggregateMaximumBitRate() const {return sgNBUEAggregateMaximumBitRate.is_valid() ? &sgNBUEAggregateMaximumBitRate : nullptr;} - struct e_RABs_ToBeAdded_t : E_RABs_ToBeAdded_SgNBModReq_List - { - static constexpr const char* name() {return "e_RABs_ToBeAdded_t";} - using parent_t = E_RABs_ToBeAdded_SgNBModReq_List; - static constexpr bool optional = true; - - }; - e_RABs_ToBeAdded_t& set_e_RABs_ToBeAdded() { e_RABs_ToBeAdded.setpresent(true); return e_RABs_ToBeAdded;} - e_RABs_ToBeAdded_t const* get_e_RABs_ToBeAdded() const {return e_RABs_ToBeAdded.is_valid() ? &e_RABs_ToBeAdded : nullptr;} - struct e_RABs_ToBeModified_t : E_RABs_ToBeModified_SgNBModReq_List - { - static constexpr const char* name() {return "e_RABs_ToBeModified_t";} - using parent_t = E_RABs_ToBeModified_SgNBModReq_List; - static constexpr bool optional = true; - - }; - e_RABs_ToBeModified_t& set_e_RABs_ToBeModified() { e_RABs_ToBeModified.setpresent(true); return e_RABs_ToBeModified;} - e_RABs_ToBeModified_t const* get_e_RABs_ToBeModified() const {return e_RABs_ToBeModified.is_valid() ? &e_RABs_ToBeModified : nullptr;} - struct e_RABs_ToBeReleased_t : E_RABs_ToBeReleased_SgNBModReq_List - { - static constexpr const char* name() {return "e_RABs_ToBeReleased_t";} - using parent_t = E_RABs_ToBeReleased_SgNBModReq_List; - static constexpr bool optional = true; - - }; - e_RABs_ToBeReleased_t& set_e_RABs_ToBeReleased() { e_RABs_ToBeReleased.setpresent(true); return e_RABs_ToBeReleased;} - e_RABs_ToBeReleased_t const* get_e_RABs_ToBeReleased() const {return e_RABs_ToBeReleased.is_valid() ? &e_RABs_ToBeReleased : nullptr;} - struct iE_Extensions_t : ProtocolExtensionContainer - { - static constexpr const char* name() {return "iE_Extensions_t";} - using parent_t = ProtocolExtensionContainer; - static constexpr bool optional = true; - - }; - iE_Extensions_t& set_iE_Extensions() { iE_Extensions.setpresent(true); return iE_Extensions;} - iE_Extensions_t const* get_iE_Extensions() const {return iE_Extensions.is_valid() ? &iE_Extensions : nullptr;} - template void decode(V& v) - { - v(nRUE_SecurityCapabilities); - v(sgNB_SecurityKey); - v(sgNBUEAggregateMaximumBitRate); - v(e_RABs_ToBeAdded); - v(e_RABs_ToBeModified); - v(e_RABs_ToBeReleased); - v(iE_Extensions); - - }; - template void encode(V& v) const - { - v(nRUE_SecurityCapabilities); - v(sgNB_SecurityKey); - v(sgNBUEAggregateMaximumBitRate); - v(e_RABs_ToBeAdded); - v(e_RABs_ToBeModified); - v(e_RABs_ToBeReleased); - v(iE_Extensions); - - }; - void clear() - { - nRUE_SecurityCapabilities.clear(); - sgNB_SecurityKey.clear(); - sgNBUEAggregateMaximumBitRate.clear(); - e_RABs_ToBeAdded.clear(); - e_RABs_ToBeModified.clear(); - e_RABs_ToBeReleased.clear(); - iE_Extensions.clear(); - - }; - private: - nRUE_SecurityCapabilities_t nRUE_SecurityCapabilities; - sgNB_SecurityKey_t sgNB_SecurityKey; - sgNBUEAggregateMaximumBitRate_t sgNBUEAggregateMaximumBitRate; - e_RABs_ToBeAdded_t e_RABs_ToBeAdded; - e_RABs_ToBeModified_t e_RABs_ToBeModified; - e_RABs_ToBeReleased_t e_RABs_ToBeReleased; - iE_Extensions_t iE_Extensions; - -}; -/* -SgNBModificationRequest-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SgNB-UE-X2AP-ID CRITICALITY reject TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}| - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| - { ID id-SelectedPLMN CRITICALITY ignore TYPE PLMN-Identity PRESENCE optional}| - { ID id-HandoverRestrictionList CRITICALITY ignore TYPE HandoverRestrictionList PRESENCE optional}| - { ID id-SCGConfigurationQuery CRITICALITY ignore TYPE SCGConfigurationQuery PRESENCE optional}| - { ID id-UE-ContextInformation-SgNBModReq CRITICALITY reject TYPE UE-ContextInformation-SgNBModReq PRESENCE optional}| - { ID id-MeNBtoSgNBContainer CRITICALITY reject TYPE MeNBtoSgNBContainer PRESENCE optional}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-MeNBResourceCoordinationInformation CRITICALITY ignore TYPE MeNBResourceCoordinationInformation PRESENCE optional}| - { ID id-RequestedSplitSRBs CRITICALITY ignore TYPE SplitSRBs PRESENCE optional}| - { ID id-RequestedSplitSRBsrelease CRITICALITY ignore TYPE SplitSRBs PRESENCE optional}, - ... -} -*/ - -struct SgNBModificationRequest_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 13; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(id_SgNB_UE_X2AP_ID); type=2;} - void select_id_Cause() { set(id_Cause); type=3;} - void select_id_SelectedPLMN() { set(id_SelectedPLMN); type=4;} - void select_id_HandoverRestrictionList() { set(id_HandoverRestrictionList); type=5;} - void select_id_SCGConfigurationQuery() { set(id_SCGConfigurationQuery); type=6;} - void select_id_UE_ContextInformation_SgNBModReq() { set(id_UE_ContextInformation_SgNBModReq); type=7;} - void select_id_MeNBtoSgNBContainer() { set(id_MeNBtoSgNBContainer); type=8;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=9;} - void select_id_MeNBResourceCoordinationInformation() { set(id_MeNBResourceCoordinationInformation); type=10;} - void select_id_RequestedSplitSRBs() { set(id_RequestedSplitSRBs); type=11;} - void select_id_RequestedSplitSRBsrelease() { set(id_RequestedSplitSRBsrelease); type=12;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SgNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_Cause)) { type = 3; return true; } - else if(equal(id_SelectedPLMN)) { type = 4; return true; } - else if(equal(id_HandoverRestrictionList)) { type = 5; return true; } - else if(equal(id_SCGConfigurationQuery)) { type = 6; return true; } - else if(equal(id_UE_ContextInformation_SgNBModReq)) { type = 7; return true; } - else if(equal(id_MeNBtoSgNBContainer)) { type = 8; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 9; return true; } - else if(equal(id_MeNBResourceCoordinationInformation)) { type = 10; return true; } - else if(equal(id_RequestedSplitSRBs)) { type = 11; return true; } - else if(equal(id_RequestedSplitSRBsrelease)) { type = 12; return true; } - else { type = 13; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SgNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_SelectedPLMN);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_HandoverRestrictionList);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_SCGConfigurationQuery);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(id_UE_ContextInformation_SgNBModReq);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(id_MeNBtoSgNBContainer);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(id_MeNBResourceCoordinationInformation);} return false; - case 11: type = 11; if(v(ref_nested())) { return equal(id_RequestedSplitSRBs);} return false; - case 12: type = 12; if(v(ref_nested())) { return equal(id_RequestedSplitSRBsrelease);} return false; - case 13: type = 13; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 13; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(reject); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(reject); type=2;} - void select_id_Cause() { set(ignore); type=3;} - void select_id_SelectedPLMN() { set(ignore); type=4;} - void select_id_HandoverRestrictionList() { set(ignore); type=5;} - void select_id_SCGConfigurationQuery() { set(ignore); type=6;} - void select_id_UE_ContextInformation_SgNBModReq() { set(reject); type=7;} - void select_id_MeNBtoSgNBContainer() { set(reject); type=8;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(reject); type=9;} - void select_id_MeNBResourceCoordinationInformation() { set(ignore); type=10;} - void select_id_RequestedSplitSRBs() { set(ignore); type=11;} - void select_id_RequestedSplitSRBsrelease() { set(ignore); type=12;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else if(equal(ignore)) { type = 6; return true; } - else if(equal(reject)) { type = 7; return true; } - else if(equal(reject)) { type = 8; return true; } - else if(equal(reject)) { type = 9; return true; } - else if(equal(ignore)) { type = 10; return true; } - else if(equal(ignore)) { type = 11; return true; } - else if(equal(ignore)) { type = 12; return true; } - else { type = 13; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(ignore);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(reject);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(reject);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(reject);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(ignore);} return false; - case 11: type = 11; if(v(ref_nested())) { return equal(ignore);} return false; - case 12: type = 12; if(v(ref_nested())) { return equal(ignore);} return false; - case 13: type = 13; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - SgNB_UE_X2AP_ID& select_id_SgNB_UE_X2AP_ID() { return set(2); } - SgNB_UE_X2AP_ID const* get_id_SgNB_UE_X2AP_ID() const { return get(2); } - Cause& select_id_Cause() { return set(3); } - Cause const* get_id_Cause() const { return get(3); } - PLMN_Identity& select_id_SelectedPLMN() { return set(4); } - PLMN_Identity const* get_id_SelectedPLMN() const { return get(4); } - HandoverRestrictionList& select_id_HandoverRestrictionList() { return set(5); } - HandoverRestrictionList const* get_id_HandoverRestrictionList() const { return get(5); } - SCGConfigurationQuery& select_id_SCGConfigurationQuery() { return set(6); } - SCGConfigurationQuery const* get_id_SCGConfigurationQuery() const { return get(6); } - UE_ContextInformation_SgNBModReq& select_id_UE_ContextInformation_SgNBModReq() { return set(7); } - UE_ContextInformation_SgNBModReq const* get_id_UE_ContextInformation_SgNBModReq() const { return get(7); } - MeNBtoSgNBContainer& select_id_MeNBtoSgNBContainer() { return set(8); } - MeNBtoSgNBContainer const* get_id_MeNBtoSgNBContainer() const { return get(8); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(9); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(9); } - MeNBResourceCoordinationInformation& select_id_MeNBResourceCoordinationInformation() { return set(10); } - MeNBResourceCoordinationInformation const* get_id_MeNBResourceCoordinationInformation() const { return get(10); } - SplitSRBs& select_id_RequestedSplitSRBs() { return set(11); } - SplitSRBs const* get_id_RequestedSplitSRBs() const { return get(11); } - SplitSRBs& select_id_RequestedSplitSRBsrelease() { return set(12); } - SplitSRBs const* get_id_RequestedSplitSRBsrelease() const { return get(12); } - bool is_unknown() const { return type == 13; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - case 7: var.destroy(); break; - case 8: var.destroy(); break; - case 9: var.destroy(); break; - case 10: var.destroy(); break; - case 11: var.destroy(); break; - case 12: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - v.template operator()(7); - v.template operator()(8); - v.template operator()(9); - v.template operator()(10); - v.template operator()(11); - v.template operator()(12); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SgNB_UE_X2AP_ID()); return true; - case 3: v(select_id_Cause()); return true; - case 4: v(select_id_SelectedPLMN()); return true; - case 5: v(select_id_HandoverRestrictionList()); return true; - case 6: v(select_id_SCGConfigurationQuery()); return true; - case 7: v(select_id_UE_ContextInformation_SgNBModReq()); return true; - case 8: v(select_id_MeNBtoSgNBContainer()); return true; - case 9: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 10: v(select_id_MeNBResourceCoordinationInformation()); return true; - case 11: v(select_id_RequestedSplitSRBs()); return true; - case 12: v(select_id_RequestedSplitSRBsrelease()); return true; - case 13: if(type != 13) {clear(); asn::base::set();} type = 13; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - case 7: v(var.as()); return true; - case 8: v(var.as()); return true; - case 9: v(var.as()); return true; - case 10: v(var.as()); return true; - case 11: v(var.as()); return true; - case 12: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(HandoverRestrictionList)]; - char dummy3[sizeof(MeNBResourceCoordinationInformation)]; - char dummy4[sizeof(MeNBtoSgNBContainer)]; - char dummy5[sizeof(PLMN_Identity)]; - char dummy6[sizeof(SCGConfigurationQuery)]; - char dummy7[sizeof(SgNB_UE_X2AP_ID)]; - char dummy8[sizeof(SplitSRBs)]; - char dummy9[sizeof(UE_ContextInformation_SgNBModReq)]; - char dummy10[sizeof(UE_X2AP_ID)]; - char dummy11[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 13; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_Cause() { set(mandatory); type=3;} - void select_id_SelectedPLMN() { set(optional); type=4;} - void select_id_HandoverRestrictionList() { set(optional); type=5;} - void select_id_SCGConfigurationQuery() { set(optional); type=6;} - void select_id_UE_ContextInformation_SgNBModReq() { set(optional); type=7;} - void select_id_MeNBtoSgNBContainer() { set(optional); type=8;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=9;} - void select_id_MeNBResourceCoordinationInformation() { set(optional); type=10;} - void select_id_RequestedSplitSRBs() { set(optional); type=11;} - void select_id_RequestedSplitSRBsrelease() { set(optional); type=12;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else if(equal(optional)) { type = 7; return true; } - else if(equal(optional)) { type = 8; return true; } - else if(equal(optional)) { type = 9; return true; } - else if(equal(optional)) { type = 10; return true; } - else if(equal(optional)) { type = 11; return true; } - else if(equal(optional)) { type = 12; return true; } - else { type = 13; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(optional);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(optional);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(optional);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(optional);} return false; - case 11: type = 11; if(v(ref_nested())) { return equal(optional);} return false; - case 12: type = 12; if(v(ref_nested())) { return equal(optional);} return false; - case 13: type = 13; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SgNBModificationRequest ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{ SgNBModificationRequest-IEs}}, - ... -} -*/ - -struct SgNBModificationRequest : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SgNBModificationRequest";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SgNBModificationRequestAcknowledge-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SgNB-UE-X2AP-ID CRITICALITY ignore TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}| - { ID id-E-RABs-Admitted-ToBeAdded-SgNBModAckList CRITICALITY ignore TYPE E-RABs-Admitted-ToBeAdded-SgNBModAckList PRESENCE optional}| - { ID id-E-RABs-Admitted-ToBeModified-SgNBModAckList CRITICALITY ignore TYPE E-RABs-Admitted-ToBeModified-SgNBModAckList PRESENCE optional}| - { ID id-E-RABs-Admitted-ToBeReleased-SgNBModAckList CRITICALITY ignore TYPE E-RABs-Admitted-ToBeReleased-SgNBModAckList PRESENCE optional}| - { ID id-E-RABs-NotAdmitted-List CRITICALITY ignore TYPE E-RAB-List PRESENCE optional}| - { ID id-SgNBtoMeNBContainer CRITICALITY ignore TYPE SgNBtoMeNBContainer PRESENCE optional}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-SgNBResourceCoordinationInformation CRITICALITY ignore TYPE SgNBResourceCoordinationInformation PRESENCE optional}| - { ID id-AdmittedSplitSRBs CRITICALITY ignore TYPE SplitSRBs PRESENCE optional}| - { ID id-AdmittedSplitSRBsrelease CRITICALITY ignore TYPE SplitSRBs PRESENCE optional}| - { ID id-RRCConfigIndication CRITICALITY reject TYPE RRC-Config-Ind PRESENCE optional}, - ... -} -*/ - -struct SgNBModificationRequestAcknowledge_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 14; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(id_SgNB_UE_X2AP_ID); type=2;} - void select_id_E_RABs_Admitted_ToBeAdded_SgNBModAckList() { set(id_E_RABs_Admitted_ToBeAdded_SgNBModAckList); type=3;} - void select_id_E_RABs_Admitted_ToBeModified_SgNBModAckList() { set(id_E_RABs_Admitted_ToBeModified_SgNBModAckList); type=4;} - void select_id_E_RABs_Admitted_ToBeReleased_SgNBModAckList() { set(id_E_RABs_Admitted_ToBeReleased_SgNBModAckList); type=5;} - void select_id_E_RABs_NotAdmitted_List() { set(id_E_RABs_NotAdmitted_List); type=6;} - void select_id_SgNBtoMeNBContainer() { set(id_SgNBtoMeNBContainer); type=7;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=8;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=9;} - void select_id_SgNBResourceCoordinationInformation() { set(id_SgNBResourceCoordinationInformation); type=10;} - void select_id_AdmittedSplitSRBs() { set(id_AdmittedSplitSRBs); type=11;} - void select_id_AdmittedSplitSRBsrelease() { set(id_AdmittedSplitSRBsrelease); type=12;} - void select_id_RRCConfigIndication() { set(id_RRCConfigIndication); type=13;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SgNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_E_RABs_Admitted_ToBeAdded_SgNBModAckList)) { type = 3; return true; } - else if(equal(id_E_RABs_Admitted_ToBeModified_SgNBModAckList)) { type = 4; return true; } - else if(equal(id_E_RABs_Admitted_ToBeReleased_SgNBModAckList)) { type = 5; return true; } - else if(equal(id_E_RABs_NotAdmitted_List)) { type = 6; return true; } - else if(equal(id_SgNBtoMeNBContainer)) { type = 7; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 8; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 9; return true; } - else if(equal(id_SgNBResourceCoordinationInformation)) { type = 10; return true; } - else if(equal(id_AdmittedSplitSRBs)) { type = 11; return true; } - else if(equal(id_AdmittedSplitSRBsrelease)) { type = 12; return true; } - else if(equal(id_RRCConfigIndication)) { type = 13; return true; } - else { type = 14; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SgNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_E_RABs_Admitted_ToBeAdded_SgNBModAckList);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_E_RABs_Admitted_ToBeModified_SgNBModAckList);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_E_RABs_Admitted_ToBeReleased_SgNBModAckList);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_E_RABs_NotAdmitted_List);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(id_SgNBtoMeNBContainer);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(id_SgNBResourceCoordinationInformation);} return false; - case 11: type = 11; if(v(ref_nested())) { return equal(id_AdmittedSplitSRBs);} return false; - case 12: type = 12; if(v(ref_nested())) { return equal(id_AdmittedSplitSRBsrelease);} return false; - case 13: type = 13; if(v(ref_nested())) { return equal(id_RRCConfigIndication);} return false; - case 14: type = 14; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 14; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(ignore); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(ignore); type=2;} - void select_id_E_RABs_Admitted_ToBeAdded_SgNBModAckList() { set(ignore); type=3;} - void select_id_E_RABs_Admitted_ToBeModified_SgNBModAckList() { set(ignore); type=4;} - void select_id_E_RABs_Admitted_ToBeReleased_SgNBModAckList() { set(ignore); type=5;} - void select_id_E_RABs_NotAdmitted_List() { set(ignore); type=6;} - void select_id_SgNBtoMeNBContainer() { set(ignore); type=7;} - void select_id_CriticalityDiagnostics() { set(ignore); type=8;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(ignore); type=9;} - void select_id_SgNBResourceCoordinationInformation() { set(ignore); type=10;} - void select_id_AdmittedSplitSRBs() { set(ignore); type=11;} - void select_id_AdmittedSplitSRBsrelease() { set(ignore); type=12;} - void select_id_RRCConfigIndication() { set(reject); type=13;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else if(equal(ignore)) { type = 6; return true; } - else if(equal(ignore)) { type = 7; return true; } - else if(equal(ignore)) { type = 8; return true; } - else if(equal(ignore)) { type = 9; return true; } - else if(equal(ignore)) { type = 10; return true; } - else if(equal(ignore)) { type = 11; return true; } - else if(equal(ignore)) { type = 12; return true; } - else if(equal(reject)) { type = 13; return true; } - else { type = 14; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(ignore);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(ignore);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(ignore);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(ignore);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(ignore);} return false; - case 11: type = 11; if(v(ref_nested())) { return equal(ignore);} return false; - case 12: type = 12; if(v(ref_nested())) { return equal(ignore);} return false; - case 13: type = 13; if(v(ref_nested())) { return equal(reject);} return false; - case 14: type = 14; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - SgNB_UE_X2AP_ID& select_id_SgNB_UE_X2AP_ID() { return set(2); } - SgNB_UE_X2AP_ID const* get_id_SgNB_UE_X2AP_ID() const { return get(2); } - E_RABs_Admitted_ToBeAdded_SgNBModAckList& select_id_E_RABs_Admitted_ToBeAdded_SgNBModAckList() { return set(3); } - E_RABs_Admitted_ToBeAdded_SgNBModAckList const* get_id_E_RABs_Admitted_ToBeAdded_SgNBModAckList() const { return get(3); } - E_RABs_Admitted_ToBeModified_SgNBModAckList& select_id_E_RABs_Admitted_ToBeModified_SgNBModAckList() { return set(4); } - E_RABs_Admitted_ToBeModified_SgNBModAckList const* get_id_E_RABs_Admitted_ToBeModified_SgNBModAckList() const { return get(4); } - E_RABs_Admitted_ToBeReleased_SgNBModAckList& select_id_E_RABs_Admitted_ToBeReleased_SgNBModAckList() { return set(5); } - E_RABs_Admitted_ToBeReleased_SgNBModAckList const* get_id_E_RABs_Admitted_ToBeReleased_SgNBModAckList() const { return get(5); } - E_RAB_List& select_id_E_RABs_NotAdmitted_List() { return set(6); } - E_RAB_List const* get_id_E_RABs_NotAdmitted_List() const { return get(6); } - SgNBtoMeNBContainer& select_id_SgNBtoMeNBContainer() { return set(7); } - SgNBtoMeNBContainer const* get_id_SgNBtoMeNBContainer() const { return get(7); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(8); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(8); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(9); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(9); } - SgNBResourceCoordinationInformation& select_id_SgNBResourceCoordinationInformation() { return set(10); } - SgNBResourceCoordinationInformation const* get_id_SgNBResourceCoordinationInformation() const { return get(10); } - SplitSRBs& select_id_AdmittedSplitSRBs() { return set(11); } - SplitSRBs const* get_id_AdmittedSplitSRBs() const { return get(11); } - SplitSRBs& select_id_AdmittedSplitSRBsrelease() { return set(12); } - SplitSRBs const* get_id_AdmittedSplitSRBsrelease() const { return get(12); } - RRC_Config_Ind& select_id_RRCConfigIndication() { return set(13); } - RRC_Config_Ind const* get_id_RRCConfigIndication() const { return get(13); } - bool is_unknown() const { return type == 14; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - case 7: var.destroy(); break; - case 8: var.destroy(); break; - case 9: var.destroy(); break; - case 10: var.destroy(); break; - case 11: var.destroy(); break; - case 12: var.destroy(); break; - case 13: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - v.template operator()(7); - v.template operator()(8); - v.template operator()(9); - v.template operator()(10); - v.template operator()(11); - v.template operator()(12); - v.template operator()(13); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SgNB_UE_X2AP_ID()); return true; - case 3: v(select_id_E_RABs_Admitted_ToBeAdded_SgNBModAckList()); return true; - case 4: v(select_id_E_RABs_Admitted_ToBeModified_SgNBModAckList()); return true; - case 5: v(select_id_E_RABs_Admitted_ToBeReleased_SgNBModAckList()); return true; - case 6: v(select_id_E_RABs_NotAdmitted_List()); return true; - case 7: v(select_id_SgNBtoMeNBContainer()); return true; - case 8: v(select_id_CriticalityDiagnostics()); return true; - case 9: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 10: v(select_id_SgNBResourceCoordinationInformation()); return true; - case 11: v(select_id_AdmittedSplitSRBs()); return true; - case 12: v(select_id_AdmittedSplitSRBsrelease()); return true; - case 13: v(select_id_RRCConfigIndication()); return true; - case 14: if(type != 14) {clear(); asn::base::set();} type = 14; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - case 7: v(var.as()); return true; - case 8: v(var.as()); return true; - case 9: v(var.as()); return true; - case 10: v(var.as()); return true; - case 11: v(var.as()); return true; - case 12: v(var.as()); return true; - case 13: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CriticalityDiagnostics)]; - char dummy2[sizeof(E_RAB_List)]; - char dummy3[sizeof(E_RABs_Admitted_ToBeAdded_SgNBModAckList)]; - char dummy4[sizeof(E_RABs_Admitted_ToBeModified_SgNBModAckList)]; - char dummy5[sizeof(E_RABs_Admitted_ToBeReleased_SgNBModAckList)]; - char dummy6[sizeof(RRC_Config_Ind)]; - char dummy7[sizeof(SgNBResourceCoordinationInformation)]; - char dummy8[sizeof(SgNB_UE_X2AP_ID)]; - char dummy9[sizeof(SgNBtoMeNBContainer)]; - char dummy10[sizeof(SplitSRBs)]; - char dummy11[sizeof(UE_X2AP_ID)]; - char dummy12[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 14; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_E_RABs_Admitted_ToBeAdded_SgNBModAckList() { set(optional); type=3;} - void select_id_E_RABs_Admitted_ToBeModified_SgNBModAckList() { set(optional); type=4;} - void select_id_E_RABs_Admitted_ToBeReleased_SgNBModAckList() { set(optional); type=5;} - void select_id_E_RABs_NotAdmitted_List() { set(optional); type=6;} - void select_id_SgNBtoMeNBContainer() { set(optional); type=7;} - void select_id_CriticalityDiagnostics() { set(optional); type=8;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=9;} - void select_id_SgNBResourceCoordinationInformation() { set(optional); type=10;} - void select_id_AdmittedSplitSRBs() { set(optional); type=11;} - void select_id_AdmittedSplitSRBsrelease() { set(optional); type=12;} - void select_id_RRCConfigIndication() { set(optional); type=13;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else if(equal(optional)) { type = 7; return true; } - else if(equal(optional)) { type = 8; return true; } - else if(equal(optional)) { type = 9; return true; } - else if(equal(optional)) { type = 10; return true; } - else if(equal(optional)) { type = 11; return true; } - else if(equal(optional)) { type = 12; return true; } - else if(equal(optional)) { type = 13; return true; } - else { type = 14; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(optional);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(optional);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(optional);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(optional);} return false; - case 11: type = 11; if(v(ref_nested())) { return equal(optional);} return false; - case 12: type = 12; if(v(ref_nested())) { return equal(optional);} return false; - case 13: type = 13; if(v(ref_nested())) { return equal(optional);} return false; - case 14: type = 14; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SgNBModificationRequestAcknowledge ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SgNBModificationRequestAcknowledge-IEs}}, - ... -} -*/ - -struct SgNBModificationRequestAcknowledge : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SgNBModificationRequestAcknowledge";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SgNBModificationRequestReject-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SgNB-UE-X2AP-ID CRITICALITY ignore TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}| - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}, - ... -} -*/ - -struct SgNBModificationRequestReject_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(id_SgNB_UE_X2AP_ID); type=2;} - void select_id_Cause() { set(id_Cause); type=3;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=5;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SgNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_Cause)) { type = 3; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 4; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SgNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(ignore); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(ignore); type=2;} - void select_id_Cause() { set(ignore); type=3;} - void select_id_CriticalityDiagnostics() { set(ignore); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(ignore); type=5;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - SgNB_UE_X2AP_ID& select_id_SgNB_UE_X2AP_ID() { return set(2); } - SgNB_UE_X2AP_ID const* get_id_SgNB_UE_X2AP_ID() const { return get(2); } - Cause& select_id_Cause() { return set(3); } - Cause const* get_id_Cause() const { return get(3); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(4); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(4); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(5); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(5); } - bool is_unknown() const { return type == 6; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SgNB_UE_X2AP_ID()); return true; - case 3: v(select_id_Cause()); return true; - case 4: v(select_id_CriticalityDiagnostics()); return true; - case 5: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 6: if(type != 6) {clear(); asn::base::set();} type = 6; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(CriticalityDiagnostics)]; - char dummy3[sizeof(SgNB_UE_X2AP_ID)]; - char dummy4[sizeof(UE_X2AP_ID)]; - char dummy5[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_Cause() { set(mandatory); type=3;} - void select_id_CriticalityDiagnostics() { set(optional); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=5;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SgNBModificationRequestReject ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SgNBModificationRequestReject-IEs}}, - ... -} -*/ - -struct SgNBModificationRequestReject : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SgNBModificationRequestReject";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SgNBModificationRequired-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SgNB-UE-X2AP-ID CRITICALITY reject TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}| - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| - { ID id-PDCPChangeIndication CRITICALITY ignore TYPE PDCPChangeIndication PRESENCE optional}| - { ID id-E-RABs-ToBeReleased-SgNBModReqdList CRITICALITY ignore TYPE E-RABs-ToBeReleased-SgNBModReqdList PRESENCE optional}| - { ID id-SgNBtoMeNBContainer CRITICALITY ignore TYPE SgNBtoMeNBContainer PRESENCE optional}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-E-RABs-ToBeModified-SgNBModReqdList CRITICALITY ignore TYPE E-RABs-ToBeModified-SgNBModReqdList PRESENCE optional}| - { ID id-SgNBResourceCoordinationInformation CRITICALITY ignore TYPE SgNBResourceCoordinationInformation PRESENCE optional}| - { ID id-RRCConfigIndication CRITICALITY reject TYPE RRC-Config-Ind PRESENCE optional}, - ... -} -*/ - -struct SgNBModificationRequired_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 11; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(id_SgNB_UE_X2AP_ID); type=2;} - void select_id_Cause() { set(id_Cause); type=3;} - void select_id_PDCPChangeIndication() { set(id_PDCPChangeIndication); type=4;} - void select_id_E_RABs_ToBeReleased_SgNBModReqdList() { set(id_E_RABs_ToBeReleased_SgNBModReqdList); type=5;} - void select_id_SgNBtoMeNBContainer() { set(id_SgNBtoMeNBContainer); type=6;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=7;} - void select_id_E_RABs_ToBeModified_SgNBModReqdList() { set(id_E_RABs_ToBeModified_SgNBModReqdList); type=8;} - void select_id_SgNBResourceCoordinationInformation() { set(id_SgNBResourceCoordinationInformation); type=9;} - void select_id_RRCConfigIndication() { set(id_RRCConfigIndication); type=10;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SgNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_Cause)) { type = 3; return true; } - else if(equal(id_PDCPChangeIndication)) { type = 4; return true; } - else if(equal(id_E_RABs_ToBeReleased_SgNBModReqdList)) { type = 5; return true; } - else if(equal(id_SgNBtoMeNBContainer)) { type = 6; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 7; return true; } - else if(equal(id_E_RABs_ToBeModified_SgNBModReqdList)) { type = 8; return true; } - else if(equal(id_SgNBResourceCoordinationInformation)) { type = 9; return true; } - else if(equal(id_RRCConfigIndication)) { type = 10; return true; } - else { type = 11; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SgNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_PDCPChangeIndication);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_E_RABs_ToBeReleased_SgNBModReqdList);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_SgNBtoMeNBContainer);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(id_E_RABs_ToBeModified_SgNBModReqdList);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(id_SgNBResourceCoordinationInformation);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(id_RRCConfigIndication);} return false; - case 11: type = 11; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 11; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(reject); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(reject); type=2;} - void select_id_Cause() { set(ignore); type=3;} - void select_id_PDCPChangeIndication() { set(ignore); type=4;} - void select_id_E_RABs_ToBeReleased_SgNBModReqdList() { set(ignore); type=5;} - void select_id_SgNBtoMeNBContainer() { set(ignore); type=6;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(reject); type=7;} - void select_id_E_RABs_ToBeModified_SgNBModReqdList() { set(ignore); type=8;} - void select_id_SgNBResourceCoordinationInformation() { set(ignore); type=9;} - void select_id_RRCConfigIndication() { set(reject); type=10;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else if(equal(ignore)) { type = 6; return true; } - else if(equal(reject)) { type = 7; return true; } - else if(equal(ignore)) { type = 8; return true; } - else if(equal(ignore)) { type = 9; return true; } - else if(equal(reject)) { type = 10; return true; } - else { type = 11; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(ignore);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(reject);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(ignore);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(ignore);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(reject);} return false; - case 11: type = 11; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - SgNB_UE_X2AP_ID& select_id_SgNB_UE_X2AP_ID() { return set(2); } - SgNB_UE_X2AP_ID const* get_id_SgNB_UE_X2AP_ID() const { return get(2); } - Cause& select_id_Cause() { return set(3); } - Cause const* get_id_Cause() const { return get(3); } - PDCPChangeIndication& select_id_PDCPChangeIndication() { return set(4); } - PDCPChangeIndication const* get_id_PDCPChangeIndication() const { return get(4); } - E_RABs_ToBeReleased_SgNBModReqdList& select_id_E_RABs_ToBeReleased_SgNBModReqdList() { return set(5); } - E_RABs_ToBeReleased_SgNBModReqdList const* get_id_E_RABs_ToBeReleased_SgNBModReqdList() const { return get(5); } - SgNBtoMeNBContainer& select_id_SgNBtoMeNBContainer() { return set(6); } - SgNBtoMeNBContainer const* get_id_SgNBtoMeNBContainer() const { return get(6); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(7); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(7); } - E_RABs_ToBeModified_SgNBModReqdList& select_id_E_RABs_ToBeModified_SgNBModReqdList() { return set(8); } - E_RABs_ToBeModified_SgNBModReqdList const* get_id_E_RABs_ToBeModified_SgNBModReqdList() const { return get(8); } - SgNBResourceCoordinationInformation& select_id_SgNBResourceCoordinationInformation() { return set(9); } - SgNBResourceCoordinationInformation const* get_id_SgNBResourceCoordinationInformation() const { return get(9); } - RRC_Config_Ind& select_id_RRCConfigIndication() { return set(10); } - RRC_Config_Ind const* get_id_RRCConfigIndication() const { return get(10); } - bool is_unknown() const { return type == 11; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - case 7: var.destroy(); break; - case 8: var.destroy(); break; - case 9: var.destroy(); break; - case 10: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - v.template operator()(7); - v.template operator()(8); - v.template operator()(9); - v.template operator()(10); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SgNB_UE_X2AP_ID()); return true; - case 3: v(select_id_Cause()); return true; - case 4: v(select_id_PDCPChangeIndication()); return true; - case 5: v(select_id_E_RABs_ToBeReleased_SgNBModReqdList()); return true; - case 6: v(select_id_SgNBtoMeNBContainer()); return true; - case 7: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 8: v(select_id_E_RABs_ToBeModified_SgNBModReqdList()); return true; - case 9: v(select_id_SgNBResourceCoordinationInformation()); return true; - case 10: v(select_id_RRCConfigIndication()); return true; - case 11: if(type != 11) {clear(); asn::base::set();} type = 11; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - case 7: v(var.as()); return true; - case 8: v(var.as()); return true; - case 9: v(var.as()); return true; - case 10: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(E_RABs_ToBeModified_SgNBModReqdList)]; - char dummy3[sizeof(E_RABs_ToBeReleased_SgNBModReqdList)]; - char dummy4[sizeof(PDCPChangeIndication)]; - char dummy5[sizeof(RRC_Config_Ind)]; - char dummy6[sizeof(SgNBResourceCoordinationInformation)]; - char dummy7[sizeof(SgNB_UE_X2AP_ID)]; - char dummy8[sizeof(SgNBtoMeNBContainer)]; - char dummy9[sizeof(UE_X2AP_ID)]; - char dummy10[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 11; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_Cause() { set(mandatory); type=3;} - void select_id_PDCPChangeIndication() { set(optional); type=4;} - void select_id_E_RABs_ToBeReleased_SgNBModReqdList() { set(optional); type=5;} - void select_id_SgNBtoMeNBContainer() { set(optional); type=6;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=7;} - void select_id_E_RABs_ToBeModified_SgNBModReqdList() { set(optional); type=8;} - void select_id_SgNBResourceCoordinationInformation() { set(optional); type=9;} - void select_id_RRCConfigIndication() { set(optional); type=10;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else if(equal(optional)) { type = 7; return true; } - else if(equal(optional)) { type = 8; return true; } - else if(equal(optional)) { type = 9; return true; } - else if(equal(optional)) { type = 10; return true; } - else { type = 11; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(optional);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(optional);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(optional);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(optional);} return false; - case 11: type = 11; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SgNBModificationRequired ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SgNBModificationRequired-IEs}}, - ... -} -*/ - -struct SgNBModificationRequired : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SgNBModificationRequired";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SgNBReconfigurationComplete-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SgNB-UE-X2AP-ID CRITICALITY reject TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}| - { ID id-ResponseInformationSgNBReconfComp CRITICALITY ignore TYPE ResponseInformationSgNBReconfComp PRESENCE mandatory}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}, - ... -} -*/ - -struct SgNBReconfigurationComplete_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(id_SgNB_UE_X2AP_ID); type=2;} - void select_id_ResponseInformationSgNBReconfComp() { set(id_ResponseInformationSgNBReconfComp); type=3;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=4;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SgNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_ResponseInformationSgNBReconfComp)) { type = 3; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SgNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_ResponseInformationSgNBReconfComp);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(reject); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(reject); type=2;} - void select_id_ResponseInformationSgNBReconfComp() { set(ignore); type=3;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(reject); type=4;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(reject)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(reject);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - SgNB_UE_X2AP_ID& select_id_SgNB_UE_X2AP_ID() { return set(2); } - SgNB_UE_X2AP_ID const* get_id_SgNB_UE_X2AP_ID() const { return get(2); } - ResponseInformationSgNBReconfComp& select_id_ResponseInformationSgNBReconfComp() { return set(3); } - ResponseInformationSgNBReconfComp const* get_id_ResponseInformationSgNBReconfComp() const { return get(3); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(4); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(4); } - bool is_unknown() const { return type == 5; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SgNB_UE_X2AP_ID()); return true; - case 3: v(select_id_ResponseInformationSgNBReconfComp()); return true; - case 4: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 5: if(type != 5) {clear(); asn::base::set();} type = 5; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(ResponseInformationSgNBReconfComp)]; - char dummy2[sizeof(SgNB_UE_X2AP_ID)]; - char dummy3[sizeof(UE_X2AP_ID)]; - char dummy4[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_ResponseInformationSgNBReconfComp() { set(mandatory); type=3;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=4;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SgNBReconfigurationComplete ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SgNBReconfigurationComplete-IEs}}, - ... -} -*/ - -struct SgNBReconfigurationComplete : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SgNBReconfigurationComplete";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SgNBReleaseConfirm-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SgNB-UE-X2AP-ID CRITICALITY ignore TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}| - { ID id-E-RABs-ToBeReleased-SgNBRelConfList CRITICALITY ignore TYPE E-RABs-ToBeReleased-SgNBRelConfList PRESENCE optional}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}, - ... -} -*/ - -struct SgNBReleaseConfirm_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(id_SgNB_UE_X2AP_ID); type=2;} - void select_id_E_RABs_ToBeReleased_SgNBRelConfList() { set(id_E_RABs_ToBeReleased_SgNBRelConfList); type=3;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=5;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SgNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_E_RABs_ToBeReleased_SgNBRelConfList)) { type = 3; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 4; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SgNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_E_RABs_ToBeReleased_SgNBRelConfList);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(ignore); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(ignore); type=2;} - void select_id_E_RABs_ToBeReleased_SgNBRelConfList() { set(ignore); type=3;} - void select_id_CriticalityDiagnostics() { set(ignore); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(ignore); type=5;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - SgNB_UE_X2AP_ID& select_id_SgNB_UE_X2AP_ID() { return set(2); } - SgNB_UE_X2AP_ID const* get_id_SgNB_UE_X2AP_ID() const { return get(2); } - E_RABs_ToBeReleased_SgNBRelConfList& select_id_E_RABs_ToBeReleased_SgNBRelConfList() { return set(3); } - E_RABs_ToBeReleased_SgNBRelConfList const* get_id_E_RABs_ToBeReleased_SgNBRelConfList() const { return get(3); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(4); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(4); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(5); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(5); } - bool is_unknown() const { return type == 6; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SgNB_UE_X2AP_ID()); return true; - case 3: v(select_id_E_RABs_ToBeReleased_SgNBRelConfList()); return true; - case 4: v(select_id_CriticalityDiagnostics()); return true; - case 5: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 6: if(type != 6) {clear(); asn::base::set();} type = 6; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CriticalityDiagnostics)]; - char dummy2[sizeof(E_RABs_ToBeReleased_SgNBRelConfList)]; - char dummy3[sizeof(SgNB_UE_X2AP_ID)]; - char dummy4[sizeof(UE_X2AP_ID)]; - char dummy5[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_E_RABs_ToBeReleased_SgNBRelConfList() { set(optional); type=3;} - void select_id_CriticalityDiagnostics() { set(optional); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=5;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SgNBReleaseConfirm ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SgNBReleaseConfirm-IEs}}, - ... -} -*/ - -struct SgNBReleaseConfirm : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SgNBReleaseConfirm";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SgNBReleaseRequest-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SgNB-UE-X2AP-ID CRITICALITY reject TYPE SgNB-UE-X2AP-ID PRESENCE optional}| - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| - { ID id-E-RABs-ToBeReleased-SgNBRelReqList CRITICALITY ignore TYPE E-RABs-ToBeReleased-SgNBRelReqList PRESENCE optional}| - { ID id-UE-ContextKeptIndicator CRITICALITY ignore TYPE UE-ContextKeptIndicator PRESENCE optional}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-MeNBtoSgNBContainer CRITICALITY reject TYPE MeNBtoSgNBContainer PRESENCE optional}, - ... -} -*/ - -struct SgNBReleaseRequest_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 8; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(id_SgNB_UE_X2AP_ID); type=2;} - void select_id_Cause() { set(id_Cause); type=3;} - void select_id_E_RABs_ToBeReleased_SgNBRelReqList() { set(id_E_RABs_ToBeReleased_SgNBRelReqList); type=4;} - void select_id_UE_ContextKeptIndicator() { set(id_UE_ContextKeptIndicator); type=5;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=6;} - void select_id_MeNBtoSgNBContainer() { set(id_MeNBtoSgNBContainer); type=7;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SgNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_Cause)) { type = 3; return true; } - else if(equal(id_E_RABs_ToBeReleased_SgNBRelReqList)) { type = 4; return true; } - else if(equal(id_UE_ContextKeptIndicator)) { type = 5; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 6; return true; } - else if(equal(id_MeNBtoSgNBContainer)) { type = 7; return true; } - else { type = 8; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SgNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_E_RABs_ToBeReleased_SgNBRelReqList);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_UE_ContextKeptIndicator);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(id_MeNBtoSgNBContainer);} return false; - case 8: type = 8; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 8; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(reject); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(reject); type=2;} - void select_id_Cause() { set(ignore); type=3;} - void select_id_E_RABs_ToBeReleased_SgNBRelReqList() { set(ignore); type=4;} - void select_id_UE_ContextKeptIndicator() { set(ignore); type=5;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(reject); type=6;} - void select_id_MeNBtoSgNBContainer() { set(reject); type=7;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else if(equal(reject)) { type = 6; return true; } - else if(equal(reject)) { type = 7; return true; } - else { type = 8; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(reject);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(reject);} return false; - case 8: type = 8; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - SgNB_UE_X2AP_ID& select_id_SgNB_UE_X2AP_ID() { return set(2); } - SgNB_UE_X2AP_ID const* get_id_SgNB_UE_X2AP_ID() const { return get(2); } - Cause& select_id_Cause() { return set(3); } - Cause const* get_id_Cause() const { return get(3); } - E_RABs_ToBeReleased_SgNBRelReqList& select_id_E_RABs_ToBeReleased_SgNBRelReqList() { return set(4); } - E_RABs_ToBeReleased_SgNBRelReqList const* get_id_E_RABs_ToBeReleased_SgNBRelReqList() const { return get(4); } - UE_ContextKeptIndicator& select_id_UE_ContextKeptIndicator() { return set(5); } - UE_ContextKeptIndicator const* get_id_UE_ContextKeptIndicator() const { return get(5); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(6); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(6); } - MeNBtoSgNBContainer& select_id_MeNBtoSgNBContainer() { return set(7); } - MeNBtoSgNBContainer const* get_id_MeNBtoSgNBContainer() const { return get(7); } - bool is_unknown() const { return type == 8; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - case 7: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - v.template operator()(7); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SgNB_UE_X2AP_ID()); return true; - case 3: v(select_id_Cause()); return true; - case 4: v(select_id_E_RABs_ToBeReleased_SgNBRelReqList()); return true; - case 5: v(select_id_UE_ContextKeptIndicator()); return true; - case 6: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 7: v(select_id_MeNBtoSgNBContainer()); return true; - case 8: if(type != 8) {clear(); asn::base::set();} type = 8; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - case 7: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(E_RABs_ToBeReleased_SgNBRelReqList)]; - char dummy3[sizeof(MeNBtoSgNBContainer)]; - char dummy4[sizeof(SgNB_UE_X2AP_ID)]; - char dummy5[sizeof(UE_ContextKeptIndicator)]; - char dummy6[sizeof(UE_X2AP_ID)]; - char dummy7[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 8; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(optional); type=2;} - void select_id_Cause() { set(mandatory); type=3;} - void select_id_E_RABs_ToBeReleased_SgNBRelReqList() { set(optional); type=4;} - void select_id_UE_ContextKeptIndicator() { set(optional); type=5;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=6;} - void select_id_MeNBtoSgNBContainer() { set(optional); type=7;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else if(equal(optional)) { type = 7; return true; } - else { type = 8; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(optional);} return false; - case 8: type = 8; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SgNBReleaseRequest ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SgNBReleaseRequest-IEs}}, - ... -} -*/ - -struct SgNBReleaseRequest : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SgNBReleaseRequest";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SgNBReleaseRequestAcknowledge-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SgNB-UE-X2AP-ID CRITICALITY ignore TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional }| - { ID id-E-RABs-Admitted-ToBeReleased-SgNBRelReqAckList CRITICALITY ignore TYPE E-RABs-Admitted-ToBeReleased-SgNBRelReqAckList PRESENCE optional }, - ... -} -*/ - -struct SgNBReleaseRequestAcknowledge_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(id_SgNB_UE_X2AP_ID); type=2;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=3;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=4;} - void select_id_E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList() { set(id_E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList); type=5;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SgNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 3; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 4; return true; } - else if(equal(id_E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SgNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(ignore); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(ignore); type=2;} - void select_id_CriticalityDiagnostics() { set(ignore); type=3;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(reject); type=4;} - void select_id_E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList() { set(ignore); type=5;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(reject)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(reject);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - SgNB_UE_X2AP_ID& select_id_SgNB_UE_X2AP_ID() { return set(2); } - SgNB_UE_X2AP_ID const* get_id_SgNB_UE_X2AP_ID() const { return get(2); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(3); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(3); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(4); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(4); } - E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList& select_id_E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList() { return set(5); } - E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList const* get_id_E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList() const { return get(5); } - bool is_unknown() const { return type == 6; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SgNB_UE_X2AP_ID()); return true; - case 3: v(select_id_CriticalityDiagnostics()); return true; - case 4: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 5: v(select_id_E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList()); return true; - case 6: if(type != 6) {clear(); asn::base::set();} type = 6; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CriticalityDiagnostics)]; - char dummy2[sizeof(E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList)]; - char dummy3[sizeof(SgNB_UE_X2AP_ID)]; - char dummy4[sizeof(UE_X2AP_ID)]; - char dummy5[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_CriticalityDiagnostics() { set(optional); type=3;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=4;} - void select_id_E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList() { set(optional); type=5;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SgNBReleaseRequestAcknowledge ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SgNBReleaseRequestAcknowledge-IEs}}, - ... -} -*/ - -struct SgNBReleaseRequestAcknowledge : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SgNBReleaseRequestAcknowledge";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SgNBReleaseRequestReject-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SgNB-UE-X2AP-ID CRITICALITY ignore TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}| - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}, - ... -} -*/ - -struct SgNBReleaseRequestReject_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(id_SgNB_UE_X2AP_ID); type=2;} - void select_id_Cause() { set(id_Cause); type=3;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=5;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SgNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_Cause)) { type = 3; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 4; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SgNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(ignore); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(ignore); type=2;} - void select_id_Cause() { set(ignore); type=3;} - void select_id_CriticalityDiagnostics() { set(ignore); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(reject); type=5;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(reject)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(reject);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - SgNB_UE_X2AP_ID& select_id_SgNB_UE_X2AP_ID() { return set(2); } - SgNB_UE_X2AP_ID const* get_id_SgNB_UE_X2AP_ID() const { return get(2); } - Cause& select_id_Cause() { return set(3); } - Cause const* get_id_Cause() const { return get(3); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(4); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(4); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(5); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(5); } - bool is_unknown() const { return type == 6; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SgNB_UE_X2AP_ID()); return true; - case 3: v(select_id_Cause()); return true; - case 4: v(select_id_CriticalityDiagnostics()); return true; - case 5: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 6: if(type != 6) {clear(); asn::base::set();} type = 6; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(CriticalityDiagnostics)]; - char dummy3[sizeof(SgNB_UE_X2AP_ID)]; - char dummy4[sizeof(UE_X2AP_ID)]; - char dummy5[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_Cause() { set(mandatory); type=3;} - void select_id_CriticalityDiagnostics() { set(optional); type=4;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=5;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SgNBReleaseRequestReject ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SgNBReleaseRequestReject-IEs}}, - ... -} -*/ - -struct SgNBReleaseRequestReject : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SgNBReleaseRequestReject";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -SgNBReleaseRequired-IEs X2AP-PROTOCOL-IES ::= { - { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-SgNB-UE-X2AP-ID CRITICALITY reject TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}| - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| - { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional }| - { ID id-E-RABs-ToBeReleased-SgNBRelReqdList CRITICALITY ignore TYPE E-RABs-ToBeReleased-SgNBRelReqdList PRESENCE optional }, - ... -} -*/ - -struct SgNBReleaseRequired_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(id_MeNB_UE_X2AP_ID); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(id_SgNB_UE_X2AP_ID); type=2;} - void select_id_Cause() { set(id_Cause); type=3;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(id_MeNB_UE_X2AP_ID_Extension); type=4;} - void select_id_E_RABs_ToBeReleased_SgNBRelReqdList() { set(id_E_RABs_ToBeReleased_SgNBRelReqdList); type=5;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_MeNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_SgNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_Cause)) { type = 3; return true; } - else if(equal(id_MeNB_UE_X2AP_ID_Extension)) { type = 4; return true; } - else if(equal(id_E_RABs_ToBeReleased_SgNBRelReqdList)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_SgNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_MeNB_UE_X2AP_ID_Extension);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_E_RABs_ToBeReleased_SgNBRelReqdList);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(reject); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(reject); type=2;} - void select_id_Cause() { set(ignore); type=3;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(reject); type=4;} - void select_id_E_RABs_ToBeReleased_SgNBRelReqdList() { set(ignore); type=5;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else if(equal(reject)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(reject);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_MeNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_MeNB_UE_X2AP_ID() const { return get(1); } - SgNB_UE_X2AP_ID& select_id_SgNB_UE_X2AP_ID() { return set(2); } - SgNB_UE_X2AP_ID const* get_id_SgNB_UE_X2AP_ID() const { return get(2); } - Cause& select_id_Cause() { return set(3); } - Cause const* get_id_Cause() const { return get(3); } - UE_X2AP_ID_Extension& select_id_MeNB_UE_X2AP_ID_Extension() { return set(4); } - UE_X2AP_ID_Extension const* get_id_MeNB_UE_X2AP_ID_Extension() const { return get(4); } - E_RABs_ToBeReleased_SgNBRelReqdList& select_id_E_RABs_ToBeReleased_SgNBRelReqdList() { return set(5); } - E_RABs_ToBeReleased_SgNBRelReqdList const* get_id_E_RABs_ToBeReleased_SgNBRelReqdList() const { return get(5); } - bool is_unknown() const { return type == 6; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_MeNB_UE_X2AP_ID()); return true; - case 2: v(select_id_SgNB_UE_X2AP_ID()); return true; - case 3: v(select_id_Cause()); return true; - case 4: v(select_id_MeNB_UE_X2AP_ID_Extension()); return true; - case 5: v(select_id_E_RABs_ToBeReleased_SgNBRelReqdList()); return true; - case 6: if(type != 6) {clear(); asn::base::set();} type = 6; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(E_RABs_ToBeReleased_SgNBRelReqdList)]; - char dummy3[sizeof(SgNB_UE_X2AP_ID)]; - char dummy4[sizeof(UE_X2AP_ID)]; - char dummy5[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_MeNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_SgNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_Cause() { set(mandatory); type=3;} - void select_id_MeNB_UE_X2AP_ID_Extension() { set(optional); type=4;} - void select_id_E_RABs_ToBeReleased_SgNBRelReqdList() { set(optional); type=5;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(mandatory)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(mandatory);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -SgNBReleaseRequired ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{SgNBReleaseRequired-IEs}}, - ... -} -*/ - -struct SgNBReleaseRequired : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "SgNBReleaseRequired";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -UEContextRelease-IEs X2AP-PROTOCOL-IES ::= { - { ID id-Old-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-New-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}| - { ID id-Old-eNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-New-eNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}| - { ID id-SIPTO-BearerDeactivationIndication CRITICALITY ignore TYPE SIPTOBearerDeactivationIndication PRESENCE optional}| - { ID id-SgNB-UE-X2AP-ID CRITICALITY ignore TYPE SgNB-UE-X2AP-ID PRESENCE optional}, - ... -} -*/ - -struct UEContextRelease_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_Old_eNB_UE_X2AP_ID() { set(id_Old_eNB_UE_X2AP_ID); type=1;} - void select_id_New_eNB_UE_X2AP_ID() { set(id_New_eNB_UE_X2AP_ID); type=2;} - void select_id_Old_eNB_UE_X2AP_ID_Extension() { set(id_Old_eNB_UE_X2AP_ID_Extension); type=3;} - void select_id_New_eNB_UE_X2AP_ID_Extension() { set(id_New_eNB_UE_X2AP_ID_Extension); type=4;} - void select_id_SIPTO_BearerDeactivationIndication() { set(id_SIPTO_BearerDeactivationIndication); type=5;} - void select_id_SgNB_UE_X2AP_ID() { set(id_SgNB_UE_X2AP_ID); type=6;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_Old_eNB_UE_X2AP_ID)) { type = 1; return true; } - else if(equal(id_New_eNB_UE_X2AP_ID)) { type = 2; return true; } - else if(equal(id_Old_eNB_UE_X2AP_ID_Extension)) { type = 3; return true; } - else if(equal(id_New_eNB_UE_X2AP_ID_Extension)) { type = 4; return true; } - else if(equal(id_SIPTO_BearerDeactivationIndication)) { type = 5; return true; } - else if(equal(id_SgNB_UE_X2AP_ID)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_Old_eNB_UE_X2AP_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_New_eNB_UE_X2AP_ID);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_Old_eNB_UE_X2AP_ID_Extension);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_New_eNB_UE_X2AP_ID_Extension);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_SIPTO_BearerDeactivationIndication);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_SgNB_UE_X2AP_ID);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_Old_eNB_UE_X2AP_ID() { set(reject); type=1;} - void select_id_New_eNB_UE_X2AP_ID() { set(reject); type=2;} - void select_id_Old_eNB_UE_X2AP_ID_Extension() { set(reject); type=3;} - void select_id_New_eNB_UE_X2AP_ID_Extension() { set(reject); type=4;} - void select_id_SIPTO_BearerDeactivationIndication() { set(ignore); type=5;} - void select_id_SgNB_UE_X2AP_ID() { set(ignore); type=6;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(reject)) { type = 3; return true; } - else if(equal(reject)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else if(equal(ignore)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(reject);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(reject);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(ignore);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - UE_X2AP_ID& select_id_Old_eNB_UE_X2AP_ID() { return set(1); } - UE_X2AP_ID const* get_id_Old_eNB_UE_X2AP_ID() const { return get(1); } - UE_X2AP_ID& select_id_New_eNB_UE_X2AP_ID() { return set(2); } - UE_X2AP_ID const* get_id_New_eNB_UE_X2AP_ID() const { return get(2); } - UE_X2AP_ID_Extension& select_id_Old_eNB_UE_X2AP_ID_Extension() { return set(3); } - UE_X2AP_ID_Extension const* get_id_Old_eNB_UE_X2AP_ID_Extension() const { return get(3); } - UE_X2AP_ID_Extension& select_id_New_eNB_UE_X2AP_ID_Extension() { return set(4); } - UE_X2AP_ID_Extension const* get_id_New_eNB_UE_X2AP_ID_Extension() const { return get(4); } - SIPTOBearerDeactivationIndication& select_id_SIPTO_BearerDeactivationIndication() { return set(5); } - SIPTOBearerDeactivationIndication const* get_id_SIPTO_BearerDeactivationIndication() const { return get(5); } - SgNB_UE_X2AP_ID& select_id_SgNB_UE_X2AP_ID() { return set(6); } - SgNB_UE_X2AP_ID const* get_id_SgNB_UE_X2AP_ID() const { return get(6); } - bool is_unknown() const { return type == 7; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_Old_eNB_UE_X2AP_ID()); return true; - case 2: v(select_id_New_eNB_UE_X2AP_ID()); return true; - case 3: v(select_id_Old_eNB_UE_X2AP_ID_Extension()); return true; - case 4: v(select_id_New_eNB_UE_X2AP_ID_Extension()); return true; - case 5: v(select_id_SIPTO_BearerDeactivationIndication()); return true; - case 6: v(select_id_SgNB_UE_X2AP_ID()); return true; - case 7: if(type != 7) {clear(); asn::base::set();} type = 7; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(SIPTOBearerDeactivationIndication)]; - char dummy2[sizeof(SgNB_UE_X2AP_ID)]; - char dummy3[sizeof(UE_X2AP_ID)]; - char dummy4[sizeof(UE_X2AP_ID_Extension)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 7; } - void clear() {type = 0;} - void select_id_Old_eNB_UE_X2AP_ID() { set(mandatory); type=1;} - void select_id_New_eNB_UE_X2AP_ID() { set(mandatory); type=2;} - void select_id_Old_eNB_UE_X2AP_ID_Extension() { set(optional); type=3;} - void select_id_New_eNB_UE_X2AP_ID_Extension() { set(optional); type=4;} - void select_id_SIPTO_BearerDeactivationIndication() { set(optional); type=5;} - void select_id_SgNB_UE_X2AP_ID() { set(optional); type=6;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else if(equal(optional)) { type = 6; return true; } - else { type = 7; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(optional);} return false; - case 7: type = 7; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -UEContextRelease ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{UEContextRelease-IEs}}, - ... -} -*/ - -struct UEContextRelease : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "UEContextRelease";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -X2AP-Message ::= OCTET STRING -*/ - -struct X2AP_Message : asn::ostring<> -{ - static constexpr const char* name() {return "X2AP-Message";} - using parent_t = asn::ostring<>; - -}; - -/* -X2APMessageTransfer-IEs X2AP-PROTOCOL-IES ::= { - { ID id-RNL-Header CRITICALITY reject TYPE RNL-Header PRESENCE mandatory}| - { ID id-x2APMessage CRITICALITY reject TYPE X2AP-Message PRESENCE optional}, - ... -} -*/ - -struct X2APMessageTransfer_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_RNL_Header() { set(id_RNL_Header); type=1;} - void select_id_x2APMessage() { set(id_x2APMessage); type=2;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_RNL_Header)) { type = 1; return true; } - else if(equal(id_x2APMessage)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_RNL_Header);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_x2APMessage);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_RNL_Header() { set(reject); type=1;} - void select_id_x2APMessage() { set(reject); type=2;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - RNL_Header& select_id_RNL_Header() { return set(1); } - RNL_Header const* get_id_RNL_Header() const { return get(1); } - X2AP_Message& select_id_x2APMessage() { return set(2); } - X2AP_Message const* get_id_x2APMessage() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_RNL_Header()); return true; - case 2: v(select_id_x2APMessage()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(RNL_Header)]; - char dummy2[sizeof(X2AP_Message)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_RNL_Header() { set(mandatory); type=1;} - void select_id_x2APMessage() { set(optional); type=2;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -X2APMessageTransfer ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{X2APMessageTransfer-IEs}}, - ... -} -*/ - -struct X2APMessageTransfer : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "X2APMessageTransfer";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -X2Release-IEs X2AP-PROTOCOL-IES ::= { - { ID id-GlobalENB-ID CRITICALITY reject TYPE GlobalENB-ID PRESENCE mandatory}, -... -} -*/ - -struct X2Release_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_GlobalENB_ID() { set(id_GlobalENB_ID); type=1;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_GlobalENB_ID)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_GlobalENB_ID);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_GlobalENB_ID() { set(reject); type=1;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - GlobalENB_ID& select_id_GlobalENB_ID() { return set(1); } - GlobalENB_ID const* get_id_GlobalENB_ID() const { return get(1); } - bool is_unknown() const { return type == 2; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_GlobalENB_ID()); return true; - case 2: if(type != 2) {clear(); asn::base::set();} type = 2; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(GlobalENB_ID)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 2; } - void clear() {type = 0;} - void select_id_GlobalENB_ID() { set(mandatory); type=1;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else { type = 2; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -X2Release ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{X2Release-IEs}}, - ... -} -*/ - -struct X2Release : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "X2Release";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -X2RemovalFailure-IEs X2AP-PROTOCOL-IES ::= { - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, - ... -} -*/ - -struct X2RemovalFailure_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_Cause() { set(id_Cause); type=1;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=2;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_Cause)) { type = 1; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_Cause() { set(ignore); type=1;} - void select_id_CriticalityDiagnostics() { set(ignore); type=2;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - Cause& select_id_Cause() { return set(1); } - Cause const* get_id_Cause() const { return get(1); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(2); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_Cause()); return true; - case 2: v(select_id_CriticalityDiagnostics()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(CriticalityDiagnostics)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_Cause() { set(mandatory); type=1;} - void select_id_CriticalityDiagnostics() { set(optional); type=2;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -X2RemovalFailure ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{X2RemovalFailure-IEs}}, - ... -} -*/ - -struct X2RemovalFailure : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "X2RemovalFailure";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -X2RemovalRequest-IEs X2AP-PROTOCOL-IES ::= { - { ID id-GlobalENB-ID CRITICALITY reject TYPE GlobalENB-ID PRESENCE mandatory}| - { ID id-X2RemovalThreshold CRITICALITY reject TYPE X2BenefitValue PRESENCE optional}, -... -} -*/ - -struct X2RemovalRequest_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_GlobalENB_ID() { set(id_GlobalENB_ID); type=1;} - void select_id_X2RemovalThreshold() { set(id_X2RemovalThreshold); type=2;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_GlobalENB_ID)) { type = 1; return true; } - else if(equal(id_X2RemovalThreshold)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_GlobalENB_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_X2RemovalThreshold);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_GlobalENB_ID() { set(reject); type=1;} - void select_id_X2RemovalThreshold() { set(reject); type=2;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - GlobalENB_ID& select_id_GlobalENB_ID() { return set(1); } - GlobalENB_ID const* get_id_GlobalENB_ID() const { return get(1); } - X2BenefitValue& select_id_X2RemovalThreshold() { return set(2); } - X2BenefitValue const* get_id_X2RemovalThreshold() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_GlobalENB_ID()); return true; - case 2: v(select_id_X2RemovalThreshold()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(GlobalENB_ID)]; - char dummy2[sizeof(X2BenefitValue)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_GlobalENB_ID() { set(mandatory); type=1;} - void select_id_X2RemovalThreshold() { set(optional); type=2;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -X2RemovalRequest ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{X2RemovalRequest-IEs}}, - ... -} -*/ - -struct X2RemovalRequest : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "X2RemovalRequest";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -X2RemovalResponse-IEs X2AP-PROTOCOL-IES ::= { - { ID id-GlobalENB-ID CRITICALITY reject TYPE GlobalENB-ID PRESENCE mandatory}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, - ... -} -*/ - -struct X2RemovalResponse_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_GlobalENB_ID() { set(id_GlobalENB_ID); type=1;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=2;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_GlobalENB_ID)) { type = 1; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_GlobalENB_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_GlobalENB_ID() { set(reject); type=1;} - void select_id_CriticalityDiagnostics() { set(ignore); type=2;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - GlobalENB_ID& select_id_GlobalENB_ID() { return set(1); } - GlobalENB_ID const* get_id_GlobalENB_ID() const { return get(1); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(2); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(2); } - bool is_unknown() const { return type == 3; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_GlobalENB_ID()); return true; - case 2: v(select_id_CriticalityDiagnostics()); return true; - case 3: if(type != 3) {clear(); asn::base::set();} type = 3; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CriticalityDiagnostics)]; - char dummy2[sizeof(GlobalENB_ID)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 3; } - void clear() {type = 0;} - void select_id_GlobalENB_ID() { set(mandatory); type=1;} - void select_id_CriticalityDiagnostics() { set(optional); type=2;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else { type = 3; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -X2RemovalResponse ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{X2RemovalResponse-IEs}}, - ... -} -*/ - -struct X2RemovalResponse : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "X2RemovalResponse";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -X2SetupFailure-IEs X2AP-PROTOCOL-IES ::= { - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory} | - { ID id-TimeToWait CRITICALITY ignore TYPE TimeToWait PRESENCE optional} | - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, - - ... -} -*/ - -struct X2SetupFailure_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_Cause() { set(id_Cause); type=1;} - void select_id_TimeToWait() { set(id_TimeToWait); type=2;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=3;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_Cause)) { type = 1; return true; } - else if(equal(id_TimeToWait)) { type = 2; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_Cause);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_TimeToWait);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_Cause() { set(ignore); type=1;} - void select_id_TimeToWait() { set(ignore); type=2;} - void select_id_CriticalityDiagnostics() { set(ignore); type=3;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(ignore)) { type = 1; return true; } - else if(equal(ignore)) { type = 2; return true; } - else if(equal(ignore)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(ignore);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(ignore);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(ignore);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - Cause& select_id_Cause() { return set(1); } - Cause const* get_id_Cause() const { return get(1); } - TimeToWait& select_id_TimeToWait() { return set(2); } - TimeToWait const* get_id_TimeToWait() const { return get(2); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(3); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(3); } - bool is_unknown() const { return type == 4; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_Cause()); return true; - case 2: v(select_id_TimeToWait()); return true; - case 3: v(select_id_CriticalityDiagnostics()); return true; - case 4: if(type != 4) {clear(); asn::base::set();} type = 4; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(Cause)]; - char dummy2[sizeof(CriticalityDiagnostics)]; - char dummy3[sizeof(TimeToWait)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 4; } - void clear() {type = 0;} - void select_id_Cause() { set(mandatory); type=1;} - void select_id_TimeToWait() { set(optional); type=2;} - void select_id_CriticalityDiagnostics() { set(optional); type=3;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(optional)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else { type = 4; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(optional);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -X2SetupFailure ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{X2SetupFailure-IEs}}, - ... -} -*/ - -struct X2SetupFailure : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "X2SetupFailure";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -X2SetupRequest-IEs X2AP-PROTOCOL-IES ::= { - { ID id-GlobalENB-ID CRITICALITY reject TYPE GlobalENB-ID PRESENCE mandatory}| - { ID id-ServedCells CRITICALITY reject TYPE ServedCells PRESENCE mandatory}| - { ID id-GUGroupIDList CRITICALITY reject TYPE GUGroupIDList PRESENCE optional}| - { ID id-LHN-ID CRITICALITY ignore TYPE LHN-ID PRESENCE optional}, -... -} -*/ - -struct X2SetupRequest_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_GlobalENB_ID() { set(id_GlobalENB_ID); type=1;} - void select_id_ServedCells() { set(id_ServedCells); type=2;} - void select_id_GUGroupIDList() { set(id_GUGroupIDList); type=3;} - void select_id_LHN_ID() { set(id_LHN_ID); type=4;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_GlobalENB_ID)) { type = 1; return true; } - else if(equal(id_ServedCells)) { type = 2; return true; } - else if(equal(id_GUGroupIDList)) { type = 3; return true; } - else if(equal(id_LHN_ID)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_GlobalENB_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_ServedCells);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_GUGroupIDList);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_LHN_ID);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_GlobalENB_ID() { set(reject); type=1;} - void select_id_ServedCells() { set(reject); type=2;} - void select_id_GUGroupIDList() { set(reject); type=3;} - void select_id_LHN_ID() { set(ignore); type=4;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(reject)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(reject);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - GlobalENB_ID& select_id_GlobalENB_ID() { return set(1); } - GlobalENB_ID const* get_id_GlobalENB_ID() const { return get(1); } - ServedCells& select_id_ServedCells() { return set(2); } - ServedCells const* get_id_ServedCells() const { return get(2); } - GUGroupIDList& select_id_GUGroupIDList() { return set(3); } - GUGroupIDList const* get_id_GUGroupIDList() const { return get(3); } - LHN_ID& select_id_LHN_ID() { return set(4); } - LHN_ID const* get_id_LHN_ID() const { return get(4); } - bool is_unknown() const { return type == 5; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_GlobalENB_ID()); return true; - case 2: v(select_id_ServedCells()); return true; - case 3: v(select_id_GUGroupIDList()); return true; - case 4: v(select_id_LHN_ID()); return true; - case 5: if(type != 5) {clear(); asn::base::set();} type = 5; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(GUGroupIDList)]; - char dummy2[sizeof(GlobalENB_ID)]; - char dummy3[sizeof(LHN_ID)]; - char dummy4[sizeof(ServedCells)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 5; } - void clear() {type = 0;} - void select_id_GlobalENB_ID() { set(mandatory); type=1;} - void select_id_ServedCells() { set(mandatory); type=2;} - void select_id_GUGroupIDList() { set(optional); type=3;} - void select_id_LHN_ID() { set(optional); type=4;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else { type = 5; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -X2SetupRequest ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{X2SetupRequest-IEs}}, - ... -} -*/ - -struct X2SetupRequest : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "X2SetupRequest";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; -/* -X2SetupResponse-IEs X2AP-PROTOCOL-IES ::= { - { ID id-GlobalENB-ID CRITICALITY reject TYPE GlobalENB-ID PRESENCE mandatory}| - { ID id-ServedCells CRITICALITY reject TYPE ServedCells PRESENCE mandatory}| - { ID id-GUGroupIDList CRITICALITY reject TYPE GUGroupIDList PRESENCE optional}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| - { ID id-LHN-ID CRITICALITY ignore TYPE LHN-ID PRESENCE optional}, - ... -} -*/ - -struct X2SetupResponse_IEs -{ - struct id_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_GlobalENB_ID() { set(id_GlobalENB_ID); type=1;} - void select_id_ServedCells() { set(id_ServedCells); type=2;} - void select_id_GUGroupIDList() { set(id_GUGroupIDList); type=3;} - void select_id_CriticalityDiagnostics() { set(id_CriticalityDiagnostics); type=4;} - void select_id_LHN_ID() { set(id_LHN_ID); type=5;} - X2AP_PROTOCOL_IES::id_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_GlobalENB_ID)) { type = 1; return true; } - else if(equal(id_ServedCells)) { type = 2; return true; } - else if(equal(id_GUGroupIDList)) { type = 3; return true; } - else if(equal(id_CriticalityDiagnostics)) { type = 4; return true; } - else if(equal(id_LHN_ID)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_GlobalENB_ID);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_ServedCells);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_GUGroupIDList);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_CriticalityDiagnostics);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_LHN_ID);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_GlobalENB_ID() { set(reject); type=1;} - void select_id_ServedCells() { set(reject); type=2;} - void select_id_GUGroupIDList() { set(reject); type=3;} - void select_id_CriticalityDiagnostics() { set(ignore); type=4;} - void select_id_LHN_ID() { set(ignore); type=5;} - X2AP_PROTOCOL_IES::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(reject)) { type = 3; return true; } - else if(equal(ignore)) { type = 4; return true; } - else if(equal(ignore)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(reject);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(ignore);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(ignore);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct Value_t : asn::typefield - { - ~Value_t() {clear();} - size_t get_index() const {return type;} - GlobalENB_ID& select_id_GlobalENB_ID() { return set(1); } - GlobalENB_ID const* get_id_GlobalENB_ID() const { return get(1); } - ServedCells& select_id_ServedCells() { return set(2); } - ServedCells const* get_id_ServedCells() const { return get(2); } - GUGroupIDList& select_id_GUGroupIDList() { return set(3); } - GUGroupIDList const* get_id_GUGroupIDList() const { return get(3); } - CriticalityDiagnostics& select_id_CriticalityDiagnostics() { return set(4); } - CriticalityDiagnostics const* get_id_CriticalityDiagnostics() const { return get(4); } - LHN_ID& select_id_LHN_ID() { return set(5); } - LHN_ID const* get_id_LHN_ID() const { return get(5); } - bool is_unknown() const { return type == 6; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_GlobalENB_ID()); return true; - case 2: v(select_id_ServedCells()); return true; - case 3: v(select_id_GUGroupIDList()); return true; - case 4: v(select_id_CriticalityDiagnostics()); return true; - case 5: v(select_id_LHN_ID()); return true; - case 6: if(type != 6) {clear(); asn::base::set();} type = 6; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CriticalityDiagnostics)]; - char dummy2[sizeof(GUGroupIDList)]; - char dummy3[sizeof(GlobalENB_ID)]; - char dummy4[sizeof(LHN_ID)]; - char dummy5[sizeof(ServedCells)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct presence_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 6; } - void clear() {type = 0;} - void select_id_GlobalENB_ID() { set(mandatory); type=1;} - void select_id_ServedCells() { set(mandatory); type=2;} - void select_id_GUGroupIDList() { set(optional); type=3;} - void select_id_CriticalityDiagnostics() { set(optional); type=4;} - void select_id_LHN_ID() { set(optional); type=5;} - X2AP_PROTOCOL_IES::presence_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(mandatory)) { type = 1; return true; } - else if(equal(mandatory)) { type = 2; return true; } - else if(equal(optional)) { type = 3; return true; } - else if(equal(optional)) { type = 4; return true; } - else if(equal(optional)) { type = 5; return true; } - else { type = 6; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(mandatory);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(mandatory);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(optional);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(optional);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(optional);} return false; - case 6: type = 6; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -X2SetupResponse ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{X2SetupResponse-IEs}}, - ... -} -*/ - -struct X2SetupResponse : asn::sequence<1, 0, true, 0> -{ - static constexpr const char* name() {return "X2SetupResponse";} - using parent_t = asn::sequence<1, 0, true, 0>; - struct protocolIEs_t : ProtocolIE_Container - { - static constexpr const char* name() {return "protocolIEs_t";} - using parent_t = ProtocolIE_Container; - - }; - protocolIEs_t& ref_protocolIEs() {return protocolIEs;} - protocolIEs_t const& ref_protocolIEs() const {return protocolIEs;} - template void decode(V& v) - { - v(protocolIEs); - - }; - template void encode(V& v) const - { - v(protocolIEs); - - }; - void clear() - { - protocolIEs.clear(); - - }; - private: - protocolIEs_t protocolIEs; - -}; diff --git a/e2sim/previous/src/ASN1/generated/X2AP-PDU-Descriptions.hpp b/e2sim/previous/src/ASN1/generated/X2AP-PDU-Descriptions.hpp deleted file mode 100644 index 5fbef04..0000000 --- a/e2sim/previous/src/ASN1/generated/X2AP-PDU-Descriptions.hpp +++ /dev/null @@ -1,1537 +0,0 @@ -/***************************************************************************** -# Copyright 2019 AT&T Intellectual Property * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -#pragma once - -#include "asn/asn.hpp" -static_assert(ASN_API_VERSION_MAJOR == 5, "re-generate the ASN parser's code using 'make regen-asn' (do not use -j option)"); - -#include "X2AP-CommonDataTypes.hpp" -#include "X2AP-PDU-Contents.hpp" -#include "X2AP-Constants.hpp" - -/* -X2AP-ELEMENTARY-PROCEDURE ::= CLASS { - &InitiatingMessage , - &SuccessfulOutcome OPTIONAL, - &UnsuccessfulOutcome OPTIONAL, - &procedureCode ProcedureCode UNIQUE, - &criticality Criticality DEFAULT ignore -} -WITH SYNTAX { - INITIATING MESSAGE &InitiatingMessage - [SUCCESSFUL OUTCOME &SuccessfulOutcome] - [UNSUCCESSFUL OUTCOME &UnsuccessfulOutcome] - PROCEDURE CODE &procedureCode - [CRITICALITY &criticality] -} -*/ - -struct X2AP_ELEMENTARY_PROCEDURE -{ - struct procedureCode_t : ProcedureCode - { - static constexpr const char* name() {return "procedureCode_t";} - using parent_t = ProcedureCode; - - }; - struct criticality_t : Criticality - { - static constexpr const char* name() {return "criticality_t";} - using parent_t = Criticality; - - }; - -}; -/* -X2AP-ELEMENTARY-PROCEDURES X2AP-ELEMENTARY-PROCEDURE ::= { - X2AP-ELEMENTARY-PROCEDURES-CLASS-1 | - X2AP-ELEMENTARY-PROCEDURES-CLASS-2 , - ... -} -*/ - -struct X2AP_ELEMENTARY_PROCEDURES -{ - struct InitiatingMessage_t : asn::typefield - { - ~InitiatingMessage_t() {clear();} - size_t get_index() const {return type;} - HandoverRequest& select_id_handoverPreparation() { return set(1); } - HandoverRequest const* get_id_handoverPreparation() const { return get(1); } - ResetRequest& select_id_reset() { return set(2); } - ResetRequest const* get_id_reset() const { return get(2); } - X2SetupRequest& select_id_x2Setup() { return set(3); } - X2SetupRequest const* get_id_x2Setup() const { return get(3); } - ResourceStatusRequest& select_id_resourceStatusReportingInitiation() { return set(4); } - ResourceStatusRequest const* get_id_resourceStatusReportingInitiation() const { return get(4); } - ENBConfigurationUpdate& select_id_eNBConfigurationUpdate() { return set(5); } - ENBConfigurationUpdate const* get_id_eNBConfigurationUpdate() const { return get(5); } - MobilityChangeRequest& select_id_mobilitySettingsChange() { return set(6); } - MobilityChangeRequest const* get_id_mobilitySettingsChange() const { return get(6); } - CellActivationRequest& select_id_cellActivation() { return set(7); } - CellActivationRequest const* get_id_cellActivation() const { return get(7); } - SeNBAdditionRequest& select_id_seNBAdditionPreparation() { return set(8); } - SeNBAdditionRequest const* get_id_seNBAdditionPreparation() const { return get(8); } - SeNBModificationRequest& select_id_meNBinitiatedSeNBModificationPreparation() { return set(9); } - SeNBModificationRequest const* get_id_meNBinitiatedSeNBModificationPreparation() const { return get(9); } - SeNBModificationRequired& select_id_seNBinitiatedSeNBModification() { return set(10); } - SeNBModificationRequired const* get_id_seNBinitiatedSeNBModification() const { return get(10); } - SeNBReleaseRequired& select_id_seNBinitiatedSeNBRelease() { return set(11); } - SeNBReleaseRequired const* get_id_seNBinitiatedSeNBRelease() const { return get(11); } - X2RemovalRequest& select_id_x2Removal() { return set(12); } - X2RemovalRequest const* get_id_x2Removal() const { return get(12); } - RetrieveUEContextRequest& select_id_retrieveUEContext() { return set(13); } - RetrieveUEContextRequest const* get_id_retrieveUEContext() const { return get(13); } - SgNBAdditionRequest& select_id_sgNBAdditionPreparation() { return set(14); } - SgNBAdditionRequest const* get_id_sgNBAdditionPreparation() const { return get(14); } - SgNBModificationRequest& select_id_meNBinitiatedSgNBModificationPreparation() { return set(15); } - SgNBModificationRequest const* get_id_meNBinitiatedSgNBModificationPreparation() const { return get(15); } - SgNBModificationRequired& select_id_sgNBinitiatedSgNBModification() { return set(16); } - SgNBModificationRequired const* get_id_sgNBinitiatedSgNBModification() const { return get(16); } - SgNBReleaseRequest& select_id_meNBinitiatedSgNBRelease() { return set(17); } - SgNBReleaseRequest const* get_id_meNBinitiatedSgNBRelease() const { return get(17); } - SgNBReleaseRequired& select_id_sgNBinitiatedSgNBRelease() { return set(18); } - SgNBReleaseRequired const* get_id_sgNBinitiatedSgNBRelease() const { return get(18); } - SgNBChangeRequired& select_id_sgNBChange() { return set(19); } - SgNBChangeRequired const* get_id_sgNBChange() const { return get(19); } - ENDCX2SetupRequest& select_id_endcX2Setup() { return set(20); } - ENDCX2SetupRequest const* get_id_endcX2Setup() const { return get(20); } - ENDCConfigurationUpdate& select_id_endcConfigurationUpdate() { return set(21); } - ENDCConfigurationUpdate const* get_id_endcConfigurationUpdate() const { return get(21); } - ENDCCellActivationRequest& select_id_endcCellActivation() { return set(22); } - ENDCCellActivationRequest const* get_id_endcCellActivation() const { return get(22); } - ENDCPartialResetRequired& select_id_endcPartialReset() { return set(23); } - ENDCPartialResetRequired const* get_id_endcPartialReset() const { return get(23); } - EUTRANRCellResourceCoordinationRequest& select_id_eUTRANRCellResourceCoordination() { return set(24); } - EUTRANRCellResourceCoordinationRequest const* get_id_eUTRANRCellResourceCoordination() const { return get(24); } - ENDCX2RemovalRequest& select_id_endcX2Removal() { return set(25); } - ENDCX2RemovalRequest const* get_id_endcX2Removal() const { return get(25); } - SNStatusTransfer& select_id_snStatusTransfer() { return set(26); } - SNStatusTransfer const* get_id_snStatusTransfer() const { return get(26); } - UEContextRelease& select_id_uEContextRelease() { return set(27); } - UEContextRelease const* get_id_uEContextRelease() const { return get(27); } - HandoverCancel& select_id_handoverCancel() { return set(28); } - HandoverCancel const* get_id_handoverCancel() const { return get(28); } - ErrorIndication& select_id_errorIndication() { return set(29); } - ErrorIndication const* get_id_errorIndication() const { return get(29); } - ResourceStatusUpdate& select_id_resourceStatusReporting() { return set(30); } - ResourceStatusUpdate const* get_id_resourceStatusReporting() const { return get(30); } - LoadInformation& select_id_loadIndication() { return set(31); } - LoadInformation const* get_id_loadIndication() const { return get(31); } - PrivateMessage& select_id_privateMessage() { return set(32); } - PrivateMessage const* get_id_privateMessage() const { return get(32); } - RLFIndication& select_id_rLFIndication() { return set(33); } - RLFIndication const* get_id_rLFIndication() const { return get(33); } - HandoverReport& select_id_handoverReport() { return set(34); } - HandoverReport const* get_id_handoverReport() const { return get(34); } - X2Release& select_id_x2Release() { return set(35); } - X2Release const* get_id_x2Release() const { return get(35); } - X2APMessageTransfer& select_id_x2APMessageTransfer() { return set(36); } - X2APMessageTransfer const* get_id_x2APMessageTransfer() const { return get(36); } - SeNBReconfigurationComplete& select_id_seNBReconfigurationCompletion() { return set(37); } - SeNBReconfigurationComplete const* get_id_seNBReconfigurationCompletion() const { return get(37); } - SeNBReleaseRequest& select_id_meNBinitiatedSeNBRelease() { return set(38); } - SeNBReleaseRequest const* get_id_meNBinitiatedSeNBRelease() const { return get(38); } - SeNBCounterCheckRequest& select_id_seNBCounterCheck() { return set(39); } - SeNBCounterCheckRequest const* get_id_seNBCounterCheck() const { return get(39); } - SgNBReconfigurationComplete& select_id_sgNBReconfigurationCompletion() { return set(40); } - SgNBReconfigurationComplete const* get_id_sgNBReconfigurationCompletion() const { return get(40); } - SgNBCounterCheckRequest& select_id_sgNBCounterCheck() { return set(41); } - SgNBCounterCheckRequest const* get_id_sgNBCounterCheck() const { return get(41); } - RRCTransfer& select_id_rRCTransfer() { return set(42); } - RRCTransfer const* get_id_rRCTransfer() const { return get(42); } - SecondaryRATDataUsageReport& select_id_secondaryRATDataUsageReport() { return set(43); } - SecondaryRATDataUsageReport const* get_id_secondaryRATDataUsageReport() const { return get(43); } - SgNBActivityNotification& select_id_SgNBActivityNotification() { return set(44); } - SgNBActivityNotification const* get_id_SgNBActivityNotification() const { return get(44); } - DataForwardingAddressIndication& select_id_dataForwardingAddressIndication() { return set(45); } - DataForwardingAddressIndication const* get_id_dataForwardingAddressIndication() const { return get(45); } - bool is_unknown() const { return type == 46; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - case 7: var.destroy(); break; - case 8: var.destroy(); break; - case 9: var.destroy(); break; - case 10: var.destroy(); break; - case 11: var.destroy(); break; - case 12: var.destroy(); break; - case 13: var.destroy(); break; - case 14: var.destroy(); break; - case 15: var.destroy(); break; - case 16: var.destroy(); break; - case 17: var.destroy(); break; - case 18: var.destroy(); break; - case 19: var.destroy(); break; - case 20: var.destroy(); break; - case 21: var.destroy(); break; - case 22: var.destroy(); break; - case 23: var.destroy(); break; - case 24: var.destroy(); break; - case 25: var.destroy(); break; - case 26: var.destroy(); break; - case 27: var.destroy(); break; - case 28: var.destroy(); break; - case 29: var.destroy(); break; - case 30: var.destroy(); break; - case 31: var.destroy(); break; - case 32: var.destroy(); break; - case 33: var.destroy(); break; - case 34: var.destroy(); break; - case 35: var.destroy(); break; - case 36: var.destroy(); break; - case 37: var.destroy(); break; - case 38: var.destroy(); break; - case 39: var.destroy(); break; - case 40: var.destroy(); break; - case 41: var.destroy(); break; - case 42: var.destroy(); break; - case 43: var.destroy(); break; - case 44: var.destroy(); break; - case 45: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - v.template operator()(7); - v.template operator()(8); - v.template operator()(9); - v.template operator()(10); - v.template operator()(11); - v.template operator()(12); - v.template operator()(13); - v.template operator()(14); - v.template operator()(15); - v.template operator()(16); - v.template operator()(17); - v.template operator()(18); - v.template operator()(19); - v.template operator()(20); - v.template operator()(21); - v.template operator()(22); - v.template operator()(23); - v.template operator()(24); - v.template operator()(25); - v.template operator()(26); - v.template operator()(27); - v.template operator()(28); - v.template operator()(29); - v.template operator()(30); - v.template operator()(31); - v.template operator()(32); - v.template operator()(33); - v.template operator()(34); - v.template operator()(35); - v.template operator()(36); - v.template operator()(37); - v.template operator()(38); - v.template operator()(39); - v.template operator()(40); - v.template operator()(41); - v.template operator()(42); - v.template operator()(43); - v.template operator()(44); - v.template operator()(45); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_handoverPreparation()); return true; - case 2: v(select_id_reset()); return true; - case 3: v(select_id_x2Setup()); return true; - case 4: v(select_id_resourceStatusReportingInitiation()); return true; - case 5: v(select_id_eNBConfigurationUpdate()); return true; - case 6: v(select_id_mobilitySettingsChange()); return true; - case 7: v(select_id_cellActivation()); return true; - case 8: v(select_id_seNBAdditionPreparation()); return true; - case 9: v(select_id_meNBinitiatedSeNBModificationPreparation()); return true; - case 10: v(select_id_seNBinitiatedSeNBModification()); return true; - case 11: v(select_id_seNBinitiatedSeNBRelease()); return true; - case 12: v(select_id_x2Removal()); return true; - case 13: v(select_id_retrieveUEContext()); return true; - case 14: v(select_id_sgNBAdditionPreparation()); return true; - case 15: v(select_id_meNBinitiatedSgNBModificationPreparation()); return true; - case 16: v(select_id_sgNBinitiatedSgNBModification()); return true; - case 17: v(select_id_meNBinitiatedSgNBRelease()); return true; - case 18: v(select_id_sgNBinitiatedSgNBRelease()); return true; - case 19: v(select_id_sgNBChange()); return true; - case 20: v(select_id_endcX2Setup()); return true; - case 21: v(select_id_endcConfigurationUpdate()); return true; - case 22: v(select_id_endcCellActivation()); return true; - case 23: v(select_id_endcPartialReset()); return true; - case 24: v(select_id_eUTRANRCellResourceCoordination()); return true; - case 25: v(select_id_endcX2Removal()); return true; - case 26: v(select_id_snStatusTransfer()); return true; - case 27: v(select_id_uEContextRelease()); return true; - case 28: v(select_id_handoverCancel()); return true; - case 29: v(select_id_errorIndication()); return true; - case 30: v(select_id_resourceStatusReporting()); return true; - case 31: v(select_id_loadIndication()); return true; - case 32: v(select_id_privateMessage()); return true; - case 33: v(select_id_rLFIndication()); return true; - case 34: v(select_id_handoverReport()); return true; - case 35: v(select_id_x2Release()); return true; - case 36: v(select_id_x2APMessageTransfer()); return true; - case 37: v(select_id_seNBReconfigurationCompletion()); return true; - case 38: v(select_id_meNBinitiatedSeNBRelease()); return true; - case 39: v(select_id_seNBCounterCheck()); return true; - case 40: v(select_id_sgNBReconfigurationCompletion()); return true; - case 41: v(select_id_sgNBCounterCheck()); return true; - case 42: v(select_id_rRCTransfer()); return true; - case 43: v(select_id_secondaryRATDataUsageReport()); return true; - case 44: v(select_id_SgNBActivityNotification()); return true; - case 45: v(select_id_dataForwardingAddressIndication()); return true; - case 46: if(type != 46) {clear(); asn::base::set();} type = 46; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - case 7: v(var.as()); return true; - case 8: v(var.as()); return true; - case 9: v(var.as()); return true; - case 10: v(var.as()); return true; - case 11: v(var.as()); return true; - case 12: v(var.as()); return true; - case 13: v(var.as()); return true; - case 14: v(var.as()); return true; - case 15: v(var.as()); return true; - case 16: v(var.as()); return true; - case 17: v(var.as()); return true; - case 18: v(var.as()); return true; - case 19: v(var.as()); return true; - case 20: v(var.as()); return true; - case 21: v(var.as()); return true; - case 22: v(var.as()); return true; - case 23: v(var.as()); return true; - case 24: v(var.as()); return true; - case 25: v(var.as()); return true; - case 26: v(var.as()); return true; - case 27: v(var.as()); return true; - case 28: v(var.as()); return true; - case 29: v(var.as()); return true; - case 30: v(var.as()); return true; - case 31: v(var.as()); return true; - case 32: v(var.as()); return true; - case 33: v(var.as()); return true; - case 34: v(var.as()); return true; - case 35: v(var.as()); return true; - case 36: v(var.as()); return true; - case 37: v(var.as()); return true; - case 38: v(var.as()); return true; - case 39: v(var.as()); return true; - case 40: v(var.as()); return true; - case 41: v(var.as()); return true; - case 42: v(var.as()); return true; - case 43: v(var.as()); return true; - case 44: v(var.as()); return true; - case 45: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CellActivationRequest)]; - char dummy2[sizeof(DataForwardingAddressIndication)]; - char dummy3[sizeof(ENBConfigurationUpdate)]; - char dummy4[sizeof(ENDCCellActivationRequest)]; - char dummy5[sizeof(ENDCConfigurationUpdate)]; - char dummy6[sizeof(ENDCPartialResetRequired)]; - char dummy7[sizeof(ENDCX2RemovalRequest)]; - char dummy8[sizeof(ENDCX2SetupRequest)]; - char dummy9[sizeof(EUTRANRCellResourceCoordinationRequest)]; - char dummy10[sizeof(ErrorIndication)]; - char dummy11[sizeof(HandoverCancel)]; - char dummy12[sizeof(HandoverReport)]; - char dummy13[sizeof(HandoverRequest)]; - char dummy14[sizeof(LoadInformation)]; - char dummy15[sizeof(MobilityChangeRequest)]; - char dummy16[sizeof(PrivateMessage)]; - char dummy17[sizeof(RLFIndication)]; - char dummy18[sizeof(RRCTransfer)]; - char dummy19[sizeof(ResetRequest)]; - char dummy20[sizeof(ResourceStatusRequest)]; - char dummy21[sizeof(ResourceStatusUpdate)]; - char dummy22[sizeof(RetrieveUEContextRequest)]; - char dummy23[sizeof(SNStatusTransfer)]; - char dummy24[sizeof(SeNBAdditionRequest)]; - char dummy25[sizeof(SeNBCounterCheckRequest)]; - char dummy26[sizeof(SeNBModificationRequest)]; - char dummy27[sizeof(SeNBModificationRequired)]; - char dummy28[sizeof(SeNBReconfigurationComplete)]; - char dummy29[sizeof(SeNBReleaseRequest)]; - char dummy30[sizeof(SeNBReleaseRequired)]; - char dummy31[sizeof(SecondaryRATDataUsageReport)]; - char dummy32[sizeof(SgNBActivityNotification)]; - char dummy33[sizeof(SgNBAdditionRequest)]; - char dummy34[sizeof(SgNBChangeRequired)]; - char dummy35[sizeof(SgNBCounterCheckRequest)]; - char dummy36[sizeof(SgNBModificationRequest)]; - char dummy37[sizeof(SgNBModificationRequired)]; - char dummy38[sizeof(SgNBReconfigurationComplete)]; - char dummy39[sizeof(SgNBReleaseRequest)]; - char dummy40[sizeof(SgNBReleaseRequired)]; - char dummy41[sizeof(UEContextRelease)]; - char dummy42[sizeof(X2APMessageTransfer)]; - char dummy43[sizeof(X2Release)]; - char dummy44[sizeof(X2RemovalRequest)]; - char dummy45[sizeof(X2SetupRequest)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct SuccessfulOutcome_t : asn::typefield - { - ~SuccessfulOutcome_t() {clear();} - size_t get_index() const {return type;} - HandoverRequestAcknowledge& select_id_handoverPreparation() { return set(1); } - HandoverRequestAcknowledge const* get_id_handoverPreparation() const { return get(1); } - ResetResponse& select_id_reset() { return set(2); } - ResetResponse const* get_id_reset() const { return get(2); } - X2SetupResponse& select_id_x2Setup() { return set(3); } - X2SetupResponse const* get_id_x2Setup() const { return get(3); } - ResourceStatusResponse& select_id_resourceStatusReportingInitiation() { return set(4); } - ResourceStatusResponse const* get_id_resourceStatusReportingInitiation() const { return get(4); } - ENBConfigurationUpdateAcknowledge& select_id_eNBConfigurationUpdate() { return set(5); } - ENBConfigurationUpdateAcknowledge const* get_id_eNBConfigurationUpdate() const { return get(5); } - MobilityChangeAcknowledge& select_id_mobilitySettingsChange() { return set(6); } - MobilityChangeAcknowledge const* get_id_mobilitySettingsChange() const { return get(6); } - CellActivationResponse& select_id_cellActivation() { return set(7); } - CellActivationResponse const* get_id_cellActivation() const { return get(7); } - SeNBAdditionRequestAcknowledge& select_id_seNBAdditionPreparation() { return set(8); } - SeNBAdditionRequestAcknowledge const* get_id_seNBAdditionPreparation() const { return get(8); } - SeNBModificationRequestAcknowledge& select_id_meNBinitiatedSeNBModificationPreparation() { return set(9); } - SeNBModificationRequestAcknowledge const* get_id_meNBinitiatedSeNBModificationPreparation() const { return get(9); } - SeNBModificationConfirm& select_id_seNBinitiatedSeNBModification() { return set(10); } - SeNBModificationConfirm const* get_id_seNBinitiatedSeNBModification() const { return get(10); } - SeNBReleaseConfirm& select_id_seNBinitiatedSeNBRelease() { return set(11); } - SeNBReleaseConfirm const* get_id_seNBinitiatedSeNBRelease() const { return get(11); } - X2RemovalResponse& select_id_x2Removal() { return set(12); } - X2RemovalResponse const* get_id_x2Removal() const { return get(12); } - RetrieveUEContextResponse& select_id_retrieveUEContext() { return set(13); } - RetrieveUEContextResponse const* get_id_retrieveUEContext() const { return get(13); } - SgNBAdditionRequestAcknowledge& select_id_sgNBAdditionPreparation() { return set(14); } - SgNBAdditionRequestAcknowledge const* get_id_sgNBAdditionPreparation() const { return get(14); } - SgNBModificationRequestAcknowledge& select_id_meNBinitiatedSgNBModificationPreparation() { return set(15); } - SgNBModificationRequestAcknowledge const* get_id_meNBinitiatedSgNBModificationPreparation() const { return get(15); } - SgNBModificationConfirm& select_id_sgNBinitiatedSgNBModification() { return set(16); } - SgNBModificationConfirm const* get_id_sgNBinitiatedSgNBModification() const { return get(16); } - SgNBReleaseRequestAcknowledge& select_id_meNBinitiatedSgNBRelease() { return set(17); } - SgNBReleaseRequestAcknowledge const* get_id_meNBinitiatedSgNBRelease() const { return get(17); } - SgNBReleaseConfirm& select_id_sgNBinitiatedSgNBRelease() { return set(18); } - SgNBReleaseConfirm const* get_id_sgNBinitiatedSgNBRelease() const { return get(18); } - SgNBChangeConfirm& select_id_sgNBChange() { return set(19); } - SgNBChangeConfirm const* get_id_sgNBChange() const { return get(19); } - ENDCX2SetupResponse& select_id_endcX2Setup() { return set(20); } - ENDCX2SetupResponse const* get_id_endcX2Setup() const { return get(20); } - ENDCConfigurationUpdateAcknowledge& select_id_endcConfigurationUpdate() { return set(21); } - ENDCConfigurationUpdateAcknowledge const* get_id_endcConfigurationUpdate() const { return get(21); } - ENDCCellActivationResponse& select_id_endcCellActivation() { return set(22); } - ENDCCellActivationResponse const* get_id_endcCellActivation() const { return get(22); } - ENDCPartialResetConfirm& select_id_endcPartialReset() { return set(23); } - ENDCPartialResetConfirm const* get_id_endcPartialReset() const { return get(23); } - EUTRANRCellResourceCoordinationResponse& select_id_eUTRANRCellResourceCoordination() { return set(24); } - EUTRANRCellResourceCoordinationResponse const* get_id_eUTRANRCellResourceCoordination() const { return get(24); } - ENDCX2RemovalResponse& select_id_endcX2Removal() { return set(25); } - ENDCX2RemovalResponse const* get_id_endcX2Removal() const { return get(25); } - bool is_unknown() const { return type == 46; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - case 7: var.destroy(); break; - case 8: var.destroy(); break; - case 9: var.destroy(); break; - case 10: var.destroy(); break; - case 11: var.destroy(); break; - case 12: var.destroy(); break; - case 13: var.destroy(); break; - case 14: var.destroy(); break; - case 15: var.destroy(); break; - case 16: var.destroy(); break; - case 17: var.destroy(); break; - case 18: var.destroy(); break; - case 19: var.destroy(); break; - case 20: var.destroy(); break; - case 21: var.destroy(); break; - case 22: var.destroy(); break; - case 23: var.destroy(); break; - case 24: var.destroy(); break; - case 25: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - v.template operator()(7); - v.template operator()(8); - v.template operator()(9); - v.template operator()(10); - v.template operator()(11); - v.template operator()(12); - v.template operator()(13); - v.template operator()(14); - v.template operator()(15); - v.template operator()(16); - v.template operator()(17); - v.template operator()(18); - v.template operator()(19); - v.template operator()(20); - v.template operator()(21); - v.template operator()(22); - v.template operator()(23); - v.template operator()(24); - v.template operator()(25); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_handoverPreparation()); return true; - case 2: v(select_id_reset()); return true; - case 3: v(select_id_x2Setup()); return true; - case 4: v(select_id_resourceStatusReportingInitiation()); return true; - case 5: v(select_id_eNBConfigurationUpdate()); return true; - case 6: v(select_id_mobilitySettingsChange()); return true; - case 7: v(select_id_cellActivation()); return true; - case 8: v(select_id_seNBAdditionPreparation()); return true; - case 9: v(select_id_meNBinitiatedSeNBModificationPreparation()); return true; - case 10: v(select_id_seNBinitiatedSeNBModification()); return true; - case 11: v(select_id_seNBinitiatedSeNBRelease()); return true; - case 12: v(select_id_x2Removal()); return true; - case 13: v(select_id_retrieveUEContext()); return true; - case 14: v(select_id_sgNBAdditionPreparation()); return true; - case 15: v(select_id_meNBinitiatedSgNBModificationPreparation()); return true; - case 16: v(select_id_sgNBinitiatedSgNBModification()); return true; - case 17: v(select_id_meNBinitiatedSgNBRelease()); return true; - case 18: v(select_id_sgNBinitiatedSgNBRelease()); return true; - case 19: v(select_id_sgNBChange()); return true; - case 20: v(select_id_endcX2Setup()); return true; - case 21: v(select_id_endcConfigurationUpdate()); return true; - case 22: v(select_id_endcCellActivation()); return true; - case 23: v(select_id_endcPartialReset()); return true; - case 24: v(select_id_eUTRANRCellResourceCoordination()); return true; - case 25: v(select_id_endcX2Removal()); return true; - case 46: if(type != 46) {clear(); asn::base::set();} type = 46; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 2: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - case 7: v(var.as()); return true; - case 8: v(var.as()); return true; - case 9: v(var.as()); return true; - case 10: v(var.as()); return true; - case 11: v(var.as()); return true; - case 12: v(var.as()); return true; - case 13: v(var.as()); return true; - case 14: v(var.as()); return true; - case 15: v(var.as()); return true; - case 16: v(var.as()); return true; - case 17: v(var.as()); return true; - case 18: v(var.as()); return true; - case 19: v(var.as()); return true; - case 20: v(var.as()); return true; - case 21: v(var.as()); return true; - case 22: v(var.as()); return true; - case 23: v(var.as()); return true; - case 24: v(var.as()); return true; - case 25: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CellActivationResponse)]; - char dummy2[sizeof(ENBConfigurationUpdateAcknowledge)]; - char dummy3[sizeof(ENDCCellActivationResponse)]; - char dummy4[sizeof(ENDCConfigurationUpdateAcknowledge)]; - char dummy5[sizeof(ENDCPartialResetConfirm)]; - char dummy6[sizeof(ENDCX2RemovalResponse)]; - char dummy7[sizeof(ENDCX2SetupResponse)]; - char dummy8[sizeof(EUTRANRCellResourceCoordinationResponse)]; - char dummy9[sizeof(HandoverRequestAcknowledge)]; - char dummy10[sizeof(MobilityChangeAcknowledge)]; - char dummy11[sizeof(ResetResponse)]; - char dummy12[sizeof(ResourceStatusResponse)]; - char dummy13[sizeof(RetrieveUEContextResponse)]; - char dummy14[sizeof(SeNBAdditionRequestAcknowledge)]; - char dummy15[sizeof(SeNBModificationConfirm)]; - char dummy16[sizeof(SeNBModificationRequestAcknowledge)]; - char dummy17[sizeof(SeNBReleaseConfirm)]; - char dummy18[sizeof(SgNBAdditionRequestAcknowledge)]; - char dummy19[sizeof(SgNBChangeConfirm)]; - char dummy20[sizeof(SgNBModificationConfirm)]; - char dummy21[sizeof(SgNBModificationRequestAcknowledge)]; - char dummy22[sizeof(SgNBReleaseConfirm)]; - char dummy23[sizeof(SgNBReleaseRequestAcknowledge)]; - char dummy24[sizeof(X2RemovalResponse)]; - char dummy25[sizeof(X2SetupResponse)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct UnsuccessfulOutcome_t : asn::typefield - { - ~UnsuccessfulOutcome_t() {clear();} - size_t get_index() const {return type;} - HandoverPreparationFailure& select_id_handoverPreparation() { return set(1); } - HandoverPreparationFailure const* get_id_handoverPreparation() const { return get(1); } - X2SetupFailure& select_id_x2Setup() { return set(3); } - X2SetupFailure const* get_id_x2Setup() const { return get(3); } - ResourceStatusFailure& select_id_resourceStatusReportingInitiation() { return set(4); } - ResourceStatusFailure const* get_id_resourceStatusReportingInitiation() const { return get(4); } - ENBConfigurationUpdateFailure& select_id_eNBConfigurationUpdate() { return set(5); } - ENBConfigurationUpdateFailure const* get_id_eNBConfigurationUpdate() const { return get(5); } - MobilityChangeFailure& select_id_mobilitySettingsChange() { return set(6); } - MobilityChangeFailure const* get_id_mobilitySettingsChange() const { return get(6); } - CellActivationFailure& select_id_cellActivation() { return set(7); } - CellActivationFailure const* get_id_cellActivation() const { return get(7); } - SeNBAdditionRequestReject& select_id_seNBAdditionPreparation() { return set(8); } - SeNBAdditionRequestReject const* get_id_seNBAdditionPreparation() const { return get(8); } - SeNBModificationRequestReject& select_id_meNBinitiatedSeNBModificationPreparation() { return set(9); } - SeNBModificationRequestReject const* get_id_meNBinitiatedSeNBModificationPreparation() const { return get(9); } - SeNBModificationRefuse& select_id_seNBinitiatedSeNBModification() { return set(10); } - SeNBModificationRefuse const* get_id_seNBinitiatedSeNBModification() const { return get(10); } - X2RemovalFailure& select_id_x2Removal() { return set(12); } - X2RemovalFailure const* get_id_x2Removal() const { return get(12); } - RetrieveUEContextFailure& select_id_retrieveUEContext() { return set(13); } - RetrieveUEContextFailure const* get_id_retrieveUEContext() const { return get(13); } - SgNBAdditionRequestReject& select_id_sgNBAdditionPreparation() { return set(14); } - SgNBAdditionRequestReject const* get_id_sgNBAdditionPreparation() const { return get(14); } - SgNBModificationRequestReject& select_id_meNBinitiatedSgNBModificationPreparation() { return set(15); } - SgNBModificationRequestReject const* get_id_meNBinitiatedSgNBModificationPreparation() const { return get(15); } - SgNBModificationRefuse& select_id_sgNBinitiatedSgNBModification() { return set(16); } - SgNBModificationRefuse const* get_id_sgNBinitiatedSgNBModification() const { return get(16); } - SgNBReleaseRequestReject& select_id_meNBinitiatedSgNBRelease() { return set(17); } - SgNBReleaseRequestReject const* get_id_meNBinitiatedSgNBRelease() const { return get(17); } - SgNBChangeRefuse& select_id_sgNBChange() { return set(19); } - SgNBChangeRefuse const* get_id_sgNBChange() const { return get(19); } - ENDCX2SetupFailure& select_id_endcX2Setup() { return set(20); } - ENDCX2SetupFailure const* get_id_endcX2Setup() const { return get(20); } - ENDCConfigurationUpdateFailure& select_id_endcConfigurationUpdate() { return set(21); } - ENDCConfigurationUpdateFailure const* get_id_endcConfigurationUpdate() const { return get(21); } - ENDCCellActivationFailure& select_id_endcCellActivation() { return set(22); } - ENDCCellActivationFailure const* get_id_endcCellActivation() const { return get(22); } - ENDCX2RemovalFailure& select_id_endcX2Removal() { return set(25); } - ENDCX2RemovalFailure const* get_id_endcX2Removal() const { return get(25); } - bool is_unknown() const { return type == 46; } - void clear() - { - switch(type) - { - case 1: var.destroy(); break; - case 3: var.destroy(); break; - case 4: var.destroy(); break; - case 5: var.destroy(); break; - case 6: var.destroy(); break; - case 7: var.destroy(); break; - case 8: var.destroy(); break; - case 9: var.destroy(); break; - case 10: var.destroy(); break; - case 12: var.destroy(); break; - case 13: var.destroy(); break; - case 14: var.destroy(); break; - case 15: var.destroy(); break; - case 16: var.destroy(); break; - case 17: var.destroy(); break; - case 19: var.destroy(); break; - case 20: var.destroy(); break; - case 21: var.destroy(); break; - case 22: var.destroy(); break; - case 25: var.destroy(); break; - } - type = 0; ref_nested().clear(); - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(3); - v.template operator()(4); - v.template operator()(5); - v.template operator()(6); - v.template operator()(7); - v.template operator()(8); - v.template operator()(9); - v.template operator()(10); - v.template operator()(12); - v.template operator()(13); - v.template operator()(14); - v.template operator()(15); - v.template operator()(16); - v.template operator()(17); - v.template operator()(19); - v.template operator()(20); - v.template operator()(21); - v.template operator()(22); - v.template operator()(25); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: v(select_id_handoverPreparation()); return true; - case 3: v(select_id_x2Setup()); return true; - case 4: v(select_id_resourceStatusReportingInitiation()); return true; - case 5: v(select_id_eNBConfigurationUpdate()); return true; - case 6: v(select_id_mobilitySettingsChange()); return true; - case 7: v(select_id_cellActivation()); return true; - case 8: v(select_id_seNBAdditionPreparation()); return true; - case 9: v(select_id_meNBinitiatedSeNBModificationPreparation()); return true; - case 10: v(select_id_seNBinitiatedSeNBModification()); return true; - case 12: v(select_id_x2Removal()); return true; - case 13: v(select_id_retrieveUEContext()); return true; - case 14: v(select_id_sgNBAdditionPreparation()); return true; - case 15: v(select_id_meNBinitiatedSgNBModificationPreparation()); return true; - case 16: v(select_id_sgNBinitiatedSgNBModification()); return true; - case 17: v(select_id_meNBinitiatedSgNBRelease()); return true; - case 19: v(select_id_sgNBChange()); return true; - case 20: v(select_id_endcX2Setup()); return true; - case 21: v(select_id_endcConfigurationUpdate()); return true; - case 22: v(select_id_endcCellActivation()); return true; - case 25: v(select_id_endcX2Removal()); return true; - case 46: if(type != 46) {clear(); asn::base::set();} type = 46; return true; - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) return false; - switch(type) - { - case 1: v(var.as()); return true; - case 3: v(var.as()); return true; - case 4: v(var.as()); return true; - case 5: v(var.as()); return true; - case 6: v(var.as()); return true; - case 7: v(var.as()); return true; - case 8: v(var.as()); return true; - case 9: v(var.as()); return true; - case 10: v(var.as()); return true; - case 12: v(var.as()); return true; - case 13: v(var.as()); return true; - case 14: v(var.as()); return true; - case 15: v(var.as()); return true; - case 16: v(var.as()); return true; - case 17: v(var.as()); return true; - case 19: v(var.as()); return true; - case 20: v(var.as()); return true; - case 21: v(var.as()); return true; - case 22: v(var.as()); return true; - case 25: v(var.as()); return true; - } - return false; - - } - private: - template T& set(size_t index) {if(type != index) {clear(); type = index; return var.build();} return var.as();} - template T const* get(size_t index) const {if(type == index) {return &var.as();} return nullptr;} - union union_type - { - char dummy1[sizeof(CellActivationFailure)]; - char dummy2[sizeof(ENBConfigurationUpdateFailure)]; - char dummy3[sizeof(ENDCCellActivationFailure)]; - char dummy4[sizeof(ENDCConfigurationUpdateFailure)]; - char dummy5[sizeof(ENDCX2RemovalFailure)]; - char dummy6[sizeof(ENDCX2SetupFailure)]; - char dummy7[sizeof(HandoverPreparationFailure)]; - char dummy8[sizeof(MobilityChangeFailure)]; - char dummy9[sizeof(ResourceStatusFailure)]; - char dummy10[sizeof(RetrieveUEContextFailure)]; - char dummy11[sizeof(SeNBAdditionRequestReject)]; - char dummy12[sizeof(SeNBModificationRefuse)]; - char dummy13[sizeof(SeNBModificationRequestReject)]; - char dummy14[sizeof(SgNBAdditionRequestReject)]; - char dummy15[sizeof(SgNBChangeRefuse)]; - char dummy16[sizeof(SgNBModificationRefuse)]; - char dummy17[sizeof(SgNBModificationRequestReject)]; - char dummy18[sizeof(SgNBReleaseRequestReject)]; - char dummy19[sizeof(X2RemovalFailure)]; - char dummy20[sizeof(X2SetupFailure)]; - - }; - asn::variant var; - size_t type {0}; - - }; - struct procedureCode_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 46; } - void clear() {type = 0;} - void select_id_handoverPreparation() { set(id_handoverPreparation); type=1;} - void select_id_reset() { set(id_reset); type=2;} - void select_id_x2Setup() { set(id_x2Setup); type=3;} - void select_id_resourceStatusReportingInitiation() { set(id_resourceStatusReportingInitiation); type=4;} - void select_id_eNBConfigurationUpdate() { set(id_eNBConfigurationUpdate); type=5;} - void select_id_mobilitySettingsChange() { set(id_mobilitySettingsChange); type=6;} - void select_id_cellActivation() { set(id_cellActivation); type=7;} - void select_id_seNBAdditionPreparation() { set(id_seNBAdditionPreparation); type=8;} - void select_id_meNBinitiatedSeNBModificationPreparation() { set(id_meNBinitiatedSeNBModificationPreparation); type=9;} - void select_id_seNBinitiatedSeNBModification() { set(id_seNBinitiatedSeNBModification); type=10;} - void select_id_seNBinitiatedSeNBRelease() { set(id_seNBinitiatedSeNBRelease); type=11;} - void select_id_x2Removal() { set(id_x2Removal); type=12;} - void select_id_retrieveUEContext() { set(id_retrieveUEContext); type=13;} - void select_id_sgNBAdditionPreparation() { set(id_sgNBAdditionPreparation); type=14;} - void select_id_meNBinitiatedSgNBModificationPreparation() { set(id_meNBinitiatedSgNBModificationPreparation); type=15;} - void select_id_sgNBinitiatedSgNBModification() { set(id_sgNBinitiatedSgNBModification); type=16;} - void select_id_meNBinitiatedSgNBRelease() { set(id_meNBinitiatedSgNBRelease); type=17;} - void select_id_sgNBinitiatedSgNBRelease() { set(id_sgNBinitiatedSgNBRelease); type=18;} - void select_id_sgNBChange() { set(id_sgNBChange); type=19;} - void select_id_endcX2Setup() { set(id_endcX2Setup); type=20;} - void select_id_endcConfigurationUpdate() { set(id_endcConfigurationUpdate); type=21;} - void select_id_endcCellActivation() { set(id_endcCellActivation); type=22;} - void select_id_endcPartialReset() { set(id_endcPartialReset); type=23;} - void select_id_eUTRANRCellResourceCoordination() { set(id_eUTRANRCellResourceCoordination); type=24;} - void select_id_endcX2Removal() { set(id_endcX2Removal); type=25;} - void select_id_snStatusTransfer() { set(id_snStatusTransfer); type=26;} - void select_id_uEContextRelease() { set(id_uEContextRelease); type=27;} - void select_id_handoverCancel() { set(id_handoverCancel); type=28;} - void select_id_errorIndication() { set(id_errorIndication); type=29;} - void select_id_resourceStatusReporting() { set(id_resourceStatusReporting); type=30;} - void select_id_loadIndication() { set(id_loadIndication); type=31;} - void select_id_privateMessage() { set(id_privateMessage); type=32;} - void select_id_rLFIndication() { set(id_rLFIndication); type=33;} - void select_id_handoverReport() { set(id_handoverReport); type=34;} - void select_id_x2Release() { set(id_x2Release); type=35;} - void select_id_x2APMessageTransfer() { set(id_x2APMessageTransfer); type=36;} - void select_id_seNBReconfigurationCompletion() { set(id_seNBReconfigurationCompletion); type=37;} - void select_id_meNBinitiatedSeNBRelease() { set(id_meNBinitiatedSeNBRelease); type=38;} - void select_id_seNBCounterCheck() { set(id_seNBCounterCheck); type=39;} - void select_id_sgNBReconfigurationCompletion() { set(id_sgNBReconfigurationCompletion); type=40;} - void select_id_sgNBCounterCheck() { set(id_sgNBCounterCheck); type=41;} - void select_id_rRCTransfer() { set(id_rRCTransfer); type=42;} - void select_id_secondaryRATDataUsageReport() { set(id_secondaryRATDataUsageReport); type=43;} - void select_id_SgNBActivityNotification() { set(id_SgNBActivityNotification); type=44;} - void select_id_dataForwardingAddressIndication() { set(id_dataForwardingAddressIndication); type=45;} - X2AP_ELEMENTARY_PROCEDURE::procedureCode_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(id_handoverPreparation)) { type = 1; return true; } - else if(equal(id_reset)) { type = 2; return true; } - else if(equal(id_x2Setup)) { type = 3; return true; } - else if(equal(id_resourceStatusReportingInitiation)) { type = 4; return true; } - else if(equal(id_eNBConfigurationUpdate)) { type = 5; return true; } - else if(equal(id_mobilitySettingsChange)) { type = 6; return true; } - else if(equal(id_cellActivation)) { type = 7; return true; } - else if(equal(id_seNBAdditionPreparation)) { type = 8; return true; } - else if(equal(id_meNBinitiatedSeNBModificationPreparation)) { type = 9; return true; } - else if(equal(id_seNBinitiatedSeNBModification)) { type = 10; return true; } - else if(equal(id_seNBinitiatedSeNBRelease)) { type = 11; return true; } - else if(equal(id_x2Removal)) { type = 12; return true; } - else if(equal(id_retrieveUEContext)) { type = 13; return true; } - else if(equal(id_sgNBAdditionPreparation)) { type = 14; return true; } - else if(equal(id_meNBinitiatedSgNBModificationPreparation)) { type = 15; return true; } - else if(equal(id_sgNBinitiatedSgNBModification)) { type = 16; return true; } - else if(equal(id_meNBinitiatedSgNBRelease)) { type = 17; return true; } - else if(equal(id_sgNBinitiatedSgNBRelease)) { type = 18; return true; } - else if(equal(id_sgNBChange)) { type = 19; return true; } - else if(equal(id_endcX2Setup)) { type = 20; return true; } - else if(equal(id_endcConfigurationUpdate)) { type = 21; return true; } - else if(equal(id_endcCellActivation)) { type = 22; return true; } - else if(equal(id_endcPartialReset)) { type = 23; return true; } - else if(equal(id_eUTRANRCellResourceCoordination)) { type = 24; return true; } - else if(equal(id_endcX2Removal)) { type = 25; return true; } - else if(equal(id_snStatusTransfer)) { type = 26; return true; } - else if(equal(id_uEContextRelease)) { type = 27; return true; } - else if(equal(id_handoverCancel)) { type = 28; return true; } - else if(equal(id_errorIndication)) { type = 29; return true; } - else if(equal(id_resourceStatusReporting)) { type = 30; return true; } - else if(equal(id_loadIndication)) { type = 31; return true; } - else if(equal(id_privateMessage)) { type = 32; return true; } - else if(equal(id_rLFIndication)) { type = 33; return true; } - else if(equal(id_handoverReport)) { type = 34; return true; } - else if(equal(id_x2Release)) { type = 35; return true; } - else if(equal(id_x2APMessageTransfer)) { type = 36; return true; } - else if(equal(id_seNBReconfigurationCompletion)) { type = 37; return true; } - else if(equal(id_meNBinitiatedSeNBRelease)) { type = 38; return true; } - else if(equal(id_seNBCounterCheck)) { type = 39; return true; } - else if(equal(id_sgNBReconfigurationCompletion)) { type = 40; return true; } - else if(equal(id_sgNBCounterCheck)) { type = 41; return true; } - else if(equal(id_rRCTransfer)) { type = 42; return true; } - else if(equal(id_secondaryRATDataUsageReport)) { type = 43; return true; } - else if(equal(id_SgNBActivityNotification)) { type = 44; return true; } - else if(equal(id_dataForwardingAddressIndication)) { type = 45; return true; } - else { type = 46; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(id_handoverPreparation);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(id_reset);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(id_x2Setup);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(id_resourceStatusReportingInitiation);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(id_eNBConfigurationUpdate);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(id_mobilitySettingsChange);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(id_cellActivation);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(id_seNBAdditionPreparation);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(id_meNBinitiatedSeNBModificationPreparation);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(id_seNBinitiatedSeNBModification);} return false; - case 11: type = 11; if(v(ref_nested())) { return equal(id_seNBinitiatedSeNBRelease);} return false; - case 12: type = 12; if(v(ref_nested())) { return equal(id_x2Removal);} return false; - case 13: type = 13; if(v(ref_nested())) { return equal(id_retrieveUEContext);} return false; - case 14: type = 14; if(v(ref_nested())) { return equal(id_sgNBAdditionPreparation);} return false; - case 15: type = 15; if(v(ref_nested())) { return equal(id_meNBinitiatedSgNBModificationPreparation);} return false; - case 16: type = 16; if(v(ref_nested())) { return equal(id_sgNBinitiatedSgNBModification);} return false; - case 17: type = 17; if(v(ref_nested())) { return equal(id_meNBinitiatedSgNBRelease);} return false; - case 18: type = 18; if(v(ref_nested())) { return equal(id_sgNBinitiatedSgNBRelease);} return false; - case 19: type = 19; if(v(ref_nested())) { return equal(id_sgNBChange);} return false; - case 20: type = 20; if(v(ref_nested())) { return equal(id_endcX2Setup);} return false; - case 21: type = 21; if(v(ref_nested())) { return equal(id_endcConfigurationUpdate);} return false; - case 22: type = 22; if(v(ref_nested())) { return equal(id_endcCellActivation);} return false; - case 23: type = 23; if(v(ref_nested())) { return equal(id_endcPartialReset);} return false; - case 24: type = 24; if(v(ref_nested())) { return equal(id_eUTRANRCellResourceCoordination);} return false; - case 25: type = 25; if(v(ref_nested())) { return equal(id_endcX2Removal);} return false; - case 26: type = 26; if(v(ref_nested())) { return equal(id_snStatusTransfer);} return false; - case 27: type = 27; if(v(ref_nested())) { return equal(id_uEContextRelease);} return false; - case 28: type = 28; if(v(ref_nested())) { return equal(id_handoverCancel);} return false; - case 29: type = 29; if(v(ref_nested())) { return equal(id_errorIndication);} return false; - case 30: type = 30; if(v(ref_nested())) { return equal(id_resourceStatusReporting);} return false; - case 31: type = 31; if(v(ref_nested())) { return equal(id_loadIndication);} return false; - case 32: type = 32; if(v(ref_nested())) { return equal(id_privateMessage);} return false; - case 33: type = 33; if(v(ref_nested())) { return equal(id_rLFIndication);} return false; - case 34: type = 34; if(v(ref_nested())) { return equal(id_handoverReport);} return false; - case 35: type = 35; if(v(ref_nested())) { return equal(id_x2Release);} return false; - case 36: type = 36; if(v(ref_nested())) { return equal(id_x2APMessageTransfer);} return false; - case 37: type = 37; if(v(ref_nested())) { return equal(id_seNBReconfigurationCompletion);} return false; - case 38: type = 38; if(v(ref_nested())) { return equal(id_meNBinitiatedSeNBRelease);} return false; - case 39: type = 39; if(v(ref_nested())) { return equal(id_seNBCounterCheck);} return false; - case 40: type = 40; if(v(ref_nested())) { return equal(id_sgNBReconfigurationCompletion);} return false; - case 41: type = 41; if(v(ref_nested())) { return equal(id_sgNBCounterCheck);} return false; - case 42: type = 42; if(v(ref_nested())) { return equal(id_rRCTransfer);} return false; - case 43: type = 43; if(v(ref_nested())) { return equal(id_secondaryRATDataUsageReport);} return false; - case 44: type = 44; if(v(ref_nested())) { return equal(id_SgNBActivityNotification);} return false; - case 45: type = 45; if(v(ref_nested())) { return equal(id_dataForwardingAddressIndication);} return false; - case 46: type = 46; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - struct criticality_t : asn::fixedtypefield - { - size_t get_index() const {return type;} - bool is_unknown() const { return type == 46; } - void clear() {type = 0;} - void select_id_handoverPreparation() { set(reject); type=1;} - void select_id_reset() { set(reject); type=2;} - void select_id_x2Setup() { set(reject); type=3;} - void select_id_resourceStatusReportingInitiation() { set(reject); type=4;} - void select_id_eNBConfigurationUpdate() { set(reject); type=5;} - void select_id_mobilitySettingsChange() { set(reject); type=6;} - void select_id_cellActivation() { set(reject); type=7;} - void select_id_seNBAdditionPreparation() { set(reject); type=8;} - void select_id_meNBinitiatedSeNBModificationPreparation() { set(reject); type=9;} - void select_id_seNBinitiatedSeNBModification() { set(reject); type=10;} - void select_id_seNBinitiatedSeNBRelease() { set(reject); type=11;} - void select_id_x2Removal() { set(reject); type=12;} - void select_id_retrieveUEContext() { set(reject); type=13;} - void select_id_sgNBAdditionPreparation() { set(reject); type=14;} - void select_id_meNBinitiatedSgNBModificationPreparation() { set(reject); type=15;} - void select_id_sgNBinitiatedSgNBModification() { set(reject); type=16;} - void select_id_meNBinitiatedSgNBRelease() { set(ignore); type=17;} - void select_id_sgNBinitiatedSgNBRelease() { set(reject); type=18;} - void select_id_sgNBChange() { set(reject); type=19;} - void select_id_endcX2Setup() { set(reject); type=20;} - void select_id_endcConfigurationUpdate() { set(reject); type=21;} - void select_id_endcCellActivation() { set(reject); type=22;} - void select_id_endcPartialReset() { set(reject); type=23;} - void select_id_eUTRANRCellResourceCoordination() { set(reject); type=24;} - void select_id_endcX2Removal() { set(reject); type=25;} - void select_id_snStatusTransfer() { set(ignore); type=26;} - void select_id_uEContextRelease() { set(ignore); type=27;} - void select_id_handoverCancel() { set(ignore); type=28;} - void select_id_errorIndication() { set(ignore); type=29;} - void select_id_resourceStatusReporting() { set(ignore); type=30;} - void select_id_loadIndication() { set(ignore); type=31;} - void select_id_privateMessage() { set(ignore); type=32;} - void select_id_rLFIndication() { set(ignore); type=33;} - void select_id_handoverReport() { set(ignore); type=34;} - void select_id_x2Release() { set(reject); type=35;} - void select_id_x2APMessageTransfer() { set(reject); type=36;} - void select_id_seNBReconfigurationCompletion() { set(ignore); type=37;} - void select_id_meNBinitiatedSeNBRelease() { set(ignore); type=38;} - void select_id_seNBCounterCheck() { set(reject); type=39;} - void select_id_sgNBReconfigurationCompletion() { set(ignore); type=40;} - void select_id_sgNBCounterCheck() { set(reject); type=41;} - void select_id_rRCTransfer() { set(reject); type=42;} - void select_id_secondaryRATDataUsageReport() { set(reject); type=43;} - void select_id_SgNBActivityNotification() { set(reject); type=44;} - void select_id_dataForwardingAddressIndication() { set(ignore); type=45;} - X2AP_ELEMENTARY_PROCEDURE::criticality_t const& ref_value() const {return ref_nested();} - template bool decode(V& v) - { - clear(); - if(!v(ref_nested())) return false; - if(equal(reject)) { type = 1; return true; } - else if(equal(reject)) { type = 2; return true; } - else if(equal(reject)) { type = 3; return true; } - else if(equal(reject)) { type = 4; return true; } - else if(equal(reject)) { type = 5; return true; } - else if(equal(reject)) { type = 6; return true; } - else if(equal(reject)) { type = 7; return true; } - else if(equal(reject)) { type = 8; return true; } - else if(equal(reject)) { type = 9; return true; } - else if(equal(reject)) { type = 10; return true; } - else if(equal(reject)) { type = 11; return true; } - else if(equal(reject)) { type = 12; return true; } - else if(equal(reject)) { type = 13; return true; } - else if(equal(reject)) { type = 14; return true; } - else if(equal(reject)) { type = 15; return true; } - else if(equal(reject)) { type = 16; return true; } - else if(equal(ignore)) { type = 17; return true; } - else if(equal(reject)) { type = 18; return true; } - else if(equal(reject)) { type = 19; return true; } - else if(equal(reject)) { type = 20; return true; } - else if(equal(reject)) { type = 21; return true; } - else if(equal(reject)) { type = 22; return true; } - else if(equal(reject)) { type = 23; return true; } - else if(equal(reject)) { type = 24; return true; } - else if(equal(reject)) { type = 25; return true; } - else if(equal(ignore)) { type = 26; return true; } - else if(equal(ignore)) { type = 27; return true; } - else if(equal(ignore)) { type = 28; return true; } - else if(equal(ignore)) { type = 29; return true; } - else if(equal(ignore)) { type = 30; return true; } - else if(equal(ignore)) { type = 31; return true; } - else if(equal(ignore)) { type = 32; return true; } - else if(equal(ignore)) { type = 33; return true; } - else if(equal(ignore)) { type = 34; return true; } - else if(equal(reject)) { type = 35; return true; } - else if(equal(reject)) { type = 36; return true; } - else if(equal(ignore)) { type = 37; return true; } - else if(equal(ignore)) { type = 38; return true; } - else if(equal(reject)) { type = 39; return true; } - else if(equal(ignore)) { type = 40; return true; } - else if(equal(reject)) { type = 41; return true; } - else if(equal(reject)) { type = 42; return true; } - else if(equal(reject)) { type = 43; return true; } - else if(equal(reject)) { type = 44; return true; } - else if(equal(ignore)) { type = 45; return true; } - else { type = 46; return true;} - return false; - - } - template bool encode(V& v) const - { - return v(ref_nested()); - - } - protected: - template bool decode(size_t index, V& v) - { - clear(); - switch(index) - { - case 1: type = 1; if(v(ref_nested())) { return equal(reject);} return false; - case 2: type = 2; if(v(ref_nested())) { return equal(reject);} return false; - case 3: type = 3; if(v(ref_nested())) { return equal(reject);} return false; - case 4: type = 4; if(v(ref_nested())) { return equal(reject);} return false; - case 5: type = 5; if(v(ref_nested())) { return equal(reject);} return false; - case 6: type = 6; if(v(ref_nested())) { return equal(reject);} return false; - case 7: type = 7; if(v(ref_nested())) { return equal(reject);} return false; - case 8: type = 8; if(v(ref_nested())) { return equal(reject);} return false; - case 9: type = 9; if(v(ref_nested())) { return equal(reject);} return false; - case 10: type = 10; if(v(ref_nested())) { return equal(reject);} return false; - case 11: type = 11; if(v(ref_nested())) { return equal(reject);} return false; - case 12: type = 12; if(v(ref_nested())) { return equal(reject);} return false; - case 13: type = 13; if(v(ref_nested())) { return equal(reject);} return false; - case 14: type = 14; if(v(ref_nested())) { return equal(reject);} return false; - case 15: type = 15; if(v(ref_nested())) { return equal(reject);} return false; - case 16: type = 16; if(v(ref_nested())) { return equal(reject);} return false; - case 17: type = 17; if(v(ref_nested())) { return equal(ignore);} return false; - case 18: type = 18; if(v(ref_nested())) { return equal(reject);} return false; - case 19: type = 19; if(v(ref_nested())) { return equal(reject);} return false; - case 20: type = 20; if(v(ref_nested())) { return equal(reject);} return false; - case 21: type = 21; if(v(ref_nested())) { return equal(reject);} return false; - case 22: type = 22; if(v(ref_nested())) { return equal(reject);} return false; - case 23: type = 23; if(v(ref_nested())) { return equal(reject);} return false; - case 24: type = 24; if(v(ref_nested())) { return equal(reject);} return false; - case 25: type = 25; if(v(ref_nested())) { return equal(reject);} return false; - case 26: type = 26; if(v(ref_nested())) { return equal(ignore);} return false; - case 27: type = 27; if(v(ref_nested())) { return equal(ignore);} return false; - case 28: type = 28; if(v(ref_nested())) { return equal(ignore);} return false; - case 29: type = 29; if(v(ref_nested())) { return equal(ignore);} return false; - case 30: type = 30; if(v(ref_nested())) { return equal(ignore);} return false; - case 31: type = 31; if(v(ref_nested())) { return equal(ignore);} return false; - case 32: type = 32; if(v(ref_nested())) { return equal(ignore);} return false; - case 33: type = 33; if(v(ref_nested())) { return equal(ignore);} return false; - case 34: type = 34; if(v(ref_nested())) { return equal(ignore);} return false; - case 35: type = 35; if(v(ref_nested())) { return equal(reject);} return false; - case 36: type = 36; if(v(ref_nested())) { return equal(reject);} return false; - case 37: type = 37; if(v(ref_nested())) { return equal(ignore);} return false; - case 38: type = 38; if(v(ref_nested())) { return equal(ignore);} return false; - case 39: type = 39; if(v(ref_nested())) { return equal(reject);} return false; - case 40: type = 40; if(v(ref_nested())) { return equal(ignore);} return false; - case 41: type = 41; if(v(ref_nested())) { return equal(reject);} return false; - case 42: type = 42; if(v(ref_nested())) { return equal(reject);} return false; - case 43: type = 43; if(v(ref_nested())) { return equal(reject);} return false; - case 44: type = 44; if(v(ref_nested())) { return equal(reject);} return false; - case 45: type = 45; if(v(ref_nested())) { return equal(ignore);} return false; - case 46: type = 46; return v(ref_nested()); - ref_nested().clear(); - } - return false; - - } - template bool encode(size_t index, V& v) const - { - if(index != type) {return false;} return v(ref_nested()); - - } - private: - size_t type {0}; - - }; - -}; -/* -InitiatingMessage ::= SEQUENCE { - procedureCode X2AP-ELEMENTARY-PROCEDURE.&procedureCode ({X2AP-ELEMENTARY-PROCEDURES}), - criticality X2AP-ELEMENTARY-PROCEDURE.&criticality ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode}), - value X2AP-ELEMENTARY-PROCEDURE.&InitiatingMessage ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode}) -} -*/ - -struct InitiatingMessage : asn::sequence<3, 0, false, 0> -{ - static constexpr const char* name() {return "InitiatingMessage";} - using parent_t = asn::sequence<3, 0, false, 0>; - struct procedureCode_t : X2AP_ELEMENTARY_PROCEDURES::procedureCode_t - { - static constexpr const char* name() {return "procedureCode_t";} - using parent_t = typename X2AP_ELEMENTARY_PROCEDURES::procedureCode_t; - template bool decode(V& v, InitiatingMessage const& c) - { - return X2AP_ELEMENTARY_PROCEDURES::procedureCode_t::decode(v); - }; - template bool encode(V& v, InitiatingMessage const& c) const - { - return X2AP_ELEMENTARY_PROCEDURES::procedureCode_t::encode(v); - }; - }; - procedureCode_t& ref_procedureCode() {return procedureCode;} - procedureCode_t const& ref_procedureCode() const {return procedureCode;} - struct criticality_t : X2AP_ELEMENTARY_PROCEDURES::criticality_t - { - static constexpr const char* name() {return "criticality_t";} - using parent_t = typename X2AP_ELEMENTARY_PROCEDURES::criticality_t; - template bool decode(V& v, InitiatingMessage const& c) - { - return X2AP_ELEMENTARY_PROCEDURES::criticality_t::decode(c.procedureCode.get_index(), v); - }; - template bool encode(V& v, InitiatingMessage const& c) const - { - return X2AP_ELEMENTARY_PROCEDURES::criticality_t::encode(c.procedureCode.get_index(), v); - }; - }; - criticality_t& ref_criticality() {return criticality;} - criticality_t const& ref_criticality() const {return criticality;} - struct value_t : X2AP_ELEMENTARY_PROCEDURES::InitiatingMessage_t - { - static constexpr const char* name() {return "value_t";} - using parent_t = typename X2AP_ELEMENTARY_PROCEDURES::InitiatingMessage_t; - template bool decode(V& v, InitiatingMessage const& c) - { - return X2AP_ELEMENTARY_PROCEDURES::InitiatingMessage_t::decode(c.procedureCode.get_index(), v); - }; - template bool encode(V& v, InitiatingMessage const& c) const - { - return X2AP_ELEMENTARY_PROCEDURES::InitiatingMessage_t::encode(c.procedureCode.get_index(), v); - }; - }; - value_t& ref_value() {return value;} - value_t const& ref_value() const {return value;} - template void decode(V& v) - { - v(procedureCode); - v(criticality); - v(value); - - }; - template void encode(V& v) const - { - v(procedureCode); - v(criticality); - v(value); - - }; - void clear() - { - procedureCode.clear(); - criticality.clear(); - value.clear(); - - }; - private: - procedureCode_t procedureCode; - criticality_t criticality; - value_t value; - -}; -/* -SuccessfulOutcome ::= SEQUENCE { - procedureCode X2AP-ELEMENTARY-PROCEDURE.&procedureCode ({X2AP-ELEMENTARY-PROCEDURES}), - criticality X2AP-ELEMENTARY-PROCEDURE.&criticality ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode}), - value X2AP-ELEMENTARY-PROCEDURE.&SuccessfulOutcome ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode}) -} -*/ - -struct SuccessfulOutcome : asn::sequence<3, 0, false, 0> -{ - static constexpr const char* name() {return "SuccessfulOutcome";} - using parent_t = asn::sequence<3, 0, false, 0>; - struct procedureCode_t : X2AP_ELEMENTARY_PROCEDURES::procedureCode_t - { - static constexpr const char* name() {return "procedureCode_t";} - using parent_t = typename X2AP_ELEMENTARY_PROCEDURES::procedureCode_t; - template bool decode(V& v, SuccessfulOutcome const& c) - { - return X2AP_ELEMENTARY_PROCEDURES::procedureCode_t::decode(v); - }; - template bool encode(V& v, SuccessfulOutcome const& c) const - { - return X2AP_ELEMENTARY_PROCEDURES::procedureCode_t::encode(v); - }; - }; - procedureCode_t& ref_procedureCode() {return procedureCode;} - procedureCode_t const& ref_procedureCode() const {return procedureCode;} - struct criticality_t : X2AP_ELEMENTARY_PROCEDURES::criticality_t - { - static constexpr const char* name() {return "criticality_t";} - using parent_t = typename X2AP_ELEMENTARY_PROCEDURES::criticality_t; - template bool decode(V& v, SuccessfulOutcome const& c) - { - return X2AP_ELEMENTARY_PROCEDURES::criticality_t::decode(c.procedureCode.get_index(), v); - }; - template bool encode(V& v, SuccessfulOutcome const& c) const - { - return X2AP_ELEMENTARY_PROCEDURES::criticality_t::encode(c.procedureCode.get_index(), v); - }; - }; - criticality_t& ref_criticality() {return criticality;} - criticality_t const& ref_criticality() const {return criticality;} - struct value_t : X2AP_ELEMENTARY_PROCEDURES::SuccessfulOutcome_t - { - static constexpr const char* name() {return "value_t";} - using parent_t = typename X2AP_ELEMENTARY_PROCEDURES::SuccessfulOutcome_t; - template bool decode(V& v, SuccessfulOutcome const& c) - { - return X2AP_ELEMENTARY_PROCEDURES::SuccessfulOutcome_t::decode(c.procedureCode.get_index(), v); - }; - template bool encode(V& v, SuccessfulOutcome const& c) const - { - return X2AP_ELEMENTARY_PROCEDURES::SuccessfulOutcome_t::encode(c.procedureCode.get_index(), v); - }; - }; - value_t& ref_value() {return value;} - value_t const& ref_value() const {return value;} - template void decode(V& v) - { - v(procedureCode); - v(criticality); - v(value); - - }; - template void encode(V& v) const - { - v(procedureCode); - v(criticality); - v(value); - - }; - void clear() - { - procedureCode.clear(); - criticality.clear(); - value.clear(); - - }; - private: - procedureCode_t procedureCode; - criticality_t criticality; - value_t value; - -}; -/* -UnsuccessfulOutcome ::= SEQUENCE { - procedureCode X2AP-ELEMENTARY-PROCEDURE.&procedureCode ({X2AP-ELEMENTARY-PROCEDURES}), - criticality X2AP-ELEMENTARY-PROCEDURE.&criticality ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode}), - value X2AP-ELEMENTARY-PROCEDURE.&UnsuccessfulOutcome ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode}) -} -*/ - -struct UnsuccessfulOutcome : asn::sequence<3, 0, false, 0> -{ - static constexpr const char* name() {return "UnsuccessfulOutcome";} - using parent_t = asn::sequence<3, 0, false, 0>; - struct procedureCode_t : X2AP_ELEMENTARY_PROCEDURES::procedureCode_t - { - static constexpr const char* name() {return "procedureCode_t";} - using parent_t = typename X2AP_ELEMENTARY_PROCEDURES::procedureCode_t; - template bool decode(V& v, UnsuccessfulOutcome const& c) - { - return X2AP_ELEMENTARY_PROCEDURES::procedureCode_t::decode(v); - }; - template bool encode(V& v, UnsuccessfulOutcome const& c) const - { - return X2AP_ELEMENTARY_PROCEDURES::procedureCode_t::encode(v); - }; - }; - procedureCode_t& ref_procedureCode() {return procedureCode;} - procedureCode_t const& ref_procedureCode() const {return procedureCode;} - struct criticality_t : X2AP_ELEMENTARY_PROCEDURES::criticality_t - { - static constexpr const char* name() {return "criticality_t";} - using parent_t = typename X2AP_ELEMENTARY_PROCEDURES::criticality_t; - template bool decode(V& v, UnsuccessfulOutcome const& c) - { - return X2AP_ELEMENTARY_PROCEDURES::criticality_t::decode(c.procedureCode.get_index(), v); - }; - template bool encode(V& v, UnsuccessfulOutcome const& c) const - { - return X2AP_ELEMENTARY_PROCEDURES::criticality_t::encode(c.procedureCode.get_index(), v); - }; - }; - criticality_t& ref_criticality() {return criticality;} - criticality_t const& ref_criticality() const {return criticality;} - struct value_t : X2AP_ELEMENTARY_PROCEDURES::UnsuccessfulOutcome_t - { - static constexpr const char* name() {return "value_t";} - using parent_t = typename X2AP_ELEMENTARY_PROCEDURES::UnsuccessfulOutcome_t; - template bool decode(V& v, UnsuccessfulOutcome const& c) - { - return X2AP_ELEMENTARY_PROCEDURES::UnsuccessfulOutcome_t::decode(c.procedureCode.get_index(), v); - }; - template bool encode(V& v, UnsuccessfulOutcome const& c) const - { - return X2AP_ELEMENTARY_PROCEDURES::UnsuccessfulOutcome_t::encode(c.procedureCode.get_index(), v); - }; - }; - value_t& ref_value() {return value;} - value_t const& ref_value() const {return value;} - template void decode(V& v) - { - v(procedureCode); - v(criticality); - v(value); - - }; - template void encode(V& v) const - { - v(procedureCode); - v(criticality); - v(value); - - }; - void clear() - { - procedureCode.clear(); - criticality.clear(); - value.clear(); - - }; - private: - procedureCode_t procedureCode; - criticality_t criticality; - value_t value; - -}; -/* -X2AP-PDU ::= CHOICE { - initiatingMessage InitiatingMessage, - successfulOutcome SuccessfulOutcome, - unsuccessfulOutcome UnsuccessfulOutcome, - ... -} -*/ - -struct X2AP_PDU : asn::choice<3, 0, true> -{ - static constexpr const char* name() {return "X2AP-PDU";} - using parent_t = asn::choice<3, 0, true>; - index_type get_index() const {return index;} - bool is_unknown() const {return index == 4;} - void set_unknown() { set_index(4); } - ~X2AP_PDU() {clear();} - struct initiatingMessage_t : InitiatingMessage - { - static constexpr const char* name() {return "initiatingMessage_t";} - using parent_t = InitiatingMessage; - - }; - struct successfulOutcome_t : SuccessfulOutcome - { - static constexpr const char* name() {return "successfulOutcome_t";} - using parent_t = SuccessfulOutcome; - - }; - struct unsuccessfulOutcome_t : UnsuccessfulOutcome - { - static constexpr const char* name() {return "unsuccessfulOutcome_t";} - using parent_t = UnsuccessfulOutcome; - - }; - void clear() - { - switch(get_index()) - { - case 1: var.destroy(); break; - case 2: var.destroy(); break; - case 3: var.destroy(); break; - } - index = 0; - base::clear(); - } - template bool decode(size_t idx, V& v) - { - clear(); - switch(idx) - { - case 1: set_index(1); return v(var.build()); - case 2: set_index(2); return v(var.build()); - case 3: set_index(3); return v(var.build()); - } - return false; - - } - template bool encode(V& v) const - { - switch(get_index()) - { - case 1: return v(var.as()); - case 2: return v(var.as()); - case 3: return v(var.as()); - } - return false; - } - template static inline void enumerate(V& v) - { - v.template operator()(1); - v.template operator()(2); - v.template operator()(3); - - } - initiatingMessage_t& select_initiatingMessage() { if(get_index() != 1) { clear(); set_index(1); return var.build();} return var.as();} - initiatingMessage_t const* get_initiatingMessage() const { if(get_index() == 1) { return &var.as();} return nullptr; } - successfulOutcome_t& select_successfulOutcome() { if(get_index() != 2) { clear(); set_index(2); return var.build();} return var.as();} - successfulOutcome_t const* get_successfulOutcome() const { if(get_index() == 2) { return &var.as();} return nullptr; } - unsuccessfulOutcome_t& select_unsuccessfulOutcome() { if(get_index() != 3) { clear(); set_index(3); return var.build();} return var.as();} - unsuccessfulOutcome_t const* get_unsuccessfulOutcome() const { if(get_index() == 3) { return &var.as();} return nullptr; } - private: - void set_index(index_type i) {index = i; base::set();} - union union_type - { - char dummy1[sizeof(initiatingMessage_t)]; - char dummy2[sizeof(successfulOutcome_t)]; - char dummy3[sizeof(unsuccessfulOutcome_t)]; - - }; - asn::variant var; - index_type index {0}; -}; diff --git a/e2sim/previous/src/ASN1/lib/asn_e2ap.cpp b/e2sim/previous/src/ASN1/lib/asn_e2ap.cpp deleted file mode 100644 index fa2fd88..0000000 --- a/e2sim/previous/src/ASN1/lib/asn_e2ap.cpp +++ /dev/null @@ -1,982 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ -#include "asn_e2ap.hpp" -#include "asn_e2ap_wrapper.hpp" - -/*----------------------------------------------------------------------- - COMMON ROUTINES -------------------------------------------------------------------------- -*/ -e2ap_pdu_t* new_e2ap_pdu(void) -{ - E2APpduWrapper* pduWrapper = new E2APpduWrapper(); - return reinterpret_cast(pduWrapper); -} - -void e2ap_asn_print(e2ap_pdu_t* pdu, char* buf, size_t buf_size) -{ - E2APpduWrapper* pduWrapper = reinterpret_cast(pdu); - - buf[0] = 0; - - strncat(buf, asn::get_printed(pduWrapper->ref_pdu()).c_str(), buf_size - 1); -} - -int e2ap_asn_per_encode(e2ap_pdu_t* pdu, unsigned char* buf, size_t buf_size, - char* err_buf, size_t err_buf_size) -{ - E2APpduWrapper* pduWrapper = reinterpret_cast(pdu); - - asn::per::EncoderCtx ctx{ buf, buf_size }; - - if (!asn::per::pack(pduWrapper->ref_pdu(), ctx)) { - err_buf[0] = 0; - //strncat(err_buf, ctx.refErrorCtx().toString().c_str(), err_buf_size - 1); - return -1; - } else { - return static_cast(ctx.refBuffer().getBytesUsed()); - } - -} - -int e2ap_asn_per_decode(e2ap_pdu_t* pdu, unsigned char const* buf, size_t buf_size, - char* err_buf, size_t err_buf_size) -{ - E2APpduWrapper* pduWrapper = reinterpret_cast(pdu); - - asn::per::DecoderCtx ctx{ buf, - buf_size, - pduWrapper->m_allocation_buffer, - pduWrapper->m_allocation_buffer_size }; - - if (!asn::per::unpack(pduWrapper->ref_pdu(), ctx)) { - err_buf[0] = 0; - //strncat(err_buf, ctx.refErrorCtx().toString().c_str(), err_buf_size - 1); - return -1; - } - - return 0; - -} - -int e2ap_get_index(e2ap_pdu_t* pdu) -{ - E2APpduWrapper* pduWrapper = reinterpret_cast(pdu); - - return pduWrapper->ref_pdu().get_index(); -} - -int e2ap_get_procedureCode(e2ap_pdu_t* pdu) -{ - E2APpduWrapper* pduWrapper = reinterpret_cast(pdu); - - switch(pduWrapper->ref_pdu().get_index()) - { - case 1: - return pduWrapper->ref_pdu().get_initiatingMessage()->ref_procedureCode().get(); - break; - - case 2: - return pduWrapper->ref_pdu().get_successfulOutcome()->ref_procedureCode().get(); - break; - - case 3: - return pduWrapper->ref_pdu().get_unsuccessfulOutcome()->ref_procedureCode().get(); - break; - - default: - return -1; - } - -} - -/*----------------------------------------------------------------------- - MESSAGE GENERATORS -------------------------------------------------------------------------- -*/ -//X2Setup -bool e2ap_init_X2SetupRequest(e2ap_pdu_t* pdu) -{ - E2APpduWrapper* pduWrapper = reinterpret_cast(pdu); - - //Initialization - pduWrapper->ref_pdu().select_initiatingMessage(); - pduWrapper->ref_pdu().select_initiatingMessage().clear(); - pduWrapper->ref_pdu().select_initiatingMessage().ref_procedureCode().select_id_x2Setup(); - pduWrapper->ref_pdu().select_initiatingMessage().ref_criticality().select_id_x2Setup(); - pduWrapper->ref_pdu().select_initiatingMessage().ref_value().select_id_x2Setup(); - - return true; -} - -bool e2ap_create_X2SetupRequest(e2ap_pdu_t* pdu, eNB_config &cfg) -{ - E2APpduWrapper* pduWrapper = reinterpret_cast(pdu); - - /* Initiaization */ - pduWrapper->ref_pdu().select_initiatingMessage().ref_procedureCode().select_id_x2Setup(); - pduWrapper->ref_pdu().select_initiatingMessage().ref_criticality().select_id_x2Setup(); - - X2SetupRequest* container = - &(pduWrapper->ref_pdu().select_initiatingMessage().ref_value().select_id_x2Setup()); - - using IE_value_t = X2SetupRequest::protocolIEs_t::value_type; - - /* X2SetupRequest-IEs : GlobalENB-ID*/ - IE_value_t* val_GlobalENB_ID = new IE_value_t; - container->ref_protocolIEs().push_back(*val_GlobalENB_ID); - - val_GlobalENB_ID->ref_id().select_id_GlobalENB_ID(); - val_GlobalENB_ID->ref_criticality().select_id_GlobalENB_ID(); - val_GlobalENB_ID->ref_value().select_id_GlobalENB_ID().ref_pLMN_Identity() - .set(3, cfg.pLMN_Identity); - val_GlobalENB_ID->ref_value().select_id_GlobalENB_ID().ref_eNB_ID() - .select_macro_eNB_ID().set_buffer(20, cfg.macro_eNB_ID); - - /* X2SetupRequest-IEs : ServedCells*/ - IE_value_t* val_ServedCells = new IE_value_t; - container->ref_protocolIEs().push_back(*val_ServedCells); - - val_ServedCells->ref_id().select_id_ServedCells(); - val_ServedCells->ref_criticality().select_id_ServedCells(); - val_ServedCells->ref_value().select_id_ServedCells(); - - //Add servedCellInfo - ServedCells::value_type* elm = new ServedCells::value_type(); - ServedCell_Information* info = &(elm->ref_servedCellInfo()); - { - //Set ServedCell-Information: pCI, cellId, tAC, broadcastPLMNs, eUTRA-Mode-Info - info->ref_pCI().set(cfg.pCI); - info->ref_cellId().ref_pLMN_Identity().set(3, cfg.pLMN_Identity); - info->ref_cellId().ref_eUTRANcellIdentifier().set_buffer(28, cfg.eUTRANcellIdentifier); - info->ref_tAC().set(2, cfg.tAC); - - BroadcastPLMNs_Item::value_type* item = new BroadcastPLMNs_Item::value_type(); - item->set(3, cfg.pLMN_Identity); - info->ref_broadcastPLMNs().push_back(*item); - - info->ref_eUTRA_Mode_Info().select_fDD().ref_uL_EARFCN().set(cfg.uL_EARFCN); - info->ref_eUTRA_Mode_Info().select_fDD().ref_dL_EARFCN().set(cfg.dL_EARFCN); - info->ref_eUTRA_Mode_Info().select_fDD().ref_uL_Transmission_Bandwidth() - .set(static_cast(cfg.uL_Bandwidth)); - info->ref_eUTRA_Mode_Info().select_fDD().ref_dL_Transmission_Bandwidth() - .set(static_cast(cfg.dL_Bandwidth)); - } - val_ServedCells->ref_value().select_id_ServedCells().push_back(*elm); - - return true; -} - -bool e2ap_create_X2SetupResponse(e2ap_pdu_t* pdu, eNB_config &cfg) -{ - E2APpduWrapper* pduWrapper = reinterpret_cast(pdu); - - /* Initiaization */ - pduWrapper->ref_pdu().select_successfulOutcome().ref_procedureCode().select_id_x2Setup(); - pduWrapper->ref_pdu().select_successfulOutcome().ref_criticality().select_id_x2Setup(); - - X2SetupResponse* container = - &(pduWrapper->ref_pdu().select_successfulOutcome().ref_value().select_id_x2Setup()); - - using IE_value_t = X2SetupResponse::protocolIEs_t::value_type; - - /* X2SetupResponse-IEs : GlobalENB-ID*/ - IE_value_t* val_GlobalENB_ID = new IE_value_t; - container->ref_protocolIEs().push_back(*val_GlobalENB_ID); - - val_GlobalENB_ID->ref_id().select_id_GlobalENB_ID(); - val_GlobalENB_ID->ref_criticality().select_id_GlobalENB_ID(); - val_GlobalENB_ID->ref_value().select_id_GlobalENB_ID().ref_pLMN_Identity() - .set(3, cfg.pLMN_Identity); - - val_GlobalENB_ID->ref_value().select_id_GlobalENB_ID().ref_eNB_ID() - .select_macro_eNB_ID().set_buffer(20, cfg.macro_eNB_ID); - - /* X2SetupResponse-IEs : ServedCells*/ - IE_value_t* val_ServedCells = new IE_value_t; - container->ref_protocolIEs().push_back(*val_ServedCells); - - val_ServedCells->ref_id().select_id_ServedCells(); - val_ServedCells->ref_criticality().select_id_ServedCells(); - val_ServedCells->ref_value().select_id_ServedCells(); - - //Add servedCellInfo - ServedCells::value_type* elm = new ServedCells::value_type(); - ServedCell_Information* info = &(elm->ref_servedCellInfo()); - { - //Set ServedCell-Information: pCI, cellId, tAC, broadcastPLMNs, eUTRA-Mode-Info - info->ref_pCI().set(cfg.pCI); - info->ref_cellId().ref_pLMN_Identity().set(3, cfg.pLMN_Identity); - info->ref_cellId().ref_eUTRANcellIdentifier().set_buffer(28, cfg.eUTRANcellIdentifier); - info->ref_tAC().set(2, cfg.tAC); - - BroadcastPLMNs_Item::value_type* item = new BroadcastPLMNs_Item::value_type(); - item->set(3, cfg.pLMN_Identity); - info->ref_broadcastPLMNs().push_back(*item); - - info->ref_eUTRA_Mode_Info().select_fDD().ref_uL_EARFCN().set(cfg.uL_EARFCN); - info->ref_eUTRA_Mode_Info().select_fDD().ref_dL_EARFCN().set(cfg.dL_EARFCN); - info->ref_eUTRA_Mode_Info().select_fDD().ref_uL_Transmission_Bandwidth() - .set(static_cast(cfg.uL_Bandwidth)); - info->ref_eUTRA_Mode_Info().select_fDD().ref_dL_Transmission_Bandwidth() - .set(static_cast(cfg.dL_Bandwidth)); - } - val_ServedCells->ref_value().select_id_ServedCells().push_back(*elm); - - return true; -} - -bool e2ap_create_X2SetupFailure(e2ap_pdu_t* pdu) -{ - E2APpduWrapper* pduWrapper = reinterpret_cast(pdu); - - /* Initiaization */ - pduWrapper->ref_pdu().select_unsuccessfulOutcome().ref_procedureCode().select_id_x2Setup(); - pduWrapper->ref_pdu().select_unsuccessfulOutcome().ref_criticality().select_id_x2Setup(); - - X2SetupFailure* container = - &(pduWrapper->ref_pdu().select_unsuccessfulOutcome().ref_value().select_id_x2Setup()); - - using IE_value_t = X2SetupFailure::protocolIEs_t::value_type; - - /* X2SetupFailure-IEs << id-Cause */ - IE_value_t* val_cause = new IE_value_t; - container->ref_protocolIEs().push_back(*val_cause); - - val_cause->ref_id().select_id_Cause(); - val_cause->ref_criticality().select_id_Cause(); - - /* Cause << radioNetwork */ - val_cause->ref_value().select_id_Cause().select_radioNetwork(); - - /* CauseRadioNetwork = ho-target-not-allowed (enum = 8)*/ - val_cause->ref_value().select_id_Cause().select_radioNetwork() - .set(static_cast(8)); - - return true; -} - -//ENDCX2Setup -bool e2ap_create_ENDCX2SetupRequest(e2ap_pdu_t* pdu, eNB_config &cfg) -{ - E2APpduWrapper* pduWrapper = reinterpret_cast(pdu); - - /* Initiaization */ - pduWrapper->ref_pdu().select_initiatingMessage().ref_procedureCode().select_id_endcX2Setup(); - pduWrapper->ref_pdu().select_initiatingMessage().ref_criticality().select_id_endcX2Setup(); - - ENDCX2SetupRequest* container = - &(pduWrapper->ref_pdu().select_initiatingMessage().ref_value().select_id_endcX2Setup()); - - using IE_value_t = ENDCX2SetupRequest::protocolIEs_t::value_type; - - /* ENDCX2SetupRequest-IEs = id-InitiatingNodeType-EndcX2Setup */ - IE_value_t* ie = new IE_value_t; - container->ref_protocolIEs().push_back(*ie); - ie->ref_id().select_id_InitiatingNodeType_EndcX2Setup(); - ie->ref_criticality().select_id_InitiatingNodeType_EndcX2Setup(); - ie->ref_value().select_id_InitiatingNodeType_EndcX2Setup(); - - /* InitiatingNodeType-EndcX2Setup = init-eNB {ENB-ENDCX2SetupReqIEs} */ - ie->ref_value().select_id_InitiatingNodeType_EndcX2Setup().select_init_eNB(); - - using eNB_val_t = InitiatingNodeType_EndcX2Setup::init_eNB_t::value_type; - - ProtocolIE_Container* eNB_node = - &(ie->ref_value().select_id_InitiatingNodeType_EndcX2Setup().select_init_eNB()); - - /* ENB-ENDCX2SetupReqIEs <-- id-GlobalENB-ID */ - eNB_val_t* val_GlobalENB_ID = new eNB_val_t; - eNB_node->push_back(*val_GlobalENB_ID); - - val_GlobalENB_ID->ref_id().select_id_GlobalENB_ID(); - val_GlobalENB_ID->ref_criticality().select_id_GlobalENB_ID(); - val_GlobalENB_ID->ref_value().select_id_GlobalENB_ID() - .ref_pLMN_Identity().set(3, cfg.pLMN_Identity); - val_GlobalENB_ID->ref_value().select_id_GlobalENB_ID().ref_eNB_ID() - .select_macro_eNB_ID().set_buffer(20, cfg.macro_eNB_ID); - - /* ENB-ENDCX2SetupReqIEs <-- id-ServedEUTRAcellsENDCX2ManagementList */ - eNB_val_t* val_EUTRAlist = new eNB_val_t; - eNB_node->push_back(*val_EUTRAlist); - - val_EUTRAlist->ref_id().select_id_ServedEUTRAcellsENDCX2ManagementList(); - val_EUTRAlist->ref_criticality().select_id_ServedEUTRAcellsENDCX2ManagementList(); - val_EUTRAlist->ref_value().select_id_ServedEUTRAcellsENDCX2ManagementList(); - - /* ServedEUTRAcellsENDCX2ManagementList <-- servedEUTRACellInfo */ - ServedEUTRAcellsENDCX2ManagementList::value_type* elm = - new ServedEUTRAcellsENDCX2ManagementList::value_type(); - ServedCell_Information* info = &(elm->ref_servedEUTRACellInfo()); - { - //Set ServedCell-Information: pCI, cellId, tAC, broadcastPLMNs, eUTRA-Mode-Info - info->ref_pCI().set(cfg.pCI); - info->ref_cellId().ref_pLMN_Identity().set(3, cfg.pLMN_Identity); - info->ref_cellId().ref_eUTRANcellIdentifier().set_buffer(28, cfg.eUTRANcellIdentifier); - info->ref_tAC().set(2, cfg.tAC); - - BroadcastPLMNs_Item::value_type* item = new BroadcastPLMNs_Item::value_type(); - item->set(3, cfg.pLMN_Identity); - info->ref_broadcastPLMNs().push_back(*item); - - info->ref_eUTRA_Mode_Info().select_fDD().ref_uL_EARFCN().set(cfg.uL_EARFCN); - info->ref_eUTRA_Mode_Info().select_fDD().ref_dL_EARFCN().set(cfg.dL_EARFCN); - info->ref_eUTRA_Mode_Info().select_fDD().ref_uL_Transmission_Bandwidth() - .set(static_cast(cfg.uL_Bandwidth)); - info->ref_eUTRA_Mode_Info().select_fDD().ref_dL_Transmission_Bandwidth() - .set(static_cast(cfg.dL_Bandwidth)); - } - val_EUTRAlist->ref_value().select_id_ServedEUTRAcellsENDCX2ManagementList() - .push_back(*elm); - - return true; -} - -bool e2ap_create_ENDCX2SetupResponse(e2ap_pdu_t* pdu, gNB_config &gnb_cfg) -{ - E2APpduWrapper* pduWrapper = reinterpret_cast(pdu); - - /* Initiaization */ - pduWrapper->ref_pdu().select_successfulOutcome().ref_procedureCode().select_id_endcX2Setup(); - pduWrapper->ref_pdu().select_successfulOutcome().ref_criticality().select_id_endcX2Setup(); - - ENDCX2SetupResponse* container = - &(pduWrapper->ref_pdu().select_successfulOutcome().ref_value().select_id_endcX2Setup()); - - using IE_value_t = ENDCX2SetupResponse::protocolIEs_t::value_type; - - /* ENDCX2SetupRequest-IEs = id-RespondingNodeType-EndcX2Setup */ - IE_value_t* ie = new IE_value_t; - container->ref_protocolIEs().push_back(*ie); - ie->ref_id().select_id_RespondingNodeType_EndcX2Setup(); - ie->ref_criticality().select_id_RespondingNodeType_EndcX2Setup(); - ie->ref_value().select_id_RespondingNodeType_EndcX2Setup(); - - /* RespondingNodeType-EndcX2Setup = respond-en-gNB {En-gNB-ENDCX2SetupReqAckIEs} */ - ie->ref_value().select_id_RespondingNodeType_EndcX2Setup().select_respond_en_gNB(); - - using gNB_val_t = RespondingNodeType_EndcX2Setup::respond_en_gNB_t::value_type; - - ProtocolIE_Container* gNB_node = - &(ie->ref_value().select_id_RespondingNodeType_EndcX2Setup().select_respond_en_gNB()); - - /* En-gNB-ENDCX2SetupReqAckIEs << id-Globalen-gNB-ID */ - gNB_val_t* val_Globalen_gNB_ID = new gNB_val_t; - gNB_node->push_back(*val_Globalen_gNB_ID); - - val_Globalen_gNB_ID->ref_id().select_id_Globalen_gNB_ID(); - val_Globalen_gNB_ID->ref_criticality().select_id_Globalen_gNB_ID(); - val_Globalen_gNB_ID->ref_value().select_id_Globalen_gNB_ID() - .ref_pLMN_Identity().set(3, gnb_cfg.pLMN_Identity); - val_Globalen_gNB_ID->ref_value().select_id_Globalen_gNB_ID().ref_gNB_ID() - .select_gNB_ID().set_buffer(22, gnb_cfg.gNB_ID); - - /* En-gNB-ENDCX2SetupReqAckIEs << id-ServedNRcellsENDCX2ManagementList */ - gNB_val_t* val_ServedNRCells = new gNB_val_t; - gNB_node->push_back(*val_ServedNRCells); - - val_ServedNRCells->ref_id().select_id_ServedNRcellsENDCX2ManagementList(); - val_ServedNRCells->ref_criticality().select_id_ServedNRcellsENDCX2ManagementList(); - val_ServedNRCells->ref_value().select_id_ServedNRcellsENDCX2ManagementList(); - - /* ServedNRcellsENDCX2ManagementList <-- servedNRCellInfo*/ - ServedNRcellsENDCX2ManagementList::value_type* elm = - new ServedNRcellsENDCX2ManagementList::value_type(); - - /* - ServedNRCell-Information ::= SEQUENCE { - nrpCI NRPCI, - nrCellID NRCGI, - fiveGS-TAC FiveGS-TAC OPTIONAL, - configured-TAC TAC OPTIONAL, - broadcastPLMNs BroadcastPLMNs-Item, - nrModeInfo CHOICE { - fdd FDD-InfoServedNRCell-Information, - tdd TDD-InfoServedNRCell-Information, - ... - }, - measurementTimingConfiguration OCTET STRING, - iE-Extensions ProtocolExtensionContainer { {ServedNRCell-Information-ExtIEs} } OPTIONAL, - ... - } - */ - ServedNRCell_Information* info = &(elm->ref_servedNRCellInfo()); - { - // nrpCI NRPCI, - info->ref_nrpCI().set(gnb_cfg.nrpCI); - - /* nrCellID NRCGI, - - NRCGI ::= SEQUENCE { - pLMN-Identity PLMN-Identity, - nRcellIdentifier NRCellIdentifier, - iE-Extensions ProtocolExtensionContainer { {NRCGI-ExtIEs} } OPTIONAL, - ... - } - */ - info->ref_nrCellID().ref_pLMN_Identity().set(3, gnb_cfg.pLMN_Identity); - info->ref_nrCellID().ref_nRcellIdentifier().set_buffer(36, gnb_cfg.nRcellIdentifier); - - /* broadcastPLMNs BroadcastPLMNs-Item */ - BroadcastPLMNs_Item::value_type* item = new BroadcastPLMNs_Item::value_type(); - item->set(3, gnb_cfg.pLMN_Identity); - info->ref_broadcastPLMNs().push_back(*item); - - /* nrModeInfo CHOICE { - fdd FDD-InfoServedNRCell-Information, - tdd TDD-InfoServedNRCell-Information, - ... - }, - - FDD-InfoServedNRCell-Information ::= SEQUENCE { - ul-NRFreqInfo NRFreqInfo, - dl-NRFreqInfo NRFreqInfo, - ul-NR-TxBW NR-TxBW, - dl-NR-TxBW NR-TxBW, - iE-Extensions ProtocolExtensionContainer { {FDD-InfoServedNRCell-Information-ExtIEs} } OPTIONAL, - ... - } - - NRFreqInfo ::= SEQUENCE{ - nRARFCN INTEGER (0.. 3279165), - freqBandListNr SEQUENCE (SIZE(1..maxnoofNrCellBands)) OF FreqBandNrItem, - sULInformation SULInformation OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {NRFreqInfo-ExtIEs} } OPTIONAL, - - ... - } - - */ - info->ref_nrModeInfo().select_fdd().ref_ul_NRFreqInfo().ref_nRARFCN().set(gnb_cfg.uL_nRARFCN); - info->ref_nrModeInfo().select_fdd().ref_dl_NRFreqInfo().ref_nRARFCN().set(gnb_cfg.dL_nRARFCN); - - /* - FreqBandNrItem ::= SEQUENCE { - freqBandIndicatorNr INTEGER (1..1024,...), - supportedSULBandList SEQUENCE (SIZE(0..maxnoofNrCellBands)) OF SupportedSULFreqBandItem, - iE-Extensions ProtocolExtensionContainer { {FreqBandNrItem-ExtIEs} } OPTIONAL, - ... - } - */ - //uplink - asn::sequenceof::value_type* ul_band_item = - new asn::sequenceof::value_type(); - { - ul_band_item->ref_freqBandIndicatorNr().set(gnb_cfg.ul_freqBandIndicatorNr); - - /* - SupportedSULFreqBandItem ::= SEQUENCE { - freqBandIndicatorNr INTEGER (1..1024,...), - iE-Extensions ProtocolExtensionContainer { {SupportedSULFreqBandItem-ExtIEs} } OPTIONAL, - ... - } - */ - - asn::sequenceof::value_type* ul_supported_band_item = - new asn::sequenceof::value_type(); - - ul_supported_band_item->ref_freqBandIndicatorNr().set(gnb_cfg.ul_freqBandIndicatorNr); - - ul_band_item->ref_supportedSULBandList().push_back(*ul_supported_band_item); - } - info->ref_nrModeInfo().select_fdd().ref_ul_NRFreqInfo() - .ref_freqBandListNr().push_back(*ul_band_item); - - //downlink - asn::sequenceof::value_type* dl_band_item = - new asn::sequenceof::value_type(); - { - dl_band_item->ref_freqBandIndicatorNr().set(gnb_cfg.dl_freqBandIndicatorNr); - - /* - SupportedSULFreqBandItem ::= SEQUENCE { - freqBandIndicatorNr INTEGER (1..1024,...), - iE-Extensions ProtocolExtensionContainer { {SupportedSULFreqBandItem-ExtIEs} } OPTIONAL, - ... - } - */ - - asn::sequenceof::value_type* dl_supported_band_item = - new asn::sequenceof::value_type(); - - dl_supported_band_item->ref_freqBandIndicatorNr().set(gnb_cfg.dl_freqBandIndicatorNr); - - dl_band_item->ref_supportedSULBandList().push_back(*dl_supported_band_item); - } - info->ref_nrModeInfo().select_fdd().ref_dl_NRFreqInfo() - .ref_freqBandListNr().push_back(*dl_band_item); - - /* - NR-TxBW ::= SEQUENCE { - nRSCS NRSCS, - nRNRB NRNRB, - iE-Extensions ProtocolExtensionContainer { {NR-TxBW-ExtIEs} } OPTIONAL, - ... - } - */ - { - info->ref_nrModeInfo().select_fdd().ref_ul_NR_TxBW().ref_nRNRB() - .set( static_cast(gnb_cfg.uL_NRNRB) ); - info->ref_nrModeInfo().select_fdd().ref_ul_NR_TxBW().ref_nRSCS() - .set( static_cast(gnb_cfg.uL_NRSCS) ); - - info->ref_nrModeInfo().select_fdd().ref_dl_NR_TxBW().ref_nRNRB() - .set( static_cast(gnb_cfg.dL_NRNRB) ); - info->ref_nrModeInfo().select_fdd().ref_dl_NR_TxBW().ref_nRSCS() - .set( static_cast(gnb_cfg.dL_NRSCS) ); - } - - /* - measurementTimingConfiguration OCTET STRING, - */ - info->ref_measurementTimingConfiguration().set(gnb_cfg.measurementTimingConfiguration); - } - val_ServedNRCells->ref_value().select_id_ServedNRcellsENDCX2ManagementList().push_back(*elm); - - - - return true; -} - -bool e2ap_create_ENDCX2SetupFailure(e2ap_pdu_t* pdu) -{ - - E2APpduWrapper* pduWrapper = reinterpret_cast(pdu); - - /* Initiaization */ - pduWrapper->ref_pdu().select_unsuccessfulOutcome().ref_procedureCode().select_id_endcX2Setup(); - pduWrapper->ref_pdu().select_unsuccessfulOutcome().ref_criticality().select_id_endcX2Setup(); - - ENDCX2SetupFailure* container = - &(pduWrapper->ref_pdu().select_unsuccessfulOutcome().ref_value().select_id_endcX2Setup()); - - using IE_value_t = ENDCX2SetupFailure::protocolIEs_t::value_type; - - /* ENDCX2SetupFailure-IEs := id-Cause*/ - IE_value_t* val_cause = new IE_value_t; - container->ref_protocolIEs().push_back(*val_cause); - - val_cause->ref_id().select_id_Cause(); - val_cause->ref_criticality().select_id_Cause(); - - /* Cause << radioNetwork */ - val_cause->ref_value().select_id_Cause().select_radioNetwork(); - - /* CauseRadioNetwork = ho-target-not-allowed (enum = 8)*/ - val_cause->ref_value().select_id_Cause().select_radioNetwork() - .set(static_cast(8)); - - return true; -} - -//RICSubscription -bool e2ap_create_RICsubscriptionRequest(e2ap_pdu_t* pdu, RICsubscription_params_t ¶ms) -{ - E2APpduWrapper* pduWrapper = reinterpret_cast(pdu); - - /* Initiaization */ - pduWrapper->ref_pdu().select_initiatingMessage() - .ref_procedureCode().select_id_ricSubscription(); - pduWrapper->ref_pdu().select_initiatingMessage() - .ref_criticality().select_id_ricSubscription(); - - RICsubscriptionRequest* container = &(pduWrapper->ref_pdu() - .select_initiatingMessage().ref_value().select_id_ricSubscription()); - - using IE_value_t = RICsubscriptionRequest::protocolIEs_t::value_type; - - /* RICsubscriptionRequest-IEs : RICrequestID */ - IE_value_t* ie_RICrequestID = new IE_value_t; - container->ref_protocolIEs().push_back(*ie_RICrequestID); - - ie_RICrequestID->ref_id().select_id_RICrequestID(); - ie_RICrequestID->ref_criticality().select_id_RICrequestID(); - ie_RICrequestID->ref_value().select_id_RICrequestID() - .ref_ricRequestorID().set(params.request_id); - ie_RICrequestID->ref_value().select_id_RICrequestID() - .ref_ricRequestSequenceNumber().set(params.seq_number); - - /* RICsubscriptionRequest-IEs : RANfunctionID */ - IE_value_t* ie_RANfunctionID = new IE_value_t; - container->ref_protocolIEs().push_back(*ie_RANfunctionID); - - ie_RANfunctionID->ref_id().select_id_RANfunctionID(); - ie_RANfunctionID->ref_criticality().select_id_RANfunctionID(); - ie_RANfunctionID->ref_value().select_id_RANfunctionID().set(params.ran_func_id); - - - /* - RICsubscription ::= SEQUENCE { - ricEventTriggerDefinition RICeventTriggerDefinition, - ricAction-ToBeSetup-List RICactions-ToBeSetup-List, - ... - } - - RICeventTriggerDefinition ::= OCTET STRING - RICactions-ToBeSetup-List ::= SEQUENCE (SIZE(1..maxofRICactionID)) OF ProtocolIE-Single-Container { {RICaction-ToBeSetup-ItemIEs} } - - RICaction-ToBeSetup-ItemIEs X2AP-PROTOCOL-IES ::= { - { ID id-RICaction-ToBeSetup-Item CRITICALITY ignore TYPE RICaction-ToBeSetup-Item PRESENCE mandatory }, - ... - } - - RICaction-ToBeSetup-Item ::= SEQUENCE { - ricActionID RICactionID, - ricActionType RICactionType, - ricActionDefinition RICactionDefinition OPTIONAL, - ricSubsequentAction RICsubsequentAction OPTIONAL, - ... - } - - RICactionID ::= INTEGER (0..255) - - RICactionType ::= ENUMERATED{ - report, - insert, - policy, - ... - } - */ - - /* RICsubscriptionRequest-IEs : RICsubscription */ - IE_value_t* ie_RICsubscription = new IE_value_t; - container->ref_protocolIEs().push_back(*ie_RICsubscription); - - ie_RICsubscription->ref_id().select_id_RICsubscription(); - ie_RICsubscription->ref_criticality().select_id_RICsubscription(); - - // RICeventTriggerDefinition - ie_RICsubscription->ref_value().select_id_RICsubscription() - .ref_ricEventTriggerDefinition().set(params.event_trigger_def); - - //RICactions-ToBeSetup-List - for( auto const &action : params.actionList) - { - RICactions_ToBeSetup_List::value_type* item = - new RICactions_ToBeSetup_List::value_type(); - - ie_RICsubscription->ref_value().select_id_RICsubscription() - .ref_ricAction_ToBeSetup_List().push_back(*item); - - item->ref_id().select_id_RICaction_ToBeSetup_Item(); - item->ref_criticality().select_id_RICaction_ToBeSetup_Item(); - item->ref_value().select_id_RICaction_ToBeSetup_Item() - .ref_ricActionID().set(action.action_id); - item->ref_value().select_id_RICaction_ToBeSetup_Item() - .ref_ricActionType().set(action.action_type); - - } - - return true; -} - -bool e2ap_parse_RICsubscriptionRequest(e2ap_pdu_t* pdu, RICsubscription_params_t ¶ms) -{ - E2APpduWrapper* pduWrapper = reinterpret_cast(pdu); - - RICsubscriptionRequest* container = &(pduWrapper->ref_pdu() - .select_initiatingMessage().ref_value().select_id_ricSubscription()); - - - for(auto &e : container->ref_protocolIEs()) - { - /*See struct RICsubscriptionRequest_IEs*/ - size_t type = e.ref_value().get_index(); - - switch(type) - { - case 1: //RICrequestID - { - params.request_id = e.ref_value().select_id_RICrequestID().ref_ricRequestorID().get(); - params.seq_number = e.ref_value().select_id_RICrequestID().ref_ricRequestSequenceNumber().get(); - } - break; - - case 2: //RANfunctionID - params.ran_func_id = e.ref_value().select_id_RANfunctionID().get(); - break; - - case 3: //RICsubscription - { - auto event = e.ref_value().select_id_RICsubscription().ref_ricEventTriggerDefinition().get(); - (params.event_trigger_def).assign(std::string(event.data(), event.data() + event.size())); - - //ricAction_ToBeSetup_List - for (auto & f : e.ref_value().select_id_RICsubscription().ref_ricAction_ToBeSetup_List()) - { - RIC_action_t action; - action.action_id = f.ref_value() - .select_id_RICaction_ToBeSetup_Item().ref_ricActionID().get(); - action.action_type = static_cast(f.ref_value() - .select_id_RICaction_ToBeSetup_Item().ref_ricActionType().get()); - - params.actionList.push_back(action); - } - } - break; - - default: - printf("Unknown IE type = %d\n", (int)type); - return false; - } - } - - return true; -} - -bool e2ap_create_RICsubscriptionResponse(e2ap_pdu_t* pdu, RICsubscription_params_t ¶ms) -{ - E2APpduWrapper* pduWrapper = reinterpret_cast(pdu); - - /* Initiaization */ - pduWrapper->ref_pdu().select_successfulOutcome().ref_procedureCode().select_id_ricSubscription(); - pduWrapper->ref_pdu().select_successfulOutcome().ref_criticality().select_id_ricSubscription(); - - RICsubscriptionResponse* container = &(pduWrapper->ref_pdu() - .select_successfulOutcome().ref_value().select_id_ricSubscription()); - - using IE_value_t = RICsubscriptionResponse::protocolIEs_t::value_type; - - /* RICsubscriptionResponse-IEs : RICrequestID */ - IE_value_t* ie_RICrequestID = new IE_value_t; - container->ref_protocolIEs().push_back(*ie_RICrequestID); - - ie_RICrequestID->ref_id().select_id_RICrequestID(); - ie_RICrequestID->ref_criticality().select_id_RICrequestID(); - ie_RICrequestID->ref_value().select_id_RICrequestID() - .ref_ricRequestorID().set(params.request_id); - ie_RICrequestID->ref_value().select_id_RICrequestID() - .ref_ricRequestSequenceNumber().set(params.seq_number); - - /* RICsubscriptionResponse-IEs : RANfunctionID */ - IE_value_t* ie_RANfunctionID = new IE_value_t; - container->ref_protocolIEs().push_back(*ie_RANfunctionID); - - ie_RANfunctionID->ref_id().select_id_RANfunctionID(); - ie_RANfunctionID->ref_criticality().select_id_RANfunctionID(); - ie_RANfunctionID->ref_value().select_id_RANfunctionID().set(params.ran_func_id); - - /* RICsubscriptionResponse-IEs : RICaction-Admitted-List */ - IE_value_t* ie_admittedList = new IE_value_t; - container->ref_protocolIEs().push_back(*ie_admittedList); - - ie_admittedList->ref_id().select_id_RICactions_Admitted(); - ie_admittedList->ref_criticality().select_id_RICactions_Admitted(); - - /* RICsubscriptionResponse-IEs : RICaction-NotAdmitted-List */ - IE_value_t* ie_notAdmittedList = new IE_value_t; - container->ref_protocolIEs().push_back(*ie_notAdmittedList); - - ie_notAdmittedList->ref_id().select_id_RICactions_NotAdmitted(); - ie_notAdmittedList->ref_criticality().select_id_RICactions_NotAdmitted(); - - //add action to admitted and not-admitted list - for(auto const &a : params.actionList) - { - if(a.isAdmitted) - { - RICaction_Admitted_List::value_type* item = new RICaction_Admitted_List::value_type(); - - ie_admittedList->ref_value().select_id_RICactions_Admitted().push_back(*item); - - item->ref_id().select_id_RICaction_Admitted_Item(); - item->ref_criticality().select_id_RICaction_Admitted_Item(); - item->ref_value().select_id_RICaction_Admitted_Item().ref_ricActionID().set(a.action_id); - } - else - { - RICaction_NotAdmitted_List::value_type* item = new RICaction_NotAdmitted_List::value_type(); - - ie_notAdmittedList->ref_value().select_id_RICactions_NotAdmitted().push_back(*item); - - item->ref_id().select_id_RICaction_NotAdmitted_Item(); - item->ref_criticality().select_id_RICaction_NotAdmitted_Item(); - item->ref_value().select_id_RICaction_NotAdmitted_Item().ref_ricActionID().set(a.action_id); - - // set cause and sub-cause - switch(a.notAdmitted_cause) - { - case RICcause_radioNetwork: - item->ref_value().select_id_RICaction_NotAdmitted_Item().ref_ricCause().select_radioNetwork().set(a.notAdmitted_subCause); - break; - - case RICcause_transport: - item->ref_value().select_id_RICaction_NotAdmitted_Item().ref_ricCause().select_transport().set(a.notAdmitted_subCause); - break; - - case RICcause_protocol: - item->ref_value().select_id_RICaction_NotAdmitted_Item().ref_ricCause().select_protocol().set(a.notAdmitted_subCause); - break; - - case RICcause_misc: - item->ref_value().select_id_RICaction_NotAdmitted_Item().ref_ricCause().select_misc().set(a.notAdmitted_subCause); - break; - - case RICcause_ric: - item->ref_value().select_id_RICaction_NotAdmitted_Item().ref_ricCause().select_ric().set(a.notAdmitted_subCause); - break; - - default: - printf("Unknown cause for action not admitted = %d", (int)a.notAdmitted_cause); - } - } - } - - return true; -} - -bool e2ap_create_RICsubscriptionFailure(e2ap_pdu_t* pdu, RICsubscription_params_t ¶ms) -{ - E2APpduWrapper* pduWrapper = reinterpret_cast(pdu); - - /* Initiaization */ - pduWrapper->ref_pdu().select_unsuccessfulOutcome().ref_procedureCode().select_id_ricSubscription(); - pduWrapper->ref_pdu().select_unsuccessfulOutcome().ref_criticality().select_id_ricSubscription(); - - RICsubscriptionFailure* container = &(pduWrapper->ref_pdu() - .select_unsuccessfulOutcome().ref_value().select_id_ricSubscription()); - - using IE_value_t = RICsubscriptionFailure::protocolIEs_t::value_type; - - /* RICsubscriptionFailure-IEs : RICrequestID */ - IE_value_t* ie_RICrequestID = new IE_value_t; - container->ref_protocolIEs().push_back(*ie_RICrequestID); - - ie_RICrequestID->ref_id().select_id_RICrequestID(); - ie_RICrequestID->ref_criticality().select_id_RICrequestID(); - ie_RICrequestID->ref_value().select_id_RICrequestID() - .ref_ricRequestorID().set(params.request_id); - ie_RICrequestID->ref_value().select_id_RICrequestID() - .ref_ricRequestSequenceNumber().set(params.seq_number); - - /* RICsubscriptionFailure-IEs : RANfunctionID */ - IE_value_t* ie_RANfunctionID = new IE_value_t; - container->ref_protocolIEs().push_back(*ie_RANfunctionID); - - ie_RANfunctionID->ref_id().select_id_RANfunctionID(); - ie_RANfunctionID->ref_criticality().select_id_RANfunctionID(); - ie_RANfunctionID->ref_value().select_id_RANfunctionID().set(params.ran_func_id); - - /* RICsubscriptionFailure-IEs : RICaction-NotAdmitted-List */ - IE_value_t* ie_notAdmittedList = new IE_value_t; - container->ref_protocolIEs().push_back(*ie_notAdmittedList); - - ie_notAdmittedList->ref_id().select_id_RICactions_NotAdmitted(); - ie_notAdmittedList->ref_criticality().select_id_RICactions_NotAdmitted(); - - for(auto const &a : params.actionList) - { - if(!a.isAdmitted) - { - RICaction_NotAdmitted_List::value_type* item = new RICaction_NotAdmitted_List::value_type(); - - ie_notAdmittedList->ref_value().select_id_RICactions_NotAdmitted().push_back(*item); - - item->ref_id().select_id_RICaction_NotAdmitted_Item(); - item->ref_criticality().select_id_RICaction_NotAdmitted_Item(); - item->ref_value().select_id_RICaction_NotAdmitted_Item().ref_ricActionID().set(a.action_id); - - // set cause and sub-cause - switch(a.notAdmitted_cause) - { - case RICcause_radioNetwork: - item->ref_value().select_id_RICaction_NotAdmitted_Item().ref_ricCause().select_radioNetwork().set(a.notAdmitted_subCause); - break; - - case RICcause_transport: - item->ref_value().select_id_RICaction_NotAdmitted_Item().ref_ricCause().select_transport().set(a.notAdmitted_subCause); - break; - - case RICcause_protocol: - item->ref_value().select_id_RICaction_NotAdmitted_Item().ref_ricCause().select_protocol().set(a.notAdmitted_subCause); - break; - - case RICcause_misc: - item->ref_value().select_id_RICaction_NotAdmitted_Item().ref_ricCause().select_misc().set(a.notAdmitted_subCause); - break; - - case RICcause_ric: - item->ref_value().select_id_RICaction_NotAdmitted_Item().ref_ricCause().select_ric().set(a.notAdmitted_subCause); - break; - - default: - printf("Unknown cause for action not admitted = %d", (int)a.notAdmitted_cause); - } - } - } - - return true; -} - - -/*----------------------------------------------------------------------- - TESTS -------------------------------------------------------------------------- -*/ -void test_E2AP_X2Setup_codec(void) -{ - e2ap_pdu_t* pdu = new_e2ap_pdu(); - - // e2ap_init_X2SetupRequest(pdu); - eNB_config cfg; - e2ap_create_X2SetupRequest(pdu, cfg); - - char pdu_str[1024]; - e2ap_asn_print(pdu, pdu_str, sizeof(pdu_str)); - printf("%s\n", pdu_str); - - //Test encode - unsigned char packed_buf[4096]; - char err_buf[1024]; - - int packed_len = e2ap_asn_per_encode(pdu, packed_buf, sizeof(packed_buf), - err_buf, sizeof(err_buf)); - if(packed_len != -1) { - printf("Encode successful, packed_len = %d\n", packed_len); - } else { - printf("Encode Error: %s\n", err_buf); - } - - //Test decode - e2ap_pdu_t* pdu2 = new_e2ap_pdu(); - int rc = e2ap_asn_per_decode(pdu2, packed_buf, packed_len, err_buf, sizeof(err_buf)); - if(rc == -1) { - printf("Decode error: %s\n", err_buf); - } else { - printf("Decode successful\n"); - } - - e2ap_asn_print(pdu2, pdu_str, sizeof(pdu_str)); - printf("%s\n", pdu_str); - - printf("index = %d\n", e2ap_get_index(pdu2)); - printf("procedureCode = %d\n", e2ap_get_procedureCode(pdu2)); - - //Test X2SetupResponse - e2ap_pdu_t* pdu_resp = new_e2ap_pdu(); - e2ap_create_X2SetupResponse(pdu_resp, cfg); - e2ap_asn_print(pdu_resp, pdu_str, sizeof(pdu_str)); - printf("%s\n", pdu_str); - - //Test X2SetupFailure - e2ap_pdu_t* pdu_failure = new_e2ap_pdu(); - e2ap_create_X2SetupFailure(pdu_failure); - e2ap_asn_print(pdu_failure, pdu_str, sizeof(pdu_str)); - printf("%s \n", pdu_str); -} diff --git a/e2sim/previous/src/ASN1/lib/asn_e2ap.hpp b/e2sim/previous/src/ASN1/lib/asn_e2ap.hpp deleted file mode 100644 index aa858b2..0000000 --- a/e2sim/previous/src/ASN1/lib/asn_e2ap.hpp +++ /dev/null @@ -1,85 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -#ifndef ASN_E2AP_HPP -#define ASN_E2AP_HPP - -#include -#include -#include - -#include "e2ap_config.hpp" - -typedef struct c__dummy01 e2ap_pdu_t; - -/*----------------------------------------------------------------------- - COMMON ROUTINES -------------------------------------------------------------------------- -*/ -e2ap_pdu_t* new_e2ap_pdu(void); - -void e2ap_asn_print(e2ap_pdu_t* pdu, char* buf, size_t buf_size); - -int e2ap_asn_per_encode(e2ap_pdu_t* pdu, unsigned char* buf, size_t buf_size, - char* err_buf, size_t err_buf_size); - -int e2ap_asn_per_decode(e2ap_pdu_t* pdu, unsigned char const* buf, size_t buf_size, - char* err_buf, size_t err_buf_size); - -int e2ap_get_index(e2ap_pdu_t* pdu); - -int e2ap_get_procedureCode(e2ap_pdu_t* pdu); - -/*----------------------------------------------------------------------- - MESSAGE GENERATORS -------------------------------------------------------------------------- -*/ - -//X2Setup -bool e2ap_init_X2SetupRequest(e2ap_pdu_t* pdu); - -bool e2ap_create_X2SetupRequest(e2ap_pdu_t* pdu, eNB_config &cfg); - -bool e2ap_create_X2SetupResponse(e2ap_pdu_t* pdu, eNB_config &cfg); - -bool e2ap_create_X2SetupFailure(e2ap_pdu_t* pdu); - -//ENDCX2Setup -bool e2ap_create_ENDCX2SetupRequest(e2ap_pdu_t* pdu, eNB_config &cfg); - -bool e2ap_create_ENDCX2SetupResponse(e2ap_pdu_t* pdu, gNB_config &cfg); - -bool e2ap_create_ENDCX2SetupFailure(e2ap_pdu_t* pdu); - -//RIC Subscription -bool e2ap_create_RICsubscriptionRequest(e2ap_pdu_t* pdu, RICsubscription_params_t ¶ms); - -bool e2ap_parse_RICsubscriptionRequest(e2ap_pdu_t* pdu, RICsubscription_params_t ¶ms); - -bool e2ap_create_RICsubscriptionResponse(e2ap_pdu_t* pdu, RICsubscription_params_t ¶ms); - -bool e2ap_create_RICsubscriptionFailure(e2ap_pdu_t* pdu, RICsubscription_params_t ¶ms); - -/*----------------------------------------------------------------------- - TESTS -------------------------------------------------------------------------- -*/ -void test_E2AP_X2Setup_codec(void); - -#endif diff --git a/e2sim/previous/src/ASN1/lib/asn_e2ap_wrapper.hpp b/e2sim/previous/src/ASN1/lib/asn_e2ap_wrapper.hpp deleted file mode 100644 index 38704e8..0000000 --- a/e2sim/previous/src/ASN1/lib/asn_e2ap_wrapper.hpp +++ /dev/null @@ -1,85 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ -#ifndef ASN_E2AP_PDU_WRAPPER_HPP -#define ASN_E2AP_PDU_WRAPPER_HPP - -#include -#include -#include - -// #include - -// #include -// #include -// #include -// #include -// #include - -#include -// #include -#include -#include -#include - -#define E2AP_PDU_DEFAULT_BUFFER_SIZE 4096 - -//Credit: copied from E2-Manager -struct E2APpduWrapper -{ - unsigned char* m_allocation_buffer; - size_t m_allocation_buffer_size; - - E2APpduWrapper(size_t allocation_buffer_size = E2AP_PDU_DEFAULT_BUFFER_SIZE) - { - m_allocation_buffer_size = allocation_buffer_size; - m_allocation_buffer = 0; - if (allocation_buffer_size) { - m_allocation_buffer = - new (std::nothrow) unsigned char[allocation_buffer_size]; - m_allocator.reset( - m_allocation_buffer, - m_allocation_buffer_size); // initialized correctly on - // allocation failure. - } - } - - ~E2APpduWrapper() - { - if (m_allocation_buffer) - delete[] m_allocation_buffer; - } - - asn::allocator& ref_allocator() { return m_allocator; } - - E2AP_PDU& ref_pdu() { return m_pdu; } - - // reset pdu and allocation buffer. Allows reusing. - void clear() - { - m_pdu.clear(); - m_allocator.reset(m_allocation_buffer, m_allocation_buffer_size); - } - - private: - E2AP_PDU m_pdu; - asn::allocator m_allocator; -}; - - -#endif diff --git a/e2sim/previous/src/ASN1/lib/asn_x2ap.cpp b/e2sim/previous/src/ASN1/lib/asn_x2ap.cpp deleted file mode 100644 index dae9ca8..0000000 --- a/e2sim/previous/src/ASN1/lib/asn_x2ap.cpp +++ /dev/null @@ -1,428 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -#include "asn_x2ap.hpp" -#include "asn_x2ap_wrapper.hpp" - -/*----------------------------------------------------------------------- - COMMON ROUTINES -------------------------------------------------------------------------- -*/ -x2ap_pdu_t* new_x2ap_pdu(void) -{ - X2APpduWrapper* pduWrapper = new X2APpduWrapper(); - return reinterpret_cast(pduWrapper); -} - -void x2ap_asn_print(x2ap_pdu_t* pdu, char* buf, size_t buf_size) -{ - X2APpduWrapper* pduWrapper = reinterpret_cast(pdu); - - buf[0] = 0; - - strncat(buf, asn::get_printed(pduWrapper->ref_pdu()).c_str(), buf_size - 1); -} - -int x2ap_asn_per_encode(x2ap_pdu_t* pdu, unsigned char* buf, size_t buf_size, - char* err_buf, size_t err_buf_size) -{ - X2APpduWrapper* pduWrapper = reinterpret_cast(pdu); - - asn::per::EncoderCtx ctx{ buf, buf_size }; - - if (!asn::per::pack(pduWrapper->ref_pdu(), ctx)) { - err_buf[0] = 0; - // strncat(err_buf, ctx.refErrorCtx().toString().c_str(), err_buf_size - 1); - return -1; - } else { - return static_cast(ctx.refBuffer().getBytesUsed()); - } - -} - -int x2ap_asn_per_decode(x2ap_pdu_t* pdu, unsigned char const* buf, size_t buf_size, - char* err_buf, size_t err_buf_size) -{ - X2APpduWrapper* pduWrapper = reinterpret_cast(pdu); - - asn::per::DecoderCtx ctx{ buf, - buf_size, - pduWrapper->m_allocation_buffer, - pduWrapper->m_allocation_buffer_size }; - - if (!asn::per::unpack(pduWrapper->ref_pdu(), ctx)) { - err_buf[0] = 0; - // strncat(err_buf, ctx.refErrorCtx().toString().c_str(), err_buf_size - 1); - return -1; - } - - return 0; - -} - -int x2ap_get_index(x2ap_pdu_t* pdu) -{ - X2APpduWrapper* pduWrapper = reinterpret_cast(pdu); - - return pduWrapper->ref_pdu().get_index(); -} - -int x2ap_get_procedureCode(x2ap_pdu_t* pdu) -{ - X2APpduWrapper* pduWrapper = reinterpret_cast(pdu); - - switch(pduWrapper->ref_pdu().get_index()) - { - case 1: - return pduWrapper->ref_pdu().get_initiatingMessage()->ref_procedureCode().get(); - break; - - case 2: - return pduWrapper->ref_pdu().get_successfulOutcome()->ref_procedureCode().get(); - break; - - case 3: - return pduWrapper->ref_pdu().get_unsuccessfulOutcome()->ref_procedureCode().get(); - break; - - default: - return -1; - } - -} - -/*----------------------------------------------------------------------- - MESSAGE GENERATORS -------------------------------------------------------------------------- -*/ -//X2Setup -bool x2ap_init_X2SetupRequest(x2ap_pdu_t* pdu) -{ - X2APpduWrapper* pduWrapper = reinterpret_cast(pdu); - - //Initialization - pduWrapper->ref_pdu().select_initiatingMessage(); - pduWrapper->ref_pdu().select_initiatingMessage().clear(); - pduWrapper->ref_pdu().select_initiatingMessage().ref_procedureCode().select_id_x2Setup(); - pduWrapper->ref_pdu().select_initiatingMessage().ref_criticality().select_id_x2Setup(); - pduWrapper->ref_pdu().select_initiatingMessage().ref_value().select_id_x2Setup(); - - return true; -} - -bool x2ap_create_X2SetupRequest(x2ap_pdu_t* pdu, eNB_config &cfg) -{ - X2APpduWrapper* pduWrapper = reinterpret_cast(pdu); - - /* Initiaization */ - pduWrapper->ref_pdu().select_initiatingMessage().ref_procedureCode().select_id_x2Setup(); - pduWrapper->ref_pdu().select_initiatingMessage().ref_criticality().select_id_x2Setup(); - - X2SetupRequest* container = - &(pduWrapper->ref_pdu().select_initiatingMessage().ref_value().select_id_x2Setup()); - - using IE_value_t = X2SetupRequest::protocolIEs_t::value_type; - - /* X2SetupRequest-IEs : GlobalENB-ID*/ - IE_value_t* val_GlobalENB_ID = new IE_value_t; - container->ref_protocolIEs().push_back(*val_GlobalENB_ID); - - val_GlobalENB_ID->ref_id().select_id_GlobalENB_ID(); - val_GlobalENB_ID->ref_criticality().select_id_GlobalENB_ID(); - val_GlobalENB_ID->ref_value().select_id_GlobalENB_ID().ref_pLMN_Identity() - .set(3, cfg.pLMN_Identity); - - val_GlobalENB_ID->ref_value().select_id_GlobalENB_ID().ref_eNB_ID() - .select_macro_eNB_ID().set_buffer(20, cfg.macro_eNB_ID); - - /* X2SetupRequest-IEs : ServedCells*/ - IE_value_t* val_ServedCells = new IE_value_t; - container->ref_protocolIEs().push_back(*val_ServedCells); - - val_ServedCells->ref_id().select_id_ServedCells(); - val_ServedCells->ref_criticality().select_id_ServedCells(); - val_ServedCells->ref_value().select_id_ServedCells(); - - //Add servedCellInfo - ServedCells::value_type* elm = new ServedCells::value_type(); - ServedCell_Information* info = &(elm->ref_servedCellInfo()); - { - //Set ServedCell-Information: pCI, cellId, tAC, broadcastPLMNs, eUTRA-Mode-Info - info->ref_pCI().set(cfg.pCI); - info->ref_cellId().ref_pLMN_Identity().set(3, cfg.pLMN_Identity); - info->ref_cellId().ref_eUTRANcellIdentifier().set_buffer(28, cfg.eUTRANcellIdentifier); - info->ref_tAC().set(2, cfg.tAC); - - BroadcastPLMNs_Item::value_type* item = new BroadcastPLMNs_Item::value_type(); - item->set(3, cfg.pLMN_Identity); - info->ref_broadcastPLMNs().push_back(*item); - - info->ref_eUTRA_Mode_Info().select_fDD().ref_uL_EARFCN().set(cfg.uL_EARFCN); - info->ref_eUTRA_Mode_Info().select_fDD().ref_dL_EARFCN().set(cfg.dL_EARFCN); - info->ref_eUTRA_Mode_Info().select_fDD().ref_uL_Transmission_Bandwidth() - .set(static_cast(cfg.uL_Bandwidth)); - info->ref_eUTRA_Mode_Info().select_fDD().ref_dL_Transmission_Bandwidth() - .set(static_cast(cfg.dL_Bandwidth)); - } - val_ServedCells->ref_value().select_id_ServedCells().push_back(*elm); - - return true; -} - -bool x2ap_create_X2SetupResponse(x2ap_pdu_t* pdu, eNB_config &cfg) -{ - X2APpduWrapper* pduWrapper = reinterpret_cast(pdu); - - /* Initiaization */ - pduWrapper->ref_pdu().select_successfulOutcome().ref_procedureCode().select_id_x2Setup(); - pduWrapper->ref_pdu().select_successfulOutcome().ref_criticality().select_id_x2Setup(); - - X2SetupResponse* container = - &(pduWrapper->ref_pdu().select_successfulOutcome().ref_value().select_id_x2Setup()); - - using IE_value_t = X2SetupResponse::protocolIEs_t::value_type; - - /* X2SetupResponse-IEs : GlobalENB-ID*/ - IE_value_t* val_GlobalENB_ID = new IE_value_t; - container->ref_protocolIEs().push_back(*val_GlobalENB_ID); - - val_GlobalENB_ID->ref_id().select_id_GlobalENB_ID(); - val_GlobalENB_ID->ref_criticality().select_id_GlobalENB_ID(); - val_GlobalENB_ID->ref_value().select_id_GlobalENB_ID().ref_pLMN_Identity() - .set(3, cfg.pLMN_Identity); - - val_GlobalENB_ID->ref_value().select_id_GlobalENB_ID().ref_eNB_ID() - .select_macro_eNB_ID().set_buffer(20, cfg.macro_eNB_ID); - - /* X2SetupResponse-IEs : ServedCells*/ - IE_value_t* val_ServedCells = new IE_value_t; - container->ref_protocolIEs().push_back(*val_ServedCells); - - val_ServedCells->ref_id().select_id_ServedCells(); - val_ServedCells->ref_criticality().select_id_ServedCells(); - val_ServedCells->ref_value().select_id_ServedCells(); - - //Add servedCellInfo - ServedCells::value_type* elm = new ServedCells::value_type(); - ServedCell_Information* info = &(elm->ref_servedCellInfo()); - { - //Set ServedCell-Information: pCI, cellId, tAC, broadcastPLMNs, eUTRA-Mode-Info - info->ref_pCI().set(cfg.pCI); - info->ref_cellId().ref_pLMN_Identity().set(3, cfg.pLMN_Identity); - info->ref_cellId().ref_eUTRANcellIdentifier().set_buffer(28, cfg.eUTRANcellIdentifier); - info->ref_tAC().set(2, cfg.tAC); - - BroadcastPLMNs_Item::value_type* item = new BroadcastPLMNs_Item::value_type(); - item->set(3, cfg.pLMN_Identity); - info->ref_broadcastPLMNs().push_back(*item); - - info->ref_eUTRA_Mode_Info().select_fDD().ref_uL_EARFCN().set(cfg.uL_EARFCN); - info->ref_eUTRA_Mode_Info().select_fDD().ref_dL_EARFCN().set(cfg.dL_EARFCN); - info->ref_eUTRA_Mode_Info().select_fDD().ref_uL_Transmission_Bandwidth() - .set(static_cast(cfg.uL_Bandwidth)); - info->ref_eUTRA_Mode_Info().select_fDD().ref_dL_Transmission_Bandwidth() - .set(static_cast(cfg.dL_Bandwidth)); - } - val_ServedCells->ref_value().select_id_ServedCells().push_back(*elm); - - return true; -} - -bool x2ap_create_X2SetupFailure(x2ap_pdu_t* pdu) -{ - X2APpduWrapper* pduWrapper = reinterpret_cast(pdu); - - /* Initiaization */ - pduWrapper->ref_pdu().select_unsuccessfulOutcome().ref_procedureCode().select_id_x2Setup(); - pduWrapper->ref_pdu().select_unsuccessfulOutcome().ref_criticality().select_id_x2Setup(); - - X2SetupFailure* container = - &(pduWrapper->ref_pdu().select_unsuccessfulOutcome().ref_value().select_id_x2Setup()); - - using IE_value_t = X2SetupFailure::protocolIEs_t::value_type; - - /* X2SetupFailure-IEs << id-Cause */ - IE_value_t* val_cause = new IE_value_t; - container->ref_protocolIEs().push_back(*val_cause); - - val_cause->ref_id().select_id_Cause(); - val_cause->ref_criticality().select_id_Cause(); - - /* Cause << radioNetwork */ - val_cause->ref_value().select_id_Cause().select_radioNetwork(); - - /* CauseRadioNetwork = ho-target-not-allowed (enum = 8)*/ - val_cause->ref_value().select_id_Cause().select_radioNetwork() - .set(static_cast(8)); - - return true; -} - -//ENDCX2Setup -bool x2ap_create_ENDCX2SetupRequest(x2ap_pdu_t* pdu, eNB_config &cfg) -{ - X2APpduWrapper* pduWrapper = reinterpret_cast(pdu); - - /* Initiaization */ - pduWrapper->ref_pdu().select_initiatingMessage().ref_procedureCode().select_id_endcX2Setup(); - pduWrapper->ref_pdu().select_initiatingMessage().ref_criticality().select_id_endcX2Setup(); - - ENDCX2SetupRequest* container = - &(pduWrapper->ref_pdu().select_initiatingMessage().ref_value().select_id_endcX2Setup()); - - using IE_value_t = ENDCX2SetupRequest::protocolIEs_t::value_type; - - /* ENDCX2SetupRequest-IEs = id-InitiatingNodeType-EndcX2Setup */ - IE_value_t* ie = new IE_value_t; - container->ref_protocolIEs().push_back(*ie); - ie->ref_id().select_id_InitiatingNodeType_EndcX2Setup(); - ie->ref_criticality().select_id_InitiatingNodeType_EndcX2Setup(); - ie->ref_value().select_id_InitiatingNodeType_EndcX2Setup(); - - /* InitiatingNodeType-EndcX2Setup = init-eNB {ENB-ENDCX2SetupReqIEs} */ - ie->ref_value().select_id_InitiatingNodeType_EndcX2Setup().select_init_eNB(); - - using eNB_val_t = InitiatingNodeType_EndcX2Setup::init_eNB_t::value_type; - - ProtocolIE_Container* eNB_node = - &(ie->ref_value().select_id_InitiatingNodeType_EndcX2Setup().select_init_eNB()); - - /* ENB-ENDCX2SetupReqIEs <-- id-GlobalENB-ID */ - eNB_val_t* val_GlobalENB_ID = new eNB_val_t; - eNB_node->push_back(*val_GlobalENB_ID); - - val_GlobalENB_ID->ref_id().select_id_GlobalENB_ID(); - val_GlobalENB_ID->ref_criticality().select_id_GlobalENB_ID(); - val_GlobalENB_ID->ref_value().select_id_GlobalENB_ID() - .ref_pLMN_Identity().set(3, cfg.pLMN_Identity); - val_GlobalENB_ID->ref_value().select_id_GlobalENB_ID().ref_eNB_ID() - .select_macro_eNB_ID().set_buffer(20, cfg.macro_eNB_ID); - - /* ENB-ENDCX2SetupReqIEs <-- id-ServedEUTRAcellsENDCX2ManagementList */ - eNB_val_t* val_EUTRAlist = new eNB_val_t; - eNB_node->push_back(*val_EUTRAlist); - - val_EUTRAlist->ref_id().select_id_ServedEUTRAcellsENDCX2ManagementList(); - val_EUTRAlist->ref_criticality().select_id_ServedEUTRAcellsENDCX2ManagementList(); - val_EUTRAlist->ref_value().select_id_ServedEUTRAcellsENDCX2ManagementList(); - - /* ServedEUTRAcellsENDCX2ManagementList <-- servedEUTRACellInfo */ - ServedEUTRAcellsENDCX2ManagementList::value_type* elm = - new ServedEUTRAcellsENDCX2ManagementList::value_type(); - ServedCell_Information* info = &(elm->ref_servedEUTRACellInfo()); - { - //Set ServedCell-Information: pCI, cellId, tAC, broadcastPLMNs, eUTRA-Mode-Info - info->ref_pCI().set(cfg.pCI); - info->ref_cellId().ref_pLMN_Identity().set(3, cfg.pLMN_Identity); - info->ref_cellId().ref_eUTRANcellIdentifier().set_buffer(28, cfg.eUTRANcellIdentifier); - info->ref_tAC().set(2, cfg.tAC); - - BroadcastPLMNs_Item::value_type* item = new BroadcastPLMNs_Item::value_type(); - item->set(3, cfg.pLMN_Identity); - info->ref_broadcastPLMNs().push_back(*item); - - info->ref_eUTRA_Mode_Info().select_fDD().ref_uL_EARFCN().set(cfg.uL_EARFCN); - info->ref_eUTRA_Mode_Info().select_fDD().ref_dL_EARFCN().set(cfg.dL_EARFCN); - info->ref_eUTRA_Mode_Info().select_fDD().ref_uL_Transmission_Bandwidth() - .set(static_cast(cfg.uL_Bandwidth)); - info->ref_eUTRA_Mode_Info().select_fDD().ref_dL_Transmission_Bandwidth() - .set(static_cast(cfg.dL_Bandwidth)); - } - val_EUTRAlist->ref_value().select_id_ServedEUTRAcellsENDCX2ManagementList() - .push_back(*elm); - - return true; -} - -/*----------------------------------------------------------------------- - TESTS -------------------------------------------------------------------------- -*/ -void test_X2Setup_codec(void) -{ - x2ap_pdu_t* pdu = new_x2ap_pdu(); - - eNB_config cfg; - x2ap_create_X2SetupRequest(pdu, cfg); - - char pdu_str[1024]; - x2ap_asn_print(pdu, pdu_str, sizeof(pdu_str)); - printf("%s\n", pdu_str); - - //Test encode - unsigned char packed_buf[4096]; - char err_buf[1024]; - - int packed_len = x2ap_asn_per_encode(pdu, packed_buf, sizeof(packed_buf), - err_buf, sizeof(err_buf)); - if(packed_len != -1) { - printf("Encode successful, packed_len = %d\n", packed_len); - } else { - printf("Encode Error: %s\n", err_buf); - } - - //Test encode error - x2ap_pdu_t* pdu1 = new_x2ap_pdu(); - x2ap_init_X2SetupRequest(pdu1); - - int packed_len1 = x2ap_asn_per_encode(pdu1, packed_buf, sizeof(packed_buf), - err_buf, sizeof(err_buf)); - if(packed_len1 != -1) { - printf("Encode successful, packed_len = %d\n", packed_len1); - } else { - printf("Encode Error: %s\n", err_buf); - } - - //Test decode - x2ap_pdu_t* pdu2 = new_x2ap_pdu(); - int rc = x2ap_asn_per_decode(pdu2, packed_buf, packed_len, err_buf, sizeof(err_buf)); - if(rc == -1) { - printf("Decode error: %s\n", err_buf); - } else { - printf("Decode successful\n"); - } - - x2ap_asn_print(pdu2, pdu_str, sizeof(pdu_str)); - printf("%s\n", pdu_str); - - printf("index = %d\n", x2ap_get_index(pdu2)); - printf("procedureCode = %d\n", x2ap_get_procedureCode(pdu2)); - - - //Test decode error - x2ap_pdu_t* pdu3 = new_x2ap_pdu(); - int rc2 = x2ap_asn_per_decode(pdu3, packed_buf, 1, err_buf, sizeof(err_buf)); - if(rc2 == -1) { - printf("Decode error: %s\n", err_buf); - } else { - printf("Decode successful\n"); - } - - //Test X2SetupResponse - x2ap_pdu_t* pdu_resp = new_x2ap_pdu(); - x2ap_create_X2SetupResponse(pdu_resp, cfg); - x2ap_asn_print(pdu_resp, pdu_str, sizeof(pdu_str)); - printf("%s\n", pdu_str); - - //Test X2SetupFailure - x2ap_pdu_t* pdu_failure = new_x2ap_pdu(); - x2ap_create_X2SetupFailure(pdu_failure); - x2ap_asn_print(pdu_failure, pdu_str, sizeof(pdu_str)); - printf("%s \n", pdu_str); -} diff --git a/e2sim/previous/src/ASN1/lib/asn_x2ap.hpp b/e2sim/previous/src/ASN1/lib/asn_x2ap.hpp deleted file mode 100644 index d0c02d2..0000000 --- a/e2sim/previous/src/ASN1/lib/asn_x2ap.hpp +++ /dev/null @@ -1,72 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -#ifndef ASN_X2AP_HPP -#define ASN_X2AP_HPP - -#include -#include -#include - -#include "e2ap_config.hpp" - -typedef struct c__dummy00 x2ap_pdu_t; - -/*----------------------------------------------------------------------- - COMMON ROUTINES -------------------------------------------------------------------------- -*/ - -x2ap_pdu_t* new_x2ap_pdu(void); - -void x2ap_asn_print(x2ap_pdu_t* pdu, char* buf, size_t buf_size); - -int x2ap_asn_per_encode(x2ap_pdu_t* pdu, unsigned char* buf, size_t buf_size, - char* err_buf, size_t err_buf_size); - -int x2ap_asn_per_decode(x2ap_pdu_t* pdu, unsigned char const* buf, size_t buf_size, - char* err_buf, size_t err_buf_size); - -int x2ap_get_index(x2ap_pdu_t* pdu); - -int x2ap_get_procedureCode(x2ap_pdu_t* pdu); - -/*----------------------------------------------------------------------- - MESSAGE GENERATORS -------------------------------------------------------------------------- -*/ -//X2Setup -bool x2ap_init_X2SetupRequest(x2ap_pdu_t* pdu); - -bool x2ap_create_X2SetupRequest(x2ap_pdu_t* pdu, eNB_config &cfg); - -bool x2ap_create_X2SetupResponse(x2ap_pdu_t* pdu, eNB_config &cfg); - -bool x2ap_create_X2SetupFailure(x2ap_pdu_t* pdu); - -//ENDCX2Setup -bool x2ap_create_ENDCX2SetupRequest(x2ap_pdu_t* pdu, eNB_config &cfg); - -/*----------------------------------------------------------------------- - TESTS -------------------------------------------------------------------------- -*/ -void test_X2Setup_codec(void); - -#endif diff --git a/e2sim/previous/src/ASN1/lib/asn_x2ap_wrapper.hpp b/e2sim/previous/src/ASN1/lib/asn_x2ap_wrapper.hpp deleted file mode 100644 index 96ea81c..0000000 --- a/e2sim/previous/src/ASN1/lib/asn_x2ap_wrapper.hpp +++ /dev/null @@ -1,78 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ -#ifndef ASN_X2AP_PDU_WRAPPER_HPP -#define ASN_X2AP_PDU_WRAPPER_HPP - -#include -#include -#include - -#include -#include -#include -#include -#include -#include - -#define X2AP_PDU_DEFAULT_BUFFER_SIZE 4096 - -//Credit: copied from E2-Manager -struct X2APpduWrapper -{ - unsigned char* m_allocation_buffer; - size_t m_allocation_buffer_size; - - X2APpduWrapper(size_t allocation_buffer_size = X2AP_PDU_DEFAULT_BUFFER_SIZE) - { - m_allocation_buffer_size = allocation_buffer_size; - m_allocation_buffer = 0; - if (allocation_buffer_size) { - m_allocation_buffer = - new (std::nothrow) unsigned char[allocation_buffer_size]; - m_allocator.reset( - m_allocation_buffer, - m_allocation_buffer_size); // initialized correctly on - // allocation failure. - } - } - - ~X2APpduWrapper() - { - if (m_allocation_buffer) - delete[] m_allocation_buffer; - } - - asn::allocator& ref_allocator() { return m_allocator; } - - X2AP_PDU& ref_pdu() { return m_pdu; } - - // reset pdu and allocation buffer. Allows reusing. - void clear() - { - m_pdu.clear(); - m_allocator.reset(m_allocation_buffer, m_allocation_buffer_size); - } - - private: - X2AP_PDU m_pdu; - asn::allocator m_allocator; -}; - - -#endif diff --git a/e2sim/previous/src/ASN1/lib/e2ap_config.hpp b/e2sim/previous/src/ASN1/lib/e2ap_config.hpp deleted file mode 100644 index 9182ed1..0000000 --- a/e2sim/previous/src/ASN1/lib/e2ap_config.hpp +++ /dev/null @@ -1,160 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ -#ifndef E2AP_CONFIG_HPP -#define E2AP_CONFIG_HPP - -#include -#include - -enum enum_Transmission_Bandwidth { - enum_bw6, - enum_bw15, - enum_bw25, - enum_bw50, - enum_bw75, - enum_bw100, - enum_bw1 -}; - -enum enum_NRNRB{ - enum_nrb11, enum_nrb18, enum_nrb24, enum_nrb25, enum_nrb31, enum_nrb32, - enum_nrb38, enum_nrb51, enum_nrb52, enum_nrb65, enum_nrb66, enum_nrb78, - enum_nrb79, enum_nrb93, enum_nrb106, enum_nrb107, enum_nrb121, - enum_nrb132, enum_nrb133, enum_nrb135, enum_nrb160, enum_nrb162, - enum_nrb189, enum_nrb216, enum_nrb217, enum_nrb245, enum_nrb264, - enum_nrb270, enum_nrb273 -}; - -enum enum_NRSCS { - enum_scs15, enum_scs30, enum_scs60, enum_scs120 -}; - -class eNB_config { - public: - uint8_t* pLMN_Identity; - uint8_t* macro_eNB_ID; - int64_t pCI; - uint8_t* tAC; - uint8_t* eUTRANcellIdentifier; - - int64_t uL_EARFCN; - int64_t dL_EARFCN; - - enum_Transmission_Bandwidth uL_Bandwidth; - enum_Transmission_Bandwidth dL_Bandwidth; - - /*Default Constructor*/ - eNB_config() { - pLMN_Identity = (uint8_t*)"abc"; - macro_eNB_ID = (uint8_t*)"5"; - pCI = 0; - tAC = (uint8_t*)"ab"; - eUTRANcellIdentifier = (uint8_t*)"def"; - uL_EARFCN = 21400; - dL_EARFCN = 3400; - uL_Bandwidth = enum_bw25; - dL_Bandwidth = enum_bw50; - } -}; - -class gNB_config { - public: - uint8_t* pLMN_Identity; - uint8_t* gNB_ID; - int64_t nrpCI; - uint8_t* tAC; - uint8_t* nRcellIdentifier; - - int64_t uL_nRARFCN; - int64_t dL_nRARFCN; - - enum enum_NRNRB uL_NRNRB; - enum enum_NRNRB dL_NRNRB; - - enum enum_NRSCS uL_NRSCS; - enum enum_NRSCS dL_NRSCS; - - uint8_t ul_freqBandIndicatorNr; - uint8_t dl_freqBandIndicatorNr; - - std::string measurementTimingConfiguration; - - /*Default Constructor*/ - gNB_config() { - pLMN_Identity = (uint8_t*)"xyz"; - gNB_ID = (uint8_t*)"3"; - nrpCI = 1; - tAC = (uint8_t*)"ab"; - nRcellIdentifier = (uint8_t*)"gnb_id_123"; - uL_nRARFCN = 21400; - dL_nRARFCN = 21500; - - uL_NRNRB = enum_nrb11; - dL_NRNRB = enum_nrb121; - - uL_NRSCS = enum_scs15; - dL_NRSCS = enum_scs120; - - ul_freqBandIndicatorNr = 11; - dl_freqBandIndicatorNr = 12; - - measurementTimingConfiguration = "dummy timing"; - } -}; - -enum enum_RICactionType { - RICactionType_report, - RICactionType_insert, - RICactionType_policy -}; - -enum enum_RICcause { - RICcause_radioNetwork = 1, - RICcause_transport, - RICcause_protocol, - RICcause_misc, - RICcause_ric -}; - -struct RIC_action_t { - unsigned char action_id; - enum_RICactionType action_type; - bool isAdmitted = false; //for response/failure only - enum_RICcause notAdmitted_cause; //for response/failure only - unsigned int notAdmitted_subCause; //for response/failure only - - RIC_action_t() {;} - - RIC_action_t(unsigned char id, enum_RICactionType type) - { - action_id = id; - action_type = type; - } -}; - -struct RICsubscription_params_t { - uint16_t request_id = 0; - uint16_t seq_number = 0; - uint16_t ran_func_id = 0; - std::string event_trigger_def = ""; - - std::vector actionList; -} ; - -#endif diff --git a/e2sim/previous/src/DEF/e2sim_defs.cpp b/e2sim/previous/src/DEF/e2sim_defs.cpp deleted file mode 100644 index f1730d3..0000000 --- a/e2sim/previous/src/DEF/e2sim_defs.cpp +++ /dev/null @@ -1,125 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -#include "e2sim_defs.h" -#include -#include -#include - -char* time_stamp(void) -{ - timeval curTime; - gettimeofday(&curTime, NULL); - int milli = curTime.tv_usec / 1000; - - char buffer [80]; - strftime(buffer, 80, "%Y-%m-%d %H:%M:%S", localtime(&curTime.tv_sec)); - - const int time_buffer_len = 84; - static char currentTime[time_buffer_len] = ""; - snprintf(currentTime, time_buffer_len, "%s:%03d", buffer, milli); - - return currentTime; -} - -options_t read_input_options_old(int argc, char* argv[]) -{ - options_t options; - - options.server_ip = (char*)DEFAULT_SCTP_IP; - options.server_port = X2AP_SCTP_PORT; - - // Parse command line options - static struct option long_options[] = - { - {"ipv4", required_argument, 0, 'i'}, - {"ipv6", required_argument, 0, 'I'}, - {"port", required_argument, 0, 'p'}, - {"verbose", no_argument, 0, 'v'}, - }; - - while(1) - { - int option_index = 0; - - char c = getopt_long(argc, argv, "i:I:p:", long_options, &option_index); - - if(c == -1) - break; - - switch(c) - { - case 'i': - options.server_ip = optarg; - break; - case 'I': - break; - case 'p': - options.server_port = atoi(optarg); - if(options.server_port < 1 || options.server_port > 65535) - { - LOG_E("Invalid port number (%d). Valid values are between 1 and 65535.\n", - options.server_port); - exit(1); - } - break; - - default: - LOG_E("Error: unknown input option: %c\n", optopt); - exit(1); - } - } - - return options; -} - -options_t read_input_options(int argc, char *argv[]) -{ - options_t options; - - options.server_ip = (char*)DEFAULT_SCTP_IP; - options.server_port = X2AP_SCTP_PORT; - - if(argc == 3) //user provided IP and PORT - { - options.server_ip = argv[1]; - options.server_port = atoi(argv[2]); - if(options.server_port < 1 || options.server_port > 65535) { - LOG_E("Invalid port number (%d). Valid values are between 1 and 65535.\n", - options.server_port); - exit(1); - } - } - else if(argc == 2) //user provided only IP - { - options.server_ip = argv[1]; - } - else if(argc == 1) - { - options.server_ip = (char*)DEFAULT_SCTP_IP; - } - else - { - LOG_I("Unrecognized option.\n"); - LOG_I("Usage: %s [SERVER IP ADDRESS] [SERVER PORT]\n", argv[0]); - exit(1); - } - - return options; -} diff --git a/e2sim/previous/src/DEF/e2sim_defs.h b/e2sim/previous/src/DEF/e2sim_defs.h deleted file mode 100644 index cf4a0d6..0000000 --- a/e2sim/previous/src/DEF/e2sim_defs.h +++ /dev/null @@ -1,65 +0,0 @@ -/* - * - * Copyright 2019 AT&T Intellectual Property - * Copyright 2019 Nokia - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -#ifndef E2SIM_DEFS_H -#define E2SIM_DEFS_H - -// #include -#include -#include - -#define VERSION "1.2.0" //May 2019 -#define DEFAULT_SCTP_IP "127.0.0.1" -#define X2AP_PPID (452984832) //27 = 1b, PPID = 1b000000(hex) -> 452984832(dec) -#define X2AP_SCTP_PORT 36421 -#define RIC_SCTP_SRC_PORT 36422 -#define MAX_SCTP_BUFFER 10000 -#define WORKDIR_ENV "E2SIM_DIR" //environment variable - -char* time_stamp(void); - -// #define LOG_I(...) {printf("[%s]", time_stamp()); printf(__VA_ARGS__); printf("\n");} -// #define LOG_E(...) {printf("[%s]", time_stamp()); printf(__VA_ARGS__); printf("\n");} -// #define LOG_D(...) {printf("[%s]", time_stamp()); printf(__VA_ARGS__); printf("\n");} - -#define LOG_I(...) {printf(__VA_ARGS__); printf("\n");} -#define LOG_E(...) {printf(__VA_ARGS__); printf("\n");} -#define LOG_D(...) {printf(__VA_ARGS__); printf("\n");} - -typedef struct SCTP_DATA { - unsigned char *data; - int len; -} sctp_data_t; - -typedef struct { - unsigned char buffer[MAX_SCTP_BUFFER]; - int len; -} sctp_buffer_t; - -typedef struct { - char* server_ip; - int server_port; - //... extend as needed -} options_t; - -options_t read_input_options(int argc, char *argv[]); - -#define min(a, b) ((a) < (b)) ? (a) : (b) - -#endif diff --git a/e2sim/previous/src/E2AP/E2SM/e2sm.c b/e2sim/previous/src/E2AP/E2SM/e2sm.c deleted file mode 100644 index 6cad6cd..0000000 --- a/e2sim/previous/src/E2AP/E2SM/e2sm.c +++ /dev/null @@ -1,196 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ -#include "e2sm.h" - -#include "ActionParameter-Item.h" -#include "ActionParameter-Value.h" -#include "PLMN-Identity.h" -#include "GlobalENB-ID.h" -#include "GlobalGNB-ID.h" -#include "Interface-ID.h" -#include "ProtocolIE-Field.h" -#include "InterfaceMessageType.h" -#include "InterfaceProtocolIE-Item.h" - -static PLMN_Identity_t *createPLMN_ID(const unsigned char *data) { - - PLMN_Identity_t *plmnId = calloc(1, sizeof(PLMN_Identity_t)); - ASN_STRUCT_RESET(asn_DEF_PLMN_Identity, plmnId); - plmnId->size = 3; - plmnId->buf = calloc(1, 3); - memcpy(plmnId->buf, data, 3); - - return plmnId; -} - -static GNB_ID_t *createGnb_id(const unsigned char *data, int numOfBits) { - - if (numOfBits < 22 || numOfBits > 32) { - printf("[Error] GNB_ID_t number of bits = %d, needs to be 22 .. 32", numOfBits); - return NULL; - } - - GNB_ID_t *gnb = calloc(1, sizeof(GNB_ID_t)); - ASN_STRUCT_RESET(asn_DEF_GNB_ID, gnb); - - gnb->present = GNB_ID_PR_gNB_ID; - gnb->choice.gNB_ID.size = numOfBits % 8 == 0 ? (unsigned int)(numOfBits / 8) : (unsigned int)(numOfBits / 8 + 1); - gnb->choice.gNB_ID.bits_unused = gnb->choice.gNB_ID.size * 8 - numOfBits; - gnb->choice.gNB_ID.buf = calloc(1, gnb->choice.gNB_ID.size); - memcpy(gnb->choice.gNB_ID.buf, data, gnb->choice.gNB_ID.size); - gnb->choice.gNB_ID.buf[gnb->choice.gNB_ID.size - 1] = - ((unsigned)(gnb->choice.gNB_ID.buf[gnb->choice.gNB_ID.size - 1] >> (unsigned)gnb->choice.gNB_ID.bits_unused) - << (unsigned)gnb->choice.gNB_ID.bits_unused); - - return gnb; -} - -static GlobalGNB_ID_t *createGlobalGNB_ID(PLMN_Identity_t *plmnIdentity, GNB_ID_t *gnb) { - - GlobalGNB_ID_t *ggnbId = calloc(1, sizeof(GlobalGNB_ID_t)); - ASN_STRUCT_RESET(asn_DEF_GlobalGNB_ID, ggnbId); - - memcpy(&ggnbId->pLMN_Identity, plmnIdentity, sizeof(PLMN_Identity_t)); - memcpy(&ggnbId->gNB_ID, gnb, sizeof(GNB_ID_t)); - - return ggnbId; -} - -static Interface_ID_t *createInterfaceIDForGnb(GlobalGNB_ID_t *gnb) { - - Interface_ID_t *interfaceId = calloc(1, sizeof(Interface_ID_t)); - ASN_STRUCT_RESET(asn_DEF_Interface_ID, interfaceId); - - interfaceId->present = Interface_ID_PR_global_gNB_ID; - interfaceId->choice.global_gNB_ID = gnb; - - return interfaceId; -} - -static InterfaceMessageType_t *createInterfaceMessageInitiating(long procedureCode) { - - InterfaceMessageType_t *intMsgT = calloc(1, sizeof(InterfaceMessageType_t)); - ASN_STRUCT_RESET(asn_DEF_InterfaceMessageType, intMsgT); - - intMsgT->procedureCode = procedureCode; - intMsgT->typeOfMessage = TypeOfMessage_initiating_message; - - return intMsgT; -} - -E2SM_gNB_X2_eventTriggerDefinition_t* create_eventTriggerDefinition(void) -{ - //PLMN_Identity - unsigned char plmnidData[3] = {0x33, 0xF4, 0x55}; - PLMN_Identity_t *plmnid = createPLMN_ID(plmnidData); - // xer_fprint(stdout, &asn_DEF_PLMN_Identity, (void *)plmnid); - - //GNB_ID - unsigned char gnbData[3] = {0x99, 0xaa, 0xbb}; - GNB_ID_t *gnb = createGnb_id(gnbData, 26); - // xer_fprint(stdout, &asn_DEF_GNB_ID, (void *)gnb); - - //GlobalGNB_ID - GlobalGNB_ID_t *globaGnb = createGlobalGNB_ID(plmnid, gnb); - // xer_fprint(stdout, &asn_DEF_GlobalGNB_ID, (void *)globaGnb); - - //Interface_ID - Interface_ID_t *gnbInterfaceId = createInterfaceIDForGnb(globaGnb); - // xer_fprint(stdout, &asn_DEF_Interface_ID, (void *)gnbInterfaceId); - - //InterfaceMessageType - InterfaceMessageType_t *initiatingInterface = createInterfaceMessageInitiating(35); - - //EventTriggerDefinition - E2SM_gNB_X2_eventTriggerDefinition_t *eventTrigger = calloc(1, sizeof(E2SM_gNB_X2_eventTriggerDefinition_t)); - ASN_STRUCT_RESET(asn_DEF_E2SM_gNB_X2_eventTriggerDefinition, eventTrigger); - - memcpy(&eventTrigger->interface_ID , gnbInterfaceId, sizeof(Interface_ID_t)); - - eventTrigger->interfaceDirection = 0; - memcpy(&eventTrigger->interfaceMessageType, initiatingInterface, sizeof(InterfaceMessageType_t)); - - return eventTrigger; -} - -#define E2AP_ASN1C_FIND_PROTOCOLIE_BY_ID(IE_TYPE, ie, container, IE_ID) \ - do {\ - IE_TYPE **ptr; \ - ie = NULL; \ - for (ptr = container->protocolIEs.list.array; \ - ptr < &container->protocolIEs.list.array[container->protocolIEs.list.count]; \ - ptr++) { \ - if((*ptr)->id == IE_ID) { \ - ie = *ptr; \ - break; \ - } \ - } \ - } while(0) - - -void test_eventTriggerDefinition(void) -{ - E2SM_gNB_X2_eventTriggerDefinition_t *eventTrigger = create_eventTriggerDefinition(); - - xer_fprint(stdout, &asn_DEF_E2SM_gNB_X2_eventTriggerDefinition, (void *)eventTrigger); - printf("\n"); - - uint8_t *eventBuff; - int eventBuff_len; - - eventBuff_len = aper_encode_to_new_buffer(&asn_DEF_E2SM_gNB_X2_eventTriggerDefinition, - 0, eventTrigger, (void **)&eventBuff); - - LOG_I("Encoded eventBuff_len = %d", eventBuff_len); - - //----------------------------------------------------------------------- - E2AP_PDU_t* pdu = e2ap_xml_to_pdu("E2AP_RICsubscriptionRequest.xml"); - e2ap_asn1c_print_pdu(pdu); - - InitiatingMessage_t *initiatingMessage = pdu->choice.initiatingMessage; - xer_fprint(stdout, &asn_DEF_InitiatingMessage, (void *)initiatingMessage); - - RICsubscriptionRequest_t *request = &initiatingMessage->value.choice.RICsubscriptionRequest; - xer_fprint(stdout, &asn_DEF_RICsubscriptionRequest, (void *)request); - - LOG_I("num of IEs = %d", request->protocolIEs.list.count); - - - RICsubscriptionRequest_IEs_t *ie; - - ie = request->protocolIEs.list.array[2]; - - // E2AP_ASN1C_FIND_PROTOCOLIE_BY_ID(RICsubscriptionRequest_IEs_t, ie, request, ProtocolIE_ID_id_RICsubscription); - // E2AP_ASN1C_FIND_PROTOCOLIE_BY_ID(RICsubscriptionRequest_IEs_t, ie, request, ProtocolIE_ID_id_RICrequestID); - - assert( ie != NULL); - - xer_fprint(stdout, &asn_DEF_RICsubscription, (void *)ie); - // xer_fprint(stdout, &asn_DEF_RICrequestID, (void *)ie); - - -} - -// -// typedef struct ProtocolIE_Container_119P0 { -// A_SEQUENCE_OF(struct RICsubscriptionRequest_IEs) list; -// -// /* Context for parsing across buffer boundaries */ -// asn_struct_ctx_t _asn_ctx; -// } ProtocolIE_Container_119P0_t; diff --git a/e2sim/previous/src/E2AP/E2SM/e2sm.h b/e2sim/previous/src/E2AP/E2SM/e2sm.h deleted file mode 100644 index 19f30a2..0000000 --- a/e2sim/previous/src/E2AP/E2SM/e2sm.h +++ /dev/null @@ -1,30 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ -#ifndef E2SM_H -#define E2SM_H - -#include "E2SM-gNB-X2-eventTriggerDefinition.h" -#include "E2AP-PDU.h" -#include "e2ap_asn1c_codec.h" - -E2SM_gNB_X2_eventTriggerDefinition_t* create_eventTriggerDefinition(void); - -void test_eventTriggerDefinition(void); - -#endif diff --git a/e2sim/previous/src/E2AP/XML/E2AP_ENDCX2SetupFailure.xml b/e2sim/previous/src/E2AP/XML/E2AP_ENDCX2SetupFailure.xml deleted file mode 100644 index 633baee..0000000 --- a/e2sim/previous/src/E2AP/XML/E2AP_ENDCX2SetupFailure.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - 36 - - - - - - 5 - - - - - - - - - - - - diff --git a/e2sim/previous/src/E2AP/XML/E2AP_ENDCX2SetupRequest.xml b/e2sim/previous/src/E2AP/XML/E2AP_ENDCX2SetupRequest.xml deleted file mode 100644 index ddb071a..0000000 --- a/e2sim/previous/src/E2AP/XML/E2AP_ENDCX2SetupRequest.xml +++ /dev/null @@ -1,67 +0,0 @@ - - - 36 - - - - - - 244 - - - - - - 21 - - - - 61 62 63 - - - 00110101000000000001 - - - - - - - 250 - - - - - - 0 - - 61 62 63 - - 0110010001100101011001100000 - - - 61 62 - - 61 62 63 - - - - 21400 - 3400 - - - - - - - - - - - - - - - - - - diff --git a/e2sim/previous/src/E2AP/XML/E2AP_ENDCX2SetupResponse.xml b/e2sim/previous/src/E2AP/XML/E2AP_ENDCX2SetupResponse.xml deleted file mode 100644 index 896eed6..0000000 --- a/e2sim/previous/src/E2AP/XML/E2AP_ENDCX2SetupResponse.xml +++ /dev/null @@ -1,97 +0,0 @@ - - - 36 - - - - - - 246 - - - - - - 252 - - - - 02 F8 29 - - - 000000000001001000110100 - - - - - - - 253 - - - - - - 99 - - 02 F8 29 - - 000000000000011110101011000000010010 - - - - 02 F8 29 - - - - - 100 - - - 9 - - - 9 - - - - - - - 100 - - - 9 - - - 9 - - - - - - - - - - - - - - - - 04 05 - - - - - - - - - - - - - - diff --git a/e2sim/previous/src/E2AP/XML/E2AP_ErrorIndication.xml b/e2sim/previous/src/E2AP/XML/E2AP_ErrorIndication.xml deleted file mode 100644 index 8974693..0000000 --- a/e2sim/previous/src/E2AP/XML/E2AP_ErrorIndication.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - 3 - - - - - - 5 - - - - - - - - - - - - diff --git a/e2sim/previous/src/E2AP/XML/E2AP_RICindication_type1.xml b/e2sim/previous/src/E2AP/XML/E2AP_RICindication_type1.xml deleted file mode 100644 index e4e3f38..0000000 --- a/e2sim/previous/src/E2AP/XML/E2AP_RICindication_type1.xml +++ /dev/null @@ -1,74 +0,0 @@ - - - 205 - - - - - - 60030 - - - - 6 - 12 - - - - - 60003 - - - 10 - - - - 60017 - - - 100 - - - - 60028 - - - 100 - - - - 60029 - - - - - - - 60026 - - - 10 74 68 65 10 68 65 6C 40 - - - - 60027 - - - - 00 1B 40 80 80 00 00 08 00 6F 00 02 00 0C 00 F8 - 00 05 08 4D 86 D6 40 00 CB 00 20 31 32 33 34 35 - 36 37 38 39 31 32 33 34 35 36 37 38 39 31 32 33 - 34 35 36 37 38 39 31 32 33 34 35 00 CC 00 06 08 - 07 D0 20 03 E8 00 CE 00 0C 0B 49 6E 66 6F 72 6D - 61 74 69 6F 6E 01 17 00 08 00 33 32 31 34 35 36 - 30 01 13 00 01 22 00 CD 00 1B 00 00 D1 00 16 1A - 11 50 00 08 21 09 E0 41 41 42 42 43 43 44 44 45 - 45 5A 5A 59 58 - - - - - - - - diff --git a/e2sim/previous/src/E2AP/XML/E2AP_RICindication_type2.xml b/e2sim/previous/src/E2AP/XML/E2AP_RICindication_type2.xml deleted file mode 100644 index 92bc727..0000000 --- a/e2sim/previous/src/E2AP/XML/E2AP_RICindication_type2.xml +++ /dev/null @@ -1,74 +0,0 @@ - - - 205 - - - - - - 60030 - - - - 6 - 12 - - - - - 60003 - - - 10 - - - - 60017 - - - 100 - - - - 60028 - - - 100 - - - - 60029 - - - - - - - 60026 - - - 10 74 68 65 10 68 65 6C 40 - - - - 60027 - - - - 00 1B 40 80 80 00 00 08 00 6F 00 02 00 0C 00 F8 - 00 05 08 4D 86 D6 40 00 CB 00 20 31 32 33 34 35 - 36 37 38 39 31 32 33 34 35 36 37 38 39 31 32 33 - 34 35 36 37 38 39 31 32 33 34 35 00 CC 00 06 08 - 07 D0 20 03 E8 00 CE 00 0C 0B 49 6E 66 6F 72 6D - 61 74 69 6F 6E 01 17 00 08 00 33 32 31 34 35 36 - 30 01 13 00 01 23 00 CD 00 1B 00 00 D1 00 16 1A - 11 50 00 08 21 09 E0 41 41 42 42 43 43 44 44 45 - 45 5A 5A 59 58 - - - - - - - - diff --git a/e2sim/previous/src/E2AP/XML/E2AP_RICsubscriptionRequest.xml b/e2sim/previous/src/E2AP/XML/E2AP_RICsubscriptionRequest.xml deleted file mode 100644 index ab3ea11..0000000 --- a/e2sim/previous/src/E2AP/XML/E2AP_RICsubscriptionRequest.xml +++ /dev/null @@ -1,50 +0,0 @@ - - - 201 - - - - - - 60030 - - - - 1 - 200 - - - - - 60003 - - - 33 - - - - 60033 - - - - 00 01 02 03 40 0b 16 02 00 23 40 - - - 60011 - - - - 255 - - - - - - - - - - - - - diff --git a/e2sim/previous/src/E2AP/XML/E2AP_RICsubscriptionRequest_Ashwin.xml b/e2sim/previous/src/E2AP/XML/E2AP_RICsubscriptionRequest_Ashwin.xml deleted file mode 100644 index 524f7af..0000000 --- a/e2sim/previous/src/E2AP/XML/E2AP_RICsubscriptionRequest_Ashwin.xml +++ /dev/null @@ -1,50 +0,0 @@ - - - 201 - - - - - - 60030 - - - - 2 - 1 - - - - - 60003 - - - 0 - - - - 60033 - - - - 10 54 65 73 10 54 65 73 40 1B 40 - - - 60011 - - - - 4 - - - - - - - - - - - - - diff --git a/e2sim/previous/src/E2AP/XML/E2AP_RICsubscriptionResponse.xml b/e2sim/previous/src/E2AP/XML/E2AP_RICsubscriptionResponse.xml deleted file mode 100644 index b7ea847..0000000 --- a/e2sim/previous/src/E2AP/XML/E2AP_RICsubscriptionResponse.xml +++ /dev/null @@ -1,46 +0,0 @@ - - - 201 - - - - - - 60030 - - - - 2 - 205 - - - - - 60003 - - - 0 - - - - 60012 - - - - - 60013 - - - - 1 - - - - - - - - - - - diff --git a/e2sim/previous/src/E2AP/XML/E2AP_ResourceStatusFailure.xml b/e2sim/previous/src/E2AP/XML/E2AP_ResourceStatusFailure.xml deleted file mode 100644 index 9898d55..0000000 --- a/e2sim/previous/src/E2AP/XML/E2AP_ResourceStatusFailure.xml +++ /dev/null @@ -1,35 +0,0 @@ - - - 9 - - - - - - 39 - - - 1 - - - - 40 - - - 74 - - - - 5 - - - - - - - - - - - - diff --git a/e2sim/previous/src/E2AP/XML/E2AP_ResourceStatusRequest.xml b/e2sim/previous/src/E2AP/XML/E2AP_ResourceStatusRequest.xml deleted file mode 100644 index a807971..0000000 --- a/e2sim/previous/src/E2AP/XML/E2AP_ResourceStatusRequest.xml +++ /dev/null @@ -1,85 +0,0 @@ - - - 9 - - - - - - 39 - - - 1 - - - - 28 - - - - - - - 38 - - - - 11111110000000000000000000000000 - - - - - 29 - - - - - 31 - - - - - 13 30 23 - - 0000001010110000001100001010 - - - - - - - - - - 30 - - - - - - - 64 - - - - - - - 109 - - - - - - - 145 - - - - - - - - - - diff --git a/e2sim/previous/src/E2AP/XML/E2AP_ResourceStatusRequest_bad.xml b/e2sim/previous/src/E2AP/XML/E2AP_ResourceStatusRequest_bad.xml deleted file mode 100644 index 6968e71..0000000 --- a/e2sim/previous/src/E2AP/XML/E2AP_ResourceStatusRequest_bad.xml +++ /dev/null @@ -1,85 +0,0 @@ - - - 9 - - - - - - 39 - - - 1 - - - - 28 - - - - - - - 38 - - - - 00000000000000000000000000000000 - - - - - 29 - - - - - 31 - - - - - 02 07 9f - - 0010101100000000001100001010 - - - - - - - - - - 30 - - - - - - - 64 - - - - - - - 109 - - - - - - - 145 - - - - - - - - - - diff --git a/e2sim/previous/src/E2AP/XML/E2AP_ResourceStatusResponse.xml b/e2sim/previous/src/E2AP/XML/E2AP_ResourceStatusResponse.xml deleted file mode 100644 index 12542a8..0000000 --- a/e2sim/previous/src/E2AP/XML/E2AP_ResourceStatusResponse.xml +++ /dev/null @@ -1,134 +0,0 @@ - - - 9 - - - - - - 39 - - - 1 - - - - 40 - - - 75 - - - - 65 - - - - - 66 - - - - - 13 30 23 - - 0000001010110000001100001010 - - - - - 67 - - - - - 00000010000000000000000000000000 - - - - - - - - - 67 - - - - - 00000100000000000000000000000000 - - - - - - - - - 67 - - - - - 00001000000000000000000000000000 - - - - - - - - - 67 - - - - - 00100000000000000000000000000000 - - - - - - - - - 67 - - - - - 01000000000000000000000000000000 - - - - - - - - - 67 - - - - - 10000000000000000000000000000000 - - - - - - - - - - - - - - - - - - - diff --git a/e2sim/previous/src/E2AP/XML/E2AP_ResourceStatusUpdate.xml b/e2sim/previous/src/E2AP/XML/E2AP_ResourceStatusUpdate.xml deleted file mode 100644 index b5630bc..0000000 --- a/e2sim/previous/src/E2AP/XML/E2AP_ResourceStatusUpdate.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - 10 - - - - - - 39 - - - 1 - - - - 40 - - - 75 - - - - 32 - - - - - 33 - - - - - 13 30 23 - - 0000001010110000001100001010 - - - - - 42 - - - - - 100 - 99 - - - 100 - 99 - - - - - - - - - - - - - - - - diff --git a/e2sim/previous/src/E2AP/XML/E2AP_X2SetupFailure.xml b/e2sim/previous/src/E2AP/XML/E2AP_X2SetupFailure.xml deleted file mode 100644 index 53acf31..0000000 --- a/e2sim/previous/src/E2AP/XML/E2AP_X2SetupFailure.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - 6 - - - - - - 5 - - - - - - - - - - - - diff --git a/e2sim/previous/src/E2AP/XML/E2AP_X2SetupRequest.xml b/e2sim/previous/src/E2AP/XML/E2AP_X2SetupRequest.xml deleted file mode 100644 index 9f0f286..0000000 --- a/e2sim/previous/src/E2AP/XML/E2AP_X2SetupRequest.xml +++ /dev/null @@ -1,57 +0,0 @@ - - - 6 - - - - - - 21 - - - - 13 30 23 - - - 11111111111111111111 - - - - - - - 20 - - - - - - 503 - - 13 30 23 - - 1111111111111111111100000000 - - - 00 00 - - 13 30 23 - - - - 0 - 0 - - - - - - - - - - - - - - diff --git a/e2sim/previous/src/E2AP/XML/E2AP_X2SetupResponse.xml b/e2sim/previous/src/E2AP/XML/E2AP_X2SetupResponse.xml deleted file mode 100644 index af42d5b..0000000 --- a/e2sim/previous/src/E2AP/XML/E2AP_X2SetupResponse.xml +++ /dev/null @@ -1,97 +0,0 @@ - - - 6 - - - - - - 21 - - - - 13 30 23 - - - 00000010101100000011 - - - - - - - 20 - - - - - - 308 - - 13 30 23 - - 0000001010110000001100001010 - - - 64 03 - - 13 30 23 - - - - 18650 - 650 - - - - - - - 41 - - - - - - - 55 - - - - 344 - 12 - - 5 - - - - - 160 - - - - - - - - - - - - - 24 - - - - - 13 30 23 - 80 00 - - - - - - - - - diff --git a/e2sim/previous/src/E2AP/XML/reference_constants.txt b/e2sim/previous/src/E2AP/XML/reference_constants.txt deleted file mode 100644 index b9a3b54..0000000 --- a/e2sim/previous/src/E2AP/XML/reference_constants.txt +++ /dev/null @@ -1,16 +0,0 @@ -/* Dependencies */ -typedef enum Criticality { - Criticality_reject = 0, - Criticality_ignore = 1, - Criticality_notify = 2 -} e_Criticality; - - --- Event Trigger Definition OCTET STRING contents -E2SM-gNB-X2-eventTriggerDefinition ::= SEQUENCE{ - interface-ID Interface-ID, - interfaceDirection InterfaceDirection, - interfaceMessageType InterfaceMessageType, - interfaceProtocolIE-List SEQUENCE (SIZE(1..maxofInterfaceProtocolIE)) OF InterfaceProtocolIE-Item OPTIONAL, - ... -} diff --git a/e2sim/previous/src/E2AP/e2ap_asn1c_codec.c b/e2sim/previous/src/E2AP/e2ap_asn1c_codec.c deleted file mode 100644 index 5205b16..0000000 --- a/e2sim/previous/src/E2AP/e2ap_asn1c_codec.c +++ /dev/null @@ -1,143 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ -#include "e2ap_asn1c_codec.h" - -void e2ap_asn1c_print_pdu(const E2AP_PDU_t* pdu) -{ - xer_fprint(stdout, &asn_DEF_E2AP_PDU, (void *)pdu); - printf("\n"); -} - -void asn1c_xer_print(asn_TYPE_descriptor_t *typeDescriptor, void *data) -{ - xer_fprint(stdout, typeDescriptor, (void *)data); - printf("\n"); -} - - -E2AP_PDU_t* e2ap_xml_to_pdu(char const* xml_message) -{ - // E2AP_PDU_t *pdu = new E2AP_PDU_t(); - E2AP_PDU_t *pdu = calloc(1, sizeof(E2AP_PDU_t)); - - assert(pdu != 0); - - uint8_t buf[MAX_XML_BUFFER]; - asn_dec_rval_t rval; - size_t size; - FILE *f; - - char XML_path[300]; - char *work_dir = getenv(WORKDIR_ENV); - - strcpy(XML_path, work_dir); - strcat(XML_path, E2AP_XML_DIR); - strcat(XML_path, xml_message); - - LOG_D("Generate E2AP PDU from XML file: %s\n", XML_path); - memset(buf, 0, sizeof(buf)); - - f = fopen(XML_path, "r"); - if(!f){ - LOG_E("Unable to open %s. Make sure you have set the Environment Variable E2SIM_DIR, see README", XML_path) - } - - assert(f); - - size = fread(buf, 1, sizeof(buf), f); - if(size == 0 || size == sizeof(buf)) - { - LOG_E("Input too long: %s", XML_path); - exit(1); - } - - fclose(f); - - rval = xer_decode(0, &asn_DEF_E2AP_PDU, (void **)&pdu, buf, size); - - assert(rval.code == RC_OK); - - return pdu; -} - -int e2ap_asn1c_encode_pdu(E2AP_PDU_t* pdu, unsigned char **buffer) -{ - int len; - - *buffer = NULL; - assert(pdu != NULL); - assert(buffer != NULL); - - len = aper_encode_to_new_buffer(&asn_DEF_E2AP_PDU, 0, pdu, (void **)buffer); - - if (len < 0) { - LOG_E("[E2AP ASN] Unable to aper encode"); - exit(1); - } - else { - LOG_D("[E2AP ASN] Encoded succesfully, encoded size = %d", len); - } - - ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_E2AP_PDU, pdu); - - return len; -} - -void e2ap_asn1c_decode_pdu(E2AP_PDU_t* pdu, unsigned char *buffer, int len) -{ - asn_dec_rval_t dec_ret; - - assert(buffer != NULL); - - dec_ret = aper_decode(NULL, &asn_DEF_E2AP_PDU, (void **)&pdu, buffer, len, 0, 0); - - if (dec_ret.code != RC_OK) { - LOG_E("[E2AP ASN] Failed to decode pdu"); - exit(1); - } - else { - LOG_D("[E2AP ASN] Decoded succesfully"); - } -} - -int e2ap_asn1c_get_procedureCode(E2AP_PDU_t* pdu) -{ - int procedureCode = -1; - - switch(pdu->present) - { - case E2AP_PDU_PR_initiatingMessage: - procedureCode = pdu->choice.initiatingMessage->procedureCode; - break; - - case E2AP_PDU_PR_successfulOutcome: - procedureCode = pdu->choice.successfulOutcome->procedureCode; - break; - - case E2AP_PDU_PR_unsuccessfulOutcome: - procedureCode = pdu->choice.unsuccessfulOutcome->procedureCode; - break; - - default: - LOG_E("[E2AP] Error: Unknown index %d in E2AP PDU", (int)pdu->present); - break; - } - - return procedureCode; -} diff --git a/e2sim/previous/src/E2AP/e2ap_asn1c_codec.h b/e2sim/previous/src/E2AP/e2ap_asn1c_codec.h deleted file mode 100644 index 1362638..0000000 --- a/e2sim/previous/src/E2AP/e2ap_asn1c_codec.h +++ /dev/null @@ -1,44 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ -#ifndef E2AP_ASN1C_CODEC_H -#define E2AP_ASN1C_CODEC_H - -#include "e2sim_defs.h" -#include "E2AP-PDU.h" -#include "InitiatingMessage.h" -#include "SuccessfulOutcome.h" -#include "UnsuccessfulOutcome.h" - -#define ASN1C_PDU_PRINT_BUFFER 4096 -#define MAX_XML_BUFFER 10000 -#define E2AP_XML_DIR "/src/E2AP/XML/" - -void e2ap_asn1c_print_pdu(const E2AP_PDU_t* pdu); - -void asn1c_xer_print(asn_TYPE_descriptor_t *typeDescriptor, void *data); - -E2AP_PDU_t* e2ap_xml_to_pdu(char const* xml_message); - -int e2ap_asn1c_encode_pdu(E2AP_PDU_t* pdu, unsigned char **buffer); - -void e2ap_asn1c_decode_pdu(E2AP_PDU_t* pdu, unsigned char *buffer, int len); - -int e2ap_asn1c_get_procedureCode(E2AP_PDU_t* pdu); - -#endif diff --git a/e2sim/previous/src/E2AP/e2ap_message_handler.cpp b/e2sim/previous/src/E2AP/e2ap_message_handler.cpp deleted file mode 100644 index 39347a1..0000000 --- a/e2sim/previous/src/E2AP/e2ap_message_handler.cpp +++ /dev/null @@ -1,388 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ -#include "e2ap_message_handler.hpp" -#include - -void e2ap_handle_sctp_data(int &socket_fd, sctp_buffer_t &data) -{ - //decode the data into E2AP-PDU - E2AP_PDU_t* pdu = new E2AP_PDU_t(); - - e2ap_asn1c_decode_pdu(pdu, data.buffer, data.len); - - e2ap_asn1c_print_pdu(pdu); - - int procedureCode = e2ap_asn1c_get_procedureCode(pdu); - int index = (int)pdu->present; - - LOG_D("[E2AP] Unpacked E2AP-PDU: index = %d, procedureCode = %d\n", - index, procedureCode); - - switch(procedureCode) - { - case ProcedureCode_id_x2Setup: //X2Setup = 6 - switch(index) - { - case E2AP_PDU_PR_initiatingMessage: //initiatingMessage - LOG_I("[E2AP] Received X2-SETUP-REQUEST"); - e2ap_handle_X2SetupRequest(pdu, socket_fd); - break; - - case E2AP_PDU_PR_successfulOutcome: //successfulOutcome - LOG_I("[E2AP] Received X2-SETUP-RESPONSE"); - e2ap_handle_X2SetupResponse(pdu, socket_fd); - break; - - case E2AP_PDU_PR_unsuccessfulOutcome: - break; - - default: - LOG_E("[E2AP] Invalid message index=%d in E2AP-PDU", index); - break; - } - break; - - case ProcedureCode_id_endcX2Setup: //ENDCX2Setup = 36 - switch(index) - { - case E2AP_PDU_PR_initiatingMessage: //initiatingMessage - LOG_I("[E2AP] Received ENDC-X2-SETUP-REQUEST"); - e2ap_handle_ENDCX2SetupRequest(pdu, socket_fd); - break; - - case E2AP_PDU_PR_successfulOutcome: //successfulOutcome - LOG_I("[E2AP] Received ENDC-X2-SETUP-RESPONSE"); - //no handler yet - break; - - case E2AP_PDU_PR_unsuccessfulOutcome: - LOG_I("[E2AP] Received ENDC-X2-SETUP-FAILURE"); - //no handler yet - break; - - default: - LOG_E("[E2AP] Invalid message index=%d in E2AP-PDU", index); - break; - } - break; - - case ProcedureCode_id_reset: //reset = 7 - switch(index) - { - case E2AP_PDU_PR_initiatingMessage: - LOG_I("[E2AP] Received RESET-REQUEST"); - break; - - case E2AP_PDU_PR_successfulOutcome: - break; - - case E2AP_PDU_PR_unsuccessfulOutcome: - break; - - default: - LOG_E("[E2AP] Invalid message index=%d in E2AP-PDU", index); - break; - } - break; - - case ProcedureCode_id_ricSubscription: //RIC SUBSCRIPTION = 201 - switch(index) - { - case E2AP_PDU_PR_initiatingMessage: //initiatingMessage - LOG_I("[E2AP] Received RIC-SUBSCRIPTION-REQUEST"); - //e2ap_handle_RICSubscriptionRequest(pdu, socket_fd); - e2ap_handle_RICSubscriptionRequest_securityDemo(pdu, socket_fd); - break; - - case E2AP_PDU_PR_successfulOutcome: - LOG_I("[E2AP] Received RIC-SUBSCRIPTION-RESPONSE"); - break; - - case E2AP_PDU_PR_unsuccessfulOutcome: - LOG_I("[E2AP] Received RIC-SUBSCRIPTION-FAILURE"); - break; - - default: - LOG_E("[E2AP] Invalid message index=%d in E2AP-PDU", index); - break; - } - break; - - case ProcedureCode_id_ricIndication: // 205 - switch(index) - { - case E2AP_PDU_PR_initiatingMessage: //initiatingMessage - LOG_I("[E2AP] Received RIC-INDICATION"); - // e2ap_handle_RICSubscriptionRequest(pdu, socket_fd); - break; - - default: - LOG_E("[E2AP] Invalid message index=%d in E2AP-PDU %d", index, - (int)ProcedureCode_id_ricIndication); - break; - } - break; - - case ProcedureCode_id_resourceStatusReportingInitiation: //9 - switch(index) - { - case E2AP_PDU_PR_initiatingMessage: //initiatingMessage - LOG_I("[E2AP] Received RESOURCE-STATUS-REQUEST"); - e2ap_handle_ResourceStatusRequest(pdu, socket_fd); - break; - - case E2AP_PDU_PR_successfulOutcome: //successfulOutcome - LOG_I("[E2AP] Received RESOURCE-STATUS-RESPONSE"); - break; - - case E2AP_PDU_PR_unsuccessfulOutcome: - LOG_I("[E2AP] Received RESOURCE-STATUS-FAILURE"); - break; - - default: - LOG_E("[E2AP] Invalid message index=%d in E2AP-PDU %d", index, - (int)ProcedureCode_id_resourceStatusReportingInitiation); - break; - } - break; - - case ProcedureCode_id_resourceStatusReporting: // 10 - switch(index) - { - case E2AP_PDU_PR_initiatingMessage: //initiatingMessage - LOG_I("[E2AP] Received RESOURCE-STATUS-UPDATE"); - break; - - default: - LOG_E("[E2AP] Unable to process message index=%d in E2AP-PDU %d", index, - (int)ProcedureCode_id_resourceStatusReporting); - break; - } - break; - - default: - LOG_E("[E2AP] No available handler for procedureCode=%d", procedureCode); - break; - } -} - -/* -Simply send back X2SetupResponse -Todo: add more handling options (failure, duplicated request, etc.) -*/ -void e2ap_handle_X2SetupRequest(E2AP_PDU_t* pdu, int &socket_fd) -{ - E2AP_PDU_t* res_pdu = e2ap_xml_to_pdu("E2AP_X2SetupResponse.xml"); - - LOG_D("[E2AP] Created X2-SETUP-RESPONSE"); - - e2ap_asn1c_print_pdu(res_pdu); - - uint8_t *buf; - sctp_buffer_t data; - - data.len = e2ap_asn1c_encode_pdu(res_pdu, &buf); - memcpy(data.buffer, buf, min(data.len, MAX_SCTP_BUFFER)); - - //send response data over sctp - if(sctp_send_data(socket_fd, data) > 0) { - LOG_I("[SCTP] Sent X2-SETUP-RESPONSE"); - } else { - LOG_E("[SCTP] Unable to send X2-SETUP-RESPONSE to peer"); - } -} - -void e2ap_handle_X2SetupResponse(E2AP_PDU_t* pdu, int &socket_fd) -{ - E2AP_PDU_t* req_pdu = e2ap_xml_to_pdu("E2AP_ResourceStatusRequest.xml"); - // E2AP_PDU_t* req_pdu = e2ap_xml_to_pdu("E2AP_ResourceStatusRequest_bad.xml"); - - LOG_D("[E2AP] Created RESOURCE-STATUS-REQUEST"); - - e2ap_asn1c_print_pdu(req_pdu); - - uint8_t *buf; - sctp_buffer_t data; - - data.len = e2ap_asn1c_encode_pdu(req_pdu, &buf); - memcpy(data.buffer, buf, min(data.len, MAX_SCTP_BUFFER)); - - //send response data over sctp - if(sctp_send_data(socket_fd, data) > 0) { - LOG_I("[SCTP] Sent RESOURCE-STATUS-REQUEST"); - } else { - LOG_E("[SCTP] Unable to send RESOURCE-STATUS-REQUEST to peer"); - } - -} - -/* -Simply send back ENDCX2SetupResponse -Todo: add more handling options (failure, duplicated request, etc.) -*/ -void e2ap_handle_ENDCX2SetupRequest(E2AP_PDU_t* pdu, int &socket_fd) -{ - E2AP_PDU_t* res_pdu = e2ap_xml_to_pdu("E2AP_ENDCX2SetupResponse.xml"); - - LOG_D("[E2AP] Created ENDC-X2-SETUP-RESPONSE"); - - e2ap_asn1c_print_pdu(res_pdu); - - uint8_t *buf; - sctp_buffer_t data; - - data.len = e2ap_asn1c_encode_pdu(res_pdu, &buf); - memcpy(data.buffer, buf, min(data.len, MAX_SCTP_BUFFER)); - - //send response data over sctp - if(sctp_send_data(socket_fd, data) > 0) { - LOG_I("[SCTP] Sent ENDC-X2-SETUP-RESPONSE"); - } else { - LOG_E("[SCTP] Unable to send ENDC-X2-SETUP-RESPONSE to peer"); - } -} - -/* -Simply send back hard-coded RICSubscriptionResponse -Todo: add more handling options (failure, duplicated request, etc.) -*/ -void e2ap_handle_RICSubscriptionRequest(E2AP_PDU_t* pdu, int &socket_fd) -{ - E2AP_PDU_t* res_pdu = e2ap_xml_to_pdu("E2AP_RICsubscriptionResponse.xml"); - - LOG_D("[E2AP] Created RIC-SUBSCRIPTION-RESPONSE"); - - e2ap_asn1c_print_pdu(res_pdu); - - uint8_t *buf; - sctp_buffer_t data; - - data.len = e2ap_asn1c_encode_pdu(res_pdu, &buf); - memcpy(data.buffer, buf, min(data.len, MAX_SCTP_BUFFER)); - - //send response data over sctp - if(sctp_send_data(socket_fd, data) > 0) { - LOG_I("[SCTP] Sent RIC-SUBSCRIPTION-RESPONSE"); - } else { - LOG_E("[SCTP] Unable to send RIC-SUBSCRIPTION-RESPONSE to peer"); - } -} - -void e2ap_handle_RICSubscriptionRequest_securityDemo(E2AP_PDU_t* pdu, int &socket_fd) -{ - E2AP_PDU_t* res_pdu = e2ap_xml_to_pdu("E2AP_RICsubscriptionResponse.xml"); - - LOG_D("[E2AP] Created RIC-SUBSCRIPTION-RESPONSE"); - - e2ap_asn1c_print_pdu(res_pdu); - - uint8_t *buf; - sctp_buffer_t data; - - data.len = e2ap_asn1c_encode_pdu(res_pdu, &buf); - memcpy(data.buffer, buf, min(data.len, MAX_SCTP_BUFFER)); - - //send response data over sctp - if(sctp_send_data(socket_fd, data) > 0) { - LOG_I("[SCTP] Sent RIC-SUBSCRIPTION-RESPONSE"); - } else { - LOG_E("[SCTP] Unable to send RIC-SUBSCRIPTION-RESPONSE to peer"); - } - - //Start sending RIC Indication - int count1 = 0, count2 = 0; - - E2AP_PDU_t* indication_type1 = e2ap_xml_to_pdu("E2AP_RICindication_type1.xml"); - E2AP_PDU_t* indication_type2 = e2ap_xml_to_pdu("E2AP_RICindication_type2.xml"); - - uint8_t *buf1, *buf2; - sctp_buffer_t data1, data2; - data1.len = e2ap_asn1c_encode_pdu(indication_type1, &buf1); - memcpy(data1.buffer, buf1, min(data1.len, MAX_SCTP_BUFFER)); - - data2.len = e2ap_asn1c_encode_pdu(indication_type2, &buf2); - memcpy(data2.buffer, buf2, min(data2.len, MAX_SCTP_BUFFER)); - - while(1){ - sleep(1); - //type1 - if(sctp_send_data(socket_fd, data1) > 0) { - count1++; - LOG_I("[SCTP] Sent RIC-INDICATION SgNBAdditionRequest Type 1, count1 = %d", count1); - } else { - LOG_E("[SCTP] Unable to send RIC-INDICATION to peer"); - } - - sleep(1); - //type2 - if(sctp_send_data(socket_fd, data2) > 0) { - count2++; - LOG_I("[SCTP] Sent RIC-INDICATION SgNBAdditionRequest Type 2, count2 = %d", count2); - } else { - LOG_E("[SCTP] Unable to send RIC-INDICATION to peer"); - } - } //end while - -} - -void e2ap_handle_ResourceStatusRequest(E2AP_PDU_t* pdu, int &socket_fd) -{ - //send back ResourceStatusResponse, followed by resource status update - E2AP_PDU_t* res_pdu = e2ap_xml_to_pdu("E2AP_ResourceStatusResponse.xml"); - - LOG_D("[E2AP] Created RESOURCE-STATUS-RESPONSE"); - - e2ap_asn1c_print_pdu(res_pdu); - - uint8_t *buf; - sctp_buffer_t data; - - data.len = e2ap_asn1c_encode_pdu(res_pdu, &buf); - memcpy(data.buffer, buf, min(data.len, MAX_SCTP_BUFFER)); - - //send response data over sctp - if(sctp_send_data(socket_fd, data) > 0) { - LOG_I("[SCTP] Sent RESOURCE-STATUS-RESPONSE"); - } else { - LOG_E("[SCTP] Unable to send RESOURCE-STATUS-RESPONSE to peer"); - } - - - //send ResourceStatusUpdate periodically - E2AP_PDU_t* update_pdu = e2ap_xml_to_pdu("E2AP_ResourceStatusUpdate.xml"); - - uint8_t *update_buf; - sctp_buffer_t update_data; - - update_data.len = e2ap_asn1c_encode_pdu(update_pdu, &update_buf); - memcpy(update_data.buffer, update_buf, min(update_data.len, MAX_SCTP_BUFFER)); - - while(1) { - // e2ap_asn1c_print_pdu(update_pdu); - - if(sctp_send_data(socket_fd, update_data) > 0) { - LOG_I("[SCTP] Sent RESOURCE-STATUS-UPDATE"); - } else { - LOG_E("[SCTP] Unable to send RESOURCE-STATUS-UPDATE to peer"); - } - - sleep(1); - - } -} diff --git a/e2sim/previous/src/E2AP/e2ap_message_handler.hpp b/e2sim/previous/src/E2AP/e2ap_message_handler.hpp deleted file mode 100644 index f53cce1..0000000 --- a/e2sim/previous/src/E2AP/e2ap_message_handler.hpp +++ /dev/null @@ -1,43 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ -#ifndef E2AP_MESSAGE_HANDLER_HPP -#define E2AP_MESSAGE_HANDLER_HPP - -#include "e2sim_sctp.hpp" - -extern "C" { - #include "e2sim_defs.h" - #include "e2ap_asn1c_codec.h" -} - -void e2ap_handle_sctp_data(int &socket_fd, sctp_buffer_t &data); - -void e2ap_handle_X2SetupRequest(E2AP_PDU_t* pdu, int &socket_fd); - -void e2ap_handle_X2SetupResponse(E2AP_PDU_t* pdu, int &socket_fd); - -void e2ap_handle_ENDCX2SetupRequest(E2AP_PDU_t* pdu, int &socket_fd); - -void e2ap_handle_RICSubscriptionRequest(E2AP_PDU_t* pdu, int &socket_fd); - -void e2ap_handle_RICSubscriptionRequest_securityDemo(E2AP_PDU_t* pdu, int &socket_fd); - -void e2ap_handle_ResourceStatusRequest(E2AP_PDU_t* pdu, int &socket_fd); - -#endif diff --git a/e2sim/previous/src/SCTP/e2sim_sctp.c b/e2sim/previous/src/SCTP/e2sim_sctp.c deleted file mode 100644 index b4880f9..0000000 --- a/e2sim/previous/src/SCTP/e2sim_sctp.c +++ /dev/null @@ -1,173 +0,0 @@ -/* - * - * Copyright 2019 AT&T Intellectual Property - * Copyright 2019 Nokia - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -#include -#include -#include //for close() -#include -#include -#include -#include -#include //for inet_ntop() -#include - -#include "e2sim_sctp.h" - -const int CLIENT_SEND_COUNT = 1; -const int SERVER_LISTEN_QUEUE_SIZE = 10; - -int sctp_start_server(const char *server_ip_str, const int server_port) -{ - if(server_port < 1 || server_port > 65535) { - fprintf(stderr, "Invalid port number (%d). Valid values are between 1 and 65535.\n", server_port); - return -1; - } - - int server_fd; - if((server_fd = socket(AF_INET, SOCK_STREAM, IPPROTO_SCTP)) == -1) { - perror("socket"); - return -1; - } - - struct sockaddr_in server_addr; - memset(&server_addr, 0, sizeof(struct sockaddr_in)); - server_addr.sin_family = AF_INET; - server_addr.sin_port = htons(server_port); - server_addr.sin_addr.s_addr = inet_addr(server_ip_str); - - if(bind(server_fd, (struct sockaddr*)&server_addr, sizeof(server_addr)) == -1) { - perror("bind"); - return -1; - } - - if(listen(server_fd, SERVER_LISTEN_QUEUE_SIZE) != 0) { - perror("listen"); - return -1; - } - - assert(server_fd != 0); - - fprintf(stderr, "SCTP server started on %s:%d\n", server_ip_str, server_port); - - return server_fd; -} - -int sctp_start_client(const char *server_ip_str, const int server_port) -{ - int client_fd; - - if((client_fd = socket(AF_INET, SOCK_STREAM, IPPROTO_SCTP)) == -1) - { - perror("socket"); - return -1; - } - - struct sockaddr_in peer_addr; - memset(&peer_addr, 0, sizeof(struct sockaddr_in)); - peer_addr.sin_family = AF_INET; - peer_addr.sin_port = htons(server_port); - peer_addr.sin_addr.s_addr = inet_addr(server_ip_str); - // if(inet_pton(AF_INET, server_ip, &(peer_addr.sin_addr)) != 1) { - // printf("Error converting IP address (%s) to sockaddr_in structure\n", server_ip); - // return 0; - // } - - fprintf(stderr, "Connecting to server at %s:%d ...", server_ip_str, server_port); - if(connect(client_fd, (struct sockaddr*)&peer_addr, sizeof(peer_addr)) == -1) { - perror("connect"); - return -1; - } - - assert(client_fd != 0); - - fprintf(stderr, "OK\n"); - - return client_fd; - -} - -//ssize_t sctp_send_to_socket(int sockfd, const void* buf, size_t len) -int sctp_send_to_socket(int sockfd, const void* buf, size_t len) -{ - int sent_len = 0; - - sent_len = send(sockfd, buf, len, 0); - - if(sent_len == -1) - { - perror("sctp_send_to_socket"); - return -1; - } - - return sent_len; -} - -// int sctp_recv_from_socket(int sockfd, void *buf, size_t buf_size) -// { -// //int len = 0; -// -// memset(buf, 0, buf_size); -// -// int len = recv(sockfd, &buf, buf_size, 0); -// if(len == -1) -// { -// perror("sctp_recv_from_socket"); -// return -1; -// } -// -// return len; -// } - - -//test only -void client_send_multiple_test_msg(int client_fd) -{ - char buf[1024]; - int SEND_COUNT = 4; - - for(int i = 0; i < SEND_COUNT; i++) - { - fprintf(stderr, "Sending message %d of %d \n", i+1, SEND_COUNT); - - memset(buf, 0, sizeof(buf)); - snprintf(buf, sizeof(buf)-1, "DATA %d", i+1); - - if(send(client_fd, &buf, strlen(buf), 0) == -1) { - perror("send"); - return; - } - - memset(buf, 0, sizeof(buf)); - - if(recv(client_fd, &buf, sizeof(buf), 0) == -1) { - perror("recv"); - return; - } - - fprintf(stderr, "Server reply: %s\n", buf); - - sleep(1); - } - - fprintf(stderr, "Closing...\n"); - if(close(client_fd) == -1) { - perror("close"); - return; - } -} diff --git a/e2sim/previous/src/SCTP/e2sim_sctp.cpp b/e2sim/previous/src/SCTP/e2sim_sctp.cpp deleted file mode 100644 index de68ec7..0000000 --- a/e2sim/previous/src/SCTP/e2sim_sctp.cpp +++ /dev/null @@ -1,289 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ -#include -#include -#include //for close() -#include -#include -#include -#include -#include //for inet_ntop() -#include - -#include "e2sim_sctp.hpp" -// #include "e2sim_defs.h" - - -#include -#include -#include -#include -#include -#include -#include -#include - -int sctp_start_server(const char *server_ip_str, const int server_port) -{ - if(server_port < 1 || server_port > 65535) { - LOG_E("Invalid port number (%d). Valid values are between 1 and 65535.\n", server_port); - exit(1); - } - - int server_fd, af; - struct sockaddr* server_addr; - size_t addr_len; - - struct sockaddr_in server4_addr; - memset(&server4_addr, 0, sizeof(struct sockaddr_in)); - - struct sockaddr_in6 server6_addr; - memset(&server6_addr, 0, sizeof(struct sockaddr_in6)); - - if(inet_pton(AF_INET, server_ip_str, &server4_addr.sin_addr) == 1) - { - server4_addr.sin_family = AF_INET; - server4_addr.sin_port = htons(server_port); - - server_addr = (struct sockaddr*)&server4_addr; - af = AF_INET; - addr_len = sizeof(server4_addr); - } - else if(inet_pton(AF_INET6, server_ip_str, &server6_addr.sin6_addr) == 1) - { - server6_addr.sin6_family = AF_INET6; - server6_addr.sin6_port = htons(server_port); - - server_addr = (struct sockaddr*)&server6_addr; - af = AF_INET6; - addr_len = sizeof(server6_addr); - } - else { - perror("inet_pton()"); - exit(1); - } - - if((server_fd = socket(af, SOCK_STREAM, IPPROTO_SCTP)) == -1) { - perror("socket"); - exit(1); - } - - //set send_buffer - // int sendbuff = 10000; - // socklen_t optlen = sizeof(sendbuff); - // if(getsockopt(server_fd, SOL_SOCKET, SO_SNDBUF, &sendbuff, &optlen) == -1) { - // perror("getsockopt send"); - // exit(1); - // } - // else - // LOG_D("[SCTP] send buffer size = %d\n", sendbuff); - - - if(bind(server_fd, server_addr, addr_len) == -1) { - perror("bind"); - exit(1); - } - - if(listen(server_fd, SERVER_LISTEN_QUEUE_SIZE) != 0) { - perror("listen"); - exit(1); - } - - assert(server_fd != 0); - - LOG_I("[SCTP] Server started on %s:%d", server_ip_str, server_port); - - return server_fd; -} - -int sctp_start_client(const char *server_ip_str, const int server_port) -{ - int client_fd, af; - - struct sockaddr* server_addr; - size_t addr_len; - - struct sockaddr_in server4_addr; - memset(&server4_addr, 0, sizeof(struct sockaddr_in)); - - struct sockaddr_in6 server6_addr; - memset(&server6_addr, 0, sizeof(struct sockaddr_in6)); - - if(inet_pton(AF_INET, server_ip_str, &server4_addr.sin_addr) == 1) - { - server4_addr.sin_family = AF_INET; - server4_addr.sin_port = htons(server_port); - server_addr = (struct sockaddr*)&server4_addr; - addr_len = sizeof(server4_addr); - } - else if(inet_pton(AF_INET6, server_ip_str, &server6_addr.sin6_addr) == 1) - { - server6_addr.sin6_family = AF_INET6; - server6_addr.sin6_port = htons(server_port); - server_addr = (struct sockaddr*)&server6_addr; - addr_len = sizeof(server6_addr); - } - else { - perror("inet_pton()"); - exit(1); - } - - if((client_fd = socket(AF_INET6, SOCK_STREAM, IPPROTO_SCTP)) == -1) - { - perror("socket"); - exit(1); - } - - // int sendbuff = 10000; - // socklen_t optlen = sizeof(sendbuff); - // if(getsockopt(client_fd, SOL_SOCKET, SO_SNDBUF, &sendbuff, &optlen) == -1) { - // perror("getsockopt send"); - // exit(1); - // } - // else - // LOG_D("[SCTP] send buffer size = %d\n", sendbuff); - - //-------------------------------- - //Bind before connect - auto optval = 1; - if( setsockopt(client_fd, SOL_SOCKET, SO_REUSEPORT, &optval, sizeof optval) != 0 ){ - perror("setsockopt port"); - exit(1); - } - - if( setsockopt(client_fd, SOL_SOCKET, SO_REUSEADDR, &optval, sizeof optval) != 0 ){ - perror("setsockopt addr"); - exit(1); - } - - struct sockaddr_in6 client6_addr {}; - client6_addr.sin6_family = AF_INET6; - client6_addr.sin6_port = htons(RIC_SCTP_SRC_PORT); - client6_addr.sin6_addr = in6addr_any; - - LOG_I("[SCTP] Binding client socket to source port %d", RIC_SCTP_SRC_PORT); - if(bind(client_fd, (struct sockaddr*)&client6_addr, sizeof(client6_addr)) == -1) { - perror("bind"); - exit(1); - } - // end binding --------------------- - - LOG_I("[SCTP] Connecting to server at %s:%d ...", server_ip_str, server_port); - if(connect(client_fd, server_addr, addr_len) == -1) { - perror("connect"); - exit(1); - } - assert(client_fd != 0); - - LOG_I("[SCTP] Connection established"); - - return client_fd; -} - -int sctp_accept_connection(const char *server_ip_str, const int server_fd) -{ - LOG_I("[SCTP] Waiting for new connection..."); - - struct sockaddr client_addr; - socklen_t client_addr_size; - int client_fd; - - //Blocking call - client_fd = accept(server_fd, &client_addr, &client_addr_size); - if(client_fd == -1){ - perror("accept()"); - close(client_fd); - exit(1); - } - - //Retrieve client IP_ADDR - char client_ip6_addr[INET6_ADDRSTRLEN], client_ip4_addr[INET_ADDRSTRLEN]; - if(strchr(server_ip_str, ':') != NULL) //IPv6 - { - struct sockaddr_in6* client_ipv6 = (struct sockaddr_in6*)&client_addr; - inet_ntop(AF_INET6, &(client_ipv6->sin6_addr), client_ip6_addr, INET6_ADDRSTRLEN); - LOG_I("[SCTP] New client connected from %s", client_ip6_addr); - } - else { - struct sockaddr_in* client_ipv4 = (struct sockaddr_in*)&client_addr; - inet_ntop(AF_INET, &(client_ipv4->sin_addr), client_ip4_addr, INET_ADDRSTRLEN); - LOG_I("[SCTP] New client connected from %s", client_ip4_addr); - } - - return client_fd; -} - -int sctp_send_data(int &socket_fd, sctp_buffer_t &data) -{ - int sent_len = send(socket_fd, (void*)(&(data.buffer[0])), data.len, 0); - - if(sent_len == -1) { - perror("[SCTP] sctp_send_data"); - exit(1); - } - - return sent_len; -} - -int sctp_send_data_X2AP(int &socket_fd, sctp_buffer_t &data) -{ - int sent_len = sctp_sendmsg(socket_fd, (void*)(&(data.buffer[0])), data.len, - NULL, 0, (uint32_t) X2AP_PPID, 0, 0, 0, 0); - - if(sent_len == -1) { - perror("[SCTP] sctp_send_data"); - exit(1); - } - -} - -/* -Receive data from SCTP socket -Outcome of recv() --1: exit the program -0: close the connection -+: new data -*/ -int sctp_receive_data(int &socket_fd, sctp_buffer_t &data) -{ - //clear out the data before receiving - memset(data.buffer, 0, sizeof(data.buffer)); - data.len = 0; - - //receive data from the socket - int recv_len = recv(socket_fd, &(data.buffer), sizeof(data.buffer), 0); - if(recv_len == -1) - { - perror("[SCTP] recv"); - exit(1); - } - else if (recv_len == 0) - { - LOG_I("[SCTP] Connection closed by remote peer"); - if(close(socket_fd) == -1) - { - perror("[SCTP] close"); - } - return -1; - } - - data.len = recv_len; - - return recv_len; -} diff --git a/e2sim/previous/src/SCTP/e2sim_sctp.h b/e2sim/previous/src/SCTP/e2sim_sctp.h deleted file mode 100644 index c102df0..0000000 --- a/e2sim/previous/src/SCTP/e2sim_sctp.h +++ /dev/null @@ -1,39 +0,0 @@ -/* - * - * Copyright 2019 AT&T Intellectual Property - * Copyright 2019 Nokia - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -/*! \file e2sim_sctp.h - */ - -#ifndef E2SIM_SCTP_H -#define E2SIM_SCTP_H - -void *handle_connection(void *thread_data); - -int sctp_start_server(const char *server_ip_str, const int server_port); - -int sctp_start_client(const char *server_ip_str, const int server_port); - -int sctp_send_to_socket(int sockfd, const void *buf, size_t len); - -//int sctp_recv_from_socket(int sockfd, void *buf, size_t buf_size); - -//test only -void client_send_multiple_test_msg(int client_fd); - -#endif diff --git a/e2sim/previous/src/SCTP/e2sim_sctp.hpp b/e2sim/previous/src/SCTP/e2sim_sctp.hpp deleted file mode 100644 index b16fcf6..0000000 --- a/e2sim/previous/src/SCTP/e2sim_sctp.hpp +++ /dev/null @@ -1,39 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -#ifndef E2SIM_SCTP_HPP -#define E2SIM_SCTP_HPP - -#include "e2sim_defs.h" - -const int SERVER_LISTEN_QUEUE_SIZE = 10; - -int sctp_start_server(const char *server_ip_str, const int server_port); - -int sctp_start_client(const char *server_ip_str, const int server_port); - -int sctp_accept_connection(const char *server_ip_str, const int server_fd); - -int sctp_send_data(int &socket_fd, sctp_buffer_t &data); - -int sctp_send_data_X2AP(int &socket_fd, sctp_buffer_t &data); - -int sctp_receive_data(int &socket_fd, sctp_buffer_t &data); - -#endif diff --git a/e2sim/previous/src/X2AP/MESSAGES/XML/sample_endc_x2_setup_failure.xml b/e2sim/previous/src/X2AP/MESSAGES/XML/sample_endc_x2_setup_failure.xml deleted file mode 100644 index f0b6262..0000000 --- a/e2sim/previous/src/X2AP/MESSAGES/XML/sample_endc_x2_setup_failure.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - 36 - - - - - - 5 - - - - - - - - - - - - diff --git a/e2sim/previous/src/X2AP/MESSAGES/XML/sample_endc_x2_setup_request.xml b/e2sim/previous/src/X2AP/MESSAGES/XML/sample_endc_x2_setup_request.xml deleted file mode 100644 index 5f94d2e..0000000 --- a/e2sim/previous/src/X2AP/MESSAGES/XML/sample_endc_x2_setup_request.xml +++ /dev/null @@ -1,67 +0,0 @@ - - - 36 - - - - - - 244 - - - - - - 21 - - - - 61 62 63 - - - 00110101000000000001 - - - - - - - 250 - - - - - - 0 - - 61 62 63 - - 0110010001100101011001100000 - - - 61 62 - - 61 62 63 - - - - 21400 - 3400 - - - - - - - - - - - - - - - - - - diff --git a/e2sim/previous/src/X2AP/MESSAGES/XML/sample_endc_x2_setup_response.xml b/e2sim/previous/src/X2AP/MESSAGES/XML/sample_endc_x2_setup_response.xml deleted file mode 100644 index 587b578..0000000 --- a/e2sim/previous/src/X2AP/MESSAGES/XML/sample_endc_x2_setup_response.xml +++ /dev/null @@ -1,36 +0,0 @@ - - - 36 - - - - - - 246 - - - - - - 252 - - - - 02 F8 29 - - - 01001010100101010010101010101010 - - - - - - - - - - - - - - diff --git a/e2sim/previous/src/X2AP/MESSAGES/XML/sample_x2_setup_failure.xml b/e2sim/previous/src/X2AP/MESSAGES/XML/sample_x2_setup_failure.xml deleted file mode 100644 index 3b82969..0000000 --- a/e2sim/previous/src/X2AP/MESSAGES/XML/sample_x2_setup_failure.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - 6 - - - - - - 5 - - - - - - - - - - - - diff --git a/e2sim/previous/src/X2AP/MESSAGES/XML/sample_x2_setup_request.xml b/e2sim/previous/src/X2AP/MESSAGES/XML/sample_x2_setup_request.xml deleted file mode 100644 index 3589f28..0000000 --- a/e2sim/previous/src/X2AP/MESSAGES/XML/sample_x2_setup_request.xml +++ /dev/null @@ -1,57 +0,0 @@ - - - 6 - - - - - - 21 - - - - 02 F8 39 - - - 00000000111000100000 - - - - - - - 20 - - - - - - 0 - - 02 F8 39 - - 0000000011100010000000000000 - - - 00 01 - - 02 F8 39 - - - - 21400 - 3400 - - - - - - - - - - - - - - diff --git a/e2sim/previous/src/X2AP/MESSAGES/XML/sample_x2_setup_response.xml b/e2sim/previous/src/X2AP/MESSAGES/XML/sample_x2_setup_response.xml deleted file mode 100644 index bab51d3..0000000 --- a/e2sim/previous/src/X2AP/MESSAGES/XML/sample_x2_setup_response.xml +++ /dev/null @@ -1,69 +0,0 @@ - - - 6 - - - - - - 21 - - - - 02 F8 39 - - - 00000000111000110000 - - - - - - - 20 - - - - - - 0 - - 02 F8 39 - - 0000000011100011000000000000 - - - 00 01 - - 02 F8 39 - - - - 21400 - 3400 - - - - - - - - - - - 24 - - - - - 02 F8 39 - 00 00 - - - - - - - - - diff --git a/e2sim/previous/src/X2AP/x2ap_asn_codec.c b/e2sim/previous/src/X2AP/x2ap_asn_codec.c deleted file mode 100644 index 959e7ef..0000000 --- a/e2sim/previous/src/X2AP/x2ap_asn_codec.c +++ /dev/null @@ -1,64 +0,0 @@ -/* - * - * Copyright 2019 AT&T Intellectual Property - * Copyright 2019 Nokia - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -#include "x2ap_asn_codec.h" -#include "per_decoder.h" -#include "per_encoder.h" - -/* Encode X2AP PDU ASN1 buffer*/ -int X2AP_ASN_encode(X2AP_PDU_t *pdu, uint8_t **buffer, uint32_t *len) -{ - ssize_t encoded; - - assert(pdu != NULL); - assert(buffer != NULL); - assert(len != NULL); - - encoded = aper_encode_to_new_buffer(&asn_DEF_X2AP_PDU, 0, pdu, (void **)buffer); - - if (encoded < 0) - { - return -1; - } - - *len = encoded; - - ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_X2AP_PDU, pdu); - return encoded; -} - -/* Decode XASN1 buffer to X2AP PDU*/ -int X2AP_ASN_decode(X2AP_PDU_t *pdu, const uint8_t *const buffer, const int len) -{ - asn_dec_rval_t dec_ret; - - assert(buffer != NULL); - - dec_ret = aper_decode(NULL, &asn_DEF_X2AP_PDU, (void **)&pdu, buffer, - len, 0, 0); - - //xer_fprint(stdout, &asn_DEF_X2AP_PDU, pdu); - - if (dec_ret.code != RC_OK) { - fprintf(stderr, "ERROR: Failed to decode pdu\n"); - return -1; - } - - return 0; -} diff --git a/e2sim/previous/src/X2AP/x2ap_asn_codec.cpp b/e2sim/previous/src/X2AP/x2ap_asn_codec.cpp deleted file mode 100644 index 7f2e6be..0000000 --- a/e2sim/previous/src/X2AP/x2ap_asn_codec.cpp +++ /dev/null @@ -1,59 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -#include "x2ap_asn_codec.hpp" - -void x2ap_encode_pdu(x2ap_pdu_t* pdu, unsigned char* buf, int buf_size, int &encoded_size) -{ - char err_buf[X2AP_ERROR_MESSAGE_BUFFER]; - - encoded_size = x2ap_asn_per_encode(pdu, buf, buf_size, err_buf, sizeof(err_buf)); - - if(encoded_size != -1) - { - LOG_D("[X2AP] ASN Encode successful, encoded_size = %d", encoded_size); - } - else - { - LOG_E("[X2AP] Encode error: %s", err_buf); - exit(1); - } - -} - -void x2ap_decode_pdu(x2ap_pdu_t* pdu, unsigned char* buf, int &encoded_size) -{ - char err_buf[X2AP_ERROR_MESSAGE_BUFFER]; - - int rc = x2ap_asn_per_decode(pdu, buf, encoded_size, err_buf, sizeof(err_buf)); - if(rc == -1) { - LOG_E("[X2AP] Decode error: %s", err_buf); - } else { - LOG_D("[X2AP] ASN decode successful"); - } -} - -void x2ap_print_pdu(x2ap_pdu_t* pdu) -{ - char pdu_str[X2AP_PDU_PRINT_BUFFER]; - - x2ap_asn_print(pdu, pdu_str, sizeof(pdu_str)); - - LOG_D("[X2AP] %s", pdu_str); -} diff --git a/e2sim/previous/src/X2AP/x2ap_asn_codec.h b/e2sim/previous/src/X2AP/x2ap_asn_codec.h deleted file mode 100644 index bad3ae7..0000000 --- a/e2sim/previous/src/X2AP/x2ap_asn_codec.h +++ /dev/null @@ -1,30 +0,0 @@ -/* - * - * Copyright 2019 AT&T Intellectual Property - * Copyright 2019 Nokia - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -#ifndef X2AP_ASN_CODEC_H_ -#define X2AP_ASN_CODEC_H_ - -#include "X2AP-PDU.h" - -int X2AP_ASN_encode(X2AP_PDU_t *pdu, uint8_t **buffer, uint32_t *len) -__attribute__ ((warn_unused_result)); - -int X2AP_ASN_decode(X2AP_PDU_t *pdu, const uint8_t *const buffer, const int len); - -#endif diff --git a/e2sim/previous/src/X2AP/x2ap_asn_codec.hpp b/e2sim/previous/src/X2AP/x2ap_asn_codec.hpp deleted file mode 100644 index a07f441..0000000 --- a/e2sim/previous/src/X2AP/x2ap_asn_codec.hpp +++ /dev/null @@ -1,34 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ -#ifndef X2AP_ASN_CODEC_HPP -#define X2AP_ASN_CODEC_HPP - -#include "e2sim_defs.h" -#include "asn_x2ap.hpp" - -#define X2AP_ERROR_MESSAGE_BUFFER 1024 -#define X2AP_PDU_PRINT_BUFFER 4096 - -void x2ap_encode_pdu(x2ap_pdu_t* pdu, unsigned char* buf, int buf_size, int &encoded_size); - -void x2ap_decode_pdu(x2ap_pdu_t* pdu, unsigned char* buf, int &encoded_size); - -void x2ap_print_pdu(x2ap_pdu_t* pdu); - -#endif diff --git a/e2sim/previous/src/X2AP/x2ap_generate_messages.c b/e2sim/previous/src/X2AP/x2ap_generate_messages.c deleted file mode 100644 index db12a3e..0000000 --- a/e2sim/previous/src/X2AP/x2ap_generate_messages.c +++ /dev/null @@ -1,113 +0,0 @@ -/* - * - * Copyright 2019 AT&T Intellectual Property - * Copyright 2019 Nokia - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -#include -#include -#include -#include -#include -#include "x2ap_generate_messages.h" -#include "x2ap_asn_codec.h" -#include "e2sim_defs.h" - -int asn1_xer_print = 0; -int MAX_XML_BUFFER = 10000; - -void x2ap_fetch_pdu_from_XML(X2AP_PDU_t **pdu, char *filename) -{ - - uint8_t buf[MAX_XML_BUFFER]; - - asn_dec_rval_t rval; - size_t size; - FILE *f; - - char XML_path[200]; - char *work_dir = getenv(WORKDIR_ENV); - - strcpy(XML_path, work_dir); - strcat(XML_path, "/src/X2AP/MESSAGES/XML/"); - strcat(XML_path, filename); - - //printf("Generate X2AP PDU from XML file: %s\n", XML_path); - - f = fopen(XML_path, "r"); - assert(f); - size = fread(buf, 1, sizeof(buf), f); - if(size == 0 || size == sizeof(buf)) - { - fprintf(stderr, "%s: Too large input\n", XML_path); - exit(1); - } - - fclose(f); - - //printf("Decode the XER buffer\n"); - rval = xer_decode(NULL, &asn_DEF_X2AP_PDU, (void **)pdu, buf, size); - assert(rval.code == RC_OK); - -} - -uint32_t x2ap_generate_x2_setup_request(uint8_t **buffer) -{ - X2AP_PDU_t *pdu; - pdu = (X2AP_PDU_t *)calloc(1, sizeof(X2AP_PDU_t)); - - uint32_t len; - - char *XML_file = "sample_x2_setup_request.xml"; - - x2ap_fetch_pdu_from_XML(&pdu, XML_file); - - if(asn1_xer_print) - xer_fprint(stdout, &asn_DEF_X2AP_PDU, (void *)pdu); - - if(X2AP_ASN_encode(pdu, buffer, &len) < 0) - { - fprintf(stderr, "Failed to APER encode X2 Setup Request\n"); - return -1; - } - - return len; - -} - -uint32_t x2ap_generate_x2_setup_response(uint8_t **buffer) -{ - X2AP_PDU_t *pdu; - pdu = (X2AP_PDU_t *)calloc(1, sizeof(X2AP_PDU_t)); - - uint32_t len; - - char *XML_file = "sample_x2_setup_response.xml"; - - x2ap_fetch_pdu_from_XML(&pdu, XML_file); - - if(asn1_xer_print) - xer_fprint(stdout, &asn_DEF_X2AP_PDU, (void *)pdu); - - if(X2AP_ASN_encode(pdu, buffer, &len) < 0) - { - fprintf(stderr, "Failed to APER encode X2 Setup Request\n"); - return -1; - } - - return len; - -} diff --git a/e2sim/previous/src/X2AP/x2ap_generate_messages.h b/e2sim/previous/src/X2AP/x2ap_generate_messages.h deleted file mode 100644 index 53998b7..0000000 --- a/e2sim/previous/src/X2AP/x2ap_generate_messages.h +++ /dev/null @@ -1,31 +0,0 @@ -/* - * - * Copyright 2019 AT&T Intellectual Property - * Copyright 2019 Nokia - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -#ifndef X2AP_ENB_GENERATE_MESSAGES_H_ -#define X2AP_ENB_GENERATE_MESSAGES_H_ - -#include "X2AP-PDU.h" - -void x2ap_fetch_pdu_from_XML(X2AP_PDU_t **pdu, char *filename); - -uint32_t x2ap_generate_x2_setup_request(uint8_t **buffer); - -uint32_t x2ap_generate_x2_setup_response(uint8_t **buffer); - -#endif diff --git a/e2sim/previous/src/X2AP/x2ap_message_handler.c b/e2sim/previous/src/X2AP/x2ap_message_handler.c deleted file mode 100644 index 4fa635e..0000000 --- a/e2sim/previous/src/X2AP/x2ap_message_handler.c +++ /dev/null @@ -1,139 +0,0 @@ -/* - * - * Copyright 2019 AT&T Intellectual Property - * Copyright 2019 Nokia - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -#include -#include -#include - -#include "x2ap_message_handler.h" - -typedef int (*x2ap_message_decoded_handler)(X2AP_PDU_t *pdu, sctp_data_t *response); - -static int handle_x2_setup_request(X2AP_PDU_t *pdu, sctp_data_t *response); - -static int handle_x2_setup_response(X2AP_PDU_t *pdu, sctp_data_t *response); - -static int handle_x2_setup_failure(X2AP_PDU_t *pdu, sctp_data_t *response); - -/* Handlers matrix. Only eNB related procedure present here -/* rowID = procedureCode (start with 0) -*/ -x2ap_message_decoded_handler x2ap_messages_handler[][3] = { - { 0, 0, 0 }, /* handoverPreparation */ - { 0, 0, 0 }, /* handoverCancel */ - { 0, 0, 0 }, /* loadIndication */ - { 0, 0, 0 }, /* errorIndication */ - { 0, 0, 0 }, /* snStatusTransfer */ - { 0, 0, 0 }, /* uEContextRelease */ - { handle_x2_setup_request, handle_x2_setup_response, handle_x2_setup_failure }, /* x2Setup */ - { 0, 0, 0 }, /* reset */ - { 0, 0, 0 }, /* eNBConfigurationUpdate */ - { 0, 0, 0 }, /* resourceStatusReportingInitiation */ - { 0, 0, 0 }, /* resourceStatusReporting */ - { 0, 0, 0 }, /* privateMessage */ - { 0, 0, 0 }, /* mobilitySettingsChange */ - { 0, 0, 0 }, /* rLFIndication */ - { 0, 0, 0 }, /* handoverReport */ - { 0, 0, 0 }, /* cellActivation */ - { 0, 0, 0 }, /* x2Release */ - { 0, 0, 0 }, /* x2APMessageTransfer */ - { 0, 0, 0 }, /* x2Removal */ - { 0, 0, 0 }, /* seNBAdditionPreparation */ - { 0, 0, 0 }, /* seNBReconfigurationCompletion */ - { 0, 0, 0 }, /* meNBinitiatedSeNBModificationPreparation */ - { 0, 0, 0 }, /* seNBinitiatedSeNBModification */ - { 0, 0, 0 }, /* meNBinitiatedSeNBRelease */ - { 0, 0, 0 }, /* seNBinitiatedSeNBRelease */ - { 0, 0, 0 }, /* seNBCounterCheck */ - { 0, 0, 0 } /* retrieveUEContext */ -}; - -char *x2ap_direction2String(int x2ap_dir) -{ - static char *x2ap_direction_String[] = { - "", /* Nothing */ - "Originating message", /* originating message */ - "Successfull outcome", /* successfull outcome */ - "UnSuccessfull outcome", /* successfull outcome */ - }; - return(x2ap_direction_String[x2ap_dir]); -} - -int x2ap_eNB_handle_message(const uint8_t *const data, const int data_len, sctp_data_t* response) -{ - X2AP_PDU_t pdu; - int ret; - - memset(&pdu, 0, sizeof(pdu)); - - //printf("Decode the PDU \n"); - - if (X2AP_ASN_decode(&pdu, data, data_len) < 0){ - return -1; - } - - /* Checking procedure Code and direction of message */ - if (pdu.choice.initiatingMessage.procedureCode > sizeof(x2ap_messages_handler) - / (3 * sizeof(x2ap_message_decoded_handler)) - || (pdu.present > X2AP_PDU_PR_unsuccessfulOutcome)) { - - fprintf(stderr, "Either procedureCode %ld or direction %d exceed expected\n", - pdu.choice.initiatingMessage.procedureCode, pdu.present); - ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_X2AP_PDU, &pdu); - return -1; - } - - if (x2ap_messages_handler[pdu.choice.initiatingMessage.procedureCode][pdu.present - 1] == NULL) - { - fprintf(stderr, "No handler for procedureCode %ld in direction %s\n", - pdu.choice.initiatingMessage.procedureCode, - x2ap_direction2String(pdu.present - 1)); - ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_X2AP_PDU, &pdu); - return -1; - } - - /*calling the appropriate handler */ - ret = (*x2ap_messages_handler[pdu.choice.initiatingMessage.procedureCode][pdu.present - 1])(&pdu, response); - ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_X2AP_PDU, &pdu); - return ret; -} - -int handle_x2_setup_request(X2AP_PDU_t *pdu, sctp_data_t* response) -{ - fprintf(stderr, "Received X2 SETUP REQUEST\n"); - - /* Todo: when to generate X2 Setup Failure??? - */ - - response->len = x2ap_generate_x2_setup_response(&response->data); - - return 0; -} - -int handle_x2_setup_response(X2AP_PDU_t *pdu, sctp_data_t* response) -{ - fprintf(stderr, "Received X2 SETUP RESPONSE\n"); - return 0; -} - -int handle_x2_setup_failure(X2AP_PDU_t *pdu, sctp_data_t* response) -{ - fprintf(stderr, "Received X2 SETUP FAILURE\n"); - return 0; -} diff --git a/e2sim/previous/src/X2AP/x2ap_message_handler.cpp b/e2sim/previous/src/X2AP/x2ap_message_handler.cpp deleted file mode 100644 index f818304..0000000 --- a/e2sim/previous/src/X2AP/x2ap_message_handler.cpp +++ /dev/null @@ -1,128 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ -#include "x2ap_message_handler.hpp" - - -void x2ap_handle_sctp_data(int &socket_fd, sctp_buffer_t &data) -{ - //decode the data into X2AP-PDU - x2ap_pdu_t* pdu = new_x2ap_pdu(); - - x2ap_decode_pdu(pdu, data.buffer, data.len); - - x2ap_print_pdu(pdu); - - int index = x2ap_get_index(pdu); - int procedureCode = x2ap_get_procedureCode(pdu); - - switch(procedureCode) - { - case 6: //X2Setup - switch(index) - { - case 1: //initiatingMessage - LOG_D("[X2AP] Received X2 SETUP REQUEST"); - x2ap_handle_X2SetupRequest(pdu, socket_fd); - break; - - case 2: //successfulOutcome - LOG_D("[X2AP] Received X2 SETUP RESPONSE"); - //x2ap_handle_X2SetupResponse(pdu, socket_fd); - break; - - case 3: - LOG_D("[X2AP] Received X2 SETUP FAILURE"); - break; - - default: - LOG_E("[X2AP] Invalid message index=%d in X2AP-PDU", index); - break; - } - break; - - case 36: //ENDCX2Setup - switch(index) - { - case 1: //initiatingMessage - LOG_D("[X2AP] Received ENDC X2 SETUP REQUEST"); - x2ap_handle_ENDCX2SetupRequest(pdu, socket_fd); - break; - - case 2: //successfulOutcome - LOG_D("[X2AP] Received ENDC X2 SETUP RESPONSE"); - //x2ap_handle_X2SetupResponse(pdu, socket_fd); - break; - - case 3: - LOG_D("[X2AP] Received ENDC X2 SETUP FAILURE"); - break; - - default: - LOG_E("[X2AP] Invalid message index=%d in X2AP-PDU", index); - break; - } - break; - - default: - LOG_E("[X2AP] No available handler for procedureCode=%d", procedureCode); - break; - } -} - -void x2ap_handle_X2SetupRequest(x2ap_pdu_t* pdu, int &socket_fd) -{ - /* - Simply send back X2SetupResponse - Todo: add more handling options (failure, duplicated request, etc.) - */ - - x2ap_pdu_t* res_pdu = new_x2ap_pdu(); - eNB_config cfg; - - x2ap_create_X2SetupResponse(res_pdu, cfg); - LOG_D("[X2AP] Created X2 SETUP RESPONSE") - - x2ap_print_pdu(res_pdu); - - //encode response pdu into buffer - sctp_buffer_t res_data; - x2ap_encode_pdu(res_pdu, res_data.buffer, sizeof(res_data.buffer), res_data.len); - - //send response data over sctp - if(sctp_send_data(socket_fd, res_data) > 0) { - LOG_D("[SCTP] Sent X2 SETUP RESPONSE"); - } else { - LOG_D("[SCTP] Unable to send X2 SETUP RESPONSE to peer"); - } -} - -void x2ap_handle_X2SetupResponse(x2ap_pdu_t* pdu, int &socket_fd) -{ - ; -} - - -void x2ap_handle_ENDCX2SetupRequest(x2ap_pdu_t* pdu, int &socket_fd) -{ - /* - Simply send back ENDCX2SetupResponse - Todo: add more handling options (failure, duplicated request, etc.) - */ - ; -} diff --git a/e2sim/previous/src/X2AP/x2ap_message_handler.h b/e2sim/previous/src/X2AP/x2ap_message_handler.h deleted file mode 100644 index 9c9d6ff..0000000 --- a/e2sim/previous/src/X2AP/x2ap_message_handler.h +++ /dev/null @@ -1,30 +0,0 @@ -/* - * - * Copyright 2019 AT&T Intellectual Property - * Copyright 2019 Nokia - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -#ifndef X2AP_ENB_HANDLER_H_ -#define X2AP_ENB_HANDLER_H_ - -#include "x2ap_asn_codec.h" -#include "X2AP-PDU.h" -#include "e2sim_defs.h" -#include "x2ap_generate_messages.h" - -int x2ap_eNB_handle_message(const uint8_t *const data, const int data_len, sctp_data_t* response); - -#endif diff --git a/e2sim/previous/src/X2AP/x2ap_message_handler.hpp b/e2sim/previous/src/X2AP/x2ap_message_handler.hpp deleted file mode 100644 index b3146c7..0000000 --- a/e2sim/previous/src/X2AP/x2ap_message_handler.hpp +++ /dev/null @@ -1,35 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ -#ifndef X2AP_MESSAGE_HANDLER_HPP -#define X2AP_MESSAGE_HANDLER_HPP - -#include "e2sim_defs.h" -#include "e2sim_sctp.hpp" -#include "asn_x2ap.hpp" -#include "x2ap_asn_codec.hpp" - -void x2ap_handle_sctp_data(int &socket_fd, sctp_buffer_t &data); - -void x2ap_handle_X2SetupRequest(x2ap_pdu_t* pdu, int &socket_fd); - -void x2ap_handle_X2SetupResponse(x2ap_pdu_t* pdu, int &socket_fd); - -void x2ap_handle_ENDCX2SetupRequest(x2ap_pdu_t* pdu, int &socket_fd); - -#endif diff --git a/e2sim/previous/test/Misc/CMakeLists.txt b/e2sim/previous/test/Misc/CMakeLists.txt deleted file mode 100644 index bf6c51c..0000000 --- a/e2sim/previous/test/Misc/CMakeLists.txt +++ /dev/null @@ -1,86 +0,0 @@ -#/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -#******************************************************************************/ - -cmake_minimum_required(VERSION 3.5.1) -set(CMAKE_CXX_COMPILER "/usr/bin/g++") -set(CMAKE_CXX_STANDARD 14) - -add_definitions("-D ASN_DISABLE_OER_SUPPORT") - -project(e2sim) - -set (HOME_DIR $ENV{HOME}) -#set (E2SIM_ROOT ../../../) - -include_directories("src") -include_directories("src/SCTP/") -include_directories("src/E2AP") -include_directories("src/E2AP/E2SM") -include_directories("ASN1c") - -find_library( SCTP_LIBRARY sctp ) #needed for sctp_sendmsg - -#---------------------------------------------- -file(GLOB E2AGENT_SOURCES - "src/e2agent.cpp" - "src/e2sim_defs.cpp" - "src/SCTP/*.cpp" - "src/E2AP/*.c" - "src/E2AP/*.cpp" - "ASN1c/*.c" - ) -add_executable(e2agent ${E2AGENT_SOURCES}) -target_link_libraries( e2agent ${SCTP_LIBRARY} ) - -#---------------------------------------------- -file(GLOB RICSIM_SOURCES - "src/ric_sim.cpp" - "src/e2sim_defs.cpp" - "src/SCTP/*.cpp" - "src/E2AP/*.c" - "src/E2AP/*.cpp" - "ASN1c/*.c" - ) -add_executable(ric_sim ${RICSIM_SOURCES}) -target_link_libraries( ric_sim ${SCTP_LIBRARY} ) - - -#---------------------------------------------- -file(GLOB X2TERM_SOURCES - "src/x2term.cpp" - "src/e2sim_defs.cpp" - "src/SCTP/*.cpp" - "src/E2AP/*.c" - "src/E2AP/*.cpp" - "ASN1c/*.c" - ) -add_executable(x2term ${X2TERM_SOURCES}) -target_link_libraries( x2term ${SCTP_LIBRARY} ) - - -#----------------------------------------------- -file(GLOB TEST - "src/test_asn1c.cpp" - "src/e2sim_defs.cpp" -# "src/SCTP/*.cpp" - "ASN1c/*.c" - "src/E2AP/*.c" - "src/E2AP/E2SM/*.c" - ) -add_executable(test_asn1c ${TEST}) diff --git a/e2sim/previous/test/Misc/test_asn1c.cpp b/e2sim/previous/test/Misc/test_asn1c.cpp deleted file mode 100644 index 690f767..0000000 --- a/e2sim/previous/test/Misc/test_asn1c.cpp +++ /dev/null @@ -1,79 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -#include -#include -#include -#include -#include - -extern "C" { - #include "e2sim_defs.h" - #include "E2AP-PDU.h" - #include "e2ap_asn1c_codec.h" - #include "e2sm.h" - -} - -using namespace std; - -int main(int argc, char* argv[]){ - - LOG_I("Test ASN1c"); - - test_eventTriggerDefinition(); - return 0; - - E2AP_PDU_t* pdu = e2ap_xml_to_pdu("E2AP_X2SetupRequest.xml"); - // E2AP_PDU_t* pdu = e2ap_xml_to_pdu("E2AP_X2SetupResponse.xml"); - // E2AP_PDU_t* pdu = e2ap_xml_to_pdu("E2AP_X2SetupFailure.xml"); - - // E2AP_PDU_t* pdu = e2ap_xml_to_pdu("E2AP_ENDCX2SetupRequest.xml"); - // E2AP_PDU_t* pdu = e2ap_xml_to_pdu("E2AP_ENDCX2SetupResponse.xml"); - // E2AP_PDU_t* pdu = e2ap_xml_to_pdu("E2AP_ENDCX2SetupFailure.xml"); - - // E2AP_PDU_t* pdu = e2ap_xml_to_pdu("E2AP_RICsubscriptionRequest.xml"); - // E2AP_PDU_t* pdu = e2ap_xml_to_pdu("E2AP_RICsubscriptionResponse.xml"); - // E2AP_PDU_t* pdu = e2ap_xml_to_pdu("E2AP_ErrorIndication.xml"); - - e2ap_asn1c_print_pdu(pdu); - - /* Test encoding */ - uint8_t *buf; - sctp_buffer_t data; - - data.len = e2ap_asn1c_encode_pdu(pdu, &buf); - memcpy(data.buffer, buf, min(data.len, MAX_SCTP_BUFFER)); - - /* Test decoding */ - E2AP_PDU_t* pdu1 = new E2AP_PDU_t(); - - e2ap_asn1c_decode_pdu(pdu1, data.buffer, data.len); - - e2ap_asn1c_print_pdu(pdu1); - - int index = (int)pdu1->present; - - int pCode = e2ap_asn1c_get_procedureCode(pdu1); - - LOG_I("Index = %d, procedureCode = %d", index, pCode); - - - return 0; -} diff --git a/e2sim/previous/test/Pendulum/Pendulum_asn_codec.c b/e2sim/previous/test/Pendulum/Pendulum_asn_codec.c deleted file mode 100644 index 9b44adf..0000000 --- a/e2sim/previous/test/Pendulum/Pendulum_asn_codec.c +++ /dev/null @@ -1,180 +0,0 @@ -/* - * - * Copyright 2019 AT&T Intellectual Property - * Copyright 2019 Nokia - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -#include "Pendulum_asn_codec.h" -#include "per_decoder.h" -#include "per_encoder.h" - -#include "OCTET_STRING.h" - -static int ASN_DEBUG = 0; - -int pendulum_asn_encode(Pendulum_t *pend, uint8_t **buffer, uint32_t *len) -{ - ssize_t encoded; - assert(pend != NULL); - assert(buffer != NULL); - - encoded = aper_encode_to_new_buffer(&asn_DEF_Pendulum, 0, pend, (void **)buffer); - if(encoded < 0){ - perror("Failed to aper encode\n"); - exit(1); - } - - *len = encoded; - //ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_Pendulum, pend); - return encoded; -} - -int pendulum_asn_decode(Pendulum_t *pend, const uint8_t *const buffer, const int len) -{ - asn_dec_rval_t dec_ret; - - // THIS IS IMPORTANT, otherwise: Segmentation fault - memset(pend, 0, sizeof(*pend)); - - assert(buffer != NULL); - - dec_ret = aper_decode(NULL, &asn_DEF_Pendulum, (void **)&pend, buffer, len, 0, 0); - if (dec_ret.code != RC_OK) { - fprintf(stderr, "ERROR: Failed to decode asn1 message\n"); - return -1; - } - - if(ASN_DEBUG) - xer_fprint(stdout, &asn_DEF_Pendulum, pend); - - return 0; -} - -int pendulum_create_asn_msg(uint8_t **buffer, long sequence, - double angle, double torque, const char* msg) -{ - //Create Pendulum payload struct - Pendulum_t *pend; - - pend = calloc(1, sizeof(Pendulum_t)); - if(!pend){ - perror("calloc() failed"); - exit(1); - } - - //convert char* to PrintableString_t* - PrintableString_t *payload = calloc(1, sizeof(PrintableString_t)); - payload->buf = (uint8_t *)msg; - payload->size = strlen(msg); - - pend->strval = payload; - pend->sequence = &sequence; - pend->angle = ∠ - pend->torque = &torque; - - if (ASN_DEBUG) - xer_fprint(stdout, &asn_DEF_Pendulum, pend); - - //Encode Pendulum payload struct to asn1 buffer - uint32_t len; - if(pendulum_asn_encode(pend, buffer, &len) < 0) - { - return -1; - } - //fprintf(stderr, "len = %d\n", len); - - return len; -} - -long pendulum_get_sequence(const uint8_t *const buffer, const int len) -{ - Pendulum_t pend; - pendulum_asn_decode(&pend, buffer, len); - - return *(pend.sequence); -} - -double pendulum_get_angle(const uint8_t *const buffer, const int len) -{ - Pendulum_t pend; - pendulum_asn_decode(&pend, buffer, len); - - return *(pend.angle); -} - -double pendulum_get_torque(const uint8_t *const buffer, const int len) -{ - Pendulum_t pend; - pendulum_asn_decode(&pend, buffer, len); - - return *(pend.torque); -} - -char* pendulum_get_strval(const uint8_t *const buffer, const int len) -{ - Pendulum_t pend; - char* str; - - pendulum_asn_decode(&pend, buffer, len); - - str = (char*)pend.strval->buf; - - return str; -} - -void test_pendulum_msg(void) -{ - uint8_t *buffer = NULL; - uint32_t len = 0; - double angle = 1.9; - len = pendulum_create_asn_msg(&buffer, 0, angle, 0, NULL); - - double ex_angle = pendulum_get_angle(buffer, len); - fprintf(stderr, "Extracted angle = %f\n", ex_angle); -} - -void test_pendulum_asn1(void) -{ - fprintf(stderr, "test_pendulum_asn1\n"); - - Pendulum_t *pend; - - long sequence = 0; /* OPTIONAL */ - double angle = 1.5; /* OPTIONAL */ - //double torque = 0.7; /* OPTIONAL */ - - pend = calloc(1, sizeof(Pendulum_t)); - if(!pend){ - perror("calloc() failed"); - exit(1); - } - - pend->sequence = &sequence; - pend->angle = ∠ - //pend->torque = &torque; - - xer_fprint(stdout, &asn_DEF_Pendulum, pend); - - //encode - uint8_t *buffer = NULL; - uint32_t len; - pendulum_asn_encode(pend, &buffer, &len); - fprintf(stderr, "len = %d\n", len); - - //decode - Pendulum_t dec_pend; - pendulum_asn_decode(&dec_pend, buffer, len); -} diff --git a/e2sim/previous/test/Pendulum/Pendulum_asn_codec.h b/e2sim/previous/test/Pendulum/Pendulum_asn_codec.h deleted file mode 100644 index 3928caf..0000000 --- a/e2sim/previous/test/Pendulum/Pendulum_asn_codec.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * - * Copyright 2019 AT&T Intellectual Property - * Copyright 2019 Nokia - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -#ifndef PENDULUM_ASN_CODEC_H_ -#define PENDULUM_ASN_CODEC_H_ - -#include "Pendulum.h" - -int pendulum_asn_encode(Pendulum_t *pend, uint8_t **buffer, uint32_t *len); - -int pendulum_asn_decode(Pendulum_t *pend, const uint8_t *const buffer, const int len); - -int pendulum_create_asn_msg(uint8_t **buffer, long sequence, - double angle, double torque, const char* msg); - -long pendulum_get_sequence(const uint8_t *const buffer, const int len); - -double pendulum_get_angle(const uint8_t *const buffer, const int len); - -double pendulum_get_torque(const uint8_t *const buffer, const int len); - -char* pendulum_get_strval(const uint8_t *const buffer, const int len); - -//For testing only - -void test_pendulum_msg(void); - -void test_pendulum_asn1(void); - -#endif diff --git a/e2sim/previous/test/Pendulum/Serial/adruino_serial.c b/e2sim/previous/test/Pendulum/Serial/adruino_serial.c deleted file mode 100644 index e67465c..0000000 --- a/e2sim/previous/test/Pendulum/Serial/adruino_serial.c +++ /dev/null @@ -1,98 +0,0 @@ -/* - * - * Copyright 2019 AT&T Intellectual Property - * Copyright 2019 Nokia - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -#include "stdio.h" -#include -#include - -#include "adruino_serial.h" - -int start_serial_inferface(int baudrate, char *serial_port) -{ - int fd = -1; - - fd = serialport_init(serial_port, baudrate); - if(fd == -1) { - fprintf(stderr, "couldn't open serial port %s\n", serial_port); - return -1; - } else { - fprintf(stderr, "Openning serial port: %s ...\n", serial_port); - } - - serialport_flush(fd); // take 2 seconds - fprintf(stderr, "Serial port ready!\n"); - - return fd; - -} - -int serial_readline(int fd, char* buf, int buf_max) -{ - if( fd == -1 ){ - perror("serial port not opened"); - return -1; - } - - memset(buf, 0, buf_max); - - do { - serialport_read_until(fd, buf, SERIAL_EOL_CHAR, buf_max, SERIAL_TIMEOUT); - } while( buf[0] == '\n' ); - - // serialport_read_until(fd, buf, SERIAL_EOL_CHAR, buf_max, SERIAL_TIMEOUT); - - return 0; -} - -int serial_writeline(int fd, char* buf) -{ - if(buf[strlen(buf)-1] != SERIAL_EOL_CHAR){ - //append EOL to buf - int len = strlen(buf); - buf[len] = SERIAL_EOL_CHAR; - buf[len+1] = '\0'; - } - - serialport_write(fd, buf); - - return 0; -} - -//For testing only -void test_adruino_serial(void) -{ - int fd; - char buf[MAX_SERIAL_BUFFER]; - - fd = start_serial_inferface(DEFAULT_BAUDRATE, DEFAULT_SERIAL_PORT); - - while(1){ - fprintf(stderr, "[E2 Agent]: "); - fgets(buf, MAX_SERIAL_BUFFER, stdin); - - // serialport_write(fd, "hello\n"); - //serialport_write(fd, buf); - serial_writeline(fd, buf); - - serial_readline(fd, buf, MAX_SERIAL_BUFFER); - fprintf(stderr, "[Adruino] %s", buf); - } - - return; -} diff --git a/e2sim/previous/test/Pendulum/Serial/adruino_serial.h b/e2sim/previous/test/Pendulum/Serial/adruino_serial.h deleted file mode 100644 index c061f8a..0000000 --- a/e2sim/previous/test/Pendulum/Serial/adruino_serial.h +++ /dev/null @@ -1,40 +0,0 @@ -/* - * - * Copyright 2019 AT&T Intellectual Property - * Copyright 2019 Nokia - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -#ifndef ADRUINO_SERIAL_H -#define ADRUINO_SERIAL_H - -#include "arduino-serial-lib.h" - -#define MAX_SERIAL_BUFFER 256 -#define DEFAULT_SERIAL_PORT "/dev/ttyACM0" -#define DEFAULT_BAUDRATE 115200 -#define SERIAL_EOL_CHAR '\n' -#define SERIAL_TIMEOUT 5000 //ms - -int start_serial_inferface(int baudrate, char *serial_port); - -int serial_readline(int fd, char* buf, int buf_max); - -int serial_writeline(int fd, char* buf); - -//For testing only -void test_adruino_serial(void); - -#endif diff --git a/e2sim/previous/test/Pendulum/Serial/arduino-serial-lib.c b/e2sim/previous/test/Pendulum/Serial/arduino-serial-lib.c deleted file mode 100644 index 73cac84..0000000 --- a/e2sim/previous/test/Pendulum/Serial/arduino-serial-lib.c +++ /dev/null @@ -1,170 +0,0 @@ -/* - * - * Copyright 2019 AT&T Intellectual Property - * Copyright 2019 Nokia - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -// -// arduino-serial-lib -- simple library for reading/writing serial ports -// -// 2006-2013, Tod E. Kurt, http://todbot.com/blog/ -// - -#include "arduino-serial-lib.h" - -#include // Standard input/output definitions -#include // UNIX standard function definitions -#include // File control definitions -#include // Error number definitions -#include // POSIX terminal control definitions -#include // String function definitions -#include - -// uncomment this to debug reads -//#define SERIALPORTDEBUG - -// takes the string name of the serial port (e.g. "/dev/tty.usbserial","COM1") -// and a baud rate (bps) and connects to that port at that speed and 8N1. -// opens the port in fully raw mode so you can send binary data. -// returns valid fd, or -1 on error -int serialport_init(const char* serialport, int baud) -{ - struct termios toptions; - int fd; - - //fd = open(serialport, O_RDWR | O_NOCTTY | O_NDELAY); - fd = open(serialport, O_RDWR | O_NONBLOCK ); - - if (fd == -1) { - perror("serialport_init: Unable to open port s"); - return -1; - } - - //int iflags = TIOCM_DTR; - //ioctl(fd, TIOCMBIS, &iflags); // turn on DTR - //ioctl(fd, TIOCMBIC, &iflags); // turn off DTR - - if (tcgetattr(fd, &toptions) < 0) { - perror("serialport_init: Couldn't get term attributes"); - return -1; - } - speed_t brate = baud; // let you override switch below if needed - switch(baud) - { - case 4800: brate=B4800; break; - case 9600: brate=B9600; break; - #ifdef B14400 - case 14400: brate=B14400; break; - #endif - case 19200: brate=B19200; break; - #ifdef B28800 - case 28800: brate=B28800; break; - #endif - case 38400: brate=B38400; break; - case 57600: brate=B57600; break; - case 115200: brate=B115200; break; - } - cfsetispeed(&toptions, brate); - cfsetospeed(&toptions, brate); - - // 8N1 - toptions.c_cflag &= ~PARENB; - toptions.c_cflag &= ~CSTOPB; - toptions.c_cflag &= ~CSIZE; - toptions.c_cflag |= CS8; - // no flow control - toptions.c_cflag &= ~CRTSCTS; - - //toptions.c_cflag &= ~HUPCL; // disable hang-up-on-close to avoid reset - - toptions.c_cflag |= CREAD | CLOCAL; // turn on READ & ignore ctrl lines - toptions.c_iflag &= ~(IXON | IXOFF | IXANY); // turn off s/w flow ctrl - - toptions.c_lflag &= ~(ICANON | ECHO | ECHOE | ISIG); // make raw - toptions.c_oflag &= ~OPOST; // make raw - - // see: http://unixwiz.net/techtips/termios-vmin-vtime.html - toptions.c_cc[VMIN] = 0; - toptions.c_cc[VTIME] = 0; - //toptions.c_cc[VTIME] = 20; - - tcsetattr(fd, TCSANOW, &toptions); - if( tcsetattr(fd, TCSAFLUSH, &toptions) < 0) { - perror("init_serialport: Couldn't set term attributes"); - return -1; - } - - return fd; -} - -// -int serialport_close( int fd ) -{ - return close( fd ); -} - -// -int serialport_writebyte( int fd, uint8_t b) -{ - int n = write(fd,&b,1); - if( n!=1) - return -1; - return 0; -} - -// -int serialport_write(int fd, const char* str) -{ - int len = strlen(str); - int n = write(fd, str, len); - if( n!=len ) { - perror("serialport_write: couldn't write whole string\n"); - return -1; - } - return 0; -} - -// -int serialport_read_until(int fd, char* buf, char until, int buf_max, int timeout) -{ - char b[1]; // read expects an array, so we give it a 1-byte array - int i=0; - do { - int n = read(fd, b, 1); // read a char at a time - if( n==-1) return -1; // couldn't read - if( n==0 ) { - usleep( 1 * 1000 ); // wait 1 msec try again - timeout--; - if( timeout==0 ) return -2; - continue; - } -#ifdef SERIALPORTDEBUG - fprintf(stderr, "serialport_read_until: i=%d, n=%d b='%c'\n",i,n,b[0]); // debug -#endif - buf[i] = b[0]; - i++; - } while( b[0] != until && i < buf_max && timeout>0 ); - - buf[i] = 0; // null terminate the string - return 0; -} - -// -int serialport_flush(int fd) -{ - sleep(2); //required to make flush work, for some reason - return tcflush(fd, TCIOFLUSH); -} diff --git a/e2sim/previous/test/Pendulum/Serial/arduino-serial-lib.h b/e2sim/previous/test/Pendulum/Serial/arduino-serial-lib.h deleted file mode 100644 index 74fe592..0000000 --- a/e2sim/previous/test/Pendulum/Serial/arduino-serial-lib.h +++ /dev/null @@ -1,39 +0,0 @@ -/* - * - * Copyright 2019 AT&T Intellectual Property - * Copyright 2019 Nokia - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -// -// arduino-serial-lib -- simple library for reading/writing serial ports -// -// 2006-2013, Tod E. Kurt, http://todbot.com/blog/ -// - - -#ifndef __ARDUINO_SERIAL_LIB_H__ -#define __ARDUINO_SERIAL_LIB_H__ - -#include // Standard types - -int serialport_init(const char* serialport, int baud); -int serialport_close(int fd); -int serialport_writebyte( int fd, uint8_t b); -int serialport_write(int fd, const char* str); -int serialport_read_until(int fd, char* buf, char until, int buf_max,int timeout); -int serialport_flush(int fd); - -#endif diff --git a/e2sim/previous/test/Pendulum/demo_setup.txt b/e2sim/previous/test/Pendulum/demo_setup.txt deleted file mode 100644 index 03cd1d6..0000000 --- a/e2sim/previous/test/Pendulum/demo_setup.txt +++ /dev/null @@ -1,14 +0,0 @@ -# DEMO March 20, 2019 - ## E2 Agent Laptop with IP x.x.x.x - - Connect to adruino via USB - - Connect to E2 Termination Desktop via Ethernet - - Run E2 Agent: $E2SIM_DIR/build/e2sim x.x.x.x - - ## E2 Termination Desktop - - Run xApp - cd $E2SIM_DIR/rmr_interface/tests/pendulum_xapp - bash run_receiver - - - Run E2 Termination - cd $E2SIM_DIR - ./build_and_run_e2sim diff --git a/e2sim/previous/test/Pendulum/e2sim_closedloop.c b/e2sim/previous/test/Pendulum/e2sim_closedloop.c deleted file mode 100644 index 613ce57..0000000 --- a/e2sim/previous/test/Pendulum/e2sim_closedloop.c +++ /dev/null @@ -1,263 +0,0 @@ -/* - * - * Copyright 2019 AT&T Intellectual Property - * Copyright 2019 Nokia - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - - -#include -#include -#include -#include -#include -#include //for close() -#include //for inet_ntop() - -#include "e2sim_defs.h" -#include "e2sim_sctp.h" -#include "x2ap_message_handler.h" - -//OSN 2019 -#include "Pendulum_asn_codec.h" -#include "adruino_serial.h" - -//rmr -#include -#include -#include -#include "rmr_wrapper.h" - -static void pendulum_control_E2_agent(int client_fd) -{ - fprintf(stderr, "--------------------------------------\n"); - fprintf(stderr, "E2 AGENT - START PENDULUM CONTROL\n"); - fprintf(stderr, "--------------------------------------\n"); - - uint8_t *buffer; - uint32_t len; - clock_t begin; - double rtt; //ms - - uint8_t recv_buf[MAX_SCTP_BUFFER]; - int recv_len; - - double angle; - double torque; - long sqn; - int count = 0; - - //serial - // int serial_fd; - char serial_buffer[MAX_SERIAL_BUFFER]; - // serial_fd = start_serial_inferface(DEFAULT_BAUDRATE, DEFAULT_SERIAL_PORT); - // - // char *delay_str_prev = "$0#\n"; - // //char *delay_str_new; - // - // int MSG_NUM = 10; - // - // //Always start with 0 delay - // serialport_write(serial_fd, "$0#\n"); - - // for(int i = 0; i < MSG_NUM; i++) - while(1) - { - - fprintf(stderr, "----------------\n"); - count += 1; - buffer = NULL; - len = 0; - - // //1.Read from serial - // serial_readline(serial_fd, serial_buffer, MAX_SERIAL_BUFFER); - // if(serial_buffer[0] == '\n') - // { - // //fprintf(stderr, "RECEIVED EOL\n"); - // continue; - // } - // //fprintf(stderr, "[Adruino] %s", serial_buffer); - usleep(5*1000); - - snprintf(serial_buffer, sizeof(serial_buffer)-1, "E2 AGENT PING"); - - begin = clock(); - - //2. Encode pendulum angle to ASN1 message - - len = pendulum_create_asn_msg(&buffer, 0, 0, 0, serial_buffer); - - //3. Send ASN1 message to socket - if(sctp_send_to_socket(client_fd, buffer, (size_t)len) > 0){ - fprintf(stderr, "Sent ASN1 message to E2 Termination\n"); - } - - // 4. Receive response from E2 Termination - memset(recv_buf, 0, sizeof(recv_buf)); - recv_len = 0; - recv_len = recv(client_fd, &recv_buf, sizeof(recv_buf), 0); - if(recv_len == -1) - { - perror("recv()"); - return; - } - - char *recv_str; - recv_str = pendulum_get_strval(recv_buf, recv_len); - fprintf(stderr, "Received response message #%d from xApp: %s\n", count, recv_str); - - // 5. TODO: Send response to serial - // Compare if delay has changed: - // if(strcmp(delay_str_prev, recv_str) != 0) { - // serial_writeline(serial_fd, recv_str); - // } - - //serial_writeline(serial_fd, recv_str); - - //Write to a file - FILE *f; - f = fopen("arduino_delay.txt", "w"); - fprintf(f, "%s", recv_str); - fclose(f); - - begin = clock() - begin; - rtt = 1000*((double)begin)/CLOCKS_PER_SEC; // in ms - fprintf(stderr, "E2Agent-RIC-E2Agent RTT = %f ms\n", rtt); - - } - - close(client_fd); -} - -int main(int argc, char *argv[]) -{ - fprintf(stderr, "E2 AGENT - PENDULUM CONTROL. Version %s\n", VERSION); - - // char *recv_str = "9"; - // int delay; - // - // printf("delay = %d\n", atoi(recv_str)); - // - // long delay = 22.5; - // - // printf("delay = %d\n", (int)delay); - // return 0; - - // test_rmr(); return 0; - // test_adruino_serial(); return 0; - - char* server_ip = DEFAULT_SCTP_IP; - int server_port = X2AP_SCTP_PORT; - - int server_fd; - int client_fd; - struct sockaddr client_addr; - socklen_t client_addr_size; - - //read input - if(argc == 3) //user provided IP and PORT - { - server_ip = argv[1]; - server_port = atoi(argv[2]); - if(server_port < 1 || server_port > 65535) { - fprintf(stderr, "Invalid port number (%d). Valid values are between 1 and 65535.\n" , server_port); - return -1; - } - } - else if(argc == 2) //user provided only IP - { - server_ip = argv[1]; - } - else if(argc == 1) - { - server_ip = DEFAULT_SCTP_IP; - } - else - { - fprintf(stderr, "Unrecognized option.\n"); - fprintf(stderr, "Usage: %s [SERVER IP ADDRESS] [SERVER PORT]\n", argv[0]); - return -1; - } - - server_fd = sctp_start_server(server_ip, server_port); - - fprintf(stderr, "Waiting for connection...\n"); - client_fd = accept(server_fd, &client_addr, &client_addr_size); - if(client_fd == -1){ - perror("accept()"); - close(client_fd); - return -1; - } - - //Todo: retrieve client ip addr - struct sockaddr_in* client_ipv4 = (struct sockaddr_in*)&client_addr; - char client_ip_addr[INET_ADDRSTRLEN]; - inet_ntop(AF_INET, &(client_ipv4->sin_addr), client_ip_addr, INET_ADDRSTRLEN); - - fprintf(stderr, "New client connected from %s\n", client_ip_addr); - - // while(1) //put while loop if want to receive from multiple clients - // { - uint8_t recv_buf[MAX_SCTP_BUFFER]; - int recv_len = 0; - - memset(recv_buf, 0, sizeof(recv_buf)); - - fprintf(stderr, "------------------------\n"); - recv_len = recv(client_fd, &recv_buf, sizeof(recv_buf), 0); - if(recv_len == -1) - { - perror("recv()"); - return -1; - } - else if(recv_len == 0) - { - fprintf(stderr, "\nConnection from %s closed by remote peer\n", client_ip_addr); - if(close(client_fd) == -1) - { - perror("close"); - } - return -1; - } - - //fprintf(stderr, "Received a message of size %d\n", recv_len); - - //TODO: check PPID here before calling x2ap handler - - sctp_data_t response = {NULL, 0}; - x2ap_eNB_handle_message(recv_buf, recv_len, &response); - - //======================================================================= - //reply to client - assert(response.data != NULL); - if(sctp_send_to_socket(client_fd, response.data, (size_t)response.len) > 0){ - fprintf(stderr, "Sent X2 SETUP RESPONSE \n"); - } else{ - perror("send to socket"); - return -1; - } - - fprintf(stderr, "X2 Setup Completed \n"); - - //========================================================================= - // Pendulum interaction - // Send pendulum state to E2 Termination and receive response - pendulum_control_E2_agent(client_fd); - // } //end while - - close(client_fd); - - return 0; -} diff --git a/e2sim/previous/test/Pendulum/e2sim_serial.c b/e2sim/previous/test/Pendulum/e2sim_serial.c deleted file mode 100644 index 33fa0ba..0000000 --- a/e2sim/previous/test/Pendulum/e2sim_serial.c +++ /dev/null @@ -1,56 +0,0 @@ -/* - * - * Copyright 2019 AT&T Intellectual Property - * Copyright 2019 Nokia - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -#include -#include -#include -#include -#include -#include "e2sim_defs.h" -#include - -#include "adruino_serial.h" - -int main(int argc, char *argv[]) -{ - int fd; - char buf[MAX_SERIAL_BUFFER]; - - fd = start_serial_inferface(DEFAULT_BAUDRATE, DEFAULT_SERIAL_PORT); - - while(1) - { - //usleep(5*1000); //sleep 5ms between read - sleep(1); - - FILE *f; - f = fopen("arduino_delay.txt", "r"); - assert(f); - - fread(buf, 1, sizeof(buf), f); - - printf("delay content = %s \n", buf); - - serial_writeline(fd, buf); - - fclose(f); - } - - return 0; -} diff --git a/e2sim/previous/test/Pendulum/e2sim_test_client.c b/e2sim/previous/test/Pendulum/e2sim_test_client.c deleted file mode 100644 index b178ff7..0000000 --- a/e2sim/previous/test/Pendulum/e2sim_test_client.c +++ /dev/null @@ -1,378 +0,0 @@ -/* - * - * Copyright 2019 AT&T Intellectual Property - * Copyright 2019 Nokia - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -#include -#include -#include -#include //for close() -#include -#include -#include -#include -#include //for inet_ntop() -#include - -#include "e2sim_defs.h" -#include "e2sim_sctp.h" -#include "x2ap_message_handler.h" - -#include "x2ap_generate_messages.h" - -//OSN 2019 -#include "Pendulum_asn_codec.h" - -//rmr -#include -#include -#include -#include "rmr_wrapper.h" - -//time -#include - -//these are the metrics being sent to the a1 mediator -int ave_ric_rtt_last_epoch=0; -int ave_msg_rate_last_epoch=0; -int ave_pendulum_msg_rate_last_epoch=0; - -int total_rtt_current_epoch=0; -int total_messages_current_epoch=0; -int total_pendulum_messages_current_epoch=0; - -int total_rtt_entries_current_epoch=0; - -int epoch_duration = 1;//in seconds - -long rtt_epoch_start_time =0; - -long msg_rate_epoch_start_time =0; -long pendulum_msg_rate_epoch_start_time = 0; - -long current_timestamp_in_us(){ - struct timeval currentTime; - gettimeofday(¤tTime, NULL); - return currentTime.tv_sec * (int)1e6 + currentTime.tv_usec; -} -void update_rtt_metrics(long rtt){//called every time there is a new rtt measurement - if(rtt_epoch_start_time == 0) - rtt_epoch_start_time = current_timestamp_in_us(); //start of a new epoch - - total_rtt_current_epoch = total_rtt_current_epoch+rtt; - total_rtt_entries_current_epoch++; - - if((current_timestamp_in_us() - rtt_epoch_start_time) > (epoch_duration*1000000)){//an epoch has passed - ave_ric_rtt_last_epoch = total_rtt_current_epoch/total_rtt_entries_current_epoch; - total_rtt_current_epoch =0; - rtt_epoch_start_time = 0; - } -} - -void update_msg_rate_metrics(){ - if(msg_rate_epoch_start_time == 0) - msg_rate_epoch_start_time= current_timestamp_in_us(); //start of a new epoch - total_messages_current_epoch++; - if((current_timestamp_in_us() - msg_rate_epoch_start_time) > (epoch_duration*1000000)){//an epoch has passed - ave_msg_rate_last_epoch = total_messages_current_epoch; - total_messages_current_epoch =0; - msg_rate_epoch_start_time =0; - } -} - -void update_pendulum_control_rate() -{ - if(pendulum_msg_rate_epoch_start_time == 0) - pendulum_msg_rate_epoch_start_time = current_timestamp_in_us(); //start of a new epoch - total_pendulum_messages_current_epoch++; - - if((current_timestamp_in_us() - pendulum_msg_rate_epoch_start_time) > (epoch_duration*1000000)){//an epoch has passed - ave_pendulum_msg_rate_last_epoch = total_pendulum_messages_current_epoch; - total_pendulum_messages_current_epoch = 0; - pendulum_msg_rate_epoch_start_time = 0; - } - -} - -void send_metrics_to_a1_med(struct rmr_context *rmr_c){ - int mtype=103; - char* metrics= malloc(1024); - int time_int = current_timestamp_in_us()/1000000; - //int ave_msg_rate_last_epoch=500; - snprintf(metrics, 1024, "{%s:%d, %s:%d, %s:%d, %s:%d}", \ - "\"latency\"", ave_ric_rtt_last_epoch/1000, \ - "\"ricload\"",ave_msg_rate_last_epoch, \ - "\"load\"",ave_pendulum_msg_rate_last_epoch, \ - "\"time\"",time_int); - rmr_send_wrapper(rmr_c, mtype, metrics); - printf("Sent message of type:%d to a1_med with content:%s\n",mtype,metrics); -} - -void forward_to_load_consumer(struct rmr_context *rmr_c){//the content does not matter - int mtype=105; - char* load_message="dummy load"; - rmr_send_wrapper(rmr_c, mtype, load_message); - printf("Sent message of type:%d to load consumer with content:%s\n",mtype,load_message); -} - -static void pendulum_control_E2_Termination(int client_fd) -{ - printf("--------------------------------------\n"); - printf("E2 TERMINATION - START PENDULUM CONTROL\n"); - printf("--------------------------------------\n"); - - uint8_t *send_buffer; - uint8_t recv_buffer[1024]; - uint32_t send_len; - uint32_t recv_len; - - clock_t begin = clock(); - double rtt; - double rtt_stats[100000]; - long recv_count = 0; - long fail_count = -1; //ignore the first message (see adruino code) - - long sqn; - int count = 0; - - //================================= - - //Setup context - struct rmr_context *rmr_c; //obtain our enhanced rmr_context - int mtype = 0; // we can loop through several message types - char* lport = "43086"; // default listen port - long rcount = 0; // number of acks received - - if( (eparm = getenv( "E2TERM_RMR_RCV_PORT" )) != NULL ) { - lport = strdup( eparm ); - } - - rmr_c = rmr_init_wrapper(lport); - - while( ! rmr_ready( rmr_c->mrc ) ) { - fprintf( stderr, " waiting for RMR to indicate ready\n" ); - sleep( 1 ); - } - fprintf( stderr, "[OK] initialisation complete\n" ); - - - //================================== - long loop_start_time = 0; - while(1){ - printf("----------------\n"); - count += 1; - loop_start_time = current_timestamp_in_us(); - //0. Receiving ASN message from E2 Agent - memset(recv_buffer, 0, sizeof(recv_buffer)); - printf("Time to receive asn message after starting main loop: %ld microseconds \n",current_timestamp_in_us() - loop_start_time); - recv_len = 0; - - printf(" 1Time to receive asn message after starting main loop: %ld microseconds \n",current_timestamp_in_us() - loop_start_time); - //long time_of_message_from_e2agent = current_timestamp_in_us(); - - if((recv_len = recv(client_fd, &recv_buffer, sizeof(recv_buffer), 0)) == -1) { - perror("recv"); - return; - } - - long time_of_message_from_e2agent = current_timestamp_in_us(); - - printf(" 2Time to receive asn message after starting main loop: %ld microseconds \n",current_timestamp_in_us() - loop_start_time); - if(recv_len == 0) { - rmr_close_wrapper(rmr_c); - - printf("Connection from closed by remote peer.\n"); - if(close(client_fd) == -1) { - perror("close"); - } - return; - } - - printf(" 3Time to receive asn message after starting main loop: %ld microseconds \n",current_timestamp_in_us() - loop_start_time); - // begin = clock() - begin; - // rtt = 1000*((double)begin)/CLOCKS_PER_SEC; // in ms - //printf("E2Term-Adruino-E2Term = %f ms\n", rtt); - - //2. Decode ASN message and Extract pendulum angle - char *recv_str; - recv_str = pendulum_get_strval(recv_buffer, recv_len); - // if( (strcmp(recv_str, "-1") == 0) || (strcmp(recv_str, "") == 0) ) - - if(strcmp(recv_str, "\n") == 0) - { - printf("RECEIVED EOL\n"); - } - - printf(" 4Time to receive asn message after starting main loop: %ld microseconds \n",current_timestamp_in_us() - loop_start_time); - // if(atof(recv_str) <= 0) - // { - // printf("FAILLLLLL\n"); - // fail_count += 1; - // } - // else { - // rtt_stats[recv_count] = atof(recv_str); - // recv_count++; - // } - - printf("Time to receive angle message from arduino after starting main loop: %ld microseconds \n",current_timestamp_in_us() - loop_start_time); - printf("Received message #%d from Adruino: %s\n", count, recv_str); - //printf("Last reported RTT (Adruino-RIC-Adruino): %f ms, fail_count = %ld\n", - // atof(recv_str)/1000, fail_count); - - // 3. [BHARATH] send_to_xApp(&pendulum_state, &response) - // while(1) { - // usleep( 10 ); - // char* message = "foo 111"; - char reply[1024]; - int got_pend_control=0; - rmr_send_wrapper(rmr_c, mtype, recv_str ); - printf("Sent message of type:%d to pendulum xApp with content:%s\n",mtype,recv_str); - long angle_receive_time =0; - while (got_pend_control == 0){ - if(rmr_poll_for_message(rmr_c) == 1) { - update_msg_rate_metrics(); - switch(rmr_c->rbuf->mtype) { - case 33 : - angle_receive_time = current_timestamp_in_us(); - got_pend_control=1; - update_pendulum_control_rate(); //add this - strcpy(reply,rmr_c->rbuf->payload); - printf("Received control message from pendulum xapp with message type: %d and content %s\n",rmr_c->rbuf->mtype, reply); - break; - case 102 : - printf("Received METRIC request from A1 mediator with message type: %d and content %s\n",rmr_c->rbuf->mtype,rmr_c->rbuf->payload); - send_metrics_to_a1_med(rmr_c); - break; - case 104 : - printf("***************************Received load from load generator****************************"); - forward_to_load_consumer(rmr_c); - break; - default : - continue; - } - } - - } - printf("Time to receive control message from xapp after starting main loop: %ld microseconds \n",current_timestamp_in_us() - loop_start_time); -// snprintf(reply, 1024, "$%d#\n", (int)ave_ric_rtt_last_epoch/1000); - send_len = pendulum_create_asn_msg(&send_buffer, 0, 0, 0, reply); - printf("Time to create asn message after receiving angle: %ld microseconds\n",current_timestamp_in_us() - angle_receive_time); - begin = clock(); - - //6. Send ASN1 message to socket - if(sctp_send_to_socket(client_fd, send_buffer, (size_t)send_len) > 0){ - printf("Sent ASN1 response to E2 Agent\n"); - } - long time_of_reply_to_e2agent = current_timestamp_in_us(); - printf("Time to send asn message after receiving angle: %ld microseconds \n",current_timestamp_in_us() - angle_receive_time); - long rtt = (time_of_reply_to_e2agent - time_of_message_from_e2agent); - ave_ric_rtt_last_epoch = rtt; - printf("RIC RTT is %lf milliseconds\n", rtt/1000.0); - //update_rtt_metrics(rtt); - } - - rmr_close_wrapper(rmr_c); - -} - -int main(int argc, char* argv[]) -{ - // test_rmr(); return 0; - - const char* server_ip = DEFAULT_SCTP_IP; - int server_port = X2AP_SCTP_PORT; - - //read input - if(argc == 3) //user provided IP and PORT - { - server_ip = argv[1]; - server_port = atoi(argv[2]); - if(server_port < 1 || server_port > 65535) { - printf("Invalid port number (%d). Valid values are between 1 and 65535.\n", server_port); - return 1; - } - } - else if(argc == 2) //user provided only IP - { - server_ip = argv[1]; - } - else if(argc == 1) - { - server_ip = DEFAULT_SCTP_IP; - } - else - { - printf("Unrecognized option.\n"); - printf("Usage: %s [SERVER IP ADDRESS] [SERVER PORT]\n", argv[0]); - return 0; - } - - int client_fd; - client_fd = sctp_start_client(server_ip, server_port); - - uint8_t *buffer; - uint32_t len; - - //Note: put a while(1) loop here if want client to stay - // for(int i = 0; i < 3; i++) - // { - buffer = NULL; - len = 0; - - printf("------------------------\n"); - clock_t begin; - begin = clock(); - - //Create pdu for x2 message and send to socket - len = x2ap_generate_x2_setup_request(&buffer); - if(sctp_send_to_socket(client_fd, buffer, (size_t)len) > 0){ - printf("Sent X2 SETUP REQUEST\n"); - } - - //======================================================================= - //printf("waiting for server response\n"); - uint8_t recv_buf[MAX_SCTP_BUFFER]; - int recv_len = 0; - - //sctp_recv_from_socket(client_fd, recv_buf, sizeof(recv_buf)); - memset(recv_buf, 0, sizeof(recv_buf)); - recv_len = recv(client_fd, &recv_buf, sizeof(recv_buf), 0); - if(recv_len == -1) - { - perror("recv()"); - return -1; - } - - //printf("Received a message of size %d\n", recv_len); - x2ap_eNB_handle_message(recv_buf, recv_len, NULL); - - begin = clock() - begin; - double time_taken = 1000*((double)begin)/CLOCKS_PER_SEC; // in ms - printf("Close-loop time: %f ms \n", time_taken); - printf("X2 Setup Completed \n"); - - // } //end iteration - - //========================================================================= - // Pendulum interaction - // Receive pendulum state from E2 Agent and send response - pendulum_control_E2_Termination(client_fd); - - close(client_fd); - - return 0; -} diff --git a/e2sim/previous/test/Pendulum/e2termination_test.cpp b/e2sim/previous/test/Pendulum/e2termination_test.cpp deleted file mode 100644 index b65ac65..0000000 --- a/e2sim/previous/test/Pendulum/e2termination_test.cpp +++ /dev/null @@ -1,223 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -#include -#include -#include -#include - - -#include "e2sim_defs.h" -#include "asn_e2ap.hpp" -#include "e2sim_sctp.hpp" -#include "e2ap_message_handler.hpp" -#include "e2ap_asn_codec.hpp" - -using namespace std; - -void test_send_X2Setup(int &client_fd) -{ - //Create X2SetupRequest message - e2ap_pdu_t* pdu = new_e2ap_pdu(); - eNB_config cfg; - - e2ap_create_X2SetupRequest(pdu, cfg); - e2ap_print_pdu(pdu); - - //Encode into buffer - sctp_buffer_t data; - e2ap_encode_pdu(pdu, data.buffer, sizeof(data.buffer), data.len); - - //Send to sctp - sctp_send_data(client_fd, data); - LOG_I("[SCTP] Sent X2 SETUP REQUEST"); - - //wait to receive response - sctp_buffer_t recv_buf; - if(sctp_receive_data(client_fd, recv_buf) > 0) - { - LOG_I("[SCTP] Received new data of size %d", recv_buf.len); - e2ap_handle_sctp_data(client_fd, recv_buf); - } - - } - -void test_send_ENDCX2Setup(int &client_fd) -{ - //Create ENDCX2SetupRequest message - e2ap_pdu_t* pdu = new_e2ap_pdu(); - eNB_config cfg; - - e2ap_create_ENDCX2SetupRequest(pdu, cfg); - e2ap_print_pdu(pdu); - - //Encode into buffer - sctp_buffer_t data; - e2ap_encode_pdu(pdu, data.buffer, sizeof(data.buffer), data.len); - - //Send to sctp - sctp_send_data(client_fd, data); - LOG_I("[SCTP] Sent ENDC X2 SETUP REQUEST"); - - //wait to receive response - sctp_buffer_t recv_buf; - if(sctp_receive_data(client_fd, recv_buf) > 0) - { - LOG_I("[SCTP] Received new data of size %d", recv_buf.len); - e2ap_handle_sctp_data(client_fd, recv_buf); - } - -} - -void test_send_RICSubscriptionRequest(int &client_fd) -{ - LOG_I("Test RIC SUBSCRIPTION"); - - /* Create RIC SUBSCRITION REQUEST */ - e2ap_pdu_t* pdu = new_e2ap_pdu(); - - RICsubscription_params_t params; - params.request_id = 2; - params.seq_number = 200; - params.ran_func_id = 0; - params.event_trigger_def = "hello world"; - - RIC_action_t action1(1, RICactionType_report); - // RIC_action_t action2(3, RICactionType_insert); - // RIC_action_t action3(5, RICactionType_insert); - // RIC_action_t action4(7, RICactionType_insert); - params.actionList.push_back(action1); - // params.actionList.push_back(action2); - // params.actionList.push_back(action3); - // params.actionList.push_back(action4); - - e2ap_create_RICsubscriptionRequest(pdu, params); - e2ap_print_pdu(pdu); - - //Encode into buffer - sctp_buffer_t data; - e2ap_encode_pdu(pdu, data.buffer, sizeof(data.buffer), data.len); - - //Send to sctp - sctp_send_data(client_fd, data); - LOG_I("[SCTP] Sent RIC SUBSCRIPTION REQUEST"); - - //wait to receive response and indication (if any) - sctp_buffer_t recv_buf; - LOG_I("[SCTP] Waiting for SCTP data"); - while(1) - { - if(sctp_receive_data(client_fd, recv_buf) > 0) - { - LOG_I("[SCTP] Received new data of size %d", recv_buf.len); - e2ap_handle_sctp_data(client_fd, recv_buf); - } - else - break; - - } - - - return; - //========================================================================== - - //decode - e2ap_pdu_t* pdu2 = new_e2ap_pdu(); - - e2ap_decode_pdu(pdu2, data.buffer, data.len); - - RICsubscription_params_t params2; - e2ap_parse_RICsubscriptionRequest(pdu2, params2); - printf("request_id = %d\n", params2.request_id); - printf("seq_number = %d\n", params2.seq_number); - printf("ran_func_id = %d\n", params2.ran_func_id); - printf("event = %s\n", ¶ms2.event_trigger_def[0]); - - for( auto const &a : params.actionList) - { - printf("action id = %d, action type = %d\n", (int)a.action_id, (int)a.action_type); - } - - - LOG_I("================= RESPONSE ==========================="); - for(size_t i = 0; i < params2.actionList.size(); i++) - { - //example logic: admit every other action - if(i%2 == 0) { - params2.actionList[i].isAdmitted = true; - } else { - params2.actionList[i].isAdmitted = false; - params2.actionList[i].notAdmitted_cause = RICcause_radioNetwork; - params2.actionList[i].notAdmitted_subCause = 5; - } - } - - e2ap_pdu_t* res_pdu = new_e2ap_pdu(); - e2ap_create_RICsubscriptionResponse(res_pdu, params2); - - e2ap_print_pdu(res_pdu); - - //Encode into buffer - sctp_buffer_t data_resp; - e2ap_encode_pdu(res_pdu, data_resp.buffer, sizeof(data_resp.buffer), data_resp.len); - - LOG_I("================= FAILURE ==========================="); - e2ap_pdu_t* fail_pdu = new_e2ap_pdu(); - - RICsubscription_params_t params3; - e2ap_parse_RICsubscriptionRequest(pdu2, params3); - - for(size_t i = 0; i < params3.actionList.size(); i++) - { - params3.actionList[i].isAdmitted = false; - params3.actionList[i].notAdmitted_cause = RICcause_radioNetwork; - params3.actionList[i].notAdmitted_subCause = 5; - } - - e2ap_create_RICsubscriptionFailure(fail_pdu, params3); - e2ap_print_pdu(fail_pdu); - - //Encode into buffer - sctp_buffer_t data_fail; - e2ap_encode_pdu(fail_pdu, data_fail.buffer, sizeof(data_fail.buffer), data_fail.len); - -} - -int main(int argc, char* argv[]){ - - LOG_I("E2 Termination Test"); - - // test_send_RICSubscriptionRequest(); - // return 0; - - options_t ops = read_input_options(argc, argv); - int client_fd = sctp_start_client(ops.server_ip, ops.server_port); - - //--------------------------------------------------- - // test_send_X2Setup(client_fd); - test_send_ENDCX2Setup(client_fd); - test_send_RICSubscriptionRequest(client_fd); - - //--------------------------------------------------- - - close(client_fd); - LOG_I("[SCTP] Connection closed."); - - return 0; -} diff --git a/e2sim/previous/test/Pendulum/pendulum.asn1 b/e2sim/previous/test/Pendulum/pendulum.asn1 deleted file mode 100644 index 686d2c0..0000000 --- a/e2sim/previous/test/Pendulum/pendulum.asn1 +++ /dev/null @@ -1,12 +0,0 @@ -PendulumModule DEFINITIONS AUTOMATIC TAGS ::= - -BEGIN - -Pendulum ::= SEQUENCE { - sequence INTEGER OPTIONAL, - angle REAL OPTIONAL, - torque REAL OPTIONAL, - strval PrintableString OPTIONAL -} - -END diff --git a/e2sim/previous/test/WLG/CMakeLists.txt b/e2sim/previous/test/WLG/CMakeLists.txt deleted file mode 100644 index 4faee6a..0000000 --- a/e2sim/previous/test/WLG/CMakeLists.txt +++ /dev/null @@ -1,59 +0,0 @@ -#/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -#******************************************************************************/ - -cmake_minimum_required(VERSION 3.5.1) -set(CMAKE_CXX_COMPILER "/usr/bin/g++") -set(CMAKE_CXX_STANDARD 14) - -add_definitions("-D ASN_DISABLE_OER_SUPPORT") - -set (E2SIM_ROOT ../../) - -include_directories("${E2SIM_ROOT}/src") -include_directories("${E2SIM_ROOT}/src/DEF") -include_directories("${E2SIM_ROOT}/src/SCTP/") -include_directories("${E2SIM_ROOT}/src/E2AP") -include_directories("${E2SIM_ROOT}/src/E2AP/E2SM") -include_directories("${E2SIM_ROOT}/ASN1c") - -find_library( SCTP_STD_LIB sctp ) #needed for sctp_sendmsg - -#---------------------------------------------- -file(GLOB WLG_SOURCES - "${E2SIM_ROOT}/test/WLG/ric_wlg.cpp" - "${E2SIM_ROOT}/src/DEF/*.cpp" - "${E2SIM_ROOT}/src/SCTP/*.cpp" - "${E2SIM_ROOT}/src/E2AP/*.c" - "${E2SIM_ROOT}/src/E2AP/*.cpp" - "${E2SIM_ROOT}/ASN1c/*.c" - ) -add_executable(ric_wlg ${WLG_SOURCES}) -target_link_libraries( ric_wlg ${SCTP_STD_LIB} ) - -#---------------------------------------------- -file(GLOB RICPERF_SOURCES - "${E2SIM_ROOT}/test/WLG/ric_perf.cpp" - "${E2SIM_ROOT}/src/DEF/*.cpp" - "${E2SIM_ROOT}/src/SCTP/*.cpp" - "${E2SIM_ROOT}/src/E2AP/*.c" - "${E2SIM_ROOT}/src/E2AP/*.cpp" - "${E2SIM_ROOT}/ASN1c/*.c" - ) -add_executable(ric_perf ${RICPERF_SOURCES}) -target_link_libraries( ric_perf ${SCTP_STD_LIB} ) diff --git a/e2sim/previous/test/WLG/build_wlg.sh b/e2sim/previous/test/WLG/build_wlg.sh deleted file mode 100755 index 2f81b56..0000000 --- a/e2sim/previous/test/WLG/build_wlg.sh +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/bash -#/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -#******************************************************************************/ - -set -e - -mkdir -p build -cd build -rm -rf CMakeCache.txt -cmake .. -make -j`nproc` diff --git a/e2sim/previous/test/WLG/ric_perf.cpp b/e2sim/previous/test/WLG/ric_perf.cpp deleted file mode 100644 index 9403283..0000000 --- a/e2sim/previous/test/WLG/ric_perf.cpp +++ /dev/null @@ -1,287 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -#include -#include -#include - -#include "e2sim_sctp.hpp" -#include "e2ap_message_handler.hpp" - -extern "C" { - #include "e2sim_defs.h" - #include "E2AP-PDU.h" - #include "e2ap_asn1c_codec.h" - - #include "ProtocolIE-Field.h" -} - -using namespace std; - -void encode_and_send_sctp_data(E2AP_PDU_t* pdu, int client_fd) -{ - uint8_t *buf; - sctp_buffer_t data; - - data.len = e2ap_asn1c_encode_pdu(pdu, &buf); - memcpy(data.buffer, buf, min(data.len, MAX_SCTP_BUFFER)); - - sctp_send_data(client_fd, data); -} - -void wait_for_sctp_data(int client_fd) -{ - sctp_buffer_t recv_buf; - if(sctp_receive_data(client_fd, recv_buf) > 0) - { - LOG_I("[SCTP] Received new data of size %d", recv_buf.len); - e2ap_handle_sctp_data(client_fd, recv_buf); - } -} - -void set_seqnum(E2AP_PDU_t* pdu) -{ - InitiatingMessage_t *initiatingMessage = pdu->choice.initiatingMessage; - // xer_fprint(stdout, &asn_DEF_InitiatingMessage, (void *)initiatingMessage); - - RICsubscriptionRequest_t *request = &initiatingMessage->value.choice.RICsubscriptionRequest; - xer_fprint(stdout, &asn_DEF_RICsubscriptionRequest, (void *)request); - - LOG_I("num of IEs = %d", request->protocolIEs.list.count); - - RICsubscriptionRequest_IEs_t *ie; - - ie = request->protocolIEs.list.array[2]; - - xer_fprint(stdout, &asn_DEF_RICsubscription, (void *)ie); - - // e2ap_asn1c_print_pdu(pdu); -} - -int subresponse_get_sequenceNum(E2AP_PDU_t* pdu) -{ - SuccessfulOutcome_t *responseMsg = pdu->choice.successfulOutcome; - - RICrequestID_t *requestid; - - int num_IEs = responseMsg->value.choice.RICsubscriptionResponse.protocolIEs.list.count; - - for(int edx = 0; edx < num_IEs; edx++) - { - RICsubscriptionResponse_IEs_t *memb_ptr = - responseMsg->value.choice.RICsubscriptionResponse.protocolIEs.list.array[edx]; - - switch(memb_ptr->id) - { - case (ProtocolIE_ID_id_RICrequestID): - requestid = &memb_ptr->value.choice.RICrequestID; - // xer_fprint(stdout, &asn_DEF_RICrequestID, (void *)requestid); - return requestid->ricRequestSequenceNumber; - break; - } - } -} - -void subrequest_set_sequenceNum(E2AP_PDU_t* pdu, int seq) -{ - InitiatingMessage_t *initiatingMessage = pdu->choice.initiatingMessage; - - RICrequestID_t *requestid; - - int num_IEs = initiatingMessage->value.choice.RICsubscriptionRequest.protocolIEs.list.count; - - for(int edx = 0; edx < num_IEs; edx++) - { - RICsubscriptionRequest_IEs_t *memb_ptr = - initiatingMessage->value.choice.RICsubscriptionRequest.protocolIEs.list.array[edx]; - - switch(memb_ptr->id) - { - case (ProtocolIE_ID_id_RICrequestID): - requestid = &memb_ptr->value.choice.RICrequestID; - requestid->ricRequestSequenceNumber = seq; - break; - } - } - -} - -void subscription_response_get_field(E2AP_PDU_t* pdu) -{ - SuccessfulOutcome_t *responseMsg = pdu->choice.successfulOutcome; - - RICrequestID_t *requestid; - RANfunctionID_t * ranfunctionid; - RICsubscription_t * ricsubscription; - - int requestID_val, sequenceNum; - - int num_IEs = responseMsg->value.choice.RICsubscriptionResponse.protocolIEs.list.count; - - LOG_I("num of IEs = %d", num_IEs); - - for(int edx = 0; edx < num_IEs; edx++) - { - RICsubscriptionResponse_IEs_t *memb_ptr = - responseMsg->value.choice.RICsubscriptionResponse.protocolIEs.list.array[edx]; - - switch(memb_ptr->id) - { - case (ProtocolIE_ID_id_RICrequestID): - requestid = &memb_ptr->value.choice.RICrequestID; - xer_fprint(stdout, &asn_DEF_RICrequestID, (void *)requestid); - requestID_val = requestid->ricRequestorID; - sequenceNum = requestid->ricRequestSequenceNumber; - requestid->ricRequestSequenceNumber = 202; - break; - - case (ProtocolIE_ID_id_RANfunctionID): - ranfunctionid = &memb_ptr->value.choice.RANfunctionID; - xer_fprint(stdout, &asn_DEF_RANfunctionID, (void *)ranfunctionid); - break; - - // case (ProtocolIE_ID_id_RICsubscription): - // ricsubscription = &memb_ptr->value.choice.RICsubscription; - // xer_fprint(stdout, &asn_DEF_RICsubscription, (void *)ricsubscription); - // break; - } - } - - LOG_I("Request ID = %d, seq = %d", requestID_val, sequenceNum); -} - -void subscription_request_get_field(E2AP_PDU_t* pdu) -{ - InitiatingMessage_t *initiatingMessage = pdu->choice.initiatingMessage; - - RICrequestID_t *requestid; - RANfunctionID_t * ranfunctionid; - RICsubscription_t * ricsubscription; - - int num_IEs = initiatingMessage->value.choice.RICsubscriptionRequest.protocolIEs.list.count; - - LOG_I("num of IEs = %d", num_IEs); - - for(int edx = 0; edx < num_IEs; edx++) - { - RICsubscriptionRequest_IEs_t *memb_ptr = - initiatingMessage->value.choice.RICsubscriptionRequest.protocolIEs.list.array[edx]; - - switch(memb_ptr->id) - { - case (ProtocolIE_ID_id_RICrequestID): - requestid = &memb_ptr->value.choice.RICrequestID; - xer_fprint(stdout, &asn_DEF_RICrequestID, (void *)requestid); - break; - - case (ProtocolIE_ID_id_RANfunctionID): - ranfunctionid = &memb_ptr->value.choice.RANfunctionID; - xer_fprint(stdout, &asn_DEF_RANfunctionID, (void *)ranfunctionid); - break; - - case (ProtocolIE_ID_id_RICsubscription): - ricsubscription = &memb_ptr->value.choice.RICsubscription; - xer_fprint(stdout, &asn_DEF_RICsubscription, (void *)ricsubscription); - break; - } - } -} - -int main(int argc, char* argv[]){ - LOG_I("Start RIC Simulator - Performance Test"); - - options_t ops = read_input_options(argc, argv); - int client_fd = sctp_start_client(ops.server_ip, ops.server_port); - - //1. Send ENDCX2Setup - E2AP_PDU_t* pdu_setup = e2ap_xml_to_pdu("E2AP_ENDCX2SetupRequest.xml"); - // e2ap_asn1c_print_pdu(pdu_setup); - encode_and_send_sctp_data(pdu_setup, client_fd); - LOG_I("[SCTP] Sent ENDC X2 SETUP REQUEST"); - - //2. Receive ENDCX2SetupResponse - wait_for_sctp_data(client_fd); - - //3. Send RICSubscriptionRequest - E2AP_PDU_t* pdu_sub = e2ap_xml_to_pdu("E2AP_RICsubscriptionRequest_Ashwin.xml"); - e2ap_asn1c_print_pdu(pdu_sub); - encode_and_send_sctp_data(pdu_sub, client_fd); - LOG_I("[SCTP] Sent RIC SUBSCRIPTION REQUEST"); - - - //4. Receive RIC SUBSCRIPT RESPONSE - int count = 0; - - while(1) - { - usleep(1000); //sleep for one ms - - sctp_buffer_t recv_buf; - - int res_seq; - - if(sctp_receive_data(client_fd, recv_buf) > 0) - { - LOG_I("[SCTP] Received new data of size %d", recv_buf.len); - // e2ap_handle_sctp_data(client_fd, recv_buf); - - E2AP_PDU_t* res_pdu = new E2AP_PDU_t(); - - e2ap_asn1c_decode_pdu(res_pdu, recv_buf.buffer, recv_buf.len); - - int procedureCode = e2ap_asn1c_get_procedureCode(res_pdu); - int index = (int)res_pdu->present; - - if(index == E2AP_PDU_PR_successfulOutcome && \ - procedureCode == ProcedureCode_id_ricSubscription) - { - res_seq =subresponse_get_sequenceNum(res_pdu); - count++; - - LOG_I("Received RIC SUBSCRIPTION RESPONSE, seq = %d, totalCount = %d",\ - res_seq, count); - - //Put res_seq in new subscription request - E2AP_PDU_t* req_pdu = e2ap_xml_to_pdu("E2AP_RICsubscriptionRequest.xml"); - subrequest_set_sequenceNum(req_pdu, res_seq); - // e2ap_asn1c_print_pdu(req_pdu); - - encode_and_send_sctp_data(req_pdu, client_fd); - LOG_I("Send new SUBSCRIPT REQUEST, seq = %d", res_seq); - } - - } - } - - - // E2AP_PDU_t* res_pdu = e2ap_xml_to_pdu("E2AP_RICsubscriptionResponse.xml"); - // - // //Extract subscription response sequence number - // int res_seq = subresponse_get_sequenceNum(res_pdu); - // LOG_I("Subscription Response SeqNo = %d", res_seq); - // - // //Put responseSeq in new subscription request - // E2AP_PDU_t* req_pdu = e2ap_xml_to_pdu("E2AP_RICsubscriptionRequest.xml"); - // - // subrequest_set_sequenceNum(req_pdu, res_seq); - - // e2ap_asn1c_print_pdu(req_pdu); - - return 0; -} diff --git a/e2sim/previous/test/WLG/ric_wlg.cpp b/e2sim/previous/test/WLG/ric_wlg.cpp deleted file mode 100644 index 309153d..0000000 --- a/e2sim/previous/test/WLG/ric_wlg.cpp +++ /dev/null @@ -1,61 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -#include -#include -#include - -#include "e2sim_sctp.hpp" -#include "e2ap_message_handler.hpp" - -extern "C" { - #include "e2sim_defs.h" - #include "E2AP-PDU.h" - #include "e2ap_asn1c_codec.h" - - #include "ProtocolIE-Field.h" -} - -using namespace std; - - -int main(int argc, char* argv[]){ - LOG_I("Start RIC WLG"); - - options_t ops = read_input_options(argc, argv); - - int server_fd = sctp_start_server(ops.server_ip, ops.server_port); - int client_fd = sctp_accept_connection(ops.server_ip, server_fd); - - sctp_buffer_t recv_buf; - - LOG_I("[SCTP] Waiting for SCTP data"); - - while(1) //constantly looking for data on SCTP interface - { - if(sctp_receive_data(client_fd, recv_buf) <= 0) - break; - - LOG_I("[SCTP] Received new data of size %d", recv_buf.len); - - e2ap_handle_sctp_data(client_fd, recv_buf); - } - - return 0; -} diff --git a/e2sim/previous/test/X2/CMakeLists.txt b/e2sim/previous/test/X2/CMakeLists.txt deleted file mode 100644 index b257505..0000000 --- a/e2sim/previous/test/X2/CMakeLists.txt +++ /dev/null @@ -1,49 +0,0 @@ -#/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -#******************************************************************************/ - -cmake_minimum_required(VERSION 3.5.1) -set(CMAKE_CXX_COMPILER "/usr/bin/g++") -set(CMAKE_CXX_STANDARD 14) - -add_definitions("-D ASN_DISABLE_OER_SUPPORT") - -project(x2term) - -set (E2SIM_ROOT ../../) - -include_directories("${E2SIM_ROOT}/src") -include_directories("${E2SIM_ROOT}/src/DEF") -include_directories("${E2SIM_ROOT}/src/SCTP/") -include_directories("${E2SIM_ROOT}/src/E2AP") -include_directories("${E2SIM_ROOT}/src/E2AP/E2SM") -include_directories("${E2SIM_ROOT}/ASN1c") - -find_library( SCTP_STD_LIB sctp ) #needed for sctp_sendmsg - -#---------------------------------------------- -file(GLOB X2TERM_SOURCES - "${E2SIM_ROOT}/test/X2/x2term.cpp" - "${E2SIM_ROOT}/src/DEF/*.cpp" - "${E2SIM_ROOT}/src/SCTP/*.cpp" - "${E2SIM_ROOT}/src/E2AP/*.c" - "${E2SIM_ROOT}/src/E2AP/*.cpp" - "${E2SIM_ROOT}/ASN1c/*.c" - ) -add_executable(x2term ${X2TERM_SOURCES}) -target_link_libraries( x2term ${SCTP_STD_LIB} ) diff --git a/e2sim/previous/test/X2/x2agent.cpp b/e2sim/previous/test/X2/x2agent.cpp deleted file mode 100644 index db279a3..0000000 --- a/e2sim/previous/test/X2/x2agent.cpp +++ /dev/null @@ -1,41 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -#include -#include -#include - -#include "e2sim_defs.h" -#include "asn_x2ap.hpp" -#include "e2sim_sctp.hpp" - -using namespace std; - -int main(int argc, char* argv[]){ - - LOG_I("X2 Agent. Version %s", VERSION); - - options_t ops = read_input_options(argc, argv); - - int server_fd = sctp_start_server(ops.server_ip, ops.server_port); - int client_fd = sctp_accept_connection(server_fd); - - - return 0; -} diff --git a/e2sim/previous/test/X2/x2term.cpp b/e2sim/previous/test/X2/x2term.cpp deleted file mode 100644 index e325827..0000000 --- a/e2sim/previous/test/X2/x2term.cpp +++ /dev/null @@ -1,73 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -#include -#include -#include - -#include "e2sim_sctp.hpp" -#include "e2ap_message_handler.hpp" - -extern "C" { - #include "e2sim_defs.h" - #include "E2AP-PDU.h" - #include "e2ap_asn1c_codec.h" -} - -using namespace std; - -void encode_and_send_sctp_data(E2AP_PDU_t* pdu, int client_fd) -{ - uint8_t *buf; - sctp_buffer_t data; - - data.len = e2ap_asn1c_encode_pdu(pdu, &buf); - memcpy(data.buffer, buf, min(data.len, MAX_SCTP_BUFFER)); - - // sctp_send_data(client_fd, data); - sctp_send_data_X2AP(client_fd, data); -} - -void wait_for_sctp_data(int client_fd) -{ - sctp_buffer_t recv_buf; - if(sctp_receive_data(client_fd, recv_buf) > 0) - { - LOG_I("[SCTP] Received new data of size %d", recv_buf.len); - e2ap_handle_sctp_data(client_fd, recv_buf); - } -} - - -int main(int argc, char* argv[]){ - LOG_I("Start RIC Simulator"); - - options_t ops = read_input_options(argc, argv); - int client_fd = sctp_start_client(ops.server_ip, ops.server_port); - - //Send X2 Setup Request - E2AP_PDU_t* pdu_setup = e2ap_xml_to_pdu("E2AP_X2SetupRequest.xml"); - e2ap_asn1c_print_pdu(pdu_setup); - encode_and_send_sctp_data(pdu_setup, client_fd); - - //wait to receive X2SetupResponse - while(1){ - wait_for_sctp_data(client_fd); - } -} diff --git a/e2sim/previous/test/X2/x2termination_test.cpp b/e2sim/previous/test/X2/x2termination_test.cpp deleted file mode 100644 index 1953ce6..0000000 --- a/e2sim/previous/test/X2/x2termination_test.cpp +++ /dev/null @@ -1,119 +0,0 @@ -/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -******************************************************************************/ - -#include -#include -#include - -#include "e2sim_defs.h" -#include "asn_x2ap.hpp" -#include "e2sim_sctp.hpp" -#include "x2ap_message_handler.hpp" -#include "x2ap_asn_codec.hpp" - -using namespace std; - -void test_X2Setup(int &client_fd) -{ - //Create X2SetupRequest message - x2ap_pdu_t* pdu = new_x2ap_pdu(); - eNB_config cfg; - - x2ap_create_X2SetupRequest(pdu, cfg); - x2ap_print_pdu(pdu); - - //Encode into buffer - sctp_buffer_t data; - x2ap_encode_pdu(pdu, data.buffer, sizeof(data.buffer), data.len); - - //Send to sctp - sctp_send_data(client_fd, data); - LOG_I("[SCTP] Sent X2 SETUP REQUEST"); - - //expect X2 SETUP RESPONSE - sctp_buffer_t recv_buf; - if(sctp_receive_data(client_fd, recv_buf) > 0) - { - LOG_I("[SCTP] Received new data of size %d", recv_buf.len); - x2ap_handle_sctp_data(client_fd, recv_buf); - } - - //Send again, expect X2 SETUP FAILURE - sctp_send_data(client_fd, data); - LOG_I("[SCTP] Sent X2 SETUP REQUEST"); - - if(sctp_receive_data(client_fd, recv_buf) > 0) - { - LOG_I("[SCTP] Received new data of size %d", recv_buf.len); - x2ap_handle_sctp_data(client_fd, recv_buf); - } - -} - -void test_ENDCX2Setup(int &client_fd) -{ - //Create ENDCX2SetupRequest message - x2ap_pdu_t* pdu = new_x2ap_pdu(); - eNB_config cfg; - - x2ap_create_ENDCX2SetupRequest(pdu, cfg); - x2ap_print_pdu(pdu); - - //Encode into buffer - sctp_buffer_t data; - x2ap_encode_pdu(pdu, data.buffer, sizeof(data.buffer), data.len); - - //Send to sctp - sctp_send_data(client_fd, data); - LOG_I("[SCTP] Sent ENDC X2 SETUP REQUEST"); - - //expect ENDC X2 SETUP RESPONSE - sctp_buffer_t recv_buf; - if(sctp_receive_data(client_fd, recv_buf) > 0) - { - LOG_I("[SCTP] Received new data of size %d", recv_buf.len); - x2ap_handle_sctp_data(client_fd, recv_buf); - } - - //Send again, expect ENDC X2 SETUP FAILURE - sctp_send_data(client_fd, data); - LOG_I("[SCTP] Sent ENDC X2 SETUP REQUEST"); - - if(sctp_receive_data(client_fd, recv_buf) > 0) - { - LOG_I("[SCTP] Received new data of size %d", recv_buf.len); - x2ap_handle_sctp_data(client_fd, recv_buf); - } - -} - -int main(int argc, char* argv[]){ - - LOG_I("X2 Termination Test"); - - options_t ops = read_input_options(argc, argv); - - int client_fd = sctp_start_client(ops.server_ip, ops.server_port); - - test_X2Setup(client_fd); - // test_ENDCX2Setup(client_fd); - - - return 0; -} diff --git a/e2sim/previous/test/rmr_interface/README b/e2sim/previous/test/rmr_interface/README deleted file mode 100644 index 9e5a197..0000000 --- a/e2sim/previous/test/rmr_interface/README +++ /dev/null @@ -1,13 +0,0 @@ -This is just a basic version of the README that the author of the E2 simulator can augment as he/she sees fit. - -Building rmr - -- Call the rmr_install.sh - - -# Running the sender and receiver - -- Create a route generate (.rt) file that is common to both the sender and receiver and place it in $HOME/global_rmr_files/global_rmr_routes.rt -- Build the receiver in the /tests/pendulum_xapp folder by invoking build_recvr.sh. Run it using bash run_receiver -- Build the sender in the /tests/sender folder by invoking build_sender.sh. Run it using bash run_sender. -- You can see packets being exchanged. diff --git a/e2sim/previous/test/rmr_interface/rmr_install.sh b/e2sim/previous/test/rmr_interface/rmr_install.sh deleted file mode 100644 index 786a07e..0000000 --- a/e2sim/previous/test/rmr_interface/rmr_install.sh +++ /dev/null @@ -1,28 +0,0 @@ -#!/bin/bash -eu -# -# -# Copyright 2019 AT&T Intellectual Property -# Copyright 2019 Nokia -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - - -#git clone https://gerrit.oran-osc.org/r/ric-plt/lib/rmr && (cd rmr && curl -kLo `git rev-parse --git-dir`/hooks/commit-msg https://gerrit.oran-osc.org/r/tools/hooks/commit-msg; chmod +x `git rev-parse --git-dir`/hooks/commit-msg && git checkout 6735f136906ce2 ) - -cd rmr/ -mkdir $HOME/usr -mkdir .build -cd .build -cmake .. -DCMAKE_INSTALL_PREFIX=$HOME/usr -make install diff --git a/e2sim/previous/test/rmr_interface/tests/receiver/build_and_run_recvr.sh b/e2sim/previous/test/rmr_interface/tests/receiver/build_and_run_recvr.sh deleted file mode 100755 index 602046f..0000000 --- a/e2sim/previous/test/rmr_interface/tests/receiver/build_and_run_recvr.sh +++ /dev/null @@ -1,30 +0,0 @@ -#!/bin/bash -eu -# -# -# Copyright 2019 AT&T Intellectual Property -# Copyright 2019 Nokia -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -export C_INCLUDE_PATH=$HOME/usr/include -export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/usr/lib -export RMR_SEED_RT=$HOME/global_rmr_files/global_rmr_routes.rt -gcc rmr_rcvr.c -g -o rmr_rcvr -L $HOME/usr/lib -lrmr_nng -lnng -lpthread -lm - -export PENDULUM_XAPP_RMR_RCV_PORT=5560 -export DEMO_SENDER_PTO=1 # poll timeout listening for replies - -export PRINT_FREQ=10000 #frequency at which test stats will be printed - -RMR_RCV_ACK=1 ./rmr_rcvr $PRINT_FREQ; # receiver that will ack every sender message diff --git a/e2sim/previous/test/rmr_interface/tests/receiver/rmr_rcvr.c b/e2sim/previous/test/rmr_interface/tests/receiver/rmr_rcvr.c deleted file mode 100644 index 2d8e7fd..0000000 --- a/e2sim/previous/test/rmr_interface/tests/receiver/rmr_rcvr.c +++ /dev/null @@ -1,163 +0,0 @@ -/* - * - * Copyright 2019 AT&T Intellectual Property - * Copyright 2019 Nokia - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -// :vim ts=4 sw=4 noet: -/* - Mnemonic: rmr_rcvr2.c - Abstract: Very simple test listener built on RMr libraries. It does nothing - but return the message it recevied back to the sender. - - Define these environment variables to have some control: - RMR_SEED_RT -- path to the static routing table - RMR_RTG_SVC -- host:port of the route table generator - - One command line parm is accepted: stats frequency. This is a number, n, - which causes stats to be generated after every n messages. If set to 0 - each message is written when received and no stats (msg rate) is generated. - - Date: 11 February 2018 - Author: E. Scott Daniels - - Mods: 18 Mar 2019 -- simplified for demo base. -*/ - -#include -#include -#include -#include -#include - -#include - -typedef struct { - int32_t mtype; // message type ("long" network integer) - int32_t plen; // payload length - unsigned char xid[RMR_MAX_XID]; // space for user transaction id or somesuch - unsigned char sid[RMR_MAX_SID]; // sender ID for return to sender needs - unsigned char src[RMR_MAX_SRC]; // name of the sender (source) - struct timespec ts; // timestamp ??? -} mhdr_t; - - -int main( int argc, char** argv ) { - void* mrc; // msg router context - rmr_mbuf_t* msg = NULL; // message received - int i; - char* listen_port; - char* tok; - int must_ack = 1; // flag -- if set we rts all messages - mhdr_t* hdr; - int last_seq = 0; // sequence number from last message - int this_seq; // sequence number on this message - int count = 0; // count of msg since last status - long long tcount = 0; // total count of messages - time_t ts; - time_t lts; - int stat_freq = 20000; // write stats after reciving this many messages - int first_seq = -1; // first sequence number we got to report total received - int max_rt = 1000; // max times we'll retry an ack - - if( (tok = getenv( "RMR_RCV_ACK" )) != NULL ) { - must_ack = atoi( tok ); - } - - if( (listen_port = getenv( "PENDULUM_XAPP_RMR_RCV_PORT" )) == NULL ) { - listen_port = "4560"; - } - - if( argc > 1 ) { - stat_freq = atoi( argv[1] ); - } - fprintf( stderr, " stats will be reported every %d messages\n", stat_freq ); - - mrc = rmr_init( listen_port, RMR_MAX_RCV_BYTES, RMRFL_NONE ); // start your engines! - if( mrc == NULL ) { - fprintf( stderr, " ABORT: unable to initialise RMr\n" ); - exit( 1 ); - } - - while( ! rmr_ready( mrc ) ) { - fprintf( stderr, " waiting for RMr to show ready\n" ); - sleep( 1 ); - } - fprintf( stderr, " RMr now shows ready\n" ); - - lts = time( NULL ); - fprintf( stderr, " listening on %s acking %s\n", listen_port, must_ack != 0 ? "on" : "off" ); - - //rmr_set_stimeout( mrc, 50 ); - while( 1 ) { - sleep (2 ); - msg = rmr_rcv_msg( mrc, msg ); // block until one arrives - if( msg == NULL ) { - continue; // shouldn't happen, but don't crash if we get nothing - } - if( msg->mtype < 0 || msg->state != RMR_OK ) { - fprintf( stderr, "[WRN] bad msg: state=%d errno=%d\n", msg->state, errno ); - continue; // just loop to receive another - } - - if( stat_freq == 0 ) { // mechanism to dump all received messages for quick testing - fprintf( stdout, " msg received: type = %d len = %d (%s)\n", msg->mtype, msg->len, msg->payload ); // assume a nil term string in payload - } - - count++; // messages received for stats output - tcount++; - - //if( stat_freq >= 1000 ) { - if(1) { - //if( (count % stat_freq) == 0 ) { - if(1) { - ts = time( NULL ); - if( ts - lts ) { - - fprintf( stderr, " %7lld received %5lld msg/s over the last %3lld seconds mrt=%d, with content=%s\n", - (long long) last_seq - first_seq, (long long) (count / (ts-lts)), (long long) ts-lts, max_rt,msg->payload ); - lts = ts; - count = 0; - } - } - } - - if( must_ack ) { // send back a response - //fprintf( stdout, " msg: type = %d len = %d; acking\n", msg->mtype, msg->len ); - //msg->len = snprintf( msg->payload, 1024, "bar %lld", tcount ); // ack with bar and counter - msg->len = snprintf( msg->payload, 1024, "Reply hello back to Arduino!\n"); - // msg->len = snprintf( msg->payload, 1024, "OK\n"); - - - //msg->mtype = 999; //only to be used if rts is not possible - - //msg = rmr_send_msg (mrc, msg); //only to be used if rts is not possible - - msg = rmr_rts_msg( mrc, msg ); // this is a retur to sender; preferred - //if( (msg = rmr_send_msg( mrc, msg )) != NULL ) { // this is a routed send; not preferred, but possible - if( (msg = rmr_rts_msg( mrc, msg )) != NULL ) { - //----- checking too many times here has been problematic and causes what appears to be race condidtions in NNG threads; for now max_rt should be small - max_rt = 2; - while( max_rt > 0 && msg->state != RMR_OK && errno == EAGAIN ) { // NNG likes to refuse sends, just keep trying on eagain - max_rt--; - rmr_rts_msg( mrc, msg ); - //rmr_send_msg (mrc, msg); - } - } - } - - } -} diff --git a/e2sim/previous/test/rmr_interface/tests/sender/build_and_run_sender.sh b/e2sim/previous/test/rmr_interface/tests/sender/build_and_run_sender.sh deleted file mode 100755 index c4eb8fc..0000000 --- a/e2sim/previous/test/rmr_interface/tests/sender/build_and_run_sender.sh +++ /dev/null @@ -1,29 +0,0 @@ -#!/bin/bash -eu -# -# -# Copyright 2019 AT&T Intellectual Property -# Copyright 2019 Nokia -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -export C_INCLUDE_PATH=$HOME/usr/include -export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/usr/lib -export RMR_SEED_RT=$HOME/global_rmr_files/global_rmr_routes.rt -gcc rmr_sender.c -g -o rmr_sender -L $HOME/usr/lib -lrmr_nng -lnng -lpthread -lm - -export DUMMY_SENDER_RMR_RCV_PORT=38086 -export DEMO_SENDER_PTO=1 # poll timeout listening for replies -export DEMO_MAX_PAYLOAD_BYTES=240 # max_size of payload - -./rmr_sender; diff --git a/e2sim/previous/test/rmr_interface/tests/sender/rmr_sender.c b/e2sim/previous/test/rmr_interface/tests/sender/rmr_sender.c deleted file mode 100644 index 724b0d1..0000000 --- a/e2sim/previous/test/rmr_interface/tests/sender/rmr_sender.c +++ /dev/null @@ -1,96 +0,0 @@ -/* - * - * Copyright 2019 AT&T Intellectual Property - * Copyright 2019 Nokia - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - - -// :vim ts=4 sw=4 noet: - -/* - Mnemonic: rmr_sender2.c - Abstract: Very simple test sender that polls and deals with responses - in between sends (from a single process). - - Date: 18 February 2018 - Author: E. Scott Daniels - - Modified: 18 Mar 2019 - changes to support demo -*/ - -#include -#include -#include -#include -#include -#include -#include -#include -#include "rmr_wrapper.h" - - -void usage( char* argv0 ) { - fprintf( stderr, "usage: %s [mtype-max]\n", argv0 ); - fprintf( stderr, "Sender will send messages with rotating msg types from 0 through mtype-max (if supplied)\n" ); - fprintf( stderr, "if not supplied, only mtype 0 is sent\n" ); - fprintf( stderr, "The default listen port for return messages is 43086; this can be changed by setting DUMMY_SENDER_RMR_RCV_PORT in the environment.\n" ); - fprintf( stderr, "The sender will send forever unless DEMO_SENDER_MAX is set in the environment which causes termination after max messages.\n" ); - fprintf( stderr, "The sender will poll for received messages after each send. The amount of time waited is controlled with DEMO_SENDER_PTO (ms) in the env. Use 0 for non-blocking poll.\n" ); -} - -int main( int argc, char** argv ) { - struct rmr_context *rmr_c; //obtain our enhanced rmr_context - int mtype = 0; // we can loop through several message types - long count = 0; - char* lport = "43086"; // default listen port - long rcount = 0; // number of acks received - - if( (eparm = getenv( "DUMMY_SENDER_RMR_RCV_PORT" )) != NULL ) { - lport = strdup( eparm ); - } - - rmr_c = rmr_init_wrapper(lport); - - while( ! rmr_ready( rmr_c->mrc ) ) { - fprintf( stderr, " waiting for RMr to indicate ready\n" ); - sleep( 1 ); - } - fprintf( stderr, "[OK] initialisation complete\n" ); - - while( 1 ) { - usleep( 10 ); // simulate some work being done - char* message = "foo 111"; - - if(rmr_send_wrapper (rmr_c, mtype, message ) == 1) { - //message successfully received in the receive buffer - char reply[1024]; - strcpy(reply,rmr_c->rbuf->payload); - fprintf( stderr, "Acknowledgment received with content:%s\n",rmr_c->rbuf->payload); - rcount++; - } - count++; - - if( (count % 5000) == 0 ) { - fprintf( stdout, "[INFO] total sent: %ld total received: %ld drops=%ld\n", count, rcount, count - rcount ); - } - - } - - fprintf( stderr, "[INFO] sender is terminating having sent %ld messages\n", count ); - rmr_close_wrapper(rmr_c); - - return 0; -} diff --git a/e2sim/previous/test/rmr_interface/tests/sender/rmr_wrapper.h b/e2sim/previous/test/rmr_interface/tests/sender/rmr_wrapper.h deleted file mode 100644 index 446d20d..0000000 --- a/e2sim/previous/test/rmr_interface/tests/sender/rmr_wrapper.h +++ /dev/null @@ -1,142 +0,0 @@ -/* - * - * Copyright 2019 AT&T Intellectual Property - * Copyright 2019 Nokia - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -int epoll_to = 1;// global default epoll timout -- 1ms -char* eparm; // generic env pointer - -struct rmr_context { - void* mrc; - int rcv_fd; // pollable fd - struct epoll_event epe; // event definition for event to listen to - struct epoll_event events[10]; // wait on 10 possible events - int ep_fd; - int max_payload_size; // ++SCOTT - rmr_mbuf_t* sbuf; // send buffer - rmr_mbuf_t* rbuf; // received buffer -}; - - -struct rmr_context * rmr_init_wrapper(char* lport){ - - struct rmr_context *rmr_c = malloc(sizeof (struct rmr_context)); - fprintf( stderr, "[INFO] glistening for replies on %s\n", lport ); - - - rmr_c->mrc = rmr_init(lport, RMR_MAX_RCV_BYTES, RMRFL_NONE ); // setup RMr and get a context (rmr_c.mrc) - rmr_c->ep_fd=-1; - - //polling related initializations - rmr_c->rcv_fd = rmr_get_rcvfd( rmr_c->mrc );// get the fd to poll for messages received - if( rmr_c->rcv_fd < 0 ) { - fprintf( stderr, "[FAIL] unable to set up polling fd\n" ); - exit( 1 ); - } - - if( (rmr_c->ep_fd = epoll_create1( 0 )) < 0 ) { - fprintf( stderr, "[FAIL] unable to create epoll fd: %d\n", errno ); - exit( 1 ); - } - rmr_c->epe.events = EPOLLIN; - rmr_c->epe.data.fd = rmr_c->rcv_fd; - - if( epoll_ctl( rmr_c->ep_fd, EPOLL_CTL_ADD, rmr_c->rcv_fd, &rmr_c->epe ) != 0 ) { - fprintf( stderr, "[FAIL] epoll_ctl status not 0 : %s\n", strerror( errno ) ); - exit( 1 ); - } - //end of polling related initializations - - //++SCOTT------ next lines until !!SCOTT - rmr_c->max_payload_size = 240; //default - if( (eparm = getenv( "DEMO_MAX_PAYLOAD_BYTES" )) != NULL ) { - rmr_c->max_payload_size = atoi(eparm); // override with env - } - //!!SCOTT - - //~~SCOTT next line - rmr_c->sbuf = rmr_alloc_msg( rmr_c->mrc, rmr_c->max_payload_size ); // allocate largest payload to send - rmr_c->rbuf = NULL; - - return rmr_c; -} - -void rmr_send_wrapper (struct rmr_context *rmr_c, int mtype, char* message) { - //--SCOTT int max_payload_size = 240; //default - //--SCOTT if( (eparm = getenv( "DEMO_MAX_PAYLOAD_BYTES" )) != NULL ) { - //--SCOTT max_payload_size = atoi(eparm); - //--SCOTT } - - //~~SCOTT next line - snprintf( rmr_c->sbuf->payload, rmr_c->max_payload_size, "%s", message); // simple send message -- replace with real content - - rmr_c->sbuf->mtype = mtype; // fill in message meta data - rmr_c->sbuf->len = strlen( rmr_c->sbuf->payload ) + 1; // actual length of payload (count the nil end of string) - rmr_c->sbuf->state = 0; - - //retry send for a few times before giving up - long natter = 0; // natter on for errors only once in a while - if( (rmr_c->sbuf = rmr_send_msg( rmr_c->mrc, rmr_c->sbuf )) != NULL ) {// unlikely, but might get a null pointer back if NNG really is buggered - if( rmr_c->sbuf->state != RMR_OK ) { - if( errno == EAGAIN ) { - while( rmr_c->sbuf->state != RMR_OK && errno == EAGAIN ) {// NNG likes to refuse sends, just keep trying on eagain - rmr_send_msg( rmr_c->mrc, rmr_c->sbuf ); - } - } else {// most likely connection refused, don't natter on - if( time( NULL ) > natter ) { - fprintf( stderr, "[WARN] send failed, pausing (%s)\n", strerror( errno ) ); - natter = time( NULL ) + 2; - } - sleep( 1 ); - } - } - } else { - if( time( NULL ) > natter ) { - fprintf( stderr, "[WARN] send failed, pausing (%s)\n", strerror( errno ) ); - natter = time( NULL ) + 2; - } - sleep( 1 ); - } - -} - -int rmr_poll_for_message(struct rmr_context *rmr_c){ - int nready; - int i; - int return_type =0; - //start polling the channel to read the acknowledgment - //~~SCOTT next line - - nready = epoll_wait( rmr_c->ep_fd, rmr_c->events, 10, epoll_to ); // wait up to epoll_to ms for a response - for( i = 0; i < nready && i < 10; i++ ) { // loop through to find what is ready - if( rmr_c->events[i].data.fd == rmr_c->rcv_fd ) { // RMr has something - errno = 0; - rmr_c->rbuf = rmr_rcv_msg( rmr_c->mrc, rmr_c->rbuf ); // something ready; this should not block - if( rmr_c->rbuf ) { - // fprintf( stderr, " acknowledgment received:%s\n",rmr_c->rbuf->payload); - return_type = 1; //the message has been acknowledged - } - } - } - return return_type; -} - -void rmr_close_wrapper (struct rmr_context *rmr_c){ - - rmr_close( rmr_c->mrc ); - free(rmr_c); -} diff --git a/e2sim/previous/tools/asn_defs/generate_e2ap_e2sm_codes b/e2sim/previous/tools/asn_defs/generate_e2ap_e2sm_codes deleted file mode 100755 index 87ced95..0000000 --- a/e2sim/previous/tools/asn_defs/generate_e2ap_e2sm_codes +++ /dev/null @@ -1,39 +0,0 @@ -#!/bin/bash -#/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -#******************************************************************************/ - -E2AP_asn="e2ap-v031.asn" -E2SM_asn="e2sm-gNB-X2-release-1-v041.asn" -X2AP_asn="x2ap-no-desc-15-04.asn" - -GEN_DIR=../../src/ASN1c/ - -rm -f $GEN_DIR/*.c $GEN_DIR/*.h - -asn1c -pdu=all -fcompound-names -gen-PER -no-gen-OER -no-gen-example \ - -fno-include-deps -D $GEN_DIR $E2AP_asn $X2AP_asn \ - |& egrep -v "^Copied|^Compiled" | sort -u - -asn1c -pdu=all -fcompound-names -gen-PER -no-gen-OER -no-gen-example \ - -fno-include-deps -D $GEN_DIR $E2SM_asn $X2AP_asn \ - |& egrep -v "^Copied|^Compiled" | sort -u - -echo "ASN1 C codes generated at $GEN_DIR" - -# asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER /tmp/e2ap-v031.asn /tmp/x2ap-no-desc-15-04.asn diff --git a/e2sim/previous/tools/build_helper.bash b/e2sim/previous/tools/build_helper.bash deleted file mode 100644 index 1759621..0000000 --- a/e2sim/previous/tools/build_helper.bash +++ /dev/null @@ -1,93 +0,0 @@ -#/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -#******************************************************************************/ - -####################################### -# Helper Func -###################################### - -black='\E[30m' -red='\E[31m' -green='\E[32m' -yellow='\E[33m' -blue='\E[34m' -magenta='\E[35m' -cyan='\E[36m' -white='\E[37m' -reset_color='\E[00m' - -cecho() # Color-echo. arg1 = message, arg2 = color -{ - local default_msg="No Message." - message=${1:-$default_msg} - color=${2:-$green} - echo -e -n "$color$message$reset_color" - echo - return -} - -echo_error() { - local my_string="" - until [ -z "$1" ] - do - my_string="$my_string$1" - shift - done - cecho "$my_string" $red -} - -echo_fatal() { - local my_string="" - until [ -z "$1" ] - do - my_string="$my_string$1" - shift - done - echo_error "$my_string" - exit -1 -} - -echo_warning() { - local my_string="" - until [ -z "$1" ] - do - my_string="$my_string$1" - shift - done - cecho "$my_string" $yellow -} - -echo_success() { - local my_string="" - until [ -z "$1" ] - do - my_string="$my_string$1" - shift - done - cecho "$my_string" $green -} - -echo_info() { - local my_string="" - until [ -z "$1" ] - do - my_string="$my_string$1" - shift - done - cecho "$my_string" $blue -} diff --git a/e2sim/previous/tools/install_asn1c b/e2sim/previous/tools/install_asn1c deleted file mode 100755 index 7d1391f..0000000 --- a/e2sim/previous/tools/install_asn1c +++ /dev/null @@ -1,31 +0,0 @@ -#!/bin/bash -#/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -#******************************************************************************/ - -echo "Will install asn1c" -sudo rm -rf asn1c -git clone https://gerrit.o-ran-sc.org/r/com/asn1c.git -cd asn1c/ -autoreconf -iv -./configure -cd examples -chmod u+x crfc2asn1.pl -cd .. -make -sudo make install diff --git a/e2sim/previous/tools/install_dependencies b/e2sim/previous/tools/install_dependencies deleted file mode 100755 index c5b3d7b..0000000 --- a/e2sim/previous/tools/install_dependencies +++ /dev/null @@ -1,38 +0,0 @@ -#!/bin/bash -#/***************************************************************************** -# * -# Copyright 2019 AT&T Intellectual Property * -# Copyright 2019 Nokia * -# * -# Licensed under the Apache License, Version 2.0 (the "License"); * -# you may not use this file except in compliance with the License. * -# You may obtain a copy of the License at * -# * -# http://www.apache.org/licenses/LICENSE-2.0 * -# * -# Unless required by applicable law or agreed to in writing, software * -# distributed under the License is distributed on an "AS IS" BASIS, * -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * -# See the License for the specific language governing permissions and * -# limitations under the License. * -# * -#******************************************************************************/ - -sudo apt-get update \ - && sudo apt-get install -y \ - build-essential \ - git \ - cmake \ - libsctp-dev \ - lksctp-tools \ - autoconf \ - automake \ - libtool \ - bison \ - flex \ - libboost-all-dev \ - iputils-ping \ - net-tools \ - nano \ - vim \ - && sudo apt-get clean diff --git a/e2sim/src/ASN1c/AMFName.c b/e2sim/src/ASN1c/AMFName.c new file mode 100644 index 0000000..77dc9c6 --- /dev/null +++ b/e2sim/src/ASN1c/AMFName.c @@ -0,0 +1,106 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` + */ + +#include "AMFName.h" + +static const int permitted_alphabet_table_1[256] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */ + 1, 0, 0, 0, 0, 0, 0, 2, 3, 4, 0, 5, 6, 7, 8, 9, /* . '() +,-./ */ +10,11,12,13,14,15,16,17,18,19,20, 0, 0,21, 0,22, /* 0123456789: = ? */ + 0,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37, /* ABCDEFGHIJKLMNO */ +38,39,40,41,42,43,44,45,46,47,48, 0, 0, 0, 0, 0, /* PQRSTUVWXYZ */ + 0,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63, /* abcdefghijklmno */ +64,65,66,67,68,69,70,71,72,73,74, 0, 0, 0, 0, 0, /* pqrstuvwxyz */ +}; +static const int permitted_alphabet_code2value_1[74] = { +32,39,40,41,43,44,45,46,47,48,49,50,51,52,53,54, +55,56,57,58,61,63,65,66,67,68,69,70,71,72,73,74, +75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90, +97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112, +113,114,115,116,117,118,119,120,121,122,}; + + +static int check_permitted_alphabet_1(const void *sptr) { + const int *table = permitted_alphabet_table_1; + /* The underlying type is PrintableString */ + const PrintableString_t *st = (const PrintableString_t *)sptr; + const uint8_t *ch = st->buf; + const uint8_t *end = ch + st->size; + + for(; ch < end; ch++) { + uint8_t cv = *ch; + if(!table[cv]) return -1; + } + return 0; +} + +int +AMFName_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const PrintableString_t *st = (const PrintableString_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size >= 1 && size <= 150) + && !check_permitted_alphabet_1(st)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int asn_PER_MAP_AMFName_1_v2c(unsigned int value) { + if(value >= sizeof(permitted_alphabet_table_1)/sizeof(permitted_alphabet_table_1[0])) + return -1; + return permitted_alphabet_table_1[value] - 1; +} +static int asn_PER_MAP_AMFName_1_c2v(unsigned int code) { + if(code >= sizeof(permitted_alphabet_code2value_1)/sizeof(permitted_alphabet_code2value_1[0])) + return -1; + return permitted_alphabet_code2value_1[code]; +} +/* + * This type is implemented using PrintableString, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_AMFName_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 32, 122 } /* (32..122) */, + { APC_CONSTRAINED | APC_EXTENSIBLE, 8, 8, 1, 150 } /* (SIZE(1..150,...)) */, + asn_PER_MAP_AMFName_1_v2c, /* Value to PER code map */ + asn_PER_MAP_AMFName_1_c2v /* PER code to value map */ +}; +static const ber_tlv_tag_t asn_DEF_AMFName_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (19 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AMFName = { + "AMFName", + "AMFName", + &asn_OP_PrintableString, + asn_DEF_AMFName_tags_1, + sizeof(asn_DEF_AMFName_tags_1) + /sizeof(asn_DEF_AMFName_tags_1[0]), /* 1 */ + asn_DEF_AMFName_tags_1, /* Same as above */ + sizeof(asn_DEF_AMFName_tags_1) + /sizeof(asn_DEF_AMFName_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_AMFName_constr_1, AMFName_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/e2sim/src/ASN1c/AMFName.h b/e2sim/src/ASN1c/AMFName.h new file mode 100644 index 0000000..1c6d3d0 --- /dev/null +++ b/e2sim/src/ASN1c/AMFName.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` + */ + +#ifndef _AMFName_H_ +#define _AMFName_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "PrintableString.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* AMFName */ +typedef PrintableString_t AMFName_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_AMFName_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_AMFName; +asn_struct_free_f AMFName_free; +asn_struct_print_f AMFName_print; +asn_constr_check_f AMFName_constraint; +ber_type_decoder_f AMFName_decode_ber; +der_type_encoder_f AMFName_encode_der; +xer_type_decoder_f AMFName_decode_xer; +xer_type_encoder_f AMFName_encode_xer; +per_type_decoder_f AMFName_decode_uper; +per_type_encoder_f AMFName_encode_uper; +per_type_decoder_f AMFName_decode_aper; +per_type_encoder_f AMFName_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AMFName_H_ */ +#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/BIT_STRING_oer.c b/e2sim/src/ASN1c/BIT_STRING_oer.c deleted file mode 100644 index aff5075..0000000 --- a/e2sim/src/ASN1c/BIT_STRING_oer.c +++ /dev/null @@ -1,174 +0,0 @@ -/* - * Copyright (c) 2017 Lev Walkin . - * All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef ASN_DISABLE_OER_SUPPORT - -#include -#include -#include - -asn_dec_rval_t -BIT_STRING_decode_oer(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_oer_constraints_t *constraints, void **sptr, - const void *ptr, size_t size) { - BIT_STRING_t *st = (BIT_STRING_t *)*sptr; - const asn_oer_constraints_t *cts = - constraints ? constraints : td->encoding_constraints.oer_constraints; - ssize_t ct_size = cts ? cts->size : -1; - asn_dec_rval_t rval = {RC_OK, 0}; - size_t expected_length = 0; - - (void)opt_codec_ctx; - - if(!st) { - st = (BIT_STRING_t *)(*sptr = CALLOC(1, sizeof(*st))); - if(!st) ASN__DECODE_FAILED; - } - - if(ct_size >= 0) { - expected_length = (ct_size + 7) >> 3; - st->bits_unused = (8 - (ct_size & 7)) & 7; - } else { - /* - * X.696 (08/2015) #13.3.1 - * Encode length determinant as _number of octets_, but only - * if upper bound is not equal to lower bound. - */ - ssize_t len_len = oer_fetch_length(ptr, size, &expected_length); - if(len_len > 0) { - ptr = (const char *)ptr + len_len; - size -= len_len; - } else if(len_len == 0) { - ASN__DECODE_STARVED; - } else if(len_len < 0) { - ASN__DECODE_FAILED; - } - - if(expected_length < 1) { - ASN__DECODE_FAILED; - } else if(expected_length > size) { - ASN__DECODE_STARVED; - } - - st->bits_unused = ((const uint8_t *)ptr)[0]; - if(st->bits_unused & ~7) { - ASN_DEBUG("%s: unused bits outside of 0..7 range", td->name); - ASN__DECODE_FAILED; - } - ptr = (const char *)ptr + 1; - size--; - expected_length--; - rval.consumed = len_len + 1; - } - - if(size < expected_length) { - ASN__DECODE_STARVED; - } else { - uint8_t *buf = MALLOC(expected_length + 1); - if(buf == NULL) { - ASN__DECODE_FAILED; - } else { - memcpy(buf, ptr, expected_length); - buf[expected_length] = '\0'; - } - FREEMEM(st->buf); - st->buf = buf; - st->size = expected_length; - if(expected_length > 0) { - buf[expected_length - 1] &= (0xff << st->bits_unused); - } - - rval.consumed += expected_length; - return rval; - } -} - -/* - * Encode as Canonical OER. - */ -asn_enc_rval_t -BIT_STRING_encode_oer(const asn_TYPE_descriptor_t *td, - const asn_oer_constraints_t *constraints, - const void *sptr, asn_app_consume_bytes_f *cb, - void *app_key) { - const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; - asn_enc_rval_t erval = {0, 0, 0}; - const asn_oer_constraints_t *cts = - constraints ? constraints : td->encoding_constraints.oer_constraints; - ssize_t ct_size = cts ? cts->size : -1; - size_t trailing_zeros = 0; - int fix_last_byte = 0; - - if(!st) ASN__ENCODE_FAILED; - - if(st->bits_unused & ~7) { - ASN_DEBUG("BIT STRING unused bits %d out of 0..7 range", - st->bits_unused); - ASN__ENCODE_FAILED; - } - if(st->bits_unused && !(st->size && st->buf)) { - ASN_DEBUG("BIT STRING %s size 0 can't support unused bits %d", td->name, - st->bits_unused); - ASN__ENCODE_FAILED; - } - - if(ct_size >= 0) { - size_t ct_bytes = (ct_size + 7) >> 3; - if(st->size > ct_bytes) { - ASN_DEBUG("More bits in BIT STRING %s (%" ASN_PRI_SSIZE ") than constrained %" ASN_PRI_SSIZE "", - td->name, 8 * st->size - st->bits_unused, ct_size); - ASN__ENCODE_FAILED; - } - trailing_zeros = ct_bytes - st->size; /* Allow larger constraint */ - } else { - uint8_t ub = st->bits_unused & 7; - ssize_t len_len = oer_serialize_length(1 + st->size, cb, app_key); - if(len_len < 0) ASN__ENCODE_FAILED; - if(cb(&ub, 1, app_key) < 0) { - ASN__ENCODE_FAILED; - } - erval.encoded += len_len + 1; - } - - if(st->bits_unused) { - if(st->buf[st->size - 1] & (0xff << st->bits_unused)) { - fix_last_byte = 1; - } - } - - if(cb(st->buf, st->size - fix_last_byte, app_key) < 0) { - ASN__ENCODE_FAILED; - } - - if(fix_last_byte) { - uint8_t b = st->buf[st->size - 1] & (0xff << st->bits_unused); - if(cb(&b, 1, app_key) < 0) { - ASN__ENCODE_FAILED; - } - } - - erval.encoded += st->size; - - if(trailing_zeros) { - static uint8_t zeros[16]; - while(trailing_zeros > 0) { - int ret; - if(trailing_zeros < sizeof(zeros)) { - ret = cb(zeros, trailing_zeros, app_key); - erval.encoded += trailing_zeros; - } else { - ret = cb(zeros, sizeof(zeros), app_key); - erval.encoded += sizeof(zeros); - } - if(ret < 0) ASN__ENCODE_FAILED; - } - } - - return erval; -} - - -#endif /* ASN_DISABLE_OER_SUPPORT */ diff --git a/e2sim/src/ASN1c/Cause.c b/e2sim/src/ASN1c/Cause.c index 2943b94..1f084cd 100644 --- a/e2sim/src/ASN1c/Cause.c +++ b/e2sim/src/ASN1c/Cause.c @@ -1,14 +1,14 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #include "Cause.h" asn_per_constraints_t asn_PER_type_Cause_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 4 } /* (0..4,...) */, + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 5 } /* (0..5,...) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; @@ -16,7 +16,7 @@ asn_TYPE_member_t asn_MBR_Cause_1[] = { { ATF_NOFLAGS, 0, offsetof(struct Cause, choice.ricRequest), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ - &asn_DEF_CauseRIC, + &asn_DEF_CauseRICrequest, 0, { 0, 0, 0 }, 0, 0, /* No default value */ @@ -31,9 +31,18 @@ asn_TYPE_member_t asn_MBR_Cause_1[] = { 0, 0, /* No default value */ "ricService" }, - { ATF_NOFLAGS, 0, offsetof(struct Cause, choice.transport), + { ATF_NOFLAGS, 0, offsetof(struct Cause, choice.e2Node), (ASN_TAG_CLASS_CONTEXT | (2 << 2)), -1, /* IMPLICIT tag at current level */ + &asn_DEF_CauseE2node, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "e2Node" + }, + { ATF_NOFLAGS, 0, offsetof(struct Cause, choice.transport), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_CauseTransport, 0, { 0, 0, 0 }, @@ -41,7 +50,7 @@ asn_TYPE_member_t asn_MBR_Cause_1[] = { "transport" }, { ATF_NOFLAGS, 0, offsetof(struct Cause, choice.protocol), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), -1, /* IMPLICIT tag at current level */ &asn_DEF_CauseProtocol, 0, @@ -50,7 +59,7 @@ asn_TYPE_member_t asn_MBR_Cause_1[] = { "protocol" }, { ATF_NOFLAGS, 0, offsetof(struct Cause, choice.misc), - (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), -1, /* IMPLICIT tag at current level */ &asn_DEF_CauseMisc, 0, @@ -62,9 +71,10 @@ asn_TYPE_member_t asn_MBR_Cause_1[] = { static const asn_TYPE_tag2member_t asn_MAP_Cause_tag2el_1[] = { { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ricRequest */ { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ricService */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* transport */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* protocol */ - { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* misc */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* e2Node */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* transport */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* protocol */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* misc */ }; asn_CHOICE_specifics_t asn_SPC_Cause_specs_1 = { sizeof(struct Cause), @@ -72,9 +82,9 @@ asn_CHOICE_specifics_t asn_SPC_Cause_specs_1 = { offsetof(struct Cause, present), sizeof(((struct Cause *)0)->present), asn_MAP_Cause_tag2el_1, - 5, /* Count of tags in the map */ + 6, /* Count of tags in the map */ 0, 0, - 5 /* Extensions start */ + 6 /* Extensions start */ }; asn_TYPE_descriptor_t asn_DEF_Cause = { "Cause", @@ -86,7 +96,7 @@ asn_TYPE_descriptor_t asn_DEF_Cause = { 0, /* No tags (count) */ { 0, &asn_PER_type_Cause_constr_1, CHOICE_constraint }, asn_MBR_Cause_1, - 5, /* Elements count */ + 6, /* Elements count */ &asn_SPC_Cause_specs_1 /* Additional specs */ }; diff --git a/e2sim/src/ASN1c/Cause.h b/e2sim/src/ASN1c/Cause.h index d4a5362..16d4373 100644 --- a/e2sim/src/ASN1c/Cause.h +++ b/e2sim/src/ASN1c/Cause.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #ifndef _Cause_H_ @@ -12,8 +12,9 @@ #include "asn_application.h" /* Including external dependencies */ -#include "CauseRIC.h" +#include "CauseRICrequest.h" #include "CauseRICservice.h" +#include "CauseE2node.h" #include "CauseTransport.h" #include "CauseProtocol.h" #include "CauseMisc.h" @@ -28,6 +29,7 @@ typedef enum Cause_PR { Cause_PR_NOTHING, /* No components present */ Cause_PR_ricRequest, Cause_PR_ricService, + Cause_PR_e2Node, Cause_PR_transport, Cause_PR_protocol, Cause_PR_misc @@ -39,8 +41,9 @@ typedef enum Cause_PR { typedef struct Cause { Cause_PR present; union Cause_u { - CauseRIC_t ricRequest; + CauseRICrequest_t ricRequest; CauseRICservice_t ricService; + CauseE2node_t e2Node; CauseTransport_t transport; CauseProtocol_t protocol; CauseMisc_t misc; @@ -57,7 +60,7 @@ typedef struct Cause { /* Implementation */ extern asn_TYPE_descriptor_t asn_DEF_Cause; extern asn_CHOICE_specifics_t asn_SPC_Cause_specs_1; -extern asn_TYPE_member_t asn_MBR_Cause_1[5]; +extern asn_TYPE_member_t asn_MBR_Cause_1[6]; extern asn_per_constraints_t asn_PER_type_Cause_constr_1; #ifdef __cplusplus diff --git a/e2sim/src/ASN1c/CauseE2node.c b/e2sim/src/ASN1c/CauseE2node.c new file mode 100644 index 0000000..8fcb57b --- /dev/null +++ b/e2sim/src/ASN1c/CauseE2node.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` + */ + +#include "CauseE2node.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_CauseE2node_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 0, 0 } /* (0..0,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_CauseE2node_value2enum_1[] = { + { 0, 24, "e2node-component-unknown" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_CauseE2node_enum2value_1[] = { + 0 /* e2node-component-unknown(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_CauseE2node_specs_1 = { + asn_MAP_CauseE2node_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_CauseE2node_enum2value_1, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 2, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_CauseE2node_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_CauseE2node = { + "CauseE2node", + "CauseE2node", + &asn_OP_NativeEnumerated, + asn_DEF_CauseE2node_tags_1, + sizeof(asn_DEF_CauseE2node_tags_1) + /sizeof(asn_DEF_CauseE2node_tags_1[0]), /* 1 */ + asn_DEF_CauseE2node_tags_1, /* Same as above */ + sizeof(asn_DEF_CauseE2node_tags_1) + /sizeof(asn_DEF_CauseE2node_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_CauseE2node_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_CauseE2node_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/src/ASN1c/CauseE2node.h b/e2sim/src/ASN1c/CauseE2node.h new file mode 100644 index 0000000..8c818fb --- /dev/null +++ b/e2sim/src/ASN1c/CauseE2node.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` + */ + +#ifndef _CauseE2node_H_ +#define _CauseE2node_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum CauseE2node { + CauseE2node_e2node_component_unknown = 0 + /* + * Enumeration is extensible + */ +} e_CauseE2node; + +/* CauseE2node */ +typedef long CauseE2node_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_CauseE2node_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_CauseE2node; +extern const asn_INTEGER_specifics_t asn_SPC_CauseE2node_specs_1; +asn_struct_free_f CauseE2node_free; +asn_struct_print_f CauseE2node_print; +asn_constr_check_f CauseE2node_constraint; +ber_type_decoder_f CauseE2node_decode_ber; +der_type_encoder_f CauseE2node_encode_der; +xer_type_decoder_f CauseE2node_decode_xer; +xer_type_encoder_f CauseE2node_encode_xer; +per_type_decoder_f CauseE2node_decode_uper; +per_type_encoder_f CauseE2node_encode_uper; +per_type_decoder_f CauseE2node_decode_aper; +per_type_encoder_f CauseE2node_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _CauseE2node_H_ */ +#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/CauseMisc.c b/e2sim/src/ASN1c/CauseMisc.c index 01b6dbd..9ed8c24 100644 --- a/e2sim/src/ASN1c/CauseMisc.c +++ b/e2sim/src/ASN1c/CauseMisc.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #include "CauseMisc.h" diff --git a/e2sim/src/ASN1c/CauseMisc.h b/e2sim/src/ASN1c/CauseMisc.h index 6432f33..bd12d02 100644 --- a/e2sim/src/ASN1c/CauseMisc.h +++ b/e2sim/src/ASN1c/CauseMisc.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #ifndef _CauseMisc_H_ diff --git a/e2sim/src/ASN1c/CauseProtocol.c b/e2sim/src/ASN1c/CauseProtocol.c index bc0b0da..0fdb788 100644 --- a/e2sim/src/ASN1c/CauseProtocol.c +++ b/e2sim/src/ASN1c/CauseProtocol.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #include "CauseProtocol.h" diff --git a/e2sim/src/ASN1c/CauseProtocol.h b/e2sim/src/ASN1c/CauseProtocol.h index b985a17..e4534f8 100644 --- a/e2sim/src/ASN1c/CauseProtocol.h +++ b/e2sim/src/ASN1c/CauseProtocol.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #ifndef _CauseProtocol_H_ diff --git a/e2sim/src/ASN1c/CauseRIC.c b/e2sim/src/ASN1c/CauseRIC.c deleted file mode 100644 index dd41ce5..0000000 --- a/e2sim/src/ASN1c/CauseRIC.c +++ /dev/null @@ -1,73 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` - */ - -#include "CauseRIC.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_CauseRIC_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 4, 4, 0, 10 } /* (0..10,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_CauseRIC_value2enum_1[] = { - { 0, 23, "ran-function-id-Invalid" }, - { 1, 20, "action-not-supported" }, - { 2, 17, "excessive-actions" }, - { 3, 16, "duplicate-action" }, - { 4, 15, "duplicate-event" }, - { 5, 23, "function-resource-limit" }, - { 6, 18, "request-id-unknown" }, - { 7, 46, "inconsistent-action-subsequent-action-sequence" }, - { 8, 23, "control-message-invalid" }, - { 9, 23, "call-process-id-invalid" }, - { 10, 11, "unspecified" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_CauseRIC_enum2value_1[] = { - 1, /* action-not-supported(1) */ - 9, /* call-process-id-invalid(9) */ - 8, /* control-message-invalid(8) */ - 3, /* duplicate-action(3) */ - 4, /* duplicate-event(4) */ - 2, /* excessive-actions(2) */ - 5, /* function-resource-limit(5) */ - 7, /* inconsistent-action-subsequent-action-sequence(7) */ - 0, /* ran-function-id-Invalid(0) */ - 6, /* request-id-unknown(6) */ - 10 /* unspecified(10) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_CauseRIC_specs_1 = { - asn_MAP_CauseRIC_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_CauseRIC_enum2value_1, /* N => "tag"; sorted by N */ - 11, /* Number of elements in the maps */ - 12, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_CauseRIC_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_CauseRIC = { - "CauseRIC", - "CauseRIC", - &asn_OP_NativeEnumerated, - asn_DEF_CauseRIC_tags_1, - sizeof(asn_DEF_CauseRIC_tags_1) - /sizeof(asn_DEF_CauseRIC_tags_1[0]), /* 1 */ - asn_DEF_CauseRIC_tags_1, /* Same as above */ - sizeof(asn_DEF_CauseRIC_tags_1) - /sizeof(asn_DEF_CauseRIC_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_CauseRIC_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_CauseRIC_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/src/ASN1c/CauseRIC.h b/e2sim/src/ASN1c/CauseRIC.h deleted file mode 100644 index f523945..0000000 --- a/e2sim/src/ASN1c/CauseRIC.h +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` - */ - -#ifndef _CauseRIC_H_ -#define _CauseRIC_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum CauseRIC { - CauseRIC_ran_function_id_Invalid = 0, - CauseRIC_action_not_supported = 1, - CauseRIC_excessive_actions = 2, - CauseRIC_duplicate_action = 3, - CauseRIC_duplicate_event = 4, - CauseRIC_function_resource_limit = 5, - CauseRIC_request_id_unknown = 6, - CauseRIC_inconsistent_action_subsequent_action_sequence = 7, - CauseRIC_control_message_invalid = 8, - CauseRIC_call_process_id_invalid = 9, - CauseRIC_unspecified = 10 - /* - * Enumeration is extensible - */ -} e_CauseRIC; - -/* CauseRIC */ -typedef long CauseRIC_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_CauseRIC_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_CauseRIC; -extern const asn_INTEGER_specifics_t asn_SPC_CauseRIC_specs_1; -asn_struct_free_f CauseRIC_free; -asn_struct_print_f CauseRIC_print; -asn_constr_check_f CauseRIC_constraint; -ber_type_decoder_f CauseRIC_decode_ber; -der_type_encoder_f CauseRIC_encode_der; -xer_type_decoder_f CauseRIC_decode_xer; -xer_type_encoder_f CauseRIC_encode_xer; -per_type_decoder_f CauseRIC_decode_uper; -per_type_encoder_f CauseRIC_encode_uper; -per_type_decoder_f CauseRIC_decode_aper; -per_type_encoder_f CauseRIC_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _CauseRIC_H_ */ -#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/CauseRICrequest.c b/e2sim/src/ASN1c/CauseRICrequest.c new file mode 100644 index 0000000..7bceca5 --- /dev/null +++ b/e2sim/src/ASN1c/CauseRICrequest.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` + */ + +#include "CauseRICrequest.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_CauseRICrequest_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 4, 4, 0, 13 } /* (0..13,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_CauseRICrequest_value2enum_1[] = { + { 0, 23, "ran-function-id-invalid" }, + { 1, 20, "action-not-supported" }, + { 2, 17, "excessive-actions" }, + { 3, 16, "duplicate-action" }, + { 4, 23, "duplicate-event-trigger" }, + { 5, 23, "function-resource-limit" }, + { 6, 18, "request-id-unknown" }, + { 7, 46, "inconsistent-action-subsequent-action-sequence" }, + { 8, 23, "control-message-invalid" }, + { 9, 27, "ric-call-process-id-invalid" }, + { 10, 21, "control-timer-expired" }, + { 11, 25, "control-failed-to-execute" }, + { 12, 16, "system-not-ready" }, + { 13, 11, "unspecified" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_CauseRICrequest_enum2value_1[] = { + 1, /* action-not-supported(1) */ + 11, /* control-failed-to-execute(11) */ + 8, /* control-message-invalid(8) */ + 10, /* control-timer-expired(10) */ + 3, /* duplicate-action(3) */ + 4, /* duplicate-event-trigger(4) */ + 2, /* excessive-actions(2) */ + 5, /* function-resource-limit(5) */ + 7, /* inconsistent-action-subsequent-action-sequence(7) */ + 0, /* ran-function-id-invalid(0) */ + 6, /* request-id-unknown(6) */ + 9, /* ric-call-process-id-invalid(9) */ + 12, /* system-not-ready(12) */ + 13 /* unspecified(13) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_CauseRICrequest_specs_1 = { + asn_MAP_CauseRICrequest_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_CauseRICrequest_enum2value_1, /* N => "tag"; sorted by N */ + 14, /* Number of elements in the maps */ + 15, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_CauseRICrequest_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_CauseRICrequest = { + "CauseRICrequest", + "CauseRICrequest", + &asn_OP_NativeEnumerated, + asn_DEF_CauseRICrequest_tags_1, + sizeof(asn_DEF_CauseRICrequest_tags_1) + /sizeof(asn_DEF_CauseRICrequest_tags_1[0]), /* 1 */ + asn_DEF_CauseRICrequest_tags_1, /* Same as above */ + sizeof(asn_DEF_CauseRICrequest_tags_1) + /sizeof(asn_DEF_CauseRICrequest_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_CauseRICrequest_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_CauseRICrequest_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/src/ASN1c/CauseRICrequest.h b/e2sim/src/ASN1c/CauseRICrequest.h new file mode 100644 index 0000000..76294b6 --- /dev/null +++ b/e2sim/src/ASN1c/CauseRICrequest.h @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` + */ + +#ifndef _CauseRICrequest_H_ +#define _CauseRICrequest_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum CauseRICrequest { + CauseRICrequest_ran_function_id_invalid = 0, + CauseRICrequest_action_not_supported = 1, + CauseRICrequest_excessive_actions = 2, + CauseRICrequest_duplicate_action = 3, + CauseRICrequest_duplicate_event_trigger = 4, + CauseRICrequest_function_resource_limit = 5, + CauseRICrequest_request_id_unknown = 6, + CauseRICrequest_inconsistent_action_subsequent_action_sequence = 7, + CauseRICrequest_control_message_invalid = 8, + CauseRICrequest_ric_call_process_id_invalid = 9, + CauseRICrequest_control_timer_expired = 10, + CauseRICrequest_control_failed_to_execute = 11, + CauseRICrequest_system_not_ready = 12, + CauseRICrequest_unspecified = 13 + /* + * Enumeration is extensible + */ +} e_CauseRICrequest; + +/* CauseRICrequest */ +typedef long CauseRICrequest_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_CauseRICrequest_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_CauseRICrequest; +extern const asn_INTEGER_specifics_t asn_SPC_CauseRICrequest_specs_1; +asn_struct_free_f CauseRICrequest_free; +asn_struct_print_f CauseRICrequest_print; +asn_constr_check_f CauseRICrequest_constraint; +ber_type_decoder_f CauseRICrequest_decode_ber; +der_type_encoder_f CauseRICrequest_encode_der; +xer_type_decoder_f CauseRICrequest_decode_xer; +xer_type_encoder_f CauseRICrequest_encode_xer; +per_type_decoder_f CauseRICrequest_decode_uper; +per_type_encoder_f CauseRICrequest_encode_uper; +per_type_decoder_f CauseRICrequest_decode_aper; +per_type_encoder_f CauseRICrequest_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _CauseRICrequest_H_ */ +#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/CauseRICservice.c b/e2sim/src/ASN1c/CauseRICservice.c index a2ede9b..9c08e57 100644 --- a/e2sim/src/ASN1c/CauseRICservice.c +++ b/e2sim/src/ASN1c/CauseRICservice.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #include "CauseRICservice.h" @@ -17,14 +17,14 @@ asn_per_constraints_t asn_PER_type_CauseRICservice_constr_1 CC_NOTUSED = { 0, 0 /* No PER value map */ }; static const asn_INTEGER_enum_map_t asn_MAP_CauseRICservice_value2enum_1[] = { - { 0, 21, "function-not-required" }, + { 0, 26, "ran-function-not-supported" }, { 1, 19, "excessive-functions" }, { 2, 18, "ric-resource-limit" } /* This list is extensible */ }; static const unsigned int asn_MAP_CauseRICservice_enum2value_1[] = { 1, /* excessive-functions(1) */ - 0, /* function-not-required(0) */ + 0, /* ran-function-not-supported(0) */ 2 /* ric-resource-limit(2) */ /* This list is extensible */ }; diff --git a/e2sim/src/ASN1c/CauseRICservice.h b/e2sim/src/ASN1c/CauseRICservice.h index 8840d56..d9b27ef 100644 --- a/e2sim/src/ASN1c/CauseRICservice.h +++ b/e2sim/src/ASN1c/CauseRICservice.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #ifndef _CauseRICservice_H_ @@ -20,7 +20,7 @@ extern "C" { /* Dependencies */ typedef enum CauseRICservice { - CauseRICservice_function_not_required = 0, + CauseRICservice_ran_function_not_supported = 0, CauseRICservice_excessive_functions = 1, CauseRICservice_ric_resource_limit = 2 /* diff --git a/e2sim/src/ASN1c/CauseTransport.c b/e2sim/src/ASN1c/CauseTransport.c index cbbd239..ce9d605 100644 --- a/e2sim/src/ASN1c/CauseTransport.c +++ b/e2sim/src/ASN1c/CauseTransport.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #include "CauseTransport.h" diff --git a/e2sim/src/ASN1c/CauseTransport.h b/e2sim/src/ASN1c/CauseTransport.h index eec71d1..8e926f3 100644 --- a/e2sim/src/ASN1c/CauseTransport.h +++ b/e2sim/src/ASN1c/CauseTransport.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #ifndef _CauseTransport_H_ diff --git a/e2sim/src/ASN1c/Criticality.c b/e2sim/src/ASN1c/Criticality.c index 59ba9d8..5b8c367 100644 --- a/e2sim/src/ASN1c/Criticality.c +++ b/e2sim/src/ASN1c/Criticality.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-CommonDataTypes" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #include "Criticality.h" diff --git a/e2sim/src/ASN1c/Criticality.h b/e2sim/src/ASN1c/Criticality.h index b2a0acc..64e46bb 100644 --- a/e2sim/src/ASN1c/Criticality.h +++ b/e2sim/src/ASN1c/Criticality.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-CommonDataTypes" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #ifndef _Criticality_H_ diff --git a/e2sim/src/ASN1c/CriticalityDiagnostics-IE-Item.c b/e2sim/src/ASN1c/CriticalityDiagnostics-IE-Item.c index 52c8388..5b5c32a 100644 --- a/e2sim/src/ASN1c/CriticalityDiagnostics-IE-Item.c +++ b/e2sim/src/ASN1c/CriticalityDiagnostics-IE-Item.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #include "CriticalityDiagnostics-IE-Item.h" diff --git a/e2sim/src/ASN1c/CriticalityDiagnostics-IE-Item.h b/e2sim/src/ASN1c/CriticalityDiagnostics-IE-Item.h index ede043e..e0b769b 100644 --- a/e2sim/src/ASN1c/CriticalityDiagnostics-IE-Item.h +++ b/e2sim/src/ASN1c/CriticalityDiagnostics-IE-Item.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #ifndef _CriticalityDiagnostics_IE_Item_H_ diff --git a/e2sim/src/ASN1c/CriticalityDiagnostics-IE-List.c b/e2sim/src/ASN1c/CriticalityDiagnostics-IE-List.c index 50f163a..f8a7630 100644 --- a/e2sim/src/ASN1c/CriticalityDiagnostics-IE-List.c +++ b/e2sim/src/ASN1c/CriticalityDiagnostics-IE-List.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #include "CriticalityDiagnostics-IE-List.h" diff --git a/e2sim/src/ASN1c/CriticalityDiagnostics-IE-List.h b/e2sim/src/ASN1c/CriticalityDiagnostics-IE-List.h index 3631dbf..65d4ef0 100644 --- a/e2sim/src/ASN1c/CriticalityDiagnostics-IE-List.h +++ b/e2sim/src/ASN1c/CriticalityDiagnostics-IE-List.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #ifndef _CriticalityDiagnostics_IE_List_H_ diff --git a/e2sim/src/ASN1c/CriticalityDiagnostics.c b/e2sim/src/ASN1c/CriticalityDiagnostics.c index 732642d..5a9e07d 100644 --- a/e2sim/src/ASN1c/CriticalityDiagnostics.c +++ b/e2sim/src/ASN1c/CriticalityDiagnostics.c @@ -1,15 +1,15 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #include "CriticalityDiagnostics.h" #include "RICrequestID.h" #include "CriticalityDiagnostics-IE-List.h" -asn_TYPE_member_t asn_MBR_CriticalityDiagnostics_1[] = { +static asn_TYPE_member_t asn_MBR_CriticalityDiagnostics_1[] = { { ATF_POINTER, 5, offsetof(struct CriticalityDiagnostics, procedureCode), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ @@ -67,7 +67,7 @@ static const asn_TYPE_tag2member_t asn_MAP_CriticalityDiagnostics_tag2el_1[] = { { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* ricRequestorID */ { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* iEsCriticalityDiagnostics */ }; -asn_SEQUENCE_specifics_t asn_SPC_CriticalityDiagnostics_specs_1 = { +static asn_SEQUENCE_specifics_t asn_SPC_CriticalityDiagnostics_specs_1 = { sizeof(struct CriticalityDiagnostics), offsetof(struct CriticalityDiagnostics, _asn_ctx), asn_MAP_CriticalityDiagnostics_tag2el_1, diff --git a/e2sim/src/ASN1c/CriticalityDiagnostics.h b/e2sim/src/ASN1c/CriticalityDiagnostics.h index 67d4802..cf33265 100644 --- a/e2sim/src/ASN1c/CriticalityDiagnostics.h +++ b/e2sim/src/ASN1c/CriticalityDiagnostics.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #ifndef _CriticalityDiagnostics_H_ @@ -43,8 +43,6 @@ typedef struct CriticalityDiagnostics { /* Implementation */ extern asn_TYPE_descriptor_t asn_DEF_CriticalityDiagnostics; -extern asn_SEQUENCE_specifics_t asn_SPC_CriticalityDiagnostics_specs_1; -extern asn_TYPE_member_t asn_MBR_CriticalityDiagnostics_1[5]; #ifdef __cplusplus } diff --git a/e2sim/src/ASN1c/E2AP-PDU.c b/e2sim/src/ASN1c/E2AP-PDU.c index 87b3320..5042ad2 100644 --- a/e2sim/src/ASN1c/E2AP-PDU.c +++ b/e2sim/src/ASN1c/E2AP-PDU.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Descriptions" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #include "E2AP-PDU.h" diff --git a/e2sim/src/ASN1c/E2AP-PDU.h b/e2sim/src/ASN1c/E2AP-PDU.h index 9edfbf3..977ba71 100644 --- a/e2sim/src/ASN1c/E2AP-PDU.h +++ b/e2sim/src/ASN1c/E2AP-PDU.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Descriptions" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #ifndef _E2AP_PDU_H_ diff --git a/e2sim/src/ASN1c/E2connectionSetupFailed-Item.c b/e2sim/src/ASN1c/E2connectionSetupFailed-Item.c index 5792f7f..1bc9bb9 100644 --- a/e2sim/src/ASN1c/E2connectionSetupFailed-Item.c +++ b/e2sim/src/ASN1c/E2connectionSetupFailed-Item.c @@ -1,13 +1,13 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #include "E2connectionSetupFailed-Item.h" -asn_TYPE_member_t asn_MBR_E2connectionSetupFailed_Item_1[] = { +static asn_TYPE_member_t asn_MBR_E2connectionSetupFailed_Item_1[] = { { ATF_NOFLAGS, 0, offsetof(struct E2connectionSetupFailed_Item, tnlInformation), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ @@ -34,7 +34,7 @@ static const asn_TYPE_tag2member_t asn_MAP_E2connectionSetupFailed_Item_tag2el_1 { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* tnlInformation */ { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* cause */ }; -asn_SEQUENCE_specifics_t asn_SPC_E2connectionSetupFailed_Item_specs_1 = { +static asn_SEQUENCE_specifics_t asn_SPC_E2connectionSetupFailed_Item_specs_1 = { sizeof(struct E2connectionSetupFailed_Item), offsetof(struct E2connectionSetupFailed_Item, _asn_ctx), asn_MAP_E2connectionSetupFailed_Item_tag2el_1, diff --git a/e2sim/src/ASN1c/E2connectionSetupFailed-Item.h b/e2sim/src/ASN1c/E2connectionSetupFailed-Item.h index e062ce9..0109037 100644 --- a/e2sim/src/ASN1c/E2connectionSetupFailed-Item.h +++ b/e2sim/src/ASN1c/E2connectionSetupFailed-Item.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #ifndef _E2connectionSetupFailed_Item_H_ @@ -35,8 +35,6 @@ typedef struct E2connectionSetupFailed_Item { /* Implementation */ extern asn_TYPE_descriptor_t asn_DEF_E2connectionSetupFailed_Item; -extern asn_SEQUENCE_specifics_t asn_SPC_E2connectionSetupFailed_Item_specs_1; -extern asn_TYPE_member_t asn_MBR_E2connectionSetupFailed_Item_1[2]; #ifdef __cplusplus } diff --git a/e2sim/src/ASN1c/E2connectionSetupFailed-List.c b/e2sim/src/ASN1c/E2connectionSetupFailed-List.c index 502490b..d06cdfd 100644 --- a/e2sim/src/ASN1c/E2connectionSetupFailed-List.c +++ b/e2sim/src/ASN1c/E2connectionSetupFailed-List.c @@ -1,23 +1,23 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #include "E2connectionSetupFailed-List.h" #include "ProtocolIE-SingleContainer.h" -asn_per_constraints_t asn_PER_type_E2connectionSetupFailed_List_constr_1 CC_NOTUSED = { +static asn_per_constraints_t asn_PER_type_E2connectionSetupFailed_List_constr_1 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */, 0, 0 /* No PER value map */ }; -asn_TYPE_member_t asn_MBR_E2connectionSetupFailed_List_1[] = { +static asn_TYPE_member_t asn_MBR_E2connectionSetupFailed_List_1[] = { { ATF_POINTER, 0, 0, (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, - &asn_DEF_ProtocolIE_SingleContainer_229P5, + &asn_DEF_ProtocolIE_SingleContainer_1920P6, 0, { 0, 0, 0 }, 0, 0, /* No default value */ @@ -27,7 +27,7 @@ asn_TYPE_member_t asn_MBR_E2connectionSetupFailed_List_1[] = { static const ber_tlv_tag_t asn_DEF_E2connectionSetupFailed_List_tags_1[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_SET_OF_specifics_t asn_SPC_E2connectionSetupFailed_List_specs_1 = { +static asn_SET_OF_specifics_t asn_SPC_E2connectionSetupFailed_List_specs_1 = { sizeof(struct E2connectionSetupFailed_List), offsetof(struct E2connectionSetupFailed_List, _asn_ctx), 0, /* XER encoding is XMLDelimitedItemList */ diff --git a/e2sim/src/ASN1c/E2connectionSetupFailed-List.h b/e2sim/src/ASN1c/E2connectionSetupFailed-List.h index 6a5265c..7e14810 100644 --- a/e2sim/src/ASN1c/E2connectionSetupFailed-List.h +++ b/e2sim/src/ASN1c/E2connectionSetupFailed-List.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #ifndef _E2connectionSetupFailed_List_H_ @@ -32,9 +32,6 @@ typedef struct E2connectionSetupFailed_List { /* Implementation */ extern asn_TYPE_descriptor_t asn_DEF_E2connectionSetupFailed_List; -extern asn_SET_OF_specifics_t asn_SPC_E2connectionSetupFailed_List_specs_1; -extern asn_TYPE_member_t asn_MBR_E2connectionSetupFailed_List_1[1]; -extern asn_per_constraints_t asn_PER_type_E2connectionSetupFailed_List_constr_1; #ifdef __cplusplus } diff --git a/e2sim/src/ASN1c/E2connectionUpdate-Item.c b/e2sim/src/ASN1c/E2connectionUpdate-Item.c index c109abf..fa59079 100644 --- a/e2sim/src/ASN1c/E2connectionUpdate-Item.c +++ b/e2sim/src/ASN1c/E2connectionUpdate-Item.c @@ -1,13 +1,13 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #include "E2connectionUpdate-Item.h" -asn_TYPE_member_t asn_MBR_E2connectionUpdate_Item_1[] = { +static asn_TYPE_member_t asn_MBR_E2connectionUpdate_Item_1[] = { { ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdate_Item, tnlInformation), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ @@ -34,7 +34,7 @@ static const asn_TYPE_tag2member_t asn_MAP_E2connectionUpdate_Item_tag2el_1[] = { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* tnlInformation */ { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* tnlUsage */ }; -asn_SEQUENCE_specifics_t asn_SPC_E2connectionUpdate_Item_specs_1 = { +static asn_SEQUENCE_specifics_t asn_SPC_E2connectionUpdate_Item_specs_1 = { sizeof(struct E2connectionUpdate_Item), offsetof(struct E2connectionUpdate_Item, _asn_ctx), asn_MAP_E2connectionUpdate_Item_tag2el_1, diff --git a/e2sim/src/ASN1c/E2connectionUpdate-Item.h b/e2sim/src/ASN1c/E2connectionUpdate-Item.h index 85f6ebb..e312331 100644 --- a/e2sim/src/ASN1c/E2connectionUpdate-Item.h +++ b/e2sim/src/ASN1c/E2connectionUpdate-Item.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #ifndef _E2connectionUpdate_Item_H_ @@ -35,8 +35,6 @@ typedef struct E2connectionUpdate_Item { /* Implementation */ extern asn_TYPE_descriptor_t asn_DEF_E2connectionUpdate_Item; -extern asn_SEQUENCE_specifics_t asn_SPC_E2connectionUpdate_Item_specs_1; -extern asn_TYPE_member_t asn_MBR_E2connectionUpdate_Item_1[2]; #ifdef __cplusplus } diff --git a/e2sim/src/ASN1c/E2connectionUpdate-List.c b/e2sim/src/ASN1c/E2connectionUpdate-List.c index 0f5f738..eef607d 100644 --- a/e2sim/src/ASN1c/E2connectionUpdate-List.c +++ b/e2sim/src/ASN1c/E2connectionUpdate-List.c @@ -1,23 +1,23 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #include "E2connectionUpdate-List.h" #include "ProtocolIE-SingleContainer.h" -asn_per_constraints_t asn_PER_type_E2connectionUpdate_List_constr_1 CC_NOTUSED = { +static asn_per_constraints_t asn_PER_type_E2connectionUpdate_List_constr_1 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */, 0, 0 /* No PER value map */ }; -asn_TYPE_member_t asn_MBR_E2connectionUpdate_List_1[] = { +static asn_TYPE_member_t asn_MBR_E2connectionUpdate_List_1[] = { { ATF_POINTER, 0, 0, (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, - &asn_DEF_ProtocolIE_SingleContainer_229P3, + &asn_DEF_ProtocolIE_SingleContainer_1920P4, 0, { 0, 0, 0 }, 0, 0, /* No default value */ @@ -27,7 +27,7 @@ asn_TYPE_member_t asn_MBR_E2connectionUpdate_List_1[] = { static const ber_tlv_tag_t asn_DEF_E2connectionUpdate_List_tags_1[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_SET_OF_specifics_t asn_SPC_E2connectionUpdate_List_specs_1 = { +static asn_SET_OF_specifics_t asn_SPC_E2connectionUpdate_List_specs_1 = { sizeof(struct E2connectionUpdate_List), offsetof(struct E2connectionUpdate_List, _asn_ctx), 0, /* XER encoding is XMLDelimitedItemList */ diff --git a/e2sim/src/ASN1c/E2connectionUpdate-List.h b/e2sim/src/ASN1c/E2connectionUpdate-List.h index cb71b0a..845bd84 100644 --- a/e2sim/src/ASN1c/E2connectionUpdate-List.h +++ b/e2sim/src/ASN1c/E2connectionUpdate-List.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #ifndef _E2connectionUpdate_List_H_ @@ -32,9 +32,6 @@ typedef struct E2connectionUpdate_List { /* Implementation */ extern asn_TYPE_descriptor_t asn_DEF_E2connectionUpdate_List; -extern asn_SET_OF_specifics_t asn_SPC_E2connectionUpdate_List_specs_1; -extern asn_TYPE_member_t asn_MBR_E2connectionUpdate_List_1[1]; -extern asn_per_constraints_t asn_PER_type_E2connectionUpdate_List_constr_1; #ifdef __cplusplus } diff --git a/e2sim/src/ASN1c/E2connectionUpdate.c b/e2sim/src/ASN1c/E2connectionUpdate.c index 426676e..59c7253 100644 --- a/e2sim/src/ASN1c/E2connectionUpdate.c +++ b/e2sim/src/ASN1c/E2connectionUpdate.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #include "E2connectionUpdate.h" @@ -11,7 +11,7 @@ asn_TYPE_member_t asn_MBR_E2connectionUpdate_1[] = { { ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdate, protocolIEs), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_226P14, + &asn_DEF_ProtocolIE_Container_1917P15, 0, { 0, 0, 0 }, 0, 0, /* No default value */ diff --git a/e2sim/src/ASN1c/E2connectionUpdate.h b/e2sim/src/ASN1c/E2connectionUpdate.h index 9426be7..60a143f 100644 --- a/e2sim/src/ASN1c/E2connectionUpdate.h +++ b/e2sim/src/ASN1c/E2connectionUpdate.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #ifndef _E2connectionUpdate_H_ @@ -21,7 +21,7 @@ extern "C" { /* E2connectionUpdate */ typedef struct E2connectionUpdate { - ProtocolIE_Container_226P14_t protocolIEs; + ProtocolIE_Container_1917P15_t protocolIEs; /* * This type is extensible, * possible extensions are below. diff --git a/e2sim/src/ASN1c/E2connectionUpdateAcknowledge.c b/e2sim/src/ASN1c/E2connectionUpdateAcknowledge.c index dbc443d..ad48b95 100644 --- a/e2sim/src/ASN1c/E2connectionUpdateAcknowledge.c +++ b/e2sim/src/ASN1c/E2connectionUpdateAcknowledge.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #include "E2connectionUpdateAcknowledge.h" @@ -11,7 +11,7 @@ asn_TYPE_member_t asn_MBR_E2connectionUpdateAcknowledge_1[] = { { ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdateAcknowledge, protocolIEs), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_226P15, + &asn_DEF_ProtocolIE_Container_1917P16, 0, { 0, 0, 0 }, 0, 0, /* No default value */ diff --git a/e2sim/src/ASN1c/E2connectionUpdateAcknowledge.h b/e2sim/src/ASN1c/E2connectionUpdateAcknowledge.h index 7dc879e..a03dca2 100644 --- a/e2sim/src/ASN1c/E2connectionUpdateAcknowledge.h +++ b/e2sim/src/ASN1c/E2connectionUpdateAcknowledge.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #ifndef _E2connectionUpdateAcknowledge_H_ @@ -21,7 +21,7 @@ extern "C" { /* E2connectionUpdateAcknowledge */ typedef struct E2connectionUpdateAcknowledge { - ProtocolIE_Container_226P15_t protocolIEs; + ProtocolIE_Container_1917P16_t protocolIEs; /* * This type is extensible, * possible extensions are below. diff --git a/e2sim/src/ASN1c/E2connectionUpdateFailure.c b/e2sim/src/ASN1c/E2connectionUpdateFailure.c index 52c1908..35235a8 100644 --- a/e2sim/src/ASN1c/E2connectionUpdateFailure.c +++ b/e2sim/src/ASN1c/E2connectionUpdateFailure.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #include "E2connectionUpdateFailure.h" @@ -11,7 +11,7 @@ asn_TYPE_member_t asn_MBR_E2connectionUpdateFailure_1[] = { { ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdateFailure, protocolIEs), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_226P16, + &asn_DEF_ProtocolIE_Container_1917P17, 0, { 0, 0, 0 }, 0, 0, /* No default value */ diff --git a/e2sim/src/ASN1c/E2connectionUpdateFailure.h b/e2sim/src/ASN1c/E2connectionUpdateFailure.h index 0e357fd..8cf0d7a 100644 --- a/e2sim/src/ASN1c/E2connectionUpdateFailure.h +++ b/e2sim/src/ASN1c/E2connectionUpdateFailure.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #ifndef _E2connectionUpdateFailure_H_ @@ -21,7 +21,7 @@ extern "C" { /* E2connectionUpdateFailure */ typedef struct E2connectionUpdateFailure { - ProtocolIE_Container_226P16_t protocolIEs; + ProtocolIE_Container_1917P17_t protocolIEs; /* * This type is extensible, * possible extensions are below. diff --git a/e2sim/src/ASN1c/E2connectionUpdateRemove-Item.c b/e2sim/src/ASN1c/E2connectionUpdateRemove-Item.c index 45ae85e..ebac20d 100644 --- a/e2sim/src/ASN1c/E2connectionUpdateRemove-Item.c +++ b/e2sim/src/ASN1c/E2connectionUpdateRemove-Item.c @@ -1,13 +1,13 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #include "E2connectionUpdateRemove-Item.h" -asn_TYPE_member_t asn_MBR_E2connectionUpdateRemove_Item_1[] = { +static asn_TYPE_member_t asn_MBR_E2connectionUpdateRemove_Item_1[] = { { ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdateRemove_Item, tnlInformation), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ @@ -24,7 +24,7 @@ static const ber_tlv_tag_t asn_DEF_E2connectionUpdateRemove_Item_tags_1[] = { static const asn_TYPE_tag2member_t asn_MAP_E2connectionUpdateRemove_Item_tag2el_1[] = { { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* tnlInformation */ }; -asn_SEQUENCE_specifics_t asn_SPC_E2connectionUpdateRemove_Item_specs_1 = { +static asn_SEQUENCE_specifics_t asn_SPC_E2connectionUpdateRemove_Item_specs_1 = { sizeof(struct E2connectionUpdateRemove_Item), offsetof(struct E2connectionUpdateRemove_Item, _asn_ctx), asn_MAP_E2connectionUpdateRemove_Item_tag2el_1, diff --git a/e2sim/src/ASN1c/E2connectionUpdateRemove-Item.h b/e2sim/src/ASN1c/E2connectionUpdateRemove-Item.h index 4a6800c..76669fa 100644 --- a/e2sim/src/ASN1c/E2connectionUpdateRemove-Item.h +++ b/e2sim/src/ASN1c/E2connectionUpdateRemove-Item.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #ifndef _E2connectionUpdateRemove_Item_H_ @@ -33,8 +33,6 @@ typedef struct E2connectionUpdateRemove_Item { /* Implementation */ extern asn_TYPE_descriptor_t asn_DEF_E2connectionUpdateRemove_Item; -extern asn_SEQUENCE_specifics_t asn_SPC_E2connectionUpdateRemove_Item_specs_1; -extern asn_TYPE_member_t asn_MBR_E2connectionUpdateRemove_Item_1[1]; #ifdef __cplusplus } diff --git a/e2sim/src/ASN1c/E2connectionUpdateRemove-List.c b/e2sim/src/ASN1c/E2connectionUpdateRemove-List.c index c9a4624..500a81e 100644 --- a/e2sim/src/ASN1c/E2connectionUpdateRemove-List.c +++ b/e2sim/src/ASN1c/E2connectionUpdateRemove-List.c @@ -1,23 +1,23 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #include "E2connectionUpdateRemove-List.h" #include "ProtocolIE-SingleContainer.h" -asn_per_constraints_t asn_PER_type_E2connectionUpdateRemove_List_constr_1 CC_NOTUSED = { +static asn_per_constraints_t asn_PER_type_E2connectionUpdateRemove_List_constr_1 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */, 0, 0 /* No PER value map */ }; -asn_TYPE_member_t asn_MBR_E2connectionUpdateRemove_List_1[] = { +static asn_TYPE_member_t asn_MBR_E2connectionUpdateRemove_List_1[] = { { ATF_POINTER, 0, 0, (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, - &asn_DEF_ProtocolIE_SingleContainer_229P4, + &asn_DEF_ProtocolIE_SingleContainer_1920P5, 0, { 0, 0, 0 }, 0, 0, /* No default value */ @@ -27,7 +27,7 @@ asn_TYPE_member_t asn_MBR_E2connectionUpdateRemove_List_1[] = { static const ber_tlv_tag_t asn_DEF_E2connectionUpdateRemove_List_tags_1[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_SET_OF_specifics_t asn_SPC_E2connectionUpdateRemove_List_specs_1 = { +static asn_SET_OF_specifics_t asn_SPC_E2connectionUpdateRemove_List_specs_1 = { sizeof(struct E2connectionUpdateRemove_List), offsetof(struct E2connectionUpdateRemove_List, _asn_ctx), 0, /* XER encoding is XMLDelimitedItemList */ diff --git a/e2sim/src/ASN1c/E2connectionUpdateRemove-List.h b/e2sim/src/ASN1c/E2connectionUpdateRemove-List.h index f6dd3d2..ec80ae8 100644 --- a/e2sim/src/ASN1c/E2connectionUpdateRemove-List.h +++ b/e2sim/src/ASN1c/E2connectionUpdateRemove-List.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #ifndef _E2connectionUpdateRemove_List_H_ @@ -32,9 +32,6 @@ typedef struct E2connectionUpdateRemove_List { /* Implementation */ extern asn_TYPE_descriptor_t asn_DEF_E2connectionUpdateRemove_List; -extern asn_SET_OF_specifics_t asn_SPC_E2connectionUpdateRemove_List_specs_1; -extern asn_TYPE_member_t asn_MBR_E2connectionUpdateRemove_List_1[1]; -extern asn_per_constraints_t asn_PER_type_E2connectionUpdateRemove_List_constr_1; #ifdef __cplusplus } diff --git a/e2sim/src/ASN1c/E2nodeComponentConfigAddition-Item.c b/e2sim/src/ASN1c/E2nodeComponentConfigAddition-Item.c new file mode 100644 index 0000000..45cfa47 --- /dev/null +++ b/e2sim/src/ASN1c/E2nodeComponentConfigAddition-Item.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` + */ + +#include "E2nodeComponentConfigAddition-Item.h" + +static asn_TYPE_member_t asn_MBR_E2nodeComponentConfigAddition_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigAddition_Item, e2nodeComponentInterfaceType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_E2nodeComponentInterfaceType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "e2nodeComponentInterfaceType" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigAddition_Item, e2nodeComponentID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_E2nodeComponentID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "e2nodeComponentID" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigAddition_Item, e2nodeComponentConfiguration), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_E2nodeComponentConfiguration, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "e2nodeComponentConfiguration" + }, +}; +static const ber_tlv_tag_t asn_DEF_E2nodeComponentConfigAddition_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_E2nodeComponentConfigAddition_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e2nodeComponentInterfaceType */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* e2nodeComponentID */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* e2nodeComponentConfiguration */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigAddition_Item_specs_1 = { + sizeof(struct E2nodeComponentConfigAddition_Item), + offsetof(struct E2nodeComponentConfigAddition_Item, _asn_ctx), + asn_MAP_E2nodeComponentConfigAddition_Item_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigAddition_Item = { + "E2nodeComponentConfigAddition-Item", + "E2nodeComponentConfigAddition-Item", + &asn_OP_SEQUENCE, + asn_DEF_E2nodeComponentConfigAddition_Item_tags_1, + sizeof(asn_DEF_E2nodeComponentConfigAddition_Item_tags_1) + /sizeof(asn_DEF_E2nodeComponentConfigAddition_Item_tags_1[0]), /* 1 */ + asn_DEF_E2nodeComponentConfigAddition_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_E2nodeComponentConfigAddition_Item_tags_1) + /sizeof(asn_DEF_E2nodeComponentConfigAddition_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_E2nodeComponentConfigAddition_Item_1, + 3, /* Elements count */ + &asn_SPC_E2nodeComponentConfigAddition_Item_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/src/ASN1c/E2nodeComponentConfigAddition-Item.h b/e2sim/src/ASN1c/E2nodeComponentConfigAddition-Item.h new file mode 100644 index 0000000..009d0ad --- /dev/null +++ b/e2sim/src/ASN1c/E2nodeComponentConfigAddition-Item.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` + */ + +#ifndef _E2nodeComponentConfigAddition_Item_H_ +#define _E2nodeComponentConfigAddition_Item_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "E2nodeComponentInterfaceType.h" +#include "E2nodeComponentID.h" +#include "E2nodeComponentConfiguration.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* E2nodeComponentConfigAddition-Item */ +typedef struct E2nodeComponentConfigAddition_Item { + E2nodeComponentInterfaceType_t e2nodeComponentInterfaceType; + E2nodeComponentID_t e2nodeComponentID; + E2nodeComponentConfiguration_t e2nodeComponentConfiguration; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2nodeComponentConfigAddition_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigAddition_Item; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2nodeComponentConfigAddition_Item_H_ */ +#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/E2nodeComponentConfigAddition-List.c b/e2sim/src/ASN1c/E2nodeComponentConfigAddition-List.c new file mode 100644 index 0000000..8175003 --- /dev/null +++ b/e2sim/src/ASN1c/E2nodeComponentConfigAddition-List.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` + */ + +#include "E2nodeComponentConfigAddition-List.h" + +#include "ProtocolIE-SingleContainer.h" +static asn_per_constraints_t asn_PER_type_E2nodeComponentConfigAddition_List_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 10, 10, 1, 1024 } /* (SIZE(1..1024)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_E2nodeComponentConfigAddition_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ProtocolIE_SingleContainer_1920P7, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_E2nodeComponentConfigAddition_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_E2nodeComponentConfigAddition_List_specs_1 = { + sizeof(struct E2nodeComponentConfigAddition_List), + offsetof(struct E2nodeComponentConfigAddition_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigAddition_List = { + "E2nodeComponentConfigAddition-List", + "E2nodeComponentConfigAddition-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_E2nodeComponentConfigAddition_List_tags_1, + sizeof(asn_DEF_E2nodeComponentConfigAddition_List_tags_1) + /sizeof(asn_DEF_E2nodeComponentConfigAddition_List_tags_1[0]), /* 1 */ + asn_DEF_E2nodeComponentConfigAddition_List_tags_1, /* Same as above */ + sizeof(asn_DEF_E2nodeComponentConfigAddition_List_tags_1) + /sizeof(asn_DEF_E2nodeComponentConfigAddition_List_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_E2nodeComponentConfigAddition_List_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_E2nodeComponentConfigAddition_List_1, + 1, /* Single element */ + &asn_SPC_E2nodeComponentConfigAddition_List_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/src/ASN1c/E2nodeComponentConfigAddition-List.h b/e2sim/src/ASN1c/E2nodeComponentConfigAddition-List.h new file mode 100644 index 0000000..62747cb --- /dev/null +++ b/e2sim/src/ASN1c/E2nodeComponentConfigAddition-List.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` + */ + +#ifndef _E2nodeComponentConfigAddition_List_H_ +#define _E2nodeComponentConfigAddition_List_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolIE_SingleContainer; + +/* E2nodeComponentConfigAddition-List */ +typedef struct E2nodeComponentConfigAddition_List { + A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2nodeComponentConfigAddition_List_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigAddition_List; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2nodeComponentConfigAddition_List_H_ */ +#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/E2nodeComponentConfigAdditionAck-Item.c b/e2sim/src/ASN1c/E2nodeComponentConfigAdditionAck-Item.c new file mode 100644 index 0000000..29cef18 --- /dev/null +++ b/e2sim/src/ASN1c/E2nodeComponentConfigAdditionAck-Item.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` + */ + +#include "E2nodeComponentConfigAdditionAck-Item.h" + +static asn_TYPE_member_t asn_MBR_E2nodeComponentConfigAdditionAck_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigAdditionAck_Item, e2nodeComponentInterfaceType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_E2nodeComponentInterfaceType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "e2nodeComponentInterfaceType" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigAdditionAck_Item, e2nodeComponentID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_E2nodeComponentID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "e2nodeComponentID" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigAdditionAck_Item, e2nodeComponentConfigurationAck), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_E2nodeComponentConfigurationAck, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "e2nodeComponentConfigurationAck" + }, +}; +static const ber_tlv_tag_t asn_DEF_E2nodeComponentConfigAdditionAck_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_E2nodeComponentConfigAdditionAck_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e2nodeComponentInterfaceType */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* e2nodeComponentID */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* e2nodeComponentConfigurationAck */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigAdditionAck_Item_specs_1 = { + sizeof(struct E2nodeComponentConfigAdditionAck_Item), + offsetof(struct E2nodeComponentConfigAdditionAck_Item, _asn_ctx), + asn_MAP_E2nodeComponentConfigAdditionAck_Item_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigAdditionAck_Item = { + "E2nodeComponentConfigAdditionAck-Item", + "E2nodeComponentConfigAdditionAck-Item", + &asn_OP_SEQUENCE, + asn_DEF_E2nodeComponentConfigAdditionAck_Item_tags_1, + sizeof(asn_DEF_E2nodeComponentConfigAdditionAck_Item_tags_1) + /sizeof(asn_DEF_E2nodeComponentConfigAdditionAck_Item_tags_1[0]), /* 1 */ + asn_DEF_E2nodeComponentConfigAdditionAck_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_E2nodeComponentConfigAdditionAck_Item_tags_1) + /sizeof(asn_DEF_E2nodeComponentConfigAdditionAck_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_E2nodeComponentConfigAdditionAck_Item_1, + 3, /* Elements count */ + &asn_SPC_E2nodeComponentConfigAdditionAck_Item_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/src/ASN1c/E2nodeComponentConfigAdditionAck-Item.h b/e2sim/src/ASN1c/E2nodeComponentConfigAdditionAck-Item.h new file mode 100644 index 0000000..eb62eb7 --- /dev/null +++ b/e2sim/src/ASN1c/E2nodeComponentConfigAdditionAck-Item.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` + */ + +#ifndef _E2nodeComponentConfigAdditionAck_Item_H_ +#define _E2nodeComponentConfigAdditionAck_Item_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "E2nodeComponentInterfaceType.h" +#include "E2nodeComponentID.h" +#include "E2nodeComponentConfigurationAck.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* E2nodeComponentConfigAdditionAck-Item */ +typedef struct E2nodeComponentConfigAdditionAck_Item { + E2nodeComponentInterfaceType_t e2nodeComponentInterfaceType; + E2nodeComponentID_t e2nodeComponentID; + E2nodeComponentConfigurationAck_t e2nodeComponentConfigurationAck; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2nodeComponentConfigAdditionAck_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigAdditionAck_Item; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2nodeComponentConfigAdditionAck_Item_H_ */ +#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/E2nodeComponentConfigAdditionAck-List.c b/e2sim/src/ASN1c/E2nodeComponentConfigAdditionAck-List.c new file mode 100644 index 0000000..70f51bb --- /dev/null +++ b/e2sim/src/ASN1c/E2nodeComponentConfigAdditionAck-List.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` + */ + +#include "E2nodeComponentConfigAdditionAck-List.h" + +#include "ProtocolIE-SingleContainer.h" +static asn_per_constraints_t asn_PER_type_E2nodeComponentConfigAdditionAck_List_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 10, 10, 1, 1024 } /* (SIZE(1..1024)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_E2nodeComponentConfigAdditionAck_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ProtocolIE_SingleContainer_1920P11, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_E2nodeComponentConfigAdditionAck_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_E2nodeComponentConfigAdditionAck_List_specs_1 = { + sizeof(struct E2nodeComponentConfigAdditionAck_List), + offsetof(struct E2nodeComponentConfigAdditionAck_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigAdditionAck_List = { + "E2nodeComponentConfigAdditionAck-List", + "E2nodeComponentConfigAdditionAck-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_E2nodeComponentConfigAdditionAck_List_tags_1, + sizeof(asn_DEF_E2nodeComponentConfigAdditionAck_List_tags_1) + /sizeof(asn_DEF_E2nodeComponentConfigAdditionAck_List_tags_1[0]), /* 1 */ + asn_DEF_E2nodeComponentConfigAdditionAck_List_tags_1, /* Same as above */ + sizeof(asn_DEF_E2nodeComponentConfigAdditionAck_List_tags_1) + /sizeof(asn_DEF_E2nodeComponentConfigAdditionAck_List_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_E2nodeComponentConfigAdditionAck_List_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_E2nodeComponentConfigAdditionAck_List_1, + 1, /* Single element */ + &asn_SPC_E2nodeComponentConfigAdditionAck_List_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/src/ASN1c/E2nodeComponentConfigAdditionAck-List.h b/e2sim/src/ASN1c/E2nodeComponentConfigAdditionAck-List.h new file mode 100644 index 0000000..9a77b8b --- /dev/null +++ b/e2sim/src/ASN1c/E2nodeComponentConfigAdditionAck-List.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` + */ + +#ifndef _E2nodeComponentConfigAdditionAck_List_H_ +#define _E2nodeComponentConfigAdditionAck_List_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolIE_SingleContainer; + +/* E2nodeComponentConfigAdditionAck-List */ +typedef struct E2nodeComponentConfigAdditionAck_List { + A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2nodeComponentConfigAdditionAck_List_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigAdditionAck_List; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2nodeComponentConfigAdditionAck_List_H_ */ +#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/E2nodeComponentConfigRemoval-Item.c b/e2sim/src/ASN1c/E2nodeComponentConfigRemoval-Item.c new file mode 100644 index 0000000..6b60e12 --- /dev/null +++ b/e2sim/src/ASN1c/E2nodeComponentConfigRemoval-Item.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` + */ + +#include "E2nodeComponentConfigRemoval-Item.h" + +static asn_TYPE_member_t asn_MBR_E2nodeComponentConfigRemoval_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigRemoval_Item, e2nodeComponentInterfaceType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_E2nodeComponentInterfaceType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "e2nodeComponentInterfaceType" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigRemoval_Item, e2nodeComponentID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_E2nodeComponentID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "e2nodeComponentID" + }, +}; +static const ber_tlv_tag_t asn_DEF_E2nodeComponentConfigRemoval_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_E2nodeComponentConfigRemoval_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e2nodeComponentInterfaceType */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* e2nodeComponentID */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigRemoval_Item_specs_1 = { + sizeof(struct E2nodeComponentConfigRemoval_Item), + offsetof(struct E2nodeComponentConfigRemoval_Item, _asn_ctx), + asn_MAP_E2nodeComponentConfigRemoval_Item_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigRemoval_Item = { + "E2nodeComponentConfigRemoval-Item", + "E2nodeComponentConfigRemoval-Item", + &asn_OP_SEQUENCE, + asn_DEF_E2nodeComponentConfigRemoval_Item_tags_1, + sizeof(asn_DEF_E2nodeComponentConfigRemoval_Item_tags_1) + /sizeof(asn_DEF_E2nodeComponentConfigRemoval_Item_tags_1[0]), /* 1 */ + asn_DEF_E2nodeComponentConfigRemoval_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_E2nodeComponentConfigRemoval_Item_tags_1) + /sizeof(asn_DEF_E2nodeComponentConfigRemoval_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_E2nodeComponentConfigRemoval_Item_1, + 2, /* Elements count */ + &asn_SPC_E2nodeComponentConfigRemoval_Item_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/src/ASN1c/E2nodeComponentConfigRemoval-Item.h b/e2sim/src/ASN1c/E2nodeComponentConfigRemoval-Item.h new file mode 100644 index 0000000..36c86d5 --- /dev/null +++ b/e2sim/src/ASN1c/E2nodeComponentConfigRemoval-Item.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` + */ + +#ifndef _E2nodeComponentConfigRemoval_Item_H_ +#define _E2nodeComponentConfigRemoval_Item_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "E2nodeComponentInterfaceType.h" +#include "E2nodeComponentID.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* E2nodeComponentConfigRemoval-Item */ +typedef struct E2nodeComponentConfigRemoval_Item { + E2nodeComponentInterfaceType_t e2nodeComponentInterfaceType; + E2nodeComponentID_t e2nodeComponentID; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2nodeComponentConfigRemoval_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigRemoval_Item; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2nodeComponentConfigRemoval_Item_H_ */ +#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/E2nodeComponentConfigRemoval-List.c b/e2sim/src/ASN1c/E2nodeComponentConfigRemoval-List.c new file mode 100644 index 0000000..dc48d0f --- /dev/null +++ b/e2sim/src/ASN1c/E2nodeComponentConfigRemoval-List.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` + */ + +#include "E2nodeComponentConfigRemoval-List.h" + +#include "ProtocolIE-SingleContainer.h" +static asn_per_constraints_t asn_PER_type_E2nodeComponentConfigRemoval_List_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 10, 10, 1, 1024 } /* (SIZE(1..1024)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_E2nodeComponentConfigRemoval_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ProtocolIE_SingleContainer_1920P9, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_E2nodeComponentConfigRemoval_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_E2nodeComponentConfigRemoval_List_specs_1 = { + sizeof(struct E2nodeComponentConfigRemoval_List), + offsetof(struct E2nodeComponentConfigRemoval_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigRemoval_List = { + "E2nodeComponentConfigRemoval-List", + "E2nodeComponentConfigRemoval-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_E2nodeComponentConfigRemoval_List_tags_1, + sizeof(asn_DEF_E2nodeComponentConfigRemoval_List_tags_1) + /sizeof(asn_DEF_E2nodeComponentConfigRemoval_List_tags_1[0]), /* 1 */ + asn_DEF_E2nodeComponentConfigRemoval_List_tags_1, /* Same as above */ + sizeof(asn_DEF_E2nodeComponentConfigRemoval_List_tags_1) + /sizeof(asn_DEF_E2nodeComponentConfigRemoval_List_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_E2nodeComponentConfigRemoval_List_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_E2nodeComponentConfigRemoval_List_1, + 1, /* Single element */ + &asn_SPC_E2nodeComponentConfigRemoval_List_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/src/ASN1c/E2nodeComponentConfigRemoval-List.h b/e2sim/src/ASN1c/E2nodeComponentConfigRemoval-List.h new file mode 100644 index 0000000..944a61a --- /dev/null +++ b/e2sim/src/ASN1c/E2nodeComponentConfigRemoval-List.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` + */ + +#ifndef _E2nodeComponentConfigRemoval_List_H_ +#define _E2nodeComponentConfigRemoval_List_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolIE_SingleContainer; + +/* E2nodeComponentConfigRemoval-List */ +typedef struct E2nodeComponentConfigRemoval_List { + A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2nodeComponentConfigRemoval_List_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigRemoval_List; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2nodeComponentConfigRemoval_List_H_ */ +#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/E2nodeComponentConfigRemovalAck-Item.c b/e2sim/src/ASN1c/E2nodeComponentConfigRemovalAck-Item.c new file mode 100644 index 0000000..a07a8bb --- /dev/null +++ b/e2sim/src/ASN1c/E2nodeComponentConfigRemovalAck-Item.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` + */ + +#include "E2nodeComponentConfigRemovalAck-Item.h" + +static asn_TYPE_member_t asn_MBR_E2nodeComponentConfigRemovalAck_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigRemovalAck_Item, e2nodeComponentInterfaceType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_E2nodeComponentInterfaceType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "e2nodeComponentInterfaceType" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigRemovalAck_Item, e2nodeComponentID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_E2nodeComponentID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "e2nodeComponentID" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigRemovalAck_Item, e2nodeComponentConfigurationAck), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_E2nodeComponentConfigurationAck, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "e2nodeComponentConfigurationAck" + }, +}; +static const ber_tlv_tag_t asn_DEF_E2nodeComponentConfigRemovalAck_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_E2nodeComponentConfigRemovalAck_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e2nodeComponentInterfaceType */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* e2nodeComponentID */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* e2nodeComponentConfigurationAck */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigRemovalAck_Item_specs_1 = { + sizeof(struct E2nodeComponentConfigRemovalAck_Item), + offsetof(struct E2nodeComponentConfigRemovalAck_Item, _asn_ctx), + asn_MAP_E2nodeComponentConfigRemovalAck_Item_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigRemovalAck_Item = { + "E2nodeComponentConfigRemovalAck-Item", + "E2nodeComponentConfigRemovalAck-Item", + &asn_OP_SEQUENCE, + asn_DEF_E2nodeComponentConfigRemovalAck_Item_tags_1, + sizeof(asn_DEF_E2nodeComponentConfigRemovalAck_Item_tags_1) + /sizeof(asn_DEF_E2nodeComponentConfigRemovalAck_Item_tags_1[0]), /* 1 */ + asn_DEF_E2nodeComponentConfigRemovalAck_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_E2nodeComponentConfigRemovalAck_Item_tags_1) + /sizeof(asn_DEF_E2nodeComponentConfigRemovalAck_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_E2nodeComponentConfigRemovalAck_Item_1, + 3, /* Elements count */ + &asn_SPC_E2nodeComponentConfigRemovalAck_Item_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/src/ASN1c/E2nodeComponentConfigRemovalAck-Item.h b/e2sim/src/ASN1c/E2nodeComponentConfigRemovalAck-Item.h new file mode 100644 index 0000000..6ab5a05 --- /dev/null +++ b/e2sim/src/ASN1c/E2nodeComponentConfigRemovalAck-Item.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` + */ + +#ifndef _E2nodeComponentConfigRemovalAck_Item_H_ +#define _E2nodeComponentConfigRemovalAck_Item_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "E2nodeComponentInterfaceType.h" +#include "E2nodeComponentID.h" +#include "E2nodeComponentConfigurationAck.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* E2nodeComponentConfigRemovalAck-Item */ +typedef struct E2nodeComponentConfigRemovalAck_Item { + E2nodeComponentInterfaceType_t e2nodeComponentInterfaceType; + E2nodeComponentID_t e2nodeComponentID; + E2nodeComponentConfigurationAck_t e2nodeComponentConfigurationAck; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2nodeComponentConfigRemovalAck_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigRemovalAck_Item; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2nodeComponentConfigRemovalAck_Item_H_ */ +#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/E2nodeComponentConfigRemovalAck-List.c b/e2sim/src/ASN1c/E2nodeComponentConfigRemovalAck-List.c new file mode 100644 index 0000000..ed1c6c7 --- /dev/null +++ b/e2sim/src/ASN1c/E2nodeComponentConfigRemovalAck-List.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` + */ + +#include "E2nodeComponentConfigRemovalAck-List.h" + +#include "ProtocolIE-SingleContainer.h" +static asn_per_constraints_t asn_PER_type_E2nodeComponentConfigRemovalAck_List_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 10, 10, 1, 1024 } /* (SIZE(1..1024)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_E2nodeComponentConfigRemovalAck_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ProtocolIE_SingleContainer_1920P13, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_E2nodeComponentConfigRemovalAck_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_E2nodeComponentConfigRemovalAck_List_specs_1 = { + sizeof(struct E2nodeComponentConfigRemovalAck_List), + offsetof(struct E2nodeComponentConfigRemovalAck_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigRemovalAck_List = { + "E2nodeComponentConfigRemovalAck-List", + "E2nodeComponentConfigRemovalAck-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_E2nodeComponentConfigRemovalAck_List_tags_1, + sizeof(asn_DEF_E2nodeComponentConfigRemovalAck_List_tags_1) + /sizeof(asn_DEF_E2nodeComponentConfigRemovalAck_List_tags_1[0]), /* 1 */ + asn_DEF_E2nodeComponentConfigRemovalAck_List_tags_1, /* Same as above */ + sizeof(asn_DEF_E2nodeComponentConfigRemovalAck_List_tags_1) + /sizeof(asn_DEF_E2nodeComponentConfigRemovalAck_List_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_E2nodeComponentConfigRemovalAck_List_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_E2nodeComponentConfigRemovalAck_List_1, + 1, /* Single element */ + &asn_SPC_E2nodeComponentConfigRemovalAck_List_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/src/ASN1c/E2nodeComponentConfigRemovalAck-List.h b/e2sim/src/ASN1c/E2nodeComponentConfigRemovalAck-List.h new file mode 100644 index 0000000..fc59258 --- /dev/null +++ b/e2sim/src/ASN1c/E2nodeComponentConfigRemovalAck-List.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` + */ + +#ifndef _E2nodeComponentConfigRemovalAck_List_H_ +#define _E2nodeComponentConfigRemovalAck_List_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolIE_SingleContainer; + +/* E2nodeComponentConfigRemovalAck-List */ +typedef struct E2nodeComponentConfigRemovalAck_List { + A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2nodeComponentConfigRemovalAck_List_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigRemovalAck_List; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2nodeComponentConfigRemovalAck_List_H_ */ +#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/E2nodeComponentConfigUpdate-Item.c b/e2sim/src/ASN1c/E2nodeComponentConfigUpdate-Item.c index cc1a0bd..295bf5d 100644 --- a/e2sim/src/ASN1c/E2nodeComponentConfigUpdate-Item.c +++ b/e2sim/src/ASN1c/E2nodeComponentConfigUpdate-Item.c @@ -1,24 +1,23 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #include "E2nodeComponentConfigUpdate-Item.h" -#include "E2nodeComponentID.h" -asn_TYPE_member_t asn_MBR_E2nodeComponentConfigUpdate_Item_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigUpdate_Item, e2nodeComponentType), +static asn_TYPE_member_t asn_MBR_E2nodeComponentConfigUpdate_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigUpdate_Item, e2nodeComponentInterfaceType), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ - &asn_DEF_E2nodeComponentType, + &asn_DEF_E2nodeComponentInterfaceType, 0, { 0, 0, 0 }, 0, 0, /* No default value */ - "e2nodeComponentType" + "e2nodeComponentInterfaceType" }, - { ATF_POINTER, 1, offsetof(struct E2nodeComponentConfigUpdate_Item, e2nodeComponentID), + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigUpdate_Item, e2nodeComponentID), (ASN_TAG_CLASS_CONTEXT | (1 << 2)), +1, /* EXPLICIT tag at current level */ &asn_DEF_E2nodeComponentID, @@ -27,32 +26,30 @@ asn_TYPE_member_t asn_MBR_E2nodeComponentConfigUpdate_Item_1[] = { 0, 0, /* No default value */ "e2nodeComponentID" }, - { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigUpdate_Item, e2nodeComponentConfigUpdate), + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigUpdate_Item, e2nodeComponentConfiguration), (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_E2nodeComponentConfigUpdate, + -1, /* IMPLICIT tag at current level */ + &asn_DEF_E2nodeComponentConfiguration, 0, { 0, 0, 0 }, 0, 0, /* No default value */ - "e2nodeComponentConfigUpdate" + "e2nodeComponentConfiguration" }, }; -static const int asn_MAP_E2nodeComponentConfigUpdate_Item_oms_1[] = { 1 }; static const ber_tlv_tag_t asn_DEF_E2nodeComponentConfigUpdate_Item_tags_1[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; static const asn_TYPE_tag2member_t asn_MAP_E2nodeComponentConfigUpdate_Item_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e2nodeComponentType */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e2nodeComponentInterfaceType */ { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* e2nodeComponentID */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* e2nodeComponentConfigUpdate */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* e2nodeComponentConfiguration */ }; -asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigUpdate_Item_specs_1 = { +static asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigUpdate_Item_specs_1 = { sizeof(struct E2nodeComponentConfigUpdate_Item), offsetof(struct E2nodeComponentConfigUpdate_Item, _asn_ctx), asn_MAP_E2nodeComponentConfigUpdate_Item_tag2el_1, 3, /* Count of tags in the map */ - asn_MAP_E2nodeComponentConfigUpdate_Item_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ + 0, 0, 0, /* Optional elements (not needed) */ 3, /* First extension addition */ }; asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigUpdate_Item = { diff --git a/e2sim/src/ASN1c/E2nodeComponentConfigUpdate-Item.h b/e2sim/src/ASN1c/E2nodeComponentConfigUpdate-Item.h index c78aadf..f78ddbe 100644 --- a/e2sim/src/ASN1c/E2nodeComponentConfigUpdate-Item.h +++ b/e2sim/src/ASN1c/E2nodeComponentConfigUpdate-Item.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #ifndef _E2nodeComponentConfigUpdate_Item_H_ @@ -12,22 +12,20 @@ #include "asn_application.h" /* Including external dependencies */ -#include "E2nodeComponentType.h" -#include "E2nodeComponentConfigUpdate.h" +#include "E2nodeComponentInterfaceType.h" +#include "E2nodeComponentID.h" +#include "E2nodeComponentConfiguration.h" #include "constr_SEQUENCE.h" #ifdef __cplusplus extern "C" { #endif -/* Forward declarations */ -struct E2nodeComponentID; - /* E2nodeComponentConfigUpdate-Item */ typedef struct E2nodeComponentConfigUpdate_Item { - E2nodeComponentType_t e2nodeComponentType; - struct E2nodeComponentID *e2nodeComponentID; /* OPTIONAL */ - E2nodeComponentConfigUpdate_t e2nodeComponentConfigUpdate; + E2nodeComponentInterfaceType_t e2nodeComponentInterfaceType; + E2nodeComponentID_t e2nodeComponentID; + E2nodeComponentConfiguration_t e2nodeComponentConfiguration; /* * This type is extensible, * possible extensions are below. @@ -39,8 +37,6 @@ typedef struct E2nodeComponentConfigUpdate_Item { /* Implementation */ extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigUpdate_Item; -extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigUpdate_Item_specs_1; -extern asn_TYPE_member_t asn_MBR_E2nodeComponentConfigUpdate_Item_1[3]; #ifdef __cplusplus } diff --git a/e2sim/src/ASN1c/E2nodeComponentConfigUpdate-List.c b/e2sim/src/ASN1c/E2nodeComponentConfigUpdate-List.c index f982bb6..7a49f73 100644 --- a/e2sim/src/ASN1c/E2nodeComponentConfigUpdate-List.c +++ b/e2sim/src/ASN1c/E2nodeComponentConfigUpdate-List.c @@ -1,23 +1,23 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #include "E2nodeComponentConfigUpdate-List.h" #include "ProtocolIE-SingleContainer.h" -asn_per_constraints_t asn_PER_type_E2nodeComponentConfigUpdate_List_constr_1 CC_NOTUSED = { +static asn_per_constraints_t asn_PER_type_E2nodeComponentConfigUpdate_List_constr_1 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 10, 10, 1, 1024 } /* (SIZE(1..1024)) */, 0, 0 /* No PER value map */ }; -asn_TYPE_member_t asn_MBR_E2nodeComponentConfigUpdate_List_1[] = { +static asn_TYPE_member_t asn_MBR_E2nodeComponentConfigUpdate_List_1[] = { { ATF_POINTER, 0, 0, (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, - &asn_DEF_ProtocolIE_SingleContainer_229P6, + &asn_DEF_ProtocolIE_SingleContainer_1920P8, 0, { 0, 0, 0 }, 0, 0, /* No default value */ @@ -27,7 +27,7 @@ asn_TYPE_member_t asn_MBR_E2nodeComponentConfigUpdate_List_1[] = { static const ber_tlv_tag_t asn_DEF_E2nodeComponentConfigUpdate_List_tags_1[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_SET_OF_specifics_t asn_SPC_E2nodeComponentConfigUpdate_List_specs_1 = { +static asn_SET_OF_specifics_t asn_SPC_E2nodeComponentConfigUpdate_List_specs_1 = { sizeof(struct E2nodeComponentConfigUpdate_List), offsetof(struct E2nodeComponentConfigUpdate_List, _asn_ctx), 0, /* XER encoding is XMLDelimitedItemList */ diff --git a/e2sim/src/ASN1c/E2nodeComponentConfigUpdate-List.h b/e2sim/src/ASN1c/E2nodeComponentConfigUpdate-List.h index 4795cd5..ee79073 100644 --- a/e2sim/src/ASN1c/E2nodeComponentConfigUpdate-List.h +++ b/e2sim/src/ASN1c/E2nodeComponentConfigUpdate-List.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #ifndef _E2nodeComponentConfigUpdate_List_H_ @@ -32,9 +32,6 @@ typedef struct E2nodeComponentConfigUpdate_List { /* Implementation */ extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigUpdate_List; -extern asn_SET_OF_specifics_t asn_SPC_E2nodeComponentConfigUpdate_List_specs_1; -extern asn_TYPE_member_t asn_MBR_E2nodeComponentConfigUpdate_List_1[1]; -extern asn_per_constraints_t asn_PER_type_E2nodeComponentConfigUpdate_List_constr_1; #ifdef __cplusplus } diff --git a/e2sim/src/ASN1c/E2nodeComponentConfigUpdate.c b/e2sim/src/ASN1c/E2nodeComponentConfigUpdate.c deleted file mode 100644 index 10f6fa6..0000000 --- a/e2sim/src/ASN1c/E2nodeComponentConfigUpdate.c +++ /dev/null @@ -1,86 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` - */ - -#include "E2nodeComponentConfigUpdate.h" - -#include "E2nodeComponentConfigUpdateGNB.h" -#include "E2nodeComponentConfigUpdateENgNB.h" -#include "E2nodeComponentConfigUpdateNGeNB.h" -#include "E2nodeComponentConfigUpdateENB.h" -asn_per_constraints_t asn_PER_type_E2nodeComponentConfigUpdate_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 3 } /* (0..3,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -asn_TYPE_member_t asn_MBR_E2nodeComponentConfigUpdate_1[] = { - { ATF_POINTER, 0, offsetof(struct E2nodeComponentConfigUpdate, choice.gNBconfigUpdate), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E2nodeComponentConfigUpdateGNB, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "gNBconfigUpdate" - }, - { ATF_POINTER, 0, offsetof(struct E2nodeComponentConfigUpdate, choice.en_gNBconfigUpdate), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E2nodeComponentConfigUpdateENgNB, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "en-gNBconfigUpdate" - }, - { ATF_POINTER, 0, offsetof(struct E2nodeComponentConfigUpdate, choice.ng_eNBconfigUpdate), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E2nodeComponentConfigUpdateNGeNB, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ng-eNBconfigUpdate" - }, - { ATF_POINTER, 0, offsetof(struct E2nodeComponentConfigUpdate, choice.eNBconfigUpdate), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_E2nodeComponentConfigUpdateENB, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "eNBconfigUpdate" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_E2nodeComponentConfigUpdate_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* gNBconfigUpdate */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* en-gNBconfigUpdate */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* ng-eNBconfigUpdate */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* eNBconfigUpdate */ -}; -asn_CHOICE_specifics_t asn_SPC_E2nodeComponentConfigUpdate_specs_1 = { - sizeof(struct E2nodeComponentConfigUpdate), - offsetof(struct E2nodeComponentConfigUpdate, _asn_ctx), - offsetof(struct E2nodeComponentConfigUpdate, present), - sizeof(((struct E2nodeComponentConfigUpdate *)0)->present), - asn_MAP_E2nodeComponentConfigUpdate_tag2el_1, - 4, /* Count of tags in the map */ - 0, 0, - 4 /* Extensions start */ -}; -asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigUpdate = { - "E2nodeComponentConfigUpdate", - "E2nodeComponentConfigUpdate", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { 0, &asn_PER_type_E2nodeComponentConfigUpdate_constr_1, CHOICE_constraint }, - asn_MBR_E2nodeComponentConfigUpdate_1, - 4, /* Elements count */ - &asn_SPC_E2nodeComponentConfigUpdate_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/src/ASN1c/E2nodeComponentConfigUpdate.h b/e2sim/src/ASN1c/E2nodeComponentConfigUpdate.h deleted file mode 100644 index 6e0ca4a..0000000 --- a/e2sim/src/ASN1c/E2nodeComponentConfigUpdate.h +++ /dev/null @@ -1,67 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` - */ - -#ifndef _E2nodeComponentConfigUpdate_H_ -#define _E2nodeComponentConfigUpdate_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "constr_CHOICE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum E2nodeComponentConfigUpdate_PR { - E2nodeComponentConfigUpdate_PR_NOTHING, /* No components present */ - E2nodeComponentConfigUpdate_PR_gNBconfigUpdate, - E2nodeComponentConfigUpdate_PR_en_gNBconfigUpdate, - E2nodeComponentConfigUpdate_PR_ng_eNBconfigUpdate, - E2nodeComponentConfigUpdate_PR_eNBconfigUpdate - /* Extensions may appear below */ - -} E2nodeComponentConfigUpdate_PR; - -/* Forward declarations */ -struct E2nodeComponentConfigUpdateGNB; -struct E2nodeComponentConfigUpdateENgNB; -struct E2nodeComponentConfigUpdateNGeNB; -struct E2nodeComponentConfigUpdateENB; - -/* E2nodeComponentConfigUpdate */ -typedef struct E2nodeComponentConfigUpdate { - E2nodeComponentConfigUpdate_PR present; - union E2nodeComponentConfigUpdate_u { - struct E2nodeComponentConfigUpdateGNB *gNBconfigUpdate; - struct E2nodeComponentConfigUpdateENgNB *en_gNBconfigUpdate; - struct E2nodeComponentConfigUpdateNGeNB *ng_eNBconfigUpdate; - struct E2nodeComponentConfigUpdateENB *eNBconfigUpdate; - /* - * This type is extensible, - * possible extensions are below. - */ - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E2nodeComponentConfigUpdate_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigUpdate; -extern asn_CHOICE_specifics_t asn_SPC_E2nodeComponentConfigUpdate_specs_1; -extern asn_TYPE_member_t asn_MBR_E2nodeComponentConfigUpdate_1[4]; -extern asn_per_constraints_t asn_PER_type_E2nodeComponentConfigUpdate_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _E2nodeComponentConfigUpdate_H_ */ -#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/E2nodeComponentConfigUpdateAck-Item.c b/e2sim/src/ASN1c/E2nodeComponentConfigUpdateAck-Item.c index 77cdb1b..8b33328 100644 --- a/e2sim/src/ASN1c/E2nodeComponentConfigUpdateAck-Item.c +++ b/e2sim/src/ASN1c/E2nodeComponentConfigUpdateAck-Item.c @@ -1,24 +1,23 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #include "E2nodeComponentConfigUpdateAck-Item.h" -#include "E2nodeComponentID.h" -asn_TYPE_member_t asn_MBR_E2nodeComponentConfigUpdateAck_Item_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigUpdateAck_Item, e2nodeComponentType), +static asn_TYPE_member_t asn_MBR_E2nodeComponentConfigUpdateAck_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigUpdateAck_Item, e2nodeComponentInterfaceType), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ - &asn_DEF_E2nodeComponentType, + &asn_DEF_E2nodeComponentInterfaceType, 0, { 0, 0, 0 }, 0, 0, /* No default value */ - "e2nodeComponentType" + "e2nodeComponentInterfaceType" }, - { ATF_POINTER, 1, offsetof(struct E2nodeComponentConfigUpdateAck_Item, e2nodeComponentID), + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigUpdateAck_Item, e2nodeComponentID), (ASN_TAG_CLASS_CONTEXT | (1 << 2)), +1, /* EXPLICIT tag at current level */ &asn_DEF_E2nodeComponentID, @@ -27,32 +26,30 @@ asn_TYPE_member_t asn_MBR_E2nodeComponentConfigUpdateAck_Item_1[] = { 0, 0, /* No default value */ "e2nodeComponentID" }, - { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigUpdateAck_Item, e2nodeComponentConfigUpdateAck), + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigUpdateAck_Item, e2nodeComponentConfigurationAck), (ASN_TAG_CLASS_CONTEXT | (2 << 2)), -1, /* IMPLICIT tag at current level */ - &asn_DEF_E2nodeComponentConfigUpdateAck, + &asn_DEF_E2nodeComponentConfigurationAck, 0, { 0, 0, 0 }, 0, 0, /* No default value */ - "e2nodeComponentConfigUpdateAck" + "e2nodeComponentConfigurationAck" }, }; -static const int asn_MAP_E2nodeComponentConfigUpdateAck_Item_oms_1[] = { 1 }; static const ber_tlv_tag_t asn_DEF_E2nodeComponentConfigUpdateAck_Item_tags_1[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; static const asn_TYPE_tag2member_t asn_MAP_E2nodeComponentConfigUpdateAck_Item_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e2nodeComponentType */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e2nodeComponentInterfaceType */ { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* e2nodeComponentID */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* e2nodeComponentConfigUpdateAck */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* e2nodeComponentConfigurationAck */ }; -asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigUpdateAck_Item_specs_1 = { +static asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigUpdateAck_Item_specs_1 = { sizeof(struct E2nodeComponentConfigUpdateAck_Item), offsetof(struct E2nodeComponentConfigUpdateAck_Item, _asn_ctx), asn_MAP_E2nodeComponentConfigUpdateAck_Item_tag2el_1, 3, /* Count of tags in the map */ - asn_MAP_E2nodeComponentConfigUpdateAck_Item_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ + 0, 0, 0, /* Optional elements (not needed) */ 3, /* First extension addition */ }; asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigUpdateAck_Item = { diff --git a/e2sim/src/ASN1c/E2nodeComponentConfigUpdateAck-Item.h b/e2sim/src/ASN1c/E2nodeComponentConfigUpdateAck-Item.h index cfae915..8fede58 100644 --- a/e2sim/src/ASN1c/E2nodeComponentConfigUpdateAck-Item.h +++ b/e2sim/src/ASN1c/E2nodeComponentConfigUpdateAck-Item.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #ifndef _E2nodeComponentConfigUpdateAck_Item_H_ @@ -12,22 +12,20 @@ #include "asn_application.h" /* Including external dependencies */ -#include "E2nodeComponentType.h" -#include "E2nodeComponentConfigUpdateAck.h" +#include "E2nodeComponentInterfaceType.h" +#include "E2nodeComponentID.h" +#include "E2nodeComponentConfigurationAck.h" #include "constr_SEQUENCE.h" #ifdef __cplusplus extern "C" { #endif -/* Forward declarations */ -struct E2nodeComponentID; - /* E2nodeComponentConfigUpdateAck-Item */ typedef struct E2nodeComponentConfigUpdateAck_Item { - E2nodeComponentType_t e2nodeComponentType; - struct E2nodeComponentID *e2nodeComponentID; /* OPTIONAL */ - E2nodeComponentConfigUpdateAck_t e2nodeComponentConfigUpdateAck; + E2nodeComponentInterfaceType_t e2nodeComponentInterfaceType; + E2nodeComponentID_t e2nodeComponentID; + E2nodeComponentConfigurationAck_t e2nodeComponentConfigurationAck; /* * This type is extensible, * possible extensions are below. @@ -39,8 +37,6 @@ typedef struct E2nodeComponentConfigUpdateAck_Item { /* Implementation */ extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigUpdateAck_Item; -extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigUpdateAck_Item_specs_1; -extern asn_TYPE_member_t asn_MBR_E2nodeComponentConfigUpdateAck_Item_1[3]; #ifdef __cplusplus } diff --git a/e2sim/src/ASN1c/E2nodeComponentConfigUpdateAck-List.c b/e2sim/src/ASN1c/E2nodeComponentConfigUpdateAck-List.c index 779f011..d25030a 100644 --- a/e2sim/src/ASN1c/E2nodeComponentConfigUpdateAck-List.c +++ b/e2sim/src/ASN1c/E2nodeComponentConfigUpdateAck-List.c @@ -1,23 +1,23 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #include "E2nodeComponentConfigUpdateAck-List.h" #include "ProtocolIE-SingleContainer.h" -asn_per_constraints_t asn_PER_type_E2nodeComponentConfigUpdateAck_List_constr_1 CC_NOTUSED = { +static asn_per_constraints_t asn_PER_type_E2nodeComponentConfigUpdateAck_List_constr_1 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 10, 10, 1, 1024 } /* (SIZE(1..1024)) */, 0, 0 /* No PER value map */ }; -asn_TYPE_member_t asn_MBR_E2nodeComponentConfigUpdateAck_List_1[] = { +static asn_TYPE_member_t asn_MBR_E2nodeComponentConfigUpdateAck_List_1[] = { { ATF_POINTER, 0, 0, (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, - &asn_DEF_ProtocolIE_SingleContainer_229P7, + &asn_DEF_ProtocolIE_SingleContainer_1920P12, 0, { 0, 0, 0 }, 0, 0, /* No default value */ @@ -27,7 +27,7 @@ asn_TYPE_member_t asn_MBR_E2nodeComponentConfigUpdateAck_List_1[] = { static const ber_tlv_tag_t asn_DEF_E2nodeComponentConfigUpdateAck_List_tags_1[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_SET_OF_specifics_t asn_SPC_E2nodeComponentConfigUpdateAck_List_specs_1 = { +static asn_SET_OF_specifics_t asn_SPC_E2nodeComponentConfigUpdateAck_List_specs_1 = { sizeof(struct E2nodeComponentConfigUpdateAck_List), offsetof(struct E2nodeComponentConfigUpdateAck_List, _asn_ctx), 0, /* XER encoding is XMLDelimitedItemList */ diff --git a/e2sim/src/ASN1c/E2nodeComponentConfigUpdateAck-List.h b/e2sim/src/ASN1c/E2nodeComponentConfigUpdateAck-List.h index ff89f9e..8d33460 100644 --- a/e2sim/src/ASN1c/E2nodeComponentConfigUpdateAck-List.h +++ b/e2sim/src/ASN1c/E2nodeComponentConfigUpdateAck-List.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #ifndef _E2nodeComponentConfigUpdateAck_List_H_ @@ -32,9 +32,6 @@ typedef struct E2nodeComponentConfigUpdateAck_List { /* Implementation */ extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigUpdateAck_List; -extern asn_SET_OF_specifics_t asn_SPC_E2nodeComponentConfigUpdateAck_List_specs_1; -extern asn_TYPE_member_t asn_MBR_E2nodeComponentConfigUpdateAck_List_1[1]; -extern asn_per_constraints_t asn_PER_type_E2nodeComponentConfigUpdateAck_List_constr_1; #ifdef __cplusplus } diff --git a/e2sim/src/ASN1c/E2nodeComponentConfigUpdateAck.c b/e2sim/src/ASN1c/E2nodeComponentConfigUpdateAck.c deleted file mode 100644 index ac7c6a0..0000000 --- a/e2sim/src/ASN1c/E2nodeComponentConfigUpdateAck.c +++ /dev/null @@ -1,111 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` - */ - -#include "E2nodeComponentConfigUpdateAck.h" - -#include "Cause.h" -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -static asn_per_constraints_t asn_PER_type_updateOutcome_constr_2 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_updateOutcome_value2enum_2[] = { - { 0, 7, "success" }, - { 1, 7, "failure" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_updateOutcome_enum2value_2[] = { - 1, /* failure(1) */ - 0 /* success(0) */ - /* This list is extensible */ -}; -static const asn_INTEGER_specifics_t asn_SPC_updateOutcome_specs_2 = { - asn_MAP_updateOutcome_value2enum_2, /* "tag" => N; sorted by tag */ - asn_MAP_updateOutcome_enum2value_2, /* N => "tag"; sorted by N */ - 2, /* Number of elements in the maps */ - 3, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_updateOutcome_tags_2[] = { - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_updateOutcome_2 = { - "updateOutcome", - "updateOutcome", - &asn_OP_NativeEnumerated, - asn_DEF_updateOutcome_tags_2, - sizeof(asn_DEF_updateOutcome_tags_2) - /sizeof(asn_DEF_updateOutcome_tags_2[0]) - 1, /* 1 */ - asn_DEF_updateOutcome_tags_2, /* Same as above */ - sizeof(asn_DEF_updateOutcome_tags_2) - /sizeof(asn_DEF_updateOutcome_tags_2[0]), /* 2 */ - { 0, &asn_PER_type_updateOutcome_constr_2, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_updateOutcome_specs_2 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_E2nodeComponentConfigUpdateAck_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigUpdateAck, updateOutcome), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_updateOutcome_2, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "updateOutcome" - }, - { ATF_POINTER, 1, offsetof(struct E2nodeComponentConfigUpdateAck, failureCause), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_Cause, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "failureCause" - }, -}; -static const int asn_MAP_E2nodeComponentConfigUpdateAck_oms_1[] = { 1 }; -static const ber_tlv_tag_t asn_DEF_E2nodeComponentConfigUpdateAck_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E2nodeComponentConfigUpdateAck_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* updateOutcome */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* failureCause */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigUpdateAck_specs_1 = { - sizeof(struct E2nodeComponentConfigUpdateAck), - offsetof(struct E2nodeComponentConfigUpdateAck, _asn_ctx), - asn_MAP_E2nodeComponentConfigUpdateAck_tag2el_1, - 2, /* Count of tags in the map */ - asn_MAP_E2nodeComponentConfigUpdateAck_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 2, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigUpdateAck = { - "E2nodeComponentConfigUpdateAck", - "E2nodeComponentConfigUpdateAck", - &asn_OP_SEQUENCE, - asn_DEF_E2nodeComponentConfigUpdateAck_tags_1, - sizeof(asn_DEF_E2nodeComponentConfigUpdateAck_tags_1) - /sizeof(asn_DEF_E2nodeComponentConfigUpdateAck_tags_1[0]), /* 1 */ - asn_DEF_E2nodeComponentConfigUpdateAck_tags_1, /* Same as above */ - sizeof(asn_DEF_E2nodeComponentConfigUpdateAck_tags_1) - /sizeof(asn_DEF_E2nodeComponentConfigUpdateAck_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E2nodeComponentConfigUpdateAck_1, - 2, /* Elements count */ - &asn_SPC_E2nodeComponentConfigUpdateAck_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/src/ASN1c/E2nodeComponentConfigUpdateAck.h b/e2sim/src/ASN1c/E2nodeComponentConfigUpdateAck.h deleted file mode 100644 index b9b5fbc..0000000 --- a/e2sim/src/ASN1c/E2nodeComponentConfigUpdateAck.h +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` - */ - -#ifndef _E2nodeComponentConfigUpdateAck_H_ -#define _E2nodeComponentConfigUpdateAck_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum E2nodeComponentConfigUpdateAck__updateOutcome { - E2nodeComponentConfigUpdateAck__updateOutcome_success = 0, - E2nodeComponentConfigUpdateAck__updateOutcome_failure = 1 - /* - * Enumeration is extensible - */ -} e_E2nodeComponentConfigUpdateAck__updateOutcome; - -/* Forward declarations */ -struct Cause; - -/* E2nodeComponentConfigUpdateAck */ -typedef struct E2nodeComponentConfigUpdateAck { - long updateOutcome; - struct Cause *failureCause; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E2nodeComponentConfigUpdateAck_t; - -/* Implementation */ -/* extern asn_TYPE_descriptor_t asn_DEF_updateOutcome_2; // (Use -fall-defs-global to expose) */ -extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigUpdateAck; -extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigUpdateAck_specs_1; -extern asn_TYPE_member_t asn_MBR_E2nodeComponentConfigUpdateAck_1[2]; - -#ifdef __cplusplus -} -#endif - -#endif /* _E2nodeComponentConfigUpdateAck_H_ */ -#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/E2nodeComponentConfigUpdateENB.c b/e2sim/src/ASN1c/E2nodeComponentConfigUpdateENB.c deleted file mode 100644 index b8ebed0..0000000 --- a/e2sim/src/ASN1c/E2nodeComponentConfigUpdateENB.c +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` - */ - -#include "E2nodeComponentConfigUpdateENB.h" - -asn_TYPE_member_t asn_MBR_E2nodeComponentConfigUpdateENB_1[] = { - { ATF_POINTER, 2, offsetof(struct E2nodeComponentConfigUpdateENB, s1APconfigUpdate), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_OCTET_STRING, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "s1APconfigUpdate" - }, - { ATF_POINTER, 1, offsetof(struct E2nodeComponentConfigUpdateENB, x2APconfigUpdate), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_OCTET_STRING, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "x2APconfigUpdate" - }, -}; -static const int asn_MAP_E2nodeComponentConfigUpdateENB_oms_1[] = { 0, 1 }; -static const ber_tlv_tag_t asn_DEF_E2nodeComponentConfigUpdateENB_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E2nodeComponentConfigUpdateENB_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* s1APconfigUpdate */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* x2APconfigUpdate */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigUpdateENB_specs_1 = { - sizeof(struct E2nodeComponentConfigUpdateENB), - offsetof(struct E2nodeComponentConfigUpdateENB, _asn_ctx), - asn_MAP_E2nodeComponentConfigUpdateENB_tag2el_1, - 2, /* Count of tags in the map */ - asn_MAP_E2nodeComponentConfigUpdateENB_oms_1, /* Optional members */ - 2, 0, /* Root/Additions */ - 2, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigUpdateENB = { - "E2nodeComponentConfigUpdateENB", - "E2nodeComponentConfigUpdateENB", - &asn_OP_SEQUENCE, - asn_DEF_E2nodeComponentConfigUpdateENB_tags_1, - sizeof(asn_DEF_E2nodeComponentConfigUpdateENB_tags_1) - /sizeof(asn_DEF_E2nodeComponentConfigUpdateENB_tags_1[0]), /* 1 */ - asn_DEF_E2nodeComponentConfigUpdateENB_tags_1, /* Same as above */ - sizeof(asn_DEF_E2nodeComponentConfigUpdateENB_tags_1) - /sizeof(asn_DEF_E2nodeComponentConfigUpdateENB_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E2nodeComponentConfigUpdateENB_1, - 2, /* Elements count */ - &asn_SPC_E2nodeComponentConfigUpdateENB_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/src/ASN1c/E2nodeComponentConfigUpdateENB.h b/e2sim/src/ASN1c/E2nodeComponentConfigUpdateENB.h deleted file mode 100644 index ad36d72..0000000 --- a/e2sim/src/ASN1c/E2nodeComponentConfigUpdateENB.h +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` - */ - -#ifndef _E2nodeComponentConfigUpdateENB_H_ -#define _E2nodeComponentConfigUpdateENB_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "OCTET_STRING.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* E2nodeComponentConfigUpdateENB */ -typedef struct E2nodeComponentConfigUpdateENB { - OCTET_STRING_t *s1APconfigUpdate; /* OPTIONAL */ - OCTET_STRING_t *x2APconfigUpdate; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E2nodeComponentConfigUpdateENB_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigUpdateENB; -extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigUpdateENB_specs_1; -extern asn_TYPE_member_t asn_MBR_E2nodeComponentConfigUpdateENB_1[2]; - -#ifdef __cplusplus -} -#endif - -#endif /* _E2nodeComponentConfigUpdateENB_H_ */ -#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/E2nodeComponentConfigUpdateENgNB.c b/e2sim/src/ASN1c/E2nodeComponentConfigUpdateENgNB.c deleted file mode 100644 index f490891..0000000 --- a/e2sim/src/ASN1c/E2nodeComponentConfigUpdateENgNB.c +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` - */ - -#include "E2nodeComponentConfigUpdateENgNB.h" - -asn_TYPE_member_t asn_MBR_E2nodeComponentConfigUpdateENgNB_1[] = { - { ATF_POINTER, 1, offsetof(struct E2nodeComponentConfigUpdateENgNB, x2APconfigUpdate), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_OCTET_STRING, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "x2APconfigUpdate" - }, -}; -static const int asn_MAP_E2nodeComponentConfigUpdateENgNB_oms_1[] = { 0 }; -static const ber_tlv_tag_t asn_DEF_E2nodeComponentConfigUpdateENgNB_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E2nodeComponentConfigUpdateENgNB_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* x2APconfigUpdate */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigUpdateENgNB_specs_1 = { - sizeof(struct E2nodeComponentConfigUpdateENgNB), - offsetof(struct E2nodeComponentConfigUpdateENgNB, _asn_ctx), - asn_MAP_E2nodeComponentConfigUpdateENgNB_tag2el_1, - 1, /* Count of tags in the map */ - asn_MAP_E2nodeComponentConfigUpdateENgNB_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigUpdateENgNB = { - "E2nodeComponentConfigUpdateENgNB", - "E2nodeComponentConfigUpdateENgNB", - &asn_OP_SEQUENCE, - asn_DEF_E2nodeComponentConfigUpdateENgNB_tags_1, - sizeof(asn_DEF_E2nodeComponentConfigUpdateENgNB_tags_1) - /sizeof(asn_DEF_E2nodeComponentConfigUpdateENgNB_tags_1[0]), /* 1 */ - asn_DEF_E2nodeComponentConfigUpdateENgNB_tags_1, /* Same as above */ - sizeof(asn_DEF_E2nodeComponentConfigUpdateENgNB_tags_1) - /sizeof(asn_DEF_E2nodeComponentConfigUpdateENgNB_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E2nodeComponentConfigUpdateENgNB_1, - 1, /* Elements count */ - &asn_SPC_E2nodeComponentConfigUpdateENgNB_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/src/ASN1c/E2nodeComponentConfigUpdateENgNB.h b/e2sim/src/ASN1c/E2nodeComponentConfigUpdateENgNB.h deleted file mode 100644 index 9e5dc10..0000000 --- a/e2sim/src/ASN1c/E2nodeComponentConfigUpdateENgNB.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` - */ - -#ifndef _E2nodeComponentConfigUpdateENgNB_H_ -#define _E2nodeComponentConfigUpdateENgNB_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "OCTET_STRING.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* E2nodeComponentConfigUpdateENgNB */ -typedef struct E2nodeComponentConfigUpdateENgNB { - OCTET_STRING_t *x2APconfigUpdate; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E2nodeComponentConfigUpdateENgNB_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigUpdateENgNB; -extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigUpdateENgNB_specs_1; -extern asn_TYPE_member_t asn_MBR_E2nodeComponentConfigUpdateENgNB_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _E2nodeComponentConfigUpdateENgNB_H_ */ -#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/E2nodeComponentConfigUpdateGNB.c b/e2sim/src/ASN1c/E2nodeComponentConfigUpdateGNB.c deleted file mode 100644 index 814e676..0000000 --- a/e2sim/src/ASN1c/E2nodeComponentConfigUpdateGNB.c +++ /dev/null @@ -1,82 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` - */ - -#include "E2nodeComponentConfigUpdateGNB.h" - -asn_TYPE_member_t asn_MBR_E2nodeComponentConfigUpdateGNB_1[] = { - { ATF_POINTER, 4, offsetof(struct E2nodeComponentConfigUpdateGNB, ngAPconfigUpdate), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_OCTET_STRING, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ngAPconfigUpdate" - }, - { ATF_POINTER, 3, offsetof(struct E2nodeComponentConfigUpdateGNB, xnAPconfigUpdate), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_OCTET_STRING, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "xnAPconfigUpdate" - }, - { ATF_POINTER, 2, offsetof(struct E2nodeComponentConfigUpdateGNB, e1APconfigUpdate), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_OCTET_STRING, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "e1APconfigUpdate" - }, - { ATF_POINTER, 1, offsetof(struct E2nodeComponentConfigUpdateGNB, f1APconfigUpdate), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_OCTET_STRING, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "f1APconfigUpdate" - }, -}; -static const int asn_MAP_E2nodeComponentConfigUpdateGNB_oms_1[] = { 0, 1, 2, 3 }; -static const ber_tlv_tag_t asn_DEF_E2nodeComponentConfigUpdateGNB_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E2nodeComponentConfigUpdateGNB_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ngAPconfigUpdate */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* xnAPconfigUpdate */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* e1APconfigUpdate */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* f1APconfigUpdate */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigUpdateGNB_specs_1 = { - sizeof(struct E2nodeComponentConfigUpdateGNB), - offsetof(struct E2nodeComponentConfigUpdateGNB, _asn_ctx), - asn_MAP_E2nodeComponentConfigUpdateGNB_tag2el_1, - 4, /* Count of tags in the map */ - asn_MAP_E2nodeComponentConfigUpdateGNB_oms_1, /* Optional members */ - 4, 0, /* Root/Additions */ - 4, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigUpdateGNB = { - "E2nodeComponentConfigUpdateGNB", - "E2nodeComponentConfigUpdateGNB", - &asn_OP_SEQUENCE, - asn_DEF_E2nodeComponentConfigUpdateGNB_tags_1, - sizeof(asn_DEF_E2nodeComponentConfigUpdateGNB_tags_1) - /sizeof(asn_DEF_E2nodeComponentConfigUpdateGNB_tags_1[0]), /* 1 */ - asn_DEF_E2nodeComponentConfigUpdateGNB_tags_1, /* Same as above */ - sizeof(asn_DEF_E2nodeComponentConfigUpdateGNB_tags_1) - /sizeof(asn_DEF_E2nodeComponentConfigUpdateGNB_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E2nodeComponentConfigUpdateGNB_1, - 4, /* Elements count */ - &asn_SPC_E2nodeComponentConfigUpdateGNB_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/src/ASN1c/E2nodeComponentConfigUpdateGNB.h b/e2sim/src/ASN1c/E2nodeComponentConfigUpdateGNB.h deleted file mode 100644 index ebdeae3..0000000 --- a/e2sim/src/ASN1c/E2nodeComponentConfigUpdateGNB.h +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` - */ - -#ifndef _E2nodeComponentConfigUpdateGNB_H_ -#define _E2nodeComponentConfigUpdateGNB_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "OCTET_STRING.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* E2nodeComponentConfigUpdateGNB */ -typedef struct E2nodeComponentConfigUpdateGNB { - OCTET_STRING_t *ngAPconfigUpdate; /* OPTIONAL */ - OCTET_STRING_t *xnAPconfigUpdate; /* OPTIONAL */ - OCTET_STRING_t *e1APconfigUpdate; /* OPTIONAL */ - OCTET_STRING_t *f1APconfigUpdate; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E2nodeComponentConfigUpdateGNB_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigUpdateGNB; -extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigUpdateGNB_specs_1; -extern asn_TYPE_member_t asn_MBR_E2nodeComponentConfigUpdateGNB_1[4]; - -#ifdef __cplusplus -} -#endif - -#endif /* _E2nodeComponentConfigUpdateGNB_H_ */ -#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/E2nodeComponentConfigUpdateNGeNB.c b/e2sim/src/ASN1c/E2nodeComponentConfigUpdateNGeNB.c deleted file mode 100644 index 3c726e9..0000000 --- a/e2sim/src/ASN1c/E2nodeComponentConfigUpdateNGeNB.c +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` - */ - -#include "E2nodeComponentConfigUpdateNGeNB.h" - -asn_TYPE_member_t asn_MBR_E2nodeComponentConfigUpdateNGeNB_1[] = { - { ATF_POINTER, 2, offsetof(struct E2nodeComponentConfigUpdateNGeNB, ngAPconfigUpdate), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_OCTET_STRING, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ngAPconfigUpdate" - }, - { ATF_POINTER, 1, offsetof(struct E2nodeComponentConfigUpdateNGeNB, xnAPconfigUpdate), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_OCTET_STRING, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "xnAPconfigUpdate" - }, -}; -static const int asn_MAP_E2nodeComponentConfigUpdateNGeNB_oms_1[] = { 0, 1 }; -static const ber_tlv_tag_t asn_DEF_E2nodeComponentConfigUpdateNGeNB_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E2nodeComponentConfigUpdateNGeNB_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ngAPconfigUpdate */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* xnAPconfigUpdate */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigUpdateNGeNB_specs_1 = { - sizeof(struct E2nodeComponentConfigUpdateNGeNB), - offsetof(struct E2nodeComponentConfigUpdateNGeNB, _asn_ctx), - asn_MAP_E2nodeComponentConfigUpdateNGeNB_tag2el_1, - 2, /* Count of tags in the map */ - asn_MAP_E2nodeComponentConfigUpdateNGeNB_oms_1, /* Optional members */ - 2, 0, /* Root/Additions */ - 2, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigUpdateNGeNB = { - "E2nodeComponentConfigUpdateNGeNB", - "E2nodeComponentConfigUpdateNGeNB", - &asn_OP_SEQUENCE, - asn_DEF_E2nodeComponentConfigUpdateNGeNB_tags_1, - sizeof(asn_DEF_E2nodeComponentConfigUpdateNGeNB_tags_1) - /sizeof(asn_DEF_E2nodeComponentConfigUpdateNGeNB_tags_1[0]), /* 1 */ - asn_DEF_E2nodeComponentConfigUpdateNGeNB_tags_1, /* Same as above */ - sizeof(asn_DEF_E2nodeComponentConfigUpdateNGeNB_tags_1) - /sizeof(asn_DEF_E2nodeComponentConfigUpdateNGeNB_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E2nodeComponentConfigUpdateNGeNB_1, - 2, /* Elements count */ - &asn_SPC_E2nodeComponentConfigUpdateNGeNB_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/src/ASN1c/E2nodeComponentConfigUpdateNGeNB.h b/e2sim/src/ASN1c/E2nodeComponentConfigUpdateNGeNB.h deleted file mode 100644 index 116e211..0000000 --- a/e2sim/src/ASN1c/E2nodeComponentConfigUpdateNGeNB.h +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` - */ - -#ifndef _E2nodeComponentConfigUpdateNGeNB_H_ -#define _E2nodeComponentConfigUpdateNGeNB_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "OCTET_STRING.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* E2nodeComponentConfigUpdateNGeNB */ -typedef struct E2nodeComponentConfigUpdateNGeNB { - OCTET_STRING_t *ngAPconfigUpdate; /* OPTIONAL */ - OCTET_STRING_t *xnAPconfigUpdate; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E2nodeComponentConfigUpdateNGeNB_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigUpdateNGeNB; -extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigUpdateNGeNB_specs_1; -extern asn_TYPE_member_t asn_MBR_E2nodeComponentConfigUpdateNGeNB_1[2]; - -#ifdef __cplusplus -} -#endif - -#endif /* _E2nodeComponentConfigUpdateNGeNB_H_ */ -#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/E2nodeComponentConfiguration.c b/e2sim/src/ASN1c/E2nodeComponentConfiguration.c new file mode 100644 index 0000000..375f39b --- /dev/null +++ b/e2sim/src/ASN1c/E2nodeComponentConfiguration.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` + */ + +#include "E2nodeComponentConfiguration.h" + +asn_TYPE_member_t asn_MBR_E2nodeComponentConfiguration_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfiguration, e2nodeComponentRequestPart), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "e2nodeComponentRequestPart" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfiguration, e2nodeComponentResponsePart), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "e2nodeComponentResponsePart" + }, +}; +static const ber_tlv_tag_t asn_DEF_E2nodeComponentConfiguration_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_E2nodeComponentConfiguration_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e2nodeComponentRequestPart */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* e2nodeComponentResponsePart */ +}; +asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfiguration_specs_1 = { + sizeof(struct E2nodeComponentConfiguration), + offsetof(struct E2nodeComponentConfiguration, _asn_ctx), + asn_MAP_E2nodeComponentConfiguration_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfiguration = { + "E2nodeComponentConfiguration", + "E2nodeComponentConfiguration", + &asn_OP_SEQUENCE, + asn_DEF_E2nodeComponentConfiguration_tags_1, + sizeof(asn_DEF_E2nodeComponentConfiguration_tags_1) + /sizeof(asn_DEF_E2nodeComponentConfiguration_tags_1[0]), /* 1 */ + asn_DEF_E2nodeComponentConfiguration_tags_1, /* Same as above */ + sizeof(asn_DEF_E2nodeComponentConfiguration_tags_1) + /sizeof(asn_DEF_E2nodeComponentConfiguration_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_E2nodeComponentConfiguration_1, + 2, /* Elements count */ + &asn_SPC_E2nodeComponentConfiguration_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/src/ASN1c/E2nodeComponentConfiguration.h b/e2sim/src/ASN1c/E2nodeComponentConfiguration.h new file mode 100644 index 0000000..b9c9277 --- /dev/null +++ b/e2sim/src/ASN1c/E2nodeComponentConfiguration.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` + */ + +#ifndef _E2nodeComponentConfiguration_H_ +#define _E2nodeComponentConfiguration_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "OCTET_STRING.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* E2nodeComponentConfiguration */ +typedef struct E2nodeComponentConfiguration { + OCTET_STRING_t e2nodeComponentRequestPart; + OCTET_STRING_t e2nodeComponentResponsePart; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2nodeComponentConfiguration_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfiguration; +extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfiguration_specs_1; +extern asn_TYPE_member_t asn_MBR_E2nodeComponentConfiguration_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2nodeComponentConfiguration_H_ */ +#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/E2nodeComponentConfigurationAck.c b/e2sim/src/ASN1c/E2nodeComponentConfigurationAck.c new file mode 100644 index 0000000..c17ceb2 --- /dev/null +++ b/e2sim/src/ASN1c/E2nodeComponentConfigurationAck.c @@ -0,0 +1,111 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` + */ + +#include "E2nodeComponentConfigurationAck.h" + +#include "Cause.h" +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_per_constraints_t asn_PER_type_updateOutcome_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_updateOutcome_value2enum_2[] = { + { 0, 7, "success" }, + { 1, 7, "failure" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_updateOutcome_enum2value_2[] = { + 1, /* failure(1) */ + 0 /* success(0) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_updateOutcome_specs_2 = { + asn_MAP_updateOutcome_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_updateOutcome_enum2value_2, /* N => "tag"; sorted by N */ + 2, /* Number of elements in the maps */ + 3, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_updateOutcome_tags_2[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_updateOutcome_2 = { + "updateOutcome", + "updateOutcome", + &asn_OP_NativeEnumerated, + asn_DEF_updateOutcome_tags_2, + sizeof(asn_DEF_updateOutcome_tags_2) + /sizeof(asn_DEF_updateOutcome_tags_2[0]) - 1, /* 1 */ + asn_DEF_updateOutcome_tags_2, /* Same as above */ + sizeof(asn_DEF_updateOutcome_tags_2) + /sizeof(asn_DEF_updateOutcome_tags_2[0]), /* 2 */ + { 0, &asn_PER_type_updateOutcome_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_updateOutcome_specs_2 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_E2nodeComponentConfigurationAck_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigurationAck, updateOutcome), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_updateOutcome_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "updateOutcome" + }, + { ATF_POINTER, 1, offsetof(struct E2nodeComponentConfigurationAck, failureCause), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_Cause, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "failureCause" + }, +}; +static const int asn_MAP_E2nodeComponentConfigurationAck_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_E2nodeComponentConfigurationAck_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_E2nodeComponentConfigurationAck_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* updateOutcome */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* failureCause */ +}; +asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigurationAck_specs_1 = { + sizeof(struct E2nodeComponentConfigurationAck), + offsetof(struct E2nodeComponentConfigurationAck, _asn_ctx), + asn_MAP_E2nodeComponentConfigurationAck_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_E2nodeComponentConfigurationAck_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigurationAck = { + "E2nodeComponentConfigurationAck", + "E2nodeComponentConfigurationAck", + &asn_OP_SEQUENCE, + asn_DEF_E2nodeComponentConfigurationAck_tags_1, + sizeof(asn_DEF_E2nodeComponentConfigurationAck_tags_1) + /sizeof(asn_DEF_E2nodeComponentConfigurationAck_tags_1[0]), /* 1 */ + asn_DEF_E2nodeComponentConfigurationAck_tags_1, /* Same as above */ + sizeof(asn_DEF_E2nodeComponentConfigurationAck_tags_1) + /sizeof(asn_DEF_E2nodeComponentConfigurationAck_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_E2nodeComponentConfigurationAck_1, + 2, /* Elements count */ + &asn_SPC_E2nodeComponentConfigurationAck_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/src/ASN1c/E2nodeComponentConfigurationAck.h b/e2sim/src/ASN1c/E2nodeComponentConfigurationAck.h new file mode 100644 index 0000000..b29691d --- /dev/null +++ b/e2sim/src/ASN1c/E2nodeComponentConfigurationAck.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` + */ + +#ifndef _E2nodeComponentConfigurationAck_H_ +#define _E2nodeComponentConfigurationAck_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum E2nodeComponentConfigurationAck__updateOutcome { + E2nodeComponentConfigurationAck__updateOutcome_success = 0, + E2nodeComponentConfigurationAck__updateOutcome_failure = 1 + /* + * Enumeration is extensible + */ +} e_E2nodeComponentConfigurationAck__updateOutcome; + +/* Forward declarations */ +struct Cause; + +/* E2nodeComponentConfigurationAck */ +typedef struct E2nodeComponentConfigurationAck { + long updateOutcome; + struct Cause *failureCause; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2nodeComponentConfigurationAck_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_updateOutcome_2; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigurationAck; +extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigurationAck_specs_1; +extern asn_TYPE_member_t asn_MBR_E2nodeComponentConfigurationAck_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2nodeComponentConfigurationAck_H_ */ +#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/E2nodeComponentGNB-CU-UP-ID.c b/e2sim/src/ASN1c/E2nodeComponentGNB-CU-UP-ID.c deleted file mode 100644 index 9d6da08..0000000 --- a/e2sim/src/ASN1c/E2nodeComponentGNB-CU-UP-ID.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` - */ - -#include "E2nodeComponentGNB-CU-UP-ID.h" - -asn_TYPE_member_t asn_MBR_E2nodeComponentGNB_CU_UP_ID_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentGNB_CU_UP_ID, gNB_CU_UP_ID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GNB_CU_UP_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "gNB-CU-UP-ID" - }, -}; -static const ber_tlv_tag_t asn_DEF_E2nodeComponentGNB_CU_UP_ID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E2nodeComponentGNB_CU_UP_ID_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* gNB-CU-UP-ID */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentGNB_CU_UP_ID_specs_1 = { - sizeof(struct E2nodeComponentGNB_CU_UP_ID), - offsetof(struct E2nodeComponentGNB_CU_UP_ID, _asn_ctx), - asn_MAP_E2nodeComponentGNB_CU_UP_ID_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E2nodeComponentGNB_CU_UP_ID = { - "E2nodeComponentGNB-CU-UP-ID", - "E2nodeComponentGNB-CU-UP-ID", - &asn_OP_SEQUENCE, - asn_DEF_E2nodeComponentGNB_CU_UP_ID_tags_1, - sizeof(asn_DEF_E2nodeComponentGNB_CU_UP_ID_tags_1) - /sizeof(asn_DEF_E2nodeComponentGNB_CU_UP_ID_tags_1[0]), /* 1 */ - asn_DEF_E2nodeComponentGNB_CU_UP_ID_tags_1, /* Same as above */ - sizeof(asn_DEF_E2nodeComponentGNB_CU_UP_ID_tags_1) - /sizeof(asn_DEF_E2nodeComponentGNB_CU_UP_ID_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E2nodeComponentGNB_CU_UP_ID_1, - 1, /* Elements count */ - &asn_SPC_E2nodeComponentGNB_CU_UP_ID_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/src/ASN1c/E2nodeComponentGNB-CU-UP-ID.h b/e2sim/src/ASN1c/E2nodeComponentGNB-CU-UP-ID.h deleted file mode 100644 index 314e9d4..0000000 --- a/e2sim/src/ASN1c/E2nodeComponentGNB-CU-UP-ID.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` - */ - -#ifndef _E2nodeComponentGNB_CU_UP_ID_H_ -#define _E2nodeComponentGNB_CU_UP_ID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "GNB-CU-UP-ID.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* E2nodeComponentGNB-CU-UP-ID */ -typedef struct E2nodeComponentGNB_CU_UP_ID { - GNB_CU_UP_ID_t gNB_CU_UP_ID; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E2nodeComponentGNB_CU_UP_ID_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentGNB_CU_UP_ID; -extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentGNB_CU_UP_ID_specs_1; -extern asn_TYPE_member_t asn_MBR_E2nodeComponentGNB_CU_UP_ID_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _E2nodeComponentGNB_CU_UP_ID_H_ */ -#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/E2nodeComponentGNB-DU-ID.c b/e2sim/src/ASN1c/E2nodeComponentGNB-DU-ID.c deleted file mode 100644 index f2ed742..0000000 --- a/e2sim/src/ASN1c/E2nodeComponentGNB-DU-ID.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` - */ - -#include "E2nodeComponentGNB-DU-ID.h" - -asn_TYPE_member_t asn_MBR_E2nodeComponentGNB_DU_ID_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentGNB_DU_ID, gNB_DU_ID), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_GNB_DU_ID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "gNB-DU-ID" - }, -}; -static const ber_tlv_tag_t asn_DEF_E2nodeComponentGNB_DU_ID_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E2nodeComponentGNB_DU_ID_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* gNB-DU-ID */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentGNB_DU_ID_specs_1 = { - sizeof(struct E2nodeComponentGNB_DU_ID), - offsetof(struct E2nodeComponentGNB_DU_ID, _asn_ctx), - asn_MAP_E2nodeComponentGNB_DU_ID_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_E2nodeComponentGNB_DU_ID = { - "E2nodeComponentGNB-DU-ID", - "E2nodeComponentGNB-DU-ID", - &asn_OP_SEQUENCE, - asn_DEF_E2nodeComponentGNB_DU_ID_tags_1, - sizeof(asn_DEF_E2nodeComponentGNB_DU_ID_tags_1) - /sizeof(asn_DEF_E2nodeComponentGNB_DU_ID_tags_1[0]), /* 1 */ - asn_DEF_E2nodeComponentGNB_DU_ID_tags_1, /* Same as above */ - sizeof(asn_DEF_E2nodeComponentGNB_DU_ID_tags_1) - /sizeof(asn_DEF_E2nodeComponentGNB_DU_ID_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_E2nodeComponentGNB_DU_ID_1, - 1, /* Elements count */ - &asn_SPC_E2nodeComponentGNB_DU_ID_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/src/ASN1c/E2nodeComponentGNB-DU-ID.h b/e2sim/src/ASN1c/E2nodeComponentGNB-DU-ID.h deleted file mode 100644 index 86ed36a..0000000 --- a/e2sim/src/ASN1c/E2nodeComponentGNB-DU-ID.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` - */ - -#ifndef _E2nodeComponentGNB_DU_ID_H_ -#define _E2nodeComponentGNB_DU_ID_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "GNB-DU-ID.h" -#include "constr_SEQUENCE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* E2nodeComponentGNB-DU-ID */ -typedef struct E2nodeComponentGNB_DU_ID { - GNB_DU_ID_t gNB_DU_ID; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} E2nodeComponentGNB_DU_ID_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentGNB_DU_ID; -extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentGNB_DU_ID_specs_1; -extern asn_TYPE_member_t asn_MBR_E2nodeComponentGNB_DU_ID_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _E2nodeComponentGNB_DU_ID_H_ */ -#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/E2nodeComponentID.c b/e2sim/src/ASN1c/E2nodeComponentID.c index 3ce23a0..ce3697d 100644 --- a/e2sim/src/ASN1c/E2nodeComponentID.c +++ b/e2sim/src/ASN1c/E2nodeComponentID.c @@ -1,42 +1,97 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #include "E2nodeComponentID.h" -#include "E2nodeComponentGNB-CU-UP-ID.h" -#include "E2nodeComponentGNB-DU-ID.h" +#include "E2nodeComponentInterfaceNG.h" +#include "E2nodeComponentInterfaceXn.h" +#include "E2nodeComponentInterfaceE1.h" +#include "E2nodeComponentInterfaceF1.h" +#include "E2nodeComponentInterfaceW1.h" +#include "E2nodeComponentInterfaceS1.h" +#include "E2nodeComponentInterfaceX2.h" asn_per_constraints_t asn_PER_type_E2nodeComponentID_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 6 } /* (0..6,...) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; asn_TYPE_member_t asn_MBR_E2nodeComponentID_1[] = { - { ATF_POINTER, 0, offsetof(struct E2nodeComponentID, choice.e2nodeComponentTypeGNB_CU_UP), + { ATF_POINTER, 0, offsetof(struct E2nodeComponentID, choice.e2nodeComponentInterfaceTypeNG), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ - &asn_DEF_E2nodeComponentGNB_CU_UP_ID, + &asn_DEF_E2nodeComponentInterfaceNG, 0, { 0, 0, 0 }, 0, 0, /* No default value */ - "e2nodeComponentTypeGNB-CU-UP" + "e2nodeComponentInterfaceTypeNG" }, - { ATF_POINTER, 0, offsetof(struct E2nodeComponentID, choice.e2nodeComponentTypeGNB_DU), + { ATF_POINTER, 0, offsetof(struct E2nodeComponentID, choice.e2nodeComponentInterfaceTypeXn), (ASN_TAG_CLASS_CONTEXT | (1 << 2)), -1, /* IMPLICIT tag at current level */ - &asn_DEF_E2nodeComponentGNB_DU_ID, + &asn_DEF_E2nodeComponentInterfaceXn, 0, { 0, 0, 0 }, 0, 0, /* No default value */ - "e2nodeComponentTypeGNB-DU" + "e2nodeComponentInterfaceTypeXn" + }, + { ATF_POINTER, 0, offsetof(struct E2nodeComponentID, choice.e2nodeComponentInterfaceTypeE1), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_E2nodeComponentInterfaceE1, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "e2nodeComponentInterfaceTypeE1" + }, + { ATF_POINTER, 0, offsetof(struct E2nodeComponentID, choice.e2nodeComponentInterfaceTypeF1), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_E2nodeComponentInterfaceF1, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "e2nodeComponentInterfaceTypeF1" + }, + { ATF_POINTER, 0, offsetof(struct E2nodeComponentID, choice.e2nodeComponentInterfaceTypeW1), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_E2nodeComponentInterfaceW1, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "e2nodeComponentInterfaceTypeW1" + }, + { ATF_POINTER, 0, offsetof(struct E2nodeComponentID, choice.e2nodeComponentInterfaceTypeS1), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_E2nodeComponentInterfaceS1, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "e2nodeComponentInterfaceTypeS1" + }, + { ATF_POINTER, 0, offsetof(struct E2nodeComponentID, choice.e2nodeComponentInterfaceTypeX2), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_E2nodeComponentInterfaceX2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "e2nodeComponentInterfaceTypeX2" }, }; static const asn_TYPE_tag2member_t asn_MAP_E2nodeComponentID_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e2nodeComponentTypeGNB-CU-UP */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* e2nodeComponentTypeGNB-DU */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e2nodeComponentInterfaceTypeNG */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* e2nodeComponentInterfaceTypeXn */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* e2nodeComponentInterfaceTypeE1 */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* e2nodeComponentInterfaceTypeF1 */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* e2nodeComponentInterfaceTypeW1 */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* e2nodeComponentInterfaceTypeS1 */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 } /* e2nodeComponentInterfaceTypeX2 */ }; asn_CHOICE_specifics_t asn_SPC_E2nodeComponentID_specs_1 = { sizeof(struct E2nodeComponentID), @@ -44,9 +99,9 @@ asn_CHOICE_specifics_t asn_SPC_E2nodeComponentID_specs_1 = { offsetof(struct E2nodeComponentID, present), sizeof(((struct E2nodeComponentID *)0)->present), asn_MAP_E2nodeComponentID_tag2el_1, - 2, /* Count of tags in the map */ + 7, /* Count of tags in the map */ 0, 0, - 2 /* Extensions start */ + 7 /* Extensions start */ }; asn_TYPE_descriptor_t asn_DEF_E2nodeComponentID = { "E2nodeComponentID", @@ -58,7 +113,7 @@ asn_TYPE_descriptor_t asn_DEF_E2nodeComponentID = { 0, /* No tags (count) */ { 0, &asn_PER_type_E2nodeComponentID_constr_1, CHOICE_constraint }, asn_MBR_E2nodeComponentID_1, - 2, /* Elements count */ + 7, /* Elements count */ &asn_SPC_E2nodeComponentID_specs_1 /* Additional specs */ }; diff --git a/e2sim/src/ASN1c/E2nodeComponentID.h b/e2sim/src/ASN1c/E2nodeComponentID.h index 46b20c3..1e76e9f 100644 --- a/e2sim/src/ASN1c/E2nodeComponentID.h +++ b/e2sim/src/ASN1c/E2nodeComponentID.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #ifndef _E2nodeComponentID_H_ @@ -21,22 +21,37 @@ extern "C" { /* Dependencies */ typedef enum E2nodeComponentID_PR { E2nodeComponentID_PR_NOTHING, /* No components present */ - E2nodeComponentID_PR_e2nodeComponentTypeGNB_CU_UP, - E2nodeComponentID_PR_e2nodeComponentTypeGNB_DU + E2nodeComponentID_PR_e2nodeComponentInterfaceTypeNG, + E2nodeComponentID_PR_e2nodeComponentInterfaceTypeXn, + E2nodeComponentID_PR_e2nodeComponentInterfaceTypeE1, + E2nodeComponentID_PR_e2nodeComponentInterfaceTypeF1, + E2nodeComponentID_PR_e2nodeComponentInterfaceTypeW1, + E2nodeComponentID_PR_e2nodeComponentInterfaceTypeS1, + E2nodeComponentID_PR_e2nodeComponentInterfaceTypeX2 /* Extensions may appear below */ } E2nodeComponentID_PR; /* Forward declarations */ -struct E2nodeComponentGNB_CU_UP_ID; -struct E2nodeComponentGNB_DU_ID; +struct E2nodeComponentInterfaceNG; +struct E2nodeComponentInterfaceXn; +struct E2nodeComponentInterfaceE1; +struct E2nodeComponentInterfaceF1; +struct E2nodeComponentInterfaceW1; +struct E2nodeComponentInterfaceS1; +struct E2nodeComponentInterfaceX2; /* E2nodeComponentID */ typedef struct E2nodeComponentID { E2nodeComponentID_PR present; union E2nodeComponentID_u { - struct E2nodeComponentGNB_CU_UP_ID *e2nodeComponentTypeGNB_CU_UP; - struct E2nodeComponentGNB_DU_ID *e2nodeComponentTypeGNB_DU; + struct E2nodeComponentInterfaceNG *e2nodeComponentInterfaceTypeNG; + struct E2nodeComponentInterfaceXn *e2nodeComponentInterfaceTypeXn; + struct E2nodeComponentInterfaceE1 *e2nodeComponentInterfaceTypeE1; + struct E2nodeComponentInterfaceF1 *e2nodeComponentInterfaceTypeF1; + struct E2nodeComponentInterfaceW1 *e2nodeComponentInterfaceTypeW1; + struct E2nodeComponentInterfaceS1 *e2nodeComponentInterfaceTypeS1; + struct E2nodeComponentInterfaceX2 *e2nodeComponentInterfaceTypeX2; /* * This type is extensible, * possible extensions are below. @@ -50,7 +65,7 @@ typedef struct E2nodeComponentID { /* Implementation */ extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentID; extern asn_CHOICE_specifics_t asn_SPC_E2nodeComponentID_specs_1; -extern asn_TYPE_member_t asn_MBR_E2nodeComponentID_1[2]; +extern asn_TYPE_member_t asn_MBR_E2nodeComponentID_1[7]; extern asn_per_constraints_t asn_PER_type_E2nodeComponentID_constr_1; #ifdef __cplusplus diff --git a/e2sim/src/ASN1c/E2nodeComponentInterfaceE1.c b/e2sim/src/ASN1c/E2nodeComponentInterfaceE1.c new file mode 100644 index 0000000..7183e8d --- /dev/null +++ b/e2sim/src/ASN1c/E2nodeComponentInterfaceE1.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` + */ + +#include "E2nodeComponentInterfaceE1.h" + +asn_TYPE_member_t asn_MBR_E2nodeComponentInterfaceE1_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentInterfaceE1, gNB_CU_CP_ID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_GNB_CU_UP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "gNB-CU-CP-ID" + }, +}; +static const ber_tlv_tag_t asn_DEF_E2nodeComponentInterfaceE1_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_E2nodeComponentInterfaceE1_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* gNB-CU-CP-ID */ +}; +asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentInterfaceE1_specs_1 = { + sizeof(struct E2nodeComponentInterfaceE1), + offsetof(struct E2nodeComponentInterfaceE1, _asn_ctx), + asn_MAP_E2nodeComponentInterfaceE1_tag2el_1, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_E2nodeComponentInterfaceE1 = { + "E2nodeComponentInterfaceE1", + "E2nodeComponentInterfaceE1", + &asn_OP_SEQUENCE, + asn_DEF_E2nodeComponentInterfaceE1_tags_1, + sizeof(asn_DEF_E2nodeComponentInterfaceE1_tags_1) + /sizeof(asn_DEF_E2nodeComponentInterfaceE1_tags_1[0]), /* 1 */ + asn_DEF_E2nodeComponentInterfaceE1_tags_1, /* Same as above */ + sizeof(asn_DEF_E2nodeComponentInterfaceE1_tags_1) + /sizeof(asn_DEF_E2nodeComponentInterfaceE1_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_E2nodeComponentInterfaceE1_1, + 1, /* Elements count */ + &asn_SPC_E2nodeComponentInterfaceE1_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/src/ASN1c/E2nodeComponentInterfaceE1.h b/e2sim/src/ASN1c/E2nodeComponentInterfaceE1.h new file mode 100644 index 0000000..813fe07 --- /dev/null +++ b/e2sim/src/ASN1c/E2nodeComponentInterfaceE1.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` + */ + +#ifndef _E2nodeComponentInterfaceE1_H_ +#define _E2nodeComponentInterfaceE1_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "GNB-CU-UP-ID.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* E2nodeComponentInterfaceE1 */ +typedef struct E2nodeComponentInterfaceE1 { + GNB_CU_UP_ID_t gNB_CU_CP_ID; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2nodeComponentInterfaceE1_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentInterfaceE1; +extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentInterfaceE1_specs_1; +extern asn_TYPE_member_t asn_MBR_E2nodeComponentInterfaceE1_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2nodeComponentInterfaceE1_H_ */ +#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/E2nodeComponentInterfaceF1.c b/e2sim/src/ASN1c/E2nodeComponentInterfaceF1.c new file mode 100644 index 0000000..6ede91a --- /dev/null +++ b/e2sim/src/ASN1c/E2nodeComponentInterfaceF1.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` + */ + +#include "E2nodeComponentInterfaceF1.h" + +asn_TYPE_member_t asn_MBR_E2nodeComponentInterfaceF1_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentInterfaceF1, gNB_DU_ID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_GNB_DU_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "gNB-DU-ID" + }, +}; +static const ber_tlv_tag_t asn_DEF_E2nodeComponentInterfaceF1_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_E2nodeComponentInterfaceF1_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* gNB-DU-ID */ +}; +asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentInterfaceF1_specs_1 = { + sizeof(struct E2nodeComponentInterfaceF1), + offsetof(struct E2nodeComponentInterfaceF1, _asn_ctx), + asn_MAP_E2nodeComponentInterfaceF1_tag2el_1, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_E2nodeComponentInterfaceF1 = { + "E2nodeComponentInterfaceF1", + "E2nodeComponentInterfaceF1", + &asn_OP_SEQUENCE, + asn_DEF_E2nodeComponentInterfaceF1_tags_1, + sizeof(asn_DEF_E2nodeComponentInterfaceF1_tags_1) + /sizeof(asn_DEF_E2nodeComponentInterfaceF1_tags_1[0]), /* 1 */ + asn_DEF_E2nodeComponentInterfaceF1_tags_1, /* Same as above */ + sizeof(asn_DEF_E2nodeComponentInterfaceF1_tags_1) + /sizeof(asn_DEF_E2nodeComponentInterfaceF1_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_E2nodeComponentInterfaceF1_1, + 1, /* Elements count */ + &asn_SPC_E2nodeComponentInterfaceF1_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/src/ASN1c/E2nodeComponentInterfaceF1.h b/e2sim/src/ASN1c/E2nodeComponentInterfaceF1.h new file mode 100644 index 0000000..b9867b9 --- /dev/null +++ b/e2sim/src/ASN1c/E2nodeComponentInterfaceF1.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` + */ + +#ifndef _E2nodeComponentInterfaceF1_H_ +#define _E2nodeComponentInterfaceF1_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "GNB-DU-ID.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* E2nodeComponentInterfaceF1 */ +typedef struct E2nodeComponentInterfaceF1 { + GNB_DU_ID_t gNB_DU_ID; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2nodeComponentInterfaceF1_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentInterfaceF1; +extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentInterfaceF1_specs_1; +extern asn_TYPE_member_t asn_MBR_E2nodeComponentInterfaceF1_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2nodeComponentInterfaceF1_H_ */ +#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/E2nodeComponentInterfaceNG.c b/e2sim/src/ASN1c/E2nodeComponentInterfaceNG.c new file mode 100644 index 0000000..7d92f9f --- /dev/null +++ b/e2sim/src/ASN1c/E2nodeComponentInterfaceNG.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` + */ + +#include "E2nodeComponentInterfaceNG.h" + +asn_TYPE_member_t asn_MBR_E2nodeComponentInterfaceNG_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentInterfaceNG, amf_name), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AMFName, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "amf-name" + }, +}; +static const ber_tlv_tag_t asn_DEF_E2nodeComponentInterfaceNG_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_E2nodeComponentInterfaceNG_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* amf-name */ +}; +asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentInterfaceNG_specs_1 = { + sizeof(struct E2nodeComponentInterfaceNG), + offsetof(struct E2nodeComponentInterfaceNG, _asn_ctx), + asn_MAP_E2nodeComponentInterfaceNG_tag2el_1, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_E2nodeComponentInterfaceNG = { + "E2nodeComponentInterfaceNG", + "E2nodeComponentInterfaceNG", + &asn_OP_SEQUENCE, + asn_DEF_E2nodeComponentInterfaceNG_tags_1, + sizeof(asn_DEF_E2nodeComponentInterfaceNG_tags_1) + /sizeof(asn_DEF_E2nodeComponentInterfaceNG_tags_1[0]), /* 1 */ + asn_DEF_E2nodeComponentInterfaceNG_tags_1, /* Same as above */ + sizeof(asn_DEF_E2nodeComponentInterfaceNG_tags_1) + /sizeof(asn_DEF_E2nodeComponentInterfaceNG_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_E2nodeComponentInterfaceNG_1, + 1, /* Elements count */ + &asn_SPC_E2nodeComponentInterfaceNG_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/src/ASN1c/E2nodeComponentInterfaceNG.h b/e2sim/src/ASN1c/E2nodeComponentInterfaceNG.h new file mode 100644 index 0000000..cc366c3 --- /dev/null +++ b/e2sim/src/ASN1c/E2nodeComponentInterfaceNG.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` + */ + +#ifndef _E2nodeComponentInterfaceNG_H_ +#define _E2nodeComponentInterfaceNG_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "AMFName.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* E2nodeComponentInterfaceNG */ +typedef struct E2nodeComponentInterfaceNG { + AMFName_t amf_name; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2nodeComponentInterfaceNG_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentInterfaceNG; +extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentInterfaceNG_specs_1; +extern asn_TYPE_member_t asn_MBR_E2nodeComponentInterfaceNG_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2nodeComponentInterfaceNG_H_ */ +#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/E2nodeComponentInterfaceS1.c b/e2sim/src/ASN1c/E2nodeComponentInterfaceS1.c new file mode 100644 index 0000000..d85197a --- /dev/null +++ b/e2sim/src/ASN1c/E2nodeComponentInterfaceS1.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` + */ + +#include "E2nodeComponentInterfaceS1.h" + +asn_TYPE_member_t asn_MBR_E2nodeComponentInterfaceS1_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentInterfaceS1, mme_name), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MMEname, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mme-name" + }, +}; +static const ber_tlv_tag_t asn_DEF_E2nodeComponentInterfaceS1_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_E2nodeComponentInterfaceS1_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* mme-name */ +}; +asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentInterfaceS1_specs_1 = { + sizeof(struct E2nodeComponentInterfaceS1), + offsetof(struct E2nodeComponentInterfaceS1, _asn_ctx), + asn_MAP_E2nodeComponentInterfaceS1_tag2el_1, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_E2nodeComponentInterfaceS1 = { + "E2nodeComponentInterfaceS1", + "E2nodeComponentInterfaceS1", + &asn_OP_SEQUENCE, + asn_DEF_E2nodeComponentInterfaceS1_tags_1, + sizeof(asn_DEF_E2nodeComponentInterfaceS1_tags_1) + /sizeof(asn_DEF_E2nodeComponentInterfaceS1_tags_1[0]), /* 1 */ + asn_DEF_E2nodeComponentInterfaceS1_tags_1, /* Same as above */ + sizeof(asn_DEF_E2nodeComponentInterfaceS1_tags_1) + /sizeof(asn_DEF_E2nodeComponentInterfaceS1_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_E2nodeComponentInterfaceS1_1, + 1, /* Elements count */ + &asn_SPC_E2nodeComponentInterfaceS1_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/src/ASN1c/E2nodeComponentInterfaceS1.h b/e2sim/src/ASN1c/E2nodeComponentInterfaceS1.h new file mode 100644 index 0000000..56a4b2c --- /dev/null +++ b/e2sim/src/ASN1c/E2nodeComponentInterfaceS1.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` + */ + +#ifndef _E2nodeComponentInterfaceS1_H_ +#define _E2nodeComponentInterfaceS1_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "MMEname.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* E2nodeComponentInterfaceS1 */ +typedef struct E2nodeComponentInterfaceS1 { + MMEname_t mme_name; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2nodeComponentInterfaceS1_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentInterfaceS1; +extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentInterfaceS1_specs_1; +extern asn_TYPE_member_t asn_MBR_E2nodeComponentInterfaceS1_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2nodeComponentInterfaceS1_H_ */ +#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/E2nodeComponentInterfaceType.c b/e2sim/src/ASN1c/E2nodeComponentInterfaceType.c new file mode 100644 index 0000000..24794d4 --- /dev/null +++ b/e2sim/src/ASN1c/E2nodeComponentInterfaceType.c @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` + */ + +#include "E2nodeComponentInterfaceType.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_E2nodeComponentInterfaceType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 6 } /* (0..6,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_E2nodeComponentInterfaceType_value2enum_1[] = { + { 0, 2, "ng" }, + { 1, 2, "xn" }, + { 2, 2, "e1" }, + { 3, 2, "f1" }, + { 4, 2, "w1" }, + { 5, 2, "s1" }, + { 6, 2, "x2" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_E2nodeComponentInterfaceType_enum2value_1[] = { + 2, /* e1(2) */ + 3, /* f1(3) */ + 0, /* ng(0) */ + 5, /* s1(5) */ + 4, /* w1(4) */ + 6, /* x2(6) */ + 1 /* xn(1) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_E2nodeComponentInterfaceType_specs_1 = { + asn_MAP_E2nodeComponentInterfaceType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_E2nodeComponentInterfaceType_enum2value_1, /* N => "tag"; sorted by N */ + 7, /* Number of elements in the maps */ + 8, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_E2nodeComponentInterfaceType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_E2nodeComponentInterfaceType = { + "E2nodeComponentInterfaceType", + "E2nodeComponentInterfaceType", + &asn_OP_NativeEnumerated, + asn_DEF_E2nodeComponentInterfaceType_tags_1, + sizeof(asn_DEF_E2nodeComponentInterfaceType_tags_1) + /sizeof(asn_DEF_E2nodeComponentInterfaceType_tags_1[0]), /* 1 */ + asn_DEF_E2nodeComponentInterfaceType_tags_1, /* Same as above */ + sizeof(asn_DEF_E2nodeComponentInterfaceType_tags_1) + /sizeof(asn_DEF_E2nodeComponentInterfaceType_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_E2nodeComponentInterfaceType_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_E2nodeComponentInterfaceType_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/src/ASN1c/E2nodeComponentInterfaceType.h b/e2sim/src/ASN1c/E2nodeComponentInterfaceType.h new file mode 100644 index 0000000..d6f0bdc --- /dev/null +++ b/e2sim/src/ASN1c/E2nodeComponentInterfaceType.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` + */ + +#ifndef _E2nodeComponentInterfaceType_H_ +#define _E2nodeComponentInterfaceType_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum E2nodeComponentInterfaceType { + E2nodeComponentInterfaceType_ng = 0, + E2nodeComponentInterfaceType_xn = 1, + E2nodeComponentInterfaceType_e1 = 2, + E2nodeComponentInterfaceType_f1 = 3, + E2nodeComponentInterfaceType_w1 = 4, + E2nodeComponentInterfaceType_s1 = 5, + E2nodeComponentInterfaceType_x2 = 6 + /* + * Enumeration is extensible + */ +} e_E2nodeComponentInterfaceType; + +/* E2nodeComponentInterfaceType */ +typedef long E2nodeComponentInterfaceType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_E2nodeComponentInterfaceType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentInterfaceType; +extern const asn_INTEGER_specifics_t asn_SPC_E2nodeComponentInterfaceType_specs_1; +asn_struct_free_f E2nodeComponentInterfaceType_free; +asn_struct_print_f E2nodeComponentInterfaceType_print; +asn_constr_check_f E2nodeComponentInterfaceType_constraint; +ber_type_decoder_f E2nodeComponentInterfaceType_decode_ber; +der_type_encoder_f E2nodeComponentInterfaceType_encode_der; +xer_type_decoder_f E2nodeComponentInterfaceType_decode_xer; +xer_type_encoder_f E2nodeComponentInterfaceType_encode_xer; +per_type_decoder_f E2nodeComponentInterfaceType_decode_uper; +per_type_encoder_f E2nodeComponentInterfaceType_encode_uper; +per_type_decoder_f E2nodeComponentInterfaceType_decode_aper; +per_type_encoder_f E2nodeComponentInterfaceType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2nodeComponentInterfaceType_H_ */ +#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/E2nodeComponentInterfaceW1.c b/e2sim/src/ASN1c/E2nodeComponentInterfaceW1.c new file mode 100644 index 0000000..c3e2af1 --- /dev/null +++ b/e2sim/src/ASN1c/E2nodeComponentInterfaceW1.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` + */ + +#include "E2nodeComponentInterfaceW1.h" + +asn_TYPE_member_t asn_MBR_E2nodeComponentInterfaceW1_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentInterfaceW1, ng_eNB_DU_ID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NGENB_DU_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ng-eNB-DU-ID" + }, +}; +static const ber_tlv_tag_t asn_DEF_E2nodeComponentInterfaceW1_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_E2nodeComponentInterfaceW1_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* ng-eNB-DU-ID */ +}; +asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentInterfaceW1_specs_1 = { + sizeof(struct E2nodeComponentInterfaceW1), + offsetof(struct E2nodeComponentInterfaceW1, _asn_ctx), + asn_MAP_E2nodeComponentInterfaceW1_tag2el_1, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_E2nodeComponentInterfaceW1 = { + "E2nodeComponentInterfaceW1", + "E2nodeComponentInterfaceW1", + &asn_OP_SEQUENCE, + asn_DEF_E2nodeComponentInterfaceW1_tags_1, + sizeof(asn_DEF_E2nodeComponentInterfaceW1_tags_1) + /sizeof(asn_DEF_E2nodeComponentInterfaceW1_tags_1[0]), /* 1 */ + asn_DEF_E2nodeComponentInterfaceW1_tags_1, /* Same as above */ + sizeof(asn_DEF_E2nodeComponentInterfaceW1_tags_1) + /sizeof(asn_DEF_E2nodeComponentInterfaceW1_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_E2nodeComponentInterfaceW1_1, + 1, /* Elements count */ + &asn_SPC_E2nodeComponentInterfaceW1_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/src/ASN1c/E2nodeComponentInterfaceW1.h b/e2sim/src/ASN1c/E2nodeComponentInterfaceW1.h new file mode 100644 index 0000000..84fc6ef --- /dev/null +++ b/e2sim/src/ASN1c/E2nodeComponentInterfaceW1.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` + */ + +#ifndef _E2nodeComponentInterfaceW1_H_ +#define _E2nodeComponentInterfaceW1_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NGENB-DU-ID.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* E2nodeComponentInterfaceW1 */ +typedef struct E2nodeComponentInterfaceW1 { + NGENB_DU_ID_t ng_eNB_DU_ID; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2nodeComponentInterfaceW1_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentInterfaceW1; +extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentInterfaceW1_specs_1; +extern asn_TYPE_member_t asn_MBR_E2nodeComponentInterfaceW1_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2nodeComponentInterfaceW1_H_ */ +#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/E2nodeComponentInterfaceX2.c b/e2sim/src/ASN1c/E2nodeComponentInterfaceX2.c new file mode 100644 index 0000000..182ef1e --- /dev/null +++ b/e2sim/src/ASN1c/E2nodeComponentInterfaceX2.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` + */ + +#include "E2nodeComponentInterfaceX2.h" + +#include "GlobalENB-ID.h" +#include "GlobalenGNB-ID.h" +asn_TYPE_member_t asn_MBR_E2nodeComponentInterfaceX2_1[] = { + { ATF_POINTER, 2, offsetof(struct E2nodeComponentInterfaceX2, global_eNB_ID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_GlobalENB_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "global-eNB-ID" + }, + { ATF_POINTER, 1, offsetof(struct E2nodeComponentInterfaceX2, global_en_gNB_ID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_GlobalenGNB_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "global-en-gNB-ID" + }, +}; +static const int asn_MAP_E2nodeComponentInterfaceX2_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_E2nodeComponentInterfaceX2_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_E2nodeComponentInterfaceX2_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* global-eNB-ID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* global-en-gNB-ID */ +}; +asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentInterfaceX2_specs_1 = { + sizeof(struct E2nodeComponentInterfaceX2), + offsetof(struct E2nodeComponentInterfaceX2, _asn_ctx), + asn_MAP_E2nodeComponentInterfaceX2_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_E2nodeComponentInterfaceX2_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_E2nodeComponentInterfaceX2 = { + "E2nodeComponentInterfaceX2", + "E2nodeComponentInterfaceX2", + &asn_OP_SEQUENCE, + asn_DEF_E2nodeComponentInterfaceX2_tags_1, + sizeof(asn_DEF_E2nodeComponentInterfaceX2_tags_1) + /sizeof(asn_DEF_E2nodeComponentInterfaceX2_tags_1[0]), /* 1 */ + asn_DEF_E2nodeComponentInterfaceX2_tags_1, /* Same as above */ + sizeof(asn_DEF_E2nodeComponentInterfaceX2_tags_1) + /sizeof(asn_DEF_E2nodeComponentInterfaceX2_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_E2nodeComponentInterfaceX2_1, + 2, /* Elements count */ + &asn_SPC_E2nodeComponentInterfaceX2_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/src/ASN1c/E2nodeComponentInterfaceX2.h b/e2sim/src/ASN1c/E2nodeComponentInterfaceX2.h new file mode 100644 index 0000000..3182830 --- /dev/null +++ b/e2sim/src/ASN1c/E2nodeComponentInterfaceX2.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` + */ + +#ifndef _E2nodeComponentInterfaceX2_H_ +#define _E2nodeComponentInterfaceX2_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct GlobalENB_ID; +struct GlobalenGNB_ID; + +/* E2nodeComponentInterfaceX2 */ +typedef struct E2nodeComponentInterfaceX2 { + struct GlobalENB_ID *global_eNB_ID; /* OPTIONAL */ + struct GlobalenGNB_ID *global_en_gNB_ID; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2nodeComponentInterfaceX2_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentInterfaceX2; +extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentInterfaceX2_specs_1; +extern asn_TYPE_member_t asn_MBR_E2nodeComponentInterfaceX2_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2nodeComponentInterfaceX2_H_ */ +#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/E2nodeComponentInterfaceXn.c b/e2sim/src/ASN1c/E2nodeComponentInterfaceXn.c new file mode 100644 index 0000000..68f8846 --- /dev/null +++ b/e2sim/src/ASN1c/E2nodeComponentInterfaceXn.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` + */ + +#include "E2nodeComponentInterfaceXn.h" + +asn_TYPE_member_t asn_MBR_E2nodeComponentInterfaceXn_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentInterfaceXn, global_NG_RAN_Node_ID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_GlobalNG_RANNode_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "global-NG-RAN-Node-ID" + }, +}; +static const ber_tlv_tag_t asn_DEF_E2nodeComponentInterfaceXn_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_E2nodeComponentInterfaceXn_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* global-NG-RAN-Node-ID */ +}; +asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentInterfaceXn_specs_1 = { + sizeof(struct E2nodeComponentInterfaceXn), + offsetof(struct E2nodeComponentInterfaceXn, _asn_ctx), + asn_MAP_E2nodeComponentInterfaceXn_tag2el_1, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_E2nodeComponentInterfaceXn = { + "E2nodeComponentInterfaceXn", + "E2nodeComponentInterfaceXn", + &asn_OP_SEQUENCE, + asn_DEF_E2nodeComponentInterfaceXn_tags_1, + sizeof(asn_DEF_E2nodeComponentInterfaceXn_tags_1) + /sizeof(asn_DEF_E2nodeComponentInterfaceXn_tags_1[0]), /* 1 */ + asn_DEF_E2nodeComponentInterfaceXn_tags_1, /* Same as above */ + sizeof(asn_DEF_E2nodeComponentInterfaceXn_tags_1) + /sizeof(asn_DEF_E2nodeComponentInterfaceXn_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_E2nodeComponentInterfaceXn_1, + 1, /* Elements count */ + &asn_SPC_E2nodeComponentInterfaceXn_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/src/ASN1c/E2nodeComponentInterfaceXn.h b/e2sim/src/ASN1c/E2nodeComponentInterfaceXn.h new file mode 100644 index 0000000..896eea2 --- /dev/null +++ b/e2sim/src/ASN1c/E2nodeComponentInterfaceXn.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` + */ + +#ifndef _E2nodeComponentInterfaceXn_H_ +#define _E2nodeComponentInterfaceXn_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "GlobalNG-RANNode-ID.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* E2nodeComponentInterfaceXn */ +typedef struct E2nodeComponentInterfaceXn { + GlobalNG_RANNode_ID_t global_NG_RAN_Node_ID; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2nodeComponentInterfaceXn_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentInterfaceXn; +extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentInterfaceXn_specs_1; +extern asn_TYPE_member_t asn_MBR_E2nodeComponentInterfaceXn_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2nodeComponentInterfaceXn_H_ */ +#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/E2nodeComponentType.c b/e2sim/src/ASN1c/E2nodeComponentType.c deleted file mode 100644 index ecd690f..0000000 --- a/e2sim/src/ASN1c/E2nodeComponentType.c +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` - */ - -#include "E2nodeComponentType.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_E2nodeComponentType_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 5 } /* (0..5,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_E2nodeComponentType_value2enum_1[] = { - { 0, 3, "gNB" }, - { 1, 9, "gNB-CU-UP" }, - { 2, 6, "gNB-DU" }, - { 3, 6, "en-gNB" }, - { 4, 3, "eNB" }, - { 5, 6, "ng-eNB" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_E2nodeComponentType_enum2value_1[] = { - 4, /* eNB(4) */ - 3, /* en-gNB(3) */ - 0, /* gNB(0) */ - 1, /* gNB-CU-UP(1) */ - 2, /* gNB-DU(2) */ - 5 /* ng-eNB(5) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_E2nodeComponentType_specs_1 = { - asn_MAP_E2nodeComponentType_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_E2nodeComponentType_enum2value_1, /* N => "tag"; sorted by N */ - 6, /* Number of elements in the maps */ - 7, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_E2nodeComponentType_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_E2nodeComponentType = { - "E2nodeComponentType", - "E2nodeComponentType", - &asn_OP_NativeEnumerated, - asn_DEF_E2nodeComponentType_tags_1, - sizeof(asn_DEF_E2nodeComponentType_tags_1) - /sizeof(asn_DEF_E2nodeComponentType_tags_1[0]), /* 1 */ - asn_DEF_E2nodeComponentType_tags_1, /* Same as above */ - sizeof(asn_DEF_E2nodeComponentType_tags_1) - /sizeof(asn_DEF_E2nodeComponentType_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_E2nodeComponentType_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_E2nodeComponentType_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/src/ASN1c/E2nodeComponentType.h b/e2sim/src/ASN1c/E2nodeComponentType.h deleted file mode 100644 index 7fa6e30..0000000 --- a/e2sim/src/ASN1c/E2nodeComponentType.h +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` - */ - -#ifndef _E2nodeComponentType_H_ -#define _E2nodeComponentType_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum E2nodeComponentType { - E2nodeComponentType_gNB = 0, - E2nodeComponentType_gNB_CU_UP = 1, - E2nodeComponentType_gNB_DU = 2, - E2nodeComponentType_en_gNB = 3, - E2nodeComponentType_eNB = 4, - E2nodeComponentType_ng_eNB = 5 - /* - * Enumeration is extensible - */ -} e_E2nodeComponentType; - -/* E2nodeComponentType */ -typedef long E2nodeComponentType_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_E2nodeComponentType_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentType; -extern const asn_INTEGER_specifics_t asn_SPC_E2nodeComponentType_specs_1; -asn_struct_free_f E2nodeComponentType_free; -asn_struct_print_f E2nodeComponentType_print; -asn_constr_check_f E2nodeComponentType_constraint; -ber_type_decoder_f E2nodeComponentType_decode_ber; -der_type_encoder_f E2nodeComponentType_encode_der; -xer_type_decoder_f E2nodeComponentType_decode_xer; -xer_type_encoder_f E2nodeComponentType_encode_xer; -per_type_decoder_f E2nodeComponentType_decode_uper; -per_type_encoder_f E2nodeComponentType_encode_uper; -per_type_decoder_f E2nodeComponentType_decode_aper; -per_type_encoder_f E2nodeComponentType_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _E2nodeComponentType_H_ */ -#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/E2nodeConfigurationUpdate.c b/e2sim/src/ASN1c/E2nodeConfigurationUpdate.c index 812fe76..f40909c 100644 --- a/e2sim/src/ASN1c/E2nodeConfigurationUpdate.c +++ b/e2sim/src/ASN1c/E2nodeConfigurationUpdate.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #include "E2nodeConfigurationUpdate.h" @@ -11,7 +11,7 @@ asn_TYPE_member_t asn_MBR_E2nodeConfigurationUpdate_1[] = { { ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdate, protocolIEs), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_226P17, + &asn_DEF_ProtocolIE_Container_1917P18, 0, { 0, 0, 0 }, 0, 0, /* No default value */ diff --git a/e2sim/src/ASN1c/E2nodeConfigurationUpdate.h b/e2sim/src/ASN1c/E2nodeConfigurationUpdate.h index 72da4aa..60e609d 100644 --- a/e2sim/src/ASN1c/E2nodeConfigurationUpdate.h +++ b/e2sim/src/ASN1c/E2nodeConfigurationUpdate.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #ifndef _E2nodeConfigurationUpdate_H_ @@ -21,7 +21,7 @@ extern "C" { /* E2nodeConfigurationUpdate */ typedef struct E2nodeConfigurationUpdate { - ProtocolIE_Container_226P17_t protocolIEs; + ProtocolIE_Container_1917P18_t protocolIEs; /* * This type is extensible, * possible extensions are below. diff --git a/e2sim/src/ASN1c/E2nodeConfigurationUpdateAcknowledge.c b/e2sim/src/ASN1c/E2nodeConfigurationUpdateAcknowledge.c index ff1c818..4586653 100644 --- a/e2sim/src/ASN1c/E2nodeConfigurationUpdateAcknowledge.c +++ b/e2sim/src/ASN1c/E2nodeConfigurationUpdateAcknowledge.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #include "E2nodeConfigurationUpdateAcknowledge.h" @@ -11,7 +11,7 @@ asn_TYPE_member_t asn_MBR_E2nodeConfigurationUpdateAcknowledge_1[] = { { ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdateAcknowledge, protocolIEs), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_226P18, + &asn_DEF_ProtocolIE_Container_1917P19, 0, { 0, 0, 0 }, 0, 0, /* No default value */ diff --git a/e2sim/src/ASN1c/E2nodeConfigurationUpdateAcknowledge.h b/e2sim/src/ASN1c/E2nodeConfigurationUpdateAcknowledge.h index a9e1a10..dd820a8 100644 --- a/e2sim/src/ASN1c/E2nodeConfigurationUpdateAcknowledge.h +++ b/e2sim/src/ASN1c/E2nodeConfigurationUpdateAcknowledge.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #ifndef _E2nodeConfigurationUpdateAcknowledge_H_ @@ -21,7 +21,7 @@ extern "C" { /* E2nodeConfigurationUpdateAcknowledge */ typedef struct E2nodeConfigurationUpdateAcknowledge { - ProtocolIE_Container_226P18_t protocolIEs; + ProtocolIE_Container_1917P19_t protocolIEs; /* * This type is extensible, * possible extensions are below. diff --git a/e2sim/src/ASN1c/E2nodeConfigurationUpdateFailure.c b/e2sim/src/ASN1c/E2nodeConfigurationUpdateFailure.c index c002b9b..7de3e76 100644 --- a/e2sim/src/ASN1c/E2nodeConfigurationUpdateFailure.c +++ b/e2sim/src/ASN1c/E2nodeConfigurationUpdateFailure.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #include "E2nodeConfigurationUpdateFailure.h" @@ -11,7 +11,7 @@ asn_TYPE_member_t asn_MBR_E2nodeConfigurationUpdateFailure_1[] = { { ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdateFailure, protocolIEs), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_226P19, + &asn_DEF_ProtocolIE_Container_1917P20, 0, { 0, 0, 0 }, 0, 0, /* No default value */ diff --git a/e2sim/src/ASN1c/E2nodeConfigurationUpdateFailure.h b/e2sim/src/ASN1c/E2nodeConfigurationUpdateFailure.h index 89067d3..781aef4 100644 --- a/e2sim/src/ASN1c/E2nodeConfigurationUpdateFailure.h +++ b/e2sim/src/ASN1c/E2nodeConfigurationUpdateFailure.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #ifndef _E2nodeConfigurationUpdateFailure_H_ @@ -21,7 +21,7 @@ extern "C" { /* E2nodeConfigurationUpdateFailure */ typedef struct E2nodeConfigurationUpdateFailure { - ProtocolIE_Container_226P19_t protocolIEs; + ProtocolIE_Container_1917P20_t protocolIEs; /* * This type is extensible, * possible extensions are below. diff --git a/e2sim/src/ASN1c/E2nodeTNLassociationRemoval-Item.c b/e2sim/src/ASN1c/E2nodeTNLassociationRemoval-Item.c new file mode 100644 index 0000000..d547e80 --- /dev/null +++ b/e2sim/src/ASN1c/E2nodeTNLassociationRemoval-Item.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` + */ + +#include "E2nodeTNLassociationRemoval-Item.h" + +static asn_TYPE_member_t asn_MBR_E2nodeTNLassociationRemoval_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2nodeTNLassociationRemoval_Item, tnlInformation), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TNLinformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tnlInformation" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2nodeTNLassociationRemoval_Item, tnlInformationRIC), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TNLinformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tnlInformationRIC" + }, +}; +static const ber_tlv_tag_t asn_DEF_E2nodeTNLassociationRemoval_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_E2nodeTNLassociationRemoval_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* tnlInformation */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* tnlInformationRIC */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_E2nodeTNLassociationRemoval_Item_specs_1 = { + sizeof(struct E2nodeTNLassociationRemoval_Item), + offsetof(struct E2nodeTNLassociationRemoval_Item, _asn_ctx), + asn_MAP_E2nodeTNLassociationRemoval_Item_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_E2nodeTNLassociationRemoval_Item = { + "E2nodeTNLassociationRemoval-Item", + "E2nodeTNLassociationRemoval-Item", + &asn_OP_SEQUENCE, + asn_DEF_E2nodeTNLassociationRemoval_Item_tags_1, + sizeof(asn_DEF_E2nodeTNLassociationRemoval_Item_tags_1) + /sizeof(asn_DEF_E2nodeTNLassociationRemoval_Item_tags_1[0]), /* 1 */ + asn_DEF_E2nodeTNLassociationRemoval_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_E2nodeTNLassociationRemoval_Item_tags_1) + /sizeof(asn_DEF_E2nodeTNLassociationRemoval_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_E2nodeTNLassociationRemoval_Item_1, + 2, /* Elements count */ + &asn_SPC_E2nodeTNLassociationRemoval_Item_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/src/ASN1c/E2nodeTNLassociationRemoval-Item.h b/e2sim/src/ASN1c/E2nodeTNLassociationRemoval-Item.h new file mode 100644 index 0000000..e8763ee --- /dev/null +++ b/e2sim/src/ASN1c/E2nodeTNLassociationRemoval-Item.h @@ -0,0 +1,43 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` + */ + +#ifndef _E2nodeTNLassociationRemoval_Item_H_ +#define _E2nodeTNLassociationRemoval_Item_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "TNLinformation.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* E2nodeTNLassociationRemoval-Item */ +typedef struct E2nodeTNLassociationRemoval_Item { + TNLinformation_t tnlInformation; + TNLinformation_t tnlInformationRIC; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2nodeTNLassociationRemoval_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_E2nodeTNLassociationRemoval_Item; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2nodeTNLassociationRemoval_Item_H_ */ +#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/E2nodeTNLassociationRemoval-List.c b/e2sim/src/ASN1c/E2nodeTNLassociationRemoval-List.c new file mode 100644 index 0000000..e82f69c --- /dev/null +++ b/e2sim/src/ASN1c/E2nodeTNLassociationRemoval-List.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` + */ + +#include "E2nodeTNLassociationRemoval-List.h" + +#include "ProtocolIE-SingleContainer.h" +static asn_per_constraints_t asn_PER_type_E2nodeTNLassociationRemoval_List_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_E2nodeTNLassociationRemoval_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ProtocolIE_SingleContainer_1920P10, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_E2nodeTNLassociationRemoval_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_E2nodeTNLassociationRemoval_List_specs_1 = { + sizeof(struct E2nodeTNLassociationRemoval_List), + offsetof(struct E2nodeTNLassociationRemoval_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_E2nodeTNLassociationRemoval_List = { + "E2nodeTNLassociationRemoval-List", + "E2nodeTNLassociationRemoval-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_E2nodeTNLassociationRemoval_List_tags_1, + sizeof(asn_DEF_E2nodeTNLassociationRemoval_List_tags_1) + /sizeof(asn_DEF_E2nodeTNLassociationRemoval_List_tags_1[0]), /* 1 */ + asn_DEF_E2nodeTNLassociationRemoval_List_tags_1, /* Same as above */ + sizeof(asn_DEF_E2nodeTNLassociationRemoval_List_tags_1) + /sizeof(asn_DEF_E2nodeTNLassociationRemoval_List_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_E2nodeTNLassociationRemoval_List_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_E2nodeTNLassociationRemoval_List_1, + 1, /* Single element */ + &asn_SPC_E2nodeTNLassociationRemoval_List_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/src/ASN1c/E2nodeTNLassociationRemoval-List.h b/e2sim/src/ASN1c/E2nodeTNLassociationRemoval-List.h new file mode 100644 index 0000000..bba966b --- /dev/null +++ b/e2sim/src/ASN1c/E2nodeTNLassociationRemoval-List.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` + */ + +#ifndef _E2nodeTNLassociationRemoval_List_H_ +#define _E2nodeTNLassociationRemoval_List_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolIE_SingleContainer; + +/* E2nodeTNLassociationRemoval-List */ +typedef struct E2nodeTNLassociationRemoval_List { + A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2nodeTNLassociationRemoval_List_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_E2nodeTNLassociationRemoval_List; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2nodeTNLassociationRemoval_List_H_ */ +#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/E2setupFailure.c b/e2sim/src/ASN1c/E2setupFailure.c index 3107c7a..e521bc4 100644 --- a/e2sim/src/ASN1c/E2setupFailure.c +++ b/e2sim/src/ASN1c/E2setupFailure.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #include "E2setupFailure.h" @@ -11,7 +11,7 @@ asn_TYPE_member_t asn_MBR_E2setupFailure_1[] = { { ATF_NOFLAGS, 0, offsetof(struct E2setupFailure, protocolIEs), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_226P13, + &asn_DEF_ProtocolIE_Container_1917P14, 0, { 0, 0, 0 }, 0, 0, /* No default value */ diff --git a/e2sim/src/ASN1c/E2setupFailure.h b/e2sim/src/ASN1c/E2setupFailure.h index c03a588..b92899c 100644 --- a/e2sim/src/ASN1c/E2setupFailure.h +++ b/e2sim/src/ASN1c/E2setupFailure.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #ifndef _E2setupFailure_H_ @@ -21,7 +21,7 @@ extern "C" { /* E2setupFailure */ typedef struct E2setupFailure { - ProtocolIE_Container_226P13_t protocolIEs; + ProtocolIE_Container_1917P14_t protocolIEs; /* * This type is extensible, * possible extensions are below. diff --git a/e2sim/src/ASN1c/E2setupRequest.c b/e2sim/src/ASN1c/E2setupRequest.c index 6535e6c..c34efea 100644 --- a/e2sim/src/ASN1c/E2setupRequest.c +++ b/e2sim/src/ASN1c/E2setupRequest.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #include "E2setupRequest.h" @@ -11,7 +11,7 @@ asn_TYPE_member_t asn_MBR_E2setupRequest_1[] = { { ATF_NOFLAGS, 0, offsetof(struct E2setupRequest, protocolIEs), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_226P11, + &asn_DEF_ProtocolIE_Container_1917P12, 0, { 0, 0, 0 }, 0, 0, /* No default value */ diff --git a/e2sim/src/ASN1c/E2setupRequest.h b/e2sim/src/ASN1c/E2setupRequest.h index 4e58ba1..4f01328 100644 --- a/e2sim/src/ASN1c/E2setupRequest.h +++ b/e2sim/src/ASN1c/E2setupRequest.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #ifndef _E2setupRequest_H_ @@ -21,7 +21,7 @@ extern "C" { /* E2setupRequest */ typedef struct E2setupRequest { - ProtocolIE_Container_226P11_t protocolIEs; + ProtocolIE_Container_1917P12_t protocolIEs; /* * This type is extensible, * possible extensions are below. diff --git a/e2sim/src/ASN1c/E2setupResponse.c b/e2sim/src/ASN1c/E2setupResponse.c index 0c94082..46d708b 100644 --- a/e2sim/src/ASN1c/E2setupResponse.c +++ b/e2sim/src/ASN1c/E2setupResponse.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #include "E2setupResponse.h" @@ -11,7 +11,7 @@ asn_TYPE_member_t asn_MBR_E2setupResponse_1[] = { { ATF_NOFLAGS, 0, offsetof(struct E2setupResponse, protocolIEs), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_226P12, + &asn_DEF_ProtocolIE_Container_1917P13, 0, { 0, 0, 0 }, 0, 0, /* No default value */ diff --git a/e2sim/src/ASN1c/E2setupResponse.h b/e2sim/src/ASN1c/E2setupResponse.h index 0d8ec2e..f380882 100644 --- a/e2sim/src/ASN1c/E2setupResponse.h +++ b/e2sim/src/ASN1c/E2setupResponse.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #ifndef _E2setupResponse_H_ @@ -21,7 +21,7 @@ extern "C" { /* E2setupResponse */ typedef struct E2setupResponse { - ProtocolIE_Container_226P12_t protocolIEs; + ProtocolIE_Container_1917P13_t protocolIEs; /* * This type is extensible, * possible extensions are below. diff --git a/e2sim/src/ASN1c/ENB-ID-Choice.c b/e2sim/src/ASN1c/ENB-ID-Choice.c index 2892b2e..f6d14e2 100644 --- a/e2sim/src/ASN1c/ENB-ID-Choice.c +++ b/e2sim/src/ASN1c/ENB-ID-Choice.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #include "ENB-ID-Choice.h" diff --git a/e2sim/src/ASN1c/ENB-ID-Choice.h b/e2sim/src/ASN1c/ENB-ID-Choice.h index 7606e10..3785315 100644 --- a/e2sim/src/ASN1c/ENB-ID-Choice.h +++ b/e2sim/src/ASN1c/ENB-ID-Choice.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #ifndef _ENB_ID_Choice_H_ diff --git a/e2sim/src/ASN1c/ENB-ID.c b/e2sim/src/ASN1c/ENB-ID.c index 75089a2..e231b10 100644 --- a/e2sim/src/ASN1c/ENB-ID.c +++ b/e2sim/src/ASN1c/ENB-ID.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #include "ENB-ID.h" diff --git a/e2sim/src/ASN1c/ENB-ID.h b/e2sim/src/ASN1c/ENB-ID.h index 89f3217..a53fd6c 100644 --- a/e2sim/src/ASN1c/ENB-ID.h +++ b/e2sim/src/ASN1c/ENB-ID.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #ifndef _ENB_ID_H_ diff --git a/e2sim/src/ASN1c/ENGNB-ID.c b/e2sim/src/ASN1c/ENGNB-ID.c index 7f2346c..3eb4ac4 100644 --- a/e2sim/src/ASN1c/ENGNB-ID.c +++ b/e2sim/src/ASN1c/ENGNB-ID.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #include "ENGNB-ID.h" diff --git a/e2sim/src/ASN1c/ENGNB-ID.h b/e2sim/src/ASN1c/ENGNB-ID.h index 738674a..8d180c5 100644 --- a/e2sim/src/ASN1c/ENGNB-ID.h +++ b/e2sim/src/ASN1c/ENGNB-ID.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #ifndef _ENGNB_ID_H_ diff --git a/e2sim/src/ASN1c/ErrorIndication.c b/e2sim/src/ASN1c/ErrorIndication.c index a042ab0..1a1ca01 100644 --- a/e2sim/src/ASN1c/ErrorIndication.c +++ b/e2sim/src/ASN1c/ErrorIndication.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #include "ErrorIndication.h" @@ -11,7 +11,7 @@ asn_TYPE_member_t asn_MBR_ErrorIndication_1[] = { { ATF_NOFLAGS, 0, offsetof(struct ErrorIndication, protocolIEs), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_226P10, + &asn_DEF_ProtocolIE_Container_1917P11, 0, { 0, 0, 0 }, 0, 0, /* No default value */ diff --git a/e2sim/src/ASN1c/ErrorIndication.h b/e2sim/src/ASN1c/ErrorIndication.h index 42154e5..8af3f17 100644 --- a/e2sim/src/ASN1c/ErrorIndication.h +++ b/e2sim/src/ASN1c/ErrorIndication.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #ifndef _ErrorIndication_H_ @@ -21,7 +21,7 @@ extern "C" { /* ErrorIndication */ typedef struct ErrorIndication { - ProtocolIE_Container_226P10_t protocolIEs; + ProtocolIE_Container_1917P11_t protocolIEs; /* * This type is extensible, * possible extensions are below. diff --git a/e2sim/src/ASN1c/GNB-CU-UP-ID.c b/e2sim/src/ASN1c/GNB-CU-UP-ID.c index f66e62b..f5ab574 100644 --- a/e2sim/src/ASN1c/GNB-CU-UP-ID.c +++ b/e2sim/src/ASN1c/GNB-CU-UP-ID.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #include "GNB-CU-UP-ID.h" diff --git a/e2sim/src/ASN1c/GNB-CU-UP-ID.h b/e2sim/src/ASN1c/GNB-CU-UP-ID.h index 6aedbb6..0e7bcbc 100644 --- a/e2sim/src/ASN1c/GNB-CU-UP-ID.h +++ b/e2sim/src/ASN1c/GNB-CU-UP-ID.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #ifndef _GNB_CU_UP_ID_H_ diff --git a/e2sim/src/ASN1c/GNB-DU-ID.c b/e2sim/src/ASN1c/GNB-DU-ID.c index 4eb8a31..18e8b90 100644 --- a/e2sim/src/ASN1c/GNB-DU-ID.c +++ b/e2sim/src/ASN1c/GNB-DU-ID.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #include "GNB-DU-ID.h" diff --git a/e2sim/src/ASN1c/GNB-DU-ID.h b/e2sim/src/ASN1c/GNB-DU-ID.h index a90c182..0322d24 100644 --- a/e2sim/src/ASN1c/GNB-DU-ID.h +++ b/e2sim/src/ASN1c/GNB-DU-ID.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #ifndef _GNB_DU_ID_H_ diff --git a/e2sim/src/ASN1c/GNB-ID-Choice.c b/e2sim/src/ASN1c/GNB-ID-Choice.c index 2894314..5a66e0a 100644 --- a/e2sim/src/ASN1c/GNB-ID-Choice.c +++ b/e2sim/src/ASN1c/GNB-ID-Choice.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #include "GNB-ID-Choice.h" diff --git a/e2sim/src/ASN1c/GNB-ID-Choice.h b/e2sim/src/ASN1c/GNB-ID-Choice.h index 03b6142..25d8de8 100644 --- a/e2sim/src/ASN1c/GNB-ID-Choice.h +++ b/e2sim/src/ASN1c/GNB-ID-Choice.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #ifndef _GNB_ID_Choice_H_ diff --git a/e2sim/src/ASN1c/GlobalE2node-ID.c b/e2sim/src/ASN1c/GlobalE2node-ID.c index d940c03..159bd68 100644 --- a/e2sim/src/ASN1c/GlobalE2node-ID.c +++ b/e2sim/src/ASN1c/GlobalE2node-ID.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #include "GlobalE2node-ID.h" @@ -11,12 +11,12 @@ #include "GlobalE2node-en-gNB-ID.h" #include "GlobalE2node-ng-eNB-ID.h" #include "GlobalE2node-eNB-ID.h" -asn_per_constraints_t asn_PER_type_GlobalE2node_ID_constr_1 CC_NOTUSED = { +static asn_per_constraints_t asn_PER_type_GlobalE2node_ID_constr_1 CC_NOTUSED = { { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 3 } /* (0..3,...) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; -asn_TYPE_member_t asn_MBR_GlobalE2node_ID_1[] = { +static asn_TYPE_member_t asn_MBR_GlobalE2node_ID_1[] = { { ATF_POINTER, 0, offsetof(struct GlobalE2node_ID, choice.gNB), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ @@ -60,7 +60,7 @@ static const asn_TYPE_tag2member_t asn_MAP_GlobalE2node_ID_tag2el_1[] = { { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* ng-eNB */ { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* eNB */ }; -asn_CHOICE_specifics_t asn_SPC_GlobalE2node_ID_specs_1 = { +static asn_CHOICE_specifics_t asn_SPC_GlobalE2node_ID_specs_1 = { sizeof(struct GlobalE2node_ID), offsetof(struct GlobalE2node_ID, _asn_ctx), offsetof(struct GlobalE2node_ID, present), diff --git a/e2sim/src/ASN1c/GlobalE2node-ID.h b/e2sim/src/ASN1c/GlobalE2node-ID.h index 52baad2..5d7f455 100644 --- a/e2sim/src/ASN1c/GlobalE2node-ID.h +++ b/e2sim/src/ASN1c/GlobalE2node-ID.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #ifndef _GlobalE2node_ID_H_ @@ -55,9 +55,6 @@ typedef struct GlobalE2node_ID { /* Implementation */ extern asn_TYPE_descriptor_t asn_DEF_GlobalE2node_ID; -extern asn_CHOICE_specifics_t asn_SPC_GlobalE2node_ID_specs_1; -extern asn_TYPE_member_t asn_MBR_GlobalE2node_ID_1[4]; -extern asn_per_constraints_t asn_PER_type_GlobalE2node_ID_constr_1; #ifdef __cplusplus } diff --git a/e2sim/src/ASN1c/GlobalE2node-eNB-ID.c b/e2sim/src/ASN1c/GlobalE2node-eNB-ID.c index bccce7b..8f7b1da 100644 --- a/e2sim/src/ASN1c/GlobalE2node-eNB-ID.c +++ b/e2sim/src/ASN1c/GlobalE2node-eNB-ID.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #include "GlobalE2node-eNB-ID.h" diff --git a/e2sim/src/ASN1c/GlobalE2node-eNB-ID.h b/e2sim/src/ASN1c/GlobalE2node-eNB-ID.h index 72696c5..1f6ac5e 100644 --- a/e2sim/src/ASN1c/GlobalE2node-eNB-ID.h +++ b/e2sim/src/ASN1c/GlobalE2node-eNB-ID.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #ifndef _GlobalE2node_eNB_ID_H_ diff --git a/e2sim/src/ASN1c/GlobalE2node-en-gNB-ID.c b/e2sim/src/ASN1c/GlobalE2node-en-gNB-ID.c index f9a8ae4..864a2a1 100644 --- a/e2sim/src/ASN1c/GlobalE2node-en-gNB-ID.c +++ b/e2sim/src/ASN1c/GlobalE2node-en-gNB-ID.c @@ -1,36 +1,58 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #include "GlobalE2node-en-gNB-ID.h" asn_TYPE_member_t asn_MBR_GlobalE2node_en_gNB_ID_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct GlobalE2node_en_gNB_ID, global_gNB_ID), + { ATF_NOFLAGS, 0, offsetof(struct GlobalE2node_en_gNB_ID, global_en_gNB_ID), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ &asn_DEF_GlobalenGNB_ID, 0, { 0, 0, 0 }, 0, 0, /* No default value */ - "global-gNB-ID" + "global-en-gNB-ID" + }, + { ATF_POINTER, 2, offsetof(struct GlobalE2node_en_gNB_ID, en_gNB_CU_UP_ID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_GNB_CU_UP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "en-gNB-CU-UP-ID" + }, + { ATF_POINTER, 1, offsetof(struct GlobalE2node_en_gNB_ID, en_gNB_DU_ID), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_GNB_DU_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "en-gNB-DU-ID" }, }; +static const int asn_MAP_GlobalE2node_en_gNB_ID_oms_1[] = { 1, 2 }; static const ber_tlv_tag_t asn_DEF_GlobalE2node_en_gNB_ID_tags_1[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; static const asn_TYPE_tag2member_t asn_MAP_GlobalE2node_en_gNB_ID_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* global-gNB-ID */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* global-en-gNB-ID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* en-gNB-CU-UP-ID */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* en-gNB-DU-ID */ }; asn_SEQUENCE_specifics_t asn_SPC_GlobalE2node_en_gNB_ID_specs_1 = { sizeof(struct GlobalE2node_en_gNB_ID), offsetof(struct GlobalE2node_en_gNB_ID, _asn_ctx), asn_MAP_GlobalE2node_en_gNB_ID_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ + 3, /* Count of tags in the map */ + asn_MAP_GlobalE2node_en_gNB_ID_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 3, /* First extension addition */ }; asn_TYPE_descriptor_t asn_DEF_GlobalE2node_en_gNB_ID = { "GlobalE2node-en-gNB-ID", @@ -44,7 +66,7 @@ asn_TYPE_descriptor_t asn_DEF_GlobalE2node_en_gNB_ID = { /sizeof(asn_DEF_GlobalE2node_en_gNB_ID_tags_1[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, asn_MBR_GlobalE2node_en_gNB_ID_1, - 1, /* Elements count */ + 3, /* Elements count */ &asn_SPC_GlobalE2node_en_gNB_ID_specs_1 /* Additional specs */ }; diff --git a/e2sim/src/ASN1c/GlobalE2node-en-gNB-ID.h b/e2sim/src/ASN1c/GlobalE2node-en-gNB-ID.h index 314ea88..7c15577 100644 --- a/e2sim/src/ASN1c/GlobalE2node-en-gNB-ID.h +++ b/e2sim/src/ASN1c/GlobalE2node-en-gNB-ID.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #ifndef _GlobalE2node_en_gNB_ID_H_ @@ -13,6 +13,8 @@ /* Including external dependencies */ #include "GlobalenGNB-ID.h" +#include "GNB-CU-UP-ID.h" +#include "GNB-DU-ID.h" #include "constr_SEQUENCE.h" #ifdef __cplusplus @@ -21,7 +23,9 @@ extern "C" { /* GlobalE2node-en-gNB-ID */ typedef struct GlobalE2node_en_gNB_ID { - GlobalenGNB_ID_t global_gNB_ID; + GlobalenGNB_ID_t global_en_gNB_ID; + GNB_CU_UP_ID_t *en_gNB_CU_UP_ID; /* OPTIONAL */ + GNB_DU_ID_t *en_gNB_DU_ID; /* OPTIONAL */ /* * This type is extensible, * possible extensions are below. @@ -34,7 +38,7 @@ typedef struct GlobalE2node_en_gNB_ID { /* Implementation */ extern asn_TYPE_descriptor_t asn_DEF_GlobalE2node_en_gNB_ID; extern asn_SEQUENCE_specifics_t asn_SPC_GlobalE2node_en_gNB_ID_specs_1; -extern asn_TYPE_member_t asn_MBR_GlobalE2node_en_gNB_ID_1[1]; +extern asn_TYPE_member_t asn_MBR_GlobalE2node_en_gNB_ID_1[3]; #ifdef __cplusplus } diff --git a/e2sim/src/ASN1c/GlobalE2node-gNB-ID.c b/e2sim/src/ASN1c/GlobalE2node-gNB-ID.c index 7a4810c..050265b 100644 --- a/e2sim/src/ASN1c/GlobalE2node-gNB-ID.c +++ b/e2sim/src/ASN1c/GlobalE2node-gNB-ID.c @@ -1,12 +1,13 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #include "GlobalE2node-gNB-ID.h" +#include "GlobalenGNB-ID.h" asn_TYPE_member_t asn_MBR_GlobalE2node_gNB_ID_1[] = { { ATF_NOFLAGS, 0, offsetof(struct GlobalE2node_gNB_ID, global_gNB_ID), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), @@ -17,9 +18,18 @@ asn_TYPE_member_t asn_MBR_GlobalE2node_gNB_ID_1[] = { 0, 0, /* No default value */ "global-gNB-ID" }, - { ATF_POINTER, 2, offsetof(struct GlobalE2node_gNB_ID, gNB_CU_UP_ID), + { ATF_POINTER, 3, offsetof(struct GlobalE2node_gNB_ID, global_en_gNB_ID), (ASN_TAG_CLASS_CONTEXT | (1 << 2)), -1, /* IMPLICIT tag at current level */ + &asn_DEF_GlobalenGNB_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "global-en-gNB-ID" + }, + { ATF_POINTER, 2, offsetof(struct GlobalE2node_gNB_ID, gNB_CU_UP_ID), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_GNB_CU_UP_ID, 0, { 0, 0, 0 }, @@ -27,7 +37,7 @@ asn_TYPE_member_t asn_MBR_GlobalE2node_gNB_ID_1[] = { "gNB-CU-UP-ID" }, { ATF_POINTER, 1, offsetof(struct GlobalE2node_gNB_ID, gNB_DU_ID), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), -1, /* IMPLICIT tag at current level */ &asn_DEF_GNB_DU_ID, 0, @@ -36,23 +46,24 @@ asn_TYPE_member_t asn_MBR_GlobalE2node_gNB_ID_1[] = { "gNB-DU-ID" }, }; -static const int asn_MAP_GlobalE2node_gNB_ID_oms_1[] = { 1, 2 }; +static const int asn_MAP_GlobalE2node_gNB_ID_oms_1[] = { 1, 2, 3 }; static const ber_tlv_tag_t asn_DEF_GlobalE2node_gNB_ID_tags_1[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; static const asn_TYPE_tag2member_t asn_MAP_GlobalE2node_gNB_ID_tag2el_1[] = { { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* global-gNB-ID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* gNB-CU-UP-ID */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* gNB-DU-ID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* global-en-gNB-ID */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* gNB-CU-UP-ID */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* gNB-DU-ID */ }; asn_SEQUENCE_specifics_t asn_SPC_GlobalE2node_gNB_ID_specs_1 = { sizeof(struct GlobalE2node_gNB_ID), offsetof(struct GlobalE2node_gNB_ID, _asn_ctx), asn_MAP_GlobalE2node_gNB_ID_tag2el_1, - 3, /* Count of tags in the map */ + 4, /* Count of tags in the map */ asn_MAP_GlobalE2node_gNB_ID_oms_1, /* Optional members */ - 2, 0, /* Root/Additions */ - 3, /* First extension addition */ + 3, 0, /* Root/Additions */ + 4, /* First extension addition */ }; asn_TYPE_descriptor_t asn_DEF_GlobalE2node_gNB_ID = { "GlobalE2node-gNB-ID", @@ -66,7 +77,7 @@ asn_TYPE_descriptor_t asn_DEF_GlobalE2node_gNB_ID = { /sizeof(asn_DEF_GlobalE2node_gNB_ID_tags_1[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, asn_MBR_GlobalE2node_gNB_ID_1, - 3, /* Elements count */ + 4, /* Elements count */ &asn_SPC_GlobalE2node_gNB_ID_specs_1 /* Additional specs */ }; diff --git a/e2sim/src/ASN1c/GlobalE2node-gNB-ID.h b/e2sim/src/ASN1c/GlobalE2node-gNB-ID.h index d160c4c..bed418d 100644 --- a/e2sim/src/ASN1c/GlobalE2node-gNB-ID.h +++ b/e2sim/src/ASN1c/GlobalE2node-gNB-ID.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #ifndef _GlobalE2node_gNB_ID_H_ @@ -21,9 +21,13 @@ extern "C" { #endif +/* Forward declarations */ +struct GlobalenGNB_ID; + /* GlobalE2node-gNB-ID */ typedef struct GlobalE2node_gNB_ID { GlobalgNB_ID_t global_gNB_ID; + struct GlobalenGNB_ID *global_en_gNB_ID; /* OPTIONAL */ GNB_CU_UP_ID_t *gNB_CU_UP_ID; /* OPTIONAL */ GNB_DU_ID_t *gNB_DU_ID; /* OPTIONAL */ /* @@ -38,7 +42,7 @@ typedef struct GlobalE2node_gNB_ID { /* Implementation */ extern asn_TYPE_descriptor_t asn_DEF_GlobalE2node_gNB_ID; extern asn_SEQUENCE_specifics_t asn_SPC_GlobalE2node_gNB_ID_specs_1; -extern asn_TYPE_member_t asn_MBR_GlobalE2node_gNB_ID_1[3]; +extern asn_TYPE_member_t asn_MBR_GlobalE2node_gNB_ID_1[4]; #ifdef __cplusplus } diff --git a/e2sim/src/ASN1c/GlobalE2node-ng-eNB-ID.c b/e2sim/src/ASN1c/GlobalE2node-ng-eNB-ID.c index c37ded1..313e953 100644 --- a/e2sim/src/ASN1c/GlobalE2node-ng-eNB-ID.c +++ b/e2sim/src/ASN1c/GlobalE2node-ng-eNB-ID.c @@ -1,12 +1,13 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #include "GlobalE2node-ng-eNB-ID.h" +#include "GlobalENB-ID.h" asn_TYPE_member_t asn_MBR_GlobalE2node_ng_eNB_ID_1[] = { { ATF_NOFLAGS, 0, offsetof(struct GlobalE2node_ng_eNB_ID, global_ng_eNB_ID), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), @@ -17,20 +18,42 @@ asn_TYPE_member_t asn_MBR_GlobalE2node_ng_eNB_ID_1[] = { 0, 0, /* No default value */ "global-ng-eNB-ID" }, + { ATF_POINTER, 2, offsetof(struct GlobalE2node_ng_eNB_ID, global_eNB_ID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_GlobalENB_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "global-eNB-ID" + }, + { ATF_POINTER, 1, offsetof(struct GlobalE2node_ng_eNB_ID, ngENB_DU_ID), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NGENB_DU_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ngENB-DU-ID" + }, }; +static const int asn_MAP_GlobalE2node_ng_eNB_ID_oms_1[] = { 1, 2 }; static const ber_tlv_tag_t asn_DEF_GlobalE2node_ng_eNB_ID_tags_1[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; static const asn_TYPE_tag2member_t asn_MAP_GlobalE2node_ng_eNB_ID_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* global-ng-eNB-ID */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* global-ng-eNB-ID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* global-eNB-ID */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* ngENB-DU-ID */ }; asn_SEQUENCE_specifics_t asn_SPC_GlobalE2node_ng_eNB_ID_specs_1 = { sizeof(struct GlobalE2node_ng_eNB_ID), offsetof(struct GlobalE2node_ng_eNB_ID, _asn_ctx), asn_MAP_GlobalE2node_ng_eNB_ID_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ + 3, /* Count of tags in the map */ + asn_MAP_GlobalE2node_ng_eNB_ID_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 3, /* First extension addition */ }; asn_TYPE_descriptor_t asn_DEF_GlobalE2node_ng_eNB_ID = { "GlobalE2node-ng-eNB-ID", @@ -44,7 +67,7 @@ asn_TYPE_descriptor_t asn_DEF_GlobalE2node_ng_eNB_ID = { /sizeof(asn_DEF_GlobalE2node_ng_eNB_ID_tags_1[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, asn_MBR_GlobalE2node_ng_eNB_ID_1, - 1, /* Elements count */ + 3, /* Elements count */ &asn_SPC_GlobalE2node_ng_eNB_ID_specs_1 /* Additional specs */ }; diff --git a/e2sim/src/ASN1c/GlobalE2node-ng-eNB-ID.h b/e2sim/src/ASN1c/GlobalE2node-ng-eNB-ID.h index b4042c5..05ca8a1 100644 --- a/e2sim/src/ASN1c/GlobalE2node-ng-eNB-ID.h +++ b/e2sim/src/ASN1c/GlobalE2node-ng-eNB-ID.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #ifndef _GlobalE2node_ng_eNB_ID_H_ @@ -13,15 +13,21 @@ /* Including external dependencies */ #include "GlobalngeNB-ID.h" +#include "NGENB-DU-ID.h" #include "constr_SEQUENCE.h" #ifdef __cplusplus extern "C" { #endif +/* Forward declarations */ +struct GlobalENB_ID; + /* GlobalE2node-ng-eNB-ID */ typedef struct GlobalE2node_ng_eNB_ID { GlobalngeNB_ID_t global_ng_eNB_ID; + struct GlobalENB_ID *global_eNB_ID; /* OPTIONAL */ + NGENB_DU_ID_t *ngENB_DU_ID; /* OPTIONAL */ /* * This type is extensible, * possible extensions are below. @@ -34,7 +40,7 @@ typedef struct GlobalE2node_ng_eNB_ID { /* Implementation */ extern asn_TYPE_descriptor_t asn_DEF_GlobalE2node_ng_eNB_ID; extern asn_SEQUENCE_specifics_t asn_SPC_GlobalE2node_ng_eNB_ID_specs_1; -extern asn_TYPE_member_t asn_MBR_GlobalE2node_ng_eNB_ID_1[1]; +extern asn_TYPE_member_t asn_MBR_GlobalE2node_ng_eNB_ID_1[3]; #ifdef __cplusplus } diff --git a/e2sim/src/ASN1c/GlobalENB-ID.c b/e2sim/src/ASN1c/GlobalENB-ID.c index ad5b9fa..d9d140a 100644 --- a/e2sim/src/ASN1c/GlobalENB-ID.c +++ b/e2sim/src/ASN1c/GlobalENB-ID.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #include "GlobalENB-ID.h" diff --git a/e2sim/src/ASN1c/GlobalENB-ID.h b/e2sim/src/ASN1c/GlobalENB-ID.h index f38829a..822ac42 100644 --- a/e2sim/src/ASN1c/GlobalENB-ID.h +++ b/e2sim/src/ASN1c/GlobalENB-ID.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #ifndef _GlobalENB_ID_H_ diff --git a/e2sim/src/ASN1c/GlobalNG-RANNode-ID.c b/e2sim/src/ASN1c/GlobalNG-RANNode-ID.c new file mode 100644 index 0000000..0541f38 --- /dev/null +++ b/e2sim/src/ASN1c/GlobalNG-RANNode-ID.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` + */ + +#include "GlobalNG-RANNode-ID.h" + +#include "GlobalgNB-ID.h" +#include "GlobalngeNB-ID.h" +asn_per_constraints_t asn_PER_type_GlobalNG_RANNode_ID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_GlobalNG_RANNode_ID_1[] = { + { ATF_POINTER, 0, offsetof(struct GlobalNG_RANNode_ID, choice.gNB), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_GlobalgNB_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "gNB" + }, + { ATF_POINTER, 0, offsetof(struct GlobalNG_RANNode_ID, choice.ng_eNB), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_GlobalngeNB_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ng-eNB" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_GlobalNG_RANNode_ID_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* gNB */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ng-eNB */ +}; +asn_CHOICE_specifics_t asn_SPC_GlobalNG_RANNode_ID_specs_1 = { + sizeof(struct GlobalNG_RANNode_ID), + offsetof(struct GlobalNG_RANNode_ID, _asn_ctx), + offsetof(struct GlobalNG_RANNode_ID, present), + sizeof(((struct GlobalNG_RANNode_ID *)0)->present), + asn_MAP_GlobalNG_RANNode_ID_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + 2 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_GlobalNG_RANNode_ID = { + "GlobalNG-RANNode-ID", + "GlobalNG-RANNode-ID", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, &asn_PER_type_GlobalNG_RANNode_ID_constr_1, CHOICE_constraint }, + asn_MBR_GlobalNG_RANNode_ID_1, + 2, /* Elements count */ + &asn_SPC_GlobalNG_RANNode_ID_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/src/ASN1c/GlobalNG-RANNode-ID.h b/e2sim/src/ASN1c/GlobalNG-RANNode-ID.h new file mode 100644 index 0000000..325cb50 --- /dev/null +++ b/e2sim/src/ASN1c/GlobalNG-RANNode-ID.h @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` + */ + +#ifndef _GlobalNG_RANNode_ID_H_ +#define _GlobalNG_RANNode_ID_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "constr_CHOICE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum GlobalNG_RANNode_ID_PR { + GlobalNG_RANNode_ID_PR_NOTHING, /* No components present */ + GlobalNG_RANNode_ID_PR_gNB, + GlobalNG_RANNode_ID_PR_ng_eNB + /* Extensions may appear below */ + +} GlobalNG_RANNode_ID_PR; + +/* Forward declarations */ +struct GlobalgNB_ID; +struct GlobalngeNB_ID; + +/* GlobalNG-RANNode-ID */ +typedef struct GlobalNG_RANNode_ID { + GlobalNG_RANNode_ID_PR present; + union GlobalNG_RANNode_ID_u { + struct GlobalgNB_ID *gNB; + struct GlobalngeNB_ID *ng_eNB; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} GlobalNG_RANNode_ID_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_GlobalNG_RANNode_ID; +extern asn_CHOICE_specifics_t asn_SPC_GlobalNG_RANNode_ID_specs_1; +extern asn_TYPE_member_t asn_MBR_GlobalNG_RANNode_ID_1[2]; +extern asn_per_constraints_t asn_PER_type_GlobalNG_RANNode_ID_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _GlobalNG_RANNode_ID_H_ */ +#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/GlobalRIC-ID.c b/e2sim/src/ASN1c/GlobalRIC-ID.c index 19260d0..5a4ef97 100644 --- a/e2sim/src/ASN1c/GlobalRIC-ID.c +++ b/e2sim/src/ASN1c/GlobalRIC-ID.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #include "GlobalRIC-ID.h" @@ -43,7 +43,7 @@ static asn_per_constraints_t asn_PER_memb_ric_ID_constr_3 CC_NOTUSED = { { APC_CONSTRAINED, 0, 0, 20, 20 } /* (SIZE(20..20)) */, 0, 0 /* No PER value map */ }; -asn_TYPE_member_t asn_MBR_GlobalRIC_ID_1[] = { +static asn_TYPE_member_t asn_MBR_GlobalRIC_ID_1[] = { { ATF_NOFLAGS, 0, offsetof(struct GlobalRIC_ID, pLMN_Identity), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ @@ -70,7 +70,7 @@ static const asn_TYPE_tag2member_t asn_MAP_GlobalRIC_ID_tag2el_1[] = { { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pLMN-Identity */ { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ric-ID */ }; -asn_SEQUENCE_specifics_t asn_SPC_GlobalRIC_ID_specs_1 = { +static asn_SEQUENCE_specifics_t asn_SPC_GlobalRIC_ID_specs_1 = { sizeof(struct GlobalRIC_ID), offsetof(struct GlobalRIC_ID, _asn_ctx), asn_MAP_GlobalRIC_ID_tag2el_1, diff --git a/e2sim/src/ASN1c/GlobalRIC-ID.h b/e2sim/src/ASN1c/GlobalRIC-ID.h index 6024a04..93ccdb0 100644 --- a/e2sim/src/ASN1c/GlobalRIC-ID.h +++ b/e2sim/src/ASN1c/GlobalRIC-ID.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #ifndef _GlobalRIC_ID_H_ @@ -35,8 +35,6 @@ typedef struct GlobalRIC_ID { /* Implementation */ extern asn_TYPE_descriptor_t asn_DEF_GlobalRIC_ID; -extern asn_SEQUENCE_specifics_t asn_SPC_GlobalRIC_ID_specs_1; -extern asn_TYPE_member_t asn_MBR_GlobalRIC_ID_1[2]; #ifdef __cplusplus } diff --git a/e2sim/src/ASN1c/GlobalenGNB-ID.c b/e2sim/src/ASN1c/GlobalenGNB-ID.c index 46a641a..412df59 100644 --- a/e2sim/src/ASN1c/GlobalenGNB-ID.c +++ b/e2sim/src/ASN1c/GlobalenGNB-ID.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #include "GlobalenGNB-ID.h" diff --git a/e2sim/src/ASN1c/GlobalenGNB-ID.h b/e2sim/src/ASN1c/GlobalenGNB-ID.h index bb96628..b32cebe 100644 --- a/e2sim/src/ASN1c/GlobalenGNB-ID.h +++ b/e2sim/src/ASN1c/GlobalenGNB-ID.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #ifndef _GlobalenGNB_ID_H_ diff --git a/e2sim/src/ASN1c/GlobalgNB-ID.c b/e2sim/src/ASN1c/GlobalgNB-ID.c index a143609..5b756ef 100644 --- a/e2sim/src/ASN1c/GlobalgNB-ID.c +++ b/e2sim/src/ASN1c/GlobalgNB-ID.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #include "GlobalgNB-ID.h" diff --git a/e2sim/src/ASN1c/GlobalgNB-ID.h b/e2sim/src/ASN1c/GlobalgNB-ID.h index 7061c98..9287069 100644 --- a/e2sim/src/ASN1c/GlobalgNB-ID.h +++ b/e2sim/src/ASN1c/GlobalgNB-ID.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #ifndef _GlobalgNB_ID_H_ diff --git a/e2sim/src/ASN1c/GlobalngeNB-ID.c b/e2sim/src/ASN1c/GlobalngeNB-ID.c index 8694350..f4ba963 100644 --- a/e2sim/src/ASN1c/GlobalngeNB-ID.c +++ b/e2sim/src/ASN1c/GlobalngeNB-ID.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #include "GlobalngeNB-ID.h" diff --git a/e2sim/src/ASN1c/GlobalngeNB-ID.h b/e2sim/src/ASN1c/GlobalngeNB-ID.h index 5f3cf3d..5ca930f 100644 --- a/e2sim/src/ASN1c/GlobalngeNB-ID.h +++ b/e2sim/src/ASN1c/GlobalngeNB-ID.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #ifndef _GlobalngeNB_ID_H_ diff --git a/e2sim/src/ASN1c/INTEGER_oer.c b/e2sim/src/ASN1c/INTEGER_oer.c deleted file mode 100644 index 110689b..0000000 --- a/e2sim/src/ASN1c/INTEGER_oer.c +++ /dev/null @@ -1,179 +0,0 @@ -/* - * Copyright (c) 2017 Lev Walkin . - * All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef ASN_DISABLE_OER_SUPPORT - -#include -#include -#include - -asn_dec_rval_t -INTEGER_decode_oer(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_oer_constraints_t *constraints, void **sptr, - const void *ptr, size_t size) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - asn_dec_rval_t rval = {RC_OK, 0}; - INTEGER_t *st = (INTEGER_t *)*sptr; - struct asn_oer_constraint_number_s ct = {0, 0}; - size_t req_bytes; - - (void)opt_codec_ctx; - (void)specs; - - if(!st) { - st = (INTEGER_t *)(*sptr = CALLOC(1, sizeof(*st))); - if(!st) ASN__DECODE_FAILED; - } - - FREEMEM(st->buf); - st->buf = 0; - st->size = 0; - - if(!constraints) constraints = td->encoding_constraints.oer_constraints; - if(constraints) ct = constraints->value; - - if(ct.width) { - req_bytes = ct.width; - } else { - /* No lower bound and no upper bound, effectively */ - - ssize_t consumed = oer_fetch_length(ptr, size, &req_bytes); - if(consumed == 0) { - ASN__DECODE_STARVED; - } else if(consumed == -1) { - ASN__DECODE_FAILED; - } - rval.consumed += consumed; - ptr = (const char *)ptr + consumed; - size -= consumed; - } - - if(req_bytes > size) { - ASN__DECODE_STARVED; - } - - if(ct.positive) { - /* X.969 08/2015 10.2(a) */ - unsigned msb; /* Most significant bit */ - size_t useful_size; - - /* Check most significant bit */ - msb = *(const uint8_t *)ptr >> 7; /* yields 0 or 1 */ - useful_size = msb + req_bytes; - st->buf = (uint8_t *)MALLOC(useful_size + 1); - if(!st->buf) { - ASN__DECODE_FAILED; - } - - /* - * Record a large unsigned in a way not to confuse it - * with signed value. - */ - st->buf[0] = '\0'; - memcpy(st->buf + msb, ptr, req_bytes); - st->buf[useful_size] = '\0'; /* Just in case, 0-terminate */ - st->size = useful_size; - - rval.consumed += req_bytes; - return rval; - } else { - /* X.969 08/2015 10.2(b) */ - st->buf = (uint8_t *)MALLOC(req_bytes + 1); - if(!st->buf) { - ASN__DECODE_FAILED; - } - - memcpy(st->buf, ptr, req_bytes); - st->buf[req_bytes] = '\0'; /* Just in case, 0-terminate */ - st->size = req_bytes; - - rval.consumed += req_bytes; - return rval; - } -} - -/* - * Encode as Canonical OER. - */ -asn_enc_rval_t -INTEGER_encode_oer(const asn_TYPE_descriptor_t *td, - const asn_oer_constraints_t *constraints, const void *sptr, - asn_app_consume_bytes_f *cb, void *app_key) { - const INTEGER_t *st = sptr; - asn_enc_rval_t er = {0,0,0}; - struct asn_oer_constraint_number_s ct = {0, 0}; - const uint8_t *buf; - const uint8_t *end; - size_t useful_bytes; - size_t req_bytes = 0; - int sign = 0; - - if(!st || st->size == 0) ASN__ENCODE_FAILED; - - if(!constraints) constraints = td->encoding_constraints.oer_constraints; - if(constraints) ct = constraints->value; - - er.encoded = 0; - - buf = st->buf; - end = buf + st->size; - - sign = (buf && buf < end) ? buf[0] & 0x80 : 0; - - /* Ignore 9 leading zeroes or ones */ - if(ct.positive) { - if(sign) { - /* The value given is a signed value. Can't proceed. */ - ASN__ENCODE_FAILED; - } - /* Remove leading zeros. */ - for(; buf + 1 < end; buf++) { - if(buf[0] != 0x0) break; - } - } else { - for(; buf + 1 < end; buf++) { - if(buf[0] == 0x0 && (buf[1] & 0x80) == 0) { - continue; - } else if(buf[0] == 0xff && (buf[1] & 0x80) != 0) { - continue; - } - break; - } - } - - useful_bytes = end - buf; - if(ct.width) { - req_bytes = ct.width; - } else { - ssize_t r = oer_serialize_length(useful_bytes, cb, app_key); - if(r < 0) { - ASN__ENCODE_FAILED; - } - er.encoded += r; - req_bytes = useful_bytes; - } - - if(req_bytes < useful_bytes) { - ASN__ENCODE_FAILED; - } - - er.encoded += req_bytes; - - for(; req_bytes > useful_bytes; req_bytes--) { - if(cb(sign?"\xff":"\0", 1, app_key) < 0) { - ASN__ENCODE_FAILED; - } - } - - if(cb(buf, useful_bytes, app_key) < 0) { - ASN__ENCODE_FAILED; - } - - ASN__ENCODED_OK(er); -} - -#endif /* ASN_DISABLE_OER_SUPPORT */ diff --git a/e2sim/src/ASN1c/InitiatingMessage.c b/e2sim/src/ASN1c/InitiatingMessage.c index 4a7db12..bbe2e22 100644 --- a/e2sim/src/ASN1c/InitiatingMessage.c +++ b/e2sim/src/ASN1c/InitiatingMessage.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Descriptions" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #include "InitiatingMessage.h" @@ -29,6 +29,8 @@ static const long asn_VAL_10_id_RICserviceQuery = 6; static const long asn_VAL_10_ignore = 1; static const long asn_VAL_11_id_ErrorIndication = 2; static const long asn_VAL_11_ignore = 1; +static const long asn_VAL_12_id_RICsubscriptionDeleteRequired = 12; +static const long asn_VAL_12_ignore = 1; static const asn_ioc_cell_t asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1_rows[] = { { "&InitiatingMessage", aioc__type, &asn_DEF_RICsubscriptionRequest }, { "&SuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionResponse }, @@ -84,10 +86,15 @@ static const asn_ioc_cell_t asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1_rows[] = { { "&SuccessfulOutcome", }, { "&UnsuccessfulOutcome", }, { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_11_id_ErrorIndication }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_11_ignore } + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_11_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_RICsubscriptionDeleteRequired }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_12_id_RICsubscriptionDeleteRequired }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_12_ignore } }; static const asn_ioc_set_t asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1[] = { - { 11, 5, asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1_rows } + { 12, 5, asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1_rows } }; static int memb_procedureCode_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, @@ -321,19 +328,29 @@ static asn_TYPE_member_t asn_MBR_value_4[] = { 0, 0, /* No default value */ "ErrorIndication" }, + { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.RICsubscriptionDeleteRequired), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RICsubscriptionDeleteRequired, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RICsubscriptionDeleteRequired" + }, }; static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_4[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 10 }, /* RICsubscriptionRequest */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 9 }, /* RICsubscriptionDeleteRequest */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -2, 8 }, /* RICserviceUpdate */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -3, 7 }, /* RICcontrolRequest */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, -4, 6 }, /* E2setupRequest */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 5, -5, 5 }, /* E2nodeConfigurationUpdate */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 6, -6, 4 }, /* E2connectionUpdate */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 7, -7, 3 }, /* ResetRequest */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 8, -8, 2 }, /* RICindication */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 9, -9, 1 }, /* RICserviceQuery */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 10, -10, 0 } /* ErrorIndication */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 11 }, /* RICsubscriptionRequest */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 10 }, /* RICsubscriptionDeleteRequest */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -2, 9 }, /* RICserviceUpdate */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -3, 8 }, /* RICcontrolRequest */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, -4, 7 }, /* E2setupRequest */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 5, -5, 6 }, /* E2nodeConfigurationUpdate */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 6, -6, 5 }, /* E2connectionUpdate */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 7, -7, 4 }, /* ResetRequest */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 8, -8, 3 }, /* RICindication */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 9, -9, 2 }, /* RICserviceQuery */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 10, -10, 1 }, /* ErrorIndication */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 11, -11, 0 } /* RICsubscriptionDeleteRequired */ }; static asn_CHOICE_specifics_t asn_SPC_value_specs_4 = { sizeof(struct InitiatingMessage__value), @@ -341,7 +358,7 @@ static asn_CHOICE_specifics_t asn_SPC_value_specs_4 = { offsetof(struct InitiatingMessage__value, present), sizeof(((struct InitiatingMessage__value *)0)->present), asn_MAP_value_tag2el_4, - 11, /* Count of tags in the map */ + 12, /* Count of tags in the map */ 0, 0, -1 /* Extensions start */ }; @@ -356,7 +373,7 @@ asn_TYPE_descriptor_t asn_DEF_value_4 = { 0, /* No tags (count) */ { 0, 0, OPEN_TYPE_constraint }, asn_MBR_value_4, - 11, /* Elements count */ + 12, /* Elements count */ &asn_SPC_value_specs_4 /* Additional specs */ }; diff --git a/e2sim/src/ASN1c/InitiatingMessage.h b/e2sim/src/ASN1c/InitiatingMessage.h index 9a4d02d..b4e4384 100644 --- a/e2sim/src/ASN1c/InitiatingMessage.h +++ b/e2sim/src/ASN1c/InitiatingMessage.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Descriptions" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #ifndef _InitiatingMessage_H_ @@ -42,6 +42,7 @@ #include "RICindication.h" #include "RICserviceQuery.h" #include "ErrorIndication.h" +#include "RICsubscriptionDeleteRequired.h" #include "OPEN_TYPE.h" #include "constr_CHOICE.h" #include "constr_SEQUENCE.h" @@ -63,7 +64,8 @@ typedef enum InitiatingMessage__value_PR { InitiatingMessage__value_PR_ResetRequest, InitiatingMessage__value_PR_RICindication, InitiatingMessage__value_PR_RICserviceQuery, - InitiatingMessage__value_PR_ErrorIndication + InitiatingMessage__value_PR_ErrorIndication, + InitiatingMessage__value_PR_RICsubscriptionDeleteRequired } InitiatingMessage__value_PR; /* InitiatingMessage */ @@ -84,6 +86,7 @@ typedef struct InitiatingMessage { RICindication_t RICindication; RICserviceQuery_t RICserviceQuery; ErrorIndication_t ErrorIndication; + RICsubscriptionDeleteRequired_t RICsubscriptionDeleteRequired; } choice; /* Context for parsing across buffer boundaries */ diff --git a/e2sim/src/ASN1c/MMEname.c b/e2sim/src/ASN1c/MMEname.c new file mode 100644 index 0000000..92cf47a --- /dev/null +++ b/e2sim/src/ASN1c/MMEname.c @@ -0,0 +1,106 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` + */ + +#include "MMEname.h" + +static const int permitted_alphabet_table_1[256] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */ + 1, 0, 0, 0, 0, 0, 0, 2, 3, 4, 0, 5, 6, 7, 8, 9, /* . '() +,-./ */ +10,11,12,13,14,15,16,17,18,19,20, 0, 0,21, 0,22, /* 0123456789: = ? */ + 0,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37, /* ABCDEFGHIJKLMNO */ +38,39,40,41,42,43,44,45,46,47,48, 0, 0, 0, 0, 0, /* PQRSTUVWXYZ */ + 0,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63, /* abcdefghijklmno */ +64,65,66,67,68,69,70,71,72,73,74, 0, 0, 0, 0, 0, /* pqrstuvwxyz */ +}; +static const int permitted_alphabet_code2value_1[74] = { +32,39,40,41,43,44,45,46,47,48,49,50,51,52,53,54, +55,56,57,58,61,63,65,66,67,68,69,70,71,72,73,74, +75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90, +97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112, +113,114,115,116,117,118,119,120,121,122,}; + + +static int check_permitted_alphabet_1(const void *sptr) { + const int *table = permitted_alphabet_table_1; + /* The underlying type is PrintableString */ + const PrintableString_t *st = (const PrintableString_t *)sptr; + const uint8_t *ch = st->buf; + const uint8_t *end = ch + st->size; + + for(; ch < end; ch++) { + uint8_t cv = *ch; + if(!table[cv]) return -1; + } + return 0; +} + +int +MMEname_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const PrintableString_t *st = (const PrintableString_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size >= 1 && size <= 150) + && !check_permitted_alphabet_1(st)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int asn_PER_MAP_MMEname_1_v2c(unsigned int value) { + if(value >= sizeof(permitted_alphabet_table_1)/sizeof(permitted_alphabet_table_1[0])) + return -1; + return permitted_alphabet_table_1[value] - 1; +} +static int asn_PER_MAP_MMEname_1_c2v(unsigned int code) { + if(code >= sizeof(permitted_alphabet_code2value_1)/sizeof(permitted_alphabet_code2value_1[0])) + return -1; + return permitted_alphabet_code2value_1[code]; +} +/* + * This type is implemented using PrintableString, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_MMEname_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 32, 122 } /* (32..122) */, + { APC_CONSTRAINED | APC_EXTENSIBLE, 8, 8, 1, 150 } /* (SIZE(1..150,...)) */, + asn_PER_MAP_MMEname_1_v2c, /* Value to PER code map */ + asn_PER_MAP_MMEname_1_c2v /* PER code to value map */ +}; +static const ber_tlv_tag_t asn_DEF_MMEname_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (19 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_MMEname = { + "MMEname", + "MMEname", + &asn_OP_PrintableString, + asn_DEF_MMEname_tags_1, + sizeof(asn_DEF_MMEname_tags_1) + /sizeof(asn_DEF_MMEname_tags_1[0]), /* 1 */ + asn_DEF_MMEname_tags_1, /* Same as above */ + sizeof(asn_DEF_MMEname_tags_1) + /sizeof(asn_DEF_MMEname_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_MMEname_constr_1, MMEname_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/e2sim/src/ASN1c/MMEname.h b/e2sim/src/ASN1c/MMEname.h new file mode 100644 index 0000000..28137b0 --- /dev/null +++ b/e2sim/src/ASN1c/MMEname.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` + */ + +#ifndef _MMEname_H_ +#define _MMEname_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "PrintableString.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* MMEname */ +typedef PrintableString_t MMEname_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_MMEname_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_MMEname; +asn_struct_free_f MMEname_free; +asn_struct_print_f MMEname_print; +asn_constr_check_f MMEname_constraint; +ber_type_decoder_f MMEname_decode_ber; +der_type_encoder_f MMEname_encode_der; +xer_type_decoder_f MMEname_decode_xer; +xer_type_encoder_f MMEname_encode_xer; +per_type_decoder_f MMEname_decode_uper; +per_type_encoder_f MMEname_encode_uper; +per_type_decoder_f MMEname_decode_aper; +per_type_encoder_f MMEname_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _MMEname_H_ */ +#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/Makefile.am.asn1convert b/e2sim/src/ASN1c/Makefile.am.asn1convert deleted file mode 100644 index 62c2707..0000000 --- a/e2sim/src/ASN1c/Makefile.am.asn1convert +++ /dev/null @@ -1,14 +0,0 @@ -include ./Makefile.am.libasncodec - -bin_PROGRAMS += asn1convert -asn1convert_CFLAGS = $(ASN_MODULE_CFLAGS) -DASN_PDU_COLLECTION -asn1convert_CPPFLAGS = -I$(top_srcdir)/./ -asn1convert_LDADD = libasncodec.la -asn1convert_SOURCES = \ - ./converter-example.c\ - ./pdu_collection.c -regen: regenerate-from-asn1-source - -regenerate-from-asn1-source: - asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -D . /root/e2ap-v01.00.00.asn - diff --git a/e2sim/src/ASN1c/Makefile.am.libasncodec b/e2sim/src/ASN1c/Makefile.am.libasncodec index 215ef0a..6395c68 100644 --- a/e2sim/src/ASN1c/Makefile.am.libasncodec +++ b/e2sim/src/ASN1c/Makefile.am.libasncodec @@ -1,78 +1,4 @@ ASN_MODULE_SRCS= \ - Criticality.c \ - Presence.c \ - ProcedureCode.c \ - ProtocolIE-ID.c \ - TriggeringMessage.c \ - ProtocolIE-Container.c \ - ProtocolIE-SingleContainer.c \ - ProtocolIE-Field.c \ - ProtocolIE-ContainerPair.c \ - ProtocolIE-FieldPair.c \ - ProtocolIE-ContainerList.c \ - ProtocolIE-ContainerPairList.c \ - Cause.c \ - CauseMisc.c \ - CauseProtocol.c \ - CauseRIC.c \ - CauseRICservice.c \ - CauseTransport.c \ - CriticalityDiagnostics.c \ - CriticalityDiagnostics-IE-List.c \ - CriticalityDiagnostics-IE-Item.c \ - E2nodeComponentConfigUpdate.c \ - E2nodeComponentConfigUpdateGNB.c \ - E2nodeComponentConfigUpdateENgNB.c \ - E2nodeComponentConfigUpdateNGeNB.c \ - E2nodeComponentConfigUpdateENB.c \ - E2nodeComponentConfigUpdateAck.c \ - E2nodeComponentType.c \ - E2nodeComponentID.c \ - E2nodeComponentGNB-CU-UP-ID.c \ - E2nodeComponentGNB-DU-ID.c \ - ENB-ID.c \ - ENB-ID-Choice.c \ - ENGNB-ID.c \ - GlobalE2node-ID.c \ - GlobalE2node-en-gNB-ID.c \ - GlobalE2node-eNB-ID.c \ - GlobalE2node-gNB-ID.c \ - GlobalE2node-ng-eNB-ID.c \ - GlobalENB-ID.c \ - GlobalenGNB-ID.c \ - GlobalgNB-ID.c \ - GlobalngeNB-ID.c \ - GlobalRIC-ID.c \ - GNB-CU-UP-ID.c \ - GNB-DU-ID.c \ - GNB-ID-Choice.c \ - PLMN-Identity.c \ - RANfunctionDefinition.c \ - RANfunctionID.c \ - RANfunctionOID.c \ - RANfunctionRevision.c \ - RICactionDefinition.c \ - RICactionID.c \ - RICactionType.c \ - RICcallProcessID.c \ - RICcontrolAckRequest.c \ - RICcontrolHeader.c \ - RICcontrolMessage.c \ - RICcontrolOutcome.c \ - RICcontrolStatus.c \ - RICeventTriggerDefinition.c \ - RICindicationHeader.c \ - RICindicationMessage.c \ - RICindicationSN.c \ - RICindicationType.c \ - RICrequestID.c \ - RICsubsequentAction.c \ - RICsubsequentActionType.c \ - RICtimeToWait.c \ - TimeToWait.c \ - TNLinformation.c \ - TNLusage.c \ - TypeOfError.c \ E2AP-PDU.c \ InitiatingMessage.c \ SuccessfulOutcome.c \ @@ -90,6 +16,9 @@ ASN_MODULE_SRCS= \ RICsubscriptionDeleteRequest.c \ RICsubscriptionDeleteResponse.c \ RICsubscriptionDeleteFailure.c \ + RICsubscriptionDeleteRequired.c \ + RICsubscription-List-withCause.c \ + RICsubscription-withCause-Item.c \ RICindication.c \ RICcontrolRequest.c \ RICcontrolAcknowledge.c \ @@ -108,11 +37,21 @@ ASN_MODULE_SRCS= \ E2connectionSetupFailed-Item.c \ E2connectionUpdateFailure.c \ E2nodeConfigurationUpdate.c \ + E2nodeComponentConfigAddition-List.c \ + E2nodeComponentConfigAddition-Item.c \ E2nodeComponentConfigUpdate-List.c \ E2nodeComponentConfigUpdate-Item.c \ + E2nodeComponentConfigRemoval-List.c \ + E2nodeComponentConfigRemoval-Item.c \ + E2nodeTNLassociationRemoval-List.c \ + E2nodeTNLassociationRemoval-Item.c \ E2nodeConfigurationUpdateAcknowledge.c \ + E2nodeComponentConfigAdditionAck-List.c \ + E2nodeComponentConfigAdditionAck-Item.c \ E2nodeComponentConfigUpdateAck-List.c \ E2nodeComponentConfigUpdateAck-Item.c \ + E2nodeComponentConfigRemovalAck-List.c \ + E2nodeComponentConfigRemovalAck-Item.c \ E2nodeConfigurationUpdateFailure.c \ ResetRequest.c \ ResetResponse.c \ @@ -125,83 +64,89 @@ ASN_MODULE_SRCS= \ RANfunctionsIDcause-List.c \ RANfunctionIDcause-Item.c \ RICserviceUpdateFailure.c \ - RICserviceQuery.c + RICserviceQuery.c \ + AMFName.c \ + Cause.c \ + CauseE2node.c \ + CauseMisc.c \ + CauseProtocol.c \ + CauseRICrequest.c \ + CauseRICservice.c \ + CauseTransport.c \ + CriticalityDiagnostics.c \ + CriticalityDiagnostics-IE-List.c \ + CriticalityDiagnostics-IE-Item.c \ + E2nodeComponentConfiguration.c \ + E2nodeComponentConfigurationAck.c \ + E2nodeComponentInterfaceType.c \ + E2nodeComponentID.c \ + E2nodeComponentInterfaceE1.c \ + E2nodeComponentInterfaceF1.c \ + E2nodeComponentInterfaceNG.c \ + E2nodeComponentInterfaceS1.c \ + E2nodeComponentInterfaceX2.c \ + E2nodeComponentInterfaceXn.c \ + E2nodeComponentInterfaceW1.c \ + ENB-ID.c \ + ENB-ID-Choice.c \ + ENGNB-ID.c \ + GlobalE2node-ID.c \ + GlobalE2node-en-gNB-ID.c \ + GlobalE2node-eNB-ID.c \ + GlobalE2node-gNB-ID.c \ + GlobalE2node-ng-eNB-ID.c \ + GlobalENB-ID.c \ + GlobalenGNB-ID.c \ + GlobalgNB-ID.c \ + GlobalngeNB-ID.c \ + GlobalNG-RANNode-ID.c \ + GlobalRIC-ID.c \ + GNB-CU-UP-ID.c \ + GNB-DU-ID.c \ + GNB-ID-Choice.c \ + MMEname.c \ + NGENB-DU-ID.c \ + PLMN-Identity.c \ + RANfunctionDefinition.c \ + RANfunctionID.c \ + RANfunctionOID.c \ + RANfunctionRevision.c \ + RICactionDefinition.c \ + RICactionID.c \ + RICactionType.c \ + RICcallProcessID.c \ + RICcontrolAckRequest.c \ + RICcontrolHeader.c \ + RICcontrolMessage.c \ + RICcontrolOutcome.c \ + RICeventTriggerDefinition.c \ + RICindicationHeader.c \ + RICindicationMessage.c \ + RICindicationSN.c \ + RICindicationType.c \ + RICrequestID.c \ + RICsubsequentAction.c \ + RICsubsequentActionType.c \ + RICtimeToWait.c \ + TimeToWait.c \ + TNLinformation.c \ + TNLusage.c \ + TransactionID.c \ + TypeOfError.c \ + Criticality.c \ + Presence.c \ + ProcedureCode.c \ + ProtocolIE-ID.c \ + TriggeringMessage.c \ + ProtocolIE-Container.c \ + ProtocolIE-SingleContainer.c \ + ProtocolIE-Field.c \ + ProtocolIE-ContainerPair.c \ + ProtocolIE-FieldPair.c \ + ProtocolIE-ContainerList.c \ + ProtocolIE-ContainerPairList.c ASN_MODULE_HDRS= \ - Criticality.h \ - Presence.h \ - ProcedureCode.h \ - ProtocolIE-ID.h \ - TriggeringMessage.h \ - ProtocolIE-Container.h \ - ProtocolIE-SingleContainer.h \ - ProtocolIE-Field.h \ - ProtocolIE-ContainerPair.h \ - ProtocolIE-FieldPair.h \ - ProtocolIE-ContainerList.h \ - ProtocolIE-ContainerPairList.h \ - Cause.h \ - CauseMisc.h \ - CauseProtocol.h \ - CauseRIC.h \ - CauseRICservice.h \ - CauseTransport.h \ - CriticalityDiagnostics.h \ - CriticalityDiagnostics-IE-List.h \ - CriticalityDiagnostics-IE-Item.h \ - E2nodeComponentConfigUpdate.h \ - E2nodeComponentConfigUpdateGNB.h \ - E2nodeComponentConfigUpdateENgNB.h \ - E2nodeComponentConfigUpdateNGeNB.h \ - E2nodeComponentConfigUpdateENB.h \ - E2nodeComponentConfigUpdateAck.h \ - E2nodeComponentType.h \ - E2nodeComponentID.h \ - E2nodeComponentGNB-CU-UP-ID.h \ - E2nodeComponentGNB-DU-ID.h \ - ENB-ID.h \ - ENB-ID-Choice.h \ - ENGNB-ID.h \ - GlobalE2node-ID.h \ - GlobalE2node-en-gNB-ID.h \ - GlobalE2node-eNB-ID.h \ - GlobalE2node-gNB-ID.h \ - GlobalE2node-ng-eNB-ID.h \ - GlobalENB-ID.h \ - GlobalenGNB-ID.h \ - GlobalgNB-ID.h \ - GlobalngeNB-ID.h \ - GlobalRIC-ID.h \ - GNB-CU-UP-ID.h \ - GNB-DU-ID.h \ - GNB-ID-Choice.h \ - PLMN-Identity.h \ - RANfunctionDefinition.h \ - RANfunctionID.h \ - RANfunctionOID.h \ - RANfunctionRevision.h \ - RICactionDefinition.h \ - RICactionID.h \ - RICactionType.h \ - RICcallProcessID.h \ - RICcontrolAckRequest.h \ - RICcontrolHeader.h \ - RICcontrolMessage.h \ - RICcontrolOutcome.h \ - RICcontrolStatus.h \ - RICeventTriggerDefinition.h \ - RICindicationHeader.h \ - RICindicationMessage.h \ - RICindicationSN.h \ - RICindicationType.h \ - RICrequestID.h \ - RICsubsequentAction.h \ - RICsubsequentActionType.h \ - RICtimeToWait.h \ - TimeToWait.h \ - TNLinformation.h \ - TNLusage.h \ - TypeOfError.h \ E2AP-PDU.h \ InitiatingMessage.h \ SuccessfulOutcome.h \ @@ -219,6 +164,9 @@ ASN_MODULE_HDRS= \ RICsubscriptionDeleteRequest.h \ RICsubscriptionDeleteResponse.h \ RICsubscriptionDeleteFailure.h \ + RICsubscriptionDeleteRequired.h \ + RICsubscription-List-withCause.h \ + RICsubscription-withCause-Item.h \ RICindication.h \ RICcontrolRequest.h \ RICcontrolAcknowledge.h \ @@ -237,11 +185,21 @@ ASN_MODULE_HDRS= \ E2connectionSetupFailed-Item.h \ E2connectionUpdateFailure.h \ E2nodeConfigurationUpdate.h \ + E2nodeComponentConfigAddition-List.h \ + E2nodeComponentConfigAddition-Item.h \ E2nodeComponentConfigUpdate-List.h \ E2nodeComponentConfigUpdate-Item.h \ + E2nodeComponentConfigRemoval-List.h \ + E2nodeComponentConfigRemoval-Item.h \ + E2nodeTNLassociationRemoval-List.h \ + E2nodeTNLassociationRemoval-Item.h \ E2nodeConfigurationUpdateAcknowledge.h \ + E2nodeComponentConfigAdditionAck-List.h \ + E2nodeComponentConfigAdditionAck-Item.h \ E2nodeComponentConfigUpdateAck-List.h \ E2nodeComponentConfigUpdateAck-Item.h \ + E2nodeComponentConfigRemovalAck-List.h \ + E2nodeComponentConfigRemovalAck-Item.h \ E2nodeConfigurationUpdateFailure.h \ ResetRequest.h \ ResetResponse.h \ @@ -254,7 +212,87 @@ ASN_MODULE_HDRS= \ RANfunctionsIDcause-List.h \ RANfunctionIDcause-Item.h \ RICserviceUpdateFailure.h \ - RICserviceQuery.h + RICserviceQuery.h \ + AMFName.h \ + Cause.h \ + CauseE2node.h \ + CauseMisc.h \ + CauseProtocol.h \ + CauseRICrequest.h \ + CauseRICservice.h \ + CauseTransport.h \ + CriticalityDiagnostics.h \ + CriticalityDiagnostics-IE-List.h \ + CriticalityDiagnostics-IE-Item.h \ + E2nodeComponentConfiguration.h \ + E2nodeComponentConfigurationAck.h \ + E2nodeComponentInterfaceType.h \ + E2nodeComponentID.h \ + E2nodeComponentInterfaceE1.h \ + E2nodeComponentInterfaceF1.h \ + E2nodeComponentInterfaceNG.h \ + E2nodeComponentInterfaceS1.h \ + E2nodeComponentInterfaceX2.h \ + E2nodeComponentInterfaceXn.h \ + E2nodeComponentInterfaceW1.h \ + ENB-ID.h \ + ENB-ID-Choice.h \ + ENGNB-ID.h \ + GlobalE2node-ID.h \ + GlobalE2node-en-gNB-ID.h \ + GlobalE2node-eNB-ID.h \ + GlobalE2node-gNB-ID.h \ + GlobalE2node-ng-eNB-ID.h \ + GlobalENB-ID.h \ + GlobalenGNB-ID.h \ + GlobalgNB-ID.h \ + GlobalngeNB-ID.h \ + GlobalNG-RANNode-ID.h \ + GlobalRIC-ID.h \ + GNB-CU-UP-ID.h \ + GNB-DU-ID.h \ + GNB-ID-Choice.h \ + MMEname.h \ + NGENB-DU-ID.h \ + PLMN-Identity.h \ + RANfunctionDefinition.h \ + RANfunctionID.h \ + RANfunctionOID.h \ + RANfunctionRevision.h \ + RICactionDefinition.h \ + RICactionID.h \ + RICactionType.h \ + RICcallProcessID.h \ + RICcontrolAckRequest.h \ + RICcontrolHeader.h \ + RICcontrolMessage.h \ + RICcontrolOutcome.h \ + RICeventTriggerDefinition.h \ + RICindicationHeader.h \ + RICindicationMessage.h \ + RICindicationSN.h \ + RICindicationType.h \ + RICrequestID.h \ + RICsubsequentAction.h \ + RICsubsequentActionType.h \ + RICtimeToWait.h \ + TimeToWait.h \ + TNLinformation.h \ + TNLusage.h \ + TransactionID.h \ + TypeOfError.h \ + Criticality.h \ + Presence.h \ + ProcedureCode.h \ + ProtocolIE-ID.h \ + TriggeringMessage.h \ + ProtocolIE-Container.h \ + ProtocolIE-SingleContainer.h \ + ProtocolIE-Field.h \ + ProtocolIE-ContainerPair.h \ + ProtocolIE-FieldPair.h \ + ProtocolIE-ContainerList.h \ + ProtocolIE-ContainerPairList.h ASN_MODULE_HDRS+=ANY.h ASN_MODULE_SRCS+=ANY.c diff --git a/e2sim/src/ASN1c/NGENB-DU-ID.c b/e2sim/src/ASN1c/NGENB-DU-ID.c new file mode 100644 index 0000000..7842307 --- /dev/null +++ b/e2sim/src/ASN1c/NGENB-DU-ID.c @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` + */ + +#include "NGENB-DU-ID.h" + +int +NGENB_DU_ID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const INTEGER_t *st = (const INTEGER_t *)sptr; + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(asn_INTEGER2long(st, &value)) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value too large (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if((value >= 0 && value <= 68719476735)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using INTEGER, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_NGENB_DU_ID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 36, -1, 0, 68719476735 } /* (0..68719476735) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_NGENB_DU_ID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_NGENB_DU_ID = { + "NGENB-DU-ID", + "NGENB-DU-ID", + &asn_OP_INTEGER, + asn_DEF_NGENB_DU_ID_tags_1, + sizeof(asn_DEF_NGENB_DU_ID_tags_1) + /sizeof(asn_DEF_NGENB_DU_ID_tags_1[0]), /* 1 */ + asn_DEF_NGENB_DU_ID_tags_1, /* Same as above */ + sizeof(asn_DEF_NGENB_DU_ID_tags_1) + /sizeof(asn_DEF_NGENB_DU_ID_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_NGENB_DU_ID_constr_1, NGENB_DU_ID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/e2sim/src/ASN1c/NGENB-DU-ID.h b/e2sim/src/ASN1c/NGENB-DU-ID.h new file mode 100644 index 0000000..cb33684 --- /dev/null +++ b/e2sim/src/ASN1c/NGENB-DU-ID.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` + */ + +#ifndef _NGENB_DU_ID_H_ +#define _NGENB_DU_ID_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "INTEGER.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* NGENB-DU-ID */ +typedef INTEGER_t NGENB_DU_ID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_NGENB_DU_ID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_NGENB_DU_ID; +asn_struct_free_f NGENB_DU_ID_free; +asn_struct_print_f NGENB_DU_ID_print; +asn_constr_check_f NGENB_DU_ID_constraint; +ber_type_decoder_f NGENB_DU_ID_decode_ber; +der_type_encoder_f NGENB_DU_ID_encode_der; +xer_type_decoder_f NGENB_DU_ID_decode_xer; +xer_type_encoder_f NGENB_DU_ID_encode_xer; +per_type_decoder_f NGENB_DU_ID_decode_uper; +per_type_encoder_f NGENB_DU_ID_encode_uper; +per_type_decoder_f NGENB_DU_ID_decode_aper; +per_type_encoder_f NGENB_DU_ID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _NGENB_DU_ID_H_ */ +#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/NativeEnumerated_oer.c b/e2sim/src/ASN1c/NativeEnumerated_oer.c deleted file mode 100644 index ee3c189..0000000 --- a/e2sim/src/ASN1c/NativeEnumerated_oer.c +++ /dev/null @@ -1,149 +0,0 @@ -/* - * Copyright (c) 2017 Lev Walkin . - * All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef ASN_DISABLE_OER_SUPPORT - -#include -#include -#include - -static long -asn__nativeenumerated_convert(const uint8_t *b, const uint8_t *end) { - unsigned long value; - - /* Perform the sign initialization */ - /* Actually value = -(*b >> 7); gains nothing, yet unreadable! */ - if((*b >> 7)) { - value = (unsigned long)(-1); - } else { - value = 0; - } - - /* Conversion engine */ - for(; b < end; b++) { - value = (value << 8) | *b; - } - - return value; -} - -asn_dec_rval_t -NativeEnumerated_decode_oer(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_oer_constraints_t *constraints, - void **nint_ptr, const void *ptr, size_t size) { - asn_dec_rval_t rval = {RC_OK, 0}; - long *native = (long *)*nint_ptr; - const uint8_t *b = ptr; - - (void)opt_codec_ctx; - (void)constraints; - - if(size < 1) { - ASN__DECODE_STARVED; - } - - if((*b & 0x80) == 0) { - /* - * X.696 (08/2015) #11.2 Short form for Enumerated. - */ - if(!native) { - native = (long *)(*nint_ptr = CALLOC(1, sizeof(*native))); - if(!native) ASN__DECODE_FAILED; - } - - *native = *b; - rval.consumed = 1; - } else { - /* - * X.696 (08/2015) #11.4 Long form for Enumerated. - */ - size_t length = *b & 0x7f; - const uint8_t *bend; - long value; - - if(length < 1 || length > sizeof(*native)) { - ASN__DECODE_FAILED; - } - if((1 + length) > size) { - ASN__DECODE_STARVED; - } - b++; - bend = b + length; - - value = asn__nativeenumerated_convert(b, bend); - if(value < 0) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - if(specs && specs->field_unsigned) { - ASN__DECODE_FAILED; - } - } - - if(!native) { - native = (long *)(*nint_ptr = CALLOC(1, sizeof(*native))); - if(!native) ASN__DECODE_FAILED; - } - - *native = value; - - rval.consumed = (1 + length); - } - - return rval; -} - -/* - * Encode as Canonical OER. - */ -asn_enc_rval_t -NativeEnumerated_encode_oer(const asn_TYPE_descriptor_t *td, - const asn_oer_constraints_t *constraints, - const void *sptr, asn_app_consume_bytes_f *cb, - void *app_key) { - asn_enc_rval_t er = {0,0,0}; - long native; - - (void)constraints; - - if(!sptr) ASN__ENCODE_FAILED; - - native = *(const long *)sptr; - - if(native >= 0 && native <= 127) { - /* #11.2 Short form */ - uint8_t b = native; - er.encoded = 1; - if(cb(&b, er.encoded, app_key) < 0) { - ASN__ENCODE_FAILED; - } - ASN__ENCODED_OK(er); - } else { - /* #11.2 Long form */ - uint8_t buf[1 + sizeof(native)]; - uint8_t *b = &buf[sizeof(native)]; /* Last addressable */ - long final_pattern = -1 * (native < 0); - - for(;;) { - *b-- = native; - native >>= 8; - if(native == final_pattern) { - if(final_pattern) { - if((b[1] & 0x80)) break; - } else { - if(!(b[1] & 0x80)) break; - } - } - } - *b = 0x80 | (&buf[sizeof(native)] - b); - er.encoded = 1 + (&buf[sizeof(native)] - b); - if(cb(b, er.encoded, app_key) < 0) { - ASN__ENCODE_FAILED; - } - ASN__ENCODED_OK(er); - } -} - -#endif /* ASN_DISABLE_OER_SUPPORT */ diff --git a/e2sim/src/ASN1c/NativeInteger_oer.c b/e2sim/src/ASN1c/NativeInteger_oer.c deleted file mode 100644 index 411413a..0000000 --- a/e2sim/src/ASN1c/NativeInteger_oer.c +++ /dev/null @@ -1,99 +0,0 @@ -/* - * Copyright (c) 2017 Lev Walkin . - * All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef ASN_DISABLE_OER_SUPPORT - -#include -#include -#include - -asn_dec_rval_t -NativeInteger_decode_oer(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_oer_constraints_t *constraints, - void **nint_ptr, const void *ptr, size_t size) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - asn_dec_rval_t rval = {RC_OK, 0}; - long *native = (long *)*nint_ptr; - INTEGER_t tmpint; - INTEGER_t *tmpintptr = &tmpint; - - memset(&tmpint, 0, sizeof(tmpint)); - - if(!native) { - native = (long *)(*nint_ptr = CALLOC(1, sizeof(*native))); - if(!native) ASN__DECODE_FAILED; - } - - /* - * OPTIMIZATION: Encode directly rather than passing through INTEGER. - * Saves a memory allocation. - */ - rval = INTEGER_decode_oer(opt_codec_ctx, td, constraints, - (void **)&tmpintptr, ptr, size); - if(rval.code != RC_OK) { - ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_INTEGER, &tmpint); - return rval; - } - - if(specs && specs->field_unsigned) { - unsigned long ul; - int ok = asn_INTEGER2ulong(&tmpint, &ul) == 0; - ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_INTEGER, &tmpint); - if(ok) { - *native = ul; - } else { - rval.code = RC_FAIL; - return rval; - } - } else { - long l; - int ok = asn_INTEGER2long(&tmpint, &l) == 0; - ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_INTEGER, &tmpint); - if(ok) { - *native = l; - } else { - rval.code = RC_FAIL; - return rval; - } - } - - return rval; -} - -/* - * Encode as Canonical OER. - */ -asn_enc_rval_t -NativeInteger_encode_oer(const asn_TYPE_descriptor_t *td, - const asn_oer_constraints_t *constraints, - const void *sptr, asn_app_consume_bytes_f *cb, - void *app_key) { - const asn_INTEGER_specifics_t *specs = - (const asn_INTEGER_specifics_t *)td->specifics; - INTEGER_t tmpint; - long native; - - if(!sptr) ASN__ENCODE_FAILED; - - native = *(const long *)sptr; - memset(&tmpint, 0, sizeof(tmpint)); - - ASN_DEBUG("Encoding %s %ld as NativeInteger", td ? td->name : "", native); - - if((specs && specs->field_unsigned) ? asn_ulong2INTEGER(&tmpint, native) - : asn_long2INTEGER(&tmpint, native)) { - ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_INTEGER, &tmpint); - ASN__ENCODE_FAILED; - } else { - asn_enc_rval_t er = - INTEGER_encode_oer(td, constraints, &tmpint, cb, app_key); - ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_INTEGER, &tmpint); - return er; - } -} - -#endif /* ASN_DISABLE_OER_SUPPORT */ diff --git a/e2sim/src/ASN1c/OCTET_STRING_oer.c b/e2sim/src/ASN1c/OCTET_STRING_oer.c deleted file mode 100644 index c16faea..0000000 --- a/e2sim/src/ASN1c/OCTET_STRING_oer.c +++ /dev/null @@ -1,171 +0,0 @@ -/* - * Copyright (c) 2017 Lev Walkin . - * All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef ASN_DISABLE_OER_SUPPORT - -#include -#include -#include - -asn_dec_rval_t -OCTET_STRING_decode_oer(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_oer_constraints_t *constraints, void **sptr, - const void *ptr, size_t size) { - const asn_OCTET_STRING_specifics_t *specs = - td->specifics ? (const asn_OCTET_STRING_specifics_t *)td->specifics - : &asn_SPC_OCTET_STRING_specs; - OCTET_STRING_t *st = (OCTET_STRING_t *)*sptr; - const asn_oer_constraints_t *cts = - constraints ? constraints : td->encoding_constraints.oer_constraints; - ssize_t ct_size = cts ? cts->size : -1; - asn_dec_rval_t rval = {RC_OK, 0}; - size_t expected_length = 0; - - size_t unit_bytes; - switch(specs->subvariant) { - default: - case ASN_OSUBV_BIT: - ASN_DEBUG("Invalid use of OCTET STRING to decode BIT STRING"); - ASN__DECODE_FAILED; - case ASN_OSUBV_ANY: - /* Fall through */ - case ASN_OSUBV_STR: - unit_bytes = 1; - break; - case ASN_OSUBV_U16: - unit_bytes = 2; - break; - case ASN_OSUBV_U32: - unit_bytes = 4; - break; - } - - (void)opt_codec_ctx; - - if(!st) { - st = (OCTET_STRING_t *)(*sptr = CALLOC(1, specs->struct_size)); - if(!st) ASN__DECODE_FAILED; - } - - if(ct_size >= 0) { - expected_length = unit_bytes * ct_size; - } else { - /* - * X.696 (08/2015) #27.2 - * Encode length determinant as _number of octets_, but only - * if upper bound is not equal to lower bound. - */ - ssize_t len_len = oer_fetch_length(ptr, size, &expected_length); - if(len_len > 0) { - rval.consumed = len_len; - ptr = (const char *)ptr + len_len; - size -= len_len; - } else if(len_len == 0) { - ASN__DECODE_STARVED; - } else if(len_len < 0) { - ASN__DECODE_FAILED; - } - - if(expected_length % unit_bytes != 0) { - ASN_DEBUG( - "Data size %" ASN_PRI_SIZE " bytes is not consistent with multiplier %" ASN_PRI_SIZE "", - expected_length, unit_bytes); - ASN__DECODE_FAILED; - } - } - - if(size < expected_length) { - ASN__DECODE_STARVED; - } else { - uint8_t *buf = MALLOC(expected_length + 1); - if(buf == NULL) { - ASN__DECODE_FAILED; - } else { - memcpy(buf, ptr, expected_length); - buf[expected_length] = '\0'; - } - FREEMEM(st->buf); - st->buf = buf; - st->size = expected_length; - - rval.consumed += expected_length; - return rval; - } -} - -/* - * Encode as Canonical OER. - */ -asn_enc_rval_t -OCTET_STRING_encode_oer(const asn_TYPE_descriptor_t *td, - const asn_oer_constraints_t *constraints, - const void *sptr, asn_app_consume_bytes_f *cb, - void *app_key) { - const asn_OCTET_STRING_specifics_t *specs = - td->specifics ? (const asn_OCTET_STRING_specifics_t *)td->specifics - : &asn_SPC_OCTET_STRING_specs; - const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; - const asn_oer_constraints_t *cts = - constraints ? constraints : td->encoding_constraints.oer_constraints; - ssize_t ct_size = cts ? cts->size : -1; - asn_enc_rval_t er = {0, 0, 0}; - - if(!st) ASN__ENCODE_FAILED; - - ASN_DEBUG("Encoding %s %" ASN_PRI_SIZE " as OCTET STRING", td ? td->name : "", st->size); - - if(ct_size >= 0) { - /* - * Check that available data matches the constraint - */ - size_t unit_bytes; - switch(specs->subvariant) { - default: - case ASN_OSUBV_BIT: - ASN_DEBUG("Invalid use of OCTET STRING to encode BIT STRING"); - ASN__ENCODE_FAILED; - case ASN_OSUBV_ANY: - /* Fall through */ - case ASN_OSUBV_STR: - unit_bytes = 1; - break; - case ASN_OSUBV_U16: - unit_bytes = 2; - break; - case ASN_OSUBV_U32: - unit_bytes = 4; - break; - } - - if(st->size != unit_bytes * (size_t)ct_size) { - ASN_DEBUG( - "Trying to encode %s (%" ASN_PRI_SIZE " bytes) which doesn't fit SIZE " - "constraint (%" ASN_PRI_SIZE ")", - td->name, st->size, ct_size); - ASN__ENCODE_FAILED; - } - } else { - /* - * X.696 (08/2015) #27.2 - * Encode length determinant as _number of octets_, but only - * if upper bound is not equal to lower bound. - */ - ssize_t ret = oer_serialize_length(st->size, cb, app_key); - if(ret < 0) { - ASN__ENCODE_FAILED; - } - er.encoded += ret; - } - - er.encoded += st->size; - if(cb(st->buf, st->size, app_key) < 0) { - ASN__ENCODE_FAILED; - } else { - ASN__ENCODED_OK(er); - } -} - -#endif /* ASN_DISABLE_OER_SUPPORT */ diff --git a/e2sim/src/ASN1c/OPEN_TYPE_oer.c b/e2sim/src/ASN1c/OPEN_TYPE_oer.c deleted file mode 100644 index dd2f5c6..0000000 --- a/e2sim/src/ASN1c/OPEN_TYPE_oer.c +++ /dev/null @@ -1,92 +0,0 @@ -/* - * Copyright (c) 2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include -#include -#include - -asn_dec_rval_t -OPEN_TYPE_oer_get(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, void *sptr, - asn_TYPE_member_t *elm, const void *ptr, size_t size) { - asn_type_selector_result_t selected; - void *memb_ptr; /* Pointer to the member */ - void **memb_ptr2; /* Pointer to that pointer */ - void *inner_value; - asn_dec_rval_t rv; - size_t ot_ret; - - - if(!(elm->flags & ATF_OPEN_TYPE)) { - ASN__DECODE_FAILED; - } - - if(!elm->type_selector) { - ASN_DEBUG("Type selector is not defined for Open Type %s->%s->%s", - td->name, elm->name, elm->type->name); - ASN__DECODE_FAILED; - } - - selected = elm->type_selector(td, sptr); - if(!selected.presence_index) { - ASN__DECODE_FAILED; - } - - /* Fetch the pointer to this member */ - if(elm->flags & ATF_POINTER) { - memb_ptr2 = (void **)((char *)sptr + elm->memb_offset); - } else { - memb_ptr = (char *)sptr + elm->memb_offset; - memb_ptr2 = &memb_ptr; - } - if(*memb_ptr2 != NULL) { - /* Make sure we reset the structure first before encoding */ - if(CHOICE_variant_set_presence(elm->type, *memb_ptr2, 0) != 0) { - ASN__DECODE_FAILED; - } - } - - inner_value = - (char *)*memb_ptr2 - + elm->type->elements[selected.presence_index - 1].memb_offset; - - ot_ret = oer_open_type_get(opt_codec_ctx, selected.type_descriptor, NULL, - &inner_value, ptr, size); - switch(ot_ret) { - default: - if(CHOICE_variant_set_presence(elm->type, *memb_ptr2, - selected.presence_index) - == 0) { - rv.code = RC_OK; - rv.consumed = ot_ret; - return rv; - } else { - /* Oh, now a full-blown failure failure */ - } - /* Fall through */ - case -1: - rv.code = RC_FAIL; - rv.consumed = ot_ret; - break; - case 0: - rv.code = RC_WMORE; - rv.consumed = 0; - break; - } - - if(*memb_ptr2) { - const asn_CHOICE_specifics_t *specs = - selected.type_descriptor->specifics; - if(elm->flags & ATF_POINTER) { - ASN_STRUCT_FREE(*selected.type_descriptor, inner_value); - *memb_ptr2 = NULL; - } else { - ASN_STRUCT_FREE_CONTENTS_ONLY(*selected.type_descriptor, - inner_value); - memset(*memb_ptr2, 0, specs->struct_size); - } - } - return rv; -} diff --git a/e2sim/src/ASN1c/PLMN-Identity.c b/e2sim/src/ASN1c/PLMN-Identity.c index 3fb2bba..25fb17d 100644 --- a/e2sim/src/ASN1c/PLMN-Identity.c +++ b/e2sim/src/ASN1c/PLMN-Identity.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #include "PLMN-Identity.h" diff --git a/e2sim/src/ASN1c/PLMN-Identity.h b/e2sim/src/ASN1c/PLMN-Identity.h index 7210120..f8374fc 100644 --- a/e2sim/src/ASN1c/PLMN-Identity.h +++ b/e2sim/src/ASN1c/PLMN-Identity.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #ifndef _PLMN_Identity_H_ diff --git a/e2sim/src/ASN1c/Presence.c b/e2sim/src/ASN1c/Presence.c index 1669907..31a71b5 100644 --- a/e2sim/src/ASN1c/Presence.c +++ b/e2sim/src/ASN1c/Presence.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-CommonDataTypes" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #include "Presence.h" diff --git a/e2sim/src/ASN1c/Presence.h b/e2sim/src/ASN1c/Presence.h index 0e89a76..3083f55 100644 --- a/e2sim/src/ASN1c/Presence.h +++ b/e2sim/src/ASN1c/Presence.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-CommonDataTypes" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #ifndef _Presence_H_ diff --git a/e2sim/src/ASN1c/ProcedureCode.c b/e2sim/src/ASN1c/ProcedureCode.c index 31cb35c..a2628dc 100644 --- a/e2sim/src/ASN1c/ProcedureCode.c +++ b/e2sim/src/ASN1c/ProcedureCode.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-CommonDataTypes" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #include "ProcedureCode.h" diff --git a/e2sim/src/ASN1c/ProcedureCode.h b/e2sim/src/ASN1c/ProcedureCode.h index a0a7c7c..cc17d51 100644 --- a/e2sim/src/ASN1c/ProcedureCode.h +++ b/e2sim/src/ASN1c/ProcedureCode.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-CommonDataTypes" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #ifndef _ProcedureCode_H_ @@ -46,6 +46,7 @@ per_type_encoder_f ProcedureCode_encode_aper; #define ProcedureCode_id_RICsubscriptionDelete ((ProcedureCode_t)9) #define ProcedureCode_id_E2nodeConfigurationUpdate ((ProcedureCode_t)10) #define ProcedureCode_id_E2connectionUpdate ((ProcedureCode_t)11) +#define ProcedureCode_id_RICsubscriptionDeleteRequired ((ProcedureCode_t)12) #ifdef __cplusplus } diff --git a/e2sim/src/ASN1c/ProtocolIE-Container.c b/e2sim/src/ASN1c/ProtocolIE-Container.c index 9aa9500..05249bd 100644 --- a/e2sim/src/ASN1c/ProtocolIE-Container.c +++ b/e2sim/src/ASN1c/ProtocolIE-Container.c @@ -1,144 +1,149 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-Containers" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #include "ProtocolIE-Container.h" #include "ProtocolIE-Field.h" -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_226P0_constr_1 CC_NOTUSED = { +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P0_constr_1 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, 0, 0 /* No PER value map */ }; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_226P1_constr_3 CC_NOTUSED = { +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P1_constr_3 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, 0, 0 /* No PER value map */ }; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_226P2_constr_5 CC_NOTUSED = { +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P2_constr_5 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, 0, 0 /* No PER value map */ }; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_226P3_constr_7 CC_NOTUSED = { +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P3_constr_7 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, 0, 0 /* No PER value map */ }; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_226P4_constr_9 CC_NOTUSED = { +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P4_constr_9 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, 0, 0 /* No PER value map */ }; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_226P5_constr_11 CC_NOTUSED = { +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P5_constr_11 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, 0, 0 /* No PER value map */ }; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_226P6_constr_13 CC_NOTUSED = { +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P6_constr_13 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, 0, 0 /* No PER value map */ }; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_226P7_constr_15 CC_NOTUSED = { +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P7_constr_15 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, 0, 0 /* No PER value map */ }; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_226P8_constr_17 CC_NOTUSED = { +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P8_constr_17 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, 0, 0 /* No PER value map */ }; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_226P9_constr_19 CC_NOTUSED = { +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P9_constr_19 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, 0, 0 /* No PER value map */ }; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_226P10_constr_21 CC_NOTUSED = { +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P10_constr_21 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, 0, 0 /* No PER value map */ }; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_226P11_constr_23 CC_NOTUSED = { +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P11_constr_23 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, 0, 0 /* No PER value map */ }; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_226P12_constr_25 CC_NOTUSED = { +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P12_constr_25 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, 0, 0 /* No PER value map */ }; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_226P13_constr_27 CC_NOTUSED = { +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P13_constr_27 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, 0, 0 /* No PER value map */ }; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_226P14_constr_29 CC_NOTUSED = { +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P14_constr_29 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, 0, 0 /* No PER value map */ }; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_226P15_constr_31 CC_NOTUSED = { +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P15_constr_31 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, 0, 0 /* No PER value map */ }; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_226P16_constr_33 CC_NOTUSED = { +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P16_constr_33 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, 0, 0 /* No PER value map */ }; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_226P17_constr_35 CC_NOTUSED = { +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P17_constr_35 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, 0, 0 /* No PER value map */ }; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_226P18_constr_37 CC_NOTUSED = { +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P18_constr_37 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, 0, 0 /* No PER value map */ }; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_226P19_constr_39 CC_NOTUSED = { +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P19_constr_39 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, 0, 0 /* No PER value map */ }; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_226P20_constr_41 CC_NOTUSED = { +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P20_constr_41 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, 0, 0 /* No PER value map */ }; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_226P21_constr_43 CC_NOTUSED = { +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P21_constr_43 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, 0, 0 /* No PER value map */ }; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_226P22_constr_45 CC_NOTUSED = { +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P22_constr_45 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, 0, 0 /* No PER value map */ }; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_226P23_constr_47 CC_NOTUSED = { +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P23_constr_47 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, 0, 0 /* No PER value map */ }; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_226P24_constr_49 CC_NOTUSED = { +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P24_constr_49 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, 0, 0 /* No PER value map */ }; -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_226P25_constr_51 CC_NOTUSED = { +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P25_constr_51 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, 0, 0 /* No PER value map */ }; -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P0_1[] = { +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P26_constr_53 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P0_1[] = { { ATF_POINTER, 0, 0, (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -149,31 +154,31 @@ asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P0_1[] = { "" }, }; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_226P0_tags_1[] = { +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1917P0_tags_1[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_226P0_specs_1 = { - sizeof(struct ProtocolIE_Container_226P0), - offsetof(struct ProtocolIE_Container_226P0, _asn_ctx), +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P0_specs_1 = { + sizeof(struct ProtocolIE_Container_1917P0), + offsetof(struct ProtocolIE_Container_1917P0, _asn_ctx), 0, /* XER encoding is XMLDelimitedItemList */ }; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_226P0 = { +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P0 = { "ProtocolIE-Container", "ProtocolIE-Container", &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_226P0_tags_1, - sizeof(asn_DEF_ProtocolIE_Container_226P0_tags_1) - /sizeof(asn_DEF_ProtocolIE_Container_226P0_tags_1[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_226P0_tags_1, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_226P0_tags_1) - /sizeof(asn_DEF_ProtocolIE_Container_226P0_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_226P0_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_226P0_1, + asn_DEF_ProtocolIE_Container_1917P0_tags_1, + sizeof(asn_DEF_ProtocolIE_Container_1917P0_tags_1) + /sizeof(asn_DEF_ProtocolIE_Container_1917P0_tags_1[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_1917P0_tags_1, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_1917P0_tags_1) + /sizeof(asn_DEF_ProtocolIE_Container_1917P0_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_1917P0_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_1917P0_1, 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_226P0_specs_1 /* Additional specs */ + &asn_SPC_ProtocolIE_Container_1917P0_specs_1 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P1_3[] = { +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P1_3[] = { { ATF_POINTER, 0, 0, (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -184,31 +189,31 @@ asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P1_3[] = { "" }, }; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_226P1_tags_3[] = { +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1917P1_tags_3[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_226P1_specs_3 = { - sizeof(struct ProtocolIE_Container_226P1), - offsetof(struct ProtocolIE_Container_226P1, _asn_ctx), +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P1_specs_3 = { + sizeof(struct ProtocolIE_Container_1917P1), + offsetof(struct ProtocolIE_Container_1917P1, _asn_ctx), 0, /* XER encoding is XMLDelimitedItemList */ }; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_226P1 = { +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P1 = { "ProtocolIE-Container", "ProtocolIE-Container", &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_226P1_tags_3, - sizeof(asn_DEF_ProtocolIE_Container_226P1_tags_3) - /sizeof(asn_DEF_ProtocolIE_Container_226P1_tags_3[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_226P1_tags_3, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_226P1_tags_3) - /sizeof(asn_DEF_ProtocolIE_Container_226P1_tags_3[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_226P1_constr_3, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_226P1_3, + asn_DEF_ProtocolIE_Container_1917P1_tags_3, + sizeof(asn_DEF_ProtocolIE_Container_1917P1_tags_3) + /sizeof(asn_DEF_ProtocolIE_Container_1917P1_tags_3[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_1917P1_tags_3, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_1917P1_tags_3) + /sizeof(asn_DEF_ProtocolIE_Container_1917P1_tags_3[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_1917P1_constr_3, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_1917P1_3, 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_226P1_specs_3 /* Additional specs */ + &asn_SPC_ProtocolIE_Container_1917P1_specs_3 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P2_5[] = { +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P2_5[] = { { ATF_POINTER, 0, 0, (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -219,31 +224,31 @@ asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P2_5[] = { "" }, }; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_226P2_tags_5[] = { +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1917P2_tags_5[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_226P2_specs_5 = { - sizeof(struct ProtocolIE_Container_226P2), - offsetof(struct ProtocolIE_Container_226P2, _asn_ctx), +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P2_specs_5 = { + sizeof(struct ProtocolIE_Container_1917P2), + offsetof(struct ProtocolIE_Container_1917P2, _asn_ctx), 0, /* XER encoding is XMLDelimitedItemList */ }; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_226P2 = { +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P2 = { "ProtocolIE-Container", "ProtocolIE-Container", &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_226P2_tags_5, - sizeof(asn_DEF_ProtocolIE_Container_226P2_tags_5) - /sizeof(asn_DEF_ProtocolIE_Container_226P2_tags_5[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_226P2_tags_5, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_226P2_tags_5) - /sizeof(asn_DEF_ProtocolIE_Container_226P2_tags_5[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_226P2_constr_5, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_226P2_5, + asn_DEF_ProtocolIE_Container_1917P2_tags_5, + sizeof(asn_DEF_ProtocolIE_Container_1917P2_tags_5) + /sizeof(asn_DEF_ProtocolIE_Container_1917P2_tags_5[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_1917P2_tags_5, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_1917P2_tags_5) + /sizeof(asn_DEF_ProtocolIE_Container_1917P2_tags_5[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_1917P2_constr_5, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_1917P2_5, 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_226P2_specs_5 /* Additional specs */ + &asn_SPC_ProtocolIE_Container_1917P2_specs_5 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P3_7[] = { +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P3_7[] = { { ATF_POINTER, 0, 0, (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -254,31 +259,31 @@ asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P3_7[] = { "" }, }; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_226P3_tags_7[] = { +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1917P3_tags_7[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_226P3_specs_7 = { - sizeof(struct ProtocolIE_Container_226P3), - offsetof(struct ProtocolIE_Container_226P3, _asn_ctx), +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P3_specs_7 = { + sizeof(struct ProtocolIE_Container_1917P3), + offsetof(struct ProtocolIE_Container_1917P3, _asn_ctx), 0, /* XER encoding is XMLDelimitedItemList */ }; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_226P3 = { +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P3 = { "ProtocolIE-Container", "ProtocolIE-Container", &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_226P3_tags_7, - sizeof(asn_DEF_ProtocolIE_Container_226P3_tags_7) - /sizeof(asn_DEF_ProtocolIE_Container_226P3_tags_7[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_226P3_tags_7, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_226P3_tags_7) - /sizeof(asn_DEF_ProtocolIE_Container_226P3_tags_7[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_226P3_constr_7, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_226P3_7, + asn_DEF_ProtocolIE_Container_1917P3_tags_7, + sizeof(asn_DEF_ProtocolIE_Container_1917P3_tags_7) + /sizeof(asn_DEF_ProtocolIE_Container_1917P3_tags_7[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_1917P3_tags_7, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_1917P3_tags_7) + /sizeof(asn_DEF_ProtocolIE_Container_1917P3_tags_7[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_1917P3_constr_7, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_1917P3_7, 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_226P3_specs_7 /* Additional specs */ + &asn_SPC_ProtocolIE_Container_1917P3_specs_7 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P4_9[] = { +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P4_9[] = { { ATF_POINTER, 0, 0, (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -289,31 +294,31 @@ asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P4_9[] = { "" }, }; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_226P4_tags_9[] = { +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1917P4_tags_9[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_226P4_specs_9 = { - sizeof(struct ProtocolIE_Container_226P4), - offsetof(struct ProtocolIE_Container_226P4, _asn_ctx), +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P4_specs_9 = { + sizeof(struct ProtocolIE_Container_1917P4), + offsetof(struct ProtocolIE_Container_1917P4, _asn_ctx), 0, /* XER encoding is XMLDelimitedItemList */ }; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_226P4 = { +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P4 = { "ProtocolIE-Container", "ProtocolIE-Container", &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_226P4_tags_9, - sizeof(asn_DEF_ProtocolIE_Container_226P4_tags_9) - /sizeof(asn_DEF_ProtocolIE_Container_226P4_tags_9[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_226P4_tags_9, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_226P4_tags_9) - /sizeof(asn_DEF_ProtocolIE_Container_226P4_tags_9[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_226P4_constr_9, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_226P4_9, + asn_DEF_ProtocolIE_Container_1917P4_tags_9, + sizeof(asn_DEF_ProtocolIE_Container_1917P4_tags_9) + /sizeof(asn_DEF_ProtocolIE_Container_1917P4_tags_9[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_1917P4_tags_9, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_1917P4_tags_9) + /sizeof(asn_DEF_ProtocolIE_Container_1917P4_tags_9[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_1917P4_constr_9, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_1917P4_9, 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_226P4_specs_9 /* Additional specs */ + &asn_SPC_ProtocolIE_Container_1917P4_specs_9 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P5_11[] = { +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P5_11[] = { { ATF_POINTER, 0, 0, (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -324,31 +329,66 @@ asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P5_11[] = { "" }, }; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_226P5_tags_11[] = { +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1917P5_tags_11[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P5_specs_11 = { + sizeof(struct ProtocolIE_Container_1917P5), + offsetof(struct ProtocolIE_Container_1917P5, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P5 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_1917P5_tags_11, + sizeof(asn_DEF_ProtocolIE_Container_1917P5_tags_11) + /sizeof(asn_DEF_ProtocolIE_Container_1917P5_tags_11[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_1917P5_tags_11, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_1917P5_tags_11) + /sizeof(asn_DEF_ProtocolIE_Container_1917P5_tags_11[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_1917P5_constr_11, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_1917P5_11, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_1917P5_specs_11 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P6_13[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RICsubscriptionDeleteRequired_IEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1917P6_tags_13[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_226P5_specs_11 = { - sizeof(struct ProtocolIE_Container_226P5), - offsetof(struct ProtocolIE_Container_226P5, _asn_ctx), +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P6_specs_13 = { + sizeof(struct ProtocolIE_Container_1917P6), + offsetof(struct ProtocolIE_Container_1917P6, _asn_ctx), 0, /* XER encoding is XMLDelimitedItemList */ }; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_226P5 = { +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P6 = { "ProtocolIE-Container", "ProtocolIE-Container", &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_226P5_tags_11, - sizeof(asn_DEF_ProtocolIE_Container_226P5_tags_11) - /sizeof(asn_DEF_ProtocolIE_Container_226P5_tags_11[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_226P5_tags_11, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_226P5_tags_11) - /sizeof(asn_DEF_ProtocolIE_Container_226P5_tags_11[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_226P5_constr_11, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_226P5_11, + asn_DEF_ProtocolIE_Container_1917P6_tags_13, + sizeof(asn_DEF_ProtocolIE_Container_1917P6_tags_13) + /sizeof(asn_DEF_ProtocolIE_Container_1917P6_tags_13[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_1917P6_tags_13, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_1917P6_tags_13) + /sizeof(asn_DEF_ProtocolIE_Container_1917P6_tags_13[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_1917P6_constr_13, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_1917P6_13, 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_226P5_specs_11 /* Additional specs */ + &asn_SPC_ProtocolIE_Container_1917P6_specs_13 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P6_13[] = { +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P7_15[] = { { ATF_POINTER, 0, 0, (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -359,31 +399,31 @@ asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P6_13[] = { "" }, }; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_226P6_tags_13[] = { +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1917P7_tags_15[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_226P6_specs_13 = { - sizeof(struct ProtocolIE_Container_226P6), - offsetof(struct ProtocolIE_Container_226P6, _asn_ctx), +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P7_specs_15 = { + sizeof(struct ProtocolIE_Container_1917P7), + offsetof(struct ProtocolIE_Container_1917P7, _asn_ctx), 0, /* XER encoding is XMLDelimitedItemList */ }; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_226P6 = { +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P7 = { "ProtocolIE-Container", "ProtocolIE-Container", &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_226P6_tags_13, - sizeof(asn_DEF_ProtocolIE_Container_226P6_tags_13) - /sizeof(asn_DEF_ProtocolIE_Container_226P6_tags_13[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_226P6_tags_13, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_226P6_tags_13) - /sizeof(asn_DEF_ProtocolIE_Container_226P6_tags_13[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_226P6_constr_13, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_226P6_13, + asn_DEF_ProtocolIE_Container_1917P7_tags_15, + sizeof(asn_DEF_ProtocolIE_Container_1917P7_tags_15) + /sizeof(asn_DEF_ProtocolIE_Container_1917P7_tags_15[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_1917P7_tags_15, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_1917P7_tags_15) + /sizeof(asn_DEF_ProtocolIE_Container_1917P7_tags_15[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_1917P7_constr_15, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_1917P7_15, 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_226P6_specs_13 /* Additional specs */ + &asn_SPC_ProtocolIE_Container_1917P7_specs_15 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P7_15[] = { +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P8_17[] = { { ATF_POINTER, 0, 0, (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -394,31 +434,31 @@ asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P7_15[] = { "" }, }; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_226P7_tags_15[] = { +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1917P8_tags_17[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_226P7_specs_15 = { - sizeof(struct ProtocolIE_Container_226P7), - offsetof(struct ProtocolIE_Container_226P7, _asn_ctx), +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P8_specs_17 = { + sizeof(struct ProtocolIE_Container_1917P8), + offsetof(struct ProtocolIE_Container_1917P8, _asn_ctx), 0, /* XER encoding is XMLDelimitedItemList */ }; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_226P7 = { +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P8 = { "ProtocolIE-Container", "ProtocolIE-Container", &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_226P7_tags_15, - sizeof(asn_DEF_ProtocolIE_Container_226P7_tags_15) - /sizeof(asn_DEF_ProtocolIE_Container_226P7_tags_15[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_226P7_tags_15, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_226P7_tags_15) - /sizeof(asn_DEF_ProtocolIE_Container_226P7_tags_15[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_226P7_constr_15, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_226P7_15, + asn_DEF_ProtocolIE_Container_1917P8_tags_17, + sizeof(asn_DEF_ProtocolIE_Container_1917P8_tags_17) + /sizeof(asn_DEF_ProtocolIE_Container_1917P8_tags_17[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_1917P8_tags_17, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_1917P8_tags_17) + /sizeof(asn_DEF_ProtocolIE_Container_1917P8_tags_17[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_1917P8_constr_17, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_1917P8_17, 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_226P7_specs_15 /* Additional specs */ + &asn_SPC_ProtocolIE_Container_1917P8_specs_17 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P8_17[] = { +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P9_19[] = { { ATF_POINTER, 0, 0, (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -429,31 +469,31 @@ asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P8_17[] = { "" }, }; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_226P8_tags_17[] = { +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1917P9_tags_19[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_226P8_specs_17 = { - sizeof(struct ProtocolIE_Container_226P8), - offsetof(struct ProtocolIE_Container_226P8, _asn_ctx), +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P9_specs_19 = { + sizeof(struct ProtocolIE_Container_1917P9), + offsetof(struct ProtocolIE_Container_1917P9, _asn_ctx), 0, /* XER encoding is XMLDelimitedItemList */ }; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_226P8 = { +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P9 = { "ProtocolIE-Container", "ProtocolIE-Container", &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_226P8_tags_17, - sizeof(asn_DEF_ProtocolIE_Container_226P8_tags_17) - /sizeof(asn_DEF_ProtocolIE_Container_226P8_tags_17[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_226P8_tags_17, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_226P8_tags_17) - /sizeof(asn_DEF_ProtocolIE_Container_226P8_tags_17[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_226P8_constr_17, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_226P8_17, + asn_DEF_ProtocolIE_Container_1917P9_tags_19, + sizeof(asn_DEF_ProtocolIE_Container_1917P9_tags_19) + /sizeof(asn_DEF_ProtocolIE_Container_1917P9_tags_19[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_1917P9_tags_19, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_1917P9_tags_19) + /sizeof(asn_DEF_ProtocolIE_Container_1917P9_tags_19[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_1917P9_constr_19, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_1917P9_19, 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_226P8_specs_17 /* Additional specs */ + &asn_SPC_ProtocolIE_Container_1917P9_specs_19 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P9_19[] = { +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P10_21[] = { { ATF_POINTER, 0, 0, (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -464,31 +504,31 @@ asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P9_19[] = { "" }, }; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_226P9_tags_19[] = { +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1917P10_tags_21[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_226P9_specs_19 = { - sizeof(struct ProtocolIE_Container_226P9), - offsetof(struct ProtocolIE_Container_226P9, _asn_ctx), +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P10_specs_21 = { + sizeof(struct ProtocolIE_Container_1917P10), + offsetof(struct ProtocolIE_Container_1917P10, _asn_ctx), 0, /* XER encoding is XMLDelimitedItemList */ }; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_226P9 = { +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P10 = { "ProtocolIE-Container", "ProtocolIE-Container", &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_226P9_tags_19, - sizeof(asn_DEF_ProtocolIE_Container_226P9_tags_19) - /sizeof(asn_DEF_ProtocolIE_Container_226P9_tags_19[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_226P9_tags_19, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_226P9_tags_19) - /sizeof(asn_DEF_ProtocolIE_Container_226P9_tags_19[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_226P9_constr_19, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_226P9_19, + asn_DEF_ProtocolIE_Container_1917P10_tags_21, + sizeof(asn_DEF_ProtocolIE_Container_1917P10_tags_21) + /sizeof(asn_DEF_ProtocolIE_Container_1917P10_tags_21[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_1917P10_tags_21, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_1917P10_tags_21) + /sizeof(asn_DEF_ProtocolIE_Container_1917P10_tags_21[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_1917P10_constr_21, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_1917P10_21, 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_226P9_specs_19 /* Additional specs */ + &asn_SPC_ProtocolIE_Container_1917P10_specs_21 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P10_21[] = { +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P11_23[] = { { ATF_POINTER, 0, 0, (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -499,31 +539,31 @@ asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P10_21[] = { "" }, }; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_226P10_tags_21[] = { +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1917P11_tags_23[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_226P10_specs_21 = { - sizeof(struct ProtocolIE_Container_226P10), - offsetof(struct ProtocolIE_Container_226P10, _asn_ctx), +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P11_specs_23 = { + sizeof(struct ProtocolIE_Container_1917P11), + offsetof(struct ProtocolIE_Container_1917P11, _asn_ctx), 0, /* XER encoding is XMLDelimitedItemList */ }; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_226P10 = { +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P11 = { "ProtocolIE-Container", "ProtocolIE-Container", &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_226P10_tags_21, - sizeof(asn_DEF_ProtocolIE_Container_226P10_tags_21) - /sizeof(asn_DEF_ProtocolIE_Container_226P10_tags_21[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_226P10_tags_21, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_226P10_tags_21) - /sizeof(asn_DEF_ProtocolIE_Container_226P10_tags_21[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_226P10_constr_21, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_226P10_21, + asn_DEF_ProtocolIE_Container_1917P11_tags_23, + sizeof(asn_DEF_ProtocolIE_Container_1917P11_tags_23) + /sizeof(asn_DEF_ProtocolIE_Container_1917P11_tags_23[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_1917P11_tags_23, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_1917P11_tags_23) + /sizeof(asn_DEF_ProtocolIE_Container_1917P11_tags_23[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_1917P11_constr_23, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_1917P11_23, 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_226P10_specs_21 /* Additional specs */ + &asn_SPC_ProtocolIE_Container_1917P11_specs_23 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P11_23[] = { +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P12_25[] = { { ATF_POINTER, 0, 0, (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -534,31 +574,31 @@ asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P11_23[] = { "" }, }; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_226P11_tags_23[] = { +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1917P12_tags_25[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_226P11_specs_23 = { - sizeof(struct ProtocolIE_Container_226P11), - offsetof(struct ProtocolIE_Container_226P11, _asn_ctx), +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P12_specs_25 = { + sizeof(struct ProtocolIE_Container_1917P12), + offsetof(struct ProtocolIE_Container_1917P12, _asn_ctx), 0, /* XER encoding is XMLDelimitedItemList */ }; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_226P11 = { +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P12 = { "ProtocolIE-Container", "ProtocolIE-Container", &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_226P11_tags_23, - sizeof(asn_DEF_ProtocolIE_Container_226P11_tags_23) - /sizeof(asn_DEF_ProtocolIE_Container_226P11_tags_23[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_226P11_tags_23, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_226P11_tags_23) - /sizeof(asn_DEF_ProtocolIE_Container_226P11_tags_23[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_226P11_constr_23, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_226P11_23, + asn_DEF_ProtocolIE_Container_1917P12_tags_25, + sizeof(asn_DEF_ProtocolIE_Container_1917P12_tags_25) + /sizeof(asn_DEF_ProtocolIE_Container_1917P12_tags_25[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_1917P12_tags_25, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_1917P12_tags_25) + /sizeof(asn_DEF_ProtocolIE_Container_1917P12_tags_25[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_1917P12_constr_25, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_1917P12_25, 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_226P11_specs_23 /* Additional specs */ + &asn_SPC_ProtocolIE_Container_1917P12_specs_25 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P12_25[] = { +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P13_27[] = { { ATF_POINTER, 0, 0, (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -569,31 +609,31 @@ asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P12_25[] = { "" }, }; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_226P12_tags_25[] = { +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1917P13_tags_27[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_226P12_specs_25 = { - sizeof(struct ProtocolIE_Container_226P12), - offsetof(struct ProtocolIE_Container_226P12, _asn_ctx), +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P13_specs_27 = { + sizeof(struct ProtocolIE_Container_1917P13), + offsetof(struct ProtocolIE_Container_1917P13, _asn_ctx), 0, /* XER encoding is XMLDelimitedItemList */ }; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_226P12 = { +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P13 = { "ProtocolIE-Container", "ProtocolIE-Container", &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_226P12_tags_25, - sizeof(asn_DEF_ProtocolIE_Container_226P12_tags_25) - /sizeof(asn_DEF_ProtocolIE_Container_226P12_tags_25[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_226P12_tags_25, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_226P12_tags_25) - /sizeof(asn_DEF_ProtocolIE_Container_226P12_tags_25[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_226P12_constr_25, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_226P12_25, + asn_DEF_ProtocolIE_Container_1917P13_tags_27, + sizeof(asn_DEF_ProtocolIE_Container_1917P13_tags_27) + /sizeof(asn_DEF_ProtocolIE_Container_1917P13_tags_27[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_1917P13_tags_27, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_1917P13_tags_27) + /sizeof(asn_DEF_ProtocolIE_Container_1917P13_tags_27[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_1917P13_constr_27, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_1917P13_27, 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_226P12_specs_25 /* Additional specs */ + &asn_SPC_ProtocolIE_Container_1917P13_specs_27 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P13_27[] = { +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P14_29[] = { { ATF_POINTER, 0, 0, (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -604,31 +644,31 @@ asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P13_27[] = { "" }, }; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_226P13_tags_27[] = { +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1917P14_tags_29[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_226P13_specs_27 = { - sizeof(struct ProtocolIE_Container_226P13), - offsetof(struct ProtocolIE_Container_226P13, _asn_ctx), +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P14_specs_29 = { + sizeof(struct ProtocolIE_Container_1917P14), + offsetof(struct ProtocolIE_Container_1917P14, _asn_ctx), 0, /* XER encoding is XMLDelimitedItemList */ }; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_226P13 = { +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P14 = { "ProtocolIE-Container", "ProtocolIE-Container", &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_226P13_tags_27, - sizeof(asn_DEF_ProtocolIE_Container_226P13_tags_27) - /sizeof(asn_DEF_ProtocolIE_Container_226P13_tags_27[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_226P13_tags_27, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_226P13_tags_27) - /sizeof(asn_DEF_ProtocolIE_Container_226P13_tags_27[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_226P13_constr_27, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_226P13_27, + asn_DEF_ProtocolIE_Container_1917P14_tags_29, + sizeof(asn_DEF_ProtocolIE_Container_1917P14_tags_29) + /sizeof(asn_DEF_ProtocolIE_Container_1917P14_tags_29[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_1917P14_tags_29, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_1917P14_tags_29) + /sizeof(asn_DEF_ProtocolIE_Container_1917P14_tags_29[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_1917P14_constr_29, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_1917P14_29, 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_226P13_specs_27 /* Additional specs */ + &asn_SPC_ProtocolIE_Container_1917P14_specs_29 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P14_29[] = { +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P15_31[] = { { ATF_POINTER, 0, 0, (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -639,31 +679,31 @@ asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P14_29[] = { "" }, }; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_226P14_tags_29[] = { +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1917P15_tags_31[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_226P14_specs_29 = { - sizeof(struct ProtocolIE_Container_226P14), - offsetof(struct ProtocolIE_Container_226P14, _asn_ctx), +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P15_specs_31 = { + sizeof(struct ProtocolIE_Container_1917P15), + offsetof(struct ProtocolIE_Container_1917P15, _asn_ctx), 0, /* XER encoding is XMLDelimitedItemList */ }; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_226P14 = { +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P15 = { "ProtocolIE-Container", "ProtocolIE-Container", &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_226P14_tags_29, - sizeof(asn_DEF_ProtocolIE_Container_226P14_tags_29) - /sizeof(asn_DEF_ProtocolIE_Container_226P14_tags_29[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_226P14_tags_29, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_226P14_tags_29) - /sizeof(asn_DEF_ProtocolIE_Container_226P14_tags_29[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_226P14_constr_29, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_226P14_29, + asn_DEF_ProtocolIE_Container_1917P15_tags_31, + sizeof(asn_DEF_ProtocolIE_Container_1917P15_tags_31) + /sizeof(asn_DEF_ProtocolIE_Container_1917P15_tags_31[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_1917P15_tags_31, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_1917P15_tags_31) + /sizeof(asn_DEF_ProtocolIE_Container_1917P15_tags_31[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_1917P15_constr_31, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_1917P15_31, 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_226P14_specs_29 /* Additional specs */ + &asn_SPC_ProtocolIE_Container_1917P15_specs_31 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P15_31[] = { +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P16_33[] = { { ATF_POINTER, 0, 0, (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -674,31 +714,31 @@ asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P15_31[] = { "" }, }; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_226P15_tags_31[] = { +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1917P16_tags_33[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_226P15_specs_31 = { - sizeof(struct ProtocolIE_Container_226P15), - offsetof(struct ProtocolIE_Container_226P15, _asn_ctx), +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P16_specs_33 = { + sizeof(struct ProtocolIE_Container_1917P16), + offsetof(struct ProtocolIE_Container_1917P16, _asn_ctx), 0, /* XER encoding is XMLDelimitedItemList */ }; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_226P15 = { +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P16 = { "ProtocolIE-Container", "ProtocolIE-Container", &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_226P15_tags_31, - sizeof(asn_DEF_ProtocolIE_Container_226P15_tags_31) - /sizeof(asn_DEF_ProtocolIE_Container_226P15_tags_31[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_226P15_tags_31, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_226P15_tags_31) - /sizeof(asn_DEF_ProtocolIE_Container_226P15_tags_31[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_226P15_constr_31, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_226P15_31, + asn_DEF_ProtocolIE_Container_1917P16_tags_33, + sizeof(asn_DEF_ProtocolIE_Container_1917P16_tags_33) + /sizeof(asn_DEF_ProtocolIE_Container_1917P16_tags_33[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_1917P16_tags_33, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_1917P16_tags_33) + /sizeof(asn_DEF_ProtocolIE_Container_1917P16_tags_33[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_1917P16_constr_33, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_1917P16_33, 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_226P15_specs_31 /* Additional specs */ + &asn_SPC_ProtocolIE_Container_1917P16_specs_33 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P16_33[] = { +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P17_35[] = { { ATF_POINTER, 0, 0, (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -709,31 +749,31 @@ asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P16_33[] = { "" }, }; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_226P16_tags_33[] = { +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1917P17_tags_35[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_226P16_specs_33 = { - sizeof(struct ProtocolIE_Container_226P16), - offsetof(struct ProtocolIE_Container_226P16, _asn_ctx), +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P17_specs_35 = { + sizeof(struct ProtocolIE_Container_1917P17), + offsetof(struct ProtocolIE_Container_1917P17, _asn_ctx), 0, /* XER encoding is XMLDelimitedItemList */ }; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_226P16 = { +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P17 = { "ProtocolIE-Container", "ProtocolIE-Container", &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_226P16_tags_33, - sizeof(asn_DEF_ProtocolIE_Container_226P16_tags_33) - /sizeof(asn_DEF_ProtocolIE_Container_226P16_tags_33[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_226P16_tags_33, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_226P16_tags_33) - /sizeof(asn_DEF_ProtocolIE_Container_226P16_tags_33[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_226P16_constr_33, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_226P16_33, + asn_DEF_ProtocolIE_Container_1917P17_tags_35, + sizeof(asn_DEF_ProtocolIE_Container_1917P17_tags_35) + /sizeof(asn_DEF_ProtocolIE_Container_1917P17_tags_35[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_1917P17_tags_35, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_1917P17_tags_35) + /sizeof(asn_DEF_ProtocolIE_Container_1917P17_tags_35[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_1917P17_constr_35, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_1917P17_35, 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_226P16_specs_33 /* Additional specs */ + &asn_SPC_ProtocolIE_Container_1917P17_specs_35 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P17_35[] = { +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P18_37[] = { { ATF_POINTER, 0, 0, (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -744,31 +784,31 @@ asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P17_35[] = { "" }, }; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_226P17_tags_35[] = { +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1917P18_tags_37[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_226P17_specs_35 = { - sizeof(struct ProtocolIE_Container_226P17), - offsetof(struct ProtocolIE_Container_226P17, _asn_ctx), +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P18_specs_37 = { + sizeof(struct ProtocolIE_Container_1917P18), + offsetof(struct ProtocolIE_Container_1917P18, _asn_ctx), 0, /* XER encoding is XMLDelimitedItemList */ }; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_226P17 = { +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P18 = { "ProtocolIE-Container", "ProtocolIE-Container", &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_226P17_tags_35, - sizeof(asn_DEF_ProtocolIE_Container_226P17_tags_35) - /sizeof(asn_DEF_ProtocolIE_Container_226P17_tags_35[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_226P17_tags_35, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_226P17_tags_35) - /sizeof(asn_DEF_ProtocolIE_Container_226P17_tags_35[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_226P17_constr_35, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_226P17_35, + asn_DEF_ProtocolIE_Container_1917P18_tags_37, + sizeof(asn_DEF_ProtocolIE_Container_1917P18_tags_37) + /sizeof(asn_DEF_ProtocolIE_Container_1917P18_tags_37[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_1917P18_tags_37, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_1917P18_tags_37) + /sizeof(asn_DEF_ProtocolIE_Container_1917P18_tags_37[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_1917P18_constr_37, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_1917P18_37, 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_226P17_specs_35 /* Additional specs */ + &asn_SPC_ProtocolIE_Container_1917P18_specs_37 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P18_37[] = { +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P19_39[] = { { ATF_POINTER, 0, 0, (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -779,31 +819,31 @@ asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P18_37[] = { "" }, }; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_226P18_tags_37[] = { +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1917P19_tags_39[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_226P18_specs_37 = { - sizeof(struct ProtocolIE_Container_226P18), - offsetof(struct ProtocolIE_Container_226P18, _asn_ctx), +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P19_specs_39 = { + sizeof(struct ProtocolIE_Container_1917P19), + offsetof(struct ProtocolIE_Container_1917P19, _asn_ctx), 0, /* XER encoding is XMLDelimitedItemList */ }; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_226P18 = { +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P19 = { "ProtocolIE-Container", "ProtocolIE-Container", &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_226P18_tags_37, - sizeof(asn_DEF_ProtocolIE_Container_226P18_tags_37) - /sizeof(asn_DEF_ProtocolIE_Container_226P18_tags_37[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_226P18_tags_37, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_226P18_tags_37) - /sizeof(asn_DEF_ProtocolIE_Container_226P18_tags_37[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_226P18_constr_37, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_226P18_37, + asn_DEF_ProtocolIE_Container_1917P19_tags_39, + sizeof(asn_DEF_ProtocolIE_Container_1917P19_tags_39) + /sizeof(asn_DEF_ProtocolIE_Container_1917P19_tags_39[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_1917P19_tags_39, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_1917P19_tags_39) + /sizeof(asn_DEF_ProtocolIE_Container_1917P19_tags_39[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_1917P19_constr_39, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_1917P19_39, 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_226P18_specs_37 /* Additional specs */ + &asn_SPC_ProtocolIE_Container_1917P19_specs_39 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P19_39[] = { +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P20_41[] = { { ATF_POINTER, 0, 0, (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -814,31 +854,31 @@ asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P19_39[] = { "" }, }; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_226P19_tags_39[] = { +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1917P20_tags_41[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_226P19_specs_39 = { - sizeof(struct ProtocolIE_Container_226P19), - offsetof(struct ProtocolIE_Container_226P19, _asn_ctx), +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P20_specs_41 = { + sizeof(struct ProtocolIE_Container_1917P20), + offsetof(struct ProtocolIE_Container_1917P20, _asn_ctx), 0, /* XER encoding is XMLDelimitedItemList */ }; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_226P19 = { +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P20 = { "ProtocolIE-Container", "ProtocolIE-Container", &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_226P19_tags_39, - sizeof(asn_DEF_ProtocolIE_Container_226P19_tags_39) - /sizeof(asn_DEF_ProtocolIE_Container_226P19_tags_39[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_226P19_tags_39, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_226P19_tags_39) - /sizeof(asn_DEF_ProtocolIE_Container_226P19_tags_39[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_226P19_constr_39, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_226P19_39, + asn_DEF_ProtocolIE_Container_1917P20_tags_41, + sizeof(asn_DEF_ProtocolIE_Container_1917P20_tags_41) + /sizeof(asn_DEF_ProtocolIE_Container_1917P20_tags_41[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_1917P20_tags_41, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_1917P20_tags_41) + /sizeof(asn_DEF_ProtocolIE_Container_1917P20_tags_41[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_1917P20_constr_41, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_1917P20_41, 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_226P19_specs_39 /* Additional specs */ + &asn_SPC_ProtocolIE_Container_1917P20_specs_41 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P20_41[] = { +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P21_43[] = { { ATF_POINTER, 0, 0, (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -849,31 +889,31 @@ asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P20_41[] = { "" }, }; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_226P20_tags_41[] = { +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1917P21_tags_43[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_226P20_specs_41 = { - sizeof(struct ProtocolIE_Container_226P20), - offsetof(struct ProtocolIE_Container_226P20, _asn_ctx), +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P21_specs_43 = { + sizeof(struct ProtocolIE_Container_1917P21), + offsetof(struct ProtocolIE_Container_1917P21, _asn_ctx), 0, /* XER encoding is XMLDelimitedItemList */ }; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_226P20 = { +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P21 = { "ProtocolIE-Container", "ProtocolIE-Container", &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_226P20_tags_41, - sizeof(asn_DEF_ProtocolIE_Container_226P20_tags_41) - /sizeof(asn_DEF_ProtocolIE_Container_226P20_tags_41[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_226P20_tags_41, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_226P20_tags_41) - /sizeof(asn_DEF_ProtocolIE_Container_226P20_tags_41[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_226P20_constr_41, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_226P20_41, + asn_DEF_ProtocolIE_Container_1917P21_tags_43, + sizeof(asn_DEF_ProtocolIE_Container_1917P21_tags_43) + /sizeof(asn_DEF_ProtocolIE_Container_1917P21_tags_43[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_1917P21_tags_43, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_1917P21_tags_43) + /sizeof(asn_DEF_ProtocolIE_Container_1917P21_tags_43[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_1917P21_constr_43, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_1917P21_43, 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_226P20_specs_41 /* Additional specs */ + &asn_SPC_ProtocolIE_Container_1917P21_specs_43 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P21_43[] = { +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P22_45[] = { { ATF_POINTER, 0, 0, (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -884,31 +924,31 @@ asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P21_43[] = { "" }, }; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_226P21_tags_43[] = { +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1917P22_tags_45[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_226P21_specs_43 = { - sizeof(struct ProtocolIE_Container_226P21), - offsetof(struct ProtocolIE_Container_226P21, _asn_ctx), +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P22_specs_45 = { + sizeof(struct ProtocolIE_Container_1917P22), + offsetof(struct ProtocolIE_Container_1917P22, _asn_ctx), 0, /* XER encoding is XMLDelimitedItemList */ }; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_226P21 = { +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P22 = { "ProtocolIE-Container", "ProtocolIE-Container", &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_226P21_tags_43, - sizeof(asn_DEF_ProtocolIE_Container_226P21_tags_43) - /sizeof(asn_DEF_ProtocolIE_Container_226P21_tags_43[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_226P21_tags_43, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_226P21_tags_43) - /sizeof(asn_DEF_ProtocolIE_Container_226P21_tags_43[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_226P21_constr_43, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_226P21_43, + asn_DEF_ProtocolIE_Container_1917P22_tags_45, + sizeof(asn_DEF_ProtocolIE_Container_1917P22_tags_45) + /sizeof(asn_DEF_ProtocolIE_Container_1917P22_tags_45[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_1917P22_tags_45, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_1917P22_tags_45) + /sizeof(asn_DEF_ProtocolIE_Container_1917P22_tags_45[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_1917P22_constr_45, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_1917P22_45, 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_226P21_specs_43 /* Additional specs */ + &asn_SPC_ProtocolIE_Container_1917P22_specs_45 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P22_45[] = { +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P23_47[] = { { ATF_POINTER, 0, 0, (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -919,31 +959,31 @@ asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P22_45[] = { "" }, }; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_226P22_tags_45[] = { +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1917P23_tags_47[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_226P22_specs_45 = { - sizeof(struct ProtocolIE_Container_226P22), - offsetof(struct ProtocolIE_Container_226P22, _asn_ctx), +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P23_specs_47 = { + sizeof(struct ProtocolIE_Container_1917P23), + offsetof(struct ProtocolIE_Container_1917P23, _asn_ctx), 0, /* XER encoding is XMLDelimitedItemList */ }; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_226P22 = { +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P23 = { "ProtocolIE-Container", "ProtocolIE-Container", &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_226P22_tags_45, - sizeof(asn_DEF_ProtocolIE_Container_226P22_tags_45) - /sizeof(asn_DEF_ProtocolIE_Container_226P22_tags_45[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_226P22_tags_45, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_226P22_tags_45) - /sizeof(asn_DEF_ProtocolIE_Container_226P22_tags_45[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_226P22_constr_45, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_226P22_45, + asn_DEF_ProtocolIE_Container_1917P23_tags_47, + sizeof(asn_DEF_ProtocolIE_Container_1917P23_tags_47) + /sizeof(asn_DEF_ProtocolIE_Container_1917P23_tags_47[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_1917P23_tags_47, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_1917P23_tags_47) + /sizeof(asn_DEF_ProtocolIE_Container_1917P23_tags_47[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_1917P23_constr_47, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_1917P23_47, 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_226P22_specs_45 /* Additional specs */ + &asn_SPC_ProtocolIE_Container_1917P23_specs_47 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P23_47[] = { +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P24_49[] = { { ATF_POINTER, 0, 0, (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -954,31 +994,31 @@ asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P23_47[] = { "" }, }; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_226P23_tags_47[] = { +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1917P24_tags_49[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_226P23_specs_47 = { - sizeof(struct ProtocolIE_Container_226P23), - offsetof(struct ProtocolIE_Container_226P23, _asn_ctx), +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P24_specs_49 = { + sizeof(struct ProtocolIE_Container_1917P24), + offsetof(struct ProtocolIE_Container_1917P24, _asn_ctx), 0, /* XER encoding is XMLDelimitedItemList */ }; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_226P23 = { +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P24 = { "ProtocolIE-Container", "ProtocolIE-Container", &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_226P23_tags_47, - sizeof(asn_DEF_ProtocolIE_Container_226P23_tags_47) - /sizeof(asn_DEF_ProtocolIE_Container_226P23_tags_47[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_226P23_tags_47, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_226P23_tags_47) - /sizeof(asn_DEF_ProtocolIE_Container_226P23_tags_47[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_226P23_constr_47, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_226P23_47, + asn_DEF_ProtocolIE_Container_1917P24_tags_49, + sizeof(asn_DEF_ProtocolIE_Container_1917P24_tags_49) + /sizeof(asn_DEF_ProtocolIE_Container_1917P24_tags_49[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_1917P24_tags_49, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_1917P24_tags_49) + /sizeof(asn_DEF_ProtocolIE_Container_1917P24_tags_49[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_1917P24_constr_49, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_1917P24_49, 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_226P23_specs_47 /* Additional specs */ + &asn_SPC_ProtocolIE_Container_1917P24_specs_49 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P24_49[] = { +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P25_51[] = { { ATF_POINTER, 0, 0, (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -989,31 +1029,31 @@ asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P24_49[] = { "" }, }; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_226P24_tags_49[] = { +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1917P25_tags_51[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_226P24_specs_49 = { - sizeof(struct ProtocolIE_Container_226P24), - offsetof(struct ProtocolIE_Container_226P24, _asn_ctx), +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P25_specs_51 = { + sizeof(struct ProtocolIE_Container_1917P25), + offsetof(struct ProtocolIE_Container_1917P25, _asn_ctx), 0, /* XER encoding is XMLDelimitedItemList */ }; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_226P24 = { +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P25 = { "ProtocolIE-Container", "ProtocolIE-Container", &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_226P24_tags_49, - sizeof(asn_DEF_ProtocolIE_Container_226P24_tags_49) - /sizeof(asn_DEF_ProtocolIE_Container_226P24_tags_49[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_226P24_tags_49, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_226P24_tags_49) - /sizeof(asn_DEF_ProtocolIE_Container_226P24_tags_49[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_226P24_constr_49, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_226P24_49, + asn_DEF_ProtocolIE_Container_1917P25_tags_51, + sizeof(asn_DEF_ProtocolIE_Container_1917P25_tags_51) + /sizeof(asn_DEF_ProtocolIE_Container_1917P25_tags_51[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_1917P25_tags_51, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_1917P25_tags_51) + /sizeof(asn_DEF_ProtocolIE_Container_1917P25_tags_51[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_1917P25_constr_51, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_1917P25_51, 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_226P24_specs_49 /* Additional specs */ + &asn_SPC_ProtocolIE_Container_1917P25_specs_51 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P25_51[] = { +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P26_53[] = { { ATF_POINTER, 0, 0, (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -1024,27 +1064,27 @@ asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P25_51[] = { "" }, }; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_226P25_tags_51[] = { +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1917P26_tags_53[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_226P25_specs_51 = { - sizeof(struct ProtocolIE_Container_226P25), - offsetof(struct ProtocolIE_Container_226P25, _asn_ctx), +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P26_specs_53 = { + sizeof(struct ProtocolIE_Container_1917P26), + offsetof(struct ProtocolIE_Container_1917P26, _asn_ctx), 0, /* XER encoding is XMLDelimitedItemList */ }; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_226P25 = { +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P26 = { "ProtocolIE-Container", "ProtocolIE-Container", &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_226P25_tags_51, - sizeof(asn_DEF_ProtocolIE_Container_226P25_tags_51) - /sizeof(asn_DEF_ProtocolIE_Container_226P25_tags_51[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_226P25_tags_51, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_226P25_tags_51) - /sizeof(asn_DEF_ProtocolIE_Container_226P25_tags_51[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_226P25_constr_51, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_226P25_51, + asn_DEF_ProtocolIE_Container_1917P26_tags_53, + sizeof(asn_DEF_ProtocolIE_Container_1917P26_tags_53) + /sizeof(asn_DEF_ProtocolIE_Container_1917P26_tags_53[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_1917P26_tags_53, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_1917P26_tags_53) + /sizeof(asn_DEF_ProtocolIE_Container_1917P26_tags_53[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_1917P26_constr_53, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_1917P26_53, 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_226P25_specs_51 /* Additional specs */ + &asn_SPC_ProtocolIE_Container_1917P26_specs_53 /* Additional specs */ }; diff --git a/e2sim/src/ASN1c/ProtocolIE-Container.h b/e2sim/src/ASN1c/ProtocolIE-Container.h index 7b7cccb..1406315 100644 --- a/e2sim/src/ASN1c/ProtocolIE-Container.h +++ b/e2sim/src/ASN1c/ProtocolIE-Container.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-Containers" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #ifndef _ProtocolIE_Container_H_ @@ -26,6 +26,7 @@ struct RICsubscriptionFailure_IEs; struct RICsubscriptionDeleteRequest_IEs; struct RICsubscriptionDeleteResponse_IEs; struct RICsubscriptionDeleteFailure_IEs; +struct RICsubscriptionDeleteRequired_IEs; struct RICindication_IEs; struct RICcontrolRequest_IEs; struct RICcontrolAcknowledge_IEs; @@ -48,268 +49,278 @@ struct RICserviceUpdateFailure_IEs; struct RICserviceQuery_IEs; /* ProtocolIE-Container */ -typedef struct ProtocolIE_Container_226P0 { +typedef struct ProtocolIE_Container_1917P0 { A_SEQUENCE_OF(struct RICsubscriptionRequest_IEs) list; /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_226P0_t; -typedef struct ProtocolIE_Container_226P1 { +} ProtocolIE_Container_1917P0_t; +typedef struct ProtocolIE_Container_1917P1 { A_SEQUENCE_OF(struct RICsubscriptionResponse_IEs) list; /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_226P1_t; -typedef struct ProtocolIE_Container_226P2 { +} ProtocolIE_Container_1917P1_t; +typedef struct ProtocolIE_Container_1917P2 { A_SEQUENCE_OF(struct RICsubscriptionFailure_IEs) list; /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_226P2_t; -typedef struct ProtocolIE_Container_226P3 { +} ProtocolIE_Container_1917P2_t; +typedef struct ProtocolIE_Container_1917P3 { A_SEQUENCE_OF(struct RICsubscriptionDeleteRequest_IEs) list; /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_226P3_t; -typedef struct ProtocolIE_Container_226P4 { +} ProtocolIE_Container_1917P3_t; +typedef struct ProtocolIE_Container_1917P4 { A_SEQUENCE_OF(struct RICsubscriptionDeleteResponse_IEs) list; /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_226P4_t; -typedef struct ProtocolIE_Container_226P5 { +} ProtocolIE_Container_1917P4_t; +typedef struct ProtocolIE_Container_1917P5 { A_SEQUENCE_OF(struct RICsubscriptionDeleteFailure_IEs) list; /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_226P5_t; -typedef struct ProtocolIE_Container_226P6 { +} ProtocolIE_Container_1917P5_t; +typedef struct ProtocolIE_Container_1917P6 { + A_SEQUENCE_OF(struct RICsubscriptionDeleteRequired_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_1917P6_t; +typedef struct ProtocolIE_Container_1917P7 { A_SEQUENCE_OF(struct RICindication_IEs) list; /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_226P6_t; -typedef struct ProtocolIE_Container_226P7 { +} ProtocolIE_Container_1917P7_t; +typedef struct ProtocolIE_Container_1917P8 { A_SEQUENCE_OF(struct RICcontrolRequest_IEs) list; /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_226P7_t; -typedef struct ProtocolIE_Container_226P8 { +} ProtocolIE_Container_1917P8_t; +typedef struct ProtocolIE_Container_1917P9 { A_SEQUENCE_OF(struct RICcontrolAcknowledge_IEs) list; /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_226P8_t; -typedef struct ProtocolIE_Container_226P9 { +} ProtocolIE_Container_1917P9_t; +typedef struct ProtocolIE_Container_1917P10 { A_SEQUENCE_OF(struct RICcontrolFailure_IEs) list; /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_226P9_t; -typedef struct ProtocolIE_Container_226P10 { +} ProtocolIE_Container_1917P10_t; +typedef struct ProtocolIE_Container_1917P11 { A_SEQUENCE_OF(struct ErrorIndication_IEs) list; /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_226P10_t; -typedef struct ProtocolIE_Container_226P11 { +} ProtocolIE_Container_1917P11_t; +typedef struct ProtocolIE_Container_1917P12 { A_SEQUENCE_OF(struct E2setupRequestIEs) list; /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_226P11_t; -typedef struct ProtocolIE_Container_226P12 { +} ProtocolIE_Container_1917P12_t; +typedef struct ProtocolIE_Container_1917P13 { A_SEQUENCE_OF(struct E2setupResponseIEs) list; /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_226P12_t; -typedef struct ProtocolIE_Container_226P13 { +} ProtocolIE_Container_1917P13_t; +typedef struct ProtocolIE_Container_1917P14 { A_SEQUENCE_OF(struct E2setupFailureIEs) list; /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_226P13_t; -typedef struct ProtocolIE_Container_226P14 { +} ProtocolIE_Container_1917P14_t; +typedef struct ProtocolIE_Container_1917P15 { A_SEQUENCE_OF(struct E2connectionUpdate_IEs) list; /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_226P14_t; -typedef struct ProtocolIE_Container_226P15 { +} ProtocolIE_Container_1917P15_t; +typedef struct ProtocolIE_Container_1917P16 { A_SEQUENCE_OF(struct E2connectionUpdateAck_IEs) list; /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_226P15_t; -typedef struct ProtocolIE_Container_226P16 { +} ProtocolIE_Container_1917P16_t; +typedef struct ProtocolIE_Container_1917P17 { A_SEQUENCE_OF(struct E2connectionUpdateFailure_IEs) list; /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_226P16_t; -typedef struct ProtocolIE_Container_226P17 { +} ProtocolIE_Container_1917P17_t; +typedef struct ProtocolIE_Container_1917P18 { A_SEQUENCE_OF(struct E2nodeConfigurationUpdate_IEs) list; /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_226P17_t; -typedef struct ProtocolIE_Container_226P18 { +} ProtocolIE_Container_1917P18_t; +typedef struct ProtocolIE_Container_1917P19 { A_SEQUENCE_OF(struct E2nodeConfigurationUpdateAcknowledge_IEs) list; /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_226P18_t; -typedef struct ProtocolIE_Container_226P19 { +} ProtocolIE_Container_1917P19_t; +typedef struct ProtocolIE_Container_1917P20 { A_SEQUENCE_OF(struct E2nodeConfigurationUpdateFailure_IEs) list; /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_226P19_t; -typedef struct ProtocolIE_Container_226P20 { +} ProtocolIE_Container_1917P20_t; +typedef struct ProtocolIE_Container_1917P21 { A_SEQUENCE_OF(struct ResetRequestIEs) list; /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_226P20_t; -typedef struct ProtocolIE_Container_226P21 { +} ProtocolIE_Container_1917P21_t; +typedef struct ProtocolIE_Container_1917P22 { A_SEQUENCE_OF(struct ResetResponseIEs) list; /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_226P21_t; -typedef struct ProtocolIE_Container_226P22 { +} ProtocolIE_Container_1917P22_t; +typedef struct ProtocolIE_Container_1917P23 { A_SEQUENCE_OF(struct RICserviceUpdate_IEs) list; /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_226P22_t; -typedef struct ProtocolIE_Container_226P23 { +} ProtocolIE_Container_1917P23_t; +typedef struct ProtocolIE_Container_1917P24 { A_SEQUENCE_OF(struct RICserviceUpdateAcknowledge_IEs) list; /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_226P23_t; -typedef struct ProtocolIE_Container_226P24 { +} ProtocolIE_Container_1917P24_t; +typedef struct ProtocolIE_Container_1917P25 { A_SEQUENCE_OF(struct RICserviceUpdateFailure_IEs) list; /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_226P24_t; -typedef struct ProtocolIE_Container_226P25 { +} ProtocolIE_Container_1917P25_t; +typedef struct ProtocolIE_Container_1917P26 { A_SEQUENCE_OF(struct RICserviceQuery_IEs) list; /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_226P25_t; +} ProtocolIE_Container_1917P26_t; /* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_226P0; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_226P0_specs_1; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P0_1[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_226P0_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_226P1; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_226P1_specs_3; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P1_3[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_226P1_constr_3; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_226P2; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_226P2_specs_5; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P2_5[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_226P2_constr_5; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_226P3; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_226P3_specs_7; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P3_7[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_226P3_constr_7; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_226P4; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_226P4_specs_9; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P4_9[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_226P4_constr_9; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_226P5; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_226P5_specs_11; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P5_11[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_226P5_constr_11; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_226P6; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_226P6_specs_13; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P6_13[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_226P6_constr_13; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_226P7; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_226P7_specs_15; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P7_15[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_226P7_constr_15; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_226P8; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_226P8_specs_17; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P8_17[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_226P8_constr_17; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_226P9; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_226P9_specs_19; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P9_19[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_226P9_constr_19; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_226P10; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_226P10_specs_21; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P10_21[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_226P10_constr_21; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_226P11; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_226P11_specs_23; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P11_23[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_226P11_constr_23; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_226P12; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_226P12_specs_25; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P12_25[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_226P12_constr_25; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_226P13; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_226P13_specs_27; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P13_27[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_226P13_constr_27; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_226P14; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_226P14_specs_29; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P14_29[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_226P14_constr_29; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_226P15; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_226P15_specs_31; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P15_31[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_226P15_constr_31; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_226P16; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_226P16_specs_33; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P16_33[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_226P16_constr_33; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_226P17; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_226P17_specs_35; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P17_35[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_226P17_constr_35; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_226P18; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_226P18_specs_37; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P18_37[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_226P18_constr_37; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_226P19; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_226P19_specs_39; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P19_39[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_226P19_constr_39; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_226P20; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_226P20_specs_41; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P20_41[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_226P20_constr_41; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_226P21; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_226P21_specs_43; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P21_43[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_226P21_constr_43; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_226P22; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_226P22_specs_45; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P22_45[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_226P22_constr_45; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_226P23; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_226P23_specs_47; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P23_47[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_226P23_constr_47; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_226P24; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_226P24_specs_49; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P24_49[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_226P24_constr_49; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_226P25; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_226P25_specs_51; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_226P25_51[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_226P25_constr_51; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P0; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P0_specs_1; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P0_1[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P0_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P1; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P1_specs_3; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P1_3[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P1_constr_3; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P2; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P2_specs_5; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P2_5[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P2_constr_5; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P3; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P3_specs_7; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P3_7[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P3_constr_7; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P4; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P4_specs_9; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P4_9[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P4_constr_9; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P5; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P5_specs_11; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P5_11[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P5_constr_11; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P6; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P6_specs_13; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P6_13[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P6_constr_13; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P7; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P7_specs_15; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P7_15[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P7_constr_15; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P8; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P8_specs_17; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P8_17[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P8_constr_17; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P9; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P9_specs_19; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P9_19[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P9_constr_19; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P10; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P10_specs_21; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P10_21[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P10_constr_21; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P11; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P11_specs_23; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P11_23[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P11_constr_23; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P12; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P12_specs_25; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P12_25[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P12_constr_25; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P13; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P13_specs_27; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P13_27[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P13_constr_27; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P14; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P14_specs_29; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P14_29[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P14_constr_29; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P15; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P15_specs_31; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P15_31[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P15_constr_31; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P16; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P16_specs_33; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P16_33[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P16_constr_33; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P17; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P17_specs_35; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P17_35[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P17_constr_35; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P18; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P18_specs_37; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P18_37[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P18_constr_37; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P19; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P19_specs_39; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P19_39[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P19_constr_39; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P20; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P20_specs_41; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P20_41[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P20_constr_41; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P21; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P21_specs_43; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P21_43[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P21_constr_43; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P22; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P22_specs_45; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P22_45[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P22_constr_45; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P23; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P23_specs_47; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P23_47[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P23_constr_47; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P24; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P24_specs_49; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P24_49[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P24_constr_49; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P25; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P25_specs_51; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P25_51[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P25_constr_51; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1917P26; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1917P26_specs_53; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1917P26_53[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1917P26_constr_53; #ifdef __cplusplus } diff --git a/e2sim/src/ASN1c/ProtocolIE-ContainerList.c b/e2sim/src/ASN1c/ProtocolIE-ContainerList.c index a55503d..e97ca34 100644 --- a/e2sim/src/ASN1c/ProtocolIE-ContainerList.c +++ b/e2sim/src/ASN1c/ProtocolIE-ContainerList.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-Containers" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #include "ProtocolIE-ContainerList.h" diff --git a/e2sim/src/ASN1c/ProtocolIE-ContainerList.h b/e2sim/src/ASN1c/ProtocolIE-ContainerList.h index fe7c646..f79eecc 100644 --- a/e2sim/src/ASN1c/ProtocolIE-ContainerList.h +++ b/e2sim/src/ASN1c/ProtocolIE-ContainerList.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-Containers" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #ifndef _ProtocolIE_ContainerList_H_ diff --git a/e2sim/src/ASN1c/ProtocolIE-ContainerPair.c b/e2sim/src/ASN1c/ProtocolIE-ContainerPair.c index 00bfc8e..1c1923e 100644 --- a/e2sim/src/ASN1c/ProtocolIE-ContainerPair.c +++ b/e2sim/src/ASN1c/ProtocolIE-ContainerPair.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-Containers" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #include "ProtocolIE-ContainerPair.h" diff --git a/e2sim/src/ASN1c/ProtocolIE-ContainerPair.h b/e2sim/src/ASN1c/ProtocolIE-ContainerPair.h index eb1eabf..b6ac4f3 100644 --- a/e2sim/src/ASN1c/ProtocolIE-ContainerPair.h +++ b/e2sim/src/ASN1c/ProtocolIE-ContainerPair.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-Containers" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #ifndef _ProtocolIE_ContainerPair_H_ diff --git a/e2sim/src/ASN1c/ProtocolIE-ContainerPairList.c b/e2sim/src/ASN1c/ProtocolIE-ContainerPairList.c index 3518d31..3f82f58 100644 --- a/e2sim/src/ASN1c/ProtocolIE-ContainerPairList.c +++ b/e2sim/src/ASN1c/ProtocolIE-ContainerPairList.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-Containers" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #include "ProtocolIE-ContainerPairList.h" diff --git a/e2sim/src/ASN1c/ProtocolIE-ContainerPairList.h b/e2sim/src/ASN1c/ProtocolIE-ContainerPairList.h index 176c565..a555957 100644 --- a/e2sim/src/ASN1c/ProtocolIE-ContainerPairList.h +++ b/e2sim/src/ASN1c/ProtocolIE-ContainerPairList.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-Containers" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #ifndef _ProtocolIE_ContainerPairList_H_ diff --git a/e2sim/src/ASN1c/ProtocolIE-Field.c b/e2sim/src/ASN1c/ProtocolIE-Field.c index 556fd53..06ce54f 100644 --- a/e2sim/src/ASN1c/ProtocolIE-Field.c +++ b/e2sim/src/ASN1c/ProtocolIE-Field.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-Containers" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #include "ProtocolIE-Field.h" @@ -43,98 +43,170 @@ static const asn_ioc_cell_t asn_IOS_RICaction_NotAdmitted_ItemIEs_1_rows[] = { static const asn_ioc_set_t asn_IOS_RICaction_NotAdmitted_ItemIEs_1[] = { { 1, 4, asn_IOS_RICaction_NotAdmitted_ItemIEs_1_rows } }; -static const long asn_VAL_65_id_E2connectionUpdate_Item = 43; -static const long asn_VAL_65_ignore = 1; -static const long asn_VAL_65_mandatory = 2; +static const long asn_VAL_24_id_RICsubscription_withCause_Item = 51; +static const long asn_VAL_24_ignore = 1; +static const long asn_VAL_24_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_RICsubscription_withCause_ItemIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_24_id_RICsubscription_withCause_Item }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_24_ignore }, + { "&Value", aioc__type, &asn_DEF_RICsubscription_withCause_Item }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_24_mandatory } +}; +static const asn_ioc_set_t asn_IOS_RICsubscription_withCause_ItemIEs_1[] = { + { 1, 4, asn_IOS_RICsubscription_withCause_ItemIEs_1_rows } +}; +static const long asn_VAL_71_id_E2connectionUpdate_Item = 43; +static const long asn_VAL_71_ignore = 1; +static const long asn_VAL_71_mandatory = 2; static const asn_ioc_cell_t asn_IOS_E2connectionUpdate_ItemIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_65_id_E2connectionUpdate_Item }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_65_ignore }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_71_id_E2connectionUpdate_Item }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_71_ignore }, { "&Value", aioc__type, &asn_DEF_E2connectionUpdate_Item }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_65_mandatory } + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_71_mandatory } }; static const asn_ioc_set_t asn_IOS_E2connectionUpdate_ItemIEs_1[] = { { 1, 4, asn_IOS_E2connectionUpdate_ItemIEs_1_rows } }; -static const long asn_VAL_66_id_E2connectionUpdateRemove_Item = 47; -static const long asn_VAL_66_ignore = 1; -static const long asn_VAL_66_mandatory = 2; +static const long asn_VAL_72_id_E2connectionUpdateRemove_Item = 47; +static const long asn_VAL_72_ignore = 1; +static const long asn_VAL_72_mandatory = 2; static const asn_ioc_cell_t asn_IOS_E2connectionUpdateRemove_ItemIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_66_id_E2connectionUpdateRemove_Item }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_66_ignore }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_72_id_E2connectionUpdateRemove_Item }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_72_ignore }, { "&Value", aioc__type, &asn_DEF_E2connectionUpdateRemove_Item }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_66_mandatory } + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_72_mandatory } }; static const asn_ioc_set_t asn_IOS_E2connectionUpdateRemove_ItemIEs_1[] = { { 1, 4, asn_IOS_E2connectionUpdateRemove_ItemIEs_1_rows } }; -static const long asn_VAL_69_id_E2connectionSetupFailed_Item = 41; -static const long asn_VAL_69_ignore = 1; -static const long asn_VAL_69_mandatory = 2; +static const long asn_VAL_76_id_E2connectionSetupFailed_Item = 41; +static const long asn_VAL_76_ignore = 1; +static const long asn_VAL_76_mandatory = 2; static const asn_ioc_cell_t asn_IOS_E2connectionSetupFailed_ItemIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_69_id_E2connectionSetupFailed_Item }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_69_ignore }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_76_id_E2connectionSetupFailed_Item }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_76_ignore }, { "&Value", aioc__type, &asn_DEF_E2connectionSetupFailed_Item }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_69_mandatory } + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_76_mandatory } }; static const asn_ioc_set_t asn_IOS_E2connectionSetupFailed_ItemIEs_1[] = { { 1, 4, asn_IOS_E2connectionSetupFailed_ItemIEs_1_rows } }; -static const long asn_VAL_74_id_E2nodeComponentConfigUpdate_Item = 34; -static const long asn_VAL_74_reject = 0; -static const long asn_VAL_74_mandatory = 2; +static const long asn_VAL_87_id_E2nodeComponentConfigAddition_Item = 51; +static const long asn_VAL_87_reject = 0; +static const long asn_VAL_87_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_E2nodeComponentConfigAddition_ItemIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_87_id_E2nodeComponentConfigAddition_Item }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_87_reject }, + { "&Value", aioc__type, &asn_DEF_E2nodeComponentConfigAddition_Item }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_87_mandatory } +}; +static const asn_ioc_set_t asn_IOS_E2nodeComponentConfigAddition_ItemIEs_1[] = { + { 1, 4, asn_IOS_E2nodeComponentConfigAddition_ItemIEs_1_rows } +}; +static const long asn_VAL_88_id_E2nodeComponentConfigUpdate_Item = 34; +static const long asn_VAL_88_reject = 0; +static const long asn_VAL_88_mandatory = 2; static const asn_ioc_cell_t asn_IOS_E2nodeComponentConfigUpdate_ItemIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_74_id_E2nodeComponentConfigUpdate_Item }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_74_reject }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_88_id_E2nodeComponentConfigUpdate_Item }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_88_reject }, { "&Value", aioc__type, &asn_DEF_E2nodeComponentConfigUpdate_Item }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_74_mandatory } + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_88_mandatory } }; static const asn_ioc_set_t asn_IOS_E2nodeComponentConfigUpdate_ItemIEs_1[] = { { 1, 4, asn_IOS_E2nodeComponentConfigUpdate_ItemIEs_1_rows } }; -static const long asn_VAL_76_id_E2nodeComponentConfigUpdateAck_Item = 36; -static const long asn_VAL_76_reject = 0; -static const long asn_VAL_76_mandatory = 2; +static const long asn_VAL_89_id_E2nodeComponentConfigRemoval_Item = 55; +static const long asn_VAL_89_reject = 0; +static const long asn_VAL_89_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_E2nodeComponentConfigRemoval_ItemIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_89_id_E2nodeComponentConfigRemoval_Item }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_89_reject }, + { "&Value", aioc__type, &asn_DEF_E2nodeComponentConfigRemoval_Item }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_89_mandatory } +}; +static const asn_ioc_set_t asn_IOS_E2nodeComponentConfigRemoval_ItemIEs_1[] = { + { 1, 4, asn_IOS_E2nodeComponentConfigRemoval_ItemIEs_1_rows } +}; +static const long asn_VAL_90_id_E2nodeTNLassociationRemoval_Item = 59; +static const long asn_VAL_90_reject = 0; +static const long asn_VAL_90_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_E2nodeTNLassociationRemoval_ItemIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_90_id_E2nodeTNLassociationRemoval_Item }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_90_reject }, + { "&Value", aioc__type, &asn_DEF_E2nodeTNLassociationRemoval_Item }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_90_mandatory } +}; +static const asn_ioc_set_t asn_IOS_E2nodeTNLassociationRemoval_ItemIEs_1[] = { + { 1, 4, asn_IOS_E2nodeTNLassociationRemoval_ItemIEs_1_rows } +}; +static const long asn_VAL_95_id_E2nodeComponentConfigAdditionAck_Item = 53; +static const long asn_VAL_95_reject = 0; +static const long asn_VAL_95_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_E2nodeComponentConfigAdditionAck_ItemIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_95_id_E2nodeComponentConfigAdditionAck_Item }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_95_reject }, + { "&Value", aioc__type, &asn_DEF_E2nodeComponentConfigAdditionAck_Item }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_95_mandatory } +}; +static const asn_ioc_set_t asn_IOS_E2nodeComponentConfigAdditionAck_ItemIEs_1[] = { + { 1, 4, asn_IOS_E2nodeComponentConfigAdditionAck_ItemIEs_1_rows } +}; +static const long asn_VAL_96_id_E2nodeComponentConfigUpdateAck_Item = 36; +static const long asn_VAL_96_reject = 0; +static const long asn_VAL_96_mandatory = 2; static const asn_ioc_cell_t asn_IOS_E2nodeComponentConfigUpdateAck_ItemIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_76_id_E2nodeComponentConfigUpdateAck_Item }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_76_reject }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_96_id_E2nodeComponentConfigUpdateAck_Item }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_96_reject }, { "&Value", aioc__type, &asn_DEF_E2nodeComponentConfigUpdateAck_Item }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_76_mandatory } + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_96_mandatory } }; static const asn_ioc_set_t asn_IOS_E2nodeComponentConfigUpdateAck_ItemIEs_1[] = { { 1, 4, asn_IOS_E2nodeComponentConfigUpdateAck_ItemIEs_1_rows } }; -static const long asn_VAL_85_id_RANfunction_Item = 8; -static const long asn_VAL_85_ignore = 1; -static const long asn_VAL_85_mandatory = 2; +static const long asn_VAL_97_id_E2nodeComponentConfigRemovalAck_Item = 57; +static const long asn_VAL_97_reject = 0; +static const long asn_VAL_97_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_E2nodeComponentConfigRemovalAck_ItemIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_97_id_E2nodeComponentConfigRemovalAck_Item }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_97_reject }, + { "&Value", aioc__type, &asn_DEF_E2nodeComponentConfigRemovalAck_Item }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_97_mandatory } +}; +static const asn_ioc_set_t asn_IOS_E2nodeComponentConfigRemovalAck_ItemIEs_1[] = { + { 1, 4, asn_IOS_E2nodeComponentConfigRemovalAck_ItemIEs_1_rows } +}; +static const long asn_VAL_110_id_RANfunction_Item = 8; +static const long asn_VAL_110_ignore = 1; +static const long asn_VAL_110_mandatory = 2; static const asn_ioc_cell_t asn_IOS_RANfunction_ItemIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_85_id_RANfunction_Item }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_85_ignore }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_110_id_RANfunction_Item }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_110_ignore }, { "&Value", aioc__type, &asn_DEF_RANfunction_Item }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_85_mandatory } + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_110_mandatory } }; static const asn_ioc_set_t asn_IOS_RANfunction_ItemIEs_1[] = { { 1, 4, asn_IOS_RANfunction_ItemIEs_1_rows } }; -static const long asn_VAL_86_id_RANfunctionID_Item = 6; -static const long asn_VAL_86_ignore = 1; -static const long asn_VAL_86_mandatory = 2; +static const long asn_VAL_111_id_RANfunctionID_Item = 6; +static const long asn_VAL_111_ignore = 1; +static const long asn_VAL_111_mandatory = 2; static const asn_ioc_cell_t asn_IOS_RANfunctionID_ItemIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_86_id_RANfunctionID_Item }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_86_ignore }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_111_id_RANfunctionID_Item }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_111_ignore }, { "&Value", aioc__type, &asn_DEF_RANfunctionID_Item }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_86_mandatory } + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_111_mandatory } }; static const asn_ioc_set_t asn_IOS_RANfunctionID_ItemIEs_1[] = { { 1, 4, asn_IOS_RANfunctionID_ItemIEs_1_rows } }; -static const long asn_VAL_89_id_RANfunctionIEcause_Item = 7; -static const long asn_VAL_89_ignore = 1; -static const long asn_VAL_89_mandatory = 2; +static const long asn_VAL_115_id_RANfunctionIEcause_Item = 7; +static const long asn_VAL_115_ignore = 1; +static const long asn_VAL_115_mandatory = 2; static const asn_ioc_cell_t asn_IOS_RANfunctionIDcause_ItemIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_89_id_RANfunctionIEcause_Item }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_89_ignore }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_115_id_RANfunctionIEcause_Item }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_115_ignore }, { "&Value", aioc__type, &asn_DEF_RANfunctionIDcause_Item }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_89_mandatory } + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_115_mandatory } }; static const asn_ioc_set_t asn_IOS_RANfunctionIDcause_ItemIEs_1[] = { { 1, 4, asn_IOS_RANfunctionIDcause_ItemIEs_1_rows } @@ -204,7 +276,7 @@ static const long asn_VAL_11_mandatory = 2; static const long asn_VAL_12_id_RANfunctionID = 5; static const long asn_VAL_12_reject = 0; static const long asn_VAL_12_mandatory = 2; -static const long asn_VAL_13_id_RICactions_NotAdmitted = 18; +static const long asn_VAL_13_id_Cause = 1; static const long asn_VAL_13_reject = 0; static const long asn_VAL_13_mandatory = 2; static const long asn_VAL_14_id_CriticalityDiagnostics = 2; @@ -219,9 +291,9 @@ static const asn_ioc_cell_t asn_IOS_RICsubscriptionFailure_IEs_1_rows[] = { { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_12_reject }, { "&Value", aioc__type, &asn_DEF_RANfunctionID }, { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_12_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_13_id_RICactions_NotAdmitted }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_13_id_Cause }, { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_13_reject }, - { "&Value", aioc__type, &asn_DEF_RICaction_NotAdmitted_List }, + { "&Value", aioc__type, &asn_DEF_Cause }, { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_13_mandatory }, { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_14_id_CriticalityDiagnostics }, { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_14_ignore }, @@ -302,546 +374,705 @@ static const asn_ioc_cell_t asn_IOS_RICsubscriptionDeleteFailure_IEs_1_rows[] = static const asn_ioc_set_t asn_IOS_RICsubscriptionDeleteFailure_IEs_1[] = { { 4, 4, asn_IOS_RICsubscriptionDeleteFailure_IEs_1_rows } }; -static const long asn_VAL_23_id_RICrequestID = 29; -static const long asn_VAL_23_reject = 0; +static const long asn_VAL_23_id_RICsubscriptionToBeRemoved = 50; +static const long asn_VAL_23_ignore = 1; static const long asn_VAL_23_mandatory = 2; -static const long asn_VAL_24_id_RANfunctionID = 5; -static const long asn_VAL_24_reject = 0; -static const long asn_VAL_24_mandatory = 2; -static const long asn_VAL_25_id_RICactionID = 15; +static const asn_ioc_cell_t asn_IOS_RICsubscriptionDeleteRequired_IEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_23_id_RICsubscriptionToBeRemoved }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_23_ignore }, + { "&Value", aioc__type, &asn_DEF_RICsubscription_List_withCause }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_23_mandatory } +}; +static const asn_ioc_set_t asn_IOS_RICsubscriptionDeleteRequired_IEs_1[] = { + { 1, 4, asn_IOS_RICsubscriptionDeleteRequired_IEs_1_rows } +}; +static const long asn_VAL_25_id_RICrequestID = 29; static const long asn_VAL_25_reject = 0; static const long asn_VAL_25_mandatory = 2; -static const long asn_VAL_26_id_RICindicationSN = 27; +static const long asn_VAL_26_id_RANfunctionID = 5; static const long asn_VAL_26_reject = 0; -static const long asn_VAL_26_optional = 0; -static const long asn_VAL_27_id_RICindicationType = 28; +static const long asn_VAL_26_mandatory = 2; +static const long asn_VAL_27_id_RICactionID = 15; static const long asn_VAL_27_reject = 0; static const long asn_VAL_27_mandatory = 2; -static const long asn_VAL_28_id_RICindicationHeader = 25; +static const long asn_VAL_28_id_RICindicationSN = 27; static const long asn_VAL_28_reject = 0; -static const long asn_VAL_28_mandatory = 2; -static const long asn_VAL_29_id_RICindicationMessage = 26; +static const long asn_VAL_28_optional = 0; +static const long asn_VAL_29_id_RICindicationType = 28; static const long asn_VAL_29_reject = 0; static const long asn_VAL_29_mandatory = 2; -static const long asn_VAL_30_id_RICcallProcessID = 20; +static const long asn_VAL_30_id_RICindicationHeader = 25; static const long asn_VAL_30_reject = 0; -static const long asn_VAL_30_optional = 0; +static const long asn_VAL_30_mandatory = 2; +static const long asn_VAL_31_id_RICindicationMessage = 26; +static const long asn_VAL_31_reject = 0; +static const long asn_VAL_31_mandatory = 2; +static const long asn_VAL_32_id_RICcallProcessID = 20; +static const long asn_VAL_32_reject = 0; +static const long asn_VAL_32_optional = 0; static const asn_ioc_cell_t asn_IOS_RICindication_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_23_id_RICrequestID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_23_reject }, - { "&Value", aioc__type, &asn_DEF_RICrequestID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_23_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_24_id_RANfunctionID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_24_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_24_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_25_id_RICactionID }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_25_id_RICrequestID }, { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_25_reject }, - { "&Value", aioc__type, &asn_DEF_RICactionID }, + { "&Value", aioc__type, &asn_DEF_RICrequestID }, { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_25_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_26_id_RICindicationSN }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_26_id_RANfunctionID }, { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_26_reject }, - { "&Value", aioc__type, &asn_DEF_RICindicationSN }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_26_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_27_id_RICindicationType }, + { "&Value", aioc__type, &asn_DEF_RANfunctionID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_26_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_27_id_RICactionID }, { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_27_reject }, - { "&Value", aioc__type, &asn_DEF_RICindicationType }, + { "&Value", aioc__type, &asn_DEF_RICactionID }, { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_27_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_28_id_RICindicationHeader }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_28_id_RICindicationSN }, { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_28_reject }, - { "&Value", aioc__type, &asn_DEF_RICindicationHeader }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_28_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_29_id_RICindicationMessage }, + { "&Value", aioc__type, &asn_DEF_RICindicationSN }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_28_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_29_id_RICindicationType }, { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_29_reject }, - { "&Value", aioc__type, &asn_DEF_RICindicationMessage }, + { "&Value", aioc__type, &asn_DEF_RICindicationType }, { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_29_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_30_id_RICcallProcessID }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_30_id_RICindicationHeader }, { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_30_reject }, + { "&Value", aioc__type, &asn_DEF_RICindicationHeader }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_30_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_31_id_RICindicationMessage }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_31_reject }, + { "&Value", aioc__type, &asn_DEF_RICindicationMessage }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_31_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_32_id_RICcallProcessID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_32_reject }, { "&Value", aioc__type, &asn_DEF_RICcallProcessID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_30_optional } + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_32_optional } }; static const asn_ioc_set_t asn_IOS_RICindication_IEs_1[] = { { 8, 4, asn_IOS_RICindication_IEs_1_rows } }; -static const long asn_VAL_31_id_RICrequestID = 29; -static const long asn_VAL_31_reject = 0; -static const long asn_VAL_31_mandatory = 2; -static const long asn_VAL_32_id_RANfunctionID = 5; -static const long asn_VAL_32_reject = 0; -static const long asn_VAL_32_mandatory = 2; -static const long asn_VAL_33_id_RICcallProcessID = 20; +static const long asn_VAL_33_id_RICrequestID = 29; static const long asn_VAL_33_reject = 0; -static const long asn_VAL_33_optional = 0; -static const long asn_VAL_34_id_RICcontrolHeader = 22; +static const long asn_VAL_33_mandatory = 2; +static const long asn_VAL_34_id_RANfunctionID = 5; static const long asn_VAL_34_reject = 0; static const long asn_VAL_34_mandatory = 2; -static const long asn_VAL_35_id_RICcontrolMessage = 23; +static const long asn_VAL_35_id_RICcallProcessID = 20; static const long asn_VAL_35_reject = 0; -static const long asn_VAL_35_mandatory = 2; -static const long asn_VAL_36_id_RICcontrolAckRequest = 21; +static const long asn_VAL_35_optional = 0; +static const long asn_VAL_36_id_RICcontrolHeader = 22; static const long asn_VAL_36_reject = 0; -static const long asn_VAL_36_optional = 0; +static const long asn_VAL_36_mandatory = 2; +static const long asn_VAL_37_id_RICcontrolMessage = 23; +static const long asn_VAL_37_reject = 0; +static const long asn_VAL_37_mandatory = 2; +static const long asn_VAL_38_id_RICcontrolAckRequest = 21; +static const long asn_VAL_38_reject = 0; +static const long asn_VAL_38_optional = 0; static const asn_ioc_cell_t asn_IOS_RICcontrolRequest_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_31_id_RICrequestID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_31_reject }, - { "&Value", aioc__type, &asn_DEF_RICrequestID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_31_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_32_id_RANfunctionID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_32_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_32_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_33_id_RICcallProcessID }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_33_id_RICrequestID }, { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_33_reject }, - { "&Value", aioc__type, &asn_DEF_RICcallProcessID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_33_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_34_id_RICcontrolHeader }, + { "&Value", aioc__type, &asn_DEF_RICrequestID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_33_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_34_id_RANfunctionID }, { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_34_reject }, - { "&Value", aioc__type, &asn_DEF_RICcontrolHeader }, + { "&Value", aioc__type, &asn_DEF_RANfunctionID }, { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_34_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_35_id_RICcontrolMessage }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_35_id_RICcallProcessID }, { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_35_reject }, - { "&Value", aioc__type, &asn_DEF_RICcontrolMessage }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_35_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_36_id_RICcontrolAckRequest }, + { "&Value", aioc__type, &asn_DEF_RICcallProcessID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_35_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_36_id_RICcontrolHeader }, { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_36_reject }, + { "&Value", aioc__type, &asn_DEF_RICcontrolHeader }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_36_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_37_id_RICcontrolMessage }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_37_reject }, + { "&Value", aioc__type, &asn_DEF_RICcontrolMessage }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_37_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_38_id_RICcontrolAckRequest }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_38_reject }, { "&Value", aioc__type, &asn_DEF_RICcontrolAckRequest }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_36_optional } + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_38_optional } }; static const asn_ioc_set_t asn_IOS_RICcontrolRequest_IEs_1[] = { { 6, 4, asn_IOS_RICcontrolRequest_IEs_1_rows } }; -static const long asn_VAL_37_id_RICrequestID = 29; -static const long asn_VAL_37_reject = 0; -static const long asn_VAL_37_mandatory = 2; -static const long asn_VAL_38_id_RANfunctionID = 5; -static const long asn_VAL_38_reject = 0; -static const long asn_VAL_38_mandatory = 2; -static const long asn_VAL_39_id_RICcallProcessID = 20; +static const long asn_VAL_39_id_RICrequestID = 29; static const long asn_VAL_39_reject = 0; -static const long asn_VAL_39_optional = 0; -static const long asn_VAL_40_id_RICcontrolStatus = 24; +static const long asn_VAL_39_mandatory = 2; +static const long asn_VAL_40_id_RANfunctionID = 5; static const long asn_VAL_40_reject = 0; static const long asn_VAL_40_mandatory = 2; -static const long asn_VAL_41_id_RICcontrolOutcome = 32; +static const long asn_VAL_41_id_RICcallProcessID = 20; static const long asn_VAL_41_reject = 0; static const long asn_VAL_41_optional = 0; +static const long asn_VAL_42_id_RICcontrolOutcome = 32; +static const long asn_VAL_42_reject = 0; +static const long asn_VAL_42_optional = 0; static const asn_ioc_cell_t asn_IOS_RICcontrolAcknowledge_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_37_id_RICrequestID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_37_reject }, - { "&Value", aioc__type, &asn_DEF_RICrequestID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_37_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_38_id_RANfunctionID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_38_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_38_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_39_id_RICcallProcessID }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_39_id_RICrequestID }, { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_39_reject }, - { "&Value", aioc__type, &asn_DEF_RICcallProcessID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_39_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_40_id_RICcontrolStatus }, + { "&Value", aioc__type, &asn_DEF_RICrequestID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_39_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_40_id_RANfunctionID }, { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_40_reject }, - { "&Value", aioc__type, &asn_DEF_RICcontrolStatus }, + { "&Value", aioc__type, &asn_DEF_RANfunctionID }, { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_40_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_41_id_RICcontrolOutcome }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_41_id_RICcallProcessID }, { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_41_reject }, + { "&Value", aioc__type, &asn_DEF_RICcallProcessID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_41_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_42_id_RICcontrolOutcome }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_42_reject }, { "&Value", aioc__type, &asn_DEF_RICcontrolOutcome }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_41_optional } + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_42_optional } }; static const asn_ioc_set_t asn_IOS_RICcontrolAcknowledge_IEs_1[] = { - { 5, 4, asn_IOS_RICcontrolAcknowledge_IEs_1_rows } + { 4, 4, asn_IOS_RICcontrolAcknowledge_IEs_1_rows } }; -static const long asn_VAL_42_id_RICrequestID = 29; -static const long asn_VAL_42_reject = 0; -static const long asn_VAL_42_mandatory = 2; -static const long asn_VAL_43_id_RANfunctionID = 5; +static const long asn_VAL_43_id_RICrequestID = 29; static const long asn_VAL_43_reject = 0; static const long asn_VAL_43_mandatory = 2; -static const long asn_VAL_44_id_RICcallProcessID = 20; +static const long asn_VAL_44_id_RANfunctionID = 5; static const long asn_VAL_44_reject = 0; -static const long asn_VAL_44_optional = 0; -static const long asn_VAL_45_id_Cause = 1; -static const long asn_VAL_45_ignore = 1; -static const long asn_VAL_45_mandatory = 2; -static const long asn_VAL_46_id_RICcontrolOutcome = 32; -static const long asn_VAL_46_reject = 0; -static const long asn_VAL_46_optional = 0; +static const long asn_VAL_44_mandatory = 2; +static const long asn_VAL_45_id_RICcallProcessID = 20; +static const long asn_VAL_45_reject = 0; +static const long asn_VAL_45_optional = 0; +static const long asn_VAL_46_id_Cause = 1; +static const long asn_VAL_46_ignore = 1; +static const long asn_VAL_46_mandatory = 2; +static const long asn_VAL_47_id_RICcontrolOutcome = 32; +static const long asn_VAL_47_reject = 0; +static const long asn_VAL_47_optional = 0; static const asn_ioc_cell_t asn_IOS_RICcontrolFailure_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_42_id_RICrequestID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_42_reject }, - { "&Value", aioc__type, &asn_DEF_RICrequestID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_42_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_43_id_RANfunctionID }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_43_id_RICrequestID }, { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_43_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionID }, + { "&Value", aioc__type, &asn_DEF_RICrequestID }, { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_43_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_44_id_RICcallProcessID }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_44_id_RANfunctionID }, { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_44_reject }, + { "&Value", aioc__type, &asn_DEF_RANfunctionID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_44_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_45_id_RICcallProcessID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_45_reject }, { "&Value", aioc__type, &asn_DEF_RICcallProcessID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_44_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_45_id_Cause }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_45_ignore }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_45_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_46_id_Cause }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_46_ignore }, { "&Value", aioc__type, &asn_DEF_Cause }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_45_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_46_id_RICcontrolOutcome }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_46_reject }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_46_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_47_id_RICcontrolOutcome }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_47_reject }, { "&Value", aioc__type, &asn_DEF_RICcontrolOutcome }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_46_optional } + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_47_optional } }; static const asn_ioc_set_t asn_IOS_RICcontrolFailure_IEs_1[] = { { 5, 4, asn_IOS_RICcontrolFailure_IEs_1_rows } }; -static const long asn_VAL_47_id_RICrequestID = 29; -static const long asn_VAL_47_reject = 0; -static const long asn_VAL_47_optional = 0; -static const long asn_VAL_48_id_RANfunctionID = 5; +static const long asn_VAL_48_id_TransactionID = 49; static const long asn_VAL_48_reject = 0; static const long asn_VAL_48_optional = 0; -static const long asn_VAL_49_id_Cause = 1; -static const long asn_VAL_49_ignore = 1; +static const long asn_VAL_49_id_RICrequestID = 29; +static const long asn_VAL_49_reject = 0; static const long asn_VAL_49_optional = 0; -static const long asn_VAL_50_id_CriticalityDiagnostics = 2; -static const long asn_VAL_50_ignore = 1; +static const long asn_VAL_50_id_RANfunctionID = 5; +static const long asn_VAL_50_reject = 0; static const long asn_VAL_50_optional = 0; +static const long asn_VAL_51_id_Cause = 1; +static const long asn_VAL_51_ignore = 1; +static const long asn_VAL_51_optional = 0; +static const long asn_VAL_52_id_CriticalityDiagnostics = 2; +static const long asn_VAL_52_ignore = 1; +static const long asn_VAL_52_optional = 0; static const asn_ioc_cell_t asn_IOS_ErrorIndication_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_47_id_RICrequestID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_47_reject }, - { "&Value", aioc__type, &asn_DEF_RICrequestID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_47_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_48_id_RANfunctionID }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_48_id_TransactionID }, { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_48_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionID }, + { "&Value", aioc__type, &asn_DEF_TransactionID }, { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_48_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_49_id_Cause }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_49_ignore }, - { "&Value", aioc__type, &asn_DEF_Cause }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_49_id_RICrequestID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_49_reject }, + { "&Value", aioc__type, &asn_DEF_RICrequestID }, { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_49_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_50_id_CriticalityDiagnostics }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_50_ignore }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_50_id_RANfunctionID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_50_reject }, + { "&Value", aioc__type, &asn_DEF_RANfunctionID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_50_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_51_id_Cause }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_51_ignore }, + { "&Value", aioc__type, &asn_DEF_Cause }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_51_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_52_id_CriticalityDiagnostics }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_52_ignore }, { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_50_optional } + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_52_optional } }; static const asn_ioc_set_t asn_IOS_ErrorIndication_IEs_1[] = { - { 4, 4, asn_IOS_ErrorIndication_IEs_1_rows } + { 5, 4, asn_IOS_ErrorIndication_IEs_1_rows } }; -static const long asn_VAL_51_id_GlobalE2node_ID = 3; -static const long asn_VAL_51_reject = 0; -static const long asn_VAL_51_mandatory = 2; -static const long asn_VAL_52_id_RANfunctionsAdded = 10; -static const long asn_VAL_52_reject = 0; -static const long asn_VAL_52_optional = 0; -static const long asn_VAL_53_id_E2nodeComponentConfigUpdate = 33; +static const long asn_VAL_53_id_TransactionID = 49; static const long asn_VAL_53_reject = 0; -static const long asn_VAL_53_optional = 0; +static const long asn_VAL_53_mandatory = 2; +static const long asn_VAL_54_id_GlobalE2node_ID = 3; +static const long asn_VAL_54_reject = 0; +static const long asn_VAL_54_mandatory = 2; +static const long asn_VAL_55_id_RANfunctionsAdded = 10; +static const long asn_VAL_55_reject = 0; +static const long asn_VAL_55_mandatory = 2; +static const long asn_VAL_56_id_E2nodeComponentConfigAddition = 50; +static const long asn_VAL_56_reject = 0; +static const long asn_VAL_56_mandatory = 2; static const asn_ioc_cell_t asn_IOS_E2setupRequestIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_51_id_GlobalE2node_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_51_reject }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_53_id_TransactionID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_53_reject }, + { "&Value", aioc__type, &asn_DEF_TransactionID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_53_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_54_id_GlobalE2node_ID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_54_reject }, { "&Value", aioc__type, &asn_DEF_GlobalE2node_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_51_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_52_id_RANfunctionsAdded }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_52_reject }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_54_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_55_id_RANfunctionsAdded }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_55_reject }, { "&Value", aioc__type, &asn_DEF_RANfunctions_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_52_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_53_id_E2nodeComponentConfigUpdate }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_53_reject }, - { "&Value", aioc__type, &asn_DEF_E2nodeComponentConfigUpdate_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_53_optional } + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_55_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_56_id_E2nodeComponentConfigAddition }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_56_reject }, + { "&Value", aioc__type, &asn_DEF_E2nodeComponentConfigAddition_List }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_56_mandatory } }; static const asn_ioc_set_t asn_IOS_E2setupRequestIEs_1[] = { - { 3, 4, asn_IOS_E2setupRequestIEs_1_rows } + { 4, 4, asn_IOS_E2setupRequestIEs_1_rows } }; -static const long asn_VAL_54_id_GlobalRIC_ID = 4; -static const long asn_VAL_54_reject = 0; -static const long asn_VAL_54_mandatory = 2; -static const long asn_VAL_55_id_RANfunctionsAccepted = 9; -static const long asn_VAL_55_reject = 0; -static const long asn_VAL_55_optional = 0; -static const long asn_VAL_56_id_RANfunctionsRejected = 13; -static const long asn_VAL_56_reject = 0; -static const long asn_VAL_56_optional = 0; -static const long asn_VAL_57_id_E2nodeComponentConfigUpdateAck = 35; +static const long asn_VAL_57_id_TransactionID = 49; static const long asn_VAL_57_reject = 0; -static const long asn_VAL_57_optional = 0; +static const long asn_VAL_57_mandatory = 2; +static const long asn_VAL_58_id_GlobalRIC_ID = 4; +static const long asn_VAL_58_reject = 0; +static const long asn_VAL_58_mandatory = 2; +static const long asn_VAL_59_id_RANfunctionsAccepted = 9; +static const long asn_VAL_59_reject = 0; +static const long asn_VAL_59_optional = 0; +static const long asn_VAL_60_id_RANfunctionsRejected = 13; +static const long asn_VAL_60_reject = 0; +static const long asn_VAL_60_optional = 0; +static const long asn_VAL_61_id_E2nodeComponentConfigAdditionAck = 52; +static const long asn_VAL_61_reject = 0; +static const long asn_VAL_61_mandatory = 2; static const asn_ioc_cell_t asn_IOS_E2setupResponseIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_54_id_GlobalRIC_ID }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_54_reject }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_57_id_TransactionID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_57_reject }, + { "&Value", aioc__type, &asn_DEF_TransactionID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_57_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_58_id_GlobalRIC_ID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_58_reject }, { "&Value", aioc__type, &asn_DEF_GlobalRIC_ID }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_54_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_55_id_RANfunctionsAccepted }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_55_reject }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_58_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_59_id_RANfunctionsAccepted }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_59_reject }, { "&Value", aioc__type, &asn_DEF_RANfunctionsID_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_55_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_56_id_RANfunctionsRejected }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_56_reject }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_59_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_60_id_RANfunctionsRejected }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_60_reject }, { "&Value", aioc__type, &asn_DEF_RANfunctionsIDcause_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_56_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_57_id_E2nodeComponentConfigUpdateAck }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_57_reject }, - { "&Value", aioc__type, &asn_DEF_E2nodeComponentConfigUpdateAck_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_57_optional } + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_60_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_61_id_E2nodeComponentConfigAdditionAck }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_61_reject }, + { "&Value", aioc__type, &asn_DEF_E2nodeComponentConfigAdditionAck_List }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_61_mandatory } }; static const asn_ioc_set_t asn_IOS_E2setupResponseIEs_1[] = { - { 4, 4, asn_IOS_E2setupResponseIEs_1_rows } + { 5, 4, asn_IOS_E2setupResponseIEs_1_rows } }; -static const long asn_VAL_58_id_Cause = 1; -static const long asn_VAL_58_ignore = 1; -static const long asn_VAL_58_mandatory = 2; -static const long asn_VAL_59_id_TimeToWait = 31; -static const long asn_VAL_59_ignore = 1; -static const long asn_VAL_59_optional = 0; -static const long asn_VAL_60_id_CriticalityDiagnostics = 2; -static const long asn_VAL_60_ignore = 1; -static const long asn_VAL_60_optional = 0; -static const long asn_VAL_61_id_TNLinformation = 48; -static const long asn_VAL_61_ignore = 1; -static const long asn_VAL_61_optional = 0; +static const long asn_VAL_62_id_TransactionID = 49; +static const long asn_VAL_62_reject = 0; +static const long asn_VAL_62_mandatory = 2; +static const long asn_VAL_63_id_Cause = 1; +static const long asn_VAL_63_ignore = 1; +static const long asn_VAL_63_mandatory = 2; +static const long asn_VAL_64_id_TimeToWait = 31; +static const long asn_VAL_64_ignore = 1; +static const long asn_VAL_64_optional = 0; +static const long asn_VAL_65_id_CriticalityDiagnostics = 2; +static const long asn_VAL_65_ignore = 1; +static const long asn_VAL_65_optional = 0; +static const long asn_VAL_66_id_TNLinformation = 48; +static const long asn_VAL_66_ignore = 1; +static const long asn_VAL_66_optional = 0; static const asn_ioc_cell_t asn_IOS_E2setupFailureIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_58_id_Cause }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_58_ignore }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_62_id_TransactionID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_62_reject }, + { "&Value", aioc__type, &asn_DEF_TransactionID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_62_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_63_id_Cause }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_63_ignore }, { "&Value", aioc__type, &asn_DEF_Cause }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_58_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_59_id_TimeToWait }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_59_ignore }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_63_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_64_id_TimeToWait }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_64_ignore }, { "&Value", aioc__type, &asn_DEF_TimeToWait }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_59_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_60_id_CriticalityDiagnostics }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_60_ignore }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_64_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_65_id_CriticalityDiagnostics }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_65_ignore }, { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_60_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_61_id_TNLinformation }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_61_ignore }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_65_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_66_id_TNLinformation }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_66_ignore }, { "&Value", aioc__type, &asn_DEF_TNLinformation }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_61_optional } + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_66_optional } }; static const asn_ioc_set_t asn_IOS_E2setupFailureIEs_1[] = { - { 4, 4, asn_IOS_E2setupFailureIEs_1_rows } + { 5, 4, asn_IOS_E2setupFailureIEs_1_rows } }; -static const long asn_VAL_62_id_E2connectionUpdateAdd = 44; -static const long asn_VAL_62_reject = 0; -static const long asn_VAL_62_optional = 0; -static const long asn_VAL_63_id_E2connectionUpdateRemove = 46; -static const long asn_VAL_63_reject = 0; -static const long asn_VAL_63_optional = 0; -static const long asn_VAL_64_id_E2connectionUpdateModify = 45; -static const long asn_VAL_64_reject = 0; -static const long asn_VAL_64_optional = 0; +static const long asn_VAL_67_id_TransactionID = 49; +static const long asn_VAL_67_reject = 0; +static const long asn_VAL_67_mandatory = 2; +static const long asn_VAL_68_id_E2connectionUpdateAdd = 44; +static const long asn_VAL_68_reject = 0; +static const long asn_VAL_68_optional = 0; +static const long asn_VAL_69_id_E2connectionUpdateRemove = 46; +static const long asn_VAL_69_reject = 0; +static const long asn_VAL_69_optional = 0; +static const long asn_VAL_70_id_E2connectionUpdateModify = 45; +static const long asn_VAL_70_reject = 0; +static const long asn_VAL_70_optional = 0; static const asn_ioc_cell_t asn_IOS_E2connectionUpdate_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_62_id_E2connectionUpdateAdd }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_62_reject }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_67_id_TransactionID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_67_reject }, + { "&Value", aioc__type, &asn_DEF_TransactionID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_67_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_68_id_E2connectionUpdateAdd }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_68_reject }, { "&Value", aioc__type, &asn_DEF_E2connectionUpdate_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_62_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_63_id_E2connectionUpdateRemove }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_63_reject }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_68_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_69_id_E2connectionUpdateRemove }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_69_reject }, { "&Value", aioc__type, &asn_DEF_E2connectionUpdateRemove_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_63_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_64_id_E2connectionUpdateModify }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_64_reject }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_69_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_70_id_E2connectionUpdateModify }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_70_reject }, { "&Value", aioc__type, &asn_DEF_E2connectionUpdate_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_64_optional } + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_70_optional } }; static const asn_ioc_set_t asn_IOS_E2connectionUpdate_IEs_1[] = { - { 3, 4, asn_IOS_E2connectionUpdate_IEs_1_rows } + { 4, 4, asn_IOS_E2connectionUpdate_IEs_1_rows } }; -static const long asn_VAL_67_id_E2connectionSetup = 39; -static const long asn_VAL_67_reject = 0; -static const long asn_VAL_67_optional = 0; -static const long asn_VAL_68_id_E2connectionSetupFailed = 40; -static const long asn_VAL_68_reject = 0; -static const long asn_VAL_68_optional = 0; +static const long asn_VAL_73_id_TransactionID = 49; +static const long asn_VAL_73_reject = 0; +static const long asn_VAL_73_mandatory = 2; +static const long asn_VAL_74_id_E2connectionSetup = 39; +static const long asn_VAL_74_reject = 0; +static const long asn_VAL_74_optional = 0; +static const long asn_VAL_75_id_E2connectionSetupFailed = 40; +static const long asn_VAL_75_reject = 0; +static const long asn_VAL_75_optional = 0; static const asn_ioc_cell_t asn_IOS_E2connectionUpdateAck_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_67_id_E2connectionSetup }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_67_reject }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_73_id_TransactionID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_73_reject }, + { "&Value", aioc__type, &asn_DEF_TransactionID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_73_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_74_id_E2connectionSetup }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_74_reject }, { "&Value", aioc__type, &asn_DEF_E2connectionUpdate_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_67_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_68_id_E2connectionSetupFailed }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_68_reject }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_74_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_75_id_E2connectionSetupFailed }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_75_reject }, { "&Value", aioc__type, &asn_DEF_E2connectionSetupFailed_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_68_optional } + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_75_optional } }; static const asn_ioc_set_t asn_IOS_E2connectionUpdateAck_IEs_1[] = { - { 2, 4, asn_IOS_E2connectionUpdateAck_IEs_1_rows } + { 3, 4, asn_IOS_E2connectionUpdateAck_IEs_1_rows } }; -static const long asn_VAL_70_id_Cause = 1; -static const long asn_VAL_70_reject = 0; -static const long asn_VAL_70_optional = 0; -static const long asn_VAL_71_id_TimeToWait = 31; -static const long asn_VAL_71_ignore = 1; -static const long asn_VAL_71_optional = 0; -static const long asn_VAL_72_id_CriticalityDiagnostics = 2; -static const long asn_VAL_72_ignore = 1; -static const long asn_VAL_72_optional = 0; +static const long asn_VAL_77_id_TransactionID = 49; +static const long asn_VAL_77_reject = 0; +static const long asn_VAL_77_mandatory = 2; +static const long asn_VAL_78_id_Cause = 1; +static const long asn_VAL_78_reject = 0; +static const long asn_VAL_78_optional = 0; +static const long asn_VAL_79_id_TimeToWait = 31; +static const long asn_VAL_79_ignore = 1; +static const long asn_VAL_79_optional = 0; +static const long asn_VAL_80_id_CriticalityDiagnostics = 2; +static const long asn_VAL_80_ignore = 1; +static const long asn_VAL_80_optional = 0; static const asn_ioc_cell_t asn_IOS_E2connectionUpdateFailure_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_70_id_Cause }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_70_reject }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_77_id_TransactionID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_77_reject }, + { "&Value", aioc__type, &asn_DEF_TransactionID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_77_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_78_id_Cause }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_78_reject }, { "&Value", aioc__type, &asn_DEF_Cause }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_70_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_71_id_TimeToWait }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_71_ignore }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_78_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_79_id_TimeToWait }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_79_ignore }, { "&Value", aioc__type, &asn_DEF_TimeToWait }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_71_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_72_id_CriticalityDiagnostics }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_72_ignore }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_79_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_80_id_CriticalityDiagnostics }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_80_ignore }, { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_72_optional } + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_80_optional } }; static const asn_ioc_set_t asn_IOS_E2connectionUpdateFailure_IEs_1[] = { - { 3, 4, asn_IOS_E2connectionUpdateFailure_IEs_1_rows } + { 4, 4, asn_IOS_E2connectionUpdateFailure_IEs_1_rows } }; -static const long asn_VAL_73_id_E2nodeComponentConfigUpdate = 33; -static const long asn_VAL_73_reject = 0; -static const long asn_VAL_73_optional = 0; +static const long asn_VAL_81_id_TransactionID = 49; +static const long asn_VAL_81_reject = 0; +static const long asn_VAL_81_mandatory = 2; +static const long asn_VAL_82_id_GlobalE2node_ID = 3; +static const long asn_VAL_82_reject = 0; +static const long asn_VAL_82_optional = 0; +static const long asn_VAL_83_id_E2nodeComponentConfigAddition = 50; +static const long asn_VAL_83_reject = 0; +static const long asn_VAL_83_optional = 0; +static const long asn_VAL_84_id_E2nodeComponentConfigUpdate = 33; +static const long asn_VAL_84_reject = 0; +static const long asn_VAL_84_optional = 0; +static const long asn_VAL_85_id_E2nodeComponentConfigRemoval = 54; +static const long asn_VAL_85_reject = 0; +static const long asn_VAL_85_optional = 0; +static const long asn_VAL_86_id_E2nodeTNLassociationRemoval = 58; +static const long asn_VAL_86_reject = 0; +static const long asn_VAL_86_optional = 0; static const asn_ioc_cell_t asn_IOS_E2nodeConfigurationUpdate_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_73_id_E2nodeComponentConfigUpdate }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_73_reject }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_81_id_TransactionID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_81_reject }, + { "&Value", aioc__type, &asn_DEF_TransactionID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_81_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_82_id_GlobalE2node_ID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_82_reject }, + { "&Value", aioc__type, &asn_DEF_GlobalE2node_ID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_82_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_83_id_E2nodeComponentConfigAddition }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_83_reject }, + { "&Value", aioc__type, &asn_DEF_E2nodeComponentConfigAddition_List }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_83_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_84_id_E2nodeComponentConfigUpdate }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_84_reject }, { "&Value", aioc__type, &asn_DEF_E2nodeComponentConfigUpdate_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_73_optional } + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_84_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_85_id_E2nodeComponentConfigRemoval }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_85_reject }, + { "&Value", aioc__type, &asn_DEF_E2nodeComponentConfigRemoval_List }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_85_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_86_id_E2nodeTNLassociationRemoval }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_86_reject }, + { "&Value", aioc__type, &asn_DEF_E2nodeTNLassociationRemoval_List }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_86_optional } }; static const asn_ioc_set_t asn_IOS_E2nodeConfigurationUpdate_IEs_1[] = { - { 1, 4, asn_IOS_E2nodeConfigurationUpdate_IEs_1_rows } + { 6, 4, asn_IOS_E2nodeConfigurationUpdate_IEs_1_rows } }; -static const long asn_VAL_75_id_E2nodeComponentConfigUpdateAck = 35; -static const long asn_VAL_75_reject = 0; -static const long asn_VAL_75_optional = 0; +static const long asn_VAL_91_id_TransactionID = 49; +static const long asn_VAL_91_reject = 0; +static const long asn_VAL_91_mandatory = 2; +static const long asn_VAL_92_id_E2nodeComponentConfigAdditionAck = 52; +static const long asn_VAL_92_reject = 0; +static const long asn_VAL_92_optional = 0; +static const long asn_VAL_93_id_E2nodeComponentConfigUpdateAck = 35; +static const long asn_VAL_93_reject = 0; +static const long asn_VAL_93_optional = 0; +static const long asn_VAL_94_id_E2nodeComponentConfigRemovalAck = 56; +static const long asn_VAL_94_reject = 0; +static const long asn_VAL_94_optional = 0; static const asn_ioc_cell_t asn_IOS_E2nodeConfigurationUpdateAcknowledge_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_75_id_E2nodeComponentConfigUpdateAck }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_75_reject }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_91_id_TransactionID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_91_reject }, + { "&Value", aioc__type, &asn_DEF_TransactionID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_91_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_92_id_E2nodeComponentConfigAdditionAck }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_92_reject }, + { "&Value", aioc__type, &asn_DEF_E2nodeComponentConfigAdditionAck_List }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_92_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_93_id_E2nodeComponentConfigUpdateAck }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_93_reject }, { "&Value", aioc__type, &asn_DEF_E2nodeComponentConfigUpdateAck_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_75_optional } + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_93_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_94_id_E2nodeComponentConfigRemovalAck }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_94_reject }, + { "&Value", aioc__type, &asn_DEF_E2nodeComponentConfigRemovalAck_List }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_94_optional } }; static const asn_ioc_set_t asn_IOS_E2nodeConfigurationUpdateAcknowledge_IEs_1[] = { - { 1, 4, asn_IOS_E2nodeConfigurationUpdateAcknowledge_IEs_1_rows } -}; -static const long asn_VAL_77_id_Cause = 1; -static const long asn_VAL_77_ignore = 1; -static const long asn_VAL_77_mandatory = 2; -static const long asn_VAL_78_id_TimeToWait = 31; -static const long asn_VAL_78_ignore = 1; -static const long asn_VAL_78_optional = 0; -static const long asn_VAL_79_id_CriticalityDiagnostics = 2; -static const long asn_VAL_79_ignore = 1; -static const long asn_VAL_79_optional = 0; + { 4, 4, asn_IOS_E2nodeConfigurationUpdateAcknowledge_IEs_1_rows } +}; +static const long asn_VAL_98_id_TransactionID = 49; +static const long asn_VAL_98_reject = 0; +static const long asn_VAL_98_mandatory = 2; +static const long asn_VAL_99_id_Cause = 1; +static const long asn_VAL_99_ignore = 1; +static const long asn_VAL_99_mandatory = 2; +static const long asn_VAL_100_id_TimeToWait = 31; +static const long asn_VAL_100_ignore = 1; +static const long asn_VAL_100_optional = 0; +static const long asn_VAL_101_id_CriticalityDiagnostics = 2; +static const long asn_VAL_101_ignore = 1; +static const long asn_VAL_101_optional = 0; static const asn_ioc_cell_t asn_IOS_E2nodeConfigurationUpdateFailure_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_77_id_Cause }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_77_ignore }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_98_id_TransactionID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_98_reject }, + { "&Value", aioc__type, &asn_DEF_TransactionID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_98_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_99_id_Cause }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_99_ignore }, { "&Value", aioc__type, &asn_DEF_Cause }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_77_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_78_id_TimeToWait }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_78_ignore }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_99_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_100_id_TimeToWait }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_100_ignore }, { "&Value", aioc__type, &asn_DEF_TimeToWait }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_78_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_79_id_CriticalityDiagnostics }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_79_ignore }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_100_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_101_id_CriticalityDiagnostics }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_101_ignore }, { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_79_optional } + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_101_optional } }; static const asn_ioc_set_t asn_IOS_E2nodeConfigurationUpdateFailure_IEs_1[] = { - { 3, 4, asn_IOS_E2nodeConfigurationUpdateFailure_IEs_1_rows } -}; -static const long asn_VAL_80_id_Cause = 1; -static const long asn_VAL_80_ignore = 1; -static const long asn_VAL_80_mandatory = 2; + { 4, 4, asn_IOS_E2nodeConfigurationUpdateFailure_IEs_1_rows } +}; +static const long asn_VAL_102_id_TransactionID = 49; +static const long asn_VAL_102_reject = 0; +static const long asn_VAL_102_mandatory = 2; +static const long asn_VAL_103_id_Cause = 1; +static const long asn_VAL_103_ignore = 1; +static const long asn_VAL_103_mandatory = 2; static const asn_ioc_cell_t asn_IOS_ResetRequestIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_80_id_Cause }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_80_ignore }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_102_id_TransactionID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_102_reject }, + { "&Value", aioc__type, &asn_DEF_TransactionID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_102_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_103_id_Cause }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_103_ignore }, { "&Value", aioc__type, &asn_DEF_Cause }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_80_mandatory } + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_103_mandatory } }; static const asn_ioc_set_t asn_IOS_ResetRequestIEs_1[] = { - { 1, 4, asn_IOS_ResetRequestIEs_1_rows } -}; -static const long asn_VAL_81_id_CriticalityDiagnostics = 2; -static const long asn_VAL_81_ignore = 1; -static const long asn_VAL_81_optional = 0; + { 2, 4, asn_IOS_ResetRequestIEs_1_rows } +}; +static const long asn_VAL_104_id_TransactionID = 49; +static const long asn_VAL_104_reject = 0; +static const long asn_VAL_104_mandatory = 2; +static const long asn_VAL_105_id_CriticalityDiagnostics = 2; +static const long asn_VAL_105_ignore = 1; +static const long asn_VAL_105_optional = 0; static const asn_ioc_cell_t asn_IOS_ResetResponseIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_81_id_CriticalityDiagnostics }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_81_ignore }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_104_id_TransactionID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_104_reject }, + { "&Value", aioc__type, &asn_DEF_TransactionID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_104_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_105_id_CriticalityDiagnostics }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_105_ignore }, { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_81_optional } + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_105_optional } }; static const asn_ioc_set_t asn_IOS_ResetResponseIEs_1[] = { - { 1, 4, asn_IOS_ResetResponseIEs_1_rows } -}; -static const long asn_VAL_82_id_RANfunctionsAdded = 10; -static const long asn_VAL_82_reject = 0; -static const long asn_VAL_82_optional = 0; -static const long asn_VAL_83_id_RANfunctionsModified = 12; -static const long asn_VAL_83_reject = 0; -static const long asn_VAL_83_optional = 0; -static const long asn_VAL_84_id_RANfunctionsDeleted = 11; -static const long asn_VAL_84_reject = 0; -static const long asn_VAL_84_optional = 0; + { 2, 4, asn_IOS_ResetResponseIEs_1_rows } +}; +static const long asn_VAL_106_id_TransactionID = 49; +static const long asn_VAL_106_reject = 0; +static const long asn_VAL_106_mandatory = 2; +static const long asn_VAL_107_id_RANfunctionsAdded = 10; +static const long asn_VAL_107_reject = 0; +static const long asn_VAL_107_optional = 0; +static const long asn_VAL_108_id_RANfunctionsModified = 12; +static const long asn_VAL_108_reject = 0; +static const long asn_VAL_108_optional = 0; +static const long asn_VAL_109_id_RANfunctionsDeleted = 11; +static const long asn_VAL_109_reject = 0; +static const long asn_VAL_109_optional = 0; static const asn_ioc_cell_t asn_IOS_RICserviceUpdate_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_82_id_RANfunctionsAdded }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_82_reject }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_106_id_TransactionID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_106_reject }, + { "&Value", aioc__type, &asn_DEF_TransactionID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_106_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_107_id_RANfunctionsAdded }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_107_reject }, { "&Value", aioc__type, &asn_DEF_RANfunctions_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_82_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_83_id_RANfunctionsModified }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_83_reject }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_107_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_108_id_RANfunctionsModified }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_108_reject }, { "&Value", aioc__type, &asn_DEF_RANfunctions_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_83_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_84_id_RANfunctionsDeleted }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_84_reject }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_108_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_109_id_RANfunctionsDeleted }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_109_reject }, { "&Value", aioc__type, &asn_DEF_RANfunctionsID_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_84_optional } + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_109_optional } }; static const asn_ioc_set_t asn_IOS_RICserviceUpdate_IEs_1[] = { - { 3, 4, asn_IOS_RICserviceUpdate_IEs_1_rows } -}; -static const long asn_VAL_87_id_RANfunctionsAccepted = 9; -static const long asn_VAL_87_reject = 0; -static const long asn_VAL_87_optional = 0; -static const long asn_VAL_88_id_RANfunctionsRejected = 13; -static const long asn_VAL_88_reject = 0; -static const long asn_VAL_88_optional = 0; + { 4, 4, asn_IOS_RICserviceUpdate_IEs_1_rows } +}; +static const long asn_VAL_112_id_TransactionID = 49; +static const long asn_VAL_112_reject = 0; +static const long asn_VAL_112_mandatory = 2; +static const long asn_VAL_113_id_RANfunctionsAccepted = 9; +static const long asn_VAL_113_reject = 0; +static const long asn_VAL_113_mandatory = 2; +static const long asn_VAL_114_id_RANfunctionsRejected = 13; +static const long asn_VAL_114_reject = 0; +static const long asn_VAL_114_optional = 0; static const asn_ioc_cell_t asn_IOS_RICserviceUpdateAcknowledge_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_87_id_RANfunctionsAccepted }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_87_reject }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_112_id_TransactionID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_112_reject }, + { "&Value", aioc__type, &asn_DEF_TransactionID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_112_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_113_id_RANfunctionsAccepted }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_113_reject }, { "&Value", aioc__type, &asn_DEF_RANfunctionsID_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_87_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_88_id_RANfunctionsRejected }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_88_reject }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_113_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_114_id_RANfunctionsRejected }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_114_reject }, { "&Value", aioc__type, &asn_DEF_RANfunctionsIDcause_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_88_optional } + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_114_optional } }; static const asn_ioc_set_t asn_IOS_RICserviceUpdateAcknowledge_IEs_1[] = { - { 2, 4, asn_IOS_RICserviceUpdateAcknowledge_IEs_1_rows } -}; -static const long asn_VAL_90_id_RANfunctionsRejected = 13; -static const long asn_VAL_90_ignore = 1; -static const long asn_VAL_90_optional = 0; -static const long asn_VAL_91_id_TimeToWait = 31; -static const long asn_VAL_91_ignore = 1; -static const long asn_VAL_91_optional = 0; -static const long asn_VAL_92_id_CriticalityDiagnostics = 2; -static const long asn_VAL_92_ignore = 1; -static const long asn_VAL_92_optional = 0; + { 3, 4, asn_IOS_RICserviceUpdateAcknowledge_IEs_1_rows } +}; +static const long asn_VAL_116_id_TransactionID = 49; +static const long asn_VAL_116_reject = 0; +static const long asn_VAL_116_mandatory = 2; +static const long asn_VAL_117_id_Cause = 1; +static const long asn_VAL_117_reject = 0; +static const long asn_VAL_117_mandatory = 2; +static const long asn_VAL_118_id_TimeToWait = 31; +static const long asn_VAL_118_ignore = 1; +static const long asn_VAL_118_optional = 0; +static const long asn_VAL_119_id_CriticalityDiagnostics = 2; +static const long asn_VAL_119_ignore = 1; +static const long asn_VAL_119_optional = 0; static const asn_ioc_cell_t asn_IOS_RICserviceUpdateFailure_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_90_id_RANfunctionsRejected }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_90_ignore }, - { "&Value", aioc__type, &asn_DEF_RANfunctionsIDcause_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_90_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_91_id_TimeToWait }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_91_ignore }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_116_id_TransactionID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_116_reject }, + { "&Value", aioc__type, &asn_DEF_TransactionID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_116_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_117_id_Cause }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_117_reject }, + { "&Value", aioc__type, &asn_DEF_Cause }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_117_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_118_id_TimeToWait }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_118_ignore }, { "&Value", aioc__type, &asn_DEF_TimeToWait }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_91_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_92_id_CriticalityDiagnostics }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_92_ignore }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_118_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_119_id_CriticalityDiagnostics }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_119_ignore }, { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_92_optional } + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_119_optional } }; static const asn_ioc_set_t asn_IOS_RICserviceUpdateFailure_IEs_1[] = { - { 3, 4, asn_IOS_RICserviceUpdateFailure_IEs_1_rows } -}; -static const long asn_VAL_93_id_RANfunctionsAccepted = 9; -static const long asn_VAL_93_reject = 0; -static const long asn_VAL_93_optional = 0; + { 4, 4, asn_IOS_RICserviceUpdateFailure_IEs_1_rows } +}; +static const long asn_VAL_120_id_TransactionID = 49; +static const long asn_VAL_120_reject = 0; +static const long asn_VAL_120_mandatory = 2; +static const long asn_VAL_121_id_RANfunctionsAccepted = 9; +static const long asn_VAL_121_reject = 0; +static const long asn_VAL_121_optional = 0; static const asn_ioc_cell_t asn_IOS_RICserviceQuery_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_93_id_RANfunctionsAccepted }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_93_reject }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_120_id_TransactionID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_120_reject }, + { "&Value", aioc__type, &asn_DEF_TransactionID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_120_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_121_id_RANfunctionsAccepted }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_121_reject }, { "&Value", aioc__type, &asn_DEF_RANfunctionsID_List }, - { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_93_optional } + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_121_optional } }; static const asn_ioc_set_t asn_IOS_RICserviceQuery_IEs_1[] = { - { 1, 4, asn_IOS_RICserviceQuery_IEs_1_rows } + { 2, 4, asn_IOS_RICserviceQuery_IEs_1_rows } }; static int memb_id_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, @@ -1220,13 +1451,13 @@ memb_id_constraint_13(const asn_TYPE_descriptor_t *td, const void *sptr, } static asn_type_selector_result_t -select_E2connectionUpdate_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_RICsubscription_withCause_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E2connectionUpdate_ItemIEs_1; + const asn_ioc_set_t *itable = asn_IOS_RICsubscription_withCause_ItemIEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 1; /* &criticality */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2connectionUpdate_ItemIEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscription_withCause_ItemIEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -1266,13 +1497,13 @@ memb_criticality_constraint_13(const asn_TYPE_descriptor_t *td, const void *sptr } static asn_type_selector_result_t -select_E2connectionUpdate_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_RICsubscription_withCause_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E2connectionUpdate_ItemIEs_1; + const asn_ioc_set_t *itable = asn_IOS_RICsubscription_withCause_ItemIEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 2; /* &Value */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2connectionUpdate_ItemIEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscription_withCause_ItemIEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -1337,13 +1568,13 @@ memb_id_constraint_17(const asn_TYPE_descriptor_t *td, const void *sptr, } static asn_type_selector_result_t -select_E2connectionUpdateRemove_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_E2connectionUpdate_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E2connectionUpdateRemove_ItemIEs_1; + const asn_ioc_set_t *itable = asn_IOS_E2connectionUpdate_ItemIEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 1; /* &criticality */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2connectionUpdateRemove_ItemIEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2connectionUpdate_ItemIEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -1383,13 +1614,13 @@ memb_criticality_constraint_17(const asn_TYPE_descriptor_t *td, const void *sptr } static asn_type_selector_result_t -select_E2connectionUpdateRemove_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_E2connectionUpdate_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E2connectionUpdateRemove_ItemIEs_1; + const asn_ioc_set_t *itable = asn_IOS_E2connectionUpdate_ItemIEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 2; /* &Value */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2connectionUpdateRemove_ItemIEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2connectionUpdate_ItemIEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -1454,13 +1685,13 @@ memb_id_constraint_21(const asn_TYPE_descriptor_t *td, const void *sptr, } static asn_type_selector_result_t -select_E2connectionSetupFailed_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_E2connectionUpdateRemove_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E2connectionSetupFailed_ItemIEs_1; + const asn_ioc_set_t *itable = asn_IOS_E2connectionUpdateRemove_ItemIEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 1; /* &criticality */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2connectionSetupFailed_ItemIEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2connectionUpdateRemove_ItemIEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -1500,13 +1731,13 @@ memb_criticality_constraint_21(const asn_TYPE_descriptor_t *td, const void *sptr } static asn_type_selector_result_t -select_E2connectionSetupFailed_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_E2connectionUpdateRemove_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E2connectionSetupFailed_ItemIEs_1; + const asn_ioc_set_t *itable = asn_IOS_E2connectionUpdateRemove_ItemIEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 2; /* &Value */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2connectionSetupFailed_ItemIEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2connectionUpdateRemove_ItemIEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -1571,13 +1802,13 @@ memb_id_constraint_25(const asn_TYPE_descriptor_t *td, const void *sptr, } static asn_type_selector_result_t -select_E2nodeComponentConfigUpdate_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_E2connectionSetupFailed_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E2nodeComponentConfigUpdate_ItemIEs_1; + const asn_ioc_set_t *itable = asn_IOS_E2connectionSetupFailed_ItemIEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 1; /* &criticality */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2nodeComponentConfigUpdate_ItemIEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2connectionSetupFailed_ItemIEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -1617,13 +1848,13 @@ memb_criticality_constraint_25(const asn_TYPE_descriptor_t *td, const void *sptr } static asn_type_selector_result_t -select_E2nodeComponentConfigUpdate_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_E2connectionSetupFailed_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E2nodeComponentConfigUpdate_ItemIEs_1; + const asn_ioc_set_t *itable = asn_IOS_E2connectionSetupFailed_ItemIEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 2; /* &Value */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2nodeComponentConfigUpdate_ItemIEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2connectionSetupFailed_ItemIEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -1688,13 +1919,13 @@ memb_id_constraint_29(const asn_TYPE_descriptor_t *td, const void *sptr, } static asn_type_selector_result_t -select_E2nodeComponentConfigUpdateAck_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_E2nodeComponentConfigAddition_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E2nodeComponentConfigUpdateAck_ItemIEs_1; + const asn_ioc_set_t *itable = asn_IOS_E2nodeComponentConfigAddition_ItemIEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 1; /* &criticality */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2nodeComponentConfigUpdateAck_ItemIEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2nodeComponentConfigAddition_ItemIEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -1734,13 +1965,13 @@ memb_criticality_constraint_29(const asn_TYPE_descriptor_t *td, const void *sptr } static asn_type_selector_result_t -select_E2nodeComponentConfigUpdateAck_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_E2nodeComponentConfigAddition_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E2nodeComponentConfigUpdateAck_ItemIEs_1; + const asn_ioc_set_t *itable = asn_IOS_E2nodeComponentConfigAddition_ItemIEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 2; /* &Value */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2nodeComponentConfigUpdateAck_ItemIEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2nodeComponentConfigAddition_ItemIEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -1805,13 +2036,13 @@ memb_id_constraint_33(const asn_TYPE_descriptor_t *td, const void *sptr, } static asn_type_selector_result_t -select_RANfunction_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_E2nodeComponentConfigUpdate_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RANfunction_ItemIEs_1; + const asn_ioc_set_t *itable = asn_IOS_E2nodeComponentConfigUpdate_ItemIEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 1; /* &criticality */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RANfunction_ItemIEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2nodeComponentConfigUpdate_ItemIEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -1851,13 +2082,13 @@ memb_criticality_constraint_33(const asn_TYPE_descriptor_t *td, const void *sptr } static asn_type_selector_result_t -select_RANfunction_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_E2nodeComponentConfigUpdate_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RANfunction_ItemIEs_1; + const asn_ioc_set_t *itable = asn_IOS_E2nodeComponentConfigUpdate_ItemIEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 2; /* &Value */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RANfunction_ItemIEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2nodeComponentConfigUpdate_ItemIEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -1922,13 +2153,13 @@ memb_id_constraint_37(const asn_TYPE_descriptor_t *td, const void *sptr, } static asn_type_selector_result_t -select_RANfunctionID_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_E2nodeComponentConfigRemoval_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RANfunctionID_ItemIEs_1; + const asn_ioc_set_t *itable = asn_IOS_E2nodeComponentConfigRemoval_ItemIEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 1; /* &criticality */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RANfunctionID_ItemIEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2nodeComponentConfigRemoval_ItemIEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -1968,13 +2199,13 @@ memb_criticality_constraint_37(const asn_TYPE_descriptor_t *td, const void *sptr } static asn_type_selector_result_t -select_RANfunctionID_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_E2nodeComponentConfigRemoval_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RANfunctionID_ItemIEs_1; + const asn_ioc_set_t *itable = asn_IOS_E2nodeComponentConfigRemoval_ItemIEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 2; /* &Value */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RANfunctionID_ItemIEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2nodeComponentConfigRemoval_ItemIEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -2039,13 +2270,13 @@ memb_id_constraint_41(const asn_TYPE_descriptor_t *td, const void *sptr, } static asn_type_selector_result_t -select_RANfunctionIDcause_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_E2nodeTNLassociationRemoval_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RANfunctionIDcause_ItemIEs_1; + const asn_ioc_set_t *itable = asn_IOS_E2nodeTNLassociationRemoval_ItemIEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 1; /* &criticality */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RANfunctionIDcause_ItemIEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2nodeTNLassociationRemoval_ItemIEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -2085,13 +2316,13 @@ memb_criticality_constraint_41(const asn_TYPE_descriptor_t *td, const void *sptr } static asn_type_selector_result_t -select_RANfunctionIDcause_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_E2nodeTNLassociationRemoval_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RANfunctionIDcause_ItemIEs_1; + const asn_ioc_set_t *itable = asn_IOS_E2nodeTNLassociationRemoval_ItemIEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 2; /* &Value */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RANfunctionIDcause_ItemIEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2nodeTNLassociationRemoval_ItemIEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -2156,13 +2387,13 @@ memb_id_constraint_45(const asn_TYPE_descriptor_t *td, const void *sptr, } static asn_type_selector_result_t -select_RICsubscriptionRequest_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_E2nodeComponentConfigAdditionAck_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionRequest_IEs_1; + const asn_ioc_set_t *itable = asn_IOS_E2nodeComponentConfigAdditionAck_ItemIEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 1; /* &criticality */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionRequest_IEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2nodeComponentConfigAdditionAck_ItemIEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -2202,13 +2433,13 @@ memb_criticality_constraint_45(const asn_TYPE_descriptor_t *td, const void *sptr } static asn_type_selector_result_t -select_RICsubscriptionRequest_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_E2nodeComponentConfigAdditionAck_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionRequest_IEs_1; + const asn_ioc_set_t *itable = asn_IOS_E2nodeComponentConfigAdditionAck_ItemIEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 2; /* &Value */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionRequest_IEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2nodeComponentConfigAdditionAck_ItemIEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -2273,13 +2504,13 @@ memb_id_constraint_49(const asn_TYPE_descriptor_t *td, const void *sptr, } static asn_type_selector_result_t -select_RICsubscriptionResponse_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_E2nodeComponentConfigUpdateAck_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionResponse_IEs_1; + const asn_ioc_set_t *itable = asn_IOS_E2nodeComponentConfigUpdateAck_ItemIEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 1; /* &criticality */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionResponse_IEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2nodeComponentConfigUpdateAck_ItemIEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -2319,13 +2550,13 @@ memb_criticality_constraint_49(const asn_TYPE_descriptor_t *td, const void *sptr } static asn_type_selector_result_t -select_RICsubscriptionResponse_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_E2nodeComponentConfigUpdateAck_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionResponse_IEs_1; + const asn_ioc_set_t *itable = asn_IOS_E2nodeComponentConfigUpdateAck_ItemIEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 2; /* &Value */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionResponse_IEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2nodeComponentConfigUpdateAck_ItemIEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -2390,13 +2621,13 @@ memb_id_constraint_53(const asn_TYPE_descriptor_t *td, const void *sptr, } static asn_type_selector_result_t -select_RICsubscriptionFailure_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_E2nodeComponentConfigRemovalAck_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionFailure_IEs_1; + const asn_ioc_set_t *itable = asn_IOS_E2nodeComponentConfigRemovalAck_ItemIEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 1; /* &criticality */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionFailure_IEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2nodeComponentConfigRemovalAck_ItemIEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -2436,13 +2667,13 @@ memb_criticality_constraint_53(const asn_TYPE_descriptor_t *td, const void *sptr } static asn_type_selector_result_t -select_RICsubscriptionFailure_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_E2nodeComponentConfigRemovalAck_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionFailure_IEs_1; + const asn_ioc_set_t *itable = asn_IOS_E2nodeComponentConfigRemovalAck_ItemIEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 2; /* &Value */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionFailure_IEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2nodeComponentConfigRemovalAck_ItemIEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -2507,13 +2738,13 @@ memb_id_constraint_57(const asn_TYPE_descriptor_t *td, const void *sptr, } static asn_type_selector_result_t -select_RICsubscriptionDeleteRequest_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_RANfunction_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionDeleteRequest_IEs_1; + const asn_ioc_set_t *itable = asn_IOS_RANfunction_ItemIEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 1; /* &criticality */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionDeleteRequest_IEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RANfunction_ItemIEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -2553,13 +2784,13 @@ memb_criticality_constraint_57(const asn_TYPE_descriptor_t *td, const void *sptr } static asn_type_selector_result_t -select_RICsubscriptionDeleteRequest_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_RANfunction_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionDeleteRequest_IEs_1; + const asn_ioc_set_t *itable = asn_IOS_RANfunction_ItemIEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 2; /* &Value */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionDeleteRequest_IEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RANfunction_ItemIEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -2624,13 +2855,13 @@ memb_id_constraint_61(const asn_TYPE_descriptor_t *td, const void *sptr, } static asn_type_selector_result_t -select_RICsubscriptionDeleteResponse_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_RANfunctionID_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionDeleteResponse_IEs_1; + const asn_ioc_set_t *itable = asn_IOS_RANfunctionID_ItemIEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 1; /* &criticality */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionDeleteResponse_IEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RANfunctionID_ItemIEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -2670,13 +2901,13 @@ memb_criticality_constraint_61(const asn_TYPE_descriptor_t *td, const void *sptr } static asn_type_selector_result_t -select_RICsubscriptionDeleteResponse_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_RANfunctionID_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionDeleteResponse_IEs_1; + const asn_ioc_set_t *itable = asn_IOS_RANfunctionID_ItemIEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 2; /* &Value */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionDeleteResponse_IEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RANfunctionID_ItemIEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -2741,13 +2972,13 @@ memb_id_constraint_65(const asn_TYPE_descriptor_t *td, const void *sptr, } static asn_type_selector_result_t -select_RICsubscriptionDeleteFailure_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_RANfunctionIDcause_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionDeleteFailure_IEs_1; + const asn_ioc_set_t *itable = asn_IOS_RANfunctionIDcause_ItemIEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 1; /* &criticality */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionDeleteFailure_IEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RANfunctionIDcause_ItemIEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -2787,13 +3018,13 @@ memb_criticality_constraint_65(const asn_TYPE_descriptor_t *td, const void *sptr } static asn_type_selector_result_t -select_RICsubscriptionDeleteFailure_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_RANfunctionIDcause_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionDeleteFailure_IEs_1; + const asn_ioc_set_t *itable = asn_IOS_RANfunctionIDcause_ItemIEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 2; /* &Value */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionDeleteFailure_IEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RANfunctionIDcause_ItemIEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -2858,13 +3089,13 @@ memb_id_constraint_69(const asn_TYPE_descriptor_t *td, const void *sptr, } static asn_type_selector_result_t -select_RICindication_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_RICsubscriptionRequest_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICindication_IEs_1; + const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionRequest_IEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 1; /* &criticality */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICindication_IEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionRequest_IEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -2904,13 +3135,13 @@ memb_criticality_constraint_69(const asn_TYPE_descriptor_t *td, const void *sptr } static asn_type_selector_result_t -select_RICindication_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_RICsubscriptionRequest_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICindication_IEs_1; + const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionRequest_IEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 2; /* &Value */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICindication_IEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionRequest_IEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -2975,13 +3206,13 @@ memb_id_constraint_73(const asn_TYPE_descriptor_t *td, const void *sptr, } static asn_type_selector_result_t -select_RICcontrolRequest_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_RICsubscriptionResponse_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICcontrolRequest_IEs_1; + const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionResponse_IEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 1; /* &criticality */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICcontrolRequest_IEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionResponse_IEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -3021,13 +3252,13 @@ memb_criticality_constraint_73(const asn_TYPE_descriptor_t *td, const void *sptr } static asn_type_selector_result_t -select_RICcontrolRequest_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_RICsubscriptionResponse_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICcontrolRequest_IEs_1; + const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionResponse_IEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 2; /* &Value */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICcontrolRequest_IEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionResponse_IEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -3092,13 +3323,13 @@ memb_id_constraint_77(const asn_TYPE_descriptor_t *td, const void *sptr, } static asn_type_selector_result_t -select_RICcontrolAcknowledge_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_RICsubscriptionFailure_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICcontrolAcknowledge_IEs_1; + const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionFailure_IEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 1; /* &criticality */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICcontrolAcknowledge_IEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionFailure_IEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -3138,13 +3369,13 @@ memb_criticality_constraint_77(const asn_TYPE_descriptor_t *td, const void *sptr } static asn_type_selector_result_t -select_RICcontrolAcknowledge_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_RICsubscriptionFailure_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICcontrolAcknowledge_IEs_1; + const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionFailure_IEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 2; /* &Value */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICcontrolAcknowledge_IEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionFailure_IEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -3209,13 +3440,13 @@ memb_id_constraint_81(const asn_TYPE_descriptor_t *td, const void *sptr, } static asn_type_selector_result_t -select_RICcontrolFailure_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_RICsubscriptionDeleteRequest_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICcontrolFailure_IEs_1; + const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionDeleteRequest_IEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 1; /* &criticality */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICcontrolFailure_IEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionDeleteRequest_IEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -3255,13 +3486,13 @@ memb_criticality_constraint_81(const asn_TYPE_descriptor_t *td, const void *sptr } static asn_type_selector_result_t -select_RICcontrolFailure_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_RICsubscriptionDeleteRequest_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICcontrolFailure_IEs_1; + const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionDeleteRequest_IEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 2; /* &Value */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICcontrolFailure_IEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionDeleteRequest_IEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -3326,13 +3557,13 @@ memb_id_constraint_85(const asn_TYPE_descriptor_t *td, const void *sptr, } static asn_type_selector_result_t -select_ErrorIndication_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_RICsubscriptionDeleteResponse_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_ErrorIndication_IEs_1; + const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionDeleteResponse_IEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 1; /* &criticality */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ErrorIndication_IEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionDeleteResponse_IEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -3372,13 +3603,13 @@ memb_criticality_constraint_85(const asn_TYPE_descriptor_t *td, const void *sptr } static asn_type_selector_result_t -select_ErrorIndication_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_RICsubscriptionDeleteResponse_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_ErrorIndication_IEs_1; + const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionDeleteResponse_IEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 2; /* &Value */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ErrorIndication_IEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionDeleteResponse_IEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -3443,13 +3674,13 @@ memb_id_constraint_89(const asn_TYPE_descriptor_t *td, const void *sptr, } static asn_type_selector_result_t -select_E2setupRequestIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_RICsubscriptionDeleteFailure_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E2setupRequestIEs_1; + const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionDeleteFailure_IEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 1; /* &criticality */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2setupRequestIEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionDeleteFailure_IEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -3489,13 +3720,13 @@ memb_criticality_constraint_89(const asn_TYPE_descriptor_t *td, const void *sptr } static asn_type_selector_result_t -select_E2setupRequestIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_RICsubscriptionDeleteFailure_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E2setupRequestIEs_1; + const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionDeleteFailure_IEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 2; /* &Value */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2setupRequestIEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionDeleteFailure_IEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -3560,13 +3791,13 @@ memb_id_constraint_93(const asn_TYPE_descriptor_t *td, const void *sptr, } static asn_type_selector_result_t -select_E2setupResponseIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_RICsubscriptionDeleteRequired_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E2setupResponseIEs_1; + const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionDeleteRequired_IEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 1; /* &criticality */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2setupResponseIEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionDeleteRequired_IEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -3606,13 +3837,13 @@ memb_criticality_constraint_93(const asn_TYPE_descriptor_t *td, const void *sptr } static asn_type_selector_result_t -select_E2setupResponseIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_RICsubscriptionDeleteRequired_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E2setupResponseIEs_1; + const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionDeleteRequired_IEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 2; /* &Value */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2setupResponseIEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionDeleteRequired_IEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -3677,13 +3908,13 @@ memb_id_constraint_97(const asn_TYPE_descriptor_t *td, const void *sptr, } static asn_type_selector_result_t -select_E2setupFailureIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_RICindication_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E2setupFailureIEs_1; + const asn_ioc_set_t *itable = asn_IOS_RICindication_IEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 1; /* &criticality */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2setupFailureIEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICindication_IEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -3723,13 +3954,13 @@ memb_criticality_constraint_97(const asn_TYPE_descriptor_t *td, const void *sptr } static asn_type_selector_result_t -select_E2setupFailureIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_RICindication_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E2setupFailureIEs_1; + const asn_ioc_set_t *itable = asn_IOS_RICindication_IEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 2; /* &Value */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2setupFailureIEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICindication_IEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -3794,13 +4025,13 @@ memb_id_constraint_101(const asn_TYPE_descriptor_t *td, const void *sptr, } static asn_type_selector_result_t -select_E2connectionUpdate_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_RICcontrolRequest_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E2connectionUpdate_IEs_1; + const asn_ioc_set_t *itable = asn_IOS_RICcontrolRequest_IEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 1; /* &criticality */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2connectionUpdate_IEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICcontrolRequest_IEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -3840,19 +4071,13 @@ memb_criticality_constraint_101(const asn_TYPE_descriptor_t *td, const void *spt } static asn_type_selector_result_t -select_E2connectionUpdate_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_RICcontrolRequest_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E2connectionUpdate_IEs_1; + const asn_ioc_set_t *itable = asn_IOS_RICcontrolRequest_IEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 2; /* &Value */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2connectionUpdate_IEs, id)); - const int indexToPresence[4] = { - E2connectionUpdate_IEs__value_PR_NOTHING, - E2connectionUpdate_IEs__value_PR_E2connectionUpdate_List, - E2connectionUpdate_IEs__value_PR_E2connectionUpdateRemove_List, - E2connectionUpdate_IEs__value_PR_E2connectionUpdate_List - }; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICcontrolRequest_IEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -3864,7 +4089,7 @@ select_E2connectionUpdate_IEs_value_type(const asn_TYPE_descriptor_t *parent_typ presence_index++; if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { result.type_descriptor = type_cell->type_descriptor; - result.presence_index = indexToPresence[presence_index]; + result.presence_index = presence_index; break; } } @@ -3917,13 +4142,13 @@ memb_id_constraint_105(const asn_TYPE_descriptor_t *td, const void *sptr, } static asn_type_selector_result_t -select_E2connectionUpdateAck_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_RICcontrolAcknowledge_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E2connectionUpdateAck_IEs_1; + const asn_ioc_set_t *itable = asn_IOS_RICcontrolAcknowledge_IEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 1; /* &criticality */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2connectionUpdateAck_IEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICcontrolAcknowledge_IEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -3963,13 +4188,13 @@ memb_criticality_constraint_105(const asn_TYPE_descriptor_t *td, const void *spt } static asn_type_selector_result_t -select_E2connectionUpdateAck_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_RICcontrolAcknowledge_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E2connectionUpdateAck_IEs_1; + const asn_ioc_set_t *itable = asn_IOS_RICcontrolAcknowledge_IEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 2; /* &Value */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2connectionUpdateAck_IEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICcontrolAcknowledge_IEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -4034,13 +4259,13 @@ memb_id_constraint_109(const asn_TYPE_descriptor_t *td, const void *sptr, } static asn_type_selector_result_t -select_E2connectionUpdateFailure_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_RICcontrolFailure_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E2connectionUpdateFailure_IEs_1; + const asn_ioc_set_t *itable = asn_IOS_RICcontrolFailure_IEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 1; /* &criticality */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2connectionUpdateFailure_IEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICcontrolFailure_IEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -4080,13 +4305,13 @@ memb_criticality_constraint_109(const asn_TYPE_descriptor_t *td, const void *spt } static asn_type_selector_result_t -select_E2connectionUpdateFailure_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_RICcontrolFailure_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E2connectionUpdateFailure_IEs_1; + const asn_ioc_set_t *itable = asn_IOS_RICcontrolFailure_IEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 2; /* &Value */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2connectionUpdateFailure_IEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICcontrolFailure_IEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -4151,13 +4376,13 @@ memb_id_constraint_113(const asn_TYPE_descriptor_t *td, const void *sptr, } static asn_type_selector_result_t -select_E2nodeConfigurationUpdate_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_ErrorIndication_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E2nodeConfigurationUpdate_IEs_1; + const asn_ioc_set_t *itable = asn_IOS_ErrorIndication_IEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 1; /* &criticality */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2nodeConfigurationUpdate_IEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ErrorIndication_IEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -4197,13 +4422,13 @@ memb_criticality_constraint_113(const asn_TYPE_descriptor_t *td, const void *spt } static asn_type_selector_result_t -select_E2nodeConfigurationUpdate_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_ErrorIndication_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E2nodeConfigurationUpdate_IEs_1; + const asn_ioc_set_t *itable = asn_IOS_ErrorIndication_IEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 2; /* &Value */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2nodeConfigurationUpdate_IEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ErrorIndication_IEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -4268,13 +4493,13 @@ memb_id_constraint_117(const asn_TYPE_descriptor_t *td, const void *sptr, } static asn_type_selector_result_t -select_E2nodeConfigurationUpdateAcknowledge_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_E2setupRequestIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E2nodeConfigurationUpdateAcknowledge_IEs_1; + const asn_ioc_set_t *itable = asn_IOS_E2setupRequestIEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 1; /* &criticality */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2nodeConfigurationUpdateAcknowledge_IEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2setupRequestIEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -4314,13 +4539,13 @@ memb_criticality_constraint_117(const asn_TYPE_descriptor_t *td, const void *spt } static asn_type_selector_result_t -select_E2nodeConfigurationUpdateAcknowledge_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_E2setupRequestIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E2nodeConfigurationUpdateAcknowledge_IEs_1; + const asn_ioc_set_t *itable = asn_IOS_E2setupRequestIEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 2; /* &Value */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2nodeConfigurationUpdateAcknowledge_IEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2setupRequestIEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -4385,13 +4610,13 @@ memb_id_constraint_121(const asn_TYPE_descriptor_t *td, const void *sptr, } static asn_type_selector_result_t -select_E2nodeConfigurationUpdateFailure_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_E2setupResponseIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E2nodeConfigurationUpdateFailure_IEs_1; + const asn_ioc_set_t *itable = asn_IOS_E2setupResponseIEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 1; /* &criticality */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2nodeConfigurationUpdateFailure_IEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2setupResponseIEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -4431,13 +4656,13 @@ memb_criticality_constraint_121(const asn_TYPE_descriptor_t *td, const void *spt } static asn_type_selector_result_t -select_E2nodeConfigurationUpdateFailure_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_E2setupResponseIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E2nodeConfigurationUpdateFailure_IEs_1; + const asn_ioc_set_t *itable = asn_IOS_E2setupResponseIEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 2; /* &Value */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2nodeConfigurationUpdateFailure_IEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2setupResponseIEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -4502,13 +4727,13 @@ memb_id_constraint_125(const asn_TYPE_descriptor_t *td, const void *sptr, } static asn_type_selector_result_t -select_ResetRequestIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_E2setupFailureIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_ResetRequestIEs_1; + const asn_ioc_set_t *itable = asn_IOS_E2setupFailureIEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 1; /* &criticality */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ResetRequestIEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2setupFailureIEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -4548,13 +4773,13 @@ memb_criticality_constraint_125(const asn_TYPE_descriptor_t *td, const void *spt } static asn_type_selector_result_t -select_ResetRequestIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_E2setupFailureIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_ResetRequestIEs_1; + const asn_ioc_set_t *itable = asn_IOS_E2setupFailureIEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 2; /* &Value */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ResetRequestIEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2setupFailureIEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -4619,13 +4844,13 @@ memb_id_constraint_129(const asn_TYPE_descriptor_t *td, const void *sptr, } static asn_type_selector_result_t -select_ResetResponseIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_E2connectionUpdate_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_ResetResponseIEs_1; + const asn_ioc_set_t *itable = asn_IOS_E2connectionUpdate_IEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 1; /* &criticality */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ResetResponseIEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2connectionUpdate_IEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -4665,13 +4890,20 @@ memb_criticality_constraint_129(const asn_TYPE_descriptor_t *td, const void *spt } static asn_type_selector_result_t -select_ResetResponseIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_E2connectionUpdate_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_ResetResponseIEs_1; + const asn_ioc_set_t *itable = asn_IOS_E2connectionUpdate_IEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 2; /* &Value */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ResetResponseIEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2connectionUpdate_IEs, id)); + const int indexToPresence[5] = { + E2connectionUpdate_IEs__value_PR_NOTHING, + E2connectionUpdate_IEs__value_PR_TransactionID, + E2connectionUpdate_IEs__value_PR_E2connectionUpdate_List, + E2connectionUpdate_IEs__value_PR_E2connectionUpdateRemove_List, + E2connectionUpdate_IEs__value_PR_E2connectionUpdate_List + }; for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -4683,7 +4915,7 @@ select_ResetResponseIEs_value_type(const asn_TYPE_descriptor_t *parent_type, con presence_index++; if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { result.type_descriptor = type_cell->type_descriptor; - result.presence_index = presence_index; + result.presence_index = indexToPresence[presence_index]; break; } } @@ -4736,13 +4968,13 @@ memb_id_constraint_133(const asn_TYPE_descriptor_t *td, const void *sptr, } static asn_type_selector_result_t -select_RICserviceUpdate_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_E2connectionUpdateAck_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICserviceUpdate_IEs_1; + const asn_ioc_set_t *itable = asn_IOS_E2connectionUpdateAck_IEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 1; /* &criticality */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICserviceUpdate_IEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2connectionUpdateAck_IEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -4782,19 +5014,13 @@ memb_criticality_constraint_133(const asn_TYPE_descriptor_t *td, const void *spt } static asn_type_selector_result_t -select_RICserviceUpdate_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_E2connectionUpdateAck_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICserviceUpdate_IEs_1; + const asn_ioc_set_t *itable = asn_IOS_E2connectionUpdateAck_IEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 2; /* &Value */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICserviceUpdate_IEs, id)); - const int indexToPresence[4] = { - RICserviceUpdate_IEs__value_PR_NOTHING, - RICserviceUpdate_IEs__value_PR_RANfunctions_List, - RICserviceUpdate_IEs__value_PR_RANfunctions_List, - RICserviceUpdate_IEs__value_PR_RANfunctionsID_List - }; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2connectionUpdateAck_IEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -4806,7 +5032,7 @@ select_RICserviceUpdate_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, presence_index++; if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { result.type_descriptor = type_cell->type_descriptor; - result.presence_index = indexToPresence[presence_index]; + result.presence_index = presence_index; break; } } @@ -4859,13 +5085,13 @@ memb_id_constraint_137(const asn_TYPE_descriptor_t *td, const void *sptr, } static asn_type_selector_result_t -select_RICserviceUpdateAcknowledge_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_E2connectionUpdateFailure_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICserviceUpdateAcknowledge_IEs_1; + const asn_ioc_set_t *itable = asn_IOS_E2connectionUpdateFailure_IEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 1; /* &criticality */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICserviceUpdateAcknowledge_IEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2connectionUpdateFailure_IEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -4905,13 +5131,13 @@ memb_criticality_constraint_137(const asn_TYPE_descriptor_t *td, const void *spt } static asn_type_selector_result_t -select_RICserviceUpdateAcknowledge_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_E2connectionUpdateFailure_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICserviceUpdateAcknowledge_IEs_1; + const asn_ioc_set_t *itable = asn_IOS_E2connectionUpdateFailure_IEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 2; /* &Value */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICserviceUpdateAcknowledge_IEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2connectionUpdateFailure_IEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -4976,13 +5202,13 @@ memb_id_constraint_141(const asn_TYPE_descriptor_t *td, const void *sptr, } static asn_type_selector_result_t -select_RICserviceUpdateFailure_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_E2nodeConfigurationUpdate_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICserviceUpdateFailure_IEs_1; + const asn_ioc_set_t *itable = asn_IOS_E2nodeConfigurationUpdate_IEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 1; /* &criticality */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICserviceUpdateFailure_IEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2nodeConfigurationUpdate_IEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -5022,13 +5248,13 @@ memb_criticality_constraint_141(const asn_TYPE_descriptor_t *td, const void *spt } static asn_type_selector_result_t -select_RICserviceUpdateFailure_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_E2nodeConfigurationUpdate_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICserviceUpdateFailure_IEs_1; + const asn_ioc_set_t *itable = asn_IOS_E2nodeConfigurationUpdate_IEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 2; /* &Value */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICserviceUpdateFailure_IEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2nodeConfigurationUpdate_IEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -5093,13 +5319,13 @@ memb_id_constraint_145(const asn_TYPE_descriptor_t *td, const void *sptr, } static asn_type_selector_result_t -select_RICserviceQuery_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_E2nodeConfigurationUpdateAcknowledge_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICserviceQuery_IEs_1; + const asn_ioc_set_t *itable = asn_IOS_E2nodeConfigurationUpdateAcknowledge_IEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 1; /* &criticality */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICserviceQuery_IEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2nodeConfigurationUpdateAcknowledge_IEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -5139,13 +5365,13 @@ memb_criticality_constraint_145(const asn_TYPE_descriptor_t *td, const void *spt } static asn_type_selector_result_t -select_RICserviceQuery_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_E2nodeConfigurationUpdateAcknowledge_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICserviceQuery_IEs_1; + const asn_ioc_set_t *itable = asn_IOS_E2nodeConfigurationUpdateAcknowledge_IEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 2; /* &Value */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICserviceQuery_IEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2nodeConfigurationUpdateAcknowledge_IEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -5184,587 +5410,2118 @@ memb_value_constraint_145(const asn_TYPE_descriptor_t *td, const void *sptr, return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); } -static asn_per_constraints_t asn_PER_memb_id_constr_2 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_3 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_4 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_6 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_7 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_8 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_10 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_11 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_12 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_14 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_15 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_16 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_18 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_19 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_20 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_22 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_23 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_24 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_26 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_27 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_28 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_30 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_31 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_32 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_id_constr_34 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_35 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_per_constraints_t asn_PER_memb_value_constr_36 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, +static int +memb_id_constraint_149(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_E2nodeConfigurationUpdateFailure_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_E2nodeConfigurationUpdateFailure_IEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2nodeConfigurationUpdateFailure_IEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_149(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_E2nodeConfigurationUpdateFailure_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_E2nodeConfigurationUpdateFailure_IEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2nodeConfigurationUpdateFailure_IEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_value_constraint_149(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_153(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_ResetRequestIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ResetRequestIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ResetRequestIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_153(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_ResetRequestIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ResetRequestIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ResetRequestIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_value_constraint_153(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_157(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_ResetResponseIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ResetResponseIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ResetResponseIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_157(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_ResetResponseIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ResetResponseIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ResetResponseIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_value_constraint_157(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_161(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_RICserviceUpdate_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_RICserviceUpdate_IEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICserviceUpdate_IEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_161(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_RICserviceUpdate_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_RICserviceUpdate_IEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICserviceUpdate_IEs, id)); + const int indexToPresence[5] = { + RICserviceUpdate_IEs__value_PR_NOTHING, + RICserviceUpdate_IEs__value_PR_TransactionID, + RICserviceUpdate_IEs__value_PR_RANfunctions_List, + RICserviceUpdate_IEs__value_PR_RANfunctions_List, + RICserviceUpdate_IEs__value_PR_RANfunctionsID_List + }; + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = indexToPresence[presence_index]; + break; + } + } + + return result; +} + +static int +memb_value_constraint_161(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_165(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_RICserviceUpdateAcknowledge_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_RICserviceUpdateAcknowledge_IEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICserviceUpdateAcknowledge_IEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_165(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_RICserviceUpdateAcknowledge_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_RICserviceUpdateAcknowledge_IEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICserviceUpdateAcknowledge_IEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_value_constraint_165(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_169(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_RICserviceUpdateFailure_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_RICserviceUpdateFailure_IEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICserviceUpdateFailure_IEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_169(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_RICserviceUpdateFailure_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_RICserviceUpdateFailure_IEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICserviceUpdateFailure_IEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_value_constraint_169(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_173(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_RICserviceQuery_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_RICserviceQuery_IEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICserviceQuery_IEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_173(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_RICserviceQuery_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_RICserviceQuery_IEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICserviceQuery_IEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_value_constraint_173(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_per_constraints_t asn_PER_memb_id_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_value_constr_4 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_id_constr_6 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_7 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_value_constr_8 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_id_constr_10 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_11 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_value_constr_12 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_id_constr_14 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_15 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_value_constr_16 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_id_constr_18 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_19 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_value_constr_20 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_id_constr_22 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_23 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_value_constr_24 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_id_constr_26 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_27 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_value_constr_28 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_id_constr_30 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_31 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_value_constr_32 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_id_constr_34 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_35 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_value_constr_36 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_id_constr_38 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_39 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_value_constr_40 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_id_constr_42 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_43 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_value_constr_44 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_id_constr_46 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_47 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_value_constr_48 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_id_constr_50 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_51 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_value_constr_52 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_id_constr_54 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_55 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_value_constr_56 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_id_constr_58 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_59 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_value_constr_60 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_id_constr_62 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_63 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_value_constr_64 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_id_constr_66 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_67 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_value_constr_68 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_id_constr_70 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_71 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_value_constr_72 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_id_constr_74 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_75 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_value_constr_76 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_id_constr_78 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_79 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_value_constr_80 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_id_constr_82 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_83 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_value_constr_84 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_id_constr_86 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_87 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_value_constr_88 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_id_constr_90 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_91 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_value_constr_92 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_id_constr_94 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_95 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_value_constr_96 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_id_constr_98 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_99 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_value_constr_100 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_id_constr_102 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_103 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_value_constr_104 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_id_constr_106 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_107 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; -static asn_per_constraints_t asn_PER_memb_id_constr_38 CC_NOTUSED = { +static asn_per_constraints_t asn_PER_memb_value_constr_108 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_id_constr_110 CC_NOTUSED = { { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; -static asn_per_constraints_t asn_PER_memb_criticality_constr_39 CC_NOTUSED = { +static asn_per_constraints_t asn_PER_memb_criticality_constr_111 CC_NOTUSED = { { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; -static asn_per_constraints_t asn_PER_memb_value_constr_40 CC_NOTUSED = { +static asn_per_constraints_t asn_PER_memb_value_constr_112 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; -static asn_per_constraints_t asn_PER_memb_id_constr_42 CC_NOTUSED = { +static asn_per_constraints_t asn_PER_memb_id_constr_114 CC_NOTUSED = { { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; -static asn_per_constraints_t asn_PER_memb_criticality_constr_43 CC_NOTUSED = { +static asn_per_constraints_t asn_PER_memb_criticality_constr_115 CC_NOTUSED = { { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; -static asn_per_constraints_t asn_PER_memb_value_constr_44 CC_NOTUSED = { +static asn_per_constraints_t asn_PER_memb_value_constr_116 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; -static asn_per_constraints_t asn_PER_memb_id_constr_46 CC_NOTUSED = { +static asn_per_constraints_t asn_PER_memb_id_constr_118 CC_NOTUSED = { { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; -static asn_per_constraints_t asn_PER_memb_criticality_constr_47 CC_NOTUSED = { +static asn_per_constraints_t asn_PER_memb_criticality_constr_119 CC_NOTUSED = { { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; -static asn_per_constraints_t asn_PER_memb_value_constr_48 CC_NOTUSED = { +static asn_per_constraints_t asn_PER_memb_value_constr_120 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; -static asn_per_constraints_t asn_PER_memb_id_constr_50 CC_NOTUSED = { +static asn_per_constraints_t asn_PER_memb_id_constr_122 CC_NOTUSED = { { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; -static asn_per_constraints_t asn_PER_memb_criticality_constr_51 CC_NOTUSED = { +static asn_per_constraints_t asn_PER_memb_criticality_constr_123 CC_NOTUSED = { { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; -static asn_per_constraints_t asn_PER_memb_value_constr_52 CC_NOTUSED = { +static asn_per_constraints_t asn_PER_memb_value_constr_124 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; -static asn_per_constraints_t asn_PER_memb_id_constr_54 CC_NOTUSED = { +static asn_per_constraints_t asn_PER_memb_id_constr_126 CC_NOTUSED = { { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; -static asn_per_constraints_t asn_PER_memb_criticality_constr_55 CC_NOTUSED = { +static asn_per_constraints_t asn_PER_memb_criticality_constr_127 CC_NOTUSED = { { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; -static asn_per_constraints_t asn_PER_memb_value_constr_56 CC_NOTUSED = { +static asn_per_constraints_t asn_PER_memb_value_constr_128 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; -static asn_per_constraints_t asn_PER_memb_id_constr_58 CC_NOTUSED = { +static asn_per_constraints_t asn_PER_memb_id_constr_130 CC_NOTUSED = { { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; -static asn_per_constraints_t asn_PER_memb_criticality_constr_59 CC_NOTUSED = { +static asn_per_constraints_t asn_PER_memb_criticality_constr_131 CC_NOTUSED = { { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; -static asn_per_constraints_t asn_PER_memb_value_constr_60 CC_NOTUSED = { +static asn_per_constraints_t asn_PER_memb_value_constr_132 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; -static asn_per_constraints_t asn_PER_memb_id_constr_62 CC_NOTUSED = { +static asn_per_constraints_t asn_PER_memb_id_constr_134 CC_NOTUSED = { { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; -static asn_per_constraints_t asn_PER_memb_criticality_constr_63 CC_NOTUSED = { +static asn_per_constraints_t asn_PER_memb_criticality_constr_135 CC_NOTUSED = { { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; -static asn_per_constraints_t asn_PER_memb_value_constr_64 CC_NOTUSED = { +static asn_per_constraints_t asn_PER_memb_value_constr_136 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; -static asn_per_constraints_t asn_PER_memb_id_constr_66 CC_NOTUSED = { +static asn_per_constraints_t asn_PER_memb_id_constr_138 CC_NOTUSED = { { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; -static asn_per_constraints_t asn_PER_memb_criticality_constr_67 CC_NOTUSED = { +static asn_per_constraints_t asn_PER_memb_criticality_constr_139 CC_NOTUSED = { { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; -static asn_per_constraints_t asn_PER_memb_value_constr_68 CC_NOTUSED = { +static asn_per_constraints_t asn_PER_memb_value_constr_140 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; -static asn_per_constraints_t asn_PER_memb_id_constr_70 CC_NOTUSED = { +static asn_per_constraints_t asn_PER_memb_id_constr_142 CC_NOTUSED = { { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; -static asn_per_constraints_t asn_PER_memb_criticality_constr_71 CC_NOTUSED = { +static asn_per_constraints_t asn_PER_memb_criticality_constr_143 CC_NOTUSED = { { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; -static asn_per_constraints_t asn_PER_memb_value_constr_72 CC_NOTUSED = { +static asn_per_constraints_t asn_PER_memb_value_constr_144 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; -static asn_per_constraints_t asn_PER_memb_id_constr_74 CC_NOTUSED = { +static asn_per_constraints_t asn_PER_memb_id_constr_146 CC_NOTUSED = { { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; -static asn_per_constraints_t asn_PER_memb_criticality_constr_75 CC_NOTUSED = { +static asn_per_constraints_t asn_PER_memb_criticality_constr_147 CC_NOTUSED = { { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; -static asn_per_constraints_t asn_PER_memb_value_constr_76 CC_NOTUSED = { +static asn_per_constraints_t asn_PER_memb_value_constr_148 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; -static asn_per_constraints_t asn_PER_memb_id_constr_78 CC_NOTUSED = { +static asn_per_constraints_t asn_PER_memb_id_constr_150 CC_NOTUSED = { { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; -static asn_per_constraints_t asn_PER_memb_criticality_constr_79 CC_NOTUSED = { +static asn_per_constraints_t asn_PER_memb_criticality_constr_151 CC_NOTUSED = { { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; -static asn_per_constraints_t asn_PER_memb_value_constr_80 CC_NOTUSED = { +static asn_per_constraints_t asn_PER_memb_value_constr_152 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; -static asn_per_constraints_t asn_PER_memb_id_constr_82 CC_NOTUSED = { +static asn_per_constraints_t asn_PER_memb_id_constr_154 CC_NOTUSED = { { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; -static asn_per_constraints_t asn_PER_memb_criticality_constr_83 CC_NOTUSED = { +static asn_per_constraints_t asn_PER_memb_criticality_constr_155 CC_NOTUSED = { { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; -static asn_per_constraints_t asn_PER_memb_value_constr_84 CC_NOTUSED = { +static asn_per_constraints_t asn_PER_memb_value_constr_156 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; -static asn_per_constraints_t asn_PER_memb_id_constr_86 CC_NOTUSED = { +static asn_per_constraints_t asn_PER_memb_id_constr_158 CC_NOTUSED = { { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; -static asn_per_constraints_t asn_PER_memb_criticality_constr_87 CC_NOTUSED = { +static asn_per_constraints_t asn_PER_memb_criticality_constr_159 CC_NOTUSED = { { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; -static asn_per_constraints_t asn_PER_memb_value_constr_88 CC_NOTUSED = { +static asn_per_constraints_t asn_PER_memb_value_constr_160 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; -static asn_per_constraints_t asn_PER_memb_id_constr_90 CC_NOTUSED = { +static asn_per_constraints_t asn_PER_memb_id_constr_162 CC_NOTUSED = { { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; -static asn_per_constraints_t asn_PER_memb_criticality_constr_91 CC_NOTUSED = { +static asn_per_constraints_t asn_PER_memb_criticality_constr_163 CC_NOTUSED = { { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; -static asn_per_constraints_t asn_PER_memb_value_constr_92 CC_NOTUSED = { +static asn_per_constraints_t asn_PER_memb_value_constr_164 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; -static asn_per_constraints_t asn_PER_memb_id_constr_94 CC_NOTUSED = { +static asn_per_constraints_t asn_PER_memb_id_constr_166 CC_NOTUSED = { { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; -static asn_per_constraints_t asn_PER_memb_criticality_constr_95 CC_NOTUSED = { +static asn_per_constraints_t asn_PER_memb_criticality_constr_167 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_value_constr_168 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_id_constr_170 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_171 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_value_constr_172 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_id_constr_174 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_175 CC_NOTUSED = { { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; -static asn_per_constraints_t asn_PER_memb_value_constr_96 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ +static asn_per_constraints_t asn_PER_memb_value_constr_176 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_value_4[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICaction_ToBeSetup_ItemIEs__value, choice.RICaction_ToBeSetup_Item), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RICaction_ToBeSetup_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RICaction-ToBeSetup-Item" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_4[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RICaction-ToBeSetup-Item */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_4 = { + sizeof(struct RICaction_ToBeSetup_ItemIEs__value), + offsetof(struct RICaction_ToBeSetup_ItemIEs__value, _asn_ctx), + offsetof(struct RICaction_ToBeSetup_ItemIEs__value, present), + sizeof(((struct RICaction_ToBeSetup_ItemIEs__value *)0)->present), + asn_MAP_value_tag2el_4, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_4 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_4, + 1, /* Elements count */ + &asn_SPC_value_specs_4 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RICaction_ToBeSetup_ItemIEs_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICaction_ToBeSetup_ItemIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_id_constr_2, memb_id_constraint_1 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICaction_ToBeSetup_ItemIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_RICaction_ToBeSetup_ItemIEs_criticality_type, + { 0, &asn_PER_memb_criticality_constr_3, memb_criticality_constraint_1 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICaction_ToBeSetup_ItemIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_4, + select_RICaction_ToBeSetup_ItemIEs_value_type, + { 0, &asn_PER_memb_value_constr_4, memb_value_constraint_1 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_RICaction_ToBeSetup_ItemIEs_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RICaction_ToBeSetup_ItemIEs_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RICaction_ToBeSetup_ItemIEs_specs_1 = { + sizeof(struct RICaction_ToBeSetup_ItemIEs), + offsetof(struct RICaction_ToBeSetup_ItemIEs, _asn_ctx), + asn_MAP_RICaction_ToBeSetup_ItemIEs_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RICaction_ToBeSetup_ItemIEs = { + "RICaction-ToBeSetup-ItemIEs", + "RICaction-ToBeSetup-ItemIEs", + &asn_OP_SEQUENCE, + asn_DEF_RICaction_ToBeSetup_ItemIEs_tags_1, + sizeof(asn_DEF_RICaction_ToBeSetup_ItemIEs_tags_1) + /sizeof(asn_DEF_RICaction_ToBeSetup_ItemIEs_tags_1[0]), /* 1 */ + asn_DEF_RICaction_ToBeSetup_ItemIEs_tags_1, /* Same as above */ + sizeof(asn_DEF_RICaction_ToBeSetup_ItemIEs_tags_1) + /sizeof(asn_DEF_RICaction_ToBeSetup_ItemIEs_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RICaction_ToBeSetup_ItemIEs_1, + 3, /* Elements count */ + &asn_SPC_RICaction_ToBeSetup_ItemIEs_specs_1 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_8[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICaction_Admitted_ItemIEs__value, choice.RICaction_Admitted_Item), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RICaction_Admitted_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RICaction-Admitted-Item" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_8[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RICaction-Admitted-Item */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_8 = { + sizeof(struct RICaction_Admitted_ItemIEs__value), + offsetof(struct RICaction_Admitted_ItemIEs__value, _asn_ctx), + offsetof(struct RICaction_Admitted_ItemIEs__value, present), + sizeof(((struct RICaction_Admitted_ItemIEs__value *)0)->present), + asn_MAP_value_tag2el_8, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_8 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_8, + 1, /* Elements count */ + &asn_SPC_value_specs_8 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RICaction_Admitted_ItemIEs_5[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICaction_Admitted_ItemIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_id_constr_6, memb_id_constraint_5 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICaction_Admitted_ItemIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_RICaction_Admitted_ItemIEs_criticality_type, + { 0, &asn_PER_memb_criticality_constr_7, memb_criticality_constraint_5 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICaction_Admitted_ItemIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_8, + select_RICaction_Admitted_ItemIEs_value_type, + { 0, &asn_PER_memb_value_constr_8, memb_value_constraint_5 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_RICaction_Admitted_ItemIEs_tags_5[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -static asn_per_constraints_t asn_PER_memb_id_constr_98 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ +static const asn_TYPE_tag2member_t asn_MAP_RICaction_Admitted_ItemIEs_tag2el_5[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ }; -static asn_per_constraints_t asn_PER_memb_criticality_constr_99 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ +asn_SEQUENCE_specifics_t asn_SPC_RICaction_Admitted_ItemIEs_specs_5 = { + sizeof(struct RICaction_Admitted_ItemIEs), + offsetof(struct RICaction_Admitted_ItemIEs, _asn_ctx), + asn_MAP_RICaction_Admitted_ItemIEs_tag2el_5, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ }; -static asn_per_constraints_t asn_PER_memb_value_constr_100 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ +asn_TYPE_descriptor_t asn_DEF_RICaction_Admitted_ItemIEs = { + "RICaction-Admitted-ItemIEs", + "RICaction-Admitted-ItemIEs", + &asn_OP_SEQUENCE, + asn_DEF_RICaction_Admitted_ItemIEs_tags_5, + sizeof(asn_DEF_RICaction_Admitted_ItemIEs_tags_5) + /sizeof(asn_DEF_RICaction_Admitted_ItemIEs_tags_5[0]), /* 1 */ + asn_DEF_RICaction_Admitted_ItemIEs_tags_5, /* Same as above */ + sizeof(asn_DEF_RICaction_Admitted_ItemIEs_tags_5) + /sizeof(asn_DEF_RICaction_Admitted_ItemIEs_tags_5[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RICaction_Admitted_ItemIEs_5, + 3, /* Elements count */ + &asn_SPC_RICaction_Admitted_ItemIEs_specs_5 /* Additional specs */ }; -static asn_per_constraints_t asn_PER_memb_id_constr_102 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ + +static asn_TYPE_member_t asn_MBR_value_12[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICaction_NotAdmitted_ItemIEs__value, choice.RICaction_NotAdmitted_Item), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RICaction_NotAdmitted_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RICaction-NotAdmitted-Item" + }, }; -static asn_per_constraints_t asn_PER_memb_criticality_constr_103 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_12[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RICaction-NotAdmitted-Item */ }; -static asn_per_constraints_t asn_PER_memb_value_constr_104 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ +static asn_CHOICE_specifics_t asn_SPC_value_specs_12 = { + sizeof(struct RICaction_NotAdmitted_ItemIEs__value), + offsetof(struct RICaction_NotAdmitted_ItemIEs__value, _asn_ctx), + offsetof(struct RICaction_NotAdmitted_ItemIEs__value, present), + sizeof(((struct RICaction_NotAdmitted_ItemIEs__value *)0)->present), + asn_MAP_value_tag2el_12, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ }; -static asn_per_constraints_t asn_PER_memb_id_constr_106 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_12 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_12, + 1, /* Elements count */ + &asn_SPC_value_specs_12 /* Additional specs */ }; -static asn_per_constraints_t asn_PER_memb_criticality_constr_107 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ + +asn_TYPE_member_t asn_MBR_RICaction_NotAdmitted_ItemIEs_9[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICaction_NotAdmitted_ItemIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_id_constr_10, memb_id_constraint_9 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICaction_NotAdmitted_ItemIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_RICaction_NotAdmitted_ItemIEs_criticality_type, + { 0, &asn_PER_memb_criticality_constr_11, memb_criticality_constraint_9 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICaction_NotAdmitted_ItemIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_12, + select_RICaction_NotAdmitted_ItemIEs_value_type, + { 0, &asn_PER_memb_value_constr_12, memb_value_constraint_9 }, + 0, 0, /* No default value */ + "value" + }, }; -static asn_per_constraints_t asn_PER_memb_value_constr_108 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ +static const ber_tlv_tag_t asn_DEF_RICaction_NotAdmitted_ItemIEs_tags_9[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -static asn_per_constraints_t asn_PER_memb_id_constr_110 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ +static const asn_TYPE_tag2member_t asn_MAP_RICaction_NotAdmitted_ItemIEs_tag2el_9[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ }; -static asn_per_constraints_t asn_PER_memb_criticality_constr_111 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ +asn_SEQUENCE_specifics_t asn_SPC_RICaction_NotAdmitted_ItemIEs_specs_9 = { + sizeof(struct RICaction_NotAdmitted_ItemIEs), + offsetof(struct RICaction_NotAdmitted_ItemIEs, _asn_ctx), + asn_MAP_RICaction_NotAdmitted_ItemIEs_tag2el_9, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ }; -static asn_per_constraints_t asn_PER_memb_value_constr_112 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ +asn_TYPE_descriptor_t asn_DEF_RICaction_NotAdmitted_ItemIEs = { + "RICaction-NotAdmitted-ItemIEs", + "RICaction-NotAdmitted-ItemIEs", + &asn_OP_SEQUENCE, + asn_DEF_RICaction_NotAdmitted_ItemIEs_tags_9, + sizeof(asn_DEF_RICaction_NotAdmitted_ItemIEs_tags_9) + /sizeof(asn_DEF_RICaction_NotAdmitted_ItemIEs_tags_9[0]), /* 1 */ + asn_DEF_RICaction_NotAdmitted_ItemIEs_tags_9, /* Same as above */ + sizeof(asn_DEF_RICaction_NotAdmitted_ItemIEs_tags_9) + /sizeof(asn_DEF_RICaction_NotAdmitted_ItemIEs_tags_9[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RICaction_NotAdmitted_ItemIEs_9, + 3, /* Elements count */ + &asn_SPC_RICaction_NotAdmitted_ItemIEs_specs_9 /* Additional specs */ }; -static asn_per_constraints_t asn_PER_memb_id_constr_114 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ + +static asn_TYPE_member_t asn_MBR_value_16[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICsubscription_withCause_ItemIEs__value, choice.RICsubscription_withCause_Item), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RICsubscription_withCause_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RICsubscription-withCause-Item" + }, }; -static asn_per_constraints_t asn_PER_memb_criticality_constr_115 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_16[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RICsubscription-withCause-Item */ }; -static asn_per_constraints_t asn_PER_memb_value_constr_116 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ +static asn_CHOICE_specifics_t asn_SPC_value_specs_16 = { + sizeof(struct RICsubscription_withCause_ItemIEs__value), + offsetof(struct RICsubscription_withCause_ItemIEs__value, _asn_ctx), + offsetof(struct RICsubscription_withCause_ItemIEs__value, present), + sizeof(((struct RICsubscription_withCause_ItemIEs__value *)0)->present), + asn_MAP_value_tag2el_16, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ }; -static asn_per_constraints_t asn_PER_memb_id_constr_118 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_16 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_16, + 1, /* Elements count */ + &asn_SPC_value_specs_16 /* Additional specs */ }; -static asn_per_constraints_t asn_PER_memb_criticality_constr_119 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ + +asn_TYPE_member_t asn_MBR_RICsubscription_withCause_ItemIEs_13[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICsubscription_withCause_ItemIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_id_constr_14, memb_id_constraint_13 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICsubscription_withCause_ItemIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_RICsubscription_withCause_ItemIEs_criticality_type, + { 0, &asn_PER_memb_criticality_constr_15, memb_criticality_constraint_13 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICsubscription_withCause_ItemIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_16, + select_RICsubscription_withCause_ItemIEs_value_type, + { 0, &asn_PER_memb_value_constr_16, memb_value_constraint_13 }, + 0, 0, /* No default value */ + "value" + }, }; -static asn_per_constraints_t asn_PER_memb_value_constr_120 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ +static const ber_tlv_tag_t asn_DEF_RICsubscription_withCause_ItemIEs_tags_13[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -static asn_per_constraints_t asn_PER_memb_id_constr_122 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ +static const asn_TYPE_tag2member_t asn_MAP_RICsubscription_withCause_ItemIEs_tag2el_13[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ }; -static asn_per_constraints_t asn_PER_memb_criticality_constr_123 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ +asn_SEQUENCE_specifics_t asn_SPC_RICsubscription_withCause_ItemIEs_specs_13 = { + sizeof(struct RICsubscription_withCause_ItemIEs), + offsetof(struct RICsubscription_withCause_ItemIEs, _asn_ctx), + asn_MAP_RICsubscription_withCause_ItemIEs_tag2el_13, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ }; -static asn_per_constraints_t asn_PER_memb_value_constr_124 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ +asn_TYPE_descriptor_t asn_DEF_RICsubscription_withCause_ItemIEs = { + "RICsubscription-withCause-ItemIEs", + "RICsubscription-withCause-ItemIEs", + &asn_OP_SEQUENCE, + asn_DEF_RICsubscription_withCause_ItemIEs_tags_13, + sizeof(asn_DEF_RICsubscription_withCause_ItemIEs_tags_13) + /sizeof(asn_DEF_RICsubscription_withCause_ItemIEs_tags_13[0]), /* 1 */ + asn_DEF_RICsubscription_withCause_ItemIEs_tags_13, /* Same as above */ + sizeof(asn_DEF_RICsubscription_withCause_ItemIEs_tags_13) + /sizeof(asn_DEF_RICsubscription_withCause_ItemIEs_tags_13[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RICsubscription_withCause_ItemIEs_13, + 3, /* Elements count */ + &asn_SPC_RICsubscription_withCause_ItemIEs_specs_13 /* Additional specs */ }; -static asn_per_constraints_t asn_PER_memb_id_constr_126 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ + +static asn_TYPE_member_t asn_MBR_value_20[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdate_ItemIEs__value, choice.E2connectionUpdate_Item), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_E2connectionUpdate_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "E2connectionUpdate-Item" + }, }; -static asn_per_constraints_t asn_PER_memb_criticality_constr_127 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_20[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* E2connectionUpdate-Item */ }; -static asn_per_constraints_t asn_PER_memb_value_constr_128 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ +static asn_CHOICE_specifics_t asn_SPC_value_specs_20 = { + sizeof(struct E2connectionUpdate_ItemIEs__value), + offsetof(struct E2connectionUpdate_ItemIEs__value, _asn_ctx), + offsetof(struct E2connectionUpdate_ItemIEs__value, present), + sizeof(((struct E2connectionUpdate_ItemIEs__value *)0)->present), + asn_MAP_value_tag2el_20, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ }; -static asn_per_constraints_t asn_PER_memb_id_constr_130 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_20 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_20, + 1, /* Elements count */ + &asn_SPC_value_specs_20 /* Additional specs */ }; -static asn_per_constraints_t asn_PER_memb_criticality_constr_131 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ + +asn_TYPE_member_t asn_MBR_E2connectionUpdate_ItemIEs_17[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdate_ItemIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_id_constr_18, memb_id_constraint_17 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdate_ItemIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_E2connectionUpdate_ItemIEs_criticality_type, + { 0, &asn_PER_memb_criticality_constr_19, memb_criticality_constraint_17 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdate_ItemIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_20, + select_E2connectionUpdate_ItemIEs_value_type, + { 0, &asn_PER_memb_value_constr_20, memb_value_constraint_17 }, + 0, 0, /* No default value */ + "value" + }, }; -static asn_per_constraints_t asn_PER_memb_value_constr_132 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ +static const ber_tlv_tag_t asn_DEF_E2connectionUpdate_ItemIEs_tags_17[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -static asn_per_constraints_t asn_PER_memb_id_constr_134 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ +static const asn_TYPE_tag2member_t asn_MAP_E2connectionUpdate_ItemIEs_tag2el_17[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ }; -static asn_per_constraints_t asn_PER_memb_criticality_constr_135 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ +asn_SEQUENCE_specifics_t asn_SPC_E2connectionUpdate_ItemIEs_specs_17 = { + sizeof(struct E2connectionUpdate_ItemIEs), + offsetof(struct E2connectionUpdate_ItemIEs, _asn_ctx), + asn_MAP_E2connectionUpdate_ItemIEs_tag2el_17, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ }; -static asn_per_constraints_t asn_PER_memb_value_constr_136 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ +asn_TYPE_descriptor_t asn_DEF_E2connectionUpdate_ItemIEs = { + "E2connectionUpdate-ItemIEs", + "E2connectionUpdate-ItemIEs", + &asn_OP_SEQUENCE, + asn_DEF_E2connectionUpdate_ItemIEs_tags_17, + sizeof(asn_DEF_E2connectionUpdate_ItemIEs_tags_17) + /sizeof(asn_DEF_E2connectionUpdate_ItemIEs_tags_17[0]), /* 1 */ + asn_DEF_E2connectionUpdate_ItemIEs_tags_17, /* Same as above */ + sizeof(asn_DEF_E2connectionUpdate_ItemIEs_tags_17) + /sizeof(asn_DEF_E2connectionUpdate_ItemIEs_tags_17[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_E2connectionUpdate_ItemIEs_17, + 3, /* Elements count */ + &asn_SPC_E2connectionUpdate_ItemIEs_specs_17 /* Additional specs */ }; -static asn_per_constraints_t asn_PER_memb_id_constr_138 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ + +static asn_TYPE_member_t asn_MBR_value_24[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdateRemove_ItemIEs__value, choice.E2connectionUpdateRemove_Item), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_E2connectionUpdateRemove_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "E2connectionUpdateRemove-Item" + }, }; -static asn_per_constraints_t asn_PER_memb_criticality_constr_139 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_24[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* E2connectionUpdateRemove-Item */ }; -static asn_per_constraints_t asn_PER_memb_value_constr_140 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ +static asn_CHOICE_specifics_t asn_SPC_value_specs_24 = { + sizeof(struct E2connectionUpdateRemove_ItemIEs__value), + offsetof(struct E2connectionUpdateRemove_ItemIEs__value, _asn_ctx), + offsetof(struct E2connectionUpdateRemove_ItemIEs__value, present), + sizeof(((struct E2connectionUpdateRemove_ItemIEs__value *)0)->present), + asn_MAP_value_tag2el_24, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ }; -static asn_per_constraints_t asn_PER_memb_id_constr_142 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_24 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_24, + 1, /* Elements count */ + &asn_SPC_value_specs_24 /* Additional specs */ }; -static asn_per_constraints_t asn_PER_memb_criticality_constr_143 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ + +asn_TYPE_member_t asn_MBR_E2connectionUpdateRemove_ItemIEs_21[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdateRemove_ItemIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_id_constr_22, memb_id_constraint_21 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdateRemove_ItemIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_E2connectionUpdateRemove_ItemIEs_criticality_type, + { 0, &asn_PER_memb_criticality_constr_23, memb_criticality_constraint_21 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdateRemove_ItemIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_24, + select_E2connectionUpdateRemove_ItemIEs_value_type, + { 0, &asn_PER_memb_value_constr_24, memb_value_constraint_21 }, + 0, 0, /* No default value */ + "value" + }, }; -static asn_per_constraints_t asn_PER_memb_value_constr_144 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ +static const ber_tlv_tag_t asn_DEF_E2connectionUpdateRemove_ItemIEs_tags_21[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -static asn_per_constraints_t asn_PER_memb_id_constr_146 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ +static const asn_TYPE_tag2member_t asn_MAP_E2connectionUpdateRemove_ItemIEs_tag2el_21[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ }; -static asn_per_constraints_t asn_PER_memb_criticality_constr_147 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ +asn_SEQUENCE_specifics_t asn_SPC_E2connectionUpdateRemove_ItemIEs_specs_21 = { + sizeof(struct E2connectionUpdateRemove_ItemIEs), + offsetof(struct E2connectionUpdateRemove_ItemIEs, _asn_ctx), + asn_MAP_E2connectionUpdateRemove_ItemIEs_tag2el_21, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ }; -static asn_per_constraints_t asn_PER_memb_value_constr_148 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ +asn_TYPE_descriptor_t asn_DEF_E2connectionUpdateRemove_ItemIEs = { + "E2connectionUpdateRemove-ItemIEs", + "E2connectionUpdateRemove-ItemIEs", + &asn_OP_SEQUENCE, + asn_DEF_E2connectionUpdateRemove_ItemIEs_tags_21, + sizeof(asn_DEF_E2connectionUpdateRemove_ItemIEs_tags_21) + /sizeof(asn_DEF_E2connectionUpdateRemove_ItemIEs_tags_21[0]), /* 1 */ + asn_DEF_E2connectionUpdateRemove_ItemIEs_tags_21, /* Same as above */ + sizeof(asn_DEF_E2connectionUpdateRemove_ItemIEs_tags_21) + /sizeof(asn_DEF_E2connectionUpdateRemove_ItemIEs_tags_21[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_E2connectionUpdateRemove_ItemIEs_21, + 3, /* Elements count */ + &asn_SPC_E2connectionUpdateRemove_ItemIEs_specs_21 /* Additional specs */ }; -static asn_TYPE_member_t asn_MBR_value_4[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICaction_ToBeSetup_ItemIEs__value, choice.RICaction_ToBeSetup_Item), + +static asn_TYPE_member_t asn_MBR_value_28[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2connectionSetupFailed_ItemIEs__value, choice.E2connectionSetupFailed_Item), (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, - &asn_DEF_RICaction_ToBeSetup_Item, + &asn_DEF_E2connectionSetupFailed_Item, 0, { 0, 0, 0 }, 0, 0, /* No default value */ - "RICaction-ToBeSetup-Item" + "E2connectionSetupFailed-Item" }, }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_4[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RICaction-ToBeSetup-Item */ +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_28[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* E2connectionSetupFailed-Item */ }; -static asn_CHOICE_specifics_t asn_SPC_value_specs_4 = { - sizeof(struct RICaction_ToBeSetup_ItemIEs__value), - offsetof(struct RICaction_ToBeSetup_ItemIEs__value, _asn_ctx), - offsetof(struct RICaction_ToBeSetup_ItemIEs__value, present), - sizeof(((struct RICaction_ToBeSetup_ItemIEs__value *)0)->present), - asn_MAP_value_tag2el_4, +static asn_CHOICE_specifics_t asn_SPC_value_specs_28 = { + sizeof(struct E2connectionSetupFailed_ItemIEs__value), + offsetof(struct E2connectionSetupFailed_ItemIEs__value, _asn_ctx), + offsetof(struct E2connectionSetupFailed_ItemIEs__value, present), + sizeof(((struct E2connectionSetupFailed_ItemIEs__value *)0)->present), + asn_MAP_value_tag2el_28, 1, /* Count of tags in the map */ 0, 0, -1 /* Extensions start */ }; static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_4 = { +asn_TYPE_descriptor_t asn_DEF_value_28 = { "value", "value", &asn_OP_OPEN_TYPE, @@ -5773,97 +7530,98 @@ asn_TYPE_descriptor_t asn_DEF_value_4 = { 0, /* No tags (pointer) */ 0, /* No tags (count) */ { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_4, + asn_MBR_value_28, 1, /* Elements count */ - &asn_SPC_value_specs_4 /* Additional specs */ + &asn_SPC_value_specs_28 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_RICaction_ToBeSetup_ItemIEs_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICaction_ToBeSetup_ItemIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, +asn_TYPE_member_t asn_MBR_E2connectionSetupFailed_ItemIEs_25[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2connectionSetupFailed_ItemIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_ProtocolIE_ID, 0, - { 0, &asn_PER_memb_id_constr_2, memb_id_constraint_1 }, + { 0, &asn_PER_memb_id_constr_26, memb_id_constraint_25 }, 0, 0, /* No default value */ "id" }, - { ATF_NOFLAGS, 0, offsetof(struct RICaction_ToBeSetup_ItemIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, + { ATF_NOFLAGS, 0, offsetof(struct E2connectionSetupFailed_ItemIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_Criticality, - select_RICaction_ToBeSetup_ItemIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_3, memb_criticality_constraint_1 }, + select_E2connectionSetupFailed_ItemIEs_criticality_type, + { 0, &asn_PER_memb_criticality_constr_27, memb_criticality_constraint_25 }, 0, 0, /* No default value */ "criticality" }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICaction_ToBeSetup_ItemIEs, value), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_value_4, - select_RICaction_ToBeSetup_ItemIEs_value_type, - { 0, &asn_PER_memb_value_constr_4, memb_value_constraint_1 }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E2connectionSetupFailed_ItemIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_28, + select_E2connectionSetupFailed_ItemIEs_value_type, + { 0, &asn_PER_memb_value_constr_28, memb_value_constraint_25 }, 0, 0, /* No default value */ "value" }, }; -static const ber_tlv_tag_t asn_DEF_RICaction_ToBeSetup_ItemIEs_tags_1[] = { +static const ber_tlv_tag_t asn_DEF_E2connectionSetupFailed_ItemIEs_tags_25[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -static const asn_TYPE_tag2member_t asn_MAP_RICaction_ToBeSetup_ItemIEs_tag2el_1[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +static const asn_TYPE_tag2member_t asn_MAP_E2connectionSetupFailed_ItemIEs_tag2el_25[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ }; -asn_SEQUENCE_specifics_t asn_SPC_RICaction_ToBeSetup_ItemIEs_specs_1 = { - sizeof(struct RICaction_ToBeSetup_ItemIEs), - offsetof(struct RICaction_ToBeSetup_ItemIEs, _asn_ctx), - asn_MAP_RICaction_ToBeSetup_ItemIEs_tag2el_1, - 2, /* Count of tags in the map */ +asn_SEQUENCE_specifics_t asn_SPC_E2connectionSetupFailed_ItemIEs_specs_25 = { + sizeof(struct E2connectionSetupFailed_ItemIEs), + offsetof(struct E2connectionSetupFailed_ItemIEs, _asn_ctx), + asn_MAP_E2connectionSetupFailed_ItemIEs_tag2el_25, + 3, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; -asn_TYPE_descriptor_t asn_DEF_RICaction_ToBeSetup_ItemIEs = { - "RICaction-ToBeSetup-ItemIEs", - "RICaction-ToBeSetup-ItemIEs", +asn_TYPE_descriptor_t asn_DEF_E2connectionSetupFailed_ItemIEs = { + "E2connectionSetupFailed-ItemIEs", + "E2connectionSetupFailed-ItemIEs", &asn_OP_SEQUENCE, - asn_DEF_RICaction_ToBeSetup_ItemIEs_tags_1, - sizeof(asn_DEF_RICaction_ToBeSetup_ItemIEs_tags_1) - /sizeof(asn_DEF_RICaction_ToBeSetup_ItemIEs_tags_1[0]), /* 1 */ - asn_DEF_RICaction_ToBeSetup_ItemIEs_tags_1, /* Same as above */ - sizeof(asn_DEF_RICaction_ToBeSetup_ItemIEs_tags_1) - /sizeof(asn_DEF_RICaction_ToBeSetup_ItemIEs_tags_1[0]), /* 1 */ + asn_DEF_E2connectionSetupFailed_ItemIEs_tags_25, + sizeof(asn_DEF_E2connectionSetupFailed_ItemIEs_tags_25) + /sizeof(asn_DEF_E2connectionSetupFailed_ItemIEs_tags_25[0]), /* 1 */ + asn_DEF_E2connectionSetupFailed_ItemIEs_tags_25, /* Same as above */ + sizeof(asn_DEF_E2connectionSetupFailed_ItemIEs_tags_25) + /sizeof(asn_DEF_E2connectionSetupFailed_ItemIEs_tags_25[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICaction_ToBeSetup_ItemIEs_1, + asn_MBR_E2connectionSetupFailed_ItemIEs_25, 3, /* Elements count */ - &asn_SPC_RICaction_ToBeSetup_ItemIEs_specs_1 /* Additional specs */ + &asn_SPC_E2connectionSetupFailed_ItemIEs_specs_25 /* Additional specs */ }; -static asn_TYPE_member_t asn_MBR_value_8[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICaction_Admitted_ItemIEs__value, choice.RICaction_Admitted_Item), +static asn_TYPE_member_t asn_MBR_value_32[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigAddition_ItemIEs__value, choice.E2nodeComponentConfigAddition_Item), (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, - &asn_DEF_RICaction_Admitted_Item, + &asn_DEF_E2nodeComponentConfigAddition_Item, 0, { 0, 0, 0 }, 0, 0, /* No default value */ - "RICaction-Admitted-Item" + "E2nodeComponentConfigAddition-Item" }, }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_8[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RICaction-Admitted-Item */ +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_32[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* E2nodeComponentConfigAddition-Item */ }; -static asn_CHOICE_specifics_t asn_SPC_value_specs_8 = { - sizeof(struct RICaction_Admitted_ItemIEs__value), - offsetof(struct RICaction_Admitted_ItemIEs__value, _asn_ctx), - offsetof(struct RICaction_Admitted_ItemIEs__value, present), - sizeof(((struct RICaction_Admitted_ItemIEs__value *)0)->present), - asn_MAP_value_tag2el_8, +static asn_CHOICE_specifics_t asn_SPC_value_specs_32 = { + sizeof(struct E2nodeComponentConfigAddition_ItemIEs__value), + offsetof(struct E2nodeComponentConfigAddition_ItemIEs__value, _asn_ctx), + offsetof(struct E2nodeComponentConfigAddition_ItemIEs__value, present), + sizeof(((struct E2nodeComponentConfigAddition_ItemIEs__value *)0)->present), + asn_MAP_value_tag2el_32, 1, /* Count of tags in the map */ 0, 0, -1 /* Extensions start */ }; static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_8 = { +asn_TYPE_descriptor_t asn_DEF_value_32 = { "value", "value", &asn_OP_OPEN_TYPE, @@ -5872,97 +7630,98 @@ asn_TYPE_descriptor_t asn_DEF_value_8 = { 0, /* No tags (pointer) */ 0, /* No tags (count) */ { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_8, + asn_MBR_value_32, 1, /* Elements count */ - &asn_SPC_value_specs_8 /* Additional specs */ + &asn_SPC_value_specs_32 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_RICaction_Admitted_ItemIEs_5[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICaction_Admitted_ItemIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, +asn_TYPE_member_t asn_MBR_E2nodeComponentConfigAddition_ItemIEs_29[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigAddition_ItemIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_ProtocolIE_ID, 0, - { 0, &asn_PER_memb_id_constr_6, memb_id_constraint_5 }, + { 0, &asn_PER_memb_id_constr_30, memb_id_constraint_29 }, 0, 0, /* No default value */ "id" }, - { ATF_NOFLAGS, 0, offsetof(struct RICaction_Admitted_ItemIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigAddition_ItemIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_Criticality, - select_RICaction_Admitted_ItemIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_7, memb_criticality_constraint_5 }, + select_E2nodeComponentConfigAddition_ItemIEs_criticality_type, + { 0, &asn_PER_memb_criticality_constr_31, memb_criticality_constraint_29 }, 0, 0, /* No default value */ "criticality" }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICaction_Admitted_ItemIEs, value), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_value_8, - select_RICaction_Admitted_ItemIEs_value_type, - { 0, &asn_PER_memb_value_constr_8, memb_value_constraint_5 }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigAddition_ItemIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_32, + select_E2nodeComponentConfigAddition_ItemIEs_value_type, + { 0, &asn_PER_memb_value_constr_32, memb_value_constraint_29 }, 0, 0, /* No default value */ "value" }, }; -static const ber_tlv_tag_t asn_DEF_RICaction_Admitted_ItemIEs_tags_5[] = { +static const ber_tlv_tag_t asn_DEF_E2nodeComponentConfigAddition_ItemIEs_tags_29[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -static const asn_TYPE_tag2member_t asn_MAP_RICaction_Admitted_ItemIEs_tag2el_5[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +static const asn_TYPE_tag2member_t asn_MAP_E2nodeComponentConfigAddition_ItemIEs_tag2el_29[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ }; -asn_SEQUENCE_specifics_t asn_SPC_RICaction_Admitted_ItemIEs_specs_5 = { - sizeof(struct RICaction_Admitted_ItemIEs), - offsetof(struct RICaction_Admitted_ItemIEs, _asn_ctx), - asn_MAP_RICaction_Admitted_ItemIEs_tag2el_5, - 2, /* Count of tags in the map */ +asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigAddition_ItemIEs_specs_29 = { + sizeof(struct E2nodeComponentConfigAddition_ItemIEs), + offsetof(struct E2nodeComponentConfigAddition_ItemIEs, _asn_ctx), + asn_MAP_E2nodeComponentConfigAddition_ItemIEs_tag2el_29, + 3, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; -asn_TYPE_descriptor_t asn_DEF_RICaction_Admitted_ItemIEs = { - "RICaction-Admitted-ItemIEs", - "RICaction-Admitted-ItemIEs", +asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigAddition_ItemIEs = { + "E2nodeComponentConfigAddition-ItemIEs", + "E2nodeComponentConfigAddition-ItemIEs", &asn_OP_SEQUENCE, - asn_DEF_RICaction_Admitted_ItemIEs_tags_5, - sizeof(asn_DEF_RICaction_Admitted_ItemIEs_tags_5) - /sizeof(asn_DEF_RICaction_Admitted_ItemIEs_tags_5[0]), /* 1 */ - asn_DEF_RICaction_Admitted_ItemIEs_tags_5, /* Same as above */ - sizeof(asn_DEF_RICaction_Admitted_ItemIEs_tags_5) - /sizeof(asn_DEF_RICaction_Admitted_ItemIEs_tags_5[0]), /* 1 */ + asn_DEF_E2nodeComponentConfigAddition_ItemIEs_tags_29, + sizeof(asn_DEF_E2nodeComponentConfigAddition_ItemIEs_tags_29) + /sizeof(asn_DEF_E2nodeComponentConfigAddition_ItemIEs_tags_29[0]), /* 1 */ + asn_DEF_E2nodeComponentConfigAddition_ItemIEs_tags_29, /* Same as above */ + sizeof(asn_DEF_E2nodeComponentConfigAddition_ItemIEs_tags_29) + /sizeof(asn_DEF_E2nodeComponentConfigAddition_ItemIEs_tags_29[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICaction_Admitted_ItemIEs_5, + asn_MBR_E2nodeComponentConfigAddition_ItemIEs_29, 3, /* Elements count */ - &asn_SPC_RICaction_Admitted_ItemIEs_specs_5 /* Additional specs */ + &asn_SPC_E2nodeComponentConfigAddition_ItemIEs_specs_29 /* Additional specs */ }; -static asn_TYPE_member_t asn_MBR_value_12[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICaction_NotAdmitted_ItemIEs__value, choice.RICaction_NotAdmitted_Item), +static asn_TYPE_member_t asn_MBR_value_36[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigUpdate_ItemIEs__value, choice.E2nodeComponentConfigUpdate_Item), (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, - &asn_DEF_RICaction_NotAdmitted_Item, + &asn_DEF_E2nodeComponentConfigUpdate_Item, 0, { 0, 0, 0 }, 0, 0, /* No default value */ - "RICaction-NotAdmitted-Item" + "E2nodeComponentConfigUpdate-Item" }, }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_12[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RICaction-NotAdmitted-Item */ +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_36[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* E2nodeComponentConfigUpdate-Item */ }; -static asn_CHOICE_specifics_t asn_SPC_value_specs_12 = { - sizeof(struct RICaction_NotAdmitted_ItemIEs__value), - offsetof(struct RICaction_NotAdmitted_ItemIEs__value, _asn_ctx), - offsetof(struct RICaction_NotAdmitted_ItemIEs__value, present), - sizeof(((struct RICaction_NotAdmitted_ItemIEs__value *)0)->present), - asn_MAP_value_tag2el_12, +static asn_CHOICE_specifics_t asn_SPC_value_specs_36 = { + sizeof(struct E2nodeComponentConfigUpdate_ItemIEs__value), + offsetof(struct E2nodeComponentConfigUpdate_ItemIEs__value, _asn_ctx), + offsetof(struct E2nodeComponentConfigUpdate_ItemIEs__value, present), + sizeof(((struct E2nodeComponentConfigUpdate_ItemIEs__value *)0)->present), + asn_MAP_value_tag2el_36, 1, /* Count of tags in the map */ 0, 0, -1 /* Extensions start */ }; static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_12 = { +asn_TYPE_descriptor_t asn_DEF_value_36 = { "value", "value", &asn_OP_OPEN_TYPE, @@ -5971,97 +7730,98 @@ asn_TYPE_descriptor_t asn_DEF_value_12 = { 0, /* No tags (pointer) */ 0, /* No tags (count) */ { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_12, + asn_MBR_value_36, 1, /* Elements count */ - &asn_SPC_value_specs_12 /* Additional specs */ + &asn_SPC_value_specs_36 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_RICaction_NotAdmitted_ItemIEs_9[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICaction_NotAdmitted_ItemIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, +asn_TYPE_member_t asn_MBR_E2nodeComponentConfigUpdate_ItemIEs_33[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigUpdate_ItemIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_ProtocolIE_ID, 0, - { 0, &asn_PER_memb_id_constr_10, memb_id_constraint_9 }, + { 0, &asn_PER_memb_id_constr_34, memb_id_constraint_33 }, 0, 0, /* No default value */ "id" }, - { ATF_NOFLAGS, 0, offsetof(struct RICaction_NotAdmitted_ItemIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigUpdate_ItemIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_Criticality, - select_RICaction_NotAdmitted_ItemIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_11, memb_criticality_constraint_9 }, + select_E2nodeComponentConfigUpdate_ItemIEs_criticality_type, + { 0, &asn_PER_memb_criticality_constr_35, memb_criticality_constraint_33 }, 0, 0, /* No default value */ "criticality" }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICaction_NotAdmitted_ItemIEs, value), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_value_12, - select_RICaction_NotAdmitted_ItemIEs_value_type, - { 0, &asn_PER_memb_value_constr_12, memb_value_constraint_9 }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigUpdate_ItemIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_36, + select_E2nodeComponentConfigUpdate_ItemIEs_value_type, + { 0, &asn_PER_memb_value_constr_36, memb_value_constraint_33 }, 0, 0, /* No default value */ "value" }, }; -static const ber_tlv_tag_t asn_DEF_RICaction_NotAdmitted_ItemIEs_tags_9[] = { +static const ber_tlv_tag_t asn_DEF_E2nodeComponentConfigUpdate_ItemIEs_tags_33[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -static const asn_TYPE_tag2member_t asn_MAP_RICaction_NotAdmitted_ItemIEs_tag2el_9[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +static const asn_TYPE_tag2member_t asn_MAP_E2nodeComponentConfigUpdate_ItemIEs_tag2el_33[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ }; -asn_SEQUENCE_specifics_t asn_SPC_RICaction_NotAdmitted_ItemIEs_specs_9 = { - sizeof(struct RICaction_NotAdmitted_ItemIEs), - offsetof(struct RICaction_NotAdmitted_ItemIEs, _asn_ctx), - asn_MAP_RICaction_NotAdmitted_ItemIEs_tag2el_9, - 2, /* Count of tags in the map */ +asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigUpdate_ItemIEs_specs_33 = { + sizeof(struct E2nodeComponentConfigUpdate_ItemIEs), + offsetof(struct E2nodeComponentConfigUpdate_ItemIEs, _asn_ctx), + asn_MAP_E2nodeComponentConfigUpdate_ItemIEs_tag2el_33, + 3, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; -asn_TYPE_descriptor_t asn_DEF_RICaction_NotAdmitted_ItemIEs = { - "RICaction-NotAdmitted-ItemIEs", - "RICaction-NotAdmitted-ItemIEs", +asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigUpdate_ItemIEs = { + "E2nodeComponentConfigUpdate-ItemIEs", + "E2nodeComponentConfigUpdate-ItemIEs", &asn_OP_SEQUENCE, - asn_DEF_RICaction_NotAdmitted_ItemIEs_tags_9, - sizeof(asn_DEF_RICaction_NotAdmitted_ItemIEs_tags_9) - /sizeof(asn_DEF_RICaction_NotAdmitted_ItemIEs_tags_9[0]), /* 1 */ - asn_DEF_RICaction_NotAdmitted_ItemIEs_tags_9, /* Same as above */ - sizeof(asn_DEF_RICaction_NotAdmitted_ItemIEs_tags_9) - /sizeof(asn_DEF_RICaction_NotAdmitted_ItemIEs_tags_9[0]), /* 1 */ + asn_DEF_E2nodeComponentConfigUpdate_ItemIEs_tags_33, + sizeof(asn_DEF_E2nodeComponentConfigUpdate_ItemIEs_tags_33) + /sizeof(asn_DEF_E2nodeComponentConfigUpdate_ItemIEs_tags_33[0]), /* 1 */ + asn_DEF_E2nodeComponentConfigUpdate_ItemIEs_tags_33, /* Same as above */ + sizeof(asn_DEF_E2nodeComponentConfigUpdate_ItemIEs_tags_33) + /sizeof(asn_DEF_E2nodeComponentConfigUpdate_ItemIEs_tags_33[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICaction_NotAdmitted_ItemIEs_9, + asn_MBR_E2nodeComponentConfigUpdate_ItemIEs_33, 3, /* Elements count */ - &asn_SPC_RICaction_NotAdmitted_ItemIEs_specs_9 /* Additional specs */ + &asn_SPC_E2nodeComponentConfigUpdate_ItemIEs_specs_33 /* Additional specs */ }; -static asn_TYPE_member_t asn_MBR_value_16[] = { - { ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdate_ItemIEs__value, choice.E2connectionUpdate_Item), +static asn_TYPE_member_t asn_MBR_value_40[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigRemoval_ItemIEs__value, choice.E2nodeComponentConfigRemoval_Item), (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, - &asn_DEF_E2connectionUpdate_Item, + &asn_DEF_E2nodeComponentConfigRemoval_Item, 0, { 0, 0, 0 }, 0, 0, /* No default value */ - "E2connectionUpdate-Item" + "E2nodeComponentConfigRemoval-Item" }, }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_16[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* E2connectionUpdate-Item */ +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_40[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* E2nodeComponentConfigRemoval-Item */ }; -static asn_CHOICE_specifics_t asn_SPC_value_specs_16 = { - sizeof(struct E2connectionUpdate_ItemIEs__value), - offsetof(struct E2connectionUpdate_ItemIEs__value, _asn_ctx), - offsetof(struct E2connectionUpdate_ItemIEs__value, present), - sizeof(((struct E2connectionUpdate_ItemIEs__value *)0)->present), - asn_MAP_value_tag2el_16, +static asn_CHOICE_specifics_t asn_SPC_value_specs_40 = { + sizeof(struct E2nodeComponentConfigRemoval_ItemIEs__value), + offsetof(struct E2nodeComponentConfigRemoval_ItemIEs__value, _asn_ctx), + offsetof(struct E2nodeComponentConfigRemoval_ItemIEs__value, present), + sizeof(((struct E2nodeComponentConfigRemoval_ItemIEs__value *)0)->present), + asn_MAP_value_tag2el_40, 1, /* Count of tags in the map */ 0, 0, -1 /* Extensions start */ }; static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_16 = { +asn_TYPE_descriptor_t asn_DEF_value_40 = { "value", "value", &asn_OP_OPEN_TYPE, @@ -6070,97 +7830,98 @@ asn_TYPE_descriptor_t asn_DEF_value_16 = { 0, /* No tags (pointer) */ 0, /* No tags (count) */ { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_16, + asn_MBR_value_40, 1, /* Elements count */ - &asn_SPC_value_specs_16 /* Additional specs */ + &asn_SPC_value_specs_40 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_E2connectionUpdate_ItemIEs_13[] = { - { ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdate_ItemIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, +asn_TYPE_member_t asn_MBR_E2nodeComponentConfigRemoval_ItemIEs_37[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigRemoval_ItemIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_ProtocolIE_ID, 0, - { 0, &asn_PER_memb_id_constr_14, memb_id_constraint_13 }, + { 0, &asn_PER_memb_id_constr_38, memb_id_constraint_37 }, 0, 0, /* No default value */ "id" }, - { ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdate_ItemIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigRemoval_ItemIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_Criticality, - select_E2connectionUpdate_ItemIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_15, memb_criticality_constraint_13 }, + select_E2nodeComponentConfigRemoval_ItemIEs_criticality_type, + { 0, &asn_PER_memb_criticality_constr_39, memb_criticality_constraint_37 }, 0, 0, /* No default value */ "criticality" }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdate_ItemIEs, value), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_value_16, - select_E2connectionUpdate_ItemIEs_value_type, - { 0, &asn_PER_memb_value_constr_16, memb_value_constraint_13 }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigRemoval_ItemIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_40, + select_E2nodeComponentConfigRemoval_ItemIEs_value_type, + { 0, &asn_PER_memb_value_constr_40, memb_value_constraint_37 }, 0, 0, /* No default value */ "value" }, }; -static const ber_tlv_tag_t asn_DEF_E2connectionUpdate_ItemIEs_tags_13[] = { +static const ber_tlv_tag_t asn_DEF_E2nodeComponentConfigRemoval_ItemIEs_tags_37[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -static const asn_TYPE_tag2member_t asn_MAP_E2connectionUpdate_ItemIEs_tag2el_13[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +static const asn_TYPE_tag2member_t asn_MAP_E2nodeComponentConfigRemoval_ItemIEs_tag2el_37[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ }; -asn_SEQUENCE_specifics_t asn_SPC_E2connectionUpdate_ItemIEs_specs_13 = { - sizeof(struct E2connectionUpdate_ItemIEs), - offsetof(struct E2connectionUpdate_ItemIEs, _asn_ctx), - asn_MAP_E2connectionUpdate_ItemIEs_tag2el_13, - 2, /* Count of tags in the map */ +asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigRemoval_ItemIEs_specs_37 = { + sizeof(struct E2nodeComponentConfigRemoval_ItemIEs), + offsetof(struct E2nodeComponentConfigRemoval_ItemIEs, _asn_ctx), + asn_MAP_E2nodeComponentConfigRemoval_ItemIEs_tag2el_37, + 3, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; -asn_TYPE_descriptor_t asn_DEF_E2connectionUpdate_ItemIEs = { - "E2connectionUpdate-ItemIEs", - "E2connectionUpdate-ItemIEs", +asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigRemoval_ItemIEs = { + "E2nodeComponentConfigRemoval-ItemIEs", + "E2nodeComponentConfigRemoval-ItemIEs", &asn_OP_SEQUENCE, - asn_DEF_E2connectionUpdate_ItemIEs_tags_13, - sizeof(asn_DEF_E2connectionUpdate_ItemIEs_tags_13) - /sizeof(asn_DEF_E2connectionUpdate_ItemIEs_tags_13[0]), /* 1 */ - asn_DEF_E2connectionUpdate_ItemIEs_tags_13, /* Same as above */ - sizeof(asn_DEF_E2connectionUpdate_ItemIEs_tags_13) - /sizeof(asn_DEF_E2connectionUpdate_ItemIEs_tags_13[0]), /* 1 */ + asn_DEF_E2nodeComponentConfigRemoval_ItemIEs_tags_37, + sizeof(asn_DEF_E2nodeComponentConfigRemoval_ItemIEs_tags_37) + /sizeof(asn_DEF_E2nodeComponentConfigRemoval_ItemIEs_tags_37[0]), /* 1 */ + asn_DEF_E2nodeComponentConfigRemoval_ItemIEs_tags_37, /* Same as above */ + sizeof(asn_DEF_E2nodeComponentConfigRemoval_ItemIEs_tags_37) + /sizeof(asn_DEF_E2nodeComponentConfigRemoval_ItemIEs_tags_37[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_E2connectionUpdate_ItemIEs_13, + asn_MBR_E2nodeComponentConfigRemoval_ItemIEs_37, 3, /* Elements count */ - &asn_SPC_E2connectionUpdate_ItemIEs_specs_13 /* Additional specs */ + &asn_SPC_E2nodeComponentConfigRemoval_ItemIEs_specs_37 /* Additional specs */ }; -static asn_TYPE_member_t asn_MBR_value_20[] = { - { ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdateRemove_ItemIEs__value, choice.E2connectionUpdateRemove_Item), +static asn_TYPE_member_t asn_MBR_value_44[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2nodeTNLassociationRemoval_ItemIEs__value, choice.E2nodeTNLassociationRemoval_Item), (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, - &asn_DEF_E2connectionUpdateRemove_Item, + &asn_DEF_E2nodeTNLassociationRemoval_Item, 0, { 0, 0, 0 }, 0, 0, /* No default value */ - "E2connectionUpdateRemove-Item" + "E2nodeTNLassociationRemoval-Item" }, }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_20[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* E2connectionUpdateRemove-Item */ +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_44[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* E2nodeTNLassociationRemoval-Item */ }; -static asn_CHOICE_specifics_t asn_SPC_value_specs_20 = { - sizeof(struct E2connectionUpdateRemove_ItemIEs__value), - offsetof(struct E2connectionUpdateRemove_ItemIEs__value, _asn_ctx), - offsetof(struct E2connectionUpdateRemove_ItemIEs__value, present), - sizeof(((struct E2connectionUpdateRemove_ItemIEs__value *)0)->present), - asn_MAP_value_tag2el_20, +static asn_CHOICE_specifics_t asn_SPC_value_specs_44 = { + sizeof(struct E2nodeTNLassociationRemoval_ItemIEs__value), + offsetof(struct E2nodeTNLassociationRemoval_ItemIEs__value, _asn_ctx), + offsetof(struct E2nodeTNLassociationRemoval_ItemIEs__value, present), + sizeof(((struct E2nodeTNLassociationRemoval_ItemIEs__value *)0)->present), + asn_MAP_value_tag2el_44, 1, /* Count of tags in the map */ 0, 0, -1 /* Extensions start */ }; static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_20 = { +asn_TYPE_descriptor_t asn_DEF_value_44 = { "value", "value", &asn_OP_OPEN_TYPE, @@ -6169,97 +7930,98 @@ asn_TYPE_descriptor_t asn_DEF_value_20 = { 0, /* No tags (pointer) */ 0, /* No tags (count) */ { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_20, + asn_MBR_value_44, 1, /* Elements count */ - &asn_SPC_value_specs_20 /* Additional specs */ + &asn_SPC_value_specs_44 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_E2connectionUpdateRemove_ItemIEs_17[] = { - { ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdateRemove_ItemIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, +asn_TYPE_member_t asn_MBR_E2nodeTNLassociationRemoval_ItemIEs_41[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2nodeTNLassociationRemoval_ItemIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_ProtocolIE_ID, 0, - { 0, &asn_PER_memb_id_constr_18, memb_id_constraint_17 }, + { 0, &asn_PER_memb_id_constr_42, memb_id_constraint_41 }, 0, 0, /* No default value */ "id" }, - { ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdateRemove_ItemIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, + { ATF_NOFLAGS, 0, offsetof(struct E2nodeTNLassociationRemoval_ItemIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_Criticality, - select_E2connectionUpdateRemove_ItemIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_19, memb_criticality_constraint_17 }, + select_E2nodeTNLassociationRemoval_ItemIEs_criticality_type, + { 0, &asn_PER_memb_criticality_constr_43, memb_criticality_constraint_41 }, 0, 0, /* No default value */ "criticality" }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdateRemove_ItemIEs, value), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_value_20, - select_E2connectionUpdateRemove_ItemIEs_value_type, - { 0, &asn_PER_memb_value_constr_20, memb_value_constraint_17 }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E2nodeTNLassociationRemoval_ItemIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_44, + select_E2nodeTNLassociationRemoval_ItemIEs_value_type, + { 0, &asn_PER_memb_value_constr_44, memb_value_constraint_41 }, 0, 0, /* No default value */ "value" }, }; -static const ber_tlv_tag_t asn_DEF_E2connectionUpdateRemove_ItemIEs_tags_17[] = { +static const ber_tlv_tag_t asn_DEF_E2nodeTNLassociationRemoval_ItemIEs_tags_41[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_E2connectionUpdateRemove_ItemIEs_tag2el_17[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ -}; -asn_SEQUENCE_specifics_t asn_SPC_E2connectionUpdateRemove_ItemIEs_specs_17 = { - sizeof(struct E2connectionUpdateRemove_ItemIEs), - offsetof(struct E2connectionUpdateRemove_ItemIEs, _asn_ctx), - asn_MAP_E2connectionUpdateRemove_ItemIEs_tag2el_17, - 2, /* Count of tags in the map */ +}; +static const asn_TYPE_tag2member_t asn_MAP_E2nodeTNLassociationRemoval_ItemIEs_tag2el_41[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_E2nodeTNLassociationRemoval_ItemIEs_specs_41 = { + sizeof(struct E2nodeTNLassociationRemoval_ItemIEs), + offsetof(struct E2nodeTNLassociationRemoval_ItemIEs, _asn_ctx), + asn_MAP_E2nodeTNLassociationRemoval_ItemIEs_tag2el_41, + 3, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; -asn_TYPE_descriptor_t asn_DEF_E2connectionUpdateRemove_ItemIEs = { - "E2connectionUpdateRemove-ItemIEs", - "E2connectionUpdateRemove-ItemIEs", +asn_TYPE_descriptor_t asn_DEF_E2nodeTNLassociationRemoval_ItemIEs = { + "E2nodeTNLassociationRemoval-ItemIEs", + "E2nodeTNLassociationRemoval-ItemIEs", &asn_OP_SEQUENCE, - asn_DEF_E2connectionUpdateRemove_ItemIEs_tags_17, - sizeof(asn_DEF_E2connectionUpdateRemove_ItemIEs_tags_17) - /sizeof(asn_DEF_E2connectionUpdateRemove_ItemIEs_tags_17[0]), /* 1 */ - asn_DEF_E2connectionUpdateRemove_ItemIEs_tags_17, /* Same as above */ - sizeof(asn_DEF_E2connectionUpdateRemove_ItemIEs_tags_17) - /sizeof(asn_DEF_E2connectionUpdateRemove_ItemIEs_tags_17[0]), /* 1 */ + asn_DEF_E2nodeTNLassociationRemoval_ItemIEs_tags_41, + sizeof(asn_DEF_E2nodeTNLassociationRemoval_ItemIEs_tags_41) + /sizeof(asn_DEF_E2nodeTNLassociationRemoval_ItemIEs_tags_41[0]), /* 1 */ + asn_DEF_E2nodeTNLassociationRemoval_ItemIEs_tags_41, /* Same as above */ + sizeof(asn_DEF_E2nodeTNLassociationRemoval_ItemIEs_tags_41) + /sizeof(asn_DEF_E2nodeTNLassociationRemoval_ItemIEs_tags_41[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_E2connectionUpdateRemove_ItemIEs_17, + asn_MBR_E2nodeTNLassociationRemoval_ItemIEs_41, 3, /* Elements count */ - &asn_SPC_E2connectionUpdateRemove_ItemIEs_specs_17 /* Additional specs */ + &asn_SPC_E2nodeTNLassociationRemoval_ItemIEs_specs_41 /* Additional specs */ }; -static asn_TYPE_member_t asn_MBR_value_24[] = { - { ATF_NOFLAGS, 0, offsetof(struct E2connectionSetupFailed_ItemIEs__value, choice.E2connectionSetupFailed_Item), +static asn_TYPE_member_t asn_MBR_value_48[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigAdditionAck_ItemIEs__value, choice.E2nodeComponentConfigAdditionAck_Item), (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, - &asn_DEF_E2connectionSetupFailed_Item, + &asn_DEF_E2nodeComponentConfigAdditionAck_Item, 0, { 0, 0, 0 }, 0, 0, /* No default value */ - "E2connectionSetupFailed-Item" + "E2nodeComponentConfigAdditionAck-Item" }, }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_24[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* E2connectionSetupFailed-Item */ +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_48[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* E2nodeComponentConfigAdditionAck-Item */ }; -static asn_CHOICE_specifics_t asn_SPC_value_specs_24 = { - sizeof(struct E2connectionSetupFailed_ItemIEs__value), - offsetof(struct E2connectionSetupFailed_ItemIEs__value, _asn_ctx), - offsetof(struct E2connectionSetupFailed_ItemIEs__value, present), - sizeof(((struct E2connectionSetupFailed_ItemIEs__value *)0)->present), - asn_MAP_value_tag2el_24, +static asn_CHOICE_specifics_t asn_SPC_value_specs_48 = { + sizeof(struct E2nodeComponentConfigAdditionAck_ItemIEs__value), + offsetof(struct E2nodeComponentConfigAdditionAck_ItemIEs__value, _asn_ctx), + offsetof(struct E2nodeComponentConfigAdditionAck_ItemIEs__value, present), + sizeof(((struct E2nodeComponentConfigAdditionAck_ItemIEs__value *)0)->present), + asn_MAP_value_tag2el_48, 1, /* Count of tags in the map */ 0, 0, -1 /* Extensions start */ }; static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_24 = { +asn_TYPE_descriptor_t asn_DEF_value_48 = { "value", "value", &asn_OP_OPEN_TYPE, @@ -6268,97 +8030,98 @@ asn_TYPE_descriptor_t asn_DEF_value_24 = { 0, /* No tags (pointer) */ 0, /* No tags (count) */ { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_24, + asn_MBR_value_48, 1, /* Elements count */ - &asn_SPC_value_specs_24 /* Additional specs */ + &asn_SPC_value_specs_48 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_E2connectionSetupFailed_ItemIEs_21[] = { - { ATF_NOFLAGS, 0, offsetof(struct E2connectionSetupFailed_ItemIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, +asn_TYPE_member_t asn_MBR_E2nodeComponentConfigAdditionAck_ItemIEs_45[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigAdditionAck_ItemIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_ProtocolIE_ID, 0, - { 0, &asn_PER_memb_id_constr_22, memb_id_constraint_21 }, + { 0, &asn_PER_memb_id_constr_46, memb_id_constraint_45 }, 0, 0, /* No default value */ "id" }, - { ATF_NOFLAGS, 0, offsetof(struct E2connectionSetupFailed_ItemIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigAdditionAck_ItemIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_Criticality, - select_E2connectionSetupFailed_ItemIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_23, memb_criticality_constraint_21 }, + select_E2nodeComponentConfigAdditionAck_ItemIEs_criticality_type, + { 0, &asn_PER_memb_criticality_constr_47, memb_criticality_constraint_45 }, 0, 0, /* No default value */ "criticality" }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E2connectionSetupFailed_ItemIEs, value), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_value_24, - select_E2connectionSetupFailed_ItemIEs_value_type, - { 0, &asn_PER_memb_value_constr_24, memb_value_constraint_21 }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigAdditionAck_ItemIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_48, + select_E2nodeComponentConfigAdditionAck_ItemIEs_value_type, + { 0, &asn_PER_memb_value_constr_48, memb_value_constraint_45 }, 0, 0, /* No default value */ "value" }, }; -static const ber_tlv_tag_t asn_DEF_E2connectionSetupFailed_ItemIEs_tags_21[] = { +static const ber_tlv_tag_t asn_DEF_E2nodeComponentConfigAdditionAck_ItemIEs_tags_45[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -static const asn_TYPE_tag2member_t asn_MAP_E2connectionSetupFailed_ItemIEs_tag2el_21[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +static const asn_TYPE_tag2member_t asn_MAP_E2nodeComponentConfigAdditionAck_ItemIEs_tag2el_45[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ }; -asn_SEQUENCE_specifics_t asn_SPC_E2connectionSetupFailed_ItemIEs_specs_21 = { - sizeof(struct E2connectionSetupFailed_ItemIEs), - offsetof(struct E2connectionSetupFailed_ItemIEs, _asn_ctx), - asn_MAP_E2connectionSetupFailed_ItemIEs_tag2el_21, - 2, /* Count of tags in the map */ +asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigAdditionAck_ItemIEs_specs_45 = { + sizeof(struct E2nodeComponentConfigAdditionAck_ItemIEs), + offsetof(struct E2nodeComponentConfigAdditionAck_ItemIEs, _asn_ctx), + asn_MAP_E2nodeComponentConfigAdditionAck_ItemIEs_tag2el_45, + 3, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; -asn_TYPE_descriptor_t asn_DEF_E2connectionSetupFailed_ItemIEs = { - "E2connectionSetupFailed-ItemIEs", - "E2connectionSetupFailed-ItemIEs", +asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigAdditionAck_ItemIEs = { + "E2nodeComponentConfigAdditionAck-ItemIEs", + "E2nodeComponentConfigAdditionAck-ItemIEs", &asn_OP_SEQUENCE, - asn_DEF_E2connectionSetupFailed_ItemIEs_tags_21, - sizeof(asn_DEF_E2connectionSetupFailed_ItemIEs_tags_21) - /sizeof(asn_DEF_E2connectionSetupFailed_ItemIEs_tags_21[0]), /* 1 */ - asn_DEF_E2connectionSetupFailed_ItemIEs_tags_21, /* Same as above */ - sizeof(asn_DEF_E2connectionSetupFailed_ItemIEs_tags_21) - /sizeof(asn_DEF_E2connectionSetupFailed_ItemIEs_tags_21[0]), /* 1 */ + asn_DEF_E2nodeComponentConfigAdditionAck_ItemIEs_tags_45, + sizeof(asn_DEF_E2nodeComponentConfigAdditionAck_ItemIEs_tags_45) + /sizeof(asn_DEF_E2nodeComponentConfigAdditionAck_ItemIEs_tags_45[0]), /* 1 */ + asn_DEF_E2nodeComponentConfigAdditionAck_ItemIEs_tags_45, /* Same as above */ + sizeof(asn_DEF_E2nodeComponentConfigAdditionAck_ItemIEs_tags_45) + /sizeof(asn_DEF_E2nodeComponentConfigAdditionAck_ItemIEs_tags_45[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_E2connectionSetupFailed_ItemIEs_21, + asn_MBR_E2nodeComponentConfigAdditionAck_ItemIEs_45, 3, /* Elements count */ - &asn_SPC_E2connectionSetupFailed_ItemIEs_specs_21 /* Additional specs */ + &asn_SPC_E2nodeComponentConfigAdditionAck_ItemIEs_specs_45 /* Additional specs */ }; -static asn_TYPE_member_t asn_MBR_value_28[] = { - { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigUpdate_ItemIEs__value, choice.E2nodeComponentConfigUpdate_Item), +static asn_TYPE_member_t asn_MBR_value_52[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigUpdateAck_ItemIEs__value, choice.E2nodeComponentConfigUpdateAck_Item), (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, - &asn_DEF_E2nodeComponentConfigUpdate_Item, + &asn_DEF_E2nodeComponentConfigUpdateAck_Item, 0, { 0, 0, 0 }, 0, 0, /* No default value */ - "E2nodeComponentConfigUpdate-Item" + "E2nodeComponentConfigUpdateAck-Item" }, }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_28[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* E2nodeComponentConfigUpdate-Item */ +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_52[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* E2nodeComponentConfigUpdateAck-Item */ }; -static asn_CHOICE_specifics_t asn_SPC_value_specs_28 = { - sizeof(struct E2nodeComponentConfigUpdate_ItemIEs__value), - offsetof(struct E2nodeComponentConfigUpdate_ItemIEs__value, _asn_ctx), - offsetof(struct E2nodeComponentConfigUpdate_ItemIEs__value, present), - sizeof(((struct E2nodeComponentConfigUpdate_ItemIEs__value *)0)->present), - asn_MAP_value_tag2el_28, +static asn_CHOICE_specifics_t asn_SPC_value_specs_52 = { + sizeof(struct E2nodeComponentConfigUpdateAck_ItemIEs__value), + offsetof(struct E2nodeComponentConfigUpdateAck_ItemIEs__value, _asn_ctx), + offsetof(struct E2nodeComponentConfigUpdateAck_ItemIEs__value, present), + sizeof(((struct E2nodeComponentConfigUpdateAck_ItemIEs__value *)0)->present), + asn_MAP_value_tag2el_52, 1, /* Count of tags in the map */ 0, 0, -1 /* Extensions start */ }; static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_28 = { +asn_TYPE_descriptor_t asn_DEF_value_52 = { "value", "value", &asn_OP_OPEN_TYPE, @@ -6367,97 +8130,98 @@ asn_TYPE_descriptor_t asn_DEF_value_28 = { 0, /* No tags (pointer) */ 0, /* No tags (count) */ { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_28, + asn_MBR_value_52, 1, /* Elements count */ - &asn_SPC_value_specs_28 /* Additional specs */ + &asn_SPC_value_specs_52 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_E2nodeComponentConfigUpdate_ItemIEs_25[] = { - { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigUpdate_ItemIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, +asn_TYPE_member_t asn_MBR_E2nodeComponentConfigUpdateAck_ItemIEs_49[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigUpdateAck_ItemIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_ProtocolIE_ID, 0, - { 0, &asn_PER_memb_id_constr_26, memb_id_constraint_25 }, + { 0, &asn_PER_memb_id_constr_50, memb_id_constraint_49 }, 0, 0, /* No default value */ "id" }, - { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigUpdate_ItemIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigUpdateAck_ItemIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_Criticality, - select_E2nodeComponentConfigUpdate_ItemIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_27, memb_criticality_constraint_25 }, + select_E2nodeComponentConfigUpdateAck_ItemIEs_criticality_type, + { 0, &asn_PER_memb_criticality_constr_51, memb_criticality_constraint_49 }, 0, 0, /* No default value */ "criticality" }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigUpdate_ItemIEs, value), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_value_28, - select_E2nodeComponentConfigUpdate_ItemIEs_value_type, - { 0, &asn_PER_memb_value_constr_28, memb_value_constraint_25 }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigUpdateAck_ItemIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_52, + select_E2nodeComponentConfigUpdateAck_ItemIEs_value_type, + { 0, &asn_PER_memb_value_constr_52, memb_value_constraint_49 }, 0, 0, /* No default value */ "value" }, }; -static const ber_tlv_tag_t asn_DEF_E2nodeComponentConfigUpdate_ItemIEs_tags_25[] = { +static const ber_tlv_tag_t asn_DEF_E2nodeComponentConfigUpdateAck_ItemIEs_tags_49[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -static const asn_TYPE_tag2member_t asn_MAP_E2nodeComponentConfigUpdate_ItemIEs_tag2el_25[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +static const asn_TYPE_tag2member_t asn_MAP_E2nodeComponentConfigUpdateAck_ItemIEs_tag2el_49[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ }; -asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigUpdate_ItemIEs_specs_25 = { - sizeof(struct E2nodeComponentConfigUpdate_ItemIEs), - offsetof(struct E2nodeComponentConfigUpdate_ItemIEs, _asn_ctx), - asn_MAP_E2nodeComponentConfigUpdate_ItemIEs_tag2el_25, - 2, /* Count of tags in the map */ +asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigUpdateAck_ItemIEs_specs_49 = { + sizeof(struct E2nodeComponentConfigUpdateAck_ItemIEs), + offsetof(struct E2nodeComponentConfigUpdateAck_ItemIEs, _asn_ctx), + asn_MAP_E2nodeComponentConfigUpdateAck_ItemIEs_tag2el_49, + 3, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; -asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigUpdate_ItemIEs = { - "E2nodeComponentConfigUpdate-ItemIEs", - "E2nodeComponentConfigUpdate-ItemIEs", +asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigUpdateAck_ItemIEs = { + "E2nodeComponentConfigUpdateAck-ItemIEs", + "E2nodeComponentConfigUpdateAck-ItemIEs", &asn_OP_SEQUENCE, - asn_DEF_E2nodeComponentConfigUpdate_ItemIEs_tags_25, - sizeof(asn_DEF_E2nodeComponentConfigUpdate_ItemIEs_tags_25) - /sizeof(asn_DEF_E2nodeComponentConfigUpdate_ItemIEs_tags_25[0]), /* 1 */ - asn_DEF_E2nodeComponentConfigUpdate_ItemIEs_tags_25, /* Same as above */ - sizeof(asn_DEF_E2nodeComponentConfigUpdate_ItemIEs_tags_25) - /sizeof(asn_DEF_E2nodeComponentConfigUpdate_ItemIEs_tags_25[0]), /* 1 */ + asn_DEF_E2nodeComponentConfigUpdateAck_ItemIEs_tags_49, + sizeof(asn_DEF_E2nodeComponentConfigUpdateAck_ItemIEs_tags_49) + /sizeof(asn_DEF_E2nodeComponentConfigUpdateAck_ItemIEs_tags_49[0]), /* 1 */ + asn_DEF_E2nodeComponentConfigUpdateAck_ItemIEs_tags_49, /* Same as above */ + sizeof(asn_DEF_E2nodeComponentConfigUpdateAck_ItemIEs_tags_49) + /sizeof(asn_DEF_E2nodeComponentConfigUpdateAck_ItemIEs_tags_49[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_E2nodeComponentConfigUpdate_ItemIEs_25, + asn_MBR_E2nodeComponentConfigUpdateAck_ItemIEs_49, 3, /* Elements count */ - &asn_SPC_E2nodeComponentConfigUpdate_ItemIEs_specs_25 /* Additional specs */ + &asn_SPC_E2nodeComponentConfigUpdateAck_ItemIEs_specs_49 /* Additional specs */ }; -static asn_TYPE_member_t asn_MBR_value_32[] = { - { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigUpdateAck_ItemIEs__value, choice.E2nodeComponentConfigUpdateAck_Item), +static asn_TYPE_member_t asn_MBR_value_56[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigRemovalAck_ItemIEs__value, choice.E2nodeComponentConfigRemovalAck_Item), (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, - &asn_DEF_E2nodeComponentConfigUpdateAck_Item, + &asn_DEF_E2nodeComponentConfigRemovalAck_Item, 0, { 0, 0, 0 }, 0, 0, /* No default value */ - "E2nodeComponentConfigUpdateAck-Item" + "E2nodeComponentConfigRemovalAck-Item" }, }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_32[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* E2nodeComponentConfigUpdateAck-Item */ +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_56[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* E2nodeComponentConfigRemovalAck-Item */ }; -static asn_CHOICE_specifics_t asn_SPC_value_specs_32 = { - sizeof(struct E2nodeComponentConfigUpdateAck_ItemIEs__value), - offsetof(struct E2nodeComponentConfigUpdateAck_ItemIEs__value, _asn_ctx), - offsetof(struct E2nodeComponentConfigUpdateAck_ItemIEs__value, present), - sizeof(((struct E2nodeComponentConfigUpdateAck_ItemIEs__value *)0)->present), - asn_MAP_value_tag2el_32, +static asn_CHOICE_specifics_t asn_SPC_value_specs_56 = { + sizeof(struct E2nodeComponentConfigRemovalAck_ItemIEs__value), + offsetof(struct E2nodeComponentConfigRemovalAck_ItemIEs__value, _asn_ctx), + offsetof(struct E2nodeComponentConfigRemovalAck_ItemIEs__value, present), + sizeof(((struct E2nodeComponentConfigRemovalAck_ItemIEs__value *)0)->present), + asn_MAP_value_tag2el_56, 1, /* Count of tags in the map */ 0, 0, -1 /* Extensions start */ }; static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_32 = { +asn_TYPE_descriptor_t asn_DEF_value_56 = { "value", "value", &asn_OP_OPEN_TYPE, @@ -6466,72 +8230,73 @@ asn_TYPE_descriptor_t asn_DEF_value_32 = { 0, /* No tags (pointer) */ 0, /* No tags (count) */ { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_32, + asn_MBR_value_56, 1, /* Elements count */ - &asn_SPC_value_specs_32 /* Additional specs */ + &asn_SPC_value_specs_56 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_E2nodeComponentConfigUpdateAck_ItemIEs_29[] = { - { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigUpdateAck_ItemIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, +asn_TYPE_member_t asn_MBR_E2nodeComponentConfigRemovalAck_ItemIEs_53[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigRemovalAck_ItemIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_ProtocolIE_ID, 0, - { 0, &asn_PER_memb_id_constr_30, memb_id_constraint_29 }, + { 0, &asn_PER_memb_id_constr_54, memb_id_constraint_53 }, 0, 0, /* No default value */ "id" }, - { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigUpdateAck_ItemIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigRemovalAck_ItemIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_Criticality, - select_E2nodeComponentConfigUpdateAck_ItemIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_31, memb_criticality_constraint_29 }, + select_E2nodeComponentConfigRemovalAck_ItemIEs_criticality_type, + { 0, &asn_PER_memb_criticality_constr_55, memb_criticality_constraint_53 }, 0, 0, /* No default value */ "criticality" }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigUpdateAck_ItemIEs, value), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_value_32, - select_E2nodeComponentConfigUpdateAck_ItemIEs_value_type, - { 0, &asn_PER_memb_value_constr_32, memb_value_constraint_29 }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigRemovalAck_ItemIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_56, + select_E2nodeComponentConfigRemovalAck_ItemIEs_value_type, + { 0, &asn_PER_memb_value_constr_56, memb_value_constraint_53 }, 0, 0, /* No default value */ "value" }, }; -static const ber_tlv_tag_t asn_DEF_E2nodeComponentConfigUpdateAck_ItemIEs_tags_29[] = { +static const ber_tlv_tag_t asn_DEF_E2nodeComponentConfigRemovalAck_ItemIEs_tags_53[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -static const asn_TYPE_tag2member_t asn_MAP_E2nodeComponentConfigUpdateAck_ItemIEs_tag2el_29[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +static const asn_TYPE_tag2member_t asn_MAP_E2nodeComponentConfigRemovalAck_ItemIEs_tag2el_53[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ }; -asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigUpdateAck_ItemIEs_specs_29 = { - sizeof(struct E2nodeComponentConfigUpdateAck_ItemIEs), - offsetof(struct E2nodeComponentConfigUpdateAck_ItemIEs, _asn_ctx), - asn_MAP_E2nodeComponentConfigUpdateAck_ItemIEs_tag2el_29, - 2, /* Count of tags in the map */ +asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigRemovalAck_ItemIEs_specs_53 = { + sizeof(struct E2nodeComponentConfigRemovalAck_ItemIEs), + offsetof(struct E2nodeComponentConfigRemovalAck_ItemIEs, _asn_ctx), + asn_MAP_E2nodeComponentConfigRemovalAck_ItemIEs_tag2el_53, + 3, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; -asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigUpdateAck_ItemIEs = { - "E2nodeComponentConfigUpdateAck-ItemIEs", - "E2nodeComponentConfigUpdateAck-ItemIEs", +asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigRemovalAck_ItemIEs = { + "E2nodeComponentConfigRemovalAck-ItemIEs", + "E2nodeComponentConfigRemovalAck-ItemIEs", &asn_OP_SEQUENCE, - asn_DEF_E2nodeComponentConfigUpdateAck_ItemIEs_tags_29, - sizeof(asn_DEF_E2nodeComponentConfigUpdateAck_ItemIEs_tags_29) - /sizeof(asn_DEF_E2nodeComponentConfigUpdateAck_ItemIEs_tags_29[0]), /* 1 */ - asn_DEF_E2nodeComponentConfigUpdateAck_ItemIEs_tags_29, /* Same as above */ - sizeof(asn_DEF_E2nodeComponentConfigUpdateAck_ItemIEs_tags_29) - /sizeof(asn_DEF_E2nodeComponentConfigUpdateAck_ItemIEs_tags_29[0]), /* 1 */ + asn_DEF_E2nodeComponentConfigRemovalAck_ItemIEs_tags_53, + sizeof(asn_DEF_E2nodeComponentConfigRemovalAck_ItemIEs_tags_53) + /sizeof(asn_DEF_E2nodeComponentConfigRemovalAck_ItemIEs_tags_53[0]), /* 1 */ + asn_DEF_E2nodeComponentConfigRemovalAck_ItemIEs_tags_53, /* Same as above */ + sizeof(asn_DEF_E2nodeComponentConfigRemovalAck_ItemIEs_tags_53) + /sizeof(asn_DEF_E2nodeComponentConfigRemovalAck_ItemIEs_tags_53[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_E2nodeComponentConfigUpdateAck_ItemIEs_29, + asn_MBR_E2nodeComponentConfigRemovalAck_ItemIEs_53, 3, /* Elements count */ - &asn_SPC_E2nodeComponentConfigUpdateAck_ItemIEs_specs_29 /* Additional specs */ + &asn_SPC_E2nodeComponentConfigRemovalAck_ItemIEs_specs_53 /* Additional specs */ }; -static asn_TYPE_member_t asn_MBR_value_36[] = { +static asn_TYPE_member_t asn_MBR_value_60[] = { { ATF_NOFLAGS, 0, offsetof(struct RANfunction_ItemIEs__value, choice.RANfunction_Item), (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -6542,21 +8307,21 @@ static asn_TYPE_member_t asn_MBR_value_36[] = { "RANfunction-Item" }, }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_36[] = { +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_60[] = { { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RANfunction-Item */ }; -static asn_CHOICE_specifics_t asn_SPC_value_specs_36 = { +static asn_CHOICE_specifics_t asn_SPC_value_specs_60 = { sizeof(struct RANfunction_ItemIEs__value), offsetof(struct RANfunction_ItemIEs__value, _asn_ctx), offsetof(struct RANfunction_ItemIEs__value, present), sizeof(((struct RANfunction_ItemIEs__value *)0)->present), - asn_MAP_value_tag2el_36, + asn_MAP_value_tag2el_60, 1, /* Count of tags in the map */ 0, 0, -1 /* Extensions start */ }; static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_36 = { +asn_TYPE_descriptor_t asn_DEF_value_60 = { "value", "value", &asn_OP_OPEN_TYPE, @@ -6565,52 +8330,53 @@ asn_TYPE_descriptor_t asn_DEF_value_36 = { 0, /* No tags (pointer) */ 0, /* No tags (count) */ { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_36, + asn_MBR_value_60, 1, /* Elements count */ - &asn_SPC_value_specs_36 /* Additional specs */ + &asn_SPC_value_specs_60 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_RANfunction_ItemIEs_33[] = { +asn_TYPE_member_t asn_MBR_RANfunction_ItemIEs_57[] = { { ATF_NOFLAGS, 0, offsetof(struct RANfunction_ItemIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_ProtocolIE_ID, 0, - { 0, &asn_PER_memb_id_constr_34, memb_id_constraint_33 }, + { 0, &asn_PER_memb_id_constr_58, memb_id_constraint_57 }, 0, 0, /* No default value */ "id" }, { ATF_NOFLAGS, 0, offsetof(struct RANfunction_ItemIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_Criticality, select_RANfunction_ItemIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_35, memb_criticality_constraint_33 }, + { 0, &asn_PER_memb_criticality_constr_59, memb_criticality_constraint_57 }, 0, 0, /* No default value */ "criticality" }, { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RANfunction_ItemIEs, value), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_value_36, + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_60, select_RANfunction_ItemIEs_value_type, - { 0, &asn_PER_memb_value_constr_36, memb_value_constraint_33 }, + { 0, &asn_PER_memb_value_constr_60, memb_value_constraint_57 }, 0, 0, /* No default value */ "value" }, }; -static const ber_tlv_tag_t asn_DEF_RANfunction_ItemIEs_tags_33[] = { +static const ber_tlv_tag_t asn_DEF_RANfunction_ItemIEs_tags_57[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -static const asn_TYPE_tag2member_t asn_MAP_RANfunction_ItemIEs_tag2el_33[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +static const asn_TYPE_tag2member_t asn_MAP_RANfunction_ItemIEs_tag2el_57[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ }; -asn_SEQUENCE_specifics_t asn_SPC_RANfunction_ItemIEs_specs_33 = { +asn_SEQUENCE_specifics_t asn_SPC_RANfunction_ItemIEs_specs_57 = { sizeof(struct RANfunction_ItemIEs), offsetof(struct RANfunction_ItemIEs, _asn_ctx), - asn_MAP_RANfunction_ItemIEs_tag2el_33, - 2, /* Count of tags in the map */ + asn_MAP_RANfunction_ItemIEs_tag2el_57, + 3, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; @@ -6618,19 +8384,19 @@ asn_TYPE_descriptor_t asn_DEF_RANfunction_ItemIEs = { "RANfunction-ItemIEs", "RANfunction-ItemIEs", &asn_OP_SEQUENCE, - asn_DEF_RANfunction_ItemIEs_tags_33, - sizeof(asn_DEF_RANfunction_ItemIEs_tags_33) - /sizeof(asn_DEF_RANfunction_ItemIEs_tags_33[0]), /* 1 */ - asn_DEF_RANfunction_ItemIEs_tags_33, /* Same as above */ - sizeof(asn_DEF_RANfunction_ItemIEs_tags_33) - /sizeof(asn_DEF_RANfunction_ItemIEs_tags_33[0]), /* 1 */ + asn_DEF_RANfunction_ItemIEs_tags_57, + sizeof(asn_DEF_RANfunction_ItemIEs_tags_57) + /sizeof(asn_DEF_RANfunction_ItemIEs_tags_57[0]), /* 1 */ + asn_DEF_RANfunction_ItemIEs_tags_57, /* Same as above */ + sizeof(asn_DEF_RANfunction_ItemIEs_tags_57) + /sizeof(asn_DEF_RANfunction_ItemIEs_tags_57[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_RANfunction_ItemIEs_33, + asn_MBR_RANfunction_ItemIEs_57, 3, /* Elements count */ - &asn_SPC_RANfunction_ItemIEs_specs_33 /* Additional specs */ + &asn_SPC_RANfunction_ItemIEs_specs_57 /* Additional specs */ }; -static asn_TYPE_member_t asn_MBR_value_40[] = { +static asn_TYPE_member_t asn_MBR_value_64[] = { { ATF_NOFLAGS, 0, offsetof(struct RANfunctionID_ItemIEs__value, choice.RANfunctionID_Item), (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -6641,21 +8407,21 @@ static asn_TYPE_member_t asn_MBR_value_40[] = { "RANfunctionID-Item" }, }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_40[] = { +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_64[] = { { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RANfunctionID-Item */ }; -static asn_CHOICE_specifics_t asn_SPC_value_specs_40 = { +static asn_CHOICE_specifics_t asn_SPC_value_specs_64 = { sizeof(struct RANfunctionID_ItemIEs__value), offsetof(struct RANfunctionID_ItemIEs__value, _asn_ctx), offsetof(struct RANfunctionID_ItemIEs__value, present), sizeof(((struct RANfunctionID_ItemIEs__value *)0)->present), - asn_MAP_value_tag2el_40, + asn_MAP_value_tag2el_64, 1, /* Count of tags in the map */ 0, 0, -1 /* Extensions start */ }; static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_40 = { +asn_TYPE_descriptor_t asn_DEF_value_64 = { "value", "value", &asn_OP_OPEN_TYPE, @@ -6664,52 +8430,53 @@ asn_TYPE_descriptor_t asn_DEF_value_40 = { 0, /* No tags (pointer) */ 0, /* No tags (count) */ { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_40, + asn_MBR_value_64, 1, /* Elements count */ - &asn_SPC_value_specs_40 /* Additional specs */ + &asn_SPC_value_specs_64 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_RANfunctionID_ItemIEs_37[] = { +asn_TYPE_member_t asn_MBR_RANfunctionID_ItemIEs_61[] = { { ATF_NOFLAGS, 0, offsetof(struct RANfunctionID_ItemIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_ProtocolIE_ID, 0, - { 0, &asn_PER_memb_id_constr_38, memb_id_constraint_37 }, + { 0, &asn_PER_memb_id_constr_62, memb_id_constraint_61 }, 0, 0, /* No default value */ "id" }, { ATF_NOFLAGS, 0, offsetof(struct RANfunctionID_ItemIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_Criticality, select_RANfunctionID_ItemIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_39, memb_criticality_constraint_37 }, + { 0, &asn_PER_memb_criticality_constr_63, memb_criticality_constraint_61 }, 0, 0, /* No default value */ "criticality" }, { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RANfunctionID_ItemIEs, value), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_value_40, + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_64, select_RANfunctionID_ItemIEs_value_type, - { 0, &asn_PER_memb_value_constr_40, memb_value_constraint_37 }, + { 0, &asn_PER_memb_value_constr_64, memb_value_constraint_61 }, 0, 0, /* No default value */ "value" }, }; -static const ber_tlv_tag_t asn_DEF_RANfunctionID_ItemIEs_tags_37[] = { +static const ber_tlv_tag_t asn_DEF_RANfunctionID_ItemIEs_tags_61[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -static const asn_TYPE_tag2member_t asn_MAP_RANfunctionID_ItemIEs_tag2el_37[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +static const asn_TYPE_tag2member_t asn_MAP_RANfunctionID_ItemIEs_tag2el_61[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ }; -asn_SEQUENCE_specifics_t asn_SPC_RANfunctionID_ItemIEs_specs_37 = { +asn_SEQUENCE_specifics_t asn_SPC_RANfunctionID_ItemIEs_specs_61 = { sizeof(struct RANfunctionID_ItemIEs), offsetof(struct RANfunctionID_ItemIEs, _asn_ctx), - asn_MAP_RANfunctionID_ItemIEs_tag2el_37, - 2, /* Count of tags in the map */ + asn_MAP_RANfunctionID_ItemIEs_tag2el_61, + 3, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; @@ -6717,19 +8484,19 @@ asn_TYPE_descriptor_t asn_DEF_RANfunctionID_ItemIEs = { "RANfunctionID-ItemIEs", "RANfunctionID-ItemIEs", &asn_OP_SEQUENCE, - asn_DEF_RANfunctionID_ItemIEs_tags_37, - sizeof(asn_DEF_RANfunctionID_ItemIEs_tags_37) - /sizeof(asn_DEF_RANfunctionID_ItemIEs_tags_37[0]), /* 1 */ - asn_DEF_RANfunctionID_ItemIEs_tags_37, /* Same as above */ - sizeof(asn_DEF_RANfunctionID_ItemIEs_tags_37) - /sizeof(asn_DEF_RANfunctionID_ItemIEs_tags_37[0]), /* 1 */ + asn_DEF_RANfunctionID_ItemIEs_tags_61, + sizeof(asn_DEF_RANfunctionID_ItemIEs_tags_61) + /sizeof(asn_DEF_RANfunctionID_ItemIEs_tags_61[0]), /* 1 */ + asn_DEF_RANfunctionID_ItemIEs_tags_61, /* Same as above */ + sizeof(asn_DEF_RANfunctionID_ItemIEs_tags_61) + /sizeof(asn_DEF_RANfunctionID_ItemIEs_tags_61[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_RANfunctionID_ItemIEs_37, + asn_MBR_RANfunctionID_ItemIEs_61, 3, /* Elements count */ - &asn_SPC_RANfunctionID_ItemIEs_specs_37 /* Additional specs */ + &asn_SPC_RANfunctionID_ItemIEs_specs_61 /* Additional specs */ }; -static asn_TYPE_member_t asn_MBR_value_44[] = { +static asn_TYPE_member_t asn_MBR_value_68[] = { { ATF_NOFLAGS, 0, offsetof(struct RANfunctionIDcause_ItemIEs__value, choice.RANfunctionIDcause_Item), (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -6740,21 +8507,21 @@ static asn_TYPE_member_t asn_MBR_value_44[] = { "RANfunctionIDcause-Item" }, }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_44[] = { +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_68[] = { { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RANfunctionIDcause-Item */ }; -static asn_CHOICE_specifics_t asn_SPC_value_specs_44 = { +static asn_CHOICE_specifics_t asn_SPC_value_specs_68 = { sizeof(struct RANfunctionIDcause_ItemIEs__value), offsetof(struct RANfunctionIDcause_ItemIEs__value, _asn_ctx), offsetof(struct RANfunctionIDcause_ItemIEs__value, present), sizeof(((struct RANfunctionIDcause_ItemIEs__value *)0)->present), - asn_MAP_value_tag2el_44, + asn_MAP_value_tag2el_68, 1, /* Count of tags in the map */ 0, 0, -1 /* Extensions start */ }; static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_44 = { +asn_TYPE_descriptor_t asn_DEF_value_68 = { "value", "value", &asn_OP_OPEN_TYPE, @@ -6763,52 +8530,53 @@ asn_TYPE_descriptor_t asn_DEF_value_44 = { 0, /* No tags (pointer) */ 0, /* No tags (count) */ { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_44, + asn_MBR_value_68, 1, /* Elements count */ - &asn_SPC_value_specs_44 /* Additional specs */ + &asn_SPC_value_specs_68 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_RANfunctionIDcause_ItemIEs_41[] = { +asn_TYPE_member_t asn_MBR_RANfunctionIDcause_ItemIEs_65[] = { { ATF_NOFLAGS, 0, offsetof(struct RANfunctionIDcause_ItemIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_ProtocolIE_ID, 0, - { 0, &asn_PER_memb_id_constr_42, memb_id_constraint_41 }, + { 0, &asn_PER_memb_id_constr_66, memb_id_constraint_65 }, 0, 0, /* No default value */ "id" }, { ATF_NOFLAGS, 0, offsetof(struct RANfunctionIDcause_ItemIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_Criticality, select_RANfunctionIDcause_ItemIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_43, memb_criticality_constraint_41 }, + { 0, &asn_PER_memb_criticality_constr_67, memb_criticality_constraint_65 }, 0, 0, /* No default value */ "criticality" }, { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RANfunctionIDcause_ItemIEs, value), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_value_44, + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_68, select_RANfunctionIDcause_ItemIEs_value_type, - { 0, &asn_PER_memb_value_constr_44, memb_value_constraint_41 }, + { 0, &asn_PER_memb_value_constr_68, memb_value_constraint_65 }, 0, 0, /* No default value */ "value" }, }; -static const ber_tlv_tag_t asn_DEF_RANfunctionIDcause_ItemIEs_tags_41[] = { +static const ber_tlv_tag_t asn_DEF_RANfunctionIDcause_ItemIEs_tags_65[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -static const asn_TYPE_tag2member_t asn_MAP_RANfunctionIDcause_ItemIEs_tag2el_41[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +static const asn_TYPE_tag2member_t asn_MAP_RANfunctionIDcause_ItemIEs_tag2el_65[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ }; -asn_SEQUENCE_specifics_t asn_SPC_RANfunctionIDcause_ItemIEs_specs_41 = { +asn_SEQUENCE_specifics_t asn_SPC_RANfunctionIDcause_ItemIEs_specs_65 = { sizeof(struct RANfunctionIDcause_ItemIEs), offsetof(struct RANfunctionIDcause_ItemIEs, _asn_ctx), - asn_MAP_RANfunctionIDcause_ItemIEs_tag2el_41, - 2, /* Count of tags in the map */ + asn_MAP_RANfunctionIDcause_ItemIEs_tag2el_65, + 3, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; @@ -6816,19 +8584,19 @@ asn_TYPE_descriptor_t asn_DEF_RANfunctionIDcause_ItemIEs = { "RANfunctionIDcause-ItemIEs", "RANfunctionIDcause-ItemIEs", &asn_OP_SEQUENCE, - asn_DEF_RANfunctionIDcause_ItemIEs_tags_41, - sizeof(asn_DEF_RANfunctionIDcause_ItemIEs_tags_41) - /sizeof(asn_DEF_RANfunctionIDcause_ItemIEs_tags_41[0]), /* 1 */ - asn_DEF_RANfunctionIDcause_ItemIEs_tags_41, /* Same as above */ - sizeof(asn_DEF_RANfunctionIDcause_ItemIEs_tags_41) - /sizeof(asn_DEF_RANfunctionIDcause_ItemIEs_tags_41[0]), /* 1 */ + asn_DEF_RANfunctionIDcause_ItemIEs_tags_65, + sizeof(asn_DEF_RANfunctionIDcause_ItemIEs_tags_65) + /sizeof(asn_DEF_RANfunctionIDcause_ItemIEs_tags_65[0]), /* 1 */ + asn_DEF_RANfunctionIDcause_ItemIEs_tags_65, /* Same as above */ + sizeof(asn_DEF_RANfunctionIDcause_ItemIEs_tags_65) + /sizeof(asn_DEF_RANfunctionIDcause_ItemIEs_tags_65[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_RANfunctionIDcause_ItemIEs_41, + asn_MBR_RANfunctionIDcause_ItemIEs_65, 3, /* Elements count */ - &asn_SPC_RANfunctionIDcause_ItemIEs_specs_41 /* Additional specs */ + &asn_SPC_RANfunctionIDcause_ItemIEs_specs_65 /* Additional specs */ }; -static asn_TYPE_member_t asn_MBR_value_48[] = { +static asn_TYPE_member_t asn_MBR_value_72[] = { { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionRequest_IEs__value, choice.RICrequestID), (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -6857,26 +8625,26 @@ static asn_TYPE_member_t asn_MBR_value_48[] = { "RICsubscriptionDetails" }, }; -static const unsigned asn_MAP_value_to_canonical_48[] = { 1, 0, 2 }; -static const unsigned asn_MAP_value_from_canonical_48[] = { 1, 0, 2 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_48[] = { +static const unsigned asn_MAP_value_to_canonical_72[] = { 1, 0, 2 }; +static const unsigned asn_MAP_value_from_canonical_72[] = { 1, 0, 2 }; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_72[] = { { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* RANfunctionID */ { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 1 }, /* RICrequestID */ { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -1, 0 } /* RICsubscriptionDetails */ }; -static asn_CHOICE_specifics_t asn_SPC_value_specs_48 = { +static asn_CHOICE_specifics_t asn_SPC_value_specs_72 = { sizeof(struct RICsubscriptionRequest_IEs__value), offsetof(struct RICsubscriptionRequest_IEs__value, _asn_ctx), offsetof(struct RICsubscriptionRequest_IEs__value, present), sizeof(((struct RICsubscriptionRequest_IEs__value *)0)->present), - asn_MAP_value_tag2el_48, + asn_MAP_value_tag2el_72, 3, /* Count of tags in the map */ - asn_MAP_value_to_canonical_48, - asn_MAP_value_from_canonical_48, + asn_MAP_value_to_canonical_72, + asn_MAP_value_from_canonical_72, -1 /* Extensions start */ }; static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_48 = { +asn_TYPE_descriptor_t asn_DEF_value_72 = { "value", "value", &asn_OP_OPEN_TYPE, @@ -6885,52 +8653,53 @@ asn_TYPE_descriptor_t asn_DEF_value_48 = { 0, /* No tags (pointer) */ 0, /* No tags (count) */ { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_48, + asn_MBR_value_72, 3, /* Elements count */ - &asn_SPC_value_specs_48 /* Additional specs */ + &asn_SPC_value_specs_72 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_RICsubscriptionRequest_IEs_45[] = { +asn_TYPE_member_t asn_MBR_RICsubscriptionRequest_IEs_69[] = { { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionRequest_IEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_ProtocolIE_ID, 0, - { 0, &asn_PER_memb_id_constr_46, memb_id_constraint_45 }, + { 0, &asn_PER_memb_id_constr_70, memb_id_constraint_69 }, 0, 0, /* No default value */ "id" }, { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionRequest_IEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_Criticality, select_RICsubscriptionRequest_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_47, memb_criticality_constraint_45 }, + { 0, &asn_PER_memb_criticality_constr_71, memb_criticality_constraint_69 }, 0, 0, /* No default value */ "criticality" }, { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionRequest_IEs, value), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_value_48, + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_72, select_RICsubscriptionRequest_IEs_value_type, - { 0, &asn_PER_memb_value_constr_48, memb_value_constraint_45 }, + { 0, &asn_PER_memb_value_constr_72, memb_value_constraint_69 }, 0, 0, /* No default value */ "value" }, }; -static const ber_tlv_tag_t asn_DEF_RICsubscriptionRequest_IEs_tags_45[] = { +static const ber_tlv_tag_t asn_DEF_RICsubscriptionRequest_IEs_tags_69[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionRequest_IEs_tag2el_45[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionRequest_IEs_tag2el_69[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ }; -asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionRequest_IEs_specs_45 = { +asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionRequest_IEs_specs_69 = { sizeof(struct RICsubscriptionRequest_IEs), offsetof(struct RICsubscriptionRequest_IEs, _asn_ctx), - asn_MAP_RICsubscriptionRequest_IEs_tag2el_45, - 2, /* Count of tags in the map */ + asn_MAP_RICsubscriptionRequest_IEs_tag2el_69, + 3, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; @@ -6938,19 +8707,19 @@ asn_TYPE_descriptor_t asn_DEF_RICsubscriptionRequest_IEs = { "RICsubscriptionRequest-IEs", "RICsubscriptionRequest-IEs", &asn_OP_SEQUENCE, - asn_DEF_RICsubscriptionRequest_IEs_tags_45, - sizeof(asn_DEF_RICsubscriptionRequest_IEs_tags_45) - /sizeof(asn_DEF_RICsubscriptionRequest_IEs_tags_45[0]), /* 1 */ - asn_DEF_RICsubscriptionRequest_IEs_tags_45, /* Same as above */ - sizeof(asn_DEF_RICsubscriptionRequest_IEs_tags_45) - /sizeof(asn_DEF_RICsubscriptionRequest_IEs_tags_45[0]), /* 1 */ + asn_DEF_RICsubscriptionRequest_IEs_tags_69, + sizeof(asn_DEF_RICsubscriptionRequest_IEs_tags_69) + /sizeof(asn_DEF_RICsubscriptionRequest_IEs_tags_69[0]), /* 1 */ + asn_DEF_RICsubscriptionRequest_IEs_tags_69, /* Same as above */ + sizeof(asn_DEF_RICsubscriptionRequest_IEs_tags_69) + /sizeof(asn_DEF_RICsubscriptionRequest_IEs_tags_69[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICsubscriptionRequest_IEs_45, + asn_MBR_RICsubscriptionRequest_IEs_69, 3, /* Elements count */ - &asn_SPC_RICsubscriptionRequest_IEs_specs_45 /* Additional specs */ + &asn_SPC_RICsubscriptionRequest_IEs_specs_69 /* Additional specs */ }; -static asn_TYPE_member_t asn_MBR_value_52[] = { +static asn_TYPE_member_t asn_MBR_value_76[] = { { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionResponse_IEs__value, choice.RICrequestID), (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -6988,27 +8757,27 @@ static asn_TYPE_member_t asn_MBR_value_52[] = { "RICaction-NotAdmitted-List" }, }; -static const unsigned asn_MAP_value_to_canonical_52[] = { 1, 0, 2, 3 }; -static const unsigned asn_MAP_value_from_canonical_52[] = { 1, 0, 2, 3 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_52[] = { +static const unsigned asn_MAP_value_to_canonical_76[] = { 1, 0, 2, 3 }; +static const unsigned asn_MAP_value_from_canonical_76[] = { 1, 0, 2, 3 }; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_76[] = { { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* RANfunctionID */ { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 2 }, /* RICrequestID */ { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -1, 1 }, /* RICaction-Admitted-List */ { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -2, 0 } /* RICaction-NotAdmitted-List */ }; -static asn_CHOICE_specifics_t asn_SPC_value_specs_52 = { +static asn_CHOICE_specifics_t asn_SPC_value_specs_76 = { sizeof(struct RICsubscriptionResponse_IEs__value), offsetof(struct RICsubscriptionResponse_IEs__value, _asn_ctx), offsetof(struct RICsubscriptionResponse_IEs__value, present), sizeof(((struct RICsubscriptionResponse_IEs__value *)0)->present), - asn_MAP_value_tag2el_52, + asn_MAP_value_tag2el_76, 4, /* Count of tags in the map */ - asn_MAP_value_to_canonical_52, - asn_MAP_value_from_canonical_52, + asn_MAP_value_to_canonical_76, + asn_MAP_value_from_canonical_76, -1 /* Extensions start */ }; static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_52 = { +asn_TYPE_descriptor_t asn_DEF_value_76 = { "value", "value", &asn_OP_OPEN_TYPE, @@ -7017,52 +8786,53 @@ asn_TYPE_descriptor_t asn_DEF_value_52 = { 0, /* No tags (pointer) */ 0, /* No tags (count) */ { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_52, + asn_MBR_value_76, 4, /* Elements count */ - &asn_SPC_value_specs_52 /* Additional specs */ + &asn_SPC_value_specs_76 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_RICsubscriptionResponse_IEs_49[] = { +asn_TYPE_member_t asn_MBR_RICsubscriptionResponse_IEs_73[] = { { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionResponse_IEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_ProtocolIE_ID, 0, - { 0, &asn_PER_memb_id_constr_50, memb_id_constraint_49 }, + { 0, &asn_PER_memb_id_constr_74, memb_id_constraint_73 }, 0, 0, /* No default value */ "id" }, { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionResponse_IEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_Criticality, select_RICsubscriptionResponse_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_51, memb_criticality_constraint_49 }, + { 0, &asn_PER_memb_criticality_constr_75, memb_criticality_constraint_73 }, 0, 0, /* No default value */ "criticality" }, { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionResponse_IEs, value), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_value_52, + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_76, select_RICsubscriptionResponse_IEs_value_type, - { 0, &asn_PER_memb_value_constr_52, memb_value_constraint_49 }, + { 0, &asn_PER_memb_value_constr_76, memb_value_constraint_73 }, 0, 0, /* No default value */ "value" }, }; -static const ber_tlv_tag_t asn_DEF_RICsubscriptionResponse_IEs_tags_49[] = { +static const ber_tlv_tag_t asn_DEF_RICsubscriptionResponse_IEs_tags_73[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionResponse_IEs_tag2el_49[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionResponse_IEs_tag2el_73[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ }; -asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionResponse_IEs_specs_49 = { +asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionResponse_IEs_specs_73 = { sizeof(struct RICsubscriptionResponse_IEs), offsetof(struct RICsubscriptionResponse_IEs, _asn_ctx), - asn_MAP_RICsubscriptionResponse_IEs_tag2el_49, - 2, /* Count of tags in the map */ + asn_MAP_RICsubscriptionResponse_IEs_tag2el_73, + 3, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; @@ -7070,19 +8840,19 @@ asn_TYPE_descriptor_t asn_DEF_RICsubscriptionResponse_IEs = { "RICsubscriptionResponse-IEs", "RICsubscriptionResponse-IEs", &asn_OP_SEQUENCE, - asn_DEF_RICsubscriptionResponse_IEs_tags_49, - sizeof(asn_DEF_RICsubscriptionResponse_IEs_tags_49) - /sizeof(asn_DEF_RICsubscriptionResponse_IEs_tags_49[0]), /* 1 */ - asn_DEF_RICsubscriptionResponse_IEs_tags_49, /* Same as above */ - sizeof(asn_DEF_RICsubscriptionResponse_IEs_tags_49) - /sizeof(asn_DEF_RICsubscriptionResponse_IEs_tags_49[0]), /* 1 */ + asn_DEF_RICsubscriptionResponse_IEs_tags_73, + sizeof(asn_DEF_RICsubscriptionResponse_IEs_tags_73) + /sizeof(asn_DEF_RICsubscriptionResponse_IEs_tags_73[0]), /* 1 */ + asn_DEF_RICsubscriptionResponse_IEs_tags_73, /* Same as above */ + sizeof(asn_DEF_RICsubscriptionResponse_IEs_tags_73) + /sizeof(asn_DEF_RICsubscriptionResponse_IEs_tags_73[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICsubscriptionResponse_IEs_49, + asn_MBR_RICsubscriptionResponse_IEs_73, 3, /* Elements count */ - &asn_SPC_RICsubscriptionResponse_IEs_specs_49 /* Additional specs */ + &asn_SPC_RICsubscriptionResponse_IEs_specs_73 /* Additional specs */ }; -static asn_TYPE_member_t asn_MBR_value_56[] = { +static asn_TYPE_member_t asn_MBR_value_80[] = { { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionFailure_IEs__value, choice.RICrequestID), (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -7101,14 +8871,14 @@ static asn_TYPE_member_t asn_MBR_value_56[] = { 0, 0, /* No default value */ "RANfunctionID" }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionFailure_IEs__value, choice.RICaction_NotAdmitted_List), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionFailure_IEs__value, choice.Cause), + -1 /* Ambiguous tag (CHOICE?) */, 0, - &asn_DEF_RICaction_NotAdmitted_List, + &asn_DEF_Cause, 0, { 0, 0, 0 }, 0, 0, /* No default value */ - "RICaction-NotAdmitted-List" + "Cause" }, { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionFailure_IEs__value, choice.CriticalityDiagnostics), (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), @@ -7120,27 +8890,32 @@ static asn_TYPE_member_t asn_MBR_value_56[] = { "CriticalityDiagnostics" }, }; -static const unsigned asn_MAP_value_to_canonical_56[] = { 1, 0, 2, 3 }; -static const unsigned asn_MAP_value_from_canonical_56[] = { 1, 0, 2, 3 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_56[] = { +static const unsigned asn_MAP_value_to_canonical_80[] = { 1, 0, 3, 2 }; +static const unsigned asn_MAP_value_from_canonical_80[] = { 1, 0, 3, 2 }; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_80[] = { { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* RANfunctionID */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 2 }, /* RICrequestID */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -1, 1 }, /* RICaction-NotAdmitted-List */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -2, 0 } /* CriticalityDiagnostics */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 1 }, /* RICrequestID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -1, 0 }, /* CriticalityDiagnostics */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 2, 0, 0 }, /* ricRequest */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 2, 0, 0 }, /* ricService */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* e2Node */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 2, 0, 0 }, /* transport */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 2, 0, 0 }, /* protocol */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 2, 0, 0 } /* misc */ }; -static asn_CHOICE_specifics_t asn_SPC_value_specs_56 = { +static asn_CHOICE_specifics_t asn_SPC_value_specs_80 = { sizeof(struct RICsubscriptionFailure_IEs__value), offsetof(struct RICsubscriptionFailure_IEs__value, _asn_ctx), offsetof(struct RICsubscriptionFailure_IEs__value, present), sizeof(((struct RICsubscriptionFailure_IEs__value *)0)->present), - asn_MAP_value_tag2el_56, - 4, /* Count of tags in the map */ - asn_MAP_value_to_canonical_56, - asn_MAP_value_from_canonical_56, + asn_MAP_value_tag2el_80, + 9, /* Count of tags in the map */ + asn_MAP_value_to_canonical_80, + asn_MAP_value_from_canonical_80, -1 /* Extensions start */ }; static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_56 = { +asn_TYPE_descriptor_t asn_DEF_value_80 = { "value", "value", &asn_OP_OPEN_TYPE, @@ -7149,52 +8924,53 @@ asn_TYPE_descriptor_t asn_DEF_value_56 = { 0, /* No tags (pointer) */ 0, /* No tags (count) */ { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_56, + asn_MBR_value_80, 4, /* Elements count */ - &asn_SPC_value_specs_56 /* Additional specs */ + &asn_SPC_value_specs_80 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_RICsubscriptionFailure_IEs_53[] = { +asn_TYPE_member_t asn_MBR_RICsubscriptionFailure_IEs_77[] = { { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionFailure_IEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_ProtocolIE_ID, 0, - { 0, &asn_PER_memb_id_constr_54, memb_id_constraint_53 }, + { 0, &asn_PER_memb_id_constr_78, memb_id_constraint_77 }, 0, 0, /* No default value */ "id" }, { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionFailure_IEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_Criticality, select_RICsubscriptionFailure_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_55, memb_criticality_constraint_53 }, + { 0, &asn_PER_memb_criticality_constr_79, memb_criticality_constraint_77 }, 0, 0, /* No default value */ "criticality" }, { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionFailure_IEs, value), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_value_56, + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_80, select_RICsubscriptionFailure_IEs_value_type, - { 0, &asn_PER_memb_value_constr_56, memb_value_constraint_53 }, + { 0, &asn_PER_memb_value_constr_80, memb_value_constraint_77 }, 0, 0, /* No default value */ "value" }, }; -static const ber_tlv_tag_t asn_DEF_RICsubscriptionFailure_IEs_tags_53[] = { +static const ber_tlv_tag_t asn_DEF_RICsubscriptionFailure_IEs_tags_77[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionFailure_IEs_tag2el_53[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionFailure_IEs_tag2el_77[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ }; -asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionFailure_IEs_specs_53 = { +asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionFailure_IEs_specs_77 = { sizeof(struct RICsubscriptionFailure_IEs), offsetof(struct RICsubscriptionFailure_IEs, _asn_ctx), - asn_MAP_RICsubscriptionFailure_IEs_tag2el_53, - 2, /* Count of tags in the map */ + asn_MAP_RICsubscriptionFailure_IEs_tag2el_77, + 3, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; @@ -7202,19 +8978,19 @@ asn_TYPE_descriptor_t asn_DEF_RICsubscriptionFailure_IEs = { "RICsubscriptionFailure-IEs", "RICsubscriptionFailure-IEs", &asn_OP_SEQUENCE, - asn_DEF_RICsubscriptionFailure_IEs_tags_53, - sizeof(asn_DEF_RICsubscriptionFailure_IEs_tags_53) - /sizeof(asn_DEF_RICsubscriptionFailure_IEs_tags_53[0]), /* 1 */ - asn_DEF_RICsubscriptionFailure_IEs_tags_53, /* Same as above */ - sizeof(asn_DEF_RICsubscriptionFailure_IEs_tags_53) - /sizeof(asn_DEF_RICsubscriptionFailure_IEs_tags_53[0]), /* 1 */ + asn_DEF_RICsubscriptionFailure_IEs_tags_77, + sizeof(asn_DEF_RICsubscriptionFailure_IEs_tags_77) + /sizeof(asn_DEF_RICsubscriptionFailure_IEs_tags_77[0]), /* 1 */ + asn_DEF_RICsubscriptionFailure_IEs_tags_77, /* Same as above */ + sizeof(asn_DEF_RICsubscriptionFailure_IEs_tags_77) + /sizeof(asn_DEF_RICsubscriptionFailure_IEs_tags_77[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICsubscriptionFailure_IEs_53, + asn_MBR_RICsubscriptionFailure_IEs_77, 3, /* Elements count */ - &asn_SPC_RICsubscriptionFailure_IEs_specs_53 /* Additional specs */ + &asn_SPC_RICsubscriptionFailure_IEs_specs_77 /* Additional specs */ }; -static asn_TYPE_member_t asn_MBR_value_60[] = { +static asn_TYPE_member_t asn_MBR_value_84[] = { { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteRequest_IEs__value, choice.RICrequestID), (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -7234,25 +9010,25 @@ static asn_TYPE_member_t asn_MBR_value_60[] = { "RANfunctionID" }, }; -static const unsigned asn_MAP_value_to_canonical_60[] = { 1, 0 }; -static const unsigned asn_MAP_value_from_canonical_60[] = { 1, 0 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_60[] = { +static const unsigned asn_MAP_value_to_canonical_84[] = { 1, 0 }; +static const unsigned asn_MAP_value_from_canonical_84[] = { 1, 0 }; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_84[] = { { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* RANfunctionID */ { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RICrequestID */ }; -static asn_CHOICE_specifics_t asn_SPC_value_specs_60 = { +static asn_CHOICE_specifics_t asn_SPC_value_specs_84 = { sizeof(struct RICsubscriptionDeleteRequest_IEs__value), offsetof(struct RICsubscriptionDeleteRequest_IEs__value, _asn_ctx), offsetof(struct RICsubscriptionDeleteRequest_IEs__value, present), sizeof(((struct RICsubscriptionDeleteRequest_IEs__value *)0)->present), - asn_MAP_value_tag2el_60, + asn_MAP_value_tag2el_84, 2, /* Count of tags in the map */ - asn_MAP_value_to_canonical_60, - asn_MAP_value_from_canonical_60, + asn_MAP_value_to_canonical_84, + asn_MAP_value_from_canonical_84, -1 /* Extensions start */ }; static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_60 = { +asn_TYPE_descriptor_t asn_DEF_value_84 = { "value", "value", &asn_OP_OPEN_TYPE, @@ -7261,52 +9037,53 @@ asn_TYPE_descriptor_t asn_DEF_value_60 = { 0, /* No tags (pointer) */ 0, /* No tags (count) */ { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_60, + asn_MBR_value_84, 2, /* Elements count */ - &asn_SPC_value_specs_60 /* Additional specs */ + &asn_SPC_value_specs_84 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteRequest_IEs_57[] = { +asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteRequest_IEs_81[] = { { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteRequest_IEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_ProtocolIE_ID, 0, - { 0, &asn_PER_memb_id_constr_58, memb_id_constraint_57 }, + { 0, &asn_PER_memb_id_constr_82, memb_id_constraint_81 }, 0, 0, /* No default value */ "id" }, { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteRequest_IEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_Criticality, select_RICsubscriptionDeleteRequest_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_59, memb_criticality_constraint_57 }, + { 0, &asn_PER_memb_criticality_constr_83, memb_criticality_constraint_81 }, 0, 0, /* No default value */ "criticality" }, { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteRequest_IEs, value), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_value_60, + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_84, select_RICsubscriptionDeleteRequest_IEs_value_type, - { 0, &asn_PER_memb_value_constr_60, memb_value_constraint_57 }, + { 0, &asn_PER_memb_value_constr_84, memb_value_constraint_81 }, 0, 0, /* No default value */ "value" }, }; -static const ber_tlv_tag_t asn_DEF_RICsubscriptionDeleteRequest_IEs_tags_57[] = { +static const ber_tlv_tag_t asn_DEF_RICsubscriptionDeleteRequest_IEs_tags_81[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionDeleteRequest_IEs_tag2el_57[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionDeleteRequest_IEs_tag2el_81[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ }; -asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteRequest_IEs_specs_57 = { +asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteRequest_IEs_specs_81 = { sizeof(struct RICsubscriptionDeleteRequest_IEs), offsetof(struct RICsubscriptionDeleteRequest_IEs, _asn_ctx), - asn_MAP_RICsubscriptionDeleteRequest_IEs_tag2el_57, - 2, /* Count of tags in the map */ + asn_MAP_RICsubscriptionDeleteRequest_IEs_tag2el_81, + 3, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; @@ -7314,19 +9091,19 @@ asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDeleteRequest_IEs = { "RICsubscriptionDeleteRequest-IEs", "RICsubscriptionDeleteRequest-IEs", &asn_OP_SEQUENCE, - asn_DEF_RICsubscriptionDeleteRequest_IEs_tags_57, - sizeof(asn_DEF_RICsubscriptionDeleteRequest_IEs_tags_57) - /sizeof(asn_DEF_RICsubscriptionDeleteRequest_IEs_tags_57[0]), /* 1 */ - asn_DEF_RICsubscriptionDeleteRequest_IEs_tags_57, /* Same as above */ - sizeof(asn_DEF_RICsubscriptionDeleteRequest_IEs_tags_57) - /sizeof(asn_DEF_RICsubscriptionDeleteRequest_IEs_tags_57[0]), /* 1 */ + asn_DEF_RICsubscriptionDeleteRequest_IEs_tags_81, + sizeof(asn_DEF_RICsubscriptionDeleteRequest_IEs_tags_81) + /sizeof(asn_DEF_RICsubscriptionDeleteRequest_IEs_tags_81[0]), /* 1 */ + asn_DEF_RICsubscriptionDeleteRequest_IEs_tags_81, /* Same as above */ + sizeof(asn_DEF_RICsubscriptionDeleteRequest_IEs_tags_81) + /sizeof(asn_DEF_RICsubscriptionDeleteRequest_IEs_tags_81[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICsubscriptionDeleteRequest_IEs_57, + asn_MBR_RICsubscriptionDeleteRequest_IEs_81, 3, /* Elements count */ - &asn_SPC_RICsubscriptionDeleteRequest_IEs_specs_57 /* Additional specs */ + &asn_SPC_RICsubscriptionDeleteRequest_IEs_specs_81 /* Additional specs */ }; -static asn_TYPE_member_t asn_MBR_value_64[] = { +static asn_TYPE_member_t asn_MBR_value_88[] = { { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteResponse_IEs__value, choice.RICrequestID), (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -7346,25 +9123,25 @@ static asn_TYPE_member_t asn_MBR_value_64[] = { "RANfunctionID" }, }; -static const unsigned asn_MAP_value_to_canonical_64[] = { 1, 0 }; -static const unsigned asn_MAP_value_from_canonical_64[] = { 1, 0 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_64[] = { +static const unsigned asn_MAP_value_to_canonical_88[] = { 1, 0 }; +static const unsigned asn_MAP_value_from_canonical_88[] = { 1, 0 }; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_88[] = { { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* RANfunctionID */ { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RICrequestID */ }; -static asn_CHOICE_specifics_t asn_SPC_value_specs_64 = { +static asn_CHOICE_specifics_t asn_SPC_value_specs_88 = { sizeof(struct RICsubscriptionDeleteResponse_IEs__value), offsetof(struct RICsubscriptionDeleteResponse_IEs__value, _asn_ctx), offsetof(struct RICsubscriptionDeleteResponse_IEs__value, present), sizeof(((struct RICsubscriptionDeleteResponse_IEs__value *)0)->present), - asn_MAP_value_tag2el_64, + asn_MAP_value_tag2el_88, 2, /* Count of tags in the map */ - asn_MAP_value_to_canonical_64, - asn_MAP_value_from_canonical_64, + asn_MAP_value_to_canonical_88, + asn_MAP_value_from_canonical_88, -1 /* Extensions start */ }; static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_64 = { +asn_TYPE_descriptor_t asn_DEF_value_88 = { "value", "value", &asn_OP_OPEN_TYPE, @@ -7373,52 +9150,53 @@ asn_TYPE_descriptor_t asn_DEF_value_64 = { 0, /* No tags (pointer) */ 0, /* No tags (count) */ { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_64, + asn_MBR_value_88, 2, /* Elements count */ - &asn_SPC_value_specs_64 /* Additional specs */ + &asn_SPC_value_specs_88 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteResponse_IEs_61[] = { +asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteResponse_IEs_85[] = { { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteResponse_IEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_ProtocolIE_ID, 0, - { 0, &asn_PER_memb_id_constr_62, memb_id_constraint_61 }, + { 0, &asn_PER_memb_id_constr_86, memb_id_constraint_85 }, 0, 0, /* No default value */ "id" }, { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteResponse_IEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_Criticality, select_RICsubscriptionDeleteResponse_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_63, memb_criticality_constraint_61 }, + { 0, &asn_PER_memb_criticality_constr_87, memb_criticality_constraint_85 }, 0, 0, /* No default value */ "criticality" }, { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteResponse_IEs, value), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_value_64, + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_88, select_RICsubscriptionDeleteResponse_IEs_value_type, - { 0, &asn_PER_memb_value_constr_64, memb_value_constraint_61 }, + { 0, &asn_PER_memb_value_constr_88, memb_value_constraint_85 }, 0, 0, /* No default value */ "value" }, }; -static const ber_tlv_tag_t asn_DEF_RICsubscriptionDeleteResponse_IEs_tags_61[] = { +static const ber_tlv_tag_t asn_DEF_RICsubscriptionDeleteResponse_IEs_tags_85[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionDeleteResponse_IEs_tag2el_61[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionDeleteResponse_IEs_tag2el_85[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ }; -asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteResponse_IEs_specs_61 = { +asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteResponse_IEs_specs_85 = { sizeof(struct RICsubscriptionDeleteResponse_IEs), offsetof(struct RICsubscriptionDeleteResponse_IEs, _asn_ctx), - asn_MAP_RICsubscriptionDeleteResponse_IEs_tag2el_61, - 2, /* Count of tags in the map */ + asn_MAP_RICsubscriptionDeleteResponse_IEs_tag2el_85, + 3, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; @@ -7426,19 +9204,19 @@ asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDeleteResponse_IEs = { "RICsubscriptionDeleteResponse-IEs", "RICsubscriptionDeleteResponse-IEs", &asn_OP_SEQUENCE, - asn_DEF_RICsubscriptionDeleteResponse_IEs_tags_61, - sizeof(asn_DEF_RICsubscriptionDeleteResponse_IEs_tags_61) - /sizeof(asn_DEF_RICsubscriptionDeleteResponse_IEs_tags_61[0]), /* 1 */ - asn_DEF_RICsubscriptionDeleteResponse_IEs_tags_61, /* Same as above */ - sizeof(asn_DEF_RICsubscriptionDeleteResponse_IEs_tags_61) - /sizeof(asn_DEF_RICsubscriptionDeleteResponse_IEs_tags_61[0]), /* 1 */ + asn_DEF_RICsubscriptionDeleteResponse_IEs_tags_85, + sizeof(asn_DEF_RICsubscriptionDeleteResponse_IEs_tags_85) + /sizeof(asn_DEF_RICsubscriptionDeleteResponse_IEs_tags_85[0]), /* 1 */ + asn_DEF_RICsubscriptionDeleteResponse_IEs_tags_85, /* Same as above */ + sizeof(asn_DEF_RICsubscriptionDeleteResponse_IEs_tags_85) + /sizeof(asn_DEF_RICsubscriptionDeleteResponse_IEs_tags_85[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICsubscriptionDeleteResponse_IEs_61, + asn_MBR_RICsubscriptionDeleteResponse_IEs_85, 3, /* Elements count */ - &asn_SPC_RICsubscriptionDeleteResponse_IEs_specs_61 /* Additional specs */ + &asn_SPC_RICsubscriptionDeleteResponse_IEs_specs_85 /* Additional specs */ }; -static asn_TYPE_member_t asn_MBR_value_68[] = { +static asn_TYPE_member_t asn_MBR_value_92[] = { { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteFailure_IEs__value, choice.RICrequestID), (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -7476,31 +9254,32 @@ static asn_TYPE_member_t asn_MBR_value_68[] = { "CriticalityDiagnostics" }, }; -static const unsigned asn_MAP_value_to_canonical_68[] = { 1, 0, 3, 2 }; -static const unsigned asn_MAP_value_from_canonical_68[] = { 1, 0, 3, 2 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_68[] = { +static const unsigned asn_MAP_value_to_canonical_92[] = { 1, 0, 3, 2 }; +static const unsigned asn_MAP_value_from_canonical_92[] = { 1, 0, 3, 2 }; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_92[] = { { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* RANfunctionID */ { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 1 }, /* RICrequestID */ { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -1, 0 }, /* CriticalityDiagnostics */ { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 2, 0, 0 }, /* ricRequest */ { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 2, 0, 0 }, /* ricService */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* transport */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 2, 0, 0 }, /* protocol */ - { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 2, 0, 0 } /* misc */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* e2Node */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 2, 0, 0 }, /* transport */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 2, 0, 0 }, /* protocol */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 2, 0, 0 } /* misc */ }; -static asn_CHOICE_specifics_t asn_SPC_value_specs_68 = { +static asn_CHOICE_specifics_t asn_SPC_value_specs_92 = { sizeof(struct RICsubscriptionDeleteFailure_IEs__value), offsetof(struct RICsubscriptionDeleteFailure_IEs__value, _asn_ctx), offsetof(struct RICsubscriptionDeleteFailure_IEs__value, present), sizeof(((struct RICsubscriptionDeleteFailure_IEs__value *)0)->present), - asn_MAP_value_tag2el_68, - 8, /* Count of tags in the map */ - asn_MAP_value_to_canonical_68, - asn_MAP_value_from_canonical_68, + asn_MAP_value_tag2el_92, + 9, /* Count of tags in the map */ + asn_MAP_value_to_canonical_92, + asn_MAP_value_from_canonical_92, -1 /* Extensions start */ }; static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_68 = { +asn_TYPE_descriptor_t asn_DEF_value_92 = { "value", "value", &asn_OP_OPEN_TYPE, @@ -7509,72 +9288,173 @@ asn_TYPE_descriptor_t asn_DEF_value_68 = { 0, /* No tags (pointer) */ 0, /* No tags (count) */ { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_68, + asn_MBR_value_92, 4, /* Elements count */ - &asn_SPC_value_specs_68 /* Additional specs */ + &asn_SPC_value_specs_92 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteFailure_IEs_65[] = { +asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteFailure_IEs_89[] = { { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteFailure_IEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_ProtocolIE_ID, 0, - { 0, &asn_PER_memb_id_constr_66, memb_id_constraint_65 }, + { 0, &asn_PER_memb_id_constr_90, memb_id_constraint_89 }, 0, 0, /* No default value */ "id" }, { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteFailure_IEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_Criticality, select_RICsubscriptionDeleteFailure_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_67, memb_criticality_constraint_65 }, + { 0, &asn_PER_memb_criticality_constr_91, memb_criticality_constraint_89 }, 0, 0, /* No default value */ "criticality" }, { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteFailure_IEs, value), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_value_68, + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_92, select_RICsubscriptionDeleteFailure_IEs_value_type, - { 0, &asn_PER_memb_value_constr_68, memb_value_constraint_65 }, + { 0, &asn_PER_memb_value_constr_92, memb_value_constraint_89 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_RICsubscriptionDeleteFailure_IEs_tags_89[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionDeleteFailure_IEs_tag2el_89[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteFailure_IEs_specs_89 = { + sizeof(struct RICsubscriptionDeleteFailure_IEs), + offsetof(struct RICsubscriptionDeleteFailure_IEs, _asn_ctx), + asn_MAP_RICsubscriptionDeleteFailure_IEs_tag2el_89, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDeleteFailure_IEs = { + "RICsubscriptionDeleteFailure-IEs", + "RICsubscriptionDeleteFailure-IEs", + &asn_OP_SEQUENCE, + asn_DEF_RICsubscriptionDeleteFailure_IEs_tags_89, + sizeof(asn_DEF_RICsubscriptionDeleteFailure_IEs_tags_89) + /sizeof(asn_DEF_RICsubscriptionDeleteFailure_IEs_tags_89[0]), /* 1 */ + asn_DEF_RICsubscriptionDeleteFailure_IEs_tags_89, /* Same as above */ + sizeof(asn_DEF_RICsubscriptionDeleteFailure_IEs_tags_89) + /sizeof(asn_DEF_RICsubscriptionDeleteFailure_IEs_tags_89[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RICsubscriptionDeleteFailure_IEs_89, + 3, /* Elements count */ + &asn_SPC_RICsubscriptionDeleteFailure_IEs_specs_89 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_96[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteRequired_IEs__value, choice.RICsubscription_List_withCause), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RICsubscription_List_withCause, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RICsubscription-List-withCause" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_96[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RICsubscription-List-withCause */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_96 = { + sizeof(struct RICsubscriptionDeleteRequired_IEs__value), + offsetof(struct RICsubscriptionDeleteRequired_IEs__value, _asn_ctx), + offsetof(struct RICsubscriptionDeleteRequired_IEs__value, present), + sizeof(((struct RICsubscriptionDeleteRequired_IEs__value *)0)->present), + asn_MAP_value_tag2el_96, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_96 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_96, + 1, /* Elements count */ + &asn_SPC_value_specs_96 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteRequired_IEs_93[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteRequired_IEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_id_constr_94, memb_id_constraint_93 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteRequired_IEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_RICsubscriptionDeleteRequired_IEs_criticality_type, + { 0, &asn_PER_memb_criticality_constr_95, memb_criticality_constraint_93 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteRequired_IEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_96, + select_RICsubscriptionDeleteRequired_IEs_value_type, + { 0, &asn_PER_memb_value_constr_96, memb_value_constraint_93 }, 0, 0, /* No default value */ "value" }, }; -static const ber_tlv_tag_t asn_DEF_RICsubscriptionDeleteFailure_IEs_tags_65[] = { +static const ber_tlv_tag_t asn_DEF_RICsubscriptionDeleteRequired_IEs_tags_93[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionDeleteFailure_IEs_tag2el_65[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionDeleteRequired_IEs_tag2el_93[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ }; -asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteFailure_IEs_specs_65 = { - sizeof(struct RICsubscriptionDeleteFailure_IEs), - offsetof(struct RICsubscriptionDeleteFailure_IEs, _asn_ctx), - asn_MAP_RICsubscriptionDeleteFailure_IEs_tag2el_65, - 2, /* Count of tags in the map */ +asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteRequired_IEs_specs_93 = { + sizeof(struct RICsubscriptionDeleteRequired_IEs), + offsetof(struct RICsubscriptionDeleteRequired_IEs, _asn_ctx), + asn_MAP_RICsubscriptionDeleteRequired_IEs_tag2el_93, + 3, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; -asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDeleteFailure_IEs = { - "RICsubscriptionDeleteFailure-IEs", - "RICsubscriptionDeleteFailure-IEs", +asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDeleteRequired_IEs = { + "RICsubscriptionDeleteRequired-IEs", + "RICsubscriptionDeleteRequired-IEs", &asn_OP_SEQUENCE, - asn_DEF_RICsubscriptionDeleteFailure_IEs_tags_65, - sizeof(asn_DEF_RICsubscriptionDeleteFailure_IEs_tags_65) - /sizeof(asn_DEF_RICsubscriptionDeleteFailure_IEs_tags_65[0]), /* 1 */ - asn_DEF_RICsubscriptionDeleteFailure_IEs_tags_65, /* Same as above */ - sizeof(asn_DEF_RICsubscriptionDeleteFailure_IEs_tags_65) - /sizeof(asn_DEF_RICsubscriptionDeleteFailure_IEs_tags_65[0]), /* 1 */ + asn_DEF_RICsubscriptionDeleteRequired_IEs_tags_93, + sizeof(asn_DEF_RICsubscriptionDeleteRequired_IEs_tags_93) + /sizeof(asn_DEF_RICsubscriptionDeleteRequired_IEs_tags_93[0]), /* 1 */ + asn_DEF_RICsubscriptionDeleteRequired_IEs_tags_93, /* Same as above */ + sizeof(asn_DEF_RICsubscriptionDeleteRequired_IEs_tags_93) + /sizeof(asn_DEF_RICsubscriptionDeleteRequired_IEs_tags_93[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICsubscriptionDeleteFailure_IEs_65, + asn_MBR_RICsubscriptionDeleteRequired_IEs_93, 3, /* Elements count */ - &asn_SPC_RICsubscriptionDeleteFailure_IEs_specs_65 /* Additional specs */ + &asn_SPC_RICsubscriptionDeleteRequired_IEs_specs_93 /* Additional specs */ }; -static asn_TYPE_member_t asn_MBR_value_72[] = { +static asn_TYPE_member_t asn_MBR_value_100[] = { { ATF_NOFLAGS, 0, offsetof(struct RICindication_IEs__value, choice.RICrequestID), (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -7648,9 +9528,9 @@ static asn_TYPE_member_t asn_MBR_value_72[] = { "RICcallProcessID" }, }; -static const unsigned asn_MAP_value_to_canonical_72[] = { 1, 2, 3, 5, 6, 7, 4, 0 }; -static const unsigned asn_MAP_value_from_canonical_72[] = { 7, 0, 1, 2, 6, 3, 4, 5 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_72[] = { +static const unsigned asn_MAP_value_to_canonical_100[] = { 1, 2, 3, 5, 6, 7, 4, 0 }; +static const unsigned asn_MAP_value_from_canonical_100[] = { 7, 0, 1, 2, 6, 3, 4, 5 }; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_100[] = { { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 2 }, /* RANfunctionID */ { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 2, -1, 1 }, /* RICactionID */ { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 3, -2, 0 }, /* RICindicationSN */ @@ -7660,19 +9540,19 @@ static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_72[] = { { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 4, 0, 0 }, /* RICindicationType */ { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RICrequestID */ }; -static asn_CHOICE_specifics_t asn_SPC_value_specs_72 = { +static asn_CHOICE_specifics_t asn_SPC_value_specs_100 = { sizeof(struct RICindication_IEs__value), offsetof(struct RICindication_IEs__value, _asn_ctx), offsetof(struct RICindication_IEs__value, present), sizeof(((struct RICindication_IEs__value *)0)->present), - asn_MAP_value_tag2el_72, + asn_MAP_value_tag2el_100, 8, /* Count of tags in the map */ - asn_MAP_value_to_canonical_72, - asn_MAP_value_from_canonical_72, + asn_MAP_value_to_canonical_100, + asn_MAP_value_from_canonical_100, -1 /* Extensions start */ }; static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_72 = { +asn_TYPE_descriptor_t asn_DEF_value_100 = { "value", "value", &asn_OP_OPEN_TYPE, @@ -7681,52 +9561,53 @@ asn_TYPE_descriptor_t asn_DEF_value_72 = { 0, /* No tags (pointer) */ 0, /* No tags (count) */ { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_72, + asn_MBR_value_100, 8, /* Elements count */ - &asn_SPC_value_specs_72 /* Additional specs */ + &asn_SPC_value_specs_100 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_RICindication_IEs_69[] = { +asn_TYPE_member_t asn_MBR_RICindication_IEs_97[] = { { ATF_NOFLAGS, 0, offsetof(struct RICindication_IEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_ProtocolIE_ID, 0, - { 0, &asn_PER_memb_id_constr_70, memb_id_constraint_69 }, + { 0, &asn_PER_memb_id_constr_98, memb_id_constraint_97 }, 0, 0, /* No default value */ "id" }, { ATF_NOFLAGS, 0, offsetof(struct RICindication_IEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_Criticality, select_RICindication_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_71, memb_criticality_constraint_69 }, + { 0, &asn_PER_memb_criticality_constr_99, memb_criticality_constraint_97 }, 0, 0, /* No default value */ "criticality" }, { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICindication_IEs, value), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_value_72, + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_100, select_RICindication_IEs_value_type, - { 0, &asn_PER_memb_value_constr_72, memb_value_constraint_69 }, + { 0, &asn_PER_memb_value_constr_100, memb_value_constraint_97 }, 0, 0, /* No default value */ "value" }, }; -static const ber_tlv_tag_t asn_DEF_RICindication_IEs_tags_69[] = { +static const ber_tlv_tag_t asn_DEF_RICindication_IEs_tags_97[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -static const asn_TYPE_tag2member_t asn_MAP_RICindication_IEs_tag2el_69[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +static const asn_TYPE_tag2member_t asn_MAP_RICindication_IEs_tag2el_97[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ }; -asn_SEQUENCE_specifics_t asn_SPC_RICindication_IEs_specs_69 = { +asn_SEQUENCE_specifics_t asn_SPC_RICindication_IEs_specs_97 = { sizeof(struct RICindication_IEs), offsetof(struct RICindication_IEs, _asn_ctx), - asn_MAP_RICindication_IEs_tag2el_69, - 2, /* Count of tags in the map */ + asn_MAP_RICindication_IEs_tag2el_97, + 3, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; @@ -7734,19 +9615,19 @@ asn_TYPE_descriptor_t asn_DEF_RICindication_IEs = { "RICindication-IEs", "RICindication-IEs", &asn_OP_SEQUENCE, - asn_DEF_RICindication_IEs_tags_69, - sizeof(asn_DEF_RICindication_IEs_tags_69) - /sizeof(asn_DEF_RICindication_IEs_tags_69[0]), /* 1 */ - asn_DEF_RICindication_IEs_tags_69, /* Same as above */ - sizeof(asn_DEF_RICindication_IEs_tags_69) - /sizeof(asn_DEF_RICindication_IEs_tags_69[0]), /* 1 */ + asn_DEF_RICindication_IEs_tags_97, + sizeof(asn_DEF_RICindication_IEs_tags_97) + /sizeof(asn_DEF_RICindication_IEs_tags_97[0]), /* 1 */ + asn_DEF_RICindication_IEs_tags_97, /* Same as above */ + sizeof(asn_DEF_RICindication_IEs_tags_97) + /sizeof(asn_DEF_RICindication_IEs_tags_97[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICindication_IEs_69, + asn_MBR_RICindication_IEs_97, 3, /* Elements count */ - &asn_SPC_RICindication_IEs_specs_69 /* Additional specs */ + &asn_SPC_RICindication_IEs_specs_97 /* Additional specs */ }; -static asn_TYPE_member_t asn_MBR_value_76[] = { +static asn_TYPE_member_t asn_MBR_value_104[] = { { ATF_NOFLAGS, 0, offsetof(struct RICcontrolRequest_IEs__value, choice.RICrequestID), (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -7802,9 +9683,9 @@ static asn_TYPE_member_t asn_MBR_value_76[] = { "RICcontrolAckRequest" }, }; -static const unsigned asn_MAP_value_to_canonical_76[] = { 1, 2, 3, 4, 5, 0 }; -static const unsigned asn_MAP_value_from_canonical_76[] = { 5, 0, 1, 2, 3, 4 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_76[] = { +static const unsigned asn_MAP_value_to_canonical_104[] = { 1, 2, 3, 4, 5, 0 }; +static const unsigned asn_MAP_value_from_canonical_104[] = { 5, 0, 1, 2, 3, 4 }; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_104[] = { { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* RANfunctionID */ { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 2, 0, 2 }, /* RICcallProcessID */ { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 3, -1, 1 }, /* RICcontrolHeader */ @@ -7812,19 +9693,19 @@ static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_76[] = { { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 5, 0, 0 }, /* RICcontrolAckRequest */ { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RICrequestID */ }; -static asn_CHOICE_specifics_t asn_SPC_value_specs_76 = { +static asn_CHOICE_specifics_t asn_SPC_value_specs_104 = { sizeof(struct RICcontrolRequest_IEs__value), offsetof(struct RICcontrolRequest_IEs__value, _asn_ctx), offsetof(struct RICcontrolRequest_IEs__value, present), sizeof(((struct RICcontrolRequest_IEs__value *)0)->present), - asn_MAP_value_tag2el_76, + asn_MAP_value_tag2el_104, 6, /* Count of tags in the map */ - asn_MAP_value_to_canonical_76, - asn_MAP_value_from_canonical_76, + asn_MAP_value_to_canonical_104, + asn_MAP_value_from_canonical_104, -1 /* Extensions start */ }; static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_76 = { +asn_TYPE_descriptor_t asn_DEF_value_104 = { "value", "value", &asn_OP_OPEN_TYPE, @@ -7833,52 +9714,53 @@ asn_TYPE_descriptor_t asn_DEF_value_76 = { 0, /* No tags (pointer) */ 0, /* No tags (count) */ { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_76, + asn_MBR_value_104, 6, /* Elements count */ - &asn_SPC_value_specs_76 /* Additional specs */ + &asn_SPC_value_specs_104 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_RICcontrolRequest_IEs_73[] = { +asn_TYPE_member_t asn_MBR_RICcontrolRequest_IEs_101[] = { { ATF_NOFLAGS, 0, offsetof(struct RICcontrolRequest_IEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_ProtocolIE_ID, 0, - { 0, &asn_PER_memb_id_constr_74, memb_id_constraint_73 }, + { 0, &asn_PER_memb_id_constr_102, memb_id_constraint_101 }, 0, 0, /* No default value */ "id" }, { ATF_NOFLAGS, 0, offsetof(struct RICcontrolRequest_IEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_Criticality, select_RICcontrolRequest_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_75, memb_criticality_constraint_73 }, + { 0, &asn_PER_memb_criticality_constr_103, memb_criticality_constraint_101 }, 0, 0, /* No default value */ "criticality" }, { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICcontrolRequest_IEs, value), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_value_76, + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_104, select_RICcontrolRequest_IEs_value_type, - { 0, &asn_PER_memb_value_constr_76, memb_value_constraint_73 }, + { 0, &asn_PER_memb_value_constr_104, memb_value_constraint_101 }, 0, 0, /* No default value */ "value" }, }; -static const ber_tlv_tag_t asn_DEF_RICcontrolRequest_IEs_tags_73[] = { +static const ber_tlv_tag_t asn_DEF_RICcontrolRequest_IEs_tags_101[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -static const asn_TYPE_tag2member_t asn_MAP_RICcontrolRequest_IEs_tag2el_73[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +static const asn_TYPE_tag2member_t asn_MAP_RICcontrolRequest_IEs_tag2el_101[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ }; -asn_SEQUENCE_specifics_t asn_SPC_RICcontrolRequest_IEs_specs_73 = { +asn_SEQUENCE_specifics_t asn_SPC_RICcontrolRequest_IEs_specs_101 = { sizeof(struct RICcontrolRequest_IEs), offsetof(struct RICcontrolRequest_IEs, _asn_ctx), - asn_MAP_RICcontrolRequest_IEs_tag2el_73, - 2, /* Count of tags in the map */ + asn_MAP_RICcontrolRequest_IEs_tag2el_101, + 3, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; @@ -7886,19 +9768,19 @@ asn_TYPE_descriptor_t asn_DEF_RICcontrolRequest_IEs = { "RICcontrolRequest-IEs", "RICcontrolRequest-IEs", &asn_OP_SEQUENCE, - asn_DEF_RICcontrolRequest_IEs_tags_73, - sizeof(asn_DEF_RICcontrolRequest_IEs_tags_73) - /sizeof(asn_DEF_RICcontrolRequest_IEs_tags_73[0]), /* 1 */ - asn_DEF_RICcontrolRequest_IEs_tags_73, /* Same as above */ - sizeof(asn_DEF_RICcontrolRequest_IEs_tags_73) - /sizeof(asn_DEF_RICcontrolRequest_IEs_tags_73[0]), /* 1 */ + asn_DEF_RICcontrolRequest_IEs_tags_101, + sizeof(asn_DEF_RICcontrolRequest_IEs_tags_101) + /sizeof(asn_DEF_RICcontrolRequest_IEs_tags_101[0]), /* 1 */ + asn_DEF_RICcontrolRequest_IEs_tags_101, /* Same as above */ + sizeof(asn_DEF_RICcontrolRequest_IEs_tags_101) + /sizeof(asn_DEF_RICcontrolRequest_IEs_tags_101[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICcontrolRequest_IEs_73, + asn_MBR_RICcontrolRequest_IEs_101, 3, /* Elements count */ - &asn_SPC_RICcontrolRequest_IEs_specs_73 /* Additional specs */ + &asn_SPC_RICcontrolRequest_IEs_specs_101 /* Additional specs */ }; -static asn_TYPE_member_t asn_MBR_value_80[] = { +static asn_TYPE_member_t asn_MBR_value_108[] = { { ATF_NOFLAGS, 0, offsetof(struct RICcontrolAcknowledge_IEs__value, choice.RICrequestID), (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -7926,15 +9808,6 @@ static asn_TYPE_member_t asn_MBR_value_80[] = { 0, 0, /* No default value */ "RICcallProcessID" }, - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolAcknowledge_IEs__value, choice.RICcontrolStatus), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_RICcontrolStatus, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICcontrolStatus" - }, { ATF_NOFLAGS, 0, offsetof(struct RICcontrolAcknowledge_IEs__value, choice.RICcontrolOutcome), (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 0, @@ -7945,28 +9818,27 @@ static asn_TYPE_member_t asn_MBR_value_80[] = { "RICcontrolOutcome" }, }; -static const unsigned asn_MAP_value_to_canonical_80[] = { 1, 2, 4, 3, 0 }; -static const unsigned asn_MAP_value_from_canonical_80[] = { 4, 0, 1, 3, 2 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_80[] = { +static const unsigned asn_MAP_value_to_canonical_108[] = { 1, 2, 3, 0 }; +static const unsigned asn_MAP_value_from_canonical_108[] = { 3, 0, 1, 2 }; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_108[] = { { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* RANfunctionID */ { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 2, 0, 1 }, /* RICcallProcessID */ - { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 4, -1, 0 }, /* RICcontrolOutcome */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 3, 0, 0 }, /* RICcontrolStatus */ + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 3, -1, 0 }, /* RICcontrolOutcome */ { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RICrequestID */ }; -static asn_CHOICE_specifics_t asn_SPC_value_specs_80 = { +static asn_CHOICE_specifics_t asn_SPC_value_specs_108 = { sizeof(struct RICcontrolAcknowledge_IEs__value), offsetof(struct RICcontrolAcknowledge_IEs__value, _asn_ctx), offsetof(struct RICcontrolAcknowledge_IEs__value, present), sizeof(((struct RICcontrolAcknowledge_IEs__value *)0)->present), - asn_MAP_value_tag2el_80, - 5, /* Count of tags in the map */ - asn_MAP_value_to_canonical_80, - asn_MAP_value_from_canonical_80, + asn_MAP_value_tag2el_108, + 4, /* Count of tags in the map */ + asn_MAP_value_to_canonical_108, + asn_MAP_value_from_canonical_108, -1 /* Extensions start */ }; static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_80 = { +asn_TYPE_descriptor_t asn_DEF_value_108 = { "value", "value", &asn_OP_OPEN_TYPE, @@ -7975,52 +9847,53 @@ asn_TYPE_descriptor_t asn_DEF_value_80 = { 0, /* No tags (pointer) */ 0, /* No tags (count) */ { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_80, - 5, /* Elements count */ - &asn_SPC_value_specs_80 /* Additional specs */ + asn_MBR_value_108, + 4, /* Elements count */ + &asn_SPC_value_specs_108 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_RICcontrolAcknowledge_IEs_77[] = { +asn_TYPE_member_t asn_MBR_RICcontrolAcknowledge_IEs_105[] = { { ATF_NOFLAGS, 0, offsetof(struct RICcontrolAcknowledge_IEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_ProtocolIE_ID, 0, - { 0, &asn_PER_memb_id_constr_78, memb_id_constraint_77 }, + { 0, &asn_PER_memb_id_constr_106, memb_id_constraint_105 }, 0, 0, /* No default value */ "id" }, { ATF_NOFLAGS, 0, offsetof(struct RICcontrolAcknowledge_IEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_Criticality, select_RICcontrolAcknowledge_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_79, memb_criticality_constraint_77 }, + { 0, &asn_PER_memb_criticality_constr_107, memb_criticality_constraint_105 }, 0, 0, /* No default value */ "criticality" }, { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICcontrolAcknowledge_IEs, value), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_value_80, + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_108, select_RICcontrolAcknowledge_IEs_value_type, - { 0, &asn_PER_memb_value_constr_80, memb_value_constraint_77 }, + { 0, &asn_PER_memb_value_constr_108, memb_value_constraint_105 }, 0, 0, /* No default value */ "value" }, }; -static const ber_tlv_tag_t asn_DEF_RICcontrolAcknowledge_IEs_tags_77[] = { +static const ber_tlv_tag_t asn_DEF_RICcontrolAcknowledge_IEs_tags_105[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -static const asn_TYPE_tag2member_t asn_MAP_RICcontrolAcknowledge_IEs_tag2el_77[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +static const asn_TYPE_tag2member_t asn_MAP_RICcontrolAcknowledge_IEs_tag2el_105[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ }; -asn_SEQUENCE_specifics_t asn_SPC_RICcontrolAcknowledge_IEs_specs_77 = { +asn_SEQUENCE_specifics_t asn_SPC_RICcontrolAcknowledge_IEs_specs_105 = { sizeof(struct RICcontrolAcknowledge_IEs), offsetof(struct RICcontrolAcknowledge_IEs, _asn_ctx), - asn_MAP_RICcontrolAcknowledge_IEs_tag2el_77, - 2, /* Count of tags in the map */ + asn_MAP_RICcontrolAcknowledge_IEs_tag2el_105, + 3, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; @@ -8028,19 +9901,19 @@ asn_TYPE_descriptor_t asn_DEF_RICcontrolAcknowledge_IEs = { "RICcontrolAcknowledge-IEs", "RICcontrolAcknowledge-IEs", &asn_OP_SEQUENCE, - asn_DEF_RICcontrolAcknowledge_IEs_tags_77, - sizeof(asn_DEF_RICcontrolAcknowledge_IEs_tags_77) - /sizeof(asn_DEF_RICcontrolAcknowledge_IEs_tags_77[0]), /* 1 */ - asn_DEF_RICcontrolAcknowledge_IEs_tags_77, /* Same as above */ - sizeof(asn_DEF_RICcontrolAcknowledge_IEs_tags_77) - /sizeof(asn_DEF_RICcontrolAcknowledge_IEs_tags_77[0]), /* 1 */ + asn_DEF_RICcontrolAcknowledge_IEs_tags_105, + sizeof(asn_DEF_RICcontrolAcknowledge_IEs_tags_105) + /sizeof(asn_DEF_RICcontrolAcknowledge_IEs_tags_105[0]), /* 1 */ + asn_DEF_RICcontrolAcknowledge_IEs_tags_105, /* Same as above */ + sizeof(asn_DEF_RICcontrolAcknowledge_IEs_tags_105) + /sizeof(asn_DEF_RICcontrolAcknowledge_IEs_tags_105[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICcontrolAcknowledge_IEs_77, + asn_MBR_RICcontrolAcknowledge_IEs_105, 3, /* Elements count */ - &asn_SPC_RICcontrolAcknowledge_IEs_specs_77 /* Additional specs */ + &asn_SPC_RICcontrolAcknowledge_IEs_specs_105 /* Additional specs */ }; -static asn_TYPE_member_t asn_MBR_value_84[] = { +static asn_TYPE_member_t asn_MBR_value_112[] = { { ATF_NOFLAGS, 0, offsetof(struct RICcontrolFailure_IEs__value, choice.RICrequestID), (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -8087,32 +9960,33 @@ static asn_TYPE_member_t asn_MBR_value_84[] = { "RICcontrolOutcome" }, }; -static const unsigned asn_MAP_value_to_canonical_84[] = { 1, 2, 4, 0, 3 }; -static const unsigned asn_MAP_value_from_canonical_84[] = { 3, 0, 1, 4, 2 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_84[] = { +static const unsigned asn_MAP_value_to_canonical_112[] = { 1, 2, 4, 0, 3 }; +static const unsigned asn_MAP_value_from_canonical_112[] = { 3, 0, 1, 4, 2 }; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_112[] = { { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* RANfunctionID */ { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 2, 0, 1 }, /* RICcallProcessID */ { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 4, -1, 0 }, /* RICcontrolOutcome */ { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 }, /* RICrequestID */ { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 3, 0, 0 }, /* ricRequest */ { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 3, 0, 0 }, /* ricService */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 3, 0, 0 }, /* transport */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* protocol */ - { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 3, 0, 0 } /* misc */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 3, 0, 0 }, /* e2Node */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* transport */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 3, 0, 0 }, /* protocol */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 3, 0, 0 } /* misc */ }; -static asn_CHOICE_specifics_t asn_SPC_value_specs_84 = { +static asn_CHOICE_specifics_t asn_SPC_value_specs_112 = { sizeof(struct RICcontrolFailure_IEs__value), offsetof(struct RICcontrolFailure_IEs__value, _asn_ctx), offsetof(struct RICcontrolFailure_IEs__value, present), sizeof(((struct RICcontrolFailure_IEs__value *)0)->present), - asn_MAP_value_tag2el_84, - 9, /* Count of tags in the map */ - asn_MAP_value_to_canonical_84, - asn_MAP_value_from_canonical_84, + asn_MAP_value_tag2el_112, + 10, /* Count of tags in the map */ + asn_MAP_value_to_canonical_112, + asn_MAP_value_from_canonical_112, -1 /* Extensions start */ }; static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_84 = { +asn_TYPE_descriptor_t asn_DEF_value_112 = { "value", "value", &asn_OP_OPEN_TYPE, @@ -8121,52 +9995,53 @@ asn_TYPE_descriptor_t asn_DEF_value_84 = { 0, /* No tags (pointer) */ 0, /* No tags (count) */ { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_84, + asn_MBR_value_112, 5, /* Elements count */ - &asn_SPC_value_specs_84 /* Additional specs */ + &asn_SPC_value_specs_112 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_RICcontrolFailure_IEs_81[] = { +asn_TYPE_member_t asn_MBR_RICcontrolFailure_IEs_109[] = { { ATF_NOFLAGS, 0, offsetof(struct RICcontrolFailure_IEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_ProtocolIE_ID, 0, - { 0, &asn_PER_memb_id_constr_82, memb_id_constraint_81 }, + { 0, &asn_PER_memb_id_constr_110, memb_id_constraint_109 }, 0, 0, /* No default value */ "id" }, { ATF_NOFLAGS, 0, offsetof(struct RICcontrolFailure_IEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_Criticality, select_RICcontrolFailure_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_83, memb_criticality_constraint_81 }, + { 0, &asn_PER_memb_criticality_constr_111, memb_criticality_constraint_109 }, 0, 0, /* No default value */ "criticality" }, { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICcontrolFailure_IEs, value), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_value_84, + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_112, select_RICcontrolFailure_IEs_value_type, - { 0, &asn_PER_memb_value_constr_84, memb_value_constraint_81 }, + { 0, &asn_PER_memb_value_constr_112, memb_value_constraint_109 }, 0, 0, /* No default value */ "value" }, }; -static const ber_tlv_tag_t asn_DEF_RICcontrolFailure_IEs_tags_81[] = { +static const ber_tlv_tag_t asn_DEF_RICcontrolFailure_IEs_tags_109[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -static const asn_TYPE_tag2member_t asn_MAP_RICcontrolFailure_IEs_tag2el_81[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +static const asn_TYPE_tag2member_t asn_MAP_RICcontrolFailure_IEs_tag2el_109[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ }; -asn_SEQUENCE_specifics_t asn_SPC_RICcontrolFailure_IEs_specs_81 = { +asn_SEQUENCE_specifics_t asn_SPC_RICcontrolFailure_IEs_specs_109 = { sizeof(struct RICcontrolFailure_IEs), offsetof(struct RICcontrolFailure_IEs, _asn_ctx), - asn_MAP_RICcontrolFailure_IEs_tag2el_81, - 2, /* Count of tags in the map */ + asn_MAP_RICcontrolFailure_IEs_tag2el_109, + 3, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; @@ -8174,19 +10049,28 @@ asn_TYPE_descriptor_t asn_DEF_RICcontrolFailure_IEs = { "RICcontrolFailure-IEs", "RICcontrolFailure-IEs", &asn_OP_SEQUENCE, - asn_DEF_RICcontrolFailure_IEs_tags_81, - sizeof(asn_DEF_RICcontrolFailure_IEs_tags_81) - /sizeof(asn_DEF_RICcontrolFailure_IEs_tags_81[0]), /* 1 */ - asn_DEF_RICcontrolFailure_IEs_tags_81, /* Same as above */ - sizeof(asn_DEF_RICcontrolFailure_IEs_tags_81) - /sizeof(asn_DEF_RICcontrolFailure_IEs_tags_81[0]), /* 1 */ + asn_DEF_RICcontrolFailure_IEs_tags_109, + sizeof(asn_DEF_RICcontrolFailure_IEs_tags_109) + /sizeof(asn_DEF_RICcontrolFailure_IEs_tags_109[0]), /* 1 */ + asn_DEF_RICcontrolFailure_IEs_tags_109, /* Same as above */ + sizeof(asn_DEF_RICcontrolFailure_IEs_tags_109) + /sizeof(asn_DEF_RICcontrolFailure_IEs_tags_109[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICcontrolFailure_IEs_81, + asn_MBR_RICcontrolFailure_IEs_109, 3, /* Elements count */ - &asn_SPC_RICcontrolFailure_IEs_specs_81 /* Additional specs */ + &asn_SPC_RICcontrolFailure_IEs_specs_109 /* Additional specs */ }; -static asn_TYPE_member_t asn_MBR_value_88[] = { +static asn_TYPE_member_t asn_MBR_value_116[] = { + { ATF_NOFLAGS, 0, offsetof(struct ErrorIndication_IEs__value, choice.TransactionID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_TransactionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "TransactionID" + }, { ATF_NOFLAGS, 0, offsetof(struct ErrorIndication_IEs__value, choice.RICrequestID), (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -8224,31 +10108,33 @@ static asn_TYPE_member_t asn_MBR_value_88[] = { "CriticalityDiagnostics" }, }; -static const unsigned asn_MAP_value_to_canonical_88[] = { 1, 0, 3, 2 }; -static const unsigned asn_MAP_value_from_canonical_88[] = { 1, 0, 3, 2 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_88[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* RANfunctionID */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 1 }, /* RICrequestID */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -1, 0 }, /* CriticalityDiagnostics */ - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 2, 0, 0 }, /* ricRequest */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 2, 0, 0 }, /* ricService */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* transport */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 2, 0, 0 }, /* protocol */ - { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 2, 0, 0 } /* misc */ +static const unsigned asn_MAP_value_to_canonical_116[] = { 0, 2, 1, 4, 3 }; +static const unsigned asn_MAP_value_from_canonical_116[] = { 0, 2, 1, 4, 3 }; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_116[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 1 }, /* TransactionID */ + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 2, -1, 0 }, /* RANfunctionID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 1 }, /* RICrequestID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, -1, 0 }, /* CriticalityDiagnostics */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 3, 0, 0 }, /* ricRequest */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 3, 0, 0 }, /* ricService */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 3, 0, 0 }, /* e2Node */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* transport */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 3, 0, 0 }, /* protocol */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 3, 0, 0 } /* misc */ }; -static asn_CHOICE_specifics_t asn_SPC_value_specs_88 = { +static asn_CHOICE_specifics_t asn_SPC_value_specs_116 = { sizeof(struct ErrorIndication_IEs__value), offsetof(struct ErrorIndication_IEs__value, _asn_ctx), offsetof(struct ErrorIndication_IEs__value, present), sizeof(((struct ErrorIndication_IEs__value *)0)->present), - asn_MAP_value_tag2el_88, - 8, /* Count of tags in the map */ - asn_MAP_value_to_canonical_88, - asn_MAP_value_from_canonical_88, + asn_MAP_value_tag2el_116, + 10, /* Count of tags in the map */ + asn_MAP_value_to_canonical_116, + asn_MAP_value_from_canonical_116, -1 /* Extensions start */ }; static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_88 = { +asn_TYPE_descriptor_t asn_DEF_value_116 = { "value", "value", &asn_OP_OPEN_TYPE, @@ -8257,52 +10143,53 @@ asn_TYPE_descriptor_t asn_DEF_value_88 = { 0, /* No tags (pointer) */ 0, /* No tags (count) */ { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_88, - 4, /* Elements count */ - &asn_SPC_value_specs_88 /* Additional specs */ + asn_MBR_value_116, + 5, /* Elements count */ + &asn_SPC_value_specs_116 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_ErrorIndication_IEs_85[] = { +asn_TYPE_member_t asn_MBR_ErrorIndication_IEs_113[] = { { ATF_NOFLAGS, 0, offsetof(struct ErrorIndication_IEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_ProtocolIE_ID, 0, - { 0, &asn_PER_memb_id_constr_86, memb_id_constraint_85 }, + { 0, &asn_PER_memb_id_constr_114, memb_id_constraint_113 }, 0, 0, /* No default value */ "id" }, { ATF_NOFLAGS, 0, offsetof(struct ErrorIndication_IEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_Criticality, select_ErrorIndication_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_87, memb_criticality_constraint_85 }, + { 0, &asn_PER_memb_criticality_constr_115, memb_criticality_constraint_113 }, 0, 0, /* No default value */ "criticality" }, { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ErrorIndication_IEs, value), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_value_88, + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_116, select_ErrorIndication_IEs_value_type, - { 0, &asn_PER_memb_value_constr_88, memb_value_constraint_85 }, + { 0, &asn_PER_memb_value_constr_116, memb_value_constraint_113 }, 0, 0, /* No default value */ "value" }, }; -static const ber_tlv_tag_t asn_DEF_ErrorIndication_IEs_tags_85[] = { +static const ber_tlv_tag_t asn_DEF_ErrorIndication_IEs_tags_113[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -static const asn_TYPE_tag2member_t asn_MAP_ErrorIndication_IEs_tag2el_85[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +static const asn_TYPE_tag2member_t asn_MAP_ErrorIndication_IEs_tag2el_113[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ }; -asn_SEQUENCE_specifics_t asn_SPC_ErrorIndication_IEs_specs_85 = { +asn_SEQUENCE_specifics_t asn_SPC_ErrorIndication_IEs_specs_113 = { sizeof(struct ErrorIndication_IEs), offsetof(struct ErrorIndication_IEs, _asn_ctx), - asn_MAP_ErrorIndication_IEs_tag2el_85, - 2, /* Count of tags in the map */ + asn_MAP_ErrorIndication_IEs_tag2el_113, + 3, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; @@ -8310,19 +10197,28 @@ asn_TYPE_descriptor_t asn_DEF_ErrorIndication_IEs = { "ErrorIndication-IEs", "ErrorIndication-IEs", &asn_OP_SEQUENCE, - asn_DEF_ErrorIndication_IEs_tags_85, - sizeof(asn_DEF_ErrorIndication_IEs_tags_85) - /sizeof(asn_DEF_ErrorIndication_IEs_tags_85[0]), /* 1 */ - asn_DEF_ErrorIndication_IEs_tags_85, /* Same as above */ - sizeof(asn_DEF_ErrorIndication_IEs_tags_85) - /sizeof(asn_DEF_ErrorIndication_IEs_tags_85[0]), /* 1 */ + asn_DEF_ErrorIndication_IEs_tags_113, + sizeof(asn_DEF_ErrorIndication_IEs_tags_113) + /sizeof(asn_DEF_ErrorIndication_IEs_tags_113[0]), /* 1 */ + asn_DEF_ErrorIndication_IEs_tags_113, /* Same as above */ + sizeof(asn_DEF_ErrorIndication_IEs_tags_113) + /sizeof(asn_DEF_ErrorIndication_IEs_tags_113[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_ErrorIndication_IEs_85, + asn_MBR_ErrorIndication_IEs_113, 3, /* Elements count */ - &asn_SPC_ErrorIndication_IEs_specs_85 /* Additional specs */ + &asn_SPC_ErrorIndication_IEs_specs_113 /* Additional specs */ }; -static asn_TYPE_member_t asn_MBR_value_92[] = { +static asn_TYPE_member_t asn_MBR_value_120[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2setupRequestIEs__value, choice.TransactionID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_TransactionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "TransactionID" + }, { ATF_NOFLAGS, 0, offsetof(struct E2setupRequestIEs__value, choice.GlobalE2node_ID), -1 /* Ambiguous tag (CHOICE?) */, 0, @@ -8341,39 +10237,40 @@ static asn_TYPE_member_t asn_MBR_value_92[] = { 0, 0, /* No default value */ "RANfunctions-List" }, - { ATF_NOFLAGS, 0, offsetof(struct E2setupRequestIEs__value, choice.E2nodeComponentConfigUpdate_List), + { ATF_NOFLAGS, 0, offsetof(struct E2setupRequestIEs__value, choice.E2nodeComponentConfigAddition_List), (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, - &asn_DEF_E2nodeComponentConfigUpdate_List, + &asn_DEF_E2nodeComponentConfigAddition_List, 0, { 0, 0, 0 }, 0, 0, /* No default value */ - "E2nodeComponentConfigUpdate-List" + "E2nodeComponentConfigAddition-List" }, }; -static const unsigned asn_MAP_value_to_canonical_92[] = { 1, 2, 0 }; -static const unsigned asn_MAP_value_from_canonical_92[] = { 2, 0, 1 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_92[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 1 }, /* RANfunctions-List */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -1, 0 }, /* E2nodeComponentConfigUpdate-List */ - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* gNB */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 0, 0, 0 }, /* en-gNB */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 0, 0, 0 }, /* ng-eNB */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 0, 0, 0 } /* eNB */ +static const unsigned asn_MAP_value_to_canonical_120[] = { 0, 2, 3, 1 }; +static const unsigned asn_MAP_value_from_canonical_120[] = { 0, 3, 1, 2 }; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_120[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* TransactionID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, 0, 1 }, /* RANfunctions-List */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -1, 0 }, /* E2nodeComponentConfigAddition-List */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 1, 0, 0 }, /* gNB */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* en-gNB */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 1, 0, 0 }, /* ng-eNB */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 1, 0, 0 } /* eNB */ }; -static asn_CHOICE_specifics_t asn_SPC_value_specs_92 = { +static asn_CHOICE_specifics_t asn_SPC_value_specs_120 = { sizeof(struct E2setupRequestIEs__value), offsetof(struct E2setupRequestIEs__value, _asn_ctx), offsetof(struct E2setupRequestIEs__value, present), sizeof(((struct E2setupRequestIEs__value *)0)->present), - asn_MAP_value_tag2el_92, - 6, /* Count of tags in the map */ - asn_MAP_value_to_canonical_92, - asn_MAP_value_from_canonical_92, + asn_MAP_value_tag2el_120, + 7, /* Count of tags in the map */ + asn_MAP_value_to_canonical_120, + asn_MAP_value_from_canonical_120, -1 /* Extensions start */ }; static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_92 = { +asn_TYPE_descriptor_t asn_DEF_value_120 = { "value", "value", &asn_OP_OPEN_TYPE, @@ -8382,52 +10279,53 @@ asn_TYPE_descriptor_t asn_DEF_value_92 = { 0, /* No tags (pointer) */ 0, /* No tags (count) */ { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_92, - 3, /* Elements count */ - &asn_SPC_value_specs_92 /* Additional specs */ + asn_MBR_value_120, + 4, /* Elements count */ + &asn_SPC_value_specs_120 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_E2setupRequestIEs_89[] = { +asn_TYPE_member_t asn_MBR_E2setupRequestIEs_117[] = { { ATF_NOFLAGS, 0, offsetof(struct E2setupRequestIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_ProtocolIE_ID, 0, - { 0, &asn_PER_memb_id_constr_90, memb_id_constraint_89 }, + { 0, &asn_PER_memb_id_constr_118, memb_id_constraint_117 }, 0, 0, /* No default value */ "id" }, { ATF_NOFLAGS, 0, offsetof(struct E2setupRequestIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_Criticality, select_E2setupRequestIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_91, memb_criticality_constraint_89 }, + { 0, &asn_PER_memb_criticality_constr_119, memb_criticality_constraint_117 }, 0, 0, /* No default value */ "criticality" }, { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E2setupRequestIEs, value), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_value_92, + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_120, select_E2setupRequestIEs_value_type, - { 0, &asn_PER_memb_value_constr_92, memb_value_constraint_89 }, + { 0, &asn_PER_memb_value_constr_120, memb_value_constraint_117 }, 0, 0, /* No default value */ "value" }, }; -static const ber_tlv_tag_t asn_DEF_E2setupRequestIEs_tags_89[] = { +static const ber_tlv_tag_t asn_DEF_E2setupRequestIEs_tags_117[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -static const asn_TYPE_tag2member_t asn_MAP_E2setupRequestIEs_tag2el_89[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +static const asn_TYPE_tag2member_t asn_MAP_E2setupRequestIEs_tag2el_117[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ }; -asn_SEQUENCE_specifics_t asn_SPC_E2setupRequestIEs_specs_89 = { +asn_SEQUENCE_specifics_t asn_SPC_E2setupRequestIEs_specs_117 = { sizeof(struct E2setupRequestIEs), offsetof(struct E2setupRequestIEs, _asn_ctx), - asn_MAP_E2setupRequestIEs_tag2el_89, - 2, /* Count of tags in the map */ + asn_MAP_E2setupRequestIEs_tag2el_117, + 3, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; @@ -8435,19 +10333,28 @@ asn_TYPE_descriptor_t asn_DEF_E2setupRequestIEs = { "E2setupRequestIEs", "E2setupRequestIEs", &asn_OP_SEQUENCE, - asn_DEF_E2setupRequestIEs_tags_89, - sizeof(asn_DEF_E2setupRequestIEs_tags_89) - /sizeof(asn_DEF_E2setupRequestIEs_tags_89[0]), /* 1 */ - asn_DEF_E2setupRequestIEs_tags_89, /* Same as above */ - sizeof(asn_DEF_E2setupRequestIEs_tags_89) - /sizeof(asn_DEF_E2setupRequestIEs_tags_89[0]), /* 1 */ + asn_DEF_E2setupRequestIEs_tags_117, + sizeof(asn_DEF_E2setupRequestIEs_tags_117) + /sizeof(asn_DEF_E2setupRequestIEs_tags_117[0]), /* 1 */ + asn_DEF_E2setupRequestIEs_tags_117, /* Same as above */ + sizeof(asn_DEF_E2setupRequestIEs_tags_117) + /sizeof(asn_DEF_E2setupRequestIEs_tags_117[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_E2setupRequestIEs_89, + asn_MBR_E2setupRequestIEs_117, 3, /* Elements count */ - &asn_SPC_E2setupRequestIEs_specs_89 /* Additional specs */ + &asn_SPC_E2setupRequestIEs_specs_117 /* Additional specs */ }; -static asn_TYPE_member_t asn_MBR_value_96[] = { +static asn_TYPE_member_t asn_MBR_value_124[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2setupResponseIEs__value, choice.TransactionID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_TransactionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "TransactionID" + }, { ATF_NOFLAGS, 0, offsetof(struct E2setupResponseIEs__value, choice.GlobalRIC_ID), (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -8475,34 +10382,35 @@ static asn_TYPE_member_t asn_MBR_value_96[] = { 0, 0, /* No default value */ "RANfunctionsIDcause-List" }, - { ATF_NOFLAGS, 0, offsetof(struct E2setupResponseIEs__value, choice.E2nodeComponentConfigUpdateAck_List), + { ATF_NOFLAGS, 0, offsetof(struct E2setupResponseIEs__value, choice.E2nodeComponentConfigAdditionAck_List), (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, - &asn_DEF_E2nodeComponentConfigUpdateAck_List, + &asn_DEF_E2nodeComponentConfigAdditionAck_List, 0, { 0, 0, 0 }, 0, 0, /* No default value */ - "E2nodeComponentConfigUpdateAck-List" + "E2nodeComponentConfigAdditionAck-List" }, }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_96[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 3 }, /* GlobalRIC-ID */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 2 }, /* RANfunctionsID-List */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -2, 1 }, /* RANfunctionsIDcause-List */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -3, 0 } /* E2nodeComponentConfigUpdateAck-List */ +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_124[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* TransactionID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 3 }, /* GlobalRIC-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -1, 2 }, /* RANfunctionsID-List */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -2, 1 }, /* RANfunctionsIDcause-List */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, -3, 0 } /* E2nodeComponentConfigAdditionAck-List */ }; -static asn_CHOICE_specifics_t asn_SPC_value_specs_96 = { +static asn_CHOICE_specifics_t asn_SPC_value_specs_124 = { sizeof(struct E2setupResponseIEs__value), offsetof(struct E2setupResponseIEs__value, _asn_ctx), offsetof(struct E2setupResponseIEs__value, present), sizeof(((struct E2setupResponseIEs__value *)0)->present), - asn_MAP_value_tag2el_96, - 4, /* Count of tags in the map */ + asn_MAP_value_tag2el_124, + 5, /* Count of tags in the map */ 0, 0, -1 /* Extensions start */ }; static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_96 = { +asn_TYPE_descriptor_t asn_DEF_value_124 = { "value", "value", &asn_OP_OPEN_TYPE, @@ -8511,52 +10419,53 @@ asn_TYPE_descriptor_t asn_DEF_value_96 = { 0, /* No tags (pointer) */ 0, /* No tags (count) */ { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_96, - 4, /* Elements count */ - &asn_SPC_value_specs_96 /* Additional specs */ + asn_MBR_value_124, + 5, /* Elements count */ + &asn_SPC_value_specs_124 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_E2setupResponseIEs_93[] = { +asn_TYPE_member_t asn_MBR_E2setupResponseIEs_121[] = { { ATF_NOFLAGS, 0, offsetof(struct E2setupResponseIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_ProtocolIE_ID, 0, - { 0, &asn_PER_memb_id_constr_94, memb_id_constraint_93 }, + { 0, &asn_PER_memb_id_constr_122, memb_id_constraint_121 }, 0, 0, /* No default value */ "id" }, { ATF_NOFLAGS, 0, offsetof(struct E2setupResponseIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_Criticality, select_E2setupResponseIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_95, memb_criticality_constraint_93 }, + { 0, &asn_PER_memb_criticality_constr_123, memb_criticality_constraint_121 }, 0, 0, /* No default value */ "criticality" }, { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E2setupResponseIEs, value), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_value_96, + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_124, select_E2setupResponseIEs_value_type, - { 0, &asn_PER_memb_value_constr_96, memb_value_constraint_93 }, + { 0, &asn_PER_memb_value_constr_124, memb_value_constraint_121 }, 0, 0, /* No default value */ "value" }, }; -static const ber_tlv_tag_t asn_DEF_E2setupResponseIEs_tags_93[] = { +static const ber_tlv_tag_t asn_DEF_E2setupResponseIEs_tags_121[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -static const asn_TYPE_tag2member_t asn_MAP_E2setupResponseIEs_tag2el_93[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +static const asn_TYPE_tag2member_t asn_MAP_E2setupResponseIEs_tag2el_121[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ }; -asn_SEQUENCE_specifics_t asn_SPC_E2setupResponseIEs_specs_93 = { +asn_SEQUENCE_specifics_t asn_SPC_E2setupResponseIEs_specs_121 = { sizeof(struct E2setupResponseIEs), offsetof(struct E2setupResponseIEs, _asn_ctx), - asn_MAP_E2setupResponseIEs_tag2el_93, - 2, /* Count of tags in the map */ + asn_MAP_E2setupResponseIEs_tag2el_121, + 3, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; @@ -8564,19 +10473,28 @@ asn_TYPE_descriptor_t asn_DEF_E2setupResponseIEs = { "E2setupResponseIEs", "E2setupResponseIEs", &asn_OP_SEQUENCE, - asn_DEF_E2setupResponseIEs_tags_93, - sizeof(asn_DEF_E2setupResponseIEs_tags_93) - /sizeof(asn_DEF_E2setupResponseIEs_tags_93[0]), /* 1 */ - asn_DEF_E2setupResponseIEs_tags_93, /* Same as above */ - sizeof(asn_DEF_E2setupResponseIEs_tags_93) - /sizeof(asn_DEF_E2setupResponseIEs_tags_93[0]), /* 1 */ + asn_DEF_E2setupResponseIEs_tags_121, + sizeof(asn_DEF_E2setupResponseIEs_tags_121) + /sizeof(asn_DEF_E2setupResponseIEs_tags_121[0]), /* 1 */ + asn_DEF_E2setupResponseIEs_tags_121, /* Same as above */ + sizeof(asn_DEF_E2setupResponseIEs_tags_121) + /sizeof(asn_DEF_E2setupResponseIEs_tags_121[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_E2setupResponseIEs_93, + asn_MBR_E2setupResponseIEs_121, 3, /* Elements count */ - &asn_SPC_E2setupResponseIEs_specs_93 /* Additional specs */ + &asn_SPC_E2setupResponseIEs_specs_121 /* Additional specs */ }; -static asn_TYPE_member_t asn_MBR_value_100[] = { +static asn_TYPE_member_t asn_MBR_value_128[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2setupFailureIEs__value, choice.TransactionID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_TransactionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "TransactionID" + }, { ATF_NOFLAGS, 0, offsetof(struct E2setupFailureIEs__value, choice.Cause), -1 /* Ambiguous tag (CHOICE?) */, 0, @@ -8614,31 +10532,33 @@ static asn_TYPE_member_t asn_MBR_value_100[] = { "TNLinformation" }, }; -static const unsigned asn_MAP_value_to_canonical_100[] = { 1, 2, 3, 0 }; -static const unsigned asn_MAP_value_from_canonical_100[] = { 3, 0, 1, 2 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_100[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 }, /* TimeToWait */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, 0, 1 }, /* CriticalityDiagnostics */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -1, 0 }, /* TNLinformation */ - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ricRequest */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 0, 0, 0 }, /* ricService */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 0, 0, 0 }, /* transport */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 0, 0, 0 }, /* protocol */ - { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 0, 0, 0 } /* misc */ +static const unsigned asn_MAP_value_to_canonical_128[] = { 0, 2, 3, 4, 1 }; +static const unsigned asn_MAP_value_from_canonical_128[] = { 0, 4, 1, 2, 3 }; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_128[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* TransactionID */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 2, 0, 0 }, /* TimeToWait */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, 0, 1 }, /* CriticalityDiagnostics */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, -1, 0 }, /* TNLinformation */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 1, 0, 0 }, /* ricRequest */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ricService */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 1, 0, 0 }, /* e2Node */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 1, 0, 0 }, /* transport */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 1, 0, 0 }, /* protocol */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 1, 0, 0 } /* misc */ }; -static asn_CHOICE_specifics_t asn_SPC_value_specs_100 = { +static asn_CHOICE_specifics_t asn_SPC_value_specs_128 = { sizeof(struct E2setupFailureIEs__value), offsetof(struct E2setupFailureIEs__value, _asn_ctx), offsetof(struct E2setupFailureIEs__value, present), sizeof(((struct E2setupFailureIEs__value *)0)->present), - asn_MAP_value_tag2el_100, - 8, /* Count of tags in the map */ - asn_MAP_value_to_canonical_100, - asn_MAP_value_from_canonical_100, + asn_MAP_value_tag2el_128, + 10, /* Count of tags in the map */ + asn_MAP_value_to_canonical_128, + asn_MAP_value_from_canonical_128, -1 /* Extensions start */ }; static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_100 = { +asn_TYPE_descriptor_t asn_DEF_value_128 = { "value", "value", &asn_OP_OPEN_TYPE, @@ -8647,52 +10567,53 @@ asn_TYPE_descriptor_t asn_DEF_value_100 = { 0, /* No tags (pointer) */ 0, /* No tags (count) */ { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_100, - 4, /* Elements count */ - &asn_SPC_value_specs_100 /* Additional specs */ + asn_MBR_value_128, + 5, /* Elements count */ + &asn_SPC_value_specs_128 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_E2setupFailureIEs_97[] = { +asn_TYPE_member_t asn_MBR_E2setupFailureIEs_125[] = { { ATF_NOFLAGS, 0, offsetof(struct E2setupFailureIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_ProtocolIE_ID, 0, - { 0, &asn_PER_memb_id_constr_98, memb_id_constraint_97 }, + { 0, &asn_PER_memb_id_constr_126, memb_id_constraint_125 }, 0, 0, /* No default value */ "id" }, { ATF_NOFLAGS, 0, offsetof(struct E2setupFailureIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_Criticality, select_E2setupFailureIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_99, memb_criticality_constraint_97 }, + { 0, &asn_PER_memb_criticality_constr_127, memb_criticality_constraint_125 }, 0, 0, /* No default value */ "criticality" }, { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E2setupFailureIEs, value), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_value_100, + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_128, select_E2setupFailureIEs_value_type, - { 0, &asn_PER_memb_value_constr_100, memb_value_constraint_97 }, + { 0, &asn_PER_memb_value_constr_128, memb_value_constraint_125 }, 0, 0, /* No default value */ "value" }, }; -static const ber_tlv_tag_t asn_DEF_E2setupFailureIEs_tags_97[] = { +static const ber_tlv_tag_t asn_DEF_E2setupFailureIEs_tags_125[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -static const asn_TYPE_tag2member_t asn_MAP_E2setupFailureIEs_tag2el_97[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +static const asn_TYPE_tag2member_t asn_MAP_E2setupFailureIEs_tag2el_125[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ }; -asn_SEQUENCE_specifics_t asn_SPC_E2setupFailureIEs_specs_97 = { +asn_SEQUENCE_specifics_t asn_SPC_E2setupFailureIEs_specs_125 = { sizeof(struct E2setupFailureIEs), offsetof(struct E2setupFailureIEs, _asn_ctx), - asn_MAP_E2setupFailureIEs_tag2el_97, - 2, /* Count of tags in the map */ + asn_MAP_E2setupFailureIEs_tag2el_125, + 3, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; @@ -8700,19 +10621,28 @@ asn_TYPE_descriptor_t asn_DEF_E2setupFailureIEs = { "E2setupFailureIEs", "E2setupFailureIEs", &asn_OP_SEQUENCE, - asn_DEF_E2setupFailureIEs_tags_97, - sizeof(asn_DEF_E2setupFailureIEs_tags_97) - /sizeof(asn_DEF_E2setupFailureIEs_tags_97[0]), /* 1 */ - asn_DEF_E2setupFailureIEs_tags_97, /* Same as above */ - sizeof(asn_DEF_E2setupFailureIEs_tags_97) - /sizeof(asn_DEF_E2setupFailureIEs_tags_97[0]), /* 1 */ + asn_DEF_E2setupFailureIEs_tags_125, + sizeof(asn_DEF_E2setupFailureIEs_tags_125) + /sizeof(asn_DEF_E2setupFailureIEs_tags_125[0]), /* 1 */ + asn_DEF_E2setupFailureIEs_tags_125, /* Same as above */ + sizeof(asn_DEF_E2setupFailureIEs_tags_125) + /sizeof(asn_DEF_E2setupFailureIEs_tags_125[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_E2setupFailureIEs_97, + asn_MBR_E2setupFailureIEs_125, 3, /* Elements count */ - &asn_SPC_E2setupFailureIEs_specs_97 /* Additional specs */ + &asn_SPC_E2setupFailureIEs_specs_125 /* Additional specs */ }; -static asn_TYPE_member_t asn_MBR_value_104[] = { +static asn_TYPE_member_t asn_MBR_value_132[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdate_IEs__value, choice.TransactionID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_TransactionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "TransactionID" + }, { ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdate_IEs__value, choice.E2connectionUpdate_List), (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -8732,22 +10662,23 @@ static asn_TYPE_member_t asn_MBR_value_104[] = { "E2connectionUpdateRemove-List" }, }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_104[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 1 }, /* E2connectionUpdate-List */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 0 } /* E2connectionUpdateRemove-List */ +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_132[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* TransactionID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 1 }, /* E2connectionUpdate-List */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -1, 0 } /* E2connectionUpdateRemove-List */ }; -static asn_CHOICE_specifics_t asn_SPC_value_specs_104 = { +static asn_CHOICE_specifics_t asn_SPC_value_specs_132 = { sizeof(struct E2connectionUpdate_IEs__value), offsetof(struct E2connectionUpdate_IEs__value, _asn_ctx), offsetof(struct E2connectionUpdate_IEs__value, present), sizeof(((struct E2connectionUpdate_IEs__value *)0)->present), - asn_MAP_value_tag2el_104, - 2, /* Count of tags in the map */ + asn_MAP_value_tag2el_132, + 3, /* Count of tags in the map */ 0, 0, -1 /* Extensions start */ }; static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_104 = { +asn_TYPE_descriptor_t asn_DEF_value_132 = { "value", "value", &asn_OP_OPEN_TYPE, @@ -8756,52 +10687,53 @@ asn_TYPE_descriptor_t asn_DEF_value_104 = { 0, /* No tags (pointer) */ 0, /* No tags (count) */ { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_104, - 2, /* Elements count */ - &asn_SPC_value_specs_104 /* Additional specs */ + asn_MBR_value_132, + 3, /* Elements count */ + &asn_SPC_value_specs_132 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_E2connectionUpdate_IEs_101[] = { +asn_TYPE_member_t asn_MBR_E2connectionUpdate_IEs_129[] = { { ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdate_IEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_ProtocolIE_ID, 0, - { 0, &asn_PER_memb_id_constr_102, memb_id_constraint_101 }, + { 0, &asn_PER_memb_id_constr_130, memb_id_constraint_129 }, 0, 0, /* No default value */ "id" }, { ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdate_IEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_Criticality, select_E2connectionUpdate_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_103, memb_criticality_constraint_101 }, + { 0, &asn_PER_memb_criticality_constr_131, memb_criticality_constraint_129 }, 0, 0, /* No default value */ "criticality" }, { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdate_IEs, value), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_value_104, + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_132, select_E2connectionUpdate_IEs_value_type, - { 0, &asn_PER_memb_value_constr_104, memb_value_constraint_101 }, + { 0, &asn_PER_memb_value_constr_132, memb_value_constraint_129 }, 0, 0, /* No default value */ "value" }, }; -static const ber_tlv_tag_t asn_DEF_E2connectionUpdate_IEs_tags_101[] = { +static const ber_tlv_tag_t asn_DEF_E2connectionUpdate_IEs_tags_129[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -static const asn_TYPE_tag2member_t asn_MAP_E2connectionUpdate_IEs_tag2el_101[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +static const asn_TYPE_tag2member_t asn_MAP_E2connectionUpdate_IEs_tag2el_129[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ }; -asn_SEQUENCE_specifics_t asn_SPC_E2connectionUpdate_IEs_specs_101 = { +asn_SEQUENCE_specifics_t asn_SPC_E2connectionUpdate_IEs_specs_129 = { sizeof(struct E2connectionUpdate_IEs), offsetof(struct E2connectionUpdate_IEs, _asn_ctx), - asn_MAP_E2connectionUpdate_IEs_tag2el_101, - 2, /* Count of tags in the map */ + asn_MAP_E2connectionUpdate_IEs_tag2el_129, + 3, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; @@ -8809,19 +10741,28 @@ asn_TYPE_descriptor_t asn_DEF_E2connectionUpdate_IEs = { "E2connectionUpdate-IEs", "E2connectionUpdate-IEs", &asn_OP_SEQUENCE, - asn_DEF_E2connectionUpdate_IEs_tags_101, - sizeof(asn_DEF_E2connectionUpdate_IEs_tags_101) - /sizeof(asn_DEF_E2connectionUpdate_IEs_tags_101[0]), /* 1 */ - asn_DEF_E2connectionUpdate_IEs_tags_101, /* Same as above */ - sizeof(asn_DEF_E2connectionUpdate_IEs_tags_101) - /sizeof(asn_DEF_E2connectionUpdate_IEs_tags_101[0]), /* 1 */ + asn_DEF_E2connectionUpdate_IEs_tags_129, + sizeof(asn_DEF_E2connectionUpdate_IEs_tags_129) + /sizeof(asn_DEF_E2connectionUpdate_IEs_tags_129[0]), /* 1 */ + asn_DEF_E2connectionUpdate_IEs_tags_129, /* Same as above */ + sizeof(asn_DEF_E2connectionUpdate_IEs_tags_129) + /sizeof(asn_DEF_E2connectionUpdate_IEs_tags_129[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_E2connectionUpdate_IEs_101, + asn_MBR_E2connectionUpdate_IEs_129, 3, /* Elements count */ - &asn_SPC_E2connectionUpdate_IEs_specs_101 /* Additional specs */ + &asn_SPC_E2connectionUpdate_IEs_specs_129 /* Additional specs */ }; -static asn_TYPE_member_t asn_MBR_value_108[] = { +static asn_TYPE_member_t asn_MBR_value_136[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdateAck_IEs__value, choice.TransactionID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_TransactionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "TransactionID" + }, { ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdateAck_IEs__value, choice.E2connectionUpdate_List), (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -8841,22 +10782,23 @@ static asn_TYPE_member_t asn_MBR_value_108[] = { "E2connectionSetupFailed-List" }, }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_108[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 1 }, /* E2connectionUpdate-List */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 0 } /* E2connectionSetupFailed-List */ +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_136[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* TransactionID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 1 }, /* E2connectionUpdate-List */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -1, 0 } /* E2connectionSetupFailed-List */ }; -static asn_CHOICE_specifics_t asn_SPC_value_specs_108 = { +static asn_CHOICE_specifics_t asn_SPC_value_specs_136 = { sizeof(struct E2connectionUpdateAck_IEs__value), offsetof(struct E2connectionUpdateAck_IEs__value, _asn_ctx), offsetof(struct E2connectionUpdateAck_IEs__value, present), sizeof(((struct E2connectionUpdateAck_IEs__value *)0)->present), - asn_MAP_value_tag2el_108, - 2, /* Count of tags in the map */ + asn_MAP_value_tag2el_136, + 3, /* Count of tags in the map */ 0, 0, -1 /* Extensions start */ }; static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_108 = { +asn_TYPE_descriptor_t asn_DEF_value_136 = { "value", "value", &asn_OP_OPEN_TYPE, @@ -8865,52 +10807,53 @@ asn_TYPE_descriptor_t asn_DEF_value_108 = { 0, /* No tags (pointer) */ 0, /* No tags (count) */ { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_108, - 2, /* Elements count */ - &asn_SPC_value_specs_108 /* Additional specs */ + asn_MBR_value_136, + 3, /* Elements count */ + &asn_SPC_value_specs_136 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_E2connectionUpdateAck_IEs_105[] = { +asn_TYPE_member_t asn_MBR_E2connectionUpdateAck_IEs_133[] = { { ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdateAck_IEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_ProtocolIE_ID, 0, - { 0, &asn_PER_memb_id_constr_106, memb_id_constraint_105 }, + { 0, &asn_PER_memb_id_constr_134, memb_id_constraint_133 }, 0, 0, /* No default value */ "id" }, { ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdateAck_IEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_Criticality, select_E2connectionUpdateAck_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_107, memb_criticality_constraint_105 }, + { 0, &asn_PER_memb_criticality_constr_135, memb_criticality_constraint_133 }, 0, 0, /* No default value */ "criticality" }, { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdateAck_IEs, value), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_value_108, + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_136, select_E2connectionUpdateAck_IEs_value_type, - { 0, &asn_PER_memb_value_constr_108, memb_value_constraint_105 }, + { 0, &asn_PER_memb_value_constr_136, memb_value_constraint_133 }, 0, 0, /* No default value */ "value" }, }; -static const ber_tlv_tag_t asn_DEF_E2connectionUpdateAck_IEs_tags_105[] = { +static const ber_tlv_tag_t asn_DEF_E2connectionUpdateAck_IEs_tags_133[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -static const asn_TYPE_tag2member_t asn_MAP_E2connectionUpdateAck_IEs_tag2el_105[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +static const asn_TYPE_tag2member_t asn_MAP_E2connectionUpdateAck_IEs_tag2el_133[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ }; -asn_SEQUENCE_specifics_t asn_SPC_E2connectionUpdateAck_IEs_specs_105 = { +asn_SEQUENCE_specifics_t asn_SPC_E2connectionUpdateAck_IEs_specs_133 = { sizeof(struct E2connectionUpdateAck_IEs), offsetof(struct E2connectionUpdateAck_IEs, _asn_ctx), - asn_MAP_E2connectionUpdateAck_IEs_tag2el_105, - 2, /* Count of tags in the map */ + asn_MAP_E2connectionUpdateAck_IEs_tag2el_133, + 3, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; @@ -8918,19 +10861,28 @@ asn_TYPE_descriptor_t asn_DEF_E2connectionUpdateAck_IEs = { "E2connectionUpdateAck-IEs", "E2connectionUpdateAck-IEs", &asn_OP_SEQUENCE, - asn_DEF_E2connectionUpdateAck_IEs_tags_105, - sizeof(asn_DEF_E2connectionUpdateAck_IEs_tags_105) - /sizeof(asn_DEF_E2connectionUpdateAck_IEs_tags_105[0]), /* 1 */ - asn_DEF_E2connectionUpdateAck_IEs_tags_105, /* Same as above */ - sizeof(asn_DEF_E2connectionUpdateAck_IEs_tags_105) - /sizeof(asn_DEF_E2connectionUpdateAck_IEs_tags_105[0]), /* 1 */ + asn_DEF_E2connectionUpdateAck_IEs_tags_133, + sizeof(asn_DEF_E2connectionUpdateAck_IEs_tags_133) + /sizeof(asn_DEF_E2connectionUpdateAck_IEs_tags_133[0]), /* 1 */ + asn_DEF_E2connectionUpdateAck_IEs_tags_133, /* Same as above */ + sizeof(asn_DEF_E2connectionUpdateAck_IEs_tags_133) + /sizeof(asn_DEF_E2connectionUpdateAck_IEs_tags_133[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_E2connectionUpdateAck_IEs_105, + asn_MBR_E2connectionUpdateAck_IEs_133, 3, /* Elements count */ - &asn_SPC_E2connectionUpdateAck_IEs_specs_105 /* Additional specs */ + &asn_SPC_E2connectionUpdateAck_IEs_specs_133 /* Additional specs */ }; -static asn_TYPE_member_t asn_MBR_value_112[] = { +static asn_TYPE_member_t asn_MBR_value_140[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdateFailure_IEs__value, choice.TransactionID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_TransactionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "TransactionID" + }, { ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdateFailure_IEs__value, choice.Cause), -1 /* Ambiguous tag (CHOICE?) */, 0, @@ -8959,30 +10911,32 @@ static asn_TYPE_member_t asn_MBR_value_112[] = { "CriticalityDiagnostics" }, }; -static const unsigned asn_MAP_value_to_canonical_112[] = { 1, 2, 0 }; -static const unsigned asn_MAP_value_from_canonical_112[] = { 2, 0, 1 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_112[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 }, /* TimeToWait */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, 0, 0 }, /* CriticalityDiagnostics */ - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ricRequest */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 0, 0, 0 }, /* ricService */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 0, 0, 0 }, /* transport */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 0, 0, 0 }, /* protocol */ - { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 0, 0, 0 } /* misc */ +static const unsigned asn_MAP_value_to_canonical_140[] = { 0, 2, 3, 1 }; +static const unsigned asn_MAP_value_from_canonical_140[] = { 0, 3, 1, 2 }; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_140[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* TransactionID */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 2, 0, 0 }, /* TimeToWait */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, 0, 0 }, /* CriticalityDiagnostics */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 1, 0, 0 }, /* ricRequest */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ricService */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 1, 0, 0 }, /* e2Node */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 1, 0, 0 }, /* transport */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 1, 0, 0 }, /* protocol */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 1, 0, 0 } /* misc */ }; -static asn_CHOICE_specifics_t asn_SPC_value_specs_112 = { +static asn_CHOICE_specifics_t asn_SPC_value_specs_140 = { sizeof(struct E2connectionUpdateFailure_IEs__value), offsetof(struct E2connectionUpdateFailure_IEs__value, _asn_ctx), offsetof(struct E2connectionUpdateFailure_IEs__value, present), sizeof(((struct E2connectionUpdateFailure_IEs__value *)0)->present), - asn_MAP_value_tag2el_112, - 7, /* Count of tags in the map */ - asn_MAP_value_to_canonical_112, - asn_MAP_value_from_canonical_112, + asn_MAP_value_tag2el_140, + 9, /* Count of tags in the map */ + asn_MAP_value_to_canonical_140, + asn_MAP_value_from_canonical_140, -1 /* Extensions start */ }; static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_112 = { +asn_TYPE_descriptor_t asn_DEF_value_140 = { "value", "value", &asn_OP_OPEN_TYPE, @@ -8991,52 +10945,53 @@ asn_TYPE_descriptor_t asn_DEF_value_112 = { 0, /* No tags (pointer) */ 0, /* No tags (count) */ { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_112, - 3, /* Elements count */ - &asn_SPC_value_specs_112 /* Additional specs */ + asn_MBR_value_140, + 4, /* Elements count */ + &asn_SPC_value_specs_140 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_E2connectionUpdateFailure_IEs_109[] = { +asn_TYPE_member_t asn_MBR_E2connectionUpdateFailure_IEs_137[] = { { ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdateFailure_IEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_ProtocolIE_ID, 0, - { 0, &asn_PER_memb_id_constr_110, memb_id_constraint_109 }, + { 0, &asn_PER_memb_id_constr_138, memb_id_constraint_137 }, 0, 0, /* No default value */ "id" }, { ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdateFailure_IEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_Criticality, select_E2connectionUpdateFailure_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_111, memb_criticality_constraint_109 }, + { 0, &asn_PER_memb_criticality_constr_139, memb_criticality_constraint_137 }, 0, 0, /* No default value */ "criticality" }, { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdateFailure_IEs, value), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_value_112, + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_140, select_E2connectionUpdateFailure_IEs_value_type, - { 0, &asn_PER_memb_value_constr_112, memb_value_constraint_109 }, + { 0, &asn_PER_memb_value_constr_140, memb_value_constraint_137 }, 0, 0, /* No default value */ "value" }, }; -static const ber_tlv_tag_t asn_DEF_E2connectionUpdateFailure_IEs_tags_109[] = { +static const ber_tlv_tag_t asn_DEF_E2connectionUpdateFailure_IEs_tags_137[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -static const asn_TYPE_tag2member_t asn_MAP_E2connectionUpdateFailure_IEs_tag2el_109[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +static const asn_TYPE_tag2member_t asn_MAP_E2connectionUpdateFailure_IEs_tag2el_137[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ }; -asn_SEQUENCE_specifics_t asn_SPC_E2connectionUpdateFailure_IEs_specs_109 = { +asn_SEQUENCE_specifics_t asn_SPC_E2connectionUpdateFailure_IEs_specs_137 = { sizeof(struct E2connectionUpdateFailure_IEs), offsetof(struct E2connectionUpdateFailure_IEs, _asn_ctx), - asn_MAP_E2connectionUpdateFailure_IEs_tag2el_109, - 2, /* Count of tags in the map */ + asn_MAP_E2connectionUpdateFailure_IEs_tag2el_137, + 3, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; @@ -9044,19 +10999,46 @@ asn_TYPE_descriptor_t asn_DEF_E2connectionUpdateFailure_IEs = { "E2connectionUpdateFailure-IEs", "E2connectionUpdateFailure-IEs", &asn_OP_SEQUENCE, - asn_DEF_E2connectionUpdateFailure_IEs_tags_109, - sizeof(asn_DEF_E2connectionUpdateFailure_IEs_tags_109) - /sizeof(asn_DEF_E2connectionUpdateFailure_IEs_tags_109[0]), /* 1 */ - asn_DEF_E2connectionUpdateFailure_IEs_tags_109, /* Same as above */ - sizeof(asn_DEF_E2connectionUpdateFailure_IEs_tags_109) - /sizeof(asn_DEF_E2connectionUpdateFailure_IEs_tags_109[0]), /* 1 */ + asn_DEF_E2connectionUpdateFailure_IEs_tags_137, + sizeof(asn_DEF_E2connectionUpdateFailure_IEs_tags_137) + /sizeof(asn_DEF_E2connectionUpdateFailure_IEs_tags_137[0]), /* 1 */ + asn_DEF_E2connectionUpdateFailure_IEs_tags_137, /* Same as above */ + sizeof(asn_DEF_E2connectionUpdateFailure_IEs_tags_137) + /sizeof(asn_DEF_E2connectionUpdateFailure_IEs_tags_137[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_E2connectionUpdateFailure_IEs_109, + asn_MBR_E2connectionUpdateFailure_IEs_137, 3, /* Elements count */ - &asn_SPC_E2connectionUpdateFailure_IEs_specs_109 /* Additional specs */ + &asn_SPC_E2connectionUpdateFailure_IEs_specs_137 /* Additional specs */ }; -static asn_TYPE_member_t asn_MBR_value_116[] = { +static asn_TYPE_member_t asn_MBR_value_144[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdate_IEs__value, choice.TransactionID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_TransactionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "TransactionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdate_IEs__value, choice.GlobalE2node_ID), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_GlobalE2node_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "GlobalE2node-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdate_IEs__value, choice.E2nodeComponentConfigAddition_List), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_E2nodeComponentConfigAddition_List, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "E2nodeComponentConfigAddition-List" + }, { ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdate_IEs__value, choice.E2nodeComponentConfigUpdate_List), (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -9066,22 +11048,51 @@ static asn_TYPE_member_t asn_MBR_value_116[] = { 0, 0, /* No default value */ "E2nodeComponentConfigUpdate-List" }, + { ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdate_IEs__value, choice.E2nodeComponentConfigRemoval_List), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_E2nodeComponentConfigRemoval_List, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "E2nodeComponentConfigRemoval-List" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdate_IEs__value, choice.E2nodeTNLassociationRemoval_List), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_E2nodeTNLassociationRemoval_List, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "E2nodeTNLassociationRemoval-List" + }, }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_116[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* E2nodeComponentConfigUpdate-List */ +static const unsigned asn_MAP_value_to_canonical_144[] = { 0, 2, 3, 4, 5, 1 }; +static const unsigned asn_MAP_value_from_canonical_144[] = { 0, 5, 1, 2, 3, 4 }; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_144[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* TransactionID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, 0, 3 }, /* E2nodeComponentConfigAddition-List */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -1, 2 }, /* E2nodeComponentConfigUpdate-List */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, -2, 1 }, /* E2nodeComponentConfigRemoval-List */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 5, -3, 0 }, /* E2nodeTNLassociationRemoval-List */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 1, 0, 0 }, /* gNB */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* en-gNB */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 1, 0, 0 }, /* ng-eNB */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 1, 0, 0 } /* eNB */ }; -static asn_CHOICE_specifics_t asn_SPC_value_specs_116 = { +static asn_CHOICE_specifics_t asn_SPC_value_specs_144 = { sizeof(struct E2nodeConfigurationUpdate_IEs__value), offsetof(struct E2nodeConfigurationUpdate_IEs__value, _asn_ctx), offsetof(struct E2nodeConfigurationUpdate_IEs__value, present), sizeof(((struct E2nodeConfigurationUpdate_IEs__value *)0)->present), - asn_MAP_value_tag2el_116, - 1, /* Count of tags in the map */ - 0, 0, + asn_MAP_value_tag2el_144, + 9, /* Count of tags in the map */ + asn_MAP_value_to_canonical_144, + asn_MAP_value_from_canonical_144, -1 /* Extensions start */ }; static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_116 = { +asn_TYPE_descriptor_t asn_DEF_value_144 = { "value", "value", &asn_OP_OPEN_TYPE, @@ -9090,52 +11101,53 @@ asn_TYPE_descriptor_t asn_DEF_value_116 = { 0, /* No tags (pointer) */ 0, /* No tags (count) */ { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_116, - 1, /* Elements count */ - &asn_SPC_value_specs_116 /* Additional specs */ + asn_MBR_value_144, + 6, /* Elements count */ + &asn_SPC_value_specs_144 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_E2nodeConfigurationUpdate_IEs_113[] = { +asn_TYPE_member_t asn_MBR_E2nodeConfigurationUpdate_IEs_141[] = { { ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdate_IEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_ProtocolIE_ID, 0, - { 0, &asn_PER_memb_id_constr_114, memb_id_constraint_113 }, + { 0, &asn_PER_memb_id_constr_142, memb_id_constraint_141 }, 0, 0, /* No default value */ "id" }, { ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdate_IEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_Criticality, select_E2nodeConfigurationUpdate_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_115, memb_criticality_constraint_113 }, + { 0, &asn_PER_memb_criticality_constr_143, memb_criticality_constraint_141 }, 0, 0, /* No default value */ "criticality" }, { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdate_IEs, value), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_value_116, + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_144, select_E2nodeConfigurationUpdate_IEs_value_type, - { 0, &asn_PER_memb_value_constr_116, memb_value_constraint_113 }, + { 0, &asn_PER_memb_value_constr_144, memb_value_constraint_141 }, 0, 0, /* No default value */ "value" }, }; -static const ber_tlv_tag_t asn_DEF_E2nodeConfigurationUpdate_IEs_tags_113[] = { +static const ber_tlv_tag_t asn_DEF_E2nodeConfigurationUpdate_IEs_tags_141[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -static const asn_TYPE_tag2member_t asn_MAP_E2nodeConfigurationUpdate_IEs_tag2el_113[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +static const asn_TYPE_tag2member_t asn_MAP_E2nodeConfigurationUpdate_IEs_tag2el_141[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ }; -asn_SEQUENCE_specifics_t asn_SPC_E2nodeConfigurationUpdate_IEs_specs_113 = { +asn_SEQUENCE_specifics_t asn_SPC_E2nodeConfigurationUpdate_IEs_specs_141 = { sizeof(struct E2nodeConfigurationUpdate_IEs), offsetof(struct E2nodeConfigurationUpdate_IEs, _asn_ctx), - asn_MAP_E2nodeConfigurationUpdate_IEs_tag2el_113, - 2, /* Count of tags in the map */ + asn_MAP_E2nodeConfigurationUpdate_IEs_tag2el_141, + 3, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; @@ -9143,19 +11155,37 @@ asn_TYPE_descriptor_t asn_DEF_E2nodeConfigurationUpdate_IEs = { "E2nodeConfigurationUpdate-IEs", "E2nodeConfigurationUpdate-IEs", &asn_OP_SEQUENCE, - asn_DEF_E2nodeConfigurationUpdate_IEs_tags_113, - sizeof(asn_DEF_E2nodeConfigurationUpdate_IEs_tags_113) - /sizeof(asn_DEF_E2nodeConfigurationUpdate_IEs_tags_113[0]), /* 1 */ - asn_DEF_E2nodeConfigurationUpdate_IEs_tags_113, /* Same as above */ - sizeof(asn_DEF_E2nodeConfigurationUpdate_IEs_tags_113) - /sizeof(asn_DEF_E2nodeConfigurationUpdate_IEs_tags_113[0]), /* 1 */ + asn_DEF_E2nodeConfigurationUpdate_IEs_tags_141, + sizeof(asn_DEF_E2nodeConfigurationUpdate_IEs_tags_141) + /sizeof(asn_DEF_E2nodeConfigurationUpdate_IEs_tags_141[0]), /* 1 */ + asn_DEF_E2nodeConfigurationUpdate_IEs_tags_141, /* Same as above */ + sizeof(asn_DEF_E2nodeConfigurationUpdate_IEs_tags_141) + /sizeof(asn_DEF_E2nodeConfigurationUpdate_IEs_tags_141[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_E2nodeConfigurationUpdate_IEs_113, + asn_MBR_E2nodeConfigurationUpdate_IEs_141, 3, /* Elements count */ - &asn_SPC_E2nodeConfigurationUpdate_IEs_specs_113 /* Additional specs */ + &asn_SPC_E2nodeConfigurationUpdate_IEs_specs_141 /* Additional specs */ }; -static asn_TYPE_member_t asn_MBR_value_120[] = { +static asn_TYPE_member_t asn_MBR_value_148[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdateAcknowledge_IEs__value, choice.TransactionID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_TransactionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "TransactionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdateAcknowledge_IEs__value, choice.E2nodeComponentConfigAdditionAck_List), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_E2nodeComponentConfigAdditionAck_List, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "E2nodeComponentConfigAdditionAck-List" + }, { ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdateAcknowledge_IEs__value, choice.E2nodeComponentConfigUpdateAck_List), (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -9165,22 +11195,34 @@ static asn_TYPE_member_t asn_MBR_value_120[] = { 0, 0, /* No default value */ "E2nodeComponentConfigUpdateAck-List" }, + { ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdateAcknowledge_IEs__value, choice.E2nodeComponentConfigRemovalAck_List), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_E2nodeComponentConfigRemovalAck_List, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "E2nodeComponentConfigRemovalAck-List" + }, }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_120[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* E2nodeComponentConfigUpdateAck-List */ +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_148[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* TransactionID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 2 }, /* E2nodeComponentConfigAdditionAck-List */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -1, 1 }, /* E2nodeComponentConfigUpdateAck-List */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -2, 0 } /* E2nodeComponentConfigRemovalAck-List */ }; -static asn_CHOICE_specifics_t asn_SPC_value_specs_120 = { +static asn_CHOICE_specifics_t asn_SPC_value_specs_148 = { sizeof(struct E2nodeConfigurationUpdateAcknowledge_IEs__value), offsetof(struct E2nodeConfigurationUpdateAcknowledge_IEs__value, _asn_ctx), offsetof(struct E2nodeConfigurationUpdateAcknowledge_IEs__value, present), sizeof(((struct E2nodeConfigurationUpdateAcknowledge_IEs__value *)0)->present), - asn_MAP_value_tag2el_120, - 1, /* Count of tags in the map */ + asn_MAP_value_tag2el_148, + 4, /* Count of tags in the map */ 0, 0, -1 /* Extensions start */ }; static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_120 = { +asn_TYPE_descriptor_t asn_DEF_value_148 = { "value", "value", &asn_OP_OPEN_TYPE, @@ -9189,52 +11231,53 @@ asn_TYPE_descriptor_t asn_DEF_value_120 = { 0, /* No tags (pointer) */ 0, /* No tags (count) */ { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_120, - 1, /* Elements count */ - &asn_SPC_value_specs_120 /* Additional specs */ + asn_MBR_value_148, + 4, /* Elements count */ + &asn_SPC_value_specs_148 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_E2nodeConfigurationUpdateAcknowledge_IEs_117[] = { +asn_TYPE_member_t asn_MBR_E2nodeConfigurationUpdateAcknowledge_IEs_145[] = { { ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdateAcknowledge_IEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_ProtocolIE_ID, 0, - { 0, &asn_PER_memb_id_constr_118, memb_id_constraint_117 }, + { 0, &asn_PER_memb_id_constr_146, memb_id_constraint_145 }, 0, 0, /* No default value */ "id" }, { ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdateAcknowledge_IEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_Criticality, select_E2nodeConfigurationUpdateAcknowledge_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_119, memb_criticality_constraint_117 }, + { 0, &asn_PER_memb_criticality_constr_147, memb_criticality_constraint_145 }, 0, 0, /* No default value */ "criticality" }, { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdateAcknowledge_IEs, value), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_value_120, + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_148, select_E2nodeConfigurationUpdateAcknowledge_IEs_value_type, - { 0, &asn_PER_memb_value_constr_120, memb_value_constraint_117 }, + { 0, &asn_PER_memb_value_constr_148, memb_value_constraint_145 }, 0, 0, /* No default value */ "value" }, }; -static const ber_tlv_tag_t asn_DEF_E2nodeConfigurationUpdateAcknowledge_IEs_tags_117[] = { +static const ber_tlv_tag_t asn_DEF_E2nodeConfigurationUpdateAcknowledge_IEs_tags_145[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -static const asn_TYPE_tag2member_t asn_MAP_E2nodeConfigurationUpdateAcknowledge_IEs_tag2el_117[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +static const asn_TYPE_tag2member_t asn_MAP_E2nodeConfigurationUpdateAcknowledge_IEs_tag2el_145[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ }; -asn_SEQUENCE_specifics_t asn_SPC_E2nodeConfigurationUpdateAcknowledge_IEs_specs_117 = { +asn_SEQUENCE_specifics_t asn_SPC_E2nodeConfigurationUpdateAcknowledge_IEs_specs_145 = { sizeof(struct E2nodeConfigurationUpdateAcknowledge_IEs), offsetof(struct E2nodeConfigurationUpdateAcknowledge_IEs, _asn_ctx), - asn_MAP_E2nodeConfigurationUpdateAcknowledge_IEs_tag2el_117, - 2, /* Count of tags in the map */ + asn_MAP_E2nodeConfigurationUpdateAcknowledge_IEs_tag2el_145, + 3, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; @@ -9242,19 +11285,28 @@ asn_TYPE_descriptor_t asn_DEF_E2nodeConfigurationUpdateAcknowledge_IEs = { "E2nodeConfigurationUpdateAcknowledge-IEs", "E2nodeConfigurationUpdateAcknowledge-IEs", &asn_OP_SEQUENCE, - asn_DEF_E2nodeConfigurationUpdateAcknowledge_IEs_tags_117, - sizeof(asn_DEF_E2nodeConfigurationUpdateAcknowledge_IEs_tags_117) - /sizeof(asn_DEF_E2nodeConfigurationUpdateAcknowledge_IEs_tags_117[0]), /* 1 */ - asn_DEF_E2nodeConfigurationUpdateAcknowledge_IEs_tags_117, /* Same as above */ - sizeof(asn_DEF_E2nodeConfigurationUpdateAcknowledge_IEs_tags_117) - /sizeof(asn_DEF_E2nodeConfigurationUpdateAcknowledge_IEs_tags_117[0]), /* 1 */ + asn_DEF_E2nodeConfigurationUpdateAcknowledge_IEs_tags_145, + sizeof(asn_DEF_E2nodeConfigurationUpdateAcknowledge_IEs_tags_145) + /sizeof(asn_DEF_E2nodeConfigurationUpdateAcknowledge_IEs_tags_145[0]), /* 1 */ + asn_DEF_E2nodeConfigurationUpdateAcknowledge_IEs_tags_145, /* Same as above */ + sizeof(asn_DEF_E2nodeConfigurationUpdateAcknowledge_IEs_tags_145) + /sizeof(asn_DEF_E2nodeConfigurationUpdateAcknowledge_IEs_tags_145[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_E2nodeConfigurationUpdateAcknowledge_IEs_117, + asn_MBR_E2nodeConfigurationUpdateAcknowledge_IEs_145, 3, /* Elements count */ - &asn_SPC_E2nodeConfigurationUpdateAcknowledge_IEs_specs_117 /* Additional specs */ + &asn_SPC_E2nodeConfigurationUpdateAcknowledge_IEs_specs_145 /* Additional specs */ }; -static asn_TYPE_member_t asn_MBR_value_124[] = { +static asn_TYPE_member_t asn_MBR_value_152[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdateFailure_IEs__value, choice.TransactionID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_TransactionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "TransactionID" + }, { ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdateFailure_IEs__value, choice.Cause), -1 /* Ambiguous tag (CHOICE?) */, 0, @@ -9283,30 +11335,32 @@ static asn_TYPE_member_t asn_MBR_value_124[] = { "CriticalityDiagnostics" }, }; -static const unsigned asn_MAP_value_to_canonical_124[] = { 1, 2, 0 }; -static const unsigned asn_MAP_value_from_canonical_124[] = { 2, 0, 1 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_124[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 }, /* TimeToWait */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, 0, 0 }, /* CriticalityDiagnostics */ - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ricRequest */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 0, 0, 0 }, /* ricService */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 0, 0, 0 }, /* transport */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 0, 0, 0 }, /* protocol */ - { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 0, 0, 0 } /* misc */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_124 = { +static const unsigned asn_MAP_value_to_canonical_152[] = { 0, 2, 3, 1 }; +static const unsigned asn_MAP_value_from_canonical_152[] = { 0, 3, 1, 2 }; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_152[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* TransactionID */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 2, 0, 0 }, /* TimeToWait */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, 0, 0 }, /* CriticalityDiagnostics */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 1, 0, 0 }, /* ricRequest */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ricService */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 1, 0, 0 }, /* e2Node */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 1, 0, 0 }, /* transport */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 1, 0, 0 }, /* protocol */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 1, 0, 0 } /* misc */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_152 = { sizeof(struct E2nodeConfigurationUpdateFailure_IEs__value), offsetof(struct E2nodeConfigurationUpdateFailure_IEs__value, _asn_ctx), offsetof(struct E2nodeConfigurationUpdateFailure_IEs__value, present), sizeof(((struct E2nodeConfigurationUpdateFailure_IEs__value *)0)->present), - asn_MAP_value_tag2el_124, - 7, /* Count of tags in the map */ - asn_MAP_value_to_canonical_124, - asn_MAP_value_from_canonical_124, + asn_MAP_value_tag2el_152, + 9, /* Count of tags in the map */ + asn_MAP_value_to_canonical_152, + asn_MAP_value_from_canonical_152, -1 /* Extensions start */ }; static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_124 = { +asn_TYPE_descriptor_t asn_DEF_value_152 = { "value", "value", &asn_OP_OPEN_TYPE, @@ -9315,52 +11369,53 @@ asn_TYPE_descriptor_t asn_DEF_value_124 = { 0, /* No tags (pointer) */ 0, /* No tags (count) */ { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_124, - 3, /* Elements count */ - &asn_SPC_value_specs_124 /* Additional specs */ + asn_MBR_value_152, + 4, /* Elements count */ + &asn_SPC_value_specs_152 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_E2nodeConfigurationUpdateFailure_IEs_121[] = { +asn_TYPE_member_t asn_MBR_E2nodeConfigurationUpdateFailure_IEs_149[] = { { ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdateFailure_IEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_ProtocolIE_ID, 0, - { 0, &asn_PER_memb_id_constr_122, memb_id_constraint_121 }, + { 0, &asn_PER_memb_id_constr_150, memb_id_constraint_149 }, 0, 0, /* No default value */ "id" }, { ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdateFailure_IEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_Criticality, select_E2nodeConfigurationUpdateFailure_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_123, memb_criticality_constraint_121 }, + { 0, &asn_PER_memb_criticality_constr_151, memb_criticality_constraint_149 }, 0, 0, /* No default value */ "criticality" }, { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdateFailure_IEs, value), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_value_124, + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_152, select_E2nodeConfigurationUpdateFailure_IEs_value_type, - { 0, &asn_PER_memb_value_constr_124, memb_value_constraint_121 }, + { 0, &asn_PER_memb_value_constr_152, memb_value_constraint_149 }, 0, 0, /* No default value */ "value" }, }; -static const ber_tlv_tag_t asn_DEF_E2nodeConfigurationUpdateFailure_IEs_tags_121[] = { +static const ber_tlv_tag_t asn_DEF_E2nodeConfigurationUpdateFailure_IEs_tags_149[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -static const asn_TYPE_tag2member_t asn_MAP_E2nodeConfigurationUpdateFailure_IEs_tag2el_121[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +static const asn_TYPE_tag2member_t asn_MAP_E2nodeConfigurationUpdateFailure_IEs_tag2el_149[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ }; -asn_SEQUENCE_specifics_t asn_SPC_E2nodeConfigurationUpdateFailure_IEs_specs_121 = { +asn_SEQUENCE_specifics_t asn_SPC_E2nodeConfigurationUpdateFailure_IEs_specs_149 = { sizeof(struct E2nodeConfigurationUpdateFailure_IEs), offsetof(struct E2nodeConfigurationUpdateFailure_IEs, _asn_ctx), - asn_MAP_E2nodeConfigurationUpdateFailure_IEs_tag2el_121, - 2, /* Count of tags in the map */ + asn_MAP_E2nodeConfigurationUpdateFailure_IEs_tag2el_149, + 3, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; @@ -9368,19 +11423,28 @@ asn_TYPE_descriptor_t asn_DEF_E2nodeConfigurationUpdateFailure_IEs = { "E2nodeConfigurationUpdateFailure-IEs", "E2nodeConfigurationUpdateFailure-IEs", &asn_OP_SEQUENCE, - asn_DEF_E2nodeConfigurationUpdateFailure_IEs_tags_121, - sizeof(asn_DEF_E2nodeConfigurationUpdateFailure_IEs_tags_121) - /sizeof(asn_DEF_E2nodeConfigurationUpdateFailure_IEs_tags_121[0]), /* 1 */ - asn_DEF_E2nodeConfigurationUpdateFailure_IEs_tags_121, /* Same as above */ - sizeof(asn_DEF_E2nodeConfigurationUpdateFailure_IEs_tags_121) - /sizeof(asn_DEF_E2nodeConfigurationUpdateFailure_IEs_tags_121[0]), /* 1 */ + asn_DEF_E2nodeConfigurationUpdateFailure_IEs_tags_149, + sizeof(asn_DEF_E2nodeConfigurationUpdateFailure_IEs_tags_149) + /sizeof(asn_DEF_E2nodeConfigurationUpdateFailure_IEs_tags_149[0]), /* 1 */ + asn_DEF_E2nodeConfigurationUpdateFailure_IEs_tags_149, /* Same as above */ + sizeof(asn_DEF_E2nodeConfigurationUpdateFailure_IEs_tags_149) + /sizeof(asn_DEF_E2nodeConfigurationUpdateFailure_IEs_tags_149[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_E2nodeConfigurationUpdateFailure_IEs_121, + asn_MBR_E2nodeConfigurationUpdateFailure_IEs_149, 3, /* Elements count */ - &asn_SPC_E2nodeConfigurationUpdateFailure_IEs_specs_121 /* Additional specs */ + &asn_SPC_E2nodeConfigurationUpdateFailure_IEs_specs_149 /* Additional specs */ }; -static asn_TYPE_member_t asn_MBR_value_128[] = { +static asn_TYPE_member_t asn_MBR_value_156[] = { + { ATF_NOFLAGS, 0, offsetof(struct ResetRequestIEs__value, choice.TransactionID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_TransactionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "TransactionID" + }, { ATF_NOFLAGS, 0, offsetof(struct ResetRequestIEs__value, choice.Cause), -1 /* Ambiguous tag (CHOICE?) */, 0, @@ -9391,25 +11455,27 @@ static asn_TYPE_member_t asn_MBR_value_128[] = { "Cause" }, }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_128[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ricRequest */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 0, 0, 0 }, /* ricService */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 0, 0, 0 }, /* transport */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 0, 0, 0 }, /* protocol */ - { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 0, 0, 0 } /* misc */ +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_156[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* TransactionID */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 1, 0, 0 }, /* ricRequest */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ricService */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 1, 0, 0 }, /* e2Node */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 1, 0, 0 }, /* transport */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 1, 0, 0 }, /* protocol */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 1, 0, 0 } /* misc */ }; -static asn_CHOICE_specifics_t asn_SPC_value_specs_128 = { +static asn_CHOICE_specifics_t asn_SPC_value_specs_156 = { sizeof(struct ResetRequestIEs__value), offsetof(struct ResetRequestIEs__value, _asn_ctx), offsetof(struct ResetRequestIEs__value, present), sizeof(((struct ResetRequestIEs__value *)0)->present), - asn_MAP_value_tag2el_128, - 5, /* Count of tags in the map */ + asn_MAP_value_tag2el_156, + 7, /* Count of tags in the map */ 0, 0, -1 /* Extensions start */ }; static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_128 = { +asn_TYPE_descriptor_t asn_DEF_value_156 = { "value", "value", &asn_OP_OPEN_TYPE, @@ -9418,52 +11484,53 @@ asn_TYPE_descriptor_t asn_DEF_value_128 = { 0, /* No tags (pointer) */ 0, /* No tags (count) */ { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_128, - 1, /* Elements count */ - &asn_SPC_value_specs_128 /* Additional specs */ + asn_MBR_value_156, + 2, /* Elements count */ + &asn_SPC_value_specs_156 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_ResetRequestIEs_125[] = { +asn_TYPE_member_t asn_MBR_ResetRequestIEs_153[] = { { ATF_NOFLAGS, 0, offsetof(struct ResetRequestIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_ProtocolIE_ID, 0, - { 0, &asn_PER_memb_id_constr_126, memb_id_constraint_125 }, + { 0, &asn_PER_memb_id_constr_154, memb_id_constraint_153 }, 0, 0, /* No default value */ "id" }, { ATF_NOFLAGS, 0, offsetof(struct ResetRequestIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_Criticality, select_ResetRequestIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_127, memb_criticality_constraint_125 }, + { 0, &asn_PER_memb_criticality_constr_155, memb_criticality_constraint_153 }, 0, 0, /* No default value */ "criticality" }, { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ResetRequestIEs, value), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_value_128, + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_156, select_ResetRequestIEs_value_type, - { 0, &asn_PER_memb_value_constr_128, memb_value_constraint_125 }, + { 0, &asn_PER_memb_value_constr_156, memb_value_constraint_153 }, 0, 0, /* No default value */ "value" }, }; -static const ber_tlv_tag_t asn_DEF_ResetRequestIEs_tags_125[] = { +static const ber_tlv_tag_t asn_DEF_ResetRequestIEs_tags_153[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -static const asn_TYPE_tag2member_t asn_MAP_ResetRequestIEs_tag2el_125[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +static const asn_TYPE_tag2member_t asn_MAP_ResetRequestIEs_tag2el_153[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ }; -asn_SEQUENCE_specifics_t asn_SPC_ResetRequestIEs_specs_125 = { +asn_SEQUENCE_specifics_t asn_SPC_ResetRequestIEs_specs_153 = { sizeof(struct ResetRequestIEs), offsetof(struct ResetRequestIEs, _asn_ctx), - asn_MAP_ResetRequestIEs_tag2el_125, - 2, /* Count of tags in the map */ + asn_MAP_ResetRequestIEs_tag2el_153, + 3, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; @@ -9471,19 +11538,28 @@ asn_TYPE_descriptor_t asn_DEF_ResetRequestIEs = { "ResetRequestIEs", "ResetRequestIEs", &asn_OP_SEQUENCE, - asn_DEF_ResetRequestIEs_tags_125, - sizeof(asn_DEF_ResetRequestIEs_tags_125) - /sizeof(asn_DEF_ResetRequestIEs_tags_125[0]), /* 1 */ - asn_DEF_ResetRequestIEs_tags_125, /* Same as above */ - sizeof(asn_DEF_ResetRequestIEs_tags_125) - /sizeof(asn_DEF_ResetRequestIEs_tags_125[0]), /* 1 */ + asn_DEF_ResetRequestIEs_tags_153, + sizeof(asn_DEF_ResetRequestIEs_tags_153) + /sizeof(asn_DEF_ResetRequestIEs_tags_153[0]), /* 1 */ + asn_DEF_ResetRequestIEs_tags_153, /* Same as above */ + sizeof(asn_DEF_ResetRequestIEs_tags_153) + /sizeof(asn_DEF_ResetRequestIEs_tags_153[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_ResetRequestIEs_125, + asn_MBR_ResetRequestIEs_153, 3, /* Elements count */ - &asn_SPC_ResetRequestIEs_specs_125 /* Additional specs */ + &asn_SPC_ResetRequestIEs_specs_153 /* Additional specs */ }; -static asn_TYPE_member_t asn_MBR_value_132[] = { +static asn_TYPE_member_t asn_MBR_value_160[] = { + { ATF_NOFLAGS, 0, offsetof(struct ResetResponseIEs__value, choice.TransactionID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_TransactionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "TransactionID" + }, { ATF_NOFLAGS, 0, offsetof(struct ResetResponseIEs__value, choice.CriticalityDiagnostics), (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -9494,21 +11570,22 @@ static asn_TYPE_member_t asn_MBR_value_132[] = { "CriticalityDiagnostics" }, }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_132[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* CriticalityDiagnostics */ +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_160[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* TransactionID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 0 } /* CriticalityDiagnostics */ }; -static asn_CHOICE_specifics_t asn_SPC_value_specs_132 = { +static asn_CHOICE_specifics_t asn_SPC_value_specs_160 = { sizeof(struct ResetResponseIEs__value), offsetof(struct ResetResponseIEs__value, _asn_ctx), offsetof(struct ResetResponseIEs__value, present), sizeof(((struct ResetResponseIEs__value *)0)->present), - asn_MAP_value_tag2el_132, - 1, /* Count of tags in the map */ + asn_MAP_value_tag2el_160, + 2, /* Count of tags in the map */ 0, 0, -1 /* Extensions start */ }; static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_132 = { +asn_TYPE_descriptor_t asn_DEF_value_160 = { "value", "value", &asn_OP_OPEN_TYPE, @@ -9517,52 +11594,53 @@ asn_TYPE_descriptor_t asn_DEF_value_132 = { 0, /* No tags (pointer) */ 0, /* No tags (count) */ { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_132, - 1, /* Elements count */ - &asn_SPC_value_specs_132 /* Additional specs */ + asn_MBR_value_160, + 2, /* Elements count */ + &asn_SPC_value_specs_160 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_ResetResponseIEs_129[] = { +asn_TYPE_member_t asn_MBR_ResetResponseIEs_157[] = { { ATF_NOFLAGS, 0, offsetof(struct ResetResponseIEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_ProtocolIE_ID, 0, - { 0, &asn_PER_memb_id_constr_130, memb_id_constraint_129 }, + { 0, &asn_PER_memb_id_constr_158, memb_id_constraint_157 }, 0, 0, /* No default value */ "id" }, { ATF_NOFLAGS, 0, offsetof(struct ResetResponseIEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_Criticality, select_ResetResponseIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_131, memb_criticality_constraint_129 }, + { 0, &asn_PER_memb_criticality_constr_159, memb_criticality_constraint_157 }, 0, 0, /* No default value */ "criticality" }, { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ResetResponseIEs, value), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_value_132, + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_160, select_ResetResponseIEs_value_type, - { 0, &asn_PER_memb_value_constr_132, memb_value_constraint_129 }, + { 0, &asn_PER_memb_value_constr_160, memb_value_constraint_157 }, 0, 0, /* No default value */ "value" }, }; -static const ber_tlv_tag_t asn_DEF_ResetResponseIEs_tags_129[] = { +static const ber_tlv_tag_t asn_DEF_ResetResponseIEs_tags_157[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -static const asn_TYPE_tag2member_t asn_MAP_ResetResponseIEs_tag2el_129[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +static const asn_TYPE_tag2member_t asn_MAP_ResetResponseIEs_tag2el_157[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ }; -asn_SEQUENCE_specifics_t asn_SPC_ResetResponseIEs_specs_129 = { +asn_SEQUENCE_specifics_t asn_SPC_ResetResponseIEs_specs_157 = { sizeof(struct ResetResponseIEs), offsetof(struct ResetResponseIEs, _asn_ctx), - asn_MAP_ResetResponseIEs_tag2el_129, - 2, /* Count of tags in the map */ + asn_MAP_ResetResponseIEs_tag2el_157, + 3, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; @@ -9570,19 +11648,28 @@ asn_TYPE_descriptor_t asn_DEF_ResetResponseIEs = { "ResetResponseIEs", "ResetResponseIEs", &asn_OP_SEQUENCE, - asn_DEF_ResetResponseIEs_tags_129, - sizeof(asn_DEF_ResetResponseIEs_tags_129) - /sizeof(asn_DEF_ResetResponseIEs_tags_129[0]), /* 1 */ - asn_DEF_ResetResponseIEs_tags_129, /* Same as above */ - sizeof(asn_DEF_ResetResponseIEs_tags_129) - /sizeof(asn_DEF_ResetResponseIEs_tags_129[0]), /* 1 */ + asn_DEF_ResetResponseIEs_tags_157, + sizeof(asn_DEF_ResetResponseIEs_tags_157) + /sizeof(asn_DEF_ResetResponseIEs_tags_157[0]), /* 1 */ + asn_DEF_ResetResponseIEs_tags_157, /* Same as above */ + sizeof(asn_DEF_ResetResponseIEs_tags_157) + /sizeof(asn_DEF_ResetResponseIEs_tags_157[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_ResetResponseIEs_129, + asn_MBR_ResetResponseIEs_157, 3, /* Elements count */ - &asn_SPC_ResetResponseIEs_specs_129 /* Additional specs */ + &asn_SPC_ResetResponseIEs_specs_157 /* Additional specs */ }; -static asn_TYPE_member_t asn_MBR_value_136[] = { +static asn_TYPE_member_t asn_MBR_value_164[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdate_IEs__value, choice.TransactionID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_TransactionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "TransactionID" + }, { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdate_IEs__value, choice.RANfunctions_List), (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -9602,22 +11689,23 @@ static asn_TYPE_member_t asn_MBR_value_136[] = { "RANfunctionsID-List" }, }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_136[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 1 }, /* RANfunctions-List */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 0 } /* RANfunctionsID-List */ +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_164[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* TransactionID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 1 }, /* RANfunctions-List */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -1, 0 } /* RANfunctionsID-List */ }; -static asn_CHOICE_specifics_t asn_SPC_value_specs_136 = { +static asn_CHOICE_specifics_t asn_SPC_value_specs_164 = { sizeof(struct RICserviceUpdate_IEs__value), offsetof(struct RICserviceUpdate_IEs__value, _asn_ctx), offsetof(struct RICserviceUpdate_IEs__value, present), sizeof(((struct RICserviceUpdate_IEs__value *)0)->present), - asn_MAP_value_tag2el_136, - 2, /* Count of tags in the map */ + asn_MAP_value_tag2el_164, + 3, /* Count of tags in the map */ 0, 0, -1 /* Extensions start */ }; static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_136 = { +asn_TYPE_descriptor_t asn_DEF_value_164 = { "value", "value", &asn_OP_OPEN_TYPE, @@ -9626,52 +11714,53 @@ asn_TYPE_descriptor_t asn_DEF_value_136 = { 0, /* No tags (pointer) */ 0, /* No tags (count) */ { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_136, - 2, /* Elements count */ - &asn_SPC_value_specs_136 /* Additional specs */ + asn_MBR_value_164, + 3, /* Elements count */ + &asn_SPC_value_specs_164 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_RICserviceUpdate_IEs_133[] = { +asn_TYPE_member_t asn_MBR_RICserviceUpdate_IEs_161[] = { { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdate_IEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_ProtocolIE_ID, 0, - { 0, &asn_PER_memb_id_constr_134, memb_id_constraint_133 }, + { 0, &asn_PER_memb_id_constr_162, memb_id_constraint_161 }, 0, 0, /* No default value */ "id" }, { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdate_IEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_Criticality, select_RICserviceUpdate_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_135, memb_criticality_constraint_133 }, + { 0, &asn_PER_memb_criticality_constr_163, memb_criticality_constraint_161 }, 0, 0, /* No default value */ "criticality" }, { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdate_IEs, value), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_value_136, + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_164, select_RICserviceUpdate_IEs_value_type, - { 0, &asn_PER_memb_value_constr_136, memb_value_constraint_133 }, + { 0, &asn_PER_memb_value_constr_164, memb_value_constraint_161 }, 0, 0, /* No default value */ "value" }, }; -static const ber_tlv_tag_t asn_DEF_RICserviceUpdate_IEs_tags_133[] = { +static const ber_tlv_tag_t asn_DEF_RICserviceUpdate_IEs_tags_161[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -static const asn_TYPE_tag2member_t asn_MAP_RICserviceUpdate_IEs_tag2el_133[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +static const asn_TYPE_tag2member_t asn_MAP_RICserviceUpdate_IEs_tag2el_161[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ }; -asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdate_IEs_specs_133 = { +asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdate_IEs_specs_161 = { sizeof(struct RICserviceUpdate_IEs), offsetof(struct RICserviceUpdate_IEs, _asn_ctx), - asn_MAP_RICserviceUpdate_IEs_tag2el_133, - 2, /* Count of tags in the map */ + asn_MAP_RICserviceUpdate_IEs_tag2el_161, + 3, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; @@ -9679,19 +11768,28 @@ asn_TYPE_descriptor_t asn_DEF_RICserviceUpdate_IEs = { "RICserviceUpdate-IEs", "RICserviceUpdate-IEs", &asn_OP_SEQUENCE, - asn_DEF_RICserviceUpdate_IEs_tags_133, - sizeof(asn_DEF_RICserviceUpdate_IEs_tags_133) - /sizeof(asn_DEF_RICserviceUpdate_IEs_tags_133[0]), /* 1 */ - asn_DEF_RICserviceUpdate_IEs_tags_133, /* Same as above */ - sizeof(asn_DEF_RICserviceUpdate_IEs_tags_133) - /sizeof(asn_DEF_RICserviceUpdate_IEs_tags_133[0]), /* 1 */ + asn_DEF_RICserviceUpdate_IEs_tags_161, + sizeof(asn_DEF_RICserviceUpdate_IEs_tags_161) + /sizeof(asn_DEF_RICserviceUpdate_IEs_tags_161[0]), /* 1 */ + asn_DEF_RICserviceUpdate_IEs_tags_161, /* Same as above */ + sizeof(asn_DEF_RICserviceUpdate_IEs_tags_161) + /sizeof(asn_DEF_RICserviceUpdate_IEs_tags_161[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICserviceUpdate_IEs_133, + asn_MBR_RICserviceUpdate_IEs_161, 3, /* Elements count */ - &asn_SPC_RICserviceUpdate_IEs_specs_133 /* Additional specs */ + &asn_SPC_RICserviceUpdate_IEs_specs_161 /* Additional specs */ }; -static asn_TYPE_member_t asn_MBR_value_140[] = { +static asn_TYPE_member_t asn_MBR_value_168[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateAcknowledge_IEs__value, choice.TransactionID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_TransactionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "TransactionID" + }, { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateAcknowledge_IEs__value, choice.RANfunctionsID_List), (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -9711,22 +11809,23 @@ static asn_TYPE_member_t asn_MBR_value_140[] = { "RANfunctionsIDcause-List" }, }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_140[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 1 }, /* RANfunctionsID-List */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 0 } /* RANfunctionsIDcause-List */ +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_168[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* TransactionID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 1 }, /* RANfunctionsID-List */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -1, 0 } /* RANfunctionsIDcause-List */ }; -static asn_CHOICE_specifics_t asn_SPC_value_specs_140 = { +static asn_CHOICE_specifics_t asn_SPC_value_specs_168 = { sizeof(struct RICserviceUpdateAcknowledge_IEs__value), offsetof(struct RICserviceUpdateAcknowledge_IEs__value, _asn_ctx), offsetof(struct RICserviceUpdateAcknowledge_IEs__value, present), sizeof(((struct RICserviceUpdateAcknowledge_IEs__value *)0)->present), - asn_MAP_value_tag2el_140, - 2, /* Count of tags in the map */ + asn_MAP_value_tag2el_168, + 3, /* Count of tags in the map */ 0, 0, -1 /* Extensions start */ }; static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_140 = { +asn_TYPE_descriptor_t asn_DEF_value_168 = { "value", "value", &asn_OP_OPEN_TYPE, @@ -9735,52 +11834,53 @@ asn_TYPE_descriptor_t asn_DEF_value_140 = { 0, /* No tags (pointer) */ 0, /* No tags (count) */ { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_140, - 2, /* Elements count */ - &asn_SPC_value_specs_140 /* Additional specs */ + asn_MBR_value_168, + 3, /* Elements count */ + &asn_SPC_value_specs_168 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_RICserviceUpdateAcknowledge_IEs_137[] = { +asn_TYPE_member_t asn_MBR_RICserviceUpdateAcknowledge_IEs_165[] = { { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateAcknowledge_IEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_ProtocolIE_ID, 0, - { 0, &asn_PER_memb_id_constr_138, memb_id_constraint_137 }, + { 0, &asn_PER_memb_id_constr_166, memb_id_constraint_165 }, 0, 0, /* No default value */ "id" }, { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateAcknowledge_IEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_Criticality, select_RICserviceUpdateAcknowledge_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_139, memb_criticality_constraint_137 }, + { 0, &asn_PER_memb_criticality_constr_167, memb_criticality_constraint_165 }, 0, 0, /* No default value */ "criticality" }, { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateAcknowledge_IEs, value), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_value_140, + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_168, select_RICserviceUpdateAcknowledge_IEs_value_type, - { 0, &asn_PER_memb_value_constr_140, memb_value_constraint_137 }, + { 0, &asn_PER_memb_value_constr_168, memb_value_constraint_165 }, 0, 0, /* No default value */ "value" }, }; -static const ber_tlv_tag_t asn_DEF_RICserviceUpdateAcknowledge_IEs_tags_137[] = { +static const ber_tlv_tag_t asn_DEF_RICserviceUpdateAcknowledge_IEs_tags_165[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -static const asn_TYPE_tag2member_t asn_MAP_RICserviceUpdateAcknowledge_IEs_tag2el_137[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +static const asn_TYPE_tag2member_t asn_MAP_RICserviceUpdateAcknowledge_IEs_tag2el_165[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ }; -asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdateAcknowledge_IEs_specs_137 = { +asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdateAcknowledge_IEs_specs_165 = { sizeof(struct RICserviceUpdateAcknowledge_IEs), offsetof(struct RICserviceUpdateAcknowledge_IEs, _asn_ctx), - asn_MAP_RICserviceUpdateAcknowledge_IEs_tag2el_137, - 2, /* Count of tags in the map */ + asn_MAP_RICserviceUpdateAcknowledge_IEs_tag2el_165, + 3, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; @@ -9788,27 +11888,36 @@ asn_TYPE_descriptor_t asn_DEF_RICserviceUpdateAcknowledge_IEs = { "RICserviceUpdateAcknowledge-IEs", "RICserviceUpdateAcknowledge-IEs", &asn_OP_SEQUENCE, - asn_DEF_RICserviceUpdateAcknowledge_IEs_tags_137, - sizeof(asn_DEF_RICserviceUpdateAcknowledge_IEs_tags_137) - /sizeof(asn_DEF_RICserviceUpdateAcknowledge_IEs_tags_137[0]), /* 1 */ - asn_DEF_RICserviceUpdateAcknowledge_IEs_tags_137, /* Same as above */ - sizeof(asn_DEF_RICserviceUpdateAcknowledge_IEs_tags_137) - /sizeof(asn_DEF_RICserviceUpdateAcknowledge_IEs_tags_137[0]), /* 1 */ + asn_DEF_RICserviceUpdateAcknowledge_IEs_tags_165, + sizeof(asn_DEF_RICserviceUpdateAcknowledge_IEs_tags_165) + /sizeof(asn_DEF_RICserviceUpdateAcknowledge_IEs_tags_165[0]), /* 1 */ + asn_DEF_RICserviceUpdateAcknowledge_IEs_tags_165, /* Same as above */ + sizeof(asn_DEF_RICserviceUpdateAcknowledge_IEs_tags_165) + /sizeof(asn_DEF_RICserviceUpdateAcknowledge_IEs_tags_165[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICserviceUpdateAcknowledge_IEs_137, + asn_MBR_RICserviceUpdateAcknowledge_IEs_165, 3, /* Elements count */ - &asn_SPC_RICserviceUpdateAcknowledge_IEs_specs_137 /* Additional specs */ + &asn_SPC_RICserviceUpdateAcknowledge_IEs_specs_165 /* Additional specs */ }; -static asn_TYPE_member_t asn_MBR_value_144[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateFailure_IEs__value, choice.RANfunctionsIDcause_List), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), +static asn_TYPE_member_t asn_MBR_value_172[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateFailure_IEs__value, choice.TransactionID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, - &asn_DEF_RANfunctionsIDcause_List, + &asn_DEF_TransactionID, 0, { 0, 0, 0 }, 0, 0, /* No default value */ - "RANfunctionsIDcause-List" + "TransactionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateFailure_IEs__value, choice.Cause), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_Cause, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "Cause" }, { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateFailure_IEs__value, choice.TimeToWait), (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), @@ -9829,26 +11938,32 @@ static asn_TYPE_member_t asn_MBR_value_144[] = { "CriticalityDiagnostics" }, }; -static const unsigned asn_MAP_value_to_canonical_144[] = { 1, 0, 2 }; -static const unsigned asn_MAP_value_from_canonical_144[] = { 1, 0, 2 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_144[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 }, /* TimeToWait */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 1 }, /* RANfunctionsIDcause-List */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -1, 0 } /* CriticalityDiagnostics */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_144 = { +static const unsigned asn_MAP_value_to_canonical_172[] = { 0, 2, 3, 1 }; +static const unsigned asn_MAP_value_from_canonical_172[] = { 0, 3, 1, 2 }; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_172[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* TransactionID */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 2, 0, 0 }, /* TimeToWait */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, 0, 0 }, /* CriticalityDiagnostics */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 1, 0, 0 }, /* ricRequest */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ricService */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 1, 0, 0 }, /* e2Node */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 1, 0, 0 }, /* transport */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 1, 0, 0 }, /* protocol */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 1, 0, 0 } /* misc */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_172 = { sizeof(struct RICserviceUpdateFailure_IEs__value), offsetof(struct RICserviceUpdateFailure_IEs__value, _asn_ctx), offsetof(struct RICserviceUpdateFailure_IEs__value, present), sizeof(((struct RICserviceUpdateFailure_IEs__value *)0)->present), - asn_MAP_value_tag2el_144, - 3, /* Count of tags in the map */ - asn_MAP_value_to_canonical_144, - asn_MAP_value_from_canonical_144, + asn_MAP_value_tag2el_172, + 9, /* Count of tags in the map */ + asn_MAP_value_to_canonical_172, + asn_MAP_value_from_canonical_172, -1 /* Extensions start */ }; static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_144 = { +asn_TYPE_descriptor_t asn_DEF_value_172 = { "value", "value", &asn_OP_OPEN_TYPE, @@ -9857,52 +11972,53 @@ asn_TYPE_descriptor_t asn_DEF_value_144 = { 0, /* No tags (pointer) */ 0, /* No tags (count) */ { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_144, - 3, /* Elements count */ - &asn_SPC_value_specs_144 /* Additional specs */ + asn_MBR_value_172, + 4, /* Elements count */ + &asn_SPC_value_specs_172 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_RICserviceUpdateFailure_IEs_141[] = { +asn_TYPE_member_t asn_MBR_RICserviceUpdateFailure_IEs_169[] = { { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateFailure_IEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_ProtocolIE_ID, 0, - { 0, &asn_PER_memb_id_constr_142, memb_id_constraint_141 }, + { 0, &asn_PER_memb_id_constr_170, memb_id_constraint_169 }, 0, 0, /* No default value */ "id" }, { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateFailure_IEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_Criticality, select_RICserviceUpdateFailure_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_143, memb_criticality_constraint_141 }, + { 0, &asn_PER_memb_criticality_constr_171, memb_criticality_constraint_169 }, 0, 0, /* No default value */ "criticality" }, { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateFailure_IEs, value), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_value_144, + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_172, select_RICserviceUpdateFailure_IEs_value_type, - { 0, &asn_PER_memb_value_constr_144, memb_value_constraint_141 }, + { 0, &asn_PER_memb_value_constr_172, memb_value_constraint_169 }, 0, 0, /* No default value */ "value" }, }; -static const ber_tlv_tag_t asn_DEF_RICserviceUpdateFailure_IEs_tags_141[] = { +static const ber_tlv_tag_t asn_DEF_RICserviceUpdateFailure_IEs_tags_169[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -static const asn_TYPE_tag2member_t asn_MAP_RICserviceUpdateFailure_IEs_tag2el_141[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +static const asn_TYPE_tag2member_t asn_MAP_RICserviceUpdateFailure_IEs_tag2el_169[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ }; -asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdateFailure_IEs_specs_141 = { +asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdateFailure_IEs_specs_169 = { sizeof(struct RICserviceUpdateFailure_IEs), offsetof(struct RICserviceUpdateFailure_IEs, _asn_ctx), - asn_MAP_RICserviceUpdateFailure_IEs_tag2el_141, - 2, /* Count of tags in the map */ + asn_MAP_RICserviceUpdateFailure_IEs_tag2el_169, + 3, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; @@ -9910,19 +12026,28 @@ asn_TYPE_descriptor_t asn_DEF_RICserviceUpdateFailure_IEs = { "RICserviceUpdateFailure-IEs", "RICserviceUpdateFailure-IEs", &asn_OP_SEQUENCE, - asn_DEF_RICserviceUpdateFailure_IEs_tags_141, - sizeof(asn_DEF_RICserviceUpdateFailure_IEs_tags_141) - /sizeof(asn_DEF_RICserviceUpdateFailure_IEs_tags_141[0]), /* 1 */ - asn_DEF_RICserviceUpdateFailure_IEs_tags_141, /* Same as above */ - sizeof(asn_DEF_RICserviceUpdateFailure_IEs_tags_141) - /sizeof(asn_DEF_RICserviceUpdateFailure_IEs_tags_141[0]), /* 1 */ + asn_DEF_RICserviceUpdateFailure_IEs_tags_169, + sizeof(asn_DEF_RICserviceUpdateFailure_IEs_tags_169) + /sizeof(asn_DEF_RICserviceUpdateFailure_IEs_tags_169[0]), /* 1 */ + asn_DEF_RICserviceUpdateFailure_IEs_tags_169, /* Same as above */ + sizeof(asn_DEF_RICserviceUpdateFailure_IEs_tags_169) + /sizeof(asn_DEF_RICserviceUpdateFailure_IEs_tags_169[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICserviceUpdateFailure_IEs_141, + asn_MBR_RICserviceUpdateFailure_IEs_169, 3, /* Elements count */ - &asn_SPC_RICserviceUpdateFailure_IEs_specs_141 /* Additional specs */ + &asn_SPC_RICserviceUpdateFailure_IEs_specs_169 /* Additional specs */ }; -static asn_TYPE_member_t asn_MBR_value_148[] = { +static asn_TYPE_member_t asn_MBR_value_176[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICserviceQuery_IEs__value, choice.TransactionID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_TransactionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "TransactionID" + }, { ATF_NOFLAGS, 0, offsetof(struct RICserviceQuery_IEs__value, choice.RANfunctionsID_List), (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -9933,21 +12058,22 @@ static asn_TYPE_member_t asn_MBR_value_148[] = { "RANfunctionsID-List" }, }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_148[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RANfunctionsID-List */ +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_176[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* TransactionID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 0 } /* RANfunctionsID-List */ }; -static asn_CHOICE_specifics_t asn_SPC_value_specs_148 = { +static asn_CHOICE_specifics_t asn_SPC_value_specs_176 = { sizeof(struct RICserviceQuery_IEs__value), offsetof(struct RICserviceQuery_IEs__value, _asn_ctx), offsetof(struct RICserviceQuery_IEs__value, present), sizeof(((struct RICserviceQuery_IEs__value *)0)->present), - asn_MAP_value_tag2el_148, - 1, /* Count of tags in the map */ + asn_MAP_value_tag2el_176, + 2, /* Count of tags in the map */ 0, 0, -1 /* Extensions start */ }; static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_148 = { +asn_TYPE_descriptor_t asn_DEF_value_176 = { "value", "value", &asn_OP_OPEN_TYPE, @@ -9956,52 +12082,53 @@ asn_TYPE_descriptor_t asn_DEF_value_148 = { 0, /* No tags (pointer) */ 0, /* No tags (count) */ { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_148, - 1, /* Elements count */ - &asn_SPC_value_specs_148 /* Additional specs */ + asn_MBR_value_176, + 2, /* Elements count */ + &asn_SPC_value_specs_176 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_RICserviceQuery_IEs_145[] = { +asn_TYPE_member_t asn_MBR_RICserviceQuery_IEs_173[] = { { ATF_NOFLAGS, 0, offsetof(struct RICserviceQuery_IEs, id), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_ProtocolIE_ID, 0, - { 0, &asn_PER_memb_id_constr_146, memb_id_constraint_145 }, + { 0, &asn_PER_memb_id_constr_174, memb_id_constraint_173 }, 0, 0, /* No default value */ "id" }, { ATF_NOFLAGS, 0, offsetof(struct RICserviceQuery_IEs, criticality), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_Criticality, select_RICserviceQuery_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_147, memb_criticality_constraint_145 }, + { 0, &asn_PER_memb_criticality_constr_175, memb_criticality_constraint_173 }, 0, 0, /* No default value */ "criticality" }, { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICserviceQuery_IEs, value), - -1 /* Ambiguous tag (ANY?) */, - 0, - &asn_DEF_value_148, + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_176, select_RICserviceQuery_IEs_value_type, - { 0, &asn_PER_memb_value_constr_148, memb_value_constraint_145 }, + { 0, &asn_PER_memb_value_constr_176, memb_value_constraint_173 }, 0, 0, /* No default value */ "value" }, }; -static const ber_tlv_tag_t asn_DEF_RICserviceQuery_IEs_tags_145[] = { +static const ber_tlv_tag_t asn_DEF_RICserviceQuery_IEs_tags_173[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -static const asn_TYPE_tag2member_t asn_MAP_RICserviceQuery_IEs_tag2el_145[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +static const asn_TYPE_tag2member_t asn_MAP_RICserviceQuery_IEs_tag2el_173[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ }; -asn_SEQUENCE_specifics_t asn_SPC_RICserviceQuery_IEs_specs_145 = { +asn_SEQUENCE_specifics_t asn_SPC_RICserviceQuery_IEs_specs_173 = { sizeof(struct RICserviceQuery_IEs), offsetof(struct RICserviceQuery_IEs, _asn_ctx), - asn_MAP_RICserviceQuery_IEs_tag2el_145, - 2, /* Count of tags in the map */ + asn_MAP_RICserviceQuery_IEs_tag2el_173, + 3, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; @@ -10009,15 +12136,15 @@ asn_TYPE_descriptor_t asn_DEF_RICserviceQuery_IEs = { "RICserviceQuery-IEs", "RICserviceQuery-IEs", &asn_OP_SEQUENCE, - asn_DEF_RICserviceQuery_IEs_tags_145, - sizeof(asn_DEF_RICserviceQuery_IEs_tags_145) - /sizeof(asn_DEF_RICserviceQuery_IEs_tags_145[0]), /* 1 */ - asn_DEF_RICserviceQuery_IEs_tags_145, /* Same as above */ - sizeof(asn_DEF_RICserviceQuery_IEs_tags_145) - /sizeof(asn_DEF_RICserviceQuery_IEs_tags_145[0]), /* 1 */ + asn_DEF_RICserviceQuery_IEs_tags_173, + sizeof(asn_DEF_RICserviceQuery_IEs_tags_173) + /sizeof(asn_DEF_RICserviceQuery_IEs_tags_173[0]), /* 1 */ + asn_DEF_RICserviceQuery_IEs_tags_173, /* Same as above */ + sizeof(asn_DEF_RICserviceQuery_IEs_tags_173) + /sizeof(asn_DEF_RICserviceQuery_IEs_tags_173[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICserviceQuery_IEs_145, + asn_MBR_RICserviceQuery_IEs_173, 3, /* Elements count */ - &asn_SPC_RICserviceQuery_IEs_specs_145 /* Additional specs */ + &asn_SPC_RICserviceQuery_IEs_specs_173 /* Additional specs */ }; diff --git a/e2sim/src/ASN1c/ProtocolIE-Field.h b/e2sim/src/ASN1c/ProtocolIE-Field.h index bf80722..1efc9c1 100644 --- a/e2sim/src/ASN1c/ProtocolIE-Field.h +++ b/e2sim/src/ASN1c/ProtocolIE-Field.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-Containers" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #ifndef _ProtocolIE_Field_H_ @@ -23,11 +23,17 @@ #include "constr_SEQUENCE.h" #include "RICaction-Admitted-Item.h" #include "RICaction-NotAdmitted-Item.h" +#include "RICsubscription-withCause-Item.h" #include "E2connectionUpdate-Item.h" #include "E2connectionUpdateRemove-Item.h" #include "E2connectionSetupFailed-Item.h" +#include "E2nodeComponentConfigAddition-Item.h" #include "E2nodeComponentConfigUpdate-Item.h" +#include "E2nodeComponentConfigRemoval-Item.h" +#include "E2nodeTNLassociationRemoval-Item.h" +#include "E2nodeComponentConfigAdditionAck-Item.h" #include "E2nodeComponentConfigUpdateAck-Item.h" +#include "E2nodeComponentConfigRemovalAck-Item.h" #include "RANfunction-Item.h" #include "RANfunctionID-Item.h" #include "RANfunctionIDcause-Item.h" @@ -36,8 +42,9 @@ #include "RICsubscriptionDetails.h" #include "RICaction-Admitted-List.h" #include "RICaction-NotAdmitted-List.h" -#include "CriticalityDiagnostics.h" #include "Cause.h" +#include "CriticalityDiagnostics.h" +#include "RICsubscription-List-withCause.h" #include "RICactionID.h" #include "RICindicationSN.h" #include "RICindicationType.h" @@ -47,20 +54,25 @@ #include "RICcontrolHeader.h" #include "RICcontrolMessage.h" #include "RICcontrolAckRequest.h" -#include "RICcontrolStatus.h" #include "RICcontrolOutcome.h" +#include "TransactionID.h" #include "GlobalE2node-ID.h" #include "RANfunctions-List.h" -#include "E2nodeComponentConfigUpdate-List.h" +#include "E2nodeComponentConfigAddition-List.h" #include "GlobalRIC-ID.h" #include "RANfunctionsID-List.h" #include "RANfunctionsIDcause-List.h" -#include "E2nodeComponentConfigUpdateAck-List.h" +#include "E2nodeComponentConfigAdditionAck-List.h" #include "TimeToWait.h" #include "TNLinformation.h" #include "E2connectionUpdate-List.h" #include "E2connectionUpdateRemove-List.h" #include "E2connectionSetupFailed-List.h" +#include "E2nodeComponentConfigUpdate-List.h" +#include "E2nodeComponentConfigRemoval-List.h" +#include "E2nodeTNLassociationRemoval-List.h" +#include "E2nodeComponentConfigUpdateAck-List.h" +#include "E2nodeComponentConfigRemovalAck-List.h" #ifdef __cplusplus extern "C" { @@ -79,6 +91,10 @@ typedef enum RICaction_NotAdmitted_ItemIEs__value_PR { RICaction_NotAdmitted_ItemIEs__value_PR_NOTHING, /* No components present */ RICaction_NotAdmitted_ItemIEs__value_PR_RICaction_NotAdmitted_Item } RICaction_NotAdmitted_ItemIEs__value_PR; +typedef enum RICsubscription_withCause_ItemIEs__value_PR { + RICsubscription_withCause_ItemIEs__value_PR_NOTHING, /* No components present */ + RICsubscription_withCause_ItemIEs__value_PR_RICsubscription_withCause_Item +} RICsubscription_withCause_ItemIEs__value_PR; typedef enum E2connectionUpdate_ItemIEs__value_PR { E2connectionUpdate_ItemIEs__value_PR_NOTHING, /* No components present */ E2connectionUpdate_ItemIEs__value_PR_E2connectionUpdate_Item @@ -91,14 +107,34 @@ typedef enum E2connectionSetupFailed_ItemIEs__value_PR { E2connectionSetupFailed_ItemIEs__value_PR_NOTHING, /* No components present */ E2connectionSetupFailed_ItemIEs__value_PR_E2connectionSetupFailed_Item } E2connectionSetupFailed_ItemIEs__value_PR; +typedef enum E2nodeComponentConfigAddition_ItemIEs__value_PR { + E2nodeComponentConfigAddition_ItemIEs__value_PR_NOTHING, /* No components present */ + E2nodeComponentConfigAddition_ItemIEs__value_PR_E2nodeComponentConfigAddition_Item +} E2nodeComponentConfigAddition_ItemIEs__value_PR; typedef enum E2nodeComponentConfigUpdate_ItemIEs__value_PR { E2nodeComponentConfigUpdate_ItemIEs__value_PR_NOTHING, /* No components present */ E2nodeComponentConfigUpdate_ItemIEs__value_PR_E2nodeComponentConfigUpdate_Item } E2nodeComponentConfigUpdate_ItemIEs__value_PR; +typedef enum E2nodeComponentConfigRemoval_ItemIEs__value_PR { + E2nodeComponentConfigRemoval_ItemIEs__value_PR_NOTHING, /* No components present */ + E2nodeComponentConfigRemoval_ItemIEs__value_PR_E2nodeComponentConfigRemoval_Item +} E2nodeComponentConfigRemoval_ItemIEs__value_PR; +typedef enum E2nodeTNLassociationRemoval_ItemIEs__value_PR { + E2nodeTNLassociationRemoval_ItemIEs__value_PR_NOTHING, /* No components present */ + E2nodeTNLassociationRemoval_ItemIEs__value_PR_E2nodeTNLassociationRemoval_Item +} E2nodeTNLassociationRemoval_ItemIEs__value_PR; +typedef enum E2nodeComponentConfigAdditionAck_ItemIEs__value_PR { + E2nodeComponentConfigAdditionAck_ItemIEs__value_PR_NOTHING, /* No components present */ + E2nodeComponentConfigAdditionAck_ItemIEs__value_PR_E2nodeComponentConfigAdditionAck_Item +} E2nodeComponentConfigAdditionAck_ItemIEs__value_PR; typedef enum E2nodeComponentConfigUpdateAck_ItemIEs__value_PR { E2nodeComponentConfigUpdateAck_ItemIEs__value_PR_NOTHING, /* No components present */ E2nodeComponentConfigUpdateAck_ItemIEs__value_PR_E2nodeComponentConfigUpdateAck_Item } E2nodeComponentConfigUpdateAck_ItemIEs__value_PR; +typedef enum E2nodeComponentConfigRemovalAck_ItemIEs__value_PR { + E2nodeComponentConfigRemovalAck_ItemIEs__value_PR_NOTHING, /* No components present */ + E2nodeComponentConfigRemovalAck_ItemIEs__value_PR_E2nodeComponentConfigRemovalAck_Item +} E2nodeComponentConfigRemovalAck_ItemIEs__value_PR; typedef enum RANfunction_ItemIEs__value_PR { RANfunction_ItemIEs__value_PR_NOTHING, /* No components present */ RANfunction_ItemIEs__value_PR_RANfunction_Item @@ -128,7 +164,7 @@ typedef enum RICsubscriptionFailure_IEs__value_PR { RICsubscriptionFailure_IEs__value_PR_NOTHING, /* No components present */ RICsubscriptionFailure_IEs__value_PR_RICrequestID, RICsubscriptionFailure_IEs__value_PR_RANfunctionID, - RICsubscriptionFailure_IEs__value_PR_RICaction_NotAdmitted_List, + RICsubscriptionFailure_IEs__value_PR_Cause, RICsubscriptionFailure_IEs__value_PR_CriticalityDiagnostics } RICsubscriptionFailure_IEs__value_PR; typedef enum RICsubscriptionDeleteRequest_IEs__value_PR { @@ -148,6 +184,10 @@ typedef enum RICsubscriptionDeleteFailure_IEs__value_PR { RICsubscriptionDeleteFailure_IEs__value_PR_Cause, RICsubscriptionDeleteFailure_IEs__value_PR_CriticalityDiagnostics } RICsubscriptionDeleteFailure_IEs__value_PR; +typedef enum RICsubscriptionDeleteRequired_IEs__value_PR { + RICsubscriptionDeleteRequired_IEs__value_PR_NOTHING, /* No components present */ + RICsubscriptionDeleteRequired_IEs__value_PR_RICsubscription_List_withCause +} RICsubscriptionDeleteRequired_IEs__value_PR; typedef enum RICindication_IEs__value_PR { RICindication_IEs__value_PR_NOTHING, /* No components present */ RICindication_IEs__value_PR_RICrequestID, @@ -173,7 +213,6 @@ typedef enum RICcontrolAcknowledge_IEs__value_PR { RICcontrolAcknowledge_IEs__value_PR_RICrequestID, RICcontrolAcknowledge_IEs__value_PR_RANfunctionID, RICcontrolAcknowledge_IEs__value_PR_RICcallProcessID, - RICcontrolAcknowledge_IEs__value_PR_RICcontrolStatus, RICcontrolAcknowledge_IEs__value_PR_RICcontrolOutcome } RICcontrolAcknowledge_IEs__value_PR; typedef enum RICcontrolFailure_IEs__value_PR { @@ -186,6 +225,7 @@ typedef enum RICcontrolFailure_IEs__value_PR { } RICcontrolFailure_IEs__value_PR; typedef enum ErrorIndication_IEs__value_PR { ErrorIndication_IEs__value_PR_NOTHING, /* No components present */ + ErrorIndication_IEs__value_PR_TransactionID, ErrorIndication_IEs__value_PR_RICrequestID, ErrorIndication_IEs__value_PR_RANfunctionID, ErrorIndication_IEs__value_PR_Cause, @@ -193,19 +233,22 @@ typedef enum ErrorIndication_IEs__value_PR { } ErrorIndication_IEs__value_PR; typedef enum E2setupRequestIEs__value_PR { E2setupRequestIEs__value_PR_NOTHING, /* No components present */ + E2setupRequestIEs__value_PR_TransactionID, E2setupRequestIEs__value_PR_GlobalE2node_ID, E2setupRequestIEs__value_PR_RANfunctions_List, - E2setupRequestIEs__value_PR_E2nodeComponentConfigUpdate_List + E2setupRequestIEs__value_PR_E2nodeComponentConfigAddition_List } E2setupRequestIEs__value_PR; typedef enum E2setupResponseIEs__value_PR { E2setupResponseIEs__value_PR_NOTHING, /* No components present */ + E2setupResponseIEs__value_PR_TransactionID, E2setupResponseIEs__value_PR_GlobalRIC_ID, E2setupResponseIEs__value_PR_RANfunctionsID_List, E2setupResponseIEs__value_PR_RANfunctionsIDcause_List, - E2setupResponseIEs__value_PR_E2nodeComponentConfigUpdateAck_List + E2setupResponseIEs__value_PR_E2nodeComponentConfigAdditionAck_List } E2setupResponseIEs__value_PR; typedef enum E2setupFailureIEs__value_PR { E2setupFailureIEs__value_PR_NOTHING, /* No components present */ + E2setupFailureIEs__value_PR_TransactionID, E2setupFailureIEs__value_PR_Cause, E2setupFailureIEs__value_PR_TimeToWait, E2setupFailureIEs__value_PR_CriticalityDiagnostics, @@ -213,60 +256,78 @@ typedef enum E2setupFailureIEs__value_PR { } E2setupFailureIEs__value_PR; typedef enum E2connectionUpdate_IEs__value_PR { E2connectionUpdate_IEs__value_PR_NOTHING, /* No components present */ + E2connectionUpdate_IEs__value_PR_TransactionID, E2connectionUpdate_IEs__value_PR_E2connectionUpdate_List, E2connectionUpdate_IEs__value_PR_E2connectionUpdateRemove_List } E2connectionUpdate_IEs__value_PR; typedef enum E2connectionUpdateAck_IEs__value_PR { E2connectionUpdateAck_IEs__value_PR_NOTHING, /* No components present */ + E2connectionUpdateAck_IEs__value_PR_TransactionID, E2connectionUpdateAck_IEs__value_PR_E2connectionUpdate_List, E2connectionUpdateAck_IEs__value_PR_E2connectionSetupFailed_List } E2connectionUpdateAck_IEs__value_PR; typedef enum E2connectionUpdateFailure_IEs__value_PR { E2connectionUpdateFailure_IEs__value_PR_NOTHING, /* No components present */ + E2connectionUpdateFailure_IEs__value_PR_TransactionID, E2connectionUpdateFailure_IEs__value_PR_Cause, E2connectionUpdateFailure_IEs__value_PR_TimeToWait, E2connectionUpdateFailure_IEs__value_PR_CriticalityDiagnostics } E2connectionUpdateFailure_IEs__value_PR; typedef enum E2nodeConfigurationUpdate_IEs__value_PR { E2nodeConfigurationUpdate_IEs__value_PR_NOTHING, /* No components present */ - E2nodeConfigurationUpdate_IEs__value_PR_E2nodeComponentConfigUpdate_List + E2nodeConfigurationUpdate_IEs__value_PR_TransactionID, + E2nodeConfigurationUpdate_IEs__value_PR_GlobalE2node_ID, + E2nodeConfigurationUpdate_IEs__value_PR_E2nodeComponentConfigAddition_List, + E2nodeConfigurationUpdate_IEs__value_PR_E2nodeComponentConfigUpdate_List, + E2nodeConfigurationUpdate_IEs__value_PR_E2nodeComponentConfigRemoval_List, + E2nodeConfigurationUpdate_IEs__value_PR_E2nodeTNLassociationRemoval_List } E2nodeConfigurationUpdate_IEs__value_PR; typedef enum E2nodeConfigurationUpdateAcknowledge_IEs__value_PR { E2nodeConfigurationUpdateAcknowledge_IEs__value_PR_NOTHING, /* No components present */ - E2nodeConfigurationUpdateAcknowledge_IEs__value_PR_E2nodeComponentConfigUpdateAck_List + E2nodeConfigurationUpdateAcknowledge_IEs__value_PR_TransactionID, + E2nodeConfigurationUpdateAcknowledge_IEs__value_PR_E2nodeComponentConfigAdditionAck_List, + E2nodeConfigurationUpdateAcknowledge_IEs__value_PR_E2nodeComponentConfigUpdateAck_List, + E2nodeConfigurationUpdateAcknowledge_IEs__value_PR_E2nodeComponentConfigRemovalAck_List } E2nodeConfigurationUpdateAcknowledge_IEs__value_PR; typedef enum E2nodeConfigurationUpdateFailure_IEs__value_PR { E2nodeConfigurationUpdateFailure_IEs__value_PR_NOTHING, /* No components present */ + E2nodeConfigurationUpdateFailure_IEs__value_PR_TransactionID, E2nodeConfigurationUpdateFailure_IEs__value_PR_Cause, E2nodeConfigurationUpdateFailure_IEs__value_PR_TimeToWait, E2nodeConfigurationUpdateFailure_IEs__value_PR_CriticalityDiagnostics } E2nodeConfigurationUpdateFailure_IEs__value_PR; typedef enum ResetRequestIEs__value_PR { ResetRequestIEs__value_PR_NOTHING, /* No components present */ + ResetRequestIEs__value_PR_TransactionID, ResetRequestIEs__value_PR_Cause } ResetRequestIEs__value_PR; typedef enum ResetResponseIEs__value_PR { ResetResponseIEs__value_PR_NOTHING, /* No components present */ + ResetResponseIEs__value_PR_TransactionID, ResetResponseIEs__value_PR_CriticalityDiagnostics } ResetResponseIEs__value_PR; typedef enum RICserviceUpdate_IEs__value_PR { RICserviceUpdate_IEs__value_PR_NOTHING, /* No components present */ + RICserviceUpdate_IEs__value_PR_TransactionID, RICserviceUpdate_IEs__value_PR_RANfunctions_List, RICserviceUpdate_IEs__value_PR_RANfunctionsID_List } RICserviceUpdate_IEs__value_PR; typedef enum RICserviceUpdateAcknowledge_IEs__value_PR { RICserviceUpdateAcknowledge_IEs__value_PR_NOTHING, /* No components present */ + RICserviceUpdateAcknowledge_IEs__value_PR_TransactionID, RICserviceUpdateAcknowledge_IEs__value_PR_RANfunctionsID_List, RICserviceUpdateAcknowledge_IEs__value_PR_RANfunctionsIDcause_List } RICserviceUpdateAcknowledge_IEs__value_PR; typedef enum RICserviceUpdateFailure_IEs__value_PR { RICserviceUpdateFailure_IEs__value_PR_NOTHING, /* No components present */ - RICserviceUpdateFailure_IEs__value_PR_RANfunctionsIDcause_List, + RICserviceUpdateFailure_IEs__value_PR_TransactionID, + RICserviceUpdateFailure_IEs__value_PR_Cause, RICserviceUpdateFailure_IEs__value_PR_TimeToWait, RICserviceUpdateFailure_IEs__value_PR_CriticalityDiagnostics } RICserviceUpdateFailure_IEs__value_PR; typedef enum RICserviceQuery_IEs__value_PR { RICserviceQuery_IEs__value_PR_NOTHING, /* No components present */ + RICserviceQuery_IEs__value_PR_TransactionID, RICserviceQuery_IEs__value_PR_RANfunctionsID_List } RICserviceQuery_IEs__value_PR; @@ -319,6 +380,22 @@ typedef struct RICaction_NotAdmitted_ItemIEs { /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; } RICaction_NotAdmitted_ItemIEs_t; +typedef struct RICsubscription_withCause_ItemIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct RICsubscription_withCause_ItemIEs__value { + RICsubscription_withCause_ItemIEs__value_PR present; + union RICsubscription_withCause_ItemIEs__value_u { + RICsubscription_withCause_Item_t RICsubscription_withCause_Item; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RICsubscription_withCause_ItemIEs_t; typedef struct E2connectionUpdate_ItemIEs { ProtocolIE_ID_t id; Criticality_t criticality; @@ -367,6 +444,22 @@ typedef struct E2connectionSetupFailed_ItemIEs { /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; } E2connectionSetupFailed_ItemIEs_t; +typedef struct E2nodeComponentConfigAddition_ItemIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct E2nodeComponentConfigAddition_ItemIEs__value { + E2nodeComponentConfigAddition_ItemIEs__value_PR present; + union E2nodeComponentConfigAddition_ItemIEs__value_u { + E2nodeComponentConfigAddition_Item_t E2nodeComponentConfigAddition_Item; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2nodeComponentConfigAddition_ItemIEs_t; typedef struct E2nodeComponentConfigUpdate_ItemIEs { ProtocolIE_ID_t id; Criticality_t criticality; @@ -383,6 +476,54 @@ typedef struct E2nodeComponentConfigUpdate_ItemIEs { /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; } E2nodeComponentConfigUpdate_ItemIEs_t; +typedef struct E2nodeComponentConfigRemoval_ItemIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct E2nodeComponentConfigRemoval_ItemIEs__value { + E2nodeComponentConfigRemoval_ItemIEs__value_PR present; + union E2nodeComponentConfigRemoval_ItemIEs__value_u { + E2nodeComponentConfigRemoval_Item_t E2nodeComponentConfigRemoval_Item; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2nodeComponentConfigRemoval_ItemIEs_t; +typedef struct E2nodeTNLassociationRemoval_ItemIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct E2nodeTNLassociationRemoval_ItemIEs__value { + E2nodeTNLassociationRemoval_ItemIEs__value_PR present; + union E2nodeTNLassociationRemoval_ItemIEs__value_u { + E2nodeTNLassociationRemoval_Item_t E2nodeTNLassociationRemoval_Item; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2nodeTNLassociationRemoval_ItemIEs_t; +typedef struct E2nodeComponentConfigAdditionAck_ItemIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct E2nodeComponentConfigAdditionAck_ItemIEs__value { + E2nodeComponentConfigAdditionAck_ItemIEs__value_PR present; + union E2nodeComponentConfigAdditionAck_ItemIEs__value_u { + E2nodeComponentConfigAdditionAck_Item_t E2nodeComponentConfigAdditionAck_Item; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2nodeComponentConfigAdditionAck_ItemIEs_t; typedef struct E2nodeComponentConfigUpdateAck_ItemIEs { ProtocolIE_ID_t id; Criticality_t criticality; @@ -399,6 +540,22 @@ typedef struct E2nodeComponentConfigUpdateAck_ItemIEs { /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; } E2nodeComponentConfigUpdateAck_ItemIEs_t; +typedef struct E2nodeComponentConfigRemovalAck_ItemIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct E2nodeComponentConfigRemovalAck_ItemIEs__value { + E2nodeComponentConfigRemovalAck_ItemIEs__value_PR present; + union E2nodeComponentConfigRemovalAck_ItemIEs__value_u { + E2nodeComponentConfigRemovalAck_Item_t E2nodeComponentConfigRemovalAck_Item; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2nodeComponentConfigRemovalAck_ItemIEs_t; typedef struct RANfunction_ItemIEs { ProtocolIE_ID_t id; Criticality_t criticality; @@ -492,7 +649,7 @@ typedef struct RICsubscriptionFailure_IEs { union RICsubscriptionFailure_IEs__value_u { RICrequestID_t RICrequestID; RANfunctionID_t RANfunctionID; - RICaction_NotAdmitted_List_t RICaction_NotAdmitted_List; + Cause_t Cause; CriticalityDiagnostics_t CriticalityDiagnostics; } choice; @@ -556,6 +713,22 @@ typedef struct RICsubscriptionDeleteFailure_IEs { /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; } RICsubscriptionDeleteFailure_IEs_t; +typedef struct RICsubscriptionDeleteRequired_IEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct RICsubscriptionDeleteRequired_IEs__value { + RICsubscriptionDeleteRequired_IEs__value_PR present; + union RICsubscriptionDeleteRequired_IEs__value_u { + RICsubscription_List_withCause_t RICsubscription_List_withCause; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RICsubscriptionDeleteRequired_IEs_t; typedef struct RICindication_IEs { ProtocolIE_ID_t id; Criticality_t criticality; @@ -609,7 +782,6 @@ typedef struct RICcontrolAcknowledge_IEs { RICrequestID_t RICrequestID; RANfunctionID_t RANfunctionID; RICcallProcessID_t RICcallProcessID; - RICcontrolStatus_t RICcontrolStatus; RICcontrolOutcome_t RICcontrolOutcome; } choice; @@ -646,6 +818,7 @@ typedef struct ErrorIndication_IEs { struct ErrorIndication_IEs__value { ErrorIndication_IEs__value_PR present; union ErrorIndication_IEs__value_u { + TransactionID_t TransactionID; RICrequestID_t RICrequestID; RANfunctionID_t RANfunctionID; Cause_t Cause; @@ -665,9 +838,10 @@ typedef struct E2setupRequestIEs { struct E2setupRequestIEs__value { E2setupRequestIEs__value_PR present; union E2setupRequestIEs__value_u { + TransactionID_t TransactionID; GlobalE2node_ID_t GlobalE2node_ID; RANfunctions_List_t RANfunctions_List; - E2nodeComponentConfigUpdate_List_t E2nodeComponentConfigUpdate_List; + E2nodeComponentConfigAddition_List_t E2nodeComponentConfigAddition_List; } choice; /* Context for parsing across buffer boundaries */ @@ -683,10 +857,11 @@ typedef struct E2setupResponseIEs { struct E2setupResponseIEs__value { E2setupResponseIEs__value_PR present; union E2setupResponseIEs__value_u { + TransactionID_t TransactionID; GlobalRIC_ID_t GlobalRIC_ID; RANfunctionsID_List_t RANfunctionsID_List; RANfunctionsIDcause_List_t RANfunctionsIDcause_List; - E2nodeComponentConfigUpdateAck_List_t E2nodeComponentConfigUpdateAck_List; + E2nodeComponentConfigAdditionAck_List_t E2nodeComponentConfigAdditionAck_List; } choice; /* Context for parsing across buffer boundaries */ @@ -702,6 +877,7 @@ typedef struct E2setupFailureIEs { struct E2setupFailureIEs__value { E2setupFailureIEs__value_PR present; union E2setupFailureIEs__value_u { + TransactionID_t TransactionID; Cause_t Cause; TimeToWait_t TimeToWait; CriticalityDiagnostics_t CriticalityDiagnostics; @@ -721,6 +897,7 @@ typedef struct E2connectionUpdate_IEs { struct E2connectionUpdate_IEs__value { E2connectionUpdate_IEs__value_PR present; union E2connectionUpdate_IEs__value_u { + TransactionID_t TransactionID; E2connectionUpdate_List_t E2connectionUpdate_List; E2connectionUpdateRemove_List_t E2connectionUpdateRemove_List; } choice; @@ -738,6 +915,7 @@ typedef struct E2connectionUpdateAck_IEs { struct E2connectionUpdateAck_IEs__value { E2connectionUpdateAck_IEs__value_PR present; union E2connectionUpdateAck_IEs__value_u { + TransactionID_t TransactionID; E2connectionUpdate_List_t E2connectionUpdate_List; E2connectionSetupFailed_List_t E2connectionSetupFailed_List; } choice; @@ -755,6 +933,7 @@ typedef struct E2connectionUpdateFailure_IEs { struct E2connectionUpdateFailure_IEs__value { E2connectionUpdateFailure_IEs__value_PR present; union E2connectionUpdateFailure_IEs__value_u { + TransactionID_t TransactionID; Cause_t Cause; TimeToWait_t TimeToWait; CriticalityDiagnostics_t CriticalityDiagnostics; @@ -773,7 +952,12 @@ typedef struct E2nodeConfigurationUpdate_IEs { struct E2nodeConfigurationUpdate_IEs__value { E2nodeConfigurationUpdate_IEs__value_PR present; union E2nodeConfigurationUpdate_IEs__value_u { + TransactionID_t TransactionID; + GlobalE2node_ID_t GlobalE2node_ID; + E2nodeComponentConfigAddition_List_t E2nodeComponentConfigAddition_List; E2nodeComponentConfigUpdate_List_t E2nodeComponentConfigUpdate_List; + E2nodeComponentConfigRemoval_List_t E2nodeComponentConfigRemoval_List; + E2nodeTNLassociationRemoval_List_t E2nodeTNLassociationRemoval_List; } choice; /* Context for parsing across buffer boundaries */ @@ -789,7 +973,10 @@ typedef struct E2nodeConfigurationUpdateAcknowledge_IEs { struct E2nodeConfigurationUpdateAcknowledge_IEs__value { E2nodeConfigurationUpdateAcknowledge_IEs__value_PR present; union E2nodeConfigurationUpdateAcknowledge_IEs__value_u { + TransactionID_t TransactionID; + E2nodeComponentConfigAdditionAck_List_t E2nodeComponentConfigAdditionAck_List; E2nodeComponentConfigUpdateAck_List_t E2nodeComponentConfigUpdateAck_List; + E2nodeComponentConfigRemovalAck_List_t E2nodeComponentConfigRemovalAck_List; } choice; /* Context for parsing across buffer boundaries */ @@ -805,6 +992,7 @@ typedef struct E2nodeConfigurationUpdateFailure_IEs { struct E2nodeConfigurationUpdateFailure_IEs__value { E2nodeConfigurationUpdateFailure_IEs__value_PR present; union E2nodeConfigurationUpdateFailure_IEs__value_u { + TransactionID_t TransactionID; Cause_t Cause; TimeToWait_t TimeToWait; CriticalityDiagnostics_t CriticalityDiagnostics; @@ -823,6 +1011,7 @@ typedef struct ResetRequestIEs { struct ResetRequestIEs__value { ResetRequestIEs__value_PR present; union ResetRequestIEs__value_u { + TransactionID_t TransactionID; Cause_t Cause; } choice; @@ -839,6 +1028,7 @@ typedef struct ResetResponseIEs { struct ResetResponseIEs__value { ResetResponseIEs__value_PR present; union ResetResponseIEs__value_u { + TransactionID_t TransactionID; CriticalityDiagnostics_t CriticalityDiagnostics; } choice; @@ -855,6 +1045,7 @@ typedef struct RICserviceUpdate_IEs { struct RICserviceUpdate_IEs__value { RICserviceUpdate_IEs__value_PR present; union RICserviceUpdate_IEs__value_u { + TransactionID_t TransactionID; RANfunctions_List_t RANfunctions_List; RANfunctionsID_List_t RANfunctionsID_List; } choice; @@ -872,6 +1063,7 @@ typedef struct RICserviceUpdateAcknowledge_IEs { struct RICserviceUpdateAcknowledge_IEs__value { RICserviceUpdateAcknowledge_IEs__value_PR present; union RICserviceUpdateAcknowledge_IEs__value_u { + TransactionID_t TransactionID; RANfunctionsID_List_t RANfunctionsID_List; RANfunctionsIDcause_List_t RANfunctionsIDcause_List; } choice; @@ -889,7 +1081,8 @@ typedef struct RICserviceUpdateFailure_IEs { struct RICserviceUpdateFailure_IEs__value { RICserviceUpdateFailure_IEs__value_PR present; union RICserviceUpdateFailure_IEs__value_u { - RANfunctionsIDcause_List_t RANfunctionsIDcause_List; + TransactionID_t TransactionID; + Cause_t Cause; TimeToWait_t TimeToWait; CriticalityDiagnostics_t CriticalityDiagnostics; } choice; @@ -907,6 +1100,7 @@ typedef struct RICserviceQuery_IEs { struct RICserviceQuery_IEs__value { RICserviceQuery_IEs__value_PR present; union RICserviceQuery_IEs__value_u { + TransactionID_t TransactionID; RANfunctionsID_List_t RANfunctionsID_List; } choice; @@ -928,108 +1122,129 @@ extern asn_TYPE_member_t asn_MBR_RICaction_Admitted_ItemIEs_5[3]; extern asn_TYPE_descriptor_t asn_DEF_RICaction_NotAdmitted_ItemIEs; extern asn_SEQUENCE_specifics_t asn_SPC_RICaction_NotAdmitted_ItemIEs_specs_9; extern asn_TYPE_member_t asn_MBR_RICaction_NotAdmitted_ItemIEs_9[3]; +extern asn_TYPE_descriptor_t asn_DEF_RICsubscription_withCause_ItemIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscription_withCause_ItemIEs_specs_13; +extern asn_TYPE_member_t asn_MBR_RICsubscription_withCause_ItemIEs_13[3]; extern asn_TYPE_descriptor_t asn_DEF_E2connectionUpdate_ItemIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E2connectionUpdate_ItemIEs_specs_13; -extern asn_TYPE_member_t asn_MBR_E2connectionUpdate_ItemIEs_13[3]; +extern asn_SEQUENCE_specifics_t asn_SPC_E2connectionUpdate_ItemIEs_specs_17; +extern asn_TYPE_member_t asn_MBR_E2connectionUpdate_ItemIEs_17[3]; extern asn_TYPE_descriptor_t asn_DEF_E2connectionUpdateRemove_ItemIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E2connectionUpdateRemove_ItemIEs_specs_17; -extern asn_TYPE_member_t asn_MBR_E2connectionUpdateRemove_ItemIEs_17[3]; +extern asn_SEQUENCE_specifics_t asn_SPC_E2connectionUpdateRemove_ItemIEs_specs_21; +extern asn_TYPE_member_t asn_MBR_E2connectionUpdateRemove_ItemIEs_21[3]; extern asn_TYPE_descriptor_t asn_DEF_E2connectionSetupFailed_ItemIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E2connectionSetupFailed_ItemIEs_specs_21; -extern asn_TYPE_member_t asn_MBR_E2connectionSetupFailed_ItemIEs_21[3]; +extern asn_SEQUENCE_specifics_t asn_SPC_E2connectionSetupFailed_ItemIEs_specs_25; +extern asn_TYPE_member_t asn_MBR_E2connectionSetupFailed_ItemIEs_25[3]; +extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigAddition_ItemIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigAddition_ItemIEs_specs_29; +extern asn_TYPE_member_t asn_MBR_E2nodeComponentConfigAddition_ItemIEs_29[3]; extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigUpdate_ItemIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigUpdate_ItemIEs_specs_25; -extern asn_TYPE_member_t asn_MBR_E2nodeComponentConfigUpdate_ItemIEs_25[3]; +extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigUpdate_ItemIEs_specs_33; +extern asn_TYPE_member_t asn_MBR_E2nodeComponentConfigUpdate_ItemIEs_33[3]; +extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigRemoval_ItemIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigRemoval_ItemIEs_specs_37; +extern asn_TYPE_member_t asn_MBR_E2nodeComponentConfigRemoval_ItemIEs_37[3]; +extern asn_TYPE_descriptor_t asn_DEF_E2nodeTNLassociationRemoval_ItemIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeTNLassociationRemoval_ItemIEs_specs_41; +extern asn_TYPE_member_t asn_MBR_E2nodeTNLassociationRemoval_ItemIEs_41[3]; +extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigAdditionAck_ItemIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigAdditionAck_ItemIEs_specs_45; +extern asn_TYPE_member_t asn_MBR_E2nodeComponentConfigAdditionAck_ItemIEs_45[3]; extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigUpdateAck_ItemIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigUpdateAck_ItemIEs_specs_29; -extern asn_TYPE_member_t asn_MBR_E2nodeComponentConfigUpdateAck_ItemIEs_29[3]; +extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigUpdateAck_ItemIEs_specs_49; +extern asn_TYPE_member_t asn_MBR_E2nodeComponentConfigUpdateAck_ItemIEs_49[3]; +extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigRemovalAck_ItemIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigRemovalAck_ItemIEs_specs_53; +extern asn_TYPE_member_t asn_MBR_E2nodeComponentConfigRemovalAck_ItemIEs_53[3]; extern asn_TYPE_descriptor_t asn_DEF_RANfunction_ItemIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RANfunction_ItemIEs_specs_33; -extern asn_TYPE_member_t asn_MBR_RANfunction_ItemIEs_33[3]; +extern asn_SEQUENCE_specifics_t asn_SPC_RANfunction_ItemIEs_specs_57; +extern asn_TYPE_member_t asn_MBR_RANfunction_ItemIEs_57[3]; extern asn_TYPE_descriptor_t asn_DEF_RANfunctionID_ItemIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RANfunctionID_ItemIEs_specs_37; -extern asn_TYPE_member_t asn_MBR_RANfunctionID_ItemIEs_37[3]; +extern asn_SEQUENCE_specifics_t asn_SPC_RANfunctionID_ItemIEs_specs_61; +extern asn_TYPE_member_t asn_MBR_RANfunctionID_ItemIEs_61[3]; extern asn_TYPE_descriptor_t asn_DEF_RANfunctionIDcause_ItemIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RANfunctionIDcause_ItemIEs_specs_41; -extern asn_TYPE_member_t asn_MBR_RANfunctionIDcause_ItemIEs_41[3]; +extern asn_SEQUENCE_specifics_t asn_SPC_RANfunctionIDcause_ItemIEs_specs_65; +extern asn_TYPE_member_t asn_MBR_RANfunctionIDcause_ItemIEs_65[3]; extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionRequest_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionRequest_IEs_specs_45; -extern asn_TYPE_member_t asn_MBR_RICsubscriptionRequest_IEs_45[3]; +extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionRequest_IEs_specs_69; +extern asn_TYPE_member_t asn_MBR_RICsubscriptionRequest_IEs_69[3]; extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionResponse_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionResponse_IEs_specs_49; -extern asn_TYPE_member_t asn_MBR_RICsubscriptionResponse_IEs_49[3]; +extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionResponse_IEs_specs_73; +extern asn_TYPE_member_t asn_MBR_RICsubscriptionResponse_IEs_73[3]; extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionFailure_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionFailure_IEs_specs_53; -extern asn_TYPE_member_t asn_MBR_RICsubscriptionFailure_IEs_53[3]; +extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionFailure_IEs_specs_77; +extern asn_TYPE_member_t asn_MBR_RICsubscriptionFailure_IEs_77[3]; extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDeleteRequest_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteRequest_IEs_specs_57; -extern asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteRequest_IEs_57[3]; +extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteRequest_IEs_specs_81; +extern asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteRequest_IEs_81[3]; extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDeleteResponse_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteResponse_IEs_specs_61; -extern asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteResponse_IEs_61[3]; +extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteResponse_IEs_specs_85; +extern asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteResponse_IEs_85[3]; extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDeleteFailure_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteFailure_IEs_specs_65; -extern asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteFailure_IEs_65[3]; +extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteFailure_IEs_specs_89; +extern asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteFailure_IEs_89[3]; +extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDeleteRequired_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteRequired_IEs_specs_93; +extern asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteRequired_IEs_93[3]; extern asn_TYPE_descriptor_t asn_DEF_RICindication_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RICindication_IEs_specs_69; -extern asn_TYPE_member_t asn_MBR_RICindication_IEs_69[3]; +extern asn_SEQUENCE_specifics_t asn_SPC_RICindication_IEs_specs_97; +extern asn_TYPE_member_t asn_MBR_RICindication_IEs_97[3]; extern asn_TYPE_descriptor_t asn_DEF_RICcontrolRequest_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RICcontrolRequest_IEs_specs_73; -extern asn_TYPE_member_t asn_MBR_RICcontrolRequest_IEs_73[3]; +extern asn_SEQUENCE_specifics_t asn_SPC_RICcontrolRequest_IEs_specs_101; +extern asn_TYPE_member_t asn_MBR_RICcontrolRequest_IEs_101[3]; extern asn_TYPE_descriptor_t asn_DEF_RICcontrolAcknowledge_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RICcontrolAcknowledge_IEs_specs_77; -extern asn_TYPE_member_t asn_MBR_RICcontrolAcknowledge_IEs_77[3]; +extern asn_SEQUENCE_specifics_t asn_SPC_RICcontrolAcknowledge_IEs_specs_105; +extern asn_TYPE_member_t asn_MBR_RICcontrolAcknowledge_IEs_105[3]; extern asn_TYPE_descriptor_t asn_DEF_RICcontrolFailure_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RICcontrolFailure_IEs_specs_81; -extern asn_TYPE_member_t asn_MBR_RICcontrolFailure_IEs_81[3]; +extern asn_SEQUENCE_specifics_t asn_SPC_RICcontrolFailure_IEs_specs_109; +extern asn_TYPE_member_t asn_MBR_RICcontrolFailure_IEs_109[3]; extern asn_TYPE_descriptor_t asn_DEF_ErrorIndication_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_ErrorIndication_IEs_specs_85; -extern asn_TYPE_member_t asn_MBR_ErrorIndication_IEs_85[3]; +extern asn_SEQUENCE_specifics_t asn_SPC_ErrorIndication_IEs_specs_113; +extern asn_TYPE_member_t asn_MBR_ErrorIndication_IEs_113[3]; extern asn_TYPE_descriptor_t asn_DEF_E2setupRequestIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E2setupRequestIEs_specs_89; -extern asn_TYPE_member_t asn_MBR_E2setupRequestIEs_89[3]; +extern asn_SEQUENCE_specifics_t asn_SPC_E2setupRequestIEs_specs_117; +extern asn_TYPE_member_t asn_MBR_E2setupRequestIEs_117[3]; extern asn_TYPE_descriptor_t asn_DEF_E2setupResponseIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E2setupResponseIEs_specs_93; -extern asn_TYPE_member_t asn_MBR_E2setupResponseIEs_93[3]; +extern asn_SEQUENCE_specifics_t asn_SPC_E2setupResponseIEs_specs_121; +extern asn_TYPE_member_t asn_MBR_E2setupResponseIEs_121[3]; extern asn_TYPE_descriptor_t asn_DEF_E2setupFailureIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E2setupFailureIEs_specs_97; -extern asn_TYPE_member_t asn_MBR_E2setupFailureIEs_97[3]; +extern asn_SEQUENCE_specifics_t asn_SPC_E2setupFailureIEs_specs_125; +extern asn_TYPE_member_t asn_MBR_E2setupFailureIEs_125[3]; extern asn_TYPE_descriptor_t asn_DEF_E2connectionUpdate_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E2connectionUpdate_IEs_specs_101; -extern asn_TYPE_member_t asn_MBR_E2connectionUpdate_IEs_101[3]; +extern asn_SEQUENCE_specifics_t asn_SPC_E2connectionUpdate_IEs_specs_129; +extern asn_TYPE_member_t asn_MBR_E2connectionUpdate_IEs_129[3]; extern asn_TYPE_descriptor_t asn_DEF_E2connectionUpdateAck_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E2connectionUpdateAck_IEs_specs_105; -extern asn_TYPE_member_t asn_MBR_E2connectionUpdateAck_IEs_105[3]; +extern asn_SEQUENCE_specifics_t asn_SPC_E2connectionUpdateAck_IEs_specs_133; +extern asn_TYPE_member_t asn_MBR_E2connectionUpdateAck_IEs_133[3]; extern asn_TYPE_descriptor_t asn_DEF_E2connectionUpdateFailure_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E2connectionUpdateFailure_IEs_specs_109; -extern asn_TYPE_member_t asn_MBR_E2connectionUpdateFailure_IEs_109[3]; +extern asn_SEQUENCE_specifics_t asn_SPC_E2connectionUpdateFailure_IEs_specs_137; +extern asn_TYPE_member_t asn_MBR_E2connectionUpdateFailure_IEs_137[3]; extern asn_TYPE_descriptor_t asn_DEF_E2nodeConfigurationUpdate_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeConfigurationUpdate_IEs_specs_113; -extern asn_TYPE_member_t asn_MBR_E2nodeConfigurationUpdate_IEs_113[3]; +extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeConfigurationUpdate_IEs_specs_141; +extern asn_TYPE_member_t asn_MBR_E2nodeConfigurationUpdate_IEs_141[3]; extern asn_TYPE_descriptor_t asn_DEF_E2nodeConfigurationUpdateAcknowledge_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeConfigurationUpdateAcknowledge_IEs_specs_117; -extern asn_TYPE_member_t asn_MBR_E2nodeConfigurationUpdateAcknowledge_IEs_117[3]; +extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeConfigurationUpdateAcknowledge_IEs_specs_145; +extern asn_TYPE_member_t asn_MBR_E2nodeConfigurationUpdateAcknowledge_IEs_145[3]; extern asn_TYPE_descriptor_t asn_DEF_E2nodeConfigurationUpdateFailure_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeConfigurationUpdateFailure_IEs_specs_121; -extern asn_TYPE_member_t asn_MBR_E2nodeConfigurationUpdateFailure_IEs_121[3]; +extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeConfigurationUpdateFailure_IEs_specs_149; +extern asn_TYPE_member_t asn_MBR_E2nodeConfigurationUpdateFailure_IEs_149[3]; extern asn_TYPE_descriptor_t asn_DEF_ResetRequestIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_ResetRequestIEs_specs_125; -extern asn_TYPE_member_t asn_MBR_ResetRequestIEs_125[3]; +extern asn_SEQUENCE_specifics_t asn_SPC_ResetRequestIEs_specs_153; +extern asn_TYPE_member_t asn_MBR_ResetRequestIEs_153[3]; extern asn_TYPE_descriptor_t asn_DEF_ResetResponseIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_ResetResponseIEs_specs_129; -extern asn_TYPE_member_t asn_MBR_ResetResponseIEs_129[3]; +extern asn_SEQUENCE_specifics_t asn_SPC_ResetResponseIEs_specs_157; +extern asn_TYPE_member_t asn_MBR_ResetResponseIEs_157[3]; extern asn_TYPE_descriptor_t asn_DEF_RICserviceUpdate_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdate_IEs_specs_133; -extern asn_TYPE_member_t asn_MBR_RICserviceUpdate_IEs_133[3]; +extern asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdate_IEs_specs_161; +extern asn_TYPE_member_t asn_MBR_RICserviceUpdate_IEs_161[3]; extern asn_TYPE_descriptor_t asn_DEF_RICserviceUpdateAcknowledge_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdateAcknowledge_IEs_specs_137; -extern asn_TYPE_member_t asn_MBR_RICserviceUpdateAcknowledge_IEs_137[3]; +extern asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdateAcknowledge_IEs_specs_165; +extern asn_TYPE_member_t asn_MBR_RICserviceUpdateAcknowledge_IEs_165[3]; extern asn_TYPE_descriptor_t asn_DEF_RICserviceUpdateFailure_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdateFailure_IEs_specs_141; -extern asn_TYPE_member_t asn_MBR_RICserviceUpdateFailure_IEs_141[3]; +extern asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdateFailure_IEs_specs_169; +extern asn_TYPE_member_t asn_MBR_RICserviceUpdateFailure_IEs_169[3]; extern asn_TYPE_descriptor_t asn_DEF_RICserviceQuery_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RICserviceQuery_IEs_specs_145; -extern asn_TYPE_member_t asn_MBR_RICserviceQuery_IEs_145[3]; +extern asn_SEQUENCE_specifics_t asn_SPC_RICserviceQuery_IEs_specs_173; +extern asn_TYPE_member_t asn_MBR_RICserviceQuery_IEs_173[3]; #ifdef __cplusplus } diff --git a/e2sim/src/ASN1c/ProtocolIE-FieldPair.c b/e2sim/src/ASN1c/ProtocolIE-FieldPair.c index 74ff309..78bc305 100644 --- a/e2sim/src/ASN1c/ProtocolIE-FieldPair.c +++ b/e2sim/src/ASN1c/ProtocolIE-FieldPair.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-Containers" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #include "ProtocolIE-FieldPair.h" diff --git a/e2sim/src/ASN1c/ProtocolIE-FieldPair.h b/e2sim/src/ASN1c/ProtocolIE-FieldPair.h index 7437097..843a218 100644 --- a/e2sim/src/ASN1c/ProtocolIE-FieldPair.h +++ b/e2sim/src/ASN1c/ProtocolIE-FieldPair.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-Containers" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #ifndef _ProtocolIE_FieldPair_H_ diff --git a/e2sim/src/ASN1c/ProtocolIE-ID.c b/e2sim/src/ASN1c/ProtocolIE-ID.c index 5d11b66..c859d4e 100644 --- a/e2sim/src/ASN1c/ProtocolIE-ID.c +++ b/e2sim/src/ASN1c/ProtocolIE-ID.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-CommonDataTypes" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #include "ProtocolIE-ID.h" diff --git a/e2sim/src/ASN1c/ProtocolIE-ID.h b/e2sim/src/ASN1c/ProtocolIE-ID.h index 77b6c57..697ebe3 100644 --- a/e2sim/src/ASN1c/ProtocolIE-ID.h +++ b/e2sim/src/ASN1c/ProtocolIE-ID.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-CommonDataTypes" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #ifndef _ProtocolIE_ID_H_ @@ -81,6 +81,19 @@ per_type_encoder_f ProtocolIE_ID_encode_aper; #define ProtocolIE_ID_id_E2connectionUpdateRemove ((ProtocolIE_ID_t)46) #define ProtocolIE_ID_id_E2connectionUpdateRemove_Item ((ProtocolIE_ID_t)47) #define ProtocolIE_ID_id_TNLinformation ((ProtocolIE_ID_t)48) +#define ProtocolIE_ID_id_TransactionID ((ProtocolIE_ID_t)49) +#define ProtocolIE_ID_id_E2nodeComponentConfigAddition ((ProtocolIE_ID_t)50) +#define ProtocolIE_ID_id_E2nodeComponentConfigAddition_Item ((ProtocolIE_ID_t)51) +#define ProtocolIE_ID_id_E2nodeComponentConfigAdditionAck ((ProtocolIE_ID_t)52) +#define ProtocolIE_ID_id_E2nodeComponentConfigAdditionAck_Item ((ProtocolIE_ID_t)53) +#define ProtocolIE_ID_id_E2nodeComponentConfigRemoval ((ProtocolIE_ID_t)54) +#define ProtocolIE_ID_id_E2nodeComponentConfigRemoval_Item ((ProtocolIE_ID_t)55) +#define ProtocolIE_ID_id_E2nodeComponentConfigRemovalAck ((ProtocolIE_ID_t)56) +#define ProtocolIE_ID_id_E2nodeComponentConfigRemovalAck_Item ((ProtocolIE_ID_t)57) +#define ProtocolIE_ID_id_E2nodeTNLassociationRemoval ((ProtocolIE_ID_t)58) +#define ProtocolIE_ID_id_E2nodeTNLassociationRemoval_Item ((ProtocolIE_ID_t)59) +#define ProtocolIE_ID_id_RICsubscriptionToBeRemoved ((ProtocolIE_ID_t)50) +#define ProtocolIE_ID_id_RICsubscription_withCause_Item ((ProtocolIE_ID_t)51) #ifdef __cplusplus } diff --git a/e2sim/src/ASN1c/ProtocolIE-SingleContainer.c b/e2sim/src/ASN1c/ProtocolIE-SingleContainer.c index 73b92ab..c9581cf 100644 --- a/e2sim/src/ASN1c/ProtocolIE-SingleContainer.c +++ b/e2sim/src/ASN1c/ProtocolIE-SingleContainer.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-Containers" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #include "ProtocolIE-SingleContainer.h" @@ -19,6 +19,10 @@ * This type is implemented using RICaction_NotAdmitted_ItemIEs, * so here we adjust the DEF accordingly. */ +/* + * This type is implemented using RICsubscription_withCause_ItemIEs, + * so here we adjust the DEF accordingly. + */ /* * This type is implemented using E2connectionUpdate_ItemIEs, * so here we adjust the DEF accordingly. @@ -31,14 +35,34 @@ * This type is implemented using E2connectionSetupFailed_ItemIEs, * so here we adjust the DEF accordingly. */ +/* + * This type is implemented using E2nodeComponentConfigAddition_ItemIEs, + * so here we adjust the DEF accordingly. + */ /* * This type is implemented using E2nodeComponentConfigUpdate_ItemIEs, * so here we adjust the DEF accordingly. */ +/* + * This type is implemented using E2nodeComponentConfigRemoval_ItemIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using E2nodeTNLassociationRemoval_ItemIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using E2nodeComponentConfigAdditionAck_ItemIEs, + * so here we adjust the DEF accordingly. + */ /* * This type is implemented using E2nodeComponentConfigUpdateAck_ItemIEs, * so here we adjust the DEF accordingly. */ +/* + * This type is implemented using E2nodeComponentConfigRemovalAck_ItemIEs, + * so here we adjust the DEF accordingly. + */ /* * This type is implemented using RANfunction_ItemIEs, * so here we adjust the DEF accordingly. @@ -51,212 +75,326 @@ * This type is implemented using RANfunctionIDcause_ItemIEs, * so here we adjust the DEF accordingly. */ -static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_229P0_tags_1[] = { +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_1920P0_tags_1[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_229P0 = { +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P0 = { "ProtocolIE-SingleContainer", "ProtocolIE-SingleContainer", &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_SingleContainer_229P0_tags_1, - sizeof(asn_DEF_ProtocolIE_SingleContainer_229P0_tags_1) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_229P0_tags_1[0]), /* 1 */ - asn_DEF_ProtocolIE_SingleContainer_229P0_tags_1, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_SingleContainer_229P0_tags_1) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_229P0_tags_1[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_1920P0_tags_1, + sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P0_tags_1) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P0_tags_1[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_1920P0_tags_1, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P0_tags_1) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P0_tags_1[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, asn_MBR_RICaction_ToBeSetup_ItemIEs_1, 3, /* Elements count */ &asn_SPC_RICaction_ToBeSetup_ItemIEs_specs_1 /* Additional specs */ }; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_229P1_tags_2[] = { +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_1920P1_tags_2[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_229P1 = { +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P1 = { "ProtocolIE-SingleContainer", "ProtocolIE-SingleContainer", &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_SingleContainer_229P1_tags_2, - sizeof(asn_DEF_ProtocolIE_SingleContainer_229P1_tags_2) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_229P1_tags_2[0]), /* 1 */ - asn_DEF_ProtocolIE_SingleContainer_229P1_tags_2, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_SingleContainer_229P1_tags_2) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_229P1_tags_2[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_1920P1_tags_2, + sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P1_tags_2) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P1_tags_2[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_1920P1_tags_2, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P1_tags_2) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P1_tags_2[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, asn_MBR_RICaction_Admitted_ItemIEs_5, 3, /* Elements count */ &asn_SPC_RICaction_Admitted_ItemIEs_specs_5 /* Additional specs */ }; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_229P2_tags_3[] = { +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_1920P2_tags_3[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_229P2 = { +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P2 = { "ProtocolIE-SingleContainer", "ProtocolIE-SingleContainer", &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_SingleContainer_229P2_tags_3, - sizeof(asn_DEF_ProtocolIE_SingleContainer_229P2_tags_3) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_229P2_tags_3[0]), /* 1 */ - asn_DEF_ProtocolIE_SingleContainer_229P2_tags_3, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_SingleContainer_229P2_tags_3) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_229P2_tags_3[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_1920P2_tags_3, + sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P2_tags_3) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P2_tags_3[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_1920P2_tags_3, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P2_tags_3) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P2_tags_3[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, asn_MBR_RICaction_NotAdmitted_ItemIEs_9, 3, /* Elements count */ &asn_SPC_RICaction_NotAdmitted_ItemIEs_specs_9 /* Additional specs */ }; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_229P3_tags_4[] = { +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_1920P3_tags_4[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P3 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_SingleContainer_1920P3_tags_4, + sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P3_tags_4) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P3_tags_4[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_1920P3_tags_4, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P3_tags_4) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P3_tags_4[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RICsubscription_withCause_ItemIEs_13, + 3, /* Elements count */ + &asn_SPC_RICsubscription_withCause_ItemIEs_specs_13 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_1920P4_tags_5[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P4 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_SingleContainer_1920P4_tags_5, + sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P4_tags_5) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P4_tags_5[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_1920P4_tags_5, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P4_tags_5) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P4_tags_5[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_E2connectionUpdate_ItemIEs_17, + 3, /* Elements count */ + &asn_SPC_E2connectionUpdate_ItemIEs_specs_17 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_1920P5_tags_6[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P5 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_SingleContainer_1920P5_tags_6, + sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P5_tags_6) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P5_tags_6[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_1920P5_tags_6, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P5_tags_6) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P5_tags_6[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_E2connectionUpdateRemove_ItemIEs_21, + 3, /* Elements count */ + &asn_SPC_E2connectionUpdateRemove_ItemIEs_specs_21 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_1920P6_tags_7[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P6 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_SingleContainer_1920P6_tags_7, + sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P6_tags_7) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P6_tags_7[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_1920P6_tags_7, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P6_tags_7) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P6_tags_7[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_E2connectionSetupFailed_ItemIEs_25, + 3, /* Elements count */ + &asn_SPC_E2connectionSetupFailed_ItemIEs_specs_25 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_1920P7_tags_8[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P7 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_SingleContainer_1920P7_tags_8, + sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P7_tags_8) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P7_tags_8[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_1920P7_tags_8, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P7_tags_8) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P7_tags_8[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_E2nodeComponentConfigAddition_ItemIEs_29, + 3, /* Elements count */ + &asn_SPC_E2nodeComponentConfigAddition_ItemIEs_specs_29 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_1920P8_tags_9[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P8 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_SingleContainer_1920P8_tags_9, + sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P8_tags_9) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P8_tags_9[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_1920P8_tags_9, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P8_tags_9) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P8_tags_9[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_E2nodeComponentConfigUpdate_ItemIEs_33, + 3, /* Elements count */ + &asn_SPC_E2nodeComponentConfigUpdate_ItemIEs_specs_33 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_1920P9_tags_10[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_229P3 = { +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P9 = { "ProtocolIE-SingleContainer", "ProtocolIE-SingleContainer", &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_SingleContainer_229P3_tags_4, - sizeof(asn_DEF_ProtocolIE_SingleContainer_229P3_tags_4) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_229P3_tags_4[0]), /* 1 */ - asn_DEF_ProtocolIE_SingleContainer_229P3_tags_4, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_SingleContainer_229P3_tags_4) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_229P3_tags_4[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_1920P9_tags_10, + sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P9_tags_10) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P9_tags_10[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_1920P9_tags_10, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P9_tags_10) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P9_tags_10[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_E2connectionUpdate_ItemIEs_13, + asn_MBR_E2nodeComponentConfigRemoval_ItemIEs_37, 3, /* Elements count */ - &asn_SPC_E2connectionUpdate_ItemIEs_specs_13 /* Additional specs */ + &asn_SPC_E2nodeComponentConfigRemoval_ItemIEs_specs_37 /* Additional specs */ }; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_229P4_tags_5[] = { +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_1920P10_tags_11[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_229P4 = { +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P10 = { "ProtocolIE-SingleContainer", "ProtocolIE-SingleContainer", &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_SingleContainer_229P4_tags_5, - sizeof(asn_DEF_ProtocolIE_SingleContainer_229P4_tags_5) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_229P4_tags_5[0]), /* 1 */ - asn_DEF_ProtocolIE_SingleContainer_229P4_tags_5, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_SingleContainer_229P4_tags_5) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_229P4_tags_5[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_1920P10_tags_11, + sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P10_tags_11) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P10_tags_11[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_1920P10_tags_11, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P10_tags_11) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P10_tags_11[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_E2connectionUpdateRemove_ItemIEs_17, + asn_MBR_E2nodeTNLassociationRemoval_ItemIEs_41, 3, /* Elements count */ - &asn_SPC_E2connectionUpdateRemove_ItemIEs_specs_17 /* Additional specs */ + &asn_SPC_E2nodeTNLassociationRemoval_ItemIEs_specs_41 /* Additional specs */ }; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_229P5_tags_6[] = { +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_1920P11_tags_12[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_229P5 = { +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P11 = { "ProtocolIE-SingleContainer", "ProtocolIE-SingleContainer", &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_SingleContainer_229P5_tags_6, - sizeof(asn_DEF_ProtocolIE_SingleContainer_229P5_tags_6) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_229P5_tags_6[0]), /* 1 */ - asn_DEF_ProtocolIE_SingleContainer_229P5_tags_6, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_SingleContainer_229P5_tags_6) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_229P5_tags_6[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_1920P11_tags_12, + sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P11_tags_12) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P11_tags_12[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_1920P11_tags_12, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P11_tags_12) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P11_tags_12[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_E2connectionSetupFailed_ItemIEs_21, + asn_MBR_E2nodeComponentConfigAdditionAck_ItemIEs_45, 3, /* Elements count */ - &asn_SPC_E2connectionSetupFailed_ItemIEs_specs_21 /* Additional specs */ + &asn_SPC_E2nodeComponentConfigAdditionAck_ItemIEs_specs_45 /* Additional specs */ }; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_229P6_tags_7[] = { +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_1920P12_tags_13[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_229P6 = { +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P12 = { "ProtocolIE-SingleContainer", "ProtocolIE-SingleContainer", &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_SingleContainer_229P6_tags_7, - sizeof(asn_DEF_ProtocolIE_SingleContainer_229P6_tags_7) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_229P6_tags_7[0]), /* 1 */ - asn_DEF_ProtocolIE_SingleContainer_229P6_tags_7, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_SingleContainer_229P6_tags_7) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_229P6_tags_7[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_1920P12_tags_13, + sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P12_tags_13) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P12_tags_13[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_1920P12_tags_13, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P12_tags_13) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P12_tags_13[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_E2nodeComponentConfigUpdate_ItemIEs_25, + asn_MBR_E2nodeComponentConfigUpdateAck_ItemIEs_49, 3, /* Elements count */ - &asn_SPC_E2nodeComponentConfigUpdate_ItemIEs_specs_25 /* Additional specs */ + &asn_SPC_E2nodeComponentConfigUpdateAck_ItemIEs_specs_49 /* Additional specs */ }; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_229P7_tags_8[] = { +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_1920P13_tags_14[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_229P7 = { +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P13 = { "ProtocolIE-SingleContainer", "ProtocolIE-SingleContainer", &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_SingleContainer_229P7_tags_8, - sizeof(asn_DEF_ProtocolIE_SingleContainer_229P7_tags_8) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_229P7_tags_8[0]), /* 1 */ - asn_DEF_ProtocolIE_SingleContainer_229P7_tags_8, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_SingleContainer_229P7_tags_8) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_229P7_tags_8[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_1920P13_tags_14, + sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P13_tags_14) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P13_tags_14[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_1920P13_tags_14, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P13_tags_14) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P13_tags_14[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_E2nodeComponentConfigUpdateAck_ItemIEs_29, + asn_MBR_E2nodeComponentConfigRemovalAck_ItemIEs_53, 3, /* Elements count */ - &asn_SPC_E2nodeComponentConfigUpdateAck_ItemIEs_specs_29 /* Additional specs */ + &asn_SPC_E2nodeComponentConfigRemovalAck_ItemIEs_specs_53 /* Additional specs */ }; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_229P8_tags_9[] = { +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_1920P14_tags_15[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_229P8 = { +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P14 = { "ProtocolIE-SingleContainer", "ProtocolIE-SingleContainer", &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_SingleContainer_229P8_tags_9, - sizeof(asn_DEF_ProtocolIE_SingleContainer_229P8_tags_9) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_229P8_tags_9[0]), /* 1 */ - asn_DEF_ProtocolIE_SingleContainer_229P8_tags_9, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_SingleContainer_229P8_tags_9) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_229P8_tags_9[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_1920P14_tags_15, + sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P14_tags_15) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P14_tags_15[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_1920P14_tags_15, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P14_tags_15) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P14_tags_15[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_RANfunction_ItemIEs_33, + asn_MBR_RANfunction_ItemIEs_57, 3, /* Elements count */ - &asn_SPC_RANfunction_ItemIEs_specs_33 /* Additional specs */ + &asn_SPC_RANfunction_ItemIEs_specs_57 /* Additional specs */ }; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_229P9_tags_10[] = { +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_1920P15_tags_16[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_229P9 = { +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P15 = { "ProtocolIE-SingleContainer", "ProtocolIE-SingleContainer", &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_SingleContainer_229P9_tags_10, - sizeof(asn_DEF_ProtocolIE_SingleContainer_229P9_tags_10) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_229P9_tags_10[0]), /* 1 */ - asn_DEF_ProtocolIE_SingleContainer_229P9_tags_10, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_SingleContainer_229P9_tags_10) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_229P9_tags_10[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_1920P15_tags_16, + sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P15_tags_16) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P15_tags_16[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_1920P15_tags_16, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P15_tags_16) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P15_tags_16[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_RANfunctionID_ItemIEs_37, + asn_MBR_RANfunctionID_ItemIEs_61, 3, /* Elements count */ - &asn_SPC_RANfunctionID_ItemIEs_specs_37 /* Additional specs */ + &asn_SPC_RANfunctionID_ItemIEs_specs_61 /* Additional specs */ }; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_229P10_tags_11[] = { +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_1920P16_tags_17[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_229P10 = { +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P16 = { "ProtocolIE-SingleContainer", "ProtocolIE-SingleContainer", &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_SingleContainer_229P10_tags_11, - sizeof(asn_DEF_ProtocolIE_SingleContainer_229P10_tags_11) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_229P10_tags_11[0]), /* 1 */ - asn_DEF_ProtocolIE_SingleContainer_229P10_tags_11, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_SingleContainer_229P10_tags_11) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_229P10_tags_11[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_1920P16_tags_17, + sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P16_tags_17) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P16_tags_17[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_1920P16_tags_17, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P16_tags_17) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_1920P16_tags_17[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_RANfunctionIDcause_ItemIEs_41, + asn_MBR_RANfunctionIDcause_ItemIEs_65, 3, /* Elements count */ - &asn_SPC_RANfunctionIDcause_ItemIEs_specs_41 /* Additional specs */ + &asn_SPC_RANfunctionIDcause_ItemIEs_specs_65 /* Additional specs */ }; diff --git a/e2sim/src/ASN1c/ProtocolIE-SingleContainer.h b/e2sim/src/ASN1c/ProtocolIE-SingleContainer.h index 31495a1..99dd596 100644 --- a/e2sim/src/ASN1c/ProtocolIE-SingleContainer.h +++ b/e2sim/src/ASN1c/ProtocolIE-SingleContainer.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-Containers" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #ifndef _ProtocolIE_SingleContainer_H_ @@ -19,151 +19,229 @@ extern "C" { #endif /* ProtocolIE-SingleContainer */ -typedef RICaction_ToBeSetup_ItemIEs_t ProtocolIE_SingleContainer_229P0_t; -typedef RICaction_Admitted_ItemIEs_t ProtocolIE_SingleContainer_229P1_t; -typedef RICaction_NotAdmitted_ItemIEs_t ProtocolIE_SingleContainer_229P2_t; -typedef E2connectionUpdate_ItemIEs_t ProtocolIE_SingleContainer_229P3_t; -typedef E2connectionUpdateRemove_ItemIEs_t ProtocolIE_SingleContainer_229P4_t; -typedef E2connectionSetupFailed_ItemIEs_t ProtocolIE_SingleContainer_229P5_t; -typedef E2nodeComponentConfigUpdate_ItemIEs_t ProtocolIE_SingleContainer_229P6_t; -typedef E2nodeComponentConfigUpdateAck_ItemIEs_t ProtocolIE_SingleContainer_229P7_t; -typedef RANfunction_ItemIEs_t ProtocolIE_SingleContainer_229P8_t; -typedef RANfunctionID_ItemIEs_t ProtocolIE_SingleContainer_229P9_t; -typedef RANfunctionIDcause_ItemIEs_t ProtocolIE_SingleContainer_229P10_t; +typedef RICaction_ToBeSetup_ItemIEs_t ProtocolIE_SingleContainer_1920P0_t; +typedef RICaction_Admitted_ItemIEs_t ProtocolIE_SingleContainer_1920P1_t; +typedef RICaction_NotAdmitted_ItemIEs_t ProtocolIE_SingleContainer_1920P2_t; +typedef RICsubscription_withCause_ItemIEs_t ProtocolIE_SingleContainer_1920P3_t; +typedef E2connectionUpdate_ItemIEs_t ProtocolIE_SingleContainer_1920P4_t; +typedef E2connectionUpdateRemove_ItemIEs_t ProtocolIE_SingleContainer_1920P5_t; +typedef E2connectionSetupFailed_ItemIEs_t ProtocolIE_SingleContainer_1920P6_t; +typedef E2nodeComponentConfigAddition_ItemIEs_t ProtocolIE_SingleContainer_1920P7_t; +typedef E2nodeComponentConfigUpdate_ItemIEs_t ProtocolIE_SingleContainer_1920P8_t; +typedef E2nodeComponentConfigRemoval_ItemIEs_t ProtocolIE_SingleContainer_1920P9_t; +typedef E2nodeTNLassociationRemoval_ItemIEs_t ProtocolIE_SingleContainer_1920P10_t; +typedef E2nodeComponentConfigAdditionAck_ItemIEs_t ProtocolIE_SingleContainer_1920P11_t; +typedef E2nodeComponentConfigUpdateAck_ItemIEs_t ProtocolIE_SingleContainer_1920P12_t; +typedef E2nodeComponentConfigRemovalAck_ItemIEs_t ProtocolIE_SingleContainer_1920P13_t; +typedef RANfunction_ItemIEs_t ProtocolIE_SingleContainer_1920P14_t; +typedef RANfunctionID_ItemIEs_t ProtocolIE_SingleContainer_1920P15_t; +typedef RANfunctionIDcause_ItemIEs_t ProtocolIE_SingleContainer_1920P16_t; /* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_229P0; -asn_struct_free_f ProtocolIE_SingleContainer_229P0_free; -asn_struct_print_f ProtocolIE_SingleContainer_229P0_print; -asn_constr_check_f ProtocolIE_SingleContainer_229P0_constraint; -ber_type_decoder_f ProtocolIE_SingleContainer_229P0_decode_ber; -der_type_encoder_f ProtocolIE_SingleContainer_229P0_encode_der; -xer_type_decoder_f ProtocolIE_SingleContainer_229P0_decode_xer; -xer_type_encoder_f ProtocolIE_SingleContainer_229P0_encode_xer; -per_type_decoder_f ProtocolIE_SingleContainer_229P0_decode_uper; -per_type_encoder_f ProtocolIE_SingleContainer_229P0_encode_uper; -per_type_decoder_f ProtocolIE_SingleContainer_229P0_decode_aper; -per_type_encoder_f ProtocolIE_SingleContainer_229P0_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_229P1; -asn_struct_free_f ProtocolIE_SingleContainer_229P1_free; -asn_struct_print_f ProtocolIE_SingleContainer_229P1_print; -asn_constr_check_f ProtocolIE_SingleContainer_229P1_constraint; -ber_type_decoder_f ProtocolIE_SingleContainer_229P1_decode_ber; -der_type_encoder_f ProtocolIE_SingleContainer_229P1_encode_der; -xer_type_decoder_f ProtocolIE_SingleContainer_229P1_decode_xer; -xer_type_encoder_f ProtocolIE_SingleContainer_229P1_encode_xer; -per_type_decoder_f ProtocolIE_SingleContainer_229P1_decode_uper; -per_type_encoder_f ProtocolIE_SingleContainer_229P1_encode_uper; -per_type_decoder_f ProtocolIE_SingleContainer_229P1_decode_aper; -per_type_encoder_f ProtocolIE_SingleContainer_229P1_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_229P2; -asn_struct_free_f ProtocolIE_SingleContainer_229P2_free; -asn_struct_print_f ProtocolIE_SingleContainer_229P2_print; -asn_constr_check_f ProtocolIE_SingleContainer_229P2_constraint; -ber_type_decoder_f ProtocolIE_SingleContainer_229P2_decode_ber; -der_type_encoder_f ProtocolIE_SingleContainer_229P2_encode_der; -xer_type_decoder_f ProtocolIE_SingleContainer_229P2_decode_xer; -xer_type_encoder_f ProtocolIE_SingleContainer_229P2_encode_xer; -per_type_decoder_f ProtocolIE_SingleContainer_229P2_decode_uper; -per_type_encoder_f ProtocolIE_SingleContainer_229P2_encode_uper; -per_type_decoder_f ProtocolIE_SingleContainer_229P2_decode_aper; -per_type_encoder_f ProtocolIE_SingleContainer_229P2_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_229P3; -asn_struct_free_f ProtocolIE_SingleContainer_229P3_free; -asn_struct_print_f ProtocolIE_SingleContainer_229P3_print; -asn_constr_check_f ProtocolIE_SingleContainer_229P3_constraint; -ber_type_decoder_f ProtocolIE_SingleContainer_229P3_decode_ber; -der_type_encoder_f ProtocolIE_SingleContainer_229P3_encode_der; -xer_type_decoder_f ProtocolIE_SingleContainer_229P3_decode_xer; -xer_type_encoder_f ProtocolIE_SingleContainer_229P3_encode_xer; -per_type_decoder_f ProtocolIE_SingleContainer_229P3_decode_uper; -per_type_encoder_f ProtocolIE_SingleContainer_229P3_encode_uper; -per_type_decoder_f ProtocolIE_SingleContainer_229P3_decode_aper; -per_type_encoder_f ProtocolIE_SingleContainer_229P3_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_229P4; -asn_struct_free_f ProtocolIE_SingleContainer_229P4_free; -asn_struct_print_f ProtocolIE_SingleContainer_229P4_print; -asn_constr_check_f ProtocolIE_SingleContainer_229P4_constraint; -ber_type_decoder_f ProtocolIE_SingleContainer_229P4_decode_ber; -der_type_encoder_f ProtocolIE_SingleContainer_229P4_encode_der; -xer_type_decoder_f ProtocolIE_SingleContainer_229P4_decode_xer; -xer_type_encoder_f ProtocolIE_SingleContainer_229P4_encode_xer; -per_type_decoder_f ProtocolIE_SingleContainer_229P4_decode_uper; -per_type_encoder_f ProtocolIE_SingleContainer_229P4_encode_uper; -per_type_decoder_f ProtocolIE_SingleContainer_229P4_decode_aper; -per_type_encoder_f ProtocolIE_SingleContainer_229P4_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_229P5; -asn_struct_free_f ProtocolIE_SingleContainer_229P5_free; -asn_struct_print_f ProtocolIE_SingleContainer_229P5_print; -asn_constr_check_f ProtocolIE_SingleContainer_229P5_constraint; -ber_type_decoder_f ProtocolIE_SingleContainer_229P5_decode_ber; -der_type_encoder_f ProtocolIE_SingleContainer_229P5_encode_der; -xer_type_decoder_f ProtocolIE_SingleContainer_229P5_decode_xer; -xer_type_encoder_f ProtocolIE_SingleContainer_229P5_encode_xer; -per_type_decoder_f ProtocolIE_SingleContainer_229P5_decode_uper; -per_type_encoder_f ProtocolIE_SingleContainer_229P5_encode_uper; -per_type_decoder_f ProtocolIE_SingleContainer_229P5_decode_aper; -per_type_encoder_f ProtocolIE_SingleContainer_229P5_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_229P6; -asn_struct_free_f ProtocolIE_SingleContainer_229P6_free; -asn_struct_print_f ProtocolIE_SingleContainer_229P6_print; -asn_constr_check_f ProtocolIE_SingleContainer_229P6_constraint; -ber_type_decoder_f ProtocolIE_SingleContainer_229P6_decode_ber; -der_type_encoder_f ProtocolIE_SingleContainer_229P6_encode_der; -xer_type_decoder_f ProtocolIE_SingleContainer_229P6_decode_xer; -xer_type_encoder_f ProtocolIE_SingleContainer_229P6_encode_xer; -per_type_decoder_f ProtocolIE_SingleContainer_229P6_decode_uper; -per_type_encoder_f ProtocolIE_SingleContainer_229P6_encode_uper; -per_type_decoder_f ProtocolIE_SingleContainer_229P6_decode_aper; -per_type_encoder_f ProtocolIE_SingleContainer_229P6_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_229P7; -asn_struct_free_f ProtocolIE_SingleContainer_229P7_free; -asn_struct_print_f ProtocolIE_SingleContainer_229P7_print; -asn_constr_check_f ProtocolIE_SingleContainer_229P7_constraint; -ber_type_decoder_f ProtocolIE_SingleContainer_229P7_decode_ber; -der_type_encoder_f ProtocolIE_SingleContainer_229P7_encode_der; -xer_type_decoder_f ProtocolIE_SingleContainer_229P7_decode_xer; -xer_type_encoder_f ProtocolIE_SingleContainer_229P7_encode_xer; -per_type_decoder_f ProtocolIE_SingleContainer_229P7_decode_uper; -per_type_encoder_f ProtocolIE_SingleContainer_229P7_encode_uper; -per_type_decoder_f ProtocolIE_SingleContainer_229P7_decode_aper; -per_type_encoder_f ProtocolIE_SingleContainer_229P7_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_229P8; -asn_struct_free_f ProtocolIE_SingleContainer_229P8_free; -asn_struct_print_f ProtocolIE_SingleContainer_229P8_print; -asn_constr_check_f ProtocolIE_SingleContainer_229P8_constraint; -ber_type_decoder_f ProtocolIE_SingleContainer_229P8_decode_ber; -der_type_encoder_f ProtocolIE_SingleContainer_229P8_encode_der; -xer_type_decoder_f ProtocolIE_SingleContainer_229P8_decode_xer; -xer_type_encoder_f ProtocolIE_SingleContainer_229P8_encode_xer; -per_type_decoder_f ProtocolIE_SingleContainer_229P8_decode_uper; -per_type_encoder_f ProtocolIE_SingleContainer_229P8_encode_uper; -per_type_decoder_f ProtocolIE_SingleContainer_229P8_decode_aper; -per_type_encoder_f ProtocolIE_SingleContainer_229P8_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_229P9; -asn_struct_free_f ProtocolIE_SingleContainer_229P9_free; -asn_struct_print_f ProtocolIE_SingleContainer_229P9_print; -asn_constr_check_f ProtocolIE_SingleContainer_229P9_constraint; -ber_type_decoder_f ProtocolIE_SingleContainer_229P9_decode_ber; -der_type_encoder_f ProtocolIE_SingleContainer_229P9_encode_der; -xer_type_decoder_f ProtocolIE_SingleContainer_229P9_decode_xer; -xer_type_encoder_f ProtocolIE_SingleContainer_229P9_encode_xer; -per_type_decoder_f ProtocolIE_SingleContainer_229P9_decode_uper; -per_type_encoder_f ProtocolIE_SingleContainer_229P9_encode_uper; -per_type_decoder_f ProtocolIE_SingleContainer_229P9_decode_aper; -per_type_encoder_f ProtocolIE_SingleContainer_229P9_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_229P10; -asn_struct_free_f ProtocolIE_SingleContainer_229P10_free; -asn_struct_print_f ProtocolIE_SingleContainer_229P10_print; -asn_constr_check_f ProtocolIE_SingleContainer_229P10_constraint; -ber_type_decoder_f ProtocolIE_SingleContainer_229P10_decode_ber; -der_type_encoder_f ProtocolIE_SingleContainer_229P10_encode_der; -xer_type_decoder_f ProtocolIE_SingleContainer_229P10_decode_xer; -xer_type_encoder_f ProtocolIE_SingleContainer_229P10_encode_xer; -per_type_decoder_f ProtocolIE_SingleContainer_229P10_decode_uper; -per_type_encoder_f ProtocolIE_SingleContainer_229P10_encode_uper; -per_type_decoder_f ProtocolIE_SingleContainer_229P10_decode_aper; -per_type_encoder_f ProtocolIE_SingleContainer_229P10_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P0; +asn_struct_free_f ProtocolIE_SingleContainer_1920P0_free; +asn_struct_print_f ProtocolIE_SingleContainer_1920P0_print; +asn_constr_check_f ProtocolIE_SingleContainer_1920P0_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_1920P0_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_1920P0_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_1920P0_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_1920P0_encode_xer; +per_type_decoder_f ProtocolIE_SingleContainer_1920P0_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_1920P0_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_1920P0_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_1920P0_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P1; +asn_struct_free_f ProtocolIE_SingleContainer_1920P1_free; +asn_struct_print_f ProtocolIE_SingleContainer_1920P1_print; +asn_constr_check_f ProtocolIE_SingleContainer_1920P1_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_1920P1_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_1920P1_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_1920P1_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_1920P1_encode_xer; +per_type_decoder_f ProtocolIE_SingleContainer_1920P1_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_1920P1_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_1920P1_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_1920P1_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P2; +asn_struct_free_f ProtocolIE_SingleContainer_1920P2_free; +asn_struct_print_f ProtocolIE_SingleContainer_1920P2_print; +asn_constr_check_f ProtocolIE_SingleContainer_1920P2_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_1920P2_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_1920P2_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_1920P2_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_1920P2_encode_xer; +per_type_decoder_f ProtocolIE_SingleContainer_1920P2_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_1920P2_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_1920P2_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_1920P2_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P3; +asn_struct_free_f ProtocolIE_SingleContainer_1920P3_free; +asn_struct_print_f ProtocolIE_SingleContainer_1920P3_print; +asn_constr_check_f ProtocolIE_SingleContainer_1920P3_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_1920P3_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_1920P3_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_1920P3_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_1920P3_encode_xer; +per_type_decoder_f ProtocolIE_SingleContainer_1920P3_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_1920P3_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_1920P3_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_1920P3_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P4; +asn_struct_free_f ProtocolIE_SingleContainer_1920P4_free; +asn_struct_print_f ProtocolIE_SingleContainer_1920P4_print; +asn_constr_check_f ProtocolIE_SingleContainer_1920P4_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_1920P4_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_1920P4_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_1920P4_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_1920P4_encode_xer; +per_type_decoder_f ProtocolIE_SingleContainer_1920P4_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_1920P4_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_1920P4_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_1920P4_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P5; +asn_struct_free_f ProtocolIE_SingleContainer_1920P5_free; +asn_struct_print_f ProtocolIE_SingleContainer_1920P5_print; +asn_constr_check_f ProtocolIE_SingleContainer_1920P5_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_1920P5_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_1920P5_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_1920P5_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_1920P5_encode_xer; +per_type_decoder_f ProtocolIE_SingleContainer_1920P5_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_1920P5_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_1920P5_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_1920P5_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P6; +asn_struct_free_f ProtocolIE_SingleContainer_1920P6_free; +asn_struct_print_f ProtocolIE_SingleContainer_1920P6_print; +asn_constr_check_f ProtocolIE_SingleContainer_1920P6_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_1920P6_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_1920P6_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_1920P6_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_1920P6_encode_xer; +per_type_decoder_f ProtocolIE_SingleContainer_1920P6_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_1920P6_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_1920P6_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_1920P6_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P7; +asn_struct_free_f ProtocolIE_SingleContainer_1920P7_free; +asn_struct_print_f ProtocolIE_SingleContainer_1920P7_print; +asn_constr_check_f ProtocolIE_SingleContainer_1920P7_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_1920P7_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_1920P7_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_1920P7_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_1920P7_encode_xer; +per_type_decoder_f ProtocolIE_SingleContainer_1920P7_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_1920P7_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_1920P7_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_1920P7_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P8; +asn_struct_free_f ProtocolIE_SingleContainer_1920P8_free; +asn_struct_print_f ProtocolIE_SingleContainer_1920P8_print; +asn_constr_check_f ProtocolIE_SingleContainer_1920P8_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_1920P8_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_1920P8_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_1920P8_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_1920P8_encode_xer; +per_type_decoder_f ProtocolIE_SingleContainer_1920P8_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_1920P8_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_1920P8_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_1920P8_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P9; +asn_struct_free_f ProtocolIE_SingleContainer_1920P9_free; +asn_struct_print_f ProtocolIE_SingleContainer_1920P9_print; +asn_constr_check_f ProtocolIE_SingleContainer_1920P9_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_1920P9_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_1920P9_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_1920P9_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_1920P9_encode_xer; +per_type_decoder_f ProtocolIE_SingleContainer_1920P9_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_1920P9_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_1920P9_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_1920P9_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P10; +asn_struct_free_f ProtocolIE_SingleContainer_1920P10_free; +asn_struct_print_f ProtocolIE_SingleContainer_1920P10_print; +asn_constr_check_f ProtocolIE_SingleContainer_1920P10_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_1920P10_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_1920P10_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_1920P10_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_1920P10_encode_xer; +per_type_decoder_f ProtocolIE_SingleContainer_1920P10_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_1920P10_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_1920P10_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_1920P10_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P11; +asn_struct_free_f ProtocolIE_SingleContainer_1920P11_free; +asn_struct_print_f ProtocolIE_SingleContainer_1920P11_print; +asn_constr_check_f ProtocolIE_SingleContainer_1920P11_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_1920P11_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_1920P11_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_1920P11_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_1920P11_encode_xer; +per_type_decoder_f ProtocolIE_SingleContainer_1920P11_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_1920P11_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_1920P11_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_1920P11_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P12; +asn_struct_free_f ProtocolIE_SingleContainer_1920P12_free; +asn_struct_print_f ProtocolIE_SingleContainer_1920P12_print; +asn_constr_check_f ProtocolIE_SingleContainer_1920P12_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_1920P12_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_1920P12_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_1920P12_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_1920P12_encode_xer; +per_type_decoder_f ProtocolIE_SingleContainer_1920P12_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_1920P12_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_1920P12_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_1920P12_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P13; +asn_struct_free_f ProtocolIE_SingleContainer_1920P13_free; +asn_struct_print_f ProtocolIE_SingleContainer_1920P13_print; +asn_constr_check_f ProtocolIE_SingleContainer_1920P13_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_1920P13_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_1920P13_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_1920P13_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_1920P13_encode_xer; +per_type_decoder_f ProtocolIE_SingleContainer_1920P13_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_1920P13_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_1920P13_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_1920P13_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P14; +asn_struct_free_f ProtocolIE_SingleContainer_1920P14_free; +asn_struct_print_f ProtocolIE_SingleContainer_1920P14_print; +asn_constr_check_f ProtocolIE_SingleContainer_1920P14_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_1920P14_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_1920P14_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_1920P14_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_1920P14_encode_xer; +per_type_decoder_f ProtocolIE_SingleContainer_1920P14_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_1920P14_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_1920P14_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_1920P14_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P15; +asn_struct_free_f ProtocolIE_SingleContainer_1920P15_free; +asn_struct_print_f ProtocolIE_SingleContainer_1920P15_print; +asn_constr_check_f ProtocolIE_SingleContainer_1920P15_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_1920P15_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_1920P15_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_1920P15_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_1920P15_encode_xer; +per_type_decoder_f ProtocolIE_SingleContainer_1920P15_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_1920P15_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_1920P15_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_1920P15_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1920P16; +asn_struct_free_f ProtocolIE_SingleContainer_1920P16_free; +asn_struct_print_f ProtocolIE_SingleContainer_1920P16_print; +asn_constr_check_f ProtocolIE_SingleContainer_1920P16_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_1920P16_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_1920P16_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_1920P16_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_1920P16_encode_xer; +per_type_decoder_f ProtocolIE_SingleContainer_1920P16_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_1920P16_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_1920P16_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_1920P16_encode_aper; #ifdef __cplusplus } diff --git a/e2sim/src/ASN1c/RANfunction-Item.c b/e2sim/src/ASN1c/RANfunction-Item.c index dbc136b..9b52991 100644 --- a/e2sim/src/ASN1c/RANfunction-Item.c +++ b/e2sim/src/ASN1c/RANfunction-Item.c @@ -1,13 +1,13 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #include "RANfunction-Item.h" -asn_TYPE_member_t asn_MBR_RANfunction_Item_1[] = { +static asn_TYPE_member_t asn_MBR_RANfunction_Item_1[] = { { ATF_NOFLAGS, 0, offsetof(struct RANfunction_Item, ranFunctionID), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ @@ -35,7 +35,7 @@ asn_TYPE_member_t asn_MBR_RANfunction_Item_1[] = { 0, 0, /* No default value */ "ranFunctionRevision" }, - { ATF_POINTER, 1, offsetof(struct RANfunction_Item, ranFunctionOID), + { ATF_NOFLAGS, 0, offsetof(struct RANfunction_Item, ranFunctionOID), (ASN_TAG_CLASS_CONTEXT | (3 << 2)), -1, /* IMPLICIT tag at current level */ &asn_DEF_RANfunctionOID, @@ -45,7 +45,6 @@ asn_TYPE_member_t asn_MBR_RANfunction_Item_1[] = { "ranFunctionOID" }, }; -static const int asn_MAP_RANfunction_Item_oms_1[] = { 3 }; static const ber_tlv_tag_t asn_DEF_RANfunction_Item_tags_1[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; @@ -55,14 +54,13 @@ static const asn_TYPE_tag2member_t asn_MAP_RANfunction_Item_tag2el_1[] = { { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* ranFunctionRevision */ { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* ranFunctionOID */ }; -asn_SEQUENCE_specifics_t asn_SPC_RANfunction_Item_specs_1 = { +static asn_SEQUENCE_specifics_t asn_SPC_RANfunction_Item_specs_1 = { sizeof(struct RANfunction_Item), offsetof(struct RANfunction_Item, _asn_ctx), asn_MAP_RANfunction_Item_tag2el_1, 4, /* Count of tags in the map */ - asn_MAP_RANfunction_Item_oms_1, /* Optional members */ - 0, 1, /* Root/Additions */ - 3, /* First extension addition */ + 0, 0, 0, /* Optional elements (not needed) */ + 4, /* First extension addition */ }; asn_TYPE_descriptor_t asn_DEF_RANfunction_Item = { "RANfunction-Item", diff --git a/e2sim/src/ASN1c/RANfunction-Item.h b/e2sim/src/ASN1c/RANfunction-Item.h index 82e0f45..172e34f 100644 --- a/e2sim/src/ASN1c/RANfunction-Item.h +++ b/e2sim/src/ASN1c/RANfunction-Item.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #ifndef _RANfunction_Item_H_ @@ -27,11 +27,11 @@ typedef struct RANfunction_Item { RANfunctionID_t ranFunctionID; RANfunctionDefinition_t ranFunctionDefinition; RANfunctionRevision_t ranFunctionRevision; + RANfunctionOID_t ranFunctionOID; /* * This type is extensible, * possible extensions are below. */ - RANfunctionOID_t *ranFunctionOID; /* OPTIONAL */ /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; @@ -39,8 +39,6 @@ typedef struct RANfunction_Item { /* Implementation */ extern asn_TYPE_descriptor_t asn_DEF_RANfunction_Item; -extern asn_SEQUENCE_specifics_t asn_SPC_RANfunction_Item_specs_1; -extern asn_TYPE_member_t asn_MBR_RANfunction_Item_1[4]; #ifdef __cplusplus } diff --git a/e2sim/src/ASN1c/RANfunctionDefinition.c b/e2sim/src/ASN1c/RANfunctionDefinition.c index 542b359..0243686 100644 --- a/e2sim/src/ASN1c/RANfunctionDefinition.c +++ b/e2sim/src/ASN1c/RANfunctionDefinition.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #include "RANfunctionDefinition.h" diff --git a/e2sim/src/ASN1c/RANfunctionDefinition.h b/e2sim/src/ASN1c/RANfunctionDefinition.h index 28b23cd..c10ca55 100644 --- a/e2sim/src/ASN1c/RANfunctionDefinition.h +++ b/e2sim/src/ASN1c/RANfunctionDefinition.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #ifndef _RANfunctionDefinition_H_ diff --git a/e2sim/src/ASN1c/RANfunctionID-Item.c b/e2sim/src/ASN1c/RANfunctionID-Item.c index adcb862..9b88717 100644 --- a/e2sim/src/ASN1c/RANfunctionID-Item.c +++ b/e2sim/src/ASN1c/RANfunctionID-Item.c @@ -1,13 +1,13 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #include "RANfunctionID-Item.h" -asn_TYPE_member_t asn_MBR_RANfunctionID_Item_1[] = { +static asn_TYPE_member_t asn_MBR_RANfunctionID_Item_1[] = { { ATF_NOFLAGS, 0, offsetof(struct RANfunctionID_Item, ranFunctionID), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ @@ -34,7 +34,7 @@ static const asn_TYPE_tag2member_t asn_MAP_RANfunctionID_Item_tag2el_1[] = { { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ranFunctionID */ { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ranFunctionRevision */ }; -asn_SEQUENCE_specifics_t asn_SPC_RANfunctionID_Item_specs_1 = { +static asn_SEQUENCE_specifics_t asn_SPC_RANfunctionID_Item_specs_1 = { sizeof(struct RANfunctionID_Item), offsetof(struct RANfunctionID_Item, _asn_ctx), asn_MAP_RANfunctionID_Item_tag2el_1, diff --git a/e2sim/src/ASN1c/RANfunctionID-Item.h b/e2sim/src/ASN1c/RANfunctionID-Item.h index 47782f0..e73fc37 100644 --- a/e2sim/src/ASN1c/RANfunctionID-Item.h +++ b/e2sim/src/ASN1c/RANfunctionID-Item.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #ifndef _RANfunctionID_Item_H_ @@ -35,8 +35,6 @@ typedef struct RANfunctionID_Item { /* Implementation */ extern asn_TYPE_descriptor_t asn_DEF_RANfunctionID_Item; -extern asn_SEQUENCE_specifics_t asn_SPC_RANfunctionID_Item_specs_1; -extern asn_TYPE_member_t asn_MBR_RANfunctionID_Item_1[2]; #ifdef __cplusplus } diff --git a/e2sim/src/ASN1c/RANfunctionID.c b/e2sim/src/ASN1c/RANfunctionID.c index f778b48..21e1cb9 100644 --- a/e2sim/src/ASN1c/RANfunctionID.c +++ b/e2sim/src/ASN1c/RANfunctionID.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #include "RANfunctionID.h" diff --git a/e2sim/src/ASN1c/RANfunctionID.h b/e2sim/src/ASN1c/RANfunctionID.h index 26676a5..840a432 100644 --- a/e2sim/src/ASN1c/RANfunctionID.h +++ b/e2sim/src/ASN1c/RANfunctionID.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #ifndef _RANfunctionID_H_ diff --git a/e2sim/src/ASN1c/RANfunctionIDcause-Item.c b/e2sim/src/ASN1c/RANfunctionIDcause-Item.c index 0b40b89..c35e8b6 100644 --- a/e2sim/src/ASN1c/RANfunctionIDcause-Item.c +++ b/e2sim/src/ASN1c/RANfunctionIDcause-Item.c @@ -1,13 +1,13 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #include "RANfunctionIDcause-Item.h" -asn_TYPE_member_t asn_MBR_RANfunctionIDcause_Item_1[] = { +static asn_TYPE_member_t asn_MBR_RANfunctionIDcause_Item_1[] = { { ATF_NOFLAGS, 0, offsetof(struct RANfunctionIDcause_Item, ranFunctionID), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ @@ -34,7 +34,7 @@ static const asn_TYPE_tag2member_t asn_MAP_RANfunctionIDcause_Item_tag2el_1[] = { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ranFunctionID */ { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* cause */ }; -asn_SEQUENCE_specifics_t asn_SPC_RANfunctionIDcause_Item_specs_1 = { +static asn_SEQUENCE_specifics_t asn_SPC_RANfunctionIDcause_Item_specs_1 = { sizeof(struct RANfunctionIDcause_Item), offsetof(struct RANfunctionIDcause_Item, _asn_ctx), asn_MAP_RANfunctionIDcause_Item_tag2el_1, diff --git a/e2sim/src/ASN1c/RANfunctionIDcause-Item.h b/e2sim/src/ASN1c/RANfunctionIDcause-Item.h index d83f497..e1a6da2 100644 --- a/e2sim/src/ASN1c/RANfunctionIDcause-Item.h +++ b/e2sim/src/ASN1c/RANfunctionIDcause-Item.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #ifndef _RANfunctionIDcause_Item_H_ @@ -35,8 +35,6 @@ typedef struct RANfunctionIDcause_Item { /* Implementation */ extern asn_TYPE_descriptor_t asn_DEF_RANfunctionIDcause_Item; -extern asn_SEQUENCE_specifics_t asn_SPC_RANfunctionIDcause_Item_specs_1; -extern asn_TYPE_member_t asn_MBR_RANfunctionIDcause_Item_1[2]; #ifdef __cplusplus } diff --git a/e2sim/src/ASN1c/RANfunctionOID.c b/e2sim/src/ASN1c/RANfunctionOID.c index aa775f8..160e518 100644 --- a/e2sim/src/ASN1c/RANfunctionOID.c +++ b/e2sim/src/ASN1c/RANfunctionOID.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #include "RANfunctionOID.h" diff --git a/e2sim/src/ASN1c/RANfunctionOID.h b/e2sim/src/ASN1c/RANfunctionOID.h index b7defa5..ccf407e 100644 --- a/e2sim/src/ASN1c/RANfunctionOID.h +++ b/e2sim/src/ASN1c/RANfunctionOID.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #ifndef _RANfunctionOID_H_ diff --git a/e2sim/src/ASN1c/RANfunctionRevision.c b/e2sim/src/ASN1c/RANfunctionRevision.c index f9398aa..c10b205 100644 --- a/e2sim/src/ASN1c/RANfunctionRevision.c +++ b/e2sim/src/ASN1c/RANfunctionRevision.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #include "RANfunctionRevision.h" diff --git a/e2sim/src/ASN1c/RANfunctionRevision.h b/e2sim/src/ASN1c/RANfunctionRevision.h index 99953bf..bfc2129 100644 --- a/e2sim/src/ASN1c/RANfunctionRevision.h +++ b/e2sim/src/ASN1c/RANfunctionRevision.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #ifndef _RANfunctionRevision_H_ diff --git a/e2sim/src/ASN1c/RANfunctions-List.c b/e2sim/src/ASN1c/RANfunctions-List.c index f3b5419..4c0806b 100644 --- a/e2sim/src/ASN1c/RANfunctions-List.c +++ b/e2sim/src/ASN1c/RANfunctions-List.c @@ -1,23 +1,23 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #include "RANfunctions-List.h" #include "ProtocolIE-SingleContainer.h" -asn_per_constraints_t asn_PER_type_RANfunctions_List_constr_1 CC_NOTUSED = { +static asn_per_constraints_t asn_PER_type_RANfunctions_List_constr_1 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 9, 9, 0, 256 } /* (SIZE(0..256)) */, + { APC_CONSTRAINED, 8, 8, 1, 256 } /* (SIZE(1..256)) */, 0, 0 /* No PER value map */ }; -asn_TYPE_member_t asn_MBR_RANfunctions_List_1[] = { +static asn_TYPE_member_t asn_MBR_RANfunctions_List_1[] = { { ATF_POINTER, 0, 0, (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, - &asn_DEF_ProtocolIE_SingleContainer_229P8, + &asn_DEF_ProtocolIE_SingleContainer_1920P14, 0, { 0, 0, 0 }, 0, 0, /* No default value */ @@ -27,7 +27,7 @@ asn_TYPE_member_t asn_MBR_RANfunctions_List_1[] = { static const ber_tlv_tag_t asn_DEF_RANfunctions_List_tags_1[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_SET_OF_specifics_t asn_SPC_RANfunctions_List_specs_1 = { +static asn_SET_OF_specifics_t asn_SPC_RANfunctions_List_specs_1 = { sizeof(struct RANfunctions_List), offsetof(struct RANfunctions_List, _asn_ctx), 0, /* XER encoding is XMLDelimitedItemList */ diff --git a/e2sim/src/ASN1c/RANfunctions-List.h b/e2sim/src/ASN1c/RANfunctions-List.h index 0a8b12d..d517ed5 100644 --- a/e2sim/src/ASN1c/RANfunctions-List.h +++ b/e2sim/src/ASN1c/RANfunctions-List.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #ifndef _RANfunctions_List_H_ @@ -32,9 +32,6 @@ typedef struct RANfunctions_List { /* Implementation */ extern asn_TYPE_descriptor_t asn_DEF_RANfunctions_List; -extern asn_SET_OF_specifics_t asn_SPC_RANfunctions_List_specs_1; -extern asn_TYPE_member_t asn_MBR_RANfunctions_List_1[1]; -extern asn_per_constraints_t asn_PER_type_RANfunctions_List_constr_1; #ifdef __cplusplus } diff --git a/e2sim/src/ASN1c/RANfunctionsID-List.c b/e2sim/src/ASN1c/RANfunctionsID-List.c index 204c8af..4e10ee4 100644 --- a/e2sim/src/ASN1c/RANfunctionsID-List.c +++ b/e2sim/src/ASN1c/RANfunctionsID-List.c @@ -1,23 +1,23 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #include "RANfunctionsID-List.h" #include "ProtocolIE-SingleContainer.h" -asn_per_constraints_t asn_PER_type_RANfunctionsID_List_constr_1 CC_NOTUSED = { +static asn_per_constraints_t asn_PER_type_RANfunctionsID_List_constr_1 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 9, 9, 0, 256 } /* (SIZE(0..256)) */, + { APC_CONSTRAINED, 8, 8, 1, 256 } /* (SIZE(1..256)) */, 0, 0 /* No PER value map */ }; -asn_TYPE_member_t asn_MBR_RANfunctionsID_List_1[] = { +static asn_TYPE_member_t asn_MBR_RANfunctionsID_List_1[] = { { ATF_POINTER, 0, 0, (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, - &asn_DEF_ProtocolIE_SingleContainer_229P9, + &asn_DEF_ProtocolIE_SingleContainer_1920P15, 0, { 0, 0, 0 }, 0, 0, /* No default value */ @@ -27,7 +27,7 @@ asn_TYPE_member_t asn_MBR_RANfunctionsID_List_1[] = { static const ber_tlv_tag_t asn_DEF_RANfunctionsID_List_tags_1[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_SET_OF_specifics_t asn_SPC_RANfunctionsID_List_specs_1 = { +static asn_SET_OF_specifics_t asn_SPC_RANfunctionsID_List_specs_1 = { sizeof(struct RANfunctionsID_List), offsetof(struct RANfunctionsID_List, _asn_ctx), 0, /* XER encoding is XMLDelimitedItemList */ diff --git a/e2sim/src/ASN1c/RANfunctionsID-List.h b/e2sim/src/ASN1c/RANfunctionsID-List.h index eaba417..a4b9ed3 100644 --- a/e2sim/src/ASN1c/RANfunctionsID-List.h +++ b/e2sim/src/ASN1c/RANfunctionsID-List.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #ifndef _RANfunctionsID_List_H_ @@ -32,9 +32,6 @@ typedef struct RANfunctionsID_List { /* Implementation */ extern asn_TYPE_descriptor_t asn_DEF_RANfunctionsID_List; -extern asn_SET_OF_specifics_t asn_SPC_RANfunctionsID_List_specs_1; -extern asn_TYPE_member_t asn_MBR_RANfunctionsID_List_1[1]; -extern asn_per_constraints_t asn_PER_type_RANfunctionsID_List_constr_1; #ifdef __cplusplus } diff --git a/e2sim/src/ASN1c/RANfunctionsIDcause-List.c b/e2sim/src/ASN1c/RANfunctionsIDcause-List.c index 02c12f5..4a19b69 100644 --- a/e2sim/src/ASN1c/RANfunctionsIDcause-List.c +++ b/e2sim/src/ASN1c/RANfunctionsIDcause-List.c @@ -1,23 +1,23 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #include "RANfunctionsIDcause-List.h" #include "ProtocolIE-SingleContainer.h" -asn_per_constraints_t asn_PER_type_RANfunctionsIDcause_List_constr_1 CC_NOTUSED = { +static asn_per_constraints_t asn_PER_type_RANfunctionsIDcause_List_constr_1 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 9, 9, 0, 256 } /* (SIZE(0..256)) */, + { APC_CONSTRAINED, 8, 8, 1, 256 } /* (SIZE(1..256)) */, 0, 0 /* No PER value map */ }; -asn_TYPE_member_t asn_MBR_RANfunctionsIDcause_List_1[] = { +static asn_TYPE_member_t asn_MBR_RANfunctionsIDcause_List_1[] = { { ATF_POINTER, 0, 0, (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, - &asn_DEF_ProtocolIE_SingleContainer_229P10, + &asn_DEF_ProtocolIE_SingleContainer_1920P16, 0, { 0, 0, 0 }, 0, 0, /* No default value */ @@ -27,7 +27,7 @@ asn_TYPE_member_t asn_MBR_RANfunctionsIDcause_List_1[] = { static const ber_tlv_tag_t asn_DEF_RANfunctionsIDcause_List_tags_1[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_SET_OF_specifics_t asn_SPC_RANfunctionsIDcause_List_specs_1 = { +static asn_SET_OF_specifics_t asn_SPC_RANfunctionsIDcause_List_specs_1 = { sizeof(struct RANfunctionsIDcause_List), offsetof(struct RANfunctionsIDcause_List, _asn_ctx), 0, /* XER encoding is XMLDelimitedItemList */ diff --git a/e2sim/src/ASN1c/RANfunctionsIDcause-List.h b/e2sim/src/ASN1c/RANfunctionsIDcause-List.h index 144b852..c960ffb 100644 --- a/e2sim/src/ASN1c/RANfunctionsIDcause-List.h +++ b/e2sim/src/ASN1c/RANfunctionsIDcause-List.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #ifndef _RANfunctionsIDcause_List_H_ @@ -32,9 +32,6 @@ typedef struct RANfunctionsIDcause_List { /* Implementation */ extern asn_TYPE_descriptor_t asn_DEF_RANfunctionsIDcause_List; -extern asn_SET_OF_specifics_t asn_SPC_RANfunctionsIDcause_List_specs_1; -extern asn_TYPE_member_t asn_MBR_RANfunctionsIDcause_List_1[1]; -extern asn_per_constraints_t asn_PER_type_RANfunctionsIDcause_List_constr_1; #ifdef __cplusplus } diff --git a/e2sim/src/ASN1c/RICaction-Admitted-Item.c b/e2sim/src/ASN1c/RICaction-Admitted-Item.c index 5264f97..dbedb03 100644 --- a/e2sim/src/ASN1c/RICaction-Admitted-Item.c +++ b/e2sim/src/ASN1c/RICaction-Admitted-Item.c @@ -1,13 +1,13 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #include "RICaction-Admitted-Item.h" -asn_TYPE_member_t asn_MBR_RICaction_Admitted_Item_1[] = { +static asn_TYPE_member_t asn_MBR_RICaction_Admitted_Item_1[] = { { ATF_NOFLAGS, 0, offsetof(struct RICaction_Admitted_Item, ricActionID), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ @@ -24,7 +24,7 @@ static const ber_tlv_tag_t asn_DEF_RICaction_Admitted_Item_tags_1[] = { static const asn_TYPE_tag2member_t asn_MAP_RICaction_Admitted_Item_tag2el_1[] = { { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* ricActionID */ }; -asn_SEQUENCE_specifics_t asn_SPC_RICaction_Admitted_Item_specs_1 = { +static asn_SEQUENCE_specifics_t asn_SPC_RICaction_Admitted_Item_specs_1 = { sizeof(struct RICaction_Admitted_Item), offsetof(struct RICaction_Admitted_Item, _asn_ctx), asn_MAP_RICaction_Admitted_Item_tag2el_1, diff --git a/e2sim/src/ASN1c/RICaction-Admitted-Item.h b/e2sim/src/ASN1c/RICaction-Admitted-Item.h index 763fb6b..c2d204c 100644 --- a/e2sim/src/ASN1c/RICaction-Admitted-Item.h +++ b/e2sim/src/ASN1c/RICaction-Admitted-Item.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #ifndef _RICaction_Admitted_Item_H_ @@ -33,8 +33,6 @@ typedef struct RICaction_Admitted_Item { /* Implementation */ extern asn_TYPE_descriptor_t asn_DEF_RICaction_Admitted_Item; -extern asn_SEQUENCE_specifics_t asn_SPC_RICaction_Admitted_Item_specs_1; -extern asn_TYPE_member_t asn_MBR_RICaction_Admitted_Item_1[1]; #ifdef __cplusplus } diff --git a/e2sim/src/ASN1c/RICaction-Admitted-List.c b/e2sim/src/ASN1c/RICaction-Admitted-List.c index c0ac7aa..de86657 100644 --- a/e2sim/src/ASN1c/RICaction-Admitted-List.c +++ b/e2sim/src/ASN1c/RICaction-Admitted-List.c @@ -1,23 +1,23 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #include "RICaction-Admitted-List.h" #include "ProtocolIE-SingleContainer.h" -asn_per_constraints_t asn_PER_type_RICaction_Admitted_List_constr_1 CC_NOTUSED = { +static asn_per_constraints_t asn_PER_type_RICaction_Admitted_List_constr_1 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 4, 4, 1, 16 } /* (SIZE(1..16)) */, 0, 0 /* No PER value map */ }; -asn_TYPE_member_t asn_MBR_RICaction_Admitted_List_1[] = { +static asn_TYPE_member_t asn_MBR_RICaction_Admitted_List_1[] = { { ATF_POINTER, 0, 0, (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, - &asn_DEF_ProtocolIE_SingleContainer_229P1, + &asn_DEF_ProtocolIE_SingleContainer_1920P1, 0, { 0, 0, 0 }, 0, 0, /* No default value */ @@ -27,7 +27,7 @@ asn_TYPE_member_t asn_MBR_RICaction_Admitted_List_1[] = { static const ber_tlv_tag_t asn_DEF_RICaction_Admitted_List_tags_1[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_SET_OF_specifics_t asn_SPC_RICaction_Admitted_List_specs_1 = { +static asn_SET_OF_specifics_t asn_SPC_RICaction_Admitted_List_specs_1 = { sizeof(struct RICaction_Admitted_List), offsetof(struct RICaction_Admitted_List, _asn_ctx), 0, /* XER encoding is XMLDelimitedItemList */ diff --git a/e2sim/src/ASN1c/RICaction-Admitted-List.h b/e2sim/src/ASN1c/RICaction-Admitted-List.h index 1b04907..a497f03 100644 --- a/e2sim/src/ASN1c/RICaction-Admitted-List.h +++ b/e2sim/src/ASN1c/RICaction-Admitted-List.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #ifndef _RICaction_Admitted_List_H_ @@ -32,9 +32,6 @@ typedef struct RICaction_Admitted_List { /* Implementation */ extern asn_TYPE_descriptor_t asn_DEF_RICaction_Admitted_List; -extern asn_SET_OF_specifics_t asn_SPC_RICaction_Admitted_List_specs_1; -extern asn_TYPE_member_t asn_MBR_RICaction_Admitted_List_1[1]; -extern asn_per_constraints_t asn_PER_type_RICaction_Admitted_List_constr_1; #ifdef __cplusplus } diff --git a/e2sim/src/ASN1c/RICaction-NotAdmitted-Item.c b/e2sim/src/ASN1c/RICaction-NotAdmitted-Item.c index fdc9a5a..d015993 100644 --- a/e2sim/src/ASN1c/RICaction-NotAdmitted-Item.c +++ b/e2sim/src/ASN1c/RICaction-NotAdmitted-Item.c @@ -1,13 +1,13 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #include "RICaction-NotAdmitted-Item.h" -asn_TYPE_member_t asn_MBR_RICaction_NotAdmitted_Item_1[] = { +static asn_TYPE_member_t asn_MBR_RICaction_NotAdmitted_Item_1[] = { { ATF_NOFLAGS, 0, offsetof(struct RICaction_NotAdmitted_Item, ricActionID), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ @@ -34,7 +34,7 @@ static const asn_TYPE_tag2member_t asn_MAP_RICaction_NotAdmitted_Item_tag2el_1[] { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ricActionID */ { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* cause */ }; -asn_SEQUENCE_specifics_t asn_SPC_RICaction_NotAdmitted_Item_specs_1 = { +static asn_SEQUENCE_specifics_t asn_SPC_RICaction_NotAdmitted_Item_specs_1 = { sizeof(struct RICaction_NotAdmitted_Item), offsetof(struct RICaction_NotAdmitted_Item, _asn_ctx), asn_MAP_RICaction_NotAdmitted_Item_tag2el_1, diff --git a/e2sim/src/ASN1c/RICaction-NotAdmitted-Item.h b/e2sim/src/ASN1c/RICaction-NotAdmitted-Item.h index 36072ef..57dcd06 100644 --- a/e2sim/src/ASN1c/RICaction-NotAdmitted-Item.h +++ b/e2sim/src/ASN1c/RICaction-NotAdmitted-Item.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #ifndef _RICaction_NotAdmitted_Item_H_ @@ -35,8 +35,6 @@ typedef struct RICaction_NotAdmitted_Item { /* Implementation */ extern asn_TYPE_descriptor_t asn_DEF_RICaction_NotAdmitted_Item; -extern asn_SEQUENCE_specifics_t asn_SPC_RICaction_NotAdmitted_Item_specs_1; -extern asn_TYPE_member_t asn_MBR_RICaction_NotAdmitted_Item_1[2]; #ifdef __cplusplus } diff --git a/e2sim/src/ASN1c/RICaction-NotAdmitted-List.c b/e2sim/src/ASN1c/RICaction-NotAdmitted-List.c index b5681f3..c2a44b2 100644 --- a/e2sim/src/ASN1c/RICaction-NotAdmitted-List.c +++ b/e2sim/src/ASN1c/RICaction-NotAdmitted-List.c @@ -1,23 +1,23 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #include "RICaction-NotAdmitted-List.h" #include "ProtocolIE-SingleContainer.h" -asn_per_constraints_t asn_PER_type_RICaction_NotAdmitted_List_constr_1 CC_NOTUSED = { +static asn_per_constraints_t asn_PER_type_RICaction_NotAdmitted_List_constr_1 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 5, 5, 0, 16 } /* (SIZE(0..16)) */, 0, 0 /* No PER value map */ }; -asn_TYPE_member_t asn_MBR_RICaction_NotAdmitted_List_1[] = { +static asn_TYPE_member_t asn_MBR_RICaction_NotAdmitted_List_1[] = { { ATF_POINTER, 0, 0, (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, - &asn_DEF_ProtocolIE_SingleContainer_229P2, + &asn_DEF_ProtocolIE_SingleContainer_1920P2, 0, { 0, 0, 0 }, 0, 0, /* No default value */ @@ -27,7 +27,7 @@ asn_TYPE_member_t asn_MBR_RICaction_NotAdmitted_List_1[] = { static const ber_tlv_tag_t asn_DEF_RICaction_NotAdmitted_List_tags_1[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_SET_OF_specifics_t asn_SPC_RICaction_NotAdmitted_List_specs_1 = { +static asn_SET_OF_specifics_t asn_SPC_RICaction_NotAdmitted_List_specs_1 = { sizeof(struct RICaction_NotAdmitted_List), offsetof(struct RICaction_NotAdmitted_List, _asn_ctx), 0, /* XER encoding is XMLDelimitedItemList */ diff --git a/e2sim/src/ASN1c/RICaction-NotAdmitted-List.h b/e2sim/src/ASN1c/RICaction-NotAdmitted-List.h index 02f6465..3510867 100644 --- a/e2sim/src/ASN1c/RICaction-NotAdmitted-List.h +++ b/e2sim/src/ASN1c/RICaction-NotAdmitted-List.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #ifndef _RICaction_NotAdmitted_List_H_ @@ -32,9 +32,6 @@ typedef struct RICaction_NotAdmitted_List { /* Implementation */ extern asn_TYPE_descriptor_t asn_DEF_RICaction_NotAdmitted_List; -extern asn_SET_OF_specifics_t asn_SPC_RICaction_NotAdmitted_List_specs_1; -extern asn_TYPE_member_t asn_MBR_RICaction_NotAdmitted_List_1[1]; -extern asn_per_constraints_t asn_PER_type_RICaction_NotAdmitted_List_constr_1; #ifdef __cplusplus } diff --git a/e2sim/src/ASN1c/RICaction-ToBeSetup-Item.c b/e2sim/src/ASN1c/RICaction-ToBeSetup-Item.c index 42ef838..2ac74a8 100644 --- a/e2sim/src/ASN1c/RICaction-ToBeSetup-Item.c +++ b/e2sim/src/ASN1c/RICaction-ToBeSetup-Item.c @@ -1,14 +1,14 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #include "RICaction-ToBeSetup-Item.h" #include "RICsubsequentAction.h" -asn_TYPE_member_t asn_MBR_RICaction_ToBeSetup_Item_1[] = { +static asn_TYPE_member_t asn_MBR_RICaction_ToBeSetup_Item_1[] = { { ATF_NOFLAGS, 0, offsetof(struct RICaction_ToBeSetup_Item, ricActionID), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ @@ -56,7 +56,7 @@ static const asn_TYPE_tag2member_t asn_MAP_RICaction_ToBeSetup_Item_tag2el_1[] = { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* ricActionDefinition */ { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* ricSubsequentAction */ }; -asn_SEQUENCE_specifics_t asn_SPC_RICaction_ToBeSetup_Item_specs_1 = { +static asn_SEQUENCE_specifics_t asn_SPC_RICaction_ToBeSetup_Item_specs_1 = { sizeof(struct RICaction_ToBeSetup_Item), offsetof(struct RICaction_ToBeSetup_Item, _asn_ctx), asn_MAP_RICaction_ToBeSetup_Item_tag2el_1, diff --git a/e2sim/src/ASN1c/RICaction-ToBeSetup-Item.h b/e2sim/src/ASN1c/RICaction-ToBeSetup-Item.h index 1598de9..3ae5ed4 100644 --- a/e2sim/src/ASN1c/RICaction-ToBeSetup-Item.h +++ b/e2sim/src/ASN1c/RICaction-ToBeSetup-Item.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #ifndef _RICaction_ToBeSetup_Item_H_ @@ -41,8 +41,6 @@ typedef struct RICaction_ToBeSetup_Item { /* Implementation */ extern asn_TYPE_descriptor_t asn_DEF_RICaction_ToBeSetup_Item; -extern asn_SEQUENCE_specifics_t asn_SPC_RICaction_ToBeSetup_Item_specs_1; -extern asn_TYPE_member_t asn_MBR_RICaction_ToBeSetup_Item_1[4]; #ifdef __cplusplus } diff --git a/e2sim/src/ASN1c/RICactionDefinition.c b/e2sim/src/ASN1c/RICactionDefinition.c index 6a7729e..008ef4c 100644 --- a/e2sim/src/ASN1c/RICactionDefinition.c +++ b/e2sim/src/ASN1c/RICactionDefinition.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #include "RICactionDefinition.h" diff --git a/e2sim/src/ASN1c/RICactionDefinition.h b/e2sim/src/ASN1c/RICactionDefinition.h index 5a1b3a8..091bb27 100644 --- a/e2sim/src/ASN1c/RICactionDefinition.h +++ b/e2sim/src/ASN1c/RICactionDefinition.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #ifndef _RICactionDefinition_H_ diff --git a/e2sim/src/ASN1c/RICactionID.c b/e2sim/src/ASN1c/RICactionID.c index 7deb2d9..fcf3b01 100644 --- a/e2sim/src/ASN1c/RICactionID.c +++ b/e2sim/src/ASN1c/RICactionID.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #include "RICactionID.h" diff --git a/e2sim/src/ASN1c/RICactionID.h b/e2sim/src/ASN1c/RICactionID.h index 7818a7c..9c74319 100644 --- a/e2sim/src/ASN1c/RICactionID.h +++ b/e2sim/src/ASN1c/RICactionID.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #ifndef _RICactionID_H_ diff --git a/e2sim/src/ASN1c/RICactionType.c b/e2sim/src/ASN1c/RICactionType.c index 9c6814c..9ce9bd3 100644 --- a/e2sim/src/ASN1c/RICactionType.c +++ b/e2sim/src/ASN1c/RICactionType.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #include "RICactionType.h" diff --git a/e2sim/src/ASN1c/RICactionType.h b/e2sim/src/ASN1c/RICactionType.h index 08ad89d..10d4694 100644 --- a/e2sim/src/ASN1c/RICactionType.h +++ b/e2sim/src/ASN1c/RICactionType.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #ifndef _RICactionType_H_ diff --git a/e2sim/src/ASN1c/RICactions-ToBeSetup-List.c b/e2sim/src/ASN1c/RICactions-ToBeSetup-List.c index 00474c7..d79b763 100644 --- a/e2sim/src/ASN1c/RICactions-ToBeSetup-List.c +++ b/e2sim/src/ASN1c/RICactions-ToBeSetup-List.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #include "RICactions-ToBeSetup-List.h" @@ -17,7 +17,7 @@ asn_TYPE_member_t asn_MBR_RICactions_ToBeSetup_List_1[] = { { ATF_POINTER, 0, 0, (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, - &asn_DEF_ProtocolIE_SingleContainer_229P0, + &asn_DEF_ProtocolIE_SingleContainer_1920P0, 0, { 0, 0, 0 }, 0, 0, /* No default value */ diff --git a/e2sim/src/ASN1c/RICactions-ToBeSetup-List.h b/e2sim/src/ASN1c/RICactions-ToBeSetup-List.h index 391cc17..031e11f 100644 --- a/e2sim/src/ASN1c/RICactions-ToBeSetup-List.h +++ b/e2sim/src/ASN1c/RICactions-ToBeSetup-List.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #ifndef _RICactions_ToBeSetup_List_H_ diff --git a/e2sim/src/ASN1c/RICcallProcessID.c b/e2sim/src/ASN1c/RICcallProcessID.c index 847d8e5..9d655c5 100644 --- a/e2sim/src/ASN1c/RICcallProcessID.c +++ b/e2sim/src/ASN1c/RICcallProcessID.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #include "RICcallProcessID.h" diff --git a/e2sim/src/ASN1c/RICcallProcessID.h b/e2sim/src/ASN1c/RICcallProcessID.h index b3bbfc8..e50ac0e 100644 --- a/e2sim/src/ASN1c/RICcallProcessID.h +++ b/e2sim/src/ASN1c/RICcallProcessID.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #ifndef _RICcallProcessID_H_ diff --git a/e2sim/src/ASN1c/RICcontrolAckRequest.c b/e2sim/src/ASN1c/RICcontrolAckRequest.c index d7f1237..702c61c 100644 --- a/e2sim/src/ASN1c/RICcontrolAckRequest.c +++ b/e2sim/src/ASN1c/RICcontrolAckRequest.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #include "RICcontrolAckRequest.h" @@ -11,28 +11,26 @@ * This type is implemented using NativeEnumerated, * so here we adjust the DEF accordingly. */ -asn_per_constraints_t asn_PER_type_RICcontrolAckRequest_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 2 } /* (0..2,...) */, +static asn_per_constraints_t asn_PER_type_RICcontrolAckRequest_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; static const asn_INTEGER_enum_map_t asn_MAP_RICcontrolAckRequest_value2enum_1[] = { { 0, 5, "noAck" }, - { 1, 3, "ack" }, - { 2, 4, "nAck" } + { 1, 3, "ack" } /* This list is extensible */ }; static const unsigned int asn_MAP_RICcontrolAckRequest_enum2value_1[] = { 1, /* ack(1) */ - 2, /* nAck(2) */ 0 /* noAck(0) */ /* This list is extensible */ }; -const asn_INTEGER_specifics_t asn_SPC_RICcontrolAckRequest_specs_1 = { +static const asn_INTEGER_specifics_t asn_SPC_RICcontrolAckRequest_specs_1 = { asn_MAP_RICcontrolAckRequest_value2enum_1, /* "tag" => N; sorted by tag */ asn_MAP_RICcontrolAckRequest_enum2value_1, /* N => "tag"; sorted by N */ - 3, /* Number of elements in the maps */ - 4, /* Extensions before this member */ + 2, /* Number of elements in the maps */ + 3, /* Extensions before this member */ 1, /* Strict enumeration */ 0, /* Native long size */ 0 diff --git a/e2sim/src/ASN1c/RICcontrolAckRequest.h b/e2sim/src/ASN1c/RICcontrolAckRequest.h index 4f96f83..f416db3 100644 --- a/e2sim/src/ASN1c/RICcontrolAckRequest.h +++ b/e2sim/src/ASN1c/RICcontrolAckRequest.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #ifndef _RICcontrolAckRequest_H_ @@ -21,8 +21,7 @@ extern "C" { /* Dependencies */ typedef enum RICcontrolAckRequest { RICcontrolAckRequest_noAck = 0, - RICcontrolAckRequest_ack = 1, - RICcontrolAckRequest_nAck = 2 + RICcontrolAckRequest_ack = 1 /* * Enumeration is extensible */ @@ -32,9 +31,7 @@ typedef enum RICcontrolAckRequest { typedef long RICcontrolAckRequest_t; /* Implementation */ -extern asn_per_constraints_t asn_PER_type_RICcontrolAckRequest_constr_1; extern asn_TYPE_descriptor_t asn_DEF_RICcontrolAckRequest; -extern const asn_INTEGER_specifics_t asn_SPC_RICcontrolAckRequest_specs_1; asn_struct_free_f RICcontrolAckRequest_free; asn_struct_print_f RICcontrolAckRequest_print; asn_constr_check_f RICcontrolAckRequest_constraint; diff --git a/e2sim/src/ASN1c/RICcontrolAcknowledge.c b/e2sim/src/ASN1c/RICcontrolAcknowledge.c index 1d0f224..ef7e25f 100644 --- a/e2sim/src/ASN1c/RICcontrolAcknowledge.c +++ b/e2sim/src/ASN1c/RICcontrolAcknowledge.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #include "RICcontrolAcknowledge.h" @@ -11,7 +11,7 @@ asn_TYPE_member_t asn_MBR_RICcontrolAcknowledge_1[] = { { ATF_NOFLAGS, 0, offsetof(struct RICcontrolAcknowledge, protocolIEs), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_226P8, + &asn_DEF_ProtocolIE_Container_1917P9, 0, { 0, 0, 0 }, 0, 0, /* No default value */ diff --git a/e2sim/src/ASN1c/RICcontrolAcknowledge.h b/e2sim/src/ASN1c/RICcontrolAcknowledge.h index 6f61ded..6cb8034 100644 --- a/e2sim/src/ASN1c/RICcontrolAcknowledge.h +++ b/e2sim/src/ASN1c/RICcontrolAcknowledge.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #ifndef _RICcontrolAcknowledge_H_ @@ -21,7 +21,7 @@ extern "C" { /* RICcontrolAcknowledge */ typedef struct RICcontrolAcknowledge { - ProtocolIE_Container_226P8_t protocolIEs; + ProtocolIE_Container_1917P9_t protocolIEs; /* * This type is extensible, * possible extensions are below. diff --git a/e2sim/src/ASN1c/RICcontrolFailure.c b/e2sim/src/ASN1c/RICcontrolFailure.c index a3b6d13..48b48f7 100644 --- a/e2sim/src/ASN1c/RICcontrolFailure.c +++ b/e2sim/src/ASN1c/RICcontrolFailure.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #include "RICcontrolFailure.h" @@ -11,7 +11,7 @@ asn_TYPE_member_t asn_MBR_RICcontrolFailure_1[] = { { ATF_NOFLAGS, 0, offsetof(struct RICcontrolFailure, protocolIEs), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_226P9, + &asn_DEF_ProtocolIE_Container_1917P10, 0, { 0, 0, 0 }, 0, 0, /* No default value */ diff --git a/e2sim/src/ASN1c/RICcontrolFailure.h b/e2sim/src/ASN1c/RICcontrolFailure.h index bb2ef49..6302148 100644 --- a/e2sim/src/ASN1c/RICcontrolFailure.h +++ b/e2sim/src/ASN1c/RICcontrolFailure.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #ifndef _RICcontrolFailure_H_ @@ -21,7 +21,7 @@ extern "C" { /* RICcontrolFailure */ typedef struct RICcontrolFailure { - ProtocolIE_Container_226P9_t protocolIEs; + ProtocolIE_Container_1917P10_t protocolIEs; /* * This type is extensible, * possible extensions are below. diff --git a/e2sim/src/ASN1c/RICcontrolHeader.c b/e2sim/src/ASN1c/RICcontrolHeader.c index 7ddbac1..68acc95 100644 --- a/e2sim/src/ASN1c/RICcontrolHeader.c +++ b/e2sim/src/ASN1c/RICcontrolHeader.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #include "RICcontrolHeader.h" diff --git a/e2sim/src/ASN1c/RICcontrolHeader.h b/e2sim/src/ASN1c/RICcontrolHeader.h index 6ecea7a..a9f1f25 100644 --- a/e2sim/src/ASN1c/RICcontrolHeader.h +++ b/e2sim/src/ASN1c/RICcontrolHeader.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #ifndef _RICcontrolHeader_H_ diff --git a/e2sim/src/ASN1c/RICcontrolMessage.c b/e2sim/src/ASN1c/RICcontrolMessage.c index 56b2322..05a8a81 100644 --- a/e2sim/src/ASN1c/RICcontrolMessage.c +++ b/e2sim/src/ASN1c/RICcontrolMessage.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #include "RICcontrolMessage.h" diff --git a/e2sim/src/ASN1c/RICcontrolMessage.h b/e2sim/src/ASN1c/RICcontrolMessage.h index b5afb39..9190f91 100644 --- a/e2sim/src/ASN1c/RICcontrolMessage.h +++ b/e2sim/src/ASN1c/RICcontrolMessage.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #ifndef _RICcontrolMessage_H_ diff --git a/e2sim/src/ASN1c/RICcontrolOutcome.c b/e2sim/src/ASN1c/RICcontrolOutcome.c index e584d19..54f9a8f 100644 --- a/e2sim/src/ASN1c/RICcontrolOutcome.c +++ b/e2sim/src/ASN1c/RICcontrolOutcome.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #include "RICcontrolOutcome.h" diff --git a/e2sim/src/ASN1c/RICcontrolOutcome.h b/e2sim/src/ASN1c/RICcontrolOutcome.h index 725ceb5..acd1916 100644 --- a/e2sim/src/ASN1c/RICcontrolOutcome.h +++ b/e2sim/src/ASN1c/RICcontrolOutcome.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #ifndef _RICcontrolOutcome_H_ diff --git a/e2sim/src/ASN1c/RICcontrolRequest.c b/e2sim/src/ASN1c/RICcontrolRequest.c index 7398fc5..f75b29c 100644 --- a/e2sim/src/ASN1c/RICcontrolRequest.c +++ b/e2sim/src/ASN1c/RICcontrolRequest.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #include "RICcontrolRequest.h" @@ -11,7 +11,7 @@ asn_TYPE_member_t asn_MBR_RICcontrolRequest_1[] = { { ATF_NOFLAGS, 0, offsetof(struct RICcontrolRequest, protocolIEs), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_226P7, + &asn_DEF_ProtocolIE_Container_1917P8, 0, { 0, 0, 0 }, 0, 0, /* No default value */ diff --git a/e2sim/src/ASN1c/RICcontrolRequest.h b/e2sim/src/ASN1c/RICcontrolRequest.h index 40daf83..5596246 100644 --- a/e2sim/src/ASN1c/RICcontrolRequest.h +++ b/e2sim/src/ASN1c/RICcontrolRequest.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #ifndef _RICcontrolRequest_H_ @@ -21,7 +21,7 @@ extern "C" { /* RICcontrolRequest */ typedef struct RICcontrolRequest { - ProtocolIE_Container_226P7_t protocolIEs; + ProtocolIE_Container_1917P8_t protocolIEs; /* * This type is extensible, * possible extensions are below. diff --git a/e2sim/src/ASN1c/RICcontrolStatus.c b/e2sim/src/ASN1c/RICcontrolStatus.c deleted file mode 100644 index 1c6c454..0000000 --- a/e2sim/src/ASN1c/RICcontrolStatus.c +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` - */ - -#include "RICcontrolStatus.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -asn_per_constraints_t asn_PER_type_RICcontrolStatus_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 2 } /* (0..2,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_RICcontrolStatus_value2enum_1[] = { - { 0, 7, "success" }, - { 1, 8, "rejected" }, - { 2, 6, "failed" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_RICcontrolStatus_enum2value_1[] = { - 2, /* failed(2) */ - 1, /* rejected(1) */ - 0 /* success(0) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_RICcontrolStatus_specs_1 = { - asn_MAP_RICcontrolStatus_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_RICcontrolStatus_enum2value_1, /* N => "tag"; sorted by N */ - 3, /* Number of elements in the maps */ - 4, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_RICcontrolStatus_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RICcontrolStatus = { - "RICcontrolStatus", - "RICcontrolStatus", - &asn_OP_NativeEnumerated, - asn_DEF_RICcontrolStatus_tags_1, - sizeof(asn_DEF_RICcontrolStatus_tags_1) - /sizeof(asn_DEF_RICcontrolStatus_tags_1[0]), /* 1 */ - asn_DEF_RICcontrolStatus_tags_1, /* Same as above */ - sizeof(asn_DEF_RICcontrolStatus_tags_1) - /sizeof(asn_DEF_RICcontrolStatus_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_RICcontrolStatus_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_RICcontrolStatus_specs_1 /* Additional specs */ -}; - diff --git a/e2sim/src/ASN1c/RICcontrolStatus.h b/e2sim/src/ASN1c/RICcontrolStatus.h deleted file mode 100644 index de6496f..0000000 --- a/e2sim/src/ASN1c/RICcontrolStatus.h +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` - */ - -#ifndef _RICcontrolStatus_H_ -#define _RICcontrolStatus_H_ - - -#include "asn_application.h" - -/* Including external dependencies */ -#include "NativeEnumerated.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum RICcontrolStatus { - RICcontrolStatus_success = 0, - RICcontrolStatus_rejected = 1, - RICcontrolStatus_failed = 2 - /* - * Enumeration is extensible - */ -} e_RICcontrolStatus; - -/* RICcontrolStatus */ -typedef long RICcontrolStatus_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_RICcontrolStatus_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_RICcontrolStatus; -extern const asn_INTEGER_specifics_t asn_SPC_RICcontrolStatus_specs_1; -asn_struct_free_f RICcontrolStatus_free; -asn_struct_print_f RICcontrolStatus_print; -asn_constr_check_f RICcontrolStatus_constraint; -ber_type_decoder_f RICcontrolStatus_decode_ber; -der_type_encoder_f RICcontrolStatus_encode_der; -xer_type_decoder_f RICcontrolStatus_decode_xer; -xer_type_encoder_f RICcontrolStatus_encode_xer; -per_type_decoder_f RICcontrolStatus_decode_uper; -per_type_encoder_f RICcontrolStatus_encode_uper; -per_type_decoder_f RICcontrolStatus_decode_aper; -per_type_encoder_f RICcontrolStatus_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICcontrolStatus_H_ */ -#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/RICeventTriggerDefinition.c b/e2sim/src/ASN1c/RICeventTriggerDefinition.c index a0762b3..610cd92 100644 --- a/e2sim/src/ASN1c/RICeventTriggerDefinition.c +++ b/e2sim/src/ASN1c/RICeventTriggerDefinition.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #include "RICeventTriggerDefinition.h" diff --git a/e2sim/src/ASN1c/RICeventTriggerDefinition.h b/e2sim/src/ASN1c/RICeventTriggerDefinition.h index c4b75d6..542a307 100644 --- a/e2sim/src/ASN1c/RICeventTriggerDefinition.h +++ b/e2sim/src/ASN1c/RICeventTriggerDefinition.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #ifndef _RICeventTriggerDefinition_H_ diff --git a/e2sim/src/ASN1c/RICindication.c b/e2sim/src/ASN1c/RICindication.c index 734903e..214a690 100644 --- a/e2sim/src/ASN1c/RICindication.c +++ b/e2sim/src/ASN1c/RICindication.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #include "RICindication.h" @@ -11,7 +11,7 @@ asn_TYPE_member_t asn_MBR_RICindication_1[] = { { ATF_NOFLAGS, 0, offsetof(struct RICindication, protocolIEs), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_226P6, + &asn_DEF_ProtocolIE_Container_1917P7, 0, { 0, 0, 0 }, 0, 0, /* No default value */ diff --git a/e2sim/src/ASN1c/RICindication.h b/e2sim/src/ASN1c/RICindication.h index 3d089a2..68799c3 100644 --- a/e2sim/src/ASN1c/RICindication.h +++ b/e2sim/src/ASN1c/RICindication.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #ifndef _RICindication_H_ @@ -21,7 +21,7 @@ extern "C" { /* RICindication */ typedef struct RICindication { - ProtocolIE_Container_226P6_t protocolIEs; + ProtocolIE_Container_1917P7_t protocolIEs; /* * This type is extensible, * possible extensions are below. diff --git a/e2sim/src/ASN1c/RICindicationHeader.c b/e2sim/src/ASN1c/RICindicationHeader.c index eab1fb5..294772a 100644 --- a/e2sim/src/ASN1c/RICindicationHeader.c +++ b/e2sim/src/ASN1c/RICindicationHeader.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #include "RICindicationHeader.h" diff --git a/e2sim/src/ASN1c/RICindicationHeader.h b/e2sim/src/ASN1c/RICindicationHeader.h index 2526404..f7f85e6 100644 --- a/e2sim/src/ASN1c/RICindicationHeader.h +++ b/e2sim/src/ASN1c/RICindicationHeader.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #ifndef _RICindicationHeader_H_ diff --git a/e2sim/src/ASN1c/RICindicationMessage.c b/e2sim/src/ASN1c/RICindicationMessage.c index 471e2ca..70cc01e 100644 --- a/e2sim/src/ASN1c/RICindicationMessage.c +++ b/e2sim/src/ASN1c/RICindicationMessage.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #include "RICindicationMessage.h" diff --git a/e2sim/src/ASN1c/RICindicationMessage.h b/e2sim/src/ASN1c/RICindicationMessage.h index 487a23d..dd77c49 100644 --- a/e2sim/src/ASN1c/RICindicationMessage.h +++ b/e2sim/src/ASN1c/RICindicationMessage.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #ifndef _RICindicationMessage_H_ diff --git a/e2sim/src/ASN1c/RICindicationSN.c b/e2sim/src/ASN1c/RICindicationSN.c index 06e9405..cf59f76 100644 --- a/e2sim/src/ASN1c/RICindicationSN.c +++ b/e2sim/src/ASN1c/RICindicationSN.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #include "RICindicationSN.h" @@ -36,7 +36,7 @@ RICindicationSN_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, * This type is implemented using NativeInteger, * so here we adjust the DEF accordingly. */ -asn_per_constraints_t asn_PER_type_RICindicationSN_constr_1 CC_NOTUSED = { +static asn_per_constraints_t asn_PER_type_RICindicationSN_constr_1 CC_NOTUSED = { { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ diff --git a/e2sim/src/ASN1c/RICindicationSN.h b/e2sim/src/ASN1c/RICindicationSN.h index c13fff6..9765c1c 100644 --- a/e2sim/src/ASN1c/RICindicationSN.h +++ b/e2sim/src/ASN1c/RICindicationSN.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #ifndef _RICindicationSN_H_ @@ -22,7 +22,6 @@ extern "C" { typedef long RICindicationSN_t; /* Implementation */ -extern asn_per_constraints_t asn_PER_type_RICindicationSN_constr_1; extern asn_TYPE_descriptor_t asn_DEF_RICindicationSN; asn_struct_free_f RICindicationSN_free; asn_struct_print_f RICindicationSN_print; diff --git a/e2sim/src/ASN1c/RICindicationType.c b/e2sim/src/ASN1c/RICindicationType.c index b68a6ba..cb424f6 100644 --- a/e2sim/src/ASN1c/RICindicationType.c +++ b/e2sim/src/ASN1c/RICindicationType.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #include "RICindicationType.h" @@ -11,7 +11,7 @@ * This type is implemented using NativeEnumerated, * so here we adjust the DEF accordingly. */ -asn_per_constraints_t asn_PER_type_RICindicationType_constr_1 CC_NOTUSED = { +static asn_per_constraints_t asn_PER_type_RICindicationType_constr_1 CC_NOTUSED = { { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ @@ -26,7 +26,7 @@ static const unsigned int asn_MAP_RICindicationType_enum2value_1[] = { 0 /* report(0) */ /* This list is extensible */ }; -const asn_INTEGER_specifics_t asn_SPC_RICindicationType_specs_1 = { +static const asn_INTEGER_specifics_t asn_SPC_RICindicationType_specs_1 = { asn_MAP_RICindicationType_value2enum_1, /* "tag" => N; sorted by tag */ asn_MAP_RICindicationType_enum2value_1, /* N => "tag"; sorted by N */ 2, /* Number of elements in the maps */ diff --git a/e2sim/src/ASN1c/RICindicationType.h b/e2sim/src/ASN1c/RICindicationType.h index 76e08e9..911f405 100644 --- a/e2sim/src/ASN1c/RICindicationType.h +++ b/e2sim/src/ASN1c/RICindicationType.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #ifndef _RICindicationType_H_ @@ -31,9 +31,7 @@ typedef enum RICindicationType { typedef long RICindicationType_t; /* Implementation */ -extern asn_per_constraints_t asn_PER_type_RICindicationType_constr_1; extern asn_TYPE_descriptor_t asn_DEF_RICindicationType; -extern const asn_INTEGER_specifics_t asn_SPC_RICindicationType_specs_1; asn_struct_free_f RICindicationType_free; asn_struct_print_f RICindicationType_print; asn_constr_check_f RICindicationType_constraint; diff --git a/e2sim/src/ASN1c/RICrequestID.c b/e2sim/src/ASN1c/RICrequestID.c index 701a7cb..ec4178d 100644 --- a/e2sim/src/ASN1c/RICrequestID.c +++ b/e2sim/src/ASN1c/RICrequestID.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #include "RICrequestID.h" diff --git a/e2sim/src/ASN1c/RICrequestID.h b/e2sim/src/ASN1c/RICrequestID.h index f832678..57032d7 100644 --- a/e2sim/src/ASN1c/RICrequestID.h +++ b/e2sim/src/ASN1c/RICrequestID.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #ifndef _RICrequestID_H_ diff --git a/e2sim/src/ASN1c/RICserviceQuery.c b/e2sim/src/ASN1c/RICserviceQuery.c index 9dce754..3d5e6c4 100644 --- a/e2sim/src/ASN1c/RICserviceQuery.c +++ b/e2sim/src/ASN1c/RICserviceQuery.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #include "RICserviceQuery.h" @@ -11,7 +11,7 @@ asn_TYPE_member_t asn_MBR_RICserviceQuery_1[] = { { ATF_NOFLAGS, 0, offsetof(struct RICserviceQuery, protocolIEs), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_226P25, + &asn_DEF_ProtocolIE_Container_1917P26, 0, { 0, 0, 0 }, 0, 0, /* No default value */ diff --git a/e2sim/src/ASN1c/RICserviceQuery.h b/e2sim/src/ASN1c/RICserviceQuery.h index 3b215de..3ccba64 100644 --- a/e2sim/src/ASN1c/RICserviceQuery.h +++ b/e2sim/src/ASN1c/RICserviceQuery.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #ifndef _RICserviceQuery_H_ @@ -21,7 +21,7 @@ extern "C" { /* RICserviceQuery */ typedef struct RICserviceQuery { - ProtocolIE_Container_226P25_t protocolIEs; + ProtocolIE_Container_1917P26_t protocolIEs; /* * This type is extensible, * possible extensions are below. diff --git a/e2sim/src/ASN1c/RICserviceUpdate.c b/e2sim/src/ASN1c/RICserviceUpdate.c index 73206ce..e3e58cb 100644 --- a/e2sim/src/ASN1c/RICserviceUpdate.c +++ b/e2sim/src/ASN1c/RICserviceUpdate.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #include "RICserviceUpdate.h" @@ -11,7 +11,7 @@ asn_TYPE_member_t asn_MBR_RICserviceUpdate_1[] = { { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdate, protocolIEs), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_226P22, + &asn_DEF_ProtocolIE_Container_1917P23, 0, { 0, 0, 0 }, 0, 0, /* No default value */ diff --git a/e2sim/src/ASN1c/RICserviceUpdate.h b/e2sim/src/ASN1c/RICserviceUpdate.h index 1155249..685230b 100644 --- a/e2sim/src/ASN1c/RICserviceUpdate.h +++ b/e2sim/src/ASN1c/RICserviceUpdate.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #ifndef _RICserviceUpdate_H_ @@ -21,7 +21,7 @@ extern "C" { /* RICserviceUpdate */ typedef struct RICserviceUpdate { - ProtocolIE_Container_226P22_t protocolIEs; + ProtocolIE_Container_1917P23_t protocolIEs; /* * This type is extensible, * possible extensions are below. diff --git a/e2sim/src/ASN1c/RICserviceUpdateAcknowledge.c b/e2sim/src/ASN1c/RICserviceUpdateAcknowledge.c index 700c355..7f72da6 100644 --- a/e2sim/src/ASN1c/RICserviceUpdateAcknowledge.c +++ b/e2sim/src/ASN1c/RICserviceUpdateAcknowledge.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #include "RICserviceUpdateAcknowledge.h" @@ -11,7 +11,7 @@ asn_TYPE_member_t asn_MBR_RICserviceUpdateAcknowledge_1[] = { { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateAcknowledge, protocolIEs), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_226P23, + &asn_DEF_ProtocolIE_Container_1917P24, 0, { 0, 0, 0 }, 0, 0, /* No default value */ diff --git a/e2sim/src/ASN1c/RICserviceUpdateAcknowledge.h b/e2sim/src/ASN1c/RICserviceUpdateAcknowledge.h index cb8afea..1403549 100644 --- a/e2sim/src/ASN1c/RICserviceUpdateAcknowledge.h +++ b/e2sim/src/ASN1c/RICserviceUpdateAcknowledge.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #ifndef _RICserviceUpdateAcknowledge_H_ @@ -21,7 +21,7 @@ extern "C" { /* RICserviceUpdateAcknowledge */ typedef struct RICserviceUpdateAcknowledge { - ProtocolIE_Container_226P23_t protocolIEs; + ProtocolIE_Container_1917P24_t protocolIEs; /* * This type is extensible, * possible extensions are below. diff --git a/e2sim/src/ASN1c/RICserviceUpdateFailure.c b/e2sim/src/ASN1c/RICserviceUpdateFailure.c index 72ddf04..109fa30 100644 --- a/e2sim/src/ASN1c/RICserviceUpdateFailure.c +++ b/e2sim/src/ASN1c/RICserviceUpdateFailure.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #include "RICserviceUpdateFailure.h" @@ -11,7 +11,7 @@ asn_TYPE_member_t asn_MBR_RICserviceUpdateFailure_1[] = { { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateFailure, protocolIEs), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_226P24, + &asn_DEF_ProtocolIE_Container_1917P25, 0, { 0, 0, 0 }, 0, 0, /* No default value */ diff --git a/e2sim/src/ASN1c/RICserviceUpdateFailure.h b/e2sim/src/ASN1c/RICserviceUpdateFailure.h index 3993372..457e91b 100644 --- a/e2sim/src/ASN1c/RICserviceUpdateFailure.h +++ b/e2sim/src/ASN1c/RICserviceUpdateFailure.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #ifndef _RICserviceUpdateFailure_H_ @@ -21,7 +21,7 @@ extern "C" { /* RICserviceUpdateFailure */ typedef struct RICserviceUpdateFailure { - ProtocolIE_Container_226P24_t protocolIEs; + ProtocolIE_Container_1917P25_t protocolIEs; /* * This type is extensible, * possible extensions are below. diff --git a/e2sim/src/ASN1c/RICsubscription-List-withCause.c b/e2sim/src/ASN1c/RICsubscription-List-withCause.c new file mode 100644 index 0000000..b811b88 --- /dev/null +++ b/e2sim/src/ASN1c/RICsubscription-List-withCause.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` + */ + +#include "RICsubscription-List-withCause.h" + +#include "ProtocolIE-SingleContainer.h" +static asn_per_constraints_t asn_PER_type_RICsubscription_List_withCause_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 32, -1, 1, 4294967295 } /* (SIZE(1..4294967295)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_RICsubscription_List_withCause_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ProtocolIE_SingleContainer_1920P3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_RICsubscription_List_withCause_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_RICsubscription_List_withCause_specs_1 = { + sizeof(struct RICsubscription_List_withCause), + offsetof(struct RICsubscription_List_withCause, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_RICsubscription_List_withCause = { + "RICsubscription-List-withCause", + "RICsubscription-List-withCause", + &asn_OP_SEQUENCE_OF, + asn_DEF_RICsubscription_List_withCause_tags_1, + sizeof(asn_DEF_RICsubscription_List_withCause_tags_1) + /sizeof(asn_DEF_RICsubscription_List_withCause_tags_1[0]), /* 1 */ + asn_DEF_RICsubscription_List_withCause_tags_1, /* Same as above */ + sizeof(asn_DEF_RICsubscription_List_withCause_tags_1) + /sizeof(asn_DEF_RICsubscription_List_withCause_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_RICsubscription_List_withCause_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_RICsubscription_List_withCause_1, + 1, /* Single element */ + &asn_SPC_RICsubscription_List_withCause_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/src/ASN1c/RICsubscription-List-withCause.h b/e2sim/src/ASN1c/RICsubscription-List-withCause.h new file mode 100644 index 0000000..a5a49fe --- /dev/null +++ b/e2sim/src/ASN1c/RICsubscription-List-withCause.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` + */ + +#ifndef _RICsubscription_List_withCause_H_ +#define _RICsubscription_List_withCause_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolIE_SingleContainer; + +/* RICsubscription-List-withCause */ +typedef struct RICsubscription_List_withCause { + A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RICsubscription_List_withCause_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RICsubscription_List_withCause; + +#ifdef __cplusplus +} +#endif + +#endif /* _RICsubscription_List_withCause_H_ */ +#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/RICsubscription-withCause-Item.c b/e2sim/src/ASN1c/RICsubscription-withCause-Item.c new file mode 100644 index 0000000..70ad981 --- /dev/null +++ b/e2sim/src/ASN1c/RICsubscription-withCause-Item.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` + */ + +#include "RICsubscription-withCause-Item.h" + +static asn_TYPE_member_t asn_MBR_RICsubscription_withCause_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICsubscription_withCause_Item, ricRequestID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RICrequestID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ricRequestID" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICsubscription_withCause_Item, ranFunctionID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RANfunctionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ranFunctionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICsubscription_withCause_Item, cause), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_Cause, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cause" + }, +}; +static const ber_tlv_tag_t asn_DEF_RICsubscription_withCause_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RICsubscription_withCause_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ricRequestID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ranFunctionID */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* cause */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_RICsubscription_withCause_Item_specs_1 = { + sizeof(struct RICsubscription_withCause_Item), + offsetof(struct RICsubscription_withCause_Item, _asn_ctx), + asn_MAP_RICsubscription_withCause_Item_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RICsubscription_withCause_Item = { + "RICsubscription-withCause-Item", + "RICsubscription-withCause-Item", + &asn_OP_SEQUENCE, + asn_DEF_RICsubscription_withCause_Item_tags_1, + sizeof(asn_DEF_RICsubscription_withCause_Item_tags_1) + /sizeof(asn_DEF_RICsubscription_withCause_Item_tags_1[0]), /* 1 */ + asn_DEF_RICsubscription_withCause_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_RICsubscription_withCause_Item_tags_1) + /sizeof(asn_DEF_RICsubscription_withCause_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RICsubscription_withCause_Item_1, + 3, /* Elements count */ + &asn_SPC_RICsubscription_withCause_Item_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/src/ASN1c/RICsubscription-withCause-Item.h b/e2sim/src/ASN1c/RICsubscription-withCause-Item.h new file mode 100644 index 0000000..dd07834 --- /dev/null +++ b/e2sim/src/ASN1c/RICsubscription-withCause-Item.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` + */ + +#ifndef _RICsubscription_withCause_Item_H_ +#define _RICsubscription_withCause_Item_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "RICrequestID.h" +#include "RANfunctionID.h" +#include "Cause.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* RICsubscription-withCause-Item */ +typedef struct RICsubscription_withCause_Item { + RICrequestID_t ricRequestID; + RANfunctionID_t ranFunctionID; + Cause_t cause; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RICsubscription_withCause_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RICsubscription_withCause_Item; + +#ifdef __cplusplus +} +#endif + +#endif /* _RICsubscription_withCause_Item_H_ */ +#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/RICsubscriptionDeleteFailure.c b/e2sim/src/ASN1c/RICsubscriptionDeleteFailure.c index 17144b1..2c5d10a 100644 --- a/e2sim/src/ASN1c/RICsubscriptionDeleteFailure.c +++ b/e2sim/src/ASN1c/RICsubscriptionDeleteFailure.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #include "RICsubscriptionDeleteFailure.h" @@ -11,7 +11,7 @@ asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteFailure_1[] = { { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteFailure, protocolIEs), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_226P5, + &asn_DEF_ProtocolIE_Container_1917P5, 0, { 0, 0, 0 }, 0, 0, /* No default value */ diff --git a/e2sim/src/ASN1c/RICsubscriptionDeleteFailure.h b/e2sim/src/ASN1c/RICsubscriptionDeleteFailure.h index c449ec2..ad346e9 100644 --- a/e2sim/src/ASN1c/RICsubscriptionDeleteFailure.h +++ b/e2sim/src/ASN1c/RICsubscriptionDeleteFailure.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #ifndef _RICsubscriptionDeleteFailure_H_ @@ -21,7 +21,7 @@ extern "C" { /* RICsubscriptionDeleteFailure */ typedef struct RICsubscriptionDeleteFailure { - ProtocolIE_Container_226P5_t protocolIEs; + ProtocolIE_Container_1917P5_t protocolIEs; /* * This type is extensible, * possible extensions are below. diff --git a/e2sim/src/ASN1c/RICsubscriptionDeleteRequest.c b/e2sim/src/ASN1c/RICsubscriptionDeleteRequest.c index acf561a..1197a03 100644 --- a/e2sim/src/ASN1c/RICsubscriptionDeleteRequest.c +++ b/e2sim/src/ASN1c/RICsubscriptionDeleteRequest.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #include "RICsubscriptionDeleteRequest.h" @@ -11,7 +11,7 @@ asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteRequest_1[] = { { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteRequest, protocolIEs), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_226P3, + &asn_DEF_ProtocolIE_Container_1917P3, 0, { 0, 0, 0 }, 0, 0, /* No default value */ diff --git a/e2sim/src/ASN1c/RICsubscriptionDeleteRequest.h b/e2sim/src/ASN1c/RICsubscriptionDeleteRequest.h index 1d86168..ca20aa0 100644 --- a/e2sim/src/ASN1c/RICsubscriptionDeleteRequest.h +++ b/e2sim/src/ASN1c/RICsubscriptionDeleteRequest.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #ifndef _RICsubscriptionDeleteRequest_H_ @@ -21,7 +21,7 @@ extern "C" { /* RICsubscriptionDeleteRequest */ typedef struct RICsubscriptionDeleteRequest { - ProtocolIE_Container_226P3_t protocolIEs; + ProtocolIE_Container_1917P3_t protocolIEs; /* * This type is extensible, * possible extensions are below. diff --git a/e2sim/src/ASN1c/RICsubscriptionDeleteRequired.c b/e2sim/src/ASN1c/RICsubscriptionDeleteRequired.c new file mode 100644 index 0000000..0ff50e2 --- /dev/null +++ b/e2sim/src/ASN1c/RICsubscriptionDeleteRequired.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` + */ + +#include "RICsubscriptionDeleteRequired.h" + +asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteRequired_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteRequired, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_Container_1917P6, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_RICsubscriptionDeleteRequired_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionDeleteRequired_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteRequired_specs_1 = { + sizeof(struct RICsubscriptionDeleteRequired), + offsetof(struct RICsubscriptionDeleteRequired, _asn_ctx), + asn_MAP_RICsubscriptionDeleteRequired_tag2el_1, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDeleteRequired = { + "RICsubscriptionDeleteRequired", + "RICsubscriptionDeleteRequired", + &asn_OP_SEQUENCE, + asn_DEF_RICsubscriptionDeleteRequired_tags_1, + sizeof(asn_DEF_RICsubscriptionDeleteRequired_tags_1) + /sizeof(asn_DEF_RICsubscriptionDeleteRequired_tags_1[0]), /* 1 */ + asn_DEF_RICsubscriptionDeleteRequired_tags_1, /* Same as above */ + sizeof(asn_DEF_RICsubscriptionDeleteRequired_tags_1) + /sizeof(asn_DEF_RICsubscriptionDeleteRequired_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RICsubscriptionDeleteRequired_1, + 1, /* Elements count */ + &asn_SPC_RICsubscriptionDeleteRequired_specs_1 /* Additional specs */ +}; + diff --git a/e2sim/src/ASN1c/RICsubscriptionDeleteRequired.h b/e2sim/src/ASN1c/RICsubscriptionDeleteRequired.h new file mode 100644 index 0000000..9c2acac --- /dev/null +++ b/e2sim/src/ASN1c/RICsubscriptionDeleteRequired.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` + */ + +#ifndef _RICsubscriptionDeleteRequired_H_ +#define _RICsubscriptionDeleteRequired_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* RICsubscriptionDeleteRequired */ +typedef struct RICsubscriptionDeleteRequired { + ProtocolIE_Container_1917P6_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RICsubscriptionDeleteRequired_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDeleteRequired; +extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteRequired_specs_1; +extern asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteRequired_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RICsubscriptionDeleteRequired_H_ */ +#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/RICsubscriptionDeleteResponse.c b/e2sim/src/ASN1c/RICsubscriptionDeleteResponse.c index a8268de..52810b9 100644 --- a/e2sim/src/ASN1c/RICsubscriptionDeleteResponse.c +++ b/e2sim/src/ASN1c/RICsubscriptionDeleteResponse.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #include "RICsubscriptionDeleteResponse.h" @@ -11,7 +11,7 @@ asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteResponse_1[] = { { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteResponse, protocolIEs), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_226P4, + &asn_DEF_ProtocolIE_Container_1917P4, 0, { 0, 0, 0 }, 0, 0, /* No default value */ diff --git a/e2sim/src/ASN1c/RICsubscriptionDeleteResponse.h b/e2sim/src/ASN1c/RICsubscriptionDeleteResponse.h index 5f54a1c..912c37e 100644 --- a/e2sim/src/ASN1c/RICsubscriptionDeleteResponse.h +++ b/e2sim/src/ASN1c/RICsubscriptionDeleteResponse.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #ifndef _RICsubscriptionDeleteResponse_H_ @@ -21,7 +21,7 @@ extern "C" { /* RICsubscriptionDeleteResponse */ typedef struct RICsubscriptionDeleteResponse { - ProtocolIE_Container_226P4_t protocolIEs; + ProtocolIE_Container_1917P4_t protocolIEs; /* * This type is extensible, * possible extensions are below. diff --git a/e2sim/src/ASN1c/RICsubscriptionDetails.c b/e2sim/src/ASN1c/RICsubscriptionDetails.c index 07a6871..9b2f4c9 100644 --- a/e2sim/src/ASN1c/RICsubscriptionDetails.c +++ b/e2sim/src/ASN1c/RICsubscriptionDetails.c @@ -1,13 +1,13 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #include "RICsubscriptionDetails.h" -asn_TYPE_member_t asn_MBR_RICsubscriptionDetails_1[] = { +static asn_TYPE_member_t asn_MBR_RICsubscriptionDetails_1[] = { { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDetails, ricEventTriggerDefinition), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ @@ -34,7 +34,7 @@ static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionDetails_tag2el_1[] = { { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ricEventTriggerDefinition */ { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ricAction-ToBeSetup-List */ }; -asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDetails_specs_1 = { +static asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDetails_specs_1 = { sizeof(struct RICsubscriptionDetails), offsetof(struct RICsubscriptionDetails, _asn_ctx), asn_MAP_RICsubscriptionDetails_tag2el_1, diff --git a/e2sim/src/ASN1c/RICsubscriptionDetails.h b/e2sim/src/ASN1c/RICsubscriptionDetails.h index 2ec7ae2..d1aad64 100644 --- a/e2sim/src/ASN1c/RICsubscriptionDetails.h +++ b/e2sim/src/ASN1c/RICsubscriptionDetails.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #ifndef _RICsubscriptionDetails_H_ @@ -35,8 +35,6 @@ typedef struct RICsubscriptionDetails { /* Implementation */ extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDetails; -extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDetails_specs_1; -extern asn_TYPE_member_t asn_MBR_RICsubscriptionDetails_1[2]; #ifdef __cplusplus } diff --git a/e2sim/src/ASN1c/RICsubscriptionFailure.c b/e2sim/src/ASN1c/RICsubscriptionFailure.c index b95025e..29069a3 100644 --- a/e2sim/src/ASN1c/RICsubscriptionFailure.c +++ b/e2sim/src/ASN1c/RICsubscriptionFailure.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #include "RICsubscriptionFailure.h" @@ -11,7 +11,7 @@ asn_TYPE_member_t asn_MBR_RICsubscriptionFailure_1[] = { { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionFailure, protocolIEs), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_226P2, + &asn_DEF_ProtocolIE_Container_1917P2, 0, { 0, 0, 0 }, 0, 0, /* No default value */ diff --git a/e2sim/src/ASN1c/RICsubscriptionFailure.h b/e2sim/src/ASN1c/RICsubscriptionFailure.h index 7910f1c..4a7e356 100644 --- a/e2sim/src/ASN1c/RICsubscriptionFailure.h +++ b/e2sim/src/ASN1c/RICsubscriptionFailure.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #ifndef _RICsubscriptionFailure_H_ @@ -21,7 +21,7 @@ extern "C" { /* RICsubscriptionFailure */ typedef struct RICsubscriptionFailure { - ProtocolIE_Container_226P2_t protocolIEs; + ProtocolIE_Container_1917P2_t protocolIEs; /* * This type is extensible, * possible extensions are below. diff --git a/e2sim/src/ASN1c/RICsubscriptionRequest.c b/e2sim/src/ASN1c/RICsubscriptionRequest.c index ef86fa8..dc71412 100644 --- a/e2sim/src/ASN1c/RICsubscriptionRequest.c +++ b/e2sim/src/ASN1c/RICsubscriptionRequest.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #include "RICsubscriptionRequest.h" @@ -11,7 +11,7 @@ asn_TYPE_member_t asn_MBR_RICsubscriptionRequest_1[] = { { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionRequest, protocolIEs), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_226P0, + &asn_DEF_ProtocolIE_Container_1917P0, 0, { 0, 0, 0 }, 0, 0, /* No default value */ diff --git a/e2sim/src/ASN1c/RICsubscriptionRequest.h b/e2sim/src/ASN1c/RICsubscriptionRequest.h index 76429ea..8cded13 100644 --- a/e2sim/src/ASN1c/RICsubscriptionRequest.h +++ b/e2sim/src/ASN1c/RICsubscriptionRequest.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #ifndef _RICsubscriptionRequest_H_ @@ -21,7 +21,7 @@ extern "C" { /* RICsubscriptionRequest */ typedef struct RICsubscriptionRequest { - ProtocolIE_Container_226P0_t protocolIEs; + ProtocolIE_Container_1917P0_t protocolIEs; /* * This type is extensible, * possible extensions are below. diff --git a/e2sim/src/ASN1c/RICsubscriptionResponse.c b/e2sim/src/ASN1c/RICsubscriptionResponse.c index 28c0861..6274c4e 100644 --- a/e2sim/src/ASN1c/RICsubscriptionResponse.c +++ b/e2sim/src/ASN1c/RICsubscriptionResponse.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #include "RICsubscriptionResponse.h" @@ -11,7 +11,7 @@ asn_TYPE_member_t asn_MBR_RICsubscriptionResponse_1[] = { { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionResponse, protocolIEs), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_226P1, + &asn_DEF_ProtocolIE_Container_1917P1, 0, { 0, 0, 0 }, 0, 0, /* No default value */ diff --git a/e2sim/src/ASN1c/RICsubscriptionResponse.h b/e2sim/src/ASN1c/RICsubscriptionResponse.h index 5dd7865..ad549bc 100644 --- a/e2sim/src/ASN1c/RICsubscriptionResponse.h +++ b/e2sim/src/ASN1c/RICsubscriptionResponse.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #ifndef _RICsubscriptionResponse_H_ @@ -21,7 +21,7 @@ extern "C" { /* RICsubscriptionResponse */ typedef struct RICsubscriptionResponse { - ProtocolIE_Container_226P1_t protocolIEs; + ProtocolIE_Container_1917P1_t protocolIEs; /* * This type is extensible, * possible extensions are below. diff --git a/e2sim/src/ASN1c/RICsubsequentAction.c b/e2sim/src/ASN1c/RICsubsequentAction.c index 5a63307..bd5abb8 100644 --- a/e2sim/src/ASN1c/RICsubsequentAction.c +++ b/e2sim/src/ASN1c/RICsubsequentAction.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #include "RICsubsequentAction.h" diff --git a/e2sim/src/ASN1c/RICsubsequentAction.h b/e2sim/src/ASN1c/RICsubsequentAction.h index 9806500..250a32f 100644 --- a/e2sim/src/ASN1c/RICsubsequentAction.h +++ b/e2sim/src/ASN1c/RICsubsequentAction.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #ifndef _RICsubsequentAction_H_ diff --git a/e2sim/src/ASN1c/RICsubsequentActionType.c b/e2sim/src/ASN1c/RICsubsequentActionType.c index b460c42..c9842af 100644 --- a/e2sim/src/ASN1c/RICsubsequentActionType.c +++ b/e2sim/src/ASN1c/RICsubsequentActionType.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #include "RICsubsequentActionType.h" diff --git a/e2sim/src/ASN1c/RICsubsequentActionType.h b/e2sim/src/ASN1c/RICsubsequentActionType.h index dae379e..52adf9d 100644 --- a/e2sim/src/ASN1c/RICsubsequentActionType.h +++ b/e2sim/src/ASN1c/RICsubsequentActionType.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #ifndef _RICsubsequentActionType_H_ diff --git a/e2sim/src/ASN1c/RICtimeToWait.c b/e2sim/src/ASN1c/RICtimeToWait.c index 91edeb9..265d710 100644 --- a/e2sim/src/ASN1c/RICtimeToWait.c +++ b/e2sim/src/ASN1c/RICtimeToWait.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #include "RICtimeToWait.h" @@ -12,57 +12,55 @@ * so here we adjust the DEF accordingly. */ asn_per_constraints_t asn_PER_type_RICtimeToWait_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 5, 5, 0, 17 } /* (0..17,...) */, + { APC_CONSTRAINED | APC_EXTENSIBLE, 5, 5, 0, 16 } /* (0..16,...) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; static const asn_INTEGER_enum_map_t asn_MAP_RICtimeToWait_value2enum_1[] = { - { 0, 4, "zero" }, - { 1, 4, "w1ms" }, - { 2, 4, "w2ms" }, - { 3, 4, "w5ms" }, - { 4, 5, "w10ms" }, - { 5, 5, "w20ms" }, - { 6, 5, "w30ms" }, - { 7, 5, "w40ms" }, - { 8, 5, "w50ms" }, - { 9, 6, "w100ms" }, - { 10, 6, "w200ms" }, - { 11, 6, "w500ms" }, - { 12, 3, "w1s" }, - { 13, 3, "w2s" }, - { 14, 3, "w5s" }, - { 15, 4, "w10s" }, - { 16, 4, "w20s" }, - { 17, 4, "w60s" } + { 0, 4, "w1ms" }, + { 1, 4, "w2ms" }, + { 2, 4, "w5ms" }, + { 3, 5, "w10ms" }, + { 4, 5, "w20ms" }, + { 5, 5, "w30ms" }, + { 6, 5, "w40ms" }, + { 7, 5, "w50ms" }, + { 8, 6, "w100ms" }, + { 9, 6, "w200ms" }, + { 10, 6, "w500ms" }, + { 11, 3, "w1s" }, + { 12, 3, "w2s" }, + { 13, 3, "w5s" }, + { 14, 4, "w10s" }, + { 15, 4, "w20s" }, + { 16, 4, "w60s" } /* This list is extensible */ }; static const unsigned int asn_MAP_RICtimeToWait_enum2value_1[] = { - 9, /* w100ms(9) */ - 4, /* w10ms(4) */ - 15, /* w10s(15) */ - 1, /* w1ms(1) */ - 12, /* w1s(12) */ - 10, /* w200ms(10) */ - 5, /* w20ms(5) */ - 16, /* w20s(16) */ - 2, /* w2ms(2) */ - 13, /* w2s(13) */ - 6, /* w30ms(6) */ - 7, /* w40ms(7) */ - 11, /* w500ms(11) */ - 8, /* w50ms(8) */ - 3, /* w5ms(3) */ - 14, /* w5s(14) */ - 17, /* w60s(17) */ - 0 /* zero(0) */ + 8, /* w100ms(8) */ + 3, /* w10ms(3) */ + 14, /* w10s(14) */ + 0, /* w1ms(0) */ + 11, /* w1s(11) */ + 9, /* w200ms(9) */ + 4, /* w20ms(4) */ + 15, /* w20s(15) */ + 1, /* w2ms(1) */ + 12, /* w2s(12) */ + 5, /* w30ms(5) */ + 6, /* w40ms(6) */ + 10, /* w500ms(10) */ + 7, /* w50ms(7) */ + 2, /* w5ms(2) */ + 13, /* w5s(13) */ + 16 /* w60s(16) */ /* This list is extensible */ }; const asn_INTEGER_specifics_t asn_SPC_RICtimeToWait_specs_1 = { asn_MAP_RICtimeToWait_value2enum_1, /* "tag" => N; sorted by tag */ asn_MAP_RICtimeToWait_enum2value_1, /* N => "tag"; sorted by N */ - 18, /* Number of elements in the maps */ - 19, /* Extensions before this member */ + 17, /* Number of elements in the maps */ + 18, /* Extensions before this member */ 1, /* Strict enumeration */ 0, /* Native long size */ 0 diff --git a/e2sim/src/ASN1c/RICtimeToWait.h b/e2sim/src/ASN1c/RICtimeToWait.h index 5b1bc8f..12bf29f 100644 --- a/e2sim/src/ASN1c/RICtimeToWait.h +++ b/e2sim/src/ASN1c/RICtimeToWait.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #ifndef _RICtimeToWait_H_ @@ -20,24 +20,23 @@ extern "C" { /* Dependencies */ typedef enum RICtimeToWait { - RICtimeToWait_zero = 0, - RICtimeToWait_w1ms = 1, - RICtimeToWait_w2ms = 2, - RICtimeToWait_w5ms = 3, - RICtimeToWait_w10ms = 4, - RICtimeToWait_w20ms = 5, - RICtimeToWait_w30ms = 6, - RICtimeToWait_w40ms = 7, - RICtimeToWait_w50ms = 8, - RICtimeToWait_w100ms = 9, - RICtimeToWait_w200ms = 10, - RICtimeToWait_w500ms = 11, - RICtimeToWait_w1s = 12, - RICtimeToWait_w2s = 13, - RICtimeToWait_w5s = 14, - RICtimeToWait_w10s = 15, - RICtimeToWait_w20s = 16, - RICtimeToWait_w60s = 17 + RICtimeToWait_w1ms = 0, + RICtimeToWait_w2ms = 1, + RICtimeToWait_w5ms = 2, + RICtimeToWait_w10ms = 3, + RICtimeToWait_w20ms = 4, + RICtimeToWait_w30ms = 5, + RICtimeToWait_w40ms = 6, + RICtimeToWait_w50ms = 7, + RICtimeToWait_w100ms = 8, + RICtimeToWait_w200ms = 9, + RICtimeToWait_w500ms = 10, + RICtimeToWait_w1s = 11, + RICtimeToWait_w2s = 12, + RICtimeToWait_w5s = 13, + RICtimeToWait_w10s = 14, + RICtimeToWait_w20s = 15, + RICtimeToWait_w60s = 16 /* * Enumeration is extensible */ diff --git a/e2sim/src/ASN1c/ResetRequest.c b/e2sim/src/ASN1c/ResetRequest.c index b4ab9eb..78e7d4c 100644 --- a/e2sim/src/ASN1c/ResetRequest.c +++ b/e2sim/src/ASN1c/ResetRequest.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #include "ResetRequest.h" @@ -11,7 +11,7 @@ asn_TYPE_member_t asn_MBR_ResetRequest_1[] = { { ATF_NOFLAGS, 0, offsetof(struct ResetRequest, protocolIEs), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_226P20, + &asn_DEF_ProtocolIE_Container_1917P21, 0, { 0, 0, 0 }, 0, 0, /* No default value */ diff --git a/e2sim/src/ASN1c/ResetRequest.h b/e2sim/src/ASN1c/ResetRequest.h index 8cfbabd..a9a145e 100644 --- a/e2sim/src/ASN1c/ResetRequest.h +++ b/e2sim/src/ASN1c/ResetRequest.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #ifndef _ResetRequest_H_ @@ -21,7 +21,7 @@ extern "C" { /* ResetRequest */ typedef struct ResetRequest { - ProtocolIE_Container_226P20_t protocolIEs; + ProtocolIE_Container_1917P21_t protocolIEs; /* * This type is extensible, * possible extensions are below. diff --git a/e2sim/src/ASN1c/ResetResponse.c b/e2sim/src/ASN1c/ResetResponse.c index d483846..898bc27 100644 --- a/e2sim/src/ASN1c/ResetResponse.c +++ b/e2sim/src/ASN1c/ResetResponse.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #include "ResetResponse.h" @@ -11,7 +11,7 @@ asn_TYPE_member_t asn_MBR_ResetResponse_1[] = { { ATF_NOFLAGS, 0, offsetof(struct ResetResponse, protocolIEs), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_Container_226P21, + &asn_DEF_ProtocolIE_Container_1917P22, 0, { 0, 0, 0 }, 0, 0, /* No default value */ diff --git a/e2sim/src/ASN1c/ResetResponse.h b/e2sim/src/ASN1c/ResetResponse.h index 15f6fb3..10a78cb 100644 --- a/e2sim/src/ASN1c/ResetResponse.h +++ b/e2sim/src/ASN1c/ResetResponse.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #ifndef _ResetResponse_H_ @@ -21,7 +21,7 @@ extern "C" { /* ResetResponse */ typedef struct ResetResponse { - ProtocolIE_Container_226P21_t protocolIEs; + ProtocolIE_Container_1917P22_t protocolIEs; /* * This type is extensible, * possible extensions are below. diff --git a/e2sim/src/ASN1c/SuccessfulOutcome.c b/e2sim/src/ASN1c/SuccessfulOutcome.c index fe59400..f9001b5 100644 --- a/e2sim/src/ASN1c/SuccessfulOutcome.c +++ b/e2sim/src/ASN1c/SuccessfulOutcome.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Descriptions" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #include "SuccessfulOutcome.h" @@ -29,6 +29,8 @@ static const long asn_VAL_10_id_RICserviceQuery = 6; static const long asn_VAL_10_ignore = 1; static const long asn_VAL_11_id_ErrorIndication = 2; static const long asn_VAL_11_ignore = 1; +static const long asn_VAL_12_id_RICsubscriptionDeleteRequired = 12; +static const long asn_VAL_12_ignore = 1; static const asn_ioc_cell_t asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1_rows[] = { { "&InitiatingMessage", aioc__type, &asn_DEF_RICsubscriptionRequest }, { "&SuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionResponse }, @@ -84,10 +86,15 @@ static const asn_ioc_cell_t asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1_rows[] = { { "&SuccessfulOutcome", }, { "&UnsuccessfulOutcome", }, { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_11_id_ErrorIndication }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_11_ignore } + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_11_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_RICsubscriptionDeleteRequired }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_12_id_RICsubscriptionDeleteRequired }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_12_ignore } }; static const asn_ioc_set_t asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1[] = { - { 11, 5, asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1_rows } + { 12, 5, asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1_rows } }; static int memb_procedureCode_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, diff --git a/e2sim/src/ASN1c/SuccessfulOutcome.h b/e2sim/src/ASN1c/SuccessfulOutcome.h index fd1f423..972e53a 100644 --- a/e2sim/src/ASN1c/SuccessfulOutcome.h +++ b/e2sim/src/ASN1c/SuccessfulOutcome.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Descriptions" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #ifndef _SuccessfulOutcome_H_ @@ -42,6 +42,7 @@ #include "RICindication.h" #include "RICserviceQuery.h" #include "ErrorIndication.h" +#include "RICsubscriptionDeleteRequired.h" #include "OPEN_TYPE.h" #include "constr_CHOICE.h" #include "constr_SEQUENCE.h" diff --git a/e2sim/src/ASN1c/TNLinformation.c b/e2sim/src/ASN1c/TNLinformation.c index 799c22c..bead0bd 100644 --- a/e2sim/src/ASN1c/TNLinformation.c +++ b/e2sim/src/ASN1c/TNLinformation.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #include "TNLinformation.h" diff --git a/e2sim/src/ASN1c/TNLinformation.h b/e2sim/src/ASN1c/TNLinformation.h index eccde1b..492177b 100644 --- a/e2sim/src/ASN1c/TNLinformation.h +++ b/e2sim/src/ASN1c/TNLinformation.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #ifndef _TNLinformation_H_ diff --git a/e2sim/src/ASN1c/TNLusage.c b/e2sim/src/ASN1c/TNLusage.c index 94fbd4c..005ec78 100644 --- a/e2sim/src/ASN1c/TNLusage.c +++ b/e2sim/src/ASN1c/TNLusage.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #include "TNLusage.h" diff --git a/e2sim/src/ASN1c/TNLusage.h b/e2sim/src/ASN1c/TNLusage.h index 63abe96..a0b9aeb 100644 --- a/e2sim/src/ASN1c/TNLusage.h +++ b/e2sim/src/ASN1c/TNLusage.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #ifndef _TNLusage_H_ diff --git a/e2sim/src/ASN1c/TimeToWait.c b/e2sim/src/ASN1c/TimeToWait.c index fcddc44..21e2e2c 100644 --- a/e2sim/src/ASN1c/TimeToWait.c +++ b/e2sim/src/ASN1c/TimeToWait.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #include "TimeToWait.h" @@ -11,7 +11,7 @@ * This type is implemented using NativeEnumerated, * so here we adjust the DEF accordingly. */ -asn_per_constraints_t asn_PER_type_TimeToWait_constr_1 CC_NOTUSED = { +static asn_per_constraints_t asn_PER_type_TimeToWait_constr_1 CC_NOTUSED = { { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 5 } /* (0..5,...) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ @@ -34,7 +34,7 @@ static const unsigned int asn_MAP_TimeToWait_enum2value_1[] = { 5 /* v60s(5) */ /* This list is extensible */ }; -const asn_INTEGER_specifics_t asn_SPC_TimeToWait_specs_1 = { +static const asn_INTEGER_specifics_t asn_SPC_TimeToWait_specs_1 = { asn_MAP_TimeToWait_value2enum_1, /* "tag" => N; sorted by tag */ asn_MAP_TimeToWait_enum2value_1, /* N => "tag"; sorted by N */ 6, /* Number of elements in the maps */ diff --git a/e2sim/src/ASN1c/TimeToWait.h b/e2sim/src/ASN1c/TimeToWait.h index bc8a935..9cc05a3 100644 --- a/e2sim/src/ASN1c/TimeToWait.h +++ b/e2sim/src/ASN1c/TimeToWait.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #ifndef _TimeToWait_H_ @@ -35,9 +35,7 @@ typedef enum TimeToWait { typedef long TimeToWait_t; /* Implementation */ -extern asn_per_constraints_t asn_PER_type_TimeToWait_constr_1; extern asn_TYPE_descriptor_t asn_DEF_TimeToWait; -extern const asn_INTEGER_specifics_t asn_SPC_TimeToWait_specs_1; asn_struct_free_f TimeToWait_free; asn_struct_print_f TimeToWait_print; asn_constr_check_f TimeToWait_constraint; diff --git a/e2sim/src/ASN1c/TransactionID.c b/e2sim/src/ASN1c/TransactionID.c new file mode 100644 index 0000000..3cb38cd --- /dev/null +++ b/e2sim/src/ASN1c/TransactionID.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` + */ + +#include "TransactionID.h" + +int +TransactionID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_per_constraints_t asn_PER_type_TransactionID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 8, 8, 0, 255 } /* (0..255,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_TransactionID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TransactionID = { + "TransactionID", + "TransactionID", + &asn_OP_NativeInteger, + asn_DEF_TransactionID_tags_1, + sizeof(asn_DEF_TransactionID_tags_1) + /sizeof(asn_DEF_TransactionID_tags_1[0]), /* 1 */ + asn_DEF_TransactionID_tags_1, /* Same as above */ + sizeof(asn_DEF_TransactionID_tags_1) + /sizeof(asn_DEF_TransactionID_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_TransactionID_constr_1, TransactionID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/e2sim/src/ASN1c/TransactionID.h b/e2sim/src/ASN1c/TransactionID.h new file mode 100644 index 0000000..92dbf69 --- /dev/null +++ b/e2sim/src/ASN1c/TransactionID.h @@ -0,0 +1,43 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` + */ + +#ifndef _TransactionID_H_ +#define _TransactionID_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* TransactionID */ +typedef long TransactionID_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_TransactionID; +asn_struct_free_f TransactionID_free; +asn_struct_print_f TransactionID_print; +asn_constr_check_f TransactionID_constraint; +ber_type_decoder_f TransactionID_decode_ber; +der_type_encoder_f TransactionID_encode_der; +xer_type_decoder_f TransactionID_decode_xer; +xer_type_encoder_f TransactionID_encode_xer; +per_type_decoder_f TransactionID_decode_uper; +per_type_encoder_f TransactionID_encode_uper; +per_type_decoder_f TransactionID_decode_aper; +per_type_encoder_f TransactionID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TransactionID_H_ */ +#include "asn_internal.h" diff --git a/e2sim/src/ASN1c/TriggeringMessage.c b/e2sim/src/ASN1c/TriggeringMessage.c index 3f44842..7eb8ba2 100644 --- a/e2sim/src/ASN1c/TriggeringMessage.c +++ b/e2sim/src/ASN1c/TriggeringMessage.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-CommonDataTypes" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #include "TriggeringMessage.h" diff --git a/e2sim/src/ASN1c/TriggeringMessage.h b/e2sim/src/ASN1c/TriggeringMessage.h index f92107f..3a7beee 100644 --- a/e2sim/src/ASN1c/TriggeringMessage.h +++ b/e2sim/src/ASN1c/TriggeringMessage.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-CommonDataTypes" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #ifndef _TriggeringMessage_H_ diff --git a/e2sim/src/ASN1c/TypeOfError.c b/e2sim/src/ASN1c/TypeOfError.c index 35cab04..a97e64c 100644 --- a/e2sim/src/ASN1c/TypeOfError.c +++ b/e2sim/src/ASN1c/TypeOfError.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #include "TypeOfError.h" diff --git a/e2sim/src/ASN1c/TypeOfError.h b/e2sim/src/ASN1c/TypeOfError.h index 4481028..1c5f44f 100644 --- a/e2sim/src/ASN1c/TypeOfError.h +++ b/e2sim/src/ASN1c/TypeOfError.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #ifndef _TypeOfError_H_ diff --git a/e2sim/src/ASN1c/UnsuccessfulOutcome.c b/e2sim/src/ASN1c/UnsuccessfulOutcome.c index bf5905c..f7d0b2e 100644 --- a/e2sim/src/ASN1c/UnsuccessfulOutcome.c +++ b/e2sim/src/ASN1c/UnsuccessfulOutcome.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Descriptions" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #include "UnsuccessfulOutcome.h" @@ -29,6 +29,8 @@ static const long asn_VAL_10_id_RICserviceQuery = 6; static const long asn_VAL_10_ignore = 1; static const long asn_VAL_11_id_ErrorIndication = 2; static const long asn_VAL_11_ignore = 1; +static const long asn_VAL_12_id_RICsubscriptionDeleteRequired = 12; +static const long asn_VAL_12_ignore = 1; static const asn_ioc_cell_t asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1_rows[] = { { "&InitiatingMessage", aioc__type, &asn_DEF_RICsubscriptionRequest }, { "&SuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionResponse }, @@ -84,10 +86,15 @@ static const asn_ioc_cell_t asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1_rows[] = { { "&SuccessfulOutcome", }, { "&UnsuccessfulOutcome", }, { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_11_id_ErrorIndication }, - { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_11_ignore } + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_11_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_RICsubscriptionDeleteRequired }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_12_id_RICsubscriptionDeleteRequired }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_12_ignore } }; static const asn_ioc_set_t asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1[] = { - { 11, 5, asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1_rows } + { 12, 5, asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1_rows } }; static int memb_procedureCode_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, diff --git a/e2sim/src/ASN1c/UnsuccessfulOutcome.h b/e2sim/src/ASN1c/UnsuccessfulOutcome.h index 2a37e89..3ad8cf6 100644 --- a/e2sim/src/ASN1c/UnsuccessfulOutcome.h +++ b/e2sim/src/ASN1c/UnsuccessfulOutcome.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Descriptions" - * found in "e2ap-v01.01.00.asn" - * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example` + * found in "e2ap-v2.asn" + * `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-example -no-gen-OER` */ #ifndef _UnsuccessfulOutcome_H_ @@ -42,6 +42,7 @@ #include "RICindication.h" #include "RICserviceQuery.h" #include "ErrorIndication.h" +#include "RICsubscriptionDeleteRequired.h" #include "OPEN_TYPE.h" #include "constr_CHOICE.h" #include "constr_SEQUENCE.h" diff --git a/e2sim/src/ASN1c/asn_constant.h b/e2sim/src/ASN1c/asn_constant.h index 308038d..b850c56 100644 --- a/e2sim/src/ASN1c/asn_constant.h +++ b/e2sim/src/ASN1c/asn_constant.h @@ -15,6 +15,7 @@ extern "C" { #define maxofRANfunctionID (256) #define maxofRICactionID (16) #define maxofTNLA (32) +#define maxofRICrequestID (4294967295) #ifdef __cplusplus diff --git a/e2sim/src/ASN1c/constr_CHOICE_oer.c b/e2sim/src/ASN1c/constr_CHOICE_oer.c deleted file mode 100644 index a4c591c..0000000 --- a/e2sim/src/ASN1c/constr_CHOICE_oer.c +++ /dev/null @@ -1,380 +0,0 @@ -/* - * Copyright (c) 2017 Lev Walkin . - * All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef ASN_DISABLE_OER_SUPPORT - -#include -#include -#include - -/* - * Return a standardized complex structure. - */ -#undef RETURN -#define RETURN(_code) \ - do { \ - asn_dec_rval_t rval; \ - rval.code = _code; \ - rval.consumed = consumed_myself; \ - return rval; \ - } while(0) - -#undef ADVANCE -#define ADVANCE(num_bytes) \ - do { \ - size_t num = num_bytes; \ - ptr = ((const char *)ptr) + num; \ - size -= num; \ - consumed_myself += num; \ - } while(0) - -/* - * Switch to the next phase of parsing. - */ -#undef NEXT_PHASE -#define NEXT_PHASE(ctx) \ - do { \ - ctx->phase++; \ - ctx->step = 0; \ - } while(0) -#undef SET_PHASE -#define SET_PHASE(ctx, value) \ - do { \ - ctx->phase = value; \ - ctx->step = 0; \ - } while(0) - -/* - * Tags are canonically sorted in the tag to member table. - */ -static int -_search4tag(const void *ap, const void *bp) { - const asn_TYPE_tag2member_t *a = (const asn_TYPE_tag2member_t *)ap; - const asn_TYPE_tag2member_t *b = (const asn_TYPE_tag2member_t *)bp; - - int a_class = BER_TAG_CLASS(a->el_tag); - int b_class = BER_TAG_CLASS(b->el_tag); - - if(a_class == b_class) { - ber_tlv_tag_t a_value = BER_TAG_VALUE(a->el_tag); - ber_tlv_tag_t b_value = BER_TAG_VALUE(b->el_tag); - - if(a_value == b_value) - return 0; - else if(a_value < b_value) - return -1; - else - return 1; - } else if(a_class < b_class) { - return -1; - } else { - return 1; - } -} - -/* - * X.696 (08/2015) #8.7 Encoding of tags - */ -static ssize_t -oer_fetch_tag(const void *ptr, size_t size, ber_tlv_tag_t *tag_r) { - ber_tlv_tag_t val; - ber_tlv_tag_t tclass; - size_t skipped; - - if(size == 0) - return 0; - - val = *(const uint8_t *)ptr; - tclass = (val >> 6); - if((val & 0x3F) != 0x3F) { - /* #8.7.1 */ - *tag_r = ((val & 0x3F) << 2) | tclass; - return 1; - } - - /* - * Each octet contains 7 bits of useful information. - * The MSB is 0 if it is the last octet of the tag. - */ - for(val = 0, ptr = ((const char *)ptr) + 1, skipped = 2; skipped <= size; - ptr = ((const char *)ptr) + 1, skipped++) { - unsigned int oct = *(const uint8_t *)ptr; - if(oct & 0x80) { - val = (val << 7) | (oct & 0x7F); - /* - * Make sure there are at least 9 bits spare - * at the MS side of a value. - */ - if(val >> ((8 * sizeof(val)) - 9)) { - /* - * We would not be able to accomodate - * any more tag bits. - */ - return -1; - } - } else { - val = (val << 7) | oct; - *tag_r = (val << 2) | tclass; - return skipped; - } - } - - return 0; /* Want more */ -} - -asn_dec_rval_t -CHOICE_decode_oer(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_oer_constraints_t *constraints, void **struct_ptr, - const void *ptr, size_t size) { - /* - * Bring closer parts of structure description. - */ - const asn_CHOICE_specifics_t *specs = - (const asn_CHOICE_specifics_t *)td->specifics; - asn_TYPE_member_t *elements = td->elements; - - /* - * Parts of the structure being constructed. - */ - void *st = *struct_ptr; /* Target structure. */ - asn_struct_ctx_t *ctx; /* Decoder context */ - - ssize_t consumed_myself = 0; /* Consumed bytes from ptr */ - - (void)constraints; - - ASN_DEBUG("Decoding %s as CHOICE", td->name); - - /* - * Create the target structure if it is not present already. - */ - if(st == 0) { - st = *struct_ptr = CALLOC(1, specs->struct_size); - if(st == 0) { - RETURN(RC_FAIL); - } - } - - /* - * Restore parsing context. - */ - ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset); - switch(ctx->phase) { - case 0: { - /* - * Discover the tag. - */ - ber_tlv_tag_t tlv_tag; /* T from TLV */ - ssize_t tag_len; /* Length of TLV's T */ - - tag_len = oer_fetch_tag(ptr, size, &tlv_tag); - switch(tag_len) { - case 0: - ASN__DECODE_STARVED; - case -1: - ASN__DECODE_FAILED; - } - - do { - const asn_TYPE_tag2member_t *t2m; - asn_TYPE_tag2member_t key = {0, 0, 0, 0}; - key.el_tag = tlv_tag; - - t2m = (const asn_TYPE_tag2member_t *)bsearch( - &key, specs->tag2el, specs->tag2el_count, - sizeof(specs->tag2el[0]), _search4tag); - if(t2m) { - /* - * Found the element corresponding to the tag. - */ - NEXT_PHASE(ctx); - ctx->step = t2m->el_no; - break; - } else if(specs->ext_start == -1) { - ASN_DEBUG( - "Unexpected tag %s " - "in non-extensible CHOICE %s", - ber_tlv_tag_string(tlv_tag), td->name); - RETURN(RC_FAIL); - } else { - /* Skip open type extension */ - ASN_DEBUG( - "Not implemented skipping open type extension for tag %s", - ber_tlv_tag_string(tlv_tag)); - RETURN(RC_FAIL); - } - } while(0); - - - ADVANCE(tag_len); - } - /* Fall through */ - case 1: { - asn_TYPE_member_t *elm = &elements[ctx->step]; /* CHOICE's element */ - void *memb_ptr; /* Pointer to the member */ - void **memb_ptr2; /* Pointer to that pointer */ - asn_dec_rval_t rval = {0,0}; - - /* - * Compute the position of the member inside a structure, - * and also a type of containment (it may be contained - * as pointer or using inline inclusion). - */ - if(elm->flags & ATF_POINTER) { - /* Member is a pointer to another structure */ - memb_ptr2 = (void **)((char *)st + elm->memb_offset); - } else { - /* - * A pointer to a pointer - * holding the start of the structure - */ - memb_ptr = (char *)st + elm->memb_offset; - memb_ptr2 = &memb_ptr; - } - - /* Set presence to be able to free it properly at any time */ - (void)CHOICE_variant_set_presence(td, st, ctx->step + 1); - - if(specs->ext_start >= 0 && specs->ext_start <= ctx->step) { - ssize_t got = - oer_open_type_get(opt_codec_ctx, elm->type, - elm->encoding_constraints.oer_constraints, - memb_ptr2, ptr, size); - if(got < 0) ASN__DECODE_FAILED; - if(got == 0) ASN__DECODE_STARVED; - rval.code = RC_OK; - rval.consumed = got; - } else { - rval = elm->type->op->oer_decoder( - opt_codec_ctx, elm->type, - elm->encoding_constraints.oer_constraints, memb_ptr2, ptr, - size); - } - rval.consumed += consumed_myself; - switch(rval.code) { - case RC_OK: - NEXT_PHASE(ctx); - case RC_WMORE: - break; - case RC_FAIL: - SET_PHASE(ctx, 3); /* => 3 */ - } - return rval; - } - case 2: - /* Already decoded everything */ - RETURN(RC_OK); - case 3: - /* Failed to decode, after all */ - RETURN(RC_FAIL); - } - - RETURN(RC_FAIL); -} - -/* - * X.696 (08/2015) #8.7 Encoding of tags - */ -static ssize_t -oer_put_tag(ber_tlv_tag_t tag, asn_app_consume_bytes_f *cb, void *app_key) { - uint8_t tclass = BER_TAG_CLASS(tag); - ber_tlv_tag_t tval = BER_TAG_VALUE(tag); - - if(tval < 0x3F) { - uint8_t b = (uint8_t)((tclass << 6) | tval); - if(cb(&b, 1, app_key) < 0) { - return -1; - } - return 1; - } else { - uint8_t buf[1 + 2 * sizeof(tval)]; - uint8_t *b = &buf[sizeof(buf)-1]; /* Last addressable */ - size_t encoded; - for(; ; tval >>= 7) { - if(tval >> 7) { - *b-- = 0x80 | (tval & 0x7f); - } else { - *b-- = tval & 0x7f; - break; - } - } - *b = (uint8_t)((tclass << 6) | 0x3F); - encoded = sizeof(buf) - (b - buf); - if(cb(b, encoded, app_key) < 0) { - return -1; - } - return encoded; - } - -} - -/* - * Encode as Canonical OER. - */ -asn_enc_rval_t -CHOICE_encode_oer(const asn_TYPE_descriptor_t *td, - const asn_oer_constraints_t *constraints, const void *sptr, - asn_app_consume_bytes_f *cb, void *app_key) { - const asn_CHOICE_specifics_t *specs = - (const asn_CHOICE_specifics_t *)td->specifics; - asn_TYPE_member_t *elm; /* CHOICE element */ - unsigned present; - const void *memb_ptr; - ber_tlv_tag_t tag; - ssize_t tag_len; - asn_enc_rval_t er = {0, 0, 0}; - - (void)constraints; - - if(!sptr) ASN__ENCODE_FAILED; - - ASN_DEBUG("OER %s encoding as CHOICE", td->name); - - present = CHOICE_variant_get_presence(td, sptr); - if(present == 0 || present > td->elements_count) { - ASN_DEBUG("CHOICE %s member is not selected", td->name); - ASN__ENCODE_FAILED; - } - - elm = &td->elements[present-1]; - if(elm->flags & ATF_POINTER) { - memb_ptr = - *(const void *const *)((const char *)sptr + elm->memb_offset); - if(memb_ptr == 0) { - /* Mandatory element absent */ - ASN__ENCODE_FAILED; - } - } else { - memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); - } - - tag = asn_TYPE_outmost_tag(elm->type, memb_ptr, elm->tag_mode, elm->tag); - if(tag == 0) { - ASN__ENCODE_FAILED; - } - - tag_len = oer_put_tag(tag, cb, app_key); - if(tag_len < 0) { - ASN__ENCODE_FAILED; - } - - if(specs->ext_start >= 0 && (unsigned)specs->ext_start <= (present-1)) { - ssize_t encoded = oer_open_type_put(elm->type, - elm->encoding_constraints.oer_constraints, - memb_ptr, cb, app_key); - if(encoded < 0) ASN__ENCODE_FAILED; - er.encoded = tag_len + encoded; - } else { - er = elm->type->op->oer_encoder( - elm->type, elm->encoding_constraints.oer_constraints, memb_ptr, cb, - app_key); - if(er.encoded >= 0) er.encoded += tag_len; - } - - return er; -} - -#endif /* ASN_DISABLE_OER_SUPPORT */ diff --git a/e2sim/src/ASN1c/constr_SEQUENCE_oer.c b/e2sim/src/ASN1c/constr_SEQUENCE_oer.c deleted file mode 100644 index ecb589c..0000000 --- a/e2sim/src/ASN1c/constr_SEQUENCE_oer.c +++ /dev/null @@ -1,561 +0,0 @@ -/* - * Copyright (c) 2017 Lev Walkin . - * All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef ASN_DISABLE_OER_SUPPORT - -#include -#include -#include -#include - -/* - * This macro "eats" the part of the buffer which is definitely "consumed", - * i.e. was correctly converted into local representation or rightfully skipped. - */ -#undef ADVANCE -#define ADVANCE(num_bytes) \ - do { \ - size_t num = num_bytes; \ - ptr = ((const char *)ptr) + num; \ - size -= num; \ - consumed_myself += num; \ - } while(0) - -/* - * Switch to the next phase of parsing. - */ -#undef NEXT_PHASE -#undef PHASE_OUT -#define NEXT_PHASE(ctx) \ - do { \ - ctx->phase++; \ - ctx->step = 0; \ - } while(0) - -/* - * Check whether we are inside the extensions group. - */ -#define IN_EXTENSION_GROUP(specs, memb_idx) \ - ((specs)->first_extension >= 0 \ - && (unsigned)(specs)->first_extension <= (memb_idx)) - -#define IN_ROOT_GROUP_PRED(edx) \ - edx < (specs->first_extension < 0 ? td->elements_count \ - : (size_t)specs->first_extension) - -#define FOR_IN_ROOT_GROUP(edx) for(edx = 0; IN_ROOT_GROUP_PRED(edx); edx++) - -/* - * Return a standardized complex structure. - */ -#undef RETURN -#define RETURN(_code) do { \ - rval.code = _code; \ - rval.consumed = consumed_myself;\ - return rval; \ - } while(0) - -/* - * Return pointer to a member. - */ -static void ** -element_ptrptr(void *struct_ptr, asn_TYPE_member_t *elm, void **tmp_save_ptr) { - if(elm->flags & ATF_POINTER) { - /* Member is a pointer to another structure */ - return (void **)((char *)struct_ptr + elm->memb_offset); - } else { - assert(tmp_save_ptr); - *tmp_save_ptr = (void *)((char *)struct_ptr + elm->memb_offset); - return tmp_save_ptr; - } -} - -static const void * -element_ptr(const void *struct_ptr, const asn_TYPE_member_t *elm) { - if(elm->flags & ATF_POINTER) { - /* Member is a pointer to another structure */ - return *(const void *const *)((const char *)struct_ptr - + elm->memb_offset); - } else { - return (const void *)((const char *)struct_ptr + elm->memb_offset); - } -} - -asn_dec_rval_t -SEQUENCE_decode_oer(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_oer_constraints_t *constraints, void **struct_ptr, - const void *ptr, size_t size) { - const asn_SEQUENCE_specifics_t *specs = - (const asn_SEQUENCE_specifics_t *)td->specifics; - asn_dec_rval_t rval = {RC_OK, 0}; - void *st = *struct_ptr; /* Target structure */ - asn_struct_ctx_t *ctx; /* Decoder context */ - size_t consumed_myself = 0; /* Consumed bytes from ptr. */ - - (void)constraints; - - if(ASN__STACK_OVERFLOW_CHECK(opt_codec_ctx)) - ASN__DECODE_FAILED; - - /* - * Create the target structure if it is not present already. - */ - if(st == 0) { - st = *struct_ptr = CALLOC(1, specs->struct_size); - if(st == 0) { - RETURN(RC_FAIL); - } - } - - /* - * Restore parsing context. - */ - ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset); - - /* - * Start to parse where left previously. - */ - switch(ctx->phase) { - case 0: { - /* - * Fetch preamble. - */ - asn_bit_data_t *preamble; - int has_extensions_bit = (specs->first_extension >= 0); - size_t preamble_bits = (has_extensions_bit + specs->roms_count); - size_t preamble_bytes = ((7 + preamble_bits) >> 3); - - ASN_DEBUG("OER SEQUENCE %s Decoding PHASE 0", td->name); - - ASN_DEBUG( - "Expecting preamble bits %" ASN_PRI_SIZE " for %s (including %d extension bits)", - preamble_bits, td->name, has_extensions_bit); - - if(preamble_bytes > size) { - ASN__DECODE_STARVED; - } - - preamble = asn_bit_data_new_contiguous(ptr, preamble_bits); - if(!preamble) { - RETURN(RC_FAIL); - } - preamble->nboff = has_extensions_bit; - ctx->ptr = preamble; - ADVANCE(preamble_bytes); - } - NEXT_PHASE(ctx); - /* FALL THROUGH */ - case 1: { - /* Decode components of the extension root */ - asn_bit_data_t *preamble = ctx->ptr; - size_t edx; - - ASN_DEBUG("OER SEQUENCE %s Decoding PHASE 1 (Root)", td->name); - - assert(preamble); - - for(edx = (ctx->step >> 1); IN_ROOT_GROUP_PRED(edx); - edx++, ctx->step = (ctx->step & ~1) + 2) { - asn_TYPE_member_t *elm = &td->elements[edx]; - - ASN_DEBUG("Decoding %s->%s", td->name, elm->name); - - assert(!IN_EXTENSION_GROUP(specs, edx)); - - if(ctx->step & 1) { - goto microphase2_decode_continues; - } - - - if(elm->optional) { - int32_t present = asn_get_few_bits(preamble, 1); - if(present < 0) { - ASN_DEBUG("Presence map ended prematurely: %d", present); - RETURN(RC_FAIL); - } else if(present == 0) { - if(elm->default_value_set) { - /* Fill-in DEFAULT */ - void *tmp; - if(elm->default_value_set( - element_ptrptr(st, elm, &tmp))) { - RETURN(RC_FAIL); - } - } - /* The member is not present. */ - continue; - } - /* Present OPTIONAL or DEFAULT component. */ - } - - /* - * MICROPHASE 2: Invoke the member-specific decoder. - */ - ctx->step |= 1; /* Confirm entering next microphase */ - microphase2_decode_continues: - if(elm->flags & ATF_OPEN_TYPE) { - rval = OPEN_TYPE_oer_get(opt_codec_ctx, td, st, elm, ptr, size); - } else { - void *save_memb_ptr; /* Temporary reference. */ - void **memb_ptr2; /* Pointer to a pointer to a memmber */ - - memb_ptr2 = element_ptrptr(st, elm, &save_memb_ptr); - - rval = elm->type->op->oer_decoder( - opt_codec_ctx, elm->type, - elm->encoding_constraints.oer_constraints, memb_ptr2, ptr, - size); - } - switch(rval.code) { - case RC_OK: - ADVANCE(rval.consumed); - break; - case RC_WMORE: - ASN_DEBUG("More bytes needed at element %s \"%s\"", td->name, - elm->name); - ADVANCE(rval.consumed); - RETURN(RC_WMORE); - case RC_FAIL: - ASN_DEBUG("Decoding failed at element %s \"%s\"", td->name, - elm->name); - RETURN(RC_FAIL); - } - } /* for(all root members) */ - - } - NEXT_PHASE(ctx); - /* FALL THROUGH */ - case 2: - assert(ctx->ptr); - { - /* Cleanup preamble. */ - asn_bit_data_t *preamble = ctx->ptr; - asn_bit_data_t *extadds; - int has_extensions_bit = (specs->first_extension >= 0); - int extensions_present = - has_extensions_bit - && (preamble->buffer == NULL - || (((const uint8_t *)preamble->buffer)[0] & 0x80)); - uint8_t unused_bits; - size_t len = 0; - ssize_t len_len; - - ASN_DEBUG("OER SEQUENCE %s Decoding PHASE 2", td->name); - - preamble->buffer = 0; /* Will do extensions_present==1 next time. */ - - if(!extensions_present) { - ctx->phase = 10; - RETURN(RC_OK); - } - - /* - * X.696 (08/2015) #16.1 (c), #16.4 - * Read in the extension addition presence bitmap. - */ - - len_len = oer_fetch_length(ptr, size, &len); - if(len_len > 0) { - ADVANCE(len_len); - } else if(len_len < 0) { - RETURN(RC_FAIL); - } else { - RETURN(RC_WMORE); - } - - if(len == 0) { - /* 16.4.1-2 */ - RETURN(RC_FAIL); - } else if(len > size) { - RETURN(RC_WMORE); - } - - /* Account for unused bits */ - unused_bits = 0x7 & *(const uint8_t *)ptr; - ADVANCE(1); - len--; - if(unused_bits && len == 0) { - RETURN(RC_FAIL); - } - - /* Get the extensions map */ - extadds = asn_bit_data_new_contiguous(ptr, len * 8 - unused_bits); - if(!extadds) { - RETURN(RC_FAIL); - } - FREEMEM(preamble); - ctx->ptr = extadds; - ADVANCE(len); - } - NEXT_PHASE(ctx); - ctx->step = - (specs->first_extension < 0 ? td->elements_count - : (size_t)specs->first_extension); - /* Fall through */ - case 3: - ASN_DEBUG("OER SEQUENCE %s Decoding PHASE 3 (Extensions)", td->name); - for(; ctx->step < (signed)td->elements_count; ctx->step++) { - asn_bit_data_t *extadds = ctx->ptr; - size_t edx = ctx->step; - asn_TYPE_member_t *elm = &td->elements[edx]; - void *tmp_memb_ptr; - void **memb_ptr2 = element_ptrptr(st, elm, &tmp_memb_ptr); - - switch(asn_get_few_bits(extadds, 1)) { - case -1: - /* - * Not every one of our extensions is known to the remote side. - * Continue filling in their defaults though. - */ - /* Fall through */ - case 0: - /* Fill-in DEFAULT */ - if(elm->default_value_set - && elm->default_value_set(memb_ptr2)) { - RETURN(RC_FAIL); - } - continue; - case 1: { - /* Read OER open type */ - ssize_t ot_size = - oer_open_type_get(opt_codec_ctx, elm->type, - elm->encoding_constraints.oer_constraints, - memb_ptr2, ptr, size); - assert(ot_size <= (ssize_t)size); - if(ot_size > 0) { - ADVANCE(ot_size); - } else if(ot_size < 0) { - RETURN(RC_FAIL); - } else { - /* Roll back open type parsing */ - asn_get_undo(extadds, 1); - RETURN(RC_WMORE); - } - break; - } - default: - RETURN(RC_FAIL); - } - } - - NEXT_PHASE(ctx); - /* Fall through */ - case 4: - ASN_DEBUG("OER SEQUENCE %s Decoding PHASE 4", td->name); - /* Read in the rest of Open Types while ignoring them */ - for(;;) { - asn_bit_data_t *extadds = ctx->ptr; - switch(asn_get_few_bits(extadds, 1)) { - case 0: - continue; - case 1: { - ssize_t skipped = oer_open_type_skip(ptr, size); - if(skipped > 0) { - ADVANCE(skipped); - } else if(skipped < 0) { - RETURN(RC_FAIL); - } else { - asn_get_undo(extadds, 1); - RETURN(RC_WMORE); - } - continue; - } - case -1: - /* No more Open Type encoded components */ - break; - default: - RETURN(RC_FAIL); - } - break; - } - } - - RETURN(RC_OK); -} - -/* - * Encode as Canonical OER. - */ -asn_enc_rval_t -SEQUENCE_encode_oer(const asn_TYPE_descriptor_t *td, - const asn_oer_constraints_t *constraints, const void *sptr, - asn_app_consume_bytes_f *cb, void *app_key) { - const asn_SEQUENCE_specifics_t *specs = (const asn_SEQUENCE_specifics_t *)td->specifics; - size_t computed_size = 0; - int has_extensions_bit = (specs->first_extension >= 0); - size_t preamble_bits = (has_extensions_bit + specs->roms_count); - uint32_t has_extensions = 0; - size_t edx; - int ret; - - (void)constraints; - - if(preamble_bits) { - asn_bit_outp_t preamble; - - memset(&preamble, 0, sizeof(preamble)); - preamble.output = cb; - preamble.op_key = app_key; - - if(has_extensions_bit) { - for(edx = specs->first_extension; edx < td->elements_count; edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - const void *memb_ptr = element_ptr(sptr, elm); - if(memb_ptr) { - if(elm->default_value_cmp - && elm->default_value_cmp(memb_ptr) == 0) { - /* Do not encode default values in extensions */ - } else { - has_extensions = 1; - break; - } - } - } - ret = asn_put_few_bits(&preamble, has_extensions, 1); - assert(ret == 0); - if(ret < 0) { - ASN__ENCODE_FAILED; - } - } - - /* - * Encode optional components bitmap. - */ - if(specs->roms_count) { - FOR_IN_ROOT_GROUP(edx) { - asn_TYPE_member_t *elm = &td->elements[edx]; - - if(IN_EXTENSION_GROUP(specs, edx)) break; - - if(elm->optional) { - const void *memb_ptr = element_ptr(sptr, elm); - uint32_t has_component = memb_ptr != NULL; - if(has_component && elm->default_value_cmp - && elm->default_value_cmp(memb_ptr) == 0) { - has_component = 0; - } - ret = asn_put_few_bits(&preamble, has_component, 1); - if(ret < 0) { - ASN__ENCODE_FAILED; - } - } - } - } - - asn_put_aligned_flush(&preamble); - computed_size += preamble.flushed_bytes; - } /* if(preamble_bits) */ - - /* - * Put root components and extensions root. - */ - for(edx = 0; edx < td->elements_count; edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - asn_enc_rval_t er = {0,0,0}; - const void *memb_ptr; - - if(IN_EXTENSION_GROUP(specs, edx)) break; - - memb_ptr = element_ptr(sptr, elm); - if(memb_ptr) { - if(elm->default_value_cmp - && elm->default_value_cmp(memb_ptr) == 0) { - /* Skip default values in encoding */ - continue; - } - } else { - if(elm->optional) continue; - /* Mandatory element is missing */ - ASN__ENCODE_FAILED; - } - if(!elm->type->op->oer_encoder) { - ASN_DEBUG("OER encoder is not defined for type %s", elm->type->name); - ASN__ENCODE_FAILED; - } - er = elm->type->op->oer_encoder( - elm->type, elm->encoding_constraints.oer_constraints, memb_ptr, cb, - app_key); - if(er.encoded == -1) { - ASN_DEBUG("... while encoding %s member \"%s\"\n", td->name, - elm->name); - return er; - } - computed_size += er.encoded; - } - - /* - * Before encode extensions, encode extensions additions presense bitmap - # X.696 (08/2015) #16.4. - */ - if(has_extensions) { - asn_bit_outp_t extadds; - - /* Special case allowing us to use exactly one byte for #8.6 */ - size_t aoms_length_bits = specs->aoms_count; - size_t aoms_length_bytes = (7 + aoms_length_bits) >> 3; - uint8_t unused_bits = 0x07 & (8 - (aoms_length_bits & 0x07)); - - assert(1 + aoms_length_bytes <= 127); - - memset(&extadds, 0, sizeof(extadds)); - extadds.output = cb; - extadds.op_key = app_key; - - /* #8.6 length determinant */ - ret = asn_put_few_bits(&extadds, (1 + aoms_length_bytes), 8); - if(ret < 0) ASN__ENCODE_FAILED; - - /* Number of unused bytes, #16.4.2 */ - ret = asn_put_few_bits(&extadds, unused_bits, 8); - if(ret < 0) ASN__ENCODE_FAILED; - - /* Encode presence bitmap #16.4.3 */ - for(edx = specs->first_extension; edx < td->elements_count; edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - const void *memb_ptr = element_ptr(sptr, elm); - if(memb_ptr && elm->default_value_cmp - && elm->default_value_cmp(memb_ptr) == 0) { - memb_ptr = 0; /* Do not encode default value. */ - } - ret |= asn_put_few_bits(&extadds, memb_ptr ? 1 : 0, 1); - } - if(ret < 0) ASN__ENCODE_FAILED; - - asn_put_aligned_flush(&extadds); - computed_size += extadds.flushed_bytes; - - /* Now, encode extensions */ - for(edx = specs->first_extension; edx < td->elements_count; edx++) { - asn_TYPE_member_t *elm = &td->elements[edx]; - const void *memb_ptr = element_ptr(sptr, elm); - - if(memb_ptr) { - if(elm->default_value_cmp - && elm->default_value_cmp(memb_ptr) == 0) { - /* Do not encode default value. */ - } else { - ssize_t wrote = oer_open_type_put( - elm->type, elm->encoding_constraints.oer_constraints, - memb_ptr, cb, app_key); - if(wrote == -1) { - ASN__ENCODE_FAILED; - } - computed_size += wrote; - } - } else if(!elm->optional) { - ASN__ENCODE_FAILED; - } - } - } /* if(has_extensions) */ - - - { - asn_enc_rval_t er = {0, 0, 0}; - er.encoded = computed_size; - ASN__ENCODED_OK(er); - } -} - -#endif /* ASN_DISABLE_OER_SUPPORT */ diff --git a/e2sim/src/ASN1c/constr_SET_OF_oer.c b/e2sim/src/ASN1c/constr_SET_OF_oer.c deleted file mode 100644 index 5200518..0000000 --- a/e2sim/src/ASN1c/constr_SET_OF_oer.c +++ /dev/null @@ -1,285 +0,0 @@ -/* - * Copyright (c) 2017 Lev Walkin . - * All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef ASN_DISABLE_OER_SUPPORT - -#include -#include -#include -#include - -/* - * This macro "eats" the part of the buffer which is definitely "consumed", - * i.e. was correctly converted into local representation or rightfully skipped. - */ -#undef ADVANCE -#define ADVANCE(num_bytes) \ - do { \ - size_t num = num_bytes; \ - ptr = ((const char *)ptr) + num; \ - size -= num; \ - consumed_myself += num; \ - } while(0) - -/* - * Switch to the next phase of parsing. - */ -#undef NEXT_PHASE -#define NEXT_PHASE(ctx) \ - do { \ - ctx->phase++; \ - ctx->step = 0; \ - } while(0) -#undef SET_PHASE -#define SET_PHASE(ctx, value) \ - do { \ - ctx->phase = value; \ - ctx->step = 0; \ - } while(0) - -/* - * Return a standardized complex structure. - */ -#undef RETURN -#define RETURN(_code) \ - do { \ - asn_dec_rval_t rval; \ - rval.code = _code; \ - rval.consumed = consumed_myself; \ - return rval; \ - } while(0) - -/* - * The SEQUENCE OF and SET OF values utilize a "quantity field". - * It is is a pointless combination of #8.6 (length determinant, capable - * of encoding tiny and huge numbers in the shortest possible number of octets) - * and the variable sized integer. What could have been encoded by #8.6 alone - * is required to be encoded by #8.6 followed by that number of unsigned octets. - * This doesn't make too much sense. It seems that the original version of OER - * standard have been using the unconstrained unsigned integer as a quantity - * field, and this legacy have gone through ISO/ITU-T standardization process. - */ -static ssize_t -oer_fetch_quantity(const void *ptr, size_t size, size_t *qty_r) { - const uint8_t *b; - const uint8_t *bend; - size_t len = 0; - size_t qty; - - ssize_t len_len = oer_fetch_length(ptr, size, &len); - if(len_len <= 0) { - *qty_r = 0; - return len_len; - } - - if((len_len + len) > size) { - *qty_r = 0; - return 0; - } - - b = (const uint8_t *)ptr + len_len; - bend = b + len; - - /* Skip the leading 0-bytes */ - for(; b < bend && *b == 0; b++) { - } - - if((bend - b) > (ssize_t)sizeof(size_t)) { - /* Length is not representable by the native size_t type */ - *qty_r = 0; - return -1; - } - - for(qty = 0; b < bend; b++) { - qty = (qty << 8) + *b; - } - - if(qty > RSIZE_MAX) { /* A bit of C11 validation */ - *qty_r = 0; - return -1; - } - - *qty_r = qty; - assert((size_t)len_len + len == (size_t)(bend - (const uint8_t *)ptr)); - return len_len + len; -} - -asn_dec_rval_t -SET_OF_decode_oer(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_oer_constraints_t *constraints, void **struct_ptr, - const void *ptr, size_t size) { - const asn_SET_OF_specifics_t *specs = (const asn_SET_OF_specifics_t *)td->specifics; - asn_dec_rval_t rval = {RC_OK, 0}; - void *st = *struct_ptr; /* Target structure */ - asn_struct_ctx_t *ctx; /* Decoder context */ - size_t consumed_myself = 0; /* Consumed bytes from ptr. */ - - (void)constraints; - - if(ASN__STACK_OVERFLOW_CHECK(opt_codec_ctx)) - ASN__DECODE_FAILED; - - /* - * Create the target structure if it is not present already. - */ - if(st == 0) { - st = *struct_ptr = CALLOC(1, specs->struct_size); - if(st == 0) { - RETURN(RC_FAIL); - } - } - - /* - * Restore parsing context. - */ - ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset); - - /* - * Start to parse where left previously. - */ - switch(ctx->phase) { - case 0: { - /* - * Fetch number of elements to decode. - */ - size_t length = 0; - size_t len_size = oer_fetch_quantity(ptr, size, &length); - switch(len_size) { - case 0: - RETURN(RC_WMORE); - case -1: - RETURN(RC_FAIL); - default: - ADVANCE(len_size); - ctx->left = length; - } - } - NEXT_PHASE(ctx); - /* FALL THROUGH */ - case 1: { - /* Decode components of the extension root */ - asn_TYPE_member_t *elm = td->elements; - asn_anonymous_set_ *list = _A_SET_FROM_VOID(st); - const void *base_ptr = ptr; - ber_tlv_len_t base_ctx_left = ctx->left; - - assert(td->elements_count == 1); - - ASN_DEBUG("OER SET OF %s Decoding PHASE 1", td->name); - - for(; ctx->left > 0; ctx->left--) { - asn_dec_rval_t rv = elm->type->op->oer_decoder( - opt_codec_ctx, elm->type, - elm->encoding_constraints.oer_constraints, &ctx->ptr, ptr, - size); - ADVANCE(rv.consumed); - switch(rv.code) { - case RC_OK: - if(ASN_SET_ADD(list, ctx->ptr) != 0) { - RETURN(RC_FAIL); - } else { - ctx->ptr = 0; - /* - * This check is to avoid compression bomb with - * specs like SEQUENCE/SET OF NULL which don't - * consume data at all. - */ - if(rv.consumed == 0 && base_ptr == ptr - && (base_ctx_left - ctx->left) > 200) { - ASN__DECODE_FAILED; - } - break; - } - case RC_WMORE: - RETURN(RC_WMORE); - case RC_FAIL: - ASN_STRUCT_FREE(*elm->type, ctx->ptr); - ctx->ptr = 0; - SET_PHASE(ctx, 3); - RETURN(RC_FAIL); - } - } - /* Decoded decently. */ - NEXT_PHASE(ctx); - } - /* Fall through */ - case 2: - /* Ignore fully decoded */ - assert(ctx->left == 0); - RETURN(RC_OK); - case 3: - /* Failed to decode. */ - RETURN(RC_FAIL); - } - - return rval; -} - -static ssize_t -oer_put_quantity(size_t qty, asn_app_consume_bytes_f *cb, void *app_key) { - uint8_t buf[1 + sizeof(size_t)]; - uint8_t *b = &buf[sizeof(size_t)]; /* Last addressable */ - size_t encoded; - - do { - *b-- = qty; - qty >>= 8; - } while(qty); - - *b = sizeof(buf) - (b-buf) - 1; - encoded = sizeof(buf) - (b-buf); - if(cb(b, encoded, app_key) < 0) - return -1; - return encoded; -} - -/* - * Encode as Canonical OER. - */ -asn_enc_rval_t -SET_OF_encode_oer(const asn_TYPE_descriptor_t *td, - const asn_oer_constraints_t *constraints, const void *sptr, - asn_app_consume_bytes_f *cb, void *app_key) { - const asn_TYPE_member_t *elm; - const asn_anonymous_set_ *list; - size_t computed_size = 0; - ssize_t qty_len; - int n; - - (void)constraints; - - if(!sptr) ASN__ENCODE_FAILED; - - elm = td->elements; - list = _A_CSET_FROM_VOID(sptr); - - qty_len = oer_put_quantity(list->count, cb, app_key); - if(qty_len < 0) { - ASN__ENCODE_FAILED; - } - computed_size += qty_len; - - for(n = 0; n < list->count; n++) { - void *memb_ptr = list->array[n]; - asn_enc_rval_t er = {0,0,0}; - er = elm->type->op->oer_encoder( - elm->type, elm->encoding_constraints.oer_constraints, memb_ptr, cb, - app_key); - if(er.encoded < 0) { - return er; - } else { - computed_size += er.encoded; - } - } - - { - asn_enc_rval_t erval = {0,0,0}; - erval.encoded = computed_size; - ASN__ENCODED_OK(erval); - } -} - -#endif /* ASN_DISABLE_OER_SUPPORT */ diff --git a/e2sim/src/ASN1c/converter-example.mk b/e2sim/src/ASN1c/converter-example.mk deleted file mode 100644 index ef02a5b..0000000 --- a/e2sim/src/ASN1c/converter-example.mk +++ /dev/null @@ -1,33 +0,0 @@ -include ./Makefile.am.libasncodec - -LIBS += -lm -CFLAGS += $(ASN_MODULE_CFLAGS) -DASN_PDU_COLLECTION -I. -ASN_LIBRARY ?= libasncodec.a -ASN_PROGRAM ?= converter-example -ASN_PROGRAM_SRCS ?= \ - ./converter-example.c\ - ./pdu_collection.c - -all: $(ASN_PROGRAM) - -$(ASN_PROGRAM): $(ASN_LIBRARY) $(ASN_PROGRAM_SRCS:.c=.o) - $(CC) $(CFLAGS) $(CPPFLAGS) -o $(ASN_PROGRAM) $(ASN_PROGRAM_SRCS:.c=.o) $(LDFLAGS) $(ASN_LIBRARY) $(LIBS) - -$(ASN_LIBRARY): $(ASN_MODULE_SRCS:.c=.o) - $(AR) rcs $@ $(ASN_MODULE_SRCS:.c=.o) - -.SUFFIXES: -.SUFFIXES: .c .o - -.c.o: - $(CC) $(CFLAGS) -o $@ -c $< - -clean: - rm -f $(ASN_PROGRAM) $(ASN_LIBRARY) - rm -f $(ASN_MODULE_SRCS:.c=.o) $(ASN_PROGRAM_SRCS:.c=.o) - -regen: regenerate-from-asn1-source - -regenerate-from-asn1-source: - asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -D . /root/e2ap-v01.00.00.asn - diff --git a/e2sim/src/ASN1c/oer_decoder.c b/e2sim/src/ASN1c/oer_decoder.c deleted file mode 100644 index 0701738..0000000 --- a/e2sim/src/ASN1c/oer_decoder.c +++ /dev/null @@ -1,152 +0,0 @@ -/* - * Copyright (c) 2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include - -/* - * The OER decoder of any type. - */ -asn_dec_rval_t -oer_decode(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *type_descriptor, void **struct_ptr, - const void *ptr, size_t size) { - asn_codec_ctx_t s_codec_ctx; - - /* - * Stack checker requires that the codec context - * must be allocated on the stack. - */ - if(opt_codec_ctx) { - if(opt_codec_ctx->max_stack_size) { - s_codec_ctx = *opt_codec_ctx; - opt_codec_ctx = &s_codec_ctx; - } - } else { - /* If context is not given, be security-conscious anyway */ - memset(&s_codec_ctx, 0, sizeof(s_codec_ctx)); - s_codec_ctx.max_stack_size = ASN__DEFAULT_STACK_MAX; - opt_codec_ctx = &s_codec_ctx; - } - - /* - * Invoke type-specific decoder. - */ - return type_descriptor->op->oer_decoder(opt_codec_ctx, type_descriptor, 0, - struct_ptr, /* Pointer to the destination structure */ - ptr, size /* Buffer and its size */ - ); -} - -/* - * Open Type is encoded as a length (#8.6) followed by that number of bytes. - * Since we're just skipping, reading the length would be enough. - */ -ssize_t -oer_open_type_skip(const void *bufptr, size_t size) { - size_t len = 0; - return oer_fetch_length(bufptr, size, &len); -} - -/* - * Read the Open Type (X.696 (08/2015), #30). - * RETURN VALUES: - * 0: More data expected than bufptr contains. - * -1: Fatal error deciphering length. - * >0: Number of bytes used from bufptr. - */ -ssize_t -oer_open_type_get(const asn_codec_ctx_t *opt_codec_ctx, - const struct asn_TYPE_descriptor_s *td, - const asn_oer_constraints_t *constraints, void **struct_ptr, - const void *bufptr, size_t size) { - asn_dec_rval_t dr; - size_t container_len = 0; - ssize_t len_len; - enum asn_struct_free_method dispose_method = - (*struct_ptr) ? ASFM_FREE_UNDERLYING_AND_RESET : ASFM_FREE_EVERYTHING; - - /* Get the size of a length determinant */ - len_len = oer_fetch_length(bufptr, size, &container_len); - if(len_len <= 0) { - return len_len; /* Error or more data expected */ - } - - /* - * len_len can't be bigger than size, but size without len_len - * should be bigger or equal to container length - */ - if(size - len_len < container_len) { - /* More data is expected */ - return 0; - } - - dr = td->op->oer_decoder(opt_codec_ctx, td, constraints, struct_ptr, - (const uint8_t *)bufptr + len_len, container_len); - if(dr.code == RC_OK) { - return len_len + container_len; - } else { - /* Even if RC_WMORE, we can't get more data into a closed container. */ - td->op->free_struct(td, *struct_ptr, dispose_method); - *struct_ptr = NULL; - return -1; - } -} - - -asn_dec_rval_t -oer_decode_primitive(const asn_codec_ctx_t *opt_codec_ctx, - const asn_TYPE_descriptor_t *td, - const asn_oer_constraints_t *constraints, void **sptr, - const void *ptr, size_t size) { - ASN__PRIMITIVE_TYPE_t *st = (ASN__PRIMITIVE_TYPE_t *)*sptr; - asn_dec_rval_t rval = {RC_OK, 0}; - size_t expected_length = 0; - ssize_t len_len; - - (void)td; - (void)opt_codec_ctx; - (void)constraints; - - if(!st) { - st = (ASN__PRIMITIVE_TYPE_t *)(*sptr = CALLOC( - 1, sizeof(ASN__PRIMITIVE_TYPE_t))); - if(!st) ASN__DECODE_FAILED; - } - - - /* - * X.696 (08/2015) #27.2 - * Encode length determinant as _number of octets_, but only - * if upper bound is not equal to lower bound. - */ - len_len = oer_fetch_length(ptr, size, &expected_length); - if(len_len > 0) { - rval.consumed = len_len; - ptr = (const char *)ptr + len_len; - size -= len_len; - } else if(len_len == 0) { - ASN__DECODE_STARVED; - } else if(len_len < 0) { - ASN__DECODE_FAILED; - } - - if(size < expected_length) { - ASN__DECODE_STARVED; - } else { - uint8_t *buf = MALLOC(expected_length + 1); - if(buf == NULL) { - ASN__DECODE_FAILED; - } else { - memcpy(buf, ptr, expected_length); - buf[expected_length] = '\0'; - } - FREEMEM(st->buf); - st->buf = buf; - st->size = expected_length; - - rval.consumed += expected_length; - return rval; - } -} diff --git a/e2sim/src/ASN1c/oer_decoder.h b/e2sim/src/ASN1c/oer_decoder.h deleted file mode 100644 index 40992e9..0000000 --- a/e2sim/src/ASN1c/oer_decoder.h +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Copyright (c) 2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef OER_DECODER_H -#define OER_DECODER_H - -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -struct asn_TYPE_descriptor_s; /* Forward declaration */ -struct asn_codec_ctx_s; /* Forward declaration */ - -/* - * The Octet Encoding Rules (OER, X.696 08/2015) decoder for any given type. - * This function may be invoked directly by the application. - * Parses CANONICAL-OER and BASIC-OER. - */ -asn_dec_rval_t oer_decode(const struct asn_codec_ctx_s *opt_codec_ctx, - const struct asn_TYPE_descriptor_s *type_descriptor, - void **struct_ptr, /* Pointer to a target structure's pointer */ - const void *buffer, /* Data to be decoded */ - size_t size /* Size of that buffer */ - ); - -/* - * Type of generic function which decodes the byte stream into the structure. - */ -typedef asn_dec_rval_t(oer_type_decoder_f)( - const struct asn_codec_ctx_s *opt_codec_ctx, - const struct asn_TYPE_descriptor_s *type_descriptor, - const asn_oer_constraints_t *constraints, - void **struct_ptr, - const void *buf_ptr, - size_t size); - -/* - * Swallow the Open Type (X.696 (08/2015), #30) into /dev/null. - * RETURN VALUES: - * -1: Fatal error deciphering length. - * 0: More data expected than bufptr contains. - * >0: Number of bytes used from bufptr. - */ -ssize_t oer_open_type_skip(const void *bufptr, size_t size); - -/* - * Read the Open Type (X.696 (08/2015), #30). - * RETURN VALUES: - * 0: More data expected than bufptr contains. - * -1: Fatal error deciphering length. - * >0: Number of bytes used from bufptr. - */ -ssize_t oer_open_type_get(const asn_codec_ctx_t *opt_codec_ctx, - const struct asn_TYPE_descriptor_s *td, - const asn_oer_constraints_t *constraints, - void **struct_ptr, const void *bufptr, size_t size); - -/* - * Length-prefixed buffer decoding for primitive types. - */ -oer_type_decoder_f oer_decode_primitive; - - -#ifdef __cplusplus -} -#endif - -#endif /* OER_DECODER_H */ diff --git a/e2sim/src/ASN1c/oer_encoder.c b/e2sim/src/ASN1c/oer_encoder.c deleted file mode 100644 index a284cc2..0000000 --- a/e2sim/src/ASN1c/oer_encoder.c +++ /dev/null @@ -1,141 +0,0 @@ -/* - * Copyright (c) 2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include - -/* - * The OER encoder of any type. - */ -asn_enc_rval_t -oer_encode(const asn_TYPE_descriptor_t *type_descriptor, const void *struct_ptr, - asn_app_consume_bytes_f *consume_bytes, void *app_key) { - ASN_DEBUG("OER encoder invoked for %s", type_descriptor->name); - - /* - * Invoke type-specific encoder. - */ - return type_descriptor->op->oer_encoder( - type_descriptor, 0, - struct_ptr, /* Pointer to the destination structure */ - consume_bytes, app_key); -} - -/* - * Argument type and callback necessary for oer_encode_to_buffer(). - */ -typedef struct enc_to_buf_arg { - void *buffer; - size_t left; -} enc_to_buf_arg; -static int -encode_to_buffer_cb(const void *buffer, size_t size, void *key) { - enc_to_buf_arg *arg = (enc_to_buf_arg *)key; - - if(arg->left < size) return -1; /* Data exceeds the available buffer size */ - - memcpy(arg->buffer, buffer, size); - arg->buffer = ((char *)arg->buffer) + size; - arg->left -= size; - - return 0; -} - -/* - * A variant of the oer_encode() which encodes the data into the provided buffer - */ -asn_enc_rval_t -oer_encode_to_buffer(const asn_TYPE_descriptor_t *type_descriptor, - const asn_oer_constraints_t *constraints, - const void *struct_ptr, /* Structure to be encoded */ - void *buffer, /* Pre-allocated buffer */ - size_t buffer_size /* Initial buffer size (maximum) */ -) { - enc_to_buf_arg arg; - asn_enc_rval_t ec; - - arg.buffer = buffer; - arg.left = buffer_size; - - if(type_descriptor->op->oer_encoder == NULL) { - ec.encoded = -1; - ec.failed_type = type_descriptor; - ec.structure_ptr = struct_ptr; - ASN_DEBUG("OER encoder is not defined for %s", - type_descriptor->name); - } else { - ec = type_descriptor->op->oer_encoder( - type_descriptor, constraints, - struct_ptr, /* Pointer to the destination structure */ - encode_to_buffer_cb, &arg); - if(ec.encoded != -1) { - assert(ec.encoded == (ssize_t)(buffer_size - arg.left)); - /* Return the encoded contents size */ - } - } - return ec; -} - -asn_enc_rval_t -oer_encode_primitive(const asn_TYPE_descriptor_t *td, - const asn_oer_constraints_t *constraints, const void *sptr, - asn_app_consume_bytes_f *cb, void *app_key) { - const ASN__PRIMITIVE_TYPE_t *st = (const ASN__PRIMITIVE_TYPE_t *)sptr; - asn_enc_rval_t er = {0, 0, 0}; - ssize_t ret; - - (void)constraints; - - if(!st) ASN__ENCODE_FAILED; - - ASN_DEBUG("Encoding %s (%" ASN_PRI_SIZE " bytes)", td ? td->name : "", st->size); - - /* - * X.696 (08/2015) #27.2 - */ - ret = oer_serialize_length(st->size, cb, app_key); - if(ret < 0) { - ASN__ENCODE_FAILED; - } - er.encoded += ret; - - er.encoded += st->size; - if(cb(st->buf, st->size, app_key) < 0) { - ASN__ENCODE_FAILED; - } else { - ASN__ENCODED_OK(er); - } -} - -static int -oer__count_bytes(const void *buffer, size_t size, void *bytes_ptr) { - size_t *bytes = bytes_ptr; - (void)buffer; - *bytes += size; - return 0; -} - -ssize_t -oer_open_type_put(const asn_TYPE_descriptor_t *td, - const asn_oer_constraints_t *constraints, const void *sptr, - asn_app_consume_bytes_f *cb, void *app_key) { - size_t serialized_byte_count = 0; - asn_enc_rval_t er = {0,0,0}; - ssize_t len_len; - - er = td->op->oer_encoder(td, constraints, sptr, oer__count_bytes, - &serialized_byte_count); - if(er.encoded < 0) return -1; - assert(serialized_byte_count == (size_t)er.encoded); - - len_len = oer_serialize_length(serialized_byte_count, cb, app_key); - if(len_len == -1) return -1; - - er = td->op->oer_encoder(td, constraints, sptr, cb, app_key); - if(er.encoded < 0) return -1; - assert(serialized_byte_count == (size_t)er.encoded); - - return len_len + er.encoded; -} - diff --git a/e2sim/src/ASN1c/oer_encoder.h b/e2sim/src/ASN1c/oer_encoder.h deleted file mode 100644 index 6a7b681..0000000 --- a/e2sim/src/ASN1c/oer_encoder.h +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Copyright (c) 2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef OER_ENCODER_H -#define OER_ENCODER_H - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -struct asn_TYPE_descriptor_s; /* Forward declaration */ - -/* - * The Octet Encoding Rules (OER, X.696 08/2015) encoder for any type. - * This function may be invoked directly by the application. - * Produces CANONICAL-OER output compatible with CANONICAL-OER - * and BASIC-OER decoders. - */ -asn_enc_rval_t oer_encode(const struct asn_TYPE_descriptor_s *type_descriptor, - const void *struct_ptr, /* Structure to be encoded */ - asn_app_consume_bytes_f *consume_bytes_cb, - void *app_key /* Arbitrary callback argument */ -); - -/* A variant of oer_encode() which encodes data into the pre-allocated buffer */ -asn_enc_rval_t oer_encode_to_buffer( - const struct asn_TYPE_descriptor_s *type_descriptor, - const asn_oer_constraints_t *constraints, - const void *struct_ptr, /* Structure to be encoded */ - void *buffer, /* Pre-allocated buffer */ - size_t buffer_size /* Initial buffer size (maximum) */ -); - -/* - * Type of the generic OER encoder. - */ -typedef asn_enc_rval_t(oer_type_encoder_f)( - const struct asn_TYPE_descriptor_s *type_descriptor, - const asn_oer_constraints_t *constraints, - const void *struct_ptr, /* Structure to be encoded */ - asn_app_consume_bytes_f *consume_bytes_cb, /* Callback */ - void *app_key /* Arbitrary callback argument */ -); - -/* - * Write out the Open Type (X.696 (08/2015), #30). - * RETURN VALUES: - * -1: Fatal error encoding the type. - * >0: Number of bytes serialized. - */ -ssize_t oer_open_type_put(const struct asn_TYPE_descriptor_s *td, - const asn_oer_constraints_t *constraints, - const void *struct_ptr, - asn_app_consume_bytes_f *consume_bytes_cb, - void *app_key); - - -/* - * Length-prefixed buffer encoding for primitive types. - */ -oer_type_encoder_f oer_encode_primitive; - -#ifdef __cplusplus -} -#endif - -#endif /* OER_ENCODER_H */ diff --git a/e2sim/src/ASN1c/oer_support.c b/e2sim/src/ASN1c/oer_support.c deleted file mode 100644 index b15a3bc..0000000 --- a/e2sim/src/ASN1c/oer_support.c +++ /dev/null @@ -1,122 +0,0 @@ -/* - * Copyright (c) 2017 Lev Walkin . - * All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#include -#include - -#include - -/* - * Fetch the length determinant (X.696 08/2015, #8.6) into *len_r. - * RETURN VALUES: - * 0: More data expected than bufptr contains. - * -1: Fatal error deciphering length. - * >0: Number of bytes used from bufptr. - */ -ssize_t -oer_fetch_length(const void *bufptr, size_t size, size_t *len_r) { - uint8_t first_byte; - size_t len_len; /* Length of the length determinant */ - const uint8_t *b; - const uint8_t *bend; - size_t len; - - if(size == 0) { - *len_r = 0; - return 0; - } - - first_byte = *(const uint8_t *)bufptr; - if((first_byte & 0x80) == 0) { /* Short form */ - *len_r = first_byte; /* 0..127 */ - return 1; - } - - len_len = (first_byte & 0x7f); - if((1 + len_len) > size) { - *len_r = 0; - return 0; - } - - b = (const uint8_t *)bufptr + 1; - bend = b + len_len; - - for(; b < bend && *b == 0; b++) { - /* Skip the leading 0-bytes */ - } - - if((bend - b) > (ssize_t)sizeof(size_t)) { - /* Length is not representable by the native size_t type */ - *len_r = 0; - return -1; - } - - for(len = 0; b < bend; b++) { - len = (len << 8) + *b; - } - - if(len > RSIZE_MAX) { /* A bit of C11 validation */ - *len_r = 0; - return -1; - } - - *len_r = len; - assert(len_len + 1 == (size_t)(bend - (const uint8_t *)bufptr)); - return len_len + 1; -} - - -/* - * Serialize OER length. Returns the number of bytes serialized - * or -1 if a given callback returned with negative result. - */ -ssize_t -oer_serialize_length(size_t length, asn_app_consume_bytes_f *cb, - void *app_key) { - uint8_t scratch[1 + sizeof(length)]; - uint8_t *sp = scratch; - int littleEndian = 1; /* Run-time detection */ - const uint8_t *pstart; - const uint8_t *pend; - const uint8_t *p; - int add; - - if(length <= 127) { - uint8_t b = length; - if(cb(&b, 1, app_key) < 0) { - return -1; - } - return 1; - } - - if(*(char *)&littleEndian) { - pstart = (const uint8_t *)&length + sizeof(length) - 1; - pend = (const uint8_t *)&length; - add = -1; - } else { - pstart = (const uint8_t *)&length; - pend = pstart + sizeof(length); - add = 1; - } - - for(p = pstart; p != pend; p += add) { - /* Skip leading zeros. */ - if(*p) break; - } - - for(sp = scratch + 1; ; p += add) { - *sp++ = *p; - if(p == pend) break; - } - assert((sp - scratch) - 1 <= 0x7f); - scratch[0] = 0x80 + ((sp - scratch) - 1); - - if(cb(scratch, sp - scratch, app_key) < 0) { - return -1; - } - - return sp - scratch; -} - diff --git a/e2sim/src/ASN1c/oer_support.h b/e2sim/src/ASN1c/oer_support.h deleted file mode 100644 index dbc9b5f..0000000 --- a/e2sim/src/ASN1c/oer_support.h +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright (c) 2017 Lev Walkin . All rights reserved. - * Redistribution and modifications are permitted subject to BSD license. - */ -#ifndef OER_SUPPORT_H -#define OER_SUPPORT_H - -#include /* Platform-specific types */ - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * Pre-computed OER constraints. - */ -typedef struct asn_oer_constraint_number_s { - unsigned width; /* ±8,4,2,1 fixed bytes */ - unsigned positive; /* 1 for unsigned number, 0 for signed */ -} asn_oer_constraint_number_t; -typedef struct asn_oer_constraints_s { - asn_oer_constraint_number_t value; - ssize_t size; /* -1 (no constraint) or >= 0 */ -} asn_oer_constraints_t; - - -/* - * Fetch the length determinant (X.696 (08/2015), #8.6) into *len_r. - * RETURN VALUES: - * 0: More data expected than bufptr contains. - * -1: Fatal error deciphering length. - * >0: Number of bytes used from bufptr. - */ -ssize_t oer_fetch_length(const void *bufptr, size_t size, size_t *len_r); - -/* - * Serialize OER length. Returns the number of bytes serialized - * or -1 if a given callback returned with negative result. - */ -ssize_t oer_serialize_length(size_t length, asn_app_consume_bytes_f *cb, void *app_key); - - -#ifdef __cplusplus -} -#endif - -#endif /* OER_SUPPORT_H */ diff --git a/e2sim/src/ASN1c/pdu_collection.c b/e2sim/src/ASN1c/pdu_collection.c deleted file mode 100644 index ea8309c..0000000 --- a/e2sim/src/ASN1c/pdu_collection.c +++ /dev/null @@ -1,15 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - */ - -struct asn_TYPE_descriptor_s; /* Forward declaration */ - -extern struct asn_TYPE_descriptor_s asn_DEF_E2AP_PDU; - - -struct asn_TYPE_descriptor_s *asn_pdu_collection[] = { - /* From module E2AP-PDU-Descriptions in /root/e2ap-v01.00.00.asn */ - &asn_DEF_E2AP_PDU, - 0 -}; - diff --git a/e2sim/src/base/e2sim.cpp b/e2sim/src/base/e2sim.cpp index 5591e2a..a0dc723 100755 --- a/e2sim/src/base/e2sim.cpp +++ b/e2sim/src/base/e2sim.cpp @@ -160,8 +160,8 @@ int E2Sim::run_loop(int argc, char* argv[]){ } printf("about to call setup request encode\n"); - - generate_e2apv1_setup_request_parameterized(pdu_setup, all_funcs); + encoding::generate_e2apv2_config_update(pdu_setup); + // generate_e2apv1_setup_request_parameterized(pdu_setup, all_funcs); printf("After generating e2setup req\n"); diff --git a/e2sim/src/encoding/encode_e2apv1.cpp b/e2sim/src/encoding/encode_e2apv1.cpp index 6171371..47da01a 100755 --- a/e2sim/src/encoding/encode_e2apv1.cpp +++ b/e2sim/src/encoding/encode_e2apv1.cpp @@ -53,6 +53,7 @@ extern "C" { #include "RICsubsequentActionType.h" #include "RICsubsequentAction.h" #include "RICtimeToWait.h" +#include "E2nodeComponentInterfaceNG.h" // #include "E2nodeComponentGNB-CU-UP-ID.h" // #include "E2nodeComponentID.h" // #include "E2nodeComponentConfigUpdate.h" @@ -210,6 +211,15 @@ void encoding::generate_e2apv1_setup_request_parameterized(E2AP_PDU_t *e2ap_pdu, if(globale2nodeid) free(globale2nodeid); + printf("seting up the tx id"); + auto *e2txid = (E2setupRequestIEs_t *)calloc(1, sizeof(E2setupRequestIEs_t)); + e2txid->id = ProtocolIE_ID_id_TransactionID; + e2txid-> criticality = 0; + e2txid->value.present = E2setupRequestIEs__value_PR_TransactionID; + e2txid->value.choice.TransactionID = 1; + + printf("seting done the tx id"); + auto *ranFlistIEs = (E2setupRequestIEs_t *)calloc(1, sizeof(E2setupRequestIEs_t)); ASN_STRUCT_RESET(asn_DEF_E2setupRequestIEs, ranFlistIEs); ranFlistIEs->criticality = 0; @@ -229,7 +239,7 @@ void encoding::generate_e2apv1_setup_request_parameterized(E2AP_PDU_t *e2ap_pdu, itemIes->criticality = Criticality_reject; itemIes->value.present = RANfunction_ItemIEs__value_PR_RANfunction_Item; itemIes->value.choice.RANfunction_Item.ranFunctionID = nextRanFuncId; - itemIes->value.choice.RANfunction_Item.ranFunctionOID = nextRanFunc.ranFunctionOId; + itemIes->value.choice.RANfunction_Item.ranFunctionOID = RANfunctionOID_t(*(nextRanFunc.ranFunctionOId)); int ranFuncLength = strlen((char*)nextRanFuncDesc); itemIes->value.choice.RANfunction_Item.ranFunctionDefinition = *nextRanFuncDesc; @@ -238,6 +248,48 @@ void encoding::generate_e2apv1_setup_request_parameterized(E2AP_PDU_t *e2ap_pdu, ASN_SEQUENCE_ADD(&ranFlistIEs->value.choice.RANfunctions_List.list, itemIes); } + +auto *e2configIE = (E2setupRequestIEs_t *)calloc(1, sizeof(E2setupRequestIEs_t)); +e2configIE->id = ProtocolIE_ID_id_E2nodeComponentConfigAddition; +e2configIE->criticality = Criticality_reject; +e2configIE->value.present = E2setupRequestIEs__value_PR_E2nodeComponentConfigAddition_List; + + +auto *e2configAdditionItem = (E2nodeComponentConfigAddition_ItemIEs_t *)calloc(1, sizeof(E2nodeComponentConfigAddition_ItemIEs_t)); +e2configAdditionItem->id = ProtocolIE_ID_id_E2nodeComponentConfigAddition_Item; +e2configAdditionItem->criticality = Criticality_reject; +e2configAdditionItem->value.present = E2nodeComponentConfigAddition_ItemIEs__value_PR_E2nodeComponentConfigAddition_Item; + +e2configAdditionItem->value.choice.E2nodeComponentConfigAddition_Item.e2nodeComponentInterfaceType = E2nodeComponentInterfaceType_ng; +e2configAdditionItem->value.choice.E2nodeComponentConfigAddition_Item.e2nodeComponentID.present = E2nodeComponentID_PR_e2nodeComponentInterfaceTypeNG; + +// E2nodeComponentInterfaceNG_t intfNG; +auto *intfNG = (E2nodeComponentInterfaceNG_t *) calloc(1, sizeof(E2nodeComponentInterfaceNG_t)); + +OCTET_STRING_t nginterf; +nginterf.buf = (uint8_t*)calloc(1,8); +memcpy(nginterf.buf, (uint8_t *)"nginterf", 8); + +nginterf.size = 8; +intfNG->amf_name = (AMFName_t)(nginterf); + +e2configAdditionItem->value.choice.E2nodeComponentConfigAddition_Item.e2nodeComponentID.choice.e2nodeComponentInterfaceTypeNG = intfNG; + +OCTET_STRING_t reqPart; +reqPart.buf = (uint8_t*)calloc(1,7); +memcpy(reqPart.buf, (uint8_t *)"reqpart", 7); +reqPart.size = 7; + +e2configAdditionItem->value.choice.E2nodeComponentConfigAddition_Item.e2nodeComponentConfiguration.e2nodeComponentRequestPart = reqPart; + +OCTET_STRING_t resPart; +resPart.buf = (uint8_t*)calloc(1,7); +memcpy(resPart.buf, (uint8_t *)"respart", 7); +resPart.size = 7; +e2configAdditionItem->value.choice.E2nodeComponentConfigAddition_Item.e2nodeComponentConfiguration.e2nodeComponentResponsePart = resPart; + + +ASN_SEQUENCE_ADD(&e2configIE->value.choice.RANfunctions_List.list, e2configAdditionItem); /* auto *e2nodeconfigupdatelistIEs = (E2setupRequestIEs_t *)calloc(1, sizeof(E2setupRequestIEs_t)); ASN_STRUCT_RESET(asn_DEF_E2setupRequestIEs, e2nodeconfigupdatelistIEs); @@ -300,9 +352,10 @@ void encoding::generate_e2apv1_setup_request_parameterized(E2AP_PDU_t *e2ap_pdu, ASN_SEQUENCE_ADD(&e2nodeconfigupdatelistIEs->value.choice.E2nodeComponentConfigUpdate_List.list, configupdateitemIes); */ E2setupRequest_t *e2setupreq = (E2setupRequest_t*)calloc(1, sizeof(E2setupRequest_t)); + ASN_SEQUENCE_ADD(&e2setupreq->protocolIEs.list, e2txid); ASN_SEQUENCE_ADD(&e2setupreq->protocolIEs.list, e2setuprid); ASN_SEQUENCE_ADD(&e2setupreq->protocolIEs.list, ranFlistIEs); - //ASN_SEQUENCE_ADD(&e2setupreq->protocolIEs.list, e2nodeconfigupdatelistIEs); + ASN_SEQUENCE_ADD(&e2setupreq->protocolIEs.list, e2configIE); InitiatingMessage__value_PR pres4; @@ -324,8 +377,64 @@ void encoding::generate_e2apv1_setup_request_parameterized(E2AP_PDU_t *e2ap_pdu, } +void encoding::generate_e2apv2_config_update(E2AP_PDU_t *e2ap_pdu){ + + + +/// config update id for addtion list +auto *e2configIE = (E2nodeConfigurationUpdate_IEs_t *)calloc(1, sizeof(E2nodeConfigurationUpdate_IEs_t)); +e2configIE->id = ProtocolIE_ID_id_E2nodeComponentConfigAddition; +e2configIE->criticality = Criticality_reject; +e2configIE->value.present = E2nodeConfigurationUpdate_IEs__value_PR_E2nodeComponentConfigAddition_List; +auto *e2configAdditionItem = (E2nodeComponentConfigAddition_ItemIEs_t *)calloc(1, sizeof(E2nodeComponentConfigAddition_ItemIEs_t)); +e2configAdditionItem->id = ProtocolIE_ID_id_E2nodeComponentConfigAddition_Item; +e2configAdditionItem->criticality = Criticality_reject; +e2configAdditionItem->value.present = E2nodeComponentConfigAddition_ItemIEs__value_PR_E2nodeComponentConfigAddition_Item; + +e2configAdditionItem->value.choice.E2nodeComponentConfigAddition_Item.e2nodeComponentInterfaceType = E2nodeComponentInterfaceType_ng; +e2configAdditionItem->value.choice.E2nodeComponentConfigAddition_Item.e2nodeComponentID.present = E2nodeComponentID_PR_e2nodeComponentInterfaceTypeNG; + +auto *intfNG = (E2nodeComponentInterfaceNG_t *) calloc(1, sizeof(E2nodeComponentInterfaceNG_t)); + +OCTET_STRING_t nginterf; +nginterf.buf = (uint8_t*)calloc(1,8); +memcpy(nginterf.buf, (uint8_t *)"nginterf", 8); + +nginterf.size = 8; +intfNG->amf_name = (AMFName_t)(nginterf); + +e2configAdditionItem->value.choice.E2nodeComponentConfigAddition_Item.e2nodeComponentID.choice.e2nodeComponentInterfaceTypeNG = intfNG; + +OCTET_STRING_t reqPart; +reqPart.buf = (uint8_t*)calloc(1,7); +memcpy(reqPart.buf, (uint8_t *)"reqpart", 7); +reqPart.size = 7; + +e2configAdditionItem->value.choice.E2nodeComponentConfigAddition_Item.e2nodeComponentConfiguration.e2nodeComponentRequestPart = reqPart; + +OCTET_STRING_t resPart; +resPart.buf = (uint8_t*)calloc(1,7); +memcpy(resPart.buf, (uint8_t *)"respart", 7); +resPart.size = 7; +e2configAdditionItem->value.choice.E2nodeComponentConfigAddition_Item.e2nodeComponentConfiguration.e2nodeComponentResponsePart = resPart; + + + + + +ASN_SEQUENCE_ADD(&e2configIE->value.choice.E2nodeComponentConfigAddition_List, e2configAdditionItem); + + InitiatingMessage *inititingMsg = (InitiatingMessage *) calloc(1, sizeof(InitiatingMessage)); + inititingMsg->procedureCode = InitiatingMessage__value_PR_E2nodeConfigurationUpdate; + inititingMsg->criticality = Criticality_reject; + inititingMsg->value.present = InitiatingMessage__value_PR_E2nodeConfigurationUpdate; + ASN_SEQUENCE_ADD(&inititingMsg->value.choice.E2nodeConfigurationUpdate.protocolIEs.list, e2configIE); + e2ap_pdu->present = E2AP_PDU_PR_initiatingMessage; + e2ap_pdu->choice.initiatingMessage = inititingMsg; +} + void encoding::generate_e2apv1_setup_response(E2AP_PDU_t *e2ap_pdu) { E2setupResponseIEs *resp_ies1 = (E2setupResponseIEs_t*)calloc(1, sizeof(E2setupResponseIEs_t)); diff --git a/e2sim/src/encoding/encode_e2apv1.hpp b/e2sim/src/encoding/encode_e2apv1.hpp index 233bb69..3ad36a0 100644 --- a/e2sim/src/encoding/encode_e2apv1.hpp +++ b/e2sim/src/encoding/encode_e2apv1.hpp @@ -57,6 +57,8 @@ namespace encoding { void generate_e2apv1_indication_request_parameterized(E2AP_PDU *e2ap_pdu, long requestorId, long instanceId, long ranFunctionId, long actionId, long seqNum, uint8_t *ind_header_buf, int header_length, uint8_t *ind_message_buf, int message_length); void generate_e2apv1_service_update(E2AP_PDU_t *e2ap_pdu, std::vector all_funcs); + + void generate_e2apv2_config_update(E2AP_PDU_t *e2ap_edu); } #endif -- 2.16.6